diff --git a/apps/landing/src/App.vue b/apps/landing/src/App.vue index 9d91b7e38..0b56d5d67 100644 --- a/apps/landing/src/App.vue +++ b/apps/landing/src/App.vue @@ -39,12 +39,13 @@ import Scrambler from '@/components/Scrambler.vue'
+
diff --git a/apps/web/public/BTC.svg b/apps/web/public/BTC.svg deleted file mode 100644 index 0d842a421..000000000 --- a/apps/web/public/BTC.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/apps/web/public/IOTX.svg b/apps/web/public/iopay.svg similarity index 100% rename from apps/web/public/IOTX.svg rename to apps/web/public/iopay.svg diff --git a/apps/web/src/components/charts/LineChartJS.vue b/apps/web/src/components/charts/LineChartJS.vue new file mode 100644 index 000000000..d5a49b594 --- /dev/null +++ b/apps/web/src/components/charts/LineChartJS.vue @@ -0,0 +1,88 @@ + + + \ No newline at end of file diff --git a/apps/web/src/composables/price.ts b/apps/web/src/composables/price.ts index 8a4e81529..3b6c9c346 100644 --- a/apps/web/src/composables/price.ts +++ b/apps/web/src/composables/price.ts @@ -40,7 +40,7 @@ export default function usePrice() { return data[to] } - function convertToWholeUnits (currency: Currency, amount: number) { + function convertToWholeUnits (currency: Currency | string, amount: number) { switch (currency) { case 'BTC': return amount / 100000000 diff --git a/apps/web/src/composables/router.ts b/apps/web/src/composables/router.ts index 88e713f2d..1d3671670 100644 --- a/apps/web/src/composables/router.ts +++ b/apps/web/src/composables/router.ts @@ -1,80 +1,26 @@ -/* eslint-disable @typescript-eslint/ban-ts-comment */ import { createWebHistory, createRouter } from 'vue-router' -// @ts-ignore -import Landing from '@/pages/landing/Landing.vue' -// @ts-ignore -import Staking from '@/pages/staking/Staking.vue' -// @ts-ignore -import ETHStaking from '@/pages/staking/components/ETHStaking.vue' -// @ts-ignore -import ETHWalletSelect from '@/pages/staking/components/ETHWalletSelect.vue' -// @ts-ignore -import ETHConfirmStake from '@/pages/staking/components/ETHConfirmStake.vue' -// @ts-ignore -import Assets from '@/pages/assets/Assets.vue' -// @ts-ignore +/* eslint-disable @typescript-eslint/ban-ts-comment */ +import Dashboard from '@/pages/dashboard/Dashboard.vue' import Test from '@/pages/test/Test.vue' -// @ts-ignore -import ChartTest from '@/pages/chart-test/ChartTest.vue' -// @ts-ignore -import FrontPage from '@/pages/landing/views/FrontPage.vue' -// @ts-ignore -import UserDashboard from '@/pages/user-dash/UserDashboard.vue' -// import NotFound from '@/pages/not-found/NotFound.vue' - +import Auth from '@/pages/auth/Auth.vue' const routes = [ -{ - path: '/', - name: Landing, - component: Landing, - meta: { authorize: [] }, -}, -{ - path: '/user-dashboard:id', - name: UserDashboard, - component: UserDashboard, - meta: { authorize: [] }, -}, -{ - path: '/stake', - name: Staking, - component: Staking, - meta: { authorize: [] }, - children: [ - { - path: 'eth', - component: ETHStaking, - }, - { - path: 'eth/select-wallet', - component: ETHWalletSelect, - }, - { - path: 'eth/confirm-stake', - component: ETHConfirmStake, - } - ] -}, -// { -// path: '/assets', -// name: Assets, -// component: Assets, -// meta: { authorize: [] } -// }, -{ - path: '/test', - name: Test, - component: Test, - meta: { authorize: [] } -}, -// { -// path: '/:catchAll(.*)', -// name: NotFound, -// component: NotFound, -// meta: { authorize: [] } -// } + { + path: '/', + name: Dashboard, + component: Dashboard, + }, + { + path: '/auth', + name: Auth, + component: Auth, + }, + { + path: '/test', + name: Test, + component: Test, + }, ] @@ -83,5 +29,7 @@ const router = createRouter({ routes }) +// TO DO: Add a routing beforeEach that +// dynamically fixes rerouting to auth page export default router \ No newline at end of file diff --git a/apps/web/src/composables/users.ts b/apps/web/src/composables/users.ts index 806aecdef..e8959f99d 100644 --- a/apps/web/src/composables/users.ts +++ b/apps/web/src/composables/users.ts @@ -11,7 +11,72 @@ import { ProviderString } from '@casimir/types' const { usersBaseURL, ethereumURL } = useEnvironment() // 0xd557a5745d4560B24D36A68b52351ffF9c86A212 -const user = ref() +// const user = ref() +const user = ref( + { + address: '0xd557a5745d4560B24D36A68b52351ffF9c86A212'.toLowerCase(), + accounts: [ + { + address: '0xd557a5745d4560B24D36A68b52351ffF9c86A212'.toLowerCase(), + currency: 'ETH', + balance: '1000000000000000000', + balanceSnapshots: [{ date: '2023-02-06', balance: '1000000000000000000' }, { date: '2023-02-05', balance: '100000000000000000' }], + roi: 0.25, + walletProvider: 'MetaMask' + }, + { + address: '0x1dc336d94890b10e1a47b6e34cdee1009ee7b942'.toLowerCase(), + currency: 'ETH', + balance: '1000000000000000000', + balanceSnapshots: [{ date: '2023-02-06', balance: '1000000000000000000' }, { date: '2023-02-05', balance: '100000000000000000' }], + roi: 0.25, + walletProvider: 'CoinbaseWallet' + }, + { + address: '0x1dc336d94890b10e1a47b6e34cdee1009ee7b942'.toLowerCase(), + currency: 'ETH', + balance: '1000000000000000000', + balanceSnapshots: [{ date: '2023-02-06', balance: '1000000000000000000' }, { date: '2023-02-05', balance: '100000000000000000' }], + roi: 0.25, + walletProvider: 'CoinbaseWallet' + }, + { + address: '0x1dc336d94890b10e1a47b6e34cdee1009ee7b942'.toLowerCase(), + currency: 'ETH', + balance: '1000000000000000000', + balanceSnapshots: [{ date: '2023-02-06', balance: '1000000000000000000' }, { date: '2023-02-05', balance: '100000000000000000' }], + roi: 0.25, + walletProvider: 'CoinbaseWallet' + }, + { + address: '0x8222Ef172A2117D1C4739E35234E097630D94376'.toLowerCase(), + currency: 'ETH', + balance: '1000000000000000000', + balanceSnapshots: [{ date: '2023-02-06', balance: '1000000000000000000' }, { date: '2023-02-05', balance: '100000000000000000' }], + roi: 0.25, + walletProvider: 'Ledger' + }, + { + address: '0x8222Ef172A2117D1C4739E35234E097630D94377'.toLowerCase(), // Fake address + currency: 'ETH', + balance: '1000000000000000000', + balanceSnapshots: [{ date: '2023-02-06', balance: '1000000000000000000' }, { date: '2023-02-05', balance: '100000000000000000' }], + roi: 0.25, + walletProvider: 'Trezor' + }, + { + address: '0x8222Ef172A2117D1C4739E35234E097630D94378'.toLowerCase(), // Fake address + currency: 'ETH', + balance: '1000000000000000000', + balanceSnapshots: [{ date: '2023-02-06', balance: '1000000000000000000' }, { date: '2023-02-05', balance: '100000000000000000' }], + roi: 0.25, + walletProvider: 'WalletConnect' + }, + ], + nonce: '1234567890', + pools: [] + } +) const { ssvManager } = useSSV() export default function useUsers () { diff --git a/apps/web/src/composables/wallet.ts b/apps/web/src/composables/wallet.ts index b01addcf9..9a9dedaf8 100644 --- a/apps/web/src/composables/wallet.ts +++ b/apps/web/src/composables/wallet.ts @@ -31,6 +31,15 @@ const amount = ref('0.000001') const amountToStake = ref('0.0') const session = ref(false) +const activeWallets = ref([ + 'MetaMask', + 'CoinbaseWallet', + 'WalletConnect', + 'Trezor', + 'Ledger', + 'IoPay', +] as ProviderString[]) + export default function useWallet() { const { ethereumURL } = useEnvironment() const { ethersProviderList, getEthersAddress, getEthersBalance, sendEthersTransaction, signEthersMessage, loginWithEthers, getEthersBrowserProviderSelectedCurrency, switchEthersNetwork } = useEthers() @@ -320,6 +329,7 @@ export default function useWallet() { amount, amountToStake, loadingUserWallets, + activeWallets, connectWallet, logout, setPrimaryWalletAccount, diff --git a/apps/web/src/index.css b/apps/web/src/index.css index 239ff1e3b..be72e13a6 100644 --- a/apps/web/src/index.css +++ b/apps/web/src/index.css @@ -403,6 +403,65 @@ background: #555; border: 1px solid #888; width: 100vw; } + .switch { + position: relative; + display: inline-block; + width: 45px; + height: 20px; + } + + .switch input { + opacity: 0; + width: 0; + height: 0; + } + + /* The slider */ + .slider { + position: absolute; + cursor: pointer; + top: 0; + left: 0; + right: 0; + bottom: 0; + background-color: #B2BACB; + -webkit-transition: .4s; + transition: .4s; + } + + .slider:before { + position: absolute; + content: ""; + height: 12px; + width: 12px; + left: 4px; + bottom: 4px; + background-color: white; + -webkit-transition: .4s; + transition: .4s; + } + + input:checked + .slider { + background-color: #0D5FFF; + } + + input:focus + .slider { + box-shadow: 0 0 1px #0D5FFF; + } + + input:checked + .slider:before { + -webkit-transform: translateX(26px); + -ms-transform: translateX(26px); + transform: translateX(26px); + } + + .slider.round { + border-radius: 34px; + } + + .slider.round:before { + border-radius: 50%; + } } @layer utilities { .two_thirds_one_third_grid_to_full{ diff --git a/apps/web/src/layouts/default-layout.vue b/apps/web/src/layouts/default-layout.vue index c23060c1e..e7748dd38 100644 --- a/apps/web/src/layouts/default-layout.vue +++ b/apps/web/src/layouts/default-layout.vue @@ -1,54 +1,220 @@ \ No newline at end of file + + + \ No newline at end of file diff --git a/apps/web/src/pages/assets/Assets.vue b/apps/web/src/pages/assets/Assets.vue deleted file mode 100644 index 539225fc3..000000000 --- a/apps/web/src/pages/assets/Assets.vue +++ /dev/null @@ -1,17 +0,0 @@ - - - \ No newline at end of file diff --git a/apps/web/src/pages/auth/Auth.vue b/apps/web/src/pages/auth/Auth.vue new file mode 100644 index 000000000..8d4c2f892 --- /dev/null +++ b/apps/web/src/pages/auth/Auth.vue @@ -0,0 +1,68 @@ + + + \ No newline at end of file diff --git a/apps/web/src/pages/dashboard/Dashboard.vue b/apps/web/src/pages/dashboard/Dashboard.vue new file mode 100644 index 000000000..e2340315e --- /dev/null +++ b/apps/web/src/pages/dashboard/Dashboard.vue @@ -0,0 +1,31 @@ + + + \ No newline at end of file diff --git a/apps/web/src/pages/dashboard/components/Analytics.vue b/apps/web/src/pages/dashboard/components/Analytics.vue new file mode 100644 index 000000000..7fe894313 --- /dev/null +++ b/apps/web/src/pages/dashboard/components/Analytics.vue @@ -0,0 +1,231 @@ + + + + + \ No newline at end of file diff --git a/apps/web/src/pages/dashboard/components/DataTable.vue b/apps/web/src/pages/dashboard/components/DataTable.vue new file mode 100644 index 000000000..2c5fb7a94 --- /dev/null +++ b/apps/web/src/pages/dashboard/components/DataTable.vue @@ -0,0 +1,11 @@ + + + + + \ No newline at end of file diff --git a/apps/web/src/pages/dashboard/components/Stake.vue b/apps/web/src/pages/dashboard/components/Stake.vue new file mode 100644 index 000000000..762b76d34 --- /dev/null +++ b/apps/web/src/pages/dashboard/components/Stake.vue @@ -0,0 +1,489 @@ + + + + + \ No newline at end of file diff --git a/apps/web/src/pages/landing/Landing.vue b/apps/web/src/pages/landing/Landing.vue deleted file mode 100644 index 3c719bb5d..000000000 --- a/apps/web/src/pages/landing/Landing.vue +++ /dev/null @@ -1,329 +0,0 @@ - - - \ No newline at end of file diff --git a/apps/web/src/pages/staking/Staking.vue b/apps/web/src/pages/staking/Staking.vue deleted file mode 100644 index 5f3712469..000000000 --- a/apps/web/src/pages/staking/Staking.vue +++ /dev/null @@ -1,141 +0,0 @@ - - \ No newline at end of file diff --git a/apps/web/src/pages/staking/components/ETHConfirmStake.vue b/apps/web/src/pages/staking/components/ETHConfirmStake.vue deleted file mode 100644 index aedaa317f..000000000 --- a/apps/web/src/pages/staking/components/ETHConfirmStake.vue +++ /dev/null @@ -1,142 +0,0 @@ - - - diff --git a/apps/web/src/pages/staking/components/ETHStaking.vue b/apps/web/src/pages/staking/components/ETHStaking.vue deleted file mode 100644 index 28617a9ca..000000000 --- a/apps/web/src/pages/staking/components/ETHStaking.vue +++ /dev/null @@ -1,176 +0,0 @@ - - - diff --git a/apps/web/src/pages/staking/components/ETHWalletSelect.vue b/apps/web/src/pages/staking/components/ETHWalletSelect.vue deleted file mode 100644 index 2206372f7..000000000 --- a/apps/web/src/pages/staking/components/ETHWalletSelect.vue +++ /dev/null @@ -1,170 +0,0 @@ - - - diff --git a/apps/web/src/pages/staking/components/StakingModal.vue b/apps/web/src/pages/staking/components/StakingModal.vue deleted file mode 100644 index 0f1f79b5a..000000000 --- a/apps/web/src/pages/staking/components/StakingModal.vue +++ /dev/null @@ -1,40 +0,0 @@ - - - diff --git a/apps/web/src/pages/user-dash/UserDashboard.vue b/apps/web/src/pages/user-dash/UserDashboard.vue deleted file mode 100644 index 15ef258cd..000000000 --- a/apps/web/src/pages/user-dash/UserDashboard.vue +++ /dev/null @@ -1,147 +0,0 @@ - - - - diff --git a/apps/web/src/pages/user-dash/components/AssetBreakdown.vue b/apps/web/src/pages/user-dash/components/AssetBreakdown.vue deleted file mode 100644 index f931d47c3..000000000 --- a/apps/web/src/pages/user-dash/components/AssetBreakdown.vue +++ /dev/null @@ -1,90 +0,0 @@ - - - diff --git a/apps/web/src/pages/user-dash/components/StakingBreakdown.vue b/apps/web/src/pages/user-dash/components/StakingBreakdown.vue deleted file mode 100644 index b45433aa1..000000000 --- a/apps/web/src/pages/user-dash/components/StakingBreakdown.vue +++ /dev/null @@ -1,176 +0,0 @@ - - - - - \ No newline at end of file diff --git a/apps/web/src/pages/user-dash/components/TokenUpdates.vue b/apps/web/src/pages/user-dash/components/TokenUpdates.vue deleted file mode 100644 index 0f2c1b3ed..000000000 --- a/apps/web/src/pages/user-dash/components/TokenUpdates.vue +++ /dev/null @@ -1,227 +0,0 @@ - - - \ No newline at end of file diff --git a/apps/web/src/pages/user-dash/composables/landingStore.js b/apps/web/src/pages/user-dash/composables/landingStore.js deleted file mode 100644 index e343ac19c..000000000 --- a/apps/web/src/pages/user-dash/composables/landingStore.js +++ /dev/null @@ -1,255 +0,0 @@ -import { onMounted, ref, watch } from 'vue' -import * as d3 from 'd3' - -import useUsers from '@/composables/users' -import uesPrice from '@/composables/price' - -const { getConversionRateByDate, convertToWholeUnits } = uesPrice() - -const initialized = ref(false) - -const { user } = useUsers() - -// D3 helpers -const parseTime = d3.timeParse('%d/%m/%Y') -const formatSi = d3.format('.2s') -const tooltipValue = ref('---') - -const netWorthTimeFrame = ref('Year') - -const userConnectedProviders = ref([]) -const userConnectedCurrencies = ref([]) -const selectedAsset = ref({ - provider: null, - currency: null -}) - -// netWorthData Schema -// { -// 'date' : 'String' -// 'totalInUSD' : 'Number' -// 'breakdown' : { -// walletProviders: { -// MetaMask: 'Number' -// WalletConnect: 'Number' -// Coinbase: 'Number' -// Ledger: 'Number' -// IoPay: 'Number' -// Phantom: 'Number' -// Keplr: 'Number' -// Trezor: 'Number' -// } -// currencies: { -// ETH: 'Number' -// BTC: 'Number' -// IoTeX: 'Number' -// } -// } -// } -const netWorthData = ref([]) - - -// TD: use this composable to track user interactions to dynamically update other components -export default function useLandingStore () { - const convertToUSD = async (currency, date, amount) => { - const conversion = await getConversionRateByDate(currency, 'USD', date) - const rate = convertToWholeUnits(currency, amount) - return conversion * rate - } - - const calculateNetWorthData = async () => { - const netWorthDataRaw = [] - for (let i = 0; i < user.value.accounts.length; i++) { - let account = user.value.accounts[i] - for (let j = 0; j < account.balanceSnapshots.length; j++) { - let snapshot = account.balanceSnapshots[j] - const dateSplit = snapshot.date.split('-') - const parsedDate = parseTime(dateSplit[2] +'/'+dateSplit[1] +'/'+dateSplit[0]) - const dateIndex = netWorthDataRaw.findIndex(item => - item.date.toDateString() === parsedDate.toDateString() - ) - const amount = await convertToUSD(account.currency, snapshot.date, snapshot.balance) - if(dateIndex < 0){ // Date does not exist, add new date to raw array - - const netWorthDataItem = { - // TD: @Howie make snapshot date as an aws date? - date: parsedDate, - totalInUSD: amount, - breakdown: { - walletProviders: { - [account.walletProvider] : amount, - }, - currencies: { - [account.currency] : amount, - - } - } - } - netWorthDataRaw.unshift(netWorthDataItem) - } else { - // Date already exists, add values and sum up balance in usd - netWorthDataRaw[dateIndex].totalInUSD += amount, - - netWorthDataRaw[dateIndex].breakdown.walletProviders[account.walletProvider]? - netWorthDataRaw[dateIndex].breakdown.walletProviders[account.walletProvider] += amount : - netWorthDataRaw[dateIndex].breakdown.walletProviders[account.walletProvider] = amount - - netWorthDataRaw[dateIndex].breakdown.currencies[account.currency]? - netWorthDataRaw[dateIndex].breakdown.currencies[account.currency] += amount : - netWorthDataRaw[dateIndex].breakdown.currencies[account.currency] = amount - } - } - } - // TD: Make sorting method? - netWorthData.value = netWorthDataRaw - } - - // TD: adjust this to fit a wider range of data - const xAxisFormat = (d) => { - if(d.getHours() === 0){ - return (d.getMonth() + 1) + ' / ' + d.getDate() - } else return '' - } - const yAxisFormat = (x) => { - const s = formatSi(x) - switch (s[s.length - 1]) { - case ' G ': return s.slice(0, -1) + ' B ' // billions - case ' k ': return s.slice(0, -1) + ' K ' // thousands - } - return s - } - const updateTooltipValue = (e) => { - tooltipValue.value = '$' + e - } - - const calculateUserConnectedProviders = async () => { - const proiderCollection = [] - const date = new Date() - const f = d3.format(".2f"); - - for (let i = 0; i < user.value.accounts.length; i++) { - const account = user.value.accounts[i] - - const index = proiderCollection.findIndex(item => item.provider === account.walletProvider) - const balance = await convertToUSD(account.currency, date.toDateString(), account.balance) - if(index < 0){ - if(selectedAsset.value.currency === null && selectedAsset.value.provider === null){ - proiderCollection.push({ - provider: account.walletProvider, - balance: Number(f(balance)) - }) - }else if (selectedAsset.value.currency != null && selectedAsset.value.provider === null){ - proiderCollection.push({ - provider: account.walletProvider, - balance: account.currency === selectedAsset.value.currency? Number(f(balance)) : 0.00 - }) - }else if (selectedAsset.value.currency === null && selectedAsset.value.provider != null){ - proiderCollection.push ({ - provider: account.walletProvider, - balance: account.walletProvider === selectedAsset.value.provider? Number(f(balance)) : '---' - }) - } - - } else { - if(selectedAsset.value.currency === null && selectedAsset.value.provider === null){ - proiderCollection[index] = { - provider: account.walletProvider, - balance: f(proiderCollection[index].balance + balance) - } - }else if (selectedAsset.value.currency != null && selectedAsset.value.provider === null){ - proiderCollection[index] = { - provider: account.walletProvider, - balance: account.currency === selectedAsset.value.currency? Number(f(proiderCollection[index].balance + balance)) : proiderCollection[index].balance - } - }else if (selectedAsset.value.currency === null && selectedAsset.value.provider != null){ - proiderCollection[index] = { - provider: account.walletProvider, - balance: account.walletProvider === selectedAsset.value.provider? Number(f(proiderCollection[index].balance + balance)) : proiderCollection[index].balance - } - } - } - } - userConnectedProviders.value = proiderCollection - } - - const aggergateThroughUserCurrencies = async () => { - const proiderCollection = [] - const date = new Date() - const f = d3.format(".2f"); - for (let i = 0; i < user.value.accounts.length; i++) { - const account = user.value.accounts[i] - - const index = proiderCollection.findIndex(item => item.currency === account.currency) - const balance = await convertToUSD(account.currency, date.toDateString(), account.balance) - if(index < 0){ - if(selectedAsset.value.currency === null && selectedAsset.value.provider === null){ - proiderCollection.push({ - currency: account.currency, - balance: Number(f(balance)), - ammount: Number(f(convertToWholeUnits(account.currency, account.balance))) - }) - }else if (selectedAsset.value.currency != null && selectedAsset.value.provider === null){ - proiderCollection.push({ - currency: account.currency, - balance: account.currency === selectedAsset.value.currency? Number(f(balance)) : '---', - ammount: account.currency === selectedAsset.value.currency? Number(f(convertToWholeUnits(account.currency, account.balance))) : '' - }) - }else if (selectedAsset.value.currency === null && selectedAsset.value.provider != null){ - proiderCollection.push ({ - currency: account.currency, - balance: account.walletProvider === selectedAsset.value.provider? Number(f(balance)) : 0.00, - ammount: account.walletProvider === selectedAsset.value.provider? Number(f(convertToWholeUnits(account.currency, account.balance))) : 0 - }) - } - - } else { - if(selectedAsset.value.currency === null && selectedAsset.value.provider === null){ - proiderCollection[index] = { - currency: account.currency, - balance: Number(f(proiderCollection[index].balance + balance)), - ammount: Number(f(proiderCollection[index].ammount + convertToWholeUnits(account.currency, account.balance))) - } - }else if (selectedAsset.value.currency != null && selectedAsset.value.provider === null){ - proiderCollection[index] = { - currency: account.currency, - balance: account.currency === selectedAsset.value.currency? Number(f(proiderCollection[index].balance + balance)) : proiderCollection[index].balance , - ammount: account.currency === selectedAsset.value.currency? Number(f(proiderCollection[index].ammount + convertToWholeUnits(account.currency, account.balance))) : proiderCollection[index].ammount - } - }else if (selectedAsset.value.currency === null && selectedAsset.value.provider != null){ - proiderCollection[index] = { - currency: account.currency, - balance: account.walletProvider === selectedAsset.value.provider? Number(f(proiderCollection[index].balance + balance)) : proiderCollection[index].balance , - ammount: account.walletProvider === selectedAsset.value.provider? Number(f(proiderCollection[index].ammount + convertToWholeUnits(account.currency, account.balance))) : proiderCollection[index].ammount - } - } - } - } - userConnectedCurrencies.value = proiderCollection - } - - watch(selectedAsset, ()=> { - calculateUserConnectedProviders() - aggergateThroughUserCurrencies() - }) - - onMounted(()=> { - if(!initialized.value){ - calculateNetWorthData() - calculateUserConnectedProviders() - aggergateThroughUserCurrencies() - initialized.value = true - } - }) - - return { - netWorthTimeFrame, - netWorthData, - tooltipValue, - userConnectedProviders, - userConnectedCurrencies, - selectedAsset, - xAxisFormat, - yAxisFormat, - updateTooltipValue, - } -} \ No newline at end of file diff --git a/apps/web/tailwind.config.js b/apps/web/tailwind.config.js index c8e0f83f6..0eda2a02d 100644 --- a/apps/web/tailwind.config.js +++ b/apps/web/tailwind.config.js @@ -15,7 +15,7 @@ module.exports = { 'secondary': '#C1D3F8', 'white': '#fff', 'shade': '#615959', - 'grey' : '#E4E4E7', + 'grey' : '#727476', // Blues 'blue_1': '#E5EEFF', @@ -45,7 +45,7 @@ module.exports = { 'warning': '#FBBD84', 'approve': '#7BE198', 'decline': '#FF8080', - 'borders': '#E4E4E7', + 'border': '#B2BACB', }, spacing: { 'gutter': '16px', diff --git a/common/aws-helpers/dist/index.js b/common/aws-helpers/dist/index.js new file mode 100644 index 000000000..8896c1f14 --- /dev/null +++ b/common/aws-helpers/dist/index.js @@ -0,0 +1,48 @@ +"use strict";var r9=Object.create;var cg=Object.defineProperty;var i9=Object.getOwnPropertyDescriptor;var o9=Object.getOwnPropertyNames;var a9=Object.getPrototypeOf,c9=Object.prototype.hasOwnProperty;var u=(e,n)=>()=>(n||e((n={exports:{}}).exports,n),n.exports),l9=(e,n)=>{for(var t in n)cg(e,t,{get:n[t],enumerable:!0})},mq=(e,n,t,s)=>{if(n&&typeof n=="object"||typeof n=="function")for(let r of o9(n))!c9.call(e,r)&&r!==t&&cg(e,r,{get:()=>n[r],enumerable:!(s=i9(n,r))||s.enumerable});return e};var Jo=(e,n,t)=>(t=e!=null?r9(a9(e)):{},mq(n||!e||!e.__esModule?cg(t,"default",{value:e,enumerable:!0}):t,e)),d9=e=>mq(cg({},"__esModule",{value:!0}),e);var X=u((tdt,ug)=>{var pq,gq,yq,_q,fq,Sq,hq,wq,Eq,Cq,vq,Pq,Aq,lg,vx,xq,bq,Iq,Gi,kq,Rq,Nq,zq,qq,Lq,Fq,Dq,Tq,dg;(function(e){var n=typeof global=="object"?global:typeof self=="object"?self:typeof this=="object"?this:{};typeof define=="function"&&define.amd?define("tslib",["exports"],function(s){e(t(n,t(s)))}):typeof ug=="object"&&typeof ug.exports=="object"?e(t(n,t(ug.exports))):e(t(n));function t(s,r){return s!==n&&(typeof Object.create=="function"?Object.defineProperty(s,"__esModule",{value:!0}):s.__esModule=!0),function(i,a){return s[i]=r?r(i,a):a}}})(function(e){var n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(s,r){s.__proto__=r}||function(s,r){for(var i in r)Object.prototype.hasOwnProperty.call(r,i)&&(s[i]=r[i])};pq=function(s,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");n(s,r);function i(){this.constructor=s}s.prototype=r===null?Object.create(r):(i.prototype=r.prototype,new i)},gq=Object.assign||function(s){for(var r,i=1,a=arguments.length;i=0;d--)(l=s[d])&&(c=(o<3?l(c):o>3?l(r,i,c):l(r,i))||c);return o>3&&c&&Object.defineProperty(r,i,c),c},fq=function(s,r){return function(i,a){r(i,a,s)}},Sq=function(s,r,i,a,o,c){function l(_n){if(_n!==void 0&&typeof _n!="function")throw new TypeError("Function expected");return _n}for(var d=a.kind,h=d==="getter"?"get":d==="setter"?"set":"value",v=!r&&s?a.static?s:s.prototype:null,z=r||(v?Object.getOwnPropertyDescriptor(v,a.name):{}),q,T=!1,U=i.length-1;U>=0;U--){var Le={};for(var Ue in a)Le[Ue]=Ue==="access"?{}:a[Ue];for(var Ue in a.access)Le.access[Ue]=a.access[Ue];Le.addInitializer=function(_n){if(T)throw new TypeError("Cannot add initializers after decoration has completed");c.push(l(_n||null))};var $e=(0,i[U])(d==="accessor"?{get:z.get,set:z.set}:z[h],Le);if(d==="accessor"){if($e===void 0)continue;if($e===null||typeof $e!="object")throw new TypeError("Object expected");(q=l($e.get))&&(z.get=q),(q=l($e.set))&&(z.set=q),(q=l($e.init))&&o.push(q)}else(q=l($e))&&(d==="field"?o.push(q):z[h]=q)}v&&Object.defineProperty(v,a.name,z),T=!0},hq=function(s,r,i){for(var a=arguments.length>2,o=0;o0&&c[c.length-1])&&(v[0]===6||v[0]===2)){i=0;continue}if(v[0]===3&&(!c||v[1]>c[0]&&v[1]=s.length&&(s=void 0),{value:s&&s[a++],done:!s}}};throw new TypeError(r?"Object is not iterable.":"Symbol.iterator is not defined.")},vx=function(s,r){var i=typeof Symbol=="function"&&s[Symbol.iterator];if(!i)return s;var a=i.call(s),o,c=[],l;try{for(;(r===void 0||r-- >0)&&!(o=a.next()).done;)c.push(o.value)}catch(d){l={error:d}}finally{try{o&&!o.done&&(i=a.return)&&i.call(a)}finally{if(l)throw l.error}}return c},xq=function(){for(var s=[],r=0;r1||d(T,U)})})}function d(T,U){try{h(a[T](U))}catch(Le){q(c[0][3],Le)}}function h(T){T.value instanceof Gi?Promise.resolve(T.value.v).then(v,z):q(c[0][2],T)}function v(T){d("next",T)}function z(T){d("throw",T)}function q(T,U){T(U),c.shift(),c.length&&d(c[0][0],c[0][1])}},Rq=function(s){var r,i;return r={},a("next"),a("throw",function(o){throw o}),a("return"),r[Symbol.iterator]=function(){return this},r;function a(o,c){r[o]=s[o]?function(l){return(i=!i)?{value:Gi(s[o](l)),done:!1}:c?c(l):l}:c}},Nq=function(s){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var r=s[Symbol.asyncIterator],i;return r?r.call(s):(s=typeof lg=="function"?lg(s):s[Symbol.iterator](),i={},a("next"),a("throw"),a("return"),i[Symbol.asyncIterator]=function(){return this},i);function a(c){i[c]=s[c]&&function(l){return new Promise(function(d,h){l=s[c](l),o(d,h,l.done,l.value)})}}function o(c,l,d,h){Promise.resolve(h).then(function(v){c({value:v,done:d})},l)}},zq=function(s,r){return Object.defineProperty?Object.defineProperty(s,"raw",{value:r}):s.raw=r,s};var t=Object.create?function(s,r){Object.defineProperty(s,"default",{enumerable:!0,value:r})}:function(s,r){s.default=r};qq=function(s){if(s&&s.__esModule)return s;var r={};if(s!=null)for(var i in s)i!=="default"&&Object.prototype.hasOwnProperty.call(s,i)&&dg(r,s,i);return t(r,s),r},Lq=function(s){return s&&s.__esModule?s:{default:s}},Fq=function(s,r,i,a){if(i==="a"&&!a)throw new TypeError("Private accessor was defined without a getter");if(typeof r=="function"?s!==r||!a:!r.has(s))throw new TypeError("Cannot read private member from an object whose class did not declare it");return i==="m"?a:i==="a"?a.call(s):a?a.value:r.get(s)},Dq=function(s,r,i,a,o){if(a==="m")throw new TypeError("Private method is not writable");if(a==="a"&&!o)throw new TypeError("Private accessor was defined without a setter");if(typeof r=="function"?s!==r||!o:!r.has(s))throw new TypeError("Cannot write private member to an object whose class did not declare it");return a==="a"?o.call(s,i):o?o.value=i:r.set(s,i),i},Tq=function(s,r){if(r===null||typeof r!="object"&&typeof r!="function")throw new TypeError("Cannot use 'in' operator on non-object");return typeof s=="function"?r===s:s.has(r)},e("__extends",pq),e("__assign",gq),e("__rest",yq),e("__decorate",_q),e("__param",fq),e("__esDecorate",Sq),e("__runInitializers",hq),e("__propKey",wq),e("__setFunctionName",Eq),e("__metadata",Cq),e("__awaiter",vq),e("__generator",Pq),e("__exportStar",Aq),e("__createBinding",dg),e("__values",lg),e("__read",vx),e("__spread",xq),e("__spreadArrays",bq),e("__spreadArray",Iq),e("__await",Gi),e("__asyncGenerator",kq),e("__asyncDelegator",Rq),e("__asyncValues",Nq),e("__makeTemplateObject",zq),e("__importStar",qq),e("__importDefault",Lq),e("__classPrivateFieldGet",Fq),e("__classPrivateFieldSet",Dq),e("__classPrivateFieldIn",Tq)})});var jq=u(li=>{"use strict";Object.defineProperty(li,"__esModule",{value:!0});li.booleanSelector=li.SelectorType=void 0;var u9;(function(e){e.ENV="env",e.CONFIG="shared config entry"})(u9=li.SelectorType||(li.SelectorType={}));var m9=(e,n,t)=>{if(n in e){if(e[n]==="true")return!0;if(e[n]==="false")return!1;throw new Error(`Cannot load ${t} "${n}". Expected "true" or "false", got ${e[n]}.`)}};li.booleanSelector=m9});var Yo=u(Px=>{"use strict";Object.defineProperty(Px,"__esModule",{value:!0});var p9=X();p9.__exportStar(jq(),Px)});var Mq=u(Rn=>{"use strict";Object.defineProperty(Rn,"__esModule",{value:!0});Rn.NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS=Rn.DEFAULT_USE_DUALSTACK_ENDPOINT=Rn.CONFIG_USE_DUALSTACK_ENDPOINT=Rn.ENV_USE_DUALSTACK_ENDPOINT=void 0;var mg=Yo();Rn.ENV_USE_DUALSTACK_ENDPOINT="AWS_USE_DUALSTACK_ENDPOINT";Rn.CONFIG_USE_DUALSTACK_ENDPOINT="use_dualstack_endpoint";Rn.DEFAULT_USE_DUALSTACK_ENDPOINT=!1;Rn.NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS={environmentVariableSelector:e=>(0,mg.booleanSelector)(e,Rn.ENV_USE_DUALSTACK_ENDPOINT,mg.SelectorType.ENV),configFileSelector:e=>(0,mg.booleanSelector)(e,Rn.CONFIG_USE_DUALSTACK_ENDPOINT,mg.SelectorType.CONFIG),default:!1}});var Oq=u(Nn=>{"use strict";Object.defineProperty(Nn,"__esModule",{value:!0});Nn.NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS=Nn.DEFAULT_USE_FIPS_ENDPOINT=Nn.CONFIG_USE_FIPS_ENDPOINT=Nn.ENV_USE_FIPS_ENDPOINT=void 0;var pg=Yo();Nn.ENV_USE_FIPS_ENDPOINT="AWS_USE_FIPS_ENDPOINT";Nn.CONFIG_USE_FIPS_ENDPOINT="use_fips_endpoint";Nn.DEFAULT_USE_FIPS_ENDPOINT=!1;Nn.NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS={environmentVariableSelector:e=>(0,pg.booleanSelector)(e,Nn.ENV_USE_FIPS_ENDPOINT,pg.SelectorType.ENV),configFileSelector:e=>(0,pg.booleanSelector)(e,Nn.CONFIG_USE_FIPS_ENDPOINT,pg.SelectorType.CONFIG),default:!1}});var Bq=u(gg=>{"use strict";Object.defineProperty(gg,"__esModule",{value:!0});gg.normalizeProvider=void 0;var g9=e=>{if(typeof e=="function")return e;let n=Promise.resolve(e);return()=>n};gg.normalizeProvider=g9});var di=u(Ax=>{"use strict";Object.defineProperty(Ax,"__esModule",{value:!0});var y9=X();y9.__exportStar(Bq(),Ax)});var Uq=u(yg=>{"use strict";Object.defineProperty(yg,"__esModule",{value:!0});yg.resolveCustomEndpointsConfig=void 0;var Gq=di(),_9=e=>{var n,t;let{endpoint:s,urlParser:r}=e;return{...e,tls:(n=e.tls)!==null&&n!==void 0?n:!0,endpoint:(0,Gq.normalizeProvider)(typeof s=="string"?r(s):s),isCustomEndpoint:!0,useDualstackEndpoint:(0,Gq.normalizeProvider)((t=e.useDualstackEndpoint)!==null&&t!==void 0?t:!1)}};yg.resolveCustomEndpointsConfig=_9});var Xq=u(_g=>{"use strict";Object.defineProperty(_g,"__esModule",{value:!0});_g.getEndpointFromRegion=void 0;var f9=async e=>{var n;let{tls:t=!0}=e,s=await e.region();if(!new RegExp(/^([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9-]{0,61}[a-zA-Z0-9])$/).test(s))throw new Error("Invalid region in client config");let i=await e.useDualstackEndpoint(),a=await e.useFipsEndpoint(),{hostname:o}=(n=await e.regionInfoProvider(s,{useDualstackEndpoint:i,useFipsEndpoint:a}))!==null&&n!==void 0?n:{};if(!o)throw new Error("Cannot resolve hostname from client config");return e.urlParser(`${t?"https:":"http:"}//${o}`)};_g.getEndpointFromRegion=f9});var Hq=u(fg=>{"use strict";Object.defineProperty(fg,"__esModule",{value:!0});fg.resolveEndpointsConfig=void 0;var $q=di(),S9=Xq(),h9=e=>{var n,t;let s=(0,$q.normalizeProvider)((n=e.useDualstackEndpoint)!==null&&n!==void 0?n:!1),{endpoint:r,useFipsEndpoint:i,urlParser:a}=e;return{...e,tls:(t=e.tls)!==null&&t!==void 0?t:!0,endpoint:r?(0,$q.normalizeProvider)(typeof r=="string"?a(r):r):()=>(0,S9.getEndpointFromRegion)({...e,useDualstackEndpoint:s,useFipsEndpoint:i}),isCustomEndpoint:!!r,useDualstackEndpoint:s}};fg.resolveEndpointsConfig=h9});var Vq=u(Ui=>{"use strict";Object.defineProperty(Ui,"__esModule",{value:!0});var Sg=X();Sg.__exportStar(Mq(),Ui);Sg.__exportStar(Oq(),Ui);Sg.__exportStar(Uq(),Ui);Sg.__exportStar(Hq(),Ui)});var Wq=u(zn=>{"use strict";Object.defineProperty(zn,"__esModule",{value:!0});zn.NODE_REGION_CONFIG_FILE_OPTIONS=zn.NODE_REGION_CONFIG_OPTIONS=zn.REGION_INI_NAME=zn.REGION_ENV_NAME=void 0;zn.REGION_ENV_NAME="AWS_REGION";zn.REGION_INI_NAME="region";zn.NODE_REGION_CONFIG_OPTIONS={environmentVariableSelector:e=>e[zn.REGION_ENV_NAME],configFileSelector:e=>e[zn.REGION_INI_NAME],default:()=>{throw new Error("Region is missing")}};zn.NODE_REGION_CONFIG_FILE_OPTIONS={preferredFile:"credentials"}});var xx=u(hg=>{"use strict";Object.defineProperty(hg,"__esModule",{value:!0});hg.isFipsRegion=void 0;var w9=e=>typeof e=="string"&&(e.startsWith("fips-")||e.endsWith("-fips"));hg.isFipsRegion=w9});var Kq=u(wg=>{"use strict";Object.defineProperty(wg,"__esModule",{value:!0});wg.getRealRegion=void 0;var E9=xx(),C9=e=>(0,E9.isFipsRegion)(e)?["fips-aws-global","aws-fips"].includes(e)?"us-east-1":e.replace(/fips-(dkr-|prod-)?|-fips/,""):e;wg.getRealRegion=C9});var Jq=u(Eg=>{"use strict";Object.defineProperty(Eg,"__esModule",{value:!0});Eg.resolveRegionConfig=void 0;var Qq=Kq(),v9=xx(),P9=e=>{let{region:n,useFipsEndpoint:t}=e;if(!n)throw new Error("Region is missing");return{...e,region:async()=>{if(typeof n=="string")return(0,Qq.getRealRegion)(n);let s=await n();return(0,Qq.getRealRegion)(s)},useFipsEndpoint:async()=>{let s=typeof n=="string"?n:await n();return(0,v9.isFipsRegion)(s)?!0:typeof t!="function"?Promise.resolve(!!t):t()}}};Eg.resolveRegionConfig=P9});var Zq=u(Cg=>{"use strict";Object.defineProperty(Cg,"__esModule",{value:!0});var Yq=X();Yq.__exportStar(Wq(),Cg);Yq.__exportStar(Jq(),Cg)});var tL=u(eL=>{"use strict";Object.defineProperty(eL,"__esModule",{value:!0})});var sL=u(nL=>{"use strict";Object.defineProperty(nL,"__esModule",{value:!0})});var rL=u(vg=>{"use strict";Object.defineProperty(vg,"__esModule",{value:!0});vg.getHostnameFromVariants=void 0;var A9=(e=[],{useFipsEndpoint:n,useDualstackEndpoint:t})=>{var s;return(s=e.find(({tags:r})=>n===r.includes("fips")&&t===r.includes("dualstack")))===null||s===void 0?void 0:s.hostname};vg.getHostnameFromVariants=A9});var iL=u(Pg=>{"use strict";Object.defineProperty(Pg,"__esModule",{value:!0});Pg.getResolvedHostname=void 0;var x9=(e,{regionHostname:n,partitionHostname:t})=>n||(t?t.replace("{region}",e):void 0);Pg.getResolvedHostname=x9});var oL=u(Ag=>{"use strict";Object.defineProperty(Ag,"__esModule",{value:!0});Ag.getResolvedPartition=void 0;var b9=(e,{partitionHash:n})=>{var t;return(t=Object.keys(n||{}).find(s=>n[s].regions.includes(e)))!==null&&t!==void 0?t:"aws"};Ag.getResolvedPartition=b9});var aL=u(xg=>{"use strict";Object.defineProperty(xg,"__esModule",{value:!0});xg.getResolvedSigningRegion=void 0;var I9=(e,{signingRegion:n,regionRegex:t,useFipsEndpoint:s})=>{if(n)return n;if(s){let r=t.replace("\\\\","\\").replace(/^\^/g,"\\.").replace(/\$$/g,"\\."),i=e.match(r);if(i)return i[0].slice(1,-1)}};xg.getResolvedSigningRegion=I9});var lL=u(bg=>{"use strict";Object.defineProperty(bg,"__esModule",{value:!0});bg.getRegionInfo=void 0;var cL=rL(),k9=iL(),R9=oL(),N9=aL(),z9=(e,{useFipsEndpoint:n=!1,useDualstackEndpoint:t=!1,signingService:s,regionHash:r,partitionHash:i})=>{var a,o,c,l,d,h;let v=(0,R9.getResolvedPartition)(e,{partitionHash:i}),z=e in r?e:(o=(a=i[v])===null||a===void 0?void 0:a.endpoint)!==null&&o!==void 0?o:e,q={useFipsEndpoint:n,useDualstackEndpoint:t},T=(0,cL.getHostnameFromVariants)((c=r[z])===null||c===void 0?void 0:c.variants,q),U=(0,cL.getHostnameFromVariants)((l=i[v])===null||l===void 0?void 0:l.variants,q),Le=(0,k9.getResolvedHostname)(z,{regionHostname:T,partitionHostname:U});if(Le===void 0)throw new Error(`Endpoint resolution failed for: ${{resolvedRegion:z,useFipsEndpoint:n,useDualstackEndpoint:t}}`);let Ue=(0,N9.getResolvedSigningRegion)(Le,{signingRegion:(d=r[z])===null||d===void 0?void 0:d.signingRegion,regionRegex:i[v].regionRegex,useFipsEndpoint:n});return{partition:v,signingService:s,hostname:Le,...Ue&&{signingRegion:Ue},...((h=r[z])===null||h===void 0?void 0:h.signingService)&&{signingService:r[z].signingService}}};bg.getRegionInfo=z9});var dL=u(Zo=>{"use strict";Object.defineProperty(Zo,"__esModule",{value:!0});var bx=X();bx.__exportStar(tL(),Zo);bx.__exportStar(sL(),Zo);bx.__exportStar(lL(),Zo)});var tn=u(ea=>{"use strict";Object.defineProperty(ea,"__esModule",{value:!0});var Ix=X();Ix.__exportStar(Vq(),ea);Ix.__exportStar(Zq(),ea);Ix.__exportStar(dL(),ea)});var kx=u(ta=>{"use strict";Object.defineProperty(ta,"__esModule",{value:!0});ta.FieldPosition=void 0;var q9;(function(e){e[e.HEADER=0]="HEADER",e[e.TRAILER=1]="TRAILER"})(q9=ta.FieldPosition||(ta.FieldPosition={}))});var uL=u(Ig=>{"use strict";Object.defineProperty(Ig,"__esModule",{value:!0});Ig.Field=void 0;var L9=kx(),Rx=class{constructor({name:n,kind:t=L9.FieldPosition.HEADER,values:s=[]}){this.name=n,this.kind=t,this.values=s}add(n){this.values.push(n)}set(n){this.values=n}remove(n){this.values=this.values.filter(t=>t!==n)}toString(){return this.values.map(n=>n.includes(",")||n.includes(" ")?`"${n}"`:n).join(", ")}get(){return this.values}};Ig.Field=Rx});var mL=u(kg=>{"use strict";Object.defineProperty(kg,"__esModule",{value:!0});kg.Fields=void 0;var Nx=class{constructor({fields:n=[],encoding:t="utf-8"}){this.entries={},n.forEach(this.setField.bind(this)),this.encoding=t}setField(n){this.entries[n.name.toLowerCase()]=n}getField(n){return this.entries[n.toLowerCase()]}removeField(n){delete this.entries[n.toLowerCase()]}getByType(n){return Object.values(this.entries).filter(t=>t.kind===n)}};kg.Fields=Nx});var gL=u(pL=>{"use strict";Object.defineProperty(pL,"__esModule",{value:!0})});var yL=u(Rg=>{"use strict";Object.defineProperty(Rg,"__esModule",{value:!0});Rg.HttpRequest=void 0;var na=class{constructor(n){this.method=n.method||"GET",this.hostname=n.hostname||"localhost",this.port=n.port,this.query=n.query||{},this.headers=n.headers||{},this.body=n.body,this.protocol=n.protocol?n.protocol.slice(-1)!==":"?`${n.protocol}:`:n.protocol:"https:",this.path=n.path?n.path.charAt(0)!=="/"?`/${n.path}`:n.path:"/"}static isInstance(n){if(!n)return!1;let t=n;return"method"in t&&"protocol"in t&&"hostname"in t&&"path"in t&&typeof t.query=="object"&&typeof t.headers=="object"}clone(){let n=new na({...this,headers:{...this.headers}});return n.query&&(n.query=F9(n.query)),n}};Rg.HttpRequest=na;function F9(e){return Object.keys(e).reduce((n,t)=>{let s=e[t];return{...n,[t]:Array.isArray(s)?[...s]:s}},{})}});var _L=u(Ng=>{"use strict";Object.defineProperty(Ng,"__esModule",{value:!0});Ng.HttpResponse=void 0;var zx=class{constructor(n){this.statusCode=n.statusCode,this.headers=n.headers||{},this.body=n.body}static isInstance(n){if(!n)return!1;let t=n;return typeof t.statusCode=="number"&&typeof t.headers=="object"}};Ng.HttpResponse=zx});var fL=u(zg=>{"use strict";Object.defineProperty(zg,"__esModule",{value:!0});zg.isValidHostname=void 0;function D9(e){return/^[a-z0-9][a-z0-9\.\-]*[a-z0-9]$/.test(e)}zg.isValidHostname=D9});var gt=u(Bs=>{"use strict";Object.defineProperty(Bs,"__esModule",{value:!0});var ui=X();ui.__exportStar(uL(),Bs);ui.__exportStar(kx(),Bs);ui.__exportStar(mL(),Bs);ui.__exportStar(gL(),Bs);ui.__exportStar(yL(),Bs);ui.__exportStar(_L(),Bs);ui.__exportStar(fL(),Bs)});var fr=u(Gs=>{"use strict";Object.defineProperty(Gs,"__esModule",{value:!0});Gs.getContentLengthPlugin=Gs.contentLengthMiddlewareOptions=Gs.contentLengthMiddleware=void 0;var T9=gt(),SL="content-length";function hL(e){return n=>async t=>{let s=t.request;if(T9.HttpRequest.isInstance(s)){let{body:r,headers:i}=s;if(r&&Object.keys(i).map(a=>a.toLowerCase()).indexOf(SL)===-1)try{let a=e(r);s.headers={...s.headers,[SL]:String(a)}}catch{}}return n({...t,request:s})}}Gs.contentLengthMiddleware=hL;Gs.contentLengthMiddlewareOptions={step:"build",tags:["SET_CONTENT_LENGTH","CONTENT_LENGTH"],name:"contentLengthMiddleware",override:!0};var j9=e=>({applyToStack:n=>{n.add(hL(e.bodyLengthChecker),Gs.contentLengthMiddlewareOptions)}});Gs.getContentLengthPlugin=j9});var wL=u(fn=>{"use strict";Object.defineProperty(fn,"__esModule",{value:!0});fn.isArnBucketName=fn.isDnsCompatibleBucketName=fn.S3_HOSTNAME_PATTERN=fn.DOT_PATTERN=fn.resolveParamsForS3=void 0;var M9=async e=>{let n=e?.Bucket||"";if(typeof e.Bucket=="string"&&(e.Bucket=n.replace(/#/g,encodeURIComponent("#")).replace(/\?/g,encodeURIComponent("?"))),(0,fn.isArnBucketName)(n)){if(e.ForcePathStyle===!0)throw new Error("Path-style addressing cannot be used with ARN buckets")}else(!(0,fn.isDnsCompatibleBucketName)(n)||n.indexOf(".")!==-1&&!String(e.Endpoint).startsWith("http:")||n.toLowerCase()!==n||n.length<3)&&(e.ForcePathStyle=!0);return e.DisableMultiRegionAccessPoints&&(e.disableMultiRegionAccessPoints=!0,e.DisableMRAP=!0),e};fn.resolveParamsForS3=M9;var O9=/^[a-z0-9][a-z0-9\.\-]{1,61}[a-z0-9]$/,B9=/(\d+\.){3}\d+/,G9=/\.\./;fn.DOT_PATTERN=/\./;fn.S3_HOSTNAME_PATTERN=/^(.+\.)?s3(-fips)?(\.dualstack)?[.-]([a-z0-9-]+)\./;var U9=e=>O9.test(e)&&!B9.test(e)&&!G9.test(e);fn.isDnsCompatibleBucketName=U9;var X9=e=>{let[n,t,s,r,i,a]=e.split(":"),o=n==="arn"&&e.split(":").length>=6,c=[n,t,s,i,a].filter(Boolean).length===5;if(o&&!c)throw new Error(`Invalid ARN: ${e} was an invalid ARN.`);return n==="arn"&&!!t&&!!s&&!!i&&!!a};fn.isArnBucketName=X9});var EL=u(qx=>{"use strict";Object.defineProperty(qx,"__esModule",{value:!0});var $9=X();$9.__exportStar(wL(),qx)});var CL=u(qg=>{"use strict";Object.defineProperty(qg,"__esModule",{value:!0});qg.createConfigValueProvider=void 0;var H9=(e,n,t)=>{let s=async()=>{var r;let i=(r=t[e])!==null&&r!==void 0?r:t[n];return typeof i=="function"?i():i};return e==="endpoint"||n==="endpoint"?async()=>{let r=await s();if(r&&typeof r=="object"){if("url"in r)return r.url.href;if("hostname"in r){let{protocol:i,hostname:a,port:o,path:c}=r;return`${i}//${a}${o?":"+o:""}${c}`}}return r}:s};qg.createConfigValueProvider=H9});var Lx=u(mi=>{"use strict";Object.defineProperty(mi,"__esModule",{value:!0});mi.resolveParams=mi.getEndpointFromInstructions=void 0;var V9=EL(),W9=CL(),K9=async(e,n,t,s)=>{let r=await(0,mi.resolveParams)(e,n,t);if(typeof t.endpointProvider!="function")throw new Error("config.endpointProvider is not set.");return t.endpointProvider(r,s)};mi.getEndpointFromInstructions=K9;var Q9=async(e,n,t)=>{var s;let r={},i=((s=n?.getEndpointParameterInstructions)===null||s===void 0?void 0:s.call(n))||{};for(let[a,o]of Object.entries(i))switch(o.type){case"staticContextParams":r[a]=o.value;break;case"contextParams":r[a]=e[o.name];break;case"clientContextParams":case"builtInParams":r[a]=await(0,W9.createConfigValueProvider)(o.name,a,t)();break;default:throw new Error("Unrecognized endpoint parameter instruction: "+JSON.stringify(o))}return Object.keys(i).length===0&&Object.assign(r,t),String(t.serviceId).toLowerCase()==="s3"&&await(0,V9.resolveParamsForS3)(r),r};mi.resolveParams=Q9});var vL=u(Lg=>{"use strict";Object.defineProperty(Lg,"__esModule",{value:!0});Lg.parseQueryString=void 0;function J9(e){let n={};if(e=e.replace(/^\?/,""),e)for(let t of e.split("&")){let[s,r=null]=t.split("=");s=decodeURIComponent(s),r&&(r=decodeURIComponent(r)),s in n?Array.isArray(n[s])?n[s].push(r):n[s]=[n[s],r]:n[s]=r}return n}Lg.parseQueryString=J9});var ts=u(sa=>{"use strict";Object.defineProperty(sa,"__esModule",{value:!0});sa.parseUrl=void 0;var Y9=vL(),Z9=e=>{if(typeof e=="string")return(0,sa.parseUrl)(new URL(e));let{hostname:n,pathname:t,port:s,protocol:r,search:i}=e,a;return i&&(a=(0,Y9.parseQueryString)(i)),{hostname:n,port:s?parseInt(s):void 0,protocol:r,path:t,query:a}};sa.parseUrl=Z9});var Fx=u(Fg=>{"use strict";Object.defineProperty(Fg,"__esModule",{value:!0});Fg.toEndpointV1=void 0;var PL=ts(),eJ=e=>typeof e=="object"?"url"in e?(0,PL.parseUrl)(e.url):e:(0,PL.parseUrl)(e);Fg.toEndpointV1=eJ});var xL=u(Dg=>{"use strict";Object.defineProperty(Dg,"__esModule",{value:!0});var AL=X();AL.__exportStar(Lx(),Dg);AL.__exportStar(Fx(),Dg)});var Dx=u(Tg=>{"use strict";Object.defineProperty(Tg,"__esModule",{value:!0});Tg.endpointMiddleware=void 0;var tJ=Lx(),nJ=({config:e,instructions:n})=>(t,s)=>async r=>{var i,a;let o=await(0,tJ.getEndpointFromInstructions)(r.input,{getEndpointParameterInstructions(){return n}},{...e},s);s.endpointV2=o,s.authSchemes=(i=o.properties)===null||i===void 0?void 0:i.authSchemes;let c=(a=s.authSchemes)===null||a===void 0?void 0:a[0];return c&&(s.signing_region=c.signingRegion,s.signing_service=c.signingName),t({...r})};Tg.endpointMiddleware=nJ});var Tx=u(jg=>{"use strict";Object.defineProperty(jg,"__esModule",{value:!0});jg.deserializerMiddleware=void 0;var sJ=(e,n)=>(t,s)=>async r=>{let{response:i}=await t(r);try{let a=await n(i,e);return{response:i,output:a}}catch(a){throw Object.defineProperty(a,"$response",{value:i}),a}};jg.deserializerMiddleware=sJ});var jx=u(Mg=>{"use strict";Object.defineProperty(Mg,"__esModule",{value:!0});Mg.serializerMiddleware=void 0;var rJ=(e,n)=>(t,s)=>async r=>{var i;let a=((i=s.endpointV2)===null||i===void 0?void 0:i.url)&&e.urlParser?async()=>e.urlParser(s.endpointV2.url):e.endpoint;if(!a)throw new Error("No valid endpoint provider available.");let o=await n(r.input,{...e,endpoint:a});return t({...r,request:o})};Mg.serializerMiddleware=rJ});var bL=u(ns=>{"use strict";Object.defineProperty(ns,"__esModule",{value:!0});ns.getSerdePlugin=ns.serializerMiddlewareOption=ns.deserializerMiddlewareOption=void 0;var iJ=Tx(),oJ=jx();ns.deserializerMiddlewareOption={name:"deserializerMiddleware",step:"deserialize",tags:["DESERIALIZER"],override:!0};ns.serializerMiddlewareOption={name:"serializerMiddleware",step:"serialize",tags:["SERIALIZER"],override:!0};function aJ(e,n,t){return{applyToStack:s=>{s.add((0,iJ.deserializerMiddleware)(e,t),ns.deserializerMiddlewareOption),s.add((0,oJ.serializerMiddleware)(e,n),ns.serializerMiddlewareOption)}}}ns.getSerdePlugin=aJ});var b=u(ra=>{"use strict";Object.defineProperty(ra,"__esModule",{value:!0});var Mx=X();Mx.__exportStar(Tx(),ra);Mx.__exportStar(bL(),ra);Mx.__exportStar(jx(),ra)});var IL=u(pi=>{"use strict";Object.defineProperty(pi,"__esModule",{value:!0});pi.getEndpointPlugin=pi.endpointMiddlewareOptions=void 0;var cJ=b(),lJ=Dx();pi.endpointMiddlewareOptions={step:"serialize",tags:["ENDPOINT_PARAMETERS","ENDPOINT_V2","ENDPOINT"],name:"endpointV2Middleware",override:!0,relation:"before",toMiddleware:cJ.serializerMiddlewareOption.name};var dJ=(e,n)=>({applyToStack:t=>{t.addRelativeTo((0,lJ.endpointMiddleware)({config:e,instructions:n}),pi.endpointMiddlewareOptions)}});pi.getEndpointPlugin=dJ});var kL=u(Og=>{"use strict";Object.defineProperty(Og,"__esModule",{value:!0});Og.resolveEndpointConfig=void 0;var Ox=di(),uJ=Fx(),mJ=e=>{var n,t,s;let r=(n=e.tls)!==null&&n!==void 0?n:!0,{endpoint:i}=e,a=i!=null?async()=>(0,uJ.toEndpointV1)(await(0,Ox.normalizeProvider)(i)()):void 0;return{...e,endpoint:a,tls:r,isCustomEndpoint:!!i,useDualstackEndpoint:(0,Ox.normalizeProvider)((t=e.useDualstackEndpoint)!==null&&t!==void 0?t:!1),useFipsEndpoint:(0,Ox.normalizeProvider)((s=e.useFipsEndpoint)!==null&&s!==void 0?s:!1)}};Og.resolveEndpointConfig=mJ});var NL=u(RL=>{"use strict";Object.defineProperty(RL,"__esModule",{value:!0})});var x=u(gi=>{"use strict";Object.defineProperty(gi,"__esModule",{value:!0});var ia=X();ia.__exportStar(xL(),gi);ia.__exportStar(Dx(),gi);ia.__exportStar(IL(),gi);ia.__exportStar(kL(),gi);ia.__exportStar(NL(),gi)});var Sr=u(qn=>{"use strict";Object.defineProperty(qn,"__esModule",{value:!0});qn.getHostHeaderPlugin=qn.hostHeaderMiddlewareOptions=qn.hostHeaderMiddleware=qn.resolveHostHeaderConfig=void 0;var pJ=gt();function gJ(e){return e}qn.resolveHostHeaderConfig=gJ;var yJ=e=>n=>async t=>{if(!pJ.HttpRequest.isInstance(t.request))return n(t);let{request:s}=t,{handlerProtocol:r=""}=e.requestHandler.metadata||{};if(r.indexOf("h2")>=0&&!s.headers[":authority"])delete s.headers.host,s.headers[":authority"]="";else if(!s.headers.host){let i=s.hostname;s.port!=null&&(i+=`:${s.port}`),s.headers.host=i}return n(t)};qn.hostHeaderMiddleware=yJ;qn.hostHeaderMiddlewareOptions={name:"hostHeaderMiddleware",step:"build",priority:"low",tags:["HOST"],override:!0};var _J=e=>({applyToStack:n=>{n.add((0,qn.hostHeaderMiddleware)(e),qn.hostHeaderMiddlewareOptions)}});qn.getHostHeaderPlugin=_J});var zL=u(ss=>{"use strict";Object.defineProperty(ss,"__esModule",{value:!0});ss.getLoggerPlugin=ss.loggerMiddlewareOptions=ss.loggerMiddleware=void 0;var fJ=()=>(e,n)=>async t=>{let s=await e(t),{clientName:r,commandName:i,logger:a,inputFilterSensitiveLog:o,outputFilterSensitiveLog:c,dynamoDbDocumentClientOptions:l={}}=n,{overrideInputFilterSensitiveLog:d,overrideOutputFilterSensitiveLog:h}=l;if(!a)return s;if(typeof a.info=="function"){let{$metadata:v,...z}=s.output;a.info({clientName:r,commandName:i,input:(d??o)(t.input),output:(h??c)(z),metadata:v})}return s};ss.loggerMiddleware=fJ;ss.loggerMiddlewareOptions={name:"loggerMiddleware",tags:["LOGGER"],step:"initialize",override:!0};var SJ=e=>({applyToStack:n=>{n.add((0,ss.loggerMiddleware)(),ss.loggerMiddlewareOptions)}});ss.getLoggerPlugin=SJ});var hr=u(Bx=>{"use strict";Object.defineProperty(Bx,"__esModule",{value:!0});var hJ=X();hJ.__exportStar(zL(),Bx)});var wr=u(rs=>{"use strict";Object.defineProperty(rs,"__esModule",{value:!0});rs.getRecursionDetectionPlugin=rs.addRecursionDetectionMiddlewareOptions=rs.recursionDetectionMiddleware=void 0;var wJ=gt(),qL="X-Amzn-Trace-Id",EJ="AWS_LAMBDA_FUNCTION_NAME",CJ="_X_AMZN_TRACE_ID",vJ=e=>n=>async t=>{let{request:s}=t;if(!wJ.HttpRequest.isInstance(s)||e.runtime!=="node"||s.headers.hasOwnProperty(qL))return n(t);let r=process.env[EJ],i=process.env[CJ],a=o=>typeof o=="string"&&o.length>0;return a(r)&&a(i)&&(s.headers[qL]=i),n({...t,request:s})};rs.recursionDetectionMiddleware=vJ;rs.addRecursionDetectionMiddlewareOptions={step:"build",tags:["RECURSION_DETECTION"],name:"recursionDetectionMiddleware",override:!0,priority:"low"};var PJ=e=>({applyToStack:n=>{n.add((0,rs.recursionDetectionMiddleware)(e),rs.addRecursionDetectionMiddlewareOptions)}});rs.getRecursionDetectionPlugin=PJ});var Bg=u(Us=>{"use strict";Object.defineProperty(Us,"__esModule",{value:!0});Us.DEFAULT_RETRY_MODE=Us.DEFAULT_MAX_ATTEMPTS=Us.RETRY_MODES=void 0;var AJ;(function(e){e.STANDARD="standard",e.ADAPTIVE="adaptive"})(AJ=Us.RETRY_MODES||(Us.RETRY_MODES={}));Us.DEFAULT_MAX_ATTEMPTS=3;Us.DEFAULT_RETRY_MODE="STANDARD"});var LL=u(Ln=>{"use strict";Object.defineProperty(Ln,"__esModule",{value:!0});Ln.NODEJS_TIMEOUT_ERROR_CODES=Ln.TRANSIENT_ERROR_STATUS_CODES=Ln.TRANSIENT_ERROR_CODES=Ln.THROTTLING_ERROR_CODES=Ln.CLOCK_SKEW_ERROR_CODES=void 0;Ln.CLOCK_SKEW_ERROR_CODES=["AuthFailure","InvalidSignatureException","RequestExpired","RequestInTheFuture","RequestTimeTooSkewed","SignatureDoesNotMatch"];Ln.THROTTLING_ERROR_CODES=["BandwidthLimitExceeded","EC2ThrottledException","LimitExceededException","PriorRequestNotComplete","ProvisionedThroughputExceededException","RequestLimitExceeded","RequestThrottled","RequestThrottledException","SlowDown","ThrottledException","Throttling","ThrottlingException","TooManyRequestsException","TransactionInProgressException"];Ln.TRANSIENT_ERROR_CODES=["AbortError","TimeoutError","RequestTimeout","RequestTimeoutException"];Ln.TRANSIENT_ERROR_STATUS_CODES=[500,502,503,504];Ln.NODEJS_TIMEOUT_ERROR_CODES=["ECONNRESET","EPIPE","ETIMEDOUT"]});var aa=u(An=>{"use strict";Object.defineProperty(An,"__esModule",{value:!0});An.isServerError=An.isTransientError=An.isThrottlingError=An.isClockSkewError=An.isRetryableByTrait=void 0;var oa=LL(),xJ=e=>e.$retryable!==void 0;An.isRetryableByTrait=xJ;var bJ=e=>oa.CLOCK_SKEW_ERROR_CODES.includes(e.name);An.isClockSkewError=bJ;var IJ=e=>{var n,t;return((n=e.$metadata)===null||n===void 0?void 0:n.httpStatusCode)===429||oa.THROTTLING_ERROR_CODES.includes(e.name)||((t=e.$retryable)===null||t===void 0?void 0:t.throttling)==!0};An.isThrottlingError=IJ;var kJ=e=>{var n;return oa.TRANSIENT_ERROR_CODES.includes(e.name)||oa.NODEJS_TIMEOUT_ERROR_CODES.includes(e?.code||"")||oa.TRANSIENT_ERROR_STATUS_CODES.includes(((n=e.$metadata)===null||n===void 0?void 0:n.httpStatusCode)||0)};An.isTransientError=kJ;var RJ=e=>{var n;if(((n=e.$metadata)===null||n===void 0?void 0:n.httpStatusCode)!==void 0){let t=e.$metadata.httpStatusCode;return 500<=t&&t<=599&&!(0,An.isTransientError)(e)}return!1};An.isServerError=RJ});var Ux=u(Gg=>{"use strict";Object.defineProperty(Gg,"__esModule",{value:!0});Gg.DefaultRateLimiter=void 0;var NJ=aa(),Gx=class{constructor(n){var t,s,r,i,a;this.currentCapacity=0,this.enabled=!1,this.lastMaxRate=0,this.measuredTxRate=0,this.requestCount=0,this.lastTimestamp=0,this.timeWindow=0,this.beta=(t=n?.beta)!==null&&t!==void 0?t:.7,this.minCapacity=(s=n?.minCapacity)!==null&&s!==void 0?s:1,this.minFillRate=(r=n?.minFillRate)!==null&&r!==void 0?r:.5,this.scaleConstant=(i=n?.scaleConstant)!==null&&i!==void 0?i:.4,this.smooth=(a=n?.smooth)!==null&&a!==void 0?a:.8;let o=this.getCurrentTimeInSeconds();this.lastThrottleTime=o,this.lastTxRateBucket=Math.floor(this.getCurrentTimeInSeconds()),this.fillRate=this.minFillRate,this.maxCapacity=this.minCapacity}getCurrentTimeInSeconds(){return Date.now()/1e3}async getSendToken(){return this.acquireTokenBucket(1)}async acquireTokenBucket(n){if(!!this.enabled){if(this.refillTokenBucket(),n>this.currentCapacity){let t=(n-this.currentCapacity)/this.fillRate*1e3;await new Promise(s=>setTimeout(s,t))}this.currentCapacity=this.currentCapacity-n}}refillTokenBucket(){let n=this.getCurrentTimeInSeconds();if(!this.lastTimestamp){this.lastTimestamp=n;return}let t=(n-this.lastTimestamp)*this.fillRate;this.currentCapacity=Math.min(this.maxCapacity,this.currentCapacity+t),this.lastTimestamp=n}updateClientSendingRate(n){let t;if(this.updateMeasuredRate(),(0,NJ.isThrottlingError)(n)){let r=this.enabled?Math.min(this.measuredTxRate,this.fillRate):this.measuredTxRate;this.lastMaxRate=r,this.calculateTimeWindow(),this.lastThrottleTime=this.getCurrentTimeInSeconds(),t=this.cubicThrottle(r),this.enableTokenBucket()}else this.calculateTimeWindow(),t=this.cubicSuccess(this.getCurrentTimeInSeconds());let s=Math.min(t,2*this.measuredTxRate);this.updateTokenBucketRate(s)}calculateTimeWindow(){this.timeWindow=this.getPrecise(Math.pow(this.lastMaxRate*(1-this.beta)/this.scaleConstant,1/3))}cubicThrottle(n){return this.getPrecise(n*this.beta)}cubicSuccess(n){return this.getPrecise(this.scaleConstant*Math.pow(n-this.lastThrottleTime-this.timeWindow,3)+this.lastMaxRate)}enableTokenBucket(){this.enabled=!0}updateTokenBucketRate(n){this.refillTokenBucket(),this.fillRate=Math.max(n,this.minFillRate),this.maxCapacity=Math.max(n,this.minCapacity),this.currentCapacity=Math.min(this.currentCapacity,this.maxCapacity)}updateMeasuredRate(){let n=this.getCurrentTimeInSeconds(),t=Math.floor(n*2)/2;if(this.requestCount++,t>this.lastTxRateBucket){let s=this.requestCount/(t-this.lastTxRateBucket);this.measuredTxRate=this.getPrecise(s*this.smooth+this.measuredTxRate*(1-this.smooth)),this.requestCount=0,this.lastTxRateBucket=t}}getPrecise(n){return parseFloat(n.toFixed(8))}};Gg.DefaultRateLimiter=Gx});var ca=u(Dt=>{"use strict";Object.defineProperty(Dt,"__esModule",{value:!0});Dt.REQUEST_HEADER=Dt.INVOCATION_ID_HEADER=Dt.NO_RETRY_INCREMENT=Dt.TIMEOUT_RETRY_COST=Dt.RETRY_COST=Dt.INITIAL_RETRY_TOKENS=Dt.THROTTLING_RETRY_DELAY_BASE=Dt.MAXIMUM_RETRY_DELAY=Dt.DEFAULT_RETRY_DELAY_BASE=void 0;Dt.DEFAULT_RETRY_DELAY_BASE=100;Dt.MAXIMUM_RETRY_DELAY=20*1e3;Dt.THROTTLING_RETRY_DELAY_BASE=500;Dt.INITIAL_RETRY_TOKENS=500;Dt.RETRY_COST=5;Dt.TIMEOUT_RETRY_COST=10;Dt.NO_RETRY_INCREMENT=1;Dt.INVOCATION_ID_HEADER="amz-sdk-invocation-id";Dt.REQUEST_HEADER="amz-sdk-request"});var DL=u(Ug=>{"use strict";Object.defineProperty(Ug,"__esModule",{value:!0});Ug.getDefaultRetryBackoffStrategy=void 0;var FL=ca(),zJ=()=>{let e=FL.DEFAULT_RETRY_DELAY_BASE;return{computeNextBackoffDelay:s=>Math.floor(Math.min(FL.MAXIMUM_RETRY_DELAY,Math.random()*2**s*e)),setDelayBase:s=>{e=s}}};Ug.getDefaultRetryBackoffStrategy=zJ});var TL=u(Xg=>{"use strict";Object.defineProperty(Xg,"__esModule",{value:!0});Xg.getDefaultRetryToken=void 0;var Xi=ca(),qJ=DL(),LJ=(e,n,t,s)=>{var r,i,a;let o=e,c=(r=s?.retryCost)!==null&&r!==void 0?r:Xi.RETRY_COST,l=(i=s?.timeoutRetryCost)!==null&&i!==void 0?i:Xi.TIMEOUT_RETRY_COST,d=(a=s?.retryBackoffStrategy)!==null&&a!==void 0?a:(0,qJ.getDefaultRetryBackoffStrategy)(),h=e,v=Math.min(Xi.MAXIMUM_RETRY_DELAY,n),z,q=t??0,T=Vn=>Vn==="TRANSIENT"?l:c,U=()=>q,Le=()=>v,Ue=()=>z,$e=Vn=>T(Vn)<=h;return{getRetryCount:U,getRetryDelay:Le,getLastRetryCost:Ue,hasRetryTokens:$e,getRetryTokenCount:Vn=>{let Ex=Vn.errorType;if(!$e(Ex))throw new Error("No retry token available");let Cx=T(Ex),n9=Ex==="THROTTLING"?Xi.THROTTLING_RETRY_DELAY_BASE:Xi.DEFAULT_RETRY_DELAY_BASE;d.setDelayBase(n9);let uq=d.computeNextBackoffDelay(q);if(Vn.retryAfterHint){let s9=Vn.retryAfterHint.getTime()-Date.now();v=Math.max(s9||0,uq)}else v=uq;return q++,z=Cx,h-=Cx,Cx},releaseRetryTokens:Vn=>{h+=Vn??Xi.NO_RETRY_INCREMENT,h=Math.min(h,o)}}};Xg.getDefaultRetryToken=LJ});var Hx=u($g=>{"use strict";Object.defineProperty($g,"__esModule",{value:!0});$g.StandardRetryStrategy=void 0;var Xx=Bg(),jL=ca(),FJ=TL(),$x=class{constructor(n){this.maxAttemptsProvider=n,this.mode=Xx.RETRY_MODES.STANDARD,this.retryToken=(0,FJ.getDefaultRetryToken)(jL.INITIAL_RETRY_TOKENS,jL.DEFAULT_RETRY_DELAY_BASE),this.maxAttemptsProvider=n}async acquireInitialRetryToken(n){return this.retryToken}async refreshRetryTokenForRetry(n,t){let s=await this.getMaxAttempts();if(this.shouldRetry(n,t,s))return n.getRetryTokenCount(t),n;throw new Error("No retry token available")}recordSuccess(n){this.retryToken.releaseRetryTokens(n.getLastRetryCost())}async getMaxAttempts(){let n;try{return await this.maxAttemptsProvider()}catch{return console.warn(`Max attempts provider could not resolve. Using default of ${Xx.DEFAULT_MAX_ATTEMPTS}`),Xx.DEFAULT_MAX_ATTEMPTS}}shouldRetry(n,t,s){return n.getRetryCount(){"use strict";Object.defineProperty(Hg,"__esModule",{value:!0});Hg.AdaptiveRetryStrategy=void 0;var DJ=Bg(),TJ=Ux(),jJ=Hx(),Vx=class{constructor(n,t){this.maxAttemptsProvider=n,this.mode=DJ.RETRY_MODES.ADAPTIVE;let{rateLimiter:s}=t??{};this.rateLimiter=s??new TJ.DefaultRateLimiter,this.standardRetryStrategy=new jJ.StandardRetryStrategy(n)}async acquireInitialRetryToken(n){return await this.rateLimiter.getSendToken(),this.standardRetryStrategy.acquireInitialRetryToken(n)}async refreshRetryTokenForRetry(n,t){return this.rateLimiter.updateClientSendingRate(t),this.standardRetryStrategy.refreshRetryTokenForRetry(n,t)}recordSuccess(n){this.rateLimiter.updateClientSendingRate({}),this.standardRetryStrategy.recordSuccess(n)}};Hg.AdaptiveRetryStrategy=Vx});var BL=u(OL=>{"use strict";Object.defineProperty(OL,"__esModule",{value:!0})});var dn=u(Er=>{"use strict";Object.defineProperty(Er,"__esModule",{value:!0});var $i=X();$i.__exportStar(ML(),Er);$i.__exportStar(Ux(),Er);$i.__exportStar(Hx(),Er);$i.__exportStar(Bg(),Er);$i.__exportStar(ca(),Er);$i.__exportStar(BL(),Er)});var Kx=u(Wx=>{"use strict";Object.defineProperty(Wx,"__esModule",{value:!0});Wx.default=BJ;var MJ=OJ(require("crypto"));function OJ(e){return e&&e.__esModule?e:{default:e}}var Wg=new Uint8Array(256),Vg=Wg.length;function BJ(){return Vg>Wg.length-16&&(MJ.default.randomFillSync(Wg),Vg=0),Wg.slice(Vg,Vg+=16)}});var GL=u(Kg=>{"use strict";Object.defineProperty(Kg,"__esModule",{value:!0});Kg.default=void 0;var GJ=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;Kg.default=GJ});var la=u(Qg=>{"use strict";Object.defineProperty(Qg,"__esModule",{value:!0});Qg.default=void 0;var UJ=XJ(GL());function XJ(e){return e&&e.__esModule?e:{default:e}}function $J(e){return typeof e=="string"&&UJ.default.test(e)}var HJ=$J;Qg.default=HJ});var da=u(Jg=>{"use strict";Object.defineProperty(Jg,"__esModule",{value:!0});Jg.default=void 0;var VJ=WJ(la());function WJ(e){return e&&e.__esModule?e:{default:e}}var Kt=[];for(let e=0;e<256;++e)Kt.push((e+256).toString(16).substr(1));function KJ(e,n=0){let t=(Kt[e[n+0]]+Kt[e[n+1]]+Kt[e[n+2]]+Kt[e[n+3]]+"-"+Kt[e[n+4]]+Kt[e[n+5]]+"-"+Kt[e[n+6]]+Kt[e[n+7]]+"-"+Kt[e[n+8]]+Kt[e[n+9]]+"-"+Kt[e[n+10]]+Kt[e[n+11]]+Kt[e[n+12]]+Kt[e[n+13]]+Kt[e[n+14]]+Kt[e[n+15]]).toLowerCase();if(!(0,VJ.default)(t))throw TypeError("Stringified UUID is invalid");return t}var QJ=KJ;Jg.default=QJ});var $L=u(Yg=>{"use strict";Object.defineProperty(Yg,"__esModule",{value:!0});Yg.default=void 0;var JJ=XL(Kx()),YJ=XL(da());function XL(e){return e&&e.__esModule?e:{default:e}}var UL,Qx,Jx=0,Yx=0;function ZJ(e,n,t){let s=n&&t||0,r=n||new Array(16);e=e||{};let i=e.node||UL,a=e.clockseq!==void 0?e.clockseq:Qx;if(i==null||a==null){let v=e.random||(e.rng||JJ.default)();i==null&&(i=UL=[v[0]|1,v[1],v[2],v[3],v[4],v[5]]),a==null&&(a=Qx=(v[6]<<8|v[7])&16383)}let o=e.msecs!==void 0?e.msecs:Date.now(),c=e.nsecs!==void 0?e.nsecs:Yx+1,l=o-Jx+(c-Yx)/1e4;if(l<0&&e.clockseq===void 0&&(a=a+1&16383),(l<0||o>Jx)&&e.nsecs===void 0&&(c=0),c>=1e4)throw new Error("uuid.v1(): Can't create more than 10M uuids/sec");Jx=o,Yx=c,Qx=a,o+=122192928e5;let d=((o&268435455)*1e4+c)%4294967296;r[s++]=d>>>24&255,r[s++]=d>>>16&255,r[s++]=d>>>8&255,r[s++]=d&255;let h=o/4294967296*1e4&268435455;r[s++]=h>>>8&255,r[s++]=h&255,r[s++]=h>>>24&15|16,r[s++]=h>>>16&255,r[s++]=a>>>8|128,r[s++]=a&255;for(let v=0;v<6;++v)r[s+v]=i[v];return n||(0,YJ.default)(r)}var eY=ZJ;Yg.default=eY});var Zx=u(Zg=>{"use strict";Object.defineProperty(Zg,"__esModule",{value:!0});Zg.default=void 0;var tY=nY(la());function nY(e){return e&&e.__esModule?e:{default:e}}function sY(e){if(!(0,tY.default)(e))throw TypeError("Invalid UUID");let n,t=new Uint8Array(16);return t[0]=(n=parseInt(e.slice(0,8),16))>>>24,t[1]=n>>>16&255,t[2]=n>>>8&255,t[3]=n&255,t[4]=(n=parseInt(e.slice(9,13),16))>>>8,t[5]=n&255,t[6]=(n=parseInt(e.slice(14,18),16))>>>8,t[7]=n&255,t[8]=(n=parseInt(e.slice(19,23),16))>>>8,t[9]=n&255,t[10]=(n=parseInt(e.slice(24,36),16))/1099511627776&255,t[11]=n/4294967296&255,t[12]=n>>>24&255,t[13]=n>>>16&255,t[14]=n>>>8&255,t[15]=n&255,t}var rY=sY;Zg.default=rY});var e0=u(yi=>{"use strict";Object.defineProperty(yi,"__esModule",{value:!0});yi.default=cY;yi.URL=yi.DNS=void 0;var iY=HL(da()),oY=HL(Zx());function HL(e){return e&&e.__esModule?e:{default:e}}function aY(e){e=unescape(encodeURIComponent(e));let n=[];for(let t=0;t{"use strict";Object.defineProperty(ey,"__esModule",{value:!0});ey.default=void 0;var lY=dY(require("crypto"));function dY(e){return e&&e.__esModule?e:{default:e}}function uY(e){return Array.isArray(e)?e=Buffer.from(e):typeof e=="string"&&(e=Buffer.from(e,"utf8")),lY.default.createHash("md5").update(e).digest()}var mY=uY;ey.default=mY});var JL=u(ty=>{"use strict";Object.defineProperty(ty,"__esModule",{value:!0});ty.default=void 0;var pY=QL(e0()),gY=QL(KL());function QL(e){return e&&e.__esModule?e:{default:e}}var yY=(0,pY.default)("v3",48,gY.default),_Y=yY;ty.default=_Y});var ZL=u(ny=>{"use strict";Object.defineProperty(ny,"__esModule",{value:!0});ny.default=void 0;var fY=YL(Kx()),SY=YL(da());function YL(e){return e&&e.__esModule?e:{default:e}}function hY(e,n,t){e=e||{};let s=e.random||(e.rng||fY.default)();if(s[6]=s[6]&15|64,s[8]=s[8]&63|128,n){t=t||0;for(let r=0;r<16;++r)n[t+r]=s[r];return n}return(0,SY.default)(s)}var wY=hY;ny.default=wY});var eF=u(sy=>{"use strict";Object.defineProperty(sy,"__esModule",{value:!0});sy.default=void 0;var EY=CY(require("crypto"));function CY(e){return e&&e.__esModule?e:{default:e}}function vY(e){return Array.isArray(e)?e=Buffer.from(e):typeof e=="string"&&(e=Buffer.from(e,"utf8")),EY.default.createHash("sha1").update(e).digest()}var PY=vY;sy.default=PY});var nF=u(ry=>{"use strict";Object.defineProperty(ry,"__esModule",{value:!0});ry.default=void 0;var AY=tF(e0()),xY=tF(eF());function tF(e){return e&&e.__esModule?e:{default:e}}var bY=(0,AY.default)("v5",80,xY.default),IY=bY;ry.default=IY});var sF=u(iy=>{"use strict";Object.defineProperty(iy,"__esModule",{value:!0});iy.default=void 0;var kY="00000000-0000-0000-0000-000000000000";iy.default=kY});var rF=u(oy=>{"use strict";Object.defineProperty(oy,"__esModule",{value:!0});oy.default=void 0;var RY=NY(la());function NY(e){return e&&e.__esModule?e:{default:e}}function zY(e){if(!(0,RY.default)(e))throw TypeError("Invalid UUID");return parseInt(e.substr(14,1),16)}var qY=zY;oy.default=qY});var ua=u(Wn=>{"use strict";Object.defineProperty(Wn,"__esModule",{value:!0});Object.defineProperty(Wn,"v1",{enumerable:!0,get:function(){return LY.default}});Object.defineProperty(Wn,"v3",{enumerable:!0,get:function(){return FY.default}});Object.defineProperty(Wn,"v4",{enumerable:!0,get:function(){return DY.default}});Object.defineProperty(Wn,"v5",{enumerable:!0,get:function(){return TY.default}});Object.defineProperty(Wn,"NIL",{enumerable:!0,get:function(){return jY.default}});Object.defineProperty(Wn,"version",{enumerable:!0,get:function(){return MY.default}});Object.defineProperty(Wn,"validate",{enumerable:!0,get:function(){return OY.default}});Object.defineProperty(Wn,"stringify",{enumerable:!0,get:function(){return BY.default}});Object.defineProperty(Wn,"parse",{enumerable:!0,get:function(){return GY.default}});var LY=Xs($L()),FY=Xs(JL()),DY=Xs(ZL()),TY=Xs(nF()),jY=Xs(sF()),MY=Xs(rF()),OY=Xs(la()),BY=Xs(da()),GY=Xs(Zx());function Xs(e){return e&&e.__esModule?e:{default:e}}});var iF=u(ay=>{"use strict";Object.defineProperty(ay,"__esModule",{value:!0});ay.getDefaultRetryQuota=void 0;var t0=dn(),UY=(e,n)=>{var t,s,r;let i=e,a=(t=n?.noRetryIncrement)!==null&&t!==void 0?t:t0.NO_RETRY_INCREMENT,o=(s=n?.retryCost)!==null&&s!==void 0?s:t0.RETRY_COST,c=(r=n?.timeoutRetryCost)!==null&&r!==void 0?r:t0.TIMEOUT_RETRY_COST,l=e,d=q=>q.name==="TimeoutError"?c:o,h=q=>d(q)<=l;return Object.freeze({hasRetryTokens:h,retrieveRetryTokens:q=>{if(!h(q))throw new Error("No retry token available");let T=d(q);return l-=T,T},releaseRetryTokens:q=>{l+=q??a,l=Math.min(l,i)}})};ay.getDefaultRetryQuota=UY});var n0=u(cy=>{"use strict";Object.defineProperty(cy,"__esModule",{value:!0});cy.defaultDelayDecider=void 0;var XY=dn(),$Y=(e,n)=>Math.floor(Math.min(XY.MAXIMUM_RETRY_DELAY,Math.random()*2**n*e));cy.defaultDelayDecider=$Y});var s0=u(dy=>{"use strict";Object.defineProperty(dy,"__esModule",{value:!0});dy.defaultRetryDecider=void 0;var ly=aa(),HY=e=>e?(0,ly.isRetryableByTrait)(e)||(0,ly.isClockSkewError)(e)||(0,ly.isThrottlingError)(e)||(0,ly.isTransientError)(e):!1;dy.defaultRetryDecider=HY});var r0=u(uy=>{"use strict";Object.defineProperty(uy,"__esModule",{value:!0});uy.asSdkError=void 0;var VY=e=>e instanceof Error?e:e instanceof Object?Object.assign(new Error,e):typeof e=="string"?new Error(e):new Error(`AWS SDK error wrapper for ${e}`);uy.asSdkError=VY});var a0=u(my=>{"use strict";Object.defineProperty(my,"__esModule",{value:!0});my.StandardRetryStrategy=void 0;var i0=gt(),WY=aa(),_i=dn(),KY=ua(),QY=iF(),JY=n0(),YY=s0(),ZY=r0(),o0=class{constructor(n,t){var s,r,i;this.maxAttemptsProvider=n,this.mode=_i.RETRY_MODES.STANDARD,this.retryDecider=(s=t?.retryDecider)!==null&&s!==void 0?s:YY.defaultRetryDecider,this.delayDecider=(r=t?.delayDecider)!==null&&r!==void 0?r:JY.defaultDelayDecider,this.retryQuota=(i=t?.retryQuota)!==null&&i!==void 0?i:(0,QY.getDefaultRetryQuota)(_i.INITIAL_RETRY_TOKENS)}shouldRetry(n,t,s){return tsetTimeout(q,z));continue}throw d.$metadata||(d.$metadata={}),d.$metadata.attempts=i,d.$metadata.totalRetryDelay=a,d}}};my.StandardRetryStrategy=o0;var eZ=e=>{if(!i0.HttpResponse.isInstance(e))return;let n=Object.keys(e.headers).find(i=>i.toLowerCase()==="retry-after");if(!n)return;let t=e.headers[n],s=Number(t);return Number.isNaN(s)?new Date(t).getTime()-Date.now():s*1e3}});var aF=u(py=>{"use strict";Object.defineProperty(py,"__esModule",{value:!0});py.AdaptiveRetryStrategy=void 0;var oF=dn(),tZ=a0(),c0=class extends tZ.StandardRetryStrategy{constructor(n,t){let{rateLimiter:s,...r}=t??{};super(n,r),this.rateLimiter=s??new oF.DefaultRateLimiter,this.mode=oF.RETRY_MODES.ADAPTIVE}async retry(n,t){return super.retry(n,t,{beforeRequest:async()=>this.rateLimiter.getSendToken(),afterRequest:s=>{this.rateLimiter.updateClientSendingRate(s)}})}};py.AdaptiveRetryStrategy=c0});var lF=u(At=>{"use strict";Object.defineProperty(At,"__esModule",{value:!0});At.NODE_RETRY_MODE_CONFIG_OPTIONS=At.CONFIG_RETRY_MODE=At.ENV_RETRY_MODE=At.resolveRetryConfig=At.NODE_MAX_ATTEMPT_CONFIG_OPTIONS=At.CONFIG_MAX_ATTEMPTS=At.ENV_MAX_ATTEMPTS=void 0;var cF=di(),Hi=dn();At.ENV_MAX_ATTEMPTS="AWS_MAX_ATTEMPTS";At.CONFIG_MAX_ATTEMPTS="max_attempts";At.NODE_MAX_ATTEMPT_CONFIG_OPTIONS={environmentVariableSelector:e=>{let n=e[At.ENV_MAX_ATTEMPTS];if(!n)return;let t=parseInt(n);if(Number.isNaN(t))throw new Error(`Environment variable ${At.ENV_MAX_ATTEMPTS} mast be a number, got "${n}"`);return t},configFileSelector:e=>{let n=e[At.CONFIG_MAX_ATTEMPTS];if(!n)return;let t=parseInt(n);if(Number.isNaN(t))throw new Error(`Shared config file entry ${At.CONFIG_MAX_ATTEMPTS} mast be a number, got "${n}"`);return t},default:Hi.DEFAULT_MAX_ATTEMPTS};var nZ=e=>{var n;let{retryStrategy:t}=e,s=(0,cF.normalizeProvider)((n=e.maxAttempts)!==null&&n!==void 0?n:Hi.DEFAULT_MAX_ATTEMPTS);return{...e,maxAttempts:s,retryStrategy:async()=>t||(await(0,cF.normalizeProvider)(e.retryMode)()===Hi.RETRY_MODES.ADAPTIVE?new Hi.AdaptiveRetryStrategy(s):new Hi.StandardRetryStrategy(s))}};At.resolveRetryConfig=nZ;At.ENV_RETRY_MODE="AWS_RETRY_MODE";At.CONFIG_RETRY_MODE="retry_mode";At.NODE_RETRY_MODE_CONFIG_OPTIONS={environmentVariableSelector:e=>e[At.ENV_RETRY_MODE],configFileSelector:e=>e[At.CONFIG_RETRY_MODE],default:Hi.DEFAULT_RETRY_MODE}});var uF=u(is=>{"use strict";Object.defineProperty(is,"__esModule",{value:!0});is.getOmitRetryHeadersPlugin=is.omitRetryHeadersMiddlewareOptions=is.omitRetryHeadersMiddleware=void 0;var sZ=gt(),dF=dn(),rZ=()=>e=>async n=>{let{request:t}=n;return sZ.HttpRequest.isInstance(t)&&(delete t.headers[dF.INVOCATION_ID_HEADER],delete t.headers[dF.REQUEST_HEADER]),e(n)};is.omitRetryHeadersMiddleware=rZ;is.omitRetryHeadersMiddlewareOptions={name:"omitRetryHeadersMiddleware",tags:["RETRY","HEADERS","OMIT_RETRY_HEADERS"],relation:"before",toMiddleware:"awsAuthMiddleware",override:!0};var iZ=e=>({applyToStack:n=>{n.addRelativeTo((0,is.omitRetryHeadersMiddleware)(),is.omitRetryHeadersMiddlewareOptions)}});is.getOmitRetryHeadersPlugin=iZ});var pF=u(xn=>{"use strict";Object.defineProperty(xn,"__esModule",{value:!0});xn.getRetryAfterHint=xn.getRetryPlugin=xn.retryMiddlewareOptions=xn.retryMiddleware=void 0;var d0=gt(),l0=aa(),mF=dn(),oZ=ua(),aZ=r0(),cZ=e=>(n,t)=>async s=>{let r=await e.retryStrategy(),i=await e.maxAttempts();if(lZ(r)){r=r;let a=await r.acquireInitialRetryToken(t.partition_id),o=new Error,c=0,l=0,{request:d}=s;for(d0.HttpRequest.isInstance(d)&&(d.headers[mF.INVOCATION_ID_HEADER]=(0,oZ.v4)());;)try{d0.HttpRequest.isInstance(d)&&(d.headers[mF.REQUEST_HEADER]=`attempt=${c+1}; max=${i}`);let{response:h,output:v}=await n(s);return r.recordSuccess(a),v.$metadata.attempts=c+1,v.$metadata.totalRetryDelay=l,{response:h,output:v}}catch(h){let v=dZ(h);o=(0,aZ.asSdkError)(h);try{a=await r.refreshRetryTokenForRetry(a,v)}catch{throw o.$metadata||(o.$metadata={}),o.$metadata.attempts=c+1,o.$metadata.totalRetryDelay=l,o}c=a.getRetryCount();let z=a.getRetryDelay();l+=z,await new Promise(q=>setTimeout(q,z))}}else return r=r,r?.mode&&(t.userAgent=[...t.userAgent||[],["cfg/retry-mode",r.mode]]),r.retry(n,s)};xn.retryMiddleware=cZ;var lZ=e=>typeof e.acquireInitialRetryToken<"u"&&typeof e.refreshRetryTokenForRetry<"u"&&typeof e.recordSuccess<"u",dZ=e=>{let n={errorType:uZ(e)},t=(0,xn.getRetryAfterHint)(e.$response);return t&&(n.retryAfterHint=t),n},uZ=e=>(0,l0.isThrottlingError)(e)?"THROTTLING":(0,l0.isTransientError)(e)?"TRANSIENT":(0,l0.isServerError)(e)?"SERVER_ERROR":"CLIENT_ERROR";xn.retryMiddlewareOptions={name:"retryMiddleware",tags:["RETRY"],step:"finalizeRequest",priority:"high",override:!0};var mZ=e=>({applyToStack:n=>{n.add((0,xn.retryMiddleware)(e),xn.retryMiddlewareOptions)}});xn.getRetryPlugin=mZ;var pZ=e=>{if(!d0.HttpResponse.isInstance(e))return;let n=Object.keys(e.headers).find(i=>i.toLowerCase()==="retry-after");if(!n)return;let t=e.headers[n],s=Number(t);return Number.isNaN(s)?new Date(t):new Date(s*1e3)};xn.getRetryAfterHint=pZ});var un=u($s=>{"use strict";Object.defineProperty($s,"__esModule",{value:!0});var fi=X();fi.__exportStar(aF(),$s);fi.__exportStar(a0(),$s);fi.__exportStar(lF(),$s);fi.__exportStar(n0(),$s);fi.__exportStar(uF(),$s);fi.__exportStar(s0(),$s);fi.__exportStar(pF(),$s)});var pa=u(gy=>{"use strict";Object.defineProperty(gy,"__esModule",{value:!0});gy.ProviderError=void 0;var ma=class extends Error{constructor(n,t=!0){super(n),this.tryNextLink=t,this.name="ProviderError",Object.setPrototypeOf(this,ma.prototype)}static from(n,t=!0){return Object.assign(new this(n.message,t),n)}};gy.ProviderError=ma});var gF=u(yy=>{"use strict";Object.defineProperty(yy,"__esModule",{value:!0});yy.CredentialsProviderError=void 0;var gZ=pa(),ga=class extends gZ.ProviderError{constructor(n,t=!0){super(n,t),this.tryNextLink=t,this.name="CredentialsProviderError",Object.setPrototypeOf(this,ga.prototype)}};yy.CredentialsProviderError=ga});var yF=u(_y=>{"use strict";Object.defineProperty(_y,"__esModule",{value:!0});_y.TokenProviderError=void 0;var yZ=pa(),ya=class extends yZ.ProviderError{constructor(n,t=!0){super(n,t),this.tryNextLink=t,this.name="TokenProviderError",Object.setPrototypeOf(this,ya.prototype)}};_y.TokenProviderError=ya});var _F=u(fy=>{"use strict";Object.defineProperty(fy,"__esModule",{value:!0});fy.chain=void 0;var _Z=pa();function fZ(...e){return()=>{let n=Promise.reject(new _Z.ProviderError("No providers in chain"));for(let t of e)n=n.catch(s=>{if(s?.tryNextLink)return t();throw s});return n}}fy.chain=fZ});var fF=u(Sy=>{"use strict";Object.defineProperty(Sy,"__esModule",{value:!0});Sy.fromStatic=void 0;var SZ=e=>()=>Promise.resolve(e);Sy.fromStatic=SZ});var SF=u(hy=>{"use strict";Object.defineProperty(hy,"__esModule",{value:!0});hy.memoize=void 0;var hZ=(e,n,t)=>{let s,r,i,a=!1,o=async()=>{r||(r=e());try{s=await r,i=!0,a=!1}finally{r=void 0}return s};return n===void 0?async c=>((!i||c?.forceRefresh)&&(s=await o()),s):async c=>((!i||c?.forceRefresh)&&(s=await o()),a?s:t&&!t(s)?(a=!0,s):(n(s)&&await o(),s))};hy.memoize=hZ});var Je=u(Cr=>{"use strict";Object.defineProperty(Cr,"__esModule",{value:!0});var Vi=X();Vi.__exportStar(gF(),Cr);Vi.__exportStar(pa(),Cr);Vi.__exportStar(yF(),Cr);Vi.__exportStar(_F(),Cr);Vi.__exportStar(fF(),Cr);Vi.__exportStar(SF(),Cr)});var Ki=u(Wi=>{"use strict";Object.defineProperty(Wi,"__esModule",{value:!0});Wi.toHex=Wi.fromHex=void 0;var hF={},u0={};for(let e=0;e<256;e++){let n=e.toString(16).toLowerCase();n.length===1&&(n=`0${n}`),hF[e]=n,u0[n]=e}function wZ(e){if(e.length%2!==0)throw new Error("Hex encoded strings must have an even number length");let n=new Uint8Array(e.length/2);for(let t=0;t{"use strict";Object.defineProperty(wy,"__esModule",{value:!0});wy.isArrayBuffer=void 0;var CZ=e=>typeof ArrayBuffer=="function"&&e instanceof ArrayBuffer||Object.prototype.toString.call(e)==="[object ArrayBuffer]";wy.isArrayBuffer=CZ});var Si=u(Qi=>{"use strict";Object.defineProperty(Qi,"__esModule",{value:!0});Qi.fromString=Qi.fromArrayBuffer=void 0;var vZ=Ey(),m0=require("buffer"),PZ=(e,n=0,t=e.byteLength-n)=>{if(!(0,vZ.isArrayBuffer)(e))throw new TypeError(`The "input" argument must be ArrayBuffer. Received type ${typeof e} (${e})`);return m0.Buffer.from(e,n,t)};Qi.fromArrayBuffer=PZ;var AZ=(e,n)=>{if(typeof e!="string")throw new TypeError(`The "input" argument must be of type string. Received type ${typeof e} (${e})`);return n?m0.Buffer.from(e,n):m0.Buffer.from(e)};Qi.fromString=AZ});var p0=u(Cy=>{"use strict";Object.defineProperty(Cy,"__esModule",{value:!0});Cy.fromUtf8=void 0;var xZ=Si(),bZ=e=>{let n=(0,xZ.fromString)(e,"utf8");return new Uint8Array(n.buffer,n.byteOffset,n.byteLength/Uint8Array.BYTES_PER_ELEMENT)};Cy.fromUtf8=bZ});var wF=u(vy=>{"use strict";Object.defineProperty(vy,"__esModule",{value:!0});vy.toUint8Array=void 0;var IZ=p0(),kZ=e=>typeof e=="string"?(0,IZ.fromUtf8)(e):ArrayBuffer.isView(e)?new Uint8Array(e.buffer,e.byteOffset,e.byteLength/Uint8Array.BYTES_PER_ELEMENT):new Uint8Array(e);vy.toUint8Array=kZ});var EF=u(Py=>{"use strict";Object.defineProperty(Py,"__esModule",{value:!0});Py.toUtf8=void 0;var RZ=Si(),NZ=e=>(0,RZ.fromArrayBuffer)(e.buffer,e.byteOffset,e.byteLength).toString("utf8");Py.toUtf8=NZ});var Sn=u(_a=>{"use strict";Object.defineProperty(_a,"__esModule",{value:!0});var g0=X();g0.__exportStar(p0(),_a);g0.__exportStar(wF(),_a);g0.__exportStar(EF(),_a)});var hi=u(ue=>{"use strict";Object.defineProperty(ue,"__esModule",{value:!0});ue.MAX_PRESIGNED_TTL=ue.KEY_TYPE_IDENTIFIER=ue.MAX_CACHE_SIZE=ue.UNSIGNED_PAYLOAD=ue.EVENT_ALGORITHM_IDENTIFIER=ue.ALGORITHM_IDENTIFIER_V4A=ue.ALGORITHM_IDENTIFIER=ue.UNSIGNABLE_PATTERNS=ue.SEC_HEADER_PATTERN=ue.PROXY_HEADER_PATTERN=ue.ALWAYS_UNSIGNABLE_HEADERS=ue.HOST_HEADER=ue.TOKEN_HEADER=ue.SHA256_HEADER=ue.SIGNATURE_HEADER=ue.GENERATED_HEADERS=ue.DATE_HEADER=ue.AMZ_DATE_HEADER=ue.AUTH_HEADER=ue.REGION_SET_PARAM=ue.TOKEN_QUERY_PARAM=ue.SIGNATURE_QUERY_PARAM=ue.EXPIRES_QUERY_PARAM=ue.SIGNED_HEADERS_QUERY_PARAM=ue.AMZ_DATE_QUERY_PARAM=ue.CREDENTIAL_QUERY_PARAM=ue.ALGORITHM_QUERY_PARAM=void 0;ue.ALGORITHM_QUERY_PARAM="X-Amz-Algorithm";ue.CREDENTIAL_QUERY_PARAM="X-Amz-Credential";ue.AMZ_DATE_QUERY_PARAM="X-Amz-Date";ue.SIGNED_HEADERS_QUERY_PARAM="X-Amz-SignedHeaders";ue.EXPIRES_QUERY_PARAM="X-Amz-Expires";ue.SIGNATURE_QUERY_PARAM="X-Amz-Signature";ue.TOKEN_QUERY_PARAM="X-Amz-Security-Token";ue.REGION_SET_PARAM="X-Amz-Region-Set";ue.AUTH_HEADER="authorization";ue.AMZ_DATE_HEADER=ue.AMZ_DATE_QUERY_PARAM.toLowerCase();ue.DATE_HEADER="date";ue.GENERATED_HEADERS=[ue.AUTH_HEADER,ue.AMZ_DATE_HEADER,ue.DATE_HEADER];ue.SIGNATURE_HEADER=ue.SIGNATURE_QUERY_PARAM.toLowerCase();ue.SHA256_HEADER="x-amz-content-sha256";ue.TOKEN_HEADER=ue.TOKEN_QUERY_PARAM.toLowerCase();ue.HOST_HEADER="host";ue.ALWAYS_UNSIGNABLE_HEADERS={authorization:!0,"cache-control":!0,connection:!0,expect:!0,from:!0,"keep-alive":!0,"max-forwards":!0,pragma:!0,referer:!0,te:!0,trailer:!0,"transfer-encoding":!0,upgrade:!0,"user-agent":!0,"x-amzn-trace-id":!0};ue.PROXY_HEADER_PATTERN=/^proxy-/;ue.SEC_HEADER_PATTERN=/^sec-/;ue.UNSIGNABLE_PATTERNS=[/^proxy-/i,/^sec-/i];ue.ALGORITHM_IDENTIFIER="AWS4-HMAC-SHA256";ue.ALGORITHM_IDENTIFIER_V4A="AWS4-ECDSA-P256-SHA256";ue.EVENT_ALGORITHM_IDENTIFIER="AWS4-HMAC-SHA256-PAYLOAD";ue.UNSIGNED_PAYLOAD="UNSIGNED-PAYLOAD";ue.MAX_CACHE_SIZE=50;ue.KEY_TYPE_IDENTIFIER="aws4_request";ue.MAX_PRESIGNED_TTL=60*60*24*7});var _0=u(vr=>{"use strict";Object.defineProperty(vr,"__esModule",{value:!0});vr.clearCredentialCache=vr.getSigningKey=vr.createScope=void 0;var zZ=Ki(),qZ=Sn(),y0=hi(),Ji={},Ay=[],LZ=(e,n,t)=>`${e}/${n}/${t}/${y0.KEY_TYPE_IDENTIFIER}`;vr.createScope=LZ;var FZ=async(e,n,t,s,r)=>{let i=await CF(e,n.secretAccessKey,n.accessKeyId),a=`${t}:${s}:${r}:${(0,zZ.toHex)(i)}:${n.sessionToken}`;if(a in Ji)return Ji[a];for(Ay.push(a);Ay.length>y0.MAX_CACHE_SIZE;)delete Ji[Ay.shift()];let o=`AWS4${n.secretAccessKey}`;for(let c of[t,s,r,y0.KEY_TYPE_IDENTIFIER])o=await CF(e,o,c);return Ji[a]=o};vr.getSigningKey=FZ;var DZ=()=>{Ay.length=0,Object.keys(Ji).forEach(e=>{delete Ji[e]})};vr.clearCredentialCache=DZ;var CF=(e,n,t)=>{let s=new e(n);return s.update((0,qZ.toUint8Array)(t)),s.digest()}});var S0=u(xy=>{"use strict";Object.defineProperty(xy,"__esModule",{value:!0});xy.getCanonicalHeaders=void 0;var f0=hi(),TZ=({headers:e},n,t)=>{let s={};for(let r of Object.keys(e).sort()){if(e[r]==null)continue;let i=r.toLowerCase();(i in f0.ALWAYS_UNSIGNABLE_HEADERS||n?.has(i)||f0.PROXY_HEADER_PATTERN.test(i)||f0.SEC_HEADER_PATTERN.test(i))&&(!t||t&&!t.has(i))||(s[i]=e[r].trim().replace(/\s+/g," "))}return s};xy.getCanonicalHeaders=TZ});var h0=u(by=>{"use strict";Object.defineProperty(by,"__esModule",{value:!0});by.escapeUri=void 0;var jZ=e=>encodeURIComponent(e).replace(/[!'()*]/g,MZ);by.escapeUri=jZ;var MZ=e=>`%${e.charCodeAt(0).toString(16).toUpperCase()}`});var vF=u(Iy=>{"use strict";Object.defineProperty(Iy,"__esModule",{value:!0});Iy.escapeUriPath=void 0;var OZ=h0(),BZ=e=>e.split("/").map(OZ.escapeUri).join("/");Iy.escapeUriPath=BZ});var w0=u(ky=>{"use strict";Object.defineProperty(ky,"__esModule",{value:!0});var PF=X();PF.__exportStar(h0(),ky);PF.__exportStar(vF(),ky)});var E0=u(Ny=>{"use strict";Object.defineProperty(Ny,"__esModule",{value:!0});Ny.getCanonicalQuery=void 0;var Ry=w0(),GZ=hi(),UZ=({query:e={}})=>{let n=[],t={};for(let s of Object.keys(e).sort()){if(s.toLowerCase()===GZ.SIGNATURE_HEADER)continue;n.push(s);let r=e[s];typeof r=="string"?t[s]=`${(0,Ry.escapeUri)(s)}=${(0,Ry.escapeUri)(r)}`:Array.isArray(r)&&(t[s]=r.slice(0).sort().reduce((i,a)=>i.concat([`${(0,Ry.escapeUri)(s)}=${(0,Ry.escapeUri)(a)}`]),[]).join("&"))}return n.map(s=>t[s]).filter(s=>s).join("&")};Ny.getCanonicalQuery=UZ});var C0=u(zy=>{"use strict";Object.defineProperty(zy,"__esModule",{value:!0});zy.getPayloadHash=void 0;var XZ=Ey(),$Z=Ki(),HZ=Sn(),AF=hi(),VZ=async({headers:e,body:n},t)=>{for(let s of Object.keys(e))if(s.toLowerCase()===AF.SHA256_HEADER)return e[s];if(n==null)return"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855";if(typeof n=="string"||ArrayBuffer.isView(n)||(0,XZ.isArrayBuffer)(n)){let s=new t;return s.update((0,HZ.toUint8Array)(n)),(0,$Z.toHex)(await s.digest())}return AF.UNSIGNED_PAYLOAD};zy.getPayloadHash=VZ});var xF=u(Pr=>{"use strict";Object.defineProperty(Pr,"__esModule",{value:!0});Pr.deleteHeader=Pr.getHeaderValue=Pr.hasHeader=void 0;var WZ=(e,n)=>{e=e.toLowerCase();for(let t of Object.keys(n))if(e===t.toLowerCase())return!0;return!1};Pr.hasHeader=WZ;var KZ=(e,n)=>{e=e.toLowerCase();for(let t of Object.keys(n))if(e===t.toLowerCase())return n[t]};Pr.getHeaderValue=KZ;var QZ=(e,n)=>{e=e.toLowerCase();for(let t of Object.keys(n))e===t.toLowerCase()&&delete n[t]};Pr.deleteHeader=QZ});var v0=u(wi=>{"use strict";Object.defineProperty(wi,"__esModule",{value:!0});wi.cloneQuery=wi.cloneRequest=void 0;var JZ=({headers:e,query:n,...t})=>({...t,headers:{...e},query:n?(0,wi.cloneQuery)(n):void 0});wi.cloneRequest=JZ;var YZ=e=>Object.keys(e).reduce((n,t)=>{let s=e[t];return{...n,[t]:Array.isArray(s)?[...s]:s}},{});wi.cloneQuery=YZ});var P0=u(qy=>{"use strict";Object.defineProperty(qy,"__esModule",{value:!0});qy.moveHeadersToQuery=void 0;var ZZ=v0(),eee=(e,n={})=>{var t;let{headers:s,query:r={}}=typeof e.clone=="function"?e.clone():(0,ZZ.cloneRequest)(e);for(let i of Object.keys(s)){let a=i.toLowerCase();a.slice(0,6)==="x-amz-"&&!(!((t=n.unhoistableHeaders)===null||t===void 0)&&t.has(a))&&(r[i]=s[i],delete s[i])}return{...e,headers:s,query:r}};qy.moveHeadersToQuery=eee});var A0=u(Ly=>{"use strict";Object.defineProperty(Ly,"__esModule",{value:!0});Ly.prepareRequest=void 0;var tee=v0(),nee=hi(),see=e=>{e=typeof e.clone=="function"?e.clone():(0,tee.cloneRequest)(e);for(let n of Object.keys(e.headers))nee.GENERATED_HEADERS.indexOf(n.toLowerCase())>-1&&delete e.headers[n];return e};Ly.prepareRequest=see});var bF=u(Ei=>{"use strict";Object.defineProperty(Ei,"__esModule",{value:!0});Ei.toDate=Ei.iso8601=void 0;var ree=e=>(0,Ei.toDate)(e).toISOString().replace(/\.\d{3}Z$/,"Z");Ei.iso8601=ree;var iee=e=>typeof e=="number"?new Date(e*1e3):typeof e=="string"?Number(e)?new Date(Number(e)*1e3):new Date(e):e;Ei.toDate=iee});var zF=u(jy=>{"use strict";Object.defineProperty(jy,"__esModule",{value:!0});jy.SignatureV4=void 0;var Fy=Ki(),IF=di(),x0=Sn(),Qt=hi(),Dy=_0(),kF=S0(),oee=E0(),b0=C0(),aee=xF(),cee=P0(),RF=A0(),lee=bF(),I0=class{constructor({applyChecksum:n,credentials:t,region:s,service:r,sha256:i,uriEscapePath:a=!0}){this.service=r,this.sha256=i,this.uriEscapePath=a,this.applyChecksum=typeof n=="boolean"?n:!0,this.regionProvider=(0,IF.normalizeProvider)(s),this.credentialProvider=(0,IF.normalizeProvider)(t)}async presign(n,t={}){let{signingDate:s=new Date,expiresIn:r=3600,unsignableHeaders:i,unhoistableHeaders:a,signableHeaders:o,signingRegion:c,signingService:l}=t,d=await this.credentialProvider();this.validateResolvedCredentials(d);let h=c??await this.regionProvider(),{longDate:v,shortDate:z}=Ty(s);if(r>Qt.MAX_PRESIGNED_TTL)return Promise.reject("Signature version 4 presigned URLs must have an expiration date less than one week in the future");let q=(0,Dy.createScope)(z,h,l??this.service),T=(0,cee.moveHeadersToQuery)((0,RF.prepareRequest)(n),{unhoistableHeaders:a});d.sessionToken&&(T.query[Qt.TOKEN_QUERY_PARAM]=d.sessionToken),T.query[Qt.ALGORITHM_QUERY_PARAM]=Qt.ALGORITHM_IDENTIFIER,T.query[Qt.CREDENTIAL_QUERY_PARAM]=`${d.accessKeyId}/${q}`,T.query[Qt.AMZ_DATE_QUERY_PARAM]=v,T.query[Qt.EXPIRES_QUERY_PARAM]=r.toString(10);let U=(0,kF.getCanonicalHeaders)(T,i,o);return T.query[Qt.SIGNED_HEADERS_QUERY_PARAM]=NF(U),T.query[Qt.SIGNATURE_QUERY_PARAM]=await this.getSignature(v,q,this.getSigningKey(d,h,z,l),this.createCanonicalRequest(T,U,await(0,b0.getPayloadHash)(n,this.sha256))),T}async sign(n,t){return typeof n=="string"?this.signString(n,t):n.headers&&n.payload?this.signEvent(n,t):this.signRequest(n,t)}async signEvent({headers:n,payload:t},{signingDate:s=new Date,priorSignature:r,signingRegion:i,signingService:a}){let o=i??await this.regionProvider(),{shortDate:c,longDate:l}=Ty(s),d=(0,Dy.createScope)(c,o,a??this.service),h=await(0,b0.getPayloadHash)({headers:{},body:t},this.sha256),v=new this.sha256;v.update(n);let z=(0,Fy.toHex)(await v.digest()),q=[Qt.EVENT_ALGORITHM_IDENTIFIER,l,d,r,z,h].join(` +`);return this.signString(q,{signingDate:s,signingRegion:o,signingService:a})}async signString(n,{signingDate:t=new Date,signingRegion:s,signingService:r}={}){let i=await this.credentialProvider();this.validateResolvedCredentials(i);let a=s??await this.regionProvider(),{shortDate:o}=Ty(t),c=new this.sha256(await this.getSigningKey(i,a,o,r));return c.update((0,x0.toUint8Array)(n)),(0,Fy.toHex)(await c.digest())}async signRequest(n,{signingDate:t=new Date,signableHeaders:s,unsignableHeaders:r,signingRegion:i,signingService:a}={}){let o=await this.credentialProvider();this.validateResolvedCredentials(o);let c=i??await this.regionProvider(),l=(0,RF.prepareRequest)(n),{longDate:d,shortDate:h}=Ty(t),v=(0,Dy.createScope)(h,c,a??this.service);l.headers[Qt.AMZ_DATE_HEADER]=d,o.sessionToken&&(l.headers[Qt.TOKEN_HEADER]=o.sessionToken);let z=await(0,b0.getPayloadHash)(l,this.sha256);!(0,aee.hasHeader)(Qt.SHA256_HEADER,l.headers)&&this.applyChecksum&&(l.headers[Qt.SHA256_HEADER]=z);let q=(0,kF.getCanonicalHeaders)(l,r,s),T=await this.getSignature(d,v,this.getSigningKey(o,c,h,a),this.createCanonicalRequest(l,q,z));return l.headers[Qt.AUTH_HEADER]=`${Qt.ALGORITHM_IDENTIFIER} Credential=${o.accessKeyId}/${v}, SignedHeaders=${NF(q)}, Signature=${T}`,l}createCanonicalRequest(n,t,s){let r=Object.keys(t).sort();return`${n.method} +${this.getCanonicalPath(n)} +${(0,oee.getCanonicalQuery)(n)} +${r.map(i=>`${i}:${t[i]}`).join(` +`)} + +${r.join(";")} +${s}`}async createStringToSign(n,t,s){let r=new this.sha256;r.update((0,x0.toUint8Array)(s));let i=await r.digest();return`${Qt.ALGORITHM_IDENTIFIER} +${n} +${t} +${(0,Fy.toHex)(i)}`}getCanonicalPath({path:n}){if(this.uriEscapePath){let t=[];for(let i of n.split("/"))i?.length!==0&&i!=="."&&(i===".."?t.pop():t.push(i));let s=`${n?.startsWith("/")?"/":""}${t.join("/")}${t.length>0&&n?.endsWith("/")?"/":""}`;return encodeURIComponent(s).replace(/%2F/g,"/")}return n}async getSignature(n,t,s,r){let i=await this.createStringToSign(n,t,r),a=new this.sha256(await s);return a.update((0,x0.toUint8Array)(i)),(0,Fy.toHex)(await a.digest())}getSigningKey(n,t,s,r){return(0,Dy.getSigningKey)(this.sha256,n,s,t,r||this.service)}validateResolvedCredentials(n){if(typeof n!="object"||typeof n.accessKeyId!="string"||typeof n.secretAccessKey!="string")throw new Error("Resolved credential object is not valid")}};jy.SignatureV4=I0;var Ty=e=>{let n=(0,lee.iso8601)(e).replace(/[\-:]/g,"");return{longDate:n,shortDate:n.slice(0,8)}},NF=e=>Object.keys(e).sort().join(";")});var k0=u(hn=>{"use strict";Object.defineProperty(hn,"__esModule",{value:!0});hn.prepareRequest=hn.moveHeadersToQuery=hn.getPayloadHash=hn.getCanonicalQuery=hn.getCanonicalHeaders=void 0;var qF=X();qF.__exportStar(zF(),hn);var dee=S0();Object.defineProperty(hn,"getCanonicalHeaders",{enumerable:!0,get:function(){return dee.getCanonicalHeaders}});var uee=E0();Object.defineProperty(hn,"getCanonicalQuery",{enumerable:!0,get:function(){return uee.getCanonicalQuery}});var mee=C0();Object.defineProperty(hn,"getPayloadHash",{enumerable:!0,get:function(){return mee.getPayloadHash}});var pee=P0();Object.defineProperty(hn,"moveHeadersToQuery",{enumerable:!0,get:function(){return pee.moveHeadersToQuery}});var gee=A0();Object.defineProperty(hn,"prepareRequest",{enumerable:!0,get:function(){return gee.prepareRequest}});qF.__exportStar(_0(),hn)});var FF=u(Zi=>{"use strict";Object.defineProperty(Zi,"__esModule",{value:!0});Zi.resolveSigV4AuthConfig=Zi.resolveAwsAuthConfig=void 0;var yee=Je(),R0=k0(),Yi=di(),_ee=3e5,fee=e=>{let n=e.credentials?LF(e.credentials):e.credentialDefaultProvider(e),{signingEscapePath:t=!0,systemClockOffset:s=e.systemClockOffset||0,sha256:r}=e,i;return e.signer?i=(0,Yi.normalizeProvider)(e.signer):e.regionInfoProvider?i=()=>(0,Yi.normalizeProvider)(e.region)().then(async a=>[await e.regionInfoProvider(a,{useFipsEndpoint:await e.useFipsEndpoint(),useDualstackEndpoint:await e.useDualstackEndpoint()})||{},a]).then(([a,o])=>{let{signingRegion:c,signingService:l}=a;e.signingRegion=e.signingRegion||c||o,e.signingName=e.signingName||l||e.serviceId;let d={...e,credentials:n,region:e.signingRegion,service:e.signingName,sha256:r,uriEscapePath:t},h=e.signerConstructor||R0.SignatureV4;return new h(d)}):i=async a=>{a=Object.assign({},{name:"sigv4",signingName:e.signingName||e.defaultSigningName,signingRegion:await(0,Yi.normalizeProvider)(e.region)(),properties:{}},a);let o=a.signingRegion,c=a.signingName;e.signingRegion=e.signingRegion||o,e.signingName=e.signingName||c||e.serviceId;let l={...e,credentials:n,region:e.signingRegion,service:e.signingName,sha256:r,uriEscapePath:t},d=e.signerConstructor||R0.SignatureV4;return new d(l)},{...e,systemClockOffset:s,signingEscapePath:t,credentials:n,signer:i}};Zi.resolveAwsAuthConfig=fee;var See=e=>{let n=e.credentials?LF(e.credentials):e.credentialDefaultProvider(e),{signingEscapePath:t=!0,systemClockOffset:s=e.systemClockOffset||0,sha256:r}=e,i;return e.signer?i=(0,Yi.normalizeProvider)(e.signer):i=(0,Yi.normalizeProvider)(new R0.SignatureV4({credentials:n,region:e.region,service:e.signingName,sha256:r,uriEscapePath:t})),{...e,systemClockOffset:s,signingEscapePath:t,credentials:n,signer:i}};Zi.resolveSigV4AuthConfig=See;var LF=e=>typeof e=="function"?(0,yee.memoize)(e,n=>n.expiration!==void 0&&n.expiration.getTime()-Date.now()<_ee,n=>n.expiration!==void 0):(0,Yi.normalizeProvider)(e)});var N0=u(My=>{"use strict";Object.defineProperty(My,"__esModule",{value:!0});My.getSkewCorrectedDate=void 0;var hee=e=>new Date(Date.now()+e);My.getSkewCorrectedDate=hee});var DF=u(Oy=>{"use strict";Object.defineProperty(Oy,"__esModule",{value:!0});Oy.isClockSkewed=void 0;var wee=N0(),Eee=(e,n)=>Math.abs((0,wee.getSkewCorrectedDate)(n).getTime()-e)>=3e5;Oy.isClockSkewed=Eee});var TF=u(By=>{"use strict";Object.defineProperty(By,"__esModule",{value:!0});By.getUpdatedSystemClockOffset=void 0;var Cee=DF(),vee=(e,n)=>{let t=Date.parse(e);return(0,Cee.isClockSkewed)(t,n)?t-Date.now():n};By.getUpdatedSystemClockOffset=vee});var BF=u(bn=>{"use strict";Object.defineProperty(bn,"__esModule",{value:!0});bn.getSigV4AuthPlugin=bn.getAwsAuthPlugin=bn.awsAuthMiddlewareOptions=bn.awsAuthMiddleware=void 0;var OF=gt(),Pee=N0(),jF=TF(),Aee=e=>(n,t)=>async function(s){var r,i,a,o;if(!OF.HttpRequest.isInstance(s.request))return n(s);let c=(a=(i=(r=t.endpointV2)===null||r===void 0?void 0:r.properties)===null||i===void 0?void 0:i.authSchemes)===null||a===void 0?void 0:a[0],l=c?.name==="sigv4a"?(o=c?.signingRegionSet)===null||o===void 0?void 0:o.join(","):void 0,d=await e.signer(c),h=await n({...s,request:await d.sign(s.request,{signingDate:(0,Pee.getSkewCorrectedDate)(e.systemClockOffset),signingRegion:l||t.signing_region,signingService:t.signing_service})}).catch(z=>{var q;let T=(q=z.ServerTime)!==null&&q!==void 0?q:MF(z.$response);throw T&&(e.systemClockOffset=(0,jF.getUpdatedSystemClockOffset)(T,e.systemClockOffset)),z}),v=MF(h.response);return v&&(e.systemClockOffset=(0,jF.getUpdatedSystemClockOffset)(v,e.systemClockOffset)),h};bn.awsAuthMiddleware=Aee;var MF=e=>{var n,t,s;return OF.HttpResponse.isInstance(e)?(t=(n=e.headers)===null||n===void 0?void 0:n.date)!==null&&t!==void 0?t:(s=e.headers)===null||s===void 0?void 0:s.Date:void 0};bn.awsAuthMiddlewareOptions={name:"awsAuthMiddleware",tags:["SIGNATURE","AWSAUTH"],relation:"after",toMiddleware:"retryMiddleware",override:!0};var xee=e=>({applyToStack:n=>{n.addRelativeTo((0,bn.awsAuthMiddleware)(e),bn.awsAuthMiddlewareOptions)}});bn.getAwsAuthPlugin=xee;bn.getSigV4AuthPlugin=bn.getAwsAuthPlugin});var He=u(Gy=>{"use strict";Object.defineProperty(Gy,"__esModule",{value:!0});var GF=X();GF.__exportStar(FF(),Gy);GF.__exportStar(BF(),Gy)});var UF=u(Uy=>{"use strict";Object.defineProperty(Uy,"__esModule",{value:!0});Uy.resolveUserAgentConfig=void 0;function bee(e){return{...e,customUserAgent:typeof e.customUserAgent=="string"?[[e.customUserAgent]]:e.customUserAgent}}Uy.resolveUserAgentConfig=bee});var XF=u(os=>{"use strict";Object.defineProperty(os,"__esModule",{value:!0});os.UA_ESCAPE_REGEX=os.SPACE=os.X_AMZ_USER_AGENT=os.USER_AGENT=void 0;os.USER_AGENT="user-agent";os.X_AMZ_USER_AGENT="x-amz-user-agent";os.SPACE=" ";os.UA_ESCAPE_REGEX=/[^\!\#\$\%\&\'\*\+\-\.\^\_\`\|\~\d\w]/g});var $F=u(as=>{"use strict";Object.defineProperty(as,"__esModule",{value:!0});as.getUserAgentPlugin=as.getUserAgentMiddlewareOptions=as.userAgentMiddleware=void 0;var Iee=gt(),Ar=XF(),kee=e=>(n,t)=>async s=>{var r,i;let{request:a}=s;if(!Iee.HttpRequest.isInstance(a))return n(s);let{headers:o}=a,c=((r=t?.userAgent)===null||r===void 0?void 0:r.map(z0))||[],l=(await e.defaultUserAgentProvider()).map(z0),d=((i=e?.customUserAgent)===null||i===void 0?void 0:i.map(z0))||[],h=[...l,...c,...d].join(Ar.SPACE),v=[...l.filter(z=>z.startsWith("aws-sdk-")),...d].join(Ar.SPACE);return e.runtime!=="browser"?(v&&(o[Ar.X_AMZ_USER_AGENT]=o[Ar.X_AMZ_USER_AGENT]?`${o[Ar.USER_AGENT]} ${v}`:v),o[Ar.USER_AGENT]=h):o[Ar.X_AMZ_USER_AGENT]=h,n({...s,request:a})};as.userAgentMiddleware=kee;var z0=([e,n])=>{let t=e.indexOf("/"),s=e.substring(0,t),r=e.substring(t+1);return s==="api"&&(r=r.toLowerCase()),[s,r,n].filter(i=>i&&i.length>0).map(i=>i?.replace(Ar.UA_ESCAPE_REGEX,"_")).join("/")};as.getUserAgentMiddlewareOptions={name:"getUserAgentMiddleware",step:"build",priority:"low",tags:["SET_USER_AGENT","USER_AGENT"],override:!0};var Ree=e=>({applyToStack:n=>{n.add((0,as.userAgentMiddleware)(e),as.getUserAgentMiddlewareOptions)}});as.getUserAgentPlugin=Ree});var xr=u(Xy=>{"use strict";Object.defineProperty(Xy,"__esModule",{value:!0});var HF=X();HF.__exportStar(UF(),Xy);HF.__exportStar($F(),Xy)});var VF=u($y=>{"use strict";Object.defineProperty($y,"__esModule",{value:!0});$y.NoOpLogger=void 0;var q0=class{trace(){}debug(){}info(){}warn(){}error(){}};$y.NoOpLogger=q0});var QF=u(eo=>{"use strict";Object.defineProperty(eo,"__esModule",{value:!0});eo.constructStack=void 0;var Nee=()=>{let e=[],n=[],t=new Set,s=d=>d.sort((h,v)=>WF[v.step]-WF[h.step]||KF[v.priority||"normal"]-KF[h.priority||"normal"]),r=d=>{let h=!1,v=z=>z.name&&z.name===d?(h=!0,t.delete(d),!1):!0;return e=e.filter(v),n=n.filter(v),h},i=d=>{let h=!1,v=z=>z.middleware===d?(h=!0,z.name&&t.delete(z.name),!1):!0;return e=e.filter(v),n=n.filter(v),h},a=d=>(e.forEach(h=>{d.add(h.middleware,{...h})}),n.forEach(h=>{d.addRelativeTo(h.middleware,{...h})}),d),o=d=>{let h=[];return d.before.forEach(v=>{v.before.length===0&&v.after.length===0?h.push(v):h.push(...o(v))}),h.push(d),d.after.reverse().forEach(v=>{v.before.length===0&&v.after.length===0?h.push(v):h.push(...o(v))}),h},c=(d=!1)=>{let h=[],v=[],z={};return e.forEach(T=>{let U={...T,before:[],after:[]};U.name&&(z[U.name]=U),h.push(U)}),n.forEach(T=>{let U={...T,before:[],after:[]};U.name&&(z[U.name]=U),v.push(U)}),v.forEach(T=>{if(T.toMiddleware){let U=z[T.toMiddleware];if(U===void 0){if(d)return;throw new Error(`${T.toMiddleware} is not found when adding ${T.name||"anonymous"} middleware ${T.relation} ${T.toMiddleware}`)}T.relation==="after"&&U.after.push(T),T.relation==="before"&&U.before.push(T)}}),s(h).map(o).reduce((T,U)=>(T.push(...U),T),[])},l={add:(d,h={})=>{let{name:v,override:z}=h,q={step:"initialize",priority:"normal",middleware:d,...h};if(v){if(t.has(v)){if(!z)throw new Error(`Duplicate middleware name '${v}'`);let T=e.findIndex(Le=>Le.name===v),U=e[T];if(U.step!==q.step||U.priority!==q.priority)throw new Error(`"${v}" middleware with ${U.priority} priority in ${U.step} step cannot be overridden by same-name middleware with ${q.priority} priority in ${q.step} step.`);e.splice(T,1)}t.add(v)}e.push(q)},addRelativeTo:(d,h)=>{let{name:v,override:z}=h,q={middleware:d,...h};if(v){if(t.has(v)){if(!z)throw new Error(`Duplicate middleware name '${v}'`);let T=n.findIndex(Le=>Le.name===v),U=n[T];if(U.toMiddleware!==q.toMiddleware||U.relation!==q.relation)throw new Error(`"${v}" middleware ${U.relation} "${U.toMiddleware}" middleware cannot be overridden by same-name middleware ${q.relation} "${q.toMiddleware}" middleware.`);n.splice(T,1)}t.add(v)}n.push(q)},clone:()=>a((0,eo.constructStack)()),use:d=>{d.applyToStack(l)},remove:d=>typeof d=="string"?r(d):i(d),removeByTag:d=>{let h=!1,v=z=>{let{tags:q,name:T}=z;return q&&q.includes(d)?(T&&t.delete(T),h=!0,!1):!0};return e=e.filter(v),n=n.filter(v),h},concat:d=>{let h=a((0,eo.constructStack)());return h.use(d),h},applyToStack:a,identify:()=>c(!0).map(d=>d.name+": "+(d.tags||[]).join(",")),resolve:(d,h)=>{for(let v of c().map(z=>z.middleware).reverse())d=v(d,h);return d}};return l};eo.constructStack=Nee;var WF={initialize:5,serialize:4,build:3,finalizeRequest:2,deserialize:1},KF={high:3,normal:2,low:1}});var F0=u(L0=>{"use strict";Object.defineProperty(L0,"__esModule",{value:!0});var zee=X();zee.__exportStar(QF(),L0)});var JF=u(Hy=>{"use strict";Object.defineProperty(Hy,"__esModule",{value:!0});Hy.Client=void 0;var qee=F0(),D0=class{constructor(n){this.middlewareStack=(0,qee.constructStack)(),this.config=n}send(n,t,s){let r=typeof t!="function"?t:void 0,i=typeof t=="function"?t:s,a=n.resolveMiddleware(this.middlewareStack,this.config,r);if(i)a(n).then(o=>i(null,o.output),o=>i(o)).catch(()=>{});else return a(n).then(o=>o.output)}destroy(){this.config.requestHandler.destroy&&this.config.requestHandler.destroy()}};Hy.Client=D0});var YF=u(Vy=>{"use strict";Object.defineProperty(Vy,"__esModule",{value:!0});Vy.Command=void 0;var Lee=F0(),T0=class{constructor(){this.middlewareStack=(0,Lee.constructStack)()}};Vy.Command=T0});var ZF=u(Wy=>{"use strict";Object.defineProperty(Wy,"__esModule",{value:!0});Wy.SENSITIVE_STRING=void 0;Wy.SENSITIVE_STRING="***SensitiveInformation***"});var M0=u(te=>{"use strict";Object.defineProperty(te,"__esModule",{value:!0});te.logger=te.strictParseByte=te.strictParseShort=te.strictParseInt32=te.strictParseInt=te.strictParseLong=te.limitedParseFloat32=te.limitedParseFloat=te.handleFloat=te.limitedParseDouble=te.strictParseFloat32=te.strictParseFloat=te.strictParseDouble=te.expectUnion=te.expectString=te.expectObject=te.expectNonNull=te.expectByte=te.expectShort=te.expectInt32=te.expectInt=te.expectLong=te.expectFloat32=te.expectNumber=te.expectBoolean=te.parseBoolean=void 0;var Fee=e=>{switch(e){case"true":return!0;case"false":return!1;default:throw new Error(`Unable to parse boolean value "${e}"`)}};te.parseBoolean=Fee;var Dee=e=>{if(e!=null){if(typeof e=="number"){if((e===0||e===1)&&te.logger.warn(Ky(`Expected boolean, got ${typeof e}: ${e}`)),e===0)return!1;if(e===1)return!0}if(typeof e=="string"){let n=e.toLowerCase();if((n==="false"||n==="true")&&te.logger.warn(Ky(`Expected boolean, got ${typeof e}: ${e}`)),n==="false")return!1;if(n==="true")return!0}if(typeof e=="boolean")return e;throw new TypeError(`Expected boolean, got ${typeof e}: ${e}`)}};te.expectBoolean=Dee;var Tee=e=>{if(e!=null){if(typeof e=="string"){let n=parseFloat(e);if(!Number.isNaN(n))return String(n)!==String(e)&&te.logger.warn(Ky(`Expected number but observed string: ${e}`)),n}if(typeof e=="number")return e;throw new TypeError(`Expected number, got ${typeof e}: ${e}`)}};te.expectNumber=Tee;var jee=Math.ceil(2**127*(2-2**-23)),Mee=e=>{let n=(0,te.expectNumber)(e);if(n!==void 0&&!Number.isNaN(n)&&n!==1/0&&n!==-1/0&&Math.abs(n)>jee)throw new TypeError(`Expected 32-bit float, got ${e}`);return n};te.expectFloat32=Mee;var Oee=e=>{if(e!=null){if(Number.isInteger(e)&&!Number.isNaN(e))return e;throw new TypeError(`Expected integer, got ${typeof e}: ${e}`)}};te.expectLong=Oee;te.expectInt=te.expectLong;var Bee=e=>j0(e,32);te.expectInt32=Bee;var Gee=e=>j0(e,16);te.expectShort=Gee;var Uee=e=>j0(e,8);te.expectByte=Uee;var j0=(e,n)=>{let t=(0,te.expectLong)(e);if(t!==void 0&&Xee(t,n)!==t)throw new TypeError(`Expected ${n}-bit integer, got ${e}`);return t},Xee=(e,n)=>{switch(n){case 32:return Int32Array.of(e)[0];case 16:return Int16Array.of(e)[0];case 8:return Int8Array.of(e)[0]}},$ee=(e,n)=>{if(e==null)throw n?new TypeError(`Expected a non-null value for ${n}`):new TypeError("Expected a non-null value");return e};te.expectNonNull=$ee;var Hee=e=>{if(e==null)return;if(typeof e=="object"&&!Array.isArray(e))return e;let n=Array.isArray(e)?"array":typeof e;throw new TypeError(`Expected object, got ${n}: ${e}`)};te.expectObject=Hee;var Vee=e=>{if(e!=null){if(typeof e=="string")return e;if(["boolean","number","bigint"].includes(typeof e))return te.logger.warn(Ky(`Expected string, got ${typeof e}: ${e}`)),String(e);throw new TypeError(`Expected string, got ${typeof e}: ${e}`)}};te.expectString=Vee;var Wee=e=>{if(e==null)return;let n=(0,te.expectObject)(e),t=Object.entries(n).filter(([,s])=>s!=null).map(([s])=>s);if(t.length===0)throw new TypeError("Unions must have exactly one non-null member. None were found.");if(t.length>1)throw new TypeError(`Unions must have exactly one non-null member. Keys ${t} were not null.`);return n};te.expectUnion=Wee;var Kee=e=>typeof e=="string"?(0,te.expectNumber)(to(e)):(0,te.expectNumber)(e);te.strictParseDouble=Kee;te.strictParseFloat=te.strictParseDouble;var Qee=e=>typeof e=="string"?(0,te.expectFloat32)(to(e)):(0,te.expectFloat32)(e);te.strictParseFloat32=Qee;var Jee=/(-?(?:0|[1-9]\d*)(?:\.\d+)?(?:[eE][+-]?\d+)?)|(-?Infinity)|(NaN)/g,to=e=>{let n=e.match(Jee);if(n===null||n[0].length!==e.length)throw new TypeError("Expected real number, got implicit NaN");return parseFloat(e)},Yee=e=>typeof e=="string"?eD(e):(0,te.expectNumber)(e);te.limitedParseDouble=Yee;te.handleFloat=te.limitedParseDouble;te.limitedParseFloat=te.limitedParseDouble;var Zee=e=>typeof e=="string"?eD(e):(0,te.expectFloat32)(e);te.limitedParseFloat32=Zee;var eD=e=>{switch(e){case"NaN":return NaN;case"Infinity":return 1/0;case"-Infinity":return-1/0;default:throw new Error(`Unable to parse float value: ${e}`)}},ete=e=>typeof e=="string"?(0,te.expectLong)(to(e)):(0,te.expectLong)(e);te.strictParseLong=ete;te.strictParseInt=te.strictParseLong;var tte=e=>typeof e=="string"?(0,te.expectInt32)(to(e)):(0,te.expectInt32)(e);te.strictParseInt32=tte;var nte=e=>typeof e=="string"?(0,te.expectShort)(to(e)):(0,te.expectShort)(e);te.strictParseShort=nte;var ste=e=>typeof e=="string"?(0,te.expectByte)(to(e)):(0,te.expectByte)(e);te.strictParseByte=ste;var Ky=e=>String(new TypeError(e).stack||e).split(` +`).slice(0,5).filter(n=>!n.includes("stackTraceWarning")).join(` +`);te.logger={warn:console.warn}});var tD=u(Fn=>{"use strict";Object.defineProperty(Fn,"__esModule",{value:!0});Fn.parseEpochTimestamp=Fn.parseRfc7231DateTime=Fn.parseRfc3339DateTimeWithOffset=Fn.parseRfc3339DateTime=Fn.dateToUtcString=void 0;var br=M0(),rte=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],B0=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function ite(e){let n=e.getUTCFullYear(),t=e.getUTCMonth(),s=e.getUTCDay(),r=e.getUTCDate(),i=e.getUTCHours(),a=e.getUTCMinutes(),o=e.getUTCSeconds(),c=r<10?`0${r}`:`${r}`,l=i<10?`0${i}`:`${i}`,d=a<10?`0${a}`:`${a}`,h=o<10?`0${o}`:`${o}`;return`${rte[s]}, ${c} ${B0[t]} ${n} ${l}:${d}:${h} GMT`}Fn.dateToUtcString=ite;var ote=new RegExp(/^(\d{4})-(\d{2})-(\d{2})[tT](\d{2}):(\d{2}):(\d{2})(?:\.(\d+))?[zZ]$/),ate=e=>{if(e==null)return;if(typeof e!="string")throw new TypeError("RFC-3339 date-times must be expressed as strings");let n=ote.exec(e);if(!n)throw new TypeError("Invalid RFC-3339 date-time value");let[t,s,r,i,a,o,c,l]=n,d=(0,br.strictParseShort)(no(s)),h=cs(r,"month",1,12),v=cs(i,"day",1,31);return fa(d,h,v,{hours:a,minutes:o,seconds:c,fractionalMilliseconds:l})};Fn.parseRfc3339DateTime=ate;var cte=new RegExp(/^(\d{4})-(\d{2})-(\d{2})[tT](\d{2}):(\d{2}):(\d{2})(?:\.(\d+))?(([-+]\d{2}\:\d{2})|[zZ])$/),lte=e=>{if(e==null)return;if(typeof e!="string")throw new TypeError("RFC-3339 date-times must be expressed as strings");let n=cte.exec(e);if(!n)throw new TypeError("Invalid RFC-3339 date-time value");let[t,s,r,i,a,o,c,l,d]=n,h=(0,br.strictParseShort)(no(s)),v=cs(r,"month",1,12),z=cs(i,"day",1,31),q=fa(h,v,z,{hours:a,minutes:o,seconds:c,fractionalMilliseconds:l});return d.toUpperCase()!="Z"&&q.setTime(q.getTime()-Cte(d)),q};Fn.parseRfc3339DateTimeWithOffset=lte;var dte=new RegExp(/^(?:Mon|Tue|Wed|Thu|Fri|Sat|Sun), (\d{2}) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) (\d{4}) (\d{1,2}):(\d{2}):(\d{2})(?:\.(\d+))? GMT$/),ute=new RegExp(/^(?:Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sunday), (\d{2})-(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)-(\d{2}) (\d{1,2}):(\d{2}):(\d{2})(?:\.(\d+))? GMT$/),mte=new RegExp(/^(?:Mon|Tue|Wed|Thu|Fri|Sat|Sun) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) ( [1-9]|\d{2}) (\d{1,2}):(\d{2}):(\d{2})(?:\.(\d+))? (\d{4})$/),pte=e=>{if(e==null)return;if(typeof e!="string")throw new TypeError("RFC-7231 date-times must be expressed as strings");let n=dte.exec(e);if(n){let[t,s,r,i,a,o,c,l]=n;return fa((0,br.strictParseShort)(no(i)),O0(r),cs(s,"day",1,31),{hours:a,minutes:o,seconds:c,fractionalMilliseconds:l})}if(n=ute.exec(e),n){let[t,s,r,i,a,o,c,l]=n;return fte(fa(yte(i),O0(r),cs(s,"day",1,31),{hours:a,minutes:o,seconds:c,fractionalMilliseconds:l}))}if(n=mte.exec(e),n){let[t,s,r,i,a,o,c,l]=n;return fa((0,br.strictParseShort)(no(l)),O0(s),cs(r.trimLeft(),"day",1,31),{hours:i,minutes:a,seconds:o,fractionalMilliseconds:c})}throw new TypeError("Invalid RFC-7231 date-time value")};Fn.parseRfc7231DateTime=pte;var gte=e=>{if(e==null)return;let n;if(typeof e=="number")n=e;else if(typeof e=="string")n=(0,br.strictParseDouble)(e);else throw new TypeError("Epoch timestamps must be expressed as floating point numbers or their string representation");if(Number.isNaN(n)||n===1/0||n===-1/0)throw new TypeError("Epoch timestamps must be valid, non-Infinite, non-NaN numerics");return new Date(Math.round(n*1e3))};Fn.parseEpochTimestamp=gte;var fa=(e,n,t,s)=>{let r=n-1;return hte(e,r,t),new Date(Date.UTC(e,r,t,cs(s.hours,"hour",0,23),cs(s.minutes,"minute",0,59),cs(s.seconds,"seconds",0,60),Ete(s.fractionalMilliseconds)))},yte=e=>{let n=new Date().getUTCFullYear(),t=Math.floor(n/100)*100+(0,br.strictParseShort)(no(e));return te.getTime()-new Date().getTime()>_te?new Date(Date.UTC(e.getUTCFullYear()-100,e.getUTCMonth(),e.getUTCDate(),e.getUTCHours(),e.getUTCMinutes(),e.getUTCSeconds(),e.getUTCMilliseconds())):e,O0=e=>{let n=B0.indexOf(e);if(n<0)throw new TypeError(`Invalid month: ${e}`);return n+1},Ste=[31,28,31,30,31,30,31,31,30,31,30,31],hte=(e,n,t)=>{let s=Ste[n];if(n===1&&wte(e)&&(s=29),t>s)throw new TypeError(`Invalid day for ${B0[n]} in ${e}: ${t}`)},wte=e=>e%4===0&&(e%100!==0||e%400===0),cs=(e,n,t,s)=>{let r=(0,br.strictParseByte)(no(e));if(rs)throw new TypeError(`${n} must be between ${t} and ${s}, inclusive`);return r},Ete=e=>e==null?0:(0,br.strictParseFloat32)("0."+e)*1e3,Cte=e=>{let n=e[0],t=1;if(n=="+")t=1;else if(n=="-")t=-1;else throw new TypeError(`Offset direction, ${n}, must be "+" or "-"`);let s=Number(e.substring(1,3)),r=Number(e.substring(4,6));return t*(s*60+r)*60*1e3},no=e=>{let n=0;for(;n{"use strict";Object.defineProperty(so,"__esModule",{value:!0});so.decorateServiceException=so.ServiceException=void 0;var Sa=class extends Error{constructor(n){super(n.message),Object.setPrototypeOf(this,Sa.prototype),this.name=n.name,this.$fault=n.$fault,this.$metadata=n.$metadata}};so.ServiceException=Sa;var vte=(e,n={})=>{Object.entries(n).filter(([,s])=>s!==void 0).forEach(([s,r])=>{(e[s]==null||e[s]==="")&&(e[s]=r)});let t=e.message||e.Message||"UnknownError";return e.message=t,delete e.Message,e};so.decorateServiceException=vte});var nD=u(Qy=>{"use strict";Object.defineProperty(Qy,"__esModule",{value:!0});Qy.throwDefaultError=void 0;var Pte=G0(),Ate=({output:e,parsedBody:n,exceptionCtor:t,errorCode:s})=>{let r=xte(e),i=r.httpStatusCode?r.httpStatusCode+"":void 0,a=new t({name:n?.code||n?.Code||s||i||"UnknownError",$fault:"client",$metadata:r});throw(0,Pte.decorateServiceException)(a,n)};Qy.throwDefaultError=Ate;var xte=e=>{var n,t;return{httpStatusCode:e.statusCode,requestId:(t=(n=e.headers["x-amzn-requestid"])!==null&&n!==void 0?n:e.headers["x-amzn-request-id"])!==null&&t!==void 0?t:e.headers["x-amz-request-id"],extendedRequestId:e.headers["x-amz-id-2"],cfId:e.headers["x-amz-cf-id"]}}});var sD=u(Jy=>{"use strict";Object.defineProperty(Jy,"__esModule",{value:!0});Jy.loadConfigsForDefaultMode=void 0;var bte=e=>{switch(e){case"standard":return{retryMode:"standard",connectionTimeout:3100};case"in-region":return{retryMode:"standard",connectionTimeout:1100};case"cross-region":return{retryMode:"standard",connectionTimeout:3100};case"mobile":return{retryMode:"standard",connectionTimeout:3e4};default:return{}}};Jy.loadConfigsForDefaultMode=bte});var iD=u(Yy=>{"use strict";Object.defineProperty(Yy,"__esModule",{value:!0});Yy.emitWarningIfUnsupportedVersion=void 0;var rD=!1,Ite=e=>{e&&!rD&&parseInt(e.substring(1,e.indexOf(".")))<14&&(rD=!0)};Yy.emitWarningIfUnsupportedVersion=Ite});var U0=u(Zy=>{"use strict";Object.defineProperty(Zy,"__esModule",{value:!0});Zy.extendedEncodeURIComponent=void 0;function kte(e){return encodeURIComponent(e).replace(/[!'()*]/g,function(n){return"%"+n.charCodeAt(0).toString(16).toUpperCase()})}Zy.extendedEncodeURIComponent=kte});var oD=u(e_=>{"use strict";Object.defineProperty(e_,"__esModule",{value:!0});e_.getArrayIfSingleItem=void 0;var Rte=e=>Array.isArray(e)?e:[e];e_.getArrayIfSingleItem=Rte});var aD=u(ha=>{"use strict";Object.defineProperty(ha,"__esModule",{value:!0});ha.getValueFromTextNode=void 0;var Nte=e=>{let n="#text";for(let t in e)e.hasOwnProperty(t)&&e[t][n]!==void 0?e[t]=e[t][n]:typeof e[t]=="object"&&e[t]!==null&&(e[t]=(0,ha.getValueFromTextNode)(e[t]));return e};ha.getValueFromTextNode=Nte});var cD=u(ls=>{"use strict";Object.defineProperty(ls,"__esModule",{value:!0});ls.LazyJsonString=ls.StringWrapper=void 0;var zte=function(){let e=Object.getPrototypeOf(this).constructor,n=Function.bind.apply(String,[null,...arguments]),t=new n;return Object.setPrototypeOf(t,e.prototype),t};ls.StringWrapper=zte;ls.StringWrapper.prototype=Object.create(String.prototype,{constructor:{value:ls.StringWrapper,enumerable:!1,writable:!0,configurable:!0}});Object.setPrototypeOf(ls.StringWrapper,String);var Ci=class extends ls.StringWrapper{deserializeJSON(){return JSON.parse(super.toString())}toJSON(){return super.toString()}static fromObject(n){return n instanceof Ci?n:n instanceof String||typeof n=="string"?new Ci(n):new Ci(JSON.stringify(n))}};ls.LazyJsonString=Ci});var dD=u(ro=>{"use strict";Object.defineProperty(ro,"__esModule",{value:!0});ro.convertMap=ro.map=void 0;function lD(e,n,t){let s,r,i;if(typeof n>"u"&&typeof t>"u")s={},i=e;else{if(s=e,typeof n=="function")return r=n,i=t,Lte(s,r,i);i=n}for(let a of Object.keys(i)){if(!Array.isArray(i[a])){s[a]=i[a];continue}let[o,c]=i[a];if(typeof c=="function"){let l,d=o===void 0&&(l=c())!=null,h=typeof o=="function"&&!!o(void 0)||typeof o!="function"&&!!o;d?s[a]=l:h&&(s[a]=c())}else{let l=o===void 0&&c!=null,d=typeof o=="function"&&!!o(c)||typeof o!="function"&&!!o;(l||d)&&(s[a]=c)}}return s}ro.map=lD;var qte=e=>{let n={};for(let[t,s]of Object.entries(e||{}))n[t]=[,s];return n};ro.convertMap=qte;var Lte=(e,n,t)=>lD(e,Object.entries(t).reduce((s,[r,i])=>(Array.isArray(i)?s[r]=i:typeof i=="function"?s[r]=[n,i()]:s[r]=[n,i],s),{}))});var mD=u(t_=>{"use strict";Object.defineProperty(t_,"__esModule",{value:!0});t_.resolvedPath=void 0;var uD=U0(),Fte=(e,n,t,s,r,i)=>{if(n!=null&&n[t]!==void 0){let a=s();if(a.length<=0)throw new Error("Empty value provided for input HTTP label: "+t+".");e=e.replace(r,i?a.split("/").map(o=>(0,uD.extendedEncodeURIComponent)(o)).join("/"):(0,uD.extendedEncodeURIComponent)(a))}else throw new Error("No value provided for input HTTP label: "+t+".");return e};t_.resolvedPath=Fte});var pD=u(n_=>{"use strict";Object.defineProperty(n_,"__esModule",{value:!0});n_.serializeFloat=void 0;var Dte=e=>{if(e!==e)return"NaN";switch(e){case 1/0:return"Infinity";case-1/0:return"-Infinity";default:return e}};n_.serializeFloat=Dte});var gD=u(s_=>{"use strict";Object.defineProperty(s_,"__esModule",{value:!0});s_.splitEvery=void 0;function Tte(e,n,t){if(t<=0||!Number.isInteger(t))throw new Error("Invalid number of delimiters ("+t+") for splitEvery.");let s=e.split(n);if(t===1)return s;let r=[],i="";for(let a=0;a{"use strict";Object.defineProperty(Tt,"__esModule",{value:!0});var $t=X();$t.__exportStar(VF(),Tt);$t.__exportStar(JF(),Tt);$t.__exportStar(YF(),Tt);$t.__exportStar(ZF(),Tt);$t.__exportStar(tD(),Tt);$t.__exportStar(nD(),Tt);$t.__exportStar(sD(),Tt);$t.__exportStar(iD(),Tt);$t.__exportStar(G0(),Tt);$t.__exportStar(U0(),Tt);$t.__exportStar(oD(),Tt);$t.__exportStar(aD(),Tt);$t.__exportStar(cD(),Tt);$t.__exportStar(dD(),Tt);$t.__exportStar(M0(),Tt);$t.__exportStar(mD(),Tt);$t.__exportStar(pD(),Tt);$t.__exportStar(gD(),Tt)});var yD=u(r_=>{"use strict";Object.defineProperty(r_,"__esModule",{value:!0});r_.resolveClientEndpointParameters=void 0;var jte=e=>({...e,useDualstackEndpoint:e.useDualstackEndpoint??!1,useFipsEndpoint:e.useFipsEndpoint??!1,defaultSigningName:"cognito-identity"});r_.resolveClientEndpointParameters=jte});var _D=u(($mt,Mte)=>{Mte.exports={name:"@aws-sdk/client-cognito-identity",description:"AWS SDK for JavaScript Cognito Identity Client for Node.js, Browser and React Native",version:"3.282.0",scripts:{build:"concurrently 'yarn:build:cjs' 'yarn:build:es' 'yarn:build:types'","build:cjs":"tsc -p tsconfig.cjs.json","build:docs":"typedoc","build:es":"tsc -p tsconfig.es.json","build:include:deps":"lerna run --scope $npm_package_name --include-dependencies build","build:types":"tsc -p tsconfig.types.json","build:types:downlevel":"downlevel-dts dist-types dist-types/ts3.4",clean:"rimraf ./dist-* && rimraf *.tsbuildinfo","generate:client":"node ../../scripts/generate-clients/single-service --solo cognito-identity","test:e2e":"ts-mocha test/**/*.ispec.ts && karma start karma.conf.js"},main:"./dist-cjs/index.js",types:"./dist-types/index.d.ts",module:"./dist-es/index.js",sideEffects:!1,dependencies:{"@aws-crypto/sha256-browser":"3.0.0","@aws-crypto/sha256-js":"3.0.0","@aws-sdk/client-sts":"3.282.0","@aws-sdk/config-resolver":"3.282.0","@aws-sdk/credential-provider-node":"3.282.0","@aws-sdk/fetch-http-handler":"3.282.0","@aws-sdk/hash-node":"3.272.0","@aws-sdk/invalid-dependency":"3.272.0","@aws-sdk/middleware-content-length":"3.282.0","@aws-sdk/middleware-endpoint":"3.282.0","@aws-sdk/middleware-host-header":"3.282.0","@aws-sdk/middleware-logger":"3.272.0","@aws-sdk/middleware-recursion-detection":"3.282.0","@aws-sdk/middleware-retry":"3.282.0","@aws-sdk/middleware-serde":"3.272.0","@aws-sdk/middleware-signing":"3.282.0","@aws-sdk/middleware-stack":"3.272.0","@aws-sdk/middleware-user-agent":"3.282.0","@aws-sdk/node-config-provider":"3.272.0","@aws-sdk/node-http-handler":"3.282.0","@aws-sdk/protocol-http":"3.282.0","@aws-sdk/smithy-client":"3.279.0","@aws-sdk/types":"3.272.0","@aws-sdk/url-parser":"3.272.0","@aws-sdk/util-base64":"3.208.0","@aws-sdk/util-body-length-browser":"3.188.0","@aws-sdk/util-body-length-node":"3.208.0","@aws-sdk/util-defaults-mode-browser":"3.279.0","@aws-sdk/util-defaults-mode-node":"3.282.0","@aws-sdk/util-endpoints":"3.272.0","@aws-sdk/util-retry":"3.272.0","@aws-sdk/util-user-agent-browser":"3.282.0","@aws-sdk/util-user-agent-node":"3.282.0","@aws-sdk/util-utf8":"3.254.0",tslib:"^2.3.1"},devDependencies:{"@aws-sdk/client-iam":"3.282.0","@aws-sdk/service-client-documentation-generator":"3.208.0","@tsconfig/node14":"1.0.3","@types/chai":"^4.2.11","@types/mocha":"^8.0.4","@types/node":"^14.14.31",concurrently:"7.0.0","downlevel-dts":"0.10.1",rimraf:"3.0.2",typedoc:"0.19.2",typescript:"~4.6.2"},overrides:{typedoc:{typescript:"~4.6.2"}},engines:{node:">=14.0.0"},typesVersions:{"<4.0":{"dist-types/*":["dist-types/ts3.4/*"]}},files:["dist-*"],author:{name:"AWS SDK for JavaScript Team",url:"https://aws.amazon.com/javascript/"},license:"Apache-2.0",browser:{"./dist-es/runtimeConfig":"./dist-es/runtimeConfig.browser"},"react-native":{"./dist-es/runtimeConfig":"./dist-es/runtimeConfig.native"},homepage:"https://github.com/aws/aws-sdk-js-v3/tree/main/clients/client-cognito-identity",repository:{type:"git",url:"https://github.com/aws/aws-sdk-js-v3.git",directory:"clients/client-cognito-identity"}}});var o_=u(i_=>{"use strict";Object.defineProperty(i_,"__esModule",{value:!0});i_.STSServiceException=void 0;var Ote=E(),wa=class extends Ote.ServiceException{constructor(n){super(n),Object.setPrototypeOf(this,wa.prototype)}};i_.STSServiceException=wa});var Kn=u(ye=>{"use strict";Object.defineProperty(ye,"__esModule",{value:!0});ye.GetSessionTokenResponseFilterSensitiveLog=ye.GetSessionTokenRequestFilterSensitiveLog=ye.GetFederationTokenResponseFilterSensitiveLog=ye.FederatedUserFilterSensitiveLog=ye.GetFederationTokenRequestFilterSensitiveLog=ye.GetCallerIdentityResponseFilterSensitiveLog=ye.GetCallerIdentityRequestFilterSensitiveLog=ye.GetAccessKeyInfoResponseFilterSensitiveLog=ye.GetAccessKeyInfoRequestFilterSensitiveLog=ye.DecodeAuthorizationMessageResponseFilterSensitiveLog=ye.DecodeAuthorizationMessageRequestFilterSensitiveLog=ye.AssumeRoleWithWebIdentityResponseFilterSensitiveLog=ye.AssumeRoleWithWebIdentityRequestFilterSensitiveLog=ye.AssumeRoleWithSAMLResponseFilterSensitiveLog=ye.AssumeRoleWithSAMLRequestFilterSensitiveLog=ye.AssumeRoleResponseFilterSensitiveLog=ye.CredentialsFilterSensitiveLog=ye.AssumeRoleRequestFilterSensitiveLog=ye.TagFilterSensitiveLog=ye.PolicyDescriptorTypeFilterSensitiveLog=ye.AssumedRoleUserFilterSensitiveLog=ye.InvalidAuthorizationMessageException=ye.IDPCommunicationErrorException=ye.InvalidIdentityTokenException=ye.IDPRejectedClaimException=ye.RegionDisabledException=ye.PackedPolicyTooLargeException=ye.MalformedPolicyDocumentException=ye.ExpiredTokenException=void 0;var Ir=o_(),Ea=class extends Ir.STSServiceException{constructor(n){super({name:"ExpiredTokenException",$fault:"client",...n}),this.name="ExpiredTokenException",this.$fault="client",Object.setPrototypeOf(this,Ea.prototype)}};ye.ExpiredTokenException=Ea;var Ca=class extends Ir.STSServiceException{constructor(n){super({name:"MalformedPolicyDocumentException",$fault:"client",...n}),this.name="MalformedPolicyDocumentException",this.$fault="client",Object.setPrototypeOf(this,Ca.prototype)}};ye.MalformedPolicyDocumentException=Ca;var va=class extends Ir.STSServiceException{constructor(n){super({name:"PackedPolicyTooLargeException",$fault:"client",...n}),this.name="PackedPolicyTooLargeException",this.$fault="client",Object.setPrototypeOf(this,va.prototype)}};ye.PackedPolicyTooLargeException=va;var Pa=class extends Ir.STSServiceException{constructor(n){super({name:"RegionDisabledException",$fault:"client",...n}),this.name="RegionDisabledException",this.$fault="client",Object.setPrototypeOf(this,Pa.prototype)}};ye.RegionDisabledException=Pa;var Aa=class extends Ir.STSServiceException{constructor(n){super({name:"IDPRejectedClaimException",$fault:"client",...n}),this.name="IDPRejectedClaimException",this.$fault="client",Object.setPrototypeOf(this,Aa.prototype)}};ye.IDPRejectedClaimException=Aa;var xa=class extends Ir.STSServiceException{constructor(n){super({name:"InvalidIdentityTokenException",$fault:"client",...n}),this.name="InvalidIdentityTokenException",this.$fault="client",Object.setPrototypeOf(this,xa.prototype)}};ye.InvalidIdentityTokenException=xa;var ba=class extends Ir.STSServiceException{constructor(n){super({name:"IDPCommunicationErrorException",$fault:"client",...n}),this.name="IDPCommunicationErrorException",this.$fault="client",Object.setPrototypeOf(this,ba.prototype)}};ye.IDPCommunicationErrorException=ba;var Ia=class extends Ir.STSServiceException{constructor(n){super({name:"InvalidAuthorizationMessageException",$fault:"client",...n}),this.name="InvalidAuthorizationMessageException",this.$fault="client",Object.setPrototypeOf(this,Ia.prototype)}};ye.InvalidAuthorizationMessageException=Ia;var Bte=e=>({...e});ye.AssumedRoleUserFilterSensitiveLog=Bte;var Gte=e=>({...e});ye.PolicyDescriptorTypeFilterSensitiveLog=Gte;var Ute=e=>({...e});ye.TagFilterSensitiveLog=Ute;var Xte=e=>({...e});ye.AssumeRoleRequestFilterSensitiveLog=Xte;var $te=e=>({...e});ye.CredentialsFilterSensitiveLog=$te;var Hte=e=>({...e});ye.AssumeRoleResponseFilterSensitiveLog=Hte;var Vte=e=>({...e});ye.AssumeRoleWithSAMLRequestFilterSensitiveLog=Vte;var Wte=e=>({...e});ye.AssumeRoleWithSAMLResponseFilterSensitiveLog=Wte;var Kte=e=>({...e});ye.AssumeRoleWithWebIdentityRequestFilterSensitiveLog=Kte;var Qte=e=>({...e});ye.AssumeRoleWithWebIdentityResponseFilterSensitiveLog=Qte;var Jte=e=>({...e});ye.DecodeAuthorizationMessageRequestFilterSensitiveLog=Jte;var Yte=e=>({...e});ye.DecodeAuthorizationMessageResponseFilterSensitiveLog=Yte;var Zte=e=>({...e});ye.GetAccessKeyInfoRequestFilterSensitiveLog=Zte;var ene=e=>({...e});ye.GetAccessKeyInfoResponseFilterSensitiveLog=ene;var tne=e=>({...e});ye.GetCallerIdentityRequestFilterSensitiveLog=tne;var nne=e=>({...e});ye.GetCallerIdentityResponseFilterSensitiveLog=nne;var sne=e=>({...e});ye.GetFederationTokenRequestFilterSensitiveLog=sne;var rne=e=>({...e});ye.FederatedUserFilterSensitiveLog=rne;var ine=e=>({...e});ye.GetFederationTokenResponseFilterSensitiveLog=ine;var one=e=>({...e});ye.GetSessionTokenRequestFilterSensitiveLog=one;var ane=e=>({...e});ye.GetSessionTokenResponseFilterSensitiveLog=ane});var X0=u(Hs=>{"use strict";var fD=":A-Za-z_\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD",cne=fD+"\\-.\\d\\u00B7\\u0300-\\u036F\\u203F-\\u2040",SD="["+fD+"]["+cne+"]*",lne=new RegExp("^"+SD+"$"),dne=function(e,n){let t=[],s=n.exec(e);for(;s;){let r=[];r.startIndex=n.lastIndex-s[0].length;let i=s.length;for(let a=0;a"u")};Hs.isExist=function(e){return typeof e<"u"};Hs.isEmptyObject=function(e){return Object.keys(e).length===0};Hs.merge=function(e,n,t){if(n){let s=Object.keys(n),r=s.length;for(let i=0;i{"use strict";var $0=X0(),mne={allowBooleanAttributes:!1,unpairedTags:[]};vD.validate=function(e,n){n=Object.assign({},mne,n);let t=[],s=!1,r=!1;e[0]==="\uFEFF"&&(e=e.substr(1));for(let i=0;i"&&e[i]!==" "&&e[i]!==" "&&e[i]!==` +`&&e[i]!=="\r";i++)c+=e[i];if(c=c.trim(),c[c.length-1]==="/"&&(c=c.substring(0,c.length-1),i--),!wne(c)){let h;return c.trim().length===0?h="Invalid space after '<'.":h="Tag '"+c+"' is an invalid name.",jt("InvalidTag",h,wn(e,i))}let l=yne(e,i);if(l===!1)return jt("InvalidAttr","Attributes for '"+c+"' have open quote.",wn(e,i));let d=l.value;if(i=l.index,d[d.length-1]==="/"){let h=i-d.length;d=d.substring(0,d.length-1);let v=CD(d,n);if(v===!0)s=!0;else return jt(v.err.code,v.err.msg,wn(e,h+v.err.line))}else if(o)if(l.tagClosed){if(d.trim().length>0)return jt("InvalidTag","Closing tag '"+c+"' can't have attributes or invalid starting.",wn(e,a));{let h=t.pop();if(c!==h.tagName){let v=wn(e,h.tagStartPos);return jt("InvalidTag","Expected closing tag '"+h.tagName+"' (opened in line "+v.line+", col "+v.col+") instead of closing tag '"+c+"'.",wn(e,a))}t.length==0&&(r=!0)}}else return jt("InvalidTag","Closing tag '"+c+"' doesn't have proper closing.",wn(e,i));else{let h=CD(d,n);if(h!==!0)return jt(h.err.code,h.err.msg,wn(e,i-d.length+h.err.line));if(r===!0)return jt("InvalidXml","Multiple possible root nodes found.",wn(e,i));n.unpairedTags.indexOf(c)!==-1||t.push({tagName:c,tagStartPos:a}),s=!0}for(i++;i0)return jt("InvalidXml","Invalid '"+JSON.stringify(t.map(i=>i.tagName),null,4).replace(/\r?\n/g,"")+"' found.",{line:1,col:1})}else return jt("InvalidXml","Start tag expected.",1);return!0};function hD(e){return e===" "||e===" "||e===` +`||e==="\r"}function wD(e,n){let t=n;for(;n5&&s==="xml")return jt("InvalidXml","XML declaration allowed only at the start of the document.",wn(e,n));if(e[n]=="?"&&e[n+1]==">"){n++;break}else continue}return n}function ED(e,n){if(e.length>n+5&&e[n+1]==="-"&&e[n+2]==="-"){for(n+=3;n"){n+=2;break}}else if(e.length>n+8&&e[n+1]==="D"&&e[n+2]==="O"&&e[n+3]==="C"&&e[n+4]==="T"&&e[n+5]==="Y"&&e[n+6]==="P"&&e[n+7]==="E"){let t=1;for(n+=8;n"&&(t--,t===0))break}else if(e.length>n+9&&e[n+1]==="["&&e[n+2]==="C"&&e[n+3]==="D"&&e[n+4]==="A"&&e[n+5]==="T"&&e[n+6]==="A"&&e[n+7]==="["){for(n+=8;n"){n+=2;break}}return n}var pne='"',gne="'";function yne(e,n){let t="",s="",r=!1;for(;n"&&s===""){r=!0;break}t+=e[n]}return s!==""?!1:{value:t,index:n,tagClosed:r}}var _ne=new RegExp(`(\\s*)([^\\s=]+)(\\s*=)?(\\s*(['"])(([\\s\\S])*?)\\5)?`,"g");function CD(e,n){let t=$0.getAllMatches(e,_ne),s={};for(let r=0;r{var PD={preserveOrder:!1,attributeNamePrefix:"@_",attributesGroupName:!1,textNodeName:"#text",ignoreAttributes:!0,removeNSPrefix:!1,allowBooleanAttributes:!1,parseTagValue:!0,parseAttributeValue:!1,trimValues:!0,cdataPropName:!1,numberParseOptions:{hex:!0,leadingZeros:!0,eNotation:!0},tagValueProcessor:function(e,n){return n},attributeValueProcessor:function(e,n){return n},stopNodes:[],alwaysCreateTextNode:!1,isArray:()=>!1,commentPropName:!1,unpairedTags:[],processEntities:!0,htmlEntities:!1,ignoreDeclaration:!1,ignorePiTags:!1,transformTagName:!1,transformAttributeName:!1},Ene=function(e){return Object.assign({},PD,e)};V0.buildOptions=Ene;V0.defaultOptions=PD});var bD=u((Jmt,xD)=>{"use strict";var W0=class{constructor(n){this.tagname=n,this.child=[],this[":@"]={}}add(n,t){n==="__proto__"&&(n="#__proto__"),this.child.push({[n]:t})}addChild(n){n.tagname==="__proto__"&&(n.tagname="#__proto__"),n[":@"]&&Object.keys(n[":@"]).length>0?this.child.push({[n.tagname]:n.child,[":@"]:n[":@"]}):this.child.push({[n.tagname]:n.child})}};xD.exports=W0});var kD=u((Ymt,ID)=>{function Cne(e,n){let t={};if(e[n+3]==="O"&&e[n+4]==="C"&&e[n+5]==="T"&&e[n+6]==="Y"&&e[n+7]==="P"&&e[n+8]==="E"){n=n+9;let s=1,r=!1,i=!1,a=!1,o="";for(;n"){if(a?e[n-1]==="-"&&e[n-2]==="-"&&(a=!1,s--):(i&&(Pne(o,t),i=!1),s--),s===0)break}else e[n]==="["?r=!0:o+=e[n];if(s!==0)throw new Error("Unclosed DOCTYPE")}else throw new Error("Invalid Tag instead of DOCTYPE");return{entities:t,i:n}}var vne=RegExp(`^\\s([a-zA-z0-0]+)[ ](['"])([^&]+)\\2`);function Pne(e,n){let t=vne.exec(e);t&&(n[t[1]]={regx:RegExp(`&${t[1]};`,"g"),val:t[3]})}ID.exports=Cne});var ND=u((Zmt,RD)=>{var Ane=/^[-+]?0x[a-fA-F0-9]+$/,xne=/^([\-\+])?(0*)(\.[0-9]+([eE]\-?[0-9]+)?|[0-9]+(\.[0-9]+([eE]\-?[0-9]+)?)?)$/;!Number.parseInt&&window.parseInt&&(Number.parseInt=window.parseInt);!Number.parseFloat&&window.parseFloat&&(Number.parseFloat=window.parseFloat);var bne={hex:!0,leadingZeros:!0,decimalPoint:".",eNotation:!0};function Ine(e,n={}){if(n=Object.assign({},bne,n),!e||typeof e!="string")return e;let t=e.trim();if(n.skipLike!==void 0&&n.skipLike.test(t))return e;if(n.hex&&Ane.test(t))return Number.parseInt(t,16);{let s=xne.exec(t);if(s){let r=s[1],i=s[2],a=kne(s[3]),o=s[4]||s[6];if(!n.leadingZeros&&i.length>0&&r&&t[2]!==".")return e;if(!n.leadingZeros&&i.length>0&&!r&&t[1]!==".")return e;{let c=Number(t),l=""+c;return l.search(/[eE]/)!==-1||o?n.eNotation?c:e:t.indexOf(".")!==-1?l==="0"&&a===""||l===a||r&&l==="-"+a?c:e:i?a===l||r+a===l?c:e:t===l||t===r+l?c:e}}else return e}}function kne(e){return e&&e.indexOf(".")!==-1&&(e=e.replace(/0+$/,""),e==="."?e="0":e[0]==="."?e="0"+e:e[e.length-1]==="."&&(e=e.substr(0,e.length-1))),e}RD.exports=Ine});var qD=u((tpt,zD)=>{"use strict";var Y0=X0(),Ra=bD(),Rne=kD(),Nne=ND(),ept="<((!\\[CDATA\\[([\\s\\S]*?)(]]>))|((NAME:)?(NAME))([^>]*)>|((\\/)(NAME)\\s*>))([^<]*)".replace(/NAME/g,Y0.nameRegexp),K0=class{constructor(n){this.options=n,this.currentNode=null,this.tagsNodeStack=[],this.docTypeEntities={},this.lastEntities={apos:{regex:/&(apos|#39|#x27);/g,val:"'"},gt:{regex:/&(gt|#62|#x3E);/g,val:">"},lt:{regex:/&(lt|#60|#x3C);/g,val:"<"},quot:{regex:/&(quot|#34|#x22);/g,val:'"'}},this.ampEntity={regex:/&(amp|#38|#x26);/g,val:"&"},this.htmlEntities={space:{regex:/&(nbsp|#160);/g,val:" "},cent:{regex:/&(cent|#162);/g,val:"\xA2"},pound:{regex:/&(pound|#163);/g,val:"\xA3"},yen:{regex:/&(yen|#165);/g,val:"\xA5"},euro:{regex:/&(euro|#8364);/g,val:"\u20AC"},copyright:{regex:/&(copy|#169);/g,val:"\xA9"},reg:{regex:/&(reg|#174);/g,val:"\xAE"},inr:{regex:/&(inr|#8377);/g,val:"\u20B9"}},this.addExternalEntities=zne,this.parseXml=Tne,this.parseTextData=qne,this.resolveNameSpace=Lne,this.buildAttributesMap=Dne,this.isItStopNode=One,this.replaceEntitiesValue=jne,this.readStopNodeData=Gne,this.saveTextToParentTag=Mne}};function zne(e){let n=Object.keys(e);for(let t=0;t0)){a||(e=this.replaceEntitiesValue(e));let o=this.options.tagValueProcessor(n,e,t,r,i);return o==null?e:typeof o!=typeof e||o!==e?o:this.options.trimValues?J0(e,this.options.parseTagValue,this.options.numberParseOptions):e.trim()===e?J0(e,this.options.parseTagValue,this.options.numberParseOptions):e}}function Lne(e){if(this.options.removeNSPrefix){let n=e.split(":"),t=e.charAt(0)==="/"?"/":"";if(n[0]==="xmlns")return"";n.length===2&&(e=t+n[1])}return e}var Fne=new RegExp(`([^\\s=]+)\\s*(=\\s*(['"])([\\s\\S]*?)\\3)?`,"gm");function Dne(e,n){if(!this.options.ignoreAttributes&&typeof e=="string"){let t=Y0.getAllMatches(e,Fne),s=t.length,r={};for(let i=0;i",i,"Closing Tag is not closed."),c=e.substring(i+2,o).trim();if(this.options.removeNSPrefix){let l=c.indexOf(":");l!==-1&&(c=c.substr(l+1))}this.options.transformTagName&&(c=this.options.transformTagName(c)),t&&(s=this.saveTextToParentTag(s,t,r)),r=r.substr(0,r.lastIndexOf(".")),t=this.tagsNodeStack.pop(),s="",i=o}else if(e[i+1]==="?"){let o=Q0(e,i,!1,"?>");if(!o)throw new Error("Pi Tag is not closed.");if(s=this.saveTextToParentTag(s,t,r),!(this.options.ignoreDeclaration&&o.tagName==="?xml"||this.options.ignorePiTags)){let c=new Ra(o.tagName);c.add(this.options.textNodeName,""),o.tagName!==o.tagExp&&o.attrExpPresent&&(c[":@"]=this.buildAttributesMap(o.tagExp,r)),t.addChild(c)}i=o.closeIndex+1}else if(e.substr(i+1,3)==="!--"){let o=vi(e,"-->",i+4,"Comment is not closed.");if(this.options.commentPropName){let c=e.substring(i+4,o-2);s=this.saveTextToParentTag(s,t,r),t.add(this.options.commentPropName,[{[this.options.textNodeName]:c}])}i=o}else if(e.substr(i+1,2)==="!D"){let o=Rne(e,i);this.docTypeEntities=o.entities,i=o.i}else if(e.substr(i+1,2)==="!["){let o=vi(e,"]]>",i,"CDATA is not closed.")-2,c=e.substring(i+9,o);if(s=this.saveTextToParentTag(s,t,r),this.options.cdataPropName)t.add(this.options.cdataPropName,[{[this.options.textNodeName]:c}]);else{let l=this.parseTextData(c,t.tagname,r,!0,!1,!0);l==null&&(l=""),t.add(this.options.textNodeName,l)}i=o+2}else{let o=Q0(e,i,this.options.removeNSPrefix),c=o.tagName,l=o.tagExp,d=o.attrExpPresent,h=o.closeIndex;this.options.transformTagName&&(c=this.options.transformTagName(c)),t&&s&&t.tagname!=="!xml"&&(s=this.saveTextToParentTag(s,t,r,!1)),c!==n.tagname&&(r+=r?"."+c:c);let v=t;if(v&&this.options.unpairedTags.indexOf(v.tagname)!==-1&&(t=this.tagsNodeStack.pop()),this.isItStopNode(this.options.stopNodes,r,c)){let z="";if(l.length>0&&l.lastIndexOf("/")===l.length-1)i=o.closeIndex;else if(this.options.unpairedTags.indexOf(c)!==-1)i=o.closeIndex;else{let T=this.readStopNodeData(e,c,h+1);if(!T)throw new Error(`Unexpected end of ${c}`);i=T.i,z=T.tagContent}let q=new Ra(c);c!==l&&d&&(q[":@"]=this.buildAttributesMap(l,r)),z&&(z=this.parseTextData(z,c,r,!0,d,!0,!0)),r=r.substr(0,r.lastIndexOf(".")),q.add(this.options.textNodeName,z),t.addChild(q)}else{if(l.length>0&&l.lastIndexOf("/")===l.length-1){c[c.length-1]==="/"?(c=c.substr(0,c.length-1),l=c):l=l.substr(0,l.length-1),this.options.transformTagName&&(c=this.options.transformTagName(c));let z=new Ra(c);c!==l&&d&&(z[":@"]=this.buildAttributesMap(l,r)),r=r.substr(0,r.lastIndexOf(".")),t.addChild(z)}else{let z=new Ra(c);this.tagsNodeStack.push(t),c!==l&&d&&(z[":@"]=this.buildAttributesMap(l,r)),t.addChild(z),t=z}s="",i=h}}else s+=e[i];return n.child},jne=function(e){if(this.options.processEntities){for(let n in this.docTypeEntities){let t=this.docTypeEntities[n];e=e.replace(t.regx,t.val)}for(let n in this.lastEntities){let t=this.lastEntities[n];e=e.replace(t.regex,t.val)}if(this.options.htmlEntities)for(let n in this.htmlEntities){let t=this.htmlEntities[n];e=e.replace(t.regex,t.val)}e=e.replace(this.ampEntity.regex,this.ampEntity.val)}return e};function Mne(e,n,t,s){return e&&(s===void 0&&(s=Object.keys(n.child).length===0),e=this.parseTextData(e,n.tagname,t,!1,n[":@"]?Object.keys(n[":@"]).length!==0:!1,s),e!==void 0&&e!==""&&n.add(this.options.textNodeName,e),e=""),e}function One(e,n,t){let s="*."+t;for(let r in e){let i=e[r];if(s===i||n===i)return!0}return!1}function Bne(e,n,t=">"){let s,r="";for(let i=n;i",t,`${n} is not closed`);if(e.substring(t+2,i).trim()===n&&(r--,r===0))return{tagContent:e.substring(s,t),i};t=i}else if(e[t+1]==="?")t=vi(e,"?>",t+1,"StopNode is not closed.");else if(e.substr(t+1,3)==="!--")t=vi(e,"-->",t+3,"StopNode is not closed.");else if(e.substr(t+1,2)==="![")t=vi(e,"]]>",t,"StopNode is not closed.")-2;else{let i=Q0(e,t,">");i&&((i&&i.tagName)===n&&i.tagExp[i.tagExp.length-1]!=="/"&&r++,t=i.closeIndex)}}function J0(e,n,t){if(n&&typeof e=="string"){let s=e.trim();return s==="true"?!0:s==="false"?!1:Nne(e,t)}else return Y0.isExist(e)?e:""}zD.exports=K0});var DD=u(FD=>{"use strict";function Une(e,n){return LD(e,n)}function LD(e,n,t){let s,r={};for(let i=0;i0&&(r[n.textNodeName]=s):s!==void 0&&(r[n.textNodeName]=s),r}function Xne(e){let n=Object.keys(e);for(let t=0;t{var{buildOptions:Vne}=AD(),Wne=qD(),{prettify:Kne}=DD(),Qne=H0(),Z0=class{constructor(n){this.externalEntities={},this.options=Vne(n)}parse(n,t){if(typeof n!="string")if(n.toString)n=n.toString();else throw new Error("XML data is accepted in String or Bytes[] form.");if(t){t===!0&&(t={});let i=Qne.validate(n,t);if(i!==!0)throw Error(`${i.err.msg}:${i.err.line}:${i.err.col}`)}let s=new Wne(this.options);s.addExternalEntities(this.externalEntities);let r=s.parseXml(n);return this.options.preserveOrder||r===void 0?r:Kne(r,this.options)}addEntity(n,t){if(t.indexOf("&")!==-1)throw new Error("Entity value can't have '&'");if(n.indexOf("&")!==-1||n.indexOf(";")!==-1)throw new Error("An entity must be set without '&' and ';'. Eg. use '#xD' for ' '");if(t==="&")throw new Error("An entity with value '&' is not permitted");this.externalEntities[n]=t}};TD.exports=Z0});var UD=u((rpt,GD)=>{var Jne=` +`;function Yne(e,n){let t="";return n.format&&n.indentBy.length>0&&(t=Jne),OD(e,n,"",t)}function OD(e,n,t,s){let r="",i=!1;for(let a=0;a`,i=!1;continue}else if(c===n.commentPropName){r+=s+``,i=!0;continue}else if(c[0]==="?"){let q=MD(o[":@"],n),T=c==="?xml"?"":s,U=o[c][0][n.textNodeName];U=U.length!==0?" "+U:"",r+=T+`<${c}${U}${q}?>`,i=!0;continue}let d=s;d!==""&&(d+=n.indentBy);let h=MD(o[":@"],n),v=s+`<${c}${h}`,z=OD(o[c],n,l,d);n.unpairedTags.indexOf(c)!==-1?n.suppressUnpairedNode?r+=v+">":r+=v+"/>":(!z||z.length===0)&&n.suppressEmptyNode?r+=v+"/>":z&&z.endsWith(">")?r+=v+`>${z}${s}`:(r+=v+">",z&&s!==""&&(z.includes("/>")||z.includes("`),i=!0}return r}function Zne(e){let n=Object.keys(e);for(let t=0;t0&&n.processEntities)for(let t=0;t{"use strict";var tse=UD(),nse={attributeNamePrefix:"@_",attributesGroupName:!1,textNodeName:"#text",ignoreAttributes:!0,cdataPropName:!1,format:!1,indentBy:" ",suppressEmptyNode:!1,suppressUnpairedNode:!0,suppressBooleanAttributes:!0,tagValueProcessor:function(e,n){return n},attributeValueProcessor:function(e,n){return n},preserveOrder:!1,commentPropName:!1,unpairedTags:[],entities:[{regex:new RegExp("&","g"),val:"&"},{regex:new RegExp(">","g"),val:">"},{regex:new RegExp("<","g"),val:"<"},{regex:new RegExp("'","g"),val:"'"},{regex:new RegExp('"',"g"),val:"""}],processEntities:!0,stopNodes:[]};function kr(e){this.options=Object.assign({},nse,e),this.options.ignoreAttributes||this.options.attributesGroupName?this.isAttribute=function(){return!1}:(this.attrPrefixLen=this.options.attributeNamePrefix.length,this.isAttribute=ise),this.processTextOrObjNode=sse,this.options.format?(this.indentate=rse,this.tagEndChar=`> +`,this.newLine=` +`):(this.indentate=function(){return""},this.tagEndChar=">",this.newLine="")}kr.prototype.build=function(e){return this.options.preserveOrder?tse(e,this.options):(Array.isArray(e)&&this.options.arrayNodeName&&this.options.arrayNodeName.length>1&&(e={[this.options.arrayNodeName]:e}),this.j2x(e,0).val)};kr.prototype.j2x=function(e,n){let t="",s="";for(let r in e)if(!(typeof e[r]>"u"))if(e[r]===null)r[0]==="?"?s+=this.indentate(n)+"<"+r+"?"+this.tagEndChar:s+=this.indentate(n)+"<"+r+"/"+this.tagEndChar;else if(e[r]instanceof Date)s+=this.buildTextValNode(e[r],r,"",n);else if(typeof e[r]!="object"){let i=this.isAttribute(r);if(i)t+=this.buildAttrPairStr(i,""+e[r]);else if(r===this.options.textNodeName){let a=this.options.tagValueProcessor(r,""+e[r]);s+=this.replaceEntitiesValue(a)}else s+=this.buildTextValNode(e[r],r,"",n)}else if(Array.isArray(e[r])){let i=e[r].length;for(let a=0;a"u"||(o===null?r[0]==="?"?s+=this.indentate(n)+"<"+r+"?"+this.tagEndChar:s+=this.indentate(n)+"<"+r+"/"+this.tagEndChar:typeof o=="object"?s+=this.processTextOrObjNode(o,r,n):s+=this.buildTextValNode(o,r,"",n))}}else if(this.options.attributesGroupName&&r===this.options.attributesGroupName){let i=Object.keys(e[r]),a=i.length;for(let o=0;o"+e+r:this.options.commentPropName!==!1&&n===this.options.commentPropName&&i.length===0?this.indentate(s)+``+this.newLine:this.indentate(s)+"<"+n+t+i+this.tagEndChar+e+this.indentate(s)+r}};kr.prototype.closeTag=function(e){let n="";return this.options.unpairedTags.indexOf(e)!==-1?this.options.suppressUnpairedNode||(n="/"):this.options.suppressEmptyNode?n="/":n=`>`+this.newLine;if(this.options.commentPropName!==!1&&n===this.options.commentPropName)return this.indentate(s)+``+this.newLine;if(n[0]==="?")return this.indentate(s)+"<"+n+t+"?"+this.tagEndChar;{let r=this.options.tagValueProcessor(n,e);return r=this.replaceEntitiesValue(r),r===""?this.indentate(s)+"<"+n+t+this.closeTag(n)+this.tagEndChar:this.indentate(s)+"<"+n+t+">"+r+"0&&this.options.processEntities)for(let n=0;n{"use strict";var ose=H0(),ase=jD(),cse=$D();HD.exports={XMLParser:ase,XMLValidator:ose,XMLBuilder:cse}});var Ws=u(je=>{"use strict";Object.defineProperty(je,"__esModule",{value:!0});je.deserializeAws_queryGetSessionTokenCommand=je.deserializeAws_queryGetFederationTokenCommand=je.deserializeAws_queryGetCallerIdentityCommand=je.deserializeAws_queryGetAccessKeyInfoCommand=je.deserializeAws_queryDecodeAuthorizationMessageCommand=je.deserializeAws_queryAssumeRoleWithWebIdentityCommand=je.deserializeAws_queryAssumeRoleWithSAMLCommand=je.deserializeAws_queryAssumeRoleCommand=je.serializeAws_queryGetSessionTokenCommand=je.serializeAws_queryGetFederationTokenCommand=je.serializeAws_queryGetCallerIdentityCommand=je.serializeAws_queryGetAccessKeyInfoCommand=je.serializeAws_queryDecodeAuthorizationMessageCommand=je.serializeAws_queryAssumeRoleWithWebIdentityCommand=je.serializeAws_queryAssumeRoleWithSAMLCommand=je.serializeAws_queryAssumeRoleCommand=void 0;var lse=gt(),ve=E(),dse=eb(),Rr=Kn(),Nr=o_(),use=async(e,n)=>{let t={"content-type":"application/x-www-form-urlencoded"},s;return s=Lr({...Tse(e,n),Action:"AssumeRole",Version:"2011-06-15"}),zr(n,t,"/",void 0,s)};je.serializeAws_queryAssumeRoleCommand=use;var mse=async(e,n)=>{let t={"content-type":"application/x-www-form-urlencoded"},s;return s=Lr({...jse(e,n),Action:"AssumeRoleWithSAML",Version:"2011-06-15"}),zr(n,t,"/",void 0,s)};je.serializeAws_queryAssumeRoleWithSAMLCommand=mse;var pse=async(e,n)=>{let t={"content-type":"application/x-www-form-urlencoded"},s;return s=Lr({...Mse(e,n),Action:"AssumeRoleWithWebIdentity",Version:"2011-06-15"}),zr(n,t,"/",void 0,s)};je.serializeAws_queryAssumeRoleWithWebIdentityCommand=pse;var gse=async(e,n)=>{let t={"content-type":"application/x-www-form-urlencoded"},s;return s=Lr({...Ose(e,n),Action:"DecodeAuthorizationMessage",Version:"2011-06-15"}),zr(n,t,"/",void 0,s)};je.serializeAws_queryDecodeAuthorizationMessageCommand=gse;var yse=async(e,n)=>{let t={"content-type":"application/x-www-form-urlencoded"},s;return s=Lr({...Bse(e,n),Action:"GetAccessKeyInfo",Version:"2011-06-15"}),zr(n,t,"/",void 0,s)};je.serializeAws_queryGetAccessKeyInfoCommand=yse;var _se=async(e,n)=>{let t={"content-type":"application/x-www-form-urlencoded"},s;return s=Lr({...Gse(e,n),Action:"GetCallerIdentity",Version:"2011-06-15"}),zr(n,t,"/",void 0,s)};je.serializeAws_queryGetCallerIdentityCommand=_se;var fse=async(e,n)=>{let t={"content-type":"application/x-www-form-urlencoded"},s;return s=Lr({...Use(e,n),Action:"GetFederationToken",Version:"2011-06-15"}),zr(n,t,"/",void 0,s)};je.serializeAws_queryGetFederationTokenCommand=fse;var Sse=async(e,n)=>{let t={"content-type":"application/x-www-form-urlencoded"},s;return s=Lr({...Xse(e,n),Action:"GetSessionToken",Version:"2011-06-15"}),zr(n,t,"/",void 0,s)};je.serializeAws_queryGetSessionTokenCommand=Sse;var hse=async(e,n)=>{if(e.statusCode>=300)return wse(e,n);let t=await Vs(e.body,n),s={};s=Wse(t.AssumeRoleResult,n);let r={$metadata:nn(e),...s};return Promise.resolve(r)};je.deserializeAws_queryAssumeRoleCommand=hse;var wse=async(e,n)=>{let t={...e,body:await qr(e.body,n)},s=Fr(e,t.body);switch(s){case"ExpiredTokenException":case"com.amazonaws.sts#ExpiredTokenException":throw await tb(t,n);case"MalformedPolicyDocument":case"com.amazonaws.sts#MalformedPolicyDocumentException":throw await a_(t,n);case"PackedPolicyTooLarge":case"com.amazonaws.sts#PackedPolicyTooLargeException":throw await c_(t,n);case"RegionDisabledException":case"com.amazonaws.sts#RegionDisabledException":throw await Na(t,n);default:let r=t.body;(0,ve.throwDefaultError)({output:e,parsedBody:r.Error,exceptionCtor:Nr.STSServiceException,errorCode:s})}},Ese=async(e,n)=>{if(e.statusCode>=300)return Cse(e,n);let t=await Vs(e.body,n),s={};s=Kse(t.AssumeRoleWithSAMLResult,n);let r={$metadata:nn(e),...s};return Promise.resolve(r)};je.deserializeAws_queryAssumeRoleWithSAMLCommand=Ese;var Cse=async(e,n)=>{let t={...e,body:await qr(e.body,n)},s=Fr(e,t.body);switch(s){case"ExpiredTokenException":case"com.amazonaws.sts#ExpiredTokenException":throw await tb(t,n);case"IDPRejectedClaim":case"com.amazonaws.sts#IDPRejectedClaimException":throw await VD(t,n);case"InvalidIdentityToken":case"com.amazonaws.sts#InvalidIdentityTokenException":throw await WD(t,n);case"MalformedPolicyDocument":case"com.amazonaws.sts#MalformedPolicyDocumentException":throw await a_(t,n);case"PackedPolicyTooLarge":case"com.amazonaws.sts#PackedPolicyTooLargeException":throw await c_(t,n);case"RegionDisabledException":case"com.amazonaws.sts#RegionDisabledException":throw await Na(t,n);default:let r=t.body;(0,ve.throwDefaultError)({output:e,parsedBody:r.Error,exceptionCtor:Nr.STSServiceException,errorCode:s})}},vse=async(e,n)=>{if(e.statusCode>=300)return Pse(e,n);let t=await Vs(e.body,n),s={};s=Qse(t.AssumeRoleWithWebIdentityResult,n);let r={$metadata:nn(e),...s};return Promise.resolve(r)};je.deserializeAws_queryAssumeRoleWithWebIdentityCommand=vse;var Pse=async(e,n)=>{let t={...e,body:await qr(e.body,n)},s=Fr(e,t.body);switch(s){case"ExpiredTokenException":case"com.amazonaws.sts#ExpiredTokenException":throw await tb(t,n);case"IDPCommunicationError":case"com.amazonaws.sts#IDPCommunicationErrorException":throw await Fse(t,n);case"IDPRejectedClaim":case"com.amazonaws.sts#IDPRejectedClaimException":throw await VD(t,n);case"InvalidIdentityToken":case"com.amazonaws.sts#InvalidIdentityTokenException":throw await WD(t,n);case"MalformedPolicyDocument":case"com.amazonaws.sts#MalformedPolicyDocumentException":throw await a_(t,n);case"PackedPolicyTooLarge":case"com.amazonaws.sts#PackedPolicyTooLargeException":throw await c_(t,n);case"RegionDisabledException":case"com.amazonaws.sts#RegionDisabledException":throw await Na(t,n);default:let r=t.body;(0,ve.throwDefaultError)({output:e,parsedBody:r.Error,exceptionCtor:Nr.STSServiceException,errorCode:s})}},Ase=async(e,n)=>{if(e.statusCode>=300)return xse(e,n);let t=await Vs(e.body,n),s={};s=Jse(t.DecodeAuthorizationMessageResult,n);let r={$metadata:nn(e),...s};return Promise.resolve(r)};je.deserializeAws_queryDecodeAuthorizationMessageCommand=Ase;var xse=async(e,n)=>{let t={...e,body:await qr(e.body,n)},s=Fr(e,t.body);switch(s){case"InvalidAuthorizationMessageException":case"com.amazonaws.sts#InvalidAuthorizationMessageException":throw await Dse(t,n);default:let r=t.body;(0,ve.throwDefaultError)({output:e,parsedBody:r.Error,exceptionCtor:Nr.STSServiceException,errorCode:s})}},bse=async(e,n)=>{if(e.statusCode>=300)return Ise(e,n);let t=await Vs(e.body,n),s={};s=ere(t.GetAccessKeyInfoResult,n);let r={$metadata:nn(e),...s};return Promise.resolve(r)};je.deserializeAws_queryGetAccessKeyInfoCommand=bse;var Ise=async(e,n)=>{let t={...e,body:await qr(e.body,n)},s=Fr(e,t.body),r=t.body;(0,ve.throwDefaultError)({output:e,parsedBody:r.Error,exceptionCtor:Nr.STSServiceException,errorCode:s})},kse=async(e,n)=>{if(e.statusCode>=300)return Rse(e,n);let t=await Vs(e.body,n),s={};s=tre(t.GetCallerIdentityResult,n);let r={$metadata:nn(e),...s};return Promise.resolve(r)};je.deserializeAws_queryGetCallerIdentityCommand=kse;var Rse=async(e,n)=>{let t={...e,body:await qr(e.body,n)},s=Fr(e,t.body),r=t.body;(0,ve.throwDefaultError)({output:e,parsedBody:r.Error,exceptionCtor:Nr.STSServiceException,errorCode:s})},Nse=async(e,n)=>{if(e.statusCode>=300)return zse(e,n);let t=await Vs(e.body,n),s={};s=nre(t.GetFederationTokenResult,n);let r={$metadata:nn(e),...s};return Promise.resolve(r)};je.deserializeAws_queryGetFederationTokenCommand=Nse;var zse=async(e,n)=>{let t={...e,body:await qr(e.body,n)},s=Fr(e,t.body);switch(s){case"MalformedPolicyDocument":case"com.amazonaws.sts#MalformedPolicyDocumentException":throw await a_(t,n);case"PackedPolicyTooLarge":case"com.amazonaws.sts#PackedPolicyTooLargeException":throw await c_(t,n);case"RegionDisabledException":case"com.amazonaws.sts#RegionDisabledException":throw await Na(t,n);default:let r=t.body;(0,ve.throwDefaultError)({output:e,parsedBody:r.Error,exceptionCtor:Nr.STSServiceException,errorCode:s})}},qse=async(e,n)=>{if(e.statusCode>=300)return Lse(e,n);let t=await Vs(e.body,n),s={};s=sre(t.GetSessionTokenResult,n);let r={$metadata:nn(e),...s};return Promise.resolve(r)};je.deserializeAws_queryGetSessionTokenCommand=qse;var Lse=async(e,n)=>{let t={...e,body:await qr(e.body,n)},s=Fr(e,t.body);switch(s){case"RegionDisabledException":case"com.amazonaws.sts#RegionDisabledException":throw await Na(t,n);default:let r=t.body;(0,ve.throwDefaultError)({output:e,parsedBody:r.Error,exceptionCtor:Nr.STSServiceException,errorCode:s})}},tb=async(e,n)=>{let t=e.body,s=Yse(t.Error,n),r=new Rr.ExpiredTokenException({$metadata:nn(e),...s});return(0,ve.decorateServiceException)(r,t)},Fse=async(e,n)=>{let t=e.body,s=rre(t.Error,n),r=new Rr.IDPCommunicationErrorException({$metadata:nn(e),...s});return(0,ve.decorateServiceException)(r,t)},VD=async(e,n)=>{let t=e.body,s=ire(t.Error,n),r=new Rr.IDPRejectedClaimException({$metadata:nn(e),...s});return(0,ve.decorateServiceException)(r,t)},Dse=async(e,n)=>{let t=e.body,s=ore(t.Error,n),r=new Rr.InvalidAuthorizationMessageException({$metadata:nn(e),...s});return(0,ve.decorateServiceException)(r,t)},WD=async(e,n)=>{let t=e.body,s=are(t.Error,n),r=new Rr.InvalidIdentityTokenException({$metadata:nn(e),...s});return(0,ve.decorateServiceException)(r,t)},a_=async(e,n)=>{let t=e.body,s=cre(t.Error,n),r=new Rr.MalformedPolicyDocumentException({$metadata:nn(e),...s});return(0,ve.decorateServiceException)(r,t)},c_=async(e,n)=>{let t=e.body,s=lre(t.Error,n),r=new Rr.PackedPolicyTooLargeException({$metadata:nn(e),...s});return(0,ve.decorateServiceException)(r,t)},Na=async(e,n)=>{let t=e.body,s=dre(t.Error,n),r=new Rr.RegionDisabledException({$metadata:nn(e),...s});return(0,ve.decorateServiceException)(r,t)},Tse=(e,n)=>{let t={};if(e.RoleArn!=null&&(t.RoleArn=e.RoleArn),e.RoleSessionName!=null&&(t.RoleSessionName=e.RoleSessionName),e.PolicyArns!=null){let s=l_(e.PolicyArns,n);e.PolicyArns?.length===0&&(t.PolicyArns=[]),Object.entries(s).forEach(([r,i])=>{let a=`PolicyArns.${r}`;t[a]=i})}if(e.Policy!=null&&(t.Policy=e.Policy),e.DurationSeconds!=null&&(t.DurationSeconds=e.DurationSeconds),e.Tags!=null){let s=KD(e.Tags,n);e.Tags?.length===0&&(t.Tags=[]),Object.entries(s).forEach(([r,i])=>{let a=`Tags.${r}`;t[a]=i})}if(e.TransitiveTagKeys!=null){let s=Vse(e.TransitiveTagKeys,n);e.TransitiveTagKeys?.length===0&&(t.TransitiveTagKeys=[]),Object.entries(s).forEach(([r,i])=>{let a=`TransitiveTagKeys.${r}`;t[a]=i})}return e.ExternalId!=null&&(t.ExternalId=e.ExternalId),e.SerialNumber!=null&&(t.SerialNumber=e.SerialNumber),e.TokenCode!=null&&(t.TokenCode=e.TokenCode),e.SourceIdentity!=null&&(t.SourceIdentity=e.SourceIdentity),t},jse=(e,n)=>{let t={};if(e.RoleArn!=null&&(t.RoleArn=e.RoleArn),e.PrincipalArn!=null&&(t.PrincipalArn=e.PrincipalArn),e.SAMLAssertion!=null&&(t.SAMLAssertion=e.SAMLAssertion),e.PolicyArns!=null){let s=l_(e.PolicyArns,n);e.PolicyArns?.length===0&&(t.PolicyArns=[]),Object.entries(s).forEach(([r,i])=>{let a=`PolicyArns.${r}`;t[a]=i})}return e.Policy!=null&&(t.Policy=e.Policy),e.DurationSeconds!=null&&(t.DurationSeconds=e.DurationSeconds),t},Mse=(e,n)=>{let t={};if(e.RoleArn!=null&&(t.RoleArn=e.RoleArn),e.RoleSessionName!=null&&(t.RoleSessionName=e.RoleSessionName),e.WebIdentityToken!=null&&(t.WebIdentityToken=e.WebIdentityToken),e.ProviderId!=null&&(t.ProviderId=e.ProviderId),e.PolicyArns!=null){let s=l_(e.PolicyArns,n);e.PolicyArns?.length===0&&(t.PolicyArns=[]),Object.entries(s).forEach(([r,i])=>{let a=`PolicyArns.${r}`;t[a]=i})}return e.Policy!=null&&(t.Policy=e.Policy),e.DurationSeconds!=null&&(t.DurationSeconds=e.DurationSeconds),t},Ose=(e,n)=>{let t={};return e.EncodedMessage!=null&&(t.EncodedMessage=e.EncodedMessage),t},Bse=(e,n)=>{let t={};return e.AccessKeyId!=null&&(t.AccessKeyId=e.AccessKeyId),t},Gse=(e,n)=>({}),Use=(e,n)=>{let t={};if(e.Name!=null&&(t.Name=e.Name),e.Policy!=null&&(t.Policy=e.Policy),e.PolicyArns!=null){let s=l_(e.PolicyArns,n);e.PolicyArns?.length===0&&(t.PolicyArns=[]),Object.entries(s).forEach(([r,i])=>{let a=`PolicyArns.${r}`;t[a]=i})}if(e.DurationSeconds!=null&&(t.DurationSeconds=e.DurationSeconds),e.Tags!=null){let s=KD(e.Tags,n);e.Tags?.length===0&&(t.Tags=[]),Object.entries(s).forEach(([r,i])=>{let a=`Tags.${r}`;t[a]=i})}return t},Xse=(e,n)=>{let t={};return e.DurationSeconds!=null&&(t.DurationSeconds=e.DurationSeconds),e.SerialNumber!=null&&(t.SerialNumber=e.SerialNumber),e.TokenCode!=null&&(t.TokenCode=e.TokenCode),t},l_=(e,n)=>{let t={},s=1;for(let r of e){if(r===null)continue;let i=$se(r,n);Object.entries(i).forEach(([a,o])=>{t[`member.${s}.${a}`]=o}),s++}return t},$se=(e,n)=>{let t={};return e.arn!=null&&(t.arn=e.arn),t},Hse=(e,n)=>{let t={};return e.Key!=null&&(t.Key=e.Key),e.Value!=null&&(t.Value=e.Value),t},Vse=(e,n)=>{let t={},s=1;for(let r of e)r!==null&&(t[`member.${s}`]=r,s++);return t},KD=(e,n)=>{let t={},s=1;for(let r of e){if(r===null)continue;let i=Hse(r,n);Object.entries(i).forEach(([a,o])=>{t[`member.${s}.${a}`]=o}),s++}return t},nb=(e,n)=>{let t={AssumedRoleId:void 0,Arn:void 0};return e.AssumedRoleId!==void 0&&(t.AssumedRoleId=(0,ve.expectString)(e.AssumedRoleId)),e.Arn!==void 0&&(t.Arn=(0,ve.expectString)(e.Arn)),t},Wse=(e,n)=>{let t={Credentials:void 0,AssumedRoleUser:void 0,PackedPolicySize:void 0,SourceIdentity:void 0};return e.Credentials!==void 0&&(t.Credentials=za(e.Credentials,n)),e.AssumedRoleUser!==void 0&&(t.AssumedRoleUser=nb(e.AssumedRoleUser,n)),e.PackedPolicySize!==void 0&&(t.PackedPolicySize=(0,ve.strictParseInt32)(e.PackedPolicySize)),e.SourceIdentity!==void 0&&(t.SourceIdentity=(0,ve.expectString)(e.SourceIdentity)),t},Kse=(e,n)=>{let t={Credentials:void 0,AssumedRoleUser:void 0,PackedPolicySize:void 0,Subject:void 0,SubjectType:void 0,Issuer:void 0,Audience:void 0,NameQualifier:void 0,SourceIdentity:void 0};return e.Credentials!==void 0&&(t.Credentials=za(e.Credentials,n)),e.AssumedRoleUser!==void 0&&(t.AssumedRoleUser=nb(e.AssumedRoleUser,n)),e.PackedPolicySize!==void 0&&(t.PackedPolicySize=(0,ve.strictParseInt32)(e.PackedPolicySize)),e.Subject!==void 0&&(t.Subject=(0,ve.expectString)(e.Subject)),e.SubjectType!==void 0&&(t.SubjectType=(0,ve.expectString)(e.SubjectType)),e.Issuer!==void 0&&(t.Issuer=(0,ve.expectString)(e.Issuer)),e.Audience!==void 0&&(t.Audience=(0,ve.expectString)(e.Audience)),e.NameQualifier!==void 0&&(t.NameQualifier=(0,ve.expectString)(e.NameQualifier)),e.SourceIdentity!==void 0&&(t.SourceIdentity=(0,ve.expectString)(e.SourceIdentity)),t},Qse=(e,n)=>{let t={Credentials:void 0,SubjectFromWebIdentityToken:void 0,AssumedRoleUser:void 0,PackedPolicySize:void 0,Provider:void 0,Audience:void 0,SourceIdentity:void 0};return e.Credentials!==void 0&&(t.Credentials=za(e.Credentials,n)),e.SubjectFromWebIdentityToken!==void 0&&(t.SubjectFromWebIdentityToken=(0,ve.expectString)(e.SubjectFromWebIdentityToken)),e.AssumedRoleUser!==void 0&&(t.AssumedRoleUser=nb(e.AssumedRoleUser,n)),e.PackedPolicySize!==void 0&&(t.PackedPolicySize=(0,ve.strictParseInt32)(e.PackedPolicySize)),e.Provider!==void 0&&(t.Provider=(0,ve.expectString)(e.Provider)),e.Audience!==void 0&&(t.Audience=(0,ve.expectString)(e.Audience)),e.SourceIdentity!==void 0&&(t.SourceIdentity=(0,ve.expectString)(e.SourceIdentity)),t},za=(e,n)=>{let t={AccessKeyId:void 0,SecretAccessKey:void 0,SessionToken:void 0,Expiration:void 0};return e.AccessKeyId!==void 0&&(t.AccessKeyId=(0,ve.expectString)(e.AccessKeyId)),e.SecretAccessKey!==void 0&&(t.SecretAccessKey=(0,ve.expectString)(e.SecretAccessKey)),e.SessionToken!==void 0&&(t.SessionToken=(0,ve.expectString)(e.SessionToken)),e.Expiration!==void 0&&(t.Expiration=(0,ve.expectNonNull)((0,ve.parseRfc3339DateTimeWithOffset)(e.Expiration))),t},Jse=(e,n)=>{let t={DecodedMessage:void 0};return e.DecodedMessage!==void 0&&(t.DecodedMessage=(0,ve.expectString)(e.DecodedMessage)),t},Yse=(e,n)=>{let t={message:void 0};return e.message!==void 0&&(t.message=(0,ve.expectString)(e.message)),t},Zse=(e,n)=>{let t={FederatedUserId:void 0,Arn:void 0};return e.FederatedUserId!==void 0&&(t.FederatedUserId=(0,ve.expectString)(e.FederatedUserId)),e.Arn!==void 0&&(t.Arn=(0,ve.expectString)(e.Arn)),t},ere=(e,n)=>{let t={Account:void 0};return e.Account!==void 0&&(t.Account=(0,ve.expectString)(e.Account)),t},tre=(e,n)=>{let t={UserId:void 0,Account:void 0,Arn:void 0};return e.UserId!==void 0&&(t.UserId=(0,ve.expectString)(e.UserId)),e.Account!==void 0&&(t.Account=(0,ve.expectString)(e.Account)),e.Arn!==void 0&&(t.Arn=(0,ve.expectString)(e.Arn)),t},nre=(e,n)=>{let t={Credentials:void 0,FederatedUser:void 0,PackedPolicySize:void 0};return e.Credentials!==void 0&&(t.Credentials=za(e.Credentials,n)),e.FederatedUser!==void 0&&(t.FederatedUser=Zse(e.FederatedUser,n)),e.PackedPolicySize!==void 0&&(t.PackedPolicySize=(0,ve.strictParseInt32)(e.PackedPolicySize)),t},sre=(e,n)=>{let t={Credentials:void 0};return e.Credentials!==void 0&&(t.Credentials=za(e.Credentials,n)),t},rre=(e,n)=>{let t={message:void 0};return e.message!==void 0&&(t.message=(0,ve.expectString)(e.message)),t},ire=(e,n)=>{let t={message:void 0};return e.message!==void 0&&(t.message=(0,ve.expectString)(e.message)),t},ore=(e,n)=>{let t={message:void 0};return e.message!==void 0&&(t.message=(0,ve.expectString)(e.message)),t},are=(e,n)=>{let t={message:void 0};return e.message!==void 0&&(t.message=(0,ve.expectString)(e.message)),t},cre=(e,n)=>{let t={message:void 0};return e.message!==void 0&&(t.message=(0,ve.expectString)(e.message)),t},lre=(e,n)=>{let t={message:void 0};return e.message!==void 0&&(t.message=(0,ve.expectString)(e.message)),t},dre=(e,n)=>{let t={message:void 0};return e.message!==void 0&&(t.message=(0,ve.expectString)(e.message)),t},nn=e=>({httpStatusCode:e.statusCode,requestId:e.headers["x-amzn-requestid"]??e.headers["x-amzn-request-id"]??e.headers["x-amz-request-id"],extendedRequestId:e.headers["x-amz-id-2"],cfId:e.headers["x-amz-cf-id"]}),ure=(e=new Uint8Array,n)=>e instanceof Uint8Array?Promise.resolve(e):n.streamCollector(e)||Promise.resolve(new Uint8Array),mre=(e,n)=>ure(e,n).then(t=>n.utf8Encoder(t)),zr=async(e,n,t,s,r)=>{let{hostname:i,protocol:a="https",port:o,path:c}=await e.endpoint(),l={protocol:a,hostname:i,port:o,method:"POST",path:c.endsWith("/")?c.slice(0,-1)+t:c+t,headers:n};return s!==void 0&&(l.hostname=s),r!==void 0&&(l.body=r),new lse.HttpRequest(l)},Vs=(e,n)=>mre(e,n).then(t=>{if(t.length){let s=new dse.XMLParser({attributeNamePrefix:"",htmlEntities:!0,ignoreAttributes:!1,ignoreDeclaration:!0,parseTagValue:!1,trimValues:!1,tagValueProcessor:(c,l)=>l.trim()===""&&l.includes(` +`)?"":void 0});s.addEntity("#xD","\r"),s.addEntity("#10",` +`);let r=s.parse(t),i="#text",a=Object.keys(r)[0],o=r[a];return o[i]&&(o[a]=o[i],delete o[i]),(0,ve.getValueFromTextNode)(o)}return{}}),qr=async(e,n)=>{let t=await Vs(e,n);return t.Error&&(t.Error.message=t.Error.message??t.Error.Message),t},Lr=e=>Object.entries(e).map(([n,t])=>(0,ve.extendedEncodeURIComponent)(n)+"="+(0,ve.extendedEncodeURIComponent)(t)).join("&"),Fr=(e,n)=>{if(n.Error?.Code!==void 0)return n.Error.Code;if(e.statusCode==404)return"NotFound"}});var u_=u(d_=>{"use strict";Object.defineProperty(d_,"__esModule",{value:!0});d_.AssumeRoleCommand=void 0;var pre=x(),gre=b(),yre=He(),_re=E(),QD=Kn(),JD=Ws(),qa=class extends _re.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{UseGlobalEndpoint:{type:"builtInParams",name:"useGlobalEndpoint"},UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,gre.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,pre.getEndpointPlugin)(t,qa.getEndpointParameterInstructions())),this.middlewareStack.use((0,yre.getAwsAuthPlugin)(t));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"STSClient",commandName:"AssumeRoleCommand",inputFilterSensitiveLog:QD.AssumeRoleRequestFilterSensitiveLog,outputFilterSensitiveLog:QD.AssumeRoleResponseFilterSensitiveLog},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,JD.serializeAws_queryAssumeRoleCommand)(n,t)}deserialize(n,t){return(0,JD.deserializeAws_queryAssumeRoleCommand)(n,t)}};d_.AssumeRoleCommand=qa});var sb=u(m_=>{"use strict";Object.defineProperty(m_,"__esModule",{value:!0});m_.AssumeRoleWithSAMLCommand=void 0;var fre=x(),Sre=b(),hre=E(),YD=Kn(),ZD=Ws(),La=class extends hre.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{UseGlobalEndpoint:{type:"builtInParams",name:"useGlobalEndpoint"},UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,Sre.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,fre.getEndpointPlugin)(t,La.getEndpointParameterInstructions()));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"STSClient",commandName:"AssumeRoleWithSAMLCommand",inputFilterSensitiveLog:YD.AssumeRoleWithSAMLRequestFilterSensitiveLog,outputFilterSensitiveLog:YD.AssumeRoleWithSAMLResponseFilterSensitiveLog},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,ZD.serializeAws_queryAssumeRoleWithSAMLCommand)(n,t)}deserialize(n,t){return(0,ZD.deserializeAws_queryAssumeRoleWithSAMLCommand)(n,t)}};m_.AssumeRoleWithSAMLCommand=La});var g_=u(p_=>{"use strict";Object.defineProperty(p_,"__esModule",{value:!0});p_.AssumeRoleWithWebIdentityCommand=void 0;var wre=x(),Ere=b(),Cre=E(),eT=Kn(),tT=Ws(),Fa=class extends Cre.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{UseGlobalEndpoint:{type:"builtInParams",name:"useGlobalEndpoint"},UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,Ere.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,wre.getEndpointPlugin)(t,Fa.getEndpointParameterInstructions()));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"STSClient",commandName:"AssumeRoleWithWebIdentityCommand",inputFilterSensitiveLog:eT.AssumeRoleWithWebIdentityRequestFilterSensitiveLog,outputFilterSensitiveLog:eT.AssumeRoleWithWebIdentityResponseFilterSensitiveLog},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,tT.serializeAws_queryAssumeRoleWithWebIdentityCommand)(n,t)}deserialize(n,t){return(0,tT.deserializeAws_queryAssumeRoleWithWebIdentityCommand)(n,t)}};p_.AssumeRoleWithWebIdentityCommand=Fa});var rb=u(y_=>{"use strict";Object.defineProperty(y_,"__esModule",{value:!0});y_.DecodeAuthorizationMessageCommand=void 0;var vre=x(),Pre=b(),Are=He(),xre=E(),nT=Kn(),sT=Ws(),Da=class extends xre.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{UseGlobalEndpoint:{type:"builtInParams",name:"useGlobalEndpoint"},UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,Pre.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,vre.getEndpointPlugin)(t,Da.getEndpointParameterInstructions())),this.middlewareStack.use((0,Are.getAwsAuthPlugin)(t));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"STSClient",commandName:"DecodeAuthorizationMessageCommand",inputFilterSensitiveLog:nT.DecodeAuthorizationMessageRequestFilterSensitiveLog,outputFilterSensitiveLog:nT.DecodeAuthorizationMessageResponseFilterSensitiveLog},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,sT.serializeAws_queryDecodeAuthorizationMessageCommand)(n,t)}deserialize(n,t){return(0,sT.deserializeAws_queryDecodeAuthorizationMessageCommand)(n,t)}};y_.DecodeAuthorizationMessageCommand=Da});var ib=u(__=>{"use strict";Object.defineProperty(__,"__esModule",{value:!0});__.GetAccessKeyInfoCommand=void 0;var bre=x(),Ire=b(),kre=He(),Rre=E(),rT=Kn(),iT=Ws(),Ta=class extends Rre.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{UseGlobalEndpoint:{type:"builtInParams",name:"useGlobalEndpoint"},UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,Ire.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,bre.getEndpointPlugin)(t,Ta.getEndpointParameterInstructions())),this.middlewareStack.use((0,kre.getAwsAuthPlugin)(t));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"STSClient",commandName:"GetAccessKeyInfoCommand",inputFilterSensitiveLog:rT.GetAccessKeyInfoRequestFilterSensitiveLog,outputFilterSensitiveLog:rT.GetAccessKeyInfoResponseFilterSensitiveLog},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,iT.serializeAws_queryGetAccessKeyInfoCommand)(n,t)}deserialize(n,t){return(0,iT.deserializeAws_queryGetAccessKeyInfoCommand)(n,t)}};__.GetAccessKeyInfoCommand=Ta});var ob=u(f_=>{"use strict";Object.defineProperty(f_,"__esModule",{value:!0});f_.GetCallerIdentityCommand=void 0;var Nre=x(),zre=b(),qre=He(),Lre=E(),oT=Kn(),aT=Ws(),ja=class extends Lre.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{UseGlobalEndpoint:{type:"builtInParams",name:"useGlobalEndpoint"},UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,zre.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,Nre.getEndpointPlugin)(t,ja.getEndpointParameterInstructions())),this.middlewareStack.use((0,qre.getAwsAuthPlugin)(t));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"STSClient",commandName:"GetCallerIdentityCommand",inputFilterSensitiveLog:oT.GetCallerIdentityRequestFilterSensitiveLog,outputFilterSensitiveLog:oT.GetCallerIdentityResponseFilterSensitiveLog},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,aT.serializeAws_queryGetCallerIdentityCommand)(n,t)}deserialize(n,t){return(0,aT.deserializeAws_queryGetCallerIdentityCommand)(n,t)}};f_.GetCallerIdentityCommand=ja});var ab=u(S_=>{"use strict";Object.defineProperty(S_,"__esModule",{value:!0});S_.GetFederationTokenCommand=void 0;var Fre=x(),Dre=b(),Tre=He(),jre=E(),cT=Kn(),lT=Ws(),Ma=class extends jre.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{UseGlobalEndpoint:{type:"builtInParams",name:"useGlobalEndpoint"},UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,Dre.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,Fre.getEndpointPlugin)(t,Ma.getEndpointParameterInstructions())),this.middlewareStack.use((0,Tre.getAwsAuthPlugin)(t));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"STSClient",commandName:"GetFederationTokenCommand",inputFilterSensitiveLog:cT.GetFederationTokenRequestFilterSensitiveLog,outputFilterSensitiveLog:cT.GetFederationTokenResponseFilterSensitiveLog},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,lT.serializeAws_queryGetFederationTokenCommand)(n,t)}deserialize(n,t){return(0,lT.deserializeAws_queryGetFederationTokenCommand)(n,t)}};S_.GetFederationTokenCommand=Ma});var cb=u(h_=>{"use strict";Object.defineProperty(h_,"__esModule",{value:!0});h_.GetSessionTokenCommand=void 0;var Mre=x(),Ore=b(),Bre=He(),Gre=E(),dT=Kn(),uT=Ws(),Oa=class extends Gre.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{UseGlobalEndpoint:{type:"builtInParams",name:"useGlobalEndpoint"},UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,Ore.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,Mre.getEndpointPlugin)(t,Oa.getEndpointParameterInstructions())),this.middlewareStack.use((0,Bre.getAwsAuthPlugin)(t));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"STSClient",commandName:"GetSessionTokenCommand",inputFilterSensitiveLog:dT.GetSessionTokenRequestFilterSensitiveLog,outputFilterSensitiveLog:dT.GetSessionTokenResponseFilterSensitiveLog},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,uT.serializeAws_queryGetSessionTokenCommand)(n,t)}deserialize(n,t){return(0,uT.deserializeAws_queryGetSessionTokenCommand)(n,t)}};h_.GetSessionTokenCommand=Oa});var mT=u(w_=>{"use strict";Object.defineProperty(w_,"__esModule",{value:!0});w_.resolveStsAuthConfig=void 0;var Ure=He(),Xre=(e,{stsClientCtor:n})=>(0,Ure.resolveAwsAuthConfig)({...e,stsClientCtor:n});w_.resolveStsAuthConfig=Xre});var pT=u(E_=>{"use strict";Object.defineProperty(E_,"__esModule",{value:!0});E_.resolveClientEndpointParameters=void 0;var $re=e=>({...e,useDualstackEndpoint:e.useDualstackEndpoint??!1,useFipsEndpoint:e.useFipsEndpoint??!1,useGlobalEndpoint:e.useGlobalEndpoint??!1,defaultSigningName:"sts"});E_.resolveClientEndpointParameters=$re});var gT=u((Spt,Hre)=>{Hre.exports={name:"@aws-sdk/client-sts",description:"AWS SDK for JavaScript Sts Client for Node.js, Browser and React Native",version:"3.282.0",scripts:{build:"concurrently 'yarn:build:cjs' 'yarn:build:es' 'yarn:build:types'","build:cjs":"tsc -p tsconfig.cjs.json","build:docs":"typedoc","build:es":"tsc -p tsconfig.es.json","build:include:deps":"lerna run --scope $npm_package_name --include-dependencies build","build:types":"tsc -p tsconfig.types.json","build:types:downlevel":"downlevel-dts dist-types dist-types/ts3.4",clean:"rimraf ./dist-* && rimraf *.tsbuildinfo","generate:client":"node ../../scripts/generate-clients/single-service --solo sts",test:"yarn test:unit","test:unit":"jest"},main:"./dist-cjs/index.js",types:"./dist-types/index.d.ts",module:"./dist-es/index.js",sideEffects:!1,dependencies:{"@aws-crypto/sha256-browser":"3.0.0","@aws-crypto/sha256-js":"3.0.0","@aws-sdk/config-resolver":"3.282.0","@aws-sdk/credential-provider-node":"3.282.0","@aws-sdk/fetch-http-handler":"3.282.0","@aws-sdk/hash-node":"3.272.0","@aws-sdk/invalid-dependency":"3.272.0","@aws-sdk/middleware-content-length":"3.282.0","@aws-sdk/middleware-endpoint":"3.282.0","@aws-sdk/middleware-host-header":"3.282.0","@aws-sdk/middleware-logger":"3.272.0","@aws-sdk/middleware-recursion-detection":"3.282.0","@aws-sdk/middleware-retry":"3.282.0","@aws-sdk/middleware-sdk-sts":"3.282.0","@aws-sdk/middleware-serde":"3.272.0","@aws-sdk/middleware-signing":"3.282.0","@aws-sdk/middleware-stack":"3.272.0","@aws-sdk/middleware-user-agent":"3.282.0","@aws-sdk/node-config-provider":"3.272.0","@aws-sdk/node-http-handler":"3.282.0","@aws-sdk/protocol-http":"3.282.0","@aws-sdk/smithy-client":"3.279.0","@aws-sdk/types":"3.272.0","@aws-sdk/url-parser":"3.272.0","@aws-sdk/util-base64":"3.208.0","@aws-sdk/util-body-length-browser":"3.188.0","@aws-sdk/util-body-length-node":"3.208.0","@aws-sdk/util-defaults-mode-browser":"3.279.0","@aws-sdk/util-defaults-mode-node":"3.282.0","@aws-sdk/util-endpoints":"3.272.0","@aws-sdk/util-retry":"3.272.0","@aws-sdk/util-user-agent-browser":"3.282.0","@aws-sdk/util-user-agent-node":"3.282.0","@aws-sdk/util-utf8":"3.254.0","fast-xml-parser":"4.1.2",tslib:"^2.3.1"},devDependencies:{"@aws-sdk/service-client-documentation-generator":"3.208.0","@tsconfig/node14":"1.0.3","@types/node":"^14.14.31",concurrently:"7.0.0","downlevel-dts":"0.10.1",rimraf:"3.0.2",typedoc:"0.19.2",typescript:"~4.6.2"},overrides:{typedoc:{typescript:"~4.6.2"}},engines:{node:">=14.0.0"},typesVersions:{"<4.0":{"dist-types/*":["dist-types/ts3.4/*"]}},files:["dist-*"],author:{name:"AWS SDK for JavaScript Team",url:"https://aws.amazon.com/javascript/"},license:"Apache-2.0",browser:{"./dist-es/runtimeConfig":"./dist-es/runtimeConfig.browser"},"react-native":{"./dist-es/runtimeConfig":"./dist-es/runtimeConfig.native"},homepage:"https://github.com/aws/aws-sdk-js-v3/tree/main/clients/client-sts",repository:{type:"git",url:"https://github.com/aws/aws-sdk-js-v3.git",directory:"clients/client-sts"}}});var lb=u(ds=>{"use strict";Object.defineProperty(ds,"__esModule",{value:!0});ds.decorateDefaultCredentialProvider=ds.getDefaultRoleAssumerWithWebIdentity=ds.getDefaultRoleAssumer=void 0;var Vre=u_(),Wre=g_(),yT="us-east-1",_T=e=>typeof e!="function"?e===void 0?yT:e:async()=>{try{return await e()}catch{return yT}},Kre=(e,n)=>{let t,s;return async(r,i)=>{if(s=r,!t){let{logger:o,region:c,requestHandler:l}=e;t=new n({logger:o,credentialDefaultProvider:()=>async()=>s,region:_T(c||e.region),...l?{requestHandler:l}:{}})}let{Credentials:a}=await t.send(new Vre.AssumeRoleCommand(i));if(!a||!a.AccessKeyId||!a.SecretAccessKey)throw new Error(`Invalid response from STS.assumeRole call with role ${i.RoleArn}`);return{accessKeyId:a.AccessKeyId,secretAccessKey:a.SecretAccessKey,sessionToken:a.SessionToken,expiration:a.Expiration}}};ds.getDefaultRoleAssumer=Kre;var Qre=(e,n)=>{let t;return async s=>{if(!t){let{logger:i,region:a,requestHandler:o}=e;t=new n({logger:i,region:_T(a||e.region),...o?{requestHandler:o}:{}})}let{Credentials:r}=await t.send(new Wre.AssumeRoleWithWebIdentityCommand(s));if(!r||!r.AccessKeyId||!r.SecretAccessKey)throw new Error(`Invalid response from STS.assumeRoleWithWebIdentity call with role ${s.RoleArn}`);return{accessKeyId:r.AccessKeyId,secretAccessKey:r.SecretAccessKey,sessionToken:r.SessionToken,expiration:r.Expiration}}};ds.getDefaultRoleAssumerWithWebIdentity=Qre;var Jre=e=>n=>e({roleAssumer:(0,ds.getDefaultRoleAssumer)(n,n.stsClientCtor),roleAssumerWithWebIdentity:(0,ds.getDefaultRoleAssumerWithWebIdentity)(n,n.stsClientCtor),...n});ds.decorateDefaultCredentialProvider=Jre});var fT=u(sn=>{"use strict";Object.defineProperty(sn,"__esModule",{value:!0});sn.fromEnv=sn.ENV_EXPIRATION=sn.ENV_SESSION=sn.ENV_SECRET=sn.ENV_KEY=void 0;var Yre=Je();sn.ENV_KEY="AWS_ACCESS_KEY_ID";sn.ENV_SECRET="AWS_SECRET_ACCESS_KEY";sn.ENV_SESSION="AWS_SESSION_TOKEN";sn.ENV_EXPIRATION="AWS_CREDENTIAL_EXPIRATION";var Zre=()=>async()=>{let e=process.env[sn.ENV_KEY],n=process.env[sn.ENV_SECRET],t=process.env[sn.ENV_SESSION],s=process.env[sn.ENV_EXPIRATION];if(e&&n)return{accessKeyId:e,secretAccessKey:n,...t&&{sessionToken:t},...s&&{expiration:new Date(s)}};throw new Yre.CredentialsProviderError("Unable to find environment variable credentials.")};sn.fromEnv=Zre});var C_=u(db=>{"use strict";Object.defineProperty(db,"__esModule",{value:!0});var eie=X();eie.__exportStar(fT(),db)});var Ba=u(v_=>{"use strict";Object.defineProperty(v_,"__esModule",{value:!0});v_.getHomeDir=void 0;var tie=require("os"),nie=require("path"),sie=()=>{let{HOME:e,USERPROFILE:n,HOMEPATH:t,HOMEDRIVE:s=`C:${nie.sep}`}=process.env;return e||n||(t?`${s}${t}`:(0,tie.homedir)())};v_.getHomeDir=sie});var ST=u(us=>{"use strict";Object.defineProperty(us,"__esModule",{value:!0});us.getProfileName=us.DEFAULT_PROFILE=us.ENV_PROFILE=void 0;us.ENV_PROFILE="AWS_PROFILE";us.DEFAULT_PROFILE="default";var rie=e=>e.profile||process.env[us.ENV_PROFILE]||us.DEFAULT_PROFILE;us.getProfileName=rie});var ub=u(P_=>{"use strict";Object.defineProperty(P_,"__esModule",{value:!0});P_.getSSOTokenFilepath=void 0;var iie=require("crypto"),oie=require("path"),aie=Ba(),cie=e=>{let t=(0,iie.createHash)("sha1").update(e).digest("hex");return(0,oie.join)((0,aie.getHomeDir)(),".aws","sso","cache",`${t}.json`)};P_.getSSOTokenFilepath=cie});var hT=u(A_=>{"use strict";Object.defineProperty(A_,"__esModule",{value:!0});A_.getSSOTokenFromFile=void 0;var lie=require("fs"),die=ub(),{readFile:uie}=lie.promises,mie=async e=>{let n=(0,die.getSSOTokenFilepath)(e),t=await uie(n,"utf8");return JSON.parse(t)};A_.getSSOTokenFromFile=mie});var mb=u(Pi=>{"use strict";Object.defineProperty(Pi,"__esModule",{value:!0});Pi.getConfigFilepath=Pi.ENV_CONFIG_PATH=void 0;var pie=require("path"),gie=Ba();Pi.ENV_CONFIG_PATH="AWS_CONFIG_FILE";var yie=()=>process.env[Pi.ENV_CONFIG_PATH]||(0,pie.join)((0,gie.getHomeDir)(),".aws","config");Pi.getConfigFilepath=yie});var wT=u(Ai=>{"use strict";Object.defineProperty(Ai,"__esModule",{value:!0});Ai.getCredentialsFilepath=Ai.ENV_CREDENTIALS_PATH=void 0;var _ie=require("path"),fie=Ba();Ai.ENV_CREDENTIALS_PATH="AWS_SHARED_CREDENTIALS_FILE";var Sie=()=>process.env[Ai.ENV_CREDENTIALS_PATH]||(0,_ie.join)((0,fie.getHomeDir)(),".aws","credentials");Ai.getCredentialsFilepath=Sie});var CT=u(x_=>{"use strict";Object.defineProperty(x_,"__esModule",{value:!0});x_.getProfileData=void 0;var ET=/^profile\s(["'])?([^\1]+)\1$/,hie=e=>Object.entries(e).filter(([n])=>ET.test(n)).reduce((n,[t,s])=>({...n,[ET.exec(t)[2]]:s}),{...e.default&&{default:e.default}});x_.getProfileData=hie});var pb=u(b_=>{"use strict";Object.defineProperty(b_,"__esModule",{value:!0});b_.parseIni=void 0;var wie=["__proto__","profile __proto__"],Eie=e=>{let n={},t;for(let s of e.split(/\r?\n/))if(s=s.split(/(^|\s)[;#]/)[0].trim(),s[0]==="["&&s[s.length-1]==="]"){if(t=s.substring(1,s.length-1),wie.includes(t))throw new Error(`Found invalid profile name "${t}"`)}else if(t){let i=s.indexOf("="),a=0,o=s.length-1;if(i!==-1&&i!==a&&i!==o){let[l,d]=[s.substring(0,i).trim(),s.substring(i+1).trim()];n[t]=n[t]||{},n[t][l]=d}}return n};b_.parseIni=Eie});var yb=u(I_=>{"use strict";Object.defineProperty(I_,"__esModule",{value:!0});I_.slurpFile=void 0;var Cie=require("fs"),{readFile:vie}=Cie.promises,gb={},Pie=e=>(gb[e]||(gb[e]=vie(e,"utf8")),gb[e]);I_.slurpFile=Pie});var _b=u(k_=>{"use strict";Object.defineProperty(k_,"__esModule",{value:!0});k_.loadSharedConfigFiles=void 0;var Aie=mb(),xie=wT(),bie=CT(),vT=pb(),PT=yb(),AT=()=>({}),Iie=async(e={})=>{let{filepath:n=(0,xie.getCredentialsFilepath)(),configFilepath:t=(0,Aie.getConfigFilepath)()}=e,s=await Promise.all([(0,PT.slurpFile)(t).then(vT.parseIni).then(bie.getProfileData).catch(AT),(0,PT.slurpFile)(n).then(vT.parseIni).catch(AT)]);return{configFile:s[0],credentialsFile:s[1]}};k_.loadSharedConfigFiles=Iie});var bT=u(R_=>{"use strict";Object.defineProperty(R_,"__esModule",{value:!0});R_.getSsoSessionData=void 0;var xT=/^sso-session\s(["'])?([^\1]+)\1$/,kie=e=>Object.entries(e).filter(([n])=>xT.test(n)).reduce((n,[t,s])=>({...n,[xT.exec(t)[2]]:s}),{});R_.getSsoSessionData=kie});var IT=u(N_=>{"use strict";Object.defineProperty(N_,"__esModule",{value:!0});N_.loadSsoSessionData=void 0;var Rie=mb(),Nie=bT(),zie=pb(),qie=yb(),Lie=()=>({}),Fie=async(e={})=>{var n;return(0,qie.slurpFile)((n=e.configFilepath)!==null&&n!==void 0?n:(0,Rie.getConfigFilepath)()).then(zie.parseIni).then(Nie.getSsoSessionData).catch(Lie)};N_.loadSsoSessionData=Fie});var kT=u(z_=>{"use strict";Object.defineProperty(z_,"__esModule",{value:!0});z_.parseKnownFiles=void 0;var Die=_b(),Tie=async e=>{let n=await(0,Die.loadSharedConfigFiles)(e);return{...n.configFile,...n.credentialsFile}};z_.parseKnownFiles=Tie});var NT=u(RT=>{"use strict";Object.defineProperty(RT,"__esModule",{value:!0})});var ps=u(ms=>{"use strict";Object.defineProperty(ms,"__esModule",{value:!0});var Dr=X();Dr.__exportStar(Ba(),ms);Dr.__exportStar(ST(),ms);Dr.__exportStar(ub(),ms);Dr.__exportStar(hT(),ms);Dr.__exportStar(_b(),ms);Dr.__exportStar(IT(),ms);Dr.__exportStar(kT(),ms);Dr.__exportStar(NT(),ms)});var L_=u(q_=>{"use strict";Object.defineProperty(q_,"__esModule",{value:!0});q_.httpRequest=void 0;var fb=Je(),jie=require("buffer"),Mie=require("http");function Oie(e){return new Promise((n,t)=>{var s;let r=(0,Mie.request)({method:"GET",...e,hostname:(s=e.hostname)===null||s===void 0?void 0:s.replace(/^\[(.+)\]$/,"$1")});r.on("error",i=>{t(Object.assign(new fb.ProviderError("Unable to connect to instance metadata service"),i)),r.destroy()}),r.on("timeout",()=>{t(new fb.ProviderError("TimeoutError from instance metadata service")),r.destroy()}),r.on("response",i=>{let{statusCode:a=400}=i;(a<200||300<=a)&&(t(Object.assign(new fb.ProviderError("Error response received from instance metadata service"),{statusCode:a})),r.destroy());let o=[];i.on("data",c=>{o.push(c)}),i.on("end",()=>{n(jie.Buffer.concat(o)),r.destroy()})}),r.end()})}q_.httpRequest=Oie});var Sb=u(io=>{"use strict";Object.defineProperty(io,"__esModule",{value:!0});io.fromImdsCredentials=io.isImdsCredentials=void 0;var Bie=e=>Boolean(e)&&typeof e=="object"&&typeof e.AccessKeyId=="string"&&typeof e.SecretAccessKey=="string"&&typeof e.Token=="string"&&typeof e.Expiration=="string";io.isImdsCredentials=Bie;var Gie=e=>({accessKeyId:e.AccessKeyId,secretAccessKey:e.SecretAccessKey,sessionToken:e.Token,expiration:new Date(e.Expiration)});io.fromImdsCredentials=Gie});var F_=u(gs=>{"use strict";Object.defineProperty(gs,"__esModule",{value:!0});gs.providerConfigFromInit=gs.DEFAULT_MAX_RETRIES=gs.DEFAULT_TIMEOUT=void 0;gs.DEFAULT_TIMEOUT=1e3;gs.DEFAULT_MAX_RETRIES=0;var Uie=({maxRetries:e=gs.DEFAULT_MAX_RETRIES,timeout:n=gs.DEFAULT_TIMEOUT})=>({maxRetries:e,timeout:n});gs.providerConfigFromInit=Uie});var hb=u(D_=>{"use strict";Object.defineProperty(D_,"__esModule",{value:!0});D_.retry=void 0;var Xie=(e,n)=>{let t=e();for(let s=0;s{"use strict";Object.defineProperty(Ht,"__esModule",{value:!0});Ht.fromContainerMetadata=Ht.ENV_CMDS_AUTH_TOKEN=Ht.ENV_CMDS_RELATIVE_URI=Ht.ENV_CMDS_FULL_URI=void 0;var T_=Je(),$ie=require("url"),Hie=L_(),zT=Sb(),Vie=F_(),Wie=hb();Ht.ENV_CMDS_FULL_URI="AWS_CONTAINER_CREDENTIALS_FULL_URI";Ht.ENV_CMDS_RELATIVE_URI="AWS_CONTAINER_CREDENTIALS_RELATIVE_URI";Ht.ENV_CMDS_AUTH_TOKEN="AWS_CONTAINER_AUTHORIZATION_TOKEN";var Kie=(e={})=>{let{timeout:n,maxRetries:t}=(0,Vie.providerConfigFromInit)(e);return()=>(0,Wie.retry)(async()=>{let s=await eoe(),r=JSON.parse(await Qie(n,s));if(!(0,zT.isImdsCredentials)(r))throw new T_.CredentialsProviderError("Invalid response received from instance metadata service.");return(0,zT.fromImdsCredentials)(r)},t)};Ht.fromContainerMetadata=Kie;var Qie=async(e,n)=>(process.env[Ht.ENV_CMDS_AUTH_TOKEN]&&(n.headers={...n.headers,Authorization:process.env[Ht.ENV_CMDS_AUTH_TOKEN]}),(await(0,Hie.httpRequest)({...n,timeout:e})).toString()),Jie="169.254.170.2",Yie={localhost:!0,"127.0.0.1":!0},Zie={"http:":!0,"https:":!0},eoe=async()=>{if(process.env[Ht.ENV_CMDS_RELATIVE_URI])return{hostname:Jie,path:process.env[Ht.ENV_CMDS_RELATIVE_URI]};if(process.env[Ht.ENV_CMDS_FULL_URI]){let e=(0,$ie.parse)(process.env[Ht.ENV_CMDS_FULL_URI]);if(!e.hostname||!(e.hostname in Yie))throw new T_.CredentialsProviderError(`${e.hostname} is not a valid container metadata service hostname`,!1);if(!e.protocol||!(e.protocol in Zie))throw new T_.CredentialsProviderError(`${e.protocol} is not a valid container metadata service protocol`,!1);return{...e,port:e.port?parseInt(e.port,10):void 0}}throw new T_.CredentialsProviderError(`The container metadata credential provider cannot be used unless the ${Ht.ENV_CMDS_RELATIVE_URI} or ${Ht.ENV_CMDS_FULL_URI} environment variable is set`,!1)}});var LT=u(j_=>{"use strict";Object.defineProperty(j_,"__esModule",{value:!0});j_.fromEnv=void 0;var toe=Je(),noe=e=>async()=>{try{let n=e(process.env);if(n===void 0)throw new Error;return n}catch(n){throw new toe.CredentialsProviderError(n.message||`Cannot load config from environment variables with getter: ${e}`)}};j_.fromEnv=noe});var DT=u(M_=>{"use strict";Object.defineProperty(M_,"__esModule",{value:!0});M_.fromSharedConfigFiles=void 0;var soe=Je(),FT=ps(),roe=(e,{preferredFile:n="config",...t}={})=>async()=>{let s=(0,FT.getProfileName)(t),{configFile:r,credentialsFile:i}=await(0,FT.loadSharedConfigFiles)(t),a=i[s]||{},o=r[s]||{},c=n==="config"?{...a,...o}:{...o,...a};try{let l=e(c);if(l===void 0)throw new Error;return l}catch(l){throw new soe.CredentialsProviderError(l.message||`Cannot load config for profile ${s} in SDK configuration files with getter: ${e}`)}};M_.fromSharedConfigFiles=roe});var TT=u(O_=>{"use strict";Object.defineProperty(O_,"__esModule",{value:!0});O_.fromStatic=void 0;var ioe=Je(),ooe=e=>typeof e=="function",aoe=e=>ooe(e)?async()=>await e():(0,ioe.fromStatic)(e);O_.fromStatic=aoe});var MT=u(B_=>{"use strict";Object.defineProperty(B_,"__esModule",{value:!0});B_.loadConfig=void 0;var jT=Je(),coe=LT(),loe=DT(),doe=TT(),uoe=({environmentVariableSelector:e,configFileSelector:n,default:t},s={})=>(0,jT.memoize)((0,jT.chain)((0,coe.fromEnv)(e),(0,loe.fromSharedConfigFiles)(n,s),(0,doe.fromStatic)(t)));B_.loadConfig=uoe});var Qn=u(wb=>{"use strict";Object.defineProperty(wb,"__esModule",{value:!0});var moe=X();moe.__exportStar(MT(),wb)});var OT=u(Ga=>{"use strict";Object.defineProperty(Ga,"__esModule",{value:!0});Ga.Endpoint=void 0;var poe;(function(e){e.IPv4="http://169.254.169.254",e.IPv6="http://[fd00:ec2::254]"})(poe=Ga.Endpoint||(Ga.Endpoint={}))});var BT=u(ys=>{"use strict";Object.defineProperty(ys,"__esModule",{value:!0});ys.ENDPOINT_CONFIG_OPTIONS=ys.CONFIG_ENDPOINT_NAME=ys.ENV_ENDPOINT_NAME=void 0;ys.ENV_ENDPOINT_NAME="AWS_EC2_METADATA_SERVICE_ENDPOINT";ys.CONFIG_ENDPOINT_NAME="ec2_metadata_service_endpoint";ys.ENDPOINT_CONFIG_OPTIONS={environmentVariableSelector:e=>e[ys.ENV_ENDPOINT_NAME],configFileSelector:e=>e[ys.CONFIG_ENDPOINT_NAME],default:void 0}});var Eb=u(Ua=>{"use strict";Object.defineProperty(Ua,"__esModule",{value:!0});Ua.EndpointMode=void 0;var goe;(function(e){e.IPv4="IPv4",e.IPv6="IPv6"})(goe=Ua.EndpointMode||(Ua.EndpointMode={}))});var GT=u(_s=>{"use strict";Object.defineProperty(_s,"__esModule",{value:!0});_s.ENDPOINT_MODE_CONFIG_OPTIONS=_s.CONFIG_ENDPOINT_MODE_NAME=_s.ENV_ENDPOINT_MODE_NAME=void 0;var yoe=Eb();_s.ENV_ENDPOINT_MODE_NAME="AWS_EC2_METADATA_SERVICE_ENDPOINT_MODE";_s.CONFIG_ENDPOINT_MODE_NAME="ec2_metadata_service_endpoint_mode";_s.ENDPOINT_MODE_CONFIG_OPTIONS={environmentVariableSelector:e=>e[_s.ENV_ENDPOINT_MODE_NAME],configFileSelector:e=>e[_s.CONFIG_ENDPOINT_MODE_NAME],default:yoe.EndpointMode.IPv4}});var vb=u(G_=>{"use strict";Object.defineProperty(G_,"__esModule",{value:!0});G_.getInstanceMetadataEndpoint=void 0;var XT=Qn(),_oe=ts(),UT=OT(),foe=BT(),Cb=Eb(),Soe=GT(),hoe=async()=>(0,_oe.parseUrl)(await woe()||await Eoe());G_.getInstanceMetadataEndpoint=hoe;var woe=async()=>(0,XT.loadConfig)(foe.ENDPOINT_CONFIG_OPTIONS)(),Eoe=async()=>{let e=await(0,XT.loadConfig)(Soe.ENDPOINT_MODE_CONFIG_OPTIONS)();switch(e){case Cb.EndpointMode.IPv4:return UT.Endpoint.IPv4;case Cb.EndpointMode.IPv6:return UT.Endpoint.IPv6;default:throw new Error(`Unsupported endpoint mode: ${e}. Select from ${Object.values(Cb.EndpointMode)}`)}}});var $T=u(U_=>{"use strict";Object.defineProperty(U_,"__esModule",{value:!0});U_.getExtendedInstanceMetadataCredentials=void 0;var Coe=5*60,voe=5*60,Poe="https://docs.aws.amazon.com/sdkref/latest/guide/feature-static-credentials.html",Aoe=(e,n)=>{var t;let s=Coe+Math.floor(Math.random()*voe),r=new Date(Date.now()+s*1e3);n.warn("Attempting credential expiration extension due to a credential service availability issue. A refresh of these credentials will be attempted after ${new Date(newExpiration)}.\nFor more information, please visit: "+Poe);let i=(t=e.originalExpiration)!==null&&t!==void 0?t:e.expiration;return{...e,...i?{originalExpiration:i}:{},expiration:r}};U_.getExtendedInstanceMetadataCredentials=Aoe});var VT=u(X_=>{"use strict";Object.defineProperty(X_,"__esModule",{value:!0});X_.staticStabilityProvider=void 0;var HT=$T(),xoe=(e,n={})=>{let t=n?.logger||console,s;return async()=>{let r;try{r=await e(),r.expiration&&r.expiration.getTime(){"use strict";Object.defineProperty($_,"__esModule",{value:!0});$_.fromInstanceMetadata=void 0;var boe=Je(),Pb=L_(),WT=Sb(),Ioe=F_(),KT=hb(),koe=vb(),Roe=VT(),QT="/latest/meta-data/iam/security-credentials/",Noe="/latest/api/token",zoe=(e={})=>(0,Roe.staticStabilityProvider)(qoe(e),{logger:e.logger});$_.fromInstanceMetadata=zoe;var qoe=e=>{let n=!1,{timeout:t,maxRetries:s}=(0,Ioe.providerConfigFromInit)(e),r=async(i,a)=>{let o=(await(0,KT.retry)(async()=>{let c;try{c=await Foe(a)}catch(l){throw l.statusCode===401&&(n=!1),l}return c},i)).trim();return(0,KT.retry)(async()=>{let c;try{c=await Doe(o,a)}catch(l){throw l.statusCode===401&&(n=!1),l}return c},i)};return async()=>{let i=await(0,koe.getInstanceMetadataEndpoint)();if(n)return r(s,{...i,timeout:t});{let a;try{a=(await Loe({...i,timeout:t})).toString()}catch(o){if(o?.statusCode===400)throw Object.assign(o,{message:"EC2 Metadata token request returned error"});return(o.message==="TimeoutError"||[403,404,405].includes(o.statusCode))&&(n=!0),r(s,{...i,timeout:t})}return r(s,{...i,headers:{"x-aws-ec2-metadata-token":a},timeout:t})}}},Loe=async e=>(0,Pb.httpRequest)({...e,path:Noe,method:"PUT",headers:{"x-aws-ec2-metadata-token-ttl-seconds":"21600"}}),Foe=async e=>(await(0,Pb.httpRequest)({...e,path:QT})).toString(),Doe=async(e,n)=>{let t=JSON.parse((await(0,Pb.httpRequest)({...n,path:QT+e})).toString());if(!(0,WT.isImdsCredentials)(t))throw new boe.CredentialsProviderError("Invalid response received from instance metadata service.");return(0,WT.fromImdsCredentials)(t)}});var ZT=u(YT=>{"use strict";Object.defineProperty(YT,"__esModule",{value:!0})});var oo=u(fs=>{"use strict";Object.defineProperty(fs,"__esModule",{value:!0});fs.getInstanceMetadataEndpoint=fs.httpRequest=void 0;var H_=X();H_.__exportStar(qT(),fs);H_.__exportStar(JT(),fs);H_.__exportStar(F_(),fs);H_.__exportStar(ZT(),fs);var Toe=L_();Object.defineProperty(fs,"httpRequest",{enumerable:!0,get:function(){return Toe.httpRequest}});var joe=vb();Object.defineProperty(fs,"getInstanceMetadataEndpoint",{enumerable:!0,get:function(){return joe.getInstanceMetadataEndpoint}})});var tj=u(V_=>{"use strict";Object.defineProperty(V_,"__esModule",{value:!0});V_.resolveCredentialSource=void 0;var Moe=C_(),ej=oo(),Ooe=Je(),Boe=(e,n)=>{let t={EcsContainer:ej.fromContainerMetadata,Ec2InstanceMetadata:ej.fromInstanceMetadata,Environment:Moe.fromEnv};if(e in t)return t[e]();throw new Ooe.CredentialsProviderError(`Unsupported credential source in profile ${n}. Got ${e}, expected EcsContainer or Ec2InstanceMetadata or Environment.`)};V_.resolveCredentialSource=Boe});var nj=u(ao=>{"use strict";Object.defineProperty(ao,"__esModule",{value:!0});ao.resolveAssumeRoleCredentials=ao.isAssumeRoleProfile=void 0;var Ab=Je(),Goe=ps(),Uoe=tj(),Xoe=xb(),$oe=e=>Boolean(e)&&typeof e=="object"&&typeof e.role_arn=="string"&&["undefined","string"].indexOf(typeof e.role_session_name)>-1&&["undefined","string"].indexOf(typeof e.external_id)>-1&&["undefined","string"].indexOf(typeof e.mfa_serial)>-1&&(Hoe(e)||Voe(e));ao.isAssumeRoleProfile=$oe;var Hoe=e=>typeof e.source_profile=="string"&&typeof e.credential_source>"u",Voe=e=>typeof e.credential_source=="string"&&typeof e.source_profile>"u",Woe=async(e,n,t,s={})=>{let r=n[e];if(!t.roleAssumer)throw new Ab.CredentialsProviderError(`Profile ${e} requires a role to be assumed, but no role assumption callback was provided.`,!1);let{source_profile:i}=r;if(i&&i in s)throw new Ab.CredentialsProviderError(`Detected a cycle attempting to resolve credentials for profile ${(0,Goe.getProfileName)(t)}. Profiles visited: `+Object.keys(s).join(", "),!1);let a=i?(0,Xoe.resolveProfileData)(i,n,t,{...s,[i]:!0}):(0,Uoe.resolveCredentialSource)(r.credential_source,e)(),o={RoleArn:r.role_arn,RoleSessionName:r.role_session_name||`aws-sdk-js-${Date.now()}`,ExternalId:r.external_id},{mfa_serial:c}=r;if(c){if(!t.mfaCodeProvider)throw new Ab.CredentialsProviderError(`Profile ${e} requires multi-factor authentication, but no MFA code callback was provided.`,!1);o.SerialNumber=c,o.TokenCode=await t.mfaCodeProvider(c)}let l=await a;return t.roleAssumer(l,o)};ao.resolveAssumeRoleCredentials=Woe});var sj=u(W_=>{"use strict";Object.defineProperty(W_,"__esModule",{value:!0});W_.getValidatedProcessCredentials=void 0;var Koe=(e,n)=>{if(n.Version!==1)throw Error(`Profile ${e} credential_process did not return Version 1.`);if(n.AccessKeyId===void 0||n.SecretAccessKey===void 0)throw Error(`Profile ${e} credential_process returned invalid credentials.`);if(n.Expiration){let t=new Date;if(new Date(n.Expiration){"use strict";Object.defineProperty(K_,"__esModule",{value:!0});K_.resolveProcessCredentials=void 0;var bb=Je(),Qoe=require("child_process"),Joe=require("util"),Yoe=sj(),Zoe=async(e,n)=>{let t=n[e];if(n[e]){let s=t.credential_process;if(s!==void 0){let r=(0,Joe.promisify)(Qoe.exec);try{let{stdout:i}=await r(s),a;try{a=JSON.parse(i.trim())}catch{throw Error(`Profile ${e} credential_process returned invalid JSON.`)}return(0,Yoe.getValidatedProcessCredentials)(e,a)}catch(i){throw new bb.CredentialsProviderError(i.message)}}else throw new bb.CredentialsProviderError(`Profile ${e} did not contain credential_process.`)}else throw new bb.CredentialsProviderError(`Profile ${e} could not be found in shared credentials file.`)};K_.resolveProcessCredentials=Zoe});var oj=u(Q_=>{"use strict";Object.defineProperty(Q_,"__esModule",{value:!0});Q_.fromProcess=void 0;var ij=ps(),eae=rj(),tae=(e={})=>async()=>{let n=await(0,ij.parseKnownFiles)(e);return(0,eae.resolveProcessCredentials)((0,ij.getProfileName)(e),n)};Q_.fromProcess=tae});var J_=u(Ib=>{"use strict";Object.defineProperty(Ib,"__esModule",{value:!0});var nae=X();nae.__exportStar(oj(),Ib)});var aj=u(co=>{"use strict";Object.defineProperty(co,"__esModule",{value:!0});co.resolveProcessCredentials=co.isProcessProfile=void 0;var sae=J_(),rae=e=>Boolean(e)&&typeof e=="object"&&typeof e.credential_process=="string";co.isProcessProfile=rae;var iae=async(e,n)=>(0,sae.fromProcess)({...e,profile:n})();co.resolveProcessCredentials=iae});var kb=u(Y_=>{"use strict";Object.defineProperty(Y_,"__esModule",{value:!0});Y_.isSsoProfile=void 0;var oae=e=>e&&(typeof e.sso_start_url=="string"||typeof e.sso_account_id=="string"||typeof e.sso_session=="string"||typeof e.sso_region=="string"||typeof e.sso_role_name=="string");Y_.isSsoProfile=oae});var ef=u(Z_=>{"use strict";Object.defineProperty(Z_,"__esModule",{value:!0});Z_.SSOServiceException=void 0;var aae=E(),Xa=class extends aae.ServiceException{constructor(n){super(n),Object.setPrototypeOf(this,Xa.prototype)}};Z_.SSOServiceException=Xa});var xi=u(Ve=>{"use strict";Object.defineProperty(Ve,"__esModule",{value:!0});Ve.LogoutRequestFilterSensitiveLog=Ve.ListAccountsResponseFilterSensitiveLog=Ve.ListAccountsRequestFilterSensitiveLog=Ve.ListAccountRolesResponseFilterSensitiveLog=Ve.RoleInfoFilterSensitiveLog=Ve.ListAccountRolesRequestFilterSensitiveLog=Ve.GetRoleCredentialsResponseFilterSensitiveLog=Ve.RoleCredentialsFilterSensitiveLog=Ve.GetRoleCredentialsRequestFilterSensitiveLog=Ve.AccountInfoFilterSensitiveLog=Ve.UnauthorizedException=Ve.TooManyRequestsException=Ve.ResourceNotFoundException=Ve.InvalidRequestException=void 0;var lo=E(),tf=ef(),$a=class extends tf.SSOServiceException{constructor(n){super({name:"InvalidRequestException",$fault:"client",...n}),this.name="InvalidRequestException",this.$fault="client",Object.setPrototypeOf(this,$a.prototype)}};Ve.InvalidRequestException=$a;var Ha=class extends tf.SSOServiceException{constructor(n){super({name:"ResourceNotFoundException",$fault:"client",...n}),this.name="ResourceNotFoundException",this.$fault="client",Object.setPrototypeOf(this,Ha.prototype)}};Ve.ResourceNotFoundException=Ha;var Va=class extends tf.SSOServiceException{constructor(n){super({name:"TooManyRequestsException",$fault:"client",...n}),this.name="TooManyRequestsException",this.$fault="client",Object.setPrototypeOf(this,Va.prototype)}};Ve.TooManyRequestsException=Va;var Wa=class extends tf.SSOServiceException{constructor(n){super({name:"UnauthorizedException",$fault:"client",...n}),this.name="UnauthorizedException",this.$fault="client",Object.setPrototypeOf(this,Wa.prototype)}};Ve.UnauthorizedException=Wa;var cae=e=>({...e});Ve.AccountInfoFilterSensitiveLog=cae;var lae=e=>({...e,...e.accessToken&&{accessToken:lo.SENSITIVE_STRING}});Ve.GetRoleCredentialsRequestFilterSensitiveLog=lae;var dae=e=>({...e,...e.secretAccessKey&&{secretAccessKey:lo.SENSITIVE_STRING},...e.sessionToken&&{sessionToken:lo.SENSITIVE_STRING}});Ve.RoleCredentialsFilterSensitiveLog=dae;var uae=e=>({...e,...e.roleCredentials&&{roleCredentials:(0,Ve.RoleCredentialsFilterSensitiveLog)(e.roleCredentials)}});Ve.GetRoleCredentialsResponseFilterSensitiveLog=uae;var mae=e=>({...e,...e.accessToken&&{accessToken:lo.SENSITIVE_STRING}});Ve.ListAccountRolesRequestFilterSensitiveLog=mae;var pae=e=>({...e});Ve.RoleInfoFilterSensitiveLog=pae;var gae=e=>({...e});Ve.ListAccountRolesResponseFilterSensitiveLog=gae;var yae=e=>({...e,...e.accessToken&&{accessToken:lo.SENSITIVE_STRING}});Ve.ListAccountsRequestFilterSensitiveLog=yae;var _ae=e=>({...e});Ve.ListAccountsResponseFilterSensitiveLog=_ae;var fae=e=>({...e,...e.accessToken&&{accessToken:lo.SENSITIVE_STRING}});Ve.LogoutRequestFilterSensitiveLog=fae});var Ka=u(Vt=>{"use strict";Object.defineProperty(Vt,"__esModule",{value:!0});Vt.deserializeAws_restJson1LogoutCommand=Vt.deserializeAws_restJson1ListAccountsCommand=Vt.deserializeAws_restJson1ListAccountRolesCommand=Vt.deserializeAws_restJson1GetRoleCredentialsCommand=Vt.serializeAws_restJson1LogoutCommand=Vt.serializeAws_restJson1ListAccountsCommand=Vt.serializeAws_restJson1ListAccountRolesCommand=Vt.serializeAws_restJson1GetRoleCredentialsCommand=void 0;var nf=gt(),Ge=E(),sf=xi(),rf=ef(),Sae=async(e,n)=>{let{hostname:t,protocol:s="https",port:r,path:i}=await n.endpoint(),a=mn({},lf,{"x-amz-sso_bearer_token":e.accessToken}),o=`${i?.endsWith("/")?i.slice(0,-1):i||""}/federation/credentials`,c=mn({role_name:[,(0,Ge.expectNonNull)(e.roleName,"roleName")],account_id:[,(0,Ge.expectNonNull)(e.accountId,"accountId")]}),l;return new nf.HttpRequest({protocol:s,hostname:t,port:r,method:"GET",headers:a,path:o,query:c,body:l})};Vt.serializeAws_restJson1GetRoleCredentialsCommand=Sae;var hae=async(e,n)=>{let{hostname:t,protocol:s="https",port:r,path:i}=await n.endpoint(),a=mn({},lf,{"x-amz-sso_bearer_token":e.accessToken}),o=`${i?.endsWith("/")?i.slice(0,-1):i||""}/assignment/roles`,c=mn({next_token:[,e.nextToken],max_result:[()=>e.maxResults!==void 0,()=>e.maxResults.toString()],account_id:[,(0,Ge.expectNonNull)(e.accountId,"accountId")]}),l;return new nf.HttpRequest({protocol:s,hostname:t,port:r,method:"GET",headers:a,path:o,query:c,body:l})};Vt.serializeAws_restJson1ListAccountRolesCommand=hae;var wae=async(e,n)=>{let{hostname:t,protocol:s="https",port:r,path:i}=await n.endpoint(),a=mn({},lf,{"x-amz-sso_bearer_token":e.accessToken}),o=`${i?.endsWith("/")?i.slice(0,-1):i||""}/assignment/accounts`,c=mn({next_token:[,e.nextToken],max_result:[()=>e.maxResults!==void 0,()=>e.maxResults.toString()]}),l;return new nf.HttpRequest({protocol:s,hostname:t,port:r,method:"GET",headers:a,path:o,query:c,body:l})};Vt.serializeAws_restJson1ListAccountsCommand=wae;var Eae=async(e,n)=>{let{hostname:t,protocol:s="https",port:r,path:i}=await n.endpoint(),a=mn({},lf,{"x-amz-sso_bearer_token":e.accessToken}),o=`${i?.endsWith("/")?i.slice(0,-1):i||""}/logout`,c;return new nf.HttpRequest({protocol:s,hostname:t,port:r,method:"POST",headers:a,path:o,body:c})};Vt.serializeAws_restJson1LogoutCommand=Eae;var Cae=async(e,n)=>{if(e.statusCode!==200&&e.statusCode>=300)return vae(e,n);let t=mn({$metadata:Tr(e)}),s=(0,Ge.expectNonNull)((0,Ge.expectObject)(await df(e.body,n)),"body");return s.roleCredentials!=null&&(t.roleCredentials=zae(s.roleCredentials,n)),t};Vt.deserializeAws_restJson1GetRoleCredentialsCommand=Cae;var vae=async(e,n)=>{let t={...e,body:await uf(e.body,n)},s=mf(e,t.body);switch(s){case"InvalidRequestException":case"com.amazonaws.sso#InvalidRequestException":throw await of(t,n);case"ResourceNotFoundException":case"com.amazonaws.sso#ResourceNotFoundException":throw await Rb(t,n);case"TooManyRequestsException":case"com.amazonaws.sso#TooManyRequestsException":throw await af(t,n);case"UnauthorizedException":case"com.amazonaws.sso#UnauthorizedException":throw await cf(t,n);default:let r=t.body;(0,Ge.throwDefaultError)({output:e,parsedBody:r,exceptionCtor:rf.SSOServiceException,errorCode:s})}},Pae=async(e,n)=>{if(e.statusCode!==200&&e.statusCode>=300)return Aae(e,n);let t=mn({$metadata:Tr(e)}),s=(0,Ge.expectNonNull)((0,Ge.expectObject)(await df(e.body,n)),"body");return s.nextToken!=null&&(t.nextToken=(0,Ge.expectString)(s.nextToken)),s.roleList!=null&&(t.roleList=Lae(s.roleList,n)),t};Vt.deserializeAws_restJson1ListAccountRolesCommand=Pae;var Aae=async(e,n)=>{let t={...e,body:await uf(e.body,n)},s=mf(e,t.body);switch(s){case"InvalidRequestException":case"com.amazonaws.sso#InvalidRequestException":throw await of(t,n);case"ResourceNotFoundException":case"com.amazonaws.sso#ResourceNotFoundException":throw await Rb(t,n);case"TooManyRequestsException":case"com.amazonaws.sso#TooManyRequestsException":throw await af(t,n);case"UnauthorizedException":case"com.amazonaws.sso#UnauthorizedException":throw await cf(t,n);default:let r=t.body;(0,Ge.throwDefaultError)({output:e,parsedBody:r,exceptionCtor:rf.SSOServiceException,errorCode:s})}},xae=async(e,n)=>{if(e.statusCode!==200&&e.statusCode>=300)return bae(e,n);let t=mn({$metadata:Tr(e)}),s=(0,Ge.expectNonNull)((0,Ge.expectObject)(await df(e.body,n)),"body");return s.accountList!=null&&(t.accountList=Nae(s.accountList,n)),s.nextToken!=null&&(t.nextToken=(0,Ge.expectString)(s.nextToken)),t};Vt.deserializeAws_restJson1ListAccountsCommand=xae;var bae=async(e,n)=>{let t={...e,body:await uf(e.body,n)},s=mf(e,t.body);switch(s){case"InvalidRequestException":case"com.amazonaws.sso#InvalidRequestException":throw await of(t,n);case"ResourceNotFoundException":case"com.amazonaws.sso#ResourceNotFoundException":throw await Rb(t,n);case"TooManyRequestsException":case"com.amazonaws.sso#TooManyRequestsException":throw await af(t,n);case"UnauthorizedException":case"com.amazonaws.sso#UnauthorizedException":throw await cf(t,n);default:let r=t.body;(0,Ge.throwDefaultError)({output:e,parsedBody:r,exceptionCtor:rf.SSOServiceException,errorCode:s})}},Iae=async(e,n)=>{if(e.statusCode!==200&&e.statusCode>=300)return kae(e,n);let t=mn({$metadata:Tr(e)});return await cj(e.body,n),t};Vt.deserializeAws_restJson1LogoutCommand=Iae;var kae=async(e,n)=>{let t={...e,body:await uf(e.body,n)},s=mf(e,t.body);switch(s){case"InvalidRequestException":case"com.amazonaws.sso#InvalidRequestException":throw await of(t,n);case"TooManyRequestsException":case"com.amazonaws.sso#TooManyRequestsException":throw await af(t,n);case"UnauthorizedException":case"com.amazonaws.sso#UnauthorizedException":throw await cf(t,n);default:let r=t.body;(0,Ge.throwDefaultError)({output:e,parsedBody:r,exceptionCtor:rf.SSOServiceException,errorCode:s})}},mn=Ge.map,of=async(e,n)=>{let t=mn({}),s=e.body;s.message!=null&&(t.message=(0,Ge.expectString)(s.message));let r=new sf.InvalidRequestException({$metadata:Tr(e),...t});return(0,Ge.decorateServiceException)(r,e.body)},Rb=async(e,n)=>{let t=mn({}),s=e.body;s.message!=null&&(t.message=(0,Ge.expectString)(s.message));let r=new sf.ResourceNotFoundException({$metadata:Tr(e),...t});return(0,Ge.decorateServiceException)(r,e.body)},af=async(e,n)=>{let t=mn({}),s=e.body;s.message!=null&&(t.message=(0,Ge.expectString)(s.message));let r=new sf.TooManyRequestsException({$metadata:Tr(e),...t});return(0,Ge.decorateServiceException)(r,e.body)},cf=async(e,n)=>{let t=mn({}),s=e.body;s.message!=null&&(t.message=(0,Ge.expectString)(s.message));let r=new sf.UnauthorizedException({$metadata:Tr(e),...t});return(0,Ge.decorateServiceException)(r,e.body)},Rae=(e,n)=>({accountId:(0,Ge.expectString)(e.accountId),accountName:(0,Ge.expectString)(e.accountName),emailAddress:(0,Ge.expectString)(e.emailAddress)}),Nae=(e,n)=>(e||[]).filter(s=>s!=null).map(s=>s===null?null:Rae(s,n)),zae=(e,n)=>({accessKeyId:(0,Ge.expectString)(e.accessKeyId),expiration:(0,Ge.expectLong)(e.expiration),secretAccessKey:(0,Ge.expectString)(e.secretAccessKey),sessionToken:(0,Ge.expectString)(e.sessionToken)}),qae=(e,n)=>({accountId:(0,Ge.expectString)(e.accountId),roleName:(0,Ge.expectString)(e.roleName)}),Lae=(e,n)=>(e||[]).filter(s=>s!=null).map(s=>s===null?null:qae(s,n)),Tr=e=>({httpStatusCode:e.statusCode,requestId:e.headers["x-amzn-requestid"]??e.headers["x-amzn-request-id"]??e.headers["x-amz-request-id"],extendedRequestId:e.headers["x-amz-id-2"],cfId:e.headers["x-amz-cf-id"]}),cj=(e=new Uint8Array,n)=>e instanceof Uint8Array?Promise.resolve(e):n.streamCollector(e)||Promise.resolve(new Uint8Array),Fae=(e,n)=>cj(e,n).then(t=>n.utf8Encoder(t)),lf=e=>e!=null&&e!==""&&(!Object.getOwnPropertyNames(e).includes("length")||e.length!=0)&&(!Object.getOwnPropertyNames(e).includes("size")||e.size!=0),df=(e,n)=>Fae(e,n).then(t=>t.length?JSON.parse(t):{}),uf=async(e,n)=>{let t=await df(e,n);return t.message=t.message??t.Message,t},mf=(e,n)=>{let t=(i,a)=>Object.keys(i).find(o=>o.toLowerCase()===a.toLowerCase()),s=i=>{let a=i;return typeof a=="number"&&(a=a.toString()),a.indexOf(",")>=0&&(a=a.split(",")[0]),a.indexOf(":")>=0&&(a=a.split(":")[0]),a.indexOf("#")>=0&&(a=a.split("#")[1]),a},r=t(e.headers,"x-amzn-errortype");if(r!==void 0)return s(e.headers[r]);if(n.code!==void 0)return s(n.code);if(n.__type!==void 0)return s(n.__type)}});var Nb=u(pf=>{"use strict";Object.defineProperty(pf,"__esModule",{value:!0});pf.GetRoleCredentialsCommand=void 0;var Dae=x(),Tae=b(),jae=E(),lj=xi(),dj=Ka(),Qa=class extends jae.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,Tae.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,Dae.getEndpointPlugin)(t,Qa.getEndpointParameterInstructions()));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"SSOClient",commandName:"GetRoleCredentialsCommand",inputFilterSensitiveLog:lj.GetRoleCredentialsRequestFilterSensitiveLog,outputFilterSensitiveLog:lj.GetRoleCredentialsResponseFilterSensitiveLog},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,dj.serializeAws_restJson1GetRoleCredentialsCommand)(n,t)}deserialize(n,t){return(0,dj.deserializeAws_restJson1GetRoleCredentialsCommand)(n,t)}};pf.GetRoleCredentialsCommand=Qa});var yf=u(gf=>{"use strict";Object.defineProperty(gf,"__esModule",{value:!0});gf.ListAccountRolesCommand=void 0;var Mae=x(),Oae=b(),Bae=E(),uj=xi(),mj=Ka(),Ja=class extends Bae.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,Oae.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,Mae.getEndpointPlugin)(t,Ja.getEndpointParameterInstructions()));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"SSOClient",commandName:"ListAccountRolesCommand",inputFilterSensitiveLog:uj.ListAccountRolesRequestFilterSensitiveLog,outputFilterSensitiveLog:uj.ListAccountRolesResponseFilterSensitiveLog},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,mj.serializeAws_restJson1ListAccountRolesCommand)(n,t)}deserialize(n,t){return(0,mj.deserializeAws_restJson1ListAccountRolesCommand)(n,t)}};gf.ListAccountRolesCommand=Ja});var ff=u(_f=>{"use strict";Object.defineProperty(_f,"__esModule",{value:!0});_f.ListAccountsCommand=void 0;var Gae=x(),Uae=b(),Xae=E(),pj=xi(),gj=Ka(),Ya=class extends Xae.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,Uae.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,Gae.getEndpointPlugin)(t,Ya.getEndpointParameterInstructions()));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"SSOClient",commandName:"ListAccountsCommand",inputFilterSensitiveLog:pj.ListAccountsRequestFilterSensitiveLog,outputFilterSensitiveLog:pj.ListAccountsResponseFilterSensitiveLog},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,gj.serializeAws_restJson1ListAccountsCommand)(n,t)}deserialize(n,t){return(0,gj.deserializeAws_restJson1ListAccountsCommand)(n,t)}};_f.ListAccountsCommand=Ya});var zb=u(Sf=>{"use strict";Object.defineProperty(Sf,"__esModule",{value:!0});Sf.LogoutCommand=void 0;var $ae=x(),Hae=b(),Vae=E(),Wae=xi(),yj=Ka(),Za=class extends Vae.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,Hae.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,$ae.getEndpointPlugin)(t,Za.getEndpointParameterInstructions()));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"SSOClient",commandName:"LogoutCommand",inputFilterSensitiveLog:Wae.LogoutRequestFilterSensitiveLog,outputFilterSensitiveLog:d=>d},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,yj.serializeAws_restJson1LogoutCommand)(n,t)}deserialize(n,t){return(0,yj.deserializeAws_restJson1LogoutCommand)(n,t)}};Sf.LogoutCommand=Za});var _j=u(hf=>{"use strict";Object.defineProperty(hf,"__esModule",{value:!0});hf.resolveClientEndpointParameters=void 0;var Kae=e=>({...e,useDualstackEndpoint:e.useDualstackEndpoint??!1,useFipsEndpoint:e.useFipsEndpoint??!1,defaultSigningName:"awsssoportal"});hf.resolveClientEndpointParameters=Kae});var fj=u((hgt,Qae)=>{Qae.exports={name:"@aws-sdk/client-sso",description:"AWS SDK for JavaScript Sso Client for Node.js, Browser and React Native",version:"3.282.0",scripts:{build:"concurrently 'yarn:build:cjs' 'yarn:build:es' 'yarn:build:types'","build:cjs":"tsc -p tsconfig.cjs.json","build:docs":"typedoc","build:es":"tsc -p tsconfig.es.json","build:include:deps":"lerna run --scope $npm_package_name --include-dependencies build","build:types":"tsc -p tsconfig.types.json","build:types:downlevel":"downlevel-dts dist-types dist-types/ts3.4",clean:"rimraf ./dist-* && rimraf *.tsbuildinfo","generate:client":"node ../../scripts/generate-clients/single-service --solo sso"},main:"./dist-cjs/index.js",types:"./dist-types/index.d.ts",module:"./dist-es/index.js",sideEffects:!1,dependencies:{"@aws-crypto/sha256-browser":"3.0.0","@aws-crypto/sha256-js":"3.0.0","@aws-sdk/config-resolver":"3.282.0","@aws-sdk/fetch-http-handler":"3.282.0","@aws-sdk/hash-node":"3.272.0","@aws-sdk/invalid-dependency":"3.272.0","@aws-sdk/middleware-content-length":"3.282.0","@aws-sdk/middleware-endpoint":"3.282.0","@aws-sdk/middleware-host-header":"3.282.0","@aws-sdk/middleware-logger":"3.272.0","@aws-sdk/middleware-recursion-detection":"3.282.0","@aws-sdk/middleware-retry":"3.282.0","@aws-sdk/middleware-serde":"3.272.0","@aws-sdk/middleware-stack":"3.272.0","@aws-sdk/middleware-user-agent":"3.282.0","@aws-sdk/node-config-provider":"3.272.0","@aws-sdk/node-http-handler":"3.282.0","@aws-sdk/protocol-http":"3.282.0","@aws-sdk/smithy-client":"3.279.0","@aws-sdk/types":"3.272.0","@aws-sdk/url-parser":"3.272.0","@aws-sdk/util-base64":"3.208.0","@aws-sdk/util-body-length-browser":"3.188.0","@aws-sdk/util-body-length-node":"3.208.0","@aws-sdk/util-defaults-mode-browser":"3.279.0","@aws-sdk/util-defaults-mode-node":"3.282.0","@aws-sdk/util-endpoints":"3.272.0","@aws-sdk/util-retry":"3.272.0","@aws-sdk/util-user-agent-browser":"3.282.0","@aws-sdk/util-user-agent-node":"3.282.0","@aws-sdk/util-utf8":"3.254.0",tslib:"^2.3.1"},devDependencies:{"@aws-sdk/service-client-documentation-generator":"3.208.0","@tsconfig/node14":"1.0.3","@types/node":"^14.14.31",concurrently:"7.0.0","downlevel-dts":"0.10.1",rimraf:"3.0.2",typedoc:"0.19.2",typescript:"~4.6.2"},overrides:{typedoc:{typescript:"~4.6.2"}},engines:{node:">=14.0.0"},typesVersions:{"<4.0":{"dist-types/*":["dist-types/ts3.4/*"]}},files:["dist-*"],author:{name:"AWS SDK for JavaScript Team",url:"https://aws.amazon.com/javascript/"},license:"Apache-2.0",browser:{"./dist-es/runtimeConfig":"./dist-es/runtimeConfig.browser"},"react-native":{"./dist-es/runtimeConfig":"./dist-es/runtimeConfig.native"},homepage:"https://github.com/aws/aws-sdk-js-v3/tree/main/clients/client-sso",repository:{type:"git",url:"https://github.com/aws/aws-sdk-js-v3.git",directory:"clients/client-sso"}}});var jr=u(wf=>{"use strict";Object.defineProperty(wf,"__esModule",{value:!0});wf.Hash=void 0;var qb=Si(),Jae=Sn(),Yae=require("buffer"),Sj=require("crypto"),Lb=class{constructor(n,t){this.algorithmIdentifier=n,this.secret=t,this.reset()}update(n,t){this.hash.update((0,Jae.toUint8Array)(hj(n,t)))}digest(){return Promise.resolve(this.hash.digest())}reset(){this.hash=this.secret?(0,Sj.createHmac)(this.algorithmIdentifier,hj(this.secret)):(0,Sj.createHash)(this.algorithmIdentifier)}};wf.Hash=Lb;function hj(e,n){return Yae.Buffer.isBuffer(e)?e:typeof e=="string"?(0,qb.fromString)(e,n):ArrayBuffer.isView(e)?(0,qb.fromArrayBuffer)(e.buffer,e.byteOffset,e.byteLength):(0,qb.fromArrayBuffer)(e)}});var Db=u(Ef=>{"use strict";Object.defineProperty(Ef,"__esModule",{value:!0});Ef.buildQueryString=void 0;var Fb=w0();function Zae(e){let n=[];for(let t of Object.keys(e).sort()){let s=e[t];if(t=(0,Fb.escapeUri)(t),Array.isArray(s))for(let r=0,i=s.length;r{"use strict";Object.defineProperty(Cf,"__esModule",{value:!0});Cf.NODEJS_TIMEOUT_ERROR_CODES=void 0;Cf.NODEJS_TIMEOUT_ERROR_CODES=["ECONNRESET","EPIPE","ETIMEDOUT"]});var Tb=u(vf=>{"use strict";Object.defineProperty(vf,"__esModule",{value:!0});vf.getTransformedHeaders=void 0;var ece=e=>{let n={};for(let t of Object.keys(e)){let s=e[t];n[t]=Array.isArray(s)?s.join(","):s}return n};vf.getTransformedHeaders=ece});var Ej=u(Pf=>{"use strict";Object.defineProperty(Pf,"__esModule",{value:!0});Pf.setConnectionTimeout=void 0;var tce=(e,n,t=0)=>{!t||e.on("socket",s=>{if(s.connecting){let r=setTimeout(()=>{e.destroy(),n(Object.assign(new Error(`Socket timed out without establishing a connection within ${t} ms`),{name:"TimeoutError"}))},t);s.on("connect",()=>{clearTimeout(r)})}})};Pf.setConnectionTimeout=tce});var Cj=u(Af=>{"use strict";Object.defineProperty(Af,"__esModule",{value:!0});Af.setSocketTimeout=void 0;var nce=(e,n,t=0)=>{e.setTimeout(t,()=>{e.destroy(),n(Object.assign(new Error(`Connection timed out after ${t} ms`),{name:"TimeoutError"}))})};Af.setSocketTimeout=nce});var jb=u(xf=>{"use strict";Object.defineProperty(xf,"__esModule",{value:!0});xf.writeRequestBody=void 0;var sce=require("stream");function rce(e,n){(n.headers.Expect||n.headers.expect)==="100-continue"?e.on("continue",()=>{vj(e,n.body)}):vj(e,n.body)}xf.writeRequestBody=rce;function vj(e,n){n instanceof sce.Readable?n.pipe(e):n?e.end(Buffer.from(n)):e.end()}});var xj=u(bf=>{"use strict";Object.defineProperty(bf,"__esModule",{value:!0});bf.NodeHttpHandler=void 0;var ice=gt(),oce=Db(),Pj=require("http"),Aj=require("https"),ace=wj(),cce=Tb(),lce=Ej(),dce=Cj(),uce=jb(),Mb=class{constructor(n){this.metadata={handlerProtocol:"http/1.1"},this.configProvider=new Promise((t,s)=>{typeof n=="function"?n().then(r=>{t(this.resolveDefaultConfig(r))}).catch(s):t(this.resolveDefaultConfig(n))})}resolveDefaultConfig(n){let{connectionTimeout:t,socketTimeout:s,httpAgent:r,httpsAgent:i}=n||{},a=!0,o=50;return{connectionTimeout:t,socketTimeout:s,httpAgent:r||new Pj.Agent({keepAlive:a,maxSockets:o}),httpsAgent:i||new Aj.Agent({keepAlive:a,maxSockets:o})}}destroy(){var n,t,s,r;(t=(n=this.config)===null||n===void 0?void 0:n.httpAgent)===null||t===void 0||t.destroy(),(r=(s=this.config)===null||s===void 0?void 0:s.httpsAgent)===null||r===void 0||r.destroy()}async handle(n,{abortSignal:t}={}){return this.config||(this.config=await this.configProvider),new Promise((s,r)=>{if(!this.config)throw new Error("Node HTTP request handler config is not resolved");if(t?.aborted){let d=new Error("Request aborted");d.name="AbortError",r(d);return}let i=n.protocol==="https:",a=(0,oce.buildQueryString)(n.query||{}),o={headers:n.headers,host:n.hostname,method:n.method,path:a?`${n.path}?${a}`:n.path,port:n.port,agent:i?this.config.httpsAgent:this.config.httpAgent},l=(i?Aj.request:Pj.request)(o,d=>{let h=new ice.HttpResponse({statusCode:d.statusCode||-1,headers:(0,cce.getTransformedHeaders)(d.headers),body:d});s({response:h})});l.on("error",d=>{ace.NODEJS_TIMEOUT_ERROR_CODES.includes(d.code)?r(Object.assign(d,{name:"TimeoutError"})):r(d)}),(0,lce.setConnectionTimeout)(l,r,this.config.connectionTimeout),(0,dce.setSocketTimeout)(l,r,this.config.socketTimeout),t&&(t.onabort=()=>{l.abort();let d=new Error("Request aborted");d.name="AbortError",r(d)}),(0,uce.writeRequestBody)(l,n)})}};bf.NodeHttpHandler=Mb});var bj=u(If=>{"use strict";Object.defineProperty(If,"__esModule",{value:!0});If.NodeHttp2Handler=void 0;var mce=gt(),pce=Db(),Ob=require("http2"),gce=Tb(),yce=jb(),Bb=class{constructor(n){this.metadata={handlerProtocol:"h2"},this.configProvider=new Promise((t,s)=>{typeof n=="function"?n().then(r=>{t(r||{})}).catch(s):t(n||{})}),this.sessionCache=new Map}destroy(){for(let n of this.sessionCache.values())n.forEach(t=>this.destroySession(t));this.sessionCache.clear()}async handle(n,{abortSignal:t}={}){this.config||(this.config=await this.configProvider);let{requestTimeout:s,disableConcurrentStreams:r}=this.config;return new Promise((i,a)=>{let o=!1;if(t?.aborted){o=!0;let $e=new Error("Request aborted");$e.name="AbortError",a($e);return}let{hostname:c,method:l,port:d,protocol:h,path:v,query:z}=n,q=`${h}//${c}${d?`:${d}`:""}`,T=this.getSession(q,r||!1),U=$e=>{r&&this.destroySession(T),o=!0,a($e)},Le=(0,pce.buildQueryString)(z||{}),Ue=T.request({...n.headers,[Ob.constants.HTTP2_HEADER_PATH]:Le?`${v}?${Le}`:v,[Ob.constants.HTTP2_HEADER_METHOD]:l});T.ref(),Ue.on("response",$e=>{let _n=new mce.HttpResponse({statusCode:$e[":status"]||-1,headers:(0,gce.getTransformedHeaders)($e),body:Ue});o=!0,i({response:_n}),r&&(T.close(),this.deleteSessionFromCache(q,T))}),s&&Ue.setTimeout(s,()=>{Ue.close();let $e=new Error(`Stream timed out because of no activity for ${s} ms`);$e.name="TimeoutError",U($e)}),t&&(t.onabort=()=>{Ue.close();let $e=new Error("Request aborted");$e.name="AbortError",U($e)}),Ue.on("frameError",($e,_n,ag)=>{U(new Error(`Frame type id ${$e} in stream id ${ag} has failed with code ${_n}.`))}),Ue.on("error",U),Ue.on("aborted",()=>{U(new Error(`HTTP/2 stream is abnormally aborted in mid-communication with result code ${Ue.rstCode}.`))}),Ue.on("close",()=>{T.unref(),r&&T.destroy(),o||U(new Error("Unexpected error: http2 request did not get a response"))}),(0,yce.writeRequestBody)(Ue,n)})}getSession(n,t){var s;let r=this.sessionCache,i=r.get(n)||[];if(i.length>0&&!t)return i[0];let a=(0,Ob.connect)(n);a.unref();let o=()=>{this.destroySession(a),this.deleteSessionFromCache(n,a)};return a.on("goaway",o),a.on("error",o),a.on("frameError",o),a.on("close",()=>this.deleteSessionFromCache(n,a)),!((s=this.config)===null||s===void 0)&&s.sessionTimeout&&a.setTimeout(this.config.sessionTimeout,o),i.push(a),r.set(n,i),a}destroySession(n){n.destroyed||n.destroy()}deleteSessionFromCache(n,t){let s=this.sessionCache.get(n)||[];!s.includes(t)||this.sessionCache.set(n,s.filter(r=>r!==t))}};If.NodeHttp2Handler=Bb});var Ij=u(kf=>{"use strict";Object.defineProperty(kf,"__esModule",{value:!0});kf.Collector=void 0;var _ce=require("stream"),Gb=class extends _ce.Writable{constructor(){super(...arguments),this.bufferedBytes=[]}_write(n,t,s){this.bufferedBytes.push(n),s()}};kf.Collector=Gb});var kj=u(Rf=>{"use strict";Object.defineProperty(Rf,"__esModule",{value:!0});Rf.streamCollector=void 0;var fce=Ij(),Sce=e=>new Promise((n,t)=>{let s=new fce.Collector;e.pipe(s),e.on("error",r=>{s.end(),t(r)}),s.on("error",t),s.on("finish",function(){let r=new Uint8Array(Buffer.concat(this.bufferedBytes));n(r)})});Rf.streamCollector=Sce});var Ks=u(ec=>{"use strict";Object.defineProperty(ec,"__esModule",{value:!0});var Ub=X();Ub.__exportStar(xj(),ec);Ub.__exportStar(bj(),ec);Ub.__exportStar(kj(),ec)});var Nj=u(Nf=>{"use strict";Object.defineProperty(Nf,"__esModule",{value:!0});Nf.calculateBodyLength=void 0;var Rj=require("fs"),hce=e=>{if(!e)return 0;if(typeof e=="string")return Buffer.from(e).length;if(typeof e.byteLength=="number")return e.byteLength;if(typeof e.size=="number")return e.size;if(typeof e.path=="string"||Buffer.isBuffer(e.path))return(0,Rj.lstatSync)(e.path).size;if(typeof e.fd=="number")return(0,Rj.fstatSync)(e.fd).size;throw new Error(`Body Length computation failed for ${e}`)};Nf.calculateBodyLength=hce});var Mr=u(Xb=>{"use strict";Object.defineProperty(Xb,"__esModule",{value:!0});var wce=X();wce.__exportStar(Nj(),Xb)});var zj=u((zf,$b)=>{"use strict";Object.defineProperty(zf,"__esModule",{value:!0});zf.isCrtAvailable=void 0;var Ece=()=>{try{return typeof require=="function"&&typeof $b<"u"&&$b.require&&require("aws-crt")?["md/crt-avail"]:null}catch{return null}};zf.isCrtAvailable=Ece});var Or=u(Ss=>{"use strict";Object.defineProperty(Ss,"__esModule",{value:!0});Ss.defaultUserAgent=Ss.UA_APP_ID_INI_NAME=Ss.UA_APP_ID_ENV_NAME=void 0;var Cce=Qn(),qj=require("os"),Hb=require("process"),vce=zj();Ss.UA_APP_ID_ENV_NAME="AWS_SDK_UA_APP_ID";Ss.UA_APP_ID_INI_NAME="sdk-ua-app-id";var Pce=({serviceId:e,clientVersion:n})=>{let t=[["aws-sdk-js",n],[`os/${(0,qj.platform)()}`,(0,qj.release)()],["lang/js"],["md/nodejs",`${Hb.versions.node}`]],s=(0,vce.isCrtAvailable)();s&&t.push(s),e&&t.push([`api/${e}`,n]),Hb.env.AWS_EXECUTION_ENV&&t.push([`exec-env/${Hb.env.AWS_EXECUTION_ENV}`]);let r=(0,Cce.loadConfig)({environmentVariableSelector:a=>a[Ss.UA_APP_ID_ENV_NAME],configFileSelector:a=>a[Ss.UA_APP_ID_INI_NAME],default:void 0})(),i;return async()=>{if(!i){let a=await r;i=a?[...t,[`app/${a}`]]:[...t]}return i}};Ss.defaultUserAgent=Pce});var Lj=u(qf=>{"use strict";Object.defineProperty(qf,"__esModule",{value:!0});qf.fromBase64=void 0;var Ace=Si(),xce=/^[A-Za-z0-9+/]*={0,2}$/,bce=e=>{if(e.length*3%4!==0)throw new TypeError("Incorrect padding on base64 string.");if(!xce.exec(e))throw new TypeError("Invalid base64 string.");let n=(0,Ace.fromString)(e,"base64");return new Uint8Array(n.buffer,n.byteOffset,n.byteLength)};qf.fromBase64=bce});var Fj=u(Lf=>{"use strict";Object.defineProperty(Lf,"__esModule",{value:!0});Lf.toBase64=void 0;var Ice=Si(),kce=e=>(0,Ice.fromArrayBuffer)(e.buffer,e.byteOffset,e.byteLength).toString("base64");Lf.toBase64=kce});var Br=u(Ff=>{"use strict";Object.defineProperty(Ff,"__esModule",{value:!0});var Dj=X();Dj.__exportStar(Lj(),Ff);Dj.__exportStar(Fj(),Ff)});var Tj=u((jgt,Rce)=>{Rce.exports={partitions:[{id:"aws",outputs:{dnsSuffix:"amazonaws.com",dualStackDnsSuffix:"api.aws",name:"aws",supportsDualStack:!0,supportsFIPS:!0},regionRegex:"^(us|eu|ap|sa|ca|me|af)\\-\\w+\\-\\d+$",regions:{"af-south-1":{description:"Africa (Cape Town)"},"ap-east-1":{description:"Asia Pacific (Hong Kong)"},"ap-northeast-1":{description:"Asia Pacific (Tokyo)"},"ap-northeast-2":{description:"Asia Pacific (Seoul)"},"ap-northeast-3":{description:"Asia Pacific (Osaka)"},"ap-south-1":{description:"Asia Pacific (Mumbai)"},"ap-south-2":{description:"Asia Pacific (Hyderabad)"},"ap-southeast-1":{description:"Asia Pacific (Singapore)"},"ap-southeast-2":{description:"Asia Pacific (Sydney)"},"ap-southeast-3":{description:"Asia Pacific (Jakarta)"},"ap-southeast-4":{description:"Asia Pacific (Melbourne)"},"aws-global":{description:"AWS Standard global region"},"ca-central-1":{description:"Canada (Central)"},"eu-central-1":{description:"Europe (Frankfurt)"},"eu-central-2":{description:"Europe (Zurich)"},"eu-north-1":{description:"Europe (Stockholm)"},"eu-south-1":{description:"Europe (Milan)"},"eu-south-2":{description:"Europe (Spain)"},"eu-west-1":{description:"Europe (Ireland)"},"eu-west-2":{description:"Europe (London)"},"eu-west-3":{description:"Europe (Paris)"},"me-central-1":{description:"Middle East (UAE)"},"me-south-1":{description:"Middle East (Bahrain)"},"sa-east-1":{description:"South America (Sao Paulo)"},"us-east-1":{description:"US East (N. Virginia)"},"us-east-2":{description:"US East (Ohio)"},"us-west-1":{description:"US West (N. California)"},"us-west-2":{description:"US West (Oregon)"}}},{id:"aws-cn",outputs:{dnsSuffix:"amazonaws.com.cn",dualStackDnsSuffix:"api.amazonwebservices.com.cn",name:"aws-cn",supportsDualStack:!0,supportsFIPS:!0},regionRegex:"^cn\\-\\w+\\-\\d+$",regions:{"aws-cn-global":{description:"AWS China global region"},"cn-north-1":{description:"China (Beijing)"},"cn-northwest-1":{description:"China (Ningxia)"}}},{id:"aws-us-gov",outputs:{dnsSuffix:"amazonaws.com",dualStackDnsSuffix:"api.aws",name:"aws-us-gov",supportsDualStack:!0,supportsFIPS:!0},regionRegex:"^us\\-gov\\-\\w+\\-\\d+$",regions:{"aws-us-gov-global":{description:"AWS GovCloud (US) global region"},"us-gov-east-1":{description:"AWS GovCloud (US-East)"},"us-gov-west-1":{description:"AWS GovCloud (US-West)"}}},{id:"aws-iso",outputs:{dnsSuffix:"c2s.ic.gov",dualStackDnsSuffix:"c2s.ic.gov",name:"aws-iso",supportsDualStack:!1,supportsFIPS:!0},regionRegex:"^us\\-iso\\-\\w+\\-\\d+$",regions:{"aws-iso-global":{description:"AWS ISO (US) global region"},"us-iso-east-1":{description:"US ISO East"},"us-iso-west-1":{description:"US ISO WEST"}}},{id:"aws-iso-b",outputs:{dnsSuffix:"sc2s.sgov.gov",dualStackDnsSuffix:"sc2s.sgov.gov",name:"aws-iso-b",supportsDualStack:!1,supportsFIPS:!0},regionRegex:"^us\\-isob\\-\\w+\\-\\d+$",regions:{"aws-iso-b-global":{description:"AWS ISOB (US) global region"},"us-isob-east-1":{description:"US ISOB East (Ohio)"}}}],version:"1.1"}});var Wb=u(Df=>{"use strict";Object.defineProperty(Df,"__esModule",{value:!0});Df.partition=void 0;var Nce=X(),zce=Nce.__importDefault(Tj()),{partitions:Vb}=zce.default,jj=Vb.find(e=>e.id==="aws"),qce=e=>{for(let n of Vb){let{regions:t,outputs:s}=n;for(let[r,i]of Object.entries(t))if(r===e)return{...s,...i}}for(let n of Vb){let{regionRegex:t,outputs:s}=n;if(new RegExp(t).test(e))return{...s}}if(!jj)throw new Error("Provided region was not found in the partition array or regex, and default partition with id 'aws' doesn't exist.");return{...jj.outputs}};Df.partition=qce});var Mj=u(Tf=>{"use strict";Object.defineProperty(Tf,"__esModule",{value:!0});Tf.debugId=void 0;Tf.debugId="endpoints"});var Oj=u(jf=>{"use strict";Object.defineProperty(jf,"__esModule",{value:!0});jf.toDebugString=void 0;function Kb(e){return typeof e!="object"||e==null?e:"ref"in e?`$${Kb(e.ref)}`:"fn"in e?`${e.fn}(${(e.argv||[]).map(Kb).join(", ")})`:JSON.stringify(e,null,2)}jf.toDebugString=Kb});var tc=u(Mf=>{"use strict";Object.defineProperty(Mf,"__esModule",{value:!0});var Bj=X();Bj.__exportStar(Mj(),Mf);Bj.__exportStar(Oj(),Mf)});var Gj=u(Of=>{"use strict";Object.defineProperty(Of,"__esModule",{value:!0});Of.EndpointError=void 0;var Qb=class extends Error{constructor(n){super(n),this.name="EndpointError"}};Of.EndpointError=Qb});var Xj=u(Uj=>{"use strict";Object.defineProperty(Uj,"__esModule",{value:!0})});var Hj=u($j=>{"use strict";Object.defineProperty($j,"__esModule",{value:!0})});var Wj=u(Vj=>{"use strict";Object.defineProperty(Vj,"__esModule",{value:!0})});var Qj=u(Kj=>{"use strict";Object.defineProperty(Kj,"__esModule",{value:!0})});var Yj=u(Jj=>{"use strict";Object.defineProperty(Jj,"__esModule",{value:!0})});var Dn=u(Gr=>{"use strict";Object.defineProperty(Gr,"__esModule",{value:!0});var uo=X();uo.__exportStar(Gj(),Gr);uo.__exportStar(Xj(),Gr);uo.__exportStar(Hj(),Gr);uo.__exportStar(Wj(),Gr);uo.__exportStar(Qj(),Gr);uo.__exportStar(Yj(),Gr)});var Jb=u(Bf=>{"use strict";Object.defineProperty(Bf,"__esModule",{value:!0});Bf.isIpAddress=void 0;var Lce=new RegExp("^(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)){3}$"),Fce=e=>Lce.test(e)||e.startsWith("[")&&e.endsWith("]");Bf.isIpAddress=Fce});var Yb=u(nc=>{"use strict";Object.defineProperty(nc,"__esModule",{value:!0});nc.isValidHostLabel=void 0;var Dce=new RegExp("^(?!.*-$)(?!-)[a-zA-Z0-9-]{1,63}$"),Tce=(e,n=!1)=>{if(!n)return Dce.test(e);let t=e.split(".");for(let s of t)if(!(0,nc.isValidHostLabel)(s))return!1;return!0};nc.isValidHostLabel=Tce});var Zj=u(sc=>{"use strict";Object.defineProperty(sc,"__esModule",{value:!0});sc.isVirtualHostableS3Bucket=void 0;var jce=Jb(),Mce=Yb(),Oce=(e,n=!1)=>{if(n){for(let t of e.split("."))if(!(0,sc.isVirtualHostableS3Bucket)(t))return!1;return!0}return!(!(0,Mce.isValidHostLabel)(e)||e.length<3||e.length>63||e!==e.toLowerCase()||(0,jce.isIpAddress)(e))};sc.isVirtualHostableS3Bucket=Oce});var eM=u(Gf=>{"use strict";Object.defineProperty(Gf,"__esModule",{value:!0});Gf.parseArn=void 0;var Bce=e=>{let n=e.split(":");if(n.length<6)return null;let[t,s,r,i,a,...o]=n;return t!=="arn"||s===""||r===""||o[0]===""?null:{partition:s,service:r,region:i,accountId:a,resourceId:o[0].includes("/")?o[0].split("/"):o}};Gf.parseArn=Bce});var tM=u(rc=>{"use strict";Object.defineProperty(rc,"__esModule",{value:!0});var Zb=X();Zb.__exportStar(Zj(),rc);Zb.__exportStar(eM(),rc);Zb.__exportStar(Wb(),rc)});var nM=u(Uf=>{"use strict";Object.defineProperty(Uf,"__esModule",{value:!0});Uf.booleanEquals=void 0;var Gce=(e,n)=>e===n;Uf.booleanEquals=Gce});var rM=u(Xf=>{"use strict";Object.defineProperty(Xf,"__esModule",{value:!0});Xf.getAttrPathList=void 0;var sM=Dn(),Uce=e=>{let n=e.split("."),t=[];for(let s of n){let r=s.indexOf("[");if(r!==-1){if(s.indexOf("]")!==s.length-1)throw new sM.EndpointError(`Path: '${e}' does not end with ']'`);let i=s.slice(r+1,-1);if(Number.isNaN(parseInt(i)))throw new sM.EndpointError(`Invalid array index: '${i}' in path: '${e}'`);r!==0&&t.push(s.slice(0,r)),t.push(i)}else t.push(s)}return t};Xf.getAttrPathList=Uce});var iM=u($f=>{"use strict";Object.defineProperty($f,"__esModule",{value:!0});$f.getAttr=void 0;var Xce=Dn(),$ce=rM(),Hce=(e,n)=>(0,$ce.getAttrPathList)(n).reduce((t,s)=>{if(typeof t!="object")throw new Xce.EndpointError(`Index '${s}' in '${n}' not found in '${JSON.stringify(e)}'`);return Array.isArray(t)?t[parseInt(s)]:t[s]},e);$f.getAttr=Hce});var oM=u(Hf=>{"use strict";Object.defineProperty(Hf,"__esModule",{value:!0});Hf.isSet=void 0;var Vce=e=>e!=null;Hf.isSet=Vce});var aM=u(Vf=>{"use strict";Object.defineProperty(Vf,"__esModule",{value:!0});Vf.not=void 0;var Wce=e=>!e;Vf.not=Wce});var lM=u(cM=>{"use strict";Object.defineProperty(cM,"__esModule",{value:!0})});var dM=u(ic=>{"use strict";Object.defineProperty(ic,"__esModule",{value:!0});ic.HttpAuthLocation=void 0;var Kce;(function(e){e.HEADER="header",e.QUERY="query"})(Kce=ic.HttpAuthLocation||(ic.HttpAuthLocation={}))});var mM=u(uM=>{"use strict";Object.defineProperty(uM,"__esModule",{value:!0})});var gM=u(pM=>{"use strict";Object.defineProperty(pM,"__esModule",{value:!0})});var _M=u(yM=>{"use strict";Object.defineProperty(yM,"__esModule",{value:!0})});var SM=u(fM=>{"use strict";Object.defineProperty(fM,"__esModule",{value:!0})});var wM=u(hM=>{"use strict";Object.defineProperty(hM,"__esModule",{value:!0})});var EM=u(oc=>{"use strict";Object.defineProperty(oc,"__esModule",{value:!0});oc.HostAddressType=void 0;var Qce;(function(e){e.AAAA="AAAA",e.A="A"})(Qce=oc.HostAddressType||(oc.HostAddressType={}))});var CM=u(ac=>{"use strict";Object.defineProperty(ac,"__esModule",{value:!0});ac.EndpointURLScheme=void 0;var Jce;(function(e){e.HTTP="http",e.HTTPS="https"})(Jce=ac.EndpointURLScheme||(ac.EndpointURLScheme={}))});var PM=u(vM=>{"use strict";Object.defineProperty(vM,"__esModule",{value:!0})});var xM=u(AM=>{"use strict";Object.defineProperty(AM,"__esModule",{value:!0})});var IM=u(bM=>{"use strict";Object.defineProperty(bM,"__esModule",{value:!0})});var RM=u(kM=>{"use strict";Object.defineProperty(kM,"__esModule",{value:!0})});var zM=u(NM=>{"use strict";Object.defineProperty(NM,"__esModule",{value:!0})});var LM=u(qM=>{"use strict";Object.defineProperty(qM,"__esModule",{value:!0})});var DM=u(FM=>{"use strict";Object.defineProperty(FM,"__esModule",{value:!0})});var TM=u(bi=>{"use strict";Object.defineProperty(bi,"__esModule",{value:!0});var cc=X();cc.__exportStar(IM(),bi);cc.__exportStar(RM(),bi);cc.__exportStar(zM(),bi);cc.__exportStar(LM(),bi);cc.__exportStar(DM(),bi)});var MM=u(jM=>{"use strict";Object.defineProperty(jM,"__esModule",{value:!0})});var BM=u(OM=>{"use strict";Object.defineProperty(OM,"__esModule",{value:!0})});var UM=u(GM=>{"use strict";Object.defineProperty(GM,"__esModule",{value:!0})});var $M=u(XM=>{"use strict";Object.defineProperty(XM,"__esModule",{value:!0})});var VM=u(HM=>{"use strict";Object.defineProperty(HM,"__esModule",{value:!0})});var KM=u(WM=>{"use strict";Object.defineProperty(WM,"__esModule",{value:!0})});var JM=u(QM=>{"use strict";Object.defineProperty(QM,"__esModule",{value:!0})});var ZM=u(YM=>{"use strict";Object.defineProperty(YM,"__esModule",{value:!0})});var tO=u(eO=>{"use strict";Object.defineProperty(eO,"__esModule",{value:!0})});var sO=u(nO=>{"use strict";Object.defineProperty(nO,"__esModule",{value:!0})});var iO=u(rO=>{"use strict";Object.defineProperty(rO,"__esModule",{value:!0})});var aO=u(oO=>{"use strict";Object.defineProperty(oO,"__esModule",{value:!0})});var lO=u(cO=>{"use strict";Object.defineProperty(cO,"__esModule",{value:!0})});var uO=u(dO=>{"use strict";Object.defineProperty(dO,"__esModule",{value:!0})});var pO=u(mO=>{"use strict";Object.defineProperty(mO,"__esModule",{value:!0})});var gO=u(Ye=>{"use strict";Object.defineProperty(Ye,"__esModule",{value:!0});var tt=X();tt.__exportStar(lM(),Ye);tt.__exportStar(dM(),Ye);tt.__exportStar(mM(),Ye);tt.__exportStar(gM(),Ye);tt.__exportStar(_M(),Ye);tt.__exportStar(SM(),Ye);tt.__exportStar(wM(),Ye);tt.__exportStar(EM(),Ye);tt.__exportStar(CM(),Ye);tt.__exportStar(PM(),Ye);tt.__exportStar(xM(),Ye);tt.__exportStar(TM(),Ye);tt.__exportStar(MM(),Ye);tt.__exportStar(BM(),Ye);tt.__exportStar(UM(),Ye);tt.__exportStar($M(),Ye);tt.__exportStar(VM(),Ye);tt.__exportStar(KM(),Ye);tt.__exportStar(JM(),Ye);tt.__exportStar(ZM(),Ye);tt.__exportStar(tO(),Ye);tt.__exportStar(sO(),Ye);tt.__exportStar(iO(),Ye);tt.__exportStar(aO(),Ye);tt.__exportStar(lO(),Ye);tt.__exportStar(uO(),Ye);tt.__exportStar(pO(),Ye)});var yO=u(Wf=>{"use strict";Object.defineProperty(Wf,"__esModule",{value:!0});Wf.parseURL=void 0;var t1=gO(),Yce=Jb(),e1={[t1.EndpointURLScheme.HTTP]:80,[t1.EndpointURLScheme.HTTPS]:443},Zce=e=>{let n=(()=>{try{if(e instanceof URL)return e;if(typeof e=="object"&&"hostname"in e){let{hostname:v,port:z,protocol:q="",path:T="",query:U={}}=e,Le=new URL(`${q}//${v}${z?`:${z}`:""}${T}`);return Le.search=Object.entries(U).map(([Ue,$e])=>`${Ue}=${$e}`).join("&"),Le}return new URL(e)}catch{return null}})();if(!n)return console.error(`Unable to parse ${JSON.stringify(e)} as a whatwg URL.`),null;let t=n.href,{host:s,hostname:r,pathname:i,protocol:a,search:o}=n;if(o)return null;let c=a.slice(0,-1);if(!Object.values(t1.EndpointURLScheme).includes(c))return null;let l=(0,Yce.isIpAddress)(r),d=t.includes(`${s}:${e1[c]}`)||typeof e=="string"&&e.includes(`${s}:${e1[c]}`),h=`${s}${d?`:${e1[c]}`:""}`;return{scheme:c,authority:h,path:i,normalizedPath:i.endsWith("/")?i:`${i}/`,isIp:l}};Wf.parseURL=Zce});var _O=u(Kf=>{"use strict";Object.defineProperty(Kf,"__esModule",{value:!0});Kf.stringEquals=void 0;var ele=(e,n)=>e===n;Kf.stringEquals=ele});var fO=u(Qf=>{"use strict";Object.defineProperty(Qf,"__esModule",{value:!0});Qf.substring=void 0;var tle=(e,n,t,s)=>n>=t||e.length{"use strict";Object.defineProperty(Jf,"__esModule",{value:!0});Jf.uriEncode=void 0;var nle=e=>encodeURIComponent(e).replace(/[!*'()]/g,n=>`%${n.charCodeAt(0).toString(16).toUpperCase()}`);Jf.uriEncode=nle});var n1=u(In=>{"use strict";Object.defineProperty(In,"__esModule",{value:!0});In.aws=void 0;var hs=X();In.aws=hs.__importStar(tM());hs.__exportStar(nM(),In);hs.__exportStar(iM(),In);hs.__exportStar(oM(),In);hs.__exportStar(Yb(),In);hs.__exportStar(aM(),In);hs.__exportStar(yO(),In);hs.__exportStar(_O(),In);hs.__exportStar(fO(),In);hs.__exportStar(SO(),In)});var s1=u(Yf=>{"use strict";Object.defineProperty(Yf,"__esModule",{value:!0});Yf.evaluateTemplate=void 0;var sle=n1(),rle=(e,n)=>{let t=[],s={...n.endpointParams,...n.referenceRecord},r=0;for(;r{"use strict";Object.defineProperty(Zf,"__esModule",{value:!0});Zf.getReferenceValue=void 0;var ile=({ref:e},n)=>({...n.endpointParams,...n.referenceRecord})[e];Zf.getReferenceValue=ile});var lc=u(eS=>{"use strict";Object.defineProperty(eS,"__esModule",{value:!0});eS.evaluateExpression=void 0;var ole=Dn(),ale=r1(),cle=s1(),lle=hO(),dle=(e,n,t)=>{if(typeof e=="string")return(0,cle.evaluateTemplate)(e,t);if(e.fn)return(0,ale.callFunction)(e,t);if(e.ref)return(0,lle.getReferenceValue)(e,t);throw new ole.EndpointError(`'${n}': ${String(e)} is not a string, function or reference.`)};eS.evaluateExpression=dle});var r1=u(tS=>{"use strict";Object.defineProperty(tS,"__esModule",{value:!0});tS.callFunction=void 0;var ule=X(),mle=ule.__importStar(n1()),ple=lc(),gle=({fn:e,argv:n},t)=>{let s=n.map(r=>["boolean","number"].includes(typeof r)?r:(0,ple.evaluateExpression)(r,"arg",t));return e.split(".").reduce((r,i)=>r[i],mle)(...s)};tS.callFunction=gle});var wO=u(nS=>{"use strict";Object.defineProperty(nS,"__esModule",{value:!0});nS.evaluateCondition=void 0;var i1=tc(),yle=Dn(),_le=r1(),fle=({assign:e,...n},t)=>{var s,r;if(e&&e in t.referenceRecord)throw new yle.EndpointError(`'${e}' is already defined in Reference Record.`);let i=(0,_le.callFunction)(n,t);return(r=(s=t.logger)===null||s===void 0?void 0:s.debug)===null||r===void 0||r.call(s,i1.debugId,`evaluateCondition: ${(0,i1.toDebugString)(n)} = ${(0,i1.toDebugString)(i)}`),{result:i===""?!0:!!i,...e!=null&&{toAssign:{name:e,value:i}}}};nS.evaluateCondition=fle});var rS=u(sS=>{"use strict";Object.defineProperty(sS,"__esModule",{value:!0});sS.evaluateConditions=void 0;var EO=tc(),Sle=wO(),hle=(e=[],n)=>{var t,s;let r={};for(let i of e){let{result:a,toAssign:o}=(0,Sle.evaluateCondition)(i,{...n,referenceRecord:{...n.referenceRecord,...r}});if(!a)return{result:a};o&&(r[o.name]=o.value,(s=(t=n.logger)===null||t===void 0?void 0:t.debug)===null||s===void 0||s.call(t,EO.debugId,`assign: ${o.name} := ${(0,EO.toDebugString)(o.value)}`))}return{result:!0,referenceRecord:r}};sS.evaluateConditions=hle});var CO=u(iS=>{"use strict";Object.defineProperty(iS,"__esModule",{value:!0});iS.getEndpointHeaders=void 0;var wle=Dn(),Ele=lc(),Cle=(e,n)=>Object.entries(e).reduce((t,[s,r])=>({...t,[s]:r.map(i=>{let a=(0,Ele.evaluateExpression)(i,"Header value entry",n);if(typeof a!="string")throw new wle.EndpointError(`Header '${s}' value '${a}' is not a string`);return a})}),{});iS.getEndpointHeaders=Cle});var PO=u(dc=>{"use strict";Object.defineProperty(dc,"__esModule",{value:!0});dc.getEndpointProperty=void 0;var vO=Dn(),vle=s1(),Ple=o1(),Ale=(e,n)=>{if(Array.isArray(e))return e.map(t=>(0,dc.getEndpointProperty)(t,n));switch(typeof e){case"string":return(0,vle.evaluateTemplate)(e,n);case"object":if(e===null)throw new vO.EndpointError(`Unexpected endpoint property: ${e}`);return(0,Ple.getEndpointProperties)(e,n);case"boolean":return e;default:throw new vO.EndpointError(`Unexpected endpoint property type: ${typeof e}`)}};dc.getEndpointProperty=Ale});var o1=u(oS=>{"use strict";Object.defineProperty(oS,"__esModule",{value:!0});oS.getEndpointProperties=void 0;var xle=PO(),ble=(e,n)=>Object.entries(e).reduce((t,[s,r])=>({...t,[s]:(0,xle.getEndpointProperty)(r,n)}),{});oS.getEndpointProperties=ble});var AO=u(aS=>{"use strict";Object.defineProperty(aS,"__esModule",{value:!0});aS.getEndpointUrl=void 0;var Ile=Dn(),kle=lc(),Rle=(e,n)=>{let t=(0,kle.evaluateExpression)(e,"Endpoint URL",n);if(typeof t=="string")try{return new URL(t)}catch(s){throw console.error(`Failed to construct URL with ${t}`,s),s}throw new Ile.EndpointError(`Endpoint URL must be a string, got ${typeof t}`)};aS.getEndpointUrl=Rle});var bO=u(cS=>{"use strict";Object.defineProperty(cS,"__esModule",{value:!0});cS.evaluateEndpointRule=void 0;var xO=tc(),Nle=rS(),zle=CO(),qle=o1(),Lle=AO(),Fle=(e,n)=>{var t,s;let{conditions:r,endpoint:i}=e,{result:a,referenceRecord:o}=(0,Nle.evaluateConditions)(r,n);if(!a)return;let c={...n,referenceRecord:{...n.referenceRecord,...o}},{url:l,properties:d,headers:h}=i;return(s=(t=n.logger)===null||t===void 0?void 0:t.debug)===null||s===void 0||s.call(t,xO.debugId,`Resolving endpoint from template: ${(0,xO.toDebugString)(i)}`),{...h!=null&&{headers:(0,zle.getEndpointHeaders)(h,c)},...d!=null&&{properties:(0,qle.getEndpointProperties)(d,c)},url:(0,Lle.getEndpointUrl)(l,c)}};cS.evaluateEndpointRule=Fle});var IO=u(lS=>{"use strict";Object.defineProperty(lS,"__esModule",{value:!0});lS.evaluateErrorRule=void 0;var Dle=Dn(),Tle=rS(),jle=lc(),Mle=(e,n)=>{let{conditions:t,error:s}=e,{result:r,referenceRecord:i}=(0,Tle.evaluateConditions)(t,n);if(!!r)throw new Dle.EndpointError((0,jle.evaluateExpression)(s,"Error",{...n,referenceRecord:{...n.referenceRecord,...i}}))};lS.evaluateErrorRule=Mle});var kO=u(dS=>{"use strict";Object.defineProperty(dS,"__esModule",{value:!0});dS.evaluateTreeRule=void 0;var Ole=rS(),Ble=a1(),Gle=(e,n)=>{let{conditions:t,rules:s}=e,{result:r,referenceRecord:i}=(0,Ole.evaluateConditions)(t,n);if(!!r)return(0,Ble.evaluateRules)(s,{...n,referenceRecord:{...n.referenceRecord,...i}})};dS.evaluateTreeRule=Gle});var a1=u(uS=>{"use strict";Object.defineProperty(uS,"__esModule",{value:!0});uS.evaluateRules=void 0;var RO=Dn(),Ule=bO(),Xle=IO(),$le=kO(),Hle=(e,n)=>{for(let t of e)if(t.type==="endpoint"){let s=(0,Ule.evaluateEndpointRule)(t,n);if(s)return s}else if(t.type==="error")(0,Xle.evaluateErrorRule)(t,n);else if(t.type==="tree"){let s=(0,$le.evaluateTreeRule)(t,n);if(s)return s}else throw new RO.EndpointError(`Unknown endpoint rule: ${t}`);throw new RO.EndpointError("Rules evaluation failed")};uS.evaluateRules=Hle});var NO=u(c1=>{"use strict";Object.defineProperty(c1,"__esModule",{value:!0});var Vle=X();Vle.__exportStar(a1(),c1)});var zO=u(pS=>{"use strict";Object.defineProperty(pS,"__esModule",{value:!0});pS.resolveEndpoint=void 0;var mS=tc(),Wle=Dn(),Kle=NO(),Qle=(e,n)=>{var t,s,r,i,a,o;let{endpointParams:c,logger:l}=n,{parameters:d,rules:h}=e;(s=(t=n.logger)===null||t===void 0?void 0:t.debug)===null||s===void 0||s.call(t,mS.debugId,`Initial EndpointParams: ${(0,mS.toDebugString)(c)}`);let v=Object.entries(d).filter(([,T])=>T.default!=null).map(([T,U])=>[T,U.default]);if(v.length>0)for(let[T,U]of v)c[T]=(r=c[T])!==null&&r!==void 0?r:U;let z=Object.entries(d).filter(([,T])=>T.required).map(([T])=>T);for(let T of z)if(c[T]==null)throw new Wle.EndpointError(`Missing required parameter: '${T}'`);let q=(0,Kle.evaluateRules)(h,{endpointParams:c,logger:l,referenceRecord:{}});if(!((i=n.endpointParams)===null||i===void 0)&&i.Endpoint)try{let T=new URL(n.endpointParams.Endpoint),{protocol:U,port:Le}=T;q.url.protocol=U,q.url.port=Le}catch{}return(o=(a=n.logger)===null||a===void 0?void 0:a.debug)===null||o===void 0||o.call(a,mS.debugId,`Resolved endpoint: ${(0,mS.toDebugString)(q)}`),q};pS.resolveEndpoint=Qle});var Ur=u(uc=>{"use strict";Object.defineProperty(uc,"__esModule",{value:!0});var l1=X();l1.__exportStar(Wb(),uc);l1.__exportStar(zO(),uc);l1.__exportStar(Dn(),uc)});var XO=u(gS=>{"use strict";Object.defineProperty(gS,"__esModule",{value:!0});gS.ruleSet=void 0;var OO="required",Qs="fn",Js="argv",mo="ref",d1="PartitionResult",ws="tree",mc="error",pc="endpoint",qO={[OO]:!1,type:"String"},LO={[OO]:!0,default:!1,type:"Boolean"},BO={[mo]:"Endpoint"},GO={[Qs]:"booleanEquals",[Js]:[{[mo]:"UseFIPS"},!0]},UO={[Qs]:"booleanEquals",[Js]:[{[mo]:"UseDualStack"},!0]},Es={},FO={[Qs]:"booleanEquals",[Js]:[!0,{[Qs]:"getAttr",[Js]:[{[mo]:d1},"supportsFIPS"]}]},DO={[Qs]:"booleanEquals",[Js]:[!0,{[Qs]:"getAttr",[Js]:[{[mo]:d1},"supportsDualStack"]}]},TO=[BO],jO=[GO],MO=[UO],Jle={version:"1.0",parameters:{Region:qO,UseDualStack:LO,UseFIPS:LO,Endpoint:qO},rules:[{conditions:[{[Qs]:"aws.partition",[Js]:[{[mo]:"Region"}],assign:d1}],type:ws,rules:[{conditions:[{[Qs]:"isSet",[Js]:TO},{[Qs]:"parseURL",[Js]:TO,assign:"url"}],type:ws,rules:[{conditions:jO,error:"Invalid Configuration: FIPS and custom endpoint are not supported",type:mc},{type:ws,rules:[{conditions:MO,error:"Invalid Configuration: Dualstack and custom endpoint are not supported",type:mc},{endpoint:{url:BO,properties:Es,headers:Es},type:pc}]}]},{conditions:[GO,UO],type:ws,rules:[{conditions:[FO,DO],type:ws,rules:[{endpoint:{url:"https://portal.sso-fips.{Region}.{PartitionResult#dualStackDnsSuffix}",properties:Es,headers:Es},type:pc}]},{error:"FIPS and DualStack are enabled, but this partition does not support one or both",type:mc}]},{conditions:jO,type:ws,rules:[{conditions:[FO],type:ws,rules:[{type:ws,rules:[{endpoint:{url:"https://portal.sso-fips.{Region}.{PartitionResult#dnsSuffix}",properties:Es,headers:Es},type:pc}]}]},{error:"FIPS is enabled but this partition does not support FIPS",type:mc}]},{conditions:MO,type:ws,rules:[{conditions:[DO],type:ws,rules:[{endpoint:{url:"https://portal.sso.{Region}.{PartitionResult#dualStackDnsSuffix}",properties:Es,headers:Es},type:pc}]},{error:"DualStack is enabled but this partition does not support DualStack",type:mc}]},{endpoint:{url:"https://portal.sso.{Region}.{PartitionResult#dnsSuffix}",properties:Es,headers:Es},type:pc}]}]};gS.ruleSet=Jle});var $O=u(yS=>{"use strict";Object.defineProperty(yS,"__esModule",{value:!0});yS.defaultEndpointResolver=void 0;var Yle=Ur(),Zle=XO(),ede=(e,n={})=>(0,Yle.resolveEndpoint)(Zle.ruleSet,{endpointParams:e,logger:n.logger});yS.defaultEndpointResolver=ede});var WO=u(_S=>{"use strict";Object.defineProperty(_S,"__esModule",{value:!0});_S.getRuntimeConfig=void 0;var tde=E(),nde=ts(),HO=Br(),VO=Sn(),sde=$O(),rde=e=>({apiVersion:"2019-06-10",base64Decoder:e?.base64Decoder??HO.fromBase64,base64Encoder:e?.base64Encoder??HO.toBase64,disableHostPrefix:e?.disableHostPrefix??!1,endpointProvider:e?.endpointProvider??sde.defaultEndpointResolver,logger:e?.logger??new tde.NoOpLogger,serviceId:e?.serviceId??"SSO",urlParser:e?.urlParser??nde.parseUrl,utf8Decoder:e?.utf8Decoder??VO.fromUtf8,utf8Encoder:e?.utf8Encoder??VO.toUtf8});_S.getRuntimeConfig=rde});var KO=u(En=>{"use strict";Object.defineProperty(En,"__esModule",{value:!0});En.IMDS_REGION_PATH=En.DEFAULTS_MODE_OPTIONS=En.ENV_IMDS_DISABLED=En.AWS_DEFAULT_REGION_ENV=En.AWS_REGION_ENV=En.AWS_EXECUTION_ENV=void 0;En.AWS_EXECUTION_ENV="AWS_EXECUTION_ENV";En.AWS_REGION_ENV="AWS_REGION";En.AWS_DEFAULT_REGION_ENV="AWS_DEFAULT_REGION";En.ENV_IMDS_DISABLED="AWS_EC2_METADATA_DISABLED";En.DEFAULTS_MODE_OPTIONS=["in-region","cross-region","mobile","standard","legacy"];En.IMDS_REGION_PATH="/latest/meta-data/placement/region"});var QO=u(fS=>{"use strict";Object.defineProperty(fS,"__esModule",{value:!0});fS.NODE_DEFAULTS_MODE_CONFIG_OPTIONS=void 0;var ide="AWS_DEFAULTS_MODE",ode="defaults_mode";fS.NODE_DEFAULTS_MODE_CONFIG_OPTIONS={environmentVariableSelector:e=>e[ide],configFileSelector:e=>e[ode],default:"legacy"}});var ZO=u(SS=>{"use strict";Object.defineProperty(SS,"__esModule",{value:!0});SS.resolveDefaultsModeConfig=void 0;var ade=tn(),JO=oo(),YO=Qn(),cde=Je(),Xr=KO(),lde=QO(),dde=({region:e=(0,YO.loadConfig)(ade.NODE_REGION_CONFIG_OPTIONS),defaultsMode:n=(0,YO.loadConfig)(lde.NODE_DEFAULTS_MODE_CONFIG_OPTIONS)}={})=>(0,cde.memoize)(async()=>{let t=typeof n=="function"?await n():n;switch(t?.toLowerCase()){case"auto":return ude(e);case"in-region":case"cross-region":case"mobile":case"standard":case"legacy":return Promise.resolve(t?.toLocaleLowerCase());case void 0:return Promise.resolve("legacy");default:throw new Error(`Invalid parameter for "defaultsMode", expect ${Xr.DEFAULTS_MODE_OPTIONS.join(", ")}, got ${t}`)}});SS.resolveDefaultsModeConfig=dde;var ude=async e=>{if(e){let n=typeof e=="function"?await e():e,t=await mde();return t?n===t?"in-region":"cross-region":"standard"}return"standard"},mde=async()=>{var e;if(process.env[Xr.AWS_EXECUTION_ENV]&&(process.env[Xr.AWS_REGION_ENV]||process.env[Xr.AWS_DEFAULT_REGION_ENV]))return(e=process.env[Xr.AWS_REGION_ENV])!==null&&e!==void 0?e:process.env[Xr.AWS_DEFAULT_REGION_ENV];if(!process.env[Xr.ENV_IMDS_DISABLED])try{let n=await(0,JO.getInstanceMetadataEndpoint)();return(await(0,JO.httpRequest)({...n,path:Xr.IMDS_REGION_PATH})).toString()}catch{}}});var $r=u(u1=>{"use strict";Object.defineProperty(u1,"__esModule",{value:!0});var pde=X();pde.__exportStar(ZO(),u1)});var nB=u(wS=>{"use strict";Object.defineProperty(wS,"__esModule",{value:!0});wS.getRuntimeConfig=void 0;var gde=X(),yde=gde.__importDefault(fj()),hS=tn(),_de=jr(),eB=un(),gc=Qn(),tB=Ks(),fde=Mr(),Sde=dn(),hde=Or(),wde=WO(),Ede=E(),Cde=$r(),vde=E(),Pde=e=>{(0,vde.emitWarningIfUnsupportedVersion)(process.version);let n=(0,Cde.resolveDefaultsModeConfig)(e),t=()=>n().then(Ede.loadConfigsForDefaultMode),s=(0,wde.getRuntimeConfig)(e);return{...s,...e,runtime:"node",defaultsMode:n,bodyLengthChecker:e?.bodyLengthChecker??fde.calculateBodyLength,defaultUserAgentProvider:e?.defaultUserAgentProvider??(0,hde.defaultUserAgent)({serviceId:s.serviceId,clientVersion:yde.default.version}),maxAttempts:e?.maxAttempts??(0,gc.loadConfig)(eB.NODE_MAX_ATTEMPT_CONFIG_OPTIONS),region:e?.region??(0,gc.loadConfig)(hS.NODE_REGION_CONFIG_OPTIONS,hS.NODE_REGION_CONFIG_FILE_OPTIONS),requestHandler:e?.requestHandler??new tB.NodeHttpHandler(t),retryMode:e?.retryMode??(0,gc.loadConfig)({...eB.NODE_RETRY_MODE_CONFIG_OPTIONS,default:async()=>(await t()).retryMode||Sde.DEFAULT_RETRY_MODE}),sha256:e?.sha256??_de.Hash.bind(null,"sha256"),streamCollector:e?.streamCollector??tB.streamCollector,useDualstackEndpoint:e?.useDualstackEndpoint??(0,gc.loadConfig)(hS.NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS),useFipsEndpoint:e?.useFipsEndpoint??(0,gc.loadConfig)(hS.NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS)}};wS.getRuntimeConfig=Pde});var yc=u(ES=>{"use strict";Object.defineProperty(ES,"__esModule",{value:!0});ES.SSOClient=void 0;var Ade=tn(),xde=fr(),bde=x(),sB=Sr(),Ide=hr(),kde=wr(),rB=un(),iB=xr(),Rde=E(),Nde=_j(),zde=nB(),m1=class extends Rde.Client{constructor(n){let t=(0,zde.getRuntimeConfig)(n),s=(0,Nde.resolveClientEndpointParameters)(t),r=(0,Ade.resolveRegionConfig)(s),i=(0,bde.resolveEndpointConfig)(r),a=(0,rB.resolveRetryConfig)(i),o=(0,sB.resolveHostHeaderConfig)(a),c=(0,iB.resolveUserAgentConfig)(o);super(c),this.config=c,this.middlewareStack.use((0,rB.getRetryPlugin)(this.config)),this.middlewareStack.use((0,xde.getContentLengthPlugin)(this.config)),this.middlewareStack.use((0,sB.getHostHeaderPlugin)(this.config)),this.middlewareStack.use((0,Ide.getLoggerPlugin)(this.config)),this.middlewareStack.use((0,kde.getRecursionDetectionPlugin)(this.config)),this.middlewareStack.use((0,iB.getUserAgentPlugin)(this.config))}destroy(){super.destroy()}};ES.SSOClient=m1});var vS=u(CS=>{"use strict";Object.defineProperty(CS,"__esModule",{value:!0});CS.SSO=void 0;var qde=Nb(),Lde=yf(),Fde=ff(),Dde=zb(),Tde=yc(),p1=class extends Tde.SSOClient{getRoleCredentials(n,t,s){let r=new qde.GetRoleCredentialsCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}listAccountRoles(n,t,s){let r=new Lde.ListAccountRolesCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}listAccounts(n,t,s){let r=new Fde.ListAccountsCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}logout(n,t,s){let r=new Dde.LogoutCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}};CS.SSO=p1});var oB=u(po=>{"use strict";Object.defineProperty(po,"__esModule",{value:!0});var PS=X();PS.__exportStar(Nb(),po);PS.__exportStar(yf(),po);PS.__exportStar(ff(),po);PS.__exportStar(zb(),po)});var aB=u(g1=>{"use strict";Object.defineProperty(g1,"__esModule",{value:!0});var jde=X();jde.__exportStar(xi(),g1)});var lB=u(cB=>{"use strict";Object.defineProperty(cB,"__esModule",{value:!0})});var dB=u(AS=>{"use strict";Object.defineProperty(AS,"__esModule",{value:!0});AS.paginateListAccountRoles=void 0;var Mde=yf(),Ode=vS(),Bde=yc(),Gde=async(e,n,...t)=>await e.send(new Mde.ListAccountRolesCommand(n),...t),Ude=async(e,n,...t)=>await e.listAccountRoles(n,...t);async function*Xde(e,n,...t){let s=e.startingToken||void 0,r=!0,i;for(;r;){if(n.nextToken=s,n.maxResults=e.pageSize,e.client instanceof Ode.SSO)i=await Ude(e.client,n,...t);else if(e.client instanceof Bde.SSOClient)i=await Gde(e.client,n,...t);else throw new Error("Invalid client, expected SSO | SSOClient");yield i;let a=s;s=i.nextToken,r=!!(s&&(!e.stopOnSameToken||s!==a))}return void 0}AS.paginateListAccountRoles=Xde});var uB=u(xS=>{"use strict";Object.defineProperty(xS,"__esModule",{value:!0});xS.paginateListAccounts=void 0;var $de=ff(),Hde=vS(),Vde=yc(),Wde=async(e,n,...t)=>await e.send(new $de.ListAccountsCommand(n),...t),Kde=async(e,n,...t)=>await e.listAccounts(n,...t);async function*Qde(e,n,...t){let s=e.startingToken||void 0,r=!0,i;for(;r;){if(n.nextToken=s,n.maxResults=e.pageSize,e.client instanceof Hde.SSO)i=await Kde(e.client,n,...t);else if(e.client instanceof Vde.SSOClient)i=await Wde(e.client,n,...t);else throw new Error("Invalid client, expected SSO | SSOClient");yield i;let a=s;s=i.nextToken,r=!!(s&&(!e.stopOnSameToken||s!==a))}return void 0}xS.paginateListAccounts=Qde});var mB=u(_c=>{"use strict";Object.defineProperty(_c,"__esModule",{value:!0});var y1=X();y1.__exportStar(lB(),_c);y1.__exportStar(dB(),_c);y1.__exportStar(uB(),_c)});var _1=u(Ys=>{"use strict";Object.defineProperty(Ys,"__esModule",{value:!0});Ys.SSOServiceException=void 0;var fc=X();fc.__exportStar(vS(),Ys);fc.__exportStar(yc(),Ys);fc.__exportStar(oB(),Ys);fc.__exportStar(aB(),Ys);fc.__exportStar(mB(),Ys);var Jde=ef();Object.defineProperty(Ys,"SSOServiceException",{enumerable:!0,get:function(){return Jde.SSOServiceException}})});var bS=u(go=>{"use strict";Object.defineProperty(go,"__esModule",{value:!0});go.REFRESH_MESSAGE=go.EXPIRE_WINDOW_MS=void 0;go.EXPIRE_WINDOW_MS=5*60*1e3;go.REFRESH_MESSAGE="To refresh this SSO session run 'aws sso login' with the corresponding profile."});var kS=u(IS=>{"use strict";Object.defineProperty(IS,"__esModule",{value:!0});IS.SSOOIDCServiceException=void 0;var Yde=E(),Sc=class extends Yde.ServiceException{constructor(n){super(n),Object.setPrototypeOf(this,Sc.prototype)}};IS.SSOOIDCServiceException=Sc});var yo=u(De=>{"use strict";Object.defineProperty(De,"__esModule",{value:!0});De.StartDeviceAuthorizationResponseFilterSensitiveLog=De.StartDeviceAuthorizationRequestFilterSensitiveLog=De.RegisterClientResponseFilterSensitiveLog=De.RegisterClientRequestFilterSensitiveLog=De.CreateTokenResponseFilterSensitiveLog=De.CreateTokenRequestFilterSensitiveLog=De.InvalidClientMetadataException=De.UnsupportedGrantTypeException=De.UnauthorizedClientException=De.SlowDownException=De.InvalidScopeException=De.InvalidRequestException=De.InvalidGrantException=De.InvalidClientException=De.InternalServerException=De.ExpiredTokenException=De.AuthorizationPendingException=De.AccessDeniedException=void 0;var Tn=kS(),hc=class extends Tn.SSOOIDCServiceException{constructor(n){super({name:"AccessDeniedException",$fault:"client",...n}),this.name="AccessDeniedException",this.$fault="client",Object.setPrototypeOf(this,hc.prototype),this.error=n.error,this.error_description=n.error_description}};De.AccessDeniedException=hc;var wc=class extends Tn.SSOOIDCServiceException{constructor(n){super({name:"AuthorizationPendingException",$fault:"client",...n}),this.name="AuthorizationPendingException",this.$fault="client",Object.setPrototypeOf(this,wc.prototype),this.error=n.error,this.error_description=n.error_description}};De.AuthorizationPendingException=wc;var Ec=class extends Tn.SSOOIDCServiceException{constructor(n){super({name:"ExpiredTokenException",$fault:"client",...n}),this.name="ExpiredTokenException",this.$fault="client",Object.setPrototypeOf(this,Ec.prototype),this.error=n.error,this.error_description=n.error_description}};De.ExpiredTokenException=Ec;var Cc=class extends Tn.SSOOIDCServiceException{constructor(n){super({name:"InternalServerException",$fault:"server",...n}),this.name="InternalServerException",this.$fault="server",Object.setPrototypeOf(this,Cc.prototype),this.error=n.error,this.error_description=n.error_description}};De.InternalServerException=Cc;var vc=class extends Tn.SSOOIDCServiceException{constructor(n){super({name:"InvalidClientException",$fault:"client",...n}),this.name="InvalidClientException",this.$fault="client",Object.setPrototypeOf(this,vc.prototype),this.error=n.error,this.error_description=n.error_description}};De.InvalidClientException=vc;var Pc=class extends Tn.SSOOIDCServiceException{constructor(n){super({name:"InvalidGrantException",$fault:"client",...n}),this.name="InvalidGrantException",this.$fault="client",Object.setPrototypeOf(this,Pc.prototype),this.error=n.error,this.error_description=n.error_description}};De.InvalidGrantException=Pc;var Ac=class extends Tn.SSOOIDCServiceException{constructor(n){super({name:"InvalidRequestException",$fault:"client",...n}),this.name="InvalidRequestException",this.$fault="client",Object.setPrototypeOf(this,Ac.prototype),this.error=n.error,this.error_description=n.error_description}};De.InvalidRequestException=Ac;var xc=class extends Tn.SSOOIDCServiceException{constructor(n){super({name:"InvalidScopeException",$fault:"client",...n}),this.name="InvalidScopeException",this.$fault="client",Object.setPrototypeOf(this,xc.prototype),this.error=n.error,this.error_description=n.error_description}};De.InvalidScopeException=xc;var bc=class extends Tn.SSOOIDCServiceException{constructor(n){super({name:"SlowDownException",$fault:"client",...n}),this.name="SlowDownException",this.$fault="client",Object.setPrototypeOf(this,bc.prototype),this.error=n.error,this.error_description=n.error_description}};De.SlowDownException=bc;var Ic=class extends Tn.SSOOIDCServiceException{constructor(n){super({name:"UnauthorizedClientException",$fault:"client",...n}),this.name="UnauthorizedClientException",this.$fault="client",Object.setPrototypeOf(this,Ic.prototype),this.error=n.error,this.error_description=n.error_description}};De.UnauthorizedClientException=Ic;var kc=class extends Tn.SSOOIDCServiceException{constructor(n){super({name:"UnsupportedGrantTypeException",$fault:"client",...n}),this.name="UnsupportedGrantTypeException",this.$fault="client",Object.setPrototypeOf(this,kc.prototype),this.error=n.error,this.error_description=n.error_description}};De.UnsupportedGrantTypeException=kc;var Rc=class extends Tn.SSOOIDCServiceException{constructor(n){super({name:"InvalidClientMetadataException",$fault:"client",...n}),this.name="InvalidClientMetadataException",this.$fault="client",Object.setPrototypeOf(this,Rc.prototype),this.error=n.error,this.error_description=n.error_description}};De.InvalidClientMetadataException=Rc;var Zde=e=>({...e});De.CreateTokenRequestFilterSensitiveLog=Zde;var eue=e=>({...e});De.CreateTokenResponseFilterSensitiveLog=eue;var tue=e=>({...e});De.RegisterClientRequestFilterSensitiveLog=tue;var nue=e=>({...e});De.RegisterClientResponseFilterSensitiveLog=nue;var sue=e=>({...e});De.StartDeviceAuthorizationRequestFilterSensitiveLog=sue;var rue=e=>({...e});De.StartDeviceAuthorizationResponseFilterSensitiveLog=rue});var NS=u(Cn=>{"use strict";Object.defineProperty(Cn,"__esModule",{value:!0});Cn.deserializeAws_restJson1StartDeviceAuthorizationCommand=Cn.deserializeAws_restJson1RegisterClientCommand=Cn.deserializeAws_restJson1CreateTokenCommand=Cn.serializeAws_restJson1StartDeviceAuthorizationCommand=Cn.serializeAws_restJson1RegisterClientCommand=Cn.serializeAws_restJson1CreateTokenCommand=void 0;var f1=gt(),le=E(),jn=yo(),S1=kS(),iue=async(e,n)=>{let{hostname:t,protocol:s="https",port:r,path:i}=await n.endpoint(),a={"content-type":"application/json"},o=`${i?.endsWith("/")?i.slice(0,-1):i||""}/token`,c;return c=JSON.stringify({...e.clientId!=null&&{clientId:e.clientId},...e.clientSecret!=null&&{clientSecret:e.clientSecret},...e.code!=null&&{code:e.code},...e.deviceCode!=null&&{deviceCode:e.deviceCode},...e.grantType!=null&&{grantType:e.grantType},...e.redirectUri!=null&&{redirectUri:e.redirectUri},...e.refreshToken!=null&&{refreshToken:e.refreshToken},...e.scope!=null&&{scope:fB(e.scope,n)}}),new f1.HttpRequest({protocol:s,hostname:t,port:r,method:"POST",headers:a,path:o,body:c})};Cn.serializeAws_restJson1CreateTokenCommand=iue;var oue=async(e,n)=>{let{hostname:t,protocol:s="https",port:r,path:i}=await n.endpoint(),a={"content-type":"application/json"},o=`${i?.endsWith("/")?i.slice(0,-1):i||""}/client/register`,c;return c=JSON.stringify({...e.clientName!=null&&{clientName:e.clientName},...e.clientType!=null&&{clientType:e.clientType},...e.scopes!=null&&{scopes:fB(e.scopes,n)}}),new f1.HttpRequest({protocol:s,hostname:t,port:r,method:"POST",headers:a,path:o,body:c})};Cn.serializeAws_restJson1RegisterClientCommand=oue;var aue=async(e,n)=>{let{hostname:t,protocol:s="https",port:r,path:i}=await n.endpoint(),a={"content-type":"application/json"},o=`${i?.endsWith("/")?i.slice(0,-1):i||""}/device_authorization`,c;return c=JSON.stringify({...e.clientId!=null&&{clientId:e.clientId},...e.clientSecret!=null&&{clientSecret:e.clientSecret},...e.startUrl!=null&&{startUrl:e.startUrl}}),new f1.HttpRequest({protocol:s,hostname:t,port:r,method:"POST",headers:a,path:o,body:c})};Cn.serializeAws_restJson1StartDeviceAuthorizationCommand=aue;var cue=async(e,n)=>{if(e.statusCode!==200&&e.statusCode>=300)return lue(e,n);let t=pn({$metadata:gn(e)}),s=(0,le.expectNonNull)((0,le.expectObject)(await RS(e.body,n)),"body");return s.accessToken!=null&&(t.accessToken=(0,le.expectString)(s.accessToken)),s.expiresIn!=null&&(t.expiresIn=(0,le.expectInt32)(s.expiresIn)),s.idToken!=null&&(t.idToken=(0,le.expectString)(s.idToken)),s.refreshToken!=null&&(t.refreshToken=(0,le.expectString)(s.refreshToken)),s.tokenType!=null&&(t.tokenType=(0,le.expectString)(s.tokenType)),t};Cn.deserializeAws_restJson1CreateTokenCommand=cue;var lue=async(e,n)=>{let t={...e,body:await E1(e.body,n)},s=C1(e,t.body);switch(s){case"AccessDeniedException":case"com.amazonaws.ssooidc#AccessDeniedException":throw await gue(t,n);case"AuthorizationPendingException":case"com.amazonaws.ssooidc#AuthorizationPendingException":throw await yue(t,n);case"ExpiredTokenException":case"com.amazonaws.ssooidc#ExpiredTokenException":throw await _ue(t,n);case"InternalServerException":case"com.amazonaws.ssooidc#InternalServerException":throw await h1(t,n);case"InvalidClientException":case"com.amazonaws.ssooidc#InvalidClientException":throw await pB(t,n);case"InvalidGrantException":case"com.amazonaws.ssooidc#InvalidGrantException":throw await Sue(t,n);case"InvalidRequestException":case"com.amazonaws.ssooidc#InvalidRequestException":throw await w1(t,n);case"InvalidScopeException":case"com.amazonaws.ssooidc#InvalidScopeException":throw await gB(t,n);case"SlowDownException":case"com.amazonaws.ssooidc#SlowDownException":throw await yB(t,n);case"UnauthorizedClientException":case"com.amazonaws.ssooidc#UnauthorizedClientException":throw await _B(t,n);case"UnsupportedGrantTypeException":case"com.amazonaws.ssooidc#UnsupportedGrantTypeException":throw await hue(t,n);default:let r=t.body;(0,le.throwDefaultError)({output:e,parsedBody:r,exceptionCtor:S1.SSOOIDCServiceException,errorCode:s})}},due=async(e,n)=>{if(e.statusCode!==200&&e.statusCode>=300)return uue(e,n);let t=pn({$metadata:gn(e)}),s=(0,le.expectNonNull)((0,le.expectObject)(await RS(e.body,n)),"body");return s.authorizationEndpoint!=null&&(t.authorizationEndpoint=(0,le.expectString)(s.authorizationEndpoint)),s.clientId!=null&&(t.clientId=(0,le.expectString)(s.clientId)),s.clientIdIssuedAt!=null&&(t.clientIdIssuedAt=(0,le.expectLong)(s.clientIdIssuedAt)),s.clientSecret!=null&&(t.clientSecret=(0,le.expectString)(s.clientSecret)),s.clientSecretExpiresAt!=null&&(t.clientSecretExpiresAt=(0,le.expectLong)(s.clientSecretExpiresAt)),s.tokenEndpoint!=null&&(t.tokenEndpoint=(0,le.expectString)(s.tokenEndpoint)),t};Cn.deserializeAws_restJson1RegisterClientCommand=due;var uue=async(e,n)=>{let t={...e,body:await E1(e.body,n)},s=C1(e,t.body);switch(s){case"InternalServerException":case"com.amazonaws.ssooidc#InternalServerException":throw await h1(t,n);case"InvalidClientMetadataException":case"com.amazonaws.ssooidc#InvalidClientMetadataException":throw await fue(t,n);case"InvalidRequestException":case"com.amazonaws.ssooidc#InvalidRequestException":throw await w1(t,n);case"InvalidScopeException":case"com.amazonaws.ssooidc#InvalidScopeException":throw await gB(t,n);default:let r=t.body;(0,le.throwDefaultError)({output:e,parsedBody:r,exceptionCtor:S1.SSOOIDCServiceException,errorCode:s})}},mue=async(e,n)=>{if(e.statusCode!==200&&e.statusCode>=300)return pue(e,n);let t=pn({$metadata:gn(e)}),s=(0,le.expectNonNull)((0,le.expectObject)(await RS(e.body,n)),"body");return s.deviceCode!=null&&(t.deviceCode=(0,le.expectString)(s.deviceCode)),s.expiresIn!=null&&(t.expiresIn=(0,le.expectInt32)(s.expiresIn)),s.interval!=null&&(t.interval=(0,le.expectInt32)(s.interval)),s.userCode!=null&&(t.userCode=(0,le.expectString)(s.userCode)),s.verificationUri!=null&&(t.verificationUri=(0,le.expectString)(s.verificationUri)),s.verificationUriComplete!=null&&(t.verificationUriComplete=(0,le.expectString)(s.verificationUriComplete)),t};Cn.deserializeAws_restJson1StartDeviceAuthorizationCommand=mue;var pue=async(e,n)=>{let t={...e,body:await E1(e.body,n)},s=C1(e,t.body);switch(s){case"InternalServerException":case"com.amazonaws.ssooidc#InternalServerException":throw await h1(t,n);case"InvalidClientException":case"com.amazonaws.ssooidc#InvalidClientException":throw await pB(t,n);case"InvalidRequestException":case"com.amazonaws.ssooidc#InvalidRequestException":throw await w1(t,n);case"SlowDownException":case"com.amazonaws.ssooidc#SlowDownException":throw await yB(t,n);case"UnauthorizedClientException":case"com.amazonaws.ssooidc#UnauthorizedClientException":throw await _B(t,n);default:let r=t.body;(0,le.throwDefaultError)({output:e,parsedBody:r,exceptionCtor:S1.SSOOIDCServiceException,errorCode:s})}},pn=le.map,gue=async(e,n)=>{let t=pn({}),s=e.body;s.error!=null&&(t.error=(0,le.expectString)(s.error)),s.error_description!=null&&(t.error_description=(0,le.expectString)(s.error_description));let r=new jn.AccessDeniedException({$metadata:gn(e),...t});return(0,le.decorateServiceException)(r,e.body)},yue=async(e,n)=>{let t=pn({}),s=e.body;s.error!=null&&(t.error=(0,le.expectString)(s.error)),s.error_description!=null&&(t.error_description=(0,le.expectString)(s.error_description));let r=new jn.AuthorizationPendingException({$metadata:gn(e),...t});return(0,le.decorateServiceException)(r,e.body)},_ue=async(e,n)=>{let t=pn({}),s=e.body;s.error!=null&&(t.error=(0,le.expectString)(s.error)),s.error_description!=null&&(t.error_description=(0,le.expectString)(s.error_description));let r=new jn.ExpiredTokenException({$metadata:gn(e),...t});return(0,le.decorateServiceException)(r,e.body)},h1=async(e,n)=>{let t=pn({}),s=e.body;s.error!=null&&(t.error=(0,le.expectString)(s.error)),s.error_description!=null&&(t.error_description=(0,le.expectString)(s.error_description));let r=new jn.InternalServerException({$metadata:gn(e),...t});return(0,le.decorateServiceException)(r,e.body)},pB=async(e,n)=>{let t=pn({}),s=e.body;s.error!=null&&(t.error=(0,le.expectString)(s.error)),s.error_description!=null&&(t.error_description=(0,le.expectString)(s.error_description));let r=new jn.InvalidClientException({$metadata:gn(e),...t});return(0,le.decorateServiceException)(r,e.body)},fue=async(e,n)=>{let t=pn({}),s=e.body;s.error!=null&&(t.error=(0,le.expectString)(s.error)),s.error_description!=null&&(t.error_description=(0,le.expectString)(s.error_description));let r=new jn.InvalidClientMetadataException({$metadata:gn(e),...t});return(0,le.decorateServiceException)(r,e.body)},Sue=async(e,n)=>{let t=pn({}),s=e.body;s.error!=null&&(t.error=(0,le.expectString)(s.error)),s.error_description!=null&&(t.error_description=(0,le.expectString)(s.error_description));let r=new jn.InvalidGrantException({$metadata:gn(e),...t});return(0,le.decorateServiceException)(r,e.body)},w1=async(e,n)=>{let t=pn({}),s=e.body;s.error!=null&&(t.error=(0,le.expectString)(s.error)),s.error_description!=null&&(t.error_description=(0,le.expectString)(s.error_description));let r=new jn.InvalidRequestException({$metadata:gn(e),...t});return(0,le.decorateServiceException)(r,e.body)},gB=async(e,n)=>{let t=pn({}),s=e.body;s.error!=null&&(t.error=(0,le.expectString)(s.error)),s.error_description!=null&&(t.error_description=(0,le.expectString)(s.error_description));let r=new jn.InvalidScopeException({$metadata:gn(e),...t});return(0,le.decorateServiceException)(r,e.body)},yB=async(e,n)=>{let t=pn({}),s=e.body;s.error!=null&&(t.error=(0,le.expectString)(s.error)),s.error_description!=null&&(t.error_description=(0,le.expectString)(s.error_description));let r=new jn.SlowDownException({$metadata:gn(e),...t});return(0,le.decorateServiceException)(r,e.body)},_B=async(e,n)=>{let t=pn({}),s=e.body;s.error!=null&&(t.error=(0,le.expectString)(s.error)),s.error_description!=null&&(t.error_description=(0,le.expectString)(s.error_description));let r=new jn.UnauthorizedClientException({$metadata:gn(e),...t});return(0,le.decorateServiceException)(r,e.body)},hue=async(e,n)=>{let t=pn({}),s=e.body;s.error!=null&&(t.error=(0,le.expectString)(s.error)),s.error_description!=null&&(t.error_description=(0,le.expectString)(s.error_description));let r=new jn.UnsupportedGrantTypeException({$metadata:gn(e),...t});return(0,le.decorateServiceException)(r,e.body)},fB=(e,n)=>e.filter(t=>t!=null).map(t=>t),gn=e=>({httpStatusCode:e.statusCode,requestId:e.headers["x-amzn-requestid"]??e.headers["x-amzn-request-id"]??e.headers["x-amz-request-id"],extendedRequestId:e.headers["x-amz-id-2"],cfId:e.headers["x-amz-cf-id"]}),wue=(e=new Uint8Array,n)=>e instanceof Uint8Array?Promise.resolve(e):n.streamCollector(e)||Promise.resolve(new Uint8Array),Eue=(e,n)=>wue(e,n).then(t=>n.utf8Encoder(t)),RS=(e,n)=>Eue(e,n).then(t=>t.length?JSON.parse(t):{}),E1=async(e,n)=>{let t=await RS(e,n);return t.message=t.message??t.Message,t},C1=(e,n)=>{let t=(i,a)=>Object.keys(i).find(o=>o.toLowerCase()===a.toLowerCase()),s=i=>{let a=i;return typeof a=="number"&&(a=a.toString()),a.indexOf(",")>=0&&(a=a.split(",")[0]),a.indexOf(":")>=0&&(a=a.split(":")[0]),a.indexOf("#")>=0&&(a=a.split("#")[1]),a},r=t(e.headers,"x-amzn-errortype");if(r!==void 0)return s(e.headers[r]);if(n.code!==void 0)return s(n.code);if(n.__type!==void 0)return s(n.__type)}});var v1=u(zS=>{"use strict";Object.defineProperty(zS,"__esModule",{value:!0});zS.CreateTokenCommand=void 0;var Cue=x(),vue=b(),Pue=E(),SB=yo(),hB=NS(),Nc=class extends Pue.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,vue.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,Cue.getEndpointPlugin)(t,Nc.getEndpointParameterInstructions()));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"SSOOIDCClient",commandName:"CreateTokenCommand",inputFilterSensitiveLog:SB.CreateTokenRequestFilterSensitiveLog,outputFilterSensitiveLog:SB.CreateTokenResponseFilterSensitiveLog},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,hB.serializeAws_restJson1CreateTokenCommand)(n,t)}deserialize(n,t){return(0,hB.deserializeAws_restJson1CreateTokenCommand)(n,t)}};zS.CreateTokenCommand=Nc});var P1=u(qS=>{"use strict";Object.defineProperty(qS,"__esModule",{value:!0});qS.RegisterClientCommand=void 0;var Aue=x(),xue=b(),bue=E(),wB=yo(),EB=NS(),zc=class extends bue.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,xue.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,Aue.getEndpointPlugin)(t,zc.getEndpointParameterInstructions()));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"SSOOIDCClient",commandName:"RegisterClientCommand",inputFilterSensitiveLog:wB.RegisterClientRequestFilterSensitiveLog,outputFilterSensitiveLog:wB.RegisterClientResponseFilterSensitiveLog},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,EB.serializeAws_restJson1RegisterClientCommand)(n,t)}deserialize(n,t){return(0,EB.deserializeAws_restJson1RegisterClientCommand)(n,t)}};qS.RegisterClientCommand=zc});var A1=u(LS=>{"use strict";Object.defineProperty(LS,"__esModule",{value:!0});LS.StartDeviceAuthorizationCommand=void 0;var Iue=x(),kue=b(),Rue=E(),CB=yo(),vB=NS(),qc=class extends Rue.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,kue.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,Iue.getEndpointPlugin)(t,qc.getEndpointParameterInstructions()));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"SSOOIDCClient",commandName:"StartDeviceAuthorizationCommand",inputFilterSensitiveLog:CB.StartDeviceAuthorizationRequestFilterSensitiveLog,outputFilterSensitiveLog:CB.StartDeviceAuthorizationResponseFilterSensitiveLog},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,vB.serializeAws_restJson1StartDeviceAuthorizationCommand)(n,t)}deserialize(n,t){return(0,vB.deserializeAws_restJson1StartDeviceAuthorizationCommand)(n,t)}};LS.StartDeviceAuthorizationCommand=qc});var PB=u(FS=>{"use strict";Object.defineProperty(FS,"__esModule",{value:!0});FS.resolveClientEndpointParameters=void 0;var Nue=e=>({...e,useDualstackEndpoint:e.useDualstackEndpoint??!1,useFipsEndpoint:e.useFipsEndpoint??!1,defaultSigningName:"awsssooidc"});FS.resolveClientEndpointParameters=Nue});var AB=u((z_t,zue)=>{zue.exports={name:"@aws-sdk/client-sso-oidc",description:"AWS SDK for JavaScript Sso Oidc Client for Node.js, Browser and React Native",version:"3.282.0",scripts:{build:"concurrently 'yarn:build:cjs' 'yarn:build:es' 'yarn:build:types'","build:cjs":"tsc -p tsconfig.cjs.json","build:docs":"typedoc","build:es":"tsc -p tsconfig.es.json","build:include:deps":"lerna run --scope $npm_package_name --include-dependencies build","build:types":"tsc -p tsconfig.types.json","build:types:downlevel":"downlevel-dts dist-types dist-types/ts3.4",clean:"rimraf ./dist-* && rimraf *.tsbuildinfo","generate:client":"node ../../scripts/generate-clients/single-service --solo sso-oidc"},main:"./dist-cjs/index.js",types:"./dist-types/index.d.ts",module:"./dist-es/index.js",sideEffects:!1,dependencies:{"@aws-crypto/sha256-browser":"3.0.0","@aws-crypto/sha256-js":"3.0.0","@aws-sdk/config-resolver":"3.282.0","@aws-sdk/fetch-http-handler":"3.282.0","@aws-sdk/hash-node":"3.272.0","@aws-sdk/invalid-dependency":"3.272.0","@aws-sdk/middleware-content-length":"3.282.0","@aws-sdk/middleware-endpoint":"3.282.0","@aws-sdk/middleware-host-header":"3.282.0","@aws-sdk/middleware-logger":"3.272.0","@aws-sdk/middleware-recursion-detection":"3.282.0","@aws-sdk/middleware-retry":"3.282.0","@aws-sdk/middleware-serde":"3.272.0","@aws-sdk/middleware-stack":"3.272.0","@aws-sdk/middleware-user-agent":"3.282.0","@aws-sdk/node-config-provider":"3.272.0","@aws-sdk/node-http-handler":"3.282.0","@aws-sdk/protocol-http":"3.282.0","@aws-sdk/smithy-client":"3.279.0","@aws-sdk/types":"3.272.0","@aws-sdk/url-parser":"3.272.0","@aws-sdk/util-base64":"3.208.0","@aws-sdk/util-body-length-browser":"3.188.0","@aws-sdk/util-body-length-node":"3.208.0","@aws-sdk/util-defaults-mode-browser":"3.279.0","@aws-sdk/util-defaults-mode-node":"3.282.0","@aws-sdk/util-endpoints":"3.272.0","@aws-sdk/util-retry":"3.272.0","@aws-sdk/util-user-agent-browser":"3.282.0","@aws-sdk/util-user-agent-node":"3.282.0","@aws-sdk/util-utf8":"3.254.0",tslib:"^2.3.1"},devDependencies:{"@aws-sdk/service-client-documentation-generator":"3.208.0","@tsconfig/node14":"1.0.3","@types/node":"^14.14.31",concurrently:"7.0.0","downlevel-dts":"0.10.1",rimraf:"3.0.2",typedoc:"0.19.2",typescript:"~4.6.2"},overrides:{typedoc:{typescript:"~4.6.2"}},engines:{node:">=14.0.0"},typesVersions:{"<4.0":{"dist-types/*":["dist-types/ts3.4/*"]}},files:["dist-*"],author:{name:"AWS SDK for JavaScript Team",url:"https://aws.amazon.com/javascript/"},license:"Apache-2.0",browser:{"./dist-es/runtimeConfig":"./dist-es/runtimeConfig.browser"},"react-native":{"./dist-es/runtimeConfig":"./dist-es/runtimeConfig.native"},homepage:"https://github.com/aws/aws-sdk-js-v3/tree/main/clients/client-sso-oidc",repository:{type:"git",url:"https://github.com/aws/aws-sdk-js-v3.git",directory:"clients/client-sso-oidc"}}});var TB=u(DS=>{"use strict";Object.defineProperty(DS,"__esModule",{value:!0});DS.ruleSet=void 0;var qB="required",Zs="fn",er="argv",_o="ref",x1="PartitionResult",Cs="tree",Lc="error",Fc="endpoint",xB={[qB]:!1,type:"String"},bB={[qB]:!0,default:!1,type:"Boolean"},LB={[_o]:"Endpoint"},FB={[Zs]:"booleanEquals",[er]:[{[_o]:"UseFIPS"},!0]},DB={[Zs]:"booleanEquals",[er]:[{[_o]:"UseDualStack"},!0]},vs={},IB={[Zs]:"booleanEquals",[er]:[!0,{[Zs]:"getAttr",[er]:[{[_o]:x1},"supportsFIPS"]}]},kB={[Zs]:"booleanEquals",[er]:[!0,{[Zs]:"getAttr",[er]:[{[_o]:x1},"supportsDualStack"]}]},RB=[LB],NB=[FB],zB=[DB],que={version:"1.0",parameters:{Region:xB,UseDualStack:bB,UseFIPS:bB,Endpoint:xB},rules:[{conditions:[{[Zs]:"aws.partition",[er]:[{[_o]:"Region"}],assign:x1}],type:Cs,rules:[{conditions:[{[Zs]:"isSet",[er]:RB},{[Zs]:"parseURL",[er]:RB,assign:"url"}],type:Cs,rules:[{conditions:NB,error:"Invalid Configuration: FIPS and custom endpoint are not supported",type:Lc},{type:Cs,rules:[{conditions:zB,error:"Invalid Configuration: Dualstack and custom endpoint are not supported",type:Lc},{endpoint:{url:LB,properties:vs,headers:vs},type:Fc}]}]},{conditions:[FB,DB],type:Cs,rules:[{conditions:[IB,kB],type:Cs,rules:[{endpoint:{url:"https://oidc-fips.{Region}.{PartitionResult#dualStackDnsSuffix}",properties:vs,headers:vs},type:Fc}]},{error:"FIPS and DualStack are enabled, but this partition does not support one or both",type:Lc}]},{conditions:NB,type:Cs,rules:[{conditions:[IB],type:Cs,rules:[{type:Cs,rules:[{endpoint:{url:"https://oidc-fips.{Region}.{PartitionResult#dnsSuffix}",properties:vs,headers:vs},type:Fc}]}]},{error:"FIPS is enabled but this partition does not support FIPS",type:Lc}]},{conditions:zB,type:Cs,rules:[{conditions:[kB],type:Cs,rules:[{endpoint:{url:"https://oidc.{Region}.{PartitionResult#dualStackDnsSuffix}",properties:vs,headers:vs},type:Fc}]},{error:"DualStack is enabled but this partition does not support DualStack",type:Lc}]},{endpoint:{url:"https://oidc.{Region}.{PartitionResult#dnsSuffix}",properties:vs,headers:vs},type:Fc}]}]};DS.ruleSet=que});var jB=u(TS=>{"use strict";Object.defineProperty(TS,"__esModule",{value:!0});TS.defaultEndpointResolver=void 0;var Lue=Ur(),Fue=TB(),Due=(e,n={})=>(0,Lue.resolveEndpoint)(Fue.ruleSet,{endpointParams:e,logger:n.logger});TS.defaultEndpointResolver=Due});var BB=u(jS=>{"use strict";Object.defineProperty(jS,"__esModule",{value:!0});jS.getRuntimeConfig=void 0;var Tue=E(),jue=ts(),MB=Br(),OB=Sn(),Mue=jB(),Oue=e=>({apiVersion:"2019-06-10",base64Decoder:e?.base64Decoder??MB.fromBase64,base64Encoder:e?.base64Encoder??MB.toBase64,disableHostPrefix:e?.disableHostPrefix??!1,endpointProvider:e?.endpointProvider??Mue.defaultEndpointResolver,logger:e?.logger??new Tue.NoOpLogger,serviceId:e?.serviceId??"SSO OIDC",urlParser:e?.urlParser??jue.parseUrl,utf8Decoder:e?.utf8Decoder??OB.fromUtf8,utf8Encoder:e?.utf8Encoder??OB.toUtf8});jS.getRuntimeConfig=Oue});var XB=u(OS=>{"use strict";Object.defineProperty(OS,"__esModule",{value:!0});OS.getRuntimeConfig=void 0;var Bue=X(),Gue=Bue.__importDefault(AB()),MS=tn(),Uue=jr(),GB=un(),Dc=Qn(),UB=Ks(),Xue=Mr(),$ue=dn(),Hue=Or(),Vue=BB(),Wue=E(),Kue=$r(),Que=E(),Jue=e=>{(0,Que.emitWarningIfUnsupportedVersion)(process.version);let n=(0,Kue.resolveDefaultsModeConfig)(e),t=()=>n().then(Wue.loadConfigsForDefaultMode),s=(0,Vue.getRuntimeConfig)(e);return{...s,...e,runtime:"node",defaultsMode:n,bodyLengthChecker:e?.bodyLengthChecker??Xue.calculateBodyLength,defaultUserAgentProvider:e?.defaultUserAgentProvider??(0,Hue.defaultUserAgent)({serviceId:s.serviceId,clientVersion:Gue.default.version}),maxAttempts:e?.maxAttempts??(0,Dc.loadConfig)(GB.NODE_MAX_ATTEMPT_CONFIG_OPTIONS),region:e?.region??(0,Dc.loadConfig)(MS.NODE_REGION_CONFIG_OPTIONS,MS.NODE_REGION_CONFIG_FILE_OPTIONS),requestHandler:e?.requestHandler??new UB.NodeHttpHandler(t),retryMode:e?.retryMode??(0,Dc.loadConfig)({...GB.NODE_RETRY_MODE_CONFIG_OPTIONS,default:async()=>(await t()).retryMode||$ue.DEFAULT_RETRY_MODE}),sha256:e?.sha256??Uue.Hash.bind(null,"sha256"),streamCollector:e?.streamCollector??UB.streamCollector,useDualstackEndpoint:e?.useDualstackEndpoint??(0,Dc.loadConfig)(MS.NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS),useFipsEndpoint:e?.useFipsEndpoint??(0,Dc.loadConfig)(MS.NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS)}};OS.getRuntimeConfig=Jue});var I1=u(BS=>{"use strict";Object.defineProperty(BS,"__esModule",{value:!0});BS.SSOOIDCClient=void 0;var Yue=tn(),Zue=fr(),eme=x(),$B=Sr(),tme=hr(),nme=wr(),HB=un(),VB=xr(),sme=E(),rme=PB(),ime=XB(),b1=class extends sme.Client{constructor(n){let t=(0,ime.getRuntimeConfig)(n),s=(0,rme.resolveClientEndpointParameters)(t),r=(0,Yue.resolveRegionConfig)(s),i=(0,eme.resolveEndpointConfig)(r),a=(0,HB.resolveRetryConfig)(i),o=(0,$B.resolveHostHeaderConfig)(a),c=(0,VB.resolveUserAgentConfig)(o);super(c),this.config=c,this.middlewareStack.use((0,HB.getRetryPlugin)(this.config)),this.middlewareStack.use((0,Zue.getContentLengthPlugin)(this.config)),this.middlewareStack.use((0,$B.getHostHeaderPlugin)(this.config)),this.middlewareStack.use((0,tme.getLoggerPlugin)(this.config)),this.middlewareStack.use((0,nme.getRecursionDetectionPlugin)(this.config)),this.middlewareStack.use((0,VB.getUserAgentPlugin)(this.config))}destroy(){super.destroy()}};BS.SSOOIDCClient=b1});var WB=u(GS=>{"use strict";Object.defineProperty(GS,"__esModule",{value:!0});GS.SSOOIDC=void 0;var ome=v1(),ame=P1(),cme=A1(),lme=I1(),k1=class extends lme.SSOOIDCClient{createToken(n,t,s){let r=new ome.CreateTokenCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}registerClient(n,t,s){let r=new ame.RegisterClientCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}startDeviceAuthorization(n,t,s){let r=new cme.StartDeviceAuthorizationCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}};GS.SSOOIDC=k1});var KB=u(Tc=>{"use strict";Object.defineProperty(Tc,"__esModule",{value:!0});var R1=X();R1.__exportStar(v1(),Tc);R1.__exportStar(P1(),Tc);R1.__exportStar(A1(),Tc)});var QB=u(N1=>{"use strict";Object.defineProperty(N1,"__esModule",{value:!0});var dme=X();dme.__exportStar(yo(),N1)});var z1=u(Hr=>{"use strict";Object.defineProperty(Hr,"__esModule",{value:!0});Hr.SSOOIDCServiceException=void 0;var US=X();US.__exportStar(WB(),Hr);US.__exportStar(I1(),Hr);US.__exportStar(KB(),Hr);US.__exportStar(QB(),Hr);var ume=kS();Object.defineProperty(Hr,"SSOOIDCServiceException",{enumerable:!0,get:function(){return ume.SSOOIDCServiceException}})});var JB=u(XS=>{"use strict";Object.defineProperty(XS,"__esModule",{value:!0});XS.getSsoOidcClient=void 0;var mme=z1(),q1={},pme=e=>{if(q1[e])return q1[e];let n=new mme.SSOOIDCClient({region:e});return q1[e]=n,n};XS.getSsoOidcClient=pme});var YB=u($S=>{"use strict";Object.defineProperty($S,"__esModule",{value:!0});$S.getNewSsoOidcToken=void 0;var gme=z1(),yme=JB(),_me=(e,n)=>(0,yme.getSsoOidcClient)(n).send(new gme.CreateTokenCommand({clientId:e.clientId,clientSecret:e.clientSecret,refreshToken:e.refreshToken,grantType:"refresh_token"}));$S.getNewSsoOidcToken=_me});var ZB=u(HS=>{"use strict";Object.defineProperty(HS,"__esModule",{value:!0});HS.validateTokenExpiry=void 0;var fme=Je(),Sme=bS(),hme=e=>{if(e.expiration&&e.expiration.getTime(){"use strict";Object.defineProperty(VS,"__esModule",{value:!0});VS.validateTokenKey=void 0;var wme=Je(),Eme=bS(),Cme=(e,n,t=!1)=>{if(typeof n>"u")throw new wme.TokenProviderError(`Value not present for '${e}' in SSO Token${t?". Cannot refresh":""}. ${Eme.REFRESH_MESSAGE}`,!1)};VS.validateTokenKey=Cme});var tG=u(WS=>{"use strict";Object.defineProperty(WS,"__esModule",{value:!0});WS.writeSSOTokenToFile=void 0;var vme=ps(),Pme=require("fs"),{writeFile:Ame}=Pme.promises,xme=(e,n)=>{let t=(0,vme.getSSOTokenFilepath)(e),s=JSON.stringify(n,null,2);return Ame(t,s)};WS.writeSSOTokenToFile=xme});var L1=u(QS=>{"use strict";Object.defineProperty(QS,"__esModule",{value:!0});QS.fromSso=void 0;var jc=Je(),KS=ps(),nG=bS(),bme=YB(),sG=ZB(),Ii=eG(),Ime=tG(),rG=new Date(0),kme=(e={})=>async()=>{let n=await(0,KS.parseKnownFiles)(e),t=(0,KS.getProfileName)(e),s=n[t];if(s){if(!s.sso_session)throw new jc.TokenProviderError(`Profile '${t}' is missing required property 'sso_session'.`)}else throw new jc.TokenProviderError(`Profile '${t}' could not be found in shared credentials file.`,!1);let r=s.sso_session,a=(await(0,KS.loadSsoSessionData)(e))[r];if(!a)throw new jc.TokenProviderError(`Sso session '${r}' could not be found in shared credentials file.`,!1);for(let z of["sso_start_url","sso_region"])if(!a[z])throw new jc.TokenProviderError(`Sso session '${r}' is missing required property '${z}'.`,!1);let o=a.sso_start_url,c=a.sso_region,l;try{l=await(0,KS.getSSOTokenFromFile)(r)}catch{throw new jc.TokenProviderError(`The SSO session token associated with profile=${t} was not found or is invalid. ${nG.REFRESH_MESSAGE}`,!1)}(0,Ii.validateTokenKey)("accessToken",l.accessToken),(0,Ii.validateTokenKey)("expiresAt",l.expiresAt);let{accessToken:d,expiresAt:h}=l,v={token:d,expiration:new Date(h)};if(v.expiration.getTime()-Date.now()>nG.EXPIRE_WINDOW_MS)return v;if(Date.now()-rG.getTime()<30*1e3)return(0,sG.validateTokenExpiry)(v),v;(0,Ii.validateTokenKey)("clientId",l.clientId,!0),(0,Ii.validateTokenKey)("clientSecret",l.clientSecret,!0),(0,Ii.validateTokenKey)("refreshToken",l.refreshToken,!0);try{rG.setTime(Date.now());let z=await(0,bme.getNewSsoOidcToken)(l,c);(0,Ii.validateTokenKey)("accessToken",z.accessToken),(0,Ii.validateTokenKey)("expiresIn",z.expiresIn);let q=new Date(Date.now()+z.expiresIn*1e3);try{await(0,Ime.writeSSOTokenToFile)(r,{...l,accessToken:z.accessToken,expiresAt:q.toISOString(),refreshToken:z.refreshToken})}catch{}return{token:z.accessToken,expiration:q}}catch{return(0,sG.validateTokenExpiry)(v),v}};QS.fromSso=kme});var iG=u(JS=>{"use strict";Object.defineProperty(JS,"__esModule",{value:!0});JS.fromStatic=void 0;var Rme=Je(),Nme=({token:e})=>async()=>{if(!e||!e.token)throw new Rme.TokenProviderError("Please pass a valid token to fromStatic",!1);return e};JS.fromStatic=Nme});var oG=u(YS=>{"use strict";Object.defineProperty(YS,"__esModule",{value:!0});YS.nodeProvider=void 0;var F1=Je(),zme=L1(),qme=(e={})=>(0,F1.memoize)((0,F1.chain)((0,zme.fromSso)(e),async()=>{throw new F1.TokenProviderError("Could not load token from any providers",!1)}),n=>n.expiration!==void 0&&n.expiration.getTime()-Date.now()<3e5,n=>n.expiration!==void 0);YS.nodeProvider=qme});var aG=u(Mc=>{"use strict";Object.defineProperty(Mc,"__esModule",{value:!0});var D1=X();D1.__exportStar(L1(),Mc);D1.__exportStar(iG(),Mc);D1.__exportStar(oG(),Mc)});var lG=u(ZS=>{"use strict";Object.defineProperty(ZS,"__esModule",{value:!0});ZS.resolveSSOCredentials=void 0;var cG=_1(),Oc=Je(),Lme=ps(),Fme=aG(),Dme=15*60*1e3,Bc=!1,Tme=async({ssoStartUrl:e,ssoSession:n,ssoAccountId:t,ssoRegion:s,ssoRoleName:r,ssoClient:i,profile:a})=>{let o,c="To refresh this SSO session run aws sso login with the corresponding profile.";if(n)try{let U=await(0,Fme.fromSso)({profile:a})();o={accessToken:U.token,expiresAt:new Date(U.expiration).toISOString()}}catch(U){throw new Oc.CredentialsProviderError(U.message,Bc)}else try{o=await(0,Lme.getSSOTokenFromFile)(e)}catch{throw new Oc.CredentialsProviderError(`The SSO session associated with this profile is invalid. ${c}`,Bc)}if(new Date(o.expiresAt).getTime()-Date.now()<=Dme)throw new Oc.CredentialsProviderError(`The SSO session associated with this profile has expired. ${c}`,Bc);let{accessToken:l}=o,d=i||new cG.SSOClient({region:s}),h;try{h=await d.send(new cG.GetRoleCredentialsCommand({accountId:t,roleName:r,accessToken:l}))}catch(U){throw Oc.CredentialsProviderError.from(U,Bc)}let{roleCredentials:{accessKeyId:v,secretAccessKey:z,sessionToken:q,expiration:T}={}}=h;if(!v||!z||!q||!T)throw new Oc.CredentialsProviderError("SSO returns an invalid temporary credential.",Bc);return{accessKeyId:v,secretAccessKey:z,sessionToken:q,expiration:new Date(T)}};ZS.resolveSSOCredentials=Tme});var T1=u(eh=>{"use strict";Object.defineProperty(eh,"__esModule",{value:!0});eh.validateSsoProfile=void 0;var jme=Je(),Mme=e=>{let{sso_start_url:n,sso_account_id:t,sso_region:s,sso_role_name:r}=e;if(!n||!t||!s||!r)throw new jme.CredentialsProviderError(`Profile is configured with invalid SSO credentials. Required parameters "sso_account_id", "sso_region", "sso_role_name", "sso_start_url". Got ${Object.keys(e).join(", ")} +Reference: https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-sso.html`,!1);return e};eh.validateSsoProfile=Mme});var uG=u(th=>{"use strict";Object.defineProperty(th,"__esModule",{value:!0});th.fromSSO=void 0;var Gc=Je(),j1=ps(),Ome=kb(),dG=lG(),Bme=T1(),Gme=(e={})=>async()=>{let{ssoStartUrl:n,ssoAccountId:t,ssoRegion:s,ssoRoleName:r,ssoClient:i,ssoSession:a}=e,o=(0,j1.getProfileName)(e);if(!n&&!t&&!s&&!r&&!a){let l=(await(0,j1.parseKnownFiles)(e))[o];if(!l)throw new Gc.CredentialsProviderError(`Profile ${o} was not found.`);if(!(0,Ome.isSsoProfile)(l))throw new Gc.CredentialsProviderError(`Profile ${o} is not configured with SSO credentials.`);if(l?.sso_session){let U=(await(0,j1.loadSsoSessionData)(e))[l.sso_session],Le=` configurations in profile ${o} and sso-session ${l.sso_session}`;if(s&&s!==U.sso_region)throw new Gc.CredentialsProviderError("Conflicting SSO region"+Le,!1);if(n&&n!==U.sso_start_url)throw new Gc.CredentialsProviderError("Conflicting SSO start_url"+Le,!1);l.sso_region=U.sso_region,l.sso_start_url=U.sso_start_url}let{sso_start_url:d,sso_account_id:h,sso_region:v,sso_role_name:z,sso_session:q}=(0,Bme.validateSsoProfile)(l);return(0,dG.resolveSSOCredentials)({ssoStartUrl:d,ssoSession:q,ssoAccountId:h,ssoRegion:v,ssoRoleName:z,ssoClient:i,profile:o})}else{if(!n||!t||!s||!r)throw new Gc.CredentialsProviderError('Incomplete configuration. The fromSSO() argument hash must include "ssoStartUrl", "ssoAccountId", "ssoRegion", "ssoRoleName"');return(0,dG.resolveSSOCredentials)({ssoStartUrl:n,ssoSession:a,ssoAccountId:t,ssoRegion:s,ssoRoleName:r,ssoClient:i,profile:o})}};th.fromSSO=Gme});var pG=u(mG=>{"use strict";Object.defineProperty(mG,"__esModule",{value:!0})});var Uc=u(fo=>{"use strict";Object.defineProperty(fo,"__esModule",{value:!0});var nh=X();nh.__exportStar(uG(),fo);nh.__exportStar(kb(),fo);nh.__exportStar(pG(),fo);nh.__exportStar(T1(),fo)});var yG=u(So=>{"use strict";Object.defineProperty(So,"__esModule",{value:!0});So.resolveSsoCredentials=So.isSsoProfile=void 0;var gG=Uc(),Ume=Uc();Object.defineProperty(So,"isSsoProfile",{enumerable:!0,get:function(){return Ume.isSsoProfile}});var Xme=e=>{let{sso_start_url:n,sso_account_id:t,sso_session:s,sso_region:r,sso_role_name:i}=(0,gG.validateSsoProfile)(e);return(0,gG.fromSSO)({ssoStartUrl:n,ssoAccountId:t,ssoSession:s,ssoRegion:r,ssoRoleName:i})()};So.resolveSsoCredentials=Xme});var _G=u(ho=>{"use strict";Object.defineProperty(ho,"__esModule",{value:!0});ho.resolveStaticCredentials=ho.isStaticCredsProfile=void 0;var $me=e=>Boolean(e)&&typeof e=="object"&&typeof e.aws_access_key_id=="string"&&typeof e.aws_secret_access_key=="string"&&["undefined","string"].indexOf(typeof e.aws_session_token)>-1;ho.isStaticCredsProfile=$me;var Hme=e=>Promise.resolve({accessKeyId:e.aws_access_key_id,secretAccessKey:e.aws_secret_access_key,sessionToken:e.aws_session_token});ho.resolveStaticCredentials=Hme});var M1=u(sh=>{"use strict";Object.defineProperty(sh,"__esModule",{value:!0});sh.fromWebToken=void 0;var Vme=Je(),Wme=e=>()=>{let{roleArn:n,roleSessionName:t,webIdentityToken:s,providerId:r,policyArns:i,policy:a,durationSeconds:o,roleAssumerWithWebIdentity:c}=e;if(!c)throw new Vme.CredentialsProviderError(`Role Arn '${n}' needs to be assumed with web identity, but no role assumption callback was provided.`,!1);return c({RoleArn:n,RoleSessionName:t??`aws-sdk-js-session-${Date.now()}`,WebIdentityToken:s,ProviderId:r,PolicyArns:i,Policy:a,DurationSeconds:o})};sh.fromWebToken=Wme});var fG=u(rh=>{"use strict";Object.defineProperty(rh,"__esModule",{value:!0});rh.fromTokenFile=void 0;var Kme=Je(),Qme=require("fs"),Jme=M1(),Yme="AWS_WEB_IDENTITY_TOKEN_FILE",Zme="AWS_ROLE_ARN",epe="AWS_ROLE_SESSION_NAME",tpe=(e={})=>async()=>npe(e);rh.fromTokenFile=tpe;var npe=e=>{var n,t,s;let r=(n=e?.webIdentityTokenFile)!==null&&n!==void 0?n:process.env[Yme],i=(t=e?.roleArn)!==null&&t!==void 0?t:process.env[Zme],a=(s=e?.roleSessionName)!==null&&s!==void 0?s:process.env[epe];if(!r||!i)throw new Kme.CredentialsProviderError("Web identity configuration not specified");return(0,Jme.fromWebToken)({...e,webIdentityToken:(0,Qme.readFileSync)(r,{encoding:"ascii"}),roleArn:i,roleSessionName:a})()}});var Xc=u(ih=>{"use strict";Object.defineProperty(ih,"__esModule",{value:!0});var SG=X();SG.__exportStar(fG(),ih);SG.__exportStar(M1(),ih)});var hG=u(wo=>{"use strict";Object.defineProperty(wo,"__esModule",{value:!0});wo.resolveWebIdentityCredentials=wo.isWebIdentityProfile=void 0;var spe=Xc(),rpe=e=>Boolean(e)&&typeof e=="object"&&typeof e.web_identity_token_file=="string"&&typeof e.role_arn=="string"&&["undefined","string"].indexOf(typeof e.role_session_name)>-1;wo.isWebIdentityProfile=rpe;var ipe=async(e,n)=>(0,spe.fromTokenFile)({webIdentityTokenFile:e.web_identity_token_file,roleArn:e.role_arn,roleSessionName:e.role_session_name,roleAssumerWithWebIdentity:n.roleAssumerWithWebIdentity})();wo.resolveWebIdentityCredentials=ipe});var xb=u(ah=>{"use strict";Object.defineProperty(ah,"__esModule",{value:!0});ah.resolveProfileData=void 0;var ope=Je(),wG=nj(),EG=aj(),CG=yG(),oh=_G(),vG=hG(),ape=async(e,n,t,s={})=>{let r=n[e];if(Object.keys(s).length>0&&(0,oh.isStaticCredsProfile)(r))return(0,oh.resolveStaticCredentials)(r);if((0,wG.isAssumeRoleProfile)(r))return(0,wG.resolveAssumeRoleCredentials)(e,n,t,s);if((0,oh.isStaticCredsProfile)(r))return(0,oh.resolveStaticCredentials)(r);if((0,vG.isWebIdentityProfile)(r))return(0,vG.resolveWebIdentityCredentials)(r,t);if((0,EG.isProcessProfile)(r))return(0,EG.resolveProcessCredentials)(t,e);if((0,CG.isSsoProfile)(r))return(0,CG.resolveSsoCredentials)(r);throw new ope.CredentialsProviderError(`Profile ${e} could not be found or parsed in shared credentials file.`)};ah.resolveProfileData=ape});var AG=u(ch=>{"use strict";Object.defineProperty(ch,"__esModule",{value:!0});ch.fromIni=void 0;var PG=ps(),cpe=xb(),lpe=(e={})=>async()=>{let n=await(0,PG.parseKnownFiles)(e);return(0,cpe.resolveProfileData)((0,PG.getProfileName)(e),n,e)};ch.fromIni=lpe});var B1=u(O1=>{"use strict";Object.defineProperty(O1,"__esModule",{value:!0});var dpe=X();dpe.__exportStar(AG(),O1)});var xG=u(ki=>{"use strict";Object.defineProperty(ki,"__esModule",{value:!0});ki.remoteProvider=ki.ENV_IMDS_DISABLED=void 0;var lh=oo(),upe=Je();ki.ENV_IMDS_DISABLED="AWS_EC2_METADATA_DISABLED";var mpe=e=>process.env[lh.ENV_CMDS_RELATIVE_URI]||process.env[lh.ENV_CMDS_FULL_URI]?(0,lh.fromContainerMetadata)(e):process.env[ki.ENV_IMDS_DISABLED]?async()=>{throw new upe.CredentialsProviderError("EC2 Instance Metadata Service access disabled")}:(0,lh.fromInstanceMetadata)(e);ki.remoteProvider=mpe});var bG=u(dh=>{"use strict";Object.defineProperty(dh,"__esModule",{value:!0});dh.defaultProvider=void 0;var ppe=C_(),gpe=B1(),ype=J_(),_pe=Uc(),fpe=Xc(),G1=Je(),Spe=ps(),hpe=xG(),wpe=(e={})=>(0,G1.memoize)((0,G1.chain)(...e.profile||process.env[Spe.ENV_PROFILE]?[]:[(0,ppe.fromEnv)()],(0,_pe.fromSSO)(e),(0,gpe.fromIni)(e),(0,ype.fromProcess)(e),(0,fpe.fromTokenFile)(e),(0,hpe.remoteProvider)(e),async()=>{throw new G1.CredentialsProviderError("Could not load credentials from any providers",!1)}),n=>n.expiration!==void 0&&n.expiration.getTime()-Date.now()<3e5,n=>n.expiration!==void 0);dh.defaultProvider=wpe});var Vr=u(U1=>{"use strict";Object.defineProperty(U1,"__esModule",{value:!0});var Epe=X();Epe.__exportStar(bG(),U1)});var WG=u(uh=>{"use strict";Object.defineProperty(uh,"__esModule",{value:!0});uh.ruleSet=void 0;var TG="required",Fe="type",We="fn",Ke="argv",Wr="ref",Ri="properties",Ni="headers",IG=!1,Cpe=!0,$1="PartitionResult",Mn="tree",zi="booleanEquals",Jt="stringEquals",jG="sigv4",MG="us-east-1",OG="sts",dt="endpoint",BG="https://sts.{Region}.{PartitionResult#dnsSuffix}",$c="error",H1="getAttr",kG={[TG]:!1,[Fe]:"String"},X1={[TG]:!0,default:!1,[Fe]:"Boolean"},Yt={[Wr]:"Region"},GG={[Wr]:"UseFIPS"},UG={[Wr]:"UseDualStack"},RG={[We]:"isSet",[Ke]:[{[Wr]:"Endpoint"}]},XG={[Wr]:"Endpoint"},rn={url:"https://sts.amazonaws.com",[Ri]:{authSchemes:[{name:jG,signingRegion:MG,signingName:OG}]},[Ni]:{}},tr={},NG={conditions:[{[We]:Jt,[Ke]:[Yt,"aws-global"]}],[dt]:rn,[Fe]:dt},$G={[We]:zi,[Ke]:[GG,!0]},HG={[We]:zi,[Ke]:[UG,!0]},zG={[We]:zi,[Ke]:[!0,{[We]:H1,[Ke]:[{[Wr]:$1},"supportsFIPS"]}]},VG={[Wr]:$1},qG={[We]:zi,[Ke]:[!0,{[We]:H1,[Ke]:[VG,"supportsDualStack"]}]},LG={url:BG,[Ri]:{},[Ni]:{}},vpe=[XG],FG=[$G],DG=[HG],Ppe={version:"1.0",parameters:{Region:kG,UseDualStack:X1,UseFIPS:X1,Endpoint:kG,UseGlobalEndpoint:X1},rules:[{conditions:[{[We]:"aws.partition",[Ke]:[Yt],assign:$1}],[Fe]:Mn,rules:[{conditions:[{[We]:zi,[Ke]:[{[Wr]:"UseGlobalEndpoint"},Cpe]},{[We]:zi,[Ke]:[GG,IG]},{[We]:zi,[Ke]:[UG,IG]},{[We]:"not",[Ke]:[RG]}],[Fe]:Mn,rules:[{conditions:[{[We]:Jt,[Ke]:[Yt,"ap-northeast-1"]}],endpoint:rn,[Fe]:dt},{conditions:[{[We]:Jt,[Ke]:[Yt,"ap-south-1"]}],endpoint:rn,[Fe]:dt},{conditions:[{[We]:Jt,[Ke]:[Yt,"ap-southeast-1"]}],endpoint:rn,[Fe]:dt},{conditions:[{[We]:Jt,[Ke]:[Yt,"ap-southeast-2"]}],endpoint:rn,[Fe]:dt},NG,{conditions:[{[We]:Jt,[Ke]:[Yt,"ca-central-1"]}],endpoint:rn,[Fe]:dt},{conditions:[{[We]:Jt,[Ke]:[Yt,"eu-central-1"]}],endpoint:rn,[Fe]:dt},{conditions:[{[We]:Jt,[Ke]:[Yt,"eu-north-1"]}],endpoint:rn,[Fe]:dt},{conditions:[{[We]:Jt,[Ke]:[Yt,"eu-west-1"]}],endpoint:rn,[Fe]:dt},{conditions:[{[We]:Jt,[Ke]:[Yt,"eu-west-2"]}],endpoint:rn,[Fe]:dt},{conditions:[{[We]:Jt,[Ke]:[Yt,"eu-west-3"]}],endpoint:rn,[Fe]:dt},{conditions:[{[We]:Jt,[Ke]:[Yt,"sa-east-1"]}],endpoint:rn,[Fe]:dt},{conditions:[{[We]:Jt,[Ke]:[Yt,MG]}],endpoint:rn,[Fe]:dt},{conditions:[{[We]:Jt,[Ke]:[Yt,"us-east-2"]}],endpoint:rn,[Fe]:dt},{conditions:[{[We]:Jt,[Ke]:[Yt,"us-west-1"]}],endpoint:rn,[Fe]:dt},{conditions:[{[We]:Jt,[Ke]:[Yt,"us-west-2"]}],endpoint:rn,[Fe]:dt},{endpoint:{url:BG,[Ri]:{authSchemes:[{name:jG,signingRegion:"{Region}",signingName:OG}]},[Ni]:tr},[Fe]:dt}]},{conditions:[RG,{[We]:"parseURL",[Ke]:vpe,assign:"url"}],[Fe]:Mn,rules:[{conditions:FG,error:"Invalid Configuration: FIPS and custom endpoint are not supported",[Fe]:$c},{[Fe]:Mn,rules:[{conditions:DG,error:"Invalid Configuration: Dualstack and custom endpoint are not supported",[Fe]:$c},{endpoint:{url:XG,[Ri]:tr,[Ni]:tr},[Fe]:dt}]}]},{conditions:[$G,HG],[Fe]:Mn,rules:[{conditions:[zG,qG],[Fe]:Mn,rules:[{endpoint:{url:"https://sts-fips.{Region}.{PartitionResult#dualStackDnsSuffix}",[Ri]:tr,[Ni]:tr},[Fe]:dt}]},{error:"FIPS and DualStack are enabled, but this partition does not support one or both",[Fe]:$c}]},{conditions:FG,[Fe]:Mn,rules:[{conditions:[zG],[Fe]:Mn,rules:[{[Fe]:Mn,rules:[{conditions:[{[We]:Jt,[Ke]:["aws-us-gov",{[We]:H1,[Ke]:[VG,"name"]}]}],endpoint:LG,[Fe]:dt},{endpoint:{url:"https://sts-fips.{Region}.{PartitionResult#dnsSuffix}",[Ri]:tr,[Ni]:tr},[Fe]:dt}]}]},{error:"FIPS is enabled but this partition does not support FIPS",[Fe]:$c}]},{conditions:DG,[Fe]:Mn,rules:[{conditions:[qG],[Fe]:Mn,rules:[{endpoint:{url:"https://sts.{Region}.{PartitionResult#dualStackDnsSuffix}",[Ri]:tr,[Ni]:tr},[Fe]:dt}]},{error:"DualStack is enabled but this partition does not support DualStack",[Fe]:$c}]},{[Fe]:Mn,rules:[NG,{endpoint:LG,[Fe]:dt}]}]}]};uh.ruleSet=Ppe});var KG=u(mh=>{"use strict";Object.defineProperty(mh,"__esModule",{value:!0});mh.defaultEndpointResolver=void 0;var Ape=Ur(),xpe=WG(),bpe=(e,n={})=>(0,Ape.resolveEndpoint)(xpe.ruleSet,{endpointParams:e,logger:n.logger});mh.defaultEndpointResolver=bpe});var YG=u(ph=>{"use strict";Object.defineProperty(ph,"__esModule",{value:!0});ph.getRuntimeConfig=void 0;var Ipe=E(),kpe=ts(),QG=Br(),JG=Sn(),Rpe=KG(),Npe=e=>({apiVersion:"2011-06-15",base64Decoder:e?.base64Decoder??QG.fromBase64,base64Encoder:e?.base64Encoder??QG.toBase64,disableHostPrefix:e?.disableHostPrefix??!1,endpointProvider:e?.endpointProvider??Rpe.defaultEndpointResolver,logger:e?.logger??new Ipe.NoOpLogger,serviceId:e?.serviceId??"STS",urlParser:e?.urlParser??kpe.parseUrl,utf8Decoder:e?.utf8Decoder??JG.fromUtf8,utf8Encoder:e?.utf8Encoder??JG.toUtf8});ph.getRuntimeConfig=Npe});var tU=u(yh=>{"use strict";Object.defineProperty(yh,"__esModule",{value:!0});yh.getRuntimeConfig=void 0;var zpe=X(),qpe=zpe.__importDefault(gT()),Lpe=lb(),gh=tn(),Fpe=Vr(),Dpe=jr(),ZG=un(),Hc=Qn(),eU=Ks(),Tpe=Mr(),jpe=dn(),Mpe=Or(),Ope=YG(),Bpe=E(),Gpe=$r(),Upe=E(),Xpe=e=>{(0,Upe.emitWarningIfUnsupportedVersion)(process.version);let n=(0,Gpe.resolveDefaultsModeConfig)(e),t=()=>n().then(Bpe.loadConfigsForDefaultMode),s=(0,Ope.getRuntimeConfig)(e);return{...s,...e,runtime:"node",defaultsMode:n,bodyLengthChecker:e?.bodyLengthChecker??Tpe.calculateBodyLength,credentialDefaultProvider:e?.credentialDefaultProvider??(0,Lpe.decorateDefaultCredentialProvider)(Fpe.defaultProvider),defaultUserAgentProvider:e?.defaultUserAgentProvider??(0,Mpe.defaultUserAgent)({serviceId:s.serviceId,clientVersion:qpe.default.version}),maxAttempts:e?.maxAttempts??(0,Hc.loadConfig)(ZG.NODE_MAX_ATTEMPT_CONFIG_OPTIONS),region:e?.region??(0,Hc.loadConfig)(gh.NODE_REGION_CONFIG_OPTIONS,gh.NODE_REGION_CONFIG_FILE_OPTIONS),requestHandler:e?.requestHandler??new eU.NodeHttpHandler(t),retryMode:e?.retryMode??(0,Hc.loadConfig)({...ZG.NODE_RETRY_MODE_CONFIG_OPTIONS,default:async()=>(await t()).retryMode||jpe.DEFAULT_RETRY_MODE}),sha256:e?.sha256??Dpe.Hash.bind(null,"sha256"),streamCollector:e?.streamCollector??eU.streamCollector,useDualstackEndpoint:e?.useDualstackEndpoint??(0,Hc.loadConfig)(gh.NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS),useFipsEndpoint:e?.useFipsEndpoint??(0,Hc.loadConfig)(gh.NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS)}};yh.getRuntimeConfig=Xpe});var fh=u(_h=>{"use strict";Object.defineProperty(_h,"__esModule",{value:!0});_h.STSClient=void 0;var $pe=tn(),Hpe=fr(),Vpe=x(),nU=Sr(),Wpe=hr(),Kpe=wr(),sU=un(),Qpe=mT(),rU=xr(),Jpe=E(),Ype=pT(),Zpe=tU(),Vc=class extends Jpe.Client{constructor(n){let t=(0,Zpe.getRuntimeConfig)(n),s=(0,Ype.resolveClientEndpointParameters)(t),r=(0,$pe.resolveRegionConfig)(s),i=(0,Vpe.resolveEndpointConfig)(r),a=(0,sU.resolveRetryConfig)(i),o=(0,nU.resolveHostHeaderConfig)(a),c=(0,Qpe.resolveStsAuthConfig)(o,{stsClientCtor:Vc}),l=(0,rU.resolveUserAgentConfig)(c);super(l),this.config=l,this.middlewareStack.use((0,sU.getRetryPlugin)(this.config)),this.middlewareStack.use((0,Hpe.getContentLengthPlugin)(this.config)),this.middlewareStack.use((0,nU.getHostHeaderPlugin)(this.config)),this.middlewareStack.use((0,Wpe.getLoggerPlugin)(this.config)),this.middlewareStack.use((0,Kpe.getRecursionDetectionPlugin)(this.config)),this.middlewareStack.use((0,rU.getUserAgentPlugin)(this.config))}destroy(){super.destroy()}};_h.STSClient=Vc});var iU=u(Sh=>{"use strict";Object.defineProperty(Sh,"__esModule",{value:!0});Sh.STS=void 0;var ege=u_(),tge=sb(),nge=g_(),sge=rb(),rge=ib(),ige=ob(),oge=ab(),age=cb(),cge=fh(),V1=class extends cge.STSClient{assumeRole(n,t,s){let r=new ege.AssumeRoleCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}assumeRoleWithSAML(n,t,s){let r=new tge.AssumeRoleWithSAMLCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}assumeRoleWithWebIdentity(n,t,s){let r=new nge.AssumeRoleWithWebIdentityCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}decodeAuthorizationMessage(n,t,s){let r=new sge.DecodeAuthorizationMessageCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}getAccessKeyInfo(n,t,s){let r=new rge.GetAccessKeyInfoCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}getCallerIdentity(n,t,s){let r=new ige.GetCallerIdentityCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}getFederationToken(n,t,s){let r=new oge.GetFederationTokenCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}getSessionToken(n,t,s){let r=new age.GetSessionTokenCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}};Sh.STS=V1});var oU=u(Ps=>{"use strict";Object.defineProperty(Ps,"__esModule",{value:!0});var Kr=X();Kr.__exportStar(u_(),Ps);Kr.__exportStar(sb(),Ps);Kr.__exportStar(g_(),Ps);Kr.__exportStar(rb(),Ps);Kr.__exportStar(ib(),Ps);Kr.__exportStar(ob(),Ps);Kr.__exportStar(ab(),Ps);Kr.__exportStar(cb(),Ps)});var dU=u(As=>{"use strict";Object.defineProperty(As,"__esModule",{value:!0});As.decorateDefaultCredentialProvider=As.getDefaultRoleAssumerWithWebIdentity=As.getDefaultRoleAssumer=void 0;var aU=lb(),cU=fh(),lU=(e,n)=>n?class extends e{constructor(s){super(s);for(let r of n)this.middlewareStack.use(r)}}:e,lge=(e={},n)=>(0,aU.getDefaultRoleAssumer)(e,lU(cU.STSClient,n));As.getDefaultRoleAssumer=lge;var dge=(e={},n)=>(0,aU.getDefaultRoleAssumerWithWebIdentity)(e,lU(cU.STSClient,n));As.getDefaultRoleAssumerWithWebIdentity=dge;var uge=e=>n=>e({roleAssumer:(0,As.getDefaultRoleAssumer)(n),roleAssumerWithWebIdentity:(0,As.getDefaultRoleAssumerWithWebIdentity)(n),...n});As.decorateDefaultCredentialProvider=uge});var uU=u(W1=>{"use strict";Object.defineProperty(W1,"__esModule",{value:!0});var mge=X();mge.__exportStar(Kn(),W1)});var xs=u(nr=>{"use strict";Object.defineProperty(nr,"__esModule",{value:!0});nr.STSServiceException=void 0;var Wc=X();Wc.__exportStar(iU(),nr);Wc.__exportStar(fh(),nr);Wc.__exportStar(oU(),nr);Wc.__exportStar(dU(),nr);Wc.__exportStar(uU(),nr);var pge=o_();Object.defineProperty(nr,"STSServiceException",{enumerable:!0,get:function(){return pge.STSServiceException}})});var vU=u(hh=>{"use strict";Object.defineProperty(hh,"__esModule",{value:!0});hh.ruleSet=void 0;var hU="required",sr="fn",rr="argv",Eo="ref",K1="PartitionResult",bs="tree",Kc="error",Qc="endpoint",mU={[hU]:!1,type:"String"},pU={[hU]:!0,default:!1,type:"Boolean"},wU={[Eo]:"Endpoint"},EU={[sr]:"booleanEquals",[rr]:[{[Eo]:"UseFIPS"},!0]},CU={[sr]:"booleanEquals",[rr]:[{[Eo]:"UseDualStack"},!0]},Is={},gU={[sr]:"booleanEquals",[rr]:[!0,{[sr]:"getAttr",[rr]:[{[Eo]:K1},"supportsFIPS"]}]},yU={[sr]:"booleanEquals",[rr]:[!0,{[sr]:"getAttr",[rr]:[{[Eo]:K1},"supportsDualStack"]}]},_U=[wU],fU=[EU],SU=[CU],gge={version:"1.0",parameters:{Region:mU,UseDualStack:pU,UseFIPS:pU,Endpoint:mU},rules:[{conditions:[{[sr]:"aws.partition",[rr]:[{[Eo]:"Region"}],assign:K1}],type:bs,rules:[{conditions:[{[sr]:"isSet",[rr]:_U},{[sr]:"parseURL",[rr]:_U,assign:"url"}],type:bs,rules:[{conditions:fU,error:"Invalid Configuration: FIPS and custom endpoint are not supported",type:Kc},{type:bs,rules:[{conditions:SU,error:"Invalid Configuration: Dualstack and custom endpoint are not supported",type:Kc},{endpoint:{url:wU,properties:Is,headers:Is},type:Qc}]}]},{conditions:[EU,CU],type:bs,rules:[{conditions:[gU,yU],type:bs,rules:[{endpoint:{url:"https://cognito-identity-fips.{Region}.{PartitionResult#dualStackDnsSuffix}",properties:Is,headers:Is},type:Qc}]},{error:"FIPS and DualStack are enabled, but this partition does not support one or both",type:Kc}]},{conditions:fU,type:bs,rules:[{conditions:[gU],type:bs,rules:[{type:bs,rules:[{endpoint:{url:"https://cognito-identity-fips.{Region}.{PartitionResult#dnsSuffix}",properties:Is,headers:Is},type:Qc}]}]},{error:"FIPS is enabled but this partition does not support FIPS",type:Kc}]},{conditions:SU,type:bs,rules:[{conditions:[yU],type:bs,rules:[{endpoint:{url:"https://cognito-identity.{Region}.{PartitionResult#dualStackDnsSuffix}",properties:Is,headers:Is},type:Qc}]},{error:"DualStack is enabled but this partition does not support DualStack",type:Kc}]},{endpoint:{url:"https://cognito-identity.{Region}.{PartitionResult#dnsSuffix}",properties:Is,headers:Is},type:Qc}]}]};hh.ruleSet=gge});var PU=u(wh=>{"use strict";Object.defineProperty(wh,"__esModule",{value:!0});wh.defaultEndpointResolver=void 0;var yge=Ur(),_ge=vU(),fge=(e,n={})=>(0,yge.resolveEndpoint)(_ge.ruleSet,{endpointParams:e,logger:n.logger});wh.defaultEndpointResolver=fge});var bU=u(Eh=>{"use strict";Object.defineProperty(Eh,"__esModule",{value:!0});Eh.getRuntimeConfig=void 0;var Sge=E(),hge=ts(),AU=Br(),xU=Sn(),wge=PU(),Ege=e=>({apiVersion:"2014-06-30",base64Decoder:e?.base64Decoder??AU.fromBase64,base64Encoder:e?.base64Encoder??AU.toBase64,disableHostPrefix:e?.disableHostPrefix??!1,endpointProvider:e?.endpointProvider??wge.defaultEndpointResolver,logger:e?.logger??new Sge.NoOpLogger,serviceId:e?.serviceId??"Cognito Identity",urlParser:e?.urlParser??hge.parseUrl,utf8Decoder:e?.utf8Decoder??xU.fromUtf8,utf8Encoder:e?.utf8Encoder??xU.toUtf8});Eh.getRuntimeConfig=Ege});var RU=u(vh=>{"use strict";Object.defineProperty(vh,"__esModule",{value:!0});vh.getRuntimeConfig=void 0;var Cge=X(),vge=Cge.__importDefault(_D()),Pge=xs(),Ch=tn(),Age=Vr(),xge=jr(),IU=un(),Jc=Qn(),kU=Ks(),bge=Mr(),Ige=dn(),kge=Or(),Rge=bU(),Nge=E(),zge=$r(),qge=E(),Lge=e=>{(0,qge.emitWarningIfUnsupportedVersion)(process.version);let n=(0,zge.resolveDefaultsModeConfig)(e),t=()=>n().then(Nge.loadConfigsForDefaultMode),s=(0,Rge.getRuntimeConfig)(e);return{...s,...e,runtime:"node",defaultsMode:n,bodyLengthChecker:e?.bodyLengthChecker??bge.calculateBodyLength,credentialDefaultProvider:e?.credentialDefaultProvider??(0,Pge.decorateDefaultCredentialProvider)(Age.defaultProvider),defaultUserAgentProvider:e?.defaultUserAgentProvider??(0,kge.defaultUserAgent)({serviceId:s.serviceId,clientVersion:vge.default.version}),maxAttempts:e?.maxAttempts??(0,Jc.loadConfig)(IU.NODE_MAX_ATTEMPT_CONFIG_OPTIONS),region:e?.region??(0,Jc.loadConfig)(Ch.NODE_REGION_CONFIG_OPTIONS,Ch.NODE_REGION_CONFIG_FILE_OPTIONS),requestHandler:e?.requestHandler??new kU.NodeHttpHandler(t),retryMode:e?.retryMode??(0,Jc.loadConfig)({...IU.NODE_RETRY_MODE_CONFIG_OPTIONS,default:async()=>(await t()).retryMode||Ige.DEFAULT_RETRY_MODE}),sha256:e?.sha256??xge.Hash.bind(null,"sha256"),streamCollector:e?.streamCollector??kU.streamCollector,useDualstackEndpoint:e?.useDualstackEndpoint??(0,Jc.loadConfig)(Ch.NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS),useFipsEndpoint:e?.useFipsEndpoint??(0,Jc.loadConfig)(Ch.NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS)}};vh.getRuntimeConfig=Lge});var Ah=u(Ph=>{"use strict";Object.defineProperty(Ph,"__esModule",{value:!0});Ph.CognitoIdentityClient=void 0;var Fge=tn(),Dge=fr(),Tge=x(),NU=Sr(),jge=hr(),Mge=wr(),zU=un(),Oge=He(),qU=xr(),Bge=E(),Gge=yD(),Uge=RU(),Q1=class extends Bge.Client{constructor(n){let t=(0,Uge.getRuntimeConfig)(n),s=(0,Gge.resolveClientEndpointParameters)(t),r=(0,Fge.resolveRegionConfig)(s),i=(0,Tge.resolveEndpointConfig)(r),a=(0,zU.resolveRetryConfig)(i),o=(0,NU.resolveHostHeaderConfig)(a),c=(0,Oge.resolveAwsAuthConfig)(o),l=(0,qU.resolveUserAgentConfig)(c);super(l),this.config=l,this.middlewareStack.use((0,zU.getRetryPlugin)(this.config)),this.middlewareStack.use((0,Dge.getContentLengthPlugin)(this.config)),this.middlewareStack.use((0,NU.getHostHeaderPlugin)(this.config)),this.middlewareStack.use((0,jge.getLoggerPlugin)(this.config)),this.middlewareStack.use((0,Mge.getRecursionDetectionPlugin)(this.config)),this.middlewareStack.use((0,qU.getUserAgentPlugin)(this.config))}destroy(){super.destroy()}};Ph.CognitoIdentityClient=Q1});var bh=u(xh=>{"use strict";Object.defineProperty(xh,"__esModule",{value:!0});xh.CognitoIdentityServiceException=void 0;var Xge=E(),Yc=class extends Xge.ServiceException{constructor(n){super(n),Object.setPrototypeOf(this,Yc.prototype)}};xh.CognitoIdentityServiceException=Yc});var st=u(j=>{"use strict";Object.defineProperty(j,"__esModule",{value:!0});j.LookupDeveloperIdentityResponseFilterSensitiveLog=j.LookupDeveloperIdentityInputFilterSensitiveLog=j.ListTagsForResourceResponseFilterSensitiveLog=j.ListTagsForResourceInputFilterSensitiveLog=j.ListIdentityPoolsResponseFilterSensitiveLog=j.IdentityPoolShortDescriptionFilterSensitiveLog=j.ListIdentityPoolsInputFilterSensitiveLog=j.ListIdentitiesResponseFilterSensitiveLog=j.ListIdentitiesInputFilterSensitiveLog=j.GetPrincipalTagAttributeMapResponseFilterSensitiveLog=j.GetPrincipalTagAttributeMapInputFilterSensitiveLog=j.GetOpenIdTokenForDeveloperIdentityResponseFilterSensitiveLog=j.GetOpenIdTokenForDeveloperIdentityInputFilterSensitiveLog=j.GetOpenIdTokenResponseFilterSensitiveLog=j.GetOpenIdTokenInputFilterSensitiveLog=j.GetIdentityPoolRolesResponseFilterSensitiveLog=j.RoleMappingFilterSensitiveLog=j.RulesConfigurationTypeFilterSensitiveLog=j.MappingRuleFilterSensitiveLog=j.GetIdentityPoolRolesInputFilterSensitiveLog=j.GetIdResponseFilterSensitiveLog=j.GetIdInputFilterSensitiveLog=j.GetCredentialsForIdentityResponseFilterSensitiveLog=j.CredentialsFilterSensitiveLog=j.GetCredentialsForIdentityInputFilterSensitiveLog=j.DescribeIdentityPoolInputFilterSensitiveLog=j.IdentityDescriptionFilterSensitiveLog=j.DescribeIdentityInputFilterSensitiveLog=j.DeleteIdentityPoolInputFilterSensitiveLog=j.DeleteIdentitiesResponseFilterSensitiveLog=j.UnprocessedIdentityIdFilterSensitiveLog=j.DeleteIdentitiesInputFilterSensitiveLog=j.IdentityPoolFilterSensitiveLog=j.CreateIdentityPoolInputFilterSensitiveLog=j.CognitoIdentityProviderFilterSensitiveLog=j.ConcurrentModificationException=j.DeveloperUserAlreadyRegisteredException=j.RoleMappingType=j.MappingRuleMatchType=j.InvalidIdentityPoolConfigurationException=j.ExternalServiceException=j.ResourceNotFoundException=j.ErrorCode=j.TooManyRequestsException=j.ResourceConflictException=j.NotAuthorizedException=j.LimitExceededException=j.InvalidParameterException=j.InternalErrorException=j.AmbiguousRoleResolutionType=void 0;j.UntagResourceResponseFilterSensitiveLog=j.UntagResourceInputFilterSensitiveLog=j.UnlinkIdentityInputFilterSensitiveLog=j.UnlinkDeveloperIdentityInputFilterSensitiveLog=j.TagResourceResponseFilterSensitiveLog=j.TagResourceInputFilterSensitiveLog=j.SetPrincipalTagAttributeMapResponseFilterSensitiveLog=j.SetPrincipalTagAttributeMapInputFilterSensitiveLog=j.SetIdentityPoolRolesInputFilterSensitiveLog=j.MergeDeveloperIdentitiesResponseFilterSensitiveLog=j.MergeDeveloperIdentitiesInputFilterSensitiveLog=void 0;var Jn=bh(),$ge;(function(e){e.AUTHENTICATED_ROLE="AuthenticatedRole",e.DENY="Deny"})($ge=j.AmbiguousRoleResolutionType||(j.AmbiguousRoleResolutionType={}));var Zc=class extends Jn.CognitoIdentityServiceException{constructor(n){super({name:"InternalErrorException",$fault:"server",...n}),this.name="InternalErrorException",this.$fault="server",Object.setPrototypeOf(this,Zc.prototype)}};j.InternalErrorException=Zc;var el=class extends Jn.CognitoIdentityServiceException{constructor(n){super({name:"InvalidParameterException",$fault:"client",...n}),this.name="InvalidParameterException",this.$fault="client",Object.setPrototypeOf(this,el.prototype)}};j.InvalidParameterException=el;var tl=class extends Jn.CognitoIdentityServiceException{constructor(n){super({name:"LimitExceededException",$fault:"client",...n}),this.name="LimitExceededException",this.$fault="client",Object.setPrototypeOf(this,tl.prototype)}};j.LimitExceededException=tl;var nl=class extends Jn.CognitoIdentityServiceException{constructor(n){super({name:"NotAuthorizedException",$fault:"client",...n}),this.name="NotAuthorizedException",this.$fault="client",Object.setPrototypeOf(this,nl.prototype)}};j.NotAuthorizedException=nl;var sl=class extends Jn.CognitoIdentityServiceException{constructor(n){super({name:"ResourceConflictException",$fault:"client",...n}),this.name="ResourceConflictException",this.$fault="client",Object.setPrototypeOf(this,sl.prototype)}};j.ResourceConflictException=sl;var rl=class extends Jn.CognitoIdentityServiceException{constructor(n){super({name:"TooManyRequestsException",$fault:"client",...n}),this.name="TooManyRequestsException",this.$fault="client",Object.setPrototypeOf(this,rl.prototype)}};j.TooManyRequestsException=rl;var Hge;(function(e){e.ACCESS_DENIED="AccessDenied",e.INTERNAL_SERVER_ERROR="InternalServerError"})(Hge=j.ErrorCode||(j.ErrorCode={}));var il=class extends Jn.CognitoIdentityServiceException{constructor(n){super({name:"ResourceNotFoundException",$fault:"client",...n}),this.name="ResourceNotFoundException",this.$fault="client",Object.setPrototypeOf(this,il.prototype)}};j.ResourceNotFoundException=il;var ol=class extends Jn.CognitoIdentityServiceException{constructor(n){super({name:"ExternalServiceException",$fault:"client",...n}),this.name="ExternalServiceException",this.$fault="client",Object.setPrototypeOf(this,ol.prototype)}};j.ExternalServiceException=ol;var al=class extends Jn.CognitoIdentityServiceException{constructor(n){super({name:"InvalidIdentityPoolConfigurationException",$fault:"client",...n}),this.name="InvalidIdentityPoolConfigurationException",this.$fault="client",Object.setPrototypeOf(this,al.prototype)}};j.InvalidIdentityPoolConfigurationException=al;var Vge;(function(e){e.CONTAINS="Contains",e.EQUALS="Equals",e.NOT_EQUAL="NotEqual",e.STARTS_WITH="StartsWith"})(Vge=j.MappingRuleMatchType||(j.MappingRuleMatchType={}));var Wge;(function(e){e.RULES="Rules",e.TOKEN="Token"})(Wge=j.RoleMappingType||(j.RoleMappingType={}));var cl=class extends Jn.CognitoIdentityServiceException{constructor(n){super({name:"DeveloperUserAlreadyRegisteredException",$fault:"client",...n}),this.name="DeveloperUserAlreadyRegisteredException",this.$fault="client",Object.setPrototypeOf(this,cl.prototype)}};j.DeveloperUserAlreadyRegisteredException=cl;var ll=class extends Jn.CognitoIdentityServiceException{constructor(n){super({name:"ConcurrentModificationException",$fault:"client",...n}),this.name="ConcurrentModificationException",this.$fault="client",Object.setPrototypeOf(this,ll.prototype)}};j.ConcurrentModificationException=ll;var Kge=e=>({...e});j.CognitoIdentityProviderFilterSensitiveLog=Kge;var Qge=e=>({...e});j.CreateIdentityPoolInputFilterSensitiveLog=Qge;var Jge=e=>({...e});j.IdentityPoolFilterSensitiveLog=Jge;var Yge=e=>({...e});j.DeleteIdentitiesInputFilterSensitiveLog=Yge;var Zge=e=>({...e});j.UnprocessedIdentityIdFilterSensitiveLog=Zge;var eye=e=>({...e});j.DeleteIdentitiesResponseFilterSensitiveLog=eye;var tye=e=>({...e});j.DeleteIdentityPoolInputFilterSensitiveLog=tye;var nye=e=>({...e});j.DescribeIdentityInputFilterSensitiveLog=nye;var sye=e=>({...e});j.IdentityDescriptionFilterSensitiveLog=sye;var rye=e=>({...e});j.DescribeIdentityPoolInputFilterSensitiveLog=rye;var iye=e=>({...e});j.GetCredentialsForIdentityInputFilterSensitiveLog=iye;var oye=e=>({...e});j.CredentialsFilterSensitiveLog=oye;var aye=e=>({...e});j.GetCredentialsForIdentityResponseFilterSensitiveLog=aye;var cye=e=>({...e});j.GetIdInputFilterSensitiveLog=cye;var lye=e=>({...e});j.GetIdResponseFilterSensitiveLog=lye;var dye=e=>({...e});j.GetIdentityPoolRolesInputFilterSensitiveLog=dye;var uye=e=>({...e});j.MappingRuleFilterSensitiveLog=uye;var mye=e=>({...e});j.RulesConfigurationTypeFilterSensitiveLog=mye;var pye=e=>({...e});j.RoleMappingFilterSensitiveLog=pye;var gye=e=>({...e});j.GetIdentityPoolRolesResponseFilterSensitiveLog=gye;var yye=e=>({...e});j.GetOpenIdTokenInputFilterSensitiveLog=yye;var _ye=e=>({...e});j.GetOpenIdTokenResponseFilterSensitiveLog=_ye;var fye=e=>({...e});j.GetOpenIdTokenForDeveloperIdentityInputFilterSensitiveLog=fye;var Sye=e=>({...e});j.GetOpenIdTokenForDeveloperIdentityResponseFilterSensitiveLog=Sye;var hye=e=>({...e});j.GetPrincipalTagAttributeMapInputFilterSensitiveLog=hye;var wye=e=>({...e});j.GetPrincipalTagAttributeMapResponseFilterSensitiveLog=wye;var Eye=e=>({...e});j.ListIdentitiesInputFilterSensitiveLog=Eye;var Cye=e=>({...e});j.ListIdentitiesResponseFilterSensitiveLog=Cye;var vye=e=>({...e});j.ListIdentityPoolsInputFilterSensitiveLog=vye;var Pye=e=>({...e});j.IdentityPoolShortDescriptionFilterSensitiveLog=Pye;var Aye=e=>({...e});j.ListIdentityPoolsResponseFilterSensitiveLog=Aye;var xye=e=>({...e});j.ListTagsForResourceInputFilterSensitiveLog=xye;var bye=e=>({...e});j.ListTagsForResourceResponseFilterSensitiveLog=bye;var Iye=e=>({...e});j.LookupDeveloperIdentityInputFilterSensitiveLog=Iye;var kye=e=>({...e});j.LookupDeveloperIdentityResponseFilterSensitiveLog=kye;var Rye=e=>({...e});j.MergeDeveloperIdentitiesInputFilterSensitiveLog=Rye;var Nye=e=>({...e});j.MergeDeveloperIdentitiesResponseFilterSensitiveLog=Nye;var zye=e=>({...e});j.SetIdentityPoolRolesInputFilterSensitiveLog=zye;var qye=e=>({...e});j.SetPrincipalTagAttributeMapInputFilterSensitiveLog=qye;var Lye=e=>({...e});j.SetPrincipalTagAttributeMapResponseFilterSensitiveLog=Lye;var Fye=e=>({...e});j.TagResourceInputFilterSensitiveLog=Fye;var Dye=e=>({...e});j.TagResourceResponseFilterSensitiveLog=Dye;var Tye=e=>({...e});j.UnlinkDeveloperIdentityInputFilterSensitiveLog=Tye;var jye=e=>({...e});j.UnlinkIdentityInputFilterSensitiveLog=jye;var Mye=e=>({...e});j.UntagResourceInputFilterSensitiveLog=Mye;var Oye=e=>({...e});j.UntagResourceResponseFilterSensitiveLog=Oye});var ut=u(H=>{"use strict";Object.defineProperty(H,"__esModule",{value:!0});H.deserializeAws_json1_1UpdateIdentityPoolCommand=H.deserializeAws_json1_1UntagResourceCommand=H.deserializeAws_json1_1UnlinkIdentityCommand=H.deserializeAws_json1_1UnlinkDeveloperIdentityCommand=H.deserializeAws_json1_1TagResourceCommand=H.deserializeAws_json1_1SetPrincipalTagAttributeMapCommand=H.deserializeAws_json1_1SetIdentityPoolRolesCommand=H.deserializeAws_json1_1MergeDeveloperIdentitiesCommand=H.deserializeAws_json1_1LookupDeveloperIdentityCommand=H.deserializeAws_json1_1ListTagsForResourceCommand=H.deserializeAws_json1_1ListIdentityPoolsCommand=H.deserializeAws_json1_1ListIdentitiesCommand=H.deserializeAws_json1_1GetPrincipalTagAttributeMapCommand=H.deserializeAws_json1_1GetOpenIdTokenForDeveloperIdentityCommand=H.deserializeAws_json1_1GetOpenIdTokenCommand=H.deserializeAws_json1_1GetIdentityPoolRolesCommand=H.deserializeAws_json1_1GetIdCommand=H.deserializeAws_json1_1GetCredentialsForIdentityCommand=H.deserializeAws_json1_1DescribeIdentityPoolCommand=H.deserializeAws_json1_1DescribeIdentityCommand=H.deserializeAws_json1_1DeleteIdentityPoolCommand=H.deserializeAws_json1_1DeleteIdentitiesCommand=H.deserializeAws_json1_1CreateIdentityPoolCommand=H.serializeAws_json1_1UpdateIdentityPoolCommand=H.serializeAws_json1_1UntagResourceCommand=H.serializeAws_json1_1UnlinkIdentityCommand=H.serializeAws_json1_1UnlinkDeveloperIdentityCommand=H.serializeAws_json1_1TagResourceCommand=H.serializeAws_json1_1SetPrincipalTagAttributeMapCommand=H.serializeAws_json1_1SetIdentityPoolRolesCommand=H.serializeAws_json1_1MergeDeveloperIdentitiesCommand=H.serializeAws_json1_1LookupDeveloperIdentityCommand=H.serializeAws_json1_1ListTagsForResourceCommand=H.serializeAws_json1_1ListIdentityPoolsCommand=H.serializeAws_json1_1ListIdentitiesCommand=H.serializeAws_json1_1GetPrincipalTagAttributeMapCommand=H.serializeAws_json1_1GetOpenIdTokenForDeveloperIdentityCommand=H.serializeAws_json1_1GetOpenIdTokenCommand=H.serializeAws_json1_1GetIdentityPoolRolesCommand=H.serializeAws_json1_1GetIdCommand=H.serializeAws_json1_1GetCredentialsForIdentityCommand=H.serializeAws_json1_1DescribeIdentityPoolCommand=H.serializeAws_json1_1DescribeIdentityCommand=H.serializeAws_json1_1DeleteIdentityPoolCommand=H.serializeAws_json1_1DeleteIdentitiesCommand=H.serializeAws_json1_1CreateIdentityPoolCommand=void 0;var Bye=gt(),B=E(),yt=bh(),Yn=st(),Gye=async(e,n)=>{let t={"content-type":"application/x-amz-json-1.1","x-amz-target":"AWSCognitoIdentityService.CreateIdentityPool"},s;return s=JSON.stringify(ofe(e,n)),ht(n,t,"/",void 0,s)};H.serializeAws_json1_1CreateIdentityPoolCommand=Gye;var Uye=async(e,n)=>{let t={"content-type":"application/x-amz-json-1.1","x-amz-target":"AWSCognitoIdentityService.DeleteIdentities"},s;return s=JSON.stringify(afe(e,n)),ht(n,t,"/",void 0,s)};H.serializeAws_json1_1DeleteIdentitiesCommand=Uye;var Xye=async(e,n)=>{let t={"content-type":"application/x-amz-json-1.1","x-amz-target":"AWSCognitoIdentityService.DeleteIdentityPool"},s;return s=JSON.stringify(cfe(e,n)),ht(n,t,"/",void 0,s)};H.serializeAws_json1_1DeleteIdentityPoolCommand=Xye;var $ye=async(e,n)=>{let t={"content-type":"application/x-amz-json-1.1","x-amz-target":"AWSCognitoIdentityService.DescribeIdentity"},s;return s=JSON.stringify(lfe(e,n)),ht(n,t,"/",void 0,s)};H.serializeAws_json1_1DescribeIdentityCommand=$ye;var Hye=async(e,n)=>{let t={"content-type":"application/x-amz-json-1.1","x-amz-target":"AWSCognitoIdentityService.DescribeIdentityPool"},s;return s=JSON.stringify(dfe(e,n)),ht(n,t,"/",void 0,s)};H.serializeAws_json1_1DescribeIdentityPoolCommand=Hye;var Vye=async(e,n)=>{let t={"content-type":"application/x-amz-json-1.1","x-amz-target":"AWSCognitoIdentityService.GetCredentialsForIdentity"},s;return s=JSON.stringify(ufe(e,n)),ht(n,t,"/",void 0,s)};H.serializeAws_json1_1GetCredentialsForIdentityCommand=Vye;var Wye=async(e,n)=>{let t={"content-type":"application/x-amz-json-1.1","x-amz-target":"AWSCognitoIdentityService.GetId"},s;return s=JSON.stringify(pfe(e,n)),ht(n,t,"/",void 0,s)};H.serializeAws_json1_1GetIdCommand=Wye;var Kye=async(e,n)=>{let t={"content-type":"application/x-amz-json-1.1","x-amz-target":"AWSCognitoIdentityService.GetIdentityPoolRoles"},s;return s=JSON.stringify(mfe(e,n)),ht(n,t,"/",void 0,s)};H.serializeAws_json1_1GetIdentityPoolRolesCommand=Kye;var Qye=async(e,n)=>{let t={"content-type":"application/x-amz-json-1.1","x-amz-target":"AWSCognitoIdentityService.GetOpenIdToken"},s;return s=JSON.stringify(yfe(e,n)),ht(n,t,"/",void 0,s)};H.serializeAws_json1_1GetOpenIdTokenCommand=Qye;var Jye=async(e,n)=>{let t={"content-type":"application/x-amz-json-1.1","x-amz-target":"AWSCognitoIdentityService.GetOpenIdTokenForDeveloperIdentity"},s;return s=JSON.stringify(gfe(e,n)),ht(n,t,"/",void 0,s)};H.serializeAws_json1_1GetOpenIdTokenForDeveloperIdentityCommand=Jye;var Yye=async(e,n)=>{let t={"content-type":"application/x-amz-json-1.1","x-amz-target":"AWSCognitoIdentityService.GetPrincipalTagAttributeMap"},s;return s=JSON.stringify(_fe(e,n)),ht(n,t,"/",void 0,s)};H.serializeAws_json1_1GetPrincipalTagAttributeMapCommand=Yye;var Zye=async(e,n)=>{let t={"content-type":"application/x-amz-json-1.1","x-amz-target":"AWSCognitoIdentityService.ListIdentities"},s;return s=JSON.stringify(wfe(e,n)),ht(n,t,"/",void 0,s)};H.serializeAws_json1_1ListIdentitiesCommand=Zye;var e_e=async(e,n)=>{let t={"content-type":"application/x-amz-json-1.1","x-amz-target":"AWSCognitoIdentityService.ListIdentityPools"},s;return s=JSON.stringify(Efe(e,n)),ht(n,t,"/",void 0,s)};H.serializeAws_json1_1ListIdentityPoolsCommand=e_e;var t_e=async(e,n)=>{let t={"content-type":"application/x-amz-json-1.1","x-amz-target":"AWSCognitoIdentityService.ListTagsForResource"},s;return s=JSON.stringify(Cfe(e,n)),ht(n,t,"/",void 0,s)};H.serializeAws_json1_1ListTagsForResourceCommand=t_e;var n_e=async(e,n)=>{let t={"content-type":"application/x-amz-json-1.1","x-amz-target":"AWSCognitoIdentityService.LookupDeveloperIdentity"},s;return s=JSON.stringify(Pfe(e,n)),ht(n,t,"/",void 0,s)};H.serializeAws_json1_1LookupDeveloperIdentityCommand=n_e;var s_e=async(e,n)=>{let t={"content-type":"application/x-amz-json-1.1","x-amz-target":"AWSCognitoIdentityService.MergeDeveloperIdentities"},s;return s=JSON.stringify(bfe(e,n)),ht(n,t,"/",void 0,s)};H.serializeAws_json1_1MergeDeveloperIdentitiesCommand=s_e;var r_e=async(e,n)=>{let t={"content-type":"application/x-amz-json-1.1","x-amz-target":"AWSCognitoIdentityService.SetIdentityPoolRoles"},s;return s=JSON.stringify(zfe(e,n)),ht(n,t,"/",void 0,s)};H.serializeAws_json1_1SetIdentityPoolRolesCommand=r_e;var i_e=async(e,n)=>{let t={"content-type":"application/x-amz-json-1.1","x-amz-target":"AWSCognitoIdentityService.SetPrincipalTagAttributeMap"},s;return s=JSON.stringify(qfe(e,n)),ht(n,t,"/",void 0,s)};H.serializeAws_json1_1SetPrincipalTagAttributeMapCommand=i_e;var o_e=async(e,n)=>{let t={"content-type":"application/x-amz-json-1.1","x-amz-target":"AWSCognitoIdentityService.TagResource"},s;return s=JSON.stringify(Lfe(e,n)),ht(n,t,"/",void 0,s)};H.serializeAws_json1_1TagResourceCommand=o_e;var a_e=async(e,n)=>{let t={"content-type":"application/x-amz-json-1.1","x-amz-target":"AWSCognitoIdentityService.UnlinkDeveloperIdentity"},s;return s=JSON.stringify(Ffe(e,n)),ht(n,t,"/",void 0,s)};H.serializeAws_json1_1UnlinkDeveloperIdentityCommand=a_e;var c_e=async(e,n)=>{let t={"content-type":"application/x-amz-json-1.1","x-amz-target":"AWSCognitoIdentityService.UnlinkIdentity"},s;return s=JSON.stringify(Dfe(e,n)),ht(n,t,"/",void 0,s)};H.serializeAws_json1_1UnlinkIdentityCommand=c_e;var l_e=async(e,n)=>{let t={"content-type":"application/x-amz-json-1.1","x-amz-target":"AWSCognitoIdentityService.UntagResource"},s;return s=JSON.stringify(Tfe(e,n)),ht(n,t,"/",void 0,s)};H.serializeAws_json1_1UntagResourceCommand=l_e;var d_e=async(e,n)=>{let t={"content-type":"application/x-amz-json-1.1","x-amz-target":"AWSCognitoIdentityService.UpdateIdentityPool"},s;return s=JSON.stringify(Sfe(e,n)),ht(n,t,"/",void 0,s)};H.serializeAws_json1_1UpdateIdentityPoolCommand=d_e;var u_e=async(e,n)=>{if(e.statusCode>=300)return m_e(e,n);let t=await Mt(e.body,n),s={};s=Z1(t,n);let r={$metadata:Me(e),...s};return Promise.resolve(r)};H.deserializeAws_json1_1CreateIdentityPoolCommand=u_e;var m_e=async(e,n)=>{let t={...e,body:await wt(e.body,n)},s=Et(e,t.body);switch(s){case"InternalErrorException":case"com.amazonaws.cognitoidentity#InternalErrorException":throw await _t(t,n);case"InvalidParameterException":case"com.amazonaws.cognitoidentity#InvalidParameterException":throw await ft(t,n);case"LimitExceededException":case"com.amazonaws.cognitoidentity#LimitExceededException":throw await J1(t,n);case"NotAuthorizedException":case"com.amazonaws.cognitoidentity#NotAuthorizedException":throw await xt(t,n);case"ResourceConflictException":case"com.amazonaws.cognitoidentity#ResourceConflictException":throw await On(t,n);case"TooManyRequestsException":case"com.amazonaws.cognitoidentity#TooManyRequestsException":throw await St(t,n);default:let r=t.body;(0,B.throwDefaultError)({output:e,parsedBody:r,exceptionCtor:yt.CognitoIdentityServiceException,errorCode:s})}},p_e=async(e,n)=>{if(e.statusCode>=300)return g_e(e,n);let t=await Mt(e.body,n),s={};s=Gfe(t,n);let r={$metadata:Me(e),...s};return Promise.resolve(r)};H.deserializeAws_json1_1DeleteIdentitiesCommand=p_e;var g_e=async(e,n)=>{let t={...e,body:await wt(e.body,n)},s=Et(e,t.body);switch(s){case"InternalErrorException":case"com.amazonaws.cognitoidentity#InternalErrorException":throw await _t(t,n);case"InvalidParameterException":case"com.amazonaws.cognitoidentity#InvalidParameterException":throw await ft(t,n);case"TooManyRequestsException":case"com.amazonaws.cognitoidentity#TooManyRequestsException":throw await St(t,n);default:let r=t.body;(0,B.throwDefaultError)({output:e,parsedBody:r,exceptionCtor:yt.CognitoIdentityServiceException,errorCode:s})}},y_e=async(e,n)=>{if(e.statusCode>=300)return __e(e,n);await ul(e.body,n);let t={$metadata:Me(e)};return Promise.resolve(t)};H.deserializeAws_json1_1DeleteIdentityPoolCommand=y_e;var __e=async(e,n)=>{let t={...e,body:await wt(e.body,n)},s=Et(e,t.body);switch(s){case"InternalErrorException":case"com.amazonaws.cognitoidentity#InternalErrorException":throw await _t(t,n);case"InvalidParameterException":case"com.amazonaws.cognitoidentity#InvalidParameterException":throw await ft(t,n);case"NotAuthorizedException":case"com.amazonaws.cognitoidentity#NotAuthorizedException":throw await xt(t,n);case"ResourceNotFoundException":case"com.amazonaws.cognitoidentity#ResourceNotFoundException":throw await Lt(t,n);case"TooManyRequestsException":case"com.amazonaws.cognitoidentity#TooManyRequestsException":throw await St(t,n);default:let r=t.body;(0,B.throwDefaultError)({output:e,parsedBody:r,exceptionCtor:yt.CognitoIdentityServiceException,errorCode:s})}},f_e=async(e,n)=>{if(e.statusCode>=300)return S_e(e,n);let t=await Mt(e.body,n),s={};s=OU(t,n);let r={$metadata:Me(e),...s};return Promise.resolve(r)};H.deserializeAws_json1_1DescribeIdentityCommand=f_e;var S_e=async(e,n)=>{let t={...e,body:await wt(e.body,n)},s=Et(e,t.body);switch(s){case"InternalErrorException":case"com.amazonaws.cognitoidentity#InternalErrorException":throw await _t(t,n);case"InvalidParameterException":case"com.amazonaws.cognitoidentity#InvalidParameterException":throw await ft(t,n);case"NotAuthorizedException":case"com.amazonaws.cognitoidentity#NotAuthorizedException":throw await xt(t,n);case"ResourceNotFoundException":case"com.amazonaws.cognitoidentity#ResourceNotFoundException":throw await Lt(t,n);case"TooManyRequestsException":case"com.amazonaws.cognitoidentity#TooManyRequestsException":throw await St(t,n);default:let r=t.body;(0,B.throwDefaultError)({output:e,parsedBody:r,exceptionCtor:yt.CognitoIdentityServiceException,errorCode:s})}},h_e=async(e,n)=>{if(e.statusCode>=300)return w_e(e,n);let t=await Mt(e.body,n),s={};s=Z1(t,n);let r={$metadata:Me(e),...s};return Promise.resolve(r)};H.deserializeAws_json1_1DescribeIdentityPoolCommand=h_e;var w_e=async(e,n)=>{let t={...e,body:await wt(e.body,n)},s=Et(e,t.body);switch(s){case"InternalErrorException":case"com.amazonaws.cognitoidentity#InternalErrorException":throw await _t(t,n);case"InvalidParameterException":case"com.amazonaws.cognitoidentity#InvalidParameterException":throw await ft(t,n);case"NotAuthorizedException":case"com.amazonaws.cognitoidentity#NotAuthorizedException":throw await xt(t,n);case"ResourceNotFoundException":case"com.amazonaws.cognitoidentity#ResourceNotFoundException":throw await Lt(t,n);case"TooManyRequestsException":case"com.amazonaws.cognitoidentity#TooManyRequestsException":throw await St(t,n);default:let r=t.body;(0,B.throwDefaultError)({output:e,parsedBody:r,exceptionCtor:yt.CognitoIdentityServiceException,errorCode:s})}},E_e=async(e,n)=>{if(e.statusCode>=300)return C_e(e,n);let t=await Mt(e.body,n),s={};s=Hfe(t,n);let r={$metadata:Me(e),...s};return Promise.resolve(r)};H.deserializeAws_json1_1GetCredentialsForIdentityCommand=E_e;var C_e=async(e,n)=>{let t={...e,body:await wt(e.body,n)},s=Et(e,t.body);switch(s){case"ExternalServiceException":case"com.amazonaws.cognitoidentity#ExternalServiceException":throw await Ih(t,n);case"InternalErrorException":case"com.amazonaws.cognitoidentity#InternalErrorException":throw await _t(t,n);case"InvalidIdentityPoolConfigurationException":case"com.amazonaws.cognitoidentity#InvalidIdentityPoolConfigurationException":throw await rfe(t,n);case"InvalidParameterException":case"com.amazonaws.cognitoidentity#InvalidParameterException":throw await ft(t,n);case"NotAuthorizedException":case"com.amazonaws.cognitoidentity#NotAuthorizedException":throw await xt(t,n);case"ResourceConflictException":case"com.amazonaws.cognitoidentity#ResourceConflictException":throw await On(t,n);case"ResourceNotFoundException":case"com.amazonaws.cognitoidentity#ResourceNotFoundException":throw await Lt(t,n);case"TooManyRequestsException":case"com.amazonaws.cognitoidentity#TooManyRequestsException":throw await St(t,n);default:let r=t.body;(0,B.throwDefaultError)({output:e,parsedBody:r,exceptionCtor:yt.CognitoIdentityServiceException,errorCode:s})}},v_e=async(e,n)=>{if(e.statusCode>=300)return P_e(e,n);let t=await Mt(e.body,n),s={};s=Wfe(t,n);let r={$metadata:Me(e),...s};return Promise.resolve(r)};H.deserializeAws_json1_1GetIdCommand=v_e;var P_e=async(e,n)=>{let t={...e,body:await wt(e.body,n)},s=Et(e,t.body);switch(s){case"ExternalServiceException":case"com.amazonaws.cognitoidentity#ExternalServiceException":throw await Ih(t,n);case"InternalErrorException":case"com.amazonaws.cognitoidentity#InternalErrorException":throw await _t(t,n);case"InvalidParameterException":case"com.amazonaws.cognitoidentity#InvalidParameterException":throw await ft(t,n);case"LimitExceededException":case"com.amazonaws.cognitoidentity#LimitExceededException":throw await J1(t,n);case"NotAuthorizedException":case"com.amazonaws.cognitoidentity#NotAuthorizedException":throw await xt(t,n);case"ResourceConflictException":case"com.amazonaws.cognitoidentity#ResourceConflictException":throw await On(t,n);case"ResourceNotFoundException":case"com.amazonaws.cognitoidentity#ResourceNotFoundException":throw await Lt(t,n);case"TooManyRequestsException":case"com.amazonaws.cognitoidentity#TooManyRequestsException":throw await St(t,n);default:let r=t.body;(0,B.throwDefaultError)({output:e,parsedBody:r,exceptionCtor:yt.CognitoIdentityServiceException,errorCode:s})}},A_e=async(e,n)=>{if(e.statusCode>=300)return x_e(e,n);let t=await Mt(e.body,n),s={};s=Vfe(t,n);let r={$metadata:Me(e),...s};return Promise.resolve(r)};H.deserializeAws_json1_1GetIdentityPoolRolesCommand=A_e;var x_e=async(e,n)=>{let t={...e,body:await wt(e.body,n)},s=Et(e,t.body);switch(s){case"InternalErrorException":case"com.amazonaws.cognitoidentity#InternalErrorException":throw await _t(t,n);case"InvalidParameterException":case"com.amazonaws.cognitoidentity#InvalidParameterException":throw await ft(t,n);case"NotAuthorizedException":case"com.amazonaws.cognitoidentity#NotAuthorizedException":throw await xt(t,n);case"ResourceConflictException":case"com.amazonaws.cognitoidentity#ResourceConflictException":throw await On(t,n);case"ResourceNotFoundException":case"com.amazonaws.cognitoidentity#ResourceNotFoundException":throw await Lt(t,n);case"TooManyRequestsException":case"com.amazonaws.cognitoidentity#TooManyRequestsException":throw await St(t,n);default:let r=t.body;(0,B.throwDefaultError)({output:e,parsedBody:r,exceptionCtor:yt.CognitoIdentityServiceException,errorCode:s})}},b_e=async(e,n)=>{if(e.statusCode>=300)return I_e(e,n);let t=await Mt(e.body,n),s={};s=Qfe(t,n);let r={$metadata:Me(e),...s};return Promise.resolve(r)};H.deserializeAws_json1_1GetOpenIdTokenCommand=b_e;var I_e=async(e,n)=>{let t={...e,body:await wt(e.body,n)},s=Et(e,t.body);switch(s){case"ExternalServiceException":case"com.amazonaws.cognitoidentity#ExternalServiceException":throw await Ih(t,n);case"InternalErrorException":case"com.amazonaws.cognitoidentity#InternalErrorException":throw await _t(t,n);case"InvalidParameterException":case"com.amazonaws.cognitoidentity#InvalidParameterException":throw await ft(t,n);case"NotAuthorizedException":case"com.amazonaws.cognitoidentity#NotAuthorizedException":throw await xt(t,n);case"ResourceConflictException":case"com.amazonaws.cognitoidentity#ResourceConflictException":throw await On(t,n);case"ResourceNotFoundException":case"com.amazonaws.cognitoidentity#ResourceNotFoundException":throw await Lt(t,n);case"TooManyRequestsException":case"com.amazonaws.cognitoidentity#TooManyRequestsException":throw await St(t,n);default:let r=t.body;(0,B.throwDefaultError)({output:e,parsedBody:r,exceptionCtor:yt.CognitoIdentityServiceException,errorCode:s})}},k_e=async(e,n)=>{if(e.statusCode>=300)return R_e(e,n);let t=await Mt(e.body,n),s={};s=Kfe(t,n);let r={$metadata:Me(e),...s};return Promise.resolve(r)};H.deserializeAws_json1_1GetOpenIdTokenForDeveloperIdentityCommand=k_e;var R_e=async(e,n)=>{let t={...e,body:await wt(e.body,n)},s=Et(e,t.body);switch(s){case"DeveloperUserAlreadyRegisteredException":case"com.amazonaws.cognitoidentity#DeveloperUserAlreadyRegisteredException":throw await sfe(t,n);case"InternalErrorException":case"com.amazonaws.cognitoidentity#InternalErrorException":throw await _t(t,n);case"InvalidParameterException":case"com.amazonaws.cognitoidentity#InvalidParameterException":throw await ft(t,n);case"NotAuthorizedException":case"com.amazonaws.cognitoidentity#NotAuthorizedException":throw await xt(t,n);case"ResourceConflictException":case"com.amazonaws.cognitoidentity#ResourceConflictException":throw await On(t,n);case"ResourceNotFoundException":case"com.amazonaws.cognitoidentity#ResourceNotFoundException":throw await Lt(t,n);case"TooManyRequestsException":case"com.amazonaws.cognitoidentity#TooManyRequestsException":throw await St(t,n);default:let r=t.body;(0,B.throwDefaultError)({output:e,parsedBody:r,exceptionCtor:yt.CognitoIdentityServiceException,errorCode:s})}},N_e=async(e,n)=>{if(e.statusCode>=300)return z_e(e,n);let t=await Mt(e.body,n),s={};s=Jfe(t,n);let r={$metadata:Me(e),...s};return Promise.resolve(r)};H.deserializeAws_json1_1GetPrincipalTagAttributeMapCommand=N_e;var z_e=async(e,n)=>{let t={...e,body:await wt(e.body,n)},s=Et(e,t.body);switch(s){case"InternalErrorException":case"com.amazonaws.cognitoidentity#InternalErrorException":throw await _t(t,n);case"InvalidParameterException":case"com.amazonaws.cognitoidentity#InvalidParameterException":throw await ft(t,n);case"NotAuthorizedException":case"com.amazonaws.cognitoidentity#NotAuthorizedException":throw await xt(t,n);case"ResourceNotFoundException":case"com.amazonaws.cognitoidentity#ResourceNotFoundException":throw await Lt(t,n);case"TooManyRequestsException":case"com.amazonaws.cognitoidentity#TooManyRequestsException":throw await St(t,n);default:let r=t.body;(0,B.throwDefaultError)({output:e,parsedBody:r,exceptionCtor:yt.CognitoIdentityServiceException,errorCode:s})}},q_e=async(e,n)=>{if(e.statusCode>=300)return L_e(e,n);let t=await Mt(e.body,n),s={};s=oSe(t,n);let r={$metadata:Me(e),...s};return Promise.resolve(r)};H.deserializeAws_json1_1ListIdentitiesCommand=q_e;var L_e=async(e,n)=>{let t={...e,body:await wt(e.body,n)},s=Et(e,t.body);switch(s){case"InternalErrorException":case"com.amazonaws.cognitoidentity#InternalErrorException":throw await _t(t,n);case"InvalidParameterException":case"com.amazonaws.cognitoidentity#InvalidParameterException":throw await ft(t,n);case"NotAuthorizedException":case"com.amazonaws.cognitoidentity#NotAuthorizedException":throw await xt(t,n);case"ResourceNotFoundException":case"com.amazonaws.cognitoidentity#ResourceNotFoundException":throw await Lt(t,n);case"TooManyRequestsException":case"com.amazonaws.cognitoidentity#TooManyRequestsException":throw await St(t,n);default:let r=t.body;(0,B.throwDefaultError)({output:e,parsedBody:r,exceptionCtor:yt.CognitoIdentityServiceException,errorCode:s})}},F_e=async(e,n)=>{if(e.statusCode>=300)return D_e(e,n);let t=await Mt(e.body,n),s={};s=aSe(t,n);let r={$metadata:Me(e),...s};return Promise.resolve(r)};H.deserializeAws_json1_1ListIdentityPoolsCommand=F_e;var D_e=async(e,n)=>{let t={...e,body:await wt(e.body,n)},s=Et(e,t.body);switch(s){case"InternalErrorException":case"com.amazonaws.cognitoidentity#InternalErrorException":throw await _t(t,n);case"InvalidParameterException":case"com.amazonaws.cognitoidentity#InvalidParameterException":throw await ft(t,n);case"NotAuthorizedException":case"com.amazonaws.cognitoidentity#NotAuthorizedException":throw await xt(t,n);case"ResourceNotFoundException":case"com.amazonaws.cognitoidentity#ResourceNotFoundException":throw await Lt(t,n);case"TooManyRequestsException":case"com.amazonaws.cognitoidentity#TooManyRequestsException":throw await St(t,n);default:let r=t.body;(0,B.throwDefaultError)({output:e,parsedBody:r,exceptionCtor:yt.CognitoIdentityServiceException,errorCode:s})}},T_e=async(e,n)=>{if(e.statusCode>=300)return j_e(e,n);let t=await Mt(e.body,n),s={};s=cSe(t,n);let r={$metadata:Me(e),...s};return Promise.resolve(r)};H.deserializeAws_json1_1ListTagsForResourceCommand=T_e;var j_e=async(e,n)=>{let t={...e,body:await wt(e.body,n)},s=Et(e,t.body);switch(s){case"InternalErrorException":case"com.amazonaws.cognitoidentity#InternalErrorException":throw await _t(t,n);case"InvalidParameterException":case"com.amazonaws.cognitoidentity#InvalidParameterException":throw await ft(t,n);case"NotAuthorizedException":case"com.amazonaws.cognitoidentity#NotAuthorizedException":throw await xt(t,n);case"ResourceNotFoundException":case"com.amazonaws.cognitoidentity#ResourceNotFoundException":throw await Lt(t,n);case"TooManyRequestsException":case"com.amazonaws.cognitoidentity#TooManyRequestsException":throw await St(t,n);default:let r=t.body;(0,B.throwDefaultError)({output:e,parsedBody:r,exceptionCtor:yt.CognitoIdentityServiceException,errorCode:s})}},M_e=async(e,n)=>{if(e.statusCode>=300)return O_e(e,n);let t=await Mt(e.body,n),s={};s=dSe(t,n);let r={$metadata:Me(e),...s};return Promise.resolve(r)};H.deserializeAws_json1_1LookupDeveloperIdentityCommand=M_e;var O_e=async(e,n)=>{let t={...e,body:await wt(e.body,n)},s=Et(e,t.body);switch(s){case"InternalErrorException":case"com.amazonaws.cognitoidentity#InternalErrorException":throw await _t(t,n);case"InvalidParameterException":case"com.amazonaws.cognitoidentity#InvalidParameterException":throw await ft(t,n);case"NotAuthorizedException":case"com.amazonaws.cognitoidentity#NotAuthorizedException":throw await xt(t,n);case"ResourceConflictException":case"com.amazonaws.cognitoidentity#ResourceConflictException":throw await On(t,n);case"ResourceNotFoundException":case"com.amazonaws.cognitoidentity#ResourceNotFoundException":throw await Lt(t,n);case"TooManyRequestsException":case"com.amazonaws.cognitoidentity#TooManyRequestsException":throw await St(t,n);default:let r=t.body;(0,B.throwDefaultError)({output:e,parsedBody:r,exceptionCtor:yt.CognitoIdentityServiceException,errorCode:s})}},B_e=async(e,n)=>{if(e.statusCode>=300)return G_e(e,n);let t=await Mt(e.body,n),s={};s=pSe(t,n);let r={$metadata:Me(e),...s};return Promise.resolve(r)};H.deserializeAws_json1_1MergeDeveloperIdentitiesCommand=B_e;var G_e=async(e,n)=>{let t={...e,body:await wt(e.body,n)},s=Et(e,t.body);switch(s){case"InternalErrorException":case"com.amazonaws.cognitoidentity#InternalErrorException":throw await _t(t,n);case"InvalidParameterException":case"com.amazonaws.cognitoidentity#InvalidParameterException":throw await ft(t,n);case"NotAuthorizedException":case"com.amazonaws.cognitoidentity#NotAuthorizedException":throw await xt(t,n);case"ResourceConflictException":case"com.amazonaws.cognitoidentity#ResourceConflictException":throw await On(t,n);case"ResourceNotFoundException":case"com.amazonaws.cognitoidentity#ResourceNotFoundException":throw await Lt(t,n);case"TooManyRequestsException":case"com.amazonaws.cognitoidentity#TooManyRequestsException":throw await St(t,n);default:let r=t.body;(0,B.throwDefaultError)({output:e,parsedBody:r,exceptionCtor:yt.CognitoIdentityServiceException,errorCode:s})}},U_e=async(e,n)=>{if(e.statusCode>=300)return X_e(e,n);await ul(e.body,n);let t={$metadata:Me(e)};return Promise.resolve(t)};H.deserializeAws_json1_1SetIdentityPoolRolesCommand=U_e;var X_e=async(e,n)=>{let t={...e,body:await wt(e.body,n)},s=Et(e,t.body);switch(s){case"ConcurrentModificationException":case"com.amazonaws.cognitoidentity#ConcurrentModificationException":throw await LU(t,n);case"InternalErrorException":case"com.amazonaws.cognitoidentity#InternalErrorException":throw await _t(t,n);case"InvalidParameterException":case"com.amazonaws.cognitoidentity#InvalidParameterException":throw await ft(t,n);case"NotAuthorizedException":case"com.amazonaws.cognitoidentity#NotAuthorizedException":throw await xt(t,n);case"ResourceConflictException":case"com.amazonaws.cognitoidentity#ResourceConflictException":throw await On(t,n);case"ResourceNotFoundException":case"com.amazonaws.cognitoidentity#ResourceNotFoundException":throw await Lt(t,n);case"TooManyRequestsException":case"com.amazonaws.cognitoidentity#TooManyRequestsException":throw await St(t,n);default:let r=t.body;(0,B.throwDefaultError)({output:e,parsedBody:r,exceptionCtor:yt.CognitoIdentityServiceException,errorCode:s})}},$_e=async(e,n)=>{if(e.statusCode>=300)return H_e(e,n);let t=await Mt(e.body,n),s={};s=vSe(t,n);let r={$metadata:Me(e),...s};return Promise.resolve(r)};H.deserializeAws_json1_1SetPrincipalTagAttributeMapCommand=$_e;var H_e=async(e,n)=>{let t={...e,body:await wt(e.body,n)},s=Et(e,t.body);switch(s){case"InternalErrorException":case"com.amazonaws.cognitoidentity#InternalErrorException":throw await _t(t,n);case"InvalidParameterException":case"com.amazonaws.cognitoidentity#InvalidParameterException":throw await ft(t,n);case"NotAuthorizedException":case"com.amazonaws.cognitoidentity#NotAuthorizedException":throw await xt(t,n);case"ResourceNotFoundException":case"com.amazonaws.cognitoidentity#ResourceNotFoundException":throw await Lt(t,n);case"TooManyRequestsException":case"com.amazonaws.cognitoidentity#TooManyRequestsException":throw await St(t,n);default:let r=t.body;(0,B.throwDefaultError)({output:e,parsedBody:r,exceptionCtor:yt.CognitoIdentityServiceException,errorCode:s})}},V_e=async(e,n)=>{if(e.statusCode>=300)return W_e(e,n);let t=await Mt(e.body,n),s={};s=PSe(t,n);let r={$metadata:Me(e),...s};return Promise.resolve(r)};H.deserializeAws_json1_1TagResourceCommand=V_e;var W_e=async(e,n)=>{let t={...e,body:await wt(e.body,n)},s=Et(e,t.body);switch(s){case"InternalErrorException":case"com.amazonaws.cognitoidentity#InternalErrorException":throw await _t(t,n);case"InvalidParameterException":case"com.amazonaws.cognitoidentity#InvalidParameterException":throw await ft(t,n);case"NotAuthorizedException":case"com.amazonaws.cognitoidentity#NotAuthorizedException":throw await xt(t,n);case"ResourceNotFoundException":case"com.amazonaws.cognitoidentity#ResourceNotFoundException":throw await Lt(t,n);case"TooManyRequestsException":case"com.amazonaws.cognitoidentity#TooManyRequestsException":throw await St(t,n);default:let r=t.body;(0,B.throwDefaultError)({output:e,parsedBody:r,exceptionCtor:yt.CognitoIdentityServiceException,errorCode:s})}},K_e=async(e,n)=>{if(e.statusCode>=300)return Q_e(e,n);await ul(e.body,n);let t={$metadata:Me(e)};return Promise.resolve(t)};H.deserializeAws_json1_1UnlinkDeveloperIdentityCommand=K_e;var Q_e=async(e,n)=>{let t={...e,body:await wt(e.body,n)},s=Et(e,t.body);switch(s){case"InternalErrorException":case"com.amazonaws.cognitoidentity#InternalErrorException":throw await _t(t,n);case"InvalidParameterException":case"com.amazonaws.cognitoidentity#InvalidParameterException":throw await ft(t,n);case"NotAuthorizedException":case"com.amazonaws.cognitoidentity#NotAuthorizedException":throw await xt(t,n);case"ResourceConflictException":case"com.amazonaws.cognitoidentity#ResourceConflictException":throw await On(t,n);case"ResourceNotFoundException":case"com.amazonaws.cognitoidentity#ResourceNotFoundException":throw await Lt(t,n);case"TooManyRequestsException":case"com.amazonaws.cognitoidentity#TooManyRequestsException":throw await St(t,n);default:let r=t.body;(0,B.throwDefaultError)({output:e,parsedBody:r,exceptionCtor:yt.CognitoIdentityServiceException,errorCode:s})}},J_e=async(e,n)=>{if(e.statusCode>=300)return Y_e(e,n);await ul(e.body,n);let t={$metadata:Me(e)};return Promise.resolve(t)};H.deserializeAws_json1_1UnlinkIdentityCommand=J_e;var Y_e=async(e,n)=>{let t={...e,body:await wt(e.body,n)},s=Et(e,t.body);switch(s){case"ExternalServiceException":case"com.amazonaws.cognitoidentity#ExternalServiceException":throw await Ih(t,n);case"InternalErrorException":case"com.amazonaws.cognitoidentity#InternalErrorException":throw await _t(t,n);case"InvalidParameterException":case"com.amazonaws.cognitoidentity#InvalidParameterException":throw await ft(t,n);case"NotAuthorizedException":case"com.amazonaws.cognitoidentity#NotAuthorizedException":throw await xt(t,n);case"ResourceConflictException":case"com.amazonaws.cognitoidentity#ResourceConflictException":throw await On(t,n);case"ResourceNotFoundException":case"com.amazonaws.cognitoidentity#ResourceNotFoundException":throw await Lt(t,n);case"TooManyRequestsException":case"com.amazonaws.cognitoidentity#TooManyRequestsException":throw await St(t,n);default:let r=t.body;(0,B.throwDefaultError)({output:e,parsedBody:r,exceptionCtor:yt.CognitoIdentityServiceException,errorCode:s})}},Z_e=async(e,n)=>{if(e.statusCode>=300)return efe(e,n);let t=await Mt(e.body,n),s={};s=ISe(t,n);let r={$metadata:Me(e),...s};return Promise.resolve(r)};H.deserializeAws_json1_1UntagResourceCommand=Z_e;var efe=async(e,n)=>{let t={...e,body:await wt(e.body,n)},s=Et(e,t.body);switch(s){case"InternalErrorException":case"com.amazonaws.cognitoidentity#InternalErrorException":throw await _t(t,n);case"InvalidParameterException":case"com.amazonaws.cognitoidentity#InvalidParameterException":throw await ft(t,n);case"NotAuthorizedException":case"com.amazonaws.cognitoidentity#NotAuthorizedException":throw await xt(t,n);case"ResourceNotFoundException":case"com.amazonaws.cognitoidentity#ResourceNotFoundException":throw await Lt(t,n);case"TooManyRequestsException":case"com.amazonaws.cognitoidentity#TooManyRequestsException":throw await St(t,n);default:let r=t.body;(0,B.throwDefaultError)({output:e,parsedBody:r,exceptionCtor:yt.CognitoIdentityServiceException,errorCode:s})}},tfe=async(e,n)=>{if(e.statusCode>=300)return nfe(e,n);let t=await Mt(e.body,n),s={};s=Z1(t,n);let r={$metadata:Me(e),...s};return Promise.resolve(r)};H.deserializeAws_json1_1UpdateIdentityPoolCommand=tfe;var nfe=async(e,n)=>{let t={...e,body:await wt(e.body,n)},s=Et(e,t.body);switch(s){case"ConcurrentModificationException":case"com.amazonaws.cognitoidentity#ConcurrentModificationException":throw await LU(t,n);case"InternalErrorException":case"com.amazonaws.cognitoidentity#InternalErrorException":throw await _t(t,n);case"InvalidParameterException":case"com.amazonaws.cognitoidentity#InvalidParameterException":throw await ft(t,n);case"LimitExceededException":case"com.amazonaws.cognitoidentity#LimitExceededException":throw await J1(t,n);case"NotAuthorizedException":case"com.amazonaws.cognitoidentity#NotAuthorizedException":throw await xt(t,n);case"ResourceConflictException":case"com.amazonaws.cognitoidentity#ResourceConflictException":throw await On(t,n);case"ResourceNotFoundException":case"com.amazonaws.cognitoidentity#ResourceNotFoundException":throw await Lt(t,n);case"TooManyRequestsException":case"com.amazonaws.cognitoidentity#TooManyRequestsException":throw await St(t,n);default:let r=t.body;(0,B.throwDefaultError)({output:e,parsedBody:r,exceptionCtor:yt.CognitoIdentityServiceException,errorCode:s})}},LU=async(e,n)=>{let t=e.body,s=Ofe(t,n),r=new Yn.ConcurrentModificationException({$metadata:Me(e),...s});return(0,B.decorateServiceException)(r,t)},sfe=async(e,n)=>{let t=e.body,s=Ufe(t,n),r=new Yn.DeveloperUserAlreadyRegisteredException({$metadata:Me(e),...s});return(0,B.decorateServiceException)(r,t)},Ih=async(e,n)=>{let t=e.body,s=$fe(t,n),r=new Yn.ExternalServiceException({$metadata:Me(e),...s});return(0,B.decorateServiceException)(r,t)},_t=async(e,n)=>{let t=e.body,s=nSe(t,n),r=new Yn.InternalErrorException({$metadata:Me(e),...s});return(0,B.decorateServiceException)(r,t)},rfe=async(e,n)=>{let t=e.body,s=sSe(t,n),r=new Yn.InvalidIdentityPoolConfigurationException({$metadata:Me(e),...s});return(0,B.decorateServiceException)(r,t)},ft=async(e,n)=>{let t=e.body,s=rSe(t,n),r=new Yn.InvalidParameterException({$metadata:Me(e),...s});return(0,B.decorateServiceException)(r,t)},J1=async(e,n)=>{let t=e.body,s=iSe(t,n),r=new Yn.LimitExceededException({$metadata:Me(e),...s});return(0,B.decorateServiceException)(r,t)},xt=async(e,n)=>{let t=e.body,s=gSe(t,n),r=new Yn.NotAuthorizedException({$metadata:Me(e),...s});return(0,B.decorateServiceException)(r,t)},On=async(e,n)=>{let t=e.body,s=_Se(t,n),r=new Yn.ResourceConflictException({$metadata:Me(e),...s});return(0,B.decorateServiceException)(r,t)},Lt=async(e,n)=>{let t=e.body,s=fSe(t,n),r=new Yn.ResourceNotFoundException({$metadata:Me(e),...s});return(0,B.decorateServiceException)(r,t)},St=async(e,n)=>{let t=e.body,s=ASe(t,n),r=new Yn.TooManyRequestsException({$metadata:Me(e),...s});return(0,B.decorateServiceException)(r,t)},ife=(e,n)=>({...e.ClientId!=null&&{ClientId:e.ClientId},...e.ProviderName!=null&&{ProviderName:e.ProviderName},...e.ServerSideTokenCheck!=null&&{ServerSideTokenCheck:e.ServerSideTokenCheck}}),FU=(e,n)=>e.filter(t=>t!=null).map(t=>ife(t,n)),ofe=(e,n)=>({...e.AllowClassicFlow!=null&&{AllowClassicFlow:e.AllowClassicFlow},...e.AllowUnauthenticatedIdentities!=null&&{AllowUnauthenticatedIdentities:e.AllowUnauthenticatedIdentities},...e.CognitoIdentityProviders!=null&&{CognitoIdentityProviders:FU(e.CognitoIdentityProviders,n)},...e.DeveloperProviderName!=null&&{DeveloperProviderName:e.DeveloperProviderName},...e.IdentityPoolName!=null&&{IdentityPoolName:e.IdentityPoolName},...e.IdentityPoolTags!=null&&{IdentityPoolTags:Y1(e.IdentityPoolTags,n)},...e.OpenIdConnectProviderARNs!=null&&{OpenIdConnectProviderARNs:TU(e.OpenIdConnectProviderARNs,n)},...e.SamlProviderARNs!=null&&{SamlProviderARNs:MU(e.SamlProviderARNs,n)},...e.SupportedLoginProviders!=null&&{SupportedLoginProviders:DU(e.SupportedLoginProviders,n)}}),afe=(e,n)=>({...e.IdentityIdsToDelete!=null&&{IdentityIdsToDelete:ffe(e.IdentityIdsToDelete,n)}}),cfe=(e,n)=>({...e.IdentityPoolId!=null&&{IdentityPoolId:e.IdentityPoolId}}),lfe=(e,n)=>({...e.IdentityId!=null&&{IdentityId:e.IdentityId}}),dfe=(e,n)=>({...e.IdentityPoolId!=null&&{IdentityPoolId:e.IdentityPoolId}}),ufe=(e,n)=>({...e.CustomRoleArn!=null&&{CustomRoleArn:e.CustomRoleArn},...e.IdentityId!=null&&{IdentityId:e.IdentityId},...e.Logins!=null&&{Logins:dl(e.Logins,n)}}),mfe=(e,n)=>({...e.IdentityPoolId!=null&&{IdentityPoolId:e.IdentityPoolId}}),pfe=(e,n)=>({...e.AccountId!=null&&{AccountId:e.AccountId},...e.IdentityPoolId!=null&&{IdentityPoolId:e.IdentityPoolId},...e.Logins!=null&&{Logins:dl(e.Logins,n)}}),gfe=(e,n)=>({...e.IdentityId!=null&&{IdentityId:e.IdentityId},...e.IdentityPoolId!=null&&{IdentityPoolId:e.IdentityPoolId},...e.Logins!=null&&{Logins:dl(e.Logins,n)},...e.PrincipalTags!=null&&{PrincipalTags:jU(e.PrincipalTags,n)},...e.TokenDuration!=null&&{TokenDuration:e.TokenDuration}}),yfe=(e,n)=>({...e.IdentityId!=null&&{IdentityId:e.IdentityId},...e.Logins!=null&&{Logins:dl(e.Logins,n)}}),_fe=(e,n)=>({...e.IdentityPoolId!=null&&{IdentityPoolId:e.IdentityPoolId},...e.IdentityProviderName!=null&&{IdentityProviderName:e.IdentityProviderName}}),ffe=(e,n)=>e.filter(t=>t!=null).map(t=>t),Sfe=(e,n)=>({...e.AllowClassicFlow!=null&&{AllowClassicFlow:e.AllowClassicFlow},...e.AllowUnauthenticatedIdentities!=null&&{AllowUnauthenticatedIdentities:e.AllowUnauthenticatedIdentities},...e.CognitoIdentityProviders!=null&&{CognitoIdentityProviders:FU(e.CognitoIdentityProviders,n)},...e.DeveloperProviderName!=null&&{DeveloperProviderName:e.DeveloperProviderName},...e.IdentityPoolId!=null&&{IdentityPoolId:e.IdentityPoolId},...e.IdentityPoolName!=null&&{IdentityPoolName:e.IdentityPoolName},...e.IdentityPoolTags!=null&&{IdentityPoolTags:Y1(e.IdentityPoolTags,n)},...e.OpenIdConnectProviderARNs!=null&&{OpenIdConnectProviderARNs:TU(e.OpenIdConnectProviderARNs,n)},...e.SamlProviderARNs!=null&&{SamlProviderARNs:MU(e.SamlProviderARNs,n)},...e.SupportedLoginProviders!=null&&{SupportedLoginProviders:DU(e.SupportedLoginProviders,n)}}),hfe=(e,n)=>e.filter(t=>t!=null).map(t=>t),Y1=(e,n)=>Object.entries(e).reduce((t,[s,r])=>(r===null||(t[s]=r),t),{}),DU=(e,n)=>Object.entries(e).reduce((t,[s,r])=>(r===null||(t[s]=r),t),{}),wfe=(e,n)=>({...e.HideDisabled!=null&&{HideDisabled:e.HideDisabled},...e.IdentityPoolId!=null&&{IdentityPoolId:e.IdentityPoolId},...e.MaxResults!=null&&{MaxResults:e.MaxResults},...e.NextToken!=null&&{NextToken:e.NextToken}}),Efe=(e,n)=>({...e.MaxResults!=null&&{MaxResults:e.MaxResults},...e.NextToken!=null&&{NextToken:e.NextToken}}),Cfe=(e,n)=>({...e.ResourceArn!=null&&{ResourceArn:e.ResourceArn}}),vfe=(e,n)=>e.filter(t=>t!=null).map(t=>t),dl=(e,n)=>Object.entries(e).reduce((t,[s,r])=>(r===null||(t[s]=r),t),{}),Pfe=(e,n)=>({...e.DeveloperUserIdentifier!=null&&{DeveloperUserIdentifier:e.DeveloperUserIdentifier},...e.IdentityId!=null&&{IdentityId:e.IdentityId},...e.IdentityPoolId!=null&&{IdentityPoolId:e.IdentityPoolId},...e.MaxResults!=null&&{MaxResults:e.MaxResults},...e.NextToken!=null&&{NextToken:e.NextToken}}),Afe=(e,n)=>({...e.Claim!=null&&{Claim:e.Claim},...e.MatchType!=null&&{MatchType:e.MatchType},...e.RoleARN!=null&&{RoleARN:e.RoleARN},...e.Value!=null&&{Value:e.Value}}),xfe=(e,n)=>e.filter(t=>t!=null).map(t=>Afe(t,n)),bfe=(e,n)=>({...e.DestinationUserIdentifier!=null&&{DestinationUserIdentifier:e.DestinationUserIdentifier},...e.DeveloperProviderName!=null&&{DeveloperProviderName:e.DeveloperProviderName},...e.IdentityPoolId!=null&&{IdentityPoolId:e.IdentityPoolId},...e.SourceUserIdentifier!=null&&{SourceUserIdentifier:e.SourceUserIdentifier}}),TU=(e,n)=>e.filter(t=>t!=null).map(t=>t),jU=(e,n)=>Object.entries(e).reduce((t,[s,r])=>(r===null||(t[s]=r),t),{}),Ife=(e,n)=>({...e.AmbiguousRoleResolution!=null&&{AmbiguousRoleResolution:e.AmbiguousRoleResolution},...e.RulesConfiguration!=null&&{RulesConfiguration:Nfe(e.RulesConfiguration,n)},...e.Type!=null&&{Type:e.Type}}),kfe=(e,n)=>Object.entries(e).reduce((t,[s,r])=>(r===null||(t[s]=Ife(r,n)),t),{}),Rfe=(e,n)=>Object.entries(e).reduce((t,[s,r])=>(r===null||(t[s]=r),t),{}),Nfe=(e,n)=>({...e.Rules!=null&&{Rules:xfe(e.Rules,n)}}),MU=(e,n)=>e.filter(t=>t!=null).map(t=>t),zfe=(e,n)=>({...e.IdentityPoolId!=null&&{IdentityPoolId:e.IdentityPoolId},...e.RoleMappings!=null&&{RoleMappings:kfe(e.RoleMappings,n)},...e.Roles!=null&&{Roles:Rfe(e.Roles,n)}}),qfe=(e,n)=>({...e.IdentityPoolId!=null&&{IdentityPoolId:e.IdentityPoolId},...e.IdentityProviderName!=null&&{IdentityProviderName:e.IdentityProviderName},...e.PrincipalTags!=null&&{PrincipalTags:jU(e.PrincipalTags,n)},...e.UseDefaults!=null&&{UseDefaults:e.UseDefaults}}),Lfe=(e,n)=>({...e.ResourceArn!=null&&{ResourceArn:e.ResourceArn},...e.Tags!=null&&{Tags:Y1(e.Tags,n)}}),Ffe=(e,n)=>({...e.DeveloperProviderName!=null&&{DeveloperProviderName:e.DeveloperProviderName},...e.DeveloperUserIdentifier!=null&&{DeveloperUserIdentifier:e.DeveloperUserIdentifier},...e.IdentityId!=null&&{IdentityId:e.IdentityId},...e.IdentityPoolId!=null&&{IdentityPoolId:e.IdentityPoolId}}),Dfe=(e,n)=>({...e.IdentityId!=null&&{IdentityId:e.IdentityId},...e.Logins!=null&&{Logins:dl(e.Logins,n)},...e.LoginsToRemove!=null&&{LoginsToRemove:vfe(e.LoginsToRemove,n)}}),Tfe=(e,n)=>({...e.ResourceArn!=null&&{ResourceArn:e.ResourceArn},...e.TagKeys!=null&&{TagKeys:hfe(e.TagKeys,n)}}),jfe=(e,n)=>({ClientId:(0,B.expectString)(e.ClientId),ProviderName:(0,B.expectString)(e.ProviderName),ServerSideTokenCheck:(0,B.expectBoolean)(e.ServerSideTokenCheck)}),Mfe=(e,n)=>(e||[]).filter(s=>s!=null).map(s=>s===null?null:jfe(s,n)),Ofe=(e,n)=>({message:(0,B.expectString)(e.message)}),Bfe=(e,n)=>({AccessKeyId:(0,B.expectString)(e.AccessKeyId),Expiration:e.Expiration!=null?(0,B.expectNonNull)((0,B.parseEpochTimestamp)((0,B.expectNumber)(e.Expiration))):void 0,SecretKey:(0,B.expectString)(e.SecretKey),SessionToken:(0,B.expectString)(e.SessionToken)}),Gfe=(e,n)=>({UnprocessedIdentityIds:e.UnprocessedIdentityIds!=null?bSe(e.UnprocessedIdentityIds,n):void 0}),Ufe=(e,n)=>({message:(0,B.expectString)(e.message)}),Xfe=(e,n)=>(e||[]).filter(s=>s!=null).map(s=>s===null?null:(0,B.expectString)(s)),$fe=(e,n)=>({message:(0,B.expectString)(e.message)}),Hfe=(e,n)=>({Credentials:e.Credentials!=null?Bfe(e.Credentials,n):void 0,IdentityId:(0,B.expectString)(e.IdentityId)}),Vfe=(e,n)=>({IdentityPoolId:(0,B.expectString)(e.IdentityPoolId),RoleMappings:e.RoleMappings!=null?hSe(e.RoleMappings,n):void 0,Roles:e.Roles!=null?wSe(e.Roles,n):void 0}),Wfe=(e,n)=>({IdentityId:(0,B.expectString)(e.IdentityId)}),Kfe=(e,n)=>({IdentityId:(0,B.expectString)(e.IdentityId),Token:(0,B.expectString)(e.Token)}),Qfe=(e,n)=>({IdentityId:(0,B.expectString)(e.IdentityId),Token:(0,B.expectString)(e.Token)}),Jfe=(e,n)=>({IdentityPoolId:(0,B.expectString)(e.IdentityPoolId),IdentityProviderName:(0,B.expectString)(e.IdentityProviderName),PrincipalTags:e.PrincipalTags!=null?GU(e.PrincipalTags,n):void 0,UseDefaults:(0,B.expectBoolean)(e.UseDefaults)}),Yfe=(e,n)=>(e||[]).filter(s=>s!=null).map(s=>s===null?null:OU(s,n)),OU=(e,n)=>({CreationDate:e.CreationDate!=null?(0,B.expectNonNull)((0,B.parseEpochTimestamp)((0,B.expectNumber)(e.CreationDate))):void 0,IdentityId:(0,B.expectString)(e.IdentityId),LastModifiedDate:e.LastModifiedDate!=null?(0,B.expectNonNull)((0,B.parseEpochTimestamp)((0,B.expectNumber)(e.LastModifiedDate))):void 0,Logins:e.Logins!=null?lSe(e.Logins,n):void 0}),Z1=(e,n)=>({AllowClassicFlow:(0,B.expectBoolean)(e.AllowClassicFlow),AllowUnauthenticatedIdentities:(0,B.expectBoolean)(e.AllowUnauthenticatedIdentities),CognitoIdentityProviders:e.CognitoIdentityProviders!=null?Mfe(e.CognitoIdentityProviders,n):void 0,DeveloperProviderName:(0,B.expectString)(e.DeveloperProviderName),IdentityPoolId:(0,B.expectString)(e.IdentityPoolId),IdentityPoolName:(0,B.expectString)(e.IdentityPoolName),IdentityPoolTags:e.IdentityPoolTags!=null?BU(e.IdentityPoolTags,n):void 0,OpenIdConnectProviderARNs:e.OpenIdConnectProviderARNs!=null?ySe(e.OpenIdConnectProviderARNs,n):void 0,SamlProviderARNs:e.SamlProviderARNs!=null?CSe(e.SamlProviderARNs,n):void 0,SupportedLoginProviders:e.SupportedLoginProviders!=null?tSe(e.SupportedLoginProviders,n):void 0}),Zfe=(e,n)=>({IdentityPoolId:(0,B.expectString)(e.IdentityPoolId),IdentityPoolName:(0,B.expectString)(e.IdentityPoolName)}),eSe=(e,n)=>(e||[]).filter(s=>s!=null).map(s=>s===null?null:Zfe(s,n)),BU=(e,n)=>Object.entries(e).reduce((t,[s,r])=>(r===null||(t[s]=(0,B.expectString)(r)),t),{}),tSe=(e,n)=>Object.entries(e).reduce((t,[s,r])=>(r===null||(t[s]=(0,B.expectString)(r)),t),{}),nSe=(e,n)=>({message:(0,B.expectString)(e.message)}),sSe=(e,n)=>({message:(0,B.expectString)(e.message)}),rSe=(e,n)=>({message:(0,B.expectString)(e.message)}),iSe=(e,n)=>({message:(0,B.expectString)(e.message)}),oSe=(e,n)=>({Identities:e.Identities!=null?Yfe(e.Identities,n):void 0,IdentityPoolId:(0,B.expectString)(e.IdentityPoolId),NextToken:(0,B.expectString)(e.NextToken)}),aSe=(e,n)=>({IdentityPools:e.IdentityPools!=null?eSe(e.IdentityPools,n):void 0,NextToken:(0,B.expectString)(e.NextToken)}),cSe=(e,n)=>({Tags:e.Tags!=null?BU(e.Tags,n):void 0}),lSe=(e,n)=>(e||[]).filter(s=>s!=null).map(s=>s===null?null:(0,B.expectString)(s)),dSe=(e,n)=>({DeveloperUserIdentifierList:e.DeveloperUserIdentifierList!=null?Xfe(e.DeveloperUserIdentifierList,n):void 0,IdentityId:(0,B.expectString)(e.IdentityId),NextToken:(0,B.expectString)(e.NextToken)}),uSe=(e,n)=>({Claim:(0,B.expectString)(e.Claim),MatchType:(0,B.expectString)(e.MatchType),RoleARN:(0,B.expectString)(e.RoleARN),Value:(0,B.expectString)(e.Value)}),mSe=(e,n)=>(e||[]).filter(s=>s!=null).map(s=>s===null?null:uSe(s,n)),pSe=(e,n)=>({IdentityId:(0,B.expectString)(e.IdentityId)}),gSe=(e,n)=>({message:(0,B.expectString)(e.message)}),ySe=(e,n)=>(e||[]).filter(s=>s!=null).map(s=>s===null?null:(0,B.expectString)(s)),GU=(e,n)=>Object.entries(e).reduce((t,[s,r])=>(r===null||(t[s]=(0,B.expectString)(r)),t),{}),_Se=(e,n)=>({message:(0,B.expectString)(e.message)}),fSe=(e,n)=>({message:(0,B.expectString)(e.message)}),SSe=(e,n)=>({AmbiguousRoleResolution:(0,B.expectString)(e.AmbiguousRoleResolution),RulesConfiguration:e.RulesConfiguration!=null?ESe(e.RulesConfiguration,n):void 0,Type:(0,B.expectString)(e.Type)}),hSe=(e,n)=>Object.entries(e).reduce((t,[s,r])=>(r===null||(t[s]=SSe(r,n)),t),{}),wSe=(e,n)=>Object.entries(e).reduce((t,[s,r])=>(r===null||(t[s]=(0,B.expectString)(r)),t),{}),ESe=(e,n)=>({Rules:e.Rules!=null?mSe(e.Rules,n):void 0}),CSe=(e,n)=>(e||[]).filter(s=>s!=null).map(s=>s===null?null:(0,B.expectString)(s)),vSe=(e,n)=>({IdentityPoolId:(0,B.expectString)(e.IdentityPoolId),IdentityProviderName:(0,B.expectString)(e.IdentityProviderName),PrincipalTags:e.PrincipalTags!=null?GU(e.PrincipalTags,n):void 0,UseDefaults:(0,B.expectBoolean)(e.UseDefaults)}),PSe=(e,n)=>({}),ASe=(e,n)=>({message:(0,B.expectString)(e.message)}),xSe=(e,n)=>({ErrorCode:(0,B.expectString)(e.ErrorCode),IdentityId:(0,B.expectString)(e.IdentityId)}),bSe=(e,n)=>(e||[]).filter(s=>s!=null).map(s=>s===null?null:xSe(s,n)),ISe=(e,n)=>({}),Me=e=>({httpStatusCode:e.statusCode,requestId:e.headers["x-amzn-requestid"]??e.headers["x-amzn-request-id"]??e.headers["x-amz-request-id"],extendedRequestId:e.headers["x-amz-id-2"],cfId:e.headers["x-amz-cf-id"]}),ul=(e=new Uint8Array,n)=>e instanceof Uint8Array?Promise.resolve(e):n.streamCollector(e)||Promise.resolve(new Uint8Array),kSe=(e,n)=>ul(e,n).then(t=>n.utf8Encoder(t)),ht=async(e,n,t,s,r)=>{let{hostname:i,protocol:a="https",port:o,path:c}=await e.endpoint(),l={protocol:a,hostname:i,port:o,method:"POST",path:c.endsWith("/")?c.slice(0,-1)+t:c+t,headers:n};return s!==void 0&&(l.hostname=s),r!==void 0&&(l.body=r),new Bye.HttpRequest(l)},Mt=(e,n)=>kSe(e,n).then(t=>t.length?JSON.parse(t):{}),wt=async(e,n)=>{let t=await Mt(e,n);return t.message=t.message??t.Message,t},Et=(e,n)=>{let t=(i,a)=>Object.keys(i).find(o=>o.toLowerCase()===a.toLowerCase()),s=i=>{let a=i;return typeof a=="number"&&(a=a.toString()),a.indexOf(",")>=0&&(a=a.split(",")[0]),a.indexOf(":")>=0&&(a=a.split(":")[0]),a.indexOf("#")>=0&&(a=a.split("#")[1]),a},r=t(e.headers,"x-amzn-errortype");if(r!==void 0)return s(e.headers[r]);if(n.code!==void 0)return s(n.code);if(n.__type!==void 0)return s(n.__type)}});var eI=u(kh=>{"use strict";Object.defineProperty(kh,"__esModule",{value:!0});kh.CreateIdentityPoolCommand=void 0;var RSe=x(),NSe=b(),zSe=He(),qSe=E(),UU=st(),XU=ut(),ml=class extends qSe.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,NSe.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,RSe.getEndpointPlugin)(t,ml.getEndpointParameterInstructions())),this.middlewareStack.use((0,zSe.getAwsAuthPlugin)(t));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"CognitoIdentityClient",commandName:"CreateIdentityPoolCommand",inputFilterSensitiveLog:UU.CreateIdentityPoolInputFilterSensitiveLog,outputFilterSensitiveLog:UU.IdentityPoolFilterSensitiveLog},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,XU.serializeAws_json1_1CreateIdentityPoolCommand)(n,t)}deserialize(n,t){return(0,XU.deserializeAws_json1_1CreateIdentityPoolCommand)(n,t)}};kh.CreateIdentityPoolCommand=ml});var tI=u(Rh=>{"use strict";Object.defineProperty(Rh,"__esModule",{value:!0});Rh.DeleteIdentitiesCommand=void 0;var LSe=x(),FSe=b(),DSe=He(),TSe=E(),$U=st(),HU=ut(),pl=class extends TSe.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,FSe.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,LSe.getEndpointPlugin)(t,pl.getEndpointParameterInstructions())),this.middlewareStack.use((0,DSe.getAwsAuthPlugin)(t));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"CognitoIdentityClient",commandName:"DeleteIdentitiesCommand",inputFilterSensitiveLog:$U.DeleteIdentitiesInputFilterSensitiveLog,outputFilterSensitiveLog:$U.DeleteIdentitiesResponseFilterSensitiveLog},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,HU.serializeAws_json1_1DeleteIdentitiesCommand)(n,t)}deserialize(n,t){return(0,HU.deserializeAws_json1_1DeleteIdentitiesCommand)(n,t)}};Rh.DeleteIdentitiesCommand=pl});var nI=u(Nh=>{"use strict";Object.defineProperty(Nh,"__esModule",{value:!0});Nh.DeleteIdentityPoolCommand=void 0;var jSe=x(),MSe=b(),OSe=He(),BSe=E(),GSe=st(),VU=ut(),gl=class extends BSe.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,MSe.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,jSe.getEndpointPlugin)(t,gl.getEndpointParameterInstructions())),this.middlewareStack.use((0,OSe.getAwsAuthPlugin)(t));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"CognitoIdentityClient",commandName:"DeleteIdentityPoolCommand",inputFilterSensitiveLog:GSe.DeleteIdentityPoolInputFilterSensitiveLog,outputFilterSensitiveLog:d=>d},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,VU.serializeAws_json1_1DeleteIdentityPoolCommand)(n,t)}deserialize(n,t){return(0,VU.deserializeAws_json1_1DeleteIdentityPoolCommand)(n,t)}};Nh.DeleteIdentityPoolCommand=gl});var sI=u(zh=>{"use strict";Object.defineProperty(zh,"__esModule",{value:!0});zh.DescribeIdentityCommand=void 0;var USe=x(),XSe=b(),$Se=He(),HSe=E(),WU=st(),KU=ut(),yl=class extends HSe.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,XSe.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,USe.getEndpointPlugin)(t,yl.getEndpointParameterInstructions())),this.middlewareStack.use((0,$Se.getAwsAuthPlugin)(t));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"CognitoIdentityClient",commandName:"DescribeIdentityCommand",inputFilterSensitiveLog:WU.DescribeIdentityInputFilterSensitiveLog,outputFilterSensitiveLog:WU.IdentityDescriptionFilterSensitiveLog},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,KU.serializeAws_json1_1DescribeIdentityCommand)(n,t)}deserialize(n,t){return(0,KU.deserializeAws_json1_1DescribeIdentityCommand)(n,t)}};zh.DescribeIdentityCommand=yl});var rI=u(qh=>{"use strict";Object.defineProperty(qh,"__esModule",{value:!0});qh.DescribeIdentityPoolCommand=void 0;var VSe=x(),WSe=b(),KSe=He(),QSe=E(),QU=st(),JU=ut(),_l=class extends QSe.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,WSe.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,VSe.getEndpointPlugin)(t,_l.getEndpointParameterInstructions())),this.middlewareStack.use((0,KSe.getAwsAuthPlugin)(t));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"CognitoIdentityClient",commandName:"DescribeIdentityPoolCommand",inputFilterSensitiveLog:QU.DescribeIdentityPoolInputFilterSensitiveLog,outputFilterSensitiveLog:QU.IdentityPoolFilterSensitiveLog},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,JU.serializeAws_json1_1DescribeIdentityPoolCommand)(n,t)}deserialize(n,t){return(0,JU.deserializeAws_json1_1DescribeIdentityPoolCommand)(n,t)}};qh.DescribeIdentityPoolCommand=_l});var iI=u(Lh=>{"use strict";Object.defineProperty(Lh,"__esModule",{value:!0});Lh.GetCredentialsForIdentityCommand=void 0;var JSe=x(),YSe=b(),ZSe=E(),YU=st(),ZU=ut(),fl=class extends ZSe.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,YSe.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,JSe.getEndpointPlugin)(t,fl.getEndpointParameterInstructions()));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"CognitoIdentityClient",commandName:"GetCredentialsForIdentityCommand",inputFilterSensitiveLog:YU.GetCredentialsForIdentityInputFilterSensitiveLog,outputFilterSensitiveLog:YU.GetCredentialsForIdentityResponseFilterSensitiveLog},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,ZU.serializeAws_json1_1GetCredentialsForIdentityCommand)(n,t)}deserialize(n,t){return(0,ZU.deserializeAws_json1_1GetCredentialsForIdentityCommand)(n,t)}};Lh.GetCredentialsForIdentityCommand=fl});var oI=u(Fh=>{"use strict";Object.defineProperty(Fh,"__esModule",{value:!0});Fh.GetIdCommand=void 0;var ehe=x(),the=b(),nhe=E(),e3=st(),t3=ut(),Sl=class extends nhe.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,the.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,ehe.getEndpointPlugin)(t,Sl.getEndpointParameterInstructions()));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"CognitoIdentityClient",commandName:"GetIdCommand",inputFilterSensitiveLog:e3.GetIdInputFilterSensitiveLog,outputFilterSensitiveLog:e3.GetIdResponseFilterSensitiveLog},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,t3.serializeAws_json1_1GetIdCommand)(n,t)}deserialize(n,t){return(0,t3.deserializeAws_json1_1GetIdCommand)(n,t)}};Fh.GetIdCommand=Sl});var aI=u(Dh=>{"use strict";Object.defineProperty(Dh,"__esModule",{value:!0});Dh.GetIdentityPoolRolesCommand=void 0;var she=x(),rhe=b(),ihe=He(),ohe=E(),n3=st(),s3=ut(),hl=class extends ohe.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,rhe.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,she.getEndpointPlugin)(t,hl.getEndpointParameterInstructions())),this.middlewareStack.use((0,ihe.getAwsAuthPlugin)(t));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"CognitoIdentityClient",commandName:"GetIdentityPoolRolesCommand",inputFilterSensitiveLog:n3.GetIdentityPoolRolesInputFilterSensitiveLog,outputFilterSensitiveLog:n3.GetIdentityPoolRolesResponseFilterSensitiveLog},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,s3.serializeAws_json1_1GetIdentityPoolRolesCommand)(n,t)}deserialize(n,t){return(0,s3.deserializeAws_json1_1GetIdentityPoolRolesCommand)(n,t)}};Dh.GetIdentityPoolRolesCommand=hl});var cI=u(Th=>{"use strict";Object.defineProperty(Th,"__esModule",{value:!0});Th.GetOpenIdTokenCommand=void 0;var ahe=x(),che=b(),lhe=E(),r3=st(),i3=ut(),wl=class extends lhe.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,che.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,ahe.getEndpointPlugin)(t,wl.getEndpointParameterInstructions()));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"CognitoIdentityClient",commandName:"GetOpenIdTokenCommand",inputFilterSensitiveLog:r3.GetOpenIdTokenInputFilterSensitiveLog,outputFilterSensitiveLog:r3.GetOpenIdTokenResponseFilterSensitiveLog},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,i3.serializeAws_json1_1GetOpenIdTokenCommand)(n,t)}deserialize(n,t){return(0,i3.deserializeAws_json1_1GetOpenIdTokenCommand)(n,t)}};Th.GetOpenIdTokenCommand=wl});var lI=u(jh=>{"use strict";Object.defineProperty(jh,"__esModule",{value:!0});jh.GetOpenIdTokenForDeveloperIdentityCommand=void 0;var dhe=x(),uhe=b(),mhe=He(),phe=E(),o3=st(),a3=ut(),El=class extends phe.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,uhe.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,dhe.getEndpointPlugin)(t,El.getEndpointParameterInstructions())),this.middlewareStack.use((0,mhe.getAwsAuthPlugin)(t));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"CognitoIdentityClient",commandName:"GetOpenIdTokenForDeveloperIdentityCommand",inputFilterSensitiveLog:o3.GetOpenIdTokenForDeveloperIdentityInputFilterSensitiveLog,outputFilterSensitiveLog:o3.GetOpenIdTokenForDeveloperIdentityResponseFilterSensitiveLog},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,a3.serializeAws_json1_1GetOpenIdTokenForDeveloperIdentityCommand)(n,t)}deserialize(n,t){return(0,a3.deserializeAws_json1_1GetOpenIdTokenForDeveloperIdentityCommand)(n,t)}};jh.GetOpenIdTokenForDeveloperIdentityCommand=El});var dI=u(Mh=>{"use strict";Object.defineProperty(Mh,"__esModule",{value:!0});Mh.GetPrincipalTagAttributeMapCommand=void 0;var ghe=x(),yhe=b(),_he=He(),fhe=E(),c3=st(),l3=ut(),Cl=class extends fhe.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,yhe.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,ghe.getEndpointPlugin)(t,Cl.getEndpointParameterInstructions())),this.middlewareStack.use((0,_he.getAwsAuthPlugin)(t));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"CognitoIdentityClient",commandName:"GetPrincipalTagAttributeMapCommand",inputFilterSensitiveLog:c3.GetPrincipalTagAttributeMapInputFilterSensitiveLog,outputFilterSensitiveLog:c3.GetPrincipalTagAttributeMapResponseFilterSensitiveLog},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,l3.serializeAws_json1_1GetPrincipalTagAttributeMapCommand)(n,t)}deserialize(n,t){return(0,l3.deserializeAws_json1_1GetPrincipalTagAttributeMapCommand)(n,t)}};Mh.GetPrincipalTagAttributeMapCommand=Cl});var uI=u(Oh=>{"use strict";Object.defineProperty(Oh,"__esModule",{value:!0});Oh.ListIdentitiesCommand=void 0;var She=x(),hhe=b(),whe=He(),Ehe=E(),d3=st(),u3=ut(),vl=class extends Ehe.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,hhe.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,She.getEndpointPlugin)(t,vl.getEndpointParameterInstructions())),this.middlewareStack.use((0,whe.getAwsAuthPlugin)(t));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"CognitoIdentityClient",commandName:"ListIdentitiesCommand",inputFilterSensitiveLog:d3.ListIdentitiesInputFilterSensitiveLog,outputFilterSensitiveLog:d3.ListIdentitiesResponseFilterSensitiveLog},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,u3.serializeAws_json1_1ListIdentitiesCommand)(n,t)}deserialize(n,t){return(0,u3.deserializeAws_json1_1ListIdentitiesCommand)(n,t)}};Oh.ListIdentitiesCommand=vl});var Gh=u(Bh=>{"use strict";Object.defineProperty(Bh,"__esModule",{value:!0});Bh.ListIdentityPoolsCommand=void 0;var Che=x(),vhe=b(),Phe=He(),Ahe=E(),m3=st(),p3=ut(),Pl=class extends Ahe.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,vhe.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,Che.getEndpointPlugin)(t,Pl.getEndpointParameterInstructions())),this.middlewareStack.use((0,Phe.getAwsAuthPlugin)(t));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"CognitoIdentityClient",commandName:"ListIdentityPoolsCommand",inputFilterSensitiveLog:m3.ListIdentityPoolsInputFilterSensitiveLog,outputFilterSensitiveLog:m3.ListIdentityPoolsResponseFilterSensitiveLog},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,p3.serializeAws_json1_1ListIdentityPoolsCommand)(n,t)}deserialize(n,t){return(0,p3.deserializeAws_json1_1ListIdentityPoolsCommand)(n,t)}};Bh.ListIdentityPoolsCommand=Pl});var mI=u(Uh=>{"use strict";Object.defineProperty(Uh,"__esModule",{value:!0});Uh.ListTagsForResourceCommand=void 0;var xhe=x(),bhe=b(),Ihe=He(),khe=E(),g3=st(),y3=ut(),Al=class extends khe.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,bhe.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,xhe.getEndpointPlugin)(t,Al.getEndpointParameterInstructions())),this.middlewareStack.use((0,Ihe.getAwsAuthPlugin)(t));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"CognitoIdentityClient",commandName:"ListTagsForResourceCommand",inputFilterSensitiveLog:g3.ListTagsForResourceInputFilterSensitiveLog,outputFilterSensitiveLog:g3.ListTagsForResourceResponseFilterSensitiveLog},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,y3.serializeAws_json1_1ListTagsForResourceCommand)(n,t)}deserialize(n,t){return(0,y3.deserializeAws_json1_1ListTagsForResourceCommand)(n,t)}};Uh.ListTagsForResourceCommand=Al});var pI=u(Xh=>{"use strict";Object.defineProperty(Xh,"__esModule",{value:!0});Xh.LookupDeveloperIdentityCommand=void 0;var Rhe=x(),Nhe=b(),zhe=He(),qhe=E(),_3=st(),f3=ut(),xl=class extends qhe.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,Nhe.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,Rhe.getEndpointPlugin)(t,xl.getEndpointParameterInstructions())),this.middlewareStack.use((0,zhe.getAwsAuthPlugin)(t));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"CognitoIdentityClient",commandName:"LookupDeveloperIdentityCommand",inputFilterSensitiveLog:_3.LookupDeveloperIdentityInputFilterSensitiveLog,outputFilterSensitiveLog:_3.LookupDeveloperIdentityResponseFilterSensitiveLog},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,f3.serializeAws_json1_1LookupDeveloperIdentityCommand)(n,t)}deserialize(n,t){return(0,f3.deserializeAws_json1_1LookupDeveloperIdentityCommand)(n,t)}};Xh.LookupDeveloperIdentityCommand=xl});var gI=u($h=>{"use strict";Object.defineProperty($h,"__esModule",{value:!0});$h.MergeDeveloperIdentitiesCommand=void 0;var Lhe=x(),Fhe=b(),Dhe=He(),The=E(),S3=st(),h3=ut(),bl=class extends The.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,Fhe.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,Lhe.getEndpointPlugin)(t,bl.getEndpointParameterInstructions())),this.middlewareStack.use((0,Dhe.getAwsAuthPlugin)(t));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"CognitoIdentityClient",commandName:"MergeDeveloperIdentitiesCommand",inputFilterSensitiveLog:S3.MergeDeveloperIdentitiesInputFilterSensitiveLog,outputFilterSensitiveLog:S3.MergeDeveloperIdentitiesResponseFilterSensitiveLog},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,h3.serializeAws_json1_1MergeDeveloperIdentitiesCommand)(n,t)}deserialize(n,t){return(0,h3.deserializeAws_json1_1MergeDeveloperIdentitiesCommand)(n,t)}};$h.MergeDeveloperIdentitiesCommand=bl});var yI=u(Hh=>{"use strict";Object.defineProperty(Hh,"__esModule",{value:!0});Hh.SetIdentityPoolRolesCommand=void 0;var jhe=x(),Mhe=b(),Ohe=He(),Bhe=E(),Ghe=st(),w3=ut(),Il=class extends Bhe.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,Mhe.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,jhe.getEndpointPlugin)(t,Il.getEndpointParameterInstructions())),this.middlewareStack.use((0,Ohe.getAwsAuthPlugin)(t));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"CognitoIdentityClient",commandName:"SetIdentityPoolRolesCommand",inputFilterSensitiveLog:Ghe.SetIdentityPoolRolesInputFilterSensitiveLog,outputFilterSensitiveLog:d=>d},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,w3.serializeAws_json1_1SetIdentityPoolRolesCommand)(n,t)}deserialize(n,t){return(0,w3.deserializeAws_json1_1SetIdentityPoolRolesCommand)(n,t)}};Hh.SetIdentityPoolRolesCommand=Il});var _I=u(Vh=>{"use strict";Object.defineProperty(Vh,"__esModule",{value:!0});Vh.SetPrincipalTagAttributeMapCommand=void 0;var Uhe=x(),Xhe=b(),$he=He(),Hhe=E(),E3=st(),C3=ut(),kl=class extends Hhe.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,Xhe.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,Uhe.getEndpointPlugin)(t,kl.getEndpointParameterInstructions())),this.middlewareStack.use((0,$he.getAwsAuthPlugin)(t));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"CognitoIdentityClient",commandName:"SetPrincipalTagAttributeMapCommand",inputFilterSensitiveLog:E3.SetPrincipalTagAttributeMapInputFilterSensitiveLog,outputFilterSensitiveLog:E3.SetPrincipalTagAttributeMapResponseFilterSensitiveLog},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,C3.serializeAws_json1_1SetPrincipalTagAttributeMapCommand)(n,t)}deserialize(n,t){return(0,C3.deserializeAws_json1_1SetPrincipalTagAttributeMapCommand)(n,t)}};Vh.SetPrincipalTagAttributeMapCommand=kl});var fI=u(Wh=>{"use strict";Object.defineProperty(Wh,"__esModule",{value:!0});Wh.TagResourceCommand=void 0;var Vhe=x(),Whe=b(),Khe=He(),Qhe=E(),v3=st(),P3=ut(),Rl=class extends Qhe.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,Whe.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,Vhe.getEndpointPlugin)(t,Rl.getEndpointParameterInstructions())),this.middlewareStack.use((0,Khe.getAwsAuthPlugin)(t));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"CognitoIdentityClient",commandName:"TagResourceCommand",inputFilterSensitiveLog:v3.TagResourceInputFilterSensitiveLog,outputFilterSensitiveLog:v3.TagResourceResponseFilterSensitiveLog},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,P3.serializeAws_json1_1TagResourceCommand)(n,t)}deserialize(n,t){return(0,P3.deserializeAws_json1_1TagResourceCommand)(n,t)}};Wh.TagResourceCommand=Rl});var SI=u(Kh=>{"use strict";Object.defineProperty(Kh,"__esModule",{value:!0});Kh.UnlinkDeveloperIdentityCommand=void 0;var Jhe=x(),Yhe=b(),Zhe=He(),ewe=E(),twe=st(),A3=ut(),Nl=class extends ewe.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,Yhe.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,Jhe.getEndpointPlugin)(t,Nl.getEndpointParameterInstructions())),this.middlewareStack.use((0,Zhe.getAwsAuthPlugin)(t));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"CognitoIdentityClient",commandName:"UnlinkDeveloperIdentityCommand",inputFilterSensitiveLog:twe.UnlinkDeveloperIdentityInputFilterSensitiveLog,outputFilterSensitiveLog:d=>d},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,A3.serializeAws_json1_1UnlinkDeveloperIdentityCommand)(n,t)}deserialize(n,t){return(0,A3.deserializeAws_json1_1UnlinkDeveloperIdentityCommand)(n,t)}};Kh.UnlinkDeveloperIdentityCommand=Nl});var hI=u(Qh=>{"use strict";Object.defineProperty(Qh,"__esModule",{value:!0});Qh.UnlinkIdentityCommand=void 0;var nwe=x(),swe=b(),rwe=E(),iwe=st(),x3=ut(),zl=class extends rwe.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,swe.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,nwe.getEndpointPlugin)(t,zl.getEndpointParameterInstructions()));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"CognitoIdentityClient",commandName:"UnlinkIdentityCommand",inputFilterSensitiveLog:iwe.UnlinkIdentityInputFilterSensitiveLog,outputFilterSensitiveLog:d=>d},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,x3.serializeAws_json1_1UnlinkIdentityCommand)(n,t)}deserialize(n,t){return(0,x3.deserializeAws_json1_1UnlinkIdentityCommand)(n,t)}};Qh.UnlinkIdentityCommand=zl});var wI=u(Jh=>{"use strict";Object.defineProperty(Jh,"__esModule",{value:!0});Jh.UntagResourceCommand=void 0;var owe=x(),awe=b(),cwe=He(),lwe=E(),b3=st(),I3=ut(),ql=class extends lwe.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,awe.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,owe.getEndpointPlugin)(t,ql.getEndpointParameterInstructions())),this.middlewareStack.use((0,cwe.getAwsAuthPlugin)(t));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"CognitoIdentityClient",commandName:"UntagResourceCommand",inputFilterSensitiveLog:b3.UntagResourceInputFilterSensitiveLog,outputFilterSensitiveLog:b3.UntagResourceResponseFilterSensitiveLog},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,I3.serializeAws_json1_1UntagResourceCommand)(n,t)}deserialize(n,t){return(0,I3.deserializeAws_json1_1UntagResourceCommand)(n,t)}};Jh.UntagResourceCommand=ql});var EI=u(Yh=>{"use strict";Object.defineProperty(Yh,"__esModule",{value:!0});Yh.UpdateIdentityPoolCommand=void 0;var dwe=x(),uwe=b(),mwe=He(),pwe=E(),k3=st(),R3=ut(),Ll=class extends pwe.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,uwe.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,dwe.getEndpointPlugin)(t,Ll.getEndpointParameterInstructions())),this.middlewareStack.use((0,mwe.getAwsAuthPlugin)(t));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"CognitoIdentityClient",commandName:"UpdateIdentityPoolCommand",inputFilterSensitiveLog:k3.IdentityPoolFilterSensitiveLog,outputFilterSensitiveLog:k3.IdentityPoolFilterSensitiveLog},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,R3.serializeAws_json1_1UpdateIdentityPoolCommand)(n,t)}deserialize(n,t){return(0,R3.deserializeAws_json1_1UpdateIdentityPoolCommand)(n,t)}};Yh.UpdateIdentityPoolCommand=Ll});var vI=u(Zh=>{"use strict";Object.defineProperty(Zh,"__esModule",{value:!0});Zh.CognitoIdentity=void 0;var gwe=Ah(),ywe=eI(),_we=tI(),fwe=nI(),Swe=sI(),hwe=rI(),wwe=iI(),Ewe=oI(),Cwe=aI(),vwe=cI(),Pwe=lI(),Awe=dI(),xwe=uI(),bwe=Gh(),Iwe=mI(),kwe=pI(),Rwe=gI(),Nwe=yI(),zwe=_I(),qwe=fI(),Lwe=SI(),Fwe=hI(),Dwe=wI(),Twe=EI(),CI=class extends gwe.CognitoIdentityClient{createIdentityPool(n,t,s){let r=new ywe.CreateIdentityPoolCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}deleteIdentities(n,t,s){let r=new _we.DeleteIdentitiesCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}deleteIdentityPool(n,t,s){let r=new fwe.DeleteIdentityPoolCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}describeIdentity(n,t,s){let r=new Swe.DescribeIdentityCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}describeIdentityPool(n,t,s){let r=new hwe.DescribeIdentityPoolCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}getCredentialsForIdentity(n,t,s){let r=new wwe.GetCredentialsForIdentityCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}getId(n,t,s){let r=new Ewe.GetIdCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}getIdentityPoolRoles(n,t,s){let r=new Cwe.GetIdentityPoolRolesCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}getOpenIdToken(n,t,s){let r=new vwe.GetOpenIdTokenCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}getOpenIdTokenForDeveloperIdentity(n,t,s){let r=new Pwe.GetOpenIdTokenForDeveloperIdentityCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}getPrincipalTagAttributeMap(n,t,s){let r=new Awe.GetPrincipalTagAttributeMapCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}listIdentities(n,t,s){let r=new xwe.ListIdentitiesCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}listIdentityPools(n,t,s){let r=new bwe.ListIdentityPoolsCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}listTagsForResource(n,t,s){let r=new Iwe.ListTagsForResourceCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}lookupDeveloperIdentity(n,t,s){let r=new kwe.LookupDeveloperIdentityCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}mergeDeveloperIdentities(n,t,s){let r=new Rwe.MergeDeveloperIdentitiesCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}setIdentityPoolRoles(n,t,s){let r=new Nwe.SetIdentityPoolRolesCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}setPrincipalTagAttributeMap(n,t,s){let r=new zwe.SetPrincipalTagAttributeMapCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}tagResource(n,t,s){let r=new qwe.TagResourceCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}unlinkDeveloperIdentity(n,t,s){let r=new Lwe.UnlinkDeveloperIdentityCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}unlinkIdentity(n,t,s){let r=new Fwe.UnlinkIdentityCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}untagResource(n,t,s){let r=new Dwe.UntagResourceCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}updateIdentityPool(n,t,s){let r=new Twe.UpdateIdentityPoolCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}};Zh.CognitoIdentity=CI});var N3=u(it=>{"use strict";Object.defineProperty(it,"__esModule",{value:!0});var Ct=X();Ct.__exportStar(eI(),it);Ct.__exportStar(tI(),it);Ct.__exportStar(nI(),it);Ct.__exportStar(sI(),it);Ct.__exportStar(rI(),it);Ct.__exportStar(iI(),it);Ct.__exportStar(oI(),it);Ct.__exportStar(aI(),it);Ct.__exportStar(cI(),it);Ct.__exportStar(lI(),it);Ct.__exportStar(dI(),it);Ct.__exportStar(uI(),it);Ct.__exportStar(Gh(),it);Ct.__exportStar(mI(),it);Ct.__exportStar(pI(),it);Ct.__exportStar(gI(),it);Ct.__exportStar(yI(),it);Ct.__exportStar(_I(),it);Ct.__exportStar(fI(),it);Ct.__exportStar(SI(),it);Ct.__exportStar(hI(),it);Ct.__exportStar(wI(),it);Ct.__exportStar(EI(),it)});var z3=u(PI=>{"use strict";Object.defineProperty(PI,"__esModule",{value:!0});var jwe=X();jwe.__exportStar(st(),PI)});var L3=u(q3=>{"use strict";Object.defineProperty(q3,"__esModule",{value:!0})});var F3=u(ew=>{"use strict";Object.defineProperty(ew,"__esModule",{value:!0});ew.paginateListIdentityPools=void 0;var Mwe=vI(),Owe=Ah(),Bwe=Gh(),Gwe=async(e,n,...t)=>await e.send(new Bwe.ListIdentityPoolsCommand(n),...t),Uwe=async(e,n,...t)=>await e.listIdentityPools(n,...t);async function*Xwe(e,n,...t){let s=e.startingToken||void 0,r=!0,i;for(;r;){if(n.NextToken=s,n.MaxResults=e.pageSize,e.client instanceof Mwe.CognitoIdentity)i=await Uwe(e.client,n,...t);else if(e.client instanceof Owe.CognitoIdentityClient)i=await Gwe(e.client,n,...t);else throw new Error("Invalid client, expected CognitoIdentity | CognitoIdentityClient");yield i;let a=s;s=i.NextToken,r=!!(s&&(!e.stopOnSameToken||s!==a))}return void 0}ew.paginateListIdentityPools=Xwe});var T3=u(tw=>{"use strict";Object.defineProperty(tw,"__esModule",{value:!0});var D3=X();D3.__exportStar(L3(),tw);D3.__exportStar(F3(),tw)});var Dl=u(ir=>{"use strict";Object.defineProperty(ir,"__esModule",{value:!0});ir.CognitoIdentityServiceException=void 0;var Fl=X();Fl.__exportStar(vI(),ir);Fl.__exportStar(Ah(),ir);Fl.__exportStar(N3(),ir);Fl.__exportStar(z3(),ir);Fl.__exportStar(T3(),ir);var $we=bh();Object.defineProperty(ir,"CognitoIdentityServiceException",{enumerable:!0,get:function(){return $we.CognitoIdentityServiceException}})});var M3=u(j3=>{"use strict";Object.defineProperty(j3,"__esModule",{value:!0})});var B3=u(O3=>{"use strict";Object.defineProperty(O3,"__esModule",{value:!0})});var U3=u(G3=>{"use strict";Object.defineProperty(G3,"__esModule",{value:!0})});var AI=u(nw=>{"use strict";Object.defineProperty(nw,"__esModule",{value:!0});nw.resolveLogins=void 0;function Hwe(e){return Promise.all(Object.keys(e).reduce((n,t)=>{let s=e[t];return typeof s=="string"?n.push([t,s]):n.push(s().then(r=>[t,r])),n},[])).then(n=>n.reduce((t,[s,r])=>(t[s]=r,t),{}))}nw.resolveLogins=Hwe});var bI=u(sw=>{"use strict";Object.defineProperty(sw,"__esModule",{value:!0});sw.fromCognitoIdentity=void 0;var Vwe=Dl(),xI=Je(),Wwe=AI();function Kwe(e){return async()=>{let{Credentials:{AccessKeyId:n=Qwe(),Expiration:t,SecretKey:s=Ywe(),SessionToken:r}=Jwe()}=await e.client.send(new Vwe.GetCredentialsForIdentityCommand({CustomRoleArn:e.customRoleArn,IdentityId:e.identityId,Logins:e.logins?await(0,Wwe.resolveLogins)(e.logins):void 0}));return{identityId:e.identityId,accessKeyId:n,secretAccessKey:s,sessionToken:r,expiration:t}}}sw.fromCognitoIdentity=Kwe;function Qwe(){throw new xI.CredentialsProviderError("Response from Amazon Cognito contained no access key ID")}function Jwe(){throw new xI.CredentialsProviderError("Response from Amazon Cognito contained no credentials")}function Ywe(){throw new xI.CredentialsProviderError("Response from Amazon Cognito contained no secret key")}});var X3=u(rw=>{"use strict";Object.defineProperty(rw,"__esModule",{value:!0});rw.IndexedDbStorage=void 0;var II="IdentityIds",kI=class{constructor(n="aws:cognito-identity-ids"){this.dbName=n}getItem(n){return this.withObjectStore("readonly",t=>{let s=t.get(n);return new Promise(r=>{s.onerror=()=>r(null),s.onsuccess=()=>r(s.result?s.result.value:null)})}).catch(()=>null)}removeItem(n){return this.withObjectStore("readwrite",t=>{let s=t.delete(n);return new Promise((r,i)=>{s.onerror=()=>i(s.error),s.onsuccess=()=>r()})})}setItem(n,t){return this.withObjectStore("readwrite",s=>{let r=s.put({id:n,value:t});return new Promise((i,a)=>{r.onerror=()=>a(r.error),r.onsuccess=()=>i()})})}getDb(){let n=self.indexedDB.open(this.dbName,1);return new Promise((t,s)=>{n.onsuccess=()=>{t(n.result)},n.onerror=()=>{s(n.error)},n.onblocked=()=>{s(new Error("Unable to access DB"))},n.onupgradeneeded=()=>{let r=n.result;r.onerror=()=>{s(new Error("Failed to create object store"))},r.createObjectStore(II,{keyPath:"id"})}})}withObjectStore(n,t){return this.getDb().then(s=>{let r=s.transaction(II,n);return r.oncomplete=()=>s.close(),new Promise((i,a)=>{r.onerror=()=>a(r.error),i(t(r.objectStore(II)))}).catch(i=>{throw s.close(),i})})}};rw.IndexedDbStorage=kI});var $3=u(iw=>{"use strict";Object.defineProperty(iw,"__esModule",{value:!0});iw.InMemoryStorage=void 0;var RI=class{constructor(n={}){this.store=n}getItem(n){return n in this.store?this.store[n]:null}removeItem(n){delete this.store[n]}setItem(n,t){this.store[n]=t}};iw.InMemoryStorage=RI});var H3=u(ow=>{"use strict";Object.defineProperty(ow,"__esModule",{value:!0});ow.localStorage=void 0;var Zwe=X3(),eEe=$3(),tEe=new eEe.InMemoryStorage;function nEe(){return typeof self=="object"&&self.indexedDB?new Zwe.IndexedDbStorage:typeof window=="object"&&window.localStorage?window.localStorage:tEe}ow.localStorage=nEe});var V3=u(aw=>{"use strict";Object.defineProperty(aw,"__esModule",{value:!0});aw.fromCognitoIdentityPool=void 0;var sEe=Dl(),rEe=Je(),iEe=bI(),oEe=H3(),aEe=AI();function cEe({accountId:e,cache:n=(0,oEe.localStorage)(),client:t,customRoleArn:s,identityPoolId:r,logins:i,userIdentifier:a=!i||Object.keys(i).length===0?"ANONYMOUS":void 0}){let o=a?`aws:cognito-identity-credentials:${r}:${a}`:void 0,c=async()=>{let l=o&&await n.getItem(o);if(!l){let{IdentityId:d=lEe()}=await t.send(new sEe.GetIdCommand({AccountId:e,IdentityPoolId:r,Logins:i?await(0,aEe.resolveLogins)(i):void 0}));l=d,o&&Promise.resolve(n.setItem(o,l)).catch(()=>{})}return c=(0,iEe.fromCognitoIdentity)({client:t,customRoleArn:s,logins:i,identityId:l}),c()};return()=>c().catch(async l=>{throw o&&Promise.resolve(n.removeItem(o)).catch(()=>{}),l})}aw.fromCognitoIdentityPool=cEe;function lEe(){throw new rEe.CredentialsProviderError("Response from Amazon Cognito contained no identity ID")}});var NI=u(qi=>{"use strict";Object.defineProperty(qi,"__esModule",{value:!0});var Tl=X();Tl.__exportStar(M3(),qi);Tl.__exportStar(B3(),qi);Tl.__exportStar(U3(),qi);Tl.__exportStar(bI(),qi);Tl.__exportStar(V3(),qi)});var W3=u(cw=>{"use strict";Object.defineProperty(cw,"__esModule",{value:!0});cw.fromCognitoIdentity=void 0;var dEe=Dl(),uEe=NI(),mEe=e=>{var n;return(0,uEe.fromCognitoIdentity)({...e,client:new dEe.CognitoIdentityClient((n=e.clientConfig)!==null&&n!==void 0?n:{})})};cw.fromCognitoIdentity=mEe});var K3=u(lw=>{"use strict";Object.defineProperty(lw,"__esModule",{value:!0});lw.fromCognitoIdentityPool=void 0;var pEe=Dl(),gEe=NI(),yEe=e=>{var n;return(0,gEe.fromCognitoIdentityPool)({...e,client:new pEe.CognitoIdentityClient((n=e.clientConfig)!==null&&n!==void 0?n:{})})};lw.fromCognitoIdentityPool=yEe});var Q3=u(dw=>{"use strict";Object.defineProperty(dw,"__esModule",{value:!0});dw.fromContainerMetadata=void 0;var _Ee=oo(),fEe=e=>(0,_Ee.fromContainerMetadata)(e);dw.fromContainerMetadata=fEe});var J3=u(uw=>{"use strict";Object.defineProperty(uw,"__esModule",{value:!0});uw.fromEnv=void 0;var SEe=C_(),hEe=()=>(0,SEe.fromEnv)();uw.fromEnv=hEe});var Z3=u(mw=>{"use strict";Object.defineProperty(mw,"__esModule",{value:!0});mw.fromIni=void 0;var Y3=xs(),wEe=B1(),EEe=(e={})=>{var n,t;return(0,wEe.fromIni)({...e,roleAssumer:(n=e.roleAssumer)!==null&&n!==void 0?n:(0,Y3.getDefaultRoleAssumer)(e.clientConfig,e.clientPlugins),roleAssumerWithWebIdentity:(t=e.roleAssumerWithWebIdentity)!==null&&t!==void 0?t:(0,Y3.getDefaultRoleAssumerWithWebIdentity)(e.clientConfig,e.clientPlugins)})};mw.fromIni=EEe});var eX=u(pw=>{"use strict";Object.defineProperty(pw,"__esModule",{value:!0});pw.fromInstanceMetadata=void 0;var CEe=oo(),vEe=e=>(0,CEe.fromInstanceMetadata)(e);pw.fromInstanceMetadata=vEe});var nX=u(gw=>{"use strict";Object.defineProperty(gw,"__esModule",{value:!0});gw.fromNodeProviderChain=void 0;var tX=xs(),PEe=Vr(),AEe=(e={})=>{var n,t;return(0,PEe.defaultProvider)({...e,roleAssumer:(n=e.roleAssumer)!==null&&n!==void 0?n:(0,tX.getDefaultRoleAssumer)(e.clientConfig,e.clientPlugins),roleAssumerWithWebIdentity:(t=e.roleAssumerWithWebIdentity)!==null&&t!==void 0?t:(0,tX.getDefaultRoleAssumerWithWebIdentity)(e.clientConfig,e.clientPlugins)})};gw.fromNodeProviderChain=AEe});var sX=u(yw=>{"use strict";Object.defineProperty(yw,"__esModule",{value:!0});yw.fromProcess=void 0;var xEe=J_(),bEe=e=>(0,xEe.fromProcess)(e);yw.fromProcess=bEe});var rX=u(_w=>{"use strict";Object.defineProperty(_w,"__esModule",{value:!0});_w.fromSSO=void 0;var IEe=_1(),kEe=Uc(),REe=(e={})=>(0,kEe.fromSSO)({ssoClient:e.clientConfig?new IEe.SSOClient(e.clientConfig):void 0,...e});_w.fromSSO=REe});var aX=u(fw=>{"use strict";Object.defineProperty(fw,"__esModule",{value:!0});fw.fromTemporaryCredentials=void 0;var iX=xs(),oX=Je(),NEe=e=>{let n;return async()=>{var t;let s={...e.params,RoleSessionName:(t=e.params.RoleSessionName)!==null&&t!==void 0?t:"aws-sdk-js-"+Date.now()};if(s?.SerialNumber){if(!e.mfaCodeProvider)throw new oX.CredentialsProviderError("Temporary credential requires multi-factor authentication, but no MFA code callback was provided.",!1);s.TokenCode=await e.mfaCodeProvider(s?.SerialNumber)}if(n||(n=new iX.STSClient({...e.clientConfig,credentials:e.masterCredentials})),e.clientPlugins)for(let i of e.clientPlugins)n.middlewareStack.use(i);let{Credentials:r}=await n.send(new iX.AssumeRoleCommand(s));if(!r||!r.AccessKeyId||!r.SecretAccessKey)throw new oX.CredentialsProviderError(`Invalid response from STS.assumeRole call with role ${s.RoleArn}`);return{accessKeyId:r.AccessKeyId,secretAccessKey:r.SecretAccessKey,sessionToken:r.SessionToken,expiration:r.Expiration}}};fw.fromTemporaryCredentials=NEe});var cX=u(Sw=>{"use strict";Object.defineProperty(Sw,"__esModule",{value:!0});Sw.fromTokenFile=void 0;var zEe=xs(),qEe=Xc(),LEe=(e={})=>{var n;return(0,qEe.fromTokenFile)({...e,roleAssumerWithWebIdentity:(n=e.roleAssumerWithWebIdentity)!==null&&n!==void 0?n:(0,zEe.getDefaultRoleAssumerWithWebIdentity)(e.clientConfig,e.clientPlugins)})};Sw.fromTokenFile=LEe});var lX=u(hw=>{"use strict";Object.defineProperty(hw,"__esModule",{value:!0});hw.fromWebToken=void 0;var FEe=xs(),DEe=Xc(),TEe=e=>{var n;return(0,DEe.fromWebToken)({...e,roleAssumerWithWebIdentity:(n=e.roleAssumerWithWebIdentity)!==null&&n!==void 0?n:(0,FEe.getDefaultRoleAssumerWithWebIdentity)(e.clientConfig,e.clientPlugins)})};hw.fromWebToken=TEe});var dX=u(vn=>{"use strict";Object.defineProperty(vn,"__esModule",{value:!0});var Bn=X();Bn.__exportStar(W3(),vn);Bn.__exportStar(K3(),vn);Bn.__exportStar(Q3(),vn);Bn.__exportStar(J3(),vn);Bn.__exportStar(Z3(),vn);Bn.__exportStar(eX(),vn);Bn.__exportStar(nX(),vn);Bn.__exportStar(sX(),vn);Bn.__exportStar(rX(),vn);Bn.__exportStar(aX(),vn);Bn.__exportStar(cX(),vn);Bn.__exportStar(lX(),vn)});var Ew=u(ww=>{"use strict";Object.defineProperty(ww,"__esModule",{value:!0});ww.SecretsManagerServiceException=void 0;var jEe=E(),jl=class extends jEe.ServiceException{constructor(n){super(n),Object.setPrototypeOf(this,jl.prototype)}};ww.SecretsManagerServiceException=jl});var ot=u(D=>{"use strict";Object.defineProperty(D,"__esModule",{value:!0});D.ReplicateSecretToRegionsResponseFilterSensitiveLog=D.ReplicateSecretToRegionsRequestFilterSensitiveLog=D.RemoveRegionsFromReplicationResponseFilterSensitiveLog=D.RemoveRegionsFromReplicationRequestFilterSensitiveLog=D.PutSecretValueResponseFilterSensitiveLog=D.PutSecretValueRequestFilterSensitiveLog=D.PutResourcePolicyResponseFilterSensitiveLog=D.PutResourcePolicyRequestFilterSensitiveLog=D.ListSecretVersionIdsResponseFilterSensitiveLog=D.SecretVersionsListEntryFilterSensitiveLog=D.ListSecretVersionIdsRequestFilterSensitiveLog=D.ListSecretsResponseFilterSensitiveLog=D.SecretListEntryFilterSensitiveLog=D.ListSecretsRequestFilterSensitiveLog=D.GetSecretValueResponseFilterSensitiveLog=D.GetSecretValueRequestFilterSensitiveLog=D.GetResourcePolicyResponseFilterSensitiveLog=D.GetResourcePolicyRequestFilterSensitiveLog=D.GetRandomPasswordResponseFilterSensitiveLog=D.GetRandomPasswordRequestFilterSensitiveLog=D.FilterFilterSensitiveLog=D.DescribeSecretResponseFilterSensitiveLog=D.RotationRulesTypeFilterSensitiveLog=D.DescribeSecretRequestFilterSensitiveLog=D.DeleteSecretResponseFilterSensitiveLog=D.DeleteSecretRequestFilterSensitiveLog=D.DeleteResourcePolicyResponseFilterSensitiveLog=D.DeleteResourcePolicyRequestFilterSensitiveLog=D.CreateSecretResponseFilterSensitiveLog=D.ReplicationStatusTypeFilterSensitiveLog=D.CreateSecretRequestFilterSensitiveLog=D.TagFilterSensitiveLog=D.CancelRotateSecretResponseFilterSensitiveLog=D.CancelRotateSecretRequestFilterSensitiveLog=D.ReplicaRegionTypeFilterSensitiveLog=D.PublicPolicyException=D.SortOrderType=D.InvalidNextTokenException=D.FilterNameStringType=D.ResourceExistsException=D.PreconditionNotMetException=D.MalformedPolicyDocumentException=D.LimitExceededException=D.EncryptionFailure=D.DecryptionFailure=D.StatusType=D.ResourceNotFoundException=D.InvalidRequestException=D.InvalidParameterException=D.InternalServiceError=void 0;D.ValidateResourcePolicyResponseFilterSensitiveLog=D.ValidationErrorsEntryFilterSensitiveLog=D.ValidateResourcePolicyRequestFilterSensitiveLog=D.UpdateSecretVersionStageResponseFilterSensitiveLog=D.UpdateSecretVersionStageRequestFilterSensitiveLog=D.UpdateSecretResponseFilterSensitiveLog=D.UpdateSecretRequestFilterSensitiveLog=D.UntagResourceRequestFilterSensitiveLog=D.TagResourceRequestFilterSensitiveLog=D.StopReplicationToReplicaResponseFilterSensitiveLog=D.StopReplicationToReplicaRequestFilterSensitiveLog=D.RotateSecretResponseFilterSensitiveLog=D.RotateSecretRequestFilterSensitiveLog=D.RestoreSecretResponseFilterSensitiveLog=D.RestoreSecretRequestFilterSensitiveLog=void 0;var or=E(),Gn=Ew(),Ml=class extends Gn.SecretsManagerServiceException{constructor(n){super({name:"InternalServiceError",$fault:"server",...n}),this.name="InternalServiceError",this.$fault="server",Object.setPrototypeOf(this,Ml.prototype),this.Message=n.Message}};D.InternalServiceError=Ml;var Ol=class extends Gn.SecretsManagerServiceException{constructor(n){super({name:"InvalidParameterException",$fault:"client",...n}),this.name="InvalidParameterException",this.$fault="client",Object.setPrototypeOf(this,Ol.prototype),this.Message=n.Message}};D.InvalidParameterException=Ol;var Bl=class extends Gn.SecretsManagerServiceException{constructor(n){super({name:"InvalidRequestException",$fault:"client",...n}),this.name="InvalidRequestException",this.$fault="client",Object.setPrototypeOf(this,Bl.prototype),this.Message=n.Message}};D.InvalidRequestException=Bl;var Gl=class extends Gn.SecretsManagerServiceException{constructor(n){super({name:"ResourceNotFoundException",$fault:"client",...n}),this.name="ResourceNotFoundException",this.$fault="client",Object.setPrototypeOf(this,Gl.prototype),this.Message=n.Message}};D.ResourceNotFoundException=Gl;var MEe;(function(e){e.Failed="Failed",e.InProgress="InProgress",e.InSync="InSync"})(MEe=D.StatusType||(D.StatusType={}));var Ul=class extends Gn.SecretsManagerServiceException{constructor(n){super({name:"DecryptionFailure",$fault:"client",...n}),this.name="DecryptionFailure",this.$fault="client",Object.setPrototypeOf(this,Ul.prototype),this.Message=n.Message}};D.DecryptionFailure=Ul;var Xl=class extends Gn.SecretsManagerServiceException{constructor(n){super({name:"EncryptionFailure",$fault:"client",...n}),this.name="EncryptionFailure",this.$fault="client",Object.setPrototypeOf(this,Xl.prototype),this.Message=n.Message}};D.EncryptionFailure=Xl;var $l=class extends Gn.SecretsManagerServiceException{constructor(n){super({name:"LimitExceededException",$fault:"client",...n}),this.name="LimitExceededException",this.$fault="client",Object.setPrototypeOf(this,$l.prototype),this.Message=n.Message}};D.LimitExceededException=$l;var Hl=class extends Gn.SecretsManagerServiceException{constructor(n){super({name:"MalformedPolicyDocumentException",$fault:"client",...n}),this.name="MalformedPolicyDocumentException",this.$fault="client",Object.setPrototypeOf(this,Hl.prototype),this.Message=n.Message}};D.MalformedPolicyDocumentException=Hl;var Vl=class extends Gn.SecretsManagerServiceException{constructor(n){super({name:"PreconditionNotMetException",$fault:"client",...n}),this.name="PreconditionNotMetException",this.$fault="client",Object.setPrototypeOf(this,Vl.prototype),this.Message=n.Message}};D.PreconditionNotMetException=Vl;var Wl=class extends Gn.SecretsManagerServiceException{constructor(n){super({name:"ResourceExistsException",$fault:"client",...n}),this.name="ResourceExistsException",this.$fault="client",Object.setPrototypeOf(this,Wl.prototype),this.Message=n.Message}};D.ResourceExistsException=Wl;var OEe;(function(e){e.all="all",e.description="description",e.name="name",e.owning_service="owning-service",e.primary_region="primary-region",e.tag_key="tag-key",e.tag_value="tag-value"})(OEe=D.FilterNameStringType||(D.FilterNameStringType={}));var Kl=class extends Gn.SecretsManagerServiceException{constructor(n){super({name:"InvalidNextTokenException",$fault:"client",...n}),this.name="InvalidNextTokenException",this.$fault="client",Object.setPrototypeOf(this,Kl.prototype),this.Message=n.Message}};D.InvalidNextTokenException=Kl;var BEe;(function(e){e.asc="asc",e.desc="desc"})(BEe=D.SortOrderType||(D.SortOrderType={}));var Ql=class extends Gn.SecretsManagerServiceException{constructor(n){super({name:"PublicPolicyException",$fault:"client",...n}),this.name="PublicPolicyException",this.$fault="client",Object.setPrototypeOf(this,Ql.prototype),this.Message=n.Message}};D.PublicPolicyException=Ql;var GEe=e=>({...e});D.ReplicaRegionTypeFilterSensitiveLog=GEe;var UEe=e=>({...e});D.CancelRotateSecretRequestFilterSensitiveLog=UEe;var XEe=e=>({...e});D.CancelRotateSecretResponseFilterSensitiveLog=XEe;var $Ee=e=>({...e});D.TagFilterSensitiveLog=$Ee;var HEe=e=>({...e,...e.SecretBinary&&{SecretBinary:or.SENSITIVE_STRING},...e.SecretString&&{SecretString:or.SENSITIVE_STRING}});D.CreateSecretRequestFilterSensitiveLog=HEe;var VEe=e=>({...e});D.ReplicationStatusTypeFilterSensitiveLog=VEe;var WEe=e=>({...e});D.CreateSecretResponseFilterSensitiveLog=WEe;var KEe=e=>({...e});D.DeleteResourcePolicyRequestFilterSensitiveLog=KEe;var QEe=e=>({...e});D.DeleteResourcePolicyResponseFilterSensitiveLog=QEe;var JEe=e=>({...e});D.DeleteSecretRequestFilterSensitiveLog=JEe;var YEe=e=>({...e});D.DeleteSecretResponseFilterSensitiveLog=YEe;var ZEe=e=>({...e});D.DescribeSecretRequestFilterSensitiveLog=ZEe;var eCe=e=>({...e});D.RotationRulesTypeFilterSensitiveLog=eCe;var tCe=e=>({...e});D.DescribeSecretResponseFilterSensitiveLog=tCe;var nCe=e=>({...e});D.FilterFilterSensitiveLog=nCe;var sCe=e=>({...e});D.GetRandomPasswordRequestFilterSensitiveLog=sCe;var rCe=e=>({...e,...e.RandomPassword&&{RandomPassword:or.SENSITIVE_STRING}});D.GetRandomPasswordResponseFilterSensitiveLog=rCe;var iCe=e=>({...e});D.GetResourcePolicyRequestFilterSensitiveLog=iCe;var oCe=e=>({...e});D.GetResourcePolicyResponseFilterSensitiveLog=oCe;var aCe=e=>({...e});D.GetSecretValueRequestFilterSensitiveLog=aCe;var cCe=e=>({...e,...e.SecretBinary&&{SecretBinary:or.SENSITIVE_STRING},...e.SecretString&&{SecretString:or.SENSITIVE_STRING}});D.GetSecretValueResponseFilterSensitiveLog=cCe;var lCe=e=>({...e});D.ListSecretsRequestFilterSensitiveLog=lCe;var dCe=e=>({...e});D.SecretListEntryFilterSensitiveLog=dCe;var uCe=e=>({...e});D.ListSecretsResponseFilterSensitiveLog=uCe;var mCe=e=>({...e});D.ListSecretVersionIdsRequestFilterSensitiveLog=mCe;var pCe=e=>({...e});D.SecretVersionsListEntryFilterSensitiveLog=pCe;var gCe=e=>({...e});D.ListSecretVersionIdsResponseFilterSensitiveLog=gCe;var yCe=e=>({...e});D.PutResourcePolicyRequestFilterSensitiveLog=yCe;var _Ce=e=>({...e});D.PutResourcePolicyResponseFilterSensitiveLog=_Ce;var fCe=e=>({...e,...e.SecretBinary&&{SecretBinary:or.SENSITIVE_STRING},...e.SecretString&&{SecretString:or.SENSITIVE_STRING}});D.PutSecretValueRequestFilterSensitiveLog=fCe;var SCe=e=>({...e});D.PutSecretValueResponseFilterSensitiveLog=SCe;var hCe=e=>({...e});D.RemoveRegionsFromReplicationRequestFilterSensitiveLog=hCe;var wCe=e=>({...e});D.RemoveRegionsFromReplicationResponseFilterSensitiveLog=wCe;var ECe=e=>({...e});D.ReplicateSecretToRegionsRequestFilterSensitiveLog=ECe;var CCe=e=>({...e});D.ReplicateSecretToRegionsResponseFilterSensitiveLog=CCe;var vCe=e=>({...e});D.RestoreSecretRequestFilterSensitiveLog=vCe;var PCe=e=>({...e});D.RestoreSecretResponseFilterSensitiveLog=PCe;var ACe=e=>({...e});D.RotateSecretRequestFilterSensitiveLog=ACe;var xCe=e=>({...e});D.RotateSecretResponseFilterSensitiveLog=xCe;var bCe=e=>({...e});D.StopReplicationToReplicaRequestFilterSensitiveLog=bCe;var ICe=e=>({...e});D.StopReplicationToReplicaResponseFilterSensitiveLog=ICe;var kCe=e=>({...e});D.TagResourceRequestFilterSensitiveLog=kCe;var RCe=e=>({...e});D.UntagResourceRequestFilterSensitiveLog=RCe;var NCe=e=>({...e,...e.SecretBinary&&{SecretBinary:or.SENSITIVE_STRING},...e.SecretString&&{SecretString:or.SENSITIVE_STRING}});D.UpdateSecretRequestFilterSensitiveLog=NCe;var zCe=e=>({...e});D.UpdateSecretResponseFilterSensitiveLog=zCe;var qCe=e=>({...e});D.UpdateSecretVersionStageRequestFilterSensitiveLog=qCe;var LCe=e=>({...e});D.UpdateSecretVersionStageResponseFilterSensitiveLog=LCe;var FCe=e=>({...e});D.ValidateResourcePolicyRequestFilterSensitiveLog=FCe;var DCe=e=>({...e});D.ValidationErrorsEntryFilterSensitiveLog=DCe;var TCe=e=>({...e});D.ValidateResourcePolicyResponseFilterSensitiveLog=TCe});var vt=u(Z=>{"use strict";Object.defineProperty(Z,"__esModule",{value:!0});Z.deserializeAws_json1_1ValidateResourcePolicyCommand=Z.deserializeAws_json1_1UpdateSecretVersionStageCommand=Z.deserializeAws_json1_1UpdateSecretCommand=Z.deserializeAws_json1_1UntagResourceCommand=Z.deserializeAws_json1_1TagResourceCommand=Z.deserializeAws_json1_1StopReplicationToReplicaCommand=Z.deserializeAws_json1_1RotateSecretCommand=Z.deserializeAws_json1_1RestoreSecretCommand=Z.deserializeAws_json1_1ReplicateSecretToRegionsCommand=Z.deserializeAws_json1_1RemoveRegionsFromReplicationCommand=Z.deserializeAws_json1_1PutSecretValueCommand=Z.deserializeAws_json1_1PutResourcePolicyCommand=Z.deserializeAws_json1_1ListSecretVersionIdsCommand=Z.deserializeAws_json1_1ListSecretsCommand=Z.deserializeAws_json1_1GetSecretValueCommand=Z.deserializeAws_json1_1GetResourcePolicyCommand=Z.deserializeAws_json1_1GetRandomPasswordCommand=Z.deserializeAws_json1_1DescribeSecretCommand=Z.deserializeAws_json1_1DeleteSecretCommand=Z.deserializeAws_json1_1DeleteResourcePolicyCommand=Z.deserializeAws_json1_1CreateSecretCommand=Z.deserializeAws_json1_1CancelRotateSecretCommand=Z.serializeAws_json1_1ValidateResourcePolicyCommand=Z.serializeAws_json1_1UpdateSecretVersionStageCommand=Z.serializeAws_json1_1UpdateSecretCommand=Z.serializeAws_json1_1UntagResourceCommand=Z.serializeAws_json1_1TagResourceCommand=Z.serializeAws_json1_1StopReplicationToReplicaCommand=Z.serializeAws_json1_1RotateSecretCommand=Z.serializeAws_json1_1RestoreSecretCommand=Z.serializeAws_json1_1ReplicateSecretToRegionsCommand=Z.serializeAws_json1_1RemoveRegionsFromReplicationCommand=Z.serializeAws_json1_1PutSecretValueCommand=Z.serializeAws_json1_1PutResourcePolicyCommand=Z.serializeAws_json1_1ListSecretVersionIdsCommand=Z.serializeAws_json1_1ListSecretsCommand=Z.serializeAws_json1_1GetSecretValueCommand=Z.serializeAws_json1_1GetResourcePolicyCommand=Z.serializeAws_json1_1GetRandomPasswordCommand=Z.serializeAws_json1_1DescribeSecretCommand=Z.serializeAws_json1_1DeleteSecretCommand=Z.serializeAws_json1_1DeleteResourcePolicyCommand=Z.serializeAws_json1_1CreateSecretCommand=Z.serializeAws_json1_1CancelRotateSecretCommand=void 0;var jCe=gt(),k=E(),Cw=ua(),Un=ot(),bt=Ew(),MCe=async(e,n)=>{let t={"content-type":"application/x-amz-json-1.1","x-amz-target":"secretsmanager.CancelRotateSecret"},s;return s=JSON.stringify(Yve(e,n)),Rt(n,t,"/",void 0,s)};Z.serializeAws_json1_1CancelRotateSecretCommand=MCe;var OCe=async(e,n)=>{let t={"content-type":"application/x-amz-json-1.1","x-amz-target":"secretsmanager.CreateSecret"},s;return s=JSON.stringify(Zve(e,n)),Rt(n,t,"/",void 0,s)};Z.serializeAws_json1_1CreateSecretCommand=OCe;var BCe=async(e,n)=>{let t={"content-type":"application/x-amz-json-1.1","x-amz-target":"secretsmanager.DeleteResourcePolicy"},s;return s=JSON.stringify(ePe(e,n)),Rt(n,t,"/",void 0,s)};Z.serializeAws_json1_1DeleteResourcePolicyCommand=BCe;var GCe=async(e,n)=>{let t={"content-type":"application/x-amz-json-1.1","x-amz-target":"secretsmanager.DeleteSecret"},s;return s=JSON.stringify(tPe(e,n)),Rt(n,t,"/",void 0,s)};Z.serializeAws_json1_1DeleteSecretCommand=GCe;var UCe=async(e,n)=>{let t={"content-type":"application/x-amz-json-1.1","x-amz-target":"secretsmanager.DescribeSecret"},s;return s=JSON.stringify(nPe(e,n)),Rt(n,t,"/",void 0,s)};Z.serializeAws_json1_1DescribeSecretCommand=UCe;var XCe=async(e,n)=>{let t={"content-type":"application/x-amz-json-1.1","x-amz-target":"secretsmanager.GetRandomPassword"},s;return s=JSON.stringify(oPe(e,n)),Rt(n,t,"/",void 0,s)};Z.serializeAws_json1_1GetRandomPasswordCommand=XCe;var $Ce=async(e,n)=>{let t={"content-type":"application/x-amz-json-1.1","x-amz-target":"secretsmanager.GetResourcePolicy"},s;return s=JSON.stringify(aPe(e,n)),Rt(n,t,"/",void 0,s)};Z.serializeAws_json1_1GetResourcePolicyCommand=$Ce;var HCe=async(e,n)=>{let t={"content-type":"application/x-amz-json-1.1","x-amz-target":"secretsmanager.GetSecretValue"},s;return s=JSON.stringify(cPe(e,n)),Rt(n,t,"/",void 0,s)};Z.serializeAws_json1_1GetSecretValueCommand=HCe;var VCe=async(e,n)=>{let t={"content-type":"application/x-amz-json-1.1","x-amz-target":"secretsmanager.ListSecrets"},s;return s=JSON.stringify(lPe(e,n)),Rt(n,t,"/",void 0,s)};Z.serializeAws_json1_1ListSecretsCommand=VCe;var WCe=async(e,n)=>{let t={"content-type":"application/x-amz-json-1.1","x-amz-target":"secretsmanager.ListSecretVersionIds"},s;return s=JSON.stringify(dPe(e,n)),Rt(n,t,"/",void 0,s)};Z.serializeAws_json1_1ListSecretVersionIdsCommand=WCe;var KCe=async(e,n)=>{let t={"content-type":"application/x-amz-json-1.1","x-amz-target":"secretsmanager.PutResourcePolicy"},s;return s=JSON.stringify(uPe(e,n)),Rt(n,t,"/",void 0,s)};Z.serializeAws_json1_1PutResourcePolicyCommand=KCe;var QCe=async(e,n)=>{let t={"content-type":"application/x-amz-json-1.1","x-amz-target":"secretsmanager.PutSecretValue"},s;return s=JSON.stringify(mPe(e,n)),Rt(n,t,"/",void 0,s)};Z.serializeAws_json1_1PutSecretValueCommand=QCe;var JCe=async(e,n)=>{let t={"content-type":"application/x-amz-json-1.1","x-amz-target":"secretsmanager.RemoveRegionsFromReplication"},s;return s=JSON.stringify(pPe(e,n)),Rt(n,t,"/",void 0,s)};Z.serializeAws_json1_1RemoveRegionsFromReplicationCommand=JCe;var YCe=async(e,n)=>{let t={"content-type":"application/x-amz-json-1.1","x-amz-target":"secretsmanager.ReplicateSecretToRegions"},s;return s=JSON.stringify(_Pe(e,n)),Rt(n,t,"/",void 0,s)};Z.serializeAws_json1_1ReplicateSecretToRegionsCommand=YCe;var ZCe=async(e,n)=>{let t={"content-type":"application/x-amz-json-1.1","x-amz-target":"secretsmanager.RestoreSecret"},s;return s=JSON.stringify(fPe(e,n)),Rt(n,t,"/",void 0,s)};Z.serializeAws_json1_1RestoreSecretCommand=ZCe;var eve=async(e,n)=>{let t={"content-type":"application/x-amz-json-1.1","x-amz-target":"secretsmanager.RotateSecret"},s;return s=JSON.stringify(SPe(e,n)),Rt(n,t,"/",void 0,s)};Z.serializeAws_json1_1RotateSecretCommand=eve;var tve=async(e,n)=>{let t={"content-type":"application/x-amz-json-1.1","x-amz-target":"secretsmanager.StopReplicationToReplica"},s;return s=JSON.stringify(EPe(e,n)),Rt(n,t,"/",void 0,s)};Z.serializeAws_json1_1StopReplicationToReplicaCommand=tve;var nve=async(e,n)=>{let t={"content-type":"application/x-amz-json-1.1","x-amz-target":"secretsmanager.TagResource"},s;return s=JSON.stringify(PPe(e,n)),Rt(n,t,"/",void 0,s)};Z.serializeAws_json1_1TagResourceCommand=nve;var sve=async(e,n)=>{let t={"content-type":"application/x-amz-json-1.1","x-amz-target":"secretsmanager.UntagResource"},s;return s=JSON.stringify(APe(e,n)),Rt(n,t,"/",void 0,s)};Z.serializeAws_json1_1UntagResourceCommand=sve;var rve=async(e,n)=>{let t={"content-type":"application/x-amz-json-1.1","x-amz-target":"secretsmanager.UpdateSecret"},s;return s=JSON.stringify(xPe(e,n)),Rt(n,t,"/",void 0,s)};Z.serializeAws_json1_1UpdateSecretCommand=rve;var ive=async(e,n)=>{let t={"content-type":"application/x-amz-json-1.1","x-amz-target":"secretsmanager.UpdateSecretVersionStage"},s;return s=JSON.stringify(bPe(e,n)),Rt(n,t,"/",void 0,s)};Z.serializeAws_json1_1UpdateSecretVersionStageCommand=ive;var ove=async(e,n)=>{let t={"content-type":"application/x-amz-json-1.1","x-amz-target":"secretsmanager.ValidateResourcePolicy"},s;return s=JSON.stringify(IPe(e,n)),Rt(n,t,"/",void 0,s)};Z.serializeAws_json1_1ValidateResourcePolicyCommand=ove;var ave=async(e,n)=>{if(e.statusCode>=300)return cve(e,n);let t=await Ft(e.body,n),s={};s=kPe(t,n);let r={$metadata:Oe(e),...s};return Promise.resolve(r)};Z.deserializeAws_json1_1CancelRotateSecretCommand=ave;var cve=async(e,n)=>{let t={...e,body:await Nt(e.body,n)},s=zt(e,t.body);switch(s){case"InternalServiceError":case"com.amazonaws.secretsmanager#InternalServiceError":throw await It(t,n);case"InvalidParameterException":case"com.amazonaws.secretsmanager#InvalidParameterException":throw await kt(t,n);case"InvalidRequestException":case"com.amazonaws.secretsmanager#InvalidRequestException":throw await Ut(t,n);case"ResourceNotFoundException":case"com.amazonaws.secretsmanager#ResourceNotFoundException":throw await Ot(t,n);default:let r=t.body;(0,k.throwDefaultError)({output:e,parsedBody:r,exceptionCtor:bt.SecretsManagerServiceException,errorCode:s})}},lve=async(e,n)=>{if(e.statusCode>=300)return dve(e,n);let t=await Ft(e.body,n),s={};s=RPe(t,n);let r={$metadata:Oe(e),...s};return Promise.resolve(r)};Z.deserializeAws_json1_1CreateSecretCommand=lve;var dve=async(e,n)=>{let t={...e,body:await Nt(e.body,n)},s=zt(e,t.body);switch(s){case"DecryptionFailure":case"com.amazonaws.secretsmanager#DecryptionFailure":throw await vw(t,n);case"EncryptionFailure":case"com.amazonaws.secretsmanager#EncryptionFailure":throw await zI(t,n);case"InternalServiceError":case"com.amazonaws.secretsmanager#InternalServiceError":throw await It(t,n);case"InvalidParameterException":case"com.amazonaws.secretsmanager#InvalidParameterException":throw await kt(t,n);case"InvalidRequestException":case"com.amazonaws.secretsmanager#InvalidRequestException":throw await Ut(t,n);case"LimitExceededException":case"com.amazonaws.secretsmanager#LimitExceededException":throw await Pw(t,n);case"MalformedPolicyDocumentException":case"com.amazonaws.secretsmanager#MalformedPolicyDocumentException":throw await Aw(t,n);case"PreconditionNotMetException":case"com.amazonaws.secretsmanager#PreconditionNotMetException":throw await mX(t,n);case"ResourceExistsException":case"com.amazonaws.secretsmanager#ResourceExistsException":throw await qI(t,n);case"ResourceNotFoundException":case"com.amazonaws.secretsmanager#ResourceNotFoundException":throw await Ot(t,n);default:let r=t.body;(0,k.throwDefaultError)({output:e,parsedBody:r,exceptionCtor:bt.SecretsManagerServiceException,errorCode:s})}},uve=async(e,n)=>{if(e.statusCode>=300)return mve(e,n);let t=await Ft(e.body,n),s={};s=zPe(t,n);let r={$metadata:Oe(e),...s};return Promise.resolve(r)};Z.deserializeAws_json1_1DeleteResourcePolicyCommand=uve;var mve=async(e,n)=>{let t={...e,body:await Nt(e.body,n)},s=zt(e,t.body);switch(s){case"InternalServiceError":case"com.amazonaws.secretsmanager#InternalServiceError":throw await It(t,n);case"InvalidParameterException":case"com.amazonaws.secretsmanager#InvalidParameterException":throw await kt(t,n);case"InvalidRequestException":case"com.amazonaws.secretsmanager#InvalidRequestException":throw await Ut(t,n);case"ResourceNotFoundException":case"com.amazonaws.secretsmanager#ResourceNotFoundException":throw await Ot(t,n);default:let r=t.body;(0,k.throwDefaultError)({output:e,parsedBody:r,exceptionCtor:bt.SecretsManagerServiceException,errorCode:s})}},pve=async(e,n)=>{if(e.statusCode>=300)return gve(e,n);let t=await Ft(e.body,n),s={};s=qPe(t,n);let r={$metadata:Oe(e),...s};return Promise.resolve(r)};Z.deserializeAws_json1_1DeleteSecretCommand=pve;var gve=async(e,n)=>{let t={...e,body:await Nt(e.body,n)},s=zt(e,t.body);switch(s){case"InternalServiceError":case"com.amazonaws.secretsmanager#InternalServiceError":throw await It(t,n);case"InvalidParameterException":case"com.amazonaws.secretsmanager#InvalidParameterException":throw await kt(t,n);case"InvalidRequestException":case"com.amazonaws.secretsmanager#InvalidRequestException":throw await Ut(t,n);case"ResourceNotFoundException":case"com.amazonaws.secretsmanager#ResourceNotFoundException":throw await Ot(t,n);default:let r=t.body;(0,k.throwDefaultError)({output:e,parsedBody:r,exceptionCtor:bt.SecretsManagerServiceException,errorCode:s})}},yve=async(e,n)=>{if(e.statusCode>=300)return _ve(e,n);let t=await Ft(e.body,n),s={};s=LPe(t,n);let r={$metadata:Oe(e),...s};return Promise.resolve(r)};Z.deserializeAws_json1_1DescribeSecretCommand=yve;var _ve=async(e,n)=>{let t={...e,body:await Nt(e.body,n)},s=zt(e,t.body);switch(s){case"InternalServiceError":case"com.amazonaws.secretsmanager#InternalServiceError":throw await It(t,n);case"InvalidParameterException":case"com.amazonaws.secretsmanager#InvalidParameterException":throw await kt(t,n);case"ResourceNotFoundException":case"com.amazonaws.secretsmanager#ResourceNotFoundException":throw await Ot(t,n);default:let r=t.body;(0,k.throwDefaultError)({output:e,parsedBody:r,exceptionCtor:bt.SecretsManagerServiceException,errorCode:s})}},fve=async(e,n)=>{if(e.statusCode>=300)return Sve(e,n);let t=await Ft(e.body,n),s={};s=DPe(t,n);let r={$metadata:Oe(e),...s};return Promise.resolve(r)};Z.deserializeAws_json1_1GetRandomPasswordCommand=fve;var Sve=async(e,n)=>{let t={...e,body:await Nt(e.body,n)},s=zt(e,t.body);switch(s){case"InternalServiceError":case"com.amazonaws.secretsmanager#InternalServiceError":throw await It(t,n);case"InvalidParameterException":case"com.amazonaws.secretsmanager#InvalidParameterException":throw await kt(t,n);case"InvalidRequestException":case"com.amazonaws.secretsmanager#InvalidRequestException":throw await Ut(t,n);default:let r=t.body;(0,k.throwDefaultError)({output:e,parsedBody:r,exceptionCtor:bt.SecretsManagerServiceException,errorCode:s})}},hve=async(e,n)=>{if(e.statusCode>=300)return wve(e,n);let t=await Ft(e.body,n),s={};s=TPe(t,n);let r={$metadata:Oe(e),...s};return Promise.resolve(r)};Z.deserializeAws_json1_1GetResourcePolicyCommand=hve;var wve=async(e,n)=>{let t={...e,body:await Nt(e.body,n)},s=zt(e,t.body);switch(s){case"InternalServiceError":case"com.amazonaws.secretsmanager#InternalServiceError":throw await It(t,n);case"InvalidParameterException":case"com.amazonaws.secretsmanager#InvalidParameterException":throw await kt(t,n);case"InvalidRequestException":case"com.amazonaws.secretsmanager#InvalidRequestException":throw await Ut(t,n);case"ResourceNotFoundException":case"com.amazonaws.secretsmanager#ResourceNotFoundException":throw await Ot(t,n);default:let r=t.body;(0,k.throwDefaultError)({output:e,parsedBody:r,exceptionCtor:bt.SecretsManagerServiceException,errorCode:s})}},Eve=async(e,n)=>{if(e.statusCode>=300)return Cve(e,n);let t=await Ft(e.body,n),s={};s=jPe(t,n);let r={$metadata:Oe(e),...s};return Promise.resolve(r)};Z.deserializeAws_json1_1GetSecretValueCommand=Eve;var Cve=async(e,n)=>{let t={...e,body:await Nt(e.body,n)},s=zt(e,t.body);switch(s){case"DecryptionFailure":case"com.amazonaws.secretsmanager#DecryptionFailure":throw await vw(t,n);case"InternalServiceError":case"com.amazonaws.secretsmanager#InternalServiceError":throw await It(t,n);case"InvalidParameterException":case"com.amazonaws.secretsmanager#InvalidParameterException":throw await kt(t,n);case"InvalidRequestException":case"com.amazonaws.secretsmanager#InvalidRequestException":throw await Ut(t,n);case"ResourceNotFoundException":case"com.amazonaws.secretsmanager#ResourceNotFoundException":throw await Ot(t,n);default:let r=t.body;(0,k.throwDefaultError)({output:e,parsedBody:r,exceptionCtor:bt.SecretsManagerServiceException,errorCode:s})}},vve=async(e,n)=>{if(e.statusCode>=300)return Pve(e,n);let t=await Ft(e.body,n),s={};s=$Pe(t,n);let r={$metadata:Oe(e),...s};return Promise.resolve(r)};Z.deserializeAws_json1_1ListSecretsCommand=vve;var Pve=async(e,n)=>{let t={...e,body:await Nt(e.body,n)},s=zt(e,t.body);switch(s){case"InternalServiceError":case"com.amazonaws.secretsmanager#InternalServiceError":throw await It(t,n);case"InvalidNextTokenException":case"com.amazonaws.secretsmanager#InvalidNextTokenException":throw await uX(t,n);case"InvalidParameterException":case"com.amazonaws.secretsmanager#InvalidParameterException":throw await kt(t,n);default:let r=t.body;(0,k.throwDefaultError)({output:e,parsedBody:r,exceptionCtor:bt.SecretsManagerServiceException,errorCode:s})}},Ave=async(e,n)=>{if(e.statusCode>=300)return xve(e,n);let t=await Ft(e.body,n),s={};s=HPe(t,n);let r={$metadata:Oe(e),...s};return Promise.resolve(r)};Z.deserializeAws_json1_1ListSecretVersionIdsCommand=Ave;var xve=async(e,n)=>{let t={...e,body:await Nt(e.body,n)},s=zt(e,t.body);switch(s){case"InternalServiceError":case"com.amazonaws.secretsmanager#InternalServiceError":throw await It(t,n);case"InvalidNextTokenException":case"com.amazonaws.secretsmanager#InvalidNextTokenException":throw await uX(t,n);case"InvalidParameterException":case"com.amazonaws.secretsmanager#InvalidParameterException":throw await kt(t,n);case"ResourceNotFoundException":case"com.amazonaws.secretsmanager#ResourceNotFoundException":throw await Ot(t,n);default:let r=t.body;(0,k.throwDefaultError)({output:e,parsedBody:r,exceptionCtor:bt.SecretsManagerServiceException,errorCode:s})}},bve=async(e,n)=>{if(e.statusCode>=300)return Ive(e,n);let t=await Ft(e.body,n),s={};s=QPe(t,n);let r={$metadata:Oe(e),...s};return Promise.resolve(r)};Z.deserializeAws_json1_1PutResourcePolicyCommand=bve;var Ive=async(e,n)=>{let t={...e,body:await Nt(e.body,n)},s=zt(e,t.body);switch(s){case"InternalServiceError":case"com.amazonaws.secretsmanager#InternalServiceError":throw await It(t,n);case"InvalidParameterException":case"com.amazonaws.secretsmanager#InvalidParameterException":throw await kt(t,n);case"InvalidRequestException":case"com.amazonaws.secretsmanager#InvalidRequestException":throw await Ut(t,n);case"MalformedPolicyDocumentException":case"com.amazonaws.secretsmanager#MalformedPolicyDocumentException":throw await Aw(t,n);case"PublicPolicyException":case"com.amazonaws.secretsmanager#PublicPolicyException":throw await Jve(t,n);case"ResourceNotFoundException":case"com.amazonaws.secretsmanager#ResourceNotFoundException":throw await Ot(t,n);default:let r=t.body;(0,k.throwDefaultError)({output:e,parsedBody:r,exceptionCtor:bt.SecretsManagerServiceException,errorCode:s})}},kve=async(e,n)=>{if(e.statusCode>=300)return Rve(e,n);let t=await Ft(e.body,n),s={};s=JPe(t,n);let r={$metadata:Oe(e),...s};return Promise.resolve(r)};Z.deserializeAws_json1_1PutSecretValueCommand=kve;var Rve=async(e,n)=>{let t={...e,body:await Nt(e.body,n)},s=zt(e,t.body);switch(s){case"DecryptionFailure":case"com.amazonaws.secretsmanager#DecryptionFailure":throw await vw(t,n);case"EncryptionFailure":case"com.amazonaws.secretsmanager#EncryptionFailure":throw await zI(t,n);case"InternalServiceError":case"com.amazonaws.secretsmanager#InternalServiceError":throw await It(t,n);case"InvalidParameterException":case"com.amazonaws.secretsmanager#InvalidParameterException":throw await kt(t,n);case"InvalidRequestException":case"com.amazonaws.secretsmanager#InvalidRequestException":throw await Ut(t,n);case"LimitExceededException":case"com.amazonaws.secretsmanager#LimitExceededException":throw await Pw(t,n);case"ResourceExistsException":case"com.amazonaws.secretsmanager#ResourceExistsException":throw await qI(t,n);case"ResourceNotFoundException":case"com.amazonaws.secretsmanager#ResourceNotFoundException":throw await Ot(t,n);default:let r=t.body;(0,k.throwDefaultError)({output:e,parsedBody:r,exceptionCtor:bt.SecretsManagerServiceException,errorCode:s})}},Nve=async(e,n)=>{if(e.statusCode>=300)return zve(e,n);let t=await Ft(e.body,n),s={};s=YPe(t,n);let r={$metadata:Oe(e),...s};return Promise.resolve(r)};Z.deserializeAws_json1_1RemoveRegionsFromReplicationCommand=Nve;var zve=async(e,n)=>{let t={...e,body:await Nt(e.body,n)},s=zt(e,t.body);switch(s){case"InternalServiceError":case"com.amazonaws.secretsmanager#InternalServiceError":throw await It(t,n);case"InvalidParameterException":case"com.amazonaws.secretsmanager#InvalidParameterException":throw await kt(t,n);case"InvalidRequestException":case"com.amazonaws.secretsmanager#InvalidRequestException":throw await Ut(t,n);case"ResourceNotFoundException":case"com.amazonaws.secretsmanager#ResourceNotFoundException":throw await Ot(t,n);default:let r=t.body;(0,k.throwDefaultError)({output:e,parsedBody:r,exceptionCtor:bt.SecretsManagerServiceException,errorCode:s})}},qve=async(e,n)=>{if(e.statusCode>=300)return Lve(e,n);let t=await Ft(e.body,n),s={};s=ZPe(t,n);let r={$metadata:Oe(e),...s};return Promise.resolve(r)};Z.deserializeAws_json1_1ReplicateSecretToRegionsCommand=qve;var Lve=async(e,n)=>{let t={...e,body:await Nt(e.body,n)},s=zt(e,t.body);switch(s){case"InternalServiceError":case"com.amazonaws.secretsmanager#InternalServiceError":throw await It(t,n);case"InvalidParameterException":case"com.amazonaws.secretsmanager#InvalidParameterException":throw await kt(t,n);case"InvalidRequestException":case"com.amazonaws.secretsmanager#InvalidRequestException":throw await Ut(t,n);case"ResourceNotFoundException":case"com.amazonaws.secretsmanager#ResourceNotFoundException":throw await Ot(t,n);default:let r=t.body;(0,k.throwDefaultError)({output:e,parsedBody:r,exceptionCtor:bt.SecretsManagerServiceException,errorCode:s})}},Fve=async(e,n)=>{if(e.statusCode>=300)return Dve(e,n);let t=await Ft(e.body,n),s={};s=sAe(t,n);let r={$metadata:Oe(e),...s};return Promise.resolve(r)};Z.deserializeAws_json1_1RestoreSecretCommand=Fve;var Dve=async(e,n)=>{let t={...e,body:await Nt(e.body,n)},s=zt(e,t.body);switch(s){case"InternalServiceError":case"com.amazonaws.secretsmanager#InternalServiceError":throw await It(t,n);case"InvalidParameterException":case"com.amazonaws.secretsmanager#InvalidParameterException":throw await kt(t,n);case"InvalidRequestException":case"com.amazonaws.secretsmanager#InvalidRequestException":throw await Ut(t,n);case"ResourceNotFoundException":case"com.amazonaws.secretsmanager#ResourceNotFoundException":throw await Ot(t,n);default:let r=t.body;(0,k.throwDefaultError)({output:e,parsedBody:r,exceptionCtor:bt.SecretsManagerServiceException,errorCode:s})}},Tve=async(e,n)=>{if(e.statusCode>=300)return jve(e,n);let t=await Ft(e.body,n),s={};s=rAe(t,n);let r={$metadata:Oe(e),...s};return Promise.resolve(r)};Z.deserializeAws_json1_1RotateSecretCommand=Tve;var jve=async(e,n)=>{let t={...e,body:await Nt(e.body,n)},s=zt(e,t.body);switch(s){case"InternalServiceError":case"com.amazonaws.secretsmanager#InternalServiceError":throw await It(t,n);case"InvalidParameterException":case"com.amazonaws.secretsmanager#InvalidParameterException":throw await kt(t,n);case"InvalidRequestException":case"com.amazonaws.secretsmanager#InvalidRequestException":throw await Ut(t,n);case"ResourceNotFoundException":case"com.amazonaws.secretsmanager#ResourceNotFoundException":throw await Ot(t,n);default:let r=t.body;(0,k.throwDefaultError)({output:e,parsedBody:r,exceptionCtor:bt.SecretsManagerServiceException,errorCode:s})}},Mve=async(e,n)=>{if(e.statusCode>=300)return Ove(e,n);let t=await Ft(e.body,n),s={};s=lAe(t,n);let r={$metadata:Oe(e),...s};return Promise.resolve(r)};Z.deserializeAws_json1_1StopReplicationToReplicaCommand=Mve;var Ove=async(e,n)=>{let t={...e,body:await Nt(e.body,n)},s=zt(e,t.body);switch(s){case"InternalServiceError":case"com.amazonaws.secretsmanager#InternalServiceError":throw await It(t,n);case"InvalidParameterException":case"com.amazonaws.secretsmanager#InvalidParameterException":throw await kt(t,n);case"InvalidRequestException":case"com.amazonaws.secretsmanager#InvalidRequestException":throw await Ut(t,n);case"ResourceNotFoundException":case"com.amazonaws.secretsmanager#ResourceNotFoundException":throw await Ot(t,n);default:let r=t.body;(0,k.throwDefaultError)({output:e,parsedBody:r,exceptionCtor:bt.SecretsManagerServiceException,errorCode:s})}},Bve=async(e,n)=>{if(e.statusCode>=300)return Gve(e,n);await LI(e.body,n);let t={$metadata:Oe(e)};return Promise.resolve(t)};Z.deserializeAws_json1_1TagResourceCommand=Bve;var Gve=async(e,n)=>{let t={...e,body:await Nt(e.body,n)},s=zt(e,t.body);switch(s){case"InternalServiceError":case"com.amazonaws.secretsmanager#InternalServiceError":throw await It(t,n);case"InvalidParameterException":case"com.amazonaws.secretsmanager#InvalidParameterException":throw await kt(t,n);case"InvalidRequestException":case"com.amazonaws.secretsmanager#InvalidRequestException":throw await Ut(t,n);case"ResourceNotFoundException":case"com.amazonaws.secretsmanager#ResourceNotFoundException":throw await Ot(t,n);default:let r=t.body;(0,k.throwDefaultError)({output:e,parsedBody:r,exceptionCtor:bt.SecretsManagerServiceException,errorCode:s})}},Uve=async(e,n)=>{if(e.statusCode>=300)return Xve(e,n);await LI(e.body,n);let t={$metadata:Oe(e)};return Promise.resolve(t)};Z.deserializeAws_json1_1UntagResourceCommand=Uve;var Xve=async(e,n)=>{let t={...e,body:await Nt(e.body,n)},s=zt(e,t.body);switch(s){case"InternalServiceError":case"com.amazonaws.secretsmanager#InternalServiceError":throw await It(t,n);case"InvalidParameterException":case"com.amazonaws.secretsmanager#InvalidParameterException":throw await kt(t,n);case"InvalidRequestException":case"com.amazonaws.secretsmanager#InvalidRequestException":throw await Ut(t,n);case"ResourceNotFoundException":case"com.amazonaws.secretsmanager#ResourceNotFoundException":throw await Ot(t,n);default:let r=t.body;(0,k.throwDefaultError)({output:e,parsedBody:r,exceptionCtor:bt.SecretsManagerServiceException,errorCode:s})}},$ve=async(e,n)=>{if(e.statusCode>=300)return Hve(e,n);let t=await Ft(e.body,n),s={};s=uAe(t,n);let r={$metadata:Oe(e),...s};return Promise.resolve(r)};Z.deserializeAws_json1_1UpdateSecretCommand=$ve;var Hve=async(e,n)=>{let t={...e,body:await Nt(e.body,n)},s=zt(e,t.body);switch(s){case"DecryptionFailure":case"com.amazonaws.secretsmanager#DecryptionFailure":throw await vw(t,n);case"EncryptionFailure":case"com.amazonaws.secretsmanager#EncryptionFailure":throw await zI(t,n);case"InternalServiceError":case"com.amazonaws.secretsmanager#InternalServiceError":throw await It(t,n);case"InvalidParameterException":case"com.amazonaws.secretsmanager#InvalidParameterException":throw await kt(t,n);case"InvalidRequestException":case"com.amazonaws.secretsmanager#InvalidRequestException":throw await Ut(t,n);case"LimitExceededException":case"com.amazonaws.secretsmanager#LimitExceededException":throw await Pw(t,n);case"MalformedPolicyDocumentException":case"com.amazonaws.secretsmanager#MalformedPolicyDocumentException":throw await Aw(t,n);case"PreconditionNotMetException":case"com.amazonaws.secretsmanager#PreconditionNotMetException":throw await mX(t,n);case"ResourceExistsException":case"com.amazonaws.secretsmanager#ResourceExistsException":throw await qI(t,n);case"ResourceNotFoundException":case"com.amazonaws.secretsmanager#ResourceNotFoundException":throw await Ot(t,n);default:let r=t.body;(0,k.throwDefaultError)({output:e,parsedBody:r,exceptionCtor:bt.SecretsManagerServiceException,errorCode:s})}},Vve=async(e,n)=>{if(e.statusCode>=300)return Wve(e,n);let t=await Ft(e.body,n),s={};s=mAe(t,n);let r={$metadata:Oe(e),...s};return Promise.resolve(r)};Z.deserializeAws_json1_1UpdateSecretVersionStageCommand=Vve;var Wve=async(e,n)=>{let t={...e,body:await Nt(e.body,n)},s=zt(e,t.body);switch(s){case"InternalServiceError":case"com.amazonaws.secretsmanager#InternalServiceError":throw await It(t,n);case"InvalidParameterException":case"com.amazonaws.secretsmanager#InvalidParameterException":throw await kt(t,n);case"InvalidRequestException":case"com.amazonaws.secretsmanager#InvalidRequestException":throw await Ut(t,n);case"LimitExceededException":case"com.amazonaws.secretsmanager#LimitExceededException":throw await Pw(t,n);case"ResourceNotFoundException":case"com.amazonaws.secretsmanager#ResourceNotFoundException":throw await Ot(t,n);default:let r=t.body;(0,k.throwDefaultError)({output:e,parsedBody:r,exceptionCtor:bt.SecretsManagerServiceException,errorCode:s})}},Kve=async(e,n)=>{if(e.statusCode>=300)return Qve(e,n);let t=await Ft(e.body,n),s={};s=pAe(t,n);let r={$metadata:Oe(e),...s};return Promise.resolve(r)};Z.deserializeAws_json1_1ValidateResourcePolicyCommand=Kve;var Qve=async(e,n)=>{let t={...e,body:await Nt(e.body,n)},s=zt(e,t.body);switch(s){case"InternalServiceError":case"com.amazonaws.secretsmanager#InternalServiceError":throw await It(t,n);case"InvalidParameterException":case"com.amazonaws.secretsmanager#InvalidParameterException":throw await kt(t,n);case"InvalidRequestException":case"com.amazonaws.secretsmanager#InvalidRequestException":throw await Ut(t,n);case"MalformedPolicyDocumentException":case"com.amazonaws.secretsmanager#MalformedPolicyDocumentException":throw await Aw(t,n);case"ResourceNotFoundException":case"com.amazonaws.secretsmanager#ResourceNotFoundException":throw await Ot(t,n);default:let r=t.body;(0,k.throwDefaultError)({output:e,parsedBody:r,exceptionCtor:bt.SecretsManagerServiceException,errorCode:s})}},vw=async(e,n)=>{let t=e.body,s=NPe(t,n),r=new Un.DecryptionFailure({$metadata:Oe(e),...s});return(0,k.decorateServiceException)(r,t)},zI=async(e,n)=>{let t=e.body,s=FPe(t,n),r=new Un.EncryptionFailure({$metadata:Oe(e),...s});return(0,k.decorateServiceException)(r,t)},It=async(e,n)=>{let t=e.body,s=MPe(t,n),r=new Un.InternalServiceError({$metadata:Oe(e),...s});return(0,k.decorateServiceException)(r,t)},uX=async(e,n)=>{let t=e.body,s=OPe(t,n),r=new Un.InvalidNextTokenException({$metadata:Oe(e),...s});return(0,k.decorateServiceException)(r,t)},kt=async(e,n)=>{let t=e.body,s=BPe(t,n),r=new Un.InvalidParameterException({$metadata:Oe(e),...s});return(0,k.decorateServiceException)(r,t)},Ut=async(e,n)=>{let t=e.body,s=GPe(t,n),r=new Un.InvalidRequestException({$metadata:Oe(e),...s});return(0,k.decorateServiceException)(r,t)},Pw=async(e,n)=>{let t=e.body,s=XPe(t,n),r=new Un.LimitExceededException({$metadata:Oe(e),...s});return(0,k.decorateServiceException)(r,t)},Aw=async(e,n)=>{let t=e.body,s=VPe(t,n),r=new Un.MalformedPolicyDocumentException({$metadata:Oe(e),...s});return(0,k.decorateServiceException)(r,t)},mX=async(e,n)=>{let t=e.body,s=WPe(t,n),r=new Un.PreconditionNotMetException({$metadata:Oe(e),...s});return(0,k.decorateServiceException)(r,t)},Jve=async(e,n)=>{let t=e.body,s=KPe(t,n),r=new Un.PublicPolicyException({$metadata:Oe(e),...s});return(0,k.decorateServiceException)(r,t)},qI=async(e,n)=>{let t=e.body,s=tAe(t,n),r=new Un.ResourceExistsException({$metadata:Oe(e),...s});return(0,k.decorateServiceException)(r,t)},Ot=async(e,n)=>{let t=e.body,s=nAe(t,n),r=new Un.ResourceNotFoundException({$metadata:Oe(e),...s});return(0,k.decorateServiceException)(r,t)},pX=(e,n)=>e.filter(t=>t!=null).map(t=>yPe(t,n)),Yve=(e,n)=>({...e.SecretId!=null&&{SecretId:e.SecretId}}),Zve=(e,n)=>({...e.AddReplicaRegions!=null&&{AddReplicaRegions:pX(e.AddReplicaRegions,n)},ClientRequestToken:e.ClientRequestToken??(0,Cw.v4)(),...e.Description!=null&&{Description:e.Description},...e.ForceOverwriteReplicaSecret!=null&&{ForceOverwriteReplicaSecret:e.ForceOverwriteReplicaSecret},...e.KmsKeyId!=null&&{KmsKeyId:e.KmsKeyId},...e.Name!=null&&{Name:e.Name},...e.SecretBinary!=null&&{SecretBinary:n.base64Encoder(e.SecretBinary)},...e.SecretString!=null&&{SecretString:e.SecretString},...e.Tags!=null&&{Tags:gX(e.Tags,n)}}),ePe=(e,n)=>({...e.SecretId!=null&&{SecretId:e.SecretId}}),tPe=(e,n)=>({...e.ForceDeleteWithoutRecovery!=null&&{ForceDeleteWithoutRecovery:e.ForceDeleteWithoutRecovery},...e.RecoveryWindowInDays!=null&&{RecoveryWindowInDays:e.RecoveryWindowInDays},...e.SecretId!=null&&{SecretId:e.SecretId}}),nPe=(e,n)=>({...e.SecretId!=null&&{SecretId:e.SecretId}}),sPe=(e,n)=>({...e.Key!=null&&{Key:e.Key},...e.Values!=null&&{Values:iPe(e.Values,n)}}),rPe=(e,n)=>e.filter(t=>t!=null).map(t=>sPe(t,n)),iPe=(e,n)=>e.filter(t=>t!=null).map(t=>t),oPe=(e,n)=>({...e.ExcludeCharacters!=null&&{ExcludeCharacters:e.ExcludeCharacters},...e.ExcludeLowercase!=null&&{ExcludeLowercase:e.ExcludeLowercase},...e.ExcludeNumbers!=null&&{ExcludeNumbers:e.ExcludeNumbers},...e.ExcludePunctuation!=null&&{ExcludePunctuation:e.ExcludePunctuation},...e.ExcludeUppercase!=null&&{ExcludeUppercase:e.ExcludeUppercase},...e.IncludeSpace!=null&&{IncludeSpace:e.IncludeSpace},...e.PasswordLength!=null&&{PasswordLength:e.PasswordLength},...e.RequireEachIncludedType!=null&&{RequireEachIncludedType:e.RequireEachIncludedType}}),aPe=(e,n)=>({...e.SecretId!=null&&{SecretId:e.SecretId}}),cPe=(e,n)=>({...e.SecretId!=null&&{SecretId:e.SecretId},...e.VersionId!=null&&{VersionId:e.VersionId},...e.VersionStage!=null&&{VersionStage:e.VersionStage}}),lPe=(e,n)=>({...e.Filters!=null&&{Filters:rPe(e.Filters,n)},...e.IncludePlannedDeletion!=null&&{IncludePlannedDeletion:e.IncludePlannedDeletion},...e.MaxResults!=null&&{MaxResults:e.MaxResults},...e.NextToken!=null&&{NextToken:e.NextToken},...e.SortOrder!=null&&{SortOrder:e.SortOrder}}),dPe=(e,n)=>({...e.IncludeDeprecated!=null&&{IncludeDeprecated:e.IncludeDeprecated},...e.MaxResults!=null&&{MaxResults:e.MaxResults},...e.NextToken!=null&&{NextToken:e.NextToken},...e.SecretId!=null&&{SecretId:e.SecretId}}),uPe=(e,n)=>({...e.BlockPublicPolicy!=null&&{BlockPublicPolicy:e.BlockPublicPolicy},...e.ResourcePolicy!=null&&{ResourcePolicy:e.ResourcePolicy},...e.SecretId!=null&&{SecretId:e.SecretId}}),mPe=(e,n)=>({ClientRequestToken:e.ClientRequestToken??(0,Cw.v4)(),...e.SecretBinary!=null&&{SecretBinary:n.base64Encoder(e.SecretBinary)},...e.SecretId!=null&&{SecretId:e.SecretId},...e.SecretString!=null&&{SecretString:e.SecretString},...e.VersionStages!=null&&{VersionStages:wPe(e.VersionStages,n)}}),pPe=(e,n)=>({...e.RemoveReplicaRegions!=null&&{RemoveReplicaRegions:gPe(e.RemoveReplicaRegions,n)},...e.SecretId!=null&&{SecretId:e.SecretId}}),gPe=(e,n)=>e.filter(t=>t!=null).map(t=>t),yPe=(e,n)=>({...e.KmsKeyId!=null&&{KmsKeyId:e.KmsKeyId},...e.Region!=null&&{Region:e.Region}}),_Pe=(e,n)=>({...e.AddReplicaRegions!=null&&{AddReplicaRegions:pX(e.AddReplicaRegions,n)},...e.ForceOverwriteReplicaSecret!=null&&{ForceOverwriteReplicaSecret:e.ForceOverwriteReplicaSecret},...e.SecretId!=null&&{SecretId:e.SecretId}}),fPe=(e,n)=>({...e.SecretId!=null&&{SecretId:e.SecretId}}),SPe=(e,n)=>({ClientRequestToken:e.ClientRequestToken??(0,Cw.v4)(),...e.RotateImmediately!=null&&{RotateImmediately:e.RotateImmediately},...e.RotationLambdaARN!=null&&{RotationLambdaARN:e.RotationLambdaARN},...e.RotationRules!=null&&{RotationRules:hPe(e.RotationRules,n)},...e.SecretId!=null&&{SecretId:e.SecretId}}),hPe=(e,n)=>({...e.AutomaticallyAfterDays!=null&&{AutomaticallyAfterDays:e.AutomaticallyAfterDays},...e.Duration!=null&&{Duration:e.Duration},...e.ScheduleExpression!=null&&{ScheduleExpression:e.ScheduleExpression}}),wPe=(e,n)=>e.filter(t=>t!=null).map(t=>t),EPe=(e,n)=>({...e.SecretId!=null&&{SecretId:e.SecretId}}),CPe=(e,n)=>({...e.Key!=null&&{Key:e.Key},...e.Value!=null&&{Value:e.Value}}),vPe=(e,n)=>e.filter(t=>t!=null).map(t=>t),gX=(e,n)=>e.filter(t=>t!=null).map(t=>CPe(t,n)),PPe=(e,n)=>({...e.SecretId!=null&&{SecretId:e.SecretId},...e.Tags!=null&&{Tags:gX(e.Tags,n)}}),APe=(e,n)=>({...e.SecretId!=null&&{SecretId:e.SecretId},...e.TagKeys!=null&&{TagKeys:vPe(e.TagKeys,n)}}),xPe=(e,n)=>({ClientRequestToken:e.ClientRequestToken??(0,Cw.v4)(),...e.Description!=null&&{Description:e.Description},...e.KmsKeyId!=null&&{KmsKeyId:e.KmsKeyId},...e.SecretBinary!=null&&{SecretBinary:n.base64Encoder(e.SecretBinary)},...e.SecretId!=null&&{SecretId:e.SecretId},...e.SecretString!=null&&{SecretString:e.SecretString}}),bPe=(e,n)=>({...e.MoveToVersionId!=null&&{MoveToVersionId:e.MoveToVersionId},...e.RemoveFromVersionId!=null&&{RemoveFromVersionId:e.RemoveFromVersionId},...e.SecretId!=null&&{SecretId:e.SecretId},...e.VersionStage!=null&&{VersionStage:e.VersionStage}}),IPe=(e,n)=>({...e.ResourcePolicy!=null&&{ResourcePolicy:e.ResourcePolicy},...e.SecretId!=null&&{SecretId:e.SecretId}}),kPe=(e,n)=>({ARN:(0,k.expectString)(e.ARN),Name:(0,k.expectString)(e.Name),VersionId:(0,k.expectString)(e.VersionId)}),RPe=(e,n)=>({ARN:(0,k.expectString)(e.ARN),Name:(0,k.expectString)(e.Name),ReplicationStatus:e.ReplicationStatus!=null?xw(e.ReplicationStatus,n):void 0,VersionId:(0,k.expectString)(e.VersionId)}),NPe=(e,n)=>({Message:(0,k.expectString)(e.Message)}),zPe=(e,n)=>({ARN:(0,k.expectString)(e.ARN),Name:(0,k.expectString)(e.Name)}),qPe=(e,n)=>({ARN:(0,k.expectString)(e.ARN),DeletionDate:e.DeletionDate!=null?(0,k.expectNonNull)((0,k.parseEpochTimestamp)((0,k.expectNumber)(e.DeletionDate))):void 0,Name:(0,k.expectString)(e.Name)}),LPe=(e,n)=>({ARN:(0,k.expectString)(e.ARN),CreatedDate:e.CreatedDate!=null?(0,k.expectNonNull)((0,k.parseEpochTimestamp)((0,k.expectNumber)(e.CreatedDate))):void 0,DeletedDate:e.DeletedDate!=null?(0,k.expectNonNull)((0,k.parseEpochTimestamp)((0,k.expectNumber)(e.DeletedDate))):void 0,Description:(0,k.expectString)(e.Description),KmsKeyId:(0,k.expectString)(e.KmsKeyId),LastAccessedDate:e.LastAccessedDate!=null?(0,k.expectNonNull)((0,k.parseEpochTimestamp)((0,k.expectNumber)(e.LastAccessedDate))):void 0,LastChangedDate:e.LastChangedDate!=null?(0,k.expectNonNull)((0,k.parseEpochTimestamp)((0,k.expectNumber)(e.LastChangedDate))):void 0,LastRotatedDate:e.LastRotatedDate!=null?(0,k.expectNonNull)((0,k.parseEpochTimestamp)((0,k.expectNumber)(e.LastRotatedDate))):void 0,Name:(0,k.expectString)(e.Name),NextRotationDate:e.NextRotationDate!=null?(0,k.expectNonNull)((0,k.parseEpochTimestamp)((0,k.expectNumber)(e.NextRotationDate))):void 0,OwningService:(0,k.expectString)(e.OwningService),PrimaryRegion:(0,k.expectString)(e.PrimaryRegion),ReplicationStatus:e.ReplicationStatus!=null?xw(e.ReplicationStatus,n):void 0,RotationEnabled:(0,k.expectBoolean)(e.RotationEnabled),RotationLambdaARN:(0,k.expectString)(e.RotationLambdaARN),RotationRules:e.RotationRules!=null?yX(e.RotationRules,n):void 0,Tags:e.Tags!=null?fX(e.Tags,n):void 0,VersionIdsToStages:e.VersionIdsToStages!=null?_X(e.VersionIdsToStages,n):void 0}),FPe=(e,n)=>({Message:(0,k.expectString)(e.Message)}),DPe=(e,n)=>({RandomPassword:(0,k.expectString)(e.RandomPassword)}),TPe=(e,n)=>({ARN:(0,k.expectString)(e.ARN),Name:(0,k.expectString)(e.Name),ResourcePolicy:(0,k.expectString)(e.ResourcePolicy)}),jPe=(e,n)=>({ARN:(0,k.expectString)(e.ARN),CreatedDate:e.CreatedDate!=null?(0,k.expectNonNull)((0,k.parseEpochTimestamp)((0,k.expectNumber)(e.CreatedDate))):void 0,Name:(0,k.expectString)(e.Name),SecretBinary:e.SecretBinary!=null?n.base64Decoder(e.SecretBinary):void 0,SecretString:(0,k.expectString)(e.SecretString),VersionId:(0,k.expectString)(e.VersionId),VersionStages:e.VersionStages!=null?bw(e.VersionStages,n):void 0}),MPe=(e,n)=>({Message:(0,k.expectString)(e.Message)}),OPe=(e,n)=>({Message:(0,k.expectString)(e.Message)}),BPe=(e,n)=>({Message:(0,k.expectString)(e.Message)}),GPe=(e,n)=>({Message:(0,k.expectString)(e.Message)}),UPe=(e,n)=>(e||[]).filter(s=>s!=null).map(s=>s===null?null:(0,k.expectString)(s)),XPe=(e,n)=>({Message:(0,k.expectString)(e.Message)}),$Pe=(e,n)=>({NextToken:(0,k.expectString)(e.NextToken),SecretList:e.SecretList!=null?oAe(e.SecretList,n):void 0}),HPe=(e,n)=>({ARN:(0,k.expectString)(e.ARN),Name:(0,k.expectString)(e.Name),NextToken:(0,k.expectString)(e.NextToken),Versions:e.Versions!=null?cAe(e.Versions,n):void 0}),VPe=(e,n)=>({Message:(0,k.expectString)(e.Message)}),WPe=(e,n)=>({Message:(0,k.expectString)(e.Message)}),KPe=(e,n)=>({Message:(0,k.expectString)(e.Message)}),QPe=(e,n)=>({ARN:(0,k.expectString)(e.ARN),Name:(0,k.expectString)(e.Name)}),JPe=(e,n)=>({ARN:(0,k.expectString)(e.ARN),Name:(0,k.expectString)(e.Name),VersionId:(0,k.expectString)(e.VersionId),VersionStages:e.VersionStages!=null?bw(e.VersionStages,n):void 0}),YPe=(e,n)=>({ARN:(0,k.expectString)(e.ARN),ReplicationStatus:e.ReplicationStatus!=null?xw(e.ReplicationStatus,n):void 0}),ZPe=(e,n)=>({ARN:(0,k.expectString)(e.ARN),ReplicationStatus:e.ReplicationStatus!=null?xw(e.ReplicationStatus,n):void 0}),xw=(e,n)=>(e||[]).filter(s=>s!=null).map(s=>s===null?null:eAe(s,n)),eAe=(e,n)=>({KmsKeyId:(0,k.expectString)(e.KmsKeyId),LastAccessedDate:e.LastAccessedDate!=null?(0,k.expectNonNull)((0,k.parseEpochTimestamp)((0,k.expectNumber)(e.LastAccessedDate))):void 0,Region:(0,k.expectString)(e.Region),Status:(0,k.expectString)(e.Status),StatusMessage:(0,k.expectString)(e.StatusMessage)}),tAe=(e,n)=>({Message:(0,k.expectString)(e.Message)}),nAe=(e,n)=>({Message:(0,k.expectString)(e.Message)}),sAe=(e,n)=>({ARN:(0,k.expectString)(e.ARN),Name:(0,k.expectString)(e.Name)}),rAe=(e,n)=>({ARN:(0,k.expectString)(e.ARN),Name:(0,k.expectString)(e.Name),VersionId:(0,k.expectString)(e.VersionId)}),yX=(e,n)=>({AutomaticallyAfterDays:(0,k.expectLong)(e.AutomaticallyAfterDays),Duration:(0,k.expectString)(e.Duration),ScheduleExpression:(0,k.expectString)(e.ScheduleExpression)}),iAe=(e,n)=>({ARN:(0,k.expectString)(e.ARN),CreatedDate:e.CreatedDate!=null?(0,k.expectNonNull)((0,k.parseEpochTimestamp)((0,k.expectNumber)(e.CreatedDate))):void 0,DeletedDate:e.DeletedDate!=null?(0,k.expectNonNull)((0,k.parseEpochTimestamp)((0,k.expectNumber)(e.DeletedDate))):void 0,Description:(0,k.expectString)(e.Description),KmsKeyId:(0,k.expectString)(e.KmsKeyId),LastAccessedDate:e.LastAccessedDate!=null?(0,k.expectNonNull)((0,k.parseEpochTimestamp)((0,k.expectNumber)(e.LastAccessedDate))):void 0,LastChangedDate:e.LastChangedDate!=null?(0,k.expectNonNull)((0,k.parseEpochTimestamp)((0,k.expectNumber)(e.LastChangedDate))):void 0,LastRotatedDate:e.LastRotatedDate!=null?(0,k.expectNonNull)((0,k.parseEpochTimestamp)((0,k.expectNumber)(e.LastRotatedDate))):void 0,Name:(0,k.expectString)(e.Name),NextRotationDate:e.NextRotationDate!=null?(0,k.expectNonNull)((0,k.parseEpochTimestamp)((0,k.expectNumber)(e.NextRotationDate))):void 0,OwningService:(0,k.expectString)(e.OwningService),PrimaryRegion:(0,k.expectString)(e.PrimaryRegion),RotationEnabled:(0,k.expectBoolean)(e.RotationEnabled),RotationLambdaARN:(0,k.expectString)(e.RotationLambdaARN),RotationRules:e.RotationRules!=null?yX(e.RotationRules,n):void 0,SecretVersionsToStages:e.SecretVersionsToStages!=null?_X(e.SecretVersionsToStages,n):void 0,Tags:e.Tags!=null?fX(e.Tags,n):void 0}),oAe=(e,n)=>(e||[]).filter(s=>s!=null).map(s=>s===null?null:iAe(s,n)),aAe=(e,n)=>({CreatedDate:e.CreatedDate!=null?(0,k.expectNonNull)((0,k.parseEpochTimestamp)((0,k.expectNumber)(e.CreatedDate))):void 0,KmsKeyIds:e.KmsKeyIds!=null?UPe(e.KmsKeyIds,n):void 0,LastAccessedDate:e.LastAccessedDate!=null?(0,k.expectNonNull)((0,k.parseEpochTimestamp)((0,k.expectNumber)(e.LastAccessedDate))):void 0,VersionId:(0,k.expectString)(e.VersionId),VersionStages:e.VersionStages!=null?bw(e.VersionStages,n):void 0}),cAe=(e,n)=>(e||[]).filter(s=>s!=null).map(s=>s===null?null:aAe(s,n)),bw=(e,n)=>(e||[]).filter(s=>s!=null).map(s=>s===null?null:(0,k.expectString)(s)),_X=(e,n)=>Object.entries(e).reduce((t,[s,r])=>(r===null||(t[s]=bw(r,n)),t),{}),lAe=(e,n)=>({ARN:(0,k.expectString)(e.ARN)}),dAe=(e,n)=>({Key:(0,k.expectString)(e.Key),Value:(0,k.expectString)(e.Value)}),fX=(e,n)=>(e||[]).filter(s=>s!=null).map(s=>s===null?null:dAe(s,n)),uAe=(e,n)=>({ARN:(0,k.expectString)(e.ARN),Name:(0,k.expectString)(e.Name),VersionId:(0,k.expectString)(e.VersionId)}),mAe=(e,n)=>({ARN:(0,k.expectString)(e.ARN),Name:(0,k.expectString)(e.Name)}),pAe=(e,n)=>({PolicyValidationPassed:(0,k.expectBoolean)(e.PolicyValidationPassed),ValidationErrors:e.ValidationErrors!=null?yAe(e.ValidationErrors,n):void 0}),gAe=(e,n)=>({CheckName:(0,k.expectString)(e.CheckName),ErrorMessage:(0,k.expectString)(e.ErrorMessage)}),yAe=(e,n)=>(e||[]).filter(s=>s!=null).map(s=>s===null?null:gAe(s,n)),Oe=e=>({httpStatusCode:e.statusCode,requestId:e.headers["x-amzn-requestid"]??e.headers["x-amzn-request-id"]??e.headers["x-amz-request-id"],extendedRequestId:e.headers["x-amz-id-2"],cfId:e.headers["x-amz-cf-id"]}),LI=(e=new Uint8Array,n)=>e instanceof Uint8Array?Promise.resolve(e):n.streamCollector(e)||Promise.resolve(new Uint8Array),_Ae=(e,n)=>LI(e,n).then(t=>n.utf8Encoder(t)),Rt=async(e,n,t,s,r)=>{let{hostname:i,protocol:a="https",port:o,path:c}=await e.endpoint(),l={protocol:a,hostname:i,port:o,method:"POST",path:c.endsWith("/")?c.slice(0,-1)+t:c+t,headers:n};return s!==void 0&&(l.hostname=s),r!==void 0&&(l.body=r),new jCe.HttpRequest(l)},Ft=(e,n)=>_Ae(e,n).then(t=>t.length?JSON.parse(t):{}),Nt=async(e,n)=>{let t=await Ft(e,n);return t.message=t.message??t.Message,t},zt=(e,n)=>{let t=(i,a)=>Object.keys(i).find(o=>o.toLowerCase()===a.toLowerCase()),s=i=>{let a=i;return typeof a=="number"&&(a=a.toString()),a.indexOf(",")>=0&&(a=a.split(",")[0]),a.indexOf(":")>=0&&(a=a.split(":")[0]),a.indexOf("#")>=0&&(a=a.split("#")[1]),a},r=t(e.headers,"x-amzn-errortype");if(r!==void 0)return s(e.headers[r]);if(n.code!==void 0)return s(n.code);if(n.__type!==void 0)return s(n.__type)}});var FI=u(Iw=>{"use strict";Object.defineProperty(Iw,"__esModule",{value:!0});Iw.CancelRotateSecretCommand=void 0;var fAe=x(),SAe=b(),hAe=E(),SX=ot(),hX=vt(),Jl=class extends hAe.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,SAe.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,fAe.getEndpointPlugin)(t,Jl.getEndpointParameterInstructions()));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"SecretsManagerClient",commandName:"CancelRotateSecretCommand",inputFilterSensitiveLog:SX.CancelRotateSecretRequestFilterSensitiveLog,outputFilterSensitiveLog:SX.CancelRotateSecretResponseFilterSensitiveLog},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,hX.serializeAws_json1_1CancelRotateSecretCommand)(n,t)}deserialize(n,t){return(0,hX.deserializeAws_json1_1CancelRotateSecretCommand)(n,t)}};Iw.CancelRotateSecretCommand=Jl});var DI=u(kw=>{"use strict";Object.defineProperty(kw,"__esModule",{value:!0});kw.CreateSecretCommand=void 0;var wAe=x(),EAe=b(),CAe=E(),wX=ot(),EX=vt(),Yl=class extends CAe.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,EAe.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,wAe.getEndpointPlugin)(t,Yl.getEndpointParameterInstructions()));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"SecretsManagerClient",commandName:"CreateSecretCommand",inputFilterSensitiveLog:wX.CreateSecretRequestFilterSensitiveLog,outputFilterSensitiveLog:wX.CreateSecretResponseFilterSensitiveLog},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,EX.serializeAws_json1_1CreateSecretCommand)(n,t)}deserialize(n,t){return(0,EX.deserializeAws_json1_1CreateSecretCommand)(n,t)}};kw.CreateSecretCommand=Yl});var TI=u(Rw=>{"use strict";Object.defineProperty(Rw,"__esModule",{value:!0});Rw.DeleteResourcePolicyCommand=void 0;var vAe=x(),PAe=b(),AAe=E(),CX=ot(),vX=vt(),Zl=class extends AAe.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,PAe.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,vAe.getEndpointPlugin)(t,Zl.getEndpointParameterInstructions()));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"SecretsManagerClient",commandName:"DeleteResourcePolicyCommand",inputFilterSensitiveLog:CX.DeleteResourcePolicyRequestFilterSensitiveLog,outputFilterSensitiveLog:CX.DeleteResourcePolicyResponseFilterSensitiveLog},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,vX.serializeAws_json1_1DeleteResourcePolicyCommand)(n,t)}deserialize(n,t){return(0,vX.deserializeAws_json1_1DeleteResourcePolicyCommand)(n,t)}};Rw.DeleteResourcePolicyCommand=Zl});var jI=u(Nw=>{"use strict";Object.defineProperty(Nw,"__esModule",{value:!0});Nw.DeleteSecretCommand=void 0;var xAe=x(),bAe=b(),IAe=E(),PX=ot(),AX=vt(),ed=class extends IAe.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,bAe.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,xAe.getEndpointPlugin)(t,ed.getEndpointParameterInstructions()));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"SecretsManagerClient",commandName:"DeleteSecretCommand",inputFilterSensitiveLog:PX.DeleteSecretRequestFilterSensitiveLog,outputFilterSensitiveLog:PX.DeleteSecretResponseFilterSensitiveLog},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,AX.serializeAws_json1_1DeleteSecretCommand)(n,t)}deserialize(n,t){return(0,AX.deserializeAws_json1_1DeleteSecretCommand)(n,t)}};Nw.DeleteSecretCommand=ed});var MI=u(zw=>{"use strict";Object.defineProperty(zw,"__esModule",{value:!0});zw.DescribeSecretCommand=void 0;var kAe=x(),RAe=b(),NAe=E(),xX=ot(),bX=vt(),td=class extends NAe.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,RAe.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,kAe.getEndpointPlugin)(t,td.getEndpointParameterInstructions()));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"SecretsManagerClient",commandName:"DescribeSecretCommand",inputFilterSensitiveLog:xX.DescribeSecretRequestFilterSensitiveLog,outputFilterSensitiveLog:xX.DescribeSecretResponseFilterSensitiveLog},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,bX.serializeAws_json1_1DescribeSecretCommand)(n,t)}deserialize(n,t){return(0,bX.deserializeAws_json1_1DescribeSecretCommand)(n,t)}};zw.DescribeSecretCommand=td});var OI=u(qw=>{"use strict";Object.defineProperty(qw,"__esModule",{value:!0});qw.GetRandomPasswordCommand=void 0;var zAe=x(),qAe=b(),LAe=E(),IX=ot(),kX=vt(),nd=class extends LAe.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,qAe.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,zAe.getEndpointPlugin)(t,nd.getEndpointParameterInstructions()));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"SecretsManagerClient",commandName:"GetRandomPasswordCommand",inputFilterSensitiveLog:IX.GetRandomPasswordRequestFilterSensitiveLog,outputFilterSensitiveLog:IX.GetRandomPasswordResponseFilterSensitiveLog},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,kX.serializeAws_json1_1GetRandomPasswordCommand)(n,t)}deserialize(n,t){return(0,kX.deserializeAws_json1_1GetRandomPasswordCommand)(n,t)}};qw.GetRandomPasswordCommand=nd});var BI=u(Lw=>{"use strict";Object.defineProperty(Lw,"__esModule",{value:!0});Lw.GetResourcePolicyCommand=void 0;var FAe=x(),DAe=b(),TAe=E(),RX=ot(),NX=vt(),sd=class extends TAe.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,DAe.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,FAe.getEndpointPlugin)(t,sd.getEndpointParameterInstructions()));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"SecretsManagerClient",commandName:"GetResourcePolicyCommand",inputFilterSensitiveLog:RX.GetResourcePolicyRequestFilterSensitiveLog,outputFilterSensitiveLog:RX.GetResourcePolicyResponseFilterSensitiveLog},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,NX.serializeAws_json1_1GetResourcePolicyCommand)(n,t)}deserialize(n,t){return(0,NX.deserializeAws_json1_1GetResourcePolicyCommand)(n,t)}};Lw.GetResourcePolicyCommand=sd});var GI=u(Fw=>{"use strict";Object.defineProperty(Fw,"__esModule",{value:!0});Fw.GetSecretValueCommand=void 0;var jAe=x(),MAe=b(),OAe=E(),zX=ot(),qX=vt(),rd=class extends OAe.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,MAe.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,jAe.getEndpointPlugin)(t,rd.getEndpointParameterInstructions()));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"SecretsManagerClient",commandName:"GetSecretValueCommand",inputFilterSensitiveLog:zX.GetSecretValueRequestFilterSensitiveLog,outputFilterSensitiveLog:zX.GetSecretValueResponseFilterSensitiveLog},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,qX.serializeAws_json1_1GetSecretValueCommand)(n,t)}deserialize(n,t){return(0,qX.deserializeAws_json1_1GetSecretValueCommand)(n,t)}};Fw.GetSecretValueCommand=rd});var Tw=u(Dw=>{"use strict";Object.defineProperty(Dw,"__esModule",{value:!0});Dw.ListSecretsCommand=void 0;var BAe=x(),GAe=b(),UAe=E(),LX=ot(),FX=vt(),id=class extends UAe.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,GAe.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,BAe.getEndpointPlugin)(t,id.getEndpointParameterInstructions()));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"SecretsManagerClient",commandName:"ListSecretsCommand",inputFilterSensitiveLog:LX.ListSecretsRequestFilterSensitiveLog,outputFilterSensitiveLog:LX.ListSecretsResponseFilterSensitiveLog},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,FX.serializeAws_json1_1ListSecretsCommand)(n,t)}deserialize(n,t){return(0,FX.deserializeAws_json1_1ListSecretsCommand)(n,t)}};Dw.ListSecretsCommand=id});var Mw=u(jw=>{"use strict";Object.defineProperty(jw,"__esModule",{value:!0});jw.ListSecretVersionIdsCommand=void 0;var XAe=x(),$Ae=b(),HAe=E(),DX=ot(),TX=vt(),od=class extends HAe.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,$Ae.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,XAe.getEndpointPlugin)(t,od.getEndpointParameterInstructions()));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"SecretsManagerClient",commandName:"ListSecretVersionIdsCommand",inputFilterSensitiveLog:DX.ListSecretVersionIdsRequestFilterSensitiveLog,outputFilterSensitiveLog:DX.ListSecretVersionIdsResponseFilterSensitiveLog},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,TX.serializeAws_json1_1ListSecretVersionIdsCommand)(n,t)}deserialize(n,t){return(0,TX.deserializeAws_json1_1ListSecretVersionIdsCommand)(n,t)}};jw.ListSecretVersionIdsCommand=od});var UI=u(Ow=>{"use strict";Object.defineProperty(Ow,"__esModule",{value:!0});Ow.PutResourcePolicyCommand=void 0;var VAe=x(),WAe=b(),KAe=E(),jX=ot(),MX=vt(),ad=class extends KAe.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,WAe.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,VAe.getEndpointPlugin)(t,ad.getEndpointParameterInstructions()));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"SecretsManagerClient",commandName:"PutResourcePolicyCommand",inputFilterSensitiveLog:jX.PutResourcePolicyRequestFilterSensitiveLog,outputFilterSensitiveLog:jX.PutResourcePolicyResponseFilterSensitiveLog},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,MX.serializeAws_json1_1PutResourcePolicyCommand)(n,t)}deserialize(n,t){return(0,MX.deserializeAws_json1_1PutResourcePolicyCommand)(n,t)}};Ow.PutResourcePolicyCommand=ad});var XI=u(Bw=>{"use strict";Object.defineProperty(Bw,"__esModule",{value:!0});Bw.PutSecretValueCommand=void 0;var QAe=x(),JAe=b(),YAe=E(),OX=ot(),BX=vt(),cd=class extends YAe.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,JAe.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,QAe.getEndpointPlugin)(t,cd.getEndpointParameterInstructions()));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"SecretsManagerClient",commandName:"PutSecretValueCommand",inputFilterSensitiveLog:OX.PutSecretValueRequestFilterSensitiveLog,outputFilterSensitiveLog:OX.PutSecretValueResponseFilterSensitiveLog},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,BX.serializeAws_json1_1PutSecretValueCommand)(n,t)}deserialize(n,t){return(0,BX.deserializeAws_json1_1PutSecretValueCommand)(n,t)}};Bw.PutSecretValueCommand=cd});var $I=u(Gw=>{"use strict";Object.defineProperty(Gw,"__esModule",{value:!0});Gw.RemoveRegionsFromReplicationCommand=void 0;var ZAe=x(),exe=b(),txe=E(),GX=ot(),UX=vt(),ld=class extends txe.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,exe.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,ZAe.getEndpointPlugin)(t,ld.getEndpointParameterInstructions()));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"SecretsManagerClient",commandName:"RemoveRegionsFromReplicationCommand",inputFilterSensitiveLog:GX.RemoveRegionsFromReplicationRequestFilterSensitiveLog,outputFilterSensitiveLog:GX.RemoveRegionsFromReplicationResponseFilterSensitiveLog},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,UX.serializeAws_json1_1RemoveRegionsFromReplicationCommand)(n,t)}deserialize(n,t){return(0,UX.deserializeAws_json1_1RemoveRegionsFromReplicationCommand)(n,t)}};Gw.RemoveRegionsFromReplicationCommand=ld});var HI=u(Uw=>{"use strict";Object.defineProperty(Uw,"__esModule",{value:!0});Uw.ReplicateSecretToRegionsCommand=void 0;var nxe=x(),sxe=b(),rxe=E(),XX=ot(),$X=vt(),dd=class extends rxe.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,sxe.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,nxe.getEndpointPlugin)(t,dd.getEndpointParameterInstructions()));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"SecretsManagerClient",commandName:"ReplicateSecretToRegionsCommand",inputFilterSensitiveLog:XX.ReplicateSecretToRegionsRequestFilterSensitiveLog,outputFilterSensitiveLog:XX.ReplicateSecretToRegionsResponseFilterSensitiveLog},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,$X.serializeAws_json1_1ReplicateSecretToRegionsCommand)(n,t)}deserialize(n,t){return(0,$X.deserializeAws_json1_1ReplicateSecretToRegionsCommand)(n,t)}};Uw.ReplicateSecretToRegionsCommand=dd});var VI=u(Xw=>{"use strict";Object.defineProperty(Xw,"__esModule",{value:!0});Xw.RestoreSecretCommand=void 0;var ixe=x(),oxe=b(),axe=E(),HX=ot(),VX=vt(),ud=class extends axe.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,oxe.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,ixe.getEndpointPlugin)(t,ud.getEndpointParameterInstructions()));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"SecretsManagerClient",commandName:"RestoreSecretCommand",inputFilterSensitiveLog:HX.RestoreSecretRequestFilterSensitiveLog,outputFilterSensitiveLog:HX.RestoreSecretResponseFilterSensitiveLog},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,VX.serializeAws_json1_1RestoreSecretCommand)(n,t)}deserialize(n,t){return(0,VX.deserializeAws_json1_1RestoreSecretCommand)(n,t)}};Xw.RestoreSecretCommand=ud});var WI=u($w=>{"use strict";Object.defineProperty($w,"__esModule",{value:!0});$w.RotateSecretCommand=void 0;var cxe=x(),lxe=b(),dxe=E(),WX=ot(),KX=vt(),md=class extends dxe.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,lxe.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,cxe.getEndpointPlugin)(t,md.getEndpointParameterInstructions()));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"SecretsManagerClient",commandName:"RotateSecretCommand",inputFilterSensitiveLog:WX.RotateSecretRequestFilterSensitiveLog,outputFilterSensitiveLog:WX.RotateSecretResponseFilterSensitiveLog},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,KX.serializeAws_json1_1RotateSecretCommand)(n,t)}deserialize(n,t){return(0,KX.deserializeAws_json1_1RotateSecretCommand)(n,t)}};$w.RotateSecretCommand=md});var KI=u(Hw=>{"use strict";Object.defineProperty(Hw,"__esModule",{value:!0});Hw.StopReplicationToReplicaCommand=void 0;var uxe=x(),mxe=b(),pxe=E(),QX=ot(),JX=vt(),pd=class extends pxe.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,mxe.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,uxe.getEndpointPlugin)(t,pd.getEndpointParameterInstructions()));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"SecretsManagerClient",commandName:"StopReplicationToReplicaCommand",inputFilterSensitiveLog:QX.StopReplicationToReplicaRequestFilterSensitiveLog,outputFilterSensitiveLog:QX.StopReplicationToReplicaResponseFilterSensitiveLog},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,JX.serializeAws_json1_1StopReplicationToReplicaCommand)(n,t)}deserialize(n,t){return(0,JX.deserializeAws_json1_1StopReplicationToReplicaCommand)(n,t)}};Hw.StopReplicationToReplicaCommand=pd});var QI=u(Vw=>{"use strict";Object.defineProperty(Vw,"__esModule",{value:!0});Vw.TagResourceCommand=void 0;var gxe=x(),yxe=b(),_xe=E(),fxe=ot(),YX=vt(),gd=class extends _xe.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,yxe.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,gxe.getEndpointPlugin)(t,gd.getEndpointParameterInstructions()));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"SecretsManagerClient",commandName:"TagResourceCommand",inputFilterSensitiveLog:fxe.TagResourceRequestFilterSensitiveLog,outputFilterSensitiveLog:d=>d},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,YX.serializeAws_json1_1TagResourceCommand)(n,t)}deserialize(n,t){return(0,YX.deserializeAws_json1_1TagResourceCommand)(n,t)}};Vw.TagResourceCommand=gd});var JI=u(Ww=>{"use strict";Object.defineProperty(Ww,"__esModule",{value:!0});Ww.UntagResourceCommand=void 0;var Sxe=x(),hxe=b(),wxe=E(),Exe=ot(),ZX=vt(),yd=class extends wxe.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,hxe.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,Sxe.getEndpointPlugin)(t,yd.getEndpointParameterInstructions()));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"SecretsManagerClient",commandName:"UntagResourceCommand",inputFilterSensitiveLog:Exe.UntagResourceRequestFilterSensitiveLog,outputFilterSensitiveLog:d=>d},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,ZX.serializeAws_json1_1UntagResourceCommand)(n,t)}deserialize(n,t){return(0,ZX.deserializeAws_json1_1UntagResourceCommand)(n,t)}};Ww.UntagResourceCommand=yd});var YI=u(Kw=>{"use strict";Object.defineProperty(Kw,"__esModule",{value:!0});Kw.UpdateSecretCommand=void 0;var Cxe=x(),vxe=b(),Pxe=E(),e2=ot(),t2=vt(),_d=class extends Pxe.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,vxe.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,Cxe.getEndpointPlugin)(t,_d.getEndpointParameterInstructions()));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"SecretsManagerClient",commandName:"UpdateSecretCommand",inputFilterSensitiveLog:e2.UpdateSecretRequestFilterSensitiveLog,outputFilterSensitiveLog:e2.UpdateSecretResponseFilterSensitiveLog},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,t2.serializeAws_json1_1UpdateSecretCommand)(n,t)}deserialize(n,t){return(0,t2.deserializeAws_json1_1UpdateSecretCommand)(n,t)}};Kw.UpdateSecretCommand=_d});var ZI=u(Qw=>{"use strict";Object.defineProperty(Qw,"__esModule",{value:!0});Qw.UpdateSecretVersionStageCommand=void 0;var Axe=x(),xxe=b(),bxe=E(),n2=ot(),s2=vt(),fd=class extends bxe.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,xxe.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,Axe.getEndpointPlugin)(t,fd.getEndpointParameterInstructions()));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"SecretsManagerClient",commandName:"UpdateSecretVersionStageCommand",inputFilterSensitiveLog:n2.UpdateSecretVersionStageRequestFilterSensitiveLog,outputFilterSensitiveLog:n2.UpdateSecretVersionStageResponseFilterSensitiveLog},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,s2.serializeAws_json1_1UpdateSecretVersionStageCommand)(n,t)}deserialize(n,t){return(0,s2.deserializeAws_json1_1UpdateSecretVersionStageCommand)(n,t)}};Qw.UpdateSecretVersionStageCommand=fd});var ek=u(Jw=>{"use strict";Object.defineProperty(Jw,"__esModule",{value:!0});Jw.ValidateResourcePolicyCommand=void 0;var Ixe=x(),kxe=b(),Rxe=E(),r2=ot(),i2=vt(),Sd=class extends Rxe.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,kxe.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,Ixe.getEndpointPlugin)(t,Sd.getEndpointParameterInstructions()));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"SecretsManagerClient",commandName:"ValidateResourcePolicyCommand",inputFilterSensitiveLog:r2.ValidateResourcePolicyRequestFilterSensitiveLog,outputFilterSensitiveLog:r2.ValidateResourcePolicyResponseFilterSensitiveLog},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,i2.serializeAws_json1_1ValidateResourcePolicyCommand)(n,t)}deserialize(n,t){return(0,i2.deserializeAws_json1_1ValidateResourcePolicyCommand)(n,t)}};Jw.ValidateResourcePolicyCommand=Sd});var o2=u(Yw=>{"use strict";Object.defineProperty(Yw,"__esModule",{value:!0});Yw.resolveClientEndpointParameters=void 0;var Nxe=e=>({...e,useDualstackEndpoint:e.useDualstackEndpoint??!1,useFipsEndpoint:e.useFipsEndpoint??!1,defaultSigningName:"secretsmanager"});Yw.resolveClientEndpointParameters=Nxe});var a2=u((rht,zxe)=>{zxe.exports={name:"@aws-sdk/client-secrets-manager",description:"AWS SDK for JavaScript Secrets Manager Client for Node.js, Browser and React Native",version:"3.282.0",scripts:{build:"concurrently 'yarn:build:cjs' 'yarn:build:es' 'yarn:build:types'","build:cjs":"tsc -p tsconfig.cjs.json","build:docs":"typedoc","build:es":"tsc -p tsconfig.es.json","build:include:deps":"lerna run --scope $npm_package_name --include-dependencies build","build:types":"tsc -p tsconfig.types.json","build:types:downlevel":"downlevel-dts dist-types dist-types/ts3.4",clean:"rimraf ./dist-* && rimraf *.tsbuildinfo","generate:client":"node ../../scripts/generate-clients/single-service --solo secrets-manager"},main:"./dist-cjs/index.js",types:"./dist-types/index.d.ts",module:"./dist-es/index.js",sideEffects:!1,dependencies:{"@aws-crypto/sha256-browser":"3.0.0","@aws-crypto/sha256-js":"3.0.0","@aws-sdk/client-sts":"3.282.0","@aws-sdk/config-resolver":"3.282.0","@aws-sdk/credential-provider-node":"3.282.0","@aws-sdk/fetch-http-handler":"3.282.0","@aws-sdk/hash-node":"3.272.0","@aws-sdk/invalid-dependency":"3.272.0","@aws-sdk/middleware-content-length":"3.282.0","@aws-sdk/middleware-endpoint":"3.282.0","@aws-sdk/middleware-host-header":"3.282.0","@aws-sdk/middleware-logger":"3.272.0","@aws-sdk/middleware-recursion-detection":"3.282.0","@aws-sdk/middleware-retry":"3.282.0","@aws-sdk/middleware-serde":"3.272.0","@aws-sdk/middleware-signing":"3.282.0","@aws-sdk/middleware-stack":"3.272.0","@aws-sdk/middleware-user-agent":"3.282.0","@aws-sdk/node-config-provider":"3.272.0","@aws-sdk/node-http-handler":"3.282.0","@aws-sdk/protocol-http":"3.282.0","@aws-sdk/smithy-client":"3.279.0","@aws-sdk/types":"3.272.0","@aws-sdk/url-parser":"3.272.0","@aws-sdk/util-base64":"3.208.0","@aws-sdk/util-body-length-browser":"3.188.0","@aws-sdk/util-body-length-node":"3.208.0","@aws-sdk/util-defaults-mode-browser":"3.279.0","@aws-sdk/util-defaults-mode-node":"3.282.0","@aws-sdk/util-endpoints":"3.272.0","@aws-sdk/util-retry":"3.272.0","@aws-sdk/util-user-agent-browser":"3.282.0","@aws-sdk/util-user-agent-node":"3.282.0","@aws-sdk/util-utf8":"3.254.0",tslib:"^2.3.1",uuid:"^8.3.2"},devDependencies:{"@aws-sdk/service-client-documentation-generator":"3.208.0","@tsconfig/node14":"1.0.3","@types/node":"^14.14.31","@types/uuid":"^8.3.0",concurrently:"7.0.0","downlevel-dts":"0.10.1",rimraf:"3.0.2",typedoc:"0.19.2",typescript:"~4.6.2"},overrides:{typedoc:{typescript:"~4.6.2"}},engines:{node:">=14.0.0"},typesVersions:{"<4.0":{"dist-types/*":["dist-types/ts3.4/*"]}},files:["dist-*"],author:{name:"AWS SDK for JavaScript Team",url:"https://aws.amazon.com/javascript/"},license:"Apache-2.0",browser:{"./dist-es/runtimeConfig":"./dist-es/runtimeConfig.browser"},"react-native":{"./dist-es/runtimeConfig":"./dist-es/runtimeConfig.native"},homepage:"https://github.com/aws/aws-sdk-js-v3/tree/main/clients/client-secrets-manager",repository:{type:"git",url:"https://github.com/aws/aws-sdk-js-v3.git",directory:"clients/client-secrets-manager"}}});var f2=u(Zw=>{"use strict";Object.defineProperty(Zw,"__esModule",{value:!0});Zw.ruleSet=void 0;var Qr="fn",Jr="argv",Co="ref",qxe=!0,Lxe=!1,c2="String",tk="PartitionResult",ks="tree",hd="error",wd="endpoint",l2={required:!0,default:!1,type:"Boolean"},d2={[Co]:"Endpoint"},y2={[Qr]:"booleanEquals",[Jr]:[{[Co]:"UseFIPS"},!0]},_2={[Qr]:"booleanEquals",[Jr]:[{[Co]:"UseDualStack"},!0]},Rs={},u2={[Qr]:"booleanEquals",[Jr]:[!0,{[Qr]:"getAttr",[Jr]:[{[Co]:tk},"supportsFIPS"]}]},m2={[Qr]:"booleanEquals",[Jr]:[!0,{[Qr]:"getAttr",[Jr]:[{[Co]:tk},"supportsDualStack"]}]},p2=[y2],g2=[_2],Fxe={version:"1.0",parameters:{Region:{required:qxe,type:c2},UseDualStack:l2,UseFIPS:l2,Endpoint:{required:Lxe,type:c2}},rules:[{conditions:[{[Qr]:"aws.partition",[Jr]:[{[Co]:"Region"}],assign:tk}],type:ks,rules:[{conditions:[{[Qr]:"isSet",[Jr]:[d2]}],type:ks,rules:[{conditions:p2,error:"Invalid Configuration: FIPS and custom endpoint are not supported",type:hd},{type:ks,rules:[{conditions:g2,error:"Invalid Configuration: Dualstack and custom endpoint are not supported",type:hd},{endpoint:{url:d2,properties:Rs,headers:Rs},type:wd}]}]},{conditions:[y2,_2],type:ks,rules:[{conditions:[u2,m2],type:ks,rules:[{endpoint:{url:"https://secretsmanager-fips.{Region}.{PartitionResult#dualStackDnsSuffix}",properties:Rs,headers:Rs},type:wd}]},{error:"FIPS and DualStack are enabled, but this partition does not support one or both",type:hd}]},{conditions:p2,type:ks,rules:[{conditions:[u2],type:ks,rules:[{type:ks,rules:[{endpoint:{url:"https://secretsmanager-fips.{Region}.{PartitionResult#dnsSuffix}",properties:Rs,headers:Rs},type:wd}]}]},{error:"FIPS is enabled but this partition does not support FIPS",type:hd}]},{conditions:g2,type:ks,rules:[{conditions:[m2],type:ks,rules:[{endpoint:{url:"https://secretsmanager.{Region}.{PartitionResult#dualStackDnsSuffix}",properties:Rs,headers:Rs},type:wd}]},{error:"DualStack is enabled but this partition does not support DualStack",type:hd}]},{endpoint:{url:"https://secretsmanager.{Region}.{PartitionResult#dnsSuffix}",properties:Rs,headers:Rs},type:wd}]}]};Zw.ruleSet=Fxe});var S2=u(eE=>{"use strict";Object.defineProperty(eE,"__esModule",{value:!0});eE.defaultEndpointResolver=void 0;var Dxe=Ur(),Txe=f2(),jxe=(e,n={})=>(0,Dxe.resolveEndpoint)(Txe.ruleSet,{endpointParams:e,logger:n.logger});eE.defaultEndpointResolver=jxe});var E2=u(tE=>{"use strict";Object.defineProperty(tE,"__esModule",{value:!0});tE.getRuntimeConfig=void 0;var Mxe=E(),Oxe=ts(),h2=Br(),w2=Sn(),Bxe=S2(),Gxe=e=>({apiVersion:"2017-10-17",base64Decoder:e?.base64Decoder??h2.fromBase64,base64Encoder:e?.base64Encoder??h2.toBase64,disableHostPrefix:e?.disableHostPrefix??!1,endpointProvider:e?.endpointProvider??Bxe.defaultEndpointResolver,logger:e?.logger??new Mxe.NoOpLogger,serviceId:e?.serviceId??"Secrets Manager",urlParser:e?.urlParser??Oxe.parseUrl,utf8Decoder:e?.utf8Decoder??w2.fromUtf8,utf8Encoder:e?.utf8Encoder??w2.toUtf8});tE.getRuntimeConfig=Gxe});var P2=u(sE=>{"use strict";Object.defineProperty(sE,"__esModule",{value:!0});sE.getRuntimeConfig=void 0;var Uxe=X(),Xxe=Uxe.__importDefault(a2()),$xe=xs(),nE=tn(),Hxe=Vr(),Vxe=jr(),C2=un(),Ed=Qn(),v2=Ks(),Wxe=Mr(),Kxe=dn(),Qxe=Or(),Jxe=E2(),Yxe=E(),Zxe=$r(),e0e=E(),t0e=e=>{(0,e0e.emitWarningIfUnsupportedVersion)(process.version);let n=(0,Zxe.resolveDefaultsModeConfig)(e),t=()=>n().then(Yxe.loadConfigsForDefaultMode),s=(0,Jxe.getRuntimeConfig)(e);return{...s,...e,runtime:"node",defaultsMode:n,bodyLengthChecker:e?.bodyLengthChecker??Wxe.calculateBodyLength,credentialDefaultProvider:e?.credentialDefaultProvider??(0,$xe.decorateDefaultCredentialProvider)(Hxe.defaultProvider),defaultUserAgentProvider:e?.defaultUserAgentProvider??(0,Qxe.defaultUserAgent)({serviceId:s.serviceId,clientVersion:Xxe.default.version}),maxAttempts:e?.maxAttempts??(0,Ed.loadConfig)(C2.NODE_MAX_ATTEMPT_CONFIG_OPTIONS),region:e?.region??(0,Ed.loadConfig)(nE.NODE_REGION_CONFIG_OPTIONS,nE.NODE_REGION_CONFIG_FILE_OPTIONS),requestHandler:e?.requestHandler??new v2.NodeHttpHandler(t),retryMode:e?.retryMode??(0,Ed.loadConfig)({...C2.NODE_RETRY_MODE_CONFIG_OPTIONS,default:async()=>(await t()).retryMode||Kxe.DEFAULT_RETRY_MODE}),sha256:e?.sha256??Vxe.Hash.bind(null,"sha256"),streamCollector:e?.streamCollector??v2.streamCollector,useDualstackEndpoint:e?.useDualstackEndpoint??(0,Ed.loadConfig)(nE.NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS),useFipsEndpoint:e?.useFipsEndpoint??(0,Ed.loadConfig)(nE.NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS)}};sE.getRuntimeConfig=t0e});var Cd=u(rE=>{"use strict";Object.defineProperty(rE,"__esModule",{value:!0});rE.SecretsManagerClient=void 0;var n0e=tn(),s0e=fr(),r0e=x(),A2=Sr(),i0e=hr(),o0e=wr(),x2=un(),b2=He(),I2=xr(),a0e=E(),c0e=o2(),l0e=P2(),nk=class extends a0e.Client{constructor(n){let t=(0,l0e.getRuntimeConfig)(n),s=(0,c0e.resolveClientEndpointParameters)(t),r=(0,n0e.resolveRegionConfig)(s),i=(0,r0e.resolveEndpointConfig)(r),a=(0,x2.resolveRetryConfig)(i),o=(0,A2.resolveHostHeaderConfig)(a),c=(0,b2.resolveAwsAuthConfig)(o),l=(0,I2.resolveUserAgentConfig)(c);super(l),this.config=l,this.middlewareStack.use((0,x2.getRetryPlugin)(this.config)),this.middlewareStack.use((0,s0e.getContentLengthPlugin)(this.config)),this.middlewareStack.use((0,A2.getHostHeaderPlugin)(this.config)),this.middlewareStack.use((0,i0e.getLoggerPlugin)(this.config)),this.middlewareStack.use((0,o0e.getRecursionDetectionPlugin)(this.config)),this.middlewareStack.use((0,b2.getAwsAuthPlugin)(this.config)),this.middlewareStack.use((0,I2.getUserAgentPlugin)(this.config))}destroy(){super.destroy()}};rE.SecretsManagerClient=nk});var oE=u(iE=>{"use strict";Object.defineProperty(iE,"__esModule",{value:!0});iE.SecretsManager=void 0;var d0e=FI(),u0e=DI(),m0e=TI(),p0e=jI(),g0e=MI(),y0e=OI(),_0e=BI(),f0e=GI(),S0e=Tw(),h0e=Mw(),w0e=UI(),E0e=XI(),C0e=$I(),v0e=HI(),P0e=VI(),A0e=WI(),x0e=KI(),b0e=QI(),I0e=JI(),k0e=YI(),R0e=ZI(),N0e=ek(),z0e=Cd(),sk=class extends z0e.SecretsManagerClient{cancelRotateSecret(n,t,s){let r=new d0e.CancelRotateSecretCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}createSecret(n,t,s){let r=new u0e.CreateSecretCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}deleteResourcePolicy(n,t,s){let r=new m0e.DeleteResourcePolicyCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}deleteSecret(n,t,s){let r=new p0e.DeleteSecretCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}describeSecret(n,t,s){let r=new g0e.DescribeSecretCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}getRandomPassword(n,t,s){let r=new y0e.GetRandomPasswordCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}getResourcePolicy(n,t,s){let r=new _0e.GetResourcePolicyCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}getSecretValue(n,t,s){let r=new f0e.GetSecretValueCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}listSecrets(n,t,s){let r=new S0e.ListSecretsCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}listSecretVersionIds(n,t,s){let r=new h0e.ListSecretVersionIdsCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}putResourcePolicy(n,t,s){let r=new w0e.PutResourcePolicyCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}putSecretValue(n,t,s){let r=new E0e.PutSecretValueCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}removeRegionsFromReplication(n,t,s){let r=new C0e.RemoveRegionsFromReplicationCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}replicateSecretToRegions(n,t,s){let r=new v0e.ReplicateSecretToRegionsCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}restoreSecret(n,t,s){let r=new P0e.RestoreSecretCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}rotateSecret(n,t,s){let r=new A0e.RotateSecretCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}stopReplicationToReplica(n,t,s){let r=new x0e.StopReplicationToReplicaCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}tagResource(n,t,s){let r=new b0e.TagResourceCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}untagResource(n,t,s){let r=new I0e.UntagResourceCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}updateSecret(n,t,s){let r=new k0e.UpdateSecretCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}updateSecretVersionStage(n,t,s){let r=new R0e.UpdateSecretVersionStageCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}validateResourcePolicy(n,t,s){let r=new N0e.ValidateResourcePolicyCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}};iE.SecretsManager=sk});var k2=u(mt=>{"use strict";Object.defineProperty(mt,"__esModule",{value:!0});var qt=X();qt.__exportStar(FI(),mt);qt.__exportStar(DI(),mt);qt.__exportStar(TI(),mt);qt.__exportStar(jI(),mt);qt.__exportStar(MI(),mt);qt.__exportStar(OI(),mt);qt.__exportStar(BI(),mt);qt.__exportStar(GI(),mt);qt.__exportStar(Mw(),mt);qt.__exportStar(Tw(),mt);qt.__exportStar(UI(),mt);qt.__exportStar(XI(),mt);qt.__exportStar($I(),mt);qt.__exportStar(HI(),mt);qt.__exportStar(VI(),mt);qt.__exportStar(WI(),mt);qt.__exportStar(KI(),mt);qt.__exportStar(QI(),mt);qt.__exportStar(JI(),mt);qt.__exportStar(YI(),mt);qt.__exportStar(ZI(),mt);qt.__exportStar(ek(),mt)});var R2=u(rk=>{"use strict";Object.defineProperty(rk,"__esModule",{value:!0});var q0e=X();q0e.__exportStar(ot(),rk)});var z2=u(N2=>{"use strict";Object.defineProperty(N2,"__esModule",{value:!0})});var q2=u(aE=>{"use strict";Object.defineProperty(aE,"__esModule",{value:!0});aE.paginateListSecretVersionIds=void 0;var L0e=Mw(),F0e=oE(),D0e=Cd(),T0e=async(e,n,...t)=>await e.send(new L0e.ListSecretVersionIdsCommand(n),...t),j0e=async(e,n,...t)=>await e.listSecretVersionIds(n,...t);async function*M0e(e,n,...t){let s=e.startingToken||void 0,r=!0,i;for(;r;){if(n.NextToken=s,n.MaxResults=e.pageSize,e.client instanceof F0e.SecretsManager)i=await j0e(e.client,n,...t);else if(e.client instanceof D0e.SecretsManagerClient)i=await T0e(e.client,n,...t);else throw new Error("Invalid client, expected SecretsManager | SecretsManagerClient");yield i;let a=s;s=i.NextToken,r=!!(s&&(!e.stopOnSameToken||s!==a))}return void 0}aE.paginateListSecretVersionIds=M0e});var L2=u(cE=>{"use strict";Object.defineProperty(cE,"__esModule",{value:!0});cE.paginateListSecrets=void 0;var O0e=Tw(),B0e=oE(),G0e=Cd(),U0e=async(e,n,...t)=>await e.send(new O0e.ListSecretsCommand(n),...t),X0e=async(e,n,...t)=>await e.listSecrets(n,...t);async function*$0e(e,n,...t){let s=e.startingToken||void 0,r=!0,i;for(;r;){if(n.NextToken=s,n.MaxResults=e.pageSize,e.client instanceof B0e.SecretsManager)i=await X0e(e.client,n,...t);else if(e.client instanceof G0e.SecretsManagerClient)i=await U0e(e.client,n,...t);else throw new Error("Invalid client, expected SecretsManager | SecretsManagerClient");yield i;let a=s;s=i.NextToken,r=!!(s&&(!e.stopOnSameToken||s!==a))}return void 0}cE.paginateListSecrets=$0e});var F2=u(vd=>{"use strict";Object.defineProperty(vd,"__esModule",{value:!0});var ik=X();ik.__exportStar(z2(),vd);ik.__exportStar(q2(),vd);ik.__exportStar(L2(),vd)});var D2=u(ar=>{"use strict";Object.defineProperty(ar,"__esModule",{value:!0});ar.SecretsManagerServiceException=void 0;var Pd=X();Pd.__exportStar(oE(),ar);Pd.__exportStar(Cd(),ar);Pd.__exportStar(k2(),ar);Pd.__exportStar(R2(),ar);Pd.__exportStar(F2(),ar);var H0e=Ew();Object.defineProperty(ar,"SecretsManagerServiceException",{enumerable:!0,get:function(){return H0e.SecretsManagerServiceException}})});var xd=u(lE=>{"use strict";Object.defineProperty(lE,"__esModule",{value:!0});lE.S3ServiceException=void 0;var V0e=E(),Ad=class extends V0e.ServiceException{constructor(n){super(n),Object.setPrototypeOf(this,Ad.prototype)}};lE.S3ServiceException=Ad});var ee=u(p=>{"use strict";Object.defineProperty(p,"__esModule",{value:!0});p.ChecksumMode=p.ReplicationStatus=p.Protocol=p.BucketVersioningStatus=p.MFADeleteStatus=p.Payer=p.ReplicationRuleStatus=p.SseKmsEncryptedObjectsStatus=p.ReplicaModificationsStatus=p.ReplicationRuleFilter=p.ExistingObjectReplicationStatus=p.ReplicationTimeStatus=p.MetricsStatus=p.DeleteMarkerReplicationStatus=p.FilterRuleName=p.MetricsFilter=p.BucketLogsPermission=p.ExpirationStatus=p.TransitionStorageClass=p.LifecycleRuleFilter=p.InventoryFrequency=p.InventoryOptionalField=p.InventoryIncludedObjectVersions=p.InventoryFormat=p.IntelligentTieringAccessTier=p.IntelligentTieringStatus=p.StorageClassAnalysisSchemaVersion=p.AnalyticsS3ExportFileFormat=p.AnalyticsFilter=p.ObjectOwnership=p.BucketLocationConstraint=p.BucketCannedACL=p.BucketAlreadyOwnedByYou=p.BucketAlreadyExists=p.ObjectNotInActiveTierError=p.TaggingDirective=p.StorageClass=p.ObjectLockMode=p.ObjectLockLegalHoldStatus=p.MetadataDirective=p.ChecksumAlgorithm=p.ObjectCannedACL=p.ServerSideEncryption=p.OwnerOverride=p.Permission=p.Type=p.BucketAccelerateStatus=p.NoSuchUpload=p.RequestPayer=p.RequestCharged=void 0;p._ErrorFilterSensitiveLog=p.DeletedObjectFilterSensitiveLog=p.DeleteObjectRequestFilterSensitiveLog=p.DeleteObjectOutputFilterSensitiveLog=p.DeleteBucketWebsiteRequestFilterSensitiveLog=p.DeleteBucketTaggingRequestFilterSensitiveLog=p.DeleteBucketReplicationRequestFilterSensitiveLog=p.DeleteBucketPolicyRequestFilterSensitiveLog=p.DeleteBucketOwnershipControlsRequestFilterSensitiveLog=p.DeleteBucketMetricsConfigurationRequestFilterSensitiveLog=p.DeleteBucketLifecycleRequestFilterSensitiveLog=p.DeleteBucketInventoryConfigurationRequestFilterSensitiveLog=p.DeleteBucketIntelligentTieringConfigurationRequestFilterSensitiveLog=p.DeleteBucketEncryptionRequestFilterSensitiveLog=p.DeleteBucketCorsRequestFilterSensitiveLog=p.DeleteBucketAnalyticsConfigurationRequestFilterSensitiveLog=p.DeleteBucketRequestFilterSensitiveLog=p.CreateMultipartUploadRequestFilterSensitiveLog=p.CreateMultipartUploadOutputFilterSensitiveLog=p.CreateBucketRequestFilterSensitiveLog=p.CreateBucketConfigurationFilterSensitiveLog=p.CreateBucketOutputFilterSensitiveLog=p.CopyObjectRequestFilterSensitiveLog=p.CopyObjectOutputFilterSensitiveLog=p.CopyObjectResultFilterSensitiveLog=p.CompleteMultipartUploadRequestFilterSensitiveLog=p.CompletedMultipartUploadFilterSensitiveLog=p.CompletedPartFilterSensitiveLog=p.CompleteMultipartUploadOutputFilterSensitiveLog=p.AccessControlTranslationFilterSensitiveLog=p.AccessControlPolicyFilterSensitiveLog=p.OwnerFilterSensitiveLog=p.GrantFilterSensitiveLog=p.GranteeFilterSensitiveLog=p.AccelerateConfigurationFilterSensitiveLog=p.AbortMultipartUploadRequestFilterSensitiveLog=p.AbortMultipartUploadOutputFilterSensitiveLog=p.AbortIncompleteMultipartUploadFilterSensitiveLog=p.MFADelete=p.ObjectVersionStorageClass=p.NoSuchBucket=p.ObjectStorageClass=p.EncodingType=p.ArchiveStatus=p.NotFound=p.ObjectLockRetentionMode=p.ObjectLockEnabled=p.ObjectAttributes=p.NoSuchKey=p.InvalidObjectState=void 0;p.NoncurrentVersionTransitionFilterSensitiveLog=p.NoncurrentVersionExpirationFilterSensitiveLog=p.LifecycleRuleFilterFilterSensitiveLog=p.LifecycleRuleAndOperatorFilterSensitiveLog=p.LifecycleExpirationFilterSensitiveLog=p.GetBucketInventoryConfigurationRequestFilterSensitiveLog=p.GetBucketInventoryConfigurationOutputFilterSensitiveLog=p.InventoryConfigurationFilterSensitiveLog=p.InventoryScheduleFilterSensitiveLog=p.InventoryFilterFilterSensitiveLog=p.InventoryDestinationFilterSensitiveLog=p.InventoryS3BucketDestinationFilterSensitiveLog=p.InventoryEncryptionFilterSensitiveLog=p.SSES3FilterSensitiveLog=p.SSEKMSFilterSensitiveLog=p.GetBucketIntelligentTieringConfigurationRequestFilterSensitiveLog=p.GetBucketIntelligentTieringConfigurationOutputFilterSensitiveLog=p.IntelligentTieringConfigurationFilterSensitiveLog=p.TieringFilterSensitiveLog=p.IntelligentTieringFilterFilterSensitiveLog=p.IntelligentTieringAndOperatorFilterSensitiveLog=p.GetBucketEncryptionRequestFilterSensitiveLog=p.GetBucketEncryptionOutputFilterSensitiveLog=p.ServerSideEncryptionConfigurationFilterSensitiveLog=p.ServerSideEncryptionRuleFilterSensitiveLog=p.ServerSideEncryptionByDefaultFilterSensitiveLog=p.GetBucketCorsRequestFilterSensitiveLog=p.GetBucketCorsOutputFilterSensitiveLog=p.CORSRuleFilterSensitiveLog=p.GetBucketAnalyticsConfigurationRequestFilterSensitiveLog=p.GetBucketAnalyticsConfigurationOutputFilterSensitiveLog=p.AnalyticsConfigurationFilterSensitiveLog=p.StorageClassAnalysisFilterSensitiveLog=p.StorageClassAnalysisDataExportFilterSensitiveLog=p.AnalyticsExportDestinationFilterSensitiveLog=p.AnalyticsS3BucketDestinationFilterSensitiveLog=p.AnalyticsFilterFilterSensitiveLog=p.AnalyticsAndOperatorFilterSensitiveLog=p.TagFilterSensitiveLog=p.GetBucketAclRequestFilterSensitiveLog=p.GetBucketAclOutputFilterSensitiveLog=p.GetBucketAccelerateConfigurationRequestFilterSensitiveLog=p.GetBucketAccelerateConfigurationOutputFilterSensitiveLog=p.DeletePublicAccessBlockRequestFilterSensitiveLog=p.DeleteObjectTaggingRequestFilterSensitiveLog=p.DeleteObjectTaggingOutputFilterSensitiveLog=p.DeleteObjectsRequestFilterSensitiveLog=p.DeleteFilterSensitiveLog=p.ObjectIdentifierFilterSensitiveLog=p.DeleteObjectsOutputFilterSensitiveLog=void 0;p.GetBucketRequestPaymentOutputFilterSensitiveLog=p.GetBucketReplicationRequestFilterSensitiveLog=p.GetBucketReplicationOutputFilterSensitiveLog=p.ReplicationConfigurationFilterSensitiveLog=p.ReplicationRuleFilterSensitiveLog=p.SourceSelectionCriteriaFilterSensitiveLog=p.SseKmsEncryptedObjectsFilterSensitiveLog=p.ReplicaModificationsFilterSensitiveLog=p.ReplicationRuleFilterFilterSensitiveLog=p.ReplicationRuleAndOperatorFilterSensitiveLog=p.ExistingObjectReplicationFilterSensitiveLog=p.DestinationFilterSensitiveLog=p.ReplicationTimeFilterSensitiveLog=p.MetricsFilterSensitiveLog=p.ReplicationTimeValueFilterSensitiveLog=p.EncryptionConfigurationFilterSensitiveLog=p.DeleteMarkerReplicationFilterSensitiveLog=p.GetBucketPolicyStatusRequestFilterSensitiveLog=p.GetBucketPolicyStatusOutputFilterSensitiveLog=p.PolicyStatusFilterSensitiveLog=p.GetBucketPolicyRequestFilterSensitiveLog=p.GetBucketPolicyOutputFilterSensitiveLog=p.GetBucketOwnershipControlsRequestFilterSensitiveLog=p.GetBucketOwnershipControlsOutputFilterSensitiveLog=p.OwnershipControlsFilterSensitiveLog=p.OwnershipControlsRuleFilterSensitiveLog=p.NotificationConfigurationFilterSensitiveLog=p.TopicConfigurationFilterSensitiveLog=p.QueueConfigurationFilterSensitiveLog=p.LambdaFunctionConfigurationFilterSensitiveLog=p.NotificationConfigurationFilterFilterSensitiveLog=p.S3KeyFilterFilterSensitiveLog=p.FilterRuleFilterSensitiveLog=p.EventBridgeConfigurationFilterSensitiveLog=p.GetBucketNotificationConfigurationRequestFilterSensitiveLog=p.GetBucketMetricsConfigurationRequestFilterSensitiveLog=p.GetBucketMetricsConfigurationOutputFilterSensitiveLog=p.MetricsConfigurationFilterSensitiveLog=p.MetricsFilterFilterSensitiveLog=p.MetricsAndOperatorFilterSensitiveLog=p.GetBucketLoggingRequestFilterSensitiveLog=p.GetBucketLoggingOutputFilterSensitiveLog=p.LoggingEnabledFilterSensitiveLog=p.TargetGrantFilterSensitiveLog=p.GetBucketLocationRequestFilterSensitiveLog=p.GetBucketLocationOutputFilterSensitiveLog=p.GetBucketLifecycleConfigurationRequestFilterSensitiveLog=p.GetBucketLifecycleConfigurationOutputFilterSensitiveLog=p.LifecycleRuleFilterSensitiveLog=p.TransitionFilterSensitiveLog=void 0;p.ListBucketMetricsConfigurationsOutputFilterSensitiveLog=p.ListBucketInventoryConfigurationsRequestFilterSensitiveLog=p.ListBucketInventoryConfigurationsOutputFilterSensitiveLog=p.ListBucketIntelligentTieringConfigurationsRequestFilterSensitiveLog=p.ListBucketIntelligentTieringConfigurationsOutputFilterSensitiveLog=p.ListBucketAnalyticsConfigurationsRequestFilterSensitiveLog=p.ListBucketAnalyticsConfigurationsOutputFilterSensitiveLog=p.HeadObjectRequestFilterSensitiveLog=p.HeadObjectOutputFilterSensitiveLog=p.HeadBucketRequestFilterSensitiveLog=p.GetPublicAccessBlockRequestFilterSensitiveLog=p.GetPublicAccessBlockOutputFilterSensitiveLog=p.PublicAccessBlockConfigurationFilterSensitiveLog=p.GetObjectTorrentRequestFilterSensitiveLog=p.GetObjectTorrentOutputFilterSensitiveLog=p.GetObjectTaggingRequestFilterSensitiveLog=p.GetObjectTaggingOutputFilterSensitiveLog=p.GetObjectRetentionRequestFilterSensitiveLog=p.GetObjectRetentionOutputFilterSensitiveLog=p.ObjectLockRetentionFilterSensitiveLog=p.GetObjectLockConfigurationRequestFilterSensitiveLog=p.GetObjectLockConfigurationOutputFilterSensitiveLog=p.ObjectLockConfigurationFilterSensitiveLog=p.ObjectLockRuleFilterSensitiveLog=p.DefaultRetentionFilterSensitiveLog=p.GetObjectLegalHoldRequestFilterSensitiveLog=p.GetObjectLegalHoldOutputFilterSensitiveLog=p.ObjectLockLegalHoldFilterSensitiveLog=p.GetObjectAttributesRequestFilterSensitiveLog=p.GetObjectAttributesOutputFilterSensitiveLog=p.GetObjectAttributesPartsFilterSensitiveLog=p.ObjectPartFilterSensitiveLog=p.ChecksumFilterSensitiveLog=p.GetObjectAclRequestFilterSensitiveLog=p.GetObjectAclOutputFilterSensitiveLog=p.GetObjectRequestFilterSensitiveLog=p.GetObjectOutputFilterSensitiveLog=p.GetBucketWebsiteRequestFilterSensitiveLog=p.GetBucketWebsiteOutputFilterSensitiveLog=p.RoutingRuleFilterSensitiveLog=p.RedirectFilterSensitiveLog=p.ConditionFilterSensitiveLog=p.RedirectAllRequestsToFilterSensitiveLog=p.IndexDocumentFilterSensitiveLog=p.ErrorDocumentFilterSensitiveLog=p.GetBucketVersioningRequestFilterSensitiveLog=p.GetBucketVersioningOutputFilterSensitiveLog=p.GetBucketTaggingRequestFilterSensitiveLog=p.GetBucketTaggingOutputFilterSensitiveLog=p.GetBucketRequestPaymentRequestFilterSensitiveLog=void 0;p.PutObjectLegalHoldOutputFilterSensitiveLog=p.PutObjectAclRequestFilterSensitiveLog=p.PutObjectAclOutputFilterSensitiveLog=p.PutObjectRequestFilterSensitiveLog=p.PutObjectOutputFilterSensitiveLog=p.PutBucketWebsiteRequestFilterSensitiveLog=p.WebsiteConfigurationFilterSensitiveLog=p.PutBucketVersioningRequestFilterSensitiveLog=p.VersioningConfigurationFilterSensitiveLog=p.PutBucketTaggingRequestFilterSensitiveLog=p.TaggingFilterSensitiveLog=p.PutBucketRequestPaymentRequestFilterSensitiveLog=p.RequestPaymentConfigurationFilterSensitiveLog=p.PutBucketReplicationRequestFilterSensitiveLog=p.PutBucketPolicyRequestFilterSensitiveLog=p.PutBucketOwnershipControlsRequestFilterSensitiveLog=p.PutBucketNotificationConfigurationRequestFilterSensitiveLog=p.PutBucketMetricsConfigurationRequestFilterSensitiveLog=p.PutBucketLoggingRequestFilterSensitiveLog=p.BucketLoggingStatusFilterSensitiveLog=p.PutBucketLifecycleConfigurationRequestFilterSensitiveLog=p.BucketLifecycleConfigurationFilterSensitiveLog=p.PutBucketInventoryConfigurationRequestFilterSensitiveLog=p.PutBucketIntelligentTieringConfigurationRequestFilterSensitiveLog=p.PutBucketEncryptionRequestFilterSensitiveLog=p.PutBucketCorsRequestFilterSensitiveLog=p.CORSConfigurationFilterSensitiveLog=p.PutBucketAnalyticsConfigurationRequestFilterSensitiveLog=p.PutBucketAclRequestFilterSensitiveLog=p.PutBucketAccelerateConfigurationRequestFilterSensitiveLog=p.ListPartsRequestFilterSensitiveLog=p.ListPartsOutputFilterSensitiveLog=p.PartFilterSensitiveLog=p.ListObjectVersionsRequestFilterSensitiveLog=p.ListObjectVersionsOutputFilterSensitiveLog=p.ObjectVersionFilterSensitiveLog=p.DeleteMarkerEntryFilterSensitiveLog=p.ListObjectsV2RequestFilterSensitiveLog=p.ListObjectsV2OutputFilterSensitiveLog=p.ListObjectsRequestFilterSensitiveLog=p.ListObjectsOutputFilterSensitiveLog=p._ObjectFilterSensitiveLog=p.ListMultipartUploadsRequestFilterSensitiveLog=p.ListMultipartUploadsOutputFilterSensitiveLog=p.MultipartUploadFilterSensitiveLog=p.InitiatorFilterSensitiveLog=p.CommonPrefixFilterSensitiveLog=p.ListBucketsOutputFilterSensitiveLog=p.BucketFilterSensitiveLog=p.ListBucketMetricsConfigurationsRequestFilterSensitiveLog=void 0;p.PutObjectLockConfigurationRequestFilterSensitiveLog=p.PutObjectLockConfigurationOutputFilterSensitiveLog=p.PutObjectLegalHoldRequestFilterSensitiveLog=void 0;var rt=E(),Yr=xd(),W0e;(function(e){e.requester="requester"})(W0e=p.RequestCharged||(p.RequestCharged={}));var K0e;(function(e){e.requester="requester"})(K0e=p.RequestPayer||(p.RequestPayer={}));var bd=class extends Yr.S3ServiceException{constructor(n){super({name:"NoSuchUpload",$fault:"client",...n}),this.name="NoSuchUpload",this.$fault="client",Object.setPrototypeOf(this,bd.prototype)}};p.NoSuchUpload=bd;var Q0e;(function(e){e.Enabled="Enabled",e.Suspended="Suspended"})(Q0e=p.BucketAccelerateStatus||(p.BucketAccelerateStatus={}));var J0e;(function(e){e.AmazonCustomerByEmail="AmazonCustomerByEmail",e.CanonicalUser="CanonicalUser",e.Group="Group"})(J0e=p.Type||(p.Type={}));var Y0e;(function(e){e.FULL_CONTROL="FULL_CONTROL",e.READ="READ",e.READ_ACP="READ_ACP",e.WRITE="WRITE",e.WRITE_ACP="WRITE_ACP"})(Y0e=p.Permission||(p.Permission={}));var Z0e;(function(e){e.Destination="Destination"})(Z0e=p.OwnerOverride||(p.OwnerOverride={}));var ebe;(function(e){e.AES256="AES256",e.aws_kms="aws:kms"})(ebe=p.ServerSideEncryption||(p.ServerSideEncryption={}));var tbe;(function(e){e.authenticated_read="authenticated-read",e.aws_exec_read="aws-exec-read",e.bucket_owner_full_control="bucket-owner-full-control",e.bucket_owner_read="bucket-owner-read",e.private="private",e.public_read="public-read",e.public_read_write="public-read-write"})(tbe=p.ObjectCannedACL||(p.ObjectCannedACL={}));var nbe;(function(e){e.CRC32="CRC32",e.CRC32C="CRC32C",e.SHA1="SHA1",e.SHA256="SHA256"})(nbe=p.ChecksumAlgorithm||(p.ChecksumAlgorithm={}));var sbe;(function(e){e.COPY="COPY",e.REPLACE="REPLACE"})(sbe=p.MetadataDirective||(p.MetadataDirective={}));var rbe;(function(e){e.OFF="OFF",e.ON="ON"})(rbe=p.ObjectLockLegalHoldStatus||(p.ObjectLockLegalHoldStatus={}));var ibe;(function(e){e.COMPLIANCE="COMPLIANCE",e.GOVERNANCE="GOVERNANCE"})(ibe=p.ObjectLockMode||(p.ObjectLockMode={}));var obe;(function(e){e.DEEP_ARCHIVE="DEEP_ARCHIVE",e.GLACIER="GLACIER",e.GLACIER_IR="GLACIER_IR",e.INTELLIGENT_TIERING="INTELLIGENT_TIERING",e.ONEZONE_IA="ONEZONE_IA",e.OUTPOSTS="OUTPOSTS",e.REDUCED_REDUNDANCY="REDUCED_REDUNDANCY",e.STANDARD="STANDARD",e.STANDARD_IA="STANDARD_IA"})(obe=p.StorageClass||(p.StorageClass={}));var abe;(function(e){e.COPY="COPY",e.REPLACE="REPLACE"})(abe=p.TaggingDirective||(p.TaggingDirective={}));var Id=class extends Yr.S3ServiceException{constructor(n){super({name:"ObjectNotInActiveTierError",$fault:"client",...n}),this.name="ObjectNotInActiveTierError",this.$fault="client",Object.setPrototypeOf(this,Id.prototype)}};p.ObjectNotInActiveTierError=Id;var kd=class extends Yr.S3ServiceException{constructor(n){super({name:"BucketAlreadyExists",$fault:"client",...n}),this.name="BucketAlreadyExists",this.$fault="client",Object.setPrototypeOf(this,kd.prototype)}};p.BucketAlreadyExists=kd;var Rd=class extends Yr.S3ServiceException{constructor(n){super({name:"BucketAlreadyOwnedByYou",$fault:"client",...n}),this.name="BucketAlreadyOwnedByYou",this.$fault="client",Object.setPrototypeOf(this,Rd.prototype)}};p.BucketAlreadyOwnedByYou=Rd;var cbe;(function(e){e.authenticated_read="authenticated-read",e.private="private",e.public_read="public-read",e.public_read_write="public-read-write"})(cbe=p.BucketCannedACL||(p.BucketCannedACL={}));var lbe;(function(e){e.EU="EU",e.af_south_1="af-south-1",e.ap_east_1="ap-east-1",e.ap_northeast_1="ap-northeast-1",e.ap_northeast_2="ap-northeast-2",e.ap_northeast_3="ap-northeast-3",e.ap_south_1="ap-south-1",e.ap_southeast_1="ap-southeast-1",e.ap_southeast_2="ap-southeast-2",e.ap_southeast_3="ap-southeast-3",e.ca_central_1="ca-central-1",e.cn_north_1="cn-north-1",e.cn_northwest_1="cn-northwest-1",e.eu_central_1="eu-central-1",e.eu_north_1="eu-north-1",e.eu_south_1="eu-south-1",e.eu_west_1="eu-west-1",e.eu_west_2="eu-west-2",e.eu_west_3="eu-west-3",e.me_south_1="me-south-1",e.sa_east_1="sa-east-1",e.us_east_2="us-east-2",e.us_gov_east_1="us-gov-east-1",e.us_gov_west_1="us-gov-west-1",e.us_west_1="us-west-1",e.us_west_2="us-west-2"})(lbe=p.BucketLocationConstraint||(p.BucketLocationConstraint={}));var dbe;(function(e){e.BucketOwnerEnforced="BucketOwnerEnforced",e.BucketOwnerPreferred="BucketOwnerPreferred",e.ObjectWriter="ObjectWriter"})(dbe=p.ObjectOwnership||(p.ObjectOwnership={}));var ube;(function(e){e.visit=(n,t)=>n.Prefix!==void 0?t.Prefix(n.Prefix):n.Tag!==void 0?t.Tag(n.Tag):n.And!==void 0?t.And(n.And):t._(n.$unknown[0],n.$unknown[1])})(ube=p.AnalyticsFilter||(p.AnalyticsFilter={}));var mbe;(function(e){e.CSV="CSV"})(mbe=p.AnalyticsS3ExportFileFormat||(p.AnalyticsS3ExportFileFormat={}));var pbe;(function(e){e.V_1="V_1"})(pbe=p.StorageClassAnalysisSchemaVersion||(p.StorageClassAnalysisSchemaVersion={}));var gbe;(function(e){e.Disabled="Disabled",e.Enabled="Enabled"})(gbe=p.IntelligentTieringStatus||(p.IntelligentTieringStatus={}));var ybe;(function(e){e.ARCHIVE_ACCESS="ARCHIVE_ACCESS",e.DEEP_ARCHIVE_ACCESS="DEEP_ARCHIVE_ACCESS"})(ybe=p.IntelligentTieringAccessTier||(p.IntelligentTieringAccessTier={}));var _be;(function(e){e.CSV="CSV",e.ORC="ORC",e.Parquet="Parquet"})(_be=p.InventoryFormat||(p.InventoryFormat={}));var fbe;(function(e){e.All="All",e.Current="Current"})(fbe=p.InventoryIncludedObjectVersions||(p.InventoryIncludedObjectVersions={}));var Sbe;(function(e){e.BucketKeyStatus="BucketKeyStatus",e.ChecksumAlgorithm="ChecksumAlgorithm",e.ETag="ETag",e.EncryptionStatus="EncryptionStatus",e.IntelligentTieringAccessTier="IntelligentTieringAccessTier",e.IsMultipartUploaded="IsMultipartUploaded",e.LastModifiedDate="LastModifiedDate",e.ObjectLockLegalHoldStatus="ObjectLockLegalHoldStatus",e.ObjectLockMode="ObjectLockMode",e.ObjectLockRetainUntilDate="ObjectLockRetainUntilDate",e.ReplicationStatus="ReplicationStatus",e.Size="Size",e.StorageClass="StorageClass"})(Sbe=p.InventoryOptionalField||(p.InventoryOptionalField={}));var hbe;(function(e){e.Daily="Daily",e.Weekly="Weekly"})(hbe=p.InventoryFrequency||(p.InventoryFrequency={}));var wbe;(function(e){e.visit=(n,t)=>n.Prefix!==void 0?t.Prefix(n.Prefix):n.Tag!==void 0?t.Tag(n.Tag):n.ObjectSizeGreaterThan!==void 0?t.ObjectSizeGreaterThan(n.ObjectSizeGreaterThan):n.ObjectSizeLessThan!==void 0?t.ObjectSizeLessThan(n.ObjectSizeLessThan):n.And!==void 0?t.And(n.And):t._(n.$unknown[0],n.$unknown[1])})(wbe=p.LifecycleRuleFilter||(p.LifecycleRuleFilter={}));var Ebe;(function(e){e.DEEP_ARCHIVE="DEEP_ARCHIVE",e.GLACIER="GLACIER",e.GLACIER_IR="GLACIER_IR",e.INTELLIGENT_TIERING="INTELLIGENT_TIERING",e.ONEZONE_IA="ONEZONE_IA",e.STANDARD_IA="STANDARD_IA"})(Ebe=p.TransitionStorageClass||(p.TransitionStorageClass={}));var Cbe;(function(e){e.Disabled="Disabled",e.Enabled="Enabled"})(Cbe=p.ExpirationStatus||(p.ExpirationStatus={}));var vbe;(function(e){e.FULL_CONTROL="FULL_CONTROL",e.READ="READ",e.WRITE="WRITE"})(vbe=p.BucketLogsPermission||(p.BucketLogsPermission={}));var Pbe;(function(e){e.visit=(n,t)=>n.Prefix!==void 0?t.Prefix(n.Prefix):n.Tag!==void 0?t.Tag(n.Tag):n.AccessPointArn!==void 0?t.AccessPointArn(n.AccessPointArn):n.And!==void 0?t.And(n.And):t._(n.$unknown[0],n.$unknown[1])})(Pbe=p.MetricsFilter||(p.MetricsFilter={}));var Abe;(function(e){e.prefix="prefix",e.suffix="suffix"})(Abe=p.FilterRuleName||(p.FilterRuleName={}));var xbe;(function(e){e.Disabled="Disabled",e.Enabled="Enabled"})(xbe=p.DeleteMarkerReplicationStatus||(p.DeleteMarkerReplicationStatus={}));var bbe;(function(e){e.Disabled="Disabled",e.Enabled="Enabled"})(bbe=p.MetricsStatus||(p.MetricsStatus={}));var Ibe;(function(e){e.Disabled="Disabled",e.Enabled="Enabled"})(Ibe=p.ReplicationTimeStatus||(p.ReplicationTimeStatus={}));var kbe;(function(e){e.Disabled="Disabled",e.Enabled="Enabled"})(kbe=p.ExistingObjectReplicationStatus||(p.ExistingObjectReplicationStatus={}));var Rbe;(function(e){e.visit=(n,t)=>n.Prefix!==void 0?t.Prefix(n.Prefix):n.Tag!==void 0?t.Tag(n.Tag):n.And!==void 0?t.And(n.And):t._(n.$unknown[0],n.$unknown[1])})(Rbe=p.ReplicationRuleFilter||(p.ReplicationRuleFilter={}));var Nbe;(function(e){e.Disabled="Disabled",e.Enabled="Enabled"})(Nbe=p.ReplicaModificationsStatus||(p.ReplicaModificationsStatus={}));var zbe;(function(e){e.Disabled="Disabled",e.Enabled="Enabled"})(zbe=p.SseKmsEncryptedObjectsStatus||(p.SseKmsEncryptedObjectsStatus={}));var qbe;(function(e){e.Disabled="Disabled",e.Enabled="Enabled"})(qbe=p.ReplicationRuleStatus||(p.ReplicationRuleStatus={}));var Lbe;(function(e){e.BucketOwner="BucketOwner",e.Requester="Requester"})(Lbe=p.Payer||(p.Payer={}));var Fbe;(function(e){e.Disabled="Disabled",e.Enabled="Enabled"})(Fbe=p.MFADeleteStatus||(p.MFADeleteStatus={}));var Dbe;(function(e){e.Enabled="Enabled",e.Suspended="Suspended"})(Dbe=p.BucketVersioningStatus||(p.BucketVersioningStatus={}));var Tbe;(function(e){e.http="http",e.https="https"})(Tbe=p.Protocol||(p.Protocol={}));var jbe;(function(e){e.COMPLETE="COMPLETE",e.FAILED="FAILED",e.PENDING="PENDING",e.REPLICA="REPLICA"})(jbe=p.ReplicationStatus||(p.ReplicationStatus={}));var Mbe;(function(e){e.ENABLED="ENABLED"})(Mbe=p.ChecksumMode||(p.ChecksumMode={}));var Nd=class extends Yr.S3ServiceException{constructor(n){super({name:"InvalidObjectState",$fault:"client",...n}),this.name="InvalidObjectState",this.$fault="client",Object.setPrototypeOf(this,Nd.prototype),this.StorageClass=n.StorageClass,this.AccessTier=n.AccessTier}};p.InvalidObjectState=Nd;var zd=class extends Yr.S3ServiceException{constructor(n){super({name:"NoSuchKey",$fault:"client",...n}),this.name="NoSuchKey",this.$fault="client",Object.setPrototypeOf(this,zd.prototype)}};p.NoSuchKey=zd;var Obe;(function(e){e.CHECKSUM="Checksum",e.ETAG="ETag",e.OBJECT_PARTS="ObjectParts",e.OBJECT_SIZE="ObjectSize",e.STORAGE_CLASS="StorageClass"})(Obe=p.ObjectAttributes||(p.ObjectAttributes={}));var Bbe;(function(e){e.Enabled="Enabled"})(Bbe=p.ObjectLockEnabled||(p.ObjectLockEnabled={}));var Gbe;(function(e){e.COMPLIANCE="COMPLIANCE",e.GOVERNANCE="GOVERNANCE"})(Gbe=p.ObjectLockRetentionMode||(p.ObjectLockRetentionMode={}));var qd=class extends Yr.S3ServiceException{constructor(n){super({name:"NotFound",$fault:"client",...n}),this.name="NotFound",this.$fault="client",Object.setPrototypeOf(this,qd.prototype)}};p.NotFound=qd;var Ube;(function(e){e.ARCHIVE_ACCESS="ARCHIVE_ACCESS",e.DEEP_ARCHIVE_ACCESS="DEEP_ARCHIVE_ACCESS"})(Ube=p.ArchiveStatus||(p.ArchiveStatus={}));var Xbe;(function(e){e.url="url"})(Xbe=p.EncodingType||(p.EncodingType={}));var $be;(function(e){e.DEEP_ARCHIVE="DEEP_ARCHIVE",e.GLACIER="GLACIER",e.GLACIER_IR="GLACIER_IR",e.INTELLIGENT_TIERING="INTELLIGENT_TIERING",e.ONEZONE_IA="ONEZONE_IA",e.OUTPOSTS="OUTPOSTS",e.REDUCED_REDUNDANCY="REDUCED_REDUNDANCY",e.STANDARD="STANDARD",e.STANDARD_IA="STANDARD_IA"})($be=p.ObjectStorageClass||(p.ObjectStorageClass={}));var Ld=class extends Yr.S3ServiceException{constructor(n){super({name:"NoSuchBucket",$fault:"client",...n}),this.name="NoSuchBucket",this.$fault="client",Object.setPrototypeOf(this,Ld.prototype)}};p.NoSuchBucket=Ld;var Hbe;(function(e){e.STANDARD="STANDARD"})(Hbe=p.ObjectVersionStorageClass||(p.ObjectVersionStorageClass={}));var Vbe;(function(e){e.Disabled="Disabled",e.Enabled="Enabled"})(Vbe=p.MFADelete||(p.MFADelete={}));var Wbe=e=>({...e});p.AbortIncompleteMultipartUploadFilterSensitiveLog=Wbe;var Kbe=e=>({...e});p.AbortMultipartUploadOutputFilterSensitiveLog=Kbe;var Qbe=e=>({...e});p.AbortMultipartUploadRequestFilterSensitiveLog=Qbe;var Jbe=e=>({...e});p.AccelerateConfigurationFilterSensitiveLog=Jbe;var Ybe=e=>({...e});p.GranteeFilterSensitiveLog=Ybe;var Zbe=e=>({...e});p.GrantFilterSensitiveLog=Zbe;var e1e=e=>({...e});p.OwnerFilterSensitiveLog=e1e;var t1e=e=>({...e});p.AccessControlPolicyFilterSensitiveLog=t1e;var n1e=e=>({...e});p.AccessControlTranslationFilterSensitiveLog=n1e;var s1e=e=>({...e,...e.SSEKMSKeyId&&{SSEKMSKeyId:rt.SENSITIVE_STRING}});p.CompleteMultipartUploadOutputFilterSensitiveLog=s1e;var r1e=e=>({...e});p.CompletedPartFilterSensitiveLog=r1e;var i1e=e=>({...e});p.CompletedMultipartUploadFilterSensitiveLog=i1e;var o1e=e=>({...e,...e.SSECustomerKey&&{SSECustomerKey:rt.SENSITIVE_STRING}});p.CompleteMultipartUploadRequestFilterSensitiveLog=o1e;var a1e=e=>({...e});p.CopyObjectResultFilterSensitiveLog=a1e;var c1e=e=>({...e,...e.SSEKMSKeyId&&{SSEKMSKeyId:rt.SENSITIVE_STRING},...e.SSEKMSEncryptionContext&&{SSEKMSEncryptionContext:rt.SENSITIVE_STRING}});p.CopyObjectOutputFilterSensitiveLog=c1e;var l1e=e=>({...e,...e.SSECustomerKey&&{SSECustomerKey:rt.SENSITIVE_STRING},...e.SSEKMSKeyId&&{SSEKMSKeyId:rt.SENSITIVE_STRING},...e.SSEKMSEncryptionContext&&{SSEKMSEncryptionContext:rt.SENSITIVE_STRING},...e.CopySourceSSECustomerKey&&{CopySourceSSECustomerKey:rt.SENSITIVE_STRING}});p.CopyObjectRequestFilterSensitiveLog=l1e;var d1e=e=>({...e});p.CreateBucketOutputFilterSensitiveLog=d1e;var u1e=e=>({...e});p.CreateBucketConfigurationFilterSensitiveLog=u1e;var m1e=e=>({...e});p.CreateBucketRequestFilterSensitiveLog=m1e;var p1e=e=>({...e,...e.SSEKMSKeyId&&{SSEKMSKeyId:rt.SENSITIVE_STRING},...e.SSEKMSEncryptionContext&&{SSEKMSEncryptionContext:rt.SENSITIVE_STRING}});p.CreateMultipartUploadOutputFilterSensitiveLog=p1e;var g1e=e=>({...e,...e.SSECustomerKey&&{SSECustomerKey:rt.SENSITIVE_STRING},...e.SSEKMSKeyId&&{SSEKMSKeyId:rt.SENSITIVE_STRING},...e.SSEKMSEncryptionContext&&{SSEKMSEncryptionContext:rt.SENSITIVE_STRING}});p.CreateMultipartUploadRequestFilterSensitiveLog=g1e;var y1e=e=>({...e});p.DeleteBucketRequestFilterSensitiveLog=y1e;var _1e=e=>({...e});p.DeleteBucketAnalyticsConfigurationRequestFilterSensitiveLog=_1e;var f1e=e=>({...e});p.DeleteBucketCorsRequestFilterSensitiveLog=f1e;var S1e=e=>({...e});p.DeleteBucketEncryptionRequestFilterSensitiveLog=S1e;var h1e=e=>({...e});p.DeleteBucketIntelligentTieringConfigurationRequestFilterSensitiveLog=h1e;var w1e=e=>({...e});p.DeleteBucketInventoryConfigurationRequestFilterSensitiveLog=w1e;var E1e=e=>({...e});p.DeleteBucketLifecycleRequestFilterSensitiveLog=E1e;var C1e=e=>({...e});p.DeleteBucketMetricsConfigurationRequestFilterSensitiveLog=C1e;var v1e=e=>({...e});p.DeleteBucketOwnershipControlsRequestFilterSensitiveLog=v1e;var P1e=e=>({...e});p.DeleteBucketPolicyRequestFilterSensitiveLog=P1e;var A1e=e=>({...e});p.DeleteBucketReplicationRequestFilterSensitiveLog=A1e;var x1e=e=>({...e});p.DeleteBucketTaggingRequestFilterSensitiveLog=x1e;var b1e=e=>({...e});p.DeleteBucketWebsiteRequestFilterSensitiveLog=b1e;var I1e=e=>({...e});p.DeleteObjectOutputFilterSensitiveLog=I1e;var k1e=e=>({...e});p.DeleteObjectRequestFilterSensitiveLog=k1e;var R1e=e=>({...e});p.DeletedObjectFilterSensitiveLog=R1e;var N1e=e=>({...e});p._ErrorFilterSensitiveLog=N1e;var z1e=e=>({...e});p.DeleteObjectsOutputFilterSensitiveLog=z1e;var q1e=e=>({...e});p.ObjectIdentifierFilterSensitiveLog=q1e;var L1e=e=>({...e});p.DeleteFilterSensitiveLog=L1e;var F1e=e=>({...e});p.DeleteObjectsRequestFilterSensitiveLog=F1e;var D1e=e=>({...e});p.DeleteObjectTaggingOutputFilterSensitiveLog=D1e;var T1e=e=>({...e});p.DeleteObjectTaggingRequestFilterSensitiveLog=T1e;var j1e=e=>({...e});p.DeletePublicAccessBlockRequestFilterSensitiveLog=j1e;var M1e=e=>({...e});p.GetBucketAccelerateConfigurationOutputFilterSensitiveLog=M1e;var O1e=e=>({...e});p.GetBucketAccelerateConfigurationRequestFilterSensitiveLog=O1e;var B1e=e=>({...e});p.GetBucketAclOutputFilterSensitiveLog=B1e;var G1e=e=>({...e});p.GetBucketAclRequestFilterSensitiveLog=G1e;var U1e=e=>({...e});p.TagFilterSensitiveLog=U1e;var X1e=e=>({...e});p.AnalyticsAndOperatorFilterSensitiveLog=X1e;var $1e=e=>{if(e.Prefix!==void 0)return{Prefix:e.Prefix};if(e.Tag!==void 0)return{Tag:(0,p.TagFilterSensitiveLog)(e.Tag)};if(e.And!==void 0)return{And:(0,p.AnalyticsAndOperatorFilterSensitiveLog)(e.And)};if(e.$unknown!==void 0)return{[e.$unknown[0]]:"UNKNOWN"}};p.AnalyticsFilterFilterSensitiveLog=$1e;var H1e=e=>({...e});p.AnalyticsS3BucketDestinationFilterSensitiveLog=H1e;var V1e=e=>({...e});p.AnalyticsExportDestinationFilterSensitiveLog=V1e;var W1e=e=>({...e});p.StorageClassAnalysisDataExportFilterSensitiveLog=W1e;var K1e=e=>({...e});p.StorageClassAnalysisFilterSensitiveLog=K1e;var Q1e=e=>({...e,...e.Filter&&{Filter:(0,p.AnalyticsFilterFilterSensitiveLog)(e.Filter)}});p.AnalyticsConfigurationFilterSensitiveLog=Q1e;var J1e=e=>({...e,...e.AnalyticsConfiguration&&{AnalyticsConfiguration:(0,p.AnalyticsConfigurationFilterSensitiveLog)(e.AnalyticsConfiguration)}});p.GetBucketAnalyticsConfigurationOutputFilterSensitiveLog=J1e;var Y1e=e=>({...e});p.GetBucketAnalyticsConfigurationRequestFilterSensitiveLog=Y1e;var Z1e=e=>({...e});p.CORSRuleFilterSensitiveLog=Z1e;var eIe=e=>({...e});p.GetBucketCorsOutputFilterSensitiveLog=eIe;var tIe=e=>({...e});p.GetBucketCorsRequestFilterSensitiveLog=tIe;var nIe=e=>({...e,...e.KMSMasterKeyID&&{KMSMasterKeyID:rt.SENSITIVE_STRING}});p.ServerSideEncryptionByDefaultFilterSensitiveLog=nIe;var sIe=e=>({...e,...e.ApplyServerSideEncryptionByDefault&&{ApplyServerSideEncryptionByDefault:(0,p.ServerSideEncryptionByDefaultFilterSensitiveLog)(e.ApplyServerSideEncryptionByDefault)}});p.ServerSideEncryptionRuleFilterSensitiveLog=sIe;var rIe=e=>({...e,...e.Rules&&{Rules:e.Rules.map(n=>(0,p.ServerSideEncryptionRuleFilterSensitiveLog)(n))}});p.ServerSideEncryptionConfigurationFilterSensitiveLog=rIe;var iIe=e=>({...e,...e.ServerSideEncryptionConfiguration&&{ServerSideEncryptionConfiguration:(0,p.ServerSideEncryptionConfigurationFilterSensitiveLog)(e.ServerSideEncryptionConfiguration)}});p.GetBucketEncryptionOutputFilterSensitiveLog=iIe;var oIe=e=>({...e});p.GetBucketEncryptionRequestFilterSensitiveLog=oIe;var aIe=e=>({...e});p.IntelligentTieringAndOperatorFilterSensitiveLog=aIe;var cIe=e=>({...e});p.IntelligentTieringFilterFilterSensitiveLog=cIe;var lIe=e=>({...e});p.TieringFilterSensitiveLog=lIe;var dIe=e=>({...e});p.IntelligentTieringConfigurationFilterSensitiveLog=dIe;var uIe=e=>({...e});p.GetBucketIntelligentTieringConfigurationOutputFilterSensitiveLog=uIe;var mIe=e=>({...e});p.GetBucketIntelligentTieringConfigurationRequestFilterSensitiveLog=mIe;var pIe=e=>({...e,...e.KeyId&&{KeyId:rt.SENSITIVE_STRING}});p.SSEKMSFilterSensitiveLog=pIe;var gIe=e=>({...e});p.SSES3FilterSensitiveLog=gIe;var yIe=e=>({...e,...e.SSEKMS&&{SSEKMS:(0,p.SSEKMSFilterSensitiveLog)(e.SSEKMS)}});p.InventoryEncryptionFilterSensitiveLog=yIe;var _Ie=e=>({...e,...e.Encryption&&{Encryption:(0,p.InventoryEncryptionFilterSensitiveLog)(e.Encryption)}});p.InventoryS3BucketDestinationFilterSensitiveLog=_Ie;var fIe=e=>({...e,...e.S3BucketDestination&&{S3BucketDestination:(0,p.InventoryS3BucketDestinationFilterSensitiveLog)(e.S3BucketDestination)}});p.InventoryDestinationFilterSensitiveLog=fIe;var SIe=e=>({...e});p.InventoryFilterFilterSensitiveLog=SIe;var hIe=e=>({...e});p.InventoryScheduleFilterSensitiveLog=hIe;var wIe=e=>({...e,...e.Destination&&{Destination:(0,p.InventoryDestinationFilterSensitiveLog)(e.Destination)}});p.InventoryConfigurationFilterSensitiveLog=wIe;var EIe=e=>({...e,...e.InventoryConfiguration&&{InventoryConfiguration:(0,p.InventoryConfigurationFilterSensitiveLog)(e.InventoryConfiguration)}});p.GetBucketInventoryConfigurationOutputFilterSensitiveLog=EIe;var CIe=e=>({...e});p.GetBucketInventoryConfigurationRequestFilterSensitiveLog=CIe;var vIe=e=>({...e});p.LifecycleExpirationFilterSensitiveLog=vIe;var PIe=e=>({...e});p.LifecycleRuleAndOperatorFilterSensitiveLog=PIe;var AIe=e=>{if(e.Prefix!==void 0)return{Prefix:e.Prefix};if(e.Tag!==void 0)return{Tag:(0,p.TagFilterSensitiveLog)(e.Tag)};if(e.ObjectSizeGreaterThan!==void 0)return{ObjectSizeGreaterThan:e.ObjectSizeGreaterThan};if(e.ObjectSizeLessThan!==void 0)return{ObjectSizeLessThan:e.ObjectSizeLessThan};if(e.And!==void 0)return{And:(0,p.LifecycleRuleAndOperatorFilterSensitiveLog)(e.And)};if(e.$unknown!==void 0)return{[e.$unknown[0]]:"UNKNOWN"}};p.LifecycleRuleFilterFilterSensitiveLog=AIe;var xIe=e=>({...e});p.NoncurrentVersionExpirationFilterSensitiveLog=xIe;var bIe=e=>({...e});p.NoncurrentVersionTransitionFilterSensitiveLog=bIe;var IIe=e=>({...e});p.TransitionFilterSensitiveLog=IIe;var kIe=e=>({...e,...e.Filter&&{Filter:(0,p.LifecycleRuleFilterFilterSensitiveLog)(e.Filter)}});p.LifecycleRuleFilterSensitiveLog=kIe;var RIe=e=>({...e,...e.Rules&&{Rules:e.Rules.map(n=>(0,p.LifecycleRuleFilterSensitiveLog)(n))}});p.GetBucketLifecycleConfigurationOutputFilterSensitiveLog=RIe;var NIe=e=>({...e});p.GetBucketLifecycleConfigurationRequestFilterSensitiveLog=NIe;var zIe=e=>({...e});p.GetBucketLocationOutputFilterSensitiveLog=zIe;var qIe=e=>({...e});p.GetBucketLocationRequestFilterSensitiveLog=qIe;var LIe=e=>({...e});p.TargetGrantFilterSensitiveLog=LIe;var FIe=e=>({...e});p.LoggingEnabledFilterSensitiveLog=FIe;var DIe=e=>({...e});p.GetBucketLoggingOutputFilterSensitiveLog=DIe;var TIe=e=>({...e});p.GetBucketLoggingRequestFilterSensitiveLog=TIe;var jIe=e=>({...e});p.MetricsAndOperatorFilterSensitiveLog=jIe;var MIe=e=>{if(e.Prefix!==void 0)return{Prefix:e.Prefix};if(e.Tag!==void 0)return{Tag:(0,p.TagFilterSensitiveLog)(e.Tag)};if(e.AccessPointArn!==void 0)return{AccessPointArn:e.AccessPointArn};if(e.And!==void 0)return{And:(0,p.MetricsAndOperatorFilterSensitiveLog)(e.And)};if(e.$unknown!==void 0)return{[e.$unknown[0]]:"UNKNOWN"}};p.MetricsFilterFilterSensitiveLog=MIe;var OIe=e=>({...e,...e.Filter&&{Filter:(0,p.MetricsFilterFilterSensitiveLog)(e.Filter)}});p.MetricsConfigurationFilterSensitiveLog=OIe;var BIe=e=>({...e,...e.MetricsConfiguration&&{MetricsConfiguration:(0,p.MetricsConfigurationFilterSensitiveLog)(e.MetricsConfiguration)}});p.GetBucketMetricsConfigurationOutputFilterSensitiveLog=BIe;var GIe=e=>({...e});p.GetBucketMetricsConfigurationRequestFilterSensitiveLog=GIe;var UIe=e=>({...e});p.GetBucketNotificationConfigurationRequestFilterSensitiveLog=UIe;var XIe=e=>({...e});p.EventBridgeConfigurationFilterSensitiveLog=XIe;var $Ie=e=>({...e});p.FilterRuleFilterSensitiveLog=$Ie;var HIe=e=>({...e});p.S3KeyFilterFilterSensitiveLog=HIe;var VIe=e=>({...e});p.NotificationConfigurationFilterFilterSensitiveLog=VIe;var WIe=e=>({...e});p.LambdaFunctionConfigurationFilterSensitiveLog=WIe;var KIe=e=>({...e});p.QueueConfigurationFilterSensitiveLog=KIe;var QIe=e=>({...e});p.TopicConfigurationFilterSensitiveLog=QIe;var JIe=e=>({...e});p.NotificationConfigurationFilterSensitiveLog=JIe;var YIe=e=>({...e});p.OwnershipControlsRuleFilterSensitiveLog=YIe;var ZIe=e=>({...e});p.OwnershipControlsFilterSensitiveLog=ZIe;var eke=e=>({...e});p.GetBucketOwnershipControlsOutputFilterSensitiveLog=eke;var tke=e=>({...e});p.GetBucketOwnershipControlsRequestFilterSensitiveLog=tke;var nke=e=>({...e});p.GetBucketPolicyOutputFilterSensitiveLog=nke;var ske=e=>({...e});p.GetBucketPolicyRequestFilterSensitiveLog=ske;var rke=e=>({...e});p.PolicyStatusFilterSensitiveLog=rke;var ike=e=>({...e});p.GetBucketPolicyStatusOutputFilterSensitiveLog=ike;var oke=e=>({...e});p.GetBucketPolicyStatusRequestFilterSensitiveLog=oke;var ake=e=>({...e});p.DeleteMarkerReplicationFilterSensitiveLog=ake;var cke=e=>({...e});p.EncryptionConfigurationFilterSensitiveLog=cke;var lke=e=>({...e});p.ReplicationTimeValueFilterSensitiveLog=lke;var dke=e=>({...e});p.MetricsFilterSensitiveLog=dke;var uke=e=>({...e});p.ReplicationTimeFilterSensitiveLog=uke;var mke=e=>({...e});p.DestinationFilterSensitiveLog=mke;var pke=e=>({...e});p.ExistingObjectReplicationFilterSensitiveLog=pke;var gke=e=>({...e});p.ReplicationRuleAndOperatorFilterSensitiveLog=gke;var yke=e=>{if(e.Prefix!==void 0)return{Prefix:e.Prefix};if(e.Tag!==void 0)return{Tag:(0,p.TagFilterSensitiveLog)(e.Tag)};if(e.And!==void 0)return{And:(0,p.ReplicationRuleAndOperatorFilterSensitiveLog)(e.And)};if(e.$unknown!==void 0)return{[e.$unknown[0]]:"UNKNOWN"}};p.ReplicationRuleFilterFilterSensitiveLog=yke;var _ke=e=>({...e});p.ReplicaModificationsFilterSensitiveLog=_ke;var fke=e=>({...e});p.SseKmsEncryptedObjectsFilterSensitiveLog=fke;var Ske=e=>({...e});p.SourceSelectionCriteriaFilterSensitiveLog=Ske;var hke=e=>({...e,...e.Filter&&{Filter:(0,p.ReplicationRuleFilterFilterSensitiveLog)(e.Filter)}});p.ReplicationRuleFilterSensitiveLog=hke;var wke=e=>({...e,...e.Rules&&{Rules:e.Rules.map(n=>(0,p.ReplicationRuleFilterSensitiveLog)(n))}});p.ReplicationConfigurationFilterSensitiveLog=wke;var Eke=e=>({...e,...e.ReplicationConfiguration&&{ReplicationConfiguration:(0,p.ReplicationConfigurationFilterSensitiveLog)(e.ReplicationConfiguration)}});p.GetBucketReplicationOutputFilterSensitiveLog=Eke;var Cke=e=>({...e});p.GetBucketReplicationRequestFilterSensitiveLog=Cke;var vke=e=>({...e});p.GetBucketRequestPaymentOutputFilterSensitiveLog=vke;var Pke=e=>({...e});p.GetBucketRequestPaymentRequestFilterSensitiveLog=Pke;var Ake=e=>({...e});p.GetBucketTaggingOutputFilterSensitiveLog=Ake;var xke=e=>({...e});p.GetBucketTaggingRequestFilterSensitiveLog=xke;var bke=e=>({...e});p.GetBucketVersioningOutputFilterSensitiveLog=bke;var Ike=e=>({...e});p.GetBucketVersioningRequestFilterSensitiveLog=Ike;var kke=e=>({...e});p.ErrorDocumentFilterSensitiveLog=kke;var Rke=e=>({...e});p.IndexDocumentFilterSensitiveLog=Rke;var Nke=e=>({...e});p.RedirectAllRequestsToFilterSensitiveLog=Nke;var zke=e=>({...e});p.ConditionFilterSensitiveLog=zke;var qke=e=>({...e});p.RedirectFilterSensitiveLog=qke;var Lke=e=>({...e});p.RoutingRuleFilterSensitiveLog=Lke;var Fke=e=>({...e});p.GetBucketWebsiteOutputFilterSensitiveLog=Fke;var Dke=e=>({...e});p.GetBucketWebsiteRequestFilterSensitiveLog=Dke;var Tke=e=>({...e,...e.SSEKMSKeyId&&{SSEKMSKeyId:rt.SENSITIVE_STRING}});p.GetObjectOutputFilterSensitiveLog=Tke;var jke=e=>({...e,...e.SSECustomerKey&&{SSECustomerKey:rt.SENSITIVE_STRING}});p.GetObjectRequestFilterSensitiveLog=jke;var Mke=e=>({...e});p.GetObjectAclOutputFilterSensitiveLog=Mke;var Oke=e=>({...e});p.GetObjectAclRequestFilterSensitiveLog=Oke;var Bke=e=>({...e});p.ChecksumFilterSensitiveLog=Bke;var Gke=e=>({...e});p.ObjectPartFilterSensitiveLog=Gke;var Uke=e=>({...e});p.GetObjectAttributesPartsFilterSensitiveLog=Uke;var Xke=e=>({...e});p.GetObjectAttributesOutputFilterSensitiveLog=Xke;var $ke=e=>({...e,...e.SSECustomerKey&&{SSECustomerKey:rt.SENSITIVE_STRING}});p.GetObjectAttributesRequestFilterSensitiveLog=$ke;var Hke=e=>({...e});p.ObjectLockLegalHoldFilterSensitiveLog=Hke;var Vke=e=>({...e});p.GetObjectLegalHoldOutputFilterSensitiveLog=Vke;var Wke=e=>({...e});p.GetObjectLegalHoldRequestFilterSensitiveLog=Wke;var Kke=e=>({...e});p.DefaultRetentionFilterSensitiveLog=Kke;var Qke=e=>({...e});p.ObjectLockRuleFilterSensitiveLog=Qke;var Jke=e=>({...e});p.ObjectLockConfigurationFilterSensitiveLog=Jke;var Yke=e=>({...e});p.GetObjectLockConfigurationOutputFilterSensitiveLog=Yke;var Zke=e=>({...e});p.GetObjectLockConfigurationRequestFilterSensitiveLog=Zke;var eRe=e=>({...e});p.ObjectLockRetentionFilterSensitiveLog=eRe;var tRe=e=>({...e});p.GetObjectRetentionOutputFilterSensitiveLog=tRe;var nRe=e=>({...e});p.GetObjectRetentionRequestFilterSensitiveLog=nRe;var sRe=e=>({...e});p.GetObjectTaggingOutputFilterSensitiveLog=sRe;var rRe=e=>({...e});p.GetObjectTaggingRequestFilterSensitiveLog=rRe;var iRe=e=>({...e});p.GetObjectTorrentOutputFilterSensitiveLog=iRe;var oRe=e=>({...e});p.GetObjectTorrentRequestFilterSensitiveLog=oRe;var aRe=e=>({...e});p.PublicAccessBlockConfigurationFilterSensitiveLog=aRe;var cRe=e=>({...e});p.GetPublicAccessBlockOutputFilterSensitiveLog=cRe;var lRe=e=>({...e});p.GetPublicAccessBlockRequestFilterSensitiveLog=lRe;var dRe=e=>({...e});p.HeadBucketRequestFilterSensitiveLog=dRe;var uRe=e=>({...e,...e.SSEKMSKeyId&&{SSEKMSKeyId:rt.SENSITIVE_STRING}});p.HeadObjectOutputFilterSensitiveLog=uRe;var mRe=e=>({...e,...e.SSECustomerKey&&{SSECustomerKey:rt.SENSITIVE_STRING}});p.HeadObjectRequestFilterSensitiveLog=mRe;var pRe=e=>({...e,...e.AnalyticsConfigurationList&&{AnalyticsConfigurationList:e.AnalyticsConfigurationList.map(n=>(0,p.AnalyticsConfigurationFilterSensitiveLog)(n))}});p.ListBucketAnalyticsConfigurationsOutputFilterSensitiveLog=pRe;var gRe=e=>({...e});p.ListBucketAnalyticsConfigurationsRequestFilterSensitiveLog=gRe;var yRe=e=>({...e});p.ListBucketIntelligentTieringConfigurationsOutputFilterSensitiveLog=yRe;var _Re=e=>({...e});p.ListBucketIntelligentTieringConfigurationsRequestFilterSensitiveLog=_Re;var fRe=e=>({...e,...e.InventoryConfigurationList&&{InventoryConfigurationList:e.InventoryConfigurationList.map(n=>(0,p.InventoryConfigurationFilterSensitiveLog)(n))}});p.ListBucketInventoryConfigurationsOutputFilterSensitiveLog=fRe;var SRe=e=>({...e});p.ListBucketInventoryConfigurationsRequestFilterSensitiveLog=SRe;var hRe=e=>({...e,...e.MetricsConfigurationList&&{MetricsConfigurationList:e.MetricsConfigurationList.map(n=>(0,p.MetricsConfigurationFilterSensitiveLog)(n))}});p.ListBucketMetricsConfigurationsOutputFilterSensitiveLog=hRe;var wRe=e=>({...e});p.ListBucketMetricsConfigurationsRequestFilterSensitiveLog=wRe;var ERe=e=>({...e});p.BucketFilterSensitiveLog=ERe;var CRe=e=>({...e});p.ListBucketsOutputFilterSensitiveLog=CRe;var vRe=e=>({...e});p.CommonPrefixFilterSensitiveLog=vRe;var PRe=e=>({...e});p.InitiatorFilterSensitiveLog=PRe;var ARe=e=>({...e});p.MultipartUploadFilterSensitiveLog=ARe;var xRe=e=>({...e});p.ListMultipartUploadsOutputFilterSensitiveLog=xRe;var bRe=e=>({...e});p.ListMultipartUploadsRequestFilterSensitiveLog=bRe;var IRe=e=>({...e});p._ObjectFilterSensitiveLog=IRe;var kRe=e=>({...e});p.ListObjectsOutputFilterSensitiveLog=kRe;var RRe=e=>({...e});p.ListObjectsRequestFilterSensitiveLog=RRe;var NRe=e=>({...e});p.ListObjectsV2OutputFilterSensitiveLog=NRe;var zRe=e=>({...e});p.ListObjectsV2RequestFilterSensitiveLog=zRe;var qRe=e=>({...e});p.DeleteMarkerEntryFilterSensitiveLog=qRe;var LRe=e=>({...e});p.ObjectVersionFilterSensitiveLog=LRe;var FRe=e=>({...e});p.ListObjectVersionsOutputFilterSensitiveLog=FRe;var DRe=e=>({...e});p.ListObjectVersionsRequestFilterSensitiveLog=DRe;var TRe=e=>({...e});p.PartFilterSensitiveLog=TRe;var jRe=e=>({...e});p.ListPartsOutputFilterSensitiveLog=jRe;var MRe=e=>({...e,...e.SSECustomerKey&&{SSECustomerKey:rt.SENSITIVE_STRING}});p.ListPartsRequestFilterSensitiveLog=MRe;var ORe=e=>({...e});p.PutBucketAccelerateConfigurationRequestFilterSensitiveLog=ORe;var BRe=e=>({...e});p.PutBucketAclRequestFilterSensitiveLog=BRe;var GRe=e=>({...e,...e.AnalyticsConfiguration&&{AnalyticsConfiguration:(0,p.AnalyticsConfigurationFilterSensitiveLog)(e.AnalyticsConfiguration)}});p.PutBucketAnalyticsConfigurationRequestFilterSensitiveLog=GRe;var URe=e=>({...e});p.CORSConfigurationFilterSensitiveLog=URe;var XRe=e=>({...e});p.PutBucketCorsRequestFilterSensitiveLog=XRe;var $Re=e=>({...e,...e.ServerSideEncryptionConfiguration&&{ServerSideEncryptionConfiguration:(0,p.ServerSideEncryptionConfigurationFilterSensitiveLog)(e.ServerSideEncryptionConfiguration)}});p.PutBucketEncryptionRequestFilterSensitiveLog=$Re;var HRe=e=>({...e});p.PutBucketIntelligentTieringConfigurationRequestFilterSensitiveLog=HRe;var VRe=e=>({...e,...e.InventoryConfiguration&&{InventoryConfiguration:(0,p.InventoryConfigurationFilterSensitiveLog)(e.InventoryConfiguration)}});p.PutBucketInventoryConfigurationRequestFilterSensitiveLog=VRe;var WRe=e=>({...e,...e.Rules&&{Rules:e.Rules.map(n=>(0,p.LifecycleRuleFilterSensitiveLog)(n))}});p.BucketLifecycleConfigurationFilterSensitiveLog=WRe;var KRe=e=>({...e,...e.LifecycleConfiguration&&{LifecycleConfiguration:(0,p.BucketLifecycleConfigurationFilterSensitiveLog)(e.LifecycleConfiguration)}});p.PutBucketLifecycleConfigurationRequestFilterSensitiveLog=KRe;var QRe=e=>({...e});p.BucketLoggingStatusFilterSensitiveLog=QRe;var JRe=e=>({...e});p.PutBucketLoggingRequestFilterSensitiveLog=JRe;var YRe=e=>({...e,...e.MetricsConfiguration&&{MetricsConfiguration:(0,p.MetricsConfigurationFilterSensitiveLog)(e.MetricsConfiguration)}});p.PutBucketMetricsConfigurationRequestFilterSensitiveLog=YRe;var ZRe=e=>({...e});p.PutBucketNotificationConfigurationRequestFilterSensitiveLog=ZRe;var eNe=e=>({...e});p.PutBucketOwnershipControlsRequestFilterSensitiveLog=eNe;var tNe=e=>({...e});p.PutBucketPolicyRequestFilterSensitiveLog=tNe;var nNe=e=>({...e,...e.ReplicationConfiguration&&{ReplicationConfiguration:(0,p.ReplicationConfigurationFilterSensitiveLog)(e.ReplicationConfiguration)}});p.PutBucketReplicationRequestFilterSensitiveLog=nNe;var sNe=e=>({...e});p.RequestPaymentConfigurationFilterSensitiveLog=sNe;var rNe=e=>({...e});p.PutBucketRequestPaymentRequestFilterSensitiveLog=rNe;var iNe=e=>({...e});p.TaggingFilterSensitiveLog=iNe;var oNe=e=>({...e});p.PutBucketTaggingRequestFilterSensitiveLog=oNe;var aNe=e=>({...e});p.VersioningConfigurationFilterSensitiveLog=aNe;var cNe=e=>({...e});p.PutBucketVersioningRequestFilterSensitiveLog=cNe;var lNe=e=>({...e});p.WebsiteConfigurationFilterSensitiveLog=lNe;var dNe=e=>({...e});p.PutBucketWebsiteRequestFilterSensitiveLog=dNe;var uNe=e=>({...e,...e.SSEKMSKeyId&&{SSEKMSKeyId:rt.SENSITIVE_STRING},...e.SSEKMSEncryptionContext&&{SSEKMSEncryptionContext:rt.SENSITIVE_STRING}});p.PutObjectOutputFilterSensitiveLog=uNe;var mNe=e=>({...e,...e.SSECustomerKey&&{SSECustomerKey:rt.SENSITIVE_STRING},...e.SSEKMSKeyId&&{SSEKMSKeyId:rt.SENSITIVE_STRING},...e.SSEKMSEncryptionContext&&{SSEKMSEncryptionContext:rt.SENSITIVE_STRING}});p.PutObjectRequestFilterSensitiveLog=mNe;var pNe=e=>({...e});p.PutObjectAclOutputFilterSensitiveLog=pNe;var gNe=e=>({...e});p.PutObjectAclRequestFilterSensitiveLog=gNe;var yNe=e=>({...e});p.PutObjectLegalHoldOutputFilterSensitiveLog=yNe;var _Ne=e=>({...e});p.PutObjectLegalHoldRequestFilterSensitiveLog=_Ne;var fNe=e=>({...e});p.PutObjectLockConfigurationOutputFilterSensitiveLog=fNe;var SNe=e=>({...e});p.PutObjectLockConfigurationRequestFilterSensitiveLog=SNe});var T2=u(dE=>{"use strict";Object.defineProperty(dE,"__esModule",{value:!0});dE.escapeAttribute=void 0;function hNe(e){return e.replace(/&/g,"&").replace(//g,">").replace(/"/g,""")}dE.escapeAttribute=hNe});var j2=u(uE=>{"use strict";Object.defineProperty(uE,"__esModule",{value:!0});uE.escapeElement=void 0;function wNe(e){return e.replace(/&/g,"&").replace(/"/g,""").replace(/'/g,"'").replace(//g,">").replace(/\r/g," ").replace(/\n/g," ").replace(/\u0085/g,"…").replace(/\u2028/,"
")}uE.escapeElement=wNe});var ak=u(mE=>{"use strict";Object.defineProperty(mE,"__esModule",{value:!0});mE.XmlText=void 0;var ENe=j2(),ok=class{constructor(n){this.value=n}toString(){return(0,ENe.escapeElement)(""+this.value)}};mE.XmlText=ok});var M2=u(pE=>{"use strict";Object.defineProperty(pE,"__esModule",{value:!0});pE.XmlNode=void 0;var CNe=T2(),vNe=ak(),Fd=class{constructor(n,t=[]){this.name=n,this.children=t,this.attributes={}}static of(n,t,s){let r=new Fd(n);return t!==void 0&&r.addChildNode(new vNe.XmlText(t)),s!==void 0&&r.withName(s),r}withName(n){return this.name=n,this}addAttribute(n,t){return this.attributes[n]=t,this}addChildNode(n){return this.children.push(n),this}removeAttribute(n){return delete this.attributes[n],this}toString(){let n=Boolean(this.children.length),t=`<${this.name}`,s=this.attributes;for(let r of Object.keys(s)){let i=s[r];typeof i<"u"&&i!==null&&(t+=` ${r}="${(0,CNe.escapeAttribute)(""+i)}"`)}return t+=n?`>${this.children.map(r=>r.toString()).join("")}`:"/>"}};pE.XmlNode=Fd});var B2=u(gE=>{"use strict";Object.defineProperty(gE,"__esModule",{value:!0});var O2=X();O2.__exportStar(M2(),gE);O2.__exportStar(ak(),gE)});var Zn=u(O=>{"use strict";Object.defineProperty(O,"__esModule",{value:!0});O.WriteGetObjectResponseRequestFilterSensitiveLog=O.UploadPartCopyRequestFilterSensitiveLog=O.UploadPartCopyOutputFilterSensitiveLog=O.CopyPartResultFilterSensitiveLog=O.UploadPartRequestFilterSensitiveLog=O.UploadPartOutputFilterSensitiveLog=O.SelectObjectContentRequestFilterSensitiveLog=O.ScanRangeFilterSensitiveLog=O.RequestProgressFilterSensitiveLog=O.SelectObjectContentOutputFilterSensitiveLog=O.SelectObjectContentEventStreamFilterSensitiveLog=O.StatsEventFilterSensitiveLog=O.StatsFilterSensitiveLog=O.RecordsEventFilterSensitiveLog=O.ProgressEventFilterSensitiveLog=O.ProgressFilterSensitiveLog=O.EndEventFilterSensitiveLog=O.ContinuationEventFilterSensitiveLog=O.RestoreObjectRequestFilterSensitiveLog=O.RestoreRequestFilterSensitiveLog=O.SelectParametersFilterSensitiveLog=O.OutputSerializationFilterSensitiveLog=O.JSONOutputFilterSensitiveLog=O.CSVOutputFilterSensitiveLog=O.InputSerializationFilterSensitiveLog=O.ParquetInputFilterSensitiveLog=O.JSONInputFilterSensitiveLog=O.CSVInputFilterSensitiveLog=O.OutputLocationFilterSensitiveLog=O.S3LocationFilterSensitiveLog=O.MetadataEntryFilterSensitiveLog=O.EncryptionFilterSensitiveLog=O.GlacierJobParametersFilterSensitiveLog=O.RestoreObjectOutputFilterSensitiveLog=O.PutPublicAccessBlockRequestFilterSensitiveLog=O.PutObjectTaggingRequestFilterSensitiveLog=O.PutObjectTaggingOutputFilterSensitiveLog=O.PutObjectRetentionRequestFilterSensitiveLog=O.PutObjectRetentionOutputFilterSensitiveLog=O.SelectObjectContentEventStream=O.RestoreRequestType=O.QuoteFields=O.JSONType=O.FileHeaderInfo=O.CompressionType=O.ExpressionType=O.Tier=O.ObjectAlreadyInActiveTierError=void 0;var Zr=E(),PNe=xd(),Dd=class extends PNe.S3ServiceException{constructor(n){super({name:"ObjectAlreadyInActiveTierError",$fault:"client",...n}),this.name="ObjectAlreadyInActiveTierError",this.$fault="client",Object.setPrototypeOf(this,Dd.prototype)}};O.ObjectAlreadyInActiveTierError=Dd;var ANe;(function(e){e.Bulk="Bulk",e.Expedited="Expedited",e.Standard="Standard"})(ANe=O.Tier||(O.Tier={}));var xNe;(function(e){e.SQL="SQL"})(xNe=O.ExpressionType||(O.ExpressionType={}));var bNe;(function(e){e.BZIP2="BZIP2",e.GZIP="GZIP",e.NONE="NONE"})(bNe=O.CompressionType||(O.CompressionType={}));var INe;(function(e){e.IGNORE="IGNORE",e.NONE="NONE",e.USE="USE"})(INe=O.FileHeaderInfo||(O.FileHeaderInfo={}));var kNe;(function(e){e.DOCUMENT="DOCUMENT",e.LINES="LINES"})(kNe=O.JSONType||(O.JSONType={}));var RNe;(function(e){e.ALWAYS="ALWAYS",e.ASNEEDED="ASNEEDED"})(RNe=O.QuoteFields||(O.QuoteFields={}));var NNe;(function(e){e.SELECT="SELECT"})(NNe=O.RestoreRequestType||(O.RestoreRequestType={}));var zNe;(function(e){e.visit=(n,t)=>n.Records!==void 0?t.Records(n.Records):n.Stats!==void 0?t.Stats(n.Stats):n.Progress!==void 0?t.Progress(n.Progress):n.Cont!==void 0?t.Cont(n.Cont):n.End!==void 0?t.End(n.End):t._(n.$unknown[0],n.$unknown[1])})(zNe=O.SelectObjectContentEventStream||(O.SelectObjectContentEventStream={}));var qNe=e=>({...e});O.PutObjectRetentionOutputFilterSensitiveLog=qNe;var LNe=e=>({...e});O.PutObjectRetentionRequestFilterSensitiveLog=LNe;var FNe=e=>({...e});O.PutObjectTaggingOutputFilterSensitiveLog=FNe;var DNe=e=>({...e});O.PutObjectTaggingRequestFilterSensitiveLog=DNe;var TNe=e=>({...e});O.PutPublicAccessBlockRequestFilterSensitiveLog=TNe;var jNe=e=>({...e});O.RestoreObjectOutputFilterSensitiveLog=jNe;var MNe=e=>({...e});O.GlacierJobParametersFilterSensitiveLog=MNe;var ONe=e=>({...e,...e.KMSKeyId&&{KMSKeyId:Zr.SENSITIVE_STRING}});O.EncryptionFilterSensitiveLog=ONe;var BNe=e=>({...e});O.MetadataEntryFilterSensitiveLog=BNe;var GNe=e=>({...e,...e.Encryption&&{Encryption:(0,O.EncryptionFilterSensitiveLog)(e.Encryption)}});O.S3LocationFilterSensitiveLog=GNe;var UNe=e=>({...e,...e.S3&&{S3:(0,O.S3LocationFilterSensitiveLog)(e.S3)}});O.OutputLocationFilterSensitiveLog=UNe;var XNe=e=>({...e});O.CSVInputFilterSensitiveLog=XNe;var $Ne=e=>({...e});O.JSONInputFilterSensitiveLog=$Ne;var HNe=e=>({...e});O.ParquetInputFilterSensitiveLog=HNe;var VNe=e=>({...e});O.InputSerializationFilterSensitiveLog=VNe;var WNe=e=>({...e});O.CSVOutputFilterSensitiveLog=WNe;var KNe=e=>({...e});O.JSONOutputFilterSensitiveLog=KNe;var QNe=e=>({...e});O.OutputSerializationFilterSensitiveLog=QNe;var JNe=e=>({...e});O.SelectParametersFilterSensitiveLog=JNe;var YNe=e=>({...e,...e.OutputLocation&&{OutputLocation:(0,O.OutputLocationFilterSensitiveLog)(e.OutputLocation)}});O.RestoreRequestFilterSensitiveLog=YNe;var ZNe=e=>({...e,...e.RestoreRequest&&{RestoreRequest:(0,O.RestoreRequestFilterSensitiveLog)(e.RestoreRequest)}});O.RestoreObjectRequestFilterSensitiveLog=ZNe;var eze=e=>({...e});O.ContinuationEventFilterSensitiveLog=eze;var tze=e=>({...e});O.EndEventFilterSensitiveLog=tze;var nze=e=>({...e});O.ProgressFilterSensitiveLog=nze;var sze=e=>({...e});O.ProgressEventFilterSensitiveLog=sze;var rze=e=>({...e});O.RecordsEventFilterSensitiveLog=rze;var ize=e=>({...e});O.StatsFilterSensitiveLog=ize;var oze=e=>({...e});O.StatsEventFilterSensitiveLog=oze;var aze=e=>{if(e.Records!==void 0)return{Records:(0,O.RecordsEventFilterSensitiveLog)(e.Records)};if(e.Stats!==void 0)return{Stats:(0,O.StatsEventFilterSensitiveLog)(e.Stats)};if(e.Progress!==void 0)return{Progress:(0,O.ProgressEventFilterSensitiveLog)(e.Progress)};if(e.Cont!==void 0)return{Cont:(0,O.ContinuationEventFilterSensitiveLog)(e.Cont)};if(e.End!==void 0)return{End:(0,O.EndEventFilterSensitiveLog)(e.End)};if(e.$unknown!==void 0)return{[e.$unknown[0]]:"UNKNOWN"}};O.SelectObjectContentEventStreamFilterSensitiveLog=aze;var cze=e=>({...e,...e.Payload&&{Payload:"STREAMING_CONTENT"}});O.SelectObjectContentOutputFilterSensitiveLog=cze;var lze=e=>({...e});O.RequestProgressFilterSensitiveLog=lze;var dze=e=>({...e});O.ScanRangeFilterSensitiveLog=dze;var uze=e=>({...e,...e.SSECustomerKey&&{SSECustomerKey:Zr.SENSITIVE_STRING}});O.SelectObjectContentRequestFilterSensitiveLog=uze;var mze=e=>({...e,...e.SSEKMSKeyId&&{SSEKMSKeyId:Zr.SENSITIVE_STRING}});O.UploadPartOutputFilterSensitiveLog=mze;var pze=e=>({...e,...e.SSECustomerKey&&{SSECustomerKey:Zr.SENSITIVE_STRING}});O.UploadPartRequestFilterSensitiveLog=pze;var gze=e=>({...e});O.CopyPartResultFilterSensitiveLog=gze;var yze=e=>({...e,...e.SSEKMSKeyId&&{SSEKMSKeyId:Zr.SENSITIVE_STRING}});O.UploadPartCopyOutputFilterSensitiveLog=yze;var _ze=e=>({...e,...e.SSECustomerKey&&{SSECustomerKey:Zr.SENSITIVE_STRING},...e.CopySourceSSECustomerKey&&{CopySourceSSECustomerKey:Zr.SENSITIVE_STRING}});O.UploadPartCopyRequestFilterSensitiveLog=_ze;var fze=e=>({...e,...e.SSEKMSKeyId&&{SSEKMSKeyId:Zr.SENSITIVE_STRING}});O.WriteGetObjectResponseRequestFilterSensitiveLog=fze});var W=u(y=>{"use strict";Object.defineProperty(y,"__esModule",{value:!0});y.serializeAws_restXmlGetObjectTorrentCommand=y.serializeAws_restXmlGetObjectTaggingCommand=y.serializeAws_restXmlGetObjectRetentionCommand=y.serializeAws_restXmlGetObjectLockConfigurationCommand=y.serializeAws_restXmlGetObjectLegalHoldCommand=y.serializeAws_restXmlGetObjectAttributesCommand=y.serializeAws_restXmlGetObjectAclCommand=y.serializeAws_restXmlGetObjectCommand=y.serializeAws_restXmlGetBucketWebsiteCommand=y.serializeAws_restXmlGetBucketVersioningCommand=y.serializeAws_restXmlGetBucketTaggingCommand=y.serializeAws_restXmlGetBucketRequestPaymentCommand=y.serializeAws_restXmlGetBucketReplicationCommand=y.serializeAws_restXmlGetBucketPolicyStatusCommand=y.serializeAws_restXmlGetBucketPolicyCommand=y.serializeAws_restXmlGetBucketOwnershipControlsCommand=y.serializeAws_restXmlGetBucketNotificationConfigurationCommand=y.serializeAws_restXmlGetBucketMetricsConfigurationCommand=y.serializeAws_restXmlGetBucketLoggingCommand=y.serializeAws_restXmlGetBucketLocationCommand=y.serializeAws_restXmlGetBucketLifecycleConfigurationCommand=y.serializeAws_restXmlGetBucketInventoryConfigurationCommand=y.serializeAws_restXmlGetBucketIntelligentTieringConfigurationCommand=y.serializeAws_restXmlGetBucketEncryptionCommand=y.serializeAws_restXmlGetBucketCorsCommand=y.serializeAws_restXmlGetBucketAnalyticsConfigurationCommand=y.serializeAws_restXmlGetBucketAclCommand=y.serializeAws_restXmlGetBucketAccelerateConfigurationCommand=y.serializeAws_restXmlDeletePublicAccessBlockCommand=y.serializeAws_restXmlDeleteObjectTaggingCommand=y.serializeAws_restXmlDeleteObjectsCommand=y.serializeAws_restXmlDeleteObjectCommand=y.serializeAws_restXmlDeleteBucketWebsiteCommand=y.serializeAws_restXmlDeleteBucketTaggingCommand=y.serializeAws_restXmlDeleteBucketReplicationCommand=y.serializeAws_restXmlDeleteBucketPolicyCommand=y.serializeAws_restXmlDeleteBucketOwnershipControlsCommand=y.serializeAws_restXmlDeleteBucketMetricsConfigurationCommand=y.serializeAws_restXmlDeleteBucketLifecycleCommand=y.serializeAws_restXmlDeleteBucketInventoryConfigurationCommand=y.serializeAws_restXmlDeleteBucketIntelligentTieringConfigurationCommand=y.serializeAws_restXmlDeleteBucketEncryptionCommand=y.serializeAws_restXmlDeleteBucketCorsCommand=y.serializeAws_restXmlDeleteBucketAnalyticsConfigurationCommand=y.serializeAws_restXmlDeleteBucketCommand=y.serializeAws_restXmlCreateMultipartUploadCommand=y.serializeAws_restXmlCreateBucketCommand=y.serializeAws_restXmlCopyObjectCommand=y.serializeAws_restXmlCompleteMultipartUploadCommand=y.serializeAws_restXmlAbortMultipartUploadCommand=void 0;y.deserializeAws_restXmlDeleteBucketAnalyticsConfigurationCommand=y.deserializeAws_restXmlDeleteBucketCommand=y.deserializeAws_restXmlCreateMultipartUploadCommand=y.deserializeAws_restXmlCreateBucketCommand=y.deserializeAws_restXmlCopyObjectCommand=y.deserializeAws_restXmlCompleteMultipartUploadCommand=y.deserializeAws_restXmlAbortMultipartUploadCommand=y.serializeAws_restXmlWriteGetObjectResponseCommand=y.serializeAws_restXmlUploadPartCopyCommand=y.serializeAws_restXmlUploadPartCommand=y.serializeAws_restXmlSelectObjectContentCommand=y.serializeAws_restXmlRestoreObjectCommand=y.serializeAws_restXmlPutPublicAccessBlockCommand=y.serializeAws_restXmlPutObjectTaggingCommand=y.serializeAws_restXmlPutObjectRetentionCommand=y.serializeAws_restXmlPutObjectLockConfigurationCommand=y.serializeAws_restXmlPutObjectLegalHoldCommand=y.serializeAws_restXmlPutObjectAclCommand=y.serializeAws_restXmlPutObjectCommand=y.serializeAws_restXmlPutBucketWebsiteCommand=y.serializeAws_restXmlPutBucketVersioningCommand=y.serializeAws_restXmlPutBucketTaggingCommand=y.serializeAws_restXmlPutBucketRequestPaymentCommand=y.serializeAws_restXmlPutBucketReplicationCommand=y.serializeAws_restXmlPutBucketPolicyCommand=y.serializeAws_restXmlPutBucketOwnershipControlsCommand=y.serializeAws_restXmlPutBucketNotificationConfigurationCommand=y.serializeAws_restXmlPutBucketMetricsConfigurationCommand=y.serializeAws_restXmlPutBucketLoggingCommand=y.serializeAws_restXmlPutBucketLifecycleConfigurationCommand=y.serializeAws_restXmlPutBucketInventoryConfigurationCommand=y.serializeAws_restXmlPutBucketIntelligentTieringConfigurationCommand=y.serializeAws_restXmlPutBucketEncryptionCommand=y.serializeAws_restXmlPutBucketCorsCommand=y.serializeAws_restXmlPutBucketAnalyticsConfigurationCommand=y.serializeAws_restXmlPutBucketAclCommand=y.serializeAws_restXmlPutBucketAccelerateConfigurationCommand=y.serializeAws_restXmlListPartsCommand=y.serializeAws_restXmlListObjectVersionsCommand=y.serializeAws_restXmlListObjectsV2Command=y.serializeAws_restXmlListObjectsCommand=y.serializeAws_restXmlListMultipartUploadsCommand=y.serializeAws_restXmlListBucketsCommand=y.serializeAws_restXmlListBucketMetricsConfigurationsCommand=y.serializeAws_restXmlListBucketInventoryConfigurationsCommand=y.serializeAws_restXmlListBucketIntelligentTieringConfigurationsCommand=y.serializeAws_restXmlListBucketAnalyticsConfigurationsCommand=y.serializeAws_restXmlHeadObjectCommand=y.serializeAws_restXmlHeadBucketCommand=y.serializeAws_restXmlGetPublicAccessBlockCommand=void 0;y.deserializeAws_restXmlListBucketMetricsConfigurationsCommand=y.deserializeAws_restXmlListBucketInventoryConfigurationsCommand=y.deserializeAws_restXmlListBucketIntelligentTieringConfigurationsCommand=y.deserializeAws_restXmlListBucketAnalyticsConfigurationsCommand=y.deserializeAws_restXmlHeadObjectCommand=y.deserializeAws_restXmlHeadBucketCommand=y.deserializeAws_restXmlGetPublicAccessBlockCommand=y.deserializeAws_restXmlGetObjectTorrentCommand=y.deserializeAws_restXmlGetObjectTaggingCommand=y.deserializeAws_restXmlGetObjectRetentionCommand=y.deserializeAws_restXmlGetObjectLockConfigurationCommand=y.deserializeAws_restXmlGetObjectLegalHoldCommand=y.deserializeAws_restXmlGetObjectAttributesCommand=y.deserializeAws_restXmlGetObjectAclCommand=y.deserializeAws_restXmlGetObjectCommand=y.deserializeAws_restXmlGetBucketWebsiteCommand=y.deserializeAws_restXmlGetBucketVersioningCommand=y.deserializeAws_restXmlGetBucketTaggingCommand=y.deserializeAws_restXmlGetBucketRequestPaymentCommand=y.deserializeAws_restXmlGetBucketReplicationCommand=y.deserializeAws_restXmlGetBucketPolicyStatusCommand=y.deserializeAws_restXmlGetBucketPolicyCommand=y.deserializeAws_restXmlGetBucketOwnershipControlsCommand=y.deserializeAws_restXmlGetBucketNotificationConfigurationCommand=y.deserializeAws_restXmlGetBucketMetricsConfigurationCommand=y.deserializeAws_restXmlGetBucketLoggingCommand=y.deserializeAws_restXmlGetBucketLocationCommand=y.deserializeAws_restXmlGetBucketLifecycleConfigurationCommand=y.deserializeAws_restXmlGetBucketInventoryConfigurationCommand=y.deserializeAws_restXmlGetBucketIntelligentTieringConfigurationCommand=y.deserializeAws_restXmlGetBucketEncryptionCommand=y.deserializeAws_restXmlGetBucketCorsCommand=y.deserializeAws_restXmlGetBucketAnalyticsConfigurationCommand=y.deserializeAws_restXmlGetBucketAclCommand=y.deserializeAws_restXmlGetBucketAccelerateConfigurationCommand=y.deserializeAws_restXmlDeletePublicAccessBlockCommand=y.deserializeAws_restXmlDeleteObjectTaggingCommand=y.deserializeAws_restXmlDeleteObjectsCommand=y.deserializeAws_restXmlDeleteObjectCommand=y.deserializeAws_restXmlDeleteBucketWebsiteCommand=y.deserializeAws_restXmlDeleteBucketTaggingCommand=y.deserializeAws_restXmlDeleteBucketReplicationCommand=y.deserializeAws_restXmlDeleteBucketPolicyCommand=y.deserializeAws_restXmlDeleteBucketOwnershipControlsCommand=y.deserializeAws_restXmlDeleteBucketMetricsConfigurationCommand=y.deserializeAws_restXmlDeleteBucketLifecycleCommand=y.deserializeAws_restXmlDeleteBucketInventoryConfigurationCommand=y.deserializeAws_restXmlDeleteBucketIntelligentTieringConfigurationCommand=y.deserializeAws_restXmlDeleteBucketEncryptionCommand=y.deserializeAws_restXmlDeleteBucketCorsCommand=void 0;y.deserializeAws_restXmlWriteGetObjectResponseCommand=y.deserializeAws_restXmlUploadPartCopyCommand=y.deserializeAws_restXmlUploadPartCommand=y.deserializeAws_restXmlSelectObjectContentCommand=y.deserializeAws_restXmlRestoreObjectCommand=y.deserializeAws_restXmlPutPublicAccessBlockCommand=y.deserializeAws_restXmlPutObjectTaggingCommand=y.deserializeAws_restXmlPutObjectRetentionCommand=y.deserializeAws_restXmlPutObjectLockConfigurationCommand=y.deserializeAws_restXmlPutObjectLegalHoldCommand=y.deserializeAws_restXmlPutObjectAclCommand=y.deserializeAws_restXmlPutObjectCommand=y.deserializeAws_restXmlPutBucketWebsiteCommand=y.deserializeAws_restXmlPutBucketVersioningCommand=y.deserializeAws_restXmlPutBucketTaggingCommand=y.deserializeAws_restXmlPutBucketRequestPaymentCommand=y.deserializeAws_restXmlPutBucketReplicationCommand=y.deserializeAws_restXmlPutBucketPolicyCommand=y.deserializeAws_restXmlPutBucketOwnershipControlsCommand=y.deserializeAws_restXmlPutBucketNotificationConfigurationCommand=y.deserializeAws_restXmlPutBucketMetricsConfigurationCommand=y.deserializeAws_restXmlPutBucketLoggingCommand=y.deserializeAws_restXmlPutBucketLifecycleConfigurationCommand=y.deserializeAws_restXmlPutBucketInventoryConfigurationCommand=y.deserializeAws_restXmlPutBucketIntelligentTieringConfigurationCommand=y.deserializeAws_restXmlPutBucketEncryptionCommand=y.deserializeAws_restXmlPutBucketCorsCommand=y.deserializeAws_restXmlPutBucketAnalyticsConfigurationCommand=y.deserializeAws_restXmlPutBucketAclCommand=y.deserializeAws_restXmlPutBucketAccelerateConfigurationCommand=y.deserializeAws_restXmlListPartsCommand=y.deserializeAws_restXmlListObjectVersionsCommand=y.deserializeAws_restXmlListObjectsV2Command=y.deserializeAws_restXmlListObjectsCommand=y.deserializeAws_restXmlListMultipartUploadsCommand=y.deserializeAws_restXmlListBucketsCommand=void 0;var V=gt(),m=E(),S=B2(),Sze=eb(),Xn=ee(),hze=Zn(),K=xd(),wze=async(e,n)=>{let{hostname:t,protocol:s="https",port:r,path:i}=await n.endpoint(),a=w({},M,{"x-amz-request-payer":e.RequestPayer,"x-amz-expected-bucket-owner":e.ExpectedBucketOwner}),o=`${i?.endsWith("/")?i.slice(0,-1):i||""}/{Key+}`;o=(0,m.resolvedPath)(o,e,"Bucket",()=>e.Bucket,"{Bucket}",!1),o=(0,m.resolvedPath)(o,e,"Key",()=>e.Key,"{Key+}",!0);let c=w({"x-id":[,"AbortMultipartUpload"],uploadId:[,(0,m.expectNonNull)(e.UploadId,"UploadId")]}),l;return new V.HttpRequest({protocol:s,hostname:t,port:r,method:"DELETE",headers:a,path:o,query:c,body:l})};y.serializeAws_restXmlAbortMultipartUploadCommand=wze;var Eze=async(e,n)=>{let{hostname:t,protocol:s="https",port:r,path:i}=await n.endpoint(),a=w({},M,{"content-type":"application/xml","x-amz-checksum-crc32":e.ChecksumCRC32,"x-amz-checksum-crc32c":e.ChecksumCRC32C,"x-amz-checksum-sha1":e.ChecksumSHA1,"x-amz-checksum-sha256":e.ChecksumSHA256,"x-amz-request-payer":e.RequestPayer,"x-amz-expected-bucket-owner":e.ExpectedBucketOwner,"x-amz-server-side-encryption-customer-algorithm":e.SSECustomerAlgorithm,"x-amz-server-side-encryption-customer-key":e.SSECustomerKey,"x-amz-server-side-encryption-customer-key-md5":e.SSECustomerKeyMD5}),o=`${i?.endsWith("/")?i.slice(0,-1):i||""}/{Key+}`;o=(0,m.resolvedPath)(o,e,"Bucket",()=>e.Bucket,"{Bucket}",!1),o=(0,m.resolvedPath)(o,e,"Key",()=>e.Key,"{Key+}",!0);let c=w({"x-id":[,"CompleteMultipartUpload"],uploadId:[,(0,m.expectNonNull)(e.UploadId,"UploadId")]}),l;e.MultipartUpload!==void 0&&(l=H2(e.MultipartUpload,n));let d;return e.MultipartUpload!==void 0&&(d=H2(e.MultipartUpload,n),d=d.withName("CompleteMultipartUpload"),l='',d.addAttribute("xmlns","http://s3.amazonaws.com/doc/2006-03-01/"),l+=d.toString()),new V.HttpRequest({protocol:s,hostname:t,port:r,method:"POST",headers:a,path:o,query:c,body:l})};y.serializeAws_restXmlCompleteMultipartUploadCommand=Eze;var Cze=async(e,n)=>{let{hostname:t,protocol:s="https",port:r,path:i}=await n.endpoint(),a=w({},M,{"x-amz-acl":e.ACL,"cache-control":e.CacheControl,"x-amz-checksum-algorithm":e.ChecksumAlgorithm,"content-disposition":e.ContentDisposition,"content-encoding":e.ContentEncoding,"content-language":e.ContentLanguage,"content-type":e.ContentType,"x-amz-copy-source":e.CopySource,"x-amz-copy-source-if-match":e.CopySourceIfMatch,"x-amz-copy-source-if-modified-since":[()=>M(e.CopySourceIfModifiedSince),()=>(0,m.dateToUtcString)(e.CopySourceIfModifiedSince).toString()],"x-amz-copy-source-if-none-match":e.CopySourceIfNoneMatch,"x-amz-copy-source-if-unmodified-since":[()=>M(e.CopySourceIfUnmodifiedSince),()=>(0,m.dateToUtcString)(e.CopySourceIfUnmodifiedSince).toString()],expires:[()=>M(e.Expires),()=>(0,m.dateToUtcString)(e.Expires).toString()],"x-amz-grant-full-control":e.GrantFullControl,"x-amz-grant-read":e.GrantRead,"x-amz-grant-read-acp":e.GrantReadACP,"x-amz-grant-write-acp":e.GrantWriteACP,"x-amz-metadata-directive":e.MetadataDirective,"x-amz-tagging-directive":e.TaggingDirective,"x-amz-server-side-encryption":e.ServerSideEncryption,"x-amz-storage-class":e.StorageClass,"x-amz-website-redirect-location":e.WebsiteRedirectLocation,"x-amz-server-side-encryption-customer-algorithm":e.SSECustomerAlgorithm,"x-amz-server-side-encryption-customer-key":e.SSECustomerKey,"x-amz-server-side-encryption-customer-key-md5":e.SSECustomerKeyMD5,"x-amz-server-side-encryption-aws-kms-key-id":e.SSEKMSKeyId,"x-amz-server-side-encryption-context":e.SSEKMSEncryptionContext,"x-amz-server-side-encryption-bucket-key-enabled":[()=>M(e.BucketKeyEnabled),()=>e.BucketKeyEnabled.toString()],"x-amz-copy-source-server-side-encryption-customer-algorithm":e.CopySourceSSECustomerAlgorithm,"x-amz-copy-source-server-side-encryption-customer-key":e.CopySourceSSECustomerKey,"x-amz-copy-source-server-side-encryption-customer-key-md5":e.CopySourceSSECustomerKeyMD5,"x-amz-request-payer":e.RequestPayer,"x-amz-tagging":e.Tagging,"x-amz-object-lock-mode":e.ObjectLockMode,"x-amz-object-lock-retain-until-date":[()=>M(e.ObjectLockRetainUntilDate),()=>(e.ObjectLockRetainUntilDate.toISOString().split(".")[0]+"Z").toString()],"x-amz-object-lock-legal-hold":e.ObjectLockLegalHoldStatus,"x-amz-expected-bucket-owner":e.ExpectedBucketOwner,"x-amz-source-expected-bucket-owner":e.ExpectedSourceBucketOwner,...e.Metadata!==void 0&&Object.keys(e.Metadata).reduce((d,h)=>(d[`x-amz-meta-${h.toLowerCase()}`]=e.Metadata[h],d),{})}),o=`${i?.endsWith("/")?i.slice(0,-1):i||""}/{Key+}`;o=(0,m.resolvedPath)(o,e,"Bucket",()=>e.Bucket,"{Bucket}",!1),o=(0,m.resolvedPath)(o,e,"Key",()=>e.Key,"{Key+}",!0);let c=w({"x-id":[,"CopyObject"]}),l;return new V.HttpRequest({protocol:s,hostname:t,port:r,method:"PUT",headers:a,path:o,query:c,body:l})};y.serializeAws_restXmlCopyObjectCommand=Cze;var vze=async(e,n)=>{let{hostname:t,protocol:s="https",port:r,path:i}=await n.endpoint(),a=w({},M,{"content-type":"application/xml","x-amz-acl":e.ACL,"x-amz-grant-full-control":e.GrantFullControl,"x-amz-grant-read":e.GrantRead,"x-amz-grant-read-acp":e.GrantReadACP,"x-amz-grant-write":e.GrantWrite,"x-amz-grant-write-acp":e.GrantWriteACP,"x-amz-bucket-object-lock-enabled":[()=>M(e.ObjectLockEnabledForBucket),()=>e.ObjectLockEnabledForBucket.toString()],"x-amz-object-ownership":e.ObjectOwnership}),o=`${i?.endsWith("/")?i.slice(0,-1):i||""}/`;o=(0,m.resolvedPath)(o,e,"Bucket",()=>e.Bucket,"{Bucket}",!1);let c;e.CreateBucketConfiguration!==void 0&&(c=W2(e.CreateBucketConfiguration,n));let l;return e.CreateBucketConfiguration!==void 0&&(l=W2(e.CreateBucketConfiguration,n),c='',l.addAttribute("xmlns","http://s3.amazonaws.com/doc/2006-03-01/"),c+=l.toString()),new V.HttpRequest({protocol:s,hostname:t,port:r,method:"PUT",headers:a,path:o,body:c})};y.serializeAws_restXmlCreateBucketCommand=vze;var Pze=async(e,n)=>{let{hostname:t,protocol:s="https",port:r,path:i}=await n.endpoint(),a=w({},M,{"x-amz-acl":e.ACL,"cache-control":e.CacheControl,"content-disposition":e.ContentDisposition,"content-encoding":e.ContentEncoding,"content-language":e.ContentLanguage,"content-type":e.ContentType,expires:[()=>M(e.Expires),()=>(0,m.dateToUtcString)(e.Expires).toString()],"x-amz-grant-full-control":e.GrantFullControl,"x-amz-grant-read":e.GrantRead,"x-amz-grant-read-acp":e.GrantReadACP,"x-amz-grant-write-acp":e.GrantWriteACP,"x-amz-server-side-encryption":e.ServerSideEncryption,"x-amz-storage-class":e.StorageClass,"x-amz-website-redirect-location":e.WebsiteRedirectLocation,"x-amz-server-side-encryption-customer-algorithm":e.SSECustomerAlgorithm,"x-amz-server-side-encryption-customer-key":e.SSECustomerKey,"x-amz-server-side-encryption-customer-key-md5":e.SSECustomerKeyMD5,"x-amz-server-side-encryption-aws-kms-key-id":e.SSEKMSKeyId,"x-amz-server-side-encryption-context":e.SSEKMSEncryptionContext,"x-amz-server-side-encryption-bucket-key-enabled":[()=>M(e.BucketKeyEnabled),()=>e.BucketKeyEnabled.toString()],"x-amz-request-payer":e.RequestPayer,"x-amz-tagging":e.Tagging,"x-amz-object-lock-mode":e.ObjectLockMode,"x-amz-object-lock-retain-until-date":[()=>M(e.ObjectLockRetainUntilDate),()=>(e.ObjectLockRetainUntilDate.toISOString().split(".")[0]+"Z").toString()],"x-amz-object-lock-legal-hold":e.ObjectLockLegalHoldStatus,"x-amz-expected-bucket-owner":e.ExpectedBucketOwner,"x-amz-checksum-algorithm":e.ChecksumAlgorithm,...e.Metadata!==void 0&&Object.keys(e.Metadata).reduce((d,h)=>(d[`x-amz-meta-${h.toLowerCase()}`]=e.Metadata[h],d),{})}),o=`${i?.endsWith("/")?i.slice(0,-1):i||""}/{Key+}`;o=(0,m.resolvedPath)(o,e,"Bucket",()=>e.Bucket,"{Bucket}",!1),o=(0,m.resolvedPath)(o,e,"Key",()=>e.Key,"{Key+}",!0);let c=w({uploads:[,""],"x-id":[,"CreateMultipartUpload"]}),l;return new V.HttpRequest({protocol:s,hostname:t,port:r,method:"POST",headers:a,path:o,query:c,body:l})};y.serializeAws_restXmlCreateMultipartUploadCommand=Pze;var Aze=async(e,n)=>{let{hostname:t,protocol:s="https",port:r,path:i}=await n.endpoint(),a=w({},M,{"x-amz-expected-bucket-owner":e.ExpectedBucketOwner}),o=`${i?.endsWith("/")?i.slice(0,-1):i||""}/`;o=(0,m.resolvedPath)(o,e,"Bucket",()=>e.Bucket,"{Bucket}",!1);let c;return new V.HttpRequest({protocol:s,hostname:t,port:r,method:"DELETE",headers:a,path:o,body:c})};y.serializeAws_restXmlDeleteBucketCommand=Aze;var xze=async(e,n)=>{let{hostname:t,protocol:s="https",port:r,path:i}=await n.endpoint(),a=w({},M,{"x-amz-expected-bucket-owner":e.ExpectedBucketOwner}),o=`${i?.endsWith("/")?i.slice(0,-1):i||""}/`;o=(0,m.resolvedPath)(o,e,"Bucket",()=>e.Bucket,"{Bucket}",!1);let c=w({analytics:[,""],id:[,(0,m.expectNonNull)(e.Id,"Id")]}),l;return new V.HttpRequest({protocol:s,hostname:t,port:r,method:"DELETE",headers:a,path:o,query:c,body:l})};y.serializeAws_restXmlDeleteBucketAnalyticsConfigurationCommand=xze;var bze=async(e,n)=>{let{hostname:t,protocol:s="https",port:r,path:i}=await n.endpoint(),a=w({},M,{"x-amz-expected-bucket-owner":e.ExpectedBucketOwner}),o=`${i?.endsWith("/")?i.slice(0,-1):i||""}/`;o=(0,m.resolvedPath)(o,e,"Bucket",()=>e.Bucket,"{Bucket}",!1);let c=w({cors:[,""]}),l;return new V.HttpRequest({protocol:s,hostname:t,port:r,method:"DELETE",headers:a,path:o,query:c,body:l})};y.serializeAws_restXmlDeleteBucketCorsCommand=bze;var Ize=async(e,n)=>{let{hostname:t,protocol:s="https",port:r,path:i}=await n.endpoint(),a=w({},M,{"x-amz-expected-bucket-owner":e.ExpectedBucketOwner}),o=`${i?.endsWith("/")?i.slice(0,-1):i||""}/`;o=(0,m.resolvedPath)(o,e,"Bucket",()=>e.Bucket,"{Bucket}",!1);let c=w({encryption:[,""]}),l;return new V.HttpRequest({protocol:s,hostname:t,port:r,method:"DELETE",headers:a,path:o,query:c,body:l})};y.serializeAws_restXmlDeleteBucketEncryptionCommand=Ize;var kze=async(e,n)=>{let{hostname:t,protocol:s="https",port:r,path:i}=await n.endpoint(),a={},o=`${i?.endsWith("/")?i.slice(0,-1):i||""}/`;o=(0,m.resolvedPath)(o,e,"Bucket",()=>e.Bucket,"{Bucket}",!1);let c=w({"intelligent-tiering":[,""],id:[,(0,m.expectNonNull)(e.Id,"Id")]}),l;return new V.HttpRequest({protocol:s,hostname:t,port:r,method:"DELETE",headers:a,path:o,query:c,body:l})};y.serializeAws_restXmlDeleteBucketIntelligentTieringConfigurationCommand=kze;var Rze=async(e,n)=>{let{hostname:t,protocol:s="https",port:r,path:i}=await n.endpoint(),a=w({},M,{"x-amz-expected-bucket-owner":e.ExpectedBucketOwner}),o=`${i?.endsWith("/")?i.slice(0,-1):i||""}/`;o=(0,m.resolvedPath)(o,e,"Bucket",()=>e.Bucket,"{Bucket}",!1);let c=w({inventory:[,""],id:[,(0,m.expectNonNull)(e.Id,"Id")]}),l;return new V.HttpRequest({protocol:s,hostname:t,port:r,method:"DELETE",headers:a,path:o,query:c,body:l})};y.serializeAws_restXmlDeleteBucketInventoryConfigurationCommand=Rze;var Nze=async(e,n)=>{let{hostname:t,protocol:s="https",port:r,path:i}=await n.endpoint(),a=w({},M,{"x-amz-expected-bucket-owner":e.ExpectedBucketOwner}),o=`${i?.endsWith("/")?i.slice(0,-1):i||""}/`;o=(0,m.resolvedPath)(o,e,"Bucket",()=>e.Bucket,"{Bucket}",!1);let c=w({lifecycle:[,""]}),l;return new V.HttpRequest({protocol:s,hostname:t,port:r,method:"DELETE",headers:a,path:o,query:c,body:l})};y.serializeAws_restXmlDeleteBucketLifecycleCommand=Nze;var zze=async(e,n)=>{let{hostname:t,protocol:s="https",port:r,path:i}=await n.endpoint(),a=w({},M,{"x-amz-expected-bucket-owner":e.ExpectedBucketOwner}),o=`${i?.endsWith("/")?i.slice(0,-1):i||""}/`;o=(0,m.resolvedPath)(o,e,"Bucket",()=>e.Bucket,"{Bucket}",!1);let c=w({metrics:[,""],id:[,(0,m.expectNonNull)(e.Id,"Id")]}),l;return new V.HttpRequest({protocol:s,hostname:t,port:r,method:"DELETE",headers:a,path:o,query:c,body:l})};y.serializeAws_restXmlDeleteBucketMetricsConfigurationCommand=zze;var qze=async(e,n)=>{let{hostname:t,protocol:s="https",port:r,path:i}=await n.endpoint(),a=w({},M,{"x-amz-expected-bucket-owner":e.ExpectedBucketOwner}),o=`${i?.endsWith("/")?i.slice(0,-1):i||""}/`;o=(0,m.resolvedPath)(o,e,"Bucket",()=>e.Bucket,"{Bucket}",!1);let c=w({ownershipControls:[,""]}),l;return new V.HttpRequest({protocol:s,hostname:t,port:r,method:"DELETE",headers:a,path:o,query:c,body:l})};y.serializeAws_restXmlDeleteBucketOwnershipControlsCommand=qze;var Lze=async(e,n)=>{let{hostname:t,protocol:s="https",port:r,path:i}=await n.endpoint(),a=w({},M,{"x-amz-expected-bucket-owner":e.ExpectedBucketOwner}),o=`${i?.endsWith("/")?i.slice(0,-1):i||""}/`;o=(0,m.resolvedPath)(o,e,"Bucket",()=>e.Bucket,"{Bucket}",!1);let c=w({policy:[,""]}),l;return new V.HttpRequest({protocol:s,hostname:t,port:r,method:"DELETE",headers:a,path:o,query:c,body:l})};y.serializeAws_restXmlDeleteBucketPolicyCommand=Lze;var Fze=async(e,n)=>{let{hostname:t,protocol:s="https",port:r,path:i}=await n.endpoint(),a=w({},M,{"x-amz-expected-bucket-owner":e.ExpectedBucketOwner}),o=`${i?.endsWith("/")?i.slice(0,-1):i||""}/`;o=(0,m.resolvedPath)(o,e,"Bucket",()=>e.Bucket,"{Bucket}",!1);let c=w({replication:[,""]}),l;return new V.HttpRequest({protocol:s,hostname:t,port:r,method:"DELETE",headers:a,path:o,query:c,body:l})};y.serializeAws_restXmlDeleteBucketReplicationCommand=Fze;var Dze=async(e,n)=>{let{hostname:t,protocol:s="https",port:r,path:i}=await n.endpoint(),a=w({},M,{"x-amz-expected-bucket-owner":e.ExpectedBucketOwner}),o=`${i?.endsWith("/")?i.slice(0,-1):i||""}/`;o=(0,m.resolvedPath)(o,e,"Bucket",()=>e.Bucket,"{Bucket}",!1);let c=w({tagging:[,""]}),l;return new V.HttpRequest({protocol:s,hostname:t,port:r,method:"DELETE",headers:a,path:o,query:c,body:l})};y.serializeAws_restXmlDeleteBucketTaggingCommand=Dze;var Tze=async(e,n)=>{let{hostname:t,protocol:s="https",port:r,path:i}=await n.endpoint(),a=w({},M,{"x-amz-expected-bucket-owner":e.ExpectedBucketOwner}),o=`${i?.endsWith("/")?i.slice(0,-1):i||""}/`;o=(0,m.resolvedPath)(o,e,"Bucket",()=>e.Bucket,"{Bucket}",!1);let c=w({website:[,""]}),l;return new V.HttpRequest({protocol:s,hostname:t,port:r,method:"DELETE",headers:a,path:o,query:c,body:l})};y.serializeAws_restXmlDeleteBucketWebsiteCommand=Tze;var jze=async(e,n)=>{let{hostname:t,protocol:s="https",port:r,path:i}=await n.endpoint(),a=w({},M,{"x-amz-mfa":e.MFA,"x-amz-request-payer":e.RequestPayer,"x-amz-bypass-governance-retention":[()=>M(e.BypassGovernanceRetention),()=>e.BypassGovernanceRetention.toString()],"x-amz-expected-bucket-owner":e.ExpectedBucketOwner}),o=`${i?.endsWith("/")?i.slice(0,-1):i||""}/{Key+}`;o=(0,m.resolvedPath)(o,e,"Bucket",()=>e.Bucket,"{Bucket}",!1),o=(0,m.resolvedPath)(o,e,"Key",()=>e.Key,"{Key+}",!0);let c=w({"x-id":[,"DeleteObject"],versionId:[,e.VersionId]}),l;return new V.HttpRequest({protocol:s,hostname:t,port:r,method:"DELETE",headers:a,path:o,query:c,body:l})};y.serializeAws_restXmlDeleteObjectCommand=jze;var Mze=async(e,n)=>{let{hostname:t,protocol:s="https",port:r,path:i}=await n.endpoint(),a=w({},M,{"content-type":"application/xml","x-amz-mfa":e.MFA,"x-amz-request-payer":e.RequestPayer,"x-amz-bypass-governance-retention":[()=>M(e.BypassGovernanceRetention),()=>e.BypassGovernanceRetention.toString()],"x-amz-expected-bucket-owner":e.ExpectedBucketOwner,"x-amz-sdk-checksum-algorithm":e.ChecksumAlgorithm}),o=`${i?.endsWith("/")?i.slice(0,-1):i||""}/`;o=(0,m.resolvedPath)(o,e,"Bucket",()=>e.Bucket,"{Bucket}",!1);let c=w({delete:[,""],"x-id":[,"DeleteObjects"]}),l;e.Delete!==void 0&&(l=K2(e.Delete,n));let d;return e.Delete!==void 0&&(d=K2(e.Delete,n),l='',d.addAttribute("xmlns","http://s3.amazonaws.com/doc/2006-03-01/"),l+=d.toString()),new V.HttpRequest({protocol:s,hostname:t,port:r,method:"POST",headers:a,path:o,query:c,body:l})};y.serializeAws_restXmlDeleteObjectsCommand=Mze;var Oze=async(e,n)=>{let{hostname:t,protocol:s="https",port:r,path:i}=await n.endpoint(),a=w({},M,{"x-amz-expected-bucket-owner":e.ExpectedBucketOwner}),o=`${i?.endsWith("/")?i.slice(0,-1):i||""}/{Key+}`;o=(0,m.resolvedPath)(o,e,"Bucket",()=>e.Bucket,"{Bucket}",!1),o=(0,m.resolvedPath)(o,e,"Key",()=>e.Key,"{Key+}",!0);let c=w({tagging:[,""],versionId:[,e.VersionId]}),l;return new V.HttpRequest({protocol:s,hostname:t,port:r,method:"DELETE",headers:a,path:o,query:c,body:l})};y.serializeAws_restXmlDeleteObjectTaggingCommand=Oze;var Bze=async(e,n)=>{let{hostname:t,protocol:s="https",port:r,path:i}=await n.endpoint(),a=w({},M,{"x-amz-expected-bucket-owner":e.ExpectedBucketOwner}),o=`${i?.endsWith("/")?i.slice(0,-1):i||""}/`;o=(0,m.resolvedPath)(o,e,"Bucket",()=>e.Bucket,"{Bucket}",!1);let c=w({publicAccessBlock:[,""]}),l;return new V.HttpRequest({protocol:s,hostname:t,port:r,method:"DELETE",headers:a,path:o,query:c,body:l})};y.serializeAws_restXmlDeletePublicAccessBlockCommand=Bze;var Gze=async(e,n)=>{let{hostname:t,protocol:s="https",port:r,path:i}=await n.endpoint(),a=w({},M,{"x-amz-expected-bucket-owner":e.ExpectedBucketOwner}),o=`${i?.endsWith("/")?i.slice(0,-1):i||""}/`;o=(0,m.resolvedPath)(o,e,"Bucket",()=>e.Bucket,"{Bucket}",!1);let c=w({accelerate:[,""]}),l;return new V.HttpRequest({protocol:s,hostname:t,port:r,method:"GET",headers:a,path:o,query:c,body:l})};y.serializeAws_restXmlGetBucketAccelerateConfigurationCommand=Gze;var Uze=async(e,n)=>{let{hostname:t,protocol:s="https",port:r,path:i}=await n.endpoint(),a=w({},M,{"x-amz-expected-bucket-owner":e.ExpectedBucketOwner}),o=`${i?.endsWith("/")?i.slice(0,-1):i||""}/`;o=(0,m.resolvedPath)(o,e,"Bucket",()=>e.Bucket,"{Bucket}",!1);let c=w({acl:[,""]}),l;return new V.HttpRequest({protocol:s,hostname:t,port:r,method:"GET",headers:a,path:o,query:c,body:l})};y.serializeAws_restXmlGetBucketAclCommand=Uze;var Xze=async(e,n)=>{let{hostname:t,protocol:s="https",port:r,path:i}=await n.endpoint(),a=w({},M,{"x-amz-expected-bucket-owner":e.ExpectedBucketOwner}),o=`${i?.endsWith("/")?i.slice(0,-1):i||""}/`;o=(0,m.resolvedPath)(o,e,"Bucket",()=>e.Bucket,"{Bucket}",!1);let c=w({analytics:[,""],"x-id":[,"GetBucketAnalyticsConfiguration"],id:[,(0,m.expectNonNull)(e.Id,"Id")]}),l;return new V.HttpRequest({protocol:s,hostname:t,port:r,method:"GET",headers:a,path:o,query:c,body:l})};y.serializeAws_restXmlGetBucketAnalyticsConfigurationCommand=Xze;var $ze=async(e,n)=>{let{hostname:t,protocol:s="https",port:r,path:i}=await n.endpoint(),a=w({},M,{"x-amz-expected-bucket-owner":e.ExpectedBucketOwner}),o=`${i?.endsWith("/")?i.slice(0,-1):i||""}/`;o=(0,m.resolvedPath)(o,e,"Bucket",()=>e.Bucket,"{Bucket}",!1);let c=w({cors:[,""]}),l;return new V.HttpRequest({protocol:s,hostname:t,port:r,method:"GET",headers:a,path:o,query:c,body:l})};y.serializeAws_restXmlGetBucketCorsCommand=$ze;var Hze=async(e,n)=>{let{hostname:t,protocol:s="https",port:r,path:i}=await n.endpoint(),a=w({},M,{"x-amz-expected-bucket-owner":e.ExpectedBucketOwner}),o=`${i?.endsWith("/")?i.slice(0,-1):i||""}/`;o=(0,m.resolvedPath)(o,e,"Bucket",()=>e.Bucket,"{Bucket}",!1);let c=w({encryption:[,""]}),l;return new V.HttpRequest({protocol:s,hostname:t,port:r,method:"GET",headers:a,path:o,query:c,body:l})};y.serializeAws_restXmlGetBucketEncryptionCommand=Hze;var Vze=async(e,n)=>{let{hostname:t,protocol:s="https",port:r,path:i}=await n.endpoint(),a={},o=`${i?.endsWith("/")?i.slice(0,-1):i||""}/`;o=(0,m.resolvedPath)(o,e,"Bucket",()=>e.Bucket,"{Bucket}",!1);let c=w({"intelligent-tiering":[,""],"x-id":[,"GetBucketIntelligentTieringConfiguration"],id:[,(0,m.expectNonNull)(e.Id,"Id")]}),l;return new V.HttpRequest({protocol:s,hostname:t,port:r,method:"GET",headers:a,path:o,query:c,body:l})};y.serializeAws_restXmlGetBucketIntelligentTieringConfigurationCommand=Vze;var Wze=async(e,n)=>{let{hostname:t,protocol:s="https",port:r,path:i}=await n.endpoint(),a=w({},M,{"x-amz-expected-bucket-owner":e.ExpectedBucketOwner}),o=`${i?.endsWith("/")?i.slice(0,-1):i||""}/`;o=(0,m.resolvedPath)(o,e,"Bucket",()=>e.Bucket,"{Bucket}",!1);let c=w({inventory:[,""],"x-id":[,"GetBucketInventoryConfiguration"],id:[,(0,m.expectNonNull)(e.Id,"Id")]}),l;return new V.HttpRequest({protocol:s,hostname:t,port:r,method:"GET",headers:a,path:o,query:c,body:l})};y.serializeAws_restXmlGetBucketInventoryConfigurationCommand=Wze;var Kze=async(e,n)=>{let{hostname:t,protocol:s="https",port:r,path:i}=await n.endpoint(),a=w({},M,{"x-amz-expected-bucket-owner":e.ExpectedBucketOwner}),o=`${i?.endsWith("/")?i.slice(0,-1):i||""}/`;o=(0,m.resolvedPath)(o,e,"Bucket",()=>e.Bucket,"{Bucket}",!1);let c=w({lifecycle:[,""]}),l;return new V.HttpRequest({protocol:s,hostname:t,port:r,method:"GET",headers:a,path:o,query:c,body:l})};y.serializeAws_restXmlGetBucketLifecycleConfigurationCommand=Kze;var Qze=async(e,n)=>{let{hostname:t,protocol:s="https",port:r,path:i}=await n.endpoint(),a=w({},M,{"x-amz-expected-bucket-owner":e.ExpectedBucketOwner}),o=`${i?.endsWith("/")?i.slice(0,-1):i||""}/`;o=(0,m.resolvedPath)(o,e,"Bucket",()=>e.Bucket,"{Bucket}",!1);let c=w({location:[,""]}),l;return new V.HttpRequest({protocol:s,hostname:t,port:r,method:"GET",headers:a,path:o,query:c,body:l})};y.serializeAws_restXmlGetBucketLocationCommand=Qze;var Jze=async(e,n)=>{let{hostname:t,protocol:s="https",port:r,path:i}=await n.endpoint(),a=w({},M,{"x-amz-expected-bucket-owner":e.ExpectedBucketOwner}),o=`${i?.endsWith("/")?i.slice(0,-1):i||""}/`;o=(0,m.resolvedPath)(o,e,"Bucket",()=>e.Bucket,"{Bucket}",!1);let c=w({logging:[,""]}),l;return new V.HttpRequest({protocol:s,hostname:t,port:r,method:"GET",headers:a,path:o,query:c,body:l})};y.serializeAws_restXmlGetBucketLoggingCommand=Jze;var Yze=async(e,n)=>{let{hostname:t,protocol:s="https",port:r,path:i}=await n.endpoint(),a=w({},M,{"x-amz-expected-bucket-owner":e.ExpectedBucketOwner}),o=`${i?.endsWith("/")?i.slice(0,-1):i||""}/`;o=(0,m.resolvedPath)(o,e,"Bucket",()=>e.Bucket,"{Bucket}",!1);let c=w({metrics:[,""],"x-id":[,"GetBucketMetricsConfiguration"],id:[,(0,m.expectNonNull)(e.Id,"Id")]}),l;return new V.HttpRequest({protocol:s,hostname:t,port:r,method:"GET",headers:a,path:o,query:c,body:l})};y.serializeAws_restXmlGetBucketMetricsConfigurationCommand=Yze;var Zze=async(e,n)=>{let{hostname:t,protocol:s="https",port:r,path:i}=await n.endpoint(),a=w({},M,{"x-amz-expected-bucket-owner":e.ExpectedBucketOwner}),o=`${i?.endsWith("/")?i.slice(0,-1):i||""}/`;o=(0,m.resolvedPath)(o,e,"Bucket",()=>e.Bucket,"{Bucket}",!1);let c=w({notification:[,""]}),l;return new V.HttpRequest({protocol:s,hostname:t,port:r,method:"GET",headers:a,path:o,query:c,body:l})};y.serializeAws_restXmlGetBucketNotificationConfigurationCommand=Zze;var eqe=async(e,n)=>{let{hostname:t,protocol:s="https",port:r,path:i}=await n.endpoint(),a=w({},M,{"x-amz-expected-bucket-owner":e.ExpectedBucketOwner}),o=`${i?.endsWith("/")?i.slice(0,-1):i||""}/`;o=(0,m.resolvedPath)(o,e,"Bucket",()=>e.Bucket,"{Bucket}",!1);let c=w({ownershipControls:[,""]}),l;return new V.HttpRequest({protocol:s,hostname:t,port:r,method:"GET",headers:a,path:o,query:c,body:l})};y.serializeAws_restXmlGetBucketOwnershipControlsCommand=eqe;var tqe=async(e,n)=>{let{hostname:t,protocol:s="https",port:r,path:i}=await n.endpoint(),a=w({},M,{"x-amz-expected-bucket-owner":e.ExpectedBucketOwner}),o=`${i?.endsWith("/")?i.slice(0,-1):i||""}/`;o=(0,m.resolvedPath)(o,e,"Bucket",()=>e.Bucket,"{Bucket}",!1);let c=w({policy:[,""]}),l;return new V.HttpRequest({protocol:s,hostname:t,port:r,method:"GET",headers:a,path:o,query:c,body:l})};y.serializeAws_restXmlGetBucketPolicyCommand=tqe;var nqe=async(e,n)=>{let{hostname:t,protocol:s="https",port:r,path:i}=await n.endpoint(),a=w({},M,{"x-amz-expected-bucket-owner":e.ExpectedBucketOwner}),o=`${i?.endsWith("/")?i.slice(0,-1):i||""}/`;o=(0,m.resolvedPath)(o,e,"Bucket",()=>e.Bucket,"{Bucket}",!1);let c=w({policyStatus:[,""]}),l;return new V.HttpRequest({protocol:s,hostname:t,port:r,method:"GET",headers:a,path:o,query:c,body:l})};y.serializeAws_restXmlGetBucketPolicyStatusCommand=nqe;var sqe=async(e,n)=>{let{hostname:t,protocol:s="https",port:r,path:i}=await n.endpoint(),a=w({},M,{"x-amz-expected-bucket-owner":e.ExpectedBucketOwner}),o=`${i?.endsWith("/")?i.slice(0,-1):i||""}/`;o=(0,m.resolvedPath)(o,e,"Bucket",()=>e.Bucket,"{Bucket}",!1);let c=w({replication:[,""]}),l;return new V.HttpRequest({protocol:s,hostname:t,port:r,method:"GET",headers:a,path:o,query:c,body:l})};y.serializeAws_restXmlGetBucketReplicationCommand=sqe;var rqe=async(e,n)=>{let{hostname:t,protocol:s="https",port:r,path:i}=await n.endpoint(),a=w({},M,{"x-amz-expected-bucket-owner":e.ExpectedBucketOwner}),o=`${i?.endsWith("/")?i.slice(0,-1):i||""}/`;o=(0,m.resolvedPath)(o,e,"Bucket",()=>e.Bucket,"{Bucket}",!1);let c=w({requestPayment:[,""]}),l;return new V.HttpRequest({protocol:s,hostname:t,port:r,method:"GET",headers:a,path:o,query:c,body:l})};y.serializeAws_restXmlGetBucketRequestPaymentCommand=rqe;var iqe=async(e,n)=>{let{hostname:t,protocol:s="https",port:r,path:i}=await n.endpoint(),a=w({},M,{"x-amz-expected-bucket-owner":e.ExpectedBucketOwner}),o=`${i?.endsWith("/")?i.slice(0,-1):i||""}/`;o=(0,m.resolvedPath)(o,e,"Bucket",()=>e.Bucket,"{Bucket}",!1);let c=w({tagging:[,""]}),l;return new V.HttpRequest({protocol:s,hostname:t,port:r,method:"GET",headers:a,path:o,query:c,body:l})};y.serializeAws_restXmlGetBucketTaggingCommand=iqe;var oqe=async(e,n)=>{let{hostname:t,protocol:s="https",port:r,path:i}=await n.endpoint(),a=w({},M,{"x-amz-expected-bucket-owner":e.ExpectedBucketOwner}),o=`${i?.endsWith("/")?i.slice(0,-1):i||""}/`;o=(0,m.resolvedPath)(o,e,"Bucket",()=>e.Bucket,"{Bucket}",!1);let c=w({versioning:[,""]}),l;return new V.HttpRequest({protocol:s,hostname:t,port:r,method:"GET",headers:a,path:o,query:c,body:l})};y.serializeAws_restXmlGetBucketVersioningCommand=oqe;var aqe=async(e,n)=>{let{hostname:t,protocol:s="https",port:r,path:i}=await n.endpoint(),a=w({},M,{"x-amz-expected-bucket-owner":e.ExpectedBucketOwner}),o=`${i?.endsWith("/")?i.slice(0,-1):i||""}/`;o=(0,m.resolvedPath)(o,e,"Bucket",()=>e.Bucket,"{Bucket}",!1);let c=w({website:[,""]}),l;return new V.HttpRequest({protocol:s,hostname:t,port:r,method:"GET",headers:a,path:o,query:c,body:l})};y.serializeAws_restXmlGetBucketWebsiteCommand=aqe;var cqe=async(e,n)=>{let{hostname:t,protocol:s="https",port:r,path:i}=await n.endpoint(),a=w({},M,{"if-match":e.IfMatch,"if-modified-since":[()=>M(e.IfModifiedSince),()=>(0,m.dateToUtcString)(e.IfModifiedSince).toString()],"if-none-match":e.IfNoneMatch,"if-unmodified-since":[()=>M(e.IfUnmodifiedSince),()=>(0,m.dateToUtcString)(e.IfUnmodifiedSince).toString()],range:e.Range,"x-amz-server-side-encryption-customer-algorithm":e.SSECustomerAlgorithm,"x-amz-server-side-encryption-customer-key":e.SSECustomerKey,"x-amz-server-side-encryption-customer-key-md5":e.SSECustomerKeyMD5,"x-amz-request-payer":e.RequestPayer,"x-amz-expected-bucket-owner":e.ExpectedBucketOwner,"x-amz-checksum-mode":e.ChecksumMode}),o=`${i?.endsWith("/")?i.slice(0,-1):i||""}/{Key+}`;o=(0,m.resolvedPath)(o,e,"Bucket",()=>e.Bucket,"{Bucket}",!1),o=(0,m.resolvedPath)(o,e,"Key",()=>e.Key,"{Key+}",!0);let c=w({"x-id":[,"GetObject"],"response-cache-control":[,e.ResponseCacheControl],"response-content-disposition":[,e.ResponseContentDisposition],"response-content-encoding":[,e.ResponseContentEncoding],"response-content-language":[,e.ResponseContentLanguage],"response-content-type":[,e.ResponseContentType],"response-expires":[()=>e.ResponseExpires!==void 0,()=>(0,m.dateToUtcString)(e.ResponseExpires).toString()],versionId:[,e.VersionId],partNumber:[()=>e.PartNumber!==void 0,()=>e.PartNumber.toString()]}),l;return new V.HttpRequest({protocol:s,hostname:t,port:r,method:"GET",headers:a,path:o,query:c,body:l})};y.serializeAws_restXmlGetObjectCommand=cqe;var lqe=async(e,n)=>{let{hostname:t,protocol:s="https",port:r,path:i}=await n.endpoint(),a=w({},M,{"x-amz-request-payer":e.RequestPayer,"x-amz-expected-bucket-owner":e.ExpectedBucketOwner}),o=`${i?.endsWith("/")?i.slice(0,-1):i||""}/{Key+}`;o=(0,m.resolvedPath)(o,e,"Bucket",()=>e.Bucket,"{Bucket}",!1),o=(0,m.resolvedPath)(o,e,"Key",()=>e.Key,"{Key+}",!0);let c=w({acl:[,""],versionId:[,e.VersionId]}),l;return new V.HttpRequest({protocol:s,hostname:t,port:r,method:"GET",headers:a,path:o,query:c,body:l})};y.serializeAws_restXmlGetObjectAclCommand=lqe;var dqe=async(e,n)=>{let{hostname:t,protocol:s="https",port:r,path:i}=await n.endpoint(),a=w({},M,{"x-amz-max-parts":[()=>M(e.MaxParts),()=>e.MaxParts.toString()],"x-amz-part-number-marker":e.PartNumberMarker,"x-amz-server-side-encryption-customer-algorithm":e.SSECustomerAlgorithm,"x-amz-server-side-encryption-customer-key":e.SSECustomerKey,"x-amz-server-side-encryption-customer-key-md5":e.SSECustomerKeyMD5,"x-amz-request-payer":e.RequestPayer,"x-amz-expected-bucket-owner":e.ExpectedBucketOwner,"x-amz-object-attributes":[()=>M(e.ObjectAttributes),()=>(e.ObjectAttributes||[]).map(d=>d).join(", ")]}),o=`${i?.endsWith("/")?i.slice(0,-1):i||""}/{Key+}`;o=(0,m.resolvedPath)(o,e,"Bucket",()=>e.Bucket,"{Bucket}",!1),o=(0,m.resolvedPath)(o,e,"Key",()=>e.Key,"{Key+}",!0);let c=w({attributes:[,""],versionId:[,e.VersionId]}),l;return new V.HttpRequest({protocol:s,hostname:t,port:r,method:"GET",headers:a,path:o,query:c,body:l})};y.serializeAws_restXmlGetObjectAttributesCommand=dqe;var uqe=async(e,n)=>{let{hostname:t,protocol:s="https",port:r,path:i}=await n.endpoint(),a=w({},M,{"x-amz-request-payer":e.RequestPayer,"x-amz-expected-bucket-owner":e.ExpectedBucketOwner}),o=`${i?.endsWith("/")?i.slice(0,-1):i||""}/{Key+}`;o=(0,m.resolvedPath)(o,e,"Bucket",()=>e.Bucket,"{Bucket}",!1),o=(0,m.resolvedPath)(o,e,"Key",()=>e.Key,"{Key+}",!0);let c=w({"legal-hold":[,""],versionId:[,e.VersionId]}),l;return new V.HttpRequest({protocol:s,hostname:t,port:r,method:"GET",headers:a,path:o,query:c,body:l})};y.serializeAws_restXmlGetObjectLegalHoldCommand=uqe;var mqe=async(e,n)=>{let{hostname:t,protocol:s="https",port:r,path:i}=await n.endpoint(),a=w({},M,{"x-amz-expected-bucket-owner":e.ExpectedBucketOwner}),o=`${i?.endsWith("/")?i.slice(0,-1):i||""}/`;o=(0,m.resolvedPath)(o,e,"Bucket",()=>e.Bucket,"{Bucket}",!1);let c=w({"object-lock":[,""]}),l;return new V.HttpRequest({protocol:s,hostname:t,port:r,method:"GET",headers:a,path:o,query:c,body:l})};y.serializeAws_restXmlGetObjectLockConfigurationCommand=mqe;var pqe=async(e,n)=>{let{hostname:t,protocol:s="https",port:r,path:i}=await n.endpoint(),a=w({},M,{"x-amz-request-payer":e.RequestPayer,"x-amz-expected-bucket-owner":e.ExpectedBucketOwner}),o=`${i?.endsWith("/")?i.slice(0,-1):i||""}/{Key+}`;o=(0,m.resolvedPath)(o,e,"Bucket",()=>e.Bucket,"{Bucket}",!1),o=(0,m.resolvedPath)(o,e,"Key",()=>e.Key,"{Key+}",!0);let c=w({retention:[,""],versionId:[,e.VersionId]}),l;return new V.HttpRequest({protocol:s,hostname:t,port:r,method:"GET",headers:a,path:o,query:c,body:l})};y.serializeAws_restXmlGetObjectRetentionCommand=pqe;var gqe=async(e,n)=>{let{hostname:t,protocol:s="https",port:r,path:i}=await n.endpoint(),a=w({},M,{"x-amz-expected-bucket-owner":e.ExpectedBucketOwner,"x-amz-request-payer":e.RequestPayer}),o=`${i?.endsWith("/")?i.slice(0,-1):i||""}/{Key+}`;o=(0,m.resolvedPath)(o,e,"Bucket",()=>e.Bucket,"{Bucket}",!1),o=(0,m.resolvedPath)(o,e,"Key",()=>e.Key,"{Key+}",!0);let c=w({tagging:[,""],versionId:[,e.VersionId]}),l;return new V.HttpRequest({protocol:s,hostname:t,port:r,method:"GET",headers:a,path:o,query:c,body:l})};y.serializeAws_restXmlGetObjectTaggingCommand=gqe;var yqe=async(e,n)=>{let{hostname:t,protocol:s="https",port:r,path:i}=await n.endpoint(),a=w({},M,{"x-amz-request-payer":e.RequestPayer,"x-amz-expected-bucket-owner":e.ExpectedBucketOwner}),o=`${i?.endsWith("/")?i.slice(0,-1):i||""}/{Key+}`;o=(0,m.resolvedPath)(o,e,"Bucket",()=>e.Bucket,"{Bucket}",!1),o=(0,m.resolvedPath)(o,e,"Key",()=>e.Key,"{Key+}",!0);let c=w({torrent:[,""]}),l;return new V.HttpRequest({protocol:s,hostname:t,port:r,method:"GET",headers:a,path:o,query:c,body:l})};y.serializeAws_restXmlGetObjectTorrentCommand=yqe;var _qe=async(e,n)=>{let{hostname:t,protocol:s="https",port:r,path:i}=await n.endpoint(),a=w({},M,{"x-amz-expected-bucket-owner":e.ExpectedBucketOwner}),o=`${i?.endsWith("/")?i.slice(0,-1):i||""}/`;o=(0,m.resolvedPath)(o,e,"Bucket",()=>e.Bucket,"{Bucket}",!1);let c=w({publicAccessBlock:[,""]}),l;return new V.HttpRequest({protocol:s,hostname:t,port:r,method:"GET",headers:a,path:o,query:c,body:l})};y.serializeAws_restXmlGetPublicAccessBlockCommand=_qe;var fqe=async(e,n)=>{let{hostname:t,protocol:s="https",port:r,path:i}=await n.endpoint(),a=w({},M,{"x-amz-expected-bucket-owner":e.ExpectedBucketOwner}),o=`${i?.endsWith("/")?i.slice(0,-1):i||""}/`;o=(0,m.resolvedPath)(o,e,"Bucket",()=>e.Bucket,"{Bucket}",!1);let c;return new V.HttpRequest({protocol:s,hostname:t,port:r,method:"HEAD",headers:a,path:o,body:c})};y.serializeAws_restXmlHeadBucketCommand=fqe;var Sqe=async(e,n)=>{let{hostname:t,protocol:s="https",port:r,path:i}=await n.endpoint(),a=w({},M,{"if-match":e.IfMatch,"if-modified-since":[()=>M(e.IfModifiedSince),()=>(0,m.dateToUtcString)(e.IfModifiedSince).toString()],"if-none-match":e.IfNoneMatch,"if-unmodified-since":[()=>M(e.IfUnmodifiedSince),()=>(0,m.dateToUtcString)(e.IfUnmodifiedSince).toString()],range:e.Range,"x-amz-server-side-encryption-customer-algorithm":e.SSECustomerAlgorithm,"x-amz-server-side-encryption-customer-key":e.SSECustomerKey,"x-amz-server-side-encryption-customer-key-md5":e.SSECustomerKeyMD5,"x-amz-request-payer":e.RequestPayer,"x-amz-expected-bucket-owner":e.ExpectedBucketOwner,"x-amz-checksum-mode":e.ChecksumMode}),o=`${i?.endsWith("/")?i.slice(0,-1):i||""}/{Key+}`;o=(0,m.resolvedPath)(o,e,"Bucket",()=>e.Bucket,"{Bucket}",!1),o=(0,m.resolvedPath)(o,e,"Key",()=>e.Key,"{Key+}",!0);let c=w({versionId:[,e.VersionId],partNumber:[()=>e.PartNumber!==void 0,()=>e.PartNumber.toString()]}),l;return new V.HttpRequest({protocol:s,hostname:t,port:r,method:"HEAD",headers:a,path:o,query:c,body:l})};y.serializeAws_restXmlHeadObjectCommand=Sqe;var hqe=async(e,n)=>{let{hostname:t,protocol:s="https",port:r,path:i}=await n.endpoint(),a=w({},M,{"x-amz-expected-bucket-owner":e.ExpectedBucketOwner}),o=`${i?.endsWith("/")?i.slice(0,-1):i||""}/`;o=(0,m.resolvedPath)(o,e,"Bucket",()=>e.Bucket,"{Bucket}",!1);let c=w({analytics:[,""],"x-id":[,"ListBucketAnalyticsConfigurations"],"continuation-token":[,e.ContinuationToken]}),l;return new V.HttpRequest({protocol:s,hostname:t,port:r,method:"GET",headers:a,path:o,query:c,body:l})};y.serializeAws_restXmlListBucketAnalyticsConfigurationsCommand=hqe;var wqe=async(e,n)=>{let{hostname:t,protocol:s="https",port:r,path:i}=await n.endpoint(),a={},o=`${i?.endsWith("/")?i.slice(0,-1):i||""}/`;o=(0,m.resolvedPath)(o,e,"Bucket",()=>e.Bucket,"{Bucket}",!1);let c=w({"intelligent-tiering":[,""],"x-id":[,"ListBucketIntelligentTieringConfigurations"],"continuation-token":[,e.ContinuationToken]}),l;return new V.HttpRequest({protocol:s,hostname:t,port:r,method:"GET",headers:a,path:o,query:c,body:l})};y.serializeAws_restXmlListBucketIntelligentTieringConfigurationsCommand=wqe;var Eqe=async(e,n)=>{let{hostname:t,protocol:s="https",port:r,path:i}=await n.endpoint(),a=w({},M,{"x-amz-expected-bucket-owner":e.ExpectedBucketOwner}),o=`${i?.endsWith("/")?i.slice(0,-1):i||""}/`;o=(0,m.resolvedPath)(o,e,"Bucket",()=>e.Bucket,"{Bucket}",!1);let c=w({inventory:[,""],"x-id":[,"ListBucketInventoryConfigurations"],"continuation-token":[,e.ContinuationToken]}),l;return new V.HttpRequest({protocol:s,hostname:t,port:r,method:"GET",headers:a,path:o,query:c,body:l})};y.serializeAws_restXmlListBucketInventoryConfigurationsCommand=Eqe;var Cqe=async(e,n)=>{let{hostname:t,protocol:s="https",port:r,path:i}=await n.endpoint(),a=w({},M,{"x-amz-expected-bucket-owner":e.ExpectedBucketOwner}),o=`${i?.endsWith("/")?i.slice(0,-1):i||""}/`;o=(0,m.resolvedPath)(o,e,"Bucket",()=>e.Bucket,"{Bucket}",!1);let c=w({metrics:[,""],"x-id":[,"ListBucketMetricsConfigurations"],"continuation-token":[,e.ContinuationToken]}),l;return new V.HttpRequest({protocol:s,hostname:t,port:r,method:"GET",headers:a,path:o,query:c,body:l})};y.serializeAws_restXmlListBucketMetricsConfigurationsCommand=Cqe;var vqe=async(e,n)=>{let{hostname:t,protocol:s="https",port:r,path:i}=await n.endpoint(),a={"content-type":"application/xml"},o=`${i?.endsWith("/")?i.slice(0,-1):i||""}/`,c;return c="",new V.HttpRequest({protocol:s,hostname:t,port:r,method:"GET",headers:a,path:o,body:c})};y.serializeAws_restXmlListBucketsCommand=vqe;var Pqe=async(e,n)=>{let{hostname:t,protocol:s="https",port:r,path:i}=await n.endpoint(),a=w({},M,{"x-amz-expected-bucket-owner":e.ExpectedBucketOwner}),o=`${i?.endsWith("/")?i.slice(0,-1):i||""}/`;o=(0,m.resolvedPath)(o,e,"Bucket",()=>e.Bucket,"{Bucket}",!1);let c=w({uploads:[,""],delimiter:[,e.Delimiter],"encoding-type":[,e.EncodingType],"key-marker":[,e.KeyMarker],"max-uploads":[()=>e.MaxUploads!==void 0,()=>e.MaxUploads.toString()],prefix:[,e.Prefix],"upload-id-marker":[,e.UploadIdMarker]}),l;return new V.HttpRequest({protocol:s,hostname:t,port:r,method:"GET",headers:a,path:o,query:c,body:l})};y.serializeAws_restXmlListMultipartUploadsCommand=Pqe;var Aqe=async(e,n)=>{let{hostname:t,protocol:s="https",port:r,path:i}=await n.endpoint(),a=w({},M,{"x-amz-request-payer":e.RequestPayer,"x-amz-expected-bucket-owner":e.ExpectedBucketOwner}),o=`${i?.endsWith("/")?i.slice(0,-1):i||""}/`;o=(0,m.resolvedPath)(o,e,"Bucket",()=>e.Bucket,"{Bucket}",!1);let c=w({delimiter:[,e.Delimiter],"encoding-type":[,e.EncodingType],marker:[,e.Marker],"max-keys":[()=>e.MaxKeys!==void 0,()=>e.MaxKeys.toString()],prefix:[,e.Prefix]}),l;return new V.HttpRequest({protocol:s,hostname:t,port:r,method:"GET",headers:a,path:o,query:c,body:l})};y.serializeAws_restXmlListObjectsCommand=Aqe;var xqe=async(e,n)=>{let{hostname:t,protocol:s="https",port:r,path:i}=await n.endpoint(),a=w({},M,{"x-amz-request-payer":e.RequestPayer,"x-amz-expected-bucket-owner":e.ExpectedBucketOwner}),o=`${i?.endsWith("/")?i.slice(0,-1):i||""}/`;o=(0,m.resolvedPath)(o,e,"Bucket",()=>e.Bucket,"{Bucket}",!1);let c=w({"list-type":[,"2"],delimiter:[,e.Delimiter],"encoding-type":[,e.EncodingType],"max-keys":[()=>e.MaxKeys!==void 0,()=>e.MaxKeys.toString()],prefix:[,e.Prefix],"continuation-token":[,e.ContinuationToken],"fetch-owner":[()=>e.FetchOwner!==void 0,()=>e.FetchOwner.toString()],"start-after":[,e.StartAfter]}),l;return new V.HttpRequest({protocol:s,hostname:t,port:r,method:"GET",headers:a,path:o,query:c,body:l})};y.serializeAws_restXmlListObjectsV2Command=xqe;var bqe=async(e,n)=>{let{hostname:t,protocol:s="https",port:r,path:i}=await n.endpoint(),a=w({},M,{"x-amz-expected-bucket-owner":e.ExpectedBucketOwner}),o=`${i?.endsWith("/")?i.slice(0,-1):i||""}/`;o=(0,m.resolvedPath)(o,e,"Bucket",()=>e.Bucket,"{Bucket}",!1);let c=w({versions:[,""],delimiter:[,e.Delimiter],"encoding-type":[,e.EncodingType],"key-marker":[,e.KeyMarker],"max-keys":[()=>e.MaxKeys!==void 0,()=>e.MaxKeys.toString()],prefix:[,e.Prefix],"version-id-marker":[,e.VersionIdMarker]}),l;return new V.HttpRequest({protocol:s,hostname:t,port:r,method:"GET",headers:a,path:o,query:c,body:l})};y.serializeAws_restXmlListObjectVersionsCommand=bqe;var Iqe=async(e,n)=>{let{hostname:t,protocol:s="https",port:r,path:i}=await n.endpoint(),a=w({},M,{"x-amz-request-payer":e.RequestPayer,"x-amz-expected-bucket-owner":e.ExpectedBucketOwner,"x-amz-server-side-encryption-customer-algorithm":e.SSECustomerAlgorithm,"x-amz-server-side-encryption-customer-key":e.SSECustomerKey,"x-amz-server-side-encryption-customer-key-md5":e.SSECustomerKeyMD5}),o=`${i?.endsWith("/")?i.slice(0,-1):i||""}/{Key+}`;o=(0,m.resolvedPath)(o,e,"Bucket",()=>e.Bucket,"{Bucket}",!1),o=(0,m.resolvedPath)(o,e,"Key",()=>e.Key,"{Key+}",!0);let c=w({"x-id":[,"ListParts"],"max-parts":[()=>e.MaxParts!==void 0,()=>e.MaxParts.toString()],"part-number-marker":[,e.PartNumberMarker],uploadId:[,(0,m.expectNonNull)(e.UploadId,"UploadId")]}),l;return new V.HttpRequest({protocol:s,hostname:t,port:r,method:"GET",headers:a,path:o,query:c,body:l})};y.serializeAws_restXmlListPartsCommand=Iqe;var kqe=async(e,n)=>{let{hostname:t,protocol:s="https",port:r,path:i}=await n.endpoint(),a=w({},M,{"content-type":"application/xml","x-amz-expected-bucket-owner":e.ExpectedBucketOwner,"x-amz-sdk-checksum-algorithm":e.ChecksumAlgorithm}),o=`${i?.endsWith("/")?i.slice(0,-1):i||""}/`;o=(0,m.resolvedPath)(o,e,"Bucket",()=>e.Bucket,"{Bucket}",!1);let c=w({accelerate:[,""]}),l;e.AccelerateConfiguration!==void 0&&(l=G2(e.AccelerateConfiguration,n));let d;return e.AccelerateConfiguration!==void 0&&(d=G2(e.AccelerateConfiguration,n),l='',d.addAttribute("xmlns","http://s3.amazonaws.com/doc/2006-03-01/"),l+=d.toString()),new V.HttpRequest({protocol:s,hostname:t,port:r,method:"PUT",headers:a,path:o,query:c,body:l})};y.serializeAws_restXmlPutBucketAccelerateConfigurationCommand=kqe;var Rqe=async(e,n)=>{let{hostname:t,protocol:s="https",port:r,path:i}=await n.endpoint(),a=w({},M,{"content-type":"application/xml","x-amz-acl":e.ACL,"content-md5":e.ContentMD5,"x-amz-sdk-checksum-algorithm":e.ChecksumAlgorithm,"x-amz-grant-full-control":e.GrantFullControl,"x-amz-grant-read":e.GrantRead,"x-amz-grant-read-acp":e.GrantReadACP,"x-amz-grant-write":e.GrantWrite,"x-amz-grant-write-acp":e.GrantWriteACP,"x-amz-expected-bucket-owner":e.ExpectedBucketOwner}),o=`${i?.endsWith("/")?i.slice(0,-1):i||""}/`;o=(0,m.resolvedPath)(o,e,"Bucket",()=>e.Bucket,"{Bucket}",!1);let c=w({acl:[,""]}),l;e.AccessControlPolicy!==void 0&&(l=yE(e.AccessControlPolicy,n));let d;return e.AccessControlPolicy!==void 0&&(d=yE(e.AccessControlPolicy,n),l='',d.addAttribute("xmlns","http://s3.amazonaws.com/doc/2006-03-01/"),l+=d.toString()),new V.HttpRequest({protocol:s,hostname:t,port:r,method:"PUT",headers:a,path:o,query:c,body:l})};y.serializeAws_restXmlPutBucketAclCommand=Rqe;var Nqe=async(e,n)=>{let{hostname:t,protocol:s="https",port:r,path:i}=await n.endpoint(),a=w({},M,{"content-type":"application/xml","x-amz-expected-bucket-owner":e.ExpectedBucketOwner}),o=`${i?.endsWith("/")?i.slice(0,-1):i||""}/`;o=(0,m.resolvedPath)(o,e,"Bucket",()=>e.Bucket,"{Bucket}",!1);let c=w({analytics:[,""],id:[,(0,m.expectNonNull)(e.Id,"Id")]}),l;e.AnalyticsConfiguration!==void 0&&(l=U2(e.AnalyticsConfiguration,n));let d;return e.AnalyticsConfiguration!==void 0&&(d=U2(e.AnalyticsConfiguration,n),l='',d.addAttribute("xmlns","http://s3.amazonaws.com/doc/2006-03-01/"),l+=d.toString()),new V.HttpRequest({protocol:s,hostname:t,port:r,method:"PUT",headers:a,path:o,query:c,body:l})};y.serializeAws_restXmlPutBucketAnalyticsConfigurationCommand=Nqe;var zqe=async(e,n)=>{let{hostname:t,protocol:s="https",port:r,path:i}=await n.endpoint(),a=w({},M,{"content-type":"application/xml","content-md5":e.ContentMD5,"x-amz-sdk-checksum-algorithm":e.ChecksumAlgorithm,"x-amz-expected-bucket-owner":e.ExpectedBucketOwner}),o=`${i?.endsWith("/")?i.slice(0,-1):i||""}/`;o=(0,m.resolvedPath)(o,e,"Bucket",()=>e.Bucket,"{Bucket}",!1);let c=w({cors:[,""]}),l;e.CORSConfiguration!==void 0&&(l=V2(e.CORSConfiguration,n));let d;return e.CORSConfiguration!==void 0&&(d=V2(e.CORSConfiguration,n),l='',d.addAttribute("xmlns","http://s3.amazonaws.com/doc/2006-03-01/"),l+=d.toString()),new V.HttpRequest({protocol:s,hostname:t,port:r,method:"PUT",headers:a,path:o,query:c,body:l})};y.serializeAws_restXmlPutBucketCorsCommand=zqe;var qqe=async(e,n)=>{let{hostname:t,protocol:s="https",port:r,path:i}=await n.endpoint(),a=w({},M,{"content-type":"application/xml","content-md5":e.ContentMD5,"x-amz-sdk-checksum-algorithm":e.ChecksumAlgorithm,"x-amz-expected-bucket-owner":e.ExpectedBucketOwner}),o=`${i?.endsWith("/")?i.slice(0,-1):i||""}/`;o=(0,m.resolvedPath)(o,e,"Bucket",()=>e.Bucket,"{Bucket}",!1);let c=w({encryption:[,""]}),l;e.ServerSideEncryptionConfiguration!==void 0&&(l=c$(e.ServerSideEncryptionConfiguration,n));let d;return e.ServerSideEncryptionConfiguration!==void 0&&(d=c$(e.ServerSideEncryptionConfiguration,n),l='',d.addAttribute("xmlns","http://s3.amazonaws.com/doc/2006-03-01/"),l+=d.toString()),new V.HttpRequest({protocol:s,hostname:t,port:r,method:"PUT",headers:a,path:o,query:c,body:l})};y.serializeAws_restXmlPutBucketEncryptionCommand=qqe;var Lqe=async(e,n)=>{let{hostname:t,protocol:s="https",port:r,path:i}=await n.endpoint(),a={"content-type":"application/xml"},o=`${i?.endsWith("/")?i.slice(0,-1):i||""}/`;o=(0,m.resolvedPath)(o,e,"Bucket",()=>e.Bucket,"{Bucket}",!1);let c=w({"intelligent-tiering":[,""],id:[,(0,m.expectNonNull)(e.Id,"Id")]}),l;e.IntelligentTieringConfiguration!==void 0&&(l=Q2(e.IntelligentTieringConfiguration,n));let d;return e.IntelligentTieringConfiguration!==void 0&&(d=Q2(e.IntelligentTieringConfiguration,n),l='',d.addAttribute("xmlns","http://s3.amazonaws.com/doc/2006-03-01/"),l+=d.toString()),new V.HttpRequest({protocol:s,hostname:t,port:r,method:"PUT",headers:a,path:o,query:c,body:l})};y.serializeAws_restXmlPutBucketIntelligentTieringConfigurationCommand=Lqe;var Fqe=async(e,n)=>{let{hostname:t,protocol:s="https",port:r,path:i}=await n.endpoint(),a=w({},M,{"content-type":"application/xml","x-amz-expected-bucket-owner":e.ExpectedBucketOwner}),o=`${i?.endsWith("/")?i.slice(0,-1):i||""}/`;o=(0,m.resolvedPath)(o,e,"Bucket",()=>e.Bucket,"{Bucket}",!1);let c=w({inventory:[,""],id:[,(0,m.expectNonNull)(e.Id,"Id")]}),l;e.InventoryConfiguration!==void 0&&(l=J2(e.InventoryConfiguration,n));let d;return e.InventoryConfiguration!==void 0&&(d=J2(e.InventoryConfiguration,n),l='',d.addAttribute("xmlns","http://s3.amazonaws.com/doc/2006-03-01/"),l+=d.toString()),new V.HttpRequest({protocol:s,hostname:t,port:r,method:"PUT",headers:a,path:o,query:c,body:l})};y.serializeAws_restXmlPutBucketInventoryConfigurationCommand=Fqe;var Dqe=async(e,n)=>{let{hostname:t,protocol:s="https",port:r,path:i}=await n.endpoint(),a=w({},M,{"content-type":"application/xml","x-amz-sdk-checksum-algorithm":e.ChecksumAlgorithm,"x-amz-expected-bucket-owner":e.ExpectedBucketOwner}),o=`${i?.endsWith("/")?i.slice(0,-1):i||""}/`;o=(0,m.resolvedPath)(o,e,"Bucket",()=>e.Bucket,"{Bucket}",!1);let c=w({lifecycle:[,""]}),l;e.LifecycleConfiguration!==void 0&&(l=X2(e.LifecycleConfiguration,n));let d;return e.LifecycleConfiguration!==void 0&&(d=X2(e.LifecycleConfiguration,n),d=d.withName("LifecycleConfiguration"),l='',d.addAttribute("xmlns","http://s3.amazonaws.com/doc/2006-03-01/"),l+=d.toString()),new V.HttpRequest({protocol:s,hostname:t,port:r,method:"PUT",headers:a,path:o,query:c,body:l})};y.serializeAws_restXmlPutBucketLifecycleConfigurationCommand=Dqe;var Tqe=async(e,n)=>{let{hostname:t,protocol:s="https",port:r,path:i}=await n.endpoint(),a=w({},M,{"content-type":"application/xml","content-md5":e.ContentMD5,"x-amz-sdk-checksum-algorithm":e.ChecksumAlgorithm,"x-amz-expected-bucket-owner":e.ExpectedBucketOwner}),o=`${i?.endsWith("/")?i.slice(0,-1):i||""}/`;o=(0,m.resolvedPath)(o,e,"Bucket",()=>e.Bucket,"{Bucket}",!1);let c=w({logging:[,""]}),l;e.BucketLoggingStatus!==void 0&&(l=$2(e.BucketLoggingStatus,n));let d;return e.BucketLoggingStatus!==void 0&&(d=$2(e.BucketLoggingStatus,n),l='',d.addAttribute("xmlns","http://s3.amazonaws.com/doc/2006-03-01/"),l+=d.toString()),new V.HttpRequest({protocol:s,hostname:t,port:r,method:"PUT",headers:a,path:o,query:c,body:l})};y.serializeAws_restXmlPutBucketLoggingCommand=Tqe;var jqe=async(e,n)=>{let{hostname:t,protocol:s="https",port:r,path:i}=await n.endpoint(),a=w({},M,{"content-type":"application/xml","x-amz-expected-bucket-owner":e.ExpectedBucketOwner}),o=`${i?.endsWith("/")?i.slice(0,-1):i||""}/`;o=(0,m.resolvedPath)(o,e,"Bucket",()=>e.Bucket,"{Bucket}",!1);let c=w({metrics:[,""],id:[,(0,m.expectNonNull)(e.Id,"Id")]}),l;e.MetricsConfiguration!==void 0&&(l=Y2(e.MetricsConfiguration,n));let d;return e.MetricsConfiguration!==void 0&&(d=Y2(e.MetricsConfiguration,n),l='',d.addAttribute("xmlns","http://s3.amazonaws.com/doc/2006-03-01/"),l+=d.toString()),new V.HttpRequest({protocol:s,hostname:t,port:r,method:"PUT",headers:a,path:o,query:c,body:l})};y.serializeAws_restXmlPutBucketMetricsConfigurationCommand=jqe;var Mqe=async(e,n)=>{let{hostname:t,protocol:s="https",port:r,path:i}=await n.endpoint(),a=w({},M,{"content-type":"application/xml","x-amz-expected-bucket-owner":e.ExpectedBucketOwner,"x-amz-skip-destination-validation":[()=>M(e.SkipDestinationValidation),()=>e.SkipDestinationValidation.toString()]}),o=`${i?.endsWith("/")?i.slice(0,-1):i||""}/`;o=(0,m.resolvedPath)(o,e,"Bucket",()=>e.Bucket,"{Bucket}",!1);let c=w({notification:[,""]}),l;e.NotificationConfiguration!==void 0&&(l=Z2(e.NotificationConfiguration,n));let d;return e.NotificationConfiguration!==void 0&&(d=Z2(e.NotificationConfiguration,n),l='',d.addAttribute("xmlns","http://s3.amazonaws.com/doc/2006-03-01/"),l+=d.toString()),new V.HttpRequest({protocol:s,hostname:t,port:r,method:"PUT",headers:a,path:o,query:c,body:l})};y.serializeAws_restXmlPutBucketNotificationConfigurationCommand=Mqe;var Oqe=async(e,n)=>{let{hostname:t,protocol:s="https",port:r,path:i}=await n.endpoint(),a=w({},M,{"content-type":"application/xml","content-md5":e.ContentMD5,"x-amz-expected-bucket-owner":e.ExpectedBucketOwner}),o=`${i?.endsWith("/")?i.slice(0,-1):i||""}/`;o=(0,m.resolvedPath)(o,e,"Bucket",()=>e.Bucket,"{Bucket}",!1);let c=w({ownershipControls:[,""]}),l;e.OwnershipControls!==void 0&&(l=s$(e.OwnershipControls,n));let d;return e.OwnershipControls!==void 0&&(d=s$(e.OwnershipControls,n),l='',d.addAttribute("xmlns","http://s3.amazonaws.com/doc/2006-03-01/"),l+=d.toString()),new V.HttpRequest({protocol:s,hostname:t,port:r,method:"PUT",headers:a,path:o,query:c,body:l})};y.serializeAws_restXmlPutBucketOwnershipControlsCommand=Oqe;var Bqe=async(e,n)=>{let{hostname:t,protocol:s="https",port:r,path:i}=await n.endpoint(),a=w({},M,{"content-type":"text/plain","content-md5":e.ContentMD5,"x-amz-sdk-checksum-algorithm":e.ChecksumAlgorithm,"x-amz-confirm-remove-self-bucket-access":[()=>M(e.ConfirmRemoveSelfBucketAccess),()=>e.ConfirmRemoveSelfBucketAccess.toString()],"x-amz-expected-bucket-owner":e.ExpectedBucketOwner}),o=`${i?.endsWith("/")?i.slice(0,-1):i||""}/`;o=(0,m.resolvedPath)(o,e,"Bucket",()=>e.Bucket,"{Bucket}",!1);let c=w({policy:[,""]}),l;e.Policy!==void 0&&(l=e.Policy);let d;return e.Policy!==void 0&&(d=e.Policy,l=d),new V.HttpRequest({protocol:s,hostname:t,port:r,method:"PUT",headers:a,path:o,query:c,body:l})};y.serializeAws_restXmlPutBucketPolicyCommand=Bqe;var Gqe=async(e,n)=>{let{hostname:t,protocol:s="https",port:r,path:i}=await n.endpoint(),a=w({},M,{"content-type":"application/xml","content-md5":e.ContentMD5,"x-amz-sdk-checksum-algorithm":e.ChecksumAlgorithm,"x-amz-bucket-object-lock-token":e.Token,"x-amz-expected-bucket-owner":e.ExpectedBucketOwner}),o=`${i?.endsWith("/")?i.slice(0,-1):i||""}/`;o=(0,m.resolvedPath)(o,e,"Bucket",()=>e.Bucket,"{Bucket}",!1);let c=w({replication:[,""]}),l;e.ReplicationConfiguration!==void 0&&(l=i$(e.ReplicationConfiguration,n));let d;return e.ReplicationConfiguration!==void 0&&(d=i$(e.ReplicationConfiguration,n),l='',d.addAttribute("xmlns","http://s3.amazonaws.com/doc/2006-03-01/"),l+=d.toString()),new V.HttpRequest({protocol:s,hostname:t,port:r,method:"PUT",headers:a,path:o,query:c,body:l})};y.serializeAws_restXmlPutBucketReplicationCommand=Gqe;var Uqe=async(e,n)=>{let{hostname:t,protocol:s="https",port:r,path:i}=await n.endpoint(),a=w({},M,{"content-type":"application/xml","content-md5":e.ContentMD5,"x-amz-sdk-checksum-algorithm":e.ChecksumAlgorithm,"x-amz-expected-bucket-owner":e.ExpectedBucketOwner}),o=`${i?.endsWith("/")?i.slice(0,-1):i||""}/`;o=(0,m.resolvedPath)(o,e,"Bucket",()=>e.Bucket,"{Bucket}",!1);let c=w({requestPayment:[,""]}),l;e.RequestPaymentConfiguration!==void 0&&(l=o$(e.RequestPaymentConfiguration,n));let d;return e.RequestPaymentConfiguration!==void 0&&(d=o$(e.RequestPaymentConfiguration,n),l='',d.addAttribute("xmlns","http://s3.amazonaws.com/doc/2006-03-01/"),l+=d.toString()),new V.HttpRequest({protocol:s,hostname:t,port:r,method:"PUT",headers:a,path:o,query:c,body:l})};y.serializeAws_restXmlPutBucketRequestPaymentCommand=Uqe;var Xqe=async(e,n)=>{let{hostname:t,protocol:s="https",port:r,path:i}=await n.endpoint(),a=w({},M,{"content-type":"application/xml","content-md5":e.ContentMD5,"x-amz-sdk-checksum-algorithm":e.ChecksumAlgorithm,"x-amz-expected-bucket-owner":e.ExpectedBucketOwner}),o=`${i?.endsWith("/")?i.slice(0,-1):i||""}/`;o=(0,m.resolvedPath)(o,e,"Bucket",()=>e.Bucket,"{Bucket}",!1);let c=w({tagging:[,""]}),l;e.Tagging!==void 0&&(l=Td(e.Tagging,n));let d;return e.Tagging!==void 0&&(d=Td(e.Tagging,n),l='',d.addAttribute("xmlns","http://s3.amazonaws.com/doc/2006-03-01/"),l+=d.toString()),new V.HttpRequest({protocol:s,hostname:t,port:r,method:"PUT",headers:a,path:o,query:c,body:l})};y.serializeAws_restXmlPutBucketTaggingCommand=Xqe;var $qe=async(e,n)=>{let{hostname:t,protocol:s="https",port:r,path:i}=await n.endpoint(),a=w({},M,{"content-type":"application/xml","content-md5":e.ContentMD5,"x-amz-sdk-checksum-algorithm":e.ChecksumAlgorithm,"x-amz-mfa":e.MFA,"x-amz-expected-bucket-owner":e.ExpectedBucketOwner}),o=`${i?.endsWith("/")?i.slice(0,-1):i||""}/`;o=(0,m.resolvedPath)(o,e,"Bucket",()=>e.Bucket,"{Bucket}",!1);let c=w({versioning:[,""]}),l;e.VersioningConfiguration!==void 0&&(l=l$(e.VersioningConfiguration,n));let d;return e.VersioningConfiguration!==void 0&&(d=l$(e.VersioningConfiguration,n),l='',d.addAttribute("xmlns","http://s3.amazonaws.com/doc/2006-03-01/"),l+=d.toString()),new V.HttpRequest({protocol:s,hostname:t,port:r,method:"PUT",headers:a,path:o,query:c,body:l})};y.serializeAws_restXmlPutBucketVersioningCommand=$qe;var Hqe=async(e,n)=>{let{hostname:t,protocol:s="https",port:r,path:i}=await n.endpoint(),a=w({},M,{"content-type":"application/xml","content-md5":e.ContentMD5,"x-amz-sdk-checksum-algorithm":e.ChecksumAlgorithm,"x-amz-expected-bucket-owner":e.ExpectedBucketOwner}),o=`${i?.endsWith("/")?i.slice(0,-1):i||""}/`;o=(0,m.resolvedPath)(o,e,"Bucket",()=>e.Bucket,"{Bucket}",!1);let c=w({website:[,""]}),l;e.WebsiteConfiguration!==void 0&&(l=d$(e.WebsiteConfiguration,n));let d;return e.WebsiteConfiguration!==void 0&&(d=d$(e.WebsiteConfiguration,n),l='',d.addAttribute("xmlns","http://s3.amazonaws.com/doc/2006-03-01/"),l+=d.toString()),new V.HttpRequest({protocol:s,hostname:t,port:r,method:"PUT",headers:a,path:o,query:c,body:l})};y.serializeAws_restXmlPutBucketWebsiteCommand=Hqe;var Vqe=async(e,n)=>{let{hostname:t,protocol:s="https",port:r,path:i}=await n.endpoint(),a=w({},M,{"content-type":e.ContentType||"application/octet-stream","x-amz-acl":e.ACL,"cache-control":e.CacheControl,"content-disposition":e.ContentDisposition,"content-encoding":e.ContentEncoding,"content-language":e.ContentLanguage,"content-length":[()=>M(e.ContentLength),()=>e.ContentLength.toString()],"content-md5":e.ContentMD5,"x-amz-sdk-checksum-algorithm":e.ChecksumAlgorithm,"x-amz-checksum-crc32":e.ChecksumCRC32,"x-amz-checksum-crc32c":e.ChecksumCRC32C,"x-amz-checksum-sha1":e.ChecksumSHA1,"x-amz-checksum-sha256":e.ChecksumSHA256,expires:[()=>M(e.Expires),()=>(0,m.dateToUtcString)(e.Expires).toString()],"x-amz-grant-full-control":e.GrantFullControl,"x-amz-grant-read":e.GrantRead,"x-amz-grant-read-acp":e.GrantReadACP,"x-amz-grant-write-acp":e.GrantWriteACP,"x-amz-server-side-encryption":e.ServerSideEncryption,"x-amz-storage-class":e.StorageClass,"x-amz-website-redirect-location":e.WebsiteRedirectLocation,"x-amz-server-side-encryption-customer-algorithm":e.SSECustomerAlgorithm,"x-amz-server-side-encryption-customer-key":e.SSECustomerKey,"x-amz-server-side-encryption-customer-key-md5":e.SSECustomerKeyMD5,"x-amz-server-side-encryption-aws-kms-key-id":e.SSEKMSKeyId,"x-amz-server-side-encryption-context":e.SSEKMSEncryptionContext,"x-amz-server-side-encryption-bucket-key-enabled":[()=>M(e.BucketKeyEnabled),()=>e.BucketKeyEnabled.toString()],"x-amz-request-payer":e.RequestPayer,"x-amz-tagging":e.Tagging,"x-amz-object-lock-mode":e.ObjectLockMode,"x-amz-object-lock-retain-until-date":[()=>M(e.ObjectLockRetainUntilDate),()=>(e.ObjectLockRetainUntilDate.toISOString().split(".")[0]+"Z").toString()],"x-amz-object-lock-legal-hold":e.ObjectLockLegalHoldStatus,"x-amz-expected-bucket-owner":e.ExpectedBucketOwner,...e.Metadata!==void 0&&Object.keys(e.Metadata).reduce((h,v)=>(h[`x-amz-meta-${v.toLowerCase()}`]=e.Metadata[v],h),{})}),o=`${i?.endsWith("/")?i.slice(0,-1):i||""}/{Key+}`;o=(0,m.resolvedPath)(o,e,"Bucket",()=>e.Bucket,"{Bucket}",!1),o=(0,m.resolvedPath)(o,e,"Key",()=>e.Key,"{Key+}",!0);let c=w({"x-id":[,"PutObject"]}),l;e.Body!==void 0&&(l=e.Body);let d;return e.Body!==void 0&&(d=e.Body,l=d),new V.HttpRequest({protocol:s,hostname:t,port:r,method:"PUT",headers:a,path:o,query:c,body:l})};y.serializeAws_restXmlPutObjectCommand=Vqe;var Wqe=async(e,n)=>{let{hostname:t,protocol:s="https",port:r,path:i}=await n.endpoint(),a=w({},M,{"content-type":"application/xml","x-amz-acl":e.ACL,"content-md5":e.ContentMD5,"x-amz-sdk-checksum-algorithm":e.ChecksumAlgorithm,"x-amz-grant-full-control":e.GrantFullControl,"x-amz-grant-read":e.GrantRead,"x-amz-grant-read-acp":e.GrantReadACP,"x-amz-grant-write":e.GrantWrite,"x-amz-grant-write-acp":e.GrantWriteACP,"x-amz-request-payer":e.RequestPayer,"x-amz-expected-bucket-owner":e.ExpectedBucketOwner}),o=`${i?.endsWith("/")?i.slice(0,-1):i||""}/{Key+}`;o=(0,m.resolvedPath)(o,e,"Bucket",()=>e.Bucket,"{Bucket}",!1),o=(0,m.resolvedPath)(o,e,"Key",()=>e.Key,"{Key+}",!0);let c=w({acl:[,""],versionId:[,e.VersionId]}),l;e.AccessControlPolicy!==void 0&&(l=yE(e.AccessControlPolicy,n));let d;return e.AccessControlPolicy!==void 0&&(d=yE(e.AccessControlPolicy,n),l='',d.addAttribute("xmlns","http://s3.amazonaws.com/doc/2006-03-01/"),l+=d.toString()),new V.HttpRequest({protocol:s,hostname:t,port:r,method:"PUT",headers:a,path:o,query:c,body:l})};y.serializeAws_restXmlPutObjectAclCommand=Wqe;var Kqe=async(e,n)=>{let{hostname:t,protocol:s="https",port:r,path:i}=await n.endpoint(),a=w({},M,{"content-type":"application/xml","x-amz-request-payer":e.RequestPayer,"content-md5":e.ContentMD5,"x-amz-sdk-checksum-algorithm":e.ChecksumAlgorithm,"x-amz-expected-bucket-owner":e.ExpectedBucketOwner}),o=`${i?.endsWith("/")?i.slice(0,-1):i||""}/{Key+}`;o=(0,m.resolvedPath)(o,e,"Bucket",()=>e.Bucket,"{Bucket}",!1),o=(0,m.resolvedPath)(o,e,"Key",()=>e.Key,"{Key+}",!0);let c=w({"legal-hold":[,""],versionId:[,e.VersionId]}),l;e.LegalHold!==void 0&&(l=t$(e.LegalHold,n));let d;return e.LegalHold!==void 0&&(d=t$(e.LegalHold,n),d=d.withName("LegalHold"),l='',d.addAttribute("xmlns","http://s3.amazonaws.com/doc/2006-03-01/"),l+=d.toString()),new V.HttpRequest({protocol:s,hostname:t,port:r,method:"PUT",headers:a,path:o,query:c,body:l})};y.serializeAws_restXmlPutObjectLegalHoldCommand=Kqe;var Qqe=async(e,n)=>{let{hostname:t,protocol:s="https",port:r,path:i}=await n.endpoint(),a=w({},M,{"content-type":"application/xml","x-amz-request-payer":e.RequestPayer,"x-amz-bucket-object-lock-token":e.Token,"content-md5":e.ContentMD5,"x-amz-sdk-checksum-algorithm":e.ChecksumAlgorithm,"x-amz-expected-bucket-owner":e.ExpectedBucketOwner}),o=`${i?.endsWith("/")?i.slice(0,-1):i||""}/`;o=(0,m.resolvedPath)(o,e,"Bucket",()=>e.Bucket,"{Bucket}",!1);let c=w({"object-lock":[,""]}),l;e.ObjectLockConfiguration!==void 0&&(l=e$(e.ObjectLockConfiguration,n));let d;return e.ObjectLockConfiguration!==void 0&&(d=e$(e.ObjectLockConfiguration,n),l='',d.addAttribute("xmlns","http://s3.amazonaws.com/doc/2006-03-01/"),l+=d.toString()),new V.HttpRequest({protocol:s,hostname:t,port:r,method:"PUT",headers:a,path:o,query:c,body:l})};y.serializeAws_restXmlPutObjectLockConfigurationCommand=Qqe;var Jqe=async(e,n)=>{let{hostname:t,protocol:s="https",port:r,path:i}=await n.endpoint(),a=w({},M,{"content-type":"application/xml","x-amz-request-payer":e.RequestPayer,"x-amz-bypass-governance-retention":[()=>M(e.BypassGovernanceRetention),()=>e.BypassGovernanceRetention.toString()],"content-md5":e.ContentMD5,"x-amz-sdk-checksum-algorithm":e.ChecksumAlgorithm,"x-amz-expected-bucket-owner":e.ExpectedBucketOwner}),o=`${i?.endsWith("/")?i.slice(0,-1):i||""}/{Key+}`;o=(0,m.resolvedPath)(o,e,"Bucket",()=>e.Bucket,"{Bucket}",!1),o=(0,m.resolvedPath)(o,e,"Key",()=>e.Key,"{Key+}",!0);let c=w({retention:[,""],versionId:[,e.VersionId]}),l;e.Retention!==void 0&&(l=n$(e.Retention,n));let d;return e.Retention!==void 0&&(d=n$(e.Retention,n),d=d.withName("Retention"),l='',d.addAttribute("xmlns","http://s3.amazonaws.com/doc/2006-03-01/"),l+=d.toString()),new V.HttpRequest({protocol:s,hostname:t,port:r,method:"PUT",headers:a,path:o,query:c,body:l})};y.serializeAws_restXmlPutObjectRetentionCommand=Jqe;var Yqe=async(e,n)=>{let{hostname:t,protocol:s="https",port:r,path:i}=await n.endpoint(),a=w({},M,{"content-type":"application/xml","content-md5":e.ContentMD5,"x-amz-sdk-checksum-algorithm":e.ChecksumAlgorithm,"x-amz-expected-bucket-owner":e.ExpectedBucketOwner,"x-amz-request-payer":e.RequestPayer}),o=`${i?.endsWith("/")?i.slice(0,-1):i||""}/{Key+}`;o=(0,m.resolvedPath)(o,e,"Bucket",()=>e.Bucket,"{Bucket}",!1),o=(0,m.resolvedPath)(o,e,"Key",()=>e.Key,"{Key+}",!0);let c=w({tagging:[,""],versionId:[,e.VersionId]}),l;e.Tagging!==void 0&&(l=Td(e.Tagging,n));let d;return e.Tagging!==void 0&&(d=Td(e.Tagging,n),l='',d.addAttribute("xmlns","http://s3.amazonaws.com/doc/2006-03-01/"),l+=d.toString()),new V.HttpRequest({protocol:s,hostname:t,port:r,method:"PUT",headers:a,path:o,query:c,body:l})};y.serializeAws_restXmlPutObjectTaggingCommand=Yqe;var Zqe=async(e,n)=>{let{hostname:t,protocol:s="https",port:r,path:i}=await n.endpoint(),a=w({},M,{"content-type":"application/xml","content-md5":e.ContentMD5,"x-amz-sdk-checksum-algorithm":e.ChecksumAlgorithm,"x-amz-expected-bucket-owner":e.ExpectedBucketOwner}),o=`${i?.endsWith("/")?i.slice(0,-1):i||""}/`;o=(0,m.resolvedPath)(o,e,"Bucket",()=>e.Bucket,"{Bucket}",!1);let c=w({publicAccessBlock:[,""]}),l;e.PublicAccessBlockConfiguration!==void 0&&(l=r$(e.PublicAccessBlockConfiguration,n));let d;return e.PublicAccessBlockConfiguration!==void 0&&(d=r$(e.PublicAccessBlockConfiguration,n),l='',d.addAttribute("xmlns","http://s3.amazonaws.com/doc/2006-03-01/"),l+=d.toString()),new V.HttpRequest({protocol:s,hostname:t,port:r,method:"PUT",headers:a,path:o,query:c,body:l})};y.serializeAws_restXmlPutPublicAccessBlockCommand=Zqe;var eLe=async(e,n)=>{let{hostname:t,protocol:s="https",port:r,path:i}=await n.endpoint(),a=w({},M,{"content-type":"application/xml","x-amz-request-payer":e.RequestPayer,"x-amz-sdk-checksum-algorithm":e.ChecksumAlgorithm,"x-amz-expected-bucket-owner":e.ExpectedBucketOwner}),o=`${i?.endsWith("/")?i.slice(0,-1):i||""}/{Key+}`;o=(0,m.resolvedPath)(o,e,"Bucket",()=>e.Bucket,"{Bucket}",!1),o=(0,m.resolvedPath)(o,e,"Key",()=>e.Key,"{Key+}",!0);let c=w({restore:[,""],"x-id":[,"RestoreObject"],versionId:[,e.VersionId]}),l;e.RestoreRequest!==void 0&&(l=a$(e.RestoreRequest,n));let d;return e.RestoreRequest!==void 0&&(d=a$(e.RestoreRequest,n),l='',d.addAttribute("xmlns","http://s3.amazonaws.com/doc/2006-03-01/"),l+=d.toString()),new V.HttpRequest({protocol:s,hostname:t,port:r,method:"POST",headers:a,path:o,query:c,body:l})};y.serializeAws_restXmlRestoreObjectCommand=eLe;var tLe=async(e,n)=>{let{hostname:t,protocol:s="https",port:r,path:i}=await n.endpoint(),a=w({},M,{"content-type":"application/xml","x-amz-server-side-encryption-customer-algorithm":e.SSECustomerAlgorithm,"x-amz-server-side-encryption-customer-key":e.SSECustomerKey,"x-amz-server-side-encryption-customer-key-md5":e.SSECustomerKeyMD5,"x-amz-expected-bucket-owner":e.ExpectedBucketOwner}),o=`${i?.endsWith("/")?i.slice(0,-1):i||""}/{Key+}`;o=(0,m.resolvedPath)(o,e,"Bucket",()=>e.Bucket,"{Bucket}",!1),o=(0,m.resolvedPath)(o,e,"Key",()=>e.Key,"{Key+}",!0);let c=w({select:[,""],"select-type":[,"2"],"x-id":[,"SelectObjectContent"]}),l;l='';let d=new S.XmlNode("SelectObjectContentRequest");if(d.addAttribute("xmlns","http://s3.amazonaws.com/doc/2006-03-01/"),e.Expression!==void 0){let h=S.XmlNode.of("Expression",e.Expression).withName("Expression");d.addChildNode(h)}if(e.ExpressionType!==void 0){let h=S.XmlNode.of("ExpressionType",e.ExpressionType).withName("ExpressionType");d.addChildNode(h)}if(e.InputSerialization!==void 0){let h=y$(e.InputSerialization,n).withName("InputSerialization");d.addChildNode(h)}if(e.OutputSerialization!==void 0){let h=_$(e.OutputSerialization,n).withName("OutputSerialization");d.addChildNode(h)}if(e.RequestProgress!==void 0){let h=oMe(e.RequestProgress,n).withName("RequestProgress");d.addChildNode(h)}if(e.ScanRange!==void 0){let h=uMe(e.ScanRange,n).withName("ScanRange");d.addChildNode(h)}return l+=d.toString(),new V.HttpRequest({protocol:s,hostname:t,port:r,method:"POST",headers:a,path:o,query:c,body:l})};y.serializeAws_restXmlSelectObjectContentCommand=tLe;var nLe=async(e,n)=>{let{hostname:t,protocol:s="https",port:r,path:i}=await n.endpoint(),a=w({},M,{"content-type":"application/octet-stream","content-length":[()=>M(e.ContentLength),()=>e.ContentLength.toString()],"content-md5":e.ContentMD5,"x-amz-sdk-checksum-algorithm":e.ChecksumAlgorithm,"x-amz-checksum-crc32":e.ChecksumCRC32,"x-amz-checksum-crc32c":e.ChecksumCRC32C,"x-amz-checksum-sha1":e.ChecksumSHA1,"x-amz-checksum-sha256":e.ChecksumSHA256,"x-amz-server-side-encryption-customer-algorithm":e.SSECustomerAlgorithm,"x-amz-server-side-encryption-customer-key":e.SSECustomerKey,"x-amz-server-side-encryption-customer-key-md5":e.SSECustomerKeyMD5,"x-amz-request-payer":e.RequestPayer,"x-amz-expected-bucket-owner":e.ExpectedBucketOwner}),o=`${i?.endsWith("/")?i.slice(0,-1):i||""}/{Key+}`;o=(0,m.resolvedPath)(o,e,"Bucket",()=>e.Bucket,"{Bucket}",!1),o=(0,m.resolvedPath)(o,e,"Key",()=>e.Key,"{Key+}",!0);let c=w({"x-id":[,"UploadPart"],partNumber:[(0,m.expectNonNull)(e.PartNumber,"PartNumber")!=null,()=>e.PartNumber.toString()],uploadId:[,(0,m.expectNonNull)(e.UploadId,"UploadId")]}),l;e.Body!==void 0&&(l=e.Body);let d;return e.Body!==void 0&&(d=e.Body,l=d),new V.HttpRequest({protocol:s,hostname:t,port:r,method:"PUT",headers:a,path:o,query:c,body:l})};y.serializeAws_restXmlUploadPartCommand=nLe;var sLe=async(e,n)=>{let{hostname:t,protocol:s="https",port:r,path:i}=await n.endpoint(),a=w({},M,{"x-amz-copy-source":e.CopySource,"x-amz-copy-source-if-match":e.CopySourceIfMatch,"x-amz-copy-source-if-modified-since":[()=>M(e.CopySourceIfModifiedSince),()=>(0,m.dateToUtcString)(e.CopySourceIfModifiedSince).toString()],"x-amz-copy-source-if-none-match":e.CopySourceIfNoneMatch,"x-amz-copy-source-if-unmodified-since":[()=>M(e.CopySourceIfUnmodifiedSince),()=>(0,m.dateToUtcString)(e.CopySourceIfUnmodifiedSince).toString()],"x-amz-copy-source-range":e.CopySourceRange,"x-amz-server-side-encryption-customer-algorithm":e.SSECustomerAlgorithm,"x-amz-server-side-encryption-customer-key":e.SSECustomerKey,"x-amz-server-side-encryption-customer-key-md5":e.SSECustomerKeyMD5,"x-amz-copy-source-server-side-encryption-customer-algorithm":e.CopySourceSSECustomerAlgorithm,"x-amz-copy-source-server-side-encryption-customer-key":e.CopySourceSSECustomerKey,"x-amz-copy-source-server-side-encryption-customer-key-md5":e.CopySourceSSECustomerKeyMD5,"x-amz-request-payer":e.RequestPayer,"x-amz-expected-bucket-owner":e.ExpectedBucketOwner,"x-amz-source-expected-bucket-owner":e.ExpectedSourceBucketOwner}),o=`${i?.endsWith("/")?i.slice(0,-1):i||""}/{Key+}`;o=(0,m.resolvedPath)(o,e,"Bucket",()=>e.Bucket,"{Bucket}",!1),o=(0,m.resolvedPath)(o,e,"Key",()=>e.Key,"{Key+}",!0);let c=w({"x-id":[,"UploadPartCopy"],partNumber:[(0,m.expectNonNull)(e.PartNumber,"PartNumber")!=null,()=>e.PartNumber.toString()],uploadId:[,(0,m.expectNonNull)(e.UploadId,"UploadId")]}),l;return new V.HttpRequest({protocol:s,hostname:t,port:r,method:"PUT",headers:a,path:o,query:c,body:l})};y.serializeAws_restXmlUploadPartCopyCommand=sLe;var rLe=async(e,n)=>{let{hostname:t,protocol:s="https",port:r,path:i}=await n.endpoint(),a=w({},M,{"x-amz-content-sha256":"UNSIGNED-PAYLOAD","content-type":"application/octet-stream","x-amz-request-route":e.RequestRoute,"x-amz-request-token":e.RequestToken,"x-amz-fwd-status":[()=>M(e.StatusCode),()=>e.StatusCode.toString()],"x-amz-fwd-error-code":e.ErrorCode,"x-amz-fwd-error-message":e.ErrorMessage,"x-amz-fwd-header-accept-ranges":e.AcceptRanges,"x-amz-fwd-header-cache-control":e.CacheControl,"x-amz-fwd-header-content-disposition":e.ContentDisposition,"x-amz-fwd-header-content-encoding":e.ContentEncoding,"x-amz-fwd-header-content-language":e.ContentLanguage,"content-length":[()=>M(e.ContentLength),()=>e.ContentLength.toString()],"x-amz-fwd-header-content-range":e.ContentRange,"x-amz-fwd-header-content-type":e.ContentType,"x-amz-fwd-header-x-amz-checksum-crc32":e.ChecksumCRC32,"x-amz-fwd-header-x-amz-checksum-crc32c":e.ChecksumCRC32C,"x-amz-fwd-header-x-amz-checksum-sha1":e.ChecksumSHA1,"x-amz-fwd-header-x-amz-checksum-sha256":e.ChecksumSHA256,"x-amz-fwd-header-x-amz-delete-marker":[()=>M(e.DeleteMarker),()=>e.DeleteMarker.toString()],"x-amz-fwd-header-etag":e.ETag,"x-amz-fwd-header-expires":[()=>M(e.Expires),()=>(0,m.dateToUtcString)(e.Expires).toString()],"x-amz-fwd-header-x-amz-expiration":e.Expiration,"x-amz-fwd-header-last-modified":[()=>M(e.LastModified),()=>(0,m.dateToUtcString)(e.LastModified).toString()],"x-amz-fwd-header-x-amz-missing-meta":[()=>M(e.MissingMeta),()=>e.MissingMeta.toString()],"x-amz-fwd-header-x-amz-object-lock-mode":e.ObjectLockMode,"x-amz-fwd-header-x-amz-object-lock-legal-hold":e.ObjectLockLegalHoldStatus,"x-amz-fwd-header-x-amz-object-lock-retain-until-date":[()=>M(e.ObjectLockRetainUntilDate),()=>(e.ObjectLockRetainUntilDate.toISOString().split(".")[0]+"Z").toString()],"x-amz-fwd-header-x-amz-mp-parts-count":[()=>M(e.PartsCount),()=>e.PartsCount.toString()],"x-amz-fwd-header-x-amz-replication-status":e.ReplicationStatus,"x-amz-fwd-header-x-amz-request-charged":e.RequestCharged,"x-amz-fwd-header-x-amz-restore":e.Restore,"x-amz-fwd-header-x-amz-server-side-encryption":e.ServerSideEncryption,"x-amz-fwd-header-x-amz-server-side-encryption-customer-algorithm":e.SSECustomerAlgorithm,"x-amz-fwd-header-x-amz-server-side-encryption-aws-kms-key-id":e.SSEKMSKeyId,"x-amz-fwd-header-x-amz-server-side-encryption-customer-key-md5":e.SSECustomerKeyMD5,"x-amz-fwd-header-x-amz-storage-class":e.StorageClass,"x-amz-fwd-header-x-amz-tagging-count":[()=>M(e.TagCount),()=>e.TagCount.toString()],"x-amz-fwd-header-x-amz-version-id":e.VersionId,"x-amz-fwd-header-x-amz-server-side-encryption-bucket-key-enabled":[()=>M(e.BucketKeyEnabled),()=>e.BucketKeyEnabled.toString()],...e.Metadata!==void 0&&Object.keys(e.Metadata).reduce((v,z)=>(v[`x-amz-meta-${z.toLowerCase()}`]=e.Metadata[z],v),{})}),o=`${i?.endsWith("/")?i.slice(0,-1):i||""}/WriteGetObjectResponse`,c=w({"x-id":[,"WriteGetObjectResponse"]}),l;e.Body!==void 0&&(l=e.Body);let d;e.Body!==void 0&&(d=e.Body,l=d);let{hostname:h}=await n.endpoint();if(n.disableHostPrefix!==!0){if(h="{RequestRoute}."+h,e.RequestRoute===void 0)throw new Error("Empty value provided for input host prefix: RequestRoute.");if(h=h.replace("{RequestRoute}",e.RequestRoute),!(0,V.isValidHostname)(h))throw new Error("ValidationError: prefixed hostname must be hostname compatible.")}return new V.HttpRequest({protocol:s,hostname:h,port:r,method:"POST",headers:a,path:o,query:c,body:l})};y.serializeAws_restXmlWriteGetObjectResponseCommand=rLe;var iLe=async(e,n)=>{if(e.statusCode!==204&&e.statusCode>=300)return oLe(e,n);let t=w({$metadata:G(e),RequestCharged:[,e.headers["x-amz-request-charged"]]});return await Ae(e.body,n),t};y.deserializeAws_restXmlAbortMultipartUploadCommand=iLe;var oLe=async(e,n)=>{let t={...e,body:await Q(e.body,n)},s=J(e,t.body);switch(s){case"NoSuchUpload":case"com.amazonaws.s3#NoSuchUpload":throw await zTe(t,n);default:let r=t.body;(0,m.throwDefaultError)({output:e,parsedBody:r,exceptionCtor:K.S3ServiceException,errorCode:s})}},aLe=async(e,n)=>{if(e.statusCode!==200&&e.statusCode>=300)return cLe(e,n);let t=w({$metadata:G(e),Expiration:[,e.headers["x-amz-expiration"]],ServerSideEncryption:[,e.headers["x-amz-server-side-encryption"]],VersionId:[,e.headers["x-amz-version-id"]],SSEKMSKeyId:[,e.headers["x-amz-server-side-encryption-aws-kms-key-id"]],BucketKeyEnabled:[()=>e.headers["x-amz-server-side-encryption-bucket-key-enabled"]!==void 0,()=>(0,m.parseBoolean)(e.headers["x-amz-server-side-encryption-bucket-key-enabled"])],RequestCharged:[,e.headers["x-amz-request-charged"]]}),s=(0,m.expectNonNull)((0,m.expectObject)(await Re(e.body,n)),"body");return s.Bucket!==void 0&&(t.Bucket=(0,m.expectString)(s.Bucket)),s.ChecksumCRC32!==void 0&&(t.ChecksumCRC32=(0,m.expectString)(s.ChecksumCRC32)),s.ChecksumCRC32C!==void 0&&(t.ChecksumCRC32C=(0,m.expectString)(s.ChecksumCRC32C)),s.ChecksumSHA1!==void 0&&(t.ChecksumSHA1=(0,m.expectString)(s.ChecksumSHA1)),s.ChecksumSHA256!==void 0&&(t.ChecksumSHA256=(0,m.expectString)(s.ChecksumSHA256)),s.ETag!==void 0&&(t.ETag=(0,m.expectString)(s.ETag)),s.Key!==void 0&&(t.Key=(0,m.expectString)(s.Key)),s.Location!==void 0&&(t.Location=(0,m.expectString)(s.Location)),t};y.deserializeAws_restXmlCompleteMultipartUploadCommand=aLe;var cLe=async(e,n)=>{let t={...e,body:await Q(e.body,n)},s=J(e,t.body),r=t.body;(0,m.throwDefaultError)({output:e,parsedBody:r,exceptionCtor:K.S3ServiceException,errorCode:s})},lLe=async(e,n)=>{if(e.statusCode!==200&&e.statusCode>=300)return dLe(e,n);let t=w({$metadata:G(e),Expiration:[,e.headers["x-amz-expiration"]],CopySourceVersionId:[,e.headers["x-amz-copy-source-version-id"]],VersionId:[,e.headers["x-amz-version-id"]],ServerSideEncryption:[,e.headers["x-amz-server-side-encryption"]],SSECustomerAlgorithm:[,e.headers["x-amz-server-side-encryption-customer-algorithm"]],SSECustomerKeyMD5:[,e.headers["x-amz-server-side-encryption-customer-key-md5"]],SSEKMSKeyId:[,e.headers["x-amz-server-side-encryption-aws-kms-key-id"]],SSEKMSEncryptionContext:[,e.headers["x-amz-server-side-encryption-context"]],BucketKeyEnabled:[()=>e.headers["x-amz-server-side-encryption-bucket-key-enabled"]!==void 0,()=>(0,m.parseBoolean)(e.headers["x-amz-server-side-encryption-bucket-key-enabled"])],RequestCharged:[,e.headers["x-amz-request-charged"]]}),s=(0,m.expectObject)(await Re(e.body,n));return t.CopyObjectResult=VMe(s,n),t};y.deserializeAws_restXmlCopyObjectCommand=lLe;var dLe=async(e,n)=>{let t={...e,body:await Q(e.body,n)},s=J(e,t.body);switch(s){case"ObjectNotInActiveTierError":case"com.amazonaws.s3#ObjectNotInActiveTierError":throw await LTe(t,n);default:let r=t.body;(0,m.throwDefaultError)({output:e,parsedBody:r,exceptionCtor:K.S3ServiceException,errorCode:s})}},uLe=async(e,n)=>{if(e.statusCode!==200&&e.statusCode>=300)return mLe(e,n);let t=w({$metadata:G(e),Location:[,e.headers.location]});return await Ae(e.body,n),t};y.deserializeAws_restXmlCreateBucketCommand=uLe;var mLe=async(e,n)=>{let t={...e,body:await Q(e.body,n)},s=J(e,t.body);switch(s){case"BucketAlreadyExists":case"com.amazonaws.s3#BucketAlreadyExists":throw await kTe(t,n);case"BucketAlreadyOwnedByYou":case"com.amazonaws.s3#BucketAlreadyOwnedByYou":throw await RTe(t,n);default:let r=t.body;(0,m.throwDefaultError)({output:e,parsedBody:r,exceptionCtor:K.S3ServiceException,errorCode:s})}},pLe=async(e,n)=>{if(e.statusCode!==200&&e.statusCode>=300)return gLe(e,n);let t=w({$metadata:G(e),AbortDate:[()=>e.headers["x-amz-abort-date"]!==void 0,()=>(0,m.expectNonNull)((0,m.parseRfc7231DateTime)(e.headers["x-amz-abort-date"]))],AbortRuleId:[,e.headers["x-amz-abort-rule-id"]],ServerSideEncryption:[,e.headers["x-amz-server-side-encryption"]],SSECustomerAlgorithm:[,e.headers["x-amz-server-side-encryption-customer-algorithm"]],SSECustomerKeyMD5:[,e.headers["x-amz-server-side-encryption-customer-key-md5"]],SSEKMSKeyId:[,e.headers["x-amz-server-side-encryption-aws-kms-key-id"]],SSEKMSEncryptionContext:[,e.headers["x-amz-server-side-encryption-context"]],BucketKeyEnabled:[()=>e.headers["x-amz-server-side-encryption-bucket-key-enabled"]!==void 0,()=>(0,m.parseBoolean)(e.headers["x-amz-server-side-encryption-bucket-key-enabled"])],RequestCharged:[,e.headers["x-amz-request-charged"]],ChecksumAlgorithm:[,e.headers["x-amz-checksum-algorithm"]]}),s=(0,m.expectNonNull)((0,m.expectObject)(await Re(e.body,n)),"body");return s.Bucket!==void 0&&(t.Bucket=(0,m.expectString)(s.Bucket)),s.Key!==void 0&&(t.Key=(0,m.expectString)(s.Key)),s.UploadId!==void 0&&(t.UploadId=(0,m.expectString)(s.UploadId)),t};y.deserializeAws_restXmlCreateMultipartUploadCommand=pLe;var gLe=async(e,n)=>{let t={...e,body:await Q(e.body,n)},s=J(e,t.body),r=t.body;(0,m.throwDefaultError)({output:e,parsedBody:r,exceptionCtor:K.S3ServiceException,errorCode:s})},yLe=async(e,n)=>{if(e.statusCode!==204&&e.statusCode>=300)return _Le(e,n);let t=w({$metadata:G(e)});return await Ae(e.body,n),t};y.deserializeAws_restXmlDeleteBucketCommand=yLe;var _Le=async(e,n)=>{let t={...e,body:await Q(e.body,n)},s=J(e,t.body),r=t.body;(0,m.throwDefaultError)({output:e,parsedBody:r,exceptionCtor:K.S3ServiceException,errorCode:s})},fLe=async(e,n)=>{if(e.statusCode!==204&&e.statusCode>=300)return SLe(e,n);let t=w({$metadata:G(e)});return await Ae(e.body,n),t};y.deserializeAws_restXmlDeleteBucketAnalyticsConfigurationCommand=fLe;var SLe=async(e,n)=>{let t={...e,body:await Q(e.body,n)},s=J(e,t.body),r=t.body;(0,m.throwDefaultError)({output:e,parsedBody:r,exceptionCtor:K.S3ServiceException,errorCode:s})},hLe=async(e,n)=>{if(e.statusCode!==204&&e.statusCode>=300)return wLe(e,n);let t=w({$metadata:G(e)});return await Ae(e.body,n),t};y.deserializeAws_restXmlDeleteBucketCorsCommand=hLe;var wLe=async(e,n)=>{let t={...e,body:await Q(e.body,n)},s=J(e,t.body),r=t.body;(0,m.throwDefaultError)({output:e,parsedBody:r,exceptionCtor:K.S3ServiceException,errorCode:s})},ELe=async(e,n)=>{if(e.statusCode!==204&&e.statusCode>=300)return CLe(e,n);let t=w({$metadata:G(e)});return await Ae(e.body,n),t};y.deserializeAws_restXmlDeleteBucketEncryptionCommand=ELe;var CLe=async(e,n)=>{let t={...e,body:await Q(e.body,n)},s=J(e,t.body),r=t.body;(0,m.throwDefaultError)({output:e,parsedBody:r,exceptionCtor:K.S3ServiceException,errorCode:s})},vLe=async(e,n)=>{if(e.statusCode!==204&&e.statusCode>=300)return PLe(e,n);let t=w({$metadata:G(e)});return await Ae(e.body,n),t};y.deserializeAws_restXmlDeleteBucketIntelligentTieringConfigurationCommand=vLe;var PLe=async(e,n)=>{let t={...e,body:await Q(e.body,n)},s=J(e,t.body),r=t.body;(0,m.throwDefaultError)({output:e,parsedBody:r,exceptionCtor:K.S3ServiceException,errorCode:s})},ALe=async(e,n)=>{if(e.statusCode!==204&&e.statusCode>=300)return xLe(e,n);let t=w({$metadata:G(e)});return await Ae(e.body,n),t};y.deserializeAws_restXmlDeleteBucketInventoryConfigurationCommand=ALe;var xLe=async(e,n)=>{let t={...e,body:await Q(e.body,n)},s=J(e,t.body),r=t.body;(0,m.throwDefaultError)({output:e,parsedBody:r,exceptionCtor:K.S3ServiceException,errorCode:s})},bLe=async(e,n)=>{if(e.statusCode!==204&&e.statusCode>=300)return ILe(e,n);let t=w({$metadata:G(e)});return await Ae(e.body,n),t};y.deserializeAws_restXmlDeleteBucketLifecycleCommand=bLe;var ILe=async(e,n)=>{let t={...e,body:await Q(e.body,n)},s=J(e,t.body),r=t.body;(0,m.throwDefaultError)({output:e,parsedBody:r,exceptionCtor:K.S3ServiceException,errorCode:s})},kLe=async(e,n)=>{if(e.statusCode!==204&&e.statusCode>=300)return RLe(e,n);let t=w({$metadata:G(e)});return await Ae(e.body,n),t};y.deserializeAws_restXmlDeleteBucketMetricsConfigurationCommand=kLe;var RLe=async(e,n)=>{let t={...e,body:await Q(e.body,n)},s=J(e,t.body),r=t.body;(0,m.throwDefaultError)({output:e,parsedBody:r,exceptionCtor:K.S3ServiceException,errorCode:s})},NLe=async(e,n)=>{if(e.statusCode!==204&&e.statusCode>=300)return zLe(e,n);let t=w({$metadata:G(e)});return await Ae(e.body,n),t};y.deserializeAws_restXmlDeleteBucketOwnershipControlsCommand=NLe;var zLe=async(e,n)=>{let t={...e,body:await Q(e.body,n)},s=J(e,t.body),r=t.body;(0,m.throwDefaultError)({output:e,parsedBody:r,exceptionCtor:K.S3ServiceException,errorCode:s})},qLe=async(e,n)=>{if(e.statusCode!==204&&e.statusCode>=300)return LLe(e,n);let t=w({$metadata:G(e)});return await Ae(e.body,n),t};y.deserializeAws_restXmlDeleteBucketPolicyCommand=qLe;var LLe=async(e,n)=>{let t={...e,body:await Q(e.body,n)},s=J(e,t.body),r=t.body;(0,m.throwDefaultError)({output:e,parsedBody:r,exceptionCtor:K.S3ServiceException,errorCode:s})},FLe=async(e,n)=>{if(e.statusCode!==204&&e.statusCode>=300)return DLe(e,n);let t=w({$metadata:G(e)});return await Ae(e.body,n),t};y.deserializeAws_restXmlDeleteBucketReplicationCommand=FLe;var DLe=async(e,n)=>{let t={...e,body:await Q(e.body,n)},s=J(e,t.body),r=t.body;(0,m.throwDefaultError)({output:e,parsedBody:r,exceptionCtor:K.S3ServiceException,errorCode:s})},TLe=async(e,n)=>{if(e.statusCode!==204&&e.statusCode>=300)return jLe(e,n);let t=w({$metadata:G(e)});return await Ae(e.body,n),t};y.deserializeAws_restXmlDeleteBucketTaggingCommand=TLe;var jLe=async(e,n)=>{let t={...e,body:await Q(e.body,n)},s=J(e,t.body),r=t.body;(0,m.throwDefaultError)({output:e,parsedBody:r,exceptionCtor:K.S3ServiceException,errorCode:s})},MLe=async(e,n)=>{if(e.statusCode!==204&&e.statusCode>=300)return OLe(e,n);let t=w({$metadata:G(e)});return await Ae(e.body,n),t};y.deserializeAws_restXmlDeleteBucketWebsiteCommand=MLe;var OLe=async(e,n)=>{let t={...e,body:await Q(e.body,n)},s=J(e,t.body),r=t.body;(0,m.throwDefaultError)({output:e,parsedBody:r,exceptionCtor:K.S3ServiceException,errorCode:s})},BLe=async(e,n)=>{if(e.statusCode!==204&&e.statusCode>=300)return GLe(e,n);let t=w({$metadata:G(e),DeleteMarker:[()=>e.headers["x-amz-delete-marker"]!==void 0,()=>(0,m.parseBoolean)(e.headers["x-amz-delete-marker"])],VersionId:[,e.headers["x-amz-version-id"]],RequestCharged:[,e.headers["x-amz-request-charged"]]});return await Ae(e.body,n),t};y.deserializeAws_restXmlDeleteObjectCommand=BLe;var GLe=async(e,n)=>{let t={...e,body:await Q(e.body,n)},s=J(e,t.body),r=t.body;(0,m.throwDefaultError)({output:e,parsedBody:r,exceptionCtor:K.S3ServiceException,errorCode:s})},ULe=async(e,n)=>{if(e.statusCode!==200&&e.statusCode>=300)return XLe(e,n);let t=w({$metadata:G(e),RequestCharged:[,e.headers["x-amz-request-charged"]]}),s=(0,m.expectNonNull)((0,m.expectObject)(await Re(e.body,n)),"body");return s.Deleted===""?t.Deleted=[]:s.Deleted!==void 0&&(t.Deleted=ZMe((0,m.getArrayIfSingleItem)(s.Deleted),n)),s.Error===""?t.Errors=[]:s.Error!==void 0&&(t.Errors=cOe((0,m.getArrayIfSingleItem)(s.Error),n)),t};y.deserializeAws_restXmlDeleteObjectsCommand=ULe;var XLe=async(e,n)=>{let t={...e,body:await Q(e.body,n)},s=J(e,t.body),r=t.body;(0,m.throwDefaultError)({output:e,parsedBody:r,exceptionCtor:K.S3ServiceException,errorCode:s})},$Le=async(e,n)=>{if(e.statusCode!==204&&e.statusCode>=300)return HLe(e,n);let t=w({$metadata:G(e),VersionId:[,e.headers["x-amz-version-id"]]});return await Ae(e.body,n),t};y.deserializeAws_restXmlDeleteObjectTaggingCommand=$Le;var HLe=async(e,n)=>{let t={...e,body:await Q(e.body,n)},s=J(e,t.body),r=t.body;(0,m.throwDefaultError)({output:e,parsedBody:r,exceptionCtor:K.S3ServiceException,errorCode:s})},VLe=async(e,n)=>{if(e.statusCode!==204&&e.statusCode>=300)return WLe(e,n);let t=w({$metadata:G(e)});return await Ae(e.body,n),t};y.deserializeAws_restXmlDeletePublicAccessBlockCommand=VLe;var WLe=async(e,n)=>{let t={...e,body:await Q(e.body,n)},s=J(e,t.body),r=t.body;(0,m.throwDefaultError)({output:e,parsedBody:r,exceptionCtor:K.S3ServiceException,errorCode:s})},KLe=async(e,n)=>{if(e.statusCode!==200&&e.statusCode>=300)return QLe(e,n);let t=w({$metadata:G(e)}),s=(0,m.expectNonNull)((0,m.expectObject)(await Re(e.body,n)),"body");return s.Status!==void 0&&(t.Status=(0,m.expectString)(s.Status)),t};y.deserializeAws_restXmlGetBucketAccelerateConfigurationCommand=KLe;var QLe=async(e,n)=>{let t={...e,body:await Q(e.body,n)},s=J(e,t.body),r=t.body;(0,m.throwDefaultError)({output:e,parsedBody:r,exceptionCtor:K.S3ServiceException,errorCode:s})},JLe=async(e,n)=>{if(e.statusCode!==200&&e.statusCode>=300)return YLe(e,n);let t=w({$metadata:G(e)}),s=(0,m.expectNonNull)((0,m.expectObject)(await Re(e.body,n)),"body");return s.AccessControlList===""?t.Grants=[]:s.AccessControlList!==void 0&&s.AccessControlList.Grant!==void 0&&(t.Grants=E$((0,m.getArrayIfSingleItem)(s.AccessControlList.Grant),n)),s.Owner!==void 0&&(t.Owner=ei(s.Owner,n)),t};y.deserializeAws_restXmlGetBucketAclCommand=JLe;var YLe=async(e,n)=>{let t={...e,body:await Q(e.body,n)},s=J(e,t.body),r=t.body;(0,m.throwDefaultError)({output:e,parsedBody:r,exceptionCtor:K.S3ServiceException,errorCode:s})},ZLe=async(e,n)=>{if(e.statusCode!==200&&e.statusCode>=300)return eFe(e,n);let t=w({$metadata:G(e)}),s=(0,m.expectObject)(await Re(e.body,n));return t.AnalyticsConfiguration=S$(s,n),t};y.deserializeAws_restXmlGetBucketAnalyticsConfigurationCommand=ZLe;var eFe=async(e,n)=>{let t={...e,body:await Q(e.body,n)},s=J(e,t.body),r=t.body;(0,m.throwDefaultError)({output:e,parsedBody:r,exceptionCtor:K.S3ServiceException,errorCode:s})},tFe=async(e,n)=>{if(e.statusCode!==200&&e.statusCode>=300)return nFe(e,n);let t=w({$metadata:G(e)}),s=(0,m.expectNonNull)((0,m.expectObject)(await Re(e.body,n)),"body");return s.CORSRule===""?t.CORSRules=[]:s.CORSRule!==void 0&&(t.CORSRules=QMe((0,m.getArrayIfSingleItem)(s.CORSRule),n)),t};y.deserializeAws_restXmlGetBucketCorsCommand=tFe;var nFe=async(e,n)=>{let t={...e,body:await Q(e.body,n)},s=J(e,t.body),r=t.body;(0,m.throwDefaultError)({output:e,parsedBody:r,exceptionCtor:K.S3ServiceException,errorCode:s})},sFe=async(e,n)=>{if(e.statusCode!==200&&e.statusCode>=300)return rFe(e,n);let t=w({$metadata:G(e)}),s=(0,m.expectObject)(await Re(e.body,n));return t.ServerSideEncryptionConfiguration=CBe(s,n),t};y.deserializeAws_restXmlGetBucketEncryptionCommand=sFe;var rFe=async(e,n)=>{let t={...e,body:await Q(e.body,n)},s=J(e,t.body),r=t.body;(0,m.throwDefaultError)({output:e,parsedBody:r,exceptionCtor:K.S3ServiceException,errorCode:s})},iFe=async(e,n)=>{if(e.statusCode!==200&&e.statusCode>=300)return oFe(e,n);let t=w({$metadata:G(e)}),s=(0,m.expectObject)(await Re(e.body,n));return t.IntelligentTieringConfiguration=v$(s,n),t};y.deserializeAws_restXmlGetBucketIntelligentTieringConfigurationCommand=iFe;var oFe=async(e,n)=>{let t={...e,body:await Q(e.body,n)},s=J(e,t.body),r=t.body;(0,m.throwDefaultError)({output:e,parsedBody:r,exceptionCtor:K.S3ServiceException,errorCode:s})},aFe=async(e,n)=>{if(e.statusCode!==200&&e.statusCode>=300)return cFe(e,n);let t=w({$metadata:G(e)}),s=(0,m.expectObject)(await Re(e.body,n));return t.InventoryConfiguration=P$(s,n),t};y.deserializeAws_restXmlGetBucketInventoryConfigurationCommand=aFe;var cFe=async(e,n)=>{let t={...e,body:await Q(e.body,n)},s=J(e,t.body),r=t.body;(0,m.throwDefaultError)({output:e,parsedBody:r,exceptionCtor:K.S3ServiceException,errorCode:s})},lFe=async(e,n)=>{if(e.statusCode!==200&&e.statusCode>=300)return dFe(e,n);let t=w({$metadata:G(e)}),s=(0,m.expectNonNull)((0,m.expectObject)(await Re(e.body,n)),"body");return s.Rule===""?t.Rules=[]:s.Rule!==void 0&&(t.Rules=qOe((0,m.getArrayIfSingleItem)(s.Rule),n)),t};y.deserializeAws_restXmlGetBucketLifecycleConfigurationCommand=lFe;var dFe=async(e,n)=>{let t={...e,body:await Q(e.body,n)},s=J(e,t.body),r=t.body;(0,m.throwDefaultError)({output:e,parsedBody:r,exceptionCtor:K.S3ServiceException,errorCode:s})},uFe=async(e,n)=>{if(e.statusCode!==200&&e.statusCode>=300)return mFe(e,n);let t=w({$metadata:G(e)}),s=(0,m.expectNonNull)((0,m.expectObject)(await Re(e.body,n)),"body");return s.LocationConstraint!==void 0&&(t.LocationConstraint=(0,m.expectString)(s.LocationConstraint)),t};y.deserializeAws_restXmlGetBucketLocationCommand=uFe;var mFe=async(e,n)=>{let t={...e,body:await Q(e.body,n)},s=J(e,t.body),r=t.body;(0,m.throwDefaultError)({output:e,parsedBody:r,exceptionCtor:K.S3ServiceException,errorCode:s})},pFe=async(e,n)=>{if(e.statusCode!==200&&e.statusCode>=300)return gFe(e,n);let t=w({$metadata:G(e)}),s=(0,m.expectNonNull)((0,m.expectObject)(await Re(e.body,n)),"body");return s.LoggingEnabled!==void 0&&(t.LoggingEnabled=LOe(s.LoggingEnabled,n)),t};y.deserializeAws_restXmlGetBucketLoggingCommand=pFe;var gFe=async(e,n)=>{let t={...e,body:await Q(e.body,n)},s=J(e,t.body),r=t.body;(0,m.throwDefaultError)({output:e,parsedBody:r,exceptionCtor:K.S3ServiceException,errorCode:s})},yFe=async(e,n)=>{if(e.statusCode!==200&&e.statusCode>=300)return _Fe(e,n);let t=w({$metadata:G(e)}),s=(0,m.expectObject)(await Re(e.body,n));return t.MetricsConfiguration=A$(s,n),t};y.deserializeAws_restXmlGetBucketMetricsConfigurationCommand=yFe;var _Fe=async(e,n)=>{let t={...e,body:await Q(e.body,n)},s=J(e,t.body),r=t.body;(0,m.throwDefaultError)({output:e,parsedBody:r,exceptionCtor:K.S3ServiceException,errorCode:s})},fFe=async(e,n)=>{if(e.statusCode!==200&&e.statusCode>=300)return SFe(e,n);let t=w({$metadata:G(e)}),s=(0,m.expectNonNull)((0,m.expectObject)(await Re(e.body,n)),"body");return s.EventBridgeConfiguration!==void 0&&(t.EventBridgeConfiguration=lOe(s.EventBridgeConfiguration,n)),s.CloudFunctionConfiguration===""?t.LambdaFunctionConfigurations=[]:s.CloudFunctionConfiguration!==void 0&&(t.LambdaFunctionConfigurations=IOe((0,m.getArrayIfSingleItem)(s.CloudFunctionConfiguration),n)),s.QueueConfiguration===""?t.QueueConfigurations=[]:s.QueueConfiguration!==void 0&&(t.QueueConfigurations=cBe((0,m.getArrayIfSingleItem)(s.QueueConfiguration),n)),s.TopicConfiguration===""?t.TopicConfigurations=[]:s.TopicConfiguration!==void 0&&(t.TopicConfigurations=TBe((0,m.getArrayIfSingleItem)(s.TopicConfiguration),n)),t};y.deserializeAws_restXmlGetBucketNotificationConfigurationCommand=fFe;var SFe=async(e,n)=>{let t={...e,body:await Q(e.body,n)},s=J(e,t.body),r=t.body;(0,m.throwDefaultError)({output:e,parsedBody:r,exceptionCtor:K.S3ServiceException,errorCode:s})},hFe=async(e,n)=>{if(e.statusCode!==200&&e.statusCode>=300)return wFe(e,n);let t=w({$metadata:G(e)}),s=(0,m.expectObject)(await Re(e.body,n));return t.OwnershipControls=YOe(s,n),t};y.deserializeAws_restXmlGetBucketOwnershipControlsCommand=hFe;var wFe=async(e,n)=>{let t={...e,body:await Q(e.body,n)},s=J(e,t.body),r=t.body;(0,m.throwDefaultError)({output:e,parsedBody:r,exceptionCtor:K.S3ServiceException,errorCode:s})},EFe=async(e,n)=>{if(e.statusCode!==200&&e.statusCode>=300)return CFe(e,n);let t=w({$metadata:G(e)}),s=await I$(e.body,n);return t.Policy=(0,m.expectString)(s),t};y.deserializeAws_restXmlGetBucketPolicyCommand=EFe;var CFe=async(e,n)=>{let t={...e,body:await Q(e.body,n)},s=J(e,t.body),r=t.body;(0,m.throwDefaultError)({output:e,parsedBody:r,exceptionCtor:K.S3ServiceException,errorCode:s})},vFe=async(e,n)=>{if(e.statusCode!==200&&e.statusCode>=300)return PFe(e,n);let t=w({$metadata:G(e)}),s=(0,m.expectObject)(await Re(e.body,n));return t.PolicyStatus=rBe(s,n),t};y.deserializeAws_restXmlGetBucketPolicyStatusCommand=vFe;var PFe=async(e,n)=>{let t={...e,body:await Q(e.body,n)},s=J(e,t.body),r=t.body;(0,m.throwDefaultError)({output:e,parsedBody:r,exceptionCtor:K.S3ServiceException,errorCode:s})},AFe=async(e,n)=>{if(e.statusCode!==200&&e.statusCode>=300)return xFe(e,n);let t=w({$metadata:G(e)}),s=(0,m.expectObject)(await Re(e.body,n));return t.ReplicationConfiguration=mBe(s,n),t};y.deserializeAws_restXmlGetBucketReplicationCommand=AFe;var xFe=async(e,n)=>{let t={...e,body:await Q(e.body,n)},s=J(e,t.body),r=t.body;(0,m.throwDefaultError)({output:e,parsedBody:r,exceptionCtor:K.S3ServiceException,errorCode:s})},bFe=async(e,n)=>{if(e.statusCode!==200&&e.statusCode>=300)return IFe(e,n);let t=w({$metadata:G(e)}),s=(0,m.expectNonNull)((0,m.expectObject)(await Re(e.body,n)),"body");return s.Payer!==void 0&&(t.Payer=(0,m.expectString)(s.Payer)),t};y.deserializeAws_restXmlGetBucketRequestPaymentCommand=bFe;var IFe=async(e,n)=>{let t={...e,body:await Q(e.body,n)},s=J(e,t.body),r=t.body;(0,m.throwDefaultError)({output:e,parsedBody:r,exceptionCtor:K.S3ServiceException,errorCode:s})},kFe=async(e,n)=>{if(e.statusCode!==200&&e.statusCode>=300)return RFe(e,n);let t=w({$metadata:G(e)}),s=(0,m.expectNonNull)((0,m.expectObject)(await Re(e.body,n)),"body");return s.TagSet===""?t.TagSet=[]:s.TagSet!==void 0&&s.TagSet.Tag!==void 0&&(t.TagSet=Li((0,m.getArrayIfSingleItem)(s.TagSet.Tag),n)),t};y.deserializeAws_restXmlGetBucketTaggingCommand=kFe;var RFe=async(e,n)=>{let t={...e,body:await Q(e.body,n)},s=J(e,t.body),r=t.body;(0,m.throwDefaultError)({output:e,parsedBody:r,exceptionCtor:K.S3ServiceException,errorCode:s})},NFe=async(e,n)=>{if(e.statusCode!==200&&e.statusCode>=300)return zFe(e,n);let t=w({$metadata:G(e)}),s=(0,m.expectNonNull)((0,m.expectObject)(await Re(e.body,n)),"body");return s.MfaDelete!==void 0&&(t.MFADelete=(0,m.expectString)(s.MfaDelete)),s.Status!==void 0&&(t.Status=(0,m.expectString)(s.Status)),t};y.deserializeAws_restXmlGetBucketVersioningCommand=NFe;var zFe=async(e,n)=>{let t={...e,body:await Q(e.body,n)},s=J(e,t.body),r=t.body;(0,m.throwDefaultError)({output:e,parsedBody:r,exceptionCtor:K.S3ServiceException,errorCode:s})},qFe=async(e,n)=>{if(e.statusCode!==200&&e.statusCode>=300)return LFe(e,n);let t=w({$metadata:G(e)}),s=(0,m.expectNonNull)((0,m.expectObject)(await Re(e.body,n)),"body");return s.ErrorDocument!==void 0&&(t.ErrorDocument=aOe(s.ErrorDocument,n)),s.IndexDocument!==void 0&&(t.IndexDocument=_Oe(s.IndexDocument,n)),s.RedirectAllRequestsTo!==void 0&&(t.RedirectAllRequestsTo=dBe(s.RedirectAllRequestsTo,n)),s.RoutingRules===""?t.RoutingRules=[]:s.RoutingRules!==void 0&&s.RoutingRules.RoutingRule!==void 0&&(t.RoutingRules=hBe((0,m.getArrayIfSingleItem)(s.RoutingRules.RoutingRule),n)),t};y.deserializeAws_restXmlGetBucketWebsiteCommand=qFe;var LFe=async(e,n)=>{let t={...e,body:await Q(e.body,n)},s=J(e,t.body),r=t.body;(0,m.throwDefaultError)({output:e,parsedBody:r,exceptionCtor:K.S3ServiceException,errorCode:s})},FFe=async(e,n)=>{if(e.statusCode!==200&&e.statusCode>=300)return DFe(e,n);let t=w({$metadata:G(e),DeleteMarker:[()=>e.headers["x-amz-delete-marker"]!==void 0,()=>(0,m.parseBoolean)(e.headers["x-amz-delete-marker"])],AcceptRanges:[,e.headers["accept-ranges"]],Expiration:[,e.headers["x-amz-expiration"]],Restore:[,e.headers["x-amz-restore"]],LastModified:[()=>e.headers["last-modified"]!==void 0,()=>(0,m.expectNonNull)((0,m.parseRfc7231DateTime)(e.headers["last-modified"]))],ContentLength:[()=>e.headers["content-length"]!==void 0,()=>(0,m.strictParseLong)(e.headers["content-length"])],ETag:[,e.headers.etag],ChecksumCRC32:[,e.headers["x-amz-checksum-crc32"]],ChecksumCRC32C:[,e.headers["x-amz-checksum-crc32c"]],ChecksumSHA1:[,e.headers["x-amz-checksum-sha1"]],ChecksumSHA256:[,e.headers["x-amz-checksum-sha256"]],MissingMeta:[()=>e.headers["x-amz-missing-meta"]!==void 0,()=>(0,m.strictParseInt32)(e.headers["x-amz-missing-meta"])],VersionId:[,e.headers["x-amz-version-id"]],CacheControl:[,e.headers["cache-control"]],ContentDisposition:[,e.headers["content-disposition"]],ContentEncoding:[,e.headers["content-encoding"]],ContentLanguage:[,e.headers["content-language"]],ContentRange:[,e.headers["content-range"]],ContentType:[,e.headers["content-type"]],Expires:[()=>e.headers.expires!==void 0,()=>(0,m.expectNonNull)((0,m.parseRfc7231DateTime)(e.headers.expires))],WebsiteRedirectLocation:[,e.headers["x-amz-website-redirect-location"]],ServerSideEncryption:[,e.headers["x-amz-server-side-encryption"]],SSECustomerAlgorithm:[,e.headers["x-amz-server-side-encryption-customer-algorithm"]],SSECustomerKeyMD5:[,e.headers["x-amz-server-side-encryption-customer-key-md5"]],SSEKMSKeyId:[,e.headers["x-amz-server-side-encryption-aws-kms-key-id"]],BucketKeyEnabled:[()=>e.headers["x-amz-server-side-encryption-bucket-key-enabled"]!==void 0,()=>(0,m.parseBoolean)(e.headers["x-amz-server-side-encryption-bucket-key-enabled"])],StorageClass:[,e.headers["x-amz-storage-class"]],RequestCharged:[,e.headers["x-amz-request-charged"]],ReplicationStatus:[,e.headers["x-amz-replication-status"]],PartsCount:[()=>e.headers["x-amz-mp-parts-count"]!==void 0,()=>(0,m.strictParseInt32)(e.headers["x-amz-mp-parts-count"])],TagCount:[()=>e.headers["x-amz-tagging-count"]!==void 0,()=>(0,m.strictParseInt32)(e.headers["x-amz-tagging-count"])],ObjectLockMode:[,e.headers["x-amz-object-lock-mode"]],ObjectLockRetainUntilDate:[()=>e.headers["x-amz-object-lock-retain-until-date"]!==void 0,()=>(0,m.expectNonNull)((0,m.parseRfc3339DateTimeWithOffset)(e.headers["x-amz-object-lock-retain-until-date"]))],ObjectLockLegalHoldStatus:[,e.headers["x-amz-object-lock-legal-hold"]],Metadata:[,Object.keys(e.headers).filter(r=>r.startsWith("x-amz-meta-")).reduce((r,i)=>(r[i.substring(11)]=e.headers[i],r),{})]}),s=e.body;return n.sdkStreamMixin(s),t.Body=s,t};y.deserializeAws_restXmlGetObjectCommand=FFe;var DFe=async(e,n)=>{let t={...e,body:await Q(e.body,n)},s=J(e,t.body);switch(s){case"InvalidObjectState":case"com.amazonaws.s3#InvalidObjectState":throw await NTe(t,n);case"NoSuchKey":case"com.amazonaws.s3#NoSuchKey":throw await _E(t,n);default:let r=t.body;(0,m.throwDefaultError)({output:e,parsedBody:r,exceptionCtor:K.S3ServiceException,errorCode:s})}},TFe=async(e,n)=>{if(e.statusCode!==200&&e.statusCode>=300)return jFe(e,n);let t=w({$metadata:G(e),RequestCharged:[,e.headers["x-amz-request-charged"]]}),s=(0,m.expectNonNull)((0,m.expectObject)(await Re(e.body,n)),"body");return s.AccessControlList===""?t.Grants=[]:s.AccessControlList!==void 0&&s.AccessControlList.Grant!==void 0&&(t.Grants=E$((0,m.getArrayIfSingleItem)(s.AccessControlList.Grant),n)),s.Owner!==void 0&&(t.Owner=ei(s.Owner,n)),t};y.deserializeAws_restXmlGetObjectAclCommand=TFe;var jFe=async(e,n)=>{let t={...e,body:await Q(e.body,n)},s=J(e,t.body);switch(s){case"NoSuchKey":case"com.amazonaws.s3#NoSuchKey":throw await _E(t,n);default:let r=t.body;(0,m.throwDefaultError)({output:e,parsedBody:r,exceptionCtor:K.S3ServiceException,errorCode:s})}},MFe=async(e,n)=>{if(e.statusCode!==200&&e.statusCode>=300)return OFe(e,n);let t=w({$metadata:G(e),DeleteMarker:[()=>e.headers["x-amz-delete-marker"]!==void 0,()=>(0,m.parseBoolean)(e.headers["x-amz-delete-marker"])],LastModified:[()=>e.headers["last-modified"]!==void 0,()=>(0,m.expectNonNull)((0,m.parseRfc7231DateTime)(e.headers["last-modified"]))],VersionId:[,e.headers["x-amz-version-id"]],RequestCharged:[,e.headers["x-amz-request-charged"]]}),s=(0,m.expectNonNull)((0,m.expectObject)(await Re(e.body,n)),"body");return s.Checksum!==void 0&&(t.Checksum=UMe(s.Checksum,n)),s.ETag!==void 0&&(t.ETag=(0,m.expectString)(s.ETag)),s.ObjectParts!==void 0&&(t.ObjectParts=gOe(s.ObjectParts,n)),s.ObjectSize!==void 0&&(t.ObjectSize=(0,m.strictParseLong)(s.ObjectSize)),s.StorageClass!==void 0&&(t.StorageClass=(0,m.expectString)(s.StorageClass)),t};y.deserializeAws_restXmlGetObjectAttributesCommand=MFe;var OFe=async(e,n)=>{let t={...e,body:await Q(e.body,n)},s=J(e,t.body);switch(s){case"NoSuchKey":case"com.amazonaws.s3#NoSuchKey":throw await _E(t,n);default:let r=t.body;(0,m.throwDefaultError)({output:e,parsedBody:r,exceptionCtor:K.S3ServiceException,errorCode:s})}},BFe=async(e,n)=>{if(e.statusCode!==200&&e.statusCode>=300)return GFe(e,n);let t=w({$metadata:G(e)}),s=(0,m.expectObject)(await Re(e.body,n));return t.LegalHold=HOe(s,n),t};y.deserializeAws_restXmlGetObjectLegalHoldCommand=BFe;var GFe=async(e,n)=>{let t={...e,body:await Q(e.body,n)},s=J(e,t.body),r=t.body;(0,m.throwDefaultError)({output:e,parsedBody:r,exceptionCtor:K.S3ServiceException,errorCode:s})},UFe=async(e,n)=>{if(e.statusCode!==200&&e.statusCode>=300)return XFe(e,n);let t=w({$metadata:G(e)}),s=(0,m.expectObject)(await Re(e.body,n));return t.ObjectLockConfiguration=$Oe(s,n),t};y.deserializeAws_restXmlGetObjectLockConfigurationCommand=UFe;var XFe=async(e,n)=>{let t={...e,body:await Q(e.body,n)},s=J(e,t.body),r=t.body;(0,m.throwDefaultError)({output:e,parsedBody:r,exceptionCtor:K.S3ServiceException,errorCode:s})},$Fe=async(e,n)=>{if(e.statusCode!==200&&e.statusCode>=300)return HFe(e,n);let t=w({$metadata:G(e)}),s=(0,m.expectObject)(await Re(e.body,n));return t.Retention=VOe(s,n),t};y.deserializeAws_restXmlGetObjectRetentionCommand=$Fe;var HFe=async(e,n)=>{let t={...e,body:await Q(e.body,n)},s=J(e,t.body),r=t.body;(0,m.throwDefaultError)({output:e,parsedBody:r,exceptionCtor:K.S3ServiceException,errorCode:s})},VFe=async(e,n)=>{if(e.statusCode!==200&&e.statusCode>=300)return WFe(e,n);let t=w({$metadata:G(e),VersionId:[,e.headers["x-amz-version-id"]]}),s=(0,m.expectNonNull)((0,m.expectObject)(await Re(e.body,n)),"body");return s.TagSet===""?t.TagSet=[]:s.TagSet!==void 0&&s.TagSet.Tag!==void 0&&(t.TagSet=Li((0,m.getArrayIfSingleItem)(s.TagSet.Tag),n)),t};y.deserializeAws_restXmlGetObjectTaggingCommand=VFe;var WFe=async(e,n)=>{let t={...e,body:await Q(e.body,n)},s=J(e,t.body),r=t.body;(0,m.throwDefaultError)({output:e,parsedBody:r,exceptionCtor:K.S3ServiceException,errorCode:s})},KFe=async(e,n)=>{if(e.statusCode!==200&&e.statusCode>=300)return QFe(e,n);let t=w({$metadata:G(e),RequestCharged:[,e.headers["x-amz-request-charged"]]}),s=e.body;return n.sdkStreamMixin(s),t.Body=s,t};y.deserializeAws_restXmlGetObjectTorrentCommand=KFe;var QFe=async(e,n)=>{let t={...e,body:await Q(e.body,n)},s=J(e,t.body),r=t.body;(0,m.throwDefaultError)({output:e,parsedBody:r,exceptionCtor:K.S3ServiceException,errorCode:s})},JFe=async(e,n)=>{if(e.statusCode!==200&&e.statusCode>=300)return YFe(e,n);let t=w({$metadata:G(e)}),s=(0,m.expectObject)(await Re(e.body,n));return t.PublicAccessBlockConfiguration=oBe(s,n),t};y.deserializeAws_restXmlGetPublicAccessBlockCommand=JFe;var YFe=async(e,n)=>{let t={...e,body:await Q(e.body,n)},s=J(e,t.body),r=t.body;(0,m.throwDefaultError)({output:e,parsedBody:r,exceptionCtor:K.S3ServiceException,errorCode:s})},ZFe=async(e,n)=>{if(e.statusCode!==200&&e.statusCode>=300)return eDe(e,n);let t=w({$metadata:G(e)});return await Ae(e.body,n),t};y.deserializeAws_restXmlHeadBucketCommand=ZFe;var eDe=async(e,n)=>{let t={...e,body:await Q(e.body,n)},s=J(e,t.body);switch(s){case"NotFound":case"com.amazonaws.s3#NotFound":throw await m$(t,n);default:let r=t.body;(0,m.throwDefaultError)({output:e,parsedBody:r,exceptionCtor:K.S3ServiceException,errorCode:s})}},tDe=async(e,n)=>{if(e.statusCode!==200&&e.statusCode>=300)return nDe(e,n);let t=w({$metadata:G(e),DeleteMarker:[()=>e.headers["x-amz-delete-marker"]!==void 0,()=>(0,m.parseBoolean)(e.headers["x-amz-delete-marker"])],AcceptRanges:[,e.headers["accept-ranges"]],Expiration:[,e.headers["x-amz-expiration"]],Restore:[,e.headers["x-amz-restore"]],ArchiveStatus:[,e.headers["x-amz-archive-status"]],LastModified:[()=>e.headers["last-modified"]!==void 0,()=>(0,m.expectNonNull)((0,m.parseRfc7231DateTime)(e.headers["last-modified"]))],ContentLength:[()=>e.headers["content-length"]!==void 0,()=>(0,m.strictParseLong)(e.headers["content-length"])],ChecksumCRC32:[,e.headers["x-amz-checksum-crc32"]],ChecksumCRC32C:[,e.headers["x-amz-checksum-crc32c"]],ChecksumSHA1:[,e.headers["x-amz-checksum-sha1"]],ChecksumSHA256:[,e.headers["x-amz-checksum-sha256"]],ETag:[,e.headers.etag],MissingMeta:[()=>e.headers["x-amz-missing-meta"]!==void 0,()=>(0,m.strictParseInt32)(e.headers["x-amz-missing-meta"])],VersionId:[,e.headers["x-amz-version-id"]],CacheControl:[,e.headers["cache-control"]],ContentDisposition:[,e.headers["content-disposition"]],ContentEncoding:[,e.headers["content-encoding"]],ContentLanguage:[,e.headers["content-language"]],ContentType:[,e.headers["content-type"]],Expires:[()=>e.headers.expires!==void 0,()=>(0,m.expectNonNull)((0,m.parseRfc7231DateTime)(e.headers.expires))],WebsiteRedirectLocation:[,e.headers["x-amz-website-redirect-location"]],ServerSideEncryption:[,e.headers["x-amz-server-side-encryption"]],SSECustomerAlgorithm:[,e.headers["x-amz-server-side-encryption-customer-algorithm"]],SSECustomerKeyMD5:[,e.headers["x-amz-server-side-encryption-customer-key-md5"]],SSEKMSKeyId:[,e.headers["x-amz-server-side-encryption-aws-kms-key-id"]],BucketKeyEnabled:[()=>e.headers["x-amz-server-side-encryption-bucket-key-enabled"]!==void 0,()=>(0,m.parseBoolean)(e.headers["x-amz-server-side-encryption-bucket-key-enabled"])],StorageClass:[,e.headers["x-amz-storage-class"]],RequestCharged:[,e.headers["x-amz-request-charged"]],ReplicationStatus:[,e.headers["x-amz-replication-status"]],PartsCount:[()=>e.headers["x-amz-mp-parts-count"]!==void 0,()=>(0,m.strictParseInt32)(e.headers["x-amz-mp-parts-count"])],ObjectLockMode:[,e.headers["x-amz-object-lock-mode"]],ObjectLockRetainUntilDate:[()=>e.headers["x-amz-object-lock-retain-until-date"]!==void 0,()=>(0,m.expectNonNull)((0,m.parseRfc3339DateTimeWithOffset)(e.headers["x-amz-object-lock-retain-until-date"]))],ObjectLockLegalHoldStatus:[,e.headers["x-amz-object-lock-legal-hold"]],Metadata:[,Object.keys(e.headers).filter(s=>s.startsWith("x-amz-meta-")).reduce((s,r)=>(s[r.substring(11)]=e.headers[r],s),{})]});return await Ae(e.body,n),t};y.deserializeAws_restXmlHeadObjectCommand=tDe;var nDe=async(e,n)=>{let t={...e,body:await Q(e.body,n)},s=J(e,t.body);switch(s){case"NotFound":case"com.amazonaws.s3#NotFound":throw await m$(t,n);default:let r=t.body;(0,m.throwDefaultError)({output:e,parsedBody:r,exceptionCtor:K.S3ServiceException,errorCode:s})}},sDe=async(e,n)=>{if(e.statusCode!==200&&e.statusCode>=300)return rDe(e,n);let t=w({$metadata:G(e)}),s=(0,m.expectNonNull)((0,m.expectObject)(await Re(e.body,n)),"body");return s.AnalyticsConfiguration===""?t.AnalyticsConfigurationList=[]:s.AnalyticsConfiguration!==void 0&&(t.AnalyticsConfigurationList=TMe((0,m.getArrayIfSingleItem)(s.AnalyticsConfiguration),n)),s.ContinuationToken!==void 0&&(t.ContinuationToken=(0,m.expectString)(s.ContinuationToken)),s.IsTruncated!==void 0&&(t.IsTruncated=(0,m.parseBoolean)(s.IsTruncated)),s.NextContinuationToken!==void 0&&(t.NextContinuationToken=(0,m.expectString)(s.NextContinuationToken)),t};y.deserializeAws_restXmlListBucketAnalyticsConfigurationsCommand=sDe;var rDe=async(e,n)=>{let t={...e,body:await Q(e.body,n)},s=J(e,t.body),r=t.body;(0,m.throwDefaultError)({output:e,parsedBody:r,exceptionCtor:K.S3ServiceException,errorCode:s})},iDe=async(e,n)=>{if(e.statusCode!==200&&e.statusCode>=300)return oDe(e,n);let t=w({$metadata:G(e)}),s=(0,m.expectNonNull)((0,m.expectObject)(await Re(e.body,n)),"body");return s.ContinuationToken!==void 0&&(t.ContinuationToken=(0,m.expectString)(s.ContinuationToken)),s.IntelligentTieringConfiguration===""?t.IntelligentTieringConfigurationList=[]:s.IntelligentTieringConfiguration!==void 0&&(t.IntelligentTieringConfigurationList=SOe((0,m.getArrayIfSingleItem)(s.IntelligentTieringConfiguration),n)),s.IsTruncated!==void 0&&(t.IsTruncated=(0,m.parseBoolean)(s.IsTruncated)),s.NextContinuationToken!==void 0&&(t.NextContinuationToken=(0,m.expectString)(s.NextContinuationToken)),t};y.deserializeAws_restXmlListBucketIntelligentTieringConfigurationsCommand=iDe;var oDe=async(e,n)=>{let t={...e,body:await Q(e.body,n)},s=J(e,t.body),r=t.body;(0,m.throwDefaultError)({output:e,parsedBody:r,exceptionCtor:K.S3ServiceException,errorCode:s})},aDe=async(e,n)=>{if(e.statusCode!==200&&e.statusCode>=300)return cDe(e,n);let t=w({$metadata:G(e)}),s=(0,m.expectNonNull)((0,m.expectObject)(await Re(e.body,n)),"body");return s.ContinuationToken!==void 0&&(t.ContinuationToken=(0,m.expectString)(s.ContinuationToken)),s.InventoryConfiguration===""?t.InventoryConfigurationList=[]:s.InventoryConfiguration!==void 0&&(t.InventoryConfigurationList=wOe((0,m.getArrayIfSingleItem)(s.InventoryConfiguration),n)),s.IsTruncated!==void 0&&(t.IsTruncated=(0,m.parseBoolean)(s.IsTruncated)),s.NextContinuationToken!==void 0&&(t.NextContinuationToken=(0,m.expectString)(s.NextContinuationToken)),t};y.deserializeAws_restXmlListBucketInventoryConfigurationsCommand=aDe;var cDe=async(e,n)=>{let t={...e,body:await Q(e.body,n)},s=J(e,t.body),r=t.body;(0,m.throwDefaultError)({output:e,parsedBody:r,exceptionCtor:K.S3ServiceException,errorCode:s})},lDe=async(e,n)=>{if(e.statusCode!==200&&e.statusCode>=300)return dDe(e,n);let t=w({$metadata:G(e)}),s=(0,m.expectNonNull)((0,m.expectObject)(await Re(e.body,n)),"body");return s.ContinuationToken!==void 0&&(t.ContinuationToken=(0,m.expectString)(s.ContinuationToken)),s.IsTruncated!==void 0&&(t.IsTruncated=(0,m.parseBoolean)(s.IsTruncated)),s.MetricsConfiguration===""?t.MetricsConfigurationList=[]:s.MetricsConfiguration!==void 0&&(t.MetricsConfigurationList=TOe((0,m.getArrayIfSingleItem)(s.MetricsConfiguration),n)),s.NextContinuationToken!==void 0&&(t.NextContinuationToken=(0,m.expectString)(s.NextContinuationToken)),t};y.deserializeAws_restXmlListBucketMetricsConfigurationsCommand=lDe;var dDe=async(e,n)=>{let t={...e,body:await Q(e.body,n)},s=J(e,t.body),r=t.body;(0,m.throwDefaultError)({output:e,parsedBody:r,exceptionCtor:K.S3ServiceException,errorCode:s})},uDe=async(e,n)=>{if(e.statusCode!==200&&e.statusCode>=300)return mDe(e,n);let t=w({$metadata:G(e)}),s=(0,m.expectNonNull)((0,m.expectObject)(await Re(e.body,n)),"body");return s.Buckets===""?t.Buckets=[]:s.Buckets!==void 0&&s.Buckets.Bucket!==void 0&&(t.Buckets=GMe((0,m.getArrayIfSingleItem)(s.Buckets.Bucket),n)),s.Owner!==void 0&&(t.Owner=ei(s.Owner,n)),t};y.deserializeAws_restXmlListBucketsCommand=uDe;var mDe=async(e,n)=>{let t={...e,body:await Q(e.body,n)},s=J(e,t.body),r=t.body;(0,m.throwDefaultError)({output:e,parsedBody:r,exceptionCtor:K.S3ServiceException,errorCode:s})},pDe=async(e,n)=>{if(e.statusCode!==200&&e.statusCode>=300)return gDe(e,n);let t=w({$metadata:G(e)}),s=(0,m.expectNonNull)((0,m.expectObject)(await Re(e.body,n)),"body");return s.Bucket!==void 0&&(t.Bucket=(0,m.expectString)(s.Bucket)),s.CommonPrefixes===""?t.CommonPrefixes=[]:s.CommonPrefixes!==void 0&&(t.CommonPrefixes=fE((0,m.getArrayIfSingleItem)(s.CommonPrefixes),n)),s.Delimiter!==void 0&&(t.Delimiter=(0,m.expectString)(s.Delimiter)),s.EncodingType!==void 0&&(t.EncodingType=(0,m.expectString)(s.EncodingType)),s.IsTruncated!==void 0&&(t.IsTruncated=(0,m.parseBoolean)(s.IsTruncated)),s.KeyMarker!==void 0&&(t.KeyMarker=(0,m.expectString)(s.KeyMarker)),s.MaxUploads!==void 0&&(t.MaxUploads=(0,m.strictParseInt32)(s.MaxUploads)),s.NextKeyMarker!==void 0&&(t.NextKeyMarker=(0,m.expectString)(s.NextKeyMarker)),s.NextUploadIdMarker!==void 0&&(t.NextUploadIdMarker=(0,m.expectString)(s.NextUploadIdMarker)),s.Prefix!==void 0&&(t.Prefix=(0,m.expectString)(s.Prefix)),s.UploadIdMarker!==void 0&&(t.UploadIdMarker=(0,m.expectString)(s.UploadIdMarker)),s.Upload===""?t.Uploads=[]:s.Upload!==void 0&&(t.Uploads=OOe((0,m.getArrayIfSingleItem)(s.Upload),n)),t};y.deserializeAws_restXmlListMultipartUploadsCommand=pDe;var gDe=async(e,n)=>{let t={...e,body:await Q(e.body,n)},s=J(e,t.body),r=t.body;(0,m.throwDefaultError)({output:e,parsedBody:r,exceptionCtor:K.S3ServiceException,errorCode:s})},yDe=async(e,n)=>{if(e.statusCode!==200&&e.statusCode>=300)return _De(e,n);let t=w({$metadata:G(e)}),s=(0,m.expectNonNull)((0,m.expectObject)(await Re(e.body,n)),"body");return s.CommonPrefixes===""?t.CommonPrefixes=[]:s.CommonPrefixes!==void 0&&(t.CommonPrefixes=fE((0,m.getArrayIfSingleItem)(s.CommonPrefixes),n)),s.Contents===""?t.Contents=[]:s.Contents!==void 0&&(t.Contents=x$((0,m.getArrayIfSingleItem)(s.Contents),n)),s.Delimiter!==void 0&&(t.Delimiter=(0,m.expectString)(s.Delimiter)),s.EncodingType!==void 0&&(t.EncodingType=(0,m.expectString)(s.EncodingType)),s.IsTruncated!==void 0&&(t.IsTruncated=(0,m.parseBoolean)(s.IsTruncated)),s.Marker!==void 0&&(t.Marker=(0,m.expectString)(s.Marker)),s.MaxKeys!==void 0&&(t.MaxKeys=(0,m.strictParseInt32)(s.MaxKeys)),s.Name!==void 0&&(t.Name=(0,m.expectString)(s.Name)),s.NextMarker!==void 0&&(t.NextMarker=(0,m.expectString)(s.NextMarker)),s.Prefix!==void 0&&(t.Prefix=(0,m.expectString)(s.Prefix)),t};y.deserializeAws_restXmlListObjectsCommand=yDe;var _De=async(e,n)=>{let t={...e,body:await Q(e.body,n)},s=J(e,t.body);switch(s){case"NoSuchBucket":case"com.amazonaws.s3#NoSuchBucket":throw await u$(t,n);default:let r=t.body;(0,m.throwDefaultError)({output:e,parsedBody:r,exceptionCtor:K.S3ServiceException,errorCode:s})}},fDe=async(e,n)=>{if(e.statusCode!==200&&e.statusCode>=300)return SDe(e,n);let t=w({$metadata:G(e)}),s=(0,m.expectNonNull)((0,m.expectObject)(await Re(e.body,n)),"body");return s.CommonPrefixes===""?t.CommonPrefixes=[]:s.CommonPrefixes!==void 0&&(t.CommonPrefixes=fE((0,m.getArrayIfSingleItem)(s.CommonPrefixes),n)),s.Contents===""?t.Contents=[]:s.Contents!==void 0&&(t.Contents=x$((0,m.getArrayIfSingleItem)(s.Contents),n)),s.ContinuationToken!==void 0&&(t.ContinuationToken=(0,m.expectString)(s.ContinuationToken)),s.Delimiter!==void 0&&(t.Delimiter=(0,m.expectString)(s.Delimiter)),s.EncodingType!==void 0&&(t.EncodingType=(0,m.expectString)(s.EncodingType)),s.IsTruncated!==void 0&&(t.IsTruncated=(0,m.parseBoolean)(s.IsTruncated)),s.KeyCount!==void 0&&(t.KeyCount=(0,m.strictParseInt32)(s.KeyCount)),s.MaxKeys!==void 0&&(t.MaxKeys=(0,m.strictParseInt32)(s.MaxKeys)),s.Name!==void 0&&(t.Name=(0,m.expectString)(s.Name)),s.NextContinuationToken!==void 0&&(t.NextContinuationToken=(0,m.expectString)(s.NextContinuationToken)),s.Prefix!==void 0&&(t.Prefix=(0,m.expectString)(s.Prefix)),s.StartAfter!==void 0&&(t.StartAfter=(0,m.expectString)(s.StartAfter)),t};y.deserializeAws_restXmlListObjectsV2Command=fDe;var SDe=async(e,n)=>{let t={...e,body:await Q(e.body,n)},s=J(e,t.body);switch(s){case"NoSuchBucket":case"com.amazonaws.s3#NoSuchBucket":throw await u$(t,n);default:let r=t.body;(0,m.throwDefaultError)({output:e,parsedBody:r,exceptionCtor:K.S3ServiceException,errorCode:s})}},hDe=async(e,n)=>{if(e.statusCode!==200&&e.statusCode>=300)return wDe(e,n);let t=w({$metadata:G(e)}),s=(0,m.expectNonNull)((0,m.expectObject)(await Re(e.body,n)),"body");return s.CommonPrefixes===""?t.CommonPrefixes=[]:s.CommonPrefixes!==void 0&&(t.CommonPrefixes=fE((0,m.getArrayIfSingleItem)(s.CommonPrefixes),n)),s.DeleteMarker===""?t.DeleteMarkers=[]:s.DeleteMarker!==void 0&&(t.DeleteMarkers=nOe((0,m.getArrayIfSingleItem)(s.DeleteMarker),n)),s.Delimiter!==void 0&&(t.Delimiter=(0,m.expectString)(s.Delimiter)),s.EncodingType!==void 0&&(t.EncodingType=(0,m.expectString)(s.EncodingType)),s.IsTruncated!==void 0&&(t.IsTruncated=(0,m.parseBoolean)(s.IsTruncated)),s.KeyMarker!==void 0&&(t.KeyMarker=(0,m.expectString)(s.KeyMarker)),s.MaxKeys!==void 0&&(t.MaxKeys=(0,m.strictParseInt32)(s.MaxKeys)),s.Name!==void 0&&(t.Name=(0,m.expectString)(s.Name)),s.NextKeyMarker!==void 0&&(t.NextKeyMarker=(0,m.expectString)(s.NextKeyMarker)),s.NextVersionIdMarker!==void 0&&(t.NextVersionIdMarker=(0,m.expectString)(s.NextVersionIdMarker)),s.Prefix!==void 0&&(t.Prefix=(0,m.expectString)(s.Prefix)),s.VersionIdMarker!==void 0&&(t.VersionIdMarker=(0,m.expectString)(s.VersionIdMarker)),s.Version===""?t.Versions=[]:s.Version!==void 0&&(t.Versions=JOe((0,m.getArrayIfSingleItem)(s.Version),n)),t};y.deserializeAws_restXmlListObjectVersionsCommand=hDe;var wDe=async(e,n)=>{let t={...e,body:await Q(e.body,n)},s=J(e,t.body),r=t.body;(0,m.throwDefaultError)({output:e,parsedBody:r,exceptionCtor:K.S3ServiceException,errorCode:s})},EDe=async(e,n)=>{if(e.statusCode!==200&&e.statusCode>=300)return CDe(e,n);let t=w({$metadata:G(e),AbortDate:[()=>e.headers["x-amz-abort-date"]!==void 0,()=>(0,m.expectNonNull)((0,m.parseRfc7231DateTime)(e.headers["x-amz-abort-date"]))],AbortRuleId:[,e.headers["x-amz-abort-rule-id"]],RequestCharged:[,e.headers["x-amz-request-charged"]]}),s=(0,m.expectNonNull)((0,m.expectObject)(await Re(e.body,n)),"body");return s.Bucket!==void 0&&(t.Bucket=(0,m.expectString)(s.Bucket)),s.ChecksumAlgorithm!==void 0&&(t.ChecksumAlgorithm=(0,m.expectString)(s.ChecksumAlgorithm)),s.Initiator!==void 0&&(t.Initiator=C$(s.Initiator,n)),s.IsTruncated!==void 0&&(t.IsTruncated=(0,m.parseBoolean)(s.IsTruncated)),s.Key!==void 0&&(t.Key=(0,m.expectString)(s.Key)),s.MaxParts!==void 0&&(t.MaxParts=(0,m.strictParseInt32)(s.MaxParts)),s.NextPartNumberMarker!==void 0&&(t.NextPartNumberMarker=(0,m.expectString)(s.NextPartNumberMarker)),s.Owner!==void 0&&(t.Owner=ei(s.Owner,n)),s.PartNumberMarker!==void 0&&(t.PartNumberMarker=(0,m.expectString)(s.PartNumberMarker)),s.Part===""?t.Parts=[]:s.Part!==void 0&&(t.Parts=nBe((0,m.getArrayIfSingleItem)(s.Part),n)),s.StorageClass!==void 0&&(t.StorageClass=(0,m.expectString)(s.StorageClass)),s.UploadId!==void 0&&(t.UploadId=(0,m.expectString)(s.UploadId)),t};y.deserializeAws_restXmlListPartsCommand=EDe;var CDe=async(e,n)=>{let t={...e,body:await Q(e.body,n)},s=J(e,t.body),r=t.body;(0,m.throwDefaultError)({output:e,parsedBody:r,exceptionCtor:K.S3ServiceException,errorCode:s})},vDe=async(e,n)=>{if(e.statusCode!==200&&e.statusCode>=300)return PDe(e,n);let t=w({$metadata:G(e)});return await Ae(e.body,n),t};y.deserializeAws_restXmlPutBucketAccelerateConfigurationCommand=vDe;var PDe=async(e,n)=>{let t={...e,body:await Q(e.body,n)},s=J(e,t.body),r=t.body;(0,m.throwDefaultError)({output:e,parsedBody:r,exceptionCtor:K.S3ServiceException,errorCode:s})},ADe=async(e,n)=>{if(e.statusCode!==200&&e.statusCode>=300)return xDe(e,n);let t=w({$metadata:G(e)});return await Ae(e.body,n),t};y.deserializeAws_restXmlPutBucketAclCommand=ADe;var xDe=async(e,n)=>{let t={...e,body:await Q(e.body,n)},s=J(e,t.body),r=t.body;(0,m.throwDefaultError)({output:e,parsedBody:r,exceptionCtor:K.S3ServiceException,errorCode:s})},bDe=async(e,n)=>{if(e.statusCode!==200&&e.statusCode>=300)return IDe(e,n);let t=w({$metadata:G(e)});return await Ae(e.body,n),t};y.deserializeAws_restXmlPutBucketAnalyticsConfigurationCommand=bDe;var IDe=async(e,n)=>{let t={...e,body:await Q(e.body,n)},s=J(e,t.body),r=t.body;(0,m.throwDefaultError)({output:e,parsedBody:r,exceptionCtor:K.S3ServiceException,errorCode:s})},kDe=async(e,n)=>{if(e.statusCode!==200&&e.statusCode>=300)return RDe(e,n);let t=w({$metadata:G(e)});return await Ae(e.body,n),t};y.deserializeAws_restXmlPutBucketCorsCommand=kDe;var RDe=async(e,n)=>{let t={...e,body:await Q(e.body,n)},s=J(e,t.body),r=t.body;(0,m.throwDefaultError)({output:e,parsedBody:r,exceptionCtor:K.S3ServiceException,errorCode:s})},NDe=async(e,n)=>{if(e.statusCode!==200&&e.statusCode>=300)return zDe(e,n);let t=w({$metadata:G(e)});return await Ae(e.body,n),t};y.deserializeAws_restXmlPutBucketEncryptionCommand=NDe;var zDe=async(e,n)=>{let t={...e,body:await Q(e.body,n)},s=J(e,t.body),r=t.body;(0,m.throwDefaultError)({output:e,parsedBody:r,exceptionCtor:K.S3ServiceException,errorCode:s})},qDe=async(e,n)=>{if(e.statusCode!==200&&e.statusCode>=300)return LDe(e,n);let t=w({$metadata:G(e)});return await Ae(e.body,n),t};y.deserializeAws_restXmlPutBucketIntelligentTieringConfigurationCommand=qDe;var LDe=async(e,n)=>{let t={...e,body:await Q(e.body,n)},s=J(e,t.body),r=t.body;(0,m.throwDefaultError)({output:e,parsedBody:r,exceptionCtor:K.S3ServiceException,errorCode:s})},FDe=async(e,n)=>{if(e.statusCode!==200&&e.statusCode>=300)return DDe(e,n);let t=w({$metadata:G(e)});return await Ae(e.body,n),t};y.deserializeAws_restXmlPutBucketInventoryConfigurationCommand=FDe;var DDe=async(e,n)=>{let t={...e,body:await Q(e.body,n)},s=J(e,t.body),r=t.body;(0,m.throwDefaultError)({output:e,parsedBody:r,exceptionCtor:K.S3ServiceException,errorCode:s})},TDe=async(e,n)=>{if(e.statusCode!==200&&e.statusCode>=300)return jDe(e,n);let t=w({$metadata:G(e)});return await Ae(e.body,n),t};y.deserializeAws_restXmlPutBucketLifecycleConfigurationCommand=TDe;var jDe=async(e,n)=>{let t={...e,body:await Q(e.body,n)},s=J(e,t.body),r=t.body;(0,m.throwDefaultError)({output:e,parsedBody:r,exceptionCtor:K.S3ServiceException,errorCode:s})},MDe=async(e,n)=>{if(e.statusCode!==200&&e.statusCode>=300)return ODe(e,n);let t=w({$metadata:G(e)});return await Ae(e.body,n),t};y.deserializeAws_restXmlPutBucketLoggingCommand=MDe;var ODe=async(e,n)=>{let t={...e,body:await Q(e.body,n)},s=J(e,t.body),r=t.body;(0,m.throwDefaultError)({output:e,parsedBody:r,exceptionCtor:K.S3ServiceException,errorCode:s})},BDe=async(e,n)=>{if(e.statusCode!==200&&e.statusCode>=300)return GDe(e,n);let t=w({$metadata:G(e)});return await Ae(e.body,n),t};y.deserializeAws_restXmlPutBucketMetricsConfigurationCommand=BDe;var GDe=async(e,n)=>{let t={...e,body:await Q(e.body,n)},s=J(e,t.body),r=t.body;(0,m.throwDefaultError)({output:e,parsedBody:r,exceptionCtor:K.S3ServiceException,errorCode:s})},UDe=async(e,n)=>{if(e.statusCode!==200&&e.statusCode>=300)return XDe(e,n);let t=w({$metadata:G(e)});return await Ae(e.body,n),t};y.deserializeAws_restXmlPutBucketNotificationConfigurationCommand=UDe;var XDe=async(e,n)=>{let t={...e,body:await Q(e.body,n)},s=J(e,t.body),r=t.body;(0,m.throwDefaultError)({output:e,parsedBody:r,exceptionCtor:K.S3ServiceException,errorCode:s})},$De=async(e,n)=>{if(e.statusCode!==200&&e.statusCode>=300)return HDe(e,n);let t=w({$metadata:G(e)});return await Ae(e.body,n),t};y.deserializeAws_restXmlPutBucketOwnershipControlsCommand=$De;var HDe=async(e,n)=>{let t={...e,body:await Q(e.body,n)},s=J(e,t.body),r=t.body;(0,m.throwDefaultError)({output:e,parsedBody:r,exceptionCtor:K.S3ServiceException,errorCode:s})},VDe=async(e,n)=>{if(e.statusCode!==200&&e.statusCode>=300)return WDe(e,n);let t=w({$metadata:G(e)});return await Ae(e.body,n),t};y.deserializeAws_restXmlPutBucketPolicyCommand=VDe;var WDe=async(e,n)=>{let t={...e,body:await Q(e.body,n)},s=J(e,t.body),r=t.body;(0,m.throwDefaultError)({output:e,parsedBody:r,exceptionCtor:K.S3ServiceException,errorCode:s})},KDe=async(e,n)=>{if(e.statusCode!==200&&e.statusCode>=300)return QDe(e,n);let t=w({$metadata:G(e)});return await Ae(e.body,n),t};y.deserializeAws_restXmlPutBucketReplicationCommand=KDe;var QDe=async(e,n)=>{let t={...e,body:await Q(e.body,n)},s=J(e,t.body),r=t.body;(0,m.throwDefaultError)({output:e,parsedBody:r,exceptionCtor:K.S3ServiceException,errorCode:s})},JDe=async(e,n)=>{if(e.statusCode!==200&&e.statusCode>=300)return YDe(e,n);let t=w({$metadata:G(e)});return await Ae(e.body,n),t};y.deserializeAws_restXmlPutBucketRequestPaymentCommand=JDe;var YDe=async(e,n)=>{let t={...e,body:await Q(e.body,n)},s=J(e,t.body),r=t.body;(0,m.throwDefaultError)({output:e,parsedBody:r,exceptionCtor:K.S3ServiceException,errorCode:s})},ZDe=async(e,n)=>{if(e.statusCode!==200&&e.statusCode>=300)return eTe(e,n);let t=w({$metadata:G(e)});return await Ae(e.body,n),t};y.deserializeAws_restXmlPutBucketTaggingCommand=ZDe;var eTe=async(e,n)=>{let t={...e,body:await Q(e.body,n)},s=J(e,t.body),r=t.body;(0,m.throwDefaultError)({output:e,parsedBody:r,exceptionCtor:K.S3ServiceException,errorCode:s})},tTe=async(e,n)=>{if(e.statusCode!==200&&e.statusCode>=300)return nTe(e,n);let t=w({$metadata:G(e)});return await Ae(e.body,n),t};y.deserializeAws_restXmlPutBucketVersioningCommand=tTe;var nTe=async(e,n)=>{let t={...e,body:await Q(e.body,n)},s=J(e,t.body),r=t.body;(0,m.throwDefaultError)({output:e,parsedBody:r,exceptionCtor:K.S3ServiceException,errorCode:s})},sTe=async(e,n)=>{if(e.statusCode!==200&&e.statusCode>=300)return rTe(e,n);let t=w({$metadata:G(e)});return await Ae(e.body,n),t};y.deserializeAws_restXmlPutBucketWebsiteCommand=sTe;var rTe=async(e,n)=>{let t={...e,body:await Q(e.body,n)},s=J(e,t.body),r=t.body;(0,m.throwDefaultError)({output:e,parsedBody:r,exceptionCtor:K.S3ServiceException,errorCode:s})},iTe=async(e,n)=>{if(e.statusCode!==200&&e.statusCode>=300)return oTe(e,n);let t=w({$metadata:G(e),Expiration:[,e.headers["x-amz-expiration"]],ETag:[,e.headers.etag],ChecksumCRC32:[,e.headers["x-amz-checksum-crc32"]],ChecksumCRC32C:[,e.headers["x-amz-checksum-crc32c"]],ChecksumSHA1:[,e.headers["x-amz-checksum-sha1"]],ChecksumSHA256:[,e.headers["x-amz-checksum-sha256"]],ServerSideEncryption:[,e.headers["x-amz-server-side-encryption"]],VersionId:[,e.headers["x-amz-version-id"]],SSECustomerAlgorithm:[,e.headers["x-amz-server-side-encryption-customer-algorithm"]],SSECustomerKeyMD5:[,e.headers["x-amz-server-side-encryption-customer-key-md5"]],SSEKMSKeyId:[,e.headers["x-amz-server-side-encryption-aws-kms-key-id"]],SSEKMSEncryptionContext:[,e.headers["x-amz-server-side-encryption-context"]],BucketKeyEnabled:[()=>e.headers["x-amz-server-side-encryption-bucket-key-enabled"]!==void 0,()=>(0,m.parseBoolean)(e.headers["x-amz-server-side-encryption-bucket-key-enabled"])],RequestCharged:[,e.headers["x-amz-request-charged"]]});return await Ae(e.body,n),t};y.deserializeAws_restXmlPutObjectCommand=iTe;var oTe=async(e,n)=>{let t={...e,body:await Q(e.body,n)},s=J(e,t.body),r=t.body;(0,m.throwDefaultError)({output:e,parsedBody:r,exceptionCtor:K.S3ServiceException,errorCode:s})},aTe=async(e,n)=>{if(e.statusCode!==200&&e.statusCode>=300)return cTe(e,n);let t=w({$metadata:G(e),RequestCharged:[,e.headers["x-amz-request-charged"]]});return await Ae(e.body,n),t};y.deserializeAws_restXmlPutObjectAclCommand=aTe;var cTe=async(e,n)=>{let t={...e,body:await Q(e.body,n)},s=J(e,t.body);switch(s){case"NoSuchKey":case"com.amazonaws.s3#NoSuchKey":throw await _E(t,n);default:let r=t.body;(0,m.throwDefaultError)({output:e,parsedBody:r,exceptionCtor:K.S3ServiceException,errorCode:s})}},lTe=async(e,n)=>{if(e.statusCode!==200&&e.statusCode>=300)return dTe(e,n);let t=w({$metadata:G(e),RequestCharged:[,e.headers["x-amz-request-charged"]]});return await Ae(e.body,n),t};y.deserializeAws_restXmlPutObjectLegalHoldCommand=lTe;var dTe=async(e,n)=>{let t={...e,body:await Q(e.body,n)},s=J(e,t.body),r=t.body;(0,m.throwDefaultError)({output:e,parsedBody:r,exceptionCtor:K.S3ServiceException,errorCode:s})},uTe=async(e,n)=>{if(e.statusCode!==200&&e.statusCode>=300)return mTe(e,n);let t=w({$metadata:G(e),RequestCharged:[,e.headers["x-amz-request-charged"]]});return await Ae(e.body,n),t};y.deserializeAws_restXmlPutObjectLockConfigurationCommand=uTe;var mTe=async(e,n)=>{let t={...e,body:await Q(e.body,n)},s=J(e,t.body),r=t.body;(0,m.throwDefaultError)({output:e,parsedBody:r,exceptionCtor:K.S3ServiceException,errorCode:s})},pTe=async(e,n)=>{if(e.statusCode!==200&&e.statusCode>=300)return gTe(e,n);let t=w({$metadata:G(e),RequestCharged:[,e.headers["x-amz-request-charged"]]});return await Ae(e.body,n),t};y.deserializeAws_restXmlPutObjectRetentionCommand=pTe;var gTe=async(e,n)=>{let t={...e,body:await Q(e.body,n)},s=J(e,t.body),r=t.body;(0,m.throwDefaultError)({output:e,parsedBody:r,exceptionCtor:K.S3ServiceException,errorCode:s})},yTe=async(e,n)=>{if(e.statusCode!==200&&e.statusCode>=300)return _Te(e,n);let t=w({$metadata:G(e),VersionId:[,e.headers["x-amz-version-id"]]});return await Ae(e.body,n),t};y.deserializeAws_restXmlPutObjectTaggingCommand=yTe;var _Te=async(e,n)=>{let t={...e,body:await Q(e.body,n)},s=J(e,t.body),r=t.body;(0,m.throwDefaultError)({output:e,parsedBody:r,exceptionCtor:K.S3ServiceException,errorCode:s})},fTe=async(e,n)=>{if(e.statusCode!==200&&e.statusCode>=300)return STe(e,n);let t=w({$metadata:G(e)});return await Ae(e.body,n),t};y.deserializeAws_restXmlPutPublicAccessBlockCommand=fTe;var STe=async(e,n)=>{let t={...e,body:await Q(e.body,n)},s=J(e,t.body),r=t.body;(0,m.throwDefaultError)({output:e,parsedBody:r,exceptionCtor:K.S3ServiceException,errorCode:s})},hTe=async(e,n)=>{if(e.statusCode!==200&&e.statusCode>=300)return wTe(e,n);let t=w({$metadata:G(e),RequestCharged:[,e.headers["x-amz-request-charged"]],RestoreOutputPath:[,e.headers["x-amz-restore-output-path"]]});return await Ae(e.body,n),t};y.deserializeAws_restXmlRestoreObjectCommand=hTe;var wTe=async(e,n)=>{let t={...e,body:await Q(e.body,n)},s=J(e,t.body);switch(s){case"ObjectAlreadyInActiveTierError":case"com.amazonaws.s3#ObjectAlreadyInActiveTierError":throw await qTe(t,n);default:let r=t.body;(0,m.throwDefaultError)({output:e,parsedBody:r,exceptionCtor:K.S3ServiceException,errorCode:s})}},ETe=async(e,n)=>{if(e.statusCode!==200&&e.statusCode>=300)return CTe(e,n);let t=w({$metadata:G(e)}),s=e.body;return t.Payload=FTe(s,n),t};y.deserializeAws_restXmlSelectObjectContentCommand=ETe;var CTe=async(e,n)=>{let t={...e,body:await Q(e.body,n)},s=J(e,t.body),r=t.body;(0,m.throwDefaultError)({output:e,parsedBody:r,exceptionCtor:K.S3ServiceException,errorCode:s})},vTe=async(e,n)=>{if(e.statusCode!==200&&e.statusCode>=300)return PTe(e,n);let t=w({$metadata:G(e),ServerSideEncryption:[,e.headers["x-amz-server-side-encryption"]],ETag:[,e.headers.etag],ChecksumCRC32:[,e.headers["x-amz-checksum-crc32"]],ChecksumCRC32C:[,e.headers["x-amz-checksum-crc32c"]],ChecksumSHA1:[,e.headers["x-amz-checksum-sha1"]],ChecksumSHA256:[,e.headers["x-amz-checksum-sha256"]],SSECustomerAlgorithm:[,e.headers["x-amz-server-side-encryption-customer-algorithm"]],SSECustomerKeyMD5:[,e.headers["x-amz-server-side-encryption-customer-key-md5"]],SSEKMSKeyId:[,e.headers["x-amz-server-side-encryption-aws-kms-key-id"]],BucketKeyEnabled:[()=>e.headers["x-amz-server-side-encryption-bucket-key-enabled"]!==void 0,()=>(0,m.parseBoolean)(e.headers["x-amz-server-side-encryption-bucket-key-enabled"])],RequestCharged:[,e.headers["x-amz-request-charged"]]});return await Ae(e.body,n),t};y.deserializeAws_restXmlUploadPartCommand=vTe;var PTe=async(e,n)=>{let t={...e,body:await Q(e.body,n)},s=J(e,t.body),r=t.body;(0,m.throwDefaultError)({output:e,parsedBody:r,exceptionCtor:K.S3ServiceException,errorCode:s})},ATe=async(e,n)=>{if(e.statusCode!==200&&e.statusCode>=300)return xTe(e,n);let t=w({$metadata:G(e),CopySourceVersionId:[,e.headers["x-amz-copy-source-version-id"]],ServerSideEncryption:[,e.headers["x-amz-server-side-encryption"]],SSECustomerAlgorithm:[,e.headers["x-amz-server-side-encryption-customer-algorithm"]],SSECustomerKeyMD5:[,e.headers["x-amz-server-side-encryption-customer-key-md5"]],SSEKMSKeyId:[,e.headers["x-amz-server-side-encryption-aws-kms-key-id"]],BucketKeyEnabled:[()=>e.headers["x-amz-server-side-encryption-bucket-key-enabled"]!==void 0,()=>(0,m.parseBoolean)(e.headers["x-amz-server-side-encryption-bucket-key-enabled"])],RequestCharged:[,e.headers["x-amz-request-charged"]]}),s=(0,m.expectObject)(await Re(e.body,n));return t.CopyPartResult=WMe(s,n),t};y.deserializeAws_restXmlUploadPartCopyCommand=ATe;var xTe=async(e,n)=>{let t={...e,body:await Q(e.body,n)},s=J(e,t.body),r=t.body;(0,m.throwDefaultError)({output:e,parsedBody:r,exceptionCtor:K.S3ServiceException,errorCode:s})},bTe=async(e,n)=>{if(e.statusCode!==200&&e.statusCode>=300)return ITe(e,n);let t=w({$metadata:G(e)});return await Ae(e.body,n),t};y.deserializeAws_restXmlWriteGetObjectResponseCommand=bTe;var ITe=async(e,n)=>{let t={...e,body:await Q(e.body,n)},s=J(e,t.body),r=t.body;(0,m.throwDefaultError)({output:e,parsedBody:r,exceptionCtor:K.S3ServiceException,errorCode:s})},w=m.map,kTe=async(e,n)=>{let t=w({}),s=e.body,r=new Xn.BucketAlreadyExists({$metadata:G(e),...t});return(0,m.decorateServiceException)(r,e.body)},RTe=async(e,n)=>{let t=w({}),s=e.body,r=new Xn.BucketAlreadyOwnedByYou({$metadata:G(e),...t});return(0,m.decorateServiceException)(r,e.body)},NTe=async(e,n)=>{let t=w({}),s=e.body;s.AccessTier!==void 0&&(t.AccessTier=(0,m.expectString)(s.AccessTier)),s.StorageClass!==void 0&&(t.StorageClass=(0,m.expectString)(s.StorageClass));let r=new Xn.InvalidObjectState({$metadata:G(e),...t});return(0,m.decorateServiceException)(r,e.body)},u$=async(e,n)=>{let t=w({}),s=e.body,r=new Xn.NoSuchBucket({$metadata:G(e),...t});return(0,m.decorateServiceException)(r,e.body)},_E=async(e,n)=>{let t=w({}),s=e.body,r=new Xn.NoSuchKey({$metadata:G(e),...t});return(0,m.decorateServiceException)(r,e.body)},zTe=async(e,n)=>{let t=w({}),s=e.body,r=new Xn.NoSuchUpload({$metadata:G(e),...t});return(0,m.decorateServiceException)(r,e.body)},m$=async(e,n)=>{let t=w({}),s=e.body,r=new Xn.NotFound({$metadata:G(e),...t});return(0,m.decorateServiceException)(r,e.body)},qTe=async(e,n)=>{let t=w({}),s=e.body,r=new hze.ObjectAlreadyInActiveTierError({$metadata:G(e),...t});return(0,m.decorateServiceException)(r,e.body)},LTe=async(e,n)=>{let t=w({}),s=e.body,r=new Xn.ObjectNotInActiveTierError({$metadata:G(e),...t});return(0,m.decorateServiceException)(r,e.body)},FTe=(e,n)=>n.eventStreamMarshaller.deserialize(e,async t=>t.Records!=null?{Records:await MTe(t.Records,n)}:t.Stats!=null?{Stats:await OTe(t.Stats,n)}:t.Progress!=null?{Progress:await jTe(t.Progress,n)}:t.Cont!=null?{Cont:await DTe(t.Cont,n)}:t.End!=null?{End:await TTe(t.End,n)}:{$unknown:e}),DTe=async(e,n)=>{let t={},s=await Re(e.body,n);return Object.assign(t,HMe(s,n)),t},TTe=async(e,n)=>{let t={},s=await Re(e.body,n);return Object.assign(t,iOe(s,n)),t},jTe=async(e,n)=>{let t={},s=await Re(e.body,n);return t.Details=iBe(s,n),t},MTe=async(e,n)=>{let t={};return t.Payload=e.body,t},OTe=async(e,n)=>{let t={},s=await Re(e.body,n);return t.Details=kBe(s,n),t},BTe=(e,n)=>{let t=new S.XmlNode("AbortIncompleteMultipartUpload");if(e.DaysAfterInitiation!=null){let s=S.XmlNode.of("DaysAfterInitiation",String(e.DaysAfterInitiation)).withName("DaysAfterInitiation");t.addChildNode(s)}return t},G2=(e,n)=>{let t=new S.XmlNode("AccelerateConfiguration");if(e.Status!=null){let s=S.XmlNode.of("BucketAccelerateStatus",e.Status).withName("Status");t.addChildNode(s)}return t},yE=(e,n)=>{let t=new S.XmlNode("AccessControlPolicy");if(e.Grants!=null){let s=g$(e.Grants,n),r=new S.XmlNode("AccessControlList");s.map(i=>{r.addChildNode(i)}),t.addChildNode(r)}if(e.Owner!=null){let s=Hje(e.Owner,n).withName("Owner");t.addChildNode(s)}return t},GTe=(e,n)=>{let t=new S.XmlNode("AccessControlTranslation");if(e.Owner!=null){let s=S.XmlNode.of("OwnerOverride",e.Owner).withName("Owner");t.addChildNode(s)}return t},UTe=(e,n)=>e.filter(t=>t!=null).map(t=>S.XmlNode.of("AllowedHeader",t).withName("member")),XTe=(e,n)=>e.filter(t=>t!=null).map(t=>S.XmlNode.of("AllowedMethod",t).withName("member")),$Te=(e,n)=>e.filter(t=>t!=null).map(t=>S.XmlNode.of("AllowedOrigin",t).withName("member")),HTe=(e,n)=>{let t=new S.XmlNode("AnalyticsAndOperator");if(e.Prefix!=null){let s=S.XmlNode.of("Prefix",e.Prefix).withName("Prefix");t.addChildNode(s)}return e.Tags!=null&&Po(e.Tags,n).map(r=>{r=r.withName("Tag"),t.addChildNode(r)}),t},U2=(e,n)=>{let t=new S.XmlNode("AnalyticsConfiguration");if(e.Id!=null){let s=S.XmlNode.of("AnalyticsId",e.Id).withName("Id");t.addChildNode(s)}if(e.Filter!=null){let s=WTe(e.Filter,n).withName("Filter");t.addChildNode(s)}if(e.StorageClassAnalysis!=null){let s=wMe(e.StorageClassAnalysis,n).withName("StorageClassAnalysis");t.addChildNode(s)}return t},VTe=(e,n)=>{let t=new S.XmlNode("AnalyticsExportDestination");if(e.S3BucketDestination!=null){let s=KTe(e.S3BucketDestination,n).withName("S3BucketDestination");t.addChildNode(s)}return t},WTe=(e,n)=>{let t=new S.XmlNode("AnalyticsFilter");return Xn.AnalyticsFilter.visit(e,{Prefix:s=>{let r=S.XmlNode.of("Prefix",s).withName("Prefix");t.addChildNode(r)},Tag:s=>{let r=vo(s,n).withName("Tag");t.addChildNode(r)},And:s=>{let r=HTe(s,n).withName("And");t.addChildNode(r)},_:(s,r)=>{if(!(r instanceof S.XmlNode||r instanceof S.XmlText))throw new Error("Unable to serialize unknown union members in XML.");t.addChildNode(new S.XmlNode(s).addChildNode(r))}}),t},KTe=(e,n)=>{let t=new S.XmlNode("AnalyticsS3BucketDestination");if(e.Format!=null){let s=S.XmlNode.of("AnalyticsS3ExportFileFormat",e.Format).withName("Format");t.addChildNode(s)}if(e.BucketAccountId!=null){let s=S.XmlNode.of("AccountId",e.BucketAccountId).withName("BucketAccountId");t.addChildNode(s)}if(e.Bucket!=null){let s=S.XmlNode.of("BucketName",e.Bucket).withName("Bucket");t.addChildNode(s)}if(e.Prefix!=null){let s=S.XmlNode.of("Prefix",e.Prefix).withName("Prefix");t.addChildNode(s)}return t},X2=(e,n)=>{let t=new S.XmlNode("BucketLifecycleConfiguration");return e.Rules!=null&&qje(e.Rules,n).map(r=>{r=r.withName("Rule"),t.addChildNode(r)}),t},$2=(e,n)=>{let t=new S.XmlNode("BucketLoggingStatus");if(e.LoggingEnabled!=null){let s=Lje(e.LoggingEnabled,n).withName("LoggingEnabled");t.addChildNode(s)}return t},H2=(e,n)=>{let t=new S.XmlNode("CompletedMultipartUpload");return e.Parts!=null&&JTe(e.Parts,n).map(r=>{r=r.withName("Part"),t.addChildNode(r)}),t},QTe=(e,n)=>{let t=new S.XmlNode("CompletedPart");if(e.ETag!=null){let s=S.XmlNode.of("ETag",e.ETag).withName("ETag");t.addChildNode(s)}if(e.ChecksumCRC32!=null){let s=S.XmlNode.of("ChecksumCRC32",e.ChecksumCRC32).withName("ChecksumCRC32");t.addChildNode(s)}if(e.ChecksumCRC32C!=null){let s=S.XmlNode.of("ChecksumCRC32C",e.ChecksumCRC32C).withName("ChecksumCRC32C");t.addChildNode(s)}if(e.ChecksumSHA1!=null){let s=S.XmlNode.of("ChecksumSHA1",e.ChecksumSHA1).withName("ChecksumSHA1");t.addChildNode(s)}if(e.ChecksumSHA256!=null){let s=S.XmlNode.of("ChecksumSHA256",e.ChecksumSHA256).withName("ChecksumSHA256");t.addChildNode(s)}if(e.PartNumber!=null){let s=S.XmlNode.of("PartNumber",String(e.PartNumber)).withName("PartNumber");t.addChildNode(s)}return t},JTe=(e,n)=>e.filter(t=>t!=null).map(t=>QTe(t,n).withName("member")),YTe=(e,n)=>{let t=new S.XmlNode("Condition");if(e.HttpErrorCodeReturnedEquals!=null){let s=S.XmlNode.of("HttpErrorCodeReturnedEquals",e.HttpErrorCodeReturnedEquals).withName("HttpErrorCodeReturnedEquals");t.addChildNode(s)}if(e.KeyPrefixEquals!=null){let s=S.XmlNode.of("KeyPrefixEquals",e.KeyPrefixEquals).withName("KeyPrefixEquals");t.addChildNode(s)}return t},V2=(e,n)=>{let t=new S.XmlNode("CORSConfiguration");return e.CORSRules!=null&&eje(e.CORSRules,n).map(r=>{r=r.withName("CORSRule"),t.addChildNode(r)}),t},ZTe=(e,n)=>{let t=new S.XmlNode("CORSRule");if(e.ID!=null){let s=S.XmlNode.of("ID",e.ID).withName("ID");t.addChildNode(s)}if(e.AllowedHeaders!=null&&UTe(e.AllowedHeaders,n).map(r=>{r=r.withName("AllowedHeader"),t.addChildNode(r)}),e.AllowedMethods!=null&&XTe(e.AllowedMethods,n).map(r=>{r=r.withName("AllowedMethod"),t.addChildNode(r)}),e.AllowedOrigins!=null&&$Te(e.AllowedOrigins,n).map(r=>{r=r.withName("AllowedOrigin"),t.addChildNode(r)}),e.ExposeHeaders!=null&&uje(e.ExposeHeaders,n).map(r=>{r=r.withName("ExposeHeader"),t.addChildNode(r)}),e.MaxAgeSeconds!=null){let s=S.XmlNode.of("MaxAgeSeconds",String(e.MaxAgeSeconds)).withName("MaxAgeSeconds");t.addChildNode(s)}return t},eje=(e,n)=>e.filter(t=>t!=null).map(t=>ZTe(t,n).withName("member")),W2=(e,n)=>{let t=new S.XmlNode("CreateBucketConfiguration");if(e.LocationConstraint!=null){let s=S.XmlNode.of("BucketLocationConstraint",e.LocationConstraint).withName("LocationConstraint");t.addChildNode(s)}return t},tje=(e,n)=>{let t=new S.XmlNode("CSVInput");if(e.FileHeaderInfo!=null){let s=S.XmlNode.of("FileHeaderInfo",e.FileHeaderInfo).withName("FileHeaderInfo");t.addChildNode(s)}if(e.Comments!=null){let s=S.XmlNode.of("Comments",e.Comments).withName("Comments");t.addChildNode(s)}if(e.QuoteEscapeCharacter!=null){let s=S.XmlNode.of("QuoteEscapeCharacter",e.QuoteEscapeCharacter).withName("QuoteEscapeCharacter");t.addChildNode(s)}if(e.RecordDelimiter!=null){let s=S.XmlNode.of("RecordDelimiter",e.RecordDelimiter).withName("RecordDelimiter");t.addChildNode(s)}if(e.FieldDelimiter!=null){let s=S.XmlNode.of("FieldDelimiter",e.FieldDelimiter).withName("FieldDelimiter");t.addChildNode(s)}if(e.QuoteCharacter!=null){let s=S.XmlNode.of("QuoteCharacter",e.QuoteCharacter).withName("QuoteCharacter");t.addChildNode(s)}if(e.AllowQuotedRecordDelimiter!=null){let s=S.XmlNode.of("AllowQuotedRecordDelimiter",String(e.AllowQuotedRecordDelimiter)).withName("AllowQuotedRecordDelimiter");t.addChildNode(s)}return t},nje=(e,n)=>{let t=new S.XmlNode("CSVOutput");if(e.QuoteFields!=null){let s=S.XmlNode.of("QuoteFields",e.QuoteFields).withName("QuoteFields");t.addChildNode(s)}if(e.QuoteEscapeCharacter!=null){let s=S.XmlNode.of("QuoteEscapeCharacter",e.QuoteEscapeCharacter).withName("QuoteEscapeCharacter");t.addChildNode(s)}if(e.RecordDelimiter!=null){let s=S.XmlNode.of("RecordDelimiter",e.RecordDelimiter).withName("RecordDelimiter");t.addChildNode(s)}if(e.FieldDelimiter!=null){let s=S.XmlNode.of("FieldDelimiter",e.FieldDelimiter).withName("FieldDelimiter");t.addChildNode(s)}if(e.QuoteCharacter!=null){let s=S.XmlNode.of("QuoteCharacter",e.QuoteCharacter).withName("QuoteCharacter");t.addChildNode(s)}return t},sje=(e,n)=>{let t=new S.XmlNode("DefaultRetention");if(e.Mode!=null){let s=S.XmlNode.of("ObjectLockRetentionMode",e.Mode).withName("Mode");t.addChildNode(s)}if(e.Days!=null){let s=S.XmlNode.of("Days",String(e.Days)).withName("Days");t.addChildNode(s)}if(e.Years!=null){let s=S.XmlNode.of("Years",String(e.Years)).withName("Years");t.addChildNode(s)}return t},K2=(e,n)=>{let t=new S.XmlNode("Delete");if(e.Objects!=null&&Uje(e.Objects,n).map(r=>{r=r.withName("Object"),t.addChildNode(r)}),e.Quiet!=null){let s=S.XmlNode.of("Quiet",String(e.Quiet)).withName("Quiet");t.addChildNode(s)}return t},rje=(e,n)=>{let t=new S.XmlNode("DeleteMarkerReplication");if(e.Status!=null){let s=S.XmlNode.of("DeleteMarkerReplicationStatus",e.Status).withName("Status");t.addChildNode(s)}return t},ije=(e,n)=>{let t=new S.XmlNode("Destination");if(e.Bucket!=null){let s=S.XmlNode.of("BucketName",e.Bucket).withName("Bucket");t.addChildNode(s)}if(e.Account!=null){let s=S.XmlNode.of("AccountId",e.Account).withName("Account");t.addChildNode(s)}if(e.StorageClass!=null){let s=S.XmlNode.of("StorageClass",e.StorageClass).withName("StorageClass");t.addChildNode(s)}if(e.AccessControlTranslation!=null){let s=GTe(e.AccessControlTranslation,n).withName("AccessControlTranslation");t.addChildNode(s)}if(e.EncryptionConfiguration!=null){let s=aje(e.EncryptionConfiguration,n).withName("EncryptionConfiguration");t.addChildNode(s)}if(e.ReplicationTime!=null){let s=iMe(e.ReplicationTime,n).withName("ReplicationTime");t.addChildNode(s)}if(e.Metrics!=null){let s=Dje(e.Metrics,n).withName("Metrics");t.addChildNode(s)}return t},oje=(e,n)=>{let t=new S.XmlNode("Encryption");if(e.EncryptionType!=null){let s=S.XmlNode.of("ServerSideEncryption",e.EncryptionType).withName("EncryptionType");t.addChildNode(s)}if(e.KMSKeyId!=null){let s=S.XmlNode.of("SSEKMSKeyId",e.KMSKeyId).withName("KMSKeyId");t.addChildNode(s)}if(e.KMSContext!=null){let s=S.XmlNode.of("KMSContext",e.KMSContext).withName("KMSContext");t.addChildNode(s)}return t},aje=(e,n)=>{let t=new S.XmlNode("EncryptionConfiguration");if(e.ReplicaKmsKeyID!=null){let s=S.XmlNode.of("ReplicaKmsKeyID",e.ReplicaKmsKeyID).withName("ReplicaKmsKeyID");t.addChildNode(s)}return t},cje=(e,n)=>{let t=new S.XmlNode("ErrorDocument");if(e.Key!=null){let s=S.XmlNode.of("ObjectKey",e.Key).withName("Key");t.addChildNode(s)}return t},lje=(e,n)=>new S.XmlNode("EventBridgeConfiguration"),ck=(e,n)=>e.filter(t=>t!=null).map(t=>S.XmlNode.of("Event",t).withName("member")),dje=(e,n)=>{let t=new S.XmlNode("ExistingObjectReplication");if(e.Status!=null){let s=S.XmlNode.of("ExistingObjectReplicationStatus",e.Status).withName("Status");t.addChildNode(s)}return t},uje=(e,n)=>e.filter(t=>t!=null).map(t=>S.XmlNode.of("ExposeHeader",t).withName("member")),mje=(e,n)=>{let t=new S.XmlNode("FilterRule");if(e.Name!=null){let s=S.XmlNode.of("FilterRuleName",e.Name).withName("Name");t.addChildNode(s)}if(e.Value!=null){let s=S.XmlNode.of("FilterRuleValue",e.Value).withName("Value");t.addChildNode(s)}return t},pje=(e,n)=>e.filter(t=>t!=null).map(t=>mje(t,n).withName("member")),gje=(e,n)=>{let t=new S.XmlNode("GlacierJobParameters");if(e.Tier!=null){let s=S.XmlNode.of("Tier",e.Tier).withName("Tier");t.addChildNode(s)}return t},yje=(e,n)=>{let t=new S.XmlNode("Grant");if(e.Grantee!=null){let s=p$(e.Grantee,n).withName("Grantee");s.addAttribute("xmlns:xsi","http://www.w3.org/2001/XMLSchema-instance"),t.addChildNode(s)}if(e.Permission!=null){let s=S.XmlNode.of("Permission",e.Permission).withName("Permission");t.addChildNode(s)}return t},p$=(e,n)=>{let t=new S.XmlNode("Grantee");if(e.DisplayName!=null){let s=S.XmlNode.of("DisplayName",e.DisplayName).withName("DisplayName");t.addChildNode(s)}if(e.EmailAddress!=null){let s=S.XmlNode.of("EmailAddress",e.EmailAddress).withName("EmailAddress");t.addChildNode(s)}if(e.ID!=null){let s=S.XmlNode.of("ID",e.ID).withName("ID");t.addChildNode(s)}if(e.URI!=null){let s=S.XmlNode.of("URI",e.URI).withName("URI");t.addChildNode(s)}return e.Type!=null&&t.addAttribute("xsi:type",e.Type),t},g$=(e,n)=>e.filter(t=>t!=null).map(t=>yje(t,n).withName("Grant")),_je=(e,n)=>{let t=new S.XmlNode("IndexDocument");if(e.Suffix!=null){let s=S.XmlNode.of("Suffix",e.Suffix).withName("Suffix");t.addChildNode(s)}return t},y$=(e,n)=>{let t=new S.XmlNode("InputSerialization");if(e.CSV!=null){let s=tje(e.CSV,n).withName("CSV");t.addChildNode(s)}if(e.CompressionType!=null){let s=S.XmlNode.of("CompressionType",e.CompressionType).withName("CompressionType");t.addChildNode(s)}if(e.JSON!=null){let s=Aje(e.JSON,n).withName("JSON");t.addChildNode(s)}if(e.Parquet!=null){let s=Kje(e.Parquet,n).withName("Parquet");t.addChildNode(s)}return t},fje=(e,n)=>{let t=new S.XmlNode("IntelligentTieringAndOperator");if(e.Prefix!=null){let s=S.XmlNode.of("Prefix",e.Prefix).withName("Prefix");t.addChildNode(s)}return e.Tags!=null&&Po(e.Tags,n).map(r=>{r=r.withName("Tag"),t.addChildNode(r)}),t},Q2=(e,n)=>{let t=new S.XmlNode("IntelligentTieringConfiguration");if(e.Id!=null){let s=S.XmlNode.of("IntelligentTieringId",e.Id).withName("Id");t.addChildNode(s)}if(e.Filter!=null){let s=Sje(e.Filter,n).withName("Filter");t.addChildNode(s)}if(e.Status!=null){let s=S.XmlNode.of("IntelligentTieringStatus",e.Status).withName("Status");t.addChildNode(s)}return e.Tierings!=null&&AMe(e.Tierings,n).map(r=>{r=r.withName("Tiering"),t.addChildNode(r)}),t},Sje=(e,n)=>{let t=new S.XmlNode("IntelligentTieringFilter");if(e.Prefix!=null){let s=S.XmlNode.of("Prefix",e.Prefix).withName("Prefix");t.addChildNode(s)}if(e.Tag!=null){let s=vo(e.Tag,n).withName("Tag");t.addChildNode(s)}if(e.And!=null){let s=fje(e.And,n).withName("And");t.addChildNode(s)}return t},J2=(e,n)=>{let t=new S.XmlNode("InventoryConfiguration");if(e.Destination!=null){let s=hje(e.Destination,n).withName("Destination");t.addChildNode(s)}if(e.IsEnabled!=null){let s=S.XmlNode.of("IsEnabled",String(e.IsEnabled)).withName("IsEnabled");t.addChildNode(s)}if(e.Filter!=null){let s=Eje(e.Filter,n).withName("Filter");t.addChildNode(s)}if(e.Id!=null){let s=S.XmlNode.of("InventoryId",e.Id).withName("Id");t.addChildNode(s)}if(e.IncludedObjectVersions!=null){let s=S.XmlNode.of("InventoryIncludedObjectVersions",e.IncludedObjectVersions).withName("IncludedObjectVersions");t.addChildNode(s)}if(e.OptionalFields!=null){let s=Cje(e.OptionalFields,n),r=new S.XmlNode("OptionalFields");s.map(i=>{r.addChildNode(i)}),t.addChildNode(r)}if(e.Schedule!=null){let s=Pje(e.Schedule,n).withName("Schedule");t.addChildNode(s)}return t},hje=(e,n)=>{let t=new S.XmlNode("InventoryDestination");if(e.S3BucketDestination!=null){let s=vje(e.S3BucketDestination,n).withName("S3BucketDestination");t.addChildNode(s)}return t},wje=(e,n)=>{let t=new S.XmlNode("InventoryEncryption");if(e.SSES3!=null){let s=hMe(e.SSES3,n).withName("SSE-S3");t.addChildNode(s)}if(e.SSEKMS!=null){let s=fMe(e.SSEKMS,n).withName("SSE-KMS");t.addChildNode(s)}return t},Eje=(e,n)=>{let t=new S.XmlNode("InventoryFilter");if(e.Prefix!=null){let s=S.XmlNode.of("Prefix",e.Prefix).withName("Prefix");t.addChildNode(s)}return t},Cje=(e,n)=>e.filter(t=>t!=null).map(t=>S.XmlNode.of("InventoryOptionalField",t).withName("Field")),vje=(e,n)=>{let t=new S.XmlNode("InventoryS3BucketDestination");if(e.AccountId!=null){let s=S.XmlNode.of("AccountId",e.AccountId).withName("AccountId");t.addChildNode(s)}if(e.Bucket!=null){let s=S.XmlNode.of("BucketName",e.Bucket).withName("Bucket");t.addChildNode(s)}if(e.Format!=null){let s=S.XmlNode.of("InventoryFormat",e.Format).withName("Format");t.addChildNode(s)}if(e.Prefix!=null){let s=S.XmlNode.of("Prefix",e.Prefix).withName("Prefix");t.addChildNode(s)}if(e.Encryption!=null){let s=wje(e.Encryption,n).withName("Encryption");t.addChildNode(s)}return t},Pje=(e,n)=>{let t=new S.XmlNode("InventorySchedule");if(e.Frequency!=null){let s=S.XmlNode.of("InventoryFrequency",e.Frequency).withName("Frequency");t.addChildNode(s)}return t},Aje=(e,n)=>{let t=new S.XmlNode("JSONInput");if(e.Type!=null){let s=S.XmlNode.of("JSONType",e.Type).withName("Type");t.addChildNode(s)}return t},xje=(e,n)=>{let t=new S.XmlNode("JSONOutput");if(e.RecordDelimiter!=null){let s=S.XmlNode.of("RecordDelimiter",e.RecordDelimiter).withName("RecordDelimiter");t.addChildNode(s)}return t},bje=(e,n)=>{let t=new S.XmlNode("LambdaFunctionConfiguration");if(e.Id!=null){let s=S.XmlNode.of("NotificationId",e.Id).withName("Id");t.addChildNode(s)}if(e.LambdaFunctionArn!=null){let s=S.XmlNode.of("LambdaFunctionArn",e.LambdaFunctionArn).withName("CloudFunction");t.addChildNode(s)}if(e.Events!=null&&ck(e.Events,n).map(r=>{r=r.withName("Event"),t.addChildNode(r)}),e.Filter!=null){let s=lk(e.Filter,n).withName("Filter");t.addChildNode(s)}return t},Ije=(e,n)=>e.filter(t=>t!=null).map(t=>bje(t,n).withName("member")),kje=(e,n)=>{let t=new S.XmlNode("LifecycleExpiration");if(e.Date!=null){let s=S.XmlNode.of("Date",(e.Date.toISOString().split(".")[0]+"Z").toString()).withName("Date");t.addChildNode(s)}if(e.Days!=null){let s=S.XmlNode.of("Days",String(e.Days)).withName("Days");t.addChildNode(s)}if(e.ExpiredObjectDeleteMarker!=null){let s=S.XmlNode.of("ExpiredObjectDeleteMarker",String(e.ExpiredObjectDeleteMarker)).withName("ExpiredObjectDeleteMarker");t.addChildNode(s)}return t},Rje=(e,n)=>{let t=new S.XmlNode("LifecycleRule");if(e.Expiration!=null){let s=kje(e.Expiration,n).withName("Expiration");t.addChildNode(s)}if(e.ID!=null){let s=S.XmlNode.of("ID",e.ID).withName("ID");t.addChildNode(s)}if(e.Prefix!=null){let s=S.XmlNode.of("Prefix",e.Prefix).withName("Prefix");t.addChildNode(s)}if(e.Filter!=null){let s=zje(e.Filter,n).withName("Filter");t.addChildNode(s)}if(e.Status!=null){let s=S.XmlNode.of("ExpirationStatus",e.Status).withName("Status");t.addChildNode(s)}if(e.Transitions!=null&&kMe(e.Transitions,n).map(r=>{r=r.withName("Transition"),t.addChildNode(r)}),e.NoncurrentVersionTransitions!=null&&Bje(e.NoncurrentVersionTransitions,n).map(r=>{r=r.withName("NoncurrentVersionTransition"),t.addChildNode(r)}),e.NoncurrentVersionExpiration!=null){let s=Mje(e.NoncurrentVersionExpiration,n).withName("NoncurrentVersionExpiration");t.addChildNode(s)}if(e.AbortIncompleteMultipartUpload!=null){let s=BTe(e.AbortIncompleteMultipartUpload,n).withName("AbortIncompleteMultipartUpload");t.addChildNode(s)}return t},Nje=(e,n)=>{let t=new S.XmlNode("LifecycleRuleAndOperator");if(e.Prefix!=null){let s=S.XmlNode.of("Prefix",e.Prefix).withName("Prefix");t.addChildNode(s)}if(e.Tags!=null&&Po(e.Tags,n).map(r=>{r=r.withName("Tag"),t.addChildNode(r)}),e.ObjectSizeGreaterThan!=null){let s=S.XmlNode.of("ObjectSizeGreaterThanBytes",String(e.ObjectSizeGreaterThan)).withName("ObjectSizeGreaterThan");t.addChildNode(s)}if(e.ObjectSizeLessThan!=null){let s=S.XmlNode.of("ObjectSizeLessThanBytes",String(e.ObjectSizeLessThan)).withName("ObjectSizeLessThan");t.addChildNode(s)}return t},zje=(e,n)=>{let t=new S.XmlNode("LifecycleRuleFilter");return Xn.LifecycleRuleFilter.visit(e,{Prefix:s=>{let r=S.XmlNode.of("Prefix",s).withName("Prefix");t.addChildNode(r)},Tag:s=>{let r=vo(s,n).withName("Tag");t.addChildNode(r)},ObjectSizeGreaterThan:s=>{let r=S.XmlNode.of("ObjectSizeGreaterThanBytes",String(s)).withName("ObjectSizeGreaterThan");t.addChildNode(r)},ObjectSizeLessThan:s=>{let r=S.XmlNode.of("ObjectSizeLessThanBytes",String(s)).withName("ObjectSizeLessThan");t.addChildNode(r)},And:s=>{let r=Nje(s,n).withName("And");t.addChildNode(r)},_:(s,r)=>{if(!(r instanceof S.XmlNode||r instanceof S.XmlText))throw new Error("Unable to serialize unknown union members in XML.");t.addChildNode(new S.XmlNode(s).addChildNode(r))}}),t},qje=(e,n)=>e.filter(t=>t!=null).map(t=>Rje(t,n).withName("member")),Lje=(e,n)=>{let t=new S.XmlNode("LoggingEnabled");if(e.TargetBucket!=null){let s=S.XmlNode.of("TargetBucket",e.TargetBucket).withName("TargetBucket");t.addChildNode(s)}if(e.TargetGrants!=null){let s=vMe(e.TargetGrants,n),r=new S.XmlNode("TargetGrants");s.map(i=>{r.addChildNode(i)}),t.addChildNode(r)}if(e.TargetPrefix!=null){let s=S.XmlNode.of("TargetPrefix",e.TargetPrefix).withName("TargetPrefix");t.addChildNode(s)}return t},Fje=(e,n)=>{let t=new S.XmlNode("MetadataEntry");if(e.Name!=null){let s=S.XmlNode.of("MetadataKey",e.Name).withName("Name");t.addChildNode(s)}if(e.Value!=null){let s=S.XmlNode.of("MetadataValue",e.Value).withName("Value");t.addChildNode(s)}return t},Dje=(e,n)=>{let t=new S.XmlNode("Metrics");if(e.Status!=null){let s=S.XmlNode.of("MetricsStatus",e.Status).withName("Status");t.addChildNode(s)}if(e.EventThreshold!=null){let s=f$(e.EventThreshold,n).withName("EventThreshold");t.addChildNode(s)}return t},Tje=(e,n)=>{let t=new S.XmlNode("MetricsAndOperator");if(e.Prefix!=null){let s=S.XmlNode.of("Prefix",e.Prefix).withName("Prefix");t.addChildNode(s)}if(e.Tags!=null&&Po(e.Tags,n).map(r=>{r=r.withName("Tag"),t.addChildNode(r)}),e.AccessPointArn!=null){let s=S.XmlNode.of("AccessPointArn",e.AccessPointArn).withName("AccessPointArn");t.addChildNode(s)}return t},Y2=(e,n)=>{let t=new S.XmlNode("MetricsConfiguration");if(e.Id!=null){let s=S.XmlNode.of("MetricsId",e.Id).withName("Id");t.addChildNode(s)}if(e.Filter!=null){let s=jje(e.Filter,n).withName("Filter");t.addChildNode(s)}return t},jje=(e,n)=>{let t=new S.XmlNode("MetricsFilter");return Xn.MetricsFilter.visit(e,{Prefix:s=>{let r=S.XmlNode.of("Prefix",s).withName("Prefix");t.addChildNode(r)},Tag:s=>{let r=vo(s,n).withName("Tag");t.addChildNode(r)},AccessPointArn:s=>{let r=S.XmlNode.of("AccessPointArn",s).withName("AccessPointArn");t.addChildNode(r)},And:s=>{let r=Tje(s,n).withName("And");t.addChildNode(r)},_:(s,r)=>{if(!(r instanceof S.XmlNode||r instanceof S.XmlText))throw new Error("Unable to serialize unknown union members in XML.");t.addChildNode(new S.XmlNode(s).addChildNode(r))}}),t},Mje=(e,n)=>{let t=new S.XmlNode("NoncurrentVersionExpiration");if(e.NoncurrentDays!=null){let s=S.XmlNode.of("Days",String(e.NoncurrentDays)).withName("NoncurrentDays");t.addChildNode(s)}if(e.NewerNoncurrentVersions!=null){let s=S.XmlNode.of("VersionCount",String(e.NewerNoncurrentVersions)).withName("NewerNoncurrentVersions");t.addChildNode(s)}return t},Oje=(e,n)=>{let t=new S.XmlNode("NoncurrentVersionTransition");if(e.NoncurrentDays!=null){let s=S.XmlNode.of("Days",String(e.NoncurrentDays)).withName("NoncurrentDays");t.addChildNode(s)}if(e.StorageClass!=null){let s=S.XmlNode.of("TransitionStorageClass",e.StorageClass).withName("StorageClass");t.addChildNode(s)}if(e.NewerNoncurrentVersions!=null){let s=S.XmlNode.of("VersionCount",String(e.NewerNoncurrentVersions)).withName("NewerNoncurrentVersions");t.addChildNode(s)}return t},Bje=(e,n)=>e.filter(t=>t!=null).map(t=>Oje(t,n).withName("member")),Z2=(e,n)=>{let t=new S.XmlNode("NotificationConfiguration");if(e.TopicConfigurations!=null&&bMe(e.TopicConfigurations,n).map(r=>{r=r.withName("TopicConfiguration"),t.addChildNode(r)}),e.QueueConfigurations!=null&&Jje(e.QueueConfigurations,n).map(r=>{r=r.withName("QueueConfiguration"),t.addChildNode(r)}),e.LambdaFunctionConfigurations!=null&&Ije(e.LambdaFunctionConfigurations,n).map(r=>{r=r.withName("CloudFunctionConfiguration"),t.addChildNode(r)}),e.EventBridgeConfiguration!=null){let s=lje(e.EventBridgeConfiguration,n).withName("EventBridgeConfiguration");t.addChildNode(s)}return t},lk=(e,n)=>{let t=new S.XmlNode("NotificationConfigurationFilter");if(e.Key!=null){let s=lMe(e.Key,n).withName("S3Key");t.addChildNode(s)}return t},Gje=(e,n)=>{let t=new S.XmlNode("ObjectIdentifier");if(e.Key!=null){let s=S.XmlNode.of("ObjectKey",e.Key).withName("Key");t.addChildNode(s)}if(e.VersionId!=null){let s=S.XmlNode.of("ObjectVersionId",e.VersionId).withName("VersionId");t.addChildNode(s)}return t},Uje=(e,n)=>e.filter(t=>t!=null).map(t=>Gje(t,n).withName("member")),e$=(e,n)=>{let t=new S.XmlNode("ObjectLockConfiguration");if(e.ObjectLockEnabled!=null){let s=S.XmlNode.of("ObjectLockEnabled",e.ObjectLockEnabled).withName("ObjectLockEnabled");t.addChildNode(s)}if(e.Rule!=null){let s=Xje(e.Rule,n).withName("Rule");t.addChildNode(s)}return t},t$=(e,n)=>{let t=new S.XmlNode("ObjectLockLegalHold");if(e.Status!=null){let s=S.XmlNode.of("ObjectLockLegalHoldStatus",e.Status).withName("Status");t.addChildNode(s)}return t},n$=(e,n)=>{let t=new S.XmlNode("ObjectLockRetention");if(e.Mode!=null){let s=S.XmlNode.of("ObjectLockRetentionMode",e.Mode).withName("Mode");t.addChildNode(s)}if(e.RetainUntilDate!=null){let s=S.XmlNode.of("Date",(e.RetainUntilDate.toISOString().split(".")[0]+"Z").toString()).withName("RetainUntilDate");t.addChildNode(s)}return t},Xje=(e,n)=>{let t=new S.XmlNode("ObjectLockRule");if(e.DefaultRetention!=null){let s=sje(e.DefaultRetention,n).withName("DefaultRetention");t.addChildNode(s)}return t},$je=(e,n)=>{let t=new S.XmlNode("OutputLocation");if(e.S3!=null){let s=dMe(e.S3,n).withName("S3");t.addChildNode(s)}return t},_$=(e,n)=>{let t=new S.XmlNode("OutputSerialization");if(e.CSV!=null){let s=nje(e.CSV,n).withName("CSV");t.addChildNode(s)}if(e.JSON!=null){let s=xje(e.JSON,n).withName("JSON");t.addChildNode(s)}return t},Hje=(e,n)=>{let t=new S.XmlNode("Owner");if(e.DisplayName!=null){let s=S.XmlNode.of("DisplayName",e.DisplayName).withName("DisplayName");t.addChildNode(s)}if(e.ID!=null){let s=S.XmlNode.of("ID",e.ID).withName("ID");t.addChildNode(s)}return t},s$=(e,n)=>{let t=new S.XmlNode("OwnershipControls");return e.Rules!=null&&Wje(e.Rules,n).map(r=>{r=r.withName("Rule"),t.addChildNode(r)}),t},Vje=(e,n)=>{let t=new S.XmlNode("OwnershipControlsRule");if(e.ObjectOwnership!=null){let s=S.XmlNode.of("ObjectOwnership",e.ObjectOwnership).withName("ObjectOwnership");t.addChildNode(s)}return t},Wje=(e,n)=>e.filter(t=>t!=null).map(t=>Vje(t,n).withName("member")),Kje=(e,n)=>new S.XmlNode("ParquetInput"),r$=(e,n)=>{let t=new S.XmlNode("PublicAccessBlockConfiguration");if(e.BlockPublicAcls!=null){let s=S.XmlNode.of("Setting",String(e.BlockPublicAcls)).withName("BlockPublicAcls");t.addChildNode(s)}if(e.IgnorePublicAcls!=null){let s=S.XmlNode.of("Setting",String(e.IgnorePublicAcls)).withName("IgnorePublicAcls");t.addChildNode(s)}if(e.BlockPublicPolicy!=null){let s=S.XmlNode.of("Setting",String(e.BlockPublicPolicy)).withName("BlockPublicPolicy");t.addChildNode(s)}if(e.RestrictPublicBuckets!=null){let s=S.XmlNode.of("Setting",String(e.RestrictPublicBuckets)).withName("RestrictPublicBuckets");t.addChildNode(s)}return t},Qje=(e,n)=>{let t=new S.XmlNode("QueueConfiguration");if(e.Id!=null){let s=S.XmlNode.of("NotificationId",e.Id).withName("Id");t.addChildNode(s)}if(e.QueueArn!=null){let s=S.XmlNode.of("QueueArn",e.QueueArn).withName("Queue");t.addChildNode(s)}if(e.Events!=null&&ck(e.Events,n).map(r=>{r=r.withName("Event"),t.addChildNode(r)}),e.Filter!=null){let s=lk(e.Filter,n).withName("Filter");t.addChildNode(s)}return t},Jje=(e,n)=>e.filter(t=>t!=null).map(t=>Qje(t,n).withName("member")),Yje=(e,n)=>{let t=new S.XmlNode("Redirect");if(e.HostName!=null){let s=S.XmlNode.of("HostName",e.HostName).withName("HostName");t.addChildNode(s)}if(e.HttpRedirectCode!=null){let s=S.XmlNode.of("HttpRedirectCode",e.HttpRedirectCode).withName("HttpRedirectCode");t.addChildNode(s)}if(e.Protocol!=null){let s=S.XmlNode.of("Protocol",e.Protocol).withName("Protocol");t.addChildNode(s)}if(e.ReplaceKeyPrefixWith!=null){let s=S.XmlNode.of("ReplaceKeyPrefixWith",e.ReplaceKeyPrefixWith).withName("ReplaceKeyPrefixWith");t.addChildNode(s)}if(e.ReplaceKeyWith!=null){let s=S.XmlNode.of("ReplaceKeyWith",e.ReplaceKeyWith).withName("ReplaceKeyWith");t.addChildNode(s)}return t},Zje=(e,n)=>{let t=new S.XmlNode("RedirectAllRequestsTo");if(e.HostName!=null){let s=S.XmlNode.of("HostName",e.HostName).withName("HostName");t.addChildNode(s)}if(e.Protocol!=null){let s=S.XmlNode.of("Protocol",e.Protocol).withName("Protocol");t.addChildNode(s)}return t},eMe=(e,n)=>{let t=new S.XmlNode("ReplicaModifications");if(e.Status!=null){let s=S.XmlNode.of("ReplicaModificationsStatus",e.Status).withName("Status");t.addChildNode(s)}return t},i$=(e,n)=>{let t=new S.XmlNode("ReplicationConfiguration");if(e.Role!=null){let s=S.XmlNode.of("Role",e.Role).withName("Role");t.addChildNode(s)}return e.Rules!=null&&rMe(e.Rules,n).map(r=>{r=r.withName("Rule"),t.addChildNode(r)}),t},tMe=(e,n)=>{let t=new S.XmlNode("ReplicationRule");if(e.ID!=null){let s=S.XmlNode.of("ID",e.ID).withName("ID");t.addChildNode(s)}if(e.Priority!=null){let s=S.XmlNode.of("Priority",String(e.Priority)).withName("Priority");t.addChildNode(s)}if(e.Prefix!=null){let s=S.XmlNode.of("Prefix",e.Prefix).withName("Prefix");t.addChildNode(s)}if(e.Filter!=null){let s=sMe(e.Filter,n).withName("Filter");t.addChildNode(s)}if(e.Status!=null){let s=S.XmlNode.of("ReplicationRuleStatus",e.Status).withName("Status");t.addChildNode(s)}if(e.SourceSelectionCriteria!=null){let s=_Me(e.SourceSelectionCriteria,n).withName("SourceSelectionCriteria");t.addChildNode(s)}if(e.ExistingObjectReplication!=null){let s=dje(e.ExistingObjectReplication,n).withName("ExistingObjectReplication");t.addChildNode(s)}if(e.Destination!=null){let s=ije(e.Destination,n).withName("Destination");t.addChildNode(s)}if(e.DeleteMarkerReplication!=null){let s=rje(e.DeleteMarkerReplication,n).withName("DeleteMarkerReplication");t.addChildNode(s)}return t},nMe=(e,n)=>{let t=new S.XmlNode("ReplicationRuleAndOperator");if(e.Prefix!=null){let s=S.XmlNode.of("Prefix",e.Prefix).withName("Prefix");t.addChildNode(s)}return e.Tags!=null&&Po(e.Tags,n).map(r=>{r=r.withName("Tag"),t.addChildNode(r)}),t},sMe=(e,n)=>{let t=new S.XmlNode("ReplicationRuleFilter");return Xn.ReplicationRuleFilter.visit(e,{Prefix:s=>{let r=S.XmlNode.of("Prefix",s).withName("Prefix");t.addChildNode(r)},Tag:s=>{let r=vo(s,n).withName("Tag");t.addChildNode(r)},And:s=>{let r=nMe(s,n).withName("And");t.addChildNode(r)},_:(s,r)=>{if(!(r instanceof S.XmlNode||r instanceof S.XmlText))throw new Error("Unable to serialize unknown union members in XML.");t.addChildNode(new S.XmlNode(s).addChildNode(r))}}),t},rMe=(e,n)=>e.filter(t=>t!=null).map(t=>tMe(t,n).withName("member")),iMe=(e,n)=>{let t=new S.XmlNode("ReplicationTime");if(e.Status!=null){let s=S.XmlNode.of("ReplicationTimeStatus",e.Status).withName("Status");t.addChildNode(s)}if(e.Time!=null){let s=f$(e.Time,n).withName("Time");t.addChildNode(s)}return t},f$=(e,n)=>{let t=new S.XmlNode("ReplicationTimeValue");if(e.Minutes!=null){let s=S.XmlNode.of("Minutes",String(e.Minutes)).withName("Minutes");t.addChildNode(s)}return t},o$=(e,n)=>{let t=new S.XmlNode("RequestPaymentConfiguration");if(e.Payer!=null){let s=S.XmlNode.of("Payer",e.Payer).withName("Payer");t.addChildNode(s)}return t},oMe=(e,n)=>{let t=new S.XmlNode("RequestProgress");if(e.Enabled!=null){let s=S.XmlNode.of("EnableRequestProgress",String(e.Enabled)).withName("Enabled");t.addChildNode(s)}return t},a$=(e,n)=>{let t=new S.XmlNode("RestoreRequest");if(e.Days!=null){let s=S.XmlNode.of("Days",String(e.Days)).withName("Days");t.addChildNode(s)}if(e.GlacierJobParameters!=null){let s=gje(e.GlacierJobParameters,n).withName("GlacierJobParameters");t.addChildNode(s)}if(e.Type!=null){let s=S.XmlNode.of("RestoreRequestType",e.Type).withName("Type");t.addChildNode(s)}if(e.Tier!=null){let s=S.XmlNode.of("Tier",e.Tier).withName("Tier");t.addChildNode(s)}if(e.Description!=null){let s=S.XmlNode.of("Description",e.Description).withName("Description");t.addChildNode(s)}if(e.SelectParameters!=null){let s=mMe(e.SelectParameters,n).withName("SelectParameters");t.addChildNode(s)}if(e.OutputLocation!=null){let s=$je(e.OutputLocation,n).withName("OutputLocation");t.addChildNode(s)}return t},aMe=(e,n)=>{let t=new S.XmlNode("RoutingRule");if(e.Condition!=null){let s=YTe(e.Condition,n).withName("Condition");t.addChildNode(s)}if(e.Redirect!=null){let s=Yje(e.Redirect,n).withName("Redirect");t.addChildNode(s)}return t},cMe=(e,n)=>e.filter(t=>t!=null).map(t=>aMe(t,n).withName("RoutingRule")),lMe=(e,n)=>{let t=new S.XmlNode("S3KeyFilter");return e.FilterRules!=null&&pje(e.FilterRules,n).map(r=>{r=r.withName("FilterRule"),t.addChildNode(r)}),t},dMe=(e,n)=>{let t=new S.XmlNode("S3Location");if(e.BucketName!=null){let s=S.XmlNode.of("BucketName",e.BucketName).withName("BucketName");t.addChildNode(s)}if(e.Prefix!=null){let s=S.XmlNode.of("LocationPrefix",e.Prefix).withName("Prefix");t.addChildNode(s)}if(e.Encryption!=null){let s=oje(e.Encryption,n).withName("Encryption");t.addChildNode(s)}if(e.CannedACL!=null){let s=S.XmlNode.of("ObjectCannedACL",e.CannedACL).withName("CannedACL");t.addChildNode(s)}if(e.AccessControlList!=null){let s=g$(e.AccessControlList,n),r=new S.XmlNode("AccessControlList");s.map(i=>{r.addChildNode(i)}),t.addChildNode(r)}if(e.Tagging!=null){let s=Td(e.Tagging,n).withName("Tagging");t.addChildNode(s)}if(e.UserMetadata!=null){let s=RMe(e.UserMetadata,n),r=new S.XmlNode("UserMetadata");s.map(i=>{r.addChildNode(i)}),t.addChildNode(r)}if(e.StorageClass!=null){let s=S.XmlNode.of("StorageClass",e.StorageClass).withName("StorageClass");t.addChildNode(s)}return t},uMe=(e,n)=>{let t=new S.XmlNode("ScanRange");if(e.Start!=null){let s=S.XmlNode.of("Start",String(e.Start)).withName("Start");t.addChildNode(s)}if(e.End!=null){let s=S.XmlNode.of("End",String(e.End)).withName("End");t.addChildNode(s)}return t},mMe=(e,n)=>{let t=new S.XmlNode("SelectParameters");if(e.InputSerialization!=null){let s=y$(e.InputSerialization,n).withName("InputSerialization");t.addChildNode(s)}if(e.ExpressionType!=null){let s=S.XmlNode.of("ExpressionType",e.ExpressionType).withName("ExpressionType");t.addChildNode(s)}if(e.Expression!=null){let s=S.XmlNode.of("Expression",e.Expression).withName("Expression");t.addChildNode(s)}if(e.OutputSerialization!=null){let s=_$(e.OutputSerialization,n).withName("OutputSerialization");t.addChildNode(s)}return t},pMe=(e,n)=>{let t=new S.XmlNode("ServerSideEncryptionByDefault");if(e.SSEAlgorithm!=null){let s=S.XmlNode.of("ServerSideEncryption",e.SSEAlgorithm).withName("SSEAlgorithm");t.addChildNode(s)}if(e.KMSMasterKeyID!=null){let s=S.XmlNode.of("SSEKMSKeyId",e.KMSMasterKeyID).withName("KMSMasterKeyID");t.addChildNode(s)}return t},c$=(e,n)=>{let t=new S.XmlNode("ServerSideEncryptionConfiguration");return e.Rules!=null&&yMe(e.Rules,n).map(r=>{r=r.withName("Rule"),t.addChildNode(r)}),t},gMe=(e,n)=>{let t=new S.XmlNode("ServerSideEncryptionRule");if(e.ApplyServerSideEncryptionByDefault!=null){let s=pMe(e.ApplyServerSideEncryptionByDefault,n).withName("ApplyServerSideEncryptionByDefault");t.addChildNode(s)}if(e.BucketKeyEnabled!=null){let s=S.XmlNode.of("BucketKeyEnabled",String(e.BucketKeyEnabled)).withName("BucketKeyEnabled");t.addChildNode(s)}return t},yMe=(e,n)=>e.filter(t=>t!=null).map(t=>gMe(t,n).withName("member")),_Me=(e,n)=>{let t=new S.XmlNode("SourceSelectionCriteria");if(e.SseKmsEncryptedObjects!=null){let s=SMe(e.SseKmsEncryptedObjects,n).withName("SseKmsEncryptedObjects");t.addChildNode(s)}if(e.ReplicaModifications!=null){let s=eMe(e.ReplicaModifications,n).withName("ReplicaModifications");t.addChildNode(s)}return t},fMe=(e,n)=>{let t=new S.XmlNode("SSE-KMS");if(e.KeyId!=null){let s=S.XmlNode.of("SSEKMSKeyId",e.KeyId).withName("KeyId");t.addChildNode(s)}return t},SMe=(e,n)=>{let t=new S.XmlNode("SseKmsEncryptedObjects");if(e.Status!=null){let s=S.XmlNode.of("SseKmsEncryptedObjectsStatus",e.Status).withName("Status");t.addChildNode(s)}return t},hMe=(e,n)=>new S.XmlNode("SSE-S3"),wMe=(e,n)=>{let t=new S.XmlNode("StorageClassAnalysis");if(e.DataExport!=null){let s=EMe(e.DataExport,n).withName("DataExport");t.addChildNode(s)}return t},EMe=(e,n)=>{let t=new S.XmlNode("StorageClassAnalysisDataExport");if(e.OutputSchemaVersion!=null){let s=S.XmlNode.of("StorageClassAnalysisSchemaVersion",e.OutputSchemaVersion).withName("OutputSchemaVersion");t.addChildNode(s)}if(e.Destination!=null){let s=VTe(e.Destination,n).withName("Destination");t.addChildNode(s)}return t},vo=(e,n)=>{let t=new S.XmlNode("Tag");if(e.Key!=null){let s=S.XmlNode.of("ObjectKey",e.Key).withName("Key");t.addChildNode(s)}if(e.Value!=null){let s=S.XmlNode.of("Value",e.Value).withName("Value");t.addChildNode(s)}return t},Td=(e,n)=>{let t=new S.XmlNode("Tagging");if(e.TagSet!=null){let s=Po(e.TagSet,n),r=new S.XmlNode("TagSet");s.map(i=>{r.addChildNode(i)}),t.addChildNode(r)}return t},Po=(e,n)=>e.filter(t=>t!=null).map(t=>vo(t,n).withName("Tag")),CMe=(e,n)=>{let t=new S.XmlNode("TargetGrant");if(e.Grantee!=null){let s=p$(e.Grantee,n).withName("Grantee");s.addAttribute("xmlns:xsi","http://www.w3.org/2001/XMLSchema-instance"),t.addChildNode(s)}if(e.Permission!=null){let s=S.XmlNode.of("BucketLogsPermission",e.Permission).withName("Permission");t.addChildNode(s)}return t},vMe=(e,n)=>e.filter(t=>t!=null).map(t=>CMe(t,n).withName("Grant")),PMe=(e,n)=>{let t=new S.XmlNode("Tiering");if(e.Days!=null){let s=S.XmlNode.of("IntelligentTieringDays",String(e.Days)).withName("Days");t.addChildNode(s)}if(e.AccessTier!=null){let s=S.XmlNode.of("IntelligentTieringAccessTier",e.AccessTier).withName("AccessTier");t.addChildNode(s)}return t},AMe=(e,n)=>e.filter(t=>t!=null).map(t=>PMe(t,n).withName("member")),xMe=(e,n)=>{let t=new S.XmlNode("TopicConfiguration");if(e.Id!=null){let s=S.XmlNode.of("NotificationId",e.Id).withName("Id");t.addChildNode(s)}if(e.TopicArn!=null){let s=S.XmlNode.of("TopicArn",e.TopicArn).withName("Topic");t.addChildNode(s)}if(e.Events!=null&&ck(e.Events,n).map(r=>{r=r.withName("Event"),t.addChildNode(r)}),e.Filter!=null){let s=lk(e.Filter,n).withName("Filter");t.addChildNode(s)}return t},bMe=(e,n)=>e.filter(t=>t!=null).map(t=>xMe(t,n).withName("member")),IMe=(e,n)=>{let t=new S.XmlNode("Transition");if(e.Date!=null){let s=S.XmlNode.of("Date",(e.Date.toISOString().split(".")[0]+"Z").toString()).withName("Date");t.addChildNode(s)}if(e.Days!=null){let s=S.XmlNode.of("Days",String(e.Days)).withName("Days");t.addChildNode(s)}if(e.StorageClass!=null){let s=S.XmlNode.of("TransitionStorageClass",e.StorageClass).withName("StorageClass");t.addChildNode(s)}return t},kMe=(e,n)=>e.filter(t=>t!=null).map(t=>IMe(t,n).withName("member")),RMe=(e,n)=>e.filter(t=>t!=null).map(t=>Fje(t,n).withName("MetadataEntry")),l$=(e,n)=>{let t=new S.XmlNode("VersioningConfiguration");if(e.MFADelete!=null){let s=S.XmlNode.of("MFADelete",e.MFADelete).withName("MfaDelete");t.addChildNode(s)}if(e.Status!=null){let s=S.XmlNode.of("BucketVersioningStatus",e.Status).withName("Status");t.addChildNode(s)}return t},d$=(e,n)=>{let t=new S.XmlNode("WebsiteConfiguration");if(e.ErrorDocument!=null){let s=cje(e.ErrorDocument,n).withName("ErrorDocument");t.addChildNode(s)}if(e.IndexDocument!=null){let s=_je(e.IndexDocument,n).withName("IndexDocument");t.addChildNode(s)}if(e.RedirectAllRequestsTo!=null){let s=Zje(e.RedirectAllRequestsTo,n).withName("RedirectAllRequestsTo");t.addChildNode(s)}if(e.RoutingRules!=null){let s=cMe(e.RoutingRules,n),r=new S.XmlNode("RoutingRules");s.map(i=>{r.addChildNode(i)}),t.addChildNode(r)}return t},NMe=(e,n)=>{let t={DaysAfterInitiation:void 0};return e.DaysAfterInitiation!==void 0&&(t.DaysAfterInitiation=(0,m.strictParseInt32)(e.DaysAfterInitiation)),t},zMe=(e,n)=>{let t={Owner:void 0};return e.Owner!==void 0&&(t.Owner=(0,m.expectString)(e.Owner)),t},qMe=(e,n)=>(e||[]).filter(t=>t!=null).map(t=>(0,m.expectString)(t)),LMe=(e,n)=>(e||[]).filter(t=>t!=null).map(t=>(0,m.expectString)(t)),FMe=(e,n)=>(e||[]).filter(t=>t!=null).map(t=>(0,m.expectString)(t)),DMe=(e,n)=>{let t={Prefix:void 0,Tags:void 0};return e.Prefix!==void 0&&(t.Prefix=(0,m.expectString)(e.Prefix)),e.Tag===""?t.Tags=[]:e.Tag!==void 0&&(t.Tags=Li((0,m.getArrayIfSingleItem)(e.Tag),n)),t},S$=(e,n)=>{let t={Id:void 0,Filter:void 0,StorageClassAnalysis:void 0};return e.Id!==void 0&&(t.Id=(0,m.expectString)(e.Id)),e.Filter===""||e.Filter!==void 0&&(t.Filter=MMe((0,m.expectUnion)(e.Filter),n)),e.StorageClassAnalysis!==void 0&&(t.StorageClassAnalysis=RBe(e.StorageClassAnalysis,n)),t},TMe=(e,n)=>(e||[]).filter(t=>t!=null).map(t=>S$(t,n)),jMe=(e,n)=>{let t={S3BucketDestination:void 0};return e.S3BucketDestination!==void 0&&(t.S3BucketDestination=OMe(e.S3BucketDestination,n)),t},MMe=(e,n)=>e.Prefix!==void 0?{Prefix:(0,m.expectString)(e.Prefix)}:e.Tag!==void 0?{Tag:Ao(e.Tag,n)}:e.And!==void 0?{And:DMe(e.And,n)}:{$unknown:Object.entries(e)[0]},OMe=(e,n)=>{let t={Format:void 0,BucketAccountId:void 0,Bucket:void 0,Prefix:void 0};return e.Format!==void 0&&(t.Format=(0,m.expectString)(e.Format)),e.BucketAccountId!==void 0&&(t.BucketAccountId=(0,m.expectString)(e.BucketAccountId)),e.Bucket!==void 0&&(t.Bucket=(0,m.expectString)(e.Bucket)),e.Prefix!==void 0&&(t.Prefix=(0,m.expectString)(e.Prefix)),t},BMe=(e,n)=>{let t={Name:void 0,CreationDate:void 0};return e.Name!==void 0&&(t.Name=(0,m.expectString)(e.Name)),e.CreationDate!==void 0&&(t.CreationDate=(0,m.expectNonNull)((0,m.parseRfc3339DateTimeWithOffset)(e.CreationDate))),t},GMe=(e,n)=>(e||[]).filter(t=>t!=null).map(t=>BMe(t,n)),UMe=(e,n)=>{let t={ChecksumCRC32:void 0,ChecksumCRC32C:void 0,ChecksumSHA1:void 0,ChecksumSHA256:void 0};return e.ChecksumCRC32!==void 0&&(t.ChecksumCRC32=(0,m.expectString)(e.ChecksumCRC32)),e.ChecksumCRC32C!==void 0&&(t.ChecksumCRC32C=(0,m.expectString)(e.ChecksumCRC32C)),e.ChecksumSHA1!==void 0&&(t.ChecksumSHA1=(0,m.expectString)(e.ChecksumSHA1)),e.ChecksumSHA256!==void 0&&(t.ChecksumSHA256=(0,m.expectString)(e.ChecksumSHA256)),t},h$=(e,n)=>(e||[]).filter(t=>t!=null).map(t=>(0,m.expectString)(t)),XMe=(e,n)=>{let t={Prefix:void 0};return e.Prefix!==void 0&&(t.Prefix=(0,m.expectString)(e.Prefix)),t},fE=(e,n)=>(e||[]).filter(t=>t!=null).map(t=>XMe(t,n)),$Me=(e,n)=>{let t={HttpErrorCodeReturnedEquals:void 0,KeyPrefixEquals:void 0};return e.HttpErrorCodeReturnedEquals!==void 0&&(t.HttpErrorCodeReturnedEquals=(0,m.expectString)(e.HttpErrorCodeReturnedEquals)),e.KeyPrefixEquals!==void 0&&(t.KeyPrefixEquals=(0,m.expectString)(e.KeyPrefixEquals)),t},HMe=(e,n)=>({}),VMe=(e,n)=>{let t={ETag:void 0,LastModified:void 0,ChecksumCRC32:void 0,ChecksumCRC32C:void 0,ChecksumSHA1:void 0,ChecksumSHA256:void 0};return e.ETag!==void 0&&(t.ETag=(0,m.expectString)(e.ETag)),e.LastModified!==void 0&&(t.LastModified=(0,m.expectNonNull)((0,m.parseRfc3339DateTimeWithOffset)(e.LastModified))),e.ChecksumCRC32!==void 0&&(t.ChecksumCRC32=(0,m.expectString)(e.ChecksumCRC32)),e.ChecksumCRC32C!==void 0&&(t.ChecksumCRC32C=(0,m.expectString)(e.ChecksumCRC32C)),e.ChecksumSHA1!==void 0&&(t.ChecksumSHA1=(0,m.expectString)(e.ChecksumSHA1)),e.ChecksumSHA256!==void 0&&(t.ChecksumSHA256=(0,m.expectString)(e.ChecksumSHA256)),t},WMe=(e,n)=>{let t={ETag:void 0,LastModified:void 0,ChecksumCRC32:void 0,ChecksumCRC32C:void 0,ChecksumSHA1:void 0,ChecksumSHA256:void 0};return e.ETag!==void 0&&(t.ETag=(0,m.expectString)(e.ETag)),e.LastModified!==void 0&&(t.LastModified=(0,m.expectNonNull)((0,m.parseRfc3339DateTimeWithOffset)(e.LastModified))),e.ChecksumCRC32!==void 0&&(t.ChecksumCRC32=(0,m.expectString)(e.ChecksumCRC32)),e.ChecksumCRC32C!==void 0&&(t.ChecksumCRC32C=(0,m.expectString)(e.ChecksumCRC32C)),e.ChecksumSHA1!==void 0&&(t.ChecksumSHA1=(0,m.expectString)(e.ChecksumSHA1)),e.ChecksumSHA256!==void 0&&(t.ChecksumSHA256=(0,m.expectString)(e.ChecksumSHA256)),t},KMe=(e,n)=>{let t={ID:void 0,AllowedHeaders:void 0,AllowedMethods:void 0,AllowedOrigins:void 0,ExposeHeaders:void 0,MaxAgeSeconds:void 0};return e.ID!==void 0&&(t.ID=(0,m.expectString)(e.ID)),e.AllowedHeader===""?t.AllowedHeaders=[]:e.AllowedHeader!==void 0&&(t.AllowedHeaders=qMe((0,m.getArrayIfSingleItem)(e.AllowedHeader),n)),e.AllowedMethod===""?t.AllowedMethods=[]:e.AllowedMethod!==void 0&&(t.AllowedMethods=LMe((0,m.getArrayIfSingleItem)(e.AllowedMethod),n)),e.AllowedOrigin===""?t.AllowedOrigins=[]:e.AllowedOrigin!==void 0&&(t.AllowedOrigins=FMe((0,m.getArrayIfSingleItem)(e.AllowedOrigin),n)),e.ExposeHeader===""?t.ExposeHeaders=[]:e.ExposeHeader!==void 0&&(t.ExposeHeaders=uOe((0,m.getArrayIfSingleItem)(e.ExposeHeader),n)),e.MaxAgeSeconds!==void 0&&(t.MaxAgeSeconds=(0,m.strictParseInt32)(e.MaxAgeSeconds)),t},QMe=(e,n)=>(e||[]).filter(t=>t!=null).map(t=>KMe(t,n)),JMe=(e,n)=>{let t={Mode:void 0,Days:void 0,Years:void 0};return e.Mode!==void 0&&(t.Mode=(0,m.expectString)(e.Mode)),e.Days!==void 0&&(t.Days=(0,m.strictParseInt32)(e.Days)),e.Years!==void 0&&(t.Years=(0,m.strictParseInt32)(e.Years)),t},YMe=(e,n)=>{let t={Key:void 0,VersionId:void 0,DeleteMarker:void 0,DeleteMarkerVersionId:void 0};return e.Key!==void 0&&(t.Key=(0,m.expectString)(e.Key)),e.VersionId!==void 0&&(t.VersionId=(0,m.expectString)(e.VersionId)),e.DeleteMarker!==void 0&&(t.DeleteMarker=(0,m.parseBoolean)(e.DeleteMarker)),e.DeleteMarkerVersionId!==void 0&&(t.DeleteMarkerVersionId=(0,m.expectString)(e.DeleteMarkerVersionId)),t},ZMe=(e,n)=>(e||[]).filter(t=>t!=null).map(t=>YMe(t,n)),eOe=(e,n)=>{let t={Owner:void 0,Key:void 0,VersionId:void 0,IsLatest:void 0,LastModified:void 0};return e.Owner!==void 0&&(t.Owner=ei(e.Owner,n)),e.Key!==void 0&&(t.Key=(0,m.expectString)(e.Key)),e.VersionId!==void 0&&(t.VersionId=(0,m.expectString)(e.VersionId)),e.IsLatest!==void 0&&(t.IsLatest=(0,m.parseBoolean)(e.IsLatest)),e.LastModified!==void 0&&(t.LastModified=(0,m.expectNonNull)((0,m.parseRfc3339DateTimeWithOffset)(e.LastModified))),t},tOe=(e,n)=>{let t={Status:void 0};return e.Status!==void 0&&(t.Status=(0,m.expectString)(e.Status)),t},nOe=(e,n)=>(e||[]).filter(t=>t!=null).map(t=>eOe(t,n)),sOe=(e,n)=>{let t={Bucket:void 0,Account:void 0,StorageClass:void 0,AccessControlTranslation:void 0,EncryptionConfiguration:void 0,ReplicationTime:void 0,Metrics:void 0};return e.Bucket!==void 0&&(t.Bucket=(0,m.expectString)(e.Bucket)),e.Account!==void 0&&(t.Account=(0,m.expectString)(e.Account)),e.StorageClass!==void 0&&(t.StorageClass=(0,m.expectString)(e.StorageClass)),e.AccessControlTranslation!==void 0&&(t.AccessControlTranslation=zMe(e.AccessControlTranslation,n)),e.EncryptionConfiguration!==void 0&&(t.EncryptionConfiguration=rOe(e.EncryptionConfiguration,n)),e.ReplicationTime!==void 0&&(t.ReplicationTime=fBe(e.ReplicationTime,n)),e.Metrics!==void 0&&(t.Metrics=FOe(e.Metrics,n)),t},rOe=(e,n)=>{let t={ReplicaKmsKeyID:void 0};return e.ReplicaKmsKeyID!==void 0&&(t.ReplicaKmsKeyID=(0,m.expectString)(e.ReplicaKmsKeyID)),t},iOe=(e,n)=>({}),oOe=(e,n)=>{let t={Key:void 0,VersionId:void 0,Code:void 0,Message:void 0};return e.Key!==void 0&&(t.Key=(0,m.expectString)(e.Key)),e.VersionId!==void 0&&(t.VersionId=(0,m.expectString)(e.VersionId)),e.Code!==void 0&&(t.Code=(0,m.expectString)(e.Code)),e.Message!==void 0&&(t.Message=(0,m.expectString)(e.Message)),t},aOe=(e,n)=>{let t={Key:void 0};return e.Key!==void 0&&(t.Key=(0,m.expectString)(e.Key)),t},cOe=(e,n)=>(e||[]).filter(t=>t!=null).map(t=>oOe(t,n)),lOe=(e,n)=>({}),dk=(e,n)=>(e||[]).filter(t=>t!=null).map(t=>(0,m.expectString)(t)),dOe=(e,n)=>{let t={Status:void 0};return e.Status!==void 0&&(t.Status=(0,m.expectString)(e.Status)),t},uOe=(e,n)=>(e||[]).filter(t=>t!=null).map(t=>(0,m.expectString)(t)),mOe=(e,n)=>{let t={Name:void 0,Value:void 0};return e.Name!==void 0&&(t.Name=(0,m.expectString)(e.Name)),e.Value!==void 0&&(t.Value=(0,m.expectString)(e.Value)),t},pOe=(e,n)=>(e||[]).filter(t=>t!=null).map(t=>mOe(t,n)),gOe=(e,n)=>{let t={TotalPartsCount:void 0,PartNumberMarker:void 0,NextPartNumberMarker:void 0,MaxParts:void 0,IsTruncated:void 0,Parts:void 0};return e.PartsCount!==void 0&&(t.TotalPartsCount=(0,m.strictParseInt32)(e.PartsCount)),e.PartNumberMarker!==void 0&&(t.PartNumberMarker=(0,m.expectString)(e.PartNumberMarker)),e.NextPartNumberMarker!==void 0&&(t.NextPartNumberMarker=(0,m.expectString)(e.NextPartNumberMarker)),e.MaxParts!==void 0&&(t.MaxParts=(0,m.strictParseInt32)(e.MaxParts)),e.IsTruncated!==void 0&&(t.IsTruncated=(0,m.parseBoolean)(e.IsTruncated)),e.Part===""?t.Parts=[]:e.Part!==void 0&&(t.Parts=sBe((0,m.getArrayIfSingleItem)(e.Part),n)),t},yOe=(e,n)=>{let t={Grantee:void 0,Permission:void 0};return e.Grantee!==void 0&&(t.Grantee=w$(e.Grantee,n)),e.Permission!==void 0&&(t.Permission=(0,m.expectString)(e.Permission)),t},w$=(e,n)=>{let t={DisplayName:void 0,EmailAddress:void 0,ID:void 0,URI:void 0,Type:void 0};return e.DisplayName!==void 0&&(t.DisplayName=(0,m.expectString)(e.DisplayName)),e.EmailAddress!==void 0&&(t.EmailAddress=(0,m.expectString)(e.EmailAddress)),e.ID!==void 0&&(t.ID=(0,m.expectString)(e.ID)),e.URI!==void 0&&(t.URI=(0,m.expectString)(e.URI)),e["xsi:type"]!==void 0&&(t.Type=(0,m.expectString)(e["xsi:type"])),t},E$=(e,n)=>(e||[]).filter(t=>t!=null).map(t=>yOe(t,n)),_Oe=(e,n)=>{let t={Suffix:void 0};return e.Suffix!==void 0&&(t.Suffix=(0,m.expectString)(e.Suffix)),t},C$=(e,n)=>{let t={ID:void 0,DisplayName:void 0};return e.ID!==void 0&&(t.ID=(0,m.expectString)(e.ID)),e.DisplayName!==void 0&&(t.DisplayName=(0,m.expectString)(e.DisplayName)),t},fOe=(e,n)=>{let t={Prefix:void 0,Tags:void 0};return e.Prefix!==void 0&&(t.Prefix=(0,m.expectString)(e.Prefix)),e.Tag===""?t.Tags=[]:e.Tag!==void 0&&(t.Tags=Li((0,m.getArrayIfSingleItem)(e.Tag),n)),t},v$=(e,n)=>{let t={Id:void 0,Filter:void 0,Status:void 0,Tierings:void 0};return e.Id!==void 0&&(t.Id=(0,m.expectString)(e.Id)),e.Filter!==void 0&&(t.Filter=hOe(e.Filter,n)),e.Status!==void 0&&(t.Status=(0,m.expectString)(e.Status)),e.Tiering===""?t.Tierings=[]:e.Tiering!==void 0&&(t.Tierings=FBe((0,m.getArrayIfSingleItem)(e.Tiering),n)),t},SOe=(e,n)=>(e||[]).filter(t=>t!=null).map(t=>v$(t,n)),hOe=(e,n)=>{let t={Prefix:void 0,Tag:void 0,And:void 0};return e.Prefix!==void 0&&(t.Prefix=(0,m.expectString)(e.Prefix)),e.Tag!==void 0&&(t.Tag=Ao(e.Tag,n)),e.And!==void 0&&(t.And=fOe(e.And,n)),t},P$=(e,n)=>{let t={Destination:void 0,IsEnabled:void 0,Filter:void 0,Id:void 0,IncludedObjectVersions:void 0,OptionalFields:void 0,Schedule:void 0};return e.Destination!==void 0&&(t.Destination=EOe(e.Destination,n)),e.IsEnabled!==void 0&&(t.IsEnabled=(0,m.parseBoolean)(e.IsEnabled)),e.Filter!==void 0&&(t.Filter=vOe(e.Filter,n)),e.Id!==void 0&&(t.Id=(0,m.expectString)(e.Id)),e.IncludedObjectVersions!==void 0&&(t.IncludedObjectVersions=(0,m.expectString)(e.IncludedObjectVersions)),e.OptionalFields===""?t.OptionalFields=[]:e.OptionalFields!==void 0&&e.OptionalFields.Field!==void 0&&(t.OptionalFields=POe((0,m.getArrayIfSingleItem)(e.OptionalFields.Field),n)),e.Schedule!==void 0&&(t.Schedule=xOe(e.Schedule,n)),t},wOe=(e,n)=>(e||[]).filter(t=>t!=null).map(t=>P$(t,n)),EOe=(e,n)=>{let t={S3BucketDestination:void 0};return e.S3BucketDestination!==void 0&&(t.S3BucketDestination=AOe(e.S3BucketDestination,n)),t},COe=(e,n)=>{let t={SSES3:void 0,SSEKMS:void 0};return e["SSE-S3"]!==void 0&&(t.SSES3=IBe(e["SSE-S3"],n)),e["SSE-KMS"]!==void 0&&(t.SSEKMS=xBe(e["SSE-KMS"],n)),t},vOe=(e,n)=>{let t={Prefix:void 0};return e.Prefix!==void 0&&(t.Prefix=(0,m.expectString)(e.Prefix)),t},POe=(e,n)=>(e||[]).filter(t=>t!=null).map(t=>(0,m.expectString)(t)),AOe=(e,n)=>{let t={AccountId:void 0,Bucket:void 0,Format:void 0,Prefix:void 0,Encryption:void 0};return e.AccountId!==void 0&&(t.AccountId=(0,m.expectString)(e.AccountId)),e.Bucket!==void 0&&(t.Bucket=(0,m.expectString)(e.Bucket)),e.Format!==void 0&&(t.Format=(0,m.expectString)(e.Format)),e.Prefix!==void 0&&(t.Prefix=(0,m.expectString)(e.Prefix)),e.Encryption!==void 0&&(t.Encryption=COe(e.Encryption,n)),t},xOe=(e,n)=>{let t={Frequency:void 0};return e.Frequency!==void 0&&(t.Frequency=(0,m.expectString)(e.Frequency)),t},bOe=(e,n)=>{let t={Id:void 0,LambdaFunctionArn:void 0,Events:void 0,Filter:void 0};return e.Id!==void 0&&(t.Id=(0,m.expectString)(e.Id)),e.CloudFunction!==void 0&&(t.LambdaFunctionArn=(0,m.expectString)(e.CloudFunction)),e.Event===""?t.Events=[]:e.Event!==void 0&&(t.Events=dk((0,m.getArrayIfSingleItem)(e.Event),n)),e.Filter!==void 0&&(t.Filter=uk(e.Filter,n)),t},IOe=(e,n)=>(e||[]).filter(t=>t!=null).map(t=>bOe(t,n)),kOe=(e,n)=>{let t={Date:void 0,Days:void 0,ExpiredObjectDeleteMarker:void 0};return e.Date!==void 0&&(t.Date=(0,m.expectNonNull)((0,m.parseRfc3339DateTimeWithOffset)(e.Date))),e.Days!==void 0&&(t.Days=(0,m.strictParseInt32)(e.Days)),e.ExpiredObjectDeleteMarker!==void 0&&(t.ExpiredObjectDeleteMarker=(0,m.parseBoolean)(e.ExpiredObjectDeleteMarker)),t},ROe=(e,n)=>{let t={Expiration:void 0,ID:void 0,Prefix:void 0,Filter:void 0,Status:void 0,Transitions:void 0,NoncurrentVersionTransitions:void 0,NoncurrentVersionExpiration:void 0,AbortIncompleteMultipartUpload:void 0};return e.Expiration!==void 0&&(t.Expiration=kOe(e.Expiration,n)),e.ID!==void 0&&(t.ID=(0,m.expectString)(e.ID)),e.Prefix!==void 0&&(t.Prefix=(0,m.expectString)(e.Prefix)),e.Filter===""||e.Filter!==void 0&&(t.Filter=zOe((0,m.expectUnion)(e.Filter),n)),e.Status!==void 0&&(t.Status=(0,m.expectString)(e.Status)),e.Transition===""?t.Transitions=[]:e.Transition!==void 0&&(t.Transitions=MBe((0,m.getArrayIfSingleItem)(e.Transition),n)),e.NoncurrentVersionTransition===""?t.NoncurrentVersionTransitions=[]:e.NoncurrentVersionTransition!==void 0&&(t.NoncurrentVersionTransitions=UOe((0,m.getArrayIfSingleItem)(e.NoncurrentVersionTransition),n)),e.NoncurrentVersionExpiration!==void 0&&(t.NoncurrentVersionExpiration=BOe(e.NoncurrentVersionExpiration,n)),e.AbortIncompleteMultipartUpload!==void 0&&(t.AbortIncompleteMultipartUpload=NMe(e.AbortIncompleteMultipartUpload,n)),t},NOe=(e,n)=>{let t={Prefix:void 0,Tags:void 0,ObjectSizeGreaterThan:void 0,ObjectSizeLessThan:void 0};return e.Prefix!==void 0&&(t.Prefix=(0,m.expectString)(e.Prefix)),e.Tag===""?t.Tags=[]:e.Tag!==void 0&&(t.Tags=Li((0,m.getArrayIfSingleItem)(e.Tag),n)),e.ObjectSizeGreaterThan!==void 0&&(t.ObjectSizeGreaterThan=(0,m.strictParseLong)(e.ObjectSizeGreaterThan)),e.ObjectSizeLessThan!==void 0&&(t.ObjectSizeLessThan=(0,m.strictParseLong)(e.ObjectSizeLessThan)),t},zOe=(e,n)=>e.Prefix!==void 0?{Prefix:(0,m.expectString)(e.Prefix)}:e.Tag!==void 0?{Tag:Ao(e.Tag,n)}:e.ObjectSizeGreaterThan!==void 0?{ObjectSizeGreaterThan:(0,m.strictParseLong)(e.ObjectSizeGreaterThan)}:e.ObjectSizeLessThan!==void 0?{ObjectSizeLessThan:(0,m.strictParseLong)(e.ObjectSizeLessThan)}:e.And!==void 0?{And:NOe(e.And,n)}:{$unknown:Object.entries(e)[0]},qOe=(e,n)=>(e||[]).filter(t=>t!=null).map(t=>ROe(t,n)),LOe=(e,n)=>{let t={TargetBucket:void 0,TargetGrants:void 0,TargetPrefix:void 0};return e.TargetBucket!==void 0&&(t.TargetBucket=(0,m.expectString)(e.TargetBucket)),e.TargetGrants===""?t.TargetGrants=[]:e.TargetGrants!==void 0&&e.TargetGrants.Grant!==void 0&&(t.TargetGrants=qBe((0,m.getArrayIfSingleItem)(e.TargetGrants.Grant),n)),e.TargetPrefix!==void 0&&(t.TargetPrefix=(0,m.expectString)(e.TargetPrefix)),t},FOe=(e,n)=>{let t={Status:void 0,EventThreshold:void 0};return e.Status!==void 0&&(t.Status=(0,m.expectString)(e.Status)),e.EventThreshold!==void 0&&(t.EventThreshold=b$(e.EventThreshold,n)),t},DOe=(e,n)=>{let t={Prefix:void 0,Tags:void 0,AccessPointArn:void 0};return e.Prefix!==void 0&&(t.Prefix=(0,m.expectString)(e.Prefix)),e.Tag===""?t.Tags=[]:e.Tag!==void 0&&(t.Tags=Li((0,m.getArrayIfSingleItem)(e.Tag),n)),e.AccessPointArn!==void 0&&(t.AccessPointArn=(0,m.expectString)(e.AccessPointArn)),t},A$=(e,n)=>{let t={Id:void 0,Filter:void 0};return e.Id!==void 0&&(t.Id=(0,m.expectString)(e.Id)),e.Filter===""||e.Filter!==void 0&&(t.Filter=jOe((0,m.expectUnion)(e.Filter),n)),t},TOe=(e,n)=>(e||[]).filter(t=>t!=null).map(t=>A$(t,n)),jOe=(e,n)=>e.Prefix!==void 0?{Prefix:(0,m.expectString)(e.Prefix)}:e.Tag!==void 0?{Tag:Ao(e.Tag,n)}:e.AccessPointArn!==void 0?{AccessPointArn:(0,m.expectString)(e.AccessPointArn)}:e.And!==void 0?{And:DOe(e.And,n)}:{$unknown:Object.entries(e)[0]},MOe=(e,n)=>{let t={UploadId:void 0,Key:void 0,Initiated:void 0,StorageClass:void 0,Owner:void 0,Initiator:void 0,ChecksumAlgorithm:void 0};return e.UploadId!==void 0&&(t.UploadId=(0,m.expectString)(e.UploadId)),e.Key!==void 0&&(t.Key=(0,m.expectString)(e.Key)),e.Initiated!==void 0&&(t.Initiated=(0,m.expectNonNull)((0,m.parseRfc3339DateTimeWithOffset)(e.Initiated))),e.StorageClass!==void 0&&(t.StorageClass=(0,m.expectString)(e.StorageClass)),e.Owner!==void 0&&(t.Owner=ei(e.Owner,n)),e.Initiator!==void 0&&(t.Initiator=C$(e.Initiator,n)),e.ChecksumAlgorithm!==void 0&&(t.ChecksumAlgorithm=(0,m.expectString)(e.ChecksumAlgorithm)),t},OOe=(e,n)=>(e||[]).filter(t=>t!=null).map(t=>MOe(t,n)),BOe=(e,n)=>{let t={NoncurrentDays:void 0,NewerNoncurrentVersions:void 0};return e.NoncurrentDays!==void 0&&(t.NoncurrentDays=(0,m.strictParseInt32)(e.NoncurrentDays)),e.NewerNoncurrentVersions!==void 0&&(t.NewerNoncurrentVersions=(0,m.strictParseInt32)(e.NewerNoncurrentVersions)),t},GOe=(e,n)=>{let t={NoncurrentDays:void 0,StorageClass:void 0,NewerNoncurrentVersions:void 0};return e.NoncurrentDays!==void 0&&(t.NoncurrentDays=(0,m.strictParseInt32)(e.NoncurrentDays)),e.StorageClass!==void 0&&(t.StorageClass=(0,m.expectString)(e.StorageClass)),e.NewerNoncurrentVersions!==void 0&&(t.NewerNoncurrentVersions=(0,m.strictParseInt32)(e.NewerNoncurrentVersions)),t},UOe=(e,n)=>(e||[]).filter(t=>t!=null).map(t=>GOe(t,n)),uk=(e,n)=>{let t={Key:void 0};return e.S3Key!==void 0&&(t.Key=wBe(e.S3Key,n)),t},XOe=(e,n)=>{let t={Key:void 0,LastModified:void 0,ETag:void 0,ChecksumAlgorithm:void 0,Size:void 0,StorageClass:void 0,Owner:void 0};return e.Key!==void 0&&(t.Key=(0,m.expectString)(e.Key)),e.LastModified!==void 0&&(t.LastModified=(0,m.expectNonNull)((0,m.parseRfc3339DateTimeWithOffset)(e.LastModified))),e.ETag!==void 0&&(t.ETag=(0,m.expectString)(e.ETag)),e.ChecksumAlgorithm===""?t.ChecksumAlgorithm=[]:e.ChecksumAlgorithm!==void 0&&(t.ChecksumAlgorithm=h$((0,m.getArrayIfSingleItem)(e.ChecksumAlgorithm),n)),e.Size!==void 0&&(t.Size=(0,m.strictParseLong)(e.Size)),e.StorageClass!==void 0&&(t.StorageClass=(0,m.expectString)(e.StorageClass)),e.Owner!==void 0&&(t.Owner=ei(e.Owner,n)),t},x$=(e,n)=>(e||[]).filter(t=>t!=null).map(t=>XOe(t,n)),$Oe=(e,n)=>{let t={ObjectLockEnabled:void 0,Rule:void 0};return e.ObjectLockEnabled!==void 0&&(t.ObjectLockEnabled=(0,m.expectString)(e.ObjectLockEnabled)),e.Rule!==void 0&&(t.Rule=WOe(e.Rule,n)),t},HOe=(e,n)=>{let t={Status:void 0};return e.Status!==void 0&&(t.Status=(0,m.expectString)(e.Status)),t},VOe=(e,n)=>{let t={Mode:void 0,RetainUntilDate:void 0};return e.Mode!==void 0&&(t.Mode=(0,m.expectString)(e.Mode)),e.RetainUntilDate!==void 0&&(t.RetainUntilDate=(0,m.expectNonNull)((0,m.parseRfc3339DateTimeWithOffset)(e.RetainUntilDate))),t},WOe=(e,n)=>{let t={DefaultRetention:void 0};return e.DefaultRetention!==void 0&&(t.DefaultRetention=JMe(e.DefaultRetention,n)),t},KOe=(e,n)=>{let t={PartNumber:void 0,Size:void 0,ChecksumCRC32:void 0,ChecksumCRC32C:void 0,ChecksumSHA1:void 0,ChecksumSHA256:void 0};return e.PartNumber!==void 0&&(t.PartNumber=(0,m.strictParseInt32)(e.PartNumber)),e.Size!==void 0&&(t.Size=(0,m.strictParseLong)(e.Size)),e.ChecksumCRC32!==void 0&&(t.ChecksumCRC32=(0,m.expectString)(e.ChecksumCRC32)),e.ChecksumCRC32C!==void 0&&(t.ChecksumCRC32C=(0,m.expectString)(e.ChecksumCRC32C)),e.ChecksumSHA1!==void 0&&(t.ChecksumSHA1=(0,m.expectString)(e.ChecksumSHA1)),e.ChecksumSHA256!==void 0&&(t.ChecksumSHA256=(0,m.expectString)(e.ChecksumSHA256)),t},QOe=(e,n)=>{let t={ETag:void 0,ChecksumAlgorithm:void 0,Size:void 0,StorageClass:void 0,Key:void 0,VersionId:void 0,IsLatest:void 0,LastModified:void 0,Owner:void 0};return e.ETag!==void 0&&(t.ETag=(0,m.expectString)(e.ETag)),e.ChecksumAlgorithm===""?t.ChecksumAlgorithm=[]:e.ChecksumAlgorithm!==void 0&&(t.ChecksumAlgorithm=h$((0,m.getArrayIfSingleItem)(e.ChecksumAlgorithm),n)),e.Size!==void 0&&(t.Size=(0,m.strictParseLong)(e.Size)),e.StorageClass!==void 0&&(t.StorageClass=(0,m.expectString)(e.StorageClass)),e.Key!==void 0&&(t.Key=(0,m.expectString)(e.Key)),e.VersionId!==void 0&&(t.VersionId=(0,m.expectString)(e.VersionId)),e.IsLatest!==void 0&&(t.IsLatest=(0,m.parseBoolean)(e.IsLatest)),e.LastModified!==void 0&&(t.LastModified=(0,m.expectNonNull)((0,m.parseRfc3339DateTimeWithOffset)(e.LastModified))),e.Owner!==void 0&&(t.Owner=ei(e.Owner,n)),t},JOe=(e,n)=>(e||[]).filter(t=>t!=null).map(t=>QOe(t,n)),ei=(e,n)=>{let t={DisplayName:void 0,ID:void 0};return e.DisplayName!==void 0&&(t.DisplayName=(0,m.expectString)(e.DisplayName)),e.ID!==void 0&&(t.ID=(0,m.expectString)(e.ID)),t},YOe=(e,n)=>{let t={Rules:void 0};return e.Rule===""?t.Rules=[]:e.Rule!==void 0&&(t.Rules=eBe((0,m.getArrayIfSingleItem)(e.Rule),n)),t},ZOe=(e,n)=>{let t={ObjectOwnership:void 0};return e.ObjectOwnership!==void 0&&(t.ObjectOwnership=(0,m.expectString)(e.ObjectOwnership)),t},eBe=(e,n)=>(e||[]).filter(t=>t!=null).map(t=>ZOe(t,n)),tBe=(e,n)=>{let t={PartNumber:void 0,LastModified:void 0,ETag:void 0,Size:void 0,ChecksumCRC32:void 0,ChecksumCRC32C:void 0,ChecksumSHA1:void 0,ChecksumSHA256:void 0};return e.PartNumber!==void 0&&(t.PartNumber=(0,m.strictParseInt32)(e.PartNumber)),e.LastModified!==void 0&&(t.LastModified=(0,m.expectNonNull)((0,m.parseRfc3339DateTimeWithOffset)(e.LastModified))),e.ETag!==void 0&&(t.ETag=(0,m.expectString)(e.ETag)),e.Size!==void 0&&(t.Size=(0,m.strictParseLong)(e.Size)),e.ChecksumCRC32!==void 0&&(t.ChecksumCRC32=(0,m.expectString)(e.ChecksumCRC32)),e.ChecksumCRC32C!==void 0&&(t.ChecksumCRC32C=(0,m.expectString)(e.ChecksumCRC32C)),e.ChecksumSHA1!==void 0&&(t.ChecksumSHA1=(0,m.expectString)(e.ChecksumSHA1)),e.ChecksumSHA256!==void 0&&(t.ChecksumSHA256=(0,m.expectString)(e.ChecksumSHA256)),t},nBe=(e,n)=>(e||[]).filter(t=>t!=null).map(t=>tBe(t,n)),sBe=(e,n)=>(e||[]).filter(t=>t!=null).map(t=>KOe(t,n)),rBe=(e,n)=>{let t={IsPublic:void 0};return e.IsPublic!==void 0&&(t.IsPublic=(0,m.parseBoolean)(e.IsPublic)),t},iBe=(e,n)=>{let t={BytesScanned:void 0,BytesProcessed:void 0,BytesReturned:void 0};return e.BytesScanned!==void 0&&(t.BytesScanned=(0,m.strictParseLong)(e.BytesScanned)),e.BytesProcessed!==void 0&&(t.BytesProcessed=(0,m.strictParseLong)(e.BytesProcessed)),e.BytesReturned!==void 0&&(t.BytesReturned=(0,m.strictParseLong)(e.BytesReturned)),t},oBe=(e,n)=>{let t={BlockPublicAcls:void 0,IgnorePublicAcls:void 0,BlockPublicPolicy:void 0,RestrictPublicBuckets:void 0};return e.BlockPublicAcls!==void 0&&(t.BlockPublicAcls=(0,m.parseBoolean)(e.BlockPublicAcls)),e.IgnorePublicAcls!==void 0&&(t.IgnorePublicAcls=(0,m.parseBoolean)(e.IgnorePublicAcls)),e.BlockPublicPolicy!==void 0&&(t.BlockPublicPolicy=(0,m.parseBoolean)(e.BlockPublicPolicy)),e.RestrictPublicBuckets!==void 0&&(t.RestrictPublicBuckets=(0,m.parseBoolean)(e.RestrictPublicBuckets)),t},aBe=(e,n)=>{let t={Id:void 0,QueueArn:void 0,Events:void 0,Filter:void 0};return e.Id!==void 0&&(t.Id=(0,m.expectString)(e.Id)),e.Queue!==void 0&&(t.QueueArn=(0,m.expectString)(e.Queue)),e.Event===""?t.Events=[]:e.Event!==void 0&&(t.Events=dk((0,m.getArrayIfSingleItem)(e.Event),n)),e.Filter!==void 0&&(t.Filter=uk(e.Filter,n)),t},cBe=(e,n)=>(e||[]).filter(t=>t!=null).map(t=>aBe(t,n)),lBe=(e,n)=>{let t={HostName:void 0,HttpRedirectCode:void 0,Protocol:void 0,ReplaceKeyPrefixWith:void 0,ReplaceKeyWith:void 0};return e.HostName!==void 0&&(t.HostName=(0,m.expectString)(e.HostName)),e.HttpRedirectCode!==void 0&&(t.HttpRedirectCode=(0,m.expectString)(e.HttpRedirectCode)),e.Protocol!==void 0&&(t.Protocol=(0,m.expectString)(e.Protocol)),e.ReplaceKeyPrefixWith!==void 0&&(t.ReplaceKeyPrefixWith=(0,m.expectString)(e.ReplaceKeyPrefixWith)),e.ReplaceKeyWith!==void 0&&(t.ReplaceKeyWith=(0,m.expectString)(e.ReplaceKeyWith)),t},dBe=(e,n)=>{let t={HostName:void 0,Protocol:void 0};return e.HostName!==void 0&&(t.HostName=(0,m.expectString)(e.HostName)),e.Protocol!==void 0&&(t.Protocol=(0,m.expectString)(e.Protocol)),t},uBe=(e,n)=>{let t={Status:void 0};return e.Status!==void 0&&(t.Status=(0,m.expectString)(e.Status)),t},mBe=(e,n)=>{let t={Role:void 0,Rules:void 0};return e.Role!==void 0&&(t.Role=(0,m.expectString)(e.Role)),e.Rule===""?t.Rules=[]:e.Rule!==void 0&&(t.Rules=_Be((0,m.getArrayIfSingleItem)(e.Rule),n)),t},pBe=(e,n)=>{let t={ID:void 0,Priority:void 0,Prefix:void 0,Filter:void 0,Status:void 0,SourceSelectionCriteria:void 0,ExistingObjectReplication:void 0,Destination:void 0,DeleteMarkerReplication:void 0};return e.ID!==void 0&&(t.ID=(0,m.expectString)(e.ID)),e.Priority!==void 0&&(t.Priority=(0,m.strictParseInt32)(e.Priority)),e.Prefix!==void 0&&(t.Prefix=(0,m.expectString)(e.Prefix)),e.Filter===""||e.Filter!==void 0&&(t.Filter=yBe((0,m.expectUnion)(e.Filter),n)),e.Status!==void 0&&(t.Status=(0,m.expectString)(e.Status)),e.SourceSelectionCriteria!==void 0&&(t.SourceSelectionCriteria=ABe(e.SourceSelectionCriteria,n)),e.ExistingObjectReplication!==void 0&&(t.ExistingObjectReplication=dOe(e.ExistingObjectReplication,n)),e.Destination!==void 0&&(t.Destination=sOe(e.Destination,n)),e.DeleteMarkerReplication!==void 0&&(t.DeleteMarkerReplication=tOe(e.DeleteMarkerReplication,n)),t},gBe=(e,n)=>{let t={Prefix:void 0,Tags:void 0};return e.Prefix!==void 0&&(t.Prefix=(0,m.expectString)(e.Prefix)),e.Tag===""?t.Tags=[]:e.Tag!==void 0&&(t.Tags=Li((0,m.getArrayIfSingleItem)(e.Tag),n)),t},yBe=(e,n)=>e.Prefix!==void 0?{Prefix:(0,m.expectString)(e.Prefix)}:e.Tag!==void 0?{Tag:Ao(e.Tag,n)}:e.And!==void 0?{And:gBe(e.And,n)}:{$unknown:Object.entries(e)[0]},_Be=(e,n)=>(e||[]).filter(t=>t!=null).map(t=>pBe(t,n)),fBe=(e,n)=>{let t={Status:void 0,Time:void 0};return e.Status!==void 0&&(t.Status=(0,m.expectString)(e.Status)),e.Time!==void 0&&(t.Time=b$(e.Time,n)),t},b$=(e,n)=>{let t={Minutes:void 0};return e.Minutes!==void 0&&(t.Minutes=(0,m.strictParseInt32)(e.Minutes)),t},SBe=(e,n)=>{let t={Condition:void 0,Redirect:void 0};return e.Condition!==void 0&&(t.Condition=$Me(e.Condition,n)),e.Redirect!==void 0&&(t.Redirect=lBe(e.Redirect,n)),t},hBe=(e,n)=>(e||[]).filter(t=>t!=null).map(t=>SBe(t,n)),wBe=(e,n)=>{let t={FilterRules:void 0};return e.FilterRule===""?t.FilterRules=[]:e.FilterRule!==void 0&&(t.FilterRules=pOe((0,m.getArrayIfSingleItem)(e.FilterRule),n)),t},EBe=(e,n)=>{let t={SSEAlgorithm:void 0,KMSMasterKeyID:void 0};return e.SSEAlgorithm!==void 0&&(t.SSEAlgorithm=(0,m.expectString)(e.SSEAlgorithm)),e.KMSMasterKeyID!==void 0&&(t.KMSMasterKeyID=(0,m.expectString)(e.KMSMasterKeyID)),t},CBe=(e,n)=>{let t={Rules:void 0};return e.Rule===""?t.Rules=[]:e.Rule!==void 0&&(t.Rules=PBe((0,m.getArrayIfSingleItem)(e.Rule),n)),t},vBe=(e,n)=>{let t={ApplyServerSideEncryptionByDefault:void 0,BucketKeyEnabled:void 0};return e.ApplyServerSideEncryptionByDefault!==void 0&&(t.ApplyServerSideEncryptionByDefault=EBe(e.ApplyServerSideEncryptionByDefault,n)),e.BucketKeyEnabled!==void 0&&(t.BucketKeyEnabled=(0,m.parseBoolean)(e.BucketKeyEnabled)),t},PBe=(e,n)=>(e||[]).filter(t=>t!=null).map(t=>vBe(t,n)),ABe=(e,n)=>{let t={SseKmsEncryptedObjects:void 0,ReplicaModifications:void 0};return e.SseKmsEncryptedObjects!==void 0&&(t.SseKmsEncryptedObjects=bBe(e.SseKmsEncryptedObjects,n)),e.ReplicaModifications!==void 0&&(t.ReplicaModifications=uBe(e.ReplicaModifications,n)),t},xBe=(e,n)=>{let t={KeyId:void 0};return e.KeyId!==void 0&&(t.KeyId=(0,m.expectString)(e.KeyId)),t},bBe=(e,n)=>{let t={Status:void 0};return e.Status!==void 0&&(t.Status=(0,m.expectString)(e.Status)),t},IBe=(e,n)=>({}),kBe=(e,n)=>{let t={BytesScanned:void 0,BytesProcessed:void 0,BytesReturned:void 0};return e.BytesScanned!==void 0&&(t.BytesScanned=(0,m.strictParseLong)(e.BytesScanned)),e.BytesProcessed!==void 0&&(t.BytesProcessed=(0,m.strictParseLong)(e.BytesProcessed)),e.BytesReturned!==void 0&&(t.BytesReturned=(0,m.strictParseLong)(e.BytesReturned)),t},RBe=(e,n)=>{let t={DataExport:void 0};return e.DataExport!==void 0&&(t.DataExport=NBe(e.DataExport,n)),t},NBe=(e,n)=>{let t={OutputSchemaVersion:void 0,Destination:void 0};return e.OutputSchemaVersion!==void 0&&(t.OutputSchemaVersion=(0,m.expectString)(e.OutputSchemaVersion)),e.Destination!==void 0&&(t.Destination=jMe(e.Destination,n)),t},Ao=(e,n)=>{let t={Key:void 0,Value:void 0};return e.Key!==void 0&&(t.Key=(0,m.expectString)(e.Key)),e.Value!==void 0&&(t.Value=(0,m.expectString)(e.Value)),t},Li=(e,n)=>(e||[]).filter(t=>t!=null).map(t=>Ao(t,n)),zBe=(e,n)=>{let t={Grantee:void 0,Permission:void 0};return e.Grantee!==void 0&&(t.Grantee=w$(e.Grantee,n)),e.Permission!==void 0&&(t.Permission=(0,m.expectString)(e.Permission)),t},qBe=(e,n)=>(e||[]).filter(t=>t!=null).map(t=>zBe(t,n)),LBe=(e,n)=>{let t={Days:void 0,AccessTier:void 0};return e.Days!==void 0&&(t.Days=(0,m.strictParseInt32)(e.Days)),e.AccessTier!==void 0&&(t.AccessTier=(0,m.expectString)(e.AccessTier)),t},FBe=(e,n)=>(e||[]).filter(t=>t!=null).map(t=>LBe(t,n)),DBe=(e,n)=>{let t={Id:void 0,TopicArn:void 0,Events:void 0,Filter:void 0};return e.Id!==void 0&&(t.Id=(0,m.expectString)(e.Id)),e.Topic!==void 0&&(t.TopicArn=(0,m.expectString)(e.Topic)),e.Event===""?t.Events=[]:e.Event!==void 0&&(t.Events=dk((0,m.getArrayIfSingleItem)(e.Event),n)),e.Filter!==void 0&&(t.Filter=uk(e.Filter,n)),t},TBe=(e,n)=>(e||[]).filter(t=>t!=null).map(t=>DBe(t,n)),jBe=(e,n)=>{let t={Date:void 0,Days:void 0,StorageClass:void 0};return e.Date!==void 0&&(t.Date=(0,m.expectNonNull)((0,m.parseRfc3339DateTimeWithOffset)(e.Date))),e.Days!==void 0&&(t.Days=(0,m.strictParseInt32)(e.Days)),e.StorageClass!==void 0&&(t.StorageClass=(0,m.expectString)(e.StorageClass)),t},MBe=(e,n)=>(e||[]).filter(t=>t!=null).map(t=>jBe(t,n)),G=e=>({httpStatusCode:e.statusCode,requestId:e.headers["x-amzn-requestid"]??e.headers["x-amzn-request-id"]??e.headers["x-amz-request-id"],extendedRequestId:e.headers["x-amz-id-2"],cfId:e.headers["x-amz-cf-id"]}),Ae=(e=new Uint8Array,n)=>e instanceof Uint8Array?Promise.resolve(e):n.streamCollector(e)||Promise.resolve(new Uint8Array),I$=(e,n)=>Ae(e,n).then(t=>n.utf8Encoder(t)),M=e=>e!=null&&e!==""&&(!Object.getOwnPropertyNames(e).includes("length")||e.length!=0)&&(!Object.getOwnPropertyNames(e).includes("size")||e.size!=0),Re=(e,n)=>I$(e,n).then(t=>{if(t.length){let s=new Sze.XMLParser({attributeNamePrefix:"",htmlEntities:!0,ignoreAttributes:!1,ignoreDeclaration:!0,parseTagValue:!1,trimValues:!1,tagValueProcessor:(c,l)=>l.trim()===""&&l.includes(` +`)?"":void 0});s.addEntity("#xD","\r"),s.addEntity("#10",` +`);let r=s.parse(t),i="#text",a=Object.keys(r)[0],o=r[a];return o[i]&&(o[a]=o[i],delete o[i]),(0,m.getValueFromTextNode)(o)}return{}}),Q=async(e,n)=>{let t=await Re(e,n);return t.Error&&(t.Error.message=t.Error.message??t.Error.Message),t},J=(e,n)=>{if(n?.Code!==void 0)return n.Code;if(e.statusCode==404)return"NotFound"}});var mk=u(SE=>{"use strict";Object.defineProperty(SE,"__esModule",{value:!0});SE.AbortMultipartUploadCommand=void 0;var OBe=x(),BBe=b(),GBe=E(),k$=ee(),R$=W(),jd=class extends GBe.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{Bucket:{type:"contextParams",name:"Bucket"},ForcePathStyle:{type:"clientContextParams",name:"forcePathStyle"},UseArnRegion:{type:"clientContextParams",name:"useArnRegion"},DisableMultiRegionAccessPoints:{type:"clientContextParams",name:"disableMultiregionAccessPoints"},Accelerate:{type:"clientContextParams",name:"useAccelerateEndpoint"},UseGlobalEndpoint:{type:"builtInParams",name:"useGlobalEndpoint"},UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,BBe.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,OBe.getEndpointPlugin)(t,jd.getEndpointParameterInstructions()));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"S3Client",commandName:"AbortMultipartUploadCommand",inputFilterSensitiveLog:k$.AbortMultipartUploadRequestFilterSensitiveLog,outputFilterSensitiveLog:k$.AbortMultipartUploadOutputFilterSensitiveLog},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,R$.serializeAws_restXmlAbortMultipartUploadCommand)(n,t)}deserialize(n,t){return(0,R$.deserializeAws_restXmlAbortMultipartUploadCommand)(n,t)}};SE.AbortMultipartUploadCommand=jd});var z$=u(cr=>{"use strict";Object.defineProperty(cr,"__esModule",{value:!0});cr.getCheckContentLengthHeaderPlugin=cr.checkContentLengthHeaderMiddlewareOptions=cr.checkContentLengthHeader=void 0;var UBe=gt(),XBe="content-length";function N$(){return(e,n)=>async t=>{var s;let{request:r}=t;if(UBe.HttpRequest.isInstance(r)&&!r.headers[XBe]){let i="Are you using a Stream of unknown length as the Body of a PutObject request? Consider using Upload instead from @aws-sdk/lib-storage.";typeof((s=n?.logger)===null||s===void 0?void 0:s.warn)=="function"?n.logger.warn(i):console.warn(i)}return e({...t})}}cr.checkContentLengthHeader=N$;cr.checkContentLengthHeaderMiddlewareOptions={step:"finalizeRequest",tags:["CHECK_CONTENT_LENGTH_HEADER"],name:"getCheckContentLengthHeaderPlugin",override:!0};var $Be=e=>({applyToStack:n=>{n.add(N$(),cr.checkContentLengthHeaderMiddlewareOptions)}});cr.getCheckContentLengthHeaderPlugin=$Be});var q$=u(hE=>{"use strict";Object.defineProperty(hE,"__esModule",{value:!0});hE.resolveS3Config=void 0;var HBe=e=>{var n,t,s;return{...e,forcePathStyle:(n=e.forcePathStyle)!==null&&n!==void 0?n:!1,useAccelerateEndpoint:(t=e.useAccelerateEndpoint)!==null&&t!==void 0?t:!1,disableMultiregionAccessPoints:(s=e.disableMultiregionAccessPoints)!==null&&s!==void 0?s:!1}};hE.resolveS3Config=HBe});var F$=u(Ns=>{"use strict";Object.defineProperty(Ns,"__esModule",{value:!0});Ns.getThrow200ExceptionsPlugin=Ns.throw200ExceptionsMiddlewareOptions=Ns.throw200ExceptionsMiddleware=void 0;var VBe=gt(),WBe=e=>n=>async t=>{let s=await n(t),{response:r}=s;if(!VBe.HttpResponse.isInstance(r))return s;let{statusCode:i,body:a}=r;if(i<200||i>=300)return s;let o=await L$(a,e),c=await KBe(o,e);if(o.length===0){let l=new Error("S3 aborted request");throw l.name="InternalError",l}return c&&c.match("")&&(r.statusCode=400),r.body=o,s};Ns.throw200ExceptionsMiddleware=WBe;var L$=(e=new Uint8Array,n)=>e instanceof Uint8Array?Promise.resolve(e):n.streamCollector(e)||Promise.resolve(new Uint8Array),KBe=(e,n)=>L$(e,n).then(t=>n.utf8Encoder(t));Ns.throw200ExceptionsMiddlewareOptions={relation:"after",toMiddleware:"deserializerMiddleware",tags:["THROW_200_EXCEPTIONS","S3"],name:"throw200ExceptionsMiddleware",override:!0};var QBe=e=>({applyToStack:n=>{n.addRelativeTo((0,Ns.throw200ExceptionsMiddleware)(e),Ns.throw200ExceptionsMiddlewareOptions)}});Ns.getThrow200ExceptionsPlugin=QBe});var pk=u(ti=>{"use strict";Object.defineProperty(ti,"__esModule",{value:!0});ti.build=ti.parse=ti.validate=void 0;var JBe=e=>typeof e=="string"&&e.indexOf("arn:")===0&&e.split(":").length>=6;ti.validate=JBe;var YBe=e=>{let n=e.split(":");if(n.length<6||n[0]!=="arn")throw new Error("Malformed ARN");let[,t,s,r,i,...a]=n;return{partition:t,service:s,region:r,accountId:i,resource:a.join(":")}};ti.parse=YBe;var ZBe=e=>{let{partition:n="aws",service:t,region:s,accountId:r,resource:i}=e;if([t,s,r,i].some(a=>typeof a!="string"))throw new Error("Input ARN object is invalid");return`arn:${n}:${t}:${s}:${r}:${i}`};ti.build=ZBe});var T$=u(lr=>{"use strict";Object.defineProperty(lr,"__esModule",{value:!0});lr.getValidateBucketNamePlugin=lr.validateBucketNameMiddlewareOptions=lr.validateBucketNameMiddleware=void 0;var eGe=pk();function D$(){return e=>async n=>{let{input:{Bucket:t}}=n;if(typeof t=="string"&&!(0,eGe.validate)(t)&&t.indexOf("/")>=0){let s=new Error(`Bucket name shouldn't contain '/', received '${t}'`);throw s.name="InvalidBucketName",s}return e({...n})}}lr.validateBucketNameMiddleware=D$;lr.validateBucketNameMiddlewareOptions={step:"initialize",tags:["VALIDATE_BUCKET_NAME"],name:"validateBucketNameMiddleware",override:!0};var tGe=e=>({applyToStack:n=>{n.add(D$(),lr.validateBucketNameMiddlewareOptions)}});lr.getValidateBucketNamePlugin=tGe});var bo=u(xo=>{"use strict";Object.defineProperty(xo,"__esModule",{value:!0});var wE=X();wE.__exportStar(z$(),xo);wE.__exportStar(q$(),xo);wE.__exportStar(F$(),xo);wE.__exportStar(T$(),xo)});var $n=u(dr=>{"use strict";Object.defineProperty(dr,"__esModule",{value:!0});dr.getSsecPlugin=dr.ssecMiddlewareOptions=dr.ssecMiddleware=void 0;function j$(e){return n=>async t=>{let s={...t.input},r=[{target:"SSECustomerKey",hash:"SSECustomerKeyMD5"},{target:"CopySourceSSECustomerKey",hash:"CopySourceSSECustomerKeyMD5"}];for(let i of r){let a=s[i.target];if(a){let o=ArrayBuffer.isView(a)?new Uint8Array(a.buffer,a.byteOffset,a.byteLength):typeof a=="string"?e.utf8Decoder(a):new Uint8Array(a),c=e.base64Encoder(o),l=new e.md5;l.update(o),s={...s,[i.target]:c,[i.hash]:e.base64Encoder(await l.digest())}}}return n({...t,input:s})}}dr.ssecMiddleware=j$;dr.ssecMiddlewareOptions={name:"ssecMiddleware",step:"initialize",tags:["SSE"],override:!0};var nGe=e=>({applyToStack:n=>{n.add(j$(e),dr.ssecMiddlewareOptions)}});dr.getSsecPlugin=nGe});var gk=u(EE=>{"use strict";Object.defineProperty(EE,"__esModule",{value:!0});EE.CompleteMultipartUploadCommand=void 0;var sGe=x(),rGe=bo(),iGe=b(),oGe=$n(),aGe=E(),M$=ee(),O$=W(),Md=class extends aGe.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{Bucket:{type:"contextParams",name:"Bucket"},ForcePathStyle:{type:"clientContextParams",name:"forcePathStyle"},UseArnRegion:{type:"clientContextParams",name:"useArnRegion"},DisableMultiRegionAccessPoints:{type:"clientContextParams",name:"disableMultiregionAccessPoints"},Accelerate:{type:"clientContextParams",name:"useAccelerateEndpoint"},UseGlobalEndpoint:{type:"builtInParams",name:"useGlobalEndpoint"},UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,iGe.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,sGe.getEndpointPlugin)(t,Md.getEndpointParameterInstructions())),this.middlewareStack.use((0,rGe.getThrow200ExceptionsPlugin)(t)),this.middlewareStack.use((0,oGe.getSsecPlugin)(t));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"S3Client",commandName:"CompleteMultipartUploadCommand",inputFilterSensitiveLog:M$.CompleteMultipartUploadRequestFilterSensitiveLog,outputFilterSensitiveLog:M$.CompleteMultipartUploadOutputFilterSensitiveLog},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,O$.serializeAws_restXmlCompleteMultipartUploadCommand)(n,t)}deserialize(n,t){return(0,O$.deserializeAws_restXmlCompleteMultipartUploadCommand)(n,t)}};EE.CompleteMultipartUploadCommand=Md});var yk=u(CE=>{"use strict";Object.defineProperty(CE,"__esModule",{value:!0});CE.CopyObjectCommand=void 0;var cGe=x(),lGe=bo(),dGe=b(),uGe=$n(),mGe=E(),B$=ee(),G$=W(),Od=class extends mGe.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{Bucket:{type:"contextParams",name:"Bucket"},ForcePathStyle:{type:"clientContextParams",name:"forcePathStyle"},UseArnRegion:{type:"clientContextParams",name:"useArnRegion"},DisableMultiRegionAccessPoints:{type:"clientContextParams",name:"disableMultiregionAccessPoints"},Accelerate:{type:"clientContextParams",name:"useAccelerateEndpoint"},UseGlobalEndpoint:{type:"builtInParams",name:"useGlobalEndpoint"},UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,dGe.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,cGe.getEndpointPlugin)(t,Od.getEndpointParameterInstructions())),this.middlewareStack.use((0,lGe.getThrow200ExceptionsPlugin)(t)),this.middlewareStack.use((0,uGe.getSsecPlugin)(t));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"S3Client",commandName:"CopyObjectCommand",inputFilterSensitiveLog:B$.CopyObjectRequestFilterSensitiveLog,outputFilterSensitiveLog:B$.CopyObjectOutputFilterSensitiveLog},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,G$.serializeAws_restXmlCopyObjectCommand)(n,t)}deserialize(n,t){return(0,G$.deserializeAws_restXmlCopyObjectCommand)(n,t)}};CE.CopyObjectCommand=Od});var X$=u(ur=>{"use strict";Object.defineProperty(ur,"__esModule",{value:!0});ur.getLocationConstraintPlugin=ur.locationConstraintMiddlewareOptions=ur.locationConstraintMiddleware=void 0;function U$(e){return n=>async t=>{let{CreateBucketConfiguration:s}=t.input,r=await e.region();return(!s||!s.LocationConstraint)&&(t={...t,input:{...t.input,CreateBucketConfiguration:r==="us-east-1"?void 0:{LocationConstraint:r}}}),n(t)}}ur.locationConstraintMiddleware=U$;ur.locationConstraintMiddlewareOptions={step:"initialize",tags:["LOCATION_CONSTRAINT","CREATE_BUCKET_CONFIGURATION"],name:"locationConstraintMiddleware",override:!0};var pGe=e=>({applyToStack:n=>{n.add(U$(e),ur.locationConstraintMiddlewareOptions)}});ur.getLocationConstraintPlugin=pGe});var _k=u(vE=>{"use strict";Object.defineProperty(vE,"__esModule",{value:!0});vE.CreateBucketCommand=void 0;var gGe=x(),yGe=X$(),_Ge=b(),fGe=E(),$$=ee(),H$=W(),Bd=class extends fGe.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{DisableAccessPoints:{type:"staticContextParams",value:!0},Bucket:{type:"contextParams",name:"Bucket"},ForcePathStyle:{type:"clientContextParams",name:"forcePathStyle"},UseArnRegion:{type:"clientContextParams",name:"useArnRegion"},DisableMultiRegionAccessPoints:{type:"clientContextParams",name:"disableMultiregionAccessPoints"},Accelerate:{type:"clientContextParams",name:"useAccelerateEndpoint"},UseGlobalEndpoint:{type:"builtInParams",name:"useGlobalEndpoint"},UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,_Ge.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,gGe.getEndpointPlugin)(t,Bd.getEndpointParameterInstructions())),this.middlewareStack.use((0,yGe.getLocationConstraintPlugin)(t));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"S3Client",commandName:"CreateBucketCommand",inputFilterSensitiveLog:$$.CreateBucketRequestFilterSensitiveLog,outputFilterSensitiveLog:$$.CreateBucketOutputFilterSensitiveLog},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,H$.serializeAws_restXmlCreateBucketCommand)(n,t)}deserialize(n,t){return(0,H$.deserializeAws_restXmlCreateBucketCommand)(n,t)}};vE.CreateBucketCommand=Bd});var fk=u(PE=>{"use strict";Object.defineProperty(PE,"__esModule",{value:!0});PE.CreateMultipartUploadCommand=void 0;var SGe=x(),hGe=b(),wGe=$n(),EGe=E(),V$=ee(),W$=W(),Gd=class extends EGe.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{Bucket:{type:"contextParams",name:"Bucket"},ForcePathStyle:{type:"clientContextParams",name:"forcePathStyle"},UseArnRegion:{type:"clientContextParams",name:"useArnRegion"},DisableMultiRegionAccessPoints:{type:"clientContextParams",name:"disableMultiregionAccessPoints"},Accelerate:{type:"clientContextParams",name:"useAccelerateEndpoint"},UseGlobalEndpoint:{type:"builtInParams",name:"useGlobalEndpoint"},UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,hGe.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,SGe.getEndpointPlugin)(t,Gd.getEndpointParameterInstructions())),this.middlewareStack.use((0,wGe.getSsecPlugin)(t));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"S3Client",commandName:"CreateMultipartUploadCommand",inputFilterSensitiveLog:V$.CreateMultipartUploadRequestFilterSensitiveLog,outputFilterSensitiveLog:V$.CreateMultipartUploadOutputFilterSensitiveLog},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,W$.serializeAws_restXmlCreateMultipartUploadCommand)(n,t)}deserialize(n,t){return(0,W$.deserializeAws_restXmlCreateMultipartUploadCommand)(n,t)}};PE.CreateMultipartUploadCommand=Gd});var Sk=u(AE=>{"use strict";Object.defineProperty(AE,"__esModule",{value:!0});AE.DeleteBucketAnalyticsConfigurationCommand=void 0;var CGe=x(),vGe=b(),PGe=E(),AGe=ee(),K$=W(),Ud=class extends PGe.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{Bucket:{type:"contextParams",name:"Bucket"},ForcePathStyle:{type:"clientContextParams",name:"forcePathStyle"},UseArnRegion:{type:"clientContextParams",name:"useArnRegion"},DisableMultiRegionAccessPoints:{type:"clientContextParams",name:"disableMultiregionAccessPoints"},Accelerate:{type:"clientContextParams",name:"useAccelerateEndpoint"},UseGlobalEndpoint:{type:"builtInParams",name:"useGlobalEndpoint"},UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,vGe.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,CGe.getEndpointPlugin)(t,Ud.getEndpointParameterInstructions()));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"S3Client",commandName:"DeleteBucketAnalyticsConfigurationCommand",inputFilterSensitiveLog:AGe.DeleteBucketAnalyticsConfigurationRequestFilterSensitiveLog,outputFilterSensitiveLog:d=>d},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,K$.serializeAws_restXmlDeleteBucketAnalyticsConfigurationCommand)(n,t)}deserialize(n,t){return(0,K$.deserializeAws_restXmlDeleteBucketAnalyticsConfigurationCommand)(n,t)}};AE.DeleteBucketAnalyticsConfigurationCommand=Ud});var hk=u(xE=>{"use strict";Object.defineProperty(xE,"__esModule",{value:!0});xE.DeleteBucketCommand=void 0;var xGe=x(),bGe=b(),IGe=E(),kGe=ee(),Q$=W(),Xd=class extends IGe.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{Bucket:{type:"contextParams",name:"Bucket"},ForcePathStyle:{type:"clientContextParams",name:"forcePathStyle"},UseArnRegion:{type:"clientContextParams",name:"useArnRegion"},DisableMultiRegionAccessPoints:{type:"clientContextParams",name:"disableMultiregionAccessPoints"},Accelerate:{type:"clientContextParams",name:"useAccelerateEndpoint"},UseGlobalEndpoint:{type:"builtInParams",name:"useGlobalEndpoint"},UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,bGe.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,xGe.getEndpointPlugin)(t,Xd.getEndpointParameterInstructions()));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"S3Client",commandName:"DeleteBucketCommand",inputFilterSensitiveLog:kGe.DeleteBucketRequestFilterSensitiveLog,outputFilterSensitiveLog:d=>d},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,Q$.serializeAws_restXmlDeleteBucketCommand)(n,t)}deserialize(n,t){return(0,Q$.deserializeAws_restXmlDeleteBucketCommand)(n,t)}};xE.DeleteBucketCommand=Xd});var wk=u(bE=>{"use strict";Object.defineProperty(bE,"__esModule",{value:!0});bE.DeleteBucketCorsCommand=void 0;var RGe=x(),NGe=b(),zGe=E(),qGe=ee(),J$=W(),$d=class extends zGe.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{Bucket:{type:"contextParams",name:"Bucket"},ForcePathStyle:{type:"clientContextParams",name:"forcePathStyle"},UseArnRegion:{type:"clientContextParams",name:"useArnRegion"},DisableMultiRegionAccessPoints:{type:"clientContextParams",name:"disableMultiregionAccessPoints"},Accelerate:{type:"clientContextParams",name:"useAccelerateEndpoint"},UseGlobalEndpoint:{type:"builtInParams",name:"useGlobalEndpoint"},UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,NGe.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,RGe.getEndpointPlugin)(t,$d.getEndpointParameterInstructions()));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"S3Client",commandName:"DeleteBucketCorsCommand",inputFilterSensitiveLog:qGe.DeleteBucketCorsRequestFilterSensitiveLog,outputFilterSensitiveLog:d=>d},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,J$.serializeAws_restXmlDeleteBucketCorsCommand)(n,t)}deserialize(n,t){return(0,J$.deserializeAws_restXmlDeleteBucketCorsCommand)(n,t)}};bE.DeleteBucketCorsCommand=$d});var Ek=u(IE=>{"use strict";Object.defineProperty(IE,"__esModule",{value:!0});IE.DeleteBucketEncryptionCommand=void 0;var LGe=x(),FGe=b(),DGe=E(),TGe=ee(),Y$=W(),Hd=class extends DGe.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{Bucket:{type:"contextParams",name:"Bucket"},ForcePathStyle:{type:"clientContextParams",name:"forcePathStyle"},UseArnRegion:{type:"clientContextParams",name:"useArnRegion"},DisableMultiRegionAccessPoints:{type:"clientContextParams",name:"disableMultiregionAccessPoints"},Accelerate:{type:"clientContextParams",name:"useAccelerateEndpoint"},UseGlobalEndpoint:{type:"builtInParams",name:"useGlobalEndpoint"},UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,FGe.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,LGe.getEndpointPlugin)(t,Hd.getEndpointParameterInstructions()));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"S3Client",commandName:"DeleteBucketEncryptionCommand",inputFilterSensitiveLog:TGe.DeleteBucketEncryptionRequestFilterSensitiveLog,outputFilterSensitiveLog:d=>d},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,Y$.serializeAws_restXmlDeleteBucketEncryptionCommand)(n,t)}deserialize(n,t){return(0,Y$.deserializeAws_restXmlDeleteBucketEncryptionCommand)(n,t)}};IE.DeleteBucketEncryptionCommand=Hd});var Ck=u(kE=>{"use strict";Object.defineProperty(kE,"__esModule",{value:!0});kE.DeleteBucketIntelligentTieringConfigurationCommand=void 0;var jGe=x(),MGe=b(),OGe=E(),BGe=ee(),Z$=W(),Vd=class extends OGe.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{Bucket:{type:"contextParams",name:"Bucket"},ForcePathStyle:{type:"clientContextParams",name:"forcePathStyle"},UseArnRegion:{type:"clientContextParams",name:"useArnRegion"},DisableMultiRegionAccessPoints:{type:"clientContextParams",name:"disableMultiregionAccessPoints"},Accelerate:{type:"clientContextParams",name:"useAccelerateEndpoint"},UseGlobalEndpoint:{type:"builtInParams",name:"useGlobalEndpoint"},UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,MGe.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,jGe.getEndpointPlugin)(t,Vd.getEndpointParameterInstructions()));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"S3Client",commandName:"DeleteBucketIntelligentTieringConfigurationCommand",inputFilterSensitiveLog:BGe.DeleteBucketIntelligentTieringConfigurationRequestFilterSensitiveLog,outputFilterSensitiveLog:d=>d},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,Z$.serializeAws_restXmlDeleteBucketIntelligentTieringConfigurationCommand)(n,t)}deserialize(n,t){return(0,Z$.deserializeAws_restXmlDeleteBucketIntelligentTieringConfigurationCommand)(n,t)}};kE.DeleteBucketIntelligentTieringConfigurationCommand=Vd});var vk=u(RE=>{"use strict";Object.defineProperty(RE,"__esModule",{value:!0});RE.DeleteBucketInventoryConfigurationCommand=void 0;var GGe=x(),UGe=b(),XGe=E(),$Ge=ee(),eH=W(),Wd=class extends XGe.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{Bucket:{type:"contextParams",name:"Bucket"},ForcePathStyle:{type:"clientContextParams",name:"forcePathStyle"},UseArnRegion:{type:"clientContextParams",name:"useArnRegion"},DisableMultiRegionAccessPoints:{type:"clientContextParams",name:"disableMultiregionAccessPoints"},Accelerate:{type:"clientContextParams",name:"useAccelerateEndpoint"},UseGlobalEndpoint:{type:"builtInParams",name:"useGlobalEndpoint"},UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,UGe.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,GGe.getEndpointPlugin)(t,Wd.getEndpointParameterInstructions()));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"S3Client",commandName:"DeleteBucketInventoryConfigurationCommand",inputFilterSensitiveLog:$Ge.DeleteBucketInventoryConfigurationRequestFilterSensitiveLog,outputFilterSensitiveLog:d=>d},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,eH.serializeAws_restXmlDeleteBucketInventoryConfigurationCommand)(n,t)}deserialize(n,t){return(0,eH.deserializeAws_restXmlDeleteBucketInventoryConfigurationCommand)(n,t)}};RE.DeleteBucketInventoryConfigurationCommand=Wd});var Pk=u(NE=>{"use strict";Object.defineProperty(NE,"__esModule",{value:!0});NE.DeleteBucketLifecycleCommand=void 0;var HGe=x(),VGe=b(),WGe=E(),KGe=ee(),tH=W(),Kd=class extends WGe.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{Bucket:{type:"contextParams",name:"Bucket"},ForcePathStyle:{type:"clientContextParams",name:"forcePathStyle"},UseArnRegion:{type:"clientContextParams",name:"useArnRegion"},DisableMultiRegionAccessPoints:{type:"clientContextParams",name:"disableMultiregionAccessPoints"},Accelerate:{type:"clientContextParams",name:"useAccelerateEndpoint"},UseGlobalEndpoint:{type:"builtInParams",name:"useGlobalEndpoint"},UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,VGe.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,HGe.getEndpointPlugin)(t,Kd.getEndpointParameterInstructions()));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"S3Client",commandName:"DeleteBucketLifecycleCommand",inputFilterSensitiveLog:KGe.DeleteBucketLifecycleRequestFilterSensitiveLog,outputFilterSensitiveLog:d=>d},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,tH.serializeAws_restXmlDeleteBucketLifecycleCommand)(n,t)}deserialize(n,t){return(0,tH.deserializeAws_restXmlDeleteBucketLifecycleCommand)(n,t)}};NE.DeleteBucketLifecycleCommand=Kd});var Ak=u(zE=>{"use strict";Object.defineProperty(zE,"__esModule",{value:!0});zE.DeleteBucketMetricsConfigurationCommand=void 0;var QGe=x(),JGe=b(),YGe=E(),ZGe=ee(),nH=W(),Qd=class extends YGe.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{Bucket:{type:"contextParams",name:"Bucket"},ForcePathStyle:{type:"clientContextParams",name:"forcePathStyle"},UseArnRegion:{type:"clientContextParams",name:"useArnRegion"},DisableMultiRegionAccessPoints:{type:"clientContextParams",name:"disableMultiregionAccessPoints"},Accelerate:{type:"clientContextParams",name:"useAccelerateEndpoint"},UseGlobalEndpoint:{type:"builtInParams",name:"useGlobalEndpoint"},UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,JGe.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,QGe.getEndpointPlugin)(t,Qd.getEndpointParameterInstructions()));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"S3Client",commandName:"DeleteBucketMetricsConfigurationCommand",inputFilterSensitiveLog:ZGe.DeleteBucketMetricsConfigurationRequestFilterSensitiveLog,outputFilterSensitiveLog:d=>d},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,nH.serializeAws_restXmlDeleteBucketMetricsConfigurationCommand)(n,t)}deserialize(n,t){return(0,nH.deserializeAws_restXmlDeleteBucketMetricsConfigurationCommand)(n,t)}};zE.DeleteBucketMetricsConfigurationCommand=Qd});var xk=u(qE=>{"use strict";Object.defineProperty(qE,"__esModule",{value:!0});qE.DeleteBucketOwnershipControlsCommand=void 0;var eUe=x(),tUe=b(),nUe=E(),sUe=ee(),sH=W(),Jd=class extends nUe.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{Bucket:{type:"contextParams",name:"Bucket"},ForcePathStyle:{type:"clientContextParams",name:"forcePathStyle"},UseArnRegion:{type:"clientContextParams",name:"useArnRegion"},DisableMultiRegionAccessPoints:{type:"clientContextParams",name:"disableMultiregionAccessPoints"},Accelerate:{type:"clientContextParams",name:"useAccelerateEndpoint"},UseGlobalEndpoint:{type:"builtInParams",name:"useGlobalEndpoint"},UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,tUe.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,eUe.getEndpointPlugin)(t,Jd.getEndpointParameterInstructions()));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"S3Client",commandName:"DeleteBucketOwnershipControlsCommand",inputFilterSensitiveLog:sUe.DeleteBucketOwnershipControlsRequestFilterSensitiveLog,outputFilterSensitiveLog:d=>d},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,sH.serializeAws_restXmlDeleteBucketOwnershipControlsCommand)(n,t)}deserialize(n,t){return(0,sH.deserializeAws_restXmlDeleteBucketOwnershipControlsCommand)(n,t)}};qE.DeleteBucketOwnershipControlsCommand=Jd});var bk=u(LE=>{"use strict";Object.defineProperty(LE,"__esModule",{value:!0});LE.DeleteBucketPolicyCommand=void 0;var rUe=x(),iUe=b(),oUe=E(),aUe=ee(),rH=W(),Yd=class extends oUe.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{Bucket:{type:"contextParams",name:"Bucket"},ForcePathStyle:{type:"clientContextParams",name:"forcePathStyle"},UseArnRegion:{type:"clientContextParams",name:"useArnRegion"},DisableMultiRegionAccessPoints:{type:"clientContextParams",name:"disableMultiregionAccessPoints"},Accelerate:{type:"clientContextParams",name:"useAccelerateEndpoint"},UseGlobalEndpoint:{type:"builtInParams",name:"useGlobalEndpoint"},UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,iUe.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,rUe.getEndpointPlugin)(t,Yd.getEndpointParameterInstructions()));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"S3Client",commandName:"DeleteBucketPolicyCommand",inputFilterSensitiveLog:aUe.DeleteBucketPolicyRequestFilterSensitiveLog,outputFilterSensitiveLog:d=>d},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,rH.serializeAws_restXmlDeleteBucketPolicyCommand)(n,t)}deserialize(n,t){return(0,rH.deserializeAws_restXmlDeleteBucketPolicyCommand)(n,t)}};LE.DeleteBucketPolicyCommand=Yd});var Ik=u(FE=>{"use strict";Object.defineProperty(FE,"__esModule",{value:!0});FE.DeleteBucketReplicationCommand=void 0;var cUe=x(),lUe=b(),dUe=E(),uUe=ee(),iH=W(),Zd=class extends dUe.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{Bucket:{type:"contextParams",name:"Bucket"},ForcePathStyle:{type:"clientContextParams",name:"forcePathStyle"},UseArnRegion:{type:"clientContextParams",name:"useArnRegion"},DisableMultiRegionAccessPoints:{type:"clientContextParams",name:"disableMultiregionAccessPoints"},Accelerate:{type:"clientContextParams",name:"useAccelerateEndpoint"},UseGlobalEndpoint:{type:"builtInParams",name:"useGlobalEndpoint"},UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,lUe.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,cUe.getEndpointPlugin)(t,Zd.getEndpointParameterInstructions()));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"S3Client",commandName:"DeleteBucketReplicationCommand",inputFilterSensitiveLog:uUe.DeleteBucketReplicationRequestFilterSensitiveLog,outputFilterSensitiveLog:d=>d},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,iH.serializeAws_restXmlDeleteBucketReplicationCommand)(n,t)}deserialize(n,t){return(0,iH.deserializeAws_restXmlDeleteBucketReplicationCommand)(n,t)}};FE.DeleteBucketReplicationCommand=Zd});var kk=u(DE=>{"use strict";Object.defineProperty(DE,"__esModule",{value:!0});DE.DeleteBucketTaggingCommand=void 0;var mUe=x(),pUe=b(),gUe=E(),yUe=ee(),oH=W(),eu=class extends gUe.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{Bucket:{type:"contextParams",name:"Bucket"},ForcePathStyle:{type:"clientContextParams",name:"forcePathStyle"},UseArnRegion:{type:"clientContextParams",name:"useArnRegion"},DisableMultiRegionAccessPoints:{type:"clientContextParams",name:"disableMultiregionAccessPoints"},Accelerate:{type:"clientContextParams",name:"useAccelerateEndpoint"},UseGlobalEndpoint:{type:"builtInParams",name:"useGlobalEndpoint"},UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,pUe.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,mUe.getEndpointPlugin)(t,eu.getEndpointParameterInstructions()));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"S3Client",commandName:"DeleteBucketTaggingCommand",inputFilterSensitiveLog:yUe.DeleteBucketTaggingRequestFilterSensitiveLog,outputFilterSensitiveLog:d=>d},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,oH.serializeAws_restXmlDeleteBucketTaggingCommand)(n,t)}deserialize(n,t){return(0,oH.deserializeAws_restXmlDeleteBucketTaggingCommand)(n,t)}};DE.DeleteBucketTaggingCommand=eu});var Rk=u(TE=>{"use strict";Object.defineProperty(TE,"__esModule",{value:!0});TE.DeleteBucketWebsiteCommand=void 0;var _Ue=x(),fUe=b(),SUe=E(),hUe=ee(),aH=W(),tu=class extends SUe.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{Bucket:{type:"contextParams",name:"Bucket"},ForcePathStyle:{type:"clientContextParams",name:"forcePathStyle"},UseArnRegion:{type:"clientContextParams",name:"useArnRegion"},DisableMultiRegionAccessPoints:{type:"clientContextParams",name:"disableMultiregionAccessPoints"},Accelerate:{type:"clientContextParams",name:"useAccelerateEndpoint"},UseGlobalEndpoint:{type:"builtInParams",name:"useGlobalEndpoint"},UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,fUe.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,_Ue.getEndpointPlugin)(t,tu.getEndpointParameterInstructions()));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"S3Client",commandName:"DeleteBucketWebsiteCommand",inputFilterSensitiveLog:hUe.DeleteBucketWebsiteRequestFilterSensitiveLog,outputFilterSensitiveLog:d=>d},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,aH.serializeAws_restXmlDeleteBucketWebsiteCommand)(n,t)}deserialize(n,t){return(0,aH.deserializeAws_restXmlDeleteBucketWebsiteCommand)(n,t)}};TE.DeleteBucketWebsiteCommand=tu});var Nk=u(jE=>{"use strict";Object.defineProperty(jE,"__esModule",{value:!0});jE.DeleteObjectCommand=void 0;var wUe=x(),EUe=b(),CUe=E(),cH=ee(),lH=W(),nu=class extends CUe.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{Bucket:{type:"contextParams",name:"Bucket"},ForcePathStyle:{type:"clientContextParams",name:"forcePathStyle"},UseArnRegion:{type:"clientContextParams",name:"useArnRegion"},DisableMultiRegionAccessPoints:{type:"clientContextParams",name:"disableMultiregionAccessPoints"},Accelerate:{type:"clientContextParams",name:"useAccelerateEndpoint"},UseGlobalEndpoint:{type:"builtInParams",name:"useGlobalEndpoint"},UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,EUe.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,wUe.getEndpointPlugin)(t,nu.getEndpointParameterInstructions()));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"S3Client",commandName:"DeleteObjectCommand",inputFilterSensitiveLog:cH.DeleteObjectRequestFilterSensitiveLog,outputFilterSensitiveLog:cH.DeleteObjectOutputFilterSensitiveLog},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,lH.serializeAws_restXmlDeleteObjectCommand)(n,t)}deserialize(n,t){return(0,lH.deserializeAws_restXmlDeleteObjectCommand)(n,t)}};jE.DeleteObjectCommand=nu});var Io=u(ni=>{"use strict";Object.defineProperty(ni,"__esModule",{value:!0});ni.ChecksumLocation=ni.ChecksumAlgorithm=void 0;var vUe;(function(e){e.MD5="MD5",e.CRC32="CRC32",e.CRC32C="CRC32C",e.SHA1="SHA1",e.SHA256="SHA256"})(vUe=ni.ChecksumAlgorithm||(ni.ChecksumAlgorithm={}));var PUe;(function(e){e.HEADER="header",e.TRAILER="trailer"})(PUe=ni.ChecksumLocation||(ni.ChecksumLocation={}))});var zk=u(ko=>{"use strict";Object.defineProperty(ko,"__esModule",{value:!0});ko.PRIORITY_ORDER_ALGORITHMS=ko.CLIENT_SUPPORTED_ALGORITHMS=void 0;var si=Io();ko.CLIENT_SUPPORTED_ALGORITHMS=[si.ChecksumAlgorithm.CRC32,si.ChecksumAlgorithm.CRC32C,si.ChecksumAlgorithm.SHA1,si.ChecksumAlgorithm.SHA256];ko.PRIORITY_ORDER_ALGORITHMS=[si.ChecksumAlgorithm.CRC32,si.ChecksumAlgorithm.CRC32C,si.ChecksumAlgorithm.SHA1,si.ChecksumAlgorithm.SHA256]});var uH=u(ME=>{"use strict";Object.defineProperty(ME,"__esModule",{value:!0});ME.getChecksumAlgorithmForRequest=void 0;var AUe=Io(),dH=zk(),xUe=(e,{requestChecksumRequired:n,requestAlgorithmMember:t})=>{if(!t||!e[t])return n?AUe.ChecksumAlgorithm.MD5:void 0;let s=e[t];if(!dH.CLIENT_SUPPORTED_ALGORITHMS.includes(s))throw new Error(`The checksum algorithm "${s}" is not supported by the client. Select one of ${dH.CLIENT_SUPPORTED_ALGORITHMS}.`);return s};ME.getChecksumAlgorithmForRequest=xUe});var qk=u(OE=>{"use strict";Object.defineProperty(OE,"__esModule",{value:!0});OE.getChecksumLocationName=void 0;var bUe=Io(),IUe=e=>e===bUe.ChecksumAlgorithm.MD5?"content-md5":`x-amz-checksum-${e.toLowerCase()}`;OE.getChecksumLocationName=IUe});var mH=u(BE=>{"use strict";Object.defineProperty(BE,"__esModule",{value:!0});BE.hasHeader=void 0;var kUe=(e,n)=>{let t=e.toLowerCase();for(let s of Object.keys(n))if(t===s.toLowerCase())return!0;return!1};BE.hasHeader=kUe});var Lk=u(GE=>{"use strict";Object.defineProperty(GE,"__esModule",{value:!0});GE.isStreaming=void 0;var RUe=Ey(),NUe=e=>e!==void 0&&typeof e!="string"&&!ArrayBuffer.isView(e)&&!(0,RUe.isArrayBuffer)(e);GE.isStreaming=NUe});var Dk=u((owt,XE)=>{var pH,gH,yH,_H,fH,SH,hH,wH,EH,UE,Fk,CH,vH,Ro,PH,AH,xH,bH,IH,kH,RH,NH,zH;(function(e){var n=typeof global=="object"?global:typeof self=="object"?self:typeof this=="object"?this:{};typeof define=="function"&&define.amd?define("tslib",["exports"],function(s){e(t(n,t(s)))}):typeof XE=="object"&&typeof XE.exports=="object"?e(t(n,t(XE.exports))):e(t(n));function t(s,r){return s!==n&&(typeof Object.create=="function"?Object.defineProperty(s,"__esModule",{value:!0}):s.__esModule=!0),function(i,a){return s[i]=r?r(i,a):a}}})(function(e){var n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,s){t.__proto__=s}||function(t,s){for(var r in s)s.hasOwnProperty(r)&&(t[r]=s[r])};pH=function(t,s){n(t,s);function r(){this.constructor=t}t.prototype=s===null?Object.create(s):(r.prototype=s.prototype,new r)},gH=Object.assign||function(t){for(var s,r=1,i=arguments.length;r=0;l--)(c=t[l])&&(o=(a<3?c(o):a>3?c(s,r,o):c(s,r))||o);return a>3&&o&&Object.defineProperty(s,r,o),o},fH=function(t,s){return function(r,i){s(r,i,t)}},SH=function(t,s){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(t,s)},hH=function(t,s,r,i){function a(o){return o instanceof r?o:new r(function(c){c(o)})}return new(r||(r=Promise))(function(o,c){function l(v){try{h(i.next(v))}catch(z){c(z)}}function d(v){try{h(i.throw(v))}catch(z){c(z)}}function h(v){v.done?o(v.value):a(v.value).then(l,d)}h((i=i.apply(t,s||[])).next())})},wH=function(t,s){var r={label:0,sent:function(){if(o[0]&1)throw o[1];return o[1]},trys:[],ops:[]},i,a,o,c;return c={next:l(0),throw:l(1),return:l(2)},typeof Symbol=="function"&&(c[Symbol.iterator]=function(){return this}),c;function l(h){return function(v){return d([h,v])}}function d(h){if(i)throw new TypeError("Generator is already executing.");for(;r;)try{if(i=1,a&&(o=h[0]&2?a.return:h[0]?a.throw||((o=a.return)&&o.call(a),0):a.next)&&!(o=o.call(a,h[1])).done)return o;switch(a=0,o&&(h=[h[0]&2,o.value]),h[0]){case 0:case 1:o=h;break;case 4:return r.label++,{value:h[1],done:!1};case 5:r.label++,a=h[1],h=[0];continue;case 7:h=r.ops.pop(),r.trys.pop();continue;default:if(o=r.trys,!(o=o.length>0&&o[o.length-1])&&(h[0]===6||h[0]===2)){r=0;continue}if(h[0]===3&&(!o||h[1]>o[0]&&h[1]=t.length&&(t=void 0),{value:t&&t[i++],done:!t}}};throw new TypeError(s?"Object is not iterable.":"Symbol.iterator is not defined.")},Fk=function(t,s){var r=typeof Symbol=="function"&&t[Symbol.iterator];if(!r)return t;var i=r.call(t),a,o=[],c;try{for(;(s===void 0||s-- >0)&&!(a=i.next()).done;)o.push(a.value)}catch(l){c={error:l}}finally{try{a&&!a.done&&(r=i.return)&&r.call(i)}finally{if(c)throw c.error}}return o},CH=function(){for(var t=[],s=0;s1||l(q,T)})})}function l(q,T){try{d(i[q](T))}catch(U){z(o[0][3],U)}}function d(q){q.value instanceof Ro?Promise.resolve(q.value.v).then(h,v):z(o[0][2],q)}function h(q){l("next",q)}function v(q){l("throw",q)}function z(q,T){q(T),o.shift(),o.length&&l(o[0][0],o[0][1])}},AH=function(t){var s,r;return s={},i("next"),i("throw",function(a){throw a}),i("return"),s[Symbol.iterator]=function(){return this},s;function i(a,o){s[a]=t[a]?function(c){return(r=!r)?{value:Ro(t[a](c)),done:a==="return"}:o?o(c):c}:o}},xH=function(t){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var s=t[Symbol.asyncIterator],r;return s?s.call(t):(t=typeof UE=="function"?UE(t):t[Symbol.iterator](),r={},i("next"),i("throw"),i("return"),r[Symbol.asyncIterator]=function(){return this},r);function i(o){r[o]=t[o]&&function(c){return new Promise(function(l,d){c=t[o](c),a(l,d,c.done,c.value)})}}function a(o,c,l,d){Promise.resolve(d).then(function(h){o({value:h,done:l})},c)}},bH=function(t,s){return Object.defineProperty?Object.defineProperty(t,"raw",{value:s}):t.raw=s,t},IH=function(t){if(t&&t.__esModule)return t;var s={};if(t!=null)for(var r in t)Object.hasOwnProperty.call(t,r)&&(s[r]=t[r]);return s.default=t,s},kH=function(t){return t&&t.__esModule?t:{default:t}},RH=function(t,s){if(!s.has(t))throw new TypeError("attempted to get private field on non-instance");return s.get(t)},NH=function(t,s,r){if(!s.has(t))throw new TypeError("attempted to set private field on non-instance");return s.set(t,r),r},e("__extends",pH),e("__assign",gH),e("__rest",yH),e("__decorate",_H),e("__param",fH),e("__metadata",SH),e("__awaiter",hH),e("__generator",wH),e("__exportStar",EH),e("__createBinding",zH),e("__values",UE),e("__read",Fk),e("__spread",CH),e("__spreadArrays",vH),e("__await",Ro),e("__asyncGenerator",PH),e("__asyncDelegator",AH),e("__asyncValues",xH),e("__makeTemplateObject",bH),e("__importStar",IH),e("__importDefault",kH),e("__classPrivateFieldGet",RH),e("__classPrivateFieldSet",NH)})});var qH=u(No=>{"use strict";Object.defineProperty(No,"__esModule",{value:!0});No.toUtf8=No.fromUtf8=void 0;var zUe=e=>{let n=[];for(let t=0,s=e.length;t>6|192,r&63|128);else if(t+1>18|240,i>>12&63|128,i>>6&63|128,i&63|128)}else n.push(r>>12|224,r>>6&63|128,r&63|128)}return Uint8Array.from(n)};No.fromUtf8=zUe;var qUe=e=>{let n="";for(let t=0,s=e.length;to.toString(16)).join("%");n+=decodeURIComponent(a)}else n+=String.fromCharCode((r&15)<<12|(e[++t]&63)<<6|e[++t]&63)}return n};No.toUtf8=qUe});var LH=u(zo=>{"use strict";Object.defineProperty(zo,"__esModule",{value:!0});zo.toUtf8=zo.fromUtf8=void 0;function LUe(e){return new TextEncoder().encode(e)}zo.fromUtf8=LUe;function FUe(e){return new TextDecoder("utf-8").decode(e)}zo.toUtf8=FUe});var TH=u(qo=>{"use strict";Object.defineProperty(qo,"__esModule",{value:!0});qo.toUtf8=qo.fromUtf8=void 0;var FH=qH(),DH=LH(),DUe=e=>typeof TextEncoder=="function"?(0,DH.fromUtf8)(e):(0,FH.fromUtf8)(e);qo.fromUtf8=DUe;var TUe=e=>typeof TextDecoder=="function"?(0,DH.toUtf8)(e):(0,FH.toUtf8)(e);qo.toUtf8=TUe});var jH=u($E=>{"use strict";Object.defineProperty($E,"__esModule",{value:!0});$E.convertToBuffer=void 0;var jUe=TH(),MUe=typeof Buffer<"u"&&Buffer.from?function(e){return Buffer.from(e,"utf8")}:jUe.fromUtf8;function OUe(e){return e instanceof Uint8Array?e:typeof e=="string"?MUe(e):ArrayBuffer.isView(e)?new Uint8Array(e.buffer,e.byteOffset,e.byteLength/Uint8Array.BYTES_PER_ELEMENT):new Uint8Array(e)}$E.convertToBuffer=OUe});var MH=u(HE=>{"use strict";Object.defineProperty(HE,"__esModule",{value:!0});HE.isEmptyData=void 0;function BUe(e){return typeof e=="string"?e.length===0:e.byteLength===0}HE.isEmptyData=BUe});var OH=u(VE=>{"use strict";Object.defineProperty(VE,"__esModule",{value:!0});VE.numToUint8=void 0;function GUe(e){return new Uint8Array([(e&4278190080)>>24,(e&16711680)>>16,(e&65280)>>8,e&255])}VE.numToUint8=GUe});var BH=u(WE=>{"use strict";Object.defineProperty(WE,"__esModule",{value:!0});WE.uint32ArrayFrom=void 0;function UUe(e){if(!Uint32Array.from){for(var n=new Uint32Array(e.length),t=0;t{"use strict";Object.defineProperty(zs,"__esModule",{value:!0});zs.uint32ArrayFrom=zs.numToUint8=zs.isEmptyData=zs.convertToBuffer=void 0;var XUe=jH();Object.defineProperty(zs,"convertToBuffer",{enumerable:!0,get:function(){return XUe.convertToBuffer}});var $Ue=MH();Object.defineProperty(zs,"isEmptyData",{enumerable:!0,get:function(){return $Ue.isEmptyData}});var HUe=OH();Object.defineProperty(zs,"numToUint8",{enumerable:!0,get:function(){return HUe.numToUint8}});var VUe=BH();Object.defineProperty(zs,"uint32ArrayFrom",{enumerable:!0,get:function(){return VUe.uint32ArrayFrom}})});var XH=u(KE=>{"use strict";Object.defineProperty(KE,"__esModule",{value:!0});KE.AwsCrc32=void 0;var GH=Dk(),Tk=su(),UH=ru(),WUe=function(){function e(){this.crc32=new UH.Crc32}return e.prototype.update=function(n){(0,Tk.isEmptyData)(n)||this.crc32.update((0,Tk.convertToBuffer)(n))},e.prototype.digest=function(){return GH.__awaiter(this,void 0,void 0,function(){return GH.__generator(this,function(n){return[2,(0,Tk.numToUint8)(this.crc32.digest())]})})},e.prototype.reset=function(){this.crc32=new UH.Crc32},e}();KE.AwsCrc32=WUe});var ru=u(ri=>{"use strict";Object.defineProperty(ri,"__esModule",{value:!0});ri.AwsCrc32=ri.Crc32=ri.crc32=void 0;var KUe=Dk(),QUe=su();function JUe(e){return new $H().update(e).digest()}ri.crc32=JUe;var $H=function(){function e(){this.checksum=4294967295}return e.prototype.update=function(n){var t,s;try{for(var r=KUe.__values(n),i=r.next();!i.done;i=r.next()){var a=i.value;this.checksum=this.checksum>>>8^ZUe[(this.checksum^a)&255]}}catch(o){t={error:o}}finally{try{i&&!i.done&&(s=r.return)&&s.call(r)}finally{if(t)throw t.error}}return this},e.prototype.digest=function(){return(this.checksum^4294967295)>>>0},e}();ri.Crc32=$H;var YUe=[0,1996959894,3993919788,2567524794,124634137,1886057615,3915621685,2657392035,249268274,2044508324,3772115230,2547177864,162941995,2125561021,3887607047,2428444049,498536548,1789927666,4089016648,2227061214,450548861,1843258603,4107580753,2211677639,325883990,1684777152,4251122042,2321926636,335633487,1661365465,4195302755,2366115317,997073096,1281953886,3579855332,2724688242,1006888145,1258607687,3524101629,2768942443,901097722,1119000684,3686517206,2898065728,853044451,1172266101,3705015759,2882616665,651767980,1373503546,3369554304,3218104598,565507253,1454621731,3485111705,3099436303,671266974,1594198024,3322730930,2970347812,795835527,1483230225,3244367275,3060149565,1994146192,31158534,2563907772,4023717930,1907459465,112637215,2680153253,3904427059,2013776290,251722036,2517215374,3775830040,2137656763,141376813,2439277719,3865271297,1802195444,476864866,2238001368,4066508878,1812370925,453092731,2181625025,4111451223,1706088902,314042704,2344532202,4240017532,1658658271,366619977,2362670323,4224994405,1303535960,984961486,2747007092,3569037538,1256170817,1037604311,2765210733,3554079995,1131014506,879679996,2909243462,3663771856,1141124467,855842277,2852801631,3708648649,1342533948,654459306,3188396048,3373015174,1466479909,544179635,3110523913,3462522015,1591671054,702138776,2966460450,3352799412,1504918807,783551873,3082640443,3233442989,3988292384,2596254646,62317068,1957810842,3939845945,2647816111,81470997,1943803523,3814918930,2489596804,225274430,2053790376,3826175755,2466906013,167816743,2097651377,4027552580,2265490386,503444072,1762050814,4150417245,2154129355,426522225,1852507879,4275313526,2312317920,282753626,1742555852,4189708143,2394877945,397917763,1622183637,3604390888,2714866558,953729732,1340076626,3518719985,2797360999,1068828381,1219638859,3624741850,2936675148,906185462,1090812512,3747672003,2825379669,829329135,1181335161,3412177804,3160834842,628085408,1382605366,3423369109,3138078467,570562233,1426400815,3317316542,2998733608,733239954,1555261956,3268935591,3050360625,752459403,1541320221,2607071920,3965973030,1969922972,40735498,2617837225,3943577151,1913087877,83908371,2512341634,3803740692,2075208622,213261112,2463272603,3855990285,2094854071,198958881,2262029012,4057260610,1759359992,534414190,2176718541,4139329115,1873836001,414664567,2282248934,4279200368,1711684554,285281116,2405801727,4167216745,1634467795,376229701,2685067896,3608007406,1308918612,956543938,2808555105,3495958263,1231636301,1047427035,2932959818,3654703836,1088359270,936918e3,2847714899,3736837829,1202900863,817233897,3183342108,3401237130,1404277552,615818150,3134207493,3453421203,1423857449,601450431,3009837614,3294710456,1567103746,711928724,3020668471,3272380065,1510334235,755167117],ZUe=(0,QUe.uint32ArrayFrom)(YUe),e3e=XH();Object.defineProperty(ri,"AwsCrc32",{enumerable:!0,get:function(){return e3e.AwsCrc32}})});var Mk=u((fwt,JE)=>{var HH,VH,WH,KH,QH,JH,YH,ZH,eV,QE,jk,tV,nV,Lo,sV,rV,iV,oV,aV,cV,lV,dV,uV;(function(e){var n=typeof global=="object"?global:typeof self=="object"?self:typeof this=="object"?this:{};typeof define=="function"&&define.amd?define("tslib",["exports"],function(s){e(t(n,t(s)))}):typeof JE=="object"&&typeof JE.exports=="object"?e(t(n,t(JE.exports))):e(t(n));function t(s,r){return s!==n&&(typeof Object.create=="function"?Object.defineProperty(s,"__esModule",{value:!0}):s.__esModule=!0),function(i,a){return s[i]=r?r(i,a):a}}})(function(e){var n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,s){t.__proto__=s}||function(t,s){for(var r in s)s.hasOwnProperty(r)&&(t[r]=s[r])};HH=function(t,s){n(t,s);function r(){this.constructor=t}t.prototype=s===null?Object.create(s):(r.prototype=s.prototype,new r)},VH=Object.assign||function(t){for(var s,r=1,i=arguments.length;r=0;l--)(c=t[l])&&(o=(a<3?c(o):a>3?c(s,r,o):c(s,r))||o);return a>3&&o&&Object.defineProperty(s,r,o),o},QH=function(t,s){return function(r,i){s(r,i,t)}},JH=function(t,s){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(t,s)},YH=function(t,s,r,i){function a(o){return o instanceof r?o:new r(function(c){c(o)})}return new(r||(r=Promise))(function(o,c){function l(v){try{h(i.next(v))}catch(z){c(z)}}function d(v){try{h(i.throw(v))}catch(z){c(z)}}function h(v){v.done?o(v.value):a(v.value).then(l,d)}h((i=i.apply(t,s||[])).next())})},ZH=function(t,s){var r={label:0,sent:function(){if(o[0]&1)throw o[1];return o[1]},trys:[],ops:[]},i,a,o,c;return c={next:l(0),throw:l(1),return:l(2)},typeof Symbol=="function"&&(c[Symbol.iterator]=function(){return this}),c;function l(h){return function(v){return d([h,v])}}function d(h){if(i)throw new TypeError("Generator is already executing.");for(;r;)try{if(i=1,a&&(o=h[0]&2?a.return:h[0]?a.throw||((o=a.return)&&o.call(a),0):a.next)&&!(o=o.call(a,h[1])).done)return o;switch(a=0,o&&(h=[h[0]&2,o.value]),h[0]){case 0:case 1:o=h;break;case 4:return r.label++,{value:h[1],done:!1};case 5:r.label++,a=h[1],h=[0];continue;case 7:h=r.ops.pop(),r.trys.pop();continue;default:if(o=r.trys,!(o=o.length>0&&o[o.length-1])&&(h[0]===6||h[0]===2)){r=0;continue}if(h[0]===3&&(!o||h[1]>o[0]&&h[1]=t.length&&(t=void 0),{value:t&&t[i++],done:!t}}};throw new TypeError(s?"Object is not iterable.":"Symbol.iterator is not defined.")},jk=function(t,s){var r=typeof Symbol=="function"&&t[Symbol.iterator];if(!r)return t;var i=r.call(t),a,o=[],c;try{for(;(s===void 0||s-- >0)&&!(a=i.next()).done;)o.push(a.value)}catch(l){c={error:l}}finally{try{a&&!a.done&&(r=i.return)&&r.call(i)}finally{if(c)throw c.error}}return o},tV=function(){for(var t=[],s=0;s1||l(q,T)})})}function l(q,T){try{d(i[q](T))}catch(U){z(o[0][3],U)}}function d(q){q.value instanceof Lo?Promise.resolve(q.value.v).then(h,v):z(o[0][2],q)}function h(q){l("next",q)}function v(q){l("throw",q)}function z(q,T){q(T),o.shift(),o.length&&l(o[0][0],o[0][1])}},rV=function(t){var s,r;return s={},i("next"),i("throw",function(a){throw a}),i("return"),s[Symbol.iterator]=function(){return this},s;function i(a,o){s[a]=t[a]?function(c){return(r=!r)?{value:Lo(t[a](c)),done:a==="return"}:o?o(c):c}:o}},iV=function(t){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var s=t[Symbol.asyncIterator],r;return s?s.call(t):(t=typeof QE=="function"?QE(t):t[Symbol.iterator](),r={},i("next"),i("throw"),i("return"),r[Symbol.asyncIterator]=function(){return this},r);function i(o){r[o]=t[o]&&function(c){return new Promise(function(l,d){c=t[o](c),a(l,d,c.done,c.value)})}}function a(o,c,l,d){Promise.resolve(d).then(function(h){o({value:h,done:l})},c)}},oV=function(t,s){return Object.defineProperty?Object.defineProperty(t,"raw",{value:s}):t.raw=s,t},aV=function(t){if(t&&t.__esModule)return t;var s={};if(t!=null)for(var r in t)Object.hasOwnProperty.call(t,r)&&(s[r]=t[r]);return s.default=t,s},cV=function(t){return t&&t.__esModule?t:{default:t}},lV=function(t,s){if(!s.has(t))throw new TypeError("attempted to get private field on non-instance");return s.get(t)},dV=function(t,s,r){if(!s.has(t))throw new TypeError("attempted to set private field on non-instance");return s.set(t,r),r},e("__extends",HH),e("__assign",VH),e("__rest",WH),e("__decorate",KH),e("__param",QH),e("__metadata",JH),e("__awaiter",YH),e("__generator",ZH),e("__exportStar",eV),e("__createBinding",uV),e("__values",QE),e("__read",jk),e("__spread",tV),e("__spreadArrays",nV),e("__await",Lo),e("__asyncGenerator",sV),e("__asyncDelegator",rV),e("__asyncValues",iV),e("__makeTemplateObject",oV),e("__importStar",aV),e("__importDefault",cV),e("__classPrivateFieldGet",lV),e("__classPrivateFieldSet",dV)})});var gV=u(YE=>{"use strict";Object.defineProperty(YE,"__esModule",{value:!0});YE.AwsCrc32c=void 0;var mV=Mk(),Ok=su(),pV=Bk(),t3e=function(){function e(){this.crc32c=new pV.Crc32c}return e.prototype.update=function(n){(0,Ok.isEmptyData)(n)||this.crc32c.update((0,Ok.convertToBuffer)(n))},e.prototype.digest=function(){return mV.__awaiter(this,void 0,void 0,function(){return mV.__generator(this,function(n){return[2,(0,Ok.numToUint8)(this.crc32c.digest())]})})},e.prototype.reset=function(){this.crc32c=new pV.Crc32c},e}();YE.AwsCrc32c=t3e});var Bk=u(ii=>{"use strict";Object.defineProperty(ii,"__esModule",{value:!0});ii.AwsCrc32c=ii.Crc32c=ii.crc32c=void 0;var n3e=Mk(),s3e=su();function r3e(e){return new yV().update(e).digest()}ii.crc32c=r3e;var yV=function(){function e(){this.checksum=4294967295}return e.prototype.update=function(n){var t,s;try{for(var r=n3e.__values(n),i=r.next();!i.done;i=r.next()){var a=i.value;this.checksum=this.checksum>>>8^o3e[(this.checksum^a)&255]}}catch(o){t={error:o}}finally{try{i&&!i.done&&(s=r.return)&&s.call(r)}finally{if(t)throw t.error}}return this},e.prototype.digest=function(){return(this.checksum^4294967295)>>>0},e}();ii.Crc32c=yV;var i3e=[0,4067132163,3778769143,324072436,3348797215,904991772,648144872,3570033899,2329499855,2024987596,1809983544,2575936315,1296289744,3207089363,2893594407,1578318884,274646895,3795141740,4049975192,51262619,3619967088,632279923,922689671,3298075524,2592579488,1760304291,2075979607,2312596564,1562183871,2943781820,3156637768,1313733451,549293790,3537243613,3246849577,871202090,3878099393,357341890,102525238,4101499445,2858735121,1477399826,1264559846,3107202533,1845379342,2677391885,2361733625,2125378298,820201905,3263744690,3520608582,598981189,4151959214,85089709,373468761,3827903834,3124367742,1213305469,1526817161,2842354314,2107672161,2412447074,2627466902,1861252501,1098587580,3004210879,2688576843,1378610760,2262928035,1955203488,1742404180,2511436119,3416409459,969524848,714683780,3639785095,205050476,4266873199,3976438427,526918040,1361435347,2739821008,2954799652,1114974503,2529119692,1691668175,2005155131,2247081528,3690758684,697762079,986182379,3366744552,476452099,3993867776,4250756596,255256311,1640403810,2477592673,2164122517,1922457750,2791048317,1412925310,1197962378,3037525897,3944729517,427051182,170179418,4165941337,746937522,3740196785,3451792453,1070968646,1905808397,2213795598,2426610938,1657317369,3053634322,1147748369,1463399397,2773627110,4215344322,153784257,444234805,3893493558,1021025245,3467647198,3722505002,797665321,2197175160,1889384571,1674398607,2443626636,1164749927,3070701412,2757221520,1446797203,137323447,4198817972,3910406976,461344835,3484808360,1037989803,781091935,3705997148,2460548119,1623424788,1939049696,2180517859,1429367560,2807687179,3020495871,1180866812,410100952,3927582683,4182430767,186734380,3756733383,763408580,1053836080,3434856499,2722870694,1344288421,1131464017,2971354706,1708204729,2545590714,2229949006,1988219213,680717673,3673779818,3383336350,1002577565,4010310262,493091189,238226049,4233660802,2987750089,1082061258,1395524158,2705686845,1972364758,2279892693,2494862625,1725896226,952904198,3399985413,3656866545,731699698,4283874585,222117402,510512622,3959836397,3280807620,837199303,582374963,3504198960,68661723,4135334616,3844915500,390545967,1230274059,3141532936,2825850620,1510247935,2395924756,2091215383,1878366691,2644384480,3553878443,565732008,854102364,3229815391,340358836,3861050807,4117890627,119113024,1493875044,2875275879,3090270611,1247431312,2660249211,1828433272,2141937292,2378227087,3811616794,291187481,34330861,4032846830,615137029,3603020806,3314634738,939183345,1776939221,2609017814,2295496738,2058945313,2926798794,1545135305,1330124605,3173225534,4084100981,17165430,307568514,3762199681,888469610,3332340585,3587147933,665062302,2042050490,2346497209,2559330125,1793573966,3190661285,1279665062,1595330642,2910671697],o3e=(0,s3e.uint32ArrayFrom)(i3e),a3e=gV();Object.defineProperty(ii,"AwsCrc32c",{enumerable:!0,get:function(){return a3e.AwsCrc32c}})});var Gk=u(ZE=>{"use strict";Object.defineProperty(ZE,"__esModule",{value:!0});ZE.selectChecksumAlgorithmFunction=void 0;var c3e=ru(),l3e=Bk(),iu=Io(),d3e=(e,n)=>({[iu.ChecksumAlgorithm.MD5]:n.md5,[iu.ChecksumAlgorithm.CRC32]:c3e.AwsCrc32,[iu.ChecksumAlgorithm.CRC32C]:l3e.AwsCrc32c,[iu.ChecksumAlgorithm.SHA1]:n.sha1,[iu.ChecksumAlgorithm.SHA256]:n.sha256})[e];ZE.selectChecksumAlgorithmFunction=d3e});var Uk=u(eC=>{"use strict";Object.defineProperty(eC,"__esModule",{value:!0});eC.stringHasher=void 0;var u3e=Sn(),m3e=(e,n)=>{let t=new e;return t.update((0,u3e.toUint8Array)(n||"")),t.digest()};eC.stringHasher=m3e});var _V=u(tC=>{"use strict";Object.defineProperty(tC,"__esModule",{value:!0});tC.getChecksum=void 0;var p3e=Lk(),g3e=Uk(),y3e=async(e,{streamHasher:n,checksumAlgorithmFn:t,base64Encoder:s})=>{let r=(0,p3e.isStreaming)(e)?n(t,e):(0,g3e.stringHasher)(t,e);return s(await r)};tC.getChecksum=y3e});var SV=u(nC=>{"use strict";Object.defineProperty(nC,"__esModule",{value:!0});nC.getChecksumAlgorithmListForResponse=void 0;var fV=zk(),_3e=(e=[])=>{let n=[];for(let t of fV.PRIORITY_ORDER_ALGORITHMS)!e.includes(t)||!fV.CLIENT_SUPPORTED_ALGORITHMS.includes(t)||n.push(t);return n};nC.getChecksumAlgorithmListForResponse=_3e});var hV=u(sC=>{"use strict";Object.defineProperty(sC,"__esModule",{value:!0});sC.validateChecksumFromResponse=void 0;var f3e=_V(),S3e=SV(),h3e=qk(),w3e=Gk(),E3e=async(e,{config:n,responseAlgorithms:t})=>{let s=(0,S3e.getChecksumAlgorithmListForResponse)(t),{body:r,headers:i}=e;for(let a of s){let o=(0,h3e.getChecksumLocationName)(a),c=i[o];if(c){let l=(0,w3e.selectChecksumAlgorithmFunction)(a,n),{streamHasher:d,base64Encoder:h}=n,v=await(0,f3e.getChecksum)(r,{streamHasher:d,checksumAlgorithmFn:l,base64Encoder:h});if(v===c)break;throw new Error(`Checksum mismatch: expected "${v}" but received "${c}" in response header "${o}".`)}}};sC.validateChecksumFromResponse=E3e});var Xk=u(rC=>{"use strict";Object.defineProperty(rC,"__esModule",{value:!0});rC.flexibleChecksumsMiddleware=void 0;var C3e=gt(),v3e=uH(),P3e=qk(),A3e=mH(),x3e=Lk(),b3e=Gk(),I3e=Uk(),k3e=hV(),R3e=(e,n)=>t=>async s=>{if(!C3e.HttpRequest.isInstance(s.request))return t(s);let{request:r}=s,{body:i,headers:a}=r,{base64Encoder:o,streamHasher:c}=e,{input:l,requestChecksumRequired:d,requestAlgorithmMember:h}=n,v=(0,v3e.getChecksumAlgorithmForRequest)(l,{requestChecksumRequired:d,requestAlgorithmMember:h}),z=i,q=a;if(v){let Ue=(0,P3e.getChecksumLocationName)(v),$e=(0,b3e.selectChecksumAlgorithmFunction)(v,e);if((0,x3e.isStreaming)(i)){let{getAwsChunkedEncodingStream:_n,bodyLengthChecker:ag}=e;z=_n(i,{base64Encoder:o,bodyLengthChecker:ag,checksumLocationName:Ue,checksumAlgorithmFn:$e,streamHasher:c}),q={...a,"content-encoding":a["content-encoding"]?`${a["content-encoding"]},aws-chunked`:"aws-chunked","transfer-encoding":"chunked","x-amz-decoded-content-length":a["content-length"],"x-amz-content-sha256":"STREAMING-UNSIGNED-PAYLOAD-TRAILER","x-amz-trailer":Ue},delete q["content-length"]}else if(!(0,A3e.hasHeader)(Ue,a)){let _n=await(0,I3e.stringHasher)($e,i);q={...a,[Ue]:o(_n)}}}let T=await t({...s,request:{...r,headers:q,body:z}}),{requestValidationModeMember:U,responseAlgorithms:Le}=n;return U&&l[U]==="ENABLED"&&(0,k3e.validateChecksumFromResponse)(T.response,{config:e,responseAlgorithms:Le}),T};rC.flexibleChecksumsMiddleware=R3e});var wV=u(Fi=>{"use strict";Object.defineProperty(Fi,"__esModule",{value:!0});Fi.getFlexibleChecksumsPlugin=Fi.flexibleChecksumsMiddlewareOptions=void 0;var N3e=Xk();Fi.flexibleChecksumsMiddlewareOptions={name:"flexibleChecksumsMiddleware",step:"build",tags:["BODY_CHECKSUM"],override:!0};var z3e=(e,n)=>({applyToStack:t=>{t.add((0,N3e.flexibleChecksumsMiddleware)(e,n),Fi.flexibleChecksumsMiddlewareOptions)}});Fi.getFlexibleChecksumsPlugin=z3e});var at=u(ou=>{"use strict";Object.defineProperty(ou,"__esModule",{value:!0});var $k=X();$k.__exportStar(Io(),ou);$k.__exportStar(Xk(),ou);$k.__exportStar(wV(),ou)});var Hk=u(iC=>{"use strict";Object.defineProperty(iC,"__esModule",{value:!0});iC.DeleteObjectsCommand=void 0;var q3e=x(),L3e=at(),F3e=b(),D3e=E(),EV=ee(),CV=W(),au=class extends D3e.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{Bucket:{type:"contextParams",name:"Bucket"},ForcePathStyle:{type:"clientContextParams",name:"forcePathStyle"},UseArnRegion:{type:"clientContextParams",name:"useArnRegion"},DisableMultiRegionAccessPoints:{type:"clientContextParams",name:"disableMultiregionAccessPoints"},Accelerate:{type:"clientContextParams",name:"useAccelerateEndpoint"},UseGlobalEndpoint:{type:"builtInParams",name:"useGlobalEndpoint"},UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,F3e.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,q3e.getEndpointPlugin)(t,au.getEndpointParameterInstructions())),this.middlewareStack.use((0,L3e.getFlexibleChecksumsPlugin)(t,{input:this.input,requestAlgorithmMember:"ChecksumAlgorithm",requestChecksumRequired:!0}));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"S3Client",commandName:"DeleteObjectsCommand",inputFilterSensitiveLog:EV.DeleteObjectsRequestFilterSensitiveLog,outputFilterSensitiveLog:EV.DeleteObjectsOutputFilterSensitiveLog},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,CV.serializeAws_restXmlDeleteObjectsCommand)(n,t)}deserialize(n,t){return(0,CV.deserializeAws_restXmlDeleteObjectsCommand)(n,t)}};iC.DeleteObjectsCommand=au});var Vk=u(oC=>{"use strict";Object.defineProperty(oC,"__esModule",{value:!0});oC.DeleteObjectTaggingCommand=void 0;var T3e=x(),j3e=b(),M3e=E(),vV=ee(),PV=W(),cu=class extends M3e.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{Bucket:{type:"contextParams",name:"Bucket"},ForcePathStyle:{type:"clientContextParams",name:"forcePathStyle"},UseArnRegion:{type:"clientContextParams",name:"useArnRegion"},DisableMultiRegionAccessPoints:{type:"clientContextParams",name:"disableMultiregionAccessPoints"},Accelerate:{type:"clientContextParams",name:"useAccelerateEndpoint"},UseGlobalEndpoint:{type:"builtInParams",name:"useGlobalEndpoint"},UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,j3e.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,T3e.getEndpointPlugin)(t,cu.getEndpointParameterInstructions()));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"S3Client",commandName:"DeleteObjectTaggingCommand",inputFilterSensitiveLog:vV.DeleteObjectTaggingRequestFilterSensitiveLog,outputFilterSensitiveLog:vV.DeleteObjectTaggingOutputFilterSensitiveLog},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,PV.serializeAws_restXmlDeleteObjectTaggingCommand)(n,t)}deserialize(n,t){return(0,PV.deserializeAws_restXmlDeleteObjectTaggingCommand)(n,t)}};oC.DeleteObjectTaggingCommand=cu});var Wk=u(aC=>{"use strict";Object.defineProperty(aC,"__esModule",{value:!0});aC.DeletePublicAccessBlockCommand=void 0;var O3e=x(),B3e=b(),G3e=E(),U3e=ee(),AV=W(),lu=class extends G3e.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{Bucket:{type:"contextParams",name:"Bucket"},ForcePathStyle:{type:"clientContextParams",name:"forcePathStyle"},UseArnRegion:{type:"clientContextParams",name:"useArnRegion"},DisableMultiRegionAccessPoints:{type:"clientContextParams",name:"disableMultiregionAccessPoints"},Accelerate:{type:"clientContextParams",name:"useAccelerateEndpoint"},UseGlobalEndpoint:{type:"builtInParams",name:"useGlobalEndpoint"},UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,B3e.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,O3e.getEndpointPlugin)(t,lu.getEndpointParameterInstructions()));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"S3Client",commandName:"DeletePublicAccessBlockCommand",inputFilterSensitiveLog:U3e.DeletePublicAccessBlockRequestFilterSensitiveLog,outputFilterSensitiveLog:d=>d},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,AV.serializeAws_restXmlDeletePublicAccessBlockCommand)(n,t)}deserialize(n,t){return(0,AV.deserializeAws_restXmlDeletePublicAccessBlockCommand)(n,t)}};aC.DeletePublicAccessBlockCommand=lu});var Kk=u(cC=>{"use strict";Object.defineProperty(cC,"__esModule",{value:!0});cC.GetBucketAccelerateConfigurationCommand=void 0;var X3e=x(),$3e=b(),H3e=E(),xV=ee(),bV=W(),du=class extends H3e.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{Bucket:{type:"contextParams",name:"Bucket"},ForcePathStyle:{type:"clientContextParams",name:"forcePathStyle"},UseArnRegion:{type:"clientContextParams",name:"useArnRegion"},DisableMultiRegionAccessPoints:{type:"clientContextParams",name:"disableMultiregionAccessPoints"},Accelerate:{type:"clientContextParams",name:"useAccelerateEndpoint"},UseGlobalEndpoint:{type:"builtInParams",name:"useGlobalEndpoint"},UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,$3e.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,X3e.getEndpointPlugin)(t,du.getEndpointParameterInstructions()));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"S3Client",commandName:"GetBucketAccelerateConfigurationCommand",inputFilterSensitiveLog:xV.GetBucketAccelerateConfigurationRequestFilterSensitiveLog,outputFilterSensitiveLog:xV.GetBucketAccelerateConfigurationOutputFilterSensitiveLog},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,bV.serializeAws_restXmlGetBucketAccelerateConfigurationCommand)(n,t)}deserialize(n,t){return(0,bV.deserializeAws_restXmlGetBucketAccelerateConfigurationCommand)(n,t)}};cC.GetBucketAccelerateConfigurationCommand=du});var Qk=u(lC=>{"use strict";Object.defineProperty(lC,"__esModule",{value:!0});lC.GetBucketAclCommand=void 0;var V3e=x(),W3e=b(),K3e=E(),IV=ee(),kV=W(),uu=class extends K3e.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{Bucket:{type:"contextParams",name:"Bucket"},ForcePathStyle:{type:"clientContextParams",name:"forcePathStyle"},UseArnRegion:{type:"clientContextParams",name:"useArnRegion"},DisableMultiRegionAccessPoints:{type:"clientContextParams",name:"disableMultiregionAccessPoints"},Accelerate:{type:"clientContextParams",name:"useAccelerateEndpoint"},UseGlobalEndpoint:{type:"builtInParams",name:"useGlobalEndpoint"},UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,W3e.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,V3e.getEndpointPlugin)(t,uu.getEndpointParameterInstructions()));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"S3Client",commandName:"GetBucketAclCommand",inputFilterSensitiveLog:IV.GetBucketAclRequestFilterSensitiveLog,outputFilterSensitiveLog:IV.GetBucketAclOutputFilterSensitiveLog},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,kV.serializeAws_restXmlGetBucketAclCommand)(n,t)}deserialize(n,t){return(0,kV.deserializeAws_restXmlGetBucketAclCommand)(n,t)}};lC.GetBucketAclCommand=uu});var Jk=u(dC=>{"use strict";Object.defineProperty(dC,"__esModule",{value:!0});dC.GetBucketAnalyticsConfigurationCommand=void 0;var Q3e=x(),J3e=b(),Y3e=E(),RV=ee(),NV=W(),mu=class extends Y3e.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{Bucket:{type:"contextParams",name:"Bucket"},ForcePathStyle:{type:"clientContextParams",name:"forcePathStyle"},UseArnRegion:{type:"clientContextParams",name:"useArnRegion"},DisableMultiRegionAccessPoints:{type:"clientContextParams",name:"disableMultiregionAccessPoints"},Accelerate:{type:"clientContextParams",name:"useAccelerateEndpoint"},UseGlobalEndpoint:{type:"builtInParams",name:"useGlobalEndpoint"},UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,J3e.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,Q3e.getEndpointPlugin)(t,mu.getEndpointParameterInstructions()));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"S3Client",commandName:"GetBucketAnalyticsConfigurationCommand",inputFilterSensitiveLog:RV.GetBucketAnalyticsConfigurationRequestFilterSensitiveLog,outputFilterSensitiveLog:RV.GetBucketAnalyticsConfigurationOutputFilterSensitiveLog},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,NV.serializeAws_restXmlGetBucketAnalyticsConfigurationCommand)(n,t)}deserialize(n,t){return(0,NV.deserializeAws_restXmlGetBucketAnalyticsConfigurationCommand)(n,t)}};dC.GetBucketAnalyticsConfigurationCommand=mu});var Yk=u(uC=>{"use strict";Object.defineProperty(uC,"__esModule",{value:!0});uC.GetBucketCorsCommand=void 0;var Z3e=x(),eXe=b(),tXe=E(),zV=ee(),qV=W(),pu=class extends tXe.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{Bucket:{type:"contextParams",name:"Bucket"},ForcePathStyle:{type:"clientContextParams",name:"forcePathStyle"},UseArnRegion:{type:"clientContextParams",name:"useArnRegion"},DisableMultiRegionAccessPoints:{type:"clientContextParams",name:"disableMultiregionAccessPoints"},Accelerate:{type:"clientContextParams",name:"useAccelerateEndpoint"},UseGlobalEndpoint:{type:"builtInParams",name:"useGlobalEndpoint"},UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,eXe.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,Z3e.getEndpointPlugin)(t,pu.getEndpointParameterInstructions()));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"S3Client",commandName:"GetBucketCorsCommand",inputFilterSensitiveLog:zV.GetBucketCorsRequestFilterSensitiveLog,outputFilterSensitiveLog:zV.GetBucketCorsOutputFilterSensitiveLog},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,qV.serializeAws_restXmlGetBucketCorsCommand)(n,t)}deserialize(n,t){return(0,qV.deserializeAws_restXmlGetBucketCorsCommand)(n,t)}};uC.GetBucketCorsCommand=pu});var Zk=u(mC=>{"use strict";Object.defineProperty(mC,"__esModule",{value:!0});mC.GetBucketEncryptionCommand=void 0;var nXe=x(),sXe=b(),rXe=E(),LV=ee(),FV=W(),gu=class extends rXe.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{Bucket:{type:"contextParams",name:"Bucket"},ForcePathStyle:{type:"clientContextParams",name:"forcePathStyle"},UseArnRegion:{type:"clientContextParams",name:"useArnRegion"},DisableMultiRegionAccessPoints:{type:"clientContextParams",name:"disableMultiregionAccessPoints"},Accelerate:{type:"clientContextParams",name:"useAccelerateEndpoint"},UseGlobalEndpoint:{type:"builtInParams",name:"useGlobalEndpoint"},UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,sXe.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,nXe.getEndpointPlugin)(t,gu.getEndpointParameterInstructions()));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"S3Client",commandName:"GetBucketEncryptionCommand",inputFilterSensitiveLog:LV.GetBucketEncryptionRequestFilterSensitiveLog,outputFilterSensitiveLog:LV.GetBucketEncryptionOutputFilterSensitiveLog},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,FV.serializeAws_restXmlGetBucketEncryptionCommand)(n,t)}deserialize(n,t){return(0,FV.deserializeAws_restXmlGetBucketEncryptionCommand)(n,t)}};mC.GetBucketEncryptionCommand=gu});var eR=u(pC=>{"use strict";Object.defineProperty(pC,"__esModule",{value:!0});pC.GetBucketIntelligentTieringConfigurationCommand=void 0;var iXe=x(),oXe=b(),aXe=E(),DV=ee(),TV=W(),yu=class extends aXe.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{Bucket:{type:"contextParams",name:"Bucket"},ForcePathStyle:{type:"clientContextParams",name:"forcePathStyle"},UseArnRegion:{type:"clientContextParams",name:"useArnRegion"},DisableMultiRegionAccessPoints:{type:"clientContextParams",name:"disableMultiregionAccessPoints"},Accelerate:{type:"clientContextParams",name:"useAccelerateEndpoint"},UseGlobalEndpoint:{type:"builtInParams",name:"useGlobalEndpoint"},UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,oXe.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,iXe.getEndpointPlugin)(t,yu.getEndpointParameterInstructions()));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"S3Client",commandName:"GetBucketIntelligentTieringConfigurationCommand",inputFilterSensitiveLog:DV.GetBucketIntelligentTieringConfigurationRequestFilterSensitiveLog,outputFilterSensitiveLog:DV.GetBucketIntelligentTieringConfigurationOutputFilterSensitiveLog},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,TV.serializeAws_restXmlGetBucketIntelligentTieringConfigurationCommand)(n,t)}deserialize(n,t){return(0,TV.deserializeAws_restXmlGetBucketIntelligentTieringConfigurationCommand)(n,t)}};pC.GetBucketIntelligentTieringConfigurationCommand=yu});var tR=u(gC=>{"use strict";Object.defineProperty(gC,"__esModule",{value:!0});gC.GetBucketInventoryConfigurationCommand=void 0;var cXe=x(),lXe=b(),dXe=E(),jV=ee(),MV=W(),_u=class extends dXe.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{Bucket:{type:"contextParams",name:"Bucket"},ForcePathStyle:{type:"clientContextParams",name:"forcePathStyle"},UseArnRegion:{type:"clientContextParams",name:"useArnRegion"},DisableMultiRegionAccessPoints:{type:"clientContextParams",name:"disableMultiregionAccessPoints"},Accelerate:{type:"clientContextParams",name:"useAccelerateEndpoint"},UseGlobalEndpoint:{type:"builtInParams",name:"useGlobalEndpoint"},UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,lXe.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,cXe.getEndpointPlugin)(t,_u.getEndpointParameterInstructions()));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"S3Client",commandName:"GetBucketInventoryConfigurationCommand",inputFilterSensitiveLog:jV.GetBucketInventoryConfigurationRequestFilterSensitiveLog,outputFilterSensitiveLog:jV.GetBucketInventoryConfigurationOutputFilterSensitiveLog},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,MV.serializeAws_restXmlGetBucketInventoryConfigurationCommand)(n,t)}deserialize(n,t){return(0,MV.deserializeAws_restXmlGetBucketInventoryConfigurationCommand)(n,t)}};gC.GetBucketInventoryConfigurationCommand=_u});var nR=u(yC=>{"use strict";Object.defineProperty(yC,"__esModule",{value:!0});yC.GetBucketLifecycleConfigurationCommand=void 0;var uXe=x(),mXe=b(),pXe=E(),OV=ee(),BV=W(),fu=class extends pXe.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{Bucket:{type:"contextParams",name:"Bucket"},ForcePathStyle:{type:"clientContextParams",name:"forcePathStyle"},UseArnRegion:{type:"clientContextParams",name:"useArnRegion"},DisableMultiRegionAccessPoints:{type:"clientContextParams",name:"disableMultiregionAccessPoints"},Accelerate:{type:"clientContextParams",name:"useAccelerateEndpoint"},UseGlobalEndpoint:{type:"builtInParams",name:"useGlobalEndpoint"},UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,mXe.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,uXe.getEndpointPlugin)(t,fu.getEndpointParameterInstructions()));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"S3Client",commandName:"GetBucketLifecycleConfigurationCommand",inputFilterSensitiveLog:OV.GetBucketLifecycleConfigurationRequestFilterSensitiveLog,outputFilterSensitiveLog:OV.GetBucketLifecycleConfigurationOutputFilterSensitiveLog},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,BV.serializeAws_restXmlGetBucketLifecycleConfigurationCommand)(n,t)}deserialize(n,t){return(0,BV.deserializeAws_restXmlGetBucketLifecycleConfigurationCommand)(n,t)}};yC.GetBucketLifecycleConfigurationCommand=fu});var sR=u(_C=>{"use strict";Object.defineProperty(_C,"__esModule",{value:!0});_C.GetBucketLocationCommand=void 0;var gXe=x(),yXe=b(),_Xe=E(),GV=ee(),UV=W(),Su=class extends _Xe.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{Bucket:{type:"contextParams",name:"Bucket"},ForcePathStyle:{type:"clientContextParams",name:"forcePathStyle"},UseArnRegion:{type:"clientContextParams",name:"useArnRegion"},DisableMultiRegionAccessPoints:{type:"clientContextParams",name:"disableMultiregionAccessPoints"},Accelerate:{type:"clientContextParams",name:"useAccelerateEndpoint"},UseGlobalEndpoint:{type:"builtInParams",name:"useGlobalEndpoint"},UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,yXe.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,gXe.getEndpointPlugin)(t,Su.getEndpointParameterInstructions()));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"S3Client",commandName:"GetBucketLocationCommand",inputFilterSensitiveLog:GV.GetBucketLocationRequestFilterSensitiveLog,outputFilterSensitiveLog:GV.GetBucketLocationOutputFilterSensitiveLog},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,UV.serializeAws_restXmlGetBucketLocationCommand)(n,t)}deserialize(n,t){return(0,UV.deserializeAws_restXmlGetBucketLocationCommand)(n,t)}};_C.GetBucketLocationCommand=Su});var rR=u(fC=>{"use strict";Object.defineProperty(fC,"__esModule",{value:!0});fC.GetBucketLoggingCommand=void 0;var fXe=x(),SXe=b(),hXe=E(),XV=ee(),$V=W(),hu=class extends hXe.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{Bucket:{type:"contextParams",name:"Bucket"},ForcePathStyle:{type:"clientContextParams",name:"forcePathStyle"},UseArnRegion:{type:"clientContextParams",name:"useArnRegion"},DisableMultiRegionAccessPoints:{type:"clientContextParams",name:"disableMultiregionAccessPoints"},Accelerate:{type:"clientContextParams",name:"useAccelerateEndpoint"},UseGlobalEndpoint:{type:"builtInParams",name:"useGlobalEndpoint"},UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,SXe.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,fXe.getEndpointPlugin)(t,hu.getEndpointParameterInstructions()));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"S3Client",commandName:"GetBucketLoggingCommand",inputFilterSensitiveLog:XV.GetBucketLoggingRequestFilterSensitiveLog,outputFilterSensitiveLog:XV.GetBucketLoggingOutputFilterSensitiveLog},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,$V.serializeAws_restXmlGetBucketLoggingCommand)(n,t)}deserialize(n,t){return(0,$V.deserializeAws_restXmlGetBucketLoggingCommand)(n,t)}};fC.GetBucketLoggingCommand=hu});var iR=u(SC=>{"use strict";Object.defineProperty(SC,"__esModule",{value:!0});SC.GetBucketMetricsConfigurationCommand=void 0;var wXe=x(),EXe=b(),CXe=E(),HV=ee(),VV=W(),wu=class extends CXe.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{Bucket:{type:"contextParams",name:"Bucket"},ForcePathStyle:{type:"clientContextParams",name:"forcePathStyle"},UseArnRegion:{type:"clientContextParams",name:"useArnRegion"},DisableMultiRegionAccessPoints:{type:"clientContextParams",name:"disableMultiregionAccessPoints"},Accelerate:{type:"clientContextParams",name:"useAccelerateEndpoint"},UseGlobalEndpoint:{type:"builtInParams",name:"useGlobalEndpoint"},UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,EXe.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,wXe.getEndpointPlugin)(t,wu.getEndpointParameterInstructions()));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"S3Client",commandName:"GetBucketMetricsConfigurationCommand",inputFilterSensitiveLog:HV.GetBucketMetricsConfigurationRequestFilterSensitiveLog,outputFilterSensitiveLog:HV.GetBucketMetricsConfigurationOutputFilterSensitiveLog},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,VV.serializeAws_restXmlGetBucketMetricsConfigurationCommand)(n,t)}deserialize(n,t){return(0,VV.deserializeAws_restXmlGetBucketMetricsConfigurationCommand)(n,t)}};SC.GetBucketMetricsConfigurationCommand=wu});var oR=u(hC=>{"use strict";Object.defineProperty(hC,"__esModule",{value:!0});hC.GetBucketNotificationConfigurationCommand=void 0;var vXe=x(),PXe=b(),AXe=E(),WV=ee(),KV=W(),Eu=class extends AXe.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{Bucket:{type:"contextParams",name:"Bucket"},ForcePathStyle:{type:"clientContextParams",name:"forcePathStyle"},UseArnRegion:{type:"clientContextParams",name:"useArnRegion"},DisableMultiRegionAccessPoints:{type:"clientContextParams",name:"disableMultiregionAccessPoints"},Accelerate:{type:"clientContextParams",name:"useAccelerateEndpoint"},UseGlobalEndpoint:{type:"builtInParams",name:"useGlobalEndpoint"},UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,PXe.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,vXe.getEndpointPlugin)(t,Eu.getEndpointParameterInstructions()));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"S3Client",commandName:"GetBucketNotificationConfigurationCommand",inputFilterSensitiveLog:WV.GetBucketNotificationConfigurationRequestFilterSensitiveLog,outputFilterSensitiveLog:WV.NotificationConfigurationFilterSensitiveLog},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,KV.serializeAws_restXmlGetBucketNotificationConfigurationCommand)(n,t)}deserialize(n,t){return(0,KV.deserializeAws_restXmlGetBucketNotificationConfigurationCommand)(n,t)}};hC.GetBucketNotificationConfigurationCommand=Eu});var aR=u(wC=>{"use strict";Object.defineProperty(wC,"__esModule",{value:!0});wC.GetBucketOwnershipControlsCommand=void 0;var xXe=x(),bXe=b(),IXe=E(),QV=ee(),JV=W(),Cu=class extends IXe.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{Bucket:{type:"contextParams",name:"Bucket"},ForcePathStyle:{type:"clientContextParams",name:"forcePathStyle"},UseArnRegion:{type:"clientContextParams",name:"useArnRegion"},DisableMultiRegionAccessPoints:{type:"clientContextParams",name:"disableMultiregionAccessPoints"},Accelerate:{type:"clientContextParams",name:"useAccelerateEndpoint"},UseGlobalEndpoint:{type:"builtInParams",name:"useGlobalEndpoint"},UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,bXe.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,xXe.getEndpointPlugin)(t,Cu.getEndpointParameterInstructions()));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"S3Client",commandName:"GetBucketOwnershipControlsCommand",inputFilterSensitiveLog:QV.GetBucketOwnershipControlsRequestFilterSensitiveLog,outputFilterSensitiveLog:QV.GetBucketOwnershipControlsOutputFilterSensitiveLog},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,JV.serializeAws_restXmlGetBucketOwnershipControlsCommand)(n,t)}deserialize(n,t){return(0,JV.deserializeAws_restXmlGetBucketOwnershipControlsCommand)(n,t)}};wC.GetBucketOwnershipControlsCommand=Cu});var cR=u(EC=>{"use strict";Object.defineProperty(EC,"__esModule",{value:!0});EC.GetBucketPolicyCommand=void 0;var kXe=x(),RXe=b(),NXe=E(),YV=ee(),ZV=W(),vu=class extends NXe.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{Bucket:{type:"contextParams",name:"Bucket"},ForcePathStyle:{type:"clientContextParams",name:"forcePathStyle"},UseArnRegion:{type:"clientContextParams",name:"useArnRegion"},DisableMultiRegionAccessPoints:{type:"clientContextParams",name:"disableMultiregionAccessPoints"},Accelerate:{type:"clientContextParams",name:"useAccelerateEndpoint"},UseGlobalEndpoint:{type:"builtInParams",name:"useGlobalEndpoint"},UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,RXe.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,kXe.getEndpointPlugin)(t,vu.getEndpointParameterInstructions()));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"S3Client",commandName:"GetBucketPolicyCommand",inputFilterSensitiveLog:YV.GetBucketPolicyRequestFilterSensitiveLog,outputFilterSensitiveLog:YV.GetBucketPolicyOutputFilterSensitiveLog},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,ZV.serializeAws_restXmlGetBucketPolicyCommand)(n,t)}deserialize(n,t){return(0,ZV.deserializeAws_restXmlGetBucketPolicyCommand)(n,t)}};EC.GetBucketPolicyCommand=vu});var lR=u(CC=>{"use strict";Object.defineProperty(CC,"__esModule",{value:!0});CC.GetBucketPolicyStatusCommand=void 0;var zXe=x(),qXe=b(),LXe=E(),eW=ee(),tW=W(),Pu=class extends LXe.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{Bucket:{type:"contextParams",name:"Bucket"},ForcePathStyle:{type:"clientContextParams",name:"forcePathStyle"},UseArnRegion:{type:"clientContextParams",name:"useArnRegion"},DisableMultiRegionAccessPoints:{type:"clientContextParams",name:"disableMultiregionAccessPoints"},Accelerate:{type:"clientContextParams",name:"useAccelerateEndpoint"},UseGlobalEndpoint:{type:"builtInParams",name:"useGlobalEndpoint"},UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,qXe.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,zXe.getEndpointPlugin)(t,Pu.getEndpointParameterInstructions()));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"S3Client",commandName:"GetBucketPolicyStatusCommand",inputFilterSensitiveLog:eW.GetBucketPolicyStatusRequestFilterSensitiveLog,outputFilterSensitiveLog:eW.GetBucketPolicyStatusOutputFilterSensitiveLog},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,tW.serializeAws_restXmlGetBucketPolicyStatusCommand)(n,t)}deserialize(n,t){return(0,tW.deserializeAws_restXmlGetBucketPolicyStatusCommand)(n,t)}};CC.GetBucketPolicyStatusCommand=Pu});var dR=u(vC=>{"use strict";Object.defineProperty(vC,"__esModule",{value:!0});vC.GetBucketReplicationCommand=void 0;var FXe=x(),DXe=b(),TXe=E(),nW=ee(),sW=W(),Au=class extends TXe.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{Bucket:{type:"contextParams",name:"Bucket"},ForcePathStyle:{type:"clientContextParams",name:"forcePathStyle"},UseArnRegion:{type:"clientContextParams",name:"useArnRegion"},DisableMultiRegionAccessPoints:{type:"clientContextParams",name:"disableMultiregionAccessPoints"},Accelerate:{type:"clientContextParams",name:"useAccelerateEndpoint"},UseGlobalEndpoint:{type:"builtInParams",name:"useGlobalEndpoint"},UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,DXe.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,FXe.getEndpointPlugin)(t,Au.getEndpointParameterInstructions()));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"S3Client",commandName:"GetBucketReplicationCommand",inputFilterSensitiveLog:nW.GetBucketReplicationRequestFilterSensitiveLog,outputFilterSensitiveLog:nW.GetBucketReplicationOutputFilterSensitiveLog},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,sW.serializeAws_restXmlGetBucketReplicationCommand)(n,t)}deserialize(n,t){return(0,sW.deserializeAws_restXmlGetBucketReplicationCommand)(n,t)}};vC.GetBucketReplicationCommand=Au});var uR=u(PC=>{"use strict";Object.defineProperty(PC,"__esModule",{value:!0});PC.GetBucketRequestPaymentCommand=void 0;var jXe=x(),MXe=b(),OXe=E(),rW=ee(),iW=W(),xu=class extends OXe.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{Bucket:{type:"contextParams",name:"Bucket"},ForcePathStyle:{type:"clientContextParams",name:"forcePathStyle"},UseArnRegion:{type:"clientContextParams",name:"useArnRegion"},DisableMultiRegionAccessPoints:{type:"clientContextParams",name:"disableMultiregionAccessPoints"},Accelerate:{type:"clientContextParams",name:"useAccelerateEndpoint"},UseGlobalEndpoint:{type:"builtInParams",name:"useGlobalEndpoint"},UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,MXe.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,jXe.getEndpointPlugin)(t,xu.getEndpointParameterInstructions()));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"S3Client",commandName:"GetBucketRequestPaymentCommand",inputFilterSensitiveLog:rW.GetBucketRequestPaymentRequestFilterSensitiveLog,outputFilterSensitiveLog:rW.GetBucketRequestPaymentOutputFilterSensitiveLog},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,iW.serializeAws_restXmlGetBucketRequestPaymentCommand)(n,t)}deserialize(n,t){return(0,iW.deserializeAws_restXmlGetBucketRequestPaymentCommand)(n,t)}};PC.GetBucketRequestPaymentCommand=xu});var mR=u(AC=>{"use strict";Object.defineProperty(AC,"__esModule",{value:!0});AC.GetBucketTaggingCommand=void 0;var BXe=x(),GXe=b(),UXe=E(),oW=ee(),aW=W(),bu=class extends UXe.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{Bucket:{type:"contextParams",name:"Bucket"},ForcePathStyle:{type:"clientContextParams",name:"forcePathStyle"},UseArnRegion:{type:"clientContextParams",name:"useArnRegion"},DisableMultiRegionAccessPoints:{type:"clientContextParams",name:"disableMultiregionAccessPoints"},Accelerate:{type:"clientContextParams",name:"useAccelerateEndpoint"},UseGlobalEndpoint:{type:"builtInParams",name:"useGlobalEndpoint"},UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,GXe.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,BXe.getEndpointPlugin)(t,bu.getEndpointParameterInstructions()));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"S3Client",commandName:"GetBucketTaggingCommand",inputFilterSensitiveLog:oW.GetBucketTaggingRequestFilterSensitiveLog,outputFilterSensitiveLog:oW.GetBucketTaggingOutputFilterSensitiveLog},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,aW.serializeAws_restXmlGetBucketTaggingCommand)(n,t)}deserialize(n,t){return(0,aW.deserializeAws_restXmlGetBucketTaggingCommand)(n,t)}};AC.GetBucketTaggingCommand=bu});var pR=u(xC=>{"use strict";Object.defineProperty(xC,"__esModule",{value:!0});xC.GetBucketVersioningCommand=void 0;var XXe=x(),$Xe=b(),HXe=E(),cW=ee(),lW=W(),Iu=class extends HXe.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{Bucket:{type:"contextParams",name:"Bucket"},ForcePathStyle:{type:"clientContextParams",name:"forcePathStyle"},UseArnRegion:{type:"clientContextParams",name:"useArnRegion"},DisableMultiRegionAccessPoints:{type:"clientContextParams",name:"disableMultiregionAccessPoints"},Accelerate:{type:"clientContextParams",name:"useAccelerateEndpoint"},UseGlobalEndpoint:{type:"builtInParams",name:"useGlobalEndpoint"},UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,$Xe.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,XXe.getEndpointPlugin)(t,Iu.getEndpointParameterInstructions()));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"S3Client",commandName:"GetBucketVersioningCommand",inputFilterSensitiveLog:cW.GetBucketVersioningRequestFilterSensitiveLog,outputFilterSensitiveLog:cW.GetBucketVersioningOutputFilterSensitiveLog},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,lW.serializeAws_restXmlGetBucketVersioningCommand)(n,t)}deserialize(n,t){return(0,lW.deserializeAws_restXmlGetBucketVersioningCommand)(n,t)}};xC.GetBucketVersioningCommand=Iu});var gR=u(bC=>{"use strict";Object.defineProperty(bC,"__esModule",{value:!0});bC.GetBucketWebsiteCommand=void 0;var VXe=x(),WXe=b(),KXe=E(),dW=ee(),uW=W(),ku=class extends KXe.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{Bucket:{type:"contextParams",name:"Bucket"},ForcePathStyle:{type:"clientContextParams",name:"forcePathStyle"},UseArnRegion:{type:"clientContextParams",name:"useArnRegion"},DisableMultiRegionAccessPoints:{type:"clientContextParams",name:"disableMultiregionAccessPoints"},Accelerate:{type:"clientContextParams",name:"useAccelerateEndpoint"},UseGlobalEndpoint:{type:"builtInParams",name:"useGlobalEndpoint"},UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,WXe.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,VXe.getEndpointPlugin)(t,ku.getEndpointParameterInstructions()));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"S3Client",commandName:"GetBucketWebsiteCommand",inputFilterSensitiveLog:dW.GetBucketWebsiteRequestFilterSensitiveLog,outputFilterSensitiveLog:dW.GetBucketWebsiteOutputFilterSensitiveLog},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,uW.serializeAws_restXmlGetBucketWebsiteCommand)(n,t)}deserialize(n,t){return(0,uW.deserializeAws_restXmlGetBucketWebsiteCommand)(n,t)}};bC.GetBucketWebsiteCommand=ku});var yR=u(IC=>{"use strict";Object.defineProperty(IC,"__esModule",{value:!0});IC.GetObjectAclCommand=void 0;var QXe=x(),JXe=b(),YXe=E(),mW=ee(),pW=W(),Ru=class extends YXe.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{Bucket:{type:"contextParams",name:"Bucket"},ForcePathStyle:{type:"clientContextParams",name:"forcePathStyle"},UseArnRegion:{type:"clientContextParams",name:"useArnRegion"},DisableMultiRegionAccessPoints:{type:"clientContextParams",name:"disableMultiregionAccessPoints"},Accelerate:{type:"clientContextParams",name:"useAccelerateEndpoint"},UseGlobalEndpoint:{type:"builtInParams",name:"useGlobalEndpoint"},UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,JXe.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,QXe.getEndpointPlugin)(t,Ru.getEndpointParameterInstructions()));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"S3Client",commandName:"GetObjectAclCommand",inputFilterSensitiveLog:mW.GetObjectAclRequestFilterSensitiveLog,outputFilterSensitiveLog:mW.GetObjectAclOutputFilterSensitiveLog},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,pW.serializeAws_restXmlGetObjectAclCommand)(n,t)}deserialize(n,t){return(0,pW.deserializeAws_restXmlGetObjectAclCommand)(n,t)}};IC.GetObjectAclCommand=Ru});var _R=u(kC=>{"use strict";Object.defineProperty(kC,"__esModule",{value:!0});kC.GetObjectAttributesCommand=void 0;var ZXe=x(),e2e=b(),t2e=$n(),n2e=E(),gW=ee(),yW=W(),Nu=class extends n2e.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{Bucket:{type:"contextParams",name:"Bucket"},ForcePathStyle:{type:"clientContextParams",name:"forcePathStyle"},UseArnRegion:{type:"clientContextParams",name:"useArnRegion"},DisableMultiRegionAccessPoints:{type:"clientContextParams",name:"disableMultiregionAccessPoints"},Accelerate:{type:"clientContextParams",name:"useAccelerateEndpoint"},UseGlobalEndpoint:{type:"builtInParams",name:"useGlobalEndpoint"},UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,e2e.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,ZXe.getEndpointPlugin)(t,Nu.getEndpointParameterInstructions())),this.middlewareStack.use((0,t2e.getSsecPlugin)(t));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"S3Client",commandName:"GetObjectAttributesCommand",inputFilterSensitiveLog:gW.GetObjectAttributesRequestFilterSensitiveLog,outputFilterSensitiveLog:gW.GetObjectAttributesOutputFilterSensitiveLog},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,yW.serializeAws_restXmlGetObjectAttributesCommand)(n,t)}deserialize(n,t){return(0,yW.deserializeAws_restXmlGetObjectAttributesCommand)(n,t)}};kC.GetObjectAttributesCommand=Nu});var fR=u(RC=>{"use strict";Object.defineProperty(RC,"__esModule",{value:!0});RC.GetObjectCommand=void 0;var s2e=x(),r2e=at(),i2e=b(),o2e=$n(),a2e=E(),_W=ee(),fW=W(),zu=class extends a2e.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{Bucket:{type:"contextParams",name:"Bucket"},ForcePathStyle:{type:"clientContextParams",name:"forcePathStyle"},UseArnRegion:{type:"clientContextParams",name:"useArnRegion"},DisableMultiRegionAccessPoints:{type:"clientContextParams",name:"disableMultiregionAccessPoints"},Accelerate:{type:"clientContextParams",name:"useAccelerateEndpoint"},UseGlobalEndpoint:{type:"builtInParams",name:"useGlobalEndpoint"},UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,i2e.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,s2e.getEndpointPlugin)(t,zu.getEndpointParameterInstructions())),this.middlewareStack.use((0,o2e.getSsecPlugin)(t)),this.middlewareStack.use((0,r2e.getFlexibleChecksumsPlugin)(t,{input:this.input,requestChecksumRequired:!1,requestValidationModeMember:"ChecksumMode",responseAlgorithms:["CRC32","CRC32C","SHA256","SHA1"]}));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"S3Client",commandName:"GetObjectCommand",inputFilterSensitiveLog:_W.GetObjectRequestFilterSensitiveLog,outputFilterSensitiveLog:_W.GetObjectOutputFilterSensitiveLog},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,fW.serializeAws_restXmlGetObjectCommand)(n,t)}deserialize(n,t){return(0,fW.deserializeAws_restXmlGetObjectCommand)(n,t)}};RC.GetObjectCommand=zu});var SR=u(NC=>{"use strict";Object.defineProperty(NC,"__esModule",{value:!0});NC.GetObjectLegalHoldCommand=void 0;var c2e=x(),l2e=b(),d2e=E(),SW=ee(),hW=W(),qu=class extends d2e.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{Bucket:{type:"contextParams",name:"Bucket"},ForcePathStyle:{type:"clientContextParams",name:"forcePathStyle"},UseArnRegion:{type:"clientContextParams",name:"useArnRegion"},DisableMultiRegionAccessPoints:{type:"clientContextParams",name:"disableMultiregionAccessPoints"},Accelerate:{type:"clientContextParams",name:"useAccelerateEndpoint"},UseGlobalEndpoint:{type:"builtInParams",name:"useGlobalEndpoint"},UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,l2e.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,c2e.getEndpointPlugin)(t,qu.getEndpointParameterInstructions()));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"S3Client",commandName:"GetObjectLegalHoldCommand",inputFilterSensitiveLog:SW.GetObjectLegalHoldRequestFilterSensitiveLog,outputFilterSensitiveLog:SW.GetObjectLegalHoldOutputFilterSensitiveLog},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,hW.serializeAws_restXmlGetObjectLegalHoldCommand)(n,t)}deserialize(n,t){return(0,hW.deserializeAws_restXmlGetObjectLegalHoldCommand)(n,t)}};NC.GetObjectLegalHoldCommand=qu});var hR=u(zC=>{"use strict";Object.defineProperty(zC,"__esModule",{value:!0});zC.GetObjectLockConfigurationCommand=void 0;var u2e=x(),m2e=b(),p2e=E(),wW=ee(),EW=W(),Lu=class extends p2e.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{Bucket:{type:"contextParams",name:"Bucket"},ForcePathStyle:{type:"clientContextParams",name:"forcePathStyle"},UseArnRegion:{type:"clientContextParams",name:"useArnRegion"},DisableMultiRegionAccessPoints:{type:"clientContextParams",name:"disableMultiregionAccessPoints"},Accelerate:{type:"clientContextParams",name:"useAccelerateEndpoint"},UseGlobalEndpoint:{type:"builtInParams",name:"useGlobalEndpoint"},UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,m2e.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,u2e.getEndpointPlugin)(t,Lu.getEndpointParameterInstructions()));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"S3Client",commandName:"GetObjectLockConfigurationCommand",inputFilterSensitiveLog:wW.GetObjectLockConfigurationRequestFilterSensitiveLog,outputFilterSensitiveLog:wW.GetObjectLockConfigurationOutputFilterSensitiveLog},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,EW.serializeAws_restXmlGetObjectLockConfigurationCommand)(n,t)}deserialize(n,t){return(0,EW.deserializeAws_restXmlGetObjectLockConfigurationCommand)(n,t)}};zC.GetObjectLockConfigurationCommand=Lu});var wR=u(qC=>{"use strict";Object.defineProperty(qC,"__esModule",{value:!0});qC.GetObjectRetentionCommand=void 0;var g2e=x(),y2e=b(),_2e=E(),CW=ee(),vW=W(),Fu=class extends _2e.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{Bucket:{type:"contextParams",name:"Bucket"},ForcePathStyle:{type:"clientContextParams",name:"forcePathStyle"},UseArnRegion:{type:"clientContextParams",name:"useArnRegion"},DisableMultiRegionAccessPoints:{type:"clientContextParams",name:"disableMultiregionAccessPoints"},Accelerate:{type:"clientContextParams",name:"useAccelerateEndpoint"},UseGlobalEndpoint:{type:"builtInParams",name:"useGlobalEndpoint"},UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,y2e.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,g2e.getEndpointPlugin)(t,Fu.getEndpointParameterInstructions()));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"S3Client",commandName:"GetObjectRetentionCommand",inputFilterSensitiveLog:CW.GetObjectRetentionRequestFilterSensitiveLog,outputFilterSensitiveLog:CW.GetObjectRetentionOutputFilterSensitiveLog},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,vW.serializeAws_restXmlGetObjectRetentionCommand)(n,t)}deserialize(n,t){return(0,vW.deserializeAws_restXmlGetObjectRetentionCommand)(n,t)}};qC.GetObjectRetentionCommand=Fu});var ER=u(LC=>{"use strict";Object.defineProperty(LC,"__esModule",{value:!0});LC.GetObjectTaggingCommand=void 0;var f2e=x(),S2e=b(),h2e=E(),PW=ee(),AW=W(),Du=class extends h2e.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{Bucket:{type:"contextParams",name:"Bucket"},ForcePathStyle:{type:"clientContextParams",name:"forcePathStyle"},UseArnRegion:{type:"clientContextParams",name:"useArnRegion"},DisableMultiRegionAccessPoints:{type:"clientContextParams",name:"disableMultiregionAccessPoints"},Accelerate:{type:"clientContextParams",name:"useAccelerateEndpoint"},UseGlobalEndpoint:{type:"builtInParams",name:"useGlobalEndpoint"},UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,S2e.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,f2e.getEndpointPlugin)(t,Du.getEndpointParameterInstructions()));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"S3Client",commandName:"GetObjectTaggingCommand",inputFilterSensitiveLog:PW.GetObjectTaggingRequestFilterSensitiveLog,outputFilterSensitiveLog:PW.GetObjectTaggingOutputFilterSensitiveLog},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,AW.serializeAws_restXmlGetObjectTaggingCommand)(n,t)}deserialize(n,t){return(0,AW.deserializeAws_restXmlGetObjectTaggingCommand)(n,t)}};LC.GetObjectTaggingCommand=Du});var CR=u(FC=>{"use strict";Object.defineProperty(FC,"__esModule",{value:!0});FC.GetObjectTorrentCommand=void 0;var w2e=x(),E2e=b(),C2e=E(),xW=ee(),bW=W(),Tu=class extends C2e.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{Bucket:{type:"contextParams",name:"Bucket"},ForcePathStyle:{type:"clientContextParams",name:"forcePathStyle"},UseArnRegion:{type:"clientContextParams",name:"useArnRegion"},DisableMultiRegionAccessPoints:{type:"clientContextParams",name:"disableMultiregionAccessPoints"},Accelerate:{type:"clientContextParams",name:"useAccelerateEndpoint"},UseGlobalEndpoint:{type:"builtInParams",name:"useGlobalEndpoint"},UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,E2e.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,w2e.getEndpointPlugin)(t,Tu.getEndpointParameterInstructions()));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"S3Client",commandName:"GetObjectTorrentCommand",inputFilterSensitiveLog:xW.GetObjectTorrentRequestFilterSensitiveLog,outputFilterSensitiveLog:xW.GetObjectTorrentOutputFilterSensitiveLog},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,bW.serializeAws_restXmlGetObjectTorrentCommand)(n,t)}deserialize(n,t){return(0,bW.deserializeAws_restXmlGetObjectTorrentCommand)(n,t)}};FC.GetObjectTorrentCommand=Tu});var vR=u(DC=>{"use strict";Object.defineProperty(DC,"__esModule",{value:!0});DC.GetPublicAccessBlockCommand=void 0;var v2e=x(),P2e=b(),A2e=E(),IW=ee(),kW=W(),ju=class extends A2e.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{Bucket:{type:"contextParams",name:"Bucket"},ForcePathStyle:{type:"clientContextParams",name:"forcePathStyle"},UseArnRegion:{type:"clientContextParams",name:"useArnRegion"},DisableMultiRegionAccessPoints:{type:"clientContextParams",name:"disableMultiregionAccessPoints"},Accelerate:{type:"clientContextParams",name:"useAccelerateEndpoint"},UseGlobalEndpoint:{type:"builtInParams",name:"useGlobalEndpoint"},UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,P2e.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,v2e.getEndpointPlugin)(t,ju.getEndpointParameterInstructions()));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"S3Client",commandName:"GetPublicAccessBlockCommand",inputFilterSensitiveLog:IW.GetPublicAccessBlockRequestFilterSensitiveLog,outputFilterSensitiveLog:IW.GetPublicAccessBlockOutputFilterSensitiveLog},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,kW.serializeAws_restXmlGetPublicAccessBlockCommand)(n,t)}deserialize(n,t){return(0,kW.deserializeAws_restXmlGetPublicAccessBlockCommand)(n,t)}};DC.GetPublicAccessBlockCommand=ju});var Ou=u(TC=>{"use strict";Object.defineProperty(TC,"__esModule",{value:!0});TC.HeadBucketCommand=void 0;var x2e=x(),b2e=b(),I2e=E(),k2e=ee(),RW=W(),Mu=class extends I2e.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{Bucket:{type:"contextParams",name:"Bucket"},ForcePathStyle:{type:"clientContextParams",name:"forcePathStyle"},UseArnRegion:{type:"clientContextParams",name:"useArnRegion"},DisableMultiRegionAccessPoints:{type:"clientContextParams",name:"disableMultiregionAccessPoints"},Accelerate:{type:"clientContextParams",name:"useAccelerateEndpoint"},UseGlobalEndpoint:{type:"builtInParams",name:"useGlobalEndpoint"},UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,b2e.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,x2e.getEndpointPlugin)(t,Mu.getEndpointParameterInstructions()));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"S3Client",commandName:"HeadBucketCommand",inputFilterSensitiveLog:k2e.HeadBucketRequestFilterSensitiveLog,outputFilterSensitiveLog:d=>d},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,RW.serializeAws_restXmlHeadBucketCommand)(n,t)}deserialize(n,t){return(0,RW.deserializeAws_restXmlHeadBucketCommand)(n,t)}};TC.HeadBucketCommand=Mu});var Gu=u(jC=>{"use strict";Object.defineProperty(jC,"__esModule",{value:!0});jC.HeadObjectCommand=void 0;var R2e=x(),N2e=b(),z2e=$n(),q2e=E(),NW=ee(),zW=W(),Bu=class extends q2e.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{Bucket:{type:"contextParams",name:"Bucket"},ForcePathStyle:{type:"clientContextParams",name:"forcePathStyle"},UseArnRegion:{type:"clientContextParams",name:"useArnRegion"},DisableMultiRegionAccessPoints:{type:"clientContextParams",name:"disableMultiregionAccessPoints"},Accelerate:{type:"clientContextParams",name:"useAccelerateEndpoint"},UseGlobalEndpoint:{type:"builtInParams",name:"useGlobalEndpoint"},UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,N2e.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,R2e.getEndpointPlugin)(t,Bu.getEndpointParameterInstructions())),this.middlewareStack.use((0,z2e.getSsecPlugin)(t));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"S3Client",commandName:"HeadObjectCommand",inputFilterSensitiveLog:NW.HeadObjectRequestFilterSensitiveLog,outputFilterSensitiveLog:NW.HeadObjectOutputFilterSensitiveLog},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,zW.serializeAws_restXmlHeadObjectCommand)(n,t)}deserialize(n,t){return(0,zW.deserializeAws_restXmlHeadObjectCommand)(n,t)}};jC.HeadObjectCommand=Bu});var PR=u(MC=>{"use strict";Object.defineProperty(MC,"__esModule",{value:!0});MC.ListBucketAnalyticsConfigurationsCommand=void 0;var L2e=x(),F2e=b(),D2e=E(),qW=ee(),LW=W(),Uu=class extends D2e.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{Bucket:{type:"contextParams",name:"Bucket"},ForcePathStyle:{type:"clientContextParams",name:"forcePathStyle"},UseArnRegion:{type:"clientContextParams",name:"useArnRegion"},DisableMultiRegionAccessPoints:{type:"clientContextParams",name:"disableMultiregionAccessPoints"},Accelerate:{type:"clientContextParams",name:"useAccelerateEndpoint"},UseGlobalEndpoint:{type:"builtInParams",name:"useGlobalEndpoint"},UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,F2e.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,L2e.getEndpointPlugin)(t,Uu.getEndpointParameterInstructions()));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"S3Client",commandName:"ListBucketAnalyticsConfigurationsCommand",inputFilterSensitiveLog:qW.ListBucketAnalyticsConfigurationsRequestFilterSensitiveLog,outputFilterSensitiveLog:qW.ListBucketAnalyticsConfigurationsOutputFilterSensitiveLog},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,LW.serializeAws_restXmlListBucketAnalyticsConfigurationsCommand)(n,t)}deserialize(n,t){return(0,LW.deserializeAws_restXmlListBucketAnalyticsConfigurationsCommand)(n,t)}};MC.ListBucketAnalyticsConfigurationsCommand=Uu});var AR=u(OC=>{"use strict";Object.defineProperty(OC,"__esModule",{value:!0});OC.ListBucketIntelligentTieringConfigurationsCommand=void 0;var T2e=x(),j2e=b(),M2e=E(),FW=ee(),DW=W(),Xu=class extends M2e.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{Bucket:{type:"contextParams",name:"Bucket"},ForcePathStyle:{type:"clientContextParams",name:"forcePathStyle"},UseArnRegion:{type:"clientContextParams",name:"useArnRegion"},DisableMultiRegionAccessPoints:{type:"clientContextParams",name:"disableMultiregionAccessPoints"},Accelerate:{type:"clientContextParams",name:"useAccelerateEndpoint"},UseGlobalEndpoint:{type:"builtInParams",name:"useGlobalEndpoint"},UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,j2e.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,T2e.getEndpointPlugin)(t,Xu.getEndpointParameterInstructions()));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"S3Client",commandName:"ListBucketIntelligentTieringConfigurationsCommand",inputFilterSensitiveLog:FW.ListBucketIntelligentTieringConfigurationsRequestFilterSensitiveLog,outputFilterSensitiveLog:FW.ListBucketIntelligentTieringConfigurationsOutputFilterSensitiveLog},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,DW.serializeAws_restXmlListBucketIntelligentTieringConfigurationsCommand)(n,t)}deserialize(n,t){return(0,DW.deserializeAws_restXmlListBucketIntelligentTieringConfigurationsCommand)(n,t)}};OC.ListBucketIntelligentTieringConfigurationsCommand=Xu});var xR=u(BC=>{"use strict";Object.defineProperty(BC,"__esModule",{value:!0});BC.ListBucketInventoryConfigurationsCommand=void 0;var O2e=x(),B2e=b(),G2e=E(),TW=ee(),jW=W(),$u=class extends G2e.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{Bucket:{type:"contextParams",name:"Bucket"},ForcePathStyle:{type:"clientContextParams",name:"forcePathStyle"},UseArnRegion:{type:"clientContextParams",name:"useArnRegion"},DisableMultiRegionAccessPoints:{type:"clientContextParams",name:"disableMultiregionAccessPoints"},Accelerate:{type:"clientContextParams",name:"useAccelerateEndpoint"},UseGlobalEndpoint:{type:"builtInParams",name:"useGlobalEndpoint"},UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,B2e.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,O2e.getEndpointPlugin)(t,$u.getEndpointParameterInstructions()));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"S3Client",commandName:"ListBucketInventoryConfigurationsCommand",inputFilterSensitiveLog:TW.ListBucketInventoryConfigurationsRequestFilterSensitiveLog,outputFilterSensitiveLog:TW.ListBucketInventoryConfigurationsOutputFilterSensitiveLog},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,jW.serializeAws_restXmlListBucketInventoryConfigurationsCommand)(n,t)}deserialize(n,t){return(0,jW.deserializeAws_restXmlListBucketInventoryConfigurationsCommand)(n,t)}};BC.ListBucketInventoryConfigurationsCommand=$u});var bR=u(GC=>{"use strict";Object.defineProperty(GC,"__esModule",{value:!0});GC.ListBucketMetricsConfigurationsCommand=void 0;var U2e=x(),X2e=b(),$2e=E(),MW=ee(),OW=W(),Hu=class extends $2e.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{Bucket:{type:"contextParams",name:"Bucket"},ForcePathStyle:{type:"clientContextParams",name:"forcePathStyle"},UseArnRegion:{type:"clientContextParams",name:"useArnRegion"},DisableMultiRegionAccessPoints:{type:"clientContextParams",name:"disableMultiregionAccessPoints"},Accelerate:{type:"clientContextParams",name:"useAccelerateEndpoint"},UseGlobalEndpoint:{type:"builtInParams",name:"useGlobalEndpoint"},UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,X2e.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,U2e.getEndpointPlugin)(t,Hu.getEndpointParameterInstructions()));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"S3Client",commandName:"ListBucketMetricsConfigurationsCommand",inputFilterSensitiveLog:MW.ListBucketMetricsConfigurationsRequestFilterSensitiveLog,outputFilterSensitiveLog:MW.ListBucketMetricsConfigurationsOutputFilterSensitiveLog},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,OW.serializeAws_restXmlListBucketMetricsConfigurationsCommand)(n,t)}deserialize(n,t){return(0,OW.deserializeAws_restXmlListBucketMetricsConfigurationsCommand)(n,t)}};GC.ListBucketMetricsConfigurationsCommand=Hu});var IR=u(UC=>{"use strict";Object.defineProperty(UC,"__esModule",{value:!0});UC.ListBucketsCommand=void 0;var H2e=x(),V2e=b(),W2e=E(),K2e=ee(),BW=W(),Vu=class extends W2e.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{ForcePathStyle:{type:"clientContextParams",name:"forcePathStyle"},UseArnRegion:{type:"clientContextParams",name:"useArnRegion"},DisableMultiRegionAccessPoints:{type:"clientContextParams",name:"disableMultiregionAccessPoints"},Accelerate:{type:"clientContextParams",name:"useAccelerateEndpoint"},UseGlobalEndpoint:{type:"builtInParams",name:"useGlobalEndpoint"},UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,V2e.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,H2e.getEndpointPlugin)(t,Vu.getEndpointParameterInstructions()));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"S3Client",commandName:"ListBucketsCommand",inputFilterSensitiveLog:d=>d,outputFilterSensitiveLog:K2e.ListBucketsOutputFilterSensitiveLog},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,BW.serializeAws_restXmlListBucketsCommand)(n,t)}deserialize(n,t){return(0,BW.deserializeAws_restXmlListBucketsCommand)(n,t)}};UC.ListBucketsCommand=Vu});var kR=u(XC=>{"use strict";Object.defineProperty(XC,"__esModule",{value:!0});XC.ListMultipartUploadsCommand=void 0;var Q2e=x(),J2e=b(),Y2e=E(),GW=ee(),UW=W(),Wu=class extends Y2e.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{Bucket:{type:"contextParams",name:"Bucket"},ForcePathStyle:{type:"clientContextParams",name:"forcePathStyle"},UseArnRegion:{type:"clientContextParams",name:"useArnRegion"},DisableMultiRegionAccessPoints:{type:"clientContextParams",name:"disableMultiregionAccessPoints"},Accelerate:{type:"clientContextParams",name:"useAccelerateEndpoint"},UseGlobalEndpoint:{type:"builtInParams",name:"useGlobalEndpoint"},UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,J2e.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,Q2e.getEndpointPlugin)(t,Wu.getEndpointParameterInstructions()));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"S3Client",commandName:"ListMultipartUploadsCommand",inputFilterSensitiveLog:GW.ListMultipartUploadsRequestFilterSensitiveLog,outputFilterSensitiveLog:GW.ListMultipartUploadsOutputFilterSensitiveLog},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,UW.serializeAws_restXmlListMultipartUploadsCommand)(n,t)}deserialize(n,t){return(0,UW.deserializeAws_restXmlListMultipartUploadsCommand)(n,t)}};XC.ListMultipartUploadsCommand=Wu});var RR=u($C=>{"use strict";Object.defineProperty($C,"__esModule",{value:!0});$C.ListObjectsCommand=void 0;var Z2e=x(),e$e=b(),t$e=E(),XW=ee(),$W=W(),Ku=class extends t$e.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{Bucket:{type:"contextParams",name:"Bucket"},ForcePathStyle:{type:"clientContextParams",name:"forcePathStyle"},UseArnRegion:{type:"clientContextParams",name:"useArnRegion"},DisableMultiRegionAccessPoints:{type:"clientContextParams",name:"disableMultiregionAccessPoints"},Accelerate:{type:"clientContextParams",name:"useAccelerateEndpoint"},UseGlobalEndpoint:{type:"builtInParams",name:"useGlobalEndpoint"},UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,e$e.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,Z2e.getEndpointPlugin)(t,Ku.getEndpointParameterInstructions()));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"S3Client",commandName:"ListObjectsCommand",inputFilterSensitiveLog:XW.ListObjectsRequestFilterSensitiveLog,outputFilterSensitiveLog:XW.ListObjectsOutputFilterSensitiveLog},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,$W.serializeAws_restXmlListObjectsCommand)(n,t)}deserialize(n,t){return(0,$W.deserializeAws_restXmlListObjectsCommand)(n,t)}};$C.ListObjectsCommand=Ku});var VC=u(HC=>{"use strict";Object.defineProperty(HC,"__esModule",{value:!0});HC.ListObjectsV2Command=void 0;var n$e=x(),s$e=b(),r$e=E(),HW=ee(),VW=W(),Qu=class extends r$e.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{Bucket:{type:"contextParams",name:"Bucket"},ForcePathStyle:{type:"clientContextParams",name:"forcePathStyle"},UseArnRegion:{type:"clientContextParams",name:"useArnRegion"},DisableMultiRegionAccessPoints:{type:"clientContextParams",name:"disableMultiregionAccessPoints"},Accelerate:{type:"clientContextParams",name:"useAccelerateEndpoint"},UseGlobalEndpoint:{type:"builtInParams",name:"useGlobalEndpoint"},UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,s$e.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,n$e.getEndpointPlugin)(t,Qu.getEndpointParameterInstructions()));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"S3Client",commandName:"ListObjectsV2Command",inputFilterSensitiveLog:HW.ListObjectsV2RequestFilterSensitiveLog,outputFilterSensitiveLog:HW.ListObjectsV2OutputFilterSensitiveLog},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,VW.serializeAws_restXmlListObjectsV2Command)(n,t)}deserialize(n,t){return(0,VW.deserializeAws_restXmlListObjectsV2Command)(n,t)}};HC.ListObjectsV2Command=Qu});var NR=u(WC=>{"use strict";Object.defineProperty(WC,"__esModule",{value:!0});WC.ListObjectVersionsCommand=void 0;var i$e=x(),o$e=b(),a$e=E(),WW=ee(),KW=W(),Ju=class extends a$e.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{Bucket:{type:"contextParams",name:"Bucket"},ForcePathStyle:{type:"clientContextParams",name:"forcePathStyle"},UseArnRegion:{type:"clientContextParams",name:"useArnRegion"},DisableMultiRegionAccessPoints:{type:"clientContextParams",name:"disableMultiregionAccessPoints"},Accelerate:{type:"clientContextParams",name:"useAccelerateEndpoint"},UseGlobalEndpoint:{type:"builtInParams",name:"useGlobalEndpoint"},UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,o$e.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,i$e.getEndpointPlugin)(t,Ju.getEndpointParameterInstructions()));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"S3Client",commandName:"ListObjectVersionsCommand",inputFilterSensitiveLog:WW.ListObjectVersionsRequestFilterSensitiveLog,outputFilterSensitiveLog:WW.ListObjectVersionsOutputFilterSensitiveLog},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,KW.serializeAws_restXmlListObjectVersionsCommand)(n,t)}deserialize(n,t){return(0,KW.deserializeAws_restXmlListObjectVersionsCommand)(n,t)}};WC.ListObjectVersionsCommand=Ju});var QC=u(KC=>{"use strict";Object.defineProperty(KC,"__esModule",{value:!0});KC.ListPartsCommand=void 0;var c$e=x(),l$e=b(),d$e=$n(),u$e=E(),QW=ee(),JW=W(),Yu=class extends u$e.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{Bucket:{type:"contextParams",name:"Bucket"},ForcePathStyle:{type:"clientContextParams",name:"forcePathStyle"},UseArnRegion:{type:"clientContextParams",name:"useArnRegion"},DisableMultiRegionAccessPoints:{type:"clientContextParams",name:"disableMultiregionAccessPoints"},Accelerate:{type:"clientContextParams",name:"useAccelerateEndpoint"},UseGlobalEndpoint:{type:"builtInParams",name:"useGlobalEndpoint"},UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,l$e.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,c$e.getEndpointPlugin)(t,Yu.getEndpointParameterInstructions())),this.middlewareStack.use((0,d$e.getSsecPlugin)(t));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"S3Client",commandName:"ListPartsCommand",inputFilterSensitiveLog:QW.ListPartsRequestFilterSensitiveLog,outputFilterSensitiveLog:QW.ListPartsOutputFilterSensitiveLog},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,JW.serializeAws_restXmlListPartsCommand)(n,t)}deserialize(n,t){return(0,JW.deserializeAws_restXmlListPartsCommand)(n,t)}};KC.ListPartsCommand=Yu});var zR=u(JC=>{"use strict";Object.defineProperty(JC,"__esModule",{value:!0});JC.PutBucketAccelerateConfigurationCommand=void 0;var m$e=x(),p$e=at(),g$e=b(),y$e=E(),_$e=ee(),YW=W(),Zu=class extends y$e.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{Bucket:{type:"contextParams",name:"Bucket"},ForcePathStyle:{type:"clientContextParams",name:"forcePathStyle"},UseArnRegion:{type:"clientContextParams",name:"useArnRegion"},DisableMultiRegionAccessPoints:{type:"clientContextParams",name:"disableMultiregionAccessPoints"},Accelerate:{type:"clientContextParams",name:"useAccelerateEndpoint"},UseGlobalEndpoint:{type:"builtInParams",name:"useGlobalEndpoint"},UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,g$e.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,m$e.getEndpointPlugin)(t,Zu.getEndpointParameterInstructions())),this.middlewareStack.use((0,p$e.getFlexibleChecksumsPlugin)(t,{input:this.input,requestAlgorithmMember:"ChecksumAlgorithm",requestChecksumRequired:!1}));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"S3Client",commandName:"PutBucketAccelerateConfigurationCommand",inputFilterSensitiveLog:_$e.PutBucketAccelerateConfigurationRequestFilterSensitiveLog,outputFilterSensitiveLog:d=>d},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,YW.serializeAws_restXmlPutBucketAccelerateConfigurationCommand)(n,t)}deserialize(n,t){return(0,YW.deserializeAws_restXmlPutBucketAccelerateConfigurationCommand)(n,t)}};JC.PutBucketAccelerateConfigurationCommand=Zu});var qR=u(YC=>{"use strict";Object.defineProperty(YC,"__esModule",{value:!0});YC.PutBucketAclCommand=void 0;var f$e=x(),S$e=at(),h$e=b(),w$e=E(),E$e=ee(),ZW=W(),em=class extends w$e.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{Bucket:{type:"contextParams",name:"Bucket"},ForcePathStyle:{type:"clientContextParams",name:"forcePathStyle"},UseArnRegion:{type:"clientContextParams",name:"useArnRegion"},DisableMultiRegionAccessPoints:{type:"clientContextParams",name:"disableMultiregionAccessPoints"},Accelerate:{type:"clientContextParams",name:"useAccelerateEndpoint"},UseGlobalEndpoint:{type:"builtInParams",name:"useGlobalEndpoint"},UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,h$e.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,f$e.getEndpointPlugin)(t,em.getEndpointParameterInstructions())),this.middlewareStack.use((0,S$e.getFlexibleChecksumsPlugin)(t,{input:this.input,requestAlgorithmMember:"ChecksumAlgorithm",requestChecksumRequired:!0}));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"S3Client",commandName:"PutBucketAclCommand",inputFilterSensitiveLog:E$e.PutBucketAclRequestFilterSensitiveLog,outputFilterSensitiveLog:d=>d},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,ZW.serializeAws_restXmlPutBucketAclCommand)(n,t)}deserialize(n,t){return(0,ZW.deserializeAws_restXmlPutBucketAclCommand)(n,t)}};YC.PutBucketAclCommand=em});var LR=u(ZC=>{"use strict";Object.defineProperty(ZC,"__esModule",{value:!0});ZC.PutBucketAnalyticsConfigurationCommand=void 0;var C$e=x(),v$e=b(),P$e=E(),A$e=ee(),eK=W(),tm=class extends P$e.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{Bucket:{type:"contextParams",name:"Bucket"},ForcePathStyle:{type:"clientContextParams",name:"forcePathStyle"},UseArnRegion:{type:"clientContextParams",name:"useArnRegion"},DisableMultiRegionAccessPoints:{type:"clientContextParams",name:"disableMultiregionAccessPoints"},Accelerate:{type:"clientContextParams",name:"useAccelerateEndpoint"},UseGlobalEndpoint:{type:"builtInParams",name:"useGlobalEndpoint"},UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,v$e.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,C$e.getEndpointPlugin)(t,tm.getEndpointParameterInstructions()));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"S3Client",commandName:"PutBucketAnalyticsConfigurationCommand",inputFilterSensitiveLog:A$e.PutBucketAnalyticsConfigurationRequestFilterSensitiveLog,outputFilterSensitiveLog:d=>d},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,eK.serializeAws_restXmlPutBucketAnalyticsConfigurationCommand)(n,t)}deserialize(n,t){return(0,eK.deserializeAws_restXmlPutBucketAnalyticsConfigurationCommand)(n,t)}};ZC.PutBucketAnalyticsConfigurationCommand=tm});var FR=u(ev=>{"use strict";Object.defineProperty(ev,"__esModule",{value:!0});ev.PutBucketCorsCommand=void 0;var x$e=x(),b$e=at(),I$e=b(),k$e=E(),R$e=ee(),tK=W(),nm=class extends k$e.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{Bucket:{type:"contextParams",name:"Bucket"},ForcePathStyle:{type:"clientContextParams",name:"forcePathStyle"},UseArnRegion:{type:"clientContextParams",name:"useArnRegion"},DisableMultiRegionAccessPoints:{type:"clientContextParams",name:"disableMultiregionAccessPoints"},Accelerate:{type:"clientContextParams",name:"useAccelerateEndpoint"},UseGlobalEndpoint:{type:"builtInParams",name:"useGlobalEndpoint"},UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,I$e.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,x$e.getEndpointPlugin)(t,nm.getEndpointParameterInstructions())),this.middlewareStack.use((0,b$e.getFlexibleChecksumsPlugin)(t,{input:this.input,requestAlgorithmMember:"ChecksumAlgorithm",requestChecksumRequired:!0}));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"S3Client",commandName:"PutBucketCorsCommand",inputFilterSensitiveLog:R$e.PutBucketCorsRequestFilterSensitiveLog,outputFilterSensitiveLog:d=>d},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,tK.serializeAws_restXmlPutBucketCorsCommand)(n,t)}deserialize(n,t){return(0,tK.deserializeAws_restXmlPutBucketCorsCommand)(n,t)}};ev.PutBucketCorsCommand=nm});var DR=u(tv=>{"use strict";Object.defineProperty(tv,"__esModule",{value:!0});tv.PutBucketEncryptionCommand=void 0;var N$e=x(),z$e=at(),q$e=b(),L$e=E(),F$e=ee(),nK=W(),sm=class extends L$e.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{Bucket:{type:"contextParams",name:"Bucket"},ForcePathStyle:{type:"clientContextParams",name:"forcePathStyle"},UseArnRegion:{type:"clientContextParams",name:"useArnRegion"},DisableMultiRegionAccessPoints:{type:"clientContextParams",name:"disableMultiregionAccessPoints"},Accelerate:{type:"clientContextParams",name:"useAccelerateEndpoint"},UseGlobalEndpoint:{type:"builtInParams",name:"useGlobalEndpoint"},UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,q$e.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,N$e.getEndpointPlugin)(t,sm.getEndpointParameterInstructions())),this.middlewareStack.use((0,z$e.getFlexibleChecksumsPlugin)(t,{input:this.input,requestAlgorithmMember:"ChecksumAlgorithm",requestChecksumRequired:!0}));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"S3Client",commandName:"PutBucketEncryptionCommand",inputFilterSensitiveLog:F$e.PutBucketEncryptionRequestFilterSensitiveLog,outputFilterSensitiveLog:d=>d},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,nK.serializeAws_restXmlPutBucketEncryptionCommand)(n,t)}deserialize(n,t){return(0,nK.deserializeAws_restXmlPutBucketEncryptionCommand)(n,t)}};tv.PutBucketEncryptionCommand=sm});var TR=u(nv=>{"use strict";Object.defineProperty(nv,"__esModule",{value:!0});nv.PutBucketIntelligentTieringConfigurationCommand=void 0;var D$e=x(),T$e=b(),j$e=E(),M$e=ee(),sK=W(),rm=class extends j$e.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{Bucket:{type:"contextParams",name:"Bucket"},ForcePathStyle:{type:"clientContextParams",name:"forcePathStyle"},UseArnRegion:{type:"clientContextParams",name:"useArnRegion"},DisableMultiRegionAccessPoints:{type:"clientContextParams",name:"disableMultiregionAccessPoints"},Accelerate:{type:"clientContextParams",name:"useAccelerateEndpoint"},UseGlobalEndpoint:{type:"builtInParams",name:"useGlobalEndpoint"},UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,T$e.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,D$e.getEndpointPlugin)(t,rm.getEndpointParameterInstructions()));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"S3Client",commandName:"PutBucketIntelligentTieringConfigurationCommand",inputFilterSensitiveLog:M$e.PutBucketIntelligentTieringConfigurationRequestFilterSensitiveLog,outputFilterSensitiveLog:d=>d},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,sK.serializeAws_restXmlPutBucketIntelligentTieringConfigurationCommand)(n,t)}deserialize(n,t){return(0,sK.deserializeAws_restXmlPutBucketIntelligentTieringConfigurationCommand)(n,t)}};nv.PutBucketIntelligentTieringConfigurationCommand=rm});var jR=u(sv=>{"use strict";Object.defineProperty(sv,"__esModule",{value:!0});sv.PutBucketInventoryConfigurationCommand=void 0;var O$e=x(),B$e=b(),G$e=E(),U$e=ee(),rK=W(),im=class extends G$e.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{Bucket:{type:"contextParams",name:"Bucket"},ForcePathStyle:{type:"clientContextParams",name:"forcePathStyle"},UseArnRegion:{type:"clientContextParams",name:"useArnRegion"},DisableMultiRegionAccessPoints:{type:"clientContextParams",name:"disableMultiregionAccessPoints"},Accelerate:{type:"clientContextParams",name:"useAccelerateEndpoint"},UseGlobalEndpoint:{type:"builtInParams",name:"useGlobalEndpoint"},UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,B$e.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,O$e.getEndpointPlugin)(t,im.getEndpointParameterInstructions()));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"S3Client",commandName:"PutBucketInventoryConfigurationCommand",inputFilterSensitiveLog:U$e.PutBucketInventoryConfigurationRequestFilterSensitiveLog,outputFilterSensitiveLog:d=>d},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,rK.serializeAws_restXmlPutBucketInventoryConfigurationCommand)(n,t)}deserialize(n,t){return(0,rK.deserializeAws_restXmlPutBucketInventoryConfigurationCommand)(n,t)}};sv.PutBucketInventoryConfigurationCommand=im});var MR=u(rv=>{"use strict";Object.defineProperty(rv,"__esModule",{value:!0});rv.PutBucketLifecycleConfigurationCommand=void 0;var X$e=x(),$$e=at(),H$e=b(),V$e=E(),W$e=ee(),iK=W(),om=class extends V$e.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{Bucket:{type:"contextParams",name:"Bucket"},ForcePathStyle:{type:"clientContextParams",name:"forcePathStyle"},UseArnRegion:{type:"clientContextParams",name:"useArnRegion"},DisableMultiRegionAccessPoints:{type:"clientContextParams",name:"disableMultiregionAccessPoints"},Accelerate:{type:"clientContextParams",name:"useAccelerateEndpoint"},UseGlobalEndpoint:{type:"builtInParams",name:"useGlobalEndpoint"},UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,H$e.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,X$e.getEndpointPlugin)(t,om.getEndpointParameterInstructions())),this.middlewareStack.use((0,$$e.getFlexibleChecksumsPlugin)(t,{input:this.input,requestAlgorithmMember:"ChecksumAlgorithm",requestChecksumRequired:!0}));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"S3Client",commandName:"PutBucketLifecycleConfigurationCommand",inputFilterSensitiveLog:W$e.PutBucketLifecycleConfigurationRequestFilterSensitiveLog,outputFilterSensitiveLog:d=>d},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,iK.serializeAws_restXmlPutBucketLifecycleConfigurationCommand)(n,t)}deserialize(n,t){return(0,iK.deserializeAws_restXmlPutBucketLifecycleConfigurationCommand)(n,t)}};rv.PutBucketLifecycleConfigurationCommand=om});var OR=u(iv=>{"use strict";Object.defineProperty(iv,"__esModule",{value:!0});iv.PutBucketLoggingCommand=void 0;var K$e=x(),Q$e=at(),J$e=b(),Y$e=E(),Z$e=ee(),oK=W(),am=class extends Y$e.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{Bucket:{type:"contextParams",name:"Bucket"},ForcePathStyle:{type:"clientContextParams",name:"forcePathStyle"},UseArnRegion:{type:"clientContextParams",name:"useArnRegion"},DisableMultiRegionAccessPoints:{type:"clientContextParams",name:"disableMultiregionAccessPoints"},Accelerate:{type:"clientContextParams",name:"useAccelerateEndpoint"},UseGlobalEndpoint:{type:"builtInParams",name:"useGlobalEndpoint"},UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,J$e.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,K$e.getEndpointPlugin)(t,am.getEndpointParameterInstructions())),this.middlewareStack.use((0,Q$e.getFlexibleChecksumsPlugin)(t,{input:this.input,requestAlgorithmMember:"ChecksumAlgorithm",requestChecksumRequired:!0}));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"S3Client",commandName:"PutBucketLoggingCommand",inputFilterSensitiveLog:Z$e.PutBucketLoggingRequestFilterSensitiveLog,outputFilterSensitiveLog:d=>d},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,oK.serializeAws_restXmlPutBucketLoggingCommand)(n,t)}deserialize(n,t){return(0,oK.deserializeAws_restXmlPutBucketLoggingCommand)(n,t)}};iv.PutBucketLoggingCommand=am});var BR=u(ov=>{"use strict";Object.defineProperty(ov,"__esModule",{value:!0});ov.PutBucketMetricsConfigurationCommand=void 0;var eHe=x(),tHe=b(),nHe=E(),sHe=ee(),aK=W(),cm=class extends nHe.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{Bucket:{type:"contextParams",name:"Bucket"},ForcePathStyle:{type:"clientContextParams",name:"forcePathStyle"},UseArnRegion:{type:"clientContextParams",name:"useArnRegion"},DisableMultiRegionAccessPoints:{type:"clientContextParams",name:"disableMultiregionAccessPoints"},Accelerate:{type:"clientContextParams",name:"useAccelerateEndpoint"},UseGlobalEndpoint:{type:"builtInParams",name:"useGlobalEndpoint"},UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,tHe.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,eHe.getEndpointPlugin)(t,cm.getEndpointParameterInstructions()));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"S3Client",commandName:"PutBucketMetricsConfigurationCommand",inputFilterSensitiveLog:sHe.PutBucketMetricsConfigurationRequestFilterSensitiveLog,outputFilterSensitiveLog:d=>d},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,aK.serializeAws_restXmlPutBucketMetricsConfigurationCommand)(n,t)}deserialize(n,t){return(0,aK.deserializeAws_restXmlPutBucketMetricsConfigurationCommand)(n,t)}};ov.PutBucketMetricsConfigurationCommand=cm});var GR=u(av=>{"use strict";Object.defineProperty(av,"__esModule",{value:!0});av.PutBucketNotificationConfigurationCommand=void 0;var rHe=x(),iHe=b(),oHe=E(),aHe=ee(),cK=W(),lm=class extends oHe.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{Bucket:{type:"contextParams",name:"Bucket"},ForcePathStyle:{type:"clientContextParams",name:"forcePathStyle"},UseArnRegion:{type:"clientContextParams",name:"useArnRegion"},DisableMultiRegionAccessPoints:{type:"clientContextParams",name:"disableMultiregionAccessPoints"},Accelerate:{type:"clientContextParams",name:"useAccelerateEndpoint"},UseGlobalEndpoint:{type:"builtInParams",name:"useGlobalEndpoint"},UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,iHe.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,rHe.getEndpointPlugin)(t,lm.getEndpointParameterInstructions()));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"S3Client",commandName:"PutBucketNotificationConfigurationCommand",inputFilterSensitiveLog:aHe.PutBucketNotificationConfigurationRequestFilterSensitiveLog,outputFilterSensitiveLog:d=>d},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,cK.serializeAws_restXmlPutBucketNotificationConfigurationCommand)(n,t)}deserialize(n,t){return(0,cK.deserializeAws_restXmlPutBucketNotificationConfigurationCommand)(n,t)}};av.PutBucketNotificationConfigurationCommand=lm});var UR=u(cv=>{"use strict";Object.defineProperty(cv,"__esModule",{value:!0});cv.PutBucketOwnershipControlsCommand=void 0;var cHe=x(),lHe=at(),dHe=b(),uHe=E(),mHe=ee(),lK=W(),dm=class extends uHe.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{Bucket:{type:"contextParams",name:"Bucket"},ForcePathStyle:{type:"clientContextParams",name:"forcePathStyle"},UseArnRegion:{type:"clientContextParams",name:"useArnRegion"},DisableMultiRegionAccessPoints:{type:"clientContextParams",name:"disableMultiregionAccessPoints"},Accelerate:{type:"clientContextParams",name:"useAccelerateEndpoint"},UseGlobalEndpoint:{type:"builtInParams",name:"useGlobalEndpoint"},UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,dHe.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,cHe.getEndpointPlugin)(t,dm.getEndpointParameterInstructions())),this.middlewareStack.use((0,lHe.getFlexibleChecksumsPlugin)(t,{input:this.input,requestChecksumRequired:!0}));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"S3Client",commandName:"PutBucketOwnershipControlsCommand",inputFilterSensitiveLog:mHe.PutBucketOwnershipControlsRequestFilterSensitiveLog,outputFilterSensitiveLog:d=>d},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,lK.serializeAws_restXmlPutBucketOwnershipControlsCommand)(n,t)}deserialize(n,t){return(0,lK.deserializeAws_restXmlPutBucketOwnershipControlsCommand)(n,t)}};cv.PutBucketOwnershipControlsCommand=dm});var XR=u(lv=>{"use strict";Object.defineProperty(lv,"__esModule",{value:!0});lv.PutBucketPolicyCommand=void 0;var pHe=x(),gHe=at(),yHe=b(),_He=E(),fHe=ee(),dK=W(),um=class extends _He.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{Bucket:{type:"contextParams",name:"Bucket"},ForcePathStyle:{type:"clientContextParams",name:"forcePathStyle"},UseArnRegion:{type:"clientContextParams",name:"useArnRegion"},DisableMultiRegionAccessPoints:{type:"clientContextParams",name:"disableMultiregionAccessPoints"},Accelerate:{type:"clientContextParams",name:"useAccelerateEndpoint"},UseGlobalEndpoint:{type:"builtInParams",name:"useGlobalEndpoint"},UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,yHe.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,pHe.getEndpointPlugin)(t,um.getEndpointParameterInstructions())),this.middlewareStack.use((0,gHe.getFlexibleChecksumsPlugin)(t,{input:this.input,requestAlgorithmMember:"ChecksumAlgorithm",requestChecksumRequired:!0}));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"S3Client",commandName:"PutBucketPolicyCommand",inputFilterSensitiveLog:fHe.PutBucketPolicyRequestFilterSensitiveLog,outputFilterSensitiveLog:d=>d},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,dK.serializeAws_restXmlPutBucketPolicyCommand)(n,t)}deserialize(n,t){return(0,dK.deserializeAws_restXmlPutBucketPolicyCommand)(n,t)}};lv.PutBucketPolicyCommand=um});var $R=u(dv=>{"use strict";Object.defineProperty(dv,"__esModule",{value:!0});dv.PutBucketReplicationCommand=void 0;var SHe=x(),hHe=at(),wHe=b(),EHe=E(),CHe=ee(),uK=W(),mm=class extends EHe.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{Bucket:{type:"contextParams",name:"Bucket"},ForcePathStyle:{type:"clientContextParams",name:"forcePathStyle"},UseArnRegion:{type:"clientContextParams",name:"useArnRegion"},DisableMultiRegionAccessPoints:{type:"clientContextParams",name:"disableMultiregionAccessPoints"},Accelerate:{type:"clientContextParams",name:"useAccelerateEndpoint"},UseGlobalEndpoint:{type:"builtInParams",name:"useGlobalEndpoint"},UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,wHe.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,SHe.getEndpointPlugin)(t,mm.getEndpointParameterInstructions())),this.middlewareStack.use((0,hHe.getFlexibleChecksumsPlugin)(t,{input:this.input,requestAlgorithmMember:"ChecksumAlgorithm",requestChecksumRequired:!0}));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"S3Client",commandName:"PutBucketReplicationCommand",inputFilterSensitiveLog:CHe.PutBucketReplicationRequestFilterSensitiveLog,outputFilterSensitiveLog:d=>d},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,uK.serializeAws_restXmlPutBucketReplicationCommand)(n,t)}deserialize(n,t){return(0,uK.deserializeAws_restXmlPutBucketReplicationCommand)(n,t)}};dv.PutBucketReplicationCommand=mm});var HR=u(uv=>{"use strict";Object.defineProperty(uv,"__esModule",{value:!0});uv.PutBucketRequestPaymentCommand=void 0;var vHe=x(),PHe=at(),AHe=b(),xHe=E(),bHe=ee(),mK=W(),pm=class extends xHe.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{Bucket:{type:"contextParams",name:"Bucket"},ForcePathStyle:{type:"clientContextParams",name:"forcePathStyle"},UseArnRegion:{type:"clientContextParams",name:"useArnRegion"},DisableMultiRegionAccessPoints:{type:"clientContextParams",name:"disableMultiregionAccessPoints"},Accelerate:{type:"clientContextParams",name:"useAccelerateEndpoint"},UseGlobalEndpoint:{type:"builtInParams",name:"useGlobalEndpoint"},UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,AHe.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,vHe.getEndpointPlugin)(t,pm.getEndpointParameterInstructions())),this.middlewareStack.use((0,PHe.getFlexibleChecksumsPlugin)(t,{input:this.input,requestAlgorithmMember:"ChecksumAlgorithm",requestChecksumRequired:!0}));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"S3Client",commandName:"PutBucketRequestPaymentCommand",inputFilterSensitiveLog:bHe.PutBucketRequestPaymentRequestFilterSensitiveLog,outputFilterSensitiveLog:d=>d},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,mK.serializeAws_restXmlPutBucketRequestPaymentCommand)(n,t)}deserialize(n,t){return(0,mK.deserializeAws_restXmlPutBucketRequestPaymentCommand)(n,t)}};uv.PutBucketRequestPaymentCommand=pm});var VR=u(mv=>{"use strict";Object.defineProperty(mv,"__esModule",{value:!0});mv.PutBucketTaggingCommand=void 0;var IHe=x(),kHe=at(),RHe=b(),NHe=E(),zHe=ee(),pK=W(),gm=class extends NHe.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{Bucket:{type:"contextParams",name:"Bucket"},ForcePathStyle:{type:"clientContextParams",name:"forcePathStyle"},UseArnRegion:{type:"clientContextParams",name:"useArnRegion"},DisableMultiRegionAccessPoints:{type:"clientContextParams",name:"disableMultiregionAccessPoints"},Accelerate:{type:"clientContextParams",name:"useAccelerateEndpoint"},UseGlobalEndpoint:{type:"builtInParams",name:"useGlobalEndpoint"},UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,RHe.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,IHe.getEndpointPlugin)(t,gm.getEndpointParameterInstructions())),this.middlewareStack.use((0,kHe.getFlexibleChecksumsPlugin)(t,{input:this.input,requestAlgorithmMember:"ChecksumAlgorithm",requestChecksumRequired:!0}));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"S3Client",commandName:"PutBucketTaggingCommand",inputFilterSensitiveLog:zHe.PutBucketTaggingRequestFilterSensitiveLog,outputFilterSensitiveLog:d=>d},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,pK.serializeAws_restXmlPutBucketTaggingCommand)(n,t)}deserialize(n,t){return(0,pK.deserializeAws_restXmlPutBucketTaggingCommand)(n,t)}};mv.PutBucketTaggingCommand=gm});var WR=u(pv=>{"use strict";Object.defineProperty(pv,"__esModule",{value:!0});pv.PutBucketVersioningCommand=void 0;var qHe=x(),LHe=at(),FHe=b(),DHe=E(),THe=ee(),gK=W(),ym=class extends DHe.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{Bucket:{type:"contextParams",name:"Bucket"},ForcePathStyle:{type:"clientContextParams",name:"forcePathStyle"},UseArnRegion:{type:"clientContextParams",name:"useArnRegion"},DisableMultiRegionAccessPoints:{type:"clientContextParams",name:"disableMultiregionAccessPoints"},Accelerate:{type:"clientContextParams",name:"useAccelerateEndpoint"},UseGlobalEndpoint:{type:"builtInParams",name:"useGlobalEndpoint"},UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,FHe.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,qHe.getEndpointPlugin)(t,ym.getEndpointParameterInstructions())),this.middlewareStack.use((0,LHe.getFlexibleChecksumsPlugin)(t,{input:this.input,requestAlgorithmMember:"ChecksumAlgorithm",requestChecksumRequired:!0}));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"S3Client",commandName:"PutBucketVersioningCommand",inputFilterSensitiveLog:THe.PutBucketVersioningRequestFilterSensitiveLog,outputFilterSensitiveLog:d=>d},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,gK.serializeAws_restXmlPutBucketVersioningCommand)(n,t)}deserialize(n,t){return(0,gK.deserializeAws_restXmlPutBucketVersioningCommand)(n,t)}};pv.PutBucketVersioningCommand=ym});var KR=u(gv=>{"use strict";Object.defineProperty(gv,"__esModule",{value:!0});gv.PutBucketWebsiteCommand=void 0;var jHe=x(),MHe=at(),OHe=b(),BHe=E(),GHe=ee(),yK=W(),_m=class extends BHe.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{Bucket:{type:"contextParams",name:"Bucket"},ForcePathStyle:{type:"clientContextParams",name:"forcePathStyle"},UseArnRegion:{type:"clientContextParams",name:"useArnRegion"},DisableMultiRegionAccessPoints:{type:"clientContextParams",name:"disableMultiregionAccessPoints"},Accelerate:{type:"clientContextParams",name:"useAccelerateEndpoint"},UseGlobalEndpoint:{type:"builtInParams",name:"useGlobalEndpoint"},UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,OHe.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,jHe.getEndpointPlugin)(t,_m.getEndpointParameterInstructions())),this.middlewareStack.use((0,MHe.getFlexibleChecksumsPlugin)(t,{input:this.input,requestAlgorithmMember:"ChecksumAlgorithm",requestChecksumRequired:!0}));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"S3Client",commandName:"PutBucketWebsiteCommand",inputFilterSensitiveLog:GHe.PutBucketWebsiteRequestFilterSensitiveLog,outputFilterSensitiveLog:d=>d},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,yK.serializeAws_restXmlPutBucketWebsiteCommand)(n,t)}deserialize(n,t){return(0,yK.deserializeAws_restXmlPutBucketWebsiteCommand)(n,t)}};gv.PutBucketWebsiteCommand=_m});var QR=u(yv=>{"use strict";Object.defineProperty(yv,"__esModule",{value:!0});yv.PutObjectAclCommand=void 0;var UHe=x(),XHe=at(),$He=b(),HHe=E(),_K=ee(),fK=W(),fm=class extends HHe.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{Bucket:{type:"contextParams",name:"Bucket"},ForcePathStyle:{type:"clientContextParams",name:"forcePathStyle"},UseArnRegion:{type:"clientContextParams",name:"useArnRegion"},DisableMultiRegionAccessPoints:{type:"clientContextParams",name:"disableMultiregionAccessPoints"},Accelerate:{type:"clientContextParams",name:"useAccelerateEndpoint"},UseGlobalEndpoint:{type:"builtInParams",name:"useGlobalEndpoint"},UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,$He.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,UHe.getEndpointPlugin)(t,fm.getEndpointParameterInstructions())),this.middlewareStack.use((0,XHe.getFlexibleChecksumsPlugin)(t,{input:this.input,requestAlgorithmMember:"ChecksumAlgorithm",requestChecksumRequired:!0}));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"S3Client",commandName:"PutObjectAclCommand",inputFilterSensitiveLog:_K.PutObjectAclRequestFilterSensitiveLog,outputFilterSensitiveLog:_K.PutObjectAclOutputFilterSensitiveLog},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,fK.serializeAws_restXmlPutObjectAclCommand)(n,t)}deserialize(n,t){return(0,fK.deserializeAws_restXmlPutObjectAclCommand)(n,t)}};yv.PutObjectAclCommand=fm});var JR=u(_v=>{"use strict";Object.defineProperty(_v,"__esModule",{value:!0});_v.PutObjectCommand=void 0;var VHe=x(),WHe=at(),KHe=bo(),QHe=b(),JHe=$n(),YHe=E(),SK=ee(),hK=W(),Sm=class extends YHe.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{Bucket:{type:"contextParams",name:"Bucket"},ForcePathStyle:{type:"clientContextParams",name:"forcePathStyle"},UseArnRegion:{type:"clientContextParams",name:"useArnRegion"},DisableMultiRegionAccessPoints:{type:"clientContextParams",name:"disableMultiregionAccessPoints"},Accelerate:{type:"clientContextParams",name:"useAccelerateEndpoint"},UseGlobalEndpoint:{type:"builtInParams",name:"useGlobalEndpoint"},UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,QHe.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,VHe.getEndpointPlugin)(t,Sm.getEndpointParameterInstructions())),this.middlewareStack.use((0,KHe.getCheckContentLengthHeaderPlugin)(t)),this.middlewareStack.use((0,JHe.getSsecPlugin)(t)),this.middlewareStack.use((0,WHe.getFlexibleChecksumsPlugin)(t,{input:this.input,requestAlgorithmMember:"ChecksumAlgorithm",requestChecksumRequired:!1}));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"S3Client",commandName:"PutObjectCommand",inputFilterSensitiveLog:SK.PutObjectRequestFilterSensitiveLog,outputFilterSensitiveLog:SK.PutObjectOutputFilterSensitiveLog},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,hK.serializeAws_restXmlPutObjectCommand)(n,t)}deserialize(n,t){return(0,hK.deserializeAws_restXmlPutObjectCommand)(n,t)}};_v.PutObjectCommand=Sm});var YR=u(fv=>{"use strict";Object.defineProperty(fv,"__esModule",{value:!0});fv.PutObjectLegalHoldCommand=void 0;var ZHe=x(),eVe=at(),tVe=b(),nVe=E(),wK=ee(),EK=W(),hm=class extends nVe.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{Bucket:{type:"contextParams",name:"Bucket"},ForcePathStyle:{type:"clientContextParams",name:"forcePathStyle"},UseArnRegion:{type:"clientContextParams",name:"useArnRegion"},DisableMultiRegionAccessPoints:{type:"clientContextParams",name:"disableMultiregionAccessPoints"},Accelerate:{type:"clientContextParams",name:"useAccelerateEndpoint"},UseGlobalEndpoint:{type:"builtInParams",name:"useGlobalEndpoint"},UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,tVe.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,ZHe.getEndpointPlugin)(t,hm.getEndpointParameterInstructions())),this.middlewareStack.use((0,eVe.getFlexibleChecksumsPlugin)(t,{input:this.input,requestAlgorithmMember:"ChecksumAlgorithm",requestChecksumRequired:!0}));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"S3Client",commandName:"PutObjectLegalHoldCommand",inputFilterSensitiveLog:wK.PutObjectLegalHoldRequestFilterSensitiveLog,outputFilterSensitiveLog:wK.PutObjectLegalHoldOutputFilterSensitiveLog},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,EK.serializeAws_restXmlPutObjectLegalHoldCommand)(n,t)}deserialize(n,t){return(0,EK.deserializeAws_restXmlPutObjectLegalHoldCommand)(n,t)}};fv.PutObjectLegalHoldCommand=hm});var ZR=u(Sv=>{"use strict";Object.defineProperty(Sv,"__esModule",{value:!0});Sv.PutObjectLockConfigurationCommand=void 0;var sVe=x(),rVe=at(),iVe=b(),oVe=E(),CK=ee(),vK=W(),wm=class extends oVe.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{Bucket:{type:"contextParams",name:"Bucket"},ForcePathStyle:{type:"clientContextParams",name:"forcePathStyle"},UseArnRegion:{type:"clientContextParams",name:"useArnRegion"},DisableMultiRegionAccessPoints:{type:"clientContextParams",name:"disableMultiregionAccessPoints"},Accelerate:{type:"clientContextParams",name:"useAccelerateEndpoint"},UseGlobalEndpoint:{type:"builtInParams",name:"useGlobalEndpoint"},UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,iVe.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,sVe.getEndpointPlugin)(t,wm.getEndpointParameterInstructions())),this.middlewareStack.use((0,rVe.getFlexibleChecksumsPlugin)(t,{input:this.input,requestAlgorithmMember:"ChecksumAlgorithm",requestChecksumRequired:!0}));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"S3Client",commandName:"PutObjectLockConfigurationCommand",inputFilterSensitiveLog:CK.PutObjectLockConfigurationRequestFilterSensitiveLog,outputFilterSensitiveLog:CK.PutObjectLockConfigurationOutputFilterSensitiveLog},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,vK.serializeAws_restXmlPutObjectLockConfigurationCommand)(n,t)}deserialize(n,t){return(0,vK.deserializeAws_restXmlPutObjectLockConfigurationCommand)(n,t)}};Sv.PutObjectLockConfigurationCommand=wm});var eN=u(hv=>{"use strict";Object.defineProperty(hv,"__esModule",{value:!0});hv.PutObjectRetentionCommand=void 0;var aVe=x(),cVe=at(),lVe=b(),dVe=E(),PK=Zn(),AK=W(),Em=class extends dVe.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{Bucket:{type:"contextParams",name:"Bucket"},ForcePathStyle:{type:"clientContextParams",name:"forcePathStyle"},UseArnRegion:{type:"clientContextParams",name:"useArnRegion"},DisableMultiRegionAccessPoints:{type:"clientContextParams",name:"disableMultiregionAccessPoints"},Accelerate:{type:"clientContextParams",name:"useAccelerateEndpoint"},UseGlobalEndpoint:{type:"builtInParams",name:"useGlobalEndpoint"},UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,lVe.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,aVe.getEndpointPlugin)(t,Em.getEndpointParameterInstructions())),this.middlewareStack.use((0,cVe.getFlexibleChecksumsPlugin)(t,{input:this.input,requestAlgorithmMember:"ChecksumAlgorithm",requestChecksumRequired:!0}));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"S3Client",commandName:"PutObjectRetentionCommand",inputFilterSensitiveLog:PK.PutObjectRetentionRequestFilterSensitiveLog,outputFilterSensitiveLog:PK.PutObjectRetentionOutputFilterSensitiveLog},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,AK.serializeAws_restXmlPutObjectRetentionCommand)(n,t)}deserialize(n,t){return(0,AK.deserializeAws_restXmlPutObjectRetentionCommand)(n,t)}};hv.PutObjectRetentionCommand=Em});var tN=u(wv=>{"use strict";Object.defineProperty(wv,"__esModule",{value:!0});wv.PutObjectTaggingCommand=void 0;var uVe=x(),mVe=at(),pVe=b(),gVe=E(),xK=Zn(),bK=W(),Cm=class extends gVe.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{Bucket:{type:"contextParams",name:"Bucket"},ForcePathStyle:{type:"clientContextParams",name:"forcePathStyle"},UseArnRegion:{type:"clientContextParams",name:"useArnRegion"},DisableMultiRegionAccessPoints:{type:"clientContextParams",name:"disableMultiregionAccessPoints"},Accelerate:{type:"clientContextParams",name:"useAccelerateEndpoint"},UseGlobalEndpoint:{type:"builtInParams",name:"useGlobalEndpoint"},UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,pVe.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,uVe.getEndpointPlugin)(t,Cm.getEndpointParameterInstructions())),this.middlewareStack.use((0,mVe.getFlexibleChecksumsPlugin)(t,{input:this.input,requestAlgorithmMember:"ChecksumAlgorithm",requestChecksumRequired:!0}));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"S3Client",commandName:"PutObjectTaggingCommand",inputFilterSensitiveLog:xK.PutObjectTaggingRequestFilterSensitiveLog,outputFilterSensitiveLog:xK.PutObjectTaggingOutputFilterSensitiveLog},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,bK.serializeAws_restXmlPutObjectTaggingCommand)(n,t)}deserialize(n,t){return(0,bK.deserializeAws_restXmlPutObjectTaggingCommand)(n,t)}};wv.PutObjectTaggingCommand=Cm});var nN=u(Ev=>{"use strict";Object.defineProperty(Ev,"__esModule",{value:!0});Ev.PutPublicAccessBlockCommand=void 0;var yVe=x(),_Ve=at(),fVe=b(),SVe=E(),hVe=Zn(),IK=W(),vm=class extends SVe.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{Bucket:{type:"contextParams",name:"Bucket"},ForcePathStyle:{type:"clientContextParams",name:"forcePathStyle"},UseArnRegion:{type:"clientContextParams",name:"useArnRegion"},DisableMultiRegionAccessPoints:{type:"clientContextParams",name:"disableMultiregionAccessPoints"},Accelerate:{type:"clientContextParams",name:"useAccelerateEndpoint"},UseGlobalEndpoint:{type:"builtInParams",name:"useGlobalEndpoint"},UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,fVe.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,yVe.getEndpointPlugin)(t,vm.getEndpointParameterInstructions())),this.middlewareStack.use((0,_Ve.getFlexibleChecksumsPlugin)(t,{input:this.input,requestAlgorithmMember:"ChecksumAlgorithm",requestChecksumRequired:!0}));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"S3Client",commandName:"PutPublicAccessBlockCommand",inputFilterSensitiveLog:hVe.PutPublicAccessBlockRequestFilterSensitiveLog,outputFilterSensitiveLog:d=>d},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,IK.serializeAws_restXmlPutPublicAccessBlockCommand)(n,t)}deserialize(n,t){return(0,IK.deserializeAws_restXmlPutPublicAccessBlockCommand)(n,t)}};Ev.PutPublicAccessBlockCommand=vm});var sN=u(Cv=>{"use strict";Object.defineProperty(Cv,"__esModule",{value:!0});Cv.RestoreObjectCommand=void 0;var wVe=x(),EVe=at(),CVe=b(),vVe=E(),kK=Zn(),RK=W(),Pm=class extends vVe.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{Bucket:{type:"contextParams",name:"Bucket"},ForcePathStyle:{type:"clientContextParams",name:"forcePathStyle"},UseArnRegion:{type:"clientContextParams",name:"useArnRegion"},DisableMultiRegionAccessPoints:{type:"clientContextParams",name:"disableMultiregionAccessPoints"},Accelerate:{type:"clientContextParams",name:"useAccelerateEndpoint"},UseGlobalEndpoint:{type:"builtInParams",name:"useGlobalEndpoint"},UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,CVe.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,wVe.getEndpointPlugin)(t,Pm.getEndpointParameterInstructions())),this.middlewareStack.use((0,EVe.getFlexibleChecksumsPlugin)(t,{input:this.input,requestAlgorithmMember:"ChecksumAlgorithm",requestChecksumRequired:!1}));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"S3Client",commandName:"RestoreObjectCommand",inputFilterSensitiveLog:kK.RestoreObjectRequestFilterSensitiveLog,outputFilterSensitiveLog:kK.RestoreObjectOutputFilterSensitiveLog},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,RK.serializeAws_restXmlRestoreObjectCommand)(n,t)}deserialize(n,t){return(0,RK.deserializeAws_restXmlRestoreObjectCommand)(n,t)}};Cv.RestoreObjectCommand=Pm});var rN=u(vv=>{"use strict";Object.defineProperty(vv,"__esModule",{value:!0});vv.SelectObjectContentCommand=void 0;var PVe=x(),AVe=b(),xVe=$n(),bVe=E(),NK=Zn(),zK=W(),Am=class extends bVe.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{Bucket:{type:"contextParams",name:"Bucket"},ForcePathStyle:{type:"clientContextParams",name:"forcePathStyle"},UseArnRegion:{type:"clientContextParams",name:"useArnRegion"},DisableMultiRegionAccessPoints:{type:"clientContextParams",name:"disableMultiregionAccessPoints"},Accelerate:{type:"clientContextParams",name:"useAccelerateEndpoint"},UseGlobalEndpoint:{type:"builtInParams",name:"useGlobalEndpoint"},UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,AVe.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,PVe.getEndpointPlugin)(t,Am.getEndpointParameterInstructions())),this.middlewareStack.use((0,xVe.getSsecPlugin)(t));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"S3Client",commandName:"SelectObjectContentCommand",inputFilterSensitiveLog:NK.SelectObjectContentRequestFilterSensitiveLog,outputFilterSensitiveLog:NK.SelectObjectContentOutputFilterSensitiveLog},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,zK.serializeAws_restXmlSelectObjectContentCommand)(n,t)}deserialize(n,t){return(0,zK.deserializeAws_restXmlSelectObjectContentCommand)(n,t)}};vv.SelectObjectContentCommand=Am});var iN=u(Pv=>{"use strict";Object.defineProperty(Pv,"__esModule",{value:!0});Pv.UploadPartCommand=void 0;var IVe=x(),kVe=at(),RVe=b(),NVe=$n(),zVe=E(),qK=Zn(),LK=W(),xm=class extends zVe.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{Bucket:{type:"contextParams",name:"Bucket"},ForcePathStyle:{type:"clientContextParams",name:"forcePathStyle"},UseArnRegion:{type:"clientContextParams",name:"useArnRegion"},DisableMultiRegionAccessPoints:{type:"clientContextParams",name:"disableMultiregionAccessPoints"},Accelerate:{type:"clientContextParams",name:"useAccelerateEndpoint"},UseGlobalEndpoint:{type:"builtInParams",name:"useGlobalEndpoint"},UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,RVe.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,IVe.getEndpointPlugin)(t,xm.getEndpointParameterInstructions())),this.middlewareStack.use((0,NVe.getSsecPlugin)(t)),this.middlewareStack.use((0,kVe.getFlexibleChecksumsPlugin)(t,{input:this.input,requestAlgorithmMember:"ChecksumAlgorithm",requestChecksumRequired:!1}));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"S3Client",commandName:"UploadPartCommand",inputFilterSensitiveLog:qK.UploadPartRequestFilterSensitiveLog,outputFilterSensitiveLog:qK.UploadPartOutputFilterSensitiveLog},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,LK.serializeAws_restXmlUploadPartCommand)(n,t)}deserialize(n,t){return(0,LK.deserializeAws_restXmlUploadPartCommand)(n,t)}};Pv.UploadPartCommand=xm});var oN=u(Av=>{"use strict";Object.defineProperty(Av,"__esModule",{value:!0});Av.UploadPartCopyCommand=void 0;var qVe=x(),LVe=bo(),FVe=b(),DVe=$n(),TVe=E(),FK=Zn(),DK=W(),bm=class extends TVe.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{Bucket:{type:"contextParams",name:"Bucket"},ForcePathStyle:{type:"clientContextParams",name:"forcePathStyle"},UseArnRegion:{type:"clientContextParams",name:"useArnRegion"},DisableMultiRegionAccessPoints:{type:"clientContextParams",name:"disableMultiregionAccessPoints"},Accelerate:{type:"clientContextParams",name:"useAccelerateEndpoint"},UseGlobalEndpoint:{type:"builtInParams",name:"useGlobalEndpoint"},UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,FVe.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,qVe.getEndpointPlugin)(t,bm.getEndpointParameterInstructions())),this.middlewareStack.use((0,LVe.getThrow200ExceptionsPlugin)(t)),this.middlewareStack.use((0,DVe.getSsecPlugin)(t));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"S3Client",commandName:"UploadPartCopyCommand",inputFilterSensitiveLog:FK.UploadPartCopyRequestFilterSensitiveLog,outputFilterSensitiveLog:FK.UploadPartCopyOutputFilterSensitiveLog},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,DK.serializeAws_restXmlUploadPartCopyCommand)(n,t)}deserialize(n,t){return(0,DK.deserializeAws_restXmlUploadPartCopyCommand)(n,t)}};Av.UploadPartCopyCommand=bm});var aN=u(xv=>{"use strict";Object.defineProperty(xv,"__esModule",{value:!0});xv.WriteGetObjectResponseCommand=void 0;var jVe=x(),MVe=b(),OVe=E(),BVe=Zn(),TK=W(),Im=class extends OVe.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{UseObjectLambdaEndpoint:{type:"staticContextParams",value:!0},ForcePathStyle:{type:"clientContextParams",name:"forcePathStyle"},UseArnRegion:{type:"clientContextParams",name:"useArnRegion"},DisableMultiRegionAccessPoints:{type:"clientContextParams",name:"disableMultiregionAccessPoints"},Accelerate:{type:"clientContextParams",name:"useAccelerateEndpoint"},UseGlobalEndpoint:{type:"builtInParams",name:"useGlobalEndpoint"},UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,MVe.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,jVe.getEndpointPlugin)(t,Im.getEndpointParameterInstructions()));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"S3Client",commandName:"WriteGetObjectResponseCommand",inputFilterSensitiveLog:BVe.WriteGetObjectResponseRequestFilterSensitiveLog,outputFilterSensitiveLog:d=>d},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,TK.serializeAws_restXmlWriteGetObjectResponseCommand)(n,t)}deserialize(n,t){return(0,TK.deserializeAws_restXmlWriteGetObjectResponseCommand)(n,t)}};xv.WriteGetObjectResponseCommand=Im});var jK=u(bv=>{"use strict";Object.defineProperty(bv,"__esModule",{value:!0});bv.resolveEventStreamSerdeConfig=void 0;var GVe=e=>({...e,eventStreamMarshaller:e.eventStreamSerdeProvider(e)});bv.resolveEventStreamSerdeConfig=GVe});var MK=u(cN=>{"use strict";Object.defineProperty(cN,"__esModule",{value:!0});var UVe=X();UVe.__exportStar(jK(),cN)});var BK=u(mr=>{"use strict";Object.defineProperty(mr,"__esModule",{value:!0});mr.getAddExpectContinuePlugin=mr.addExpectContinueMiddlewareOptions=mr.addExpectContinueMiddleware=void 0;var XVe=gt();function OK(e){return n=>async t=>{let{request:s}=t;return XVe.HttpRequest.isInstance(s)&&s.body&&e.runtime==="node"&&(s.headers={...s.headers,Expect:"100-continue"}),n({...t,request:s})}}mr.addExpectContinueMiddleware=OK;mr.addExpectContinueMiddlewareOptions={step:"build",tags:["SET_EXPECT_HEADER","EXPECT_HEADER"],name:"addExpectContinueMiddleware",override:!0};var $Ve=e=>({applyToStack:n=>{n.add(OK(e),mr.addExpectContinueMiddlewareOptions)}});mr.getAddExpectContinuePlugin=$Ve});var GK=u(Iv=>{"use strict";Object.defineProperty(Iv,"__esModule",{value:!0});Iv.resolveClientEndpointParameters=void 0;var HVe=e=>({...e,useFipsEndpoint:e.useFipsEndpoint??!1,useDualstackEndpoint:e.useDualstackEndpoint??!1,useAccelerateEndpoint:e.useAccelerateEndpoint??!1,useGlobalEndpoint:e.useGlobalEndpoint??!1,disableMultiregionAccessPoints:e.disableMultiregionAccessPoints??!1,defaultSigningName:"s3"});Iv.resolveClientEndpointParameters=HVe});var UK=u((YEt,VVe)=>{VVe.exports={name:"@aws-sdk/client-s3",description:"AWS SDK for JavaScript S3 Client for Node.js, Browser and React Native",version:"3.282.0",scripts:{build:"concurrently 'yarn:build:cjs' 'yarn:build:es' 'yarn:build:types'","build:cjs":"tsc -p tsconfig.cjs.json","build:docs":"typedoc","build:es":"tsc -p tsconfig.es.json","build:include:deps":"lerna run --scope $npm_package_name --include-dependencies build","build:types":"tsc -p tsconfig.types.json","build:types:downlevel":"downlevel-dts dist-types dist-types/ts3.4",clean:"rimraf ./dist-* && rimraf *.tsbuildinfo","generate:client":"node ../../scripts/generate-clients/single-service --solo s3",test:"yarn test:unit","test:e2e":"ts-mocha test/**/*.ispec.ts && karma start karma.conf.js","test:unit":"ts-mocha test/**/*.spec.ts"},main:"./dist-cjs/index.js",types:"./dist-types/index.d.ts",module:"./dist-es/index.js",sideEffects:!1,dependencies:{"@aws-crypto/sha1-browser":"3.0.0","@aws-crypto/sha256-browser":"3.0.0","@aws-crypto/sha256-js":"3.0.0","@aws-sdk/client-sts":"3.282.0","@aws-sdk/config-resolver":"3.282.0","@aws-sdk/credential-provider-node":"3.282.0","@aws-sdk/eventstream-serde-browser":"3.272.0","@aws-sdk/eventstream-serde-config-resolver":"3.272.0","@aws-sdk/eventstream-serde-node":"3.272.0","@aws-sdk/fetch-http-handler":"3.282.0","@aws-sdk/hash-blob-browser":"3.272.0","@aws-sdk/hash-node":"3.272.0","@aws-sdk/hash-stream-node":"3.272.0","@aws-sdk/invalid-dependency":"3.272.0","@aws-sdk/md5-js":"3.272.0","@aws-sdk/middleware-bucket-endpoint":"3.282.0","@aws-sdk/middleware-content-length":"3.282.0","@aws-sdk/middleware-endpoint":"3.282.0","@aws-sdk/middleware-expect-continue":"3.282.0","@aws-sdk/middleware-flexible-checksums":"3.282.0","@aws-sdk/middleware-host-header":"3.282.0","@aws-sdk/middleware-location-constraint":"3.272.0","@aws-sdk/middleware-logger":"3.272.0","@aws-sdk/middleware-recursion-detection":"3.282.0","@aws-sdk/middleware-retry":"3.282.0","@aws-sdk/middleware-sdk-s3":"3.282.0","@aws-sdk/middleware-serde":"3.272.0","@aws-sdk/middleware-signing":"3.282.0","@aws-sdk/middleware-ssec":"3.272.0","@aws-sdk/middleware-stack":"3.272.0","@aws-sdk/middleware-user-agent":"3.282.0","@aws-sdk/node-config-provider":"3.272.0","@aws-sdk/node-http-handler":"3.282.0","@aws-sdk/protocol-http":"3.282.0","@aws-sdk/signature-v4-multi-region":"3.282.0","@aws-sdk/smithy-client":"3.279.0","@aws-sdk/types":"3.272.0","@aws-sdk/url-parser":"3.272.0","@aws-sdk/util-base64":"3.208.0","@aws-sdk/util-body-length-browser":"3.188.0","@aws-sdk/util-body-length-node":"3.208.0","@aws-sdk/util-defaults-mode-browser":"3.279.0","@aws-sdk/util-defaults-mode-node":"3.282.0","@aws-sdk/util-endpoints":"3.272.0","@aws-sdk/util-retry":"3.272.0","@aws-sdk/util-stream-browser":"3.282.0","@aws-sdk/util-stream-node":"3.282.0","@aws-sdk/util-user-agent-browser":"3.282.0","@aws-sdk/util-user-agent-node":"3.282.0","@aws-sdk/util-utf8":"3.254.0","@aws-sdk/util-waiter":"3.272.0","@aws-sdk/xml-builder":"3.201.0","fast-xml-parser":"4.1.2",tslib:"^2.3.1"},devDependencies:{"@aws-sdk/service-client-documentation-generator":"3.208.0","@tsconfig/node14":"1.0.3","@types/chai":"^4.2.11","@types/mocha":"^8.0.4","@types/node":"^14.14.31",concurrently:"7.0.0","downlevel-dts":"0.10.1",rimraf:"3.0.2",typedoc:"0.19.2",typescript:"~4.6.2"},overrides:{typedoc:{typescript:"~4.6.2"}},engines:{node:">=14.0.0"},typesVersions:{"<4.0":{"dist-types/*":["dist-types/ts3.4/*"]}},files:["dist-*"],author:{name:"AWS SDK for JavaScript Team",url:"https://aws.amazon.com/javascript/"},license:"Apache-2.0",browser:{"./dist-es/runtimeConfig":"./dist-es/runtimeConfig.browser"},"react-native":{"./dist-es/runtimeConfig":"./dist-es/runtimeConfig.native"},homepage:"https://github.com/aws/aws-sdk-js-v3/tree/main/clients/client-s3",repository:{type:"git",url:"https://github.com/aws/aws-sdk-js-v3.git",directory:"clients/client-s3"}}});var lN=u(kv=>{"use strict";Object.defineProperty(kv,"__esModule",{value:!0});kv.Int64=void 0;var WVe=Ki(),km=class{constructor(n){if(this.bytes=n,n.byteLength!==8)throw new Error("Int64 buffers must be exactly 8 bytes")}static fromNumber(n){if(n>9223372036854776e3||n<-9223372036854776e3)throw new Error(`${n} is too large (or, if negative, too small) to represent as an Int64`);let t=new Uint8Array(8);for(let s=7,r=Math.abs(Math.round(n));s>-1&&r>0;s--,r/=256)t[s]=r;return n<0&&XK(t),new km(t)}valueOf(){let n=this.bytes.slice(0),t=n[0]&128;return t&&XK(n),parseInt((0,WVe.toHex)(n),16)*(t?-1:1)}toString(){return String(this.valueOf())}};kv.Int64=km;function XK(e){for(let n=0;n<8;n++)e[n]^=255;for(let n=7;n>-1&&(e[n]++,e[n]===0);n--);}});var VK=u(Rv=>{"use strict";Object.defineProperty(Rv,"__esModule",{value:!0});Rv.HeaderMarshaller=void 0;var Fo=Ki(),dN=lN(),uN=class{constructor(n,t){this.toUtf8=n,this.fromUtf8=t}format(n){let t=[];for(let i of Object.keys(n)){let a=this.fromUtf8(i);t.push(Uint8Array.from([a.byteLength]),a,this.formatHeaderValue(n[i]))}let s=new Uint8Array(t.reduce((i,a)=>i+a.byteLength,0)),r=0;for(let i of t)s.set(i,r),r+=i.byteLength;return s}formatHeaderValue(n){switch(n.type){case"boolean":return Uint8Array.from([n.value?0:1]);case"byte":return Uint8Array.from([2,n.value]);case"short":let t=new DataView(new ArrayBuffer(3));return t.setUint8(0,3),t.setInt16(1,n.value,!1),new Uint8Array(t.buffer);case"integer":let s=new DataView(new ArrayBuffer(5));return s.setUint8(0,4),s.setInt32(1,n.value,!1),new Uint8Array(s.buffer);case"long":let r=new Uint8Array(9);return r[0]=5,r.set(n.value.bytes,1),r;case"binary":let i=new DataView(new ArrayBuffer(3+n.value.byteLength));i.setUint8(0,6),i.setUint16(1,n.value.byteLength,!1);let a=new Uint8Array(i.buffer);return a.set(n.value,3),a;case"string":let o=this.fromUtf8(n.value),c=new DataView(new ArrayBuffer(3+o.byteLength));c.setUint8(0,7),c.setUint16(1,o.byteLength,!1);let l=new Uint8Array(c.buffer);return l.set(o,3),l;case"timestamp":let d=new Uint8Array(9);return d[0]=8,d.set(dN.Int64.fromNumber(n.value.valueOf()).bytes,1),d;case"uuid":if(!sWe.test(n.value))throw new Error(`Invalid UUID received: ${n.value}`);let h=new Uint8Array(17);return h[0]=9,h.set((0,Fo.fromHex)(n.value.replace(/\-/g,"")),1),h}}parse(n){let t={},s=0;for(;s{"use strict";Object.defineProperty(Nv,"__esModule",{value:!0});Nv.splitMessage=void 0;var rWe=ru(),WK=4,oi=WK*2,Di=4,iWe=oi+Di*2;function oWe({byteLength:e,byteOffset:n,buffer:t}){if(e{"use strict";Object.defineProperty(zv,"__esModule",{value:!0});zv.EventStreamCodec=void 0;var aWe=ru(),cWe=VK(),lWe=KK(),mN=class{constructor(n,t){this.headerMarshaller=new cWe.HeaderMarshaller(n,t)}encode({headers:n,body:t}){let s=this.headerMarshaller.format(n),r=s.byteLength+t.byteLength+16,i=new Uint8Array(r),a=new DataView(i.buffer,i.byteOffset,i.byteLength),o=new aWe.Crc32;return a.setUint32(0,r,!1),a.setUint32(4,s.byteLength,!1),a.setUint32(8,o.update(i.subarray(0,8)).digest(),!1),i.set(s,12),i.set(t,s.byteLength+12),a.setUint32(r-4,o.update(i.subarray(8,r-4)).digest(),!1),i}decode(n){let{headers:t,body:s}=(0,lWe.splitMessage)(n);return{headers:this.headerMarshaller.parse(t),body:s}}formatHeaders(n){return this.headerMarshaller.format(n)}};zv.EventStreamCodec=mN});var YK=u(JK=>{"use strict";Object.defineProperty(JK,"__esModule",{value:!0})});var ZK=u(Rm=>{"use strict";Object.defineProperty(Rm,"__esModule",{value:!0});var pN=X();pN.__exportStar(QK(),Rm);pN.__exportStar(lN(),Rm);pN.__exportStar(YK(),Rm)});var e8=u(qv=>{"use strict";Object.defineProperty(qv,"__esModule",{value:!0});qv.getChunkedStream=void 0;function dWe(e){let n=0,t=0,s=null,r=null,i=o=>{if(typeof o!="number")throw new Error("Attempted to allocate an event message where size was not a number: "+o);n=o,t=4,s=new Uint8Array(o),new DataView(s.buffer).setUint32(0,o,!1)},a=async function*(){let o=e[Symbol.asyncIterator]();for(;;){let{value:c,done:l}=await o.next();if(l){if(n)if(n===t)yield s;else throw new Error("Truncated event message received.");else return;return}let d=c.length,h=0;for(;h{"use strict";Object.defineProperty(Lv,"__esModule",{value:!0});Lv.getUnmarshalledStream=void 0;function uWe(e,n){return{[Symbol.asyncIterator]:async function*(){for await(let t of e){let s=n.eventStreamCodec.decode(t),{value:r}=s.headers[":message-type"];if(r==="error"){let i=new Error(s.headers[":error-message"].value||"UnknownError");throw i.name=s.headers[":error-code"].value,i}else if(r==="exception"){let i=s.headers[":exception-type"].value,a={[i]:s},o=await n.deserializer(a);if(o.$unknown){let c=new Error(n.toUtf8(s.body));throw c.name=i,c}throw o[i]}else if(r==="event"){let i={[s.headers[":event-type"].value]:s},a=await n.deserializer(i);if(a.$unknown)continue;yield a}else throw Error(`Unrecognizable event type: ${s.headers[":event-type"].value}`)}}}}Lv.getUnmarshalledStream=uWe});var yN=u(Fv=>{"use strict";Object.defineProperty(Fv,"__esModule",{value:!0});Fv.EventStreamMarshaller=void 0;var mWe=ZK(),pWe=e8(),gWe=t8(),gN=class{constructor({utf8Encoder:n,utf8Decoder:t}){this.eventStreamCodec=new mWe.EventStreamCodec(n,t),this.utfEncoder=n}deserialize(n,t){let s=(0,pWe.getChunkedStream)(n);return(0,gWe.getUnmarshalledStream)(s,{eventStreamCodec:this.eventStreamCodec,deserializer:t,toUtf8:this.utfEncoder})}serialize(n,t){let s=this,r=async function*(){for await(let i of n)yield s.eventStreamCodec.encode(t(i));yield new Uint8Array(0)};return{[Symbol.asyncIterator]:r}}};Fv.EventStreamMarshaller=gN});var n8=u(Dv=>{"use strict";Object.defineProperty(Dv,"__esModule",{value:!0});Dv.eventStreamSerdeProvider=void 0;var yWe=yN(),_We=e=>new yWe.EventStreamMarshaller(e);Dv.eventStreamSerdeProvider=_We});var r8=u(Tv=>{"use strict";Object.defineProperty(Tv,"__esModule",{value:!0});var s8=X();s8.__exportStar(yN(),Tv);s8.__exportStar(n8(),Tv)});var i8=u(jv=>{"use strict";Object.defineProperty(jv,"__esModule",{value:!0});jv.readabletoIterable=void 0;async function*fWe(e){let n=!1,t=!1,s=new Array;for(e.on("error",r=>{if(n||(n=!0),r)throw r}),e.on("data",r=>{s.push(r)}),e.on("end",()=>{n=!0});!t;){let r=await new Promise(i=>setTimeout(()=>i(s.shift()),0));r&&(yield r),t=n&&s.length===0}}jv.readabletoIterable=fWe});var fN=u(Mv=>{"use strict";Object.defineProperty(Mv,"__esModule",{value:!0});Mv.EventStreamMarshaller=void 0;var SWe=r8(),hWe=require("stream"),wWe=i8(),_N=class{constructor({utf8Encoder:n,utf8Decoder:t}){this.universalMarshaller=new SWe.EventStreamMarshaller({utf8Decoder:t,utf8Encoder:n})}deserialize(n,t){let s=typeof n[Symbol.asyncIterator]=="function"?n:(0,wWe.readabletoIterable)(n);return this.universalMarshaller.deserialize(s,t)}serialize(n,t){return hWe.Readable.from(this.universalMarshaller.serialize(n,t))}};Mv.EventStreamMarshaller=_N});var o8=u(Ov=>{"use strict";Object.defineProperty(Ov,"__esModule",{value:!0});Ov.eventStreamSerdeProvider=void 0;var EWe=fN(),CWe=e=>new EWe.EventStreamMarshaller(e);Ov.eventStreamSerdeProvider=CWe});var c8=u(Bv=>{"use strict";Object.defineProperty(Bv,"__esModule",{value:!0});var a8=X();a8.__exportStar(fN(),Bv);a8.__exportStar(o8(),Bv)});var hN=u(Gv=>{"use strict";Object.defineProperty(Gv,"__esModule",{value:!0});Gv.HashCalculator=void 0;var vWe=Sn(),PWe=require("stream"),SN=class extends PWe.Writable{constructor(n,t){super(t),this.hash=n}_write(n,t,s){try{this.hash.update((0,vWe.toUint8Array)(n))}catch(r){return s(r)}s()}};Gv.HashCalculator=SN});var l8=u(Uv=>{"use strict";Object.defineProperty(Uv,"__esModule",{value:!0});Uv.fileStreamHasher=void 0;var AWe=require("fs"),xWe=hN(),bWe=(e,n)=>new Promise((t,s)=>{if(!IWe(n)){s(new Error("Unable to calculate hash for non-file streams."));return}let r=(0,AWe.createReadStream)(n.path,{start:n.start,end:n.end}),i=new e,a=new xWe.HashCalculator(i);r.pipe(a),r.on("error",o=>{a.end(),s(o)}),a.on("error",s),a.on("finish",function(){i.digest().then(t).catch(s)})});Uv.fileStreamHasher=bWe;var IWe=e=>typeof e.path=="string"});var d8=u(Xv=>{"use strict";Object.defineProperty(Xv,"__esModule",{value:!0});Xv.readableStreamHasher=void 0;var kWe=hN(),RWe=(e,n)=>{if(n.readableFlowing!==null)throw new Error("Unable to calculate hash for flowing readable stream");let t=new e,s=new kWe.HashCalculator(t);return n.pipe(s),new Promise((r,i)=>{n.on("error",a=>{s.end(),i(a)}),s.on("error",i),s.on("finish",()=>{t.digest().then(r).catch(i)})})};Xv.readableStreamHasher=RWe});var m8=u($v=>{"use strict";Object.defineProperty($v,"__esModule",{value:!0});var u8=X();u8.__exportStar(l8(),$v);u8.__exportStar(d8(),$v)});var p8=u(qs=>{"use strict";Object.defineProperty(qs,"__esModule",{value:!0});qs.NODE_DISABLE_MULTIREGION_ACCESS_POINT_CONFIG_OPTIONS=qs.NODE_DISABLE_MULTIREGION_ACCESS_POINT_INI_NAME=qs.NODE_DISABLE_MULTIREGION_ACCESS_POINT_ENV_NAME=void 0;var Hv=Yo();qs.NODE_DISABLE_MULTIREGION_ACCESS_POINT_ENV_NAME="AWS_S3_DISABLE_MULTIREGION_ACCESS_POINTS";qs.NODE_DISABLE_MULTIREGION_ACCESS_POINT_INI_NAME="s3_disable_multiregion_access_points";qs.NODE_DISABLE_MULTIREGION_ACCESS_POINT_CONFIG_OPTIONS={environmentVariableSelector:e=>(0,Hv.booleanSelector)(e,qs.NODE_DISABLE_MULTIREGION_ACCESS_POINT_ENV_NAME,Hv.SelectorType.ENV),configFileSelector:e=>(0,Hv.booleanSelector)(e,qs.NODE_DISABLE_MULTIREGION_ACCESS_POINT_INI_NAME,Hv.SelectorType.CONFIG),default:!1}});var g8=u(Ls=>{"use strict";Object.defineProperty(Ls,"__esModule",{value:!0});Ls.NODE_USE_ARN_REGION_CONFIG_OPTIONS=Ls.NODE_USE_ARN_REGION_INI_NAME=Ls.NODE_USE_ARN_REGION_ENV_NAME=void 0;var Vv=Yo();Ls.NODE_USE_ARN_REGION_ENV_NAME="AWS_S3_USE_ARN_REGION";Ls.NODE_USE_ARN_REGION_INI_NAME="s3_use_arn_region";Ls.NODE_USE_ARN_REGION_CONFIG_OPTIONS={environmentVariableSelector:e=>(0,Vv.booleanSelector)(e,Ls.NODE_USE_ARN_REGION_ENV_NAME,Vv.SelectorType.ENV),configFileSelector:e=>(0,Vv.booleanSelector)(e,Ls.NODE_USE_ARN_REGION_INI_NAME,Vv.SelectorType.CONFIG),default:!1}});var CN=u(qe=>{"use strict";Object.defineProperty(qe,"__esModule",{value:!0});qe.validateMrapAlias=qe.validateNoFIPS=qe.validateNoDualstack=qe.getArnResources=qe.validateCustomEndpoint=qe.validateDNSHostLabel=qe.validateAccountId=qe.validateRegionalClient=qe.validateRegion=qe.validatePartition=qe.validateOutpostService=qe.validateS3Service=qe.validateService=qe.validateArnEndpointOptions=qe.getSuffixForArnEndpoint=qe.getSuffix=qe.isDnsCompatibleBucketName=qe.isBucketNameOptions=qe.S3_HOSTNAME_PATTERN=qe.DOT_PATTERN=void 0;var NWe=/^[a-z0-9][a-z0-9\.\-]{1,61}[a-z0-9]$/,zWe=/(\d+\.){3}\d+/,qWe=/\.\./;qe.DOT_PATTERN=/\./;qe.S3_HOSTNAME_PATTERN=/^(.+\.)?s3(-fips)?(\.dualstack)?[.-]([a-z0-9-]+)\./;var y8=/^s3(-external-1)?\.amazonaws\.com$/,EN="amazonaws.com",LWe=e=>typeof e.bucketName=="string";qe.isBucketNameOptions=LWe;var FWe=e=>NWe.test(e)&&!zWe.test(e)&&!qWe.test(e);qe.isDnsCompatibleBucketName=FWe;var _8=e=>{let n=e.match(qe.S3_HOSTNAME_PATTERN);return[n[4],e.replace(new RegExp(`^${n[0]}`),"")]},DWe=e=>y8.test(e)?["us-east-1",EN]:_8(e);qe.getSuffix=DWe;var TWe=e=>y8.test(e)?[e.replace(`.${EN}`,""),EN]:_8(e);qe.getSuffixForArnEndpoint=TWe;var jWe=e=>{if(e.pathStyleEndpoint)throw new Error("Path-style S3 endpoint is not supported when bucket is an ARN");if(e.accelerateEndpoint)throw new Error("Accelerate endpoint is not supported when bucket is an ARN");if(!e.tlsCompatible)throw new Error("HTTPS is required when bucket is an ARN")};qe.validateArnEndpointOptions=jWe;var MWe=e=>{if(e!=="s3"&&e!=="s3-outposts"&&e!=="s3-object-lambda")throw new Error("Expect 's3' or 's3-outposts' or 's3-object-lambda' in ARN service component")};qe.validateService=MWe;var OWe=e=>{if(e!=="s3")throw new Error("Expect 's3' in Accesspoint ARN service component")};qe.validateS3Service=OWe;var BWe=e=>{if(e!=="s3-outposts")throw new Error("Expect 's3-posts' in Outpost ARN service component")};qe.validateOutpostService=BWe;var GWe=(e,n)=>{if(e!==n.clientPartition)throw new Error(`Partition in ARN is incompatible, got "${e}" but expected "${n.clientPartition}"`)};qe.validatePartition=GWe;var UWe=(e,n)=>{if(e==="")throw new Error("ARN region is empty");if(n.useFipsEndpoint)if(n.allowFipsRegion){if(!wN(e,n.clientRegion))throw new Error(`Client FIPS region ${n.clientRegion} doesn't match region ${e} in ARN`)}else throw new Error("FIPS region is not supported");if(!n.useArnRegion&&!wN(e,n.clientRegion||"")&&!wN(e,n.clientSigningRegion||""))throw new Error(`Region in ARN is incompatible, got ${e} but expected ${n.clientRegion}`)};qe.validateRegion=UWe;var XWe=e=>{if(["s3-external-1","aws-global"].includes(e))throw new Error(`Client region ${e} is not regional`)};qe.validateRegionalClient=XWe;var wN=(e,n)=>e===n,$We=e=>{if(!/[0-9]{12}/.exec(e))throw new Error("Access point ARN accountID does not match regex '[0-9]{12}'")};qe.validateAccountId=$We;var HWe=(e,n={tlsCompatible:!0})=>{if(e.length>=64||!/^[a-z0-9][a-z0-9.-]*[a-z0-9]$/.test(e)||/(\d+\.){3}\d+/.test(e)||/[.-]{2}/.test(e)||n?.tlsCompatible&&qe.DOT_PATTERN.test(e))throw new Error(`Invalid DNS label ${e}`)};qe.validateDNSHostLabel=HWe;var VWe=e=>{if(e.isCustomEndpoint){if(e.dualstackEndpoint)throw new Error("Dualstack endpoint is not supported with custom endpoint");if(e.accelerateEndpoint)throw new Error("Accelerate endpoint is not supported with custom endpoint")}};qe.validateCustomEndpoint=VWe;var WWe=e=>{let n=e.includes(":")?":":"/",[t,...s]=e.split(n);if(t==="accesspoint"){if(s.length!==1||s[0]==="")throw new Error(`Access Point ARN should have one resource accesspoint${n}{accesspointname}`);return{accesspointName:s[0]}}else if(t==="outpost"){if(!s[0]||s[1]!=="accesspoint"||!s[2]||s.length!==3)throw new Error(`Outpost ARN should have resource outpost${n}{outpostId}${n}accesspoint${n}{accesspointName}`);let[r,i,a]=s;return{outpostId:r,accesspointName:a}}else throw new Error(`ARN resource should begin with 'accesspoint${n}' or 'outpost${n}'`)};qe.getArnResources=WWe;var KWe=e=>{if(e)throw new Error("Dualstack endpoint is not supported with Outpost or Multi-region Access Point ARN.")};qe.validateNoDualstack=KWe;var QWe=e=>{if(e)throw new Error("FIPS region is not supported with Outpost.")};qe.validateNoFIPS=QWe;var JWe=e=>{try{e.split(".").forEach(n=>{(0,qe.validateDNSHostLabel)(n)})}catch{throw new Error(`"${e}" is not a DNS compatible name.`)}};qe.validateMrapAlias=JWe});var vN=u(Wv=>{"use strict";Object.defineProperty(Wv,"__esModule",{value:!0});Wv.bucketHostname=void 0;var et=CN(),YWe=e=>((0,et.validateCustomEndpoint)(e),(0,et.isBucketNameOptions)(e)?ZWe(e):eKe(e));Wv.bucketHostname=YWe;var ZWe=({accelerateEndpoint:e=!1,clientRegion:n,baseHostname:t,bucketName:s,dualstackEndpoint:r=!1,fipsEndpoint:i=!1,pathStyleEndpoint:a=!1,tlsCompatible:o=!0,isCustomEndpoint:c=!1})=>{let[l,d]=c?[n,t]:(0,et.getSuffix)(t);return a||!(0,et.isDnsCompatibleBucketName)(s)||o&&et.DOT_PATTERN.test(s)?{bucketEndpoint:!1,hostname:r?`s3.dualstack.${l}.${d}`:t}:(e?t=`s3-accelerate${r?".dualstack":""}.${d}`:r&&(t=`s3.dualstack.${l}.${d}`),{bucketEndpoint:!0,hostname:`${s}.${t}`})},eKe=e=>{let{isCustomEndpoint:n,baseHostname:t,clientRegion:s}=e,r=n?t:(0,et.getSuffixForArnEndpoint)(t)[1],{pathStyleEndpoint:i,accelerateEndpoint:a=!1,fipsEndpoint:o=!1,tlsCompatible:c=!0,bucketName:l,clientPartition:d="aws"}=e;(0,et.validateArnEndpointOptions)({pathStyleEndpoint:i,accelerateEndpoint:a,tlsCompatible:c});let{service:h,partition:v,accountId:z,region:q,resource:T}=l;(0,et.validateService)(h),(0,et.validatePartition)(v,{clientPartition:d}),(0,et.validateAccountId)(z);let{accesspointName:U,outpostId:Le}=(0,et.getArnResources)(T);return h==="s3-object-lambda"?tKe({...e,tlsCompatible:c,bucketName:l,accesspointName:U,hostnameSuffix:r}):q===""?nKe({...e,clientRegion:s,mrapAlias:U,hostnameSuffix:r}):Le?sKe({...e,clientRegion:s,outpostId:Le,accesspointName:U,hostnameSuffix:r}):rKe({...e,clientRegion:s,accesspointName:U,hostnameSuffix:r})},tKe=({dualstackEndpoint:e=!1,fipsEndpoint:n=!1,tlsCompatible:t=!0,useArnRegion:s,clientRegion:r,clientSigningRegion:i=r,accesspointName:a,bucketName:o,hostnameSuffix:c})=>{let{accountId:l,region:d,service:h}=o;(0,et.validateRegionalClient)(r),(0,et.validateRegion)(d,{useArnRegion:s,clientRegion:r,clientSigningRegion:i,allowFipsRegion:!0,useFipsEndpoint:n}),(0,et.validateNoDualstack)(e);let v=`${a}-${l}`;(0,et.validateDNSHostLabel)(v,{tlsCompatible:t});let z=s?d:r,q=s?d:i;return{bucketEndpoint:!0,hostname:`${v}.${h}${n?"-fips":""}.${z}.${c}`,signingRegion:q,signingService:h}},nKe=({disableMultiregionAccessPoints:e,dualstackEndpoint:n=!1,isCustomEndpoint:t,mrapAlias:s,hostnameSuffix:r})=>{if(e===!0)throw new Error("SDK is attempting to use a MRAP ARN. Please enable to feature.");return(0,et.validateMrapAlias)(s),(0,et.validateNoDualstack)(n),{bucketEndpoint:!0,hostname:`${s}${t?"":".accesspoint.s3-global"}.${r}`,signingRegion:"*"}},sKe=({useArnRegion:e,clientRegion:n,clientSigningRegion:t=n,bucketName:s,outpostId:r,dualstackEndpoint:i=!1,fipsEndpoint:a=!1,tlsCompatible:o=!0,accesspointName:c,isCustomEndpoint:l,hostnameSuffix:d})=>{(0,et.validateRegionalClient)(n),(0,et.validateRegion)(s.region,{useArnRegion:e,clientRegion:n,clientSigningRegion:t,useFipsEndpoint:a});let h=`${c}-${s.accountId}`;(0,et.validateDNSHostLabel)(h,{tlsCompatible:o});let v=e?s.region:n,z=e?s.region:t;return(0,et.validateOutpostService)(s.service),(0,et.validateDNSHostLabel)(r,{tlsCompatible:o}),(0,et.validateNoDualstack)(i),(0,et.validateNoFIPS)(a),{bucketEndpoint:!0,hostname:`${`${h}.${r}`}${l?"":`.s3-outposts.${v}`}.${d}`,signingRegion:z,signingService:"s3-outposts"}},rKe=({useArnRegion:e,clientRegion:n,clientSigningRegion:t=n,bucketName:s,dualstackEndpoint:r=!1,fipsEndpoint:i=!1,tlsCompatible:a=!0,accesspointName:o,isCustomEndpoint:c,hostnameSuffix:l})=>{(0,et.validateRegionalClient)(n),(0,et.validateRegion)(s.region,{useArnRegion:e,clientRegion:n,clientSigningRegion:t,allowFipsRegion:!0,useFipsEndpoint:i});let d=`${o}-${s.accountId}`;(0,et.validateDNSHostLabel)(d,{tlsCompatible:a});let h=e?s.region:n,v=e?s.region:t;return(0,et.validateS3Service)(s.service),{bucketEndpoint:!0,hostname:`${d}${c?"":`.s3-accesspoint${i?"-fips":""}${r?".dualstack":""}.${h}`}.${l}`,signingRegion:v}}});var h8=u(Fs=>{"use strict";Object.defineProperty(Fs,"__esModule",{value:!0});Fs.getBucketEndpointPlugin=Fs.bucketEndpointMiddlewareOptions=Fs.bucketEndpointMiddleware=void 0;var iKe=gt(),f8=pk(),S8=vN(),oKe=e=>(n,t)=>async s=>{let{Bucket:r}=s.input,i=e.bucketEndpoint,a=s.request;if(iKe.HttpRequest.isInstance(a)){if(e.bucketEndpoint)a.hostname=r;else if((0,f8.validate)(r)){let o=(0,f8.parse)(r),c=await e.region(),l=await e.useDualstackEndpoint(),d=await e.useFipsEndpoint(),{partition:h,signingRegion:v=c}=await e.regionInfoProvider(c,{useDualstackEndpoint:l,useFipsEndpoint:d})||{},z=await e.useArnRegion(),{hostname:q,bucketEndpoint:T,signingRegion:U,signingService:Le}=(0,S8.bucketHostname)({bucketName:o,baseHostname:a.hostname,accelerateEndpoint:e.useAccelerateEndpoint,dualstackEndpoint:l,fipsEndpoint:d,pathStyleEndpoint:e.forcePathStyle,tlsCompatible:a.protocol==="https:",useArnRegion:z,clientPartition:h,clientSigningRegion:v,clientRegion:c,isCustomEndpoint:e.isCustomEndpoint,disableMultiregionAccessPoints:await e.disableMultiregionAccessPoints()});U&&U!==v&&(t.signing_region=U),Le&&Le!=="s3"&&(t.signing_service=Le),a.hostname=q,i=T}else{let o=await e.region(),c=await e.useDualstackEndpoint(),l=await e.useFipsEndpoint(),{hostname:d,bucketEndpoint:h}=(0,S8.bucketHostname)({bucketName:r,clientRegion:o,baseHostname:a.hostname,accelerateEndpoint:e.useAccelerateEndpoint,dualstackEndpoint:c,fipsEndpoint:l,pathStyleEndpoint:e.forcePathStyle,tlsCompatible:a.protocol==="https:",isCustomEndpoint:e.isCustomEndpoint});a.hostname=d,i=h}i&&(a.path=a.path.replace(/^(\/)?[^\/]+/,""),a.path===""&&(a.path="/"))}return n({...s,request:a})};Fs.bucketEndpointMiddleware=oKe;Fs.bucketEndpointMiddlewareOptions={tags:["BUCKET_ENDPOINT"],name:"bucketEndpointMiddleware",relation:"before",toMiddleware:"hostHeaderMiddleware",override:!0};var aKe=e=>({applyToStack:n=>{n.addRelativeTo((0,Fs.bucketEndpointMiddleware)(e),Fs.bucketEndpointMiddlewareOptions)}});Fs.getBucketEndpointPlugin=aKe});var w8=u(Kv=>{"use strict";Object.defineProperty(Kv,"__esModule",{value:!0});Kv.resolveBucketEndpointConfig=void 0;function cKe(e){let{bucketEndpoint:n=!1,forcePathStyle:t=!1,useAccelerateEndpoint:s=!1,useArnRegion:r=!1,disableMultiregionAccessPoints:i=!1}=e;return{...e,bucketEndpoint:n,forcePathStyle:t,useAccelerateEndpoint:s,useArnRegion:typeof r=="function"?r:()=>Promise.resolve(r),disableMultiregionAccessPoints:typeof i=="function"?i:()=>Promise.resolve(i)}}Kv.resolveBucketEndpointConfig=cKe});var E8=u(ct=>{"use strict";Object.defineProperty(ct,"__esModule",{value:!0});ct.validateNoFIPS=ct.validateNoDualstack=ct.validateDNSHostLabel=ct.validateRegion=ct.validateAccountId=ct.validatePartition=ct.validateOutpostService=ct.getSuffixForArnEndpoint=ct.getArnResources=void 0;var Nm=X();Nm.__exportStar(p8(),ct);Nm.__exportStar(g8(),ct);Nm.__exportStar(h8(),ct);Nm.__exportStar(vN(),ct);Nm.__exportStar(w8(),ct);var pr=CN();Object.defineProperty(ct,"getArnResources",{enumerable:!0,get:function(){return pr.getArnResources}});Object.defineProperty(ct,"getSuffixForArnEndpoint",{enumerable:!0,get:function(){return pr.getSuffixForArnEndpoint}});Object.defineProperty(ct,"validateOutpostService",{enumerable:!0,get:function(){return pr.validateOutpostService}});Object.defineProperty(ct,"validatePartition",{enumerable:!0,get:function(){return pr.validatePartition}});Object.defineProperty(ct,"validateAccountId",{enumerable:!0,get:function(){return pr.validateAccountId}});Object.defineProperty(ct,"validateRegion",{enumerable:!0,get:function(){return pr.validateRegion}});Object.defineProperty(ct,"validateDNSHostLabel",{enumerable:!0,get:function(){return pr.validateDNSHostLabel}});Object.defineProperty(ct,"validateNoDualstack",{enumerable:!0,get:function(){return pr.validateNoDualstack}});Object.defineProperty(ct,"validateNoFIPS",{enumerable:!0,get:function(){return pr.validateNoFIPS}})});var C8=u(Qv=>{"use strict";Object.defineProperty(Qv,"__esModule",{value:!0});Qv.getAwsChunkedEncodingStream=void 0;var lKe=require("stream"),dKe=(e,n)=>{let{base64Encoder:t,bodyLengthChecker:s,checksumAlgorithmFn:r,checksumLocationName:i,streamHasher:a}=n,o=t!==void 0&&r!==void 0&&i!==void 0&&a!==void 0,c=o?a(r,e):void 0,l=new lKe.Readable({read:()=>{}});return e.on("data",d=>{l.push(`${(s(d)||0).toString(16)}\r +${d.toString()}\r +`)}),e.on("end",async()=>{if(l.push(`0\r +`),o){let d=t(await c);l.push(`${i}:${d}\r +`),l.push(`\r +`)}l.push(null)}),l};Qv.getAwsChunkedEncodingStream=dKe});var P8=u(Jv=>{"use strict";Object.defineProperty(Jv,"__esModule",{value:!0});Jv.sdkStreamMixin=void 0;var uKe=Ks(),mKe=Si(),PN=require("stream"),pKe=require("util"),v8="The stream has already been transformed.",gKe=e=>{var n,t;if(!(e instanceof PN.Readable)){let i=((t=(n=e?.__proto__)===null||n===void 0?void 0:n.constructor)===null||t===void 0?void 0:t.name)||e;throw new Error(`Unexpected stream implementation, expect Stream.Readable instance, got ${i}`)}let s=!1,r=async()=>{if(s)throw new Error(v8);return s=!0,await(0,uKe.streamCollector)(e)};return Object.assign(e,{transformToByteArray:r,transformToString:async i=>{let a=await r();return i===void 0||Buffer.isEncoding(i)?(0,mKe.fromArrayBuffer)(a.buffer,a.byteOffset,a.byteLength).toString(i):new pKe.TextDecoder(i).decode(a)},transformToWebStream:()=>{if(s)throw new Error(v8);if(e.readableFlowing!==null)throw new Error("The stream has been consumed by other callbacks.");if(typeof PN.Readable.toWeb!="function")throw new Error("Readable.toWeb() is not supported. Please make sure you are using Node.js >= 17.0.0, or polyfill is available.");return s=!0,PN.Readable.toWeb(e)}})};Jv.sdkStreamMixin=gKe});var x8=u(Yv=>{"use strict";Object.defineProperty(Yv,"__esModule",{value:!0});var A8=X();A8.__exportStar(C8(),Yv);A8.__exportStar(P8(),Yv)});var b8=u(Zv=>{"use strict";Object.defineProperty(Zv,"__esModule",{value:!0});Zv.SignatureV4MultiRegion=void 0;var yKe=k0(),AN=class{constructor(n){this.sigv4Signer=new yKe.SignatureV4(n),this.signerOptions=n}async sign(n,t={}){if(t.signingRegion==="*"){if(this.signerOptions.runtime!=="node")throw new Error("This request requires signing with SigV4Asymmetric algorithm. It's only available in Node.js");return this.getSigv4aSigner().sign(n,t)}return this.sigv4Signer.sign(n,t)}async presign(n,t={}){if(t.signingRegion==="*"){if(this.signerOptions.runtime!=="node")throw new Error("This request requires signing with SigV4Asymmetric algorithm. It's only available in Node.js");return this.getSigv4aSigner().presign(n,t)}return this.sigv4Signer.presign(n,t)}getSigv4aSigner(){if(!this.sigv4aSigner){let n;try{if(n=typeof require=="function"&&require("@aws-sdk/signature-v4-crt").CrtSignerV4,typeof n!="function")throw new Error}catch(t){throw t.message=`${t.message} +Please check if you have installed "@aws-sdk/signature-v4-crt" package explicitly. +For more information please go to https://github.com/aws/aws-sdk-js-v3#functionality-requiring-aws-common-runtime-crt`,t}this.sigv4aSigner=new n({...this.signerOptions,signingAlgorithm:1})}return this.sigv4aSigner}};Zv.SignatureV4MultiRegion=AN});var I8=u(xN=>{"use strict";Object.defineProperty(xN,"__esModule",{value:!0});var _Ke=X();_Ke.__exportStar(b8(),xN)});var K6=u(oP=>{"use strict";Object.defineProperty(oP,"__esModule",{value:!0});oP.ruleSet=void 0;var WN="required",_="type",R="rules",I="conditions",P="fn",A="argv",L="ref",Wt="assign",se="url",re="properties",xe="authSchemes",ke="signingRegion",be="signingName",Ie="disableDoubleEncoding",ie="headers",k8=!1,Ds=!0,N="tree",kn="isSet",zm="substring",D6="hardwareType",T6="regionPrefix",R8="abbaSuffix",HN="outpostId",Tm="aws.partition",ae="stringEquals",Mi="isValidHostLabel",Pt="not",oe="error",j6="parseURL",KN="s3-outposts",F="endpoint",ne="booleanEquals",M6="aws.parseArn",Ne="s3",N8="aws.isVirtualHostableS3Bucket",pt="getAttr",Pe="name",bN="Host override cannot be combined with Dualstack, FIPS, or S3 Accelerate",O6="https://{Bucket}.s3.{partitionResult#dnsSuffix}",B6="bucketArn",G6="arnType",iP="",QN="s3-object-lambda",U6="accesspoint",JN="accessPointName",z8="{url#scheme}://{accessPointName}-{bucketArn#accountId}.{url#authority}{url#path}",q8="mrapPartition",L8="outpostType",F8="arnPrefix",Oi="{url#scheme}://{url#authority}{url#path}",X6="https://s3.{partitionResult#dnsSuffix}",IN={[WN]:!1,[_]:"String"},qm={[WN]:!0,default:!1,[_]:"Boolean"},eP={[WN]:!1,[_]:"Boolean"},$6={[P]:kn,[A]:[{[L]:"Bucket"}]},Ts={[L]:"Bucket"},D8={[L]:D6},T8={[I]:[{[P]:Pt,[A]:[{[P]:kn,[A]:[{[L]:"Endpoint"}]}]}],[oe]:"Expected a endpoint to be specified but no endpoint was found",[_]:oe},ze={[P]:Pt,[A]:[{[P]:kn,[A]:[{[L]:"Endpoint"}]}]},Te={[P]:kn,[A]:[{[L]:"Endpoint"}]},Ze={[P]:j6,[A]:[{[L]:"Endpoint"}],[Wt]:"url"},tP={[xe]:[{[Pe]:"sigv4",[ke]:"{Region}",[be]:KN,[Ie]:!0}]},Bt={},j8={[L]:"ForcePathStyle"},M8={[I]:[{[P]:"uriEncode",[A]:[Ts],[Wt]:"uri_encoded_bucket"}],[_]:N,[R]:[{[I]:[{[P]:ne,[A]:[{[L]:"UseDualStack"},!0]},Te],[oe]:"Cannot set dual-stack in combination with a custom endpoint.",[_]:oe},{[_]:N,[R]:[{[I]:[{[P]:Tm,[A]:[{[L]:"Region"}],[Wt]:"partitionResult"}],[_]:N,[R]:[{[_]:N,[R]:[{[I]:[{[P]:ne,[A]:[{[L]:"Accelerate"},!1]}],[_]:N,[R]:[{[_]:N,[R]:[{[I]:[{[P]:ne,[A]:[{[L]:"UseDualStack"},!0]},ze,{[P]:ne,[A]:[{[L]:"UseFIPS"},!0]},{[P]:ae,[A]:[{[L]:"Region"},"aws-global"]}],[F]:{[se]:"https://s3-fips.dualstack.us-east-1.{partitionResult#dnsSuffix}/{uri_encoded_bucket}",[re]:{[xe]:[{[Pe]:"sigv4",[ke]:"us-east-1",[be]:Ne,[Ie]:!0}]},[ie]:{}},[_]:F},{[I]:[{[P]:ne,[A]:[{[L]:"UseDualStack"},!0]},ze,{[P]:ne,[A]:[{[L]:"UseFIPS"},!0]},{[P]:ae,[A]:[{[L]:"Region"},"aws-global"]}],[F]:{[se]:"https://s3-fips.dualstack.us-east-1.{partitionResult#dnsSuffix}/{uri_encoded_bucket}",[re]:{[xe]:[{[Pe]:"sigv4",[ke]:"us-east-1",[be]:Ne,[Ie]:!0}]},[ie]:{}},[_]:F},{[I]:[{[P]:ne,[A]:[{[L]:"UseDualStack"},!0]},ze,{[P]:ne,[A]:[{[L]:"UseFIPS"},!0]},{[P]:Pt,[A]:[{[P]:ae,[A]:[{[L]:"Region"},"aws-global"]}]},{[P]:ne,[A]:[{[L]:"UseGlobalEndpoint"},!0]}],[_]:N,[R]:[{[F]:{[se]:"https://s3-fips.dualstack.{Region}.{partitionResult#dnsSuffix}/{uri_encoded_bucket}",[re]:{[xe]:[{[Pe]:"sigv4",[ke]:"{Region}",[be]:Ne,[Ie]:!0}]},[ie]:{}},[_]:F}]},{[I]:[{[P]:ne,[A]:[{[L]:"UseDualStack"},!0]},ze,{[P]:ne,[A]:[{[L]:"UseFIPS"},!0]},{[P]:Pt,[A]:[{[P]:ae,[A]:[{[L]:"Region"},"aws-global"]}]},{[P]:ne,[A]:[{[L]:"UseGlobalEndpoint"},!1]}],[F]:{[se]:"https://s3-fips.dualstack.{Region}.{partitionResult#dnsSuffix}/{uri_encoded_bucket}",[re]:{[xe]:[{[Pe]:"sigv4",[ke]:"{Region}",[be]:Ne,[Ie]:!0}]},[ie]:{}},[_]:F},{[I]:[{[P]:ne,[A]:[{[L]:"UseDualStack"},!1]},Te,Ze,{[P]:ne,[A]:[{[L]:"UseFIPS"},!0]},{[P]:ae,[A]:[{[L]:"Region"},"aws-global"]}],[F]:{[se]:"{url#scheme}://{url#authority}{url#normalizedPath}{uri_encoded_bucket}",[re]:{[xe]:[{[Pe]:"sigv4",[ke]:"us-east-1",[be]:Ne,[Ie]:!0}]},[ie]:{}},[_]:F},{[I]:[{[P]:ne,[A]:[{[L]:"UseDualStack"},!1]},Te,Ze,{[P]:ne,[A]:[{[L]:"UseFIPS"},!0]},{[P]:ae,[A]:[{[L]:"Region"},"aws-global"]}],[F]:{[se]:"{url#scheme}://{url#authority}{url#normalizedPath}{uri_encoded_bucket}",[re]:{[xe]:[{[Pe]:"sigv4",[ke]:"us-east-1",[be]:Ne,[Ie]:!0}]},[ie]:{}},[_]:F},{[I]:[{[P]:ne,[A]:[{[L]:"UseDualStack"},!1]},Te,Ze,{[P]:ne,[A]:[{[L]:"UseFIPS"},!0]},{[P]:Pt,[A]:[{[P]:ae,[A]:[{[L]:"Region"},"aws-global"]}]},{[P]:ne,[A]:[{[L]:"UseGlobalEndpoint"},!0]}],[_]:N,[R]:[{[F]:{[se]:"{url#scheme}://{url#authority}{url#normalizedPath}{uri_encoded_bucket}",[re]:{[xe]:[{[Pe]:"sigv4",[ke]:"{Region}",[be]:Ne,[Ie]:!0}]},[ie]:{}},[_]:F}]},{[I]:[{[P]:ne,[A]:[{[L]:"UseDualStack"},!1]},Te,Ze,{[P]:ne,[A]:[{[L]:"UseFIPS"},!0]},{[P]:Pt,[A]:[{[P]:ae,[A]:[{[L]:"Region"},"aws-global"]}]},{[P]:ne,[A]:[{[L]:"UseGlobalEndpoint"},!1]}],[F]:{[se]:"{url#scheme}://{url#authority}{url#normalizedPath}{uri_encoded_bucket}",[re]:{[xe]:[{[Pe]:"sigv4",[ke]:"{Region}",[be]:Ne,[Ie]:!0}]},[ie]:{}},[_]:F},{[I]:[{[P]:ne,[A]:[{[L]:"UseDualStack"},!1]},ze,{[P]:ne,[A]:[{[L]:"UseFIPS"},!0]},{[P]:ae,[A]:[{[L]:"Region"},"aws-global"]}],[F]:{[se]:"https://s3-fips.us-east-1.{partitionResult#dnsSuffix}/{uri_encoded_bucket}",[re]:{[xe]:[{[Pe]:"sigv4",[ke]:"us-east-1",[be]:Ne,[Ie]:!0}]},[ie]:{}},[_]:F},{[I]:[{[P]:ne,[A]:[{[L]:"UseDualStack"},!1]},ze,{[P]:ne,[A]:[{[L]:"UseFIPS"},!0]},{[P]:ae,[A]:[{[L]:"Region"},"aws-global"]}],[F]:{[se]:"https://s3-fips.us-east-1.{partitionResult#dnsSuffix}/{uri_encoded_bucket}",[re]:{[xe]:[{[Pe]:"sigv4",[ke]:"us-east-1",[be]:Ne,[Ie]:!0}]},[ie]:{}},[_]:F},{[I]:[{[P]:ne,[A]:[{[L]:"UseDualStack"},!1]},ze,{[P]:ne,[A]:[{[L]:"UseFIPS"},!0]},{[P]:Pt,[A]:[{[P]:ae,[A]:[{[L]:"Region"},"aws-global"]}]},{[P]:ne,[A]:[{[L]:"UseGlobalEndpoint"},!0]}],[_]:N,[R]:[{[F]:{[se]:"https://s3-fips.{Region}.{partitionResult#dnsSuffix}/{uri_encoded_bucket}",[re]:{[xe]:[{[Pe]:"sigv4",[ke]:"{Region}",[be]:Ne,[Ie]:!0}]},[ie]:{}},[_]:F}]},{[I]:[{[P]:ne,[A]:[{[L]:"UseDualStack"},!1]},ze,{[P]:ne,[A]:[{[L]:"UseFIPS"},!0]},{[P]:Pt,[A]:[{[P]:ae,[A]:[{[L]:"Region"},"aws-global"]}]},{[P]:ne,[A]:[{[L]:"UseGlobalEndpoint"},!1]}],[F]:{[se]:"https://s3-fips.{Region}.{partitionResult#dnsSuffix}/{uri_encoded_bucket}",[re]:{[xe]:[{[Pe]:"sigv4",[ke]:"{Region}",[be]:Ne,[Ie]:!0}]},[ie]:{}},[_]:F},{[I]:[{[P]:ne,[A]:[{[L]:"UseDualStack"},!0]},ze,{[P]:ne,[A]:[{[L]:"UseFIPS"},!1]},{[P]:ae,[A]:[{[L]:"Region"},"aws-global"]}],[F]:{[se]:"https://s3.dualstack.us-east-1.{partitionResult#dnsSuffix}/{uri_encoded_bucket}",[re]:{[xe]:[{[Pe]:"sigv4",[ke]:"us-east-1",[be]:Ne,[Ie]:!0}]},[ie]:{}},[_]:F},{[I]:[{[P]:ne,[A]:[{[L]:"UseDualStack"},!0]},ze,{[P]:ne,[A]:[{[L]:"UseFIPS"},!1]},{[P]:ae,[A]:[{[L]:"Region"},"aws-global"]}],[F]:{[se]:"https://s3.dualstack.us-east-1.{partitionResult#dnsSuffix}/{uri_encoded_bucket}",[re]:{[xe]:[{[Pe]:"sigv4",[ke]:"us-east-1",[be]:Ne,[Ie]:!0}]},[ie]:{}},[_]:F},{[I]:[{[P]:ne,[A]:[{[L]:"UseDualStack"},!0]},ze,{[P]:ne,[A]:[{[L]:"UseFIPS"},!1]},{[P]:Pt,[A]:[{[P]:ae,[A]:[{[L]:"Region"},"aws-global"]}]},{[P]:ne,[A]:[{[L]:"UseGlobalEndpoint"},!0]}],[_]:N,[R]:[{[F]:{[se]:"https://s3.dualstack.{Region}.{partitionResult#dnsSuffix}/{uri_encoded_bucket}",[re]:{[xe]:[{[Pe]:"sigv4",[ke]:"{Region}",[be]:Ne,[Ie]:!0}]},[ie]:{}},[_]:F}]},{[I]:[{[P]:ne,[A]:[{[L]:"UseDualStack"},!0]},ze,{[P]:ne,[A]:[{[L]:"UseFIPS"},!1]},{[P]:Pt,[A]:[{[P]:ae,[A]:[{[L]:"Region"},"aws-global"]}]},{[P]:ne,[A]:[{[L]:"UseGlobalEndpoint"},!1]}],[F]:{[se]:"https://s3.dualstack.{Region}.{partitionResult#dnsSuffix}/{uri_encoded_bucket}",[re]:{[xe]:[{[Pe]:"sigv4",[ke]:"{Region}",[be]:Ne,[Ie]:!0}]},[ie]:{}},[_]:F},{[I]:[{[P]:ne,[A]:[{[L]:"UseDualStack"},!1]},Te,Ze,{[P]:ne,[A]:[{[L]:"UseFIPS"},!1]},{[P]:ae,[A]:[{[L]:"Region"},"aws-global"]}],[F]:{[se]:"{url#scheme}://{url#authority}{url#normalizedPath}{uri_encoded_bucket}",[re]:{[xe]:[{[Pe]:"sigv4",[ke]:"us-east-1",[be]:Ne,[Ie]:!0}]},[ie]:{}},[_]:F},{[I]:[{[P]:ne,[A]:[{[L]:"UseDualStack"},!1]},Te,Ze,{[P]:ne,[A]:[{[L]:"UseFIPS"},!1]},{[P]:ae,[A]:[{[L]:"Region"},"aws-global"]}],[F]:{[se]:"{url#scheme}://{url#authority}{url#normalizedPath}{uri_encoded_bucket}",[re]:{[xe]:[{[Pe]:"sigv4",[ke]:"us-east-1",[be]:Ne,[Ie]:!0}]},[ie]:{}},[_]:F},{[I]:[{[P]:ne,[A]:[{[L]:"UseDualStack"},!1]},Te,Ze,{[P]:ne,[A]:[{[L]:"UseFIPS"},!1]},{[P]:Pt,[A]:[{[P]:ae,[A]:[{[L]:"Region"},"aws-global"]}]},{[P]:ne,[A]:[{[L]:"UseGlobalEndpoint"},!0]}],[_]:N,[R]:[{[I]:[{[P]:ae,[A]:[{[L]:"Region"},"us-east-1"]}],[F]:{[se]:"{url#scheme}://{url#authority}{url#normalizedPath}{uri_encoded_bucket}",[re]:{[xe]:[{[Pe]:"sigv4",[ke]:"{Region}",[be]:Ne,[Ie]:!0}]},[ie]:{}},[_]:F},{[F]:{[se]:"{url#scheme}://{url#authority}{url#normalizedPath}{uri_encoded_bucket}",[re]:{[xe]:[{[Pe]:"sigv4",[ke]:"{Region}",[be]:Ne,[Ie]:!0}]},[ie]:{}},[_]:F}]},{[I]:[{[P]:ne,[A]:[{[L]:"UseDualStack"},!1]},Te,Ze,{[P]:ne,[A]:[{[L]:"UseFIPS"},!1]},{[P]:Pt,[A]:[{[P]:ae,[A]:[{[L]:"Region"},"aws-global"]}]},{[P]:ne,[A]:[{[L]:"UseGlobalEndpoint"},!1]}],[F]:{[se]:"{url#scheme}://{url#authority}{url#normalizedPath}{uri_encoded_bucket}",[re]:{[xe]:[{[Pe]:"sigv4",[ke]:"{Region}",[be]:Ne,[Ie]:!0}]},[ie]:{}},[_]:F},{[I]:[{[P]:ne,[A]:[{[L]:"UseDualStack"},!1]},ze,{[P]:ne,[A]:[{[L]:"UseFIPS"},!1]},{[P]:ae,[A]:[{[L]:"Region"},"aws-global"]}],[F]:{[se]:"https://s3.{partitionResult#dnsSuffix}/{uri_encoded_bucket}",[re]:{[xe]:[{[Pe]:"sigv4",[ke]:"us-east-1",[be]:Ne,[Ie]:!0}]},[ie]:{}},[_]:F},{[I]:[{[P]:ne,[A]:[{[L]:"UseDualStack"},!1]},ze,{[P]:ne,[A]:[{[L]:"UseFIPS"},!1]},{[P]:ae,[A]:[{[L]:"Region"},"aws-global"]}],[F]:{[se]:"https://s3.{partitionResult#dnsSuffix}/{uri_encoded_bucket}",[re]:{[xe]:[{[Pe]:"sigv4",[ke]:"us-east-1",[be]:Ne,[Ie]:!0}]},[ie]:{}},[_]:F},{[I]:[{[P]:ne,[A]:[{[L]:"UseDualStack"},!1]},ze,{[P]:ne,[A]:[{[L]:"UseFIPS"},!1]},{[P]:Pt,[A]:[{[P]:ae,[A]:[{[L]:"Region"},"aws-global"]}]},{[P]:ne,[A]:[{[L]:"UseGlobalEndpoint"},!0]}],[_]:N,[R]:[{[I]:[{[P]:ae,[A]:[{[L]:"Region"},"us-east-1"]}],[F]:{[se]:"https://s3.{partitionResult#dnsSuffix}/{uri_encoded_bucket}",[re]:{[xe]:[{[Pe]:"sigv4",[ke]:"{Region}",[be]:Ne,[Ie]:!0}]},[ie]:{}},[_]:F},{[F]:{[se]:"https://s3.{Region}.{partitionResult#dnsSuffix}/{uri_encoded_bucket}",[re]:{[xe]:[{[Pe]:"sigv4",[ke]:"{Region}",[be]:Ne,[Ie]:!0}]},[ie]:{}},[_]:F}]},{[I]:[{[P]:ne,[A]:[{[L]:"UseDualStack"},!1]},ze,{[P]:ne,[A]:[{[L]:"UseFIPS"},!1]},{[P]:Pt,[A]:[{[P]:ae,[A]:[{[L]:"Region"},"aws-global"]}]},{[P]:ne,[A]:[{[L]:"UseGlobalEndpoint"},!1]}],[F]:{[se]:"https://s3.{Region}.{partitionResult#dnsSuffix}/{uri_encoded_bucket}",[re]:{[xe]:[{[Pe]:"sigv4",[ke]:"{Region}",[be]:Ne,[Ie]:!0}]},[ie]:{}},[_]:F}]}]},{[oe]:"Path-style addressing cannot be used with S3 Accelerate",[_]:oe}]}]},{[oe]:"A valid partition could not be determined",[_]:oe}]}]},nt={[P]:ne,[A]:[{[L]:"UseDualStack"},!0]},Xt={[P]:ne,[A]:[{[L]:"Accelerate"},!1]},lt={[P]:ne,[A]:[{[L]:"UseFIPS"},!0]},Xe={[P]:Pt,[A]:[{[P]:ae,[A]:[{[L]:"Region"},"aws-global"]}]},on={[P]:ne,[A]:[{[L]:"UseGlobalEndpoint"},!0]},cn={[xe]:[{[Pe]:"sigv4",[ke]:"{Region}",[be]:Ne,[Ie]:!0}]},an={[P]:ne,[A]:[{[L]:"UseGlobalEndpoint"},!1]},Qe={[P]:ne,[A]:[{[L]:"UseDualStack"},!1]},Be={[P]:ne,[A]:[{[L]:"UseFIPS"},!1]},Ti={[oe]:"A valid partition could not be determined",[_]:oe},kN={[I]:[lt,{[P]:ae,[A]:[{[P]:pt,[A]:[{[L]:"partitionResult"},Pe]},"aws-cn"]}],[oe]:"Partition does not support FIPS",[_]:oe},fKe={[P]:ae,[A]:[{[P]:pt,[A]:[{[L]:"partitionResult"},Pe]},"aws-cn"]},es={[P]:ne,[A]:[{[L]:"Accelerate"},!0]},O8={[I]:[nt,lt,Xt,ze,{[P]:ae,[A]:[{[L]:"Region"},"aws-global"]}],[F]:{[se]:"https://{Bucket}.s3-fips.dualstack.us-east-1.{partitionResult#dnsSuffix}",[re]:{[xe]:[{[Pe]:"sigv4",[ke]:"us-east-1",[be]:Ne,[Ie]:!0}]},[ie]:{}},[_]:F},B8={[se]:"https://{Bucket}.s3-fips.dualstack.{Region}.{partitionResult#dnsSuffix}",[re]:cn,[ie]:{}},G8={[I]:[Qe,lt,Xt,ze,{[P]:ae,[A]:[{[L]:"Region"},"aws-global"]}],[F]:{[se]:"https://{Bucket}.s3-fips.us-east-1.{partitionResult#dnsSuffix}",[re]:{[xe]:[{[Pe]:"sigv4",[ke]:"us-east-1",[be]:Ne,[Ie]:!0}]},[ie]:{}},[_]:F},U8={[se]:"https://{Bucket}.s3-fips.{Region}.{partitionResult#dnsSuffix}",[re]:cn,[ie]:{}},X8={[I]:[nt,Be,es,ze,{[P]:ae,[A]:[{[L]:"Region"},"aws-global"]}],[F]:{[se]:"https://{Bucket}.s3-accelerate.dualstack.us-east-1.{partitionResult#dnsSuffix}",[re]:{[xe]:[{[Pe]:"sigv4",[ke]:"us-east-1",[be]:Ne,[Ie]:!0}]},[ie]:{}},[_]:F},$8={[se]:"https://{Bucket}.s3-accelerate.dualstack.{partitionResult#dnsSuffix}",[re]:cn,[ie]:{}},H8={[I]:[nt,Be,Xt,ze,{[P]:ae,[A]:[{[L]:"Region"},"aws-global"]}],[F]:{[se]:"https://{Bucket}.s3.dualstack.us-east-1.{partitionResult#dnsSuffix}",[re]:{[xe]:[{[Pe]:"sigv4",[ke]:"us-east-1",[be]:Ne,[Ie]:!0}]},[ie]:{}},[_]:F},V8={[se]:"https://{Bucket}.s3.dualstack.{Region}.{partitionResult#dnsSuffix}",[re]:cn,[ie]:{}},W8={[I]:[Qe,Be,Xt,Te,Ze,{[P]:ne,[A]:[{[P]:pt,[A]:[{[L]:"url"},"isIp"]},!0]},{[P]:ae,[A]:[{[L]:"Region"},"aws-global"]}],[F]:{[se]:"{url#scheme}://{url#authority}{url#normalizedPath}{Bucket}",[re]:{[xe]:[{[Pe]:"sigv4",[ke]:"us-east-1",[be]:Ne,[Ie]:!0}]},[ie]:{}},[_]:F},K8={[P]:ne,[A]:[{[P]:pt,[A]:[{[L]:"url"},"isIp"]},!0]},YN={[L]:"url"},Q8={[I]:[Qe,Be,Xt,Te,Ze,{[P]:ne,[A]:[{[P]:pt,[A]:[YN,"isIp"]},!1]},{[P]:ae,[A]:[{[L]:"Region"},"aws-global"]}],[F]:{[se]:"{url#scheme}://{Bucket}.{url#authority}{url#path}",[re]:{[xe]:[{[Pe]:"sigv4",[ke]:"us-east-1",[be]:Ne,[Ie]:!0}]},[ie]:{}},[_]:F},J8={[P]:ne,[A]:[{[P]:pt,[A]:[YN,"isIp"]},!1]},RN={[se]:"{url#scheme}://{url#authority}{url#normalizedPath}{Bucket}",[re]:cn,[ie]:{}},VN={[se]:"{url#scheme}://{Bucket}.{url#authority}{url#path}",[re]:cn,[ie]:{}},Y8={[F]:VN,[_]:F},Z8={[I]:[Qe,Be,es,ze,{[P]:ae,[A]:[{[L]:"Region"},"aws-global"]}],[F]:{[se]:"https://{Bucket}.s3-accelerate.{partitionResult#dnsSuffix}",[re]:{[xe]:[{[Pe]:"sigv4",[ke]:"us-east-1",[be]:Ne,[Ie]:!0}]},[ie]:{}},[_]:F},NN={[se]:"https://{Bucket}.s3-accelerate.{partitionResult#dnsSuffix}",[re]:cn,[ie]:{}},e6={[I]:[Qe,Be,Xt,ze,{[P]:ae,[A]:[{[L]:"Region"},"aws-global"]}],[F]:{[se]:O6,[re]:{[xe]:[{[Pe]:"sigv4",[ke]:"us-east-1",[be]:Ne,[Ie]:!0}]},[ie]:{}},[_]:F},t6={[se]:"https://{Bucket}.s3.{Region}.{partitionResult#dnsSuffix}",[re]:cn,[ie]:{}},nP={[oe]:"Invalid region: region was not a valid DNS name.",[_]:oe},Pn={[L]:B6},H6={[L]:G6},zN={[P]:pt,[A]:[Pn,"service"]},ZN={[L]:JN},n6={[I]:[nt],[oe]:"S3 Object Lambda does not support Dual-stack",[_]:oe},s6={[I]:[es],[oe]:"S3 Object Lambda does not support S3 Accelerate",[_]:oe},r6={[I]:[{[P]:kn,[A]:[{[L]:"DisableAccessPoints"}]},{[P]:ne,[A]:[{[L]:"DisableAccessPoints"},!0]}],[oe]:"Access points are not supported for this operation",[_]:oe},qN={[I]:[{[P]:kn,[A]:[{[L]:"UseArnRegion"}]},{[P]:ne,[A]:[{[L]:"UseArnRegion"},!1]},{[P]:Pt,[A]:[{[P]:ae,[A]:[{[P]:pt,[A]:[Pn,"region"]},"{Region}"]}]}],[oe]:"Invalid configuration: region from ARN `{bucketArn#region}` does not match client region `{Region}` and UseArnRegion is `false`",[_]:oe},ez={[P]:pt,[A]:[{[L]:"bucketPartition"},Pe]},V6={[P]:pt,[A]:[Pn,"accountId"]},i6={[I]:[lt,{[P]:ae,[A]:[ez,"aws-cn"]}],[oe]:"Partition does not support FIPS",[_]:oe},LN={[xe]:[{[Pe]:"sigv4",[ke]:"{bucketArn#region}",[be]:QN,[Ie]:!0}]},o6={[oe]:"Invalid ARN: The access point name may only contain a-z, A-Z, 0-9 and `-`. Found: `{accessPointName}`",[_]:oe},FN={[oe]:"Invalid ARN: The account id may only contain a-z, A-Z, 0-9 and `-`. Found: `{bucketArn#accountId}`",[_]:oe},DN={[oe]:"Invalid region in ARN: `{bucketArn#region}` (invalid DNS name)",[_]:oe},TN={[oe]:"Client was configured for partition `{partitionResult#name}` but ARN (`{Bucket}`) has `{bucketPartition#name}`",[_]:oe},a6={[oe]:"Could not load partition for ARN region `{bucketArn#region}`",[_]:oe},c6={[oe]:"Invalid ARN: The ARN may only contain a single resource component after `accesspoint`.",[_]:oe},l6={[oe]:"Invalid ARN: bucket ARN is missing a region",[_]:oe},d6={[oe]:"Invalid ARN: Expected a resource of the format `accesspoint:` but no name was provided",[_]:oe},Lm={[xe]:[{[Pe]:"sigv4",[ke]:"{bucketArn#region}",[be]:Ne,[Ie]:!0}]},u6={[xe]:[{[Pe]:"sigv4",[ke]:"{bucketArn#region}",[be]:KN,[Ie]:!0}]},m6={[L]:"UseObjectLambdaEndpoint"},jN={[xe]:[{[Pe]:"sigv4",[ke]:"{Region}",[be]:QN,[Ie]:!0}]},p6={[I]:[lt,nt,Te,Ze,{[P]:ae,[A]:[{[L]:"Region"},"aws-global"]}],[F]:{[se]:Oi,[re]:{[xe]:[{[Pe]:"sigv4",[ke]:"us-east-1",[be]:Ne,[Ie]:!0}]},[ie]:{}},[_]:F},W6={[F]:{[se]:Oi,[re]:cn,[ie]:{}},[_]:F},Fm={[se]:Oi,[re]:cn,[ie]:{}},g6={[I]:[lt,nt,ze,{[P]:ae,[A]:[{[L]:"Region"},"aws-global"]}],[F]:{[se]:"https://s3-fips.dualstack.us-east-1.{partitionResult#dnsSuffix}",[re]:{[xe]:[{[Pe]:"sigv4",[ke]:"us-east-1",[be]:Ne,[Ie]:!0}]},[ie]:{}},[_]:F},y6={[se]:"https://s3-fips.dualstack.{Region}.{partitionResult#dnsSuffix}",[re]:cn,[ie]:{}},_6={[I]:[lt,Qe,Te,Ze,{[P]:ae,[A]:[{[L]:"Region"},"aws-global"]}],[F]:{[se]:Oi,[re]:{[xe]:[{[Pe]:"sigv4",[ke]:"us-east-1",[be]:Ne,[Ie]:!0}]},[ie]:{}},[_]:F},f6={[I]:[lt,Qe,ze,{[P]:ae,[A]:[{[L]:"Region"},"aws-global"]}],[F]:{[se]:"https://s3-fips.us-east-1.{partitionResult#dnsSuffix}",[re]:{[xe]:[{[Pe]:"sigv4",[ke]:"us-east-1",[be]:Ne,[Ie]:!0}]},[ie]:{}},[_]:F},S6={[se]:"https://s3-fips.{Region}.{partitionResult#dnsSuffix}",[re]:cn,[ie]:{}},h6={[I]:[Be,nt,Te,Ze,{[P]:ae,[A]:[{[L]:"Region"},"aws-global"]}],[F]:{[se]:Oi,[re]:{[xe]:[{[Pe]:"sigv4",[ke]:"us-east-1",[be]:Ne,[Ie]:!0}]},[ie]:{}},[_]:F},w6={[I]:[Be,nt,ze,{[P]:ae,[A]:[{[L]:"Region"},"aws-global"]}],[F]:{[se]:"https://s3.dualstack.us-east-1.{partitionResult#dnsSuffix}",[re]:{[xe]:[{[Pe]:"sigv4",[ke]:"us-east-1",[be]:Ne,[Ie]:!0}]},[ie]:{}},[_]:F},E6={[se]:"https://s3.dualstack.{Region}.{partitionResult#dnsSuffix}",[re]:cn,[ie]:{}},C6={[I]:[Be,Qe,Te,Ze,{[P]:ae,[A]:[{[L]:"Region"},"aws-global"]}],[F]:{[se]:Oi,[re]:{[xe]:[{[Pe]:"sigv4",[ke]:"us-east-1",[be]:Ne,[Ie]:!0}]},[ie]:{}},[_]:F},v6={[I]:[Be,Qe,ze,{[P]:ae,[A]:[{[L]:"Region"},"aws-global"]}],[F]:{[se]:X6,[re]:{[xe]:[{[Pe]:"sigv4",[ke]:"us-east-1",[be]:Ne,[Ie]:!0}]},[ie]:{}},[_]:F},P6={[se]:"https://s3.{Region}.{partitionResult#dnsSuffix}",[re]:cn,[ie]:{}},rP=[{[L]:"Region"}],SKe=[Ts],A6=[{[P]:Mi,[A]:[{[L]:HN},!1]}],x6=[{[P]:ae,[A]:[{[L]:T6},"beta"]}],hKe=[{[L]:"Endpoint"}],Dm=[Te,Ze],b6=[$6],I6=[{[P]:M6,[A]:[Ts]}],wKe=[nt,Te],ji=[{[P]:Tm,[A]:rP,[Wt]:"partitionResult"}],Do=[{[P]:ae,[A]:[{[L]:"Region"},"us-east-1"]}],k6=[{[P]:Mi,[A]:[{[L]:"Region"},!1]}],MN=[{[P]:ae,[A]:[H6,U6]}],R6=[{[P]:pt,[A]:[Pn,"resourceId[1]"],[Wt]:JN},{[P]:Pt,[A]:[{[P]:ae,[A]:[ZN,iP]}]}],EKe=[Pn,"resourceId[1]"],N6=[nt],ON=[es],BN=[{[P]:Pt,[A]:[{[P]:ae,[A]:[{[P]:pt,[A]:[Pn,"region"]},iP]}]}],z6=[{[P]:Pt,[A]:[{[P]:kn,[A]:[{[P]:pt,[A]:[Pn,"resourceId[2]"]}]}]}],CKe=[Pn,"resourceId[2]"],GN=[{[P]:Tm,[A]:[{[P]:pt,[A]:[Pn,"region"]}],[Wt]:"bucketPartition"}],q6=[{[P]:ae,[A]:[ez,{[P]:pt,[A]:[{[L]:"partitionResult"},Pe]}]}],UN=[{[P]:Mi,[A]:[{[P]:pt,[A]:[Pn,"region"]},!0]}],XN=[{[P]:Mi,[A]:[V6,!1]}],L6=[{[P]:Mi,[A]:[ZN,!1]}],sP=[lt],F6=[{[P]:Mi,[A]:[{[L]:"Region"},!0]}],$N=[W6],vKe={version:"1.0",parameters:{Bucket:IN,Region:IN,UseFIPS:qm,UseDualStack:qm,Endpoint:IN,ForcePathStyle:eP,Accelerate:qm,UseGlobalEndpoint:qm,UseObjectLambdaEndpoint:eP,DisableAccessPoints:eP,DisableMultiRegionAccessPoints:qm,UseArnRegion:eP},[R]:[{[_]:N,[R]:[{[I]:[{[P]:kn,[A]:rP}],[_]:N,[R]:[{[_]:N,[R]:[{[I]:[$6,{[P]:zm,[A]:[Ts,49,50,Ds],[Wt]:D6},{[P]:zm,[A]:[Ts,8,12,Ds],[Wt]:T6},{[P]:zm,[A]:[Ts,0,7,Ds],[Wt]:R8},{[P]:zm,[A]:[Ts,32,49,Ds],[Wt]:HN},{[P]:Tm,[A]:rP,[Wt]:"regionPartition"},{[P]:ae,[A]:[{[L]:R8},"--op-s3"]}],[_]:N,[R]:[{[I]:A6,[_]:N,[R]:[{[_]:N,[R]:[{[I]:[{[P]:ae,[A]:[D8,"e"]}],[_]:N,[R]:[{[I]:x6,[_]:N,[R]:[T8,{[I]:Dm,endpoint:{[se]:"https://{Bucket}.ec2.{url#authority}",[re]:tP,[ie]:Bt},[_]:F}]},{endpoint:{[se]:"https://{Bucket}.ec2.s3-outposts.{Region}.{regionPartition#dnsSuffix}",[re]:tP,[ie]:Bt},[_]:F}]},{[I]:[{[P]:ae,[A]:[D8,"o"]}],[_]:N,[R]:[{[I]:x6,[_]:N,[R]:[T8,{[I]:Dm,endpoint:{[se]:"https://{Bucket}.op-{outpostId}.{url#authority}",[re]:tP,[ie]:Bt},[_]:F}]},{endpoint:{[se]:"https://{Bucket}.op-{outpostId}.s3-outposts.{Region}.{regionPartition#dnsSuffix}",[re]:tP,[ie]:Bt},[_]:F}]},{error:'Unrecognized hardware type: "Expected hardware type o or e but got {hardwareType}"',[_]:oe}]}]},{error:"Invalid ARN: The outpost Id must only contain a-z, A-Z, 0-9 and `-`.",[_]:oe}]},{[I]:b6,[_]:N,[R]:[{[I]:[Te,{[P]:Pt,[A]:[{[P]:kn,[A]:[{[P]:j6,[A]:hKe}]}]}],error:"Custom endpoint `{Endpoint}` was not a valid URI",[_]:oe},{[_]:N,[R]:[{[I]:[{[P]:kn,[A]:[j8]},{[P]:ne,[A]:[j8,Ds]}],[_]:N,[R]:[{[_]:N,[R]:[{[I]:I6,error:"Path-style addressing cannot be used with ARN buckets",[_]:oe},M8]}]},{[I]:[{[P]:N8,[A]:[Ts,k8]}],[_]:N,[R]:[{[I]:ji,[_]:N,[R]:[{[_]:N,[R]:[{[I]:k6,[_]:N,[R]:[{[_]:N,[R]:[kN,{[_]:N,[R]:[{[I]:[es,lt],error:"Accelerate cannot be used with FIPS",[_]:oe},{[_]:N,[R]:[{[I]:[es,fKe],error:"S3 Accelerate cannot be used in this region",[_]:oe},{[_]:N,[R]:[{[I]:[Te,nt],error:bN,[_]:oe},{[_]:N,[R]:[{[I]:[Te,lt],error:bN,[_]:oe},{[_]:N,[R]:[{[I]:[Te,es],error:bN,[_]:oe},{[_]:N,[R]:[O8,O8,{[I]:[nt,lt,Xt,ze,Xe,on],[_]:N,[R]:[{endpoint:B8,[_]:F}]},{[I]:[nt,lt,Xt,ze,Xe,an],endpoint:B8,[_]:F},G8,G8,{[I]:[Qe,lt,Xt,ze,Xe,on],[_]:N,[R]:[{endpoint:U8,[_]:F}]},{[I]:[Qe,lt,Xt,ze,Xe,an],endpoint:U8,[_]:F},X8,X8,{[I]:[nt,Be,es,ze,Xe,on],[_]:N,[R]:[{endpoint:$8,[_]:F}]},{[I]:[nt,Be,es,ze,Xe,an],endpoint:$8,[_]:F},H8,H8,{[I]:[nt,Be,Xt,ze,Xe,on],[_]:N,[R]:[{endpoint:V8,[_]:F}]},{[I]:[nt,Be,Xt,ze,Xe,an],endpoint:V8,[_]:F},W8,Q8,W8,Q8,{[I]:[Qe,Be,Xt,Te,Ze,K8,Xe,on],[_]:N,[R]:[{[I]:Do,endpoint:RN,[_]:F},{endpoint:RN,[_]:F}]},{[I]:[Qe,Be,Xt,Te,Ze,J8,Xe,on],[_]:N,[R]:[{[I]:Do,endpoint:VN,[_]:F},Y8]},{[I]:[Qe,Be,Xt,Te,Ze,K8,Xe,an],endpoint:RN,[_]:F},{[I]:[Qe,Be,Xt,Te,Ze,J8,Xe,an],endpoint:VN,[_]:F},Z8,Z8,{[I]:[Qe,Be,es,ze,Xe,on],[_]:N,[R]:[{[I]:Do,endpoint:NN,[_]:F},{endpoint:NN,[_]:F}]},{[I]:[Qe,Be,es,ze,Xe,an],endpoint:NN,[_]:F},e6,e6,{[I]:[Qe,Be,Xt,ze,Xe,on],[_]:N,[R]:[{[I]:Do,endpoint:{[se]:O6,[re]:cn,[ie]:Bt},[_]:F},{endpoint:t6,[_]:F}]},{[I]:[Qe,Be,Xt,ze,Xe,an],endpoint:t6,[_]:F}]}]}]}]}]}]}]}]},nP]}]},Ti]},{[I]:[Te,Ze,{[P]:ae,[A]:[{[P]:pt,[A]:[YN,"scheme"]},"http"]},{[P]:N8,[A]:[Ts,Ds]},Be,Qe,Xt],[_]:N,[R]:[{[I]:ji,[_]:N,[R]:[{[_]:N,[R]:[{[I]:k6,[_]:N,[R]:[Y8]},nP]}]},Ti]},{[I]:[{[P]:M6,[A]:SKe,[Wt]:B6}],[_]:N,[R]:[{[I]:[{[P]:pt,[A]:[Pn,"resourceId[0]"],[Wt]:G6},{[P]:Pt,[A]:[{[P]:ae,[A]:[H6,iP]}]}],[_]:N,[R]:[{[_]:N,[R]:[{[I]:[{[P]:ae,[A]:[zN,QN]}],[_]:N,[R]:[{[I]:MN,[_]:N,[R]:[{[_]:N,[R]:[{[I]:R6,[_]:N,[R]:[{[_]:N,[R]:[n6,{[_]:N,[R]:[s6,{[_]:N,[R]:[{[I]:BN,[_]:N,[R]:[{[_]:N,[R]:[r6,{[_]:N,[R]:[{[I]:z6,[_]:N,[R]:[{[_]:N,[R]:[qN,{[_]:N,[R]:[{[I]:GN,[_]:N,[R]:[{[_]:N,[R]:[{[I]:ji,[_]:N,[R]:[{[_]:N,[R]:[{[I]:q6,[_]:N,[R]:[{[_]:N,[R]:[{[I]:UN,[_]:N,[R]:[{[_]:N,[R]:[{[I]:[{[P]:ae,[A]:[V6,iP]}],error:"Invalid ARN: Missing account id",[_]:oe},{[_]:N,[R]:[{[I]:XN,[_]:N,[R]:[{[_]:N,[R]:[{[I]:L6,[_]:N,[R]:[{[_]:N,[R]:[i6,{[_]:N,[R]:[{[I]:Dm,endpoint:{[se]:z8,[re]:LN,[ie]:Bt},[_]:F},{[I]:sP,endpoint:{[se]:"https://{accessPointName}-{bucketArn#accountId}.s3-object-lambda-fips.{bucketArn#region}.{bucketPartition#dnsSuffix}",[re]:LN,[ie]:Bt},[_]:F},{endpoint:{[se]:"https://{accessPointName}-{bucketArn#accountId}.s3-object-lambda.{bucketArn#region}.{bucketPartition#dnsSuffix}",[re]:LN,[ie]:Bt},[_]:F}]}]}]},o6]}]},FN]}]}]},DN]}]},TN]}]},Ti]}]},a6]}]}]},c6]}]}]},l6]}]}]}]},d6]}]},{error:"Invalid ARN: Object Lambda ARNs only support `accesspoint` arn types, but found: `{arnType}`",[_]:oe}]},{[I]:MN,[_]:N,[R]:[{[I]:R6,[_]:N,[R]:[{[_]:N,[R]:[{[I]:BN,[_]:N,[R]:[{[I]:MN,[_]:N,[R]:[{[I]:BN,[_]:N,[R]:[{[_]:N,[R]:[r6,{[_]:N,[R]:[{[I]:z6,[_]:N,[R]:[{[_]:N,[R]:[qN,{[_]:N,[R]:[{[I]:GN,[_]:N,[R]:[{[_]:N,[R]:[{[I]:ji,[_]:N,[R]:[{[_]:N,[R]:[{[I]:[{[P]:ae,[A]:[ez,"{partitionResult#name}"]}],[_]:N,[R]:[{[_]:N,[R]:[{[I]:UN,[_]:N,[R]:[{[_]:N,[R]:[{[I]:[{[P]:ae,[A]:[zN,Ne]}],[_]:N,[R]:[{[_]:N,[R]:[{[I]:XN,[_]:N,[R]:[{[_]:N,[R]:[{[I]:L6,[_]:N,[R]:[{[_]:N,[R]:[{[I]:ON,error:"Access Points do not support S3 Accelerate",[_]:oe},{[_]:N,[R]:[i6,{[_]:N,[R]:[{[I]:wKe,error:"DualStack cannot be combined with a Host override (PrivateLink)",[_]:oe},{[_]:N,[R]:[{[I]:[lt,nt],endpoint:{[se]:"https://{accessPointName}-{bucketArn#accountId}.s3-accesspoint-fips.dualstack.{bucketArn#region}.{bucketPartition#dnsSuffix}",[re]:Lm,[ie]:Bt},[_]:F},{[I]:[lt,Qe],endpoint:{[se]:"https://{accessPointName}-{bucketArn#accountId}.s3-accesspoint-fips.{bucketArn#region}.{bucketPartition#dnsSuffix}",[re]:Lm,[ie]:Bt},[_]:F},{[I]:[Be,nt],endpoint:{[se]:"https://{accessPointName}-{bucketArn#accountId}.s3-accesspoint.dualstack.{bucketArn#region}.{bucketPartition#dnsSuffix}",[re]:Lm,[ie]:Bt},[_]:F},{[I]:[Be,Qe,Te,Ze],endpoint:{[se]:z8,[re]:Lm,[ie]:Bt},[_]:F},{[I]:[Be,Qe],endpoint:{[se]:"https://{accessPointName}-{bucketArn#accountId}.s3-accesspoint.{bucketArn#region}.{bucketPartition#dnsSuffix}",[re]:Lm,[ie]:Bt},[_]:F}]}]}]}]}]},o6]}]},FN]}]},{error:"Invalid ARN: The ARN was not for the S3 service, found: {bucketArn#service}",[_]:oe}]}]},DN]}]},TN]}]},Ti]}]},a6]}]}]},c6]}]}]},l6]}]},{[_]:N,[R]:[{[I]:[{[P]:Mi,[A]:[ZN,Ds]}],[_]:N,[R]:[{[_]:N,[R]:[{[I]:N6,error:"S3 MRAP does not support dual-stack",[_]:oe},{[_]:N,[R]:[{[I]:sP,error:"S3 MRAP does not support FIPS",[_]:oe},{[_]:N,[R]:[{[I]:ON,error:"S3 MRAP does not support S3 Accelerate",[_]:oe},{[_]:N,[R]:[{[I]:[{[P]:ne,[A]:[{[L]:"DisableMultiRegionAccessPoints"},Ds]}],error:"Invalid configuration: Multi-Region Access Point ARNs are disabled.",[_]:oe},{[_]:N,[R]:[{[I]:[{[P]:Tm,[A]:rP,[Wt]:q8}],[_]:N,[R]:[{[_]:N,[R]:[{[I]:[{[P]:ae,[A]:[{[P]:pt,[A]:[{[L]:q8},Pe]},{[P]:pt,[A]:[Pn,"partition"]}]}],[_]:N,[R]:[{endpoint:{[se]:"https://{accessPointName}.accesspoint.s3-global.{mrapPartition#dnsSuffix}",[re]:{[xe]:[{name:"sigv4a",signingRegionSet:["*"],[be]:Ne,[Ie]:Ds}]},[ie]:Bt},[_]:F}]},{error:"Client was configured for partition `{mrapPartition#name}` but bucket referred to partition `{bucketArn#partition}`",[_]:oe}]}]},{error:"{Region} was not a valid region",[_]:oe}]}]}]}]}]}]},{error:"Invalid Access Point Name",[_]:oe}]}]}]},d6]},{[I]:[{[P]:ae,[A]:[zN,KN]}],[_]:N,[R]:[{[I]:N6,error:"S3 Outposts does not support Dual-stack",[_]:oe},{[_]:N,[R]:[{[I]:sP,error:"S3 Outposts does not support FIPS",[_]:oe},{[_]:N,[R]:[{[I]:ON,error:"S3 Outposts does not support S3 Accelerate",[_]:oe},{[_]:N,[R]:[{[I]:[{[P]:kn,[A]:[{[P]:pt,[A]:[Pn,"resourceId[4]"]}]}],error:"Invalid Arn: Outpost Access Point ARN contains sub resources",[_]:oe},{[_]:N,[R]:[{[I]:[{[P]:pt,[A]:EKe,[Wt]:HN}],[_]:N,[R]:[{[_]:N,[R]:[{[I]:A6,[_]:N,[R]:[{[_]:N,[R]:[qN,{[_]:N,[R]:[{[I]:GN,[_]:N,[R]:[{[_]:N,[R]:[{[I]:ji,[_]:N,[R]:[{[_]:N,[R]:[{[I]:q6,[_]:N,[R]:[{[_]:N,[R]:[{[I]:UN,[_]:N,[R]:[{[_]:N,[R]:[{[I]:XN,[_]:N,[R]:[{[_]:N,[R]:[{[I]:[{[P]:pt,[A]:CKe,[Wt]:L8}],[_]:N,[R]:[{[_]:N,[R]:[{[I]:[{[P]:pt,[A]:[Pn,"resourceId[3]"],[Wt]:JN}],[_]:N,[R]:[{[_]:N,[R]:[{[I]:[{[P]:ae,[A]:[{[L]:L8},U6]}],[_]:N,[R]:[{[_]:N,[R]:[{[I]:Dm,endpoint:{[se]:"https://{accessPointName}-{bucketArn#accountId}.{outpostId}.{url#authority}",[re]:u6,[ie]:Bt},[_]:F},{endpoint:{[se]:"https://{accessPointName}-{bucketArn#accountId}.{outpostId}.s3-outposts.{bucketArn#region}.{bucketPartition#dnsSuffix}",[re]:u6,[ie]:Bt},[_]:F}]}]},{error:"Expected an outpost type `accesspoint`, found {outpostType}",[_]:oe}]}]},{error:"Invalid ARN: expected an access point name",[_]:oe}]}]},{error:"Invalid ARN: Expected a 4-component resource",[_]:oe}]}]},FN]}]},DN]}]},TN]}]},Ti]}]},{error:"Could not load partition for ARN region {bucketArn#region}",[_]:oe}]}]}]},{error:"Invalid ARN: The outpost Id may only contain a-z, A-Z, 0-9 and `-`. Found: `{outpostId}`",[_]:oe}]}]},{error:"Invalid ARN: The Outpost Id was not set",[_]:oe}]}]}]}]}]},{error:"Invalid ARN: Unrecognized format: {Bucket} (type: {arnType})",[_]:oe}]}]},{error:"Invalid ARN: No ARN type specified",[_]:oe}]},{[I]:[{[P]:zm,[A]:[Ts,0,4,k8],[Wt]:F8},{[P]:ae,[A]:[{[L]:F8},"arn:"]},{[P]:Pt,[A]:[{[P]:kn,[A]:I6}]}],error:"Invalid ARN: `{Bucket}` was not a valid ARN",[_]:oe},M8]}]},{[I]:[{[P]:kn,[A]:[m6]},{[P]:ne,[A]:[m6,Ds]}],[_]:N,[R]:[{[I]:ji,[_]:N,[R]:[{[_]:N,[R]:[{[I]:F6,[_]:N,[R]:[{[_]:N,[R]:[n6,{[_]:N,[R]:[s6,{[_]:N,[R]:[kN,{[_]:N,[R]:[{[I]:Dm,endpoint:{[se]:Oi,[re]:jN,[ie]:Bt},[_]:F},{[I]:sP,endpoint:{[se]:"https://s3-object-lambda-fips.{Region}.{partitionResult#dnsSuffix}",[re]:jN,[ie]:Bt},[_]:F},{endpoint:{[se]:"https://s3-object-lambda.{Region}.{partitionResult#dnsSuffix}",[re]:jN,[ie]:Bt},[_]:F}]}]}]}]}]},nP]}]},Ti]},{[I]:[{[P]:Pt,[A]:b6}],[_]:N,[R]:[{[I]:ji,[_]:N,[R]:[{[_]:N,[R]:[{[I]:F6,[_]:N,[R]:[{[_]:N,[R]:[kN,{[_]:N,[R]:[p6,p6,{[I]:[lt,nt,Te,Ze,Xe,on],[_]:N,[R]:$N},{[I]:[lt,nt,Te,Ze,Xe,an],endpoint:Fm,[_]:F},g6,g6,{[I]:[lt,nt,ze,Xe,on],[_]:N,[R]:[{endpoint:y6,[_]:F}]},{[I]:[lt,nt,ze,Xe,an],endpoint:y6,[_]:F},_6,_6,{[I]:[lt,Qe,Te,Ze,Xe,on],[_]:N,[R]:$N},{[I]:[lt,Qe,Te,Ze,Xe,an],endpoint:Fm,[_]:F},f6,f6,{[I]:[lt,Qe,ze,Xe,on],[_]:N,[R]:[{endpoint:S6,[_]:F}]},{[I]:[lt,Qe,ze,Xe,an],endpoint:S6,[_]:F},h6,h6,{[I]:[Be,nt,Te,Ze,Xe,on],[_]:N,[R]:$N},{[I]:[Be,nt,Te,Ze,Xe,an],endpoint:Fm,[_]:F},w6,w6,{[I]:[Be,nt,ze,Xe,on],[_]:N,[R]:[{endpoint:E6,[_]:F}]},{[I]:[Be,nt,ze,Xe,an],endpoint:E6,[_]:F},C6,C6,{[I]:[Be,Qe,Te,Ze,Xe,on],[_]:N,[R]:[{[I]:Do,endpoint:Fm,[_]:F},W6]},{[I]:[Be,Qe,Te,Ze,Xe,an],endpoint:Fm,[_]:F},v6,v6,{[I]:[Be,Qe,ze,Xe,on],[_]:N,[R]:[{[I]:Do,endpoint:{[se]:X6,[re]:cn,[ie]:Bt},[_]:F},{endpoint:P6,[_]:F}]},{[I]:[Be,Qe,ze,Xe,an],endpoint:P6,[_]:F}]}]}]},nP]}]},Ti]}]}]},{error:"A region must be set when sending requests to S3.",[_]:oe}]}]};oP.ruleSet=vKe});var Q6=u(aP=>{"use strict";Object.defineProperty(aP,"__esModule",{value:!0});aP.defaultEndpointResolver=void 0;var PKe=Ur(),AKe=K6(),xKe=(e,n={})=>(0,PKe.resolveEndpoint)(AKe.ruleSet,{endpointParams:e,logger:n.logger});aP.defaultEndpointResolver=xKe});var Z6=u(cP=>{"use strict";Object.defineProperty(cP,"__esModule",{value:!0});cP.getRuntimeConfig=void 0;var bKe=I8(),IKe=E(),kKe=ts(),J6=Br(),Y6=Sn(),RKe=Q6(),NKe=e=>({apiVersion:"2006-03-01",base64Decoder:e?.base64Decoder??J6.fromBase64,base64Encoder:e?.base64Encoder??J6.toBase64,disableHostPrefix:e?.disableHostPrefix??!1,endpointProvider:e?.endpointProvider??RKe.defaultEndpointResolver,logger:e?.logger??new IKe.NoOpLogger,serviceId:e?.serviceId??"S3",signerConstructor:e?.signerConstructor??bKe.SignatureV4MultiRegion,signingEscapePath:e?.signingEscapePath??!1,urlParser:e?.urlParser??kKe.parseUrl,useArnRegion:e?.useArnRegion??!1,utf8Decoder:e?.utf8Decoder??Y6.fromUtf8,utf8Encoder:e?.utf8Encoder??Y6.toUtf8});cP.getRuntimeConfig=NKe});var sQ=u(dP=>{"use strict";Object.defineProperty(dP,"__esModule",{value:!0});dP.getRuntimeConfig=void 0;var zKe=X(),qKe=zKe.__importDefault(UK()),LKe=xs(),lP=tn(),FKe=Vr(),DKe=c8(),tz=jr(),TKe=m8(),jKe=E8(),eQ=un(),To=Qn(),tQ=Ks(),MKe=Mr(),OKe=dn(),nQ=x8(),BKe=Or(),GKe=Z6(),UKe=E(),XKe=$r(),$Ke=E(),HKe=e=>{(0,$Ke.emitWarningIfUnsupportedVersion)(process.version);let n=(0,XKe.resolveDefaultsModeConfig)(e),t=()=>n().then(UKe.loadConfigsForDefaultMode),s=(0,GKe.getRuntimeConfig)(e);return{...s,...e,runtime:"node",defaultsMode:n,bodyLengthChecker:e?.bodyLengthChecker??MKe.calculateBodyLength,credentialDefaultProvider:e?.credentialDefaultProvider??(0,LKe.decorateDefaultCredentialProvider)(FKe.defaultProvider),defaultUserAgentProvider:e?.defaultUserAgentProvider??(0,BKe.defaultUserAgent)({serviceId:s.serviceId,clientVersion:qKe.default.version}),eventStreamSerdeProvider:e?.eventStreamSerdeProvider??DKe.eventStreamSerdeProvider,getAwsChunkedEncodingStream:e?.getAwsChunkedEncodingStream??nQ.getAwsChunkedEncodingStream,maxAttempts:e?.maxAttempts??(0,To.loadConfig)(eQ.NODE_MAX_ATTEMPT_CONFIG_OPTIONS),md5:e?.md5??tz.Hash.bind(null,"md5"),region:e?.region??(0,To.loadConfig)(lP.NODE_REGION_CONFIG_OPTIONS,lP.NODE_REGION_CONFIG_FILE_OPTIONS),requestHandler:e?.requestHandler??new tQ.NodeHttpHandler(t),retryMode:e?.retryMode??(0,To.loadConfig)({...eQ.NODE_RETRY_MODE_CONFIG_OPTIONS,default:async()=>(await t()).retryMode||OKe.DEFAULT_RETRY_MODE}),sdkStreamMixin:e?.sdkStreamMixin??nQ.sdkStreamMixin,sha1:e?.sha1??tz.Hash.bind(null,"sha1"),sha256:e?.sha256??tz.Hash.bind(null,"sha256"),streamCollector:e?.streamCollector??tQ.streamCollector,streamHasher:e?.streamHasher??TKe.readableStreamHasher,useArnRegion:e?.useArnRegion??(0,To.loadConfig)(jKe.NODE_USE_ARN_REGION_CONFIG_OPTIONS),useDualstackEndpoint:e?.useDualstackEndpoint??(0,To.loadConfig)(lP.NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS),useFipsEndpoint:e?.useFipsEndpoint??(0,To.loadConfig)(lP.NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS)}};dP.getRuntimeConfig=HKe});var jm=u(uP=>{"use strict";Object.defineProperty(uP,"__esModule",{value:!0});uP.S3Client=void 0;var VKe=tn(),WKe=MK(),KKe=fr(),QKe=x(),JKe=BK(),rQ=Sr(),YKe=hr(),ZKe=wr(),iQ=un(),oQ=bo(),aQ=He(),cQ=xr(),e8e=E(),t8e=GK(),n8e=sQ(),nz=class extends e8e.Client{constructor(n){let t=(0,n8e.getRuntimeConfig)(n),s=(0,t8e.resolveClientEndpointParameters)(t),r=(0,VKe.resolveRegionConfig)(s),i=(0,QKe.resolveEndpointConfig)(r),a=(0,iQ.resolveRetryConfig)(i),o=(0,rQ.resolveHostHeaderConfig)(a),c=(0,aQ.resolveAwsAuthConfig)(o),l=(0,oQ.resolveS3Config)(c),d=(0,cQ.resolveUserAgentConfig)(l),h=(0,WKe.resolveEventStreamSerdeConfig)(d);super(h),this.config=h,this.middlewareStack.use((0,iQ.getRetryPlugin)(this.config)),this.middlewareStack.use((0,KKe.getContentLengthPlugin)(this.config)),this.middlewareStack.use((0,rQ.getHostHeaderPlugin)(this.config)),this.middlewareStack.use((0,YKe.getLoggerPlugin)(this.config)),this.middlewareStack.use((0,ZKe.getRecursionDetectionPlugin)(this.config)),this.middlewareStack.use((0,aQ.getAwsAuthPlugin)(this.config)),this.middlewareStack.use((0,oQ.getValidateBucketNamePlugin)(this.config)),this.middlewareStack.use((0,JKe.getAddExpectContinuePlugin)(this.config)),this.middlewareStack.use((0,cQ.getUserAgentPlugin)(this.config))}destroy(){super.destroy()}};uP.S3Client=nz});var pP=u(mP=>{"use strict";Object.defineProperty(mP,"__esModule",{value:!0});mP.S3=void 0;var s8e=mk(),r8e=gk(),i8e=yk(),o8e=_k(),a8e=fk(),c8e=Sk(),l8e=hk(),d8e=wk(),u8e=Ek(),m8e=Ck(),p8e=vk(),g8e=Pk(),y8e=Ak(),_8e=xk(),f8e=bk(),S8e=Ik(),h8e=kk(),w8e=Rk(),E8e=Nk(),C8e=Hk(),v8e=Vk(),P8e=Wk(),A8e=Kk(),x8e=Qk(),b8e=Jk(),I8e=Yk(),k8e=Zk(),R8e=eR(),N8e=tR(),z8e=nR(),q8e=sR(),L8e=rR(),F8e=iR(),D8e=oR(),T8e=aR(),j8e=cR(),M8e=lR(),O8e=dR(),B8e=uR(),G8e=mR(),U8e=pR(),X8e=gR(),$8e=yR(),H8e=_R(),V8e=fR(),W8e=SR(),K8e=hR(),Q8e=wR(),J8e=ER(),Y8e=CR(),Z8e=vR(),e6e=Ou(),t6e=Gu(),n6e=PR(),s6e=AR(),r6e=xR(),i6e=bR(),o6e=IR(),a6e=kR(),c6e=RR(),l6e=VC(),d6e=NR(),u6e=QC(),m6e=zR(),p6e=qR(),g6e=LR(),y6e=FR(),_6e=DR(),f6e=TR(),S6e=jR(),h6e=MR(),w6e=OR(),E6e=BR(),C6e=GR(),v6e=UR(),P6e=XR(),A6e=$R(),x6e=HR(),b6e=VR(),I6e=WR(),k6e=KR(),R6e=QR(),N6e=JR(),z6e=YR(),q6e=ZR(),L6e=eN(),F6e=tN(),D6e=nN(),T6e=sN(),j6e=rN(),M6e=iN(),O6e=oN(),B6e=aN(),G6e=jm(),sz=class extends G6e.S3Client{abortMultipartUpload(n,t,s){let r=new s8e.AbortMultipartUploadCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}completeMultipartUpload(n,t,s){let r=new r8e.CompleteMultipartUploadCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}copyObject(n,t,s){let r=new i8e.CopyObjectCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}createBucket(n,t,s){let r=new o8e.CreateBucketCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}createMultipartUpload(n,t,s){let r=new a8e.CreateMultipartUploadCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}deleteBucket(n,t,s){let r=new l8e.DeleteBucketCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}deleteBucketAnalyticsConfiguration(n,t,s){let r=new c8e.DeleteBucketAnalyticsConfigurationCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}deleteBucketCors(n,t,s){let r=new d8e.DeleteBucketCorsCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}deleteBucketEncryption(n,t,s){let r=new u8e.DeleteBucketEncryptionCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}deleteBucketIntelligentTieringConfiguration(n,t,s){let r=new m8e.DeleteBucketIntelligentTieringConfigurationCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}deleteBucketInventoryConfiguration(n,t,s){let r=new p8e.DeleteBucketInventoryConfigurationCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}deleteBucketLifecycle(n,t,s){let r=new g8e.DeleteBucketLifecycleCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}deleteBucketMetricsConfiguration(n,t,s){let r=new y8e.DeleteBucketMetricsConfigurationCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}deleteBucketOwnershipControls(n,t,s){let r=new _8e.DeleteBucketOwnershipControlsCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}deleteBucketPolicy(n,t,s){let r=new f8e.DeleteBucketPolicyCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}deleteBucketReplication(n,t,s){let r=new S8e.DeleteBucketReplicationCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}deleteBucketTagging(n,t,s){let r=new h8e.DeleteBucketTaggingCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}deleteBucketWebsite(n,t,s){let r=new w8e.DeleteBucketWebsiteCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}deleteObject(n,t,s){let r=new E8e.DeleteObjectCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}deleteObjects(n,t,s){let r=new C8e.DeleteObjectsCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}deleteObjectTagging(n,t,s){let r=new v8e.DeleteObjectTaggingCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}deletePublicAccessBlock(n,t,s){let r=new P8e.DeletePublicAccessBlockCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}getBucketAccelerateConfiguration(n,t,s){let r=new A8e.GetBucketAccelerateConfigurationCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}getBucketAcl(n,t,s){let r=new x8e.GetBucketAclCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}getBucketAnalyticsConfiguration(n,t,s){let r=new b8e.GetBucketAnalyticsConfigurationCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}getBucketCors(n,t,s){let r=new I8e.GetBucketCorsCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}getBucketEncryption(n,t,s){let r=new k8e.GetBucketEncryptionCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}getBucketIntelligentTieringConfiguration(n,t,s){let r=new R8e.GetBucketIntelligentTieringConfigurationCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}getBucketInventoryConfiguration(n,t,s){let r=new N8e.GetBucketInventoryConfigurationCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}getBucketLifecycleConfiguration(n,t,s){let r=new z8e.GetBucketLifecycleConfigurationCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}getBucketLocation(n,t,s){let r=new q8e.GetBucketLocationCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}getBucketLogging(n,t,s){let r=new L8e.GetBucketLoggingCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}getBucketMetricsConfiguration(n,t,s){let r=new F8e.GetBucketMetricsConfigurationCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}getBucketNotificationConfiguration(n,t,s){let r=new D8e.GetBucketNotificationConfigurationCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}getBucketOwnershipControls(n,t,s){let r=new T8e.GetBucketOwnershipControlsCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}getBucketPolicy(n,t,s){let r=new j8e.GetBucketPolicyCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}getBucketPolicyStatus(n,t,s){let r=new M8e.GetBucketPolicyStatusCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}getBucketReplication(n,t,s){let r=new O8e.GetBucketReplicationCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}getBucketRequestPayment(n,t,s){let r=new B8e.GetBucketRequestPaymentCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}getBucketTagging(n,t,s){let r=new G8e.GetBucketTaggingCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}getBucketVersioning(n,t,s){let r=new U8e.GetBucketVersioningCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}getBucketWebsite(n,t,s){let r=new X8e.GetBucketWebsiteCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}getObject(n,t,s){let r=new V8e.GetObjectCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}getObjectAcl(n,t,s){let r=new $8e.GetObjectAclCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}getObjectAttributes(n,t,s){let r=new H8e.GetObjectAttributesCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}getObjectLegalHold(n,t,s){let r=new W8e.GetObjectLegalHoldCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}getObjectLockConfiguration(n,t,s){let r=new K8e.GetObjectLockConfigurationCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}getObjectRetention(n,t,s){let r=new Q8e.GetObjectRetentionCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}getObjectTagging(n,t,s){let r=new J8e.GetObjectTaggingCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}getObjectTorrent(n,t,s){let r=new Y8e.GetObjectTorrentCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}getPublicAccessBlock(n,t,s){let r=new Z8e.GetPublicAccessBlockCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}headBucket(n,t,s){let r=new e6e.HeadBucketCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}headObject(n,t,s){let r=new t6e.HeadObjectCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}listBucketAnalyticsConfigurations(n,t,s){let r=new n6e.ListBucketAnalyticsConfigurationsCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}listBucketIntelligentTieringConfigurations(n,t,s){let r=new s6e.ListBucketIntelligentTieringConfigurationsCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}listBucketInventoryConfigurations(n,t,s){let r=new r6e.ListBucketInventoryConfigurationsCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}listBucketMetricsConfigurations(n,t,s){let r=new i6e.ListBucketMetricsConfigurationsCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}listBuckets(n,t,s){let r=new o6e.ListBucketsCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}listMultipartUploads(n,t,s){let r=new a6e.ListMultipartUploadsCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}listObjects(n,t,s){let r=new c6e.ListObjectsCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}listObjectsV2(n,t,s){let r=new l6e.ListObjectsV2Command(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}listObjectVersions(n,t,s){let r=new d6e.ListObjectVersionsCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}listParts(n,t,s){let r=new u6e.ListPartsCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}putBucketAccelerateConfiguration(n,t,s){let r=new m6e.PutBucketAccelerateConfigurationCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}putBucketAcl(n,t,s){let r=new p6e.PutBucketAclCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}putBucketAnalyticsConfiguration(n,t,s){let r=new g6e.PutBucketAnalyticsConfigurationCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}putBucketCors(n,t,s){let r=new y6e.PutBucketCorsCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}putBucketEncryption(n,t,s){let r=new _6e.PutBucketEncryptionCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}putBucketIntelligentTieringConfiguration(n,t,s){let r=new f6e.PutBucketIntelligentTieringConfigurationCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}putBucketInventoryConfiguration(n,t,s){let r=new S6e.PutBucketInventoryConfigurationCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}putBucketLifecycleConfiguration(n,t,s){let r=new h6e.PutBucketLifecycleConfigurationCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}putBucketLogging(n,t,s){let r=new w6e.PutBucketLoggingCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}putBucketMetricsConfiguration(n,t,s){let r=new E6e.PutBucketMetricsConfigurationCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}putBucketNotificationConfiguration(n,t,s){let r=new C6e.PutBucketNotificationConfigurationCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}putBucketOwnershipControls(n,t,s){let r=new v6e.PutBucketOwnershipControlsCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}putBucketPolicy(n,t,s){let r=new P6e.PutBucketPolicyCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}putBucketReplication(n,t,s){let r=new A6e.PutBucketReplicationCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}putBucketRequestPayment(n,t,s){let r=new x6e.PutBucketRequestPaymentCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}putBucketTagging(n,t,s){let r=new b6e.PutBucketTaggingCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}putBucketVersioning(n,t,s){let r=new I6e.PutBucketVersioningCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}putBucketWebsite(n,t,s){let r=new k6e.PutBucketWebsiteCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}putObject(n,t,s){let r=new N6e.PutObjectCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}putObjectAcl(n,t,s){let r=new R6e.PutObjectAclCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}putObjectLegalHold(n,t,s){let r=new z6e.PutObjectLegalHoldCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}putObjectLockConfiguration(n,t,s){let r=new q6e.PutObjectLockConfigurationCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}putObjectRetention(n,t,s){let r=new L6e.PutObjectRetentionCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}putObjectTagging(n,t,s){let r=new F6e.PutObjectTaggingCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}putPublicAccessBlock(n,t,s){let r=new D6e.PutPublicAccessBlockCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}restoreObject(n,t,s){let r=new T6e.RestoreObjectCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}selectObjectContent(n,t,s){let r=new j6e.SelectObjectContentCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}uploadPart(n,t,s){let r=new M6e.UploadPartCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}uploadPartCopy(n,t,s){let r=new O6e.UploadPartCopyCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}writeGetObjectResponse(n,t,s){let r=new B6e.WriteGetObjectResponseCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}};mP.S3=sz});var lQ=u($=>{"use strict";Object.defineProperty($,"__esModule",{value:!0});var Y=X();Y.__exportStar(mk(),$);Y.__exportStar(gk(),$);Y.__exportStar(yk(),$);Y.__exportStar(_k(),$);Y.__exportStar(fk(),$);Y.__exportStar(Sk(),$);Y.__exportStar(hk(),$);Y.__exportStar(wk(),$);Y.__exportStar(Ek(),$);Y.__exportStar(Ck(),$);Y.__exportStar(vk(),$);Y.__exportStar(Pk(),$);Y.__exportStar(Ak(),$);Y.__exportStar(xk(),$);Y.__exportStar(bk(),$);Y.__exportStar(Ik(),$);Y.__exportStar(kk(),$);Y.__exportStar(Rk(),$);Y.__exportStar(Nk(),$);Y.__exportStar(Vk(),$);Y.__exportStar(Hk(),$);Y.__exportStar(Wk(),$);Y.__exportStar(Kk(),$);Y.__exportStar(Qk(),$);Y.__exportStar(Jk(),$);Y.__exportStar(Yk(),$);Y.__exportStar(Zk(),$);Y.__exportStar(eR(),$);Y.__exportStar(tR(),$);Y.__exportStar(nR(),$);Y.__exportStar(sR(),$);Y.__exportStar(rR(),$);Y.__exportStar(iR(),$);Y.__exportStar(oR(),$);Y.__exportStar(aR(),$);Y.__exportStar(cR(),$);Y.__exportStar(lR(),$);Y.__exportStar(dR(),$);Y.__exportStar(uR(),$);Y.__exportStar(mR(),$);Y.__exportStar(pR(),$);Y.__exportStar(gR(),$);Y.__exportStar(yR(),$);Y.__exportStar(_R(),$);Y.__exportStar(fR(),$);Y.__exportStar(SR(),$);Y.__exportStar(hR(),$);Y.__exportStar(wR(),$);Y.__exportStar(ER(),$);Y.__exportStar(CR(),$);Y.__exportStar(vR(),$);Y.__exportStar(Ou(),$);Y.__exportStar(Gu(),$);Y.__exportStar(PR(),$);Y.__exportStar(AR(),$);Y.__exportStar(xR(),$);Y.__exportStar(bR(),$);Y.__exportStar(IR(),$);Y.__exportStar(kR(),$);Y.__exportStar(NR(),$);Y.__exportStar(RR(),$);Y.__exportStar(VC(),$);Y.__exportStar(QC(),$);Y.__exportStar(zR(),$);Y.__exportStar(qR(),$);Y.__exportStar(LR(),$);Y.__exportStar(FR(),$);Y.__exportStar(DR(),$);Y.__exportStar(TR(),$);Y.__exportStar(jR(),$);Y.__exportStar(MR(),$);Y.__exportStar(OR(),$);Y.__exportStar(BR(),$);Y.__exportStar(GR(),$);Y.__exportStar(UR(),$);Y.__exportStar(XR(),$);Y.__exportStar($R(),$);Y.__exportStar(HR(),$);Y.__exportStar(VR(),$);Y.__exportStar(WR(),$);Y.__exportStar(KR(),$);Y.__exportStar(QR(),$);Y.__exportStar(JR(),$);Y.__exportStar(YR(),$);Y.__exportStar(ZR(),$);Y.__exportStar(eN(),$);Y.__exportStar(tN(),$);Y.__exportStar(nN(),$);Y.__exportStar(sN(),$);Y.__exportStar(rN(),$);Y.__exportStar(iN(),$);Y.__exportStar(oN(),$);Y.__exportStar(aN(),$)});var uQ=u(gP=>{"use strict";Object.defineProperty(gP,"__esModule",{value:!0});var dQ=X();dQ.__exportStar(ee(),gP);dQ.__exportStar(Zn(),gP)});var pQ=u(mQ=>{"use strict";Object.defineProperty(mQ,"__esModule",{value:!0})});var gQ=u(yP=>{"use strict";Object.defineProperty(yP,"__esModule",{value:!0});yP.paginateListObjectsV2=void 0;var U6e=VC(),X6e=pP(),$6e=jm(),H6e=async(e,n,...t)=>await e.send(new U6e.ListObjectsV2Command(n),...t),V6e=async(e,n,...t)=>await e.listObjectsV2(n,...t);async function*W6e(e,n,...t){let s=e.startingToken||void 0,r=!0,i;for(;r;){if(n.ContinuationToken=s,n.MaxKeys=e.pageSize,e.client instanceof X6e.S3)i=await V6e(e.client,n,...t);else if(e.client instanceof $6e.S3Client)i=await H6e(e.client,n,...t);else throw new Error("Invalid client, expected S3 | S3Client");yield i;let a=s;s=i.NextContinuationToken,r=!!(s&&(!e.stopOnSameToken||s!==a))}return void 0}yP.paginateListObjectsV2=W6e});var yQ=u(_P=>{"use strict";Object.defineProperty(_P,"__esModule",{value:!0});_P.paginateListParts=void 0;var K6e=QC(),Q6e=pP(),J6e=jm(),Y6e=async(e,n,...t)=>await e.send(new K6e.ListPartsCommand(n),...t),Z6e=async(e,n,...t)=>await e.listParts(n,...t);async function*eQe(e,n,...t){let s=e.startingToken||void 0,r=!0,i;for(;r;){if(n.PartNumberMarker=s,n.MaxParts=e.pageSize,e.client instanceof Q6e.S3)i=await Z6e(e.client,n,...t);else if(e.client instanceof J6e.S3Client)i=await Y6e(e.client,n,...t);else throw new Error("Invalid client, expected S3 | S3Client");yield i;let a=s;s=i.NextPartNumberMarker,r=!!(s&&(!e.stopOnSameToken||s!==a))}return void 0}_P.paginateListParts=eQe});var _Q=u(Mm=>{"use strict";Object.defineProperty(Mm,"__esModule",{value:!0});var rz=X();rz.__exportStar(pQ(),Mm);rz.__exportStar(gQ(),Mm);rz.__exportStar(yQ(),Mm)});var iz=u(fP=>{"use strict";Object.defineProperty(fP,"__esModule",{value:!0});fP.sleep=void 0;var tQe=e=>new Promise(n=>setTimeout(n,e*1e3));fP.sleep=tQe});var hP=u(gr=>{"use strict";Object.defineProperty(gr,"__esModule",{value:!0});gr.checkExceptions=gr.WaiterState=gr.waiterServiceDefaults=void 0;gr.waiterServiceDefaults={minDelay:2,maxDelay:120};var SP;(function(e){e.ABORTED="ABORTED",e.FAILURE="FAILURE",e.SUCCESS="SUCCESS",e.RETRY="RETRY",e.TIMEOUT="TIMEOUT"})(SP=gr.WaiterState||(gr.WaiterState={}));var nQe=e=>{if(e.state===SP.ABORTED){let n=new Error(`${JSON.stringify({...e,reason:"Request was aborted"})}`);throw n.name="AbortError",n}else if(e.state===SP.TIMEOUT){let n=new Error(`${JSON.stringify({...e,reason:"Waiter has timed out"})}`);throw n.name="TimeoutError",n}else if(e.state!==SP.SUCCESS)throw new Error(`${JSON.stringify({result:e})}`);return e};gr.checkExceptions=nQe});var fQ=u(EP=>{"use strict";Object.defineProperty(EP,"__esModule",{value:!0});EP.runPolling=void 0;var sQe=iz(),wP=hP(),rQe=(e,n,t,s)=>{if(s>t)return n;let r=e*2**(s-1);return iQe(e,r)},iQe=(e,n)=>e+Math.random()*(n-e),oQe=async({minDelay:e,maxDelay:n,maxWaitTime:t,abortController:s,client:r,abortSignal:i},a,o)=>{var c;let{state:l,reason:d}=await o(r,a);if(l!==wP.WaiterState.RETRY)return{state:l,reason:d};let h=1,v=Date.now()+t*1e3,z=Math.log(n/e)/Math.log(2)+1;for(;;){if(((c=s?.signal)===null||c===void 0?void 0:c.aborted)||i?.aborted)return{state:wP.WaiterState.ABORTED};let q=rQe(e,n,z,h);if(Date.now()+q*1e3>v)return{state:wP.WaiterState.TIMEOUT};await(0,sQe.sleep)(q);let{state:T,reason:U}=await o(r,a);if(T!==wP.WaiterState.RETRY)return{state:T,reason:U};h+=1}};EP.runPolling=oQe});var SQ=u(CP=>{"use strict";Object.defineProperty(CP,"__esModule",{value:!0});CP.validateWaiterOptions=void 0;var aQe=e=>{if(e.maxWaitTime<1)throw new Error("WaiterConfiguration.maxWaitTime must be greater than 0");if(e.minDelay<1)throw new Error("WaiterConfiguration.minDelay must be greater than 0");if(e.maxDelay<1)throw new Error("WaiterConfiguration.maxDelay must be greater than 0");if(e.maxWaitTime<=e.minDelay)throw new Error(`WaiterConfiguration.maxWaitTime [${e.maxWaitTime}] must be greater than WaiterConfiguration.minDelay [${e.minDelay}] for this waiter`);if(e.maxDelay{"use strict";Object.defineProperty(vP,"__esModule",{value:!0});var hQ=X();hQ.__exportStar(iz(),vP);hQ.__exportStar(SQ(),vP)});var vQ=u(PP=>{"use strict";Object.defineProperty(PP,"__esModule",{value:!0});PP.createWaiter=void 0;var cQe=fQ(),lQe=wQ(),CQ=hP(),EQ=async e=>new Promise(n=>{e.onabort=()=>n({state:CQ.WaiterState.ABORTED})}),dQe=async(e,n,t)=>{let s={...CQ.waiterServiceDefaults,...e};(0,lQe.validateWaiterOptions)(s);let r=[(0,cQe.runPolling)(s,n,t)];return e.abortController&&r.push(EQ(e.abortController.signal)),e.abortSignal&&r.push(EQ(e.abortSignal)),Promise.race(r)};PP.createWaiter=dQe});var Om=u(AP=>{"use strict";Object.defineProperty(AP,"__esModule",{value:!0});var PQ=X();PQ.__exportStar(vQ(),AP);PQ.__exportStar(hP(),AP)});var xQ=u(Mo=>{"use strict";Object.defineProperty(Mo,"__esModule",{value:!0});Mo.waitUntilBucketExists=Mo.waitForBucketExists=void 0;var jo=Om(),uQe=Ou(),AQ=async(e,n)=>{let t;try{return t=await e.send(new uQe.HeadBucketCommand(n)),{state:jo.WaiterState.SUCCESS,reason:t}}catch(s){if(t=s,s.name&&s.name=="NotFound")return{state:jo.WaiterState.RETRY,reason:t}}return{state:jo.WaiterState.RETRY,reason:t}},mQe=async(e,n)=>{let t={minDelay:5,maxDelay:120};return(0,jo.createWaiter)({...t,...e},n,AQ)};Mo.waitForBucketExists=mQe;var pQe=async(e,n)=>{let t={minDelay:5,maxDelay:120},s=await(0,jo.createWaiter)({...t,...e},n,AQ);return(0,jo.checkExceptions)(s)};Mo.waitUntilBucketExists=pQe});var IQ=u(Oo=>{"use strict";Object.defineProperty(Oo,"__esModule",{value:!0});Oo.waitUntilBucketNotExists=Oo.waitForBucketNotExists=void 0;var Bm=Om(),gQe=Ou(),bQ=async(e,n)=>{let t;try{t=await e.send(new gQe.HeadBucketCommand(n))}catch(s){if(t=s,s.name&&s.name=="NotFound")return{state:Bm.WaiterState.SUCCESS,reason:t}}return{state:Bm.WaiterState.RETRY,reason:t}},yQe=async(e,n)=>{let t={minDelay:5,maxDelay:120};return(0,Bm.createWaiter)({...t,...e},n,bQ)};Oo.waitForBucketNotExists=yQe;var _Qe=async(e,n)=>{let t={minDelay:5,maxDelay:120},s=await(0,Bm.createWaiter)({...t,...e},n,bQ);return(0,Bm.checkExceptions)(s)};Oo.waitUntilBucketNotExists=_Qe});var RQ=u(Go=>{"use strict";Object.defineProperty(Go,"__esModule",{value:!0});Go.waitUntilObjectExists=Go.waitForObjectExists=void 0;var Bo=Om(),fQe=Gu(),kQ=async(e,n)=>{let t;try{return t=await e.send(new fQe.HeadObjectCommand(n)),{state:Bo.WaiterState.SUCCESS,reason:t}}catch(s){if(t=s,s.name&&s.name=="NotFound")return{state:Bo.WaiterState.RETRY,reason:t}}return{state:Bo.WaiterState.RETRY,reason:t}},SQe=async(e,n)=>{let t={minDelay:5,maxDelay:120};return(0,Bo.createWaiter)({...t,...e},n,kQ)};Go.waitForObjectExists=SQe;var hQe=async(e,n)=>{let t={minDelay:5,maxDelay:120},s=await(0,Bo.createWaiter)({...t,...e},n,kQ);return(0,Bo.checkExceptions)(s)};Go.waitUntilObjectExists=hQe});var zQ=u(Uo=>{"use strict";Object.defineProperty(Uo,"__esModule",{value:!0});Uo.waitUntilObjectNotExists=Uo.waitForObjectNotExists=void 0;var Gm=Om(),wQe=Gu(),NQ=async(e,n)=>{let t;try{t=await e.send(new wQe.HeadObjectCommand(n))}catch(s){if(t=s,s.name&&s.name=="NotFound")return{state:Gm.WaiterState.SUCCESS,reason:t}}return{state:Gm.WaiterState.RETRY,reason:t}},EQe=async(e,n)=>{let t={minDelay:5,maxDelay:120};return(0,Gm.createWaiter)({...t,...e},n,NQ)};Uo.waitForObjectNotExists=EQe;var CQe=async(e,n)=>{let t={minDelay:5,maxDelay:120},s=await(0,Gm.createWaiter)({...t,...e},n,NQ);return(0,Gm.checkExceptions)(s)};Uo.waitUntilObjectNotExists=CQe});var qQ=u(Xo=>{"use strict";Object.defineProperty(Xo,"__esModule",{value:!0});var xP=X();xP.__exportStar(xQ(),Xo);xP.__exportStar(IQ(),Xo);xP.__exportStar(RQ(),Xo);xP.__exportStar(zQ(),Xo)});var LQ=u(js=>{"use strict";Object.defineProperty(js,"__esModule",{value:!0});js.S3ServiceException=void 0;var $o=X();$o.__exportStar(pP(),js);$o.__exportStar(jm(),js);$o.__exportStar(lQ(),js);$o.__exportStar(uQ(),js);$o.__exportStar(_Q(),js);$o.__exportStar(qQ(),js);var vQe=xd();Object.defineProperty(js,"S3ServiceException",{enumerable:!0,get:function(){return vQe.S3ServiceException}})});var FQ=u(bP=>{"use strict";Object.defineProperty(bP,"__esModule",{value:!0});bP.resolveClientEndpointParameters=void 0;var PQe=e=>({...e,useDualstackEndpoint:e.useDualstackEndpoint??!1,useFipsEndpoint:e.useFipsEndpoint??!1,defaultSigningName:"athena"});bP.resolveClientEndpointParameters=PQe});var DQ=u((nvt,AQe)=>{AQe.exports={name:"@aws-sdk/client-athena",description:"AWS SDK for JavaScript Athena Client for Node.js, Browser and React Native",version:"3.282.0",scripts:{build:"concurrently 'yarn:build:cjs' 'yarn:build:es' 'yarn:build:types'","build:cjs":"tsc -p tsconfig.cjs.json","build:docs":"typedoc","build:es":"tsc -p tsconfig.es.json","build:include:deps":"lerna run --scope $npm_package_name --include-dependencies build","build:types":"tsc -p tsconfig.types.json","build:types:downlevel":"downlevel-dts dist-types dist-types/ts3.4",clean:"rimraf ./dist-* && rimraf *.tsbuildinfo","generate:client":"node ../../scripts/generate-clients/single-service --solo athena"},main:"./dist-cjs/index.js",types:"./dist-types/index.d.ts",module:"./dist-es/index.js",sideEffects:!1,dependencies:{"@aws-crypto/sha256-browser":"3.0.0","@aws-crypto/sha256-js":"3.0.0","@aws-sdk/client-sts":"3.282.0","@aws-sdk/config-resolver":"3.282.0","@aws-sdk/credential-provider-node":"3.282.0","@aws-sdk/fetch-http-handler":"3.282.0","@aws-sdk/hash-node":"3.272.0","@aws-sdk/invalid-dependency":"3.272.0","@aws-sdk/middleware-content-length":"3.282.0","@aws-sdk/middleware-endpoint":"3.282.0","@aws-sdk/middleware-host-header":"3.282.0","@aws-sdk/middleware-logger":"3.272.0","@aws-sdk/middleware-recursion-detection":"3.282.0","@aws-sdk/middleware-retry":"3.282.0","@aws-sdk/middleware-serde":"3.272.0","@aws-sdk/middleware-signing":"3.282.0","@aws-sdk/middleware-stack":"3.272.0","@aws-sdk/middleware-user-agent":"3.282.0","@aws-sdk/node-config-provider":"3.272.0","@aws-sdk/node-http-handler":"3.282.0","@aws-sdk/protocol-http":"3.282.0","@aws-sdk/smithy-client":"3.279.0","@aws-sdk/types":"3.272.0","@aws-sdk/url-parser":"3.272.0","@aws-sdk/util-base64":"3.208.0","@aws-sdk/util-body-length-browser":"3.188.0","@aws-sdk/util-body-length-node":"3.208.0","@aws-sdk/util-defaults-mode-browser":"3.279.0","@aws-sdk/util-defaults-mode-node":"3.282.0","@aws-sdk/util-endpoints":"3.272.0","@aws-sdk/util-retry":"3.272.0","@aws-sdk/util-user-agent-browser":"3.282.0","@aws-sdk/util-user-agent-node":"3.282.0","@aws-sdk/util-utf8":"3.254.0",tslib:"^2.3.1",uuid:"^8.3.2"},devDependencies:{"@aws-sdk/service-client-documentation-generator":"3.208.0","@tsconfig/node14":"1.0.3","@types/node":"^14.14.31","@types/uuid":"^8.3.0",concurrently:"7.0.0","downlevel-dts":"0.10.1",rimraf:"3.0.2",typedoc:"0.19.2",typescript:"~4.6.2"},overrides:{typedoc:{typescript:"~4.6.2"}},engines:{node:">=14.0.0"},typesVersions:{"<4.0":{"dist-types/*":["dist-types/ts3.4/*"]}},files:["dist-*"],author:{name:"AWS SDK for JavaScript Team",url:"https://aws.amazon.com/javascript/"},license:"Apache-2.0",browser:{"./dist-es/runtimeConfig":"./dist-es/runtimeConfig.browser"},"react-native":{"./dist-es/runtimeConfig":"./dist-es/runtimeConfig.native"},homepage:"https://github.com/aws/aws-sdk-js-v3/tree/main/clients/client-athena",repository:{type:"git",url:"https://github.com/aws/aws-sdk-js-v3.git",directory:"clients/client-athena"}}});var HQ=u(IP=>{"use strict";Object.defineProperty(IP,"__esModule",{value:!0});IP.ruleSet=void 0;var ai="fn",ci="argv",Ho="ref",xQe=!0,bQe=!1,TQ="String",oz="PartitionResult",Ms="tree",Um="error",Xm="endpoint",jQ={required:!0,default:!1,type:"Boolean"},MQ={[Ho]:"Endpoint"},XQ={[ai]:"booleanEquals",[ci]:[{[Ho]:"UseFIPS"},!0]},$Q={[ai]:"booleanEquals",[ci]:[{[Ho]:"UseDualStack"},!0]},Os={},OQ={[ai]:"booleanEquals",[ci]:[!0,{[ai]:"getAttr",[ci]:[{[Ho]:oz},"supportsFIPS"]}]},BQ={[ai]:"booleanEquals",[ci]:[!0,{[ai]:"getAttr",[ci]:[{[Ho]:oz},"supportsDualStack"]}]},GQ=[XQ],UQ=[$Q],IQe={version:"1.0",parameters:{Region:{required:xQe,type:TQ},UseDualStack:jQ,UseFIPS:jQ,Endpoint:{required:bQe,type:TQ}},rules:[{conditions:[{[ai]:"aws.partition",[ci]:[{[Ho]:"Region"}],assign:oz}],type:Ms,rules:[{conditions:[{[ai]:"isSet",[ci]:[MQ]}],type:Ms,rules:[{conditions:GQ,error:"Invalid Configuration: FIPS and custom endpoint are not supported",type:Um},{type:Ms,rules:[{conditions:UQ,error:"Invalid Configuration: Dualstack and custom endpoint are not supported",type:Um},{endpoint:{url:MQ,properties:Os,headers:Os},type:Xm}]}]},{conditions:[XQ,$Q],type:Ms,rules:[{conditions:[OQ,BQ],type:Ms,rules:[{endpoint:{url:"https://athena-fips.{Region}.{PartitionResult#dualStackDnsSuffix}",properties:Os,headers:Os},type:Xm}]},{error:"FIPS and DualStack are enabled, but this partition does not support one or both",type:Um}]},{conditions:GQ,type:Ms,rules:[{conditions:[OQ],type:Ms,rules:[{type:Ms,rules:[{endpoint:{url:"https://athena-fips.{Region}.{PartitionResult#dnsSuffix}",properties:Os,headers:Os},type:Xm}]}]},{error:"FIPS is enabled but this partition does not support FIPS",type:Um}]},{conditions:UQ,type:Ms,rules:[{conditions:[BQ],type:Ms,rules:[{endpoint:{url:"https://athena.{Region}.{PartitionResult#dualStackDnsSuffix}",properties:Os,headers:Os},type:Xm}]},{error:"DualStack is enabled but this partition does not support DualStack",type:Um}]},{endpoint:{url:"https://athena.{Region}.{PartitionResult#dnsSuffix}",properties:Os,headers:Os},type:Xm}]}]};IP.ruleSet=IQe});var VQ=u(kP=>{"use strict";Object.defineProperty(kP,"__esModule",{value:!0});kP.defaultEndpointResolver=void 0;var kQe=Ur(),RQe=HQ(),NQe=(e,n={})=>(0,kQe.resolveEndpoint)(RQe.ruleSet,{endpointParams:e,logger:n.logger});kP.defaultEndpointResolver=NQe});var QQ=u(RP=>{"use strict";Object.defineProperty(RP,"__esModule",{value:!0});RP.getRuntimeConfig=void 0;var zQe=E(),qQe=ts(),WQ=Br(),KQ=Sn(),LQe=VQ(),FQe=e=>({apiVersion:"2017-05-18",base64Decoder:e?.base64Decoder??WQ.fromBase64,base64Encoder:e?.base64Encoder??WQ.toBase64,disableHostPrefix:e?.disableHostPrefix??!1,endpointProvider:e?.endpointProvider??LQe.defaultEndpointResolver,logger:e?.logger??new zQe.NoOpLogger,serviceId:e?.serviceId??"Athena",urlParser:e?.urlParser??qQe.parseUrl,utf8Decoder:e?.utf8Decoder??KQ.fromUtf8,utf8Encoder:e?.utf8Encoder??KQ.toUtf8});RP.getRuntimeConfig=FQe});var ZQ=u(zP=>{"use strict";Object.defineProperty(zP,"__esModule",{value:!0});zP.getRuntimeConfig=void 0;var DQe=X(),TQe=DQe.__importDefault(DQ()),jQe=xs(),NP=tn(),MQe=Vr(),OQe=jr(),JQ=un(),$m=Qn(),YQ=Ks(),BQe=Mr(),GQe=dn(),UQe=Or(),XQe=QQ(),$Qe=E(),HQe=$r(),VQe=E(),WQe=e=>{(0,VQe.emitWarningIfUnsupportedVersion)(process.version);let n=(0,HQe.resolveDefaultsModeConfig)(e),t=()=>n().then($Qe.loadConfigsForDefaultMode),s=(0,XQe.getRuntimeConfig)(e);return{...s,...e,runtime:"node",defaultsMode:n,bodyLengthChecker:e?.bodyLengthChecker??BQe.calculateBodyLength,credentialDefaultProvider:e?.credentialDefaultProvider??(0,jQe.decorateDefaultCredentialProvider)(MQe.defaultProvider),defaultUserAgentProvider:e?.defaultUserAgentProvider??(0,UQe.defaultUserAgent)({serviceId:s.serviceId,clientVersion:TQe.default.version}),maxAttempts:e?.maxAttempts??(0,$m.loadConfig)(JQ.NODE_MAX_ATTEMPT_CONFIG_OPTIONS),region:e?.region??(0,$m.loadConfig)(NP.NODE_REGION_CONFIG_OPTIONS,NP.NODE_REGION_CONFIG_FILE_OPTIONS),requestHandler:e?.requestHandler??new YQ.NodeHttpHandler(t),retryMode:e?.retryMode??(0,$m.loadConfig)({...JQ.NODE_RETRY_MODE_CONFIG_OPTIONS,default:async()=>(await t()).retryMode||GQe.DEFAULT_RETRY_MODE}),sha256:e?.sha256??OQe.Hash.bind(null,"sha256"),streamCollector:e?.streamCollector??YQ.streamCollector,useDualstackEndpoint:e?.useDualstackEndpoint??(0,$m.loadConfig)(NP.NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS),useFipsEndpoint:e?.useFipsEndpoint??(0,$m.loadConfig)(NP.NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS)}};zP.getRuntimeConfig=WQe});var Zt=u(qP=>{"use strict";Object.defineProperty(qP,"__esModule",{value:!0});qP.AthenaClient=void 0;var KQe=tn(),QQe=fr(),JQe=x(),e4=Sr(),YQe=hr(),ZQe=wr(),t4=un(),n4=He(),s4=xr(),e4e=E(),t4e=FQ(),n4e=ZQ(),az=class extends e4e.Client{constructor(n){let t=(0,n4e.getRuntimeConfig)(n),s=(0,t4e.resolveClientEndpointParameters)(t),r=(0,KQe.resolveRegionConfig)(s),i=(0,JQe.resolveEndpointConfig)(r),a=(0,t4.resolveRetryConfig)(i),o=(0,e4.resolveHostHeaderConfig)(a),c=(0,n4.resolveAwsAuthConfig)(o),l=(0,s4.resolveUserAgentConfig)(c);super(l),this.config=l,this.middlewareStack.use((0,t4.getRetryPlugin)(this.config)),this.middlewareStack.use((0,QQe.getContentLengthPlugin)(this.config)),this.middlewareStack.use((0,e4.getHostHeaderPlugin)(this.config)),this.middlewareStack.use((0,YQe.getLoggerPlugin)(this.config)),this.middlewareStack.use((0,ZQe.getRecursionDetectionPlugin)(this.config)),this.middlewareStack.use((0,n4.getAwsAuthPlugin)(this.config)),this.middlewareStack.use((0,s4.getUserAgentPlugin)(this.config))}destroy(){super.destroy()}};qP.AthenaClient=az});var FP=u(LP=>{"use strict";Object.defineProperty(LP,"__esModule",{value:!0});LP.AthenaServiceException=void 0;var s4e=E(),Hm=class extends s4e.ServiceException{constructor(n){super(n),Object.setPrototypeOf(this,Hm.prototype)}};LP.AthenaServiceException=Hm});var de=u(g=>{"use strict";Object.defineProperty(g,"__esModule",{value:!0});g.CreatePreparedStatementInputFilterSensitiveLog=g.CreateNotebookOutputFilterSensitiveLog=g.CreateNotebookInputFilterSensitiveLog=g.CreateNamedQueryOutputFilterSensitiveLog=g.CreateNamedQueryInputFilterSensitiveLog=g.CreateDataCatalogOutputFilterSensitiveLog=g.CreateDataCatalogInputFilterSensitiveLog=g.TagFilterSensitiveLog=g.BatchGetQueryExecutionOutputFilterSensitiveLog=g.UnprocessedQueryExecutionIdFilterSensitiveLog=g.QueryExecutionFilterSensitiveLog=g.QueryExecutionStatusFilterSensitiveLog=g.AthenaErrorFilterSensitiveLog=g.QueryExecutionStatisticsFilterSensitiveLog=g.ResultReuseInformationFilterSensitiveLog=g.ResultReuseConfigurationFilterSensitiveLog=g.ResultReuseByAgeConfigurationFilterSensitiveLog=g.ResultConfigurationFilterSensitiveLog=g.EncryptionConfigurationFilterSensitiveLog=g.QueryExecutionContextFilterSensitiveLog=g.EngineVersionFilterSensitiveLog=g.BatchGetQueryExecutionInputFilterSensitiveLog=g.BatchGetPreparedStatementOutputFilterSensitiveLog=g.UnprocessedPreparedStatementNameFilterSensitiveLog=g.PreparedStatementFilterSensitiveLog=g.BatchGetPreparedStatementInputFilterSensitiveLog=g.BatchGetNamedQueryOutputFilterSensitiveLog=g.UnprocessedNamedQueryIdFilterSensitiveLog=g.NamedQueryFilterSensitiveLog=g.BatchGetNamedQueryInputFilterSensitiveLog=g.AclConfigurationFilterSensitiveLog=g.SessionAlreadyExistsException=g.ExecutorType=g.ExecutorState=g.WorkGroupState=g.SessionState=g.ColumnNullable=g.MetadataException=g.CalculationExecutionState=g.NotebookType=g.ResourceNotFoundException=g.TooManyRequestsException=g.ThrottleReason=g.DataCatalogType=g.QueryExecutionState=g.StatementType=g.EncryptionOption=g.InvalidRequestException=g.InternalServerException=g.S3AclOption=void 0;g.GetQueryResultsOutputFilterSensitiveLog=g.ResultSetFilterSensitiveLog=g.RowFilterSensitiveLog=g.DatumFilterSensitiveLog=g.ResultSetMetadataFilterSensitiveLog=g.ColumnInfoFilterSensitiveLog=g.GetQueryResultsInputFilterSensitiveLog=g.GetQueryExecutionOutputFilterSensitiveLog=g.GetQueryExecutionInputFilterSensitiveLog=g.GetPreparedStatementOutputFilterSensitiveLog=g.GetPreparedStatementInputFilterSensitiveLog=g.GetNotebookMetadataOutputFilterSensitiveLog=g.GetNotebookMetadataInputFilterSensitiveLog=g.GetNamedQueryOutputFilterSensitiveLog=g.GetNamedQueryInputFilterSensitiveLog=g.GetDataCatalogOutputFilterSensitiveLog=g.DataCatalogFilterSensitiveLog=g.GetDataCatalogInputFilterSensitiveLog=g.GetDatabaseOutputFilterSensitiveLog=g.DatabaseFilterSensitiveLog=g.GetDatabaseInputFilterSensitiveLog=g.GetCalculationExecutionStatusResponseFilterSensitiveLog=g.GetCalculationExecutionStatusRequestFilterSensitiveLog=g.GetCalculationExecutionCodeResponseFilterSensitiveLog=g.GetCalculationExecutionCodeRequestFilterSensitiveLog=g.GetCalculationExecutionResponseFilterSensitiveLog=g.CalculationStatusFilterSensitiveLog=g.CalculationStatisticsFilterSensitiveLog=g.CalculationResultFilterSensitiveLog=g.GetCalculationExecutionRequestFilterSensitiveLog=g.ExportNotebookOutputFilterSensitiveLog=g.NotebookMetadataFilterSensitiveLog=g.ExportNotebookInputFilterSensitiveLog=g.DeleteWorkGroupOutputFilterSensitiveLog=g.DeleteWorkGroupInputFilterSensitiveLog=g.DeletePreparedStatementOutputFilterSensitiveLog=g.DeletePreparedStatementInputFilterSensitiveLog=g.DeleteNotebookOutputFilterSensitiveLog=g.DeleteNotebookInputFilterSensitiveLog=g.DeleteNamedQueryOutputFilterSensitiveLog=g.DeleteNamedQueryInputFilterSensitiveLog=g.DeleteDataCatalogOutputFilterSensitiveLog=g.DeleteDataCatalogInputFilterSensitiveLog=g.CreateWorkGroupOutputFilterSensitiveLog=g.CreateWorkGroupInputFilterSensitiveLog=g.WorkGroupConfigurationFilterSensitiveLog=g.CustomerContentEncryptionConfigurationFilterSensitiveLog=g.CreatePresignedNotebookUrlResponseFilterSensitiveLog=g.CreatePresignedNotebookUrlRequestFilterSensitiveLog=g.CreatePreparedStatementOutputFilterSensitiveLog=void 0;g.ListSessionsRequestFilterSensitiveLog=g.ListQueryExecutionsOutputFilterSensitiveLog=g.ListQueryExecutionsInputFilterSensitiveLog=g.ListPreparedStatementsOutputFilterSensitiveLog=g.PreparedStatementSummaryFilterSensitiveLog=g.ListPreparedStatementsInputFilterSensitiveLog=g.ListNotebookSessionsResponseFilterSensitiveLog=g.NotebookSessionSummaryFilterSensitiveLog=g.ListNotebookSessionsRequestFilterSensitiveLog=g.ListNotebookMetadataOutputFilterSensitiveLog=g.ListNotebookMetadataInputFilterSensitiveLog=g.FilterDefinitionFilterSensitiveLog=g.ListNamedQueriesOutputFilterSensitiveLog=g.ListNamedQueriesInputFilterSensitiveLog=g.ListExecutorsResponseFilterSensitiveLog=g.ExecutorsSummaryFilterSensitiveLog=g.ListExecutorsRequestFilterSensitiveLog=g.ListEngineVersionsOutputFilterSensitiveLog=g.ListEngineVersionsInputFilterSensitiveLog=g.ListDataCatalogsOutputFilterSensitiveLog=g.DataCatalogSummaryFilterSensitiveLog=g.ListDataCatalogsInputFilterSensitiveLog=g.ListDatabasesOutputFilterSensitiveLog=g.ListDatabasesInputFilterSensitiveLog=g.ListCalculationExecutionsResponseFilterSensitiveLog=g.CalculationSummaryFilterSensitiveLog=g.ListCalculationExecutionsRequestFilterSensitiveLog=g.ListApplicationDPUSizesOutputFilterSensitiveLog=g.ApplicationDPUSizesFilterSensitiveLog=g.ListApplicationDPUSizesInputFilterSensitiveLog=g.ImportNotebookOutputFilterSensitiveLog=g.ImportNotebookInputFilterSensitiveLog=g.GetWorkGroupOutputFilterSensitiveLog=g.WorkGroupFilterSensitiveLog=g.GetWorkGroupInputFilterSensitiveLog=g.GetTableMetadataOutputFilterSensitiveLog=g.TableMetadataFilterSensitiveLog=g.ColumnFilterSensitiveLog=g.GetTableMetadataInputFilterSensitiveLog=g.GetSessionStatusResponseFilterSensitiveLog=g.GetSessionStatusRequestFilterSensitiveLog=g.GetSessionResponseFilterSensitiveLog=g.SessionStatusFilterSensitiveLog=g.SessionStatisticsFilterSensitiveLog=g.SessionConfigurationFilterSensitiveLog=g.EngineConfigurationFilterSensitiveLog=g.GetSessionRequestFilterSensitiveLog=g.QueryRuntimeStatisticsTimelineFilterSensitiveLog=g.QueryRuntimeStatisticsRowsFilterSensitiveLog=g.GetQueryRuntimeStatisticsInputFilterSensitiveLog=void 0;g.GetQueryRuntimeStatisticsOutputFilterSensitiveLog=g.QueryRuntimeStatisticsFilterSensitiveLog=g.QueryStageFilterSensitiveLog=g.QueryStagePlanNodeFilterSensitiveLog=g.UpdateWorkGroupOutputFilterSensitiveLog=g.UpdateWorkGroupInputFilterSensitiveLog=g.WorkGroupConfigurationUpdatesFilterSensitiveLog=g.ResultConfigurationUpdatesFilterSensitiveLog=g.UpdatePreparedStatementOutputFilterSensitiveLog=g.UpdatePreparedStatementInputFilterSensitiveLog=g.UpdateNotebookMetadataOutputFilterSensitiveLog=g.UpdateNotebookMetadataInputFilterSensitiveLog=g.UpdateNotebookOutputFilterSensitiveLog=g.UpdateNotebookInputFilterSensitiveLog=g.UpdateNamedQueryOutputFilterSensitiveLog=g.UpdateNamedQueryInputFilterSensitiveLog=g.UpdateDataCatalogOutputFilterSensitiveLog=g.UpdateDataCatalogInputFilterSensitiveLog=g.UntagResourceOutputFilterSensitiveLog=g.UntagResourceInputFilterSensitiveLog=g.TerminateSessionResponseFilterSensitiveLog=g.TerminateSessionRequestFilterSensitiveLog=g.TagResourceOutputFilterSensitiveLog=g.TagResourceInputFilterSensitiveLog=g.StopQueryExecutionOutputFilterSensitiveLog=g.StopQueryExecutionInputFilterSensitiveLog=g.StopCalculationExecutionResponseFilterSensitiveLog=g.StopCalculationExecutionRequestFilterSensitiveLog=g.StartSessionResponseFilterSensitiveLog=g.StartSessionRequestFilterSensitiveLog=g.StartQueryExecutionOutputFilterSensitiveLog=g.StartQueryExecutionInputFilterSensitiveLog=g.StartCalculationExecutionResponseFilterSensitiveLog=g.StartCalculationExecutionRequestFilterSensitiveLog=g.CalculationConfigurationFilterSensitiveLog=g.ListWorkGroupsOutputFilterSensitiveLog=g.WorkGroupSummaryFilterSensitiveLog=g.ListWorkGroupsInputFilterSensitiveLog=g.ListTagsForResourceOutputFilterSensitiveLog=g.ListTagsForResourceInputFilterSensitiveLog=g.ListTableMetadataOutputFilterSensitiveLog=g.ListTableMetadataInputFilterSensitiveLog=g.ListSessionsResponseFilterSensitiveLog=g.SessionSummaryFilterSensitiveLog=void 0;var Vo=FP(),r4e;(function(e){e.BUCKET_OWNER_FULL_CONTROL="BUCKET_OWNER_FULL_CONTROL"})(r4e=g.S3AclOption||(g.S3AclOption={}));var Vm=class extends Vo.AthenaServiceException{constructor(n){super({name:"InternalServerException",$fault:"server",...n}),this.name="InternalServerException",this.$fault="server",Object.setPrototypeOf(this,Vm.prototype),this.Message=n.Message}};g.InternalServerException=Vm;var Wm=class extends Vo.AthenaServiceException{constructor(n){super({name:"InvalidRequestException",$fault:"client",...n}),this.name="InvalidRequestException",this.$fault="client",Object.setPrototypeOf(this,Wm.prototype),this.AthenaErrorCode=n.AthenaErrorCode,this.Message=n.Message}};g.InvalidRequestException=Wm;var i4e;(function(e){e.CSE_KMS="CSE_KMS",e.SSE_KMS="SSE_KMS",e.SSE_S3="SSE_S3"})(i4e=g.EncryptionOption||(g.EncryptionOption={}));var o4e;(function(e){e.DDL="DDL",e.DML="DML",e.UTILITY="UTILITY"})(o4e=g.StatementType||(g.StatementType={}));var a4e;(function(e){e.CANCELLED="CANCELLED",e.FAILED="FAILED",e.QUEUED="QUEUED",e.RUNNING="RUNNING",e.SUCCEEDED="SUCCEEDED"})(a4e=g.QueryExecutionState||(g.QueryExecutionState={}));var c4e;(function(e){e.GLUE="GLUE",e.HIVE="HIVE",e.LAMBDA="LAMBDA"})(c4e=g.DataCatalogType||(g.DataCatalogType={}));var l4e;(function(e){e.CONCURRENT_QUERY_LIMIT_EXCEEDED="CONCURRENT_QUERY_LIMIT_EXCEEDED"})(l4e=g.ThrottleReason||(g.ThrottleReason={}));var Km=class extends Vo.AthenaServiceException{constructor(n){super({name:"TooManyRequestsException",$fault:"client",...n}),this.name="TooManyRequestsException",this.$fault="client",Object.setPrototypeOf(this,Km.prototype),this.Message=n.Message,this.Reason=n.Reason}};g.TooManyRequestsException=Km;var Qm=class extends Vo.AthenaServiceException{constructor(n){super({name:"ResourceNotFoundException",$fault:"client",...n}),this.name="ResourceNotFoundException",this.$fault="client",Object.setPrototypeOf(this,Qm.prototype),this.Message=n.Message,this.ResourceName=n.ResourceName}};g.ResourceNotFoundException=Qm;var d4e;(function(e){e.IPYNB="IPYNB"})(d4e=g.NotebookType||(g.NotebookType={}));var u4e;(function(e){e.CANCELED="CANCELED",e.CANCELING="CANCELING",e.COMPLETED="COMPLETED",e.CREATED="CREATED",e.CREATING="CREATING",e.FAILED="FAILED",e.QUEUED="QUEUED",e.RUNNING="RUNNING"})(u4e=g.CalculationExecutionState||(g.CalculationExecutionState={}));var Jm=class extends Vo.AthenaServiceException{constructor(n){super({name:"MetadataException",$fault:"client",...n}),this.name="MetadataException",this.$fault="client",Object.setPrototypeOf(this,Jm.prototype),this.Message=n.Message}};g.MetadataException=Jm;var m4e;(function(e){e.NOT_NULL="NOT_NULL",e.NULLABLE="NULLABLE",e.UNKNOWN="UNKNOWN"})(m4e=g.ColumnNullable||(g.ColumnNullable={}));var p4e;(function(e){e.BUSY="BUSY",e.CREATED="CREATED",e.CREATING="CREATING",e.DEGRADED="DEGRADED",e.FAILED="FAILED",e.IDLE="IDLE",e.TERMINATED="TERMINATED",e.TERMINATING="TERMINATING"})(p4e=g.SessionState||(g.SessionState={}));var g4e;(function(e){e.DISABLED="DISABLED",e.ENABLED="ENABLED"})(g4e=g.WorkGroupState||(g.WorkGroupState={}));var y4e;(function(e){e.CREATED="CREATED",e.CREATING="CREATING",e.FAILED="FAILED",e.REGISTERED="REGISTERED",e.TERMINATED="TERMINATED",e.TERMINATING="TERMINATING"})(y4e=g.ExecutorState||(g.ExecutorState={}));var _4e;(function(e){e.COORDINATOR="COORDINATOR",e.GATEWAY="GATEWAY",e.WORKER="WORKER"})(_4e=g.ExecutorType||(g.ExecutorType={}));var Ym=class extends Vo.AthenaServiceException{constructor(n){super({name:"SessionAlreadyExistsException",$fault:"client",...n}),this.name="SessionAlreadyExistsException",this.$fault="client",Object.setPrototypeOf(this,Ym.prototype),this.Message=n.Message}};g.SessionAlreadyExistsException=Ym;var f4e=e=>({...e});g.AclConfigurationFilterSensitiveLog=f4e;var S4e=e=>({...e});g.BatchGetNamedQueryInputFilterSensitiveLog=S4e;var h4e=e=>({...e});g.NamedQueryFilterSensitiveLog=h4e;var w4e=e=>({...e});g.UnprocessedNamedQueryIdFilterSensitiveLog=w4e;var E4e=e=>({...e});g.BatchGetNamedQueryOutputFilterSensitiveLog=E4e;var C4e=e=>({...e});g.BatchGetPreparedStatementInputFilterSensitiveLog=C4e;var v4e=e=>({...e});g.PreparedStatementFilterSensitiveLog=v4e;var P4e=e=>({...e});g.UnprocessedPreparedStatementNameFilterSensitiveLog=P4e;var A4e=e=>({...e});g.BatchGetPreparedStatementOutputFilterSensitiveLog=A4e;var x4e=e=>({...e});g.BatchGetQueryExecutionInputFilterSensitiveLog=x4e;var b4e=e=>({...e});g.EngineVersionFilterSensitiveLog=b4e;var I4e=e=>({...e});g.QueryExecutionContextFilterSensitiveLog=I4e;var k4e=e=>({...e});g.EncryptionConfigurationFilterSensitiveLog=k4e;var R4e=e=>({...e});g.ResultConfigurationFilterSensitiveLog=R4e;var N4e=e=>({...e});g.ResultReuseByAgeConfigurationFilterSensitiveLog=N4e;var z4e=e=>({...e});g.ResultReuseConfigurationFilterSensitiveLog=z4e;var q4e=e=>({...e});g.ResultReuseInformationFilterSensitiveLog=q4e;var L4e=e=>({...e});g.QueryExecutionStatisticsFilterSensitiveLog=L4e;var F4e=e=>({...e});g.AthenaErrorFilterSensitiveLog=F4e;var D4e=e=>({...e});g.QueryExecutionStatusFilterSensitiveLog=D4e;var T4e=e=>({...e});g.QueryExecutionFilterSensitiveLog=T4e;var j4e=e=>({...e});g.UnprocessedQueryExecutionIdFilterSensitiveLog=j4e;var M4e=e=>({...e});g.BatchGetQueryExecutionOutputFilterSensitiveLog=M4e;var O4e=e=>({...e});g.TagFilterSensitiveLog=O4e;var B4e=e=>({...e});g.CreateDataCatalogInputFilterSensitiveLog=B4e;var G4e=e=>({...e});g.CreateDataCatalogOutputFilterSensitiveLog=G4e;var U4e=e=>({...e});g.CreateNamedQueryInputFilterSensitiveLog=U4e;var X4e=e=>({...e});g.CreateNamedQueryOutputFilterSensitiveLog=X4e;var $4e=e=>({...e});g.CreateNotebookInputFilterSensitiveLog=$4e;var H4e=e=>({...e});g.CreateNotebookOutputFilterSensitiveLog=H4e;var V4e=e=>({...e});g.CreatePreparedStatementInputFilterSensitiveLog=V4e;var W4e=e=>({...e});g.CreatePreparedStatementOutputFilterSensitiveLog=W4e;var K4e=e=>({...e});g.CreatePresignedNotebookUrlRequestFilterSensitiveLog=K4e;var Q4e=e=>({...e});g.CreatePresignedNotebookUrlResponseFilterSensitiveLog=Q4e;var J4e=e=>({...e});g.CustomerContentEncryptionConfigurationFilterSensitiveLog=J4e;var Y4e=e=>({...e});g.WorkGroupConfigurationFilterSensitiveLog=Y4e;var Z4e=e=>({...e});g.CreateWorkGroupInputFilterSensitiveLog=Z4e;var e5e=e=>({...e});g.CreateWorkGroupOutputFilterSensitiveLog=e5e;var t5e=e=>({...e});g.DeleteDataCatalogInputFilterSensitiveLog=t5e;var n5e=e=>({...e});g.DeleteDataCatalogOutputFilterSensitiveLog=n5e;var s5e=e=>({...e});g.DeleteNamedQueryInputFilterSensitiveLog=s5e;var r5e=e=>({...e});g.DeleteNamedQueryOutputFilterSensitiveLog=r5e;var i5e=e=>({...e});g.DeleteNotebookInputFilterSensitiveLog=i5e;var o5e=e=>({...e});g.DeleteNotebookOutputFilterSensitiveLog=o5e;var a5e=e=>({...e});g.DeletePreparedStatementInputFilterSensitiveLog=a5e;var c5e=e=>({...e});g.DeletePreparedStatementOutputFilterSensitiveLog=c5e;var l5e=e=>({...e});g.DeleteWorkGroupInputFilterSensitiveLog=l5e;var d5e=e=>({...e});g.DeleteWorkGroupOutputFilterSensitiveLog=d5e;var u5e=e=>({...e});g.ExportNotebookInputFilterSensitiveLog=u5e;var m5e=e=>({...e});g.NotebookMetadataFilterSensitiveLog=m5e;var p5e=e=>({...e});g.ExportNotebookOutputFilterSensitiveLog=p5e;var g5e=e=>({...e});g.GetCalculationExecutionRequestFilterSensitiveLog=g5e;var y5e=e=>({...e});g.CalculationResultFilterSensitiveLog=y5e;var _5e=e=>({...e});g.CalculationStatisticsFilterSensitiveLog=_5e;var f5e=e=>({...e});g.CalculationStatusFilterSensitiveLog=f5e;var S5e=e=>({...e});g.GetCalculationExecutionResponseFilterSensitiveLog=S5e;var h5e=e=>({...e});g.GetCalculationExecutionCodeRequestFilterSensitiveLog=h5e;var w5e=e=>({...e});g.GetCalculationExecutionCodeResponseFilterSensitiveLog=w5e;var E5e=e=>({...e});g.GetCalculationExecutionStatusRequestFilterSensitiveLog=E5e;var C5e=e=>({...e});g.GetCalculationExecutionStatusResponseFilterSensitiveLog=C5e;var v5e=e=>({...e});g.GetDatabaseInputFilterSensitiveLog=v5e;var P5e=e=>({...e});g.DatabaseFilterSensitiveLog=P5e;var A5e=e=>({...e});g.GetDatabaseOutputFilterSensitiveLog=A5e;var x5e=e=>({...e});g.GetDataCatalogInputFilterSensitiveLog=x5e;var b5e=e=>({...e});g.DataCatalogFilterSensitiveLog=b5e;var I5e=e=>({...e});g.GetDataCatalogOutputFilterSensitiveLog=I5e;var k5e=e=>({...e});g.GetNamedQueryInputFilterSensitiveLog=k5e;var R5e=e=>({...e});g.GetNamedQueryOutputFilterSensitiveLog=R5e;var N5e=e=>({...e});g.GetNotebookMetadataInputFilterSensitiveLog=N5e;var z5e=e=>({...e});g.GetNotebookMetadataOutputFilterSensitiveLog=z5e;var q5e=e=>({...e});g.GetPreparedStatementInputFilterSensitiveLog=q5e;var L5e=e=>({...e});g.GetPreparedStatementOutputFilterSensitiveLog=L5e;var F5e=e=>({...e});g.GetQueryExecutionInputFilterSensitiveLog=F5e;var D5e=e=>({...e});g.GetQueryExecutionOutputFilterSensitiveLog=D5e;var T5e=e=>({...e});g.GetQueryResultsInputFilterSensitiveLog=T5e;var j5e=e=>({...e});g.ColumnInfoFilterSensitiveLog=j5e;var M5e=e=>({...e});g.ResultSetMetadataFilterSensitiveLog=M5e;var O5e=e=>({...e});g.DatumFilterSensitiveLog=O5e;var B5e=e=>({...e});g.RowFilterSensitiveLog=B5e;var G5e=e=>({...e});g.ResultSetFilterSensitiveLog=G5e;var U5e=e=>({...e});g.GetQueryResultsOutputFilterSensitiveLog=U5e;var X5e=e=>({...e});g.GetQueryRuntimeStatisticsInputFilterSensitiveLog=X5e;var $5e=e=>({...e});g.QueryRuntimeStatisticsRowsFilterSensitiveLog=$5e;var H5e=e=>({...e});g.QueryRuntimeStatisticsTimelineFilterSensitiveLog=H5e;var V5e=e=>({...e});g.GetSessionRequestFilterSensitiveLog=V5e;var W5e=e=>({...e});g.EngineConfigurationFilterSensitiveLog=W5e;var K5e=e=>({...e});g.SessionConfigurationFilterSensitiveLog=K5e;var Q5e=e=>({...e});g.SessionStatisticsFilterSensitiveLog=Q5e;var J5e=e=>({...e});g.SessionStatusFilterSensitiveLog=J5e;var Y5e=e=>({...e});g.GetSessionResponseFilterSensitiveLog=Y5e;var Z5e=e=>({...e});g.GetSessionStatusRequestFilterSensitiveLog=Z5e;var e7e=e=>({...e});g.GetSessionStatusResponseFilterSensitiveLog=e7e;var t7e=e=>({...e});g.GetTableMetadataInputFilterSensitiveLog=t7e;var n7e=e=>({...e});g.ColumnFilterSensitiveLog=n7e;var s7e=e=>({...e});g.TableMetadataFilterSensitiveLog=s7e;var r7e=e=>({...e});g.GetTableMetadataOutputFilterSensitiveLog=r7e;var i7e=e=>({...e});g.GetWorkGroupInputFilterSensitiveLog=i7e;var o7e=e=>({...e});g.WorkGroupFilterSensitiveLog=o7e;var a7e=e=>({...e});g.GetWorkGroupOutputFilterSensitiveLog=a7e;var c7e=e=>({...e});g.ImportNotebookInputFilterSensitiveLog=c7e;var l7e=e=>({...e});g.ImportNotebookOutputFilterSensitiveLog=l7e;var d7e=e=>({...e});g.ListApplicationDPUSizesInputFilterSensitiveLog=d7e;var u7e=e=>({...e});g.ApplicationDPUSizesFilterSensitiveLog=u7e;var m7e=e=>({...e});g.ListApplicationDPUSizesOutputFilterSensitiveLog=m7e;var p7e=e=>({...e});g.ListCalculationExecutionsRequestFilterSensitiveLog=p7e;var g7e=e=>({...e});g.CalculationSummaryFilterSensitiveLog=g7e;var y7e=e=>({...e});g.ListCalculationExecutionsResponseFilterSensitiveLog=y7e;var _7e=e=>({...e});g.ListDatabasesInputFilterSensitiveLog=_7e;var f7e=e=>({...e});g.ListDatabasesOutputFilterSensitiveLog=f7e;var S7e=e=>({...e});g.ListDataCatalogsInputFilterSensitiveLog=S7e;var h7e=e=>({...e});g.DataCatalogSummaryFilterSensitiveLog=h7e;var w7e=e=>({...e});g.ListDataCatalogsOutputFilterSensitiveLog=w7e;var E7e=e=>({...e});g.ListEngineVersionsInputFilterSensitiveLog=E7e;var C7e=e=>({...e});g.ListEngineVersionsOutputFilterSensitiveLog=C7e;var v7e=e=>({...e});g.ListExecutorsRequestFilterSensitiveLog=v7e;var P7e=e=>({...e});g.ExecutorsSummaryFilterSensitiveLog=P7e;var A7e=e=>({...e});g.ListExecutorsResponseFilterSensitiveLog=A7e;var x7e=e=>({...e});g.ListNamedQueriesInputFilterSensitiveLog=x7e;var b7e=e=>({...e});g.ListNamedQueriesOutputFilterSensitiveLog=b7e;var I7e=e=>({...e});g.FilterDefinitionFilterSensitiveLog=I7e;var k7e=e=>({...e});g.ListNotebookMetadataInputFilterSensitiveLog=k7e;var R7e=e=>({...e});g.ListNotebookMetadataOutputFilterSensitiveLog=R7e;var N7e=e=>({...e});g.ListNotebookSessionsRequestFilterSensitiveLog=N7e;var z7e=e=>({...e});g.NotebookSessionSummaryFilterSensitiveLog=z7e;var q7e=e=>({...e});g.ListNotebookSessionsResponseFilterSensitiveLog=q7e;var L7e=e=>({...e});g.ListPreparedStatementsInputFilterSensitiveLog=L7e;var F7e=e=>({...e});g.PreparedStatementSummaryFilterSensitiveLog=F7e;var D7e=e=>({...e});g.ListPreparedStatementsOutputFilterSensitiveLog=D7e;var T7e=e=>({...e});g.ListQueryExecutionsInputFilterSensitiveLog=T7e;var j7e=e=>({...e});g.ListQueryExecutionsOutputFilterSensitiveLog=j7e;var M7e=e=>({...e});g.ListSessionsRequestFilterSensitiveLog=M7e;var O7e=e=>({...e});g.SessionSummaryFilterSensitiveLog=O7e;var B7e=e=>({...e});g.ListSessionsResponseFilterSensitiveLog=B7e;var G7e=e=>({...e});g.ListTableMetadataInputFilterSensitiveLog=G7e;var U7e=e=>({...e});g.ListTableMetadataOutputFilterSensitiveLog=U7e;var X7e=e=>({...e});g.ListTagsForResourceInputFilterSensitiveLog=X7e;var $7e=e=>({...e});g.ListTagsForResourceOutputFilterSensitiveLog=$7e;var H7e=e=>({...e});g.ListWorkGroupsInputFilterSensitiveLog=H7e;var V7e=e=>({...e});g.WorkGroupSummaryFilterSensitiveLog=V7e;var W7e=e=>({...e});g.ListWorkGroupsOutputFilterSensitiveLog=W7e;var K7e=e=>({...e});g.CalculationConfigurationFilterSensitiveLog=K7e;var Q7e=e=>({...e});g.StartCalculationExecutionRequestFilterSensitiveLog=Q7e;var J7e=e=>({...e});g.StartCalculationExecutionResponseFilterSensitiveLog=J7e;var Y7e=e=>({...e});g.StartQueryExecutionInputFilterSensitiveLog=Y7e;var Z7e=e=>({...e});g.StartQueryExecutionOutputFilterSensitiveLog=Z7e;var e9e=e=>({...e});g.StartSessionRequestFilterSensitiveLog=e9e;var t9e=e=>({...e});g.StartSessionResponseFilterSensitiveLog=t9e;var n9e=e=>({...e});g.StopCalculationExecutionRequestFilterSensitiveLog=n9e;var s9e=e=>({...e});g.StopCalculationExecutionResponseFilterSensitiveLog=s9e;var r9e=e=>({...e});g.StopQueryExecutionInputFilterSensitiveLog=r9e;var i9e=e=>({...e});g.StopQueryExecutionOutputFilterSensitiveLog=i9e;var o9e=e=>({...e});g.TagResourceInputFilterSensitiveLog=o9e;var a9e=e=>({...e});g.TagResourceOutputFilterSensitiveLog=a9e;var c9e=e=>({...e});g.TerminateSessionRequestFilterSensitiveLog=c9e;var l9e=e=>({...e});g.TerminateSessionResponseFilterSensitiveLog=l9e;var d9e=e=>({...e});g.UntagResourceInputFilterSensitiveLog=d9e;var u9e=e=>({...e});g.UntagResourceOutputFilterSensitiveLog=u9e;var m9e=e=>({...e});g.UpdateDataCatalogInputFilterSensitiveLog=m9e;var p9e=e=>({...e});g.UpdateDataCatalogOutputFilterSensitiveLog=p9e;var g9e=e=>({...e});g.UpdateNamedQueryInputFilterSensitiveLog=g9e;var y9e=e=>({...e});g.UpdateNamedQueryOutputFilterSensitiveLog=y9e;var _9e=e=>({...e});g.UpdateNotebookInputFilterSensitiveLog=_9e;var f9e=e=>({...e});g.UpdateNotebookOutputFilterSensitiveLog=f9e;var S9e=e=>({...e});g.UpdateNotebookMetadataInputFilterSensitiveLog=S9e;var h9e=e=>({...e});g.UpdateNotebookMetadataOutputFilterSensitiveLog=h9e;var w9e=e=>({...e});g.UpdatePreparedStatementInputFilterSensitiveLog=w9e;var E9e=e=>({...e});g.UpdatePreparedStatementOutputFilterSensitiveLog=E9e;var C9e=e=>({...e});g.ResultConfigurationUpdatesFilterSensitiveLog=C9e;var v9e=e=>({...e});g.WorkGroupConfigurationUpdatesFilterSensitiveLog=v9e;var P9e=e=>({...e});g.UpdateWorkGroupInputFilterSensitiveLog=P9e;var A9e=e=>({...e});g.UpdateWorkGroupOutputFilterSensitiveLog=A9e;var x9e=e=>({...e});g.QueryStagePlanNodeFilterSensitiveLog=x9e;var b9e=e=>({...e});g.QueryStageFilterSensitiveLog=b9e;var I9e=e=>({...e});g.QueryRuntimeStatisticsFilterSensitiveLog=I9e;var k9e=e=>({...e});g.GetQueryRuntimeStatisticsOutputFilterSensitiveLog=k9e});var ge=u(C=>{"use strict";Object.defineProperty(C,"__esModule",{value:!0});C.serializeAws_json1_1StopCalculationExecutionCommand=C.serializeAws_json1_1StartSessionCommand=C.serializeAws_json1_1StartQueryExecutionCommand=C.serializeAws_json1_1StartCalculationExecutionCommand=C.serializeAws_json1_1ListWorkGroupsCommand=C.serializeAws_json1_1ListTagsForResourceCommand=C.serializeAws_json1_1ListTableMetadataCommand=C.serializeAws_json1_1ListSessionsCommand=C.serializeAws_json1_1ListQueryExecutionsCommand=C.serializeAws_json1_1ListPreparedStatementsCommand=C.serializeAws_json1_1ListNotebookSessionsCommand=C.serializeAws_json1_1ListNotebookMetadataCommand=C.serializeAws_json1_1ListNamedQueriesCommand=C.serializeAws_json1_1ListExecutorsCommand=C.serializeAws_json1_1ListEngineVersionsCommand=C.serializeAws_json1_1ListDataCatalogsCommand=C.serializeAws_json1_1ListDatabasesCommand=C.serializeAws_json1_1ListCalculationExecutionsCommand=C.serializeAws_json1_1ListApplicationDPUSizesCommand=C.serializeAws_json1_1ImportNotebookCommand=C.serializeAws_json1_1GetWorkGroupCommand=C.serializeAws_json1_1GetTableMetadataCommand=C.serializeAws_json1_1GetSessionStatusCommand=C.serializeAws_json1_1GetSessionCommand=C.serializeAws_json1_1GetQueryRuntimeStatisticsCommand=C.serializeAws_json1_1GetQueryResultsCommand=C.serializeAws_json1_1GetQueryExecutionCommand=C.serializeAws_json1_1GetPreparedStatementCommand=C.serializeAws_json1_1GetNotebookMetadataCommand=C.serializeAws_json1_1GetNamedQueryCommand=C.serializeAws_json1_1GetDataCatalogCommand=C.serializeAws_json1_1GetDatabaseCommand=C.serializeAws_json1_1GetCalculationExecutionStatusCommand=C.serializeAws_json1_1GetCalculationExecutionCodeCommand=C.serializeAws_json1_1GetCalculationExecutionCommand=C.serializeAws_json1_1ExportNotebookCommand=C.serializeAws_json1_1DeleteWorkGroupCommand=C.serializeAws_json1_1DeletePreparedStatementCommand=C.serializeAws_json1_1DeleteNotebookCommand=C.serializeAws_json1_1DeleteNamedQueryCommand=C.serializeAws_json1_1DeleteDataCatalogCommand=C.serializeAws_json1_1CreateWorkGroupCommand=C.serializeAws_json1_1CreatePresignedNotebookUrlCommand=C.serializeAws_json1_1CreatePreparedStatementCommand=C.serializeAws_json1_1CreateNotebookCommand=C.serializeAws_json1_1CreateNamedQueryCommand=C.serializeAws_json1_1CreateDataCatalogCommand=C.serializeAws_json1_1BatchGetQueryExecutionCommand=C.serializeAws_json1_1BatchGetPreparedStatementCommand=C.serializeAws_json1_1BatchGetNamedQueryCommand=void 0;C.deserializeAws_json1_1ListNotebookSessionsCommand=C.deserializeAws_json1_1ListNotebookMetadataCommand=C.deserializeAws_json1_1ListNamedQueriesCommand=C.deserializeAws_json1_1ListExecutorsCommand=C.deserializeAws_json1_1ListEngineVersionsCommand=C.deserializeAws_json1_1ListDataCatalogsCommand=C.deserializeAws_json1_1ListDatabasesCommand=C.deserializeAws_json1_1ListCalculationExecutionsCommand=C.deserializeAws_json1_1ListApplicationDPUSizesCommand=C.deserializeAws_json1_1ImportNotebookCommand=C.deserializeAws_json1_1GetWorkGroupCommand=C.deserializeAws_json1_1GetTableMetadataCommand=C.deserializeAws_json1_1GetSessionStatusCommand=C.deserializeAws_json1_1GetSessionCommand=C.deserializeAws_json1_1GetQueryRuntimeStatisticsCommand=C.deserializeAws_json1_1GetQueryResultsCommand=C.deserializeAws_json1_1GetQueryExecutionCommand=C.deserializeAws_json1_1GetPreparedStatementCommand=C.deserializeAws_json1_1GetNotebookMetadataCommand=C.deserializeAws_json1_1GetNamedQueryCommand=C.deserializeAws_json1_1GetDataCatalogCommand=C.deserializeAws_json1_1GetDatabaseCommand=C.deserializeAws_json1_1GetCalculationExecutionStatusCommand=C.deserializeAws_json1_1GetCalculationExecutionCodeCommand=C.deserializeAws_json1_1GetCalculationExecutionCommand=C.deserializeAws_json1_1ExportNotebookCommand=C.deserializeAws_json1_1DeleteWorkGroupCommand=C.deserializeAws_json1_1DeletePreparedStatementCommand=C.deserializeAws_json1_1DeleteNotebookCommand=C.deserializeAws_json1_1DeleteNamedQueryCommand=C.deserializeAws_json1_1DeleteDataCatalogCommand=C.deserializeAws_json1_1CreateWorkGroupCommand=C.deserializeAws_json1_1CreatePresignedNotebookUrlCommand=C.deserializeAws_json1_1CreatePreparedStatementCommand=C.deserializeAws_json1_1CreateNotebookCommand=C.deserializeAws_json1_1CreateNamedQueryCommand=C.deserializeAws_json1_1CreateDataCatalogCommand=C.deserializeAws_json1_1BatchGetQueryExecutionCommand=C.deserializeAws_json1_1BatchGetPreparedStatementCommand=C.deserializeAws_json1_1BatchGetNamedQueryCommand=C.serializeAws_json1_1UpdateWorkGroupCommand=C.serializeAws_json1_1UpdatePreparedStatementCommand=C.serializeAws_json1_1UpdateNotebookMetadataCommand=C.serializeAws_json1_1UpdateNotebookCommand=C.serializeAws_json1_1UpdateNamedQueryCommand=C.serializeAws_json1_1UpdateDataCatalogCommand=C.serializeAws_json1_1UntagResourceCommand=C.serializeAws_json1_1TerminateSessionCommand=C.serializeAws_json1_1TagResourceCommand=C.serializeAws_json1_1StopQueryExecutionCommand=void 0;C.deserializeAws_json1_1UpdateWorkGroupCommand=C.deserializeAws_json1_1UpdatePreparedStatementCommand=C.deserializeAws_json1_1UpdateNotebookMetadataCommand=C.deserializeAws_json1_1UpdateNotebookCommand=C.deserializeAws_json1_1UpdateNamedQueryCommand=C.deserializeAws_json1_1UpdateDataCatalogCommand=C.deserializeAws_json1_1UntagResourceCommand=C.deserializeAws_json1_1TerminateSessionCommand=C.deserializeAws_json1_1TagResourceCommand=C.deserializeAws_json1_1StopQueryExecutionCommand=C.deserializeAws_json1_1StopCalculationExecutionCommand=C.deserializeAws_json1_1StartSessionCommand=C.deserializeAws_json1_1StartQueryExecutionCommand=C.deserializeAws_json1_1StartCalculationExecutionCommand=C.deserializeAws_json1_1ListWorkGroupsCommand=C.deserializeAws_json1_1ListTagsForResourceCommand=C.deserializeAws_json1_1ListTableMetadataCommand=C.deserializeAws_json1_1ListSessionsCommand=C.deserializeAws_json1_1ListQueryExecutionsCommand=C.deserializeAws_json1_1ListPreparedStatementsCommand=void 0;var R9e=gt(),f=E(),DP=ua(),_e=FP(),Wo=de(),N9e=async(e,n)=>{let t={"content-type":"application/x-amz-json-1.1","x-amz-target":"AmazonAthena.BatchGetNamedQuery"},s;return s=JSON.stringify(QZe(e,n)),he(n,t,"/",void 0,s)};C.serializeAws_json1_1BatchGetNamedQueryCommand=N9e;var z9e=async(e,n)=>{let t={"content-type":"application/x-amz-json-1.1","x-amz-target":"AmazonAthena.BatchGetPreparedStatement"},s;return s=JSON.stringify(JZe(e,n)),he(n,t,"/",void 0,s)};C.serializeAws_json1_1BatchGetPreparedStatementCommand=z9e;var q9e=async(e,n)=>{let t={"content-type":"application/x-amz-json-1.1","x-amz-target":"AmazonAthena.BatchGetQueryExecution"},s;return s=JSON.stringify(YZe(e,n)),he(n,t,"/",void 0,s)};C.serializeAws_json1_1BatchGetQueryExecutionCommand=q9e;var L9e=async(e,n)=>{let t={"content-type":"application/x-amz-json-1.1","x-amz-target":"AmazonAthena.CreateDataCatalog"},s;return s=JSON.stringify(eet(e,n)),he(n,t,"/",void 0,s)};C.serializeAws_json1_1CreateDataCatalogCommand=L9e;var F9e=async(e,n)=>{let t={"content-type":"application/x-amz-json-1.1","x-amz-target":"AmazonAthena.CreateNamedQuery"},s;return s=JSON.stringify(tet(e,n)),he(n,t,"/",void 0,s)};C.serializeAws_json1_1CreateNamedQueryCommand=F9e;var D9e=async(e,n)=>{let t={"content-type":"application/x-amz-json-1.1","x-amz-target":"AmazonAthena.CreateNotebook"},s;return s=JSON.stringify(net(e,n)),he(n,t,"/",void 0,s)};C.serializeAws_json1_1CreateNotebookCommand=D9e;var T9e=async(e,n)=>{let t={"content-type":"application/x-amz-json-1.1","x-amz-target":"AmazonAthena.CreatePreparedStatement"},s;return s=JSON.stringify(set(e,n)),he(n,t,"/",void 0,s)};C.serializeAws_json1_1CreatePreparedStatementCommand=T9e;var j9e=async(e,n)=>{let t={"content-type":"application/x-amz-json-1.1","x-amz-target":"AmazonAthena.CreatePresignedNotebookUrl"},s;return s=JSON.stringify(ret(e,n)),he(n,t,"/",void 0,s)};C.serializeAws_json1_1CreatePresignedNotebookUrlCommand=j9e;var M9e=async(e,n)=>{let t={"content-type":"application/x-amz-json-1.1","x-amz-target":"AmazonAthena.CreateWorkGroup"},s;return s=JSON.stringify(iet(e,n)),he(n,t,"/",void 0,s)};C.serializeAws_json1_1CreateWorkGroupCommand=M9e;var O9e=async(e,n)=>{let t={"content-type":"application/x-amz-json-1.1","x-amz-target":"AmazonAthena.DeleteDataCatalog"},s;return s=JSON.stringify(oet(e,n)),he(n,t,"/",void 0,s)};C.serializeAws_json1_1DeleteDataCatalogCommand=O9e;var B9e=async(e,n)=>{let t={"content-type":"application/x-amz-json-1.1","x-amz-target":"AmazonAthena.DeleteNamedQuery"},s;return s=JSON.stringify(aet(e,n)),he(n,t,"/",void 0,s)};C.serializeAws_json1_1DeleteNamedQueryCommand=B9e;var G9e=async(e,n)=>{let t={"content-type":"application/x-amz-json-1.1","x-amz-target":"AmazonAthena.DeleteNotebook"},s;return s=JSON.stringify(cet(e,n)),he(n,t,"/",void 0,s)};C.serializeAws_json1_1DeleteNotebookCommand=G9e;var U9e=async(e,n)=>{let t={"content-type":"application/x-amz-json-1.1","x-amz-target":"AmazonAthena.DeletePreparedStatement"},s;return s=JSON.stringify(det(e,n)),he(n,t,"/",void 0,s)};C.serializeAws_json1_1DeletePreparedStatementCommand=U9e;var X9e=async(e,n)=>{let t={"content-type":"application/x-amz-json-1.1","x-amz-target":"AmazonAthena.DeleteWorkGroup"},s;return s=JSON.stringify(uet(e,n)),he(n,t,"/",void 0,s)};C.serializeAws_json1_1DeleteWorkGroupCommand=X9e;var $9e=async(e,n)=>{let t={"content-type":"application/x-amz-json-1.1","x-amz-target":"AmazonAthena.ExportNotebook"},s;return s=JSON.stringify(get(e,n)),he(n,t,"/",void 0,s)};C.serializeAws_json1_1ExportNotebookCommand=$9e;var H9e=async(e,n)=>{let t={"content-type":"application/x-amz-json-1.1","x-amz-target":"AmazonAthena.GetCalculationExecution"},s;return s=JSON.stringify(fet(e,n)),he(n,t,"/",void 0,s)};C.serializeAws_json1_1GetCalculationExecutionCommand=H9e;var V9e=async(e,n)=>{let t={"content-type":"application/x-amz-json-1.1","x-amz-target":"AmazonAthena.GetCalculationExecutionCode"},s;return s=JSON.stringify(_et(e,n)),he(n,t,"/",void 0,s)};C.serializeAws_json1_1GetCalculationExecutionCodeCommand=V9e;var W9e=async(e,n)=>{let t={"content-type":"application/x-amz-json-1.1","x-amz-target":"AmazonAthena.GetCalculationExecutionStatus"},s;return s=JSON.stringify(het(e,n)),he(n,t,"/",void 0,s)};C.serializeAws_json1_1GetCalculationExecutionStatusCommand=W9e;var K9e=async(e,n)=>{let t={"content-type":"application/x-amz-json-1.1","x-amz-target":"AmazonAthena.GetDatabase"},s;return s=JSON.stringify(wet(e,n)),he(n,t,"/",void 0,s)};C.serializeAws_json1_1GetDatabaseCommand=K9e;var Q9e=async(e,n)=>{let t={"content-type":"application/x-amz-json-1.1","x-amz-target":"AmazonAthena.GetDataCatalog"},s;return s=JSON.stringify(Eet(e,n)),he(n,t,"/",void 0,s)};C.serializeAws_json1_1GetDataCatalogCommand=Q9e;var J9e=async(e,n)=>{let t={"content-type":"application/x-amz-json-1.1","x-amz-target":"AmazonAthena.GetNamedQuery"},s;return s=JSON.stringify(Cet(e,n)),he(n,t,"/",void 0,s)};C.serializeAws_json1_1GetNamedQueryCommand=J9e;var Y9e=async(e,n)=>{let t={"content-type":"application/x-amz-json-1.1","x-amz-target":"AmazonAthena.GetNotebookMetadata"},s;return s=JSON.stringify(vet(e,n)),he(n,t,"/",void 0,s)};C.serializeAws_json1_1GetNotebookMetadataCommand=Y9e;var Z9e=async(e,n)=>{let t={"content-type":"application/x-amz-json-1.1","x-amz-target":"AmazonAthena.GetPreparedStatement"},s;return s=JSON.stringify(Pet(e,n)),he(n,t,"/",void 0,s)};C.serializeAws_json1_1GetPreparedStatementCommand=Z9e;var eJe=async(e,n)=>{let t={"content-type":"application/x-amz-json-1.1","x-amz-target":"AmazonAthena.GetQueryExecution"},s;return s=JSON.stringify(Aet(e,n)),he(n,t,"/",void 0,s)};C.serializeAws_json1_1GetQueryExecutionCommand=eJe;var tJe=async(e,n)=>{let t={"content-type":"application/x-amz-json-1.1","x-amz-target":"AmazonAthena.GetQueryResults"},s;return s=JSON.stringify(xet(e,n)),he(n,t,"/",void 0,s)};C.serializeAws_json1_1GetQueryResultsCommand=tJe;var nJe=async(e,n)=>{let t={"content-type":"application/x-amz-json-1.1","x-amz-target":"AmazonAthena.GetQueryRuntimeStatistics"},s;return s=JSON.stringify(bet(e,n)),he(n,t,"/",void 0,s)};C.serializeAws_json1_1GetQueryRuntimeStatisticsCommand=nJe;var sJe=async(e,n)=>{let t={"content-type":"application/x-amz-json-1.1","x-amz-target":"AmazonAthena.GetSession"},s;return s=JSON.stringify(Iet(e,n)),he(n,t,"/",void 0,s)};C.serializeAws_json1_1GetSessionCommand=sJe;var rJe=async(e,n)=>{let t={"content-type":"application/x-amz-json-1.1","x-amz-target":"AmazonAthena.GetSessionStatus"},s;return s=JSON.stringify(ket(e,n)),he(n,t,"/",void 0,s)};C.serializeAws_json1_1GetSessionStatusCommand=rJe;var iJe=async(e,n)=>{let t={"content-type":"application/x-amz-json-1.1","x-amz-target":"AmazonAthena.GetTableMetadata"},s;return s=JSON.stringify(Ret(e,n)),he(n,t,"/",void 0,s)};C.serializeAws_json1_1GetTableMetadataCommand=iJe;var oJe=async(e,n)=>{let t={"content-type":"application/x-amz-json-1.1","x-amz-target":"AmazonAthena.GetWorkGroup"},s;return s=JSON.stringify(Net(e,n)),he(n,t,"/",void 0,s)};C.serializeAws_json1_1GetWorkGroupCommand=oJe;var aJe=async(e,n)=>{let t={"content-type":"application/x-amz-json-1.1","x-amz-target":"AmazonAthena.ImportNotebook"},s;return s=JSON.stringify(zet(e,n)),he(n,t,"/",void 0,s)};C.serializeAws_json1_1ImportNotebookCommand=aJe;var cJe=async(e,n)=>{let t={"content-type":"application/x-amz-json-1.1","x-amz-target":"AmazonAthena.ListApplicationDPUSizes"},s;return s=JSON.stringify(qet(e,n)),he(n,t,"/",void 0,s)};C.serializeAws_json1_1ListApplicationDPUSizesCommand=cJe;var lJe=async(e,n)=>{let t={"content-type":"application/x-amz-json-1.1","x-amz-target":"AmazonAthena.ListCalculationExecutions"},s;return s=JSON.stringify(Let(e,n)),he(n,t,"/",void 0,s)};C.serializeAws_json1_1ListCalculationExecutionsCommand=lJe;var dJe=async(e,n)=>{let t={"content-type":"application/x-amz-json-1.1","x-amz-target":"AmazonAthena.ListDatabases"},s;return s=JSON.stringify(Fet(e,n)),he(n,t,"/",void 0,s)};C.serializeAws_json1_1ListDatabasesCommand=dJe;var uJe=async(e,n)=>{let t={"content-type":"application/x-amz-json-1.1","x-amz-target":"AmazonAthena.ListDataCatalogs"},s;return s=JSON.stringify(Det(e,n)),he(n,t,"/",void 0,s)};C.serializeAws_json1_1ListDataCatalogsCommand=uJe;var mJe=async(e,n)=>{let t={"content-type":"application/x-amz-json-1.1","x-amz-target":"AmazonAthena.ListEngineVersions"},s;return s=JSON.stringify(Tet(e,n)),he(n,t,"/",void 0,s)};C.serializeAws_json1_1ListEngineVersionsCommand=mJe;var pJe=async(e,n)=>{let t={"content-type":"application/x-amz-json-1.1","x-amz-target":"AmazonAthena.ListExecutors"},s;return s=JSON.stringify(jet(e,n)),he(n,t,"/",void 0,s)};C.serializeAws_json1_1ListExecutorsCommand=pJe;var gJe=async(e,n)=>{let t={"content-type":"application/x-amz-json-1.1","x-amz-target":"AmazonAthena.ListNamedQueries"},s;return s=JSON.stringify(Met(e,n)),he(n,t,"/",void 0,s)};C.serializeAws_json1_1ListNamedQueriesCommand=gJe;var yJe=async(e,n)=>{let t={"content-type":"application/x-amz-json-1.1","x-amz-target":"AmazonAthena.ListNotebookMetadata"},s;return s=JSON.stringify(Oet(e,n)),he(n,t,"/",void 0,s)};C.serializeAws_json1_1ListNotebookMetadataCommand=yJe;var _Je=async(e,n)=>{let t={"content-type":"application/x-amz-json-1.1","x-amz-target":"AmazonAthena.ListNotebookSessions"},s;return s=JSON.stringify(Bet(e,n)),he(n,t,"/",void 0,s)};C.serializeAws_json1_1ListNotebookSessionsCommand=_Je;var fJe=async(e,n)=>{let t={"content-type":"application/x-amz-json-1.1","x-amz-target":"AmazonAthena.ListPreparedStatements"},s;return s=JSON.stringify(Get(e,n)),he(n,t,"/",void 0,s)};C.serializeAws_json1_1ListPreparedStatementsCommand=fJe;var SJe=async(e,n)=>{let t={"content-type":"application/x-amz-json-1.1","x-amz-target":"AmazonAthena.ListQueryExecutions"},s;return s=JSON.stringify(Uet(e,n)),he(n,t,"/",void 0,s)};C.serializeAws_json1_1ListQueryExecutionsCommand=SJe;var hJe=async(e,n)=>{let t={"content-type":"application/x-amz-json-1.1","x-amz-target":"AmazonAthena.ListSessions"},s;return s=JSON.stringify(Xet(e,n)),he(n,t,"/",void 0,s)};C.serializeAws_json1_1ListSessionsCommand=hJe;var wJe=async(e,n)=>{let t={"content-type":"application/x-amz-json-1.1","x-amz-target":"AmazonAthena.ListTableMetadata"},s;return s=JSON.stringify($et(e,n)),he(n,t,"/",void 0,s)};C.serializeAws_json1_1ListTableMetadataCommand=wJe;var EJe=async(e,n)=>{let t={"content-type":"application/x-amz-json-1.1","x-amz-target":"AmazonAthena.ListTagsForResource"},s;return s=JSON.stringify(Het(e,n)),he(n,t,"/",void 0,s)};C.serializeAws_json1_1ListTagsForResourceCommand=EJe;var CJe=async(e,n)=>{let t={"content-type":"application/x-amz-json-1.1","x-amz-target":"AmazonAthena.ListWorkGroups"},s;return s=JSON.stringify(Vet(e,n)),he(n,t,"/",void 0,s)};C.serializeAws_json1_1ListWorkGroupsCommand=CJe;var vJe=async(e,n)=>{let t={"content-type":"application/x-amz-json-1.1","x-amz-target":"AmazonAthena.StartCalculationExecution"},s;return s=JSON.stringify(ttt(e,n)),he(n,t,"/",void 0,s)};C.serializeAws_json1_1StartCalculationExecutionCommand=vJe;var PJe=async(e,n)=>{let t={"content-type":"application/x-amz-json-1.1","x-amz-target":"AmazonAthena.StartQueryExecution"},s;return s=JSON.stringify(ntt(e,n)),he(n,t,"/",void 0,s)};C.serializeAws_json1_1StartQueryExecutionCommand=PJe;var AJe=async(e,n)=>{let t={"content-type":"application/x-amz-json-1.1","x-amz-target":"AmazonAthena.StartSession"},s;return s=JSON.stringify(stt(e,n)),he(n,t,"/",void 0,s)};C.serializeAws_json1_1StartSessionCommand=AJe;var xJe=async(e,n)=>{let t={"content-type":"application/x-amz-json-1.1","x-amz-target":"AmazonAthena.StopCalculationExecution"},s;return s=JSON.stringify(rtt(e,n)),he(n,t,"/",void 0,s)};C.serializeAws_json1_1StopCalculationExecutionCommand=xJe;var bJe=async(e,n)=>{let t={"content-type":"application/x-amz-json-1.1","x-amz-target":"AmazonAthena.StopQueryExecution"},s;return s=JSON.stringify(itt(e,n)),he(n,t,"/",void 0,s)};C.serializeAws_json1_1StopQueryExecutionCommand=bJe;var IJe=async(e,n)=>{let t={"content-type":"application/x-amz-json-1.1","x-amz-target":"AmazonAthena.TagResource"},s;return s=JSON.stringify(ctt(e,n)),he(n,t,"/",void 0,s)};C.serializeAws_json1_1TagResourceCommand=IJe;var kJe=async(e,n)=>{let t={"content-type":"application/x-amz-json-1.1","x-amz-target":"AmazonAthena.TerminateSession"},s;return s=JSON.stringify(ltt(e,n)),he(n,t,"/",void 0,s)};C.serializeAws_json1_1TerminateSessionCommand=kJe;var RJe=async(e,n)=>{let t={"content-type":"application/x-amz-json-1.1","x-amz-target":"AmazonAthena.UntagResource"},s;return s=JSON.stringify(dtt(e,n)),he(n,t,"/",void 0,s)};C.serializeAws_json1_1UntagResourceCommand=RJe;var NJe=async(e,n)=>{let t={"content-type":"application/x-amz-json-1.1","x-amz-target":"AmazonAthena.UpdateDataCatalog"},s;return s=JSON.stringify(utt(e,n)),he(n,t,"/",void 0,s)};C.serializeAws_json1_1UpdateDataCatalogCommand=NJe;var zJe=async(e,n)=>{let t={"content-type":"application/x-amz-json-1.1","x-amz-target":"AmazonAthena.UpdateNamedQuery"},s;return s=JSON.stringify(mtt(e,n)),he(n,t,"/",void 0,s)};C.serializeAws_json1_1UpdateNamedQueryCommand=zJe;var qJe=async(e,n)=>{let t={"content-type":"application/x-amz-json-1.1","x-amz-target":"AmazonAthena.UpdateNotebook"},s;return s=JSON.stringify(ptt(e,n)),he(n,t,"/",void 0,s)};C.serializeAws_json1_1UpdateNotebookCommand=qJe;var LJe=async(e,n)=>{let t={"content-type":"application/x-amz-json-1.1","x-amz-target":"AmazonAthena.UpdateNotebookMetadata"},s;return s=JSON.stringify(gtt(e,n)),he(n,t,"/",void 0,s)};C.serializeAws_json1_1UpdateNotebookMetadataCommand=LJe;var FJe=async(e,n)=>{let t={"content-type":"application/x-amz-json-1.1","x-amz-target":"AmazonAthena.UpdatePreparedStatement"},s;return s=JSON.stringify(ytt(e,n)),he(n,t,"/",void 0,s)};C.serializeAws_json1_1UpdatePreparedStatementCommand=FJe;var DJe=async(e,n)=>{let t={"content-type":"application/x-amz-json-1.1","x-amz-target":"AmazonAthena.UpdateWorkGroup"},s;return s=JSON.stringify(_tt(e,n)),he(n,t,"/",void 0,s)};C.serializeAws_json1_1UpdateWorkGroupCommand=DJe;var TJe=async(e,n)=>{if(e.statusCode>=300)return jJe(e,n);let t=await pe(e.body,n),s={};s=vtt(t,n);let r={$metadata:ce(e),...s};return Promise.resolve(r)};C.deserializeAws_json1_1BatchGetNamedQueryCommand=TJe;var jJe=async(e,n)=>{let t={...e,body:await we(e.body,n)},s=Ee(e,t.body);switch(s){case"InternalServerException":case"com.amazonaws.athena#InternalServerException":throw await fe(t,n);case"InvalidRequestException":case"com.amazonaws.athena#InvalidRequestException":throw await Se(t,n);default:let r=t.body;(0,f.throwDefaultError)({output:e,parsedBody:r,exceptionCtor:_e.AthenaServiceException,errorCode:s})}},MJe=async(e,n)=>{if(e.statusCode>=300)return OJe(e,n);let t=await pe(e.body,n),s={};s=Ptt(t,n);let r={$metadata:ce(e),...s};return Promise.resolve(r)};C.deserializeAws_json1_1BatchGetPreparedStatementCommand=MJe;var OJe=async(e,n)=>{let t={...e,body:await we(e.body,n)},s=Ee(e,t.body);switch(s){case"InternalServerException":case"com.amazonaws.athena#InternalServerException":throw await fe(t,n);case"InvalidRequestException":case"com.amazonaws.athena#InvalidRequestException":throw await Se(t,n);default:let r=t.body;(0,f.throwDefaultError)({output:e,parsedBody:r,exceptionCtor:_e.AthenaServiceException,errorCode:s})}},BJe=async(e,n)=>{if(e.statusCode>=300)return GJe(e,n);let t=await pe(e.body,n),s={};s=Att(t,n);let r={$metadata:ce(e),...s};return Promise.resolve(r)};C.deserializeAws_json1_1BatchGetQueryExecutionCommand=BJe;var GJe=async(e,n)=>{let t={...e,body:await we(e.body,n)},s=Ee(e,t.body);switch(s){case"InternalServerException":case"com.amazonaws.athena#InternalServerException":throw await fe(t,n);case"InvalidRequestException":case"com.amazonaws.athena#InvalidRequestException":throw await Se(t,n);default:let r=t.body;(0,f.throwDefaultError)({output:e,parsedBody:r,exceptionCtor:_e.AthenaServiceException,errorCode:s})}},UJe=async(e,n)=>{if(e.statusCode>=300)return XJe(e,n);let t=await pe(e.body,n),s={};s=ztt(t,n);let r={$metadata:ce(e),...s};return Promise.resolve(r)};C.deserializeAws_json1_1CreateDataCatalogCommand=UJe;var XJe=async(e,n)=>{let t={...e,body:await we(e.body,n)},s=Ee(e,t.body);switch(s){case"InternalServerException":case"com.amazonaws.athena#InternalServerException":throw await fe(t,n);case"InvalidRequestException":case"com.amazonaws.athena#InvalidRequestException":throw await Se(t,n);default:let r=t.body;(0,f.throwDefaultError)({output:e,parsedBody:r,exceptionCtor:_e.AthenaServiceException,errorCode:s})}},$Je=async(e,n)=>{if(e.statusCode>=300)return HJe(e,n);let t=await pe(e.body,n),s={};s=qtt(t,n);let r={$metadata:ce(e),...s};return Promise.resolve(r)};C.deserializeAws_json1_1CreateNamedQueryCommand=$Je;var HJe=async(e,n)=>{let t={...e,body:await we(e.body,n)},s=Ee(e,t.body);switch(s){case"InternalServerException":case"com.amazonaws.athena#InternalServerException":throw await fe(t,n);case"InvalidRequestException":case"com.amazonaws.athena#InvalidRequestException":throw await Se(t,n);default:let r=t.body;(0,f.throwDefaultError)({output:e,parsedBody:r,exceptionCtor:_e.AthenaServiceException,errorCode:s})}},VJe=async(e,n)=>{if(e.statusCode>=300)return WJe(e,n);let t=await pe(e.body,n),s={};s=Ltt(t,n);let r={$metadata:ce(e),...s};return Promise.resolve(r)};C.deserializeAws_json1_1CreateNotebookCommand=VJe;var WJe=async(e,n)=>{let t={...e,body:await we(e.body,n)},s=Ee(e,t.body);switch(s){case"InternalServerException":case"com.amazonaws.athena#InternalServerException":throw await fe(t,n);case"InvalidRequestException":case"com.amazonaws.athena#InvalidRequestException":throw await Se(t,n);case"TooManyRequestsException":case"com.amazonaws.athena#TooManyRequestsException":throw await Hn(t,n);default:let r=t.body;(0,f.throwDefaultError)({output:e,parsedBody:r,exceptionCtor:_e.AthenaServiceException,errorCode:s})}},KJe=async(e,n)=>{if(e.statusCode>=300)return QJe(e,n);let t=await pe(e.body,n),s={};s=Ftt(t,n);let r={$metadata:ce(e),...s};return Promise.resolve(r)};C.deserializeAws_json1_1CreatePreparedStatementCommand=KJe;var QJe=async(e,n)=>{let t={...e,body:await we(e.body,n)},s=Ee(e,t.body);switch(s){case"InternalServerException":case"com.amazonaws.athena#InternalServerException":throw await fe(t,n);case"InvalidRequestException":case"com.amazonaws.athena#InvalidRequestException":throw await Se(t,n);default:let r=t.body;(0,f.throwDefaultError)({output:e,parsedBody:r,exceptionCtor:_e.AthenaServiceException,errorCode:s})}},JJe=async(e,n)=>{if(e.statusCode>=300)return YJe(e,n);let t=await pe(e.body,n),s={};s=Dtt(t,n);let r={$metadata:ce(e),...s};return Promise.resolve(r)};C.deserializeAws_json1_1CreatePresignedNotebookUrlCommand=JJe;var YJe=async(e,n)=>{let t={...e,body:await we(e.body,n)},s=Ee(e,t.body);switch(s){case"InternalServerException":case"com.amazonaws.athena#InternalServerException":throw await fe(t,n);case"InvalidRequestException":case"com.amazonaws.athena#InvalidRequestException":throw await Se(t,n);case"ResourceNotFoundException":case"com.amazonaws.athena#ResourceNotFoundException":throw await Gt(t,n);default:let r=t.body;(0,f.throwDefaultError)({output:e,parsedBody:r,exceptionCtor:_e.AthenaServiceException,errorCode:s})}},ZJe=async(e,n)=>{if(e.statusCode>=300)return eYe(e,n);let t=await pe(e.body,n),s={};s=Ttt(t,n);let r={$metadata:ce(e),...s};return Promise.resolve(r)};C.deserializeAws_json1_1CreateWorkGroupCommand=ZJe;var eYe=async(e,n)=>{let t={...e,body:await we(e.body,n)},s=Ee(e,t.body);switch(s){case"InternalServerException":case"com.amazonaws.athena#InternalServerException":throw await fe(t,n);case"InvalidRequestException":case"com.amazonaws.athena#InvalidRequestException":throw await Se(t,n);default:let r=t.body;(0,f.throwDefaultError)({output:e,parsedBody:r,exceptionCtor:_e.AthenaServiceException,errorCode:s})}},tYe=async(e,n)=>{if(e.statusCode>=300)return nYe(e,n);let t=await pe(e.body,n),s={};s=$tt(t,n);let r={$metadata:ce(e),...s};return Promise.resolve(r)};C.deserializeAws_json1_1DeleteDataCatalogCommand=tYe;var nYe=async(e,n)=>{let t={...e,body:await we(e.body,n)},s=Ee(e,t.body);switch(s){case"InternalServerException":case"com.amazonaws.athena#InternalServerException":throw await fe(t,n);case"InvalidRequestException":case"com.amazonaws.athena#InvalidRequestException":throw await Se(t,n);default:let r=t.body;(0,f.throwDefaultError)({output:e,parsedBody:r,exceptionCtor:_e.AthenaServiceException,errorCode:s})}},sYe=async(e,n)=>{if(e.statusCode>=300)return rYe(e,n);let t=await pe(e.body,n),s={};s=Htt(t,n);let r={$metadata:ce(e),...s};return Promise.resolve(r)};C.deserializeAws_json1_1DeleteNamedQueryCommand=sYe;var rYe=async(e,n)=>{let t={...e,body:await we(e.body,n)},s=Ee(e,t.body);switch(s){case"InternalServerException":case"com.amazonaws.athena#InternalServerException":throw await fe(t,n);case"InvalidRequestException":case"com.amazonaws.athena#InvalidRequestException":throw await Se(t,n);default:let r=t.body;(0,f.throwDefaultError)({output:e,parsedBody:r,exceptionCtor:_e.AthenaServiceException,errorCode:s})}},iYe=async(e,n)=>{if(e.statusCode>=300)return oYe(e,n);let t=await pe(e.body,n),s={};s=Vtt(t,n);let r={$metadata:ce(e),...s};return Promise.resolve(r)};C.deserializeAws_json1_1DeleteNotebookCommand=iYe;var oYe=async(e,n)=>{let t={...e,body:await we(e.body,n)},s=Ee(e,t.body);switch(s){case"InternalServerException":case"com.amazonaws.athena#InternalServerException":throw await fe(t,n);case"InvalidRequestException":case"com.amazonaws.athena#InvalidRequestException":throw await Se(t,n);case"TooManyRequestsException":case"com.amazonaws.athena#TooManyRequestsException":throw await Hn(t,n);default:let r=t.body;(0,f.throwDefaultError)({output:e,parsedBody:r,exceptionCtor:_e.AthenaServiceException,errorCode:s})}},aYe=async(e,n)=>{if(e.statusCode>=300)return cYe(e,n);let t=await pe(e.body,n),s={};s=Wtt(t,n);let r={$metadata:ce(e),...s};return Promise.resolve(r)};C.deserializeAws_json1_1DeletePreparedStatementCommand=aYe;var cYe=async(e,n)=>{let t={...e,body:await we(e.body,n)},s=Ee(e,t.body);switch(s){case"InternalServerException":case"com.amazonaws.athena#InternalServerException":throw await fe(t,n);case"InvalidRequestException":case"com.amazonaws.athena#InvalidRequestException":throw await Se(t,n);case"ResourceNotFoundException":case"com.amazonaws.athena#ResourceNotFoundException":throw await Gt(t,n);default:let r=t.body;(0,f.throwDefaultError)({output:e,parsedBody:r,exceptionCtor:_e.AthenaServiceException,errorCode:s})}},lYe=async(e,n)=>{if(e.statusCode>=300)return dYe(e,n);let t=await pe(e.body,n),s={};s=Ktt(t,n);let r={$metadata:ce(e),...s};return Promise.resolve(r)};C.deserializeAws_json1_1DeleteWorkGroupCommand=lYe;var dYe=async(e,n)=>{let t={...e,body:await we(e.body,n)},s=Ee(e,t.body);switch(s){case"InternalServerException":case"com.amazonaws.athena#InternalServerException":throw await fe(t,n);case"InvalidRequestException":case"com.amazonaws.athena#InvalidRequestException":throw await Se(t,n);default:let r=t.body;(0,f.throwDefaultError)({output:e,parsedBody:r,exceptionCtor:_e.AthenaServiceException,errorCode:s})}},uYe=async(e,n)=>{if(e.statusCode>=300)return mYe(e,n);let t=await pe(e.body,n),s={};s=tnt(t,n);let r={$metadata:ce(e),...s};return Promise.resolve(r)};C.deserializeAws_json1_1ExportNotebookCommand=uYe;var mYe=async(e,n)=>{let t={...e,body:await we(e.body,n)},s=Ee(e,t.body);switch(s){case"InternalServerException":case"com.amazonaws.athena#InternalServerException":throw await fe(t,n);case"InvalidRequestException":case"com.amazonaws.athena#InvalidRequestException":throw await Se(t,n);case"TooManyRequestsException":case"com.amazonaws.athena#TooManyRequestsException":throw await Hn(t,n);default:let r=t.body;(0,f.throwDefaultError)({output:e,parsedBody:r,exceptionCtor:_e.AthenaServiceException,errorCode:s})}},pYe=async(e,n)=>{if(e.statusCode>=300)return gYe(e,n);let t=await pe(e.body,n),s={};s=snt(t,n);let r={$metadata:ce(e),...s};return Promise.resolve(r)};C.deserializeAws_json1_1GetCalculationExecutionCommand=pYe;var gYe=async(e,n)=>{let t={...e,body:await we(e.body,n)},s=Ee(e,t.body);switch(s){case"InternalServerException":case"com.amazonaws.athena#InternalServerException":throw await fe(t,n);case"InvalidRequestException":case"com.amazonaws.athena#InvalidRequestException":throw await Se(t,n);case"ResourceNotFoundException":case"com.amazonaws.athena#ResourceNotFoundException":throw await Gt(t,n);default:let r=t.body;(0,f.throwDefaultError)({output:e,parsedBody:r,exceptionCtor:_e.AthenaServiceException,errorCode:s})}},yYe=async(e,n)=>{if(e.statusCode>=300)return _Ye(e,n);let t=await pe(e.body,n),s={};s=nnt(t,n);let r={$metadata:ce(e),...s};return Promise.resolve(r)};C.deserializeAws_json1_1GetCalculationExecutionCodeCommand=yYe;var _Ye=async(e,n)=>{let t={...e,body:await we(e.body,n)},s=Ee(e,t.body);switch(s){case"InternalServerException":case"com.amazonaws.athena#InternalServerException":throw await fe(t,n);case"InvalidRequestException":case"com.amazonaws.athena#InvalidRequestException":throw await Se(t,n);case"ResourceNotFoundException":case"com.amazonaws.athena#ResourceNotFoundException":throw await Gt(t,n);default:let r=t.body;(0,f.throwDefaultError)({output:e,parsedBody:r,exceptionCtor:_e.AthenaServiceException,errorCode:s})}},fYe=async(e,n)=>{if(e.statusCode>=300)return SYe(e,n);let t=await pe(e.body,n),s={};s=rnt(t,n);let r={$metadata:ce(e),...s};return Promise.resolve(r)};C.deserializeAws_json1_1GetCalculationExecutionStatusCommand=fYe;var SYe=async(e,n)=>{let t={...e,body:await we(e.body,n)},s=Ee(e,t.body);switch(s){case"InternalServerException":case"com.amazonaws.athena#InternalServerException":throw await fe(t,n);case"InvalidRequestException":case"com.amazonaws.athena#InvalidRequestException":throw await Se(t,n);case"ResourceNotFoundException":case"com.amazonaws.athena#ResourceNotFoundException":throw await Gt(t,n);default:let r=t.body;(0,f.throwDefaultError)({output:e,parsedBody:r,exceptionCtor:_e.AthenaServiceException,errorCode:s})}},hYe=async(e,n)=>{if(e.statusCode>=300)return wYe(e,n);let t=await pe(e.body,n),s={};s=int(t,n);let r={$metadata:ce(e),...s};return Promise.resolve(r)};C.deserializeAws_json1_1GetDatabaseCommand=hYe;var wYe=async(e,n)=>{let t={...e,body:await we(e.body,n)},s=Ee(e,t.body);switch(s){case"InternalServerException":case"com.amazonaws.athena#InternalServerException":throw await fe(t,n);case"InvalidRequestException":case"com.amazonaws.athena#InvalidRequestException":throw await Se(t,n);case"MetadataException":case"com.amazonaws.athena#MetadataException":throw await TP(t,n);default:let r=t.body;(0,f.throwDefaultError)({output:e,parsedBody:r,exceptionCtor:_e.AthenaServiceException,errorCode:s})}},EYe=async(e,n)=>{if(e.statusCode>=300)return CYe(e,n);let t=await pe(e.body,n),s={};s=ont(t,n);let r={$metadata:ce(e),...s};return Promise.resolve(r)};C.deserializeAws_json1_1GetDataCatalogCommand=EYe;var CYe=async(e,n)=>{let t={...e,body:await we(e.body,n)},s=Ee(e,t.body);switch(s){case"InternalServerException":case"com.amazonaws.athena#InternalServerException":throw await fe(t,n);case"InvalidRequestException":case"com.amazonaws.athena#InvalidRequestException":throw await Se(t,n);default:let r=t.body;(0,f.throwDefaultError)({output:e,parsedBody:r,exceptionCtor:_e.AthenaServiceException,errorCode:s})}},vYe=async(e,n)=>{if(e.statusCode>=300)return PYe(e,n);let t=await pe(e.body,n),s={};s=ant(t,n);let r={$metadata:ce(e),...s};return Promise.resolve(r)};C.deserializeAws_json1_1GetNamedQueryCommand=vYe;var PYe=async(e,n)=>{let t={...e,body:await we(e.body,n)},s=Ee(e,t.body);switch(s){case"InternalServerException":case"com.amazonaws.athena#InternalServerException":throw await fe(t,n);case"InvalidRequestException":case"com.amazonaws.athena#InvalidRequestException":throw await Se(t,n);default:let r=t.body;(0,f.throwDefaultError)({output:e,parsedBody:r,exceptionCtor:_e.AthenaServiceException,errorCode:s})}},AYe=async(e,n)=>{if(e.statusCode>=300)return xYe(e,n);let t=await pe(e.body,n),s={};s=cnt(t,n);let r={$metadata:ce(e),...s};return Promise.resolve(r)};C.deserializeAws_json1_1GetNotebookMetadataCommand=AYe;var xYe=async(e,n)=>{let t={...e,body:await we(e.body,n)},s=Ee(e,t.body);switch(s){case"InternalServerException":case"com.amazonaws.athena#InternalServerException":throw await fe(t,n);case"InvalidRequestException":case"com.amazonaws.athena#InvalidRequestException":throw await Se(t,n);case"TooManyRequestsException":case"com.amazonaws.athena#TooManyRequestsException":throw await Hn(t,n);default:let r=t.body;(0,f.throwDefaultError)({output:e,parsedBody:r,exceptionCtor:_e.AthenaServiceException,errorCode:s})}},bYe=async(e,n)=>{if(e.statusCode>=300)return IYe(e,n);let t=await pe(e.body,n),s={};s=lnt(t,n);let r={$metadata:ce(e),...s};return Promise.resolve(r)};C.deserializeAws_json1_1GetPreparedStatementCommand=bYe;var IYe=async(e,n)=>{let t={...e,body:await we(e.body,n)},s=Ee(e,t.body);switch(s){case"InternalServerException":case"com.amazonaws.athena#InternalServerException":throw await fe(t,n);case"InvalidRequestException":case"com.amazonaws.athena#InvalidRequestException":throw await Se(t,n);case"ResourceNotFoundException":case"com.amazonaws.athena#ResourceNotFoundException":throw await Gt(t,n);default:let r=t.body;(0,f.throwDefaultError)({output:e,parsedBody:r,exceptionCtor:_e.AthenaServiceException,errorCode:s})}},kYe=async(e,n)=>{if(e.statusCode>=300)return RYe(e,n);let t=await pe(e.body,n),s={};s=dnt(t,n);let r={$metadata:ce(e),...s};return Promise.resolve(r)};C.deserializeAws_json1_1GetQueryExecutionCommand=kYe;var RYe=async(e,n)=>{let t={...e,body:await we(e.body,n)},s=Ee(e,t.body);switch(s){case"InternalServerException":case"com.amazonaws.athena#InternalServerException":throw await fe(t,n);case"InvalidRequestException":case"com.amazonaws.athena#InvalidRequestException":throw await Se(t,n);default:let r=t.body;(0,f.throwDefaultError)({output:e,parsedBody:r,exceptionCtor:_e.AthenaServiceException,errorCode:s})}},NYe=async(e,n)=>{if(e.statusCode>=300)return zYe(e,n);let t=await pe(e.body,n),s={};s=unt(t,n);let r={$metadata:ce(e),...s};return Promise.resolve(r)};C.deserializeAws_json1_1GetQueryResultsCommand=NYe;var zYe=async(e,n)=>{let t={...e,body:await we(e.body,n)},s=Ee(e,t.body);switch(s){case"InternalServerException":case"com.amazonaws.athena#InternalServerException":throw await fe(t,n);case"InvalidRequestException":case"com.amazonaws.athena#InvalidRequestException":throw await Se(t,n);case"TooManyRequestsException":case"com.amazonaws.athena#TooManyRequestsException":throw await Hn(t,n);default:let r=t.body;(0,f.throwDefaultError)({output:e,parsedBody:r,exceptionCtor:_e.AthenaServiceException,errorCode:s})}},qYe=async(e,n)=>{if(e.statusCode>=300)return LYe(e,n);let t=await pe(e.body,n),s={};s=mnt(t,n);let r={$metadata:ce(e),...s};return Promise.resolve(r)};C.deserializeAws_json1_1GetQueryRuntimeStatisticsCommand=qYe;var LYe=async(e,n)=>{let t={...e,body:await we(e.body,n)},s=Ee(e,t.body);switch(s){case"InternalServerException":case"com.amazonaws.athena#InternalServerException":throw await fe(t,n);case"InvalidRequestException":case"com.amazonaws.athena#InvalidRequestException":throw await Se(t,n);default:let r=t.body;(0,f.throwDefaultError)({output:e,parsedBody:r,exceptionCtor:_e.AthenaServiceException,errorCode:s})}},FYe=async(e,n)=>{if(e.statusCode>=300)return DYe(e,n);let t=await pe(e.body,n),s={};s=pnt(t,n);let r={$metadata:ce(e),...s};return Promise.resolve(r)};C.deserializeAws_json1_1GetSessionCommand=FYe;var DYe=async(e,n)=>{let t={...e,body:await we(e.body,n)},s=Ee(e,t.body);switch(s){case"InternalServerException":case"com.amazonaws.athena#InternalServerException":throw await fe(t,n);case"InvalidRequestException":case"com.amazonaws.athena#InvalidRequestException":throw await Se(t,n);case"ResourceNotFoundException":case"com.amazonaws.athena#ResourceNotFoundException":throw await Gt(t,n);default:let r=t.body;(0,f.throwDefaultError)({output:e,parsedBody:r,exceptionCtor:_e.AthenaServiceException,errorCode:s})}},TYe=async(e,n)=>{if(e.statusCode>=300)return jYe(e,n);let t=await pe(e.body,n),s={};s=gnt(t,n);let r={$metadata:ce(e),...s};return Promise.resolve(r)};C.deserializeAws_json1_1GetSessionStatusCommand=TYe;var jYe=async(e,n)=>{let t={...e,body:await we(e.body,n)},s=Ee(e,t.body);switch(s){case"InternalServerException":case"com.amazonaws.athena#InternalServerException":throw await fe(t,n);case"InvalidRequestException":case"com.amazonaws.athena#InvalidRequestException":throw await Se(t,n);case"ResourceNotFoundException":case"com.amazonaws.athena#ResourceNotFoundException":throw await Gt(t,n);default:let r=t.body;(0,f.throwDefaultError)({output:e,parsedBody:r,exceptionCtor:_e.AthenaServiceException,errorCode:s})}},MYe=async(e,n)=>{if(e.statusCode>=300)return OYe(e,n);let t=await pe(e.body,n),s={};s=ynt(t,n);let r={$metadata:ce(e),...s};return Promise.resolve(r)};C.deserializeAws_json1_1GetTableMetadataCommand=MYe;var OYe=async(e,n)=>{let t={...e,body:await we(e.body,n)},s=Ee(e,t.body);switch(s){case"InternalServerException":case"com.amazonaws.athena#InternalServerException":throw await fe(t,n);case"InvalidRequestException":case"com.amazonaws.athena#InvalidRequestException":throw await Se(t,n);case"MetadataException":case"com.amazonaws.athena#MetadataException":throw await TP(t,n);default:let r=t.body;(0,f.throwDefaultError)({output:e,parsedBody:r,exceptionCtor:_e.AthenaServiceException,errorCode:s})}},BYe=async(e,n)=>{if(e.statusCode>=300)return GYe(e,n);let t=await pe(e.body,n),s={};s=_nt(t,n);let r={$metadata:ce(e),...s};return Promise.resolve(r)};C.deserializeAws_json1_1GetWorkGroupCommand=BYe;var GYe=async(e,n)=>{let t={...e,body:await we(e.body,n)},s=Ee(e,t.body);switch(s){case"InternalServerException":case"com.amazonaws.athena#InternalServerException":throw await fe(t,n);case"InvalidRequestException":case"com.amazonaws.athena#InvalidRequestException":throw await Se(t,n);default:let r=t.body;(0,f.throwDefaultError)({output:e,parsedBody:r,exceptionCtor:_e.AthenaServiceException,errorCode:s})}},UYe=async(e,n)=>{if(e.statusCode>=300)return XYe(e,n);let t=await pe(e.body,n),s={};s=fnt(t,n);let r={$metadata:ce(e),...s};return Promise.resolve(r)};C.deserializeAws_json1_1ImportNotebookCommand=UYe;var XYe=async(e,n)=>{let t={...e,body:await we(e.body,n)},s=Ee(e,t.body);switch(s){case"InternalServerException":case"com.amazonaws.athena#InternalServerException":throw await fe(t,n);case"InvalidRequestException":case"com.amazonaws.athena#InvalidRequestException":throw await Se(t,n);case"TooManyRequestsException":case"com.amazonaws.athena#TooManyRequestsException":throw await Hn(t,n);default:let r=t.body;(0,f.throwDefaultError)({output:e,parsedBody:r,exceptionCtor:_e.AthenaServiceException,errorCode:s})}},$Ye=async(e,n)=>{if(e.statusCode>=300)return HYe(e,n);let t=await pe(e.body,n),s={};s=wnt(t,n);let r={$metadata:ce(e),...s};return Promise.resolve(r)};C.deserializeAws_json1_1ListApplicationDPUSizesCommand=$Ye;var HYe=async(e,n)=>{let t={...e,body:await we(e.body,n)},s=Ee(e,t.body);switch(s){case"InternalServerException":case"com.amazonaws.athena#InternalServerException":throw await fe(t,n);case"InvalidRequestException":case"com.amazonaws.athena#InvalidRequestException":throw await Se(t,n);case"TooManyRequestsException":case"com.amazonaws.athena#TooManyRequestsException":throw await Hn(t,n);default:let r=t.body;(0,f.throwDefaultError)({output:e,parsedBody:r,exceptionCtor:_e.AthenaServiceException,errorCode:s})}},VYe=async(e,n)=>{if(e.statusCode>=300)return WYe(e,n);let t=await pe(e.body,n),s={};s=Ent(t,n);let r={$metadata:ce(e),...s};return Promise.resolve(r)};C.deserializeAws_json1_1ListCalculationExecutionsCommand=VYe;var WYe=async(e,n)=>{let t={...e,body:await we(e.body,n)},s=Ee(e,t.body);switch(s){case"InternalServerException":case"com.amazonaws.athena#InternalServerException":throw await fe(t,n);case"InvalidRequestException":case"com.amazonaws.athena#InvalidRequestException":throw await Se(t,n);case"ResourceNotFoundException":case"com.amazonaws.athena#ResourceNotFoundException":throw await Gt(t,n);default:let r=t.body;(0,f.throwDefaultError)({output:e,parsedBody:r,exceptionCtor:_e.AthenaServiceException,errorCode:s})}},KYe=async(e,n)=>{if(e.statusCode>=300)return QYe(e,n);let t=await pe(e.body,n),s={};s=Cnt(t,n);let r={$metadata:ce(e),...s};return Promise.resolve(r)};C.deserializeAws_json1_1ListDatabasesCommand=KYe;var QYe=async(e,n)=>{let t={...e,body:await we(e.body,n)},s=Ee(e,t.body);switch(s){case"InternalServerException":case"com.amazonaws.athena#InternalServerException":throw await fe(t,n);case"InvalidRequestException":case"com.amazonaws.athena#InvalidRequestException":throw await Se(t,n);case"MetadataException":case"com.amazonaws.athena#MetadataException":throw await TP(t,n);default:let r=t.body;(0,f.throwDefaultError)({output:e,parsedBody:r,exceptionCtor:_e.AthenaServiceException,errorCode:s})}},JYe=async(e,n)=>{if(e.statusCode>=300)return YYe(e,n);let t=await pe(e.body,n),s={};s=vnt(t,n);let r={$metadata:ce(e),...s};return Promise.resolve(r)};C.deserializeAws_json1_1ListDataCatalogsCommand=JYe;var YYe=async(e,n)=>{let t={...e,body:await we(e.body,n)},s=Ee(e,t.body);switch(s){case"InternalServerException":case"com.amazonaws.athena#InternalServerException":throw await fe(t,n);case"InvalidRequestException":case"com.amazonaws.athena#InvalidRequestException":throw await Se(t,n);default:let r=t.body;(0,f.throwDefaultError)({output:e,parsedBody:r,exceptionCtor:_e.AthenaServiceException,errorCode:s})}},ZYe=async(e,n)=>{if(e.statusCode>=300)return eZe(e,n);let t=await pe(e.body,n),s={};s=Pnt(t,n);let r={$metadata:ce(e),...s};return Promise.resolve(r)};C.deserializeAws_json1_1ListEngineVersionsCommand=ZYe;var eZe=async(e,n)=>{let t={...e,body:await we(e.body,n)},s=Ee(e,t.body);switch(s){case"InternalServerException":case"com.amazonaws.athena#InternalServerException":throw await fe(t,n);case"InvalidRequestException":case"com.amazonaws.athena#InvalidRequestException":throw await Se(t,n);default:let r=t.body;(0,f.throwDefaultError)({output:e,parsedBody:r,exceptionCtor:_e.AthenaServiceException,errorCode:s})}},tZe=async(e,n)=>{if(e.statusCode>=300)return nZe(e,n);let t=await pe(e.body,n),s={};s=Ant(t,n);let r={$metadata:ce(e),...s};return Promise.resolve(r)};C.deserializeAws_json1_1ListExecutorsCommand=tZe;var nZe=async(e,n)=>{let t={...e,body:await we(e.body,n)},s=Ee(e,t.body);switch(s){case"InternalServerException":case"com.amazonaws.athena#InternalServerException":throw await fe(t,n);case"InvalidRequestException":case"com.amazonaws.athena#InvalidRequestException":throw await Se(t,n);case"ResourceNotFoundException":case"com.amazonaws.athena#ResourceNotFoundException":throw await Gt(t,n);default:let r=t.body;(0,f.throwDefaultError)({output:e,parsedBody:r,exceptionCtor:_e.AthenaServiceException,errorCode:s})}},sZe=async(e,n)=>{if(e.statusCode>=300)return rZe(e,n);let t=await pe(e.body,n),s={};s=xnt(t,n);let r={$metadata:ce(e),...s};return Promise.resolve(r)};C.deserializeAws_json1_1ListNamedQueriesCommand=sZe;var rZe=async(e,n)=>{let t={...e,body:await we(e.body,n)},s=Ee(e,t.body);switch(s){case"InternalServerException":case"com.amazonaws.athena#InternalServerException":throw await fe(t,n);case"InvalidRequestException":case"com.amazonaws.athena#InvalidRequestException":throw await Se(t,n);default:let r=t.body;(0,f.throwDefaultError)({output:e,parsedBody:r,exceptionCtor:_e.AthenaServiceException,errorCode:s})}},iZe=async(e,n)=>{if(e.statusCode>=300)return oZe(e,n);let t=await pe(e.body,n),s={};s=bnt(t,n);let r={$metadata:ce(e),...s};return Promise.resolve(r)};C.deserializeAws_json1_1ListNotebookMetadataCommand=iZe;var oZe=async(e,n)=>{let t={...e,body:await we(e.body,n)},s=Ee(e,t.body);switch(s){case"InternalServerException":case"com.amazonaws.athena#InternalServerException":throw await fe(t,n);case"InvalidRequestException":case"com.amazonaws.athena#InvalidRequestException":throw await Se(t,n);case"TooManyRequestsException":case"com.amazonaws.athena#TooManyRequestsException":throw await Hn(t,n);default:let r=t.body;(0,f.throwDefaultError)({output:e,parsedBody:r,exceptionCtor:_e.AthenaServiceException,errorCode:s})}},aZe=async(e,n)=>{if(e.statusCode>=300)return cZe(e,n);let t=await pe(e.body,n),s={};s=Int(t,n);let r={$metadata:ce(e),...s};return Promise.resolve(r)};C.deserializeAws_json1_1ListNotebookSessionsCommand=aZe;var cZe=async(e,n)=>{let t={...e,body:await we(e.body,n)},s=Ee(e,t.body);switch(s){case"InternalServerException":case"com.amazonaws.athena#InternalServerException":throw await fe(t,n);case"InvalidRequestException":case"com.amazonaws.athena#InvalidRequestException":throw await Se(t,n);case"ResourceNotFoundException":case"com.amazonaws.athena#ResourceNotFoundException":throw await Gt(t,n);default:let r=t.body;(0,f.throwDefaultError)({output:e,parsedBody:r,exceptionCtor:_e.AthenaServiceException,errorCode:s})}},lZe=async(e,n)=>{if(e.statusCode>=300)return dZe(e,n);let t=await pe(e.body,n),s={};s=knt(t,n);let r={$metadata:ce(e),...s};return Promise.resolve(r)};C.deserializeAws_json1_1ListPreparedStatementsCommand=lZe;var dZe=async(e,n)=>{let t={...e,body:await we(e.body,n)},s=Ee(e,t.body);switch(s){case"InternalServerException":case"com.amazonaws.athena#InternalServerException":throw await fe(t,n);case"InvalidRequestException":case"com.amazonaws.athena#InvalidRequestException":throw await Se(t,n);default:let r=t.body;(0,f.throwDefaultError)({output:e,parsedBody:r,exceptionCtor:_e.AthenaServiceException,errorCode:s})}},uZe=async(e,n)=>{if(e.statusCode>=300)return mZe(e,n);let t=await pe(e.body,n),s={};s=Rnt(t,n);let r={$metadata:ce(e),...s};return Promise.resolve(r)};C.deserializeAws_json1_1ListQueryExecutionsCommand=uZe;var mZe=async(e,n)=>{let t={...e,body:await we(e.body,n)},s=Ee(e,t.body);switch(s){case"InternalServerException":case"com.amazonaws.athena#InternalServerException":throw await fe(t,n);case"InvalidRequestException":case"com.amazonaws.athena#InvalidRequestException":throw await Se(t,n);default:let r=t.body;(0,f.throwDefaultError)({output:e,parsedBody:r,exceptionCtor:_e.AthenaServiceException,errorCode:s})}},pZe=async(e,n)=>{if(e.statusCode>=300)return gZe(e,n);let t=await pe(e.body,n),s={};s=Nnt(t,n);let r={$metadata:ce(e),...s};return Promise.resolve(r)};C.deserializeAws_json1_1ListSessionsCommand=pZe;var gZe=async(e,n)=>{let t={...e,body:await we(e.body,n)},s=Ee(e,t.body);switch(s){case"InternalServerException":case"com.amazonaws.athena#InternalServerException":throw await fe(t,n);case"InvalidRequestException":case"com.amazonaws.athena#InvalidRequestException":throw await Se(t,n);case"ResourceNotFoundException":case"com.amazonaws.athena#ResourceNotFoundException":throw await Gt(t,n);default:let r=t.body;(0,f.throwDefaultError)({output:e,parsedBody:r,exceptionCtor:_e.AthenaServiceException,errorCode:s})}},yZe=async(e,n)=>{if(e.statusCode>=300)return _Ze(e,n);let t=await pe(e.body,n),s={};s=znt(t,n);let r={$metadata:ce(e),...s};return Promise.resolve(r)};C.deserializeAws_json1_1ListTableMetadataCommand=yZe;var _Ze=async(e,n)=>{let t={...e,body:await we(e.body,n)},s=Ee(e,t.body);switch(s){case"InternalServerException":case"com.amazonaws.athena#InternalServerException":throw await fe(t,n);case"InvalidRequestException":case"com.amazonaws.athena#InvalidRequestException":throw await Se(t,n);case"MetadataException":case"com.amazonaws.athena#MetadataException":throw await TP(t,n);default:let r=t.body;(0,f.throwDefaultError)({output:e,parsedBody:r,exceptionCtor:_e.AthenaServiceException,errorCode:s})}},fZe=async(e,n)=>{if(e.statusCode>=300)return SZe(e,n);let t=await pe(e.body,n),s={};s=qnt(t,n);let r={$metadata:ce(e),...s};return Promise.resolve(r)};C.deserializeAws_json1_1ListTagsForResourceCommand=fZe;var SZe=async(e,n)=>{let t={...e,body:await we(e.body,n)},s=Ee(e,t.body);switch(s){case"InternalServerException":case"com.amazonaws.athena#InternalServerException":throw await fe(t,n);case"InvalidRequestException":case"com.amazonaws.athena#InvalidRequestException":throw await Se(t,n);case"ResourceNotFoundException":case"com.amazonaws.athena#ResourceNotFoundException":throw await Gt(t,n);default:let r=t.body;(0,f.throwDefaultError)({output:e,parsedBody:r,exceptionCtor:_e.AthenaServiceException,errorCode:s})}},hZe=async(e,n)=>{if(e.statusCode>=300)return wZe(e,n);let t=await pe(e.body,n),s={};s=Lnt(t,n);let r={$metadata:ce(e),...s};return Promise.resolve(r)};C.deserializeAws_json1_1ListWorkGroupsCommand=hZe;var wZe=async(e,n)=>{let t={...e,body:await we(e.body,n)},s=Ee(e,t.body);switch(s){case"InternalServerException":case"com.amazonaws.athena#InternalServerException":throw await fe(t,n);case"InvalidRequestException":case"com.amazonaws.athena#InvalidRequestException":throw await Se(t,n);default:let r=t.body;(0,f.throwDefaultError)({output:e,parsedBody:r,exceptionCtor:_e.AthenaServiceException,errorCode:s})}},EZe=async(e,n)=>{if(e.statusCode>=300)return CZe(e,n);let t=await pe(e.body,n),s={};s=pst(t,n);let r={$metadata:ce(e),...s};return Promise.resolve(r)};C.deserializeAws_json1_1StartCalculationExecutionCommand=EZe;var CZe=async(e,n)=>{let t={...e,body:await we(e.body,n)},s=Ee(e,t.body);switch(s){case"InternalServerException":case"com.amazonaws.athena#InternalServerException":throw await fe(t,n);case"InvalidRequestException":case"com.amazonaws.athena#InvalidRequestException":throw await Se(t,n);case"ResourceNotFoundException":case"com.amazonaws.athena#ResourceNotFoundException":throw await Gt(t,n);default:let r=t.body;(0,f.throwDefaultError)({output:e,parsedBody:r,exceptionCtor:_e.AthenaServiceException,errorCode:s})}},vZe=async(e,n)=>{if(e.statusCode>=300)return PZe(e,n);let t=await pe(e.body,n),s={};s=gst(t,n);let r={$metadata:ce(e),...s};return Promise.resolve(r)};C.deserializeAws_json1_1StartQueryExecutionCommand=vZe;var PZe=async(e,n)=>{let t={...e,body:await we(e.body,n)},s=Ee(e,t.body);switch(s){case"InternalServerException":case"com.amazonaws.athena#InternalServerException":throw await fe(t,n);case"InvalidRequestException":case"com.amazonaws.athena#InvalidRequestException":throw await Se(t,n);case"TooManyRequestsException":case"com.amazonaws.athena#TooManyRequestsException":throw await Hn(t,n);default:let r=t.body;(0,f.throwDefaultError)({output:e,parsedBody:r,exceptionCtor:_e.AthenaServiceException,errorCode:s})}},AZe=async(e,n)=>{if(e.statusCode>=300)return xZe(e,n);let t=await pe(e.body,n),s={};s=yst(t,n);let r={$metadata:ce(e),...s};return Promise.resolve(r)};C.deserializeAws_json1_1StartSessionCommand=AZe;var xZe=async(e,n)=>{let t={...e,body:await we(e.body,n)},s=Ee(e,t.body);switch(s){case"InternalServerException":case"com.amazonaws.athena#InternalServerException":throw await fe(t,n);case"InvalidRequestException":case"com.amazonaws.athena#InvalidRequestException":throw await Se(t,n);case"ResourceNotFoundException":case"com.amazonaws.athena#ResourceNotFoundException":throw await Gt(t,n);case"SessionAlreadyExistsException":case"com.amazonaws.athena#SessionAlreadyExistsException":throw await KZe(t,n);case"TooManyRequestsException":case"com.amazonaws.athena#TooManyRequestsException":throw await Hn(t,n);default:let r=t.body;(0,f.throwDefaultError)({output:e,parsedBody:r,exceptionCtor:_e.AthenaServiceException,errorCode:s})}},bZe=async(e,n)=>{if(e.statusCode>=300)return IZe(e,n);let t=await pe(e.body,n),s={};s=_st(t,n);let r={$metadata:ce(e),...s};return Promise.resolve(r)};C.deserializeAws_json1_1StopCalculationExecutionCommand=bZe;var IZe=async(e,n)=>{let t={...e,body:await we(e.body,n)},s=Ee(e,t.body);switch(s){case"InternalServerException":case"com.amazonaws.athena#InternalServerException":throw await fe(t,n);case"InvalidRequestException":case"com.amazonaws.athena#InvalidRequestException":throw await Se(t,n);case"ResourceNotFoundException":case"com.amazonaws.athena#ResourceNotFoundException":throw await Gt(t,n);default:let r=t.body;(0,f.throwDefaultError)({output:e,parsedBody:r,exceptionCtor:_e.AthenaServiceException,errorCode:s})}},kZe=async(e,n)=>{if(e.statusCode>=300)return RZe(e,n);let t=await pe(e.body,n),s={};s=fst(t,n);let r={$metadata:ce(e),...s};return Promise.resolve(r)};C.deserializeAws_json1_1StopQueryExecutionCommand=kZe;var RZe=async(e,n)=>{let t={...e,body:await we(e.body,n)},s=Ee(e,t.body);switch(s){case"InternalServerException":case"com.amazonaws.athena#InternalServerException":throw await fe(t,n);case"InvalidRequestException":case"com.amazonaws.athena#InvalidRequestException":throw await Se(t,n);default:let r=t.body;(0,f.throwDefaultError)({output:e,parsedBody:r,exceptionCtor:_e.AthenaServiceException,errorCode:s})}},NZe=async(e,n)=>{if(e.statusCode>=300)return zZe(e,n);let t=await pe(e.body,n),s={};s=vst(t,n);let r={$metadata:ce(e),...s};return Promise.resolve(r)};C.deserializeAws_json1_1TagResourceCommand=NZe;var zZe=async(e,n)=>{let t={...e,body:await we(e.body,n)},s=Ee(e,t.body);switch(s){case"InternalServerException":case"com.amazonaws.athena#InternalServerException":throw await fe(t,n);case"InvalidRequestException":case"com.amazonaws.athena#InvalidRequestException":throw await Se(t,n);case"ResourceNotFoundException":case"com.amazonaws.athena#ResourceNotFoundException":throw await Gt(t,n);default:let r=t.body;(0,f.throwDefaultError)({output:e,parsedBody:r,exceptionCtor:_e.AthenaServiceException,errorCode:s})}},qZe=async(e,n)=>{if(e.statusCode>=300)return LZe(e,n);let t=await pe(e.body,n),s={};s=Pst(t,n);let r={$metadata:ce(e),...s};return Promise.resolve(r)};C.deserializeAws_json1_1TerminateSessionCommand=qZe;var LZe=async(e,n)=>{let t={...e,body:await we(e.body,n)},s=Ee(e,t.body);switch(s){case"InternalServerException":case"com.amazonaws.athena#InternalServerException":throw await fe(t,n);case"InvalidRequestException":case"com.amazonaws.athena#InvalidRequestException":throw await Se(t,n);case"ResourceNotFoundException":case"com.amazonaws.athena#ResourceNotFoundException":throw await Gt(t,n);default:let r=t.body;(0,f.throwDefaultError)({output:e,parsedBody:r,exceptionCtor:_e.AthenaServiceException,errorCode:s})}},FZe=async(e,n)=>{if(e.statusCode>=300)return DZe(e,n);let t=await pe(e.body,n),s={};s=zst(t,n);let r={$metadata:ce(e),...s};return Promise.resolve(r)};C.deserializeAws_json1_1UntagResourceCommand=FZe;var DZe=async(e,n)=>{let t={...e,body:await we(e.body,n)},s=Ee(e,t.body);switch(s){case"InternalServerException":case"com.amazonaws.athena#InternalServerException":throw await fe(t,n);case"InvalidRequestException":case"com.amazonaws.athena#InvalidRequestException":throw await Se(t,n);case"ResourceNotFoundException":case"com.amazonaws.athena#ResourceNotFoundException":throw await Gt(t,n);default:let r=t.body;(0,f.throwDefaultError)({output:e,parsedBody:r,exceptionCtor:_e.AthenaServiceException,errorCode:s})}},TZe=async(e,n)=>{if(e.statusCode>=300)return jZe(e,n);let t=await pe(e.body,n),s={};s=qst(t,n);let r={$metadata:ce(e),...s};return Promise.resolve(r)};C.deserializeAws_json1_1UpdateDataCatalogCommand=TZe;var jZe=async(e,n)=>{let t={...e,body:await we(e.body,n)},s=Ee(e,t.body);switch(s){case"InternalServerException":case"com.amazonaws.athena#InternalServerException":throw await fe(t,n);case"InvalidRequestException":case"com.amazonaws.athena#InvalidRequestException":throw await Se(t,n);default:let r=t.body;(0,f.throwDefaultError)({output:e,parsedBody:r,exceptionCtor:_e.AthenaServiceException,errorCode:s})}},MZe=async(e,n)=>{if(e.statusCode>=300)return OZe(e,n);let t=await pe(e.body,n),s={};s=Lst(t,n);let r={$metadata:ce(e),...s};return Promise.resolve(r)};C.deserializeAws_json1_1UpdateNamedQueryCommand=MZe;var OZe=async(e,n)=>{let t={...e,body:await we(e.body,n)},s=Ee(e,t.body);switch(s){case"InternalServerException":case"com.amazonaws.athena#InternalServerException":throw await fe(t,n);case"InvalidRequestException":case"com.amazonaws.athena#InvalidRequestException":throw await Se(t,n);default:let r=t.body;(0,f.throwDefaultError)({output:e,parsedBody:r,exceptionCtor:_e.AthenaServiceException,errorCode:s})}},BZe=async(e,n)=>{if(e.statusCode>=300)return GZe(e,n);let t=await pe(e.body,n),s={};s=Dst(t,n);let r={$metadata:ce(e),...s};return Promise.resolve(r)};C.deserializeAws_json1_1UpdateNotebookCommand=BZe;var GZe=async(e,n)=>{let t={...e,body:await we(e.body,n)},s=Ee(e,t.body);switch(s){case"InternalServerException":case"com.amazonaws.athena#InternalServerException":throw await fe(t,n);case"InvalidRequestException":case"com.amazonaws.athena#InvalidRequestException":throw await Se(t,n);case"TooManyRequestsException":case"com.amazonaws.athena#TooManyRequestsException":throw await Hn(t,n);default:let r=t.body;(0,f.throwDefaultError)({output:e,parsedBody:r,exceptionCtor:_e.AthenaServiceException,errorCode:s})}},UZe=async(e,n)=>{if(e.statusCode>=300)return XZe(e,n);let t=await pe(e.body,n),s={};s=Fst(t,n);let r={$metadata:ce(e),...s};return Promise.resolve(r)};C.deserializeAws_json1_1UpdateNotebookMetadataCommand=UZe;var XZe=async(e,n)=>{let t={...e,body:await we(e.body,n)},s=Ee(e,t.body);switch(s){case"InternalServerException":case"com.amazonaws.athena#InternalServerException":throw await fe(t,n);case"InvalidRequestException":case"com.amazonaws.athena#InvalidRequestException":throw await Se(t,n);case"TooManyRequestsException":case"com.amazonaws.athena#TooManyRequestsException":throw await Hn(t,n);default:let r=t.body;(0,f.throwDefaultError)({output:e,parsedBody:r,exceptionCtor:_e.AthenaServiceException,errorCode:s})}},$Ze=async(e,n)=>{if(e.statusCode>=300)return HZe(e,n);let t=await pe(e.body,n),s={};s=Tst(t,n);let r={$metadata:ce(e),...s};return Promise.resolve(r)};C.deserializeAws_json1_1UpdatePreparedStatementCommand=$Ze;var HZe=async(e,n)=>{let t={...e,body:await we(e.body,n)},s=Ee(e,t.body);switch(s){case"InternalServerException":case"com.amazonaws.athena#InternalServerException":throw await fe(t,n);case"InvalidRequestException":case"com.amazonaws.athena#InvalidRequestException":throw await Se(t,n);case"ResourceNotFoundException":case"com.amazonaws.athena#ResourceNotFoundException":throw await Gt(t,n);default:let r=t.body;(0,f.throwDefaultError)({output:e,parsedBody:r,exceptionCtor:_e.AthenaServiceException,errorCode:s})}},VZe=async(e,n)=>{if(e.statusCode>=300)return WZe(e,n);let t=await pe(e.body,n),s={};s=jst(t,n);let r={$metadata:ce(e),...s};return Promise.resolve(r)};C.deserializeAws_json1_1UpdateWorkGroupCommand=VZe;var WZe=async(e,n)=>{let t={...e,body:await we(e.body,n)},s=Ee(e,t.body);switch(s){case"InternalServerException":case"com.amazonaws.athena#InternalServerException":throw await fe(t,n);case"InvalidRequestException":case"com.amazonaws.athena#InvalidRequestException":throw await Se(t,n);default:let r=t.body;(0,f.throwDefaultError)({output:e,parsedBody:r,exceptionCtor:_e.AthenaServiceException,errorCode:s})}},fe=async(e,n)=>{let t=e.body,s=Snt(t,n),r=new Wo.InternalServerException({$metadata:ce(e),...s});return(0,f.decorateServiceException)(r,t)},Se=async(e,n)=>{let t=e.body,s=hnt(t,n),r=new Wo.InvalidRequestException({$metadata:ce(e),...s});return(0,f.decorateServiceException)(r,t)},TP=async(e,n)=>{let t=e.body,s=Fnt(t,n),r=new Wo.MetadataException({$metadata:ce(e),...s});return(0,f.decorateServiceException)(r,t)},Gt=async(e,n)=>{let t=e.body,s=est(t,n),r=new Wo.ResourceNotFoundException({$metadata:ce(e),...s});return(0,f.decorateServiceException)(r,t)},KZe=async(e,n)=>{let t=e.body,s=cst(t,n),r=new Wo.SessionAlreadyExistsException({$metadata:ce(e),...s});return(0,f.decorateServiceException)(r,t)},Hn=async(e,n)=>{let t=e.body,s=Ast(t,n),r=new Wo.TooManyRequestsException({$metadata:ce(e),...s});return(0,f.decorateServiceException)(r,t)},i4=(e,n)=>({...e.S3AclOption!=null&&{S3AclOption:e.S3AclOption}}),QZe=(e,n)=>({...e.NamedQueryIds!=null&&{NamedQueryIds:Wet(e.NamedQueryIds,n)}}),JZe=(e,n)=>({...e.PreparedStatementNames!=null&&{PreparedStatementNames:Ket(e.PreparedStatementNames,n)},...e.WorkGroup!=null&&{WorkGroup:e.WorkGroup}}),YZe=(e,n)=>({...e.QueryExecutionIds!=null&&{QueryExecutionIds:Jet(e.QueryExecutionIds,n)}}),ZZe=(e,n)=>({...e.CodeBlock!=null&&{CodeBlock:e.CodeBlock}}),eet=(e,n)=>({...e.Description!=null&&{Description:e.Description},...e.Name!=null&&{Name:e.Name},...e.Parameters!=null&&{Parameters:cz(e.Parameters,n)},...e.Tags!=null&&{Tags:lz(e.Tags,n)},...e.Type!=null&&{Type:e.Type}}),tet=(e,n)=>({ClientRequestToken:e.ClientRequestToken??(0,DP.v4)(),...e.Database!=null&&{Database:e.Database},...e.Description!=null&&{Description:e.Description},...e.Name!=null&&{Name:e.Name},...e.QueryString!=null&&{QueryString:e.QueryString},...e.WorkGroup!=null&&{WorkGroup:e.WorkGroup}}),net=(e,n)=>({...e.ClientRequestToken!=null&&{ClientRequestToken:e.ClientRequestToken},...e.Name!=null&&{Name:e.Name},...e.WorkGroup!=null&&{WorkGroup:e.WorkGroup}}),set=(e,n)=>({...e.Description!=null&&{Description:e.Description},...e.QueryStatement!=null&&{QueryStatement:e.QueryStatement},...e.StatementName!=null&&{StatementName:e.StatementName},...e.WorkGroup!=null&&{WorkGroup:e.WorkGroup}}),ret=(e,n)=>({...e.SessionId!=null&&{SessionId:e.SessionId}}),iet=(e,n)=>({...e.Configuration!=null&&{Configuration:ftt(e.Configuration,n)},...e.Description!=null&&{Description:e.Description},...e.Name!=null&&{Name:e.Name},...e.Tags!=null&&{Tags:lz(e.Tags,n)}}),o4=(e,n)=>({...e.KmsKey!=null&&{KmsKey:e.KmsKey}}),oet=(e,n)=>({...e.Name!=null&&{Name:e.Name}}),aet=(e,n)=>({NamedQueryId:e.NamedQueryId??(0,DP.v4)()}),cet=(e,n)=>({...e.NotebookId!=null&&{NotebookId:e.NotebookId}}),det=(e,n)=>({...e.StatementName!=null&&{StatementName:e.StatementName},...e.WorkGroup!=null&&{WorkGroup:e.WorkGroup}}),uet=(e,n)=>({...e.RecursiveDeleteOption!=null&&{RecursiveDeleteOption:e.RecursiveDeleteOption},...e.WorkGroup!=null&&{WorkGroup:e.WorkGroup}}),a4=(e,n)=>({...e.EncryptionOption!=null&&{EncryptionOption:e.EncryptionOption},...e.KmsKey!=null&&{KmsKey:e.KmsKey}}),met=(e,n)=>({...e.AdditionalConfigs!=null&&{AdditionalConfigs:cz(e.AdditionalConfigs,n)},...e.CoordinatorDpuSize!=null&&{CoordinatorDpuSize:e.CoordinatorDpuSize},...e.DefaultExecutorDpuSize!=null&&{DefaultExecutorDpuSize:e.DefaultExecutorDpuSize},...e.MaxConcurrentDpus!=null&&{MaxConcurrentDpus:e.MaxConcurrentDpus}}),c4=(e,n)=>({...e.EffectiveEngineVersion!=null&&{EffectiveEngineVersion:e.EffectiveEngineVersion},...e.SelectedEngineVersion!=null&&{SelectedEngineVersion:e.SelectedEngineVersion}}),pet=(e,n)=>e.filter(t=>t!=null).map(t=>t),get=(e,n)=>({...e.NotebookId!=null&&{NotebookId:e.NotebookId}}),yet=(e,n)=>({...e.Name!=null&&{Name:e.Name}}),_et=(e,n)=>({...e.CalculationExecutionId!=null&&{CalculationExecutionId:e.CalculationExecutionId}}),fet=(e,n)=>({...e.CalculationExecutionId!=null&&{CalculationExecutionId:e.CalculationExecutionId}}),het=(e,n)=>({...e.CalculationExecutionId!=null&&{CalculationExecutionId:e.CalculationExecutionId}}),wet=(e,n)=>({...e.CatalogName!=null&&{CatalogName:e.CatalogName},...e.DatabaseName!=null&&{DatabaseName:e.DatabaseName}}),Eet=(e,n)=>({...e.Name!=null&&{Name:e.Name}}),Cet=(e,n)=>({...e.NamedQueryId!=null&&{NamedQueryId:e.NamedQueryId}}),vet=(e,n)=>({...e.NotebookId!=null&&{NotebookId:e.NotebookId}}),Pet=(e,n)=>({...e.StatementName!=null&&{StatementName:e.StatementName},...e.WorkGroup!=null&&{WorkGroup:e.WorkGroup}}),Aet=(e,n)=>({...e.QueryExecutionId!=null&&{QueryExecutionId:e.QueryExecutionId}}),xet=(e,n)=>({...e.MaxResults!=null&&{MaxResults:e.MaxResults},...e.NextToken!=null&&{NextToken:e.NextToken},...e.QueryExecutionId!=null&&{QueryExecutionId:e.QueryExecutionId}}),bet=(e,n)=>({...e.QueryExecutionId!=null&&{QueryExecutionId:e.QueryExecutionId}}),Iet=(e,n)=>({...e.SessionId!=null&&{SessionId:e.SessionId}}),ket=(e,n)=>({...e.SessionId!=null&&{SessionId:e.SessionId}}),Ret=(e,n)=>({...e.CatalogName!=null&&{CatalogName:e.CatalogName},...e.DatabaseName!=null&&{DatabaseName:e.DatabaseName},...e.TableName!=null&&{TableName:e.TableName}}),Net=(e,n)=>({...e.WorkGroup!=null&&{WorkGroup:e.WorkGroup}}),zet=(e,n)=>({...e.ClientRequestToken!=null&&{ClientRequestToken:e.ClientRequestToken},...e.Name!=null&&{Name:e.Name},...e.Payload!=null&&{Payload:e.Payload},...e.Type!=null&&{Type:e.Type},...e.WorkGroup!=null&&{WorkGroup:e.WorkGroup}}),qet=(e,n)=>({...e.MaxResults!=null&&{MaxResults:e.MaxResults},...e.NextToken!=null&&{NextToken:e.NextToken}}),Let=(e,n)=>({...e.MaxResults!=null&&{MaxResults:e.MaxResults},...e.NextToken!=null&&{NextToken:e.NextToken},...e.SessionId!=null&&{SessionId:e.SessionId},...e.StateFilter!=null&&{StateFilter:e.StateFilter}}),Fet=(e,n)=>({...e.CatalogName!=null&&{CatalogName:e.CatalogName},...e.MaxResults!=null&&{MaxResults:e.MaxResults},...e.NextToken!=null&&{NextToken:e.NextToken}}),Det=(e,n)=>({...e.MaxResults!=null&&{MaxResults:e.MaxResults},...e.NextToken!=null&&{NextToken:e.NextToken}}),Tet=(e,n)=>({...e.MaxResults!=null&&{MaxResults:e.MaxResults},...e.NextToken!=null&&{NextToken:e.NextToken}}),jet=(e,n)=>({...e.ExecutorStateFilter!=null&&{ExecutorStateFilter:e.ExecutorStateFilter},...e.MaxResults!=null&&{MaxResults:e.MaxResults},...e.NextToken!=null&&{NextToken:e.NextToken},...e.SessionId!=null&&{SessionId:e.SessionId}}),Met=(e,n)=>({...e.MaxResults!=null&&{MaxResults:e.MaxResults},...e.NextToken!=null&&{NextToken:e.NextToken},...e.WorkGroup!=null&&{WorkGroup:e.WorkGroup}}),Oet=(e,n)=>({...e.Filters!=null&&{Filters:yet(e.Filters,n)},...e.MaxResults!=null&&{MaxResults:e.MaxResults},...e.NextToken!=null&&{NextToken:e.NextToken},...e.WorkGroup!=null&&{WorkGroup:e.WorkGroup}}),Bet=(e,n)=>({...e.MaxResults!=null&&{MaxResults:e.MaxResults},...e.NextToken!=null&&{NextToken:e.NextToken},...e.NotebookId!=null&&{NotebookId:e.NotebookId}}),Get=(e,n)=>({...e.MaxResults!=null&&{MaxResults:e.MaxResults},...e.NextToken!=null&&{NextToken:e.NextToken},...e.WorkGroup!=null&&{WorkGroup:e.WorkGroup}}),Uet=(e,n)=>({...e.MaxResults!=null&&{MaxResults:e.MaxResults},...e.NextToken!=null&&{NextToken:e.NextToken},...e.WorkGroup!=null&&{WorkGroup:e.WorkGroup}}),Xet=(e,n)=>({...e.MaxResults!=null&&{MaxResults:e.MaxResults},...e.NextToken!=null&&{NextToken:e.NextToken},...e.StateFilter!=null&&{StateFilter:e.StateFilter},...e.WorkGroup!=null&&{WorkGroup:e.WorkGroup}}),$et=(e,n)=>({...e.CatalogName!=null&&{CatalogName:e.CatalogName},...e.DatabaseName!=null&&{DatabaseName:e.DatabaseName},...e.Expression!=null&&{Expression:e.Expression},...e.MaxResults!=null&&{MaxResults:e.MaxResults},...e.NextToken!=null&&{NextToken:e.NextToken}}),Het=(e,n)=>({...e.MaxResults!=null&&{MaxResults:e.MaxResults},...e.NextToken!=null&&{NextToken:e.NextToken},...e.ResourceARN!=null&&{ResourceARN:e.ResourceARN}}),Vet=(e,n)=>({...e.MaxResults!=null&&{MaxResults:e.MaxResults},...e.NextToken!=null&&{NextToken:e.NextToken}}),Wet=(e,n)=>e.filter(t=>t!=null).map(t=>t),cz=(e,n)=>Object.entries(e).reduce((t,[s,r])=>(r===null||(t[s]=r),t),{}),Ket=(e,n)=>e.filter(t=>t!=null).map(t=>t),Qet=(e,n)=>({...e.Catalog!=null&&{Catalog:e.Catalog},...e.Database!=null&&{Database:e.Database}}),Jet=(e,n)=>e.filter(t=>t!=null).map(t=>t),l4=(e,n)=>({...e.AclConfiguration!=null&&{AclConfiguration:i4(e.AclConfiguration,n)},...e.EncryptionConfiguration!=null&&{EncryptionConfiguration:a4(e.EncryptionConfiguration,n)},...e.ExpectedBucketOwner!=null&&{ExpectedBucketOwner:e.ExpectedBucketOwner},...e.OutputLocation!=null&&{OutputLocation:e.OutputLocation}}),Yet=(e,n)=>({...e.AclConfiguration!=null&&{AclConfiguration:i4(e.AclConfiguration,n)},...e.EncryptionConfiguration!=null&&{EncryptionConfiguration:a4(e.EncryptionConfiguration,n)},...e.ExpectedBucketOwner!=null&&{ExpectedBucketOwner:e.ExpectedBucketOwner},...e.OutputLocation!=null&&{OutputLocation:e.OutputLocation},...e.RemoveAclConfiguration!=null&&{RemoveAclConfiguration:e.RemoveAclConfiguration},...e.RemoveEncryptionConfiguration!=null&&{RemoveEncryptionConfiguration:e.RemoveEncryptionConfiguration},...e.RemoveExpectedBucketOwner!=null&&{RemoveExpectedBucketOwner:e.RemoveExpectedBucketOwner},...e.RemoveOutputLocation!=null&&{RemoveOutputLocation:e.RemoveOutputLocation}}),Zet=(e,n)=>({...e.Enabled!=null&&{Enabled:e.Enabled},...e.MaxAgeInMinutes!=null&&{MaxAgeInMinutes:e.MaxAgeInMinutes}}),ett=(e,n)=>({...e.ResultReuseByAgeConfiguration!=null&&{ResultReuseByAgeConfiguration:Zet(e.ResultReuseByAgeConfiguration,n)}}),ttt=(e,n)=>({...e.CalculationConfiguration!=null&&{CalculationConfiguration:ZZe(e.CalculationConfiguration,n)},...e.ClientRequestToken!=null&&{ClientRequestToken:e.ClientRequestToken},...e.CodeBlock!=null&&{CodeBlock:e.CodeBlock},...e.Description!=null&&{Description:e.Description},...e.SessionId!=null&&{SessionId:e.SessionId}}),ntt=(e,n)=>({ClientRequestToken:e.ClientRequestToken??(0,DP.v4)(),...e.ExecutionParameters!=null&&{ExecutionParameters:pet(e.ExecutionParameters,n)},...e.QueryExecutionContext!=null&&{QueryExecutionContext:Qet(e.QueryExecutionContext,n)},...e.QueryString!=null&&{QueryString:e.QueryString},...e.ResultConfiguration!=null&&{ResultConfiguration:l4(e.ResultConfiguration,n)},...e.ResultReuseConfiguration!=null&&{ResultReuseConfiguration:ett(e.ResultReuseConfiguration,n)},...e.WorkGroup!=null&&{WorkGroup:e.WorkGroup}}),stt=(e,n)=>({...e.ClientRequestToken!=null&&{ClientRequestToken:e.ClientRequestToken},...e.Description!=null&&{Description:e.Description},...e.EngineConfiguration!=null&&{EngineConfiguration:met(e.EngineConfiguration,n)},...e.NotebookVersion!=null&&{NotebookVersion:e.NotebookVersion},...e.SessionIdleTimeoutInMinutes!=null&&{SessionIdleTimeoutInMinutes:e.SessionIdleTimeoutInMinutes},...e.WorkGroup!=null&&{WorkGroup:e.WorkGroup}}),rtt=(e,n)=>({...e.CalculationExecutionId!=null&&{CalculationExecutionId:e.CalculationExecutionId}}),itt=(e,n)=>({QueryExecutionId:e.QueryExecutionId??(0,DP.v4)()}),ott=(e,n)=>({...e.Key!=null&&{Key:e.Key},...e.Value!=null&&{Value:e.Value}}),att=(e,n)=>e.filter(t=>t!=null).map(t=>t),lz=(e,n)=>e.filter(t=>t!=null).map(t=>ott(t,n)),ctt=(e,n)=>({...e.ResourceARN!=null&&{ResourceARN:e.ResourceARN},...e.Tags!=null&&{Tags:lz(e.Tags,n)}}),ltt=(e,n)=>({...e.SessionId!=null&&{SessionId:e.SessionId}}),dtt=(e,n)=>({...e.ResourceARN!=null&&{ResourceARN:e.ResourceARN},...e.TagKeys!=null&&{TagKeys:att(e.TagKeys,n)}}),utt=(e,n)=>({...e.Description!=null&&{Description:e.Description},...e.Name!=null&&{Name:e.Name},...e.Parameters!=null&&{Parameters:cz(e.Parameters,n)},...e.Type!=null&&{Type:e.Type}}),mtt=(e,n)=>({...e.Description!=null&&{Description:e.Description},...e.Name!=null&&{Name:e.Name},...e.NamedQueryId!=null&&{NamedQueryId:e.NamedQueryId},...e.QueryString!=null&&{QueryString:e.QueryString}}),ptt=(e,n)=>({...e.ClientRequestToken!=null&&{ClientRequestToken:e.ClientRequestToken},...e.NotebookId!=null&&{NotebookId:e.NotebookId},...e.Payload!=null&&{Payload:e.Payload},...e.SessionId!=null&&{SessionId:e.SessionId},...e.Type!=null&&{Type:e.Type}}),gtt=(e,n)=>({...e.ClientRequestToken!=null&&{ClientRequestToken:e.ClientRequestToken},...e.Name!=null&&{Name:e.Name},...e.NotebookId!=null&&{NotebookId:e.NotebookId}}),ytt=(e,n)=>({...e.Description!=null&&{Description:e.Description},...e.QueryStatement!=null&&{QueryStatement:e.QueryStatement},...e.StatementName!=null&&{StatementName:e.StatementName},...e.WorkGroup!=null&&{WorkGroup:e.WorkGroup}}),_tt=(e,n)=>({...e.ConfigurationUpdates!=null&&{ConfigurationUpdates:Stt(e.ConfigurationUpdates,n)},...e.Description!=null&&{Description:e.Description},...e.State!=null&&{State:e.State},...e.WorkGroup!=null&&{WorkGroup:e.WorkGroup}}),ftt=(e,n)=>({...e.AdditionalConfiguration!=null&&{AdditionalConfiguration:e.AdditionalConfiguration},...e.BytesScannedCutoffPerQuery!=null&&{BytesScannedCutoffPerQuery:e.BytesScannedCutoffPerQuery},...e.CustomerContentEncryptionConfiguration!=null&&{CustomerContentEncryptionConfiguration:o4(e.CustomerContentEncryptionConfiguration,n)},...e.EnforceWorkGroupConfiguration!=null&&{EnforceWorkGroupConfiguration:e.EnforceWorkGroupConfiguration},...e.EngineVersion!=null&&{EngineVersion:c4(e.EngineVersion,n)},...e.ExecutionRole!=null&&{ExecutionRole:e.ExecutionRole},...e.PublishCloudWatchMetricsEnabled!=null&&{PublishCloudWatchMetricsEnabled:e.PublishCloudWatchMetricsEnabled},...e.RequesterPaysEnabled!=null&&{RequesterPaysEnabled:e.RequesterPaysEnabled},...e.ResultConfiguration!=null&&{ResultConfiguration:l4(e.ResultConfiguration,n)}}),Stt=(e,n)=>({...e.AdditionalConfiguration!=null&&{AdditionalConfiguration:e.AdditionalConfiguration},...e.BytesScannedCutoffPerQuery!=null&&{BytesScannedCutoffPerQuery:e.BytesScannedCutoffPerQuery},...e.CustomerContentEncryptionConfiguration!=null&&{CustomerContentEncryptionConfiguration:o4(e.CustomerContentEncryptionConfiguration,n)},...e.EnforceWorkGroupConfiguration!=null&&{EnforceWorkGroupConfiguration:e.EnforceWorkGroupConfiguration},...e.EngineVersion!=null&&{EngineVersion:c4(e.EngineVersion,n)},...e.ExecutionRole!=null&&{ExecutionRole:e.ExecutionRole},...e.PublishCloudWatchMetricsEnabled!=null&&{PublishCloudWatchMetricsEnabled:e.PublishCloudWatchMetricsEnabled},...e.RemoveBytesScannedCutoffPerQuery!=null&&{RemoveBytesScannedCutoffPerQuery:e.RemoveBytesScannedCutoffPerQuery},...e.RemoveCustomerContentEncryptionConfiguration!=null&&{RemoveCustomerContentEncryptionConfiguration:e.RemoveCustomerContentEncryptionConfiguration},...e.RequesterPaysEnabled!=null&&{RequesterPaysEnabled:e.RequesterPaysEnabled},...e.ResultConfigurationUpdates!=null&&{ResultConfigurationUpdates:Yet(e.ResultConfigurationUpdates,n)}}),htt=(e,n)=>({S3AclOption:(0,f.expectString)(e.S3AclOption)}),wtt=(e,n)=>({ApplicationRuntimeId:(0,f.expectString)(e.ApplicationRuntimeId),SupportedDPUSizes:e.SupportedDPUSizes!=null?hst(e.SupportedDPUSizes,n):void 0}),Ett=(e,n)=>(e||[]).filter(s=>s!=null).map(s=>s===null?null:wtt(s,n)),Ctt=(e,n)=>({ErrorCategory:(0,f.expectInt32)(e.ErrorCategory),ErrorMessage:(0,f.expectString)(e.ErrorMessage),ErrorType:(0,f.expectInt32)(e.ErrorType),Retryable:(0,f.expectBoolean)(e.Retryable)}),vtt=(e,n)=>({NamedQueries:e.NamedQueries!=null?Tnt(e.NamedQueries,n):void 0,UnprocessedNamedQueryIds:e.UnprocessedNamedQueryIds!=null?bst(e.UnprocessedNamedQueryIds,n):void 0}),Ptt=(e,n)=>({PreparedStatements:e.PreparedStatements!=null?Bnt(e.PreparedStatements,n):void 0,UnprocessedPreparedStatementNames:e.UnprocessedPreparedStatementNames!=null?kst(e.UnprocessedPreparedStatementNames,n):void 0}),Att=(e,n)=>({QueryExecutions:e.QueryExecutions!=null?Hnt(e.QueryExecutions,n):void 0,UnprocessedQueryExecutionIds:e.UnprocessedQueryExecutionIds!=null?Nst(e.UnprocessedQueryExecutionIds,n):void 0}),xtt=(e,n)=>({ResultS3Uri:(0,f.expectString)(e.ResultS3Uri),ResultType:(0,f.expectString)(e.ResultType),StdErrorS3Uri:(0,f.expectString)(e.StdErrorS3Uri),StdOutS3Uri:(0,f.expectString)(e.StdOutS3Uri)}),btt=(e,n)=>(e||[]).filter(s=>s!=null).map(s=>s===null?null:Itt(s,n)),d4=(e,n)=>({DpuExecutionInMillis:(0,f.expectLong)(e.DpuExecutionInMillis),Progress:(0,f.expectString)(e.Progress)}),dz=(e,n)=>({CompletionDateTime:e.CompletionDateTime!=null?(0,f.expectNonNull)((0,f.parseEpochTimestamp)((0,f.expectNumber)(e.CompletionDateTime))):void 0,State:(0,f.expectString)(e.State),StateChangeReason:(0,f.expectString)(e.StateChangeReason),SubmissionDateTime:e.SubmissionDateTime!=null?(0,f.expectNonNull)((0,f.parseEpochTimestamp)((0,f.expectNumber)(e.SubmissionDateTime))):void 0}),Itt=(e,n)=>({CalculationExecutionId:(0,f.expectString)(e.CalculationExecutionId),Description:(0,f.expectString)(e.Description),Status:e.Status!=null?dz(e.Status,n):void 0}),ktt=(e,n)=>({Comment:(0,f.expectString)(e.Comment),Name:(0,f.expectString)(e.Name),Type:(0,f.expectString)(e.Type)}),Rtt=(e,n)=>({CaseSensitive:(0,f.expectBoolean)(e.CaseSensitive),CatalogName:(0,f.expectString)(e.CatalogName),Label:(0,f.expectString)(e.Label),Name:(0,f.expectString)(e.Name),Nullable:(0,f.expectString)(e.Nullable),Precision:(0,f.expectInt32)(e.Precision),Scale:(0,f.expectInt32)(e.Scale),SchemaName:(0,f.expectString)(e.SchemaName),TableName:(0,f.expectString)(e.TableName),Type:(0,f.expectString)(e.Type)}),Ntt=(e,n)=>(e||[]).filter(s=>s!=null).map(s=>s===null?null:Rtt(s,n)),r4=(e,n)=>(e||[]).filter(s=>s!=null).map(s=>s===null?null:ktt(s,n)),ztt=(e,n)=>({}),qtt=(e,n)=>({NamedQueryId:(0,f.expectString)(e.NamedQueryId)}),Ltt=(e,n)=>({NotebookId:(0,f.expectString)(e.NotebookId)}),Ftt=(e,n)=>({}),Dtt=(e,n)=>({AuthToken:(0,f.expectString)(e.AuthToken),AuthTokenExpirationTime:(0,f.expectLong)(e.AuthTokenExpirationTime),NotebookUrl:(0,f.expectString)(e.NotebookUrl)}),Ttt=(e,n)=>({}),jtt=(e,n)=>({KmsKey:(0,f.expectString)(e.KmsKey)}),u4=(e,n)=>({Description:(0,f.expectString)(e.Description),Name:(0,f.expectString)(e.Name),Parameters:e.Parameters!=null?jP(e.Parameters,n):void 0}),Mtt=(e,n)=>(e||[]).filter(s=>s!=null).map(s=>s===null?null:u4(s,n)),Ott=(e,n)=>({Description:(0,f.expectString)(e.Description),Name:(0,f.expectString)(e.Name),Parameters:e.Parameters!=null?jP(e.Parameters,n):void 0,Type:(0,f.expectString)(e.Type)}),Btt=(e,n)=>({CatalogName:(0,f.expectString)(e.CatalogName),Type:(0,f.expectString)(e.Type)}),Gtt=(e,n)=>(e||[]).filter(s=>s!=null).map(s=>s===null?null:Btt(s,n)),Utt=(e,n)=>({VarCharValue:(0,f.expectString)(e.VarCharValue)}),Xtt=(e,n)=>(e||[]).filter(s=>s!=null).map(s=>s===null?null:Utt(s,n)),$tt=(e,n)=>({}),Htt=(e,n)=>({}),Vtt=(e,n)=>({}),Wtt=(e,n)=>({}),Ktt=(e,n)=>({}),m4=(e,n)=>({EncryptionOption:(0,f.expectString)(e.EncryptionOption),KmsKey:(0,f.expectString)(e.KmsKey)}),Qtt=(e,n)=>({AdditionalConfigs:e.AdditionalConfigs!=null?jP(e.AdditionalConfigs,n):void 0,CoordinatorDpuSize:(0,f.expectInt32)(e.CoordinatorDpuSize),DefaultExecutorDpuSize:(0,f.expectInt32)(e.DefaultExecutorDpuSize),MaxConcurrentDpus:(0,f.expectInt32)(e.MaxConcurrentDpus)}),Zm=(e,n)=>({EffectiveEngineVersion:(0,f.expectString)(e.EffectiveEngineVersion),SelectedEngineVersion:(0,f.expectString)(e.SelectedEngineVersion)}),Jtt=(e,n)=>(e||[]).filter(s=>s!=null).map(s=>s===null?null:Zm(s,n)),Ytt=(e,n)=>(e||[]).filter(s=>s!=null).map(s=>s===null?null:(0,f.expectString)(s)),Ztt=(e,n)=>({ExecutorId:(0,f.expectString)(e.ExecutorId),ExecutorSize:(0,f.expectLong)(e.ExecutorSize),ExecutorState:(0,f.expectString)(e.ExecutorState),ExecutorType:(0,f.expectString)(e.ExecutorType),StartDateTime:(0,f.expectLong)(e.StartDateTime),TerminationDateTime:(0,f.expectLong)(e.TerminationDateTime)}),ent=(e,n)=>(e||[]).filter(s=>s!=null).map(s=>s===null?null:Ztt(s,n)),tnt=(e,n)=>({NotebookMetadata:e.NotebookMetadata!=null?uz(e.NotebookMetadata,n):void 0,Payload:(0,f.expectString)(e.Payload)}),nnt=(e,n)=>({CodeBlock:(0,f.expectString)(e.CodeBlock)}),snt=(e,n)=>({CalculationExecutionId:(0,f.expectString)(e.CalculationExecutionId),Description:(0,f.expectString)(e.Description),Result:e.Result!=null?xtt(e.Result,n):void 0,SessionId:(0,f.expectString)(e.SessionId),Statistics:e.Statistics!=null?d4(e.Statistics,n):void 0,Status:e.Status!=null?dz(e.Status,n):void 0,WorkingDirectory:(0,f.expectString)(e.WorkingDirectory)}),rnt=(e,n)=>({Statistics:e.Statistics!=null?d4(e.Statistics,n):void 0,Status:e.Status!=null?dz(e.Status,n):void 0}),int=(e,n)=>({Database:e.Database!=null?u4(e.Database,n):void 0}),ont=(e,n)=>({DataCatalog:e.DataCatalog!=null?Ott(e.DataCatalog,n):void 0}),ant=(e,n)=>({NamedQuery:e.NamedQuery!=null?p4(e.NamedQuery,n):void 0}),cnt=(e,n)=>({NotebookMetadata:e.NotebookMetadata!=null?uz(e.NotebookMetadata,n):void 0}),lnt=(e,n)=>({PreparedStatement:e.PreparedStatement!=null?g4(e.PreparedStatement,n):void 0}),dnt=(e,n)=>({QueryExecution:e.QueryExecution!=null?y4(e.QueryExecution,n):void 0}),unt=(e,n)=>({NextToken:(0,f.expectString)(e.NextToken),ResultSet:e.ResultSet!=null?rst(e.ResultSet,n):void 0,UpdateCount:(0,f.expectLong)(e.UpdateCount)}),mnt=(e,n)=>({QueryRuntimeStatistics:e.QueryRuntimeStatistics!=null?Knt(e.QueryRuntimeStatistics,n):void 0}),pnt=(e,n)=>({Description:(0,f.expectString)(e.Description),EngineConfiguration:e.EngineConfiguration!=null?Qtt(e.EngineConfiguration,n):void 0,EngineVersion:(0,f.expectString)(e.EngineVersion),NotebookVersion:(0,f.expectString)(e.NotebookVersion),SessionConfiguration:e.SessionConfiguration!=null?lst(e.SessionConfiguration,n):void 0,SessionId:(0,f.expectString)(e.SessionId),Statistics:e.Statistics!=null?ust(e.Statistics,n):void 0,Status:e.Status!=null?mz(e.Status,n):void 0,WorkGroup:(0,f.expectString)(e.WorkGroup)}),gnt=(e,n)=>({SessionId:(0,f.expectString)(e.SessionId),Status:e.Status!=null?mz(e.Status,n):void 0}),ynt=(e,n)=>({TableMetadata:e.TableMetadata!=null?h4(e.TableMetadata,n):void 0}),_nt=(e,n)=>({WorkGroup:e.WorkGroup!=null?Mst(e.WorkGroup,n):void 0}),fnt=(e,n)=>({NotebookId:(0,f.expectString)(e.NotebookId)}),Snt=(e,n)=>({Message:(0,f.expectString)(e.Message)}),hnt=(e,n)=>({AthenaErrorCode:(0,f.expectString)(e.AthenaErrorCode),Message:(0,f.expectString)(e.Message)}),wnt=(e,n)=>({ApplicationDPUSizes:e.ApplicationDPUSizes!=null?Ett(e.ApplicationDPUSizes,n):void 0,NextToken:(0,f.expectString)(e.NextToken)}),Ent=(e,n)=>({Calculations:e.Calculations!=null?btt(e.Calculations,n):void 0,NextToken:(0,f.expectString)(e.NextToken)}),Cnt=(e,n)=>({DatabaseList:e.DatabaseList!=null?Mtt(e.DatabaseList,n):void 0,NextToken:(0,f.expectString)(e.NextToken)}),vnt=(e,n)=>({DataCatalogsSummary:e.DataCatalogsSummary!=null?Gtt(e.DataCatalogsSummary,n):void 0,NextToken:(0,f.expectString)(e.NextToken)}),Pnt=(e,n)=>({EngineVersions:e.EngineVersions!=null?Jtt(e.EngineVersions,n):void 0,NextToken:(0,f.expectString)(e.NextToken)}),Ant=(e,n)=>({ExecutorsSummary:e.ExecutorsSummary!=null?ent(e.ExecutorsSummary,n):void 0,NextToken:(0,f.expectString)(e.NextToken),SessionId:(0,f.expectString)(e.SessionId)}),xnt=(e,n)=>({NamedQueryIds:e.NamedQueryIds!=null?Dnt(e.NamedQueryIds,n):void 0,NextToken:(0,f.expectString)(e.NextToken)}),bnt=(e,n)=>({NextToken:(0,f.expectString)(e.NextToken),NotebookMetadataList:e.NotebookMetadataList!=null?jnt(e.NotebookMetadataList,n):void 0}),Int=(e,n)=>({NextToken:(0,f.expectString)(e.NextToken),NotebookSessionsList:e.NotebookSessionsList!=null?Mnt(e.NotebookSessionsList,n):void 0}),knt=(e,n)=>({NextToken:(0,f.expectString)(e.NextToken),PreparedStatements:e.PreparedStatements!=null?Gnt(e.PreparedStatements,n):void 0}),Rnt=(e,n)=>({NextToken:(0,f.expectString)(e.NextToken),QueryExecutionIds:e.QueryExecutionIds!=null?$nt(e.QueryExecutionIds,n):void 0}),Nnt=(e,n)=>({NextToken:(0,f.expectString)(e.NextToken),Sessions:e.Sessions!=null?dst(e.Sessions,n):void 0}),znt=(e,n)=>({NextToken:(0,f.expectString)(e.NextToken),TableMetadataList:e.TableMetadataList!=null?wst(e.TableMetadataList,n):void 0}),qnt=(e,n)=>({NextToken:(0,f.expectString)(e.NextToken),Tags:e.Tags!=null?Cst(e.Tags,n):void 0}),Lnt=(e,n)=>({NextToken:(0,f.expectString)(e.NextToken),WorkGroups:e.WorkGroups!=null?Bst(e.WorkGroups,n):void 0}),Fnt=(e,n)=>({Message:(0,f.expectString)(e.Message)}),p4=(e,n)=>({Database:(0,f.expectString)(e.Database),Description:(0,f.expectString)(e.Description),Name:(0,f.expectString)(e.Name),NamedQueryId:(0,f.expectString)(e.NamedQueryId),QueryString:(0,f.expectString)(e.QueryString),WorkGroup:(0,f.expectString)(e.WorkGroup)}),Dnt=(e,n)=>(e||[]).filter(s=>s!=null).map(s=>s===null?null:(0,f.expectString)(s)),Tnt=(e,n)=>(e||[]).filter(s=>s!=null).map(s=>s===null?null:p4(s,n)),uz=(e,n)=>({CreationTime:e.CreationTime!=null?(0,f.expectNonNull)((0,f.parseEpochTimestamp)((0,f.expectNumber)(e.CreationTime))):void 0,LastModifiedTime:e.LastModifiedTime!=null?(0,f.expectNonNull)((0,f.parseEpochTimestamp)((0,f.expectNumber)(e.LastModifiedTime))):void 0,Name:(0,f.expectString)(e.Name),NotebookId:(0,f.expectString)(e.NotebookId),Type:(0,f.expectString)(e.Type),WorkGroup:(0,f.expectString)(e.WorkGroup)}),jnt=(e,n)=>(e||[]).filter(s=>s!=null).map(s=>s===null?null:uz(s,n)),Mnt=(e,n)=>(e||[]).filter(s=>s!=null).map(s=>s===null?null:Ont(s,n)),Ont=(e,n)=>({CreationTime:e.CreationTime!=null?(0,f.expectNonNull)((0,f.parseEpochTimestamp)((0,f.expectNumber)(e.CreationTime))):void 0,SessionId:(0,f.expectString)(e.SessionId)}),jP=(e,n)=>Object.entries(e).reduce((t,[s,r])=>(r===null||(t[s]=(0,f.expectString)(r)),t),{}),g4=(e,n)=>({Description:(0,f.expectString)(e.Description),LastModifiedTime:e.LastModifiedTime!=null?(0,f.expectNonNull)((0,f.parseEpochTimestamp)((0,f.expectNumber)(e.LastModifiedTime))):void 0,QueryStatement:(0,f.expectString)(e.QueryStatement),StatementName:(0,f.expectString)(e.StatementName),WorkGroupName:(0,f.expectString)(e.WorkGroupName)}),Bnt=(e,n)=>(e||[]).filter(s=>s!=null).map(s=>s===null?null:g4(s,n)),Gnt=(e,n)=>(e||[]).filter(s=>s!=null).map(s=>s===null?null:Unt(s,n)),Unt=(e,n)=>({LastModifiedTime:e.LastModifiedTime!=null?(0,f.expectNonNull)((0,f.parseEpochTimestamp)((0,f.expectNumber)(e.LastModifiedTime))):void 0,StatementName:(0,f.expectString)(e.StatementName)}),y4=(e,n)=>({EngineVersion:e.EngineVersion!=null?Zm(e.EngineVersion,n):void 0,ExecutionParameters:e.ExecutionParameters!=null?Ytt(e.ExecutionParameters,n):void 0,Query:(0,f.expectString)(e.Query),QueryExecutionContext:e.QueryExecutionContext!=null?Xnt(e.QueryExecutionContext,n):void 0,QueryExecutionId:(0,f.expectString)(e.QueryExecutionId),ResultConfiguration:e.ResultConfiguration!=null?S4(e.ResultConfiguration,n):void 0,ResultReuseConfiguration:e.ResultReuseConfiguration!=null?nst(e.ResultReuseConfiguration,n):void 0,StatementType:(0,f.expectString)(e.StatementType),Statistics:e.Statistics!=null?Vnt(e.Statistics,n):void 0,Status:e.Status!=null?Wnt(e.Status,n):void 0,WorkGroup:(0,f.expectString)(e.WorkGroup)}),Xnt=(e,n)=>({Catalog:(0,f.expectString)(e.Catalog),Database:(0,f.expectString)(e.Database)}),$nt=(e,n)=>(e||[]).filter(s=>s!=null).map(s=>s===null?null:(0,f.expectString)(s)),Hnt=(e,n)=>(e||[]).filter(s=>s!=null).map(s=>s===null?null:y4(s,n)),Vnt=(e,n)=>({DataManifestLocation:(0,f.expectString)(e.DataManifestLocation),DataScannedInBytes:(0,f.expectLong)(e.DataScannedInBytes),EngineExecutionTimeInMillis:(0,f.expectLong)(e.EngineExecutionTimeInMillis),QueryPlanningTimeInMillis:(0,f.expectLong)(e.QueryPlanningTimeInMillis),QueryQueueTimeInMillis:(0,f.expectLong)(e.QueryQueueTimeInMillis),ResultReuseInformation:e.ResultReuseInformation!=null?sst(e.ResultReuseInformation,n):void 0,ServiceProcessingTimeInMillis:(0,f.expectLong)(e.ServiceProcessingTimeInMillis),TotalExecutionTimeInMillis:(0,f.expectLong)(e.TotalExecutionTimeInMillis)}),Wnt=(e,n)=>({AthenaError:e.AthenaError!=null?Ctt(e.AthenaError,n):void 0,CompletionDateTime:e.CompletionDateTime!=null?(0,f.expectNonNull)((0,f.parseEpochTimestamp)((0,f.expectNumber)(e.CompletionDateTime))):void 0,State:(0,f.expectString)(e.State),StateChangeReason:(0,f.expectString)(e.StateChangeReason),SubmissionDateTime:e.SubmissionDateTime!=null?(0,f.expectNonNull)((0,f.parseEpochTimestamp)((0,f.expectNumber)(e.SubmissionDateTime))):void 0}),Knt=(e,n)=>({OutputStage:e.OutputStage!=null?_4(e.OutputStage,n):void 0,Rows:e.Rows!=null?Qnt(e.Rows,n):void 0,Timeline:e.Timeline!=null?Jnt(e.Timeline,n):void 0}),Qnt=(e,n)=>({InputBytes:(0,f.expectLong)(e.InputBytes),InputRows:(0,f.expectLong)(e.InputRows),OutputBytes:(0,f.expectLong)(e.OutputBytes),OutputRows:(0,f.expectLong)(e.OutputRows)}),Jnt=(e,n)=>({EngineExecutionTimeInMillis:(0,f.expectLong)(e.EngineExecutionTimeInMillis),QueryPlanningTimeInMillis:(0,f.expectLong)(e.QueryPlanningTimeInMillis),QueryQueueTimeInMillis:(0,f.expectLong)(e.QueryQueueTimeInMillis),ServiceProcessingTimeInMillis:(0,f.expectLong)(e.ServiceProcessingTimeInMillis),TotalExecutionTimeInMillis:(0,f.expectLong)(e.TotalExecutionTimeInMillis)}),_4=(e,n)=>({ExecutionTime:(0,f.expectLong)(e.ExecutionTime),InputBytes:(0,f.expectLong)(e.InputBytes),InputRows:(0,f.expectLong)(e.InputRows),OutputBytes:(0,f.expectLong)(e.OutputBytes),OutputRows:(0,f.expectLong)(e.OutputRows),QueryStagePlan:e.QueryStagePlan!=null?f4(e.QueryStagePlan,n):void 0,StageId:(0,f.expectLong)(e.StageId),State:(0,f.expectString)(e.State),SubStages:e.SubStages!=null?Znt(e.SubStages,n):void 0}),f4=(e,n)=>({Children:e.Children!=null?Ynt(e.Children,n):void 0,Identifier:(0,f.expectString)(e.Identifier),Name:(0,f.expectString)(e.Name),RemoteSources:e.RemoteSources!=null?Sst(e.RemoteSources,n):void 0}),Ynt=(e,n)=>(e||[]).filter(s=>s!=null).map(s=>s===null?null:f4(s,n)),Znt=(e,n)=>(e||[]).filter(s=>s!=null).map(s=>s===null?null:_4(s,n)),est=(e,n)=>({Message:(0,f.expectString)(e.Message),ResourceName:(0,f.expectString)(e.ResourceName)}),S4=(e,n)=>({AclConfiguration:e.AclConfiguration!=null?htt(e.AclConfiguration,n):void 0,EncryptionConfiguration:e.EncryptionConfiguration!=null?m4(e.EncryptionConfiguration,n):void 0,ExpectedBucketOwner:(0,f.expectString)(e.ExpectedBucketOwner),OutputLocation:(0,f.expectString)(e.OutputLocation)}),tst=(e,n)=>({Enabled:(0,f.expectBoolean)(e.Enabled),MaxAgeInMinutes:(0,f.expectInt32)(e.MaxAgeInMinutes)}),nst=(e,n)=>({ResultReuseByAgeConfiguration:e.ResultReuseByAgeConfiguration!=null?tst(e.ResultReuseByAgeConfiguration,n):void 0}),sst=(e,n)=>({ReusedPreviousResult:(0,f.expectBoolean)(e.ReusedPreviousResult)}),rst=(e,n)=>({ResultSetMetadata:e.ResultSetMetadata!=null?ist(e.ResultSetMetadata,n):void 0,Rows:e.Rows!=null?ast(e.Rows,n):void 0}),ist=(e,n)=>({ColumnInfo:e.ColumnInfo!=null?Ntt(e.ColumnInfo,n):void 0}),ost=(e,n)=>({Data:e.Data!=null?Xtt(e.Data,n):void 0}),ast=(e,n)=>(e||[]).filter(s=>s!=null).map(s=>s===null?null:ost(s,n)),cst=(e,n)=>({Message:(0,f.expectString)(e.Message)}),lst=(e,n)=>({EncryptionConfiguration:e.EncryptionConfiguration!=null?m4(e.EncryptionConfiguration,n):void 0,ExecutionRole:(0,f.expectString)(e.ExecutionRole),IdleTimeoutSeconds:(0,f.expectLong)(e.IdleTimeoutSeconds),WorkingDirectory:(0,f.expectString)(e.WorkingDirectory)}),dst=(e,n)=>(e||[]).filter(s=>s!=null).map(s=>s===null?null:mst(s,n)),ust=(e,n)=>({DpuExecutionInMillis:(0,f.expectLong)(e.DpuExecutionInMillis)}),mz=(e,n)=>({EndDateTime:e.EndDateTime!=null?(0,f.expectNonNull)((0,f.parseEpochTimestamp)((0,f.expectNumber)(e.EndDateTime))):void 0,IdleSinceDateTime:e.IdleSinceDateTime!=null?(0,f.expectNonNull)((0,f.parseEpochTimestamp)((0,f.expectNumber)(e.IdleSinceDateTime))):void 0,LastModifiedDateTime:e.LastModifiedDateTime!=null?(0,f.expectNonNull)((0,f.parseEpochTimestamp)((0,f.expectNumber)(e.LastModifiedDateTime))):void 0,StartDateTime:e.StartDateTime!=null?(0,f.expectNonNull)((0,f.parseEpochTimestamp)((0,f.expectNumber)(e.StartDateTime))):void 0,State:(0,f.expectString)(e.State),StateChangeReason:(0,f.expectString)(e.StateChangeReason)}),mst=(e,n)=>({Description:(0,f.expectString)(e.Description),EngineVersion:e.EngineVersion!=null?Zm(e.EngineVersion,n):void 0,NotebookVersion:(0,f.expectString)(e.NotebookVersion),SessionId:(0,f.expectString)(e.SessionId),Status:e.Status!=null?mz(e.Status,n):void 0}),pst=(e,n)=>({CalculationExecutionId:(0,f.expectString)(e.CalculationExecutionId),State:(0,f.expectString)(e.State)}),gst=(e,n)=>({QueryExecutionId:(0,f.expectString)(e.QueryExecutionId)}),yst=(e,n)=>({SessionId:(0,f.expectString)(e.SessionId),State:(0,f.expectString)(e.State)}),_st=(e,n)=>({State:(0,f.expectString)(e.State)}),fst=(e,n)=>({}),Sst=(e,n)=>(e||[]).filter(s=>s!=null).map(s=>s===null?null:(0,f.expectString)(s)),hst=(e,n)=>(e||[]).filter(s=>s!=null).map(s=>s===null?null:(0,f.expectInt32)(s)),h4=(e,n)=>({Columns:e.Columns!=null?r4(e.Columns,n):void 0,CreateTime:e.CreateTime!=null?(0,f.expectNonNull)((0,f.parseEpochTimestamp)((0,f.expectNumber)(e.CreateTime))):void 0,LastAccessTime:e.LastAccessTime!=null?(0,f.expectNonNull)((0,f.parseEpochTimestamp)((0,f.expectNumber)(e.LastAccessTime))):void 0,Name:(0,f.expectString)(e.Name),Parameters:e.Parameters!=null?jP(e.Parameters,n):void 0,PartitionKeys:e.PartitionKeys!=null?r4(e.PartitionKeys,n):void 0,TableType:(0,f.expectString)(e.TableType)}),wst=(e,n)=>(e||[]).filter(s=>s!=null).map(s=>s===null?null:h4(s,n)),Est=(e,n)=>({Key:(0,f.expectString)(e.Key),Value:(0,f.expectString)(e.Value)}),Cst=(e,n)=>(e||[]).filter(s=>s!=null).map(s=>s===null?null:Est(s,n)),vst=(e,n)=>({}),Pst=(e,n)=>({State:(0,f.expectString)(e.State)}),Ast=(e,n)=>({Message:(0,f.expectString)(e.Message),Reason:(0,f.expectString)(e.Reason)}),xst=(e,n)=>({ErrorCode:(0,f.expectString)(e.ErrorCode),ErrorMessage:(0,f.expectString)(e.ErrorMessage),NamedQueryId:(0,f.expectString)(e.NamedQueryId)}),bst=(e,n)=>(e||[]).filter(s=>s!=null).map(s=>s===null?null:xst(s,n)),Ist=(e,n)=>({ErrorCode:(0,f.expectString)(e.ErrorCode),ErrorMessage:(0,f.expectString)(e.ErrorMessage),StatementName:(0,f.expectString)(e.StatementName)}),kst=(e,n)=>(e||[]).filter(s=>s!=null).map(s=>s===null?null:Ist(s,n)),Rst=(e,n)=>({ErrorCode:(0,f.expectString)(e.ErrorCode),ErrorMessage:(0,f.expectString)(e.ErrorMessage),QueryExecutionId:(0,f.expectString)(e.QueryExecutionId)}),Nst=(e,n)=>(e||[]).filter(s=>s!=null).map(s=>s===null?null:Rst(s,n)),zst=(e,n)=>({}),qst=(e,n)=>({}),Lst=(e,n)=>({}),Fst=(e,n)=>({}),Dst=(e,n)=>({}),Tst=(e,n)=>({}),jst=(e,n)=>({}),Mst=(e,n)=>({Configuration:e.Configuration!=null?Ost(e.Configuration,n):void 0,CreationTime:e.CreationTime!=null?(0,f.expectNonNull)((0,f.parseEpochTimestamp)((0,f.expectNumber)(e.CreationTime))):void 0,Description:(0,f.expectString)(e.Description),Name:(0,f.expectString)(e.Name),State:(0,f.expectString)(e.State)}),Ost=(e,n)=>({AdditionalConfiguration:(0,f.expectString)(e.AdditionalConfiguration),BytesScannedCutoffPerQuery:(0,f.expectLong)(e.BytesScannedCutoffPerQuery),CustomerContentEncryptionConfiguration:e.CustomerContentEncryptionConfiguration!=null?jtt(e.CustomerContentEncryptionConfiguration,n):void 0,EnforceWorkGroupConfiguration:(0,f.expectBoolean)(e.EnforceWorkGroupConfiguration),EngineVersion:e.EngineVersion!=null?Zm(e.EngineVersion,n):void 0,ExecutionRole:(0,f.expectString)(e.ExecutionRole),PublishCloudWatchMetricsEnabled:(0,f.expectBoolean)(e.PublishCloudWatchMetricsEnabled),RequesterPaysEnabled:(0,f.expectBoolean)(e.RequesterPaysEnabled),ResultConfiguration:e.ResultConfiguration!=null?S4(e.ResultConfiguration,n):void 0}),Bst=(e,n)=>(e||[]).filter(s=>s!=null).map(s=>s===null?null:Gst(s,n)),Gst=(e,n)=>({CreationTime:e.CreationTime!=null?(0,f.expectNonNull)((0,f.parseEpochTimestamp)((0,f.expectNumber)(e.CreationTime))):void 0,Description:(0,f.expectString)(e.Description),EngineVersion:e.EngineVersion!=null?Zm(e.EngineVersion,n):void 0,Name:(0,f.expectString)(e.Name),State:(0,f.expectString)(e.State)}),ce=e=>({httpStatusCode:e.statusCode,requestId:e.headers["x-amzn-requestid"]??e.headers["x-amzn-request-id"]??e.headers["x-amz-request-id"],extendedRequestId:e.headers["x-amz-id-2"],cfId:e.headers["x-amz-cf-id"]}),Ust=(e=new Uint8Array,n)=>e instanceof Uint8Array?Promise.resolve(e):n.streamCollector(e)||Promise.resolve(new Uint8Array),Xst=(e,n)=>Ust(e,n).then(t=>n.utf8Encoder(t)),he=async(e,n,t,s,r)=>{let{hostname:i,protocol:a="https",port:o,path:c}=await e.endpoint(),l={protocol:a,hostname:i,port:o,method:"POST",path:c.endsWith("/")?c.slice(0,-1)+t:c+t,headers:n};return s!==void 0&&(l.hostname=s),r!==void 0&&(l.body=r),new R9e.HttpRequest(l)},pe=(e,n)=>Xst(e,n).then(t=>t.length?JSON.parse(t):{}),we=async(e,n)=>{let t=await pe(e,n);return t.message=t.message??t.Message,t},Ee=(e,n)=>{let t=(i,a)=>Object.keys(i).find(o=>o.toLowerCase()===a.toLowerCase()),s=i=>{let a=i;return typeof a=="number"&&(a=a.toString()),a.indexOf(",")>=0&&(a=a.split(",")[0]),a.indexOf(":")>=0&&(a=a.split(":")[0]),a.indexOf("#")>=0&&(a=a.split("#")[1]),a},r=t(e.headers,"x-amzn-errortype");if(r!==void 0)return s(e.headers[r]);if(n.code!==void 0)return s(n.code);if(n.__type!==void 0)return s(n.__type)}});var pz=u(MP=>{"use strict";Object.defineProperty(MP,"__esModule",{value:!0});MP.BatchGetNamedQueryCommand=void 0;var $st=x(),Hst=b(),Vst=E(),w4=de(),E4=ge(),ep=class extends Vst.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,Hst.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,$st.getEndpointPlugin)(t,ep.getEndpointParameterInstructions()));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"AthenaClient",commandName:"BatchGetNamedQueryCommand",inputFilterSensitiveLog:w4.BatchGetNamedQueryInputFilterSensitiveLog,outputFilterSensitiveLog:w4.BatchGetNamedQueryOutputFilterSensitiveLog},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,E4.serializeAws_json1_1BatchGetNamedQueryCommand)(n,t)}deserialize(n,t){return(0,E4.deserializeAws_json1_1BatchGetNamedQueryCommand)(n,t)}};MP.BatchGetNamedQueryCommand=ep});var gz=u(OP=>{"use strict";Object.defineProperty(OP,"__esModule",{value:!0});OP.BatchGetPreparedStatementCommand=void 0;var Wst=x(),Kst=b(),Qst=E(),C4=de(),v4=ge(),tp=class extends Qst.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,Kst.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,Wst.getEndpointPlugin)(t,tp.getEndpointParameterInstructions()));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"AthenaClient",commandName:"BatchGetPreparedStatementCommand",inputFilterSensitiveLog:C4.BatchGetPreparedStatementInputFilterSensitiveLog,outputFilterSensitiveLog:C4.BatchGetPreparedStatementOutputFilterSensitiveLog},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,v4.serializeAws_json1_1BatchGetPreparedStatementCommand)(n,t)}deserialize(n,t){return(0,v4.deserializeAws_json1_1BatchGetPreparedStatementCommand)(n,t)}};OP.BatchGetPreparedStatementCommand=tp});var yz=u(BP=>{"use strict";Object.defineProperty(BP,"__esModule",{value:!0});BP.BatchGetQueryExecutionCommand=void 0;var Jst=x(),Yst=b(),Zst=E(),P4=de(),A4=ge(),np=class extends Zst.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,Yst.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,Jst.getEndpointPlugin)(t,np.getEndpointParameterInstructions()));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"AthenaClient",commandName:"BatchGetQueryExecutionCommand",inputFilterSensitiveLog:P4.BatchGetQueryExecutionInputFilterSensitiveLog,outputFilterSensitiveLog:P4.BatchGetQueryExecutionOutputFilterSensitiveLog},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,A4.serializeAws_json1_1BatchGetQueryExecutionCommand)(n,t)}deserialize(n,t){return(0,A4.deserializeAws_json1_1BatchGetQueryExecutionCommand)(n,t)}};BP.BatchGetQueryExecutionCommand=np});var _z=u(GP=>{"use strict";Object.defineProperty(GP,"__esModule",{value:!0});GP.CreateDataCatalogCommand=void 0;var ert=x(),trt=b(),nrt=E(),x4=de(),b4=ge(),sp=class extends nrt.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,trt.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,ert.getEndpointPlugin)(t,sp.getEndpointParameterInstructions()));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"AthenaClient",commandName:"CreateDataCatalogCommand",inputFilterSensitiveLog:x4.CreateDataCatalogInputFilterSensitiveLog,outputFilterSensitiveLog:x4.CreateDataCatalogOutputFilterSensitiveLog},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,b4.serializeAws_json1_1CreateDataCatalogCommand)(n,t)}deserialize(n,t){return(0,b4.deserializeAws_json1_1CreateDataCatalogCommand)(n,t)}};GP.CreateDataCatalogCommand=sp});var fz=u(UP=>{"use strict";Object.defineProperty(UP,"__esModule",{value:!0});UP.CreateNamedQueryCommand=void 0;var srt=x(),rrt=b(),irt=E(),I4=de(),k4=ge(),rp=class extends irt.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,rrt.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,srt.getEndpointPlugin)(t,rp.getEndpointParameterInstructions()));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"AthenaClient",commandName:"CreateNamedQueryCommand",inputFilterSensitiveLog:I4.CreateNamedQueryInputFilterSensitiveLog,outputFilterSensitiveLog:I4.CreateNamedQueryOutputFilterSensitiveLog},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,k4.serializeAws_json1_1CreateNamedQueryCommand)(n,t)}deserialize(n,t){return(0,k4.deserializeAws_json1_1CreateNamedQueryCommand)(n,t)}};UP.CreateNamedQueryCommand=rp});var Sz=u(XP=>{"use strict";Object.defineProperty(XP,"__esModule",{value:!0});XP.CreateNotebookCommand=void 0;var ort=x(),art=b(),crt=E(),R4=de(),N4=ge(),ip=class extends crt.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,art.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,ort.getEndpointPlugin)(t,ip.getEndpointParameterInstructions()));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"AthenaClient",commandName:"CreateNotebookCommand",inputFilterSensitiveLog:R4.CreateNotebookInputFilterSensitiveLog,outputFilterSensitiveLog:R4.CreateNotebookOutputFilterSensitiveLog},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,N4.serializeAws_json1_1CreateNotebookCommand)(n,t)}deserialize(n,t){return(0,N4.deserializeAws_json1_1CreateNotebookCommand)(n,t)}};XP.CreateNotebookCommand=ip});var hz=u($P=>{"use strict";Object.defineProperty($P,"__esModule",{value:!0});$P.CreatePreparedStatementCommand=void 0;var lrt=x(),drt=b(),urt=E(),z4=de(),q4=ge(),op=class extends urt.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,drt.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,lrt.getEndpointPlugin)(t,op.getEndpointParameterInstructions()));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"AthenaClient",commandName:"CreatePreparedStatementCommand",inputFilterSensitiveLog:z4.CreatePreparedStatementInputFilterSensitiveLog,outputFilterSensitiveLog:z4.CreatePreparedStatementOutputFilterSensitiveLog},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,q4.serializeAws_json1_1CreatePreparedStatementCommand)(n,t)}deserialize(n,t){return(0,q4.deserializeAws_json1_1CreatePreparedStatementCommand)(n,t)}};$P.CreatePreparedStatementCommand=op});var wz=u(HP=>{"use strict";Object.defineProperty(HP,"__esModule",{value:!0});HP.CreatePresignedNotebookUrlCommand=void 0;var mrt=x(),prt=b(),grt=E(),L4=de(),F4=ge(),ap=class extends grt.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,prt.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,mrt.getEndpointPlugin)(t,ap.getEndpointParameterInstructions()));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"AthenaClient",commandName:"CreatePresignedNotebookUrlCommand",inputFilterSensitiveLog:L4.CreatePresignedNotebookUrlRequestFilterSensitiveLog,outputFilterSensitiveLog:L4.CreatePresignedNotebookUrlResponseFilterSensitiveLog},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,F4.serializeAws_json1_1CreatePresignedNotebookUrlCommand)(n,t)}deserialize(n,t){return(0,F4.deserializeAws_json1_1CreatePresignedNotebookUrlCommand)(n,t)}};HP.CreatePresignedNotebookUrlCommand=ap});var Ez=u(VP=>{"use strict";Object.defineProperty(VP,"__esModule",{value:!0});VP.CreateWorkGroupCommand=void 0;var yrt=x(),_rt=b(),frt=E(),D4=de(),T4=ge(),cp=class extends frt.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,_rt.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,yrt.getEndpointPlugin)(t,cp.getEndpointParameterInstructions()));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"AthenaClient",commandName:"CreateWorkGroupCommand",inputFilterSensitiveLog:D4.CreateWorkGroupInputFilterSensitiveLog,outputFilterSensitiveLog:D4.CreateWorkGroupOutputFilterSensitiveLog},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,T4.serializeAws_json1_1CreateWorkGroupCommand)(n,t)}deserialize(n,t){return(0,T4.deserializeAws_json1_1CreateWorkGroupCommand)(n,t)}};VP.CreateWorkGroupCommand=cp});var Cz=u(WP=>{"use strict";Object.defineProperty(WP,"__esModule",{value:!0});WP.DeleteDataCatalogCommand=void 0;var Srt=x(),hrt=b(),wrt=E(),j4=de(),M4=ge(),lp=class extends wrt.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,hrt.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,Srt.getEndpointPlugin)(t,lp.getEndpointParameterInstructions()));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"AthenaClient",commandName:"DeleteDataCatalogCommand",inputFilterSensitiveLog:j4.DeleteDataCatalogInputFilterSensitiveLog,outputFilterSensitiveLog:j4.DeleteDataCatalogOutputFilterSensitiveLog},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,M4.serializeAws_json1_1DeleteDataCatalogCommand)(n,t)}deserialize(n,t){return(0,M4.deserializeAws_json1_1DeleteDataCatalogCommand)(n,t)}};WP.DeleteDataCatalogCommand=lp});var vz=u(KP=>{"use strict";Object.defineProperty(KP,"__esModule",{value:!0});KP.DeleteNamedQueryCommand=void 0;var Ert=x(),Crt=b(),vrt=E(),O4=de(),B4=ge(),dp=class extends vrt.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,Crt.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,Ert.getEndpointPlugin)(t,dp.getEndpointParameterInstructions()));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"AthenaClient",commandName:"DeleteNamedQueryCommand",inputFilterSensitiveLog:O4.DeleteNamedQueryInputFilterSensitiveLog,outputFilterSensitiveLog:O4.DeleteNamedQueryOutputFilterSensitiveLog},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,B4.serializeAws_json1_1DeleteNamedQueryCommand)(n,t)}deserialize(n,t){return(0,B4.deserializeAws_json1_1DeleteNamedQueryCommand)(n,t)}};KP.DeleteNamedQueryCommand=dp});var Pz=u(QP=>{"use strict";Object.defineProperty(QP,"__esModule",{value:!0});QP.DeleteNotebookCommand=void 0;var Prt=x(),Art=b(),xrt=E(),G4=de(),U4=ge(),up=class extends xrt.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,Art.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,Prt.getEndpointPlugin)(t,up.getEndpointParameterInstructions()));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"AthenaClient",commandName:"DeleteNotebookCommand",inputFilterSensitiveLog:G4.DeleteNotebookInputFilterSensitiveLog,outputFilterSensitiveLog:G4.DeleteNotebookOutputFilterSensitiveLog},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,U4.serializeAws_json1_1DeleteNotebookCommand)(n,t)}deserialize(n,t){return(0,U4.deserializeAws_json1_1DeleteNotebookCommand)(n,t)}};QP.DeleteNotebookCommand=up});var Az=u(JP=>{"use strict";Object.defineProperty(JP,"__esModule",{value:!0});JP.DeletePreparedStatementCommand=void 0;var brt=x(),Irt=b(),krt=E(),X4=de(),$4=ge(),mp=class extends krt.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,Irt.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,brt.getEndpointPlugin)(t,mp.getEndpointParameterInstructions()));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"AthenaClient",commandName:"DeletePreparedStatementCommand",inputFilterSensitiveLog:X4.DeletePreparedStatementInputFilterSensitiveLog,outputFilterSensitiveLog:X4.DeletePreparedStatementOutputFilterSensitiveLog},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,$4.serializeAws_json1_1DeletePreparedStatementCommand)(n,t)}deserialize(n,t){return(0,$4.deserializeAws_json1_1DeletePreparedStatementCommand)(n,t)}};JP.DeletePreparedStatementCommand=mp});var xz=u(YP=>{"use strict";Object.defineProperty(YP,"__esModule",{value:!0});YP.DeleteWorkGroupCommand=void 0;var Rrt=x(),Nrt=b(),zrt=E(),H4=de(),V4=ge(),pp=class extends zrt.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,Nrt.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,Rrt.getEndpointPlugin)(t,pp.getEndpointParameterInstructions()));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"AthenaClient",commandName:"DeleteWorkGroupCommand",inputFilterSensitiveLog:H4.DeleteWorkGroupInputFilterSensitiveLog,outputFilterSensitiveLog:H4.DeleteWorkGroupOutputFilterSensitiveLog},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,V4.serializeAws_json1_1DeleteWorkGroupCommand)(n,t)}deserialize(n,t){return(0,V4.deserializeAws_json1_1DeleteWorkGroupCommand)(n,t)}};YP.DeleteWorkGroupCommand=pp});var bz=u(ZP=>{"use strict";Object.defineProperty(ZP,"__esModule",{value:!0});ZP.ExportNotebookCommand=void 0;var qrt=x(),Lrt=b(),Frt=E(),W4=de(),K4=ge(),gp=class extends Frt.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,Lrt.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,qrt.getEndpointPlugin)(t,gp.getEndpointParameterInstructions()));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"AthenaClient",commandName:"ExportNotebookCommand",inputFilterSensitiveLog:W4.ExportNotebookInputFilterSensitiveLog,outputFilterSensitiveLog:W4.ExportNotebookOutputFilterSensitiveLog},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,K4.serializeAws_json1_1ExportNotebookCommand)(n,t)}deserialize(n,t){return(0,K4.deserializeAws_json1_1ExportNotebookCommand)(n,t)}};ZP.ExportNotebookCommand=gp});var Iz=u(eA=>{"use strict";Object.defineProperty(eA,"__esModule",{value:!0});eA.GetCalculationExecutionCodeCommand=void 0;var Drt=x(),Trt=b(),jrt=E(),Q4=de(),J4=ge(),yp=class extends jrt.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,Trt.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,Drt.getEndpointPlugin)(t,yp.getEndpointParameterInstructions()));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"AthenaClient",commandName:"GetCalculationExecutionCodeCommand",inputFilterSensitiveLog:Q4.GetCalculationExecutionCodeRequestFilterSensitiveLog,outputFilterSensitiveLog:Q4.GetCalculationExecutionCodeResponseFilterSensitiveLog},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,J4.serializeAws_json1_1GetCalculationExecutionCodeCommand)(n,t)}deserialize(n,t){return(0,J4.deserializeAws_json1_1GetCalculationExecutionCodeCommand)(n,t)}};eA.GetCalculationExecutionCodeCommand=yp});var kz=u(tA=>{"use strict";Object.defineProperty(tA,"__esModule",{value:!0});tA.GetCalculationExecutionCommand=void 0;var Mrt=x(),Ort=b(),Brt=E(),Y4=de(),Z4=ge(),_p=class extends Brt.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,Ort.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,Mrt.getEndpointPlugin)(t,_p.getEndpointParameterInstructions()));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"AthenaClient",commandName:"GetCalculationExecutionCommand",inputFilterSensitiveLog:Y4.GetCalculationExecutionRequestFilterSensitiveLog,outputFilterSensitiveLog:Y4.GetCalculationExecutionResponseFilterSensitiveLog},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,Z4.serializeAws_json1_1GetCalculationExecutionCommand)(n,t)}deserialize(n,t){return(0,Z4.deserializeAws_json1_1GetCalculationExecutionCommand)(n,t)}};tA.GetCalculationExecutionCommand=_p});var Rz=u(nA=>{"use strict";Object.defineProperty(nA,"__esModule",{value:!0});nA.GetCalculationExecutionStatusCommand=void 0;var Grt=x(),Urt=b(),Xrt=E(),e5=de(),t5=ge(),fp=class extends Xrt.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,Urt.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,Grt.getEndpointPlugin)(t,fp.getEndpointParameterInstructions()));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"AthenaClient",commandName:"GetCalculationExecutionStatusCommand",inputFilterSensitiveLog:e5.GetCalculationExecutionStatusRequestFilterSensitiveLog,outputFilterSensitiveLog:e5.GetCalculationExecutionStatusResponseFilterSensitiveLog},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,t5.serializeAws_json1_1GetCalculationExecutionStatusCommand)(n,t)}deserialize(n,t){return(0,t5.deserializeAws_json1_1GetCalculationExecutionStatusCommand)(n,t)}};nA.GetCalculationExecutionStatusCommand=fp});var Nz=u(sA=>{"use strict";Object.defineProperty(sA,"__esModule",{value:!0});sA.GetDatabaseCommand=void 0;var $rt=x(),Hrt=b(),Vrt=E(),n5=de(),s5=ge(),Sp=class extends Vrt.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,Hrt.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,$rt.getEndpointPlugin)(t,Sp.getEndpointParameterInstructions()));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"AthenaClient",commandName:"GetDatabaseCommand",inputFilterSensitiveLog:n5.GetDatabaseInputFilterSensitiveLog,outputFilterSensitiveLog:n5.GetDatabaseOutputFilterSensitiveLog},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,s5.serializeAws_json1_1GetDatabaseCommand)(n,t)}deserialize(n,t){return(0,s5.deserializeAws_json1_1GetDatabaseCommand)(n,t)}};sA.GetDatabaseCommand=Sp});var zz=u(rA=>{"use strict";Object.defineProperty(rA,"__esModule",{value:!0});rA.GetDataCatalogCommand=void 0;var Wrt=x(),Krt=b(),Qrt=E(),r5=de(),i5=ge(),hp=class extends Qrt.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,Krt.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,Wrt.getEndpointPlugin)(t,hp.getEndpointParameterInstructions()));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"AthenaClient",commandName:"GetDataCatalogCommand",inputFilterSensitiveLog:r5.GetDataCatalogInputFilterSensitiveLog,outputFilterSensitiveLog:r5.GetDataCatalogOutputFilterSensitiveLog},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,i5.serializeAws_json1_1GetDataCatalogCommand)(n,t)}deserialize(n,t){return(0,i5.deserializeAws_json1_1GetDataCatalogCommand)(n,t)}};rA.GetDataCatalogCommand=hp});var qz=u(iA=>{"use strict";Object.defineProperty(iA,"__esModule",{value:!0});iA.GetNamedQueryCommand=void 0;var Jrt=x(),Yrt=b(),Zrt=E(),o5=de(),a5=ge(),wp=class extends Zrt.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,Yrt.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,Jrt.getEndpointPlugin)(t,wp.getEndpointParameterInstructions()));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"AthenaClient",commandName:"GetNamedQueryCommand",inputFilterSensitiveLog:o5.GetNamedQueryInputFilterSensitiveLog,outputFilterSensitiveLog:o5.GetNamedQueryOutputFilterSensitiveLog},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,a5.serializeAws_json1_1GetNamedQueryCommand)(n,t)}deserialize(n,t){return(0,a5.deserializeAws_json1_1GetNamedQueryCommand)(n,t)}};iA.GetNamedQueryCommand=wp});var Lz=u(oA=>{"use strict";Object.defineProperty(oA,"__esModule",{value:!0});oA.GetNotebookMetadataCommand=void 0;var eit=x(),tit=b(),nit=E(),c5=de(),l5=ge(),Ep=class extends nit.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,tit.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,eit.getEndpointPlugin)(t,Ep.getEndpointParameterInstructions()));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"AthenaClient",commandName:"GetNotebookMetadataCommand",inputFilterSensitiveLog:c5.GetNotebookMetadataInputFilterSensitiveLog,outputFilterSensitiveLog:c5.GetNotebookMetadataOutputFilterSensitiveLog},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,l5.serializeAws_json1_1GetNotebookMetadataCommand)(n,t)}deserialize(n,t){return(0,l5.deserializeAws_json1_1GetNotebookMetadataCommand)(n,t)}};oA.GetNotebookMetadataCommand=Ep});var Fz=u(aA=>{"use strict";Object.defineProperty(aA,"__esModule",{value:!0});aA.GetPreparedStatementCommand=void 0;var sit=x(),rit=b(),iit=E(),d5=de(),u5=ge(),Cp=class extends iit.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,rit.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,sit.getEndpointPlugin)(t,Cp.getEndpointParameterInstructions()));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"AthenaClient",commandName:"GetPreparedStatementCommand",inputFilterSensitiveLog:d5.GetPreparedStatementInputFilterSensitiveLog,outputFilterSensitiveLog:d5.GetPreparedStatementOutputFilterSensitiveLog},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,u5.serializeAws_json1_1GetPreparedStatementCommand)(n,t)}deserialize(n,t){return(0,u5.deserializeAws_json1_1GetPreparedStatementCommand)(n,t)}};aA.GetPreparedStatementCommand=Cp});var Dz=u(cA=>{"use strict";Object.defineProperty(cA,"__esModule",{value:!0});cA.GetQueryExecutionCommand=void 0;var oit=x(),ait=b(),cit=E(),m5=de(),p5=ge(),vp=class extends cit.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,ait.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,oit.getEndpointPlugin)(t,vp.getEndpointParameterInstructions()));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"AthenaClient",commandName:"GetQueryExecutionCommand",inputFilterSensitiveLog:m5.GetQueryExecutionInputFilterSensitiveLog,outputFilterSensitiveLog:m5.GetQueryExecutionOutputFilterSensitiveLog},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,p5.serializeAws_json1_1GetQueryExecutionCommand)(n,t)}deserialize(n,t){return(0,p5.deserializeAws_json1_1GetQueryExecutionCommand)(n,t)}};cA.GetQueryExecutionCommand=vp});var dA=u(lA=>{"use strict";Object.defineProperty(lA,"__esModule",{value:!0});lA.GetQueryResultsCommand=void 0;var lit=x(),dit=b(),uit=E(),g5=de(),y5=ge(),Pp=class extends uit.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,dit.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,lit.getEndpointPlugin)(t,Pp.getEndpointParameterInstructions()));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"AthenaClient",commandName:"GetQueryResultsCommand",inputFilterSensitiveLog:g5.GetQueryResultsInputFilterSensitiveLog,outputFilterSensitiveLog:g5.GetQueryResultsOutputFilterSensitiveLog},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,y5.serializeAws_json1_1GetQueryResultsCommand)(n,t)}deserialize(n,t){return(0,y5.deserializeAws_json1_1GetQueryResultsCommand)(n,t)}};lA.GetQueryResultsCommand=Pp});var Tz=u(uA=>{"use strict";Object.defineProperty(uA,"__esModule",{value:!0});uA.GetQueryRuntimeStatisticsCommand=void 0;var mit=x(),pit=b(),git=E(),_5=de(),f5=ge(),Ap=class extends git.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,pit.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,mit.getEndpointPlugin)(t,Ap.getEndpointParameterInstructions()));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"AthenaClient",commandName:"GetQueryRuntimeStatisticsCommand",inputFilterSensitiveLog:_5.GetQueryRuntimeStatisticsInputFilterSensitiveLog,outputFilterSensitiveLog:_5.GetQueryRuntimeStatisticsOutputFilterSensitiveLog},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,f5.serializeAws_json1_1GetQueryRuntimeStatisticsCommand)(n,t)}deserialize(n,t){return(0,f5.deserializeAws_json1_1GetQueryRuntimeStatisticsCommand)(n,t)}};uA.GetQueryRuntimeStatisticsCommand=Ap});var jz=u(mA=>{"use strict";Object.defineProperty(mA,"__esModule",{value:!0});mA.GetSessionCommand=void 0;var yit=x(),_it=b(),fit=E(),S5=de(),h5=ge(),xp=class extends fit.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,_it.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,yit.getEndpointPlugin)(t,xp.getEndpointParameterInstructions()));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"AthenaClient",commandName:"GetSessionCommand",inputFilterSensitiveLog:S5.GetSessionRequestFilterSensitiveLog,outputFilterSensitiveLog:S5.GetSessionResponseFilterSensitiveLog},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,h5.serializeAws_json1_1GetSessionCommand)(n,t)}deserialize(n,t){return(0,h5.deserializeAws_json1_1GetSessionCommand)(n,t)}};mA.GetSessionCommand=xp});var Mz=u(pA=>{"use strict";Object.defineProperty(pA,"__esModule",{value:!0});pA.GetSessionStatusCommand=void 0;var Sit=x(),hit=b(),wit=E(),w5=de(),E5=ge(),bp=class extends wit.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,hit.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,Sit.getEndpointPlugin)(t,bp.getEndpointParameterInstructions()));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"AthenaClient",commandName:"GetSessionStatusCommand",inputFilterSensitiveLog:w5.GetSessionStatusRequestFilterSensitiveLog,outputFilterSensitiveLog:w5.GetSessionStatusResponseFilterSensitiveLog},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,E5.serializeAws_json1_1GetSessionStatusCommand)(n,t)}deserialize(n,t){return(0,E5.deserializeAws_json1_1GetSessionStatusCommand)(n,t)}};pA.GetSessionStatusCommand=bp});var Oz=u(gA=>{"use strict";Object.defineProperty(gA,"__esModule",{value:!0});gA.GetTableMetadataCommand=void 0;var Eit=x(),Cit=b(),vit=E(),C5=de(),v5=ge(),Ip=class extends vit.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,Cit.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,Eit.getEndpointPlugin)(t,Ip.getEndpointParameterInstructions()));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"AthenaClient",commandName:"GetTableMetadataCommand",inputFilterSensitiveLog:C5.GetTableMetadataInputFilterSensitiveLog,outputFilterSensitiveLog:C5.GetTableMetadataOutputFilterSensitiveLog},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,v5.serializeAws_json1_1GetTableMetadataCommand)(n,t)}deserialize(n,t){return(0,v5.deserializeAws_json1_1GetTableMetadataCommand)(n,t)}};gA.GetTableMetadataCommand=Ip});var Bz=u(yA=>{"use strict";Object.defineProperty(yA,"__esModule",{value:!0});yA.GetWorkGroupCommand=void 0;var Pit=x(),Ait=b(),xit=E(),P5=de(),A5=ge(),kp=class extends xit.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,Ait.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,Pit.getEndpointPlugin)(t,kp.getEndpointParameterInstructions()));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"AthenaClient",commandName:"GetWorkGroupCommand",inputFilterSensitiveLog:P5.GetWorkGroupInputFilterSensitiveLog,outputFilterSensitiveLog:P5.GetWorkGroupOutputFilterSensitiveLog},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,A5.serializeAws_json1_1GetWorkGroupCommand)(n,t)}deserialize(n,t){return(0,A5.deserializeAws_json1_1GetWorkGroupCommand)(n,t)}};yA.GetWorkGroupCommand=kp});var Gz=u(_A=>{"use strict";Object.defineProperty(_A,"__esModule",{value:!0});_A.ImportNotebookCommand=void 0;var bit=x(),Iit=b(),kit=E(),x5=de(),b5=ge(),Rp=class extends kit.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,Iit.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,bit.getEndpointPlugin)(t,Rp.getEndpointParameterInstructions()));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"AthenaClient",commandName:"ImportNotebookCommand",inputFilterSensitiveLog:x5.ImportNotebookInputFilterSensitiveLog,outputFilterSensitiveLog:x5.ImportNotebookOutputFilterSensitiveLog},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,b5.serializeAws_json1_1ImportNotebookCommand)(n,t)}deserialize(n,t){return(0,b5.deserializeAws_json1_1ImportNotebookCommand)(n,t)}};_A.ImportNotebookCommand=Rp});var SA=u(fA=>{"use strict";Object.defineProperty(fA,"__esModule",{value:!0});fA.ListApplicationDPUSizesCommand=void 0;var Rit=x(),Nit=b(),zit=E(),I5=de(),k5=ge(),Np=class extends zit.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,Nit.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,Rit.getEndpointPlugin)(t,Np.getEndpointParameterInstructions()));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"AthenaClient",commandName:"ListApplicationDPUSizesCommand",inputFilterSensitiveLog:I5.ListApplicationDPUSizesInputFilterSensitiveLog,outputFilterSensitiveLog:I5.ListApplicationDPUSizesOutputFilterSensitiveLog},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,k5.serializeAws_json1_1ListApplicationDPUSizesCommand)(n,t)}deserialize(n,t){return(0,k5.deserializeAws_json1_1ListApplicationDPUSizesCommand)(n,t)}};fA.ListApplicationDPUSizesCommand=Np});var wA=u(hA=>{"use strict";Object.defineProperty(hA,"__esModule",{value:!0});hA.ListCalculationExecutionsCommand=void 0;var qit=x(),Lit=b(),Fit=E(),R5=de(),N5=ge(),zp=class extends Fit.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,Lit.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,qit.getEndpointPlugin)(t,zp.getEndpointParameterInstructions()));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"AthenaClient",commandName:"ListCalculationExecutionsCommand",inputFilterSensitiveLog:R5.ListCalculationExecutionsRequestFilterSensitiveLog,outputFilterSensitiveLog:R5.ListCalculationExecutionsResponseFilterSensitiveLog},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,N5.serializeAws_json1_1ListCalculationExecutionsCommand)(n,t)}deserialize(n,t){return(0,N5.deserializeAws_json1_1ListCalculationExecutionsCommand)(n,t)}};hA.ListCalculationExecutionsCommand=zp});var CA=u(EA=>{"use strict";Object.defineProperty(EA,"__esModule",{value:!0});EA.ListDatabasesCommand=void 0;var Dit=x(),Tit=b(),jit=E(),z5=de(),q5=ge(),qp=class extends jit.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,Tit.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,Dit.getEndpointPlugin)(t,qp.getEndpointParameterInstructions()));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"AthenaClient",commandName:"ListDatabasesCommand",inputFilterSensitiveLog:z5.ListDatabasesInputFilterSensitiveLog,outputFilterSensitiveLog:z5.ListDatabasesOutputFilterSensitiveLog},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,q5.serializeAws_json1_1ListDatabasesCommand)(n,t)}deserialize(n,t){return(0,q5.deserializeAws_json1_1ListDatabasesCommand)(n,t)}};EA.ListDatabasesCommand=qp});var PA=u(vA=>{"use strict";Object.defineProperty(vA,"__esModule",{value:!0});vA.ListDataCatalogsCommand=void 0;var Mit=x(),Oit=b(),Bit=E(),L5=de(),F5=ge(),Lp=class extends Bit.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,Oit.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,Mit.getEndpointPlugin)(t,Lp.getEndpointParameterInstructions()));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"AthenaClient",commandName:"ListDataCatalogsCommand",inputFilterSensitiveLog:L5.ListDataCatalogsInputFilterSensitiveLog,outputFilterSensitiveLog:L5.ListDataCatalogsOutputFilterSensitiveLog},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,F5.serializeAws_json1_1ListDataCatalogsCommand)(n,t)}deserialize(n,t){return(0,F5.deserializeAws_json1_1ListDataCatalogsCommand)(n,t)}};vA.ListDataCatalogsCommand=Lp});var xA=u(AA=>{"use strict";Object.defineProperty(AA,"__esModule",{value:!0});AA.ListEngineVersionsCommand=void 0;var Git=x(),Uit=b(),Xit=E(),D5=de(),T5=ge(),Fp=class extends Xit.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,Uit.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,Git.getEndpointPlugin)(t,Fp.getEndpointParameterInstructions()));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"AthenaClient",commandName:"ListEngineVersionsCommand",inputFilterSensitiveLog:D5.ListEngineVersionsInputFilterSensitiveLog,outputFilterSensitiveLog:D5.ListEngineVersionsOutputFilterSensitiveLog},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,T5.serializeAws_json1_1ListEngineVersionsCommand)(n,t)}deserialize(n,t){return(0,T5.deserializeAws_json1_1ListEngineVersionsCommand)(n,t)}};AA.ListEngineVersionsCommand=Fp});var IA=u(bA=>{"use strict";Object.defineProperty(bA,"__esModule",{value:!0});bA.ListExecutorsCommand=void 0;var $it=x(),Hit=b(),Vit=E(),j5=de(),M5=ge(),Dp=class extends Vit.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,Hit.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,$it.getEndpointPlugin)(t,Dp.getEndpointParameterInstructions()));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"AthenaClient",commandName:"ListExecutorsCommand",inputFilterSensitiveLog:j5.ListExecutorsRequestFilterSensitiveLog,outputFilterSensitiveLog:j5.ListExecutorsResponseFilterSensitiveLog},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,M5.serializeAws_json1_1ListExecutorsCommand)(n,t)}deserialize(n,t){return(0,M5.deserializeAws_json1_1ListExecutorsCommand)(n,t)}};bA.ListExecutorsCommand=Dp});var RA=u(kA=>{"use strict";Object.defineProperty(kA,"__esModule",{value:!0});kA.ListNamedQueriesCommand=void 0;var Wit=x(),Kit=b(),Qit=E(),O5=de(),B5=ge(),Tp=class extends Qit.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,Kit.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,Wit.getEndpointPlugin)(t,Tp.getEndpointParameterInstructions()));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"AthenaClient",commandName:"ListNamedQueriesCommand",inputFilterSensitiveLog:O5.ListNamedQueriesInputFilterSensitiveLog,outputFilterSensitiveLog:O5.ListNamedQueriesOutputFilterSensitiveLog},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,B5.serializeAws_json1_1ListNamedQueriesCommand)(n,t)}deserialize(n,t){return(0,B5.deserializeAws_json1_1ListNamedQueriesCommand)(n,t)}};kA.ListNamedQueriesCommand=Tp});var Uz=u(NA=>{"use strict";Object.defineProperty(NA,"__esModule",{value:!0});NA.ListNotebookMetadataCommand=void 0;var Jit=x(),Yit=b(),Zit=E(),G5=de(),U5=ge(),jp=class extends Zit.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,Yit.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,Jit.getEndpointPlugin)(t,jp.getEndpointParameterInstructions()));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"AthenaClient",commandName:"ListNotebookMetadataCommand",inputFilterSensitiveLog:G5.ListNotebookMetadataInputFilterSensitiveLog,outputFilterSensitiveLog:G5.ListNotebookMetadataOutputFilterSensitiveLog},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,U5.serializeAws_json1_1ListNotebookMetadataCommand)(n,t)}deserialize(n,t){return(0,U5.deserializeAws_json1_1ListNotebookMetadataCommand)(n,t)}};NA.ListNotebookMetadataCommand=jp});var Xz=u(zA=>{"use strict";Object.defineProperty(zA,"__esModule",{value:!0});zA.ListNotebookSessionsCommand=void 0;var eot=x(),tot=b(),not=E(),X5=de(),$5=ge(),Mp=class extends not.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,tot.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,eot.getEndpointPlugin)(t,Mp.getEndpointParameterInstructions()));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"AthenaClient",commandName:"ListNotebookSessionsCommand",inputFilterSensitiveLog:X5.ListNotebookSessionsRequestFilterSensitiveLog,outputFilterSensitiveLog:X5.ListNotebookSessionsResponseFilterSensitiveLog},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,$5.serializeAws_json1_1ListNotebookSessionsCommand)(n,t)}deserialize(n,t){return(0,$5.deserializeAws_json1_1ListNotebookSessionsCommand)(n,t)}};zA.ListNotebookSessionsCommand=Mp});var LA=u(qA=>{"use strict";Object.defineProperty(qA,"__esModule",{value:!0});qA.ListPreparedStatementsCommand=void 0;var sot=x(),rot=b(),iot=E(),H5=de(),V5=ge(),Op=class extends iot.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,rot.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,sot.getEndpointPlugin)(t,Op.getEndpointParameterInstructions()));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"AthenaClient",commandName:"ListPreparedStatementsCommand",inputFilterSensitiveLog:H5.ListPreparedStatementsInputFilterSensitiveLog,outputFilterSensitiveLog:H5.ListPreparedStatementsOutputFilterSensitiveLog},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,V5.serializeAws_json1_1ListPreparedStatementsCommand)(n,t)}deserialize(n,t){return(0,V5.deserializeAws_json1_1ListPreparedStatementsCommand)(n,t)}};qA.ListPreparedStatementsCommand=Op});var DA=u(FA=>{"use strict";Object.defineProperty(FA,"__esModule",{value:!0});FA.ListQueryExecutionsCommand=void 0;var oot=x(),aot=b(),cot=E(),W5=de(),K5=ge(),Bp=class extends cot.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,aot.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,oot.getEndpointPlugin)(t,Bp.getEndpointParameterInstructions()));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"AthenaClient",commandName:"ListQueryExecutionsCommand",inputFilterSensitiveLog:W5.ListQueryExecutionsInputFilterSensitiveLog,outputFilterSensitiveLog:W5.ListQueryExecutionsOutputFilterSensitiveLog},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,K5.serializeAws_json1_1ListQueryExecutionsCommand)(n,t)}deserialize(n,t){return(0,K5.deserializeAws_json1_1ListQueryExecutionsCommand)(n,t)}};FA.ListQueryExecutionsCommand=Bp});var jA=u(TA=>{"use strict";Object.defineProperty(TA,"__esModule",{value:!0});TA.ListSessionsCommand=void 0;var lot=x(),dot=b(),uot=E(),Q5=de(),J5=ge(),Gp=class extends uot.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,dot.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,lot.getEndpointPlugin)(t,Gp.getEndpointParameterInstructions()));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"AthenaClient",commandName:"ListSessionsCommand",inputFilterSensitiveLog:Q5.ListSessionsRequestFilterSensitiveLog,outputFilterSensitiveLog:Q5.ListSessionsResponseFilterSensitiveLog},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,J5.serializeAws_json1_1ListSessionsCommand)(n,t)}deserialize(n,t){return(0,J5.deserializeAws_json1_1ListSessionsCommand)(n,t)}};TA.ListSessionsCommand=Gp});var OA=u(MA=>{"use strict";Object.defineProperty(MA,"__esModule",{value:!0});MA.ListTableMetadataCommand=void 0;var mot=x(),pot=b(),got=E(),Y5=de(),Z5=ge(),Up=class extends got.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,pot.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,mot.getEndpointPlugin)(t,Up.getEndpointParameterInstructions()));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"AthenaClient",commandName:"ListTableMetadataCommand",inputFilterSensitiveLog:Y5.ListTableMetadataInputFilterSensitiveLog,outputFilterSensitiveLog:Y5.ListTableMetadataOutputFilterSensitiveLog},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,Z5.serializeAws_json1_1ListTableMetadataCommand)(n,t)}deserialize(n,t){return(0,Z5.deserializeAws_json1_1ListTableMetadataCommand)(n,t)}};MA.ListTableMetadataCommand=Up});var GA=u(BA=>{"use strict";Object.defineProperty(BA,"__esModule",{value:!0});BA.ListTagsForResourceCommand=void 0;var yot=x(),_ot=b(),fot=E(),e7=de(),t7=ge(),Xp=class extends fot.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,_ot.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,yot.getEndpointPlugin)(t,Xp.getEndpointParameterInstructions()));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"AthenaClient",commandName:"ListTagsForResourceCommand",inputFilterSensitiveLog:e7.ListTagsForResourceInputFilterSensitiveLog,outputFilterSensitiveLog:e7.ListTagsForResourceOutputFilterSensitiveLog},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,t7.serializeAws_json1_1ListTagsForResourceCommand)(n,t)}deserialize(n,t){return(0,t7.deserializeAws_json1_1ListTagsForResourceCommand)(n,t)}};BA.ListTagsForResourceCommand=Xp});var XA=u(UA=>{"use strict";Object.defineProperty(UA,"__esModule",{value:!0});UA.ListWorkGroupsCommand=void 0;var Sot=x(),hot=b(),wot=E(),n7=de(),s7=ge(),$p=class extends wot.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,hot.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,Sot.getEndpointPlugin)(t,$p.getEndpointParameterInstructions()));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"AthenaClient",commandName:"ListWorkGroupsCommand",inputFilterSensitiveLog:n7.ListWorkGroupsInputFilterSensitiveLog,outputFilterSensitiveLog:n7.ListWorkGroupsOutputFilterSensitiveLog},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,s7.serializeAws_json1_1ListWorkGroupsCommand)(n,t)}deserialize(n,t){return(0,s7.deserializeAws_json1_1ListWorkGroupsCommand)(n,t)}};UA.ListWorkGroupsCommand=$p});var $z=u($A=>{"use strict";Object.defineProperty($A,"__esModule",{value:!0});$A.StartCalculationExecutionCommand=void 0;var Eot=x(),Cot=b(),vot=E(),r7=de(),i7=ge(),Hp=class extends vot.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,Cot.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,Eot.getEndpointPlugin)(t,Hp.getEndpointParameterInstructions()));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"AthenaClient",commandName:"StartCalculationExecutionCommand",inputFilterSensitiveLog:r7.StartCalculationExecutionRequestFilterSensitiveLog,outputFilterSensitiveLog:r7.StartCalculationExecutionResponseFilterSensitiveLog},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,i7.serializeAws_json1_1StartCalculationExecutionCommand)(n,t)}deserialize(n,t){return(0,i7.deserializeAws_json1_1StartCalculationExecutionCommand)(n,t)}};$A.StartCalculationExecutionCommand=Hp});var Hz=u(HA=>{"use strict";Object.defineProperty(HA,"__esModule",{value:!0});HA.StartQueryExecutionCommand=void 0;var Pot=x(),Aot=b(),xot=E(),o7=de(),a7=ge(),Vp=class extends xot.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,Aot.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,Pot.getEndpointPlugin)(t,Vp.getEndpointParameterInstructions()));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"AthenaClient",commandName:"StartQueryExecutionCommand",inputFilterSensitiveLog:o7.StartQueryExecutionInputFilterSensitiveLog,outputFilterSensitiveLog:o7.StartQueryExecutionOutputFilterSensitiveLog},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,a7.serializeAws_json1_1StartQueryExecutionCommand)(n,t)}deserialize(n,t){return(0,a7.deserializeAws_json1_1StartQueryExecutionCommand)(n,t)}};HA.StartQueryExecutionCommand=Vp});var Vz=u(VA=>{"use strict";Object.defineProperty(VA,"__esModule",{value:!0});VA.StartSessionCommand=void 0;var bot=x(),Iot=b(),kot=E(),c7=de(),l7=ge(),Wp=class extends kot.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,Iot.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,bot.getEndpointPlugin)(t,Wp.getEndpointParameterInstructions()));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"AthenaClient",commandName:"StartSessionCommand",inputFilterSensitiveLog:c7.StartSessionRequestFilterSensitiveLog,outputFilterSensitiveLog:c7.StartSessionResponseFilterSensitiveLog},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,l7.serializeAws_json1_1StartSessionCommand)(n,t)}deserialize(n,t){return(0,l7.deserializeAws_json1_1StartSessionCommand)(n,t)}};VA.StartSessionCommand=Wp});var Wz=u(WA=>{"use strict";Object.defineProperty(WA,"__esModule",{value:!0});WA.StopCalculationExecutionCommand=void 0;var Rot=x(),Not=b(),zot=E(),d7=de(),u7=ge(),Kp=class extends zot.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,Not.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,Rot.getEndpointPlugin)(t,Kp.getEndpointParameterInstructions()));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"AthenaClient",commandName:"StopCalculationExecutionCommand",inputFilterSensitiveLog:d7.StopCalculationExecutionRequestFilterSensitiveLog,outputFilterSensitiveLog:d7.StopCalculationExecutionResponseFilterSensitiveLog},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,u7.serializeAws_json1_1StopCalculationExecutionCommand)(n,t)}deserialize(n,t){return(0,u7.deserializeAws_json1_1StopCalculationExecutionCommand)(n,t)}};WA.StopCalculationExecutionCommand=Kp});var Kz=u(KA=>{"use strict";Object.defineProperty(KA,"__esModule",{value:!0});KA.StopQueryExecutionCommand=void 0;var qot=x(),Lot=b(),Fot=E(),m7=de(),p7=ge(),Qp=class extends Fot.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,Lot.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,qot.getEndpointPlugin)(t,Qp.getEndpointParameterInstructions()));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"AthenaClient",commandName:"StopQueryExecutionCommand",inputFilterSensitiveLog:m7.StopQueryExecutionInputFilterSensitiveLog,outputFilterSensitiveLog:m7.StopQueryExecutionOutputFilterSensitiveLog},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,p7.serializeAws_json1_1StopQueryExecutionCommand)(n,t)}deserialize(n,t){return(0,p7.deserializeAws_json1_1StopQueryExecutionCommand)(n,t)}};KA.StopQueryExecutionCommand=Qp});var Qz=u(QA=>{"use strict";Object.defineProperty(QA,"__esModule",{value:!0});QA.TagResourceCommand=void 0;var Dot=x(),Tot=b(),jot=E(),g7=de(),y7=ge(),Jp=class extends jot.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,Tot.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,Dot.getEndpointPlugin)(t,Jp.getEndpointParameterInstructions()));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"AthenaClient",commandName:"TagResourceCommand",inputFilterSensitiveLog:g7.TagResourceInputFilterSensitiveLog,outputFilterSensitiveLog:g7.TagResourceOutputFilterSensitiveLog},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,y7.serializeAws_json1_1TagResourceCommand)(n,t)}deserialize(n,t){return(0,y7.deserializeAws_json1_1TagResourceCommand)(n,t)}};QA.TagResourceCommand=Jp});var Jz=u(JA=>{"use strict";Object.defineProperty(JA,"__esModule",{value:!0});JA.TerminateSessionCommand=void 0;var Mot=x(),Oot=b(),Bot=E(),_7=de(),f7=ge(),Yp=class extends Bot.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,Oot.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,Mot.getEndpointPlugin)(t,Yp.getEndpointParameterInstructions()));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"AthenaClient",commandName:"TerminateSessionCommand",inputFilterSensitiveLog:_7.TerminateSessionRequestFilterSensitiveLog,outputFilterSensitiveLog:_7.TerminateSessionResponseFilterSensitiveLog},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,f7.serializeAws_json1_1TerminateSessionCommand)(n,t)}deserialize(n,t){return(0,f7.deserializeAws_json1_1TerminateSessionCommand)(n,t)}};JA.TerminateSessionCommand=Yp});var Yz=u(YA=>{"use strict";Object.defineProperty(YA,"__esModule",{value:!0});YA.UntagResourceCommand=void 0;var Got=x(),Uot=b(),Xot=E(),S7=de(),h7=ge(),Zp=class extends Xot.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,Uot.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,Got.getEndpointPlugin)(t,Zp.getEndpointParameterInstructions()));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"AthenaClient",commandName:"UntagResourceCommand",inputFilterSensitiveLog:S7.UntagResourceInputFilterSensitiveLog,outputFilterSensitiveLog:S7.UntagResourceOutputFilterSensitiveLog},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,h7.serializeAws_json1_1UntagResourceCommand)(n,t)}deserialize(n,t){return(0,h7.deserializeAws_json1_1UntagResourceCommand)(n,t)}};YA.UntagResourceCommand=Zp});var Zz=u(ZA=>{"use strict";Object.defineProperty(ZA,"__esModule",{value:!0});ZA.UpdateDataCatalogCommand=void 0;var $ot=x(),Hot=b(),Vot=E(),w7=de(),E7=ge(),eg=class extends Vot.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,Hot.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,$ot.getEndpointPlugin)(t,eg.getEndpointParameterInstructions()));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"AthenaClient",commandName:"UpdateDataCatalogCommand",inputFilterSensitiveLog:w7.UpdateDataCatalogInputFilterSensitiveLog,outputFilterSensitiveLog:w7.UpdateDataCatalogOutputFilterSensitiveLog},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,E7.serializeAws_json1_1UpdateDataCatalogCommand)(n,t)}deserialize(n,t){return(0,E7.deserializeAws_json1_1UpdateDataCatalogCommand)(n,t)}};ZA.UpdateDataCatalogCommand=eg});var eq=u(ex=>{"use strict";Object.defineProperty(ex,"__esModule",{value:!0});ex.UpdateNamedQueryCommand=void 0;var Wot=x(),Kot=b(),Qot=E(),C7=de(),v7=ge(),tg=class extends Qot.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,Kot.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,Wot.getEndpointPlugin)(t,tg.getEndpointParameterInstructions()));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"AthenaClient",commandName:"UpdateNamedQueryCommand",inputFilterSensitiveLog:C7.UpdateNamedQueryInputFilterSensitiveLog,outputFilterSensitiveLog:C7.UpdateNamedQueryOutputFilterSensitiveLog},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,v7.serializeAws_json1_1UpdateNamedQueryCommand)(n,t)}deserialize(n,t){return(0,v7.deserializeAws_json1_1UpdateNamedQueryCommand)(n,t)}};ex.UpdateNamedQueryCommand=tg});var tq=u(tx=>{"use strict";Object.defineProperty(tx,"__esModule",{value:!0});tx.UpdateNotebookCommand=void 0;var Jot=x(),Yot=b(),Zot=E(),P7=de(),A7=ge(),ng=class extends Zot.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,Yot.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,Jot.getEndpointPlugin)(t,ng.getEndpointParameterInstructions()));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"AthenaClient",commandName:"UpdateNotebookCommand",inputFilterSensitiveLog:P7.UpdateNotebookInputFilterSensitiveLog,outputFilterSensitiveLog:P7.UpdateNotebookOutputFilterSensitiveLog},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,A7.serializeAws_json1_1UpdateNotebookCommand)(n,t)}deserialize(n,t){return(0,A7.deserializeAws_json1_1UpdateNotebookCommand)(n,t)}};tx.UpdateNotebookCommand=ng});var nq=u(nx=>{"use strict";Object.defineProperty(nx,"__esModule",{value:!0});nx.UpdateNotebookMetadataCommand=void 0;var eat=x(),tat=b(),nat=E(),x7=de(),b7=ge(),sg=class extends nat.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,tat.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,eat.getEndpointPlugin)(t,sg.getEndpointParameterInstructions()));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"AthenaClient",commandName:"UpdateNotebookMetadataCommand",inputFilterSensitiveLog:x7.UpdateNotebookMetadataInputFilterSensitiveLog,outputFilterSensitiveLog:x7.UpdateNotebookMetadataOutputFilterSensitiveLog},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,b7.serializeAws_json1_1UpdateNotebookMetadataCommand)(n,t)}deserialize(n,t){return(0,b7.deserializeAws_json1_1UpdateNotebookMetadataCommand)(n,t)}};nx.UpdateNotebookMetadataCommand=sg});var sq=u(sx=>{"use strict";Object.defineProperty(sx,"__esModule",{value:!0});sx.UpdatePreparedStatementCommand=void 0;var sat=x(),rat=b(),iat=E(),I7=de(),k7=ge(),rg=class extends iat.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,rat.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,sat.getEndpointPlugin)(t,rg.getEndpointParameterInstructions()));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"AthenaClient",commandName:"UpdatePreparedStatementCommand",inputFilterSensitiveLog:I7.UpdatePreparedStatementInputFilterSensitiveLog,outputFilterSensitiveLog:I7.UpdatePreparedStatementOutputFilterSensitiveLog},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,k7.serializeAws_json1_1UpdatePreparedStatementCommand)(n,t)}deserialize(n,t){return(0,k7.deserializeAws_json1_1UpdatePreparedStatementCommand)(n,t)}};sx.UpdatePreparedStatementCommand=rg});var rq=u(rx=>{"use strict";Object.defineProperty(rx,"__esModule",{value:!0});rx.UpdateWorkGroupCommand=void 0;var oat=x(),aat=b(),cat=E(),R7=de(),N7=ge(),ig=class extends cat.Command{constructor(n){super(),this.input=n}static getEndpointParameterInstructions(){return{UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}}resolveMiddleware(n,t,s){this.middlewareStack.use((0,aat.getSerdePlugin)(t,this.serialize,this.deserialize)),this.middlewareStack.use((0,oat.getEndpointPlugin)(t,ig.getEndpointParameterInstructions()));let r=n.concat(this.middlewareStack),{logger:i}=t,c={logger:i,clientName:"AthenaClient",commandName:"UpdateWorkGroupCommand",inputFilterSensitiveLog:R7.UpdateWorkGroupInputFilterSensitiveLog,outputFilterSensitiveLog:R7.UpdateWorkGroupOutputFilterSensitiveLog},{requestHandler:l}=t;return r.resolve(d=>l.handle(d.request,s||{}),c)}serialize(n,t){return(0,N7.serializeAws_json1_1UpdateWorkGroupCommand)(n,t)}deserialize(n,t){return(0,N7.deserializeAws_json1_1UpdateWorkGroupCommand)(n,t)}};rx.UpdateWorkGroupCommand=ig});var ln=u(ix=>{"use strict";Object.defineProperty(ix,"__esModule",{value:!0});ix.Athena=void 0;var lat=Zt(),dat=pz(),uat=gz(),mat=yz(),pat=_z(),gat=fz(),yat=Sz(),_at=hz(),fat=wz(),Sat=Ez(),hat=Cz(),wat=vz(),Eat=Pz(),Cat=Az(),vat=xz(),Pat=bz(),Aat=Iz(),xat=kz(),bat=Rz(),Iat=Nz(),kat=zz(),Rat=qz(),Nat=Lz(),zat=Fz(),qat=Dz(),Lat=dA(),Fat=Tz(),Dat=jz(),Tat=Mz(),jat=Oz(),Mat=Bz(),Oat=Gz(),Bat=SA(),Gat=wA(),Uat=CA(),Xat=PA(),$at=xA(),Hat=IA(),Vat=RA(),Wat=Uz(),Kat=Xz(),Qat=LA(),Jat=DA(),Yat=jA(),Zat=OA(),ect=GA(),tct=XA(),nct=$z(),sct=Hz(),rct=Vz(),ict=Wz(),oct=Kz(),act=Qz(),cct=Jz(),lct=Yz(),dct=Zz(),uct=eq(),mct=tq(),pct=nq(),gct=sq(),yct=rq(),iq=class extends lat.AthenaClient{batchGetNamedQuery(n,t,s){let r=new dat.BatchGetNamedQueryCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}batchGetPreparedStatement(n,t,s){let r=new uat.BatchGetPreparedStatementCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}batchGetQueryExecution(n,t,s){let r=new mat.BatchGetQueryExecutionCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}createDataCatalog(n,t,s){let r=new pat.CreateDataCatalogCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}createNamedQuery(n,t,s){let r=new gat.CreateNamedQueryCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}createNotebook(n,t,s){let r=new yat.CreateNotebookCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}createPreparedStatement(n,t,s){let r=new _at.CreatePreparedStatementCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}createPresignedNotebookUrl(n,t,s){let r=new fat.CreatePresignedNotebookUrlCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}createWorkGroup(n,t,s){let r=new Sat.CreateWorkGroupCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}deleteDataCatalog(n,t,s){let r=new hat.DeleteDataCatalogCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}deleteNamedQuery(n,t,s){let r=new wat.DeleteNamedQueryCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}deleteNotebook(n,t,s){let r=new Eat.DeleteNotebookCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}deletePreparedStatement(n,t,s){let r=new Cat.DeletePreparedStatementCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}deleteWorkGroup(n,t,s){let r=new vat.DeleteWorkGroupCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}exportNotebook(n,t,s){let r=new Pat.ExportNotebookCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}getCalculationExecution(n,t,s){let r=new xat.GetCalculationExecutionCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}getCalculationExecutionCode(n,t,s){let r=new Aat.GetCalculationExecutionCodeCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}getCalculationExecutionStatus(n,t,s){let r=new bat.GetCalculationExecutionStatusCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}getDatabase(n,t,s){let r=new Iat.GetDatabaseCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}getDataCatalog(n,t,s){let r=new kat.GetDataCatalogCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}getNamedQuery(n,t,s){let r=new Rat.GetNamedQueryCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}getNotebookMetadata(n,t,s){let r=new Nat.GetNotebookMetadataCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}getPreparedStatement(n,t,s){let r=new zat.GetPreparedStatementCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}getQueryExecution(n,t,s){let r=new qat.GetQueryExecutionCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}getQueryResults(n,t,s){let r=new Lat.GetQueryResultsCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}getQueryRuntimeStatistics(n,t,s){let r=new Fat.GetQueryRuntimeStatisticsCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}getSession(n,t,s){let r=new Dat.GetSessionCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}getSessionStatus(n,t,s){let r=new Tat.GetSessionStatusCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}getTableMetadata(n,t,s){let r=new jat.GetTableMetadataCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}getWorkGroup(n,t,s){let r=new Mat.GetWorkGroupCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}importNotebook(n,t,s){let r=new Oat.ImportNotebookCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}listApplicationDPUSizes(n,t,s){let r=new Bat.ListApplicationDPUSizesCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}listCalculationExecutions(n,t,s){let r=new Gat.ListCalculationExecutionsCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}listDatabases(n,t,s){let r=new Uat.ListDatabasesCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}listDataCatalogs(n,t,s){let r=new Xat.ListDataCatalogsCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}listEngineVersions(n,t,s){let r=new $at.ListEngineVersionsCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}listExecutors(n,t,s){let r=new Hat.ListExecutorsCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}listNamedQueries(n,t,s){let r=new Vat.ListNamedQueriesCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}listNotebookMetadata(n,t,s){let r=new Wat.ListNotebookMetadataCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}listNotebookSessions(n,t,s){let r=new Kat.ListNotebookSessionsCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}listPreparedStatements(n,t,s){let r=new Qat.ListPreparedStatementsCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}listQueryExecutions(n,t,s){let r=new Jat.ListQueryExecutionsCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}listSessions(n,t,s){let r=new Yat.ListSessionsCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}listTableMetadata(n,t,s){let r=new Zat.ListTableMetadataCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}listTagsForResource(n,t,s){let r=new ect.ListTagsForResourceCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}listWorkGroups(n,t,s){let r=new tct.ListWorkGroupsCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}startCalculationExecution(n,t,s){let r=new nct.StartCalculationExecutionCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}startQueryExecution(n,t,s){let r=new sct.StartQueryExecutionCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}startSession(n,t,s){let r=new rct.StartSessionCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}stopCalculationExecution(n,t,s){let r=new ict.StopCalculationExecutionCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}stopQueryExecution(n,t,s){let r=new oct.StopQueryExecutionCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}tagResource(n,t,s){let r=new act.TagResourceCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}terminateSession(n,t,s){let r=new cct.TerminateSessionCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}untagResource(n,t,s){let r=new lct.UntagResourceCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}updateDataCatalog(n,t,s){let r=new dct.UpdateDataCatalogCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}updateNamedQuery(n,t,s){let r=new uct.UpdateNamedQueryCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}updateNotebook(n,t,s){let r=new mct.UpdateNotebookCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}updateNotebookMetadata(n,t,s){let r=new pct.UpdateNotebookMetadataCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}updatePreparedStatement(n,t,s){let r=new gct.UpdatePreparedStatementCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}updateWorkGroup(n,t,s){let r=new yct.UpdateWorkGroupCommand(n);if(typeof t=="function")this.send(r,t);else if(typeof s=="function"){if(typeof t!="object")throw new Error(`Expect http options but get ${typeof t}`);this.send(r,t||{},s)}else return this.send(r,t)}};ix.Athena=iq});var z7=u(me=>{"use strict";Object.defineProperty(me,"__esModule",{value:!0});var Ce=X();Ce.__exportStar(pz(),me);Ce.__exportStar(gz(),me);Ce.__exportStar(yz(),me);Ce.__exportStar(_z(),me);Ce.__exportStar(fz(),me);Ce.__exportStar(Sz(),me);Ce.__exportStar(hz(),me);Ce.__exportStar(wz(),me);Ce.__exportStar(Ez(),me);Ce.__exportStar(Cz(),me);Ce.__exportStar(vz(),me);Ce.__exportStar(Pz(),me);Ce.__exportStar(Az(),me);Ce.__exportStar(xz(),me);Ce.__exportStar(bz(),me);Ce.__exportStar(Iz(),me);Ce.__exportStar(kz(),me);Ce.__exportStar(Rz(),me);Ce.__exportStar(zz(),me);Ce.__exportStar(Nz(),me);Ce.__exportStar(qz(),me);Ce.__exportStar(Lz(),me);Ce.__exportStar(Fz(),me);Ce.__exportStar(Dz(),me);Ce.__exportStar(dA(),me);Ce.__exportStar(Tz(),me);Ce.__exportStar(jz(),me);Ce.__exportStar(Mz(),me);Ce.__exportStar(Oz(),me);Ce.__exportStar(Bz(),me);Ce.__exportStar(Gz(),me);Ce.__exportStar(SA(),me);Ce.__exportStar(wA(),me);Ce.__exportStar(PA(),me);Ce.__exportStar(CA(),me);Ce.__exportStar(xA(),me);Ce.__exportStar(IA(),me);Ce.__exportStar(RA(),me);Ce.__exportStar(Uz(),me);Ce.__exportStar(Xz(),me);Ce.__exportStar(LA(),me);Ce.__exportStar(DA(),me);Ce.__exportStar(jA(),me);Ce.__exportStar(OA(),me);Ce.__exportStar(GA(),me);Ce.__exportStar(XA(),me);Ce.__exportStar($z(),me);Ce.__exportStar(Hz(),me);Ce.__exportStar(Vz(),me);Ce.__exportStar(Wz(),me);Ce.__exportStar(Kz(),me);Ce.__exportStar(Qz(),me);Ce.__exportStar(Jz(),me);Ce.__exportStar(Yz(),me);Ce.__exportStar(Zz(),me);Ce.__exportStar(eq(),me);Ce.__exportStar(tq(),me);Ce.__exportStar(nq(),me);Ce.__exportStar(sq(),me);Ce.__exportStar(rq(),me)});var q7=u(oq=>{"use strict";Object.defineProperty(oq,"__esModule",{value:!0});var _ct=X();_ct.__exportStar(de(),oq)});var L7=u(ox=>{"use strict";Object.defineProperty(ox,"__esModule",{value:!0});ox.paginateGetQueryResults=void 0;var fct=ln(),Sct=Zt(),hct=dA(),wct=async(e,n,...t)=>await e.send(new hct.GetQueryResultsCommand(n),...t),Ect=async(e,n,...t)=>await e.getQueryResults(n,...t);async function*Cct(e,n,...t){let s=e.startingToken||void 0,r=!0,i;for(;r;){if(n.NextToken=s,n.MaxResults=e.pageSize,e.client instanceof fct.Athena)i=await Ect(e.client,n,...t);else if(e.client instanceof Sct.AthenaClient)i=await wct(e.client,n,...t);else throw new Error("Invalid client, expected Athena | AthenaClient");yield i;let a=s;s=i.NextToken,r=!!(s&&(!e.stopOnSameToken||s!==a))}return void 0}ox.paginateGetQueryResults=Cct});var D7=u(F7=>{"use strict";Object.defineProperty(F7,"__esModule",{value:!0})});var T7=u(ax=>{"use strict";Object.defineProperty(ax,"__esModule",{value:!0});ax.paginateListApplicationDPUSizes=void 0;var vct=ln(),Pct=Zt(),Act=SA(),xct=async(e,n,...t)=>await e.send(new Act.ListApplicationDPUSizesCommand(n),...t),bct=async(e,n,...t)=>await e.listApplicationDPUSizes(n,...t);async function*Ict(e,n,...t){let s=e.startingToken||void 0,r=!0,i;for(;r;){if(n.NextToken=s,n.MaxResults=e.pageSize,e.client instanceof vct.Athena)i=await bct(e.client,n,...t);else if(e.client instanceof Pct.AthenaClient)i=await xct(e.client,n,...t);else throw new Error("Invalid client, expected Athena | AthenaClient");yield i;let a=s;s=i.NextToken,r=!!(s&&(!e.stopOnSameToken||s!==a))}return void 0}ax.paginateListApplicationDPUSizes=Ict});var j7=u(cx=>{"use strict";Object.defineProperty(cx,"__esModule",{value:!0});cx.paginateListCalculationExecutions=void 0;var kct=ln(),Rct=Zt(),Nct=wA(),zct=async(e,n,...t)=>await e.send(new Nct.ListCalculationExecutionsCommand(n),...t),qct=async(e,n,...t)=>await e.listCalculationExecutions(n,...t);async function*Lct(e,n,...t){let s=e.startingToken||void 0,r=!0,i;for(;r;){if(n.NextToken=s,n.MaxResults=e.pageSize,e.client instanceof kct.Athena)i=await qct(e.client,n,...t);else if(e.client instanceof Rct.AthenaClient)i=await zct(e.client,n,...t);else throw new Error("Invalid client, expected Athena | AthenaClient");yield i;let a=s;s=i.NextToken,r=!!(s&&(!e.stopOnSameToken||s!==a))}return void 0}cx.paginateListCalculationExecutions=Lct});var M7=u(lx=>{"use strict";Object.defineProperty(lx,"__esModule",{value:!0});lx.paginateListDataCatalogs=void 0;var Fct=ln(),Dct=Zt(),Tct=PA(),jct=async(e,n,...t)=>await e.send(new Tct.ListDataCatalogsCommand(n),...t),Mct=async(e,n,...t)=>await e.listDataCatalogs(n,...t);async function*Oct(e,n,...t){let s=e.startingToken||void 0,r=!0,i;for(;r;){if(n.NextToken=s,n.MaxResults=e.pageSize,e.client instanceof Fct.Athena)i=await Mct(e.client,n,...t);else if(e.client instanceof Dct.AthenaClient)i=await jct(e.client,n,...t);else throw new Error("Invalid client, expected Athena | AthenaClient");yield i;let a=s;s=i.NextToken,r=!!(s&&(!e.stopOnSameToken||s!==a))}return void 0}lx.paginateListDataCatalogs=Oct});var O7=u(dx=>{"use strict";Object.defineProperty(dx,"__esModule",{value:!0});dx.paginateListDatabases=void 0;var Bct=ln(),Gct=Zt(),Uct=CA(),Xct=async(e,n,...t)=>await e.send(new Uct.ListDatabasesCommand(n),...t),$ct=async(e,n,...t)=>await e.listDatabases(n,...t);async function*Hct(e,n,...t){let s=e.startingToken||void 0,r=!0,i;for(;r;){if(n.NextToken=s,n.MaxResults=e.pageSize,e.client instanceof Bct.Athena)i=await $ct(e.client,n,...t);else if(e.client instanceof Gct.AthenaClient)i=await Xct(e.client,n,...t);else throw new Error("Invalid client, expected Athena | AthenaClient");yield i;let a=s;s=i.NextToken,r=!!(s&&(!e.stopOnSameToken||s!==a))}return void 0}dx.paginateListDatabases=Hct});var B7=u(ux=>{"use strict";Object.defineProperty(ux,"__esModule",{value:!0});ux.paginateListEngineVersions=void 0;var Vct=ln(),Wct=Zt(),Kct=xA(),Qct=async(e,n,...t)=>await e.send(new Kct.ListEngineVersionsCommand(n),...t),Jct=async(e,n,...t)=>await e.listEngineVersions(n,...t);async function*Yct(e,n,...t){let s=e.startingToken||void 0,r=!0,i;for(;r;){if(n.NextToken=s,n.MaxResults=e.pageSize,e.client instanceof Vct.Athena)i=await Jct(e.client,n,...t);else if(e.client instanceof Wct.AthenaClient)i=await Qct(e.client,n,...t);else throw new Error("Invalid client, expected Athena | AthenaClient");yield i;let a=s;s=i.NextToken,r=!!(s&&(!e.stopOnSameToken||s!==a))}return void 0}ux.paginateListEngineVersions=Yct});var G7=u(mx=>{"use strict";Object.defineProperty(mx,"__esModule",{value:!0});mx.paginateListExecutors=void 0;var Zct=ln(),elt=Zt(),tlt=IA(),nlt=async(e,n,...t)=>await e.send(new tlt.ListExecutorsCommand(n),...t),slt=async(e,n,...t)=>await e.listExecutors(n,...t);async function*rlt(e,n,...t){let s=e.startingToken||void 0,r=!0,i;for(;r;){if(n.NextToken=s,n.MaxResults=e.pageSize,e.client instanceof Zct.Athena)i=await slt(e.client,n,...t);else if(e.client instanceof elt.AthenaClient)i=await nlt(e.client,n,...t);else throw new Error("Invalid client, expected Athena | AthenaClient");yield i;let a=s;s=i.NextToken,r=!!(s&&(!e.stopOnSameToken||s!==a))}return void 0}mx.paginateListExecutors=rlt});var U7=u(px=>{"use strict";Object.defineProperty(px,"__esModule",{value:!0});px.paginateListNamedQueries=void 0;var ilt=ln(),olt=Zt(),alt=RA(),clt=async(e,n,...t)=>await e.send(new alt.ListNamedQueriesCommand(n),...t),llt=async(e,n,...t)=>await e.listNamedQueries(n,...t);async function*dlt(e,n,...t){let s=e.startingToken||void 0,r=!0,i;for(;r;){if(n.NextToken=s,n.MaxResults=e.pageSize,e.client instanceof ilt.Athena)i=await llt(e.client,n,...t);else if(e.client instanceof olt.AthenaClient)i=await clt(e.client,n,...t);else throw new Error("Invalid client, expected Athena | AthenaClient");yield i;let a=s;s=i.NextToken,r=!!(s&&(!e.stopOnSameToken||s!==a))}return void 0}px.paginateListNamedQueries=dlt});var X7=u(gx=>{"use strict";Object.defineProperty(gx,"__esModule",{value:!0});gx.paginateListPreparedStatements=void 0;var ult=ln(),mlt=Zt(),plt=LA(),glt=async(e,n,...t)=>await e.send(new plt.ListPreparedStatementsCommand(n),...t),ylt=async(e,n,...t)=>await e.listPreparedStatements(n,...t);async function*_lt(e,n,...t){let s=e.startingToken||void 0,r=!0,i;for(;r;){if(n.NextToken=s,n.MaxResults=e.pageSize,e.client instanceof ult.Athena)i=await ylt(e.client,n,...t);else if(e.client instanceof mlt.AthenaClient)i=await glt(e.client,n,...t);else throw new Error("Invalid client, expected Athena | AthenaClient");yield i;let a=s;s=i.NextToken,r=!!(s&&(!e.stopOnSameToken||s!==a))}return void 0}gx.paginateListPreparedStatements=_lt});var $7=u(yx=>{"use strict";Object.defineProperty(yx,"__esModule",{value:!0});yx.paginateListQueryExecutions=void 0;var flt=ln(),Slt=Zt(),hlt=DA(),wlt=async(e,n,...t)=>await e.send(new hlt.ListQueryExecutionsCommand(n),...t),Elt=async(e,n,...t)=>await e.listQueryExecutions(n,...t);async function*Clt(e,n,...t){let s=e.startingToken||void 0,r=!0,i;for(;r;){if(n.NextToken=s,n.MaxResults=e.pageSize,e.client instanceof flt.Athena)i=await Elt(e.client,n,...t);else if(e.client instanceof Slt.AthenaClient)i=await wlt(e.client,n,...t);else throw new Error("Invalid client, expected Athena | AthenaClient");yield i;let a=s;s=i.NextToken,r=!!(s&&(!e.stopOnSameToken||s!==a))}return void 0}yx.paginateListQueryExecutions=Clt});var H7=u(_x=>{"use strict";Object.defineProperty(_x,"__esModule",{value:!0});_x.paginateListSessions=void 0;var vlt=ln(),Plt=Zt(),Alt=jA(),xlt=async(e,n,...t)=>await e.send(new Alt.ListSessionsCommand(n),...t),blt=async(e,n,...t)=>await e.listSessions(n,...t);async function*Ilt(e,n,...t){let s=e.startingToken||void 0,r=!0,i;for(;r;){if(n.NextToken=s,n.MaxResults=e.pageSize,e.client instanceof vlt.Athena)i=await blt(e.client,n,...t);else if(e.client instanceof Plt.AthenaClient)i=await xlt(e.client,n,...t);else throw new Error("Invalid client, expected Athena | AthenaClient");yield i;let a=s;s=i.NextToken,r=!!(s&&(!e.stopOnSameToken||s!==a))}return void 0}_x.paginateListSessions=Ilt});var V7=u(fx=>{"use strict";Object.defineProperty(fx,"__esModule",{value:!0});fx.paginateListTableMetadata=void 0;var klt=ln(),Rlt=Zt(),Nlt=OA(),zlt=async(e,n,...t)=>await e.send(new Nlt.ListTableMetadataCommand(n),...t),qlt=async(e,n,...t)=>await e.listTableMetadata(n,...t);async function*Llt(e,n,...t){let s=e.startingToken||void 0,r=!0,i;for(;r;){if(n.NextToken=s,n.MaxResults=e.pageSize,e.client instanceof klt.Athena)i=await qlt(e.client,n,...t);else if(e.client instanceof Rlt.AthenaClient)i=await zlt(e.client,n,...t);else throw new Error("Invalid client, expected Athena | AthenaClient");yield i;let a=s;s=i.NextToken,r=!!(s&&(!e.stopOnSameToken||s!==a))}return void 0}fx.paginateListTableMetadata=Llt});var W7=u(Sx=>{"use strict";Object.defineProperty(Sx,"__esModule",{value:!0});Sx.paginateListTagsForResource=void 0;var Flt=ln(),Dlt=Zt(),Tlt=GA(),jlt=async(e,n,...t)=>await e.send(new Tlt.ListTagsForResourceCommand(n),...t),Mlt=async(e,n,...t)=>await e.listTagsForResource(n,...t);async function*Olt(e,n,...t){let s=e.startingToken||void 0,r=!0,i;for(;r;){if(n.NextToken=s,n.MaxResults=e.pageSize,e.client instanceof Flt.Athena)i=await Mlt(e.client,n,...t);else if(e.client instanceof Dlt.AthenaClient)i=await jlt(e.client,n,...t);else throw new Error("Invalid client, expected Athena | AthenaClient");yield i;let a=s;s=i.NextToken,r=!!(s&&(!e.stopOnSameToken||s!==a))}return void 0}Sx.paginateListTagsForResource=Olt});var K7=u(hx=>{"use strict";Object.defineProperty(hx,"__esModule",{value:!0});hx.paginateListWorkGroups=void 0;var Blt=ln(),Glt=Zt(),Ult=XA(),Xlt=async(e,n,...t)=>await e.send(new Ult.ListWorkGroupsCommand(n),...t),$lt=async(e,n,...t)=>await e.listWorkGroups(n,...t);async function*Hlt(e,n,...t){let s=e.startingToken||void 0,r=!0,i;for(;r;){if(n.NextToken=s,n.MaxResults=e.pageSize,e.client instanceof Blt.Athena)i=await $lt(e.client,n,...t);else if(e.client instanceof Glt.AthenaClient)i=await Xlt(e.client,n,...t);else throw new Error("Invalid client, expected Athena | AthenaClient");yield i;let a=s;s=i.NextToken,r=!!(s&&(!e.stopOnSameToken||s!==a))}return void 0}hx.paginateListWorkGroups=Hlt});var Q7=u(en=>{"use strict";Object.defineProperty(en,"__esModule",{value:!0});var yn=X();yn.__exportStar(L7(),en);yn.__exportStar(D7(),en);yn.__exportStar(T7(),en);yn.__exportStar(j7(),en);yn.__exportStar(M7(),en);yn.__exportStar(O7(),en);yn.__exportStar(B7(),en);yn.__exportStar(G7(),en);yn.__exportStar(U7(),en);yn.__exportStar(X7(),en);yn.__exportStar($7(),en);yn.__exportStar(H7(),en);yn.__exportStar(V7(),en);yn.__exportStar(W7(),en);yn.__exportStar(K7(),en)});var J7=u(yr=>{"use strict";Object.defineProperty(yr,"__esModule",{value:!0});yr.AthenaServiceException=void 0;var og=X();og.__exportStar(ln(),yr);og.__exportStar(Zt(),yr);og.__exportStar(z7(),yr);og.__exportStar(q7(),yr);og.__exportStar(Q7(),yr);var Vlt=FP();Object.defineProperty(yr,"AthenaServiceException",{enumerable:!0,get:function(){return Vlt.AthenaServiceException}})});var Zlt={};l9(Zlt,{getFromS3:()=>e9,getSecret:()=>Wlt,loadCredentials:()=>Klt,newAthenaClient:()=>lq,newS3Client:()=>dq,queryAthena:()=>Ylt,uploadToS3:()=>Qlt});module.exports=d9(Zlt);var Z7=Jo(dX()),wx=Jo(D2()),Ko=Jo(LQ()),Qo=Jo(J7()),cq=Jo(Vr());async function Wlt(e){let n=new wx.SecretsManagerClient({}),{SecretString:t}=await n.send(new wx.GetSecretValueCommand({SecretId:e}));return t}async function Klt(){let e="consensus-networks-dev";return!process.env.AWS_ACCESS_KEY_ID||!process.env.AWS_SECRET_ACCESS_KEY?(process.env.AWS_PROFILE=process.env.AWS_PROFILE||e,await(0,Z7.fromIni)()()):{accessKeyId:process.env.AWS_ACCESS_KEY_ID,secretAccessKey:process.env.AWS_SECRET_ACCESS_KEY}}var Y7="casimir-etl-output-bucket-dev",Bi=null,_r=null;async function lq(e){e?.region===void 0&&(e={region:"us-east-2"}),e.credentials===void 0&&(e={credentials:(0,cq.defaultProvider)()});let n=new Qo.AthenaClient(e);return Bi=n,n}async function dq(e){if(_r)return _r;e?.region===void 0&&(e={region:"us-east-2"}),e.credentials===void 0&&(e={credentials:(0,cq.defaultProvider)()});let n=new Ko.S3Client(e);return _r=n,n}async function Qlt(e){_r||(_r=await dq());let n=new Ko.PutObjectCommand({Bucket:e.bucket,Key:e.key,Body:e.data}),{$metadata:t}=await _r.send(n);if(t.httpStatusCode!==200)throw new Error("Error uploading to s3")}async function e9(e,n){_r||(_r=await dq());let{$metadata:t,Body:s}=await _r.send(new Ko.GetObjectCommand({Bucket:e,Key:n}));if(t.httpStatusCode!==200)throw new Error("FailedQuery: unable retrieve result from S3");if(s===void 0)throw new Error("InvalidQueryResult: query result is undefined");let r="";for await(let i of s)r+=i.toString();return r}var Jlt=0,aq=500;async function t9(e){Bi||(Bi=await lq());let n=new Qo.GetQueryExecutionCommand({QueryExecutionId:e}),{$metadata:t,QueryExecution:s}=await Bi.send(n);if(t.httpStatusCode!==200)throw new Error("FailedQuery: unable to query Athena");if(s===void 0)throw new Error("InvalidQueryExecution: query execution is undefined");if(s.Status===void 0)throw new Error("InvalidQueryExecutionStatus: query execution status is undefined");if((s.Status.State==="QUEUED"||s.Status.State==="RUNNING")&&setTimeout(()=>{t9(e),Jlt++,aq=aq+500},aq),s.Status.State==="FAILED"){let r=s.Status.StateChangeReason;throw r&&r.includes("HIVE_BAD_DATA")?new Error("FailedQuery: Check the table for bad data"):new Error("QueryFailed: query failed")}s.Status.State}async function Ylt(e){Bi||(Bi=await lq());let n=new Qo.StartQueryExecutionCommand({QueryString:e,WorkGroup:"primary",ResultConfiguration:{OutputLocation:`s3://${Y7}/`}}),{$metadata:t,QueryExecutionId:s}=await Bi.send(n);if(t.httpStatusCode!==200)throw new Error("FailedQuery: unable to query Athena");if(s===void 0)throw new Error("InvalidQueryExecutionId: query execution id is undefined");await t9(s),await new Promise(c=>setTimeout(c,2e3));let i=(await e9(Y7,`${s}.csv`)).split(` +`).filter(c=>c!=="");if(i.length<=1)return null;let a=i.splice(0,1)[0].split(",").map(c=>c.trim().replace(/"/g,"")),o=[];return i.forEach((c,l)=>{let d=c.split(","),h={};d.forEach((v,z)=>{h[a[z]]=v.trim().replace(/"/g,"")}),h&&o.push(h)}),o}0&&(module.exports={getFromS3,getSecret,loadCredentials,newAthenaClient,newS3Client,queryAthena,uploadToS3}); +/*! ***************************************************************************** +Copyright (c) Microsoft Corporation. + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH +REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY +AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, +INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM +LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR +OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +PERFORMANCE OF THIS SOFTWARE. +***************************************************************************** */ +//# sourceMappingURL=index.js.map diff --git a/common/aws-helpers/dist/index.js.map b/common/aws-helpers/dist/index.js.map new file mode 100644 index 000000000..01256dff7 --- /dev/null +++ b/common/aws-helpers/dist/index.js.map @@ -0,0 +1,7 @@ +{ + "version": 3, + "sources": ["../../../node_modules/tslib/tslib.js", "../../../node_modules/@aws-sdk/util-config-provider/dist-cjs/booleanSelector.js", "../../../node_modules/@aws-sdk/util-config-provider/dist-cjs/index.js", "../../../node_modules/@aws-sdk/config-resolver/dist-cjs/endpointsConfig/NodeUseDualstackEndpointConfigOptions.js", "../../../node_modules/@aws-sdk/config-resolver/dist-cjs/endpointsConfig/NodeUseFipsEndpointConfigOptions.js", "../../../node_modules/@aws-sdk/util-middleware/dist-cjs/normalizeProvider.js", "../../../node_modules/@aws-sdk/util-middleware/dist-cjs/index.js", "../../../node_modules/@aws-sdk/config-resolver/dist-cjs/endpointsConfig/resolveCustomEndpointsConfig.js", "../../../node_modules/@aws-sdk/config-resolver/dist-cjs/endpointsConfig/utils/getEndpointFromRegion.js", "../../../node_modules/@aws-sdk/config-resolver/dist-cjs/endpointsConfig/resolveEndpointsConfig.js", "../../../node_modules/@aws-sdk/config-resolver/dist-cjs/endpointsConfig/index.js", "../../../node_modules/@aws-sdk/config-resolver/dist-cjs/regionConfig/config.js", "../../../node_modules/@aws-sdk/config-resolver/dist-cjs/regionConfig/isFipsRegion.js", "../../../node_modules/@aws-sdk/config-resolver/dist-cjs/regionConfig/getRealRegion.js", "../../../node_modules/@aws-sdk/config-resolver/dist-cjs/regionConfig/resolveRegionConfig.js", "../../../node_modules/@aws-sdk/config-resolver/dist-cjs/regionConfig/index.js", "../../../node_modules/@aws-sdk/config-resolver/dist-cjs/regionInfo/PartitionHash.js", "../../../node_modules/@aws-sdk/config-resolver/dist-cjs/regionInfo/RegionHash.js", "../../../node_modules/@aws-sdk/config-resolver/dist-cjs/regionInfo/getHostnameFromVariants.js", "../../../node_modules/@aws-sdk/config-resolver/dist-cjs/regionInfo/getResolvedHostname.js", "../../../node_modules/@aws-sdk/config-resolver/dist-cjs/regionInfo/getResolvedPartition.js", "../../../node_modules/@aws-sdk/config-resolver/dist-cjs/regionInfo/getResolvedSigningRegion.js", "../../../node_modules/@aws-sdk/config-resolver/dist-cjs/regionInfo/getRegionInfo.js", "../../../node_modules/@aws-sdk/config-resolver/dist-cjs/regionInfo/index.js", "../../../node_modules/@aws-sdk/config-resolver/dist-cjs/index.js", "../../../node_modules/@aws-sdk/protocol-http/dist-cjs/FieldPosition.js", "../../../node_modules/@aws-sdk/protocol-http/dist-cjs/Field.js", "../../../node_modules/@aws-sdk/protocol-http/dist-cjs/Fields.js", "../../../node_modules/@aws-sdk/protocol-http/dist-cjs/httpHandler.js", "../../../node_modules/@aws-sdk/protocol-http/dist-cjs/httpRequest.js", "../../../node_modules/@aws-sdk/protocol-http/dist-cjs/httpResponse.js", "../../../node_modules/@aws-sdk/protocol-http/dist-cjs/isValidHostname.js", "../../../node_modules/@aws-sdk/protocol-http/dist-cjs/index.js", "../../../node_modules/@aws-sdk/middleware-content-length/dist-cjs/index.js", "../../../node_modules/@aws-sdk/middleware-endpoint/dist-cjs/service-customizations/s3.js", "../../../node_modules/@aws-sdk/middleware-endpoint/dist-cjs/service-customizations/index.js", "../../../node_modules/@aws-sdk/middleware-endpoint/dist-cjs/adaptors/createConfigValueProvider.js", "../../../node_modules/@aws-sdk/middleware-endpoint/dist-cjs/adaptors/getEndpointFromInstructions.js", "../../../node_modules/@aws-sdk/querystring-parser/dist-cjs/index.js", "../../../node_modules/@aws-sdk/url-parser/dist-cjs/index.js", "../../../node_modules/@aws-sdk/middleware-endpoint/dist-cjs/adaptors/toEndpointV1.js", "../../../node_modules/@aws-sdk/middleware-endpoint/dist-cjs/adaptors/index.js", "../../../node_modules/@aws-sdk/middleware-endpoint/dist-cjs/endpointMiddleware.js", "../../../node_modules/@aws-sdk/middleware-serde/dist-cjs/deserializerMiddleware.js", "../../../node_modules/@aws-sdk/middleware-serde/dist-cjs/serializerMiddleware.js", "../../../node_modules/@aws-sdk/middleware-serde/dist-cjs/serdePlugin.js", "../../../node_modules/@aws-sdk/middleware-serde/dist-cjs/index.js", "../../../node_modules/@aws-sdk/middleware-endpoint/dist-cjs/getEndpointPlugin.js", "../../../node_modules/@aws-sdk/middleware-endpoint/dist-cjs/resolveEndpointConfig.js", "../../../node_modules/@aws-sdk/middleware-endpoint/dist-cjs/types.js", "../../../node_modules/@aws-sdk/middleware-endpoint/dist-cjs/index.js", "../../../node_modules/@aws-sdk/middleware-host-header/dist-cjs/index.js", "../../../node_modules/@aws-sdk/middleware-logger/dist-cjs/loggerMiddleware.js", "../../../node_modules/@aws-sdk/middleware-logger/dist-cjs/index.js", "../../../node_modules/@aws-sdk/middleware-recursion-detection/dist-cjs/index.js", "../../../node_modules/@aws-sdk/util-retry/dist-cjs/config.js", "../../../node_modules/@aws-sdk/service-error-classification/dist-cjs/constants.js", "../../../node_modules/@aws-sdk/service-error-classification/dist-cjs/index.js", "../../../node_modules/@aws-sdk/util-retry/dist-cjs/DefaultRateLimiter.js", "../../../node_modules/@aws-sdk/util-retry/dist-cjs/constants.js", "../../../node_modules/@aws-sdk/util-retry/dist-cjs/defaultRetryBackoffStrategy.js", "../../../node_modules/@aws-sdk/util-retry/dist-cjs/defaultRetryToken.js", "../../../node_modules/@aws-sdk/util-retry/dist-cjs/StandardRetryStrategy.js", "../../../node_modules/@aws-sdk/util-retry/dist-cjs/AdaptiveRetryStrategy.js", "../../../node_modules/@aws-sdk/util-retry/dist-cjs/types.js", "../../../node_modules/@aws-sdk/util-retry/dist-cjs/index.js", "../../../node_modules/uuid/dist/rng.js", "../../../node_modules/uuid/dist/regex.js", "../../../node_modules/uuid/dist/validate.js", "../../../node_modules/uuid/dist/stringify.js", "../../../node_modules/uuid/dist/v1.js", "../../../node_modules/uuid/dist/parse.js", "../../../node_modules/uuid/dist/v35.js", "../../../node_modules/uuid/dist/md5.js", "../../../node_modules/uuid/dist/v3.js", "../../../node_modules/uuid/dist/v4.js", "../../../node_modules/uuid/dist/sha1.js", "../../../node_modules/uuid/dist/v5.js", "../../../node_modules/uuid/dist/nil.js", "../../../node_modules/uuid/dist/version.js", "../../../node_modules/uuid/dist/index.js", "../../../node_modules/@aws-sdk/middleware-retry/dist-cjs/defaultRetryQuota.js", "../../../node_modules/@aws-sdk/middleware-retry/dist-cjs/delayDecider.js", "../../../node_modules/@aws-sdk/middleware-retry/dist-cjs/retryDecider.js", "../../../node_modules/@aws-sdk/middleware-retry/dist-cjs/util.js", "../../../node_modules/@aws-sdk/middleware-retry/dist-cjs/StandardRetryStrategy.js", "../../../node_modules/@aws-sdk/middleware-retry/dist-cjs/AdaptiveRetryStrategy.js", "../../../node_modules/@aws-sdk/middleware-retry/dist-cjs/configurations.js", "../../../node_modules/@aws-sdk/middleware-retry/dist-cjs/omitRetryHeadersMiddleware.js", "../../../node_modules/@aws-sdk/middleware-retry/dist-cjs/retryMiddleware.js", "../../../node_modules/@aws-sdk/middleware-retry/dist-cjs/index.js", "../../../node_modules/@aws-sdk/property-provider/dist-cjs/ProviderError.js", "../../../node_modules/@aws-sdk/property-provider/dist-cjs/CredentialsProviderError.js", "../../../node_modules/@aws-sdk/property-provider/dist-cjs/TokenProviderError.js", "../../../node_modules/@aws-sdk/property-provider/dist-cjs/chain.js", "../../../node_modules/@aws-sdk/property-provider/dist-cjs/fromStatic.js", "../../../node_modules/@aws-sdk/property-provider/dist-cjs/memoize.js", "../../../node_modules/@aws-sdk/property-provider/dist-cjs/index.js", "../../../node_modules/@aws-sdk/util-hex-encoding/dist-cjs/index.js", "../../../node_modules/@aws-sdk/is-array-buffer/dist-cjs/index.js", "../../../node_modules/@aws-sdk/util-buffer-from/dist-cjs/index.js", "../../../node_modules/@aws-sdk/util-utf8/dist-cjs/fromUtf8.js", "../../../node_modules/@aws-sdk/util-utf8/dist-cjs/toUint8Array.js", "../../../node_modules/@aws-sdk/util-utf8/dist-cjs/toUtf8.js", "../../../node_modules/@aws-sdk/util-utf8/dist-cjs/index.js", "../../../node_modules/@aws-sdk/signature-v4/dist-cjs/constants.js", "../../../node_modules/@aws-sdk/signature-v4/dist-cjs/credentialDerivation.js", "../../../node_modules/@aws-sdk/signature-v4/dist-cjs/getCanonicalHeaders.js", "../../../node_modules/@aws-sdk/util-uri-escape/dist-cjs/escape-uri.js", "../../../node_modules/@aws-sdk/util-uri-escape/dist-cjs/escape-uri-path.js", "../../../node_modules/@aws-sdk/util-uri-escape/dist-cjs/index.js", "../../../node_modules/@aws-sdk/signature-v4/dist-cjs/getCanonicalQuery.js", "../../../node_modules/@aws-sdk/signature-v4/dist-cjs/getPayloadHash.js", "../../../node_modules/@aws-sdk/signature-v4/dist-cjs/headerUtil.js", "../../../node_modules/@aws-sdk/signature-v4/dist-cjs/cloneRequest.js", "../../../node_modules/@aws-sdk/signature-v4/dist-cjs/moveHeadersToQuery.js", "../../../node_modules/@aws-sdk/signature-v4/dist-cjs/prepareRequest.js", "../../../node_modules/@aws-sdk/signature-v4/dist-cjs/utilDate.js", "../../../node_modules/@aws-sdk/signature-v4/dist-cjs/SignatureV4.js", "../../../node_modules/@aws-sdk/signature-v4/dist-cjs/index.js", "../../../node_modules/@aws-sdk/middleware-signing/dist-cjs/configurations.js", "../../../node_modules/@aws-sdk/middleware-signing/dist-cjs/utils/getSkewCorrectedDate.js", "../../../node_modules/@aws-sdk/middleware-signing/dist-cjs/utils/isClockSkewed.js", "../../../node_modules/@aws-sdk/middleware-signing/dist-cjs/utils/getUpdatedSystemClockOffset.js", "../../../node_modules/@aws-sdk/middleware-signing/dist-cjs/middleware.js", "../../../node_modules/@aws-sdk/middleware-signing/dist-cjs/index.js", "../../../node_modules/@aws-sdk/middleware-user-agent/dist-cjs/configurations.js", "../../../node_modules/@aws-sdk/middleware-user-agent/dist-cjs/constants.js", "../../../node_modules/@aws-sdk/middleware-user-agent/dist-cjs/user-agent-middleware.js", "../../../node_modules/@aws-sdk/middleware-user-agent/dist-cjs/index.js", "../../../node_modules/@aws-sdk/smithy-client/dist-cjs/NoOpLogger.js", "../../../node_modules/@aws-sdk/middleware-stack/dist-cjs/MiddlewareStack.js", "../../../node_modules/@aws-sdk/middleware-stack/dist-cjs/index.js", "../../../node_modules/@aws-sdk/smithy-client/dist-cjs/client.js", "../../../node_modules/@aws-sdk/smithy-client/dist-cjs/command.js", "../../../node_modules/@aws-sdk/smithy-client/dist-cjs/constants.js", "../../../node_modules/@aws-sdk/smithy-client/dist-cjs/parse-utils.js", "../../../node_modules/@aws-sdk/smithy-client/dist-cjs/date-utils.js", "../../../node_modules/@aws-sdk/smithy-client/dist-cjs/exceptions.js", "../../../node_modules/@aws-sdk/smithy-client/dist-cjs/default-error-handler.js", "../../../node_modules/@aws-sdk/smithy-client/dist-cjs/defaults-mode.js", "../../../node_modules/@aws-sdk/smithy-client/dist-cjs/emitWarningIfUnsupportedVersion.js", "../../../node_modules/@aws-sdk/smithy-client/dist-cjs/extended-encode-uri-component.js", "../../../node_modules/@aws-sdk/smithy-client/dist-cjs/get-array-if-single-item.js", "../../../node_modules/@aws-sdk/smithy-client/dist-cjs/get-value-from-text-node.js", "../../../node_modules/@aws-sdk/smithy-client/dist-cjs/lazy-json.js", "../../../node_modules/@aws-sdk/smithy-client/dist-cjs/object-mapping.js", "../../../node_modules/@aws-sdk/smithy-client/dist-cjs/resolve-path.js", "../../../node_modules/@aws-sdk/smithy-client/dist-cjs/ser-utils.js", "../../../node_modules/@aws-sdk/smithy-client/dist-cjs/split-every.js", "../../../node_modules/@aws-sdk/smithy-client/dist-cjs/index.js", "../../../node_modules/@aws-sdk/client-cognito-identity/dist-cjs/endpoint/EndpointParameters.js", "../../../node_modules/@aws-sdk/client-sts/dist-cjs/models/STSServiceException.js", "../../../node_modules/@aws-sdk/client-sts/dist-cjs/models/models_0.js", "../../../node_modules/fast-xml-parser/src/util.js", "../../../node_modules/fast-xml-parser/src/validator.js", "../../../node_modules/fast-xml-parser/src/xmlparser/OptionsBuilder.js", "../../../node_modules/fast-xml-parser/src/xmlparser/xmlNode.js", "../../../node_modules/fast-xml-parser/src/xmlparser/DocTypeReader.js", "../../../node_modules/strnum/strnum.js", "../../../node_modules/fast-xml-parser/src/xmlparser/OrderedObjParser.js", "../../../node_modules/fast-xml-parser/src/xmlparser/node2json.js", "../../../node_modules/fast-xml-parser/src/xmlparser/XMLParser.js", "../../../node_modules/fast-xml-parser/src/xmlbuilder/orderedJs2Xml.js", "../../../node_modules/fast-xml-parser/src/xmlbuilder/json2xml.js", "../../../node_modules/fast-xml-parser/src/fxp.js", "../../../node_modules/@aws-sdk/client-sts/dist-cjs/protocols/Aws_query.js", "../../../node_modules/@aws-sdk/client-sts/dist-cjs/commands/AssumeRoleCommand.js", "../../../node_modules/@aws-sdk/client-sts/dist-cjs/commands/AssumeRoleWithSAMLCommand.js", "../../../node_modules/@aws-sdk/client-sts/dist-cjs/commands/AssumeRoleWithWebIdentityCommand.js", "../../../node_modules/@aws-sdk/client-sts/dist-cjs/commands/DecodeAuthorizationMessageCommand.js", "../../../node_modules/@aws-sdk/client-sts/dist-cjs/commands/GetAccessKeyInfoCommand.js", "../../../node_modules/@aws-sdk/client-sts/dist-cjs/commands/GetCallerIdentityCommand.js", "../../../node_modules/@aws-sdk/client-sts/dist-cjs/commands/GetFederationTokenCommand.js", "../../../node_modules/@aws-sdk/client-sts/dist-cjs/commands/GetSessionTokenCommand.js", "../../../node_modules/@aws-sdk/middleware-sdk-sts/dist-cjs/index.js", "../../../node_modules/@aws-sdk/client-sts/dist-cjs/endpoint/EndpointParameters.js", "../../../node_modules/@aws-sdk/client-sts/dist-cjs/defaultStsRoleAssumers.js", "../../../node_modules/@aws-sdk/credential-provider-env/dist-cjs/fromEnv.js", "../../../node_modules/@aws-sdk/credential-provider-env/dist-cjs/index.js", "../../../node_modules/@aws-sdk/shared-ini-file-loader/dist-cjs/getHomeDir.js", "../../../node_modules/@aws-sdk/shared-ini-file-loader/dist-cjs/getProfileName.js", "../../../node_modules/@aws-sdk/shared-ini-file-loader/dist-cjs/getSSOTokenFilepath.js", "../../../node_modules/@aws-sdk/shared-ini-file-loader/dist-cjs/getSSOTokenFromFile.js", "../../../node_modules/@aws-sdk/shared-ini-file-loader/dist-cjs/getConfigFilepath.js", "../../../node_modules/@aws-sdk/shared-ini-file-loader/dist-cjs/getCredentialsFilepath.js", "../../../node_modules/@aws-sdk/shared-ini-file-loader/dist-cjs/getProfileData.js", "../../../node_modules/@aws-sdk/shared-ini-file-loader/dist-cjs/parseIni.js", "../../../node_modules/@aws-sdk/shared-ini-file-loader/dist-cjs/slurpFile.js", "../../../node_modules/@aws-sdk/shared-ini-file-loader/dist-cjs/loadSharedConfigFiles.js", "../../../node_modules/@aws-sdk/shared-ini-file-loader/dist-cjs/getSsoSessionData.js", "../../../node_modules/@aws-sdk/shared-ini-file-loader/dist-cjs/loadSsoSessionData.js", "../../../node_modules/@aws-sdk/shared-ini-file-loader/dist-cjs/parseKnownFiles.js", "../../../node_modules/@aws-sdk/shared-ini-file-loader/dist-cjs/types.js", "../../../node_modules/@aws-sdk/shared-ini-file-loader/dist-cjs/index.js", "../../../node_modules/@aws-sdk/credential-provider-imds/dist-cjs/remoteProvider/httpRequest.js", "../../../node_modules/@aws-sdk/credential-provider-imds/dist-cjs/remoteProvider/ImdsCredentials.js", "../../../node_modules/@aws-sdk/credential-provider-imds/dist-cjs/remoteProvider/RemoteProviderInit.js", "../../../node_modules/@aws-sdk/credential-provider-imds/dist-cjs/remoteProvider/retry.js", "../../../node_modules/@aws-sdk/credential-provider-imds/dist-cjs/fromContainerMetadata.js", "../../../node_modules/@aws-sdk/node-config-provider/dist-cjs/fromEnv.js", "../../../node_modules/@aws-sdk/node-config-provider/dist-cjs/fromSharedConfigFiles.js", "../../../node_modules/@aws-sdk/node-config-provider/dist-cjs/fromStatic.js", "../../../node_modules/@aws-sdk/node-config-provider/dist-cjs/configLoader.js", "../../../node_modules/@aws-sdk/node-config-provider/dist-cjs/index.js", "../../../node_modules/@aws-sdk/credential-provider-imds/dist-cjs/config/Endpoint.js", "../../../node_modules/@aws-sdk/credential-provider-imds/dist-cjs/config/EndpointConfigOptions.js", "../../../node_modules/@aws-sdk/credential-provider-imds/dist-cjs/config/EndpointMode.js", "../../../node_modules/@aws-sdk/credential-provider-imds/dist-cjs/config/EndpointModeConfigOptions.js", "../../../node_modules/@aws-sdk/credential-provider-imds/dist-cjs/utils/getInstanceMetadataEndpoint.js", "../../../node_modules/@aws-sdk/credential-provider-imds/dist-cjs/utils/getExtendedInstanceMetadataCredentials.js", "../../../node_modules/@aws-sdk/credential-provider-imds/dist-cjs/utils/staticStabilityProvider.js", "../../../node_modules/@aws-sdk/credential-provider-imds/dist-cjs/fromInstanceMetadata.js", "../../../node_modules/@aws-sdk/credential-provider-imds/dist-cjs/types.js", "../../../node_modules/@aws-sdk/credential-provider-imds/dist-cjs/index.js", "../../../node_modules/@aws-sdk/credential-provider-ini/dist-cjs/resolveCredentialSource.js", "../../../node_modules/@aws-sdk/credential-provider-ini/dist-cjs/resolveAssumeRoleCredentials.js", "../../../node_modules/@aws-sdk/credential-provider-process/dist-cjs/getValidatedProcessCredentials.js", "../../../node_modules/@aws-sdk/credential-provider-process/dist-cjs/resolveProcessCredentials.js", "../../../node_modules/@aws-sdk/credential-provider-process/dist-cjs/fromProcess.js", "../../../node_modules/@aws-sdk/credential-provider-process/dist-cjs/index.js", "../../../node_modules/@aws-sdk/credential-provider-ini/dist-cjs/resolveProcessCredentials.js", "../../../node_modules/@aws-sdk/credential-provider-sso/dist-cjs/isSsoProfile.js", "../../../node_modules/@aws-sdk/client-sso/dist-cjs/models/SSOServiceException.js", "../../../node_modules/@aws-sdk/client-sso/dist-cjs/models/models_0.js", "../../../node_modules/@aws-sdk/client-sso/dist-cjs/protocols/Aws_restJson1.js", "../../../node_modules/@aws-sdk/client-sso/dist-cjs/commands/GetRoleCredentialsCommand.js", "../../../node_modules/@aws-sdk/client-sso/dist-cjs/commands/ListAccountRolesCommand.js", "../../../node_modules/@aws-sdk/client-sso/dist-cjs/commands/ListAccountsCommand.js", "../../../node_modules/@aws-sdk/client-sso/dist-cjs/commands/LogoutCommand.js", "../../../node_modules/@aws-sdk/client-sso/dist-cjs/endpoint/EndpointParameters.js", "../../../node_modules/@aws-sdk/hash-node/dist-cjs/index.js", "../../../node_modules/@aws-sdk/querystring-builder/dist-cjs/index.js", "../../../node_modules/@aws-sdk/node-http-handler/dist-cjs/constants.js", "../../../node_modules/@aws-sdk/node-http-handler/dist-cjs/get-transformed-headers.js", "../../../node_modules/@aws-sdk/node-http-handler/dist-cjs/set-connection-timeout.js", "../../../node_modules/@aws-sdk/node-http-handler/dist-cjs/set-socket-timeout.js", "../../../node_modules/@aws-sdk/node-http-handler/dist-cjs/write-request-body.js", "../../../node_modules/@aws-sdk/node-http-handler/dist-cjs/node-http-handler.js", "../../../node_modules/@aws-sdk/node-http-handler/dist-cjs/node-http2-handler.js", "../../../node_modules/@aws-sdk/node-http-handler/dist-cjs/stream-collector/collector.js", "../../../node_modules/@aws-sdk/node-http-handler/dist-cjs/stream-collector/index.js", "../../../node_modules/@aws-sdk/node-http-handler/dist-cjs/index.js", "../../../node_modules/@aws-sdk/util-body-length-node/dist-cjs/calculateBodyLength.js", "../../../node_modules/@aws-sdk/util-body-length-node/dist-cjs/index.js", "../../../node_modules/@aws-sdk/util-user-agent-node/dist-cjs/is-crt-available.js", "../../../node_modules/@aws-sdk/util-user-agent-node/dist-cjs/index.js", "../../../node_modules/@aws-sdk/util-base64/dist-cjs/fromBase64.js", "../../../node_modules/@aws-sdk/util-base64/dist-cjs/toBase64.js", "../../../node_modules/@aws-sdk/util-base64/dist-cjs/index.js", "../../../node_modules/@aws-sdk/util-endpoints/dist-cjs/lib/aws/partition.js", "../../../node_modules/@aws-sdk/util-endpoints/dist-cjs/debug/debugId.js", "../../../node_modules/@aws-sdk/util-endpoints/dist-cjs/debug/toDebugString.js", "../../../node_modules/@aws-sdk/util-endpoints/dist-cjs/debug/index.js", "../../../node_modules/@aws-sdk/util-endpoints/dist-cjs/types/EndpointError.js", "../../../node_modules/@aws-sdk/util-endpoints/dist-cjs/types/EndpointRuleObject.js", "../../../node_modules/@aws-sdk/util-endpoints/dist-cjs/types/ErrorRuleObject.js", "../../../node_modules/@aws-sdk/util-endpoints/dist-cjs/types/RuleSetObject.js", "../../../node_modules/@aws-sdk/util-endpoints/dist-cjs/types/TreeRuleObject.js", "../../../node_modules/@aws-sdk/util-endpoints/dist-cjs/types/shared.js", "../../../node_modules/@aws-sdk/util-endpoints/dist-cjs/types/index.js", "../../../node_modules/@aws-sdk/util-endpoints/dist-cjs/lib/isIpAddress.js", "../../../node_modules/@aws-sdk/util-endpoints/dist-cjs/lib/isValidHostLabel.js", "../../../node_modules/@aws-sdk/util-endpoints/dist-cjs/lib/aws/isVirtualHostableS3Bucket.js", "../../../node_modules/@aws-sdk/util-endpoints/dist-cjs/lib/aws/parseArn.js", "../../../node_modules/@aws-sdk/util-endpoints/dist-cjs/lib/aws/index.js", "../../../node_modules/@aws-sdk/util-endpoints/dist-cjs/lib/booleanEquals.js", "../../../node_modules/@aws-sdk/util-endpoints/dist-cjs/lib/getAttrPathList.js", "../../../node_modules/@aws-sdk/util-endpoints/dist-cjs/lib/getAttr.js", "../../../node_modules/@aws-sdk/util-endpoints/dist-cjs/lib/isSet.js", "../../../node_modules/@aws-sdk/util-endpoints/dist-cjs/lib/not.js", "../../../node_modules/@aws-sdk/types/dist-cjs/abort.js", "../../../node_modules/@aws-sdk/types/dist-cjs/auth.js", "../../../node_modules/@aws-sdk/types/dist-cjs/checksum.js", "../../../node_modules/@aws-sdk/types/dist-cjs/client.js", "../../../node_modules/@aws-sdk/types/dist-cjs/command.js", "../../../node_modules/@aws-sdk/types/dist-cjs/credentials.js", "../../../node_modules/@aws-sdk/types/dist-cjs/crypto.js", "../../../node_modules/@aws-sdk/types/dist-cjs/dns.js", "../../../node_modules/@aws-sdk/types/dist-cjs/endpoint.js", "../../../node_modules/@aws-sdk/types/dist-cjs/eventStream.js", "../../../node_modules/@aws-sdk/types/dist-cjs/http.js", "../../../node_modules/@aws-sdk/types/dist-cjs/identity/AnonymousIdentity.js", "../../../node_modules/@aws-sdk/types/dist-cjs/identity/AwsCredentialIdentity.js", "../../../node_modules/@aws-sdk/types/dist-cjs/identity/Identity.js", "../../../node_modules/@aws-sdk/types/dist-cjs/identity/LoginIdentity.js", "../../../node_modules/@aws-sdk/types/dist-cjs/identity/TokenIdentity.js", "../../../node_modules/@aws-sdk/types/dist-cjs/identity/index.js", "../../../node_modules/@aws-sdk/types/dist-cjs/logger.js", "../../../node_modules/@aws-sdk/types/dist-cjs/middleware.js", "../../../node_modules/@aws-sdk/types/dist-cjs/pagination.js", "../../../node_modules/@aws-sdk/types/dist-cjs/profile.js", "../../../node_modules/@aws-sdk/types/dist-cjs/request.js", "../../../node_modules/@aws-sdk/types/dist-cjs/response.js", "../../../node_modules/@aws-sdk/types/dist-cjs/retry.js", "../../../node_modules/@aws-sdk/types/dist-cjs/serde.js", "../../../node_modules/@aws-sdk/types/dist-cjs/shapes.js", "../../../node_modules/@aws-sdk/types/dist-cjs/signature.js", "../../../node_modules/@aws-sdk/types/dist-cjs/stream.js", "../../../node_modules/@aws-sdk/types/dist-cjs/token.js", "../../../node_modules/@aws-sdk/types/dist-cjs/transfer.js", "../../../node_modules/@aws-sdk/types/dist-cjs/util.js", "../../../node_modules/@aws-sdk/types/dist-cjs/waiter.js", "../../../node_modules/@aws-sdk/types/dist-cjs/index.js", "../../../node_modules/@aws-sdk/util-endpoints/dist-cjs/lib/parseURL.js", "../../../node_modules/@aws-sdk/util-endpoints/dist-cjs/lib/stringEquals.js", "../../../node_modules/@aws-sdk/util-endpoints/dist-cjs/lib/substring.js", "../../../node_modules/@aws-sdk/util-endpoints/dist-cjs/lib/uriEncode.js", "../../../node_modules/@aws-sdk/util-endpoints/dist-cjs/lib/index.js", "../../../node_modules/@aws-sdk/util-endpoints/dist-cjs/utils/evaluateTemplate.js", "../../../node_modules/@aws-sdk/util-endpoints/dist-cjs/utils/getReferenceValue.js", "../../../node_modules/@aws-sdk/util-endpoints/dist-cjs/utils/evaluateExpression.js", "../../../node_modules/@aws-sdk/util-endpoints/dist-cjs/utils/callFunction.js", "../../../node_modules/@aws-sdk/util-endpoints/dist-cjs/utils/evaluateCondition.js", "../../../node_modules/@aws-sdk/util-endpoints/dist-cjs/utils/evaluateConditions.js", "../../../node_modules/@aws-sdk/util-endpoints/dist-cjs/utils/getEndpointHeaders.js", "../../../node_modules/@aws-sdk/util-endpoints/dist-cjs/utils/getEndpointProperty.js", "../../../node_modules/@aws-sdk/util-endpoints/dist-cjs/utils/getEndpointProperties.js", "../../../node_modules/@aws-sdk/util-endpoints/dist-cjs/utils/getEndpointUrl.js", "../../../node_modules/@aws-sdk/util-endpoints/dist-cjs/utils/evaluateEndpointRule.js", "../../../node_modules/@aws-sdk/util-endpoints/dist-cjs/utils/evaluateErrorRule.js", "../../../node_modules/@aws-sdk/util-endpoints/dist-cjs/utils/evaluateTreeRule.js", "../../../node_modules/@aws-sdk/util-endpoints/dist-cjs/utils/evaluateRules.js", "../../../node_modules/@aws-sdk/util-endpoints/dist-cjs/utils/index.js", "../../../node_modules/@aws-sdk/util-endpoints/dist-cjs/resolveEndpoint.js", "../../../node_modules/@aws-sdk/util-endpoints/dist-cjs/index.js", "../../../node_modules/@aws-sdk/client-sso/dist-cjs/endpoint/ruleset.js", "../../../node_modules/@aws-sdk/client-sso/dist-cjs/endpoint/endpointResolver.js", "../../../node_modules/@aws-sdk/client-sso/dist-cjs/runtimeConfig.shared.js", "../../../node_modules/@aws-sdk/util-defaults-mode-node/dist-cjs/constants.js", "../../../node_modules/@aws-sdk/util-defaults-mode-node/dist-cjs/defaultsModeConfig.js", "../../../node_modules/@aws-sdk/util-defaults-mode-node/dist-cjs/resolveDefaultsModeConfig.js", "../../../node_modules/@aws-sdk/util-defaults-mode-node/dist-cjs/index.js", "../../../node_modules/@aws-sdk/client-sso/dist-cjs/runtimeConfig.js", "../../../node_modules/@aws-sdk/client-sso/dist-cjs/SSOClient.js", "../../../node_modules/@aws-sdk/client-sso/dist-cjs/SSO.js", "../../../node_modules/@aws-sdk/client-sso/dist-cjs/commands/index.js", "../../../node_modules/@aws-sdk/client-sso/dist-cjs/models/index.js", "../../../node_modules/@aws-sdk/client-sso/dist-cjs/pagination/Interfaces.js", "../../../node_modules/@aws-sdk/client-sso/dist-cjs/pagination/ListAccountRolesPaginator.js", "../../../node_modules/@aws-sdk/client-sso/dist-cjs/pagination/ListAccountsPaginator.js", "../../../node_modules/@aws-sdk/client-sso/dist-cjs/pagination/index.js", "../../../node_modules/@aws-sdk/client-sso/dist-cjs/index.js", "../../../node_modules/@aws-sdk/token-providers/dist-cjs/constants.js", "../../../node_modules/@aws-sdk/client-sso-oidc/dist-cjs/models/SSOOIDCServiceException.js", "../../../node_modules/@aws-sdk/client-sso-oidc/dist-cjs/models/models_0.js", "../../../node_modules/@aws-sdk/client-sso-oidc/dist-cjs/protocols/Aws_restJson1.js", "../../../node_modules/@aws-sdk/client-sso-oidc/dist-cjs/commands/CreateTokenCommand.js", "../../../node_modules/@aws-sdk/client-sso-oidc/dist-cjs/commands/RegisterClientCommand.js", "../../../node_modules/@aws-sdk/client-sso-oidc/dist-cjs/commands/StartDeviceAuthorizationCommand.js", "../../../node_modules/@aws-sdk/client-sso-oidc/dist-cjs/endpoint/EndpointParameters.js", "../../../node_modules/@aws-sdk/client-sso-oidc/dist-cjs/endpoint/ruleset.js", "../../../node_modules/@aws-sdk/client-sso-oidc/dist-cjs/endpoint/endpointResolver.js", "../../../node_modules/@aws-sdk/client-sso-oidc/dist-cjs/runtimeConfig.shared.js", "../../../node_modules/@aws-sdk/client-sso-oidc/dist-cjs/runtimeConfig.js", "../../../node_modules/@aws-sdk/client-sso-oidc/dist-cjs/SSOOIDCClient.js", "../../../node_modules/@aws-sdk/client-sso-oidc/dist-cjs/SSOOIDC.js", "../../../node_modules/@aws-sdk/client-sso-oidc/dist-cjs/commands/index.js", "../../../node_modules/@aws-sdk/client-sso-oidc/dist-cjs/models/index.js", "../../../node_modules/@aws-sdk/client-sso-oidc/dist-cjs/index.js", "../../../node_modules/@aws-sdk/token-providers/dist-cjs/getSsoOidcClient.js", "../../../node_modules/@aws-sdk/token-providers/dist-cjs/getNewSsoOidcToken.js", "../../../node_modules/@aws-sdk/token-providers/dist-cjs/validateTokenExpiry.js", "../../../node_modules/@aws-sdk/token-providers/dist-cjs/validateTokenKey.js", "../../../node_modules/@aws-sdk/token-providers/dist-cjs/writeSSOTokenToFile.js", "../../../node_modules/@aws-sdk/token-providers/dist-cjs/fromSso.js", "../../../node_modules/@aws-sdk/token-providers/dist-cjs/fromStatic.js", "../../../node_modules/@aws-sdk/token-providers/dist-cjs/nodeProvider.js", "../../../node_modules/@aws-sdk/token-providers/dist-cjs/index.js", "../../../node_modules/@aws-sdk/credential-provider-sso/dist-cjs/resolveSSOCredentials.js", "../../../node_modules/@aws-sdk/credential-provider-sso/dist-cjs/validateSsoProfile.js", "../../../node_modules/@aws-sdk/credential-provider-sso/dist-cjs/fromSSO.js", "../../../node_modules/@aws-sdk/credential-provider-sso/dist-cjs/types.js", "../../../node_modules/@aws-sdk/credential-provider-sso/dist-cjs/index.js", "../../../node_modules/@aws-sdk/credential-provider-ini/dist-cjs/resolveSsoCredentials.js", "../../../node_modules/@aws-sdk/credential-provider-ini/dist-cjs/resolveStaticCredentials.js", "../../../node_modules/@aws-sdk/credential-provider-web-identity/dist-cjs/fromWebToken.js", "../../../node_modules/@aws-sdk/credential-provider-web-identity/dist-cjs/fromTokenFile.js", "../../../node_modules/@aws-sdk/credential-provider-web-identity/dist-cjs/index.js", "../../../node_modules/@aws-sdk/credential-provider-ini/dist-cjs/resolveWebIdentityCredentials.js", "../../../node_modules/@aws-sdk/credential-provider-ini/dist-cjs/resolveProfileData.js", "../../../node_modules/@aws-sdk/credential-provider-ini/dist-cjs/fromIni.js", "../../../node_modules/@aws-sdk/credential-provider-ini/dist-cjs/index.js", "../../../node_modules/@aws-sdk/credential-provider-node/dist-cjs/remoteProvider.js", "../../../node_modules/@aws-sdk/credential-provider-node/dist-cjs/defaultProvider.js", "../../../node_modules/@aws-sdk/credential-provider-node/dist-cjs/index.js", "../../../node_modules/@aws-sdk/client-sts/dist-cjs/endpoint/ruleset.js", "../../../node_modules/@aws-sdk/client-sts/dist-cjs/endpoint/endpointResolver.js", "../../../node_modules/@aws-sdk/client-sts/dist-cjs/runtimeConfig.shared.js", "../../../node_modules/@aws-sdk/client-sts/dist-cjs/runtimeConfig.js", "../../../node_modules/@aws-sdk/client-sts/dist-cjs/STSClient.js", "../../../node_modules/@aws-sdk/client-sts/dist-cjs/STS.js", "../../../node_modules/@aws-sdk/client-sts/dist-cjs/commands/index.js", "../../../node_modules/@aws-sdk/client-sts/dist-cjs/defaultRoleAssumers.js", "../../../node_modules/@aws-sdk/client-sts/dist-cjs/models/index.js", "../../../node_modules/@aws-sdk/client-sts/dist-cjs/index.js", "../../../node_modules/@aws-sdk/client-cognito-identity/dist-cjs/endpoint/ruleset.js", "../../../node_modules/@aws-sdk/client-cognito-identity/dist-cjs/endpoint/endpointResolver.js", "../../../node_modules/@aws-sdk/client-cognito-identity/dist-cjs/runtimeConfig.shared.js", "../../../node_modules/@aws-sdk/client-cognito-identity/dist-cjs/runtimeConfig.js", "../../../node_modules/@aws-sdk/client-cognito-identity/dist-cjs/CognitoIdentityClient.js", "../../../node_modules/@aws-sdk/client-cognito-identity/dist-cjs/models/CognitoIdentityServiceException.js", "../../../node_modules/@aws-sdk/client-cognito-identity/dist-cjs/models/models_0.js", "../../../node_modules/@aws-sdk/client-cognito-identity/dist-cjs/protocols/Aws_json1_1.js", "../../../node_modules/@aws-sdk/client-cognito-identity/dist-cjs/commands/CreateIdentityPoolCommand.js", "../../../node_modules/@aws-sdk/client-cognito-identity/dist-cjs/commands/DeleteIdentitiesCommand.js", "../../../node_modules/@aws-sdk/client-cognito-identity/dist-cjs/commands/DeleteIdentityPoolCommand.js", "../../../node_modules/@aws-sdk/client-cognito-identity/dist-cjs/commands/DescribeIdentityCommand.js", "../../../node_modules/@aws-sdk/client-cognito-identity/dist-cjs/commands/DescribeIdentityPoolCommand.js", "../../../node_modules/@aws-sdk/client-cognito-identity/dist-cjs/commands/GetCredentialsForIdentityCommand.js", "../../../node_modules/@aws-sdk/client-cognito-identity/dist-cjs/commands/GetIdCommand.js", "../../../node_modules/@aws-sdk/client-cognito-identity/dist-cjs/commands/GetIdentityPoolRolesCommand.js", "../../../node_modules/@aws-sdk/client-cognito-identity/dist-cjs/commands/GetOpenIdTokenCommand.js", "../../../node_modules/@aws-sdk/client-cognito-identity/dist-cjs/commands/GetOpenIdTokenForDeveloperIdentityCommand.js", "../../../node_modules/@aws-sdk/client-cognito-identity/dist-cjs/commands/GetPrincipalTagAttributeMapCommand.js", "../../../node_modules/@aws-sdk/client-cognito-identity/dist-cjs/commands/ListIdentitiesCommand.js", "../../../node_modules/@aws-sdk/client-cognito-identity/dist-cjs/commands/ListIdentityPoolsCommand.js", "../../../node_modules/@aws-sdk/client-cognito-identity/dist-cjs/commands/ListTagsForResourceCommand.js", "../../../node_modules/@aws-sdk/client-cognito-identity/dist-cjs/commands/LookupDeveloperIdentityCommand.js", "../../../node_modules/@aws-sdk/client-cognito-identity/dist-cjs/commands/MergeDeveloperIdentitiesCommand.js", "../../../node_modules/@aws-sdk/client-cognito-identity/dist-cjs/commands/SetIdentityPoolRolesCommand.js", "../../../node_modules/@aws-sdk/client-cognito-identity/dist-cjs/commands/SetPrincipalTagAttributeMapCommand.js", "../../../node_modules/@aws-sdk/client-cognito-identity/dist-cjs/commands/TagResourceCommand.js", "../../../node_modules/@aws-sdk/client-cognito-identity/dist-cjs/commands/UnlinkDeveloperIdentityCommand.js", "../../../node_modules/@aws-sdk/client-cognito-identity/dist-cjs/commands/UnlinkIdentityCommand.js", "../../../node_modules/@aws-sdk/client-cognito-identity/dist-cjs/commands/UntagResourceCommand.js", "../../../node_modules/@aws-sdk/client-cognito-identity/dist-cjs/commands/UpdateIdentityPoolCommand.js", "../../../node_modules/@aws-sdk/client-cognito-identity/dist-cjs/CognitoIdentity.js", "../../../node_modules/@aws-sdk/client-cognito-identity/dist-cjs/commands/index.js", "../../../node_modules/@aws-sdk/client-cognito-identity/dist-cjs/models/index.js", "../../../node_modules/@aws-sdk/client-cognito-identity/dist-cjs/pagination/Interfaces.js", "../../../node_modules/@aws-sdk/client-cognito-identity/dist-cjs/pagination/ListIdentityPoolsPaginator.js", "../../../node_modules/@aws-sdk/client-cognito-identity/dist-cjs/pagination/index.js", "../../../node_modules/@aws-sdk/client-cognito-identity/dist-cjs/index.js", "../../../node_modules/@aws-sdk/credential-provider-cognito-identity/dist-cjs/CognitoProviderParameters.js", "../../../node_modules/@aws-sdk/credential-provider-cognito-identity/dist-cjs/Logins.js", "../../../node_modules/@aws-sdk/credential-provider-cognito-identity/dist-cjs/Storage.js", "../../../node_modules/@aws-sdk/credential-provider-cognito-identity/dist-cjs/resolveLogins.js", "../../../node_modules/@aws-sdk/credential-provider-cognito-identity/dist-cjs/fromCognitoIdentity.js", "../../../node_modules/@aws-sdk/credential-provider-cognito-identity/dist-cjs/IndexedDbStorage.js", "../../../node_modules/@aws-sdk/credential-provider-cognito-identity/dist-cjs/InMemoryStorage.js", "../../../node_modules/@aws-sdk/credential-provider-cognito-identity/dist-cjs/localStorage.js", "../../../node_modules/@aws-sdk/credential-provider-cognito-identity/dist-cjs/fromCognitoIdentityPool.js", "../../../node_modules/@aws-sdk/credential-provider-cognito-identity/dist-cjs/index.js", "../../../node_modules/@aws-sdk/credential-providers/dist-cjs/fromCognitoIdentity.js", "../../../node_modules/@aws-sdk/credential-providers/dist-cjs/fromCognitoIdentityPool.js", "../../../node_modules/@aws-sdk/credential-providers/dist-cjs/fromContainerMetadata.js", "../../../node_modules/@aws-sdk/credential-providers/dist-cjs/fromEnv.js", "../../../node_modules/@aws-sdk/credential-providers/dist-cjs/fromIni.js", "../../../node_modules/@aws-sdk/credential-providers/dist-cjs/fromInstanceMetadata.js", "../../../node_modules/@aws-sdk/credential-providers/dist-cjs/fromNodeProviderChain.js", "../../../node_modules/@aws-sdk/credential-providers/dist-cjs/fromProcess.js", "../../../node_modules/@aws-sdk/credential-providers/dist-cjs/fromSSO.js", "../../../node_modules/@aws-sdk/credential-providers/dist-cjs/fromTemporaryCredentials.js", "../../../node_modules/@aws-sdk/credential-providers/dist-cjs/fromTokenFile.js", "../../../node_modules/@aws-sdk/credential-providers/dist-cjs/fromWebToken.js", "../../../node_modules/@aws-sdk/credential-providers/dist-cjs/index.js", "../../../node_modules/@aws-sdk/client-secrets-manager/dist-cjs/models/SecretsManagerServiceException.js", "../../../node_modules/@aws-sdk/client-secrets-manager/dist-cjs/models/models_0.js", "../../../node_modules/@aws-sdk/client-secrets-manager/dist-cjs/protocols/Aws_json1_1.js", "../../../node_modules/@aws-sdk/client-secrets-manager/dist-cjs/commands/CancelRotateSecretCommand.js", "../../../node_modules/@aws-sdk/client-secrets-manager/dist-cjs/commands/CreateSecretCommand.js", "../../../node_modules/@aws-sdk/client-secrets-manager/dist-cjs/commands/DeleteResourcePolicyCommand.js", "../../../node_modules/@aws-sdk/client-secrets-manager/dist-cjs/commands/DeleteSecretCommand.js", "../../../node_modules/@aws-sdk/client-secrets-manager/dist-cjs/commands/DescribeSecretCommand.js", "../../../node_modules/@aws-sdk/client-secrets-manager/dist-cjs/commands/GetRandomPasswordCommand.js", "../../../node_modules/@aws-sdk/client-secrets-manager/dist-cjs/commands/GetResourcePolicyCommand.js", "../../../node_modules/@aws-sdk/client-secrets-manager/dist-cjs/commands/GetSecretValueCommand.js", "../../../node_modules/@aws-sdk/client-secrets-manager/dist-cjs/commands/ListSecretsCommand.js", "../../../node_modules/@aws-sdk/client-secrets-manager/dist-cjs/commands/ListSecretVersionIdsCommand.js", "../../../node_modules/@aws-sdk/client-secrets-manager/dist-cjs/commands/PutResourcePolicyCommand.js", "../../../node_modules/@aws-sdk/client-secrets-manager/dist-cjs/commands/PutSecretValueCommand.js", "../../../node_modules/@aws-sdk/client-secrets-manager/dist-cjs/commands/RemoveRegionsFromReplicationCommand.js", "../../../node_modules/@aws-sdk/client-secrets-manager/dist-cjs/commands/ReplicateSecretToRegionsCommand.js", "../../../node_modules/@aws-sdk/client-secrets-manager/dist-cjs/commands/RestoreSecretCommand.js", "../../../node_modules/@aws-sdk/client-secrets-manager/dist-cjs/commands/RotateSecretCommand.js", "../../../node_modules/@aws-sdk/client-secrets-manager/dist-cjs/commands/StopReplicationToReplicaCommand.js", "../../../node_modules/@aws-sdk/client-secrets-manager/dist-cjs/commands/TagResourceCommand.js", "../../../node_modules/@aws-sdk/client-secrets-manager/dist-cjs/commands/UntagResourceCommand.js", "../../../node_modules/@aws-sdk/client-secrets-manager/dist-cjs/commands/UpdateSecretCommand.js", "../../../node_modules/@aws-sdk/client-secrets-manager/dist-cjs/commands/UpdateSecretVersionStageCommand.js", "../../../node_modules/@aws-sdk/client-secrets-manager/dist-cjs/commands/ValidateResourcePolicyCommand.js", "../../../node_modules/@aws-sdk/client-secrets-manager/dist-cjs/endpoint/EndpointParameters.js", "../../../node_modules/@aws-sdk/client-secrets-manager/dist-cjs/endpoint/ruleset.js", "../../../node_modules/@aws-sdk/client-secrets-manager/dist-cjs/endpoint/endpointResolver.js", "../../../node_modules/@aws-sdk/client-secrets-manager/dist-cjs/runtimeConfig.shared.js", "../../../node_modules/@aws-sdk/client-secrets-manager/dist-cjs/runtimeConfig.js", "../../../node_modules/@aws-sdk/client-secrets-manager/dist-cjs/SecretsManagerClient.js", "../../../node_modules/@aws-sdk/client-secrets-manager/dist-cjs/SecretsManager.js", "../../../node_modules/@aws-sdk/client-secrets-manager/dist-cjs/commands/index.js", "../../../node_modules/@aws-sdk/client-secrets-manager/dist-cjs/models/index.js", "../../../node_modules/@aws-sdk/client-secrets-manager/dist-cjs/pagination/Interfaces.js", "../../../node_modules/@aws-sdk/client-secrets-manager/dist-cjs/pagination/ListSecretVersionIdsPaginator.js", "../../../node_modules/@aws-sdk/client-secrets-manager/dist-cjs/pagination/ListSecretsPaginator.js", "../../../node_modules/@aws-sdk/client-secrets-manager/dist-cjs/pagination/index.js", "../../../node_modules/@aws-sdk/client-secrets-manager/dist-cjs/index.js", "../../../node_modules/@aws-sdk/client-s3/dist-cjs/models/S3ServiceException.js", "../../../node_modules/@aws-sdk/client-s3/dist-cjs/models/models_0.js", "../../../node_modules/@aws-sdk/xml-builder/dist-cjs/escape-attribute.js", "../../../node_modules/@aws-sdk/xml-builder/dist-cjs/escape-element.js", "../../../node_modules/@aws-sdk/xml-builder/dist-cjs/XmlText.js", "../../../node_modules/@aws-sdk/xml-builder/dist-cjs/XmlNode.js", "../../../node_modules/@aws-sdk/xml-builder/dist-cjs/index.js", "../../../node_modules/@aws-sdk/client-s3/dist-cjs/models/models_1.js", "../../../node_modules/@aws-sdk/client-s3/dist-cjs/protocols/Aws_restXml.js", "../../../node_modules/@aws-sdk/client-s3/dist-cjs/commands/AbortMultipartUploadCommand.js", "../../../node_modules/@aws-sdk/middleware-sdk-s3/dist-cjs/check-content-length-header.js", "../../../node_modules/@aws-sdk/middleware-sdk-s3/dist-cjs/configuration.js", "../../../node_modules/@aws-sdk/middleware-sdk-s3/dist-cjs/throw-200-exceptions.js", "../../../node_modules/@aws-sdk/util-arn-parser/dist-cjs/index.js", "../../../node_modules/@aws-sdk/middleware-sdk-s3/dist-cjs/validate-bucket-name.js", "../../../node_modules/@aws-sdk/middleware-sdk-s3/dist-cjs/index.js", "../../../node_modules/@aws-sdk/middleware-ssec/dist-cjs/index.js", "../../../node_modules/@aws-sdk/client-s3/dist-cjs/commands/CompleteMultipartUploadCommand.js", "../../../node_modules/@aws-sdk/client-s3/dist-cjs/commands/CopyObjectCommand.js", "../../../node_modules/@aws-sdk/middleware-location-constraint/dist-cjs/index.js", "../../../node_modules/@aws-sdk/client-s3/dist-cjs/commands/CreateBucketCommand.js", "../../../node_modules/@aws-sdk/client-s3/dist-cjs/commands/CreateMultipartUploadCommand.js", "../../../node_modules/@aws-sdk/client-s3/dist-cjs/commands/DeleteBucketAnalyticsConfigurationCommand.js", "../../../node_modules/@aws-sdk/client-s3/dist-cjs/commands/DeleteBucketCommand.js", "../../../node_modules/@aws-sdk/client-s3/dist-cjs/commands/DeleteBucketCorsCommand.js", "../../../node_modules/@aws-sdk/client-s3/dist-cjs/commands/DeleteBucketEncryptionCommand.js", "../../../node_modules/@aws-sdk/client-s3/dist-cjs/commands/DeleteBucketIntelligentTieringConfigurationCommand.js", "../../../node_modules/@aws-sdk/client-s3/dist-cjs/commands/DeleteBucketInventoryConfigurationCommand.js", "../../../node_modules/@aws-sdk/client-s3/dist-cjs/commands/DeleteBucketLifecycleCommand.js", "../../../node_modules/@aws-sdk/client-s3/dist-cjs/commands/DeleteBucketMetricsConfigurationCommand.js", "../../../node_modules/@aws-sdk/client-s3/dist-cjs/commands/DeleteBucketOwnershipControlsCommand.js", "../../../node_modules/@aws-sdk/client-s3/dist-cjs/commands/DeleteBucketPolicyCommand.js", "../../../node_modules/@aws-sdk/client-s3/dist-cjs/commands/DeleteBucketReplicationCommand.js", "../../../node_modules/@aws-sdk/client-s3/dist-cjs/commands/DeleteBucketTaggingCommand.js", "../../../node_modules/@aws-sdk/client-s3/dist-cjs/commands/DeleteBucketWebsiteCommand.js", "../../../node_modules/@aws-sdk/client-s3/dist-cjs/commands/DeleteObjectCommand.js", "../../../node_modules/@aws-sdk/middleware-flexible-checksums/dist-cjs/constants.js", "../../../node_modules/@aws-sdk/middleware-flexible-checksums/dist-cjs/types.js", "../../../node_modules/@aws-sdk/middleware-flexible-checksums/dist-cjs/getChecksumAlgorithmForRequest.js", "../../../node_modules/@aws-sdk/middleware-flexible-checksums/dist-cjs/getChecksumLocationName.js", "../../../node_modules/@aws-sdk/middleware-flexible-checksums/dist-cjs/hasHeader.js", "../../../node_modules/@aws-sdk/middleware-flexible-checksums/dist-cjs/isStreaming.js", "../../../node_modules/@aws-crypto/crc32/node_modules/tslib/tslib.js", "../../../node_modules/@aws-sdk/util-utf8-browser/dist-cjs/pureJs.js", "../../../node_modules/@aws-sdk/util-utf8-browser/dist-cjs/whatwgEncodingApi.js", "../../../node_modules/@aws-sdk/util-utf8-browser/dist-cjs/index.js", "../../../node_modules/@aws-crypto/util/src/convertToBuffer.ts", "../../../node_modules/@aws-crypto/util/src/isEmptyData.ts", "../../../node_modules/@aws-crypto/util/src/numToUint8.ts", "../../../node_modules/@aws-crypto/util/src/uint32ArrayFrom.ts", "../../../node_modules/@aws-crypto/util/src/index.ts", "../../../node_modules/@aws-crypto/crc32/src/aws_crc32.ts", "../../../node_modules/@aws-crypto/crc32/src/index.ts", "../../../node_modules/@aws-crypto/crc32c/node_modules/tslib/tslib.js", "../../../node_modules/@aws-crypto/crc32c/src/aws_crc32c.ts", "../../../node_modules/@aws-crypto/crc32c/src/index.ts", "../../../node_modules/@aws-sdk/middleware-flexible-checksums/dist-cjs/selectChecksumAlgorithmFunction.js", "../../../node_modules/@aws-sdk/middleware-flexible-checksums/dist-cjs/stringHasher.js", "../../../node_modules/@aws-sdk/middleware-flexible-checksums/dist-cjs/getChecksum.js", "../../../node_modules/@aws-sdk/middleware-flexible-checksums/dist-cjs/getChecksumAlgorithmListForResponse.js", "../../../node_modules/@aws-sdk/middleware-flexible-checksums/dist-cjs/validateChecksumFromResponse.js", "../../../node_modules/@aws-sdk/middleware-flexible-checksums/dist-cjs/flexibleChecksumsMiddleware.js", "../../../node_modules/@aws-sdk/middleware-flexible-checksums/dist-cjs/getFlexibleChecksumsPlugin.js", "../../../node_modules/@aws-sdk/middleware-flexible-checksums/dist-cjs/index.js", "../../../node_modules/@aws-sdk/client-s3/dist-cjs/commands/DeleteObjectsCommand.js", "../../../node_modules/@aws-sdk/client-s3/dist-cjs/commands/DeleteObjectTaggingCommand.js", "../../../node_modules/@aws-sdk/client-s3/dist-cjs/commands/DeletePublicAccessBlockCommand.js", "../../../node_modules/@aws-sdk/client-s3/dist-cjs/commands/GetBucketAccelerateConfigurationCommand.js", "../../../node_modules/@aws-sdk/client-s3/dist-cjs/commands/GetBucketAclCommand.js", "../../../node_modules/@aws-sdk/client-s3/dist-cjs/commands/GetBucketAnalyticsConfigurationCommand.js", "../../../node_modules/@aws-sdk/client-s3/dist-cjs/commands/GetBucketCorsCommand.js", "../../../node_modules/@aws-sdk/client-s3/dist-cjs/commands/GetBucketEncryptionCommand.js", "../../../node_modules/@aws-sdk/client-s3/dist-cjs/commands/GetBucketIntelligentTieringConfigurationCommand.js", "../../../node_modules/@aws-sdk/client-s3/dist-cjs/commands/GetBucketInventoryConfigurationCommand.js", "../../../node_modules/@aws-sdk/client-s3/dist-cjs/commands/GetBucketLifecycleConfigurationCommand.js", "../../../node_modules/@aws-sdk/client-s3/dist-cjs/commands/GetBucketLocationCommand.js", "../../../node_modules/@aws-sdk/client-s3/dist-cjs/commands/GetBucketLoggingCommand.js", "../../../node_modules/@aws-sdk/client-s3/dist-cjs/commands/GetBucketMetricsConfigurationCommand.js", "../../../node_modules/@aws-sdk/client-s3/dist-cjs/commands/GetBucketNotificationConfigurationCommand.js", "../../../node_modules/@aws-sdk/client-s3/dist-cjs/commands/GetBucketOwnershipControlsCommand.js", "../../../node_modules/@aws-sdk/client-s3/dist-cjs/commands/GetBucketPolicyCommand.js", "../../../node_modules/@aws-sdk/client-s3/dist-cjs/commands/GetBucketPolicyStatusCommand.js", "../../../node_modules/@aws-sdk/client-s3/dist-cjs/commands/GetBucketReplicationCommand.js", "../../../node_modules/@aws-sdk/client-s3/dist-cjs/commands/GetBucketRequestPaymentCommand.js", "../../../node_modules/@aws-sdk/client-s3/dist-cjs/commands/GetBucketTaggingCommand.js", "../../../node_modules/@aws-sdk/client-s3/dist-cjs/commands/GetBucketVersioningCommand.js", "../../../node_modules/@aws-sdk/client-s3/dist-cjs/commands/GetBucketWebsiteCommand.js", "../../../node_modules/@aws-sdk/client-s3/dist-cjs/commands/GetObjectAclCommand.js", "../../../node_modules/@aws-sdk/client-s3/dist-cjs/commands/GetObjectAttributesCommand.js", "../../../node_modules/@aws-sdk/client-s3/dist-cjs/commands/GetObjectCommand.js", "../../../node_modules/@aws-sdk/client-s3/dist-cjs/commands/GetObjectLegalHoldCommand.js", "../../../node_modules/@aws-sdk/client-s3/dist-cjs/commands/GetObjectLockConfigurationCommand.js", "../../../node_modules/@aws-sdk/client-s3/dist-cjs/commands/GetObjectRetentionCommand.js", "../../../node_modules/@aws-sdk/client-s3/dist-cjs/commands/GetObjectTaggingCommand.js", "../../../node_modules/@aws-sdk/client-s3/dist-cjs/commands/GetObjectTorrentCommand.js", "../../../node_modules/@aws-sdk/client-s3/dist-cjs/commands/GetPublicAccessBlockCommand.js", "../../../node_modules/@aws-sdk/client-s3/dist-cjs/commands/HeadBucketCommand.js", "../../../node_modules/@aws-sdk/client-s3/dist-cjs/commands/HeadObjectCommand.js", "../../../node_modules/@aws-sdk/client-s3/dist-cjs/commands/ListBucketAnalyticsConfigurationsCommand.js", "../../../node_modules/@aws-sdk/client-s3/dist-cjs/commands/ListBucketIntelligentTieringConfigurationsCommand.js", "../../../node_modules/@aws-sdk/client-s3/dist-cjs/commands/ListBucketInventoryConfigurationsCommand.js", "../../../node_modules/@aws-sdk/client-s3/dist-cjs/commands/ListBucketMetricsConfigurationsCommand.js", "../../../node_modules/@aws-sdk/client-s3/dist-cjs/commands/ListBucketsCommand.js", "../../../node_modules/@aws-sdk/client-s3/dist-cjs/commands/ListMultipartUploadsCommand.js", "../../../node_modules/@aws-sdk/client-s3/dist-cjs/commands/ListObjectsCommand.js", "../../../node_modules/@aws-sdk/client-s3/dist-cjs/commands/ListObjectsV2Command.js", "../../../node_modules/@aws-sdk/client-s3/dist-cjs/commands/ListObjectVersionsCommand.js", "../../../node_modules/@aws-sdk/client-s3/dist-cjs/commands/ListPartsCommand.js", "../../../node_modules/@aws-sdk/client-s3/dist-cjs/commands/PutBucketAccelerateConfigurationCommand.js", "../../../node_modules/@aws-sdk/client-s3/dist-cjs/commands/PutBucketAclCommand.js", "../../../node_modules/@aws-sdk/client-s3/dist-cjs/commands/PutBucketAnalyticsConfigurationCommand.js", "../../../node_modules/@aws-sdk/client-s3/dist-cjs/commands/PutBucketCorsCommand.js", "../../../node_modules/@aws-sdk/client-s3/dist-cjs/commands/PutBucketEncryptionCommand.js", "../../../node_modules/@aws-sdk/client-s3/dist-cjs/commands/PutBucketIntelligentTieringConfigurationCommand.js", "../../../node_modules/@aws-sdk/client-s3/dist-cjs/commands/PutBucketInventoryConfigurationCommand.js", "../../../node_modules/@aws-sdk/client-s3/dist-cjs/commands/PutBucketLifecycleConfigurationCommand.js", "../../../node_modules/@aws-sdk/client-s3/dist-cjs/commands/PutBucketLoggingCommand.js", "../../../node_modules/@aws-sdk/client-s3/dist-cjs/commands/PutBucketMetricsConfigurationCommand.js", "../../../node_modules/@aws-sdk/client-s3/dist-cjs/commands/PutBucketNotificationConfigurationCommand.js", "../../../node_modules/@aws-sdk/client-s3/dist-cjs/commands/PutBucketOwnershipControlsCommand.js", "../../../node_modules/@aws-sdk/client-s3/dist-cjs/commands/PutBucketPolicyCommand.js", "../../../node_modules/@aws-sdk/client-s3/dist-cjs/commands/PutBucketReplicationCommand.js", "../../../node_modules/@aws-sdk/client-s3/dist-cjs/commands/PutBucketRequestPaymentCommand.js", "../../../node_modules/@aws-sdk/client-s3/dist-cjs/commands/PutBucketTaggingCommand.js", "../../../node_modules/@aws-sdk/client-s3/dist-cjs/commands/PutBucketVersioningCommand.js", "../../../node_modules/@aws-sdk/client-s3/dist-cjs/commands/PutBucketWebsiteCommand.js", "../../../node_modules/@aws-sdk/client-s3/dist-cjs/commands/PutObjectAclCommand.js", "../../../node_modules/@aws-sdk/client-s3/dist-cjs/commands/PutObjectCommand.js", "../../../node_modules/@aws-sdk/client-s3/dist-cjs/commands/PutObjectLegalHoldCommand.js", "../../../node_modules/@aws-sdk/client-s3/dist-cjs/commands/PutObjectLockConfigurationCommand.js", "../../../node_modules/@aws-sdk/client-s3/dist-cjs/commands/PutObjectRetentionCommand.js", "../../../node_modules/@aws-sdk/client-s3/dist-cjs/commands/PutObjectTaggingCommand.js", "../../../node_modules/@aws-sdk/client-s3/dist-cjs/commands/PutPublicAccessBlockCommand.js", "../../../node_modules/@aws-sdk/client-s3/dist-cjs/commands/RestoreObjectCommand.js", "../../../node_modules/@aws-sdk/client-s3/dist-cjs/commands/SelectObjectContentCommand.js", "../../../node_modules/@aws-sdk/client-s3/dist-cjs/commands/UploadPartCommand.js", "../../../node_modules/@aws-sdk/client-s3/dist-cjs/commands/UploadPartCopyCommand.js", "../../../node_modules/@aws-sdk/client-s3/dist-cjs/commands/WriteGetObjectResponseCommand.js", "../../../node_modules/@aws-sdk/eventstream-serde-config-resolver/dist-cjs/EventStreamSerdeConfig.js", "../../../node_modules/@aws-sdk/eventstream-serde-config-resolver/dist-cjs/index.js", "../../../node_modules/@aws-sdk/middleware-expect-continue/dist-cjs/index.js", "../../../node_modules/@aws-sdk/client-s3/dist-cjs/endpoint/EndpointParameters.js", "../../../node_modules/@aws-sdk/eventstream-codec/dist-cjs/Int64.js", "../../../node_modules/@aws-sdk/eventstream-codec/dist-cjs/HeaderMarshaller.js", "../../../node_modules/@aws-sdk/eventstream-codec/dist-cjs/splitMessage.js", "../../../node_modules/@aws-sdk/eventstream-codec/dist-cjs/EventStreamCodec.js", "../../../node_modules/@aws-sdk/eventstream-codec/dist-cjs/Message.js", "../../../node_modules/@aws-sdk/eventstream-codec/dist-cjs/index.js", "../../../node_modules/@aws-sdk/eventstream-serde-universal/dist-cjs/getChunkedStream.js", "../../../node_modules/@aws-sdk/eventstream-serde-universal/dist-cjs/getUnmarshalledStream.js", "../../../node_modules/@aws-sdk/eventstream-serde-universal/dist-cjs/EventStreamMarshaller.js", "../../../node_modules/@aws-sdk/eventstream-serde-universal/dist-cjs/provider.js", "../../../node_modules/@aws-sdk/eventstream-serde-universal/dist-cjs/index.js", "../../../node_modules/@aws-sdk/eventstream-serde-node/dist-cjs/utils.js", "../../../node_modules/@aws-sdk/eventstream-serde-node/dist-cjs/EventStreamMarshaller.js", "../../../node_modules/@aws-sdk/eventstream-serde-node/dist-cjs/provider.js", "../../../node_modules/@aws-sdk/eventstream-serde-node/dist-cjs/index.js", "../../../node_modules/@aws-sdk/hash-stream-node/dist-cjs/HashCalculator.js", "../../../node_modules/@aws-sdk/hash-stream-node/dist-cjs/fileStreamHasher.js", "../../../node_modules/@aws-sdk/hash-stream-node/dist-cjs/readableStreamHasher.js", "../../../node_modules/@aws-sdk/hash-stream-node/dist-cjs/index.js", "../../../node_modules/@aws-sdk/middleware-bucket-endpoint/dist-cjs/NodeDisableMultiregionAccessPointConfigOptions.js", "../../../node_modules/@aws-sdk/middleware-bucket-endpoint/dist-cjs/NodeUseArnRegionConfigOptions.js", "../../../node_modules/@aws-sdk/middleware-bucket-endpoint/dist-cjs/bucketHostnameUtils.js", "../../../node_modules/@aws-sdk/middleware-bucket-endpoint/dist-cjs/bucketHostname.js", "../../../node_modules/@aws-sdk/middleware-bucket-endpoint/dist-cjs/bucketEndpointMiddleware.js", "../../../node_modules/@aws-sdk/middleware-bucket-endpoint/dist-cjs/configurations.js", "../../../node_modules/@aws-sdk/middleware-bucket-endpoint/dist-cjs/index.js", "../../../node_modules/@aws-sdk/util-stream-node/dist-cjs/getAwsChunkedEncodingStream.js", "../../../node_modules/@aws-sdk/util-stream-node/dist-cjs/sdk-stream-mixin.js", "../../../node_modules/@aws-sdk/util-stream-node/dist-cjs/index.js", "../../../node_modules/@aws-sdk/signature-v4-multi-region/dist-cjs/SignatureV4MultiRegion.js", "../../../node_modules/@aws-sdk/signature-v4-multi-region/dist-cjs/index.js", "../../../node_modules/@aws-sdk/client-s3/dist-cjs/endpoint/ruleset.js", "../../../node_modules/@aws-sdk/client-s3/dist-cjs/endpoint/endpointResolver.js", "../../../node_modules/@aws-sdk/client-s3/dist-cjs/runtimeConfig.shared.js", "../../../node_modules/@aws-sdk/client-s3/dist-cjs/runtimeConfig.js", "../../../node_modules/@aws-sdk/client-s3/dist-cjs/S3Client.js", "../../../node_modules/@aws-sdk/client-s3/dist-cjs/S3.js", "../../../node_modules/@aws-sdk/client-s3/dist-cjs/commands/index.js", "../../../node_modules/@aws-sdk/client-s3/dist-cjs/models/index.js", "../../../node_modules/@aws-sdk/client-s3/dist-cjs/pagination/Interfaces.js", "../../../node_modules/@aws-sdk/client-s3/dist-cjs/pagination/ListObjectsV2Paginator.js", "../../../node_modules/@aws-sdk/client-s3/dist-cjs/pagination/ListPartsPaginator.js", "../../../node_modules/@aws-sdk/client-s3/dist-cjs/pagination/index.js", "../../../node_modules/@aws-sdk/util-waiter/dist-cjs/utils/sleep.js", "../../../node_modules/@aws-sdk/util-waiter/dist-cjs/waiter.js", "../../../node_modules/@aws-sdk/util-waiter/dist-cjs/poller.js", "../../../node_modules/@aws-sdk/util-waiter/dist-cjs/utils/validate.js", "../../../node_modules/@aws-sdk/util-waiter/dist-cjs/utils/index.js", "../../../node_modules/@aws-sdk/util-waiter/dist-cjs/createWaiter.js", "../../../node_modules/@aws-sdk/util-waiter/dist-cjs/index.js", "../../../node_modules/@aws-sdk/client-s3/dist-cjs/waiters/waitForBucketExists.js", "../../../node_modules/@aws-sdk/client-s3/dist-cjs/waiters/waitForBucketNotExists.js", "../../../node_modules/@aws-sdk/client-s3/dist-cjs/waiters/waitForObjectExists.js", "../../../node_modules/@aws-sdk/client-s3/dist-cjs/waiters/waitForObjectNotExists.js", "../../../node_modules/@aws-sdk/client-s3/dist-cjs/waiters/index.js", "../../../node_modules/@aws-sdk/client-s3/dist-cjs/index.js", "../../../node_modules/@aws-sdk/client-athena/dist-cjs/endpoint/EndpointParameters.js", "../../../node_modules/@aws-sdk/client-athena/dist-cjs/endpoint/ruleset.js", "../../../node_modules/@aws-sdk/client-athena/dist-cjs/endpoint/endpointResolver.js", "../../../node_modules/@aws-sdk/client-athena/dist-cjs/runtimeConfig.shared.js", "../../../node_modules/@aws-sdk/client-athena/dist-cjs/runtimeConfig.js", "../../../node_modules/@aws-sdk/client-athena/dist-cjs/AthenaClient.js", "../../../node_modules/@aws-sdk/client-athena/dist-cjs/models/AthenaServiceException.js", "../../../node_modules/@aws-sdk/client-athena/dist-cjs/models/models_0.js", "../../../node_modules/@aws-sdk/client-athena/dist-cjs/protocols/Aws_json1_1.js", "../../../node_modules/@aws-sdk/client-athena/dist-cjs/commands/BatchGetNamedQueryCommand.js", "../../../node_modules/@aws-sdk/client-athena/dist-cjs/commands/BatchGetPreparedStatementCommand.js", "../../../node_modules/@aws-sdk/client-athena/dist-cjs/commands/BatchGetQueryExecutionCommand.js", "../../../node_modules/@aws-sdk/client-athena/dist-cjs/commands/CreateDataCatalogCommand.js", "../../../node_modules/@aws-sdk/client-athena/dist-cjs/commands/CreateNamedQueryCommand.js", "../../../node_modules/@aws-sdk/client-athena/dist-cjs/commands/CreateNotebookCommand.js", "../../../node_modules/@aws-sdk/client-athena/dist-cjs/commands/CreatePreparedStatementCommand.js", "../../../node_modules/@aws-sdk/client-athena/dist-cjs/commands/CreatePresignedNotebookUrlCommand.js", "../../../node_modules/@aws-sdk/client-athena/dist-cjs/commands/CreateWorkGroupCommand.js", "../../../node_modules/@aws-sdk/client-athena/dist-cjs/commands/DeleteDataCatalogCommand.js", "../../../node_modules/@aws-sdk/client-athena/dist-cjs/commands/DeleteNamedQueryCommand.js", "../../../node_modules/@aws-sdk/client-athena/dist-cjs/commands/DeleteNotebookCommand.js", "../../../node_modules/@aws-sdk/client-athena/dist-cjs/commands/DeletePreparedStatementCommand.js", "../../../node_modules/@aws-sdk/client-athena/dist-cjs/commands/DeleteWorkGroupCommand.js", "../../../node_modules/@aws-sdk/client-athena/dist-cjs/commands/ExportNotebookCommand.js", "../../../node_modules/@aws-sdk/client-athena/dist-cjs/commands/GetCalculationExecutionCodeCommand.js", "../../../node_modules/@aws-sdk/client-athena/dist-cjs/commands/GetCalculationExecutionCommand.js", "../../../node_modules/@aws-sdk/client-athena/dist-cjs/commands/GetCalculationExecutionStatusCommand.js", "../../../node_modules/@aws-sdk/client-athena/dist-cjs/commands/GetDatabaseCommand.js", "../../../node_modules/@aws-sdk/client-athena/dist-cjs/commands/GetDataCatalogCommand.js", "../../../node_modules/@aws-sdk/client-athena/dist-cjs/commands/GetNamedQueryCommand.js", "../../../node_modules/@aws-sdk/client-athena/dist-cjs/commands/GetNotebookMetadataCommand.js", "../../../node_modules/@aws-sdk/client-athena/dist-cjs/commands/GetPreparedStatementCommand.js", "../../../node_modules/@aws-sdk/client-athena/dist-cjs/commands/GetQueryExecutionCommand.js", "../../../node_modules/@aws-sdk/client-athena/dist-cjs/commands/GetQueryResultsCommand.js", "../../../node_modules/@aws-sdk/client-athena/dist-cjs/commands/GetQueryRuntimeStatisticsCommand.js", "../../../node_modules/@aws-sdk/client-athena/dist-cjs/commands/GetSessionCommand.js", "../../../node_modules/@aws-sdk/client-athena/dist-cjs/commands/GetSessionStatusCommand.js", "../../../node_modules/@aws-sdk/client-athena/dist-cjs/commands/GetTableMetadataCommand.js", "../../../node_modules/@aws-sdk/client-athena/dist-cjs/commands/GetWorkGroupCommand.js", "../../../node_modules/@aws-sdk/client-athena/dist-cjs/commands/ImportNotebookCommand.js", "../../../node_modules/@aws-sdk/client-athena/dist-cjs/commands/ListApplicationDPUSizesCommand.js", "../../../node_modules/@aws-sdk/client-athena/dist-cjs/commands/ListCalculationExecutionsCommand.js", "../../../node_modules/@aws-sdk/client-athena/dist-cjs/commands/ListDatabasesCommand.js", "../../../node_modules/@aws-sdk/client-athena/dist-cjs/commands/ListDataCatalogsCommand.js", "../../../node_modules/@aws-sdk/client-athena/dist-cjs/commands/ListEngineVersionsCommand.js", "../../../node_modules/@aws-sdk/client-athena/dist-cjs/commands/ListExecutorsCommand.js", "../../../node_modules/@aws-sdk/client-athena/dist-cjs/commands/ListNamedQueriesCommand.js", "../../../node_modules/@aws-sdk/client-athena/dist-cjs/commands/ListNotebookMetadataCommand.js", "../../../node_modules/@aws-sdk/client-athena/dist-cjs/commands/ListNotebookSessionsCommand.js", "../../../node_modules/@aws-sdk/client-athena/dist-cjs/commands/ListPreparedStatementsCommand.js", "../../../node_modules/@aws-sdk/client-athena/dist-cjs/commands/ListQueryExecutionsCommand.js", "../../../node_modules/@aws-sdk/client-athena/dist-cjs/commands/ListSessionsCommand.js", "../../../node_modules/@aws-sdk/client-athena/dist-cjs/commands/ListTableMetadataCommand.js", "../../../node_modules/@aws-sdk/client-athena/dist-cjs/commands/ListTagsForResourceCommand.js", "../../../node_modules/@aws-sdk/client-athena/dist-cjs/commands/ListWorkGroupsCommand.js", "../../../node_modules/@aws-sdk/client-athena/dist-cjs/commands/StartCalculationExecutionCommand.js", "../../../node_modules/@aws-sdk/client-athena/dist-cjs/commands/StartQueryExecutionCommand.js", "../../../node_modules/@aws-sdk/client-athena/dist-cjs/commands/StartSessionCommand.js", "../../../node_modules/@aws-sdk/client-athena/dist-cjs/commands/StopCalculationExecutionCommand.js", "../../../node_modules/@aws-sdk/client-athena/dist-cjs/commands/StopQueryExecutionCommand.js", "../../../node_modules/@aws-sdk/client-athena/dist-cjs/commands/TagResourceCommand.js", "../../../node_modules/@aws-sdk/client-athena/dist-cjs/commands/TerminateSessionCommand.js", "../../../node_modules/@aws-sdk/client-athena/dist-cjs/commands/UntagResourceCommand.js", "../../../node_modules/@aws-sdk/client-athena/dist-cjs/commands/UpdateDataCatalogCommand.js", "../../../node_modules/@aws-sdk/client-athena/dist-cjs/commands/UpdateNamedQueryCommand.js", "../../../node_modules/@aws-sdk/client-athena/dist-cjs/commands/UpdateNotebookCommand.js", "../../../node_modules/@aws-sdk/client-athena/dist-cjs/commands/UpdateNotebookMetadataCommand.js", "../../../node_modules/@aws-sdk/client-athena/dist-cjs/commands/UpdatePreparedStatementCommand.js", "../../../node_modules/@aws-sdk/client-athena/dist-cjs/commands/UpdateWorkGroupCommand.js", "../../../node_modules/@aws-sdk/client-athena/dist-cjs/Athena.js", "../../../node_modules/@aws-sdk/client-athena/dist-cjs/commands/index.js", "../../../node_modules/@aws-sdk/client-athena/dist-cjs/models/index.js", "../../../node_modules/@aws-sdk/client-athena/dist-cjs/pagination/GetQueryResultsPaginator.js", "../../../node_modules/@aws-sdk/client-athena/dist-cjs/pagination/Interfaces.js", "../../../node_modules/@aws-sdk/client-athena/dist-cjs/pagination/ListApplicationDPUSizesPaginator.js", "../../../node_modules/@aws-sdk/client-athena/dist-cjs/pagination/ListCalculationExecutionsPaginator.js", "../../../node_modules/@aws-sdk/client-athena/dist-cjs/pagination/ListDataCatalogsPaginator.js", "../../../node_modules/@aws-sdk/client-athena/dist-cjs/pagination/ListDatabasesPaginator.js", "../../../node_modules/@aws-sdk/client-athena/dist-cjs/pagination/ListEngineVersionsPaginator.js", "../../../node_modules/@aws-sdk/client-athena/dist-cjs/pagination/ListExecutorsPaginator.js", "../../../node_modules/@aws-sdk/client-athena/dist-cjs/pagination/ListNamedQueriesPaginator.js", "../../../node_modules/@aws-sdk/client-athena/dist-cjs/pagination/ListPreparedStatementsPaginator.js", "../../../node_modules/@aws-sdk/client-athena/dist-cjs/pagination/ListQueryExecutionsPaginator.js", "../../../node_modules/@aws-sdk/client-athena/dist-cjs/pagination/ListSessionsPaginator.js", "../../../node_modules/@aws-sdk/client-athena/dist-cjs/pagination/ListTableMetadataPaginator.js", "../../../node_modules/@aws-sdk/client-athena/dist-cjs/pagination/ListTagsForResourcePaginator.js", "../../../node_modules/@aws-sdk/client-athena/dist-cjs/pagination/ListWorkGroupsPaginator.js", "../../../node_modules/@aws-sdk/client-athena/dist-cjs/pagination/index.js", "../../../node_modules/@aws-sdk/client-athena/dist-cjs/index.js", "../src/index.ts"], + "sourcesContent": ["/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global global, define, System, Reflect, Promise */\r\nvar __extends;\r\nvar __assign;\r\nvar __rest;\r\nvar __decorate;\r\nvar __param;\r\nvar __esDecorate;\r\nvar __runInitializers;\r\nvar __propKey;\r\nvar __setFunctionName;\r\nvar __metadata;\r\nvar __awaiter;\r\nvar __generator;\r\nvar __exportStar;\r\nvar __values;\r\nvar __read;\r\nvar __spread;\r\nvar __spreadArrays;\r\nvar __spreadArray;\r\nvar __await;\r\nvar __asyncGenerator;\r\nvar __asyncDelegator;\r\nvar __asyncValues;\r\nvar __makeTemplateObject;\r\nvar __importStar;\r\nvar __importDefault;\r\nvar __classPrivateFieldGet;\r\nvar __classPrivateFieldSet;\r\nvar __classPrivateFieldIn;\r\nvar __createBinding;\r\n(function (factory) {\r\n var root = typeof global === \"object\" ? global : typeof self === \"object\" ? self : typeof this === \"object\" ? this : {};\r\n if (typeof define === \"function\" && define.amd) {\r\n define(\"tslib\", [\"exports\"], function (exports) { factory(createExporter(root, createExporter(exports))); });\r\n }\r\n else if (typeof module === \"object\" && typeof module.exports === \"object\") {\r\n factory(createExporter(root, createExporter(module.exports)));\r\n }\r\n else {\r\n factory(createExporter(root));\r\n }\r\n function createExporter(exports, previous) {\r\n if (exports !== root) {\r\n if (typeof Object.create === \"function\") {\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n }\r\n else {\r\n exports.__esModule = true;\r\n }\r\n }\r\n return function (id, v) { return exports[id] = previous ? previous(id, v) : v; };\r\n }\r\n})\r\n(function (exporter) {\r\n var extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n\r\n __extends = function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n\r\n __assign = Object.assign || function (t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n\r\n __rest = function (s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n };\r\n\r\n __decorate = function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n };\r\n\r\n __param = function (paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n };\r\n\r\n __esDecorate = function (ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\r\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\r\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\r\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\r\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\r\n var _, done = false;\r\n for (var i = decorators.length - 1; i >= 0; i--) {\r\n var context = {};\r\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\r\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\r\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\r\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\r\n if (kind === \"accessor\") {\r\n if (result === void 0) continue;\r\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\r\n if (_ = accept(result.get)) descriptor.get = _;\r\n if (_ = accept(result.set)) descriptor.set = _;\r\n if (_ = accept(result.init)) initializers.push(_);\r\n }\r\n else if (_ = accept(result)) {\r\n if (kind === \"field\") initializers.push(_);\r\n else descriptor[key] = _;\r\n }\r\n }\r\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\r\n done = true;\r\n };\r\n\r\n __runInitializers = function (thisArg, initializers, value) {\r\n var useValue = arguments.length > 2;\r\n for (var i = 0; i < initializers.length; i++) {\r\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\r\n }\r\n return useValue ? value : void 0;\r\n };\r\n\r\n __propKey = function (x) {\r\n return typeof x === \"symbol\" ? x : \"\".concat(x);\r\n };\r\n\r\n __setFunctionName = function (f, name, prefix) {\r\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\r\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\r\n };\r\n\r\n __metadata = function (metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n };\r\n\r\n __awaiter = function (thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n };\r\n\r\n __generator = function (thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n };\r\n\r\n __exportStar = function(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n };\r\n\r\n __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n }) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n });\r\n\r\n __values = function (o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n };\r\n\r\n __read = function (o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n };\r\n\r\n /** @deprecated */\r\n __spread = function () {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n };\r\n\r\n /** @deprecated */\r\n __spreadArrays = function () {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n };\r\n\r\n __spreadArray = function (to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n };\r\n\r\n __await = function (v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n };\r\n\r\n __asyncGenerator = function (thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n };\r\n\r\n __asyncDelegator = function (o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\r\n };\r\n\r\n __asyncValues = function (o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n };\r\n\r\n __makeTemplateObject = function (cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n };\r\n\r\n var __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n }) : function(o, v) {\r\n o[\"default\"] = v;\r\n };\r\n\r\n __importStar = function (mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n };\r\n\r\n __importDefault = function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n };\r\n\r\n __classPrivateFieldGet = function (receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n };\r\n\r\n __classPrivateFieldSet = function (receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n };\r\n\r\n __classPrivateFieldIn = function (state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n };\r\n\r\n exporter(\"__extends\", __extends);\r\n exporter(\"__assign\", __assign);\r\n exporter(\"__rest\", __rest);\r\n exporter(\"__decorate\", __decorate);\r\n exporter(\"__param\", __param);\r\n exporter(\"__esDecorate\", __esDecorate);\r\n exporter(\"__runInitializers\", __runInitializers);\r\n exporter(\"__propKey\", __propKey);\r\n exporter(\"__setFunctionName\", __setFunctionName);\r\n exporter(\"__metadata\", __metadata);\r\n exporter(\"__awaiter\", __awaiter);\r\n exporter(\"__generator\", __generator);\r\n exporter(\"__exportStar\", __exportStar);\r\n exporter(\"__createBinding\", __createBinding);\r\n exporter(\"__values\", __values);\r\n exporter(\"__read\", __read);\r\n exporter(\"__spread\", __spread);\r\n exporter(\"__spreadArrays\", __spreadArrays);\r\n exporter(\"__spreadArray\", __spreadArray);\r\n exporter(\"__await\", __await);\r\n exporter(\"__asyncGenerator\", __asyncGenerator);\r\n exporter(\"__asyncDelegator\", __asyncDelegator);\r\n exporter(\"__asyncValues\", __asyncValues);\r\n exporter(\"__makeTemplateObject\", __makeTemplateObject);\r\n exporter(\"__importStar\", __importStar);\r\n exporter(\"__importDefault\", __importDefault);\r\n exporter(\"__classPrivateFieldGet\", __classPrivateFieldGet);\r\n exporter(\"__classPrivateFieldSet\", __classPrivateFieldSet);\r\n exporter(\"__classPrivateFieldIn\", __classPrivateFieldIn);\r\n});\r\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.booleanSelector = exports.SelectorType = void 0;\nvar SelectorType;\n(function (SelectorType) {\n SelectorType[\"ENV\"] = \"env\";\n SelectorType[\"CONFIG\"] = \"shared config entry\";\n})(SelectorType = exports.SelectorType || (exports.SelectorType = {}));\nconst booleanSelector = (obj, key, type) => {\n if (!(key in obj))\n return undefined;\n if (obj[key] === \"true\")\n return true;\n if (obj[key] === \"false\")\n return false;\n throw new Error(`Cannot load ${type} \"${key}\". Expected \"true\" or \"false\", got ${obj[key]}.`);\n};\nexports.booleanSelector = booleanSelector;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./booleanSelector\"), exports);\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS = exports.DEFAULT_USE_DUALSTACK_ENDPOINT = exports.CONFIG_USE_DUALSTACK_ENDPOINT = exports.ENV_USE_DUALSTACK_ENDPOINT = void 0;\nconst util_config_provider_1 = require(\"@aws-sdk/util-config-provider\");\nexports.ENV_USE_DUALSTACK_ENDPOINT = \"AWS_USE_DUALSTACK_ENDPOINT\";\nexports.CONFIG_USE_DUALSTACK_ENDPOINT = \"use_dualstack_endpoint\";\nexports.DEFAULT_USE_DUALSTACK_ENDPOINT = false;\nexports.NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS = {\n environmentVariableSelector: (env) => (0, util_config_provider_1.booleanSelector)(env, exports.ENV_USE_DUALSTACK_ENDPOINT, util_config_provider_1.SelectorType.ENV),\n configFileSelector: (profile) => (0, util_config_provider_1.booleanSelector)(profile, exports.CONFIG_USE_DUALSTACK_ENDPOINT, util_config_provider_1.SelectorType.CONFIG),\n default: false,\n};\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS = exports.DEFAULT_USE_FIPS_ENDPOINT = exports.CONFIG_USE_FIPS_ENDPOINT = exports.ENV_USE_FIPS_ENDPOINT = void 0;\nconst util_config_provider_1 = require(\"@aws-sdk/util-config-provider\");\nexports.ENV_USE_FIPS_ENDPOINT = \"AWS_USE_FIPS_ENDPOINT\";\nexports.CONFIG_USE_FIPS_ENDPOINT = \"use_fips_endpoint\";\nexports.DEFAULT_USE_FIPS_ENDPOINT = false;\nexports.NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS = {\n environmentVariableSelector: (env) => (0, util_config_provider_1.booleanSelector)(env, exports.ENV_USE_FIPS_ENDPOINT, util_config_provider_1.SelectorType.ENV),\n configFileSelector: (profile) => (0, util_config_provider_1.booleanSelector)(profile, exports.CONFIG_USE_FIPS_ENDPOINT, util_config_provider_1.SelectorType.CONFIG),\n default: false,\n};\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.normalizeProvider = void 0;\nconst normalizeProvider = (input) => {\n if (typeof input === \"function\")\n return input;\n const promisified = Promise.resolve(input);\n return () => promisified;\n};\nexports.normalizeProvider = normalizeProvider;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./normalizeProvider\"), exports);\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.resolveCustomEndpointsConfig = void 0;\nconst util_middleware_1 = require(\"@aws-sdk/util-middleware\");\nconst resolveCustomEndpointsConfig = (input) => {\n var _a, _b;\n const { endpoint, urlParser } = input;\n return {\n ...input,\n tls: (_a = input.tls) !== null && _a !== void 0 ? _a : true,\n endpoint: (0, util_middleware_1.normalizeProvider)(typeof endpoint === \"string\" ? urlParser(endpoint) : endpoint),\n isCustomEndpoint: true,\n useDualstackEndpoint: (0, util_middleware_1.normalizeProvider)((_b = input.useDualstackEndpoint) !== null && _b !== void 0 ? _b : false),\n };\n};\nexports.resolveCustomEndpointsConfig = resolveCustomEndpointsConfig;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getEndpointFromRegion = void 0;\nconst getEndpointFromRegion = async (input) => {\n var _a;\n const { tls = true } = input;\n const region = await input.region();\n const dnsHostRegex = new RegExp(/^([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9-]{0,61}[a-zA-Z0-9])$/);\n if (!dnsHostRegex.test(region)) {\n throw new Error(\"Invalid region in client config\");\n }\n const useDualstackEndpoint = await input.useDualstackEndpoint();\n const useFipsEndpoint = await input.useFipsEndpoint();\n const { hostname } = (_a = (await input.regionInfoProvider(region, { useDualstackEndpoint, useFipsEndpoint }))) !== null && _a !== void 0 ? _a : {};\n if (!hostname) {\n throw new Error(\"Cannot resolve hostname from client config\");\n }\n return input.urlParser(`${tls ? \"https:\" : \"http:\"}//${hostname}`);\n};\nexports.getEndpointFromRegion = getEndpointFromRegion;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.resolveEndpointsConfig = void 0;\nconst util_middleware_1 = require(\"@aws-sdk/util-middleware\");\nconst getEndpointFromRegion_1 = require(\"./utils/getEndpointFromRegion\");\nconst resolveEndpointsConfig = (input) => {\n var _a, _b;\n const useDualstackEndpoint = (0, util_middleware_1.normalizeProvider)((_a = input.useDualstackEndpoint) !== null && _a !== void 0 ? _a : false);\n const { endpoint, useFipsEndpoint, urlParser } = input;\n return {\n ...input,\n tls: (_b = input.tls) !== null && _b !== void 0 ? _b : true,\n endpoint: endpoint\n ? (0, util_middleware_1.normalizeProvider)(typeof endpoint === \"string\" ? urlParser(endpoint) : endpoint)\n : () => (0, getEndpointFromRegion_1.getEndpointFromRegion)({ ...input, useDualstackEndpoint, useFipsEndpoint }),\n isCustomEndpoint: !!endpoint,\n useDualstackEndpoint,\n };\n};\nexports.resolveEndpointsConfig = resolveEndpointsConfig;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./NodeUseDualstackEndpointConfigOptions\"), exports);\ntslib_1.__exportStar(require(\"./NodeUseFipsEndpointConfigOptions\"), exports);\ntslib_1.__exportStar(require(\"./resolveCustomEndpointsConfig\"), exports);\ntslib_1.__exportStar(require(\"./resolveEndpointsConfig\"), exports);\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NODE_REGION_CONFIG_FILE_OPTIONS = exports.NODE_REGION_CONFIG_OPTIONS = exports.REGION_INI_NAME = exports.REGION_ENV_NAME = void 0;\nexports.REGION_ENV_NAME = \"AWS_REGION\";\nexports.REGION_INI_NAME = \"region\";\nexports.NODE_REGION_CONFIG_OPTIONS = {\n environmentVariableSelector: (env) => env[exports.REGION_ENV_NAME],\n configFileSelector: (profile) => profile[exports.REGION_INI_NAME],\n default: () => {\n throw new Error(\"Region is missing\");\n },\n};\nexports.NODE_REGION_CONFIG_FILE_OPTIONS = {\n preferredFile: \"credentials\",\n};\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isFipsRegion = void 0;\nconst isFipsRegion = (region) => typeof region === \"string\" && (region.startsWith(\"fips-\") || region.endsWith(\"-fips\"));\nexports.isFipsRegion = isFipsRegion;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRealRegion = void 0;\nconst isFipsRegion_1 = require(\"./isFipsRegion\");\nconst getRealRegion = (region) => (0, isFipsRegion_1.isFipsRegion)(region)\n ? [\"fips-aws-global\", \"aws-fips\"].includes(region)\n ? \"us-east-1\"\n : region.replace(/fips-(dkr-|prod-)?|-fips/, \"\")\n : region;\nexports.getRealRegion = getRealRegion;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.resolveRegionConfig = void 0;\nconst getRealRegion_1 = require(\"./getRealRegion\");\nconst isFipsRegion_1 = require(\"./isFipsRegion\");\nconst resolveRegionConfig = (input) => {\n const { region, useFipsEndpoint } = input;\n if (!region) {\n throw new Error(\"Region is missing\");\n }\n return {\n ...input,\n region: async () => {\n if (typeof region === \"string\") {\n return (0, getRealRegion_1.getRealRegion)(region);\n }\n const providedRegion = await region();\n return (0, getRealRegion_1.getRealRegion)(providedRegion);\n },\n useFipsEndpoint: async () => {\n const providedRegion = typeof region === \"string\" ? region : await region();\n if ((0, isFipsRegion_1.isFipsRegion)(providedRegion)) {\n return true;\n }\n return typeof useFipsEndpoint !== \"function\" ? Promise.resolve(!!useFipsEndpoint) : useFipsEndpoint();\n },\n };\n};\nexports.resolveRegionConfig = resolveRegionConfig;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./config\"), exports);\ntslib_1.__exportStar(require(\"./resolveRegionConfig\"), exports);\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getHostnameFromVariants = void 0;\nconst getHostnameFromVariants = (variants = [], { useFipsEndpoint, useDualstackEndpoint }) => {\n var _a;\n return (_a = variants.find(({ tags }) => useFipsEndpoint === tags.includes(\"fips\") && useDualstackEndpoint === tags.includes(\"dualstack\"))) === null || _a === void 0 ? void 0 : _a.hostname;\n};\nexports.getHostnameFromVariants = getHostnameFromVariants;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getResolvedHostname = void 0;\nconst getResolvedHostname = (resolvedRegion, { regionHostname, partitionHostname }) => regionHostname\n ? regionHostname\n : partitionHostname\n ? partitionHostname.replace(\"{region}\", resolvedRegion)\n : undefined;\nexports.getResolvedHostname = getResolvedHostname;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getResolvedPartition = void 0;\nconst getResolvedPartition = (region, { partitionHash }) => { var _a; return (_a = Object.keys(partitionHash || {}).find((key) => partitionHash[key].regions.includes(region))) !== null && _a !== void 0 ? _a : \"aws\"; };\nexports.getResolvedPartition = getResolvedPartition;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getResolvedSigningRegion = void 0;\nconst getResolvedSigningRegion = (hostname, { signingRegion, regionRegex, useFipsEndpoint }) => {\n if (signingRegion) {\n return signingRegion;\n }\n else if (useFipsEndpoint) {\n const regionRegexJs = regionRegex.replace(\"\\\\\\\\\", \"\\\\\").replace(/^\\^/g, \"\\\\.\").replace(/\\$$/g, \"\\\\.\");\n const regionRegexmatchArray = hostname.match(regionRegexJs);\n if (regionRegexmatchArray) {\n return regionRegexmatchArray[0].slice(1, -1);\n }\n }\n};\nexports.getResolvedSigningRegion = getResolvedSigningRegion;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRegionInfo = void 0;\nconst getHostnameFromVariants_1 = require(\"./getHostnameFromVariants\");\nconst getResolvedHostname_1 = require(\"./getResolvedHostname\");\nconst getResolvedPartition_1 = require(\"./getResolvedPartition\");\nconst getResolvedSigningRegion_1 = require(\"./getResolvedSigningRegion\");\nconst getRegionInfo = (region, { useFipsEndpoint = false, useDualstackEndpoint = false, signingService, regionHash, partitionHash, }) => {\n var _a, _b, _c, _d, _e, _f;\n const partition = (0, getResolvedPartition_1.getResolvedPartition)(region, { partitionHash });\n const resolvedRegion = region in regionHash ? region : (_b = (_a = partitionHash[partition]) === null || _a === void 0 ? void 0 : _a.endpoint) !== null && _b !== void 0 ? _b : region;\n const hostnameOptions = { useFipsEndpoint, useDualstackEndpoint };\n const regionHostname = (0, getHostnameFromVariants_1.getHostnameFromVariants)((_c = regionHash[resolvedRegion]) === null || _c === void 0 ? void 0 : _c.variants, hostnameOptions);\n const partitionHostname = (0, getHostnameFromVariants_1.getHostnameFromVariants)((_d = partitionHash[partition]) === null || _d === void 0 ? void 0 : _d.variants, hostnameOptions);\n const hostname = (0, getResolvedHostname_1.getResolvedHostname)(resolvedRegion, { regionHostname, partitionHostname });\n if (hostname === undefined) {\n throw new Error(`Endpoint resolution failed for: ${{ resolvedRegion, useFipsEndpoint, useDualstackEndpoint }}`);\n }\n const signingRegion = (0, getResolvedSigningRegion_1.getResolvedSigningRegion)(hostname, {\n signingRegion: (_e = regionHash[resolvedRegion]) === null || _e === void 0 ? void 0 : _e.signingRegion,\n regionRegex: partitionHash[partition].regionRegex,\n useFipsEndpoint,\n });\n return {\n partition,\n signingService,\n hostname,\n ...(signingRegion && { signingRegion }),\n ...(((_f = regionHash[resolvedRegion]) === null || _f === void 0 ? void 0 : _f.signingService) && {\n signingService: regionHash[resolvedRegion].signingService,\n }),\n };\n};\nexports.getRegionInfo = getRegionInfo;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./PartitionHash\"), exports);\ntslib_1.__exportStar(require(\"./RegionHash\"), exports);\ntslib_1.__exportStar(require(\"./getRegionInfo\"), exports);\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./endpointsConfig\"), exports);\ntslib_1.__exportStar(require(\"./regionConfig\"), exports);\ntslib_1.__exportStar(require(\"./regionInfo\"), exports);\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.FieldPosition = void 0;\nvar FieldPosition;\n(function (FieldPosition) {\n FieldPosition[FieldPosition[\"HEADER\"] = 0] = \"HEADER\";\n FieldPosition[FieldPosition[\"TRAILER\"] = 1] = \"TRAILER\";\n})(FieldPosition = exports.FieldPosition || (exports.FieldPosition = {}));\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Field = void 0;\nconst FieldPosition_1 = require(\"./FieldPosition\");\nclass Field {\n constructor({ name, kind = FieldPosition_1.FieldPosition.HEADER, values = [] }) {\n this.name = name;\n this.kind = kind;\n this.values = values;\n }\n add(value) {\n this.values.push(value);\n }\n set(values) {\n this.values = values;\n }\n remove(value) {\n this.values = this.values.filter((v) => v !== value);\n }\n toString() {\n return this.values\n .map((v) => (v.includes(\",\") || v.includes(\" \") ? `\"${v}\"` : v))\n .join(\", \");\n }\n get() {\n return this.values;\n }\n}\nexports.Field = Field;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Fields = void 0;\nclass Fields {\n constructor({ fields = [], encoding = \"utf-8\" }) {\n this.entries = {};\n fields.forEach(this.setField.bind(this));\n this.encoding = encoding;\n }\n setField(field) {\n this.entries[field.name.toLowerCase()] = field;\n }\n getField(name) {\n return this.entries[name.toLowerCase()];\n }\n removeField(name) {\n delete this.entries[name.toLowerCase()];\n }\n getByType(kind) {\n return Object.values(this.entries).filter((field) => field.kind === kind);\n }\n}\nexports.Fields = Fields;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HttpRequest = void 0;\nclass HttpRequest {\n constructor(options) {\n this.method = options.method || \"GET\";\n this.hostname = options.hostname || \"localhost\";\n this.port = options.port;\n this.query = options.query || {};\n this.headers = options.headers || {};\n this.body = options.body;\n this.protocol = options.protocol\n ? options.protocol.slice(-1) !== \":\"\n ? `${options.protocol}:`\n : options.protocol\n : \"https:\";\n this.path = options.path ? (options.path.charAt(0) !== \"/\" ? `/${options.path}` : options.path) : \"/\";\n }\n static isInstance(request) {\n if (!request)\n return false;\n const req = request;\n return (\"method\" in req &&\n \"protocol\" in req &&\n \"hostname\" in req &&\n \"path\" in req &&\n typeof req[\"query\"] === \"object\" &&\n typeof req[\"headers\"] === \"object\");\n }\n clone() {\n const cloned = new HttpRequest({\n ...this,\n headers: { ...this.headers },\n });\n if (cloned.query)\n cloned.query = cloneQuery(cloned.query);\n return cloned;\n }\n}\nexports.HttpRequest = HttpRequest;\nfunction cloneQuery(query) {\n return Object.keys(query).reduce((carry, paramName) => {\n const param = query[paramName];\n return {\n ...carry,\n [paramName]: Array.isArray(param) ? [...param] : param,\n };\n }, {});\n}\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HttpResponse = void 0;\nclass HttpResponse {\n constructor(options) {\n this.statusCode = options.statusCode;\n this.headers = options.headers || {};\n this.body = options.body;\n }\n static isInstance(response) {\n if (!response)\n return false;\n const resp = response;\n return typeof resp.statusCode === \"number\" && typeof resp.headers === \"object\";\n }\n}\nexports.HttpResponse = HttpResponse;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isValidHostname = void 0;\nfunction isValidHostname(hostname) {\n const hostPattern = /^[a-z0-9][a-z0-9\\.\\-]*[a-z0-9]$/;\n return hostPattern.test(hostname);\n}\nexports.isValidHostname = isValidHostname;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./Field\"), exports);\ntslib_1.__exportStar(require(\"./FieldPosition\"), exports);\ntslib_1.__exportStar(require(\"./Fields\"), exports);\ntslib_1.__exportStar(require(\"./httpHandler\"), exports);\ntslib_1.__exportStar(require(\"./httpRequest\"), exports);\ntslib_1.__exportStar(require(\"./httpResponse\"), exports);\ntslib_1.__exportStar(require(\"./isValidHostname\"), exports);\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getContentLengthPlugin = exports.contentLengthMiddlewareOptions = exports.contentLengthMiddleware = void 0;\nconst protocol_http_1 = require(\"@aws-sdk/protocol-http\");\nconst CONTENT_LENGTH_HEADER = \"content-length\";\nfunction contentLengthMiddleware(bodyLengthChecker) {\n return (next) => async (args) => {\n const request = args.request;\n if (protocol_http_1.HttpRequest.isInstance(request)) {\n const { body, headers } = request;\n if (body &&\n Object.keys(headers)\n .map((str) => str.toLowerCase())\n .indexOf(CONTENT_LENGTH_HEADER) === -1) {\n try {\n const length = bodyLengthChecker(body);\n request.headers = {\n ...request.headers,\n [CONTENT_LENGTH_HEADER]: String(length),\n };\n }\n catch (error) {\n }\n }\n }\n return next({\n ...args,\n request,\n });\n };\n}\nexports.contentLengthMiddleware = contentLengthMiddleware;\nexports.contentLengthMiddlewareOptions = {\n step: \"build\",\n tags: [\"SET_CONTENT_LENGTH\", \"CONTENT_LENGTH\"],\n name: \"contentLengthMiddleware\",\n override: true,\n};\nconst getContentLengthPlugin = (options) => ({\n applyToStack: (clientStack) => {\n clientStack.add(contentLengthMiddleware(options.bodyLengthChecker), exports.contentLengthMiddlewareOptions);\n },\n});\nexports.getContentLengthPlugin = getContentLengthPlugin;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isArnBucketName = exports.isDnsCompatibleBucketName = exports.S3_HOSTNAME_PATTERN = exports.DOT_PATTERN = exports.resolveParamsForS3 = void 0;\nconst resolveParamsForS3 = async (endpointParams) => {\n const bucket = (endpointParams === null || endpointParams === void 0 ? void 0 : endpointParams.Bucket) || \"\";\n if (typeof endpointParams.Bucket === \"string\") {\n endpointParams.Bucket = bucket.replace(/#/g, encodeURIComponent(\"#\")).replace(/\\?/g, encodeURIComponent(\"?\"));\n }\n if ((0, exports.isArnBucketName)(bucket)) {\n if (endpointParams.ForcePathStyle === true) {\n throw new Error(\"Path-style addressing cannot be used with ARN buckets\");\n }\n }\n else if (!(0, exports.isDnsCompatibleBucketName)(bucket) ||\n (bucket.indexOf(\".\") !== -1 && !String(endpointParams.Endpoint).startsWith(\"http:\")) ||\n bucket.toLowerCase() !== bucket ||\n bucket.length < 3) {\n endpointParams.ForcePathStyle = true;\n }\n if (endpointParams.DisableMultiRegionAccessPoints) {\n endpointParams.disableMultiRegionAccessPoints = true;\n endpointParams.DisableMRAP = true;\n }\n return endpointParams;\n};\nexports.resolveParamsForS3 = resolveParamsForS3;\nconst DOMAIN_PATTERN = /^[a-z0-9][a-z0-9\\.\\-]{1,61}[a-z0-9]$/;\nconst IP_ADDRESS_PATTERN = /(\\d+\\.){3}\\d+/;\nconst DOTS_PATTERN = /\\.\\./;\nexports.DOT_PATTERN = /\\./;\nexports.S3_HOSTNAME_PATTERN = /^(.+\\.)?s3(-fips)?(\\.dualstack)?[.-]([a-z0-9-]+)\\./;\nconst isDnsCompatibleBucketName = (bucketName) => DOMAIN_PATTERN.test(bucketName) && !IP_ADDRESS_PATTERN.test(bucketName) && !DOTS_PATTERN.test(bucketName);\nexports.isDnsCompatibleBucketName = isDnsCompatibleBucketName;\nconst isArnBucketName = (bucketName) => {\n const [arn, partition, service, region, account, typeOrId] = bucketName.split(\":\");\n const isArn = arn === \"arn\" && bucketName.split(\":\").length >= 6;\n const isValidArn = [arn, partition, service, account, typeOrId].filter(Boolean).length === 5;\n if (isArn && !isValidArn) {\n throw new Error(`Invalid ARN: ${bucketName} was an invalid ARN.`);\n }\n return arn === \"arn\" && !!partition && !!service && !!account && !!typeOrId;\n};\nexports.isArnBucketName = isArnBucketName;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./s3\"), exports);\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createConfigValueProvider = void 0;\nconst createConfigValueProvider = (configKey, canonicalEndpointParamKey, config) => {\n const configProvider = async () => {\n var _a;\n const configValue = (_a = config[configKey]) !== null && _a !== void 0 ? _a : config[canonicalEndpointParamKey];\n if (typeof configValue === \"function\") {\n return configValue();\n }\n return configValue;\n };\n if (configKey === \"endpoint\" || canonicalEndpointParamKey === \"endpoint\") {\n return async () => {\n const endpoint = await configProvider();\n if (endpoint && typeof endpoint === \"object\") {\n if (\"url\" in endpoint) {\n return endpoint.url.href;\n }\n if (\"hostname\" in endpoint) {\n const { protocol, hostname, port, path } = endpoint;\n return `${protocol}//${hostname}${port ? \":\" + port : \"\"}${path}`;\n }\n }\n return endpoint;\n };\n }\n return configProvider;\n};\nexports.createConfigValueProvider = createConfigValueProvider;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.resolveParams = exports.getEndpointFromInstructions = void 0;\nconst service_customizations_1 = require(\"../service-customizations\");\nconst createConfigValueProvider_1 = require(\"./createConfigValueProvider\");\nconst getEndpointFromInstructions = async (commandInput, instructionsSupplier, clientConfig, context) => {\n const endpointParams = await (0, exports.resolveParams)(commandInput, instructionsSupplier, clientConfig);\n if (typeof clientConfig.endpointProvider !== \"function\") {\n throw new Error(\"config.endpointProvider is not set.\");\n }\n const endpoint = clientConfig.endpointProvider(endpointParams, context);\n return endpoint;\n};\nexports.getEndpointFromInstructions = getEndpointFromInstructions;\nconst resolveParams = async (commandInput, instructionsSupplier, clientConfig) => {\n var _a;\n const endpointParams = {};\n const instructions = ((_a = instructionsSupplier === null || instructionsSupplier === void 0 ? void 0 : instructionsSupplier.getEndpointParameterInstructions) === null || _a === void 0 ? void 0 : _a.call(instructionsSupplier)) || {};\n for (const [name, instruction] of Object.entries(instructions)) {\n switch (instruction.type) {\n case \"staticContextParams\":\n endpointParams[name] = instruction.value;\n break;\n case \"contextParams\":\n endpointParams[name] = commandInput[instruction.name];\n break;\n case \"clientContextParams\":\n case \"builtInParams\":\n endpointParams[name] = await (0, createConfigValueProvider_1.createConfigValueProvider)(instruction.name, name, clientConfig)();\n break;\n default:\n throw new Error(\"Unrecognized endpoint parameter instruction: \" + JSON.stringify(instruction));\n }\n }\n if (Object.keys(instructions).length === 0) {\n Object.assign(endpointParams, clientConfig);\n }\n if (String(clientConfig.serviceId).toLowerCase() === \"s3\") {\n await (0, service_customizations_1.resolveParamsForS3)(endpointParams);\n }\n return endpointParams;\n};\nexports.resolveParams = resolveParams;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.parseQueryString = void 0;\nfunction parseQueryString(querystring) {\n const query = {};\n querystring = querystring.replace(/^\\?/, \"\");\n if (querystring) {\n for (const pair of querystring.split(\"&\")) {\n let [key, value = null] = pair.split(\"=\");\n key = decodeURIComponent(key);\n if (value) {\n value = decodeURIComponent(value);\n }\n if (!(key in query)) {\n query[key] = value;\n }\n else if (Array.isArray(query[key])) {\n query[key].push(value);\n }\n else {\n query[key] = [query[key], value];\n }\n }\n }\n return query;\n}\nexports.parseQueryString = parseQueryString;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.parseUrl = void 0;\nconst querystring_parser_1 = require(\"@aws-sdk/querystring-parser\");\nconst parseUrl = (url) => {\n if (typeof url === \"string\") {\n return (0, exports.parseUrl)(new URL(url));\n }\n const { hostname, pathname, port, protocol, search } = url;\n let query;\n if (search) {\n query = (0, querystring_parser_1.parseQueryString)(search);\n }\n return {\n hostname,\n port: port ? parseInt(port) : undefined,\n protocol,\n path: pathname,\n query,\n };\n};\nexports.parseUrl = parseUrl;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.toEndpointV1 = void 0;\nconst url_parser_1 = require(\"@aws-sdk/url-parser\");\nconst toEndpointV1 = (endpoint) => {\n if (typeof endpoint === \"object\") {\n if (\"url\" in endpoint) {\n return (0, url_parser_1.parseUrl)(endpoint.url);\n }\n return endpoint;\n }\n return (0, url_parser_1.parseUrl)(endpoint);\n};\nexports.toEndpointV1 = toEndpointV1;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./getEndpointFromInstructions\"), exports);\ntslib_1.__exportStar(require(\"./toEndpointV1\"), exports);\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.endpointMiddleware = void 0;\nconst getEndpointFromInstructions_1 = require(\"./adaptors/getEndpointFromInstructions\");\nconst endpointMiddleware = ({ config, instructions, }) => {\n return (next, context) => async (args) => {\n var _a, _b;\n const endpoint = await (0, getEndpointFromInstructions_1.getEndpointFromInstructions)(args.input, {\n getEndpointParameterInstructions() {\n return instructions;\n },\n }, { ...config }, context);\n context.endpointV2 = endpoint;\n context.authSchemes = (_a = endpoint.properties) === null || _a === void 0 ? void 0 : _a.authSchemes;\n const authScheme = (_b = context.authSchemes) === null || _b === void 0 ? void 0 : _b[0];\n if (authScheme) {\n context[\"signing_region\"] = authScheme.signingRegion;\n context[\"signing_service\"] = authScheme.signingName;\n }\n return next({\n ...args,\n });\n };\n};\nexports.endpointMiddleware = endpointMiddleware;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.deserializerMiddleware = void 0;\nconst deserializerMiddleware = (options, deserializer) => (next, context) => async (args) => {\n const { response } = await next(args);\n try {\n const parsed = await deserializer(response, options);\n return {\n response,\n output: parsed,\n };\n }\n catch (error) {\n Object.defineProperty(error, \"$response\", {\n value: response,\n });\n throw error;\n }\n};\nexports.deserializerMiddleware = deserializerMiddleware;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.serializerMiddleware = void 0;\nconst serializerMiddleware = (options, serializer) => (next, context) => async (args) => {\n var _a;\n const endpoint = ((_a = context.endpointV2) === null || _a === void 0 ? void 0 : _a.url) && options.urlParser\n ? async () => options.urlParser(context.endpointV2.url)\n : options.endpoint;\n if (!endpoint) {\n throw new Error(\"No valid endpoint provider available.\");\n }\n const request = await serializer(args.input, { ...options, endpoint });\n return next({\n ...args,\n request,\n });\n};\nexports.serializerMiddleware = serializerMiddleware;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getSerdePlugin = exports.serializerMiddlewareOption = exports.deserializerMiddlewareOption = void 0;\nconst deserializerMiddleware_1 = require(\"./deserializerMiddleware\");\nconst serializerMiddleware_1 = require(\"./serializerMiddleware\");\nexports.deserializerMiddlewareOption = {\n name: \"deserializerMiddleware\",\n step: \"deserialize\",\n tags: [\"DESERIALIZER\"],\n override: true,\n};\nexports.serializerMiddlewareOption = {\n name: \"serializerMiddleware\",\n step: \"serialize\",\n tags: [\"SERIALIZER\"],\n override: true,\n};\nfunction getSerdePlugin(config, serializer, deserializer) {\n return {\n applyToStack: (commandStack) => {\n commandStack.add((0, deserializerMiddleware_1.deserializerMiddleware)(config, deserializer), exports.deserializerMiddlewareOption);\n commandStack.add((0, serializerMiddleware_1.serializerMiddleware)(config, serializer), exports.serializerMiddlewareOption);\n },\n };\n}\nexports.getSerdePlugin = getSerdePlugin;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./deserializerMiddleware\"), exports);\ntslib_1.__exportStar(require(\"./serdePlugin\"), exports);\ntslib_1.__exportStar(require(\"./serializerMiddleware\"), exports);\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getEndpointPlugin = exports.endpointMiddlewareOptions = void 0;\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst endpointMiddleware_1 = require(\"./endpointMiddleware\");\nexports.endpointMiddlewareOptions = {\n step: \"serialize\",\n tags: [\"ENDPOINT_PARAMETERS\", \"ENDPOINT_V2\", \"ENDPOINT\"],\n name: \"endpointV2Middleware\",\n override: true,\n relation: \"before\",\n toMiddleware: middleware_serde_1.serializerMiddlewareOption.name,\n};\nconst getEndpointPlugin = (config, instructions) => ({\n applyToStack: (clientStack) => {\n clientStack.addRelativeTo((0, endpointMiddleware_1.endpointMiddleware)({\n config,\n instructions,\n }), exports.endpointMiddlewareOptions);\n },\n});\nexports.getEndpointPlugin = getEndpointPlugin;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.resolveEndpointConfig = void 0;\nconst util_middleware_1 = require(\"@aws-sdk/util-middleware\");\nconst toEndpointV1_1 = require(\"./adaptors/toEndpointV1\");\nconst resolveEndpointConfig = (input) => {\n var _a, _b, _c;\n const tls = (_a = input.tls) !== null && _a !== void 0 ? _a : true;\n const { endpoint } = input;\n const customEndpointProvider = endpoint != null ? async () => (0, toEndpointV1_1.toEndpointV1)(await (0, util_middleware_1.normalizeProvider)(endpoint)()) : undefined;\n const isCustomEndpoint = !!endpoint;\n return {\n ...input,\n endpoint: customEndpointProvider,\n tls,\n isCustomEndpoint,\n useDualstackEndpoint: (0, util_middleware_1.normalizeProvider)((_b = input.useDualstackEndpoint) !== null && _b !== void 0 ? _b : false),\n useFipsEndpoint: (0, util_middleware_1.normalizeProvider)((_c = input.useFipsEndpoint) !== null && _c !== void 0 ? _c : false),\n };\n};\nexports.resolveEndpointConfig = resolveEndpointConfig;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./adaptors\"), exports);\ntslib_1.__exportStar(require(\"./endpointMiddleware\"), exports);\ntslib_1.__exportStar(require(\"./getEndpointPlugin\"), exports);\ntslib_1.__exportStar(require(\"./resolveEndpointConfig\"), exports);\ntslib_1.__exportStar(require(\"./types\"), exports);\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getHostHeaderPlugin = exports.hostHeaderMiddlewareOptions = exports.hostHeaderMiddleware = exports.resolveHostHeaderConfig = void 0;\nconst protocol_http_1 = require(\"@aws-sdk/protocol-http\");\nfunction resolveHostHeaderConfig(input) {\n return input;\n}\nexports.resolveHostHeaderConfig = resolveHostHeaderConfig;\nconst hostHeaderMiddleware = (options) => (next) => async (args) => {\n if (!protocol_http_1.HttpRequest.isInstance(args.request))\n return next(args);\n const { request } = args;\n const { handlerProtocol = \"\" } = options.requestHandler.metadata || {};\n if (handlerProtocol.indexOf(\"h2\") >= 0 && !request.headers[\":authority\"]) {\n delete request.headers[\"host\"];\n request.headers[\":authority\"] = \"\";\n }\n else if (!request.headers[\"host\"]) {\n let host = request.hostname;\n if (request.port != null)\n host += `:${request.port}`;\n request.headers[\"host\"] = host;\n }\n return next(args);\n};\nexports.hostHeaderMiddleware = hostHeaderMiddleware;\nexports.hostHeaderMiddlewareOptions = {\n name: \"hostHeaderMiddleware\",\n step: \"build\",\n priority: \"low\",\n tags: [\"HOST\"],\n override: true,\n};\nconst getHostHeaderPlugin = (options) => ({\n applyToStack: (clientStack) => {\n clientStack.add((0, exports.hostHeaderMiddleware)(options), exports.hostHeaderMiddlewareOptions);\n },\n});\nexports.getHostHeaderPlugin = getHostHeaderPlugin;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getLoggerPlugin = exports.loggerMiddlewareOptions = exports.loggerMiddleware = void 0;\nconst loggerMiddleware = () => (next, context) => async (args) => {\n const response = await next(args);\n const { clientName, commandName, logger, inputFilterSensitiveLog, outputFilterSensitiveLog, dynamoDbDocumentClientOptions = {}, } = context;\n const { overrideInputFilterSensitiveLog, overrideOutputFilterSensitiveLog } = dynamoDbDocumentClientOptions;\n if (!logger) {\n return response;\n }\n if (typeof logger.info === \"function\") {\n const { $metadata, ...outputWithoutMetadata } = response.output;\n logger.info({\n clientName,\n commandName,\n input: (overrideInputFilterSensitiveLog !== null && overrideInputFilterSensitiveLog !== void 0 ? overrideInputFilterSensitiveLog : inputFilterSensitiveLog)(args.input),\n output: (overrideOutputFilterSensitiveLog !== null && overrideOutputFilterSensitiveLog !== void 0 ? overrideOutputFilterSensitiveLog : outputFilterSensitiveLog)(outputWithoutMetadata),\n metadata: $metadata,\n });\n }\n return response;\n};\nexports.loggerMiddleware = loggerMiddleware;\nexports.loggerMiddlewareOptions = {\n name: \"loggerMiddleware\",\n tags: [\"LOGGER\"],\n step: \"initialize\",\n override: true,\n};\nconst getLoggerPlugin = (options) => ({\n applyToStack: (clientStack) => {\n clientStack.add((0, exports.loggerMiddleware)(), exports.loggerMiddlewareOptions);\n },\n});\nexports.getLoggerPlugin = getLoggerPlugin;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./loggerMiddleware\"), exports);\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRecursionDetectionPlugin = exports.addRecursionDetectionMiddlewareOptions = exports.recursionDetectionMiddleware = void 0;\nconst protocol_http_1 = require(\"@aws-sdk/protocol-http\");\nconst TRACE_ID_HEADER_NAME = \"X-Amzn-Trace-Id\";\nconst ENV_LAMBDA_FUNCTION_NAME = \"AWS_LAMBDA_FUNCTION_NAME\";\nconst ENV_TRACE_ID = \"_X_AMZN_TRACE_ID\";\nconst recursionDetectionMiddleware = (options) => (next) => async (args) => {\n const { request } = args;\n if (!protocol_http_1.HttpRequest.isInstance(request) ||\n options.runtime !== \"node\" ||\n request.headers.hasOwnProperty(TRACE_ID_HEADER_NAME)) {\n return next(args);\n }\n const functionName = process.env[ENV_LAMBDA_FUNCTION_NAME];\n const traceId = process.env[ENV_TRACE_ID];\n const nonEmptyString = (str) => typeof str === \"string\" && str.length > 0;\n if (nonEmptyString(functionName) && nonEmptyString(traceId)) {\n request.headers[TRACE_ID_HEADER_NAME] = traceId;\n }\n return next({\n ...args,\n request,\n });\n};\nexports.recursionDetectionMiddleware = recursionDetectionMiddleware;\nexports.addRecursionDetectionMiddlewareOptions = {\n step: \"build\",\n tags: [\"RECURSION_DETECTION\"],\n name: \"recursionDetectionMiddleware\",\n override: true,\n priority: \"low\",\n};\nconst getRecursionDetectionPlugin = (options) => ({\n applyToStack: (clientStack) => {\n clientStack.add((0, exports.recursionDetectionMiddleware)(options), exports.addRecursionDetectionMiddlewareOptions);\n },\n});\nexports.getRecursionDetectionPlugin = getRecursionDetectionPlugin;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DEFAULT_RETRY_MODE = exports.DEFAULT_MAX_ATTEMPTS = exports.RETRY_MODES = void 0;\nvar RETRY_MODES;\n(function (RETRY_MODES) {\n RETRY_MODES[\"STANDARD\"] = \"standard\";\n RETRY_MODES[\"ADAPTIVE\"] = \"adaptive\";\n})(RETRY_MODES = exports.RETRY_MODES || (exports.RETRY_MODES = {}));\nexports.DEFAULT_MAX_ATTEMPTS = 3;\nexports.DEFAULT_RETRY_MODE = \"STANDARD\";\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NODEJS_TIMEOUT_ERROR_CODES = exports.TRANSIENT_ERROR_STATUS_CODES = exports.TRANSIENT_ERROR_CODES = exports.THROTTLING_ERROR_CODES = exports.CLOCK_SKEW_ERROR_CODES = void 0;\nexports.CLOCK_SKEW_ERROR_CODES = [\n \"AuthFailure\",\n \"InvalidSignatureException\",\n \"RequestExpired\",\n \"RequestInTheFuture\",\n \"RequestTimeTooSkewed\",\n \"SignatureDoesNotMatch\",\n];\nexports.THROTTLING_ERROR_CODES = [\n \"BandwidthLimitExceeded\",\n \"EC2ThrottledException\",\n \"LimitExceededException\",\n \"PriorRequestNotComplete\",\n \"ProvisionedThroughputExceededException\",\n \"RequestLimitExceeded\",\n \"RequestThrottled\",\n \"RequestThrottledException\",\n \"SlowDown\",\n \"ThrottledException\",\n \"Throttling\",\n \"ThrottlingException\",\n \"TooManyRequestsException\",\n \"TransactionInProgressException\",\n];\nexports.TRANSIENT_ERROR_CODES = [\"AbortError\", \"TimeoutError\", \"RequestTimeout\", \"RequestTimeoutException\"];\nexports.TRANSIENT_ERROR_STATUS_CODES = [500, 502, 503, 504];\nexports.NODEJS_TIMEOUT_ERROR_CODES = [\"ECONNRESET\", \"EPIPE\", \"ETIMEDOUT\"];\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isServerError = exports.isTransientError = exports.isThrottlingError = exports.isClockSkewError = exports.isRetryableByTrait = void 0;\nconst constants_1 = require(\"./constants\");\nconst isRetryableByTrait = (error) => error.$retryable !== undefined;\nexports.isRetryableByTrait = isRetryableByTrait;\nconst isClockSkewError = (error) => constants_1.CLOCK_SKEW_ERROR_CODES.includes(error.name);\nexports.isClockSkewError = isClockSkewError;\nconst isThrottlingError = (error) => {\n var _a, _b;\n return ((_a = error.$metadata) === null || _a === void 0 ? void 0 : _a.httpStatusCode) === 429 ||\n constants_1.THROTTLING_ERROR_CODES.includes(error.name) ||\n ((_b = error.$retryable) === null || _b === void 0 ? void 0 : _b.throttling) == true;\n};\nexports.isThrottlingError = isThrottlingError;\nconst isTransientError = (error) => {\n var _a;\n return constants_1.TRANSIENT_ERROR_CODES.includes(error.name) ||\n constants_1.NODEJS_TIMEOUT_ERROR_CODES.includes((error === null || error === void 0 ? void 0 : error.code) || \"\") ||\n constants_1.TRANSIENT_ERROR_STATUS_CODES.includes(((_a = error.$metadata) === null || _a === void 0 ? void 0 : _a.httpStatusCode) || 0);\n};\nexports.isTransientError = isTransientError;\nconst isServerError = (error) => {\n var _a;\n if (((_a = error.$metadata) === null || _a === void 0 ? void 0 : _a.httpStatusCode) !== undefined) {\n const statusCode = error.$metadata.httpStatusCode;\n if (500 <= statusCode && statusCode <= 599 && !(0, exports.isTransientError)(error)) {\n return true;\n }\n return false;\n }\n return false;\n};\nexports.isServerError = isServerError;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DefaultRateLimiter = void 0;\nconst service_error_classification_1 = require(\"@aws-sdk/service-error-classification\");\nclass DefaultRateLimiter {\n constructor(options) {\n var _a, _b, _c, _d, _e;\n this.currentCapacity = 0;\n this.enabled = false;\n this.lastMaxRate = 0;\n this.measuredTxRate = 0;\n this.requestCount = 0;\n this.lastTimestamp = 0;\n this.timeWindow = 0;\n this.beta = (_a = options === null || options === void 0 ? void 0 : options.beta) !== null && _a !== void 0 ? _a : 0.7;\n this.minCapacity = (_b = options === null || options === void 0 ? void 0 : options.minCapacity) !== null && _b !== void 0 ? _b : 1;\n this.minFillRate = (_c = options === null || options === void 0 ? void 0 : options.minFillRate) !== null && _c !== void 0 ? _c : 0.5;\n this.scaleConstant = (_d = options === null || options === void 0 ? void 0 : options.scaleConstant) !== null && _d !== void 0 ? _d : 0.4;\n this.smooth = (_e = options === null || options === void 0 ? void 0 : options.smooth) !== null && _e !== void 0 ? _e : 0.8;\n const currentTimeInSeconds = this.getCurrentTimeInSeconds();\n this.lastThrottleTime = currentTimeInSeconds;\n this.lastTxRateBucket = Math.floor(this.getCurrentTimeInSeconds());\n this.fillRate = this.minFillRate;\n this.maxCapacity = this.minCapacity;\n }\n getCurrentTimeInSeconds() {\n return Date.now() / 1000;\n }\n async getSendToken() {\n return this.acquireTokenBucket(1);\n }\n async acquireTokenBucket(amount) {\n if (!this.enabled) {\n return;\n }\n this.refillTokenBucket();\n if (amount > this.currentCapacity) {\n const delay = ((amount - this.currentCapacity) / this.fillRate) * 1000;\n await new Promise((resolve) => setTimeout(resolve, delay));\n }\n this.currentCapacity = this.currentCapacity - amount;\n }\n refillTokenBucket() {\n const timestamp = this.getCurrentTimeInSeconds();\n if (!this.lastTimestamp) {\n this.lastTimestamp = timestamp;\n return;\n }\n const fillAmount = (timestamp - this.lastTimestamp) * this.fillRate;\n this.currentCapacity = Math.min(this.maxCapacity, this.currentCapacity + fillAmount);\n this.lastTimestamp = timestamp;\n }\n updateClientSendingRate(response) {\n let calculatedRate;\n this.updateMeasuredRate();\n if ((0, service_error_classification_1.isThrottlingError)(response)) {\n const rateToUse = !this.enabled ? this.measuredTxRate : Math.min(this.measuredTxRate, this.fillRate);\n this.lastMaxRate = rateToUse;\n this.calculateTimeWindow();\n this.lastThrottleTime = this.getCurrentTimeInSeconds();\n calculatedRate = this.cubicThrottle(rateToUse);\n this.enableTokenBucket();\n }\n else {\n this.calculateTimeWindow();\n calculatedRate = this.cubicSuccess(this.getCurrentTimeInSeconds());\n }\n const newRate = Math.min(calculatedRate, 2 * this.measuredTxRate);\n this.updateTokenBucketRate(newRate);\n }\n calculateTimeWindow() {\n this.timeWindow = this.getPrecise(Math.pow((this.lastMaxRate * (1 - this.beta)) / this.scaleConstant, 1 / 3));\n }\n cubicThrottle(rateToUse) {\n return this.getPrecise(rateToUse * this.beta);\n }\n cubicSuccess(timestamp) {\n return this.getPrecise(this.scaleConstant * Math.pow(timestamp - this.lastThrottleTime - this.timeWindow, 3) + this.lastMaxRate);\n }\n enableTokenBucket() {\n this.enabled = true;\n }\n updateTokenBucketRate(newRate) {\n this.refillTokenBucket();\n this.fillRate = Math.max(newRate, this.minFillRate);\n this.maxCapacity = Math.max(newRate, this.minCapacity);\n this.currentCapacity = Math.min(this.currentCapacity, this.maxCapacity);\n }\n updateMeasuredRate() {\n const t = this.getCurrentTimeInSeconds();\n const timeBucket = Math.floor(t * 2) / 2;\n this.requestCount++;\n if (timeBucket > this.lastTxRateBucket) {\n const currentRate = this.requestCount / (timeBucket - this.lastTxRateBucket);\n this.measuredTxRate = this.getPrecise(currentRate * this.smooth + this.measuredTxRate * (1 - this.smooth));\n this.requestCount = 0;\n this.lastTxRateBucket = timeBucket;\n }\n }\n getPrecise(num) {\n return parseFloat(num.toFixed(8));\n }\n}\nexports.DefaultRateLimiter = DefaultRateLimiter;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.REQUEST_HEADER = exports.INVOCATION_ID_HEADER = exports.NO_RETRY_INCREMENT = exports.TIMEOUT_RETRY_COST = exports.RETRY_COST = exports.INITIAL_RETRY_TOKENS = exports.THROTTLING_RETRY_DELAY_BASE = exports.MAXIMUM_RETRY_DELAY = exports.DEFAULT_RETRY_DELAY_BASE = void 0;\nexports.DEFAULT_RETRY_DELAY_BASE = 100;\nexports.MAXIMUM_RETRY_DELAY = 20 * 1000;\nexports.THROTTLING_RETRY_DELAY_BASE = 500;\nexports.INITIAL_RETRY_TOKENS = 500;\nexports.RETRY_COST = 5;\nexports.TIMEOUT_RETRY_COST = 10;\nexports.NO_RETRY_INCREMENT = 1;\nexports.INVOCATION_ID_HEADER = \"amz-sdk-invocation-id\";\nexports.REQUEST_HEADER = \"amz-sdk-request\";\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getDefaultRetryBackoffStrategy = void 0;\nconst constants_1 = require(\"./constants\");\nconst getDefaultRetryBackoffStrategy = () => {\n let delayBase = constants_1.DEFAULT_RETRY_DELAY_BASE;\n const computeNextBackoffDelay = (attempts) => {\n return Math.floor(Math.min(constants_1.MAXIMUM_RETRY_DELAY, Math.random() * 2 ** attempts * delayBase));\n };\n const setDelayBase = (delay) => {\n delayBase = delay;\n };\n return {\n computeNextBackoffDelay,\n setDelayBase,\n };\n};\nexports.getDefaultRetryBackoffStrategy = getDefaultRetryBackoffStrategy;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getDefaultRetryToken = void 0;\nconst constants_1 = require(\"./constants\");\nconst defaultRetryBackoffStrategy_1 = require(\"./defaultRetryBackoffStrategy\");\nconst getDefaultRetryToken = (initialRetryTokens, initialRetryDelay, initialRetryCount, options) => {\n var _a, _b, _c;\n const MAX_CAPACITY = initialRetryTokens;\n const retryCost = (_a = options === null || options === void 0 ? void 0 : options.retryCost) !== null && _a !== void 0 ? _a : constants_1.RETRY_COST;\n const timeoutRetryCost = (_b = options === null || options === void 0 ? void 0 : options.timeoutRetryCost) !== null && _b !== void 0 ? _b : constants_1.TIMEOUT_RETRY_COST;\n const retryBackoffStrategy = (_c = options === null || options === void 0 ? void 0 : options.retryBackoffStrategy) !== null && _c !== void 0 ? _c : (0, defaultRetryBackoffStrategy_1.getDefaultRetryBackoffStrategy)();\n let availableCapacity = initialRetryTokens;\n let retryDelay = Math.min(constants_1.MAXIMUM_RETRY_DELAY, initialRetryDelay);\n let lastRetryCost = undefined;\n let retryCount = initialRetryCount !== null && initialRetryCount !== void 0 ? initialRetryCount : 0;\n const getCapacityAmount = (errorType) => (errorType === \"TRANSIENT\" ? timeoutRetryCost : retryCost);\n const getRetryCount = () => retryCount;\n const getRetryDelay = () => retryDelay;\n const getLastRetryCost = () => lastRetryCost;\n const hasRetryTokens = (errorType) => getCapacityAmount(errorType) <= availableCapacity;\n const getRetryTokenCount = (errorInfo) => {\n const errorType = errorInfo.errorType;\n if (!hasRetryTokens(errorType)) {\n throw new Error(\"No retry token available\");\n }\n const capacityAmount = getCapacityAmount(errorType);\n const delayBase = errorType === \"THROTTLING\" ? constants_1.THROTTLING_RETRY_DELAY_BASE : constants_1.DEFAULT_RETRY_DELAY_BASE;\n retryBackoffStrategy.setDelayBase(delayBase);\n const delayFromErrorType = retryBackoffStrategy.computeNextBackoffDelay(retryCount);\n if (errorInfo.retryAfterHint) {\n const delayFromRetryAfterHint = errorInfo.retryAfterHint.getTime() - Date.now();\n retryDelay = Math.max(delayFromRetryAfterHint || 0, delayFromErrorType);\n }\n else {\n retryDelay = delayFromErrorType;\n }\n retryCount++;\n lastRetryCost = capacityAmount;\n availableCapacity -= capacityAmount;\n return capacityAmount;\n };\n const releaseRetryTokens = (releaseAmount) => {\n availableCapacity += releaseAmount !== null && releaseAmount !== void 0 ? releaseAmount : constants_1.NO_RETRY_INCREMENT;\n availableCapacity = Math.min(availableCapacity, MAX_CAPACITY);\n };\n return {\n getRetryCount,\n getRetryDelay,\n getLastRetryCost,\n hasRetryTokens,\n getRetryTokenCount,\n releaseRetryTokens,\n };\n};\nexports.getDefaultRetryToken = getDefaultRetryToken;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StandardRetryStrategy = void 0;\nconst config_1 = require(\"./config\");\nconst constants_1 = require(\"./constants\");\nconst defaultRetryToken_1 = require(\"./defaultRetryToken\");\nclass StandardRetryStrategy {\n constructor(maxAttemptsProvider) {\n this.maxAttemptsProvider = maxAttemptsProvider;\n this.mode = config_1.RETRY_MODES.STANDARD;\n this.retryToken = (0, defaultRetryToken_1.getDefaultRetryToken)(constants_1.INITIAL_RETRY_TOKENS, constants_1.DEFAULT_RETRY_DELAY_BASE);\n this.maxAttemptsProvider = maxAttemptsProvider;\n }\n async acquireInitialRetryToken(retryTokenScope) {\n return this.retryToken;\n }\n async refreshRetryTokenForRetry(tokenToRenew, errorInfo) {\n const maxAttempts = await this.getMaxAttempts();\n if (this.shouldRetry(tokenToRenew, errorInfo, maxAttempts)) {\n tokenToRenew.getRetryTokenCount(errorInfo);\n return tokenToRenew;\n }\n throw new Error(\"No retry token available\");\n }\n recordSuccess(token) {\n this.retryToken.releaseRetryTokens(token.getLastRetryCost());\n }\n async getMaxAttempts() {\n let maxAttempts;\n try {\n return await this.maxAttemptsProvider();\n }\n catch (error) {\n console.warn(`Max attempts provider could not resolve. Using default of ${config_1.DEFAULT_MAX_ATTEMPTS}`);\n return config_1.DEFAULT_MAX_ATTEMPTS;\n }\n }\n shouldRetry(tokenToRenew, errorInfo, maxAttempts) {\n const attempts = tokenToRenew.getRetryCount();\n return (attempts < maxAttempts &&\n tokenToRenew.hasRetryTokens(errorInfo.errorType) &&\n this.isRetryableError(errorInfo.errorType));\n }\n isRetryableError(errorType) {\n return errorType === \"THROTTLING\" || errorType === \"TRANSIENT\";\n }\n}\nexports.StandardRetryStrategy = StandardRetryStrategy;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AdaptiveRetryStrategy = void 0;\nconst config_1 = require(\"./config\");\nconst DefaultRateLimiter_1 = require(\"./DefaultRateLimiter\");\nconst StandardRetryStrategy_1 = require(\"./StandardRetryStrategy\");\nclass AdaptiveRetryStrategy {\n constructor(maxAttemptsProvider, options) {\n this.maxAttemptsProvider = maxAttemptsProvider;\n this.mode = config_1.RETRY_MODES.ADAPTIVE;\n const { rateLimiter } = options !== null && options !== void 0 ? options : {};\n this.rateLimiter = rateLimiter !== null && rateLimiter !== void 0 ? rateLimiter : new DefaultRateLimiter_1.DefaultRateLimiter();\n this.standardRetryStrategy = new StandardRetryStrategy_1.StandardRetryStrategy(maxAttemptsProvider);\n }\n async acquireInitialRetryToken(retryTokenScope) {\n await this.rateLimiter.getSendToken();\n return this.standardRetryStrategy.acquireInitialRetryToken(retryTokenScope);\n }\n async refreshRetryTokenForRetry(tokenToRenew, errorInfo) {\n this.rateLimiter.updateClientSendingRate(errorInfo);\n return this.standardRetryStrategy.refreshRetryTokenForRetry(tokenToRenew, errorInfo);\n }\n recordSuccess(token) {\n this.rateLimiter.updateClientSendingRate({});\n this.standardRetryStrategy.recordSuccess(token);\n }\n}\nexports.AdaptiveRetryStrategy = AdaptiveRetryStrategy;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./AdaptiveRetryStrategy\"), exports);\ntslib_1.__exportStar(require(\"./DefaultRateLimiter\"), exports);\ntslib_1.__exportStar(require(\"./StandardRetryStrategy\"), exports);\ntslib_1.__exportStar(require(\"./config\"), exports);\ntslib_1.__exportStar(require(\"./constants\"), exports);\ntslib_1.__exportStar(require(\"./types\"), exports);\n", "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = rng;\n\nvar _crypto = _interopRequireDefault(require(\"crypto\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nconst rnds8Pool = new Uint8Array(256); // # of random values to pre-allocate\n\nlet poolPtr = rnds8Pool.length;\n\nfunction rng() {\n if (poolPtr > rnds8Pool.length - 16) {\n _crypto.default.randomFillSync(rnds8Pool);\n\n poolPtr = 0;\n }\n\n return rnds8Pool.slice(poolPtr, poolPtr += 16);\n}", "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _default = /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;\nexports.default = _default;", "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _regex = _interopRequireDefault(require(\"./regex.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction validate(uuid) {\n return typeof uuid === 'string' && _regex.default.test(uuid);\n}\n\nvar _default = validate;\nexports.default = _default;", "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _validate = _interopRequireDefault(require(\"./validate.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\nconst byteToHex = [];\n\nfor (let i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).substr(1));\n}\n\nfunction stringify(arr, offset = 0) {\n // Note: Be careful editing this code! It's been tuned for performance\n // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434\n const uuid = (byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]]).toLowerCase(); // Consistency check for valid UUID. If this throws, it's likely due to one\n // of the following:\n // - One or more input array values don't map to a hex octet (leading to\n // \"undefined\" in the uuid)\n // - Invalid input values for the RFC `version` or `variant` fields\n\n if (!(0, _validate.default)(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n\n return uuid;\n}\n\nvar _default = stringify;\nexports.default = _default;", "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _rng = _interopRequireDefault(require(\"./rng.js\"));\n\nvar _stringify = _interopRequireDefault(require(\"./stringify.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// **`v1()` - Generate time-based UUID**\n//\n// Inspired by https://github.com/LiosK/UUID.js\n// and http://docs.python.org/library/uuid.html\nlet _nodeId;\n\nlet _clockseq; // Previous uuid creation time\n\n\nlet _lastMSecs = 0;\nlet _lastNSecs = 0; // See https://github.com/uuidjs/uuid for API details\n\nfunction v1(options, buf, offset) {\n let i = buf && offset || 0;\n const b = buf || new Array(16);\n options = options || {};\n let node = options.node || _nodeId;\n let clockseq = options.clockseq !== undefined ? options.clockseq : _clockseq; // node and clockseq need to be initialized to random values if they're not\n // specified. We do this lazily to minimize issues related to insufficient\n // system entropy. See #189\n\n if (node == null || clockseq == null) {\n const seedBytes = options.random || (options.rng || _rng.default)();\n\n if (node == null) {\n // Per 4.5, create and 48-bit node id, (47 random bits + multicast bit = 1)\n node = _nodeId = [seedBytes[0] | 0x01, seedBytes[1], seedBytes[2], seedBytes[3], seedBytes[4], seedBytes[5]];\n }\n\n if (clockseq == null) {\n // Per 4.2.2, randomize (14 bit) clockseq\n clockseq = _clockseq = (seedBytes[6] << 8 | seedBytes[7]) & 0x3fff;\n }\n } // UUID timestamps are 100 nano-second units since the Gregorian epoch,\n // (1582-10-15 00:00). JSNumbers aren't precise enough for this, so\n // time is handled internally as 'msecs' (integer milliseconds) and 'nsecs'\n // (100-nanoseconds offset from msecs) since unix epoch, 1970-01-01 00:00.\n\n\n let msecs = options.msecs !== undefined ? options.msecs : Date.now(); // Per 4.2.1.2, use count of uuid's generated during the current clock\n // cycle to simulate higher resolution clock\n\n let nsecs = options.nsecs !== undefined ? options.nsecs : _lastNSecs + 1; // Time since last uuid creation (in msecs)\n\n const dt = msecs - _lastMSecs + (nsecs - _lastNSecs) / 10000; // Per 4.2.1.2, Bump clockseq on clock regression\n\n if (dt < 0 && options.clockseq === undefined) {\n clockseq = clockseq + 1 & 0x3fff;\n } // Reset nsecs if clock regresses (new clockseq) or we've moved onto a new\n // time interval\n\n\n if ((dt < 0 || msecs > _lastMSecs) && options.nsecs === undefined) {\n nsecs = 0;\n } // Per 4.2.1.2 Throw error if too many uuids are requested\n\n\n if (nsecs >= 10000) {\n throw new Error(\"uuid.v1(): Can't create more than 10M uuids/sec\");\n }\n\n _lastMSecs = msecs;\n _lastNSecs = nsecs;\n _clockseq = clockseq; // Per 4.1.4 - Convert from unix epoch to Gregorian epoch\n\n msecs += 12219292800000; // `time_low`\n\n const tl = ((msecs & 0xfffffff) * 10000 + nsecs) % 0x100000000;\n b[i++] = tl >>> 24 & 0xff;\n b[i++] = tl >>> 16 & 0xff;\n b[i++] = tl >>> 8 & 0xff;\n b[i++] = tl & 0xff; // `time_mid`\n\n const tmh = msecs / 0x100000000 * 10000 & 0xfffffff;\n b[i++] = tmh >>> 8 & 0xff;\n b[i++] = tmh & 0xff; // `time_high_and_version`\n\n b[i++] = tmh >>> 24 & 0xf | 0x10; // include version\n\n b[i++] = tmh >>> 16 & 0xff; // `clock_seq_hi_and_reserved` (Per 4.2.2 - include variant)\n\n b[i++] = clockseq >>> 8 | 0x80; // `clock_seq_low`\n\n b[i++] = clockseq & 0xff; // `node`\n\n for (let n = 0; n < 6; ++n) {\n b[i + n] = node[n];\n }\n\n return buf || (0, _stringify.default)(b);\n}\n\nvar _default = v1;\nexports.default = _default;", "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _validate = _interopRequireDefault(require(\"./validate.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction parse(uuid) {\n if (!(0, _validate.default)(uuid)) {\n throw TypeError('Invalid UUID');\n }\n\n let v;\n const arr = new Uint8Array(16); // Parse ########-....-....-....-............\n\n arr[0] = (v = parseInt(uuid.slice(0, 8), 16)) >>> 24;\n arr[1] = v >>> 16 & 0xff;\n arr[2] = v >>> 8 & 0xff;\n arr[3] = v & 0xff; // Parse ........-####-....-....-............\n\n arr[4] = (v = parseInt(uuid.slice(9, 13), 16)) >>> 8;\n arr[5] = v & 0xff; // Parse ........-....-####-....-............\n\n arr[6] = (v = parseInt(uuid.slice(14, 18), 16)) >>> 8;\n arr[7] = v & 0xff; // Parse ........-....-....-####-............\n\n arr[8] = (v = parseInt(uuid.slice(19, 23), 16)) >>> 8;\n arr[9] = v & 0xff; // Parse ........-....-....-....-############\n // (Use \"/\" to avoid 32-bit truncation when bit-shifting high-order bytes)\n\n arr[10] = (v = parseInt(uuid.slice(24, 36), 16)) / 0x10000000000 & 0xff;\n arr[11] = v / 0x100000000 & 0xff;\n arr[12] = v >>> 24 & 0xff;\n arr[13] = v >>> 16 & 0xff;\n arr[14] = v >>> 8 & 0xff;\n arr[15] = v & 0xff;\n return arr;\n}\n\nvar _default = parse;\nexports.default = _default;", "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = _default;\nexports.URL = exports.DNS = void 0;\n\nvar _stringify = _interopRequireDefault(require(\"./stringify.js\"));\n\nvar _parse = _interopRequireDefault(require(\"./parse.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction stringToBytes(str) {\n str = unescape(encodeURIComponent(str)); // UTF8 escape\n\n const bytes = [];\n\n for (let i = 0; i < str.length; ++i) {\n bytes.push(str.charCodeAt(i));\n }\n\n return bytes;\n}\n\nconst DNS = '6ba7b810-9dad-11d1-80b4-00c04fd430c8';\nexports.DNS = DNS;\nconst URL = '6ba7b811-9dad-11d1-80b4-00c04fd430c8';\nexports.URL = URL;\n\nfunction _default(name, version, hashfunc) {\n function generateUUID(value, namespace, buf, offset) {\n if (typeof value === 'string') {\n value = stringToBytes(value);\n }\n\n if (typeof namespace === 'string') {\n namespace = (0, _parse.default)(namespace);\n }\n\n if (namespace.length !== 16) {\n throw TypeError('Namespace must be array-like (16 iterable integer values, 0-255)');\n } // Compute hash of namespace and value, Per 4.3\n // Future: Use spread syntax when supported on all platforms, e.g. `bytes =\n // hashfunc([...namespace, ... value])`\n\n\n let bytes = new Uint8Array(16 + value.length);\n bytes.set(namespace);\n bytes.set(value, namespace.length);\n bytes = hashfunc(bytes);\n bytes[6] = bytes[6] & 0x0f | version;\n bytes[8] = bytes[8] & 0x3f | 0x80;\n\n if (buf) {\n offset = offset || 0;\n\n for (let i = 0; i < 16; ++i) {\n buf[offset + i] = bytes[i];\n }\n\n return buf;\n }\n\n return (0, _stringify.default)(bytes);\n } // Function#name is not settable on some platforms (#270)\n\n\n try {\n generateUUID.name = name; // eslint-disable-next-line no-empty\n } catch (err) {} // For CommonJS default export support\n\n\n generateUUID.DNS = DNS;\n generateUUID.URL = URL;\n return generateUUID;\n}", "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _crypto = _interopRequireDefault(require(\"crypto\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction md5(bytes) {\n if (Array.isArray(bytes)) {\n bytes = Buffer.from(bytes);\n } else if (typeof bytes === 'string') {\n bytes = Buffer.from(bytes, 'utf8');\n }\n\n return _crypto.default.createHash('md5').update(bytes).digest();\n}\n\nvar _default = md5;\nexports.default = _default;", "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _v = _interopRequireDefault(require(\"./v35.js\"));\n\nvar _md = _interopRequireDefault(require(\"./md5.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nconst v3 = (0, _v.default)('v3', 0x30, _md.default);\nvar _default = v3;\nexports.default = _default;", "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _rng = _interopRequireDefault(require(\"./rng.js\"));\n\nvar _stringify = _interopRequireDefault(require(\"./stringify.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction v4(options, buf, offset) {\n options = options || {};\n\n const rnds = options.random || (options.rng || _rng.default)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n\n\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided\n\n if (buf) {\n offset = offset || 0;\n\n for (let i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n\n return buf;\n }\n\n return (0, _stringify.default)(rnds);\n}\n\nvar _default = v4;\nexports.default = _default;", "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _crypto = _interopRequireDefault(require(\"crypto\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction sha1(bytes) {\n if (Array.isArray(bytes)) {\n bytes = Buffer.from(bytes);\n } else if (typeof bytes === 'string') {\n bytes = Buffer.from(bytes, 'utf8');\n }\n\n return _crypto.default.createHash('sha1').update(bytes).digest();\n}\n\nvar _default = sha1;\nexports.default = _default;", "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _v = _interopRequireDefault(require(\"./v35.js\"));\n\nvar _sha = _interopRequireDefault(require(\"./sha1.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nconst v5 = (0, _v.default)('v5', 0x50, _sha.default);\nvar _default = v5;\nexports.default = _default;", "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _default = '00000000-0000-0000-0000-000000000000';\nexports.default = _default;", "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _validate = _interopRequireDefault(require(\"./validate.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction version(uuid) {\n if (!(0, _validate.default)(uuid)) {\n throw TypeError('Invalid UUID');\n }\n\n return parseInt(uuid.substr(14, 1), 16);\n}\n\nvar _default = version;\nexports.default = _default;", "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"v1\", {\n enumerable: true,\n get: function () {\n return _v.default;\n }\n});\nObject.defineProperty(exports, \"v3\", {\n enumerable: true,\n get: function () {\n return _v2.default;\n }\n});\nObject.defineProperty(exports, \"v4\", {\n enumerable: true,\n get: function () {\n return _v3.default;\n }\n});\nObject.defineProperty(exports, \"v5\", {\n enumerable: true,\n get: function () {\n return _v4.default;\n }\n});\nObject.defineProperty(exports, \"NIL\", {\n enumerable: true,\n get: function () {\n return _nil.default;\n }\n});\nObject.defineProperty(exports, \"version\", {\n enumerable: true,\n get: function () {\n return _version.default;\n }\n});\nObject.defineProperty(exports, \"validate\", {\n enumerable: true,\n get: function () {\n return _validate.default;\n }\n});\nObject.defineProperty(exports, \"stringify\", {\n enumerable: true,\n get: function () {\n return _stringify.default;\n }\n});\nObject.defineProperty(exports, \"parse\", {\n enumerable: true,\n get: function () {\n return _parse.default;\n }\n});\n\nvar _v = _interopRequireDefault(require(\"./v1.js\"));\n\nvar _v2 = _interopRequireDefault(require(\"./v3.js\"));\n\nvar _v3 = _interopRequireDefault(require(\"./v4.js\"));\n\nvar _v4 = _interopRequireDefault(require(\"./v5.js\"));\n\nvar _nil = _interopRequireDefault(require(\"./nil.js\"));\n\nvar _version = _interopRequireDefault(require(\"./version.js\"));\n\nvar _validate = _interopRequireDefault(require(\"./validate.js\"));\n\nvar _stringify = _interopRequireDefault(require(\"./stringify.js\"));\n\nvar _parse = _interopRequireDefault(require(\"./parse.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getDefaultRetryQuota = void 0;\nconst util_retry_1 = require(\"@aws-sdk/util-retry\");\nconst getDefaultRetryQuota = (initialRetryTokens, options) => {\n var _a, _b, _c;\n const MAX_CAPACITY = initialRetryTokens;\n const noRetryIncrement = (_a = options === null || options === void 0 ? void 0 : options.noRetryIncrement) !== null && _a !== void 0 ? _a : util_retry_1.NO_RETRY_INCREMENT;\n const retryCost = (_b = options === null || options === void 0 ? void 0 : options.retryCost) !== null && _b !== void 0 ? _b : util_retry_1.RETRY_COST;\n const timeoutRetryCost = (_c = options === null || options === void 0 ? void 0 : options.timeoutRetryCost) !== null && _c !== void 0 ? _c : util_retry_1.TIMEOUT_RETRY_COST;\n let availableCapacity = initialRetryTokens;\n const getCapacityAmount = (error) => (error.name === \"TimeoutError\" ? timeoutRetryCost : retryCost);\n const hasRetryTokens = (error) => getCapacityAmount(error) <= availableCapacity;\n const retrieveRetryTokens = (error) => {\n if (!hasRetryTokens(error)) {\n throw new Error(\"No retry token available\");\n }\n const capacityAmount = getCapacityAmount(error);\n availableCapacity -= capacityAmount;\n return capacityAmount;\n };\n const releaseRetryTokens = (capacityReleaseAmount) => {\n availableCapacity += capacityReleaseAmount !== null && capacityReleaseAmount !== void 0 ? capacityReleaseAmount : noRetryIncrement;\n availableCapacity = Math.min(availableCapacity, MAX_CAPACITY);\n };\n return Object.freeze({\n hasRetryTokens,\n retrieveRetryTokens,\n releaseRetryTokens,\n });\n};\nexports.getDefaultRetryQuota = getDefaultRetryQuota;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.defaultDelayDecider = void 0;\nconst util_retry_1 = require(\"@aws-sdk/util-retry\");\nconst defaultDelayDecider = (delayBase, attempts) => Math.floor(Math.min(util_retry_1.MAXIMUM_RETRY_DELAY, Math.random() * 2 ** attempts * delayBase));\nexports.defaultDelayDecider = defaultDelayDecider;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.defaultRetryDecider = void 0;\nconst service_error_classification_1 = require(\"@aws-sdk/service-error-classification\");\nconst defaultRetryDecider = (error) => {\n if (!error) {\n return false;\n }\n return (0, service_error_classification_1.isRetryableByTrait)(error) || (0, service_error_classification_1.isClockSkewError)(error) || (0, service_error_classification_1.isThrottlingError)(error) || (0, service_error_classification_1.isTransientError)(error);\n};\nexports.defaultRetryDecider = defaultRetryDecider;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.asSdkError = void 0;\nconst asSdkError = (error) => {\n if (error instanceof Error)\n return error;\n if (error instanceof Object)\n return Object.assign(new Error(), error);\n if (typeof error === \"string\")\n return new Error(error);\n return new Error(`AWS SDK error wrapper for ${error}`);\n};\nexports.asSdkError = asSdkError;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StandardRetryStrategy = void 0;\nconst protocol_http_1 = require(\"@aws-sdk/protocol-http\");\nconst service_error_classification_1 = require(\"@aws-sdk/service-error-classification\");\nconst util_retry_1 = require(\"@aws-sdk/util-retry\");\nconst uuid_1 = require(\"uuid\");\nconst defaultRetryQuota_1 = require(\"./defaultRetryQuota\");\nconst delayDecider_1 = require(\"./delayDecider\");\nconst retryDecider_1 = require(\"./retryDecider\");\nconst util_1 = require(\"./util\");\nclass StandardRetryStrategy {\n constructor(maxAttemptsProvider, options) {\n var _a, _b, _c;\n this.maxAttemptsProvider = maxAttemptsProvider;\n this.mode = util_retry_1.RETRY_MODES.STANDARD;\n this.retryDecider = (_a = options === null || options === void 0 ? void 0 : options.retryDecider) !== null && _a !== void 0 ? _a : retryDecider_1.defaultRetryDecider;\n this.delayDecider = (_b = options === null || options === void 0 ? void 0 : options.delayDecider) !== null && _b !== void 0 ? _b : delayDecider_1.defaultDelayDecider;\n this.retryQuota = (_c = options === null || options === void 0 ? void 0 : options.retryQuota) !== null && _c !== void 0 ? _c : (0, defaultRetryQuota_1.getDefaultRetryQuota)(util_retry_1.INITIAL_RETRY_TOKENS);\n }\n shouldRetry(error, attempts, maxAttempts) {\n return attempts < maxAttempts && this.retryDecider(error) && this.retryQuota.hasRetryTokens(error);\n }\n async getMaxAttempts() {\n let maxAttempts;\n try {\n maxAttempts = await this.maxAttemptsProvider();\n }\n catch (error) {\n maxAttempts = util_retry_1.DEFAULT_MAX_ATTEMPTS;\n }\n return maxAttempts;\n }\n async retry(next, args, options) {\n let retryTokenAmount;\n let attempts = 0;\n let totalDelay = 0;\n const maxAttempts = await this.getMaxAttempts();\n const { request } = args;\n if (protocol_http_1.HttpRequest.isInstance(request)) {\n request.headers[util_retry_1.INVOCATION_ID_HEADER] = (0, uuid_1.v4)();\n }\n while (true) {\n try {\n if (protocol_http_1.HttpRequest.isInstance(request)) {\n request.headers[util_retry_1.REQUEST_HEADER] = `attempt=${attempts + 1}; max=${maxAttempts}`;\n }\n if (options === null || options === void 0 ? void 0 : options.beforeRequest) {\n await options.beforeRequest();\n }\n const { response, output } = await next(args);\n if (options === null || options === void 0 ? void 0 : options.afterRequest) {\n options.afterRequest(response);\n }\n this.retryQuota.releaseRetryTokens(retryTokenAmount);\n output.$metadata.attempts = attempts + 1;\n output.$metadata.totalRetryDelay = totalDelay;\n return { response, output };\n }\n catch (e) {\n const err = (0, util_1.asSdkError)(e);\n attempts++;\n if (this.shouldRetry(err, attempts, maxAttempts)) {\n retryTokenAmount = this.retryQuota.retrieveRetryTokens(err);\n const delayFromDecider = this.delayDecider((0, service_error_classification_1.isThrottlingError)(err) ? util_retry_1.THROTTLING_RETRY_DELAY_BASE : util_retry_1.DEFAULT_RETRY_DELAY_BASE, attempts);\n const delayFromResponse = getDelayFromRetryAfterHeader(err.$response);\n const delay = Math.max(delayFromResponse || 0, delayFromDecider);\n totalDelay += delay;\n await new Promise((resolve) => setTimeout(resolve, delay));\n continue;\n }\n if (!err.$metadata) {\n err.$metadata = {};\n }\n err.$metadata.attempts = attempts;\n err.$metadata.totalRetryDelay = totalDelay;\n throw err;\n }\n }\n }\n}\nexports.StandardRetryStrategy = StandardRetryStrategy;\nconst getDelayFromRetryAfterHeader = (response) => {\n if (!protocol_http_1.HttpResponse.isInstance(response))\n return;\n const retryAfterHeaderName = Object.keys(response.headers).find((key) => key.toLowerCase() === \"retry-after\");\n if (!retryAfterHeaderName)\n return;\n const retryAfter = response.headers[retryAfterHeaderName];\n const retryAfterSeconds = Number(retryAfter);\n if (!Number.isNaN(retryAfterSeconds))\n return retryAfterSeconds * 1000;\n const retryAfterDate = new Date(retryAfter);\n return retryAfterDate.getTime() - Date.now();\n};\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AdaptiveRetryStrategy = void 0;\nconst util_retry_1 = require(\"@aws-sdk/util-retry\");\nconst StandardRetryStrategy_1 = require(\"./StandardRetryStrategy\");\nclass AdaptiveRetryStrategy extends StandardRetryStrategy_1.StandardRetryStrategy {\n constructor(maxAttemptsProvider, options) {\n const { rateLimiter, ...superOptions } = options !== null && options !== void 0 ? options : {};\n super(maxAttemptsProvider, superOptions);\n this.rateLimiter = rateLimiter !== null && rateLimiter !== void 0 ? rateLimiter : new util_retry_1.DefaultRateLimiter();\n this.mode = util_retry_1.RETRY_MODES.ADAPTIVE;\n }\n async retry(next, args) {\n return super.retry(next, args, {\n beforeRequest: async () => {\n return this.rateLimiter.getSendToken();\n },\n afterRequest: (response) => {\n this.rateLimiter.updateClientSendingRate(response);\n },\n });\n }\n}\nexports.AdaptiveRetryStrategy = AdaptiveRetryStrategy;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NODE_RETRY_MODE_CONFIG_OPTIONS = exports.CONFIG_RETRY_MODE = exports.ENV_RETRY_MODE = exports.resolveRetryConfig = exports.NODE_MAX_ATTEMPT_CONFIG_OPTIONS = exports.CONFIG_MAX_ATTEMPTS = exports.ENV_MAX_ATTEMPTS = void 0;\nconst util_middleware_1 = require(\"@aws-sdk/util-middleware\");\nconst util_retry_1 = require(\"@aws-sdk/util-retry\");\nexports.ENV_MAX_ATTEMPTS = \"AWS_MAX_ATTEMPTS\";\nexports.CONFIG_MAX_ATTEMPTS = \"max_attempts\";\nexports.NODE_MAX_ATTEMPT_CONFIG_OPTIONS = {\n environmentVariableSelector: (env) => {\n const value = env[exports.ENV_MAX_ATTEMPTS];\n if (!value)\n return undefined;\n const maxAttempt = parseInt(value);\n if (Number.isNaN(maxAttempt)) {\n throw new Error(`Environment variable ${exports.ENV_MAX_ATTEMPTS} mast be a number, got \"${value}\"`);\n }\n return maxAttempt;\n },\n configFileSelector: (profile) => {\n const value = profile[exports.CONFIG_MAX_ATTEMPTS];\n if (!value)\n return undefined;\n const maxAttempt = parseInt(value);\n if (Number.isNaN(maxAttempt)) {\n throw new Error(`Shared config file entry ${exports.CONFIG_MAX_ATTEMPTS} mast be a number, got \"${value}\"`);\n }\n return maxAttempt;\n },\n default: util_retry_1.DEFAULT_MAX_ATTEMPTS,\n};\nconst resolveRetryConfig = (input) => {\n var _a;\n const { retryStrategy } = input;\n const maxAttempts = (0, util_middleware_1.normalizeProvider)((_a = input.maxAttempts) !== null && _a !== void 0 ? _a : util_retry_1.DEFAULT_MAX_ATTEMPTS);\n return {\n ...input,\n maxAttempts,\n retryStrategy: async () => {\n if (retryStrategy) {\n return retryStrategy;\n }\n const retryMode = await (0, util_middleware_1.normalizeProvider)(input.retryMode)();\n if (retryMode === util_retry_1.RETRY_MODES.ADAPTIVE) {\n return new util_retry_1.AdaptiveRetryStrategy(maxAttempts);\n }\n return new util_retry_1.StandardRetryStrategy(maxAttempts);\n },\n };\n};\nexports.resolveRetryConfig = resolveRetryConfig;\nexports.ENV_RETRY_MODE = \"AWS_RETRY_MODE\";\nexports.CONFIG_RETRY_MODE = \"retry_mode\";\nexports.NODE_RETRY_MODE_CONFIG_OPTIONS = {\n environmentVariableSelector: (env) => env[exports.ENV_RETRY_MODE],\n configFileSelector: (profile) => profile[exports.CONFIG_RETRY_MODE],\n default: util_retry_1.DEFAULT_RETRY_MODE,\n};\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getOmitRetryHeadersPlugin = exports.omitRetryHeadersMiddlewareOptions = exports.omitRetryHeadersMiddleware = void 0;\nconst protocol_http_1 = require(\"@aws-sdk/protocol-http\");\nconst util_retry_1 = require(\"@aws-sdk/util-retry\");\nconst omitRetryHeadersMiddleware = () => (next) => async (args) => {\n const { request } = args;\n if (protocol_http_1.HttpRequest.isInstance(request)) {\n delete request.headers[util_retry_1.INVOCATION_ID_HEADER];\n delete request.headers[util_retry_1.REQUEST_HEADER];\n }\n return next(args);\n};\nexports.omitRetryHeadersMiddleware = omitRetryHeadersMiddleware;\nexports.omitRetryHeadersMiddlewareOptions = {\n name: \"omitRetryHeadersMiddleware\",\n tags: [\"RETRY\", \"HEADERS\", \"OMIT_RETRY_HEADERS\"],\n relation: \"before\",\n toMiddleware: \"awsAuthMiddleware\",\n override: true,\n};\nconst getOmitRetryHeadersPlugin = (options) => ({\n applyToStack: (clientStack) => {\n clientStack.addRelativeTo((0, exports.omitRetryHeadersMiddleware)(), exports.omitRetryHeadersMiddlewareOptions);\n },\n});\nexports.getOmitRetryHeadersPlugin = getOmitRetryHeadersPlugin;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRetryAfterHint = exports.getRetryPlugin = exports.retryMiddlewareOptions = exports.retryMiddleware = void 0;\nconst protocol_http_1 = require(\"@aws-sdk/protocol-http\");\nconst service_error_classification_1 = require(\"@aws-sdk/service-error-classification\");\nconst util_retry_1 = require(\"@aws-sdk/util-retry\");\nconst uuid_1 = require(\"uuid\");\nconst util_1 = require(\"./util\");\nconst retryMiddleware = (options) => (next, context) => async (args) => {\n let retryStrategy = await options.retryStrategy();\n const maxAttempts = await options.maxAttempts();\n if (isRetryStrategyV2(retryStrategy)) {\n retryStrategy = retryStrategy;\n let retryToken = await retryStrategy.acquireInitialRetryToken(context[\"partition_id\"]);\n let lastError = new Error();\n let attempts = 0;\n let totalRetryDelay = 0;\n const { request } = args;\n if (protocol_http_1.HttpRequest.isInstance(request)) {\n request.headers[util_retry_1.INVOCATION_ID_HEADER] = (0, uuid_1.v4)();\n }\n while (true) {\n try {\n if (protocol_http_1.HttpRequest.isInstance(request)) {\n request.headers[util_retry_1.REQUEST_HEADER] = `attempt=${attempts + 1}; max=${maxAttempts}`;\n }\n const { response, output } = await next(args);\n retryStrategy.recordSuccess(retryToken);\n output.$metadata.attempts = attempts + 1;\n output.$metadata.totalRetryDelay = totalRetryDelay;\n return { response, output };\n }\n catch (e) {\n const retryErrorInfo = getRetyErrorInto(e);\n lastError = (0, util_1.asSdkError)(e);\n try {\n retryToken = await retryStrategy.refreshRetryTokenForRetry(retryToken, retryErrorInfo);\n }\n catch (refreshError) {\n if (!lastError.$metadata) {\n lastError.$metadata = {};\n }\n lastError.$metadata.attempts = attempts + 1;\n lastError.$metadata.totalRetryDelay = totalRetryDelay;\n throw lastError;\n }\n attempts = retryToken.getRetryCount();\n const delay = retryToken.getRetryDelay();\n totalRetryDelay += delay;\n await new Promise((resolve) => setTimeout(resolve, delay));\n }\n }\n }\n else {\n retryStrategy = retryStrategy;\n if (retryStrategy === null || retryStrategy === void 0 ? void 0 : retryStrategy.mode)\n context.userAgent = [...(context.userAgent || []), [\"cfg/retry-mode\", retryStrategy.mode]];\n return retryStrategy.retry(next, args);\n }\n};\nexports.retryMiddleware = retryMiddleware;\nconst isRetryStrategyV2 = (retryStrategy) => typeof retryStrategy.acquireInitialRetryToken !== \"undefined\" &&\n typeof retryStrategy.refreshRetryTokenForRetry !== \"undefined\" &&\n typeof retryStrategy.recordSuccess !== \"undefined\";\nconst getRetyErrorInto = (error) => {\n const errorInfo = {\n errorType: getRetryErrorType(error),\n };\n const retryAfterHint = (0, exports.getRetryAfterHint)(error.$response);\n if (retryAfterHint) {\n errorInfo.retryAfterHint = retryAfterHint;\n }\n return errorInfo;\n};\nconst getRetryErrorType = (error) => {\n if ((0, service_error_classification_1.isThrottlingError)(error))\n return \"THROTTLING\";\n if ((0, service_error_classification_1.isTransientError)(error))\n return \"TRANSIENT\";\n if ((0, service_error_classification_1.isServerError)(error))\n return \"SERVER_ERROR\";\n return \"CLIENT_ERROR\";\n};\nexports.retryMiddlewareOptions = {\n name: \"retryMiddleware\",\n tags: [\"RETRY\"],\n step: \"finalizeRequest\",\n priority: \"high\",\n override: true,\n};\nconst getRetryPlugin = (options) => ({\n applyToStack: (clientStack) => {\n clientStack.add((0, exports.retryMiddleware)(options), exports.retryMiddlewareOptions);\n },\n});\nexports.getRetryPlugin = getRetryPlugin;\nconst getRetryAfterHint = (response) => {\n if (!protocol_http_1.HttpResponse.isInstance(response))\n return;\n const retryAfterHeaderName = Object.keys(response.headers).find((key) => key.toLowerCase() === \"retry-after\");\n if (!retryAfterHeaderName)\n return;\n const retryAfter = response.headers[retryAfterHeaderName];\n const retryAfterSeconds = Number(retryAfter);\n if (!Number.isNaN(retryAfterSeconds))\n return new Date(retryAfterSeconds * 1000);\n const retryAfterDate = new Date(retryAfter);\n return retryAfterDate;\n};\nexports.getRetryAfterHint = getRetryAfterHint;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./AdaptiveRetryStrategy\"), exports);\ntslib_1.__exportStar(require(\"./StandardRetryStrategy\"), exports);\ntslib_1.__exportStar(require(\"./configurations\"), exports);\ntslib_1.__exportStar(require(\"./delayDecider\"), exports);\ntslib_1.__exportStar(require(\"./omitRetryHeadersMiddleware\"), exports);\ntslib_1.__exportStar(require(\"./retryDecider\"), exports);\ntslib_1.__exportStar(require(\"./retryMiddleware\"), exports);\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ProviderError = void 0;\nclass ProviderError extends Error {\n constructor(message, tryNextLink = true) {\n super(message);\n this.tryNextLink = tryNextLink;\n this.name = \"ProviderError\";\n Object.setPrototypeOf(this, ProviderError.prototype);\n }\n static from(error, tryNextLink = true) {\n return Object.assign(new this(error.message, tryNextLink), error);\n }\n}\nexports.ProviderError = ProviderError;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CredentialsProviderError = void 0;\nconst ProviderError_1 = require(\"./ProviderError\");\nclass CredentialsProviderError extends ProviderError_1.ProviderError {\n constructor(message, tryNextLink = true) {\n super(message, tryNextLink);\n this.tryNextLink = tryNextLink;\n this.name = \"CredentialsProviderError\";\n Object.setPrototypeOf(this, CredentialsProviderError.prototype);\n }\n}\nexports.CredentialsProviderError = CredentialsProviderError;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TokenProviderError = void 0;\nconst ProviderError_1 = require(\"./ProviderError\");\nclass TokenProviderError extends ProviderError_1.ProviderError {\n constructor(message, tryNextLink = true) {\n super(message, tryNextLink);\n this.tryNextLink = tryNextLink;\n this.name = \"TokenProviderError\";\n Object.setPrototypeOf(this, TokenProviderError.prototype);\n }\n}\nexports.TokenProviderError = TokenProviderError;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.chain = void 0;\nconst ProviderError_1 = require(\"./ProviderError\");\nfunction chain(...providers) {\n return () => {\n let promise = Promise.reject(new ProviderError_1.ProviderError(\"No providers in chain\"));\n for (const provider of providers) {\n promise = promise.catch((err) => {\n if (err === null || err === void 0 ? void 0 : err.tryNextLink) {\n return provider();\n }\n throw err;\n });\n }\n return promise;\n };\n}\nexports.chain = chain;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fromStatic = void 0;\nconst fromStatic = (staticValue) => () => Promise.resolve(staticValue);\nexports.fromStatic = fromStatic;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.memoize = void 0;\nconst memoize = (provider, isExpired, requiresRefresh) => {\n let resolved;\n let pending;\n let hasResult;\n let isConstant = false;\n const coalesceProvider = async () => {\n if (!pending) {\n pending = provider();\n }\n try {\n resolved = await pending;\n hasResult = true;\n isConstant = false;\n }\n finally {\n pending = undefined;\n }\n return resolved;\n };\n if (isExpired === undefined) {\n return async (options) => {\n if (!hasResult || (options === null || options === void 0 ? void 0 : options.forceRefresh)) {\n resolved = await coalesceProvider();\n }\n return resolved;\n };\n }\n return async (options) => {\n if (!hasResult || (options === null || options === void 0 ? void 0 : options.forceRefresh)) {\n resolved = await coalesceProvider();\n }\n if (isConstant) {\n return resolved;\n }\n if (requiresRefresh && !requiresRefresh(resolved)) {\n isConstant = true;\n return resolved;\n }\n if (isExpired(resolved)) {\n await coalesceProvider();\n return resolved;\n }\n return resolved;\n };\n};\nexports.memoize = memoize;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./CredentialsProviderError\"), exports);\ntslib_1.__exportStar(require(\"./ProviderError\"), exports);\ntslib_1.__exportStar(require(\"./TokenProviderError\"), exports);\ntslib_1.__exportStar(require(\"./chain\"), exports);\ntslib_1.__exportStar(require(\"./fromStatic\"), exports);\ntslib_1.__exportStar(require(\"./memoize\"), exports);\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.toHex = exports.fromHex = void 0;\nconst SHORT_TO_HEX = {};\nconst HEX_TO_SHORT = {};\nfor (let i = 0; i < 256; i++) {\n let encodedByte = i.toString(16).toLowerCase();\n if (encodedByte.length === 1) {\n encodedByte = `0${encodedByte}`;\n }\n SHORT_TO_HEX[i] = encodedByte;\n HEX_TO_SHORT[encodedByte] = i;\n}\nfunction fromHex(encoded) {\n if (encoded.length % 2 !== 0) {\n throw new Error(\"Hex encoded strings must have an even number length\");\n }\n const out = new Uint8Array(encoded.length / 2);\n for (let i = 0; i < encoded.length; i += 2) {\n const encodedByte = encoded.slice(i, i + 2).toLowerCase();\n if (encodedByte in HEX_TO_SHORT) {\n out[i / 2] = HEX_TO_SHORT[encodedByte];\n }\n else {\n throw new Error(`Cannot decode unrecognized sequence ${encodedByte} as hexadecimal`);\n }\n }\n return out;\n}\nexports.fromHex = fromHex;\nfunction toHex(bytes) {\n let out = \"\";\n for (let i = 0; i < bytes.byteLength; i++) {\n out += SHORT_TO_HEX[bytes[i]];\n }\n return out;\n}\nexports.toHex = toHex;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isArrayBuffer = void 0;\nconst isArrayBuffer = (arg) => (typeof ArrayBuffer === \"function\" && arg instanceof ArrayBuffer) ||\n Object.prototype.toString.call(arg) === \"[object ArrayBuffer]\";\nexports.isArrayBuffer = isArrayBuffer;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fromString = exports.fromArrayBuffer = void 0;\nconst is_array_buffer_1 = require(\"@aws-sdk/is-array-buffer\");\nconst buffer_1 = require(\"buffer\");\nconst fromArrayBuffer = (input, offset = 0, length = input.byteLength - offset) => {\n if (!(0, is_array_buffer_1.isArrayBuffer)(input)) {\n throw new TypeError(`The \"input\" argument must be ArrayBuffer. Received type ${typeof input} (${input})`);\n }\n return buffer_1.Buffer.from(input, offset, length);\n};\nexports.fromArrayBuffer = fromArrayBuffer;\nconst fromString = (input, encoding) => {\n if (typeof input !== \"string\") {\n throw new TypeError(`The \"input\" argument must be of type string. Received type ${typeof input} (${input})`);\n }\n return encoding ? buffer_1.Buffer.from(input, encoding) : buffer_1.Buffer.from(input);\n};\nexports.fromString = fromString;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fromUtf8 = void 0;\nconst util_buffer_from_1 = require(\"@aws-sdk/util-buffer-from\");\nconst fromUtf8 = (input) => {\n const buf = (0, util_buffer_from_1.fromString)(input, \"utf8\");\n return new Uint8Array(buf.buffer, buf.byteOffset, buf.byteLength / Uint8Array.BYTES_PER_ELEMENT);\n};\nexports.fromUtf8 = fromUtf8;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.toUint8Array = void 0;\nconst fromUtf8_1 = require(\"./fromUtf8\");\nconst toUint8Array = (data) => {\n if (typeof data === \"string\") {\n return (0, fromUtf8_1.fromUtf8)(data);\n }\n if (ArrayBuffer.isView(data)) {\n return new Uint8Array(data.buffer, data.byteOffset, data.byteLength / Uint8Array.BYTES_PER_ELEMENT);\n }\n return new Uint8Array(data);\n};\nexports.toUint8Array = toUint8Array;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.toUtf8 = void 0;\nconst util_buffer_from_1 = require(\"@aws-sdk/util-buffer-from\");\nconst toUtf8 = (input) => (0, util_buffer_from_1.fromArrayBuffer)(input.buffer, input.byteOffset, input.byteLength).toString(\"utf8\");\nexports.toUtf8 = toUtf8;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./fromUtf8\"), exports);\ntslib_1.__exportStar(require(\"./toUint8Array\"), exports);\ntslib_1.__exportStar(require(\"./toUtf8\"), exports);\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MAX_PRESIGNED_TTL = exports.KEY_TYPE_IDENTIFIER = exports.MAX_CACHE_SIZE = exports.UNSIGNED_PAYLOAD = exports.EVENT_ALGORITHM_IDENTIFIER = exports.ALGORITHM_IDENTIFIER_V4A = exports.ALGORITHM_IDENTIFIER = exports.UNSIGNABLE_PATTERNS = exports.SEC_HEADER_PATTERN = exports.PROXY_HEADER_PATTERN = exports.ALWAYS_UNSIGNABLE_HEADERS = exports.HOST_HEADER = exports.TOKEN_HEADER = exports.SHA256_HEADER = exports.SIGNATURE_HEADER = exports.GENERATED_HEADERS = exports.DATE_HEADER = exports.AMZ_DATE_HEADER = exports.AUTH_HEADER = exports.REGION_SET_PARAM = exports.TOKEN_QUERY_PARAM = exports.SIGNATURE_QUERY_PARAM = exports.EXPIRES_QUERY_PARAM = exports.SIGNED_HEADERS_QUERY_PARAM = exports.AMZ_DATE_QUERY_PARAM = exports.CREDENTIAL_QUERY_PARAM = exports.ALGORITHM_QUERY_PARAM = void 0;\nexports.ALGORITHM_QUERY_PARAM = \"X-Amz-Algorithm\";\nexports.CREDENTIAL_QUERY_PARAM = \"X-Amz-Credential\";\nexports.AMZ_DATE_QUERY_PARAM = \"X-Amz-Date\";\nexports.SIGNED_HEADERS_QUERY_PARAM = \"X-Amz-SignedHeaders\";\nexports.EXPIRES_QUERY_PARAM = \"X-Amz-Expires\";\nexports.SIGNATURE_QUERY_PARAM = \"X-Amz-Signature\";\nexports.TOKEN_QUERY_PARAM = \"X-Amz-Security-Token\";\nexports.REGION_SET_PARAM = \"X-Amz-Region-Set\";\nexports.AUTH_HEADER = \"authorization\";\nexports.AMZ_DATE_HEADER = exports.AMZ_DATE_QUERY_PARAM.toLowerCase();\nexports.DATE_HEADER = \"date\";\nexports.GENERATED_HEADERS = [exports.AUTH_HEADER, exports.AMZ_DATE_HEADER, exports.DATE_HEADER];\nexports.SIGNATURE_HEADER = exports.SIGNATURE_QUERY_PARAM.toLowerCase();\nexports.SHA256_HEADER = \"x-amz-content-sha256\";\nexports.TOKEN_HEADER = exports.TOKEN_QUERY_PARAM.toLowerCase();\nexports.HOST_HEADER = \"host\";\nexports.ALWAYS_UNSIGNABLE_HEADERS = {\n authorization: true,\n \"cache-control\": true,\n connection: true,\n expect: true,\n from: true,\n \"keep-alive\": true,\n \"max-forwards\": true,\n pragma: true,\n referer: true,\n te: true,\n trailer: true,\n \"transfer-encoding\": true,\n upgrade: true,\n \"user-agent\": true,\n \"x-amzn-trace-id\": true,\n};\nexports.PROXY_HEADER_PATTERN = /^proxy-/;\nexports.SEC_HEADER_PATTERN = /^sec-/;\nexports.UNSIGNABLE_PATTERNS = [/^proxy-/i, /^sec-/i];\nexports.ALGORITHM_IDENTIFIER = \"AWS4-HMAC-SHA256\";\nexports.ALGORITHM_IDENTIFIER_V4A = \"AWS4-ECDSA-P256-SHA256\";\nexports.EVENT_ALGORITHM_IDENTIFIER = \"AWS4-HMAC-SHA256-PAYLOAD\";\nexports.UNSIGNED_PAYLOAD = \"UNSIGNED-PAYLOAD\";\nexports.MAX_CACHE_SIZE = 50;\nexports.KEY_TYPE_IDENTIFIER = \"aws4_request\";\nexports.MAX_PRESIGNED_TTL = 60 * 60 * 24 * 7;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.clearCredentialCache = exports.getSigningKey = exports.createScope = void 0;\nconst util_hex_encoding_1 = require(\"@aws-sdk/util-hex-encoding\");\nconst util_utf8_1 = require(\"@aws-sdk/util-utf8\");\nconst constants_1 = require(\"./constants\");\nconst signingKeyCache = {};\nconst cacheQueue = [];\nconst createScope = (shortDate, region, service) => `${shortDate}/${region}/${service}/${constants_1.KEY_TYPE_IDENTIFIER}`;\nexports.createScope = createScope;\nconst getSigningKey = async (sha256Constructor, credentials, shortDate, region, service) => {\n const credsHash = await hmac(sha256Constructor, credentials.secretAccessKey, credentials.accessKeyId);\n const cacheKey = `${shortDate}:${region}:${service}:${(0, util_hex_encoding_1.toHex)(credsHash)}:${credentials.sessionToken}`;\n if (cacheKey in signingKeyCache) {\n return signingKeyCache[cacheKey];\n }\n cacheQueue.push(cacheKey);\n while (cacheQueue.length > constants_1.MAX_CACHE_SIZE) {\n delete signingKeyCache[cacheQueue.shift()];\n }\n let key = `AWS4${credentials.secretAccessKey}`;\n for (const signable of [shortDate, region, service, constants_1.KEY_TYPE_IDENTIFIER]) {\n key = await hmac(sha256Constructor, key, signable);\n }\n return (signingKeyCache[cacheKey] = key);\n};\nexports.getSigningKey = getSigningKey;\nconst clearCredentialCache = () => {\n cacheQueue.length = 0;\n Object.keys(signingKeyCache).forEach((cacheKey) => {\n delete signingKeyCache[cacheKey];\n });\n};\nexports.clearCredentialCache = clearCredentialCache;\nconst hmac = (ctor, secret, data) => {\n const hash = new ctor(secret);\n hash.update((0, util_utf8_1.toUint8Array)(data));\n return hash.digest();\n};\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getCanonicalHeaders = void 0;\nconst constants_1 = require(\"./constants\");\nconst getCanonicalHeaders = ({ headers }, unsignableHeaders, signableHeaders) => {\n const canonical = {};\n for (const headerName of Object.keys(headers).sort()) {\n if (headers[headerName] == undefined) {\n continue;\n }\n const canonicalHeaderName = headerName.toLowerCase();\n if (canonicalHeaderName in constants_1.ALWAYS_UNSIGNABLE_HEADERS ||\n (unsignableHeaders === null || unsignableHeaders === void 0 ? void 0 : unsignableHeaders.has(canonicalHeaderName)) ||\n constants_1.PROXY_HEADER_PATTERN.test(canonicalHeaderName) ||\n constants_1.SEC_HEADER_PATTERN.test(canonicalHeaderName)) {\n if (!signableHeaders || (signableHeaders && !signableHeaders.has(canonicalHeaderName))) {\n continue;\n }\n }\n canonical[canonicalHeaderName] = headers[headerName].trim().replace(/\\s+/g, \" \");\n }\n return canonical;\n};\nexports.getCanonicalHeaders = getCanonicalHeaders;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.escapeUri = void 0;\nconst escapeUri = (uri) => encodeURIComponent(uri).replace(/[!'()*]/g, hexEncode);\nexports.escapeUri = escapeUri;\nconst hexEncode = (c) => `%${c.charCodeAt(0).toString(16).toUpperCase()}`;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.escapeUriPath = void 0;\nconst escape_uri_1 = require(\"./escape-uri\");\nconst escapeUriPath = (uri) => uri.split(\"/\").map(escape_uri_1.escapeUri).join(\"/\");\nexports.escapeUriPath = escapeUriPath;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./escape-uri\"), exports);\ntslib_1.__exportStar(require(\"./escape-uri-path\"), exports);\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getCanonicalQuery = void 0;\nconst util_uri_escape_1 = require(\"@aws-sdk/util-uri-escape\");\nconst constants_1 = require(\"./constants\");\nconst getCanonicalQuery = ({ query = {} }) => {\n const keys = [];\n const serialized = {};\n for (const key of Object.keys(query).sort()) {\n if (key.toLowerCase() === constants_1.SIGNATURE_HEADER) {\n continue;\n }\n keys.push(key);\n const value = query[key];\n if (typeof value === \"string\") {\n serialized[key] = `${(0, util_uri_escape_1.escapeUri)(key)}=${(0, util_uri_escape_1.escapeUri)(value)}`;\n }\n else if (Array.isArray(value)) {\n serialized[key] = value\n .slice(0)\n .sort()\n .reduce((encoded, value) => encoded.concat([`${(0, util_uri_escape_1.escapeUri)(key)}=${(0, util_uri_escape_1.escapeUri)(value)}`]), [])\n .join(\"&\");\n }\n }\n return keys\n .map((key) => serialized[key])\n .filter((serialized) => serialized)\n .join(\"&\");\n};\nexports.getCanonicalQuery = getCanonicalQuery;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getPayloadHash = void 0;\nconst is_array_buffer_1 = require(\"@aws-sdk/is-array-buffer\");\nconst util_hex_encoding_1 = require(\"@aws-sdk/util-hex-encoding\");\nconst util_utf8_1 = require(\"@aws-sdk/util-utf8\");\nconst constants_1 = require(\"./constants\");\nconst getPayloadHash = async ({ headers, body }, hashConstructor) => {\n for (const headerName of Object.keys(headers)) {\n if (headerName.toLowerCase() === constants_1.SHA256_HEADER) {\n return headers[headerName];\n }\n }\n if (body == undefined) {\n return \"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\";\n }\n else if (typeof body === \"string\" || ArrayBuffer.isView(body) || (0, is_array_buffer_1.isArrayBuffer)(body)) {\n const hashCtor = new hashConstructor();\n hashCtor.update((0, util_utf8_1.toUint8Array)(body));\n return (0, util_hex_encoding_1.toHex)(await hashCtor.digest());\n }\n return constants_1.UNSIGNED_PAYLOAD;\n};\nexports.getPayloadHash = getPayloadHash;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.deleteHeader = exports.getHeaderValue = exports.hasHeader = void 0;\nconst hasHeader = (soughtHeader, headers) => {\n soughtHeader = soughtHeader.toLowerCase();\n for (const headerName of Object.keys(headers)) {\n if (soughtHeader === headerName.toLowerCase()) {\n return true;\n }\n }\n return false;\n};\nexports.hasHeader = hasHeader;\nconst getHeaderValue = (soughtHeader, headers) => {\n soughtHeader = soughtHeader.toLowerCase();\n for (const headerName of Object.keys(headers)) {\n if (soughtHeader === headerName.toLowerCase()) {\n return headers[headerName];\n }\n }\n return undefined;\n};\nexports.getHeaderValue = getHeaderValue;\nconst deleteHeader = (soughtHeader, headers) => {\n soughtHeader = soughtHeader.toLowerCase();\n for (const headerName of Object.keys(headers)) {\n if (soughtHeader === headerName.toLowerCase()) {\n delete headers[headerName];\n }\n }\n};\nexports.deleteHeader = deleteHeader;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.cloneQuery = exports.cloneRequest = void 0;\nconst cloneRequest = ({ headers, query, ...rest }) => ({\n ...rest,\n headers: { ...headers },\n query: query ? (0, exports.cloneQuery)(query) : undefined,\n});\nexports.cloneRequest = cloneRequest;\nconst cloneQuery = (query) => Object.keys(query).reduce((carry, paramName) => {\n const param = query[paramName];\n return {\n ...carry,\n [paramName]: Array.isArray(param) ? [...param] : param,\n };\n}, {});\nexports.cloneQuery = cloneQuery;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.moveHeadersToQuery = void 0;\nconst cloneRequest_1 = require(\"./cloneRequest\");\nconst moveHeadersToQuery = (request, options = {}) => {\n var _a;\n const { headers, query = {} } = typeof request.clone === \"function\" ? request.clone() : (0, cloneRequest_1.cloneRequest)(request);\n for (const name of Object.keys(headers)) {\n const lname = name.toLowerCase();\n if (lname.slice(0, 6) === \"x-amz-\" && !((_a = options.unhoistableHeaders) === null || _a === void 0 ? void 0 : _a.has(lname))) {\n query[name] = headers[name];\n delete headers[name];\n }\n }\n return {\n ...request,\n headers,\n query,\n };\n};\nexports.moveHeadersToQuery = moveHeadersToQuery;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.prepareRequest = void 0;\nconst cloneRequest_1 = require(\"./cloneRequest\");\nconst constants_1 = require(\"./constants\");\nconst prepareRequest = (request) => {\n request = typeof request.clone === \"function\" ? request.clone() : (0, cloneRequest_1.cloneRequest)(request);\n for (const headerName of Object.keys(request.headers)) {\n if (constants_1.GENERATED_HEADERS.indexOf(headerName.toLowerCase()) > -1) {\n delete request.headers[headerName];\n }\n }\n return request;\n};\nexports.prepareRequest = prepareRequest;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.toDate = exports.iso8601 = void 0;\nconst iso8601 = (time) => (0, exports.toDate)(time)\n .toISOString()\n .replace(/\\.\\d{3}Z$/, \"Z\");\nexports.iso8601 = iso8601;\nconst toDate = (time) => {\n if (typeof time === \"number\") {\n return new Date(time * 1000);\n }\n if (typeof time === \"string\") {\n if (Number(time)) {\n return new Date(Number(time) * 1000);\n }\n return new Date(time);\n }\n return time;\n};\nexports.toDate = toDate;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SignatureV4 = void 0;\nconst util_hex_encoding_1 = require(\"@aws-sdk/util-hex-encoding\");\nconst util_middleware_1 = require(\"@aws-sdk/util-middleware\");\nconst util_utf8_1 = require(\"@aws-sdk/util-utf8\");\nconst constants_1 = require(\"./constants\");\nconst credentialDerivation_1 = require(\"./credentialDerivation\");\nconst getCanonicalHeaders_1 = require(\"./getCanonicalHeaders\");\nconst getCanonicalQuery_1 = require(\"./getCanonicalQuery\");\nconst getPayloadHash_1 = require(\"./getPayloadHash\");\nconst headerUtil_1 = require(\"./headerUtil\");\nconst moveHeadersToQuery_1 = require(\"./moveHeadersToQuery\");\nconst prepareRequest_1 = require(\"./prepareRequest\");\nconst utilDate_1 = require(\"./utilDate\");\nclass SignatureV4 {\n constructor({ applyChecksum, credentials, region, service, sha256, uriEscapePath = true, }) {\n this.service = service;\n this.sha256 = sha256;\n this.uriEscapePath = uriEscapePath;\n this.applyChecksum = typeof applyChecksum === \"boolean\" ? applyChecksum : true;\n this.regionProvider = (0, util_middleware_1.normalizeProvider)(region);\n this.credentialProvider = (0, util_middleware_1.normalizeProvider)(credentials);\n }\n async presign(originalRequest, options = {}) {\n const { signingDate = new Date(), expiresIn = 3600, unsignableHeaders, unhoistableHeaders, signableHeaders, signingRegion, signingService, } = options;\n const credentials = await this.credentialProvider();\n this.validateResolvedCredentials(credentials);\n const region = signingRegion !== null && signingRegion !== void 0 ? signingRegion : (await this.regionProvider());\n const { longDate, shortDate } = formatDate(signingDate);\n if (expiresIn > constants_1.MAX_PRESIGNED_TTL) {\n return Promise.reject(\"Signature version 4 presigned URLs\" + \" must have an expiration date less than one week in\" + \" the future\");\n }\n const scope = (0, credentialDerivation_1.createScope)(shortDate, region, signingService !== null && signingService !== void 0 ? signingService : this.service);\n const request = (0, moveHeadersToQuery_1.moveHeadersToQuery)((0, prepareRequest_1.prepareRequest)(originalRequest), { unhoistableHeaders });\n if (credentials.sessionToken) {\n request.query[constants_1.TOKEN_QUERY_PARAM] = credentials.sessionToken;\n }\n request.query[constants_1.ALGORITHM_QUERY_PARAM] = constants_1.ALGORITHM_IDENTIFIER;\n request.query[constants_1.CREDENTIAL_QUERY_PARAM] = `${credentials.accessKeyId}/${scope}`;\n request.query[constants_1.AMZ_DATE_QUERY_PARAM] = longDate;\n request.query[constants_1.EXPIRES_QUERY_PARAM] = expiresIn.toString(10);\n const canonicalHeaders = (0, getCanonicalHeaders_1.getCanonicalHeaders)(request, unsignableHeaders, signableHeaders);\n request.query[constants_1.SIGNED_HEADERS_QUERY_PARAM] = getCanonicalHeaderList(canonicalHeaders);\n request.query[constants_1.SIGNATURE_QUERY_PARAM] = await this.getSignature(longDate, scope, this.getSigningKey(credentials, region, shortDate, signingService), this.createCanonicalRequest(request, canonicalHeaders, await (0, getPayloadHash_1.getPayloadHash)(originalRequest, this.sha256)));\n return request;\n }\n async sign(toSign, options) {\n if (typeof toSign === \"string\") {\n return this.signString(toSign, options);\n }\n else if (toSign.headers && toSign.payload) {\n return this.signEvent(toSign, options);\n }\n else {\n return this.signRequest(toSign, options);\n }\n }\n async signEvent({ headers, payload }, { signingDate = new Date(), priorSignature, signingRegion, signingService }) {\n const region = signingRegion !== null && signingRegion !== void 0 ? signingRegion : (await this.regionProvider());\n const { shortDate, longDate } = formatDate(signingDate);\n const scope = (0, credentialDerivation_1.createScope)(shortDate, region, signingService !== null && signingService !== void 0 ? signingService : this.service);\n const hashedPayload = await (0, getPayloadHash_1.getPayloadHash)({ headers: {}, body: payload }, this.sha256);\n const hash = new this.sha256();\n hash.update(headers);\n const hashedHeaders = (0, util_hex_encoding_1.toHex)(await hash.digest());\n const stringToSign = [\n constants_1.EVENT_ALGORITHM_IDENTIFIER,\n longDate,\n scope,\n priorSignature,\n hashedHeaders,\n hashedPayload,\n ].join(\"\\n\");\n return this.signString(stringToSign, { signingDate, signingRegion: region, signingService });\n }\n async signString(stringToSign, { signingDate = new Date(), signingRegion, signingService } = {}) {\n const credentials = await this.credentialProvider();\n this.validateResolvedCredentials(credentials);\n const region = signingRegion !== null && signingRegion !== void 0 ? signingRegion : (await this.regionProvider());\n const { shortDate } = formatDate(signingDate);\n const hash = new this.sha256(await this.getSigningKey(credentials, region, shortDate, signingService));\n hash.update((0, util_utf8_1.toUint8Array)(stringToSign));\n return (0, util_hex_encoding_1.toHex)(await hash.digest());\n }\n async signRequest(requestToSign, { signingDate = new Date(), signableHeaders, unsignableHeaders, signingRegion, signingService, } = {}) {\n const credentials = await this.credentialProvider();\n this.validateResolvedCredentials(credentials);\n const region = signingRegion !== null && signingRegion !== void 0 ? signingRegion : (await this.regionProvider());\n const request = (0, prepareRequest_1.prepareRequest)(requestToSign);\n const { longDate, shortDate } = formatDate(signingDate);\n const scope = (0, credentialDerivation_1.createScope)(shortDate, region, signingService !== null && signingService !== void 0 ? signingService : this.service);\n request.headers[constants_1.AMZ_DATE_HEADER] = longDate;\n if (credentials.sessionToken) {\n request.headers[constants_1.TOKEN_HEADER] = credentials.sessionToken;\n }\n const payloadHash = await (0, getPayloadHash_1.getPayloadHash)(request, this.sha256);\n if (!(0, headerUtil_1.hasHeader)(constants_1.SHA256_HEADER, request.headers) && this.applyChecksum) {\n request.headers[constants_1.SHA256_HEADER] = payloadHash;\n }\n const canonicalHeaders = (0, getCanonicalHeaders_1.getCanonicalHeaders)(request, unsignableHeaders, signableHeaders);\n const signature = await this.getSignature(longDate, scope, this.getSigningKey(credentials, region, shortDate, signingService), this.createCanonicalRequest(request, canonicalHeaders, payloadHash));\n request.headers[constants_1.AUTH_HEADER] =\n `${constants_1.ALGORITHM_IDENTIFIER} ` +\n `Credential=${credentials.accessKeyId}/${scope}, ` +\n `SignedHeaders=${getCanonicalHeaderList(canonicalHeaders)}, ` +\n `Signature=${signature}`;\n return request;\n }\n createCanonicalRequest(request, canonicalHeaders, payloadHash) {\n const sortedHeaders = Object.keys(canonicalHeaders).sort();\n return `${request.method}\n${this.getCanonicalPath(request)}\n${(0, getCanonicalQuery_1.getCanonicalQuery)(request)}\n${sortedHeaders.map((name) => `${name}:${canonicalHeaders[name]}`).join(\"\\n\")}\n\n${sortedHeaders.join(\";\")}\n${payloadHash}`;\n }\n async createStringToSign(longDate, credentialScope, canonicalRequest) {\n const hash = new this.sha256();\n hash.update((0, util_utf8_1.toUint8Array)(canonicalRequest));\n const hashedRequest = await hash.digest();\n return `${constants_1.ALGORITHM_IDENTIFIER}\n${longDate}\n${credentialScope}\n${(0, util_hex_encoding_1.toHex)(hashedRequest)}`;\n }\n getCanonicalPath({ path }) {\n if (this.uriEscapePath) {\n const normalizedPathSegments = [];\n for (const pathSegment of path.split(\"/\")) {\n if ((pathSegment === null || pathSegment === void 0 ? void 0 : pathSegment.length) === 0)\n continue;\n if (pathSegment === \".\")\n continue;\n if (pathSegment === \"..\") {\n normalizedPathSegments.pop();\n }\n else {\n normalizedPathSegments.push(pathSegment);\n }\n }\n const normalizedPath = `${(path === null || path === void 0 ? void 0 : path.startsWith(\"/\")) ? \"/\" : \"\"}${normalizedPathSegments.join(\"/\")}${normalizedPathSegments.length > 0 && (path === null || path === void 0 ? void 0 : path.endsWith(\"/\")) ? \"/\" : \"\"}`;\n const doubleEncoded = encodeURIComponent(normalizedPath);\n return doubleEncoded.replace(/%2F/g, \"/\");\n }\n return path;\n }\n async getSignature(longDate, credentialScope, keyPromise, canonicalRequest) {\n const stringToSign = await this.createStringToSign(longDate, credentialScope, canonicalRequest);\n const hash = new this.sha256(await keyPromise);\n hash.update((0, util_utf8_1.toUint8Array)(stringToSign));\n return (0, util_hex_encoding_1.toHex)(await hash.digest());\n }\n getSigningKey(credentials, region, shortDate, service) {\n return (0, credentialDerivation_1.getSigningKey)(this.sha256, credentials, shortDate, region, service || this.service);\n }\n validateResolvedCredentials(credentials) {\n if (typeof credentials !== \"object\" ||\n typeof credentials.accessKeyId !== \"string\" ||\n typeof credentials.secretAccessKey !== \"string\") {\n throw new Error(\"Resolved credential object is not valid\");\n }\n }\n}\nexports.SignatureV4 = SignatureV4;\nconst formatDate = (now) => {\n const longDate = (0, utilDate_1.iso8601)(now).replace(/[\\-:]/g, \"\");\n return {\n longDate,\n shortDate: longDate.slice(0, 8),\n };\n};\nconst getCanonicalHeaderList = (headers) => Object.keys(headers).sort().join(\";\");\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.prepareRequest = exports.moveHeadersToQuery = exports.getPayloadHash = exports.getCanonicalQuery = exports.getCanonicalHeaders = void 0;\nconst tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./SignatureV4\"), exports);\nvar getCanonicalHeaders_1 = require(\"./getCanonicalHeaders\");\nObject.defineProperty(exports, \"getCanonicalHeaders\", { enumerable: true, get: function () { return getCanonicalHeaders_1.getCanonicalHeaders; } });\nvar getCanonicalQuery_1 = require(\"./getCanonicalQuery\");\nObject.defineProperty(exports, \"getCanonicalQuery\", { enumerable: true, get: function () { return getCanonicalQuery_1.getCanonicalQuery; } });\nvar getPayloadHash_1 = require(\"./getPayloadHash\");\nObject.defineProperty(exports, \"getPayloadHash\", { enumerable: true, get: function () { return getPayloadHash_1.getPayloadHash; } });\nvar moveHeadersToQuery_1 = require(\"./moveHeadersToQuery\");\nObject.defineProperty(exports, \"moveHeadersToQuery\", { enumerable: true, get: function () { return moveHeadersToQuery_1.moveHeadersToQuery; } });\nvar prepareRequest_1 = require(\"./prepareRequest\");\nObject.defineProperty(exports, \"prepareRequest\", { enumerable: true, get: function () { return prepareRequest_1.prepareRequest; } });\ntslib_1.__exportStar(require(\"./credentialDerivation\"), exports);\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.resolveSigV4AuthConfig = exports.resolveAwsAuthConfig = void 0;\nconst property_provider_1 = require(\"@aws-sdk/property-provider\");\nconst signature_v4_1 = require(\"@aws-sdk/signature-v4\");\nconst util_middleware_1 = require(\"@aws-sdk/util-middleware\");\nconst CREDENTIAL_EXPIRE_WINDOW = 300000;\nconst resolveAwsAuthConfig = (input) => {\n const normalizedCreds = input.credentials\n ? normalizeCredentialProvider(input.credentials)\n : input.credentialDefaultProvider(input);\n const { signingEscapePath = true, systemClockOffset = input.systemClockOffset || 0, sha256 } = input;\n let signer;\n if (input.signer) {\n signer = (0, util_middleware_1.normalizeProvider)(input.signer);\n }\n else if (input.regionInfoProvider) {\n signer = () => (0, util_middleware_1.normalizeProvider)(input.region)()\n .then(async (region) => [\n (await input.regionInfoProvider(region, {\n useFipsEndpoint: await input.useFipsEndpoint(),\n useDualstackEndpoint: await input.useDualstackEndpoint(),\n })) || {},\n region,\n ])\n .then(([regionInfo, region]) => {\n const { signingRegion, signingService } = regionInfo;\n input.signingRegion = input.signingRegion || signingRegion || region;\n input.signingName = input.signingName || signingService || input.serviceId;\n const params = {\n ...input,\n credentials: normalizedCreds,\n region: input.signingRegion,\n service: input.signingName,\n sha256,\n uriEscapePath: signingEscapePath,\n };\n const SignerCtor = input.signerConstructor || signature_v4_1.SignatureV4;\n return new SignerCtor(params);\n });\n }\n else {\n signer = async (authScheme) => {\n authScheme = Object.assign({}, {\n name: \"sigv4\",\n signingName: input.signingName || input.defaultSigningName,\n signingRegion: await (0, util_middleware_1.normalizeProvider)(input.region)(),\n properties: {},\n }, authScheme);\n const signingRegion = authScheme.signingRegion;\n const signingService = authScheme.signingName;\n input.signingRegion = input.signingRegion || signingRegion;\n input.signingName = input.signingName || signingService || input.serviceId;\n const params = {\n ...input,\n credentials: normalizedCreds,\n region: input.signingRegion,\n service: input.signingName,\n sha256,\n uriEscapePath: signingEscapePath,\n };\n const SignerCtor = input.signerConstructor || signature_v4_1.SignatureV4;\n return new SignerCtor(params);\n };\n }\n return {\n ...input,\n systemClockOffset,\n signingEscapePath,\n credentials: normalizedCreds,\n signer,\n };\n};\nexports.resolveAwsAuthConfig = resolveAwsAuthConfig;\nconst resolveSigV4AuthConfig = (input) => {\n const normalizedCreds = input.credentials\n ? normalizeCredentialProvider(input.credentials)\n : input.credentialDefaultProvider(input);\n const { signingEscapePath = true, systemClockOffset = input.systemClockOffset || 0, sha256 } = input;\n let signer;\n if (input.signer) {\n signer = (0, util_middleware_1.normalizeProvider)(input.signer);\n }\n else {\n signer = (0, util_middleware_1.normalizeProvider)(new signature_v4_1.SignatureV4({\n credentials: normalizedCreds,\n region: input.region,\n service: input.signingName,\n sha256,\n uriEscapePath: signingEscapePath,\n }));\n }\n return {\n ...input,\n systemClockOffset,\n signingEscapePath,\n credentials: normalizedCreds,\n signer,\n };\n};\nexports.resolveSigV4AuthConfig = resolveSigV4AuthConfig;\nconst normalizeCredentialProvider = (credentials) => {\n if (typeof credentials === \"function\") {\n return (0, property_provider_1.memoize)(credentials, (credentials) => credentials.expiration !== undefined &&\n credentials.expiration.getTime() - Date.now() < CREDENTIAL_EXPIRE_WINDOW, (credentials) => credentials.expiration !== undefined);\n }\n return (0, util_middleware_1.normalizeProvider)(credentials);\n};\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getSkewCorrectedDate = void 0;\nconst getSkewCorrectedDate = (systemClockOffset) => new Date(Date.now() + systemClockOffset);\nexports.getSkewCorrectedDate = getSkewCorrectedDate;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isClockSkewed = void 0;\nconst getSkewCorrectedDate_1 = require(\"./getSkewCorrectedDate\");\nconst isClockSkewed = (clockTime, systemClockOffset) => Math.abs((0, getSkewCorrectedDate_1.getSkewCorrectedDate)(systemClockOffset).getTime() - clockTime) >= 300000;\nexports.isClockSkewed = isClockSkewed;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getUpdatedSystemClockOffset = void 0;\nconst isClockSkewed_1 = require(\"./isClockSkewed\");\nconst getUpdatedSystemClockOffset = (clockTime, currentSystemClockOffset) => {\n const clockTimeInMs = Date.parse(clockTime);\n if ((0, isClockSkewed_1.isClockSkewed)(clockTimeInMs, currentSystemClockOffset)) {\n return clockTimeInMs - Date.now();\n }\n return currentSystemClockOffset;\n};\nexports.getUpdatedSystemClockOffset = getUpdatedSystemClockOffset;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getSigV4AuthPlugin = exports.getAwsAuthPlugin = exports.awsAuthMiddlewareOptions = exports.awsAuthMiddleware = void 0;\nconst protocol_http_1 = require(\"@aws-sdk/protocol-http\");\nconst getSkewCorrectedDate_1 = require(\"./utils/getSkewCorrectedDate\");\nconst getUpdatedSystemClockOffset_1 = require(\"./utils/getUpdatedSystemClockOffset\");\nconst awsAuthMiddleware = (options) => (next, context) => async function (args) {\n var _a, _b, _c, _d;\n if (!protocol_http_1.HttpRequest.isInstance(args.request))\n return next(args);\n const authScheme = (_c = (_b = (_a = context.endpointV2) === null || _a === void 0 ? void 0 : _a.properties) === null || _b === void 0 ? void 0 : _b.authSchemes) === null || _c === void 0 ? void 0 : _c[0];\n const multiRegionOverride = (authScheme === null || authScheme === void 0 ? void 0 : authScheme.name) === \"sigv4a\" ? (_d = authScheme === null || authScheme === void 0 ? void 0 : authScheme.signingRegionSet) === null || _d === void 0 ? void 0 : _d.join(\",\") : undefined;\n const signer = await options.signer(authScheme);\n const output = await next({\n ...args,\n request: await signer.sign(args.request, {\n signingDate: (0, getSkewCorrectedDate_1.getSkewCorrectedDate)(options.systemClockOffset),\n signingRegion: multiRegionOverride || context[\"signing_region\"],\n signingService: context[\"signing_service\"],\n }),\n }).catch((error) => {\n var _a;\n const serverTime = (_a = error.ServerTime) !== null && _a !== void 0 ? _a : getDateHeader(error.$response);\n if (serverTime) {\n options.systemClockOffset = (0, getUpdatedSystemClockOffset_1.getUpdatedSystemClockOffset)(serverTime, options.systemClockOffset);\n }\n throw error;\n });\n const dateHeader = getDateHeader(output.response);\n if (dateHeader) {\n options.systemClockOffset = (0, getUpdatedSystemClockOffset_1.getUpdatedSystemClockOffset)(dateHeader, options.systemClockOffset);\n }\n return output;\n};\nexports.awsAuthMiddleware = awsAuthMiddleware;\nconst getDateHeader = (response) => { var _a, _b, _c; return protocol_http_1.HttpResponse.isInstance(response) ? (_b = (_a = response.headers) === null || _a === void 0 ? void 0 : _a.date) !== null && _b !== void 0 ? _b : (_c = response.headers) === null || _c === void 0 ? void 0 : _c.Date : undefined; };\nexports.awsAuthMiddlewareOptions = {\n name: \"awsAuthMiddleware\",\n tags: [\"SIGNATURE\", \"AWSAUTH\"],\n relation: \"after\",\n toMiddleware: \"retryMiddleware\",\n override: true,\n};\nconst getAwsAuthPlugin = (options) => ({\n applyToStack: (clientStack) => {\n clientStack.addRelativeTo((0, exports.awsAuthMiddleware)(options), exports.awsAuthMiddlewareOptions);\n },\n});\nexports.getAwsAuthPlugin = getAwsAuthPlugin;\nexports.getSigV4AuthPlugin = exports.getAwsAuthPlugin;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./configurations\"), exports);\ntslib_1.__exportStar(require(\"./middleware\"), exports);\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.resolveUserAgentConfig = void 0;\nfunction resolveUserAgentConfig(input) {\n return {\n ...input,\n customUserAgent: typeof input.customUserAgent === \"string\" ? [[input.customUserAgent]] : input.customUserAgent,\n };\n}\nexports.resolveUserAgentConfig = resolveUserAgentConfig;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.UA_ESCAPE_REGEX = exports.SPACE = exports.X_AMZ_USER_AGENT = exports.USER_AGENT = void 0;\nexports.USER_AGENT = \"user-agent\";\nexports.X_AMZ_USER_AGENT = \"x-amz-user-agent\";\nexports.SPACE = \" \";\nexports.UA_ESCAPE_REGEX = /[^\\!\\#\\$\\%\\&\\'\\*\\+\\-\\.\\^\\_\\`\\|\\~\\d\\w]/g;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getUserAgentPlugin = exports.getUserAgentMiddlewareOptions = exports.userAgentMiddleware = void 0;\nconst protocol_http_1 = require(\"@aws-sdk/protocol-http\");\nconst constants_1 = require(\"./constants\");\nconst userAgentMiddleware = (options) => (next, context) => async (args) => {\n var _a, _b;\n const { request } = args;\n if (!protocol_http_1.HttpRequest.isInstance(request))\n return next(args);\n const { headers } = request;\n const userAgent = ((_a = context === null || context === void 0 ? void 0 : context.userAgent) === null || _a === void 0 ? void 0 : _a.map(escapeUserAgent)) || [];\n const defaultUserAgent = (await options.defaultUserAgentProvider()).map(escapeUserAgent);\n const customUserAgent = ((_b = options === null || options === void 0 ? void 0 : options.customUserAgent) === null || _b === void 0 ? void 0 : _b.map(escapeUserAgent)) || [];\n const sdkUserAgentValue = [...defaultUserAgent, ...userAgent, ...customUserAgent].join(constants_1.SPACE);\n const normalUAValue = [\n ...defaultUserAgent.filter((section) => section.startsWith(\"aws-sdk-\")),\n ...customUserAgent,\n ].join(constants_1.SPACE);\n if (options.runtime !== \"browser\") {\n if (normalUAValue) {\n headers[constants_1.X_AMZ_USER_AGENT] = headers[constants_1.X_AMZ_USER_AGENT]\n ? `${headers[constants_1.USER_AGENT]} ${normalUAValue}`\n : normalUAValue;\n }\n headers[constants_1.USER_AGENT] = sdkUserAgentValue;\n }\n else {\n headers[constants_1.X_AMZ_USER_AGENT] = sdkUserAgentValue;\n }\n return next({\n ...args,\n request,\n });\n};\nexports.userAgentMiddleware = userAgentMiddleware;\nconst escapeUserAgent = ([name, version]) => {\n const prefixSeparatorIndex = name.indexOf(\"/\");\n const prefix = name.substring(0, prefixSeparatorIndex);\n let uaName = name.substring(prefixSeparatorIndex + 1);\n if (prefix === \"api\") {\n uaName = uaName.toLowerCase();\n }\n return [prefix, uaName, version]\n .filter((item) => item && item.length > 0)\n .map((item) => item === null || item === void 0 ? void 0 : item.replace(constants_1.UA_ESCAPE_REGEX, \"_\"))\n .join(\"/\");\n};\nexports.getUserAgentMiddlewareOptions = {\n name: \"getUserAgentMiddleware\",\n step: \"build\",\n priority: \"low\",\n tags: [\"SET_USER_AGENT\", \"USER_AGENT\"],\n override: true,\n};\nconst getUserAgentPlugin = (config) => ({\n applyToStack: (clientStack) => {\n clientStack.add((0, exports.userAgentMiddleware)(config), exports.getUserAgentMiddlewareOptions);\n },\n});\nexports.getUserAgentPlugin = getUserAgentPlugin;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./configurations\"), exports);\ntslib_1.__exportStar(require(\"./user-agent-middleware\"), exports);\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NoOpLogger = void 0;\nclass NoOpLogger {\n trace() { }\n debug() { }\n info() { }\n warn() { }\n error() { }\n}\nexports.NoOpLogger = NoOpLogger;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.constructStack = void 0;\nconst constructStack = () => {\n let absoluteEntries = [];\n let relativeEntries = [];\n const entriesNameSet = new Set();\n const sort = (entries) => entries.sort((a, b) => stepWeights[b.step] - stepWeights[a.step] ||\n priorityWeights[b.priority || \"normal\"] - priorityWeights[a.priority || \"normal\"]);\n const removeByName = (toRemove) => {\n let isRemoved = false;\n const filterCb = (entry) => {\n if (entry.name && entry.name === toRemove) {\n isRemoved = true;\n entriesNameSet.delete(toRemove);\n return false;\n }\n return true;\n };\n absoluteEntries = absoluteEntries.filter(filterCb);\n relativeEntries = relativeEntries.filter(filterCb);\n return isRemoved;\n };\n const removeByReference = (toRemove) => {\n let isRemoved = false;\n const filterCb = (entry) => {\n if (entry.middleware === toRemove) {\n isRemoved = true;\n if (entry.name)\n entriesNameSet.delete(entry.name);\n return false;\n }\n return true;\n };\n absoluteEntries = absoluteEntries.filter(filterCb);\n relativeEntries = relativeEntries.filter(filterCb);\n return isRemoved;\n };\n const cloneTo = (toStack) => {\n absoluteEntries.forEach((entry) => {\n toStack.add(entry.middleware, { ...entry });\n });\n relativeEntries.forEach((entry) => {\n toStack.addRelativeTo(entry.middleware, { ...entry });\n });\n return toStack;\n };\n const expandRelativeMiddlewareList = (from) => {\n const expandedMiddlewareList = [];\n from.before.forEach((entry) => {\n if (entry.before.length === 0 && entry.after.length === 0) {\n expandedMiddlewareList.push(entry);\n }\n else {\n expandedMiddlewareList.push(...expandRelativeMiddlewareList(entry));\n }\n });\n expandedMiddlewareList.push(from);\n from.after.reverse().forEach((entry) => {\n if (entry.before.length === 0 && entry.after.length === 0) {\n expandedMiddlewareList.push(entry);\n }\n else {\n expandedMiddlewareList.push(...expandRelativeMiddlewareList(entry));\n }\n });\n return expandedMiddlewareList;\n };\n const getMiddlewareList = (debug = false) => {\n const normalizedAbsoluteEntries = [];\n const normalizedRelativeEntries = [];\n const normalizedEntriesNameMap = {};\n absoluteEntries.forEach((entry) => {\n const normalizedEntry = {\n ...entry,\n before: [],\n after: [],\n };\n if (normalizedEntry.name)\n normalizedEntriesNameMap[normalizedEntry.name] = normalizedEntry;\n normalizedAbsoluteEntries.push(normalizedEntry);\n });\n relativeEntries.forEach((entry) => {\n const normalizedEntry = {\n ...entry,\n before: [],\n after: [],\n };\n if (normalizedEntry.name)\n normalizedEntriesNameMap[normalizedEntry.name] = normalizedEntry;\n normalizedRelativeEntries.push(normalizedEntry);\n });\n normalizedRelativeEntries.forEach((entry) => {\n if (entry.toMiddleware) {\n const toMiddleware = normalizedEntriesNameMap[entry.toMiddleware];\n if (toMiddleware === undefined) {\n if (debug) {\n return;\n }\n throw new Error(`${entry.toMiddleware} is not found when adding ${entry.name || \"anonymous\"} middleware ${entry.relation} ${entry.toMiddleware}`);\n }\n if (entry.relation === \"after\") {\n toMiddleware.after.push(entry);\n }\n if (entry.relation === \"before\") {\n toMiddleware.before.push(entry);\n }\n }\n });\n const mainChain = sort(normalizedAbsoluteEntries)\n .map(expandRelativeMiddlewareList)\n .reduce((wholeList, expendedMiddlewareList) => {\n wholeList.push(...expendedMiddlewareList);\n return wholeList;\n }, []);\n return mainChain;\n };\n const stack = {\n add: (middleware, options = {}) => {\n const { name, override } = options;\n const entry = {\n step: \"initialize\",\n priority: \"normal\",\n middleware,\n ...options,\n };\n if (name) {\n if (entriesNameSet.has(name)) {\n if (!override)\n throw new Error(`Duplicate middleware name '${name}'`);\n const toOverrideIndex = absoluteEntries.findIndex((entry) => entry.name === name);\n const toOverride = absoluteEntries[toOverrideIndex];\n if (toOverride.step !== entry.step || toOverride.priority !== entry.priority) {\n throw new Error(`\"${name}\" middleware with ${toOverride.priority} priority in ${toOverride.step} step cannot be ` +\n `overridden by same-name middleware with ${entry.priority} priority in ${entry.step} step.`);\n }\n absoluteEntries.splice(toOverrideIndex, 1);\n }\n entriesNameSet.add(name);\n }\n absoluteEntries.push(entry);\n },\n addRelativeTo: (middleware, options) => {\n const { name, override } = options;\n const entry = {\n middleware,\n ...options,\n };\n if (name) {\n if (entriesNameSet.has(name)) {\n if (!override)\n throw new Error(`Duplicate middleware name '${name}'`);\n const toOverrideIndex = relativeEntries.findIndex((entry) => entry.name === name);\n const toOverride = relativeEntries[toOverrideIndex];\n if (toOverride.toMiddleware !== entry.toMiddleware || toOverride.relation !== entry.relation) {\n throw new Error(`\"${name}\" middleware ${toOverride.relation} \"${toOverride.toMiddleware}\" middleware cannot be overridden ` +\n `by same-name middleware ${entry.relation} \"${entry.toMiddleware}\" middleware.`);\n }\n relativeEntries.splice(toOverrideIndex, 1);\n }\n entriesNameSet.add(name);\n }\n relativeEntries.push(entry);\n },\n clone: () => cloneTo((0, exports.constructStack)()),\n use: (plugin) => {\n plugin.applyToStack(stack);\n },\n remove: (toRemove) => {\n if (typeof toRemove === \"string\")\n return removeByName(toRemove);\n else\n return removeByReference(toRemove);\n },\n removeByTag: (toRemove) => {\n let isRemoved = false;\n const filterCb = (entry) => {\n const { tags, name } = entry;\n if (tags && tags.includes(toRemove)) {\n if (name)\n entriesNameSet.delete(name);\n isRemoved = true;\n return false;\n }\n return true;\n };\n absoluteEntries = absoluteEntries.filter(filterCb);\n relativeEntries = relativeEntries.filter(filterCb);\n return isRemoved;\n },\n concat: (from) => {\n const cloned = cloneTo((0, exports.constructStack)());\n cloned.use(from);\n return cloned;\n },\n applyToStack: cloneTo,\n identify: () => {\n return getMiddlewareList(true).map((mw) => {\n return mw.name + \": \" + (mw.tags || []).join(\",\");\n });\n },\n resolve: (handler, context) => {\n for (const middleware of getMiddlewareList()\n .map((entry) => entry.middleware)\n .reverse()) {\n handler = middleware(handler, context);\n }\n return handler;\n },\n };\n return stack;\n};\nexports.constructStack = constructStack;\nconst stepWeights = {\n initialize: 5,\n serialize: 4,\n build: 3,\n finalizeRequest: 2,\n deserialize: 1,\n};\nconst priorityWeights = {\n high: 3,\n normal: 2,\n low: 1,\n};\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./MiddlewareStack\"), exports);\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Client = void 0;\nconst middleware_stack_1 = require(\"@aws-sdk/middleware-stack\");\nclass Client {\n constructor(config) {\n this.middlewareStack = (0, middleware_stack_1.constructStack)();\n this.config = config;\n }\n send(command, optionsOrCb, cb) {\n const options = typeof optionsOrCb !== \"function\" ? optionsOrCb : undefined;\n const callback = typeof optionsOrCb === \"function\" ? optionsOrCb : cb;\n const handler = command.resolveMiddleware(this.middlewareStack, this.config, options);\n if (callback) {\n handler(command)\n .then((result) => callback(null, result.output), (err) => callback(err))\n .catch(() => { });\n }\n else {\n return handler(command).then((result) => result.output);\n }\n }\n destroy() {\n if (this.config.requestHandler.destroy)\n this.config.requestHandler.destroy();\n }\n}\nexports.Client = Client;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Command = void 0;\nconst middleware_stack_1 = require(\"@aws-sdk/middleware-stack\");\nclass Command {\n constructor() {\n this.middlewareStack = (0, middleware_stack_1.constructStack)();\n }\n}\nexports.Command = Command;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SENSITIVE_STRING = void 0;\nexports.SENSITIVE_STRING = \"***SensitiveInformation***\";\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.logger = exports.strictParseByte = exports.strictParseShort = exports.strictParseInt32 = exports.strictParseInt = exports.strictParseLong = exports.limitedParseFloat32 = exports.limitedParseFloat = exports.handleFloat = exports.limitedParseDouble = exports.strictParseFloat32 = exports.strictParseFloat = exports.strictParseDouble = exports.expectUnion = exports.expectString = exports.expectObject = exports.expectNonNull = exports.expectByte = exports.expectShort = exports.expectInt32 = exports.expectInt = exports.expectLong = exports.expectFloat32 = exports.expectNumber = exports.expectBoolean = exports.parseBoolean = void 0;\nconst parseBoolean = (value) => {\n switch (value) {\n case \"true\":\n return true;\n case \"false\":\n return false;\n default:\n throw new Error(`Unable to parse boolean value \"${value}\"`);\n }\n};\nexports.parseBoolean = parseBoolean;\nconst expectBoolean = (value) => {\n if (value === null || value === undefined) {\n return undefined;\n }\n if (typeof value === \"number\") {\n if (value === 0 || value === 1) {\n exports.logger.warn(stackTraceWarning(`Expected boolean, got ${typeof value}: ${value}`));\n }\n if (value === 0) {\n return false;\n }\n if (value === 1) {\n return true;\n }\n }\n if (typeof value === \"string\") {\n const lower = value.toLowerCase();\n if (lower === \"false\" || lower === \"true\") {\n exports.logger.warn(stackTraceWarning(`Expected boolean, got ${typeof value}: ${value}`));\n }\n if (lower === \"false\") {\n return false;\n }\n if (lower === \"true\") {\n return true;\n }\n }\n if (typeof value === \"boolean\") {\n return value;\n }\n throw new TypeError(`Expected boolean, got ${typeof value}: ${value}`);\n};\nexports.expectBoolean = expectBoolean;\nconst expectNumber = (value) => {\n if (value === null || value === undefined) {\n return undefined;\n }\n if (typeof value === \"string\") {\n const parsed = parseFloat(value);\n if (!Number.isNaN(parsed)) {\n if (String(parsed) !== String(value)) {\n exports.logger.warn(stackTraceWarning(`Expected number but observed string: ${value}`));\n }\n return parsed;\n }\n }\n if (typeof value === \"number\") {\n return value;\n }\n throw new TypeError(`Expected number, got ${typeof value}: ${value}`);\n};\nexports.expectNumber = expectNumber;\nconst MAX_FLOAT = Math.ceil(2 ** 127 * (2 - 2 ** -23));\nconst expectFloat32 = (value) => {\n const expected = (0, exports.expectNumber)(value);\n if (expected !== undefined && !Number.isNaN(expected) && expected !== Infinity && expected !== -Infinity) {\n if (Math.abs(expected) > MAX_FLOAT) {\n throw new TypeError(`Expected 32-bit float, got ${value}`);\n }\n }\n return expected;\n};\nexports.expectFloat32 = expectFloat32;\nconst expectLong = (value) => {\n if (value === null || value === undefined) {\n return undefined;\n }\n if (Number.isInteger(value) && !Number.isNaN(value)) {\n return value;\n }\n throw new TypeError(`Expected integer, got ${typeof value}: ${value}`);\n};\nexports.expectLong = expectLong;\nexports.expectInt = exports.expectLong;\nconst expectInt32 = (value) => expectSizedInt(value, 32);\nexports.expectInt32 = expectInt32;\nconst expectShort = (value) => expectSizedInt(value, 16);\nexports.expectShort = expectShort;\nconst expectByte = (value) => expectSizedInt(value, 8);\nexports.expectByte = expectByte;\nconst expectSizedInt = (value, size) => {\n const expected = (0, exports.expectLong)(value);\n if (expected !== undefined && castInt(expected, size) !== expected) {\n throw new TypeError(`Expected ${size}-bit integer, got ${value}`);\n }\n return expected;\n};\nconst castInt = (value, size) => {\n switch (size) {\n case 32:\n return Int32Array.of(value)[0];\n case 16:\n return Int16Array.of(value)[0];\n case 8:\n return Int8Array.of(value)[0];\n }\n};\nconst expectNonNull = (value, location) => {\n if (value === null || value === undefined) {\n if (location) {\n throw new TypeError(`Expected a non-null value for ${location}`);\n }\n throw new TypeError(\"Expected a non-null value\");\n }\n return value;\n};\nexports.expectNonNull = expectNonNull;\nconst expectObject = (value) => {\n if (value === null || value === undefined) {\n return undefined;\n }\n if (typeof value === \"object\" && !Array.isArray(value)) {\n return value;\n }\n const receivedType = Array.isArray(value) ? \"array\" : typeof value;\n throw new TypeError(`Expected object, got ${receivedType}: ${value}`);\n};\nexports.expectObject = expectObject;\nconst expectString = (value) => {\n if (value === null || value === undefined) {\n return undefined;\n }\n if (typeof value === \"string\") {\n return value;\n }\n if ([\"boolean\", \"number\", \"bigint\"].includes(typeof value)) {\n exports.logger.warn(stackTraceWarning(`Expected string, got ${typeof value}: ${value}`));\n return String(value);\n }\n throw new TypeError(`Expected string, got ${typeof value}: ${value}`);\n};\nexports.expectString = expectString;\nconst expectUnion = (value) => {\n if (value === null || value === undefined) {\n return undefined;\n }\n const asObject = (0, exports.expectObject)(value);\n const setKeys = Object.entries(asObject)\n .filter(([, v]) => v != null)\n .map(([k]) => k);\n if (setKeys.length === 0) {\n throw new TypeError(`Unions must have exactly one non-null member. None were found.`);\n }\n if (setKeys.length > 1) {\n throw new TypeError(`Unions must have exactly one non-null member. Keys ${setKeys} were not null.`);\n }\n return asObject;\n};\nexports.expectUnion = expectUnion;\nconst strictParseDouble = (value) => {\n if (typeof value == \"string\") {\n return (0, exports.expectNumber)(parseNumber(value));\n }\n return (0, exports.expectNumber)(value);\n};\nexports.strictParseDouble = strictParseDouble;\nexports.strictParseFloat = exports.strictParseDouble;\nconst strictParseFloat32 = (value) => {\n if (typeof value == \"string\") {\n return (0, exports.expectFloat32)(parseNumber(value));\n }\n return (0, exports.expectFloat32)(value);\n};\nexports.strictParseFloat32 = strictParseFloat32;\nconst NUMBER_REGEX = /(-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?)|(-?Infinity)|(NaN)/g;\nconst parseNumber = (value) => {\n const matches = value.match(NUMBER_REGEX);\n if (matches === null || matches[0].length !== value.length) {\n throw new TypeError(`Expected real number, got implicit NaN`);\n }\n return parseFloat(value);\n};\nconst limitedParseDouble = (value) => {\n if (typeof value == \"string\") {\n return parseFloatString(value);\n }\n return (0, exports.expectNumber)(value);\n};\nexports.limitedParseDouble = limitedParseDouble;\nexports.handleFloat = exports.limitedParseDouble;\nexports.limitedParseFloat = exports.limitedParseDouble;\nconst limitedParseFloat32 = (value) => {\n if (typeof value == \"string\") {\n return parseFloatString(value);\n }\n return (0, exports.expectFloat32)(value);\n};\nexports.limitedParseFloat32 = limitedParseFloat32;\nconst parseFloatString = (value) => {\n switch (value) {\n case \"NaN\":\n return NaN;\n case \"Infinity\":\n return Infinity;\n case \"-Infinity\":\n return -Infinity;\n default:\n throw new Error(`Unable to parse float value: ${value}`);\n }\n};\nconst strictParseLong = (value) => {\n if (typeof value === \"string\") {\n return (0, exports.expectLong)(parseNumber(value));\n }\n return (0, exports.expectLong)(value);\n};\nexports.strictParseLong = strictParseLong;\nexports.strictParseInt = exports.strictParseLong;\nconst strictParseInt32 = (value) => {\n if (typeof value === \"string\") {\n return (0, exports.expectInt32)(parseNumber(value));\n }\n return (0, exports.expectInt32)(value);\n};\nexports.strictParseInt32 = strictParseInt32;\nconst strictParseShort = (value) => {\n if (typeof value === \"string\") {\n return (0, exports.expectShort)(parseNumber(value));\n }\n return (0, exports.expectShort)(value);\n};\nexports.strictParseShort = strictParseShort;\nconst strictParseByte = (value) => {\n if (typeof value === \"string\") {\n return (0, exports.expectByte)(parseNumber(value));\n }\n return (0, exports.expectByte)(value);\n};\nexports.strictParseByte = strictParseByte;\nconst stackTraceWarning = (message) => {\n return String(new TypeError(message).stack || message)\n .split(\"\\n\")\n .slice(0, 5)\n .filter((s) => !s.includes(\"stackTraceWarning\"))\n .join(\"\\n\");\n};\nexports.logger = {\n warn: console.warn,\n};\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.parseEpochTimestamp = exports.parseRfc7231DateTime = exports.parseRfc3339DateTimeWithOffset = exports.parseRfc3339DateTime = exports.dateToUtcString = void 0;\nconst parse_utils_1 = require(\"./parse-utils\");\nconst DAYS = [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"];\nconst MONTHS = [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"];\nfunction dateToUtcString(date) {\n const year = date.getUTCFullYear();\n const month = date.getUTCMonth();\n const dayOfWeek = date.getUTCDay();\n const dayOfMonthInt = date.getUTCDate();\n const hoursInt = date.getUTCHours();\n const minutesInt = date.getUTCMinutes();\n const secondsInt = date.getUTCSeconds();\n const dayOfMonthString = dayOfMonthInt < 10 ? `0${dayOfMonthInt}` : `${dayOfMonthInt}`;\n const hoursString = hoursInt < 10 ? `0${hoursInt}` : `${hoursInt}`;\n const minutesString = minutesInt < 10 ? `0${minutesInt}` : `${minutesInt}`;\n const secondsString = secondsInt < 10 ? `0${secondsInt}` : `${secondsInt}`;\n return `${DAYS[dayOfWeek]}, ${dayOfMonthString} ${MONTHS[month]} ${year} ${hoursString}:${minutesString}:${secondsString} GMT`;\n}\nexports.dateToUtcString = dateToUtcString;\nconst RFC3339 = new RegExp(/^(\\d{4})-(\\d{2})-(\\d{2})[tT](\\d{2}):(\\d{2}):(\\d{2})(?:\\.(\\d+))?[zZ]$/);\nconst parseRfc3339DateTime = (value) => {\n if (value === null || value === undefined) {\n return undefined;\n }\n if (typeof value !== \"string\") {\n throw new TypeError(\"RFC-3339 date-times must be expressed as strings\");\n }\n const match = RFC3339.exec(value);\n if (!match) {\n throw new TypeError(\"Invalid RFC-3339 date-time value\");\n }\n const [_, yearStr, monthStr, dayStr, hours, minutes, seconds, fractionalMilliseconds] = match;\n const year = (0, parse_utils_1.strictParseShort)(stripLeadingZeroes(yearStr));\n const month = parseDateValue(monthStr, \"month\", 1, 12);\n const day = parseDateValue(dayStr, \"day\", 1, 31);\n return buildDate(year, month, day, { hours, minutes, seconds, fractionalMilliseconds });\n};\nexports.parseRfc3339DateTime = parseRfc3339DateTime;\nconst RFC3339_WITH_OFFSET = new RegExp(/^(\\d{4})-(\\d{2})-(\\d{2})[tT](\\d{2}):(\\d{2}):(\\d{2})(?:\\.(\\d+))?(([-+]\\d{2}\\:\\d{2})|[zZ])$/);\nconst parseRfc3339DateTimeWithOffset = (value) => {\n if (value === null || value === undefined) {\n return undefined;\n }\n if (typeof value !== \"string\") {\n throw new TypeError(\"RFC-3339 date-times must be expressed as strings\");\n }\n const match = RFC3339_WITH_OFFSET.exec(value);\n if (!match) {\n throw new TypeError(\"Invalid RFC-3339 date-time value\");\n }\n const [_, yearStr, monthStr, dayStr, hours, minutes, seconds, fractionalMilliseconds, offsetStr] = match;\n const year = (0, parse_utils_1.strictParseShort)(stripLeadingZeroes(yearStr));\n const month = parseDateValue(monthStr, \"month\", 1, 12);\n const day = parseDateValue(dayStr, \"day\", 1, 31);\n const date = buildDate(year, month, day, { hours, minutes, seconds, fractionalMilliseconds });\n if (offsetStr.toUpperCase() != \"Z\") {\n date.setTime(date.getTime() - parseOffsetToMilliseconds(offsetStr));\n }\n return date;\n};\nexports.parseRfc3339DateTimeWithOffset = parseRfc3339DateTimeWithOffset;\nconst IMF_FIXDATE = new RegExp(/^(?:Mon|Tue|Wed|Thu|Fri|Sat|Sun), (\\d{2}) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) (\\d{4}) (\\d{1,2}):(\\d{2}):(\\d{2})(?:\\.(\\d+))? GMT$/);\nconst RFC_850_DATE = new RegExp(/^(?:Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sunday), (\\d{2})-(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)-(\\d{2}) (\\d{1,2}):(\\d{2}):(\\d{2})(?:\\.(\\d+))? GMT$/);\nconst ASC_TIME = new RegExp(/^(?:Mon|Tue|Wed|Thu|Fri|Sat|Sun) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) ( [1-9]|\\d{2}) (\\d{1,2}):(\\d{2}):(\\d{2})(?:\\.(\\d+))? (\\d{4})$/);\nconst parseRfc7231DateTime = (value) => {\n if (value === null || value === undefined) {\n return undefined;\n }\n if (typeof value !== \"string\") {\n throw new TypeError(\"RFC-7231 date-times must be expressed as strings\");\n }\n let match = IMF_FIXDATE.exec(value);\n if (match) {\n const [_, dayStr, monthStr, yearStr, hours, minutes, seconds, fractionalMilliseconds] = match;\n return buildDate((0, parse_utils_1.strictParseShort)(stripLeadingZeroes(yearStr)), parseMonthByShortName(monthStr), parseDateValue(dayStr, \"day\", 1, 31), { hours, minutes, seconds, fractionalMilliseconds });\n }\n match = RFC_850_DATE.exec(value);\n if (match) {\n const [_, dayStr, monthStr, yearStr, hours, minutes, seconds, fractionalMilliseconds] = match;\n return adjustRfc850Year(buildDate(parseTwoDigitYear(yearStr), parseMonthByShortName(monthStr), parseDateValue(dayStr, \"day\", 1, 31), {\n hours,\n minutes,\n seconds,\n fractionalMilliseconds,\n }));\n }\n match = ASC_TIME.exec(value);\n if (match) {\n const [_, monthStr, dayStr, hours, minutes, seconds, fractionalMilliseconds, yearStr] = match;\n return buildDate((0, parse_utils_1.strictParseShort)(stripLeadingZeroes(yearStr)), parseMonthByShortName(monthStr), parseDateValue(dayStr.trimLeft(), \"day\", 1, 31), { hours, minutes, seconds, fractionalMilliseconds });\n }\n throw new TypeError(\"Invalid RFC-7231 date-time value\");\n};\nexports.parseRfc7231DateTime = parseRfc7231DateTime;\nconst parseEpochTimestamp = (value) => {\n if (value === null || value === undefined) {\n return undefined;\n }\n let valueAsDouble;\n if (typeof value === \"number\") {\n valueAsDouble = value;\n }\n else if (typeof value === \"string\") {\n valueAsDouble = (0, parse_utils_1.strictParseDouble)(value);\n }\n else {\n throw new TypeError(\"Epoch timestamps must be expressed as floating point numbers or their string representation\");\n }\n if (Number.isNaN(valueAsDouble) || valueAsDouble === Infinity || valueAsDouble === -Infinity) {\n throw new TypeError(\"Epoch timestamps must be valid, non-Infinite, non-NaN numerics\");\n }\n return new Date(Math.round(valueAsDouble * 1000));\n};\nexports.parseEpochTimestamp = parseEpochTimestamp;\nconst buildDate = (year, month, day, time) => {\n const adjustedMonth = month - 1;\n validateDayOfMonth(year, adjustedMonth, day);\n return new Date(Date.UTC(year, adjustedMonth, day, parseDateValue(time.hours, \"hour\", 0, 23), parseDateValue(time.minutes, \"minute\", 0, 59), parseDateValue(time.seconds, \"seconds\", 0, 60), parseMilliseconds(time.fractionalMilliseconds)));\n};\nconst parseTwoDigitYear = (value) => {\n const thisYear = new Date().getUTCFullYear();\n const valueInThisCentury = Math.floor(thisYear / 100) * 100 + (0, parse_utils_1.strictParseShort)(stripLeadingZeroes(value));\n if (valueInThisCentury < thisYear) {\n return valueInThisCentury + 100;\n }\n return valueInThisCentury;\n};\nconst FIFTY_YEARS_IN_MILLIS = 50 * 365 * 24 * 60 * 60 * 1000;\nconst adjustRfc850Year = (input) => {\n if (input.getTime() - new Date().getTime() > FIFTY_YEARS_IN_MILLIS) {\n return new Date(Date.UTC(input.getUTCFullYear() - 100, input.getUTCMonth(), input.getUTCDate(), input.getUTCHours(), input.getUTCMinutes(), input.getUTCSeconds(), input.getUTCMilliseconds()));\n }\n return input;\n};\nconst parseMonthByShortName = (value) => {\n const monthIdx = MONTHS.indexOf(value);\n if (monthIdx < 0) {\n throw new TypeError(`Invalid month: ${value}`);\n }\n return monthIdx + 1;\n};\nconst DAYS_IN_MONTH = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\nconst validateDayOfMonth = (year, month, day) => {\n let maxDays = DAYS_IN_MONTH[month];\n if (month === 1 && isLeapYear(year)) {\n maxDays = 29;\n }\n if (day > maxDays) {\n throw new TypeError(`Invalid day for ${MONTHS[month]} in ${year}: ${day}`);\n }\n};\nconst isLeapYear = (year) => {\n return year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0);\n};\nconst parseDateValue = (value, type, lower, upper) => {\n const dateVal = (0, parse_utils_1.strictParseByte)(stripLeadingZeroes(value));\n if (dateVal < lower || dateVal > upper) {\n throw new TypeError(`${type} must be between ${lower} and ${upper}, inclusive`);\n }\n return dateVal;\n};\nconst parseMilliseconds = (value) => {\n if (value === null || value === undefined) {\n return 0;\n }\n return (0, parse_utils_1.strictParseFloat32)(\"0.\" + value) * 1000;\n};\nconst parseOffsetToMilliseconds = (value) => {\n const directionStr = value[0];\n let direction = 1;\n if (directionStr == \"+\") {\n direction = 1;\n }\n else if (directionStr == \"-\") {\n direction = -1;\n }\n else {\n throw new TypeError(`Offset direction, ${directionStr}, must be \"+\" or \"-\"`);\n }\n const hour = Number(value.substring(1, 3));\n const minute = Number(value.substring(4, 6));\n return direction * (hour * 60 + minute) * 60 * 1000;\n};\nconst stripLeadingZeroes = (value) => {\n let idx = 0;\n while (idx < value.length - 1 && value.charAt(idx) === \"0\") {\n idx++;\n }\n if (idx === 0) {\n return value;\n }\n return value.slice(idx);\n};\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.decorateServiceException = exports.ServiceException = void 0;\nclass ServiceException extends Error {\n constructor(options) {\n super(options.message);\n Object.setPrototypeOf(this, ServiceException.prototype);\n this.name = options.name;\n this.$fault = options.$fault;\n this.$metadata = options.$metadata;\n }\n}\nexports.ServiceException = ServiceException;\nconst decorateServiceException = (exception, additions = {}) => {\n Object.entries(additions)\n .filter(([, v]) => v !== undefined)\n .forEach(([k, v]) => {\n if (exception[k] == undefined || exception[k] === \"\") {\n exception[k] = v;\n }\n });\n const message = exception.message || exception.Message || \"UnknownError\";\n exception.message = message;\n delete exception.Message;\n return exception;\n};\nexports.decorateServiceException = decorateServiceException;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.throwDefaultError = void 0;\nconst exceptions_1 = require(\"./exceptions\");\nconst throwDefaultError = ({ output, parsedBody, exceptionCtor, errorCode }) => {\n const $metadata = deserializeMetadata(output);\n const statusCode = $metadata.httpStatusCode ? $metadata.httpStatusCode + \"\" : undefined;\n const response = new exceptionCtor({\n name: (parsedBody === null || parsedBody === void 0 ? void 0 : parsedBody.code) || (parsedBody === null || parsedBody === void 0 ? void 0 : parsedBody.Code) || errorCode || statusCode || \"UnknownError\",\n $fault: \"client\",\n $metadata,\n });\n throw (0, exceptions_1.decorateServiceException)(response, parsedBody);\n};\nexports.throwDefaultError = throwDefaultError;\nconst deserializeMetadata = (output) => {\n var _a, _b;\n return ({\n httpStatusCode: output.statusCode,\n requestId: (_b = (_a = output.headers[\"x-amzn-requestid\"]) !== null && _a !== void 0 ? _a : output.headers[\"x-amzn-request-id\"]) !== null && _b !== void 0 ? _b : output.headers[\"x-amz-request-id\"],\n extendedRequestId: output.headers[\"x-amz-id-2\"],\n cfId: output.headers[\"x-amz-cf-id\"],\n });\n};\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.loadConfigsForDefaultMode = void 0;\nconst loadConfigsForDefaultMode = (mode) => {\n switch (mode) {\n case \"standard\":\n return {\n retryMode: \"standard\",\n connectionTimeout: 3100,\n };\n case \"in-region\":\n return {\n retryMode: \"standard\",\n connectionTimeout: 1100,\n };\n case \"cross-region\":\n return {\n retryMode: \"standard\",\n connectionTimeout: 3100,\n };\n case \"mobile\":\n return {\n retryMode: \"standard\",\n connectionTimeout: 30000,\n };\n default:\n return {};\n }\n};\nexports.loadConfigsForDefaultMode = loadConfigsForDefaultMode;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.emitWarningIfUnsupportedVersion = void 0;\nlet warningEmitted = false;\nconst emitWarningIfUnsupportedVersion = (version) => {\n if (version && !warningEmitted && parseInt(version.substring(1, version.indexOf(\".\"))) < 14) {\n warningEmitted = true;\n }\n};\nexports.emitWarningIfUnsupportedVersion = emitWarningIfUnsupportedVersion;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.extendedEncodeURIComponent = void 0;\nfunction extendedEncodeURIComponent(str) {\n return encodeURIComponent(str).replace(/[!'()*]/g, function (c) {\n return \"%\" + c.charCodeAt(0).toString(16).toUpperCase();\n });\n}\nexports.extendedEncodeURIComponent = extendedEncodeURIComponent;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getArrayIfSingleItem = void 0;\nconst getArrayIfSingleItem = (mayBeArray) => Array.isArray(mayBeArray) ? mayBeArray : [mayBeArray];\nexports.getArrayIfSingleItem = getArrayIfSingleItem;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getValueFromTextNode = void 0;\nconst getValueFromTextNode = (obj) => {\n const textNodeName = \"#text\";\n for (const key in obj) {\n if (obj.hasOwnProperty(key) && obj[key][textNodeName] !== undefined) {\n obj[key] = obj[key][textNodeName];\n }\n else if (typeof obj[key] === \"object\" && obj[key] !== null) {\n obj[key] = (0, exports.getValueFromTextNode)(obj[key]);\n }\n }\n return obj;\n};\nexports.getValueFromTextNode = getValueFromTextNode;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.LazyJsonString = exports.StringWrapper = void 0;\nconst StringWrapper = function () {\n const Class = Object.getPrototypeOf(this).constructor;\n const Constructor = Function.bind.apply(String, [null, ...arguments]);\n const instance = new Constructor();\n Object.setPrototypeOf(instance, Class.prototype);\n return instance;\n};\nexports.StringWrapper = StringWrapper;\nexports.StringWrapper.prototype = Object.create(String.prototype, {\n constructor: {\n value: exports.StringWrapper,\n enumerable: false,\n writable: true,\n configurable: true,\n },\n});\nObject.setPrototypeOf(exports.StringWrapper, String);\nclass LazyJsonString extends exports.StringWrapper {\n deserializeJSON() {\n return JSON.parse(super.toString());\n }\n toJSON() {\n return super.toString();\n }\n static fromObject(object) {\n if (object instanceof LazyJsonString) {\n return object;\n }\n else if (object instanceof String || typeof object === \"string\") {\n return new LazyJsonString(object);\n }\n return new LazyJsonString(JSON.stringify(object));\n }\n}\nexports.LazyJsonString = LazyJsonString;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.convertMap = exports.map = void 0;\nfunction map(arg0, arg1, arg2) {\n let target;\n let filter;\n let instructions;\n if (typeof arg1 === \"undefined\" && typeof arg2 === \"undefined\") {\n target = {};\n instructions = arg0;\n }\n else {\n target = arg0;\n if (typeof arg1 === \"function\") {\n filter = arg1;\n instructions = arg2;\n return mapWithFilter(target, filter, instructions);\n }\n else {\n instructions = arg1;\n }\n }\n for (const key of Object.keys(instructions)) {\n if (!Array.isArray(instructions[key])) {\n target[key] = instructions[key];\n continue;\n }\n let [filter, value] = instructions[key];\n if (typeof value === \"function\") {\n let _value;\n const defaultFilterPassed = filter === undefined && (_value = value()) != null;\n const customFilterPassed = (typeof filter === \"function\" && !!filter(void 0)) || (typeof filter !== \"function\" && !!filter);\n if (defaultFilterPassed) {\n target[key] = _value;\n }\n else if (customFilterPassed) {\n target[key] = value();\n }\n }\n else {\n const defaultFilterPassed = filter === undefined && value != null;\n const customFilterPassed = (typeof filter === \"function\" && !!filter(value)) || (typeof filter !== \"function\" && !!filter);\n if (defaultFilterPassed || customFilterPassed) {\n target[key] = value;\n }\n }\n }\n return target;\n}\nexports.map = map;\nconst convertMap = (target) => {\n const output = {};\n for (const [k, v] of Object.entries(target || {})) {\n output[k] = [, v];\n }\n return output;\n};\nexports.convertMap = convertMap;\nconst mapWithFilter = (target, filter, instructions) => {\n return map(target, Object.entries(instructions).reduce((_instructions, [key, value]) => {\n if (Array.isArray(value)) {\n _instructions[key] = value;\n }\n else {\n if (typeof value === \"function\") {\n _instructions[key] = [filter, value()];\n }\n else {\n _instructions[key] = [filter, value];\n }\n }\n return _instructions;\n }, {}));\n};\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.resolvedPath = void 0;\nconst extended_encode_uri_component_1 = require(\"./extended-encode-uri-component\");\nconst resolvedPath = (resolvedPath, input, memberName, labelValueProvider, uriLabel, isGreedyLabel) => {\n if (input != null && input[memberName] !== undefined) {\n const labelValue = labelValueProvider();\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: \" + memberName + \".\");\n }\n resolvedPath = resolvedPath.replace(uriLabel, isGreedyLabel\n ? labelValue\n .split(\"/\")\n .map((segment) => (0, extended_encode_uri_component_1.extendedEncodeURIComponent)(segment))\n .join(\"/\")\n : (0, extended_encode_uri_component_1.extendedEncodeURIComponent)(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: \" + memberName + \".\");\n }\n return resolvedPath;\n};\nexports.resolvedPath = resolvedPath;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.serializeFloat = void 0;\nconst serializeFloat = (value) => {\n if (value !== value) {\n return \"NaN\";\n }\n switch (value) {\n case Infinity:\n return \"Infinity\";\n case -Infinity:\n return \"-Infinity\";\n default:\n return value;\n }\n};\nexports.serializeFloat = serializeFloat;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.splitEvery = void 0;\nfunction splitEvery(value, delimiter, numDelimiters) {\n if (numDelimiters <= 0 || !Number.isInteger(numDelimiters)) {\n throw new Error(\"Invalid number of delimiters (\" + numDelimiters + \") for splitEvery.\");\n }\n const segments = value.split(delimiter);\n if (numDelimiters === 1) {\n return segments;\n }\n const compoundSegments = [];\n let currentSegment = \"\";\n for (let i = 0; i < segments.length; i++) {\n if (currentSegment === \"\") {\n currentSegment = segments[i];\n }\n else {\n currentSegment += delimiter + segments[i];\n }\n if ((i + 1) % numDelimiters === 0) {\n compoundSegments.push(currentSegment);\n currentSegment = \"\";\n }\n }\n if (currentSegment !== \"\") {\n compoundSegments.push(currentSegment);\n }\n return compoundSegments;\n}\nexports.splitEvery = splitEvery;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./NoOpLogger\"), exports);\ntslib_1.__exportStar(require(\"./client\"), exports);\ntslib_1.__exportStar(require(\"./command\"), exports);\ntslib_1.__exportStar(require(\"./constants\"), exports);\ntslib_1.__exportStar(require(\"./date-utils\"), exports);\ntslib_1.__exportStar(require(\"./default-error-handler\"), exports);\ntslib_1.__exportStar(require(\"./defaults-mode\"), exports);\ntslib_1.__exportStar(require(\"./emitWarningIfUnsupportedVersion\"), exports);\ntslib_1.__exportStar(require(\"./exceptions\"), exports);\ntslib_1.__exportStar(require(\"./extended-encode-uri-component\"), exports);\ntslib_1.__exportStar(require(\"./get-array-if-single-item\"), exports);\ntslib_1.__exportStar(require(\"./get-value-from-text-node\"), exports);\ntslib_1.__exportStar(require(\"./lazy-json\"), exports);\ntslib_1.__exportStar(require(\"./object-mapping\"), exports);\ntslib_1.__exportStar(require(\"./parse-utils\"), exports);\ntslib_1.__exportStar(require(\"./resolve-path\"), exports);\ntslib_1.__exportStar(require(\"./ser-utils\"), exports);\ntslib_1.__exportStar(require(\"./split-every\"), exports);\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.resolveClientEndpointParameters = void 0;\nconst resolveClientEndpointParameters = (options) => {\n return {\n ...options,\n useDualstackEndpoint: options.useDualstackEndpoint ?? false,\n useFipsEndpoint: options.useFipsEndpoint ?? false,\n defaultSigningName: \"cognito-identity\",\n };\n};\nexports.resolveClientEndpointParameters = resolveClientEndpointParameters;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.STSServiceException = void 0;\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nclass STSServiceException extends smithy_client_1.ServiceException {\n constructor(options) {\n super(options);\n Object.setPrototypeOf(this, STSServiceException.prototype);\n }\n}\nexports.STSServiceException = STSServiceException;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.GetSessionTokenResponseFilterSensitiveLog = exports.GetSessionTokenRequestFilterSensitiveLog = exports.GetFederationTokenResponseFilterSensitiveLog = exports.FederatedUserFilterSensitiveLog = exports.GetFederationTokenRequestFilterSensitiveLog = exports.GetCallerIdentityResponseFilterSensitiveLog = exports.GetCallerIdentityRequestFilterSensitiveLog = exports.GetAccessKeyInfoResponseFilterSensitiveLog = exports.GetAccessKeyInfoRequestFilterSensitiveLog = exports.DecodeAuthorizationMessageResponseFilterSensitiveLog = exports.DecodeAuthorizationMessageRequestFilterSensitiveLog = exports.AssumeRoleWithWebIdentityResponseFilterSensitiveLog = exports.AssumeRoleWithWebIdentityRequestFilterSensitiveLog = exports.AssumeRoleWithSAMLResponseFilterSensitiveLog = exports.AssumeRoleWithSAMLRequestFilterSensitiveLog = exports.AssumeRoleResponseFilterSensitiveLog = exports.CredentialsFilterSensitiveLog = exports.AssumeRoleRequestFilterSensitiveLog = exports.TagFilterSensitiveLog = exports.PolicyDescriptorTypeFilterSensitiveLog = exports.AssumedRoleUserFilterSensitiveLog = exports.InvalidAuthorizationMessageException = exports.IDPCommunicationErrorException = exports.InvalidIdentityTokenException = exports.IDPRejectedClaimException = exports.RegionDisabledException = exports.PackedPolicyTooLargeException = exports.MalformedPolicyDocumentException = exports.ExpiredTokenException = void 0;\nconst STSServiceException_1 = require(\"./STSServiceException\");\nclass ExpiredTokenException extends STSServiceException_1.STSServiceException {\n constructor(opts) {\n super({\n name: \"ExpiredTokenException\",\n $fault: \"client\",\n ...opts,\n });\n this.name = \"ExpiredTokenException\";\n this.$fault = \"client\";\n Object.setPrototypeOf(this, ExpiredTokenException.prototype);\n }\n}\nexports.ExpiredTokenException = ExpiredTokenException;\nclass MalformedPolicyDocumentException extends STSServiceException_1.STSServiceException {\n constructor(opts) {\n super({\n name: \"MalformedPolicyDocumentException\",\n $fault: \"client\",\n ...opts,\n });\n this.name = \"MalformedPolicyDocumentException\";\n this.$fault = \"client\";\n Object.setPrototypeOf(this, MalformedPolicyDocumentException.prototype);\n }\n}\nexports.MalformedPolicyDocumentException = MalformedPolicyDocumentException;\nclass PackedPolicyTooLargeException extends STSServiceException_1.STSServiceException {\n constructor(opts) {\n super({\n name: \"PackedPolicyTooLargeException\",\n $fault: \"client\",\n ...opts,\n });\n this.name = \"PackedPolicyTooLargeException\";\n this.$fault = \"client\";\n Object.setPrototypeOf(this, PackedPolicyTooLargeException.prototype);\n }\n}\nexports.PackedPolicyTooLargeException = PackedPolicyTooLargeException;\nclass RegionDisabledException extends STSServiceException_1.STSServiceException {\n constructor(opts) {\n super({\n name: \"RegionDisabledException\",\n $fault: \"client\",\n ...opts,\n });\n this.name = \"RegionDisabledException\";\n this.$fault = \"client\";\n Object.setPrototypeOf(this, RegionDisabledException.prototype);\n }\n}\nexports.RegionDisabledException = RegionDisabledException;\nclass IDPRejectedClaimException extends STSServiceException_1.STSServiceException {\n constructor(opts) {\n super({\n name: \"IDPRejectedClaimException\",\n $fault: \"client\",\n ...opts,\n });\n this.name = \"IDPRejectedClaimException\";\n this.$fault = \"client\";\n Object.setPrototypeOf(this, IDPRejectedClaimException.prototype);\n }\n}\nexports.IDPRejectedClaimException = IDPRejectedClaimException;\nclass InvalidIdentityTokenException extends STSServiceException_1.STSServiceException {\n constructor(opts) {\n super({\n name: \"InvalidIdentityTokenException\",\n $fault: \"client\",\n ...opts,\n });\n this.name = \"InvalidIdentityTokenException\";\n this.$fault = \"client\";\n Object.setPrototypeOf(this, InvalidIdentityTokenException.prototype);\n }\n}\nexports.InvalidIdentityTokenException = InvalidIdentityTokenException;\nclass IDPCommunicationErrorException extends STSServiceException_1.STSServiceException {\n constructor(opts) {\n super({\n name: \"IDPCommunicationErrorException\",\n $fault: \"client\",\n ...opts,\n });\n this.name = \"IDPCommunicationErrorException\";\n this.$fault = \"client\";\n Object.setPrototypeOf(this, IDPCommunicationErrorException.prototype);\n }\n}\nexports.IDPCommunicationErrorException = IDPCommunicationErrorException;\nclass InvalidAuthorizationMessageException extends STSServiceException_1.STSServiceException {\n constructor(opts) {\n super({\n name: \"InvalidAuthorizationMessageException\",\n $fault: \"client\",\n ...opts,\n });\n this.name = \"InvalidAuthorizationMessageException\";\n this.$fault = \"client\";\n Object.setPrototypeOf(this, InvalidAuthorizationMessageException.prototype);\n }\n}\nexports.InvalidAuthorizationMessageException = InvalidAuthorizationMessageException;\nconst AssumedRoleUserFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.AssumedRoleUserFilterSensitiveLog = AssumedRoleUserFilterSensitiveLog;\nconst PolicyDescriptorTypeFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.PolicyDescriptorTypeFilterSensitiveLog = PolicyDescriptorTypeFilterSensitiveLog;\nconst TagFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.TagFilterSensitiveLog = TagFilterSensitiveLog;\nconst AssumeRoleRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.AssumeRoleRequestFilterSensitiveLog = AssumeRoleRequestFilterSensitiveLog;\nconst CredentialsFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.CredentialsFilterSensitiveLog = CredentialsFilterSensitiveLog;\nconst AssumeRoleResponseFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.AssumeRoleResponseFilterSensitiveLog = AssumeRoleResponseFilterSensitiveLog;\nconst AssumeRoleWithSAMLRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.AssumeRoleWithSAMLRequestFilterSensitiveLog = AssumeRoleWithSAMLRequestFilterSensitiveLog;\nconst AssumeRoleWithSAMLResponseFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.AssumeRoleWithSAMLResponseFilterSensitiveLog = AssumeRoleWithSAMLResponseFilterSensitiveLog;\nconst AssumeRoleWithWebIdentityRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.AssumeRoleWithWebIdentityRequestFilterSensitiveLog = AssumeRoleWithWebIdentityRequestFilterSensitiveLog;\nconst AssumeRoleWithWebIdentityResponseFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.AssumeRoleWithWebIdentityResponseFilterSensitiveLog = AssumeRoleWithWebIdentityResponseFilterSensitiveLog;\nconst DecodeAuthorizationMessageRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.DecodeAuthorizationMessageRequestFilterSensitiveLog = DecodeAuthorizationMessageRequestFilterSensitiveLog;\nconst DecodeAuthorizationMessageResponseFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.DecodeAuthorizationMessageResponseFilterSensitiveLog = DecodeAuthorizationMessageResponseFilterSensitiveLog;\nconst GetAccessKeyInfoRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.GetAccessKeyInfoRequestFilterSensitiveLog = GetAccessKeyInfoRequestFilterSensitiveLog;\nconst GetAccessKeyInfoResponseFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.GetAccessKeyInfoResponseFilterSensitiveLog = GetAccessKeyInfoResponseFilterSensitiveLog;\nconst GetCallerIdentityRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.GetCallerIdentityRequestFilterSensitiveLog = GetCallerIdentityRequestFilterSensitiveLog;\nconst GetCallerIdentityResponseFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.GetCallerIdentityResponseFilterSensitiveLog = GetCallerIdentityResponseFilterSensitiveLog;\nconst GetFederationTokenRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.GetFederationTokenRequestFilterSensitiveLog = GetFederationTokenRequestFilterSensitiveLog;\nconst FederatedUserFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.FederatedUserFilterSensitiveLog = FederatedUserFilterSensitiveLog;\nconst GetFederationTokenResponseFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.GetFederationTokenResponseFilterSensitiveLog = GetFederationTokenResponseFilterSensitiveLog;\nconst GetSessionTokenRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.GetSessionTokenRequestFilterSensitiveLog = GetSessionTokenRequestFilterSensitiveLog;\nconst GetSessionTokenResponseFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.GetSessionTokenResponseFilterSensitiveLog = GetSessionTokenResponseFilterSensitiveLog;\n", "'use strict';\n\nconst nameStartChar = ':A-Za-z_\\\\u00C0-\\\\u00D6\\\\u00D8-\\\\u00F6\\\\u00F8-\\\\u02FF\\\\u0370-\\\\u037D\\\\u037F-\\\\u1FFF\\\\u200C-\\\\u200D\\\\u2070-\\\\u218F\\\\u2C00-\\\\u2FEF\\\\u3001-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFFD';\nconst nameChar = nameStartChar + '\\\\-.\\\\d\\\\u00B7\\\\u0300-\\\\u036F\\\\u203F-\\\\u2040';\nconst nameRegexp = '[' + nameStartChar + '][' + nameChar + ']*'\nconst regexName = new RegExp('^' + nameRegexp + '$');\n\nconst getAllMatches = function(string, regex) {\n const matches = [];\n let match = regex.exec(string);\n while (match) {\n const allmatches = [];\n allmatches.startIndex = regex.lastIndex - match[0].length;\n const len = match.length;\n for (let index = 0; index < len; index++) {\n allmatches.push(match[index]);\n }\n matches.push(allmatches);\n match = regex.exec(string);\n }\n return matches;\n};\n\nconst isName = function(string) {\n const match = regexName.exec(string);\n return !(match === null || typeof match === 'undefined');\n};\n\nexports.isExist = function(v) {\n return typeof v !== 'undefined';\n};\n\nexports.isEmptyObject = function(obj) {\n return Object.keys(obj).length === 0;\n};\n\n/**\n * Copy all the properties of a into b.\n * @param {*} target\n * @param {*} a\n */\nexports.merge = function(target, a, arrayMode) {\n if (a) {\n const keys = Object.keys(a); // will return an array of own properties\n const len = keys.length; //don't make it inline\n for (let i = 0; i < len; i++) {\n if (arrayMode === 'strict') {\n target[keys[i]] = [ a[keys[i]] ];\n } else {\n target[keys[i]] = a[keys[i]];\n }\n }\n }\n};\n/* exports.merge =function (b,a){\n return Object.assign(b,a);\n} */\n\nexports.getValue = function(v) {\n if (exports.isExist(v)) {\n return v;\n } else {\n return '';\n }\n};\n\n// const fakeCall = function(a) {return a;};\n// const fakeCallNoReturn = function() {};\n\nexports.isName = isName;\nexports.getAllMatches = getAllMatches;\nexports.nameRegexp = nameRegexp;\n", "'use strict';\n\nconst util = require('./util');\n\nconst defaultOptions = {\n allowBooleanAttributes: false, //A tag can have attributes without any value\n unpairedTags: []\n};\n\n//const tagsPattern = new RegExp(\"<\\\\/?([\\\\w:\\\\-_\\.]+)\\\\s*\\/?>\",\"g\");\nexports.validate = function (xmlData, options) {\n options = Object.assign({}, defaultOptions, options);\n\n //xmlData = xmlData.replace(/(\\r\\n|\\n|\\r)/gm,\"\");//make it single line\n //xmlData = xmlData.replace(/(^\\s*<\\?xml.*?\\?>)/g,\"\");//Remove XML starting tag\n //xmlData = xmlData.replace(/()/g,\"\");//Remove DOCTYPE\n const tags = [];\n let tagFound = false;\n\n //indicates that the root tag has been closed (aka. depth 0 has been reached)\n let reachedRoot = false;\n\n if (xmlData[0] === '\\ufeff') {\n // check for byte order mark (BOM)\n xmlData = xmlData.substr(1);\n }\n \n for (let i = 0; i < xmlData.length; i++) {\n\n if (xmlData[i] === '<' && xmlData[i+1] === '?') {\n i+=2;\n i = readPI(xmlData,i);\n if (i.err) return i;\n }else if (xmlData[i] === '<') {\n //starting of tag\n //read until you reach to '>' avoiding any '>' in attribute value\n let tagStartPos = i;\n i++;\n \n if (xmlData[i] === '!') {\n i = readCommentAndCDATA(xmlData, i);\n continue;\n } else {\n let closingTag = false;\n if (xmlData[i] === '/') {\n //closing tag\n closingTag = true;\n i++;\n }\n //read tagname\n let tagName = '';\n for (; i < xmlData.length &&\n xmlData[i] !== '>' &&\n xmlData[i] !== ' ' &&\n xmlData[i] !== '\\t' &&\n xmlData[i] !== '\\n' &&\n xmlData[i] !== '\\r'; i++\n ) {\n tagName += xmlData[i];\n }\n tagName = tagName.trim();\n //console.log(tagName);\n\n if (tagName[tagName.length - 1] === '/') {\n //self closing tag without attributes\n tagName = tagName.substring(0, tagName.length - 1);\n //continue;\n i--;\n }\n if (!validateTagName(tagName)) {\n let msg;\n if (tagName.trim().length === 0) {\n msg = \"Invalid space after '<'.\";\n } else {\n msg = \"Tag '\"+tagName+\"' is an invalid name.\";\n }\n return getErrorObject('InvalidTag', msg, getLineNumberForPosition(xmlData, i));\n }\n\n const result = readAttributeStr(xmlData, i);\n if (result === false) {\n return getErrorObject('InvalidAttr', \"Attributes for '\"+tagName+\"' have open quote.\", getLineNumberForPosition(xmlData, i));\n }\n let attrStr = result.value;\n i = result.index;\n\n if (attrStr[attrStr.length - 1] === '/') {\n //self closing tag\n const attrStrStart = i - attrStr.length;\n attrStr = attrStr.substring(0, attrStr.length - 1);\n const isValid = validateAttributeString(attrStr, options);\n if (isValid === true) {\n tagFound = true;\n //continue; //text may presents after self closing tag\n } else {\n //the result from the nested function returns the position of the error within the attribute\n //in order to get the 'true' error line, we need to calculate the position where the attribute begins (i - attrStr.length) and then add the position within the attribute\n //this gives us the absolute index in the entire xml, which we can use to find the line at last\n return getErrorObject(isValid.err.code, isValid.err.msg, getLineNumberForPosition(xmlData, attrStrStart + isValid.err.line));\n }\n } else if (closingTag) {\n if (!result.tagClosed) {\n return getErrorObject('InvalidTag', \"Closing tag '\"+tagName+\"' doesn't have proper closing.\", getLineNumberForPosition(xmlData, i));\n } else if (attrStr.trim().length > 0) {\n return getErrorObject('InvalidTag', \"Closing tag '\"+tagName+\"' can't have attributes or invalid starting.\", getLineNumberForPosition(xmlData, tagStartPos));\n } else {\n const otg = tags.pop();\n if (tagName !== otg.tagName) {\n let openPos = getLineNumberForPosition(xmlData, otg.tagStartPos);\n return getErrorObject('InvalidTag',\n \"Expected closing tag '\"+otg.tagName+\"' (opened in line \"+openPos.line+\", col \"+openPos.col+\") instead of closing tag '\"+tagName+\"'.\",\n getLineNumberForPosition(xmlData, tagStartPos));\n }\n\n //when there are no more tags, we reached the root level.\n if (tags.length == 0) {\n reachedRoot = true;\n }\n }\n } else {\n const isValid = validateAttributeString(attrStr, options);\n if (isValid !== true) {\n //the result from the nested function returns the position of the error within the attribute\n //in order to get the 'true' error line, we need to calculate the position where the attribute begins (i - attrStr.length) and then add the position within the attribute\n //this gives us the absolute index in the entire xml, which we can use to find the line at last\n return getErrorObject(isValid.err.code, isValid.err.msg, getLineNumberForPosition(xmlData, i - attrStr.length + isValid.err.line));\n }\n\n //if the root level has been reached before ...\n if (reachedRoot === true) {\n return getErrorObject('InvalidXml', 'Multiple possible root nodes found.', getLineNumberForPosition(xmlData, i));\n } else if(options.unpairedTags.indexOf(tagName) !== -1){\n //don't push into stack\n } else {\n tags.push({tagName, tagStartPos});\n }\n tagFound = true;\n }\n\n //skip tag text value\n //It may include comments and CDATA value\n for (i++; i < xmlData.length; i++) {\n if (xmlData[i] === '<') {\n if (xmlData[i + 1] === '!') {\n //comment or CADATA\n i++;\n i = readCommentAndCDATA(xmlData, i);\n continue;\n } else if (xmlData[i+1] === '?') {\n i = readPI(xmlData, ++i);\n if (i.err) return i;\n } else{\n break;\n }\n } else if (xmlData[i] === '&') {\n const afterAmp = validateAmpersand(xmlData, i);\n if (afterAmp == -1)\n return getErrorObject('InvalidChar', \"char '&' is not expected.\", getLineNumberForPosition(xmlData, i));\n i = afterAmp;\n }else{\n if (reachedRoot === true && !isWhiteSpace(xmlData[i])) {\n return getErrorObject('InvalidXml', \"Extra text at the end\", getLineNumberForPosition(xmlData, i));\n }\n }\n } //end of reading tag text value\n if (xmlData[i] === '<') {\n i--;\n }\n }\n } else {\n if ( isWhiteSpace(xmlData[i])) {\n continue;\n }\n return getErrorObject('InvalidChar', \"char '\"+xmlData[i]+\"' is not expected.\", getLineNumberForPosition(xmlData, i));\n }\n }\n\n if (!tagFound) {\n return getErrorObject('InvalidXml', 'Start tag expected.', 1);\n }else if (tags.length == 1) {\n return getErrorObject('InvalidTag', \"Unclosed tag '\"+tags[0].tagName+\"'.\", getLineNumberForPosition(xmlData, tags[0].tagStartPos));\n }else if (tags.length > 0) {\n return getErrorObject('InvalidXml', \"Invalid '\"+\n JSON.stringify(tags.map(t => t.tagName), null, 4).replace(/\\r?\\n/g, '')+\n \"' found.\", {line: 1, col: 1});\n }\n\n return true;\n};\n\nfunction isWhiteSpace(char){\n return char === ' ' || char === '\\t' || char === '\\n' || char === '\\r';\n}\n/**\n * Read Processing insstructions and skip\n * @param {*} xmlData\n * @param {*} i\n */\nfunction readPI(xmlData, i) {\n const start = i;\n for (; i < xmlData.length; i++) {\n if (xmlData[i] == '?' || xmlData[i] == ' ') {\n //tagname\n const tagname = xmlData.substr(start, i - start);\n if (i > 5 && tagname === 'xml') {\n return getErrorObject('InvalidXml', 'XML declaration allowed only at the start of the document.', getLineNumberForPosition(xmlData, i));\n } else if (xmlData[i] == '?' && xmlData[i + 1] == '>') {\n //check if valid attribut string\n i++;\n break;\n } else {\n continue;\n }\n }\n }\n return i;\n}\n\nfunction readCommentAndCDATA(xmlData, i) {\n if (xmlData.length > i + 5 && xmlData[i + 1] === '-' && xmlData[i + 2] === '-') {\n //comment\n for (i += 3; i < xmlData.length; i++) {\n if (xmlData[i] === '-' && xmlData[i + 1] === '-' && xmlData[i + 2] === '>') {\n i += 2;\n break;\n }\n }\n } else if (\n xmlData.length > i + 8 &&\n xmlData[i + 1] === 'D' &&\n xmlData[i + 2] === 'O' &&\n xmlData[i + 3] === 'C' &&\n xmlData[i + 4] === 'T' &&\n xmlData[i + 5] === 'Y' &&\n xmlData[i + 6] === 'P' &&\n xmlData[i + 7] === 'E'\n ) {\n let angleBracketsCount = 1;\n for (i += 8; i < xmlData.length; i++) {\n if (xmlData[i] === '<') {\n angleBracketsCount++;\n } else if (xmlData[i] === '>') {\n angleBracketsCount--;\n if (angleBracketsCount === 0) {\n break;\n }\n }\n }\n } else if (\n xmlData.length > i + 9 &&\n xmlData[i + 1] === '[' &&\n xmlData[i + 2] === 'C' &&\n xmlData[i + 3] === 'D' &&\n xmlData[i + 4] === 'A' &&\n xmlData[i + 5] === 'T' &&\n xmlData[i + 6] === 'A' &&\n xmlData[i + 7] === '['\n ) {\n for (i += 8; i < xmlData.length; i++) {\n if (xmlData[i] === ']' && xmlData[i + 1] === ']' && xmlData[i + 2] === '>') {\n i += 2;\n break;\n }\n }\n }\n\n return i;\n}\n\nconst doubleQuote = '\"';\nconst singleQuote = \"'\";\n\n/**\n * Keep reading xmlData until '<' is found outside the attribute value.\n * @param {string} xmlData\n * @param {number} i\n */\nfunction readAttributeStr(xmlData, i) {\n let attrStr = '';\n let startChar = '';\n let tagClosed = false;\n for (; i < xmlData.length; i++) {\n if (xmlData[i] === doubleQuote || xmlData[i] === singleQuote) {\n if (startChar === '') {\n startChar = xmlData[i];\n } else if (startChar !== xmlData[i]) {\n //if vaue is enclosed with double quote then single quotes are allowed inside the value and vice versa\n } else {\n startChar = '';\n }\n } else if (xmlData[i] === '>') {\n if (startChar === '') {\n tagClosed = true;\n break;\n }\n }\n attrStr += xmlData[i];\n }\n if (startChar !== '') {\n return false;\n }\n\n return {\n value: attrStr,\n index: i,\n tagClosed: tagClosed\n };\n}\n\n/**\n * Select all the attributes whether valid or invalid.\n */\nconst validAttrStrRegxp = new RegExp('(\\\\s*)([^\\\\s=]+)(\\\\s*=)?(\\\\s*([\\'\"])(([\\\\s\\\\S])*?)\\\\5)?', 'g');\n\n//attr, =\"sd\", a=\"amit's\", a=\"sd\"b=\"saf\", ab cd=\"\"\n\nfunction validateAttributeString(attrStr, options) {\n //console.log(\"start:\"+attrStr+\":end\");\n\n //if(attrStr.trim().length === 0) return true; //empty string\n\n const matches = util.getAllMatches(attrStr, validAttrStrRegxp);\n const attrNames = {};\n\n for (let i = 0; i < matches.length; i++) {\n if (matches[i][1].length === 0) {\n //nospace before attribute name: a=\"sd\"b=\"saf\"\n return getErrorObject('InvalidAttr', \"Attribute '\"+matches[i][2]+\"' has no space in starting.\", getPositionFromMatch(matches[i]))\n } else if (matches[i][3] !== undefined && matches[i][4] === undefined) {\n return getErrorObject('InvalidAttr', \"Attribute '\"+matches[i][2]+\"' is without value.\", getPositionFromMatch(matches[i]));\n } else if (matches[i][3] === undefined && !options.allowBooleanAttributes) {\n //independent attribute: ab\n return getErrorObject('InvalidAttr', \"boolean attribute '\"+matches[i][2]+\"' is not allowed.\", getPositionFromMatch(matches[i]));\n }\n /* else if(matches[i][6] === undefined){//attribute without value: ab=\n return { err: { code:\"InvalidAttr\",msg:\"attribute \" + matches[i][2] + \" has no value assigned.\"}};\n } */\n const attrName = matches[i][2];\n if (!validateAttrName(attrName)) {\n return getErrorObject('InvalidAttr', \"Attribute '\"+attrName+\"' is an invalid name.\", getPositionFromMatch(matches[i]));\n }\n if (!attrNames.hasOwnProperty(attrName)) {\n //check for duplicate attribute.\n attrNames[attrName] = 1;\n } else {\n return getErrorObject('InvalidAttr', \"Attribute '\"+attrName+\"' is repeated.\", getPositionFromMatch(matches[i]));\n }\n }\n\n return true;\n}\n\nfunction validateNumberAmpersand(xmlData, i) {\n let re = /\\d/;\n if (xmlData[i] === 'x') {\n i++;\n re = /[\\da-fA-F]/;\n }\n for (; i < xmlData.length; i++) {\n if (xmlData[i] === ';')\n return i;\n if (!xmlData[i].match(re))\n break;\n }\n return -1;\n}\n\nfunction validateAmpersand(xmlData, i) {\n // https://www.w3.org/TR/xml/#dt-charref\n i++;\n if (xmlData[i] === ';')\n return -1;\n if (xmlData[i] === '#') {\n i++;\n return validateNumberAmpersand(xmlData, i);\n }\n let count = 0;\n for (; i < xmlData.length; i++, count++) {\n if (xmlData[i].match(/\\w/) && count < 20)\n continue;\n if (xmlData[i] === ';')\n break;\n return -1;\n }\n return i;\n}\n\nfunction getErrorObject(code, message, lineNumber) {\n return {\n err: {\n code: code,\n msg: message,\n line: lineNumber.line || lineNumber,\n col: lineNumber.col,\n },\n };\n}\n\nfunction validateAttrName(attrName) {\n return util.isName(attrName);\n}\n\n// const startsWithXML = /^xml/i;\n\nfunction validateTagName(tagname) {\n return util.isName(tagname) /* && !tagname.match(startsWithXML) */;\n}\n\n//this function returns the line number for the character at the given index\nfunction getLineNumberForPosition(xmlData, index) {\n const lines = xmlData.substring(0, index).split(/\\r?\\n/);\n return {\n line: lines.length,\n\n // column number is last line's length + 1, because column numbering starts at 1:\n col: lines[lines.length - 1].length + 1\n };\n}\n\n//this function returns the position of the first character of match within attrStr\nfunction getPositionFromMatch(match) {\n return match.startIndex + match[1].length;\n}\n", "\nconst defaultOptions = {\n preserveOrder: false,\n attributeNamePrefix: '@_',\n attributesGroupName: false,\n textNodeName: '#text',\n ignoreAttributes: true,\n removeNSPrefix: false, // remove NS from tag name or attribute name if true\n allowBooleanAttributes: false, //a tag can have attributes without any value\n //ignoreRootElement : false,\n parseTagValue: true,\n parseAttributeValue: false,\n trimValues: true, //Trim string values of tag and attributes\n cdataPropName: false,\n numberParseOptions: {\n hex: true,\n leadingZeros: true,\n eNotation: true\n },\n tagValueProcessor: function(tagName, val) {\n return val;\n },\n attributeValueProcessor: function(attrName, val) {\n return val;\n },\n stopNodes: [], //nested tags will not be parsed even for errors\n alwaysCreateTextNode: false,\n isArray: () => false,\n commentPropName: false,\n unpairedTags: [],\n processEntities: true,\n htmlEntities: false,\n ignoreDeclaration: false,\n ignorePiTags: false,\n transformTagName: false,\n transformAttributeName: false,\n};\n \nconst buildOptions = function(options) {\n return Object.assign({}, defaultOptions, options);\n};\n\nexports.buildOptions = buildOptions;\nexports.defaultOptions = defaultOptions;", "'use strict';\n\nclass XmlNode{\n constructor(tagname) {\n this.tagname = tagname;\n this.child = []; //nested tags, text, cdata, comments in order\n this[\":@\"] = {}; //attributes map\n }\n add(key,val){\n // this.child.push( {name : key, val: val, isCdata: isCdata });\n if(key === \"__proto__\") key = \"#__proto__\";\n this.child.push( {[key]: val });\n }\n addChild(node) {\n if(node.tagname === \"__proto__\") node.tagname = \"#__proto__\";\n if(node[\":@\"] && Object.keys(node[\":@\"]).length > 0){\n this.child.push( { [node.tagname]: node.child, [\":@\"]: node[\":@\"] });\n }else{\n this.child.push( { [node.tagname]: node.child });\n }\n };\n};\n\n\nmodule.exports = XmlNode;", "//TODO: handle comments\nfunction readDocType(xmlData, i){\n \n const entities = {};\n if( xmlData[i + 3] === 'O' &&\n xmlData[i + 4] === 'C' &&\n xmlData[i + 5] === 'T' &&\n xmlData[i + 6] === 'Y' &&\n xmlData[i + 7] === 'P' &&\n xmlData[i + 8] === 'E')\n { \n i = i+9;\n let angleBracketsCount = 1;\n let hasBody = false, entity = false, comment = false;\n let exp = \"\";\n for(;i') {\n if(comment){\n if( xmlData[i - 1] === \"-\" && xmlData[i - 2] === \"-\"){\n comment = false;\n angleBracketsCount--;\n }\n }else{\n if(entity) {\n parseEntityExp(exp, entities);\n entity = false;\n }\n angleBracketsCount--;\n }\n if (angleBracketsCount === 0) {\n break;\n }\n }else if( xmlData[i] === '['){\n hasBody = true;\n }else{\n exp += xmlData[i];\n }\n }\n if(angleBracketsCount !== 0){\n throw new Error(`Unclosed DOCTYPE`);\n }\n }else{\n throw new Error(`Invalid Tag instead of DOCTYPE`);\n }\n return {entities, i};\n}\n\nconst entityRegex = RegExp(\"^\\\\s([a-zA-z0-0]+)[ \\t](['\\\"])([^&]+)\\\\2\");\nfunction parseEntityExp(exp, entities){\n const match = entityRegex.exec(exp);\n if(match){\n entities[ match[1] ] = {\n regx : RegExp( `&${match[1]};`,\"g\"),\n val: match[3]\n };\n }\n}\nmodule.exports = readDocType;", "const hexRegex = /^[-+]?0x[a-fA-F0-9]+$/;\nconst numRegex = /^([\\-\\+])?(0*)(\\.[0-9]+([eE]\\-?[0-9]+)?|[0-9]+(\\.[0-9]+([eE]\\-?[0-9]+)?)?)$/;\n// const octRegex = /0x[a-z0-9]+/;\n// const binRegex = /0x[a-z0-9]+/;\n\n\n//polyfill\nif (!Number.parseInt && window.parseInt) {\n Number.parseInt = window.parseInt;\n}\nif (!Number.parseFloat && window.parseFloat) {\n Number.parseFloat = window.parseFloat;\n}\n\n \nconst consider = {\n hex : true,\n leadingZeros: true,\n decimalPoint: \"\\.\",\n eNotation: true\n //skipLike: /regex/\n};\n\nfunction toNumber(str, options = {}){\n // const options = Object.assign({}, consider);\n // if(opt.leadingZeros === false){\n // options.leadingZeros = false;\n // }else if(opt.hex === false){\n // options.hex = false;\n // }\n\n options = Object.assign({}, consider, options );\n if(!str || typeof str !== \"string\" ) return str;\n \n let trimmedStr = str.trim();\n // if(trimmedStr === \"0.0\") return 0;\n // else if(trimmedStr === \"+0.0\") return 0;\n // else if(trimmedStr === \"-0.0\") return -0;\n\n if(options.skipLike !== undefined && options.skipLike.test(trimmedStr)) return str;\n else if (options.hex && hexRegex.test(trimmedStr)) {\n return Number.parseInt(trimmedStr, 16);\n // } else if (options.parseOct && octRegex.test(str)) {\n // return Number.parseInt(val, 8);\n // }else if (options.parseBin && binRegex.test(str)) {\n // return Number.parseInt(val, 2);\n }else{\n //separate negative sign, leading zeros, and rest number\n const match = numRegex.exec(trimmedStr);\n if(match){\n const sign = match[1];\n const leadingZeros = match[2];\n let numTrimmedByZeros = trimZeros(match[3]); //complete num without leading zeros\n //trim ending zeros for floating number\n \n const eNotation = match[4] || match[6];\n if(!options.leadingZeros && leadingZeros.length > 0 && sign && trimmedStr[2] !== \".\") return str; //-0123\n else if(!options.leadingZeros && leadingZeros.length > 0 && !sign && trimmedStr[1] !== \".\") return str; //0123\n else{//no leading zeros or leading zeros are allowed\n const num = Number(trimmedStr);\n const numStr = \"\" + num;\n if(numStr.search(/[eE]/) !== -1){ //given number is long and parsed to eNotation\n if(options.eNotation) return num;\n else return str;\n }else if(eNotation){ //given number has enotation\n if(options.eNotation) return num;\n else return str;\n }else if(trimmedStr.indexOf(\".\") !== -1){ //floating number\n // const decimalPart = match[5].substr(1);\n // const intPart = trimmedStr.substr(0,trimmedStr.indexOf(\".\"));\n\n \n // const p = numStr.indexOf(\".\");\n // const givenIntPart = numStr.substr(0,p);\n // const givenDecPart = numStr.substr(p+1);\n if(numStr === \"0\" && (numTrimmedByZeros === \"\") ) return num; //0.0\n else if(numStr === numTrimmedByZeros) return num; //0.456. 0.79000\n else if( sign && numStr === \"-\"+numTrimmedByZeros) return num;\n else return str;\n }\n \n if(leadingZeros){\n // if(numTrimmedByZeros === numStr){\n // if(options.leadingZeros) return num;\n // else return str;\n // }else return str;\n if(numTrimmedByZeros === numStr) return num;\n else if(sign+numTrimmedByZeros === numStr) return num;\n else return str;\n }\n\n if(trimmedStr === numStr) return num;\n else if(trimmedStr === sign+numStr) return num;\n // else{\n // //number with +/- sign\n // trimmedStr.test(/[-+][0-9]);\n\n // }\n return str;\n }\n // else if(!eNotation && trimmedStr && trimmedStr !== Number(trimmedStr) ) return str;\n \n }else{ //non-numeric string\n return str;\n }\n }\n}\n\n/**\n * \n * @param {string} numStr without leading zeros\n * @returns \n */\nfunction trimZeros(numStr){\n if(numStr && numStr.indexOf(\".\") !== -1){//float\n numStr = numStr.replace(/0+$/, \"\"); //remove ending zeros\n if(numStr === \".\") numStr = \"0\";\n else if(numStr[0] === \".\") numStr = \"0\"+numStr;\n else if(numStr[numStr.length-1] === \".\") numStr = numStr.substr(0,numStr.length-1);\n return numStr;\n }\n return numStr;\n}\nmodule.exports = toNumber\n", "'use strict';\n///@ts-check\n\nconst util = require('../util');\nconst xmlNode = require('./xmlNode');\nconst readDocType = require(\"./DocTypeReader\");\nconst toNumber = require(\"strnum\");\n\nconst regx =\n '<((!\\\\[CDATA\\\\[([\\\\s\\\\S]*?)(]]>))|((NAME:)?(NAME))([^>]*)>|((\\\\/)(NAME)\\\\s*>))([^<]*)'\n .replace(/NAME/g, util.nameRegexp);\n\n//const tagsRegx = new RegExp(\"<(\\\\/?[\\\\w:\\\\-\\._]+)([^>]*)>(\\\\s*\"+cdataRegx+\")*([^<]+)?\",\"g\");\n//const tagsRegx = new RegExp(\"<(\\\\/?)((\\\\w*:)?([\\\\w:\\\\-\\._]+))([^>]*)>([^<]*)(\"+cdataRegx+\"([^<]*))*([^<]+)?\",\"g\");\n\nclass OrderedObjParser{\n constructor(options){\n this.options = options;\n this.currentNode = null;\n this.tagsNodeStack = [];\n this.docTypeEntities = {};\n this.lastEntities = {\n \"apos\" : { regex: /&(apos|#39|#x27);/g, val : \"'\"},\n \"gt\" : { regex: /&(gt|#62|#x3E);/g, val : \">\"},\n \"lt\" : { regex: /&(lt|#60|#x3C);/g, val : \"<\"},\n \"quot\" : { regex: /&(quot|#34|#x22);/g, val : \"\\\"\"},\n };\n this.ampEntity = { regex: /&(amp|#38|#x26);/g, val : \"&\"};\n this.htmlEntities = {\n \"space\": { regex: /&(nbsp|#160);/g, val: \" \" },\n // \"lt\" : { regex: /&(lt|#60);/g, val: \"<\" },\n // \"gt\" : { regex: /&(gt|#62);/g, val: \">\" },\n // \"amp\" : { regex: /&(amp|#38);/g, val: \"&\" },\n // \"quot\" : { regex: /&(quot|#34);/g, val: \"\\\"\" },\n // \"apos\" : { regex: /&(apos|#39);/g, val: \"'\" },\n \"cent\" : { regex: /&(cent|#162);/g, val: \"\u00A2\" },\n \"pound\" : { regex: /&(pound|#163);/g, val: \"\u00A3\" },\n \"yen\" : { regex: /&(yen|#165);/g, val: \"\u00A5\" },\n \"euro\" : { regex: /&(euro|#8364);/g, val: \"\u20AC\" },\n \"copyright\" : { regex: /&(copy|#169);/g, val: \"\u00A9\" },\n \"reg\" : { regex: /&(reg|#174);/g, val: \"\u00AE\" },\n \"inr\" : { regex: /&(inr|#8377);/g, val: \"\u20B9\" },\n };\n this.addExternalEntities = addExternalEntities;\n this.parseXml = parseXml;\n this.parseTextData = parseTextData;\n this.resolveNameSpace = resolveNameSpace;\n this.buildAttributesMap = buildAttributesMap;\n this.isItStopNode = isItStopNode;\n this.replaceEntitiesValue = replaceEntitiesValue;\n this.readStopNodeData = readStopNodeData;\n this.saveTextToParentTag = saveTextToParentTag;\n }\n\n}\n\nfunction addExternalEntities(externalEntities){\n const entKeys = Object.keys(externalEntities);\n for (let i = 0; i < entKeys.length; i++) {\n const ent = entKeys[i];\n this.lastEntities[ent] = {\n regex: new RegExp(\"&\"+ent+\";\",\"g\"),\n val : externalEntities[ent]\n }\n }\n}\n\n/**\n * @param {string} val\n * @param {string} tagName\n * @param {string} jPath\n * @param {boolean} dontTrim\n * @param {boolean} hasAttributes\n * @param {boolean} isLeafNode\n * @param {boolean} escapeEntities\n */\nfunction parseTextData(val, tagName, jPath, dontTrim, hasAttributes, isLeafNode, escapeEntities) {\n if (val !== undefined) {\n if (this.options.trimValues && !dontTrim) {\n val = val.trim();\n }\n if(val.length > 0){\n if(!escapeEntities) val = this.replaceEntitiesValue(val);\n \n const newval = this.options.tagValueProcessor(tagName, val, jPath, hasAttributes, isLeafNode);\n if(newval === null || newval === undefined){\n //don't parse\n return val;\n }else if(typeof newval !== typeof val || newval !== val){\n //overwrite\n return newval;\n }else if(this.options.trimValues){\n return parseValue(val, this.options.parseTagValue, this.options.numberParseOptions);\n }else{\n const trimmedVal = val.trim();\n if(trimmedVal === val){\n return parseValue(val, this.options.parseTagValue, this.options.numberParseOptions);\n }else{\n return val;\n }\n }\n }\n }\n}\n\nfunction resolveNameSpace(tagname) {\n if (this.options.removeNSPrefix) {\n const tags = tagname.split(':');\n const prefix = tagname.charAt(0) === '/' ? '/' : '';\n if (tags[0] === 'xmlns') {\n return '';\n }\n if (tags.length === 2) {\n tagname = prefix + tags[1];\n }\n }\n return tagname;\n}\n\n//TODO: change regex to capture NS\n//const attrsRegx = new RegExp(\"([\\\\w\\\\-\\\\.\\\\:]+)\\\\s*=\\\\s*(['\\\"])((.|\\n)*?)\\\\2\",\"gm\");\nconst attrsRegx = new RegExp('([^\\\\s=]+)\\\\s*(=\\\\s*([\\'\"])([\\\\s\\\\S]*?)\\\\3)?', 'gm');\n\nfunction buildAttributesMap(attrStr, jPath) {\n if (!this.options.ignoreAttributes && typeof attrStr === 'string') {\n // attrStr = attrStr.replace(/\\r?\\n/g, ' ');\n //attrStr = attrStr || attrStr.trim();\n\n const matches = util.getAllMatches(attrStr, attrsRegx);\n const len = matches.length; //don't make it inline\n const attrs = {};\n for (let i = 0; i < len; i++) {\n const attrName = this.resolveNameSpace(matches[i][1]);\n let oldVal = matches[i][4];\n let aName = this.options.attributeNamePrefix + attrName;\n if (attrName.length) {\n if (this.options.transformAttributeName) {\n aName = this.options.transformAttributeName(aName);\n }\n if(aName === \"__proto__\") aName = \"#__proto__\";\n if (oldVal !== undefined) {\n if (this.options.trimValues) {\n oldVal = oldVal.trim();\n }\n oldVal = this.replaceEntitiesValue(oldVal);\n const newVal = this.options.attributeValueProcessor(attrName, oldVal, jPath);\n if(newVal === null || newVal === undefined){\n //don't parse\n attrs[aName] = oldVal;\n }else if(typeof newVal !== typeof oldVal || newVal !== oldVal){\n //overwrite\n attrs[aName] = newVal;\n }else{\n //parse\n attrs[aName] = parseValue(\n oldVal,\n this.options.parseAttributeValue,\n this.options.numberParseOptions\n );\n }\n } else if (this.options.allowBooleanAttributes) {\n attrs[aName] = true;\n }\n }\n }\n if (!Object.keys(attrs).length) {\n return;\n }\n if (this.options.attributesGroupName) {\n const attrCollection = {};\n attrCollection[this.options.attributesGroupName] = attrs;\n return attrCollection;\n }\n return attrs;\n }\n}\n\nconst parseXml = function(xmlData) {\n xmlData = xmlData.replace(/\\r\\n?/g, \"\\n\"); //TODO: remove this line\n const xmlObj = new xmlNode('!xml');\n let currentNode = xmlObj;\n let textData = \"\";\n let jPath = \"\";\n for(let i=0; i< xmlData.length; i++){//for each char in XML data\n const ch = xmlData[i];\n if(ch === '<'){\n // const nextIndex = i+1;\n // const _2ndChar = xmlData[nextIndex];\n if( xmlData[i+1] === '/') {//Closing Tag\n const closeIndex = findClosingIndex(xmlData, \">\", i, \"Closing Tag is not closed.\")\n let tagName = xmlData.substring(i+2,closeIndex).trim();\n\n if(this.options.removeNSPrefix){\n const colonIndex = tagName.indexOf(\":\");\n if(colonIndex !== -1){\n tagName = tagName.substr(colonIndex+1);\n }\n }\n\n if(this.options.transformTagName) {\n tagName = this.options.transformTagName(tagName);\n }\n\n if(currentNode){\n textData = this.saveTextToParentTag(textData, currentNode, jPath);\n }\n\n jPath = jPath.substr(0, jPath.lastIndexOf(\".\"));\n \n currentNode = this.tagsNodeStack.pop();//avoid recurssion, set the parent tag scope\n textData = \"\";\n i = closeIndex;\n } else if( xmlData[i+1] === '?') {\n\n let tagData = readTagExp(xmlData,i, false, \"?>\");\n if(!tagData) throw new Error(\"Pi Tag is not closed.\");\n\n textData = this.saveTextToParentTag(textData, currentNode, jPath);\n if( (this.options.ignoreDeclaration && tagData.tagName === \"?xml\") || this.options.ignorePiTags){\n\n }else{\n \n const childNode = new xmlNode(tagData.tagName);\n childNode.add(this.options.textNodeName, \"\");\n \n if(tagData.tagName !== tagData.tagExp && tagData.attrExpPresent){\n childNode[\":@\"] = this.buildAttributesMap(tagData.tagExp, jPath);\n }\n currentNode.addChild(childNode);\n\n }\n\n\n i = tagData.closeIndex + 1;\n } else if(xmlData.substr(i + 1, 3) === '!--') {\n const endIndex = findClosingIndex(xmlData, \"-->\", i+4, \"Comment is not closed.\")\n if(this.options.commentPropName){\n const comment = xmlData.substring(i + 4, endIndex - 2);\n\n textData = this.saveTextToParentTag(textData, currentNode, jPath);\n\n currentNode.add(this.options.commentPropName, [ { [this.options.textNodeName] : comment } ]);\n }\n i = endIndex;\n } else if( xmlData.substr(i + 1, 2) === '!D') {\n const result = readDocType(xmlData, i);\n this.docTypeEntities = result.entities;\n i = result.i;\n }else if(xmlData.substr(i + 1, 2) === '![') {\n const closeIndex = findClosingIndex(xmlData, \"]]>\", i, \"CDATA is not closed.\") - 2;\n const tagExp = xmlData.substring(i + 9,closeIndex);\n\n textData = this.saveTextToParentTag(textData, currentNode, jPath);\n\n //cdata should be set even if it is 0 length string\n if(this.options.cdataPropName){\n // let val = this.parseTextData(tagExp, this.options.cdataPropName, jPath + \".\" + this.options.cdataPropName, true, false, true);\n // if(!val) val = \"\";\n currentNode.add(this.options.cdataPropName, [ { [this.options.textNodeName] : tagExp } ]);\n }else{\n let val = this.parseTextData(tagExp, currentNode.tagname, jPath, true, false, true);\n if(val == undefined) val = \"\";\n currentNode.add(this.options.textNodeName, val);\n }\n \n i = closeIndex + 2;\n }else {//Opening tag\n let result = readTagExp(xmlData,i, this.options.removeNSPrefix);\n let tagName= result.tagName;\n let tagExp = result.tagExp;\n let attrExpPresent = result.attrExpPresent;\n let closeIndex = result.closeIndex;\n\n if (this.options.transformTagName) {\n tagName = this.options.transformTagName(tagName);\n }\n \n //save text as child node\n if (currentNode && textData) {\n if(currentNode.tagname !== '!xml'){\n //when nested tag is found\n textData = this.saveTextToParentTag(textData, currentNode, jPath, false);\n }\n }\n\n if(tagName !== xmlObj.tagname){\n jPath += jPath ? \".\" + tagName : tagName;\n }\n\n //check if last tag was unpaired tag\n const lastTag = currentNode;\n if(lastTag && this.options.unpairedTags.indexOf(lastTag.tagname) !== -1 ){\n currentNode = this.tagsNodeStack.pop();\n }\n\n if (this.isItStopNode(this.options.stopNodes, jPath, tagName)) { //TODO: namespace\n let tagContent = \"\";\n //self-closing tag\n if(tagExp.length > 0 && tagExp.lastIndexOf(\"/\") === tagExp.length - 1){\n i = result.closeIndex;\n }\n //boolean tag\n else if(this.options.unpairedTags.indexOf(tagName) !== -1){\n i = result.closeIndex;\n }\n //normal tag\n else{\n //read until closing tag is found\n const result = this.readStopNodeData(xmlData, tagName, closeIndex + 1);\n if(!result) throw new Error(`Unexpected end of ${tagName}`);\n i = result.i;\n tagContent = result.tagContent;\n }\n\n const childNode = new xmlNode(tagName);\n if(tagName !== tagExp && attrExpPresent){\n childNode[\":@\"] = this.buildAttributesMap(tagExp, jPath);\n }\n if(tagContent) {\n tagContent = this.parseTextData(tagContent, tagName, jPath, true, attrExpPresent, true, true);\n }\n \n jPath = jPath.substr(0, jPath.lastIndexOf(\".\"));\n childNode.add(this.options.textNodeName, tagContent);\n \n currentNode.addChild(childNode);\n }else{\n //selfClosing tag\n if(tagExp.length > 0 && tagExp.lastIndexOf(\"/\") === tagExp.length - 1){\n if(tagName[tagName.length - 1] === \"/\"){ //remove trailing '/'\n tagName = tagName.substr(0, tagName.length - 1);\n tagExp = tagName;\n }else{\n tagExp = tagExp.substr(0, tagExp.length - 1);\n }\n \n if(this.options.transformTagName) {\n tagName = this.options.transformTagName(tagName);\n }\n\n const childNode = new xmlNode(tagName);\n if(tagName !== tagExp && attrExpPresent){\n childNode[\":@\"] = this.buildAttributesMap(tagExp, jPath);\n }\n jPath = jPath.substr(0, jPath.lastIndexOf(\".\"));\n currentNode.addChild(childNode);\n }\n //opening tag\n else{\n const childNode = new xmlNode( tagName);\n this.tagsNodeStack.push(currentNode);\n \n if(tagName !== tagExp && attrExpPresent){\n childNode[\":@\"] = this.buildAttributesMap(tagExp, jPath);\n }\n currentNode.addChild(childNode);\n currentNode = childNode;\n }\n textData = \"\";\n i = closeIndex;\n }\n }\n }else{\n textData += xmlData[i];\n }\n }\n return xmlObj.child;\n}\n\nconst replaceEntitiesValue = function(val){\n\n if(this.options.processEntities){\n for(let entityName in this.docTypeEntities){\n const entity = this.docTypeEntities[entityName];\n val = val.replace( entity.regx, entity.val);\n }\n for(let entityName in this.lastEntities){\n const entity = this.lastEntities[entityName];\n val = val.replace( entity.regex, entity.val);\n }\n if(this.options.htmlEntities){\n for(let entityName in this.htmlEntities){\n const entity = this.htmlEntities[entityName];\n val = val.replace( entity.regex, entity.val);\n }\n }\n val = val.replace( this.ampEntity.regex, this.ampEntity.val);\n }\n return val;\n}\nfunction saveTextToParentTag(textData, currentNode, jPath, isLeafNode) {\n if (textData) { //store previously collected data as textNode\n if(isLeafNode === undefined) isLeafNode = Object.keys(currentNode.child).length === 0\n \n textData = this.parseTextData(textData,\n currentNode.tagname,\n jPath,\n false,\n currentNode[\":@\"] ? Object.keys(currentNode[\":@\"]).length !== 0 : false,\n isLeafNode);\n\n if (textData !== undefined && textData !== \"\")\n currentNode.add(this.options.textNodeName, textData);\n textData = \"\";\n }\n return textData;\n}\n\n//TODO: use jPath to simplify the logic\n/**\n * \n * @param {string[]} stopNodes \n * @param {string} jPath\n * @param {string} currentTagName \n */\nfunction isItStopNode(stopNodes, jPath, currentTagName){\n const allNodesExp = \"*.\" + currentTagName;\n for (const stopNodePath in stopNodes) {\n const stopNodeExp = stopNodes[stopNodePath];\n if( allNodesExp === stopNodeExp || jPath === stopNodeExp ) return true;\n }\n return false;\n}\n\n/**\n * Returns the tag Expression and where it is ending handling single-dobule quotes situation\n * @param {string} xmlData \n * @param {number} i starting index\n * @returns \n */\nfunction tagExpWithClosingIndex(xmlData, i, closingChar = \">\"){\n let attrBoundary;\n let tagExp = \"\";\n for (let index = i; index < xmlData.length; index++) {\n let ch = xmlData[index];\n if (attrBoundary) {\n if (ch === attrBoundary) attrBoundary = \"\";//reset\n } else if (ch === '\"' || ch === \"'\") {\n attrBoundary = ch;\n } else if (ch === closingChar[0]) {\n if(closingChar[1]){\n if(xmlData[index + 1] === closingChar[1]){\n return {\n data: tagExp,\n index: index\n }\n }\n }else{\n return {\n data: tagExp,\n index: index\n }\n }\n } else if (ch === '\\t') {\n ch = \" \"\n }\n tagExp += ch;\n }\n}\n\nfunction findClosingIndex(xmlData, str, i, errMsg){\n const closingIndex = xmlData.indexOf(str, i);\n if(closingIndex === -1){\n throw new Error(errMsg)\n }else{\n return closingIndex + str.length - 1;\n }\n}\n\nfunction readTagExp(xmlData,i, removeNSPrefix, closingChar = \">\"){\n const result = tagExpWithClosingIndex(xmlData, i+1, closingChar);\n if(!result) return;\n let tagExp = result.data;\n const closeIndex = result.index;\n const separatorIndex = tagExp.search(/\\s/);\n let tagName = tagExp;\n let attrExpPresent = true;\n if(separatorIndex !== -1){//separate tag name and attributes expression\n tagName = tagExp.substr(0, separatorIndex).replace(/\\s\\s*$/, '');\n tagExp = tagExp.substr(separatorIndex + 1);\n }\n\n if(removeNSPrefix){\n const colonIndex = tagName.indexOf(\":\");\n if(colonIndex !== -1){\n tagName = tagName.substr(colonIndex+1);\n attrExpPresent = tagName !== result.data.substr(colonIndex + 1);\n }\n }\n\n return {\n tagName: tagName,\n tagExp: tagExp,\n closeIndex: closeIndex,\n attrExpPresent: attrExpPresent,\n }\n}\n/**\n * find paired tag for a stop node\n * @param {string} xmlData \n * @param {string} tagName \n * @param {number} i \n */\nfunction readStopNodeData(xmlData, tagName, i){\n const startIndex = i;\n // Starting at 1 since we already have an open tag\n let openTagCount = 1;\n\n for (; i < xmlData.length; i++) {\n if( xmlData[i] === \"<\"){ \n if (xmlData[i+1] === \"/\") {//close tag\n const closeIndex = findClosingIndex(xmlData, \">\", i, `${tagName} is not closed`);\n let closeTagName = xmlData.substring(i+2,closeIndex).trim();\n if(closeTagName === tagName){\n openTagCount--;\n if (openTagCount === 0) {\n return {\n tagContent: xmlData.substring(startIndex, i),\n i : closeIndex\n }\n }\n }\n i=closeIndex;\n } else if(xmlData[i+1] === '?') { \n const closeIndex = findClosingIndex(xmlData, \"?>\", i+1, \"StopNode is not closed.\")\n i=closeIndex;\n } else if(xmlData.substr(i + 1, 3) === '!--') { \n const closeIndex = findClosingIndex(xmlData, \"-->\", i+3, \"StopNode is not closed.\")\n i=closeIndex;\n } else if(xmlData.substr(i + 1, 2) === '![') { \n const closeIndex = findClosingIndex(xmlData, \"]]>\", i, \"StopNode is not closed.\") - 2;\n i=closeIndex;\n } else {\n const tagData = readTagExp(xmlData, i, '>')\n\n if (tagData) {\n const openTagName = tagData && tagData.tagName;\n if (openTagName === tagName && tagData.tagExp[tagData.tagExp.length-1] !== \"/\") {\n openTagCount++;\n }\n i=tagData.closeIndex;\n }\n }\n }\n }//end for loop\n}\n\nfunction parseValue(val, shouldParse, options) {\n if (shouldParse && typeof val === 'string') {\n //console.log(options)\n const newval = val.trim();\n if(newval === 'true' ) return true;\n else if(newval === 'false' ) return false;\n else return toNumber(val, options);\n } else {\n if (util.isExist(val)) {\n return val;\n } else {\n return '';\n }\n }\n}\n\n\nmodule.exports = OrderedObjParser;\n", "'use strict';\n\n/**\n * \n * @param {array} node \n * @param {any} options \n * @returns \n */\nfunction prettify(node, options){\n return compress( node, options);\n}\n\n/**\n * \n * @param {array} arr \n * @param {object} options \n * @param {string} jPath \n * @returns object\n */\nfunction compress(arr, options, jPath){\n let text;\n const compressedObj = {};\n for (let i = 0; i < arr.length; i++) {\n const tagObj = arr[i];\n const property = propName(tagObj);\n let newJpath = \"\";\n if(jPath === undefined) newJpath = property;\n else newJpath = jPath + \".\" + property;\n\n if(property === options.textNodeName){\n if(text === undefined) text = tagObj[property];\n else text += \"\" + tagObj[property];\n }else if(property === undefined){\n continue;\n }else if(tagObj[property]){\n \n let val = compress(tagObj[property], options, newJpath);\n const isLeaf = isLeafTag(val, options);\n\n if(tagObj[\":@\"]){\n assignAttributes( val, tagObj[\":@\"], newJpath, options);\n }else if(Object.keys(val).length === 1 && val[options.textNodeName] !== undefined && !options.alwaysCreateTextNode){\n val = val[options.textNodeName];\n }else if(Object.keys(val).length === 0){\n if(options.alwaysCreateTextNode) val[options.textNodeName] = \"\";\n else val = \"\";\n }\n\n if(compressedObj[property] !== undefined && compressedObj.hasOwnProperty(property)) {\n if(!Array.isArray(compressedObj[property])) {\n compressedObj[property] = [ compressedObj[property] ];\n }\n compressedObj[property].push(val);\n }else{\n //TODO: if a node is not an array, then check if it should be an array\n //also determine if it is a leaf node\n if (options.isArray(property, newJpath, isLeaf )) {\n compressedObj[property] = [val];\n }else{\n compressedObj[property] = val;\n }\n }\n }\n \n }\n // if(text && text.length > 0) compressedObj[options.textNodeName] = text;\n if(typeof text === \"string\"){\n if(text.length > 0) compressedObj[options.textNodeName] = text;\n }else if(text !== undefined) compressedObj[options.textNodeName] = text;\n return compressedObj;\n}\n\nfunction propName(obj){\n const keys = Object.keys(obj);\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i];\n if(key !== \":@\") return key;\n }\n}\n\nfunction assignAttributes(obj, attrMap, jpath, options){\n if (attrMap) {\n const keys = Object.keys(attrMap);\n const len = keys.length; //don't make it inline\n for (let i = 0; i < len; i++) {\n const atrrName = keys[i];\n if (options.isArray(atrrName, jpath + \".\" + atrrName, true, true)) {\n obj[atrrName] = [ attrMap[atrrName] ];\n } else {\n obj[atrrName] = attrMap[atrrName];\n }\n }\n }\n}\n\nfunction isLeafTag(obj, options){\n const propCount = Object.keys(obj).length;\n if( propCount === 0 || (propCount === 1 && obj[options.textNodeName]) ) return true;\n return false;\n}\nexports.prettify = prettify;\n", "const { buildOptions} = require(\"./OptionsBuilder\");\nconst OrderedObjParser = require(\"./OrderedObjParser\");\nconst { prettify} = require(\"./node2json\");\nconst validator = require('../validator');\n\nclass XMLParser{\n \n constructor(options){\n this.externalEntities = {};\n this.options = buildOptions(options);\n \n }\n /**\n * Parse XML dats to JS object \n * @param {string|Buffer} xmlData \n * @param {boolean|Object} validationOption \n */\n parse(xmlData,validationOption){\n if(typeof xmlData === \"string\"){\n }else if( xmlData.toString){\n xmlData = xmlData.toString();\n }else{\n throw new Error(\"XML data is accepted in String or Bytes[] form.\")\n }\n if( validationOption){\n if(validationOption === true) validationOption = {}; //validate with default options\n \n const result = validator.validate(xmlData, validationOption);\n if (result !== true) {\n throw Error( `${result.err.msg}:${result.err.line}:${result.err.col}` )\n }\n }\n const orderedObjParser = new OrderedObjParser(this.options);\n orderedObjParser.addExternalEntities(this.externalEntities);\n const orderedResult = orderedObjParser.parseXml(xmlData);\n if(this.options.preserveOrder || orderedResult === undefined) return orderedResult;\n else return prettify(orderedResult, this.options);\n }\n\n /**\n * Add Entity which is not by default supported by this library\n * @param {string} key \n * @param {string} value \n */\n addEntity(key, value){\n if(value.indexOf(\"&\") !== -1){\n throw new Error(\"Entity value can't have '&'\")\n }else if(key.indexOf(\"&\") !== -1 || key.indexOf(\";\") !== -1){\n throw new Error(\"An entity must be set without '&' and ';'. Eg. use '#xD' for ' '\")\n }else if(value === \"&\"){\n throw new Error(\"An entity with value '&' is not permitted\");\n }else{\n this.externalEntities[key] = value;\n }\n }\n}\n\nmodule.exports = XMLParser;", "const EOL = \"\\n\";\n\n/**\n * \n * @param {array} jArray \n * @param {any} options \n * @returns \n */\nfunction toXml(jArray, options) {\n let indentation = \"\";\n if (options.format && options.indentBy.length > 0) {\n indentation = EOL;\n }\n return arrToStr(jArray, options, \"\", indentation);\n}\n\nfunction arrToStr(arr, options, jPath, indentation) {\n let xmlStr = \"\";\n let isPreviousElementTag = false;\n\n for (let i = 0; i < arr.length; i++) {\n const tagObj = arr[i];\n const tagName = propName(tagObj);\n let newJPath = \"\";\n if (jPath.length === 0) newJPath = tagName\n else newJPath = `${jPath}.${tagName}`;\n\n if (tagName === options.textNodeName) {\n let tagText = tagObj[tagName];\n if (!isStopNode(newJPath, options)) {\n tagText = options.tagValueProcessor(tagName, tagText);\n tagText = replaceEntitiesValue(tagText, options);\n }\n if (isPreviousElementTag) {\n xmlStr += indentation;\n }\n xmlStr += tagText;\n isPreviousElementTag = false;\n continue;\n } else if (tagName === options.cdataPropName) {\n if (isPreviousElementTag) {\n xmlStr += indentation;\n }\n xmlStr += ``;\n isPreviousElementTag = false;\n continue;\n } else if (tagName === options.commentPropName) {\n xmlStr += indentation + ``;\n isPreviousElementTag = true;\n continue;\n } else if (tagName[0] === \"?\") {\n const attStr = attr_to_str(tagObj[\":@\"], options);\n const tempInd = tagName === \"?xml\" ? \"\" : indentation;\n let piTextNodeName = tagObj[tagName][0][options.textNodeName];\n piTextNodeName = piTextNodeName.length !== 0 ? \" \" + piTextNodeName : \"\"; //remove extra spacing\n xmlStr += tempInd + `<${tagName}${piTextNodeName}${attStr}?>`;\n isPreviousElementTag = true;\n continue;\n }\n let newIdentation = indentation;\n if (newIdentation !== \"\") {\n newIdentation += options.indentBy;\n }\n const attStr = attr_to_str(tagObj[\":@\"], options);\n const tagStart = indentation + `<${tagName}${attStr}`;\n const tagValue = arrToStr(tagObj[tagName], options, newJPath, newIdentation);\n if (options.unpairedTags.indexOf(tagName) !== -1) {\n if (options.suppressUnpairedNode) xmlStr += tagStart + \">\";\n else xmlStr += tagStart + \"/>\";\n } else if ((!tagValue || tagValue.length === 0) && options.suppressEmptyNode) {\n xmlStr += tagStart + \"/>\";\n } else if (tagValue && tagValue.endsWith(\">\")) {\n xmlStr += tagStart + `>${tagValue}${indentation}`;\n } else {\n xmlStr += tagStart + \">\";\n if (tagValue && indentation !== \"\" && (tagValue.includes(\"/>\") || tagValue.includes(\"`;\n }\n isPreviousElementTag = true;\n }\n\n return xmlStr;\n}\n\nfunction propName(obj) {\n const keys = Object.keys(obj);\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i];\n if (key !== \":@\") return key;\n }\n}\n\nfunction attr_to_str(attrMap, options) {\n let attrStr = \"\";\n if (attrMap && !options.ignoreAttributes) {\n for (let attr in attrMap) {\n let attrVal = options.attributeValueProcessor(attr, attrMap[attr]);\n attrVal = replaceEntitiesValue(attrVal, options);\n if (attrVal === true && options.suppressBooleanAttributes) {\n attrStr += ` ${attr.substr(options.attributeNamePrefix.length)}`;\n } else {\n attrStr += ` ${attr.substr(options.attributeNamePrefix.length)}=\"${attrVal}\"`;\n }\n }\n }\n return attrStr;\n}\n\nfunction isStopNode(jPath, options) {\n jPath = jPath.substr(0, jPath.length - options.textNodeName.length - 1);\n let tagName = jPath.substr(jPath.lastIndexOf(\".\") + 1);\n for (let index in options.stopNodes) {\n if (options.stopNodes[index] === jPath || options.stopNodes[index] === \"*.\" + tagName) return true;\n }\n return false;\n}\n\nfunction replaceEntitiesValue(textValue, options) {\n if (textValue && textValue.length > 0 && options.processEntities) {\n for (let i = 0; i < options.entities.length; i++) {\n const entity = options.entities[i];\n textValue = textValue.replace(entity.regex, entity.val);\n }\n }\n return textValue;\n}\nmodule.exports = toXml;\n", "'use strict';\n//parse Empty Node as self closing node\nconst buildFromOrderedJs = require('./orderedJs2Xml');\n\nconst defaultOptions = {\n attributeNamePrefix: '@_',\n attributesGroupName: false,\n textNodeName: '#text',\n ignoreAttributes: true,\n cdataPropName: false,\n format: false,\n indentBy: ' ',\n suppressEmptyNode: false,\n suppressUnpairedNode: true,\n suppressBooleanAttributes: true,\n tagValueProcessor: function(key, a) {\n return a;\n },\n attributeValueProcessor: function(attrName, a) {\n return a;\n },\n preserveOrder: false,\n commentPropName: false,\n unpairedTags: [],\n entities: [\n { regex: new RegExp(\"&\", \"g\"), val: \"&\" },//it must be on top\n { regex: new RegExp(\">\", \"g\"), val: \">\" },\n { regex: new RegExp(\"<\", \"g\"), val: \"<\" },\n { regex: new RegExp(\"\\'\", \"g\"), val: \"'\" },\n { regex: new RegExp(\"\\\"\", \"g\"), val: \""\" }\n ],\n processEntities: true,\n stopNodes: [],\n // transformTagName: false,\n // transformAttributeName: false,\n};\n\nfunction Builder(options) {\n this.options = Object.assign({}, defaultOptions, options);\n if (this.options.ignoreAttributes || this.options.attributesGroupName) {\n this.isAttribute = function(/*a*/) {\n return false;\n };\n } else {\n this.attrPrefixLen = this.options.attributeNamePrefix.length;\n this.isAttribute = isAttribute;\n }\n\n this.processTextOrObjNode = processTextOrObjNode\n\n if (this.options.format) {\n this.indentate = indentate;\n this.tagEndChar = '>\\n';\n this.newLine = '\\n';\n } else {\n this.indentate = function() {\n return '';\n };\n this.tagEndChar = '>';\n this.newLine = '';\n }\n}\n\nBuilder.prototype.build = function(jObj) {\n if(this.options.preserveOrder){\n return buildFromOrderedJs(jObj, this.options);\n }else {\n if(Array.isArray(jObj) && this.options.arrayNodeName && this.options.arrayNodeName.length > 1){\n jObj = {\n [this.options.arrayNodeName] : jObj\n }\n }\n return this.j2x(jObj, 0).val;\n }\n};\n\nBuilder.prototype.j2x = function(jObj, level) {\n let attrStr = '';\n let val = '';\n for (let key in jObj) {\n if (typeof jObj[key] === 'undefined') {\n // supress undefined node\n } else if (jObj[key] === null) {\n if(key[0] === \"?\") val += this.indentate(level) + '<' + key + '?' + this.tagEndChar;\n else val += this.indentate(level) + '<' + key + '/' + this.tagEndChar;\n // val += this.indentate(level) + '<' + key + '/' + this.tagEndChar;\n } else if (jObj[key] instanceof Date) {\n val += this.buildTextValNode(jObj[key], key, '', level);\n } else if (typeof jObj[key] !== 'object') {\n //premitive type\n const attr = this.isAttribute(key);\n if (attr) {\n attrStr += this.buildAttrPairStr(attr, '' + jObj[key]);\n }else {\n //tag value\n if (key === this.options.textNodeName) {\n let newval = this.options.tagValueProcessor(key, '' + jObj[key]);\n val += this.replaceEntitiesValue(newval);\n } else {\n val += this.buildTextValNode(jObj[key], key, '', level);\n }\n }\n } else if (Array.isArray(jObj[key])) {\n //repeated nodes\n const arrLen = jObj[key].length;\n for (let j = 0; j < arrLen; j++) {\n const item = jObj[key][j];\n if (typeof item === 'undefined') {\n // supress undefined node\n } else if (item === null) {\n if(key[0] === \"?\") val += this.indentate(level) + '<' + key + '?' + this.tagEndChar;\n else val += this.indentate(level) + '<' + key + '/' + this.tagEndChar;\n // val += this.indentate(level) + '<' + key + '/' + this.tagEndChar;\n } else if (typeof item === 'object') {\n val += this.processTextOrObjNode(item, key, level)\n } else {\n val += this.buildTextValNode(item, key, '', level);\n }\n }\n } else {\n //nested node\n if (this.options.attributesGroupName && key === this.options.attributesGroupName) {\n const Ks = Object.keys(jObj[key]);\n const L = Ks.length;\n for (let j = 0; j < L; j++) {\n attrStr += this.buildAttrPairStr(Ks[j], '' + jObj[key][Ks[j]]);\n }\n } else {\n val += this.processTextOrObjNode(jObj[key], key, level)\n }\n }\n }\n return {attrStr: attrStr, val: val};\n};\n\nBuilder.prototype.buildAttrPairStr = function(attrName, val){\n val = this.options.attributeValueProcessor(attrName, '' + val);\n val = this.replaceEntitiesValue(val);\n if (this.options.suppressBooleanAttributes && val === \"true\") {\n return ' ' + attrName;\n } else return ' ' + attrName + '=\"' + val + '\"';\n}\n\nfunction processTextOrObjNode (object, key, level) {\n const result = this.j2x(object, level + 1);\n if (object[this.options.textNodeName] !== undefined && Object.keys(object).length === 1) {\n return this.buildTextValNode(object[this.options.textNodeName], key, result.attrStr, level);\n } else {\n return this.buildObjectNode(result.val, key, result.attrStr, level);\n }\n}\n\nBuilder.prototype.buildObjectNode = function(val, key, attrStr, level) {\n if(val === \"\"){\n if(key[0] === \"?\") return this.indentate(level) + '<' + key + attrStr+ '?' + this.tagEndChar;\n else {\n return this.indentate(level) + '<' + key + attrStr + this.closeTag(key) + this.tagEndChar;\n }\n }else{\n\n let tagEndExp = '' + val + tagEndExp );\n } else if (this.options.commentPropName !== false && key === this.options.commentPropName && piClosingChar.length === 0) {\n return this.indentate(level) + `` + this.newLine;\n }else {\n return (\n this.indentate(level) + '<' + key + attrStr + piClosingChar + this.tagEndChar +\n val +\n this.indentate(level) + tagEndExp );\n }\n }\n}\n\nBuilder.prototype.closeTag = function(key){\n let closeTag = \"\";\n if(this.options.unpairedTags.indexOf(key) !== -1){ //unpaired\n if(!this.options.suppressUnpairedNode) closeTag = \"/\"\n }else if(this.options.suppressEmptyNode){ //empty\n closeTag = \"/\";\n }else{\n closeTag = `>` + this.newLine;\n }else if (this.options.commentPropName !== false && key === this.options.commentPropName) {\n return this.indentate(level) + `` + this.newLine;\n }else if(key[0] === \"?\") {//PI tag\n return this.indentate(level) + '<' + key + attrStr+ '?' + this.tagEndChar; \n }else{\n let textValue = this.options.tagValueProcessor(key, val);\n textValue = this.replaceEntitiesValue(textValue);\n \n if( textValue === ''){\n return this.indentate(level) + '<' + key + attrStr + this.closeTag(key) + this.tagEndChar;\n }else{\n return this.indentate(level) + '<' + key + attrStr + '>' +\n textValue +\n ' 0 && this.options.processEntities){\n for (let i=0; i {\n const headers = {\n \"content-type\": \"application/x-www-form-urlencoded\",\n };\n let body;\n body = buildFormUrlencodedString({\n ...serializeAws_queryAssumeRoleRequest(input, context),\n Action: \"AssumeRole\",\n Version: \"2011-06-15\",\n });\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexports.serializeAws_queryAssumeRoleCommand = serializeAws_queryAssumeRoleCommand;\nconst serializeAws_queryAssumeRoleWithSAMLCommand = async (input, context) => {\n const headers = {\n \"content-type\": \"application/x-www-form-urlencoded\",\n };\n let body;\n body = buildFormUrlencodedString({\n ...serializeAws_queryAssumeRoleWithSAMLRequest(input, context),\n Action: \"AssumeRoleWithSAML\",\n Version: \"2011-06-15\",\n });\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexports.serializeAws_queryAssumeRoleWithSAMLCommand = serializeAws_queryAssumeRoleWithSAMLCommand;\nconst serializeAws_queryAssumeRoleWithWebIdentityCommand = async (input, context) => {\n const headers = {\n \"content-type\": \"application/x-www-form-urlencoded\",\n };\n let body;\n body = buildFormUrlencodedString({\n ...serializeAws_queryAssumeRoleWithWebIdentityRequest(input, context),\n Action: \"AssumeRoleWithWebIdentity\",\n Version: \"2011-06-15\",\n });\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexports.serializeAws_queryAssumeRoleWithWebIdentityCommand = serializeAws_queryAssumeRoleWithWebIdentityCommand;\nconst serializeAws_queryDecodeAuthorizationMessageCommand = async (input, context) => {\n const headers = {\n \"content-type\": \"application/x-www-form-urlencoded\",\n };\n let body;\n body = buildFormUrlencodedString({\n ...serializeAws_queryDecodeAuthorizationMessageRequest(input, context),\n Action: \"DecodeAuthorizationMessage\",\n Version: \"2011-06-15\",\n });\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexports.serializeAws_queryDecodeAuthorizationMessageCommand = serializeAws_queryDecodeAuthorizationMessageCommand;\nconst serializeAws_queryGetAccessKeyInfoCommand = async (input, context) => {\n const headers = {\n \"content-type\": \"application/x-www-form-urlencoded\",\n };\n let body;\n body = buildFormUrlencodedString({\n ...serializeAws_queryGetAccessKeyInfoRequest(input, context),\n Action: \"GetAccessKeyInfo\",\n Version: \"2011-06-15\",\n });\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexports.serializeAws_queryGetAccessKeyInfoCommand = serializeAws_queryGetAccessKeyInfoCommand;\nconst serializeAws_queryGetCallerIdentityCommand = async (input, context) => {\n const headers = {\n \"content-type\": \"application/x-www-form-urlencoded\",\n };\n let body;\n body = buildFormUrlencodedString({\n ...serializeAws_queryGetCallerIdentityRequest(input, context),\n Action: \"GetCallerIdentity\",\n Version: \"2011-06-15\",\n });\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexports.serializeAws_queryGetCallerIdentityCommand = serializeAws_queryGetCallerIdentityCommand;\nconst serializeAws_queryGetFederationTokenCommand = async (input, context) => {\n const headers = {\n \"content-type\": \"application/x-www-form-urlencoded\",\n };\n let body;\n body = buildFormUrlencodedString({\n ...serializeAws_queryGetFederationTokenRequest(input, context),\n Action: \"GetFederationToken\",\n Version: \"2011-06-15\",\n });\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexports.serializeAws_queryGetFederationTokenCommand = serializeAws_queryGetFederationTokenCommand;\nconst serializeAws_queryGetSessionTokenCommand = async (input, context) => {\n const headers = {\n \"content-type\": \"application/x-www-form-urlencoded\",\n };\n let body;\n body = buildFormUrlencodedString({\n ...serializeAws_queryGetSessionTokenRequest(input, context),\n Action: \"GetSessionToken\",\n Version: \"2011-06-15\",\n });\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexports.serializeAws_queryGetSessionTokenCommand = serializeAws_queryGetSessionTokenCommand;\nconst deserializeAws_queryAssumeRoleCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return deserializeAws_queryAssumeRoleCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = deserializeAws_queryAssumeRoleResponse(data.AssumeRoleResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return Promise.resolve(response);\n};\nexports.deserializeAws_queryAssumeRoleCommand = deserializeAws_queryAssumeRoleCommand;\nconst deserializeAws_queryAssumeRoleCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadQueryErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"ExpiredTokenException\":\n case \"com.amazonaws.sts#ExpiredTokenException\":\n throw await deserializeAws_queryExpiredTokenExceptionResponse(parsedOutput, context);\n case \"MalformedPolicyDocument\":\n case \"com.amazonaws.sts#MalformedPolicyDocumentException\":\n throw await deserializeAws_queryMalformedPolicyDocumentExceptionResponse(parsedOutput, context);\n case \"PackedPolicyTooLarge\":\n case \"com.amazonaws.sts#PackedPolicyTooLargeException\":\n throw await deserializeAws_queryPackedPolicyTooLargeExceptionResponse(parsedOutput, context);\n case \"RegionDisabledException\":\n case \"com.amazonaws.sts#RegionDisabledException\":\n throw await deserializeAws_queryRegionDisabledExceptionResponse(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody: parsedBody.Error,\n exceptionCtor: STSServiceException_1.STSServiceException,\n errorCode,\n });\n }\n};\nconst deserializeAws_queryAssumeRoleWithSAMLCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return deserializeAws_queryAssumeRoleWithSAMLCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = deserializeAws_queryAssumeRoleWithSAMLResponse(data.AssumeRoleWithSAMLResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return Promise.resolve(response);\n};\nexports.deserializeAws_queryAssumeRoleWithSAMLCommand = deserializeAws_queryAssumeRoleWithSAMLCommand;\nconst deserializeAws_queryAssumeRoleWithSAMLCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadQueryErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"ExpiredTokenException\":\n case \"com.amazonaws.sts#ExpiredTokenException\":\n throw await deserializeAws_queryExpiredTokenExceptionResponse(parsedOutput, context);\n case \"IDPRejectedClaim\":\n case \"com.amazonaws.sts#IDPRejectedClaimException\":\n throw await deserializeAws_queryIDPRejectedClaimExceptionResponse(parsedOutput, context);\n case \"InvalidIdentityToken\":\n case \"com.amazonaws.sts#InvalidIdentityTokenException\":\n throw await deserializeAws_queryInvalidIdentityTokenExceptionResponse(parsedOutput, context);\n case \"MalformedPolicyDocument\":\n case \"com.amazonaws.sts#MalformedPolicyDocumentException\":\n throw await deserializeAws_queryMalformedPolicyDocumentExceptionResponse(parsedOutput, context);\n case \"PackedPolicyTooLarge\":\n case \"com.amazonaws.sts#PackedPolicyTooLargeException\":\n throw await deserializeAws_queryPackedPolicyTooLargeExceptionResponse(parsedOutput, context);\n case \"RegionDisabledException\":\n case \"com.amazonaws.sts#RegionDisabledException\":\n throw await deserializeAws_queryRegionDisabledExceptionResponse(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody: parsedBody.Error,\n exceptionCtor: STSServiceException_1.STSServiceException,\n errorCode,\n });\n }\n};\nconst deserializeAws_queryAssumeRoleWithWebIdentityCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return deserializeAws_queryAssumeRoleWithWebIdentityCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = deserializeAws_queryAssumeRoleWithWebIdentityResponse(data.AssumeRoleWithWebIdentityResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return Promise.resolve(response);\n};\nexports.deserializeAws_queryAssumeRoleWithWebIdentityCommand = deserializeAws_queryAssumeRoleWithWebIdentityCommand;\nconst deserializeAws_queryAssumeRoleWithWebIdentityCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadQueryErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"ExpiredTokenException\":\n case \"com.amazonaws.sts#ExpiredTokenException\":\n throw await deserializeAws_queryExpiredTokenExceptionResponse(parsedOutput, context);\n case \"IDPCommunicationError\":\n case \"com.amazonaws.sts#IDPCommunicationErrorException\":\n throw await deserializeAws_queryIDPCommunicationErrorExceptionResponse(parsedOutput, context);\n case \"IDPRejectedClaim\":\n case \"com.amazonaws.sts#IDPRejectedClaimException\":\n throw await deserializeAws_queryIDPRejectedClaimExceptionResponse(parsedOutput, context);\n case \"InvalidIdentityToken\":\n case \"com.amazonaws.sts#InvalidIdentityTokenException\":\n throw await deserializeAws_queryInvalidIdentityTokenExceptionResponse(parsedOutput, context);\n case \"MalformedPolicyDocument\":\n case \"com.amazonaws.sts#MalformedPolicyDocumentException\":\n throw await deserializeAws_queryMalformedPolicyDocumentExceptionResponse(parsedOutput, context);\n case \"PackedPolicyTooLarge\":\n case \"com.amazonaws.sts#PackedPolicyTooLargeException\":\n throw await deserializeAws_queryPackedPolicyTooLargeExceptionResponse(parsedOutput, context);\n case \"RegionDisabledException\":\n case \"com.amazonaws.sts#RegionDisabledException\":\n throw await deserializeAws_queryRegionDisabledExceptionResponse(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody: parsedBody.Error,\n exceptionCtor: STSServiceException_1.STSServiceException,\n errorCode,\n });\n }\n};\nconst deserializeAws_queryDecodeAuthorizationMessageCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return deserializeAws_queryDecodeAuthorizationMessageCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = deserializeAws_queryDecodeAuthorizationMessageResponse(data.DecodeAuthorizationMessageResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return Promise.resolve(response);\n};\nexports.deserializeAws_queryDecodeAuthorizationMessageCommand = deserializeAws_queryDecodeAuthorizationMessageCommand;\nconst deserializeAws_queryDecodeAuthorizationMessageCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadQueryErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"InvalidAuthorizationMessageException\":\n case \"com.amazonaws.sts#InvalidAuthorizationMessageException\":\n throw await deserializeAws_queryInvalidAuthorizationMessageExceptionResponse(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody: parsedBody.Error,\n exceptionCtor: STSServiceException_1.STSServiceException,\n errorCode,\n });\n }\n};\nconst deserializeAws_queryGetAccessKeyInfoCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return deserializeAws_queryGetAccessKeyInfoCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = deserializeAws_queryGetAccessKeyInfoResponse(data.GetAccessKeyInfoResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return Promise.resolve(response);\n};\nexports.deserializeAws_queryGetAccessKeyInfoCommand = deserializeAws_queryGetAccessKeyInfoCommand;\nconst deserializeAws_queryGetAccessKeyInfoCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadQueryErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody: parsedBody.Error,\n exceptionCtor: STSServiceException_1.STSServiceException,\n errorCode,\n });\n};\nconst deserializeAws_queryGetCallerIdentityCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return deserializeAws_queryGetCallerIdentityCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = deserializeAws_queryGetCallerIdentityResponse(data.GetCallerIdentityResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return Promise.resolve(response);\n};\nexports.deserializeAws_queryGetCallerIdentityCommand = deserializeAws_queryGetCallerIdentityCommand;\nconst deserializeAws_queryGetCallerIdentityCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadQueryErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody: parsedBody.Error,\n exceptionCtor: STSServiceException_1.STSServiceException,\n errorCode,\n });\n};\nconst deserializeAws_queryGetFederationTokenCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return deserializeAws_queryGetFederationTokenCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = deserializeAws_queryGetFederationTokenResponse(data.GetFederationTokenResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return Promise.resolve(response);\n};\nexports.deserializeAws_queryGetFederationTokenCommand = deserializeAws_queryGetFederationTokenCommand;\nconst deserializeAws_queryGetFederationTokenCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadQueryErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"MalformedPolicyDocument\":\n case \"com.amazonaws.sts#MalformedPolicyDocumentException\":\n throw await deserializeAws_queryMalformedPolicyDocumentExceptionResponse(parsedOutput, context);\n case \"PackedPolicyTooLarge\":\n case \"com.amazonaws.sts#PackedPolicyTooLargeException\":\n throw await deserializeAws_queryPackedPolicyTooLargeExceptionResponse(parsedOutput, context);\n case \"RegionDisabledException\":\n case \"com.amazonaws.sts#RegionDisabledException\":\n throw await deserializeAws_queryRegionDisabledExceptionResponse(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody: parsedBody.Error,\n exceptionCtor: STSServiceException_1.STSServiceException,\n errorCode,\n });\n }\n};\nconst deserializeAws_queryGetSessionTokenCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return deserializeAws_queryGetSessionTokenCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = deserializeAws_queryGetSessionTokenResponse(data.GetSessionTokenResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return Promise.resolve(response);\n};\nexports.deserializeAws_queryGetSessionTokenCommand = deserializeAws_queryGetSessionTokenCommand;\nconst deserializeAws_queryGetSessionTokenCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadQueryErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"RegionDisabledException\":\n case \"com.amazonaws.sts#RegionDisabledException\":\n throw await deserializeAws_queryRegionDisabledExceptionResponse(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody: parsedBody.Error,\n exceptionCtor: STSServiceException_1.STSServiceException,\n errorCode,\n });\n }\n};\nconst deserializeAws_queryExpiredTokenExceptionResponse = async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = deserializeAws_queryExpiredTokenException(body.Error, context);\n const exception = new models_0_1.ExpiredTokenException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized,\n });\n return (0, smithy_client_1.decorateServiceException)(exception, body);\n};\nconst deserializeAws_queryIDPCommunicationErrorExceptionResponse = async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = deserializeAws_queryIDPCommunicationErrorException(body.Error, context);\n const exception = new models_0_1.IDPCommunicationErrorException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized,\n });\n return (0, smithy_client_1.decorateServiceException)(exception, body);\n};\nconst deserializeAws_queryIDPRejectedClaimExceptionResponse = async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = deserializeAws_queryIDPRejectedClaimException(body.Error, context);\n const exception = new models_0_1.IDPRejectedClaimException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized,\n });\n return (0, smithy_client_1.decorateServiceException)(exception, body);\n};\nconst deserializeAws_queryInvalidAuthorizationMessageExceptionResponse = async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = deserializeAws_queryInvalidAuthorizationMessageException(body.Error, context);\n const exception = new models_0_1.InvalidAuthorizationMessageException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized,\n });\n return (0, smithy_client_1.decorateServiceException)(exception, body);\n};\nconst deserializeAws_queryInvalidIdentityTokenExceptionResponse = async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = deserializeAws_queryInvalidIdentityTokenException(body.Error, context);\n const exception = new models_0_1.InvalidIdentityTokenException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized,\n });\n return (0, smithy_client_1.decorateServiceException)(exception, body);\n};\nconst deserializeAws_queryMalformedPolicyDocumentExceptionResponse = async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = deserializeAws_queryMalformedPolicyDocumentException(body.Error, context);\n const exception = new models_0_1.MalformedPolicyDocumentException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized,\n });\n return (0, smithy_client_1.decorateServiceException)(exception, body);\n};\nconst deserializeAws_queryPackedPolicyTooLargeExceptionResponse = async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = deserializeAws_queryPackedPolicyTooLargeException(body.Error, context);\n const exception = new models_0_1.PackedPolicyTooLargeException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized,\n });\n return (0, smithy_client_1.decorateServiceException)(exception, body);\n};\nconst deserializeAws_queryRegionDisabledExceptionResponse = async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = deserializeAws_queryRegionDisabledException(body.Error, context);\n const exception = new models_0_1.RegionDisabledException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized,\n });\n return (0, smithy_client_1.decorateServiceException)(exception, body);\n};\nconst serializeAws_queryAssumeRoleRequest = (input, context) => {\n const entries = {};\n if (input.RoleArn != null) {\n entries[\"RoleArn\"] = input.RoleArn;\n }\n if (input.RoleSessionName != null) {\n entries[\"RoleSessionName\"] = input.RoleSessionName;\n }\n if (input.PolicyArns != null) {\n const memberEntries = serializeAws_querypolicyDescriptorListType(input.PolicyArns, context);\n if (input.PolicyArns?.length === 0) {\n entries.PolicyArns = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `PolicyArns.${key}`;\n entries[loc] = value;\n });\n }\n if (input.Policy != null) {\n entries[\"Policy\"] = input.Policy;\n }\n if (input.DurationSeconds != null) {\n entries[\"DurationSeconds\"] = input.DurationSeconds;\n }\n if (input.Tags != null) {\n const memberEntries = serializeAws_querytagListType(input.Tags, context);\n if (input.Tags?.length === 0) {\n entries.Tags = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Tags.${key}`;\n entries[loc] = value;\n });\n }\n if (input.TransitiveTagKeys != null) {\n const memberEntries = serializeAws_querytagKeyListType(input.TransitiveTagKeys, context);\n if (input.TransitiveTagKeys?.length === 0) {\n entries.TransitiveTagKeys = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TransitiveTagKeys.${key}`;\n entries[loc] = value;\n });\n }\n if (input.ExternalId != null) {\n entries[\"ExternalId\"] = input.ExternalId;\n }\n if (input.SerialNumber != null) {\n entries[\"SerialNumber\"] = input.SerialNumber;\n }\n if (input.TokenCode != null) {\n entries[\"TokenCode\"] = input.TokenCode;\n }\n if (input.SourceIdentity != null) {\n entries[\"SourceIdentity\"] = input.SourceIdentity;\n }\n return entries;\n};\nconst serializeAws_queryAssumeRoleWithSAMLRequest = (input, context) => {\n const entries = {};\n if (input.RoleArn != null) {\n entries[\"RoleArn\"] = input.RoleArn;\n }\n if (input.PrincipalArn != null) {\n entries[\"PrincipalArn\"] = input.PrincipalArn;\n }\n if (input.SAMLAssertion != null) {\n entries[\"SAMLAssertion\"] = input.SAMLAssertion;\n }\n if (input.PolicyArns != null) {\n const memberEntries = serializeAws_querypolicyDescriptorListType(input.PolicyArns, context);\n if (input.PolicyArns?.length === 0) {\n entries.PolicyArns = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `PolicyArns.${key}`;\n entries[loc] = value;\n });\n }\n if (input.Policy != null) {\n entries[\"Policy\"] = input.Policy;\n }\n if (input.DurationSeconds != null) {\n entries[\"DurationSeconds\"] = input.DurationSeconds;\n }\n return entries;\n};\nconst serializeAws_queryAssumeRoleWithWebIdentityRequest = (input, context) => {\n const entries = {};\n if (input.RoleArn != null) {\n entries[\"RoleArn\"] = input.RoleArn;\n }\n if (input.RoleSessionName != null) {\n entries[\"RoleSessionName\"] = input.RoleSessionName;\n }\n if (input.WebIdentityToken != null) {\n entries[\"WebIdentityToken\"] = input.WebIdentityToken;\n }\n if (input.ProviderId != null) {\n entries[\"ProviderId\"] = input.ProviderId;\n }\n if (input.PolicyArns != null) {\n const memberEntries = serializeAws_querypolicyDescriptorListType(input.PolicyArns, context);\n if (input.PolicyArns?.length === 0) {\n entries.PolicyArns = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `PolicyArns.${key}`;\n entries[loc] = value;\n });\n }\n if (input.Policy != null) {\n entries[\"Policy\"] = input.Policy;\n }\n if (input.DurationSeconds != null) {\n entries[\"DurationSeconds\"] = input.DurationSeconds;\n }\n return entries;\n};\nconst serializeAws_queryDecodeAuthorizationMessageRequest = (input, context) => {\n const entries = {};\n if (input.EncodedMessage != null) {\n entries[\"EncodedMessage\"] = input.EncodedMessage;\n }\n return entries;\n};\nconst serializeAws_queryGetAccessKeyInfoRequest = (input, context) => {\n const entries = {};\n if (input.AccessKeyId != null) {\n entries[\"AccessKeyId\"] = input.AccessKeyId;\n }\n return entries;\n};\nconst serializeAws_queryGetCallerIdentityRequest = (input, context) => {\n const entries = {};\n return entries;\n};\nconst serializeAws_queryGetFederationTokenRequest = (input, context) => {\n const entries = {};\n if (input.Name != null) {\n entries[\"Name\"] = input.Name;\n }\n if (input.Policy != null) {\n entries[\"Policy\"] = input.Policy;\n }\n if (input.PolicyArns != null) {\n const memberEntries = serializeAws_querypolicyDescriptorListType(input.PolicyArns, context);\n if (input.PolicyArns?.length === 0) {\n entries.PolicyArns = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `PolicyArns.${key}`;\n entries[loc] = value;\n });\n }\n if (input.DurationSeconds != null) {\n entries[\"DurationSeconds\"] = input.DurationSeconds;\n }\n if (input.Tags != null) {\n const memberEntries = serializeAws_querytagListType(input.Tags, context);\n if (input.Tags?.length === 0) {\n entries.Tags = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Tags.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n};\nconst serializeAws_queryGetSessionTokenRequest = (input, context) => {\n const entries = {};\n if (input.DurationSeconds != null) {\n entries[\"DurationSeconds\"] = input.DurationSeconds;\n }\n if (input.SerialNumber != null) {\n entries[\"SerialNumber\"] = input.SerialNumber;\n }\n if (input.TokenCode != null) {\n entries[\"TokenCode\"] = input.TokenCode;\n }\n return entries;\n};\nconst serializeAws_querypolicyDescriptorListType = (input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = serializeAws_queryPolicyDescriptorType(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`member.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n};\nconst serializeAws_queryPolicyDescriptorType = (input, context) => {\n const entries = {};\n if (input.arn != null) {\n entries[\"arn\"] = input.arn;\n }\n return entries;\n};\nconst serializeAws_queryTag = (input, context) => {\n const entries = {};\n if (input.Key != null) {\n entries[\"Key\"] = input.Key;\n }\n if (input.Value != null) {\n entries[\"Value\"] = input.Value;\n }\n return entries;\n};\nconst serializeAws_querytagKeyListType = (input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`member.${counter}`] = entry;\n counter++;\n }\n return entries;\n};\nconst serializeAws_querytagListType = (input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = serializeAws_queryTag(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`member.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n};\nconst deserializeAws_queryAssumedRoleUser = (output, context) => {\n const contents = {\n AssumedRoleId: undefined,\n Arn: undefined,\n };\n if (output[\"AssumedRoleId\"] !== undefined) {\n contents.AssumedRoleId = (0, smithy_client_1.expectString)(output[\"AssumedRoleId\"]);\n }\n if (output[\"Arn\"] !== undefined) {\n contents.Arn = (0, smithy_client_1.expectString)(output[\"Arn\"]);\n }\n return contents;\n};\nconst deserializeAws_queryAssumeRoleResponse = (output, context) => {\n const contents = {\n Credentials: undefined,\n AssumedRoleUser: undefined,\n PackedPolicySize: undefined,\n SourceIdentity: undefined,\n };\n if (output[\"Credentials\"] !== undefined) {\n contents.Credentials = deserializeAws_queryCredentials(output[\"Credentials\"], context);\n }\n if (output[\"AssumedRoleUser\"] !== undefined) {\n contents.AssumedRoleUser = deserializeAws_queryAssumedRoleUser(output[\"AssumedRoleUser\"], context);\n }\n if (output[\"PackedPolicySize\"] !== undefined) {\n contents.PackedPolicySize = (0, smithy_client_1.strictParseInt32)(output[\"PackedPolicySize\"]);\n }\n if (output[\"SourceIdentity\"] !== undefined) {\n contents.SourceIdentity = (0, smithy_client_1.expectString)(output[\"SourceIdentity\"]);\n }\n return contents;\n};\nconst deserializeAws_queryAssumeRoleWithSAMLResponse = (output, context) => {\n const contents = {\n Credentials: undefined,\n AssumedRoleUser: undefined,\n PackedPolicySize: undefined,\n Subject: undefined,\n SubjectType: undefined,\n Issuer: undefined,\n Audience: undefined,\n NameQualifier: undefined,\n SourceIdentity: undefined,\n };\n if (output[\"Credentials\"] !== undefined) {\n contents.Credentials = deserializeAws_queryCredentials(output[\"Credentials\"], context);\n }\n if (output[\"AssumedRoleUser\"] !== undefined) {\n contents.AssumedRoleUser = deserializeAws_queryAssumedRoleUser(output[\"AssumedRoleUser\"], context);\n }\n if (output[\"PackedPolicySize\"] !== undefined) {\n contents.PackedPolicySize = (0, smithy_client_1.strictParseInt32)(output[\"PackedPolicySize\"]);\n }\n if (output[\"Subject\"] !== undefined) {\n contents.Subject = (0, smithy_client_1.expectString)(output[\"Subject\"]);\n }\n if (output[\"SubjectType\"] !== undefined) {\n contents.SubjectType = (0, smithy_client_1.expectString)(output[\"SubjectType\"]);\n }\n if (output[\"Issuer\"] !== undefined) {\n contents.Issuer = (0, smithy_client_1.expectString)(output[\"Issuer\"]);\n }\n if (output[\"Audience\"] !== undefined) {\n contents.Audience = (0, smithy_client_1.expectString)(output[\"Audience\"]);\n }\n if (output[\"NameQualifier\"] !== undefined) {\n contents.NameQualifier = (0, smithy_client_1.expectString)(output[\"NameQualifier\"]);\n }\n if (output[\"SourceIdentity\"] !== undefined) {\n contents.SourceIdentity = (0, smithy_client_1.expectString)(output[\"SourceIdentity\"]);\n }\n return contents;\n};\nconst deserializeAws_queryAssumeRoleWithWebIdentityResponse = (output, context) => {\n const contents = {\n Credentials: undefined,\n SubjectFromWebIdentityToken: undefined,\n AssumedRoleUser: undefined,\n PackedPolicySize: undefined,\n Provider: undefined,\n Audience: undefined,\n SourceIdentity: undefined,\n };\n if (output[\"Credentials\"] !== undefined) {\n contents.Credentials = deserializeAws_queryCredentials(output[\"Credentials\"], context);\n }\n if (output[\"SubjectFromWebIdentityToken\"] !== undefined) {\n contents.SubjectFromWebIdentityToken = (0, smithy_client_1.expectString)(output[\"SubjectFromWebIdentityToken\"]);\n }\n if (output[\"AssumedRoleUser\"] !== undefined) {\n contents.AssumedRoleUser = deserializeAws_queryAssumedRoleUser(output[\"AssumedRoleUser\"], context);\n }\n if (output[\"PackedPolicySize\"] !== undefined) {\n contents.PackedPolicySize = (0, smithy_client_1.strictParseInt32)(output[\"PackedPolicySize\"]);\n }\n if (output[\"Provider\"] !== undefined) {\n contents.Provider = (0, smithy_client_1.expectString)(output[\"Provider\"]);\n }\n if (output[\"Audience\"] !== undefined) {\n contents.Audience = (0, smithy_client_1.expectString)(output[\"Audience\"]);\n }\n if (output[\"SourceIdentity\"] !== undefined) {\n contents.SourceIdentity = (0, smithy_client_1.expectString)(output[\"SourceIdentity\"]);\n }\n return contents;\n};\nconst deserializeAws_queryCredentials = (output, context) => {\n const contents = {\n AccessKeyId: undefined,\n SecretAccessKey: undefined,\n SessionToken: undefined,\n Expiration: undefined,\n };\n if (output[\"AccessKeyId\"] !== undefined) {\n contents.AccessKeyId = (0, smithy_client_1.expectString)(output[\"AccessKeyId\"]);\n }\n if (output[\"SecretAccessKey\"] !== undefined) {\n contents.SecretAccessKey = (0, smithy_client_1.expectString)(output[\"SecretAccessKey\"]);\n }\n if (output[\"SessionToken\"] !== undefined) {\n contents.SessionToken = (0, smithy_client_1.expectString)(output[\"SessionToken\"]);\n }\n if (output[\"Expiration\"] !== undefined) {\n contents.Expiration = (0, smithy_client_1.expectNonNull)((0, smithy_client_1.parseRfc3339DateTimeWithOffset)(output[\"Expiration\"]));\n }\n return contents;\n};\nconst deserializeAws_queryDecodeAuthorizationMessageResponse = (output, context) => {\n const contents = {\n DecodedMessage: undefined,\n };\n if (output[\"DecodedMessage\"] !== undefined) {\n contents.DecodedMessage = (0, smithy_client_1.expectString)(output[\"DecodedMessage\"]);\n }\n return contents;\n};\nconst deserializeAws_queryExpiredTokenException = (output, context) => {\n const contents = {\n message: undefined,\n };\n if (output[\"message\"] !== undefined) {\n contents.message = (0, smithy_client_1.expectString)(output[\"message\"]);\n }\n return contents;\n};\nconst deserializeAws_queryFederatedUser = (output, context) => {\n const contents = {\n FederatedUserId: undefined,\n Arn: undefined,\n };\n if (output[\"FederatedUserId\"] !== undefined) {\n contents.FederatedUserId = (0, smithy_client_1.expectString)(output[\"FederatedUserId\"]);\n }\n if (output[\"Arn\"] !== undefined) {\n contents.Arn = (0, smithy_client_1.expectString)(output[\"Arn\"]);\n }\n return contents;\n};\nconst deserializeAws_queryGetAccessKeyInfoResponse = (output, context) => {\n const contents = {\n Account: undefined,\n };\n if (output[\"Account\"] !== undefined) {\n contents.Account = (0, smithy_client_1.expectString)(output[\"Account\"]);\n }\n return contents;\n};\nconst deserializeAws_queryGetCallerIdentityResponse = (output, context) => {\n const contents = {\n UserId: undefined,\n Account: undefined,\n Arn: undefined,\n };\n if (output[\"UserId\"] !== undefined) {\n contents.UserId = (0, smithy_client_1.expectString)(output[\"UserId\"]);\n }\n if (output[\"Account\"] !== undefined) {\n contents.Account = (0, smithy_client_1.expectString)(output[\"Account\"]);\n }\n if (output[\"Arn\"] !== undefined) {\n contents.Arn = (0, smithy_client_1.expectString)(output[\"Arn\"]);\n }\n return contents;\n};\nconst deserializeAws_queryGetFederationTokenResponse = (output, context) => {\n const contents = {\n Credentials: undefined,\n FederatedUser: undefined,\n PackedPolicySize: undefined,\n };\n if (output[\"Credentials\"] !== undefined) {\n contents.Credentials = deserializeAws_queryCredentials(output[\"Credentials\"], context);\n }\n if (output[\"FederatedUser\"] !== undefined) {\n contents.FederatedUser = deserializeAws_queryFederatedUser(output[\"FederatedUser\"], context);\n }\n if (output[\"PackedPolicySize\"] !== undefined) {\n contents.PackedPolicySize = (0, smithy_client_1.strictParseInt32)(output[\"PackedPolicySize\"]);\n }\n return contents;\n};\nconst deserializeAws_queryGetSessionTokenResponse = (output, context) => {\n const contents = {\n Credentials: undefined,\n };\n if (output[\"Credentials\"] !== undefined) {\n contents.Credentials = deserializeAws_queryCredentials(output[\"Credentials\"], context);\n }\n return contents;\n};\nconst deserializeAws_queryIDPCommunicationErrorException = (output, context) => {\n const contents = {\n message: undefined,\n };\n if (output[\"message\"] !== undefined) {\n contents.message = (0, smithy_client_1.expectString)(output[\"message\"]);\n }\n return contents;\n};\nconst deserializeAws_queryIDPRejectedClaimException = (output, context) => {\n const contents = {\n message: undefined,\n };\n if (output[\"message\"] !== undefined) {\n contents.message = (0, smithy_client_1.expectString)(output[\"message\"]);\n }\n return contents;\n};\nconst deserializeAws_queryInvalidAuthorizationMessageException = (output, context) => {\n const contents = {\n message: undefined,\n };\n if (output[\"message\"] !== undefined) {\n contents.message = (0, smithy_client_1.expectString)(output[\"message\"]);\n }\n return contents;\n};\nconst deserializeAws_queryInvalidIdentityTokenException = (output, context) => {\n const contents = {\n message: undefined,\n };\n if (output[\"message\"] !== undefined) {\n contents.message = (0, smithy_client_1.expectString)(output[\"message\"]);\n }\n return contents;\n};\nconst deserializeAws_queryMalformedPolicyDocumentException = (output, context) => {\n const contents = {\n message: undefined,\n };\n if (output[\"message\"] !== undefined) {\n contents.message = (0, smithy_client_1.expectString)(output[\"message\"]);\n }\n return contents;\n};\nconst deserializeAws_queryPackedPolicyTooLargeException = (output, context) => {\n const contents = {\n message: undefined,\n };\n if (output[\"message\"] !== undefined) {\n contents.message = (0, smithy_client_1.expectString)(output[\"message\"]);\n }\n return contents;\n};\nconst deserializeAws_queryRegionDisabledException = (output, context) => {\n const contents = {\n message: undefined,\n };\n if (output[\"message\"] !== undefined) {\n contents.message = (0, smithy_client_1.expectString)(output[\"message\"]);\n }\n return contents;\n};\nconst deserializeMetadata = (output) => ({\n httpStatusCode: output.statusCode,\n requestId: output.headers[\"x-amzn-requestid\"] ?? output.headers[\"x-amzn-request-id\"] ?? output.headers[\"x-amz-request-id\"],\n extendedRequestId: output.headers[\"x-amz-id-2\"],\n cfId: output.headers[\"x-amz-cf-id\"],\n});\nconst collectBody = (streamBody = new Uint8Array(), context) => {\n if (streamBody instanceof Uint8Array) {\n return Promise.resolve(streamBody);\n }\n return context.streamCollector(streamBody) || Promise.resolve(new Uint8Array());\n};\nconst collectBodyString = (streamBody, context) => collectBody(streamBody, context).then((body) => context.utf8Encoder(body));\nconst buildHttpRpcRequest = async (context, headers, path, resolvedHostname, body) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const contents = {\n protocol,\n hostname,\n port,\n method: \"POST\",\n path: basePath.endsWith(\"/\") ? basePath.slice(0, -1) + path : basePath + path,\n headers,\n };\n if (resolvedHostname !== undefined) {\n contents.hostname = resolvedHostname;\n }\n if (body !== undefined) {\n contents.body = body;\n }\n return new protocol_http_1.HttpRequest(contents);\n};\nconst parseBody = (streamBody, context) => collectBodyString(streamBody, context).then((encoded) => {\n if (encoded.length) {\n const parser = new fast_xml_parser_1.XMLParser({\n attributeNamePrefix: \"\",\n htmlEntities: true,\n ignoreAttributes: false,\n ignoreDeclaration: true,\n parseTagValue: false,\n trimValues: false,\n tagValueProcessor: (_, val) => (val.trim() === \"\" && val.includes(\"\\n\") ? \"\" : undefined),\n });\n parser.addEntity(\"#xD\", \"\\r\");\n parser.addEntity(\"#10\", \"\\n\");\n const parsedObj = parser.parse(encoded);\n const textNodeName = \"#text\";\n const key = Object.keys(parsedObj)[0];\n const parsedObjToReturn = parsedObj[key];\n if (parsedObjToReturn[textNodeName]) {\n parsedObjToReturn[key] = parsedObjToReturn[textNodeName];\n delete parsedObjToReturn[textNodeName];\n }\n return (0, smithy_client_1.getValueFromTextNode)(parsedObjToReturn);\n }\n return {};\n});\nconst parseErrorBody = async (errorBody, context) => {\n const value = await parseBody(errorBody, context);\n if (value.Error) {\n value.Error.message = value.Error.message ?? value.Error.Message;\n }\n return value;\n};\nconst buildFormUrlencodedString = (formEntries) => Object.entries(formEntries)\n .map(([key, value]) => (0, smithy_client_1.extendedEncodeURIComponent)(key) + \"=\" + (0, smithy_client_1.extendedEncodeURIComponent)(value))\n .join(\"&\");\nconst loadQueryErrorCode = (output, data) => {\n if (data.Error?.Code !== undefined) {\n return data.Error.Code;\n }\n if (output.statusCode == 404) {\n return \"NotFound\";\n }\n};\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AssumeRoleCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst middleware_signing_1 = require(\"@aws-sdk/middleware-signing\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_query_1 = require(\"../protocols/Aws_query\");\nclass AssumeRoleCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, AssumeRoleCommand.getEndpointParameterInstructions()));\n this.middlewareStack.use((0, middleware_signing_1.getAwsAuthPlugin)(configuration));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"STSClient\";\n const commandName = \"AssumeRoleCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.AssumeRoleRequestFilterSensitiveLog,\n outputFilterSensitiveLog: models_0_1.AssumeRoleResponseFilterSensitiveLog,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_query_1.serializeAws_queryAssumeRoleCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_query_1.deserializeAws_queryAssumeRoleCommand)(output, context);\n }\n}\nexports.AssumeRoleCommand = AssumeRoleCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AssumeRoleWithSAMLCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_query_1 = require(\"../protocols/Aws_query\");\nclass AssumeRoleWithSAMLCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, AssumeRoleWithSAMLCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"STSClient\";\n const commandName = \"AssumeRoleWithSAMLCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.AssumeRoleWithSAMLRequestFilterSensitiveLog,\n outputFilterSensitiveLog: models_0_1.AssumeRoleWithSAMLResponseFilterSensitiveLog,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_query_1.serializeAws_queryAssumeRoleWithSAMLCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_query_1.deserializeAws_queryAssumeRoleWithSAMLCommand)(output, context);\n }\n}\nexports.AssumeRoleWithSAMLCommand = AssumeRoleWithSAMLCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AssumeRoleWithWebIdentityCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_query_1 = require(\"../protocols/Aws_query\");\nclass AssumeRoleWithWebIdentityCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, AssumeRoleWithWebIdentityCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"STSClient\";\n const commandName = \"AssumeRoleWithWebIdentityCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.AssumeRoleWithWebIdentityRequestFilterSensitiveLog,\n outputFilterSensitiveLog: models_0_1.AssumeRoleWithWebIdentityResponseFilterSensitiveLog,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_query_1.serializeAws_queryAssumeRoleWithWebIdentityCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_query_1.deserializeAws_queryAssumeRoleWithWebIdentityCommand)(output, context);\n }\n}\nexports.AssumeRoleWithWebIdentityCommand = AssumeRoleWithWebIdentityCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DecodeAuthorizationMessageCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst middleware_signing_1 = require(\"@aws-sdk/middleware-signing\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_query_1 = require(\"../protocols/Aws_query\");\nclass DecodeAuthorizationMessageCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, DecodeAuthorizationMessageCommand.getEndpointParameterInstructions()));\n this.middlewareStack.use((0, middleware_signing_1.getAwsAuthPlugin)(configuration));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"STSClient\";\n const commandName = \"DecodeAuthorizationMessageCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.DecodeAuthorizationMessageRequestFilterSensitiveLog,\n outputFilterSensitiveLog: models_0_1.DecodeAuthorizationMessageResponseFilterSensitiveLog,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_query_1.serializeAws_queryDecodeAuthorizationMessageCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_query_1.deserializeAws_queryDecodeAuthorizationMessageCommand)(output, context);\n }\n}\nexports.DecodeAuthorizationMessageCommand = DecodeAuthorizationMessageCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.GetAccessKeyInfoCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst middleware_signing_1 = require(\"@aws-sdk/middleware-signing\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_query_1 = require(\"../protocols/Aws_query\");\nclass GetAccessKeyInfoCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, GetAccessKeyInfoCommand.getEndpointParameterInstructions()));\n this.middlewareStack.use((0, middleware_signing_1.getAwsAuthPlugin)(configuration));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"STSClient\";\n const commandName = \"GetAccessKeyInfoCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.GetAccessKeyInfoRequestFilterSensitiveLog,\n outputFilterSensitiveLog: models_0_1.GetAccessKeyInfoResponseFilterSensitiveLog,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_query_1.serializeAws_queryGetAccessKeyInfoCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_query_1.deserializeAws_queryGetAccessKeyInfoCommand)(output, context);\n }\n}\nexports.GetAccessKeyInfoCommand = GetAccessKeyInfoCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.GetCallerIdentityCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst middleware_signing_1 = require(\"@aws-sdk/middleware-signing\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_query_1 = require(\"../protocols/Aws_query\");\nclass GetCallerIdentityCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, GetCallerIdentityCommand.getEndpointParameterInstructions()));\n this.middlewareStack.use((0, middleware_signing_1.getAwsAuthPlugin)(configuration));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"STSClient\";\n const commandName = \"GetCallerIdentityCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.GetCallerIdentityRequestFilterSensitiveLog,\n outputFilterSensitiveLog: models_0_1.GetCallerIdentityResponseFilterSensitiveLog,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_query_1.serializeAws_queryGetCallerIdentityCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_query_1.deserializeAws_queryGetCallerIdentityCommand)(output, context);\n }\n}\nexports.GetCallerIdentityCommand = GetCallerIdentityCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.GetFederationTokenCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst middleware_signing_1 = require(\"@aws-sdk/middleware-signing\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_query_1 = require(\"../protocols/Aws_query\");\nclass GetFederationTokenCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, GetFederationTokenCommand.getEndpointParameterInstructions()));\n this.middlewareStack.use((0, middleware_signing_1.getAwsAuthPlugin)(configuration));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"STSClient\";\n const commandName = \"GetFederationTokenCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.GetFederationTokenRequestFilterSensitiveLog,\n outputFilterSensitiveLog: models_0_1.GetFederationTokenResponseFilterSensitiveLog,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_query_1.serializeAws_queryGetFederationTokenCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_query_1.deserializeAws_queryGetFederationTokenCommand)(output, context);\n }\n}\nexports.GetFederationTokenCommand = GetFederationTokenCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.GetSessionTokenCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst middleware_signing_1 = require(\"@aws-sdk/middleware-signing\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_query_1 = require(\"../protocols/Aws_query\");\nclass GetSessionTokenCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, GetSessionTokenCommand.getEndpointParameterInstructions()));\n this.middlewareStack.use((0, middleware_signing_1.getAwsAuthPlugin)(configuration));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"STSClient\";\n const commandName = \"GetSessionTokenCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.GetSessionTokenRequestFilterSensitiveLog,\n outputFilterSensitiveLog: models_0_1.GetSessionTokenResponseFilterSensitiveLog,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_query_1.serializeAws_queryGetSessionTokenCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_query_1.deserializeAws_queryGetSessionTokenCommand)(output, context);\n }\n}\nexports.GetSessionTokenCommand = GetSessionTokenCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.resolveStsAuthConfig = void 0;\nconst middleware_signing_1 = require(\"@aws-sdk/middleware-signing\");\nconst resolveStsAuthConfig = (input, { stsClientCtor }) => (0, middleware_signing_1.resolveAwsAuthConfig)({\n ...input,\n stsClientCtor,\n});\nexports.resolveStsAuthConfig = resolveStsAuthConfig;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.resolveClientEndpointParameters = void 0;\nconst resolveClientEndpointParameters = (options) => {\n return {\n ...options,\n useDualstackEndpoint: options.useDualstackEndpoint ?? false,\n useFipsEndpoint: options.useFipsEndpoint ?? false,\n useGlobalEndpoint: options.useGlobalEndpoint ?? false,\n defaultSigningName: \"sts\",\n };\n};\nexports.resolveClientEndpointParameters = resolveClientEndpointParameters;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.decorateDefaultCredentialProvider = exports.getDefaultRoleAssumerWithWebIdentity = exports.getDefaultRoleAssumer = void 0;\nconst AssumeRoleCommand_1 = require(\"./commands/AssumeRoleCommand\");\nconst AssumeRoleWithWebIdentityCommand_1 = require(\"./commands/AssumeRoleWithWebIdentityCommand\");\nconst ASSUME_ROLE_DEFAULT_REGION = \"us-east-1\";\nconst decorateDefaultRegion = (region) => {\n if (typeof region !== \"function\") {\n return region === undefined ? ASSUME_ROLE_DEFAULT_REGION : region;\n }\n return async () => {\n try {\n return await region();\n }\n catch (e) {\n return ASSUME_ROLE_DEFAULT_REGION;\n }\n };\n};\nconst getDefaultRoleAssumer = (stsOptions, stsClientCtor) => {\n let stsClient;\n let closureSourceCreds;\n return async (sourceCreds, params) => {\n closureSourceCreds = sourceCreds;\n if (!stsClient) {\n const { logger, region, requestHandler } = stsOptions;\n stsClient = new stsClientCtor({\n logger,\n credentialDefaultProvider: () => async () => closureSourceCreds,\n region: decorateDefaultRegion(region || stsOptions.region),\n ...(requestHandler ? { requestHandler } : {}),\n });\n }\n const { Credentials } = await stsClient.send(new AssumeRoleCommand_1.AssumeRoleCommand(params));\n if (!Credentials || !Credentials.AccessKeyId || !Credentials.SecretAccessKey) {\n throw new Error(`Invalid response from STS.assumeRole call with role ${params.RoleArn}`);\n }\n return {\n accessKeyId: Credentials.AccessKeyId,\n secretAccessKey: Credentials.SecretAccessKey,\n sessionToken: Credentials.SessionToken,\n expiration: Credentials.Expiration,\n };\n };\n};\nexports.getDefaultRoleAssumer = getDefaultRoleAssumer;\nconst getDefaultRoleAssumerWithWebIdentity = (stsOptions, stsClientCtor) => {\n let stsClient;\n return async (params) => {\n if (!stsClient) {\n const { logger, region, requestHandler } = stsOptions;\n stsClient = new stsClientCtor({\n logger,\n region: decorateDefaultRegion(region || stsOptions.region),\n ...(requestHandler ? { requestHandler } : {}),\n });\n }\n const { Credentials } = await stsClient.send(new AssumeRoleWithWebIdentityCommand_1.AssumeRoleWithWebIdentityCommand(params));\n if (!Credentials || !Credentials.AccessKeyId || !Credentials.SecretAccessKey) {\n throw new Error(`Invalid response from STS.assumeRoleWithWebIdentity call with role ${params.RoleArn}`);\n }\n return {\n accessKeyId: Credentials.AccessKeyId,\n secretAccessKey: Credentials.SecretAccessKey,\n sessionToken: Credentials.SessionToken,\n expiration: Credentials.Expiration,\n };\n };\n};\nexports.getDefaultRoleAssumerWithWebIdentity = getDefaultRoleAssumerWithWebIdentity;\nconst decorateDefaultCredentialProvider = (provider) => (input) => provider({\n roleAssumer: (0, exports.getDefaultRoleAssumer)(input, input.stsClientCtor),\n roleAssumerWithWebIdentity: (0, exports.getDefaultRoleAssumerWithWebIdentity)(input, input.stsClientCtor),\n ...input,\n});\nexports.decorateDefaultCredentialProvider = decorateDefaultCredentialProvider;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fromEnv = exports.ENV_EXPIRATION = exports.ENV_SESSION = exports.ENV_SECRET = exports.ENV_KEY = void 0;\nconst property_provider_1 = require(\"@aws-sdk/property-provider\");\nexports.ENV_KEY = \"AWS_ACCESS_KEY_ID\";\nexports.ENV_SECRET = \"AWS_SECRET_ACCESS_KEY\";\nexports.ENV_SESSION = \"AWS_SESSION_TOKEN\";\nexports.ENV_EXPIRATION = \"AWS_CREDENTIAL_EXPIRATION\";\nconst fromEnv = () => async () => {\n const accessKeyId = process.env[exports.ENV_KEY];\n const secretAccessKey = process.env[exports.ENV_SECRET];\n const sessionToken = process.env[exports.ENV_SESSION];\n const expiry = process.env[exports.ENV_EXPIRATION];\n if (accessKeyId && secretAccessKey) {\n return {\n accessKeyId,\n secretAccessKey,\n ...(sessionToken && { sessionToken }),\n ...(expiry && { expiration: new Date(expiry) }),\n };\n }\n throw new property_provider_1.CredentialsProviderError(\"Unable to find environment variable credentials.\");\n};\nexports.fromEnv = fromEnv;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./fromEnv\"), exports);\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getHomeDir = void 0;\nconst os_1 = require(\"os\");\nconst path_1 = require(\"path\");\nconst getHomeDir = () => {\n const { HOME, USERPROFILE, HOMEPATH, HOMEDRIVE = `C:${path_1.sep}` } = process.env;\n if (HOME)\n return HOME;\n if (USERPROFILE)\n return USERPROFILE;\n if (HOMEPATH)\n return `${HOMEDRIVE}${HOMEPATH}`;\n return (0, os_1.homedir)();\n};\nexports.getHomeDir = getHomeDir;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getProfileName = exports.DEFAULT_PROFILE = exports.ENV_PROFILE = void 0;\nexports.ENV_PROFILE = \"AWS_PROFILE\";\nexports.DEFAULT_PROFILE = \"default\";\nconst getProfileName = (init) => init.profile || process.env[exports.ENV_PROFILE] || exports.DEFAULT_PROFILE;\nexports.getProfileName = getProfileName;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getSSOTokenFilepath = void 0;\nconst crypto_1 = require(\"crypto\");\nconst path_1 = require(\"path\");\nconst getHomeDir_1 = require(\"./getHomeDir\");\nconst getSSOTokenFilepath = (id) => {\n const hasher = (0, crypto_1.createHash)(\"sha1\");\n const cacheName = hasher.update(id).digest(\"hex\");\n return (0, path_1.join)((0, getHomeDir_1.getHomeDir)(), \".aws\", \"sso\", \"cache\", `${cacheName}.json`);\n};\nexports.getSSOTokenFilepath = getSSOTokenFilepath;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getSSOTokenFromFile = void 0;\nconst fs_1 = require(\"fs\");\nconst getSSOTokenFilepath_1 = require(\"./getSSOTokenFilepath\");\nconst { readFile } = fs_1.promises;\nconst getSSOTokenFromFile = async (id) => {\n const ssoTokenFilepath = (0, getSSOTokenFilepath_1.getSSOTokenFilepath)(id);\n const ssoTokenText = await readFile(ssoTokenFilepath, \"utf8\");\n return JSON.parse(ssoTokenText);\n};\nexports.getSSOTokenFromFile = getSSOTokenFromFile;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getConfigFilepath = exports.ENV_CONFIG_PATH = void 0;\nconst path_1 = require(\"path\");\nconst getHomeDir_1 = require(\"./getHomeDir\");\nexports.ENV_CONFIG_PATH = \"AWS_CONFIG_FILE\";\nconst getConfigFilepath = () => process.env[exports.ENV_CONFIG_PATH] || (0, path_1.join)((0, getHomeDir_1.getHomeDir)(), \".aws\", \"config\");\nexports.getConfigFilepath = getConfigFilepath;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getCredentialsFilepath = exports.ENV_CREDENTIALS_PATH = void 0;\nconst path_1 = require(\"path\");\nconst getHomeDir_1 = require(\"./getHomeDir\");\nexports.ENV_CREDENTIALS_PATH = \"AWS_SHARED_CREDENTIALS_FILE\";\nconst getCredentialsFilepath = () => process.env[exports.ENV_CREDENTIALS_PATH] || (0, path_1.join)((0, getHomeDir_1.getHomeDir)(), \".aws\", \"credentials\");\nexports.getCredentialsFilepath = getCredentialsFilepath;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getProfileData = void 0;\nconst profileKeyRegex = /^profile\\s([\"'])?([^\\1]+)\\1$/;\nconst getProfileData = (data) => Object.entries(data)\n .filter(([key]) => profileKeyRegex.test(key))\n .reduce((acc, [key, value]) => ({ ...acc, [profileKeyRegex.exec(key)[2]]: value }), {\n ...(data.default && { default: data.default }),\n});\nexports.getProfileData = getProfileData;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.parseIni = void 0;\nconst profileNameBlockList = [\"__proto__\", \"profile __proto__\"];\nconst parseIni = (iniData) => {\n const map = {};\n let currentSection;\n for (let line of iniData.split(/\\r?\\n/)) {\n line = line.split(/(^|\\s)[;#]/)[0].trim();\n const isSection = line[0] === \"[\" && line[line.length - 1] === \"]\";\n if (isSection) {\n currentSection = line.substring(1, line.length - 1);\n if (profileNameBlockList.includes(currentSection)) {\n throw new Error(`Found invalid profile name \"${currentSection}\"`);\n }\n }\n else if (currentSection) {\n const indexOfEqualsSign = line.indexOf(\"=\");\n const start = 0;\n const end = line.length - 1;\n const isAssignment = indexOfEqualsSign !== -1 && indexOfEqualsSign !== start && indexOfEqualsSign !== end;\n if (isAssignment) {\n const [name, value] = [\n line.substring(0, indexOfEqualsSign).trim(),\n line.substring(indexOfEqualsSign + 1).trim(),\n ];\n map[currentSection] = map[currentSection] || {};\n map[currentSection][name] = value;\n }\n }\n }\n return map;\n};\nexports.parseIni = parseIni;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.slurpFile = void 0;\nconst fs_1 = require(\"fs\");\nconst { readFile } = fs_1.promises;\nconst filePromisesHash = {};\nconst slurpFile = (path) => {\n if (!filePromisesHash[path]) {\n filePromisesHash[path] = readFile(path, \"utf8\");\n }\n return filePromisesHash[path];\n};\nexports.slurpFile = slurpFile;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.loadSharedConfigFiles = void 0;\nconst getConfigFilepath_1 = require(\"./getConfigFilepath\");\nconst getCredentialsFilepath_1 = require(\"./getCredentialsFilepath\");\nconst getProfileData_1 = require(\"./getProfileData\");\nconst parseIni_1 = require(\"./parseIni\");\nconst slurpFile_1 = require(\"./slurpFile\");\nconst swallowError = () => ({});\nconst loadSharedConfigFiles = async (init = {}) => {\n const { filepath = (0, getCredentialsFilepath_1.getCredentialsFilepath)(), configFilepath = (0, getConfigFilepath_1.getConfigFilepath)() } = init;\n const parsedFiles = await Promise.all([\n (0, slurpFile_1.slurpFile)(configFilepath).then(parseIni_1.parseIni).then(getProfileData_1.getProfileData).catch(swallowError),\n (0, slurpFile_1.slurpFile)(filepath).then(parseIni_1.parseIni).catch(swallowError),\n ]);\n return {\n configFile: parsedFiles[0],\n credentialsFile: parsedFiles[1],\n };\n};\nexports.loadSharedConfigFiles = loadSharedConfigFiles;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getSsoSessionData = void 0;\nconst ssoSessionKeyRegex = /^sso-session\\s([\"'])?([^\\1]+)\\1$/;\nconst getSsoSessionData = (data) => Object.entries(data)\n .filter(([key]) => ssoSessionKeyRegex.test(key))\n .reduce((acc, [key, value]) => ({ ...acc, [ssoSessionKeyRegex.exec(key)[2]]: value }), {});\nexports.getSsoSessionData = getSsoSessionData;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.loadSsoSessionData = void 0;\nconst getConfigFilepath_1 = require(\"./getConfigFilepath\");\nconst getSsoSessionData_1 = require(\"./getSsoSessionData\");\nconst parseIni_1 = require(\"./parseIni\");\nconst slurpFile_1 = require(\"./slurpFile\");\nconst swallowError = () => ({});\nconst loadSsoSessionData = async (init = {}) => {\n var _a;\n return (0, slurpFile_1.slurpFile)((_a = init.configFilepath) !== null && _a !== void 0 ? _a : (0, getConfigFilepath_1.getConfigFilepath)())\n .then(parseIni_1.parseIni)\n .then(getSsoSessionData_1.getSsoSessionData)\n .catch(swallowError);\n};\nexports.loadSsoSessionData = loadSsoSessionData;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.parseKnownFiles = void 0;\nconst loadSharedConfigFiles_1 = require(\"./loadSharedConfigFiles\");\nconst parseKnownFiles = async (init) => {\n const parsedFiles = await (0, loadSharedConfigFiles_1.loadSharedConfigFiles)(init);\n return {\n ...parsedFiles.configFile,\n ...parsedFiles.credentialsFile,\n };\n};\nexports.parseKnownFiles = parseKnownFiles;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./getHomeDir\"), exports);\ntslib_1.__exportStar(require(\"./getProfileName\"), exports);\ntslib_1.__exportStar(require(\"./getSSOTokenFilepath\"), exports);\ntslib_1.__exportStar(require(\"./getSSOTokenFromFile\"), exports);\ntslib_1.__exportStar(require(\"./loadSharedConfigFiles\"), exports);\ntslib_1.__exportStar(require(\"./loadSsoSessionData\"), exports);\ntslib_1.__exportStar(require(\"./parseKnownFiles\"), exports);\ntslib_1.__exportStar(require(\"./types\"), exports);\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.httpRequest = void 0;\nconst property_provider_1 = require(\"@aws-sdk/property-provider\");\nconst buffer_1 = require(\"buffer\");\nconst http_1 = require(\"http\");\nfunction httpRequest(options) {\n return new Promise((resolve, reject) => {\n var _a;\n const req = (0, http_1.request)({\n method: \"GET\",\n ...options,\n hostname: (_a = options.hostname) === null || _a === void 0 ? void 0 : _a.replace(/^\\[(.+)\\]$/, \"$1\"),\n });\n req.on(\"error\", (err) => {\n reject(Object.assign(new property_provider_1.ProviderError(\"Unable to connect to instance metadata service\"), err));\n req.destroy();\n });\n req.on(\"timeout\", () => {\n reject(new property_provider_1.ProviderError(\"TimeoutError from instance metadata service\"));\n req.destroy();\n });\n req.on(\"response\", (res) => {\n const { statusCode = 400 } = res;\n if (statusCode < 200 || 300 <= statusCode) {\n reject(Object.assign(new property_provider_1.ProviderError(\"Error response received from instance metadata service\"), { statusCode }));\n req.destroy();\n }\n const chunks = [];\n res.on(\"data\", (chunk) => {\n chunks.push(chunk);\n });\n res.on(\"end\", () => {\n resolve(buffer_1.Buffer.concat(chunks));\n req.destroy();\n });\n });\n req.end();\n });\n}\nexports.httpRequest = httpRequest;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fromImdsCredentials = exports.isImdsCredentials = void 0;\nconst isImdsCredentials = (arg) => Boolean(arg) &&\n typeof arg === \"object\" &&\n typeof arg.AccessKeyId === \"string\" &&\n typeof arg.SecretAccessKey === \"string\" &&\n typeof arg.Token === \"string\" &&\n typeof arg.Expiration === \"string\";\nexports.isImdsCredentials = isImdsCredentials;\nconst fromImdsCredentials = (creds) => ({\n accessKeyId: creds.AccessKeyId,\n secretAccessKey: creds.SecretAccessKey,\n sessionToken: creds.Token,\n expiration: new Date(creds.Expiration),\n});\nexports.fromImdsCredentials = fromImdsCredentials;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.providerConfigFromInit = exports.DEFAULT_MAX_RETRIES = exports.DEFAULT_TIMEOUT = void 0;\nexports.DEFAULT_TIMEOUT = 1000;\nexports.DEFAULT_MAX_RETRIES = 0;\nconst providerConfigFromInit = ({ maxRetries = exports.DEFAULT_MAX_RETRIES, timeout = exports.DEFAULT_TIMEOUT, }) => ({ maxRetries, timeout });\nexports.providerConfigFromInit = providerConfigFromInit;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.retry = void 0;\nconst retry = (toRetry, maxRetries) => {\n let promise = toRetry();\n for (let i = 0; i < maxRetries; i++) {\n promise = promise.catch(toRetry);\n }\n return promise;\n};\nexports.retry = retry;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fromContainerMetadata = exports.ENV_CMDS_AUTH_TOKEN = exports.ENV_CMDS_RELATIVE_URI = exports.ENV_CMDS_FULL_URI = void 0;\nconst property_provider_1 = require(\"@aws-sdk/property-provider\");\nconst url_1 = require(\"url\");\nconst httpRequest_1 = require(\"./remoteProvider/httpRequest\");\nconst ImdsCredentials_1 = require(\"./remoteProvider/ImdsCredentials\");\nconst RemoteProviderInit_1 = require(\"./remoteProvider/RemoteProviderInit\");\nconst retry_1 = require(\"./remoteProvider/retry\");\nexports.ENV_CMDS_FULL_URI = \"AWS_CONTAINER_CREDENTIALS_FULL_URI\";\nexports.ENV_CMDS_RELATIVE_URI = \"AWS_CONTAINER_CREDENTIALS_RELATIVE_URI\";\nexports.ENV_CMDS_AUTH_TOKEN = \"AWS_CONTAINER_AUTHORIZATION_TOKEN\";\nconst fromContainerMetadata = (init = {}) => {\n const { timeout, maxRetries } = (0, RemoteProviderInit_1.providerConfigFromInit)(init);\n return () => (0, retry_1.retry)(async () => {\n const requestOptions = await getCmdsUri();\n const credsResponse = JSON.parse(await requestFromEcsImds(timeout, requestOptions));\n if (!(0, ImdsCredentials_1.isImdsCredentials)(credsResponse)) {\n throw new property_provider_1.CredentialsProviderError(\"Invalid response received from instance metadata service.\");\n }\n return (0, ImdsCredentials_1.fromImdsCredentials)(credsResponse);\n }, maxRetries);\n};\nexports.fromContainerMetadata = fromContainerMetadata;\nconst requestFromEcsImds = async (timeout, options) => {\n if (process.env[exports.ENV_CMDS_AUTH_TOKEN]) {\n options.headers = {\n ...options.headers,\n Authorization: process.env[exports.ENV_CMDS_AUTH_TOKEN],\n };\n }\n const buffer = await (0, httpRequest_1.httpRequest)({\n ...options,\n timeout,\n });\n return buffer.toString();\n};\nconst CMDS_IP = \"169.254.170.2\";\nconst GREENGRASS_HOSTS = {\n localhost: true,\n \"127.0.0.1\": true,\n};\nconst GREENGRASS_PROTOCOLS = {\n \"http:\": true,\n \"https:\": true,\n};\nconst getCmdsUri = async () => {\n if (process.env[exports.ENV_CMDS_RELATIVE_URI]) {\n return {\n hostname: CMDS_IP,\n path: process.env[exports.ENV_CMDS_RELATIVE_URI],\n };\n }\n if (process.env[exports.ENV_CMDS_FULL_URI]) {\n const parsed = (0, url_1.parse)(process.env[exports.ENV_CMDS_FULL_URI]);\n if (!parsed.hostname || !(parsed.hostname in GREENGRASS_HOSTS)) {\n throw new property_provider_1.CredentialsProviderError(`${parsed.hostname} is not a valid container metadata service hostname`, false);\n }\n if (!parsed.protocol || !(parsed.protocol in GREENGRASS_PROTOCOLS)) {\n throw new property_provider_1.CredentialsProviderError(`${parsed.protocol} is not a valid container metadata service protocol`, false);\n }\n return {\n ...parsed,\n port: parsed.port ? parseInt(parsed.port, 10) : undefined,\n };\n }\n throw new property_provider_1.CredentialsProviderError(\"The container metadata credential provider cannot be used unless\" +\n ` the ${exports.ENV_CMDS_RELATIVE_URI} or ${exports.ENV_CMDS_FULL_URI} environment` +\n \" variable is set\", false);\n};\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fromEnv = void 0;\nconst property_provider_1 = require(\"@aws-sdk/property-provider\");\nconst fromEnv = (envVarSelector) => async () => {\n try {\n const config = envVarSelector(process.env);\n if (config === undefined) {\n throw new Error();\n }\n return config;\n }\n catch (e) {\n throw new property_provider_1.CredentialsProviderError(e.message || `Cannot load config from environment variables with getter: ${envVarSelector}`);\n }\n};\nexports.fromEnv = fromEnv;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fromSharedConfigFiles = void 0;\nconst property_provider_1 = require(\"@aws-sdk/property-provider\");\nconst shared_ini_file_loader_1 = require(\"@aws-sdk/shared-ini-file-loader\");\nconst fromSharedConfigFiles = (configSelector, { preferredFile = \"config\", ...init } = {}) => async () => {\n const profile = (0, shared_ini_file_loader_1.getProfileName)(init);\n const { configFile, credentialsFile } = await (0, shared_ini_file_loader_1.loadSharedConfigFiles)(init);\n const profileFromCredentials = credentialsFile[profile] || {};\n const profileFromConfig = configFile[profile] || {};\n const mergedProfile = preferredFile === \"config\"\n ? { ...profileFromCredentials, ...profileFromConfig }\n : { ...profileFromConfig, ...profileFromCredentials };\n try {\n const configValue = configSelector(mergedProfile);\n if (configValue === undefined) {\n throw new Error();\n }\n return configValue;\n }\n catch (e) {\n throw new property_provider_1.CredentialsProviderError(e.message ||\n `Cannot load config for profile ${profile} in SDK configuration files with getter: ${configSelector}`);\n }\n};\nexports.fromSharedConfigFiles = fromSharedConfigFiles;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fromStatic = void 0;\nconst property_provider_1 = require(\"@aws-sdk/property-provider\");\nconst isFunction = (func) => typeof func === \"function\";\nconst fromStatic = (defaultValue) => isFunction(defaultValue) ? async () => await defaultValue() : (0, property_provider_1.fromStatic)(defaultValue);\nexports.fromStatic = fromStatic;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.loadConfig = void 0;\nconst property_provider_1 = require(\"@aws-sdk/property-provider\");\nconst fromEnv_1 = require(\"./fromEnv\");\nconst fromSharedConfigFiles_1 = require(\"./fromSharedConfigFiles\");\nconst fromStatic_1 = require(\"./fromStatic\");\nconst loadConfig = ({ environmentVariableSelector, configFileSelector, default: defaultValue }, configuration = {}) => (0, property_provider_1.memoize)((0, property_provider_1.chain)((0, fromEnv_1.fromEnv)(environmentVariableSelector), (0, fromSharedConfigFiles_1.fromSharedConfigFiles)(configFileSelector, configuration), (0, fromStatic_1.fromStatic)(defaultValue)));\nexports.loadConfig = loadConfig;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./configLoader\"), exports);\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Endpoint = void 0;\nvar Endpoint;\n(function (Endpoint) {\n Endpoint[\"IPv4\"] = \"http://169.254.169.254\";\n Endpoint[\"IPv6\"] = \"http://[fd00:ec2::254]\";\n})(Endpoint = exports.Endpoint || (exports.Endpoint = {}));\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ENDPOINT_CONFIG_OPTIONS = exports.CONFIG_ENDPOINT_NAME = exports.ENV_ENDPOINT_NAME = void 0;\nexports.ENV_ENDPOINT_NAME = \"AWS_EC2_METADATA_SERVICE_ENDPOINT\";\nexports.CONFIG_ENDPOINT_NAME = \"ec2_metadata_service_endpoint\";\nexports.ENDPOINT_CONFIG_OPTIONS = {\n environmentVariableSelector: (env) => env[exports.ENV_ENDPOINT_NAME],\n configFileSelector: (profile) => profile[exports.CONFIG_ENDPOINT_NAME],\n default: undefined,\n};\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EndpointMode = void 0;\nvar EndpointMode;\n(function (EndpointMode) {\n EndpointMode[\"IPv4\"] = \"IPv4\";\n EndpointMode[\"IPv6\"] = \"IPv6\";\n})(EndpointMode = exports.EndpointMode || (exports.EndpointMode = {}));\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ENDPOINT_MODE_CONFIG_OPTIONS = exports.CONFIG_ENDPOINT_MODE_NAME = exports.ENV_ENDPOINT_MODE_NAME = void 0;\nconst EndpointMode_1 = require(\"./EndpointMode\");\nexports.ENV_ENDPOINT_MODE_NAME = \"AWS_EC2_METADATA_SERVICE_ENDPOINT_MODE\";\nexports.CONFIG_ENDPOINT_MODE_NAME = \"ec2_metadata_service_endpoint_mode\";\nexports.ENDPOINT_MODE_CONFIG_OPTIONS = {\n environmentVariableSelector: (env) => env[exports.ENV_ENDPOINT_MODE_NAME],\n configFileSelector: (profile) => profile[exports.CONFIG_ENDPOINT_MODE_NAME],\n default: EndpointMode_1.EndpointMode.IPv4,\n};\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getInstanceMetadataEndpoint = void 0;\nconst node_config_provider_1 = require(\"@aws-sdk/node-config-provider\");\nconst url_parser_1 = require(\"@aws-sdk/url-parser\");\nconst Endpoint_1 = require(\"../config/Endpoint\");\nconst EndpointConfigOptions_1 = require(\"../config/EndpointConfigOptions\");\nconst EndpointMode_1 = require(\"../config/EndpointMode\");\nconst EndpointModeConfigOptions_1 = require(\"../config/EndpointModeConfigOptions\");\nconst getInstanceMetadataEndpoint = async () => (0, url_parser_1.parseUrl)((await getFromEndpointConfig()) || (await getFromEndpointModeConfig()));\nexports.getInstanceMetadataEndpoint = getInstanceMetadataEndpoint;\nconst getFromEndpointConfig = async () => (0, node_config_provider_1.loadConfig)(EndpointConfigOptions_1.ENDPOINT_CONFIG_OPTIONS)();\nconst getFromEndpointModeConfig = async () => {\n const endpointMode = await (0, node_config_provider_1.loadConfig)(EndpointModeConfigOptions_1.ENDPOINT_MODE_CONFIG_OPTIONS)();\n switch (endpointMode) {\n case EndpointMode_1.EndpointMode.IPv4:\n return Endpoint_1.Endpoint.IPv4;\n case EndpointMode_1.EndpointMode.IPv6:\n return Endpoint_1.Endpoint.IPv6;\n default:\n throw new Error(`Unsupported endpoint mode: ${endpointMode}.` + ` Select from ${Object.values(EndpointMode_1.EndpointMode)}`);\n }\n};\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getExtendedInstanceMetadataCredentials = void 0;\nconst STATIC_STABILITY_REFRESH_INTERVAL_SECONDS = 5 * 60;\nconst STATIC_STABILITY_REFRESH_INTERVAL_JITTER_WINDOW_SECONDS = 5 * 60;\nconst STATIC_STABILITY_DOC_URL = \"https://docs.aws.amazon.com/sdkref/latest/guide/feature-static-credentials.html\";\nconst getExtendedInstanceMetadataCredentials = (credentials, logger) => {\n var _a;\n const refreshInterval = STATIC_STABILITY_REFRESH_INTERVAL_SECONDS +\n Math.floor(Math.random() * STATIC_STABILITY_REFRESH_INTERVAL_JITTER_WINDOW_SECONDS);\n const newExpiration = new Date(Date.now() + refreshInterval * 1000);\n logger.warn(\"Attempting credential expiration extension due to a credential service availability issue. A refresh of these \" +\n \"credentials will be attempted after ${new Date(newExpiration)}.\\nFor more information, please visit: \" +\n STATIC_STABILITY_DOC_URL);\n const originalExpiration = (_a = credentials.originalExpiration) !== null && _a !== void 0 ? _a : credentials.expiration;\n return {\n ...credentials,\n ...(originalExpiration ? { originalExpiration } : {}),\n expiration: newExpiration,\n };\n};\nexports.getExtendedInstanceMetadataCredentials = getExtendedInstanceMetadataCredentials;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.staticStabilityProvider = void 0;\nconst getExtendedInstanceMetadataCredentials_1 = require(\"./getExtendedInstanceMetadataCredentials\");\nconst staticStabilityProvider = (provider, options = {}) => {\n const logger = (options === null || options === void 0 ? void 0 : options.logger) || console;\n let pastCredentials;\n return async () => {\n let credentials;\n try {\n credentials = await provider();\n if (credentials.expiration && credentials.expiration.getTime() < Date.now()) {\n credentials = (0, getExtendedInstanceMetadataCredentials_1.getExtendedInstanceMetadataCredentials)(credentials, logger);\n }\n }\n catch (e) {\n if (pastCredentials) {\n logger.warn(\"Credential renew failed: \", e);\n credentials = (0, getExtendedInstanceMetadataCredentials_1.getExtendedInstanceMetadataCredentials)(pastCredentials, logger);\n }\n else {\n throw e;\n }\n }\n pastCredentials = credentials;\n return credentials;\n };\n};\nexports.staticStabilityProvider = staticStabilityProvider;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fromInstanceMetadata = void 0;\nconst property_provider_1 = require(\"@aws-sdk/property-provider\");\nconst httpRequest_1 = require(\"./remoteProvider/httpRequest\");\nconst ImdsCredentials_1 = require(\"./remoteProvider/ImdsCredentials\");\nconst RemoteProviderInit_1 = require(\"./remoteProvider/RemoteProviderInit\");\nconst retry_1 = require(\"./remoteProvider/retry\");\nconst getInstanceMetadataEndpoint_1 = require(\"./utils/getInstanceMetadataEndpoint\");\nconst staticStabilityProvider_1 = require(\"./utils/staticStabilityProvider\");\nconst IMDS_PATH = \"/latest/meta-data/iam/security-credentials/\";\nconst IMDS_TOKEN_PATH = \"/latest/api/token\";\nconst fromInstanceMetadata = (init = {}) => (0, staticStabilityProvider_1.staticStabilityProvider)(getInstanceImdsProvider(init), { logger: init.logger });\nexports.fromInstanceMetadata = fromInstanceMetadata;\nconst getInstanceImdsProvider = (init) => {\n let disableFetchToken = false;\n const { timeout, maxRetries } = (0, RemoteProviderInit_1.providerConfigFromInit)(init);\n const getCredentials = async (maxRetries, options) => {\n const profile = (await (0, retry_1.retry)(async () => {\n let profile;\n try {\n profile = await getProfile(options);\n }\n catch (err) {\n if (err.statusCode === 401) {\n disableFetchToken = false;\n }\n throw err;\n }\n return profile;\n }, maxRetries)).trim();\n return (0, retry_1.retry)(async () => {\n let creds;\n try {\n creds = await getCredentialsFromProfile(profile, options);\n }\n catch (err) {\n if (err.statusCode === 401) {\n disableFetchToken = false;\n }\n throw err;\n }\n return creds;\n }, maxRetries);\n };\n return async () => {\n const endpoint = await (0, getInstanceMetadataEndpoint_1.getInstanceMetadataEndpoint)();\n if (disableFetchToken) {\n return getCredentials(maxRetries, { ...endpoint, timeout });\n }\n else {\n let token;\n try {\n token = (await getMetadataToken({ ...endpoint, timeout })).toString();\n }\n catch (error) {\n if ((error === null || error === void 0 ? void 0 : error.statusCode) === 400) {\n throw Object.assign(error, {\n message: \"EC2 Metadata token request returned error\",\n });\n }\n else if (error.message === \"TimeoutError\" || [403, 404, 405].includes(error.statusCode)) {\n disableFetchToken = true;\n }\n return getCredentials(maxRetries, { ...endpoint, timeout });\n }\n return getCredentials(maxRetries, {\n ...endpoint,\n headers: {\n \"x-aws-ec2-metadata-token\": token,\n },\n timeout,\n });\n }\n };\n};\nconst getMetadataToken = async (options) => (0, httpRequest_1.httpRequest)({\n ...options,\n path: IMDS_TOKEN_PATH,\n method: \"PUT\",\n headers: {\n \"x-aws-ec2-metadata-token-ttl-seconds\": \"21600\",\n },\n});\nconst getProfile = async (options) => (await (0, httpRequest_1.httpRequest)({ ...options, path: IMDS_PATH })).toString();\nconst getCredentialsFromProfile = async (profile, options) => {\n const credsResponse = JSON.parse((await (0, httpRequest_1.httpRequest)({\n ...options,\n path: IMDS_PATH + profile,\n })).toString());\n if (!(0, ImdsCredentials_1.isImdsCredentials)(credsResponse)) {\n throw new property_provider_1.CredentialsProviderError(\"Invalid response received from instance metadata service.\");\n }\n return (0, ImdsCredentials_1.fromImdsCredentials)(credsResponse);\n};\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getInstanceMetadataEndpoint = exports.httpRequest = void 0;\nconst tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./fromContainerMetadata\"), exports);\ntslib_1.__exportStar(require(\"./fromInstanceMetadata\"), exports);\ntslib_1.__exportStar(require(\"./remoteProvider/RemoteProviderInit\"), exports);\ntslib_1.__exportStar(require(\"./types\"), exports);\nvar httpRequest_1 = require(\"./remoteProvider/httpRequest\");\nObject.defineProperty(exports, \"httpRequest\", { enumerable: true, get: function () { return httpRequest_1.httpRequest; } });\nvar getInstanceMetadataEndpoint_1 = require(\"./utils/getInstanceMetadataEndpoint\");\nObject.defineProperty(exports, \"getInstanceMetadataEndpoint\", { enumerable: true, get: function () { return getInstanceMetadataEndpoint_1.getInstanceMetadataEndpoint; } });\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.resolveCredentialSource = void 0;\nconst credential_provider_env_1 = require(\"@aws-sdk/credential-provider-env\");\nconst credential_provider_imds_1 = require(\"@aws-sdk/credential-provider-imds\");\nconst property_provider_1 = require(\"@aws-sdk/property-provider\");\nconst resolveCredentialSource = (credentialSource, profileName) => {\n const sourceProvidersMap = {\n EcsContainer: credential_provider_imds_1.fromContainerMetadata,\n Ec2InstanceMetadata: credential_provider_imds_1.fromInstanceMetadata,\n Environment: credential_provider_env_1.fromEnv,\n };\n if (credentialSource in sourceProvidersMap) {\n return sourceProvidersMap[credentialSource]();\n }\n else {\n throw new property_provider_1.CredentialsProviderError(`Unsupported credential source in profile ${profileName}. Got ${credentialSource}, ` +\n `expected EcsContainer or Ec2InstanceMetadata or Environment.`);\n }\n};\nexports.resolveCredentialSource = resolveCredentialSource;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.resolveAssumeRoleCredentials = exports.isAssumeRoleProfile = void 0;\nconst property_provider_1 = require(\"@aws-sdk/property-provider\");\nconst shared_ini_file_loader_1 = require(\"@aws-sdk/shared-ini-file-loader\");\nconst resolveCredentialSource_1 = require(\"./resolveCredentialSource\");\nconst resolveProfileData_1 = require(\"./resolveProfileData\");\nconst isAssumeRoleProfile = (arg) => Boolean(arg) &&\n typeof arg === \"object\" &&\n typeof arg.role_arn === \"string\" &&\n [\"undefined\", \"string\"].indexOf(typeof arg.role_session_name) > -1 &&\n [\"undefined\", \"string\"].indexOf(typeof arg.external_id) > -1 &&\n [\"undefined\", \"string\"].indexOf(typeof arg.mfa_serial) > -1 &&\n (isAssumeRoleWithSourceProfile(arg) || isAssumeRoleWithProviderProfile(arg));\nexports.isAssumeRoleProfile = isAssumeRoleProfile;\nconst isAssumeRoleWithSourceProfile = (arg) => typeof arg.source_profile === \"string\" && typeof arg.credential_source === \"undefined\";\nconst isAssumeRoleWithProviderProfile = (arg) => typeof arg.credential_source === \"string\" && typeof arg.source_profile === \"undefined\";\nconst resolveAssumeRoleCredentials = async (profileName, profiles, options, visitedProfiles = {}) => {\n const data = profiles[profileName];\n if (!options.roleAssumer) {\n throw new property_provider_1.CredentialsProviderError(`Profile ${profileName} requires a role to be assumed, but no role assumption callback was provided.`, false);\n }\n const { source_profile } = data;\n if (source_profile && source_profile in visitedProfiles) {\n throw new property_provider_1.CredentialsProviderError(`Detected a cycle attempting to resolve credentials for profile` +\n ` ${(0, shared_ini_file_loader_1.getProfileName)(options)}. Profiles visited: ` +\n Object.keys(visitedProfiles).join(\", \"), false);\n }\n const sourceCredsProvider = source_profile\n ? (0, resolveProfileData_1.resolveProfileData)(source_profile, profiles, options, {\n ...visitedProfiles,\n [source_profile]: true,\n })\n : (0, resolveCredentialSource_1.resolveCredentialSource)(data.credential_source, profileName)();\n const params = {\n RoleArn: data.role_arn,\n RoleSessionName: data.role_session_name || `aws-sdk-js-${Date.now()}`,\n ExternalId: data.external_id,\n };\n const { mfa_serial } = data;\n if (mfa_serial) {\n if (!options.mfaCodeProvider) {\n throw new property_provider_1.CredentialsProviderError(`Profile ${profileName} requires multi-factor authentication, but no MFA code callback was provided.`, false);\n }\n params.SerialNumber = mfa_serial;\n params.TokenCode = await options.mfaCodeProvider(mfa_serial);\n }\n const sourceCreds = await sourceCredsProvider;\n return options.roleAssumer(sourceCreds, params);\n};\nexports.resolveAssumeRoleCredentials = resolveAssumeRoleCredentials;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getValidatedProcessCredentials = void 0;\nconst getValidatedProcessCredentials = (profileName, data) => {\n if (data.Version !== 1) {\n throw Error(`Profile ${profileName} credential_process did not return Version 1.`);\n }\n if (data.AccessKeyId === undefined || data.SecretAccessKey === undefined) {\n throw Error(`Profile ${profileName} credential_process returned invalid credentials.`);\n }\n if (data.Expiration) {\n const currentTime = new Date();\n const expireTime = new Date(data.Expiration);\n if (expireTime < currentTime) {\n throw Error(`Profile ${profileName} credential_process returned expired credentials.`);\n }\n }\n return {\n accessKeyId: data.AccessKeyId,\n secretAccessKey: data.SecretAccessKey,\n ...(data.SessionToken && { sessionToken: data.SessionToken }),\n ...(data.Expiration && { expiration: new Date(data.Expiration) }),\n };\n};\nexports.getValidatedProcessCredentials = getValidatedProcessCredentials;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.resolveProcessCredentials = void 0;\nconst property_provider_1 = require(\"@aws-sdk/property-provider\");\nconst child_process_1 = require(\"child_process\");\nconst util_1 = require(\"util\");\nconst getValidatedProcessCredentials_1 = require(\"./getValidatedProcessCredentials\");\nconst resolveProcessCredentials = async (profileName, profiles) => {\n const profile = profiles[profileName];\n if (profiles[profileName]) {\n const credentialProcess = profile[\"credential_process\"];\n if (credentialProcess !== undefined) {\n const execPromise = (0, util_1.promisify)(child_process_1.exec);\n try {\n const { stdout } = await execPromise(credentialProcess);\n let data;\n try {\n data = JSON.parse(stdout.trim());\n }\n catch (_a) {\n throw Error(`Profile ${profileName} credential_process returned invalid JSON.`);\n }\n return (0, getValidatedProcessCredentials_1.getValidatedProcessCredentials)(profileName, data);\n }\n catch (error) {\n throw new property_provider_1.CredentialsProviderError(error.message);\n }\n }\n else {\n throw new property_provider_1.CredentialsProviderError(`Profile ${profileName} did not contain credential_process.`);\n }\n }\n else {\n throw new property_provider_1.CredentialsProviderError(`Profile ${profileName} could not be found in shared credentials file.`);\n }\n};\nexports.resolveProcessCredentials = resolveProcessCredentials;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fromProcess = void 0;\nconst shared_ini_file_loader_1 = require(\"@aws-sdk/shared-ini-file-loader\");\nconst resolveProcessCredentials_1 = require(\"./resolveProcessCredentials\");\nconst fromProcess = (init = {}) => async () => {\n const profiles = await (0, shared_ini_file_loader_1.parseKnownFiles)(init);\n return (0, resolveProcessCredentials_1.resolveProcessCredentials)((0, shared_ini_file_loader_1.getProfileName)(init), profiles);\n};\nexports.fromProcess = fromProcess;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./fromProcess\"), exports);\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.resolveProcessCredentials = exports.isProcessProfile = void 0;\nconst credential_provider_process_1 = require(\"@aws-sdk/credential-provider-process\");\nconst isProcessProfile = (arg) => Boolean(arg) &&\n typeof arg === \"object\" &&\n typeof arg.credential_process === \"string\";\nexports.isProcessProfile = isProcessProfile;\nconst resolveProcessCredentials = async (options, profile) => (0, credential_provider_process_1.fromProcess)({\n ...options,\n profile,\n})();\nexports.resolveProcessCredentials = resolveProcessCredentials;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isSsoProfile = void 0;\nconst isSsoProfile = (arg) => arg &&\n (typeof arg.sso_start_url === \"string\" ||\n typeof arg.sso_account_id === \"string\" ||\n typeof arg.sso_session === \"string\" ||\n typeof arg.sso_region === \"string\" ||\n typeof arg.sso_role_name === \"string\");\nexports.isSsoProfile = isSsoProfile;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SSOServiceException = void 0;\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nclass SSOServiceException extends smithy_client_1.ServiceException {\n constructor(options) {\n super(options);\n Object.setPrototypeOf(this, SSOServiceException.prototype);\n }\n}\nexports.SSOServiceException = SSOServiceException;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.LogoutRequestFilterSensitiveLog = exports.ListAccountsResponseFilterSensitiveLog = exports.ListAccountsRequestFilterSensitiveLog = exports.ListAccountRolesResponseFilterSensitiveLog = exports.RoleInfoFilterSensitiveLog = exports.ListAccountRolesRequestFilterSensitiveLog = exports.GetRoleCredentialsResponseFilterSensitiveLog = exports.RoleCredentialsFilterSensitiveLog = exports.GetRoleCredentialsRequestFilterSensitiveLog = exports.AccountInfoFilterSensitiveLog = exports.UnauthorizedException = exports.TooManyRequestsException = exports.ResourceNotFoundException = exports.InvalidRequestException = void 0;\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst SSOServiceException_1 = require(\"./SSOServiceException\");\nclass InvalidRequestException extends SSOServiceException_1.SSOServiceException {\n constructor(opts) {\n super({\n name: \"InvalidRequestException\",\n $fault: \"client\",\n ...opts,\n });\n this.name = \"InvalidRequestException\";\n this.$fault = \"client\";\n Object.setPrototypeOf(this, InvalidRequestException.prototype);\n }\n}\nexports.InvalidRequestException = InvalidRequestException;\nclass ResourceNotFoundException extends SSOServiceException_1.SSOServiceException {\n constructor(opts) {\n super({\n name: \"ResourceNotFoundException\",\n $fault: \"client\",\n ...opts,\n });\n this.name = \"ResourceNotFoundException\";\n this.$fault = \"client\";\n Object.setPrototypeOf(this, ResourceNotFoundException.prototype);\n }\n}\nexports.ResourceNotFoundException = ResourceNotFoundException;\nclass TooManyRequestsException extends SSOServiceException_1.SSOServiceException {\n constructor(opts) {\n super({\n name: \"TooManyRequestsException\",\n $fault: \"client\",\n ...opts,\n });\n this.name = \"TooManyRequestsException\";\n this.$fault = \"client\";\n Object.setPrototypeOf(this, TooManyRequestsException.prototype);\n }\n}\nexports.TooManyRequestsException = TooManyRequestsException;\nclass UnauthorizedException extends SSOServiceException_1.SSOServiceException {\n constructor(opts) {\n super({\n name: \"UnauthorizedException\",\n $fault: \"client\",\n ...opts,\n });\n this.name = \"UnauthorizedException\";\n this.$fault = \"client\";\n Object.setPrototypeOf(this, UnauthorizedException.prototype);\n }\n}\nexports.UnauthorizedException = UnauthorizedException;\nconst AccountInfoFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.AccountInfoFilterSensitiveLog = AccountInfoFilterSensitiveLog;\nconst GetRoleCredentialsRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.accessToken && { accessToken: smithy_client_1.SENSITIVE_STRING }),\n});\nexports.GetRoleCredentialsRequestFilterSensitiveLog = GetRoleCredentialsRequestFilterSensitiveLog;\nconst RoleCredentialsFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.secretAccessKey && { secretAccessKey: smithy_client_1.SENSITIVE_STRING }),\n ...(obj.sessionToken && { sessionToken: smithy_client_1.SENSITIVE_STRING }),\n});\nexports.RoleCredentialsFilterSensitiveLog = RoleCredentialsFilterSensitiveLog;\nconst GetRoleCredentialsResponseFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.roleCredentials && { roleCredentials: (0, exports.RoleCredentialsFilterSensitiveLog)(obj.roleCredentials) }),\n});\nexports.GetRoleCredentialsResponseFilterSensitiveLog = GetRoleCredentialsResponseFilterSensitiveLog;\nconst ListAccountRolesRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.accessToken && { accessToken: smithy_client_1.SENSITIVE_STRING }),\n});\nexports.ListAccountRolesRequestFilterSensitiveLog = ListAccountRolesRequestFilterSensitiveLog;\nconst RoleInfoFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.RoleInfoFilterSensitiveLog = RoleInfoFilterSensitiveLog;\nconst ListAccountRolesResponseFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.ListAccountRolesResponseFilterSensitiveLog = ListAccountRolesResponseFilterSensitiveLog;\nconst ListAccountsRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.accessToken && { accessToken: smithy_client_1.SENSITIVE_STRING }),\n});\nexports.ListAccountsRequestFilterSensitiveLog = ListAccountsRequestFilterSensitiveLog;\nconst ListAccountsResponseFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.ListAccountsResponseFilterSensitiveLog = ListAccountsResponseFilterSensitiveLog;\nconst LogoutRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.accessToken && { accessToken: smithy_client_1.SENSITIVE_STRING }),\n});\nexports.LogoutRequestFilterSensitiveLog = LogoutRequestFilterSensitiveLog;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.deserializeAws_restJson1LogoutCommand = exports.deserializeAws_restJson1ListAccountsCommand = exports.deserializeAws_restJson1ListAccountRolesCommand = exports.deserializeAws_restJson1GetRoleCredentialsCommand = exports.serializeAws_restJson1LogoutCommand = exports.serializeAws_restJson1ListAccountsCommand = exports.serializeAws_restJson1ListAccountRolesCommand = exports.serializeAws_restJson1GetRoleCredentialsCommand = void 0;\nconst protocol_http_1 = require(\"@aws-sdk/protocol-http\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst SSOServiceException_1 = require(\"../models/SSOServiceException\");\nconst serializeAws_restJson1GetRoleCredentialsCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"x-amz-sso_bearer_token\": input.accessToken,\n });\n const resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/federation/credentials\";\n const query = map({\n role_name: [, (0, smithy_client_1.expectNonNull)(input.roleName, `roleName`)],\n account_id: [, (0, smithy_client_1.expectNonNull)(input.accountId, `accountId`)],\n });\n let body;\n return new protocol_http_1.HttpRequest({\n protocol,\n hostname,\n port,\n method: \"GET\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexports.serializeAws_restJson1GetRoleCredentialsCommand = serializeAws_restJson1GetRoleCredentialsCommand;\nconst serializeAws_restJson1ListAccountRolesCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"x-amz-sso_bearer_token\": input.accessToken,\n });\n const resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/assignment/roles\";\n const query = map({\n next_token: [, input.nextToken],\n max_result: [() => input.maxResults !== void 0, () => input.maxResults.toString()],\n account_id: [, (0, smithy_client_1.expectNonNull)(input.accountId, `accountId`)],\n });\n let body;\n return new protocol_http_1.HttpRequest({\n protocol,\n hostname,\n port,\n method: \"GET\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexports.serializeAws_restJson1ListAccountRolesCommand = serializeAws_restJson1ListAccountRolesCommand;\nconst serializeAws_restJson1ListAccountsCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"x-amz-sso_bearer_token\": input.accessToken,\n });\n const resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/assignment/accounts\";\n const query = map({\n next_token: [, input.nextToken],\n max_result: [() => input.maxResults !== void 0, () => input.maxResults.toString()],\n });\n let body;\n return new protocol_http_1.HttpRequest({\n protocol,\n hostname,\n port,\n method: \"GET\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexports.serializeAws_restJson1ListAccountsCommand = serializeAws_restJson1ListAccountsCommand;\nconst serializeAws_restJson1LogoutCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"x-amz-sso_bearer_token\": input.accessToken,\n });\n const resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/logout\";\n let body;\n return new protocol_http_1.HttpRequest({\n protocol,\n hostname,\n port,\n method: \"POST\",\n headers,\n path: resolvedPath,\n body,\n });\n};\nexports.serializeAws_restJson1LogoutCommand = serializeAws_restJson1LogoutCommand;\nconst deserializeAws_restJson1GetRoleCredentialsCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return deserializeAws_restJson1GetRoleCredentialsCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n });\n const data = (0, smithy_client_1.expectNonNull)((0, smithy_client_1.expectObject)(await parseBody(output.body, context)), \"body\");\n if (data.roleCredentials != null) {\n contents.roleCredentials = deserializeAws_restJson1RoleCredentials(data.roleCredentials, context);\n }\n return contents;\n};\nexports.deserializeAws_restJson1GetRoleCredentialsCommand = deserializeAws_restJson1GetRoleCredentialsCommand;\nconst deserializeAws_restJson1GetRoleCredentialsCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"InvalidRequestException\":\n case \"com.amazonaws.sso#InvalidRequestException\":\n throw await deserializeAws_restJson1InvalidRequestExceptionResponse(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.sso#ResourceNotFoundException\":\n throw await deserializeAws_restJson1ResourceNotFoundExceptionResponse(parsedOutput, context);\n case \"TooManyRequestsException\":\n case \"com.amazonaws.sso#TooManyRequestsException\":\n throw await deserializeAws_restJson1TooManyRequestsExceptionResponse(parsedOutput, context);\n case \"UnauthorizedException\":\n case \"com.amazonaws.sso#UnauthorizedException\":\n throw await deserializeAws_restJson1UnauthorizedExceptionResponse(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody,\n exceptionCtor: SSOServiceException_1.SSOServiceException,\n errorCode,\n });\n }\n};\nconst deserializeAws_restJson1ListAccountRolesCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return deserializeAws_restJson1ListAccountRolesCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n });\n const data = (0, smithy_client_1.expectNonNull)((0, smithy_client_1.expectObject)(await parseBody(output.body, context)), \"body\");\n if (data.nextToken != null) {\n contents.nextToken = (0, smithy_client_1.expectString)(data.nextToken);\n }\n if (data.roleList != null) {\n contents.roleList = deserializeAws_restJson1RoleListType(data.roleList, context);\n }\n return contents;\n};\nexports.deserializeAws_restJson1ListAccountRolesCommand = deserializeAws_restJson1ListAccountRolesCommand;\nconst deserializeAws_restJson1ListAccountRolesCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"InvalidRequestException\":\n case \"com.amazonaws.sso#InvalidRequestException\":\n throw await deserializeAws_restJson1InvalidRequestExceptionResponse(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.sso#ResourceNotFoundException\":\n throw await deserializeAws_restJson1ResourceNotFoundExceptionResponse(parsedOutput, context);\n case \"TooManyRequestsException\":\n case \"com.amazonaws.sso#TooManyRequestsException\":\n throw await deserializeAws_restJson1TooManyRequestsExceptionResponse(parsedOutput, context);\n case \"UnauthorizedException\":\n case \"com.amazonaws.sso#UnauthorizedException\":\n throw await deserializeAws_restJson1UnauthorizedExceptionResponse(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody,\n exceptionCtor: SSOServiceException_1.SSOServiceException,\n errorCode,\n });\n }\n};\nconst deserializeAws_restJson1ListAccountsCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return deserializeAws_restJson1ListAccountsCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n });\n const data = (0, smithy_client_1.expectNonNull)((0, smithy_client_1.expectObject)(await parseBody(output.body, context)), \"body\");\n if (data.accountList != null) {\n contents.accountList = deserializeAws_restJson1AccountListType(data.accountList, context);\n }\n if (data.nextToken != null) {\n contents.nextToken = (0, smithy_client_1.expectString)(data.nextToken);\n }\n return contents;\n};\nexports.deserializeAws_restJson1ListAccountsCommand = deserializeAws_restJson1ListAccountsCommand;\nconst deserializeAws_restJson1ListAccountsCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"InvalidRequestException\":\n case \"com.amazonaws.sso#InvalidRequestException\":\n throw await deserializeAws_restJson1InvalidRequestExceptionResponse(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.sso#ResourceNotFoundException\":\n throw await deserializeAws_restJson1ResourceNotFoundExceptionResponse(parsedOutput, context);\n case \"TooManyRequestsException\":\n case \"com.amazonaws.sso#TooManyRequestsException\":\n throw await deserializeAws_restJson1TooManyRequestsExceptionResponse(parsedOutput, context);\n case \"UnauthorizedException\":\n case \"com.amazonaws.sso#UnauthorizedException\":\n throw await deserializeAws_restJson1UnauthorizedExceptionResponse(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody,\n exceptionCtor: SSOServiceException_1.SSOServiceException,\n errorCode,\n });\n }\n};\nconst deserializeAws_restJson1LogoutCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return deserializeAws_restJson1LogoutCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n });\n await collectBody(output.body, context);\n return contents;\n};\nexports.deserializeAws_restJson1LogoutCommand = deserializeAws_restJson1LogoutCommand;\nconst deserializeAws_restJson1LogoutCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"InvalidRequestException\":\n case \"com.amazonaws.sso#InvalidRequestException\":\n throw await deserializeAws_restJson1InvalidRequestExceptionResponse(parsedOutput, context);\n case \"TooManyRequestsException\":\n case \"com.amazonaws.sso#TooManyRequestsException\":\n throw await deserializeAws_restJson1TooManyRequestsExceptionResponse(parsedOutput, context);\n case \"UnauthorizedException\":\n case \"com.amazonaws.sso#UnauthorizedException\":\n throw await deserializeAws_restJson1UnauthorizedExceptionResponse(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody,\n exceptionCtor: SSOServiceException_1.SSOServiceException,\n errorCode,\n });\n }\n};\nconst map = smithy_client_1.map;\nconst deserializeAws_restJson1InvalidRequestExceptionResponse = async (parsedOutput, context) => {\n const contents = map({});\n const data = parsedOutput.body;\n if (data.message != null) {\n contents.message = (0, smithy_client_1.expectString)(data.message);\n }\n const exception = new models_0_1.InvalidRequestException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents,\n });\n return (0, smithy_client_1.decorateServiceException)(exception, parsedOutput.body);\n};\nconst deserializeAws_restJson1ResourceNotFoundExceptionResponse = async (parsedOutput, context) => {\n const contents = map({});\n const data = parsedOutput.body;\n if (data.message != null) {\n contents.message = (0, smithy_client_1.expectString)(data.message);\n }\n const exception = new models_0_1.ResourceNotFoundException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents,\n });\n return (0, smithy_client_1.decorateServiceException)(exception, parsedOutput.body);\n};\nconst deserializeAws_restJson1TooManyRequestsExceptionResponse = async (parsedOutput, context) => {\n const contents = map({});\n const data = parsedOutput.body;\n if (data.message != null) {\n contents.message = (0, smithy_client_1.expectString)(data.message);\n }\n const exception = new models_0_1.TooManyRequestsException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents,\n });\n return (0, smithy_client_1.decorateServiceException)(exception, parsedOutput.body);\n};\nconst deserializeAws_restJson1UnauthorizedExceptionResponse = async (parsedOutput, context) => {\n const contents = map({});\n const data = parsedOutput.body;\n if (data.message != null) {\n contents.message = (0, smithy_client_1.expectString)(data.message);\n }\n const exception = new models_0_1.UnauthorizedException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents,\n });\n return (0, smithy_client_1.decorateServiceException)(exception, parsedOutput.body);\n};\nconst deserializeAws_restJson1AccountInfo = (output, context) => {\n return {\n accountId: (0, smithy_client_1.expectString)(output.accountId),\n accountName: (0, smithy_client_1.expectString)(output.accountName),\n emailAddress: (0, smithy_client_1.expectString)(output.emailAddress),\n };\n};\nconst deserializeAws_restJson1AccountListType = (output, context) => {\n const retVal = (output || [])\n .filter((e) => e != null)\n .map((entry) => {\n if (entry === null) {\n return null;\n }\n return deserializeAws_restJson1AccountInfo(entry, context);\n });\n return retVal;\n};\nconst deserializeAws_restJson1RoleCredentials = (output, context) => {\n return {\n accessKeyId: (0, smithy_client_1.expectString)(output.accessKeyId),\n expiration: (0, smithy_client_1.expectLong)(output.expiration),\n secretAccessKey: (0, smithy_client_1.expectString)(output.secretAccessKey),\n sessionToken: (0, smithy_client_1.expectString)(output.sessionToken),\n };\n};\nconst deserializeAws_restJson1RoleInfo = (output, context) => {\n return {\n accountId: (0, smithy_client_1.expectString)(output.accountId),\n roleName: (0, smithy_client_1.expectString)(output.roleName),\n };\n};\nconst deserializeAws_restJson1RoleListType = (output, context) => {\n const retVal = (output || [])\n .filter((e) => e != null)\n .map((entry) => {\n if (entry === null) {\n return null;\n }\n return deserializeAws_restJson1RoleInfo(entry, context);\n });\n return retVal;\n};\nconst deserializeMetadata = (output) => ({\n httpStatusCode: output.statusCode,\n requestId: output.headers[\"x-amzn-requestid\"] ?? output.headers[\"x-amzn-request-id\"] ?? output.headers[\"x-amz-request-id\"],\n extendedRequestId: output.headers[\"x-amz-id-2\"],\n cfId: output.headers[\"x-amz-cf-id\"],\n});\nconst collectBody = (streamBody = new Uint8Array(), context) => {\n if (streamBody instanceof Uint8Array) {\n return Promise.resolve(streamBody);\n }\n return context.streamCollector(streamBody) || Promise.resolve(new Uint8Array());\n};\nconst collectBodyString = (streamBody, context) => collectBody(streamBody, context).then((body) => context.utf8Encoder(body));\nconst isSerializableHeaderValue = (value) => value !== undefined &&\n value !== null &&\n value !== \"\" &&\n (!Object.getOwnPropertyNames(value).includes(\"length\") || value.length != 0) &&\n (!Object.getOwnPropertyNames(value).includes(\"size\") || value.size != 0);\nconst parseBody = (streamBody, context) => collectBodyString(streamBody, context).then((encoded) => {\n if (encoded.length) {\n return JSON.parse(encoded);\n }\n return {};\n});\nconst parseErrorBody = async (errorBody, context) => {\n const value = await parseBody(errorBody, context);\n value.message = value.message ?? value.Message;\n return value;\n};\nconst loadRestJsonErrorCode = (output, data) => {\n const findKey = (object, key) => Object.keys(object).find((k) => k.toLowerCase() === key.toLowerCase());\n const sanitizeErrorCode = (rawValue) => {\n let cleanValue = rawValue;\n if (typeof cleanValue === \"number\") {\n cleanValue = cleanValue.toString();\n }\n if (cleanValue.indexOf(\",\") >= 0) {\n cleanValue = cleanValue.split(\",\")[0];\n }\n if (cleanValue.indexOf(\":\") >= 0) {\n cleanValue = cleanValue.split(\":\")[0];\n }\n if (cleanValue.indexOf(\"#\") >= 0) {\n cleanValue = cleanValue.split(\"#\")[1];\n }\n return cleanValue;\n };\n const headerKey = findKey(output.headers, \"x-amzn-errortype\");\n if (headerKey !== undefined) {\n return sanitizeErrorCode(output.headers[headerKey]);\n }\n if (data.code !== undefined) {\n return sanitizeErrorCode(data.code);\n }\n if (data[\"__type\"] !== undefined) {\n return sanitizeErrorCode(data[\"__type\"]);\n }\n};\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.GetRoleCredentialsCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_restJson1_1 = require(\"../protocols/Aws_restJson1\");\nclass GetRoleCredentialsCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, GetRoleCredentialsCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"SSOClient\";\n const commandName = \"GetRoleCredentialsCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.GetRoleCredentialsRequestFilterSensitiveLog,\n outputFilterSensitiveLog: models_0_1.GetRoleCredentialsResponseFilterSensitiveLog,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_restJson1_1.serializeAws_restJson1GetRoleCredentialsCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_restJson1_1.deserializeAws_restJson1GetRoleCredentialsCommand)(output, context);\n }\n}\nexports.GetRoleCredentialsCommand = GetRoleCredentialsCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ListAccountRolesCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_restJson1_1 = require(\"../protocols/Aws_restJson1\");\nclass ListAccountRolesCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, ListAccountRolesCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"SSOClient\";\n const commandName = \"ListAccountRolesCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.ListAccountRolesRequestFilterSensitiveLog,\n outputFilterSensitiveLog: models_0_1.ListAccountRolesResponseFilterSensitiveLog,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_restJson1_1.serializeAws_restJson1ListAccountRolesCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_restJson1_1.deserializeAws_restJson1ListAccountRolesCommand)(output, context);\n }\n}\nexports.ListAccountRolesCommand = ListAccountRolesCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ListAccountsCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_restJson1_1 = require(\"../protocols/Aws_restJson1\");\nclass ListAccountsCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, ListAccountsCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"SSOClient\";\n const commandName = \"ListAccountsCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.ListAccountsRequestFilterSensitiveLog,\n outputFilterSensitiveLog: models_0_1.ListAccountsResponseFilterSensitiveLog,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_restJson1_1.serializeAws_restJson1ListAccountsCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_restJson1_1.deserializeAws_restJson1ListAccountsCommand)(output, context);\n }\n}\nexports.ListAccountsCommand = ListAccountsCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.LogoutCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_restJson1_1 = require(\"../protocols/Aws_restJson1\");\nclass LogoutCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, LogoutCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"SSOClient\";\n const commandName = \"LogoutCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.LogoutRequestFilterSensitiveLog,\n outputFilterSensitiveLog: (output) => output,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_restJson1_1.serializeAws_restJson1LogoutCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_restJson1_1.deserializeAws_restJson1LogoutCommand)(output, context);\n }\n}\nexports.LogoutCommand = LogoutCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.resolveClientEndpointParameters = void 0;\nconst resolveClientEndpointParameters = (options) => {\n return {\n ...options,\n useDualstackEndpoint: options.useDualstackEndpoint ?? false,\n useFipsEndpoint: options.useFipsEndpoint ?? false,\n defaultSigningName: \"awsssoportal\",\n };\n};\nexports.resolveClientEndpointParameters = resolveClientEndpointParameters;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Hash = void 0;\nconst util_buffer_from_1 = require(\"@aws-sdk/util-buffer-from\");\nconst util_utf8_1 = require(\"@aws-sdk/util-utf8\");\nconst buffer_1 = require(\"buffer\");\nconst crypto_1 = require(\"crypto\");\nclass Hash {\n constructor(algorithmIdentifier, secret) {\n this.algorithmIdentifier = algorithmIdentifier;\n this.secret = secret;\n this.reset();\n }\n update(toHash, encoding) {\n this.hash.update((0, util_utf8_1.toUint8Array)(castSourceData(toHash, encoding)));\n }\n digest() {\n return Promise.resolve(this.hash.digest());\n }\n reset() {\n this.hash = this.secret\n ? (0, crypto_1.createHmac)(this.algorithmIdentifier, castSourceData(this.secret))\n : (0, crypto_1.createHash)(this.algorithmIdentifier);\n }\n}\nexports.Hash = Hash;\nfunction castSourceData(toCast, encoding) {\n if (buffer_1.Buffer.isBuffer(toCast)) {\n return toCast;\n }\n if (typeof toCast === \"string\") {\n return (0, util_buffer_from_1.fromString)(toCast, encoding);\n }\n if (ArrayBuffer.isView(toCast)) {\n return (0, util_buffer_from_1.fromArrayBuffer)(toCast.buffer, toCast.byteOffset, toCast.byteLength);\n }\n return (0, util_buffer_from_1.fromArrayBuffer)(toCast);\n}\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.buildQueryString = void 0;\nconst util_uri_escape_1 = require(\"@aws-sdk/util-uri-escape\");\nfunction buildQueryString(query) {\n const parts = [];\n for (let key of Object.keys(query).sort()) {\n const value = query[key];\n key = (0, util_uri_escape_1.escapeUri)(key);\n if (Array.isArray(value)) {\n for (let i = 0, iLen = value.length; i < iLen; i++) {\n parts.push(`${key}=${(0, util_uri_escape_1.escapeUri)(value[i])}`);\n }\n }\n else {\n let qsEntry = key;\n if (value || typeof value === \"string\") {\n qsEntry += `=${(0, util_uri_escape_1.escapeUri)(value)}`;\n }\n parts.push(qsEntry);\n }\n }\n return parts.join(\"&\");\n}\nexports.buildQueryString = buildQueryString;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NODEJS_TIMEOUT_ERROR_CODES = void 0;\nexports.NODEJS_TIMEOUT_ERROR_CODES = [\"ECONNRESET\", \"EPIPE\", \"ETIMEDOUT\"];\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getTransformedHeaders = void 0;\nconst getTransformedHeaders = (headers) => {\n const transformedHeaders = {};\n for (const name of Object.keys(headers)) {\n const headerValues = headers[name];\n transformedHeaders[name] = Array.isArray(headerValues) ? headerValues.join(\",\") : headerValues;\n }\n return transformedHeaders;\n};\nexports.getTransformedHeaders = getTransformedHeaders;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.setConnectionTimeout = void 0;\nconst setConnectionTimeout = (request, reject, timeoutInMs = 0) => {\n if (!timeoutInMs) {\n return;\n }\n request.on(\"socket\", (socket) => {\n if (socket.connecting) {\n const timeoutId = setTimeout(() => {\n request.destroy();\n reject(Object.assign(new Error(`Socket timed out without establishing a connection within ${timeoutInMs} ms`), {\n name: \"TimeoutError\",\n }));\n }, timeoutInMs);\n socket.on(\"connect\", () => {\n clearTimeout(timeoutId);\n });\n }\n });\n};\nexports.setConnectionTimeout = setConnectionTimeout;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.setSocketTimeout = void 0;\nconst setSocketTimeout = (request, reject, timeoutInMs = 0) => {\n request.setTimeout(timeoutInMs, () => {\n request.destroy();\n reject(Object.assign(new Error(`Connection timed out after ${timeoutInMs} ms`), { name: \"TimeoutError\" }));\n });\n};\nexports.setSocketTimeout = setSocketTimeout;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.writeRequestBody = void 0;\nconst stream_1 = require(\"stream\");\nfunction writeRequestBody(httpRequest, request) {\n const expect = request.headers[\"Expect\"] || request.headers[\"expect\"];\n if (expect === \"100-continue\") {\n httpRequest.on(\"continue\", () => {\n writeBody(httpRequest, request.body);\n });\n }\n else {\n writeBody(httpRequest, request.body);\n }\n}\nexports.writeRequestBody = writeRequestBody;\nfunction writeBody(httpRequest, body) {\n if (body instanceof stream_1.Readable) {\n body.pipe(httpRequest);\n }\n else if (body) {\n httpRequest.end(Buffer.from(body));\n }\n else {\n httpRequest.end();\n }\n}\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NodeHttpHandler = void 0;\nconst protocol_http_1 = require(\"@aws-sdk/protocol-http\");\nconst querystring_builder_1 = require(\"@aws-sdk/querystring-builder\");\nconst http_1 = require(\"http\");\nconst https_1 = require(\"https\");\nconst constants_1 = require(\"./constants\");\nconst get_transformed_headers_1 = require(\"./get-transformed-headers\");\nconst set_connection_timeout_1 = require(\"./set-connection-timeout\");\nconst set_socket_timeout_1 = require(\"./set-socket-timeout\");\nconst write_request_body_1 = require(\"./write-request-body\");\nclass NodeHttpHandler {\n constructor(options) {\n this.metadata = { handlerProtocol: \"http/1.1\" };\n this.configProvider = new Promise((resolve, reject) => {\n if (typeof options === \"function\") {\n options()\n .then((_options) => {\n resolve(this.resolveDefaultConfig(_options));\n })\n .catch(reject);\n }\n else {\n resolve(this.resolveDefaultConfig(options));\n }\n });\n }\n resolveDefaultConfig(options) {\n const { connectionTimeout, socketTimeout, httpAgent, httpsAgent } = options || {};\n const keepAlive = true;\n const maxSockets = 50;\n return {\n connectionTimeout,\n socketTimeout,\n httpAgent: httpAgent || new http_1.Agent({ keepAlive, maxSockets }),\n httpsAgent: httpsAgent || new https_1.Agent({ keepAlive, maxSockets }),\n };\n }\n destroy() {\n var _a, _b, _c, _d;\n (_b = (_a = this.config) === null || _a === void 0 ? void 0 : _a.httpAgent) === null || _b === void 0 ? void 0 : _b.destroy();\n (_d = (_c = this.config) === null || _c === void 0 ? void 0 : _c.httpsAgent) === null || _d === void 0 ? void 0 : _d.destroy();\n }\n async handle(request, { abortSignal } = {}) {\n if (!this.config) {\n this.config = await this.configProvider;\n }\n return new Promise((resolve, reject) => {\n if (!this.config) {\n throw new Error(\"Node HTTP request handler config is not resolved\");\n }\n if (abortSignal === null || abortSignal === void 0 ? void 0 : abortSignal.aborted) {\n const abortError = new Error(\"Request aborted\");\n abortError.name = \"AbortError\";\n reject(abortError);\n return;\n }\n const isSSL = request.protocol === \"https:\";\n const queryString = (0, querystring_builder_1.buildQueryString)(request.query || {});\n const nodeHttpsOptions = {\n headers: request.headers,\n host: request.hostname,\n method: request.method,\n path: queryString ? `${request.path}?${queryString}` : request.path,\n port: request.port,\n agent: isSSL ? this.config.httpsAgent : this.config.httpAgent,\n };\n const requestFunc = isSSL ? https_1.request : http_1.request;\n const req = requestFunc(nodeHttpsOptions, (res) => {\n const httpResponse = new protocol_http_1.HttpResponse({\n statusCode: res.statusCode || -1,\n headers: (0, get_transformed_headers_1.getTransformedHeaders)(res.headers),\n body: res,\n });\n resolve({ response: httpResponse });\n });\n req.on(\"error\", (err) => {\n if (constants_1.NODEJS_TIMEOUT_ERROR_CODES.includes(err.code)) {\n reject(Object.assign(err, { name: \"TimeoutError\" }));\n }\n else {\n reject(err);\n }\n });\n (0, set_connection_timeout_1.setConnectionTimeout)(req, reject, this.config.connectionTimeout);\n (0, set_socket_timeout_1.setSocketTimeout)(req, reject, this.config.socketTimeout);\n if (abortSignal) {\n abortSignal.onabort = () => {\n req.abort();\n const abortError = new Error(\"Request aborted\");\n abortError.name = \"AbortError\";\n reject(abortError);\n };\n }\n (0, write_request_body_1.writeRequestBody)(req, request);\n });\n }\n}\nexports.NodeHttpHandler = NodeHttpHandler;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NodeHttp2Handler = void 0;\nconst protocol_http_1 = require(\"@aws-sdk/protocol-http\");\nconst querystring_builder_1 = require(\"@aws-sdk/querystring-builder\");\nconst http2_1 = require(\"http2\");\nconst get_transformed_headers_1 = require(\"./get-transformed-headers\");\nconst write_request_body_1 = require(\"./write-request-body\");\nclass NodeHttp2Handler {\n constructor(options) {\n this.metadata = { handlerProtocol: \"h2\" };\n this.configProvider = new Promise((resolve, reject) => {\n if (typeof options === \"function\") {\n options()\n .then((opts) => {\n resolve(opts || {});\n })\n .catch(reject);\n }\n else {\n resolve(options || {});\n }\n });\n this.sessionCache = new Map();\n }\n destroy() {\n for (const sessions of this.sessionCache.values()) {\n sessions.forEach((session) => this.destroySession(session));\n }\n this.sessionCache.clear();\n }\n async handle(request, { abortSignal } = {}) {\n if (!this.config) {\n this.config = await this.configProvider;\n }\n const { requestTimeout, disableConcurrentStreams } = this.config;\n return new Promise((resolve, rejectOriginal) => {\n let fulfilled = false;\n if (abortSignal === null || abortSignal === void 0 ? void 0 : abortSignal.aborted) {\n fulfilled = true;\n const abortError = new Error(\"Request aborted\");\n abortError.name = \"AbortError\";\n rejectOriginal(abortError);\n return;\n }\n const { hostname, method, port, protocol, path, query } = request;\n const authority = `${protocol}//${hostname}${port ? `:${port}` : \"\"}`;\n const session = this.getSession(authority, disableConcurrentStreams || false);\n const reject = (err) => {\n if (disableConcurrentStreams) {\n this.destroySession(session);\n }\n fulfilled = true;\n rejectOriginal(err);\n };\n const queryString = (0, querystring_builder_1.buildQueryString)(query || {});\n const req = session.request({\n ...request.headers,\n [http2_1.constants.HTTP2_HEADER_PATH]: queryString ? `${path}?${queryString}` : path,\n [http2_1.constants.HTTP2_HEADER_METHOD]: method,\n });\n session.ref();\n req.on(\"response\", (headers) => {\n const httpResponse = new protocol_http_1.HttpResponse({\n statusCode: headers[\":status\"] || -1,\n headers: (0, get_transformed_headers_1.getTransformedHeaders)(headers),\n body: req,\n });\n fulfilled = true;\n resolve({ response: httpResponse });\n if (disableConcurrentStreams) {\n session.close();\n this.deleteSessionFromCache(authority, session);\n }\n });\n if (requestTimeout) {\n req.setTimeout(requestTimeout, () => {\n req.close();\n const timeoutError = new Error(`Stream timed out because of no activity for ${requestTimeout} ms`);\n timeoutError.name = \"TimeoutError\";\n reject(timeoutError);\n });\n }\n if (abortSignal) {\n abortSignal.onabort = () => {\n req.close();\n const abortError = new Error(\"Request aborted\");\n abortError.name = \"AbortError\";\n reject(abortError);\n };\n }\n req.on(\"frameError\", (type, code, id) => {\n reject(new Error(`Frame type id ${type} in stream id ${id} has failed with code ${code}.`));\n });\n req.on(\"error\", reject);\n req.on(\"aborted\", () => {\n reject(new Error(`HTTP/2 stream is abnormally aborted in mid-communication with result code ${req.rstCode}.`));\n });\n req.on(\"close\", () => {\n session.unref();\n if (disableConcurrentStreams) {\n session.destroy();\n }\n if (!fulfilled) {\n reject(new Error(\"Unexpected error: http2 request did not get a response\"));\n }\n });\n (0, write_request_body_1.writeRequestBody)(req, request);\n });\n }\n getSession(authority, disableConcurrentStreams) {\n var _a;\n const sessionCache = this.sessionCache;\n const existingSessions = sessionCache.get(authority) || [];\n if (existingSessions.length > 0 && !disableConcurrentStreams)\n return existingSessions[0];\n const newSession = (0, http2_1.connect)(authority);\n newSession.unref();\n const destroySessionCb = () => {\n this.destroySession(newSession);\n this.deleteSessionFromCache(authority, newSession);\n };\n newSession.on(\"goaway\", destroySessionCb);\n newSession.on(\"error\", destroySessionCb);\n newSession.on(\"frameError\", destroySessionCb);\n newSession.on(\"close\", () => this.deleteSessionFromCache(authority, newSession));\n if ((_a = this.config) === null || _a === void 0 ? void 0 : _a.sessionTimeout) {\n newSession.setTimeout(this.config.sessionTimeout, destroySessionCb);\n }\n existingSessions.push(newSession);\n sessionCache.set(authority, existingSessions);\n return newSession;\n }\n destroySession(session) {\n if (!session.destroyed) {\n session.destroy();\n }\n }\n deleteSessionFromCache(authority, session) {\n const existingSessions = this.sessionCache.get(authority) || [];\n if (!existingSessions.includes(session)) {\n return;\n }\n this.sessionCache.set(authority, existingSessions.filter((s) => s !== session));\n }\n}\nexports.NodeHttp2Handler = NodeHttp2Handler;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Collector = void 0;\nconst stream_1 = require(\"stream\");\nclass Collector extends stream_1.Writable {\n constructor() {\n super(...arguments);\n this.bufferedBytes = [];\n }\n _write(chunk, encoding, callback) {\n this.bufferedBytes.push(chunk);\n callback();\n }\n}\nexports.Collector = Collector;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.streamCollector = void 0;\nconst collector_1 = require(\"./collector\");\nconst streamCollector = (stream) => new Promise((resolve, reject) => {\n const collector = new collector_1.Collector();\n stream.pipe(collector);\n stream.on(\"error\", (err) => {\n collector.end();\n reject(err);\n });\n collector.on(\"error\", reject);\n collector.on(\"finish\", function () {\n const bytes = new Uint8Array(Buffer.concat(this.bufferedBytes));\n resolve(bytes);\n });\n});\nexports.streamCollector = streamCollector;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./node-http-handler\"), exports);\ntslib_1.__exportStar(require(\"./node-http2-handler\"), exports);\ntslib_1.__exportStar(require(\"./stream-collector\"), exports);\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.calculateBodyLength = void 0;\nconst fs_1 = require(\"fs\");\nconst calculateBodyLength = (body) => {\n if (!body) {\n return 0;\n }\n if (typeof body === \"string\") {\n return Buffer.from(body).length;\n }\n else if (typeof body.byteLength === \"number\") {\n return body.byteLength;\n }\n else if (typeof body.size === \"number\") {\n return body.size;\n }\n else if (typeof body.path === \"string\" || Buffer.isBuffer(body.path)) {\n return (0, fs_1.lstatSync)(body.path).size;\n }\n else if (typeof body.fd === \"number\") {\n return (0, fs_1.fstatSync)(body.fd).size;\n }\n throw new Error(`Body Length computation failed for ${body}`);\n};\nexports.calculateBodyLength = calculateBodyLength;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./calculateBodyLength\"), exports);\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isCrtAvailable = void 0;\nconst isCrtAvailable = () => {\n try {\n if (typeof require === \"function\" && typeof module !== \"undefined\" && module.require && require(\"aws-crt\")) {\n return [\"md/crt-avail\"];\n }\n return null;\n }\n catch (e) {\n return null;\n }\n};\nexports.isCrtAvailable = isCrtAvailable;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.defaultUserAgent = exports.UA_APP_ID_INI_NAME = exports.UA_APP_ID_ENV_NAME = void 0;\nconst node_config_provider_1 = require(\"@aws-sdk/node-config-provider\");\nconst os_1 = require(\"os\");\nconst process_1 = require(\"process\");\nconst is_crt_available_1 = require(\"./is-crt-available\");\nexports.UA_APP_ID_ENV_NAME = \"AWS_SDK_UA_APP_ID\";\nexports.UA_APP_ID_INI_NAME = \"sdk-ua-app-id\";\nconst defaultUserAgent = ({ serviceId, clientVersion }) => {\n const sections = [\n [\"aws-sdk-js\", clientVersion],\n [`os/${(0, os_1.platform)()}`, (0, os_1.release)()],\n [\"lang/js\"],\n [\"md/nodejs\", `${process_1.versions.node}`],\n ];\n const crtAvailable = (0, is_crt_available_1.isCrtAvailable)();\n if (crtAvailable) {\n sections.push(crtAvailable);\n }\n if (serviceId) {\n sections.push([`api/${serviceId}`, clientVersion]);\n }\n if (process_1.env.AWS_EXECUTION_ENV) {\n sections.push([`exec-env/${process_1.env.AWS_EXECUTION_ENV}`]);\n }\n const appIdPromise = (0, node_config_provider_1.loadConfig)({\n environmentVariableSelector: (env) => env[exports.UA_APP_ID_ENV_NAME],\n configFileSelector: (profile) => profile[exports.UA_APP_ID_INI_NAME],\n default: undefined,\n })();\n let resolvedUserAgent = undefined;\n return async () => {\n if (!resolvedUserAgent) {\n const appId = await appIdPromise;\n resolvedUserAgent = appId ? [...sections, [`app/${appId}`]] : [...sections];\n }\n return resolvedUserAgent;\n };\n};\nexports.defaultUserAgent = defaultUserAgent;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fromBase64 = void 0;\nconst util_buffer_from_1 = require(\"@aws-sdk/util-buffer-from\");\nconst BASE64_REGEX = /^[A-Za-z0-9+/]*={0,2}$/;\nconst fromBase64 = (input) => {\n if ((input.length * 3) % 4 !== 0) {\n throw new TypeError(`Incorrect padding on base64 string.`);\n }\n if (!BASE64_REGEX.exec(input)) {\n throw new TypeError(`Invalid base64 string.`);\n }\n const buffer = (0, util_buffer_from_1.fromString)(input, \"base64\");\n return new Uint8Array(buffer.buffer, buffer.byteOffset, buffer.byteLength);\n};\nexports.fromBase64 = fromBase64;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.toBase64 = void 0;\nconst util_buffer_from_1 = require(\"@aws-sdk/util-buffer-from\");\nconst toBase64 = (input) => (0, util_buffer_from_1.fromArrayBuffer)(input.buffer, input.byteOffset, input.byteLength).toString(\"base64\");\nexports.toBase64 = toBase64;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./fromBase64\"), exports);\ntslib_1.__exportStar(require(\"./toBase64\"), exports);\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.partition = void 0;\nconst tslib_1 = require(\"tslib\");\nconst partitions_json_1 = tslib_1.__importDefault(require(\"./partitions.json\"));\nconst { partitions } = partitions_json_1.default;\nconst DEFAULT_PARTITION = partitions.find((partition) => partition.id === \"aws\");\nconst partition = (value) => {\n for (const partition of partitions) {\n const { regions, outputs } = partition;\n for (const [region, regionData] of Object.entries(regions)) {\n if (region === value) {\n return {\n ...outputs,\n ...regionData,\n };\n }\n }\n }\n for (const partition of partitions) {\n const { regionRegex, outputs } = partition;\n if (new RegExp(regionRegex).test(value)) {\n return {\n ...outputs,\n };\n }\n }\n if (!DEFAULT_PARTITION) {\n throw new Error(\"Provided region was not found in the partition array or regex,\" +\n \" and default partition with id 'aws' doesn't exist.\");\n }\n return {\n ...DEFAULT_PARTITION.outputs,\n };\n};\nexports.partition = partition;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.debugId = void 0;\nexports.debugId = \"endpoints\";\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.toDebugString = void 0;\nfunction toDebugString(input) {\n if (typeof input !== \"object\" || input == null) {\n return input;\n }\n if (\"ref\" in input) {\n return `$${toDebugString(input.ref)}`;\n }\n if (\"fn\" in input) {\n return `${input.fn}(${(input.argv || []).map(toDebugString).join(\", \")})`;\n }\n return JSON.stringify(input, null, 2);\n}\nexports.toDebugString = toDebugString;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./debugId\"), exports);\ntslib_1.__exportStar(require(\"./toDebugString\"), exports);\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EndpointError = void 0;\nclass EndpointError extends Error {\n constructor(message) {\n super(message);\n this.name = \"EndpointError\";\n }\n}\nexports.EndpointError = EndpointError;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./EndpointError\"), exports);\ntslib_1.__exportStar(require(\"./EndpointRuleObject\"), exports);\ntslib_1.__exportStar(require(\"./ErrorRuleObject\"), exports);\ntslib_1.__exportStar(require(\"./RuleSetObject\"), exports);\ntslib_1.__exportStar(require(\"./TreeRuleObject\"), exports);\ntslib_1.__exportStar(require(\"./shared\"), exports);\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isIpAddress = void 0;\nconst IP_V4_REGEX = new RegExp(`^(?:25[0-5]|2[0-4]\\\\d|1\\\\d\\\\d|[1-9]\\\\d|\\\\d)(?:\\\\.(?:25[0-5]|2[0-4]\\\\d|1\\\\d\\\\d|[1-9]\\\\d|\\\\d)){3}$`);\nconst isIpAddress = (value) => IP_V4_REGEX.test(value) || (value.startsWith(\"[\") && value.endsWith(\"]\"));\nexports.isIpAddress = isIpAddress;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isValidHostLabel = void 0;\nconst VALID_HOST_LABEL_REGEX = new RegExp(`^(?!.*-$)(?!-)[a-zA-Z0-9-]{1,63}$`);\nconst isValidHostLabel = (value, allowSubDomains = false) => {\n if (!allowSubDomains) {\n return VALID_HOST_LABEL_REGEX.test(value);\n }\n const labels = value.split(\".\");\n for (const label of labels) {\n if (!(0, exports.isValidHostLabel)(label)) {\n return false;\n }\n }\n return true;\n};\nexports.isValidHostLabel = isValidHostLabel;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isVirtualHostableS3Bucket = void 0;\nconst isIpAddress_1 = require(\"../isIpAddress\");\nconst isValidHostLabel_1 = require(\"../isValidHostLabel\");\nconst isVirtualHostableS3Bucket = (value, allowSubDomains = false) => {\n if (allowSubDomains) {\n for (const label of value.split(\".\")) {\n if (!(0, exports.isVirtualHostableS3Bucket)(label)) {\n return false;\n }\n }\n return true;\n }\n if (!(0, isValidHostLabel_1.isValidHostLabel)(value)) {\n return false;\n }\n if (value.length < 3 || value.length > 63) {\n return false;\n }\n if (value !== value.toLowerCase()) {\n return false;\n }\n if ((0, isIpAddress_1.isIpAddress)(value)) {\n return false;\n }\n return true;\n};\nexports.isVirtualHostableS3Bucket = isVirtualHostableS3Bucket;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.parseArn = void 0;\nconst parseArn = (value) => {\n const segments = value.split(\":\");\n if (segments.length < 6)\n return null;\n const [arn, partition, service, region, accountId, ...resourceId] = segments;\n if (arn !== \"arn\" || partition === \"\" || service === \"\" || resourceId[0] === \"\")\n return null;\n return {\n partition,\n service,\n region,\n accountId,\n resourceId: resourceId[0].includes(\"/\") ? resourceId[0].split(\"/\") : resourceId,\n };\n};\nexports.parseArn = parseArn;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./isVirtualHostableS3Bucket\"), exports);\ntslib_1.__exportStar(require(\"./parseArn\"), exports);\ntslib_1.__exportStar(require(\"./partition\"), exports);\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.booleanEquals = void 0;\nconst booleanEquals = (value1, value2) => value1 === value2;\nexports.booleanEquals = booleanEquals;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getAttrPathList = void 0;\nconst types_1 = require(\"../types\");\nconst getAttrPathList = (path) => {\n const parts = path.split(\".\");\n const pathList = [];\n for (const part of parts) {\n const squareBracketIndex = part.indexOf(\"[\");\n if (squareBracketIndex !== -1) {\n if (part.indexOf(\"]\") !== part.length - 1) {\n throw new types_1.EndpointError(`Path: '${path}' does not end with ']'`);\n }\n const arrayIndex = part.slice(squareBracketIndex + 1, -1);\n if (Number.isNaN(parseInt(arrayIndex))) {\n throw new types_1.EndpointError(`Invalid array index: '${arrayIndex}' in path: '${path}'`);\n }\n if (squareBracketIndex !== 0) {\n pathList.push(part.slice(0, squareBracketIndex));\n }\n pathList.push(arrayIndex);\n }\n else {\n pathList.push(part);\n }\n }\n return pathList;\n};\nexports.getAttrPathList = getAttrPathList;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getAttr = void 0;\nconst types_1 = require(\"../types\");\nconst getAttrPathList_1 = require(\"./getAttrPathList\");\nconst getAttr = (value, path) => (0, getAttrPathList_1.getAttrPathList)(path).reduce((acc, index) => {\n if (typeof acc !== \"object\") {\n throw new types_1.EndpointError(`Index '${index}' in '${path}' not found in '${JSON.stringify(value)}'`);\n }\n else if (Array.isArray(acc)) {\n return acc[parseInt(index)];\n }\n return acc[index];\n}, value);\nexports.getAttr = getAttr;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isSet = void 0;\nconst isSet = (value) => value != null;\nexports.isSet = isSet;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.not = void 0;\nconst not = (value) => !value;\nexports.not = not;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HttpAuthLocation = void 0;\nvar HttpAuthLocation;\n(function (HttpAuthLocation) {\n HttpAuthLocation[\"HEADER\"] = \"header\";\n HttpAuthLocation[\"QUERY\"] = \"query\";\n})(HttpAuthLocation = exports.HttpAuthLocation || (exports.HttpAuthLocation = {}));\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HostAddressType = void 0;\nvar HostAddressType;\n(function (HostAddressType) {\n HostAddressType[\"AAAA\"] = \"AAAA\";\n HostAddressType[\"A\"] = \"A\";\n})(HostAddressType = exports.HostAddressType || (exports.HostAddressType = {}));\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EndpointURLScheme = void 0;\nvar EndpointURLScheme;\n(function (EndpointURLScheme) {\n EndpointURLScheme[\"HTTP\"] = \"http\";\n EndpointURLScheme[\"HTTPS\"] = \"https\";\n})(EndpointURLScheme = exports.EndpointURLScheme || (exports.EndpointURLScheme = {}));\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./AnonymousIdentity\"), exports);\ntslib_1.__exportStar(require(\"./AwsCredentialIdentity\"), exports);\ntslib_1.__exportStar(require(\"./Identity\"), exports);\ntslib_1.__exportStar(require(\"./LoginIdentity\"), exports);\ntslib_1.__exportStar(require(\"./TokenIdentity\"), exports);\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./abort\"), exports);\ntslib_1.__exportStar(require(\"./auth\"), exports);\ntslib_1.__exportStar(require(\"./checksum\"), exports);\ntslib_1.__exportStar(require(\"./client\"), exports);\ntslib_1.__exportStar(require(\"./command\"), exports);\ntslib_1.__exportStar(require(\"./credentials\"), exports);\ntslib_1.__exportStar(require(\"./crypto\"), exports);\ntslib_1.__exportStar(require(\"./dns\"), exports);\ntslib_1.__exportStar(require(\"./endpoint\"), exports);\ntslib_1.__exportStar(require(\"./eventStream\"), exports);\ntslib_1.__exportStar(require(\"./http\"), exports);\ntslib_1.__exportStar(require(\"./identity\"), exports);\ntslib_1.__exportStar(require(\"./logger\"), exports);\ntslib_1.__exportStar(require(\"./middleware\"), exports);\ntslib_1.__exportStar(require(\"./pagination\"), exports);\ntslib_1.__exportStar(require(\"./profile\"), exports);\ntslib_1.__exportStar(require(\"./request\"), exports);\ntslib_1.__exportStar(require(\"./response\"), exports);\ntslib_1.__exportStar(require(\"./retry\"), exports);\ntslib_1.__exportStar(require(\"./serde\"), exports);\ntslib_1.__exportStar(require(\"./shapes\"), exports);\ntslib_1.__exportStar(require(\"./signature\"), exports);\ntslib_1.__exportStar(require(\"./stream\"), exports);\ntslib_1.__exportStar(require(\"./token\"), exports);\ntslib_1.__exportStar(require(\"./transfer\"), exports);\ntslib_1.__exportStar(require(\"./util\"), exports);\ntslib_1.__exportStar(require(\"./waiter\"), exports);\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.parseURL = void 0;\nconst types_1 = require(\"@aws-sdk/types\");\nconst isIpAddress_1 = require(\"./isIpAddress\");\nconst DEFAULT_PORTS = {\n [types_1.EndpointURLScheme.HTTP]: 80,\n [types_1.EndpointURLScheme.HTTPS]: 443,\n};\nconst parseURL = (value) => {\n const whatwgURL = (() => {\n try {\n if (value instanceof URL) {\n return value;\n }\n if (typeof value === \"object\" && \"hostname\" in value) {\n const { hostname, port, protocol = \"\", path = \"\", query = {} } = value;\n const url = new URL(`${protocol}//${hostname}${port ? `:${port}` : \"\"}${path}`);\n url.search = Object.entries(query)\n .map(([k, v]) => `${k}=${v}`)\n .join(\"&\");\n return url;\n }\n return new URL(value);\n }\n catch (error) {\n return null;\n }\n })();\n if (!whatwgURL) {\n console.error(`Unable to parse ${JSON.stringify(value)} as a whatwg URL.`);\n return null;\n }\n const urlString = whatwgURL.href;\n const { host, hostname, pathname, protocol, search } = whatwgURL;\n if (search) {\n return null;\n }\n const scheme = protocol.slice(0, -1);\n if (!Object.values(types_1.EndpointURLScheme).includes(scheme)) {\n return null;\n }\n const isIp = (0, isIpAddress_1.isIpAddress)(hostname);\n const inputContainsDefaultPort = urlString.includes(`${host}:${DEFAULT_PORTS[scheme]}`) ||\n (typeof value === \"string\" && value.includes(`${host}:${DEFAULT_PORTS[scheme]}`));\n const authority = `${host}${inputContainsDefaultPort ? `:${DEFAULT_PORTS[scheme]}` : ``}`;\n return {\n scheme,\n authority,\n path: pathname,\n normalizedPath: pathname.endsWith(\"/\") ? pathname : `${pathname}/`,\n isIp,\n };\n};\nexports.parseURL = parseURL;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.stringEquals = void 0;\nconst stringEquals = (value1, value2) => value1 === value2;\nexports.stringEquals = stringEquals;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.substring = void 0;\nconst substring = (input, start, stop, reverse) => {\n if (start >= stop || input.length < stop) {\n return null;\n }\n if (!reverse) {\n return input.substring(start, stop);\n }\n return input.substring(input.length - stop, input.length - start);\n};\nexports.substring = substring;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.uriEncode = void 0;\nconst uriEncode = (value) => encodeURIComponent(value).replace(/[!*'()]/g, (c) => `%${c.charCodeAt(0).toString(16).toUpperCase()}`);\nexports.uriEncode = uriEncode;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.aws = void 0;\nconst tslib_1 = require(\"tslib\");\nexports.aws = tslib_1.__importStar(require(\"./aws\"));\ntslib_1.__exportStar(require(\"./booleanEquals\"), exports);\ntslib_1.__exportStar(require(\"./getAttr\"), exports);\ntslib_1.__exportStar(require(\"./isSet\"), exports);\ntslib_1.__exportStar(require(\"./isValidHostLabel\"), exports);\ntslib_1.__exportStar(require(\"./not\"), exports);\ntslib_1.__exportStar(require(\"./parseURL\"), exports);\ntslib_1.__exportStar(require(\"./stringEquals\"), exports);\ntslib_1.__exportStar(require(\"./substring\"), exports);\ntslib_1.__exportStar(require(\"./uriEncode\"), exports);\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.evaluateTemplate = void 0;\nconst lib_1 = require(\"../lib\");\nconst evaluateTemplate = (template, options) => {\n const evaluatedTemplateArr = [];\n const templateContext = {\n ...options.endpointParams,\n ...options.referenceRecord,\n };\n let currentIndex = 0;\n while (currentIndex < template.length) {\n const openingBraceIndex = template.indexOf(\"{\", currentIndex);\n if (openingBraceIndex === -1) {\n evaluatedTemplateArr.push(template.slice(currentIndex));\n break;\n }\n evaluatedTemplateArr.push(template.slice(currentIndex, openingBraceIndex));\n const closingBraceIndex = template.indexOf(\"}\", openingBraceIndex);\n if (closingBraceIndex === -1) {\n evaluatedTemplateArr.push(template.slice(openingBraceIndex));\n break;\n }\n if (template[openingBraceIndex + 1] === \"{\" && template[closingBraceIndex + 1] === \"}\") {\n evaluatedTemplateArr.push(template.slice(openingBraceIndex + 1, closingBraceIndex));\n currentIndex = closingBraceIndex + 2;\n }\n const parameterName = template.substring(openingBraceIndex + 1, closingBraceIndex);\n if (parameterName.includes(\"#\")) {\n const [refName, attrName] = parameterName.split(\"#\");\n evaluatedTemplateArr.push((0, lib_1.getAttr)(templateContext[refName], attrName));\n }\n else {\n evaluatedTemplateArr.push(templateContext[parameterName]);\n }\n currentIndex = closingBraceIndex + 1;\n }\n return evaluatedTemplateArr.join(\"\");\n};\nexports.evaluateTemplate = evaluateTemplate;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getReferenceValue = void 0;\nconst getReferenceValue = ({ ref }, options) => {\n const referenceRecord = {\n ...options.endpointParams,\n ...options.referenceRecord,\n };\n return referenceRecord[ref];\n};\nexports.getReferenceValue = getReferenceValue;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.evaluateExpression = void 0;\nconst types_1 = require(\"../types\");\nconst callFunction_1 = require(\"./callFunction\");\nconst evaluateTemplate_1 = require(\"./evaluateTemplate\");\nconst getReferenceValue_1 = require(\"./getReferenceValue\");\nconst evaluateExpression = (obj, keyName, options) => {\n if (typeof obj === \"string\") {\n return (0, evaluateTemplate_1.evaluateTemplate)(obj, options);\n }\n else if (obj[\"fn\"]) {\n return (0, callFunction_1.callFunction)(obj, options);\n }\n else if (obj[\"ref\"]) {\n return (0, getReferenceValue_1.getReferenceValue)(obj, options);\n }\n throw new types_1.EndpointError(`'${keyName}': ${String(obj)} is not a string, function or reference.`);\n};\nexports.evaluateExpression = evaluateExpression;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.callFunction = void 0;\nconst tslib_1 = require(\"tslib\");\nconst lib = tslib_1.__importStar(require(\"../lib\"));\nconst evaluateExpression_1 = require(\"./evaluateExpression\");\nconst callFunction = ({ fn, argv }, options) => {\n const evaluatedArgs = argv.map((arg) => [\"boolean\", \"number\"].includes(typeof arg) ? arg : (0, evaluateExpression_1.evaluateExpression)(arg, \"arg\", options));\n return fn.split(\".\").reduce((acc, key) => acc[key], lib)(...evaluatedArgs);\n};\nexports.callFunction = callFunction;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.evaluateCondition = void 0;\nconst debug_1 = require(\"../debug\");\nconst types_1 = require(\"../types\");\nconst callFunction_1 = require(\"./callFunction\");\nconst evaluateCondition = ({ assign, ...fnArgs }, options) => {\n var _a, _b;\n if (assign && assign in options.referenceRecord) {\n throw new types_1.EndpointError(`'${assign}' is already defined in Reference Record.`);\n }\n const value = (0, callFunction_1.callFunction)(fnArgs, options);\n (_b = (_a = options.logger) === null || _a === void 0 ? void 0 : _a.debug) === null || _b === void 0 ? void 0 : _b.call(_a, debug_1.debugId, `evaluateCondition: ${(0, debug_1.toDebugString)(fnArgs)} = ${(0, debug_1.toDebugString)(value)}`);\n return {\n result: value === \"\" ? true : !!value,\n ...(assign != null && { toAssign: { name: assign, value } }),\n };\n};\nexports.evaluateCondition = evaluateCondition;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.evaluateConditions = void 0;\nconst debug_1 = require(\"../debug\");\nconst evaluateCondition_1 = require(\"./evaluateCondition\");\nconst evaluateConditions = (conditions = [], options) => {\n var _a, _b;\n const conditionsReferenceRecord = {};\n for (const condition of conditions) {\n const { result, toAssign } = (0, evaluateCondition_1.evaluateCondition)(condition, {\n ...options,\n referenceRecord: {\n ...options.referenceRecord,\n ...conditionsReferenceRecord,\n },\n });\n if (!result) {\n return { result };\n }\n if (toAssign) {\n conditionsReferenceRecord[toAssign.name] = toAssign.value;\n (_b = (_a = options.logger) === null || _a === void 0 ? void 0 : _a.debug) === null || _b === void 0 ? void 0 : _b.call(_a, debug_1.debugId, `assign: ${toAssign.name} := ${(0, debug_1.toDebugString)(toAssign.value)}`);\n }\n }\n return { result: true, referenceRecord: conditionsReferenceRecord };\n};\nexports.evaluateConditions = evaluateConditions;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getEndpointHeaders = void 0;\nconst types_1 = require(\"../types\");\nconst evaluateExpression_1 = require(\"./evaluateExpression\");\nconst getEndpointHeaders = (headers, options) => Object.entries(headers).reduce((acc, [headerKey, headerVal]) => ({\n ...acc,\n [headerKey]: headerVal.map((headerValEntry) => {\n const processedExpr = (0, evaluateExpression_1.evaluateExpression)(headerValEntry, \"Header value entry\", options);\n if (typeof processedExpr !== \"string\") {\n throw new types_1.EndpointError(`Header '${headerKey}' value '${processedExpr}' is not a string`);\n }\n return processedExpr;\n }),\n}), {});\nexports.getEndpointHeaders = getEndpointHeaders;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getEndpointProperty = void 0;\nconst types_1 = require(\"../types\");\nconst evaluateTemplate_1 = require(\"./evaluateTemplate\");\nconst getEndpointProperties_1 = require(\"./getEndpointProperties\");\nconst getEndpointProperty = (property, options) => {\n if (Array.isArray(property)) {\n return property.map((propertyEntry) => (0, exports.getEndpointProperty)(propertyEntry, options));\n }\n switch (typeof property) {\n case \"string\":\n return (0, evaluateTemplate_1.evaluateTemplate)(property, options);\n case \"object\":\n if (property === null) {\n throw new types_1.EndpointError(`Unexpected endpoint property: ${property}`);\n }\n return (0, getEndpointProperties_1.getEndpointProperties)(property, options);\n case \"boolean\":\n return property;\n default:\n throw new types_1.EndpointError(`Unexpected endpoint property type: ${typeof property}`);\n }\n};\nexports.getEndpointProperty = getEndpointProperty;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getEndpointProperties = void 0;\nconst getEndpointProperty_1 = require(\"./getEndpointProperty\");\nconst getEndpointProperties = (properties, options) => Object.entries(properties).reduce((acc, [propertyKey, propertyVal]) => ({\n ...acc,\n [propertyKey]: (0, getEndpointProperty_1.getEndpointProperty)(propertyVal, options),\n}), {});\nexports.getEndpointProperties = getEndpointProperties;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getEndpointUrl = void 0;\nconst types_1 = require(\"../types\");\nconst evaluateExpression_1 = require(\"./evaluateExpression\");\nconst getEndpointUrl = (endpointUrl, options) => {\n const expression = (0, evaluateExpression_1.evaluateExpression)(endpointUrl, \"Endpoint URL\", options);\n if (typeof expression === \"string\") {\n try {\n return new URL(expression);\n }\n catch (error) {\n console.error(`Failed to construct URL with ${expression}`, error);\n throw error;\n }\n }\n throw new types_1.EndpointError(`Endpoint URL must be a string, got ${typeof expression}`);\n};\nexports.getEndpointUrl = getEndpointUrl;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.evaluateEndpointRule = void 0;\nconst debug_1 = require(\"../debug\");\nconst evaluateConditions_1 = require(\"./evaluateConditions\");\nconst getEndpointHeaders_1 = require(\"./getEndpointHeaders\");\nconst getEndpointProperties_1 = require(\"./getEndpointProperties\");\nconst getEndpointUrl_1 = require(\"./getEndpointUrl\");\nconst evaluateEndpointRule = (endpointRule, options) => {\n var _a, _b;\n const { conditions, endpoint } = endpointRule;\n const { result, referenceRecord } = (0, evaluateConditions_1.evaluateConditions)(conditions, options);\n if (!result) {\n return;\n }\n const endpointRuleOptions = {\n ...options,\n referenceRecord: { ...options.referenceRecord, ...referenceRecord },\n };\n const { url, properties, headers } = endpoint;\n (_b = (_a = options.logger) === null || _a === void 0 ? void 0 : _a.debug) === null || _b === void 0 ? void 0 : _b.call(_a, debug_1.debugId, `Resolving endpoint from template: ${(0, debug_1.toDebugString)(endpoint)}`);\n return {\n ...(headers != undefined && {\n headers: (0, getEndpointHeaders_1.getEndpointHeaders)(headers, endpointRuleOptions),\n }),\n ...(properties != undefined && {\n properties: (0, getEndpointProperties_1.getEndpointProperties)(properties, endpointRuleOptions),\n }),\n url: (0, getEndpointUrl_1.getEndpointUrl)(url, endpointRuleOptions),\n };\n};\nexports.evaluateEndpointRule = evaluateEndpointRule;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.evaluateErrorRule = void 0;\nconst types_1 = require(\"../types\");\nconst evaluateConditions_1 = require(\"./evaluateConditions\");\nconst evaluateExpression_1 = require(\"./evaluateExpression\");\nconst evaluateErrorRule = (errorRule, options) => {\n const { conditions, error } = errorRule;\n const { result, referenceRecord } = (0, evaluateConditions_1.evaluateConditions)(conditions, options);\n if (!result) {\n return;\n }\n throw new types_1.EndpointError((0, evaluateExpression_1.evaluateExpression)(error, \"Error\", {\n ...options,\n referenceRecord: { ...options.referenceRecord, ...referenceRecord },\n }));\n};\nexports.evaluateErrorRule = evaluateErrorRule;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.evaluateTreeRule = void 0;\nconst evaluateConditions_1 = require(\"./evaluateConditions\");\nconst evaluateRules_1 = require(\"./evaluateRules\");\nconst evaluateTreeRule = (treeRule, options) => {\n const { conditions, rules } = treeRule;\n const { result, referenceRecord } = (0, evaluateConditions_1.evaluateConditions)(conditions, options);\n if (!result) {\n return;\n }\n return (0, evaluateRules_1.evaluateRules)(rules, {\n ...options,\n referenceRecord: { ...options.referenceRecord, ...referenceRecord },\n });\n};\nexports.evaluateTreeRule = evaluateTreeRule;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.evaluateRules = void 0;\nconst types_1 = require(\"../types\");\nconst evaluateEndpointRule_1 = require(\"./evaluateEndpointRule\");\nconst evaluateErrorRule_1 = require(\"./evaluateErrorRule\");\nconst evaluateTreeRule_1 = require(\"./evaluateTreeRule\");\nconst evaluateRules = (rules, options) => {\n for (const rule of rules) {\n if (rule.type === \"endpoint\") {\n const endpointOrUndefined = (0, evaluateEndpointRule_1.evaluateEndpointRule)(rule, options);\n if (endpointOrUndefined) {\n return endpointOrUndefined;\n }\n }\n else if (rule.type === \"error\") {\n (0, evaluateErrorRule_1.evaluateErrorRule)(rule, options);\n }\n else if (rule.type === \"tree\") {\n const endpointOrUndefined = (0, evaluateTreeRule_1.evaluateTreeRule)(rule, options);\n if (endpointOrUndefined) {\n return endpointOrUndefined;\n }\n }\n else {\n throw new types_1.EndpointError(`Unknown endpoint rule: ${rule}`);\n }\n }\n throw new types_1.EndpointError(`Rules evaluation failed`);\n};\nexports.evaluateRules = evaluateRules;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./evaluateRules\"), exports);\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.resolveEndpoint = void 0;\nconst debug_1 = require(\"./debug\");\nconst types_1 = require(\"./types\");\nconst utils_1 = require(\"./utils\");\nconst resolveEndpoint = (ruleSetObject, options) => {\n var _a, _b, _c, _d, _e, _f;\n const { endpointParams, logger } = options;\n const { parameters, rules } = ruleSetObject;\n (_b = (_a = options.logger) === null || _a === void 0 ? void 0 : _a.debug) === null || _b === void 0 ? void 0 : _b.call(_a, debug_1.debugId, `Initial EndpointParams: ${(0, debug_1.toDebugString)(endpointParams)}`);\n const paramsWithDefault = Object.entries(parameters)\n .filter(([, v]) => v.default != null)\n .map(([k, v]) => [k, v.default]);\n if (paramsWithDefault.length > 0) {\n for (const [paramKey, paramDefaultValue] of paramsWithDefault) {\n endpointParams[paramKey] = (_c = endpointParams[paramKey]) !== null && _c !== void 0 ? _c : paramDefaultValue;\n }\n }\n const requiredParams = Object.entries(parameters)\n .filter(([, v]) => v.required)\n .map(([k]) => k);\n for (const requiredParam of requiredParams) {\n if (endpointParams[requiredParam] == null) {\n throw new types_1.EndpointError(`Missing required parameter: '${requiredParam}'`);\n }\n }\n const endpoint = (0, utils_1.evaluateRules)(rules, { endpointParams, logger, referenceRecord: {} });\n if ((_d = options.endpointParams) === null || _d === void 0 ? void 0 : _d.Endpoint) {\n try {\n const givenEndpoint = new URL(options.endpointParams.Endpoint);\n const { protocol, port } = givenEndpoint;\n endpoint.url.protocol = protocol;\n endpoint.url.port = port;\n }\n catch (e) {\n }\n }\n (_f = (_e = options.logger) === null || _e === void 0 ? void 0 : _e.debug) === null || _f === void 0 ? void 0 : _f.call(_e, debug_1.debugId, `Resolved endpoint: ${(0, debug_1.toDebugString)(endpoint)}`);\n return endpoint;\n};\nexports.resolveEndpoint = resolveEndpoint;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./lib/aws/partition\"), exports);\ntslib_1.__exportStar(require(\"./resolveEndpoint\"), exports);\ntslib_1.__exportStar(require(\"./types\"), exports);\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ruleSet = void 0;\nconst p = \"required\", q = \"fn\", r = \"argv\", s = \"ref\";\nconst a = \"PartitionResult\", b = \"tree\", c = \"error\", d = \"endpoint\", e = { [p]: false, \"type\": \"String\" }, f = { [p]: true, \"default\": false, \"type\": \"Boolean\" }, g = { [s]: \"Endpoint\" }, h = { [q]: \"booleanEquals\", [r]: [{ [s]: \"UseFIPS\" }, true] }, i = { [q]: \"booleanEquals\", [r]: [{ [s]: \"UseDualStack\" }, true] }, j = {}, k = { [q]: \"booleanEquals\", [r]: [true, { [q]: \"getAttr\", [r]: [{ [s]: a }, \"supportsFIPS\"] }] }, l = { [q]: \"booleanEquals\", [r]: [true, { [q]: \"getAttr\", [r]: [{ [s]: a }, \"supportsDualStack\"] }] }, m = [g], n = [h], o = [i];\nconst _data = { version: \"1.0\", parameters: { Region: e, UseDualStack: f, UseFIPS: f, Endpoint: e }, rules: [{ conditions: [{ [q]: \"aws.partition\", [r]: [{ [s]: \"Region\" }], assign: a }], type: b, rules: [{ conditions: [{ [q]: \"isSet\", [r]: m }, { [q]: \"parseURL\", [r]: m, assign: \"url\" }], type: b, rules: [{ conditions: n, error: \"Invalid Configuration: FIPS and custom endpoint are not supported\", type: c }, { type: b, rules: [{ conditions: o, error: \"Invalid Configuration: Dualstack and custom endpoint are not supported\", type: c }, { endpoint: { url: g, properties: j, headers: j }, type: d }] }] }, { conditions: [h, i], type: b, rules: [{ conditions: [k, l], type: b, rules: [{ endpoint: { url: \"https://portal.sso-fips.{Region}.{PartitionResult#dualStackDnsSuffix}\", properties: j, headers: j }, type: d }] }, { error: \"FIPS and DualStack are enabled, but this partition does not support one or both\", type: c }] }, { conditions: n, type: b, rules: [{ conditions: [k], type: b, rules: [{ type: b, rules: [{ endpoint: { url: \"https://portal.sso-fips.{Region}.{PartitionResult#dnsSuffix}\", properties: j, headers: j }, type: d }] }] }, { error: \"FIPS is enabled but this partition does not support FIPS\", type: c }] }, { conditions: o, type: b, rules: [{ conditions: [l], type: b, rules: [{ endpoint: { url: \"https://portal.sso.{Region}.{PartitionResult#dualStackDnsSuffix}\", properties: j, headers: j }, type: d }] }, { error: \"DualStack is enabled but this partition does not support DualStack\", type: c }] }, { endpoint: { url: \"https://portal.sso.{Region}.{PartitionResult#dnsSuffix}\", properties: j, headers: j }, type: d }] }] };\nexports.ruleSet = _data;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.defaultEndpointResolver = void 0;\nconst util_endpoints_1 = require(\"@aws-sdk/util-endpoints\");\nconst ruleset_1 = require(\"./ruleset\");\nconst defaultEndpointResolver = (endpointParams, context = {}) => {\n return (0, util_endpoints_1.resolveEndpoint)(ruleset_1.ruleSet, {\n endpointParams: endpointParams,\n logger: context.logger,\n });\n};\nexports.defaultEndpointResolver = defaultEndpointResolver;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRuntimeConfig = void 0;\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst url_parser_1 = require(\"@aws-sdk/url-parser\");\nconst util_base64_1 = require(\"@aws-sdk/util-base64\");\nconst util_utf8_1 = require(\"@aws-sdk/util-utf8\");\nconst endpointResolver_1 = require(\"./endpoint/endpointResolver\");\nconst getRuntimeConfig = (config) => ({\n apiVersion: \"2019-06-10\",\n base64Decoder: config?.base64Decoder ?? util_base64_1.fromBase64,\n base64Encoder: config?.base64Encoder ?? util_base64_1.toBase64,\n disableHostPrefix: config?.disableHostPrefix ?? false,\n endpointProvider: config?.endpointProvider ?? endpointResolver_1.defaultEndpointResolver,\n logger: config?.logger ?? new smithy_client_1.NoOpLogger(),\n serviceId: config?.serviceId ?? \"SSO\",\n urlParser: config?.urlParser ?? url_parser_1.parseUrl,\n utf8Decoder: config?.utf8Decoder ?? util_utf8_1.fromUtf8,\n utf8Encoder: config?.utf8Encoder ?? util_utf8_1.toUtf8,\n});\nexports.getRuntimeConfig = getRuntimeConfig;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.IMDS_REGION_PATH = exports.DEFAULTS_MODE_OPTIONS = exports.ENV_IMDS_DISABLED = exports.AWS_DEFAULT_REGION_ENV = exports.AWS_REGION_ENV = exports.AWS_EXECUTION_ENV = void 0;\nexports.AWS_EXECUTION_ENV = \"AWS_EXECUTION_ENV\";\nexports.AWS_REGION_ENV = \"AWS_REGION\";\nexports.AWS_DEFAULT_REGION_ENV = \"AWS_DEFAULT_REGION\";\nexports.ENV_IMDS_DISABLED = \"AWS_EC2_METADATA_DISABLED\";\nexports.DEFAULTS_MODE_OPTIONS = [\"in-region\", \"cross-region\", \"mobile\", \"standard\", \"legacy\"];\nexports.IMDS_REGION_PATH = \"/latest/meta-data/placement/region\";\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NODE_DEFAULTS_MODE_CONFIG_OPTIONS = void 0;\nconst AWS_DEFAULTS_MODE_ENV = \"AWS_DEFAULTS_MODE\";\nconst AWS_DEFAULTS_MODE_CONFIG = \"defaults_mode\";\nexports.NODE_DEFAULTS_MODE_CONFIG_OPTIONS = {\n environmentVariableSelector: (env) => {\n return env[AWS_DEFAULTS_MODE_ENV];\n },\n configFileSelector: (profile) => {\n return profile[AWS_DEFAULTS_MODE_CONFIG];\n },\n default: \"legacy\",\n};\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.resolveDefaultsModeConfig = void 0;\nconst config_resolver_1 = require(\"@aws-sdk/config-resolver\");\nconst credential_provider_imds_1 = require(\"@aws-sdk/credential-provider-imds\");\nconst node_config_provider_1 = require(\"@aws-sdk/node-config-provider\");\nconst property_provider_1 = require(\"@aws-sdk/property-provider\");\nconst constants_1 = require(\"./constants\");\nconst defaultsModeConfig_1 = require(\"./defaultsModeConfig\");\nconst resolveDefaultsModeConfig = ({ region = (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_REGION_CONFIG_OPTIONS), defaultsMode = (0, node_config_provider_1.loadConfig)(defaultsModeConfig_1.NODE_DEFAULTS_MODE_CONFIG_OPTIONS), } = {}) => (0, property_provider_1.memoize)(async () => {\n const mode = typeof defaultsMode === \"function\" ? await defaultsMode() : defaultsMode;\n switch (mode === null || mode === void 0 ? void 0 : mode.toLowerCase()) {\n case \"auto\":\n return resolveNodeDefaultsModeAuto(region);\n case \"in-region\":\n case \"cross-region\":\n case \"mobile\":\n case \"standard\":\n case \"legacy\":\n return Promise.resolve(mode === null || mode === void 0 ? void 0 : mode.toLocaleLowerCase());\n case undefined:\n return Promise.resolve(\"legacy\");\n default:\n throw new Error(`Invalid parameter for \"defaultsMode\", expect ${constants_1.DEFAULTS_MODE_OPTIONS.join(\", \")}, got ${mode}`);\n }\n});\nexports.resolveDefaultsModeConfig = resolveDefaultsModeConfig;\nconst resolveNodeDefaultsModeAuto = async (clientRegion) => {\n if (clientRegion) {\n const resolvedRegion = typeof clientRegion === \"function\" ? await clientRegion() : clientRegion;\n const inferredRegion = await inferPhysicalRegion();\n if (!inferredRegion) {\n return \"standard\";\n }\n if (resolvedRegion === inferredRegion) {\n return \"in-region\";\n }\n else {\n return \"cross-region\";\n }\n }\n return \"standard\";\n};\nconst inferPhysicalRegion = async () => {\n var _a;\n if (process.env[constants_1.AWS_EXECUTION_ENV] && (process.env[constants_1.AWS_REGION_ENV] || process.env[constants_1.AWS_DEFAULT_REGION_ENV])) {\n return (_a = process.env[constants_1.AWS_REGION_ENV]) !== null && _a !== void 0 ? _a : process.env[constants_1.AWS_DEFAULT_REGION_ENV];\n }\n if (!process.env[constants_1.ENV_IMDS_DISABLED]) {\n try {\n const endpoint = await (0, credential_provider_imds_1.getInstanceMetadataEndpoint)();\n return (await (0, credential_provider_imds_1.httpRequest)({ ...endpoint, path: constants_1.IMDS_REGION_PATH })).toString();\n }\n catch (e) {\n }\n }\n};\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./resolveDefaultsModeConfig\"), exports);\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRuntimeConfig = void 0;\nconst tslib_1 = require(\"tslib\");\nconst package_json_1 = tslib_1.__importDefault(require(\"../package.json\"));\nconst config_resolver_1 = require(\"@aws-sdk/config-resolver\");\nconst hash_node_1 = require(\"@aws-sdk/hash-node\");\nconst middleware_retry_1 = require(\"@aws-sdk/middleware-retry\");\nconst node_config_provider_1 = require(\"@aws-sdk/node-config-provider\");\nconst node_http_handler_1 = require(\"@aws-sdk/node-http-handler\");\nconst util_body_length_node_1 = require(\"@aws-sdk/util-body-length-node\");\nconst util_retry_1 = require(\"@aws-sdk/util-retry\");\nconst util_user_agent_node_1 = require(\"@aws-sdk/util-user-agent-node\");\nconst runtimeConfig_shared_1 = require(\"./runtimeConfig.shared\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst util_defaults_mode_node_1 = require(\"@aws-sdk/util-defaults-mode-node\");\nconst smithy_client_2 = require(\"@aws-sdk/smithy-client\");\nconst getRuntimeConfig = (config) => {\n (0, smithy_client_2.emitWarningIfUnsupportedVersion)(process.version);\n const defaultsMode = (0, util_defaults_mode_node_1.resolveDefaultsModeConfig)(config);\n const defaultConfigProvider = () => defaultsMode().then(smithy_client_1.loadConfigsForDefaultMode);\n const clientSharedValues = (0, runtimeConfig_shared_1.getRuntimeConfig)(config);\n return {\n ...clientSharedValues,\n ...config,\n runtime: \"node\",\n defaultsMode,\n bodyLengthChecker: config?.bodyLengthChecker ?? util_body_length_node_1.calculateBodyLength,\n defaultUserAgentProvider: config?.defaultUserAgentProvider ??\n (0, util_user_agent_node_1.defaultUserAgent)({ serviceId: clientSharedValues.serviceId, clientVersion: package_json_1.default.version }),\n maxAttempts: config?.maxAttempts ?? (0, node_config_provider_1.loadConfig)(middleware_retry_1.NODE_MAX_ATTEMPT_CONFIG_OPTIONS),\n region: config?.region ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_REGION_CONFIG_OPTIONS, config_resolver_1.NODE_REGION_CONFIG_FILE_OPTIONS),\n requestHandler: config?.requestHandler ?? new node_http_handler_1.NodeHttpHandler(defaultConfigProvider),\n retryMode: config?.retryMode ??\n (0, node_config_provider_1.loadConfig)({\n ...middleware_retry_1.NODE_RETRY_MODE_CONFIG_OPTIONS,\n default: async () => (await defaultConfigProvider()).retryMode || util_retry_1.DEFAULT_RETRY_MODE,\n }),\n sha256: config?.sha256 ?? hash_node_1.Hash.bind(null, \"sha256\"),\n streamCollector: config?.streamCollector ?? node_http_handler_1.streamCollector,\n useDualstackEndpoint: config?.useDualstackEndpoint ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS),\n useFipsEndpoint: config?.useFipsEndpoint ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS),\n };\n};\nexports.getRuntimeConfig = getRuntimeConfig;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SSOClient = void 0;\nconst config_resolver_1 = require(\"@aws-sdk/config-resolver\");\nconst middleware_content_length_1 = require(\"@aws-sdk/middleware-content-length\");\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_host_header_1 = require(\"@aws-sdk/middleware-host-header\");\nconst middleware_logger_1 = require(\"@aws-sdk/middleware-logger\");\nconst middleware_recursion_detection_1 = require(\"@aws-sdk/middleware-recursion-detection\");\nconst middleware_retry_1 = require(\"@aws-sdk/middleware-retry\");\nconst middleware_user_agent_1 = require(\"@aws-sdk/middleware-user-agent\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst EndpointParameters_1 = require(\"./endpoint/EndpointParameters\");\nconst runtimeConfig_1 = require(\"./runtimeConfig\");\nclass SSOClient extends smithy_client_1.Client {\n constructor(configuration) {\n const _config_0 = (0, runtimeConfig_1.getRuntimeConfig)(configuration);\n const _config_1 = (0, EndpointParameters_1.resolveClientEndpointParameters)(_config_0);\n const _config_2 = (0, config_resolver_1.resolveRegionConfig)(_config_1);\n const _config_3 = (0, middleware_endpoint_1.resolveEndpointConfig)(_config_2);\n const _config_4 = (0, middleware_retry_1.resolveRetryConfig)(_config_3);\n const _config_5 = (0, middleware_host_header_1.resolveHostHeaderConfig)(_config_4);\n const _config_6 = (0, middleware_user_agent_1.resolveUserAgentConfig)(_config_5);\n super(_config_6);\n this.config = _config_6;\n this.middlewareStack.use((0, middleware_retry_1.getRetryPlugin)(this.config));\n this.middlewareStack.use((0, middleware_content_length_1.getContentLengthPlugin)(this.config));\n this.middlewareStack.use((0, middleware_host_header_1.getHostHeaderPlugin)(this.config));\n this.middlewareStack.use((0, middleware_logger_1.getLoggerPlugin)(this.config));\n this.middlewareStack.use((0, middleware_recursion_detection_1.getRecursionDetectionPlugin)(this.config));\n this.middlewareStack.use((0, middleware_user_agent_1.getUserAgentPlugin)(this.config));\n }\n destroy() {\n super.destroy();\n }\n}\nexports.SSOClient = SSOClient;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SSO = void 0;\nconst GetRoleCredentialsCommand_1 = require(\"./commands/GetRoleCredentialsCommand\");\nconst ListAccountRolesCommand_1 = require(\"./commands/ListAccountRolesCommand\");\nconst ListAccountsCommand_1 = require(\"./commands/ListAccountsCommand\");\nconst LogoutCommand_1 = require(\"./commands/LogoutCommand\");\nconst SSOClient_1 = require(\"./SSOClient\");\nclass SSO extends SSOClient_1.SSOClient {\n getRoleCredentials(args, optionsOrCb, cb) {\n const command = new GetRoleCredentialsCommand_1.GetRoleCredentialsCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n listAccountRoles(args, optionsOrCb, cb) {\n const command = new ListAccountRolesCommand_1.ListAccountRolesCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n listAccounts(args, optionsOrCb, cb) {\n const command = new ListAccountsCommand_1.ListAccountsCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n logout(args, optionsOrCb, cb) {\n const command = new LogoutCommand_1.LogoutCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n}\nexports.SSO = SSO;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./GetRoleCredentialsCommand\"), exports);\ntslib_1.__exportStar(require(\"./ListAccountRolesCommand\"), exports);\ntslib_1.__exportStar(require(\"./ListAccountsCommand\"), exports);\ntslib_1.__exportStar(require(\"./LogoutCommand\"), exports);\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./models_0\"), exports);\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.paginateListAccountRoles = void 0;\nconst ListAccountRolesCommand_1 = require(\"../commands/ListAccountRolesCommand\");\nconst SSO_1 = require(\"../SSO\");\nconst SSOClient_1 = require(\"../SSOClient\");\nconst makePagedClientRequest = async (client, input, ...args) => {\n return await client.send(new ListAccountRolesCommand_1.ListAccountRolesCommand(input), ...args);\n};\nconst makePagedRequest = async (client, input, ...args) => {\n return await client.listAccountRoles(input, ...args);\n};\nasync function* paginateListAccountRoles(config, input, ...additionalArguments) {\n let token = config.startingToken || undefined;\n let hasNext = true;\n let page;\n while (hasNext) {\n input.nextToken = token;\n input[\"maxResults\"] = config.pageSize;\n if (config.client instanceof SSO_1.SSO) {\n page = await makePagedRequest(config.client, input, ...additionalArguments);\n }\n else if (config.client instanceof SSOClient_1.SSOClient) {\n page = await makePagedClientRequest(config.client, input, ...additionalArguments);\n }\n else {\n throw new Error(\"Invalid client, expected SSO | SSOClient\");\n }\n yield page;\n const prevToken = token;\n token = page.nextToken;\n hasNext = !!(token && (!config.stopOnSameToken || token !== prevToken));\n }\n return undefined;\n}\nexports.paginateListAccountRoles = paginateListAccountRoles;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.paginateListAccounts = void 0;\nconst ListAccountsCommand_1 = require(\"../commands/ListAccountsCommand\");\nconst SSO_1 = require(\"../SSO\");\nconst SSOClient_1 = require(\"../SSOClient\");\nconst makePagedClientRequest = async (client, input, ...args) => {\n return await client.send(new ListAccountsCommand_1.ListAccountsCommand(input), ...args);\n};\nconst makePagedRequest = async (client, input, ...args) => {\n return await client.listAccounts(input, ...args);\n};\nasync function* paginateListAccounts(config, input, ...additionalArguments) {\n let token = config.startingToken || undefined;\n let hasNext = true;\n let page;\n while (hasNext) {\n input.nextToken = token;\n input[\"maxResults\"] = config.pageSize;\n if (config.client instanceof SSO_1.SSO) {\n page = await makePagedRequest(config.client, input, ...additionalArguments);\n }\n else if (config.client instanceof SSOClient_1.SSOClient) {\n page = await makePagedClientRequest(config.client, input, ...additionalArguments);\n }\n else {\n throw new Error(\"Invalid client, expected SSO | SSOClient\");\n }\n yield page;\n const prevToken = token;\n token = page.nextToken;\n hasNext = !!(token && (!config.stopOnSameToken || token !== prevToken));\n }\n return undefined;\n}\nexports.paginateListAccounts = paginateListAccounts;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./Interfaces\"), exports);\ntslib_1.__exportStar(require(\"./ListAccountRolesPaginator\"), exports);\ntslib_1.__exportStar(require(\"./ListAccountsPaginator\"), exports);\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SSOServiceException = void 0;\nconst tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./SSO\"), exports);\ntslib_1.__exportStar(require(\"./SSOClient\"), exports);\ntslib_1.__exportStar(require(\"./commands\"), exports);\ntslib_1.__exportStar(require(\"./models\"), exports);\ntslib_1.__exportStar(require(\"./pagination\"), exports);\nvar SSOServiceException_1 = require(\"./models/SSOServiceException\");\nObject.defineProperty(exports, \"SSOServiceException\", { enumerable: true, get: function () { return SSOServiceException_1.SSOServiceException; } });\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.REFRESH_MESSAGE = exports.EXPIRE_WINDOW_MS = void 0;\nexports.EXPIRE_WINDOW_MS = 5 * 60 * 1000;\nexports.REFRESH_MESSAGE = `To refresh this SSO session run 'aws sso login' with the corresponding profile.`;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SSOOIDCServiceException = void 0;\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nclass SSOOIDCServiceException extends smithy_client_1.ServiceException {\n constructor(options) {\n super(options);\n Object.setPrototypeOf(this, SSOOIDCServiceException.prototype);\n }\n}\nexports.SSOOIDCServiceException = SSOOIDCServiceException;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StartDeviceAuthorizationResponseFilterSensitiveLog = exports.StartDeviceAuthorizationRequestFilterSensitiveLog = exports.RegisterClientResponseFilterSensitiveLog = exports.RegisterClientRequestFilterSensitiveLog = exports.CreateTokenResponseFilterSensitiveLog = exports.CreateTokenRequestFilterSensitiveLog = exports.InvalidClientMetadataException = exports.UnsupportedGrantTypeException = exports.UnauthorizedClientException = exports.SlowDownException = exports.InvalidScopeException = exports.InvalidRequestException = exports.InvalidGrantException = exports.InvalidClientException = exports.InternalServerException = exports.ExpiredTokenException = exports.AuthorizationPendingException = exports.AccessDeniedException = void 0;\nconst SSOOIDCServiceException_1 = require(\"./SSOOIDCServiceException\");\nclass AccessDeniedException extends SSOOIDCServiceException_1.SSOOIDCServiceException {\n constructor(opts) {\n super({\n name: \"AccessDeniedException\",\n $fault: \"client\",\n ...opts,\n });\n this.name = \"AccessDeniedException\";\n this.$fault = \"client\";\n Object.setPrototypeOf(this, AccessDeniedException.prototype);\n this.error = opts.error;\n this.error_description = opts.error_description;\n }\n}\nexports.AccessDeniedException = AccessDeniedException;\nclass AuthorizationPendingException extends SSOOIDCServiceException_1.SSOOIDCServiceException {\n constructor(opts) {\n super({\n name: \"AuthorizationPendingException\",\n $fault: \"client\",\n ...opts,\n });\n this.name = \"AuthorizationPendingException\";\n this.$fault = \"client\";\n Object.setPrototypeOf(this, AuthorizationPendingException.prototype);\n this.error = opts.error;\n this.error_description = opts.error_description;\n }\n}\nexports.AuthorizationPendingException = AuthorizationPendingException;\nclass ExpiredTokenException extends SSOOIDCServiceException_1.SSOOIDCServiceException {\n constructor(opts) {\n super({\n name: \"ExpiredTokenException\",\n $fault: \"client\",\n ...opts,\n });\n this.name = \"ExpiredTokenException\";\n this.$fault = \"client\";\n Object.setPrototypeOf(this, ExpiredTokenException.prototype);\n this.error = opts.error;\n this.error_description = opts.error_description;\n }\n}\nexports.ExpiredTokenException = ExpiredTokenException;\nclass InternalServerException extends SSOOIDCServiceException_1.SSOOIDCServiceException {\n constructor(opts) {\n super({\n name: \"InternalServerException\",\n $fault: \"server\",\n ...opts,\n });\n this.name = \"InternalServerException\";\n this.$fault = \"server\";\n Object.setPrototypeOf(this, InternalServerException.prototype);\n this.error = opts.error;\n this.error_description = opts.error_description;\n }\n}\nexports.InternalServerException = InternalServerException;\nclass InvalidClientException extends SSOOIDCServiceException_1.SSOOIDCServiceException {\n constructor(opts) {\n super({\n name: \"InvalidClientException\",\n $fault: \"client\",\n ...opts,\n });\n this.name = \"InvalidClientException\";\n this.$fault = \"client\";\n Object.setPrototypeOf(this, InvalidClientException.prototype);\n this.error = opts.error;\n this.error_description = opts.error_description;\n }\n}\nexports.InvalidClientException = InvalidClientException;\nclass InvalidGrantException extends SSOOIDCServiceException_1.SSOOIDCServiceException {\n constructor(opts) {\n super({\n name: \"InvalidGrantException\",\n $fault: \"client\",\n ...opts,\n });\n this.name = \"InvalidGrantException\";\n this.$fault = \"client\";\n Object.setPrototypeOf(this, InvalidGrantException.prototype);\n this.error = opts.error;\n this.error_description = opts.error_description;\n }\n}\nexports.InvalidGrantException = InvalidGrantException;\nclass InvalidRequestException extends SSOOIDCServiceException_1.SSOOIDCServiceException {\n constructor(opts) {\n super({\n name: \"InvalidRequestException\",\n $fault: \"client\",\n ...opts,\n });\n this.name = \"InvalidRequestException\";\n this.$fault = \"client\";\n Object.setPrototypeOf(this, InvalidRequestException.prototype);\n this.error = opts.error;\n this.error_description = opts.error_description;\n }\n}\nexports.InvalidRequestException = InvalidRequestException;\nclass InvalidScopeException extends SSOOIDCServiceException_1.SSOOIDCServiceException {\n constructor(opts) {\n super({\n name: \"InvalidScopeException\",\n $fault: \"client\",\n ...opts,\n });\n this.name = \"InvalidScopeException\";\n this.$fault = \"client\";\n Object.setPrototypeOf(this, InvalidScopeException.prototype);\n this.error = opts.error;\n this.error_description = opts.error_description;\n }\n}\nexports.InvalidScopeException = InvalidScopeException;\nclass SlowDownException extends SSOOIDCServiceException_1.SSOOIDCServiceException {\n constructor(opts) {\n super({\n name: \"SlowDownException\",\n $fault: \"client\",\n ...opts,\n });\n this.name = \"SlowDownException\";\n this.$fault = \"client\";\n Object.setPrototypeOf(this, SlowDownException.prototype);\n this.error = opts.error;\n this.error_description = opts.error_description;\n }\n}\nexports.SlowDownException = SlowDownException;\nclass UnauthorizedClientException extends SSOOIDCServiceException_1.SSOOIDCServiceException {\n constructor(opts) {\n super({\n name: \"UnauthorizedClientException\",\n $fault: \"client\",\n ...opts,\n });\n this.name = \"UnauthorizedClientException\";\n this.$fault = \"client\";\n Object.setPrototypeOf(this, UnauthorizedClientException.prototype);\n this.error = opts.error;\n this.error_description = opts.error_description;\n }\n}\nexports.UnauthorizedClientException = UnauthorizedClientException;\nclass UnsupportedGrantTypeException extends SSOOIDCServiceException_1.SSOOIDCServiceException {\n constructor(opts) {\n super({\n name: \"UnsupportedGrantTypeException\",\n $fault: \"client\",\n ...opts,\n });\n this.name = \"UnsupportedGrantTypeException\";\n this.$fault = \"client\";\n Object.setPrototypeOf(this, UnsupportedGrantTypeException.prototype);\n this.error = opts.error;\n this.error_description = opts.error_description;\n }\n}\nexports.UnsupportedGrantTypeException = UnsupportedGrantTypeException;\nclass InvalidClientMetadataException extends SSOOIDCServiceException_1.SSOOIDCServiceException {\n constructor(opts) {\n super({\n name: \"InvalidClientMetadataException\",\n $fault: \"client\",\n ...opts,\n });\n this.name = \"InvalidClientMetadataException\";\n this.$fault = \"client\";\n Object.setPrototypeOf(this, InvalidClientMetadataException.prototype);\n this.error = opts.error;\n this.error_description = opts.error_description;\n }\n}\nexports.InvalidClientMetadataException = InvalidClientMetadataException;\nconst CreateTokenRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.CreateTokenRequestFilterSensitiveLog = CreateTokenRequestFilterSensitiveLog;\nconst CreateTokenResponseFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.CreateTokenResponseFilterSensitiveLog = CreateTokenResponseFilterSensitiveLog;\nconst RegisterClientRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.RegisterClientRequestFilterSensitiveLog = RegisterClientRequestFilterSensitiveLog;\nconst RegisterClientResponseFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.RegisterClientResponseFilterSensitiveLog = RegisterClientResponseFilterSensitiveLog;\nconst StartDeviceAuthorizationRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.StartDeviceAuthorizationRequestFilterSensitiveLog = StartDeviceAuthorizationRequestFilterSensitiveLog;\nconst StartDeviceAuthorizationResponseFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.StartDeviceAuthorizationResponseFilterSensitiveLog = StartDeviceAuthorizationResponseFilterSensitiveLog;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.deserializeAws_restJson1StartDeviceAuthorizationCommand = exports.deserializeAws_restJson1RegisterClientCommand = exports.deserializeAws_restJson1CreateTokenCommand = exports.serializeAws_restJson1StartDeviceAuthorizationCommand = exports.serializeAws_restJson1RegisterClientCommand = exports.serializeAws_restJson1CreateTokenCommand = void 0;\nconst protocol_http_1 = require(\"@aws-sdk/protocol-http\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst SSOOIDCServiceException_1 = require(\"../models/SSOOIDCServiceException\");\nconst serializeAws_restJson1CreateTokenCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = {\n \"content-type\": \"application/json\",\n };\n const resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/token\";\n let body;\n body = JSON.stringify({\n ...(input.clientId != null && { clientId: input.clientId }),\n ...(input.clientSecret != null && { clientSecret: input.clientSecret }),\n ...(input.code != null && { code: input.code }),\n ...(input.deviceCode != null && { deviceCode: input.deviceCode }),\n ...(input.grantType != null && { grantType: input.grantType }),\n ...(input.redirectUri != null && { redirectUri: input.redirectUri }),\n ...(input.refreshToken != null && { refreshToken: input.refreshToken }),\n ...(input.scope != null && { scope: serializeAws_restJson1Scopes(input.scope, context) }),\n });\n return new protocol_http_1.HttpRequest({\n protocol,\n hostname,\n port,\n method: \"POST\",\n headers,\n path: resolvedPath,\n body,\n });\n};\nexports.serializeAws_restJson1CreateTokenCommand = serializeAws_restJson1CreateTokenCommand;\nconst serializeAws_restJson1RegisterClientCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = {\n \"content-type\": \"application/json\",\n };\n const resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/client/register\";\n let body;\n body = JSON.stringify({\n ...(input.clientName != null && { clientName: input.clientName }),\n ...(input.clientType != null && { clientType: input.clientType }),\n ...(input.scopes != null && { scopes: serializeAws_restJson1Scopes(input.scopes, context) }),\n });\n return new protocol_http_1.HttpRequest({\n protocol,\n hostname,\n port,\n method: \"POST\",\n headers,\n path: resolvedPath,\n body,\n });\n};\nexports.serializeAws_restJson1RegisterClientCommand = serializeAws_restJson1RegisterClientCommand;\nconst serializeAws_restJson1StartDeviceAuthorizationCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = {\n \"content-type\": \"application/json\",\n };\n const resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/device_authorization\";\n let body;\n body = JSON.stringify({\n ...(input.clientId != null && { clientId: input.clientId }),\n ...(input.clientSecret != null && { clientSecret: input.clientSecret }),\n ...(input.startUrl != null && { startUrl: input.startUrl }),\n });\n return new protocol_http_1.HttpRequest({\n protocol,\n hostname,\n port,\n method: \"POST\",\n headers,\n path: resolvedPath,\n body,\n });\n};\nexports.serializeAws_restJson1StartDeviceAuthorizationCommand = serializeAws_restJson1StartDeviceAuthorizationCommand;\nconst deserializeAws_restJson1CreateTokenCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return deserializeAws_restJson1CreateTokenCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n });\n const data = (0, smithy_client_1.expectNonNull)((0, smithy_client_1.expectObject)(await parseBody(output.body, context)), \"body\");\n if (data.accessToken != null) {\n contents.accessToken = (0, smithy_client_1.expectString)(data.accessToken);\n }\n if (data.expiresIn != null) {\n contents.expiresIn = (0, smithy_client_1.expectInt32)(data.expiresIn);\n }\n if (data.idToken != null) {\n contents.idToken = (0, smithy_client_1.expectString)(data.idToken);\n }\n if (data.refreshToken != null) {\n contents.refreshToken = (0, smithy_client_1.expectString)(data.refreshToken);\n }\n if (data.tokenType != null) {\n contents.tokenType = (0, smithy_client_1.expectString)(data.tokenType);\n }\n return contents;\n};\nexports.deserializeAws_restJson1CreateTokenCommand = deserializeAws_restJson1CreateTokenCommand;\nconst deserializeAws_restJson1CreateTokenCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"AccessDeniedException\":\n case \"com.amazonaws.ssooidc#AccessDeniedException\":\n throw await deserializeAws_restJson1AccessDeniedExceptionResponse(parsedOutput, context);\n case \"AuthorizationPendingException\":\n case \"com.amazonaws.ssooidc#AuthorizationPendingException\":\n throw await deserializeAws_restJson1AuthorizationPendingExceptionResponse(parsedOutput, context);\n case \"ExpiredTokenException\":\n case \"com.amazonaws.ssooidc#ExpiredTokenException\":\n throw await deserializeAws_restJson1ExpiredTokenExceptionResponse(parsedOutput, context);\n case \"InternalServerException\":\n case \"com.amazonaws.ssooidc#InternalServerException\":\n throw await deserializeAws_restJson1InternalServerExceptionResponse(parsedOutput, context);\n case \"InvalidClientException\":\n case \"com.amazonaws.ssooidc#InvalidClientException\":\n throw await deserializeAws_restJson1InvalidClientExceptionResponse(parsedOutput, context);\n case \"InvalidGrantException\":\n case \"com.amazonaws.ssooidc#InvalidGrantException\":\n throw await deserializeAws_restJson1InvalidGrantExceptionResponse(parsedOutput, context);\n case \"InvalidRequestException\":\n case \"com.amazonaws.ssooidc#InvalidRequestException\":\n throw await deserializeAws_restJson1InvalidRequestExceptionResponse(parsedOutput, context);\n case \"InvalidScopeException\":\n case \"com.amazonaws.ssooidc#InvalidScopeException\":\n throw await deserializeAws_restJson1InvalidScopeExceptionResponse(parsedOutput, context);\n case \"SlowDownException\":\n case \"com.amazonaws.ssooidc#SlowDownException\":\n throw await deserializeAws_restJson1SlowDownExceptionResponse(parsedOutput, context);\n case \"UnauthorizedClientException\":\n case \"com.amazonaws.ssooidc#UnauthorizedClientException\":\n throw await deserializeAws_restJson1UnauthorizedClientExceptionResponse(parsedOutput, context);\n case \"UnsupportedGrantTypeException\":\n case \"com.amazonaws.ssooidc#UnsupportedGrantTypeException\":\n throw await deserializeAws_restJson1UnsupportedGrantTypeExceptionResponse(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody,\n exceptionCtor: SSOOIDCServiceException_1.SSOOIDCServiceException,\n errorCode,\n });\n }\n};\nconst deserializeAws_restJson1RegisterClientCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return deserializeAws_restJson1RegisterClientCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n });\n const data = (0, smithy_client_1.expectNonNull)((0, smithy_client_1.expectObject)(await parseBody(output.body, context)), \"body\");\n if (data.authorizationEndpoint != null) {\n contents.authorizationEndpoint = (0, smithy_client_1.expectString)(data.authorizationEndpoint);\n }\n if (data.clientId != null) {\n contents.clientId = (0, smithy_client_1.expectString)(data.clientId);\n }\n if (data.clientIdIssuedAt != null) {\n contents.clientIdIssuedAt = (0, smithy_client_1.expectLong)(data.clientIdIssuedAt);\n }\n if (data.clientSecret != null) {\n contents.clientSecret = (0, smithy_client_1.expectString)(data.clientSecret);\n }\n if (data.clientSecretExpiresAt != null) {\n contents.clientSecretExpiresAt = (0, smithy_client_1.expectLong)(data.clientSecretExpiresAt);\n }\n if (data.tokenEndpoint != null) {\n contents.tokenEndpoint = (0, smithy_client_1.expectString)(data.tokenEndpoint);\n }\n return contents;\n};\nexports.deserializeAws_restJson1RegisterClientCommand = deserializeAws_restJson1RegisterClientCommand;\nconst deserializeAws_restJson1RegisterClientCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"InternalServerException\":\n case \"com.amazonaws.ssooidc#InternalServerException\":\n throw await deserializeAws_restJson1InternalServerExceptionResponse(parsedOutput, context);\n case \"InvalidClientMetadataException\":\n case \"com.amazonaws.ssooidc#InvalidClientMetadataException\":\n throw await deserializeAws_restJson1InvalidClientMetadataExceptionResponse(parsedOutput, context);\n case \"InvalidRequestException\":\n case \"com.amazonaws.ssooidc#InvalidRequestException\":\n throw await deserializeAws_restJson1InvalidRequestExceptionResponse(parsedOutput, context);\n case \"InvalidScopeException\":\n case \"com.amazonaws.ssooidc#InvalidScopeException\":\n throw await deserializeAws_restJson1InvalidScopeExceptionResponse(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody,\n exceptionCtor: SSOOIDCServiceException_1.SSOOIDCServiceException,\n errorCode,\n });\n }\n};\nconst deserializeAws_restJson1StartDeviceAuthorizationCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return deserializeAws_restJson1StartDeviceAuthorizationCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n });\n const data = (0, smithy_client_1.expectNonNull)((0, smithy_client_1.expectObject)(await parseBody(output.body, context)), \"body\");\n if (data.deviceCode != null) {\n contents.deviceCode = (0, smithy_client_1.expectString)(data.deviceCode);\n }\n if (data.expiresIn != null) {\n contents.expiresIn = (0, smithy_client_1.expectInt32)(data.expiresIn);\n }\n if (data.interval != null) {\n contents.interval = (0, smithy_client_1.expectInt32)(data.interval);\n }\n if (data.userCode != null) {\n contents.userCode = (0, smithy_client_1.expectString)(data.userCode);\n }\n if (data.verificationUri != null) {\n contents.verificationUri = (0, smithy_client_1.expectString)(data.verificationUri);\n }\n if (data.verificationUriComplete != null) {\n contents.verificationUriComplete = (0, smithy_client_1.expectString)(data.verificationUriComplete);\n }\n return contents;\n};\nexports.deserializeAws_restJson1StartDeviceAuthorizationCommand = deserializeAws_restJson1StartDeviceAuthorizationCommand;\nconst deserializeAws_restJson1StartDeviceAuthorizationCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"InternalServerException\":\n case \"com.amazonaws.ssooidc#InternalServerException\":\n throw await deserializeAws_restJson1InternalServerExceptionResponse(parsedOutput, context);\n case \"InvalidClientException\":\n case \"com.amazonaws.ssooidc#InvalidClientException\":\n throw await deserializeAws_restJson1InvalidClientExceptionResponse(parsedOutput, context);\n case \"InvalidRequestException\":\n case \"com.amazonaws.ssooidc#InvalidRequestException\":\n throw await deserializeAws_restJson1InvalidRequestExceptionResponse(parsedOutput, context);\n case \"SlowDownException\":\n case \"com.amazonaws.ssooidc#SlowDownException\":\n throw await deserializeAws_restJson1SlowDownExceptionResponse(parsedOutput, context);\n case \"UnauthorizedClientException\":\n case \"com.amazonaws.ssooidc#UnauthorizedClientException\":\n throw await deserializeAws_restJson1UnauthorizedClientExceptionResponse(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody,\n exceptionCtor: SSOOIDCServiceException_1.SSOOIDCServiceException,\n errorCode,\n });\n }\n};\nconst map = smithy_client_1.map;\nconst deserializeAws_restJson1AccessDeniedExceptionResponse = async (parsedOutput, context) => {\n const contents = map({});\n const data = parsedOutput.body;\n if (data.error != null) {\n contents.error = (0, smithy_client_1.expectString)(data.error);\n }\n if (data.error_description != null) {\n contents.error_description = (0, smithy_client_1.expectString)(data.error_description);\n }\n const exception = new models_0_1.AccessDeniedException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents,\n });\n return (0, smithy_client_1.decorateServiceException)(exception, parsedOutput.body);\n};\nconst deserializeAws_restJson1AuthorizationPendingExceptionResponse = async (parsedOutput, context) => {\n const contents = map({});\n const data = parsedOutput.body;\n if (data.error != null) {\n contents.error = (0, smithy_client_1.expectString)(data.error);\n }\n if (data.error_description != null) {\n contents.error_description = (0, smithy_client_1.expectString)(data.error_description);\n }\n const exception = new models_0_1.AuthorizationPendingException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents,\n });\n return (0, smithy_client_1.decorateServiceException)(exception, parsedOutput.body);\n};\nconst deserializeAws_restJson1ExpiredTokenExceptionResponse = async (parsedOutput, context) => {\n const contents = map({});\n const data = parsedOutput.body;\n if (data.error != null) {\n contents.error = (0, smithy_client_1.expectString)(data.error);\n }\n if (data.error_description != null) {\n contents.error_description = (0, smithy_client_1.expectString)(data.error_description);\n }\n const exception = new models_0_1.ExpiredTokenException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents,\n });\n return (0, smithy_client_1.decorateServiceException)(exception, parsedOutput.body);\n};\nconst deserializeAws_restJson1InternalServerExceptionResponse = async (parsedOutput, context) => {\n const contents = map({});\n const data = parsedOutput.body;\n if (data.error != null) {\n contents.error = (0, smithy_client_1.expectString)(data.error);\n }\n if (data.error_description != null) {\n contents.error_description = (0, smithy_client_1.expectString)(data.error_description);\n }\n const exception = new models_0_1.InternalServerException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents,\n });\n return (0, smithy_client_1.decorateServiceException)(exception, parsedOutput.body);\n};\nconst deserializeAws_restJson1InvalidClientExceptionResponse = async (parsedOutput, context) => {\n const contents = map({});\n const data = parsedOutput.body;\n if (data.error != null) {\n contents.error = (0, smithy_client_1.expectString)(data.error);\n }\n if (data.error_description != null) {\n contents.error_description = (0, smithy_client_1.expectString)(data.error_description);\n }\n const exception = new models_0_1.InvalidClientException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents,\n });\n return (0, smithy_client_1.decorateServiceException)(exception, parsedOutput.body);\n};\nconst deserializeAws_restJson1InvalidClientMetadataExceptionResponse = async (parsedOutput, context) => {\n const contents = map({});\n const data = parsedOutput.body;\n if (data.error != null) {\n contents.error = (0, smithy_client_1.expectString)(data.error);\n }\n if (data.error_description != null) {\n contents.error_description = (0, smithy_client_1.expectString)(data.error_description);\n }\n const exception = new models_0_1.InvalidClientMetadataException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents,\n });\n return (0, smithy_client_1.decorateServiceException)(exception, parsedOutput.body);\n};\nconst deserializeAws_restJson1InvalidGrantExceptionResponse = async (parsedOutput, context) => {\n const contents = map({});\n const data = parsedOutput.body;\n if (data.error != null) {\n contents.error = (0, smithy_client_1.expectString)(data.error);\n }\n if (data.error_description != null) {\n contents.error_description = (0, smithy_client_1.expectString)(data.error_description);\n }\n const exception = new models_0_1.InvalidGrantException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents,\n });\n return (0, smithy_client_1.decorateServiceException)(exception, parsedOutput.body);\n};\nconst deserializeAws_restJson1InvalidRequestExceptionResponse = async (parsedOutput, context) => {\n const contents = map({});\n const data = parsedOutput.body;\n if (data.error != null) {\n contents.error = (0, smithy_client_1.expectString)(data.error);\n }\n if (data.error_description != null) {\n contents.error_description = (0, smithy_client_1.expectString)(data.error_description);\n }\n const exception = new models_0_1.InvalidRequestException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents,\n });\n return (0, smithy_client_1.decorateServiceException)(exception, parsedOutput.body);\n};\nconst deserializeAws_restJson1InvalidScopeExceptionResponse = async (parsedOutput, context) => {\n const contents = map({});\n const data = parsedOutput.body;\n if (data.error != null) {\n contents.error = (0, smithy_client_1.expectString)(data.error);\n }\n if (data.error_description != null) {\n contents.error_description = (0, smithy_client_1.expectString)(data.error_description);\n }\n const exception = new models_0_1.InvalidScopeException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents,\n });\n return (0, smithy_client_1.decorateServiceException)(exception, parsedOutput.body);\n};\nconst deserializeAws_restJson1SlowDownExceptionResponse = async (parsedOutput, context) => {\n const contents = map({});\n const data = parsedOutput.body;\n if (data.error != null) {\n contents.error = (0, smithy_client_1.expectString)(data.error);\n }\n if (data.error_description != null) {\n contents.error_description = (0, smithy_client_1.expectString)(data.error_description);\n }\n const exception = new models_0_1.SlowDownException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents,\n });\n return (0, smithy_client_1.decorateServiceException)(exception, parsedOutput.body);\n};\nconst deserializeAws_restJson1UnauthorizedClientExceptionResponse = async (parsedOutput, context) => {\n const contents = map({});\n const data = parsedOutput.body;\n if (data.error != null) {\n contents.error = (0, smithy_client_1.expectString)(data.error);\n }\n if (data.error_description != null) {\n contents.error_description = (0, smithy_client_1.expectString)(data.error_description);\n }\n const exception = new models_0_1.UnauthorizedClientException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents,\n });\n return (0, smithy_client_1.decorateServiceException)(exception, parsedOutput.body);\n};\nconst deserializeAws_restJson1UnsupportedGrantTypeExceptionResponse = async (parsedOutput, context) => {\n const contents = map({});\n const data = parsedOutput.body;\n if (data.error != null) {\n contents.error = (0, smithy_client_1.expectString)(data.error);\n }\n if (data.error_description != null) {\n contents.error_description = (0, smithy_client_1.expectString)(data.error_description);\n }\n const exception = new models_0_1.UnsupportedGrantTypeException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents,\n });\n return (0, smithy_client_1.decorateServiceException)(exception, parsedOutput.body);\n};\nconst serializeAws_restJson1Scopes = (input, context) => {\n return input\n .filter((e) => e != null)\n .map((entry) => {\n return entry;\n });\n};\nconst deserializeMetadata = (output) => ({\n httpStatusCode: output.statusCode,\n requestId: output.headers[\"x-amzn-requestid\"] ?? output.headers[\"x-amzn-request-id\"] ?? output.headers[\"x-amz-request-id\"],\n extendedRequestId: output.headers[\"x-amz-id-2\"],\n cfId: output.headers[\"x-amz-cf-id\"],\n});\nconst collectBody = (streamBody = new Uint8Array(), context) => {\n if (streamBody instanceof Uint8Array) {\n return Promise.resolve(streamBody);\n }\n return context.streamCollector(streamBody) || Promise.resolve(new Uint8Array());\n};\nconst collectBodyString = (streamBody, context) => collectBody(streamBody, context).then((body) => context.utf8Encoder(body));\nconst isSerializableHeaderValue = (value) => value !== undefined &&\n value !== null &&\n value !== \"\" &&\n (!Object.getOwnPropertyNames(value).includes(\"length\") || value.length != 0) &&\n (!Object.getOwnPropertyNames(value).includes(\"size\") || value.size != 0);\nconst parseBody = (streamBody, context) => collectBodyString(streamBody, context).then((encoded) => {\n if (encoded.length) {\n return JSON.parse(encoded);\n }\n return {};\n});\nconst parseErrorBody = async (errorBody, context) => {\n const value = await parseBody(errorBody, context);\n value.message = value.message ?? value.Message;\n return value;\n};\nconst loadRestJsonErrorCode = (output, data) => {\n const findKey = (object, key) => Object.keys(object).find((k) => k.toLowerCase() === key.toLowerCase());\n const sanitizeErrorCode = (rawValue) => {\n let cleanValue = rawValue;\n if (typeof cleanValue === \"number\") {\n cleanValue = cleanValue.toString();\n }\n if (cleanValue.indexOf(\",\") >= 0) {\n cleanValue = cleanValue.split(\",\")[0];\n }\n if (cleanValue.indexOf(\":\") >= 0) {\n cleanValue = cleanValue.split(\":\")[0];\n }\n if (cleanValue.indexOf(\"#\") >= 0) {\n cleanValue = cleanValue.split(\"#\")[1];\n }\n return cleanValue;\n };\n const headerKey = findKey(output.headers, \"x-amzn-errortype\");\n if (headerKey !== undefined) {\n return sanitizeErrorCode(output.headers[headerKey]);\n }\n if (data.code !== undefined) {\n return sanitizeErrorCode(data.code);\n }\n if (data[\"__type\"] !== undefined) {\n return sanitizeErrorCode(data[\"__type\"]);\n }\n};\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CreateTokenCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_restJson1_1 = require(\"../protocols/Aws_restJson1\");\nclass CreateTokenCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, CreateTokenCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"SSOOIDCClient\";\n const commandName = \"CreateTokenCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.CreateTokenRequestFilterSensitiveLog,\n outputFilterSensitiveLog: models_0_1.CreateTokenResponseFilterSensitiveLog,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_restJson1_1.serializeAws_restJson1CreateTokenCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_restJson1_1.deserializeAws_restJson1CreateTokenCommand)(output, context);\n }\n}\nexports.CreateTokenCommand = CreateTokenCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.RegisterClientCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_restJson1_1 = require(\"../protocols/Aws_restJson1\");\nclass RegisterClientCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, RegisterClientCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"SSOOIDCClient\";\n const commandName = \"RegisterClientCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.RegisterClientRequestFilterSensitiveLog,\n outputFilterSensitiveLog: models_0_1.RegisterClientResponseFilterSensitiveLog,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_restJson1_1.serializeAws_restJson1RegisterClientCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_restJson1_1.deserializeAws_restJson1RegisterClientCommand)(output, context);\n }\n}\nexports.RegisterClientCommand = RegisterClientCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StartDeviceAuthorizationCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_restJson1_1 = require(\"../protocols/Aws_restJson1\");\nclass StartDeviceAuthorizationCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, StartDeviceAuthorizationCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"SSOOIDCClient\";\n const commandName = \"StartDeviceAuthorizationCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.StartDeviceAuthorizationRequestFilterSensitiveLog,\n outputFilterSensitiveLog: models_0_1.StartDeviceAuthorizationResponseFilterSensitiveLog,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_restJson1_1.serializeAws_restJson1StartDeviceAuthorizationCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_restJson1_1.deserializeAws_restJson1StartDeviceAuthorizationCommand)(output, context);\n }\n}\nexports.StartDeviceAuthorizationCommand = StartDeviceAuthorizationCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.resolveClientEndpointParameters = void 0;\nconst resolveClientEndpointParameters = (options) => {\n return {\n ...options,\n useDualstackEndpoint: options.useDualstackEndpoint ?? false,\n useFipsEndpoint: options.useFipsEndpoint ?? false,\n defaultSigningName: \"awsssooidc\",\n };\n};\nexports.resolveClientEndpointParameters = resolveClientEndpointParameters;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ruleSet = void 0;\nconst p = \"required\", q = \"fn\", r = \"argv\", s = \"ref\";\nconst a = \"PartitionResult\", b = \"tree\", c = \"error\", d = \"endpoint\", e = { [p]: false, \"type\": \"String\" }, f = { [p]: true, \"default\": false, \"type\": \"Boolean\" }, g = { [s]: \"Endpoint\" }, h = { [q]: \"booleanEquals\", [r]: [{ [s]: \"UseFIPS\" }, true] }, i = { [q]: \"booleanEquals\", [r]: [{ [s]: \"UseDualStack\" }, true] }, j = {}, k = { [q]: \"booleanEquals\", [r]: [true, { [q]: \"getAttr\", [r]: [{ [s]: a }, \"supportsFIPS\"] }] }, l = { [q]: \"booleanEquals\", [r]: [true, { [q]: \"getAttr\", [r]: [{ [s]: a }, \"supportsDualStack\"] }] }, m = [g], n = [h], o = [i];\nconst _data = { version: \"1.0\", parameters: { Region: e, UseDualStack: f, UseFIPS: f, Endpoint: e }, rules: [{ conditions: [{ [q]: \"aws.partition\", [r]: [{ [s]: \"Region\" }], assign: a }], type: b, rules: [{ conditions: [{ [q]: \"isSet\", [r]: m }, { [q]: \"parseURL\", [r]: m, assign: \"url\" }], type: b, rules: [{ conditions: n, error: \"Invalid Configuration: FIPS and custom endpoint are not supported\", type: c }, { type: b, rules: [{ conditions: o, error: \"Invalid Configuration: Dualstack and custom endpoint are not supported\", type: c }, { endpoint: { url: g, properties: j, headers: j }, type: d }] }] }, { conditions: [h, i], type: b, rules: [{ conditions: [k, l], type: b, rules: [{ endpoint: { url: \"https://oidc-fips.{Region}.{PartitionResult#dualStackDnsSuffix}\", properties: j, headers: j }, type: d }] }, { error: \"FIPS and DualStack are enabled, but this partition does not support one or both\", type: c }] }, { conditions: n, type: b, rules: [{ conditions: [k], type: b, rules: [{ type: b, rules: [{ endpoint: { url: \"https://oidc-fips.{Region}.{PartitionResult#dnsSuffix}\", properties: j, headers: j }, type: d }] }] }, { error: \"FIPS is enabled but this partition does not support FIPS\", type: c }] }, { conditions: o, type: b, rules: [{ conditions: [l], type: b, rules: [{ endpoint: { url: \"https://oidc.{Region}.{PartitionResult#dualStackDnsSuffix}\", properties: j, headers: j }, type: d }] }, { error: \"DualStack is enabled but this partition does not support DualStack\", type: c }] }, { endpoint: { url: \"https://oidc.{Region}.{PartitionResult#dnsSuffix}\", properties: j, headers: j }, type: d }] }] };\nexports.ruleSet = _data;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.defaultEndpointResolver = void 0;\nconst util_endpoints_1 = require(\"@aws-sdk/util-endpoints\");\nconst ruleset_1 = require(\"./ruleset\");\nconst defaultEndpointResolver = (endpointParams, context = {}) => {\n return (0, util_endpoints_1.resolveEndpoint)(ruleset_1.ruleSet, {\n endpointParams: endpointParams,\n logger: context.logger,\n });\n};\nexports.defaultEndpointResolver = defaultEndpointResolver;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRuntimeConfig = void 0;\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst url_parser_1 = require(\"@aws-sdk/url-parser\");\nconst util_base64_1 = require(\"@aws-sdk/util-base64\");\nconst util_utf8_1 = require(\"@aws-sdk/util-utf8\");\nconst endpointResolver_1 = require(\"./endpoint/endpointResolver\");\nconst getRuntimeConfig = (config) => ({\n apiVersion: \"2019-06-10\",\n base64Decoder: config?.base64Decoder ?? util_base64_1.fromBase64,\n base64Encoder: config?.base64Encoder ?? util_base64_1.toBase64,\n disableHostPrefix: config?.disableHostPrefix ?? false,\n endpointProvider: config?.endpointProvider ?? endpointResolver_1.defaultEndpointResolver,\n logger: config?.logger ?? new smithy_client_1.NoOpLogger(),\n serviceId: config?.serviceId ?? \"SSO OIDC\",\n urlParser: config?.urlParser ?? url_parser_1.parseUrl,\n utf8Decoder: config?.utf8Decoder ?? util_utf8_1.fromUtf8,\n utf8Encoder: config?.utf8Encoder ?? util_utf8_1.toUtf8,\n});\nexports.getRuntimeConfig = getRuntimeConfig;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRuntimeConfig = void 0;\nconst tslib_1 = require(\"tslib\");\nconst package_json_1 = tslib_1.__importDefault(require(\"../package.json\"));\nconst config_resolver_1 = require(\"@aws-sdk/config-resolver\");\nconst hash_node_1 = require(\"@aws-sdk/hash-node\");\nconst middleware_retry_1 = require(\"@aws-sdk/middleware-retry\");\nconst node_config_provider_1 = require(\"@aws-sdk/node-config-provider\");\nconst node_http_handler_1 = require(\"@aws-sdk/node-http-handler\");\nconst util_body_length_node_1 = require(\"@aws-sdk/util-body-length-node\");\nconst util_retry_1 = require(\"@aws-sdk/util-retry\");\nconst util_user_agent_node_1 = require(\"@aws-sdk/util-user-agent-node\");\nconst runtimeConfig_shared_1 = require(\"./runtimeConfig.shared\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst util_defaults_mode_node_1 = require(\"@aws-sdk/util-defaults-mode-node\");\nconst smithy_client_2 = require(\"@aws-sdk/smithy-client\");\nconst getRuntimeConfig = (config) => {\n (0, smithy_client_2.emitWarningIfUnsupportedVersion)(process.version);\n const defaultsMode = (0, util_defaults_mode_node_1.resolveDefaultsModeConfig)(config);\n const defaultConfigProvider = () => defaultsMode().then(smithy_client_1.loadConfigsForDefaultMode);\n const clientSharedValues = (0, runtimeConfig_shared_1.getRuntimeConfig)(config);\n return {\n ...clientSharedValues,\n ...config,\n runtime: \"node\",\n defaultsMode,\n bodyLengthChecker: config?.bodyLengthChecker ?? util_body_length_node_1.calculateBodyLength,\n defaultUserAgentProvider: config?.defaultUserAgentProvider ??\n (0, util_user_agent_node_1.defaultUserAgent)({ serviceId: clientSharedValues.serviceId, clientVersion: package_json_1.default.version }),\n maxAttempts: config?.maxAttempts ?? (0, node_config_provider_1.loadConfig)(middleware_retry_1.NODE_MAX_ATTEMPT_CONFIG_OPTIONS),\n region: config?.region ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_REGION_CONFIG_OPTIONS, config_resolver_1.NODE_REGION_CONFIG_FILE_OPTIONS),\n requestHandler: config?.requestHandler ?? new node_http_handler_1.NodeHttpHandler(defaultConfigProvider),\n retryMode: config?.retryMode ??\n (0, node_config_provider_1.loadConfig)({\n ...middleware_retry_1.NODE_RETRY_MODE_CONFIG_OPTIONS,\n default: async () => (await defaultConfigProvider()).retryMode || util_retry_1.DEFAULT_RETRY_MODE,\n }),\n sha256: config?.sha256 ?? hash_node_1.Hash.bind(null, \"sha256\"),\n streamCollector: config?.streamCollector ?? node_http_handler_1.streamCollector,\n useDualstackEndpoint: config?.useDualstackEndpoint ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS),\n useFipsEndpoint: config?.useFipsEndpoint ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS),\n };\n};\nexports.getRuntimeConfig = getRuntimeConfig;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SSOOIDCClient = void 0;\nconst config_resolver_1 = require(\"@aws-sdk/config-resolver\");\nconst middleware_content_length_1 = require(\"@aws-sdk/middleware-content-length\");\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_host_header_1 = require(\"@aws-sdk/middleware-host-header\");\nconst middleware_logger_1 = require(\"@aws-sdk/middleware-logger\");\nconst middleware_recursion_detection_1 = require(\"@aws-sdk/middleware-recursion-detection\");\nconst middleware_retry_1 = require(\"@aws-sdk/middleware-retry\");\nconst middleware_user_agent_1 = require(\"@aws-sdk/middleware-user-agent\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst EndpointParameters_1 = require(\"./endpoint/EndpointParameters\");\nconst runtimeConfig_1 = require(\"./runtimeConfig\");\nclass SSOOIDCClient extends smithy_client_1.Client {\n constructor(configuration) {\n const _config_0 = (0, runtimeConfig_1.getRuntimeConfig)(configuration);\n const _config_1 = (0, EndpointParameters_1.resolveClientEndpointParameters)(_config_0);\n const _config_2 = (0, config_resolver_1.resolveRegionConfig)(_config_1);\n const _config_3 = (0, middleware_endpoint_1.resolveEndpointConfig)(_config_2);\n const _config_4 = (0, middleware_retry_1.resolveRetryConfig)(_config_3);\n const _config_5 = (0, middleware_host_header_1.resolveHostHeaderConfig)(_config_4);\n const _config_6 = (0, middleware_user_agent_1.resolveUserAgentConfig)(_config_5);\n super(_config_6);\n this.config = _config_6;\n this.middlewareStack.use((0, middleware_retry_1.getRetryPlugin)(this.config));\n this.middlewareStack.use((0, middleware_content_length_1.getContentLengthPlugin)(this.config));\n this.middlewareStack.use((0, middleware_host_header_1.getHostHeaderPlugin)(this.config));\n this.middlewareStack.use((0, middleware_logger_1.getLoggerPlugin)(this.config));\n this.middlewareStack.use((0, middleware_recursion_detection_1.getRecursionDetectionPlugin)(this.config));\n this.middlewareStack.use((0, middleware_user_agent_1.getUserAgentPlugin)(this.config));\n }\n destroy() {\n super.destroy();\n }\n}\nexports.SSOOIDCClient = SSOOIDCClient;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SSOOIDC = void 0;\nconst CreateTokenCommand_1 = require(\"./commands/CreateTokenCommand\");\nconst RegisterClientCommand_1 = require(\"./commands/RegisterClientCommand\");\nconst StartDeviceAuthorizationCommand_1 = require(\"./commands/StartDeviceAuthorizationCommand\");\nconst SSOOIDCClient_1 = require(\"./SSOOIDCClient\");\nclass SSOOIDC extends SSOOIDCClient_1.SSOOIDCClient {\n createToken(args, optionsOrCb, cb) {\n const command = new CreateTokenCommand_1.CreateTokenCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n registerClient(args, optionsOrCb, cb) {\n const command = new RegisterClientCommand_1.RegisterClientCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n startDeviceAuthorization(args, optionsOrCb, cb) {\n const command = new StartDeviceAuthorizationCommand_1.StartDeviceAuthorizationCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n}\nexports.SSOOIDC = SSOOIDC;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./CreateTokenCommand\"), exports);\ntslib_1.__exportStar(require(\"./RegisterClientCommand\"), exports);\ntslib_1.__exportStar(require(\"./StartDeviceAuthorizationCommand\"), exports);\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./models_0\"), exports);\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SSOOIDCServiceException = void 0;\nconst tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./SSOOIDC\"), exports);\ntslib_1.__exportStar(require(\"./SSOOIDCClient\"), exports);\ntslib_1.__exportStar(require(\"./commands\"), exports);\ntslib_1.__exportStar(require(\"./models\"), exports);\nvar SSOOIDCServiceException_1 = require(\"./models/SSOOIDCServiceException\");\nObject.defineProperty(exports, \"SSOOIDCServiceException\", { enumerable: true, get: function () { return SSOOIDCServiceException_1.SSOOIDCServiceException; } });\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getSsoOidcClient = void 0;\nconst client_sso_oidc_1 = require(\"@aws-sdk/client-sso-oidc\");\nconst ssoOidcClientsHash = {};\nconst getSsoOidcClient = (ssoRegion) => {\n if (ssoOidcClientsHash[ssoRegion]) {\n return ssoOidcClientsHash[ssoRegion];\n }\n const ssoOidcClient = new client_sso_oidc_1.SSOOIDCClient({ region: ssoRegion });\n ssoOidcClientsHash[ssoRegion] = ssoOidcClient;\n return ssoOidcClient;\n};\nexports.getSsoOidcClient = getSsoOidcClient;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getNewSsoOidcToken = void 0;\nconst client_sso_oidc_1 = require(\"@aws-sdk/client-sso-oidc\");\nconst getSsoOidcClient_1 = require(\"./getSsoOidcClient\");\nconst getNewSsoOidcToken = (ssoToken, ssoRegion) => {\n const ssoOidcClient = (0, getSsoOidcClient_1.getSsoOidcClient)(ssoRegion);\n return ssoOidcClient.send(new client_sso_oidc_1.CreateTokenCommand({\n clientId: ssoToken.clientId,\n clientSecret: ssoToken.clientSecret,\n refreshToken: ssoToken.refreshToken,\n grantType: \"refresh_token\",\n }));\n};\nexports.getNewSsoOidcToken = getNewSsoOidcToken;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.validateTokenExpiry = void 0;\nconst property_provider_1 = require(\"@aws-sdk/property-provider\");\nconst constants_1 = require(\"./constants\");\nconst validateTokenExpiry = (token) => {\n if (token.expiration && token.expiration.getTime() < Date.now()) {\n throw new property_provider_1.TokenProviderError(`Token is expired. ${constants_1.REFRESH_MESSAGE}`, false);\n }\n};\nexports.validateTokenExpiry = validateTokenExpiry;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.validateTokenKey = void 0;\nconst property_provider_1 = require(\"@aws-sdk/property-provider\");\nconst constants_1 = require(\"./constants\");\nconst validateTokenKey = (key, value, forRefresh = false) => {\n if (typeof value === \"undefined\") {\n throw new property_provider_1.TokenProviderError(`Value not present for '${key}' in SSO Token${forRefresh ? \". Cannot refresh\" : \"\"}. ${constants_1.REFRESH_MESSAGE}`, false);\n }\n};\nexports.validateTokenKey = validateTokenKey;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.writeSSOTokenToFile = void 0;\nconst shared_ini_file_loader_1 = require(\"@aws-sdk/shared-ini-file-loader\");\nconst fs_1 = require(\"fs\");\nconst { writeFile } = fs_1.promises;\nconst writeSSOTokenToFile = (id, ssoToken) => {\n const tokenFilepath = (0, shared_ini_file_loader_1.getSSOTokenFilepath)(id);\n const tokenString = JSON.stringify(ssoToken, null, 2);\n return writeFile(tokenFilepath, tokenString);\n};\nexports.writeSSOTokenToFile = writeSSOTokenToFile;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fromSso = void 0;\nconst property_provider_1 = require(\"@aws-sdk/property-provider\");\nconst shared_ini_file_loader_1 = require(\"@aws-sdk/shared-ini-file-loader\");\nconst constants_1 = require(\"./constants\");\nconst getNewSsoOidcToken_1 = require(\"./getNewSsoOidcToken\");\nconst validateTokenExpiry_1 = require(\"./validateTokenExpiry\");\nconst validateTokenKey_1 = require(\"./validateTokenKey\");\nconst writeSSOTokenToFile_1 = require(\"./writeSSOTokenToFile\");\nconst lastRefreshAttemptTime = new Date(0);\nconst fromSso = (init = {}) => async () => {\n const profiles = await (0, shared_ini_file_loader_1.parseKnownFiles)(init);\n const profileName = (0, shared_ini_file_loader_1.getProfileName)(init);\n const profile = profiles[profileName];\n if (!profile) {\n throw new property_provider_1.TokenProviderError(`Profile '${profileName}' could not be found in shared credentials file.`, false);\n }\n else if (!profile[\"sso_session\"]) {\n throw new property_provider_1.TokenProviderError(`Profile '${profileName}' is missing required property 'sso_session'.`);\n }\n const ssoSessionName = profile[\"sso_session\"];\n const ssoSessions = await (0, shared_ini_file_loader_1.loadSsoSessionData)(init);\n const ssoSession = ssoSessions[ssoSessionName];\n if (!ssoSession) {\n throw new property_provider_1.TokenProviderError(`Sso session '${ssoSessionName}' could not be found in shared credentials file.`, false);\n }\n for (const ssoSessionRequiredKey of [\"sso_start_url\", \"sso_region\"]) {\n if (!ssoSession[ssoSessionRequiredKey]) {\n throw new property_provider_1.TokenProviderError(`Sso session '${ssoSessionName}' is missing required property '${ssoSessionRequiredKey}'.`, false);\n }\n }\n const ssoStartUrl = ssoSession[\"sso_start_url\"];\n const ssoRegion = ssoSession[\"sso_region\"];\n let ssoToken;\n try {\n ssoToken = await (0, shared_ini_file_loader_1.getSSOTokenFromFile)(ssoSessionName);\n }\n catch (e) {\n throw new property_provider_1.TokenProviderError(`The SSO session token associated with profile=${profileName} was not found or is invalid. ${constants_1.REFRESH_MESSAGE}`, false);\n }\n (0, validateTokenKey_1.validateTokenKey)(\"accessToken\", ssoToken.accessToken);\n (0, validateTokenKey_1.validateTokenKey)(\"expiresAt\", ssoToken.expiresAt);\n const { accessToken, expiresAt } = ssoToken;\n const existingToken = { token: accessToken, expiration: new Date(expiresAt) };\n if (existingToken.expiration.getTime() - Date.now() > constants_1.EXPIRE_WINDOW_MS) {\n return existingToken;\n }\n if (Date.now() - lastRefreshAttemptTime.getTime() < 30 * 1000) {\n (0, validateTokenExpiry_1.validateTokenExpiry)(existingToken);\n return existingToken;\n }\n (0, validateTokenKey_1.validateTokenKey)(\"clientId\", ssoToken.clientId, true);\n (0, validateTokenKey_1.validateTokenKey)(\"clientSecret\", ssoToken.clientSecret, true);\n (0, validateTokenKey_1.validateTokenKey)(\"refreshToken\", ssoToken.refreshToken, true);\n try {\n lastRefreshAttemptTime.setTime(Date.now());\n const newSsoOidcToken = await (0, getNewSsoOidcToken_1.getNewSsoOidcToken)(ssoToken, ssoRegion);\n (0, validateTokenKey_1.validateTokenKey)(\"accessToken\", newSsoOidcToken.accessToken);\n (0, validateTokenKey_1.validateTokenKey)(\"expiresIn\", newSsoOidcToken.expiresIn);\n const newTokenExpiration = new Date(Date.now() + newSsoOidcToken.expiresIn * 1000);\n try {\n await (0, writeSSOTokenToFile_1.writeSSOTokenToFile)(ssoSessionName, {\n ...ssoToken,\n accessToken: newSsoOidcToken.accessToken,\n expiresAt: newTokenExpiration.toISOString(),\n refreshToken: newSsoOidcToken.refreshToken,\n });\n }\n catch (error) {\n }\n return {\n token: newSsoOidcToken.accessToken,\n expiration: newTokenExpiration,\n };\n }\n catch (error) {\n (0, validateTokenExpiry_1.validateTokenExpiry)(existingToken);\n return existingToken;\n }\n};\nexports.fromSso = fromSso;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fromStatic = void 0;\nconst property_provider_1 = require(\"@aws-sdk/property-provider\");\nconst fromStatic = ({ token }) => async () => {\n if (!token || !token.token) {\n throw new property_provider_1.TokenProviderError(`Please pass a valid token to fromStatic`, false);\n }\n return token;\n};\nexports.fromStatic = fromStatic;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.nodeProvider = void 0;\nconst property_provider_1 = require(\"@aws-sdk/property-provider\");\nconst fromSso_1 = require(\"./fromSso\");\nconst nodeProvider = (init = {}) => (0, property_provider_1.memoize)((0, property_provider_1.chain)((0, fromSso_1.fromSso)(init), async () => {\n throw new property_provider_1.TokenProviderError(\"Could not load token from any providers\", false);\n}), (token) => token.expiration !== undefined && token.expiration.getTime() - Date.now() < 300000, (token) => token.expiration !== undefined);\nexports.nodeProvider = nodeProvider;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./fromSso\"), exports);\ntslib_1.__exportStar(require(\"./fromStatic\"), exports);\ntslib_1.__exportStar(require(\"./nodeProvider\"), exports);\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.resolveSSOCredentials = void 0;\nconst client_sso_1 = require(\"@aws-sdk/client-sso\");\nconst property_provider_1 = require(\"@aws-sdk/property-provider\");\nconst shared_ini_file_loader_1 = require(\"@aws-sdk/shared-ini-file-loader\");\nconst token_providers_1 = require(\"@aws-sdk/token-providers\");\nconst EXPIRE_WINDOW_MS = 15 * 60 * 1000;\nconst SHOULD_FAIL_CREDENTIAL_CHAIN = false;\nconst resolveSSOCredentials = async ({ ssoStartUrl, ssoSession, ssoAccountId, ssoRegion, ssoRoleName, ssoClient, profile, }) => {\n let token;\n const refreshMessage = `To refresh this SSO session run aws sso login with the corresponding profile.`;\n if (ssoSession) {\n try {\n const _token = await (0, token_providers_1.fromSso)({ profile })();\n token = {\n accessToken: _token.token,\n expiresAt: new Date(_token.expiration).toISOString(),\n };\n }\n catch (e) {\n throw new property_provider_1.CredentialsProviderError(e.message, SHOULD_FAIL_CREDENTIAL_CHAIN);\n }\n }\n else {\n try {\n token = await (0, shared_ini_file_loader_1.getSSOTokenFromFile)(ssoStartUrl);\n }\n catch (e) {\n throw new property_provider_1.CredentialsProviderError(`The SSO session associated with this profile is invalid. ${refreshMessage}`, SHOULD_FAIL_CREDENTIAL_CHAIN);\n }\n }\n if (new Date(token.expiresAt).getTime() - Date.now() <= EXPIRE_WINDOW_MS) {\n throw new property_provider_1.CredentialsProviderError(`The SSO session associated with this profile has expired. ${refreshMessage}`, SHOULD_FAIL_CREDENTIAL_CHAIN);\n }\n const { accessToken } = token;\n const sso = ssoClient || new client_sso_1.SSOClient({ region: ssoRegion });\n let ssoResp;\n try {\n ssoResp = await sso.send(new client_sso_1.GetRoleCredentialsCommand({\n accountId: ssoAccountId,\n roleName: ssoRoleName,\n accessToken,\n }));\n }\n catch (e) {\n throw property_provider_1.CredentialsProviderError.from(e, SHOULD_FAIL_CREDENTIAL_CHAIN);\n }\n const { roleCredentials: { accessKeyId, secretAccessKey, sessionToken, expiration } = {} } = ssoResp;\n if (!accessKeyId || !secretAccessKey || !sessionToken || !expiration) {\n throw new property_provider_1.CredentialsProviderError(\"SSO returns an invalid temporary credential.\", SHOULD_FAIL_CREDENTIAL_CHAIN);\n }\n return { accessKeyId, secretAccessKey, sessionToken, expiration: new Date(expiration) };\n};\nexports.resolveSSOCredentials = resolveSSOCredentials;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.validateSsoProfile = void 0;\nconst property_provider_1 = require(\"@aws-sdk/property-provider\");\nconst validateSsoProfile = (profile) => {\n const { sso_start_url, sso_account_id, sso_region, sso_role_name } = profile;\n if (!sso_start_url || !sso_account_id || !sso_region || !sso_role_name) {\n throw new property_provider_1.CredentialsProviderError(`Profile is configured with invalid SSO credentials. Required parameters \"sso_account_id\", ` +\n `\"sso_region\", \"sso_role_name\", \"sso_start_url\". Got ${Object.keys(profile).join(\", \")}\\nReference: https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-sso.html`, false);\n }\n return profile;\n};\nexports.validateSsoProfile = validateSsoProfile;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fromSSO = void 0;\nconst property_provider_1 = require(\"@aws-sdk/property-provider\");\nconst shared_ini_file_loader_1 = require(\"@aws-sdk/shared-ini-file-loader\");\nconst isSsoProfile_1 = require(\"./isSsoProfile\");\nconst resolveSSOCredentials_1 = require(\"./resolveSSOCredentials\");\nconst validateSsoProfile_1 = require(\"./validateSsoProfile\");\nconst fromSSO = (init = {}) => async () => {\n const { ssoStartUrl, ssoAccountId, ssoRegion, ssoRoleName, ssoClient, ssoSession } = init;\n const profileName = (0, shared_ini_file_loader_1.getProfileName)(init);\n if (!ssoStartUrl && !ssoAccountId && !ssoRegion && !ssoRoleName && !ssoSession) {\n const profiles = await (0, shared_ini_file_loader_1.parseKnownFiles)(init);\n const profile = profiles[profileName];\n if (!profile) {\n throw new property_provider_1.CredentialsProviderError(`Profile ${profileName} was not found.`);\n }\n if (!(0, isSsoProfile_1.isSsoProfile)(profile)) {\n throw new property_provider_1.CredentialsProviderError(`Profile ${profileName} is not configured with SSO credentials.`);\n }\n if (profile === null || profile === void 0 ? void 0 : profile.sso_session) {\n const ssoSessions = await (0, shared_ini_file_loader_1.loadSsoSessionData)(init);\n const session = ssoSessions[profile.sso_session];\n const conflictMsg = ` configurations in profile ${profileName} and sso-session ${profile.sso_session}`;\n if (ssoRegion && ssoRegion !== session.sso_region) {\n throw new property_provider_1.CredentialsProviderError(`Conflicting SSO region` + conflictMsg, false);\n }\n if (ssoStartUrl && ssoStartUrl !== session.sso_start_url) {\n throw new property_provider_1.CredentialsProviderError(`Conflicting SSO start_url` + conflictMsg, false);\n }\n profile.sso_region = session.sso_region;\n profile.sso_start_url = session.sso_start_url;\n }\n const { sso_start_url, sso_account_id, sso_region, sso_role_name, sso_session } = (0, validateSsoProfile_1.validateSsoProfile)(profile);\n return (0, resolveSSOCredentials_1.resolveSSOCredentials)({\n ssoStartUrl: sso_start_url,\n ssoSession: sso_session,\n ssoAccountId: sso_account_id,\n ssoRegion: sso_region,\n ssoRoleName: sso_role_name,\n ssoClient: ssoClient,\n profile: profileName,\n });\n }\n else if (!ssoStartUrl || !ssoAccountId || !ssoRegion || !ssoRoleName) {\n throw new property_provider_1.CredentialsProviderError(\"Incomplete configuration. The fromSSO() argument hash must include \" +\n '\"ssoStartUrl\", \"ssoAccountId\", \"ssoRegion\", \"ssoRoleName\"');\n }\n else {\n return (0, resolveSSOCredentials_1.resolveSSOCredentials)({\n ssoStartUrl,\n ssoSession,\n ssoAccountId,\n ssoRegion,\n ssoRoleName,\n ssoClient,\n profile: profileName,\n });\n }\n};\nexports.fromSSO = fromSSO;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./fromSSO\"), exports);\ntslib_1.__exportStar(require(\"./isSsoProfile\"), exports);\ntslib_1.__exportStar(require(\"./types\"), exports);\ntslib_1.__exportStar(require(\"./validateSsoProfile\"), exports);\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.resolveSsoCredentials = exports.isSsoProfile = void 0;\nconst credential_provider_sso_1 = require(\"@aws-sdk/credential-provider-sso\");\nvar credential_provider_sso_2 = require(\"@aws-sdk/credential-provider-sso\");\nObject.defineProperty(exports, \"isSsoProfile\", { enumerable: true, get: function () { return credential_provider_sso_2.isSsoProfile; } });\nconst resolveSsoCredentials = (data) => {\n const { sso_start_url, sso_account_id, sso_session, sso_region, sso_role_name } = (0, credential_provider_sso_1.validateSsoProfile)(data);\n return (0, credential_provider_sso_1.fromSSO)({\n ssoStartUrl: sso_start_url,\n ssoAccountId: sso_account_id,\n ssoSession: sso_session,\n ssoRegion: sso_region,\n ssoRoleName: sso_role_name,\n })();\n};\nexports.resolveSsoCredentials = resolveSsoCredentials;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.resolveStaticCredentials = exports.isStaticCredsProfile = void 0;\nconst isStaticCredsProfile = (arg) => Boolean(arg) &&\n typeof arg === \"object\" &&\n typeof arg.aws_access_key_id === \"string\" &&\n typeof arg.aws_secret_access_key === \"string\" &&\n [\"undefined\", \"string\"].indexOf(typeof arg.aws_session_token) > -1;\nexports.isStaticCredsProfile = isStaticCredsProfile;\nconst resolveStaticCredentials = (profile) => Promise.resolve({\n accessKeyId: profile.aws_access_key_id,\n secretAccessKey: profile.aws_secret_access_key,\n sessionToken: profile.aws_session_token,\n});\nexports.resolveStaticCredentials = resolveStaticCredentials;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fromWebToken = void 0;\nconst property_provider_1 = require(\"@aws-sdk/property-provider\");\nconst fromWebToken = (init) => () => {\n const { roleArn, roleSessionName, webIdentityToken, providerId, policyArns, policy, durationSeconds, roleAssumerWithWebIdentity, } = init;\n if (!roleAssumerWithWebIdentity) {\n throw new property_provider_1.CredentialsProviderError(`Role Arn '${roleArn}' needs to be assumed with web identity,` +\n ` but no role assumption callback was provided.`, false);\n }\n return roleAssumerWithWebIdentity({\n RoleArn: roleArn,\n RoleSessionName: roleSessionName !== null && roleSessionName !== void 0 ? roleSessionName : `aws-sdk-js-session-${Date.now()}`,\n WebIdentityToken: webIdentityToken,\n ProviderId: providerId,\n PolicyArns: policyArns,\n Policy: policy,\n DurationSeconds: durationSeconds,\n });\n};\nexports.fromWebToken = fromWebToken;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fromTokenFile = void 0;\nconst property_provider_1 = require(\"@aws-sdk/property-provider\");\nconst fs_1 = require(\"fs\");\nconst fromWebToken_1 = require(\"./fromWebToken\");\nconst ENV_TOKEN_FILE = \"AWS_WEB_IDENTITY_TOKEN_FILE\";\nconst ENV_ROLE_ARN = \"AWS_ROLE_ARN\";\nconst ENV_ROLE_SESSION_NAME = \"AWS_ROLE_SESSION_NAME\";\nconst fromTokenFile = (init = {}) => async () => {\n return resolveTokenFile(init);\n};\nexports.fromTokenFile = fromTokenFile;\nconst resolveTokenFile = (init) => {\n var _a, _b, _c;\n const webIdentityTokenFile = (_a = init === null || init === void 0 ? void 0 : init.webIdentityTokenFile) !== null && _a !== void 0 ? _a : process.env[ENV_TOKEN_FILE];\n const roleArn = (_b = init === null || init === void 0 ? void 0 : init.roleArn) !== null && _b !== void 0 ? _b : process.env[ENV_ROLE_ARN];\n const roleSessionName = (_c = init === null || init === void 0 ? void 0 : init.roleSessionName) !== null && _c !== void 0 ? _c : process.env[ENV_ROLE_SESSION_NAME];\n if (!webIdentityTokenFile || !roleArn) {\n throw new property_provider_1.CredentialsProviderError(\"Web identity configuration not specified\");\n }\n return (0, fromWebToken_1.fromWebToken)({\n ...init,\n webIdentityToken: (0, fs_1.readFileSync)(webIdentityTokenFile, { encoding: \"ascii\" }),\n roleArn,\n roleSessionName,\n })();\n};\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./fromTokenFile\"), exports);\ntslib_1.__exportStar(require(\"./fromWebToken\"), exports);\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.resolveWebIdentityCredentials = exports.isWebIdentityProfile = void 0;\nconst credential_provider_web_identity_1 = require(\"@aws-sdk/credential-provider-web-identity\");\nconst isWebIdentityProfile = (arg) => Boolean(arg) &&\n typeof arg === \"object\" &&\n typeof arg.web_identity_token_file === \"string\" &&\n typeof arg.role_arn === \"string\" &&\n [\"undefined\", \"string\"].indexOf(typeof arg.role_session_name) > -1;\nexports.isWebIdentityProfile = isWebIdentityProfile;\nconst resolveWebIdentityCredentials = async (profile, options) => (0, credential_provider_web_identity_1.fromTokenFile)({\n webIdentityTokenFile: profile.web_identity_token_file,\n roleArn: profile.role_arn,\n roleSessionName: profile.role_session_name,\n roleAssumerWithWebIdentity: options.roleAssumerWithWebIdentity,\n})();\nexports.resolveWebIdentityCredentials = resolveWebIdentityCredentials;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.resolveProfileData = void 0;\nconst property_provider_1 = require(\"@aws-sdk/property-provider\");\nconst resolveAssumeRoleCredentials_1 = require(\"./resolveAssumeRoleCredentials\");\nconst resolveProcessCredentials_1 = require(\"./resolveProcessCredentials\");\nconst resolveSsoCredentials_1 = require(\"./resolveSsoCredentials\");\nconst resolveStaticCredentials_1 = require(\"./resolveStaticCredentials\");\nconst resolveWebIdentityCredentials_1 = require(\"./resolveWebIdentityCredentials\");\nconst resolveProfileData = async (profileName, profiles, options, visitedProfiles = {}) => {\n const data = profiles[profileName];\n if (Object.keys(visitedProfiles).length > 0 && (0, resolveStaticCredentials_1.isStaticCredsProfile)(data)) {\n return (0, resolveStaticCredentials_1.resolveStaticCredentials)(data);\n }\n if ((0, resolveAssumeRoleCredentials_1.isAssumeRoleProfile)(data)) {\n return (0, resolveAssumeRoleCredentials_1.resolveAssumeRoleCredentials)(profileName, profiles, options, visitedProfiles);\n }\n if ((0, resolveStaticCredentials_1.isStaticCredsProfile)(data)) {\n return (0, resolveStaticCredentials_1.resolveStaticCredentials)(data);\n }\n if ((0, resolveWebIdentityCredentials_1.isWebIdentityProfile)(data)) {\n return (0, resolveWebIdentityCredentials_1.resolveWebIdentityCredentials)(data, options);\n }\n if ((0, resolveProcessCredentials_1.isProcessProfile)(data)) {\n return (0, resolveProcessCredentials_1.resolveProcessCredentials)(options, profileName);\n }\n if ((0, resolveSsoCredentials_1.isSsoProfile)(data)) {\n return (0, resolveSsoCredentials_1.resolveSsoCredentials)(data);\n }\n throw new property_provider_1.CredentialsProviderError(`Profile ${profileName} could not be found or parsed in shared credentials file.`);\n};\nexports.resolveProfileData = resolveProfileData;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fromIni = void 0;\nconst shared_ini_file_loader_1 = require(\"@aws-sdk/shared-ini-file-loader\");\nconst resolveProfileData_1 = require(\"./resolveProfileData\");\nconst fromIni = (init = {}) => async () => {\n const profiles = await (0, shared_ini_file_loader_1.parseKnownFiles)(init);\n return (0, resolveProfileData_1.resolveProfileData)((0, shared_ini_file_loader_1.getProfileName)(init), profiles, init);\n};\nexports.fromIni = fromIni;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./fromIni\"), exports);\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.remoteProvider = exports.ENV_IMDS_DISABLED = void 0;\nconst credential_provider_imds_1 = require(\"@aws-sdk/credential-provider-imds\");\nconst property_provider_1 = require(\"@aws-sdk/property-provider\");\nexports.ENV_IMDS_DISABLED = \"AWS_EC2_METADATA_DISABLED\";\nconst remoteProvider = (init) => {\n if (process.env[credential_provider_imds_1.ENV_CMDS_RELATIVE_URI] || process.env[credential_provider_imds_1.ENV_CMDS_FULL_URI]) {\n return (0, credential_provider_imds_1.fromContainerMetadata)(init);\n }\n if (process.env[exports.ENV_IMDS_DISABLED]) {\n return async () => {\n throw new property_provider_1.CredentialsProviderError(\"EC2 Instance Metadata Service access disabled\");\n };\n }\n return (0, credential_provider_imds_1.fromInstanceMetadata)(init);\n};\nexports.remoteProvider = remoteProvider;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.defaultProvider = void 0;\nconst credential_provider_env_1 = require(\"@aws-sdk/credential-provider-env\");\nconst credential_provider_ini_1 = require(\"@aws-sdk/credential-provider-ini\");\nconst credential_provider_process_1 = require(\"@aws-sdk/credential-provider-process\");\nconst credential_provider_sso_1 = require(\"@aws-sdk/credential-provider-sso\");\nconst credential_provider_web_identity_1 = require(\"@aws-sdk/credential-provider-web-identity\");\nconst property_provider_1 = require(\"@aws-sdk/property-provider\");\nconst shared_ini_file_loader_1 = require(\"@aws-sdk/shared-ini-file-loader\");\nconst remoteProvider_1 = require(\"./remoteProvider\");\nconst defaultProvider = (init = {}) => (0, property_provider_1.memoize)((0, property_provider_1.chain)(...(init.profile || process.env[shared_ini_file_loader_1.ENV_PROFILE] ? [] : [(0, credential_provider_env_1.fromEnv)()]), (0, credential_provider_sso_1.fromSSO)(init), (0, credential_provider_ini_1.fromIni)(init), (0, credential_provider_process_1.fromProcess)(init), (0, credential_provider_web_identity_1.fromTokenFile)(init), (0, remoteProvider_1.remoteProvider)(init), async () => {\n throw new property_provider_1.CredentialsProviderError(\"Could not load credentials from any providers\", false);\n}), (credentials) => credentials.expiration !== undefined && credentials.expiration.getTime() - Date.now() < 300000, (credentials) => credentials.expiration !== undefined);\nexports.defaultProvider = defaultProvider;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./defaultProvider\"), exports);\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ruleSet = void 0;\nconst G = \"required\", H = \"type\", I = \"fn\", J = \"argv\", K = \"ref\", L = \"properties\", M = \"headers\";\nconst a = false, b = true, c = \"PartitionResult\", d = \"tree\", e = \"booleanEquals\", f = \"stringEquals\", g = \"sigv4\", h = \"us-east-1\", i = \"sts\", j = \"endpoint\", k = \"https://sts.{Region}.{PartitionResult#dnsSuffix}\", l = \"error\", m = \"getAttr\", n = { [G]: false, [H]: \"String\" }, o = { [G]: true, \"default\": false, [H]: \"Boolean\" }, p = { [K]: \"Region\" }, q = { [K]: \"UseFIPS\" }, r = { [K]: \"UseDualStack\" }, s = { [I]: \"isSet\", [J]: [{ [K]: \"Endpoint\" }] }, t = { [K]: \"Endpoint\" }, u = { \"url\": \"https://sts.amazonaws.com\", [L]: { \"authSchemes\": [{ \"name\": g, \"signingRegion\": h, \"signingName\": i }] }, [M]: {} }, v = {}, w = { \"conditions\": [{ [I]: f, [J]: [p, \"aws-global\"] }], [j]: u, [H]: j }, x = { [I]: e, [J]: [q, true] }, y = { [I]: e, [J]: [r, true] }, z = { [I]: e, [J]: [true, { [I]: m, [J]: [{ [K]: c }, \"supportsFIPS\"] }] }, A = { [K]: c }, B = { [I]: e, [J]: [true, { [I]: m, [J]: [A, \"supportsDualStack\"] }] }, C = { \"url\": k, [L]: {}, [M]: {} }, D = [t], E = [x], F = [y];\nconst _data = { version: \"1.0\", parameters: { Region: n, UseDualStack: o, UseFIPS: o, Endpoint: n, UseGlobalEndpoint: o }, rules: [{ conditions: [{ [I]: \"aws.partition\", [J]: [p], assign: c }], [H]: d, rules: [{ conditions: [{ [I]: e, [J]: [{ [K]: \"UseGlobalEndpoint\" }, b] }, { [I]: e, [J]: [q, a] }, { [I]: e, [J]: [r, a] }, { [I]: \"not\", [J]: [s] }], [H]: d, rules: [{ conditions: [{ [I]: f, [J]: [p, \"ap-northeast-1\"] }], endpoint: u, [H]: j }, { conditions: [{ [I]: f, [J]: [p, \"ap-south-1\"] }], endpoint: u, [H]: j }, { conditions: [{ [I]: f, [J]: [p, \"ap-southeast-1\"] }], endpoint: u, [H]: j }, { conditions: [{ [I]: f, [J]: [p, \"ap-southeast-2\"] }], endpoint: u, [H]: j }, w, { conditions: [{ [I]: f, [J]: [p, \"ca-central-1\"] }], endpoint: u, [H]: j }, { conditions: [{ [I]: f, [J]: [p, \"eu-central-1\"] }], endpoint: u, [H]: j }, { conditions: [{ [I]: f, [J]: [p, \"eu-north-1\"] }], endpoint: u, [H]: j }, { conditions: [{ [I]: f, [J]: [p, \"eu-west-1\"] }], endpoint: u, [H]: j }, { conditions: [{ [I]: f, [J]: [p, \"eu-west-2\"] }], endpoint: u, [H]: j }, { conditions: [{ [I]: f, [J]: [p, \"eu-west-3\"] }], endpoint: u, [H]: j }, { conditions: [{ [I]: f, [J]: [p, \"sa-east-1\"] }], endpoint: u, [H]: j }, { conditions: [{ [I]: f, [J]: [p, h] }], endpoint: u, [H]: j }, { conditions: [{ [I]: f, [J]: [p, \"us-east-2\"] }], endpoint: u, [H]: j }, { conditions: [{ [I]: f, [J]: [p, \"us-west-1\"] }], endpoint: u, [H]: j }, { conditions: [{ [I]: f, [J]: [p, \"us-west-2\"] }], endpoint: u, [H]: j }, { endpoint: { url: k, [L]: { authSchemes: [{ name: g, signingRegion: \"{Region}\", signingName: i }] }, [M]: v }, [H]: j }] }, { conditions: [s, { [I]: \"parseURL\", [J]: D, assign: \"url\" }], [H]: d, rules: [{ conditions: E, error: \"Invalid Configuration: FIPS and custom endpoint are not supported\", [H]: l }, { [H]: d, rules: [{ conditions: F, error: \"Invalid Configuration: Dualstack and custom endpoint are not supported\", [H]: l }, { endpoint: { url: t, [L]: v, [M]: v }, [H]: j }] }] }, { conditions: [x, y], [H]: d, rules: [{ conditions: [z, B], [H]: d, rules: [{ endpoint: { url: \"https://sts-fips.{Region}.{PartitionResult#dualStackDnsSuffix}\", [L]: v, [M]: v }, [H]: j }] }, { error: \"FIPS and DualStack are enabled, but this partition does not support one or both\", [H]: l }] }, { conditions: E, [H]: d, rules: [{ conditions: [z], [H]: d, rules: [{ [H]: d, rules: [{ conditions: [{ [I]: f, [J]: [\"aws-us-gov\", { [I]: m, [J]: [A, \"name\"] }] }], endpoint: C, [H]: j }, { endpoint: { url: \"https://sts-fips.{Region}.{PartitionResult#dnsSuffix}\", [L]: v, [M]: v }, [H]: j }] }] }, { error: \"FIPS is enabled but this partition does not support FIPS\", [H]: l }] }, { conditions: F, [H]: d, rules: [{ conditions: [B], [H]: d, rules: [{ endpoint: { url: \"https://sts.{Region}.{PartitionResult#dualStackDnsSuffix}\", [L]: v, [M]: v }, [H]: j }] }, { error: \"DualStack is enabled but this partition does not support DualStack\", [H]: l }] }, { [H]: d, rules: [w, { endpoint: C, [H]: j }] }] }] };\nexports.ruleSet = _data;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.defaultEndpointResolver = void 0;\nconst util_endpoints_1 = require(\"@aws-sdk/util-endpoints\");\nconst ruleset_1 = require(\"./ruleset\");\nconst defaultEndpointResolver = (endpointParams, context = {}) => {\n return (0, util_endpoints_1.resolveEndpoint)(ruleset_1.ruleSet, {\n endpointParams: endpointParams,\n logger: context.logger,\n });\n};\nexports.defaultEndpointResolver = defaultEndpointResolver;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRuntimeConfig = void 0;\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst url_parser_1 = require(\"@aws-sdk/url-parser\");\nconst util_base64_1 = require(\"@aws-sdk/util-base64\");\nconst util_utf8_1 = require(\"@aws-sdk/util-utf8\");\nconst endpointResolver_1 = require(\"./endpoint/endpointResolver\");\nconst getRuntimeConfig = (config) => ({\n apiVersion: \"2011-06-15\",\n base64Decoder: config?.base64Decoder ?? util_base64_1.fromBase64,\n base64Encoder: config?.base64Encoder ?? util_base64_1.toBase64,\n disableHostPrefix: config?.disableHostPrefix ?? false,\n endpointProvider: config?.endpointProvider ?? endpointResolver_1.defaultEndpointResolver,\n logger: config?.logger ?? new smithy_client_1.NoOpLogger(),\n serviceId: config?.serviceId ?? \"STS\",\n urlParser: config?.urlParser ?? url_parser_1.parseUrl,\n utf8Decoder: config?.utf8Decoder ?? util_utf8_1.fromUtf8,\n utf8Encoder: config?.utf8Encoder ?? util_utf8_1.toUtf8,\n});\nexports.getRuntimeConfig = getRuntimeConfig;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRuntimeConfig = void 0;\nconst tslib_1 = require(\"tslib\");\nconst package_json_1 = tslib_1.__importDefault(require(\"../package.json\"));\nconst defaultStsRoleAssumers_1 = require(\"./defaultStsRoleAssumers\");\nconst config_resolver_1 = require(\"@aws-sdk/config-resolver\");\nconst credential_provider_node_1 = require(\"@aws-sdk/credential-provider-node\");\nconst hash_node_1 = require(\"@aws-sdk/hash-node\");\nconst middleware_retry_1 = require(\"@aws-sdk/middleware-retry\");\nconst node_config_provider_1 = require(\"@aws-sdk/node-config-provider\");\nconst node_http_handler_1 = require(\"@aws-sdk/node-http-handler\");\nconst util_body_length_node_1 = require(\"@aws-sdk/util-body-length-node\");\nconst util_retry_1 = require(\"@aws-sdk/util-retry\");\nconst util_user_agent_node_1 = require(\"@aws-sdk/util-user-agent-node\");\nconst runtimeConfig_shared_1 = require(\"./runtimeConfig.shared\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst util_defaults_mode_node_1 = require(\"@aws-sdk/util-defaults-mode-node\");\nconst smithy_client_2 = require(\"@aws-sdk/smithy-client\");\nconst getRuntimeConfig = (config) => {\n (0, smithy_client_2.emitWarningIfUnsupportedVersion)(process.version);\n const defaultsMode = (0, util_defaults_mode_node_1.resolveDefaultsModeConfig)(config);\n const defaultConfigProvider = () => defaultsMode().then(smithy_client_1.loadConfigsForDefaultMode);\n const clientSharedValues = (0, runtimeConfig_shared_1.getRuntimeConfig)(config);\n return {\n ...clientSharedValues,\n ...config,\n runtime: \"node\",\n defaultsMode,\n bodyLengthChecker: config?.bodyLengthChecker ?? util_body_length_node_1.calculateBodyLength,\n credentialDefaultProvider: config?.credentialDefaultProvider ?? (0, defaultStsRoleAssumers_1.decorateDefaultCredentialProvider)(credential_provider_node_1.defaultProvider),\n defaultUserAgentProvider: config?.defaultUserAgentProvider ??\n (0, util_user_agent_node_1.defaultUserAgent)({ serviceId: clientSharedValues.serviceId, clientVersion: package_json_1.default.version }),\n maxAttempts: config?.maxAttempts ?? (0, node_config_provider_1.loadConfig)(middleware_retry_1.NODE_MAX_ATTEMPT_CONFIG_OPTIONS),\n region: config?.region ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_REGION_CONFIG_OPTIONS, config_resolver_1.NODE_REGION_CONFIG_FILE_OPTIONS),\n requestHandler: config?.requestHandler ?? new node_http_handler_1.NodeHttpHandler(defaultConfigProvider),\n retryMode: config?.retryMode ??\n (0, node_config_provider_1.loadConfig)({\n ...middleware_retry_1.NODE_RETRY_MODE_CONFIG_OPTIONS,\n default: async () => (await defaultConfigProvider()).retryMode || util_retry_1.DEFAULT_RETRY_MODE,\n }),\n sha256: config?.sha256 ?? hash_node_1.Hash.bind(null, \"sha256\"),\n streamCollector: config?.streamCollector ?? node_http_handler_1.streamCollector,\n useDualstackEndpoint: config?.useDualstackEndpoint ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS),\n useFipsEndpoint: config?.useFipsEndpoint ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS),\n };\n};\nexports.getRuntimeConfig = getRuntimeConfig;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.STSClient = void 0;\nconst config_resolver_1 = require(\"@aws-sdk/config-resolver\");\nconst middleware_content_length_1 = require(\"@aws-sdk/middleware-content-length\");\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_host_header_1 = require(\"@aws-sdk/middleware-host-header\");\nconst middleware_logger_1 = require(\"@aws-sdk/middleware-logger\");\nconst middleware_recursion_detection_1 = require(\"@aws-sdk/middleware-recursion-detection\");\nconst middleware_retry_1 = require(\"@aws-sdk/middleware-retry\");\nconst middleware_sdk_sts_1 = require(\"@aws-sdk/middleware-sdk-sts\");\nconst middleware_user_agent_1 = require(\"@aws-sdk/middleware-user-agent\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst EndpointParameters_1 = require(\"./endpoint/EndpointParameters\");\nconst runtimeConfig_1 = require(\"./runtimeConfig\");\nclass STSClient extends smithy_client_1.Client {\n constructor(configuration) {\n const _config_0 = (0, runtimeConfig_1.getRuntimeConfig)(configuration);\n const _config_1 = (0, EndpointParameters_1.resolveClientEndpointParameters)(_config_0);\n const _config_2 = (0, config_resolver_1.resolveRegionConfig)(_config_1);\n const _config_3 = (0, middleware_endpoint_1.resolveEndpointConfig)(_config_2);\n const _config_4 = (0, middleware_retry_1.resolveRetryConfig)(_config_3);\n const _config_5 = (0, middleware_host_header_1.resolveHostHeaderConfig)(_config_4);\n const _config_6 = (0, middleware_sdk_sts_1.resolveStsAuthConfig)(_config_5, { stsClientCtor: STSClient });\n const _config_7 = (0, middleware_user_agent_1.resolveUserAgentConfig)(_config_6);\n super(_config_7);\n this.config = _config_7;\n this.middlewareStack.use((0, middleware_retry_1.getRetryPlugin)(this.config));\n this.middlewareStack.use((0, middleware_content_length_1.getContentLengthPlugin)(this.config));\n this.middlewareStack.use((0, middleware_host_header_1.getHostHeaderPlugin)(this.config));\n this.middlewareStack.use((0, middleware_logger_1.getLoggerPlugin)(this.config));\n this.middlewareStack.use((0, middleware_recursion_detection_1.getRecursionDetectionPlugin)(this.config));\n this.middlewareStack.use((0, middleware_user_agent_1.getUserAgentPlugin)(this.config));\n }\n destroy() {\n super.destroy();\n }\n}\nexports.STSClient = STSClient;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.STS = void 0;\nconst AssumeRoleCommand_1 = require(\"./commands/AssumeRoleCommand\");\nconst AssumeRoleWithSAMLCommand_1 = require(\"./commands/AssumeRoleWithSAMLCommand\");\nconst AssumeRoleWithWebIdentityCommand_1 = require(\"./commands/AssumeRoleWithWebIdentityCommand\");\nconst DecodeAuthorizationMessageCommand_1 = require(\"./commands/DecodeAuthorizationMessageCommand\");\nconst GetAccessKeyInfoCommand_1 = require(\"./commands/GetAccessKeyInfoCommand\");\nconst GetCallerIdentityCommand_1 = require(\"./commands/GetCallerIdentityCommand\");\nconst GetFederationTokenCommand_1 = require(\"./commands/GetFederationTokenCommand\");\nconst GetSessionTokenCommand_1 = require(\"./commands/GetSessionTokenCommand\");\nconst STSClient_1 = require(\"./STSClient\");\nclass STS extends STSClient_1.STSClient {\n assumeRole(args, optionsOrCb, cb) {\n const command = new AssumeRoleCommand_1.AssumeRoleCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n assumeRoleWithSAML(args, optionsOrCb, cb) {\n const command = new AssumeRoleWithSAMLCommand_1.AssumeRoleWithSAMLCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n assumeRoleWithWebIdentity(args, optionsOrCb, cb) {\n const command = new AssumeRoleWithWebIdentityCommand_1.AssumeRoleWithWebIdentityCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n decodeAuthorizationMessage(args, optionsOrCb, cb) {\n const command = new DecodeAuthorizationMessageCommand_1.DecodeAuthorizationMessageCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n getAccessKeyInfo(args, optionsOrCb, cb) {\n const command = new GetAccessKeyInfoCommand_1.GetAccessKeyInfoCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n getCallerIdentity(args, optionsOrCb, cb) {\n const command = new GetCallerIdentityCommand_1.GetCallerIdentityCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n getFederationToken(args, optionsOrCb, cb) {\n const command = new GetFederationTokenCommand_1.GetFederationTokenCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n getSessionToken(args, optionsOrCb, cb) {\n const command = new GetSessionTokenCommand_1.GetSessionTokenCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n}\nexports.STS = STS;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./AssumeRoleCommand\"), exports);\ntslib_1.__exportStar(require(\"./AssumeRoleWithSAMLCommand\"), exports);\ntslib_1.__exportStar(require(\"./AssumeRoleWithWebIdentityCommand\"), exports);\ntslib_1.__exportStar(require(\"./DecodeAuthorizationMessageCommand\"), exports);\ntslib_1.__exportStar(require(\"./GetAccessKeyInfoCommand\"), exports);\ntslib_1.__exportStar(require(\"./GetCallerIdentityCommand\"), exports);\ntslib_1.__exportStar(require(\"./GetFederationTokenCommand\"), exports);\ntslib_1.__exportStar(require(\"./GetSessionTokenCommand\"), exports);\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.decorateDefaultCredentialProvider = exports.getDefaultRoleAssumerWithWebIdentity = exports.getDefaultRoleAssumer = void 0;\nconst defaultStsRoleAssumers_1 = require(\"./defaultStsRoleAssumers\");\nconst STSClient_1 = require(\"./STSClient\");\nconst getCustomizableStsClientCtor = (baseCtor, customizations) => {\n if (!customizations)\n return baseCtor;\n else\n return class CustomizableSTSClient extends baseCtor {\n constructor(config) {\n super(config);\n for (const customization of customizations) {\n this.middlewareStack.use(customization);\n }\n }\n };\n};\nconst getDefaultRoleAssumer = (stsOptions = {}, stsPlugins) => (0, defaultStsRoleAssumers_1.getDefaultRoleAssumer)(stsOptions, getCustomizableStsClientCtor(STSClient_1.STSClient, stsPlugins));\nexports.getDefaultRoleAssumer = getDefaultRoleAssumer;\nconst getDefaultRoleAssumerWithWebIdentity = (stsOptions = {}, stsPlugins) => (0, defaultStsRoleAssumers_1.getDefaultRoleAssumerWithWebIdentity)(stsOptions, getCustomizableStsClientCtor(STSClient_1.STSClient, stsPlugins));\nexports.getDefaultRoleAssumerWithWebIdentity = getDefaultRoleAssumerWithWebIdentity;\nconst decorateDefaultCredentialProvider = (provider) => (input) => provider({\n roleAssumer: (0, exports.getDefaultRoleAssumer)(input),\n roleAssumerWithWebIdentity: (0, exports.getDefaultRoleAssumerWithWebIdentity)(input),\n ...input,\n});\nexports.decorateDefaultCredentialProvider = decorateDefaultCredentialProvider;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./models_0\"), exports);\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.STSServiceException = void 0;\nconst tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./STS\"), exports);\ntslib_1.__exportStar(require(\"./STSClient\"), exports);\ntslib_1.__exportStar(require(\"./commands\"), exports);\ntslib_1.__exportStar(require(\"./defaultRoleAssumers\"), exports);\ntslib_1.__exportStar(require(\"./models\"), exports);\nvar STSServiceException_1 = require(\"./models/STSServiceException\");\nObject.defineProperty(exports, \"STSServiceException\", { enumerable: true, get: function () { return STSServiceException_1.STSServiceException; } });\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ruleSet = void 0;\nconst p = \"required\", q = \"fn\", r = \"argv\", s = \"ref\";\nconst a = \"PartitionResult\", b = \"tree\", c = \"error\", d = \"endpoint\", e = { [p]: false, \"type\": \"String\" }, f = { [p]: true, \"default\": false, \"type\": \"Boolean\" }, g = { [s]: \"Endpoint\" }, h = { [q]: \"booleanEquals\", [r]: [{ [s]: \"UseFIPS\" }, true] }, i = { [q]: \"booleanEquals\", [r]: [{ [s]: \"UseDualStack\" }, true] }, j = {}, k = { [q]: \"booleanEquals\", [r]: [true, { [q]: \"getAttr\", [r]: [{ [s]: a }, \"supportsFIPS\"] }] }, l = { [q]: \"booleanEquals\", [r]: [true, { [q]: \"getAttr\", [r]: [{ [s]: a }, \"supportsDualStack\"] }] }, m = [g], n = [h], o = [i];\nconst _data = { version: \"1.0\", parameters: { Region: e, UseDualStack: f, UseFIPS: f, Endpoint: e }, rules: [{ conditions: [{ [q]: \"aws.partition\", [r]: [{ [s]: \"Region\" }], assign: a }], type: b, rules: [{ conditions: [{ [q]: \"isSet\", [r]: m }, { [q]: \"parseURL\", [r]: m, assign: \"url\" }], type: b, rules: [{ conditions: n, error: \"Invalid Configuration: FIPS and custom endpoint are not supported\", type: c }, { type: b, rules: [{ conditions: o, error: \"Invalid Configuration: Dualstack and custom endpoint are not supported\", type: c }, { endpoint: { url: g, properties: j, headers: j }, type: d }] }] }, { conditions: [h, i], type: b, rules: [{ conditions: [k, l], type: b, rules: [{ endpoint: { url: \"https://cognito-identity-fips.{Region}.{PartitionResult#dualStackDnsSuffix}\", properties: j, headers: j }, type: d }] }, { error: \"FIPS and DualStack are enabled, but this partition does not support one or both\", type: c }] }, { conditions: n, type: b, rules: [{ conditions: [k], type: b, rules: [{ type: b, rules: [{ endpoint: { url: \"https://cognito-identity-fips.{Region}.{PartitionResult#dnsSuffix}\", properties: j, headers: j }, type: d }] }] }, { error: \"FIPS is enabled but this partition does not support FIPS\", type: c }] }, { conditions: o, type: b, rules: [{ conditions: [l], type: b, rules: [{ endpoint: { url: \"https://cognito-identity.{Region}.{PartitionResult#dualStackDnsSuffix}\", properties: j, headers: j }, type: d }] }, { error: \"DualStack is enabled but this partition does not support DualStack\", type: c }] }, { endpoint: { url: \"https://cognito-identity.{Region}.{PartitionResult#dnsSuffix}\", properties: j, headers: j }, type: d }] }] };\nexports.ruleSet = _data;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.defaultEndpointResolver = void 0;\nconst util_endpoints_1 = require(\"@aws-sdk/util-endpoints\");\nconst ruleset_1 = require(\"./ruleset\");\nconst defaultEndpointResolver = (endpointParams, context = {}) => {\n return (0, util_endpoints_1.resolveEndpoint)(ruleset_1.ruleSet, {\n endpointParams: endpointParams,\n logger: context.logger,\n });\n};\nexports.defaultEndpointResolver = defaultEndpointResolver;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRuntimeConfig = void 0;\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst url_parser_1 = require(\"@aws-sdk/url-parser\");\nconst util_base64_1 = require(\"@aws-sdk/util-base64\");\nconst util_utf8_1 = require(\"@aws-sdk/util-utf8\");\nconst endpointResolver_1 = require(\"./endpoint/endpointResolver\");\nconst getRuntimeConfig = (config) => ({\n apiVersion: \"2014-06-30\",\n base64Decoder: config?.base64Decoder ?? util_base64_1.fromBase64,\n base64Encoder: config?.base64Encoder ?? util_base64_1.toBase64,\n disableHostPrefix: config?.disableHostPrefix ?? false,\n endpointProvider: config?.endpointProvider ?? endpointResolver_1.defaultEndpointResolver,\n logger: config?.logger ?? new smithy_client_1.NoOpLogger(),\n serviceId: config?.serviceId ?? \"Cognito Identity\",\n urlParser: config?.urlParser ?? url_parser_1.parseUrl,\n utf8Decoder: config?.utf8Decoder ?? util_utf8_1.fromUtf8,\n utf8Encoder: config?.utf8Encoder ?? util_utf8_1.toUtf8,\n});\nexports.getRuntimeConfig = getRuntimeConfig;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRuntimeConfig = void 0;\nconst tslib_1 = require(\"tslib\");\nconst package_json_1 = tslib_1.__importDefault(require(\"../package.json\"));\nconst client_sts_1 = require(\"@aws-sdk/client-sts\");\nconst config_resolver_1 = require(\"@aws-sdk/config-resolver\");\nconst credential_provider_node_1 = require(\"@aws-sdk/credential-provider-node\");\nconst hash_node_1 = require(\"@aws-sdk/hash-node\");\nconst middleware_retry_1 = require(\"@aws-sdk/middleware-retry\");\nconst node_config_provider_1 = require(\"@aws-sdk/node-config-provider\");\nconst node_http_handler_1 = require(\"@aws-sdk/node-http-handler\");\nconst util_body_length_node_1 = require(\"@aws-sdk/util-body-length-node\");\nconst util_retry_1 = require(\"@aws-sdk/util-retry\");\nconst util_user_agent_node_1 = require(\"@aws-sdk/util-user-agent-node\");\nconst runtimeConfig_shared_1 = require(\"./runtimeConfig.shared\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst util_defaults_mode_node_1 = require(\"@aws-sdk/util-defaults-mode-node\");\nconst smithy_client_2 = require(\"@aws-sdk/smithy-client\");\nconst getRuntimeConfig = (config) => {\n (0, smithy_client_2.emitWarningIfUnsupportedVersion)(process.version);\n const defaultsMode = (0, util_defaults_mode_node_1.resolveDefaultsModeConfig)(config);\n const defaultConfigProvider = () => defaultsMode().then(smithy_client_1.loadConfigsForDefaultMode);\n const clientSharedValues = (0, runtimeConfig_shared_1.getRuntimeConfig)(config);\n return {\n ...clientSharedValues,\n ...config,\n runtime: \"node\",\n defaultsMode,\n bodyLengthChecker: config?.bodyLengthChecker ?? util_body_length_node_1.calculateBodyLength,\n credentialDefaultProvider: config?.credentialDefaultProvider ?? (0, client_sts_1.decorateDefaultCredentialProvider)(credential_provider_node_1.defaultProvider),\n defaultUserAgentProvider: config?.defaultUserAgentProvider ??\n (0, util_user_agent_node_1.defaultUserAgent)({ serviceId: clientSharedValues.serviceId, clientVersion: package_json_1.default.version }),\n maxAttempts: config?.maxAttempts ?? (0, node_config_provider_1.loadConfig)(middleware_retry_1.NODE_MAX_ATTEMPT_CONFIG_OPTIONS),\n region: config?.region ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_REGION_CONFIG_OPTIONS, config_resolver_1.NODE_REGION_CONFIG_FILE_OPTIONS),\n requestHandler: config?.requestHandler ?? new node_http_handler_1.NodeHttpHandler(defaultConfigProvider),\n retryMode: config?.retryMode ??\n (0, node_config_provider_1.loadConfig)({\n ...middleware_retry_1.NODE_RETRY_MODE_CONFIG_OPTIONS,\n default: async () => (await defaultConfigProvider()).retryMode || util_retry_1.DEFAULT_RETRY_MODE,\n }),\n sha256: config?.sha256 ?? hash_node_1.Hash.bind(null, \"sha256\"),\n streamCollector: config?.streamCollector ?? node_http_handler_1.streamCollector,\n useDualstackEndpoint: config?.useDualstackEndpoint ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS),\n useFipsEndpoint: config?.useFipsEndpoint ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS),\n };\n};\nexports.getRuntimeConfig = getRuntimeConfig;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CognitoIdentityClient = void 0;\nconst config_resolver_1 = require(\"@aws-sdk/config-resolver\");\nconst middleware_content_length_1 = require(\"@aws-sdk/middleware-content-length\");\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_host_header_1 = require(\"@aws-sdk/middleware-host-header\");\nconst middleware_logger_1 = require(\"@aws-sdk/middleware-logger\");\nconst middleware_recursion_detection_1 = require(\"@aws-sdk/middleware-recursion-detection\");\nconst middleware_retry_1 = require(\"@aws-sdk/middleware-retry\");\nconst middleware_signing_1 = require(\"@aws-sdk/middleware-signing\");\nconst middleware_user_agent_1 = require(\"@aws-sdk/middleware-user-agent\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst EndpointParameters_1 = require(\"./endpoint/EndpointParameters\");\nconst runtimeConfig_1 = require(\"./runtimeConfig\");\nclass CognitoIdentityClient extends smithy_client_1.Client {\n constructor(configuration) {\n const _config_0 = (0, runtimeConfig_1.getRuntimeConfig)(configuration);\n const _config_1 = (0, EndpointParameters_1.resolveClientEndpointParameters)(_config_0);\n const _config_2 = (0, config_resolver_1.resolveRegionConfig)(_config_1);\n const _config_3 = (0, middleware_endpoint_1.resolveEndpointConfig)(_config_2);\n const _config_4 = (0, middleware_retry_1.resolveRetryConfig)(_config_3);\n const _config_5 = (0, middleware_host_header_1.resolveHostHeaderConfig)(_config_4);\n const _config_6 = (0, middleware_signing_1.resolveAwsAuthConfig)(_config_5);\n const _config_7 = (0, middleware_user_agent_1.resolveUserAgentConfig)(_config_6);\n super(_config_7);\n this.config = _config_7;\n this.middlewareStack.use((0, middleware_retry_1.getRetryPlugin)(this.config));\n this.middlewareStack.use((0, middleware_content_length_1.getContentLengthPlugin)(this.config));\n this.middlewareStack.use((0, middleware_host_header_1.getHostHeaderPlugin)(this.config));\n this.middlewareStack.use((0, middleware_logger_1.getLoggerPlugin)(this.config));\n this.middlewareStack.use((0, middleware_recursion_detection_1.getRecursionDetectionPlugin)(this.config));\n this.middlewareStack.use((0, middleware_user_agent_1.getUserAgentPlugin)(this.config));\n }\n destroy() {\n super.destroy();\n }\n}\nexports.CognitoIdentityClient = CognitoIdentityClient;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CognitoIdentityServiceException = void 0;\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nclass CognitoIdentityServiceException extends smithy_client_1.ServiceException {\n constructor(options) {\n super(options);\n Object.setPrototypeOf(this, CognitoIdentityServiceException.prototype);\n }\n}\nexports.CognitoIdentityServiceException = CognitoIdentityServiceException;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.LookupDeveloperIdentityResponseFilterSensitiveLog = exports.LookupDeveloperIdentityInputFilterSensitiveLog = exports.ListTagsForResourceResponseFilterSensitiveLog = exports.ListTagsForResourceInputFilterSensitiveLog = exports.ListIdentityPoolsResponseFilterSensitiveLog = exports.IdentityPoolShortDescriptionFilterSensitiveLog = exports.ListIdentityPoolsInputFilterSensitiveLog = exports.ListIdentitiesResponseFilterSensitiveLog = exports.ListIdentitiesInputFilterSensitiveLog = exports.GetPrincipalTagAttributeMapResponseFilterSensitiveLog = exports.GetPrincipalTagAttributeMapInputFilterSensitiveLog = exports.GetOpenIdTokenForDeveloperIdentityResponseFilterSensitiveLog = exports.GetOpenIdTokenForDeveloperIdentityInputFilterSensitiveLog = exports.GetOpenIdTokenResponseFilterSensitiveLog = exports.GetOpenIdTokenInputFilterSensitiveLog = exports.GetIdentityPoolRolesResponseFilterSensitiveLog = exports.RoleMappingFilterSensitiveLog = exports.RulesConfigurationTypeFilterSensitiveLog = exports.MappingRuleFilterSensitiveLog = exports.GetIdentityPoolRolesInputFilterSensitiveLog = exports.GetIdResponseFilterSensitiveLog = exports.GetIdInputFilterSensitiveLog = exports.GetCredentialsForIdentityResponseFilterSensitiveLog = exports.CredentialsFilterSensitiveLog = exports.GetCredentialsForIdentityInputFilterSensitiveLog = exports.DescribeIdentityPoolInputFilterSensitiveLog = exports.IdentityDescriptionFilterSensitiveLog = exports.DescribeIdentityInputFilterSensitiveLog = exports.DeleteIdentityPoolInputFilterSensitiveLog = exports.DeleteIdentitiesResponseFilterSensitiveLog = exports.UnprocessedIdentityIdFilterSensitiveLog = exports.DeleteIdentitiesInputFilterSensitiveLog = exports.IdentityPoolFilterSensitiveLog = exports.CreateIdentityPoolInputFilterSensitiveLog = exports.CognitoIdentityProviderFilterSensitiveLog = exports.ConcurrentModificationException = exports.DeveloperUserAlreadyRegisteredException = exports.RoleMappingType = exports.MappingRuleMatchType = exports.InvalidIdentityPoolConfigurationException = exports.ExternalServiceException = exports.ResourceNotFoundException = exports.ErrorCode = exports.TooManyRequestsException = exports.ResourceConflictException = exports.NotAuthorizedException = exports.LimitExceededException = exports.InvalidParameterException = exports.InternalErrorException = exports.AmbiguousRoleResolutionType = void 0;\nexports.UntagResourceResponseFilterSensitiveLog = exports.UntagResourceInputFilterSensitiveLog = exports.UnlinkIdentityInputFilterSensitiveLog = exports.UnlinkDeveloperIdentityInputFilterSensitiveLog = exports.TagResourceResponseFilterSensitiveLog = exports.TagResourceInputFilterSensitiveLog = exports.SetPrincipalTagAttributeMapResponseFilterSensitiveLog = exports.SetPrincipalTagAttributeMapInputFilterSensitiveLog = exports.SetIdentityPoolRolesInputFilterSensitiveLog = exports.MergeDeveloperIdentitiesResponseFilterSensitiveLog = exports.MergeDeveloperIdentitiesInputFilterSensitiveLog = void 0;\nconst CognitoIdentityServiceException_1 = require(\"./CognitoIdentityServiceException\");\nvar AmbiguousRoleResolutionType;\n(function (AmbiguousRoleResolutionType) {\n AmbiguousRoleResolutionType[\"AUTHENTICATED_ROLE\"] = \"AuthenticatedRole\";\n AmbiguousRoleResolutionType[\"DENY\"] = \"Deny\";\n})(AmbiguousRoleResolutionType = exports.AmbiguousRoleResolutionType || (exports.AmbiguousRoleResolutionType = {}));\nclass InternalErrorException extends CognitoIdentityServiceException_1.CognitoIdentityServiceException {\n constructor(opts) {\n super({\n name: \"InternalErrorException\",\n $fault: \"server\",\n ...opts,\n });\n this.name = \"InternalErrorException\";\n this.$fault = \"server\";\n Object.setPrototypeOf(this, InternalErrorException.prototype);\n }\n}\nexports.InternalErrorException = InternalErrorException;\nclass InvalidParameterException extends CognitoIdentityServiceException_1.CognitoIdentityServiceException {\n constructor(opts) {\n super({\n name: \"InvalidParameterException\",\n $fault: \"client\",\n ...opts,\n });\n this.name = \"InvalidParameterException\";\n this.$fault = \"client\";\n Object.setPrototypeOf(this, InvalidParameterException.prototype);\n }\n}\nexports.InvalidParameterException = InvalidParameterException;\nclass LimitExceededException extends CognitoIdentityServiceException_1.CognitoIdentityServiceException {\n constructor(opts) {\n super({\n name: \"LimitExceededException\",\n $fault: \"client\",\n ...opts,\n });\n this.name = \"LimitExceededException\";\n this.$fault = \"client\";\n Object.setPrototypeOf(this, LimitExceededException.prototype);\n }\n}\nexports.LimitExceededException = LimitExceededException;\nclass NotAuthorizedException extends CognitoIdentityServiceException_1.CognitoIdentityServiceException {\n constructor(opts) {\n super({\n name: \"NotAuthorizedException\",\n $fault: \"client\",\n ...opts,\n });\n this.name = \"NotAuthorizedException\";\n this.$fault = \"client\";\n Object.setPrototypeOf(this, NotAuthorizedException.prototype);\n }\n}\nexports.NotAuthorizedException = NotAuthorizedException;\nclass ResourceConflictException extends CognitoIdentityServiceException_1.CognitoIdentityServiceException {\n constructor(opts) {\n super({\n name: \"ResourceConflictException\",\n $fault: \"client\",\n ...opts,\n });\n this.name = \"ResourceConflictException\";\n this.$fault = \"client\";\n Object.setPrototypeOf(this, ResourceConflictException.prototype);\n }\n}\nexports.ResourceConflictException = ResourceConflictException;\nclass TooManyRequestsException extends CognitoIdentityServiceException_1.CognitoIdentityServiceException {\n constructor(opts) {\n super({\n name: \"TooManyRequestsException\",\n $fault: \"client\",\n ...opts,\n });\n this.name = \"TooManyRequestsException\";\n this.$fault = \"client\";\n Object.setPrototypeOf(this, TooManyRequestsException.prototype);\n }\n}\nexports.TooManyRequestsException = TooManyRequestsException;\nvar ErrorCode;\n(function (ErrorCode) {\n ErrorCode[\"ACCESS_DENIED\"] = \"AccessDenied\";\n ErrorCode[\"INTERNAL_SERVER_ERROR\"] = \"InternalServerError\";\n})(ErrorCode = exports.ErrorCode || (exports.ErrorCode = {}));\nclass ResourceNotFoundException extends CognitoIdentityServiceException_1.CognitoIdentityServiceException {\n constructor(opts) {\n super({\n name: \"ResourceNotFoundException\",\n $fault: \"client\",\n ...opts,\n });\n this.name = \"ResourceNotFoundException\";\n this.$fault = \"client\";\n Object.setPrototypeOf(this, ResourceNotFoundException.prototype);\n }\n}\nexports.ResourceNotFoundException = ResourceNotFoundException;\nclass ExternalServiceException extends CognitoIdentityServiceException_1.CognitoIdentityServiceException {\n constructor(opts) {\n super({\n name: \"ExternalServiceException\",\n $fault: \"client\",\n ...opts,\n });\n this.name = \"ExternalServiceException\";\n this.$fault = \"client\";\n Object.setPrototypeOf(this, ExternalServiceException.prototype);\n }\n}\nexports.ExternalServiceException = ExternalServiceException;\nclass InvalidIdentityPoolConfigurationException extends CognitoIdentityServiceException_1.CognitoIdentityServiceException {\n constructor(opts) {\n super({\n name: \"InvalidIdentityPoolConfigurationException\",\n $fault: \"client\",\n ...opts,\n });\n this.name = \"InvalidIdentityPoolConfigurationException\";\n this.$fault = \"client\";\n Object.setPrototypeOf(this, InvalidIdentityPoolConfigurationException.prototype);\n }\n}\nexports.InvalidIdentityPoolConfigurationException = InvalidIdentityPoolConfigurationException;\nvar MappingRuleMatchType;\n(function (MappingRuleMatchType) {\n MappingRuleMatchType[\"CONTAINS\"] = \"Contains\";\n MappingRuleMatchType[\"EQUALS\"] = \"Equals\";\n MappingRuleMatchType[\"NOT_EQUAL\"] = \"NotEqual\";\n MappingRuleMatchType[\"STARTS_WITH\"] = \"StartsWith\";\n})(MappingRuleMatchType = exports.MappingRuleMatchType || (exports.MappingRuleMatchType = {}));\nvar RoleMappingType;\n(function (RoleMappingType) {\n RoleMappingType[\"RULES\"] = \"Rules\";\n RoleMappingType[\"TOKEN\"] = \"Token\";\n})(RoleMappingType = exports.RoleMappingType || (exports.RoleMappingType = {}));\nclass DeveloperUserAlreadyRegisteredException extends CognitoIdentityServiceException_1.CognitoIdentityServiceException {\n constructor(opts) {\n super({\n name: \"DeveloperUserAlreadyRegisteredException\",\n $fault: \"client\",\n ...opts,\n });\n this.name = \"DeveloperUserAlreadyRegisteredException\";\n this.$fault = \"client\";\n Object.setPrototypeOf(this, DeveloperUserAlreadyRegisteredException.prototype);\n }\n}\nexports.DeveloperUserAlreadyRegisteredException = DeveloperUserAlreadyRegisteredException;\nclass ConcurrentModificationException extends CognitoIdentityServiceException_1.CognitoIdentityServiceException {\n constructor(opts) {\n super({\n name: \"ConcurrentModificationException\",\n $fault: \"client\",\n ...opts,\n });\n this.name = \"ConcurrentModificationException\";\n this.$fault = \"client\";\n Object.setPrototypeOf(this, ConcurrentModificationException.prototype);\n }\n}\nexports.ConcurrentModificationException = ConcurrentModificationException;\nconst CognitoIdentityProviderFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.CognitoIdentityProviderFilterSensitiveLog = CognitoIdentityProviderFilterSensitiveLog;\nconst CreateIdentityPoolInputFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.CreateIdentityPoolInputFilterSensitiveLog = CreateIdentityPoolInputFilterSensitiveLog;\nconst IdentityPoolFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.IdentityPoolFilterSensitiveLog = IdentityPoolFilterSensitiveLog;\nconst DeleteIdentitiesInputFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.DeleteIdentitiesInputFilterSensitiveLog = DeleteIdentitiesInputFilterSensitiveLog;\nconst UnprocessedIdentityIdFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.UnprocessedIdentityIdFilterSensitiveLog = UnprocessedIdentityIdFilterSensitiveLog;\nconst DeleteIdentitiesResponseFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.DeleteIdentitiesResponseFilterSensitiveLog = DeleteIdentitiesResponseFilterSensitiveLog;\nconst DeleteIdentityPoolInputFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.DeleteIdentityPoolInputFilterSensitiveLog = DeleteIdentityPoolInputFilterSensitiveLog;\nconst DescribeIdentityInputFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.DescribeIdentityInputFilterSensitiveLog = DescribeIdentityInputFilterSensitiveLog;\nconst IdentityDescriptionFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.IdentityDescriptionFilterSensitiveLog = IdentityDescriptionFilterSensitiveLog;\nconst DescribeIdentityPoolInputFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.DescribeIdentityPoolInputFilterSensitiveLog = DescribeIdentityPoolInputFilterSensitiveLog;\nconst GetCredentialsForIdentityInputFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.GetCredentialsForIdentityInputFilterSensitiveLog = GetCredentialsForIdentityInputFilterSensitiveLog;\nconst CredentialsFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.CredentialsFilterSensitiveLog = CredentialsFilterSensitiveLog;\nconst GetCredentialsForIdentityResponseFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.GetCredentialsForIdentityResponseFilterSensitiveLog = GetCredentialsForIdentityResponseFilterSensitiveLog;\nconst GetIdInputFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.GetIdInputFilterSensitiveLog = GetIdInputFilterSensitiveLog;\nconst GetIdResponseFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.GetIdResponseFilterSensitiveLog = GetIdResponseFilterSensitiveLog;\nconst GetIdentityPoolRolesInputFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.GetIdentityPoolRolesInputFilterSensitiveLog = GetIdentityPoolRolesInputFilterSensitiveLog;\nconst MappingRuleFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.MappingRuleFilterSensitiveLog = MappingRuleFilterSensitiveLog;\nconst RulesConfigurationTypeFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.RulesConfigurationTypeFilterSensitiveLog = RulesConfigurationTypeFilterSensitiveLog;\nconst RoleMappingFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.RoleMappingFilterSensitiveLog = RoleMappingFilterSensitiveLog;\nconst GetIdentityPoolRolesResponseFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.GetIdentityPoolRolesResponseFilterSensitiveLog = GetIdentityPoolRolesResponseFilterSensitiveLog;\nconst GetOpenIdTokenInputFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.GetOpenIdTokenInputFilterSensitiveLog = GetOpenIdTokenInputFilterSensitiveLog;\nconst GetOpenIdTokenResponseFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.GetOpenIdTokenResponseFilterSensitiveLog = GetOpenIdTokenResponseFilterSensitiveLog;\nconst GetOpenIdTokenForDeveloperIdentityInputFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.GetOpenIdTokenForDeveloperIdentityInputFilterSensitiveLog = GetOpenIdTokenForDeveloperIdentityInputFilterSensitiveLog;\nconst GetOpenIdTokenForDeveloperIdentityResponseFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.GetOpenIdTokenForDeveloperIdentityResponseFilterSensitiveLog = GetOpenIdTokenForDeveloperIdentityResponseFilterSensitiveLog;\nconst GetPrincipalTagAttributeMapInputFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.GetPrincipalTagAttributeMapInputFilterSensitiveLog = GetPrincipalTagAttributeMapInputFilterSensitiveLog;\nconst GetPrincipalTagAttributeMapResponseFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.GetPrincipalTagAttributeMapResponseFilterSensitiveLog = GetPrincipalTagAttributeMapResponseFilterSensitiveLog;\nconst ListIdentitiesInputFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.ListIdentitiesInputFilterSensitiveLog = ListIdentitiesInputFilterSensitiveLog;\nconst ListIdentitiesResponseFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.ListIdentitiesResponseFilterSensitiveLog = ListIdentitiesResponseFilterSensitiveLog;\nconst ListIdentityPoolsInputFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.ListIdentityPoolsInputFilterSensitiveLog = ListIdentityPoolsInputFilterSensitiveLog;\nconst IdentityPoolShortDescriptionFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.IdentityPoolShortDescriptionFilterSensitiveLog = IdentityPoolShortDescriptionFilterSensitiveLog;\nconst ListIdentityPoolsResponseFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.ListIdentityPoolsResponseFilterSensitiveLog = ListIdentityPoolsResponseFilterSensitiveLog;\nconst ListTagsForResourceInputFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.ListTagsForResourceInputFilterSensitiveLog = ListTagsForResourceInputFilterSensitiveLog;\nconst ListTagsForResourceResponseFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.ListTagsForResourceResponseFilterSensitiveLog = ListTagsForResourceResponseFilterSensitiveLog;\nconst LookupDeveloperIdentityInputFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.LookupDeveloperIdentityInputFilterSensitiveLog = LookupDeveloperIdentityInputFilterSensitiveLog;\nconst LookupDeveloperIdentityResponseFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.LookupDeveloperIdentityResponseFilterSensitiveLog = LookupDeveloperIdentityResponseFilterSensitiveLog;\nconst MergeDeveloperIdentitiesInputFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.MergeDeveloperIdentitiesInputFilterSensitiveLog = MergeDeveloperIdentitiesInputFilterSensitiveLog;\nconst MergeDeveloperIdentitiesResponseFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.MergeDeveloperIdentitiesResponseFilterSensitiveLog = MergeDeveloperIdentitiesResponseFilterSensitiveLog;\nconst SetIdentityPoolRolesInputFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.SetIdentityPoolRolesInputFilterSensitiveLog = SetIdentityPoolRolesInputFilterSensitiveLog;\nconst SetPrincipalTagAttributeMapInputFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.SetPrincipalTagAttributeMapInputFilterSensitiveLog = SetPrincipalTagAttributeMapInputFilterSensitiveLog;\nconst SetPrincipalTagAttributeMapResponseFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.SetPrincipalTagAttributeMapResponseFilterSensitiveLog = SetPrincipalTagAttributeMapResponseFilterSensitiveLog;\nconst TagResourceInputFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.TagResourceInputFilterSensitiveLog = TagResourceInputFilterSensitiveLog;\nconst TagResourceResponseFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.TagResourceResponseFilterSensitiveLog = TagResourceResponseFilterSensitiveLog;\nconst UnlinkDeveloperIdentityInputFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.UnlinkDeveloperIdentityInputFilterSensitiveLog = UnlinkDeveloperIdentityInputFilterSensitiveLog;\nconst UnlinkIdentityInputFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.UnlinkIdentityInputFilterSensitiveLog = UnlinkIdentityInputFilterSensitiveLog;\nconst UntagResourceInputFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.UntagResourceInputFilterSensitiveLog = UntagResourceInputFilterSensitiveLog;\nconst UntagResourceResponseFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.UntagResourceResponseFilterSensitiveLog = UntagResourceResponseFilterSensitiveLog;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.deserializeAws_json1_1UpdateIdentityPoolCommand = exports.deserializeAws_json1_1UntagResourceCommand = exports.deserializeAws_json1_1UnlinkIdentityCommand = exports.deserializeAws_json1_1UnlinkDeveloperIdentityCommand = exports.deserializeAws_json1_1TagResourceCommand = exports.deserializeAws_json1_1SetPrincipalTagAttributeMapCommand = exports.deserializeAws_json1_1SetIdentityPoolRolesCommand = exports.deserializeAws_json1_1MergeDeveloperIdentitiesCommand = exports.deserializeAws_json1_1LookupDeveloperIdentityCommand = exports.deserializeAws_json1_1ListTagsForResourceCommand = exports.deserializeAws_json1_1ListIdentityPoolsCommand = exports.deserializeAws_json1_1ListIdentitiesCommand = exports.deserializeAws_json1_1GetPrincipalTagAttributeMapCommand = exports.deserializeAws_json1_1GetOpenIdTokenForDeveloperIdentityCommand = exports.deserializeAws_json1_1GetOpenIdTokenCommand = exports.deserializeAws_json1_1GetIdentityPoolRolesCommand = exports.deserializeAws_json1_1GetIdCommand = exports.deserializeAws_json1_1GetCredentialsForIdentityCommand = exports.deserializeAws_json1_1DescribeIdentityPoolCommand = exports.deserializeAws_json1_1DescribeIdentityCommand = exports.deserializeAws_json1_1DeleteIdentityPoolCommand = exports.deserializeAws_json1_1DeleteIdentitiesCommand = exports.deserializeAws_json1_1CreateIdentityPoolCommand = exports.serializeAws_json1_1UpdateIdentityPoolCommand = exports.serializeAws_json1_1UntagResourceCommand = exports.serializeAws_json1_1UnlinkIdentityCommand = exports.serializeAws_json1_1UnlinkDeveloperIdentityCommand = exports.serializeAws_json1_1TagResourceCommand = exports.serializeAws_json1_1SetPrincipalTagAttributeMapCommand = exports.serializeAws_json1_1SetIdentityPoolRolesCommand = exports.serializeAws_json1_1MergeDeveloperIdentitiesCommand = exports.serializeAws_json1_1LookupDeveloperIdentityCommand = exports.serializeAws_json1_1ListTagsForResourceCommand = exports.serializeAws_json1_1ListIdentityPoolsCommand = exports.serializeAws_json1_1ListIdentitiesCommand = exports.serializeAws_json1_1GetPrincipalTagAttributeMapCommand = exports.serializeAws_json1_1GetOpenIdTokenForDeveloperIdentityCommand = exports.serializeAws_json1_1GetOpenIdTokenCommand = exports.serializeAws_json1_1GetIdentityPoolRolesCommand = exports.serializeAws_json1_1GetIdCommand = exports.serializeAws_json1_1GetCredentialsForIdentityCommand = exports.serializeAws_json1_1DescribeIdentityPoolCommand = exports.serializeAws_json1_1DescribeIdentityCommand = exports.serializeAws_json1_1DeleteIdentityPoolCommand = exports.serializeAws_json1_1DeleteIdentitiesCommand = exports.serializeAws_json1_1CreateIdentityPoolCommand = void 0;\nconst protocol_http_1 = require(\"@aws-sdk/protocol-http\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst CognitoIdentityServiceException_1 = require(\"../models/CognitoIdentityServiceException\");\nconst models_0_1 = require(\"../models/models_0\");\nconst serializeAws_json1_1CreateIdentityPoolCommand = async (input, context) => {\n const headers = {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": \"AWSCognitoIdentityService.CreateIdentityPool\",\n };\n let body;\n body = JSON.stringify(serializeAws_json1_1CreateIdentityPoolInput(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexports.serializeAws_json1_1CreateIdentityPoolCommand = serializeAws_json1_1CreateIdentityPoolCommand;\nconst serializeAws_json1_1DeleteIdentitiesCommand = async (input, context) => {\n const headers = {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": \"AWSCognitoIdentityService.DeleteIdentities\",\n };\n let body;\n body = JSON.stringify(serializeAws_json1_1DeleteIdentitiesInput(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexports.serializeAws_json1_1DeleteIdentitiesCommand = serializeAws_json1_1DeleteIdentitiesCommand;\nconst serializeAws_json1_1DeleteIdentityPoolCommand = async (input, context) => {\n const headers = {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": \"AWSCognitoIdentityService.DeleteIdentityPool\",\n };\n let body;\n body = JSON.stringify(serializeAws_json1_1DeleteIdentityPoolInput(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexports.serializeAws_json1_1DeleteIdentityPoolCommand = serializeAws_json1_1DeleteIdentityPoolCommand;\nconst serializeAws_json1_1DescribeIdentityCommand = async (input, context) => {\n const headers = {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": \"AWSCognitoIdentityService.DescribeIdentity\",\n };\n let body;\n body = JSON.stringify(serializeAws_json1_1DescribeIdentityInput(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexports.serializeAws_json1_1DescribeIdentityCommand = serializeAws_json1_1DescribeIdentityCommand;\nconst serializeAws_json1_1DescribeIdentityPoolCommand = async (input, context) => {\n const headers = {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": \"AWSCognitoIdentityService.DescribeIdentityPool\",\n };\n let body;\n body = JSON.stringify(serializeAws_json1_1DescribeIdentityPoolInput(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexports.serializeAws_json1_1DescribeIdentityPoolCommand = serializeAws_json1_1DescribeIdentityPoolCommand;\nconst serializeAws_json1_1GetCredentialsForIdentityCommand = async (input, context) => {\n const headers = {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": \"AWSCognitoIdentityService.GetCredentialsForIdentity\",\n };\n let body;\n body = JSON.stringify(serializeAws_json1_1GetCredentialsForIdentityInput(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexports.serializeAws_json1_1GetCredentialsForIdentityCommand = serializeAws_json1_1GetCredentialsForIdentityCommand;\nconst serializeAws_json1_1GetIdCommand = async (input, context) => {\n const headers = {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": \"AWSCognitoIdentityService.GetId\",\n };\n let body;\n body = JSON.stringify(serializeAws_json1_1GetIdInput(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexports.serializeAws_json1_1GetIdCommand = serializeAws_json1_1GetIdCommand;\nconst serializeAws_json1_1GetIdentityPoolRolesCommand = async (input, context) => {\n const headers = {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": \"AWSCognitoIdentityService.GetIdentityPoolRoles\",\n };\n let body;\n body = JSON.stringify(serializeAws_json1_1GetIdentityPoolRolesInput(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexports.serializeAws_json1_1GetIdentityPoolRolesCommand = serializeAws_json1_1GetIdentityPoolRolesCommand;\nconst serializeAws_json1_1GetOpenIdTokenCommand = async (input, context) => {\n const headers = {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": \"AWSCognitoIdentityService.GetOpenIdToken\",\n };\n let body;\n body = JSON.stringify(serializeAws_json1_1GetOpenIdTokenInput(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexports.serializeAws_json1_1GetOpenIdTokenCommand = serializeAws_json1_1GetOpenIdTokenCommand;\nconst serializeAws_json1_1GetOpenIdTokenForDeveloperIdentityCommand = async (input, context) => {\n const headers = {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": \"AWSCognitoIdentityService.GetOpenIdTokenForDeveloperIdentity\",\n };\n let body;\n body = JSON.stringify(serializeAws_json1_1GetOpenIdTokenForDeveloperIdentityInput(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexports.serializeAws_json1_1GetOpenIdTokenForDeveloperIdentityCommand = serializeAws_json1_1GetOpenIdTokenForDeveloperIdentityCommand;\nconst serializeAws_json1_1GetPrincipalTagAttributeMapCommand = async (input, context) => {\n const headers = {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": \"AWSCognitoIdentityService.GetPrincipalTagAttributeMap\",\n };\n let body;\n body = JSON.stringify(serializeAws_json1_1GetPrincipalTagAttributeMapInput(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexports.serializeAws_json1_1GetPrincipalTagAttributeMapCommand = serializeAws_json1_1GetPrincipalTagAttributeMapCommand;\nconst serializeAws_json1_1ListIdentitiesCommand = async (input, context) => {\n const headers = {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": \"AWSCognitoIdentityService.ListIdentities\",\n };\n let body;\n body = JSON.stringify(serializeAws_json1_1ListIdentitiesInput(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexports.serializeAws_json1_1ListIdentitiesCommand = serializeAws_json1_1ListIdentitiesCommand;\nconst serializeAws_json1_1ListIdentityPoolsCommand = async (input, context) => {\n const headers = {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": \"AWSCognitoIdentityService.ListIdentityPools\",\n };\n let body;\n body = JSON.stringify(serializeAws_json1_1ListIdentityPoolsInput(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexports.serializeAws_json1_1ListIdentityPoolsCommand = serializeAws_json1_1ListIdentityPoolsCommand;\nconst serializeAws_json1_1ListTagsForResourceCommand = async (input, context) => {\n const headers = {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": \"AWSCognitoIdentityService.ListTagsForResource\",\n };\n let body;\n body = JSON.stringify(serializeAws_json1_1ListTagsForResourceInput(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexports.serializeAws_json1_1ListTagsForResourceCommand = serializeAws_json1_1ListTagsForResourceCommand;\nconst serializeAws_json1_1LookupDeveloperIdentityCommand = async (input, context) => {\n const headers = {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": \"AWSCognitoIdentityService.LookupDeveloperIdentity\",\n };\n let body;\n body = JSON.stringify(serializeAws_json1_1LookupDeveloperIdentityInput(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexports.serializeAws_json1_1LookupDeveloperIdentityCommand = serializeAws_json1_1LookupDeveloperIdentityCommand;\nconst serializeAws_json1_1MergeDeveloperIdentitiesCommand = async (input, context) => {\n const headers = {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": \"AWSCognitoIdentityService.MergeDeveloperIdentities\",\n };\n let body;\n body = JSON.stringify(serializeAws_json1_1MergeDeveloperIdentitiesInput(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexports.serializeAws_json1_1MergeDeveloperIdentitiesCommand = serializeAws_json1_1MergeDeveloperIdentitiesCommand;\nconst serializeAws_json1_1SetIdentityPoolRolesCommand = async (input, context) => {\n const headers = {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": \"AWSCognitoIdentityService.SetIdentityPoolRoles\",\n };\n let body;\n body = JSON.stringify(serializeAws_json1_1SetIdentityPoolRolesInput(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexports.serializeAws_json1_1SetIdentityPoolRolesCommand = serializeAws_json1_1SetIdentityPoolRolesCommand;\nconst serializeAws_json1_1SetPrincipalTagAttributeMapCommand = async (input, context) => {\n const headers = {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": \"AWSCognitoIdentityService.SetPrincipalTagAttributeMap\",\n };\n let body;\n body = JSON.stringify(serializeAws_json1_1SetPrincipalTagAttributeMapInput(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexports.serializeAws_json1_1SetPrincipalTagAttributeMapCommand = serializeAws_json1_1SetPrincipalTagAttributeMapCommand;\nconst serializeAws_json1_1TagResourceCommand = async (input, context) => {\n const headers = {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": \"AWSCognitoIdentityService.TagResource\",\n };\n let body;\n body = JSON.stringify(serializeAws_json1_1TagResourceInput(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexports.serializeAws_json1_1TagResourceCommand = serializeAws_json1_1TagResourceCommand;\nconst serializeAws_json1_1UnlinkDeveloperIdentityCommand = async (input, context) => {\n const headers = {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": \"AWSCognitoIdentityService.UnlinkDeveloperIdentity\",\n };\n let body;\n body = JSON.stringify(serializeAws_json1_1UnlinkDeveloperIdentityInput(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexports.serializeAws_json1_1UnlinkDeveloperIdentityCommand = serializeAws_json1_1UnlinkDeveloperIdentityCommand;\nconst serializeAws_json1_1UnlinkIdentityCommand = async (input, context) => {\n const headers = {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": \"AWSCognitoIdentityService.UnlinkIdentity\",\n };\n let body;\n body = JSON.stringify(serializeAws_json1_1UnlinkIdentityInput(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexports.serializeAws_json1_1UnlinkIdentityCommand = serializeAws_json1_1UnlinkIdentityCommand;\nconst serializeAws_json1_1UntagResourceCommand = async (input, context) => {\n const headers = {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": \"AWSCognitoIdentityService.UntagResource\",\n };\n let body;\n body = JSON.stringify(serializeAws_json1_1UntagResourceInput(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexports.serializeAws_json1_1UntagResourceCommand = serializeAws_json1_1UntagResourceCommand;\nconst serializeAws_json1_1UpdateIdentityPoolCommand = async (input, context) => {\n const headers = {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": \"AWSCognitoIdentityService.UpdateIdentityPool\",\n };\n let body;\n body = JSON.stringify(serializeAws_json1_1IdentityPool(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexports.serializeAws_json1_1UpdateIdentityPoolCommand = serializeAws_json1_1UpdateIdentityPoolCommand;\nconst deserializeAws_json1_1CreateIdentityPoolCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return deserializeAws_json1_1CreateIdentityPoolCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = deserializeAws_json1_1IdentityPool(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return Promise.resolve(response);\n};\nexports.deserializeAws_json1_1CreateIdentityPoolCommand = deserializeAws_json1_1CreateIdentityPoolCommand;\nconst deserializeAws_json1_1CreateIdentityPoolCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"InternalErrorException\":\n case \"com.amazonaws.cognitoidentity#InternalErrorException\":\n throw await deserializeAws_json1_1InternalErrorExceptionResponse(parsedOutput, context);\n case \"InvalidParameterException\":\n case \"com.amazonaws.cognitoidentity#InvalidParameterException\":\n throw await deserializeAws_json1_1InvalidParameterExceptionResponse(parsedOutput, context);\n case \"LimitExceededException\":\n case \"com.amazonaws.cognitoidentity#LimitExceededException\":\n throw await deserializeAws_json1_1LimitExceededExceptionResponse(parsedOutput, context);\n case \"NotAuthorizedException\":\n case \"com.amazonaws.cognitoidentity#NotAuthorizedException\":\n throw await deserializeAws_json1_1NotAuthorizedExceptionResponse(parsedOutput, context);\n case \"ResourceConflictException\":\n case \"com.amazonaws.cognitoidentity#ResourceConflictException\":\n throw await deserializeAws_json1_1ResourceConflictExceptionResponse(parsedOutput, context);\n case \"TooManyRequestsException\":\n case \"com.amazonaws.cognitoidentity#TooManyRequestsException\":\n throw await deserializeAws_json1_1TooManyRequestsExceptionResponse(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody,\n exceptionCtor: CognitoIdentityServiceException_1.CognitoIdentityServiceException,\n errorCode,\n });\n }\n};\nconst deserializeAws_json1_1DeleteIdentitiesCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return deserializeAws_json1_1DeleteIdentitiesCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = deserializeAws_json1_1DeleteIdentitiesResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return Promise.resolve(response);\n};\nexports.deserializeAws_json1_1DeleteIdentitiesCommand = deserializeAws_json1_1DeleteIdentitiesCommand;\nconst deserializeAws_json1_1DeleteIdentitiesCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"InternalErrorException\":\n case \"com.amazonaws.cognitoidentity#InternalErrorException\":\n throw await deserializeAws_json1_1InternalErrorExceptionResponse(parsedOutput, context);\n case \"InvalidParameterException\":\n case \"com.amazonaws.cognitoidentity#InvalidParameterException\":\n throw await deserializeAws_json1_1InvalidParameterExceptionResponse(parsedOutput, context);\n case \"TooManyRequestsException\":\n case \"com.amazonaws.cognitoidentity#TooManyRequestsException\":\n throw await deserializeAws_json1_1TooManyRequestsExceptionResponse(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody,\n exceptionCtor: CognitoIdentityServiceException_1.CognitoIdentityServiceException,\n errorCode,\n });\n }\n};\nconst deserializeAws_json1_1DeleteIdentityPoolCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return deserializeAws_json1_1DeleteIdentityPoolCommandError(output, context);\n }\n await collectBody(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output),\n };\n return Promise.resolve(response);\n};\nexports.deserializeAws_json1_1DeleteIdentityPoolCommand = deserializeAws_json1_1DeleteIdentityPoolCommand;\nconst deserializeAws_json1_1DeleteIdentityPoolCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"InternalErrorException\":\n case \"com.amazonaws.cognitoidentity#InternalErrorException\":\n throw await deserializeAws_json1_1InternalErrorExceptionResponse(parsedOutput, context);\n case \"InvalidParameterException\":\n case \"com.amazonaws.cognitoidentity#InvalidParameterException\":\n throw await deserializeAws_json1_1InvalidParameterExceptionResponse(parsedOutput, context);\n case \"NotAuthorizedException\":\n case \"com.amazonaws.cognitoidentity#NotAuthorizedException\":\n throw await deserializeAws_json1_1NotAuthorizedExceptionResponse(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.cognitoidentity#ResourceNotFoundException\":\n throw await deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context);\n case \"TooManyRequestsException\":\n case \"com.amazonaws.cognitoidentity#TooManyRequestsException\":\n throw await deserializeAws_json1_1TooManyRequestsExceptionResponse(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody,\n exceptionCtor: CognitoIdentityServiceException_1.CognitoIdentityServiceException,\n errorCode,\n });\n }\n};\nconst deserializeAws_json1_1DescribeIdentityCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return deserializeAws_json1_1DescribeIdentityCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = deserializeAws_json1_1IdentityDescription(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return Promise.resolve(response);\n};\nexports.deserializeAws_json1_1DescribeIdentityCommand = deserializeAws_json1_1DescribeIdentityCommand;\nconst deserializeAws_json1_1DescribeIdentityCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"InternalErrorException\":\n case \"com.amazonaws.cognitoidentity#InternalErrorException\":\n throw await deserializeAws_json1_1InternalErrorExceptionResponse(parsedOutput, context);\n case \"InvalidParameterException\":\n case \"com.amazonaws.cognitoidentity#InvalidParameterException\":\n throw await deserializeAws_json1_1InvalidParameterExceptionResponse(parsedOutput, context);\n case \"NotAuthorizedException\":\n case \"com.amazonaws.cognitoidentity#NotAuthorizedException\":\n throw await deserializeAws_json1_1NotAuthorizedExceptionResponse(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.cognitoidentity#ResourceNotFoundException\":\n throw await deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context);\n case \"TooManyRequestsException\":\n case \"com.amazonaws.cognitoidentity#TooManyRequestsException\":\n throw await deserializeAws_json1_1TooManyRequestsExceptionResponse(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody,\n exceptionCtor: CognitoIdentityServiceException_1.CognitoIdentityServiceException,\n errorCode,\n });\n }\n};\nconst deserializeAws_json1_1DescribeIdentityPoolCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return deserializeAws_json1_1DescribeIdentityPoolCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = deserializeAws_json1_1IdentityPool(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return Promise.resolve(response);\n};\nexports.deserializeAws_json1_1DescribeIdentityPoolCommand = deserializeAws_json1_1DescribeIdentityPoolCommand;\nconst deserializeAws_json1_1DescribeIdentityPoolCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"InternalErrorException\":\n case \"com.amazonaws.cognitoidentity#InternalErrorException\":\n throw await deserializeAws_json1_1InternalErrorExceptionResponse(parsedOutput, context);\n case \"InvalidParameterException\":\n case \"com.amazonaws.cognitoidentity#InvalidParameterException\":\n throw await deserializeAws_json1_1InvalidParameterExceptionResponse(parsedOutput, context);\n case \"NotAuthorizedException\":\n case \"com.amazonaws.cognitoidentity#NotAuthorizedException\":\n throw await deserializeAws_json1_1NotAuthorizedExceptionResponse(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.cognitoidentity#ResourceNotFoundException\":\n throw await deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context);\n case \"TooManyRequestsException\":\n case \"com.amazonaws.cognitoidentity#TooManyRequestsException\":\n throw await deserializeAws_json1_1TooManyRequestsExceptionResponse(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody,\n exceptionCtor: CognitoIdentityServiceException_1.CognitoIdentityServiceException,\n errorCode,\n });\n }\n};\nconst deserializeAws_json1_1GetCredentialsForIdentityCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return deserializeAws_json1_1GetCredentialsForIdentityCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = deserializeAws_json1_1GetCredentialsForIdentityResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return Promise.resolve(response);\n};\nexports.deserializeAws_json1_1GetCredentialsForIdentityCommand = deserializeAws_json1_1GetCredentialsForIdentityCommand;\nconst deserializeAws_json1_1GetCredentialsForIdentityCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"ExternalServiceException\":\n case \"com.amazonaws.cognitoidentity#ExternalServiceException\":\n throw await deserializeAws_json1_1ExternalServiceExceptionResponse(parsedOutput, context);\n case \"InternalErrorException\":\n case \"com.amazonaws.cognitoidentity#InternalErrorException\":\n throw await deserializeAws_json1_1InternalErrorExceptionResponse(parsedOutput, context);\n case \"InvalidIdentityPoolConfigurationException\":\n case \"com.amazonaws.cognitoidentity#InvalidIdentityPoolConfigurationException\":\n throw await deserializeAws_json1_1InvalidIdentityPoolConfigurationExceptionResponse(parsedOutput, context);\n case \"InvalidParameterException\":\n case \"com.amazonaws.cognitoidentity#InvalidParameterException\":\n throw await deserializeAws_json1_1InvalidParameterExceptionResponse(parsedOutput, context);\n case \"NotAuthorizedException\":\n case \"com.amazonaws.cognitoidentity#NotAuthorizedException\":\n throw await deserializeAws_json1_1NotAuthorizedExceptionResponse(parsedOutput, context);\n case \"ResourceConflictException\":\n case \"com.amazonaws.cognitoidentity#ResourceConflictException\":\n throw await deserializeAws_json1_1ResourceConflictExceptionResponse(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.cognitoidentity#ResourceNotFoundException\":\n throw await deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context);\n case \"TooManyRequestsException\":\n case \"com.amazonaws.cognitoidentity#TooManyRequestsException\":\n throw await deserializeAws_json1_1TooManyRequestsExceptionResponse(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody,\n exceptionCtor: CognitoIdentityServiceException_1.CognitoIdentityServiceException,\n errorCode,\n });\n }\n};\nconst deserializeAws_json1_1GetIdCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return deserializeAws_json1_1GetIdCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = deserializeAws_json1_1GetIdResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return Promise.resolve(response);\n};\nexports.deserializeAws_json1_1GetIdCommand = deserializeAws_json1_1GetIdCommand;\nconst deserializeAws_json1_1GetIdCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"ExternalServiceException\":\n case \"com.amazonaws.cognitoidentity#ExternalServiceException\":\n throw await deserializeAws_json1_1ExternalServiceExceptionResponse(parsedOutput, context);\n case \"InternalErrorException\":\n case \"com.amazonaws.cognitoidentity#InternalErrorException\":\n throw await deserializeAws_json1_1InternalErrorExceptionResponse(parsedOutput, context);\n case \"InvalidParameterException\":\n case \"com.amazonaws.cognitoidentity#InvalidParameterException\":\n throw await deserializeAws_json1_1InvalidParameterExceptionResponse(parsedOutput, context);\n case \"LimitExceededException\":\n case \"com.amazonaws.cognitoidentity#LimitExceededException\":\n throw await deserializeAws_json1_1LimitExceededExceptionResponse(parsedOutput, context);\n case \"NotAuthorizedException\":\n case \"com.amazonaws.cognitoidentity#NotAuthorizedException\":\n throw await deserializeAws_json1_1NotAuthorizedExceptionResponse(parsedOutput, context);\n case \"ResourceConflictException\":\n case \"com.amazonaws.cognitoidentity#ResourceConflictException\":\n throw await deserializeAws_json1_1ResourceConflictExceptionResponse(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.cognitoidentity#ResourceNotFoundException\":\n throw await deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context);\n case \"TooManyRequestsException\":\n case \"com.amazonaws.cognitoidentity#TooManyRequestsException\":\n throw await deserializeAws_json1_1TooManyRequestsExceptionResponse(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody,\n exceptionCtor: CognitoIdentityServiceException_1.CognitoIdentityServiceException,\n errorCode,\n });\n }\n};\nconst deserializeAws_json1_1GetIdentityPoolRolesCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return deserializeAws_json1_1GetIdentityPoolRolesCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = deserializeAws_json1_1GetIdentityPoolRolesResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return Promise.resolve(response);\n};\nexports.deserializeAws_json1_1GetIdentityPoolRolesCommand = deserializeAws_json1_1GetIdentityPoolRolesCommand;\nconst deserializeAws_json1_1GetIdentityPoolRolesCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"InternalErrorException\":\n case \"com.amazonaws.cognitoidentity#InternalErrorException\":\n throw await deserializeAws_json1_1InternalErrorExceptionResponse(parsedOutput, context);\n case \"InvalidParameterException\":\n case \"com.amazonaws.cognitoidentity#InvalidParameterException\":\n throw await deserializeAws_json1_1InvalidParameterExceptionResponse(parsedOutput, context);\n case \"NotAuthorizedException\":\n case \"com.amazonaws.cognitoidentity#NotAuthorizedException\":\n throw await deserializeAws_json1_1NotAuthorizedExceptionResponse(parsedOutput, context);\n case \"ResourceConflictException\":\n case \"com.amazonaws.cognitoidentity#ResourceConflictException\":\n throw await deserializeAws_json1_1ResourceConflictExceptionResponse(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.cognitoidentity#ResourceNotFoundException\":\n throw await deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context);\n case \"TooManyRequestsException\":\n case \"com.amazonaws.cognitoidentity#TooManyRequestsException\":\n throw await deserializeAws_json1_1TooManyRequestsExceptionResponse(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody,\n exceptionCtor: CognitoIdentityServiceException_1.CognitoIdentityServiceException,\n errorCode,\n });\n }\n};\nconst deserializeAws_json1_1GetOpenIdTokenCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return deserializeAws_json1_1GetOpenIdTokenCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = deserializeAws_json1_1GetOpenIdTokenResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return Promise.resolve(response);\n};\nexports.deserializeAws_json1_1GetOpenIdTokenCommand = deserializeAws_json1_1GetOpenIdTokenCommand;\nconst deserializeAws_json1_1GetOpenIdTokenCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"ExternalServiceException\":\n case \"com.amazonaws.cognitoidentity#ExternalServiceException\":\n throw await deserializeAws_json1_1ExternalServiceExceptionResponse(parsedOutput, context);\n case \"InternalErrorException\":\n case \"com.amazonaws.cognitoidentity#InternalErrorException\":\n throw await deserializeAws_json1_1InternalErrorExceptionResponse(parsedOutput, context);\n case \"InvalidParameterException\":\n case \"com.amazonaws.cognitoidentity#InvalidParameterException\":\n throw await deserializeAws_json1_1InvalidParameterExceptionResponse(parsedOutput, context);\n case \"NotAuthorizedException\":\n case \"com.amazonaws.cognitoidentity#NotAuthorizedException\":\n throw await deserializeAws_json1_1NotAuthorizedExceptionResponse(parsedOutput, context);\n case \"ResourceConflictException\":\n case \"com.amazonaws.cognitoidentity#ResourceConflictException\":\n throw await deserializeAws_json1_1ResourceConflictExceptionResponse(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.cognitoidentity#ResourceNotFoundException\":\n throw await deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context);\n case \"TooManyRequestsException\":\n case \"com.amazonaws.cognitoidentity#TooManyRequestsException\":\n throw await deserializeAws_json1_1TooManyRequestsExceptionResponse(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody,\n exceptionCtor: CognitoIdentityServiceException_1.CognitoIdentityServiceException,\n errorCode,\n });\n }\n};\nconst deserializeAws_json1_1GetOpenIdTokenForDeveloperIdentityCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return deserializeAws_json1_1GetOpenIdTokenForDeveloperIdentityCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = deserializeAws_json1_1GetOpenIdTokenForDeveloperIdentityResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return Promise.resolve(response);\n};\nexports.deserializeAws_json1_1GetOpenIdTokenForDeveloperIdentityCommand = deserializeAws_json1_1GetOpenIdTokenForDeveloperIdentityCommand;\nconst deserializeAws_json1_1GetOpenIdTokenForDeveloperIdentityCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"DeveloperUserAlreadyRegisteredException\":\n case \"com.amazonaws.cognitoidentity#DeveloperUserAlreadyRegisteredException\":\n throw await deserializeAws_json1_1DeveloperUserAlreadyRegisteredExceptionResponse(parsedOutput, context);\n case \"InternalErrorException\":\n case \"com.amazonaws.cognitoidentity#InternalErrorException\":\n throw await deserializeAws_json1_1InternalErrorExceptionResponse(parsedOutput, context);\n case \"InvalidParameterException\":\n case \"com.amazonaws.cognitoidentity#InvalidParameterException\":\n throw await deserializeAws_json1_1InvalidParameterExceptionResponse(parsedOutput, context);\n case \"NotAuthorizedException\":\n case \"com.amazonaws.cognitoidentity#NotAuthorizedException\":\n throw await deserializeAws_json1_1NotAuthorizedExceptionResponse(parsedOutput, context);\n case \"ResourceConflictException\":\n case \"com.amazonaws.cognitoidentity#ResourceConflictException\":\n throw await deserializeAws_json1_1ResourceConflictExceptionResponse(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.cognitoidentity#ResourceNotFoundException\":\n throw await deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context);\n case \"TooManyRequestsException\":\n case \"com.amazonaws.cognitoidentity#TooManyRequestsException\":\n throw await deserializeAws_json1_1TooManyRequestsExceptionResponse(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody,\n exceptionCtor: CognitoIdentityServiceException_1.CognitoIdentityServiceException,\n errorCode,\n });\n }\n};\nconst deserializeAws_json1_1GetPrincipalTagAttributeMapCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return deserializeAws_json1_1GetPrincipalTagAttributeMapCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = deserializeAws_json1_1GetPrincipalTagAttributeMapResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return Promise.resolve(response);\n};\nexports.deserializeAws_json1_1GetPrincipalTagAttributeMapCommand = deserializeAws_json1_1GetPrincipalTagAttributeMapCommand;\nconst deserializeAws_json1_1GetPrincipalTagAttributeMapCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"InternalErrorException\":\n case \"com.amazonaws.cognitoidentity#InternalErrorException\":\n throw await deserializeAws_json1_1InternalErrorExceptionResponse(parsedOutput, context);\n case \"InvalidParameterException\":\n case \"com.amazonaws.cognitoidentity#InvalidParameterException\":\n throw await deserializeAws_json1_1InvalidParameterExceptionResponse(parsedOutput, context);\n case \"NotAuthorizedException\":\n case \"com.amazonaws.cognitoidentity#NotAuthorizedException\":\n throw await deserializeAws_json1_1NotAuthorizedExceptionResponse(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.cognitoidentity#ResourceNotFoundException\":\n throw await deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context);\n case \"TooManyRequestsException\":\n case \"com.amazonaws.cognitoidentity#TooManyRequestsException\":\n throw await deserializeAws_json1_1TooManyRequestsExceptionResponse(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody,\n exceptionCtor: CognitoIdentityServiceException_1.CognitoIdentityServiceException,\n errorCode,\n });\n }\n};\nconst deserializeAws_json1_1ListIdentitiesCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return deserializeAws_json1_1ListIdentitiesCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = deserializeAws_json1_1ListIdentitiesResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return Promise.resolve(response);\n};\nexports.deserializeAws_json1_1ListIdentitiesCommand = deserializeAws_json1_1ListIdentitiesCommand;\nconst deserializeAws_json1_1ListIdentitiesCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"InternalErrorException\":\n case \"com.amazonaws.cognitoidentity#InternalErrorException\":\n throw await deserializeAws_json1_1InternalErrorExceptionResponse(parsedOutput, context);\n case \"InvalidParameterException\":\n case \"com.amazonaws.cognitoidentity#InvalidParameterException\":\n throw await deserializeAws_json1_1InvalidParameterExceptionResponse(parsedOutput, context);\n case \"NotAuthorizedException\":\n case \"com.amazonaws.cognitoidentity#NotAuthorizedException\":\n throw await deserializeAws_json1_1NotAuthorizedExceptionResponse(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.cognitoidentity#ResourceNotFoundException\":\n throw await deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context);\n case \"TooManyRequestsException\":\n case \"com.amazonaws.cognitoidentity#TooManyRequestsException\":\n throw await deserializeAws_json1_1TooManyRequestsExceptionResponse(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody,\n exceptionCtor: CognitoIdentityServiceException_1.CognitoIdentityServiceException,\n errorCode,\n });\n }\n};\nconst deserializeAws_json1_1ListIdentityPoolsCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return deserializeAws_json1_1ListIdentityPoolsCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = deserializeAws_json1_1ListIdentityPoolsResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return Promise.resolve(response);\n};\nexports.deserializeAws_json1_1ListIdentityPoolsCommand = deserializeAws_json1_1ListIdentityPoolsCommand;\nconst deserializeAws_json1_1ListIdentityPoolsCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"InternalErrorException\":\n case \"com.amazonaws.cognitoidentity#InternalErrorException\":\n throw await deserializeAws_json1_1InternalErrorExceptionResponse(parsedOutput, context);\n case \"InvalidParameterException\":\n case \"com.amazonaws.cognitoidentity#InvalidParameterException\":\n throw await deserializeAws_json1_1InvalidParameterExceptionResponse(parsedOutput, context);\n case \"NotAuthorizedException\":\n case \"com.amazonaws.cognitoidentity#NotAuthorizedException\":\n throw await deserializeAws_json1_1NotAuthorizedExceptionResponse(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.cognitoidentity#ResourceNotFoundException\":\n throw await deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context);\n case \"TooManyRequestsException\":\n case \"com.amazonaws.cognitoidentity#TooManyRequestsException\":\n throw await deserializeAws_json1_1TooManyRequestsExceptionResponse(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody,\n exceptionCtor: CognitoIdentityServiceException_1.CognitoIdentityServiceException,\n errorCode,\n });\n }\n};\nconst deserializeAws_json1_1ListTagsForResourceCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return deserializeAws_json1_1ListTagsForResourceCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = deserializeAws_json1_1ListTagsForResourceResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return Promise.resolve(response);\n};\nexports.deserializeAws_json1_1ListTagsForResourceCommand = deserializeAws_json1_1ListTagsForResourceCommand;\nconst deserializeAws_json1_1ListTagsForResourceCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"InternalErrorException\":\n case \"com.amazonaws.cognitoidentity#InternalErrorException\":\n throw await deserializeAws_json1_1InternalErrorExceptionResponse(parsedOutput, context);\n case \"InvalidParameterException\":\n case \"com.amazonaws.cognitoidentity#InvalidParameterException\":\n throw await deserializeAws_json1_1InvalidParameterExceptionResponse(parsedOutput, context);\n case \"NotAuthorizedException\":\n case \"com.amazonaws.cognitoidentity#NotAuthorizedException\":\n throw await deserializeAws_json1_1NotAuthorizedExceptionResponse(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.cognitoidentity#ResourceNotFoundException\":\n throw await deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context);\n case \"TooManyRequestsException\":\n case \"com.amazonaws.cognitoidentity#TooManyRequestsException\":\n throw await deserializeAws_json1_1TooManyRequestsExceptionResponse(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody,\n exceptionCtor: CognitoIdentityServiceException_1.CognitoIdentityServiceException,\n errorCode,\n });\n }\n};\nconst deserializeAws_json1_1LookupDeveloperIdentityCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return deserializeAws_json1_1LookupDeveloperIdentityCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = deserializeAws_json1_1LookupDeveloperIdentityResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return Promise.resolve(response);\n};\nexports.deserializeAws_json1_1LookupDeveloperIdentityCommand = deserializeAws_json1_1LookupDeveloperIdentityCommand;\nconst deserializeAws_json1_1LookupDeveloperIdentityCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"InternalErrorException\":\n case \"com.amazonaws.cognitoidentity#InternalErrorException\":\n throw await deserializeAws_json1_1InternalErrorExceptionResponse(parsedOutput, context);\n case \"InvalidParameterException\":\n case \"com.amazonaws.cognitoidentity#InvalidParameterException\":\n throw await deserializeAws_json1_1InvalidParameterExceptionResponse(parsedOutput, context);\n case \"NotAuthorizedException\":\n case \"com.amazonaws.cognitoidentity#NotAuthorizedException\":\n throw await deserializeAws_json1_1NotAuthorizedExceptionResponse(parsedOutput, context);\n case \"ResourceConflictException\":\n case \"com.amazonaws.cognitoidentity#ResourceConflictException\":\n throw await deserializeAws_json1_1ResourceConflictExceptionResponse(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.cognitoidentity#ResourceNotFoundException\":\n throw await deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context);\n case \"TooManyRequestsException\":\n case \"com.amazonaws.cognitoidentity#TooManyRequestsException\":\n throw await deserializeAws_json1_1TooManyRequestsExceptionResponse(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody,\n exceptionCtor: CognitoIdentityServiceException_1.CognitoIdentityServiceException,\n errorCode,\n });\n }\n};\nconst deserializeAws_json1_1MergeDeveloperIdentitiesCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return deserializeAws_json1_1MergeDeveloperIdentitiesCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = deserializeAws_json1_1MergeDeveloperIdentitiesResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return Promise.resolve(response);\n};\nexports.deserializeAws_json1_1MergeDeveloperIdentitiesCommand = deserializeAws_json1_1MergeDeveloperIdentitiesCommand;\nconst deserializeAws_json1_1MergeDeveloperIdentitiesCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"InternalErrorException\":\n case \"com.amazonaws.cognitoidentity#InternalErrorException\":\n throw await deserializeAws_json1_1InternalErrorExceptionResponse(parsedOutput, context);\n case \"InvalidParameterException\":\n case \"com.amazonaws.cognitoidentity#InvalidParameterException\":\n throw await deserializeAws_json1_1InvalidParameterExceptionResponse(parsedOutput, context);\n case \"NotAuthorizedException\":\n case \"com.amazonaws.cognitoidentity#NotAuthorizedException\":\n throw await deserializeAws_json1_1NotAuthorizedExceptionResponse(parsedOutput, context);\n case \"ResourceConflictException\":\n case \"com.amazonaws.cognitoidentity#ResourceConflictException\":\n throw await deserializeAws_json1_1ResourceConflictExceptionResponse(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.cognitoidentity#ResourceNotFoundException\":\n throw await deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context);\n case \"TooManyRequestsException\":\n case \"com.amazonaws.cognitoidentity#TooManyRequestsException\":\n throw await deserializeAws_json1_1TooManyRequestsExceptionResponse(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody,\n exceptionCtor: CognitoIdentityServiceException_1.CognitoIdentityServiceException,\n errorCode,\n });\n }\n};\nconst deserializeAws_json1_1SetIdentityPoolRolesCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return deserializeAws_json1_1SetIdentityPoolRolesCommandError(output, context);\n }\n await collectBody(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output),\n };\n return Promise.resolve(response);\n};\nexports.deserializeAws_json1_1SetIdentityPoolRolesCommand = deserializeAws_json1_1SetIdentityPoolRolesCommand;\nconst deserializeAws_json1_1SetIdentityPoolRolesCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"ConcurrentModificationException\":\n case \"com.amazonaws.cognitoidentity#ConcurrentModificationException\":\n throw await deserializeAws_json1_1ConcurrentModificationExceptionResponse(parsedOutput, context);\n case \"InternalErrorException\":\n case \"com.amazonaws.cognitoidentity#InternalErrorException\":\n throw await deserializeAws_json1_1InternalErrorExceptionResponse(parsedOutput, context);\n case \"InvalidParameterException\":\n case \"com.amazonaws.cognitoidentity#InvalidParameterException\":\n throw await deserializeAws_json1_1InvalidParameterExceptionResponse(parsedOutput, context);\n case \"NotAuthorizedException\":\n case \"com.amazonaws.cognitoidentity#NotAuthorizedException\":\n throw await deserializeAws_json1_1NotAuthorizedExceptionResponse(parsedOutput, context);\n case \"ResourceConflictException\":\n case \"com.amazonaws.cognitoidentity#ResourceConflictException\":\n throw await deserializeAws_json1_1ResourceConflictExceptionResponse(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.cognitoidentity#ResourceNotFoundException\":\n throw await deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context);\n case \"TooManyRequestsException\":\n case \"com.amazonaws.cognitoidentity#TooManyRequestsException\":\n throw await deserializeAws_json1_1TooManyRequestsExceptionResponse(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody,\n exceptionCtor: CognitoIdentityServiceException_1.CognitoIdentityServiceException,\n errorCode,\n });\n }\n};\nconst deserializeAws_json1_1SetPrincipalTagAttributeMapCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return deserializeAws_json1_1SetPrincipalTagAttributeMapCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = deserializeAws_json1_1SetPrincipalTagAttributeMapResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return Promise.resolve(response);\n};\nexports.deserializeAws_json1_1SetPrincipalTagAttributeMapCommand = deserializeAws_json1_1SetPrincipalTagAttributeMapCommand;\nconst deserializeAws_json1_1SetPrincipalTagAttributeMapCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"InternalErrorException\":\n case \"com.amazonaws.cognitoidentity#InternalErrorException\":\n throw await deserializeAws_json1_1InternalErrorExceptionResponse(parsedOutput, context);\n case \"InvalidParameterException\":\n case \"com.amazonaws.cognitoidentity#InvalidParameterException\":\n throw await deserializeAws_json1_1InvalidParameterExceptionResponse(parsedOutput, context);\n case \"NotAuthorizedException\":\n case \"com.amazonaws.cognitoidentity#NotAuthorizedException\":\n throw await deserializeAws_json1_1NotAuthorizedExceptionResponse(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.cognitoidentity#ResourceNotFoundException\":\n throw await deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context);\n case \"TooManyRequestsException\":\n case \"com.amazonaws.cognitoidentity#TooManyRequestsException\":\n throw await deserializeAws_json1_1TooManyRequestsExceptionResponse(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody,\n exceptionCtor: CognitoIdentityServiceException_1.CognitoIdentityServiceException,\n errorCode,\n });\n }\n};\nconst deserializeAws_json1_1TagResourceCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return deserializeAws_json1_1TagResourceCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = deserializeAws_json1_1TagResourceResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return Promise.resolve(response);\n};\nexports.deserializeAws_json1_1TagResourceCommand = deserializeAws_json1_1TagResourceCommand;\nconst deserializeAws_json1_1TagResourceCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"InternalErrorException\":\n case \"com.amazonaws.cognitoidentity#InternalErrorException\":\n throw await deserializeAws_json1_1InternalErrorExceptionResponse(parsedOutput, context);\n case \"InvalidParameterException\":\n case \"com.amazonaws.cognitoidentity#InvalidParameterException\":\n throw await deserializeAws_json1_1InvalidParameterExceptionResponse(parsedOutput, context);\n case \"NotAuthorizedException\":\n case \"com.amazonaws.cognitoidentity#NotAuthorizedException\":\n throw await deserializeAws_json1_1NotAuthorizedExceptionResponse(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.cognitoidentity#ResourceNotFoundException\":\n throw await deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context);\n case \"TooManyRequestsException\":\n case \"com.amazonaws.cognitoidentity#TooManyRequestsException\":\n throw await deserializeAws_json1_1TooManyRequestsExceptionResponse(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody,\n exceptionCtor: CognitoIdentityServiceException_1.CognitoIdentityServiceException,\n errorCode,\n });\n }\n};\nconst deserializeAws_json1_1UnlinkDeveloperIdentityCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return deserializeAws_json1_1UnlinkDeveloperIdentityCommandError(output, context);\n }\n await collectBody(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output),\n };\n return Promise.resolve(response);\n};\nexports.deserializeAws_json1_1UnlinkDeveloperIdentityCommand = deserializeAws_json1_1UnlinkDeveloperIdentityCommand;\nconst deserializeAws_json1_1UnlinkDeveloperIdentityCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"InternalErrorException\":\n case \"com.amazonaws.cognitoidentity#InternalErrorException\":\n throw await deserializeAws_json1_1InternalErrorExceptionResponse(parsedOutput, context);\n case \"InvalidParameterException\":\n case \"com.amazonaws.cognitoidentity#InvalidParameterException\":\n throw await deserializeAws_json1_1InvalidParameterExceptionResponse(parsedOutput, context);\n case \"NotAuthorizedException\":\n case \"com.amazonaws.cognitoidentity#NotAuthorizedException\":\n throw await deserializeAws_json1_1NotAuthorizedExceptionResponse(parsedOutput, context);\n case \"ResourceConflictException\":\n case \"com.amazonaws.cognitoidentity#ResourceConflictException\":\n throw await deserializeAws_json1_1ResourceConflictExceptionResponse(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.cognitoidentity#ResourceNotFoundException\":\n throw await deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context);\n case \"TooManyRequestsException\":\n case \"com.amazonaws.cognitoidentity#TooManyRequestsException\":\n throw await deserializeAws_json1_1TooManyRequestsExceptionResponse(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody,\n exceptionCtor: CognitoIdentityServiceException_1.CognitoIdentityServiceException,\n errorCode,\n });\n }\n};\nconst deserializeAws_json1_1UnlinkIdentityCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return deserializeAws_json1_1UnlinkIdentityCommandError(output, context);\n }\n await collectBody(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output),\n };\n return Promise.resolve(response);\n};\nexports.deserializeAws_json1_1UnlinkIdentityCommand = deserializeAws_json1_1UnlinkIdentityCommand;\nconst deserializeAws_json1_1UnlinkIdentityCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"ExternalServiceException\":\n case \"com.amazonaws.cognitoidentity#ExternalServiceException\":\n throw await deserializeAws_json1_1ExternalServiceExceptionResponse(parsedOutput, context);\n case \"InternalErrorException\":\n case \"com.amazonaws.cognitoidentity#InternalErrorException\":\n throw await deserializeAws_json1_1InternalErrorExceptionResponse(parsedOutput, context);\n case \"InvalidParameterException\":\n case \"com.amazonaws.cognitoidentity#InvalidParameterException\":\n throw await deserializeAws_json1_1InvalidParameterExceptionResponse(parsedOutput, context);\n case \"NotAuthorizedException\":\n case \"com.amazonaws.cognitoidentity#NotAuthorizedException\":\n throw await deserializeAws_json1_1NotAuthorizedExceptionResponse(parsedOutput, context);\n case \"ResourceConflictException\":\n case \"com.amazonaws.cognitoidentity#ResourceConflictException\":\n throw await deserializeAws_json1_1ResourceConflictExceptionResponse(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.cognitoidentity#ResourceNotFoundException\":\n throw await deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context);\n case \"TooManyRequestsException\":\n case \"com.amazonaws.cognitoidentity#TooManyRequestsException\":\n throw await deserializeAws_json1_1TooManyRequestsExceptionResponse(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody,\n exceptionCtor: CognitoIdentityServiceException_1.CognitoIdentityServiceException,\n errorCode,\n });\n }\n};\nconst deserializeAws_json1_1UntagResourceCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return deserializeAws_json1_1UntagResourceCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = deserializeAws_json1_1UntagResourceResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return Promise.resolve(response);\n};\nexports.deserializeAws_json1_1UntagResourceCommand = deserializeAws_json1_1UntagResourceCommand;\nconst deserializeAws_json1_1UntagResourceCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"InternalErrorException\":\n case \"com.amazonaws.cognitoidentity#InternalErrorException\":\n throw await deserializeAws_json1_1InternalErrorExceptionResponse(parsedOutput, context);\n case \"InvalidParameterException\":\n case \"com.amazonaws.cognitoidentity#InvalidParameterException\":\n throw await deserializeAws_json1_1InvalidParameterExceptionResponse(parsedOutput, context);\n case \"NotAuthorizedException\":\n case \"com.amazonaws.cognitoidentity#NotAuthorizedException\":\n throw await deserializeAws_json1_1NotAuthorizedExceptionResponse(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.cognitoidentity#ResourceNotFoundException\":\n throw await deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context);\n case \"TooManyRequestsException\":\n case \"com.amazonaws.cognitoidentity#TooManyRequestsException\":\n throw await deserializeAws_json1_1TooManyRequestsExceptionResponse(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody,\n exceptionCtor: CognitoIdentityServiceException_1.CognitoIdentityServiceException,\n errorCode,\n });\n }\n};\nconst deserializeAws_json1_1UpdateIdentityPoolCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return deserializeAws_json1_1UpdateIdentityPoolCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = deserializeAws_json1_1IdentityPool(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return Promise.resolve(response);\n};\nexports.deserializeAws_json1_1UpdateIdentityPoolCommand = deserializeAws_json1_1UpdateIdentityPoolCommand;\nconst deserializeAws_json1_1UpdateIdentityPoolCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"ConcurrentModificationException\":\n case \"com.amazonaws.cognitoidentity#ConcurrentModificationException\":\n throw await deserializeAws_json1_1ConcurrentModificationExceptionResponse(parsedOutput, context);\n case \"InternalErrorException\":\n case \"com.amazonaws.cognitoidentity#InternalErrorException\":\n throw await deserializeAws_json1_1InternalErrorExceptionResponse(parsedOutput, context);\n case \"InvalidParameterException\":\n case \"com.amazonaws.cognitoidentity#InvalidParameterException\":\n throw await deserializeAws_json1_1InvalidParameterExceptionResponse(parsedOutput, context);\n case \"LimitExceededException\":\n case \"com.amazonaws.cognitoidentity#LimitExceededException\":\n throw await deserializeAws_json1_1LimitExceededExceptionResponse(parsedOutput, context);\n case \"NotAuthorizedException\":\n case \"com.amazonaws.cognitoidentity#NotAuthorizedException\":\n throw await deserializeAws_json1_1NotAuthorizedExceptionResponse(parsedOutput, context);\n case \"ResourceConflictException\":\n case \"com.amazonaws.cognitoidentity#ResourceConflictException\":\n throw await deserializeAws_json1_1ResourceConflictExceptionResponse(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.cognitoidentity#ResourceNotFoundException\":\n throw await deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context);\n case \"TooManyRequestsException\":\n case \"com.amazonaws.cognitoidentity#TooManyRequestsException\":\n throw await deserializeAws_json1_1TooManyRequestsExceptionResponse(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody,\n exceptionCtor: CognitoIdentityServiceException_1.CognitoIdentityServiceException,\n errorCode,\n });\n }\n};\nconst deserializeAws_json1_1ConcurrentModificationExceptionResponse = async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = deserializeAws_json1_1ConcurrentModificationException(body, context);\n const exception = new models_0_1.ConcurrentModificationException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized,\n });\n return (0, smithy_client_1.decorateServiceException)(exception, body);\n};\nconst deserializeAws_json1_1DeveloperUserAlreadyRegisteredExceptionResponse = async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = deserializeAws_json1_1DeveloperUserAlreadyRegisteredException(body, context);\n const exception = new models_0_1.DeveloperUserAlreadyRegisteredException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized,\n });\n return (0, smithy_client_1.decorateServiceException)(exception, body);\n};\nconst deserializeAws_json1_1ExternalServiceExceptionResponse = async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = deserializeAws_json1_1ExternalServiceException(body, context);\n const exception = new models_0_1.ExternalServiceException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized,\n });\n return (0, smithy_client_1.decorateServiceException)(exception, body);\n};\nconst deserializeAws_json1_1InternalErrorExceptionResponse = async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = deserializeAws_json1_1InternalErrorException(body, context);\n const exception = new models_0_1.InternalErrorException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized,\n });\n return (0, smithy_client_1.decorateServiceException)(exception, body);\n};\nconst deserializeAws_json1_1InvalidIdentityPoolConfigurationExceptionResponse = async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = deserializeAws_json1_1InvalidIdentityPoolConfigurationException(body, context);\n const exception = new models_0_1.InvalidIdentityPoolConfigurationException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized,\n });\n return (0, smithy_client_1.decorateServiceException)(exception, body);\n};\nconst deserializeAws_json1_1InvalidParameterExceptionResponse = async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = deserializeAws_json1_1InvalidParameterException(body, context);\n const exception = new models_0_1.InvalidParameterException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized,\n });\n return (0, smithy_client_1.decorateServiceException)(exception, body);\n};\nconst deserializeAws_json1_1LimitExceededExceptionResponse = async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = deserializeAws_json1_1LimitExceededException(body, context);\n const exception = new models_0_1.LimitExceededException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized,\n });\n return (0, smithy_client_1.decorateServiceException)(exception, body);\n};\nconst deserializeAws_json1_1NotAuthorizedExceptionResponse = async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = deserializeAws_json1_1NotAuthorizedException(body, context);\n const exception = new models_0_1.NotAuthorizedException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized,\n });\n return (0, smithy_client_1.decorateServiceException)(exception, body);\n};\nconst deserializeAws_json1_1ResourceConflictExceptionResponse = async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = deserializeAws_json1_1ResourceConflictException(body, context);\n const exception = new models_0_1.ResourceConflictException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized,\n });\n return (0, smithy_client_1.decorateServiceException)(exception, body);\n};\nconst deserializeAws_json1_1ResourceNotFoundExceptionResponse = async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = deserializeAws_json1_1ResourceNotFoundException(body, context);\n const exception = new models_0_1.ResourceNotFoundException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized,\n });\n return (0, smithy_client_1.decorateServiceException)(exception, body);\n};\nconst deserializeAws_json1_1TooManyRequestsExceptionResponse = async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = deserializeAws_json1_1TooManyRequestsException(body, context);\n const exception = new models_0_1.TooManyRequestsException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized,\n });\n return (0, smithy_client_1.decorateServiceException)(exception, body);\n};\nconst serializeAws_json1_1CognitoIdentityProvider = (input, context) => {\n return {\n ...(input.ClientId != null && { ClientId: input.ClientId }),\n ...(input.ProviderName != null && { ProviderName: input.ProviderName }),\n ...(input.ServerSideTokenCheck != null && { ServerSideTokenCheck: input.ServerSideTokenCheck }),\n };\n};\nconst serializeAws_json1_1CognitoIdentityProviderList = (input, context) => {\n return input\n .filter((e) => e != null)\n .map((entry) => {\n return serializeAws_json1_1CognitoIdentityProvider(entry, context);\n });\n};\nconst serializeAws_json1_1CreateIdentityPoolInput = (input, context) => {\n return {\n ...(input.AllowClassicFlow != null && { AllowClassicFlow: input.AllowClassicFlow }),\n ...(input.AllowUnauthenticatedIdentities != null && {\n AllowUnauthenticatedIdentities: input.AllowUnauthenticatedIdentities,\n }),\n ...(input.CognitoIdentityProviders != null && {\n CognitoIdentityProviders: serializeAws_json1_1CognitoIdentityProviderList(input.CognitoIdentityProviders, context),\n }),\n ...(input.DeveloperProviderName != null && { DeveloperProviderName: input.DeveloperProviderName }),\n ...(input.IdentityPoolName != null && { IdentityPoolName: input.IdentityPoolName }),\n ...(input.IdentityPoolTags != null && {\n IdentityPoolTags: serializeAws_json1_1IdentityPoolTagsType(input.IdentityPoolTags, context),\n }),\n ...(input.OpenIdConnectProviderARNs != null && {\n OpenIdConnectProviderARNs: serializeAws_json1_1OIDCProviderList(input.OpenIdConnectProviderARNs, context),\n }),\n ...(input.SamlProviderARNs != null && {\n SamlProviderARNs: serializeAws_json1_1SAMLProviderList(input.SamlProviderARNs, context),\n }),\n ...(input.SupportedLoginProviders != null && {\n SupportedLoginProviders: serializeAws_json1_1IdentityProviders(input.SupportedLoginProviders, context),\n }),\n };\n};\nconst serializeAws_json1_1DeleteIdentitiesInput = (input, context) => {\n return {\n ...(input.IdentityIdsToDelete != null && {\n IdentityIdsToDelete: serializeAws_json1_1IdentityIdList(input.IdentityIdsToDelete, context),\n }),\n };\n};\nconst serializeAws_json1_1DeleteIdentityPoolInput = (input, context) => {\n return {\n ...(input.IdentityPoolId != null && { IdentityPoolId: input.IdentityPoolId }),\n };\n};\nconst serializeAws_json1_1DescribeIdentityInput = (input, context) => {\n return {\n ...(input.IdentityId != null && { IdentityId: input.IdentityId }),\n };\n};\nconst serializeAws_json1_1DescribeIdentityPoolInput = (input, context) => {\n return {\n ...(input.IdentityPoolId != null && { IdentityPoolId: input.IdentityPoolId }),\n };\n};\nconst serializeAws_json1_1GetCredentialsForIdentityInput = (input, context) => {\n return {\n ...(input.CustomRoleArn != null && { CustomRoleArn: input.CustomRoleArn }),\n ...(input.IdentityId != null && { IdentityId: input.IdentityId }),\n ...(input.Logins != null && { Logins: serializeAws_json1_1LoginsMap(input.Logins, context) }),\n };\n};\nconst serializeAws_json1_1GetIdentityPoolRolesInput = (input, context) => {\n return {\n ...(input.IdentityPoolId != null && { IdentityPoolId: input.IdentityPoolId }),\n };\n};\nconst serializeAws_json1_1GetIdInput = (input, context) => {\n return {\n ...(input.AccountId != null && { AccountId: input.AccountId }),\n ...(input.IdentityPoolId != null && { IdentityPoolId: input.IdentityPoolId }),\n ...(input.Logins != null && { Logins: serializeAws_json1_1LoginsMap(input.Logins, context) }),\n };\n};\nconst serializeAws_json1_1GetOpenIdTokenForDeveloperIdentityInput = (input, context) => {\n return {\n ...(input.IdentityId != null && { IdentityId: input.IdentityId }),\n ...(input.IdentityPoolId != null && { IdentityPoolId: input.IdentityPoolId }),\n ...(input.Logins != null && { Logins: serializeAws_json1_1LoginsMap(input.Logins, context) }),\n ...(input.PrincipalTags != null && {\n PrincipalTags: serializeAws_json1_1PrincipalTags(input.PrincipalTags, context),\n }),\n ...(input.TokenDuration != null && { TokenDuration: input.TokenDuration }),\n };\n};\nconst serializeAws_json1_1GetOpenIdTokenInput = (input, context) => {\n return {\n ...(input.IdentityId != null && { IdentityId: input.IdentityId }),\n ...(input.Logins != null && { Logins: serializeAws_json1_1LoginsMap(input.Logins, context) }),\n };\n};\nconst serializeAws_json1_1GetPrincipalTagAttributeMapInput = (input, context) => {\n return {\n ...(input.IdentityPoolId != null && { IdentityPoolId: input.IdentityPoolId }),\n ...(input.IdentityProviderName != null && { IdentityProviderName: input.IdentityProviderName }),\n };\n};\nconst serializeAws_json1_1IdentityIdList = (input, context) => {\n return input\n .filter((e) => e != null)\n .map((entry) => {\n return entry;\n });\n};\nconst serializeAws_json1_1IdentityPool = (input, context) => {\n return {\n ...(input.AllowClassicFlow != null && { AllowClassicFlow: input.AllowClassicFlow }),\n ...(input.AllowUnauthenticatedIdentities != null && {\n AllowUnauthenticatedIdentities: input.AllowUnauthenticatedIdentities,\n }),\n ...(input.CognitoIdentityProviders != null && {\n CognitoIdentityProviders: serializeAws_json1_1CognitoIdentityProviderList(input.CognitoIdentityProviders, context),\n }),\n ...(input.DeveloperProviderName != null && { DeveloperProviderName: input.DeveloperProviderName }),\n ...(input.IdentityPoolId != null && { IdentityPoolId: input.IdentityPoolId }),\n ...(input.IdentityPoolName != null && { IdentityPoolName: input.IdentityPoolName }),\n ...(input.IdentityPoolTags != null && {\n IdentityPoolTags: serializeAws_json1_1IdentityPoolTagsType(input.IdentityPoolTags, context),\n }),\n ...(input.OpenIdConnectProviderARNs != null && {\n OpenIdConnectProviderARNs: serializeAws_json1_1OIDCProviderList(input.OpenIdConnectProviderARNs, context),\n }),\n ...(input.SamlProviderARNs != null && {\n SamlProviderARNs: serializeAws_json1_1SAMLProviderList(input.SamlProviderARNs, context),\n }),\n ...(input.SupportedLoginProviders != null && {\n SupportedLoginProviders: serializeAws_json1_1IdentityProviders(input.SupportedLoginProviders, context),\n }),\n };\n};\nconst serializeAws_json1_1IdentityPoolTagsListType = (input, context) => {\n return input\n .filter((e) => e != null)\n .map((entry) => {\n return entry;\n });\n};\nconst serializeAws_json1_1IdentityPoolTagsType = (input, context) => {\n return Object.entries(input).reduce((acc, [key, value]) => {\n if (value === null) {\n return acc;\n }\n acc[key] = value;\n return acc;\n }, {});\n};\nconst serializeAws_json1_1IdentityProviders = (input, context) => {\n return Object.entries(input).reduce((acc, [key, value]) => {\n if (value === null) {\n return acc;\n }\n acc[key] = value;\n return acc;\n }, {});\n};\nconst serializeAws_json1_1ListIdentitiesInput = (input, context) => {\n return {\n ...(input.HideDisabled != null && { HideDisabled: input.HideDisabled }),\n ...(input.IdentityPoolId != null && { IdentityPoolId: input.IdentityPoolId }),\n ...(input.MaxResults != null && { MaxResults: input.MaxResults }),\n ...(input.NextToken != null && { NextToken: input.NextToken }),\n };\n};\nconst serializeAws_json1_1ListIdentityPoolsInput = (input, context) => {\n return {\n ...(input.MaxResults != null && { MaxResults: input.MaxResults }),\n ...(input.NextToken != null && { NextToken: input.NextToken }),\n };\n};\nconst serializeAws_json1_1ListTagsForResourceInput = (input, context) => {\n return {\n ...(input.ResourceArn != null && { ResourceArn: input.ResourceArn }),\n };\n};\nconst serializeAws_json1_1LoginsList = (input, context) => {\n return input\n .filter((e) => e != null)\n .map((entry) => {\n return entry;\n });\n};\nconst serializeAws_json1_1LoginsMap = (input, context) => {\n return Object.entries(input).reduce((acc, [key, value]) => {\n if (value === null) {\n return acc;\n }\n acc[key] = value;\n return acc;\n }, {});\n};\nconst serializeAws_json1_1LookupDeveloperIdentityInput = (input, context) => {\n return {\n ...(input.DeveloperUserIdentifier != null && { DeveloperUserIdentifier: input.DeveloperUserIdentifier }),\n ...(input.IdentityId != null && { IdentityId: input.IdentityId }),\n ...(input.IdentityPoolId != null && { IdentityPoolId: input.IdentityPoolId }),\n ...(input.MaxResults != null && { MaxResults: input.MaxResults }),\n ...(input.NextToken != null && { NextToken: input.NextToken }),\n };\n};\nconst serializeAws_json1_1MappingRule = (input, context) => {\n return {\n ...(input.Claim != null && { Claim: input.Claim }),\n ...(input.MatchType != null && { MatchType: input.MatchType }),\n ...(input.RoleARN != null && { RoleARN: input.RoleARN }),\n ...(input.Value != null && { Value: input.Value }),\n };\n};\nconst serializeAws_json1_1MappingRulesList = (input, context) => {\n return input\n .filter((e) => e != null)\n .map((entry) => {\n return serializeAws_json1_1MappingRule(entry, context);\n });\n};\nconst serializeAws_json1_1MergeDeveloperIdentitiesInput = (input, context) => {\n return {\n ...(input.DestinationUserIdentifier != null && { DestinationUserIdentifier: input.DestinationUserIdentifier }),\n ...(input.DeveloperProviderName != null && { DeveloperProviderName: input.DeveloperProviderName }),\n ...(input.IdentityPoolId != null && { IdentityPoolId: input.IdentityPoolId }),\n ...(input.SourceUserIdentifier != null && { SourceUserIdentifier: input.SourceUserIdentifier }),\n };\n};\nconst serializeAws_json1_1OIDCProviderList = (input, context) => {\n return input\n .filter((e) => e != null)\n .map((entry) => {\n return entry;\n });\n};\nconst serializeAws_json1_1PrincipalTags = (input, context) => {\n return Object.entries(input).reduce((acc, [key, value]) => {\n if (value === null) {\n return acc;\n }\n acc[key] = value;\n return acc;\n }, {});\n};\nconst serializeAws_json1_1RoleMapping = (input, context) => {\n return {\n ...(input.AmbiguousRoleResolution != null && { AmbiguousRoleResolution: input.AmbiguousRoleResolution }),\n ...(input.RulesConfiguration != null && {\n RulesConfiguration: serializeAws_json1_1RulesConfigurationType(input.RulesConfiguration, context),\n }),\n ...(input.Type != null && { Type: input.Type }),\n };\n};\nconst serializeAws_json1_1RoleMappingMap = (input, context) => {\n return Object.entries(input).reduce((acc, [key, value]) => {\n if (value === null) {\n return acc;\n }\n acc[key] = serializeAws_json1_1RoleMapping(value, context);\n return acc;\n }, {});\n};\nconst serializeAws_json1_1RolesMap = (input, context) => {\n return Object.entries(input).reduce((acc, [key, value]) => {\n if (value === null) {\n return acc;\n }\n acc[key] = value;\n return acc;\n }, {});\n};\nconst serializeAws_json1_1RulesConfigurationType = (input, context) => {\n return {\n ...(input.Rules != null && { Rules: serializeAws_json1_1MappingRulesList(input.Rules, context) }),\n };\n};\nconst serializeAws_json1_1SAMLProviderList = (input, context) => {\n return input\n .filter((e) => e != null)\n .map((entry) => {\n return entry;\n });\n};\nconst serializeAws_json1_1SetIdentityPoolRolesInput = (input, context) => {\n return {\n ...(input.IdentityPoolId != null && { IdentityPoolId: input.IdentityPoolId }),\n ...(input.RoleMappings != null && {\n RoleMappings: serializeAws_json1_1RoleMappingMap(input.RoleMappings, context),\n }),\n ...(input.Roles != null && { Roles: serializeAws_json1_1RolesMap(input.Roles, context) }),\n };\n};\nconst serializeAws_json1_1SetPrincipalTagAttributeMapInput = (input, context) => {\n return {\n ...(input.IdentityPoolId != null && { IdentityPoolId: input.IdentityPoolId }),\n ...(input.IdentityProviderName != null && { IdentityProviderName: input.IdentityProviderName }),\n ...(input.PrincipalTags != null && {\n PrincipalTags: serializeAws_json1_1PrincipalTags(input.PrincipalTags, context),\n }),\n ...(input.UseDefaults != null && { UseDefaults: input.UseDefaults }),\n };\n};\nconst serializeAws_json1_1TagResourceInput = (input, context) => {\n return {\n ...(input.ResourceArn != null && { ResourceArn: input.ResourceArn }),\n ...(input.Tags != null && { Tags: serializeAws_json1_1IdentityPoolTagsType(input.Tags, context) }),\n };\n};\nconst serializeAws_json1_1UnlinkDeveloperIdentityInput = (input, context) => {\n return {\n ...(input.DeveloperProviderName != null && { DeveloperProviderName: input.DeveloperProviderName }),\n ...(input.DeveloperUserIdentifier != null && { DeveloperUserIdentifier: input.DeveloperUserIdentifier }),\n ...(input.IdentityId != null && { IdentityId: input.IdentityId }),\n ...(input.IdentityPoolId != null && { IdentityPoolId: input.IdentityPoolId }),\n };\n};\nconst serializeAws_json1_1UnlinkIdentityInput = (input, context) => {\n return {\n ...(input.IdentityId != null && { IdentityId: input.IdentityId }),\n ...(input.Logins != null && { Logins: serializeAws_json1_1LoginsMap(input.Logins, context) }),\n ...(input.LoginsToRemove != null && {\n LoginsToRemove: serializeAws_json1_1LoginsList(input.LoginsToRemove, context),\n }),\n };\n};\nconst serializeAws_json1_1UntagResourceInput = (input, context) => {\n return {\n ...(input.ResourceArn != null && { ResourceArn: input.ResourceArn }),\n ...(input.TagKeys != null && { TagKeys: serializeAws_json1_1IdentityPoolTagsListType(input.TagKeys, context) }),\n };\n};\nconst deserializeAws_json1_1CognitoIdentityProvider = (output, context) => {\n return {\n ClientId: (0, smithy_client_1.expectString)(output.ClientId),\n ProviderName: (0, smithy_client_1.expectString)(output.ProviderName),\n ServerSideTokenCheck: (0, smithy_client_1.expectBoolean)(output.ServerSideTokenCheck),\n };\n};\nconst deserializeAws_json1_1CognitoIdentityProviderList = (output, context) => {\n const retVal = (output || [])\n .filter((e) => e != null)\n .map((entry) => {\n if (entry === null) {\n return null;\n }\n return deserializeAws_json1_1CognitoIdentityProvider(entry, context);\n });\n return retVal;\n};\nconst deserializeAws_json1_1ConcurrentModificationException = (output, context) => {\n return {\n message: (0, smithy_client_1.expectString)(output.message),\n };\n};\nconst deserializeAws_json1_1Credentials = (output, context) => {\n return {\n AccessKeyId: (0, smithy_client_1.expectString)(output.AccessKeyId),\n Expiration: output.Expiration != null ? (0, smithy_client_1.expectNonNull)((0, smithy_client_1.parseEpochTimestamp)((0, smithy_client_1.expectNumber)(output.Expiration))) : undefined,\n SecretKey: (0, smithy_client_1.expectString)(output.SecretKey),\n SessionToken: (0, smithy_client_1.expectString)(output.SessionToken),\n };\n};\nconst deserializeAws_json1_1DeleteIdentitiesResponse = (output, context) => {\n return {\n UnprocessedIdentityIds: output.UnprocessedIdentityIds != null\n ? deserializeAws_json1_1UnprocessedIdentityIdList(output.UnprocessedIdentityIds, context)\n : undefined,\n };\n};\nconst deserializeAws_json1_1DeveloperUserAlreadyRegisteredException = (output, context) => {\n return {\n message: (0, smithy_client_1.expectString)(output.message),\n };\n};\nconst deserializeAws_json1_1DeveloperUserIdentifierList = (output, context) => {\n const retVal = (output || [])\n .filter((e) => e != null)\n .map((entry) => {\n if (entry === null) {\n return null;\n }\n return (0, smithy_client_1.expectString)(entry);\n });\n return retVal;\n};\nconst deserializeAws_json1_1ExternalServiceException = (output, context) => {\n return {\n message: (0, smithy_client_1.expectString)(output.message),\n };\n};\nconst deserializeAws_json1_1GetCredentialsForIdentityResponse = (output, context) => {\n return {\n Credentials: output.Credentials != null ? deserializeAws_json1_1Credentials(output.Credentials, context) : undefined,\n IdentityId: (0, smithy_client_1.expectString)(output.IdentityId),\n };\n};\nconst deserializeAws_json1_1GetIdentityPoolRolesResponse = (output, context) => {\n return {\n IdentityPoolId: (0, smithy_client_1.expectString)(output.IdentityPoolId),\n RoleMappings: output.RoleMappings != null ? deserializeAws_json1_1RoleMappingMap(output.RoleMappings, context) : undefined,\n Roles: output.Roles != null ? deserializeAws_json1_1RolesMap(output.Roles, context) : undefined,\n };\n};\nconst deserializeAws_json1_1GetIdResponse = (output, context) => {\n return {\n IdentityId: (0, smithy_client_1.expectString)(output.IdentityId),\n };\n};\nconst deserializeAws_json1_1GetOpenIdTokenForDeveloperIdentityResponse = (output, context) => {\n return {\n IdentityId: (0, smithy_client_1.expectString)(output.IdentityId),\n Token: (0, smithy_client_1.expectString)(output.Token),\n };\n};\nconst deserializeAws_json1_1GetOpenIdTokenResponse = (output, context) => {\n return {\n IdentityId: (0, smithy_client_1.expectString)(output.IdentityId),\n Token: (0, smithy_client_1.expectString)(output.Token),\n };\n};\nconst deserializeAws_json1_1GetPrincipalTagAttributeMapResponse = (output, context) => {\n return {\n IdentityPoolId: (0, smithy_client_1.expectString)(output.IdentityPoolId),\n IdentityProviderName: (0, smithy_client_1.expectString)(output.IdentityProviderName),\n PrincipalTags: output.PrincipalTags != null ? deserializeAws_json1_1PrincipalTags(output.PrincipalTags, context) : undefined,\n UseDefaults: (0, smithy_client_1.expectBoolean)(output.UseDefaults),\n };\n};\nconst deserializeAws_json1_1IdentitiesList = (output, context) => {\n const retVal = (output || [])\n .filter((e) => e != null)\n .map((entry) => {\n if (entry === null) {\n return null;\n }\n return deserializeAws_json1_1IdentityDescription(entry, context);\n });\n return retVal;\n};\nconst deserializeAws_json1_1IdentityDescription = (output, context) => {\n return {\n CreationDate: output.CreationDate != null\n ? (0, smithy_client_1.expectNonNull)((0, smithy_client_1.parseEpochTimestamp)((0, smithy_client_1.expectNumber)(output.CreationDate)))\n : undefined,\n IdentityId: (0, smithy_client_1.expectString)(output.IdentityId),\n LastModifiedDate: output.LastModifiedDate != null\n ? (0, smithy_client_1.expectNonNull)((0, smithy_client_1.parseEpochTimestamp)((0, smithy_client_1.expectNumber)(output.LastModifiedDate)))\n : undefined,\n Logins: output.Logins != null ? deserializeAws_json1_1LoginsList(output.Logins, context) : undefined,\n };\n};\nconst deserializeAws_json1_1IdentityPool = (output, context) => {\n return {\n AllowClassicFlow: (0, smithy_client_1.expectBoolean)(output.AllowClassicFlow),\n AllowUnauthenticatedIdentities: (0, smithy_client_1.expectBoolean)(output.AllowUnauthenticatedIdentities),\n CognitoIdentityProviders: output.CognitoIdentityProviders != null\n ? deserializeAws_json1_1CognitoIdentityProviderList(output.CognitoIdentityProviders, context)\n : undefined,\n DeveloperProviderName: (0, smithy_client_1.expectString)(output.DeveloperProviderName),\n IdentityPoolId: (0, smithy_client_1.expectString)(output.IdentityPoolId),\n IdentityPoolName: (0, smithy_client_1.expectString)(output.IdentityPoolName),\n IdentityPoolTags: output.IdentityPoolTags != null\n ? deserializeAws_json1_1IdentityPoolTagsType(output.IdentityPoolTags, context)\n : undefined,\n OpenIdConnectProviderARNs: output.OpenIdConnectProviderARNs != null\n ? deserializeAws_json1_1OIDCProviderList(output.OpenIdConnectProviderARNs, context)\n : undefined,\n SamlProviderARNs: output.SamlProviderARNs != null\n ? deserializeAws_json1_1SAMLProviderList(output.SamlProviderARNs, context)\n : undefined,\n SupportedLoginProviders: output.SupportedLoginProviders != null\n ? deserializeAws_json1_1IdentityProviders(output.SupportedLoginProviders, context)\n : undefined,\n };\n};\nconst deserializeAws_json1_1IdentityPoolShortDescription = (output, context) => {\n return {\n IdentityPoolId: (0, smithy_client_1.expectString)(output.IdentityPoolId),\n IdentityPoolName: (0, smithy_client_1.expectString)(output.IdentityPoolName),\n };\n};\nconst deserializeAws_json1_1IdentityPoolsList = (output, context) => {\n const retVal = (output || [])\n .filter((e) => e != null)\n .map((entry) => {\n if (entry === null) {\n return null;\n }\n return deserializeAws_json1_1IdentityPoolShortDescription(entry, context);\n });\n return retVal;\n};\nconst deserializeAws_json1_1IdentityPoolTagsType = (output, context) => {\n return Object.entries(output).reduce((acc, [key, value]) => {\n if (value === null) {\n return acc;\n }\n acc[key] = (0, smithy_client_1.expectString)(value);\n return acc;\n }, {});\n};\nconst deserializeAws_json1_1IdentityProviders = (output, context) => {\n return Object.entries(output).reduce((acc, [key, value]) => {\n if (value === null) {\n return acc;\n }\n acc[key] = (0, smithy_client_1.expectString)(value);\n return acc;\n }, {});\n};\nconst deserializeAws_json1_1InternalErrorException = (output, context) => {\n return {\n message: (0, smithy_client_1.expectString)(output.message),\n };\n};\nconst deserializeAws_json1_1InvalidIdentityPoolConfigurationException = (output, context) => {\n return {\n message: (0, smithy_client_1.expectString)(output.message),\n };\n};\nconst deserializeAws_json1_1InvalidParameterException = (output, context) => {\n return {\n message: (0, smithy_client_1.expectString)(output.message),\n };\n};\nconst deserializeAws_json1_1LimitExceededException = (output, context) => {\n return {\n message: (0, smithy_client_1.expectString)(output.message),\n };\n};\nconst deserializeAws_json1_1ListIdentitiesResponse = (output, context) => {\n return {\n Identities: output.Identities != null ? deserializeAws_json1_1IdentitiesList(output.Identities, context) : undefined,\n IdentityPoolId: (0, smithy_client_1.expectString)(output.IdentityPoolId),\n NextToken: (0, smithy_client_1.expectString)(output.NextToken),\n };\n};\nconst deserializeAws_json1_1ListIdentityPoolsResponse = (output, context) => {\n return {\n IdentityPools: output.IdentityPools != null ? deserializeAws_json1_1IdentityPoolsList(output.IdentityPools, context) : undefined,\n NextToken: (0, smithy_client_1.expectString)(output.NextToken),\n };\n};\nconst deserializeAws_json1_1ListTagsForResourceResponse = (output, context) => {\n return {\n Tags: output.Tags != null ? deserializeAws_json1_1IdentityPoolTagsType(output.Tags, context) : undefined,\n };\n};\nconst deserializeAws_json1_1LoginsList = (output, context) => {\n const retVal = (output || [])\n .filter((e) => e != null)\n .map((entry) => {\n if (entry === null) {\n return null;\n }\n return (0, smithy_client_1.expectString)(entry);\n });\n return retVal;\n};\nconst deserializeAws_json1_1LookupDeveloperIdentityResponse = (output, context) => {\n return {\n DeveloperUserIdentifierList: output.DeveloperUserIdentifierList != null\n ? deserializeAws_json1_1DeveloperUserIdentifierList(output.DeveloperUserIdentifierList, context)\n : undefined,\n IdentityId: (0, smithy_client_1.expectString)(output.IdentityId),\n NextToken: (0, smithy_client_1.expectString)(output.NextToken),\n };\n};\nconst deserializeAws_json1_1MappingRule = (output, context) => {\n return {\n Claim: (0, smithy_client_1.expectString)(output.Claim),\n MatchType: (0, smithy_client_1.expectString)(output.MatchType),\n RoleARN: (0, smithy_client_1.expectString)(output.RoleARN),\n Value: (0, smithy_client_1.expectString)(output.Value),\n };\n};\nconst deserializeAws_json1_1MappingRulesList = (output, context) => {\n const retVal = (output || [])\n .filter((e) => e != null)\n .map((entry) => {\n if (entry === null) {\n return null;\n }\n return deserializeAws_json1_1MappingRule(entry, context);\n });\n return retVal;\n};\nconst deserializeAws_json1_1MergeDeveloperIdentitiesResponse = (output, context) => {\n return {\n IdentityId: (0, smithy_client_1.expectString)(output.IdentityId),\n };\n};\nconst deserializeAws_json1_1NotAuthorizedException = (output, context) => {\n return {\n message: (0, smithy_client_1.expectString)(output.message),\n };\n};\nconst deserializeAws_json1_1OIDCProviderList = (output, context) => {\n const retVal = (output || [])\n .filter((e) => e != null)\n .map((entry) => {\n if (entry === null) {\n return null;\n }\n return (0, smithy_client_1.expectString)(entry);\n });\n return retVal;\n};\nconst deserializeAws_json1_1PrincipalTags = (output, context) => {\n return Object.entries(output).reduce((acc, [key, value]) => {\n if (value === null) {\n return acc;\n }\n acc[key] = (0, smithy_client_1.expectString)(value);\n return acc;\n }, {});\n};\nconst deserializeAws_json1_1ResourceConflictException = (output, context) => {\n return {\n message: (0, smithy_client_1.expectString)(output.message),\n };\n};\nconst deserializeAws_json1_1ResourceNotFoundException = (output, context) => {\n return {\n message: (0, smithy_client_1.expectString)(output.message),\n };\n};\nconst deserializeAws_json1_1RoleMapping = (output, context) => {\n return {\n AmbiguousRoleResolution: (0, smithy_client_1.expectString)(output.AmbiguousRoleResolution),\n RulesConfiguration: output.RulesConfiguration != null\n ? deserializeAws_json1_1RulesConfigurationType(output.RulesConfiguration, context)\n : undefined,\n Type: (0, smithy_client_1.expectString)(output.Type),\n };\n};\nconst deserializeAws_json1_1RoleMappingMap = (output, context) => {\n return Object.entries(output).reduce((acc, [key, value]) => {\n if (value === null) {\n return acc;\n }\n acc[key] = deserializeAws_json1_1RoleMapping(value, context);\n return acc;\n }, {});\n};\nconst deserializeAws_json1_1RolesMap = (output, context) => {\n return Object.entries(output).reduce((acc, [key, value]) => {\n if (value === null) {\n return acc;\n }\n acc[key] = (0, smithy_client_1.expectString)(value);\n return acc;\n }, {});\n};\nconst deserializeAws_json1_1RulesConfigurationType = (output, context) => {\n return {\n Rules: output.Rules != null ? deserializeAws_json1_1MappingRulesList(output.Rules, context) : undefined,\n };\n};\nconst deserializeAws_json1_1SAMLProviderList = (output, context) => {\n const retVal = (output || [])\n .filter((e) => e != null)\n .map((entry) => {\n if (entry === null) {\n return null;\n }\n return (0, smithy_client_1.expectString)(entry);\n });\n return retVal;\n};\nconst deserializeAws_json1_1SetPrincipalTagAttributeMapResponse = (output, context) => {\n return {\n IdentityPoolId: (0, smithy_client_1.expectString)(output.IdentityPoolId),\n IdentityProviderName: (0, smithy_client_1.expectString)(output.IdentityProviderName),\n PrincipalTags: output.PrincipalTags != null ? deserializeAws_json1_1PrincipalTags(output.PrincipalTags, context) : undefined,\n UseDefaults: (0, smithy_client_1.expectBoolean)(output.UseDefaults),\n };\n};\nconst deserializeAws_json1_1TagResourceResponse = (output, context) => {\n return {};\n};\nconst deserializeAws_json1_1TooManyRequestsException = (output, context) => {\n return {\n message: (0, smithy_client_1.expectString)(output.message),\n };\n};\nconst deserializeAws_json1_1UnprocessedIdentityId = (output, context) => {\n return {\n ErrorCode: (0, smithy_client_1.expectString)(output.ErrorCode),\n IdentityId: (0, smithy_client_1.expectString)(output.IdentityId),\n };\n};\nconst deserializeAws_json1_1UnprocessedIdentityIdList = (output, context) => {\n const retVal = (output || [])\n .filter((e) => e != null)\n .map((entry) => {\n if (entry === null) {\n return null;\n }\n return deserializeAws_json1_1UnprocessedIdentityId(entry, context);\n });\n return retVal;\n};\nconst deserializeAws_json1_1UntagResourceResponse = (output, context) => {\n return {};\n};\nconst deserializeMetadata = (output) => ({\n httpStatusCode: output.statusCode,\n requestId: output.headers[\"x-amzn-requestid\"] ?? output.headers[\"x-amzn-request-id\"] ?? output.headers[\"x-amz-request-id\"],\n extendedRequestId: output.headers[\"x-amz-id-2\"],\n cfId: output.headers[\"x-amz-cf-id\"],\n});\nconst collectBody = (streamBody = new Uint8Array(), context) => {\n if (streamBody instanceof Uint8Array) {\n return Promise.resolve(streamBody);\n }\n return context.streamCollector(streamBody) || Promise.resolve(new Uint8Array());\n};\nconst collectBodyString = (streamBody, context) => collectBody(streamBody, context).then((body) => context.utf8Encoder(body));\nconst buildHttpRpcRequest = async (context, headers, path, resolvedHostname, body) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const contents = {\n protocol,\n hostname,\n port,\n method: \"POST\",\n path: basePath.endsWith(\"/\") ? basePath.slice(0, -1) + path : basePath + path,\n headers,\n };\n if (resolvedHostname !== undefined) {\n contents.hostname = resolvedHostname;\n }\n if (body !== undefined) {\n contents.body = body;\n }\n return new protocol_http_1.HttpRequest(contents);\n};\nconst parseBody = (streamBody, context) => collectBodyString(streamBody, context).then((encoded) => {\n if (encoded.length) {\n return JSON.parse(encoded);\n }\n return {};\n});\nconst parseErrorBody = async (errorBody, context) => {\n const value = await parseBody(errorBody, context);\n value.message = value.message ?? value.Message;\n return value;\n};\nconst loadRestJsonErrorCode = (output, data) => {\n const findKey = (object, key) => Object.keys(object).find((k) => k.toLowerCase() === key.toLowerCase());\n const sanitizeErrorCode = (rawValue) => {\n let cleanValue = rawValue;\n if (typeof cleanValue === \"number\") {\n cleanValue = cleanValue.toString();\n }\n if (cleanValue.indexOf(\",\") >= 0) {\n cleanValue = cleanValue.split(\",\")[0];\n }\n if (cleanValue.indexOf(\":\") >= 0) {\n cleanValue = cleanValue.split(\":\")[0];\n }\n if (cleanValue.indexOf(\"#\") >= 0) {\n cleanValue = cleanValue.split(\"#\")[1];\n }\n return cleanValue;\n };\n const headerKey = findKey(output.headers, \"x-amzn-errortype\");\n if (headerKey !== undefined) {\n return sanitizeErrorCode(output.headers[headerKey]);\n }\n if (data.code !== undefined) {\n return sanitizeErrorCode(data.code);\n }\n if (data[\"__type\"] !== undefined) {\n return sanitizeErrorCode(data[\"__type\"]);\n }\n};\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CreateIdentityPoolCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst middleware_signing_1 = require(\"@aws-sdk/middleware-signing\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_json1_1_1 = require(\"../protocols/Aws_json1_1\");\nclass CreateIdentityPoolCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, CreateIdentityPoolCommand.getEndpointParameterInstructions()));\n this.middlewareStack.use((0, middleware_signing_1.getAwsAuthPlugin)(configuration));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"CognitoIdentityClient\";\n const commandName = \"CreateIdentityPoolCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.CreateIdentityPoolInputFilterSensitiveLog,\n outputFilterSensitiveLog: models_0_1.IdentityPoolFilterSensitiveLog,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_json1_1_1.serializeAws_json1_1CreateIdentityPoolCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_json1_1_1.deserializeAws_json1_1CreateIdentityPoolCommand)(output, context);\n }\n}\nexports.CreateIdentityPoolCommand = CreateIdentityPoolCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DeleteIdentitiesCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst middleware_signing_1 = require(\"@aws-sdk/middleware-signing\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_json1_1_1 = require(\"../protocols/Aws_json1_1\");\nclass DeleteIdentitiesCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, DeleteIdentitiesCommand.getEndpointParameterInstructions()));\n this.middlewareStack.use((0, middleware_signing_1.getAwsAuthPlugin)(configuration));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"CognitoIdentityClient\";\n const commandName = \"DeleteIdentitiesCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.DeleteIdentitiesInputFilterSensitiveLog,\n outputFilterSensitiveLog: models_0_1.DeleteIdentitiesResponseFilterSensitiveLog,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_json1_1_1.serializeAws_json1_1DeleteIdentitiesCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_json1_1_1.deserializeAws_json1_1DeleteIdentitiesCommand)(output, context);\n }\n}\nexports.DeleteIdentitiesCommand = DeleteIdentitiesCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DeleteIdentityPoolCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst middleware_signing_1 = require(\"@aws-sdk/middleware-signing\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_json1_1_1 = require(\"../protocols/Aws_json1_1\");\nclass DeleteIdentityPoolCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, DeleteIdentityPoolCommand.getEndpointParameterInstructions()));\n this.middlewareStack.use((0, middleware_signing_1.getAwsAuthPlugin)(configuration));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"CognitoIdentityClient\";\n const commandName = \"DeleteIdentityPoolCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.DeleteIdentityPoolInputFilterSensitiveLog,\n outputFilterSensitiveLog: (output) => output,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_json1_1_1.serializeAws_json1_1DeleteIdentityPoolCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_json1_1_1.deserializeAws_json1_1DeleteIdentityPoolCommand)(output, context);\n }\n}\nexports.DeleteIdentityPoolCommand = DeleteIdentityPoolCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DescribeIdentityCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst middleware_signing_1 = require(\"@aws-sdk/middleware-signing\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_json1_1_1 = require(\"../protocols/Aws_json1_1\");\nclass DescribeIdentityCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, DescribeIdentityCommand.getEndpointParameterInstructions()));\n this.middlewareStack.use((0, middleware_signing_1.getAwsAuthPlugin)(configuration));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"CognitoIdentityClient\";\n const commandName = \"DescribeIdentityCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.DescribeIdentityInputFilterSensitiveLog,\n outputFilterSensitiveLog: models_0_1.IdentityDescriptionFilterSensitiveLog,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_json1_1_1.serializeAws_json1_1DescribeIdentityCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_json1_1_1.deserializeAws_json1_1DescribeIdentityCommand)(output, context);\n }\n}\nexports.DescribeIdentityCommand = DescribeIdentityCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DescribeIdentityPoolCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst middleware_signing_1 = require(\"@aws-sdk/middleware-signing\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_json1_1_1 = require(\"../protocols/Aws_json1_1\");\nclass DescribeIdentityPoolCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, DescribeIdentityPoolCommand.getEndpointParameterInstructions()));\n this.middlewareStack.use((0, middleware_signing_1.getAwsAuthPlugin)(configuration));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"CognitoIdentityClient\";\n const commandName = \"DescribeIdentityPoolCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.DescribeIdentityPoolInputFilterSensitiveLog,\n outputFilterSensitiveLog: models_0_1.IdentityPoolFilterSensitiveLog,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_json1_1_1.serializeAws_json1_1DescribeIdentityPoolCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_json1_1_1.deserializeAws_json1_1DescribeIdentityPoolCommand)(output, context);\n }\n}\nexports.DescribeIdentityPoolCommand = DescribeIdentityPoolCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.GetCredentialsForIdentityCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_json1_1_1 = require(\"../protocols/Aws_json1_1\");\nclass GetCredentialsForIdentityCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, GetCredentialsForIdentityCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"CognitoIdentityClient\";\n const commandName = \"GetCredentialsForIdentityCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.GetCredentialsForIdentityInputFilterSensitiveLog,\n outputFilterSensitiveLog: models_0_1.GetCredentialsForIdentityResponseFilterSensitiveLog,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_json1_1_1.serializeAws_json1_1GetCredentialsForIdentityCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_json1_1_1.deserializeAws_json1_1GetCredentialsForIdentityCommand)(output, context);\n }\n}\nexports.GetCredentialsForIdentityCommand = GetCredentialsForIdentityCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.GetIdCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_json1_1_1 = require(\"../protocols/Aws_json1_1\");\nclass GetIdCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, GetIdCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"CognitoIdentityClient\";\n const commandName = \"GetIdCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.GetIdInputFilterSensitiveLog,\n outputFilterSensitiveLog: models_0_1.GetIdResponseFilterSensitiveLog,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_json1_1_1.serializeAws_json1_1GetIdCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_json1_1_1.deserializeAws_json1_1GetIdCommand)(output, context);\n }\n}\nexports.GetIdCommand = GetIdCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.GetIdentityPoolRolesCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst middleware_signing_1 = require(\"@aws-sdk/middleware-signing\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_json1_1_1 = require(\"../protocols/Aws_json1_1\");\nclass GetIdentityPoolRolesCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, GetIdentityPoolRolesCommand.getEndpointParameterInstructions()));\n this.middlewareStack.use((0, middleware_signing_1.getAwsAuthPlugin)(configuration));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"CognitoIdentityClient\";\n const commandName = \"GetIdentityPoolRolesCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.GetIdentityPoolRolesInputFilterSensitiveLog,\n outputFilterSensitiveLog: models_0_1.GetIdentityPoolRolesResponseFilterSensitiveLog,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_json1_1_1.serializeAws_json1_1GetIdentityPoolRolesCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_json1_1_1.deserializeAws_json1_1GetIdentityPoolRolesCommand)(output, context);\n }\n}\nexports.GetIdentityPoolRolesCommand = GetIdentityPoolRolesCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.GetOpenIdTokenCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_json1_1_1 = require(\"../protocols/Aws_json1_1\");\nclass GetOpenIdTokenCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, GetOpenIdTokenCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"CognitoIdentityClient\";\n const commandName = \"GetOpenIdTokenCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.GetOpenIdTokenInputFilterSensitiveLog,\n outputFilterSensitiveLog: models_0_1.GetOpenIdTokenResponseFilterSensitiveLog,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_json1_1_1.serializeAws_json1_1GetOpenIdTokenCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_json1_1_1.deserializeAws_json1_1GetOpenIdTokenCommand)(output, context);\n }\n}\nexports.GetOpenIdTokenCommand = GetOpenIdTokenCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.GetOpenIdTokenForDeveloperIdentityCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst middleware_signing_1 = require(\"@aws-sdk/middleware-signing\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_json1_1_1 = require(\"../protocols/Aws_json1_1\");\nclass GetOpenIdTokenForDeveloperIdentityCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, GetOpenIdTokenForDeveloperIdentityCommand.getEndpointParameterInstructions()));\n this.middlewareStack.use((0, middleware_signing_1.getAwsAuthPlugin)(configuration));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"CognitoIdentityClient\";\n const commandName = \"GetOpenIdTokenForDeveloperIdentityCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.GetOpenIdTokenForDeveloperIdentityInputFilterSensitiveLog,\n outputFilterSensitiveLog: models_0_1.GetOpenIdTokenForDeveloperIdentityResponseFilterSensitiveLog,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_json1_1_1.serializeAws_json1_1GetOpenIdTokenForDeveloperIdentityCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_json1_1_1.deserializeAws_json1_1GetOpenIdTokenForDeveloperIdentityCommand)(output, context);\n }\n}\nexports.GetOpenIdTokenForDeveloperIdentityCommand = GetOpenIdTokenForDeveloperIdentityCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.GetPrincipalTagAttributeMapCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst middleware_signing_1 = require(\"@aws-sdk/middleware-signing\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_json1_1_1 = require(\"../protocols/Aws_json1_1\");\nclass GetPrincipalTagAttributeMapCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, GetPrincipalTagAttributeMapCommand.getEndpointParameterInstructions()));\n this.middlewareStack.use((0, middleware_signing_1.getAwsAuthPlugin)(configuration));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"CognitoIdentityClient\";\n const commandName = \"GetPrincipalTagAttributeMapCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.GetPrincipalTagAttributeMapInputFilterSensitiveLog,\n outputFilterSensitiveLog: models_0_1.GetPrincipalTagAttributeMapResponseFilterSensitiveLog,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_json1_1_1.serializeAws_json1_1GetPrincipalTagAttributeMapCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_json1_1_1.deserializeAws_json1_1GetPrincipalTagAttributeMapCommand)(output, context);\n }\n}\nexports.GetPrincipalTagAttributeMapCommand = GetPrincipalTagAttributeMapCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ListIdentitiesCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst middleware_signing_1 = require(\"@aws-sdk/middleware-signing\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_json1_1_1 = require(\"../protocols/Aws_json1_1\");\nclass ListIdentitiesCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, ListIdentitiesCommand.getEndpointParameterInstructions()));\n this.middlewareStack.use((0, middleware_signing_1.getAwsAuthPlugin)(configuration));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"CognitoIdentityClient\";\n const commandName = \"ListIdentitiesCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.ListIdentitiesInputFilterSensitiveLog,\n outputFilterSensitiveLog: models_0_1.ListIdentitiesResponseFilterSensitiveLog,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_json1_1_1.serializeAws_json1_1ListIdentitiesCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_json1_1_1.deserializeAws_json1_1ListIdentitiesCommand)(output, context);\n }\n}\nexports.ListIdentitiesCommand = ListIdentitiesCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ListIdentityPoolsCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst middleware_signing_1 = require(\"@aws-sdk/middleware-signing\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_json1_1_1 = require(\"../protocols/Aws_json1_1\");\nclass ListIdentityPoolsCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, ListIdentityPoolsCommand.getEndpointParameterInstructions()));\n this.middlewareStack.use((0, middleware_signing_1.getAwsAuthPlugin)(configuration));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"CognitoIdentityClient\";\n const commandName = \"ListIdentityPoolsCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.ListIdentityPoolsInputFilterSensitiveLog,\n outputFilterSensitiveLog: models_0_1.ListIdentityPoolsResponseFilterSensitiveLog,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_json1_1_1.serializeAws_json1_1ListIdentityPoolsCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_json1_1_1.deserializeAws_json1_1ListIdentityPoolsCommand)(output, context);\n }\n}\nexports.ListIdentityPoolsCommand = ListIdentityPoolsCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ListTagsForResourceCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst middleware_signing_1 = require(\"@aws-sdk/middleware-signing\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_json1_1_1 = require(\"../protocols/Aws_json1_1\");\nclass ListTagsForResourceCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, ListTagsForResourceCommand.getEndpointParameterInstructions()));\n this.middlewareStack.use((0, middleware_signing_1.getAwsAuthPlugin)(configuration));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"CognitoIdentityClient\";\n const commandName = \"ListTagsForResourceCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.ListTagsForResourceInputFilterSensitiveLog,\n outputFilterSensitiveLog: models_0_1.ListTagsForResourceResponseFilterSensitiveLog,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_json1_1_1.serializeAws_json1_1ListTagsForResourceCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_json1_1_1.deserializeAws_json1_1ListTagsForResourceCommand)(output, context);\n }\n}\nexports.ListTagsForResourceCommand = ListTagsForResourceCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.LookupDeveloperIdentityCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst middleware_signing_1 = require(\"@aws-sdk/middleware-signing\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_json1_1_1 = require(\"../protocols/Aws_json1_1\");\nclass LookupDeveloperIdentityCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, LookupDeveloperIdentityCommand.getEndpointParameterInstructions()));\n this.middlewareStack.use((0, middleware_signing_1.getAwsAuthPlugin)(configuration));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"CognitoIdentityClient\";\n const commandName = \"LookupDeveloperIdentityCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.LookupDeveloperIdentityInputFilterSensitiveLog,\n outputFilterSensitiveLog: models_0_1.LookupDeveloperIdentityResponseFilterSensitiveLog,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_json1_1_1.serializeAws_json1_1LookupDeveloperIdentityCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_json1_1_1.deserializeAws_json1_1LookupDeveloperIdentityCommand)(output, context);\n }\n}\nexports.LookupDeveloperIdentityCommand = LookupDeveloperIdentityCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MergeDeveloperIdentitiesCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst middleware_signing_1 = require(\"@aws-sdk/middleware-signing\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_json1_1_1 = require(\"../protocols/Aws_json1_1\");\nclass MergeDeveloperIdentitiesCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, MergeDeveloperIdentitiesCommand.getEndpointParameterInstructions()));\n this.middlewareStack.use((0, middleware_signing_1.getAwsAuthPlugin)(configuration));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"CognitoIdentityClient\";\n const commandName = \"MergeDeveloperIdentitiesCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.MergeDeveloperIdentitiesInputFilterSensitiveLog,\n outputFilterSensitiveLog: models_0_1.MergeDeveloperIdentitiesResponseFilterSensitiveLog,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_json1_1_1.serializeAws_json1_1MergeDeveloperIdentitiesCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_json1_1_1.deserializeAws_json1_1MergeDeveloperIdentitiesCommand)(output, context);\n }\n}\nexports.MergeDeveloperIdentitiesCommand = MergeDeveloperIdentitiesCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SetIdentityPoolRolesCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst middleware_signing_1 = require(\"@aws-sdk/middleware-signing\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_json1_1_1 = require(\"../protocols/Aws_json1_1\");\nclass SetIdentityPoolRolesCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, SetIdentityPoolRolesCommand.getEndpointParameterInstructions()));\n this.middlewareStack.use((0, middleware_signing_1.getAwsAuthPlugin)(configuration));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"CognitoIdentityClient\";\n const commandName = \"SetIdentityPoolRolesCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.SetIdentityPoolRolesInputFilterSensitiveLog,\n outputFilterSensitiveLog: (output) => output,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_json1_1_1.serializeAws_json1_1SetIdentityPoolRolesCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_json1_1_1.deserializeAws_json1_1SetIdentityPoolRolesCommand)(output, context);\n }\n}\nexports.SetIdentityPoolRolesCommand = SetIdentityPoolRolesCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SetPrincipalTagAttributeMapCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst middleware_signing_1 = require(\"@aws-sdk/middleware-signing\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_json1_1_1 = require(\"../protocols/Aws_json1_1\");\nclass SetPrincipalTagAttributeMapCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, SetPrincipalTagAttributeMapCommand.getEndpointParameterInstructions()));\n this.middlewareStack.use((0, middleware_signing_1.getAwsAuthPlugin)(configuration));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"CognitoIdentityClient\";\n const commandName = \"SetPrincipalTagAttributeMapCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.SetPrincipalTagAttributeMapInputFilterSensitiveLog,\n outputFilterSensitiveLog: models_0_1.SetPrincipalTagAttributeMapResponseFilterSensitiveLog,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_json1_1_1.serializeAws_json1_1SetPrincipalTagAttributeMapCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_json1_1_1.deserializeAws_json1_1SetPrincipalTagAttributeMapCommand)(output, context);\n }\n}\nexports.SetPrincipalTagAttributeMapCommand = SetPrincipalTagAttributeMapCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TagResourceCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst middleware_signing_1 = require(\"@aws-sdk/middleware-signing\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_json1_1_1 = require(\"../protocols/Aws_json1_1\");\nclass TagResourceCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, TagResourceCommand.getEndpointParameterInstructions()));\n this.middlewareStack.use((0, middleware_signing_1.getAwsAuthPlugin)(configuration));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"CognitoIdentityClient\";\n const commandName = \"TagResourceCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.TagResourceInputFilterSensitiveLog,\n outputFilterSensitiveLog: models_0_1.TagResourceResponseFilterSensitiveLog,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_json1_1_1.serializeAws_json1_1TagResourceCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_json1_1_1.deserializeAws_json1_1TagResourceCommand)(output, context);\n }\n}\nexports.TagResourceCommand = TagResourceCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.UnlinkDeveloperIdentityCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst middleware_signing_1 = require(\"@aws-sdk/middleware-signing\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_json1_1_1 = require(\"../protocols/Aws_json1_1\");\nclass UnlinkDeveloperIdentityCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, UnlinkDeveloperIdentityCommand.getEndpointParameterInstructions()));\n this.middlewareStack.use((0, middleware_signing_1.getAwsAuthPlugin)(configuration));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"CognitoIdentityClient\";\n const commandName = \"UnlinkDeveloperIdentityCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.UnlinkDeveloperIdentityInputFilterSensitiveLog,\n outputFilterSensitiveLog: (output) => output,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_json1_1_1.serializeAws_json1_1UnlinkDeveloperIdentityCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_json1_1_1.deserializeAws_json1_1UnlinkDeveloperIdentityCommand)(output, context);\n }\n}\nexports.UnlinkDeveloperIdentityCommand = UnlinkDeveloperIdentityCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.UnlinkIdentityCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_json1_1_1 = require(\"../protocols/Aws_json1_1\");\nclass UnlinkIdentityCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, UnlinkIdentityCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"CognitoIdentityClient\";\n const commandName = \"UnlinkIdentityCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.UnlinkIdentityInputFilterSensitiveLog,\n outputFilterSensitiveLog: (output) => output,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_json1_1_1.serializeAws_json1_1UnlinkIdentityCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_json1_1_1.deserializeAws_json1_1UnlinkIdentityCommand)(output, context);\n }\n}\nexports.UnlinkIdentityCommand = UnlinkIdentityCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.UntagResourceCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst middleware_signing_1 = require(\"@aws-sdk/middleware-signing\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_json1_1_1 = require(\"../protocols/Aws_json1_1\");\nclass UntagResourceCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, UntagResourceCommand.getEndpointParameterInstructions()));\n this.middlewareStack.use((0, middleware_signing_1.getAwsAuthPlugin)(configuration));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"CognitoIdentityClient\";\n const commandName = \"UntagResourceCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.UntagResourceInputFilterSensitiveLog,\n outputFilterSensitiveLog: models_0_1.UntagResourceResponseFilterSensitiveLog,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_json1_1_1.serializeAws_json1_1UntagResourceCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_json1_1_1.deserializeAws_json1_1UntagResourceCommand)(output, context);\n }\n}\nexports.UntagResourceCommand = UntagResourceCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.UpdateIdentityPoolCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst middleware_signing_1 = require(\"@aws-sdk/middleware-signing\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_json1_1_1 = require(\"../protocols/Aws_json1_1\");\nclass UpdateIdentityPoolCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, UpdateIdentityPoolCommand.getEndpointParameterInstructions()));\n this.middlewareStack.use((0, middleware_signing_1.getAwsAuthPlugin)(configuration));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"CognitoIdentityClient\";\n const commandName = \"UpdateIdentityPoolCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.IdentityPoolFilterSensitiveLog,\n outputFilterSensitiveLog: models_0_1.IdentityPoolFilterSensitiveLog,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_json1_1_1.serializeAws_json1_1UpdateIdentityPoolCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_json1_1_1.deserializeAws_json1_1UpdateIdentityPoolCommand)(output, context);\n }\n}\nexports.UpdateIdentityPoolCommand = UpdateIdentityPoolCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CognitoIdentity = void 0;\nconst CognitoIdentityClient_1 = require(\"./CognitoIdentityClient\");\nconst CreateIdentityPoolCommand_1 = require(\"./commands/CreateIdentityPoolCommand\");\nconst DeleteIdentitiesCommand_1 = require(\"./commands/DeleteIdentitiesCommand\");\nconst DeleteIdentityPoolCommand_1 = require(\"./commands/DeleteIdentityPoolCommand\");\nconst DescribeIdentityCommand_1 = require(\"./commands/DescribeIdentityCommand\");\nconst DescribeIdentityPoolCommand_1 = require(\"./commands/DescribeIdentityPoolCommand\");\nconst GetCredentialsForIdentityCommand_1 = require(\"./commands/GetCredentialsForIdentityCommand\");\nconst GetIdCommand_1 = require(\"./commands/GetIdCommand\");\nconst GetIdentityPoolRolesCommand_1 = require(\"./commands/GetIdentityPoolRolesCommand\");\nconst GetOpenIdTokenCommand_1 = require(\"./commands/GetOpenIdTokenCommand\");\nconst GetOpenIdTokenForDeveloperIdentityCommand_1 = require(\"./commands/GetOpenIdTokenForDeveloperIdentityCommand\");\nconst GetPrincipalTagAttributeMapCommand_1 = require(\"./commands/GetPrincipalTagAttributeMapCommand\");\nconst ListIdentitiesCommand_1 = require(\"./commands/ListIdentitiesCommand\");\nconst ListIdentityPoolsCommand_1 = require(\"./commands/ListIdentityPoolsCommand\");\nconst ListTagsForResourceCommand_1 = require(\"./commands/ListTagsForResourceCommand\");\nconst LookupDeveloperIdentityCommand_1 = require(\"./commands/LookupDeveloperIdentityCommand\");\nconst MergeDeveloperIdentitiesCommand_1 = require(\"./commands/MergeDeveloperIdentitiesCommand\");\nconst SetIdentityPoolRolesCommand_1 = require(\"./commands/SetIdentityPoolRolesCommand\");\nconst SetPrincipalTagAttributeMapCommand_1 = require(\"./commands/SetPrincipalTagAttributeMapCommand\");\nconst TagResourceCommand_1 = require(\"./commands/TagResourceCommand\");\nconst UnlinkDeveloperIdentityCommand_1 = require(\"./commands/UnlinkDeveloperIdentityCommand\");\nconst UnlinkIdentityCommand_1 = require(\"./commands/UnlinkIdentityCommand\");\nconst UntagResourceCommand_1 = require(\"./commands/UntagResourceCommand\");\nconst UpdateIdentityPoolCommand_1 = require(\"./commands/UpdateIdentityPoolCommand\");\nclass CognitoIdentity extends CognitoIdentityClient_1.CognitoIdentityClient {\n createIdentityPool(args, optionsOrCb, cb) {\n const command = new CreateIdentityPoolCommand_1.CreateIdentityPoolCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n deleteIdentities(args, optionsOrCb, cb) {\n const command = new DeleteIdentitiesCommand_1.DeleteIdentitiesCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n deleteIdentityPool(args, optionsOrCb, cb) {\n const command = new DeleteIdentityPoolCommand_1.DeleteIdentityPoolCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n describeIdentity(args, optionsOrCb, cb) {\n const command = new DescribeIdentityCommand_1.DescribeIdentityCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n describeIdentityPool(args, optionsOrCb, cb) {\n const command = new DescribeIdentityPoolCommand_1.DescribeIdentityPoolCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n getCredentialsForIdentity(args, optionsOrCb, cb) {\n const command = new GetCredentialsForIdentityCommand_1.GetCredentialsForIdentityCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n getId(args, optionsOrCb, cb) {\n const command = new GetIdCommand_1.GetIdCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n getIdentityPoolRoles(args, optionsOrCb, cb) {\n const command = new GetIdentityPoolRolesCommand_1.GetIdentityPoolRolesCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n getOpenIdToken(args, optionsOrCb, cb) {\n const command = new GetOpenIdTokenCommand_1.GetOpenIdTokenCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n getOpenIdTokenForDeveloperIdentity(args, optionsOrCb, cb) {\n const command = new GetOpenIdTokenForDeveloperIdentityCommand_1.GetOpenIdTokenForDeveloperIdentityCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n getPrincipalTagAttributeMap(args, optionsOrCb, cb) {\n const command = new GetPrincipalTagAttributeMapCommand_1.GetPrincipalTagAttributeMapCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n listIdentities(args, optionsOrCb, cb) {\n const command = new ListIdentitiesCommand_1.ListIdentitiesCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n listIdentityPools(args, optionsOrCb, cb) {\n const command = new ListIdentityPoolsCommand_1.ListIdentityPoolsCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n listTagsForResource(args, optionsOrCb, cb) {\n const command = new ListTagsForResourceCommand_1.ListTagsForResourceCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n lookupDeveloperIdentity(args, optionsOrCb, cb) {\n const command = new LookupDeveloperIdentityCommand_1.LookupDeveloperIdentityCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n mergeDeveloperIdentities(args, optionsOrCb, cb) {\n const command = new MergeDeveloperIdentitiesCommand_1.MergeDeveloperIdentitiesCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n setIdentityPoolRoles(args, optionsOrCb, cb) {\n const command = new SetIdentityPoolRolesCommand_1.SetIdentityPoolRolesCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n setPrincipalTagAttributeMap(args, optionsOrCb, cb) {\n const command = new SetPrincipalTagAttributeMapCommand_1.SetPrincipalTagAttributeMapCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n tagResource(args, optionsOrCb, cb) {\n const command = new TagResourceCommand_1.TagResourceCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n unlinkDeveloperIdentity(args, optionsOrCb, cb) {\n const command = new UnlinkDeveloperIdentityCommand_1.UnlinkDeveloperIdentityCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n unlinkIdentity(args, optionsOrCb, cb) {\n const command = new UnlinkIdentityCommand_1.UnlinkIdentityCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n untagResource(args, optionsOrCb, cb) {\n const command = new UntagResourceCommand_1.UntagResourceCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n updateIdentityPool(args, optionsOrCb, cb) {\n const command = new UpdateIdentityPoolCommand_1.UpdateIdentityPoolCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n}\nexports.CognitoIdentity = CognitoIdentity;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./CreateIdentityPoolCommand\"), exports);\ntslib_1.__exportStar(require(\"./DeleteIdentitiesCommand\"), exports);\ntslib_1.__exportStar(require(\"./DeleteIdentityPoolCommand\"), exports);\ntslib_1.__exportStar(require(\"./DescribeIdentityCommand\"), exports);\ntslib_1.__exportStar(require(\"./DescribeIdentityPoolCommand\"), exports);\ntslib_1.__exportStar(require(\"./GetCredentialsForIdentityCommand\"), exports);\ntslib_1.__exportStar(require(\"./GetIdCommand\"), exports);\ntslib_1.__exportStar(require(\"./GetIdentityPoolRolesCommand\"), exports);\ntslib_1.__exportStar(require(\"./GetOpenIdTokenCommand\"), exports);\ntslib_1.__exportStar(require(\"./GetOpenIdTokenForDeveloperIdentityCommand\"), exports);\ntslib_1.__exportStar(require(\"./GetPrincipalTagAttributeMapCommand\"), exports);\ntslib_1.__exportStar(require(\"./ListIdentitiesCommand\"), exports);\ntslib_1.__exportStar(require(\"./ListIdentityPoolsCommand\"), exports);\ntslib_1.__exportStar(require(\"./ListTagsForResourceCommand\"), exports);\ntslib_1.__exportStar(require(\"./LookupDeveloperIdentityCommand\"), exports);\ntslib_1.__exportStar(require(\"./MergeDeveloperIdentitiesCommand\"), exports);\ntslib_1.__exportStar(require(\"./SetIdentityPoolRolesCommand\"), exports);\ntslib_1.__exportStar(require(\"./SetPrincipalTagAttributeMapCommand\"), exports);\ntslib_1.__exportStar(require(\"./TagResourceCommand\"), exports);\ntslib_1.__exportStar(require(\"./UnlinkDeveloperIdentityCommand\"), exports);\ntslib_1.__exportStar(require(\"./UnlinkIdentityCommand\"), exports);\ntslib_1.__exportStar(require(\"./UntagResourceCommand\"), exports);\ntslib_1.__exportStar(require(\"./UpdateIdentityPoolCommand\"), exports);\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./models_0\"), exports);\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.paginateListIdentityPools = void 0;\nconst CognitoIdentity_1 = require(\"../CognitoIdentity\");\nconst CognitoIdentityClient_1 = require(\"../CognitoIdentityClient\");\nconst ListIdentityPoolsCommand_1 = require(\"../commands/ListIdentityPoolsCommand\");\nconst makePagedClientRequest = async (client, input, ...args) => {\n return await client.send(new ListIdentityPoolsCommand_1.ListIdentityPoolsCommand(input), ...args);\n};\nconst makePagedRequest = async (client, input, ...args) => {\n return await client.listIdentityPools(input, ...args);\n};\nasync function* paginateListIdentityPools(config, input, ...additionalArguments) {\n let token = config.startingToken || undefined;\n let hasNext = true;\n let page;\n while (hasNext) {\n input.NextToken = token;\n input[\"MaxResults\"] = config.pageSize;\n if (config.client instanceof CognitoIdentity_1.CognitoIdentity) {\n page = await makePagedRequest(config.client, input, ...additionalArguments);\n }\n else if (config.client instanceof CognitoIdentityClient_1.CognitoIdentityClient) {\n page = await makePagedClientRequest(config.client, input, ...additionalArguments);\n }\n else {\n throw new Error(\"Invalid client, expected CognitoIdentity | CognitoIdentityClient\");\n }\n yield page;\n const prevToken = token;\n token = page.NextToken;\n hasNext = !!(token && (!config.stopOnSameToken || token !== prevToken));\n }\n return undefined;\n}\nexports.paginateListIdentityPools = paginateListIdentityPools;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./Interfaces\"), exports);\ntslib_1.__exportStar(require(\"./ListIdentityPoolsPaginator\"), exports);\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CognitoIdentityServiceException = void 0;\nconst tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./CognitoIdentity\"), exports);\ntslib_1.__exportStar(require(\"./CognitoIdentityClient\"), exports);\ntslib_1.__exportStar(require(\"./commands\"), exports);\ntslib_1.__exportStar(require(\"./models\"), exports);\ntslib_1.__exportStar(require(\"./pagination\"), exports);\nvar CognitoIdentityServiceException_1 = require(\"./models/CognitoIdentityServiceException\");\nObject.defineProperty(exports, \"CognitoIdentityServiceException\", { enumerable: true, get: function () { return CognitoIdentityServiceException_1.CognitoIdentityServiceException; } });\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.resolveLogins = void 0;\nfunction resolveLogins(logins) {\n return Promise.all(Object.keys(logins).reduce((arr, name) => {\n const tokenOrProvider = logins[name];\n if (typeof tokenOrProvider === \"string\") {\n arr.push([name, tokenOrProvider]);\n }\n else {\n arr.push(tokenOrProvider().then((token) => [name, token]));\n }\n return arr;\n }, [])).then((resolvedPairs) => resolvedPairs.reduce((logins, [key, value]) => {\n logins[key] = value;\n return logins;\n }, {}));\n}\nexports.resolveLogins = resolveLogins;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fromCognitoIdentity = void 0;\nconst client_cognito_identity_1 = require(\"@aws-sdk/client-cognito-identity\");\nconst property_provider_1 = require(\"@aws-sdk/property-provider\");\nconst resolveLogins_1 = require(\"./resolveLogins\");\nfunction fromCognitoIdentity(parameters) {\n return async () => {\n const { Credentials: { AccessKeyId = throwOnMissingAccessKeyId(), Expiration, SecretKey = throwOnMissingSecretKey(), SessionToken, } = throwOnMissingCredentials(), } = await parameters.client.send(new client_cognito_identity_1.GetCredentialsForIdentityCommand({\n CustomRoleArn: parameters.customRoleArn,\n IdentityId: parameters.identityId,\n Logins: parameters.logins ? await (0, resolveLogins_1.resolveLogins)(parameters.logins) : undefined,\n }));\n return {\n identityId: parameters.identityId,\n accessKeyId: AccessKeyId,\n secretAccessKey: SecretKey,\n sessionToken: SessionToken,\n expiration: Expiration,\n };\n };\n}\nexports.fromCognitoIdentity = fromCognitoIdentity;\nfunction throwOnMissingAccessKeyId() {\n throw new property_provider_1.CredentialsProviderError(\"Response from Amazon Cognito contained no access key ID\");\n}\nfunction throwOnMissingCredentials() {\n throw new property_provider_1.CredentialsProviderError(\"Response from Amazon Cognito contained no credentials\");\n}\nfunction throwOnMissingSecretKey() {\n throw new property_provider_1.CredentialsProviderError(\"Response from Amazon Cognito contained no secret key\");\n}\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.IndexedDbStorage = void 0;\nconst STORE_NAME = \"IdentityIds\";\nclass IndexedDbStorage {\n constructor(dbName = \"aws:cognito-identity-ids\") {\n this.dbName = dbName;\n }\n getItem(key) {\n return this.withObjectStore(\"readonly\", (store) => {\n const req = store.get(key);\n return new Promise((resolve) => {\n req.onerror = () => resolve(null);\n req.onsuccess = () => resolve(req.result ? req.result.value : null);\n });\n }).catch(() => null);\n }\n removeItem(key) {\n return this.withObjectStore(\"readwrite\", (store) => {\n const req = store.delete(key);\n return new Promise((resolve, reject) => {\n req.onerror = () => reject(req.error);\n req.onsuccess = () => resolve();\n });\n });\n }\n setItem(id, value) {\n return this.withObjectStore(\"readwrite\", (store) => {\n const req = store.put({ id, value });\n return new Promise((resolve, reject) => {\n req.onerror = () => reject(req.error);\n req.onsuccess = () => resolve();\n });\n });\n }\n getDb() {\n const openDbRequest = self.indexedDB.open(this.dbName, 1);\n return new Promise((resolve, reject) => {\n openDbRequest.onsuccess = () => {\n resolve(openDbRequest.result);\n };\n openDbRequest.onerror = () => {\n reject(openDbRequest.error);\n };\n openDbRequest.onblocked = () => {\n reject(new Error(\"Unable to access DB\"));\n };\n openDbRequest.onupgradeneeded = () => {\n const db = openDbRequest.result;\n db.onerror = () => {\n reject(new Error(\"Failed to create object store\"));\n };\n db.createObjectStore(STORE_NAME, { keyPath: \"id\" });\n };\n });\n }\n withObjectStore(mode, action) {\n return this.getDb().then((db) => {\n const tx = db.transaction(STORE_NAME, mode);\n tx.oncomplete = () => db.close();\n return new Promise((resolve, reject) => {\n tx.onerror = () => reject(tx.error);\n resolve(action(tx.objectStore(STORE_NAME)));\n }).catch((err) => {\n db.close();\n throw err;\n });\n });\n }\n}\nexports.IndexedDbStorage = IndexedDbStorage;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.InMemoryStorage = void 0;\nclass InMemoryStorage {\n constructor(store = {}) {\n this.store = store;\n }\n getItem(key) {\n if (key in this.store) {\n return this.store[key];\n }\n return null;\n }\n removeItem(key) {\n delete this.store[key];\n }\n setItem(key, value) {\n this.store[key] = value;\n }\n}\nexports.InMemoryStorage = InMemoryStorage;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.localStorage = void 0;\nconst IndexedDbStorage_1 = require(\"./IndexedDbStorage\");\nconst InMemoryStorage_1 = require(\"./InMemoryStorage\");\nconst inMemoryStorage = new InMemoryStorage_1.InMemoryStorage();\nfunction localStorage() {\n if (typeof self === \"object\" && self.indexedDB) {\n return new IndexedDbStorage_1.IndexedDbStorage();\n }\n if (typeof window === \"object\" && window.localStorage) {\n return window.localStorage;\n }\n return inMemoryStorage;\n}\nexports.localStorage = localStorage;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fromCognitoIdentityPool = void 0;\nconst client_cognito_identity_1 = require(\"@aws-sdk/client-cognito-identity\");\nconst property_provider_1 = require(\"@aws-sdk/property-provider\");\nconst fromCognitoIdentity_1 = require(\"./fromCognitoIdentity\");\nconst localStorage_1 = require(\"./localStorage\");\nconst resolveLogins_1 = require(\"./resolveLogins\");\nfunction fromCognitoIdentityPool({ accountId, cache = (0, localStorage_1.localStorage)(), client, customRoleArn, identityPoolId, logins, userIdentifier = !logins || Object.keys(logins).length === 0 ? \"ANONYMOUS\" : undefined, }) {\n const cacheKey = userIdentifier ? `aws:cognito-identity-credentials:${identityPoolId}:${userIdentifier}` : undefined;\n let provider = async () => {\n let identityId = cacheKey && (await cache.getItem(cacheKey));\n if (!identityId) {\n const { IdentityId = throwOnMissingId() } = await client.send(new client_cognito_identity_1.GetIdCommand({\n AccountId: accountId,\n IdentityPoolId: identityPoolId,\n Logins: logins ? await (0, resolveLogins_1.resolveLogins)(logins) : undefined,\n }));\n identityId = IdentityId;\n if (cacheKey) {\n Promise.resolve(cache.setItem(cacheKey, identityId)).catch(() => { });\n }\n }\n provider = (0, fromCognitoIdentity_1.fromCognitoIdentity)({\n client,\n customRoleArn,\n logins,\n identityId,\n });\n return provider();\n };\n return () => provider().catch(async (err) => {\n if (cacheKey) {\n Promise.resolve(cache.removeItem(cacheKey)).catch(() => { });\n }\n throw err;\n });\n}\nexports.fromCognitoIdentityPool = fromCognitoIdentityPool;\nfunction throwOnMissingId() {\n throw new property_provider_1.CredentialsProviderError(\"Response from Amazon Cognito contained no identity ID\");\n}\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./CognitoProviderParameters\"), exports);\ntslib_1.__exportStar(require(\"./Logins\"), exports);\ntslib_1.__exportStar(require(\"./Storage\"), exports);\ntslib_1.__exportStar(require(\"./fromCognitoIdentity\"), exports);\ntslib_1.__exportStar(require(\"./fromCognitoIdentityPool\"), exports);\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fromCognitoIdentity = void 0;\nconst client_cognito_identity_1 = require(\"@aws-sdk/client-cognito-identity\");\nconst credential_provider_cognito_identity_1 = require(\"@aws-sdk/credential-provider-cognito-identity\");\nconst fromCognitoIdentity = (options) => {\n var _a;\n return (0, credential_provider_cognito_identity_1.fromCognitoIdentity)({\n ...options,\n client: new client_cognito_identity_1.CognitoIdentityClient((_a = options.clientConfig) !== null && _a !== void 0 ? _a : {}),\n });\n};\nexports.fromCognitoIdentity = fromCognitoIdentity;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fromCognitoIdentityPool = void 0;\nconst client_cognito_identity_1 = require(\"@aws-sdk/client-cognito-identity\");\nconst credential_provider_cognito_identity_1 = require(\"@aws-sdk/credential-provider-cognito-identity\");\nconst fromCognitoIdentityPool = (options) => {\n var _a;\n return (0, credential_provider_cognito_identity_1.fromCognitoIdentityPool)({\n ...options,\n client: new client_cognito_identity_1.CognitoIdentityClient((_a = options.clientConfig) !== null && _a !== void 0 ? _a : {}),\n });\n};\nexports.fromCognitoIdentityPool = fromCognitoIdentityPool;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fromContainerMetadata = void 0;\nconst credential_provider_imds_1 = require(\"@aws-sdk/credential-provider-imds\");\nconst fromContainerMetadata = (init) => (0, credential_provider_imds_1.fromContainerMetadata)(init);\nexports.fromContainerMetadata = fromContainerMetadata;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fromEnv = void 0;\nconst credential_provider_env_1 = require(\"@aws-sdk/credential-provider-env\");\nconst fromEnv = () => (0, credential_provider_env_1.fromEnv)();\nexports.fromEnv = fromEnv;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fromIni = void 0;\nconst client_sts_1 = require(\"@aws-sdk/client-sts\");\nconst credential_provider_ini_1 = require(\"@aws-sdk/credential-provider-ini\");\nconst fromIni = (init = {}) => {\n var _a, _b;\n return (0, credential_provider_ini_1.fromIni)({\n ...init,\n roleAssumer: (_a = init.roleAssumer) !== null && _a !== void 0 ? _a : (0, client_sts_1.getDefaultRoleAssumer)(init.clientConfig, init.clientPlugins),\n roleAssumerWithWebIdentity: (_b = init.roleAssumerWithWebIdentity) !== null && _b !== void 0 ? _b : (0, client_sts_1.getDefaultRoleAssumerWithWebIdentity)(init.clientConfig, init.clientPlugins),\n });\n};\nexports.fromIni = fromIni;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fromInstanceMetadata = void 0;\nconst credential_provider_imds_1 = require(\"@aws-sdk/credential-provider-imds\");\nconst fromInstanceMetadata = (init) => (0, credential_provider_imds_1.fromInstanceMetadata)(init);\nexports.fromInstanceMetadata = fromInstanceMetadata;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fromNodeProviderChain = void 0;\nconst client_sts_1 = require(\"@aws-sdk/client-sts\");\nconst credential_provider_node_1 = require(\"@aws-sdk/credential-provider-node\");\nconst fromNodeProviderChain = (init = {}) => {\n var _a, _b;\n return (0, credential_provider_node_1.defaultProvider)({\n ...init,\n roleAssumer: (_a = init.roleAssumer) !== null && _a !== void 0 ? _a : (0, client_sts_1.getDefaultRoleAssumer)(init.clientConfig, init.clientPlugins),\n roleAssumerWithWebIdentity: (_b = init.roleAssumerWithWebIdentity) !== null && _b !== void 0 ? _b : (0, client_sts_1.getDefaultRoleAssumerWithWebIdentity)(init.clientConfig, init.clientPlugins),\n });\n};\nexports.fromNodeProviderChain = fromNodeProviderChain;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fromProcess = void 0;\nconst credential_provider_process_1 = require(\"@aws-sdk/credential-provider-process\");\nconst fromProcess = (init) => (0, credential_provider_process_1.fromProcess)(init);\nexports.fromProcess = fromProcess;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fromSSO = void 0;\nconst client_sso_1 = require(\"@aws-sdk/client-sso\");\nconst credential_provider_sso_1 = require(\"@aws-sdk/credential-provider-sso\");\nconst fromSSO = (init = {}) => (0, credential_provider_sso_1.fromSSO)({ ...{ ssoClient: init.clientConfig ? new client_sso_1.SSOClient(init.clientConfig) : undefined }, ...init });\nexports.fromSSO = fromSSO;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fromTemporaryCredentials = void 0;\nconst client_sts_1 = require(\"@aws-sdk/client-sts\");\nconst property_provider_1 = require(\"@aws-sdk/property-provider\");\nconst fromTemporaryCredentials = (options) => {\n let stsClient;\n return async () => {\n var _a;\n const params = { ...options.params, RoleSessionName: (_a = options.params.RoleSessionName) !== null && _a !== void 0 ? _a : \"aws-sdk-js-\" + Date.now() };\n if (params === null || params === void 0 ? void 0 : params.SerialNumber) {\n if (!options.mfaCodeProvider) {\n throw new property_provider_1.CredentialsProviderError(`Temporary credential requires multi-factor authentication,` + ` but no MFA code callback was provided.`, false);\n }\n params.TokenCode = await options.mfaCodeProvider(params === null || params === void 0 ? void 0 : params.SerialNumber);\n }\n if (!stsClient)\n stsClient = new client_sts_1.STSClient({ ...options.clientConfig, credentials: options.masterCredentials });\n if (options.clientPlugins) {\n for (const plugin of options.clientPlugins) {\n stsClient.middlewareStack.use(plugin);\n }\n }\n const { Credentials } = await stsClient.send(new client_sts_1.AssumeRoleCommand(params));\n if (!Credentials || !Credentials.AccessKeyId || !Credentials.SecretAccessKey) {\n throw new property_provider_1.CredentialsProviderError(`Invalid response from STS.assumeRole call with role ${params.RoleArn}`);\n }\n return {\n accessKeyId: Credentials.AccessKeyId,\n secretAccessKey: Credentials.SecretAccessKey,\n sessionToken: Credentials.SessionToken,\n expiration: Credentials.Expiration,\n };\n };\n};\nexports.fromTemporaryCredentials = fromTemporaryCredentials;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fromTokenFile = void 0;\nconst client_sts_1 = require(\"@aws-sdk/client-sts\");\nconst credential_provider_web_identity_1 = require(\"@aws-sdk/credential-provider-web-identity\");\nconst fromTokenFile = (init = {}) => {\n var _a;\n return (0, credential_provider_web_identity_1.fromTokenFile)({\n ...init,\n roleAssumerWithWebIdentity: (_a = init.roleAssumerWithWebIdentity) !== null && _a !== void 0 ? _a : (0, client_sts_1.getDefaultRoleAssumerWithWebIdentity)(init.clientConfig, init.clientPlugins),\n });\n};\nexports.fromTokenFile = fromTokenFile;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fromWebToken = void 0;\nconst client_sts_1 = require(\"@aws-sdk/client-sts\");\nconst credential_provider_web_identity_1 = require(\"@aws-sdk/credential-provider-web-identity\");\nconst fromWebToken = (init) => {\n var _a;\n return (0, credential_provider_web_identity_1.fromWebToken)({\n ...init,\n roleAssumerWithWebIdentity: (_a = init.roleAssumerWithWebIdentity) !== null && _a !== void 0 ? _a : (0, client_sts_1.getDefaultRoleAssumerWithWebIdentity)(init.clientConfig, init.clientPlugins),\n });\n};\nexports.fromWebToken = fromWebToken;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./fromCognitoIdentity\"), exports);\ntslib_1.__exportStar(require(\"./fromCognitoIdentityPool\"), exports);\ntslib_1.__exportStar(require(\"./fromContainerMetadata\"), exports);\ntslib_1.__exportStar(require(\"./fromEnv\"), exports);\ntslib_1.__exportStar(require(\"./fromIni\"), exports);\ntslib_1.__exportStar(require(\"./fromInstanceMetadata\"), exports);\ntslib_1.__exportStar(require(\"./fromNodeProviderChain\"), exports);\ntslib_1.__exportStar(require(\"./fromProcess\"), exports);\ntslib_1.__exportStar(require(\"./fromSSO\"), exports);\ntslib_1.__exportStar(require(\"./fromTemporaryCredentials\"), exports);\ntslib_1.__exportStar(require(\"./fromTokenFile\"), exports);\ntslib_1.__exportStar(require(\"./fromWebToken\"), exports);\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SecretsManagerServiceException = void 0;\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nclass SecretsManagerServiceException extends smithy_client_1.ServiceException {\n constructor(options) {\n super(options);\n Object.setPrototypeOf(this, SecretsManagerServiceException.prototype);\n }\n}\nexports.SecretsManagerServiceException = SecretsManagerServiceException;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ReplicateSecretToRegionsResponseFilterSensitiveLog = exports.ReplicateSecretToRegionsRequestFilterSensitiveLog = exports.RemoveRegionsFromReplicationResponseFilterSensitiveLog = exports.RemoveRegionsFromReplicationRequestFilterSensitiveLog = exports.PutSecretValueResponseFilterSensitiveLog = exports.PutSecretValueRequestFilterSensitiveLog = exports.PutResourcePolicyResponseFilterSensitiveLog = exports.PutResourcePolicyRequestFilterSensitiveLog = exports.ListSecretVersionIdsResponseFilterSensitiveLog = exports.SecretVersionsListEntryFilterSensitiveLog = exports.ListSecretVersionIdsRequestFilterSensitiveLog = exports.ListSecretsResponseFilterSensitiveLog = exports.SecretListEntryFilterSensitiveLog = exports.ListSecretsRequestFilterSensitiveLog = exports.GetSecretValueResponseFilterSensitiveLog = exports.GetSecretValueRequestFilterSensitiveLog = exports.GetResourcePolicyResponseFilterSensitiveLog = exports.GetResourcePolicyRequestFilterSensitiveLog = exports.GetRandomPasswordResponseFilterSensitiveLog = exports.GetRandomPasswordRequestFilterSensitiveLog = exports.FilterFilterSensitiveLog = exports.DescribeSecretResponseFilterSensitiveLog = exports.RotationRulesTypeFilterSensitiveLog = exports.DescribeSecretRequestFilterSensitiveLog = exports.DeleteSecretResponseFilterSensitiveLog = exports.DeleteSecretRequestFilterSensitiveLog = exports.DeleteResourcePolicyResponseFilterSensitiveLog = exports.DeleteResourcePolicyRequestFilterSensitiveLog = exports.CreateSecretResponseFilterSensitiveLog = exports.ReplicationStatusTypeFilterSensitiveLog = exports.CreateSecretRequestFilterSensitiveLog = exports.TagFilterSensitiveLog = exports.CancelRotateSecretResponseFilterSensitiveLog = exports.CancelRotateSecretRequestFilterSensitiveLog = exports.ReplicaRegionTypeFilterSensitiveLog = exports.PublicPolicyException = exports.SortOrderType = exports.InvalidNextTokenException = exports.FilterNameStringType = exports.ResourceExistsException = exports.PreconditionNotMetException = exports.MalformedPolicyDocumentException = exports.LimitExceededException = exports.EncryptionFailure = exports.DecryptionFailure = exports.StatusType = exports.ResourceNotFoundException = exports.InvalidRequestException = exports.InvalidParameterException = exports.InternalServiceError = void 0;\nexports.ValidateResourcePolicyResponseFilterSensitiveLog = exports.ValidationErrorsEntryFilterSensitiveLog = exports.ValidateResourcePolicyRequestFilterSensitiveLog = exports.UpdateSecretVersionStageResponseFilterSensitiveLog = exports.UpdateSecretVersionStageRequestFilterSensitiveLog = exports.UpdateSecretResponseFilterSensitiveLog = exports.UpdateSecretRequestFilterSensitiveLog = exports.UntagResourceRequestFilterSensitiveLog = exports.TagResourceRequestFilterSensitiveLog = exports.StopReplicationToReplicaResponseFilterSensitiveLog = exports.StopReplicationToReplicaRequestFilterSensitiveLog = exports.RotateSecretResponseFilterSensitiveLog = exports.RotateSecretRequestFilterSensitiveLog = exports.RestoreSecretResponseFilterSensitiveLog = exports.RestoreSecretRequestFilterSensitiveLog = void 0;\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst SecretsManagerServiceException_1 = require(\"./SecretsManagerServiceException\");\nclass InternalServiceError extends SecretsManagerServiceException_1.SecretsManagerServiceException {\n constructor(opts) {\n super({\n name: \"InternalServiceError\",\n $fault: \"server\",\n ...opts,\n });\n this.name = \"InternalServiceError\";\n this.$fault = \"server\";\n Object.setPrototypeOf(this, InternalServiceError.prototype);\n this.Message = opts.Message;\n }\n}\nexports.InternalServiceError = InternalServiceError;\nclass InvalidParameterException extends SecretsManagerServiceException_1.SecretsManagerServiceException {\n constructor(opts) {\n super({\n name: \"InvalidParameterException\",\n $fault: \"client\",\n ...opts,\n });\n this.name = \"InvalidParameterException\";\n this.$fault = \"client\";\n Object.setPrototypeOf(this, InvalidParameterException.prototype);\n this.Message = opts.Message;\n }\n}\nexports.InvalidParameterException = InvalidParameterException;\nclass InvalidRequestException extends SecretsManagerServiceException_1.SecretsManagerServiceException {\n constructor(opts) {\n super({\n name: \"InvalidRequestException\",\n $fault: \"client\",\n ...opts,\n });\n this.name = \"InvalidRequestException\";\n this.$fault = \"client\";\n Object.setPrototypeOf(this, InvalidRequestException.prototype);\n this.Message = opts.Message;\n }\n}\nexports.InvalidRequestException = InvalidRequestException;\nclass ResourceNotFoundException extends SecretsManagerServiceException_1.SecretsManagerServiceException {\n constructor(opts) {\n super({\n name: \"ResourceNotFoundException\",\n $fault: \"client\",\n ...opts,\n });\n this.name = \"ResourceNotFoundException\";\n this.$fault = \"client\";\n Object.setPrototypeOf(this, ResourceNotFoundException.prototype);\n this.Message = opts.Message;\n }\n}\nexports.ResourceNotFoundException = ResourceNotFoundException;\nvar StatusType;\n(function (StatusType) {\n StatusType[\"Failed\"] = \"Failed\";\n StatusType[\"InProgress\"] = \"InProgress\";\n StatusType[\"InSync\"] = \"InSync\";\n})(StatusType = exports.StatusType || (exports.StatusType = {}));\nclass DecryptionFailure extends SecretsManagerServiceException_1.SecretsManagerServiceException {\n constructor(opts) {\n super({\n name: \"DecryptionFailure\",\n $fault: \"client\",\n ...opts,\n });\n this.name = \"DecryptionFailure\";\n this.$fault = \"client\";\n Object.setPrototypeOf(this, DecryptionFailure.prototype);\n this.Message = opts.Message;\n }\n}\nexports.DecryptionFailure = DecryptionFailure;\nclass EncryptionFailure extends SecretsManagerServiceException_1.SecretsManagerServiceException {\n constructor(opts) {\n super({\n name: \"EncryptionFailure\",\n $fault: \"client\",\n ...opts,\n });\n this.name = \"EncryptionFailure\";\n this.$fault = \"client\";\n Object.setPrototypeOf(this, EncryptionFailure.prototype);\n this.Message = opts.Message;\n }\n}\nexports.EncryptionFailure = EncryptionFailure;\nclass LimitExceededException extends SecretsManagerServiceException_1.SecretsManagerServiceException {\n constructor(opts) {\n super({\n name: \"LimitExceededException\",\n $fault: \"client\",\n ...opts,\n });\n this.name = \"LimitExceededException\";\n this.$fault = \"client\";\n Object.setPrototypeOf(this, LimitExceededException.prototype);\n this.Message = opts.Message;\n }\n}\nexports.LimitExceededException = LimitExceededException;\nclass MalformedPolicyDocumentException extends SecretsManagerServiceException_1.SecretsManagerServiceException {\n constructor(opts) {\n super({\n name: \"MalformedPolicyDocumentException\",\n $fault: \"client\",\n ...opts,\n });\n this.name = \"MalformedPolicyDocumentException\";\n this.$fault = \"client\";\n Object.setPrototypeOf(this, MalformedPolicyDocumentException.prototype);\n this.Message = opts.Message;\n }\n}\nexports.MalformedPolicyDocumentException = MalformedPolicyDocumentException;\nclass PreconditionNotMetException extends SecretsManagerServiceException_1.SecretsManagerServiceException {\n constructor(opts) {\n super({\n name: \"PreconditionNotMetException\",\n $fault: \"client\",\n ...opts,\n });\n this.name = \"PreconditionNotMetException\";\n this.$fault = \"client\";\n Object.setPrototypeOf(this, PreconditionNotMetException.prototype);\n this.Message = opts.Message;\n }\n}\nexports.PreconditionNotMetException = PreconditionNotMetException;\nclass ResourceExistsException extends SecretsManagerServiceException_1.SecretsManagerServiceException {\n constructor(opts) {\n super({\n name: \"ResourceExistsException\",\n $fault: \"client\",\n ...opts,\n });\n this.name = \"ResourceExistsException\";\n this.$fault = \"client\";\n Object.setPrototypeOf(this, ResourceExistsException.prototype);\n this.Message = opts.Message;\n }\n}\nexports.ResourceExistsException = ResourceExistsException;\nvar FilterNameStringType;\n(function (FilterNameStringType) {\n FilterNameStringType[\"all\"] = \"all\";\n FilterNameStringType[\"description\"] = \"description\";\n FilterNameStringType[\"name\"] = \"name\";\n FilterNameStringType[\"owning_service\"] = \"owning-service\";\n FilterNameStringType[\"primary_region\"] = \"primary-region\";\n FilterNameStringType[\"tag_key\"] = \"tag-key\";\n FilterNameStringType[\"tag_value\"] = \"tag-value\";\n})(FilterNameStringType = exports.FilterNameStringType || (exports.FilterNameStringType = {}));\nclass InvalidNextTokenException extends SecretsManagerServiceException_1.SecretsManagerServiceException {\n constructor(opts) {\n super({\n name: \"InvalidNextTokenException\",\n $fault: \"client\",\n ...opts,\n });\n this.name = \"InvalidNextTokenException\";\n this.$fault = \"client\";\n Object.setPrototypeOf(this, InvalidNextTokenException.prototype);\n this.Message = opts.Message;\n }\n}\nexports.InvalidNextTokenException = InvalidNextTokenException;\nvar SortOrderType;\n(function (SortOrderType) {\n SortOrderType[\"asc\"] = \"asc\";\n SortOrderType[\"desc\"] = \"desc\";\n})(SortOrderType = exports.SortOrderType || (exports.SortOrderType = {}));\nclass PublicPolicyException extends SecretsManagerServiceException_1.SecretsManagerServiceException {\n constructor(opts) {\n super({\n name: \"PublicPolicyException\",\n $fault: \"client\",\n ...opts,\n });\n this.name = \"PublicPolicyException\";\n this.$fault = \"client\";\n Object.setPrototypeOf(this, PublicPolicyException.prototype);\n this.Message = opts.Message;\n }\n}\nexports.PublicPolicyException = PublicPolicyException;\nconst ReplicaRegionTypeFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.ReplicaRegionTypeFilterSensitiveLog = ReplicaRegionTypeFilterSensitiveLog;\nconst CancelRotateSecretRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.CancelRotateSecretRequestFilterSensitiveLog = CancelRotateSecretRequestFilterSensitiveLog;\nconst CancelRotateSecretResponseFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.CancelRotateSecretResponseFilterSensitiveLog = CancelRotateSecretResponseFilterSensitiveLog;\nconst TagFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.TagFilterSensitiveLog = TagFilterSensitiveLog;\nconst CreateSecretRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.SecretBinary && { SecretBinary: smithy_client_1.SENSITIVE_STRING }),\n ...(obj.SecretString && { SecretString: smithy_client_1.SENSITIVE_STRING }),\n});\nexports.CreateSecretRequestFilterSensitiveLog = CreateSecretRequestFilterSensitiveLog;\nconst ReplicationStatusTypeFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.ReplicationStatusTypeFilterSensitiveLog = ReplicationStatusTypeFilterSensitiveLog;\nconst CreateSecretResponseFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.CreateSecretResponseFilterSensitiveLog = CreateSecretResponseFilterSensitiveLog;\nconst DeleteResourcePolicyRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.DeleteResourcePolicyRequestFilterSensitiveLog = DeleteResourcePolicyRequestFilterSensitiveLog;\nconst DeleteResourcePolicyResponseFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.DeleteResourcePolicyResponseFilterSensitiveLog = DeleteResourcePolicyResponseFilterSensitiveLog;\nconst DeleteSecretRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.DeleteSecretRequestFilterSensitiveLog = DeleteSecretRequestFilterSensitiveLog;\nconst DeleteSecretResponseFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.DeleteSecretResponseFilterSensitiveLog = DeleteSecretResponseFilterSensitiveLog;\nconst DescribeSecretRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.DescribeSecretRequestFilterSensitiveLog = DescribeSecretRequestFilterSensitiveLog;\nconst RotationRulesTypeFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.RotationRulesTypeFilterSensitiveLog = RotationRulesTypeFilterSensitiveLog;\nconst DescribeSecretResponseFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.DescribeSecretResponseFilterSensitiveLog = DescribeSecretResponseFilterSensitiveLog;\nconst FilterFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.FilterFilterSensitiveLog = FilterFilterSensitiveLog;\nconst GetRandomPasswordRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.GetRandomPasswordRequestFilterSensitiveLog = GetRandomPasswordRequestFilterSensitiveLog;\nconst GetRandomPasswordResponseFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.RandomPassword && { RandomPassword: smithy_client_1.SENSITIVE_STRING }),\n});\nexports.GetRandomPasswordResponseFilterSensitiveLog = GetRandomPasswordResponseFilterSensitiveLog;\nconst GetResourcePolicyRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.GetResourcePolicyRequestFilterSensitiveLog = GetResourcePolicyRequestFilterSensitiveLog;\nconst GetResourcePolicyResponseFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.GetResourcePolicyResponseFilterSensitiveLog = GetResourcePolicyResponseFilterSensitiveLog;\nconst GetSecretValueRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.GetSecretValueRequestFilterSensitiveLog = GetSecretValueRequestFilterSensitiveLog;\nconst GetSecretValueResponseFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.SecretBinary && { SecretBinary: smithy_client_1.SENSITIVE_STRING }),\n ...(obj.SecretString && { SecretString: smithy_client_1.SENSITIVE_STRING }),\n});\nexports.GetSecretValueResponseFilterSensitiveLog = GetSecretValueResponseFilterSensitiveLog;\nconst ListSecretsRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.ListSecretsRequestFilterSensitiveLog = ListSecretsRequestFilterSensitiveLog;\nconst SecretListEntryFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.SecretListEntryFilterSensitiveLog = SecretListEntryFilterSensitiveLog;\nconst ListSecretsResponseFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.ListSecretsResponseFilterSensitiveLog = ListSecretsResponseFilterSensitiveLog;\nconst ListSecretVersionIdsRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.ListSecretVersionIdsRequestFilterSensitiveLog = ListSecretVersionIdsRequestFilterSensitiveLog;\nconst SecretVersionsListEntryFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.SecretVersionsListEntryFilterSensitiveLog = SecretVersionsListEntryFilterSensitiveLog;\nconst ListSecretVersionIdsResponseFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.ListSecretVersionIdsResponseFilterSensitiveLog = ListSecretVersionIdsResponseFilterSensitiveLog;\nconst PutResourcePolicyRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.PutResourcePolicyRequestFilterSensitiveLog = PutResourcePolicyRequestFilterSensitiveLog;\nconst PutResourcePolicyResponseFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.PutResourcePolicyResponseFilterSensitiveLog = PutResourcePolicyResponseFilterSensitiveLog;\nconst PutSecretValueRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.SecretBinary && { SecretBinary: smithy_client_1.SENSITIVE_STRING }),\n ...(obj.SecretString && { SecretString: smithy_client_1.SENSITIVE_STRING }),\n});\nexports.PutSecretValueRequestFilterSensitiveLog = PutSecretValueRequestFilterSensitiveLog;\nconst PutSecretValueResponseFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.PutSecretValueResponseFilterSensitiveLog = PutSecretValueResponseFilterSensitiveLog;\nconst RemoveRegionsFromReplicationRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.RemoveRegionsFromReplicationRequestFilterSensitiveLog = RemoveRegionsFromReplicationRequestFilterSensitiveLog;\nconst RemoveRegionsFromReplicationResponseFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.RemoveRegionsFromReplicationResponseFilterSensitiveLog = RemoveRegionsFromReplicationResponseFilterSensitiveLog;\nconst ReplicateSecretToRegionsRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.ReplicateSecretToRegionsRequestFilterSensitiveLog = ReplicateSecretToRegionsRequestFilterSensitiveLog;\nconst ReplicateSecretToRegionsResponseFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.ReplicateSecretToRegionsResponseFilterSensitiveLog = ReplicateSecretToRegionsResponseFilterSensitiveLog;\nconst RestoreSecretRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.RestoreSecretRequestFilterSensitiveLog = RestoreSecretRequestFilterSensitiveLog;\nconst RestoreSecretResponseFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.RestoreSecretResponseFilterSensitiveLog = RestoreSecretResponseFilterSensitiveLog;\nconst RotateSecretRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.RotateSecretRequestFilterSensitiveLog = RotateSecretRequestFilterSensitiveLog;\nconst RotateSecretResponseFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.RotateSecretResponseFilterSensitiveLog = RotateSecretResponseFilterSensitiveLog;\nconst StopReplicationToReplicaRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.StopReplicationToReplicaRequestFilterSensitiveLog = StopReplicationToReplicaRequestFilterSensitiveLog;\nconst StopReplicationToReplicaResponseFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.StopReplicationToReplicaResponseFilterSensitiveLog = StopReplicationToReplicaResponseFilterSensitiveLog;\nconst TagResourceRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.TagResourceRequestFilterSensitiveLog = TagResourceRequestFilterSensitiveLog;\nconst UntagResourceRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.UntagResourceRequestFilterSensitiveLog = UntagResourceRequestFilterSensitiveLog;\nconst UpdateSecretRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.SecretBinary && { SecretBinary: smithy_client_1.SENSITIVE_STRING }),\n ...(obj.SecretString && { SecretString: smithy_client_1.SENSITIVE_STRING }),\n});\nexports.UpdateSecretRequestFilterSensitiveLog = UpdateSecretRequestFilterSensitiveLog;\nconst UpdateSecretResponseFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.UpdateSecretResponseFilterSensitiveLog = UpdateSecretResponseFilterSensitiveLog;\nconst UpdateSecretVersionStageRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.UpdateSecretVersionStageRequestFilterSensitiveLog = UpdateSecretVersionStageRequestFilterSensitiveLog;\nconst UpdateSecretVersionStageResponseFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.UpdateSecretVersionStageResponseFilterSensitiveLog = UpdateSecretVersionStageResponseFilterSensitiveLog;\nconst ValidateResourcePolicyRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.ValidateResourcePolicyRequestFilterSensitiveLog = ValidateResourcePolicyRequestFilterSensitiveLog;\nconst ValidationErrorsEntryFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.ValidationErrorsEntryFilterSensitiveLog = ValidationErrorsEntryFilterSensitiveLog;\nconst ValidateResourcePolicyResponseFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.ValidateResourcePolicyResponseFilterSensitiveLog = ValidateResourcePolicyResponseFilterSensitiveLog;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.deserializeAws_json1_1ValidateResourcePolicyCommand = exports.deserializeAws_json1_1UpdateSecretVersionStageCommand = exports.deserializeAws_json1_1UpdateSecretCommand = exports.deserializeAws_json1_1UntagResourceCommand = exports.deserializeAws_json1_1TagResourceCommand = exports.deserializeAws_json1_1StopReplicationToReplicaCommand = exports.deserializeAws_json1_1RotateSecretCommand = exports.deserializeAws_json1_1RestoreSecretCommand = exports.deserializeAws_json1_1ReplicateSecretToRegionsCommand = exports.deserializeAws_json1_1RemoveRegionsFromReplicationCommand = exports.deserializeAws_json1_1PutSecretValueCommand = exports.deserializeAws_json1_1PutResourcePolicyCommand = exports.deserializeAws_json1_1ListSecretVersionIdsCommand = exports.deserializeAws_json1_1ListSecretsCommand = exports.deserializeAws_json1_1GetSecretValueCommand = exports.deserializeAws_json1_1GetResourcePolicyCommand = exports.deserializeAws_json1_1GetRandomPasswordCommand = exports.deserializeAws_json1_1DescribeSecretCommand = exports.deserializeAws_json1_1DeleteSecretCommand = exports.deserializeAws_json1_1DeleteResourcePolicyCommand = exports.deserializeAws_json1_1CreateSecretCommand = exports.deserializeAws_json1_1CancelRotateSecretCommand = exports.serializeAws_json1_1ValidateResourcePolicyCommand = exports.serializeAws_json1_1UpdateSecretVersionStageCommand = exports.serializeAws_json1_1UpdateSecretCommand = exports.serializeAws_json1_1UntagResourceCommand = exports.serializeAws_json1_1TagResourceCommand = exports.serializeAws_json1_1StopReplicationToReplicaCommand = exports.serializeAws_json1_1RotateSecretCommand = exports.serializeAws_json1_1RestoreSecretCommand = exports.serializeAws_json1_1ReplicateSecretToRegionsCommand = exports.serializeAws_json1_1RemoveRegionsFromReplicationCommand = exports.serializeAws_json1_1PutSecretValueCommand = exports.serializeAws_json1_1PutResourcePolicyCommand = exports.serializeAws_json1_1ListSecretVersionIdsCommand = exports.serializeAws_json1_1ListSecretsCommand = exports.serializeAws_json1_1GetSecretValueCommand = exports.serializeAws_json1_1GetResourcePolicyCommand = exports.serializeAws_json1_1GetRandomPasswordCommand = exports.serializeAws_json1_1DescribeSecretCommand = exports.serializeAws_json1_1DeleteSecretCommand = exports.serializeAws_json1_1DeleteResourcePolicyCommand = exports.serializeAws_json1_1CreateSecretCommand = exports.serializeAws_json1_1CancelRotateSecretCommand = void 0;\nconst protocol_http_1 = require(\"@aws-sdk/protocol-http\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst uuid_1 = require(\"uuid\");\nconst models_0_1 = require(\"../models/models_0\");\nconst SecretsManagerServiceException_1 = require(\"../models/SecretsManagerServiceException\");\nconst serializeAws_json1_1CancelRotateSecretCommand = async (input, context) => {\n const headers = {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": \"secretsmanager.CancelRotateSecret\",\n };\n let body;\n body = JSON.stringify(serializeAws_json1_1CancelRotateSecretRequest(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexports.serializeAws_json1_1CancelRotateSecretCommand = serializeAws_json1_1CancelRotateSecretCommand;\nconst serializeAws_json1_1CreateSecretCommand = async (input, context) => {\n const headers = {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": \"secretsmanager.CreateSecret\",\n };\n let body;\n body = JSON.stringify(serializeAws_json1_1CreateSecretRequest(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexports.serializeAws_json1_1CreateSecretCommand = serializeAws_json1_1CreateSecretCommand;\nconst serializeAws_json1_1DeleteResourcePolicyCommand = async (input, context) => {\n const headers = {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": \"secretsmanager.DeleteResourcePolicy\",\n };\n let body;\n body = JSON.stringify(serializeAws_json1_1DeleteResourcePolicyRequest(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexports.serializeAws_json1_1DeleteResourcePolicyCommand = serializeAws_json1_1DeleteResourcePolicyCommand;\nconst serializeAws_json1_1DeleteSecretCommand = async (input, context) => {\n const headers = {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": \"secretsmanager.DeleteSecret\",\n };\n let body;\n body = JSON.stringify(serializeAws_json1_1DeleteSecretRequest(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexports.serializeAws_json1_1DeleteSecretCommand = serializeAws_json1_1DeleteSecretCommand;\nconst serializeAws_json1_1DescribeSecretCommand = async (input, context) => {\n const headers = {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": \"secretsmanager.DescribeSecret\",\n };\n let body;\n body = JSON.stringify(serializeAws_json1_1DescribeSecretRequest(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexports.serializeAws_json1_1DescribeSecretCommand = serializeAws_json1_1DescribeSecretCommand;\nconst serializeAws_json1_1GetRandomPasswordCommand = async (input, context) => {\n const headers = {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": \"secretsmanager.GetRandomPassword\",\n };\n let body;\n body = JSON.stringify(serializeAws_json1_1GetRandomPasswordRequest(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexports.serializeAws_json1_1GetRandomPasswordCommand = serializeAws_json1_1GetRandomPasswordCommand;\nconst serializeAws_json1_1GetResourcePolicyCommand = async (input, context) => {\n const headers = {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": \"secretsmanager.GetResourcePolicy\",\n };\n let body;\n body = JSON.stringify(serializeAws_json1_1GetResourcePolicyRequest(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexports.serializeAws_json1_1GetResourcePolicyCommand = serializeAws_json1_1GetResourcePolicyCommand;\nconst serializeAws_json1_1GetSecretValueCommand = async (input, context) => {\n const headers = {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": \"secretsmanager.GetSecretValue\",\n };\n let body;\n body = JSON.stringify(serializeAws_json1_1GetSecretValueRequest(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexports.serializeAws_json1_1GetSecretValueCommand = serializeAws_json1_1GetSecretValueCommand;\nconst serializeAws_json1_1ListSecretsCommand = async (input, context) => {\n const headers = {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": \"secretsmanager.ListSecrets\",\n };\n let body;\n body = JSON.stringify(serializeAws_json1_1ListSecretsRequest(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexports.serializeAws_json1_1ListSecretsCommand = serializeAws_json1_1ListSecretsCommand;\nconst serializeAws_json1_1ListSecretVersionIdsCommand = async (input, context) => {\n const headers = {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": \"secretsmanager.ListSecretVersionIds\",\n };\n let body;\n body = JSON.stringify(serializeAws_json1_1ListSecretVersionIdsRequest(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexports.serializeAws_json1_1ListSecretVersionIdsCommand = serializeAws_json1_1ListSecretVersionIdsCommand;\nconst serializeAws_json1_1PutResourcePolicyCommand = async (input, context) => {\n const headers = {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": \"secretsmanager.PutResourcePolicy\",\n };\n let body;\n body = JSON.stringify(serializeAws_json1_1PutResourcePolicyRequest(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexports.serializeAws_json1_1PutResourcePolicyCommand = serializeAws_json1_1PutResourcePolicyCommand;\nconst serializeAws_json1_1PutSecretValueCommand = async (input, context) => {\n const headers = {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": \"secretsmanager.PutSecretValue\",\n };\n let body;\n body = JSON.stringify(serializeAws_json1_1PutSecretValueRequest(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexports.serializeAws_json1_1PutSecretValueCommand = serializeAws_json1_1PutSecretValueCommand;\nconst serializeAws_json1_1RemoveRegionsFromReplicationCommand = async (input, context) => {\n const headers = {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": \"secretsmanager.RemoveRegionsFromReplication\",\n };\n let body;\n body = JSON.stringify(serializeAws_json1_1RemoveRegionsFromReplicationRequest(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexports.serializeAws_json1_1RemoveRegionsFromReplicationCommand = serializeAws_json1_1RemoveRegionsFromReplicationCommand;\nconst serializeAws_json1_1ReplicateSecretToRegionsCommand = async (input, context) => {\n const headers = {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": \"secretsmanager.ReplicateSecretToRegions\",\n };\n let body;\n body = JSON.stringify(serializeAws_json1_1ReplicateSecretToRegionsRequest(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexports.serializeAws_json1_1ReplicateSecretToRegionsCommand = serializeAws_json1_1ReplicateSecretToRegionsCommand;\nconst serializeAws_json1_1RestoreSecretCommand = async (input, context) => {\n const headers = {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": \"secretsmanager.RestoreSecret\",\n };\n let body;\n body = JSON.stringify(serializeAws_json1_1RestoreSecretRequest(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexports.serializeAws_json1_1RestoreSecretCommand = serializeAws_json1_1RestoreSecretCommand;\nconst serializeAws_json1_1RotateSecretCommand = async (input, context) => {\n const headers = {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": \"secretsmanager.RotateSecret\",\n };\n let body;\n body = JSON.stringify(serializeAws_json1_1RotateSecretRequest(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexports.serializeAws_json1_1RotateSecretCommand = serializeAws_json1_1RotateSecretCommand;\nconst serializeAws_json1_1StopReplicationToReplicaCommand = async (input, context) => {\n const headers = {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": \"secretsmanager.StopReplicationToReplica\",\n };\n let body;\n body = JSON.stringify(serializeAws_json1_1StopReplicationToReplicaRequest(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexports.serializeAws_json1_1StopReplicationToReplicaCommand = serializeAws_json1_1StopReplicationToReplicaCommand;\nconst serializeAws_json1_1TagResourceCommand = async (input, context) => {\n const headers = {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": \"secretsmanager.TagResource\",\n };\n let body;\n body = JSON.stringify(serializeAws_json1_1TagResourceRequest(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexports.serializeAws_json1_1TagResourceCommand = serializeAws_json1_1TagResourceCommand;\nconst serializeAws_json1_1UntagResourceCommand = async (input, context) => {\n const headers = {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": \"secretsmanager.UntagResource\",\n };\n let body;\n body = JSON.stringify(serializeAws_json1_1UntagResourceRequest(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexports.serializeAws_json1_1UntagResourceCommand = serializeAws_json1_1UntagResourceCommand;\nconst serializeAws_json1_1UpdateSecretCommand = async (input, context) => {\n const headers = {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": \"secretsmanager.UpdateSecret\",\n };\n let body;\n body = JSON.stringify(serializeAws_json1_1UpdateSecretRequest(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexports.serializeAws_json1_1UpdateSecretCommand = serializeAws_json1_1UpdateSecretCommand;\nconst serializeAws_json1_1UpdateSecretVersionStageCommand = async (input, context) => {\n const headers = {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": \"secretsmanager.UpdateSecretVersionStage\",\n };\n let body;\n body = JSON.stringify(serializeAws_json1_1UpdateSecretVersionStageRequest(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexports.serializeAws_json1_1UpdateSecretVersionStageCommand = serializeAws_json1_1UpdateSecretVersionStageCommand;\nconst serializeAws_json1_1ValidateResourcePolicyCommand = async (input, context) => {\n const headers = {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": \"secretsmanager.ValidateResourcePolicy\",\n };\n let body;\n body = JSON.stringify(serializeAws_json1_1ValidateResourcePolicyRequest(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexports.serializeAws_json1_1ValidateResourcePolicyCommand = serializeAws_json1_1ValidateResourcePolicyCommand;\nconst deserializeAws_json1_1CancelRotateSecretCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return deserializeAws_json1_1CancelRotateSecretCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = deserializeAws_json1_1CancelRotateSecretResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return Promise.resolve(response);\n};\nexports.deserializeAws_json1_1CancelRotateSecretCommand = deserializeAws_json1_1CancelRotateSecretCommand;\nconst deserializeAws_json1_1CancelRotateSecretCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"InternalServiceError\":\n case \"com.amazonaws.secretsmanager#InternalServiceError\":\n throw await deserializeAws_json1_1InternalServiceErrorResponse(parsedOutput, context);\n case \"InvalidParameterException\":\n case \"com.amazonaws.secretsmanager#InvalidParameterException\":\n throw await deserializeAws_json1_1InvalidParameterExceptionResponse(parsedOutput, context);\n case \"InvalidRequestException\":\n case \"com.amazonaws.secretsmanager#InvalidRequestException\":\n throw await deserializeAws_json1_1InvalidRequestExceptionResponse(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.secretsmanager#ResourceNotFoundException\":\n throw await deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody,\n exceptionCtor: SecretsManagerServiceException_1.SecretsManagerServiceException,\n errorCode,\n });\n }\n};\nconst deserializeAws_json1_1CreateSecretCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return deserializeAws_json1_1CreateSecretCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = deserializeAws_json1_1CreateSecretResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return Promise.resolve(response);\n};\nexports.deserializeAws_json1_1CreateSecretCommand = deserializeAws_json1_1CreateSecretCommand;\nconst deserializeAws_json1_1CreateSecretCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"DecryptionFailure\":\n case \"com.amazonaws.secretsmanager#DecryptionFailure\":\n throw await deserializeAws_json1_1DecryptionFailureResponse(parsedOutput, context);\n case \"EncryptionFailure\":\n case \"com.amazonaws.secretsmanager#EncryptionFailure\":\n throw await deserializeAws_json1_1EncryptionFailureResponse(parsedOutput, context);\n case \"InternalServiceError\":\n case \"com.amazonaws.secretsmanager#InternalServiceError\":\n throw await deserializeAws_json1_1InternalServiceErrorResponse(parsedOutput, context);\n case \"InvalidParameterException\":\n case \"com.amazonaws.secretsmanager#InvalidParameterException\":\n throw await deserializeAws_json1_1InvalidParameterExceptionResponse(parsedOutput, context);\n case \"InvalidRequestException\":\n case \"com.amazonaws.secretsmanager#InvalidRequestException\":\n throw await deserializeAws_json1_1InvalidRequestExceptionResponse(parsedOutput, context);\n case \"LimitExceededException\":\n case \"com.amazonaws.secretsmanager#LimitExceededException\":\n throw await deserializeAws_json1_1LimitExceededExceptionResponse(parsedOutput, context);\n case \"MalformedPolicyDocumentException\":\n case \"com.amazonaws.secretsmanager#MalformedPolicyDocumentException\":\n throw await deserializeAws_json1_1MalformedPolicyDocumentExceptionResponse(parsedOutput, context);\n case \"PreconditionNotMetException\":\n case \"com.amazonaws.secretsmanager#PreconditionNotMetException\":\n throw await deserializeAws_json1_1PreconditionNotMetExceptionResponse(parsedOutput, context);\n case \"ResourceExistsException\":\n case \"com.amazonaws.secretsmanager#ResourceExistsException\":\n throw await deserializeAws_json1_1ResourceExistsExceptionResponse(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.secretsmanager#ResourceNotFoundException\":\n throw await deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody,\n exceptionCtor: SecretsManagerServiceException_1.SecretsManagerServiceException,\n errorCode,\n });\n }\n};\nconst deserializeAws_json1_1DeleteResourcePolicyCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return deserializeAws_json1_1DeleteResourcePolicyCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = deserializeAws_json1_1DeleteResourcePolicyResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return Promise.resolve(response);\n};\nexports.deserializeAws_json1_1DeleteResourcePolicyCommand = deserializeAws_json1_1DeleteResourcePolicyCommand;\nconst deserializeAws_json1_1DeleteResourcePolicyCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"InternalServiceError\":\n case \"com.amazonaws.secretsmanager#InternalServiceError\":\n throw await deserializeAws_json1_1InternalServiceErrorResponse(parsedOutput, context);\n case \"InvalidParameterException\":\n case \"com.amazonaws.secretsmanager#InvalidParameterException\":\n throw await deserializeAws_json1_1InvalidParameterExceptionResponse(parsedOutput, context);\n case \"InvalidRequestException\":\n case \"com.amazonaws.secretsmanager#InvalidRequestException\":\n throw await deserializeAws_json1_1InvalidRequestExceptionResponse(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.secretsmanager#ResourceNotFoundException\":\n throw await deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody,\n exceptionCtor: SecretsManagerServiceException_1.SecretsManagerServiceException,\n errorCode,\n });\n }\n};\nconst deserializeAws_json1_1DeleteSecretCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return deserializeAws_json1_1DeleteSecretCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = deserializeAws_json1_1DeleteSecretResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return Promise.resolve(response);\n};\nexports.deserializeAws_json1_1DeleteSecretCommand = deserializeAws_json1_1DeleteSecretCommand;\nconst deserializeAws_json1_1DeleteSecretCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"InternalServiceError\":\n case \"com.amazonaws.secretsmanager#InternalServiceError\":\n throw await deserializeAws_json1_1InternalServiceErrorResponse(parsedOutput, context);\n case \"InvalidParameterException\":\n case \"com.amazonaws.secretsmanager#InvalidParameterException\":\n throw await deserializeAws_json1_1InvalidParameterExceptionResponse(parsedOutput, context);\n case \"InvalidRequestException\":\n case \"com.amazonaws.secretsmanager#InvalidRequestException\":\n throw await deserializeAws_json1_1InvalidRequestExceptionResponse(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.secretsmanager#ResourceNotFoundException\":\n throw await deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody,\n exceptionCtor: SecretsManagerServiceException_1.SecretsManagerServiceException,\n errorCode,\n });\n }\n};\nconst deserializeAws_json1_1DescribeSecretCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return deserializeAws_json1_1DescribeSecretCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = deserializeAws_json1_1DescribeSecretResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return Promise.resolve(response);\n};\nexports.deserializeAws_json1_1DescribeSecretCommand = deserializeAws_json1_1DescribeSecretCommand;\nconst deserializeAws_json1_1DescribeSecretCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"InternalServiceError\":\n case \"com.amazonaws.secretsmanager#InternalServiceError\":\n throw await deserializeAws_json1_1InternalServiceErrorResponse(parsedOutput, context);\n case \"InvalidParameterException\":\n case \"com.amazonaws.secretsmanager#InvalidParameterException\":\n throw await deserializeAws_json1_1InvalidParameterExceptionResponse(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.secretsmanager#ResourceNotFoundException\":\n throw await deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody,\n exceptionCtor: SecretsManagerServiceException_1.SecretsManagerServiceException,\n errorCode,\n });\n }\n};\nconst deserializeAws_json1_1GetRandomPasswordCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return deserializeAws_json1_1GetRandomPasswordCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = deserializeAws_json1_1GetRandomPasswordResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return Promise.resolve(response);\n};\nexports.deserializeAws_json1_1GetRandomPasswordCommand = deserializeAws_json1_1GetRandomPasswordCommand;\nconst deserializeAws_json1_1GetRandomPasswordCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"InternalServiceError\":\n case \"com.amazonaws.secretsmanager#InternalServiceError\":\n throw await deserializeAws_json1_1InternalServiceErrorResponse(parsedOutput, context);\n case \"InvalidParameterException\":\n case \"com.amazonaws.secretsmanager#InvalidParameterException\":\n throw await deserializeAws_json1_1InvalidParameterExceptionResponse(parsedOutput, context);\n case \"InvalidRequestException\":\n case \"com.amazonaws.secretsmanager#InvalidRequestException\":\n throw await deserializeAws_json1_1InvalidRequestExceptionResponse(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody,\n exceptionCtor: SecretsManagerServiceException_1.SecretsManagerServiceException,\n errorCode,\n });\n }\n};\nconst deserializeAws_json1_1GetResourcePolicyCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return deserializeAws_json1_1GetResourcePolicyCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = deserializeAws_json1_1GetResourcePolicyResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return Promise.resolve(response);\n};\nexports.deserializeAws_json1_1GetResourcePolicyCommand = deserializeAws_json1_1GetResourcePolicyCommand;\nconst deserializeAws_json1_1GetResourcePolicyCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"InternalServiceError\":\n case \"com.amazonaws.secretsmanager#InternalServiceError\":\n throw await deserializeAws_json1_1InternalServiceErrorResponse(parsedOutput, context);\n case \"InvalidParameterException\":\n case \"com.amazonaws.secretsmanager#InvalidParameterException\":\n throw await deserializeAws_json1_1InvalidParameterExceptionResponse(parsedOutput, context);\n case \"InvalidRequestException\":\n case \"com.amazonaws.secretsmanager#InvalidRequestException\":\n throw await deserializeAws_json1_1InvalidRequestExceptionResponse(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.secretsmanager#ResourceNotFoundException\":\n throw await deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody,\n exceptionCtor: SecretsManagerServiceException_1.SecretsManagerServiceException,\n errorCode,\n });\n }\n};\nconst deserializeAws_json1_1GetSecretValueCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return deserializeAws_json1_1GetSecretValueCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = deserializeAws_json1_1GetSecretValueResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return Promise.resolve(response);\n};\nexports.deserializeAws_json1_1GetSecretValueCommand = deserializeAws_json1_1GetSecretValueCommand;\nconst deserializeAws_json1_1GetSecretValueCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"DecryptionFailure\":\n case \"com.amazonaws.secretsmanager#DecryptionFailure\":\n throw await deserializeAws_json1_1DecryptionFailureResponse(parsedOutput, context);\n case \"InternalServiceError\":\n case \"com.amazonaws.secretsmanager#InternalServiceError\":\n throw await deserializeAws_json1_1InternalServiceErrorResponse(parsedOutput, context);\n case \"InvalidParameterException\":\n case \"com.amazonaws.secretsmanager#InvalidParameterException\":\n throw await deserializeAws_json1_1InvalidParameterExceptionResponse(parsedOutput, context);\n case \"InvalidRequestException\":\n case \"com.amazonaws.secretsmanager#InvalidRequestException\":\n throw await deserializeAws_json1_1InvalidRequestExceptionResponse(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.secretsmanager#ResourceNotFoundException\":\n throw await deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody,\n exceptionCtor: SecretsManagerServiceException_1.SecretsManagerServiceException,\n errorCode,\n });\n }\n};\nconst deserializeAws_json1_1ListSecretsCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return deserializeAws_json1_1ListSecretsCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = deserializeAws_json1_1ListSecretsResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return Promise.resolve(response);\n};\nexports.deserializeAws_json1_1ListSecretsCommand = deserializeAws_json1_1ListSecretsCommand;\nconst deserializeAws_json1_1ListSecretsCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"InternalServiceError\":\n case \"com.amazonaws.secretsmanager#InternalServiceError\":\n throw await deserializeAws_json1_1InternalServiceErrorResponse(parsedOutput, context);\n case \"InvalidNextTokenException\":\n case \"com.amazonaws.secretsmanager#InvalidNextTokenException\":\n throw await deserializeAws_json1_1InvalidNextTokenExceptionResponse(parsedOutput, context);\n case \"InvalidParameterException\":\n case \"com.amazonaws.secretsmanager#InvalidParameterException\":\n throw await deserializeAws_json1_1InvalidParameterExceptionResponse(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody,\n exceptionCtor: SecretsManagerServiceException_1.SecretsManagerServiceException,\n errorCode,\n });\n }\n};\nconst deserializeAws_json1_1ListSecretVersionIdsCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return deserializeAws_json1_1ListSecretVersionIdsCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = deserializeAws_json1_1ListSecretVersionIdsResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return Promise.resolve(response);\n};\nexports.deserializeAws_json1_1ListSecretVersionIdsCommand = deserializeAws_json1_1ListSecretVersionIdsCommand;\nconst deserializeAws_json1_1ListSecretVersionIdsCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"InternalServiceError\":\n case \"com.amazonaws.secretsmanager#InternalServiceError\":\n throw await deserializeAws_json1_1InternalServiceErrorResponse(parsedOutput, context);\n case \"InvalidNextTokenException\":\n case \"com.amazonaws.secretsmanager#InvalidNextTokenException\":\n throw await deserializeAws_json1_1InvalidNextTokenExceptionResponse(parsedOutput, context);\n case \"InvalidParameterException\":\n case \"com.amazonaws.secretsmanager#InvalidParameterException\":\n throw await deserializeAws_json1_1InvalidParameterExceptionResponse(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.secretsmanager#ResourceNotFoundException\":\n throw await deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody,\n exceptionCtor: SecretsManagerServiceException_1.SecretsManagerServiceException,\n errorCode,\n });\n }\n};\nconst deserializeAws_json1_1PutResourcePolicyCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return deserializeAws_json1_1PutResourcePolicyCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = deserializeAws_json1_1PutResourcePolicyResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return Promise.resolve(response);\n};\nexports.deserializeAws_json1_1PutResourcePolicyCommand = deserializeAws_json1_1PutResourcePolicyCommand;\nconst deserializeAws_json1_1PutResourcePolicyCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"InternalServiceError\":\n case \"com.amazonaws.secretsmanager#InternalServiceError\":\n throw await deserializeAws_json1_1InternalServiceErrorResponse(parsedOutput, context);\n case \"InvalidParameterException\":\n case \"com.amazonaws.secretsmanager#InvalidParameterException\":\n throw await deserializeAws_json1_1InvalidParameterExceptionResponse(parsedOutput, context);\n case \"InvalidRequestException\":\n case \"com.amazonaws.secretsmanager#InvalidRequestException\":\n throw await deserializeAws_json1_1InvalidRequestExceptionResponse(parsedOutput, context);\n case \"MalformedPolicyDocumentException\":\n case \"com.amazonaws.secretsmanager#MalformedPolicyDocumentException\":\n throw await deserializeAws_json1_1MalformedPolicyDocumentExceptionResponse(parsedOutput, context);\n case \"PublicPolicyException\":\n case \"com.amazonaws.secretsmanager#PublicPolicyException\":\n throw await deserializeAws_json1_1PublicPolicyExceptionResponse(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.secretsmanager#ResourceNotFoundException\":\n throw await deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody,\n exceptionCtor: SecretsManagerServiceException_1.SecretsManagerServiceException,\n errorCode,\n });\n }\n};\nconst deserializeAws_json1_1PutSecretValueCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return deserializeAws_json1_1PutSecretValueCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = deserializeAws_json1_1PutSecretValueResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return Promise.resolve(response);\n};\nexports.deserializeAws_json1_1PutSecretValueCommand = deserializeAws_json1_1PutSecretValueCommand;\nconst deserializeAws_json1_1PutSecretValueCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"DecryptionFailure\":\n case \"com.amazonaws.secretsmanager#DecryptionFailure\":\n throw await deserializeAws_json1_1DecryptionFailureResponse(parsedOutput, context);\n case \"EncryptionFailure\":\n case \"com.amazonaws.secretsmanager#EncryptionFailure\":\n throw await deserializeAws_json1_1EncryptionFailureResponse(parsedOutput, context);\n case \"InternalServiceError\":\n case \"com.amazonaws.secretsmanager#InternalServiceError\":\n throw await deserializeAws_json1_1InternalServiceErrorResponse(parsedOutput, context);\n case \"InvalidParameterException\":\n case \"com.amazonaws.secretsmanager#InvalidParameterException\":\n throw await deserializeAws_json1_1InvalidParameterExceptionResponse(parsedOutput, context);\n case \"InvalidRequestException\":\n case \"com.amazonaws.secretsmanager#InvalidRequestException\":\n throw await deserializeAws_json1_1InvalidRequestExceptionResponse(parsedOutput, context);\n case \"LimitExceededException\":\n case \"com.amazonaws.secretsmanager#LimitExceededException\":\n throw await deserializeAws_json1_1LimitExceededExceptionResponse(parsedOutput, context);\n case \"ResourceExistsException\":\n case \"com.amazonaws.secretsmanager#ResourceExistsException\":\n throw await deserializeAws_json1_1ResourceExistsExceptionResponse(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.secretsmanager#ResourceNotFoundException\":\n throw await deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody,\n exceptionCtor: SecretsManagerServiceException_1.SecretsManagerServiceException,\n errorCode,\n });\n }\n};\nconst deserializeAws_json1_1RemoveRegionsFromReplicationCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return deserializeAws_json1_1RemoveRegionsFromReplicationCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = deserializeAws_json1_1RemoveRegionsFromReplicationResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return Promise.resolve(response);\n};\nexports.deserializeAws_json1_1RemoveRegionsFromReplicationCommand = deserializeAws_json1_1RemoveRegionsFromReplicationCommand;\nconst deserializeAws_json1_1RemoveRegionsFromReplicationCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"InternalServiceError\":\n case \"com.amazonaws.secretsmanager#InternalServiceError\":\n throw await deserializeAws_json1_1InternalServiceErrorResponse(parsedOutput, context);\n case \"InvalidParameterException\":\n case \"com.amazonaws.secretsmanager#InvalidParameterException\":\n throw await deserializeAws_json1_1InvalidParameterExceptionResponse(parsedOutput, context);\n case \"InvalidRequestException\":\n case \"com.amazonaws.secretsmanager#InvalidRequestException\":\n throw await deserializeAws_json1_1InvalidRequestExceptionResponse(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.secretsmanager#ResourceNotFoundException\":\n throw await deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody,\n exceptionCtor: SecretsManagerServiceException_1.SecretsManagerServiceException,\n errorCode,\n });\n }\n};\nconst deserializeAws_json1_1ReplicateSecretToRegionsCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return deserializeAws_json1_1ReplicateSecretToRegionsCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = deserializeAws_json1_1ReplicateSecretToRegionsResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return Promise.resolve(response);\n};\nexports.deserializeAws_json1_1ReplicateSecretToRegionsCommand = deserializeAws_json1_1ReplicateSecretToRegionsCommand;\nconst deserializeAws_json1_1ReplicateSecretToRegionsCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"InternalServiceError\":\n case \"com.amazonaws.secretsmanager#InternalServiceError\":\n throw await deserializeAws_json1_1InternalServiceErrorResponse(parsedOutput, context);\n case \"InvalidParameterException\":\n case \"com.amazonaws.secretsmanager#InvalidParameterException\":\n throw await deserializeAws_json1_1InvalidParameterExceptionResponse(parsedOutput, context);\n case \"InvalidRequestException\":\n case \"com.amazonaws.secretsmanager#InvalidRequestException\":\n throw await deserializeAws_json1_1InvalidRequestExceptionResponse(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.secretsmanager#ResourceNotFoundException\":\n throw await deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody,\n exceptionCtor: SecretsManagerServiceException_1.SecretsManagerServiceException,\n errorCode,\n });\n }\n};\nconst deserializeAws_json1_1RestoreSecretCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return deserializeAws_json1_1RestoreSecretCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = deserializeAws_json1_1RestoreSecretResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return Promise.resolve(response);\n};\nexports.deserializeAws_json1_1RestoreSecretCommand = deserializeAws_json1_1RestoreSecretCommand;\nconst deserializeAws_json1_1RestoreSecretCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"InternalServiceError\":\n case \"com.amazonaws.secretsmanager#InternalServiceError\":\n throw await deserializeAws_json1_1InternalServiceErrorResponse(parsedOutput, context);\n case \"InvalidParameterException\":\n case \"com.amazonaws.secretsmanager#InvalidParameterException\":\n throw await deserializeAws_json1_1InvalidParameterExceptionResponse(parsedOutput, context);\n case \"InvalidRequestException\":\n case \"com.amazonaws.secretsmanager#InvalidRequestException\":\n throw await deserializeAws_json1_1InvalidRequestExceptionResponse(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.secretsmanager#ResourceNotFoundException\":\n throw await deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody,\n exceptionCtor: SecretsManagerServiceException_1.SecretsManagerServiceException,\n errorCode,\n });\n }\n};\nconst deserializeAws_json1_1RotateSecretCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return deserializeAws_json1_1RotateSecretCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = deserializeAws_json1_1RotateSecretResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return Promise.resolve(response);\n};\nexports.deserializeAws_json1_1RotateSecretCommand = deserializeAws_json1_1RotateSecretCommand;\nconst deserializeAws_json1_1RotateSecretCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"InternalServiceError\":\n case \"com.amazonaws.secretsmanager#InternalServiceError\":\n throw await deserializeAws_json1_1InternalServiceErrorResponse(parsedOutput, context);\n case \"InvalidParameterException\":\n case \"com.amazonaws.secretsmanager#InvalidParameterException\":\n throw await deserializeAws_json1_1InvalidParameterExceptionResponse(parsedOutput, context);\n case \"InvalidRequestException\":\n case \"com.amazonaws.secretsmanager#InvalidRequestException\":\n throw await deserializeAws_json1_1InvalidRequestExceptionResponse(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.secretsmanager#ResourceNotFoundException\":\n throw await deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody,\n exceptionCtor: SecretsManagerServiceException_1.SecretsManagerServiceException,\n errorCode,\n });\n }\n};\nconst deserializeAws_json1_1StopReplicationToReplicaCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return deserializeAws_json1_1StopReplicationToReplicaCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = deserializeAws_json1_1StopReplicationToReplicaResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return Promise.resolve(response);\n};\nexports.deserializeAws_json1_1StopReplicationToReplicaCommand = deserializeAws_json1_1StopReplicationToReplicaCommand;\nconst deserializeAws_json1_1StopReplicationToReplicaCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"InternalServiceError\":\n case \"com.amazonaws.secretsmanager#InternalServiceError\":\n throw await deserializeAws_json1_1InternalServiceErrorResponse(parsedOutput, context);\n case \"InvalidParameterException\":\n case \"com.amazonaws.secretsmanager#InvalidParameterException\":\n throw await deserializeAws_json1_1InvalidParameterExceptionResponse(parsedOutput, context);\n case \"InvalidRequestException\":\n case \"com.amazonaws.secretsmanager#InvalidRequestException\":\n throw await deserializeAws_json1_1InvalidRequestExceptionResponse(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.secretsmanager#ResourceNotFoundException\":\n throw await deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody,\n exceptionCtor: SecretsManagerServiceException_1.SecretsManagerServiceException,\n errorCode,\n });\n }\n};\nconst deserializeAws_json1_1TagResourceCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return deserializeAws_json1_1TagResourceCommandError(output, context);\n }\n await collectBody(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output),\n };\n return Promise.resolve(response);\n};\nexports.deserializeAws_json1_1TagResourceCommand = deserializeAws_json1_1TagResourceCommand;\nconst deserializeAws_json1_1TagResourceCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"InternalServiceError\":\n case \"com.amazonaws.secretsmanager#InternalServiceError\":\n throw await deserializeAws_json1_1InternalServiceErrorResponse(parsedOutput, context);\n case \"InvalidParameterException\":\n case \"com.amazonaws.secretsmanager#InvalidParameterException\":\n throw await deserializeAws_json1_1InvalidParameterExceptionResponse(parsedOutput, context);\n case \"InvalidRequestException\":\n case \"com.amazonaws.secretsmanager#InvalidRequestException\":\n throw await deserializeAws_json1_1InvalidRequestExceptionResponse(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.secretsmanager#ResourceNotFoundException\":\n throw await deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody,\n exceptionCtor: SecretsManagerServiceException_1.SecretsManagerServiceException,\n errorCode,\n });\n }\n};\nconst deserializeAws_json1_1UntagResourceCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return deserializeAws_json1_1UntagResourceCommandError(output, context);\n }\n await collectBody(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output),\n };\n return Promise.resolve(response);\n};\nexports.deserializeAws_json1_1UntagResourceCommand = deserializeAws_json1_1UntagResourceCommand;\nconst deserializeAws_json1_1UntagResourceCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"InternalServiceError\":\n case \"com.amazonaws.secretsmanager#InternalServiceError\":\n throw await deserializeAws_json1_1InternalServiceErrorResponse(parsedOutput, context);\n case \"InvalidParameterException\":\n case \"com.amazonaws.secretsmanager#InvalidParameterException\":\n throw await deserializeAws_json1_1InvalidParameterExceptionResponse(parsedOutput, context);\n case \"InvalidRequestException\":\n case \"com.amazonaws.secretsmanager#InvalidRequestException\":\n throw await deserializeAws_json1_1InvalidRequestExceptionResponse(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.secretsmanager#ResourceNotFoundException\":\n throw await deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody,\n exceptionCtor: SecretsManagerServiceException_1.SecretsManagerServiceException,\n errorCode,\n });\n }\n};\nconst deserializeAws_json1_1UpdateSecretCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return deserializeAws_json1_1UpdateSecretCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = deserializeAws_json1_1UpdateSecretResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return Promise.resolve(response);\n};\nexports.deserializeAws_json1_1UpdateSecretCommand = deserializeAws_json1_1UpdateSecretCommand;\nconst deserializeAws_json1_1UpdateSecretCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"DecryptionFailure\":\n case \"com.amazonaws.secretsmanager#DecryptionFailure\":\n throw await deserializeAws_json1_1DecryptionFailureResponse(parsedOutput, context);\n case \"EncryptionFailure\":\n case \"com.amazonaws.secretsmanager#EncryptionFailure\":\n throw await deserializeAws_json1_1EncryptionFailureResponse(parsedOutput, context);\n case \"InternalServiceError\":\n case \"com.amazonaws.secretsmanager#InternalServiceError\":\n throw await deserializeAws_json1_1InternalServiceErrorResponse(parsedOutput, context);\n case \"InvalidParameterException\":\n case \"com.amazonaws.secretsmanager#InvalidParameterException\":\n throw await deserializeAws_json1_1InvalidParameterExceptionResponse(parsedOutput, context);\n case \"InvalidRequestException\":\n case \"com.amazonaws.secretsmanager#InvalidRequestException\":\n throw await deserializeAws_json1_1InvalidRequestExceptionResponse(parsedOutput, context);\n case \"LimitExceededException\":\n case \"com.amazonaws.secretsmanager#LimitExceededException\":\n throw await deserializeAws_json1_1LimitExceededExceptionResponse(parsedOutput, context);\n case \"MalformedPolicyDocumentException\":\n case \"com.amazonaws.secretsmanager#MalformedPolicyDocumentException\":\n throw await deserializeAws_json1_1MalformedPolicyDocumentExceptionResponse(parsedOutput, context);\n case \"PreconditionNotMetException\":\n case \"com.amazonaws.secretsmanager#PreconditionNotMetException\":\n throw await deserializeAws_json1_1PreconditionNotMetExceptionResponse(parsedOutput, context);\n case \"ResourceExistsException\":\n case \"com.amazonaws.secretsmanager#ResourceExistsException\":\n throw await deserializeAws_json1_1ResourceExistsExceptionResponse(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.secretsmanager#ResourceNotFoundException\":\n throw await deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody,\n exceptionCtor: SecretsManagerServiceException_1.SecretsManagerServiceException,\n errorCode,\n });\n }\n};\nconst deserializeAws_json1_1UpdateSecretVersionStageCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return deserializeAws_json1_1UpdateSecretVersionStageCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = deserializeAws_json1_1UpdateSecretVersionStageResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return Promise.resolve(response);\n};\nexports.deserializeAws_json1_1UpdateSecretVersionStageCommand = deserializeAws_json1_1UpdateSecretVersionStageCommand;\nconst deserializeAws_json1_1UpdateSecretVersionStageCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"InternalServiceError\":\n case \"com.amazonaws.secretsmanager#InternalServiceError\":\n throw await deserializeAws_json1_1InternalServiceErrorResponse(parsedOutput, context);\n case \"InvalidParameterException\":\n case \"com.amazonaws.secretsmanager#InvalidParameterException\":\n throw await deserializeAws_json1_1InvalidParameterExceptionResponse(parsedOutput, context);\n case \"InvalidRequestException\":\n case \"com.amazonaws.secretsmanager#InvalidRequestException\":\n throw await deserializeAws_json1_1InvalidRequestExceptionResponse(parsedOutput, context);\n case \"LimitExceededException\":\n case \"com.amazonaws.secretsmanager#LimitExceededException\":\n throw await deserializeAws_json1_1LimitExceededExceptionResponse(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.secretsmanager#ResourceNotFoundException\":\n throw await deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody,\n exceptionCtor: SecretsManagerServiceException_1.SecretsManagerServiceException,\n errorCode,\n });\n }\n};\nconst deserializeAws_json1_1ValidateResourcePolicyCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return deserializeAws_json1_1ValidateResourcePolicyCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = deserializeAws_json1_1ValidateResourcePolicyResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return Promise.resolve(response);\n};\nexports.deserializeAws_json1_1ValidateResourcePolicyCommand = deserializeAws_json1_1ValidateResourcePolicyCommand;\nconst deserializeAws_json1_1ValidateResourcePolicyCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"InternalServiceError\":\n case \"com.amazonaws.secretsmanager#InternalServiceError\":\n throw await deserializeAws_json1_1InternalServiceErrorResponse(parsedOutput, context);\n case \"InvalidParameterException\":\n case \"com.amazonaws.secretsmanager#InvalidParameterException\":\n throw await deserializeAws_json1_1InvalidParameterExceptionResponse(parsedOutput, context);\n case \"InvalidRequestException\":\n case \"com.amazonaws.secretsmanager#InvalidRequestException\":\n throw await deserializeAws_json1_1InvalidRequestExceptionResponse(parsedOutput, context);\n case \"MalformedPolicyDocumentException\":\n case \"com.amazonaws.secretsmanager#MalformedPolicyDocumentException\":\n throw await deserializeAws_json1_1MalformedPolicyDocumentExceptionResponse(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.secretsmanager#ResourceNotFoundException\":\n throw await deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody,\n exceptionCtor: SecretsManagerServiceException_1.SecretsManagerServiceException,\n errorCode,\n });\n }\n};\nconst deserializeAws_json1_1DecryptionFailureResponse = async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = deserializeAws_json1_1DecryptionFailure(body, context);\n const exception = new models_0_1.DecryptionFailure({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized,\n });\n return (0, smithy_client_1.decorateServiceException)(exception, body);\n};\nconst deserializeAws_json1_1EncryptionFailureResponse = async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = deserializeAws_json1_1EncryptionFailure(body, context);\n const exception = new models_0_1.EncryptionFailure({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized,\n });\n return (0, smithy_client_1.decorateServiceException)(exception, body);\n};\nconst deserializeAws_json1_1InternalServiceErrorResponse = async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = deserializeAws_json1_1InternalServiceError(body, context);\n const exception = new models_0_1.InternalServiceError({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized,\n });\n return (0, smithy_client_1.decorateServiceException)(exception, body);\n};\nconst deserializeAws_json1_1InvalidNextTokenExceptionResponse = async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = deserializeAws_json1_1InvalidNextTokenException(body, context);\n const exception = new models_0_1.InvalidNextTokenException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized,\n });\n return (0, smithy_client_1.decorateServiceException)(exception, body);\n};\nconst deserializeAws_json1_1InvalidParameterExceptionResponse = async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = deserializeAws_json1_1InvalidParameterException(body, context);\n const exception = new models_0_1.InvalidParameterException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized,\n });\n return (0, smithy_client_1.decorateServiceException)(exception, body);\n};\nconst deserializeAws_json1_1InvalidRequestExceptionResponse = async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = deserializeAws_json1_1InvalidRequestException(body, context);\n const exception = new models_0_1.InvalidRequestException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized,\n });\n return (0, smithy_client_1.decorateServiceException)(exception, body);\n};\nconst deserializeAws_json1_1LimitExceededExceptionResponse = async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = deserializeAws_json1_1LimitExceededException(body, context);\n const exception = new models_0_1.LimitExceededException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized,\n });\n return (0, smithy_client_1.decorateServiceException)(exception, body);\n};\nconst deserializeAws_json1_1MalformedPolicyDocumentExceptionResponse = async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = deserializeAws_json1_1MalformedPolicyDocumentException(body, context);\n const exception = new models_0_1.MalformedPolicyDocumentException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized,\n });\n return (0, smithy_client_1.decorateServiceException)(exception, body);\n};\nconst deserializeAws_json1_1PreconditionNotMetExceptionResponse = async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = deserializeAws_json1_1PreconditionNotMetException(body, context);\n const exception = new models_0_1.PreconditionNotMetException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized,\n });\n return (0, smithy_client_1.decorateServiceException)(exception, body);\n};\nconst deserializeAws_json1_1PublicPolicyExceptionResponse = async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = deserializeAws_json1_1PublicPolicyException(body, context);\n const exception = new models_0_1.PublicPolicyException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized,\n });\n return (0, smithy_client_1.decorateServiceException)(exception, body);\n};\nconst deserializeAws_json1_1ResourceExistsExceptionResponse = async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = deserializeAws_json1_1ResourceExistsException(body, context);\n const exception = new models_0_1.ResourceExistsException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized,\n });\n return (0, smithy_client_1.decorateServiceException)(exception, body);\n};\nconst deserializeAws_json1_1ResourceNotFoundExceptionResponse = async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = deserializeAws_json1_1ResourceNotFoundException(body, context);\n const exception = new models_0_1.ResourceNotFoundException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized,\n });\n return (0, smithy_client_1.decorateServiceException)(exception, body);\n};\nconst serializeAws_json1_1AddReplicaRegionListType = (input, context) => {\n return input\n .filter((e) => e != null)\n .map((entry) => {\n return serializeAws_json1_1ReplicaRegionType(entry, context);\n });\n};\nconst serializeAws_json1_1CancelRotateSecretRequest = (input, context) => {\n return {\n ...(input.SecretId != null && { SecretId: input.SecretId }),\n };\n};\nconst serializeAws_json1_1CreateSecretRequest = (input, context) => {\n return {\n ...(input.AddReplicaRegions != null && {\n AddReplicaRegions: serializeAws_json1_1AddReplicaRegionListType(input.AddReplicaRegions, context),\n }),\n ClientRequestToken: input.ClientRequestToken ?? (0, uuid_1.v4)(),\n ...(input.Description != null && { Description: input.Description }),\n ...(input.ForceOverwriteReplicaSecret != null && {\n ForceOverwriteReplicaSecret: input.ForceOverwriteReplicaSecret,\n }),\n ...(input.KmsKeyId != null && { KmsKeyId: input.KmsKeyId }),\n ...(input.Name != null && { Name: input.Name }),\n ...(input.SecretBinary != null && { SecretBinary: context.base64Encoder(input.SecretBinary) }),\n ...(input.SecretString != null && { SecretString: input.SecretString }),\n ...(input.Tags != null && { Tags: serializeAws_json1_1TagListType(input.Tags, context) }),\n };\n};\nconst serializeAws_json1_1DeleteResourcePolicyRequest = (input, context) => {\n return {\n ...(input.SecretId != null && { SecretId: input.SecretId }),\n };\n};\nconst serializeAws_json1_1DeleteSecretRequest = (input, context) => {\n return {\n ...(input.ForceDeleteWithoutRecovery != null && { ForceDeleteWithoutRecovery: input.ForceDeleteWithoutRecovery }),\n ...(input.RecoveryWindowInDays != null && { RecoveryWindowInDays: input.RecoveryWindowInDays }),\n ...(input.SecretId != null && { SecretId: input.SecretId }),\n };\n};\nconst serializeAws_json1_1DescribeSecretRequest = (input, context) => {\n return {\n ...(input.SecretId != null && { SecretId: input.SecretId }),\n };\n};\nconst serializeAws_json1_1Filter = (input, context) => {\n return {\n ...(input.Key != null && { Key: input.Key }),\n ...(input.Values != null && { Values: serializeAws_json1_1FilterValuesStringList(input.Values, context) }),\n };\n};\nconst serializeAws_json1_1FiltersListType = (input, context) => {\n return input\n .filter((e) => e != null)\n .map((entry) => {\n return serializeAws_json1_1Filter(entry, context);\n });\n};\nconst serializeAws_json1_1FilterValuesStringList = (input, context) => {\n return input\n .filter((e) => e != null)\n .map((entry) => {\n return entry;\n });\n};\nconst serializeAws_json1_1GetRandomPasswordRequest = (input, context) => {\n return {\n ...(input.ExcludeCharacters != null && { ExcludeCharacters: input.ExcludeCharacters }),\n ...(input.ExcludeLowercase != null && { ExcludeLowercase: input.ExcludeLowercase }),\n ...(input.ExcludeNumbers != null && { ExcludeNumbers: input.ExcludeNumbers }),\n ...(input.ExcludePunctuation != null && { ExcludePunctuation: input.ExcludePunctuation }),\n ...(input.ExcludeUppercase != null && { ExcludeUppercase: input.ExcludeUppercase }),\n ...(input.IncludeSpace != null && { IncludeSpace: input.IncludeSpace }),\n ...(input.PasswordLength != null && { PasswordLength: input.PasswordLength }),\n ...(input.RequireEachIncludedType != null && { RequireEachIncludedType: input.RequireEachIncludedType }),\n };\n};\nconst serializeAws_json1_1GetResourcePolicyRequest = (input, context) => {\n return {\n ...(input.SecretId != null && { SecretId: input.SecretId }),\n };\n};\nconst serializeAws_json1_1GetSecretValueRequest = (input, context) => {\n return {\n ...(input.SecretId != null && { SecretId: input.SecretId }),\n ...(input.VersionId != null && { VersionId: input.VersionId }),\n ...(input.VersionStage != null && { VersionStage: input.VersionStage }),\n };\n};\nconst serializeAws_json1_1ListSecretsRequest = (input, context) => {\n return {\n ...(input.Filters != null && { Filters: serializeAws_json1_1FiltersListType(input.Filters, context) }),\n ...(input.IncludePlannedDeletion != null && { IncludePlannedDeletion: input.IncludePlannedDeletion }),\n ...(input.MaxResults != null && { MaxResults: input.MaxResults }),\n ...(input.NextToken != null && { NextToken: input.NextToken }),\n ...(input.SortOrder != null && { SortOrder: input.SortOrder }),\n };\n};\nconst serializeAws_json1_1ListSecretVersionIdsRequest = (input, context) => {\n return {\n ...(input.IncludeDeprecated != null && { IncludeDeprecated: input.IncludeDeprecated }),\n ...(input.MaxResults != null && { MaxResults: input.MaxResults }),\n ...(input.NextToken != null && { NextToken: input.NextToken }),\n ...(input.SecretId != null && { SecretId: input.SecretId }),\n };\n};\nconst serializeAws_json1_1PutResourcePolicyRequest = (input, context) => {\n return {\n ...(input.BlockPublicPolicy != null && { BlockPublicPolicy: input.BlockPublicPolicy }),\n ...(input.ResourcePolicy != null && { ResourcePolicy: input.ResourcePolicy }),\n ...(input.SecretId != null && { SecretId: input.SecretId }),\n };\n};\nconst serializeAws_json1_1PutSecretValueRequest = (input, context) => {\n return {\n ClientRequestToken: input.ClientRequestToken ?? (0, uuid_1.v4)(),\n ...(input.SecretBinary != null && { SecretBinary: context.base64Encoder(input.SecretBinary) }),\n ...(input.SecretId != null && { SecretId: input.SecretId }),\n ...(input.SecretString != null && { SecretString: input.SecretString }),\n ...(input.VersionStages != null && {\n VersionStages: serializeAws_json1_1SecretVersionStagesType(input.VersionStages, context),\n }),\n };\n};\nconst serializeAws_json1_1RemoveRegionsFromReplicationRequest = (input, context) => {\n return {\n ...(input.RemoveReplicaRegions != null && {\n RemoveReplicaRegions: serializeAws_json1_1RemoveReplicaRegionListType(input.RemoveReplicaRegions, context),\n }),\n ...(input.SecretId != null && { SecretId: input.SecretId }),\n };\n};\nconst serializeAws_json1_1RemoveReplicaRegionListType = (input, context) => {\n return input\n .filter((e) => e != null)\n .map((entry) => {\n return entry;\n });\n};\nconst serializeAws_json1_1ReplicaRegionType = (input, context) => {\n return {\n ...(input.KmsKeyId != null && { KmsKeyId: input.KmsKeyId }),\n ...(input.Region != null && { Region: input.Region }),\n };\n};\nconst serializeAws_json1_1ReplicateSecretToRegionsRequest = (input, context) => {\n return {\n ...(input.AddReplicaRegions != null && {\n AddReplicaRegions: serializeAws_json1_1AddReplicaRegionListType(input.AddReplicaRegions, context),\n }),\n ...(input.ForceOverwriteReplicaSecret != null && {\n ForceOverwriteReplicaSecret: input.ForceOverwriteReplicaSecret,\n }),\n ...(input.SecretId != null && { SecretId: input.SecretId }),\n };\n};\nconst serializeAws_json1_1RestoreSecretRequest = (input, context) => {\n return {\n ...(input.SecretId != null && { SecretId: input.SecretId }),\n };\n};\nconst serializeAws_json1_1RotateSecretRequest = (input, context) => {\n return {\n ClientRequestToken: input.ClientRequestToken ?? (0, uuid_1.v4)(),\n ...(input.RotateImmediately != null && { RotateImmediately: input.RotateImmediately }),\n ...(input.RotationLambdaARN != null && { RotationLambdaARN: input.RotationLambdaARN }),\n ...(input.RotationRules != null && {\n RotationRules: serializeAws_json1_1RotationRulesType(input.RotationRules, context),\n }),\n ...(input.SecretId != null && { SecretId: input.SecretId }),\n };\n};\nconst serializeAws_json1_1RotationRulesType = (input, context) => {\n return {\n ...(input.AutomaticallyAfterDays != null && { AutomaticallyAfterDays: input.AutomaticallyAfterDays }),\n ...(input.Duration != null && { Duration: input.Duration }),\n ...(input.ScheduleExpression != null && { ScheduleExpression: input.ScheduleExpression }),\n };\n};\nconst serializeAws_json1_1SecretVersionStagesType = (input, context) => {\n return input\n .filter((e) => e != null)\n .map((entry) => {\n return entry;\n });\n};\nconst serializeAws_json1_1StopReplicationToReplicaRequest = (input, context) => {\n return {\n ...(input.SecretId != null && { SecretId: input.SecretId }),\n };\n};\nconst serializeAws_json1_1Tag = (input, context) => {\n return {\n ...(input.Key != null && { Key: input.Key }),\n ...(input.Value != null && { Value: input.Value }),\n };\n};\nconst serializeAws_json1_1TagKeyListType = (input, context) => {\n return input\n .filter((e) => e != null)\n .map((entry) => {\n return entry;\n });\n};\nconst serializeAws_json1_1TagListType = (input, context) => {\n return input\n .filter((e) => e != null)\n .map((entry) => {\n return serializeAws_json1_1Tag(entry, context);\n });\n};\nconst serializeAws_json1_1TagResourceRequest = (input, context) => {\n return {\n ...(input.SecretId != null && { SecretId: input.SecretId }),\n ...(input.Tags != null && { Tags: serializeAws_json1_1TagListType(input.Tags, context) }),\n };\n};\nconst serializeAws_json1_1UntagResourceRequest = (input, context) => {\n return {\n ...(input.SecretId != null && { SecretId: input.SecretId }),\n ...(input.TagKeys != null && { TagKeys: serializeAws_json1_1TagKeyListType(input.TagKeys, context) }),\n };\n};\nconst serializeAws_json1_1UpdateSecretRequest = (input, context) => {\n return {\n ClientRequestToken: input.ClientRequestToken ?? (0, uuid_1.v4)(),\n ...(input.Description != null && { Description: input.Description }),\n ...(input.KmsKeyId != null && { KmsKeyId: input.KmsKeyId }),\n ...(input.SecretBinary != null && { SecretBinary: context.base64Encoder(input.SecretBinary) }),\n ...(input.SecretId != null && { SecretId: input.SecretId }),\n ...(input.SecretString != null && { SecretString: input.SecretString }),\n };\n};\nconst serializeAws_json1_1UpdateSecretVersionStageRequest = (input, context) => {\n return {\n ...(input.MoveToVersionId != null && { MoveToVersionId: input.MoveToVersionId }),\n ...(input.RemoveFromVersionId != null && { RemoveFromVersionId: input.RemoveFromVersionId }),\n ...(input.SecretId != null && { SecretId: input.SecretId }),\n ...(input.VersionStage != null && { VersionStage: input.VersionStage }),\n };\n};\nconst serializeAws_json1_1ValidateResourcePolicyRequest = (input, context) => {\n return {\n ...(input.ResourcePolicy != null && { ResourcePolicy: input.ResourcePolicy }),\n ...(input.SecretId != null && { SecretId: input.SecretId }),\n };\n};\nconst deserializeAws_json1_1CancelRotateSecretResponse = (output, context) => {\n return {\n ARN: (0, smithy_client_1.expectString)(output.ARN),\n Name: (0, smithy_client_1.expectString)(output.Name),\n VersionId: (0, smithy_client_1.expectString)(output.VersionId),\n };\n};\nconst deserializeAws_json1_1CreateSecretResponse = (output, context) => {\n return {\n ARN: (0, smithy_client_1.expectString)(output.ARN),\n Name: (0, smithy_client_1.expectString)(output.Name),\n ReplicationStatus: output.ReplicationStatus != null\n ? deserializeAws_json1_1ReplicationStatusListType(output.ReplicationStatus, context)\n : undefined,\n VersionId: (0, smithy_client_1.expectString)(output.VersionId),\n };\n};\nconst deserializeAws_json1_1DecryptionFailure = (output, context) => {\n return {\n Message: (0, smithy_client_1.expectString)(output.Message),\n };\n};\nconst deserializeAws_json1_1DeleteResourcePolicyResponse = (output, context) => {\n return {\n ARN: (0, smithy_client_1.expectString)(output.ARN),\n Name: (0, smithy_client_1.expectString)(output.Name),\n };\n};\nconst deserializeAws_json1_1DeleteSecretResponse = (output, context) => {\n return {\n ARN: (0, smithy_client_1.expectString)(output.ARN),\n DeletionDate: output.DeletionDate != null\n ? (0, smithy_client_1.expectNonNull)((0, smithy_client_1.parseEpochTimestamp)((0, smithy_client_1.expectNumber)(output.DeletionDate)))\n : undefined,\n Name: (0, smithy_client_1.expectString)(output.Name),\n };\n};\nconst deserializeAws_json1_1DescribeSecretResponse = (output, context) => {\n return {\n ARN: (0, smithy_client_1.expectString)(output.ARN),\n CreatedDate: output.CreatedDate != null\n ? (0, smithy_client_1.expectNonNull)((0, smithy_client_1.parseEpochTimestamp)((0, smithy_client_1.expectNumber)(output.CreatedDate)))\n : undefined,\n DeletedDate: output.DeletedDate != null\n ? (0, smithy_client_1.expectNonNull)((0, smithy_client_1.parseEpochTimestamp)((0, smithy_client_1.expectNumber)(output.DeletedDate)))\n : undefined,\n Description: (0, smithy_client_1.expectString)(output.Description),\n KmsKeyId: (0, smithy_client_1.expectString)(output.KmsKeyId),\n LastAccessedDate: output.LastAccessedDate != null\n ? (0, smithy_client_1.expectNonNull)((0, smithy_client_1.parseEpochTimestamp)((0, smithy_client_1.expectNumber)(output.LastAccessedDate)))\n : undefined,\n LastChangedDate: output.LastChangedDate != null\n ? (0, smithy_client_1.expectNonNull)((0, smithy_client_1.parseEpochTimestamp)((0, smithy_client_1.expectNumber)(output.LastChangedDate)))\n : undefined,\n LastRotatedDate: output.LastRotatedDate != null\n ? (0, smithy_client_1.expectNonNull)((0, smithy_client_1.parseEpochTimestamp)((0, smithy_client_1.expectNumber)(output.LastRotatedDate)))\n : undefined,\n Name: (0, smithy_client_1.expectString)(output.Name),\n NextRotationDate: output.NextRotationDate != null\n ? (0, smithy_client_1.expectNonNull)((0, smithy_client_1.parseEpochTimestamp)((0, smithy_client_1.expectNumber)(output.NextRotationDate)))\n : undefined,\n OwningService: (0, smithy_client_1.expectString)(output.OwningService),\n PrimaryRegion: (0, smithy_client_1.expectString)(output.PrimaryRegion),\n ReplicationStatus: output.ReplicationStatus != null\n ? deserializeAws_json1_1ReplicationStatusListType(output.ReplicationStatus, context)\n : undefined,\n RotationEnabled: (0, smithy_client_1.expectBoolean)(output.RotationEnabled),\n RotationLambdaARN: (0, smithy_client_1.expectString)(output.RotationLambdaARN),\n RotationRules: output.RotationRules != null ? deserializeAws_json1_1RotationRulesType(output.RotationRules, context) : undefined,\n Tags: output.Tags != null ? deserializeAws_json1_1TagListType(output.Tags, context) : undefined,\n VersionIdsToStages: output.VersionIdsToStages != null\n ? deserializeAws_json1_1SecretVersionsToStagesMapType(output.VersionIdsToStages, context)\n : undefined,\n };\n};\nconst deserializeAws_json1_1EncryptionFailure = (output, context) => {\n return {\n Message: (0, smithy_client_1.expectString)(output.Message),\n };\n};\nconst deserializeAws_json1_1GetRandomPasswordResponse = (output, context) => {\n return {\n RandomPassword: (0, smithy_client_1.expectString)(output.RandomPassword),\n };\n};\nconst deserializeAws_json1_1GetResourcePolicyResponse = (output, context) => {\n return {\n ARN: (0, smithy_client_1.expectString)(output.ARN),\n Name: (0, smithy_client_1.expectString)(output.Name),\n ResourcePolicy: (0, smithy_client_1.expectString)(output.ResourcePolicy),\n };\n};\nconst deserializeAws_json1_1GetSecretValueResponse = (output, context) => {\n return {\n ARN: (0, smithy_client_1.expectString)(output.ARN),\n CreatedDate: output.CreatedDate != null\n ? (0, smithy_client_1.expectNonNull)((0, smithy_client_1.parseEpochTimestamp)((0, smithy_client_1.expectNumber)(output.CreatedDate)))\n : undefined,\n Name: (0, smithy_client_1.expectString)(output.Name),\n SecretBinary: output.SecretBinary != null ? context.base64Decoder(output.SecretBinary) : undefined,\n SecretString: (0, smithy_client_1.expectString)(output.SecretString),\n VersionId: (0, smithy_client_1.expectString)(output.VersionId),\n VersionStages: output.VersionStages != null\n ? deserializeAws_json1_1SecretVersionStagesType(output.VersionStages, context)\n : undefined,\n };\n};\nconst deserializeAws_json1_1InternalServiceError = (output, context) => {\n return {\n Message: (0, smithy_client_1.expectString)(output.Message),\n };\n};\nconst deserializeAws_json1_1InvalidNextTokenException = (output, context) => {\n return {\n Message: (0, smithy_client_1.expectString)(output.Message),\n };\n};\nconst deserializeAws_json1_1InvalidParameterException = (output, context) => {\n return {\n Message: (0, smithy_client_1.expectString)(output.Message),\n };\n};\nconst deserializeAws_json1_1InvalidRequestException = (output, context) => {\n return {\n Message: (0, smithy_client_1.expectString)(output.Message),\n };\n};\nconst deserializeAws_json1_1KmsKeyIdListType = (output, context) => {\n const retVal = (output || [])\n .filter((e) => e != null)\n .map((entry) => {\n if (entry === null) {\n return null;\n }\n return (0, smithy_client_1.expectString)(entry);\n });\n return retVal;\n};\nconst deserializeAws_json1_1LimitExceededException = (output, context) => {\n return {\n Message: (0, smithy_client_1.expectString)(output.Message),\n };\n};\nconst deserializeAws_json1_1ListSecretsResponse = (output, context) => {\n return {\n NextToken: (0, smithy_client_1.expectString)(output.NextToken),\n SecretList: output.SecretList != null ? deserializeAws_json1_1SecretListType(output.SecretList, context) : undefined,\n };\n};\nconst deserializeAws_json1_1ListSecretVersionIdsResponse = (output, context) => {\n return {\n ARN: (0, smithy_client_1.expectString)(output.ARN),\n Name: (0, smithy_client_1.expectString)(output.Name),\n NextToken: (0, smithy_client_1.expectString)(output.NextToken),\n Versions: output.Versions != null ? deserializeAws_json1_1SecretVersionsListType(output.Versions, context) : undefined,\n };\n};\nconst deserializeAws_json1_1MalformedPolicyDocumentException = (output, context) => {\n return {\n Message: (0, smithy_client_1.expectString)(output.Message),\n };\n};\nconst deserializeAws_json1_1PreconditionNotMetException = (output, context) => {\n return {\n Message: (0, smithy_client_1.expectString)(output.Message),\n };\n};\nconst deserializeAws_json1_1PublicPolicyException = (output, context) => {\n return {\n Message: (0, smithy_client_1.expectString)(output.Message),\n };\n};\nconst deserializeAws_json1_1PutResourcePolicyResponse = (output, context) => {\n return {\n ARN: (0, smithy_client_1.expectString)(output.ARN),\n Name: (0, smithy_client_1.expectString)(output.Name),\n };\n};\nconst deserializeAws_json1_1PutSecretValueResponse = (output, context) => {\n return {\n ARN: (0, smithy_client_1.expectString)(output.ARN),\n Name: (0, smithy_client_1.expectString)(output.Name),\n VersionId: (0, smithy_client_1.expectString)(output.VersionId),\n VersionStages: output.VersionStages != null\n ? deserializeAws_json1_1SecretVersionStagesType(output.VersionStages, context)\n : undefined,\n };\n};\nconst deserializeAws_json1_1RemoveRegionsFromReplicationResponse = (output, context) => {\n return {\n ARN: (0, smithy_client_1.expectString)(output.ARN),\n ReplicationStatus: output.ReplicationStatus != null\n ? deserializeAws_json1_1ReplicationStatusListType(output.ReplicationStatus, context)\n : undefined,\n };\n};\nconst deserializeAws_json1_1ReplicateSecretToRegionsResponse = (output, context) => {\n return {\n ARN: (0, smithy_client_1.expectString)(output.ARN),\n ReplicationStatus: output.ReplicationStatus != null\n ? deserializeAws_json1_1ReplicationStatusListType(output.ReplicationStatus, context)\n : undefined,\n };\n};\nconst deserializeAws_json1_1ReplicationStatusListType = (output, context) => {\n const retVal = (output || [])\n .filter((e) => e != null)\n .map((entry) => {\n if (entry === null) {\n return null;\n }\n return deserializeAws_json1_1ReplicationStatusType(entry, context);\n });\n return retVal;\n};\nconst deserializeAws_json1_1ReplicationStatusType = (output, context) => {\n return {\n KmsKeyId: (0, smithy_client_1.expectString)(output.KmsKeyId),\n LastAccessedDate: output.LastAccessedDate != null\n ? (0, smithy_client_1.expectNonNull)((0, smithy_client_1.parseEpochTimestamp)((0, smithy_client_1.expectNumber)(output.LastAccessedDate)))\n : undefined,\n Region: (0, smithy_client_1.expectString)(output.Region),\n Status: (0, smithy_client_1.expectString)(output.Status),\n StatusMessage: (0, smithy_client_1.expectString)(output.StatusMessage),\n };\n};\nconst deserializeAws_json1_1ResourceExistsException = (output, context) => {\n return {\n Message: (0, smithy_client_1.expectString)(output.Message),\n };\n};\nconst deserializeAws_json1_1ResourceNotFoundException = (output, context) => {\n return {\n Message: (0, smithy_client_1.expectString)(output.Message),\n };\n};\nconst deserializeAws_json1_1RestoreSecretResponse = (output, context) => {\n return {\n ARN: (0, smithy_client_1.expectString)(output.ARN),\n Name: (0, smithy_client_1.expectString)(output.Name),\n };\n};\nconst deserializeAws_json1_1RotateSecretResponse = (output, context) => {\n return {\n ARN: (0, smithy_client_1.expectString)(output.ARN),\n Name: (0, smithy_client_1.expectString)(output.Name),\n VersionId: (0, smithy_client_1.expectString)(output.VersionId),\n };\n};\nconst deserializeAws_json1_1RotationRulesType = (output, context) => {\n return {\n AutomaticallyAfterDays: (0, smithy_client_1.expectLong)(output.AutomaticallyAfterDays),\n Duration: (0, smithy_client_1.expectString)(output.Duration),\n ScheduleExpression: (0, smithy_client_1.expectString)(output.ScheduleExpression),\n };\n};\nconst deserializeAws_json1_1SecretListEntry = (output, context) => {\n return {\n ARN: (0, smithy_client_1.expectString)(output.ARN),\n CreatedDate: output.CreatedDate != null\n ? (0, smithy_client_1.expectNonNull)((0, smithy_client_1.parseEpochTimestamp)((0, smithy_client_1.expectNumber)(output.CreatedDate)))\n : undefined,\n DeletedDate: output.DeletedDate != null\n ? (0, smithy_client_1.expectNonNull)((0, smithy_client_1.parseEpochTimestamp)((0, smithy_client_1.expectNumber)(output.DeletedDate)))\n : undefined,\n Description: (0, smithy_client_1.expectString)(output.Description),\n KmsKeyId: (0, smithy_client_1.expectString)(output.KmsKeyId),\n LastAccessedDate: output.LastAccessedDate != null\n ? (0, smithy_client_1.expectNonNull)((0, smithy_client_1.parseEpochTimestamp)((0, smithy_client_1.expectNumber)(output.LastAccessedDate)))\n : undefined,\n LastChangedDate: output.LastChangedDate != null\n ? (0, smithy_client_1.expectNonNull)((0, smithy_client_1.parseEpochTimestamp)((0, smithy_client_1.expectNumber)(output.LastChangedDate)))\n : undefined,\n LastRotatedDate: output.LastRotatedDate != null\n ? (0, smithy_client_1.expectNonNull)((0, smithy_client_1.parseEpochTimestamp)((0, smithy_client_1.expectNumber)(output.LastRotatedDate)))\n : undefined,\n Name: (0, smithy_client_1.expectString)(output.Name),\n NextRotationDate: output.NextRotationDate != null\n ? (0, smithy_client_1.expectNonNull)((0, smithy_client_1.parseEpochTimestamp)((0, smithy_client_1.expectNumber)(output.NextRotationDate)))\n : undefined,\n OwningService: (0, smithy_client_1.expectString)(output.OwningService),\n PrimaryRegion: (0, smithy_client_1.expectString)(output.PrimaryRegion),\n RotationEnabled: (0, smithy_client_1.expectBoolean)(output.RotationEnabled),\n RotationLambdaARN: (0, smithy_client_1.expectString)(output.RotationLambdaARN),\n RotationRules: output.RotationRules != null ? deserializeAws_json1_1RotationRulesType(output.RotationRules, context) : undefined,\n SecretVersionsToStages: output.SecretVersionsToStages != null\n ? deserializeAws_json1_1SecretVersionsToStagesMapType(output.SecretVersionsToStages, context)\n : undefined,\n Tags: output.Tags != null ? deserializeAws_json1_1TagListType(output.Tags, context) : undefined,\n };\n};\nconst deserializeAws_json1_1SecretListType = (output, context) => {\n const retVal = (output || [])\n .filter((e) => e != null)\n .map((entry) => {\n if (entry === null) {\n return null;\n }\n return deserializeAws_json1_1SecretListEntry(entry, context);\n });\n return retVal;\n};\nconst deserializeAws_json1_1SecretVersionsListEntry = (output, context) => {\n return {\n CreatedDate: output.CreatedDate != null\n ? (0, smithy_client_1.expectNonNull)((0, smithy_client_1.parseEpochTimestamp)((0, smithy_client_1.expectNumber)(output.CreatedDate)))\n : undefined,\n KmsKeyIds: output.KmsKeyIds != null ? deserializeAws_json1_1KmsKeyIdListType(output.KmsKeyIds, context) : undefined,\n LastAccessedDate: output.LastAccessedDate != null\n ? (0, smithy_client_1.expectNonNull)((0, smithy_client_1.parseEpochTimestamp)((0, smithy_client_1.expectNumber)(output.LastAccessedDate)))\n : undefined,\n VersionId: (0, smithy_client_1.expectString)(output.VersionId),\n VersionStages: output.VersionStages != null\n ? deserializeAws_json1_1SecretVersionStagesType(output.VersionStages, context)\n : undefined,\n };\n};\nconst deserializeAws_json1_1SecretVersionsListType = (output, context) => {\n const retVal = (output || [])\n .filter((e) => e != null)\n .map((entry) => {\n if (entry === null) {\n return null;\n }\n return deserializeAws_json1_1SecretVersionsListEntry(entry, context);\n });\n return retVal;\n};\nconst deserializeAws_json1_1SecretVersionStagesType = (output, context) => {\n const retVal = (output || [])\n .filter((e) => e != null)\n .map((entry) => {\n if (entry === null) {\n return null;\n }\n return (0, smithy_client_1.expectString)(entry);\n });\n return retVal;\n};\nconst deserializeAws_json1_1SecretVersionsToStagesMapType = (output, context) => {\n return Object.entries(output).reduce((acc, [key, value]) => {\n if (value === null) {\n return acc;\n }\n acc[key] = deserializeAws_json1_1SecretVersionStagesType(value, context);\n return acc;\n }, {});\n};\nconst deserializeAws_json1_1StopReplicationToReplicaResponse = (output, context) => {\n return {\n ARN: (0, smithy_client_1.expectString)(output.ARN),\n };\n};\nconst deserializeAws_json1_1Tag = (output, context) => {\n return {\n Key: (0, smithy_client_1.expectString)(output.Key),\n Value: (0, smithy_client_1.expectString)(output.Value),\n };\n};\nconst deserializeAws_json1_1TagListType = (output, context) => {\n const retVal = (output || [])\n .filter((e) => e != null)\n .map((entry) => {\n if (entry === null) {\n return null;\n }\n return deserializeAws_json1_1Tag(entry, context);\n });\n return retVal;\n};\nconst deserializeAws_json1_1UpdateSecretResponse = (output, context) => {\n return {\n ARN: (0, smithy_client_1.expectString)(output.ARN),\n Name: (0, smithy_client_1.expectString)(output.Name),\n VersionId: (0, smithy_client_1.expectString)(output.VersionId),\n };\n};\nconst deserializeAws_json1_1UpdateSecretVersionStageResponse = (output, context) => {\n return {\n ARN: (0, smithy_client_1.expectString)(output.ARN),\n Name: (0, smithy_client_1.expectString)(output.Name),\n };\n};\nconst deserializeAws_json1_1ValidateResourcePolicyResponse = (output, context) => {\n return {\n PolicyValidationPassed: (0, smithy_client_1.expectBoolean)(output.PolicyValidationPassed),\n ValidationErrors: output.ValidationErrors != null\n ? deserializeAws_json1_1ValidationErrorsType(output.ValidationErrors, context)\n : undefined,\n };\n};\nconst deserializeAws_json1_1ValidationErrorsEntry = (output, context) => {\n return {\n CheckName: (0, smithy_client_1.expectString)(output.CheckName),\n ErrorMessage: (0, smithy_client_1.expectString)(output.ErrorMessage),\n };\n};\nconst deserializeAws_json1_1ValidationErrorsType = (output, context) => {\n const retVal = (output || [])\n .filter((e) => e != null)\n .map((entry) => {\n if (entry === null) {\n return null;\n }\n return deserializeAws_json1_1ValidationErrorsEntry(entry, context);\n });\n return retVal;\n};\nconst deserializeMetadata = (output) => ({\n httpStatusCode: output.statusCode,\n requestId: output.headers[\"x-amzn-requestid\"] ?? output.headers[\"x-amzn-request-id\"] ?? output.headers[\"x-amz-request-id\"],\n extendedRequestId: output.headers[\"x-amz-id-2\"],\n cfId: output.headers[\"x-amz-cf-id\"],\n});\nconst collectBody = (streamBody = new Uint8Array(), context) => {\n if (streamBody instanceof Uint8Array) {\n return Promise.resolve(streamBody);\n }\n return context.streamCollector(streamBody) || Promise.resolve(new Uint8Array());\n};\nconst collectBodyString = (streamBody, context) => collectBody(streamBody, context).then((body) => context.utf8Encoder(body));\nconst buildHttpRpcRequest = async (context, headers, path, resolvedHostname, body) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const contents = {\n protocol,\n hostname,\n port,\n method: \"POST\",\n path: basePath.endsWith(\"/\") ? basePath.slice(0, -1) + path : basePath + path,\n headers,\n };\n if (resolvedHostname !== undefined) {\n contents.hostname = resolvedHostname;\n }\n if (body !== undefined) {\n contents.body = body;\n }\n return new protocol_http_1.HttpRequest(contents);\n};\nconst parseBody = (streamBody, context) => collectBodyString(streamBody, context).then((encoded) => {\n if (encoded.length) {\n return JSON.parse(encoded);\n }\n return {};\n});\nconst parseErrorBody = async (errorBody, context) => {\n const value = await parseBody(errorBody, context);\n value.message = value.message ?? value.Message;\n return value;\n};\nconst loadRestJsonErrorCode = (output, data) => {\n const findKey = (object, key) => Object.keys(object).find((k) => k.toLowerCase() === key.toLowerCase());\n const sanitizeErrorCode = (rawValue) => {\n let cleanValue = rawValue;\n if (typeof cleanValue === \"number\") {\n cleanValue = cleanValue.toString();\n }\n if (cleanValue.indexOf(\",\") >= 0) {\n cleanValue = cleanValue.split(\",\")[0];\n }\n if (cleanValue.indexOf(\":\") >= 0) {\n cleanValue = cleanValue.split(\":\")[0];\n }\n if (cleanValue.indexOf(\"#\") >= 0) {\n cleanValue = cleanValue.split(\"#\")[1];\n }\n return cleanValue;\n };\n const headerKey = findKey(output.headers, \"x-amzn-errortype\");\n if (headerKey !== undefined) {\n return sanitizeErrorCode(output.headers[headerKey]);\n }\n if (data.code !== undefined) {\n return sanitizeErrorCode(data.code);\n }\n if (data[\"__type\"] !== undefined) {\n return sanitizeErrorCode(data[\"__type\"]);\n }\n};\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CancelRotateSecretCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_json1_1_1 = require(\"../protocols/Aws_json1_1\");\nclass CancelRotateSecretCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, CancelRotateSecretCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"SecretsManagerClient\";\n const commandName = \"CancelRotateSecretCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.CancelRotateSecretRequestFilterSensitiveLog,\n outputFilterSensitiveLog: models_0_1.CancelRotateSecretResponseFilterSensitiveLog,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_json1_1_1.serializeAws_json1_1CancelRotateSecretCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_json1_1_1.deserializeAws_json1_1CancelRotateSecretCommand)(output, context);\n }\n}\nexports.CancelRotateSecretCommand = CancelRotateSecretCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CreateSecretCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_json1_1_1 = require(\"../protocols/Aws_json1_1\");\nclass CreateSecretCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, CreateSecretCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"SecretsManagerClient\";\n const commandName = \"CreateSecretCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.CreateSecretRequestFilterSensitiveLog,\n outputFilterSensitiveLog: models_0_1.CreateSecretResponseFilterSensitiveLog,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_json1_1_1.serializeAws_json1_1CreateSecretCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_json1_1_1.deserializeAws_json1_1CreateSecretCommand)(output, context);\n }\n}\nexports.CreateSecretCommand = CreateSecretCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DeleteResourcePolicyCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_json1_1_1 = require(\"../protocols/Aws_json1_1\");\nclass DeleteResourcePolicyCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, DeleteResourcePolicyCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"SecretsManagerClient\";\n const commandName = \"DeleteResourcePolicyCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.DeleteResourcePolicyRequestFilterSensitiveLog,\n outputFilterSensitiveLog: models_0_1.DeleteResourcePolicyResponseFilterSensitiveLog,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_json1_1_1.serializeAws_json1_1DeleteResourcePolicyCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_json1_1_1.deserializeAws_json1_1DeleteResourcePolicyCommand)(output, context);\n }\n}\nexports.DeleteResourcePolicyCommand = DeleteResourcePolicyCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DeleteSecretCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_json1_1_1 = require(\"../protocols/Aws_json1_1\");\nclass DeleteSecretCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, DeleteSecretCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"SecretsManagerClient\";\n const commandName = \"DeleteSecretCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.DeleteSecretRequestFilterSensitiveLog,\n outputFilterSensitiveLog: models_0_1.DeleteSecretResponseFilterSensitiveLog,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_json1_1_1.serializeAws_json1_1DeleteSecretCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_json1_1_1.deserializeAws_json1_1DeleteSecretCommand)(output, context);\n }\n}\nexports.DeleteSecretCommand = DeleteSecretCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DescribeSecretCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_json1_1_1 = require(\"../protocols/Aws_json1_1\");\nclass DescribeSecretCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, DescribeSecretCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"SecretsManagerClient\";\n const commandName = \"DescribeSecretCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.DescribeSecretRequestFilterSensitiveLog,\n outputFilterSensitiveLog: models_0_1.DescribeSecretResponseFilterSensitiveLog,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_json1_1_1.serializeAws_json1_1DescribeSecretCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_json1_1_1.deserializeAws_json1_1DescribeSecretCommand)(output, context);\n }\n}\nexports.DescribeSecretCommand = DescribeSecretCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.GetRandomPasswordCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_json1_1_1 = require(\"../protocols/Aws_json1_1\");\nclass GetRandomPasswordCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, GetRandomPasswordCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"SecretsManagerClient\";\n const commandName = \"GetRandomPasswordCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.GetRandomPasswordRequestFilterSensitiveLog,\n outputFilterSensitiveLog: models_0_1.GetRandomPasswordResponseFilterSensitiveLog,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_json1_1_1.serializeAws_json1_1GetRandomPasswordCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_json1_1_1.deserializeAws_json1_1GetRandomPasswordCommand)(output, context);\n }\n}\nexports.GetRandomPasswordCommand = GetRandomPasswordCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.GetResourcePolicyCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_json1_1_1 = require(\"../protocols/Aws_json1_1\");\nclass GetResourcePolicyCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, GetResourcePolicyCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"SecretsManagerClient\";\n const commandName = \"GetResourcePolicyCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.GetResourcePolicyRequestFilterSensitiveLog,\n outputFilterSensitiveLog: models_0_1.GetResourcePolicyResponseFilterSensitiveLog,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_json1_1_1.serializeAws_json1_1GetResourcePolicyCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_json1_1_1.deserializeAws_json1_1GetResourcePolicyCommand)(output, context);\n }\n}\nexports.GetResourcePolicyCommand = GetResourcePolicyCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.GetSecretValueCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_json1_1_1 = require(\"../protocols/Aws_json1_1\");\nclass GetSecretValueCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, GetSecretValueCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"SecretsManagerClient\";\n const commandName = \"GetSecretValueCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.GetSecretValueRequestFilterSensitiveLog,\n outputFilterSensitiveLog: models_0_1.GetSecretValueResponseFilterSensitiveLog,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_json1_1_1.serializeAws_json1_1GetSecretValueCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_json1_1_1.deserializeAws_json1_1GetSecretValueCommand)(output, context);\n }\n}\nexports.GetSecretValueCommand = GetSecretValueCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ListSecretsCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_json1_1_1 = require(\"../protocols/Aws_json1_1\");\nclass ListSecretsCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, ListSecretsCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"SecretsManagerClient\";\n const commandName = \"ListSecretsCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.ListSecretsRequestFilterSensitiveLog,\n outputFilterSensitiveLog: models_0_1.ListSecretsResponseFilterSensitiveLog,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_json1_1_1.serializeAws_json1_1ListSecretsCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_json1_1_1.deserializeAws_json1_1ListSecretsCommand)(output, context);\n }\n}\nexports.ListSecretsCommand = ListSecretsCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ListSecretVersionIdsCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_json1_1_1 = require(\"../protocols/Aws_json1_1\");\nclass ListSecretVersionIdsCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, ListSecretVersionIdsCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"SecretsManagerClient\";\n const commandName = \"ListSecretVersionIdsCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.ListSecretVersionIdsRequestFilterSensitiveLog,\n outputFilterSensitiveLog: models_0_1.ListSecretVersionIdsResponseFilterSensitiveLog,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_json1_1_1.serializeAws_json1_1ListSecretVersionIdsCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_json1_1_1.deserializeAws_json1_1ListSecretVersionIdsCommand)(output, context);\n }\n}\nexports.ListSecretVersionIdsCommand = ListSecretVersionIdsCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PutResourcePolicyCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_json1_1_1 = require(\"../protocols/Aws_json1_1\");\nclass PutResourcePolicyCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, PutResourcePolicyCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"SecretsManagerClient\";\n const commandName = \"PutResourcePolicyCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.PutResourcePolicyRequestFilterSensitiveLog,\n outputFilterSensitiveLog: models_0_1.PutResourcePolicyResponseFilterSensitiveLog,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_json1_1_1.serializeAws_json1_1PutResourcePolicyCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_json1_1_1.deserializeAws_json1_1PutResourcePolicyCommand)(output, context);\n }\n}\nexports.PutResourcePolicyCommand = PutResourcePolicyCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PutSecretValueCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_json1_1_1 = require(\"../protocols/Aws_json1_1\");\nclass PutSecretValueCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, PutSecretValueCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"SecretsManagerClient\";\n const commandName = \"PutSecretValueCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.PutSecretValueRequestFilterSensitiveLog,\n outputFilterSensitiveLog: models_0_1.PutSecretValueResponseFilterSensitiveLog,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_json1_1_1.serializeAws_json1_1PutSecretValueCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_json1_1_1.deserializeAws_json1_1PutSecretValueCommand)(output, context);\n }\n}\nexports.PutSecretValueCommand = PutSecretValueCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.RemoveRegionsFromReplicationCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_json1_1_1 = require(\"../protocols/Aws_json1_1\");\nclass RemoveRegionsFromReplicationCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, RemoveRegionsFromReplicationCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"SecretsManagerClient\";\n const commandName = \"RemoveRegionsFromReplicationCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.RemoveRegionsFromReplicationRequestFilterSensitiveLog,\n outputFilterSensitiveLog: models_0_1.RemoveRegionsFromReplicationResponseFilterSensitiveLog,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_json1_1_1.serializeAws_json1_1RemoveRegionsFromReplicationCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_json1_1_1.deserializeAws_json1_1RemoveRegionsFromReplicationCommand)(output, context);\n }\n}\nexports.RemoveRegionsFromReplicationCommand = RemoveRegionsFromReplicationCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ReplicateSecretToRegionsCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_json1_1_1 = require(\"../protocols/Aws_json1_1\");\nclass ReplicateSecretToRegionsCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, ReplicateSecretToRegionsCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"SecretsManagerClient\";\n const commandName = \"ReplicateSecretToRegionsCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.ReplicateSecretToRegionsRequestFilterSensitiveLog,\n outputFilterSensitiveLog: models_0_1.ReplicateSecretToRegionsResponseFilterSensitiveLog,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_json1_1_1.serializeAws_json1_1ReplicateSecretToRegionsCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_json1_1_1.deserializeAws_json1_1ReplicateSecretToRegionsCommand)(output, context);\n }\n}\nexports.ReplicateSecretToRegionsCommand = ReplicateSecretToRegionsCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.RestoreSecretCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_json1_1_1 = require(\"../protocols/Aws_json1_1\");\nclass RestoreSecretCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, RestoreSecretCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"SecretsManagerClient\";\n const commandName = \"RestoreSecretCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.RestoreSecretRequestFilterSensitiveLog,\n outputFilterSensitiveLog: models_0_1.RestoreSecretResponseFilterSensitiveLog,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_json1_1_1.serializeAws_json1_1RestoreSecretCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_json1_1_1.deserializeAws_json1_1RestoreSecretCommand)(output, context);\n }\n}\nexports.RestoreSecretCommand = RestoreSecretCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.RotateSecretCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_json1_1_1 = require(\"../protocols/Aws_json1_1\");\nclass RotateSecretCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, RotateSecretCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"SecretsManagerClient\";\n const commandName = \"RotateSecretCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.RotateSecretRequestFilterSensitiveLog,\n outputFilterSensitiveLog: models_0_1.RotateSecretResponseFilterSensitiveLog,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_json1_1_1.serializeAws_json1_1RotateSecretCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_json1_1_1.deserializeAws_json1_1RotateSecretCommand)(output, context);\n }\n}\nexports.RotateSecretCommand = RotateSecretCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StopReplicationToReplicaCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_json1_1_1 = require(\"../protocols/Aws_json1_1\");\nclass StopReplicationToReplicaCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, StopReplicationToReplicaCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"SecretsManagerClient\";\n const commandName = \"StopReplicationToReplicaCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.StopReplicationToReplicaRequestFilterSensitiveLog,\n outputFilterSensitiveLog: models_0_1.StopReplicationToReplicaResponseFilterSensitiveLog,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_json1_1_1.serializeAws_json1_1StopReplicationToReplicaCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_json1_1_1.deserializeAws_json1_1StopReplicationToReplicaCommand)(output, context);\n }\n}\nexports.StopReplicationToReplicaCommand = StopReplicationToReplicaCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TagResourceCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_json1_1_1 = require(\"../protocols/Aws_json1_1\");\nclass TagResourceCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, TagResourceCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"SecretsManagerClient\";\n const commandName = \"TagResourceCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.TagResourceRequestFilterSensitiveLog,\n outputFilterSensitiveLog: (output) => output,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_json1_1_1.serializeAws_json1_1TagResourceCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_json1_1_1.deserializeAws_json1_1TagResourceCommand)(output, context);\n }\n}\nexports.TagResourceCommand = TagResourceCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.UntagResourceCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_json1_1_1 = require(\"../protocols/Aws_json1_1\");\nclass UntagResourceCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, UntagResourceCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"SecretsManagerClient\";\n const commandName = \"UntagResourceCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.UntagResourceRequestFilterSensitiveLog,\n outputFilterSensitiveLog: (output) => output,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_json1_1_1.serializeAws_json1_1UntagResourceCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_json1_1_1.deserializeAws_json1_1UntagResourceCommand)(output, context);\n }\n}\nexports.UntagResourceCommand = UntagResourceCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.UpdateSecretCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_json1_1_1 = require(\"../protocols/Aws_json1_1\");\nclass UpdateSecretCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, UpdateSecretCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"SecretsManagerClient\";\n const commandName = \"UpdateSecretCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.UpdateSecretRequestFilterSensitiveLog,\n outputFilterSensitiveLog: models_0_1.UpdateSecretResponseFilterSensitiveLog,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_json1_1_1.serializeAws_json1_1UpdateSecretCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_json1_1_1.deserializeAws_json1_1UpdateSecretCommand)(output, context);\n }\n}\nexports.UpdateSecretCommand = UpdateSecretCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.UpdateSecretVersionStageCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_json1_1_1 = require(\"../protocols/Aws_json1_1\");\nclass UpdateSecretVersionStageCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, UpdateSecretVersionStageCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"SecretsManagerClient\";\n const commandName = \"UpdateSecretVersionStageCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.UpdateSecretVersionStageRequestFilterSensitiveLog,\n outputFilterSensitiveLog: models_0_1.UpdateSecretVersionStageResponseFilterSensitiveLog,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_json1_1_1.serializeAws_json1_1UpdateSecretVersionStageCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_json1_1_1.deserializeAws_json1_1UpdateSecretVersionStageCommand)(output, context);\n }\n}\nexports.UpdateSecretVersionStageCommand = UpdateSecretVersionStageCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ValidateResourcePolicyCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_json1_1_1 = require(\"../protocols/Aws_json1_1\");\nclass ValidateResourcePolicyCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, ValidateResourcePolicyCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"SecretsManagerClient\";\n const commandName = \"ValidateResourcePolicyCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.ValidateResourcePolicyRequestFilterSensitiveLog,\n outputFilterSensitiveLog: models_0_1.ValidateResourcePolicyResponseFilterSensitiveLog,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_json1_1_1.serializeAws_json1_1ValidateResourcePolicyCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_json1_1_1.deserializeAws_json1_1ValidateResourcePolicyCommand)(output, context);\n }\n}\nexports.ValidateResourcePolicyCommand = ValidateResourcePolicyCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.resolveClientEndpointParameters = void 0;\nconst resolveClientEndpointParameters = (options) => {\n return {\n ...options,\n useDualstackEndpoint: options.useDualstackEndpoint ?? false,\n useFipsEndpoint: options.useFipsEndpoint ?? false,\n defaultSigningName: \"secretsmanager\",\n };\n};\nexports.resolveClientEndpointParameters = resolveClientEndpointParameters;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ruleSet = void 0;\nconst q = \"fn\", r = \"argv\", s = \"ref\";\nconst a = true, b = false, c = \"String\", d = \"PartitionResult\", e = \"tree\", f = \"error\", g = \"endpoint\", h = { \"required\": true, \"default\": false, \"type\": \"Boolean\" }, i = { [s]: \"Endpoint\" }, j = { [q]: \"booleanEquals\", [r]: [{ [s]: \"UseFIPS\" }, true] }, k = { [q]: \"booleanEquals\", [r]: [{ [s]: \"UseDualStack\" }, true] }, l = {}, m = { [q]: \"booleanEquals\", [r]: [true, { [q]: \"getAttr\", [r]: [{ [s]: d }, \"supportsFIPS\"] }] }, n = { [q]: \"booleanEquals\", [r]: [true, { [q]: \"getAttr\", [r]: [{ [s]: d }, \"supportsDualStack\"] }] }, o = [j], p = [k];\nconst _data = { version: \"1.0\", parameters: { Region: { required: a, type: c }, UseDualStack: h, UseFIPS: h, Endpoint: { required: b, type: c } }, rules: [{ conditions: [{ [q]: \"aws.partition\", [r]: [{ [s]: \"Region\" }], assign: d }], type: e, rules: [{ conditions: [{ [q]: \"isSet\", [r]: [i] }], type: e, rules: [{ conditions: o, error: \"Invalid Configuration: FIPS and custom endpoint are not supported\", type: f }, { type: e, rules: [{ conditions: p, error: \"Invalid Configuration: Dualstack and custom endpoint are not supported\", type: f }, { endpoint: { url: i, properties: l, headers: l }, type: g }] }] }, { conditions: [j, k], type: e, rules: [{ conditions: [m, n], type: e, rules: [{ endpoint: { url: \"https://secretsmanager-fips.{Region}.{PartitionResult#dualStackDnsSuffix}\", properties: l, headers: l }, type: g }] }, { error: \"FIPS and DualStack are enabled, but this partition does not support one or both\", type: f }] }, { conditions: o, type: e, rules: [{ conditions: [m], type: e, rules: [{ type: e, rules: [{ endpoint: { url: \"https://secretsmanager-fips.{Region}.{PartitionResult#dnsSuffix}\", properties: l, headers: l }, type: g }] }] }, { error: \"FIPS is enabled but this partition does not support FIPS\", type: f }] }, { conditions: p, type: e, rules: [{ conditions: [n], type: e, rules: [{ endpoint: { url: \"https://secretsmanager.{Region}.{PartitionResult#dualStackDnsSuffix}\", properties: l, headers: l }, type: g }] }, { error: \"DualStack is enabled but this partition does not support DualStack\", type: f }] }, { endpoint: { url: \"https://secretsmanager.{Region}.{PartitionResult#dnsSuffix}\", properties: l, headers: l }, type: g }] }] };\nexports.ruleSet = _data;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.defaultEndpointResolver = void 0;\nconst util_endpoints_1 = require(\"@aws-sdk/util-endpoints\");\nconst ruleset_1 = require(\"./ruleset\");\nconst defaultEndpointResolver = (endpointParams, context = {}) => {\n return (0, util_endpoints_1.resolveEndpoint)(ruleset_1.ruleSet, {\n endpointParams: endpointParams,\n logger: context.logger,\n });\n};\nexports.defaultEndpointResolver = defaultEndpointResolver;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRuntimeConfig = void 0;\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst url_parser_1 = require(\"@aws-sdk/url-parser\");\nconst util_base64_1 = require(\"@aws-sdk/util-base64\");\nconst util_utf8_1 = require(\"@aws-sdk/util-utf8\");\nconst endpointResolver_1 = require(\"./endpoint/endpointResolver\");\nconst getRuntimeConfig = (config) => ({\n apiVersion: \"2017-10-17\",\n base64Decoder: config?.base64Decoder ?? util_base64_1.fromBase64,\n base64Encoder: config?.base64Encoder ?? util_base64_1.toBase64,\n disableHostPrefix: config?.disableHostPrefix ?? false,\n endpointProvider: config?.endpointProvider ?? endpointResolver_1.defaultEndpointResolver,\n logger: config?.logger ?? new smithy_client_1.NoOpLogger(),\n serviceId: config?.serviceId ?? \"Secrets Manager\",\n urlParser: config?.urlParser ?? url_parser_1.parseUrl,\n utf8Decoder: config?.utf8Decoder ?? util_utf8_1.fromUtf8,\n utf8Encoder: config?.utf8Encoder ?? util_utf8_1.toUtf8,\n});\nexports.getRuntimeConfig = getRuntimeConfig;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRuntimeConfig = void 0;\nconst tslib_1 = require(\"tslib\");\nconst package_json_1 = tslib_1.__importDefault(require(\"../package.json\"));\nconst client_sts_1 = require(\"@aws-sdk/client-sts\");\nconst config_resolver_1 = require(\"@aws-sdk/config-resolver\");\nconst credential_provider_node_1 = require(\"@aws-sdk/credential-provider-node\");\nconst hash_node_1 = require(\"@aws-sdk/hash-node\");\nconst middleware_retry_1 = require(\"@aws-sdk/middleware-retry\");\nconst node_config_provider_1 = require(\"@aws-sdk/node-config-provider\");\nconst node_http_handler_1 = require(\"@aws-sdk/node-http-handler\");\nconst util_body_length_node_1 = require(\"@aws-sdk/util-body-length-node\");\nconst util_retry_1 = require(\"@aws-sdk/util-retry\");\nconst util_user_agent_node_1 = require(\"@aws-sdk/util-user-agent-node\");\nconst runtimeConfig_shared_1 = require(\"./runtimeConfig.shared\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst util_defaults_mode_node_1 = require(\"@aws-sdk/util-defaults-mode-node\");\nconst smithy_client_2 = require(\"@aws-sdk/smithy-client\");\nconst getRuntimeConfig = (config) => {\n (0, smithy_client_2.emitWarningIfUnsupportedVersion)(process.version);\n const defaultsMode = (0, util_defaults_mode_node_1.resolveDefaultsModeConfig)(config);\n const defaultConfigProvider = () => defaultsMode().then(smithy_client_1.loadConfigsForDefaultMode);\n const clientSharedValues = (0, runtimeConfig_shared_1.getRuntimeConfig)(config);\n return {\n ...clientSharedValues,\n ...config,\n runtime: \"node\",\n defaultsMode,\n bodyLengthChecker: config?.bodyLengthChecker ?? util_body_length_node_1.calculateBodyLength,\n credentialDefaultProvider: config?.credentialDefaultProvider ?? (0, client_sts_1.decorateDefaultCredentialProvider)(credential_provider_node_1.defaultProvider),\n defaultUserAgentProvider: config?.defaultUserAgentProvider ??\n (0, util_user_agent_node_1.defaultUserAgent)({ serviceId: clientSharedValues.serviceId, clientVersion: package_json_1.default.version }),\n maxAttempts: config?.maxAttempts ?? (0, node_config_provider_1.loadConfig)(middleware_retry_1.NODE_MAX_ATTEMPT_CONFIG_OPTIONS),\n region: config?.region ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_REGION_CONFIG_OPTIONS, config_resolver_1.NODE_REGION_CONFIG_FILE_OPTIONS),\n requestHandler: config?.requestHandler ?? new node_http_handler_1.NodeHttpHandler(defaultConfigProvider),\n retryMode: config?.retryMode ??\n (0, node_config_provider_1.loadConfig)({\n ...middleware_retry_1.NODE_RETRY_MODE_CONFIG_OPTIONS,\n default: async () => (await defaultConfigProvider()).retryMode || util_retry_1.DEFAULT_RETRY_MODE,\n }),\n sha256: config?.sha256 ?? hash_node_1.Hash.bind(null, \"sha256\"),\n streamCollector: config?.streamCollector ?? node_http_handler_1.streamCollector,\n useDualstackEndpoint: config?.useDualstackEndpoint ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS),\n useFipsEndpoint: config?.useFipsEndpoint ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS),\n };\n};\nexports.getRuntimeConfig = getRuntimeConfig;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SecretsManagerClient = void 0;\nconst config_resolver_1 = require(\"@aws-sdk/config-resolver\");\nconst middleware_content_length_1 = require(\"@aws-sdk/middleware-content-length\");\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_host_header_1 = require(\"@aws-sdk/middleware-host-header\");\nconst middleware_logger_1 = require(\"@aws-sdk/middleware-logger\");\nconst middleware_recursion_detection_1 = require(\"@aws-sdk/middleware-recursion-detection\");\nconst middleware_retry_1 = require(\"@aws-sdk/middleware-retry\");\nconst middleware_signing_1 = require(\"@aws-sdk/middleware-signing\");\nconst middleware_user_agent_1 = require(\"@aws-sdk/middleware-user-agent\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst EndpointParameters_1 = require(\"./endpoint/EndpointParameters\");\nconst runtimeConfig_1 = require(\"./runtimeConfig\");\nclass SecretsManagerClient extends smithy_client_1.Client {\n constructor(configuration) {\n const _config_0 = (0, runtimeConfig_1.getRuntimeConfig)(configuration);\n const _config_1 = (0, EndpointParameters_1.resolveClientEndpointParameters)(_config_0);\n const _config_2 = (0, config_resolver_1.resolveRegionConfig)(_config_1);\n const _config_3 = (0, middleware_endpoint_1.resolveEndpointConfig)(_config_2);\n const _config_4 = (0, middleware_retry_1.resolveRetryConfig)(_config_3);\n const _config_5 = (0, middleware_host_header_1.resolveHostHeaderConfig)(_config_4);\n const _config_6 = (0, middleware_signing_1.resolveAwsAuthConfig)(_config_5);\n const _config_7 = (0, middleware_user_agent_1.resolveUserAgentConfig)(_config_6);\n super(_config_7);\n this.config = _config_7;\n this.middlewareStack.use((0, middleware_retry_1.getRetryPlugin)(this.config));\n this.middlewareStack.use((0, middleware_content_length_1.getContentLengthPlugin)(this.config));\n this.middlewareStack.use((0, middleware_host_header_1.getHostHeaderPlugin)(this.config));\n this.middlewareStack.use((0, middleware_logger_1.getLoggerPlugin)(this.config));\n this.middlewareStack.use((0, middleware_recursion_detection_1.getRecursionDetectionPlugin)(this.config));\n this.middlewareStack.use((0, middleware_signing_1.getAwsAuthPlugin)(this.config));\n this.middlewareStack.use((0, middleware_user_agent_1.getUserAgentPlugin)(this.config));\n }\n destroy() {\n super.destroy();\n }\n}\nexports.SecretsManagerClient = SecretsManagerClient;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SecretsManager = void 0;\nconst CancelRotateSecretCommand_1 = require(\"./commands/CancelRotateSecretCommand\");\nconst CreateSecretCommand_1 = require(\"./commands/CreateSecretCommand\");\nconst DeleteResourcePolicyCommand_1 = require(\"./commands/DeleteResourcePolicyCommand\");\nconst DeleteSecretCommand_1 = require(\"./commands/DeleteSecretCommand\");\nconst DescribeSecretCommand_1 = require(\"./commands/DescribeSecretCommand\");\nconst GetRandomPasswordCommand_1 = require(\"./commands/GetRandomPasswordCommand\");\nconst GetResourcePolicyCommand_1 = require(\"./commands/GetResourcePolicyCommand\");\nconst GetSecretValueCommand_1 = require(\"./commands/GetSecretValueCommand\");\nconst ListSecretsCommand_1 = require(\"./commands/ListSecretsCommand\");\nconst ListSecretVersionIdsCommand_1 = require(\"./commands/ListSecretVersionIdsCommand\");\nconst PutResourcePolicyCommand_1 = require(\"./commands/PutResourcePolicyCommand\");\nconst PutSecretValueCommand_1 = require(\"./commands/PutSecretValueCommand\");\nconst RemoveRegionsFromReplicationCommand_1 = require(\"./commands/RemoveRegionsFromReplicationCommand\");\nconst ReplicateSecretToRegionsCommand_1 = require(\"./commands/ReplicateSecretToRegionsCommand\");\nconst RestoreSecretCommand_1 = require(\"./commands/RestoreSecretCommand\");\nconst RotateSecretCommand_1 = require(\"./commands/RotateSecretCommand\");\nconst StopReplicationToReplicaCommand_1 = require(\"./commands/StopReplicationToReplicaCommand\");\nconst TagResourceCommand_1 = require(\"./commands/TagResourceCommand\");\nconst UntagResourceCommand_1 = require(\"./commands/UntagResourceCommand\");\nconst UpdateSecretCommand_1 = require(\"./commands/UpdateSecretCommand\");\nconst UpdateSecretVersionStageCommand_1 = require(\"./commands/UpdateSecretVersionStageCommand\");\nconst ValidateResourcePolicyCommand_1 = require(\"./commands/ValidateResourcePolicyCommand\");\nconst SecretsManagerClient_1 = require(\"./SecretsManagerClient\");\nclass SecretsManager extends SecretsManagerClient_1.SecretsManagerClient {\n cancelRotateSecret(args, optionsOrCb, cb) {\n const command = new CancelRotateSecretCommand_1.CancelRotateSecretCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n createSecret(args, optionsOrCb, cb) {\n const command = new CreateSecretCommand_1.CreateSecretCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n deleteResourcePolicy(args, optionsOrCb, cb) {\n const command = new DeleteResourcePolicyCommand_1.DeleteResourcePolicyCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n deleteSecret(args, optionsOrCb, cb) {\n const command = new DeleteSecretCommand_1.DeleteSecretCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n describeSecret(args, optionsOrCb, cb) {\n const command = new DescribeSecretCommand_1.DescribeSecretCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n getRandomPassword(args, optionsOrCb, cb) {\n const command = new GetRandomPasswordCommand_1.GetRandomPasswordCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n getResourcePolicy(args, optionsOrCb, cb) {\n const command = new GetResourcePolicyCommand_1.GetResourcePolicyCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n getSecretValue(args, optionsOrCb, cb) {\n const command = new GetSecretValueCommand_1.GetSecretValueCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n listSecrets(args, optionsOrCb, cb) {\n const command = new ListSecretsCommand_1.ListSecretsCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n listSecretVersionIds(args, optionsOrCb, cb) {\n const command = new ListSecretVersionIdsCommand_1.ListSecretVersionIdsCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n putResourcePolicy(args, optionsOrCb, cb) {\n const command = new PutResourcePolicyCommand_1.PutResourcePolicyCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n putSecretValue(args, optionsOrCb, cb) {\n const command = new PutSecretValueCommand_1.PutSecretValueCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n removeRegionsFromReplication(args, optionsOrCb, cb) {\n const command = new RemoveRegionsFromReplicationCommand_1.RemoveRegionsFromReplicationCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n replicateSecretToRegions(args, optionsOrCb, cb) {\n const command = new ReplicateSecretToRegionsCommand_1.ReplicateSecretToRegionsCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n restoreSecret(args, optionsOrCb, cb) {\n const command = new RestoreSecretCommand_1.RestoreSecretCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n rotateSecret(args, optionsOrCb, cb) {\n const command = new RotateSecretCommand_1.RotateSecretCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n stopReplicationToReplica(args, optionsOrCb, cb) {\n const command = new StopReplicationToReplicaCommand_1.StopReplicationToReplicaCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n tagResource(args, optionsOrCb, cb) {\n const command = new TagResourceCommand_1.TagResourceCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n untagResource(args, optionsOrCb, cb) {\n const command = new UntagResourceCommand_1.UntagResourceCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n updateSecret(args, optionsOrCb, cb) {\n const command = new UpdateSecretCommand_1.UpdateSecretCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n updateSecretVersionStage(args, optionsOrCb, cb) {\n const command = new UpdateSecretVersionStageCommand_1.UpdateSecretVersionStageCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n validateResourcePolicy(args, optionsOrCb, cb) {\n const command = new ValidateResourcePolicyCommand_1.ValidateResourcePolicyCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n}\nexports.SecretsManager = SecretsManager;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./CancelRotateSecretCommand\"), exports);\ntslib_1.__exportStar(require(\"./CreateSecretCommand\"), exports);\ntslib_1.__exportStar(require(\"./DeleteResourcePolicyCommand\"), exports);\ntslib_1.__exportStar(require(\"./DeleteSecretCommand\"), exports);\ntslib_1.__exportStar(require(\"./DescribeSecretCommand\"), exports);\ntslib_1.__exportStar(require(\"./GetRandomPasswordCommand\"), exports);\ntslib_1.__exportStar(require(\"./GetResourcePolicyCommand\"), exports);\ntslib_1.__exportStar(require(\"./GetSecretValueCommand\"), exports);\ntslib_1.__exportStar(require(\"./ListSecretVersionIdsCommand\"), exports);\ntslib_1.__exportStar(require(\"./ListSecretsCommand\"), exports);\ntslib_1.__exportStar(require(\"./PutResourcePolicyCommand\"), exports);\ntslib_1.__exportStar(require(\"./PutSecretValueCommand\"), exports);\ntslib_1.__exportStar(require(\"./RemoveRegionsFromReplicationCommand\"), exports);\ntslib_1.__exportStar(require(\"./ReplicateSecretToRegionsCommand\"), exports);\ntslib_1.__exportStar(require(\"./RestoreSecretCommand\"), exports);\ntslib_1.__exportStar(require(\"./RotateSecretCommand\"), exports);\ntslib_1.__exportStar(require(\"./StopReplicationToReplicaCommand\"), exports);\ntslib_1.__exportStar(require(\"./TagResourceCommand\"), exports);\ntslib_1.__exportStar(require(\"./UntagResourceCommand\"), exports);\ntslib_1.__exportStar(require(\"./UpdateSecretCommand\"), exports);\ntslib_1.__exportStar(require(\"./UpdateSecretVersionStageCommand\"), exports);\ntslib_1.__exportStar(require(\"./ValidateResourcePolicyCommand\"), exports);\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./models_0\"), exports);\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.paginateListSecretVersionIds = void 0;\nconst ListSecretVersionIdsCommand_1 = require(\"../commands/ListSecretVersionIdsCommand\");\nconst SecretsManager_1 = require(\"../SecretsManager\");\nconst SecretsManagerClient_1 = require(\"../SecretsManagerClient\");\nconst makePagedClientRequest = async (client, input, ...args) => {\n return await client.send(new ListSecretVersionIdsCommand_1.ListSecretVersionIdsCommand(input), ...args);\n};\nconst makePagedRequest = async (client, input, ...args) => {\n return await client.listSecretVersionIds(input, ...args);\n};\nasync function* paginateListSecretVersionIds(config, input, ...additionalArguments) {\n let token = config.startingToken || undefined;\n let hasNext = true;\n let page;\n while (hasNext) {\n input.NextToken = token;\n input[\"MaxResults\"] = config.pageSize;\n if (config.client instanceof SecretsManager_1.SecretsManager) {\n page = await makePagedRequest(config.client, input, ...additionalArguments);\n }\n else if (config.client instanceof SecretsManagerClient_1.SecretsManagerClient) {\n page = await makePagedClientRequest(config.client, input, ...additionalArguments);\n }\n else {\n throw new Error(\"Invalid client, expected SecretsManager | SecretsManagerClient\");\n }\n yield page;\n const prevToken = token;\n token = page.NextToken;\n hasNext = !!(token && (!config.stopOnSameToken || token !== prevToken));\n }\n return undefined;\n}\nexports.paginateListSecretVersionIds = paginateListSecretVersionIds;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.paginateListSecrets = void 0;\nconst ListSecretsCommand_1 = require(\"../commands/ListSecretsCommand\");\nconst SecretsManager_1 = require(\"../SecretsManager\");\nconst SecretsManagerClient_1 = require(\"../SecretsManagerClient\");\nconst makePagedClientRequest = async (client, input, ...args) => {\n return await client.send(new ListSecretsCommand_1.ListSecretsCommand(input), ...args);\n};\nconst makePagedRequest = async (client, input, ...args) => {\n return await client.listSecrets(input, ...args);\n};\nasync function* paginateListSecrets(config, input, ...additionalArguments) {\n let token = config.startingToken || undefined;\n let hasNext = true;\n let page;\n while (hasNext) {\n input.NextToken = token;\n input[\"MaxResults\"] = config.pageSize;\n if (config.client instanceof SecretsManager_1.SecretsManager) {\n page = await makePagedRequest(config.client, input, ...additionalArguments);\n }\n else if (config.client instanceof SecretsManagerClient_1.SecretsManagerClient) {\n page = await makePagedClientRequest(config.client, input, ...additionalArguments);\n }\n else {\n throw new Error(\"Invalid client, expected SecretsManager | SecretsManagerClient\");\n }\n yield page;\n const prevToken = token;\n token = page.NextToken;\n hasNext = !!(token && (!config.stopOnSameToken || token !== prevToken));\n }\n return undefined;\n}\nexports.paginateListSecrets = paginateListSecrets;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./Interfaces\"), exports);\ntslib_1.__exportStar(require(\"./ListSecretVersionIdsPaginator\"), exports);\ntslib_1.__exportStar(require(\"./ListSecretsPaginator\"), exports);\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SecretsManagerServiceException = void 0;\nconst tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./SecretsManager\"), exports);\ntslib_1.__exportStar(require(\"./SecretsManagerClient\"), exports);\ntslib_1.__exportStar(require(\"./commands\"), exports);\ntslib_1.__exportStar(require(\"./models\"), exports);\ntslib_1.__exportStar(require(\"./pagination\"), exports);\nvar SecretsManagerServiceException_1 = require(\"./models/SecretsManagerServiceException\");\nObject.defineProperty(exports, \"SecretsManagerServiceException\", { enumerable: true, get: function () { return SecretsManagerServiceException_1.SecretsManagerServiceException; } });\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.S3ServiceException = void 0;\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nclass S3ServiceException extends smithy_client_1.ServiceException {\n constructor(options) {\n super(options);\n Object.setPrototypeOf(this, S3ServiceException.prototype);\n }\n}\nexports.S3ServiceException = S3ServiceException;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ChecksumMode = exports.ReplicationStatus = exports.Protocol = exports.BucketVersioningStatus = exports.MFADeleteStatus = exports.Payer = exports.ReplicationRuleStatus = exports.SseKmsEncryptedObjectsStatus = exports.ReplicaModificationsStatus = exports.ReplicationRuleFilter = exports.ExistingObjectReplicationStatus = exports.ReplicationTimeStatus = exports.MetricsStatus = exports.DeleteMarkerReplicationStatus = exports.FilterRuleName = exports.MetricsFilter = exports.BucketLogsPermission = exports.ExpirationStatus = exports.TransitionStorageClass = exports.LifecycleRuleFilter = exports.InventoryFrequency = exports.InventoryOptionalField = exports.InventoryIncludedObjectVersions = exports.InventoryFormat = exports.IntelligentTieringAccessTier = exports.IntelligentTieringStatus = exports.StorageClassAnalysisSchemaVersion = exports.AnalyticsS3ExportFileFormat = exports.AnalyticsFilter = exports.ObjectOwnership = exports.BucketLocationConstraint = exports.BucketCannedACL = exports.BucketAlreadyOwnedByYou = exports.BucketAlreadyExists = exports.ObjectNotInActiveTierError = exports.TaggingDirective = exports.StorageClass = exports.ObjectLockMode = exports.ObjectLockLegalHoldStatus = exports.MetadataDirective = exports.ChecksumAlgorithm = exports.ObjectCannedACL = exports.ServerSideEncryption = exports.OwnerOverride = exports.Permission = exports.Type = exports.BucketAccelerateStatus = exports.NoSuchUpload = exports.RequestPayer = exports.RequestCharged = void 0;\nexports._ErrorFilterSensitiveLog = exports.DeletedObjectFilterSensitiveLog = exports.DeleteObjectRequestFilterSensitiveLog = exports.DeleteObjectOutputFilterSensitiveLog = exports.DeleteBucketWebsiteRequestFilterSensitiveLog = exports.DeleteBucketTaggingRequestFilterSensitiveLog = exports.DeleteBucketReplicationRequestFilterSensitiveLog = exports.DeleteBucketPolicyRequestFilterSensitiveLog = exports.DeleteBucketOwnershipControlsRequestFilterSensitiveLog = exports.DeleteBucketMetricsConfigurationRequestFilterSensitiveLog = exports.DeleteBucketLifecycleRequestFilterSensitiveLog = exports.DeleteBucketInventoryConfigurationRequestFilterSensitiveLog = exports.DeleteBucketIntelligentTieringConfigurationRequestFilterSensitiveLog = exports.DeleteBucketEncryptionRequestFilterSensitiveLog = exports.DeleteBucketCorsRequestFilterSensitiveLog = exports.DeleteBucketAnalyticsConfigurationRequestFilterSensitiveLog = exports.DeleteBucketRequestFilterSensitiveLog = exports.CreateMultipartUploadRequestFilterSensitiveLog = exports.CreateMultipartUploadOutputFilterSensitiveLog = exports.CreateBucketRequestFilterSensitiveLog = exports.CreateBucketConfigurationFilterSensitiveLog = exports.CreateBucketOutputFilterSensitiveLog = exports.CopyObjectRequestFilterSensitiveLog = exports.CopyObjectOutputFilterSensitiveLog = exports.CopyObjectResultFilterSensitiveLog = exports.CompleteMultipartUploadRequestFilterSensitiveLog = exports.CompletedMultipartUploadFilterSensitiveLog = exports.CompletedPartFilterSensitiveLog = exports.CompleteMultipartUploadOutputFilterSensitiveLog = exports.AccessControlTranslationFilterSensitiveLog = exports.AccessControlPolicyFilterSensitiveLog = exports.OwnerFilterSensitiveLog = exports.GrantFilterSensitiveLog = exports.GranteeFilterSensitiveLog = exports.AccelerateConfigurationFilterSensitiveLog = exports.AbortMultipartUploadRequestFilterSensitiveLog = exports.AbortMultipartUploadOutputFilterSensitiveLog = exports.AbortIncompleteMultipartUploadFilterSensitiveLog = exports.MFADelete = exports.ObjectVersionStorageClass = exports.NoSuchBucket = exports.ObjectStorageClass = exports.EncodingType = exports.ArchiveStatus = exports.NotFound = exports.ObjectLockRetentionMode = exports.ObjectLockEnabled = exports.ObjectAttributes = exports.NoSuchKey = exports.InvalidObjectState = void 0;\nexports.NoncurrentVersionTransitionFilterSensitiveLog = exports.NoncurrentVersionExpirationFilterSensitiveLog = exports.LifecycleRuleFilterFilterSensitiveLog = exports.LifecycleRuleAndOperatorFilterSensitiveLog = exports.LifecycleExpirationFilterSensitiveLog = exports.GetBucketInventoryConfigurationRequestFilterSensitiveLog = exports.GetBucketInventoryConfigurationOutputFilterSensitiveLog = exports.InventoryConfigurationFilterSensitiveLog = exports.InventoryScheduleFilterSensitiveLog = exports.InventoryFilterFilterSensitiveLog = exports.InventoryDestinationFilterSensitiveLog = exports.InventoryS3BucketDestinationFilterSensitiveLog = exports.InventoryEncryptionFilterSensitiveLog = exports.SSES3FilterSensitiveLog = exports.SSEKMSFilterSensitiveLog = exports.GetBucketIntelligentTieringConfigurationRequestFilterSensitiveLog = exports.GetBucketIntelligentTieringConfigurationOutputFilterSensitiveLog = exports.IntelligentTieringConfigurationFilterSensitiveLog = exports.TieringFilterSensitiveLog = exports.IntelligentTieringFilterFilterSensitiveLog = exports.IntelligentTieringAndOperatorFilterSensitiveLog = exports.GetBucketEncryptionRequestFilterSensitiveLog = exports.GetBucketEncryptionOutputFilterSensitiveLog = exports.ServerSideEncryptionConfigurationFilterSensitiveLog = exports.ServerSideEncryptionRuleFilterSensitiveLog = exports.ServerSideEncryptionByDefaultFilterSensitiveLog = exports.GetBucketCorsRequestFilterSensitiveLog = exports.GetBucketCorsOutputFilterSensitiveLog = exports.CORSRuleFilterSensitiveLog = exports.GetBucketAnalyticsConfigurationRequestFilterSensitiveLog = exports.GetBucketAnalyticsConfigurationOutputFilterSensitiveLog = exports.AnalyticsConfigurationFilterSensitiveLog = exports.StorageClassAnalysisFilterSensitiveLog = exports.StorageClassAnalysisDataExportFilterSensitiveLog = exports.AnalyticsExportDestinationFilterSensitiveLog = exports.AnalyticsS3BucketDestinationFilterSensitiveLog = exports.AnalyticsFilterFilterSensitiveLog = exports.AnalyticsAndOperatorFilterSensitiveLog = exports.TagFilterSensitiveLog = exports.GetBucketAclRequestFilterSensitiveLog = exports.GetBucketAclOutputFilterSensitiveLog = exports.GetBucketAccelerateConfigurationRequestFilterSensitiveLog = exports.GetBucketAccelerateConfigurationOutputFilterSensitiveLog = exports.DeletePublicAccessBlockRequestFilterSensitiveLog = exports.DeleteObjectTaggingRequestFilterSensitiveLog = exports.DeleteObjectTaggingOutputFilterSensitiveLog = exports.DeleteObjectsRequestFilterSensitiveLog = exports.DeleteFilterSensitiveLog = exports.ObjectIdentifierFilterSensitiveLog = exports.DeleteObjectsOutputFilterSensitiveLog = void 0;\nexports.GetBucketRequestPaymentOutputFilterSensitiveLog = exports.GetBucketReplicationRequestFilterSensitiveLog = exports.GetBucketReplicationOutputFilterSensitiveLog = exports.ReplicationConfigurationFilterSensitiveLog = exports.ReplicationRuleFilterSensitiveLog = exports.SourceSelectionCriteriaFilterSensitiveLog = exports.SseKmsEncryptedObjectsFilterSensitiveLog = exports.ReplicaModificationsFilterSensitiveLog = exports.ReplicationRuleFilterFilterSensitiveLog = exports.ReplicationRuleAndOperatorFilterSensitiveLog = exports.ExistingObjectReplicationFilterSensitiveLog = exports.DestinationFilterSensitiveLog = exports.ReplicationTimeFilterSensitiveLog = exports.MetricsFilterSensitiveLog = exports.ReplicationTimeValueFilterSensitiveLog = exports.EncryptionConfigurationFilterSensitiveLog = exports.DeleteMarkerReplicationFilterSensitiveLog = exports.GetBucketPolicyStatusRequestFilterSensitiveLog = exports.GetBucketPolicyStatusOutputFilterSensitiveLog = exports.PolicyStatusFilterSensitiveLog = exports.GetBucketPolicyRequestFilterSensitiveLog = exports.GetBucketPolicyOutputFilterSensitiveLog = exports.GetBucketOwnershipControlsRequestFilterSensitiveLog = exports.GetBucketOwnershipControlsOutputFilterSensitiveLog = exports.OwnershipControlsFilterSensitiveLog = exports.OwnershipControlsRuleFilterSensitiveLog = exports.NotificationConfigurationFilterSensitiveLog = exports.TopicConfigurationFilterSensitiveLog = exports.QueueConfigurationFilterSensitiveLog = exports.LambdaFunctionConfigurationFilterSensitiveLog = exports.NotificationConfigurationFilterFilterSensitiveLog = exports.S3KeyFilterFilterSensitiveLog = exports.FilterRuleFilterSensitiveLog = exports.EventBridgeConfigurationFilterSensitiveLog = exports.GetBucketNotificationConfigurationRequestFilterSensitiveLog = exports.GetBucketMetricsConfigurationRequestFilterSensitiveLog = exports.GetBucketMetricsConfigurationOutputFilterSensitiveLog = exports.MetricsConfigurationFilterSensitiveLog = exports.MetricsFilterFilterSensitiveLog = exports.MetricsAndOperatorFilterSensitiveLog = exports.GetBucketLoggingRequestFilterSensitiveLog = exports.GetBucketLoggingOutputFilterSensitiveLog = exports.LoggingEnabledFilterSensitiveLog = exports.TargetGrantFilterSensitiveLog = exports.GetBucketLocationRequestFilterSensitiveLog = exports.GetBucketLocationOutputFilterSensitiveLog = exports.GetBucketLifecycleConfigurationRequestFilterSensitiveLog = exports.GetBucketLifecycleConfigurationOutputFilterSensitiveLog = exports.LifecycleRuleFilterSensitiveLog = exports.TransitionFilterSensitiveLog = void 0;\nexports.ListBucketMetricsConfigurationsOutputFilterSensitiveLog = exports.ListBucketInventoryConfigurationsRequestFilterSensitiveLog = exports.ListBucketInventoryConfigurationsOutputFilterSensitiveLog = exports.ListBucketIntelligentTieringConfigurationsRequestFilterSensitiveLog = exports.ListBucketIntelligentTieringConfigurationsOutputFilterSensitiveLog = exports.ListBucketAnalyticsConfigurationsRequestFilterSensitiveLog = exports.ListBucketAnalyticsConfigurationsOutputFilterSensitiveLog = exports.HeadObjectRequestFilterSensitiveLog = exports.HeadObjectOutputFilterSensitiveLog = exports.HeadBucketRequestFilterSensitiveLog = exports.GetPublicAccessBlockRequestFilterSensitiveLog = exports.GetPublicAccessBlockOutputFilterSensitiveLog = exports.PublicAccessBlockConfigurationFilterSensitiveLog = exports.GetObjectTorrentRequestFilterSensitiveLog = exports.GetObjectTorrentOutputFilterSensitiveLog = exports.GetObjectTaggingRequestFilterSensitiveLog = exports.GetObjectTaggingOutputFilterSensitiveLog = exports.GetObjectRetentionRequestFilterSensitiveLog = exports.GetObjectRetentionOutputFilterSensitiveLog = exports.ObjectLockRetentionFilterSensitiveLog = exports.GetObjectLockConfigurationRequestFilterSensitiveLog = exports.GetObjectLockConfigurationOutputFilterSensitiveLog = exports.ObjectLockConfigurationFilterSensitiveLog = exports.ObjectLockRuleFilterSensitiveLog = exports.DefaultRetentionFilterSensitiveLog = exports.GetObjectLegalHoldRequestFilterSensitiveLog = exports.GetObjectLegalHoldOutputFilterSensitiveLog = exports.ObjectLockLegalHoldFilterSensitiveLog = exports.GetObjectAttributesRequestFilterSensitiveLog = exports.GetObjectAttributesOutputFilterSensitiveLog = exports.GetObjectAttributesPartsFilterSensitiveLog = exports.ObjectPartFilterSensitiveLog = exports.ChecksumFilterSensitiveLog = exports.GetObjectAclRequestFilterSensitiveLog = exports.GetObjectAclOutputFilterSensitiveLog = exports.GetObjectRequestFilterSensitiveLog = exports.GetObjectOutputFilterSensitiveLog = exports.GetBucketWebsiteRequestFilterSensitiveLog = exports.GetBucketWebsiteOutputFilterSensitiveLog = exports.RoutingRuleFilterSensitiveLog = exports.RedirectFilterSensitiveLog = exports.ConditionFilterSensitiveLog = exports.RedirectAllRequestsToFilterSensitiveLog = exports.IndexDocumentFilterSensitiveLog = exports.ErrorDocumentFilterSensitiveLog = exports.GetBucketVersioningRequestFilterSensitiveLog = exports.GetBucketVersioningOutputFilterSensitiveLog = exports.GetBucketTaggingRequestFilterSensitiveLog = exports.GetBucketTaggingOutputFilterSensitiveLog = exports.GetBucketRequestPaymentRequestFilterSensitiveLog = void 0;\nexports.PutObjectLegalHoldOutputFilterSensitiveLog = exports.PutObjectAclRequestFilterSensitiveLog = exports.PutObjectAclOutputFilterSensitiveLog = exports.PutObjectRequestFilterSensitiveLog = exports.PutObjectOutputFilterSensitiveLog = exports.PutBucketWebsiteRequestFilterSensitiveLog = exports.WebsiteConfigurationFilterSensitiveLog = exports.PutBucketVersioningRequestFilterSensitiveLog = exports.VersioningConfigurationFilterSensitiveLog = exports.PutBucketTaggingRequestFilterSensitiveLog = exports.TaggingFilterSensitiveLog = exports.PutBucketRequestPaymentRequestFilterSensitiveLog = exports.RequestPaymentConfigurationFilterSensitiveLog = exports.PutBucketReplicationRequestFilterSensitiveLog = exports.PutBucketPolicyRequestFilterSensitiveLog = exports.PutBucketOwnershipControlsRequestFilterSensitiveLog = exports.PutBucketNotificationConfigurationRequestFilterSensitiveLog = exports.PutBucketMetricsConfigurationRequestFilterSensitiveLog = exports.PutBucketLoggingRequestFilterSensitiveLog = exports.BucketLoggingStatusFilterSensitiveLog = exports.PutBucketLifecycleConfigurationRequestFilterSensitiveLog = exports.BucketLifecycleConfigurationFilterSensitiveLog = exports.PutBucketInventoryConfigurationRequestFilterSensitiveLog = exports.PutBucketIntelligentTieringConfigurationRequestFilterSensitiveLog = exports.PutBucketEncryptionRequestFilterSensitiveLog = exports.PutBucketCorsRequestFilterSensitiveLog = exports.CORSConfigurationFilterSensitiveLog = exports.PutBucketAnalyticsConfigurationRequestFilterSensitiveLog = exports.PutBucketAclRequestFilterSensitiveLog = exports.PutBucketAccelerateConfigurationRequestFilterSensitiveLog = exports.ListPartsRequestFilterSensitiveLog = exports.ListPartsOutputFilterSensitiveLog = exports.PartFilterSensitiveLog = exports.ListObjectVersionsRequestFilterSensitiveLog = exports.ListObjectVersionsOutputFilterSensitiveLog = exports.ObjectVersionFilterSensitiveLog = exports.DeleteMarkerEntryFilterSensitiveLog = exports.ListObjectsV2RequestFilterSensitiveLog = exports.ListObjectsV2OutputFilterSensitiveLog = exports.ListObjectsRequestFilterSensitiveLog = exports.ListObjectsOutputFilterSensitiveLog = exports._ObjectFilterSensitiveLog = exports.ListMultipartUploadsRequestFilterSensitiveLog = exports.ListMultipartUploadsOutputFilterSensitiveLog = exports.MultipartUploadFilterSensitiveLog = exports.InitiatorFilterSensitiveLog = exports.CommonPrefixFilterSensitiveLog = exports.ListBucketsOutputFilterSensitiveLog = exports.BucketFilterSensitiveLog = exports.ListBucketMetricsConfigurationsRequestFilterSensitiveLog = void 0;\nexports.PutObjectLockConfigurationRequestFilterSensitiveLog = exports.PutObjectLockConfigurationOutputFilterSensitiveLog = exports.PutObjectLegalHoldRequestFilterSensitiveLog = void 0;\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst S3ServiceException_1 = require(\"./S3ServiceException\");\nvar RequestCharged;\n(function (RequestCharged) {\n RequestCharged[\"requester\"] = \"requester\";\n})(RequestCharged = exports.RequestCharged || (exports.RequestCharged = {}));\nvar RequestPayer;\n(function (RequestPayer) {\n RequestPayer[\"requester\"] = \"requester\";\n})(RequestPayer = exports.RequestPayer || (exports.RequestPayer = {}));\nclass NoSuchUpload extends S3ServiceException_1.S3ServiceException {\n constructor(opts) {\n super({\n name: \"NoSuchUpload\",\n $fault: \"client\",\n ...opts,\n });\n this.name = \"NoSuchUpload\";\n this.$fault = \"client\";\n Object.setPrototypeOf(this, NoSuchUpload.prototype);\n }\n}\nexports.NoSuchUpload = NoSuchUpload;\nvar BucketAccelerateStatus;\n(function (BucketAccelerateStatus) {\n BucketAccelerateStatus[\"Enabled\"] = \"Enabled\";\n BucketAccelerateStatus[\"Suspended\"] = \"Suspended\";\n})(BucketAccelerateStatus = exports.BucketAccelerateStatus || (exports.BucketAccelerateStatus = {}));\nvar Type;\n(function (Type) {\n Type[\"AmazonCustomerByEmail\"] = \"AmazonCustomerByEmail\";\n Type[\"CanonicalUser\"] = \"CanonicalUser\";\n Type[\"Group\"] = \"Group\";\n})(Type = exports.Type || (exports.Type = {}));\nvar Permission;\n(function (Permission) {\n Permission[\"FULL_CONTROL\"] = \"FULL_CONTROL\";\n Permission[\"READ\"] = \"READ\";\n Permission[\"READ_ACP\"] = \"READ_ACP\";\n Permission[\"WRITE\"] = \"WRITE\";\n Permission[\"WRITE_ACP\"] = \"WRITE_ACP\";\n})(Permission = exports.Permission || (exports.Permission = {}));\nvar OwnerOverride;\n(function (OwnerOverride) {\n OwnerOverride[\"Destination\"] = \"Destination\";\n})(OwnerOverride = exports.OwnerOverride || (exports.OwnerOverride = {}));\nvar ServerSideEncryption;\n(function (ServerSideEncryption) {\n ServerSideEncryption[\"AES256\"] = \"AES256\";\n ServerSideEncryption[\"aws_kms\"] = \"aws:kms\";\n})(ServerSideEncryption = exports.ServerSideEncryption || (exports.ServerSideEncryption = {}));\nvar ObjectCannedACL;\n(function (ObjectCannedACL) {\n ObjectCannedACL[\"authenticated_read\"] = \"authenticated-read\";\n ObjectCannedACL[\"aws_exec_read\"] = \"aws-exec-read\";\n ObjectCannedACL[\"bucket_owner_full_control\"] = \"bucket-owner-full-control\";\n ObjectCannedACL[\"bucket_owner_read\"] = \"bucket-owner-read\";\n ObjectCannedACL[\"private\"] = \"private\";\n ObjectCannedACL[\"public_read\"] = \"public-read\";\n ObjectCannedACL[\"public_read_write\"] = \"public-read-write\";\n})(ObjectCannedACL = exports.ObjectCannedACL || (exports.ObjectCannedACL = {}));\nvar ChecksumAlgorithm;\n(function (ChecksumAlgorithm) {\n ChecksumAlgorithm[\"CRC32\"] = \"CRC32\";\n ChecksumAlgorithm[\"CRC32C\"] = \"CRC32C\";\n ChecksumAlgorithm[\"SHA1\"] = \"SHA1\";\n ChecksumAlgorithm[\"SHA256\"] = \"SHA256\";\n})(ChecksumAlgorithm = exports.ChecksumAlgorithm || (exports.ChecksumAlgorithm = {}));\nvar MetadataDirective;\n(function (MetadataDirective) {\n MetadataDirective[\"COPY\"] = \"COPY\";\n MetadataDirective[\"REPLACE\"] = \"REPLACE\";\n})(MetadataDirective = exports.MetadataDirective || (exports.MetadataDirective = {}));\nvar ObjectLockLegalHoldStatus;\n(function (ObjectLockLegalHoldStatus) {\n ObjectLockLegalHoldStatus[\"OFF\"] = \"OFF\";\n ObjectLockLegalHoldStatus[\"ON\"] = \"ON\";\n})(ObjectLockLegalHoldStatus = exports.ObjectLockLegalHoldStatus || (exports.ObjectLockLegalHoldStatus = {}));\nvar ObjectLockMode;\n(function (ObjectLockMode) {\n ObjectLockMode[\"COMPLIANCE\"] = \"COMPLIANCE\";\n ObjectLockMode[\"GOVERNANCE\"] = \"GOVERNANCE\";\n})(ObjectLockMode = exports.ObjectLockMode || (exports.ObjectLockMode = {}));\nvar StorageClass;\n(function (StorageClass) {\n StorageClass[\"DEEP_ARCHIVE\"] = \"DEEP_ARCHIVE\";\n StorageClass[\"GLACIER\"] = \"GLACIER\";\n StorageClass[\"GLACIER_IR\"] = \"GLACIER_IR\";\n StorageClass[\"INTELLIGENT_TIERING\"] = \"INTELLIGENT_TIERING\";\n StorageClass[\"ONEZONE_IA\"] = \"ONEZONE_IA\";\n StorageClass[\"OUTPOSTS\"] = \"OUTPOSTS\";\n StorageClass[\"REDUCED_REDUNDANCY\"] = \"REDUCED_REDUNDANCY\";\n StorageClass[\"STANDARD\"] = \"STANDARD\";\n StorageClass[\"STANDARD_IA\"] = \"STANDARD_IA\";\n})(StorageClass = exports.StorageClass || (exports.StorageClass = {}));\nvar TaggingDirective;\n(function (TaggingDirective) {\n TaggingDirective[\"COPY\"] = \"COPY\";\n TaggingDirective[\"REPLACE\"] = \"REPLACE\";\n})(TaggingDirective = exports.TaggingDirective || (exports.TaggingDirective = {}));\nclass ObjectNotInActiveTierError extends S3ServiceException_1.S3ServiceException {\n constructor(opts) {\n super({\n name: \"ObjectNotInActiveTierError\",\n $fault: \"client\",\n ...opts,\n });\n this.name = \"ObjectNotInActiveTierError\";\n this.$fault = \"client\";\n Object.setPrototypeOf(this, ObjectNotInActiveTierError.prototype);\n }\n}\nexports.ObjectNotInActiveTierError = ObjectNotInActiveTierError;\nclass BucketAlreadyExists extends S3ServiceException_1.S3ServiceException {\n constructor(opts) {\n super({\n name: \"BucketAlreadyExists\",\n $fault: \"client\",\n ...opts,\n });\n this.name = \"BucketAlreadyExists\";\n this.$fault = \"client\";\n Object.setPrototypeOf(this, BucketAlreadyExists.prototype);\n }\n}\nexports.BucketAlreadyExists = BucketAlreadyExists;\nclass BucketAlreadyOwnedByYou extends S3ServiceException_1.S3ServiceException {\n constructor(opts) {\n super({\n name: \"BucketAlreadyOwnedByYou\",\n $fault: \"client\",\n ...opts,\n });\n this.name = \"BucketAlreadyOwnedByYou\";\n this.$fault = \"client\";\n Object.setPrototypeOf(this, BucketAlreadyOwnedByYou.prototype);\n }\n}\nexports.BucketAlreadyOwnedByYou = BucketAlreadyOwnedByYou;\nvar BucketCannedACL;\n(function (BucketCannedACL) {\n BucketCannedACL[\"authenticated_read\"] = \"authenticated-read\";\n BucketCannedACL[\"private\"] = \"private\";\n BucketCannedACL[\"public_read\"] = \"public-read\";\n BucketCannedACL[\"public_read_write\"] = \"public-read-write\";\n})(BucketCannedACL = exports.BucketCannedACL || (exports.BucketCannedACL = {}));\nvar BucketLocationConstraint;\n(function (BucketLocationConstraint) {\n BucketLocationConstraint[\"EU\"] = \"EU\";\n BucketLocationConstraint[\"af_south_1\"] = \"af-south-1\";\n BucketLocationConstraint[\"ap_east_1\"] = \"ap-east-1\";\n BucketLocationConstraint[\"ap_northeast_1\"] = \"ap-northeast-1\";\n BucketLocationConstraint[\"ap_northeast_2\"] = \"ap-northeast-2\";\n BucketLocationConstraint[\"ap_northeast_3\"] = \"ap-northeast-3\";\n BucketLocationConstraint[\"ap_south_1\"] = \"ap-south-1\";\n BucketLocationConstraint[\"ap_southeast_1\"] = \"ap-southeast-1\";\n BucketLocationConstraint[\"ap_southeast_2\"] = \"ap-southeast-2\";\n BucketLocationConstraint[\"ap_southeast_3\"] = \"ap-southeast-3\";\n BucketLocationConstraint[\"ca_central_1\"] = \"ca-central-1\";\n BucketLocationConstraint[\"cn_north_1\"] = \"cn-north-1\";\n BucketLocationConstraint[\"cn_northwest_1\"] = \"cn-northwest-1\";\n BucketLocationConstraint[\"eu_central_1\"] = \"eu-central-1\";\n BucketLocationConstraint[\"eu_north_1\"] = \"eu-north-1\";\n BucketLocationConstraint[\"eu_south_1\"] = \"eu-south-1\";\n BucketLocationConstraint[\"eu_west_1\"] = \"eu-west-1\";\n BucketLocationConstraint[\"eu_west_2\"] = \"eu-west-2\";\n BucketLocationConstraint[\"eu_west_3\"] = \"eu-west-3\";\n BucketLocationConstraint[\"me_south_1\"] = \"me-south-1\";\n BucketLocationConstraint[\"sa_east_1\"] = \"sa-east-1\";\n BucketLocationConstraint[\"us_east_2\"] = \"us-east-2\";\n BucketLocationConstraint[\"us_gov_east_1\"] = \"us-gov-east-1\";\n BucketLocationConstraint[\"us_gov_west_1\"] = \"us-gov-west-1\";\n BucketLocationConstraint[\"us_west_1\"] = \"us-west-1\";\n BucketLocationConstraint[\"us_west_2\"] = \"us-west-2\";\n})(BucketLocationConstraint = exports.BucketLocationConstraint || (exports.BucketLocationConstraint = {}));\nvar ObjectOwnership;\n(function (ObjectOwnership) {\n ObjectOwnership[\"BucketOwnerEnforced\"] = \"BucketOwnerEnforced\";\n ObjectOwnership[\"BucketOwnerPreferred\"] = \"BucketOwnerPreferred\";\n ObjectOwnership[\"ObjectWriter\"] = \"ObjectWriter\";\n})(ObjectOwnership = exports.ObjectOwnership || (exports.ObjectOwnership = {}));\nvar AnalyticsFilter;\n(function (AnalyticsFilter) {\n AnalyticsFilter.visit = (value, visitor) => {\n if (value.Prefix !== undefined)\n return visitor.Prefix(value.Prefix);\n if (value.Tag !== undefined)\n return visitor.Tag(value.Tag);\n if (value.And !== undefined)\n return visitor.And(value.And);\n return visitor._(value.$unknown[0], value.$unknown[1]);\n };\n})(AnalyticsFilter = exports.AnalyticsFilter || (exports.AnalyticsFilter = {}));\nvar AnalyticsS3ExportFileFormat;\n(function (AnalyticsS3ExportFileFormat) {\n AnalyticsS3ExportFileFormat[\"CSV\"] = \"CSV\";\n})(AnalyticsS3ExportFileFormat = exports.AnalyticsS3ExportFileFormat || (exports.AnalyticsS3ExportFileFormat = {}));\nvar StorageClassAnalysisSchemaVersion;\n(function (StorageClassAnalysisSchemaVersion) {\n StorageClassAnalysisSchemaVersion[\"V_1\"] = \"V_1\";\n})(StorageClassAnalysisSchemaVersion = exports.StorageClassAnalysisSchemaVersion || (exports.StorageClassAnalysisSchemaVersion = {}));\nvar IntelligentTieringStatus;\n(function (IntelligentTieringStatus) {\n IntelligentTieringStatus[\"Disabled\"] = \"Disabled\";\n IntelligentTieringStatus[\"Enabled\"] = \"Enabled\";\n})(IntelligentTieringStatus = exports.IntelligentTieringStatus || (exports.IntelligentTieringStatus = {}));\nvar IntelligentTieringAccessTier;\n(function (IntelligentTieringAccessTier) {\n IntelligentTieringAccessTier[\"ARCHIVE_ACCESS\"] = \"ARCHIVE_ACCESS\";\n IntelligentTieringAccessTier[\"DEEP_ARCHIVE_ACCESS\"] = \"DEEP_ARCHIVE_ACCESS\";\n})(IntelligentTieringAccessTier = exports.IntelligentTieringAccessTier || (exports.IntelligentTieringAccessTier = {}));\nvar InventoryFormat;\n(function (InventoryFormat) {\n InventoryFormat[\"CSV\"] = \"CSV\";\n InventoryFormat[\"ORC\"] = \"ORC\";\n InventoryFormat[\"Parquet\"] = \"Parquet\";\n})(InventoryFormat = exports.InventoryFormat || (exports.InventoryFormat = {}));\nvar InventoryIncludedObjectVersions;\n(function (InventoryIncludedObjectVersions) {\n InventoryIncludedObjectVersions[\"All\"] = \"All\";\n InventoryIncludedObjectVersions[\"Current\"] = \"Current\";\n})(InventoryIncludedObjectVersions = exports.InventoryIncludedObjectVersions || (exports.InventoryIncludedObjectVersions = {}));\nvar InventoryOptionalField;\n(function (InventoryOptionalField) {\n InventoryOptionalField[\"BucketKeyStatus\"] = \"BucketKeyStatus\";\n InventoryOptionalField[\"ChecksumAlgorithm\"] = \"ChecksumAlgorithm\";\n InventoryOptionalField[\"ETag\"] = \"ETag\";\n InventoryOptionalField[\"EncryptionStatus\"] = \"EncryptionStatus\";\n InventoryOptionalField[\"IntelligentTieringAccessTier\"] = \"IntelligentTieringAccessTier\";\n InventoryOptionalField[\"IsMultipartUploaded\"] = \"IsMultipartUploaded\";\n InventoryOptionalField[\"LastModifiedDate\"] = \"LastModifiedDate\";\n InventoryOptionalField[\"ObjectLockLegalHoldStatus\"] = \"ObjectLockLegalHoldStatus\";\n InventoryOptionalField[\"ObjectLockMode\"] = \"ObjectLockMode\";\n InventoryOptionalField[\"ObjectLockRetainUntilDate\"] = \"ObjectLockRetainUntilDate\";\n InventoryOptionalField[\"ReplicationStatus\"] = \"ReplicationStatus\";\n InventoryOptionalField[\"Size\"] = \"Size\";\n InventoryOptionalField[\"StorageClass\"] = \"StorageClass\";\n})(InventoryOptionalField = exports.InventoryOptionalField || (exports.InventoryOptionalField = {}));\nvar InventoryFrequency;\n(function (InventoryFrequency) {\n InventoryFrequency[\"Daily\"] = \"Daily\";\n InventoryFrequency[\"Weekly\"] = \"Weekly\";\n})(InventoryFrequency = exports.InventoryFrequency || (exports.InventoryFrequency = {}));\nvar LifecycleRuleFilter;\n(function (LifecycleRuleFilter) {\n LifecycleRuleFilter.visit = (value, visitor) => {\n if (value.Prefix !== undefined)\n return visitor.Prefix(value.Prefix);\n if (value.Tag !== undefined)\n return visitor.Tag(value.Tag);\n if (value.ObjectSizeGreaterThan !== undefined)\n return visitor.ObjectSizeGreaterThan(value.ObjectSizeGreaterThan);\n if (value.ObjectSizeLessThan !== undefined)\n return visitor.ObjectSizeLessThan(value.ObjectSizeLessThan);\n if (value.And !== undefined)\n return visitor.And(value.And);\n return visitor._(value.$unknown[0], value.$unknown[1]);\n };\n})(LifecycleRuleFilter = exports.LifecycleRuleFilter || (exports.LifecycleRuleFilter = {}));\nvar TransitionStorageClass;\n(function (TransitionStorageClass) {\n TransitionStorageClass[\"DEEP_ARCHIVE\"] = \"DEEP_ARCHIVE\";\n TransitionStorageClass[\"GLACIER\"] = \"GLACIER\";\n TransitionStorageClass[\"GLACIER_IR\"] = \"GLACIER_IR\";\n TransitionStorageClass[\"INTELLIGENT_TIERING\"] = \"INTELLIGENT_TIERING\";\n TransitionStorageClass[\"ONEZONE_IA\"] = \"ONEZONE_IA\";\n TransitionStorageClass[\"STANDARD_IA\"] = \"STANDARD_IA\";\n})(TransitionStorageClass = exports.TransitionStorageClass || (exports.TransitionStorageClass = {}));\nvar ExpirationStatus;\n(function (ExpirationStatus) {\n ExpirationStatus[\"Disabled\"] = \"Disabled\";\n ExpirationStatus[\"Enabled\"] = \"Enabled\";\n})(ExpirationStatus = exports.ExpirationStatus || (exports.ExpirationStatus = {}));\nvar BucketLogsPermission;\n(function (BucketLogsPermission) {\n BucketLogsPermission[\"FULL_CONTROL\"] = \"FULL_CONTROL\";\n BucketLogsPermission[\"READ\"] = \"READ\";\n BucketLogsPermission[\"WRITE\"] = \"WRITE\";\n})(BucketLogsPermission = exports.BucketLogsPermission || (exports.BucketLogsPermission = {}));\nvar MetricsFilter;\n(function (MetricsFilter) {\n MetricsFilter.visit = (value, visitor) => {\n if (value.Prefix !== undefined)\n return visitor.Prefix(value.Prefix);\n if (value.Tag !== undefined)\n return visitor.Tag(value.Tag);\n if (value.AccessPointArn !== undefined)\n return visitor.AccessPointArn(value.AccessPointArn);\n if (value.And !== undefined)\n return visitor.And(value.And);\n return visitor._(value.$unknown[0], value.$unknown[1]);\n };\n})(MetricsFilter = exports.MetricsFilter || (exports.MetricsFilter = {}));\nvar FilterRuleName;\n(function (FilterRuleName) {\n FilterRuleName[\"prefix\"] = \"prefix\";\n FilterRuleName[\"suffix\"] = \"suffix\";\n})(FilterRuleName = exports.FilterRuleName || (exports.FilterRuleName = {}));\nvar DeleteMarkerReplicationStatus;\n(function (DeleteMarkerReplicationStatus) {\n DeleteMarkerReplicationStatus[\"Disabled\"] = \"Disabled\";\n DeleteMarkerReplicationStatus[\"Enabled\"] = \"Enabled\";\n})(DeleteMarkerReplicationStatus = exports.DeleteMarkerReplicationStatus || (exports.DeleteMarkerReplicationStatus = {}));\nvar MetricsStatus;\n(function (MetricsStatus) {\n MetricsStatus[\"Disabled\"] = \"Disabled\";\n MetricsStatus[\"Enabled\"] = \"Enabled\";\n})(MetricsStatus = exports.MetricsStatus || (exports.MetricsStatus = {}));\nvar ReplicationTimeStatus;\n(function (ReplicationTimeStatus) {\n ReplicationTimeStatus[\"Disabled\"] = \"Disabled\";\n ReplicationTimeStatus[\"Enabled\"] = \"Enabled\";\n})(ReplicationTimeStatus = exports.ReplicationTimeStatus || (exports.ReplicationTimeStatus = {}));\nvar ExistingObjectReplicationStatus;\n(function (ExistingObjectReplicationStatus) {\n ExistingObjectReplicationStatus[\"Disabled\"] = \"Disabled\";\n ExistingObjectReplicationStatus[\"Enabled\"] = \"Enabled\";\n})(ExistingObjectReplicationStatus = exports.ExistingObjectReplicationStatus || (exports.ExistingObjectReplicationStatus = {}));\nvar ReplicationRuleFilter;\n(function (ReplicationRuleFilter) {\n ReplicationRuleFilter.visit = (value, visitor) => {\n if (value.Prefix !== undefined)\n return visitor.Prefix(value.Prefix);\n if (value.Tag !== undefined)\n return visitor.Tag(value.Tag);\n if (value.And !== undefined)\n return visitor.And(value.And);\n return visitor._(value.$unknown[0], value.$unknown[1]);\n };\n})(ReplicationRuleFilter = exports.ReplicationRuleFilter || (exports.ReplicationRuleFilter = {}));\nvar ReplicaModificationsStatus;\n(function (ReplicaModificationsStatus) {\n ReplicaModificationsStatus[\"Disabled\"] = \"Disabled\";\n ReplicaModificationsStatus[\"Enabled\"] = \"Enabled\";\n})(ReplicaModificationsStatus = exports.ReplicaModificationsStatus || (exports.ReplicaModificationsStatus = {}));\nvar SseKmsEncryptedObjectsStatus;\n(function (SseKmsEncryptedObjectsStatus) {\n SseKmsEncryptedObjectsStatus[\"Disabled\"] = \"Disabled\";\n SseKmsEncryptedObjectsStatus[\"Enabled\"] = \"Enabled\";\n})(SseKmsEncryptedObjectsStatus = exports.SseKmsEncryptedObjectsStatus || (exports.SseKmsEncryptedObjectsStatus = {}));\nvar ReplicationRuleStatus;\n(function (ReplicationRuleStatus) {\n ReplicationRuleStatus[\"Disabled\"] = \"Disabled\";\n ReplicationRuleStatus[\"Enabled\"] = \"Enabled\";\n})(ReplicationRuleStatus = exports.ReplicationRuleStatus || (exports.ReplicationRuleStatus = {}));\nvar Payer;\n(function (Payer) {\n Payer[\"BucketOwner\"] = \"BucketOwner\";\n Payer[\"Requester\"] = \"Requester\";\n})(Payer = exports.Payer || (exports.Payer = {}));\nvar MFADeleteStatus;\n(function (MFADeleteStatus) {\n MFADeleteStatus[\"Disabled\"] = \"Disabled\";\n MFADeleteStatus[\"Enabled\"] = \"Enabled\";\n})(MFADeleteStatus = exports.MFADeleteStatus || (exports.MFADeleteStatus = {}));\nvar BucketVersioningStatus;\n(function (BucketVersioningStatus) {\n BucketVersioningStatus[\"Enabled\"] = \"Enabled\";\n BucketVersioningStatus[\"Suspended\"] = \"Suspended\";\n})(BucketVersioningStatus = exports.BucketVersioningStatus || (exports.BucketVersioningStatus = {}));\nvar Protocol;\n(function (Protocol) {\n Protocol[\"http\"] = \"http\";\n Protocol[\"https\"] = \"https\";\n})(Protocol = exports.Protocol || (exports.Protocol = {}));\nvar ReplicationStatus;\n(function (ReplicationStatus) {\n ReplicationStatus[\"COMPLETE\"] = \"COMPLETE\";\n ReplicationStatus[\"FAILED\"] = \"FAILED\";\n ReplicationStatus[\"PENDING\"] = \"PENDING\";\n ReplicationStatus[\"REPLICA\"] = \"REPLICA\";\n})(ReplicationStatus = exports.ReplicationStatus || (exports.ReplicationStatus = {}));\nvar ChecksumMode;\n(function (ChecksumMode) {\n ChecksumMode[\"ENABLED\"] = \"ENABLED\";\n})(ChecksumMode = exports.ChecksumMode || (exports.ChecksumMode = {}));\nclass InvalidObjectState extends S3ServiceException_1.S3ServiceException {\n constructor(opts) {\n super({\n name: \"InvalidObjectState\",\n $fault: \"client\",\n ...opts,\n });\n this.name = \"InvalidObjectState\";\n this.$fault = \"client\";\n Object.setPrototypeOf(this, InvalidObjectState.prototype);\n this.StorageClass = opts.StorageClass;\n this.AccessTier = opts.AccessTier;\n }\n}\nexports.InvalidObjectState = InvalidObjectState;\nclass NoSuchKey extends S3ServiceException_1.S3ServiceException {\n constructor(opts) {\n super({\n name: \"NoSuchKey\",\n $fault: \"client\",\n ...opts,\n });\n this.name = \"NoSuchKey\";\n this.$fault = \"client\";\n Object.setPrototypeOf(this, NoSuchKey.prototype);\n }\n}\nexports.NoSuchKey = NoSuchKey;\nvar ObjectAttributes;\n(function (ObjectAttributes) {\n ObjectAttributes[\"CHECKSUM\"] = \"Checksum\";\n ObjectAttributes[\"ETAG\"] = \"ETag\";\n ObjectAttributes[\"OBJECT_PARTS\"] = \"ObjectParts\";\n ObjectAttributes[\"OBJECT_SIZE\"] = \"ObjectSize\";\n ObjectAttributes[\"STORAGE_CLASS\"] = \"StorageClass\";\n})(ObjectAttributes = exports.ObjectAttributes || (exports.ObjectAttributes = {}));\nvar ObjectLockEnabled;\n(function (ObjectLockEnabled) {\n ObjectLockEnabled[\"Enabled\"] = \"Enabled\";\n})(ObjectLockEnabled = exports.ObjectLockEnabled || (exports.ObjectLockEnabled = {}));\nvar ObjectLockRetentionMode;\n(function (ObjectLockRetentionMode) {\n ObjectLockRetentionMode[\"COMPLIANCE\"] = \"COMPLIANCE\";\n ObjectLockRetentionMode[\"GOVERNANCE\"] = \"GOVERNANCE\";\n})(ObjectLockRetentionMode = exports.ObjectLockRetentionMode || (exports.ObjectLockRetentionMode = {}));\nclass NotFound extends S3ServiceException_1.S3ServiceException {\n constructor(opts) {\n super({\n name: \"NotFound\",\n $fault: \"client\",\n ...opts,\n });\n this.name = \"NotFound\";\n this.$fault = \"client\";\n Object.setPrototypeOf(this, NotFound.prototype);\n }\n}\nexports.NotFound = NotFound;\nvar ArchiveStatus;\n(function (ArchiveStatus) {\n ArchiveStatus[\"ARCHIVE_ACCESS\"] = \"ARCHIVE_ACCESS\";\n ArchiveStatus[\"DEEP_ARCHIVE_ACCESS\"] = \"DEEP_ARCHIVE_ACCESS\";\n})(ArchiveStatus = exports.ArchiveStatus || (exports.ArchiveStatus = {}));\nvar EncodingType;\n(function (EncodingType) {\n EncodingType[\"url\"] = \"url\";\n})(EncodingType = exports.EncodingType || (exports.EncodingType = {}));\nvar ObjectStorageClass;\n(function (ObjectStorageClass) {\n ObjectStorageClass[\"DEEP_ARCHIVE\"] = \"DEEP_ARCHIVE\";\n ObjectStorageClass[\"GLACIER\"] = \"GLACIER\";\n ObjectStorageClass[\"GLACIER_IR\"] = \"GLACIER_IR\";\n ObjectStorageClass[\"INTELLIGENT_TIERING\"] = \"INTELLIGENT_TIERING\";\n ObjectStorageClass[\"ONEZONE_IA\"] = \"ONEZONE_IA\";\n ObjectStorageClass[\"OUTPOSTS\"] = \"OUTPOSTS\";\n ObjectStorageClass[\"REDUCED_REDUNDANCY\"] = \"REDUCED_REDUNDANCY\";\n ObjectStorageClass[\"STANDARD\"] = \"STANDARD\";\n ObjectStorageClass[\"STANDARD_IA\"] = \"STANDARD_IA\";\n})(ObjectStorageClass = exports.ObjectStorageClass || (exports.ObjectStorageClass = {}));\nclass NoSuchBucket extends S3ServiceException_1.S3ServiceException {\n constructor(opts) {\n super({\n name: \"NoSuchBucket\",\n $fault: \"client\",\n ...opts,\n });\n this.name = \"NoSuchBucket\";\n this.$fault = \"client\";\n Object.setPrototypeOf(this, NoSuchBucket.prototype);\n }\n}\nexports.NoSuchBucket = NoSuchBucket;\nvar ObjectVersionStorageClass;\n(function (ObjectVersionStorageClass) {\n ObjectVersionStorageClass[\"STANDARD\"] = \"STANDARD\";\n})(ObjectVersionStorageClass = exports.ObjectVersionStorageClass || (exports.ObjectVersionStorageClass = {}));\nvar MFADelete;\n(function (MFADelete) {\n MFADelete[\"Disabled\"] = \"Disabled\";\n MFADelete[\"Enabled\"] = \"Enabled\";\n})(MFADelete = exports.MFADelete || (exports.MFADelete = {}));\nconst AbortIncompleteMultipartUploadFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.AbortIncompleteMultipartUploadFilterSensitiveLog = AbortIncompleteMultipartUploadFilterSensitiveLog;\nconst AbortMultipartUploadOutputFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.AbortMultipartUploadOutputFilterSensitiveLog = AbortMultipartUploadOutputFilterSensitiveLog;\nconst AbortMultipartUploadRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.AbortMultipartUploadRequestFilterSensitiveLog = AbortMultipartUploadRequestFilterSensitiveLog;\nconst AccelerateConfigurationFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.AccelerateConfigurationFilterSensitiveLog = AccelerateConfigurationFilterSensitiveLog;\nconst GranteeFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.GranteeFilterSensitiveLog = GranteeFilterSensitiveLog;\nconst GrantFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.GrantFilterSensitiveLog = GrantFilterSensitiveLog;\nconst OwnerFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.OwnerFilterSensitiveLog = OwnerFilterSensitiveLog;\nconst AccessControlPolicyFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.AccessControlPolicyFilterSensitiveLog = AccessControlPolicyFilterSensitiveLog;\nconst AccessControlTranslationFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.AccessControlTranslationFilterSensitiveLog = AccessControlTranslationFilterSensitiveLog;\nconst CompleteMultipartUploadOutputFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.SSEKMSKeyId && { SSEKMSKeyId: smithy_client_1.SENSITIVE_STRING }),\n});\nexports.CompleteMultipartUploadOutputFilterSensitiveLog = CompleteMultipartUploadOutputFilterSensitiveLog;\nconst CompletedPartFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.CompletedPartFilterSensitiveLog = CompletedPartFilterSensitiveLog;\nconst CompletedMultipartUploadFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.CompletedMultipartUploadFilterSensitiveLog = CompletedMultipartUploadFilterSensitiveLog;\nconst CompleteMultipartUploadRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.SSECustomerKey && { SSECustomerKey: smithy_client_1.SENSITIVE_STRING }),\n});\nexports.CompleteMultipartUploadRequestFilterSensitiveLog = CompleteMultipartUploadRequestFilterSensitiveLog;\nconst CopyObjectResultFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.CopyObjectResultFilterSensitiveLog = CopyObjectResultFilterSensitiveLog;\nconst CopyObjectOutputFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.SSEKMSKeyId && { SSEKMSKeyId: smithy_client_1.SENSITIVE_STRING }),\n ...(obj.SSEKMSEncryptionContext && { SSEKMSEncryptionContext: smithy_client_1.SENSITIVE_STRING }),\n});\nexports.CopyObjectOutputFilterSensitiveLog = CopyObjectOutputFilterSensitiveLog;\nconst CopyObjectRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.SSECustomerKey && { SSECustomerKey: smithy_client_1.SENSITIVE_STRING }),\n ...(obj.SSEKMSKeyId && { SSEKMSKeyId: smithy_client_1.SENSITIVE_STRING }),\n ...(obj.SSEKMSEncryptionContext && { SSEKMSEncryptionContext: smithy_client_1.SENSITIVE_STRING }),\n ...(obj.CopySourceSSECustomerKey && { CopySourceSSECustomerKey: smithy_client_1.SENSITIVE_STRING }),\n});\nexports.CopyObjectRequestFilterSensitiveLog = CopyObjectRequestFilterSensitiveLog;\nconst CreateBucketOutputFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.CreateBucketOutputFilterSensitiveLog = CreateBucketOutputFilterSensitiveLog;\nconst CreateBucketConfigurationFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.CreateBucketConfigurationFilterSensitiveLog = CreateBucketConfigurationFilterSensitiveLog;\nconst CreateBucketRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.CreateBucketRequestFilterSensitiveLog = CreateBucketRequestFilterSensitiveLog;\nconst CreateMultipartUploadOutputFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.SSEKMSKeyId && { SSEKMSKeyId: smithy_client_1.SENSITIVE_STRING }),\n ...(obj.SSEKMSEncryptionContext && { SSEKMSEncryptionContext: smithy_client_1.SENSITIVE_STRING }),\n});\nexports.CreateMultipartUploadOutputFilterSensitiveLog = CreateMultipartUploadOutputFilterSensitiveLog;\nconst CreateMultipartUploadRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.SSECustomerKey && { SSECustomerKey: smithy_client_1.SENSITIVE_STRING }),\n ...(obj.SSEKMSKeyId && { SSEKMSKeyId: smithy_client_1.SENSITIVE_STRING }),\n ...(obj.SSEKMSEncryptionContext && { SSEKMSEncryptionContext: smithy_client_1.SENSITIVE_STRING }),\n});\nexports.CreateMultipartUploadRequestFilterSensitiveLog = CreateMultipartUploadRequestFilterSensitiveLog;\nconst DeleteBucketRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.DeleteBucketRequestFilterSensitiveLog = DeleteBucketRequestFilterSensitiveLog;\nconst DeleteBucketAnalyticsConfigurationRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.DeleteBucketAnalyticsConfigurationRequestFilterSensitiveLog = DeleteBucketAnalyticsConfigurationRequestFilterSensitiveLog;\nconst DeleteBucketCorsRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.DeleteBucketCorsRequestFilterSensitiveLog = DeleteBucketCorsRequestFilterSensitiveLog;\nconst DeleteBucketEncryptionRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.DeleteBucketEncryptionRequestFilterSensitiveLog = DeleteBucketEncryptionRequestFilterSensitiveLog;\nconst DeleteBucketIntelligentTieringConfigurationRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.DeleteBucketIntelligentTieringConfigurationRequestFilterSensitiveLog = DeleteBucketIntelligentTieringConfigurationRequestFilterSensitiveLog;\nconst DeleteBucketInventoryConfigurationRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.DeleteBucketInventoryConfigurationRequestFilterSensitiveLog = DeleteBucketInventoryConfigurationRequestFilterSensitiveLog;\nconst DeleteBucketLifecycleRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.DeleteBucketLifecycleRequestFilterSensitiveLog = DeleteBucketLifecycleRequestFilterSensitiveLog;\nconst DeleteBucketMetricsConfigurationRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.DeleteBucketMetricsConfigurationRequestFilterSensitiveLog = DeleteBucketMetricsConfigurationRequestFilterSensitiveLog;\nconst DeleteBucketOwnershipControlsRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.DeleteBucketOwnershipControlsRequestFilterSensitiveLog = DeleteBucketOwnershipControlsRequestFilterSensitiveLog;\nconst DeleteBucketPolicyRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.DeleteBucketPolicyRequestFilterSensitiveLog = DeleteBucketPolicyRequestFilterSensitiveLog;\nconst DeleteBucketReplicationRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.DeleteBucketReplicationRequestFilterSensitiveLog = DeleteBucketReplicationRequestFilterSensitiveLog;\nconst DeleteBucketTaggingRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.DeleteBucketTaggingRequestFilterSensitiveLog = DeleteBucketTaggingRequestFilterSensitiveLog;\nconst DeleteBucketWebsiteRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.DeleteBucketWebsiteRequestFilterSensitiveLog = DeleteBucketWebsiteRequestFilterSensitiveLog;\nconst DeleteObjectOutputFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.DeleteObjectOutputFilterSensitiveLog = DeleteObjectOutputFilterSensitiveLog;\nconst DeleteObjectRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.DeleteObjectRequestFilterSensitiveLog = DeleteObjectRequestFilterSensitiveLog;\nconst DeletedObjectFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.DeletedObjectFilterSensitiveLog = DeletedObjectFilterSensitiveLog;\nconst _ErrorFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports._ErrorFilterSensitiveLog = _ErrorFilterSensitiveLog;\nconst DeleteObjectsOutputFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.DeleteObjectsOutputFilterSensitiveLog = DeleteObjectsOutputFilterSensitiveLog;\nconst ObjectIdentifierFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.ObjectIdentifierFilterSensitiveLog = ObjectIdentifierFilterSensitiveLog;\nconst DeleteFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.DeleteFilterSensitiveLog = DeleteFilterSensitiveLog;\nconst DeleteObjectsRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.DeleteObjectsRequestFilterSensitiveLog = DeleteObjectsRequestFilterSensitiveLog;\nconst DeleteObjectTaggingOutputFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.DeleteObjectTaggingOutputFilterSensitiveLog = DeleteObjectTaggingOutputFilterSensitiveLog;\nconst DeleteObjectTaggingRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.DeleteObjectTaggingRequestFilterSensitiveLog = DeleteObjectTaggingRequestFilterSensitiveLog;\nconst DeletePublicAccessBlockRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.DeletePublicAccessBlockRequestFilterSensitiveLog = DeletePublicAccessBlockRequestFilterSensitiveLog;\nconst GetBucketAccelerateConfigurationOutputFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.GetBucketAccelerateConfigurationOutputFilterSensitiveLog = GetBucketAccelerateConfigurationOutputFilterSensitiveLog;\nconst GetBucketAccelerateConfigurationRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.GetBucketAccelerateConfigurationRequestFilterSensitiveLog = GetBucketAccelerateConfigurationRequestFilterSensitiveLog;\nconst GetBucketAclOutputFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.GetBucketAclOutputFilterSensitiveLog = GetBucketAclOutputFilterSensitiveLog;\nconst GetBucketAclRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.GetBucketAclRequestFilterSensitiveLog = GetBucketAclRequestFilterSensitiveLog;\nconst TagFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.TagFilterSensitiveLog = TagFilterSensitiveLog;\nconst AnalyticsAndOperatorFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.AnalyticsAndOperatorFilterSensitiveLog = AnalyticsAndOperatorFilterSensitiveLog;\nconst AnalyticsFilterFilterSensitiveLog = (obj) => {\n if (obj.Prefix !== undefined)\n return { Prefix: obj.Prefix };\n if (obj.Tag !== undefined)\n return { Tag: (0, exports.TagFilterSensitiveLog)(obj.Tag) };\n if (obj.And !== undefined)\n return { And: (0, exports.AnalyticsAndOperatorFilterSensitiveLog)(obj.And) };\n if (obj.$unknown !== undefined)\n return { [obj.$unknown[0]]: \"UNKNOWN\" };\n};\nexports.AnalyticsFilterFilterSensitiveLog = AnalyticsFilterFilterSensitiveLog;\nconst AnalyticsS3BucketDestinationFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.AnalyticsS3BucketDestinationFilterSensitiveLog = AnalyticsS3BucketDestinationFilterSensitiveLog;\nconst AnalyticsExportDestinationFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.AnalyticsExportDestinationFilterSensitiveLog = AnalyticsExportDestinationFilterSensitiveLog;\nconst StorageClassAnalysisDataExportFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.StorageClassAnalysisDataExportFilterSensitiveLog = StorageClassAnalysisDataExportFilterSensitiveLog;\nconst StorageClassAnalysisFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.StorageClassAnalysisFilterSensitiveLog = StorageClassAnalysisFilterSensitiveLog;\nconst AnalyticsConfigurationFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.Filter && { Filter: (0, exports.AnalyticsFilterFilterSensitiveLog)(obj.Filter) }),\n});\nexports.AnalyticsConfigurationFilterSensitiveLog = AnalyticsConfigurationFilterSensitiveLog;\nconst GetBucketAnalyticsConfigurationOutputFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.AnalyticsConfiguration && {\n AnalyticsConfiguration: (0, exports.AnalyticsConfigurationFilterSensitiveLog)(obj.AnalyticsConfiguration),\n }),\n});\nexports.GetBucketAnalyticsConfigurationOutputFilterSensitiveLog = GetBucketAnalyticsConfigurationOutputFilterSensitiveLog;\nconst GetBucketAnalyticsConfigurationRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.GetBucketAnalyticsConfigurationRequestFilterSensitiveLog = GetBucketAnalyticsConfigurationRequestFilterSensitiveLog;\nconst CORSRuleFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.CORSRuleFilterSensitiveLog = CORSRuleFilterSensitiveLog;\nconst GetBucketCorsOutputFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.GetBucketCorsOutputFilterSensitiveLog = GetBucketCorsOutputFilterSensitiveLog;\nconst GetBucketCorsRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.GetBucketCorsRequestFilterSensitiveLog = GetBucketCorsRequestFilterSensitiveLog;\nconst ServerSideEncryptionByDefaultFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.KMSMasterKeyID && { KMSMasterKeyID: smithy_client_1.SENSITIVE_STRING }),\n});\nexports.ServerSideEncryptionByDefaultFilterSensitiveLog = ServerSideEncryptionByDefaultFilterSensitiveLog;\nconst ServerSideEncryptionRuleFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.ApplyServerSideEncryptionByDefault && {\n ApplyServerSideEncryptionByDefault: (0, exports.ServerSideEncryptionByDefaultFilterSensitiveLog)(obj.ApplyServerSideEncryptionByDefault),\n }),\n});\nexports.ServerSideEncryptionRuleFilterSensitiveLog = ServerSideEncryptionRuleFilterSensitiveLog;\nconst ServerSideEncryptionConfigurationFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.Rules && { Rules: obj.Rules.map((item) => (0, exports.ServerSideEncryptionRuleFilterSensitiveLog)(item)) }),\n});\nexports.ServerSideEncryptionConfigurationFilterSensitiveLog = ServerSideEncryptionConfigurationFilterSensitiveLog;\nconst GetBucketEncryptionOutputFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.ServerSideEncryptionConfiguration && {\n ServerSideEncryptionConfiguration: (0, exports.ServerSideEncryptionConfigurationFilterSensitiveLog)(obj.ServerSideEncryptionConfiguration),\n }),\n});\nexports.GetBucketEncryptionOutputFilterSensitiveLog = GetBucketEncryptionOutputFilterSensitiveLog;\nconst GetBucketEncryptionRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.GetBucketEncryptionRequestFilterSensitiveLog = GetBucketEncryptionRequestFilterSensitiveLog;\nconst IntelligentTieringAndOperatorFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.IntelligentTieringAndOperatorFilterSensitiveLog = IntelligentTieringAndOperatorFilterSensitiveLog;\nconst IntelligentTieringFilterFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.IntelligentTieringFilterFilterSensitiveLog = IntelligentTieringFilterFilterSensitiveLog;\nconst TieringFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.TieringFilterSensitiveLog = TieringFilterSensitiveLog;\nconst IntelligentTieringConfigurationFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.IntelligentTieringConfigurationFilterSensitiveLog = IntelligentTieringConfigurationFilterSensitiveLog;\nconst GetBucketIntelligentTieringConfigurationOutputFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.GetBucketIntelligentTieringConfigurationOutputFilterSensitiveLog = GetBucketIntelligentTieringConfigurationOutputFilterSensitiveLog;\nconst GetBucketIntelligentTieringConfigurationRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.GetBucketIntelligentTieringConfigurationRequestFilterSensitiveLog = GetBucketIntelligentTieringConfigurationRequestFilterSensitiveLog;\nconst SSEKMSFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.KeyId && { KeyId: smithy_client_1.SENSITIVE_STRING }),\n});\nexports.SSEKMSFilterSensitiveLog = SSEKMSFilterSensitiveLog;\nconst SSES3FilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.SSES3FilterSensitiveLog = SSES3FilterSensitiveLog;\nconst InventoryEncryptionFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.SSEKMS && { SSEKMS: (0, exports.SSEKMSFilterSensitiveLog)(obj.SSEKMS) }),\n});\nexports.InventoryEncryptionFilterSensitiveLog = InventoryEncryptionFilterSensitiveLog;\nconst InventoryS3BucketDestinationFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.Encryption && { Encryption: (0, exports.InventoryEncryptionFilterSensitiveLog)(obj.Encryption) }),\n});\nexports.InventoryS3BucketDestinationFilterSensitiveLog = InventoryS3BucketDestinationFilterSensitiveLog;\nconst InventoryDestinationFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.S3BucketDestination && {\n S3BucketDestination: (0, exports.InventoryS3BucketDestinationFilterSensitiveLog)(obj.S3BucketDestination),\n }),\n});\nexports.InventoryDestinationFilterSensitiveLog = InventoryDestinationFilterSensitiveLog;\nconst InventoryFilterFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.InventoryFilterFilterSensitiveLog = InventoryFilterFilterSensitiveLog;\nconst InventoryScheduleFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.InventoryScheduleFilterSensitiveLog = InventoryScheduleFilterSensitiveLog;\nconst InventoryConfigurationFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.Destination && { Destination: (0, exports.InventoryDestinationFilterSensitiveLog)(obj.Destination) }),\n});\nexports.InventoryConfigurationFilterSensitiveLog = InventoryConfigurationFilterSensitiveLog;\nconst GetBucketInventoryConfigurationOutputFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.InventoryConfiguration && {\n InventoryConfiguration: (0, exports.InventoryConfigurationFilterSensitiveLog)(obj.InventoryConfiguration),\n }),\n});\nexports.GetBucketInventoryConfigurationOutputFilterSensitiveLog = GetBucketInventoryConfigurationOutputFilterSensitiveLog;\nconst GetBucketInventoryConfigurationRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.GetBucketInventoryConfigurationRequestFilterSensitiveLog = GetBucketInventoryConfigurationRequestFilterSensitiveLog;\nconst LifecycleExpirationFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.LifecycleExpirationFilterSensitiveLog = LifecycleExpirationFilterSensitiveLog;\nconst LifecycleRuleAndOperatorFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.LifecycleRuleAndOperatorFilterSensitiveLog = LifecycleRuleAndOperatorFilterSensitiveLog;\nconst LifecycleRuleFilterFilterSensitiveLog = (obj) => {\n if (obj.Prefix !== undefined)\n return { Prefix: obj.Prefix };\n if (obj.Tag !== undefined)\n return { Tag: (0, exports.TagFilterSensitiveLog)(obj.Tag) };\n if (obj.ObjectSizeGreaterThan !== undefined)\n return { ObjectSizeGreaterThan: obj.ObjectSizeGreaterThan };\n if (obj.ObjectSizeLessThan !== undefined)\n return { ObjectSizeLessThan: obj.ObjectSizeLessThan };\n if (obj.And !== undefined)\n return { And: (0, exports.LifecycleRuleAndOperatorFilterSensitiveLog)(obj.And) };\n if (obj.$unknown !== undefined)\n return { [obj.$unknown[0]]: \"UNKNOWN\" };\n};\nexports.LifecycleRuleFilterFilterSensitiveLog = LifecycleRuleFilterFilterSensitiveLog;\nconst NoncurrentVersionExpirationFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.NoncurrentVersionExpirationFilterSensitiveLog = NoncurrentVersionExpirationFilterSensitiveLog;\nconst NoncurrentVersionTransitionFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.NoncurrentVersionTransitionFilterSensitiveLog = NoncurrentVersionTransitionFilterSensitiveLog;\nconst TransitionFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.TransitionFilterSensitiveLog = TransitionFilterSensitiveLog;\nconst LifecycleRuleFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.Filter && { Filter: (0, exports.LifecycleRuleFilterFilterSensitiveLog)(obj.Filter) }),\n});\nexports.LifecycleRuleFilterSensitiveLog = LifecycleRuleFilterSensitiveLog;\nconst GetBucketLifecycleConfigurationOutputFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.Rules && { Rules: obj.Rules.map((item) => (0, exports.LifecycleRuleFilterSensitiveLog)(item)) }),\n});\nexports.GetBucketLifecycleConfigurationOutputFilterSensitiveLog = GetBucketLifecycleConfigurationOutputFilterSensitiveLog;\nconst GetBucketLifecycleConfigurationRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.GetBucketLifecycleConfigurationRequestFilterSensitiveLog = GetBucketLifecycleConfigurationRequestFilterSensitiveLog;\nconst GetBucketLocationOutputFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.GetBucketLocationOutputFilterSensitiveLog = GetBucketLocationOutputFilterSensitiveLog;\nconst GetBucketLocationRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.GetBucketLocationRequestFilterSensitiveLog = GetBucketLocationRequestFilterSensitiveLog;\nconst TargetGrantFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.TargetGrantFilterSensitiveLog = TargetGrantFilterSensitiveLog;\nconst LoggingEnabledFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.LoggingEnabledFilterSensitiveLog = LoggingEnabledFilterSensitiveLog;\nconst GetBucketLoggingOutputFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.GetBucketLoggingOutputFilterSensitiveLog = GetBucketLoggingOutputFilterSensitiveLog;\nconst GetBucketLoggingRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.GetBucketLoggingRequestFilterSensitiveLog = GetBucketLoggingRequestFilterSensitiveLog;\nconst MetricsAndOperatorFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.MetricsAndOperatorFilterSensitiveLog = MetricsAndOperatorFilterSensitiveLog;\nconst MetricsFilterFilterSensitiveLog = (obj) => {\n if (obj.Prefix !== undefined)\n return { Prefix: obj.Prefix };\n if (obj.Tag !== undefined)\n return { Tag: (0, exports.TagFilterSensitiveLog)(obj.Tag) };\n if (obj.AccessPointArn !== undefined)\n return { AccessPointArn: obj.AccessPointArn };\n if (obj.And !== undefined)\n return { And: (0, exports.MetricsAndOperatorFilterSensitiveLog)(obj.And) };\n if (obj.$unknown !== undefined)\n return { [obj.$unknown[0]]: \"UNKNOWN\" };\n};\nexports.MetricsFilterFilterSensitiveLog = MetricsFilterFilterSensitiveLog;\nconst MetricsConfigurationFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.Filter && { Filter: (0, exports.MetricsFilterFilterSensitiveLog)(obj.Filter) }),\n});\nexports.MetricsConfigurationFilterSensitiveLog = MetricsConfigurationFilterSensitiveLog;\nconst GetBucketMetricsConfigurationOutputFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.MetricsConfiguration && {\n MetricsConfiguration: (0, exports.MetricsConfigurationFilterSensitiveLog)(obj.MetricsConfiguration),\n }),\n});\nexports.GetBucketMetricsConfigurationOutputFilterSensitiveLog = GetBucketMetricsConfigurationOutputFilterSensitiveLog;\nconst GetBucketMetricsConfigurationRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.GetBucketMetricsConfigurationRequestFilterSensitiveLog = GetBucketMetricsConfigurationRequestFilterSensitiveLog;\nconst GetBucketNotificationConfigurationRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.GetBucketNotificationConfigurationRequestFilterSensitiveLog = GetBucketNotificationConfigurationRequestFilterSensitiveLog;\nconst EventBridgeConfigurationFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.EventBridgeConfigurationFilterSensitiveLog = EventBridgeConfigurationFilterSensitiveLog;\nconst FilterRuleFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.FilterRuleFilterSensitiveLog = FilterRuleFilterSensitiveLog;\nconst S3KeyFilterFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.S3KeyFilterFilterSensitiveLog = S3KeyFilterFilterSensitiveLog;\nconst NotificationConfigurationFilterFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.NotificationConfigurationFilterFilterSensitiveLog = NotificationConfigurationFilterFilterSensitiveLog;\nconst LambdaFunctionConfigurationFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.LambdaFunctionConfigurationFilterSensitiveLog = LambdaFunctionConfigurationFilterSensitiveLog;\nconst QueueConfigurationFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.QueueConfigurationFilterSensitiveLog = QueueConfigurationFilterSensitiveLog;\nconst TopicConfigurationFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.TopicConfigurationFilterSensitiveLog = TopicConfigurationFilterSensitiveLog;\nconst NotificationConfigurationFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.NotificationConfigurationFilterSensitiveLog = NotificationConfigurationFilterSensitiveLog;\nconst OwnershipControlsRuleFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.OwnershipControlsRuleFilterSensitiveLog = OwnershipControlsRuleFilterSensitiveLog;\nconst OwnershipControlsFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.OwnershipControlsFilterSensitiveLog = OwnershipControlsFilterSensitiveLog;\nconst GetBucketOwnershipControlsOutputFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.GetBucketOwnershipControlsOutputFilterSensitiveLog = GetBucketOwnershipControlsOutputFilterSensitiveLog;\nconst GetBucketOwnershipControlsRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.GetBucketOwnershipControlsRequestFilterSensitiveLog = GetBucketOwnershipControlsRequestFilterSensitiveLog;\nconst GetBucketPolicyOutputFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.GetBucketPolicyOutputFilterSensitiveLog = GetBucketPolicyOutputFilterSensitiveLog;\nconst GetBucketPolicyRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.GetBucketPolicyRequestFilterSensitiveLog = GetBucketPolicyRequestFilterSensitiveLog;\nconst PolicyStatusFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.PolicyStatusFilterSensitiveLog = PolicyStatusFilterSensitiveLog;\nconst GetBucketPolicyStatusOutputFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.GetBucketPolicyStatusOutputFilterSensitiveLog = GetBucketPolicyStatusOutputFilterSensitiveLog;\nconst GetBucketPolicyStatusRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.GetBucketPolicyStatusRequestFilterSensitiveLog = GetBucketPolicyStatusRequestFilterSensitiveLog;\nconst DeleteMarkerReplicationFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.DeleteMarkerReplicationFilterSensitiveLog = DeleteMarkerReplicationFilterSensitiveLog;\nconst EncryptionConfigurationFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.EncryptionConfigurationFilterSensitiveLog = EncryptionConfigurationFilterSensitiveLog;\nconst ReplicationTimeValueFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.ReplicationTimeValueFilterSensitiveLog = ReplicationTimeValueFilterSensitiveLog;\nconst MetricsFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.MetricsFilterSensitiveLog = MetricsFilterSensitiveLog;\nconst ReplicationTimeFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.ReplicationTimeFilterSensitiveLog = ReplicationTimeFilterSensitiveLog;\nconst DestinationFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.DestinationFilterSensitiveLog = DestinationFilterSensitiveLog;\nconst ExistingObjectReplicationFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.ExistingObjectReplicationFilterSensitiveLog = ExistingObjectReplicationFilterSensitiveLog;\nconst ReplicationRuleAndOperatorFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.ReplicationRuleAndOperatorFilterSensitiveLog = ReplicationRuleAndOperatorFilterSensitiveLog;\nconst ReplicationRuleFilterFilterSensitiveLog = (obj) => {\n if (obj.Prefix !== undefined)\n return { Prefix: obj.Prefix };\n if (obj.Tag !== undefined)\n return { Tag: (0, exports.TagFilterSensitiveLog)(obj.Tag) };\n if (obj.And !== undefined)\n return { And: (0, exports.ReplicationRuleAndOperatorFilterSensitiveLog)(obj.And) };\n if (obj.$unknown !== undefined)\n return { [obj.$unknown[0]]: \"UNKNOWN\" };\n};\nexports.ReplicationRuleFilterFilterSensitiveLog = ReplicationRuleFilterFilterSensitiveLog;\nconst ReplicaModificationsFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.ReplicaModificationsFilterSensitiveLog = ReplicaModificationsFilterSensitiveLog;\nconst SseKmsEncryptedObjectsFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.SseKmsEncryptedObjectsFilterSensitiveLog = SseKmsEncryptedObjectsFilterSensitiveLog;\nconst SourceSelectionCriteriaFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.SourceSelectionCriteriaFilterSensitiveLog = SourceSelectionCriteriaFilterSensitiveLog;\nconst ReplicationRuleFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.Filter && { Filter: (0, exports.ReplicationRuleFilterFilterSensitiveLog)(obj.Filter) }),\n});\nexports.ReplicationRuleFilterSensitiveLog = ReplicationRuleFilterSensitiveLog;\nconst ReplicationConfigurationFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.Rules && { Rules: obj.Rules.map((item) => (0, exports.ReplicationRuleFilterSensitiveLog)(item)) }),\n});\nexports.ReplicationConfigurationFilterSensitiveLog = ReplicationConfigurationFilterSensitiveLog;\nconst GetBucketReplicationOutputFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.ReplicationConfiguration && {\n ReplicationConfiguration: (0, exports.ReplicationConfigurationFilterSensitiveLog)(obj.ReplicationConfiguration),\n }),\n});\nexports.GetBucketReplicationOutputFilterSensitiveLog = GetBucketReplicationOutputFilterSensitiveLog;\nconst GetBucketReplicationRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.GetBucketReplicationRequestFilterSensitiveLog = GetBucketReplicationRequestFilterSensitiveLog;\nconst GetBucketRequestPaymentOutputFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.GetBucketRequestPaymentOutputFilterSensitiveLog = GetBucketRequestPaymentOutputFilterSensitiveLog;\nconst GetBucketRequestPaymentRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.GetBucketRequestPaymentRequestFilterSensitiveLog = GetBucketRequestPaymentRequestFilterSensitiveLog;\nconst GetBucketTaggingOutputFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.GetBucketTaggingOutputFilterSensitiveLog = GetBucketTaggingOutputFilterSensitiveLog;\nconst GetBucketTaggingRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.GetBucketTaggingRequestFilterSensitiveLog = GetBucketTaggingRequestFilterSensitiveLog;\nconst GetBucketVersioningOutputFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.GetBucketVersioningOutputFilterSensitiveLog = GetBucketVersioningOutputFilterSensitiveLog;\nconst GetBucketVersioningRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.GetBucketVersioningRequestFilterSensitiveLog = GetBucketVersioningRequestFilterSensitiveLog;\nconst ErrorDocumentFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.ErrorDocumentFilterSensitiveLog = ErrorDocumentFilterSensitiveLog;\nconst IndexDocumentFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.IndexDocumentFilterSensitiveLog = IndexDocumentFilterSensitiveLog;\nconst RedirectAllRequestsToFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.RedirectAllRequestsToFilterSensitiveLog = RedirectAllRequestsToFilterSensitiveLog;\nconst ConditionFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.ConditionFilterSensitiveLog = ConditionFilterSensitiveLog;\nconst RedirectFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.RedirectFilterSensitiveLog = RedirectFilterSensitiveLog;\nconst RoutingRuleFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.RoutingRuleFilterSensitiveLog = RoutingRuleFilterSensitiveLog;\nconst GetBucketWebsiteOutputFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.GetBucketWebsiteOutputFilterSensitiveLog = GetBucketWebsiteOutputFilterSensitiveLog;\nconst GetBucketWebsiteRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.GetBucketWebsiteRequestFilterSensitiveLog = GetBucketWebsiteRequestFilterSensitiveLog;\nconst GetObjectOutputFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.SSEKMSKeyId && { SSEKMSKeyId: smithy_client_1.SENSITIVE_STRING }),\n});\nexports.GetObjectOutputFilterSensitiveLog = GetObjectOutputFilterSensitiveLog;\nconst GetObjectRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.SSECustomerKey && { SSECustomerKey: smithy_client_1.SENSITIVE_STRING }),\n});\nexports.GetObjectRequestFilterSensitiveLog = GetObjectRequestFilterSensitiveLog;\nconst GetObjectAclOutputFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.GetObjectAclOutputFilterSensitiveLog = GetObjectAclOutputFilterSensitiveLog;\nconst GetObjectAclRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.GetObjectAclRequestFilterSensitiveLog = GetObjectAclRequestFilterSensitiveLog;\nconst ChecksumFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.ChecksumFilterSensitiveLog = ChecksumFilterSensitiveLog;\nconst ObjectPartFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.ObjectPartFilterSensitiveLog = ObjectPartFilterSensitiveLog;\nconst GetObjectAttributesPartsFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.GetObjectAttributesPartsFilterSensitiveLog = GetObjectAttributesPartsFilterSensitiveLog;\nconst GetObjectAttributesOutputFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.GetObjectAttributesOutputFilterSensitiveLog = GetObjectAttributesOutputFilterSensitiveLog;\nconst GetObjectAttributesRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.SSECustomerKey && { SSECustomerKey: smithy_client_1.SENSITIVE_STRING }),\n});\nexports.GetObjectAttributesRequestFilterSensitiveLog = GetObjectAttributesRequestFilterSensitiveLog;\nconst ObjectLockLegalHoldFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.ObjectLockLegalHoldFilterSensitiveLog = ObjectLockLegalHoldFilterSensitiveLog;\nconst GetObjectLegalHoldOutputFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.GetObjectLegalHoldOutputFilterSensitiveLog = GetObjectLegalHoldOutputFilterSensitiveLog;\nconst GetObjectLegalHoldRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.GetObjectLegalHoldRequestFilterSensitiveLog = GetObjectLegalHoldRequestFilterSensitiveLog;\nconst DefaultRetentionFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.DefaultRetentionFilterSensitiveLog = DefaultRetentionFilterSensitiveLog;\nconst ObjectLockRuleFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.ObjectLockRuleFilterSensitiveLog = ObjectLockRuleFilterSensitiveLog;\nconst ObjectLockConfigurationFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.ObjectLockConfigurationFilterSensitiveLog = ObjectLockConfigurationFilterSensitiveLog;\nconst GetObjectLockConfigurationOutputFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.GetObjectLockConfigurationOutputFilterSensitiveLog = GetObjectLockConfigurationOutputFilterSensitiveLog;\nconst GetObjectLockConfigurationRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.GetObjectLockConfigurationRequestFilterSensitiveLog = GetObjectLockConfigurationRequestFilterSensitiveLog;\nconst ObjectLockRetentionFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.ObjectLockRetentionFilterSensitiveLog = ObjectLockRetentionFilterSensitiveLog;\nconst GetObjectRetentionOutputFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.GetObjectRetentionOutputFilterSensitiveLog = GetObjectRetentionOutputFilterSensitiveLog;\nconst GetObjectRetentionRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.GetObjectRetentionRequestFilterSensitiveLog = GetObjectRetentionRequestFilterSensitiveLog;\nconst GetObjectTaggingOutputFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.GetObjectTaggingOutputFilterSensitiveLog = GetObjectTaggingOutputFilterSensitiveLog;\nconst GetObjectTaggingRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.GetObjectTaggingRequestFilterSensitiveLog = GetObjectTaggingRequestFilterSensitiveLog;\nconst GetObjectTorrentOutputFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.GetObjectTorrentOutputFilterSensitiveLog = GetObjectTorrentOutputFilterSensitiveLog;\nconst GetObjectTorrentRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.GetObjectTorrentRequestFilterSensitiveLog = GetObjectTorrentRequestFilterSensitiveLog;\nconst PublicAccessBlockConfigurationFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.PublicAccessBlockConfigurationFilterSensitiveLog = PublicAccessBlockConfigurationFilterSensitiveLog;\nconst GetPublicAccessBlockOutputFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.GetPublicAccessBlockOutputFilterSensitiveLog = GetPublicAccessBlockOutputFilterSensitiveLog;\nconst GetPublicAccessBlockRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.GetPublicAccessBlockRequestFilterSensitiveLog = GetPublicAccessBlockRequestFilterSensitiveLog;\nconst HeadBucketRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.HeadBucketRequestFilterSensitiveLog = HeadBucketRequestFilterSensitiveLog;\nconst HeadObjectOutputFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.SSEKMSKeyId && { SSEKMSKeyId: smithy_client_1.SENSITIVE_STRING }),\n});\nexports.HeadObjectOutputFilterSensitiveLog = HeadObjectOutputFilterSensitiveLog;\nconst HeadObjectRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.SSECustomerKey && { SSECustomerKey: smithy_client_1.SENSITIVE_STRING }),\n});\nexports.HeadObjectRequestFilterSensitiveLog = HeadObjectRequestFilterSensitiveLog;\nconst ListBucketAnalyticsConfigurationsOutputFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.AnalyticsConfigurationList && {\n AnalyticsConfigurationList: obj.AnalyticsConfigurationList.map((item) => (0, exports.AnalyticsConfigurationFilterSensitiveLog)(item)),\n }),\n});\nexports.ListBucketAnalyticsConfigurationsOutputFilterSensitiveLog = ListBucketAnalyticsConfigurationsOutputFilterSensitiveLog;\nconst ListBucketAnalyticsConfigurationsRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.ListBucketAnalyticsConfigurationsRequestFilterSensitiveLog = ListBucketAnalyticsConfigurationsRequestFilterSensitiveLog;\nconst ListBucketIntelligentTieringConfigurationsOutputFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.ListBucketIntelligentTieringConfigurationsOutputFilterSensitiveLog = ListBucketIntelligentTieringConfigurationsOutputFilterSensitiveLog;\nconst ListBucketIntelligentTieringConfigurationsRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.ListBucketIntelligentTieringConfigurationsRequestFilterSensitiveLog = ListBucketIntelligentTieringConfigurationsRequestFilterSensitiveLog;\nconst ListBucketInventoryConfigurationsOutputFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.InventoryConfigurationList && {\n InventoryConfigurationList: obj.InventoryConfigurationList.map((item) => (0, exports.InventoryConfigurationFilterSensitiveLog)(item)),\n }),\n});\nexports.ListBucketInventoryConfigurationsOutputFilterSensitiveLog = ListBucketInventoryConfigurationsOutputFilterSensitiveLog;\nconst ListBucketInventoryConfigurationsRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.ListBucketInventoryConfigurationsRequestFilterSensitiveLog = ListBucketInventoryConfigurationsRequestFilterSensitiveLog;\nconst ListBucketMetricsConfigurationsOutputFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.MetricsConfigurationList && {\n MetricsConfigurationList: obj.MetricsConfigurationList.map((item) => (0, exports.MetricsConfigurationFilterSensitiveLog)(item)),\n }),\n});\nexports.ListBucketMetricsConfigurationsOutputFilterSensitiveLog = ListBucketMetricsConfigurationsOutputFilterSensitiveLog;\nconst ListBucketMetricsConfigurationsRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.ListBucketMetricsConfigurationsRequestFilterSensitiveLog = ListBucketMetricsConfigurationsRequestFilterSensitiveLog;\nconst BucketFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.BucketFilterSensitiveLog = BucketFilterSensitiveLog;\nconst ListBucketsOutputFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.ListBucketsOutputFilterSensitiveLog = ListBucketsOutputFilterSensitiveLog;\nconst CommonPrefixFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.CommonPrefixFilterSensitiveLog = CommonPrefixFilterSensitiveLog;\nconst InitiatorFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.InitiatorFilterSensitiveLog = InitiatorFilterSensitiveLog;\nconst MultipartUploadFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.MultipartUploadFilterSensitiveLog = MultipartUploadFilterSensitiveLog;\nconst ListMultipartUploadsOutputFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.ListMultipartUploadsOutputFilterSensitiveLog = ListMultipartUploadsOutputFilterSensitiveLog;\nconst ListMultipartUploadsRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.ListMultipartUploadsRequestFilterSensitiveLog = ListMultipartUploadsRequestFilterSensitiveLog;\nconst _ObjectFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports._ObjectFilterSensitiveLog = _ObjectFilterSensitiveLog;\nconst ListObjectsOutputFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.ListObjectsOutputFilterSensitiveLog = ListObjectsOutputFilterSensitiveLog;\nconst ListObjectsRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.ListObjectsRequestFilterSensitiveLog = ListObjectsRequestFilterSensitiveLog;\nconst ListObjectsV2OutputFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.ListObjectsV2OutputFilterSensitiveLog = ListObjectsV2OutputFilterSensitiveLog;\nconst ListObjectsV2RequestFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.ListObjectsV2RequestFilterSensitiveLog = ListObjectsV2RequestFilterSensitiveLog;\nconst DeleteMarkerEntryFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.DeleteMarkerEntryFilterSensitiveLog = DeleteMarkerEntryFilterSensitiveLog;\nconst ObjectVersionFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.ObjectVersionFilterSensitiveLog = ObjectVersionFilterSensitiveLog;\nconst ListObjectVersionsOutputFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.ListObjectVersionsOutputFilterSensitiveLog = ListObjectVersionsOutputFilterSensitiveLog;\nconst ListObjectVersionsRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.ListObjectVersionsRequestFilterSensitiveLog = ListObjectVersionsRequestFilterSensitiveLog;\nconst PartFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.PartFilterSensitiveLog = PartFilterSensitiveLog;\nconst ListPartsOutputFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.ListPartsOutputFilterSensitiveLog = ListPartsOutputFilterSensitiveLog;\nconst ListPartsRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.SSECustomerKey && { SSECustomerKey: smithy_client_1.SENSITIVE_STRING }),\n});\nexports.ListPartsRequestFilterSensitiveLog = ListPartsRequestFilterSensitiveLog;\nconst PutBucketAccelerateConfigurationRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.PutBucketAccelerateConfigurationRequestFilterSensitiveLog = PutBucketAccelerateConfigurationRequestFilterSensitiveLog;\nconst PutBucketAclRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.PutBucketAclRequestFilterSensitiveLog = PutBucketAclRequestFilterSensitiveLog;\nconst PutBucketAnalyticsConfigurationRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.AnalyticsConfiguration && {\n AnalyticsConfiguration: (0, exports.AnalyticsConfigurationFilterSensitiveLog)(obj.AnalyticsConfiguration),\n }),\n});\nexports.PutBucketAnalyticsConfigurationRequestFilterSensitiveLog = PutBucketAnalyticsConfigurationRequestFilterSensitiveLog;\nconst CORSConfigurationFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.CORSConfigurationFilterSensitiveLog = CORSConfigurationFilterSensitiveLog;\nconst PutBucketCorsRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.PutBucketCorsRequestFilterSensitiveLog = PutBucketCorsRequestFilterSensitiveLog;\nconst PutBucketEncryptionRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.ServerSideEncryptionConfiguration && {\n ServerSideEncryptionConfiguration: (0, exports.ServerSideEncryptionConfigurationFilterSensitiveLog)(obj.ServerSideEncryptionConfiguration),\n }),\n});\nexports.PutBucketEncryptionRequestFilterSensitiveLog = PutBucketEncryptionRequestFilterSensitiveLog;\nconst PutBucketIntelligentTieringConfigurationRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.PutBucketIntelligentTieringConfigurationRequestFilterSensitiveLog = PutBucketIntelligentTieringConfigurationRequestFilterSensitiveLog;\nconst PutBucketInventoryConfigurationRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.InventoryConfiguration && {\n InventoryConfiguration: (0, exports.InventoryConfigurationFilterSensitiveLog)(obj.InventoryConfiguration),\n }),\n});\nexports.PutBucketInventoryConfigurationRequestFilterSensitiveLog = PutBucketInventoryConfigurationRequestFilterSensitiveLog;\nconst BucketLifecycleConfigurationFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.Rules && { Rules: obj.Rules.map((item) => (0, exports.LifecycleRuleFilterSensitiveLog)(item)) }),\n});\nexports.BucketLifecycleConfigurationFilterSensitiveLog = BucketLifecycleConfigurationFilterSensitiveLog;\nconst PutBucketLifecycleConfigurationRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.LifecycleConfiguration && {\n LifecycleConfiguration: (0, exports.BucketLifecycleConfigurationFilterSensitiveLog)(obj.LifecycleConfiguration),\n }),\n});\nexports.PutBucketLifecycleConfigurationRequestFilterSensitiveLog = PutBucketLifecycleConfigurationRequestFilterSensitiveLog;\nconst BucketLoggingStatusFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.BucketLoggingStatusFilterSensitiveLog = BucketLoggingStatusFilterSensitiveLog;\nconst PutBucketLoggingRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.PutBucketLoggingRequestFilterSensitiveLog = PutBucketLoggingRequestFilterSensitiveLog;\nconst PutBucketMetricsConfigurationRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.MetricsConfiguration && {\n MetricsConfiguration: (0, exports.MetricsConfigurationFilterSensitiveLog)(obj.MetricsConfiguration),\n }),\n});\nexports.PutBucketMetricsConfigurationRequestFilterSensitiveLog = PutBucketMetricsConfigurationRequestFilterSensitiveLog;\nconst PutBucketNotificationConfigurationRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.PutBucketNotificationConfigurationRequestFilterSensitiveLog = PutBucketNotificationConfigurationRequestFilterSensitiveLog;\nconst PutBucketOwnershipControlsRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.PutBucketOwnershipControlsRequestFilterSensitiveLog = PutBucketOwnershipControlsRequestFilterSensitiveLog;\nconst PutBucketPolicyRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.PutBucketPolicyRequestFilterSensitiveLog = PutBucketPolicyRequestFilterSensitiveLog;\nconst PutBucketReplicationRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.ReplicationConfiguration && {\n ReplicationConfiguration: (0, exports.ReplicationConfigurationFilterSensitiveLog)(obj.ReplicationConfiguration),\n }),\n});\nexports.PutBucketReplicationRequestFilterSensitiveLog = PutBucketReplicationRequestFilterSensitiveLog;\nconst RequestPaymentConfigurationFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.RequestPaymentConfigurationFilterSensitiveLog = RequestPaymentConfigurationFilterSensitiveLog;\nconst PutBucketRequestPaymentRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.PutBucketRequestPaymentRequestFilterSensitiveLog = PutBucketRequestPaymentRequestFilterSensitiveLog;\nconst TaggingFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.TaggingFilterSensitiveLog = TaggingFilterSensitiveLog;\nconst PutBucketTaggingRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.PutBucketTaggingRequestFilterSensitiveLog = PutBucketTaggingRequestFilterSensitiveLog;\nconst VersioningConfigurationFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.VersioningConfigurationFilterSensitiveLog = VersioningConfigurationFilterSensitiveLog;\nconst PutBucketVersioningRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.PutBucketVersioningRequestFilterSensitiveLog = PutBucketVersioningRequestFilterSensitiveLog;\nconst WebsiteConfigurationFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.WebsiteConfigurationFilterSensitiveLog = WebsiteConfigurationFilterSensitiveLog;\nconst PutBucketWebsiteRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.PutBucketWebsiteRequestFilterSensitiveLog = PutBucketWebsiteRequestFilterSensitiveLog;\nconst PutObjectOutputFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.SSEKMSKeyId && { SSEKMSKeyId: smithy_client_1.SENSITIVE_STRING }),\n ...(obj.SSEKMSEncryptionContext && { SSEKMSEncryptionContext: smithy_client_1.SENSITIVE_STRING }),\n});\nexports.PutObjectOutputFilterSensitiveLog = PutObjectOutputFilterSensitiveLog;\nconst PutObjectRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.SSECustomerKey && { SSECustomerKey: smithy_client_1.SENSITIVE_STRING }),\n ...(obj.SSEKMSKeyId && { SSEKMSKeyId: smithy_client_1.SENSITIVE_STRING }),\n ...(obj.SSEKMSEncryptionContext && { SSEKMSEncryptionContext: smithy_client_1.SENSITIVE_STRING }),\n});\nexports.PutObjectRequestFilterSensitiveLog = PutObjectRequestFilterSensitiveLog;\nconst PutObjectAclOutputFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.PutObjectAclOutputFilterSensitiveLog = PutObjectAclOutputFilterSensitiveLog;\nconst PutObjectAclRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.PutObjectAclRequestFilterSensitiveLog = PutObjectAclRequestFilterSensitiveLog;\nconst PutObjectLegalHoldOutputFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.PutObjectLegalHoldOutputFilterSensitiveLog = PutObjectLegalHoldOutputFilterSensitiveLog;\nconst PutObjectLegalHoldRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.PutObjectLegalHoldRequestFilterSensitiveLog = PutObjectLegalHoldRequestFilterSensitiveLog;\nconst PutObjectLockConfigurationOutputFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.PutObjectLockConfigurationOutputFilterSensitiveLog = PutObjectLockConfigurationOutputFilterSensitiveLog;\nconst PutObjectLockConfigurationRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.PutObjectLockConfigurationRequestFilterSensitiveLog = PutObjectLockConfigurationRequestFilterSensitiveLog;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.escapeAttribute = void 0;\nfunction escapeAttribute(value) {\n return value.replace(/&/g, \"&\").replace(//g, \">\").replace(/\"/g, \""\");\n}\nexports.escapeAttribute = escapeAttribute;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.escapeElement = void 0;\nfunction escapeElement(value) {\n return value\n .replace(/&/g, \"&\")\n .replace(/\"/g, \""\")\n .replace(/'/g, \"'\")\n .replace(//g, \">\")\n .replace(/\\r/g, \" \")\n .replace(/\\n/g, \" \")\n .replace(/\\u0085/g, \"…\")\n .replace(/\\u2028/, \"
\");\n}\nexports.escapeElement = escapeElement;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.XmlText = void 0;\nconst escape_element_1 = require(\"./escape-element\");\nclass XmlText {\n constructor(value) {\n this.value = value;\n }\n toString() {\n return (0, escape_element_1.escapeElement)(\"\" + this.value);\n }\n}\nexports.XmlText = XmlText;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.XmlNode = void 0;\nconst escape_attribute_1 = require(\"./escape-attribute\");\nconst XmlText_1 = require(\"./XmlText\");\nclass XmlNode {\n constructor(name, children = []) {\n this.name = name;\n this.children = children;\n this.attributes = {};\n }\n static of(name, childText, withName) {\n const node = new XmlNode(name);\n if (childText !== undefined) {\n node.addChildNode(new XmlText_1.XmlText(childText));\n }\n if (withName !== undefined) {\n node.withName(withName);\n }\n return node;\n }\n withName(name) {\n this.name = name;\n return this;\n }\n addAttribute(name, value) {\n this.attributes[name] = value;\n return this;\n }\n addChildNode(child) {\n this.children.push(child);\n return this;\n }\n removeAttribute(name) {\n delete this.attributes[name];\n return this;\n }\n toString() {\n const hasChildren = Boolean(this.children.length);\n let xmlText = `<${this.name}`;\n const attributes = this.attributes;\n for (const attributeName of Object.keys(attributes)) {\n const attribute = attributes[attributeName];\n if (typeof attribute !== \"undefined\" && attribute !== null) {\n xmlText += ` ${attributeName}=\"${(0, escape_attribute_1.escapeAttribute)(\"\" + attribute)}\"`;\n }\n }\n return (xmlText += !hasChildren ? \"/>\" : `>${this.children.map((c) => c.toString()).join(\"\")}`);\n }\n}\nexports.XmlNode = XmlNode;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./XmlNode\"), exports);\ntslib_1.__exportStar(require(\"./XmlText\"), exports);\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.WriteGetObjectResponseRequestFilterSensitiveLog = exports.UploadPartCopyRequestFilterSensitiveLog = exports.UploadPartCopyOutputFilterSensitiveLog = exports.CopyPartResultFilterSensitiveLog = exports.UploadPartRequestFilterSensitiveLog = exports.UploadPartOutputFilterSensitiveLog = exports.SelectObjectContentRequestFilterSensitiveLog = exports.ScanRangeFilterSensitiveLog = exports.RequestProgressFilterSensitiveLog = exports.SelectObjectContentOutputFilterSensitiveLog = exports.SelectObjectContentEventStreamFilterSensitiveLog = exports.StatsEventFilterSensitiveLog = exports.StatsFilterSensitiveLog = exports.RecordsEventFilterSensitiveLog = exports.ProgressEventFilterSensitiveLog = exports.ProgressFilterSensitiveLog = exports.EndEventFilterSensitiveLog = exports.ContinuationEventFilterSensitiveLog = exports.RestoreObjectRequestFilterSensitiveLog = exports.RestoreRequestFilterSensitiveLog = exports.SelectParametersFilterSensitiveLog = exports.OutputSerializationFilterSensitiveLog = exports.JSONOutputFilterSensitiveLog = exports.CSVOutputFilterSensitiveLog = exports.InputSerializationFilterSensitiveLog = exports.ParquetInputFilterSensitiveLog = exports.JSONInputFilterSensitiveLog = exports.CSVInputFilterSensitiveLog = exports.OutputLocationFilterSensitiveLog = exports.S3LocationFilterSensitiveLog = exports.MetadataEntryFilterSensitiveLog = exports.EncryptionFilterSensitiveLog = exports.GlacierJobParametersFilterSensitiveLog = exports.RestoreObjectOutputFilterSensitiveLog = exports.PutPublicAccessBlockRequestFilterSensitiveLog = exports.PutObjectTaggingRequestFilterSensitiveLog = exports.PutObjectTaggingOutputFilterSensitiveLog = exports.PutObjectRetentionRequestFilterSensitiveLog = exports.PutObjectRetentionOutputFilterSensitiveLog = exports.SelectObjectContentEventStream = exports.RestoreRequestType = exports.QuoteFields = exports.JSONType = exports.FileHeaderInfo = exports.CompressionType = exports.ExpressionType = exports.Tier = exports.ObjectAlreadyInActiveTierError = void 0;\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst S3ServiceException_1 = require(\"./S3ServiceException\");\nclass ObjectAlreadyInActiveTierError extends S3ServiceException_1.S3ServiceException {\n constructor(opts) {\n super({\n name: \"ObjectAlreadyInActiveTierError\",\n $fault: \"client\",\n ...opts,\n });\n this.name = \"ObjectAlreadyInActiveTierError\";\n this.$fault = \"client\";\n Object.setPrototypeOf(this, ObjectAlreadyInActiveTierError.prototype);\n }\n}\nexports.ObjectAlreadyInActiveTierError = ObjectAlreadyInActiveTierError;\nvar Tier;\n(function (Tier) {\n Tier[\"Bulk\"] = \"Bulk\";\n Tier[\"Expedited\"] = \"Expedited\";\n Tier[\"Standard\"] = \"Standard\";\n})(Tier = exports.Tier || (exports.Tier = {}));\nvar ExpressionType;\n(function (ExpressionType) {\n ExpressionType[\"SQL\"] = \"SQL\";\n})(ExpressionType = exports.ExpressionType || (exports.ExpressionType = {}));\nvar CompressionType;\n(function (CompressionType) {\n CompressionType[\"BZIP2\"] = \"BZIP2\";\n CompressionType[\"GZIP\"] = \"GZIP\";\n CompressionType[\"NONE\"] = \"NONE\";\n})(CompressionType = exports.CompressionType || (exports.CompressionType = {}));\nvar FileHeaderInfo;\n(function (FileHeaderInfo) {\n FileHeaderInfo[\"IGNORE\"] = \"IGNORE\";\n FileHeaderInfo[\"NONE\"] = \"NONE\";\n FileHeaderInfo[\"USE\"] = \"USE\";\n})(FileHeaderInfo = exports.FileHeaderInfo || (exports.FileHeaderInfo = {}));\nvar JSONType;\n(function (JSONType) {\n JSONType[\"DOCUMENT\"] = \"DOCUMENT\";\n JSONType[\"LINES\"] = \"LINES\";\n})(JSONType = exports.JSONType || (exports.JSONType = {}));\nvar QuoteFields;\n(function (QuoteFields) {\n QuoteFields[\"ALWAYS\"] = \"ALWAYS\";\n QuoteFields[\"ASNEEDED\"] = \"ASNEEDED\";\n})(QuoteFields = exports.QuoteFields || (exports.QuoteFields = {}));\nvar RestoreRequestType;\n(function (RestoreRequestType) {\n RestoreRequestType[\"SELECT\"] = \"SELECT\";\n})(RestoreRequestType = exports.RestoreRequestType || (exports.RestoreRequestType = {}));\nvar SelectObjectContentEventStream;\n(function (SelectObjectContentEventStream) {\n SelectObjectContentEventStream.visit = (value, visitor) => {\n if (value.Records !== undefined)\n return visitor.Records(value.Records);\n if (value.Stats !== undefined)\n return visitor.Stats(value.Stats);\n if (value.Progress !== undefined)\n return visitor.Progress(value.Progress);\n if (value.Cont !== undefined)\n return visitor.Cont(value.Cont);\n if (value.End !== undefined)\n return visitor.End(value.End);\n return visitor._(value.$unknown[0], value.$unknown[1]);\n };\n})(SelectObjectContentEventStream = exports.SelectObjectContentEventStream || (exports.SelectObjectContentEventStream = {}));\nconst PutObjectRetentionOutputFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.PutObjectRetentionOutputFilterSensitiveLog = PutObjectRetentionOutputFilterSensitiveLog;\nconst PutObjectRetentionRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.PutObjectRetentionRequestFilterSensitiveLog = PutObjectRetentionRequestFilterSensitiveLog;\nconst PutObjectTaggingOutputFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.PutObjectTaggingOutputFilterSensitiveLog = PutObjectTaggingOutputFilterSensitiveLog;\nconst PutObjectTaggingRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.PutObjectTaggingRequestFilterSensitiveLog = PutObjectTaggingRequestFilterSensitiveLog;\nconst PutPublicAccessBlockRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.PutPublicAccessBlockRequestFilterSensitiveLog = PutPublicAccessBlockRequestFilterSensitiveLog;\nconst RestoreObjectOutputFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.RestoreObjectOutputFilterSensitiveLog = RestoreObjectOutputFilterSensitiveLog;\nconst GlacierJobParametersFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.GlacierJobParametersFilterSensitiveLog = GlacierJobParametersFilterSensitiveLog;\nconst EncryptionFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.KMSKeyId && { KMSKeyId: smithy_client_1.SENSITIVE_STRING }),\n});\nexports.EncryptionFilterSensitiveLog = EncryptionFilterSensitiveLog;\nconst MetadataEntryFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.MetadataEntryFilterSensitiveLog = MetadataEntryFilterSensitiveLog;\nconst S3LocationFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.Encryption && { Encryption: (0, exports.EncryptionFilterSensitiveLog)(obj.Encryption) }),\n});\nexports.S3LocationFilterSensitiveLog = S3LocationFilterSensitiveLog;\nconst OutputLocationFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.S3 && { S3: (0, exports.S3LocationFilterSensitiveLog)(obj.S3) }),\n});\nexports.OutputLocationFilterSensitiveLog = OutputLocationFilterSensitiveLog;\nconst CSVInputFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.CSVInputFilterSensitiveLog = CSVInputFilterSensitiveLog;\nconst JSONInputFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.JSONInputFilterSensitiveLog = JSONInputFilterSensitiveLog;\nconst ParquetInputFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.ParquetInputFilterSensitiveLog = ParquetInputFilterSensitiveLog;\nconst InputSerializationFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.InputSerializationFilterSensitiveLog = InputSerializationFilterSensitiveLog;\nconst CSVOutputFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.CSVOutputFilterSensitiveLog = CSVOutputFilterSensitiveLog;\nconst JSONOutputFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.JSONOutputFilterSensitiveLog = JSONOutputFilterSensitiveLog;\nconst OutputSerializationFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.OutputSerializationFilterSensitiveLog = OutputSerializationFilterSensitiveLog;\nconst SelectParametersFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.SelectParametersFilterSensitiveLog = SelectParametersFilterSensitiveLog;\nconst RestoreRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.OutputLocation && { OutputLocation: (0, exports.OutputLocationFilterSensitiveLog)(obj.OutputLocation) }),\n});\nexports.RestoreRequestFilterSensitiveLog = RestoreRequestFilterSensitiveLog;\nconst RestoreObjectRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.RestoreRequest && { RestoreRequest: (0, exports.RestoreRequestFilterSensitiveLog)(obj.RestoreRequest) }),\n});\nexports.RestoreObjectRequestFilterSensitiveLog = RestoreObjectRequestFilterSensitiveLog;\nconst ContinuationEventFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.ContinuationEventFilterSensitiveLog = ContinuationEventFilterSensitiveLog;\nconst EndEventFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.EndEventFilterSensitiveLog = EndEventFilterSensitiveLog;\nconst ProgressFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.ProgressFilterSensitiveLog = ProgressFilterSensitiveLog;\nconst ProgressEventFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.ProgressEventFilterSensitiveLog = ProgressEventFilterSensitiveLog;\nconst RecordsEventFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.RecordsEventFilterSensitiveLog = RecordsEventFilterSensitiveLog;\nconst StatsFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.StatsFilterSensitiveLog = StatsFilterSensitiveLog;\nconst StatsEventFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.StatsEventFilterSensitiveLog = StatsEventFilterSensitiveLog;\nconst SelectObjectContentEventStreamFilterSensitiveLog = (obj) => {\n if (obj.Records !== undefined)\n return { Records: (0, exports.RecordsEventFilterSensitiveLog)(obj.Records) };\n if (obj.Stats !== undefined)\n return { Stats: (0, exports.StatsEventFilterSensitiveLog)(obj.Stats) };\n if (obj.Progress !== undefined)\n return { Progress: (0, exports.ProgressEventFilterSensitiveLog)(obj.Progress) };\n if (obj.Cont !== undefined)\n return { Cont: (0, exports.ContinuationEventFilterSensitiveLog)(obj.Cont) };\n if (obj.End !== undefined)\n return { End: (0, exports.EndEventFilterSensitiveLog)(obj.End) };\n if (obj.$unknown !== undefined)\n return { [obj.$unknown[0]]: \"UNKNOWN\" };\n};\nexports.SelectObjectContentEventStreamFilterSensitiveLog = SelectObjectContentEventStreamFilterSensitiveLog;\nconst SelectObjectContentOutputFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.Payload && { Payload: \"STREAMING_CONTENT\" }),\n});\nexports.SelectObjectContentOutputFilterSensitiveLog = SelectObjectContentOutputFilterSensitiveLog;\nconst RequestProgressFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.RequestProgressFilterSensitiveLog = RequestProgressFilterSensitiveLog;\nconst ScanRangeFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.ScanRangeFilterSensitiveLog = ScanRangeFilterSensitiveLog;\nconst SelectObjectContentRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.SSECustomerKey && { SSECustomerKey: smithy_client_1.SENSITIVE_STRING }),\n});\nexports.SelectObjectContentRequestFilterSensitiveLog = SelectObjectContentRequestFilterSensitiveLog;\nconst UploadPartOutputFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.SSEKMSKeyId && { SSEKMSKeyId: smithy_client_1.SENSITIVE_STRING }),\n});\nexports.UploadPartOutputFilterSensitiveLog = UploadPartOutputFilterSensitiveLog;\nconst UploadPartRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.SSECustomerKey && { SSECustomerKey: smithy_client_1.SENSITIVE_STRING }),\n});\nexports.UploadPartRequestFilterSensitiveLog = UploadPartRequestFilterSensitiveLog;\nconst CopyPartResultFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.CopyPartResultFilterSensitiveLog = CopyPartResultFilterSensitiveLog;\nconst UploadPartCopyOutputFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.SSEKMSKeyId && { SSEKMSKeyId: smithy_client_1.SENSITIVE_STRING }),\n});\nexports.UploadPartCopyOutputFilterSensitiveLog = UploadPartCopyOutputFilterSensitiveLog;\nconst UploadPartCopyRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.SSECustomerKey && { SSECustomerKey: smithy_client_1.SENSITIVE_STRING }),\n ...(obj.CopySourceSSECustomerKey && { CopySourceSSECustomerKey: smithy_client_1.SENSITIVE_STRING }),\n});\nexports.UploadPartCopyRequestFilterSensitiveLog = UploadPartCopyRequestFilterSensitiveLog;\nconst WriteGetObjectResponseRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.SSEKMSKeyId && { SSEKMSKeyId: smithy_client_1.SENSITIVE_STRING }),\n});\nexports.WriteGetObjectResponseRequestFilterSensitiveLog = WriteGetObjectResponseRequestFilterSensitiveLog;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.serializeAws_restXmlGetObjectTorrentCommand = exports.serializeAws_restXmlGetObjectTaggingCommand = exports.serializeAws_restXmlGetObjectRetentionCommand = exports.serializeAws_restXmlGetObjectLockConfigurationCommand = exports.serializeAws_restXmlGetObjectLegalHoldCommand = exports.serializeAws_restXmlGetObjectAttributesCommand = exports.serializeAws_restXmlGetObjectAclCommand = exports.serializeAws_restXmlGetObjectCommand = exports.serializeAws_restXmlGetBucketWebsiteCommand = exports.serializeAws_restXmlGetBucketVersioningCommand = exports.serializeAws_restXmlGetBucketTaggingCommand = exports.serializeAws_restXmlGetBucketRequestPaymentCommand = exports.serializeAws_restXmlGetBucketReplicationCommand = exports.serializeAws_restXmlGetBucketPolicyStatusCommand = exports.serializeAws_restXmlGetBucketPolicyCommand = exports.serializeAws_restXmlGetBucketOwnershipControlsCommand = exports.serializeAws_restXmlGetBucketNotificationConfigurationCommand = exports.serializeAws_restXmlGetBucketMetricsConfigurationCommand = exports.serializeAws_restXmlGetBucketLoggingCommand = exports.serializeAws_restXmlGetBucketLocationCommand = exports.serializeAws_restXmlGetBucketLifecycleConfigurationCommand = exports.serializeAws_restXmlGetBucketInventoryConfigurationCommand = exports.serializeAws_restXmlGetBucketIntelligentTieringConfigurationCommand = exports.serializeAws_restXmlGetBucketEncryptionCommand = exports.serializeAws_restXmlGetBucketCorsCommand = exports.serializeAws_restXmlGetBucketAnalyticsConfigurationCommand = exports.serializeAws_restXmlGetBucketAclCommand = exports.serializeAws_restXmlGetBucketAccelerateConfigurationCommand = exports.serializeAws_restXmlDeletePublicAccessBlockCommand = exports.serializeAws_restXmlDeleteObjectTaggingCommand = exports.serializeAws_restXmlDeleteObjectsCommand = exports.serializeAws_restXmlDeleteObjectCommand = exports.serializeAws_restXmlDeleteBucketWebsiteCommand = exports.serializeAws_restXmlDeleteBucketTaggingCommand = exports.serializeAws_restXmlDeleteBucketReplicationCommand = exports.serializeAws_restXmlDeleteBucketPolicyCommand = exports.serializeAws_restXmlDeleteBucketOwnershipControlsCommand = exports.serializeAws_restXmlDeleteBucketMetricsConfigurationCommand = exports.serializeAws_restXmlDeleteBucketLifecycleCommand = exports.serializeAws_restXmlDeleteBucketInventoryConfigurationCommand = exports.serializeAws_restXmlDeleteBucketIntelligentTieringConfigurationCommand = exports.serializeAws_restXmlDeleteBucketEncryptionCommand = exports.serializeAws_restXmlDeleteBucketCorsCommand = exports.serializeAws_restXmlDeleteBucketAnalyticsConfigurationCommand = exports.serializeAws_restXmlDeleteBucketCommand = exports.serializeAws_restXmlCreateMultipartUploadCommand = exports.serializeAws_restXmlCreateBucketCommand = exports.serializeAws_restXmlCopyObjectCommand = exports.serializeAws_restXmlCompleteMultipartUploadCommand = exports.serializeAws_restXmlAbortMultipartUploadCommand = void 0;\nexports.deserializeAws_restXmlDeleteBucketAnalyticsConfigurationCommand = exports.deserializeAws_restXmlDeleteBucketCommand = exports.deserializeAws_restXmlCreateMultipartUploadCommand = exports.deserializeAws_restXmlCreateBucketCommand = exports.deserializeAws_restXmlCopyObjectCommand = exports.deserializeAws_restXmlCompleteMultipartUploadCommand = exports.deserializeAws_restXmlAbortMultipartUploadCommand = exports.serializeAws_restXmlWriteGetObjectResponseCommand = exports.serializeAws_restXmlUploadPartCopyCommand = exports.serializeAws_restXmlUploadPartCommand = exports.serializeAws_restXmlSelectObjectContentCommand = exports.serializeAws_restXmlRestoreObjectCommand = exports.serializeAws_restXmlPutPublicAccessBlockCommand = exports.serializeAws_restXmlPutObjectTaggingCommand = exports.serializeAws_restXmlPutObjectRetentionCommand = exports.serializeAws_restXmlPutObjectLockConfigurationCommand = exports.serializeAws_restXmlPutObjectLegalHoldCommand = exports.serializeAws_restXmlPutObjectAclCommand = exports.serializeAws_restXmlPutObjectCommand = exports.serializeAws_restXmlPutBucketWebsiteCommand = exports.serializeAws_restXmlPutBucketVersioningCommand = exports.serializeAws_restXmlPutBucketTaggingCommand = exports.serializeAws_restXmlPutBucketRequestPaymentCommand = exports.serializeAws_restXmlPutBucketReplicationCommand = exports.serializeAws_restXmlPutBucketPolicyCommand = exports.serializeAws_restXmlPutBucketOwnershipControlsCommand = exports.serializeAws_restXmlPutBucketNotificationConfigurationCommand = exports.serializeAws_restXmlPutBucketMetricsConfigurationCommand = exports.serializeAws_restXmlPutBucketLoggingCommand = exports.serializeAws_restXmlPutBucketLifecycleConfigurationCommand = exports.serializeAws_restXmlPutBucketInventoryConfigurationCommand = exports.serializeAws_restXmlPutBucketIntelligentTieringConfigurationCommand = exports.serializeAws_restXmlPutBucketEncryptionCommand = exports.serializeAws_restXmlPutBucketCorsCommand = exports.serializeAws_restXmlPutBucketAnalyticsConfigurationCommand = exports.serializeAws_restXmlPutBucketAclCommand = exports.serializeAws_restXmlPutBucketAccelerateConfigurationCommand = exports.serializeAws_restXmlListPartsCommand = exports.serializeAws_restXmlListObjectVersionsCommand = exports.serializeAws_restXmlListObjectsV2Command = exports.serializeAws_restXmlListObjectsCommand = exports.serializeAws_restXmlListMultipartUploadsCommand = exports.serializeAws_restXmlListBucketsCommand = exports.serializeAws_restXmlListBucketMetricsConfigurationsCommand = exports.serializeAws_restXmlListBucketInventoryConfigurationsCommand = exports.serializeAws_restXmlListBucketIntelligentTieringConfigurationsCommand = exports.serializeAws_restXmlListBucketAnalyticsConfigurationsCommand = exports.serializeAws_restXmlHeadObjectCommand = exports.serializeAws_restXmlHeadBucketCommand = exports.serializeAws_restXmlGetPublicAccessBlockCommand = void 0;\nexports.deserializeAws_restXmlListBucketMetricsConfigurationsCommand = exports.deserializeAws_restXmlListBucketInventoryConfigurationsCommand = exports.deserializeAws_restXmlListBucketIntelligentTieringConfigurationsCommand = exports.deserializeAws_restXmlListBucketAnalyticsConfigurationsCommand = exports.deserializeAws_restXmlHeadObjectCommand = exports.deserializeAws_restXmlHeadBucketCommand = exports.deserializeAws_restXmlGetPublicAccessBlockCommand = exports.deserializeAws_restXmlGetObjectTorrentCommand = exports.deserializeAws_restXmlGetObjectTaggingCommand = exports.deserializeAws_restXmlGetObjectRetentionCommand = exports.deserializeAws_restXmlGetObjectLockConfigurationCommand = exports.deserializeAws_restXmlGetObjectLegalHoldCommand = exports.deserializeAws_restXmlGetObjectAttributesCommand = exports.deserializeAws_restXmlGetObjectAclCommand = exports.deserializeAws_restXmlGetObjectCommand = exports.deserializeAws_restXmlGetBucketWebsiteCommand = exports.deserializeAws_restXmlGetBucketVersioningCommand = exports.deserializeAws_restXmlGetBucketTaggingCommand = exports.deserializeAws_restXmlGetBucketRequestPaymentCommand = exports.deserializeAws_restXmlGetBucketReplicationCommand = exports.deserializeAws_restXmlGetBucketPolicyStatusCommand = exports.deserializeAws_restXmlGetBucketPolicyCommand = exports.deserializeAws_restXmlGetBucketOwnershipControlsCommand = exports.deserializeAws_restXmlGetBucketNotificationConfigurationCommand = exports.deserializeAws_restXmlGetBucketMetricsConfigurationCommand = exports.deserializeAws_restXmlGetBucketLoggingCommand = exports.deserializeAws_restXmlGetBucketLocationCommand = exports.deserializeAws_restXmlGetBucketLifecycleConfigurationCommand = exports.deserializeAws_restXmlGetBucketInventoryConfigurationCommand = exports.deserializeAws_restXmlGetBucketIntelligentTieringConfigurationCommand = exports.deserializeAws_restXmlGetBucketEncryptionCommand = exports.deserializeAws_restXmlGetBucketCorsCommand = exports.deserializeAws_restXmlGetBucketAnalyticsConfigurationCommand = exports.deserializeAws_restXmlGetBucketAclCommand = exports.deserializeAws_restXmlGetBucketAccelerateConfigurationCommand = exports.deserializeAws_restXmlDeletePublicAccessBlockCommand = exports.deserializeAws_restXmlDeleteObjectTaggingCommand = exports.deserializeAws_restXmlDeleteObjectsCommand = exports.deserializeAws_restXmlDeleteObjectCommand = exports.deserializeAws_restXmlDeleteBucketWebsiteCommand = exports.deserializeAws_restXmlDeleteBucketTaggingCommand = exports.deserializeAws_restXmlDeleteBucketReplicationCommand = exports.deserializeAws_restXmlDeleteBucketPolicyCommand = exports.deserializeAws_restXmlDeleteBucketOwnershipControlsCommand = exports.deserializeAws_restXmlDeleteBucketMetricsConfigurationCommand = exports.deserializeAws_restXmlDeleteBucketLifecycleCommand = exports.deserializeAws_restXmlDeleteBucketInventoryConfigurationCommand = exports.deserializeAws_restXmlDeleteBucketIntelligentTieringConfigurationCommand = exports.deserializeAws_restXmlDeleteBucketEncryptionCommand = exports.deserializeAws_restXmlDeleteBucketCorsCommand = void 0;\nexports.deserializeAws_restXmlWriteGetObjectResponseCommand = exports.deserializeAws_restXmlUploadPartCopyCommand = exports.deserializeAws_restXmlUploadPartCommand = exports.deserializeAws_restXmlSelectObjectContentCommand = exports.deserializeAws_restXmlRestoreObjectCommand = exports.deserializeAws_restXmlPutPublicAccessBlockCommand = exports.deserializeAws_restXmlPutObjectTaggingCommand = exports.deserializeAws_restXmlPutObjectRetentionCommand = exports.deserializeAws_restXmlPutObjectLockConfigurationCommand = exports.deserializeAws_restXmlPutObjectLegalHoldCommand = exports.deserializeAws_restXmlPutObjectAclCommand = exports.deserializeAws_restXmlPutObjectCommand = exports.deserializeAws_restXmlPutBucketWebsiteCommand = exports.deserializeAws_restXmlPutBucketVersioningCommand = exports.deserializeAws_restXmlPutBucketTaggingCommand = exports.deserializeAws_restXmlPutBucketRequestPaymentCommand = exports.deserializeAws_restXmlPutBucketReplicationCommand = exports.deserializeAws_restXmlPutBucketPolicyCommand = exports.deserializeAws_restXmlPutBucketOwnershipControlsCommand = exports.deserializeAws_restXmlPutBucketNotificationConfigurationCommand = exports.deserializeAws_restXmlPutBucketMetricsConfigurationCommand = exports.deserializeAws_restXmlPutBucketLoggingCommand = exports.deserializeAws_restXmlPutBucketLifecycleConfigurationCommand = exports.deserializeAws_restXmlPutBucketInventoryConfigurationCommand = exports.deserializeAws_restXmlPutBucketIntelligentTieringConfigurationCommand = exports.deserializeAws_restXmlPutBucketEncryptionCommand = exports.deserializeAws_restXmlPutBucketCorsCommand = exports.deserializeAws_restXmlPutBucketAnalyticsConfigurationCommand = exports.deserializeAws_restXmlPutBucketAclCommand = exports.deserializeAws_restXmlPutBucketAccelerateConfigurationCommand = exports.deserializeAws_restXmlListPartsCommand = exports.deserializeAws_restXmlListObjectVersionsCommand = exports.deserializeAws_restXmlListObjectsV2Command = exports.deserializeAws_restXmlListObjectsCommand = exports.deserializeAws_restXmlListMultipartUploadsCommand = exports.deserializeAws_restXmlListBucketsCommand = void 0;\nconst protocol_http_1 = require(\"@aws-sdk/protocol-http\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst xml_builder_1 = require(\"@aws-sdk/xml-builder\");\nconst fast_xml_parser_1 = require(\"fast-xml-parser\");\nconst models_0_1 = require(\"../models/models_0\");\nconst models_1_1 = require(\"../models/models_1\");\nconst S3ServiceException_1 = require(\"../models/S3ServiceException\");\nconst serializeAws_restXmlAbortMultipartUploadCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"x-amz-request-payer\": input.RequestPayer,\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/{Key+}\";\n resolvedPath = (0, smithy_client_1.resolvedPath)(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n resolvedPath = (0, smithy_client_1.resolvedPath)(resolvedPath, input, \"Key\", () => input.Key, \"{Key+}\", true);\n const query = map({\n \"x-id\": [, \"AbortMultipartUpload\"],\n uploadId: [, (0, smithy_client_1.expectNonNull)(input.UploadId, `UploadId`)],\n });\n let body;\n return new protocol_http_1.HttpRequest({\n protocol,\n hostname,\n port,\n method: \"DELETE\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexports.serializeAws_restXmlAbortMultipartUploadCommand = serializeAws_restXmlAbortMultipartUploadCommand;\nconst serializeAws_restXmlCompleteMultipartUploadCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"content-type\": \"application/xml\",\n \"x-amz-checksum-crc32\": input.ChecksumCRC32,\n \"x-amz-checksum-crc32c\": input.ChecksumCRC32C,\n \"x-amz-checksum-sha1\": input.ChecksumSHA1,\n \"x-amz-checksum-sha256\": input.ChecksumSHA256,\n \"x-amz-request-payer\": input.RequestPayer,\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n \"x-amz-server-side-encryption-customer-algorithm\": input.SSECustomerAlgorithm,\n \"x-amz-server-side-encryption-customer-key\": input.SSECustomerKey,\n \"x-amz-server-side-encryption-customer-key-md5\": input.SSECustomerKeyMD5,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/{Key+}\";\n resolvedPath = (0, smithy_client_1.resolvedPath)(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n resolvedPath = (0, smithy_client_1.resolvedPath)(resolvedPath, input, \"Key\", () => input.Key, \"{Key+}\", true);\n const query = map({\n \"x-id\": [, \"CompleteMultipartUpload\"],\n uploadId: [, (0, smithy_client_1.expectNonNull)(input.UploadId, `UploadId`)],\n });\n let body;\n if (input.MultipartUpload !== undefined) {\n body = serializeAws_restXmlCompletedMultipartUpload(input.MultipartUpload, context);\n }\n let contents;\n if (input.MultipartUpload !== undefined) {\n contents = serializeAws_restXmlCompletedMultipartUpload(input.MultipartUpload, context);\n contents = contents.withName(\"CompleteMultipartUpload\");\n body = '';\n contents.addAttribute(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n return new protocol_http_1.HttpRequest({\n protocol,\n hostname,\n port,\n method: \"POST\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexports.serializeAws_restXmlCompleteMultipartUploadCommand = serializeAws_restXmlCompleteMultipartUploadCommand;\nconst serializeAws_restXmlCopyObjectCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"x-amz-acl\": input.ACL,\n \"cache-control\": input.CacheControl,\n \"x-amz-checksum-algorithm\": input.ChecksumAlgorithm,\n \"content-disposition\": input.ContentDisposition,\n \"content-encoding\": input.ContentEncoding,\n \"content-language\": input.ContentLanguage,\n \"content-type\": input.ContentType,\n \"x-amz-copy-source\": input.CopySource,\n \"x-amz-copy-source-if-match\": input.CopySourceIfMatch,\n \"x-amz-copy-source-if-modified-since\": [\n () => isSerializableHeaderValue(input.CopySourceIfModifiedSince),\n () => (0, smithy_client_1.dateToUtcString)(input.CopySourceIfModifiedSince).toString(),\n ],\n \"x-amz-copy-source-if-none-match\": input.CopySourceIfNoneMatch,\n \"x-amz-copy-source-if-unmodified-since\": [\n () => isSerializableHeaderValue(input.CopySourceIfUnmodifiedSince),\n () => (0, smithy_client_1.dateToUtcString)(input.CopySourceIfUnmodifiedSince).toString(),\n ],\n expires: [() => isSerializableHeaderValue(input.Expires), () => (0, smithy_client_1.dateToUtcString)(input.Expires).toString()],\n \"x-amz-grant-full-control\": input.GrantFullControl,\n \"x-amz-grant-read\": input.GrantRead,\n \"x-amz-grant-read-acp\": input.GrantReadACP,\n \"x-amz-grant-write-acp\": input.GrantWriteACP,\n \"x-amz-metadata-directive\": input.MetadataDirective,\n \"x-amz-tagging-directive\": input.TaggingDirective,\n \"x-amz-server-side-encryption\": input.ServerSideEncryption,\n \"x-amz-storage-class\": input.StorageClass,\n \"x-amz-website-redirect-location\": input.WebsiteRedirectLocation,\n \"x-amz-server-side-encryption-customer-algorithm\": input.SSECustomerAlgorithm,\n \"x-amz-server-side-encryption-customer-key\": input.SSECustomerKey,\n \"x-amz-server-side-encryption-customer-key-md5\": input.SSECustomerKeyMD5,\n \"x-amz-server-side-encryption-aws-kms-key-id\": input.SSEKMSKeyId,\n \"x-amz-server-side-encryption-context\": input.SSEKMSEncryptionContext,\n \"x-amz-server-side-encryption-bucket-key-enabled\": [\n () => isSerializableHeaderValue(input.BucketKeyEnabled),\n () => input.BucketKeyEnabled.toString(),\n ],\n \"x-amz-copy-source-server-side-encryption-customer-algorithm\": input.CopySourceSSECustomerAlgorithm,\n \"x-amz-copy-source-server-side-encryption-customer-key\": input.CopySourceSSECustomerKey,\n \"x-amz-copy-source-server-side-encryption-customer-key-md5\": input.CopySourceSSECustomerKeyMD5,\n \"x-amz-request-payer\": input.RequestPayer,\n \"x-amz-tagging\": input.Tagging,\n \"x-amz-object-lock-mode\": input.ObjectLockMode,\n \"x-amz-object-lock-retain-until-date\": [\n () => isSerializableHeaderValue(input.ObjectLockRetainUntilDate),\n () => (input.ObjectLockRetainUntilDate.toISOString().split(\".\")[0] + \"Z\").toString(),\n ],\n \"x-amz-object-lock-legal-hold\": input.ObjectLockLegalHoldStatus,\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n \"x-amz-source-expected-bucket-owner\": input.ExpectedSourceBucketOwner,\n ...(input.Metadata !== undefined &&\n Object.keys(input.Metadata).reduce((acc, suffix) => {\n acc[`x-amz-meta-${suffix.toLowerCase()}`] = input.Metadata[suffix];\n return acc;\n }, {})),\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/{Key+}\";\n resolvedPath = (0, smithy_client_1.resolvedPath)(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n resolvedPath = (0, smithy_client_1.resolvedPath)(resolvedPath, input, \"Key\", () => input.Key, \"{Key+}\", true);\n const query = map({\n \"x-id\": [, \"CopyObject\"],\n });\n let body;\n return new protocol_http_1.HttpRequest({\n protocol,\n hostname,\n port,\n method: \"PUT\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexports.serializeAws_restXmlCopyObjectCommand = serializeAws_restXmlCopyObjectCommand;\nconst serializeAws_restXmlCreateBucketCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"content-type\": \"application/xml\",\n \"x-amz-acl\": input.ACL,\n \"x-amz-grant-full-control\": input.GrantFullControl,\n \"x-amz-grant-read\": input.GrantRead,\n \"x-amz-grant-read-acp\": input.GrantReadACP,\n \"x-amz-grant-write\": input.GrantWrite,\n \"x-amz-grant-write-acp\": input.GrantWriteACP,\n \"x-amz-bucket-object-lock-enabled\": [\n () => isSerializableHeaderValue(input.ObjectLockEnabledForBucket),\n () => input.ObjectLockEnabledForBucket.toString(),\n ],\n \"x-amz-object-ownership\": input.ObjectOwnership,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/\";\n resolvedPath = (0, smithy_client_1.resolvedPath)(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n let body;\n if (input.CreateBucketConfiguration !== undefined) {\n body = serializeAws_restXmlCreateBucketConfiguration(input.CreateBucketConfiguration, context);\n }\n let contents;\n if (input.CreateBucketConfiguration !== undefined) {\n contents = serializeAws_restXmlCreateBucketConfiguration(input.CreateBucketConfiguration, context);\n body = '';\n contents.addAttribute(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n return new protocol_http_1.HttpRequest({\n protocol,\n hostname,\n port,\n method: \"PUT\",\n headers,\n path: resolvedPath,\n body,\n });\n};\nexports.serializeAws_restXmlCreateBucketCommand = serializeAws_restXmlCreateBucketCommand;\nconst serializeAws_restXmlCreateMultipartUploadCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"x-amz-acl\": input.ACL,\n \"cache-control\": input.CacheControl,\n \"content-disposition\": input.ContentDisposition,\n \"content-encoding\": input.ContentEncoding,\n \"content-language\": input.ContentLanguage,\n \"content-type\": input.ContentType,\n expires: [() => isSerializableHeaderValue(input.Expires), () => (0, smithy_client_1.dateToUtcString)(input.Expires).toString()],\n \"x-amz-grant-full-control\": input.GrantFullControl,\n \"x-amz-grant-read\": input.GrantRead,\n \"x-amz-grant-read-acp\": input.GrantReadACP,\n \"x-amz-grant-write-acp\": input.GrantWriteACP,\n \"x-amz-server-side-encryption\": input.ServerSideEncryption,\n \"x-amz-storage-class\": input.StorageClass,\n \"x-amz-website-redirect-location\": input.WebsiteRedirectLocation,\n \"x-amz-server-side-encryption-customer-algorithm\": input.SSECustomerAlgorithm,\n \"x-amz-server-side-encryption-customer-key\": input.SSECustomerKey,\n \"x-amz-server-side-encryption-customer-key-md5\": input.SSECustomerKeyMD5,\n \"x-amz-server-side-encryption-aws-kms-key-id\": input.SSEKMSKeyId,\n \"x-amz-server-side-encryption-context\": input.SSEKMSEncryptionContext,\n \"x-amz-server-side-encryption-bucket-key-enabled\": [\n () => isSerializableHeaderValue(input.BucketKeyEnabled),\n () => input.BucketKeyEnabled.toString(),\n ],\n \"x-amz-request-payer\": input.RequestPayer,\n \"x-amz-tagging\": input.Tagging,\n \"x-amz-object-lock-mode\": input.ObjectLockMode,\n \"x-amz-object-lock-retain-until-date\": [\n () => isSerializableHeaderValue(input.ObjectLockRetainUntilDate),\n () => (input.ObjectLockRetainUntilDate.toISOString().split(\".\")[0] + \"Z\").toString(),\n ],\n \"x-amz-object-lock-legal-hold\": input.ObjectLockLegalHoldStatus,\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n \"x-amz-checksum-algorithm\": input.ChecksumAlgorithm,\n ...(input.Metadata !== undefined &&\n Object.keys(input.Metadata).reduce((acc, suffix) => {\n acc[`x-amz-meta-${suffix.toLowerCase()}`] = input.Metadata[suffix];\n return acc;\n }, {})),\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/{Key+}\";\n resolvedPath = (0, smithy_client_1.resolvedPath)(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n resolvedPath = (0, smithy_client_1.resolvedPath)(resolvedPath, input, \"Key\", () => input.Key, \"{Key+}\", true);\n const query = map({\n uploads: [, \"\"],\n \"x-id\": [, \"CreateMultipartUpload\"],\n });\n let body;\n return new protocol_http_1.HttpRequest({\n protocol,\n hostname,\n port,\n method: \"POST\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexports.serializeAws_restXmlCreateMultipartUploadCommand = serializeAws_restXmlCreateMultipartUploadCommand;\nconst serializeAws_restXmlDeleteBucketCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/\";\n resolvedPath = (0, smithy_client_1.resolvedPath)(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n let body;\n return new protocol_http_1.HttpRequest({\n protocol,\n hostname,\n port,\n method: \"DELETE\",\n headers,\n path: resolvedPath,\n body,\n });\n};\nexports.serializeAws_restXmlDeleteBucketCommand = serializeAws_restXmlDeleteBucketCommand;\nconst serializeAws_restXmlDeleteBucketAnalyticsConfigurationCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/\";\n resolvedPath = (0, smithy_client_1.resolvedPath)(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = map({\n analytics: [, \"\"],\n id: [, (0, smithy_client_1.expectNonNull)(input.Id, `Id`)],\n });\n let body;\n return new protocol_http_1.HttpRequest({\n protocol,\n hostname,\n port,\n method: \"DELETE\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexports.serializeAws_restXmlDeleteBucketAnalyticsConfigurationCommand = serializeAws_restXmlDeleteBucketAnalyticsConfigurationCommand;\nconst serializeAws_restXmlDeleteBucketCorsCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/\";\n resolvedPath = (0, smithy_client_1.resolvedPath)(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = map({\n cors: [, \"\"],\n });\n let body;\n return new protocol_http_1.HttpRequest({\n protocol,\n hostname,\n port,\n method: \"DELETE\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexports.serializeAws_restXmlDeleteBucketCorsCommand = serializeAws_restXmlDeleteBucketCorsCommand;\nconst serializeAws_restXmlDeleteBucketEncryptionCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/\";\n resolvedPath = (0, smithy_client_1.resolvedPath)(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = map({\n encryption: [, \"\"],\n });\n let body;\n return new protocol_http_1.HttpRequest({\n protocol,\n hostname,\n port,\n method: \"DELETE\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexports.serializeAws_restXmlDeleteBucketEncryptionCommand = serializeAws_restXmlDeleteBucketEncryptionCommand;\nconst serializeAws_restXmlDeleteBucketIntelligentTieringConfigurationCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = {};\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/\";\n resolvedPath = (0, smithy_client_1.resolvedPath)(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = map({\n \"intelligent-tiering\": [, \"\"],\n id: [, (0, smithy_client_1.expectNonNull)(input.Id, `Id`)],\n });\n let body;\n return new protocol_http_1.HttpRequest({\n protocol,\n hostname,\n port,\n method: \"DELETE\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexports.serializeAws_restXmlDeleteBucketIntelligentTieringConfigurationCommand = serializeAws_restXmlDeleteBucketIntelligentTieringConfigurationCommand;\nconst serializeAws_restXmlDeleteBucketInventoryConfigurationCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/\";\n resolvedPath = (0, smithy_client_1.resolvedPath)(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = map({\n inventory: [, \"\"],\n id: [, (0, smithy_client_1.expectNonNull)(input.Id, `Id`)],\n });\n let body;\n return new protocol_http_1.HttpRequest({\n protocol,\n hostname,\n port,\n method: \"DELETE\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexports.serializeAws_restXmlDeleteBucketInventoryConfigurationCommand = serializeAws_restXmlDeleteBucketInventoryConfigurationCommand;\nconst serializeAws_restXmlDeleteBucketLifecycleCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/\";\n resolvedPath = (0, smithy_client_1.resolvedPath)(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = map({\n lifecycle: [, \"\"],\n });\n let body;\n return new protocol_http_1.HttpRequest({\n protocol,\n hostname,\n port,\n method: \"DELETE\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexports.serializeAws_restXmlDeleteBucketLifecycleCommand = serializeAws_restXmlDeleteBucketLifecycleCommand;\nconst serializeAws_restXmlDeleteBucketMetricsConfigurationCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/\";\n resolvedPath = (0, smithy_client_1.resolvedPath)(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = map({\n metrics: [, \"\"],\n id: [, (0, smithy_client_1.expectNonNull)(input.Id, `Id`)],\n });\n let body;\n return new protocol_http_1.HttpRequest({\n protocol,\n hostname,\n port,\n method: \"DELETE\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexports.serializeAws_restXmlDeleteBucketMetricsConfigurationCommand = serializeAws_restXmlDeleteBucketMetricsConfigurationCommand;\nconst serializeAws_restXmlDeleteBucketOwnershipControlsCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/\";\n resolvedPath = (0, smithy_client_1.resolvedPath)(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = map({\n ownershipControls: [, \"\"],\n });\n let body;\n return new protocol_http_1.HttpRequest({\n protocol,\n hostname,\n port,\n method: \"DELETE\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexports.serializeAws_restXmlDeleteBucketOwnershipControlsCommand = serializeAws_restXmlDeleteBucketOwnershipControlsCommand;\nconst serializeAws_restXmlDeleteBucketPolicyCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/\";\n resolvedPath = (0, smithy_client_1.resolvedPath)(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = map({\n policy: [, \"\"],\n });\n let body;\n return new protocol_http_1.HttpRequest({\n protocol,\n hostname,\n port,\n method: \"DELETE\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexports.serializeAws_restXmlDeleteBucketPolicyCommand = serializeAws_restXmlDeleteBucketPolicyCommand;\nconst serializeAws_restXmlDeleteBucketReplicationCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/\";\n resolvedPath = (0, smithy_client_1.resolvedPath)(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = map({\n replication: [, \"\"],\n });\n let body;\n return new protocol_http_1.HttpRequest({\n protocol,\n hostname,\n port,\n method: \"DELETE\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexports.serializeAws_restXmlDeleteBucketReplicationCommand = serializeAws_restXmlDeleteBucketReplicationCommand;\nconst serializeAws_restXmlDeleteBucketTaggingCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/\";\n resolvedPath = (0, smithy_client_1.resolvedPath)(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = map({\n tagging: [, \"\"],\n });\n let body;\n return new protocol_http_1.HttpRequest({\n protocol,\n hostname,\n port,\n method: \"DELETE\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexports.serializeAws_restXmlDeleteBucketTaggingCommand = serializeAws_restXmlDeleteBucketTaggingCommand;\nconst serializeAws_restXmlDeleteBucketWebsiteCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/\";\n resolvedPath = (0, smithy_client_1.resolvedPath)(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = map({\n website: [, \"\"],\n });\n let body;\n return new protocol_http_1.HttpRequest({\n protocol,\n hostname,\n port,\n method: \"DELETE\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexports.serializeAws_restXmlDeleteBucketWebsiteCommand = serializeAws_restXmlDeleteBucketWebsiteCommand;\nconst serializeAws_restXmlDeleteObjectCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"x-amz-mfa\": input.MFA,\n \"x-amz-request-payer\": input.RequestPayer,\n \"x-amz-bypass-governance-retention\": [\n () => isSerializableHeaderValue(input.BypassGovernanceRetention),\n () => input.BypassGovernanceRetention.toString(),\n ],\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/{Key+}\";\n resolvedPath = (0, smithy_client_1.resolvedPath)(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n resolvedPath = (0, smithy_client_1.resolvedPath)(resolvedPath, input, \"Key\", () => input.Key, \"{Key+}\", true);\n const query = map({\n \"x-id\": [, \"DeleteObject\"],\n versionId: [, input.VersionId],\n });\n let body;\n return new protocol_http_1.HttpRequest({\n protocol,\n hostname,\n port,\n method: \"DELETE\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexports.serializeAws_restXmlDeleteObjectCommand = serializeAws_restXmlDeleteObjectCommand;\nconst serializeAws_restXmlDeleteObjectsCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"content-type\": \"application/xml\",\n \"x-amz-mfa\": input.MFA,\n \"x-amz-request-payer\": input.RequestPayer,\n \"x-amz-bypass-governance-retention\": [\n () => isSerializableHeaderValue(input.BypassGovernanceRetention),\n () => input.BypassGovernanceRetention.toString(),\n ],\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n \"x-amz-sdk-checksum-algorithm\": input.ChecksumAlgorithm,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/\";\n resolvedPath = (0, smithy_client_1.resolvedPath)(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = map({\n delete: [, \"\"],\n \"x-id\": [, \"DeleteObjects\"],\n });\n let body;\n if (input.Delete !== undefined) {\n body = serializeAws_restXmlDelete(input.Delete, context);\n }\n let contents;\n if (input.Delete !== undefined) {\n contents = serializeAws_restXmlDelete(input.Delete, context);\n body = '';\n contents.addAttribute(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n return new protocol_http_1.HttpRequest({\n protocol,\n hostname,\n port,\n method: \"POST\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexports.serializeAws_restXmlDeleteObjectsCommand = serializeAws_restXmlDeleteObjectsCommand;\nconst serializeAws_restXmlDeleteObjectTaggingCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/{Key+}\";\n resolvedPath = (0, smithy_client_1.resolvedPath)(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n resolvedPath = (0, smithy_client_1.resolvedPath)(resolvedPath, input, \"Key\", () => input.Key, \"{Key+}\", true);\n const query = map({\n tagging: [, \"\"],\n versionId: [, input.VersionId],\n });\n let body;\n return new protocol_http_1.HttpRequest({\n protocol,\n hostname,\n port,\n method: \"DELETE\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexports.serializeAws_restXmlDeleteObjectTaggingCommand = serializeAws_restXmlDeleteObjectTaggingCommand;\nconst serializeAws_restXmlDeletePublicAccessBlockCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/\";\n resolvedPath = (0, smithy_client_1.resolvedPath)(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = map({\n publicAccessBlock: [, \"\"],\n });\n let body;\n return new protocol_http_1.HttpRequest({\n protocol,\n hostname,\n port,\n method: \"DELETE\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexports.serializeAws_restXmlDeletePublicAccessBlockCommand = serializeAws_restXmlDeletePublicAccessBlockCommand;\nconst serializeAws_restXmlGetBucketAccelerateConfigurationCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/\";\n resolvedPath = (0, smithy_client_1.resolvedPath)(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = map({\n accelerate: [, \"\"],\n });\n let body;\n return new protocol_http_1.HttpRequest({\n protocol,\n hostname,\n port,\n method: \"GET\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexports.serializeAws_restXmlGetBucketAccelerateConfigurationCommand = serializeAws_restXmlGetBucketAccelerateConfigurationCommand;\nconst serializeAws_restXmlGetBucketAclCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/\";\n resolvedPath = (0, smithy_client_1.resolvedPath)(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = map({\n acl: [, \"\"],\n });\n let body;\n return new protocol_http_1.HttpRequest({\n protocol,\n hostname,\n port,\n method: \"GET\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexports.serializeAws_restXmlGetBucketAclCommand = serializeAws_restXmlGetBucketAclCommand;\nconst serializeAws_restXmlGetBucketAnalyticsConfigurationCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/\";\n resolvedPath = (0, smithy_client_1.resolvedPath)(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = map({\n analytics: [, \"\"],\n \"x-id\": [, \"GetBucketAnalyticsConfiguration\"],\n id: [, (0, smithy_client_1.expectNonNull)(input.Id, `Id`)],\n });\n let body;\n return new protocol_http_1.HttpRequest({\n protocol,\n hostname,\n port,\n method: \"GET\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexports.serializeAws_restXmlGetBucketAnalyticsConfigurationCommand = serializeAws_restXmlGetBucketAnalyticsConfigurationCommand;\nconst serializeAws_restXmlGetBucketCorsCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/\";\n resolvedPath = (0, smithy_client_1.resolvedPath)(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = map({\n cors: [, \"\"],\n });\n let body;\n return new protocol_http_1.HttpRequest({\n protocol,\n hostname,\n port,\n method: \"GET\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexports.serializeAws_restXmlGetBucketCorsCommand = serializeAws_restXmlGetBucketCorsCommand;\nconst serializeAws_restXmlGetBucketEncryptionCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/\";\n resolvedPath = (0, smithy_client_1.resolvedPath)(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = map({\n encryption: [, \"\"],\n });\n let body;\n return new protocol_http_1.HttpRequest({\n protocol,\n hostname,\n port,\n method: \"GET\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexports.serializeAws_restXmlGetBucketEncryptionCommand = serializeAws_restXmlGetBucketEncryptionCommand;\nconst serializeAws_restXmlGetBucketIntelligentTieringConfigurationCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = {};\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/\";\n resolvedPath = (0, smithy_client_1.resolvedPath)(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = map({\n \"intelligent-tiering\": [, \"\"],\n \"x-id\": [, \"GetBucketIntelligentTieringConfiguration\"],\n id: [, (0, smithy_client_1.expectNonNull)(input.Id, `Id`)],\n });\n let body;\n return new protocol_http_1.HttpRequest({\n protocol,\n hostname,\n port,\n method: \"GET\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexports.serializeAws_restXmlGetBucketIntelligentTieringConfigurationCommand = serializeAws_restXmlGetBucketIntelligentTieringConfigurationCommand;\nconst serializeAws_restXmlGetBucketInventoryConfigurationCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/\";\n resolvedPath = (0, smithy_client_1.resolvedPath)(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = map({\n inventory: [, \"\"],\n \"x-id\": [, \"GetBucketInventoryConfiguration\"],\n id: [, (0, smithy_client_1.expectNonNull)(input.Id, `Id`)],\n });\n let body;\n return new protocol_http_1.HttpRequest({\n protocol,\n hostname,\n port,\n method: \"GET\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexports.serializeAws_restXmlGetBucketInventoryConfigurationCommand = serializeAws_restXmlGetBucketInventoryConfigurationCommand;\nconst serializeAws_restXmlGetBucketLifecycleConfigurationCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/\";\n resolvedPath = (0, smithy_client_1.resolvedPath)(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = map({\n lifecycle: [, \"\"],\n });\n let body;\n return new protocol_http_1.HttpRequest({\n protocol,\n hostname,\n port,\n method: \"GET\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexports.serializeAws_restXmlGetBucketLifecycleConfigurationCommand = serializeAws_restXmlGetBucketLifecycleConfigurationCommand;\nconst serializeAws_restXmlGetBucketLocationCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/\";\n resolvedPath = (0, smithy_client_1.resolvedPath)(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = map({\n location: [, \"\"],\n });\n let body;\n return new protocol_http_1.HttpRequest({\n protocol,\n hostname,\n port,\n method: \"GET\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexports.serializeAws_restXmlGetBucketLocationCommand = serializeAws_restXmlGetBucketLocationCommand;\nconst serializeAws_restXmlGetBucketLoggingCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/\";\n resolvedPath = (0, smithy_client_1.resolvedPath)(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = map({\n logging: [, \"\"],\n });\n let body;\n return new protocol_http_1.HttpRequest({\n protocol,\n hostname,\n port,\n method: \"GET\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexports.serializeAws_restXmlGetBucketLoggingCommand = serializeAws_restXmlGetBucketLoggingCommand;\nconst serializeAws_restXmlGetBucketMetricsConfigurationCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/\";\n resolvedPath = (0, smithy_client_1.resolvedPath)(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = map({\n metrics: [, \"\"],\n \"x-id\": [, \"GetBucketMetricsConfiguration\"],\n id: [, (0, smithy_client_1.expectNonNull)(input.Id, `Id`)],\n });\n let body;\n return new protocol_http_1.HttpRequest({\n protocol,\n hostname,\n port,\n method: \"GET\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexports.serializeAws_restXmlGetBucketMetricsConfigurationCommand = serializeAws_restXmlGetBucketMetricsConfigurationCommand;\nconst serializeAws_restXmlGetBucketNotificationConfigurationCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/\";\n resolvedPath = (0, smithy_client_1.resolvedPath)(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = map({\n notification: [, \"\"],\n });\n let body;\n return new protocol_http_1.HttpRequest({\n protocol,\n hostname,\n port,\n method: \"GET\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexports.serializeAws_restXmlGetBucketNotificationConfigurationCommand = serializeAws_restXmlGetBucketNotificationConfigurationCommand;\nconst serializeAws_restXmlGetBucketOwnershipControlsCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/\";\n resolvedPath = (0, smithy_client_1.resolvedPath)(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = map({\n ownershipControls: [, \"\"],\n });\n let body;\n return new protocol_http_1.HttpRequest({\n protocol,\n hostname,\n port,\n method: \"GET\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexports.serializeAws_restXmlGetBucketOwnershipControlsCommand = serializeAws_restXmlGetBucketOwnershipControlsCommand;\nconst serializeAws_restXmlGetBucketPolicyCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/\";\n resolvedPath = (0, smithy_client_1.resolvedPath)(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = map({\n policy: [, \"\"],\n });\n let body;\n return new protocol_http_1.HttpRequest({\n protocol,\n hostname,\n port,\n method: \"GET\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexports.serializeAws_restXmlGetBucketPolicyCommand = serializeAws_restXmlGetBucketPolicyCommand;\nconst serializeAws_restXmlGetBucketPolicyStatusCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/\";\n resolvedPath = (0, smithy_client_1.resolvedPath)(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = map({\n policyStatus: [, \"\"],\n });\n let body;\n return new protocol_http_1.HttpRequest({\n protocol,\n hostname,\n port,\n method: \"GET\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexports.serializeAws_restXmlGetBucketPolicyStatusCommand = serializeAws_restXmlGetBucketPolicyStatusCommand;\nconst serializeAws_restXmlGetBucketReplicationCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/\";\n resolvedPath = (0, smithy_client_1.resolvedPath)(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = map({\n replication: [, \"\"],\n });\n let body;\n return new protocol_http_1.HttpRequest({\n protocol,\n hostname,\n port,\n method: \"GET\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexports.serializeAws_restXmlGetBucketReplicationCommand = serializeAws_restXmlGetBucketReplicationCommand;\nconst serializeAws_restXmlGetBucketRequestPaymentCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/\";\n resolvedPath = (0, smithy_client_1.resolvedPath)(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = map({\n requestPayment: [, \"\"],\n });\n let body;\n return new protocol_http_1.HttpRequest({\n protocol,\n hostname,\n port,\n method: \"GET\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexports.serializeAws_restXmlGetBucketRequestPaymentCommand = serializeAws_restXmlGetBucketRequestPaymentCommand;\nconst serializeAws_restXmlGetBucketTaggingCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/\";\n resolvedPath = (0, smithy_client_1.resolvedPath)(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = map({\n tagging: [, \"\"],\n });\n let body;\n return new protocol_http_1.HttpRequest({\n protocol,\n hostname,\n port,\n method: \"GET\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexports.serializeAws_restXmlGetBucketTaggingCommand = serializeAws_restXmlGetBucketTaggingCommand;\nconst serializeAws_restXmlGetBucketVersioningCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/\";\n resolvedPath = (0, smithy_client_1.resolvedPath)(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = map({\n versioning: [, \"\"],\n });\n let body;\n return new protocol_http_1.HttpRequest({\n protocol,\n hostname,\n port,\n method: \"GET\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexports.serializeAws_restXmlGetBucketVersioningCommand = serializeAws_restXmlGetBucketVersioningCommand;\nconst serializeAws_restXmlGetBucketWebsiteCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/\";\n resolvedPath = (0, smithy_client_1.resolvedPath)(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = map({\n website: [, \"\"],\n });\n let body;\n return new protocol_http_1.HttpRequest({\n protocol,\n hostname,\n port,\n method: \"GET\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexports.serializeAws_restXmlGetBucketWebsiteCommand = serializeAws_restXmlGetBucketWebsiteCommand;\nconst serializeAws_restXmlGetObjectCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"if-match\": input.IfMatch,\n \"if-modified-since\": [\n () => isSerializableHeaderValue(input.IfModifiedSince),\n () => (0, smithy_client_1.dateToUtcString)(input.IfModifiedSince).toString(),\n ],\n \"if-none-match\": input.IfNoneMatch,\n \"if-unmodified-since\": [\n () => isSerializableHeaderValue(input.IfUnmodifiedSince),\n () => (0, smithy_client_1.dateToUtcString)(input.IfUnmodifiedSince).toString(),\n ],\n range: input.Range,\n \"x-amz-server-side-encryption-customer-algorithm\": input.SSECustomerAlgorithm,\n \"x-amz-server-side-encryption-customer-key\": input.SSECustomerKey,\n \"x-amz-server-side-encryption-customer-key-md5\": input.SSECustomerKeyMD5,\n \"x-amz-request-payer\": input.RequestPayer,\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n \"x-amz-checksum-mode\": input.ChecksumMode,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/{Key+}\";\n resolvedPath = (0, smithy_client_1.resolvedPath)(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n resolvedPath = (0, smithy_client_1.resolvedPath)(resolvedPath, input, \"Key\", () => input.Key, \"{Key+}\", true);\n const query = map({\n \"x-id\": [, \"GetObject\"],\n \"response-cache-control\": [, input.ResponseCacheControl],\n \"response-content-disposition\": [, input.ResponseContentDisposition],\n \"response-content-encoding\": [, input.ResponseContentEncoding],\n \"response-content-language\": [, input.ResponseContentLanguage],\n \"response-content-type\": [, input.ResponseContentType],\n \"response-expires\": [\n () => input.ResponseExpires !== void 0,\n () => (0, smithy_client_1.dateToUtcString)(input.ResponseExpires).toString(),\n ],\n versionId: [, input.VersionId],\n partNumber: [() => input.PartNumber !== void 0, () => input.PartNumber.toString()],\n });\n let body;\n return new protocol_http_1.HttpRequest({\n protocol,\n hostname,\n port,\n method: \"GET\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexports.serializeAws_restXmlGetObjectCommand = serializeAws_restXmlGetObjectCommand;\nconst serializeAws_restXmlGetObjectAclCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"x-amz-request-payer\": input.RequestPayer,\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/{Key+}\";\n resolvedPath = (0, smithy_client_1.resolvedPath)(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n resolvedPath = (0, smithy_client_1.resolvedPath)(resolvedPath, input, \"Key\", () => input.Key, \"{Key+}\", true);\n const query = map({\n acl: [, \"\"],\n versionId: [, input.VersionId],\n });\n let body;\n return new protocol_http_1.HttpRequest({\n protocol,\n hostname,\n port,\n method: \"GET\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexports.serializeAws_restXmlGetObjectAclCommand = serializeAws_restXmlGetObjectAclCommand;\nconst serializeAws_restXmlGetObjectAttributesCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"x-amz-max-parts\": [() => isSerializableHeaderValue(input.MaxParts), () => input.MaxParts.toString()],\n \"x-amz-part-number-marker\": input.PartNumberMarker,\n \"x-amz-server-side-encryption-customer-algorithm\": input.SSECustomerAlgorithm,\n \"x-amz-server-side-encryption-customer-key\": input.SSECustomerKey,\n \"x-amz-server-side-encryption-customer-key-md5\": input.SSECustomerKeyMD5,\n \"x-amz-request-payer\": input.RequestPayer,\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n \"x-amz-object-attributes\": [\n () => isSerializableHeaderValue(input.ObjectAttributes),\n () => (input.ObjectAttributes || []).map((_entry) => _entry).join(\", \"),\n ],\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/{Key+}\";\n resolvedPath = (0, smithy_client_1.resolvedPath)(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n resolvedPath = (0, smithy_client_1.resolvedPath)(resolvedPath, input, \"Key\", () => input.Key, \"{Key+}\", true);\n const query = map({\n attributes: [, \"\"],\n versionId: [, input.VersionId],\n });\n let body;\n return new protocol_http_1.HttpRequest({\n protocol,\n hostname,\n port,\n method: \"GET\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexports.serializeAws_restXmlGetObjectAttributesCommand = serializeAws_restXmlGetObjectAttributesCommand;\nconst serializeAws_restXmlGetObjectLegalHoldCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"x-amz-request-payer\": input.RequestPayer,\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/{Key+}\";\n resolvedPath = (0, smithy_client_1.resolvedPath)(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n resolvedPath = (0, smithy_client_1.resolvedPath)(resolvedPath, input, \"Key\", () => input.Key, \"{Key+}\", true);\n const query = map({\n \"legal-hold\": [, \"\"],\n versionId: [, input.VersionId],\n });\n let body;\n return new protocol_http_1.HttpRequest({\n protocol,\n hostname,\n port,\n method: \"GET\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexports.serializeAws_restXmlGetObjectLegalHoldCommand = serializeAws_restXmlGetObjectLegalHoldCommand;\nconst serializeAws_restXmlGetObjectLockConfigurationCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/\";\n resolvedPath = (0, smithy_client_1.resolvedPath)(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = map({\n \"object-lock\": [, \"\"],\n });\n let body;\n return new protocol_http_1.HttpRequest({\n protocol,\n hostname,\n port,\n method: \"GET\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexports.serializeAws_restXmlGetObjectLockConfigurationCommand = serializeAws_restXmlGetObjectLockConfigurationCommand;\nconst serializeAws_restXmlGetObjectRetentionCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"x-amz-request-payer\": input.RequestPayer,\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/{Key+}\";\n resolvedPath = (0, smithy_client_1.resolvedPath)(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n resolvedPath = (0, smithy_client_1.resolvedPath)(resolvedPath, input, \"Key\", () => input.Key, \"{Key+}\", true);\n const query = map({\n retention: [, \"\"],\n versionId: [, input.VersionId],\n });\n let body;\n return new protocol_http_1.HttpRequest({\n protocol,\n hostname,\n port,\n method: \"GET\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexports.serializeAws_restXmlGetObjectRetentionCommand = serializeAws_restXmlGetObjectRetentionCommand;\nconst serializeAws_restXmlGetObjectTaggingCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n \"x-amz-request-payer\": input.RequestPayer,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/{Key+}\";\n resolvedPath = (0, smithy_client_1.resolvedPath)(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n resolvedPath = (0, smithy_client_1.resolvedPath)(resolvedPath, input, \"Key\", () => input.Key, \"{Key+}\", true);\n const query = map({\n tagging: [, \"\"],\n versionId: [, input.VersionId],\n });\n let body;\n return new protocol_http_1.HttpRequest({\n protocol,\n hostname,\n port,\n method: \"GET\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexports.serializeAws_restXmlGetObjectTaggingCommand = serializeAws_restXmlGetObjectTaggingCommand;\nconst serializeAws_restXmlGetObjectTorrentCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"x-amz-request-payer\": input.RequestPayer,\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/{Key+}\";\n resolvedPath = (0, smithy_client_1.resolvedPath)(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n resolvedPath = (0, smithy_client_1.resolvedPath)(resolvedPath, input, \"Key\", () => input.Key, \"{Key+}\", true);\n const query = map({\n torrent: [, \"\"],\n });\n let body;\n return new protocol_http_1.HttpRequest({\n protocol,\n hostname,\n port,\n method: \"GET\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexports.serializeAws_restXmlGetObjectTorrentCommand = serializeAws_restXmlGetObjectTorrentCommand;\nconst serializeAws_restXmlGetPublicAccessBlockCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/\";\n resolvedPath = (0, smithy_client_1.resolvedPath)(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = map({\n publicAccessBlock: [, \"\"],\n });\n let body;\n return new protocol_http_1.HttpRequest({\n protocol,\n hostname,\n port,\n method: \"GET\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexports.serializeAws_restXmlGetPublicAccessBlockCommand = serializeAws_restXmlGetPublicAccessBlockCommand;\nconst serializeAws_restXmlHeadBucketCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/\";\n resolvedPath = (0, smithy_client_1.resolvedPath)(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n let body;\n return new protocol_http_1.HttpRequest({\n protocol,\n hostname,\n port,\n method: \"HEAD\",\n headers,\n path: resolvedPath,\n body,\n });\n};\nexports.serializeAws_restXmlHeadBucketCommand = serializeAws_restXmlHeadBucketCommand;\nconst serializeAws_restXmlHeadObjectCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"if-match\": input.IfMatch,\n \"if-modified-since\": [\n () => isSerializableHeaderValue(input.IfModifiedSince),\n () => (0, smithy_client_1.dateToUtcString)(input.IfModifiedSince).toString(),\n ],\n \"if-none-match\": input.IfNoneMatch,\n \"if-unmodified-since\": [\n () => isSerializableHeaderValue(input.IfUnmodifiedSince),\n () => (0, smithy_client_1.dateToUtcString)(input.IfUnmodifiedSince).toString(),\n ],\n range: input.Range,\n \"x-amz-server-side-encryption-customer-algorithm\": input.SSECustomerAlgorithm,\n \"x-amz-server-side-encryption-customer-key\": input.SSECustomerKey,\n \"x-amz-server-side-encryption-customer-key-md5\": input.SSECustomerKeyMD5,\n \"x-amz-request-payer\": input.RequestPayer,\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n \"x-amz-checksum-mode\": input.ChecksumMode,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/{Key+}\";\n resolvedPath = (0, smithy_client_1.resolvedPath)(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n resolvedPath = (0, smithy_client_1.resolvedPath)(resolvedPath, input, \"Key\", () => input.Key, \"{Key+}\", true);\n const query = map({\n versionId: [, input.VersionId],\n partNumber: [() => input.PartNumber !== void 0, () => input.PartNumber.toString()],\n });\n let body;\n return new protocol_http_1.HttpRequest({\n protocol,\n hostname,\n port,\n method: \"HEAD\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexports.serializeAws_restXmlHeadObjectCommand = serializeAws_restXmlHeadObjectCommand;\nconst serializeAws_restXmlListBucketAnalyticsConfigurationsCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/\";\n resolvedPath = (0, smithy_client_1.resolvedPath)(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = map({\n analytics: [, \"\"],\n \"x-id\": [, \"ListBucketAnalyticsConfigurations\"],\n \"continuation-token\": [, input.ContinuationToken],\n });\n let body;\n return new protocol_http_1.HttpRequest({\n protocol,\n hostname,\n port,\n method: \"GET\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexports.serializeAws_restXmlListBucketAnalyticsConfigurationsCommand = serializeAws_restXmlListBucketAnalyticsConfigurationsCommand;\nconst serializeAws_restXmlListBucketIntelligentTieringConfigurationsCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = {};\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/\";\n resolvedPath = (0, smithy_client_1.resolvedPath)(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = map({\n \"intelligent-tiering\": [, \"\"],\n \"x-id\": [, \"ListBucketIntelligentTieringConfigurations\"],\n \"continuation-token\": [, input.ContinuationToken],\n });\n let body;\n return new protocol_http_1.HttpRequest({\n protocol,\n hostname,\n port,\n method: \"GET\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexports.serializeAws_restXmlListBucketIntelligentTieringConfigurationsCommand = serializeAws_restXmlListBucketIntelligentTieringConfigurationsCommand;\nconst serializeAws_restXmlListBucketInventoryConfigurationsCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/\";\n resolvedPath = (0, smithy_client_1.resolvedPath)(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = map({\n inventory: [, \"\"],\n \"x-id\": [, \"ListBucketInventoryConfigurations\"],\n \"continuation-token\": [, input.ContinuationToken],\n });\n let body;\n return new protocol_http_1.HttpRequest({\n protocol,\n hostname,\n port,\n method: \"GET\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexports.serializeAws_restXmlListBucketInventoryConfigurationsCommand = serializeAws_restXmlListBucketInventoryConfigurationsCommand;\nconst serializeAws_restXmlListBucketMetricsConfigurationsCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/\";\n resolvedPath = (0, smithy_client_1.resolvedPath)(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = map({\n metrics: [, \"\"],\n \"x-id\": [, \"ListBucketMetricsConfigurations\"],\n \"continuation-token\": [, input.ContinuationToken],\n });\n let body;\n return new protocol_http_1.HttpRequest({\n protocol,\n hostname,\n port,\n method: \"GET\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexports.serializeAws_restXmlListBucketMetricsConfigurationsCommand = serializeAws_restXmlListBucketMetricsConfigurationsCommand;\nconst serializeAws_restXmlListBucketsCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = {\n \"content-type\": \"application/xml\",\n };\n const resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/\";\n let body;\n body = \"\";\n return new protocol_http_1.HttpRequest({\n protocol,\n hostname,\n port,\n method: \"GET\",\n headers,\n path: resolvedPath,\n body,\n });\n};\nexports.serializeAws_restXmlListBucketsCommand = serializeAws_restXmlListBucketsCommand;\nconst serializeAws_restXmlListMultipartUploadsCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/\";\n resolvedPath = (0, smithy_client_1.resolvedPath)(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = map({\n uploads: [, \"\"],\n delimiter: [, input.Delimiter],\n \"encoding-type\": [, input.EncodingType],\n \"key-marker\": [, input.KeyMarker],\n \"max-uploads\": [() => input.MaxUploads !== void 0, () => input.MaxUploads.toString()],\n prefix: [, input.Prefix],\n \"upload-id-marker\": [, input.UploadIdMarker],\n });\n let body;\n return new protocol_http_1.HttpRequest({\n protocol,\n hostname,\n port,\n method: \"GET\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexports.serializeAws_restXmlListMultipartUploadsCommand = serializeAws_restXmlListMultipartUploadsCommand;\nconst serializeAws_restXmlListObjectsCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"x-amz-request-payer\": input.RequestPayer,\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/\";\n resolvedPath = (0, smithy_client_1.resolvedPath)(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = map({\n delimiter: [, input.Delimiter],\n \"encoding-type\": [, input.EncodingType],\n marker: [, input.Marker],\n \"max-keys\": [() => input.MaxKeys !== void 0, () => input.MaxKeys.toString()],\n prefix: [, input.Prefix],\n });\n let body;\n return new protocol_http_1.HttpRequest({\n protocol,\n hostname,\n port,\n method: \"GET\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexports.serializeAws_restXmlListObjectsCommand = serializeAws_restXmlListObjectsCommand;\nconst serializeAws_restXmlListObjectsV2Command = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"x-amz-request-payer\": input.RequestPayer,\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/\";\n resolvedPath = (0, smithy_client_1.resolvedPath)(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = map({\n \"list-type\": [, \"2\"],\n delimiter: [, input.Delimiter],\n \"encoding-type\": [, input.EncodingType],\n \"max-keys\": [() => input.MaxKeys !== void 0, () => input.MaxKeys.toString()],\n prefix: [, input.Prefix],\n \"continuation-token\": [, input.ContinuationToken],\n \"fetch-owner\": [() => input.FetchOwner !== void 0, () => input.FetchOwner.toString()],\n \"start-after\": [, input.StartAfter],\n });\n let body;\n return new protocol_http_1.HttpRequest({\n protocol,\n hostname,\n port,\n method: \"GET\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexports.serializeAws_restXmlListObjectsV2Command = serializeAws_restXmlListObjectsV2Command;\nconst serializeAws_restXmlListObjectVersionsCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/\";\n resolvedPath = (0, smithy_client_1.resolvedPath)(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = map({\n versions: [, \"\"],\n delimiter: [, input.Delimiter],\n \"encoding-type\": [, input.EncodingType],\n \"key-marker\": [, input.KeyMarker],\n \"max-keys\": [() => input.MaxKeys !== void 0, () => input.MaxKeys.toString()],\n prefix: [, input.Prefix],\n \"version-id-marker\": [, input.VersionIdMarker],\n });\n let body;\n return new protocol_http_1.HttpRequest({\n protocol,\n hostname,\n port,\n method: \"GET\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexports.serializeAws_restXmlListObjectVersionsCommand = serializeAws_restXmlListObjectVersionsCommand;\nconst serializeAws_restXmlListPartsCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"x-amz-request-payer\": input.RequestPayer,\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n \"x-amz-server-side-encryption-customer-algorithm\": input.SSECustomerAlgorithm,\n \"x-amz-server-side-encryption-customer-key\": input.SSECustomerKey,\n \"x-amz-server-side-encryption-customer-key-md5\": input.SSECustomerKeyMD5,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/{Key+}\";\n resolvedPath = (0, smithy_client_1.resolvedPath)(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n resolvedPath = (0, smithy_client_1.resolvedPath)(resolvedPath, input, \"Key\", () => input.Key, \"{Key+}\", true);\n const query = map({\n \"x-id\": [, \"ListParts\"],\n \"max-parts\": [() => input.MaxParts !== void 0, () => input.MaxParts.toString()],\n \"part-number-marker\": [, input.PartNumberMarker],\n uploadId: [, (0, smithy_client_1.expectNonNull)(input.UploadId, `UploadId`)],\n });\n let body;\n return new protocol_http_1.HttpRequest({\n protocol,\n hostname,\n port,\n method: \"GET\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexports.serializeAws_restXmlListPartsCommand = serializeAws_restXmlListPartsCommand;\nconst serializeAws_restXmlPutBucketAccelerateConfigurationCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"content-type\": \"application/xml\",\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n \"x-amz-sdk-checksum-algorithm\": input.ChecksumAlgorithm,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/\";\n resolvedPath = (0, smithy_client_1.resolvedPath)(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = map({\n accelerate: [, \"\"],\n });\n let body;\n if (input.AccelerateConfiguration !== undefined) {\n body = serializeAws_restXmlAccelerateConfiguration(input.AccelerateConfiguration, context);\n }\n let contents;\n if (input.AccelerateConfiguration !== undefined) {\n contents = serializeAws_restXmlAccelerateConfiguration(input.AccelerateConfiguration, context);\n body = '';\n contents.addAttribute(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n return new protocol_http_1.HttpRequest({\n protocol,\n hostname,\n port,\n method: \"PUT\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexports.serializeAws_restXmlPutBucketAccelerateConfigurationCommand = serializeAws_restXmlPutBucketAccelerateConfigurationCommand;\nconst serializeAws_restXmlPutBucketAclCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"content-type\": \"application/xml\",\n \"x-amz-acl\": input.ACL,\n \"content-md5\": input.ContentMD5,\n \"x-amz-sdk-checksum-algorithm\": input.ChecksumAlgorithm,\n \"x-amz-grant-full-control\": input.GrantFullControl,\n \"x-amz-grant-read\": input.GrantRead,\n \"x-amz-grant-read-acp\": input.GrantReadACP,\n \"x-amz-grant-write\": input.GrantWrite,\n \"x-amz-grant-write-acp\": input.GrantWriteACP,\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/\";\n resolvedPath = (0, smithy_client_1.resolvedPath)(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = map({\n acl: [, \"\"],\n });\n let body;\n if (input.AccessControlPolicy !== undefined) {\n body = serializeAws_restXmlAccessControlPolicy(input.AccessControlPolicy, context);\n }\n let contents;\n if (input.AccessControlPolicy !== undefined) {\n contents = serializeAws_restXmlAccessControlPolicy(input.AccessControlPolicy, context);\n body = '';\n contents.addAttribute(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n return new protocol_http_1.HttpRequest({\n protocol,\n hostname,\n port,\n method: \"PUT\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexports.serializeAws_restXmlPutBucketAclCommand = serializeAws_restXmlPutBucketAclCommand;\nconst serializeAws_restXmlPutBucketAnalyticsConfigurationCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"content-type\": \"application/xml\",\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/\";\n resolvedPath = (0, smithy_client_1.resolvedPath)(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = map({\n analytics: [, \"\"],\n id: [, (0, smithy_client_1.expectNonNull)(input.Id, `Id`)],\n });\n let body;\n if (input.AnalyticsConfiguration !== undefined) {\n body = serializeAws_restXmlAnalyticsConfiguration(input.AnalyticsConfiguration, context);\n }\n let contents;\n if (input.AnalyticsConfiguration !== undefined) {\n contents = serializeAws_restXmlAnalyticsConfiguration(input.AnalyticsConfiguration, context);\n body = '';\n contents.addAttribute(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n return new protocol_http_1.HttpRequest({\n protocol,\n hostname,\n port,\n method: \"PUT\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexports.serializeAws_restXmlPutBucketAnalyticsConfigurationCommand = serializeAws_restXmlPutBucketAnalyticsConfigurationCommand;\nconst serializeAws_restXmlPutBucketCorsCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"content-type\": \"application/xml\",\n \"content-md5\": input.ContentMD5,\n \"x-amz-sdk-checksum-algorithm\": input.ChecksumAlgorithm,\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/\";\n resolvedPath = (0, smithy_client_1.resolvedPath)(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = map({\n cors: [, \"\"],\n });\n let body;\n if (input.CORSConfiguration !== undefined) {\n body = serializeAws_restXmlCORSConfiguration(input.CORSConfiguration, context);\n }\n let contents;\n if (input.CORSConfiguration !== undefined) {\n contents = serializeAws_restXmlCORSConfiguration(input.CORSConfiguration, context);\n body = '';\n contents.addAttribute(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n return new protocol_http_1.HttpRequest({\n protocol,\n hostname,\n port,\n method: \"PUT\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexports.serializeAws_restXmlPutBucketCorsCommand = serializeAws_restXmlPutBucketCorsCommand;\nconst serializeAws_restXmlPutBucketEncryptionCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"content-type\": \"application/xml\",\n \"content-md5\": input.ContentMD5,\n \"x-amz-sdk-checksum-algorithm\": input.ChecksumAlgorithm,\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/\";\n resolvedPath = (0, smithy_client_1.resolvedPath)(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = map({\n encryption: [, \"\"],\n });\n let body;\n if (input.ServerSideEncryptionConfiguration !== undefined) {\n body = serializeAws_restXmlServerSideEncryptionConfiguration(input.ServerSideEncryptionConfiguration, context);\n }\n let contents;\n if (input.ServerSideEncryptionConfiguration !== undefined) {\n contents = serializeAws_restXmlServerSideEncryptionConfiguration(input.ServerSideEncryptionConfiguration, context);\n body = '';\n contents.addAttribute(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n return new protocol_http_1.HttpRequest({\n protocol,\n hostname,\n port,\n method: \"PUT\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexports.serializeAws_restXmlPutBucketEncryptionCommand = serializeAws_restXmlPutBucketEncryptionCommand;\nconst serializeAws_restXmlPutBucketIntelligentTieringConfigurationCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = {\n \"content-type\": \"application/xml\",\n };\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/\";\n resolvedPath = (0, smithy_client_1.resolvedPath)(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = map({\n \"intelligent-tiering\": [, \"\"],\n id: [, (0, smithy_client_1.expectNonNull)(input.Id, `Id`)],\n });\n let body;\n if (input.IntelligentTieringConfiguration !== undefined) {\n body = serializeAws_restXmlIntelligentTieringConfiguration(input.IntelligentTieringConfiguration, context);\n }\n let contents;\n if (input.IntelligentTieringConfiguration !== undefined) {\n contents = serializeAws_restXmlIntelligentTieringConfiguration(input.IntelligentTieringConfiguration, context);\n body = '';\n contents.addAttribute(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n return new protocol_http_1.HttpRequest({\n protocol,\n hostname,\n port,\n method: \"PUT\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexports.serializeAws_restXmlPutBucketIntelligentTieringConfigurationCommand = serializeAws_restXmlPutBucketIntelligentTieringConfigurationCommand;\nconst serializeAws_restXmlPutBucketInventoryConfigurationCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"content-type\": \"application/xml\",\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/\";\n resolvedPath = (0, smithy_client_1.resolvedPath)(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = map({\n inventory: [, \"\"],\n id: [, (0, smithy_client_1.expectNonNull)(input.Id, `Id`)],\n });\n let body;\n if (input.InventoryConfiguration !== undefined) {\n body = serializeAws_restXmlInventoryConfiguration(input.InventoryConfiguration, context);\n }\n let contents;\n if (input.InventoryConfiguration !== undefined) {\n contents = serializeAws_restXmlInventoryConfiguration(input.InventoryConfiguration, context);\n body = '';\n contents.addAttribute(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n return new protocol_http_1.HttpRequest({\n protocol,\n hostname,\n port,\n method: \"PUT\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexports.serializeAws_restXmlPutBucketInventoryConfigurationCommand = serializeAws_restXmlPutBucketInventoryConfigurationCommand;\nconst serializeAws_restXmlPutBucketLifecycleConfigurationCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"content-type\": \"application/xml\",\n \"x-amz-sdk-checksum-algorithm\": input.ChecksumAlgorithm,\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/\";\n resolvedPath = (0, smithy_client_1.resolvedPath)(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = map({\n lifecycle: [, \"\"],\n });\n let body;\n if (input.LifecycleConfiguration !== undefined) {\n body = serializeAws_restXmlBucketLifecycleConfiguration(input.LifecycleConfiguration, context);\n }\n let contents;\n if (input.LifecycleConfiguration !== undefined) {\n contents = serializeAws_restXmlBucketLifecycleConfiguration(input.LifecycleConfiguration, context);\n contents = contents.withName(\"LifecycleConfiguration\");\n body = '';\n contents.addAttribute(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n return new protocol_http_1.HttpRequest({\n protocol,\n hostname,\n port,\n method: \"PUT\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexports.serializeAws_restXmlPutBucketLifecycleConfigurationCommand = serializeAws_restXmlPutBucketLifecycleConfigurationCommand;\nconst serializeAws_restXmlPutBucketLoggingCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"content-type\": \"application/xml\",\n \"content-md5\": input.ContentMD5,\n \"x-amz-sdk-checksum-algorithm\": input.ChecksumAlgorithm,\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/\";\n resolvedPath = (0, smithy_client_1.resolvedPath)(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = map({\n logging: [, \"\"],\n });\n let body;\n if (input.BucketLoggingStatus !== undefined) {\n body = serializeAws_restXmlBucketLoggingStatus(input.BucketLoggingStatus, context);\n }\n let contents;\n if (input.BucketLoggingStatus !== undefined) {\n contents = serializeAws_restXmlBucketLoggingStatus(input.BucketLoggingStatus, context);\n body = '';\n contents.addAttribute(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n return new protocol_http_1.HttpRequest({\n protocol,\n hostname,\n port,\n method: \"PUT\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexports.serializeAws_restXmlPutBucketLoggingCommand = serializeAws_restXmlPutBucketLoggingCommand;\nconst serializeAws_restXmlPutBucketMetricsConfigurationCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"content-type\": \"application/xml\",\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/\";\n resolvedPath = (0, smithy_client_1.resolvedPath)(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = map({\n metrics: [, \"\"],\n id: [, (0, smithy_client_1.expectNonNull)(input.Id, `Id`)],\n });\n let body;\n if (input.MetricsConfiguration !== undefined) {\n body = serializeAws_restXmlMetricsConfiguration(input.MetricsConfiguration, context);\n }\n let contents;\n if (input.MetricsConfiguration !== undefined) {\n contents = serializeAws_restXmlMetricsConfiguration(input.MetricsConfiguration, context);\n body = '';\n contents.addAttribute(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n return new protocol_http_1.HttpRequest({\n protocol,\n hostname,\n port,\n method: \"PUT\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexports.serializeAws_restXmlPutBucketMetricsConfigurationCommand = serializeAws_restXmlPutBucketMetricsConfigurationCommand;\nconst serializeAws_restXmlPutBucketNotificationConfigurationCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"content-type\": \"application/xml\",\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n \"x-amz-skip-destination-validation\": [\n () => isSerializableHeaderValue(input.SkipDestinationValidation),\n () => input.SkipDestinationValidation.toString(),\n ],\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/\";\n resolvedPath = (0, smithy_client_1.resolvedPath)(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = map({\n notification: [, \"\"],\n });\n let body;\n if (input.NotificationConfiguration !== undefined) {\n body = serializeAws_restXmlNotificationConfiguration(input.NotificationConfiguration, context);\n }\n let contents;\n if (input.NotificationConfiguration !== undefined) {\n contents = serializeAws_restXmlNotificationConfiguration(input.NotificationConfiguration, context);\n body = '';\n contents.addAttribute(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n return new protocol_http_1.HttpRequest({\n protocol,\n hostname,\n port,\n method: \"PUT\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexports.serializeAws_restXmlPutBucketNotificationConfigurationCommand = serializeAws_restXmlPutBucketNotificationConfigurationCommand;\nconst serializeAws_restXmlPutBucketOwnershipControlsCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"content-type\": \"application/xml\",\n \"content-md5\": input.ContentMD5,\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/\";\n resolvedPath = (0, smithy_client_1.resolvedPath)(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = map({\n ownershipControls: [, \"\"],\n });\n let body;\n if (input.OwnershipControls !== undefined) {\n body = serializeAws_restXmlOwnershipControls(input.OwnershipControls, context);\n }\n let contents;\n if (input.OwnershipControls !== undefined) {\n contents = serializeAws_restXmlOwnershipControls(input.OwnershipControls, context);\n body = '';\n contents.addAttribute(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n return new protocol_http_1.HttpRequest({\n protocol,\n hostname,\n port,\n method: \"PUT\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexports.serializeAws_restXmlPutBucketOwnershipControlsCommand = serializeAws_restXmlPutBucketOwnershipControlsCommand;\nconst serializeAws_restXmlPutBucketPolicyCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"content-type\": \"text/plain\",\n \"content-md5\": input.ContentMD5,\n \"x-amz-sdk-checksum-algorithm\": input.ChecksumAlgorithm,\n \"x-amz-confirm-remove-self-bucket-access\": [\n () => isSerializableHeaderValue(input.ConfirmRemoveSelfBucketAccess),\n () => input.ConfirmRemoveSelfBucketAccess.toString(),\n ],\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/\";\n resolvedPath = (0, smithy_client_1.resolvedPath)(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = map({\n policy: [, \"\"],\n });\n let body;\n if (input.Policy !== undefined) {\n body = input.Policy;\n }\n let contents;\n if (input.Policy !== undefined) {\n contents = input.Policy;\n body = contents;\n }\n return new protocol_http_1.HttpRequest({\n protocol,\n hostname,\n port,\n method: \"PUT\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexports.serializeAws_restXmlPutBucketPolicyCommand = serializeAws_restXmlPutBucketPolicyCommand;\nconst serializeAws_restXmlPutBucketReplicationCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"content-type\": \"application/xml\",\n \"content-md5\": input.ContentMD5,\n \"x-amz-sdk-checksum-algorithm\": input.ChecksumAlgorithm,\n \"x-amz-bucket-object-lock-token\": input.Token,\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/\";\n resolvedPath = (0, smithy_client_1.resolvedPath)(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = map({\n replication: [, \"\"],\n });\n let body;\n if (input.ReplicationConfiguration !== undefined) {\n body = serializeAws_restXmlReplicationConfiguration(input.ReplicationConfiguration, context);\n }\n let contents;\n if (input.ReplicationConfiguration !== undefined) {\n contents = serializeAws_restXmlReplicationConfiguration(input.ReplicationConfiguration, context);\n body = '';\n contents.addAttribute(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n return new protocol_http_1.HttpRequest({\n protocol,\n hostname,\n port,\n method: \"PUT\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexports.serializeAws_restXmlPutBucketReplicationCommand = serializeAws_restXmlPutBucketReplicationCommand;\nconst serializeAws_restXmlPutBucketRequestPaymentCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"content-type\": \"application/xml\",\n \"content-md5\": input.ContentMD5,\n \"x-amz-sdk-checksum-algorithm\": input.ChecksumAlgorithm,\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/\";\n resolvedPath = (0, smithy_client_1.resolvedPath)(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = map({\n requestPayment: [, \"\"],\n });\n let body;\n if (input.RequestPaymentConfiguration !== undefined) {\n body = serializeAws_restXmlRequestPaymentConfiguration(input.RequestPaymentConfiguration, context);\n }\n let contents;\n if (input.RequestPaymentConfiguration !== undefined) {\n contents = serializeAws_restXmlRequestPaymentConfiguration(input.RequestPaymentConfiguration, context);\n body = '';\n contents.addAttribute(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n return new protocol_http_1.HttpRequest({\n protocol,\n hostname,\n port,\n method: \"PUT\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexports.serializeAws_restXmlPutBucketRequestPaymentCommand = serializeAws_restXmlPutBucketRequestPaymentCommand;\nconst serializeAws_restXmlPutBucketTaggingCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"content-type\": \"application/xml\",\n \"content-md5\": input.ContentMD5,\n \"x-amz-sdk-checksum-algorithm\": input.ChecksumAlgorithm,\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/\";\n resolvedPath = (0, smithy_client_1.resolvedPath)(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = map({\n tagging: [, \"\"],\n });\n let body;\n if (input.Tagging !== undefined) {\n body = serializeAws_restXmlTagging(input.Tagging, context);\n }\n let contents;\n if (input.Tagging !== undefined) {\n contents = serializeAws_restXmlTagging(input.Tagging, context);\n body = '';\n contents.addAttribute(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n return new protocol_http_1.HttpRequest({\n protocol,\n hostname,\n port,\n method: \"PUT\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexports.serializeAws_restXmlPutBucketTaggingCommand = serializeAws_restXmlPutBucketTaggingCommand;\nconst serializeAws_restXmlPutBucketVersioningCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"content-type\": \"application/xml\",\n \"content-md5\": input.ContentMD5,\n \"x-amz-sdk-checksum-algorithm\": input.ChecksumAlgorithm,\n \"x-amz-mfa\": input.MFA,\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/\";\n resolvedPath = (0, smithy_client_1.resolvedPath)(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = map({\n versioning: [, \"\"],\n });\n let body;\n if (input.VersioningConfiguration !== undefined) {\n body = serializeAws_restXmlVersioningConfiguration(input.VersioningConfiguration, context);\n }\n let contents;\n if (input.VersioningConfiguration !== undefined) {\n contents = serializeAws_restXmlVersioningConfiguration(input.VersioningConfiguration, context);\n body = '';\n contents.addAttribute(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n return new protocol_http_1.HttpRequest({\n protocol,\n hostname,\n port,\n method: \"PUT\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexports.serializeAws_restXmlPutBucketVersioningCommand = serializeAws_restXmlPutBucketVersioningCommand;\nconst serializeAws_restXmlPutBucketWebsiteCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"content-type\": \"application/xml\",\n \"content-md5\": input.ContentMD5,\n \"x-amz-sdk-checksum-algorithm\": input.ChecksumAlgorithm,\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/\";\n resolvedPath = (0, smithy_client_1.resolvedPath)(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = map({\n website: [, \"\"],\n });\n let body;\n if (input.WebsiteConfiguration !== undefined) {\n body = serializeAws_restXmlWebsiteConfiguration(input.WebsiteConfiguration, context);\n }\n let contents;\n if (input.WebsiteConfiguration !== undefined) {\n contents = serializeAws_restXmlWebsiteConfiguration(input.WebsiteConfiguration, context);\n body = '';\n contents.addAttribute(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n return new protocol_http_1.HttpRequest({\n protocol,\n hostname,\n port,\n method: \"PUT\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexports.serializeAws_restXmlPutBucketWebsiteCommand = serializeAws_restXmlPutBucketWebsiteCommand;\nconst serializeAws_restXmlPutObjectCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"content-type\": input.ContentType || \"application/octet-stream\",\n \"x-amz-acl\": input.ACL,\n \"cache-control\": input.CacheControl,\n \"content-disposition\": input.ContentDisposition,\n \"content-encoding\": input.ContentEncoding,\n \"content-language\": input.ContentLanguage,\n \"content-length\": [() => isSerializableHeaderValue(input.ContentLength), () => input.ContentLength.toString()],\n \"content-md5\": input.ContentMD5,\n \"x-amz-sdk-checksum-algorithm\": input.ChecksumAlgorithm,\n \"x-amz-checksum-crc32\": input.ChecksumCRC32,\n \"x-amz-checksum-crc32c\": input.ChecksumCRC32C,\n \"x-amz-checksum-sha1\": input.ChecksumSHA1,\n \"x-amz-checksum-sha256\": input.ChecksumSHA256,\n expires: [() => isSerializableHeaderValue(input.Expires), () => (0, smithy_client_1.dateToUtcString)(input.Expires).toString()],\n \"x-amz-grant-full-control\": input.GrantFullControl,\n \"x-amz-grant-read\": input.GrantRead,\n \"x-amz-grant-read-acp\": input.GrantReadACP,\n \"x-amz-grant-write-acp\": input.GrantWriteACP,\n \"x-amz-server-side-encryption\": input.ServerSideEncryption,\n \"x-amz-storage-class\": input.StorageClass,\n \"x-amz-website-redirect-location\": input.WebsiteRedirectLocation,\n \"x-amz-server-side-encryption-customer-algorithm\": input.SSECustomerAlgorithm,\n \"x-amz-server-side-encryption-customer-key\": input.SSECustomerKey,\n \"x-amz-server-side-encryption-customer-key-md5\": input.SSECustomerKeyMD5,\n \"x-amz-server-side-encryption-aws-kms-key-id\": input.SSEKMSKeyId,\n \"x-amz-server-side-encryption-context\": input.SSEKMSEncryptionContext,\n \"x-amz-server-side-encryption-bucket-key-enabled\": [\n () => isSerializableHeaderValue(input.BucketKeyEnabled),\n () => input.BucketKeyEnabled.toString(),\n ],\n \"x-amz-request-payer\": input.RequestPayer,\n \"x-amz-tagging\": input.Tagging,\n \"x-amz-object-lock-mode\": input.ObjectLockMode,\n \"x-amz-object-lock-retain-until-date\": [\n () => isSerializableHeaderValue(input.ObjectLockRetainUntilDate),\n () => (input.ObjectLockRetainUntilDate.toISOString().split(\".\")[0] + \"Z\").toString(),\n ],\n \"x-amz-object-lock-legal-hold\": input.ObjectLockLegalHoldStatus,\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n ...(input.Metadata !== undefined &&\n Object.keys(input.Metadata).reduce((acc, suffix) => {\n acc[`x-amz-meta-${suffix.toLowerCase()}`] = input.Metadata[suffix];\n return acc;\n }, {})),\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/{Key+}\";\n resolvedPath = (0, smithy_client_1.resolvedPath)(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n resolvedPath = (0, smithy_client_1.resolvedPath)(resolvedPath, input, \"Key\", () => input.Key, \"{Key+}\", true);\n const query = map({\n \"x-id\": [, \"PutObject\"],\n });\n let body;\n if (input.Body !== undefined) {\n body = input.Body;\n }\n let contents;\n if (input.Body !== undefined) {\n contents = input.Body;\n body = contents;\n }\n return new protocol_http_1.HttpRequest({\n protocol,\n hostname,\n port,\n method: \"PUT\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexports.serializeAws_restXmlPutObjectCommand = serializeAws_restXmlPutObjectCommand;\nconst serializeAws_restXmlPutObjectAclCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"content-type\": \"application/xml\",\n \"x-amz-acl\": input.ACL,\n \"content-md5\": input.ContentMD5,\n \"x-amz-sdk-checksum-algorithm\": input.ChecksumAlgorithm,\n \"x-amz-grant-full-control\": input.GrantFullControl,\n \"x-amz-grant-read\": input.GrantRead,\n \"x-amz-grant-read-acp\": input.GrantReadACP,\n \"x-amz-grant-write\": input.GrantWrite,\n \"x-amz-grant-write-acp\": input.GrantWriteACP,\n \"x-amz-request-payer\": input.RequestPayer,\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/{Key+}\";\n resolvedPath = (0, smithy_client_1.resolvedPath)(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n resolvedPath = (0, smithy_client_1.resolvedPath)(resolvedPath, input, \"Key\", () => input.Key, \"{Key+}\", true);\n const query = map({\n acl: [, \"\"],\n versionId: [, input.VersionId],\n });\n let body;\n if (input.AccessControlPolicy !== undefined) {\n body = serializeAws_restXmlAccessControlPolicy(input.AccessControlPolicy, context);\n }\n let contents;\n if (input.AccessControlPolicy !== undefined) {\n contents = serializeAws_restXmlAccessControlPolicy(input.AccessControlPolicy, context);\n body = '';\n contents.addAttribute(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n return new protocol_http_1.HttpRequest({\n protocol,\n hostname,\n port,\n method: \"PUT\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexports.serializeAws_restXmlPutObjectAclCommand = serializeAws_restXmlPutObjectAclCommand;\nconst serializeAws_restXmlPutObjectLegalHoldCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"content-type\": \"application/xml\",\n \"x-amz-request-payer\": input.RequestPayer,\n \"content-md5\": input.ContentMD5,\n \"x-amz-sdk-checksum-algorithm\": input.ChecksumAlgorithm,\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/{Key+}\";\n resolvedPath = (0, smithy_client_1.resolvedPath)(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n resolvedPath = (0, smithy_client_1.resolvedPath)(resolvedPath, input, \"Key\", () => input.Key, \"{Key+}\", true);\n const query = map({\n \"legal-hold\": [, \"\"],\n versionId: [, input.VersionId],\n });\n let body;\n if (input.LegalHold !== undefined) {\n body = serializeAws_restXmlObjectLockLegalHold(input.LegalHold, context);\n }\n let contents;\n if (input.LegalHold !== undefined) {\n contents = serializeAws_restXmlObjectLockLegalHold(input.LegalHold, context);\n contents = contents.withName(\"LegalHold\");\n body = '';\n contents.addAttribute(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n return new protocol_http_1.HttpRequest({\n protocol,\n hostname,\n port,\n method: \"PUT\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexports.serializeAws_restXmlPutObjectLegalHoldCommand = serializeAws_restXmlPutObjectLegalHoldCommand;\nconst serializeAws_restXmlPutObjectLockConfigurationCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"content-type\": \"application/xml\",\n \"x-amz-request-payer\": input.RequestPayer,\n \"x-amz-bucket-object-lock-token\": input.Token,\n \"content-md5\": input.ContentMD5,\n \"x-amz-sdk-checksum-algorithm\": input.ChecksumAlgorithm,\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/\";\n resolvedPath = (0, smithy_client_1.resolvedPath)(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = map({\n \"object-lock\": [, \"\"],\n });\n let body;\n if (input.ObjectLockConfiguration !== undefined) {\n body = serializeAws_restXmlObjectLockConfiguration(input.ObjectLockConfiguration, context);\n }\n let contents;\n if (input.ObjectLockConfiguration !== undefined) {\n contents = serializeAws_restXmlObjectLockConfiguration(input.ObjectLockConfiguration, context);\n body = '';\n contents.addAttribute(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n return new protocol_http_1.HttpRequest({\n protocol,\n hostname,\n port,\n method: \"PUT\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexports.serializeAws_restXmlPutObjectLockConfigurationCommand = serializeAws_restXmlPutObjectLockConfigurationCommand;\nconst serializeAws_restXmlPutObjectRetentionCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"content-type\": \"application/xml\",\n \"x-amz-request-payer\": input.RequestPayer,\n \"x-amz-bypass-governance-retention\": [\n () => isSerializableHeaderValue(input.BypassGovernanceRetention),\n () => input.BypassGovernanceRetention.toString(),\n ],\n \"content-md5\": input.ContentMD5,\n \"x-amz-sdk-checksum-algorithm\": input.ChecksumAlgorithm,\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/{Key+}\";\n resolvedPath = (0, smithy_client_1.resolvedPath)(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n resolvedPath = (0, smithy_client_1.resolvedPath)(resolvedPath, input, \"Key\", () => input.Key, \"{Key+}\", true);\n const query = map({\n retention: [, \"\"],\n versionId: [, input.VersionId],\n });\n let body;\n if (input.Retention !== undefined) {\n body = serializeAws_restXmlObjectLockRetention(input.Retention, context);\n }\n let contents;\n if (input.Retention !== undefined) {\n contents = serializeAws_restXmlObjectLockRetention(input.Retention, context);\n contents = contents.withName(\"Retention\");\n body = '';\n contents.addAttribute(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n return new protocol_http_1.HttpRequest({\n protocol,\n hostname,\n port,\n method: \"PUT\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexports.serializeAws_restXmlPutObjectRetentionCommand = serializeAws_restXmlPutObjectRetentionCommand;\nconst serializeAws_restXmlPutObjectTaggingCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"content-type\": \"application/xml\",\n \"content-md5\": input.ContentMD5,\n \"x-amz-sdk-checksum-algorithm\": input.ChecksumAlgorithm,\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n \"x-amz-request-payer\": input.RequestPayer,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/{Key+}\";\n resolvedPath = (0, smithy_client_1.resolvedPath)(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n resolvedPath = (0, smithy_client_1.resolvedPath)(resolvedPath, input, \"Key\", () => input.Key, \"{Key+}\", true);\n const query = map({\n tagging: [, \"\"],\n versionId: [, input.VersionId],\n });\n let body;\n if (input.Tagging !== undefined) {\n body = serializeAws_restXmlTagging(input.Tagging, context);\n }\n let contents;\n if (input.Tagging !== undefined) {\n contents = serializeAws_restXmlTagging(input.Tagging, context);\n body = '';\n contents.addAttribute(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n return new protocol_http_1.HttpRequest({\n protocol,\n hostname,\n port,\n method: \"PUT\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexports.serializeAws_restXmlPutObjectTaggingCommand = serializeAws_restXmlPutObjectTaggingCommand;\nconst serializeAws_restXmlPutPublicAccessBlockCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"content-type\": \"application/xml\",\n \"content-md5\": input.ContentMD5,\n \"x-amz-sdk-checksum-algorithm\": input.ChecksumAlgorithm,\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/\";\n resolvedPath = (0, smithy_client_1.resolvedPath)(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = map({\n publicAccessBlock: [, \"\"],\n });\n let body;\n if (input.PublicAccessBlockConfiguration !== undefined) {\n body = serializeAws_restXmlPublicAccessBlockConfiguration(input.PublicAccessBlockConfiguration, context);\n }\n let contents;\n if (input.PublicAccessBlockConfiguration !== undefined) {\n contents = serializeAws_restXmlPublicAccessBlockConfiguration(input.PublicAccessBlockConfiguration, context);\n body = '';\n contents.addAttribute(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n return new protocol_http_1.HttpRequest({\n protocol,\n hostname,\n port,\n method: \"PUT\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexports.serializeAws_restXmlPutPublicAccessBlockCommand = serializeAws_restXmlPutPublicAccessBlockCommand;\nconst serializeAws_restXmlRestoreObjectCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"content-type\": \"application/xml\",\n \"x-amz-request-payer\": input.RequestPayer,\n \"x-amz-sdk-checksum-algorithm\": input.ChecksumAlgorithm,\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/{Key+}\";\n resolvedPath = (0, smithy_client_1.resolvedPath)(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n resolvedPath = (0, smithy_client_1.resolvedPath)(resolvedPath, input, \"Key\", () => input.Key, \"{Key+}\", true);\n const query = map({\n restore: [, \"\"],\n \"x-id\": [, \"RestoreObject\"],\n versionId: [, input.VersionId],\n });\n let body;\n if (input.RestoreRequest !== undefined) {\n body = serializeAws_restXmlRestoreRequest(input.RestoreRequest, context);\n }\n let contents;\n if (input.RestoreRequest !== undefined) {\n contents = serializeAws_restXmlRestoreRequest(input.RestoreRequest, context);\n body = '';\n contents.addAttribute(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n return new protocol_http_1.HttpRequest({\n protocol,\n hostname,\n port,\n method: \"POST\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexports.serializeAws_restXmlRestoreObjectCommand = serializeAws_restXmlRestoreObjectCommand;\nconst serializeAws_restXmlSelectObjectContentCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"content-type\": \"application/xml\",\n \"x-amz-server-side-encryption-customer-algorithm\": input.SSECustomerAlgorithm,\n \"x-amz-server-side-encryption-customer-key\": input.SSECustomerKey,\n \"x-amz-server-side-encryption-customer-key-md5\": input.SSECustomerKeyMD5,\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/{Key+}\";\n resolvedPath = (0, smithy_client_1.resolvedPath)(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n resolvedPath = (0, smithy_client_1.resolvedPath)(resolvedPath, input, \"Key\", () => input.Key, \"{Key+}\", true);\n const query = map({\n select: [, \"\"],\n \"select-type\": [, \"2\"],\n \"x-id\": [, \"SelectObjectContent\"],\n });\n let body;\n body = '';\n const bodyNode = new xml_builder_1.XmlNode(\"SelectObjectContentRequest\");\n bodyNode.addAttribute(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n if (input.Expression !== undefined) {\n const node = xml_builder_1.XmlNode.of(\"Expression\", input.Expression).withName(\"Expression\");\n bodyNode.addChildNode(node);\n }\n if (input.ExpressionType !== undefined) {\n const node = xml_builder_1.XmlNode.of(\"ExpressionType\", input.ExpressionType).withName(\"ExpressionType\");\n bodyNode.addChildNode(node);\n }\n if (input.InputSerialization !== undefined) {\n const node = serializeAws_restXmlInputSerialization(input.InputSerialization, context).withName(\"InputSerialization\");\n bodyNode.addChildNode(node);\n }\n if (input.OutputSerialization !== undefined) {\n const node = serializeAws_restXmlOutputSerialization(input.OutputSerialization, context).withName(\"OutputSerialization\");\n bodyNode.addChildNode(node);\n }\n if (input.RequestProgress !== undefined) {\n const node = serializeAws_restXmlRequestProgress(input.RequestProgress, context).withName(\"RequestProgress\");\n bodyNode.addChildNode(node);\n }\n if (input.ScanRange !== undefined) {\n const node = serializeAws_restXmlScanRange(input.ScanRange, context).withName(\"ScanRange\");\n bodyNode.addChildNode(node);\n }\n body += bodyNode.toString();\n return new protocol_http_1.HttpRequest({\n protocol,\n hostname,\n port,\n method: \"POST\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexports.serializeAws_restXmlSelectObjectContentCommand = serializeAws_restXmlSelectObjectContentCommand;\nconst serializeAws_restXmlUploadPartCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"content-type\": \"application/octet-stream\",\n \"content-length\": [() => isSerializableHeaderValue(input.ContentLength), () => input.ContentLength.toString()],\n \"content-md5\": input.ContentMD5,\n \"x-amz-sdk-checksum-algorithm\": input.ChecksumAlgorithm,\n \"x-amz-checksum-crc32\": input.ChecksumCRC32,\n \"x-amz-checksum-crc32c\": input.ChecksumCRC32C,\n \"x-amz-checksum-sha1\": input.ChecksumSHA1,\n \"x-amz-checksum-sha256\": input.ChecksumSHA256,\n \"x-amz-server-side-encryption-customer-algorithm\": input.SSECustomerAlgorithm,\n \"x-amz-server-side-encryption-customer-key\": input.SSECustomerKey,\n \"x-amz-server-side-encryption-customer-key-md5\": input.SSECustomerKeyMD5,\n \"x-amz-request-payer\": input.RequestPayer,\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/{Key+}\";\n resolvedPath = (0, smithy_client_1.resolvedPath)(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n resolvedPath = (0, smithy_client_1.resolvedPath)(resolvedPath, input, \"Key\", () => input.Key, \"{Key+}\", true);\n const query = map({\n \"x-id\": [, \"UploadPart\"],\n partNumber: [(0, smithy_client_1.expectNonNull)(input.PartNumber, `PartNumber`) != null, () => input.PartNumber.toString()],\n uploadId: [, (0, smithy_client_1.expectNonNull)(input.UploadId, `UploadId`)],\n });\n let body;\n if (input.Body !== undefined) {\n body = input.Body;\n }\n let contents;\n if (input.Body !== undefined) {\n contents = input.Body;\n body = contents;\n }\n return new protocol_http_1.HttpRequest({\n protocol,\n hostname,\n port,\n method: \"PUT\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexports.serializeAws_restXmlUploadPartCommand = serializeAws_restXmlUploadPartCommand;\nconst serializeAws_restXmlUploadPartCopyCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"x-amz-copy-source\": input.CopySource,\n \"x-amz-copy-source-if-match\": input.CopySourceIfMatch,\n \"x-amz-copy-source-if-modified-since\": [\n () => isSerializableHeaderValue(input.CopySourceIfModifiedSince),\n () => (0, smithy_client_1.dateToUtcString)(input.CopySourceIfModifiedSince).toString(),\n ],\n \"x-amz-copy-source-if-none-match\": input.CopySourceIfNoneMatch,\n \"x-amz-copy-source-if-unmodified-since\": [\n () => isSerializableHeaderValue(input.CopySourceIfUnmodifiedSince),\n () => (0, smithy_client_1.dateToUtcString)(input.CopySourceIfUnmodifiedSince).toString(),\n ],\n \"x-amz-copy-source-range\": input.CopySourceRange,\n \"x-amz-server-side-encryption-customer-algorithm\": input.SSECustomerAlgorithm,\n \"x-amz-server-side-encryption-customer-key\": input.SSECustomerKey,\n \"x-amz-server-side-encryption-customer-key-md5\": input.SSECustomerKeyMD5,\n \"x-amz-copy-source-server-side-encryption-customer-algorithm\": input.CopySourceSSECustomerAlgorithm,\n \"x-amz-copy-source-server-side-encryption-customer-key\": input.CopySourceSSECustomerKey,\n \"x-amz-copy-source-server-side-encryption-customer-key-md5\": input.CopySourceSSECustomerKeyMD5,\n \"x-amz-request-payer\": input.RequestPayer,\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n \"x-amz-source-expected-bucket-owner\": input.ExpectedSourceBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/{Key+}\";\n resolvedPath = (0, smithy_client_1.resolvedPath)(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n resolvedPath = (0, smithy_client_1.resolvedPath)(resolvedPath, input, \"Key\", () => input.Key, \"{Key+}\", true);\n const query = map({\n \"x-id\": [, \"UploadPartCopy\"],\n partNumber: [(0, smithy_client_1.expectNonNull)(input.PartNumber, `PartNumber`) != null, () => input.PartNumber.toString()],\n uploadId: [, (0, smithy_client_1.expectNonNull)(input.UploadId, `UploadId`)],\n });\n let body;\n return new protocol_http_1.HttpRequest({\n protocol,\n hostname,\n port,\n method: \"PUT\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexports.serializeAws_restXmlUploadPartCopyCommand = serializeAws_restXmlUploadPartCopyCommand;\nconst serializeAws_restXmlWriteGetObjectResponseCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"x-amz-content-sha256\": \"UNSIGNED-PAYLOAD\",\n \"content-type\": \"application/octet-stream\",\n \"x-amz-request-route\": input.RequestRoute,\n \"x-amz-request-token\": input.RequestToken,\n \"x-amz-fwd-status\": [() => isSerializableHeaderValue(input.StatusCode), () => input.StatusCode.toString()],\n \"x-amz-fwd-error-code\": input.ErrorCode,\n \"x-amz-fwd-error-message\": input.ErrorMessage,\n \"x-amz-fwd-header-accept-ranges\": input.AcceptRanges,\n \"x-amz-fwd-header-cache-control\": input.CacheControl,\n \"x-amz-fwd-header-content-disposition\": input.ContentDisposition,\n \"x-amz-fwd-header-content-encoding\": input.ContentEncoding,\n \"x-amz-fwd-header-content-language\": input.ContentLanguage,\n \"content-length\": [() => isSerializableHeaderValue(input.ContentLength), () => input.ContentLength.toString()],\n \"x-amz-fwd-header-content-range\": input.ContentRange,\n \"x-amz-fwd-header-content-type\": input.ContentType,\n \"x-amz-fwd-header-x-amz-checksum-crc32\": input.ChecksumCRC32,\n \"x-amz-fwd-header-x-amz-checksum-crc32c\": input.ChecksumCRC32C,\n \"x-amz-fwd-header-x-amz-checksum-sha1\": input.ChecksumSHA1,\n \"x-amz-fwd-header-x-amz-checksum-sha256\": input.ChecksumSHA256,\n \"x-amz-fwd-header-x-amz-delete-marker\": [\n () => isSerializableHeaderValue(input.DeleteMarker),\n () => input.DeleteMarker.toString(),\n ],\n \"x-amz-fwd-header-etag\": input.ETag,\n \"x-amz-fwd-header-expires\": [\n () => isSerializableHeaderValue(input.Expires),\n () => (0, smithy_client_1.dateToUtcString)(input.Expires).toString(),\n ],\n \"x-amz-fwd-header-x-amz-expiration\": input.Expiration,\n \"x-amz-fwd-header-last-modified\": [\n () => isSerializableHeaderValue(input.LastModified),\n () => (0, smithy_client_1.dateToUtcString)(input.LastModified).toString(),\n ],\n \"x-amz-fwd-header-x-amz-missing-meta\": [\n () => isSerializableHeaderValue(input.MissingMeta),\n () => input.MissingMeta.toString(),\n ],\n \"x-amz-fwd-header-x-amz-object-lock-mode\": input.ObjectLockMode,\n \"x-amz-fwd-header-x-amz-object-lock-legal-hold\": input.ObjectLockLegalHoldStatus,\n \"x-amz-fwd-header-x-amz-object-lock-retain-until-date\": [\n () => isSerializableHeaderValue(input.ObjectLockRetainUntilDate),\n () => (input.ObjectLockRetainUntilDate.toISOString().split(\".\")[0] + \"Z\").toString(),\n ],\n \"x-amz-fwd-header-x-amz-mp-parts-count\": [\n () => isSerializableHeaderValue(input.PartsCount),\n () => input.PartsCount.toString(),\n ],\n \"x-amz-fwd-header-x-amz-replication-status\": input.ReplicationStatus,\n \"x-amz-fwd-header-x-amz-request-charged\": input.RequestCharged,\n \"x-amz-fwd-header-x-amz-restore\": input.Restore,\n \"x-amz-fwd-header-x-amz-server-side-encryption\": input.ServerSideEncryption,\n \"x-amz-fwd-header-x-amz-server-side-encryption-customer-algorithm\": input.SSECustomerAlgorithm,\n \"x-amz-fwd-header-x-amz-server-side-encryption-aws-kms-key-id\": input.SSEKMSKeyId,\n \"x-amz-fwd-header-x-amz-server-side-encryption-customer-key-md5\": input.SSECustomerKeyMD5,\n \"x-amz-fwd-header-x-amz-storage-class\": input.StorageClass,\n \"x-amz-fwd-header-x-amz-tagging-count\": [\n () => isSerializableHeaderValue(input.TagCount),\n () => input.TagCount.toString(),\n ],\n \"x-amz-fwd-header-x-amz-version-id\": input.VersionId,\n \"x-amz-fwd-header-x-amz-server-side-encryption-bucket-key-enabled\": [\n () => isSerializableHeaderValue(input.BucketKeyEnabled),\n () => input.BucketKeyEnabled.toString(),\n ],\n ...(input.Metadata !== undefined &&\n Object.keys(input.Metadata).reduce((acc, suffix) => {\n acc[`x-amz-meta-${suffix.toLowerCase()}`] = input.Metadata[suffix];\n return acc;\n }, {})),\n });\n const resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/WriteGetObjectResponse\";\n const query = map({\n \"x-id\": [, \"WriteGetObjectResponse\"],\n });\n let body;\n if (input.Body !== undefined) {\n body = input.Body;\n }\n let contents;\n if (input.Body !== undefined) {\n contents = input.Body;\n body = contents;\n }\n let { hostname: resolvedHostname } = await context.endpoint();\n if (context.disableHostPrefix !== true) {\n resolvedHostname = \"{RequestRoute}.\" + resolvedHostname;\n if (input.RequestRoute === undefined) {\n throw new Error(\"Empty value provided for input host prefix: RequestRoute.\");\n }\n resolvedHostname = resolvedHostname.replace(\"{RequestRoute}\", input.RequestRoute);\n if (!(0, protocol_http_1.isValidHostname)(resolvedHostname)) {\n throw new Error(\"ValidationError: prefixed hostname must be hostname compatible.\");\n }\n }\n return new protocol_http_1.HttpRequest({\n protocol,\n hostname: resolvedHostname,\n port,\n method: \"POST\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexports.serializeAws_restXmlWriteGetObjectResponseCommand = serializeAws_restXmlWriteGetObjectResponseCommand;\nconst deserializeAws_restXmlAbortMultipartUploadCommand = async (output, context) => {\n if (output.statusCode !== 204 && output.statusCode >= 300) {\n return deserializeAws_restXmlAbortMultipartUploadCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n RequestCharged: [, output.headers[\"x-amz-request-charged\"]],\n });\n await collectBody(output.body, context);\n return contents;\n};\nexports.deserializeAws_restXmlAbortMultipartUploadCommand = deserializeAws_restXmlAbortMultipartUploadCommand;\nconst deserializeAws_restXmlAbortMultipartUploadCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"NoSuchUpload\":\n case \"com.amazonaws.s3#NoSuchUpload\":\n throw await deserializeAws_restXmlNoSuchUploadResponse(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody,\n exceptionCtor: S3ServiceException_1.S3ServiceException,\n errorCode,\n });\n }\n};\nconst deserializeAws_restXmlCompleteMultipartUploadCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return deserializeAws_restXmlCompleteMultipartUploadCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n Expiration: [, output.headers[\"x-amz-expiration\"]],\n ServerSideEncryption: [, output.headers[\"x-amz-server-side-encryption\"]],\n VersionId: [, output.headers[\"x-amz-version-id\"]],\n SSEKMSKeyId: [, output.headers[\"x-amz-server-side-encryption-aws-kms-key-id\"]],\n BucketKeyEnabled: [\n () => void 0 !== output.headers[\"x-amz-server-side-encryption-bucket-key-enabled\"],\n () => (0, smithy_client_1.parseBoolean)(output.headers[\"x-amz-server-side-encryption-bucket-key-enabled\"]),\n ],\n RequestCharged: [, output.headers[\"x-amz-request-charged\"]],\n });\n const data = (0, smithy_client_1.expectNonNull)((0, smithy_client_1.expectObject)(await parseBody(output.body, context)), \"body\");\n if (data[\"Bucket\"] !== undefined) {\n contents.Bucket = (0, smithy_client_1.expectString)(data[\"Bucket\"]);\n }\n if (data[\"ChecksumCRC32\"] !== undefined) {\n contents.ChecksumCRC32 = (0, smithy_client_1.expectString)(data[\"ChecksumCRC32\"]);\n }\n if (data[\"ChecksumCRC32C\"] !== undefined) {\n contents.ChecksumCRC32C = (0, smithy_client_1.expectString)(data[\"ChecksumCRC32C\"]);\n }\n if (data[\"ChecksumSHA1\"] !== undefined) {\n contents.ChecksumSHA1 = (0, smithy_client_1.expectString)(data[\"ChecksumSHA1\"]);\n }\n if (data[\"ChecksumSHA256\"] !== undefined) {\n contents.ChecksumSHA256 = (0, smithy_client_1.expectString)(data[\"ChecksumSHA256\"]);\n }\n if (data[\"ETag\"] !== undefined) {\n contents.ETag = (0, smithy_client_1.expectString)(data[\"ETag\"]);\n }\n if (data[\"Key\"] !== undefined) {\n contents.Key = (0, smithy_client_1.expectString)(data[\"Key\"]);\n }\n if (data[\"Location\"] !== undefined) {\n contents.Location = (0, smithy_client_1.expectString)(data[\"Location\"]);\n }\n return contents;\n};\nexports.deserializeAws_restXmlCompleteMultipartUploadCommand = deserializeAws_restXmlCompleteMultipartUploadCommand;\nconst deserializeAws_restXmlCompleteMultipartUploadCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody,\n exceptionCtor: S3ServiceException_1.S3ServiceException,\n errorCode,\n });\n};\nconst deserializeAws_restXmlCopyObjectCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return deserializeAws_restXmlCopyObjectCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n Expiration: [, output.headers[\"x-amz-expiration\"]],\n CopySourceVersionId: [, output.headers[\"x-amz-copy-source-version-id\"]],\n VersionId: [, output.headers[\"x-amz-version-id\"]],\n ServerSideEncryption: [, output.headers[\"x-amz-server-side-encryption\"]],\n SSECustomerAlgorithm: [, output.headers[\"x-amz-server-side-encryption-customer-algorithm\"]],\n SSECustomerKeyMD5: [, output.headers[\"x-amz-server-side-encryption-customer-key-md5\"]],\n SSEKMSKeyId: [, output.headers[\"x-amz-server-side-encryption-aws-kms-key-id\"]],\n SSEKMSEncryptionContext: [, output.headers[\"x-amz-server-side-encryption-context\"]],\n BucketKeyEnabled: [\n () => void 0 !== output.headers[\"x-amz-server-side-encryption-bucket-key-enabled\"],\n () => (0, smithy_client_1.parseBoolean)(output.headers[\"x-amz-server-side-encryption-bucket-key-enabled\"]),\n ],\n RequestCharged: [, output.headers[\"x-amz-request-charged\"]],\n });\n const data = (0, smithy_client_1.expectObject)(await parseBody(output.body, context));\n contents.CopyObjectResult = deserializeAws_restXmlCopyObjectResult(data, context);\n return contents;\n};\nexports.deserializeAws_restXmlCopyObjectCommand = deserializeAws_restXmlCopyObjectCommand;\nconst deserializeAws_restXmlCopyObjectCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"ObjectNotInActiveTierError\":\n case \"com.amazonaws.s3#ObjectNotInActiveTierError\":\n throw await deserializeAws_restXmlObjectNotInActiveTierErrorResponse(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody,\n exceptionCtor: S3ServiceException_1.S3ServiceException,\n errorCode,\n });\n }\n};\nconst deserializeAws_restXmlCreateBucketCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return deserializeAws_restXmlCreateBucketCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n Location: [, output.headers[\"location\"]],\n });\n await collectBody(output.body, context);\n return contents;\n};\nexports.deserializeAws_restXmlCreateBucketCommand = deserializeAws_restXmlCreateBucketCommand;\nconst deserializeAws_restXmlCreateBucketCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"BucketAlreadyExists\":\n case \"com.amazonaws.s3#BucketAlreadyExists\":\n throw await deserializeAws_restXmlBucketAlreadyExistsResponse(parsedOutput, context);\n case \"BucketAlreadyOwnedByYou\":\n case \"com.amazonaws.s3#BucketAlreadyOwnedByYou\":\n throw await deserializeAws_restXmlBucketAlreadyOwnedByYouResponse(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody,\n exceptionCtor: S3ServiceException_1.S3ServiceException,\n errorCode,\n });\n }\n};\nconst deserializeAws_restXmlCreateMultipartUploadCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return deserializeAws_restXmlCreateMultipartUploadCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n AbortDate: [\n () => void 0 !== output.headers[\"x-amz-abort-date\"],\n () => (0, smithy_client_1.expectNonNull)((0, smithy_client_1.parseRfc7231DateTime)(output.headers[\"x-amz-abort-date\"])),\n ],\n AbortRuleId: [, output.headers[\"x-amz-abort-rule-id\"]],\n ServerSideEncryption: [, output.headers[\"x-amz-server-side-encryption\"]],\n SSECustomerAlgorithm: [, output.headers[\"x-amz-server-side-encryption-customer-algorithm\"]],\n SSECustomerKeyMD5: [, output.headers[\"x-amz-server-side-encryption-customer-key-md5\"]],\n SSEKMSKeyId: [, output.headers[\"x-amz-server-side-encryption-aws-kms-key-id\"]],\n SSEKMSEncryptionContext: [, output.headers[\"x-amz-server-side-encryption-context\"]],\n BucketKeyEnabled: [\n () => void 0 !== output.headers[\"x-amz-server-side-encryption-bucket-key-enabled\"],\n () => (0, smithy_client_1.parseBoolean)(output.headers[\"x-amz-server-side-encryption-bucket-key-enabled\"]),\n ],\n RequestCharged: [, output.headers[\"x-amz-request-charged\"]],\n ChecksumAlgorithm: [, output.headers[\"x-amz-checksum-algorithm\"]],\n });\n const data = (0, smithy_client_1.expectNonNull)((0, smithy_client_1.expectObject)(await parseBody(output.body, context)), \"body\");\n if (data[\"Bucket\"] !== undefined) {\n contents.Bucket = (0, smithy_client_1.expectString)(data[\"Bucket\"]);\n }\n if (data[\"Key\"] !== undefined) {\n contents.Key = (0, smithy_client_1.expectString)(data[\"Key\"]);\n }\n if (data[\"UploadId\"] !== undefined) {\n contents.UploadId = (0, smithy_client_1.expectString)(data[\"UploadId\"]);\n }\n return contents;\n};\nexports.deserializeAws_restXmlCreateMultipartUploadCommand = deserializeAws_restXmlCreateMultipartUploadCommand;\nconst deserializeAws_restXmlCreateMultipartUploadCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody,\n exceptionCtor: S3ServiceException_1.S3ServiceException,\n errorCode,\n });\n};\nconst deserializeAws_restXmlDeleteBucketCommand = async (output, context) => {\n if (output.statusCode !== 204 && output.statusCode >= 300) {\n return deserializeAws_restXmlDeleteBucketCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n });\n await collectBody(output.body, context);\n return contents;\n};\nexports.deserializeAws_restXmlDeleteBucketCommand = deserializeAws_restXmlDeleteBucketCommand;\nconst deserializeAws_restXmlDeleteBucketCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody,\n exceptionCtor: S3ServiceException_1.S3ServiceException,\n errorCode,\n });\n};\nconst deserializeAws_restXmlDeleteBucketAnalyticsConfigurationCommand = async (output, context) => {\n if (output.statusCode !== 204 && output.statusCode >= 300) {\n return deserializeAws_restXmlDeleteBucketAnalyticsConfigurationCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n });\n await collectBody(output.body, context);\n return contents;\n};\nexports.deserializeAws_restXmlDeleteBucketAnalyticsConfigurationCommand = deserializeAws_restXmlDeleteBucketAnalyticsConfigurationCommand;\nconst deserializeAws_restXmlDeleteBucketAnalyticsConfigurationCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody,\n exceptionCtor: S3ServiceException_1.S3ServiceException,\n errorCode,\n });\n};\nconst deserializeAws_restXmlDeleteBucketCorsCommand = async (output, context) => {\n if (output.statusCode !== 204 && output.statusCode >= 300) {\n return deserializeAws_restXmlDeleteBucketCorsCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n });\n await collectBody(output.body, context);\n return contents;\n};\nexports.deserializeAws_restXmlDeleteBucketCorsCommand = deserializeAws_restXmlDeleteBucketCorsCommand;\nconst deserializeAws_restXmlDeleteBucketCorsCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody,\n exceptionCtor: S3ServiceException_1.S3ServiceException,\n errorCode,\n });\n};\nconst deserializeAws_restXmlDeleteBucketEncryptionCommand = async (output, context) => {\n if (output.statusCode !== 204 && output.statusCode >= 300) {\n return deserializeAws_restXmlDeleteBucketEncryptionCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n });\n await collectBody(output.body, context);\n return contents;\n};\nexports.deserializeAws_restXmlDeleteBucketEncryptionCommand = deserializeAws_restXmlDeleteBucketEncryptionCommand;\nconst deserializeAws_restXmlDeleteBucketEncryptionCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody,\n exceptionCtor: S3ServiceException_1.S3ServiceException,\n errorCode,\n });\n};\nconst deserializeAws_restXmlDeleteBucketIntelligentTieringConfigurationCommand = async (output, context) => {\n if (output.statusCode !== 204 && output.statusCode >= 300) {\n return deserializeAws_restXmlDeleteBucketIntelligentTieringConfigurationCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n });\n await collectBody(output.body, context);\n return contents;\n};\nexports.deserializeAws_restXmlDeleteBucketIntelligentTieringConfigurationCommand = deserializeAws_restXmlDeleteBucketIntelligentTieringConfigurationCommand;\nconst deserializeAws_restXmlDeleteBucketIntelligentTieringConfigurationCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody,\n exceptionCtor: S3ServiceException_1.S3ServiceException,\n errorCode,\n });\n};\nconst deserializeAws_restXmlDeleteBucketInventoryConfigurationCommand = async (output, context) => {\n if (output.statusCode !== 204 && output.statusCode >= 300) {\n return deserializeAws_restXmlDeleteBucketInventoryConfigurationCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n });\n await collectBody(output.body, context);\n return contents;\n};\nexports.deserializeAws_restXmlDeleteBucketInventoryConfigurationCommand = deserializeAws_restXmlDeleteBucketInventoryConfigurationCommand;\nconst deserializeAws_restXmlDeleteBucketInventoryConfigurationCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody,\n exceptionCtor: S3ServiceException_1.S3ServiceException,\n errorCode,\n });\n};\nconst deserializeAws_restXmlDeleteBucketLifecycleCommand = async (output, context) => {\n if (output.statusCode !== 204 && output.statusCode >= 300) {\n return deserializeAws_restXmlDeleteBucketLifecycleCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n });\n await collectBody(output.body, context);\n return contents;\n};\nexports.deserializeAws_restXmlDeleteBucketLifecycleCommand = deserializeAws_restXmlDeleteBucketLifecycleCommand;\nconst deserializeAws_restXmlDeleteBucketLifecycleCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody,\n exceptionCtor: S3ServiceException_1.S3ServiceException,\n errorCode,\n });\n};\nconst deserializeAws_restXmlDeleteBucketMetricsConfigurationCommand = async (output, context) => {\n if (output.statusCode !== 204 && output.statusCode >= 300) {\n return deserializeAws_restXmlDeleteBucketMetricsConfigurationCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n });\n await collectBody(output.body, context);\n return contents;\n};\nexports.deserializeAws_restXmlDeleteBucketMetricsConfigurationCommand = deserializeAws_restXmlDeleteBucketMetricsConfigurationCommand;\nconst deserializeAws_restXmlDeleteBucketMetricsConfigurationCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody,\n exceptionCtor: S3ServiceException_1.S3ServiceException,\n errorCode,\n });\n};\nconst deserializeAws_restXmlDeleteBucketOwnershipControlsCommand = async (output, context) => {\n if (output.statusCode !== 204 && output.statusCode >= 300) {\n return deserializeAws_restXmlDeleteBucketOwnershipControlsCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n });\n await collectBody(output.body, context);\n return contents;\n};\nexports.deserializeAws_restXmlDeleteBucketOwnershipControlsCommand = deserializeAws_restXmlDeleteBucketOwnershipControlsCommand;\nconst deserializeAws_restXmlDeleteBucketOwnershipControlsCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody,\n exceptionCtor: S3ServiceException_1.S3ServiceException,\n errorCode,\n });\n};\nconst deserializeAws_restXmlDeleteBucketPolicyCommand = async (output, context) => {\n if (output.statusCode !== 204 && output.statusCode >= 300) {\n return deserializeAws_restXmlDeleteBucketPolicyCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n });\n await collectBody(output.body, context);\n return contents;\n};\nexports.deserializeAws_restXmlDeleteBucketPolicyCommand = deserializeAws_restXmlDeleteBucketPolicyCommand;\nconst deserializeAws_restXmlDeleteBucketPolicyCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody,\n exceptionCtor: S3ServiceException_1.S3ServiceException,\n errorCode,\n });\n};\nconst deserializeAws_restXmlDeleteBucketReplicationCommand = async (output, context) => {\n if (output.statusCode !== 204 && output.statusCode >= 300) {\n return deserializeAws_restXmlDeleteBucketReplicationCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n });\n await collectBody(output.body, context);\n return contents;\n};\nexports.deserializeAws_restXmlDeleteBucketReplicationCommand = deserializeAws_restXmlDeleteBucketReplicationCommand;\nconst deserializeAws_restXmlDeleteBucketReplicationCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody,\n exceptionCtor: S3ServiceException_1.S3ServiceException,\n errorCode,\n });\n};\nconst deserializeAws_restXmlDeleteBucketTaggingCommand = async (output, context) => {\n if (output.statusCode !== 204 && output.statusCode >= 300) {\n return deserializeAws_restXmlDeleteBucketTaggingCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n });\n await collectBody(output.body, context);\n return contents;\n};\nexports.deserializeAws_restXmlDeleteBucketTaggingCommand = deserializeAws_restXmlDeleteBucketTaggingCommand;\nconst deserializeAws_restXmlDeleteBucketTaggingCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody,\n exceptionCtor: S3ServiceException_1.S3ServiceException,\n errorCode,\n });\n};\nconst deserializeAws_restXmlDeleteBucketWebsiteCommand = async (output, context) => {\n if (output.statusCode !== 204 && output.statusCode >= 300) {\n return deserializeAws_restXmlDeleteBucketWebsiteCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n });\n await collectBody(output.body, context);\n return contents;\n};\nexports.deserializeAws_restXmlDeleteBucketWebsiteCommand = deserializeAws_restXmlDeleteBucketWebsiteCommand;\nconst deserializeAws_restXmlDeleteBucketWebsiteCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody,\n exceptionCtor: S3ServiceException_1.S3ServiceException,\n errorCode,\n });\n};\nconst deserializeAws_restXmlDeleteObjectCommand = async (output, context) => {\n if (output.statusCode !== 204 && output.statusCode >= 300) {\n return deserializeAws_restXmlDeleteObjectCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n DeleteMarker: [\n () => void 0 !== output.headers[\"x-amz-delete-marker\"],\n () => (0, smithy_client_1.parseBoolean)(output.headers[\"x-amz-delete-marker\"]),\n ],\n VersionId: [, output.headers[\"x-amz-version-id\"]],\n RequestCharged: [, output.headers[\"x-amz-request-charged\"]],\n });\n await collectBody(output.body, context);\n return contents;\n};\nexports.deserializeAws_restXmlDeleteObjectCommand = deserializeAws_restXmlDeleteObjectCommand;\nconst deserializeAws_restXmlDeleteObjectCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody,\n exceptionCtor: S3ServiceException_1.S3ServiceException,\n errorCode,\n });\n};\nconst deserializeAws_restXmlDeleteObjectsCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return deserializeAws_restXmlDeleteObjectsCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n RequestCharged: [, output.headers[\"x-amz-request-charged\"]],\n });\n const data = (0, smithy_client_1.expectNonNull)((0, smithy_client_1.expectObject)(await parseBody(output.body, context)), \"body\");\n if (data.Deleted === \"\") {\n contents.Deleted = [];\n }\n else if (data[\"Deleted\"] !== undefined) {\n contents.Deleted = deserializeAws_restXmlDeletedObjects((0, smithy_client_1.getArrayIfSingleItem)(data[\"Deleted\"]), context);\n }\n if (data.Error === \"\") {\n contents.Errors = [];\n }\n else if (data[\"Error\"] !== undefined) {\n contents.Errors = deserializeAws_restXmlErrors((0, smithy_client_1.getArrayIfSingleItem)(data[\"Error\"]), context);\n }\n return contents;\n};\nexports.deserializeAws_restXmlDeleteObjectsCommand = deserializeAws_restXmlDeleteObjectsCommand;\nconst deserializeAws_restXmlDeleteObjectsCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody,\n exceptionCtor: S3ServiceException_1.S3ServiceException,\n errorCode,\n });\n};\nconst deserializeAws_restXmlDeleteObjectTaggingCommand = async (output, context) => {\n if (output.statusCode !== 204 && output.statusCode >= 300) {\n return deserializeAws_restXmlDeleteObjectTaggingCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n VersionId: [, output.headers[\"x-amz-version-id\"]],\n });\n await collectBody(output.body, context);\n return contents;\n};\nexports.deserializeAws_restXmlDeleteObjectTaggingCommand = deserializeAws_restXmlDeleteObjectTaggingCommand;\nconst deserializeAws_restXmlDeleteObjectTaggingCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody,\n exceptionCtor: S3ServiceException_1.S3ServiceException,\n errorCode,\n });\n};\nconst deserializeAws_restXmlDeletePublicAccessBlockCommand = async (output, context) => {\n if (output.statusCode !== 204 && output.statusCode >= 300) {\n return deserializeAws_restXmlDeletePublicAccessBlockCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n });\n await collectBody(output.body, context);\n return contents;\n};\nexports.deserializeAws_restXmlDeletePublicAccessBlockCommand = deserializeAws_restXmlDeletePublicAccessBlockCommand;\nconst deserializeAws_restXmlDeletePublicAccessBlockCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody,\n exceptionCtor: S3ServiceException_1.S3ServiceException,\n errorCode,\n });\n};\nconst deserializeAws_restXmlGetBucketAccelerateConfigurationCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return deserializeAws_restXmlGetBucketAccelerateConfigurationCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n });\n const data = (0, smithy_client_1.expectNonNull)((0, smithy_client_1.expectObject)(await parseBody(output.body, context)), \"body\");\n if (data[\"Status\"] !== undefined) {\n contents.Status = (0, smithy_client_1.expectString)(data[\"Status\"]);\n }\n return contents;\n};\nexports.deserializeAws_restXmlGetBucketAccelerateConfigurationCommand = deserializeAws_restXmlGetBucketAccelerateConfigurationCommand;\nconst deserializeAws_restXmlGetBucketAccelerateConfigurationCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody,\n exceptionCtor: S3ServiceException_1.S3ServiceException,\n errorCode,\n });\n};\nconst deserializeAws_restXmlGetBucketAclCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return deserializeAws_restXmlGetBucketAclCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n });\n const data = (0, smithy_client_1.expectNonNull)((0, smithy_client_1.expectObject)(await parseBody(output.body, context)), \"body\");\n if (data.AccessControlList === \"\") {\n contents.Grants = [];\n }\n else if (data[\"AccessControlList\"] !== undefined && data[\"AccessControlList\"][\"Grant\"] !== undefined) {\n contents.Grants = deserializeAws_restXmlGrants((0, smithy_client_1.getArrayIfSingleItem)(data[\"AccessControlList\"][\"Grant\"]), context);\n }\n if (data[\"Owner\"] !== undefined) {\n contents.Owner = deserializeAws_restXmlOwner(data[\"Owner\"], context);\n }\n return contents;\n};\nexports.deserializeAws_restXmlGetBucketAclCommand = deserializeAws_restXmlGetBucketAclCommand;\nconst deserializeAws_restXmlGetBucketAclCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody,\n exceptionCtor: S3ServiceException_1.S3ServiceException,\n errorCode,\n });\n};\nconst deserializeAws_restXmlGetBucketAnalyticsConfigurationCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return deserializeAws_restXmlGetBucketAnalyticsConfigurationCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n });\n const data = (0, smithy_client_1.expectObject)(await parseBody(output.body, context));\n contents.AnalyticsConfiguration = deserializeAws_restXmlAnalyticsConfiguration(data, context);\n return contents;\n};\nexports.deserializeAws_restXmlGetBucketAnalyticsConfigurationCommand = deserializeAws_restXmlGetBucketAnalyticsConfigurationCommand;\nconst deserializeAws_restXmlGetBucketAnalyticsConfigurationCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody,\n exceptionCtor: S3ServiceException_1.S3ServiceException,\n errorCode,\n });\n};\nconst deserializeAws_restXmlGetBucketCorsCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return deserializeAws_restXmlGetBucketCorsCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n });\n const data = (0, smithy_client_1.expectNonNull)((0, smithy_client_1.expectObject)(await parseBody(output.body, context)), \"body\");\n if (data.CORSRule === \"\") {\n contents.CORSRules = [];\n }\n else if (data[\"CORSRule\"] !== undefined) {\n contents.CORSRules = deserializeAws_restXmlCORSRules((0, smithy_client_1.getArrayIfSingleItem)(data[\"CORSRule\"]), context);\n }\n return contents;\n};\nexports.deserializeAws_restXmlGetBucketCorsCommand = deserializeAws_restXmlGetBucketCorsCommand;\nconst deserializeAws_restXmlGetBucketCorsCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody,\n exceptionCtor: S3ServiceException_1.S3ServiceException,\n errorCode,\n });\n};\nconst deserializeAws_restXmlGetBucketEncryptionCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return deserializeAws_restXmlGetBucketEncryptionCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n });\n const data = (0, smithy_client_1.expectObject)(await parseBody(output.body, context));\n contents.ServerSideEncryptionConfiguration = deserializeAws_restXmlServerSideEncryptionConfiguration(data, context);\n return contents;\n};\nexports.deserializeAws_restXmlGetBucketEncryptionCommand = deserializeAws_restXmlGetBucketEncryptionCommand;\nconst deserializeAws_restXmlGetBucketEncryptionCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody,\n exceptionCtor: S3ServiceException_1.S3ServiceException,\n errorCode,\n });\n};\nconst deserializeAws_restXmlGetBucketIntelligentTieringConfigurationCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return deserializeAws_restXmlGetBucketIntelligentTieringConfigurationCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n });\n const data = (0, smithy_client_1.expectObject)(await parseBody(output.body, context));\n contents.IntelligentTieringConfiguration = deserializeAws_restXmlIntelligentTieringConfiguration(data, context);\n return contents;\n};\nexports.deserializeAws_restXmlGetBucketIntelligentTieringConfigurationCommand = deserializeAws_restXmlGetBucketIntelligentTieringConfigurationCommand;\nconst deserializeAws_restXmlGetBucketIntelligentTieringConfigurationCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody,\n exceptionCtor: S3ServiceException_1.S3ServiceException,\n errorCode,\n });\n};\nconst deserializeAws_restXmlGetBucketInventoryConfigurationCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return deserializeAws_restXmlGetBucketInventoryConfigurationCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n });\n const data = (0, smithy_client_1.expectObject)(await parseBody(output.body, context));\n contents.InventoryConfiguration = deserializeAws_restXmlInventoryConfiguration(data, context);\n return contents;\n};\nexports.deserializeAws_restXmlGetBucketInventoryConfigurationCommand = deserializeAws_restXmlGetBucketInventoryConfigurationCommand;\nconst deserializeAws_restXmlGetBucketInventoryConfigurationCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody,\n exceptionCtor: S3ServiceException_1.S3ServiceException,\n errorCode,\n });\n};\nconst deserializeAws_restXmlGetBucketLifecycleConfigurationCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return deserializeAws_restXmlGetBucketLifecycleConfigurationCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n });\n const data = (0, smithy_client_1.expectNonNull)((0, smithy_client_1.expectObject)(await parseBody(output.body, context)), \"body\");\n if (data.Rule === \"\") {\n contents.Rules = [];\n }\n else if (data[\"Rule\"] !== undefined) {\n contents.Rules = deserializeAws_restXmlLifecycleRules((0, smithy_client_1.getArrayIfSingleItem)(data[\"Rule\"]), context);\n }\n return contents;\n};\nexports.deserializeAws_restXmlGetBucketLifecycleConfigurationCommand = deserializeAws_restXmlGetBucketLifecycleConfigurationCommand;\nconst deserializeAws_restXmlGetBucketLifecycleConfigurationCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody,\n exceptionCtor: S3ServiceException_1.S3ServiceException,\n errorCode,\n });\n};\nconst deserializeAws_restXmlGetBucketLocationCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return deserializeAws_restXmlGetBucketLocationCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n });\n const data = (0, smithy_client_1.expectNonNull)((0, smithy_client_1.expectObject)(await parseBody(output.body, context)), \"body\");\n if (data[\"LocationConstraint\"] !== undefined) {\n contents.LocationConstraint = (0, smithy_client_1.expectString)(data[\"LocationConstraint\"]);\n }\n return contents;\n};\nexports.deserializeAws_restXmlGetBucketLocationCommand = deserializeAws_restXmlGetBucketLocationCommand;\nconst deserializeAws_restXmlGetBucketLocationCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody,\n exceptionCtor: S3ServiceException_1.S3ServiceException,\n errorCode,\n });\n};\nconst deserializeAws_restXmlGetBucketLoggingCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return deserializeAws_restXmlGetBucketLoggingCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n });\n const data = (0, smithy_client_1.expectNonNull)((0, smithy_client_1.expectObject)(await parseBody(output.body, context)), \"body\");\n if (data[\"LoggingEnabled\"] !== undefined) {\n contents.LoggingEnabled = deserializeAws_restXmlLoggingEnabled(data[\"LoggingEnabled\"], context);\n }\n return contents;\n};\nexports.deserializeAws_restXmlGetBucketLoggingCommand = deserializeAws_restXmlGetBucketLoggingCommand;\nconst deserializeAws_restXmlGetBucketLoggingCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody,\n exceptionCtor: S3ServiceException_1.S3ServiceException,\n errorCode,\n });\n};\nconst deserializeAws_restXmlGetBucketMetricsConfigurationCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return deserializeAws_restXmlGetBucketMetricsConfigurationCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n });\n const data = (0, smithy_client_1.expectObject)(await parseBody(output.body, context));\n contents.MetricsConfiguration = deserializeAws_restXmlMetricsConfiguration(data, context);\n return contents;\n};\nexports.deserializeAws_restXmlGetBucketMetricsConfigurationCommand = deserializeAws_restXmlGetBucketMetricsConfigurationCommand;\nconst deserializeAws_restXmlGetBucketMetricsConfigurationCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody,\n exceptionCtor: S3ServiceException_1.S3ServiceException,\n errorCode,\n });\n};\nconst deserializeAws_restXmlGetBucketNotificationConfigurationCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return deserializeAws_restXmlGetBucketNotificationConfigurationCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n });\n const data = (0, smithy_client_1.expectNonNull)((0, smithy_client_1.expectObject)(await parseBody(output.body, context)), \"body\");\n if (data[\"EventBridgeConfiguration\"] !== undefined) {\n contents.EventBridgeConfiguration = deserializeAws_restXmlEventBridgeConfiguration(data[\"EventBridgeConfiguration\"], context);\n }\n if (data.CloudFunctionConfiguration === \"\") {\n contents.LambdaFunctionConfigurations = [];\n }\n else if (data[\"CloudFunctionConfiguration\"] !== undefined) {\n contents.LambdaFunctionConfigurations = deserializeAws_restXmlLambdaFunctionConfigurationList((0, smithy_client_1.getArrayIfSingleItem)(data[\"CloudFunctionConfiguration\"]), context);\n }\n if (data.QueueConfiguration === \"\") {\n contents.QueueConfigurations = [];\n }\n else if (data[\"QueueConfiguration\"] !== undefined) {\n contents.QueueConfigurations = deserializeAws_restXmlQueueConfigurationList((0, smithy_client_1.getArrayIfSingleItem)(data[\"QueueConfiguration\"]), context);\n }\n if (data.TopicConfiguration === \"\") {\n contents.TopicConfigurations = [];\n }\n else if (data[\"TopicConfiguration\"] !== undefined) {\n contents.TopicConfigurations = deserializeAws_restXmlTopicConfigurationList((0, smithy_client_1.getArrayIfSingleItem)(data[\"TopicConfiguration\"]), context);\n }\n return contents;\n};\nexports.deserializeAws_restXmlGetBucketNotificationConfigurationCommand = deserializeAws_restXmlGetBucketNotificationConfigurationCommand;\nconst deserializeAws_restXmlGetBucketNotificationConfigurationCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody,\n exceptionCtor: S3ServiceException_1.S3ServiceException,\n errorCode,\n });\n};\nconst deserializeAws_restXmlGetBucketOwnershipControlsCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return deserializeAws_restXmlGetBucketOwnershipControlsCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n });\n const data = (0, smithy_client_1.expectObject)(await parseBody(output.body, context));\n contents.OwnershipControls = deserializeAws_restXmlOwnershipControls(data, context);\n return contents;\n};\nexports.deserializeAws_restXmlGetBucketOwnershipControlsCommand = deserializeAws_restXmlGetBucketOwnershipControlsCommand;\nconst deserializeAws_restXmlGetBucketOwnershipControlsCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody,\n exceptionCtor: S3ServiceException_1.S3ServiceException,\n errorCode,\n });\n};\nconst deserializeAws_restXmlGetBucketPolicyCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return deserializeAws_restXmlGetBucketPolicyCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n });\n const data = await collectBodyString(output.body, context);\n contents.Policy = (0, smithy_client_1.expectString)(data);\n return contents;\n};\nexports.deserializeAws_restXmlGetBucketPolicyCommand = deserializeAws_restXmlGetBucketPolicyCommand;\nconst deserializeAws_restXmlGetBucketPolicyCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody,\n exceptionCtor: S3ServiceException_1.S3ServiceException,\n errorCode,\n });\n};\nconst deserializeAws_restXmlGetBucketPolicyStatusCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return deserializeAws_restXmlGetBucketPolicyStatusCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n });\n const data = (0, smithy_client_1.expectObject)(await parseBody(output.body, context));\n contents.PolicyStatus = deserializeAws_restXmlPolicyStatus(data, context);\n return contents;\n};\nexports.deserializeAws_restXmlGetBucketPolicyStatusCommand = deserializeAws_restXmlGetBucketPolicyStatusCommand;\nconst deserializeAws_restXmlGetBucketPolicyStatusCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody,\n exceptionCtor: S3ServiceException_1.S3ServiceException,\n errorCode,\n });\n};\nconst deserializeAws_restXmlGetBucketReplicationCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return deserializeAws_restXmlGetBucketReplicationCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n });\n const data = (0, smithy_client_1.expectObject)(await parseBody(output.body, context));\n contents.ReplicationConfiguration = deserializeAws_restXmlReplicationConfiguration(data, context);\n return contents;\n};\nexports.deserializeAws_restXmlGetBucketReplicationCommand = deserializeAws_restXmlGetBucketReplicationCommand;\nconst deserializeAws_restXmlGetBucketReplicationCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody,\n exceptionCtor: S3ServiceException_1.S3ServiceException,\n errorCode,\n });\n};\nconst deserializeAws_restXmlGetBucketRequestPaymentCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return deserializeAws_restXmlGetBucketRequestPaymentCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n });\n const data = (0, smithy_client_1.expectNonNull)((0, smithy_client_1.expectObject)(await parseBody(output.body, context)), \"body\");\n if (data[\"Payer\"] !== undefined) {\n contents.Payer = (0, smithy_client_1.expectString)(data[\"Payer\"]);\n }\n return contents;\n};\nexports.deserializeAws_restXmlGetBucketRequestPaymentCommand = deserializeAws_restXmlGetBucketRequestPaymentCommand;\nconst deserializeAws_restXmlGetBucketRequestPaymentCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody,\n exceptionCtor: S3ServiceException_1.S3ServiceException,\n errorCode,\n });\n};\nconst deserializeAws_restXmlGetBucketTaggingCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return deserializeAws_restXmlGetBucketTaggingCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n });\n const data = (0, smithy_client_1.expectNonNull)((0, smithy_client_1.expectObject)(await parseBody(output.body, context)), \"body\");\n if (data.TagSet === \"\") {\n contents.TagSet = [];\n }\n else if (data[\"TagSet\"] !== undefined && data[\"TagSet\"][\"Tag\"] !== undefined) {\n contents.TagSet = deserializeAws_restXmlTagSet((0, smithy_client_1.getArrayIfSingleItem)(data[\"TagSet\"][\"Tag\"]), context);\n }\n return contents;\n};\nexports.deserializeAws_restXmlGetBucketTaggingCommand = deserializeAws_restXmlGetBucketTaggingCommand;\nconst deserializeAws_restXmlGetBucketTaggingCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody,\n exceptionCtor: S3ServiceException_1.S3ServiceException,\n errorCode,\n });\n};\nconst deserializeAws_restXmlGetBucketVersioningCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return deserializeAws_restXmlGetBucketVersioningCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n });\n const data = (0, smithy_client_1.expectNonNull)((0, smithy_client_1.expectObject)(await parseBody(output.body, context)), \"body\");\n if (data[\"MfaDelete\"] !== undefined) {\n contents.MFADelete = (0, smithy_client_1.expectString)(data[\"MfaDelete\"]);\n }\n if (data[\"Status\"] !== undefined) {\n contents.Status = (0, smithy_client_1.expectString)(data[\"Status\"]);\n }\n return contents;\n};\nexports.deserializeAws_restXmlGetBucketVersioningCommand = deserializeAws_restXmlGetBucketVersioningCommand;\nconst deserializeAws_restXmlGetBucketVersioningCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody,\n exceptionCtor: S3ServiceException_1.S3ServiceException,\n errorCode,\n });\n};\nconst deserializeAws_restXmlGetBucketWebsiteCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return deserializeAws_restXmlGetBucketWebsiteCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n });\n const data = (0, smithy_client_1.expectNonNull)((0, smithy_client_1.expectObject)(await parseBody(output.body, context)), \"body\");\n if (data[\"ErrorDocument\"] !== undefined) {\n contents.ErrorDocument = deserializeAws_restXmlErrorDocument(data[\"ErrorDocument\"], context);\n }\n if (data[\"IndexDocument\"] !== undefined) {\n contents.IndexDocument = deserializeAws_restXmlIndexDocument(data[\"IndexDocument\"], context);\n }\n if (data[\"RedirectAllRequestsTo\"] !== undefined) {\n contents.RedirectAllRequestsTo = deserializeAws_restXmlRedirectAllRequestsTo(data[\"RedirectAllRequestsTo\"], context);\n }\n if (data.RoutingRules === \"\") {\n contents.RoutingRules = [];\n }\n else if (data[\"RoutingRules\"] !== undefined && data[\"RoutingRules\"][\"RoutingRule\"] !== undefined) {\n contents.RoutingRules = deserializeAws_restXmlRoutingRules((0, smithy_client_1.getArrayIfSingleItem)(data[\"RoutingRules\"][\"RoutingRule\"]), context);\n }\n return contents;\n};\nexports.deserializeAws_restXmlGetBucketWebsiteCommand = deserializeAws_restXmlGetBucketWebsiteCommand;\nconst deserializeAws_restXmlGetBucketWebsiteCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody,\n exceptionCtor: S3ServiceException_1.S3ServiceException,\n errorCode,\n });\n};\nconst deserializeAws_restXmlGetObjectCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return deserializeAws_restXmlGetObjectCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n DeleteMarker: [\n () => void 0 !== output.headers[\"x-amz-delete-marker\"],\n () => (0, smithy_client_1.parseBoolean)(output.headers[\"x-amz-delete-marker\"]),\n ],\n AcceptRanges: [, output.headers[\"accept-ranges\"]],\n Expiration: [, output.headers[\"x-amz-expiration\"]],\n Restore: [, output.headers[\"x-amz-restore\"]],\n LastModified: [\n () => void 0 !== output.headers[\"last-modified\"],\n () => (0, smithy_client_1.expectNonNull)((0, smithy_client_1.parseRfc7231DateTime)(output.headers[\"last-modified\"])),\n ],\n ContentLength: [\n () => void 0 !== output.headers[\"content-length\"],\n () => (0, smithy_client_1.strictParseLong)(output.headers[\"content-length\"]),\n ],\n ETag: [, output.headers[\"etag\"]],\n ChecksumCRC32: [, output.headers[\"x-amz-checksum-crc32\"]],\n ChecksumCRC32C: [, output.headers[\"x-amz-checksum-crc32c\"]],\n ChecksumSHA1: [, output.headers[\"x-amz-checksum-sha1\"]],\n ChecksumSHA256: [, output.headers[\"x-amz-checksum-sha256\"]],\n MissingMeta: [\n () => void 0 !== output.headers[\"x-amz-missing-meta\"],\n () => (0, smithy_client_1.strictParseInt32)(output.headers[\"x-amz-missing-meta\"]),\n ],\n VersionId: [, output.headers[\"x-amz-version-id\"]],\n CacheControl: [, output.headers[\"cache-control\"]],\n ContentDisposition: [, output.headers[\"content-disposition\"]],\n ContentEncoding: [, output.headers[\"content-encoding\"]],\n ContentLanguage: [, output.headers[\"content-language\"]],\n ContentRange: [, output.headers[\"content-range\"]],\n ContentType: [, output.headers[\"content-type\"]],\n Expires: [\n () => void 0 !== output.headers[\"expires\"],\n () => (0, smithy_client_1.expectNonNull)((0, smithy_client_1.parseRfc7231DateTime)(output.headers[\"expires\"])),\n ],\n WebsiteRedirectLocation: [, output.headers[\"x-amz-website-redirect-location\"]],\n ServerSideEncryption: [, output.headers[\"x-amz-server-side-encryption\"]],\n SSECustomerAlgorithm: [, output.headers[\"x-amz-server-side-encryption-customer-algorithm\"]],\n SSECustomerKeyMD5: [, output.headers[\"x-amz-server-side-encryption-customer-key-md5\"]],\n SSEKMSKeyId: [, output.headers[\"x-amz-server-side-encryption-aws-kms-key-id\"]],\n BucketKeyEnabled: [\n () => void 0 !== output.headers[\"x-amz-server-side-encryption-bucket-key-enabled\"],\n () => (0, smithy_client_1.parseBoolean)(output.headers[\"x-amz-server-side-encryption-bucket-key-enabled\"]),\n ],\n StorageClass: [, output.headers[\"x-amz-storage-class\"]],\n RequestCharged: [, output.headers[\"x-amz-request-charged\"]],\n ReplicationStatus: [, output.headers[\"x-amz-replication-status\"]],\n PartsCount: [\n () => void 0 !== output.headers[\"x-amz-mp-parts-count\"],\n () => (0, smithy_client_1.strictParseInt32)(output.headers[\"x-amz-mp-parts-count\"]),\n ],\n TagCount: [\n () => void 0 !== output.headers[\"x-amz-tagging-count\"],\n () => (0, smithy_client_1.strictParseInt32)(output.headers[\"x-amz-tagging-count\"]),\n ],\n ObjectLockMode: [, output.headers[\"x-amz-object-lock-mode\"]],\n ObjectLockRetainUntilDate: [\n () => void 0 !== output.headers[\"x-amz-object-lock-retain-until-date\"],\n () => (0, smithy_client_1.expectNonNull)((0, smithy_client_1.parseRfc3339DateTimeWithOffset)(output.headers[\"x-amz-object-lock-retain-until-date\"])),\n ],\n ObjectLockLegalHoldStatus: [, output.headers[\"x-amz-object-lock-legal-hold\"]],\n Metadata: [\n ,\n Object.keys(output.headers)\n .filter((header) => header.startsWith(\"x-amz-meta-\"))\n .reduce((acc, header) => {\n acc[header.substring(11)] = output.headers[header];\n return acc;\n }, {}),\n ],\n });\n const data = output.body;\n context.sdkStreamMixin(data);\n contents.Body = data;\n return contents;\n};\nexports.deserializeAws_restXmlGetObjectCommand = deserializeAws_restXmlGetObjectCommand;\nconst deserializeAws_restXmlGetObjectCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"InvalidObjectState\":\n case \"com.amazonaws.s3#InvalidObjectState\":\n throw await deserializeAws_restXmlInvalidObjectStateResponse(parsedOutput, context);\n case \"NoSuchKey\":\n case \"com.amazonaws.s3#NoSuchKey\":\n throw await deserializeAws_restXmlNoSuchKeyResponse(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody,\n exceptionCtor: S3ServiceException_1.S3ServiceException,\n errorCode,\n });\n }\n};\nconst deserializeAws_restXmlGetObjectAclCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return deserializeAws_restXmlGetObjectAclCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n RequestCharged: [, output.headers[\"x-amz-request-charged\"]],\n });\n const data = (0, smithy_client_1.expectNonNull)((0, smithy_client_1.expectObject)(await parseBody(output.body, context)), \"body\");\n if (data.AccessControlList === \"\") {\n contents.Grants = [];\n }\n else if (data[\"AccessControlList\"] !== undefined && data[\"AccessControlList\"][\"Grant\"] !== undefined) {\n contents.Grants = deserializeAws_restXmlGrants((0, smithy_client_1.getArrayIfSingleItem)(data[\"AccessControlList\"][\"Grant\"]), context);\n }\n if (data[\"Owner\"] !== undefined) {\n contents.Owner = deserializeAws_restXmlOwner(data[\"Owner\"], context);\n }\n return contents;\n};\nexports.deserializeAws_restXmlGetObjectAclCommand = deserializeAws_restXmlGetObjectAclCommand;\nconst deserializeAws_restXmlGetObjectAclCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"NoSuchKey\":\n case \"com.amazonaws.s3#NoSuchKey\":\n throw await deserializeAws_restXmlNoSuchKeyResponse(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody,\n exceptionCtor: S3ServiceException_1.S3ServiceException,\n errorCode,\n });\n }\n};\nconst deserializeAws_restXmlGetObjectAttributesCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return deserializeAws_restXmlGetObjectAttributesCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n DeleteMarker: [\n () => void 0 !== output.headers[\"x-amz-delete-marker\"],\n () => (0, smithy_client_1.parseBoolean)(output.headers[\"x-amz-delete-marker\"]),\n ],\n LastModified: [\n () => void 0 !== output.headers[\"last-modified\"],\n () => (0, smithy_client_1.expectNonNull)((0, smithy_client_1.parseRfc7231DateTime)(output.headers[\"last-modified\"])),\n ],\n VersionId: [, output.headers[\"x-amz-version-id\"]],\n RequestCharged: [, output.headers[\"x-amz-request-charged\"]],\n });\n const data = (0, smithy_client_1.expectNonNull)((0, smithy_client_1.expectObject)(await parseBody(output.body, context)), \"body\");\n if (data[\"Checksum\"] !== undefined) {\n contents.Checksum = deserializeAws_restXmlChecksum(data[\"Checksum\"], context);\n }\n if (data[\"ETag\"] !== undefined) {\n contents.ETag = (0, smithy_client_1.expectString)(data[\"ETag\"]);\n }\n if (data[\"ObjectParts\"] !== undefined) {\n contents.ObjectParts = deserializeAws_restXmlGetObjectAttributesParts(data[\"ObjectParts\"], context);\n }\n if (data[\"ObjectSize\"] !== undefined) {\n contents.ObjectSize = (0, smithy_client_1.strictParseLong)(data[\"ObjectSize\"]);\n }\n if (data[\"StorageClass\"] !== undefined) {\n contents.StorageClass = (0, smithy_client_1.expectString)(data[\"StorageClass\"]);\n }\n return contents;\n};\nexports.deserializeAws_restXmlGetObjectAttributesCommand = deserializeAws_restXmlGetObjectAttributesCommand;\nconst deserializeAws_restXmlGetObjectAttributesCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"NoSuchKey\":\n case \"com.amazonaws.s3#NoSuchKey\":\n throw await deserializeAws_restXmlNoSuchKeyResponse(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody,\n exceptionCtor: S3ServiceException_1.S3ServiceException,\n errorCode,\n });\n }\n};\nconst deserializeAws_restXmlGetObjectLegalHoldCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return deserializeAws_restXmlGetObjectLegalHoldCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n });\n const data = (0, smithy_client_1.expectObject)(await parseBody(output.body, context));\n contents.LegalHold = deserializeAws_restXmlObjectLockLegalHold(data, context);\n return contents;\n};\nexports.deserializeAws_restXmlGetObjectLegalHoldCommand = deserializeAws_restXmlGetObjectLegalHoldCommand;\nconst deserializeAws_restXmlGetObjectLegalHoldCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody,\n exceptionCtor: S3ServiceException_1.S3ServiceException,\n errorCode,\n });\n};\nconst deserializeAws_restXmlGetObjectLockConfigurationCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return deserializeAws_restXmlGetObjectLockConfigurationCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n });\n const data = (0, smithy_client_1.expectObject)(await parseBody(output.body, context));\n contents.ObjectLockConfiguration = deserializeAws_restXmlObjectLockConfiguration(data, context);\n return contents;\n};\nexports.deserializeAws_restXmlGetObjectLockConfigurationCommand = deserializeAws_restXmlGetObjectLockConfigurationCommand;\nconst deserializeAws_restXmlGetObjectLockConfigurationCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody,\n exceptionCtor: S3ServiceException_1.S3ServiceException,\n errorCode,\n });\n};\nconst deserializeAws_restXmlGetObjectRetentionCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return deserializeAws_restXmlGetObjectRetentionCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n });\n const data = (0, smithy_client_1.expectObject)(await parseBody(output.body, context));\n contents.Retention = deserializeAws_restXmlObjectLockRetention(data, context);\n return contents;\n};\nexports.deserializeAws_restXmlGetObjectRetentionCommand = deserializeAws_restXmlGetObjectRetentionCommand;\nconst deserializeAws_restXmlGetObjectRetentionCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody,\n exceptionCtor: S3ServiceException_1.S3ServiceException,\n errorCode,\n });\n};\nconst deserializeAws_restXmlGetObjectTaggingCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return deserializeAws_restXmlGetObjectTaggingCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n VersionId: [, output.headers[\"x-amz-version-id\"]],\n });\n const data = (0, smithy_client_1.expectNonNull)((0, smithy_client_1.expectObject)(await parseBody(output.body, context)), \"body\");\n if (data.TagSet === \"\") {\n contents.TagSet = [];\n }\n else if (data[\"TagSet\"] !== undefined && data[\"TagSet\"][\"Tag\"] !== undefined) {\n contents.TagSet = deserializeAws_restXmlTagSet((0, smithy_client_1.getArrayIfSingleItem)(data[\"TagSet\"][\"Tag\"]), context);\n }\n return contents;\n};\nexports.deserializeAws_restXmlGetObjectTaggingCommand = deserializeAws_restXmlGetObjectTaggingCommand;\nconst deserializeAws_restXmlGetObjectTaggingCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody,\n exceptionCtor: S3ServiceException_1.S3ServiceException,\n errorCode,\n });\n};\nconst deserializeAws_restXmlGetObjectTorrentCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return deserializeAws_restXmlGetObjectTorrentCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n RequestCharged: [, output.headers[\"x-amz-request-charged\"]],\n });\n const data = output.body;\n context.sdkStreamMixin(data);\n contents.Body = data;\n return contents;\n};\nexports.deserializeAws_restXmlGetObjectTorrentCommand = deserializeAws_restXmlGetObjectTorrentCommand;\nconst deserializeAws_restXmlGetObjectTorrentCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody,\n exceptionCtor: S3ServiceException_1.S3ServiceException,\n errorCode,\n });\n};\nconst deserializeAws_restXmlGetPublicAccessBlockCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return deserializeAws_restXmlGetPublicAccessBlockCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n });\n const data = (0, smithy_client_1.expectObject)(await parseBody(output.body, context));\n contents.PublicAccessBlockConfiguration = deserializeAws_restXmlPublicAccessBlockConfiguration(data, context);\n return contents;\n};\nexports.deserializeAws_restXmlGetPublicAccessBlockCommand = deserializeAws_restXmlGetPublicAccessBlockCommand;\nconst deserializeAws_restXmlGetPublicAccessBlockCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody,\n exceptionCtor: S3ServiceException_1.S3ServiceException,\n errorCode,\n });\n};\nconst deserializeAws_restXmlHeadBucketCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return deserializeAws_restXmlHeadBucketCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n });\n await collectBody(output.body, context);\n return contents;\n};\nexports.deserializeAws_restXmlHeadBucketCommand = deserializeAws_restXmlHeadBucketCommand;\nconst deserializeAws_restXmlHeadBucketCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"NotFound\":\n case \"com.amazonaws.s3#NotFound\":\n throw await deserializeAws_restXmlNotFoundResponse(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody,\n exceptionCtor: S3ServiceException_1.S3ServiceException,\n errorCode,\n });\n }\n};\nconst deserializeAws_restXmlHeadObjectCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return deserializeAws_restXmlHeadObjectCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n DeleteMarker: [\n () => void 0 !== output.headers[\"x-amz-delete-marker\"],\n () => (0, smithy_client_1.parseBoolean)(output.headers[\"x-amz-delete-marker\"]),\n ],\n AcceptRanges: [, output.headers[\"accept-ranges\"]],\n Expiration: [, output.headers[\"x-amz-expiration\"]],\n Restore: [, output.headers[\"x-amz-restore\"]],\n ArchiveStatus: [, output.headers[\"x-amz-archive-status\"]],\n LastModified: [\n () => void 0 !== output.headers[\"last-modified\"],\n () => (0, smithy_client_1.expectNonNull)((0, smithy_client_1.parseRfc7231DateTime)(output.headers[\"last-modified\"])),\n ],\n ContentLength: [\n () => void 0 !== output.headers[\"content-length\"],\n () => (0, smithy_client_1.strictParseLong)(output.headers[\"content-length\"]),\n ],\n ChecksumCRC32: [, output.headers[\"x-amz-checksum-crc32\"]],\n ChecksumCRC32C: [, output.headers[\"x-amz-checksum-crc32c\"]],\n ChecksumSHA1: [, output.headers[\"x-amz-checksum-sha1\"]],\n ChecksumSHA256: [, output.headers[\"x-amz-checksum-sha256\"]],\n ETag: [, output.headers[\"etag\"]],\n MissingMeta: [\n () => void 0 !== output.headers[\"x-amz-missing-meta\"],\n () => (0, smithy_client_1.strictParseInt32)(output.headers[\"x-amz-missing-meta\"]),\n ],\n VersionId: [, output.headers[\"x-amz-version-id\"]],\n CacheControl: [, output.headers[\"cache-control\"]],\n ContentDisposition: [, output.headers[\"content-disposition\"]],\n ContentEncoding: [, output.headers[\"content-encoding\"]],\n ContentLanguage: [, output.headers[\"content-language\"]],\n ContentType: [, output.headers[\"content-type\"]],\n Expires: [\n () => void 0 !== output.headers[\"expires\"],\n () => (0, smithy_client_1.expectNonNull)((0, smithy_client_1.parseRfc7231DateTime)(output.headers[\"expires\"])),\n ],\n WebsiteRedirectLocation: [, output.headers[\"x-amz-website-redirect-location\"]],\n ServerSideEncryption: [, output.headers[\"x-amz-server-side-encryption\"]],\n SSECustomerAlgorithm: [, output.headers[\"x-amz-server-side-encryption-customer-algorithm\"]],\n SSECustomerKeyMD5: [, output.headers[\"x-amz-server-side-encryption-customer-key-md5\"]],\n SSEKMSKeyId: [, output.headers[\"x-amz-server-side-encryption-aws-kms-key-id\"]],\n BucketKeyEnabled: [\n () => void 0 !== output.headers[\"x-amz-server-side-encryption-bucket-key-enabled\"],\n () => (0, smithy_client_1.parseBoolean)(output.headers[\"x-amz-server-side-encryption-bucket-key-enabled\"]),\n ],\n StorageClass: [, output.headers[\"x-amz-storage-class\"]],\n RequestCharged: [, output.headers[\"x-amz-request-charged\"]],\n ReplicationStatus: [, output.headers[\"x-amz-replication-status\"]],\n PartsCount: [\n () => void 0 !== output.headers[\"x-amz-mp-parts-count\"],\n () => (0, smithy_client_1.strictParseInt32)(output.headers[\"x-amz-mp-parts-count\"]),\n ],\n ObjectLockMode: [, output.headers[\"x-amz-object-lock-mode\"]],\n ObjectLockRetainUntilDate: [\n () => void 0 !== output.headers[\"x-amz-object-lock-retain-until-date\"],\n () => (0, smithy_client_1.expectNonNull)((0, smithy_client_1.parseRfc3339DateTimeWithOffset)(output.headers[\"x-amz-object-lock-retain-until-date\"])),\n ],\n ObjectLockLegalHoldStatus: [, output.headers[\"x-amz-object-lock-legal-hold\"]],\n Metadata: [\n ,\n Object.keys(output.headers)\n .filter((header) => header.startsWith(\"x-amz-meta-\"))\n .reduce((acc, header) => {\n acc[header.substring(11)] = output.headers[header];\n return acc;\n }, {}),\n ],\n });\n await collectBody(output.body, context);\n return contents;\n};\nexports.deserializeAws_restXmlHeadObjectCommand = deserializeAws_restXmlHeadObjectCommand;\nconst deserializeAws_restXmlHeadObjectCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"NotFound\":\n case \"com.amazonaws.s3#NotFound\":\n throw await deserializeAws_restXmlNotFoundResponse(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody,\n exceptionCtor: S3ServiceException_1.S3ServiceException,\n errorCode,\n });\n }\n};\nconst deserializeAws_restXmlListBucketAnalyticsConfigurationsCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return deserializeAws_restXmlListBucketAnalyticsConfigurationsCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n });\n const data = (0, smithy_client_1.expectNonNull)((0, smithy_client_1.expectObject)(await parseBody(output.body, context)), \"body\");\n if (data.AnalyticsConfiguration === \"\") {\n contents.AnalyticsConfigurationList = [];\n }\n else if (data[\"AnalyticsConfiguration\"] !== undefined) {\n contents.AnalyticsConfigurationList = deserializeAws_restXmlAnalyticsConfigurationList((0, smithy_client_1.getArrayIfSingleItem)(data[\"AnalyticsConfiguration\"]), context);\n }\n if (data[\"ContinuationToken\"] !== undefined) {\n contents.ContinuationToken = (0, smithy_client_1.expectString)(data[\"ContinuationToken\"]);\n }\n if (data[\"IsTruncated\"] !== undefined) {\n contents.IsTruncated = (0, smithy_client_1.parseBoolean)(data[\"IsTruncated\"]);\n }\n if (data[\"NextContinuationToken\"] !== undefined) {\n contents.NextContinuationToken = (0, smithy_client_1.expectString)(data[\"NextContinuationToken\"]);\n }\n return contents;\n};\nexports.deserializeAws_restXmlListBucketAnalyticsConfigurationsCommand = deserializeAws_restXmlListBucketAnalyticsConfigurationsCommand;\nconst deserializeAws_restXmlListBucketAnalyticsConfigurationsCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody,\n exceptionCtor: S3ServiceException_1.S3ServiceException,\n errorCode,\n });\n};\nconst deserializeAws_restXmlListBucketIntelligentTieringConfigurationsCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return deserializeAws_restXmlListBucketIntelligentTieringConfigurationsCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n });\n const data = (0, smithy_client_1.expectNonNull)((0, smithy_client_1.expectObject)(await parseBody(output.body, context)), \"body\");\n if (data[\"ContinuationToken\"] !== undefined) {\n contents.ContinuationToken = (0, smithy_client_1.expectString)(data[\"ContinuationToken\"]);\n }\n if (data.IntelligentTieringConfiguration === \"\") {\n contents.IntelligentTieringConfigurationList = [];\n }\n else if (data[\"IntelligentTieringConfiguration\"] !== undefined) {\n contents.IntelligentTieringConfigurationList = deserializeAws_restXmlIntelligentTieringConfigurationList((0, smithy_client_1.getArrayIfSingleItem)(data[\"IntelligentTieringConfiguration\"]), context);\n }\n if (data[\"IsTruncated\"] !== undefined) {\n contents.IsTruncated = (0, smithy_client_1.parseBoolean)(data[\"IsTruncated\"]);\n }\n if (data[\"NextContinuationToken\"] !== undefined) {\n contents.NextContinuationToken = (0, smithy_client_1.expectString)(data[\"NextContinuationToken\"]);\n }\n return contents;\n};\nexports.deserializeAws_restXmlListBucketIntelligentTieringConfigurationsCommand = deserializeAws_restXmlListBucketIntelligentTieringConfigurationsCommand;\nconst deserializeAws_restXmlListBucketIntelligentTieringConfigurationsCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody,\n exceptionCtor: S3ServiceException_1.S3ServiceException,\n errorCode,\n });\n};\nconst deserializeAws_restXmlListBucketInventoryConfigurationsCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return deserializeAws_restXmlListBucketInventoryConfigurationsCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n });\n const data = (0, smithy_client_1.expectNonNull)((0, smithy_client_1.expectObject)(await parseBody(output.body, context)), \"body\");\n if (data[\"ContinuationToken\"] !== undefined) {\n contents.ContinuationToken = (0, smithy_client_1.expectString)(data[\"ContinuationToken\"]);\n }\n if (data.InventoryConfiguration === \"\") {\n contents.InventoryConfigurationList = [];\n }\n else if (data[\"InventoryConfiguration\"] !== undefined) {\n contents.InventoryConfigurationList = deserializeAws_restXmlInventoryConfigurationList((0, smithy_client_1.getArrayIfSingleItem)(data[\"InventoryConfiguration\"]), context);\n }\n if (data[\"IsTruncated\"] !== undefined) {\n contents.IsTruncated = (0, smithy_client_1.parseBoolean)(data[\"IsTruncated\"]);\n }\n if (data[\"NextContinuationToken\"] !== undefined) {\n contents.NextContinuationToken = (0, smithy_client_1.expectString)(data[\"NextContinuationToken\"]);\n }\n return contents;\n};\nexports.deserializeAws_restXmlListBucketInventoryConfigurationsCommand = deserializeAws_restXmlListBucketInventoryConfigurationsCommand;\nconst deserializeAws_restXmlListBucketInventoryConfigurationsCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody,\n exceptionCtor: S3ServiceException_1.S3ServiceException,\n errorCode,\n });\n};\nconst deserializeAws_restXmlListBucketMetricsConfigurationsCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return deserializeAws_restXmlListBucketMetricsConfigurationsCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n });\n const data = (0, smithy_client_1.expectNonNull)((0, smithy_client_1.expectObject)(await parseBody(output.body, context)), \"body\");\n if (data[\"ContinuationToken\"] !== undefined) {\n contents.ContinuationToken = (0, smithy_client_1.expectString)(data[\"ContinuationToken\"]);\n }\n if (data[\"IsTruncated\"] !== undefined) {\n contents.IsTruncated = (0, smithy_client_1.parseBoolean)(data[\"IsTruncated\"]);\n }\n if (data.MetricsConfiguration === \"\") {\n contents.MetricsConfigurationList = [];\n }\n else if (data[\"MetricsConfiguration\"] !== undefined) {\n contents.MetricsConfigurationList = deserializeAws_restXmlMetricsConfigurationList((0, smithy_client_1.getArrayIfSingleItem)(data[\"MetricsConfiguration\"]), context);\n }\n if (data[\"NextContinuationToken\"] !== undefined) {\n contents.NextContinuationToken = (0, smithy_client_1.expectString)(data[\"NextContinuationToken\"]);\n }\n return contents;\n};\nexports.deserializeAws_restXmlListBucketMetricsConfigurationsCommand = deserializeAws_restXmlListBucketMetricsConfigurationsCommand;\nconst deserializeAws_restXmlListBucketMetricsConfigurationsCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody,\n exceptionCtor: S3ServiceException_1.S3ServiceException,\n errorCode,\n });\n};\nconst deserializeAws_restXmlListBucketsCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return deserializeAws_restXmlListBucketsCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n });\n const data = (0, smithy_client_1.expectNonNull)((0, smithy_client_1.expectObject)(await parseBody(output.body, context)), \"body\");\n if (data.Buckets === \"\") {\n contents.Buckets = [];\n }\n else if (data[\"Buckets\"] !== undefined && data[\"Buckets\"][\"Bucket\"] !== undefined) {\n contents.Buckets = deserializeAws_restXmlBuckets((0, smithy_client_1.getArrayIfSingleItem)(data[\"Buckets\"][\"Bucket\"]), context);\n }\n if (data[\"Owner\"] !== undefined) {\n contents.Owner = deserializeAws_restXmlOwner(data[\"Owner\"], context);\n }\n return contents;\n};\nexports.deserializeAws_restXmlListBucketsCommand = deserializeAws_restXmlListBucketsCommand;\nconst deserializeAws_restXmlListBucketsCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody,\n exceptionCtor: S3ServiceException_1.S3ServiceException,\n errorCode,\n });\n};\nconst deserializeAws_restXmlListMultipartUploadsCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return deserializeAws_restXmlListMultipartUploadsCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n });\n const data = (0, smithy_client_1.expectNonNull)((0, smithy_client_1.expectObject)(await parseBody(output.body, context)), \"body\");\n if (data[\"Bucket\"] !== undefined) {\n contents.Bucket = (0, smithy_client_1.expectString)(data[\"Bucket\"]);\n }\n if (data.CommonPrefixes === \"\") {\n contents.CommonPrefixes = [];\n }\n else if (data[\"CommonPrefixes\"] !== undefined) {\n contents.CommonPrefixes = deserializeAws_restXmlCommonPrefixList((0, smithy_client_1.getArrayIfSingleItem)(data[\"CommonPrefixes\"]), context);\n }\n if (data[\"Delimiter\"] !== undefined) {\n contents.Delimiter = (0, smithy_client_1.expectString)(data[\"Delimiter\"]);\n }\n if (data[\"EncodingType\"] !== undefined) {\n contents.EncodingType = (0, smithy_client_1.expectString)(data[\"EncodingType\"]);\n }\n if (data[\"IsTruncated\"] !== undefined) {\n contents.IsTruncated = (0, smithy_client_1.parseBoolean)(data[\"IsTruncated\"]);\n }\n if (data[\"KeyMarker\"] !== undefined) {\n contents.KeyMarker = (0, smithy_client_1.expectString)(data[\"KeyMarker\"]);\n }\n if (data[\"MaxUploads\"] !== undefined) {\n contents.MaxUploads = (0, smithy_client_1.strictParseInt32)(data[\"MaxUploads\"]);\n }\n if (data[\"NextKeyMarker\"] !== undefined) {\n contents.NextKeyMarker = (0, smithy_client_1.expectString)(data[\"NextKeyMarker\"]);\n }\n if (data[\"NextUploadIdMarker\"] !== undefined) {\n contents.NextUploadIdMarker = (0, smithy_client_1.expectString)(data[\"NextUploadIdMarker\"]);\n }\n if (data[\"Prefix\"] !== undefined) {\n contents.Prefix = (0, smithy_client_1.expectString)(data[\"Prefix\"]);\n }\n if (data[\"UploadIdMarker\"] !== undefined) {\n contents.UploadIdMarker = (0, smithy_client_1.expectString)(data[\"UploadIdMarker\"]);\n }\n if (data.Upload === \"\") {\n contents.Uploads = [];\n }\n else if (data[\"Upload\"] !== undefined) {\n contents.Uploads = deserializeAws_restXmlMultipartUploadList((0, smithy_client_1.getArrayIfSingleItem)(data[\"Upload\"]), context);\n }\n return contents;\n};\nexports.deserializeAws_restXmlListMultipartUploadsCommand = deserializeAws_restXmlListMultipartUploadsCommand;\nconst deserializeAws_restXmlListMultipartUploadsCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody,\n exceptionCtor: S3ServiceException_1.S3ServiceException,\n errorCode,\n });\n};\nconst deserializeAws_restXmlListObjectsCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return deserializeAws_restXmlListObjectsCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n });\n const data = (0, smithy_client_1.expectNonNull)((0, smithy_client_1.expectObject)(await parseBody(output.body, context)), \"body\");\n if (data.CommonPrefixes === \"\") {\n contents.CommonPrefixes = [];\n }\n else if (data[\"CommonPrefixes\"] !== undefined) {\n contents.CommonPrefixes = deserializeAws_restXmlCommonPrefixList((0, smithy_client_1.getArrayIfSingleItem)(data[\"CommonPrefixes\"]), context);\n }\n if (data.Contents === \"\") {\n contents.Contents = [];\n }\n else if (data[\"Contents\"] !== undefined) {\n contents.Contents = deserializeAws_restXmlObjectList((0, smithy_client_1.getArrayIfSingleItem)(data[\"Contents\"]), context);\n }\n if (data[\"Delimiter\"] !== undefined) {\n contents.Delimiter = (0, smithy_client_1.expectString)(data[\"Delimiter\"]);\n }\n if (data[\"EncodingType\"] !== undefined) {\n contents.EncodingType = (0, smithy_client_1.expectString)(data[\"EncodingType\"]);\n }\n if (data[\"IsTruncated\"] !== undefined) {\n contents.IsTruncated = (0, smithy_client_1.parseBoolean)(data[\"IsTruncated\"]);\n }\n if (data[\"Marker\"] !== undefined) {\n contents.Marker = (0, smithy_client_1.expectString)(data[\"Marker\"]);\n }\n if (data[\"MaxKeys\"] !== undefined) {\n contents.MaxKeys = (0, smithy_client_1.strictParseInt32)(data[\"MaxKeys\"]);\n }\n if (data[\"Name\"] !== undefined) {\n contents.Name = (0, smithy_client_1.expectString)(data[\"Name\"]);\n }\n if (data[\"NextMarker\"] !== undefined) {\n contents.NextMarker = (0, smithy_client_1.expectString)(data[\"NextMarker\"]);\n }\n if (data[\"Prefix\"] !== undefined) {\n contents.Prefix = (0, smithy_client_1.expectString)(data[\"Prefix\"]);\n }\n return contents;\n};\nexports.deserializeAws_restXmlListObjectsCommand = deserializeAws_restXmlListObjectsCommand;\nconst deserializeAws_restXmlListObjectsCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"NoSuchBucket\":\n case \"com.amazonaws.s3#NoSuchBucket\":\n throw await deserializeAws_restXmlNoSuchBucketResponse(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody,\n exceptionCtor: S3ServiceException_1.S3ServiceException,\n errorCode,\n });\n }\n};\nconst deserializeAws_restXmlListObjectsV2Command = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return deserializeAws_restXmlListObjectsV2CommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n });\n const data = (0, smithy_client_1.expectNonNull)((0, smithy_client_1.expectObject)(await parseBody(output.body, context)), \"body\");\n if (data.CommonPrefixes === \"\") {\n contents.CommonPrefixes = [];\n }\n else if (data[\"CommonPrefixes\"] !== undefined) {\n contents.CommonPrefixes = deserializeAws_restXmlCommonPrefixList((0, smithy_client_1.getArrayIfSingleItem)(data[\"CommonPrefixes\"]), context);\n }\n if (data.Contents === \"\") {\n contents.Contents = [];\n }\n else if (data[\"Contents\"] !== undefined) {\n contents.Contents = deserializeAws_restXmlObjectList((0, smithy_client_1.getArrayIfSingleItem)(data[\"Contents\"]), context);\n }\n if (data[\"ContinuationToken\"] !== undefined) {\n contents.ContinuationToken = (0, smithy_client_1.expectString)(data[\"ContinuationToken\"]);\n }\n if (data[\"Delimiter\"] !== undefined) {\n contents.Delimiter = (0, smithy_client_1.expectString)(data[\"Delimiter\"]);\n }\n if (data[\"EncodingType\"] !== undefined) {\n contents.EncodingType = (0, smithy_client_1.expectString)(data[\"EncodingType\"]);\n }\n if (data[\"IsTruncated\"] !== undefined) {\n contents.IsTruncated = (0, smithy_client_1.parseBoolean)(data[\"IsTruncated\"]);\n }\n if (data[\"KeyCount\"] !== undefined) {\n contents.KeyCount = (0, smithy_client_1.strictParseInt32)(data[\"KeyCount\"]);\n }\n if (data[\"MaxKeys\"] !== undefined) {\n contents.MaxKeys = (0, smithy_client_1.strictParseInt32)(data[\"MaxKeys\"]);\n }\n if (data[\"Name\"] !== undefined) {\n contents.Name = (0, smithy_client_1.expectString)(data[\"Name\"]);\n }\n if (data[\"NextContinuationToken\"] !== undefined) {\n contents.NextContinuationToken = (0, smithy_client_1.expectString)(data[\"NextContinuationToken\"]);\n }\n if (data[\"Prefix\"] !== undefined) {\n contents.Prefix = (0, smithy_client_1.expectString)(data[\"Prefix\"]);\n }\n if (data[\"StartAfter\"] !== undefined) {\n contents.StartAfter = (0, smithy_client_1.expectString)(data[\"StartAfter\"]);\n }\n return contents;\n};\nexports.deserializeAws_restXmlListObjectsV2Command = deserializeAws_restXmlListObjectsV2Command;\nconst deserializeAws_restXmlListObjectsV2CommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"NoSuchBucket\":\n case \"com.amazonaws.s3#NoSuchBucket\":\n throw await deserializeAws_restXmlNoSuchBucketResponse(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody,\n exceptionCtor: S3ServiceException_1.S3ServiceException,\n errorCode,\n });\n }\n};\nconst deserializeAws_restXmlListObjectVersionsCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return deserializeAws_restXmlListObjectVersionsCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n });\n const data = (0, smithy_client_1.expectNonNull)((0, smithy_client_1.expectObject)(await parseBody(output.body, context)), \"body\");\n if (data.CommonPrefixes === \"\") {\n contents.CommonPrefixes = [];\n }\n else if (data[\"CommonPrefixes\"] !== undefined) {\n contents.CommonPrefixes = deserializeAws_restXmlCommonPrefixList((0, smithy_client_1.getArrayIfSingleItem)(data[\"CommonPrefixes\"]), context);\n }\n if (data.DeleteMarker === \"\") {\n contents.DeleteMarkers = [];\n }\n else if (data[\"DeleteMarker\"] !== undefined) {\n contents.DeleteMarkers = deserializeAws_restXmlDeleteMarkers((0, smithy_client_1.getArrayIfSingleItem)(data[\"DeleteMarker\"]), context);\n }\n if (data[\"Delimiter\"] !== undefined) {\n contents.Delimiter = (0, smithy_client_1.expectString)(data[\"Delimiter\"]);\n }\n if (data[\"EncodingType\"] !== undefined) {\n contents.EncodingType = (0, smithy_client_1.expectString)(data[\"EncodingType\"]);\n }\n if (data[\"IsTruncated\"] !== undefined) {\n contents.IsTruncated = (0, smithy_client_1.parseBoolean)(data[\"IsTruncated\"]);\n }\n if (data[\"KeyMarker\"] !== undefined) {\n contents.KeyMarker = (0, smithy_client_1.expectString)(data[\"KeyMarker\"]);\n }\n if (data[\"MaxKeys\"] !== undefined) {\n contents.MaxKeys = (0, smithy_client_1.strictParseInt32)(data[\"MaxKeys\"]);\n }\n if (data[\"Name\"] !== undefined) {\n contents.Name = (0, smithy_client_1.expectString)(data[\"Name\"]);\n }\n if (data[\"NextKeyMarker\"] !== undefined) {\n contents.NextKeyMarker = (0, smithy_client_1.expectString)(data[\"NextKeyMarker\"]);\n }\n if (data[\"NextVersionIdMarker\"] !== undefined) {\n contents.NextVersionIdMarker = (0, smithy_client_1.expectString)(data[\"NextVersionIdMarker\"]);\n }\n if (data[\"Prefix\"] !== undefined) {\n contents.Prefix = (0, smithy_client_1.expectString)(data[\"Prefix\"]);\n }\n if (data[\"VersionIdMarker\"] !== undefined) {\n contents.VersionIdMarker = (0, smithy_client_1.expectString)(data[\"VersionIdMarker\"]);\n }\n if (data.Version === \"\") {\n contents.Versions = [];\n }\n else if (data[\"Version\"] !== undefined) {\n contents.Versions = deserializeAws_restXmlObjectVersionList((0, smithy_client_1.getArrayIfSingleItem)(data[\"Version\"]), context);\n }\n return contents;\n};\nexports.deserializeAws_restXmlListObjectVersionsCommand = deserializeAws_restXmlListObjectVersionsCommand;\nconst deserializeAws_restXmlListObjectVersionsCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody,\n exceptionCtor: S3ServiceException_1.S3ServiceException,\n errorCode,\n });\n};\nconst deserializeAws_restXmlListPartsCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return deserializeAws_restXmlListPartsCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n AbortDate: [\n () => void 0 !== output.headers[\"x-amz-abort-date\"],\n () => (0, smithy_client_1.expectNonNull)((0, smithy_client_1.parseRfc7231DateTime)(output.headers[\"x-amz-abort-date\"])),\n ],\n AbortRuleId: [, output.headers[\"x-amz-abort-rule-id\"]],\n RequestCharged: [, output.headers[\"x-amz-request-charged\"]],\n });\n const data = (0, smithy_client_1.expectNonNull)((0, smithy_client_1.expectObject)(await parseBody(output.body, context)), \"body\");\n if (data[\"Bucket\"] !== undefined) {\n contents.Bucket = (0, smithy_client_1.expectString)(data[\"Bucket\"]);\n }\n if (data[\"ChecksumAlgorithm\"] !== undefined) {\n contents.ChecksumAlgorithm = (0, smithy_client_1.expectString)(data[\"ChecksumAlgorithm\"]);\n }\n if (data[\"Initiator\"] !== undefined) {\n contents.Initiator = deserializeAws_restXmlInitiator(data[\"Initiator\"], context);\n }\n if (data[\"IsTruncated\"] !== undefined) {\n contents.IsTruncated = (0, smithy_client_1.parseBoolean)(data[\"IsTruncated\"]);\n }\n if (data[\"Key\"] !== undefined) {\n contents.Key = (0, smithy_client_1.expectString)(data[\"Key\"]);\n }\n if (data[\"MaxParts\"] !== undefined) {\n contents.MaxParts = (0, smithy_client_1.strictParseInt32)(data[\"MaxParts\"]);\n }\n if (data[\"NextPartNumberMarker\"] !== undefined) {\n contents.NextPartNumberMarker = (0, smithy_client_1.expectString)(data[\"NextPartNumberMarker\"]);\n }\n if (data[\"Owner\"] !== undefined) {\n contents.Owner = deserializeAws_restXmlOwner(data[\"Owner\"], context);\n }\n if (data[\"PartNumberMarker\"] !== undefined) {\n contents.PartNumberMarker = (0, smithy_client_1.expectString)(data[\"PartNumberMarker\"]);\n }\n if (data.Part === \"\") {\n contents.Parts = [];\n }\n else if (data[\"Part\"] !== undefined) {\n contents.Parts = deserializeAws_restXmlParts((0, smithy_client_1.getArrayIfSingleItem)(data[\"Part\"]), context);\n }\n if (data[\"StorageClass\"] !== undefined) {\n contents.StorageClass = (0, smithy_client_1.expectString)(data[\"StorageClass\"]);\n }\n if (data[\"UploadId\"] !== undefined) {\n contents.UploadId = (0, smithy_client_1.expectString)(data[\"UploadId\"]);\n }\n return contents;\n};\nexports.deserializeAws_restXmlListPartsCommand = deserializeAws_restXmlListPartsCommand;\nconst deserializeAws_restXmlListPartsCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody,\n exceptionCtor: S3ServiceException_1.S3ServiceException,\n errorCode,\n });\n};\nconst deserializeAws_restXmlPutBucketAccelerateConfigurationCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return deserializeAws_restXmlPutBucketAccelerateConfigurationCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n });\n await collectBody(output.body, context);\n return contents;\n};\nexports.deserializeAws_restXmlPutBucketAccelerateConfigurationCommand = deserializeAws_restXmlPutBucketAccelerateConfigurationCommand;\nconst deserializeAws_restXmlPutBucketAccelerateConfigurationCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody,\n exceptionCtor: S3ServiceException_1.S3ServiceException,\n errorCode,\n });\n};\nconst deserializeAws_restXmlPutBucketAclCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return deserializeAws_restXmlPutBucketAclCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n });\n await collectBody(output.body, context);\n return contents;\n};\nexports.deserializeAws_restXmlPutBucketAclCommand = deserializeAws_restXmlPutBucketAclCommand;\nconst deserializeAws_restXmlPutBucketAclCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody,\n exceptionCtor: S3ServiceException_1.S3ServiceException,\n errorCode,\n });\n};\nconst deserializeAws_restXmlPutBucketAnalyticsConfigurationCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return deserializeAws_restXmlPutBucketAnalyticsConfigurationCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n });\n await collectBody(output.body, context);\n return contents;\n};\nexports.deserializeAws_restXmlPutBucketAnalyticsConfigurationCommand = deserializeAws_restXmlPutBucketAnalyticsConfigurationCommand;\nconst deserializeAws_restXmlPutBucketAnalyticsConfigurationCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody,\n exceptionCtor: S3ServiceException_1.S3ServiceException,\n errorCode,\n });\n};\nconst deserializeAws_restXmlPutBucketCorsCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return deserializeAws_restXmlPutBucketCorsCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n });\n await collectBody(output.body, context);\n return contents;\n};\nexports.deserializeAws_restXmlPutBucketCorsCommand = deserializeAws_restXmlPutBucketCorsCommand;\nconst deserializeAws_restXmlPutBucketCorsCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody,\n exceptionCtor: S3ServiceException_1.S3ServiceException,\n errorCode,\n });\n};\nconst deserializeAws_restXmlPutBucketEncryptionCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return deserializeAws_restXmlPutBucketEncryptionCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n });\n await collectBody(output.body, context);\n return contents;\n};\nexports.deserializeAws_restXmlPutBucketEncryptionCommand = deserializeAws_restXmlPutBucketEncryptionCommand;\nconst deserializeAws_restXmlPutBucketEncryptionCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody,\n exceptionCtor: S3ServiceException_1.S3ServiceException,\n errorCode,\n });\n};\nconst deserializeAws_restXmlPutBucketIntelligentTieringConfigurationCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return deserializeAws_restXmlPutBucketIntelligentTieringConfigurationCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n });\n await collectBody(output.body, context);\n return contents;\n};\nexports.deserializeAws_restXmlPutBucketIntelligentTieringConfigurationCommand = deserializeAws_restXmlPutBucketIntelligentTieringConfigurationCommand;\nconst deserializeAws_restXmlPutBucketIntelligentTieringConfigurationCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody,\n exceptionCtor: S3ServiceException_1.S3ServiceException,\n errorCode,\n });\n};\nconst deserializeAws_restXmlPutBucketInventoryConfigurationCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return deserializeAws_restXmlPutBucketInventoryConfigurationCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n });\n await collectBody(output.body, context);\n return contents;\n};\nexports.deserializeAws_restXmlPutBucketInventoryConfigurationCommand = deserializeAws_restXmlPutBucketInventoryConfigurationCommand;\nconst deserializeAws_restXmlPutBucketInventoryConfigurationCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody,\n exceptionCtor: S3ServiceException_1.S3ServiceException,\n errorCode,\n });\n};\nconst deserializeAws_restXmlPutBucketLifecycleConfigurationCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return deserializeAws_restXmlPutBucketLifecycleConfigurationCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n });\n await collectBody(output.body, context);\n return contents;\n};\nexports.deserializeAws_restXmlPutBucketLifecycleConfigurationCommand = deserializeAws_restXmlPutBucketLifecycleConfigurationCommand;\nconst deserializeAws_restXmlPutBucketLifecycleConfigurationCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody,\n exceptionCtor: S3ServiceException_1.S3ServiceException,\n errorCode,\n });\n};\nconst deserializeAws_restXmlPutBucketLoggingCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return deserializeAws_restXmlPutBucketLoggingCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n });\n await collectBody(output.body, context);\n return contents;\n};\nexports.deserializeAws_restXmlPutBucketLoggingCommand = deserializeAws_restXmlPutBucketLoggingCommand;\nconst deserializeAws_restXmlPutBucketLoggingCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody,\n exceptionCtor: S3ServiceException_1.S3ServiceException,\n errorCode,\n });\n};\nconst deserializeAws_restXmlPutBucketMetricsConfigurationCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return deserializeAws_restXmlPutBucketMetricsConfigurationCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n });\n await collectBody(output.body, context);\n return contents;\n};\nexports.deserializeAws_restXmlPutBucketMetricsConfigurationCommand = deserializeAws_restXmlPutBucketMetricsConfigurationCommand;\nconst deserializeAws_restXmlPutBucketMetricsConfigurationCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody,\n exceptionCtor: S3ServiceException_1.S3ServiceException,\n errorCode,\n });\n};\nconst deserializeAws_restXmlPutBucketNotificationConfigurationCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return deserializeAws_restXmlPutBucketNotificationConfigurationCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n });\n await collectBody(output.body, context);\n return contents;\n};\nexports.deserializeAws_restXmlPutBucketNotificationConfigurationCommand = deserializeAws_restXmlPutBucketNotificationConfigurationCommand;\nconst deserializeAws_restXmlPutBucketNotificationConfigurationCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody,\n exceptionCtor: S3ServiceException_1.S3ServiceException,\n errorCode,\n });\n};\nconst deserializeAws_restXmlPutBucketOwnershipControlsCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return deserializeAws_restXmlPutBucketOwnershipControlsCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n });\n await collectBody(output.body, context);\n return contents;\n};\nexports.deserializeAws_restXmlPutBucketOwnershipControlsCommand = deserializeAws_restXmlPutBucketOwnershipControlsCommand;\nconst deserializeAws_restXmlPutBucketOwnershipControlsCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody,\n exceptionCtor: S3ServiceException_1.S3ServiceException,\n errorCode,\n });\n};\nconst deserializeAws_restXmlPutBucketPolicyCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return deserializeAws_restXmlPutBucketPolicyCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n });\n await collectBody(output.body, context);\n return contents;\n};\nexports.deserializeAws_restXmlPutBucketPolicyCommand = deserializeAws_restXmlPutBucketPolicyCommand;\nconst deserializeAws_restXmlPutBucketPolicyCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody,\n exceptionCtor: S3ServiceException_1.S3ServiceException,\n errorCode,\n });\n};\nconst deserializeAws_restXmlPutBucketReplicationCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return deserializeAws_restXmlPutBucketReplicationCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n });\n await collectBody(output.body, context);\n return contents;\n};\nexports.deserializeAws_restXmlPutBucketReplicationCommand = deserializeAws_restXmlPutBucketReplicationCommand;\nconst deserializeAws_restXmlPutBucketReplicationCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody,\n exceptionCtor: S3ServiceException_1.S3ServiceException,\n errorCode,\n });\n};\nconst deserializeAws_restXmlPutBucketRequestPaymentCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return deserializeAws_restXmlPutBucketRequestPaymentCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n });\n await collectBody(output.body, context);\n return contents;\n};\nexports.deserializeAws_restXmlPutBucketRequestPaymentCommand = deserializeAws_restXmlPutBucketRequestPaymentCommand;\nconst deserializeAws_restXmlPutBucketRequestPaymentCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody,\n exceptionCtor: S3ServiceException_1.S3ServiceException,\n errorCode,\n });\n};\nconst deserializeAws_restXmlPutBucketTaggingCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return deserializeAws_restXmlPutBucketTaggingCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n });\n await collectBody(output.body, context);\n return contents;\n};\nexports.deserializeAws_restXmlPutBucketTaggingCommand = deserializeAws_restXmlPutBucketTaggingCommand;\nconst deserializeAws_restXmlPutBucketTaggingCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody,\n exceptionCtor: S3ServiceException_1.S3ServiceException,\n errorCode,\n });\n};\nconst deserializeAws_restXmlPutBucketVersioningCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return deserializeAws_restXmlPutBucketVersioningCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n });\n await collectBody(output.body, context);\n return contents;\n};\nexports.deserializeAws_restXmlPutBucketVersioningCommand = deserializeAws_restXmlPutBucketVersioningCommand;\nconst deserializeAws_restXmlPutBucketVersioningCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody,\n exceptionCtor: S3ServiceException_1.S3ServiceException,\n errorCode,\n });\n};\nconst deserializeAws_restXmlPutBucketWebsiteCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return deserializeAws_restXmlPutBucketWebsiteCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n });\n await collectBody(output.body, context);\n return contents;\n};\nexports.deserializeAws_restXmlPutBucketWebsiteCommand = deserializeAws_restXmlPutBucketWebsiteCommand;\nconst deserializeAws_restXmlPutBucketWebsiteCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody,\n exceptionCtor: S3ServiceException_1.S3ServiceException,\n errorCode,\n });\n};\nconst deserializeAws_restXmlPutObjectCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return deserializeAws_restXmlPutObjectCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n Expiration: [, output.headers[\"x-amz-expiration\"]],\n ETag: [, output.headers[\"etag\"]],\n ChecksumCRC32: [, output.headers[\"x-amz-checksum-crc32\"]],\n ChecksumCRC32C: [, output.headers[\"x-amz-checksum-crc32c\"]],\n ChecksumSHA1: [, output.headers[\"x-amz-checksum-sha1\"]],\n ChecksumSHA256: [, output.headers[\"x-amz-checksum-sha256\"]],\n ServerSideEncryption: [, output.headers[\"x-amz-server-side-encryption\"]],\n VersionId: [, output.headers[\"x-amz-version-id\"]],\n SSECustomerAlgorithm: [, output.headers[\"x-amz-server-side-encryption-customer-algorithm\"]],\n SSECustomerKeyMD5: [, output.headers[\"x-amz-server-side-encryption-customer-key-md5\"]],\n SSEKMSKeyId: [, output.headers[\"x-amz-server-side-encryption-aws-kms-key-id\"]],\n SSEKMSEncryptionContext: [, output.headers[\"x-amz-server-side-encryption-context\"]],\n BucketKeyEnabled: [\n () => void 0 !== output.headers[\"x-amz-server-side-encryption-bucket-key-enabled\"],\n () => (0, smithy_client_1.parseBoolean)(output.headers[\"x-amz-server-side-encryption-bucket-key-enabled\"]),\n ],\n RequestCharged: [, output.headers[\"x-amz-request-charged\"]],\n });\n await collectBody(output.body, context);\n return contents;\n};\nexports.deserializeAws_restXmlPutObjectCommand = deserializeAws_restXmlPutObjectCommand;\nconst deserializeAws_restXmlPutObjectCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody,\n exceptionCtor: S3ServiceException_1.S3ServiceException,\n errorCode,\n });\n};\nconst deserializeAws_restXmlPutObjectAclCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return deserializeAws_restXmlPutObjectAclCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n RequestCharged: [, output.headers[\"x-amz-request-charged\"]],\n });\n await collectBody(output.body, context);\n return contents;\n};\nexports.deserializeAws_restXmlPutObjectAclCommand = deserializeAws_restXmlPutObjectAclCommand;\nconst deserializeAws_restXmlPutObjectAclCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"NoSuchKey\":\n case \"com.amazonaws.s3#NoSuchKey\":\n throw await deserializeAws_restXmlNoSuchKeyResponse(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody,\n exceptionCtor: S3ServiceException_1.S3ServiceException,\n errorCode,\n });\n }\n};\nconst deserializeAws_restXmlPutObjectLegalHoldCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return deserializeAws_restXmlPutObjectLegalHoldCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n RequestCharged: [, output.headers[\"x-amz-request-charged\"]],\n });\n await collectBody(output.body, context);\n return contents;\n};\nexports.deserializeAws_restXmlPutObjectLegalHoldCommand = deserializeAws_restXmlPutObjectLegalHoldCommand;\nconst deserializeAws_restXmlPutObjectLegalHoldCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody,\n exceptionCtor: S3ServiceException_1.S3ServiceException,\n errorCode,\n });\n};\nconst deserializeAws_restXmlPutObjectLockConfigurationCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return deserializeAws_restXmlPutObjectLockConfigurationCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n RequestCharged: [, output.headers[\"x-amz-request-charged\"]],\n });\n await collectBody(output.body, context);\n return contents;\n};\nexports.deserializeAws_restXmlPutObjectLockConfigurationCommand = deserializeAws_restXmlPutObjectLockConfigurationCommand;\nconst deserializeAws_restXmlPutObjectLockConfigurationCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody,\n exceptionCtor: S3ServiceException_1.S3ServiceException,\n errorCode,\n });\n};\nconst deserializeAws_restXmlPutObjectRetentionCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return deserializeAws_restXmlPutObjectRetentionCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n RequestCharged: [, output.headers[\"x-amz-request-charged\"]],\n });\n await collectBody(output.body, context);\n return contents;\n};\nexports.deserializeAws_restXmlPutObjectRetentionCommand = deserializeAws_restXmlPutObjectRetentionCommand;\nconst deserializeAws_restXmlPutObjectRetentionCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody,\n exceptionCtor: S3ServiceException_1.S3ServiceException,\n errorCode,\n });\n};\nconst deserializeAws_restXmlPutObjectTaggingCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return deserializeAws_restXmlPutObjectTaggingCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n VersionId: [, output.headers[\"x-amz-version-id\"]],\n });\n await collectBody(output.body, context);\n return contents;\n};\nexports.deserializeAws_restXmlPutObjectTaggingCommand = deserializeAws_restXmlPutObjectTaggingCommand;\nconst deserializeAws_restXmlPutObjectTaggingCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody,\n exceptionCtor: S3ServiceException_1.S3ServiceException,\n errorCode,\n });\n};\nconst deserializeAws_restXmlPutPublicAccessBlockCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return deserializeAws_restXmlPutPublicAccessBlockCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n });\n await collectBody(output.body, context);\n return contents;\n};\nexports.deserializeAws_restXmlPutPublicAccessBlockCommand = deserializeAws_restXmlPutPublicAccessBlockCommand;\nconst deserializeAws_restXmlPutPublicAccessBlockCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody,\n exceptionCtor: S3ServiceException_1.S3ServiceException,\n errorCode,\n });\n};\nconst deserializeAws_restXmlRestoreObjectCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return deserializeAws_restXmlRestoreObjectCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n RequestCharged: [, output.headers[\"x-amz-request-charged\"]],\n RestoreOutputPath: [, output.headers[\"x-amz-restore-output-path\"]],\n });\n await collectBody(output.body, context);\n return contents;\n};\nexports.deserializeAws_restXmlRestoreObjectCommand = deserializeAws_restXmlRestoreObjectCommand;\nconst deserializeAws_restXmlRestoreObjectCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"ObjectAlreadyInActiveTierError\":\n case \"com.amazonaws.s3#ObjectAlreadyInActiveTierError\":\n throw await deserializeAws_restXmlObjectAlreadyInActiveTierErrorResponse(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody,\n exceptionCtor: S3ServiceException_1.S3ServiceException,\n errorCode,\n });\n }\n};\nconst deserializeAws_restXmlSelectObjectContentCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return deserializeAws_restXmlSelectObjectContentCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n });\n const data = output.body;\n contents.Payload = deserializeAws_restXmlSelectObjectContentEventStream(data, context);\n return contents;\n};\nexports.deserializeAws_restXmlSelectObjectContentCommand = deserializeAws_restXmlSelectObjectContentCommand;\nconst deserializeAws_restXmlSelectObjectContentCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody,\n exceptionCtor: S3ServiceException_1.S3ServiceException,\n errorCode,\n });\n};\nconst deserializeAws_restXmlUploadPartCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return deserializeAws_restXmlUploadPartCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n ServerSideEncryption: [, output.headers[\"x-amz-server-side-encryption\"]],\n ETag: [, output.headers[\"etag\"]],\n ChecksumCRC32: [, output.headers[\"x-amz-checksum-crc32\"]],\n ChecksumCRC32C: [, output.headers[\"x-amz-checksum-crc32c\"]],\n ChecksumSHA1: [, output.headers[\"x-amz-checksum-sha1\"]],\n ChecksumSHA256: [, output.headers[\"x-amz-checksum-sha256\"]],\n SSECustomerAlgorithm: [, output.headers[\"x-amz-server-side-encryption-customer-algorithm\"]],\n SSECustomerKeyMD5: [, output.headers[\"x-amz-server-side-encryption-customer-key-md5\"]],\n SSEKMSKeyId: [, output.headers[\"x-amz-server-side-encryption-aws-kms-key-id\"]],\n BucketKeyEnabled: [\n () => void 0 !== output.headers[\"x-amz-server-side-encryption-bucket-key-enabled\"],\n () => (0, smithy_client_1.parseBoolean)(output.headers[\"x-amz-server-side-encryption-bucket-key-enabled\"]),\n ],\n RequestCharged: [, output.headers[\"x-amz-request-charged\"]],\n });\n await collectBody(output.body, context);\n return contents;\n};\nexports.deserializeAws_restXmlUploadPartCommand = deserializeAws_restXmlUploadPartCommand;\nconst deserializeAws_restXmlUploadPartCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody,\n exceptionCtor: S3ServiceException_1.S3ServiceException,\n errorCode,\n });\n};\nconst deserializeAws_restXmlUploadPartCopyCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return deserializeAws_restXmlUploadPartCopyCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n CopySourceVersionId: [, output.headers[\"x-amz-copy-source-version-id\"]],\n ServerSideEncryption: [, output.headers[\"x-amz-server-side-encryption\"]],\n SSECustomerAlgorithm: [, output.headers[\"x-amz-server-side-encryption-customer-algorithm\"]],\n SSECustomerKeyMD5: [, output.headers[\"x-amz-server-side-encryption-customer-key-md5\"]],\n SSEKMSKeyId: [, output.headers[\"x-amz-server-side-encryption-aws-kms-key-id\"]],\n BucketKeyEnabled: [\n () => void 0 !== output.headers[\"x-amz-server-side-encryption-bucket-key-enabled\"],\n () => (0, smithy_client_1.parseBoolean)(output.headers[\"x-amz-server-side-encryption-bucket-key-enabled\"]),\n ],\n RequestCharged: [, output.headers[\"x-amz-request-charged\"]],\n });\n const data = (0, smithy_client_1.expectObject)(await parseBody(output.body, context));\n contents.CopyPartResult = deserializeAws_restXmlCopyPartResult(data, context);\n return contents;\n};\nexports.deserializeAws_restXmlUploadPartCopyCommand = deserializeAws_restXmlUploadPartCopyCommand;\nconst deserializeAws_restXmlUploadPartCopyCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody,\n exceptionCtor: S3ServiceException_1.S3ServiceException,\n errorCode,\n });\n};\nconst deserializeAws_restXmlWriteGetObjectResponseCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return deserializeAws_restXmlWriteGetObjectResponseCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n });\n await collectBody(output.body, context);\n return contents;\n};\nexports.deserializeAws_restXmlWriteGetObjectResponseCommand = deserializeAws_restXmlWriteGetObjectResponseCommand;\nconst deserializeAws_restXmlWriteGetObjectResponseCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody,\n exceptionCtor: S3ServiceException_1.S3ServiceException,\n errorCode,\n });\n};\nconst map = smithy_client_1.map;\nconst deserializeAws_restXmlBucketAlreadyExistsResponse = async (parsedOutput, context) => {\n const contents = map({});\n const data = parsedOutput.body;\n const exception = new models_0_1.BucketAlreadyExists({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents,\n });\n return (0, smithy_client_1.decorateServiceException)(exception, parsedOutput.body);\n};\nconst deserializeAws_restXmlBucketAlreadyOwnedByYouResponse = async (parsedOutput, context) => {\n const contents = map({});\n const data = parsedOutput.body;\n const exception = new models_0_1.BucketAlreadyOwnedByYou({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents,\n });\n return (0, smithy_client_1.decorateServiceException)(exception, parsedOutput.body);\n};\nconst deserializeAws_restXmlInvalidObjectStateResponse = async (parsedOutput, context) => {\n const contents = map({});\n const data = parsedOutput.body;\n if (data[\"AccessTier\"] !== undefined) {\n contents.AccessTier = (0, smithy_client_1.expectString)(data[\"AccessTier\"]);\n }\n if (data[\"StorageClass\"] !== undefined) {\n contents.StorageClass = (0, smithy_client_1.expectString)(data[\"StorageClass\"]);\n }\n const exception = new models_0_1.InvalidObjectState({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents,\n });\n return (0, smithy_client_1.decorateServiceException)(exception, parsedOutput.body);\n};\nconst deserializeAws_restXmlNoSuchBucketResponse = async (parsedOutput, context) => {\n const contents = map({});\n const data = parsedOutput.body;\n const exception = new models_0_1.NoSuchBucket({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents,\n });\n return (0, smithy_client_1.decorateServiceException)(exception, parsedOutput.body);\n};\nconst deserializeAws_restXmlNoSuchKeyResponse = async (parsedOutput, context) => {\n const contents = map({});\n const data = parsedOutput.body;\n const exception = new models_0_1.NoSuchKey({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents,\n });\n return (0, smithy_client_1.decorateServiceException)(exception, parsedOutput.body);\n};\nconst deserializeAws_restXmlNoSuchUploadResponse = async (parsedOutput, context) => {\n const contents = map({});\n const data = parsedOutput.body;\n const exception = new models_0_1.NoSuchUpload({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents,\n });\n return (0, smithy_client_1.decorateServiceException)(exception, parsedOutput.body);\n};\nconst deserializeAws_restXmlNotFoundResponse = async (parsedOutput, context) => {\n const contents = map({});\n const data = parsedOutput.body;\n const exception = new models_0_1.NotFound({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents,\n });\n return (0, smithy_client_1.decorateServiceException)(exception, parsedOutput.body);\n};\nconst deserializeAws_restXmlObjectAlreadyInActiveTierErrorResponse = async (parsedOutput, context) => {\n const contents = map({});\n const data = parsedOutput.body;\n const exception = new models_1_1.ObjectAlreadyInActiveTierError({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents,\n });\n return (0, smithy_client_1.decorateServiceException)(exception, parsedOutput.body);\n};\nconst deserializeAws_restXmlObjectNotInActiveTierErrorResponse = async (parsedOutput, context) => {\n const contents = map({});\n const data = parsedOutput.body;\n const exception = new models_0_1.ObjectNotInActiveTierError({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents,\n });\n return (0, smithy_client_1.decorateServiceException)(exception, parsedOutput.body);\n};\nconst deserializeAws_restXmlSelectObjectContentEventStream = (output, context) => {\n return context.eventStreamMarshaller.deserialize(output, async (event) => {\n if (event[\"Records\"] != null) {\n return {\n Records: await deserializeAws_restXmlRecordsEvent_event(event[\"Records\"], context),\n };\n }\n if (event[\"Stats\"] != null) {\n return {\n Stats: await deserializeAws_restXmlStatsEvent_event(event[\"Stats\"], context),\n };\n }\n if (event[\"Progress\"] != null) {\n return {\n Progress: await deserializeAws_restXmlProgressEvent_event(event[\"Progress\"], context),\n };\n }\n if (event[\"Cont\"] != null) {\n return {\n Cont: await deserializeAws_restXmlContinuationEvent_event(event[\"Cont\"], context),\n };\n }\n if (event[\"End\"] != null) {\n return {\n End: await deserializeAws_restXmlEndEvent_event(event[\"End\"], context),\n };\n }\n return { $unknown: output };\n });\n};\nconst deserializeAws_restXmlContinuationEvent_event = async (output, context) => {\n const contents = {};\n const data = await parseBody(output.body, context);\n Object.assign(contents, deserializeAws_restXmlContinuationEvent(data, context));\n return contents;\n};\nconst deserializeAws_restXmlEndEvent_event = async (output, context) => {\n const contents = {};\n const data = await parseBody(output.body, context);\n Object.assign(contents, deserializeAws_restXmlEndEvent(data, context));\n return contents;\n};\nconst deserializeAws_restXmlProgressEvent_event = async (output, context) => {\n const contents = {};\n const data = await parseBody(output.body, context);\n contents.Details = deserializeAws_restXmlProgress(data, context);\n return contents;\n};\nconst deserializeAws_restXmlRecordsEvent_event = async (output, context) => {\n const contents = {};\n contents.Payload = output.body;\n return contents;\n};\nconst deserializeAws_restXmlStatsEvent_event = async (output, context) => {\n const contents = {};\n const data = await parseBody(output.body, context);\n contents.Details = deserializeAws_restXmlStats(data, context);\n return contents;\n};\nconst serializeAws_restXmlAbortIncompleteMultipartUpload = (input, context) => {\n const bodyNode = new xml_builder_1.XmlNode(\"AbortIncompleteMultipartUpload\");\n if (input.DaysAfterInitiation != null) {\n const node = xml_builder_1.XmlNode.of(\"DaysAfterInitiation\", String(input.DaysAfterInitiation)).withName(\"DaysAfterInitiation\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst serializeAws_restXmlAccelerateConfiguration = (input, context) => {\n const bodyNode = new xml_builder_1.XmlNode(\"AccelerateConfiguration\");\n if (input.Status != null) {\n const node = xml_builder_1.XmlNode.of(\"BucketAccelerateStatus\", input.Status).withName(\"Status\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst serializeAws_restXmlAccessControlPolicy = (input, context) => {\n const bodyNode = new xml_builder_1.XmlNode(\"AccessControlPolicy\");\n if (input.Grants != null) {\n const nodes = serializeAws_restXmlGrants(input.Grants, context);\n const containerNode = new xml_builder_1.XmlNode(\"AccessControlList\");\n nodes.map((node) => {\n containerNode.addChildNode(node);\n });\n bodyNode.addChildNode(containerNode);\n }\n if (input.Owner != null) {\n const node = serializeAws_restXmlOwner(input.Owner, context).withName(\"Owner\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst serializeAws_restXmlAccessControlTranslation = (input, context) => {\n const bodyNode = new xml_builder_1.XmlNode(\"AccessControlTranslation\");\n if (input.Owner != null) {\n const node = xml_builder_1.XmlNode.of(\"OwnerOverride\", input.Owner).withName(\"Owner\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst serializeAws_restXmlAllowedHeaders = (input, context) => {\n return input\n .filter((e) => e != null)\n .map((entry) => {\n const node = xml_builder_1.XmlNode.of(\"AllowedHeader\", entry);\n return node.withName(\"member\");\n });\n};\nconst serializeAws_restXmlAllowedMethods = (input, context) => {\n return input\n .filter((e) => e != null)\n .map((entry) => {\n const node = xml_builder_1.XmlNode.of(\"AllowedMethod\", entry);\n return node.withName(\"member\");\n });\n};\nconst serializeAws_restXmlAllowedOrigins = (input, context) => {\n return input\n .filter((e) => e != null)\n .map((entry) => {\n const node = xml_builder_1.XmlNode.of(\"AllowedOrigin\", entry);\n return node.withName(\"member\");\n });\n};\nconst serializeAws_restXmlAnalyticsAndOperator = (input, context) => {\n const bodyNode = new xml_builder_1.XmlNode(\"AnalyticsAndOperator\");\n if (input.Prefix != null) {\n const node = xml_builder_1.XmlNode.of(\"Prefix\", input.Prefix).withName(\"Prefix\");\n bodyNode.addChildNode(node);\n }\n if (input.Tags != null) {\n const nodes = serializeAws_restXmlTagSet(input.Tags, context);\n nodes.map((node) => {\n node = node.withName(\"Tag\");\n bodyNode.addChildNode(node);\n });\n }\n return bodyNode;\n};\nconst serializeAws_restXmlAnalyticsConfiguration = (input, context) => {\n const bodyNode = new xml_builder_1.XmlNode(\"AnalyticsConfiguration\");\n if (input.Id != null) {\n const node = xml_builder_1.XmlNode.of(\"AnalyticsId\", input.Id).withName(\"Id\");\n bodyNode.addChildNode(node);\n }\n if (input.Filter != null) {\n const node = serializeAws_restXmlAnalyticsFilter(input.Filter, context).withName(\"Filter\");\n bodyNode.addChildNode(node);\n }\n if (input.StorageClassAnalysis != null) {\n const node = serializeAws_restXmlStorageClassAnalysis(input.StorageClassAnalysis, context).withName(\"StorageClassAnalysis\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst serializeAws_restXmlAnalyticsExportDestination = (input, context) => {\n const bodyNode = new xml_builder_1.XmlNode(\"AnalyticsExportDestination\");\n if (input.S3BucketDestination != null) {\n const node = serializeAws_restXmlAnalyticsS3BucketDestination(input.S3BucketDestination, context).withName(\"S3BucketDestination\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst serializeAws_restXmlAnalyticsFilter = (input, context) => {\n const bodyNode = new xml_builder_1.XmlNode(\"AnalyticsFilter\");\n models_0_1.AnalyticsFilter.visit(input, {\n Prefix: (value) => {\n const node = xml_builder_1.XmlNode.of(\"Prefix\", value).withName(\"Prefix\");\n bodyNode.addChildNode(node);\n },\n Tag: (value) => {\n const node = serializeAws_restXmlTag(value, context).withName(\"Tag\");\n bodyNode.addChildNode(node);\n },\n And: (value) => {\n const node = serializeAws_restXmlAnalyticsAndOperator(value, context).withName(\"And\");\n bodyNode.addChildNode(node);\n },\n _: (name, value) => {\n if (!(value instanceof xml_builder_1.XmlNode || value instanceof xml_builder_1.XmlText)) {\n throw new Error(\"Unable to serialize unknown union members in XML.\");\n }\n bodyNode.addChildNode(new xml_builder_1.XmlNode(name).addChildNode(value));\n },\n });\n return bodyNode;\n};\nconst serializeAws_restXmlAnalyticsS3BucketDestination = (input, context) => {\n const bodyNode = new xml_builder_1.XmlNode(\"AnalyticsS3BucketDestination\");\n if (input.Format != null) {\n const node = xml_builder_1.XmlNode.of(\"AnalyticsS3ExportFileFormat\", input.Format).withName(\"Format\");\n bodyNode.addChildNode(node);\n }\n if (input.BucketAccountId != null) {\n const node = xml_builder_1.XmlNode.of(\"AccountId\", input.BucketAccountId).withName(\"BucketAccountId\");\n bodyNode.addChildNode(node);\n }\n if (input.Bucket != null) {\n const node = xml_builder_1.XmlNode.of(\"BucketName\", input.Bucket).withName(\"Bucket\");\n bodyNode.addChildNode(node);\n }\n if (input.Prefix != null) {\n const node = xml_builder_1.XmlNode.of(\"Prefix\", input.Prefix).withName(\"Prefix\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst serializeAws_restXmlBucketLifecycleConfiguration = (input, context) => {\n const bodyNode = new xml_builder_1.XmlNode(\"BucketLifecycleConfiguration\");\n if (input.Rules != null) {\n const nodes = serializeAws_restXmlLifecycleRules(input.Rules, context);\n nodes.map((node) => {\n node = node.withName(\"Rule\");\n bodyNode.addChildNode(node);\n });\n }\n return bodyNode;\n};\nconst serializeAws_restXmlBucketLoggingStatus = (input, context) => {\n const bodyNode = new xml_builder_1.XmlNode(\"BucketLoggingStatus\");\n if (input.LoggingEnabled != null) {\n const node = serializeAws_restXmlLoggingEnabled(input.LoggingEnabled, context).withName(\"LoggingEnabled\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst serializeAws_restXmlCompletedMultipartUpload = (input, context) => {\n const bodyNode = new xml_builder_1.XmlNode(\"CompletedMultipartUpload\");\n if (input.Parts != null) {\n const nodes = serializeAws_restXmlCompletedPartList(input.Parts, context);\n nodes.map((node) => {\n node = node.withName(\"Part\");\n bodyNode.addChildNode(node);\n });\n }\n return bodyNode;\n};\nconst serializeAws_restXmlCompletedPart = (input, context) => {\n const bodyNode = new xml_builder_1.XmlNode(\"CompletedPart\");\n if (input.ETag != null) {\n const node = xml_builder_1.XmlNode.of(\"ETag\", input.ETag).withName(\"ETag\");\n bodyNode.addChildNode(node);\n }\n if (input.ChecksumCRC32 != null) {\n const node = xml_builder_1.XmlNode.of(\"ChecksumCRC32\", input.ChecksumCRC32).withName(\"ChecksumCRC32\");\n bodyNode.addChildNode(node);\n }\n if (input.ChecksumCRC32C != null) {\n const node = xml_builder_1.XmlNode.of(\"ChecksumCRC32C\", input.ChecksumCRC32C).withName(\"ChecksumCRC32C\");\n bodyNode.addChildNode(node);\n }\n if (input.ChecksumSHA1 != null) {\n const node = xml_builder_1.XmlNode.of(\"ChecksumSHA1\", input.ChecksumSHA1).withName(\"ChecksumSHA1\");\n bodyNode.addChildNode(node);\n }\n if (input.ChecksumSHA256 != null) {\n const node = xml_builder_1.XmlNode.of(\"ChecksumSHA256\", input.ChecksumSHA256).withName(\"ChecksumSHA256\");\n bodyNode.addChildNode(node);\n }\n if (input.PartNumber != null) {\n const node = xml_builder_1.XmlNode.of(\"PartNumber\", String(input.PartNumber)).withName(\"PartNumber\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst serializeAws_restXmlCompletedPartList = (input, context) => {\n return input\n .filter((e) => e != null)\n .map((entry) => {\n const node = serializeAws_restXmlCompletedPart(entry, context);\n return node.withName(\"member\");\n });\n};\nconst serializeAws_restXmlCondition = (input, context) => {\n const bodyNode = new xml_builder_1.XmlNode(\"Condition\");\n if (input.HttpErrorCodeReturnedEquals != null) {\n const node = xml_builder_1.XmlNode\n .of(\"HttpErrorCodeReturnedEquals\", input.HttpErrorCodeReturnedEquals)\n .withName(\"HttpErrorCodeReturnedEquals\");\n bodyNode.addChildNode(node);\n }\n if (input.KeyPrefixEquals != null) {\n const node = xml_builder_1.XmlNode.of(\"KeyPrefixEquals\", input.KeyPrefixEquals).withName(\"KeyPrefixEquals\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst serializeAws_restXmlCORSConfiguration = (input, context) => {\n const bodyNode = new xml_builder_1.XmlNode(\"CORSConfiguration\");\n if (input.CORSRules != null) {\n const nodes = serializeAws_restXmlCORSRules(input.CORSRules, context);\n nodes.map((node) => {\n node = node.withName(\"CORSRule\");\n bodyNode.addChildNode(node);\n });\n }\n return bodyNode;\n};\nconst serializeAws_restXmlCORSRule = (input, context) => {\n const bodyNode = new xml_builder_1.XmlNode(\"CORSRule\");\n if (input.ID != null) {\n const node = xml_builder_1.XmlNode.of(\"ID\", input.ID).withName(\"ID\");\n bodyNode.addChildNode(node);\n }\n if (input.AllowedHeaders != null) {\n const nodes = serializeAws_restXmlAllowedHeaders(input.AllowedHeaders, context);\n nodes.map((node) => {\n node = node.withName(\"AllowedHeader\");\n bodyNode.addChildNode(node);\n });\n }\n if (input.AllowedMethods != null) {\n const nodes = serializeAws_restXmlAllowedMethods(input.AllowedMethods, context);\n nodes.map((node) => {\n node = node.withName(\"AllowedMethod\");\n bodyNode.addChildNode(node);\n });\n }\n if (input.AllowedOrigins != null) {\n const nodes = serializeAws_restXmlAllowedOrigins(input.AllowedOrigins, context);\n nodes.map((node) => {\n node = node.withName(\"AllowedOrigin\");\n bodyNode.addChildNode(node);\n });\n }\n if (input.ExposeHeaders != null) {\n const nodes = serializeAws_restXmlExposeHeaders(input.ExposeHeaders, context);\n nodes.map((node) => {\n node = node.withName(\"ExposeHeader\");\n bodyNode.addChildNode(node);\n });\n }\n if (input.MaxAgeSeconds != null) {\n const node = xml_builder_1.XmlNode.of(\"MaxAgeSeconds\", String(input.MaxAgeSeconds)).withName(\"MaxAgeSeconds\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst serializeAws_restXmlCORSRules = (input, context) => {\n return input\n .filter((e) => e != null)\n .map((entry) => {\n const node = serializeAws_restXmlCORSRule(entry, context);\n return node.withName(\"member\");\n });\n};\nconst serializeAws_restXmlCreateBucketConfiguration = (input, context) => {\n const bodyNode = new xml_builder_1.XmlNode(\"CreateBucketConfiguration\");\n if (input.LocationConstraint != null) {\n const node = xml_builder_1.XmlNode.of(\"BucketLocationConstraint\", input.LocationConstraint).withName(\"LocationConstraint\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst serializeAws_restXmlCSVInput = (input, context) => {\n const bodyNode = new xml_builder_1.XmlNode(\"CSVInput\");\n if (input.FileHeaderInfo != null) {\n const node = xml_builder_1.XmlNode.of(\"FileHeaderInfo\", input.FileHeaderInfo).withName(\"FileHeaderInfo\");\n bodyNode.addChildNode(node);\n }\n if (input.Comments != null) {\n const node = xml_builder_1.XmlNode.of(\"Comments\", input.Comments).withName(\"Comments\");\n bodyNode.addChildNode(node);\n }\n if (input.QuoteEscapeCharacter != null) {\n const node = xml_builder_1.XmlNode.of(\"QuoteEscapeCharacter\", input.QuoteEscapeCharacter).withName(\"QuoteEscapeCharacter\");\n bodyNode.addChildNode(node);\n }\n if (input.RecordDelimiter != null) {\n const node = xml_builder_1.XmlNode.of(\"RecordDelimiter\", input.RecordDelimiter).withName(\"RecordDelimiter\");\n bodyNode.addChildNode(node);\n }\n if (input.FieldDelimiter != null) {\n const node = xml_builder_1.XmlNode.of(\"FieldDelimiter\", input.FieldDelimiter).withName(\"FieldDelimiter\");\n bodyNode.addChildNode(node);\n }\n if (input.QuoteCharacter != null) {\n const node = xml_builder_1.XmlNode.of(\"QuoteCharacter\", input.QuoteCharacter).withName(\"QuoteCharacter\");\n bodyNode.addChildNode(node);\n }\n if (input.AllowQuotedRecordDelimiter != null) {\n const node = xml_builder_1.XmlNode\n .of(\"AllowQuotedRecordDelimiter\", String(input.AllowQuotedRecordDelimiter))\n .withName(\"AllowQuotedRecordDelimiter\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst serializeAws_restXmlCSVOutput = (input, context) => {\n const bodyNode = new xml_builder_1.XmlNode(\"CSVOutput\");\n if (input.QuoteFields != null) {\n const node = xml_builder_1.XmlNode.of(\"QuoteFields\", input.QuoteFields).withName(\"QuoteFields\");\n bodyNode.addChildNode(node);\n }\n if (input.QuoteEscapeCharacter != null) {\n const node = xml_builder_1.XmlNode.of(\"QuoteEscapeCharacter\", input.QuoteEscapeCharacter).withName(\"QuoteEscapeCharacter\");\n bodyNode.addChildNode(node);\n }\n if (input.RecordDelimiter != null) {\n const node = xml_builder_1.XmlNode.of(\"RecordDelimiter\", input.RecordDelimiter).withName(\"RecordDelimiter\");\n bodyNode.addChildNode(node);\n }\n if (input.FieldDelimiter != null) {\n const node = xml_builder_1.XmlNode.of(\"FieldDelimiter\", input.FieldDelimiter).withName(\"FieldDelimiter\");\n bodyNode.addChildNode(node);\n }\n if (input.QuoteCharacter != null) {\n const node = xml_builder_1.XmlNode.of(\"QuoteCharacter\", input.QuoteCharacter).withName(\"QuoteCharacter\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst serializeAws_restXmlDefaultRetention = (input, context) => {\n const bodyNode = new xml_builder_1.XmlNode(\"DefaultRetention\");\n if (input.Mode != null) {\n const node = xml_builder_1.XmlNode.of(\"ObjectLockRetentionMode\", input.Mode).withName(\"Mode\");\n bodyNode.addChildNode(node);\n }\n if (input.Days != null) {\n const node = xml_builder_1.XmlNode.of(\"Days\", String(input.Days)).withName(\"Days\");\n bodyNode.addChildNode(node);\n }\n if (input.Years != null) {\n const node = xml_builder_1.XmlNode.of(\"Years\", String(input.Years)).withName(\"Years\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst serializeAws_restXmlDelete = (input, context) => {\n const bodyNode = new xml_builder_1.XmlNode(\"Delete\");\n if (input.Objects != null) {\n const nodes = serializeAws_restXmlObjectIdentifierList(input.Objects, context);\n nodes.map((node) => {\n node = node.withName(\"Object\");\n bodyNode.addChildNode(node);\n });\n }\n if (input.Quiet != null) {\n const node = xml_builder_1.XmlNode.of(\"Quiet\", String(input.Quiet)).withName(\"Quiet\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst serializeAws_restXmlDeleteMarkerReplication = (input, context) => {\n const bodyNode = new xml_builder_1.XmlNode(\"DeleteMarkerReplication\");\n if (input.Status != null) {\n const node = xml_builder_1.XmlNode.of(\"DeleteMarkerReplicationStatus\", input.Status).withName(\"Status\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst serializeAws_restXmlDestination = (input, context) => {\n const bodyNode = new xml_builder_1.XmlNode(\"Destination\");\n if (input.Bucket != null) {\n const node = xml_builder_1.XmlNode.of(\"BucketName\", input.Bucket).withName(\"Bucket\");\n bodyNode.addChildNode(node);\n }\n if (input.Account != null) {\n const node = xml_builder_1.XmlNode.of(\"AccountId\", input.Account).withName(\"Account\");\n bodyNode.addChildNode(node);\n }\n if (input.StorageClass != null) {\n const node = xml_builder_1.XmlNode.of(\"StorageClass\", input.StorageClass).withName(\"StorageClass\");\n bodyNode.addChildNode(node);\n }\n if (input.AccessControlTranslation != null) {\n const node = serializeAws_restXmlAccessControlTranslation(input.AccessControlTranslation, context).withName(\"AccessControlTranslation\");\n bodyNode.addChildNode(node);\n }\n if (input.EncryptionConfiguration != null) {\n const node = serializeAws_restXmlEncryptionConfiguration(input.EncryptionConfiguration, context).withName(\"EncryptionConfiguration\");\n bodyNode.addChildNode(node);\n }\n if (input.ReplicationTime != null) {\n const node = serializeAws_restXmlReplicationTime(input.ReplicationTime, context).withName(\"ReplicationTime\");\n bodyNode.addChildNode(node);\n }\n if (input.Metrics != null) {\n const node = serializeAws_restXmlMetrics(input.Metrics, context).withName(\"Metrics\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst serializeAws_restXmlEncryption = (input, context) => {\n const bodyNode = new xml_builder_1.XmlNode(\"Encryption\");\n if (input.EncryptionType != null) {\n const node = xml_builder_1.XmlNode.of(\"ServerSideEncryption\", input.EncryptionType).withName(\"EncryptionType\");\n bodyNode.addChildNode(node);\n }\n if (input.KMSKeyId != null) {\n const node = xml_builder_1.XmlNode.of(\"SSEKMSKeyId\", input.KMSKeyId).withName(\"KMSKeyId\");\n bodyNode.addChildNode(node);\n }\n if (input.KMSContext != null) {\n const node = xml_builder_1.XmlNode.of(\"KMSContext\", input.KMSContext).withName(\"KMSContext\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst serializeAws_restXmlEncryptionConfiguration = (input, context) => {\n const bodyNode = new xml_builder_1.XmlNode(\"EncryptionConfiguration\");\n if (input.ReplicaKmsKeyID != null) {\n const node = xml_builder_1.XmlNode.of(\"ReplicaKmsKeyID\", input.ReplicaKmsKeyID).withName(\"ReplicaKmsKeyID\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst serializeAws_restXmlErrorDocument = (input, context) => {\n const bodyNode = new xml_builder_1.XmlNode(\"ErrorDocument\");\n if (input.Key != null) {\n const node = xml_builder_1.XmlNode.of(\"ObjectKey\", input.Key).withName(\"Key\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst serializeAws_restXmlEventBridgeConfiguration = (input, context) => {\n const bodyNode = new xml_builder_1.XmlNode(\"EventBridgeConfiguration\");\n return bodyNode;\n};\nconst serializeAws_restXmlEventList = (input, context) => {\n return input\n .filter((e) => e != null)\n .map((entry) => {\n const node = xml_builder_1.XmlNode.of(\"Event\", entry);\n return node.withName(\"member\");\n });\n};\nconst serializeAws_restXmlExistingObjectReplication = (input, context) => {\n const bodyNode = new xml_builder_1.XmlNode(\"ExistingObjectReplication\");\n if (input.Status != null) {\n const node = xml_builder_1.XmlNode.of(\"ExistingObjectReplicationStatus\", input.Status).withName(\"Status\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst serializeAws_restXmlExposeHeaders = (input, context) => {\n return input\n .filter((e) => e != null)\n .map((entry) => {\n const node = xml_builder_1.XmlNode.of(\"ExposeHeader\", entry);\n return node.withName(\"member\");\n });\n};\nconst serializeAws_restXmlFilterRule = (input, context) => {\n const bodyNode = new xml_builder_1.XmlNode(\"FilterRule\");\n if (input.Name != null) {\n const node = xml_builder_1.XmlNode.of(\"FilterRuleName\", input.Name).withName(\"Name\");\n bodyNode.addChildNode(node);\n }\n if (input.Value != null) {\n const node = xml_builder_1.XmlNode.of(\"FilterRuleValue\", input.Value).withName(\"Value\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst serializeAws_restXmlFilterRuleList = (input, context) => {\n return input\n .filter((e) => e != null)\n .map((entry) => {\n const node = serializeAws_restXmlFilterRule(entry, context);\n return node.withName(\"member\");\n });\n};\nconst serializeAws_restXmlGlacierJobParameters = (input, context) => {\n const bodyNode = new xml_builder_1.XmlNode(\"GlacierJobParameters\");\n if (input.Tier != null) {\n const node = xml_builder_1.XmlNode.of(\"Tier\", input.Tier).withName(\"Tier\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst serializeAws_restXmlGrant = (input, context) => {\n const bodyNode = new xml_builder_1.XmlNode(\"Grant\");\n if (input.Grantee != null) {\n const node = serializeAws_restXmlGrantee(input.Grantee, context).withName(\"Grantee\");\n node.addAttribute(\"xmlns:xsi\", \"http://www.w3.org/2001/XMLSchema-instance\");\n bodyNode.addChildNode(node);\n }\n if (input.Permission != null) {\n const node = xml_builder_1.XmlNode.of(\"Permission\", input.Permission).withName(\"Permission\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst serializeAws_restXmlGrantee = (input, context) => {\n const bodyNode = new xml_builder_1.XmlNode(\"Grantee\");\n if (input.DisplayName != null) {\n const node = xml_builder_1.XmlNode.of(\"DisplayName\", input.DisplayName).withName(\"DisplayName\");\n bodyNode.addChildNode(node);\n }\n if (input.EmailAddress != null) {\n const node = xml_builder_1.XmlNode.of(\"EmailAddress\", input.EmailAddress).withName(\"EmailAddress\");\n bodyNode.addChildNode(node);\n }\n if (input.ID != null) {\n const node = xml_builder_1.XmlNode.of(\"ID\", input.ID).withName(\"ID\");\n bodyNode.addChildNode(node);\n }\n if (input.URI != null) {\n const node = xml_builder_1.XmlNode.of(\"URI\", input.URI).withName(\"URI\");\n bodyNode.addChildNode(node);\n }\n if (input.Type != null) {\n bodyNode.addAttribute(\"xsi:type\", input.Type);\n }\n return bodyNode;\n};\nconst serializeAws_restXmlGrants = (input, context) => {\n return input\n .filter((e) => e != null)\n .map((entry) => {\n const node = serializeAws_restXmlGrant(entry, context);\n return node.withName(\"Grant\");\n });\n};\nconst serializeAws_restXmlIndexDocument = (input, context) => {\n const bodyNode = new xml_builder_1.XmlNode(\"IndexDocument\");\n if (input.Suffix != null) {\n const node = xml_builder_1.XmlNode.of(\"Suffix\", input.Suffix).withName(\"Suffix\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst serializeAws_restXmlInputSerialization = (input, context) => {\n const bodyNode = new xml_builder_1.XmlNode(\"InputSerialization\");\n if (input.CSV != null) {\n const node = serializeAws_restXmlCSVInput(input.CSV, context).withName(\"CSV\");\n bodyNode.addChildNode(node);\n }\n if (input.CompressionType != null) {\n const node = xml_builder_1.XmlNode.of(\"CompressionType\", input.CompressionType).withName(\"CompressionType\");\n bodyNode.addChildNode(node);\n }\n if (input.JSON != null) {\n const node = serializeAws_restXmlJSONInput(input.JSON, context).withName(\"JSON\");\n bodyNode.addChildNode(node);\n }\n if (input.Parquet != null) {\n const node = serializeAws_restXmlParquetInput(input.Parquet, context).withName(\"Parquet\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst serializeAws_restXmlIntelligentTieringAndOperator = (input, context) => {\n const bodyNode = new xml_builder_1.XmlNode(\"IntelligentTieringAndOperator\");\n if (input.Prefix != null) {\n const node = xml_builder_1.XmlNode.of(\"Prefix\", input.Prefix).withName(\"Prefix\");\n bodyNode.addChildNode(node);\n }\n if (input.Tags != null) {\n const nodes = serializeAws_restXmlTagSet(input.Tags, context);\n nodes.map((node) => {\n node = node.withName(\"Tag\");\n bodyNode.addChildNode(node);\n });\n }\n return bodyNode;\n};\nconst serializeAws_restXmlIntelligentTieringConfiguration = (input, context) => {\n const bodyNode = new xml_builder_1.XmlNode(\"IntelligentTieringConfiguration\");\n if (input.Id != null) {\n const node = xml_builder_1.XmlNode.of(\"IntelligentTieringId\", input.Id).withName(\"Id\");\n bodyNode.addChildNode(node);\n }\n if (input.Filter != null) {\n const node = serializeAws_restXmlIntelligentTieringFilter(input.Filter, context).withName(\"Filter\");\n bodyNode.addChildNode(node);\n }\n if (input.Status != null) {\n const node = xml_builder_1.XmlNode.of(\"IntelligentTieringStatus\", input.Status).withName(\"Status\");\n bodyNode.addChildNode(node);\n }\n if (input.Tierings != null) {\n const nodes = serializeAws_restXmlTieringList(input.Tierings, context);\n nodes.map((node) => {\n node = node.withName(\"Tiering\");\n bodyNode.addChildNode(node);\n });\n }\n return bodyNode;\n};\nconst serializeAws_restXmlIntelligentTieringFilter = (input, context) => {\n const bodyNode = new xml_builder_1.XmlNode(\"IntelligentTieringFilter\");\n if (input.Prefix != null) {\n const node = xml_builder_1.XmlNode.of(\"Prefix\", input.Prefix).withName(\"Prefix\");\n bodyNode.addChildNode(node);\n }\n if (input.Tag != null) {\n const node = serializeAws_restXmlTag(input.Tag, context).withName(\"Tag\");\n bodyNode.addChildNode(node);\n }\n if (input.And != null) {\n const node = serializeAws_restXmlIntelligentTieringAndOperator(input.And, context).withName(\"And\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst serializeAws_restXmlInventoryConfiguration = (input, context) => {\n const bodyNode = new xml_builder_1.XmlNode(\"InventoryConfiguration\");\n if (input.Destination != null) {\n const node = serializeAws_restXmlInventoryDestination(input.Destination, context).withName(\"Destination\");\n bodyNode.addChildNode(node);\n }\n if (input.IsEnabled != null) {\n const node = xml_builder_1.XmlNode.of(\"IsEnabled\", String(input.IsEnabled)).withName(\"IsEnabled\");\n bodyNode.addChildNode(node);\n }\n if (input.Filter != null) {\n const node = serializeAws_restXmlInventoryFilter(input.Filter, context).withName(\"Filter\");\n bodyNode.addChildNode(node);\n }\n if (input.Id != null) {\n const node = xml_builder_1.XmlNode.of(\"InventoryId\", input.Id).withName(\"Id\");\n bodyNode.addChildNode(node);\n }\n if (input.IncludedObjectVersions != null) {\n const node = xml_builder_1.XmlNode\n .of(\"InventoryIncludedObjectVersions\", input.IncludedObjectVersions)\n .withName(\"IncludedObjectVersions\");\n bodyNode.addChildNode(node);\n }\n if (input.OptionalFields != null) {\n const nodes = serializeAws_restXmlInventoryOptionalFields(input.OptionalFields, context);\n const containerNode = new xml_builder_1.XmlNode(\"OptionalFields\");\n nodes.map((node) => {\n containerNode.addChildNode(node);\n });\n bodyNode.addChildNode(containerNode);\n }\n if (input.Schedule != null) {\n const node = serializeAws_restXmlInventorySchedule(input.Schedule, context).withName(\"Schedule\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst serializeAws_restXmlInventoryDestination = (input, context) => {\n const bodyNode = new xml_builder_1.XmlNode(\"InventoryDestination\");\n if (input.S3BucketDestination != null) {\n const node = serializeAws_restXmlInventoryS3BucketDestination(input.S3BucketDestination, context).withName(\"S3BucketDestination\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst serializeAws_restXmlInventoryEncryption = (input, context) => {\n const bodyNode = new xml_builder_1.XmlNode(\"InventoryEncryption\");\n if (input.SSES3 != null) {\n const node = serializeAws_restXmlSSES3(input.SSES3, context).withName(\"SSE-S3\");\n bodyNode.addChildNode(node);\n }\n if (input.SSEKMS != null) {\n const node = serializeAws_restXmlSSEKMS(input.SSEKMS, context).withName(\"SSE-KMS\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst serializeAws_restXmlInventoryFilter = (input, context) => {\n const bodyNode = new xml_builder_1.XmlNode(\"InventoryFilter\");\n if (input.Prefix != null) {\n const node = xml_builder_1.XmlNode.of(\"Prefix\", input.Prefix).withName(\"Prefix\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst serializeAws_restXmlInventoryOptionalFields = (input, context) => {\n return input\n .filter((e) => e != null)\n .map((entry) => {\n const node = xml_builder_1.XmlNode.of(\"InventoryOptionalField\", entry);\n return node.withName(\"Field\");\n });\n};\nconst serializeAws_restXmlInventoryS3BucketDestination = (input, context) => {\n const bodyNode = new xml_builder_1.XmlNode(\"InventoryS3BucketDestination\");\n if (input.AccountId != null) {\n const node = xml_builder_1.XmlNode.of(\"AccountId\", input.AccountId).withName(\"AccountId\");\n bodyNode.addChildNode(node);\n }\n if (input.Bucket != null) {\n const node = xml_builder_1.XmlNode.of(\"BucketName\", input.Bucket).withName(\"Bucket\");\n bodyNode.addChildNode(node);\n }\n if (input.Format != null) {\n const node = xml_builder_1.XmlNode.of(\"InventoryFormat\", input.Format).withName(\"Format\");\n bodyNode.addChildNode(node);\n }\n if (input.Prefix != null) {\n const node = xml_builder_1.XmlNode.of(\"Prefix\", input.Prefix).withName(\"Prefix\");\n bodyNode.addChildNode(node);\n }\n if (input.Encryption != null) {\n const node = serializeAws_restXmlInventoryEncryption(input.Encryption, context).withName(\"Encryption\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst serializeAws_restXmlInventorySchedule = (input, context) => {\n const bodyNode = new xml_builder_1.XmlNode(\"InventorySchedule\");\n if (input.Frequency != null) {\n const node = xml_builder_1.XmlNode.of(\"InventoryFrequency\", input.Frequency).withName(\"Frequency\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst serializeAws_restXmlJSONInput = (input, context) => {\n const bodyNode = new xml_builder_1.XmlNode(\"JSONInput\");\n if (input.Type != null) {\n const node = xml_builder_1.XmlNode.of(\"JSONType\", input.Type).withName(\"Type\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst serializeAws_restXmlJSONOutput = (input, context) => {\n const bodyNode = new xml_builder_1.XmlNode(\"JSONOutput\");\n if (input.RecordDelimiter != null) {\n const node = xml_builder_1.XmlNode.of(\"RecordDelimiter\", input.RecordDelimiter).withName(\"RecordDelimiter\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst serializeAws_restXmlLambdaFunctionConfiguration = (input, context) => {\n const bodyNode = new xml_builder_1.XmlNode(\"LambdaFunctionConfiguration\");\n if (input.Id != null) {\n const node = xml_builder_1.XmlNode.of(\"NotificationId\", input.Id).withName(\"Id\");\n bodyNode.addChildNode(node);\n }\n if (input.LambdaFunctionArn != null) {\n const node = xml_builder_1.XmlNode.of(\"LambdaFunctionArn\", input.LambdaFunctionArn).withName(\"CloudFunction\");\n bodyNode.addChildNode(node);\n }\n if (input.Events != null) {\n const nodes = serializeAws_restXmlEventList(input.Events, context);\n nodes.map((node) => {\n node = node.withName(\"Event\");\n bodyNode.addChildNode(node);\n });\n }\n if (input.Filter != null) {\n const node = serializeAws_restXmlNotificationConfigurationFilter(input.Filter, context).withName(\"Filter\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst serializeAws_restXmlLambdaFunctionConfigurationList = (input, context) => {\n return input\n .filter((e) => e != null)\n .map((entry) => {\n const node = serializeAws_restXmlLambdaFunctionConfiguration(entry, context);\n return node.withName(\"member\");\n });\n};\nconst serializeAws_restXmlLifecycleExpiration = (input, context) => {\n const bodyNode = new xml_builder_1.XmlNode(\"LifecycleExpiration\");\n if (input.Date != null) {\n const node = xml_builder_1.XmlNode.of(\"Date\", (input.Date.toISOString().split(\".\")[0] + \"Z\").toString()).withName(\"Date\");\n bodyNode.addChildNode(node);\n }\n if (input.Days != null) {\n const node = xml_builder_1.XmlNode.of(\"Days\", String(input.Days)).withName(\"Days\");\n bodyNode.addChildNode(node);\n }\n if (input.ExpiredObjectDeleteMarker != null) {\n const node = xml_builder_1.XmlNode\n .of(\"ExpiredObjectDeleteMarker\", String(input.ExpiredObjectDeleteMarker))\n .withName(\"ExpiredObjectDeleteMarker\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst serializeAws_restXmlLifecycleRule = (input, context) => {\n const bodyNode = new xml_builder_1.XmlNode(\"LifecycleRule\");\n if (input.Expiration != null) {\n const node = serializeAws_restXmlLifecycleExpiration(input.Expiration, context).withName(\"Expiration\");\n bodyNode.addChildNode(node);\n }\n if (input.ID != null) {\n const node = xml_builder_1.XmlNode.of(\"ID\", input.ID).withName(\"ID\");\n bodyNode.addChildNode(node);\n }\n if (input.Prefix != null) {\n const node = xml_builder_1.XmlNode.of(\"Prefix\", input.Prefix).withName(\"Prefix\");\n bodyNode.addChildNode(node);\n }\n if (input.Filter != null) {\n const node = serializeAws_restXmlLifecycleRuleFilter(input.Filter, context).withName(\"Filter\");\n bodyNode.addChildNode(node);\n }\n if (input.Status != null) {\n const node = xml_builder_1.XmlNode.of(\"ExpirationStatus\", input.Status).withName(\"Status\");\n bodyNode.addChildNode(node);\n }\n if (input.Transitions != null) {\n const nodes = serializeAws_restXmlTransitionList(input.Transitions, context);\n nodes.map((node) => {\n node = node.withName(\"Transition\");\n bodyNode.addChildNode(node);\n });\n }\n if (input.NoncurrentVersionTransitions != null) {\n const nodes = serializeAws_restXmlNoncurrentVersionTransitionList(input.NoncurrentVersionTransitions, context);\n nodes.map((node) => {\n node = node.withName(\"NoncurrentVersionTransition\");\n bodyNode.addChildNode(node);\n });\n }\n if (input.NoncurrentVersionExpiration != null) {\n const node = serializeAws_restXmlNoncurrentVersionExpiration(input.NoncurrentVersionExpiration, context).withName(\"NoncurrentVersionExpiration\");\n bodyNode.addChildNode(node);\n }\n if (input.AbortIncompleteMultipartUpload != null) {\n const node = serializeAws_restXmlAbortIncompleteMultipartUpload(input.AbortIncompleteMultipartUpload, context).withName(\"AbortIncompleteMultipartUpload\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst serializeAws_restXmlLifecycleRuleAndOperator = (input, context) => {\n const bodyNode = new xml_builder_1.XmlNode(\"LifecycleRuleAndOperator\");\n if (input.Prefix != null) {\n const node = xml_builder_1.XmlNode.of(\"Prefix\", input.Prefix).withName(\"Prefix\");\n bodyNode.addChildNode(node);\n }\n if (input.Tags != null) {\n const nodes = serializeAws_restXmlTagSet(input.Tags, context);\n nodes.map((node) => {\n node = node.withName(\"Tag\");\n bodyNode.addChildNode(node);\n });\n }\n if (input.ObjectSizeGreaterThan != null) {\n const node = xml_builder_1.XmlNode\n .of(\"ObjectSizeGreaterThanBytes\", String(input.ObjectSizeGreaterThan))\n .withName(\"ObjectSizeGreaterThan\");\n bodyNode.addChildNode(node);\n }\n if (input.ObjectSizeLessThan != null) {\n const node = xml_builder_1.XmlNode\n .of(\"ObjectSizeLessThanBytes\", String(input.ObjectSizeLessThan))\n .withName(\"ObjectSizeLessThan\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst serializeAws_restXmlLifecycleRuleFilter = (input, context) => {\n const bodyNode = new xml_builder_1.XmlNode(\"LifecycleRuleFilter\");\n models_0_1.LifecycleRuleFilter.visit(input, {\n Prefix: (value) => {\n const node = xml_builder_1.XmlNode.of(\"Prefix\", value).withName(\"Prefix\");\n bodyNode.addChildNode(node);\n },\n Tag: (value) => {\n const node = serializeAws_restXmlTag(value, context).withName(\"Tag\");\n bodyNode.addChildNode(node);\n },\n ObjectSizeGreaterThan: (value) => {\n const node = xml_builder_1.XmlNode.of(\"ObjectSizeGreaterThanBytes\", String(value)).withName(\"ObjectSizeGreaterThan\");\n bodyNode.addChildNode(node);\n },\n ObjectSizeLessThan: (value) => {\n const node = xml_builder_1.XmlNode.of(\"ObjectSizeLessThanBytes\", String(value)).withName(\"ObjectSizeLessThan\");\n bodyNode.addChildNode(node);\n },\n And: (value) => {\n const node = serializeAws_restXmlLifecycleRuleAndOperator(value, context).withName(\"And\");\n bodyNode.addChildNode(node);\n },\n _: (name, value) => {\n if (!(value instanceof xml_builder_1.XmlNode || value instanceof xml_builder_1.XmlText)) {\n throw new Error(\"Unable to serialize unknown union members in XML.\");\n }\n bodyNode.addChildNode(new xml_builder_1.XmlNode(name).addChildNode(value));\n },\n });\n return bodyNode;\n};\nconst serializeAws_restXmlLifecycleRules = (input, context) => {\n return input\n .filter((e) => e != null)\n .map((entry) => {\n const node = serializeAws_restXmlLifecycleRule(entry, context);\n return node.withName(\"member\");\n });\n};\nconst serializeAws_restXmlLoggingEnabled = (input, context) => {\n const bodyNode = new xml_builder_1.XmlNode(\"LoggingEnabled\");\n if (input.TargetBucket != null) {\n const node = xml_builder_1.XmlNode.of(\"TargetBucket\", input.TargetBucket).withName(\"TargetBucket\");\n bodyNode.addChildNode(node);\n }\n if (input.TargetGrants != null) {\n const nodes = serializeAws_restXmlTargetGrants(input.TargetGrants, context);\n const containerNode = new xml_builder_1.XmlNode(\"TargetGrants\");\n nodes.map((node) => {\n containerNode.addChildNode(node);\n });\n bodyNode.addChildNode(containerNode);\n }\n if (input.TargetPrefix != null) {\n const node = xml_builder_1.XmlNode.of(\"TargetPrefix\", input.TargetPrefix).withName(\"TargetPrefix\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst serializeAws_restXmlMetadataEntry = (input, context) => {\n const bodyNode = new xml_builder_1.XmlNode(\"MetadataEntry\");\n if (input.Name != null) {\n const node = xml_builder_1.XmlNode.of(\"MetadataKey\", input.Name).withName(\"Name\");\n bodyNode.addChildNode(node);\n }\n if (input.Value != null) {\n const node = xml_builder_1.XmlNode.of(\"MetadataValue\", input.Value).withName(\"Value\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst serializeAws_restXmlMetrics = (input, context) => {\n const bodyNode = new xml_builder_1.XmlNode(\"Metrics\");\n if (input.Status != null) {\n const node = xml_builder_1.XmlNode.of(\"MetricsStatus\", input.Status).withName(\"Status\");\n bodyNode.addChildNode(node);\n }\n if (input.EventThreshold != null) {\n const node = serializeAws_restXmlReplicationTimeValue(input.EventThreshold, context).withName(\"EventThreshold\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst serializeAws_restXmlMetricsAndOperator = (input, context) => {\n const bodyNode = new xml_builder_1.XmlNode(\"MetricsAndOperator\");\n if (input.Prefix != null) {\n const node = xml_builder_1.XmlNode.of(\"Prefix\", input.Prefix).withName(\"Prefix\");\n bodyNode.addChildNode(node);\n }\n if (input.Tags != null) {\n const nodes = serializeAws_restXmlTagSet(input.Tags, context);\n nodes.map((node) => {\n node = node.withName(\"Tag\");\n bodyNode.addChildNode(node);\n });\n }\n if (input.AccessPointArn != null) {\n const node = xml_builder_1.XmlNode.of(\"AccessPointArn\", input.AccessPointArn).withName(\"AccessPointArn\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst serializeAws_restXmlMetricsConfiguration = (input, context) => {\n const bodyNode = new xml_builder_1.XmlNode(\"MetricsConfiguration\");\n if (input.Id != null) {\n const node = xml_builder_1.XmlNode.of(\"MetricsId\", input.Id).withName(\"Id\");\n bodyNode.addChildNode(node);\n }\n if (input.Filter != null) {\n const node = serializeAws_restXmlMetricsFilter(input.Filter, context).withName(\"Filter\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst serializeAws_restXmlMetricsFilter = (input, context) => {\n const bodyNode = new xml_builder_1.XmlNode(\"MetricsFilter\");\n models_0_1.MetricsFilter.visit(input, {\n Prefix: (value) => {\n const node = xml_builder_1.XmlNode.of(\"Prefix\", value).withName(\"Prefix\");\n bodyNode.addChildNode(node);\n },\n Tag: (value) => {\n const node = serializeAws_restXmlTag(value, context).withName(\"Tag\");\n bodyNode.addChildNode(node);\n },\n AccessPointArn: (value) => {\n const node = xml_builder_1.XmlNode.of(\"AccessPointArn\", value).withName(\"AccessPointArn\");\n bodyNode.addChildNode(node);\n },\n And: (value) => {\n const node = serializeAws_restXmlMetricsAndOperator(value, context).withName(\"And\");\n bodyNode.addChildNode(node);\n },\n _: (name, value) => {\n if (!(value instanceof xml_builder_1.XmlNode || value instanceof xml_builder_1.XmlText)) {\n throw new Error(\"Unable to serialize unknown union members in XML.\");\n }\n bodyNode.addChildNode(new xml_builder_1.XmlNode(name).addChildNode(value));\n },\n });\n return bodyNode;\n};\nconst serializeAws_restXmlNoncurrentVersionExpiration = (input, context) => {\n const bodyNode = new xml_builder_1.XmlNode(\"NoncurrentVersionExpiration\");\n if (input.NoncurrentDays != null) {\n const node = xml_builder_1.XmlNode.of(\"Days\", String(input.NoncurrentDays)).withName(\"NoncurrentDays\");\n bodyNode.addChildNode(node);\n }\n if (input.NewerNoncurrentVersions != null) {\n const node = xml_builder_1.XmlNode\n .of(\"VersionCount\", String(input.NewerNoncurrentVersions))\n .withName(\"NewerNoncurrentVersions\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst serializeAws_restXmlNoncurrentVersionTransition = (input, context) => {\n const bodyNode = new xml_builder_1.XmlNode(\"NoncurrentVersionTransition\");\n if (input.NoncurrentDays != null) {\n const node = xml_builder_1.XmlNode.of(\"Days\", String(input.NoncurrentDays)).withName(\"NoncurrentDays\");\n bodyNode.addChildNode(node);\n }\n if (input.StorageClass != null) {\n const node = xml_builder_1.XmlNode.of(\"TransitionStorageClass\", input.StorageClass).withName(\"StorageClass\");\n bodyNode.addChildNode(node);\n }\n if (input.NewerNoncurrentVersions != null) {\n const node = xml_builder_1.XmlNode\n .of(\"VersionCount\", String(input.NewerNoncurrentVersions))\n .withName(\"NewerNoncurrentVersions\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst serializeAws_restXmlNoncurrentVersionTransitionList = (input, context) => {\n return input\n .filter((e) => e != null)\n .map((entry) => {\n const node = serializeAws_restXmlNoncurrentVersionTransition(entry, context);\n return node.withName(\"member\");\n });\n};\nconst serializeAws_restXmlNotificationConfiguration = (input, context) => {\n const bodyNode = new xml_builder_1.XmlNode(\"NotificationConfiguration\");\n if (input.TopicConfigurations != null) {\n const nodes = serializeAws_restXmlTopicConfigurationList(input.TopicConfigurations, context);\n nodes.map((node) => {\n node = node.withName(\"TopicConfiguration\");\n bodyNode.addChildNode(node);\n });\n }\n if (input.QueueConfigurations != null) {\n const nodes = serializeAws_restXmlQueueConfigurationList(input.QueueConfigurations, context);\n nodes.map((node) => {\n node = node.withName(\"QueueConfiguration\");\n bodyNode.addChildNode(node);\n });\n }\n if (input.LambdaFunctionConfigurations != null) {\n const nodes = serializeAws_restXmlLambdaFunctionConfigurationList(input.LambdaFunctionConfigurations, context);\n nodes.map((node) => {\n node = node.withName(\"CloudFunctionConfiguration\");\n bodyNode.addChildNode(node);\n });\n }\n if (input.EventBridgeConfiguration != null) {\n const node = serializeAws_restXmlEventBridgeConfiguration(input.EventBridgeConfiguration, context).withName(\"EventBridgeConfiguration\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst serializeAws_restXmlNotificationConfigurationFilter = (input, context) => {\n const bodyNode = new xml_builder_1.XmlNode(\"NotificationConfigurationFilter\");\n if (input.Key != null) {\n const node = serializeAws_restXmlS3KeyFilter(input.Key, context).withName(\"S3Key\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst serializeAws_restXmlObjectIdentifier = (input, context) => {\n const bodyNode = new xml_builder_1.XmlNode(\"ObjectIdentifier\");\n if (input.Key != null) {\n const node = xml_builder_1.XmlNode.of(\"ObjectKey\", input.Key).withName(\"Key\");\n bodyNode.addChildNode(node);\n }\n if (input.VersionId != null) {\n const node = xml_builder_1.XmlNode.of(\"ObjectVersionId\", input.VersionId).withName(\"VersionId\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst serializeAws_restXmlObjectIdentifierList = (input, context) => {\n return input\n .filter((e) => e != null)\n .map((entry) => {\n const node = serializeAws_restXmlObjectIdentifier(entry, context);\n return node.withName(\"member\");\n });\n};\nconst serializeAws_restXmlObjectLockConfiguration = (input, context) => {\n const bodyNode = new xml_builder_1.XmlNode(\"ObjectLockConfiguration\");\n if (input.ObjectLockEnabled != null) {\n const node = xml_builder_1.XmlNode.of(\"ObjectLockEnabled\", input.ObjectLockEnabled).withName(\"ObjectLockEnabled\");\n bodyNode.addChildNode(node);\n }\n if (input.Rule != null) {\n const node = serializeAws_restXmlObjectLockRule(input.Rule, context).withName(\"Rule\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst serializeAws_restXmlObjectLockLegalHold = (input, context) => {\n const bodyNode = new xml_builder_1.XmlNode(\"ObjectLockLegalHold\");\n if (input.Status != null) {\n const node = xml_builder_1.XmlNode.of(\"ObjectLockLegalHoldStatus\", input.Status).withName(\"Status\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst serializeAws_restXmlObjectLockRetention = (input, context) => {\n const bodyNode = new xml_builder_1.XmlNode(\"ObjectLockRetention\");\n if (input.Mode != null) {\n const node = xml_builder_1.XmlNode.of(\"ObjectLockRetentionMode\", input.Mode).withName(\"Mode\");\n bodyNode.addChildNode(node);\n }\n if (input.RetainUntilDate != null) {\n const node = xml_builder_1.XmlNode\n .of(\"Date\", (input.RetainUntilDate.toISOString().split(\".\")[0] + \"Z\").toString())\n .withName(\"RetainUntilDate\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst serializeAws_restXmlObjectLockRule = (input, context) => {\n const bodyNode = new xml_builder_1.XmlNode(\"ObjectLockRule\");\n if (input.DefaultRetention != null) {\n const node = serializeAws_restXmlDefaultRetention(input.DefaultRetention, context).withName(\"DefaultRetention\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst serializeAws_restXmlOutputLocation = (input, context) => {\n const bodyNode = new xml_builder_1.XmlNode(\"OutputLocation\");\n if (input.S3 != null) {\n const node = serializeAws_restXmlS3Location(input.S3, context).withName(\"S3\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst serializeAws_restXmlOutputSerialization = (input, context) => {\n const bodyNode = new xml_builder_1.XmlNode(\"OutputSerialization\");\n if (input.CSV != null) {\n const node = serializeAws_restXmlCSVOutput(input.CSV, context).withName(\"CSV\");\n bodyNode.addChildNode(node);\n }\n if (input.JSON != null) {\n const node = serializeAws_restXmlJSONOutput(input.JSON, context).withName(\"JSON\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst serializeAws_restXmlOwner = (input, context) => {\n const bodyNode = new xml_builder_1.XmlNode(\"Owner\");\n if (input.DisplayName != null) {\n const node = xml_builder_1.XmlNode.of(\"DisplayName\", input.DisplayName).withName(\"DisplayName\");\n bodyNode.addChildNode(node);\n }\n if (input.ID != null) {\n const node = xml_builder_1.XmlNode.of(\"ID\", input.ID).withName(\"ID\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst serializeAws_restXmlOwnershipControls = (input, context) => {\n const bodyNode = new xml_builder_1.XmlNode(\"OwnershipControls\");\n if (input.Rules != null) {\n const nodes = serializeAws_restXmlOwnershipControlsRules(input.Rules, context);\n nodes.map((node) => {\n node = node.withName(\"Rule\");\n bodyNode.addChildNode(node);\n });\n }\n return bodyNode;\n};\nconst serializeAws_restXmlOwnershipControlsRule = (input, context) => {\n const bodyNode = new xml_builder_1.XmlNode(\"OwnershipControlsRule\");\n if (input.ObjectOwnership != null) {\n const node = xml_builder_1.XmlNode.of(\"ObjectOwnership\", input.ObjectOwnership).withName(\"ObjectOwnership\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst serializeAws_restXmlOwnershipControlsRules = (input, context) => {\n return input\n .filter((e) => e != null)\n .map((entry) => {\n const node = serializeAws_restXmlOwnershipControlsRule(entry, context);\n return node.withName(\"member\");\n });\n};\nconst serializeAws_restXmlParquetInput = (input, context) => {\n const bodyNode = new xml_builder_1.XmlNode(\"ParquetInput\");\n return bodyNode;\n};\nconst serializeAws_restXmlPublicAccessBlockConfiguration = (input, context) => {\n const bodyNode = new xml_builder_1.XmlNode(\"PublicAccessBlockConfiguration\");\n if (input.BlockPublicAcls != null) {\n const node = xml_builder_1.XmlNode.of(\"Setting\", String(input.BlockPublicAcls)).withName(\"BlockPublicAcls\");\n bodyNode.addChildNode(node);\n }\n if (input.IgnorePublicAcls != null) {\n const node = xml_builder_1.XmlNode.of(\"Setting\", String(input.IgnorePublicAcls)).withName(\"IgnorePublicAcls\");\n bodyNode.addChildNode(node);\n }\n if (input.BlockPublicPolicy != null) {\n const node = xml_builder_1.XmlNode.of(\"Setting\", String(input.BlockPublicPolicy)).withName(\"BlockPublicPolicy\");\n bodyNode.addChildNode(node);\n }\n if (input.RestrictPublicBuckets != null) {\n const node = xml_builder_1.XmlNode.of(\"Setting\", String(input.RestrictPublicBuckets)).withName(\"RestrictPublicBuckets\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst serializeAws_restXmlQueueConfiguration = (input, context) => {\n const bodyNode = new xml_builder_1.XmlNode(\"QueueConfiguration\");\n if (input.Id != null) {\n const node = xml_builder_1.XmlNode.of(\"NotificationId\", input.Id).withName(\"Id\");\n bodyNode.addChildNode(node);\n }\n if (input.QueueArn != null) {\n const node = xml_builder_1.XmlNode.of(\"QueueArn\", input.QueueArn).withName(\"Queue\");\n bodyNode.addChildNode(node);\n }\n if (input.Events != null) {\n const nodes = serializeAws_restXmlEventList(input.Events, context);\n nodes.map((node) => {\n node = node.withName(\"Event\");\n bodyNode.addChildNode(node);\n });\n }\n if (input.Filter != null) {\n const node = serializeAws_restXmlNotificationConfigurationFilter(input.Filter, context).withName(\"Filter\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst serializeAws_restXmlQueueConfigurationList = (input, context) => {\n return input\n .filter((e) => e != null)\n .map((entry) => {\n const node = serializeAws_restXmlQueueConfiguration(entry, context);\n return node.withName(\"member\");\n });\n};\nconst serializeAws_restXmlRedirect = (input, context) => {\n const bodyNode = new xml_builder_1.XmlNode(\"Redirect\");\n if (input.HostName != null) {\n const node = xml_builder_1.XmlNode.of(\"HostName\", input.HostName).withName(\"HostName\");\n bodyNode.addChildNode(node);\n }\n if (input.HttpRedirectCode != null) {\n const node = xml_builder_1.XmlNode.of(\"HttpRedirectCode\", input.HttpRedirectCode).withName(\"HttpRedirectCode\");\n bodyNode.addChildNode(node);\n }\n if (input.Protocol != null) {\n const node = xml_builder_1.XmlNode.of(\"Protocol\", input.Protocol).withName(\"Protocol\");\n bodyNode.addChildNode(node);\n }\n if (input.ReplaceKeyPrefixWith != null) {\n const node = xml_builder_1.XmlNode.of(\"ReplaceKeyPrefixWith\", input.ReplaceKeyPrefixWith).withName(\"ReplaceKeyPrefixWith\");\n bodyNode.addChildNode(node);\n }\n if (input.ReplaceKeyWith != null) {\n const node = xml_builder_1.XmlNode.of(\"ReplaceKeyWith\", input.ReplaceKeyWith).withName(\"ReplaceKeyWith\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst serializeAws_restXmlRedirectAllRequestsTo = (input, context) => {\n const bodyNode = new xml_builder_1.XmlNode(\"RedirectAllRequestsTo\");\n if (input.HostName != null) {\n const node = xml_builder_1.XmlNode.of(\"HostName\", input.HostName).withName(\"HostName\");\n bodyNode.addChildNode(node);\n }\n if (input.Protocol != null) {\n const node = xml_builder_1.XmlNode.of(\"Protocol\", input.Protocol).withName(\"Protocol\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst serializeAws_restXmlReplicaModifications = (input, context) => {\n const bodyNode = new xml_builder_1.XmlNode(\"ReplicaModifications\");\n if (input.Status != null) {\n const node = xml_builder_1.XmlNode.of(\"ReplicaModificationsStatus\", input.Status).withName(\"Status\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst serializeAws_restXmlReplicationConfiguration = (input, context) => {\n const bodyNode = new xml_builder_1.XmlNode(\"ReplicationConfiguration\");\n if (input.Role != null) {\n const node = xml_builder_1.XmlNode.of(\"Role\", input.Role).withName(\"Role\");\n bodyNode.addChildNode(node);\n }\n if (input.Rules != null) {\n const nodes = serializeAws_restXmlReplicationRules(input.Rules, context);\n nodes.map((node) => {\n node = node.withName(\"Rule\");\n bodyNode.addChildNode(node);\n });\n }\n return bodyNode;\n};\nconst serializeAws_restXmlReplicationRule = (input, context) => {\n const bodyNode = new xml_builder_1.XmlNode(\"ReplicationRule\");\n if (input.ID != null) {\n const node = xml_builder_1.XmlNode.of(\"ID\", input.ID).withName(\"ID\");\n bodyNode.addChildNode(node);\n }\n if (input.Priority != null) {\n const node = xml_builder_1.XmlNode.of(\"Priority\", String(input.Priority)).withName(\"Priority\");\n bodyNode.addChildNode(node);\n }\n if (input.Prefix != null) {\n const node = xml_builder_1.XmlNode.of(\"Prefix\", input.Prefix).withName(\"Prefix\");\n bodyNode.addChildNode(node);\n }\n if (input.Filter != null) {\n const node = serializeAws_restXmlReplicationRuleFilter(input.Filter, context).withName(\"Filter\");\n bodyNode.addChildNode(node);\n }\n if (input.Status != null) {\n const node = xml_builder_1.XmlNode.of(\"ReplicationRuleStatus\", input.Status).withName(\"Status\");\n bodyNode.addChildNode(node);\n }\n if (input.SourceSelectionCriteria != null) {\n const node = serializeAws_restXmlSourceSelectionCriteria(input.SourceSelectionCriteria, context).withName(\"SourceSelectionCriteria\");\n bodyNode.addChildNode(node);\n }\n if (input.ExistingObjectReplication != null) {\n const node = serializeAws_restXmlExistingObjectReplication(input.ExistingObjectReplication, context).withName(\"ExistingObjectReplication\");\n bodyNode.addChildNode(node);\n }\n if (input.Destination != null) {\n const node = serializeAws_restXmlDestination(input.Destination, context).withName(\"Destination\");\n bodyNode.addChildNode(node);\n }\n if (input.DeleteMarkerReplication != null) {\n const node = serializeAws_restXmlDeleteMarkerReplication(input.DeleteMarkerReplication, context).withName(\"DeleteMarkerReplication\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst serializeAws_restXmlReplicationRuleAndOperator = (input, context) => {\n const bodyNode = new xml_builder_1.XmlNode(\"ReplicationRuleAndOperator\");\n if (input.Prefix != null) {\n const node = xml_builder_1.XmlNode.of(\"Prefix\", input.Prefix).withName(\"Prefix\");\n bodyNode.addChildNode(node);\n }\n if (input.Tags != null) {\n const nodes = serializeAws_restXmlTagSet(input.Tags, context);\n nodes.map((node) => {\n node = node.withName(\"Tag\");\n bodyNode.addChildNode(node);\n });\n }\n return bodyNode;\n};\nconst serializeAws_restXmlReplicationRuleFilter = (input, context) => {\n const bodyNode = new xml_builder_1.XmlNode(\"ReplicationRuleFilter\");\n models_0_1.ReplicationRuleFilter.visit(input, {\n Prefix: (value) => {\n const node = xml_builder_1.XmlNode.of(\"Prefix\", value).withName(\"Prefix\");\n bodyNode.addChildNode(node);\n },\n Tag: (value) => {\n const node = serializeAws_restXmlTag(value, context).withName(\"Tag\");\n bodyNode.addChildNode(node);\n },\n And: (value) => {\n const node = serializeAws_restXmlReplicationRuleAndOperator(value, context).withName(\"And\");\n bodyNode.addChildNode(node);\n },\n _: (name, value) => {\n if (!(value instanceof xml_builder_1.XmlNode || value instanceof xml_builder_1.XmlText)) {\n throw new Error(\"Unable to serialize unknown union members in XML.\");\n }\n bodyNode.addChildNode(new xml_builder_1.XmlNode(name).addChildNode(value));\n },\n });\n return bodyNode;\n};\nconst serializeAws_restXmlReplicationRules = (input, context) => {\n return input\n .filter((e) => e != null)\n .map((entry) => {\n const node = serializeAws_restXmlReplicationRule(entry, context);\n return node.withName(\"member\");\n });\n};\nconst serializeAws_restXmlReplicationTime = (input, context) => {\n const bodyNode = new xml_builder_1.XmlNode(\"ReplicationTime\");\n if (input.Status != null) {\n const node = xml_builder_1.XmlNode.of(\"ReplicationTimeStatus\", input.Status).withName(\"Status\");\n bodyNode.addChildNode(node);\n }\n if (input.Time != null) {\n const node = serializeAws_restXmlReplicationTimeValue(input.Time, context).withName(\"Time\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst serializeAws_restXmlReplicationTimeValue = (input, context) => {\n const bodyNode = new xml_builder_1.XmlNode(\"ReplicationTimeValue\");\n if (input.Minutes != null) {\n const node = xml_builder_1.XmlNode.of(\"Minutes\", String(input.Minutes)).withName(\"Minutes\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst serializeAws_restXmlRequestPaymentConfiguration = (input, context) => {\n const bodyNode = new xml_builder_1.XmlNode(\"RequestPaymentConfiguration\");\n if (input.Payer != null) {\n const node = xml_builder_1.XmlNode.of(\"Payer\", input.Payer).withName(\"Payer\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst serializeAws_restXmlRequestProgress = (input, context) => {\n const bodyNode = new xml_builder_1.XmlNode(\"RequestProgress\");\n if (input.Enabled != null) {\n const node = xml_builder_1.XmlNode.of(\"EnableRequestProgress\", String(input.Enabled)).withName(\"Enabled\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst serializeAws_restXmlRestoreRequest = (input, context) => {\n const bodyNode = new xml_builder_1.XmlNode(\"RestoreRequest\");\n if (input.Days != null) {\n const node = xml_builder_1.XmlNode.of(\"Days\", String(input.Days)).withName(\"Days\");\n bodyNode.addChildNode(node);\n }\n if (input.GlacierJobParameters != null) {\n const node = serializeAws_restXmlGlacierJobParameters(input.GlacierJobParameters, context).withName(\"GlacierJobParameters\");\n bodyNode.addChildNode(node);\n }\n if (input.Type != null) {\n const node = xml_builder_1.XmlNode.of(\"RestoreRequestType\", input.Type).withName(\"Type\");\n bodyNode.addChildNode(node);\n }\n if (input.Tier != null) {\n const node = xml_builder_1.XmlNode.of(\"Tier\", input.Tier).withName(\"Tier\");\n bodyNode.addChildNode(node);\n }\n if (input.Description != null) {\n const node = xml_builder_1.XmlNode.of(\"Description\", input.Description).withName(\"Description\");\n bodyNode.addChildNode(node);\n }\n if (input.SelectParameters != null) {\n const node = serializeAws_restXmlSelectParameters(input.SelectParameters, context).withName(\"SelectParameters\");\n bodyNode.addChildNode(node);\n }\n if (input.OutputLocation != null) {\n const node = serializeAws_restXmlOutputLocation(input.OutputLocation, context).withName(\"OutputLocation\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst serializeAws_restXmlRoutingRule = (input, context) => {\n const bodyNode = new xml_builder_1.XmlNode(\"RoutingRule\");\n if (input.Condition != null) {\n const node = serializeAws_restXmlCondition(input.Condition, context).withName(\"Condition\");\n bodyNode.addChildNode(node);\n }\n if (input.Redirect != null) {\n const node = serializeAws_restXmlRedirect(input.Redirect, context).withName(\"Redirect\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst serializeAws_restXmlRoutingRules = (input, context) => {\n return input\n .filter((e) => e != null)\n .map((entry) => {\n const node = serializeAws_restXmlRoutingRule(entry, context);\n return node.withName(\"RoutingRule\");\n });\n};\nconst serializeAws_restXmlS3KeyFilter = (input, context) => {\n const bodyNode = new xml_builder_1.XmlNode(\"S3KeyFilter\");\n if (input.FilterRules != null) {\n const nodes = serializeAws_restXmlFilterRuleList(input.FilterRules, context);\n nodes.map((node) => {\n node = node.withName(\"FilterRule\");\n bodyNode.addChildNode(node);\n });\n }\n return bodyNode;\n};\nconst serializeAws_restXmlS3Location = (input, context) => {\n const bodyNode = new xml_builder_1.XmlNode(\"S3Location\");\n if (input.BucketName != null) {\n const node = xml_builder_1.XmlNode.of(\"BucketName\", input.BucketName).withName(\"BucketName\");\n bodyNode.addChildNode(node);\n }\n if (input.Prefix != null) {\n const node = xml_builder_1.XmlNode.of(\"LocationPrefix\", input.Prefix).withName(\"Prefix\");\n bodyNode.addChildNode(node);\n }\n if (input.Encryption != null) {\n const node = serializeAws_restXmlEncryption(input.Encryption, context).withName(\"Encryption\");\n bodyNode.addChildNode(node);\n }\n if (input.CannedACL != null) {\n const node = xml_builder_1.XmlNode.of(\"ObjectCannedACL\", input.CannedACL).withName(\"CannedACL\");\n bodyNode.addChildNode(node);\n }\n if (input.AccessControlList != null) {\n const nodes = serializeAws_restXmlGrants(input.AccessControlList, context);\n const containerNode = new xml_builder_1.XmlNode(\"AccessControlList\");\n nodes.map((node) => {\n containerNode.addChildNode(node);\n });\n bodyNode.addChildNode(containerNode);\n }\n if (input.Tagging != null) {\n const node = serializeAws_restXmlTagging(input.Tagging, context).withName(\"Tagging\");\n bodyNode.addChildNode(node);\n }\n if (input.UserMetadata != null) {\n const nodes = serializeAws_restXmlUserMetadata(input.UserMetadata, context);\n const containerNode = new xml_builder_1.XmlNode(\"UserMetadata\");\n nodes.map((node) => {\n containerNode.addChildNode(node);\n });\n bodyNode.addChildNode(containerNode);\n }\n if (input.StorageClass != null) {\n const node = xml_builder_1.XmlNode.of(\"StorageClass\", input.StorageClass).withName(\"StorageClass\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst serializeAws_restXmlScanRange = (input, context) => {\n const bodyNode = new xml_builder_1.XmlNode(\"ScanRange\");\n if (input.Start != null) {\n const node = xml_builder_1.XmlNode.of(\"Start\", String(input.Start)).withName(\"Start\");\n bodyNode.addChildNode(node);\n }\n if (input.End != null) {\n const node = xml_builder_1.XmlNode.of(\"End\", String(input.End)).withName(\"End\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst serializeAws_restXmlSelectParameters = (input, context) => {\n const bodyNode = new xml_builder_1.XmlNode(\"SelectParameters\");\n if (input.InputSerialization != null) {\n const node = serializeAws_restXmlInputSerialization(input.InputSerialization, context).withName(\"InputSerialization\");\n bodyNode.addChildNode(node);\n }\n if (input.ExpressionType != null) {\n const node = xml_builder_1.XmlNode.of(\"ExpressionType\", input.ExpressionType).withName(\"ExpressionType\");\n bodyNode.addChildNode(node);\n }\n if (input.Expression != null) {\n const node = xml_builder_1.XmlNode.of(\"Expression\", input.Expression).withName(\"Expression\");\n bodyNode.addChildNode(node);\n }\n if (input.OutputSerialization != null) {\n const node = serializeAws_restXmlOutputSerialization(input.OutputSerialization, context).withName(\"OutputSerialization\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst serializeAws_restXmlServerSideEncryptionByDefault = (input, context) => {\n const bodyNode = new xml_builder_1.XmlNode(\"ServerSideEncryptionByDefault\");\n if (input.SSEAlgorithm != null) {\n const node = xml_builder_1.XmlNode.of(\"ServerSideEncryption\", input.SSEAlgorithm).withName(\"SSEAlgorithm\");\n bodyNode.addChildNode(node);\n }\n if (input.KMSMasterKeyID != null) {\n const node = xml_builder_1.XmlNode.of(\"SSEKMSKeyId\", input.KMSMasterKeyID).withName(\"KMSMasterKeyID\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst serializeAws_restXmlServerSideEncryptionConfiguration = (input, context) => {\n const bodyNode = new xml_builder_1.XmlNode(\"ServerSideEncryptionConfiguration\");\n if (input.Rules != null) {\n const nodes = serializeAws_restXmlServerSideEncryptionRules(input.Rules, context);\n nodes.map((node) => {\n node = node.withName(\"Rule\");\n bodyNode.addChildNode(node);\n });\n }\n return bodyNode;\n};\nconst serializeAws_restXmlServerSideEncryptionRule = (input, context) => {\n const bodyNode = new xml_builder_1.XmlNode(\"ServerSideEncryptionRule\");\n if (input.ApplyServerSideEncryptionByDefault != null) {\n const node = serializeAws_restXmlServerSideEncryptionByDefault(input.ApplyServerSideEncryptionByDefault, context).withName(\"ApplyServerSideEncryptionByDefault\");\n bodyNode.addChildNode(node);\n }\n if (input.BucketKeyEnabled != null) {\n const node = xml_builder_1.XmlNode.of(\"BucketKeyEnabled\", String(input.BucketKeyEnabled)).withName(\"BucketKeyEnabled\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst serializeAws_restXmlServerSideEncryptionRules = (input, context) => {\n return input\n .filter((e) => e != null)\n .map((entry) => {\n const node = serializeAws_restXmlServerSideEncryptionRule(entry, context);\n return node.withName(\"member\");\n });\n};\nconst serializeAws_restXmlSourceSelectionCriteria = (input, context) => {\n const bodyNode = new xml_builder_1.XmlNode(\"SourceSelectionCriteria\");\n if (input.SseKmsEncryptedObjects != null) {\n const node = serializeAws_restXmlSseKmsEncryptedObjects(input.SseKmsEncryptedObjects, context).withName(\"SseKmsEncryptedObjects\");\n bodyNode.addChildNode(node);\n }\n if (input.ReplicaModifications != null) {\n const node = serializeAws_restXmlReplicaModifications(input.ReplicaModifications, context).withName(\"ReplicaModifications\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst serializeAws_restXmlSSEKMS = (input, context) => {\n const bodyNode = new xml_builder_1.XmlNode(\"SSE-KMS\");\n if (input.KeyId != null) {\n const node = xml_builder_1.XmlNode.of(\"SSEKMSKeyId\", input.KeyId).withName(\"KeyId\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst serializeAws_restXmlSseKmsEncryptedObjects = (input, context) => {\n const bodyNode = new xml_builder_1.XmlNode(\"SseKmsEncryptedObjects\");\n if (input.Status != null) {\n const node = xml_builder_1.XmlNode.of(\"SseKmsEncryptedObjectsStatus\", input.Status).withName(\"Status\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst serializeAws_restXmlSSES3 = (input, context) => {\n const bodyNode = new xml_builder_1.XmlNode(\"SSE-S3\");\n return bodyNode;\n};\nconst serializeAws_restXmlStorageClassAnalysis = (input, context) => {\n const bodyNode = new xml_builder_1.XmlNode(\"StorageClassAnalysis\");\n if (input.DataExport != null) {\n const node = serializeAws_restXmlStorageClassAnalysisDataExport(input.DataExport, context).withName(\"DataExport\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst serializeAws_restXmlStorageClassAnalysisDataExport = (input, context) => {\n const bodyNode = new xml_builder_1.XmlNode(\"StorageClassAnalysisDataExport\");\n if (input.OutputSchemaVersion != null) {\n const node = xml_builder_1.XmlNode\n .of(\"StorageClassAnalysisSchemaVersion\", input.OutputSchemaVersion)\n .withName(\"OutputSchemaVersion\");\n bodyNode.addChildNode(node);\n }\n if (input.Destination != null) {\n const node = serializeAws_restXmlAnalyticsExportDestination(input.Destination, context).withName(\"Destination\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst serializeAws_restXmlTag = (input, context) => {\n const bodyNode = new xml_builder_1.XmlNode(\"Tag\");\n if (input.Key != null) {\n const node = xml_builder_1.XmlNode.of(\"ObjectKey\", input.Key).withName(\"Key\");\n bodyNode.addChildNode(node);\n }\n if (input.Value != null) {\n const node = xml_builder_1.XmlNode.of(\"Value\", input.Value).withName(\"Value\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst serializeAws_restXmlTagging = (input, context) => {\n const bodyNode = new xml_builder_1.XmlNode(\"Tagging\");\n if (input.TagSet != null) {\n const nodes = serializeAws_restXmlTagSet(input.TagSet, context);\n const containerNode = new xml_builder_1.XmlNode(\"TagSet\");\n nodes.map((node) => {\n containerNode.addChildNode(node);\n });\n bodyNode.addChildNode(containerNode);\n }\n return bodyNode;\n};\nconst serializeAws_restXmlTagSet = (input, context) => {\n return input\n .filter((e) => e != null)\n .map((entry) => {\n const node = serializeAws_restXmlTag(entry, context);\n return node.withName(\"Tag\");\n });\n};\nconst serializeAws_restXmlTargetGrant = (input, context) => {\n const bodyNode = new xml_builder_1.XmlNode(\"TargetGrant\");\n if (input.Grantee != null) {\n const node = serializeAws_restXmlGrantee(input.Grantee, context).withName(\"Grantee\");\n node.addAttribute(\"xmlns:xsi\", \"http://www.w3.org/2001/XMLSchema-instance\");\n bodyNode.addChildNode(node);\n }\n if (input.Permission != null) {\n const node = xml_builder_1.XmlNode.of(\"BucketLogsPermission\", input.Permission).withName(\"Permission\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst serializeAws_restXmlTargetGrants = (input, context) => {\n return input\n .filter((e) => e != null)\n .map((entry) => {\n const node = serializeAws_restXmlTargetGrant(entry, context);\n return node.withName(\"Grant\");\n });\n};\nconst serializeAws_restXmlTiering = (input, context) => {\n const bodyNode = new xml_builder_1.XmlNode(\"Tiering\");\n if (input.Days != null) {\n const node = xml_builder_1.XmlNode.of(\"IntelligentTieringDays\", String(input.Days)).withName(\"Days\");\n bodyNode.addChildNode(node);\n }\n if (input.AccessTier != null) {\n const node = xml_builder_1.XmlNode.of(\"IntelligentTieringAccessTier\", input.AccessTier).withName(\"AccessTier\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst serializeAws_restXmlTieringList = (input, context) => {\n return input\n .filter((e) => e != null)\n .map((entry) => {\n const node = serializeAws_restXmlTiering(entry, context);\n return node.withName(\"member\");\n });\n};\nconst serializeAws_restXmlTopicConfiguration = (input, context) => {\n const bodyNode = new xml_builder_1.XmlNode(\"TopicConfiguration\");\n if (input.Id != null) {\n const node = xml_builder_1.XmlNode.of(\"NotificationId\", input.Id).withName(\"Id\");\n bodyNode.addChildNode(node);\n }\n if (input.TopicArn != null) {\n const node = xml_builder_1.XmlNode.of(\"TopicArn\", input.TopicArn).withName(\"Topic\");\n bodyNode.addChildNode(node);\n }\n if (input.Events != null) {\n const nodes = serializeAws_restXmlEventList(input.Events, context);\n nodes.map((node) => {\n node = node.withName(\"Event\");\n bodyNode.addChildNode(node);\n });\n }\n if (input.Filter != null) {\n const node = serializeAws_restXmlNotificationConfigurationFilter(input.Filter, context).withName(\"Filter\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst serializeAws_restXmlTopicConfigurationList = (input, context) => {\n return input\n .filter((e) => e != null)\n .map((entry) => {\n const node = serializeAws_restXmlTopicConfiguration(entry, context);\n return node.withName(\"member\");\n });\n};\nconst serializeAws_restXmlTransition = (input, context) => {\n const bodyNode = new xml_builder_1.XmlNode(\"Transition\");\n if (input.Date != null) {\n const node = xml_builder_1.XmlNode.of(\"Date\", (input.Date.toISOString().split(\".\")[0] + \"Z\").toString()).withName(\"Date\");\n bodyNode.addChildNode(node);\n }\n if (input.Days != null) {\n const node = xml_builder_1.XmlNode.of(\"Days\", String(input.Days)).withName(\"Days\");\n bodyNode.addChildNode(node);\n }\n if (input.StorageClass != null) {\n const node = xml_builder_1.XmlNode.of(\"TransitionStorageClass\", input.StorageClass).withName(\"StorageClass\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst serializeAws_restXmlTransitionList = (input, context) => {\n return input\n .filter((e) => e != null)\n .map((entry) => {\n const node = serializeAws_restXmlTransition(entry, context);\n return node.withName(\"member\");\n });\n};\nconst serializeAws_restXmlUserMetadata = (input, context) => {\n return input\n .filter((e) => e != null)\n .map((entry) => {\n const node = serializeAws_restXmlMetadataEntry(entry, context);\n return node.withName(\"MetadataEntry\");\n });\n};\nconst serializeAws_restXmlVersioningConfiguration = (input, context) => {\n const bodyNode = new xml_builder_1.XmlNode(\"VersioningConfiguration\");\n if (input.MFADelete != null) {\n const node = xml_builder_1.XmlNode.of(\"MFADelete\", input.MFADelete).withName(\"MfaDelete\");\n bodyNode.addChildNode(node);\n }\n if (input.Status != null) {\n const node = xml_builder_1.XmlNode.of(\"BucketVersioningStatus\", input.Status).withName(\"Status\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst serializeAws_restXmlWebsiteConfiguration = (input, context) => {\n const bodyNode = new xml_builder_1.XmlNode(\"WebsiteConfiguration\");\n if (input.ErrorDocument != null) {\n const node = serializeAws_restXmlErrorDocument(input.ErrorDocument, context).withName(\"ErrorDocument\");\n bodyNode.addChildNode(node);\n }\n if (input.IndexDocument != null) {\n const node = serializeAws_restXmlIndexDocument(input.IndexDocument, context).withName(\"IndexDocument\");\n bodyNode.addChildNode(node);\n }\n if (input.RedirectAllRequestsTo != null) {\n const node = serializeAws_restXmlRedirectAllRequestsTo(input.RedirectAllRequestsTo, context).withName(\"RedirectAllRequestsTo\");\n bodyNode.addChildNode(node);\n }\n if (input.RoutingRules != null) {\n const nodes = serializeAws_restXmlRoutingRules(input.RoutingRules, context);\n const containerNode = new xml_builder_1.XmlNode(\"RoutingRules\");\n nodes.map((node) => {\n containerNode.addChildNode(node);\n });\n bodyNode.addChildNode(containerNode);\n }\n return bodyNode;\n};\nconst deserializeAws_restXmlAbortIncompleteMultipartUpload = (output, context) => {\n const contents = {\n DaysAfterInitiation: undefined,\n };\n if (output[\"DaysAfterInitiation\"] !== undefined) {\n contents.DaysAfterInitiation = (0, smithy_client_1.strictParseInt32)(output[\"DaysAfterInitiation\"]);\n }\n return contents;\n};\nconst deserializeAws_restXmlAccessControlTranslation = (output, context) => {\n const contents = {\n Owner: undefined,\n };\n if (output[\"Owner\"] !== undefined) {\n contents.Owner = (0, smithy_client_1.expectString)(output[\"Owner\"]);\n }\n return contents;\n};\nconst deserializeAws_restXmlAllowedHeaders = (output, context) => {\n return (output || [])\n .filter((e) => e != null)\n .map((entry) => {\n return (0, smithy_client_1.expectString)(entry);\n });\n};\nconst deserializeAws_restXmlAllowedMethods = (output, context) => {\n return (output || [])\n .filter((e) => e != null)\n .map((entry) => {\n return (0, smithy_client_1.expectString)(entry);\n });\n};\nconst deserializeAws_restXmlAllowedOrigins = (output, context) => {\n return (output || [])\n .filter((e) => e != null)\n .map((entry) => {\n return (0, smithy_client_1.expectString)(entry);\n });\n};\nconst deserializeAws_restXmlAnalyticsAndOperator = (output, context) => {\n const contents = {\n Prefix: undefined,\n Tags: undefined,\n };\n if (output[\"Prefix\"] !== undefined) {\n contents.Prefix = (0, smithy_client_1.expectString)(output[\"Prefix\"]);\n }\n if (output.Tag === \"\") {\n contents.Tags = [];\n }\n else if (output[\"Tag\"] !== undefined) {\n contents.Tags = deserializeAws_restXmlTagSet((0, smithy_client_1.getArrayIfSingleItem)(output[\"Tag\"]), context);\n }\n return contents;\n};\nconst deserializeAws_restXmlAnalyticsConfiguration = (output, context) => {\n const contents = {\n Id: undefined,\n Filter: undefined,\n StorageClassAnalysis: undefined,\n };\n if (output[\"Id\"] !== undefined) {\n contents.Id = (0, smithy_client_1.expectString)(output[\"Id\"]);\n }\n if (output.Filter === \"\") {\n }\n else if (output[\"Filter\"] !== undefined) {\n contents.Filter = deserializeAws_restXmlAnalyticsFilter((0, smithy_client_1.expectUnion)(output[\"Filter\"]), context);\n }\n if (output[\"StorageClassAnalysis\"] !== undefined) {\n contents.StorageClassAnalysis = deserializeAws_restXmlStorageClassAnalysis(output[\"StorageClassAnalysis\"], context);\n }\n return contents;\n};\nconst deserializeAws_restXmlAnalyticsConfigurationList = (output, context) => {\n return (output || [])\n .filter((e) => e != null)\n .map((entry) => {\n return deserializeAws_restXmlAnalyticsConfiguration(entry, context);\n });\n};\nconst deserializeAws_restXmlAnalyticsExportDestination = (output, context) => {\n const contents = {\n S3BucketDestination: undefined,\n };\n if (output[\"S3BucketDestination\"] !== undefined) {\n contents.S3BucketDestination = deserializeAws_restXmlAnalyticsS3BucketDestination(output[\"S3BucketDestination\"], context);\n }\n return contents;\n};\nconst deserializeAws_restXmlAnalyticsFilter = (output, context) => {\n if (output[\"Prefix\"] !== undefined) {\n return {\n Prefix: (0, smithy_client_1.expectString)(output[\"Prefix\"]),\n };\n }\n if (output[\"Tag\"] !== undefined) {\n return {\n Tag: deserializeAws_restXmlTag(output[\"Tag\"], context),\n };\n }\n if (output[\"And\"] !== undefined) {\n return {\n And: deserializeAws_restXmlAnalyticsAndOperator(output[\"And\"], context),\n };\n }\n return { $unknown: Object.entries(output)[0] };\n};\nconst deserializeAws_restXmlAnalyticsS3BucketDestination = (output, context) => {\n const contents = {\n Format: undefined,\n BucketAccountId: undefined,\n Bucket: undefined,\n Prefix: undefined,\n };\n if (output[\"Format\"] !== undefined) {\n contents.Format = (0, smithy_client_1.expectString)(output[\"Format\"]);\n }\n if (output[\"BucketAccountId\"] !== undefined) {\n contents.BucketAccountId = (0, smithy_client_1.expectString)(output[\"BucketAccountId\"]);\n }\n if (output[\"Bucket\"] !== undefined) {\n contents.Bucket = (0, smithy_client_1.expectString)(output[\"Bucket\"]);\n }\n if (output[\"Prefix\"] !== undefined) {\n contents.Prefix = (0, smithy_client_1.expectString)(output[\"Prefix\"]);\n }\n return contents;\n};\nconst deserializeAws_restXmlBucket = (output, context) => {\n const contents = {\n Name: undefined,\n CreationDate: undefined,\n };\n if (output[\"Name\"] !== undefined) {\n contents.Name = (0, smithy_client_1.expectString)(output[\"Name\"]);\n }\n if (output[\"CreationDate\"] !== undefined) {\n contents.CreationDate = (0, smithy_client_1.expectNonNull)((0, smithy_client_1.parseRfc3339DateTimeWithOffset)(output[\"CreationDate\"]));\n }\n return contents;\n};\nconst deserializeAws_restXmlBuckets = (output, context) => {\n return (output || [])\n .filter((e) => e != null)\n .map((entry) => {\n return deserializeAws_restXmlBucket(entry, context);\n });\n};\nconst deserializeAws_restXmlChecksum = (output, context) => {\n const contents = {\n ChecksumCRC32: undefined,\n ChecksumCRC32C: undefined,\n ChecksumSHA1: undefined,\n ChecksumSHA256: undefined,\n };\n if (output[\"ChecksumCRC32\"] !== undefined) {\n contents.ChecksumCRC32 = (0, smithy_client_1.expectString)(output[\"ChecksumCRC32\"]);\n }\n if (output[\"ChecksumCRC32C\"] !== undefined) {\n contents.ChecksumCRC32C = (0, smithy_client_1.expectString)(output[\"ChecksumCRC32C\"]);\n }\n if (output[\"ChecksumSHA1\"] !== undefined) {\n contents.ChecksumSHA1 = (0, smithy_client_1.expectString)(output[\"ChecksumSHA1\"]);\n }\n if (output[\"ChecksumSHA256\"] !== undefined) {\n contents.ChecksumSHA256 = (0, smithy_client_1.expectString)(output[\"ChecksumSHA256\"]);\n }\n return contents;\n};\nconst deserializeAws_restXmlChecksumAlgorithmList = (output, context) => {\n return (output || [])\n .filter((e) => e != null)\n .map((entry) => {\n return (0, smithy_client_1.expectString)(entry);\n });\n};\nconst deserializeAws_restXmlCommonPrefix = (output, context) => {\n const contents = {\n Prefix: undefined,\n };\n if (output[\"Prefix\"] !== undefined) {\n contents.Prefix = (0, smithy_client_1.expectString)(output[\"Prefix\"]);\n }\n return contents;\n};\nconst deserializeAws_restXmlCommonPrefixList = (output, context) => {\n return (output || [])\n .filter((e) => e != null)\n .map((entry) => {\n return deserializeAws_restXmlCommonPrefix(entry, context);\n });\n};\nconst deserializeAws_restXmlCondition = (output, context) => {\n const contents = {\n HttpErrorCodeReturnedEquals: undefined,\n KeyPrefixEquals: undefined,\n };\n if (output[\"HttpErrorCodeReturnedEquals\"] !== undefined) {\n contents.HttpErrorCodeReturnedEquals = (0, smithy_client_1.expectString)(output[\"HttpErrorCodeReturnedEquals\"]);\n }\n if (output[\"KeyPrefixEquals\"] !== undefined) {\n contents.KeyPrefixEquals = (0, smithy_client_1.expectString)(output[\"KeyPrefixEquals\"]);\n }\n return contents;\n};\nconst deserializeAws_restXmlContinuationEvent = (output, context) => {\n const contents = {};\n return contents;\n};\nconst deserializeAws_restXmlCopyObjectResult = (output, context) => {\n const contents = {\n ETag: undefined,\n LastModified: undefined,\n ChecksumCRC32: undefined,\n ChecksumCRC32C: undefined,\n ChecksumSHA1: undefined,\n ChecksumSHA256: undefined,\n };\n if (output[\"ETag\"] !== undefined) {\n contents.ETag = (0, smithy_client_1.expectString)(output[\"ETag\"]);\n }\n if (output[\"LastModified\"] !== undefined) {\n contents.LastModified = (0, smithy_client_1.expectNonNull)((0, smithy_client_1.parseRfc3339DateTimeWithOffset)(output[\"LastModified\"]));\n }\n if (output[\"ChecksumCRC32\"] !== undefined) {\n contents.ChecksumCRC32 = (0, smithy_client_1.expectString)(output[\"ChecksumCRC32\"]);\n }\n if (output[\"ChecksumCRC32C\"] !== undefined) {\n contents.ChecksumCRC32C = (0, smithy_client_1.expectString)(output[\"ChecksumCRC32C\"]);\n }\n if (output[\"ChecksumSHA1\"] !== undefined) {\n contents.ChecksumSHA1 = (0, smithy_client_1.expectString)(output[\"ChecksumSHA1\"]);\n }\n if (output[\"ChecksumSHA256\"] !== undefined) {\n contents.ChecksumSHA256 = (0, smithy_client_1.expectString)(output[\"ChecksumSHA256\"]);\n }\n return contents;\n};\nconst deserializeAws_restXmlCopyPartResult = (output, context) => {\n const contents = {\n ETag: undefined,\n LastModified: undefined,\n ChecksumCRC32: undefined,\n ChecksumCRC32C: undefined,\n ChecksumSHA1: undefined,\n ChecksumSHA256: undefined,\n };\n if (output[\"ETag\"] !== undefined) {\n contents.ETag = (0, smithy_client_1.expectString)(output[\"ETag\"]);\n }\n if (output[\"LastModified\"] !== undefined) {\n contents.LastModified = (0, smithy_client_1.expectNonNull)((0, smithy_client_1.parseRfc3339DateTimeWithOffset)(output[\"LastModified\"]));\n }\n if (output[\"ChecksumCRC32\"] !== undefined) {\n contents.ChecksumCRC32 = (0, smithy_client_1.expectString)(output[\"ChecksumCRC32\"]);\n }\n if (output[\"ChecksumCRC32C\"] !== undefined) {\n contents.ChecksumCRC32C = (0, smithy_client_1.expectString)(output[\"ChecksumCRC32C\"]);\n }\n if (output[\"ChecksumSHA1\"] !== undefined) {\n contents.ChecksumSHA1 = (0, smithy_client_1.expectString)(output[\"ChecksumSHA1\"]);\n }\n if (output[\"ChecksumSHA256\"] !== undefined) {\n contents.ChecksumSHA256 = (0, smithy_client_1.expectString)(output[\"ChecksumSHA256\"]);\n }\n return contents;\n};\nconst deserializeAws_restXmlCORSRule = (output, context) => {\n const contents = {\n ID: undefined,\n AllowedHeaders: undefined,\n AllowedMethods: undefined,\n AllowedOrigins: undefined,\n ExposeHeaders: undefined,\n MaxAgeSeconds: undefined,\n };\n if (output[\"ID\"] !== undefined) {\n contents.ID = (0, smithy_client_1.expectString)(output[\"ID\"]);\n }\n if (output.AllowedHeader === \"\") {\n contents.AllowedHeaders = [];\n }\n else if (output[\"AllowedHeader\"] !== undefined) {\n contents.AllowedHeaders = deserializeAws_restXmlAllowedHeaders((0, smithy_client_1.getArrayIfSingleItem)(output[\"AllowedHeader\"]), context);\n }\n if (output.AllowedMethod === \"\") {\n contents.AllowedMethods = [];\n }\n else if (output[\"AllowedMethod\"] !== undefined) {\n contents.AllowedMethods = deserializeAws_restXmlAllowedMethods((0, smithy_client_1.getArrayIfSingleItem)(output[\"AllowedMethod\"]), context);\n }\n if (output.AllowedOrigin === \"\") {\n contents.AllowedOrigins = [];\n }\n else if (output[\"AllowedOrigin\"] !== undefined) {\n contents.AllowedOrigins = deserializeAws_restXmlAllowedOrigins((0, smithy_client_1.getArrayIfSingleItem)(output[\"AllowedOrigin\"]), context);\n }\n if (output.ExposeHeader === \"\") {\n contents.ExposeHeaders = [];\n }\n else if (output[\"ExposeHeader\"] !== undefined) {\n contents.ExposeHeaders = deserializeAws_restXmlExposeHeaders((0, smithy_client_1.getArrayIfSingleItem)(output[\"ExposeHeader\"]), context);\n }\n if (output[\"MaxAgeSeconds\"] !== undefined) {\n contents.MaxAgeSeconds = (0, smithy_client_1.strictParseInt32)(output[\"MaxAgeSeconds\"]);\n }\n return contents;\n};\nconst deserializeAws_restXmlCORSRules = (output, context) => {\n return (output || [])\n .filter((e) => e != null)\n .map((entry) => {\n return deserializeAws_restXmlCORSRule(entry, context);\n });\n};\nconst deserializeAws_restXmlDefaultRetention = (output, context) => {\n const contents = {\n Mode: undefined,\n Days: undefined,\n Years: undefined,\n };\n if (output[\"Mode\"] !== undefined) {\n contents.Mode = (0, smithy_client_1.expectString)(output[\"Mode\"]);\n }\n if (output[\"Days\"] !== undefined) {\n contents.Days = (0, smithy_client_1.strictParseInt32)(output[\"Days\"]);\n }\n if (output[\"Years\"] !== undefined) {\n contents.Years = (0, smithy_client_1.strictParseInt32)(output[\"Years\"]);\n }\n return contents;\n};\nconst deserializeAws_restXmlDeletedObject = (output, context) => {\n const contents = {\n Key: undefined,\n VersionId: undefined,\n DeleteMarker: undefined,\n DeleteMarkerVersionId: undefined,\n };\n if (output[\"Key\"] !== undefined) {\n contents.Key = (0, smithy_client_1.expectString)(output[\"Key\"]);\n }\n if (output[\"VersionId\"] !== undefined) {\n contents.VersionId = (0, smithy_client_1.expectString)(output[\"VersionId\"]);\n }\n if (output[\"DeleteMarker\"] !== undefined) {\n contents.DeleteMarker = (0, smithy_client_1.parseBoolean)(output[\"DeleteMarker\"]);\n }\n if (output[\"DeleteMarkerVersionId\"] !== undefined) {\n contents.DeleteMarkerVersionId = (0, smithy_client_1.expectString)(output[\"DeleteMarkerVersionId\"]);\n }\n return contents;\n};\nconst deserializeAws_restXmlDeletedObjects = (output, context) => {\n return (output || [])\n .filter((e) => e != null)\n .map((entry) => {\n return deserializeAws_restXmlDeletedObject(entry, context);\n });\n};\nconst deserializeAws_restXmlDeleteMarkerEntry = (output, context) => {\n const contents = {\n Owner: undefined,\n Key: undefined,\n VersionId: undefined,\n IsLatest: undefined,\n LastModified: undefined,\n };\n if (output[\"Owner\"] !== undefined) {\n contents.Owner = deserializeAws_restXmlOwner(output[\"Owner\"], context);\n }\n if (output[\"Key\"] !== undefined) {\n contents.Key = (0, smithy_client_1.expectString)(output[\"Key\"]);\n }\n if (output[\"VersionId\"] !== undefined) {\n contents.VersionId = (0, smithy_client_1.expectString)(output[\"VersionId\"]);\n }\n if (output[\"IsLatest\"] !== undefined) {\n contents.IsLatest = (0, smithy_client_1.parseBoolean)(output[\"IsLatest\"]);\n }\n if (output[\"LastModified\"] !== undefined) {\n contents.LastModified = (0, smithy_client_1.expectNonNull)((0, smithy_client_1.parseRfc3339DateTimeWithOffset)(output[\"LastModified\"]));\n }\n return contents;\n};\nconst deserializeAws_restXmlDeleteMarkerReplication = (output, context) => {\n const contents = {\n Status: undefined,\n };\n if (output[\"Status\"] !== undefined) {\n contents.Status = (0, smithy_client_1.expectString)(output[\"Status\"]);\n }\n return contents;\n};\nconst deserializeAws_restXmlDeleteMarkers = (output, context) => {\n return (output || [])\n .filter((e) => e != null)\n .map((entry) => {\n return deserializeAws_restXmlDeleteMarkerEntry(entry, context);\n });\n};\nconst deserializeAws_restXmlDestination = (output, context) => {\n const contents = {\n Bucket: undefined,\n Account: undefined,\n StorageClass: undefined,\n AccessControlTranslation: undefined,\n EncryptionConfiguration: undefined,\n ReplicationTime: undefined,\n Metrics: undefined,\n };\n if (output[\"Bucket\"] !== undefined) {\n contents.Bucket = (0, smithy_client_1.expectString)(output[\"Bucket\"]);\n }\n if (output[\"Account\"] !== undefined) {\n contents.Account = (0, smithy_client_1.expectString)(output[\"Account\"]);\n }\n if (output[\"StorageClass\"] !== undefined) {\n contents.StorageClass = (0, smithy_client_1.expectString)(output[\"StorageClass\"]);\n }\n if (output[\"AccessControlTranslation\"] !== undefined) {\n contents.AccessControlTranslation = deserializeAws_restXmlAccessControlTranslation(output[\"AccessControlTranslation\"], context);\n }\n if (output[\"EncryptionConfiguration\"] !== undefined) {\n contents.EncryptionConfiguration = deserializeAws_restXmlEncryptionConfiguration(output[\"EncryptionConfiguration\"], context);\n }\n if (output[\"ReplicationTime\"] !== undefined) {\n contents.ReplicationTime = deserializeAws_restXmlReplicationTime(output[\"ReplicationTime\"], context);\n }\n if (output[\"Metrics\"] !== undefined) {\n contents.Metrics = deserializeAws_restXmlMetrics(output[\"Metrics\"], context);\n }\n return contents;\n};\nconst deserializeAws_restXmlEncryptionConfiguration = (output, context) => {\n const contents = {\n ReplicaKmsKeyID: undefined,\n };\n if (output[\"ReplicaKmsKeyID\"] !== undefined) {\n contents.ReplicaKmsKeyID = (0, smithy_client_1.expectString)(output[\"ReplicaKmsKeyID\"]);\n }\n return contents;\n};\nconst deserializeAws_restXmlEndEvent = (output, context) => {\n const contents = {};\n return contents;\n};\nconst deserializeAws_restXml_Error = (output, context) => {\n const contents = {\n Key: undefined,\n VersionId: undefined,\n Code: undefined,\n Message: undefined,\n };\n if (output[\"Key\"] !== undefined) {\n contents.Key = (0, smithy_client_1.expectString)(output[\"Key\"]);\n }\n if (output[\"VersionId\"] !== undefined) {\n contents.VersionId = (0, smithy_client_1.expectString)(output[\"VersionId\"]);\n }\n if (output[\"Code\"] !== undefined) {\n contents.Code = (0, smithy_client_1.expectString)(output[\"Code\"]);\n }\n if (output[\"Message\"] !== undefined) {\n contents.Message = (0, smithy_client_1.expectString)(output[\"Message\"]);\n }\n return contents;\n};\nconst deserializeAws_restXmlErrorDocument = (output, context) => {\n const contents = {\n Key: undefined,\n };\n if (output[\"Key\"] !== undefined) {\n contents.Key = (0, smithy_client_1.expectString)(output[\"Key\"]);\n }\n return contents;\n};\nconst deserializeAws_restXmlErrors = (output, context) => {\n return (output || [])\n .filter((e) => e != null)\n .map((entry) => {\n return deserializeAws_restXml_Error(entry, context);\n });\n};\nconst deserializeAws_restXmlEventBridgeConfiguration = (output, context) => {\n const contents = {};\n return contents;\n};\nconst deserializeAws_restXmlEventList = (output, context) => {\n return (output || [])\n .filter((e) => e != null)\n .map((entry) => {\n return (0, smithy_client_1.expectString)(entry);\n });\n};\nconst deserializeAws_restXmlExistingObjectReplication = (output, context) => {\n const contents = {\n Status: undefined,\n };\n if (output[\"Status\"] !== undefined) {\n contents.Status = (0, smithy_client_1.expectString)(output[\"Status\"]);\n }\n return contents;\n};\nconst deserializeAws_restXmlExposeHeaders = (output, context) => {\n return (output || [])\n .filter((e) => e != null)\n .map((entry) => {\n return (0, smithy_client_1.expectString)(entry);\n });\n};\nconst deserializeAws_restXmlFilterRule = (output, context) => {\n const contents = {\n Name: undefined,\n Value: undefined,\n };\n if (output[\"Name\"] !== undefined) {\n contents.Name = (0, smithy_client_1.expectString)(output[\"Name\"]);\n }\n if (output[\"Value\"] !== undefined) {\n contents.Value = (0, smithy_client_1.expectString)(output[\"Value\"]);\n }\n return contents;\n};\nconst deserializeAws_restXmlFilterRuleList = (output, context) => {\n return (output || [])\n .filter((e) => e != null)\n .map((entry) => {\n return deserializeAws_restXmlFilterRule(entry, context);\n });\n};\nconst deserializeAws_restXmlGetObjectAttributesParts = (output, context) => {\n const contents = {\n TotalPartsCount: undefined,\n PartNumberMarker: undefined,\n NextPartNumberMarker: undefined,\n MaxParts: undefined,\n IsTruncated: undefined,\n Parts: undefined,\n };\n if (output[\"PartsCount\"] !== undefined) {\n contents.TotalPartsCount = (0, smithy_client_1.strictParseInt32)(output[\"PartsCount\"]);\n }\n if (output[\"PartNumberMarker\"] !== undefined) {\n contents.PartNumberMarker = (0, smithy_client_1.expectString)(output[\"PartNumberMarker\"]);\n }\n if (output[\"NextPartNumberMarker\"] !== undefined) {\n contents.NextPartNumberMarker = (0, smithy_client_1.expectString)(output[\"NextPartNumberMarker\"]);\n }\n if (output[\"MaxParts\"] !== undefined) {\n contents.MaxParts = (0, smithy_client_1.strictParseInt32)(output[\"MaxParts\"]);\n }\n if (output[\"IsTruncated\"] !== undefined) {\n contents.IsTruncated = (0, smithy_client_1.parseBoolean)(output[\"IsTruncated\"]);\n }\n if (output.Part === \"\") {\n contents.Parts = [];\n }\n else if (output[\"Part\"] !== undefined) {\n contents.Parts = deserializeAws_restXmlPartsList((0, smithy_client_1.getArrayIfSingleItem)(output[\"Part\"]), context);\n }\n return contents;\n};\nconst deserializeAws_restXmlGrant = (output, context) => {\n const contents = {\n Grantee: undefined,\n Permission: undefined,\n };\n if (output[\"Grantee\"] !== undefined) {\n contents.Grantee = deserializeAws_restXmlGrantee(output[\"Grantee\"], context);\n }\n if (output[\"Permission\"] !== undefined) {\n contents.Permission = (0, smithy_client_1.expectString)(output[\"Permission\"]);\n }\n return contents;\n};\nconst deserializeAws_restXmlGrantee = (output, context) => {\n const contents = {\n DisplayName: undefined,\n EmailAddress: undefined,\n ID: undefined,\n URI: undefined,\n Type: undefined,\n };\n if (output[\"DisplayName\"] !== undefined) {\n contents.DisplayName = (0, smithy_client_1.expectString)(output[\"DisplayName\"]);\n }\n if (output[\"EmailAddress\"] !== undefined) {\n contents.EmailAddress = (0, smithy_client_1.expectString)(output[\"EmailAddress\"]);\n }\n if (output[\"ID\"] !== undefined) {\n contents.ID = (0, smithy_client_1.expectString)(output[\"ID\"]);\n }\n if (output[\"URI\"] !== undefined) {\n contents.URI = (0, smithy_client_1.expectString)(output[\"URI\"]);\n }\n if (output[\"xsi:type\"] !== undefined) {\n contents.Type = (0, smithy_client_1.expectString)(output[\"xsi:type\"]);\n }\n return contents;\n};\nconst deserializeAws_restXmlGrants = (output, context) => {\n return (output || [])\n .filter((e) => e != null)\n .map((entry) => {\n return deserializeAws_restXmlGrant(entry, context);\n });\n};\nconst deserializeAws_restXmlIndexDocument = (output, context) => {\n const contents = {\n Suffix: undefined,\n };\n if (output[\"Suffix\"] !== undefined) {\n contents.Suffix = (0, smithy_client_1.expectString)(output[\"Suffix\"]);\n }\n return contents;\n};\nconst deserializeAws_restXmlInitiator = (output, context) => {\n const contents = {\n ID: undefined,\n DisplayName: undefined,\n };\n if (output[\"ID\"] !== undefined) {\n contents.ID = (0, smithy_client_1.expectString)(output[\"ID\"]);\n }\n if (output[\"DisplayName\"] !== undefined) {\n contents.DisplayName = (0, smithy_client_1.expectString)(output[\"DisplayName\"]);\n }\n return contents;\n};\nconst deserializeAws_restXmlIntelligentTieringAndOperator = (output, context) => {\n const contents = {\n Prefix: undefined,\n Tags: undefined,\n };\n if (output[\"Prefix\"] !== undefined) {\n contents.Prefix = (0, smithy_client_1.expectString)(output[\"Prefix\"]);\n }\n if (output.Tag === \"\") {\n contents.Tags = [];\n }\n else if (output[\"Tag\"] !== undefined) {\n contents.Tags = deserializeAws_restXmlTagSet((0, smithy_client_1.getArrayIfSingleItem)(output[\"Tag\"]), context);\n }\n return contents;\n};\nconst deserializeAws_restXmlIntelligentTieringConfiguration = (output, context) => {\n const contents = {\n Id: undefined,\n Filter: undefined,\n Status: undefined,\n Tierings: undefined,\n };\n if (output[\"Id\"] !== undefined) {\n contents.Id = (0, smithy_client_1.expectString)(output[\"Id\"]);\n }\n if (output[\"Filter\"] !== undefined) {\n contents.Filter = deserializeAws_restXmlIntelligentTieringFilter(output[\"Filter\"], context);\n }\n if (output[\"Status\"] !== undefined) {\n contents.Status = (0, smithy_client_1.expectString)(output[\"Status\"]);\n }\n if (output.Tiering === \"\") {\n contents.Tierings = [];\n }\n else if (output[\"Tiering\"] !== undefined) {\n contents.Tierings = deserializeAws_restXmlTieringList((0, smithy_client_1.getArrayIfSingleItem)(output[\"Tiering\"]), context);\n }\n return contents;\n};\nconst deserializeAws_restXmlIntelligentTieringConfigurationList = (output, context) => {\n return (output || [])\n .filter((e) => e != null)\n .map((entry) => {\n return deserializeAws_restXmlIntelligentTieringConfiguration(entry, context);\n });\n};\nconst deserializeAws_restXmlIntelligentTieringFilter = (output, context) => {\n const contents = {\n Prefix: undefined,\n Tag: undefined,\n And: undefined,\n };\n if (output[\"Prefix\"] !== undefined) {\n contents.Prefix = (0, smithy_client_1.expectString)(output[\"Prefix\"]);\n }\n if (output[\"Tag\"] !== undefined) {\n contents.Tag = deserializeAws_restXmlTag(output[\"Tag\"], context);\n }\n if (output[\"And\"] !== undefined) {\n contents.And = deserializeAws_restXmlIntelligentTieringAndOperator(output[\"And\"], context);\n }\n return contents;\n};\nconst deserializeAws_restXmlInventoryConfiguration = (output, context) => {\n const contents = {\n Destination: undefined,\n IsEnabled: undefined,\n Filter: undefined,\n Id: undefined,\n IncludedObjectVersions: undefined,\n OptionalFields: undefined,\n Schedule: undefined,\n };\n if (output[\"Destination\"] !== undefined) {\n contents.Destination = deserializeAws_restXmlInventoryDestination(output[\"Destination\"], context);\n }\n if (output[\"IsEnabled\"] !== undefined) {\n contents.IsEnabled = (0, smithy_client_1.parseBoolean)(output[\"IsEnabled\"]);\n }\n if (output[\"Filter\"] !== undefined) {\n contents.Filter = deserializeAws_restXmlInventoryFilter(output[\"Filter\"], context);\n }\n if (output[\"Id\"] !== undefined) {\n contents.Id = (0, smithy_client_1.expectString)(output[\"Id\"]);\n }\n if (output[\"IncludedObjectVersions\"] !== undefined) {\n contents.IncludedObjectVersions = (0, smithy_client_1.expectString)(output[\"IncludedObjectVersions\"]);\n }\n if (output.OptionalFields === \"\") {\n contents.OptionalFields = [];\n }\n else if (output[\"OptionalFields\"] !== undefined && output[\"OptionalFields\"][\"Field\"] !== undefined) {\n contents.OptionalFields = deserializeAws_restXmlInventoryOptionalFields((0, smithy_client_1.getArrayIfSingleItem)(output[\"OptionalFields\"][\"Field\"]), context);\n }\n if (output[\"Schedule\"] !== undefined) {\n contents.Schedule = deserializeAws_restXmlInventorySchedule(output[\"Schedule\"], context);\n }\n return contents;\n};\nconst deserializeAws_restXmlInventoryConfigurationList = (output, context) => {\n return (output || [])\n .filter((e) => e != null)\n .map((entry) => {\n return deserializeAws_restXmlInventoryConfiguration(entry, context);\n });\n};\nconst deserializeAws_restXmlInventoryDestination = (output, context) => {\n const contents = {\n S3BucketDestination: undefined,\n };\n if (output[\"S3BucketDestination\"] !== undefined) {\n contents.S3BucketDestination = deserializeAws_restXmlInventoryS3BucketDestination(output[\"S3BucketDestination\"], context);\n }\n return contents;\n};\nconst deserializeAws_restXmlInventoryEncryption = (output, context) => {\n const contents = {\n SSES3: undefined,\n SSEKMS: undefined,\n };\n if (output[\"SSE-S3\"] !== undefined) {\n contents.SSES3 = deserializeAws_restXmlSSES3(output[\"SSE-S3\"], context);\n }\n if (output[\"SSE-KMS\"] !== undefined) {\n contents.SSEKMS = deserializeAws_restXmlSSEKMS(output[\"SSE-KMS\"], context);\n }\n return contents;\n};\nconst deserializeAws_restXmlInventoryFilter = (output, context) => {\n const contents = {\n Prefix: undefined,\n };\n if (output[\"Prefix\"] !== undefined) {\n contents.Prefix = (0, smithy_client_1.expectString)(output[\"Prefix\"]);\n }\n return contents;\n};\nconst deserializeAws_restXmlInventoryOptionalFields = (output, context) => {\n return (output || [])\n .filter((e) => e != null)\n .map((entry) => {\n return (0, smithy_client_1.expectString)(entry);\n });\n};\nconst deserializeAws_restXmlInventoryS3BucketDestination = (output, context) => {\n const contents = {\n AccountId: undefined,\n Bucket: undefined,\n Format: undefined,\n Prefix: undefined,\n Encryption: undefined,\n };\n if (output[\"AccountId\"] !== undefined) {\n contents.AccountId = (0, smithy_client_1.expectString)(output[\"AccountId\"]);\n }\n if (output[\"Bucket\"] !== undefined) {\n contents.Bucket = (0, smithy_client_1.expectString)(output[\"Bucket\"]);\n }\n if (output[\"Format\"] !== undefined) {\n contents.Format = (0, smithy_client_1.expectString)(output[\"Format\"]);\n }\n if (output[\"Prefix\"] !== undefined) {\n contents.Prefix = (0, smithy_client_1.expectString)(output[\"Prefix\"]);\n }\n if (output[\"Encryption\"] !== undefined) {\n contents.Encryption = deserializeAws_restXmlInventoryEncryption(output[\"Encryption\"], context);\n }\n return contents;\n};\nconst deserializeAws_restXmlInventorySchedule = (output, context) => {\n const contents = {\n Frequency: undefined,\n };\n if (output[\"Frequency\"] !== undefined) {\n contents.Frequency = (0, smithy_client_1.expectString)(output[\"Frequency\"]);\n }\n return contents;\n};\nconst deserializeAws_restXmlLambdaFunctionConfiguration = (output, context) => {\n const contents = {\n Id: undefined,\n LambdaFunctionArn: undefined,\n Events: undefined,\n Filter: undefined,\n };\n if (output[\"Id\"] !== undefined) {\n contents.Id = (0, smithy_client_1.expectString)(output[\"Id\"]);\n }\n if (output[\"CloudFunction\"] !== undefined) {\n contents.LambdaFunctionArn = (0, smithy_client_1.expectString)(output[\"CloudFunction\"]);\n }\n if (output.Event === \"\") {\n contents.Events = [];\n }\n else if (output[\"Event\"] !== undefined) {\n contents.Events = deserializeAws_restXmlEventList((0, smithy_client_1.getArrayIfSingleItem)(output[\"Event\"]), context);\n }\n if (output[\"Filter\"] !== undefined) {\n contents.Filter = deserializeAws_restXmlNotificationConfigurationFilter(output[\"Filter\"], context);\n }\n return contents;\n};\nconst deserializeAws_restXmlLambdaFunctionConfigurationList = (output, context) => {\n return (output || [])\n .filter((e) => e != null)\n .map((entry) => {\n return deserializeAws_restXmlLambdaFunctionConfiguration(entry, context);\n });\n};\nconst deserializeAws_restXmlLifecycleExpiration = (output, context) => {\n const contents = {\n Date: undefined,\n Days: undefined,\n ExpiredObjectDeleteMarker: undefined,\n };\n if (output[\"Date\"] !== undefined) {\n contents.Date = (0, smithy_client_1.expectNonNull)((0, smithy_client_1.parseRfc3339DateTimeWithOffset)(output[\"Date\"]));\n }\n if (output[\"Days\"] !== undefined) {\n contents.Days = (0, smithy_client_1.strictParseInt32)(output[\"Days\"]);\n }\n if (output[\"ExpiredObjectDeleteMarker\"] !== undefined) {\n contents.ExpiredObjectDeleteMarker = (0, smithy_client_1.parseBoolean)(output[\"ExpiredObjectDeleteMarker\"]);\n }\n return contents;\n};\nconst deserializeAws_restXmlLifecycleRule = (output, context) => {\n const contents = {\n Expiration: undefined,\n ID: undefined,\n Prefix: undefined,\n Filter: undefined,\n Status: undefined,\n Transitions: undefined,\n NoncurrentVersionTransitions: undefined,\n NoncurrentVersionExpiration: undefined,\n AbortIncompleteMultipartUpload: undefined,\n };\n if (output[\"Expiration\"] !== undefined) {\n contents.Expiration = deserializeAws_restXmlLifecycleExpiration(output[\"Expiration\"], context);\n }\n if (output[\"ID\"] !== undefined) {\n contents.ID = (0, smithy_client_1.expectString)(output[\"ID\"]);\n }\n if (output[\"Prefix\"] !== undefined) {\n contents.Prefix = (0, smithy_client_1.expectString)(output[\"Prefix\"]);\n }\n if (output.Filter === \"\") {\n }\n else if (output[\"Filter\"] !== undefined) {\n contents.Filter = deserializeAws_restXmlLifecycleRuleFilter((0, smithy_client_1.expectUnion)(output[\"Filter\"]), context);\n }\n if (output[\"Status\"] !== undefined) {\n contents.Status = (0, smithy_client_1.expectString)(output[\"Status\"]);\n }\n if (output.Transition === \"\") {\n contents.Transitions = [];\n }\n else if (output[\"Transition\"] !== undefined) {\n contents.Transitions = deserializeAws_restXmlTransitionList((0, smithy_client_1.getArrayIfSingleItem)(output[\"Transition\"]), context);\n }\n if (output.NoncurrentVersionTransition === \"\") {\n contents.NoncurrentVersionTransitions = [];\n }\n else if (output[\"NoncurrentVersionTransition\"] !== undefined) {\n contents.NoncurrentVersionTransitions = deserializeAws_restXmlNoncurrentVersionTransitionList((0, smithy_client_1.getArrayIfSingleItem)(output[\"NoncurrentVersionTransition\"]), context);\n }\n if (output[\"NoncurrentVersionExpiration\"] !== undefined) {\n contents.NoncurrentVersionExpiration = deserializeAws_restXmlNoncurrentVersionExpiration(output[\"NoncurrentVersionExpiration\"], context);\n }\n if (output[\"AbortIncompleteMultipartUpload\"] !== undefined) {\n contents.AbortIncompleteMultipartUpload = deserializeAws_restXmlAbortIncompleteMultipartUpload(output[\"AbortIncompleteMultipartUpload\"], context);\n }\n return contents;\n};\nconst deserializeAws_restXmlLifecycleRuleAndOperator = (output, context) => {\n const contents = {\n Prefix: undefined,\n Tags: undefined,\n ObjectSizeGreaterThan: undefined,\n ObjectSizeLessThan: undefined,\n };\n if (output[\"Prefix\"] !== undefined) {\n contents.Prefix = (0, smithy_client_1.expectString)(output[\"Prefix\"]);\n }\n if (output.Tag === \"\") {\n contents.Tags = [];\n }\n else if (output[\"Tag\"] !== undefined) {\n contents.Tags = deserializeAws_restXmlTagSet((0, smithy_client_1.getArrayIfSingleItem)(output[\"Tag\"]), context);\n }\n if (output[\"ObjectSizeGreaterThan\"] !== undefined) {\n contents.ObjectSizeGreaterThan = (0, smithy_client_1.strictParseLong)(output[\"ObjectSizeGreaterThan\"]);\n }\n if (output[\"ObjectSizeLessThan\"] !== undefined) {\n contents.ObjectSizeLessThan = (0, smithy_client_1.strictParseLong)(output[\"ObjectSizeLessThan\"]);\n }\n return contents;\n};\nconst deserializeAws_restXmlLifecycleRuleFilter = (output, context) => {\n if (output[\"Prefix\"] !== undefined) {\n return {\n Prefix: (0, smithy_client_1.expectString)(output[\"Prefix\"]),\n };\n }\n if (output[\"Tag\"] !== undefined) {\n return {\n Tag: deserializeAws_restXmlTag(output[\"Tag\"], context),\n };\n }\n if (output[\"ObjectSizeGreaterThan\"] !== undefined) {\n return {\n ObjectSizeGreaterThan: (0, smithy_client_1.strictParseLong)(output[\"ObjectSizeGreaterThan\"]),\n };\n }\n if (output[\"ObjectSizeLessThan\"] !== undefined) {\n return {\n ObjectSizeLessThan: (0, smithy_client_1.strictParseLong)(output[\"ObjectSizeLessThan\"]),\n };\n }\n if (output[\"And\"] !== undefined) {\n return {\n And: deserializeAws_restXmlLifecycleRuleAndOperator(output[\"And\"], context),\n };\n }\n return { $unknown: Object.entries(output)[0] };\n};\nconst deserializeAws_restXmlLifecycleRules = (output, context) => {\n return (output || [])\n .filter((e) => e != null)\n .map((entry) => {\n return deserializeAws_restXmlLifecycleRule(entry, context);\n });\n};\nconst deserializeAws_restXmlLoggingEnabled = (output, context) => {\n const contents = {\n TargetBucket: undefined,\n TargetGrants: undefined,\n TargetPrefix: undefined,\n };\n if (output[\"TargetBucket\"] !== undefined) {\n contents.TargetBucket = (0, smithy_client_1.expectString)(output[\"TargetBucket\"]);\n }\n if (output.TargetGrants === \"\") {\n contents.TargetGrants = [];\n }\n else if (output[\"TargetGrants\"] !== undefined && output[\"TargetGrants\"][\"Grant\"] !== undefined) {\n contents.TargetGrants = deserializeAws_restXmlTargetGrants((0, smithy_client_1.getArrayIfSingleItem)(output[\"TargetGrants\"][\"Grant\"]), context);\n }\n if (output[\"TargetPrefix\"] !== undefined) {\n contents.TargetPrefix = (0, smithy_client_1.expectString)(output[\"TargetPrefix\"]);\n }\n return contents;\n};\nconst deserializeAws_restXmlMetrics = (output, context) => {\n const contents = {\n Status: undefined,\n EventThreshold: undefined,\n };\n if (output[\"Status\"] !== undefined) {\n contents.Status = (0, smithy_client_1.expectString)(output[\"Status\"]);\n }\n if (output[\"EventThreshold\"] !== undefined) {\n contents.EventThreshold = deserializeAws_restXmlReplicationTimeValue(output[\"EventThreshold\"], context);\n }\n return contents;\n};\nconst deserializeAws_restXmlMetricsAndOperator = (output, context) => {\n const contents = {\n Prefix: undefined,\n Tags: undefined,\n AccessPointArn: undefined,\n };\n if (output[\"Prefix\"] !== undefined) {\n contents.Prefix = (0, smithy_client_1.expectString)(output[\"Prefix\"]);\n }\n if (output.Tag === \"\") {\n contents.Tags = [];\n }\n else if (output[\"Tag\"] !== undefined) {\n contents.Tags = deserializeAws_restXmlTagSet((0, smithy_client_1.getArrayIfSingleItem)(output[\"Tag\"]), context);\n }\n if (output[\"AccessPointArn\"] !== undefined) {\n contents.AccessPointArn = (0, smithy_client_1.expectString)(output[\"AccessPointArn\"]);\n }\n return contents;\n};\nconst deserializeAws_restXmlMetricsConfiguration = (output, context) => {\n const contents = {\n Id: undefined,\n Filter: undefined,\n };\n if (output[\"Id\"] !== undefined) {\n contents.Id = (0, smithy_client_1.expectString)(output[\"Id\"]);\n }\n if (output.Filter === \"\") {\n }\n else if (output[\"Filter\"] !== undefined) {\n contents.Filter = deserializeAws_restXmlMetricsFilter((0, smithy_client_1.expectUnion)(output[\"Filter\"]), context);\n }\n return contents;\n};\nconst deserializeAws_restXmlMetricsConfigurationList = (output, context) => {\n return (output || [])\n .filter((e) => e != null)\n .map((entry) => {\n return deserializeAws_restXmlMetricsConfiguration(entry, context);\n });\n};\nconst deserializeAws_restXmlMetricsFilter = (output, context) => {\n if (output[\"Prefix\"] !== undefined) {\n return {\n Prefix: (0, smithy_client_1.expectString)(output[\"Prefix\"]),\n };\n }\n if (output[\"Tag\"] !== undefined) {\n return {\n Tag: deserializeAws_restXmlTag(output[\"Tag\"], context),\n };\n }\n if (output[\"AccessPointArn\"] !== undefined) {\n return {\n AccessPointArn: (0, smithy_client_1.expectString)(output[\"AccessPointArn\"]),\n };\n }\n if (output[\"And\"] !== undefined) {\n return {\n And: deserializeAws_restXmlMetricsAndOperator(output[\"And\"], context),\n };\n }\n return { $unknown: Object.entries(output)[0] };\n};\nconst deserializeAws_restXmlMultipartUpload = (output, context) => {\n const contents = {\n UploadId: undefined,\n Key: undefined,\n Initiated: undefined,\n StorageClass: undefined,\n Owner: undefined,\n Initiator: undefined,\n ChecksumAlgorithm: undefined,\n };\n if (output[\"UploadId\"] !== undefined) {\n contents.UploadId = (0, smithy_client_1.expectString)(output[\"UploadId\"]);\n }\n if (output[\"Key\"] !== undefined) {\n contents.Key = (0, smithy_client_1.expectString)(output[\"Key\"]);\n }\n if (output[\"Initiated\"] !== undefined) {\n contents.Initiated = (0, smithy_client_1.expectNonNull)((0, smithy_client_1.parseRfc3339DateTimeWithOffset)(output[\"Initiated\"]));\n }\n if (output[\"StorageClass\"] !== undefined) {\n contents.StorageClass = (0, smithy_client_1.expectString)(output[\"StorageClass\"]);\n }\n if (output[\"Owner\"] !== undefined) {\n contents.Owner = deserializeAws_restXmlOwner(output[\"Owner\"], context);\n }\n if (output[\"Initiator\"] !== undefined) {\n contents.Initiator = deserializeAws_restXmlInitiator(output[\"Initiator\"], context);\n }\n if (output[\"ChecksumAlgorithm\"] !== undefined) {\n contents.ChecksumAlgorithm = (0, smithy_client_1.expectString)(output[\"ChecksumAlgorithm\"]);\n }\n return contents;\n};\nconst deserializeAws_restXmlMultipartUploadList = (output, context) => {\n return (output || [])\n .filter((e) => e != null)\n .map((entry) => {\n return deserializeAws_restXmlMultipartUpload(entry, context);\n });\n};\nconst deserializeAws_restXmlNoncurrentVersionExpiration = (output, context) => {\n const contents = {\n NoncurrentDays: undefined,\n NewerNoncurrentVersions: undefined,\n };\n if (output[\"NoncurrentDays\"] !== undefined) {\n contents.NoncurrentDays = (0, smithy_client_1.strictParseInt32)(output[\"NoncurrentDays\"]);\n }\n if (output[\"NewerNoncurrentVersions\"] !== undefined) {\n contents.NewerNoncurrentVersions = (0, smithy_client_1.strictParseInt32)(output[\"NewerNoncurrentVersions\"]);\n }\n return contents;\n};\nconst deserializeAws_restXmlNoncurrentVersionTransition = (output, context) => {\n const contents = {\n NoncurrentDays: undefined,\n StorageClass: undefined,\n NewerNoncurrentVersions: undefined,\n };\n if (output[\"NoncurrentDays\"] !== undefined) {\n contents.NoncurrentDays = (0, smithy_client_1.strictParseInt32)(output[\"NoncurrentDays\"]);\n }\n if (output[\"StorageClass\"] !== undefined) {\n contents.StorageClass = (0, smithy_client_1.expectString)(output[\"StorageClass\"]);\n }\n if (output[\"NewerNoncurrentVersions\"] !== undefined) {\n contents.NewerNoncurrentVersions = (0, smithy_client_1.strictParseInt32)(output[\"NewerNoncurrentVersions\"]);\n }\n return contents;\n};\nconst deserializeAws_restXmlNoncurrentVersionTransitionList = (output, context) => {\n return (output || [])\n .filter((e) => e != null)\n .map((entry) => {\n return deserializeAws_restXmlNoncurrentVersionTransition(entry, context);\n });\n};\nconst deserializeAws_restXmlNotificationConfigurationFilter = (output, context) => {\n const contents = {\n Key: undefined,\n };\n if (output[\"S3Key\"] !== undefined) {\n contents.Key = deserializeAws_restXmlS3KeyFilter(output[\"S3Key\"], context);\n }\n return contents;\n};\nconst deserializeAws_restXml_Object = (output, context) => {\n const contents = {\n Key: undefined,\n LastModified: undefined,\n ETag: undefined,\n ChecksumAlgorithm: undefined,\n Size: undefined,\n StorageClass: undefined,\n Owner: undefined,\n };\n if (output[\"Key\"] !== undefined) {\n contents.Key = (0, smithy_client_1.expectString)(output[\"Key\"]);\n }\n if (output[\"LastModified\"] !== undefined) {\n contents.LastModified = (0, smithy_client_1.expectNonNull)((0, smithy_client_1.parseRfc3339DateTimeWithOffset)(output[\"LastModified\"]));\n }\n if (output[\"ETag\"] !== undefined) {\n contents.ETag = (0, smithy_client_1.expectString)(output[\"ETag\"]);\n }\n if (output.ChecksumAlgorithm === \"\") {\n contents.ChecksumAlgorithm = [];\n }\n else if (output[\"ChecksumAlgorithm\"] !== undefined) {\n contents.ChecksumAlgorithm = deserializeAws_restXmlChecksumAlgorithmList((0, smithy_client_1.getArrayIfSingleItem)(output[\"ChecksumAlgorithm\"]), context);\n }\n if (output[\"Size\"] !== undefined) {\n contents.Size = (0, smithy_client_1.strictParseLong)(output[\"Size\"]);\n }\n if (output[\"StorageClass\"] !== undefined) {\n contents.StorageClass = (0, smithy_client_1.expectString)(output[\"StorageClass\"]);\n }\n if (output[\"Owner\"] !== undefined) {\n contents.Owner = deserializeAws_restXmlOwner(output[\"Owner\"], context);\n }\n return contents;\n};\nconst deserializeAws_restXmlObjectList = (output, context) => {\n return (output || [])\n .filter((e) => e != null)\n .map((entry) => {\n return deserializeAws_restXml_Object(entry, context);\n });\n};\nconst deserializeAws_restXmlObjectLockConfiguration = (output, context) => {\n const contents = {\n ObjectLockEnabled: undefined,\n Rule: undefined,\n };\n if (output[\"ObjectLockEnabled\"] !== undefined) {\n contents.ObjectLockEnabled = (0, smithy_client_1.expectString)(output[\"ObjectLockEnabled\"]);\n }\n if (output[\"Rule\"] !== undefined) {\n contents.Rule = deserializeAws_restXmlObjectLockRule(output[\"Rule\"], context);\n }\n return contents;\n};\nconst deserializeAws_restXmlObjectLockLegalHold = (output, context) => {\n const contents = {\n Status: undefined,\n };\n if (output[\"Status\"] !== undefined) {\n contents.Status = (0, smithy_client_1.expectString)(output[\"Status\"]);\n }\n return contents;\n};\nconst deserializeAws_restXmlObjectLockRetention = (output, context) => {\n const contents = {\n Mode: undefined,\n RetainUntilDate: undefined,\n };\n if (output[\"Mode\"] !== undefined) {\n contents.Mode = (0, smithy_client_1.expectString)(output[\"Mode\"]);\n }\n if (output[\"RetainUntilDate\"] !== undefined) {\n contents.RetainUntilDate = (0, smithy_client_1.expectNonNull)((0, smithy_client_1.parseRfc3339DateTimeWithOffset)(output[\"RetainUntilDate\"]));\n }\n return contents;\n};\nconst deserializeAws_restXmlObjectLockRule = (output, context) => {\n const contents = {\n DefaultRetention: undefined,\n };\n if (output[\"DefaultRetention\"] !== undefined) {\n contents.DefaultRetention = deserializeAws_restXmlDefaultRetention(output[\"DefaultRetention\"], context);\n }\n return contents;\n};\nconst deserializeAws_restXmlObjectPart = (output, context) => {\n const contents = {\n PartNumber: undefined,\n Size: undefined,\n ChecksumCRC32: undefined,\n ChecksumCRC32C: undefined,\n ChecksumSHA1: undefined,\n ChecksumSHA256: undefined,\n };\n if (output[\"PartNumber\"] !== undefined) {\n contents.PartNumber = (0, smithy_client_1.strictParseInt32)(output[\"PartNumber\"]);\n }\n if (output[\"Size\"] !== undefined) {\n contents.Size = (0, smithy_client_1.strictParseLong)(output[\"Size\"]);\n }\n if (output[\"ChecksumCRC32\"] !== undefined) {\n contents.ChecksumCRC32 = (0, smithy_client_1.expectString)(output[\"ChecksumCRC32\"]);\n }\n if (output[\"ChecksumCRC32C\"] !== undefined) {\n contents.ChecksumCRC32C = (0, smithy_client_1.expectString)(output[\"ChecksumCRC32C\"]);\n }\n if (output[\"ChecksumSHA1\"] !== undefined) {\n contents.ChecksumSHA1 = (0, smithy_client_1.expectString)(output[\"ChecksumSHA1\"]);\n }\n if (output[\"ChecksumSHA256\"] !== undefined) {\n contents.ChecksumSHA256 = (0, smithy_client_1.expectString)(output[\"ChecksumSHA256\"]);\n }\n return contents;\n};\nconst deserializeAws_restXmlObjectVersion = (output, context) => {\n const contents = {\n ETag: undefined,\n ChecksumAlgorithm: undefined,\n Size: undefined,\n StorageClass: undefined,\n Key: undefined,\n VersionId: undefined,\n IsLatest: undefined,\n LastModified: undefined,\n Owner: undefined,\n };\n if (output[\"ETag\"] !== undefined) {\n contents.ETag = (0, smithy_client_1.expectString)(output[\"ETag\"]);\n }\n if (output.ChecksumAlgorithm === \"\") {\n contents.ChecksumAlgorithm = [];\n }\n else if (output[\"ChecksumAlgorithm\"] !== undefined) {\n contents.ChecksumAlgorithm = deserializeAws_restXmlChecksumAlgorithmList((0, smithy_client_1.getArrayIfSingleItem)(output[\"ChecksumAlgorithm\"]), context);\n }\n if (output[\"Size\"] !== undefined) {\n contents.Size = (0, smithy_client_1.strictParseLong)(output[\"Size\"]);\n }\n if (output[\"StorageClass\"] !== undefined) {\n contents.StorageClass = (0, smithy_client_1.expectString)(output[\"StorageClass\"]);\n }\n if (output[\"Key\"] !== undefined) {\n contents.Key = (0, smithy_client_1.expectString)(output[\"Key\"]);\n }\n if (output[\"VersionId\"] !== undefined) {\n contents.VersionId = (0, smithy_client_1.expectString)(output[\"VersionId\"]);\n }\n if (output[\"IsLatest\"] !== undefined) {\n contents.IsLatest = (0, smithy_client_1.parseBoolean)(output[\"IsLatest\"]);\n }\n if (output[\"LastModified\"] !== undefined) {\n contents.LastModified = (0, smithy_client_1.expectNonNull)((0, smithy_client_1.parseRfc3339DateTimeWithOffset)(output[\"LastModified\"]));\n }\n if (output[\"Owner\"] !== undefined) {\n contents.Owner = deserializeAws_restXmlOwner(output[\"Owner\"], context);\n }\n return contents;\n};\nconst deserializeAws_restXmlObjectVersionList = (output, context) => {\n return (output || [])\n .filter((e) => e != null)\n .map((entry) => {\n return deserializeAws_restXmlObjectVersion(entry, context);\n });\n};\nconst deserializeAws_restXmlOwner = (output, context) => {\n const contents = {\n DisplayName: undefined,\n ID: undefined,\n };\n if (output[\"DisplayName\"] !== undefined) {\n contents.DisplayName = (0, smithy_client_1.expectString)(output[\"DisplayName\"]);\n }\n if (output[\"ID\"] !== undefined) {\n contents.ID = (0, smithy_client_1.expectString)(output[\"ID\"]);\n }\n return contents;\n};\nconst deserializeAws_restXmlOwnershipControls = (output, context) => {\n const contents = {\n Rules: undefined,\n };\n if (output.Rule === \"\") {\n contents.Rules = [];\n }\n else if (output[\"Rule\"] !== undefined) {\n contents.Rules = deserializeAws_restXmlOwnershipControlsRules((0, smithy_client_1.getArrayIfSingleItem)(output[\"Rule\"]), context);\n }\n return contents;\n};\nconst deserializeAws_restXmlOwnershipControlsRule = (output, context) => {\n const contents = {\n ObjectOwnership: undefined,\n };\n if (output[\"ObjectOwnership\"] !== undefined) {\n contents.ObjectOwnership = (0, smithy_client_1.expectString)(output[\"ObjectOwnership\"]);\n }\n return contents;\n};\nconst deserializeAws_restXmlOwnershipControlsRules = (output, context) => {\n return (output || [])\n .filter((e) => e != null)\n .map((entry) => {\n return deserializeAws_restXmlOwnershipControlsRule(entry, context);\n });\n};\nconst deserializeAws_restXmlPart = (output, context) => {\n const contents = {\n PartNumber: undefined,\n LastModified: undefined,\n ETag: undefined,\n Size: undefined,\n ChecksumCRC32: undefined,\n ChecksumCRC32C: undefined,\n ChecksumSHA1: undefined,\n ChecksumSHA256: undefined,\n };\n if (output[\"PartNumber\"] !== undefined) {\n contents.PartNumber = (0, smithy_client_1.strictParseInt32)(output[\"PartNumber\"]);\n }\n if (output[\"LastModified\"] !== undefined) {\n contents.LastModified = (0, smithy_client_1.expectNonNull)((0, smithy_client_1.parseRfc3339DateTimeWithOffset)(output[\"LastModified\"]));\n }\n if (output[\"ETag\"] !== undefined) {\n contents.ETag = (0, smithy_client_1.expectString)(output[\"ETag\"]);\n }\n if (output[\"Size\"] !== undefined) {\n contents.Size = (0, smithy_client_1.strictParseLong)(output[\"Size\"]);\n }\n if (output[\"ChecksumCRC32\"] !== undefined) {\n contents.ChecksumCRC32 = (0, smithy_client_1.expectString)(output[\"ChecksumCRC32\"]);\n }\n if (output[\"ChecksumCRC32C\"] !== undefined) {\n contents.ChecksumCRC32C = (0, smithy_client_1.expectString)(output[\"ChecksumCRC32C\"]);\n }\n if (output[\"ChecksumSHA1\"] !== undefined) {\n contents.ChecksumSHA1 = (0, smithy_client_1.expectString)(output[\"ChecksumSHA1\"]);\n }\n if (output[\"ChecksumSHA256\"] !== undefined) {\n contents.ChecksumSHA256 = (0, smithy_client_1.expectString)(output[\"ChecksumSHA256\"]);\n }\n return contents;\n};\nconst deserializeAws_restXmlParts = (output, context) => {\n return (output || [])\n .filter((e) => e != null)\n .map((entry) => {\n return deserializeAws_restXmlPart(entry, context);\n });\n};\nconst deserializeAws_restXmlPartsList = (output, context) => {\n return (output || [])\n .filter((e) => e != null)\n .map((entry) => {\n return deserializeAws_restXmlObjectPart(entry, context);\n });\n};\nconst deserializeAws_restXmlPolicyStatus = (output, context) => {\n const contents = {\n IsPublic: undefined,\n };\n if (output[\"IsPublic\"] !== undefined) {\n contents.IsPublic = (0, smithy_client_1.parseBoolean)(output[\"IsPublic\"]);\n }\n return contents;\n};\nconst deserializeAws_restXmlProgress = (output, context) => {\n const contents = {\n BytesScanned: undefined,\n BytesProcessed: undefined,\n BytesReturned: undefined,\n };\n if (output[\"BytesScanned\"] !== undefined) {\n contents.BytesScanned = (0, smithy_client_1.strictParseLong)(output[\"BytesScanned\"]);\n }\n if (output[\"BytesProcessed\"] !== undefined) {\n contents.BytesProcessed = (0, smithy_client_1.strictParseLong)(output[\"BytesProcessed\"]);\n }\n if (output[\"BytesReturned\"] !== undefined) {\n contents.BytesReturned = (0, smithy_client_1.strictParseLong)(output[\"BytesReturned\"]);\n }\n return contents;\n};\nconst deserializeAws_restXmlPublicAccessBlockConfiguration = (output, context) => {\n const contents = {\n BlockPublicAcls: undefined,\n IgnorePublicAcls: undefined,\n BlockPublicPolicy: undefined,\n RestrictPublicBuckets: undefined,\n };\n if (output[\"BlockPublicAcls\"] !== undefined) {\n contents.BlockPublicAcls = (0, smithy_client_1.parseBoolean)(output[\"BlockPublicAcls\"]);\n }\n if (output[\"IgnorePublicAcls\"] !== undefined) {\n contents.IgnorePublicAcls = (0, smithy_client_1.parseBoolean)(output[\"IgnorePublicAcls\"]);\n }\n if (output[\"BlockPublicPolicy\"] !== undefined) {\n contents.BlockPublicPolicy = (0, smithy_client_1.parseBoolean)(output[\"BlockPublicPolicy\"]);\n }\n if (output[\"RestrictPublicBuckets\"] !== undefined) {\n contents.RestrictPublicBuckets = (0, smithy_client_1.parseBoolean)(output[\"RestrictPublicBuckets\"]);\n }\n return contents;\n};\nconst deserializeAws_restXmlQueueConfiguration = (output, context) => {\n const contents = {\n Id: undefined,\n QueueArn: undefined,\n Events: undefined,\n Filter: undefined,\n };\n if (output[\"Id\"] !== undefined) {\n contents.Id = (0, smithy_client_1.expectString)(output[\"Id\"]);\n }\n if (output[\"Queue\"] !== undefined) {\n contents.QueueArn = (0, smithy_client_1.expectString)(output[\"Queue\"]);\n }\n if (output.Event === \"\") {\n contents.Events = [];\n }\n else if (output[\"Event\"] !== undefined) {\n contents.Events = deserializeAws_restXmlEventList((0, smithy_client_1.getArrayIfSingleItem)(output[\"Event\"]), context);\n }\n if (output[\"Filter\"] !== undefined) {\n contents.Filter = deserializeAws_restXmlNotificationConfigurationFilter(output[\"Filter\"], context);\n }\n return contents;\n};\nconst deserializeAws_restXmlQueueConfigurationList = (output, context) => {\n return (output || [])\n .filter((e) => e != null)\n .map((entry) => {\n return deserializeAws_restXmlQueueConfiguration(entry, context);\n });\n};\nconst deserializeAws_restXmlRedirect = (output, context) => {\n const contents = {\n HostName: undefined,\n HttpRedirectCode: undefined,\n Protocol: undefined,\n ReplaceKeyPrefixWith: undefined,\n ReplaceKeyWith: undefined,\n };\n if (output[\"HostName\"] !== undefined) {\n contents.HostName = (0, smithy_client_1.expectString)(output[\"HostName\"]);\n }\n if (output[\"HttpRedirectCode\"] !== undefined) {\n contents.HttpRedirectCode = (0, smithy_client_1.expectString)(output[\"HttpRedirectCode\"]);\n }\n if (output[\"Protocol\"] !== undefined) {\n contents.Protocol = (0, smithy_client_1.expectString)(output[\"Protocol\"]);\n }\n if (output[\"ReplaceKeyPrefixWith\"] !== undefined) {\n contents.ReplaceKeyPrefixWith = (0, smithy_client_1.expectString)(output[\"ReplaceKeyPrefixWith\"]);\n }\n if (output[\"ReplaceKeyWith\"] !== undefined) {\n contents.ReplaceKeyWith = (0, smithy_client_1.expectString)(output[\"ReplaceKeyWith\"]);\n }\n return contents;\n};\nconst deserializeAws_restXmlRedirectAllRequestsTo = (output, context) => {\n const contents = {\n HostName: undefined,\n Protocol: undefined,\n };\n if (output[\"HostName\"] !== undefined) {\n contents.HostName = (0, smithy_client_1.expectString)(output[\"HostName\"]);\n }\n if (output[\"Protocol\"] !== undefined) {\n contents.Protocol = (0, smithy_client_1.expectString)(output[\"Protocol\"]);\n }\n return contents;\n};\nconst deserializeAws_restXmlReplicaModifications = (output, context) => {\n const contents = {\n Status: undefined,\n };\n if (output[\"Status\"] !== undefined) {\n contents.Status = (0, smithy_client_1.expectString)(output[\"Status\"]);\n }\n return contents;\n};\nconst deserializeAws_restXmlReplicationConfiguration = (output, context) => {\n const contents = {\n Role: undefined,\n Rules: undefined,\n };\n if (output[\"Role\"] !== undefined) {\n contents.Role = (0, smithy_client_1.expectString)(output[\"Role\"]);\n }\n if (output.Rule === \"\") {\n contents.Rules = [];\n }\n else if (output[\"Rule\"] !== undefined) {\n contents.Rules = deserializeAws_restXmlReplicationRules((0, smithy_client_1.getArrayIfSingleItem)(output[\"Rule\"]), context);\n }\n return contents;\n};\nconst deserializeAws_restXmlReplicationRule = (output, context) => {\n const contents = {\n ID: undefined,\n Priority: undefined,\n Prefix: undefined,\n Filter: undefined,\n Status: undefined,\n SourceSelectionCriteria: undefined,\n ExistingObjectReplication: undefined,\n Destination: undefined,\n DeleteMarkerReplication: undefined,\n };\n if (output[\"ID\"] !== undefined) {\n contents.ID = (0, smithy_client_1.expectString)(output[\"ID\"]);\n }\n if (output[\"Priority\"] !== undefined) {\n contents.Priority = (0, smithy_client_1.strictParseInt32)(output[\"Priority\"]);\n }\n if (output[\"Prefix\"] !== undefined) {\n contents.Prefix = (0, smithy_client_1.expectString)(output[\"Prefix\"]);\n }\n if (output.Filter === \"\") {\n }\n else if (output[\"Filter\"] !== undefined) {\n contents.Filter = deserializeAws_restXmlReplicationRuleFilter((0, smithy_client_1.expectUnion)(output[\"Filter\"]), context);\n }\n if (output[\"Status\"] !== undefined) {\n contents.Status = (0, smithy_client_1.expectString)(output[\"Status\"]);\n }\n if (output[\"SourceSelectionCriteria\"] !== undefined) {\n contents.SourceSelectionCriteria = deserializeAws_restXmlSourceSelectionCriteria(output[\"SourceSelectionCriteria\"], context);\n }\n if (output[\"ExistingObjectReplication\"] !== undefined) {\n contents.ExistingObjectReplication = deserializeAws_restXmlExistingObjectReplication(output[\"ExistingObjectReplication\"], context);\n }\n if (output[\"Destination\"] !== undefined) {\n contents.Destination = deserializeAws_restXmlDestination(output[\"Destination\"], context);\n }\n if (output[\"DeleteMarkerReplication\"] !== undefined) {\n contents.DeleteMarkerReplication = deserializeAws_restXmlDeleteMarkerReplication(output[\"DeleteMarkerReplication\"], context);\n }\n return contents;\n};\nconst deserializeAws_restXmlReplicationRuleAndOperator = (output, context) => {\n const contents = {\n Prefix: undefined,\n Tags: undefined,\n };\n if (output[\"Prefix\"] !== undefined) {\n contents.Prefix = (0, smithy_client_1.expectString)(output[\"Prefix\"]);\n }\n if (output.Tag === \"\") {\n contents.Tags = [];\n }\n else if (output[\"Tag\"] !== undefined) {\n contents.Tags = deserializeAws_restXmlTagSet((0, smithy_client_1.getArrayIfSingleItem)(output[\"Tag\"]), context);\n }\n return contents;\n};\nconst deserializeAws_restXmlReplicationRuleFilter = (output, context) => {\n if (output[\"Prefix\"] !== undefined) {\n return {\n Prefix: (0, smithy_client_1.expectString)(output[\"Prefix\"]),\n };\n }\n if (output[\"Tag\"] !== undefined) {\n return {\n Tag: deserializeAws_restXmlTag(output[\"Tag\"], context),\n };\n }\n if (output[\"And\"] !== undefined) {\n return {\n And: deserializeAws_restXmlReplicationRuleAndOperator(output[\"And\"], context),\n };\n }\n return { $unknown: Object.entries(output)[0] };\n};\nconst deserializeAws_restXmlReplicationRules = (output, context) => {\n return (output || [])\n .filter((e) => e != null)\n .map((entry) => {\n return deserializeAws_restXmlReplicationRule(entry, context);\n });\n};\nconst deserializeAws_restXmlReplicationTime = (output, context) => {\n const contents = {\n Status: undefined,\n Time: undefined,\n };\n if (output[\"Status\"] !== undefined) {\n contents.Status = (0, smithy_client_1.expectString)(output[\"Status\"]);\n }\n if (output[\"Time\"] !== undefined) {\n contents.Time = deserializeAws_restXmlReplicationTimeValue(output[\"Time\"], context);\n }\n return contents;\n};\nconst deserializeAws_restXmlReplicationTimeValue = (output, context) => {\n const contents = {\n Minutes: undefined,\n };\n if (output[\"Minutes\"] !== undefined) {\n contents.Minutes = (0, smithy_client_1.strictParseInt32)(output[\"Minutes\"]);\n }\n return contents;\n};\nconst deserializeAws_restXmlRoutingRule = (output, context) => {\n const contents = {\n Condition: undefined,\n Redirect: undefined,\n };\n if (output[\"Condition\"] !== undefined) {\n contents.Condition = deserializeAws_restXmlCondition(output[\"Condition\"], context);\n }\n if (output[\"Redirect\"] !== undefined) {\n contents.Redirect = deserializeAws_restXmlRedirect(output[\"Redirect\"], context);\n }\n return contents;\n};\nconst deserializeAws_restXmlRoutingRules = (output, context) => {\n return (output || [])\n .filter((e) => e != null)\n .map((entry) => {\n return deserializeAws_restXmlRoutingRule(entry, context);\n });\n};\nconst deserializeAws_restXmlS3KeyFilter = (output, context) => {\n const contents = {\n FilterRules: undefined,\n };\n if (output.FilterRule === \"\") {\n contents.FilterRules = [];\n }\n else if (output[\"FilterRule\"] !== undefined) {\n contents.FilterRules = deserializeAws_restXmlFilterRuleList((0, smithy_client_1.getArrayIfSingleItem)(output[\"FilterRule\"]), context);\n }\n return contents;\n};\nconst deserializeAws_restXmlServerSideEncryptionByDefault = (output, context) => {\n const contents = {\n SSEAlgorithm: undefined,\n KMSMasterKeyID: undefined,\n };\n if (output[\"SSEAlgorithm\"] !== undefined) {\n contents.SSEAlgorithm = (0, smithy_client_1.expectString)(output[\"SSEAlgorithm\"]);\n }\n if (output[\"KMSMasterKeyID\"] !== undefined) {\n contents.KMSMasterKeyID = (0, smithy_client_1.expectString)(output[\"KMSMasterKeyID\"]);\n }\n return contents;\n};\nconst deserializeAws_restXmlServerSideEncryptionConfiguration = (output, context) => {\n const contents = {\n Rules: undefined,\n };\n if (output.Rule === \"\") {\n contents.Rules = [];\n }\n else if (output[\"Rule\"] !== undefined) {\n contents.Rules = deserializeAws_restXmlServerSideEncryptionRules((0, smithy_client_1.getArrayIfSingleItem)(output[\"Rule\"]), context);\n }\n return contents;\n};\nconst deserializeAws_restXmlServerSideEncryptionRule = (output, context) => {\n const contents = {\n ApplyServerSideEncryptionByDefault: undefined,\n BucketKeyEnabled: undefined,\n };\n if (output[\"ApplyServerSideEncryptionByDefault\"] !== undefined) {\n contents.ApplyServerSideEncryptionByDefault = deserializeAws_restXmlServerSideEncryptionByDefault(output[\"ApplyServerSideEncryptionByDefault\"], context);\n }\n if (output[\"BucketKeyEnabled\"] !== undefined) {\n contents.BucketKeyEnabled = (0, smithy_client_1.parseBoolean)(output[\"BucketKeyEnabled\"]);\n }\n return contents;\n};\nconst deserializeAws_restXmlServerSideEncryptionRules = (output, context) => {\n return (output || [])\n .filter((e) => e != null)\n .map((entry) => {\n return deserializeAws_restXmlServerSideEncryptionRule(entry, context);\n });\n};\nconst deserializeAws_restXmlSourceSelectionCriteria = (output, context) => {\n const contents = {\n SseKmsEncryptedObjects: undefined,\n ReplicaModifications: undefined,\n };\n if (output[\"SseKmsEncryptedObjects\"] !== undefined) {\n contents.SseKmsEncryptedObjects = deserializeAws_restXmlSseKmsEncryptedObjects(output[\"SseKmsEncryptedObjects\"], context);\n }\n if (output[\"ReplicaModifications\"] !== undefined) {\n contents.ReplicaModifications = deserializeAws_restXmlReplicaModifications(output[\"ReplicaModifications\"], context);\n }\n return contents;\n};\nconst deserializeAws_restXmlSSEKMS = (output, context) => {\n const contents = {\n KeyId: undefined,\n };\n if (output[\"KeyId\"] !== undefined) {\n contents.KeyId = (0, smithy_client_1.expectString)(output[\"KeyId\"]);\n }\n return contents;\n};\nconst deserializeAws_restXmlSseKmsEncryptedObjects = (output, context) => {\n const contents = {\n Status: undefined,\n };\n if (output[\"Status\"] !== undefined) {\n contents.Status = (0, smithy_client_1.expectString)(output[\"Status\"]);\n }\n return contents;\n};\nconst deserializeAws_restXmlSSES3 = (output, context) => {\n const contents = {};\n return contents;\n};\nconst deserializeAws_restXmlStats = (output, context) => {\n const contents = {\n BytesScanned: undefined,\n BytesProcessed: undefined,\n BytesReturned: undefined,\n };\n if (output[\"BytesScanned\"] !== undefined) {\n contents.BytesScanned = (0, smithy_client_1.strictParseLong)(output[\"BytesScanned\"]);\n }\n if (output[\"BytesProcessed\"] !== undefined) {\n contents.BytesProcessed = (0, smithy_client_1.strictParseLong)(output[\"BytesProcessed\"]);\n }\n if (output[\"BytesReturned\"] !== undefined) {\n contents.BytesReturned = (0, smithy_client_1.strictParseLong)(output[\"BytesReturned\"]);\n }\n return contents;\n};\nconst deserializeAws_restXmlStorageClassAnalysis = (output, context) => {\n const contents = {\n DataExport: undefined,\n };\n if (output[\"DataExport\"] !== undefined) {\n contents.DataExport = deserializeAws_restXmlStorageClassAnalysisDataExport(output[\"DataExport\"], context);\n }\n return contents;\n};\nconst deserializeAws_restXmlStorageClassAnalysisDataExport = (output, context) => {\n const contents = {\n OutputSchemaVersion: undefined,\n Destination: undefined,\n };\n if (output[\"OutputSchemaVersion\"] !== undefined) {\n contents.OutputSchemaVersion = (0, smithy_client_1.expectString)(output[\"OutputSchemaVersion\"]);\n }\n if (output[\"Destination\"] !== undefined) {\n contents.Destination = deserializeAws_restXmlAnalyticsExportDestination(output[\"Destination\"], context);\n }\n return contents;\n};\nconst deserializeAws_restXmlTag = (output, context) => {\n const contents = {\n Key: undefined,\n Value: undefined,\n };\n if (output[\"Key\"] !== undefined) {\n contents.Key = (0, smithy_client_1.expectString)(output[\"Key\"]);\n }\n if (output[\"Value\"] !== undefined) {\n contents.Value = (0, smithy_client_1.expectString)(output[\"Value\"]);\n }\n return contents;\n};\nconst deserializeAws_restXmlTagSet = (output, context) => {\n return (output || [])\n .filter((e) => e != null)\n .map((entry) => {\n return deserializeAws_restXmlTag(entry, context);\n });\n};\nconst deserializeAws_restXmlTargetGrant = (output, context) => {\n const contents = {\n Grantee: undefined,\n Permission: undefined,\n };\n if (output[\"Grantee\"] !== undefined) {\n contents.Grantee = deserializeAws_restXmlGrantee(output[\"Grantee\"], context);\n }\n if (output[\"Permission\"] !== undefined) {\n contents.Permission = (0, smithy_client_1.expectString)(output[\"Permission\"]);\n }\n return contents;\n};\nconst deserializeAws_restXmlTargetGrants = (output, context) => {\n return (output || [])\n .filter((e) => e != null)\n .map((entry) => {\n return deserializeAws_restXmlTargetGrant(entry, context);\n });\n};\nconst deserializeAws_restXmlTiering = (output, context) => {\n const contents = {\n Days: undefined,\n AccessTier: undefined,\n };\n if (output[\"Days\"] !== undefined) {\n contents.Days = (0, smithy_client_1.strictParseInt32)(output[\"Days\"]);\n }\n if (output[\"AccessTier\"] !== undefined) {\n contents.AccessTier = (0, smithy_client_1.expectString)(output[\"AccessTier\"]);\n }\n return contents;\n};\nconst deserializeAws_restXmlTieringList = (output, context) => {\n return (output || [])\n .filter((e) => e != null)\n .map((entry) => {\n return deserializeAws_restXmlTiering(entry, context);\n });\n};\nconst deserializeAws_restXmlTopicConfiguration = (output, context) => {\n const contents = {\n Id: undefined,\n TopicArn: undefined,\n Events: undefined,\n Filter: undefined,\n };\n if (output[\"Id\"] !== undefined) {\n contents.Id = (0, smithy_client_1.expectString)(output[\"Id\"]);\n }\n if (output[\"Topic\"] !== undefined) {\n contents.TopicArn = (0, smithy_client_1.expectString)(output[\"Topic\"]);\n }\n if (output.Event === \"\") {\n contents.Events = [];\n }\n else if (output[\"Event\"] !== undefined) {\n contents.Events = deserializeAws_restXmlEventList((0, smithy_client_1.getArrayIfSingleItem)(output[\"Event\"]), context);\n }\n if (output[\"Filter\"] !== undefined) {\n contents.Filter = deserializeAws_restXmlNotificationConfigurationFilter(output[\"Filter\"], context);\n }\n return contents;\n};\nconst deserializeAws_restXmlTopicConfigurationList = (output, context) => {\n return (output || [])\n .filter((e) => e != null)\n .map((entry) => {\n return deserializeAws_restXmlTopicConfiguration(entry, context);\n });\n};\nconst deserializeAws_restXmlTransition = (output, context) => {\n const contents = {\n Date: undefined,\n Days: undefined,\n StorageClass: undefined,\n };\n if (output[\"Date\"] !== undefined) {\n contents.Date = (0, smithy_client_1.expectNonNull)((0, smithy_client_1.parseRfc3339DateTimeWithOffset)(output[\"Date\"]));\n }\n if (output[\"Days\"] !== undefined) {\n contents.Days = (0, smithy_client_1.strictParseInt32)(output[\"Days\"]);\n }\n if (output[\"StorageClass\"] !== undefined) {\n contents.StorageClass = (0, smithy_client_1.expectString)(output[\"StorageClass\"]);\n }\n return contents;\n};\nconst deserializeAws_restXmlTransitionList = (output, context) => {\n return (output || [])\n .filter((e) => e != null)\n .map((entry) => {\n return deserializeAws_restXmlTransition(entry, context);\n });\n};\nconst deserializeMetadata = (output) => ({\n httpStatusCode: output.statusCode,\n requestId: output.headers[\"x-amzn-requestid\"] ?? output.headers[\"x-amzn-request-id\"] ?? output.headers[\"x-amz-request-id\"],\n extendedRequestId: output.headers[\"x-amz-id-2\"],\n cfId: output.headers[\"x-amz-cf-id\"],\n});\nconst collectBody = (streamBody = new Uint8Array(), context) => {\n if (streamBody instanceof Uint8Array) {\n return Promise.resolve(streamBody);\n }\n return context.streamCollector(streamBody) || Promise.resolve(new Uint8Array());\n};\nconst collectBodyString = (streamBody, context) => collectBody(streamBody, context).then((body) => context.utf8Encoder(body));\nconst isSerializableHeaderValue = (value) => value !== undefined &&\n value !== null &&\n value !== \"\" &&\n (!Object.getOwnPropertyNames(value).includes(\"length\") || value.length != 0) &&\n (!Object.getOwnPropertyNames(value).includes(\"size\") || value.size != 0);\nconst parseBody = (streamBody, context) => collectBodyString(streamBody, context).then((encoded) => {\n if (encoded.length) {\n const parser = new fast_xml_parser_1.XMLParser({\n attributeNamePrefix: \"\",\n htmlEntities: true,\n ignoreAttributes: false,\n ignoreDeclaration: true,\n parseTagValue: false,\n trimValues: false,\n tagValueProcessor: (_, val) => (val.trim() === \"\" && val.includes(\"\\n\") ? \"\" : undefined),\n });\n parser.addEntity(\"#xD\", \"\\r\");\n parser.addEntity(\"#10\", \"\\n\");\n const parsedObj = parser.parse(encoded);\n const textNodeName = \"#text\";\n const key = Object.keys(parsedObj)[0];\n const parsedObjToReturn = parsedObj[key];\n if (parsedObjToReturn[textNodeName]) {\n parsedObjToReturn[key] = parsedObjToReturn[textNodeName];\n delete parsedObjToReturn[textNodeName];\n }\n return (0, smithy_client_1.getValueFromTextNode)(parsedObjToReturn);\n }\n return {};\n});\nconst parseErrorBody = async (errorBody, context) => {\n const value = await parseBody(errorBody, context);\n if (value.Error) {\n value.Error.message = value.Error.message ?? value.Error.Message;\n }\n return value;\n};\nconst loadRestXmlErrorCode = (output, data) => {\n if (data?.Code !== undefined) {\n return data.Code;\n }\n if (output.statusCode == 404) {\n return \"NotFound\";\n }\n};\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AbortMultipartUploadCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_restXml_1 = require(\"../protocols/Aws_restXml\");\nclass AbortMultipartUploadCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, AbortMultipartUploadCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"AbortMultipartUploadCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.AbortMultipartUploadRequestFilterSensitiveLog,\n outputFilterSensitiveLog: models_0_1.AbortMultipartUploadOutputFilterSensitiveLog,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_restXml_1.serializeAws_restXmlAbortMultipartUploadCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_restXml_1.deserializeAws_restXmlAbortMultipartUploadCommand)(output, context);\n }\n}\nexports.AbortMultipartUploadCommand = AbortMultipartUploadCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getCheckContentLengthHeaderPlugin = exports.checkContentLengthHeaderMiddlewareOptions = exports.checkContentLengthHeader = void 0;\nconst protocol_http_1 = require(\"@aws-sdk/protocol-http\");\nconst CONTENT_LENGTH_HEADER = \"content-length\";\nfunction checkContentLengthHeader() {\n return (next, context) => async (args) => {\n var _a;\n const { request } = args;\n if (protocol_http_1.HttpRequest.isInstance(request)) {\n if (!request.headers[CONTENT_LENGTH_HEADER]) {\n const message = `Are you using a Stream of unknown length as the Body of a PutObject request? Consider using Upload instead from @aws-sdk/lib-storage.`;\n if (typeof ((_a = context === null || context === void 0 ? void 0 : context.logger) === null || _a === void 0 ? void 0 : _a.warn) === \"function\") {\n context.logger.warn(message);\n }\n else {\n console.warn(message);\n }\n }\n }\n return next({ ...args });\n };\n}\nexports.checkContentLengthHeader = checkContentLengthHeader;\nexports.checkContentLengthHeaderMiddlewareOptions = {\n step: \"finalizeRequest\",\n tags: [\"CHECK_CONTENT_LENGTH_HEADER\"],\n name: \"getCheckContentLengthHeaderPlugin\",\n override: true,\n};\nconst getCheckContentLengthHeaderPlugin = (unused) => ({\n applyToStack: (clientStack) => {\n clientStack.add(checkContentLengthHeader(), exports.checkContentLengthHeaderMiddlewareOptions);\n },\n});\nexports.getCheckContentLengthHeaderPlugin = getCheckContentLengthHeaderPlugin;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.resolveS3Config = void 0;\nconst resolveS3Config = (input) => {\n var _a, _b, _c;\n return ({\n ...input,\n forcePathStyle: (_a = input.forcePathStyle) !== null && _a !== void 0 ? _a : false,\n useAccelerateEndpoint: (_b = input.useAccelerateEndpoint) !== null && _b !== void 0 ? _b : false,\n disableMultiregionAccessPoints: (_c = input.disableMultiregionAccessPoints) !== null && _c !== void 0 ? _c : false,\n });\n};\nexports.resolveS3Config = resolveS3Config;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getThrow200ExceptionsPlugin = exports.throw200ExceptionsMiddlewareOptions = exports.throw200ExceptionsMiddleware = void 0;\nconst protocol_http_1 = require(\"@aws-sdk/protocol-http\");\nconst throw200ExceptionsMiddleware = (config) => (next) => async (args) => {\n const result = await next(args);\n const { response } = result;\n if (!protocol_http_1.HttpResponse.isInstance(response))\n return result;\n const { statusCode, body } = response;\n if (statusCode < 200 || statusCode >= 300)\n return result;\n const bodyBytes = await collectBody(body, config);\n const bodyString = await collectBodyString(bodyBytes, config);\n if (bodyBytes.length === 0) {\n const err = new Error(\"S3 aborted request\");\n err.name = \"InternalError\";\n throw err;\n }\n if (bodyString && bodyString.match(\"\")) {\n response.statusCode = 400;\n }\n response.body = bodyBytes;\n return result;\n};\nexports.throw200ExceptionsMiddleware = throw200ExceptionsMiddleware;\nconst collectBody = (streamBody = new Uint8Array(), context) => {\n if (streamBody instanceof Uint8Array) {\n return Promise.resolve(streamBody);\n }\n return context.streamCollector(streamBody) || Promise.resolve(new Uint8Array());\n};\nconst collectBodyString = (streamBody, context) => collectBody(streamBody, context).then((body) => context.utf8Encoder(body));\nexports.throw200ExceptionsMiddlewareOptions = {\n relation: \"after\",\n toMiddleware: \"deserializerMiddleware\",\n tags: [\"THROW_200_EXCEPTIONS\", \"S3\"],\n name: \"throw200ExceptionsMiddleware\",\n override: true,\n};\nconst getThrow200ExceptionsPlugin = (config) => ({\n applyToStack: (clientStack) => {\n clientStack.addRelativeTo((0, exports.throw200ExceptionsMiddleware)(config), exports.throw200ExceptionsMiddlewareOptions);\n },\n});\nexports.getThrow200ExceptionsPlugin = getThrow200ExceptionsPlugin;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.build = exports.parse = exports.validate = void 0;\nconst validate = (str) => typeof str === \"string\" && str.indexOf(\"arn:\") === 0 && str.split(\":\").length >= 6;\nexports.validate = validate;\nconst parse = (arn) => {\n const segments = arn.split(\":\");\n if (segments.length < 6 || segments[0] !== \"arn\")\n throw new Error(\"Malformed ARN\");\n const [, partition, service, region, accountId, ...resource] = segments;\n return {\n partition,\n service,\n region,\n accountId,\n resource: resource.join(\":\"),\n };\n};\nexports.parse = parse;\nconst build = (arnObject) => {\n const { partition = \"aws\", service, region, accountId, resource } = arnObject;\n if ([service, region, accountId, resource].some((segment) => typeof segment !== \"string\")) {\n throw new Error(\"Input ARN object is invalid\");\n }\n return `arn:${partition}:${service}:${region}:${accountId}:${resource}`;\n};\nexports.build = build;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getValidateBucketNamePlugin = exports.validateBucketNameMiddlewareOptions = exports.validateBucketNameMiddleware = void 0;\nconst util_arn_parser_1 = require(\"@aws-sdk/util-arn-parser\");\nfunction validateBucketNameMiddleware() {\n return (next) => async (args) => {\n const { input: { Bucket }, } = args;\n if (typeof Bucket === \"string\" && !(0, util_arn_parser_1.validate)(Bucket) && Bucket.indexOf(\"/\") >= 0) {\n const err = new Error(`Bucket name shouldn't contain '/', received '${Bucket}'`);\n err.name = \"InvalidBucketName\";\n throw err;\n }\n return next({ ...args });\n };\n}\nexports.validateBucketNameMiddleware = validateBucketNameMiddleware;\nexports.validateBucketNameMiddlewareOptions = {\n step: \"initialize\",\n tags: [\"VALIDATE_BUCKET_NAME\"],\n name: \"validateBucketNameMiddleware\",\n override: true,\n};\nconst getValidateBucketNamePlugin = (unused) => ({\n applyToStack: (clientStack) => {\n clientStack.add(validateBucketNameMiddleware(), exports.validateBucketNameMiddlewareOptions);\n },\n});\nexports.getValidateBucketNamePlugin = getValidateBucketNamePlugin;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./check-content-length-header\"), exports);\ntslib_1.__exportStar(require(\"./configuration\"), exports);\ntslib_1.__exportStar(require(\"./throw-200-exceptions\"), exports);\ntslib_1.__exportStar(require(\"./validate-bucket-name\"), exports);\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getSsecPlugin = exports.ssecMiddlewareOptions = exports.ssecMiddleware = void 0;\nfunction ssecMiddleware(options) {\n return (next) => async (args) => {\n let input = { ...args.input };\n const properties = [\n {\n target: \"SSECustomerKey\",\n hash: \"SSECustomerKeyMD5\",\n },\n {\n target: \"CopySourceSSECustomerKey\",\n hash: \"CopySourceSSECustomerKeyMD5\",\n },\n ];\n for (const prop of properties) {\n const value = input[prop.target];\n if (value) {\n const valueView = ArrayBuffer.isView(value)\n ? new Uint8Array(value.buffer, value.byteOffset, value.byteLength)\n : typeof value === \"string\"\n ? options.utf8Decoder(value)\n : new Uint8Array(value);\n const encoded = options.base64Encoder(valueView);\n const hash = new options.md5();\n hash.update(valueView);\n input = {\n ...input,\n [prop.target]: encoded,\n [prop.hash]: options.base64Encoder(await hash.digest()),\n };\n }\n }\n return next({\n ...args,\n input,\n });\n };\n}\nexports.ssecMiddleware = ssecMiddleware;\nexports.ssecMiddlewareOptions = {\n name: \"ssecMiddleware\",\n step: \"initialize\",\n tags: [\"SSE\"],\n override: true,\n};\nconst getSsecPlugin = (config) => ({\n applyToStack: (clientStack) => {\n clientStack.add(ssecMiddleware(config), exports.ssecMiddlewareOptions);\n },\n});\nexports.getSsecPlugin = getSsecPlugin;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CompleteMultipartUploadCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_sdk_s3_1 = require(\"@aws-sdk/middleware-sdk-s3\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst middleware_ssec_1 = require(\"@aws-sdk/middleware-ssec\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_restXml_1 = require(\"../protocols/Aws_restXml\");\nclass CompleteMultipartUploadCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, CompleteMultipartUploadCommand.getEndpointParameterInstructions()));\n this.middlewareStack.use((0, middleware_sdk_s3_1.getThrow200ExceptionsPlugin)(configuration));\n this.middlewareStack.use((0, middleware_ssec_1.getSsecPlugin)(configuration));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"CompleteMultipartUploadCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.CompleteMultipartUploadRequestFilterSensitiveLog,\n outputFilterSensitiveLog: models_0_1.CompleteMultipartUploadOutputFilterSensitiveLog,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_restXml_1.serializeAws_restXmlCompleteMultipartUploadCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_restXml_1.deserializeAws_restXmlCompleteMultipartUploadCommand)(output, context);\n }\n}\nexports.CompleteMultipartUploadCommand = CompleteMultipartUploadCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CopyObjectCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_sdk_s3_1 = require(\"@aws-sdk/middleware-sdk-s3\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst middleware_ssec_1 = require(\"@aws-sdk/middleware-ssec\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_restXml_1 = require(\"../protocols/Aws_restXml\");\nclass CopyObjectCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, CopyObjectCommand.getEndpointParameterInstructions()));\n this.middlewareStack.use((0, middleware_sdk_s3_1.getThrow200ExceptionsPlugin)(configuration));\n this.middlewareStack.use((0, middleware_ssec_1.getSsecPlugin)(configuration));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"CopyObjectCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.CopyObjectRequestFilterSensitiveLog,\n outputFilterSensitiveLog: models_0_1.CopyObjectOutputFilterSensitiveLog,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_restXml_1.serializeAws_restXmlCopyObjectCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_restXml_1.deserializeAws_restXmlCopyObjectCommand)(output, context);\n }\n}\nexports.CopyObjectCommand = CopyObjectCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getLocationConstraintPlugin = exports.locationConstraintMiddlewareOptions = exports.locationConstraintMiddleware = void 0;\nfunction locationConstraintMiddleware(options) {\n return (next) => async (args) => {\n const { CreateBucketConfiguration } = args.input;\n const region = await options.region();\n if (!CreateBucketConfiguration || !CreateBucketConfiguration.LocationConstraint) {\n args = {\n ...args,\n input: {\n ...args.input,\n CreateBucketConfiguration: region === \"us-east-1\" ? undefined : { LocationConstraint: region },\n },\n };\n }\n return next(args);\n };\n}\nexports.locationConstraintMiddleware = locationConstraintMiddleware;\nexports.locationConstraintMiddlewareOptions = {\n step: \"initialize\",\n tags: [\"LOCATION_CONSTRAINT\", \"CREATE_BUCKET_CONFIGURATION\"],\n name: \"locationConstraintMiddleware\",\n override: true,\n};\nconst getLocationConstraintPlugin = (config) => ({\n applyToStack: (clientStack) => {\n clientStack.add(locationConstraintMiddleware(config), exports.locationConstraintMiddlewareOptions);\n },\n});\nexports.getLocationConstraintPlugin = getLocationConstraintPlugin;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CreateBucketCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_location_constraint_1 = require(\"@aws-sdk/middleware-location-constraint\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_restXml_1 = require(\"../protocols/Aws_restXml\");\nclass CreateBucketCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n DisableAccessPoints: { type: \"staticContextParams\", value: true },\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, CreateBucketCommand.getEndpointParameterInstructions()));\n this.middlewareStack.use((0, middleware_location_constraint_1.getLocationConstraintPlugin)(configuration));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"CreateBucketCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.CreateBucketRequestFilterSensitiveLog,\n outputFilterSensitiveLog: models_0_1.CreateBucketOutputFilterSensitiveLog,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_restXml_1.serializeAws_restXmlCreateBucketCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_restXml_1.deserializeAws_restXmlCreateBucketCommand)(output, context);\n }\n}\nexports.CreateBucketCommand = CreateBucketCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CreateMultipartUploadCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst middleware_ssec_1 = require(\"@aws-sdk/middleware-ssec\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_restXml_1 = require(\"../protocols/Aws_restXml\");\nclass CreateMultipartUploadCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, CreateMultipartUploadCommand.getEndpointParameterInstructions()));\n this.middlewareStack.use((0, middleware_ssec_1.getSsecPlugin)(configuration));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"CreateMultipartUploadCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.CreateMultipartUploadRequestFilterSensitiveLog,\n outputFilterSensitiveLog: models_0_1.CreateMultipartUploadOutputFilterSensitiveLog,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_restXml_1.serializeAws_restXmlCreateMultipartUploadCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_restXml_1.deserializeAws_restXmlCreateMultipartUploadCommand)(output, context);\n }\n}\nexports.CreateMultipartUploadCommand = CreateMultipartUploadCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DeleteBucketAnalyticsConfigurationCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_restXml_1 = require(\"../protocols/Aws_restXml\");\nclass DeleteBucketAnalyticsConfigurationCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, DeleteBucketAnalyticsConfigurationCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"DeleteBucketAnalyticsConfigurationCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.DeleteBucketAnalyticsConfigurationRequestFilterSensitiveLog,\n outputFilterSensitiveLog: (output) => output,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_restXml_1.serializeAws_restXmlDeleteBucketAnalyticsConfigurationCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_restXml_1.deserializeAws_restXmlDeleteBucketAnalyticsConfigurationCommand)(output, context);\n }\n}\nexports.DeleteBucketAnalyticsConfigurationCommand = DeleteBucketAnalyticsConfigurationCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DeleteBucketCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_restXml_1 = require(\"../protocols/Aws_restXml\");\nclass DeleteBucketCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, DeleteBucketCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"DeleteBucketCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.DeleteBucketRequestFilterSensitiveLog,\n outputFilterSensitiveLog: (output) => output,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_restXml_1.serializeAws_restXmlDeleteBucketCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_restXml_1.deserializeAws_restXmlDeleteBucketCommand)(output, context);\n }\n}\nexports.DeleteBucketCommand = DeleteBucketCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DeleteBucketCorsCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_restXml_1 = require(\"../protocols/Aws_restXml\");\nclass DeleteBucketCorsCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, DeleteBucketCorsCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"DeleteBucketCorsCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.DeleteBucketCorsRequestFilterSensitiveLog,\n outputFilterSensitiveLog: (output) => output,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_restXml_1.serializeAws_restXmlDeleteBucketCorsCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_restXml_1.deserializeAws_restXmlDeleteBucketCorsCommand)(output, context);\n }\n}\nexports.DeleteBucketCorsCommand = DeleteBucketCorsCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DeleteBucketEncryptionCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_restXml_1 = require(\"../protocols/Aws_restXml\");\nclass DeleteBucketEncryptionCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, DeleteBucketEncryptionCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"DeleteBucketEncryptionCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.DeleteBucketEncryptionRequestFilterSensitiveLog,\n outputFilterSensitiveLog: (output) => output,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_restXml_1.serializeAws_restXmlDeleteBucketEncryptionCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_restXml_1.deserializeAws_restXmlDeleteBucketEncryptionCommand)(output, context);\n }\n}\nexports.DeleteBucketEncryptionCommand = DeleteBucketEncryptionCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DeleteBucketIntelligentTieringConfigurationCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_restXml_1 = require(\"../protocols/Aws_restXml\");\nclass DeleteBucketIntelligentTieringConfigurationCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, DeleteBucketIntelligentTieringConfigurationCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"DeleteBucketIntelligentTieringConfigurationCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.DeleteBucketIntelligentTieringConfigurationRequestFilterSensitiveLog,\n outputFilterSensitiveLog: (output) => output,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_restXml_1.serializeAws_restXmlDeleteBucketIntelligentTieringConfigurationCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_restXml_1.deserializeAws_restXmlDeleteBucketIntelligentTieringConfigurationCommand)(output, context);\n }\n}\nexports.DeleteBucketIntelligentTieringConfigurationCommand = DeleteBucketIntelligentTieringConfigurationCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DeleteBucketInventoryConfigurationCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_restXml_1 = require(\"../protocols/Aws_restXml\");\nclass DeleteBucketInventoryConfigurationCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, DeleteBucketInventoryConfigurationCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"DeleteBucketInventoryConfigurationCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.DeleteBucketInventoryConfigurationRequestFilterSensitiveLog,\n outputFilterSensitiveLog: (output) => output,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_restXml_1.serializeAws_restXmlDeleteBucketInventoryConfigurationCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_restXml_1.deserializeAws_restXmlDeleteBucketInventoryConfigurationCommand)(output, context);\n }\n}\nexports.DeleteBucketInventoryConfigurationCommand = DeleteBucketInventoryConfigurationCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DeleteBucketLifecycleCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_restXml_1 = require(\"../protocols/Aws_restXml\");\nclass DeleteBucketLifecycleCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, DeleteBucketLifecycleCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"DeleteBucketLifecycleCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.DeleteBucketLifecycleRequestFilterSensitiveLog,\n outputFilterSensitiveLog: (output) => output,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_restXml_1.serializeAws_restXmlDeleteBucketLifecycleCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_restXml_1.deserializeAws_restXmlDeleteBucketLifecycleCommand)(output, context);\n }\n}\nexports.DeleteBucketLifecycleCommand = DeleteBucketLifecycleCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DeleteBucketMetricsConfigurationCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_restXml_1 = require(\"../protocols/Aws_restXml\");\nclass DeleteBucketMetricsConfigurationCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, DeleteBucketMetricsConfigurationCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"DeleteBucketMetricsConfigurationCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.DeleteBucketMetricsConfigurationRequestFilterSensitiveLog,\n outputFilterSensitiveLog: (output) => output,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_restXml_1.serializeAws_restXmlDeleteBucketMetricsConfigurationCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_restXml_1.deserializeAws_restXmlDeleteBucketMetricsConfigurationCommand)(output, context);\n }\n}\nexports.DeleteBucketMetricsConfigurationCommand = DeleteBucketMetricsConfigurationCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DeleteBucketOwnershipControlsCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_restXml_1 = require(\"../protocols/Aws_restXml\");\nclass DeleteBucketOwnershipControlsCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, DeleteBucketOwnershipControlsCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"DeleteBucketOwnershipControlsCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.DeleteBucketOwnershipControlsRequestFilterSensitiveLog,\n outputFilterSensitiveLog: (output) => output,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_restXml_1.serializeAws_restXmlDeleteBucketOwnershipControlsCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_restXml_1.deserializeAws_restXmlDeleteBucketOwnershipControlsCommand)(output, context);\n }\n}\nexports.DeleteBucketOwnershipControlsCommand = DeleteBucketOwnershipControlsCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DeleteBucketPolicyCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_restXml_1 = require(\"../protocols/Aws_restXml\");\nclass DeleteBucketPolicyCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, DeleteBucketPolicyCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"DeleteBucketPolicyCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.DeleteBucketPolicyRequestFilterSensitiveLog,\n outputFilterSensitiveLog: (output) => output,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_restXml_1.serializeAws_restXmlDeleteBucketPolicyCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_restXml_1.deserializeAws_restXmlDeleteBucketPolicyCommand)(output, context);\n }\n}\nexports.DeleteBucketPolicyCommand = DeleteBucketPolicyCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DeleteBucketReplicationCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_restXml_1 = require(\"../protocols/Aws_restXml\");\nclass DeleteBucketReplicationCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, DeleteBucketReplicationCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"DeleteBucketReplicationCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.DeleteBucketReplicationRequestFilterSensitiveLog,\n outputFilterSensitiveLog: (output) => output,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_restXml_1.serializeAws_restXmlDeleteBucketReplicationCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_restXml_1.deserializeAws_restXmlDeleteBucketReplicationCommand)(output, context);\n }\n}\nexports.DeleteBucketReplicationCommand = DeleteBucketReplicationCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DeleteBucketTaggingCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_restXml_1 = require(\"../protocols/Aws_restXml\");\nclass DeleteBucketTaggingCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, DeleteBucketTaggingCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"DeleteBucketTaggingCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.DeleteBucketTaggingRequestFilterSensitiveLog,\n outputFilterSensitiveLog: (output) => output,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_restXml_1.serializeAws_restXmlDeleteBucketTaggingCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_restXml_1.deserializeAws_restXmlDeleteBucketTaggingCommand)(output, context);\n }\n}\nexports.DeleteBucketTaggingCommand = DeleteBucketTaggingCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DeleteBucketWebsiteCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_restXml_1 = require(\"../protocols/Aws_restXml\");\nclass DeleteBucketWebsiteCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, DeleteBucketWebsiteCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"DeleteBucketWebsiteCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.DeleteBucketWebsiteRequestFilterSensitiveLog,\n outputFilterSensitiveLog: (output) => output,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_restXml_1.serializeAws_restXmlDeleteBucketWebsiteCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_restXml_1.deserializeAws_restXmlDeleteBucketWebsiteCommand)(output, context);\n }\n}\nexports.DeleteBucketWebsiteCommand = DeleteBucketWebsiteCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DeleteObjectCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_restXml_1 = require(\"../protocols/Aws_restXml\");\nclass DeleteObjectCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, DeleteObjectCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"DeleteObjectCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.DeleteObjectRequestFilterSensitiveLog,\n outputFilterSensitiveLog: models_0_1.DeleteObjectOutputFilterSensitiveLog,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_restXml_1.serializeAws_restXmlDeleteObjectCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_restXml_1.deserializeAws_restXmlDeleteObjectCommand)(output, context);\n }\n}\nexports.DeleteObjectCommand = DeleteObjectCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ChecksumLocation = exports.ChecksumAlgorithm = void 0;\nvar ChecksumAlgorithm;\n(function (ChecksumAlgorithm) {\n ChecksumAlgorithm[\"MD5\"] = \"MD5\";\n ChecksumAlgorithm[\"CRC32\"] = \"CRC32\";\n ChecksumAlgorithm[\"CRC32C\"] = \"CRC32C\";\n ChecksumAlgorithm[\"SHA1\"] = \"SHA1\";\n ChecksumAlgorithm[\"SHA256\"] = \"SHA256\";\n})(ChecksumAlgorithm = exports.ChecksumAlgorithm || (exports.ChecksumAlgorithm = {}));\nvar ChecksumLocation;\n(function (ChecksumLocation) {\n ChecksumLocation[\"HEADER\"] = \"header\";\n ChecksumLocation[\"TRAILER\"] = \"trailer\";\n})(ChecksumLocation = exports.ChecksumLocation || (exports.ChecksumLocation = {}));\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PRIORITY_ORDER_ALGORITHMS = exports.CLIENT_SUPPORTED_ALGORITHMS = void 0;\nconst constants_1 = require(\"./constants\");\nexports.CLIENT_SUPPORTED_ALGORITHMS = [\n constants_1.ChecksumAlgorithm.CRC32,\n constants_1.ChecksumAlgorithm.CRC32C,\n constants_1.ChecksumAlgorithm.SHA1,\n constants_1.ChecksumAlgorithm.SHA256,\n];\nexports.PRIORITY_ORDER_ALGORITHMS = [\n constants_1.ChecksumAlgorithm.CRC32,\n constants_1.ChecksumAlgorithm.CRC32C,\n constants_1.ChecksumAlgorithm.SHA1,\n constants_1.ChecksumAlgorithm.SHA256,\n];\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getChecksumAlgorithmForRequest = void 0;\nconst constants_1 = require(\"./constants\");\nconst types_1 = require(\"./types\");\nconst getChecksumAlgorithmForRequest = (input, { requestChecksumRequired, requestAlgorithmMember }) => {\n if (!requestAlgorithmMember || !input[requestAlgorithmMember]) {\n return requestChecksumRequired ? constants_1.ChecksumAlgorithm.MD5 : undefined;\n }\n const checksumAlgorithm = input[requestAlgorithmMember];\n if (!types_1.CLIENT_SUPPORTED_ALGORITHMS.includes(checksumAlgorithm)) {\n throw new Error(`The checksum algorithm \"${checksumAlgorithm}\" is not supported by the client.` +\n ` Select one of ${types_1.CLIENT_SUPPORTED_ALGORITHMS}.`);\n }\n return checksumAlgorithm;\n};\nexports.getChecksumAlgorithmForRequest = getChecksumAlgorithmForRequest;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getChecksumLocationName = void 0;\nconst constants_1 = require(\"./constants\");\nconst getChecksumLocationName = (algorithm) => algorithm === constants_1.ChecksumAlgorithm.MD5 ? \"content-md5\" : `x-amz-checksum-${algorithm.toLowerCase()}`;\nexports.getChecksumLocationName = getChecksumLocationName;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.hasHeader = void 0;\nconst hasHeader = (header, headers) => {\n const soughtHeader = header.toLowerCase();\n for (const headerName of Object.keys(headers)) {\n if (soughtHeader === headerName.toLowerCase()) {\n return true;\n }\n }\n return false;\n};\nexports.hasHeader = hasHeader;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isStreaming = void 0;\nconst is_array_buffer_1 = require(\"@aws-sdk/is-array-buffer\");\nconst isStreaming = (body) => body !== undefined && typeof body !== \"string\" && !ArrayBuffer.isView(body) && !(0, is_array_buffer_1.isArrayBuffer)(body);\nexports.isStreaming = isStreaming;\n", "/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n\r\n/* global global, define, System, Reflect, Promise */\r\nvar __extends;\r\nvar __assign;\r\nvar __rest;\r\nvar __decorate;\r\nvar __param;\r\nvar __metadata;\r\nvar __awaiter;\r\nvar __generator;\r\nvar __exportStar;\r\nvar __values;\r\nvar __read;\r\nvar __spread;\r\nvar __spreadArrays;\r\nvar __await;\r\nvar __asyncGenerator;\r\nvar __asyncDelegator;\r\nvar __asyncValues;\r\nvar __makeTemplateObject;\r\nvar __importStar;\r\nvar __importDefault;\r\nvar __classPrivateFieldGet;\r\nvar __classPrivateFieldSet;\r\nvar __createBinding;\r\n(function (factory) {\r\n var root = typeof global === \"object\" ? global : typeof self === \"object\" ? self : typeof this === \"object\" ? this : {};\r\n if (typeof define === \"function\" && define.amd) {\r\n define(\"tslib\", [\"exports\"], function (exports) { factory(createExporter(root, createExporter(exports))); });\r\n }\r\n else if (typeof module === \"object\" && typeof module.exports === \"object\") {\r\n factory(createExporter(root, createExporter(module.exports)));\r\n }\r\n else {\r\n factory(createExporter(root));\r\n }\r\n function createExporter(exports, previous) {\r\n if (exports !== root) {\r\n if (typeof Object.create === \"function\") {\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n }\r\n else {\r\n exports.__esModule = true;\r\n }\r\n }\r\n return function (id, v) { return exports[id] = previous ? previous(id, v) : v; };\r\n }\r\n})\r\n(function (exporter) {\r\n var extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n\r\n __extends = function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n\r\n __assign = Object.assign || function (t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n\r\n __rest = function (s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n };\r\n\r\n __decorate = function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n };\r\n\r\n __param = function (paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n };\r\n\r\n __metadata = function (metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n };\r\n\r\n __awaiter = function (thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n };\r\n\r\n __generator = function (thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n };\r\n\r\n __createBinding = function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n };\r\n\r\n __exportStar = function (m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n };\r\n\r\n __values = function (o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n };\r\n\r\n __read = function (o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n };\r\n\r\n __spread = function () {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n };\r\n\r\n __spreadArrays = function () {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n };\r\n\r\n __await = function (v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n };\r\n\r\n __asyncGenerator = function (thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n };\r\n\r\n __asyncDelegator = function (o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n };\r\n\r\n __asyncValues = function (o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n };\r\n\r\n __makeTemplateObject = function (cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n };\r\n\r\n __importStar = function (mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result[\"default\"] = mod;\r\n return result;\r\n };\r\n\r\n __importDefault = function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n };\r\n\r\n __classPrivateFieldGet = function (receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n };\r\n\r\n __classPrivateFieldSet = function (receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n };\r\n\r\n exporter(\"__extends\", __extends);\r\n exporter(\"__assign\", __assign);\r\n exporter(\"__rest\", __rest);\r\n exporter(\"__decorate\", __decorate);\r\n exporter(\"__param\", __param);\r\n exporter(\"__metadata\", __metadata);\r\n exporter(\"__awaiter\", __awaiter);\r\n exporter(\"__generator\", __generator);\r\n exporter(\"__exportStar\", __exportStar);\r\n exporter(\"__createBinding\", __createBinding);\r\n exporter(\"__values\", __values);\r\n exporter(\"__read\", __read);\r\n exporter(\"__spread\", __spread);\r\n exporter(\"__spreadArrays\", __spreadArrays);\r\n exporter(\"__await\", __await);\r\n exporter(\"__asyncGenerator\", __asyncGenerator);\r\n exporter(\"__asyncDelegator\", __asyncDelegator);\r\n exporter(\"__asyncValues\", __asyncValues);\r\n exporter(\"__makeTemplateObject\", __makeTemplateObject);\r\n exporter(\"__importStar\", __importStar);\r\n exporter(\"__importDefault\", __importDefault);\r\n exporter(\"__classPrivateFieldGet\", __classPrivateFieldGet);\r\n exporter(\"__classPrivateFieldSet\", __classPrivateFieldSet);\r\n});\r\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.toUtf8 = exports.fromUtf8 = void 0;\nconst fromUtf8 = (input) => {\n const bytes = [];\n for (let i = 0, len = input.length; i < len; i++) {\n const value = input.charCodeAt(i);\n if (value < 0x80) {\n bytes.push(value);\n }\n else if (value < 0x800) {\n bytes.push((value >> 6) | 0b11000000, (value & 0b111111) | 0b10000000);\n }\n else if (i + 1 < input.length && (value & 0xfc00) === 0xd800 && (input.charCodeAt(i + 1) & 0xfc00) === 0xdc00) {\n const surrogatePair = 0x10000 + ((value & 0b1111111111) << 10) + (input.charCodeAt(++i) & 0b1111111111);\n bytes.push((surrogatePair >> 18) | 0b11110000, ((surrogatePair >> 12) & 0b111111) | 0b10000000, ((surrogatePair >> 6) & 0b111111) | 0b10000000, (surrogatePair & 0b111111) | 0b10000000);\n }\n else {\n bytes.push((value >> 12) | 0b11100000, ((value >> 6) & 0b111111) | 0b10000000, (value & 0b111111) | 0b10000000);\n }\n }\n return Uint8Array.from(bytes);\n};\nexports.fromUtf8 = fromUtf8;\nconst toUtf8 = (input) => {\n let decoded = \"\";\n for (let i = 0, len = input.length; i < len; i++) {\n const byte = input[i];\n if (byte < 0x80) {\n decoded += String.fromCharCode(byte);\n }\n else if (0b11000000 <= byte && byte < 0b11100000) {\n const nextByte = input[++i];\n decoded += String.fromCharCode(((byte & 0b11111) << 6) | (nextByte & 0b111111));\n }\n else if (0b11110000 <= byte && byte < 0b101101101) {\n const surrogatePair = [byte, input[++i], input[++i], input[++i]];\n const encoded = \"%\" + surrogatePair.map((byteValue) => byteValue.toString(16)).join(\"%\");\n decoded += decodeURIComponent(encoded);\n }\n else {\n decoded += String.fromCharCode(((byte & 0b1111) << 12) | ((input[++i] & 0b111111) << 6) | (input[++i] & 0b111111));\n }\n }\n return decoded;\n};\nexports.toUtf8 = toUtf8;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.toUtf8 = exports.fromUtf8 = void 0;\nfunction fromUtf8(input) {\n return new TextEncoder().encode(input);\n}\nexports.fromUtf8 = fromUtf8;\nfunction toUtf8(input) {\n return new TextDecoder(\"utf-8\").decode(input);\n}\nexports.toUtf8 = toUtf8;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.toUtf8 = exports.fromUtf8 = void 0;\nconst pureJs_1 = require(\"./pureJs\");\nconst whatwgEncodingApi_1 = require(\"./whatwgEncodingApi\");\nconst fromUtf8 = (input) => typeof TextEncoder === \"function\" ? (0, whatwgEncodingApi_1.fromUtf8)(input) : (0, pureJs_1.fromUtf8)(input);\nexports.fromUtf8 = fromUtf8;\nconst toUtf8 = (input) => typeof TextDecoder === \"function\" ? (0, whatwgEncodingApi_1.toUtf8)(input) : (0, pureJs_1.toUtf8)(input);\nexports.toUtf8 = toUtf8;\n", "// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { SourceData } from \"@aws-sdk/types\";\nimport { fromUtf8 as fromUtf8Browser } from \"@aws-sdk/util-utf8-browser\";\n\n// Quick polyfill\nconst fromUtf8 =\n typeof Buffer !== \"undefined\" && Buffer.from\n ? (input: string) => Buffer.from(input, \"utf8\")\n : fromUtf8Browser;\n\nexport function convertToBuffer(data: SourceData): Uint8Array {\n // Already a Uint8, do nothing\n if (data instanceof Uint8Array) return data;\n\n if (typeof data === \"string\") {\n return fromUtf8(data);\n }\n\n if (ArrayBuffer.isView(data)) {\n return new Uint8Array(\n data.buffer,\n data.byteOffset,\n data.byteLength / Uint8Array.BYTES_PER_ELEMENT\n );\n }\n\n return new Uint8Array(data);\n}\n", "// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { SourceData } from \"@aws-sdk/types\";\n\nexport function isEmptyData(data: SourceData): boolean {\n if (typeof data === \"string\") {\n return data.length === 0;\n }\n\n return data.byteLength === 0;\n}\n", "// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nexport function numToUint8(num: number) {\n return new Uint8Array([\n (num & 0xff000000) >> 24,\n (num & 0x00ff0000) >> 16,\n (num & 0x0000ff00) >> 8,\n num & 0x000000ff,\n ]);\n}\n", "// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\n// IE 11 does not support Array.from, so we do it manually\nexport function uint32ArrayFrom(a_lookUpTable: Array): Uint32Array {\n if (!Uint32Array.from) {\n const return_array = new Uint32Array(a_lookUpTable.length)\n let a_index = 0\n while (a_index < a_lookUpTable.length) {\n return_array[a_index] = a_lookUpTable[a_index]\n a_index += 1\n }\n return return_array\n }\n return Uint32Array.from(a_lookUpTable)\n}\n", "// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nexport { convertToBuffer } from \"./convertToBuffer\";\nexport { isEmptyData } from \"./isEmptyData\";\nexport { numToUint8 } from \"./numToUint8\";\nexport {uint32ArrayFrom} from './uint32ArrayFrom';\n", "// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { SourceData, Checksum } from \"@aws-sdk/types\";\nimport { convertToBuffer, isEmptyData, numToUint8 } from \"@aws-crypto/util\";\nimport { Crc32 } from \"./index\";\n\nexport class AwsCrc32 implements Checksum {\n private crc32 = new Crc32();\n\n update(toHash: SourceData) {\n if (isEmptyData(toHash)) return;\n\n this.crc32.update(convertToBuffer(toHash));\n }\n\n async digest(): Promise {\n return numToUint8(this.crc32.digest());\n }\n\n reset(): void {\n this.crc32 = new Crc32();\n }\n}\n", "import {uint32ArrayFrom} from \"@aws-crypto/util\";\n\nexport function crc32(data: Uint8Array): number {\n return new Crc32().update(data).digest();\n}\n\nexport class Crc32 {\n private checksum = 0xffffffff;\n\n update(data: Uint8Array): this {\n for (const byte of data) {\n this.checksum =\n (this.checksum >>> 8) ^ lookupTable[(this.checksum ^ byte) & 0xff];\n }\n\n return this;\n }\n\n digest(): number {\n return (this.checksum ^ 0xffffffff) >>> 0;\n }\n}\n\n// prettier-ignore\nconst a_lookUpTable = [\n 0x00000000, 0x77073096, 0xEE0E612C, 0x990951BA,\n 0x076DC419, 0x706AF48F, 0xE963A535, 0x9E6495A3,\n 0x0EDB8832, 0x79DCB8A4, 0xE0D5E91E, 0x97D2D988,\n 0x09B64C2B, 0x7EB17CBD, 0xE7B82D07, 0x90BF1D91,\n 0x1DB71064, 0x6AB020F2, 0xF3B97148, 0x84BE41DE,\n 0x1ADAD47D, 0x6DDDE4EB, 0xF4D4B551, 0x83D385C7,\n 0x136C9856, 0x646BA8C0, 0xFD62F97A, 0x8A65C9EC,\n 0x14015C4F, 0x63066CD9, 0xFA0F3D63, 0x8D080DF5,\n 0x3B6E20C8, 0x4C69105E, 0xD56041E4, 0xA2677172,\n 0x3C03E4D1, 0x4B04D447, 0xD20D85FD, 0xA50AB56B,\n 0x35B5A8FA, 0x42B2986C, 0xDBBBC9D6, 0xACBCF940,\n 0x32D86CE3, 0x45DF5C75, 0xDCD60DCF, 0xABD13D59,\n 0x26D930AC, 0x51DE003A, 0xC8D75180, 0xBFD06116,\n 0x21B4F4B5, 0x56B3C423, 0xCFBA9599, 0xB8BDA50F,\n 0x2802B89E, 0x5F058808, 0xC60CD9B2, 0xB10BE924,\n 0x2F6F7C87, 0x58684C11, 0xC1611DAB, 0xB6662D3D,\n 0x76DC4190, 0x01DB7106, 0x98D220BC, 0xEFD5102A,\n 0x71B18589, 0x06B6B51F, 0x9FBFE4A5, 0xE8B8D433,\n 0x7807C9A2, 0x0F00F934, 0x9609A88E, 0xE10E9818,\n 0x7F6A0DBB, 0x086D3D2D, 0x91646C97, 0xE6635C01,\n 0x6B6B51F4, 0x1C6C6162, 0x856530D8, 0xF262004E,\n 0x6C0695ED, 0x1B01A57B, 0x8208F4C1, 0xF50FC457,\n 0x65B0D9C6, 0x12B7E950, 0x8BBEB8EA, 0xFCB9887C,\n 0x62DD1DDF, 0x15DA2D49, 0x8CD37CF3, 0xFBD44C65,\n 0x4DB26158, 0x3AB551CE, 0xA3BC0074, 0xD4BB30E2,\n 0x4ADFA541, 0x3DD895D7, 0xA4D1C46D, 0xD3D6F4FB,\n 0x4369E96A, 0x346ED9FC, 0xAD678846, 0xDA60B8D0,\n 0x44042D73, 0x33031DE5, 0xAA0A4C5F, 0xDD0D7CC9,\n 0x5005713C, 0x270241AA, 0xBE0B1010, 0xC90C2086,\n 0x5768B525, 0x206F85B3, 0xB966D409, 0xCE61E49F,\n 0x5EDEF90E, 0x29D9C998, 0xB0D09822, 0xC7D7A8B4,\n 0x59B33D17, 0x2EB40D81, 0xB7BD5C3B, 0xC0BA6CAD,\n 0xEDB88320, 0x9ABFB3B6, 0x03B6E20C, 0x74B1D29A,\n 0xEAD54739, 0x9DD277AF, 0x04DB2615, 0x73DC1683,\n 0xE3630B12, 0x94643B84, 0x0D6D6A3E, 0x7A6A5AA8,\n 0xE40ECF0B, 0x9309FF9D, 0x0A00AE27, 0x7D079EB1,\n 0xF00F9344, 0x8708A3D2, 0x1E01F268, 0x6906C2FE,\n 0xF762575D, 0x806567CB, 0x196C3671, 0x6E6B06E7,\n 0xFED41B76, 0x89D32BE0, 0x10DA7A5A, 0x67DD4ACC,\n 0xF9B9DF6F, 0x8EBEEFF9, 0x17B7BE43, 0x60B08ED5,\n 0xD6D6A3E8, 0xA1D1937E, 0x38D8C2C4, 0x4FDFF252,\n 0xD1BB67F1, 0xA6BC5767, 0x3FB506DD, 0x48B2364B,\n 0xD80D2BDA, 0xAF0A1B4C, 0x36034AF6, 0x41047A60,\n 0xDF60EFC3, 0xA867DF55, 0x316E8EEF, 0x4669BE79,\n 0xCB61B38C, 0xBC66831A, 0x256FD2A0, 0x5268E236,\n 0xCC0C7795, 0xBB0B4703, 0x220216B9, 0x5505262F,\n 0xC5BA3BBE, 0xB2BD0B28, 0x2BB45A92, 0x5CB36A04,\n 0xC2D7FFA7, 0xB5D0CF31, 0x2CD99E8B, 0x5BDEAE1D,\n 0x9B64C2B0, 0xEC63F226, 0x756AA39C, 0x026D930A,\n 0x9C0906A9, 0xEB0E363F, 0x72076785, 0x05005713,\n 0x95BF4A82, 0xE2B87A14, 0x7BB12BAE, 0x0CB61B38,\n 0x92D28E9B, 0xE5D5BE0D, 0x7CDCEFB7, 0x0BDBDF21,\n 0x86D3D2D4, 0xF1D4E242, 0x68DDB3F8, 0x1FDA836E,\n 0x81BE16CD, 0xF6B9265B, 0x6FB077E1, 0x18B74777,\n 0x88085AE6, 0xFF0F6A70, 0x66063BCA, 0x11010B5C,\n 0x8F659EFF, 0xF862AE69, 0x616BFFD3, 0x166CCF45,\n 0xA00AE278, 0xD70DD2EE, 0x4E048354, 0x3903B3C2,\n 0xA7672661, 0xD06016F7, 0x4969474D, 0x3E6E77DB,\n 0xAED16A4A, 0xD9D65ADC, 0x40DF0B66, 0x37D83BF0,\n 0xA9BCAE53, 0xDEBB9EC5, 0x47B2CF7F, 0x30B5FFE9,\n 0xBDBDF21C, 0xCABAC28A, 0x53B39330, 0x24B4A3A6,\n 0xBAD03605, 0xCDD70693, 0x54DE5729, 0x23D967BF,\n 0xB3667A2E, 0xC4614AB8, 0x5D681B02, 0x2A6F2B94,\n 0xB40BBE37, 0xC30C8EA1, 0x5A05DF1B, 0x2D02EF8D,\n];\nconst lookupTable: Uint32Array = uint32ArrayFrom(a_lookUpTable)\nexport { AwsCrc32 } from \"./aws_crc32\";\n", "/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n\r\n/* global global, define, System, Reflect, Promise */\r\nvar __extends;\r\nvar __assign;\r\nvar __rest;\r\nvar __decorate;\r\nvar __param;\r\nvar __metadata;\r\nvar __awaiter;\r\nvar __generator;\r\nvar __exportStar;\r\nvar __values;\r\nvar __read;\r\nvar __spread;\r\nvar __spreadArrays;\r\nvar __await;\r\nvar __asyncGenerator;\r\nvar __asyncDelegator;\r\nvar __asyncValues;\r\nvar __makeTemplateObject;\r\nvar __importStar;\r\nvar __importDefault;\r\nvar __classPrivateFieldGet;\r\nvar __classPrivateFieldSet;\r\nvar __createBinding;\r\n(function (factory) {\r\n var root = typeof global === \"object\" ? global : typeof self === \"object\" ? self : typeof this === \"object\" ? this : {};\r\n if (typeof define === \"function\" && define.amd) {\r\n define(\"tslib\", [\"exports\"], function (exports) { factory(createExporter(root, createExporter(exports))); });\r\n }\r\n else if (typeof module === \"object\" && typeof module.exports === \"object\") {\r\n factory(createExporter(root, createExporter(module.exports)));\r\n }\r\n else {\r\n factory(createExporter(root));\r\n }\r\n function createExporter(exports, previous) {\r\n if (exports !== root) {\r\n if (typeof Object.create === \"function\") {\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n }\r\n else {\r\n exports.__esModule = true;\r\n }\r\n }\r\n return function (id, v) { return exports[id] = previous ? previous(id, v) : v; };\r\n }\r\n})\r\n(function (exporter) {\r\n var extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n\r\n __extends = function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n\r\n __assign = Object.assign || function (t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n\r\n __rest = function (s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n };\r\n\r\n __decorate = function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n };\r\n\r\n __param = function (paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n };\r\n\r\n __metadata = function (metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n };\r\n\r\n __awaiter = function (thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n };\r\n\r\n __generator = function (thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n };\r\n\r\n __createBinding = function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n };\r\n\r\n __exportStar = function (m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n };\r\n\r\n __values = function (o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n };\r\n\r\n __read = function (o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n };\r\n\r\n __spread = function () {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n };\r\n\r\n __spreadArrays = function () {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n };\r\n\r\n __await = function (v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n };\r\n\r\n __asyncGenerator = function (thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n };\r\n\r\n __asyncDelegator = function (o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n };\r\n\r\n __asyncValues = function (o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n };\r\n\r\n __makeTemplateObject = function (cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n };\r\n\r\n __importStar = function (mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result[\"default\"] = mod;\r\n return result;\r\n };\r\n\r\n __importDefault = function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n };\r\n\r\n __classPrivateFieldGet = function (receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n };\r\n\r\n __classPrivateFieldSet = function (receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n };\r\n\r\n exporter(\"__extends\", __extends);\r\n exporter(\"__assign\", __assign);\r\n exporter(\"__rest\", __rest);\r\n exporter(\"__decorate\", __decorate);\r\n exporter(\"__param\", __param);\r\n exporter(\"__metadata\", __metadata);\r\n exporter(\"__awaiter\", __awaiter);\r\n exporter(\"__generator\", __generator);\r\n exporter(\"__exportStar\", __exportStar);\r\n exporter(\"__createBinding\", __createBinding);\r\n exporter(\"__values\", __values);\r\n exporter(\"__read\", __read);\r\n exporter(\"__spread\", __spread);\r\n exporter(\"__spreadArrays\", __spreadArrays);\r\n exporter(\"__await\", __await);\r\n exporter(\"__asyncGenerator\", __asyncGenerator);\r\n exporter(\"__asyncDelegator\", __asyncDelegator);\r\n exporter(\"__asyncValues\", __asyncValues);\r\n exporter(\"__makeTemplateObject\", __makeTemplateObject);\r\n exporter(\"__importStar\", __importStar);\r\n exporter(\"__importDefault\", __importDefault);\r\n exporter(\"__classPrivateFieldGet\", __classPrivateFieldGet);\r\n exporter(\"__classPrivateFieldSet\", __classPrivateFieldSet);\r\n});\r\n", "// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { Checksum, SourceData } from \"@aws-sdk/types\";\nimport { convertToBuffer, isEmptyData, numToUint8 } from \"@aws-crypto/util\";\nimport { Crc32c } from \"./index\";\n\nexport class AwsCrc32c implements Checksum {\n private crc32c = new Crc32c();\n\n update(toHash: SourceData) {\n if (isEmptyData(toHash)) return;\n\n this.crc32c.update(convertToBuffer(toHash));\n }\n\n async digest(): Promise {\n return numToUint8(this.crc32c.digest());\n }\n\n reset(): void {\n this.crc32c = new Crc32c();\n }\n}\n", "// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport {uint32ArrayFrom} from \"@aws-crypto/util\";\n\nexport function crc32c(data: Uint8Array): number {\n return new Crc32c().update(data).digest();\n}\n\nexport class Crc32c {\n private checksum = 0xffffffff;\n\n update(data: Uint8Array): this {\n for (const byte of data) {\n this.checksum =\n (this.checksum >>> 8) ^ lookupTable[(this.checksum ^ byte) & 0xff];\n }\n\n return this;\n }\n\n digest(): number {\n return (this.checksum ^ 0xffffffff) >>> 0;\n }\n}\n\n// prettier-ignore\nconst a_lookupTable = [\n 0x00000000, 0xF26B8303, 0xE13B70F7, 0x1350F3F4, 0xC79A971F, 0x35F1141C, 0x26A1E7E8, 0xD4CA64EB,\n 0x8AD958CF, 0x78B2DBCC, 0x6BE22838, 0x9989AB3B, 0x4D43CFD0, 0xBF284CD3, 0xAC78BF27, 0x5E133C24,\n 0x105EC76F, 0xE235446C, 0xF165B798, 0x030E349B, 0xD7C45070, 0x25AFD373, 0x36FF2087, 0xC494A384,\n 0x9A879FA0, 0x68EC1CA3, 0x7BBCEF57, 0x89D76C54, 0x5D1D08BF, 0xAF768BBC, 0xBC267848, 0x4E4DFB4B,\n 0x20BD8EDE, 0xD2D60DDD, 0xC186FE29, 0x33ED7D2A, 0xE72719C1, 0x154C9AC2, 0x061C6936, 0xF477EA35,\n 0xAA64D611, 0x580F5512, 0x4B5FA6E6, 0xB93425E5, 0x6DFE410E, 0x9F95C20D, 0x8CC531F9, 0x7EAEB2FA,\n 0x30E349B1, 0xC288CAB2, 0xD1D83946, 0x23B3BA45, 0xF779DEAE, 0x05125DAD, 0x1642AE59, 0xE4292D5A,\n 0xBA3A117E, 0x4851927D, 0x5B016189, 0xA96AE28A, 0x7DA08661, 0x8FCB0562, 0x9C9BF696, 0x6EF07595,\n 0x417B1DBC, 0xB3109EBF, 0xA0406D4B, 0x522BEE48, 0x86E18AA3, 0x748A09A0, 0x67DAFA54, 0x95B17957,\n 0xCBA24573, 0x39C9C670, 0x2A993584, 0xD8F2B687, 0x0C38D26C, 0xFE53516F, 0xED03A29B, 0x1F682198,\n 0x5125DAD3, 0xA34E59D0, 0xB01EAA24, 0x42752927, 0x96BF4DCC, 0x64D4CECF, 0x77843D3B, 0x85EFBE38,\n 0xDBFC821C, 0x2997011F, 0x3AC7F2EB, 0xC8AC71E8, 0x1C661503, 0xEE0D9600, 0xFD5D65F4, 0x0F36E6F7,\n 0x61C69362, 0x93AD1061, 0x80FDE395, 0x72966096, 0xA65C047D, 0x5437877E, 0x4767748A, 0xB50CF789,\n 0xEB1FCBAD, 0x197448AE, 0x0A24BB5A, 0xF84F3859, 0x2C855CB2, 0xDEEEDFB1, 0xCDBE2C45, 0x3FD5AF46,\n 0x7198540D, 0x83F3D70E, 0x90A324FA, 0x62C8A7F9, 0xB602C312, 0x44694011, 0x5739B3E5, 0xA55230E6,\n 0xFB410CC2, 0x092A8FC1, 0x1A7A7C35, 0xE811FF36, 0x3CDB9BDD, 0xCEB018DE, 0xDDE0EB2A, 0x2F8B6829,\n 0x82F63B78, 0x709DB87B, 0x63CD4B8F, 0x91A6C88C, 0x456CAC67, 0xB7072F64, 0xA457DC90, 0x563C5F93,\n 0x082F63B7, 0xFA44E0B4, 0xE9141340, 0x1B7F9043, 0xCFB5F4A8, 0x3DDE77AB, 0x2E8E845F, 0xDCE5075C,\n 0x92A8FC17, 0x60C37F14, 0x73938CE0, 0x81F80FE3, 0x55326B08, 0xA759E80B, 0xB4091BFF, 0x466298FC,\n 0x1871A4D8, 0xEA1A27DB, 0xF94AD42F, 0x0B21572C, 0xDFEB33C7, 0x2D80B0C4, 0x3ED04330, 0xCCBBC033,\n 0xA24BB5A6, 0x502036A5, 0x4370C551, 0xB11B4652, 0x65D122B9, 0x97BAA1BA, 0x84EA524E, 0x7681D14D,\n 0x2892ED69, 0xDAF96E6A, 0xC9A99D9E, 0x3BC21E9D, 0xEF087A76, 0x1D63F975, 0x0E330A81, 0xFC588982,\n 0xB21572C9, 0x407EF1CA, 0x532E023E, 0xA145813D, 0x758FE5D6, 0x87E466D5, 0x94B49521, 0x66DF1622,\n 0x38CC2A06, 0xCAA7A905, 0xD9F75AF1, 0x2B9CD9F2, 0xFF56BD19, 0x0D3D3E1A, 0x1E6DCDEE, 0xEC064EED,\n 0xC38D26C4, 0x31E6A5C7, 0x22B65633, 0xD0DDD530, 0x0417B1DB, 0xF67C32D8, 0xE52CC12C, 0x1747422F,\n 0x49547E0B, 0xBB3FFD08, 0xA86F0EFC, 0x5A048DFF, 0x8ECEE914, 0x7CA56A17, 0x6FF599E3, 0x9D9E1AE0,\n 0xD3D3E1AB, 0x21B862A8, 0x32E8915C, 0xC083125F, 0x144976B4, 0xE622F5B7, 0xF5720643, 0x07198540,\n 0x590AB964, 0xAB613A67, 0xB831C993, 0x4A5A4A90, 0x9E902E7B, 0x6CFBAD78, 0x7FAB5E8C, 0x8DC0DD8F,\n 0xE330A81A, 0x115B2B19, 0x020BD8ED, 0xF0605BEE, 0x24AA3F05, 0xD6C1BC06, 0xC5914FF2, 0x37FACCF1,\n 0x69E9F0D5, 0x9B8273D6, 0x88D28022, 0x7AB90321, 0xAE7367CA, 0x5C18E4C9, 0x4F48173D, 0xBD23943E,\n 0xF36E6F75, 0x0105EC76, 0x12551F82, 0xE03E9C81, 0x34F4F86A, 0xC69F7B69, 0xD5CF889D, 0x27A40B9E,\n 0x79B737BA, 0x8BDCB4B9, 0x988C474D, 0x6AE7C44E, 0xBE2DA0A5, 0x4C4623A6, 0x5F16D052, 0xAD7D5351,\n];\n\nconst lookupTable: Uint32Array = uint32ArrayFrom(a_lookupTable)\nexport { AwsCrc32c } from \"./aws_crc32c\";\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.selectChecksumAlgorithmFunction = void 0;\nconst crc32_1 = require(\"@aws-crypto/crc32\");\nconst crc32c_1 = require(\"@aws-crypto/crc32c\");\nconst constants_1 = require(\"./constants\");\nconst selectChecksumAlgorithmFunction = (checksumAlgorithm, config) => ({\n [constants_1.ChecksumAlgorithm.MD5]: config.md5,\n [constants_1.ChecksumAlgorithm.CRC32]: crc32_1.AwsCrc32,\n [constants_1.ChecksumAlgorithm.CRC32C]: crc32c_1.AwsCrc32c,\n [constants_1.ChecksumAlgorithm.SHA1]: config.sha1,\n [constants_1.ChecksumAlgorithm.SHA256]: config.sha256,\n}[checksumAlgorithm]);\nexports.selectChecksumAlgorithmFunction = selectChecksumAlgorithmFunction;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.stringHasher = void 0;\nconst util_utf8_1 = require(\"@aws-sdk/util-utf8\");\nconst stringHasher = (checksumAlgorithmFn, body) => {\n const hash = new checksumAlgorithmFn();\n hash.update((0, util_utf8_1.toUint8Array)(body || \"\"));\n return hash.digest();\n};\nexports.stringHasher = stringHasher;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getChecksum = void 0;\nconst isStreaming_1 = require(\"./isStreaming\");\nconst stringHasher_1 = require(\"./stringHasher\");\nconst getChecksum = async (body, { streamHasher, checksumAlgorithmFn, base64Encoder }) => {\n const digest = (0, isStreaming_1.isStreaming)(body) ? streamHasher(checksumAlgorithmFn, body) : (0, stringHasher_1.stringHasher)(checksumAlgorithmFn, body);\n return base64Encoder(await digest);\n};\nexports.getChecksum = getChecksum;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getChecksumAlgorithmListForResponse = void 0;\nconst types_1 = require(\"./types\");\nconst getChecksumAlgorithmListForResponse = (responseAlgorithms = []) => {\n const validChecksumAlgorithms = [];\n for (const algorithm of types_1.PRIORITY_ORDER_ALGORITHMS) {\n if (!responseAlgorithms.includes(algorithm) || !types_1.CLIENT_SUPPORTED_ALGORITHMS.includes(algorithm)) {\n continue;\n }\n validChecksumAlgorithms.push(algorithm);\n }\n return validChecksumAlgorithms;\n};\nexports.getChecksumAlgorithmListForResponse = getChecksumAlgorithmListForResponse;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.validateChecksumFromResponse = void 0;\nconst getChecksum_1 = require(\"./getChecksum\");\nconst getChecksumAlgorithmListForResponse_1 = require(\"./getChecksumAlgorithmListForResponse\");\nconst getChecksumLocationName_1 = require(\"./getChecksumLocationName\");\nconst selectChecksumAlgorithmFunction_1 = require(\"./selectChecksumAlgorithmFunction\");\nconst validateChecksumFromResponse = async (response, { config, responseAlgorithms }) => {\n const checksumAlgorithms = (0, getChecksumAlgorithmListForResponse_1.getChecksumAlgorithmListForResponse)(responseAlgorithms);\n const { body: responseBody, headers: responseHeaders } = response;\n for (const algorithm of checksumAlgorithms) {\n const responseHeader = (0, getChecksumLocationName_1.getChecksumLocationName)(algorithm);\n const checksumFromResponse = responseHeaders[responseHeader];\n if (checksumFromResponse) {\n const checksumAlgorithmFn = (0, selectChecksumAlgorithmFunction_1.selectChecksumAlgorithmFunction)(algorithm, config);\n const { streamHasher, base64Encoder } = config;\n const checksum = await (0, getChecksum_1.getChecksum)(responseBody, { streamHasher, checksumAlgorithmFn, base64Encoder });\n if (checksum === checksumFromResponse) {\n break;\n }\n throw new Error(`Checksum mismatch: expected \"${checksum}\" but received \"${checksumFromResponse}\"` +\n ` in response header \"${responseHeader}\".`);\n }\n }\n};\nexports.validateChecksumFromResponse = validateChecksumFromResponse;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.flexibleChecksumsMiddleware = void 0;\nconst protocol_http_1 = require(\"@aws-sdk/protocol-http\");\nconst getChecksumAlgorithmForRequest_1 = require(\"./getChecksumAlgorithmForRequest\");\nconst getChecksumLocationName_1 = require(\"./getChecksumLocationName\");\nconst hasHeader_1 = require(\"./hasHeader\");\nconst isStreaming_1 = require(\"./isStreaming\");\nconst selectChecksumAlgorithmFunction_1 = require(\"./selectChecksumAlgorithmFunction\");\nconst stringHasher_1 = require(\"./stringHasher\");\nconst validateChecksumFromResponse_1 = require(\"./validateChecksumFromResponse\");\nconst flexibleChecksumsMiddleware = (config, middlewareConfig) => (next) => async (args) => {\n if (!protocol_http_1.HttpRequest.isInstance(args.request)) {\n return next(args);\n }\n const { request } = args;\n const { body: requestBody, headers } = request;\n const { base64Encoder, streamHasher } = config;\n const { input, requestChecksumRequired, requestAlgorithmMember } = middlewareConfig;\n const checksumAlgorithm = (0, getChecksumAlgorithmForRequest_1.getChecksumAlgorithmForRequest)(input, {\n requestChecksumRequired,\n requestAlgorithmMember,\n });\n let updatedBody = requestBody;\n let updatedHeaders = headers;\n if (checksumAlgorithm) {\n const checksumLocationName = (0, getChecksumLocationName_1.getChecksumLocationName)(checksumAlgorithm);\n const checksumAlgorithmFn = (0, selectChecksumAlgorithmFunction_1.selectChecksumAlgorithmFunction)(checksumAlgorithm, config);\n if ((0, isStreaming_1.isStreaming)(requestBody)) {\n const { getAwsChunkedEncodingStream, bodyLengthChecker } = config;\n updatedBody = getAwsChunkedEncodingStream(requestBody, {\n base64Encoder,\n bodyLengthChecker,\n checksumLocationName,\n checksumAlgorithmFn,\n streamHasher,\n });\n updatedHeaders = {\n ...headers,\n \"content-encoding\": headers[\"content-encoding\"]\n ? `${headers[\"content-encoding\"]},aws-chunked`\n : \"aws-chunked\",\n \"transfer-encoding\": \"chunked\",\n \"x-amz-decoded-content-length\": headers[\"content-length\"],\n \"x-amz-content-sha256\": \"STREAMING-UNSIGNED-PAYLOAD-TRAILER\",\n \"x-amz-trailer\": checksumLocationName,\n };\n delete updatedHeaders[\"content-length\"];\n }\n else if (!(0, hasHeader_1.hasHeader)(checksumLocationName, headers)) {\n const rawChecksum = await (0, stringHasher_1.stringHasher)(checksumAlgorithmFn, requestBody);\n updatedHeaders = {\n ...headers,\n [checksumLocationName]: base64Encoder(rawChecksum),\n };\n }\n }\n const result = await next({\n ...args,\n request: {\n ...request,\n headers: updatedHeaders,\n body: updatedBody,\n },\n });\n const { requestValidationModeMember, responseAlgorithms } = middlewareConfig;\n if (requestValidationModeMember && input[requestValidationModeMember] === \"ENABLED\") {\n (0, validateChecksumFromResponse_1.validateChecksumFromResponse)(result.response, {\n config,\n responseAlgorithms,\n });\n }\n return result;\n};\nexports.flexibleChecksumsMiddleware = flexibleChecksumsMiddleware;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getFlexibleChecksumsPlugin = exports.flexibleChecksumsMiddlewareOptions = void 0;\nconst flexibleChecksumsMiddleware_1 = require(\"./flexibleChecksumsMiddleware\");\nexports.flexibleChecksumsMiddlewareOptions = {\n name: \"flexibleChecksumsMiddleware\",\n step: \"build\",\n tags: [\"BODY_CHECKSUM\"],\n override: true,\n};\nconst getFlexibleChecksumsPlugin = (config, middlewareConfig) => ({\n applyToStack: (clientStack) => {\n clientStack.add((0, flexibleChecksumsMiddleware_1.flexibleChecksumsMiddleware)(config, middlewareConfig), exports.flexibleChecksumsMiddlewareOptions);\n },\n});\nexports.getFlexibleChecksumsPlugin = getFlexibleChecksumsPlugin;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./constants\"), exports);\ntslib_1.__exportStar(require(\"./flexibleChecksumsMiddleware\"), exports);\ntslib_1.__exportStar(require(\"./getFlexibleChecksumsPlugin\"), exports);\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DeleteObjectsCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_flexible_checksums_1 = require(\"@aws-sdk/middleware-flexible-checksums\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_restXml_1 = require(\"../protocols/Aws_restXml\");\nclass DeleteObjectsCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, DeleteObjectsCommand.getEndpointParameterInstructions()));\n this.middlewareStack.use((0, middleware_flexible_checksums_1.getFlexibleChecksumsPlugin)(configuration, {\n input: this.input,\n requestAlgorithmMember: \"ChecksumAlgorithm\",\n requestChecksumRequired: true,\n }));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"DeleteObjectsCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.DeleteObjectsRequestFilterSensitiveLog,\n outputFilterSensitiveLog: models_0_1.DeleteObjectsOutputFilterSensitiveLog,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_restXml_1.serializeAws_restXmlDeleteObjectsCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_restXml_1.deserializeAws_restXmlDeleteObjectsCommand)(output, context);\n }\n}\nexports.DeleteObjectsCommand = DeleteObjectsCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DeleteObjectTaggingCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_restXml_1 = require(\"../protocols/Aws_restXml\");\nclass DeleteObjectTaggingCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, DeleteObjectTaggingCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"DeleteObjectTaggingCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.DeleteObjectTaggingRequestFilterSensitiveLog,\n outputFilterSensitiveLog: models_0_1.DeleteObjectTaggingOutputFilterSensitiveLog,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_restXml_1.serializeAws_restXmlDeleteObjectTaggingCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_restXml_1.deserializeAws_restXmlDeleteObjectTaggingCommand)(output, context);\n }\n}\nexports.DeleteObjectTaggingCommand = DeleteObjectTaggingCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DeletePublicAccessBlockCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_restXml_1 = require(\"../protocols/Aws_restXml\");\nclass DeletePublicAccessBlockCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, DeletePublicAccessBlockCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"DeletePublicAccessBlockCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.DeletePublicAccessBlockRequestFilterSensitiveLog,\n outputFilterSensitiveLog: (output) => output,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_restXml_1.serializeAws_restXmlDeletePublicAccessBlockCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_restXml_1.deserializeAws_restXmlDeletePublicAccessBlockCommand)(output, context);\n }\n}\nexports.DeletePublicAccessBlockCommand = DeletePublicAccessBlockCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.GetBucketAccelerateConfigurationCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_restXml_1 = require(\"../protocols/Aws_restXml\");\nclass GetBucketAccelerateConfigurationCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, GetBucketAccelerateConfigurationCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"GetBucketAccelerateConfigurationCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.GetBucketAccelerateConfigurationRequestFilterSensitiveLog,\n outputFilterSensitiveLog: models_0_1.GetBucketAccelerateConfigurationOutputFilterSensitiveLog,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_restXml_1.serializeAws_restXmlGetBucketAccelerateConfigurationCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_restXml_1.deserializeAws_restXmlGetBucketAccelerateConfigurationCommand)(output, context);\n }\n}\nexports.GetBucketAccelerateConfigurationCommand = GetBucketAccelerateConfigurationCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.GetBucketAclCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_restXml_1 = require(\"../protocols/Aws_restXml\");\nclass GetBucketAclCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, GetBucketAclCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"GetBucketAclCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.GetBucketAclRequestFilterSensitiveLog,\n outputFilterSensitiveLog: models_0_1.GetBucketAclOutputFilterSensitiveLog,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_restXml_1.serializeAws_restXmlGetBucketAclCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_restXml_1.deserializeAws_restXmlGetBucketAclCommand)(output, context);\n }\n}\nexports.GetBucketAclCommand = GetBucketAclCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.GetBucketAnalyticsConfigurationCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_restXml_1 = require(\"../protocols/Aws_restXml\");\nclass GetBucketAnalyticsConfigurationCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, GetBucketAnalyticsConfigurationCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"GetBucketAnalyticsConfigurationCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.GetBucketAnalyticsConfigurationRequestFilterSensitiveLog,\n outputFilterSensitiveLog: models_0_1.GetBucketAnalyticsConfigurationOutputFilterSensitiveLog,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_restXml_1.serializeAws_restXmlGetBucketAnalyticsConfigurationCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_restXml_1.deserializeAws_restXmlGetBucketAnalyticsConfigurationCommand)(output, context);\n }\n}\nexports.GetBucketAnalyticsConfigurationCommand = GetBucketAnalyticsConfigurationCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.GetBucketCorsCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_restXml_1 = require(\"../protocols/Aws_restXml\");\nclass GetBucketCorsCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, GetBucketCorsCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"GetBucketCorsCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.GetBucketCorsRequestFilterSensitiveLog,\n outputFilterSensitiveLog: models_0_1.GetBucketCorsOutputFilterSensitiveLog,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_restXml_1.serializeAws_restXmlGetBucketCorsCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_restXml_1.deserializeAws_restXmlGetBucketCorsCommand)(output, context);\n }\n}\nexports.GetBucketCorsCommand = GetBucketCorsCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.GetBucketEncryptionCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_restXml_1 = require(\"../protocols/Aws_restXml\");\nclass GetBucketEncryptionCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, GetBucketEncryptionCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"GetBucketEncryptionCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.GetBucketEncryptionRequestFilterSensitiveLog,\n outputFilterSensitiveLog: models_0_1.GetBucketEncryptionOutputFilterSensitiveLog,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_restXml_1.serializeAws_restXmlGetBucketEncryptionCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_restXml_1.deserializeAws_restXmlGetBucketEncryptionCommand)(output, context);\n }\n}\nexports.GetBucketEncryptionCommand = GetBucketEncryptionCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.GetBucketIntelligentTieringConfigurationCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_restXml_1 = require(\"../protocols/Aws_restXml\");\nclass GetBucketIntelligentTieringConfigurationCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, GetBucketIntelligentTieringConfigurationCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"GetBucketIntelligentTieringConfigurationCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.GetBucketIntelligentTieringConfigurationRequestFilterSensitiveLog,\n outputFilterSensitiveLog: models_0_1.GetBucketIntelligentTieringConfigurationOutputFilterSensitiveLog,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_restXml_1.serializeAws_restXmlGetBucketIntelligentTieringConfigurationCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_restXml_1.deserializeAws_restXmlGetBucketIntelligentTieringConfigurationCommand)(output, context);\n }\n}\nexports.GetBucketIntelligentTieringConfigurationCommand = GetBucketIntelligentTieringConfigurationCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.GetBucketInventoryConfigurationCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_restXml_1 = require(\"../protocols/Aws_restXml\");\nclass GetBucketInventoryConfigurationCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, GetBucketInventoryConfigurationCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"GetBucketInventoryConfigurationCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.GetBucketInventoryConfigurationRequestFilterSensitiveLog,\n outputFilterSensitiveLog: models_0_1.GetBucketInventoryConfigurationOutputFilterSensitiveLog,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_restXml_1.serializeAws_restXmlGetBucketInventoryConfigurationCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_restXml_1.deserializeAws_restXmlGetBucketInventoryConfigurationCommand)(output, context);\n }\n}\nexports.GetBucketInventoryConfigurationCommand = GetBucketInventoryConfigurationCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.GetBucketLifecycleConfigurationCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_restXml_1 = require(\"../protocols/Aws_restXml\");\nclass GetBucketLifecycleConfigurationCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, GetBucketLifecycleConfigurationCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"GetBucketLifecycleConfigurationCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.GetBucketLifecycleConfigurationRequestFilterSensitiveLog,\n outputFilterSensitiveLog: models_0_1.GetBucketLifecycleConfigurationOutputFilterSensitiveLog,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_restXml_1.serializeAws_restXmlGetBucketLifecycleConfigurationCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_restXml_1.deserializeAws_restXmlGetBucketLifecycleConfigurationCommand)(output, context);\n }\n}\nexports.GetBucketLifecycleConfigurationCommand = GetBucketLifecycleConfigurationCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.GetBucketLocationCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_restXml_1 = require(\"../protocols/Aws_restXml\");\nclass GetBucketLocationCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, GetBucketLocationCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"GetBucketLocationCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.GetBucketLocationRequestFilterSensitiveLog,\n outputFilterSensitiveLog: models_0_1.GetBucketLocationOutputFilterSensitiveLog,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_restXml_1.serializeAws_restXmlGetBucketLocationCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_restXml_1.deserializeAws_restXmlGetBucketLocationCommand)(output, context);\n }\n}\nexports.GetBucketLocationCommand = GetBucketLocationCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.GetBucketLoggingCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_restXml_1 = require(\"../protocols/Aws_restXml\");\nclass GetBucketLoggingCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, GetBucketLoggingCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"GetBucketLoggingCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.GetBucketLoggingRequestFilterSensitiveLog,\n outputFilterSensitiveLog: models_0_1.GetBucketLoggingOutputFilterSensitiveLog,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_restXml_1.serializeAws_restXmlGetBucketLoggingCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_restXml_1.deserializeAws_restXmlGetBucketLoggingCommand)(output, context);\n }\n}\nexports.GetBucketLoggingCommand = GetBucketLoggingCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.GetBucketMetricsConfigurationCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_restXml_1 = require(\"../protocols/Aws_restXml\");\nclass GetBucketMetricsConfigurationCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, GetBucketMetricsConfigurationCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"GetBucketMetricsConfigurationCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.GetBucketMetricsConfigurationRequestFilterSensitiveLog,\n outputFilterSensitiveLog: models_0_1.GetBucketMetricsConfigurationOutputFilterSensitiveLog,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_restXml_1.serializeAws_restXmlGetBucketMetricsConfigurationCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_restXml_1.deserializeAws_restXmlGetBucketMetricsConfigurationCommand)(output, context);\n }\n}\nexports.GetBucketMetricsConfigurationCommand = GetBucketMetricsConfigurationCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.GetBucketNotificationConfigurationCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_restXml_1 = require(\"../protocols/Aws_restXml\");\nclass GetBucketNotificationConfigurationCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, GetBucketNotificationConfigurationCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"GetBucketNotificationConfigurationCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.GetBucketNotificationConfigurationRequestFilterSensitiveLog,\n outputFilterSensitiveLog: models_0_1.NotificationConfigurationFilterSensitiveLog,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_restXml_1.serializeAws_restXmlGetBucketNotificationConfigurationCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_restXml_1.deserializeAws_restXmlGetBucketNotificationConfigurationCommand)(output, context);\n }\n}\nexports.GetBucketNotificationConfigurationCommand = GetBucketNotificationConfigurationCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.GetBucketOwnershipControlsCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_restXml_1 = require(\"../protocols/Aws_restXml\");\nclass GetBucketOwnershipControlsCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, GetBucketOwnershipControlsCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"GetBucketOwnershipControlsCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.GetBucketOwnershipControlsRequestFilterSensitiveLog,\n outputFilterSensitiveLog: models_0_1.GetBucketOwnershipControlsOutputFilterSensitiveLog,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_restXml_1.serializeAws_restXmlGetBucketOwnershipControlsCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_restXml_1.deserializeAws_restXmlGetBucketOwnershipControlsCommand)(output, context);\n }\n}\nexports.GetBucketOwnershipControlsCommand = GetBucketOwnershipControlsCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.GetBucketPolicyCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_restXml_1 = require(\"../protocols/Aws_restXml\");\nclass GetBucketPolicyCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, GetBucketPolicyCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"GetBucketPolicyCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.GetBucketPolicyRequestFilterSensitiveLog,\n outputFilterSensitiveLog: models_0_1.GetBucketPolicyOutputFilterSensitiveLog,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_restXml_1.serializeAws_restXmlGetBucketPolicyCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_restXml_1.deserializeAws_restXmlGetBucketPolicyCommand)(output, context);\n }\n}\nexports.GetBucketPolicyCommand = GetBucketPolicyCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.GetBucketPolicyStatusCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_restXml_1 = require(\"../protocols/Aws_restXml\");\nclass GetBucketPolicyStatusCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, GetBucketPolicyStatusCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"GetBucketPolicyStatusCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.GetBucketPolicyStatusRequestFilterSensitiveLog,\n outputFilterSensitiveLog: models_0_1.GetBucketPolicyStatusOutputFilterSensitiveLog,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_restXml_1.serializeAws_restXmlGetBucketPolicyStatusCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_restXml_1.deserializeAws_restXmlGetBucketPolicyStatusCommand)(output, context);\n }\n}\nexports.GetBucketPolicyStatusCommand = GetBucketPolicyStatusCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.GetBucketReplicationCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_restXml_1 = require(\"../protocols/Aws_restXml\");\nclass GetBucketReplicationCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, GetBucketReplicationCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"GetBucketReplicationCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.GetBucketReplicationRequestFilterSensitiveLog,\n outputFilterSensitiveLog: models_0_1.GetBucketReplicationOutputFilterSensitiveLog,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_restXml_1.serializeAws_restXmlGetBucketReplicationCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_restXml_1.deserializeAws_restXmlGetBucketReplicationCommand)(output, context);\n }\n}\nexports.GetBucketReplicationCommand = GetBucketReplicationCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.GetBucketRequestPaymentCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_restXml_1 = require(\"../protocols/Aws_restXml\");\nclass GetBucketRequestPaymentCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, GetBucketRequestPaymentCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"GetBucketRequestPaymentCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.GetBucketRequestPaymentRequestFilterSensitiveLog,\n outputFilterSensitiveLog: models_0_1.GetBucketRequestPaymentOutputFilterSensitiveLog,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_restXml_1.serializeAws_restXmlGetBucketRequestPaymentCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_restXml_1.deserializeAws_restXmlGetBucketRequestPaymentCommand)(output, context);\n }\n}\nexports.GetBucketRequestPaymentCommand = GetBucketRequestPaymentCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.GetBucketTaggingCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_restXml_1 = require(\"../protocols/Aws_restXml\");\nclass GetBucketTaggingCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, GetBucketTaggingCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"GetBucketTaggingCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.GetBucketTaggingRequestFilterSensitiveLog,\n outputFilterSensitiveLog: models_0_1.GetBucketTaggingOutputFilterSensitiveLog,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_restXml_1.serializeAws_restXmlGetBucketTaggingCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_restXml_1.deserializeAws_restXmlGetBucketTaggingCommand)(output, context);\n }\n}\nexports.GetBucketTaggingCommand = GetBucketTaggingCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.GetBucketVersioningCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_restXml_1 = require(\"../protocols/Aws_restXml\");\nclass GetBucketVersioningCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, GetBucketVersioningCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"GetBucketVersioningCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.GetBucketVersioningRequestFilterSensitiveLog,\n outputFilterSensitiveLog: models_0_1.GetBucketVersioningOutputFilterSensitiveLog,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_restXml_1.serializeAws_restXmlGetBucketVersioningCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_restXml_1.deserializeAws_restXmlGetBucketVersioningCommand)(output, context);\n }\n}\nexports.GetBucketVersioningCommand = GetBucketVersioningCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.GetBucketWebsiteCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_restXml_1 = require(\"../protocols/Aws_restXml\");\nclass GetBucketWebsiteCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, GetBucketWebsiteCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"GetBucketWebsiteCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.GetBucketWebsiteRequestFilterSensitiveLog,\n outputFilterSensitiveLog: models_0_1.GetBucketWebsiteOutputFilterSensitiveLog,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_restXml_1.serializeAws_restXmlGetBucketWebsiteCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_restXml_1.deserializeAws_restXmlGetBucketWebsiteCommand)(output, context);\n }\n}\nexports.GetBucketWebsiteCommand = GetBucketWebsiteCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.GetObjectAclCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_restXml_1 = require(\"../protocols/Aws_restXml\");\nclass GetObjectAclCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, GetObjectAclCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"GetObjectAclCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.GetObjectAclRequestFilterSensitiveLog,\n outputFilterSensitiveLog: models_0_1.GetObjectAclOutputFilterSensitiveLog,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_restXml_1.serializeAws_restXmlGetObjectAclCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_restXml_1.deserializeAws_restXmlGetObjectAclCommand)(output, context);\n }\n}\nexports.GetObjectAclCommand = GetObjectAclCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.GetObjectAttributesCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst middleware_ssec_1 = require(\"@aws-sdk/middleware-ssec\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_restXml_1 = require(\"../protocols/Aws_restXml\");\nclass GetObjectAttributesCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, GetObjectAttributesCommand.getEndpointParameterInstructions()));\n this.middlewareStack.use((0, middleware_ssec_1.getSsecPlugin)(configuration));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"GetObjectAttributesCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.GetObjectAttributesRequestFilterSensitiveLog,\n outputFilterSensitiveLog: models_0_1.GetObjectAttributesOutputFilterSensitiveLog,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_restXml_1.serializeAws_restXmlGetObjectAttributesCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_restXml_1.deserializeAws_restXmlGetObjectAttributesCommand)(output, context);\n }\n}\nexports.GetObjectAttributesCommand = GetObjectAttributesCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.GetObjectCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_flexible_checksums_1 = require(\"@aws-sdk/middleware-flexible-checksums\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst middleware_ssec_1 = require(\"@aws-sdk/middleware-ssec\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_restXml_1 = require(\"../protocols/Aws_restXml\");\nclass GetObjectCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, GetObjectCommand.getEndpointParameterInstructions()));\n this.middlewareStack.use((0, middleware_ssec_1.getSsecPlugin)(configuration));\n this.middlewareStack.use((0, middleware_flexible_checksums_1.getFlexibleChecksumsPlugin)(configuration, {\n input: this.input,\n requestChecksumRequired: false,\n requestValidationModeMember: \"ChecksumMode\",\n responseAlgorithms: [\"CRC32\", \"CRC32C\", \"SHA256\", \"SHA1\"],\n }));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"GetObjectCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.GetObjectRequestFilterSensitiveLog,\n outputFilterSensitiveLog: models_0_1.GetObjectOutputFilterSensitiveLog,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_restXml_1.serializeAws_restXmlGetObjectCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_restXml_1.deserializeAws_restXmlGetObjectCommand)(output, context);\n }\n}\nexports.GetObjectCommand = GetObjectCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.GetObjectLegalHoldCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_restXml_1 = require(\"../protocols/Aws_restXml\");\nclass GetObjectLegalHoldCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, GetObjectLegalHoldCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"GetObjectLegalHoldCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.GetObjectLegalHoldRequestFilterSensitiveLog,\n outputFilterSensitiveLog: models_0_1.GetObjectLegalHoldOutputFilterSensitiveLog,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_restXml_1.serializeAws_restXmlGetObjectLegalHoldCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_restXml_1.deserializeAws_restXmlGetObjectLegalHoldCommand)(output, context);\n }\n}\nexports.GetObjectLegalHoldCommand = GetObjectLegalHoldCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.GetObjectLockConfigurationCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_restXml_1 = require(\"../protocols/Aws_restXml\");\nclass GetObjectLockConfigurationCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, GetObjectLockConfigurationCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"GetObjectLockConfigurationCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.GetObjectLockConfigurationRequestFilterSensitiveLog,\n outputFilterSensitiveLog: models_0_1.GetObjectLockConfigurationOutputFilterSensitiveLog,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_restXml_1.serializeAws_restXmlGetObjectLockConfigurationCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_restXml_1.deserializeAws_restXmlGetObjectLockConfigurationCommand)(output, context);\n }\n}\nexports.GetObjectLockConfigurationCommand = GetObjectLockConfigurationCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.GetObjectRetentionCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_restXml_1 = require(\"../protocols/Aws_restXml\");\nclass GetObjectRetentionCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, GetObjectRetentionCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"GetObjectRetentionCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.GetObjectRetentionRequestFilterSensitiveLog,\n outputFilterSensitiveLog: models_0_1.GetObjectRetentionOutputFilterSensitiveLog,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_restXml_1.serializeAws_restXmlGetObjectRetentionCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_restXml_1.deserializeAws_restXmlGetObjectRetentionCommand)(output, context);\n }\n}\nexports.GetObjectRetentionCommand = GetObjectRetentionCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.GetObjectTaggingCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_restXml_1 = require(\"../protocols/Aws_restXml\");\nclass GetObjectTaggingCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, GetObjectTaggingCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"GetObjectTaggingCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.GetObjectTaggingRequestFilterSensitiveLog,\n outputFilterSensitiveLog: models_0_1.GetObjectTaggingOutputFilterSensitiveLog,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_restXml_1.serializeAws_restXmlGetObjectTaggingCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_restXml_1.deserializeAws_restXmlGetObjectTaggingCommand)(output, context);\n }\n}\nexports.GetObjectTaggingCommand = GetObjectTaggingCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.GetObjectTorrentCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_restXml_1 = require(\"../protocols/Aws_restXml\");\nclass GetObjectTorrentCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, GetObjectTorrentCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"GetObjectTorrentCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.GetObjectTorrentRequestFilterSensitiveLog,\n outputFilterSensitiveLog: models_0_1.GetObjectTorrentOutputFilterSensitiveLog,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_restXml_1.serializeAws_restXmlGetObjectTorrentCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_restXml_1.deserializeAws_restXmlGetObjectTorrentCommand)(output, context);\n }\n}\nexports.GetObjectTorrentCommand = GetObjectTorrentCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.GetPublicAccessBlockCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_restXml_1 = require(\"../protocols/Aws_restXml\");\nclass GetPublicAccessBlockCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, GetPublicAccessBlockCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"GetPublicAccessBlockCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.GetPublicAccessBlockRequestFilterSensitiveLog,\n outputFilterSensitiveLog: models_0_1.GetPublicAccessBlockOutputFilterSensitiveLog,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_restXml_1.serializeAws_restXmlGetPublicAccessBlockCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_restXml_1.deserializeAws_restXmlGetPublicAccessBlockCommand)(output, context);\n }\n}\nexports.GetPublicAccessBlockCommand = GetPublicAccessBlockCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HeadBucketCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_restXml_1 = require(\"../protocols/Aws_restXml\");\nclass HeadBucketCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, HeadBucketCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"HeadBucketCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.HeadBucketRequestFilterSensitiveLog,\n outputFilterSensitiveLog: (output) => output,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_restXml_1.serializeAws_restXmlHeadBucketCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_restXml_1.deserializeAws_restXmlHeadBucketCommand)(output, context);\n }\n}\nexports.HeadBucketCommand = HeadBucketCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HeadObjectCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst middleware_ssec_1 = require(\"@aws-sdk/middleware-ssec\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_restXml_1 = require(\"../protocols/Aws_restXml\");\nclass HeadObjectCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, HeadObjectCommand.getEndpointParameterInstructions()));\n this.middlewareStack.use((0, middleware_ssec_1.getSsecPlugin)(configuration));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"HeadObjectCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.HeadObjectRequestFilterSensitiveLog,\n outputFilterSensitiveLog: models_0_1.HeadObjectOutputFilterSensitiveLog,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_restXml_1.serializeAws_restXmlHeadObjectCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_restXml_1.deserializeAws_restXmlHeadObjectCommand)(output, context);\n }\n}\nexports.HeadObjectCommand = HeadObjectCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ListBucketAnalyticsConfigurationsCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_restXml_1 = require(\"../protocols/Aws_restXml\");\nclass ListBucketAnalyticsConfigurationsCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, ListBucketAnalyticsConfigurationsCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"ListBucketAnalyticsConfigurationsCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.ListBucketAnalyticsConfigurationsRequestFilterSensitiveLog,\n outputFilterSensitiveLog: models_0_1.ListBucketAnalyticsConfigurationsOutputFilterSensitiveLog,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_restXml_1.serializeAws_restXmlListBucketAnalyticsConfigurationsCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_restXml_1.deserializeAws_restXmlListBucketAnalyticsConfigurationsCommand)(output, context);\n }\n}\nexports.ListBucketAnalyticsConfigurationsCommand = ListBucketAnalyticsConfigurationsCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ListBucketIntelligentTieringConfigurationsCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_restXml_1 = require(\"../protocols/Aws_restXml\");\nclass ListBucketIntelligentTieringConfigurationsCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, ListBucketIntelligentTieringConfigurationsCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"ListBucketIntelligentTieringConfigurationsCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.ListBucketIntelligentTieringConfigurationsRequestFilterSensitiveLog,\n outputFilterSensitiveLog: models_0_1.ListBucketIntelligentTieringConfigurationsOutputFilterSensitiveLog,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_restXml_1.serializeAws_restXmlListBucketIntelligentTieringConfigurationsCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_restXml_1.deserializeAws_restXmlListBucketIntelligentTieringConfigurationsCommand)(output, context);\n }\n}\nexports.ListBucketIntelligentTieringConfigurationsCommand = ListBucketIntelligentTieringConfigurationsCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ListBucketInventoryConfigurationsCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_restXml_1 = require(\"../protocols/Aws_restXml\");\nclass ListBucketInventoryConfigurationsCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, ListBucketInventoryConfigurationsCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"ListBucketInventoryConfigurationsCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.ListBucketInventoryConfigurationsRequestFilterSensitiveLog,\n outputFilterSensitiveLog: models_0_1.ListBucketInventoryConfigurationsOutputFilterSensitiveLog,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_restXml_1.serializeAws_restXmlListBucketInventoryConfigurationsCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_restXml_1.deserializeAws_restXmlListBucketInventoryConfigurationsCommand)(output, context);\n }\n}\nexports.ListBucketInventoryConfigurationsCommand = ListBucketInventoryConfigurationsCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ListBucketMetricsConfigurationsCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_restXml_1 = require(\"../protocols/Aws_restXml\");\nclass ListBucketMetricsConfigurationsCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, ListBucketMetricsConfigurationsCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"ListBucketMetricsConfigurationsCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.ListBucketMetricsConfigurationsRequestFilterSensitiveLog,\n outputFilterSensitiveLog: models_0_1.ListBucketMetricsConfigurationsOutputFilterSensitiveLog,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_restXml_1.serializeAws_restXmlListBucketMetricsConfigurationsCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_restXml_1.deserializeAws_restXmlListBucketMetricsConfigurationsCommand)(output, context);\n }\n}\nexports.ListBucketMetricsConfigurationsCommand = ListBucketMetricsConfigurationsCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ListBucketsCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_restXml_1 = require(\"../protocols/Aws_restXml\");\nclass ListBucketsCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, ListBucketsCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"ListBucketsCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: (input) => input,\n outputFilterSensitiveLog: models_0_1.ListBucketsOutputFilterSensitiveLog,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_restXml_1.serializeAws_restXmlListBucketsCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_restXml_1.deserializeAws_restXmlListBucketsCommand)(output, context);\n }\n}\nexports.ListBucketsCommand = ListBucketsCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ListMultipartUploadsCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_restXml_1 = require(\"../protocols/Aws_restXml\");\nclass ListMultipartUploadsCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, ListMultipartUploadsCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"ListMultipartUploadsCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.ListMultipartUploadsRequestFilterSensitiveLog,\n outputFilterSensitiveLog: models_0_1.ListMultipartUploadsOutputFilterSensitiveLog,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_restXml_1.serializeAws_restXmlListMultipartUploadsCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_restXml_1.deserializeAws_restXmlListMultipartUploadsCommand)(output, context);\n }\n}\nexports.ListMultipartUploadsCommand = ListMultipartUploadsCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ListObjectsCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_restXml_1 = require(\"../protocols/Aws_restXml\");\nclass ListObjectsCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, ListObjectsCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"ListObjectsCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.ListObjectsRequestFilterSensitiveLog,\n outputFilterSensitiveLog: models_0_1.ListObjectsOutputFilterSensitiveLog,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_restXml_1.serializeAws_restXmlListObjectsCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_restXml_1.deserializeAws_restXmlListObjectsCommand)(output, context);\n }\n}\nexports.ListObjectsCommand = ListObjectsCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ListObjectsV2Command = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_restXml_1 = require(\"../protocols/Aws_restXml\");\nclass ListObjectsV2Command extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, ListObjectsV2Command.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"ListObjectsV2Command\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.ListObjectsV2RequestFilterSensitiveLog,\n outputFilterSensitiveLog: models_0_1.ListObjectsV2OutputFilterSensitiveLog,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_restXml_1.serializeAws_restXmlListObjectsV2Command)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_restXml_1.deserializeAws_restXmlListObjectsV2Command)(output, context);\n }\n}\nexports.ListObjectsV2Command = ListObjectsV2Command;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ListObjectVersionsCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_restXml_1 = require(\"../protocols/Aws_restXml\");\nclass ListObjectVersionsCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, ListObjectVersionsCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"ListObjectVersionsCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.ListObjectVersionsRequestFilterSensitiveLog,\n outputFilterSensitiveLog: models_0_1.ListObjectVersionsOutputFilterSensitiveLog,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_restXml_1.serializeAws_restXmlListObjectVersionsCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_restXml_1.deserializeAws_restXmlListObjectVersionsCommand)(output, context);\n }\n}\nexports.ListObjectVersionsCommand = ListObjectVersionsCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ListPartsCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst middleware_ssec_1 = require(\"@aws-sdk/middleware-ssec\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_restXml_1 = require(\"../protocols/Aws_restXml\");\nclass ListPartsCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, ListPartsCommand.getEndpointParameterInstructions()));\n this.middlewareStack.use((0, middleware_ssec_1.getSsecPlugin)(configuration));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"ListPartsCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.ListPartsRequestFilterSensitiveLog,\n outputFilterSensitiveLog: models_0_1.ListPartsOutputFilterSensitiveLog,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_restXml_1.serializeAws_restXmlListPartsCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_restXml_1.deserializeAws_restXmlListPartsCommand)(output, context);\n }\n}\nexports.ListPartsCommand = ListPartsCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PutBucketAccelerateConfigurationCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_flexible_checksums_1 = require(\"@aws-sdk/middleware-flexible-checksums\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_restXml_1 = require(\"../protocols/Aws_restXml\");\nclass PutBucketAccelerateConfigurationCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, PutBucketAccelerateConfigurationCommand.getEndpointParameterInstructions()));\n this.middlewareStack.use((0, middleware_flexible_checksums_1.getFlexibleChecksumsPlugin)(configuration, {\n input: this.input,\n requestAlgorithmMember: \"ChecksumAlgorithm\",\n requestChecksumRequired: false,\n }));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"PutBucketAccelerateConfigurationCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.PutBucketAccelerateConfigurationRequestFilterSensitiveLog,\n outputFilterSensitiveLog: (output) => output,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_restXml_1.serializeAws_restXmlPutBucketAccelerateConfigurationCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_restXml_1.deserializeAws_restXmlPutBucketAccelerateConfigurationCommand)(output, context);\n }\n}\nexports.PutBucketAccelerateConfigurationCommand = PutBucketAccelerateConfigurationCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PutBucketAclCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_flexible_checksums_1 = require(\"@aws-sdk/middleware-flexible-checksums\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_restXml_1 = require(\"../protocols/Aws_restXml\");\nclass PutBucketAclCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, PutBucketAclCommand.getEndpointParameterInstructions()));\n this.middlewareStack.use((0, middleware_flexible_checksums_1.getFlexibleChecksumsPlugin)(configuration, {\n input: this.input,\n requestAlgorithmMember: \"ChecksumAlgorithm\",\n requestChecksumRequired: true,\n }));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"PutBucketAclCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.PutBucketAclRequestFilterSensitiveLog,\n outputFilterSensitiveLog: (output) => output,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_restXml_1.serializeAws_restXmlPutBucketAclCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_restXml_1.deserializeAws_restXmlPutBucketAclCommand)(output, context);\n }\n}\nexports.PutBucketAclCommand = PutBucketAclCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PutBucketAnalyticsConfigurationCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_restXml_1 = require(\"../protocols/Aws_restXml\");\nclass PutBucketAnalyticsConfigurationCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, PutBucketAnalyticsConfigurationCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"PutBucketAnalyticsConfigurationCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.PutBucketAnalyticsConfigurationRequestFilterSensitiveLog,\n outputFilterSensitiveLog: (output) => output,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_restXml_1.serializeAws_restXmlPutBucketAnalyticsConfigurationCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_restXml_1.deserializeAws_restXmlPutBucketAnalyticsConfigurationCommand)(output, context);\n }\n}\nexports.PutBucketAnalyticsConfigurationCommand = PutBucketAnalyticsConfigurationCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PutBucketCorsCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_flexible_checksums_1 = require(\"@aws-sdk/middleware-flexible-checksums\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_restXml_1 = require(\"../protocols/Aws_restXml\");\nclass PutBucketCorsCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, PutBucketCorsCommand.getEndpointParameterInstructions()));\n this.middlewareStack.use((0, middleware_flexible_checksums_1.getFlexibleChecksumsPlugin)(configuration, {\n input: this.input,\n requestAlgorithmMember: \"ChecksumAlgorithm\",\n requestChecksumRequired: true,\n }));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"PutBucketCorsCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.PutBucketCorsRequestFilterSensitiveLog,\n outputFilterSensitiveLog: (output) => output,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_restXml_1.serializeAws_restXmlPutBucketCorsCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_restXml_1.deserializeAws_restXmlPutBucketCorsCommand)(output, context);\n }\n}\nexports.PutBucketCorsCommand = PutBucketCorsCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PutBucketEncryptionCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_flexible_checksums_1 = require(\"@aws-sdk/middleware-flexible-checksums\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_restXml_1 = require(\"../protocols/Aws_restXml\");\nclass PutBucketEncryptionCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, PutBucketEncryptionCommand.getEndpointParameterInstructions()));\n this.middlewareStack.use((0, middleware_flexible_checksums_1.getFlexibleChecksumsPlugin)(configuration, {\n input: this.input,\n requestAlgorithmMember: \"ChecksumAlgorithm\",\n requestChecksumRequired: true,\n }));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"PutBucketEncryptionCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.PutBucketEncryptionRequestFilterSensitiveLog,\n outputFilterSensitiveLog: (output) => output,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_restXml_1.serializeAws_restXmlPutBucketEncryptionCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_restXml_1.deserializeAws_restXmlPutBucketEncryptionCommand)(output, context);\n }\n}\nexports.PutBucketEncryptionCommand = PutBucketEncryptionCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PutBucketIntelligentTieringConfigurationCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_restXml_1 = require(\"../protocols/Aws_restXml\");\nclass PutBucketIntelligentTieringConfigurationCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, PutBucketIntelligentTieringConfigurationCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"PutBucketIntelligentTieringConfigurationCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.PutBucketIntelligentTieringConfigurationRequestFilterSensitiveLog,\n outputFilterSensitiveLog: (output) => output,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_restXml_1.serializeAws_restXmlPutBucketIntelligentTieringConfigurationCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_restXml_1.deserializeAws_restXmlPutBucketIntelligentTieringConfigurationCommand)(output, context);\n }\n}\nexports.PutBucketIntelligentTieringConfigurationCommand = PutBucketIntelligentTieringConfigurationCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PutBucketInventoryConfigurationCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_restXml_1 = require(\"../protocols/Aws_restXml\");\nclass PutBucketInventoryConfigurationCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, PutBucketInventoryConfigurationCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"PutBucketInventoryConfigurationCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.PutBucketInventoryConfigurationRequestFilterSensitiveLog,\n outputFilterSensitiveLog: (output) => output,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_restXml_1.serializeAws_restXmlPutBucketInventoryConfigurationCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_restXml_1.deserializeAws_restXmlPutBucketInventoryConfigurationCommand)(output, context);\n }\n}\nexports.PutBucketInventoryConfigurationCommand = PutBucketInventoryConfigurationCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PutBucketLifecycleConfigurationCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_flexible_checksums_1 = require(\"@aws-sdk/middleware-flexible-checksums\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_restXml_1 = require(\"../protocols/Aws_restXml\");\nclass PutBucketLifecycleConfigurationCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, PutBucketLifecycleConfigurationCommand.getEndpointParameterInstructions()));\n this.middlewareStack.use((0, middleware_flexible_checksums_1.getFlexibleChecksumsPlugin)(configuration, {\n input: this.input,\n requestAlgorithmMember: \"ChecksumAlgorithm\",\n requestChecksumRequired: true,\n }));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"PutBucketLifecycleConfigurationCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.PutBucketLifecycleConfigurationRequestFilterSensitiveLog,\n outputFilterSensitiveLog: (output) => output,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_restXml_1.serializeAws_restXmlPutBucketLifecycleConfigurationCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_restXml_1.deserializeAws_restXmlPutBucketLifecycleConfigurationCommand)(output, context);\n }\n}\nexports.PutBucketLifecycleConfigurationCommand = PutBucketLifecycleConfigurationCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PutBucketLoggingCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_flexible_checksums_1 = require(\"@aws-sdk/middleware-flexible-checksums\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_restXml_1 = require(\"../protocols/Aws_restXml\");\nclass PutBucketLoggingCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, PutBucketLoggingCommand.getEndpointParameterInstructions()));\n this.middlewareStack.use((0, middleware_flexible_checksums_1.getFlexibleChecksumsPlugin)(configuration, {\n input: this.input,\n requestAlgorithmMember: \"ChecksumAlgorithm\",\n requestChecksumRequired: true,\n }));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"PutBucketLoggingCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.PutBucketLoggingRequestFilterSensitiveLog,\n outputFilterSensitiveLog: (output) => output,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_restXml_1.serializeAws_restXmlPutBucketLoggingCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_restXml_1.deserializeAws_restXmlPutBucketLoggingCommand)(output, context);\n }\n}\nexports.PutBucketLoggingCommand = PutBucketLoggingCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PutBucketMetricsConfigurationCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_restXml_1 = require(\"../protocols/Aws_restXml\");\nclass PutBucketMetricsConfigurationCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, PutBucketMetricsConfigurationCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"PutBucketMetricsConfigurationCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.PutBucketMetricsConfigurationRequestFilterSensitiveLog,\n outputFilterSensitiveLog: (output) => output,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_restXml_1.serializeAws_restXmlPutBucketMetricsConfigurationCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_restXml_1.deserializeAws_restXmlPutBucketMetricsConfigurationCommand)(output, context);\n }\n}\nexports.PutBucketMetricsConfigurationCommand = PutBucketMetricsConfigurationCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PutBucketNotificationConfigurationCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_restXml_1 = require(\"../protocols/Aws_restXml\");\nclass PutBucketNotificationConfigurationCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, PutBucketNotificationConfigurationCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"PutBucketNotificationConfigurationCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.PutBucketNotificationConfigurationRequestFilterSensitiveLog,\n outputFilterSensitiveLog: (output) => output,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_restXml_1.serializeAws_restXmlPutBucketNotificationConfigurationCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_restXml_1.deserializeAws_restXmlPutBucketNotificationConfigurationCommand)(output, context);\n }\n}\nexports.PutBucketNotificationConfigurationCommand = PutBucketNotificationConfigurationCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PutBucketOwnershipControlsCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_flexible_checksums_1 = require(\"@aws-sdk/middleware-flexible-checksums\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_restXml_1 = require(\"../protocols/Aws_restXml\");\nclass PutBucketOwnershipControlsCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, PutBucketOwnershipControlsCommand.getEndpointParameterInstructions()));\n this.middlewareStack.use((0, middleware_flexible_checksums_1.getFlexibleChecksumsPlugin)(configuration, { input: this.input, requestChecksumRequired: true }));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"PutBucketOwnershipControlsCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.PutBucketOwnershipControlsRequestFilterSensitiveLog,\n outputFilterSensitiveLog: (output) => output,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_restXml_1.serializeAws_restXmlPutBucketOwnershipControlsCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_restXml_1.deserializeAws_restXmlPutBucketOwnershipControlsCommand)(output, context);\n }\n}\nexports.PutBucketOwnershipControlsCommand = PutBucketOwnershipControlsCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PutBucketPolicyCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_flexible_checksums_1 = require(\"@aws-sdk/middleware-flexible-checksums\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_restXml_1 = require(\"../protocols/Aws_restXml\");\nclass PutBucketPolicyCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, PutBucketPolicyCommand.getEndpointParameterInstructions()));\n this.middlewareStack.use((0, middleware_flexible_checksums_1.getFlexibleChecksumsPlugin)(configuration, {\n input: this.input,\n requestAlgorithmMember: \"ChecksumAlgorithm\",\n requestChecksumRequired: true,\n }));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"PutBucketPolicyCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.PutBucketPolicyRequestFilterSensitiveLog,\n outputFilterSensitiveLog: (output) => output,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_restXml_1.serializeAws_restXmlPutBucketPolicyCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_restXml_1.deserializeAws_restXmlPutBucketPolicyCommand)(output, context);\n }\n}\nexports.PutBucketPolicyCommand = PutBucketPolicyCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PutBucketReplicationCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_flexible_checksums_1 = require(\"@aws-sdk/middleware-flexible-checksums\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_restXml_1 = require(\"../protocols/Aws_restXml\");\nclass PutBucketReplicationCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, PutBucketReplicationCommand.getEndpointParameterInstructions()));\n this.middlewareStack.use((0, middleware_flexible_checksums_1.getFlexibleChecksumsPlugin)(configuration, {\n input: this.input,\n requestAlgorithmMember: \"ChecksumAlgorithm\",\n requestChecksumRequired: true,\n }));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"PutBucketReplicationCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.PutBucketReplicationRequestFilterSensitiveLog,\n outputFilterSensitiveLog: (output) => output,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_restXml_1.serializeAws_restXmlPutBucketReplicationCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_restXml_1.deserializeAws_restXmlPutBucketReplicationCommand)(output, context);\n }\n}\nexports.PutBucketReplicationCommand = PutBucketReplicationCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PutBucketRequestPaymentCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_flexible_checksums_1 = require(\"@aws-sdk/middleware-flexible-checksums\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_restXml_1 = require(\"../protocols/Aws_restXml\");\nclass PutBucketRequestPaymentCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, PutBucketRequestPaymentCommand.getEndpointParameterInstructions()));\n this.middlewareStack.use((0, middleware_flexible_checksums_1.getFlexibleChecksumsPlugin)(configuration, {\n input: this.input,\n requestAlgorithmMember: \"ChecksumAlgorithm\",\n requestChecksumRequired: true,\n }));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"PutBucketRequestPaymentCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.PutBucketRequestPaymentRequestFilterSensitiveLog,\n outputFilterSensitiveLog: (output) => output,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_restXml_1.serializeAws_restXmlPutBucketRequestPaymentCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_restXml_1.deserializeAws_restXmlPutBucketRequestPaymentCommand)(output, context);\n }\n}\nexports.PutBucketRequestPaymentCommand = PutBucketRequestPaymentCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PutBucketTaggingCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_flexible_checksums_1 = require(\"@aws-sdk/middleware-flexible-checksums\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_restXml_1 = require(\"../protocols/Aws_restXml\");\nclass PutBucketTaggingCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, PutBucketTaggingCommand.getEndpointParameterInstructions()));\n this.middlewareStack.use((0, middleware_flexible_checksums_1.getFlexibleChecksumsPlugin)(configuration, {\n input: this.input,\n requestAlgorithmMember: \"ChecksumAlgorithm\",\n requestChecksumRequired: true,\n }));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"PutBucketTaggingCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.PutBucketTaggingRequestFilterSensitiveLog,\n outputFilterSensitiveLog: (output) => output,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_restXml_1.serializeAws_restXmlPutBucketTaggingCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_restXml_1.deserializeAws_restXmlPutBucketTaggingCommand)(output, context);\n }\n}\nexports.PutBucketTaggingCommand = PutBucketTaggingCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PutBucketVersioningCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_flexible_checksums_1 = require(\"@aws-sdk/middleware-flexible-checksums\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_restXml_1 = require(\"../protocols/Aws_restXml\");\nclass PutBucketVersioningCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, PutBucketVersioningCommand.getEndpointParameterInstructions()));\n this.middlewareStack.use((0, middleware_flexible_checksums_1.getFlexibleChecksumsPlugin)(configuration, {\n input: this.input,\n requestAlgorithmMember: \"ChecksumAlgorithm\",\n requestChecksumRequired: true,\n }));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"PutBucketVersioningCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.PutBucketVersioningRequestFilterSensitiveLog,\n outputFilterSensitiveLog: (output) => output,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_restXml_1.serializeAws_restXmlPutBucketVersioningCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_restXml_1.deserializeAws_restXmlPutBucketVersioningCommand)(output, context);\n }\n}\nexports.PutBucketVersioningCommand = PutBucketVersioningCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PutBucketWebsiteCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_flexible_checksums_1 = require(\"@aws-sdk/middleware-flexible-checksums\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_restXml_1 = require(\"../protocols/Aws_restXml\");\nclass PutBucketWebsiteCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, PutBucketWebsiteCommand.getEndpointParameterInstructions()));\n this.middlewareStack.use((0, middleware_flexible_checksums_1.getFlexibleChecksumsPlugin)(configuration, {\n input: this.input,\n requestAlgorithmMember: \"ChecksumAlgorithm\",\n requestChecksumRequired: true,\n }));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"PutBucketWebsiteCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.PutBucketWebsiteRequestFilterSensitiveLog,\n outputFilterSensitiveLog: (output) => output,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_restXml_1.serializeAws_restXmlPutBucketWebsiteCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_restXml_1.deserializeAws_restXmlPutBucketWebsiteCommand)(output, context);\n }\n}\nexports.PutBucketWebsiteCommand = PutBucketWebsiteCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PutObjectAclCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_flexible_checksums_1 = require(\"@aws-sdk/middleware-flexible-checksums\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_restXml_1 = require(\"../protocols/Aws_restXml\");\nclass PutObjectAclCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, PutObjectAclCommand.getEndpointParameterInstructions()));\n this.middlewareStack.use((0, middleware_flexible_checksums_1.getFlexibleChecksumsPlugin)(configuration, {\n input: this.input,\n requestAlgorithmMember: \"ChecksumAlgorithm\",\n requestChecksumRequired: true,\n }));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"PutObjectAclCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.PutObjectAclRequestFilterSensitiveLog,\n outputFilterSensitiveLog: models_0_1.PutObjectAclOutputFilterSensitiveLog,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_restXml_1.serializeAws_restXmlPutObjectAclCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_restXml_1.deserializeAws_restXmlPutObjectAclCommand)(output, context);\n }\n}\nexports.PutObjectAclCommand = PutObjectAclCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PutObjectCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_flexible_checksums_1 = require(\"@aws-sdk/middleware-flexible-checksums\");\nconst middleware_sdk_s3_1 = require(\"@aws-sdk/middleware-sdk-s3\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst middleware_ssec_1 = require(\"@aws-sdk/middleware-ssec\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_restXml_1 = require(\"../protocols/Aws_restXml\");\nclass PutObjectCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, PutObjectCommand.getEndpointParameterInstructions()));\n this.middlewareStack.use((0, middleware_sdk_s3_1.getCheckContentLengthHeaderPlugin)(configuration));\n this.middlewareStack.use((0, middleware_ssec_1.getSsecPlugin)(configuration));\n this.middlewareStack.use((0, middleware_flexible_checksums_1.getFlexibleChecksumsPlugin)(configuration, {\n input: this.input,\n requestAlgorithmMember: \"ChecksumAlgorithm\",\n requestChecksumRequired: false,\n }));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"PutObjectCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.PutObjectRequestFilterSensitiveLog,\n outputFilterSensitiveLog: models_0_1.PutObjectOutputFilterSensitiveLog,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_restXml_1.serializeAws_restXmlPutObjectCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_restXml_1.deserializeAws_restXmlPutObjectCommand)(output, context);\n }\n}\nexports.PutObjectCommand = PutObjectCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PutObjectLegalHoldCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_flexible_checksums_1 = require(\"@aws-sdk/middleware-flexible-checksums\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_restXml_1 = require(\"../protocols/Aws_restXml\");\nclass PutObjectLegalHoldCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, PutObjectLegalHoldCommand.getEndpointParameterInstructions()));\n this.middlewareStack.use((0, middleware_flexible_checksums_1.getFlexibleChecksumsPlugin)(configuration, {\n input: this.input,\n requestAlgorithmMember: \"ChecksumAlgorithm\",\n requestChecksumRequired: true,\n }));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"PutObjectLegalHoldCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.PutObjectLegalHoldRequestFilterSensitiveLog,\n outputFilterSensitiveLog: models_0_1.PutObjectLegalHoldOutputFilterSensitiveLog,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_restXml_1.serializeAws_restXmlPutObjectLegalHoldCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_restXml_1.deserializeAws_restXmlPutObjectLegalHoldCommand)(output, context);\n }\n}\nexports.PutObjectLegalHoldCommand = PutObjectLegalHoldCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PutObjectLockConfigurationCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_flexible_checksums_1 = require(\"@aws-sdk/middleware-flexible-checksums\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_restXml_1 = require(\"../protocols/Aws_restXml\");\nclass PutObjectLockConfigurationCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, PutObjectLockConfigurationCommand.getEndpointParameterInstructions()));\n this.middlewareStack.use((0, middleware_flexible_checksums_1.getFlexibleChecksumsPlugin)(configuration, {\n input: this.input,\n requestAlgorithmMember: \"ChecksumAlgorithm\",\n requestChecksumRequired: true,\n }));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"PutObjectLockConfigurationCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.PutObjectLockConfigurationRequestFilterSensitiveLog,\n outputFilterSensitiveLog: models_0_1.PutObjectLockConfigurationOutputFilterSensitiveLog,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_restXml_1.serializeAws_restXmlPutObjectLockConfigurationCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_restXml_1.deserializeAws_restXmlPutObjectLockConfigurationCommand)(output, context);\n }\n}\nexports.PutObjectLockConfigurationCommand = PutObjectLockConfigurationCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PutObjectRetentionCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_flexible_checksums_1 = require(\"@aws-sdk/middleware-flexible-checksums\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_1_1 = require(\"../models/models_1\");\nconst Aws_restXml_1 = require(\"../protocols/Aws_restXml\");\nclass PutObjectRetentionCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, PutObjectRetentionCommand.getEndpointParameterInstructions()));\n this.middlewareStack.use((0, middleware_flexible_checksums_1.getFlexibleChecksumsPlugin)(configuration, {\n input: this.input,\n requestAlgorithmMember: \"ChecksumAlgorithm\",\n requestChecksumRequired: true,\n }));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"PutObjectRetentionCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_1_1.PutObjectRetentionRequestFilterSensitiveLog,\n outputFilterSensitiveLog: models_1_1.PutObjectRetentionOutputFilterSensitiveLog,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_restXml_1.serializeAws_restXmlPutObjectRetentionCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_restXml_1.deserializeAws_restXmlPutObjectRetentionCommand)(output, context);\n }\n}\nexports.PutObjectRetentionCommand = PutObjectRetentionCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PutObjectTaggingCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_flexible_checksums_1 = require(\"@aws-sdk/middleware-flexible-checksums\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_1_1 = require(\"../models/models_1\");\nconst Aws_restXml_1 = require(\"../protocols/Aws_restXml\");\nclass PutObjectTaggingCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, PutObjectTaggingCommand.getEndpointParameterInstructions()));\n this.middlewareStack.use((0, middleware_flexible_checksums_1.getFlexibleChecksumsPlugin)(configuration, {\n input: this.input,\n requestAlgorithmMember: \"ChecksumAlgorithm\",\n requestChecksumRequired: true,\n }));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"PutObjectTaggingCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_1_1.PutObjectTaggingRequestFilterSensitiveLog,\n outputFilterSensitiveLog: models_1_1.PutObjectTaggingOutputFilterSensitiveLog,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_restXml_1.serializeAws_restXmlPutObjectTaggingCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_restXml_1.deserializeAws_restXmlPutObjectTaggingCommand)(output, context);\n }\n}\nexports.PutObjectTaggingCommand = PutObjectTaggingCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PutPublicAccessBlockCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_flexible_checksums_1 = require(\"@aws-sdk/middleware-flexible-checksums\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_1_1 = require(\"../models/models_1\");\nconst Aws_restXml_1 = require(\"../protocols/Aws_restXml\");\nclass PutPublicAccessBlockCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, PutPublicAccessBlockCommand.getEndpointParameterInstructions()));\n this.middlewareStack.use((0, middleware_flexible_checksums_1.getFlexibleChecksumsPlugin)(configuration, {\n input: this.input,\n requestAlgorithmMember: \"ChecksumAlgorithm\",\n requestChecksumRequired: true,\n }));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"PutPublicAccessBlockCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_1_1.PutPublicAccessBlockRequestFilterSensitiveLog,\n outputFilterSensitiveLog: (output) => output,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_restXml_1.serializeAws_restXmlPutPublicAccessBlockCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_restXml_1.deserializeAws_restXmlPutPublicAccessBlockCommand)(output, context);\n }\n}\nexports.PutPublicAccessBlockCommand = PutPublicAccessBlockCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.RestoreObjectCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_flexible_checksums_1 = require(\"@aws-sdk/middleware-flexible-checksums\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_1_1 = require(\"../models/models_1\");\nconst Aws_restXml_1 = require(\"../protocols/Aws_restXml\");\nclass RestoreObjectCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, RestoreObjectCommand.getEndpointParameterInstructions()));\n this.middlewareStack.use((0, middleware_flexible_checksums_1.getFlexibleChecksumsPlugin)(configuration, {\n input: this.input,\n requestAlgorithmMember: \"ChecksumAlgorithm\",\n requestChecksumRequired: false,\n }));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"RestoreObjectCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_1_1.RestoreObjectRequestFilterSensitiveLog,\n outputFilterSensitiveLog: models_1_1.RestoreObjectOutputFilterSensitiveLog,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_restXml_1.serializeAws_restXmlRestoreObjectCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_restXml_1.deserializeAws_restXmlRestoreObjectCommand)(output, context);\n }\n}\nexports.RestoreObjectCommand = RestoreObjectCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SelectObjectContentCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst middleware_ssec_1 = require(\"@aws-sdk/middleware-ssec\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_1_1 = require(\"../models/models_1\");\nconst Aws_restXml_1 = require(\"../protocols/Aws_restXml\");\nclass SelectObjectContentCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, SelectObjectContentCommand.getEndpointParameterInstructions()));\n this.middlewareStack.use((0, middleware_ssec_1.getSsecPlugin)(configuration));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"SelectObjectContentCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_1_1.SelectObjectContentRequestFilterSensitiveLog,\n outputFilterSensitiveLog: models_1_1.SelectObjectContentOutputFilterSensitiveLog,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_restXml_1.serializeAws_restXmlSelectObjectContentCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_restXml_1.deserializeAws_restXmlSelectObjectContentCommand)(output, context);\n }\n}\nexports.SelectObjectContentCommand = SelectObjectContentCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.UploadPartCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_flexible_checksums_1 = require(\"@aws-sdk/middleware-flexible-checksums\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst middleware_ssec_1 = require(\"@aws-sdk/middleware-ssec\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_1_1 = require(\"../models/models_1\");\nconst Aws_restXml_1 = require(\"../protocols/Aws_restXml\");\nclass UploadPartCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, UploadPartCommand.getEndpointParameterInstructions()));\n this.middlewareStack.use((0, middleware_ssec_1.getSsecPlugin)(configuration));\n this.middlewareStack.use((0, middleware_flexible_checksums_1.getFlexibleChecksumsPlugin)(configuration, {\n input: this.input,\n requestAlgorithmMember: \"ChecksumAlgorithm\",\n requestChecksumRequired: false,\n }));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"UploadPartCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_1_1.UploadPartRequestFilterSensitiveLog,\n outputFilterSensitiveLog: models_1_1.UploadPartOutputFilterSensitiveLog,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_restXml_1.serializeAws_restXmlUploadPartCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_restXml_1.deserializeAws_restXmlUploadPartCommand)(output, context);\n }\n}\nexports.UploadPartCommand = UploadPartCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.UploadPartCopyCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_sdk_s3_1 = require(\"@aws-sdk/middleware-sdk-s3\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst middleware_ssec_1 = require(\"@aws-sdk/middleware-ssec\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_1_1 = require(\"../models/models_1\");\nconst Aws_restXml_1 = require(\"../protocols/Aws_restXml\");\nclass UploadPartCopyCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, UploadPartCopyCommand.getEndpointParameterInstructions()));\n this.middlewareStack.use((0, middleware_sdk_s3_1.getThrow200ExceptionsPlugin)(configuration));\n this.middlewareStack.use((0, middleware_ssec_1.getSsecPlugin)(configuration));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"UploadPartCopyCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_1_1.UploadPartCopyRequestFilterSensitiveLog,\n outputFilterSensitiveLog: models_1_1.UploadPartCopyOutputFilterSensitiveLog,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_restXml_1.serializeAws_restXmlUploadPartCopyCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_restXml_1.deserializeAws_restXmlUploadPartCopyCommand)(output, context);\n }\n}\nexports.UploadPartCopyCommand = UploadPartCopyCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.WriteGetObjectResponseCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_1_1 = require(\"../models/models_1\");\nconst Aws_restXml_1 = require(\"../protocols/Aws_restXml\");\nclass WriteGetObjectResponseCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n UseObjectLambdaEndpoint: { type: \"staticContextParams\", value: true },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, WriteGetObjectResponseCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"WriteGetObjectResponseCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_1_1.WriteGetObjectResponseRequestFilterSensitiveLog,\n outputFilterSensitiveLog: (output) => output,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_restXml_1.serializeAws_restXmlWriteGetObjectResponseCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_restXml_1.deserializeAws_restXmlWriteGetObjectResponseCommand)(output, context);\n }\n}\nexports.WriteGetObjectResponseCommand = WriteGetObjectResponseCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.resolveEventStreamSerdeConfig = void 0;\nconst resolveEventStreamSerdeConfig = (input) => ({\n ...input,\n eventStreamMarshaller: input.eventStreamSerdeProvider(input),\n});\nexports.resolveEventStreamSerdeConfig = resolveEventStreamSerdeConfig;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./EventStreamSerdeConfig\"), exports);\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getAddExpectContinuePlugin = exports.addExpectContinueMiddlewareOptions = exports.addExpectContinueMiddleware = void 0;\nconst protocol_http_1 = require(\"@aws-sdk/protocol-http\");\nfunction addExpectContinueMiddleware(options) {\n return (next) => async (args) => {\n const { request } = args;\n if (protocol_http_1.HttpRequest.isInstance(request) && request.body && options.runtime === \"node\") {\n request.headers = {\n ...request.headers,\n Expect: \"100-continue\",\n };\n }\n return next({\n ...args,\n request,\n });\n };\n}\nexports.addExpectContinueMiddleware = addExpectContinueMiddleware;\nexports.addExpectContinueMiddlewareOptions = {\n step: \"build\",\n tags: [\"SET_EXPECT_HEADER\", \"EXPECT_HEADER\"],\n name: \"addExpectContinueMiddleware\",\n override: true,\n};\nconst getAddExpectContinuePlugin = (options) => ({\n applyToStack: (clientStack) => {\n clientStack.add(addExpectContinueMiddleware(options), exports.addExpectContinueMiddlewareOptions);\n },\n});\nexports.getAddExpectContinuePlugin = getAddExpectContinuePlugin;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.resolveClientEndpointParameters = void 0;\nconst resolveClientEndpointParameters = (options) => {\n return {\n ...options,\n useFipsEndpoint: options.useFipsEndpoint ?? false,\n useDualstackEndpoint: options.useDualstackEndpoint ?? false,\n useAccelerateEndpoint: options.useAccelerateEndpoint ?? false,\n useGlobalEndpoint: options.useGlobalEndpoint ?? false,\n disableMultiregionAccessPoints: options.disableMultiregionAccessPoints ?? false,\n defaultSigningName: \"s3\",\n };\n};\nexports.resolveClientEndpointParameters = resolveClientEndpointParameters;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Int64 = void 0;\nconst util_hex_encoding_1 = require(\"@aws-sdk/util-hex-encoding\");\nclass Int64 {\n constructor(bytes) {\n this.bytes = bytes;\n if (bytes.byteLength !== 8) {\n throw new Error(\"Int64 buffers must be exactly 8 bytes\");\n }\n }\n static fromNumber(number) {\n if (number > 9223372036854776000 || number < -9223372036854776000) {\n throw new Error(`${number} is too large (or, if negative, too small) to represent as an Int64`);\n }\n const bytes = new Uint8Array(8);\n for (let i = 7, remaining = Math.abs(Math.round(number)); i > -1 && remaining > 0; i--, remaining /= 256) {\n bytes[i] = remaining;\n }\n if (number < 0) {\n negate(bytes);\n }\n return new Int64(bytes);\n }\n valueOf() {\n const bytes = this.bytes.slice(0);\n const negative = bytes[0] & 0b10000000;\n if (negative) {\n negate(bytes);\n }\n return parseInt((0, util_hex_encoding_1.toHex)(bytes), 16) * (negative ? -1 : 1);\n }\n toString() {\n return String(this.valueOf());\n }\n}\nexports.Int64 = Int64;\nfunction negate(bytes) {\n for (let i = 0; i < 8; i++) {\n bytes[i] ^= 0xff;\n }\n for (let i = 7; i > -1; i--) {\n bytes[i]++;\n if (bytes[i] !== 0)\n break;\n }\n}\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HeaderMarshaller = void 0;\nconst util_hex_encoding_1 = require(\"@aws-sdk/util-hex-encoding\");\nconst Int64_1 = require(\"./Int64\");\nclass HeaderMarshaller {\n constructor(toUtf8, fromUtf8) {\n this.toUtf8 = toUtf8;\n this.fromUtf8 = fromUtf8;\n }\n format(headers) {\n const chunks = [];\n for (const headerName of Object.keys(headers)) {\n const bytes = this.fromUtf8(headerName);\n chunks.push(Uint8Array.from([bytes.byteLength]), bytes, this.formatHeaderValue(headers[headerName]));\n }\n const out = new Uint8Array(chunks.reduce((carry, bytes) => carry + bytes.byteLength, 0));\n let position = 0;\n for (const chunk of chunks) {\n out.set(chunk, position);\n position += chunk.byteLength;\n }\n return out;\n }\n formatHeaderValue(header) {\n switch (header.type) {\n case \"boolean\":\n return Uint8Array.from([header.value ? 0 : 1]);\n case \"byte\":\n return Uint8Array.from([2, header.value]);\n case \"short\":\n const shortView = new DataView(new ArrayBuffer(3));\n shortView.setUint8(0, 3);\n shortView.setInt16(1, header.value, false);\n return new Uint8Array(shortView.buffer);\n case \"integer\":\n const intView = new DataView(new ArrayBuffer(5));\n intView.setUint8(0, 4);\n intView.setInt32(1, header.value, false);\n return new Uint8Array(intView.buffer);\n case \"long\":\n const longBytes = new Uint8Array(9);\n longBytes[0] = 5;\n longBytes.set(header.value.bytes, 1);\n return longBytes;\n case \"binary\":\n const binView = new DataView(new ArrayBuffer(3 + header.value.byteLength));\n binView.setUint8(0, 6);\n binView.setUint16(1, header.value.byteLength, false);\n const binBytes = new Uint8Array(binView.buffer);\n binBytes.set(header.value, 3);\n return binBytes;\n case \"string\":\n const utf8Bytes = this.fromUtf8(header.value);\n const strView = new DataView(new ArrayBuffer(3 + utf8Bytes.byteLength));\n strView.setUint8(0, 7);\n strView.setUint16(1, utf8Bytes.byteLength, false);\n const strBytes = new Uint8Array(strView.buffer);\n strBytes.set(utf8Bytes, 3);\n return strBytes;\n case \"timestamp\":\n const tsBytes = new Uint8Array(9);\n tsBytes[0] = 8;\n tsBytes.set(Int64_1.Int64.fromNumber(header.value.valueOf()).bytes, 1);\n return tsBytes;\n case \"uuid\":\n if (!UUID_PATTERN.test(header.value)) {\n throw new Error(`Invalid UUID received: ${header.value}`);\n }\n const uuidBytes = new Uint8Array(17);\n uuidBytes[0] = 9;\n uuidBytes.set((0, util_hex_encoding_1.fromHex)(header.value.replace(/\\-/g, \"\")), 1);\n return uuidBytes;\n }\n }\n parse(headers) {\n const out = {};\n let position = 0;\n while (position < headers.byteLength) {\n const nameLength = headers.getUint8(position++);\n const name = this.toUtf8(new Uint8Array(headers.buffer, headers.byteOffset + position, nameLength));\n position += nameLength;\n switch (headers.getUint8(position++)) {\n case 0:\n out[name] = {\n type: BOOLEAN_TAG,\n value: true,\n };\n break;\n case 1:\n out[name] = {\n type: BOOLEAN_TAG,\n value: false,\n };\n break;\n case 2:\n out[name] = {\n type: BYTE_TAG,\n value: headers.getInt8(position++),\n };\n break;\n case 3:\n out[name] = {\n type: SHORT_TAG,\n value: headers.getInt16(position, false),\n };\n position += 2;\n break;\n case 4:\n out[name] = {\n type: INT_TAG,\n value: headers.getInt32(position, false),\n };\n position += 4;\n break;\n case 5:\n out[name] = {\n type: LONG_TAG,\n value: new Int64_1.Int64(new Uint8Array(headers.buffer, headers.byteOffset + position, 8)),\n };\n position += 8;\n break;\n case 6:\n const binaryLength = headers.getUint16(position, false);\n position += 2;\n out[name] = {\n type: BINARY_TAG,\n value: new Uint8Array(headers.buffer, headers.byteOffset + position, binaryLength),\n };\n position += binaryLength;\n break;\n case 7:\n const stringLength = headers.getUint16(position, false);\n position += 2;\n out[name] = {\n type: STRING_TAG,\n value: this.toUtf8(new Uint8Array(headers.buffer, headers.byteOffset + position, stringLength)),\n };\n position += stringLength;\n break;\n case 8:\n out[name] = {\n type: TIMESTAMP_TAG,\n value: new Date(new Int64_1.Int64(new Uint8Array(headers.buffer, headers.byteOffset + position, 8)).valueOf()),\n };\n position += 8;\n break;\n case 9:\n const uuidBytes = new Uint8Array(headers.buffer, headers.byteOffset + position, 16);\n position += 16;\n out[name] = {\n type: UUID_TAG,\n value: `${(0, util_hex_encoding_1.toHex)(uuidBytes.subarray(0, 4))}-${(0, util_hex_encoding_1.toHex)(uuidBytes.subarray(4, 6))}-${(0, util_hex_encoding_1.toHex)(uuidBytes.subarray(6, 8))}-${(0, util_hex_encoding_1.toHex)(uuidBytes.subarray(8, 10))}-${(0, util_hex_encoding_1.toHex)(uuidBytes.subarray(10))}`,\n };\n break;\n default:\n throw new Error(`Unrecognized header type tag`);\n }\n }\n return out;\n }\n}\nexports.HeaderMarshaller = HeaderMarshaller;\nvar HEADER_VALUE_TYPE;\n(function (HEADER_VALUE_TYPE) {\n HEADER_VALUE_TYPE[HEADER_VALUE_TYPE[\"boolTrue\"] = 0] = \"boolTrue\";\n HEADER_VALUE_TYPE[HEADER_VALUE_TYPE[\"boolFalse\"] = 1] = \"boolFalse\";\n HEADER_VALUE_TYPE[HEADER_VALUE_TYPE[\"byte\"] = 2] = \"byte\";\n HEADER_VALUE_TYPE[HEADER_VALUE_TYPE[\"short\"] = 3] = \"short\";\n HEADER_VALUE_TYPE[HEADER_VALUE_TYPE[\"integer\"] = 4] = \"integer\";\n HEADER_VALUE_TYPE[HEADER_VALUE_TYPE[\"long\"] = 5] = \"long\";\n HEADER_VALUE_TYPE[HEADER_VALUE_TYPE[\"byteArray\"] = 6] = \"byteArray\";\n HEADER_VALUE_TYPE[HEADER_VALUE_TYPE[\"string\"] = 7] = \"string\";\n HEADER_VALUE_TYPE[HEADER_VALUE_TYPE[\"timestamp\"] = 8] = \"timestamp\";\n HEADER_VALUE_TYPE[HEADER_VALUE_TYPE[\"uuid\"] = 9] = \"uuid\";\n})(HEADER_VALUE_TYPE || (HEADER_VALUE_TYPE = {}));\nconst BOOLEAN_TAG = \"boolean\";\nconst BYTE_TAG = \"byte\";\nconst SHORT_TAG = \"short\";\nconst INT_TAG = \"integer\";\nconst LONG_TAG = \"long\";\nconst BINARY_TAG = \"binary\";\nconst STRING_TAG = \"string\";\nconst TIMESTAMP_TAG = \"timestamp\";\nconst UUID_TAG = \"uuid\";\nconst UUID_PATTERN = /^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$/;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.splitMessage = void 0;\nconst crc32_1 = require(\"@aws-crypto/crc32\");\nconst PRELUDE_MEMBER_LENGTH = 4;\nconst PRELUDE_LENGTH = PRELUDE_MEMBER_LENGTH * 2;\nconst CHECKSUM_LENGTH = 4;\nconst MINIMUM_MESSAGE_LENGTH = PRELUDE_LENGTH + CHECKSUM_LENGTH * 2;\nfunction splitMessage({ byteLength, byteOffset, buffer }) {\n if (byteLength < MINIMUM_MESSAGE_LENGTH) {\n throw new Error(\"Provided message too short to accommodate event stream message overhead\");\n }\n const view = new DataView(buffer, byteOffset, byteLength);\n const messageLength = view.getUint32(0, false);\n if (byteLength !== messageLength) {\n throw new Error(\"Reported message length does not match received message length\");\n }\n const headerLength = view.getUint32(PRELUDE_MEMBER_LENGTH, false);\n const expectedPreludeChecksum = view.getUint32(PRELUDE_LENGTH, false);\n const expectedMessageChecksum = view.getUint32(byteLength - CHECKSUM_LENGTH, false);\n const checksummer = new crc32_1.Crc32().update(new Uint8Array(buffer, byteOffset, PRELUDE_LENGTH));\n if (expectedPreludeChecksum !== checksummer.digest()) {\n throw new Error(`The prelude checksum specified in the message (${expectedPreludeChecksum}) does not match the calculated CRC32 checksum (${checksummer.digest()})`);\n }\n checksummer.update(new Uint8Array(buffer, byteOffset + PRELUDE_LENGTH, byteLength - (PRELUDE_LENGTH + CHECKSUM_LENGTH)));\n if (expectedMessageChecksum !== checksummer.digest()) {\n throw new Error(`The message checksum (${checksummer.digest()}) did not match the expected value of ${expectedMessageChecksum}`);\n }\n return {\n headers: new DataView(buffer, byteOffset + PRELUDE_LENGTH + CHECKSUM_LENGTH, headerLength),\n body: new Uint8Array(buffer, byteOffset + PRELUDE_LENGTH + CHECKSUM_LENGTH + headerLength, messageLength - headerLength - (PRELUDE_LENGTH + CHECKSUM_LENGTH + CHECKSUM_LENGTH)),\n };\n}\nexports.splitMessage = splitMessage;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EventStreamCodec = void 0;\nconst crc32_1 = require(\"@aws-crypto/crc32\");\nconst HeaderMarshaller_1 = require(\"./HeaderMarshaller\");\nconst splitMessage_1 = require(\"./splitMessage\");\nclass EventStreamCodec {\n constructor(toUtf8, fromUtf8) {\n this.headerMarshaller = new HeaderMarshaller_1.HeaderMarshaller(toUtf8, fromUtf8);\n }\n encode({ headers: rawHeaders, body }) {\n const headers = this.headerMarshaller.format(rawHeaders);\n const length = headers.byteLength + body.byteLength + 16;\n const out = new Uint8Array(length);\n const view = new DataView(out.buffer, out.byteOffset, out.byteLength);\n const checksum = new crc32_1.Crc32();\n view.setUint32(0, length, false);\n view.setUint32(4, headers.byteLength, false);\n view.setUint32(8, checksum.update(out.subarray(0, 8)).digest(), false);\n out.set(headers, 12);\n out.set(body, headers.byteLength + 12);\n view.setUint32(length - 4, checksum.update(out.subarray(8, length - 4)).digest(), false);\n return out;\n }\n decode(message) {\n const { headers, body } = (0, splitMessage_1.splitMessage)(message);\n return { headers: this.headerMarshaller.parse(headers), body };\n }\n formatHeaders(rawHeaders) {\n return this.headerMarshaller.format(rawHeaders);\n }\n}\nexports.EventStreamCodec = EventStreamCodec;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./EventStreamCodec\"), exports);\ntslib_1.__exportStar(require(\"./Int64\"), exports);\ntslib_1.__exportStar(require(\"./Message\"), exports);\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getChunkedStream = void 0;\nfunction getChunkedStream(source) {\n let currentMessageTotalLength = 0;\n let currentMessagePendingLength = 0;\n let currentMessage = null;\n let messageLengthBuffer = null;\n const allocateMessage = (size) => {\n if (typeof size !== \"number\") {\n throw new Error(\"Attempted to allocate an event message where size was not a number: \" + size);\n }\n currentMessageTotalLength = size;\n currentMessagePendingLength = 4;\n currentMessage = new Uint8Array(size);\n const currentMessageView = new DataView(currentMessage.buffer);\n currentMessageView.setUint32(0, size, false);\n };\n const iterator = async function* () {\n const sourceIterator = source[Symbol.asyncIterator]();\n while (true) {\n const { value, done } = await sourceIterator.next();\n if (done) {\n if (!currentMessageTotalLength) {\n return;\n }\n else if (currentMessageTotalLength === currentMessagePendingLength) {\n yield currentMessage;\n }\n else {\n throw new Error(\"Truncated event message received.\");\n }\n return;\n }\n const chunkLength = value.length;\n let currentOffset = 0;\n while (currentOffset < chunkLength) {\n if (!currentMessage) {\n const bytesRemaining = chunkLength - currentOffset;\n if (!messageLengthBuffer) {\n messageLengthBuffer = new Uint8Array(4);\n }\n const numBytesForTotal = Math.min(4 - currentMessagePendingLength, bytesRemaining);\n messageLengthBuffer.set(value.slice(currentOffset, currentOffset + numBytesForTotal), currentMessagePendingLength);\n currentMessagePendingLength += numBytesForTotal;\n currentOffset += numBytesForTotal;\n if (currentMessagePendingLength < 4) {\n break;\n }\n allocateMessage(new DataView(messageLengthBuffer.buffer).getUint32(0, false));\n messageLengthBuffer = null;\n }\n const numBytesToWrite = Math.min(currentMessageTotalLength - currentMessagePendingLength, chunkLength - currentOffset);\n currentMessage.set(value.slice(currentOffset, currentOffset + numBytesToWrite), currentMessagePendingLength);\n currentMessagePendingLength += numBytesToWrite;\n currentOffset += numBytesToWrite;\n if (currentMessageTotalLength && currentMessageTotalLength === currentMessagePendingLength) {\n yield currentMessage;\n currentMessage = null;\n currentMessageTotalLength = 0;\n currentMessagePendingLength = 0;\n }\n }\n }\n };\n return {\n [Symbol.asyncIterator]: iterator,\n };\n}\nexports.getChunkedStream = getChunkedStream;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getUnmarshalledStream = void 0;\nfunction getUnmarshalledStream(source, options) {\n return {\n [Symbol.asyncIterator]: async function* () {\n for await (const chunk of source) {\n const message = options.eventStreamCodec.decode(chunk);\n const { value: messageType } = message.headers[\":message-type\"];\n if (messageType === \"error\") {\n const unmodeledError = new Error(message.headers[\":error-message\"].value || \"UnknownError\");\n unmodeledError.name = message.headers[\":error-code\"].value;\n throw unmodeledError;\n }\n else if (messageType === \"exception\") {\n const code = message.headers[\":exception-type\"].value;\n const exception = { [code]: message };\n const deserializedException = await options.deserializer(exception);\n if (deserializedException.$unknown) {\n const error = new Error(options.toUtf8(message.body));\n error.name = code;\n throw error;\n }\n throw deserializedException[code];\n }\n else if (messageType === \"event\") {\n const event = {\n [message.headers[\":event-type\"].value]: message,\n };\n const deserialized = await options.deserializer(event);\n if (deserialized.$unknown)\n continue;\n yield deserialized;\n }\n else {\n throw Error(`Unrecognizable event type: ${message.headers[\":event-type\"].value}`);\n }\n }\n },\n };\n}\nexports.getUnmarshalledStream = getUnmarshalledStream;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EventStreamMarshaller = void 0;\nconst eventstream_codec_1 = require(\"@aws-sdk/eventstream-codec\");\nconst getChunkedStream_1 = require(\"./getChunkedStream\");\nconst getUnmarshalledStream_1 = require(\"./getUnmarshalledStream\");\nclass EventStreamMarshaller {\n constructor({ utf8Encoder, utf8Decoder }) {\n this.eventStreamCodec = new eventstream_codec_1.EventStreamCodec(utf8Encoder, utf8Decoder);\n this.utfEncoder = utf8Encoder;\n }\n deserialize(body, deserializer) {\n const chunkedStream = (0, getChunkedStream_1.getChunkedStream)(body);\n const unmarshalledStream = (0, getUnmarshalledStream_1.getUnmarshalledStream)(chunkedStream, {\n eventStreamCodec: this.eventStreamCodec,\n deserializer,\n toUtf8: this.utfEncoder,\n });\n return unmarshalledStream;\n }\n serialize(input, serializer) {\n const self = this;\n const serializedIterator = async function* () {\n for await (const chunk of input) {\n const payloadBuf = self.eventStreamCodec.encode(serializer(chunk));\n yield payloadBuf;\n }\n yield new Uint8Array(0);\n };\n return {\n [Symbol.asyncIterator]: serializedIterator,\n };\n }\n}\nexports.EventStreamMarshaller = EventStreamMarshaller;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.eventStreamSerdeProvider = void 0;\nconst EventStreamMarshaller_1 = require(\"./EventStreamMarshaller\");\nconst eventStreamSerdeProvider = (options) => new EventStreamMarshaller_1.EventStreamMarshaller(options);\nexports.eventStreamSerdeProvider = eventStreamSerdeProvider;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./EventStreamMarshaller\"), exports);\ntslib_1.__exportStar(require(\"./provider\"), exports);\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.readabletoIterable = void 0;\nasync function* readabletoIterable(readStream) {\n let streamEnded = false;\n let generationEnded = false;\n const records = new Array();\n readStream.on(\"error\", (err) => {\n if (!streamEnded) {\n streamEnded = true;\n }\n if (err) {\n throw err;\n }\n });\n readStream.on(\"data\", (data) => {\n records.push(data);\n });\n readStream.on(\"end\", () => {\n streamEnded = true;\n });\n while (!generationEnded) {\n const value = await new Promise((resolve) => setTimeout(() => resolve(records.shift()), 0));\n if (value) {\n yield value;\n }\n generationEnded = streamEnded && records.length === 0;\n }\n}\nexports.readabletoIterable = readabletoIterable;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EventStreamMarshaller = void 0;\nconst eventstream_serde_universal_1 = require(\"@aws-sdk/eventstream-serde-universal\");\nconst stream_1 = require(\"stream\");\nconst utils_1 = require(\"./utils\");\nclass EventStreamMarshaller {\n constructor({ utf8Encoder, utf8Decoder }) {\n this.universalMarshaller = new eventstream_serde_universal_1.EventStreamMarshaller({\n utf8Decoder,\n utf8Encoder,\n });\n }\n deserialize(body, deserializer) {\n const bodyIterable = typeof body[Symbol.asyncIterator] === \"function\" ? body : (0, utils_1.readabletoIterable)(body);\n return this.universalMarshaller.deserialize(bodyIterable, deserializer);\n }\n serialize(input, serializer) {\n return stream_1.Readable.from(this.universalMarshaller.serialize(input, serializer));\n }\n}\nexports.EventStreamMarshaller = EventStreamMarshaller;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.eventStreamSerdeProvider = void 0;\nconst EventStreamMarshaller_1 = require(\"./EventStreamMarshaller\");\nconst eventStreamSerdeProvider = (options) => new EventStreamMarshaller_1.EventStreamMarshaller(options);\nexports.eventStreamSerdeProvider = eventStreamSerdeProvider;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./EventStreamMarshaller\"), exports);\ntslib_1.__exportStar(require(\"./provider\"), exports);\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HashCalculator = void 0;\nconst util_utf8_1 = require(\"@aws-sdk/util-utf8\");\nconst stream_1 = require(\"stream\");\nclass HashCalculator extends stream_1.Writable {\n constructor(hash, options) {\n super(options);\n this.hash = hash;\n }\n _write(chunk, encoding, callback) {\n try {\n this.hash.update((0, util_utf8_1.toUint8Array)(chunk));\n }\n catch (err) {\n return callback(err);\n }\n callback();\n }\n}\nexports.HashCalculator = HashCalculator;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fileStreamHasher = void 0;\nconst fs_1 = require(\"fs\");\nconst HashCalculator_1 = require(\"./HashCalculator\");\nconst fileStreamHasher = (hashCtor, fileStream) => new Promise((resolve, reject) => {\n if (!isReadStream(fileStream)) {\n reject(new Error(\"Unable to calculate hash for non-file streams.\"));\n return;\n }\n const fileStreamTee = (0, fs_1.createReadStream)(fileStream.path, {\n start: fileStream.start,\n end: fileStream.end,\n });\n const hash = new hashCtor();\n const hashCalculator = new HashCalculator_1.HashCalculator(hash);\n fileStreamTee.pipe(hashCalculator);\n fileStreamTee.on(\"error\", (err) => {\n hashCalculator.end();\n reject(err);\n });\n hashCalculator.on(\"error\", reject);\n hashCalculator.on(\"finish\", function () {\n hash.digest().then(resolve).catch(reject);\n });\n});\nexports.fileStreamHasher = fileStreamHasher;\nconst isReadStream = (stream) => typeof stream.path === \"string\";\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.readableStreamHasher = void 0;\nconst HashCalculator_1 = require(\"./HashCalculator\");\nconst readableStreamHasher = (hashCtor, readableStream) => {\n if (readableStream.readableFlowing !== null) {\n throw new Error(\"Unable to calculate hash for flowing readable stream\");\n }\n const hash = new hashCtor();\n const hashCalculator = new HashCalculator_1.HashCalculator(hash);\n readableStream.pipe(hashCalculator);\n return new Promise((resolve, reject) => {\n readableStream.on(\"error\", (err) => {\n hashCalculator.end();\n reject(err);\n });\n hashCalculator.on(\"error\", reject);\n hashCalculator.on(\"finish\", () => {\n hash.digest().then(resolve).catch(reject);\n });\n });\n};\nexports.readableStreamHasher = readableStreamHasher;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./fileStreamHasher\"), exports);\ntslib_1.__exportStar(require(\"./readableStreamHasher\"), exports);\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NODE_DISABLE_MULTIREGION_ACCESS_POINT_CONFIG_OPTIONS = exports.NODE_DISABLE_MULTIREGION_ACCESS_POINT_INI_NAME = exports.NODE_DISABLE_MULTIREGION_ACCESS_POINT_ENV_NAME = void 0;\nconst util_config_provider_1 = require(\"@aws-sdk/util-config-provider\");\nexports.NODE_DISABLE_MULTIREGION_ACCESS_POINT_ENV_NAME = \"AWS_S3_DISABLE_MULTIREGION_ACCESS_POINTS\";\nexports.NODE_DISABLE_MULTIREGION_ACCESS_POINT_INI_NAME = \"s3_disable_multiregion_access_points\";\nexports.NODE_DISABLE_MULTIREGION_ACCESS_POINT_CONFIG_OPTIONS = {\n environmentVariableSelector: (env) => (0, util_config_provider_1.booleanSelector)(env, exports.NODE_DISABLE_MULTIREGION_ACCESS_POINT_ENV_NAME, util_config_provider_1.SelectorType.ENV),\n configFileSelector: (profile) => (0, util_config_provider_1.booleanSelector)(profile, exports.NODE_DISABLE_MULTIREGION_ACCESS_POINT_INI_NAME, util_config_provider_1.SelectorType.CONFIG),\n default: false,\n};\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NODE_USE_ARN_REGION_CONFIG_OPTIONS = exports.NODE_USE_ARN_REGION_INI_NAME = exports.NODE_USE_ARN_REGION_ENV_NAME = void 0;\nconst util_config_provider_1 = require(\"@aws-sdk/util-config-provider\");\nexports.NODE_USE_ARN_REGION_ENV_NAME = \"AWS_S3_USE_ARN_REGION\";\nexports.NODE_USE_ARN_REGION_INI_NAME = \"s3_use_arn_region\";\nexports.NODE_USE_ARN_REGION_CONFIG_OPTIONS = {\n environmentVariableSelector: (env) => (0, util_config_provider_1.booleanSelector)(env, exports.NODE_USE_ARN_REGION_ENV_NAME, util_config_provider_1.SelectorType.ENV),\n configFileSelector: (profile) => (0, util_config_provider_1.booleanSelector)(profile, exports.NODE_USE_ARN_REGION_INI_NAME, util_config_provider_1.SelectorType.CONFIG),\n default: false,\n};\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.validateMrapAlias = exports.validateNoFIPS = exports.validateNoDualstack = exports.getArnResources = exports.validateCustomEndpoint = exports.validateDNSHostLabel = exports.validateAccountId = exports.validateRegionalClient = exports.validateRegion = exports.validatePartition = exports.validateOutpostService = exports.validateS3Service = exports.validateService = exports.validateArnEndpointOptions = exports.getSuffixForArnEndpoint = exports.getSuffix = exports.isDnsCompatibleBucketName = exports.isBucketNameOptions = exports.S3_HOSTNAME_PATTERN = exports.DOT_PATTERN = void 0;\nconst DOMAIN_PATTERN = /^[a-z0-9][a-z0-9\\.\\-]{1,61}[a-z0-9]$/;\nconst IP_ADDRESS_PATTERN = /(\\d+\\.){3}\\d+/;\nconst DOTS_PATTERN = /\\.\\./;\nexports.DOT_PATTERN = /\\./;\nexports.S3_HOSTNAME_PATTERN = /^(.+\\.)?s3(-fips)?(\\.dualstack)?[.-]([a-z0-9-]+)\\./;\nconst S3_US_EAST_1_ALTNAME_PATTERN = /^s3(-external-1)?\\.amazonaws\\.com$/;\nconst AWS_PARTITION_SUFFIX = \"amazonaws.com\";\nconst isBucketNameOptions = (options) => typeof options.bucketName === \"string\";\nexports.isBucketNameOptions = isBucketNameOptions;\nconst isDnsCompatibleBucketName = (bucketName) => DOMAIN_PATTERN.test(bucketName) && !IP_ADDRESS_PATTERN.test(bucketName) && !DOTS_PATTERN.test(bucketName);\nexports.isDnsCompatibleBucketName = isDnsCompatibleBucketName;\nconst getRegionalSuffix = (hostname) => {\n const parts = hostname.match(exports.S3_HOSTNAME_PATTERN);\n return [parts[4], hostname.replace(new RegExp(`^${parts[0]}`), \"\")];\n};\nconst getSuffix = (hostname) => S3_US_EAST_1_ALTNAME_PATTERN.test(hostname) ? [\"us-east-1\", AWS_PARTITION_SUFFIX] : getRegionalSuffix(hostname);\nexports.getSuffix = getSuffix;\nconst getSuffixForArnEndpoint = (hostname) => S3_US_EAST_1_ALTNAME_PATTERN.test(hostname)\n ? [hostname.replace(`.${AWS_PARTITION_SUFFIX}`, \"\"), AWS_PARTITION_SUFFIX]\n : getRegionalSuffix(hostname);\nexports.getSuffixForArnEndpoint = getSuffixForArnEndpoint;\nconst validateArnEndpointOptions = (options) => {\n if (options.pathStyleEndpoint) {\n throw new Error(\"Path-style S3 endpoint is not supported when bucket is an ARN\");\n }\n if (options.accelerateEndpoint) {\n throw new Error(\"Accelerate endpoint is not supported when bucket is an ARN\");\n }\n if (!options.tlsCompatible) {\n throw new Error(\"HTTPS is required when bucket is an ARN\");\n }\n};\nexports.validateArnEndpointOptions = validateArnEndpointOptions;\nconst validateService = (service) => {\n if (service !== \"s3\" && service !== \"s3-outposts\" && service !== \"s3-object-lambda\") {\n throw new Error(\"Expect 's3' or 's3-outposts' or 's3-object-lambda' in ARN service component\");\n }\n};\nexports.validateService = validateService;\nconst validateS3Service = (service) => {\n if (service !== \"s3\") {\n throw new Error(\"Expect 's3' in Accesspoint ARN service component\");\n }\n};\nexports.validateS3Service = validateS3Service;\nconst validateOutpostService = (service) => {\n if (service !== \"s3-outposts\") {\n throw new Error(\"Expect 's3-posts' in Outpost ARN service component\");\n }\n};\nexports.validateOutpostService = validateOutpostService;\nconst validatePartition = (partition, options) => {\n if (partition !== options.clientPartition) {\n throw new Error(`Partition in ARN is incompatible, got \"${partition}\" but expected \"${options.clientPartition}\"`);\n }\n};\nexports.validatePartition = validatePartition;\nconst validateRegion = (region, options) => {\n if (region === \"\") {\n throw new Error(\"ARN region is empty\");\n }\n if (options.useFipsEndpoint) {\n if (!options.allowFipsRegion) {\n throw new Error(\"FIPS region is not supported\");\n }\n else if (!isEqualRegions(region, options.clientRegion)) {\n throw new Error(`Client FIPS region ${options.clientRegion} doesn't match region ${region} in ARN`);\n }\n }\n if (!options.useArnRegion &&\n !isEqualRegions(region, options.clientRegion || \"\") &&\n !isEqualRegions(region, options.clientSigningRegion || \"\")) {\n throw new Error(`Region in ARN is incompatible, got ${region} but expected ${options.clientRegion}`);\n }\n};\nexports.validateRegion = validateRegion;\nconst validateRegionalClient = (region) => {\n if ([\"s3-external-1\", \"aws-global\"].includes(region)) {\n throw new Error(`Client region ${region} is not regional`);\n }\n};\nexports.validateRegionalClient = validateRegionalClient;\nconst isEqualRegions = (regionA, regionB) => regionA === regionB;\nconst validateAccountId = (accountId) => {\n if (!/[0-9]{12}/.exec(accountId)) {\n throw new Error(\"Access point ARN accountID does not match regex '[0-9]{12}'\");\n }\n};\nexports.validateAccountId = validateAccountId;\nconst validateDNSHostLabel = (label, options = { tlsCompatible: true }) => {\n if (label.length >= 64 ||\n !/^[a-z0-9][a-z0-9.-]*[a-z0-9]$/.test(label) ||\n /(\\d+\\.){3}\\d+/.test(label) ||\n /[.-]{2}/.test(label) ||\n ((options === null || options === void 0 ? void 0 : options.tlsCompatible) && exports.DOT_PATTERN.test(label))) {\n throw new Error(`Invalid DNS label ${label}`);\n }\n};\nexports.validateDNSHostLabel = validateDNSHostLabel;\nconst validateCustomEndpoint = (options) => {\n if (options.isCustomEndpoint) {\n if (options.dualstackEndpoint)\n throw new Error(\"Dualstack endpoint is not supported with custom endpoint\");\n if (options.accelerateEndpoint)\n throw new Error(\"Accelerate endpoint is not supported with custom endpoint\");\n }\n};\nexports.validateCustomEndpoint = validateCustomEndpoint;\nconst getArnResources = (resource) => {\n const delimiter = resource.includes(\":\") ? \":\" : \"/\";\n const [resourceType, ...rest] = resource.split(delimiter);\n if (resourceType === \"accesspoint\") {\n if (rest.length !== 1 || rest[0] === \"\") {\n throw new Error(`Access Point ARN should have one resource accesspoint${delimiter}{accesspointname}`);\n }\n return { accesspointName: rest[0] };\n }\n else if (resourceType === \"outpost\") {\n if (!rest[0] || rest[1] !== \"accesspoint\" || !rest[2] || rest.length !== 3) {\n throw new Error(`Outpost ARN should have resource outpost${delimiter}{outpostId}${delimiter}accesspoint${delimiter}{accesspointName}`);\n }\n const [outpostId, _, accesspointName] = rest;\n return { outpostId, accesspointName };\n }\n else {\n throw new Error(`ARN resource should begin with 'accesspoint${delimiter}' or 'outpost${delimiter}'`);\n }\n};\nexports.getArnResources = getArnResources;\nconst validateNoDualstack = (dualstackEndpoint) => {\n if (dualstackEndpoint)\n throw new Error(\"Dualstack endpoint is not supported with Outpost or Multi-region Access Point ARN.\");\n};\nexports.validateNoDualstack = validateNoDualstack;\nconst validateNoFIPS = (useFipsEndpoint) => {\n if (useFipsEndpoint)\n throw new Error(`FIPS region is not supported with Outpost.`);\n};\nexports.validateNoFIPS = validateNoFIPS;\nconst validateMrapAlias = (name) => {\n try {\n name.split(\".\").forEach((label) => {\n (0, exports.validateDNSHostLabel)(label);\n });\n }\n catch (e) {\n throw new Error(`\"${name}\" is not a DNS compatible name.`);\n }\n};\nexports.validateMrapAlias = validateMrapAlias;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.bucketHostname = void 0;\nconst bucketHostnameUtils_1 = require(\"./bucketHostnameUtils\");\nconst bucketHostname = (options) => {\n (0, bucketHostnameUtils_1.validateCustomEndpoint)(options);\n return (0, bucketHostnameUtils_1.isBucketNameOptions)(options)\n ?\n getEndpointFromBucketName(options)\n :\n getEndpointFromArn(options);\n};\nexports.bucketHostname = bucketHostname;\nconst getEndpointFromBucketName = ({ accelerateEndpoint = false, clientRegion: region, baseHostname, bucketName, dualstackEndpoint = false, fipsEndpoint = false, pathStyleEndpoint = false, tlsCompatible = true, isCustomEndpoint = false, }) => {\n const [clientRegion, hostnameSuffix] = isCustomEndpoint ? [region, baseHostname] : (0, bucketHostnameUtils_1.getSuffix)(baseHostname);\n if (pathStyleEndpoint || !(0, bucketHostnameUtils_1.isDnsCompatibleBucketName)(bucketName) || (tlsCompatible && bucketHostnameUtils_1.DOT_PATTERN.test(bucketName))) {\n return {\n bucketEndpoint: false,\n hostname: dualstackEndpoint ? `s3.dualstack.${clientRegion}.${hostnameSuffix}` : baseHostname,\n };\n }\n if (accelerateEndpoint) {\n baseHostname = `s3-accelerate${dualstackEndpoint ? \".dualstack\" : \"\"}.${hostnameSuffix}`;\n }\n else if (dualstackEndpoint) {\n baseHostname = `s3.dualstack.${clientRegion}.${hostnameSuffix}`;\n }\n return {\n bucketEndpoint: true,\n hostname: `${bucketName}.${baseHostname}`,\n };\n};\nconst getEndpointFromArn = (options) => {\n const { isCustomEndpoint, baseHostname, clientRegion } = options;\n const hostnameSuffix = isCustomEndpoint ? baseHostname : (0, bucketHostnameUtils_1.getSuffixForArnEndpoint)(baseHostname)[1];\n const { pathStyleEndpoint, accelerateEndpoint = false, fipsEndpoint = false, tlsCompatible = true, bucketName, clientPartition = \"aws\", } = options;\n (0, bucketHostnameUtils_1.validateArnEndpointOptions)({ pathStyleEndpoint, accelerateEndpoint, tlsCompatible });\n const { service, partition, accountId, region, resource } = bucketName;\n (0, bucketHostnameUtils_1.validateService)(service);\n (0, bucketHostnameUtils_1.validatePartition)(partition, { clientPartition });\n (0, bucketHostnameUtils_1.validateAccountId)(accountId);\n const { accesspointName, outpostId } = (0, bucketHostnameUtils_1.getArnResources)(resource);\n if (service === \"s3-object-lambda\") {\n return getEndpointFromObjectLambdaArn({ ...options, tlsCompatible, bucketName, accesspointName, hostnameSuffix });\n }\n if (region === \"\") {\n return getEndpointFromMRAPArn({ ...options, clientRegion, mrapAlias: accesspointName, hostnameSuffix });\n }\n if (outpostId) {\n return getEndpointFromOutpostArn({ ...options, clientRegion, outpostId, accesspointName, hostnameSuffix });\n }\n return getEndpointFromAccessPointArn({ ...options, clientRegion, accesspointName, hostnameSuffix });\n};\nconst getEndpointFromObjectLambdaArn = ({ dualstackEndpoint = false, fipsEndpoint = false, tlsCompatible = true, useArnRegion, clientRegion, clientSigningRegion = clientRegion, accesspointName, bucketName, hostnameSuffix, }) => {\n const { accountId, region, service } = bucketName;\n (0, bucketHostnameUtils_1.validateRegionalClient)(clientRegion);\n (0, bucketHostnameUtils_1.validateRegion)(region, {\n useArnRegion,\n clientRegion,\n clientSigningRegion,\n allowFipsRegion: true,\n useFipsEndpoint: fipsEndpoint,\n });\n (0, bucketHostnameUtils_1.validateNoDualstack)(dualstackEndpoint);\n const DNSHostLabel = `${accesspointName}-${accountId}`;\n (0, bucketHostnameUtils_1.validateDNSHostLabel)(DNSHostLabel, { tlsCompatible });\n const endpointRegion = useArnRegion ? region : clientRegion;\n const signingRegion = useArnRegion ? region : clientSigningRegion;\n return {\n bucketEndpoint: true,\n hostname: `${DNSHostLabel}.${service}${fipsEndpoint ? \"-fips\" : \"\"}.${endpointRegion}.${hostnameSuffix}`,\n signingRegion,\n signingService: service,\n };\n};\nconst getEndpointFromMRAPArn = ({ disableMultiregionAccessPoints, dualstackEndpoint = false, isCustomEndpoint, mrapAlias, hostnameSuffix, }) => {\n if (disableMultiregionAccessPoints === true) {\n throw new Error(\"SDK is attempting to use a MRAP ARN. Please enable to feature.\");\n }\n (0, bucketHostnameUtils_1.validateMrapAlias)(mrapAlias);\n (0, bucketHostnameUtils_1.validateNoDualstack)(dualstackEndpoint);\n return {\n bucketEndpoint: true,\n hostname: `${mrapAlias}${isCustomEndpoint ? \"\" : `.accesspoint.s3-global`}.${hostnameSuffix}`,\n signingRegion: \"*\",\n };\n};\nconst getEndpointFromOutpostArn = ({ useArnRegion, clientRegion, clientSigningRegion = clientRegion, bucketName, outpostId, dualstackEndpoint = false, fipsEndpoint = false, tlsCompatible = true, accesspointName, isCustomEndpoint, hostnameSuffix, }) => {\n (0, bucketHostnameUtils_1.validateRegionalClient)(clientRegion);\n (0, bucketHostnameUtils_1.validateRegion)(bucketName.region, { useArnRegion, clientRegion, clientSigningRegion, useFipsEndpoint: fipsEndpoint });\n const DNSHostLabel = `${accesspointName}-${bucketName.accountId}`;\n (0, bucketHostnameUtils_1.validateDNSHostLabel)(DNSHostLabel, { tlsCompatible });\n const endpointRegion = useArnRegion ? bucketName.region : clientRegion;\n const signingRegion = useArnRegion ? bucketName.region : clientSigningRegion;\n (0, bucketHostnameUtils_1.validateOutpostService)(bucketName.service);\n (0, bucketHostnameUtils_1.validateDNSHostLabel)(outpostId, { tlsCompatible });\n (0, bucketHostnameUtils_1.validateNoDualstack)(dualstackEndpoint);\n (0, bucketHostnameUtils_1.validateNoFIPS)(fipsEndpoint);\n const hostnamePrefix = `${DNSHostLabel}.${outpostId}`;\n return {\n bucketEndpoint: true,\n hostname: `${hostnamePrefix}${isCustomEndpoint ? \"\" : `.s3-outposts.${endpointRegion}`}.${hostnameSuffix}`,\n signingRegion,\n signingService: \"s3-outposts\",\n };\n};\nconst getEndpointFromAccessPointArn = ({ useArnRegion, clientRegion, clientSigningRegion = clientRegion, bucketName, dualstackEndpoint = false, fipsEndpoint = false, tlsCompatible = true, accesspointName, isCustomEndpoint, hostnameSuffix, }) => {\n (0, bucketHostnameUtils_1.validateRegionalClient)(clientRegion);\n (0, bucketHostnameUtils_1.validateRegion)(bucketName.region, {\n useArnRegion,\n clientRegion,\n clientSigningRegion,\n allowFipsRegion: true,\n useFipsEndpoint: fipsEndpoint,\n });\n const hostnamePrefix = `${accesspointName}-${bucketName.accountId}`;\n (0, bucketHostnameUtils_1.validateDNSHostLabel)(hostnamePrefix, { tlsCompatible });\n const endpointRegion = useArnRegion ? bucketName.region : clientRegion;\n const signingRegion = useArnRegion ? bucketName.region : clientSigningRegion;\n (0, bucketHostnameUtils_1.validateS3Service)(bucketName.service);\n return {\n bucketEndpoint: true,\n hostname: `${hostnamePrefix}${isCustomEndpoint\n ? \"\"\n : `.s3-accesspoint${fipsEndpoint ? \"-fips\" : \"\"}${dualstackEndpoint ? \".dualstack\" : \"\"}.${endpointRegion}`}.${hostnameSuffix}`,\n signingRegion,\n };\n};\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getBucketEndpointPlugin = exports.bucketEndpointMiddlewareOptions = exports.bucketEndpointMiddleware = void 0;\nconst protocol_http_1 = require(\"@aws-sdk/protocol-http\");\nconst util_arn_parser_1 = require(\"@aws-sdk/util-arn-parser\");\nconst bucketHostname_1 = require(\"./bucketHostname\");\nconst bucketEndpointMiddleware = (options) => (next, context) => async (args) => {\n const { Bucket: bucketName } = args.input;\n let replaceBucketInPath = options.bucketEndpoint;\n const request = args.request;\n if (protocol_http_1.HttpRequest.isInstance(request)) {\n if (options.bucketEndpoint) {\n request.hostname = bucketName;\n }\n else if ((0, util_arn_parser_1.validate)(bucketName)) {\n const bucketArn = (0, util_arn_parser_1.parse)(bucketName);\n const clientRegion = await options.region();\n const useDualstackEndpoint = await options.useDualstackEndpoint();\n const useFipsEndpoint = await options.useFipsEndpoint();\n const { partition, signingRegion = clientRegion } = (await options.regionInfoProvider(clientRegion, { useDualstackEndpoint, useFipsEndpoint })) || {};\n const useArnRegion = await options.useArnRegion();\n const { hostname, bucketEndpoint, signingRegion: modifiedSigningRegion, signingService, } = (0, bucketHostname_1.bucketHostname)({\n bucketName: bucketArn,\n baseHostname: request.hostname,\n accelerateEndpoint: options.useAccelerateEndpoint,\n dualstackEndpoint: useDualstackEndpoint,\n fipsEndpoint: useFipsEndpoint,\n pathStyleEndpoint: options.forcePathStyle,\n tlsCompatible: request.protocol === \"https:\",\n useArnRegion,\n clientPartition: partition,\n clientSigningRegion: signingRegion,\n clientRegion: clientRegion,\n isCustomEndpoint: options.isCustomEndpoint,\n disableMultiregionAccessPoints: await options.disableMultiregionAccessPoints(),\n });\n if (modifiedSigningRegion && modifiedSigningRegion !== signingRegion) {\n context[\"signing_region\"] = modifiedSigningRegion;\n }\n if (signingService && signingService !== \"s3\") {\n context[\"signing_service\"] = signingService;\n }\n request.hostname = hostname;\n replaceBucketInPath = bucketEndpoint;\n }\n else {\n const clientRegion = await options.region();\n const dualstackEndpoint = await options.useDualstackEndpoint();\n const fipsEndpoint = await options.useFipsEndpoint();\n const { hostname, bucketEndpoint } = (0, bucketHostname_1.bucketHostname)({\n bucketName,\n clientRegion,\n baseHostname: request.hostname,\n accelerateEndpoint: options.useAccelerateEndpoint,\n dualstackEndpoint,\n fipsEndpoint,\n pathStyleEndpoint: options.forcePathStyle,\n tlsCompatible: request.protocol === \"https:\",\n isCustomEndpoint: options.isCustomEndpoint,\n });\n request.hostname = hostname;\n replaceBucketInPath = bucketEndpoint;\n }\n if (replaceBucketInPath) {\n request.path = request.path.replace(/^(\\/)?[^\\/]+/, \"\");\n if (request.path === \"\") {\n request.path = \"/\";\n }\n }\n }\n return next({ ...args, request });\n};\nexports.bucketEndpointMiddleware = bucketEndpointMiddleware;\nexports.bucketEndpointMiddlewareOptions = {\n tags: [\"BUCKET_ENDPOINT\"],\n name: \"bucketEndpointMiddleware\",\n relation: \"before\",\n toMiddleware: \"hostHeaderMiddleware\",\n override: true,\n};\nconst getBucketEndpointPlugin = (options) => ({\n applyToStack: (clientStack) => {\n clientStack.addRelativeTo((0, exports.bucketEndpointMiddleware)(options), exports.bucketEndpointMiddlewareOptions);\n },\n});\nexports.getBucketEndpointPlugin = getBucketEndpointPlugin;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.resolveBucketEndpointConfig = void 0;\nfunction resolveBucketEndpointConfig(input) {\n const { bucketEndpoint = false, forcePathStyle = false, useAccelerateEndpoint = false, useArnRegion = false, disableMultiregionAccessPoints = false, } = input;\n return {\n ...input,\n bucketEndpoint,\n forcePathStyle,\n useAccelerateEndpoint,\n useArnRegion: typeof useArnRegion === \"function\" ? useArnRegion : () => Promise.resolve(useArnRegion),\n disableMultiregionAccessPoints: typeof disableMultiregionAccessPoints === \"function\"\n ? disableMultiregionAccessPoints\n : () => Promise.resolve(disableMultiregionAccessPoints),\n };\n}\nexports.resolveBucketEndpointConfig = resolveBucketEndpointConfig;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.validateNoFIPS = exports.validateNoDualstack = exports.validateDNSHostLabel = exports.validateRegion = exports.validateAccountId = exports.validatePartition = exports.validateOutpostService = exports.getSuffixForArnEndpoint = exports.getArnResources = void 0;\nconst tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./NodeDisableMultiregionAccessPointConfigOptions\"), exports);\ntslib_1.__exportStar(require(\"./NodeUseArnRegionConfigOptions\"), exports);\ntslib_1.__exportStar(require(\"./bucketEndpointMiddleware\"), exports);\ntslib_1.__exportStar(require(\"./bucketHostname\"), exports);\ntslib_1.__exportStar(require(\"./configurations\"), exports);\nvar bucketHostnameUtils_1 = require(\"./bucketHostnameUtils\");\nObject.defineProperty(exports, \"getArnResources\", { enumerable: true, get: function () { return bucketHostnameUtils_1.getArnResources; } });\nObject.defineProperty(exports, \"getSuffixForArnEndpoint\", { enumerable: true, get: function () { return bucketHostnameUtils_1.getSuffixForArnEndpoint; } });\nObject.defineProperty(exports, \"validateOutpostService\", { enumerable: true, get: function () { return bucketHostnameUtils_1.validateOutpostService; } });\nObject.defineProperty(exports, \"validatePartition\", { enumerable: true, get: function () { return bucketHostnameUtils_1.validatePartition; } });\nObject.defineProperty(exports, \"validateAccountId\", { enumerable: true, get: function () { return bucketHostnameUtils_1.validateAccountId; } });\nObject.defineProperty(exports, \"validateRegion\", { enumerable: true, get: function () { return bucketHostnameUtils_1.validateRegion; } });\nObject.defineProperty(exports, \"validateDNSHostLabel\", { enumerable: true, get: function () { return bucketHostnameUtils_1.validateDNSHostLabel; } });\nObject.defineProperty(exports, \"validateNoDualstack\", { enumerable: true, get: function () { return bucketHostnameUtils_1.validateNoDualstack; } });\nObject.defineProperty(exports, \"validateNoFIPS\", { enumerable: true, get: function () { return bucketHostnameUtils_1.validateNoFIPS; } });\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getAwsChunkedEncodingStream = void 0;\nconst stream_1 = require(\"stream\");\nconst getAwsChunkedEncodingStream = (readableStream, options) => {\n const { base64Encoder, bodyLengthChecker, checksumAlgorithmFn, checksumLocationName, streamHasher } = options;\n const checksumRequired = base64Encoder !== undefined &&\n checksumAlgorithmFn !== undefined &&\n checksumLocationName !== undefined &&\n streamHasher !== undefined;\n const digest = checksumRequired ? streamHasher(checksumAlgorithmFn, readableStream) : undefined;\n const awsChunkedEncodingStream = new stream_1.Readable({ read: () => { } });\n readableStream.on(\"data\", (data) => {\n awsChunkedEncodingStream.push(`${(bodyLengthChecker(data) || 0).toString(16)}\\r\\n${data.toString()}\\r\\n`);\n });\n readableStream.on(\"end\", async () => {\n awsChunkedEncodingStream.push(`0\\r\\n`);\n if (checksumRequired) {\n const checksum = base64Encoder(await digest);\n awsChunkedEncodingStream.push(`${checksumLocationName}:${checksum}\\r\\n`);\n awsChunkedEncodingStream.push(`\\r\\n`);\n }\n awsChunkedEncodingStream.push(null);\n });\n return awsChunkedEncodingStream;\n};\nexports.getAwsChunkedEncodingStream = getAwsChunkedEncodingStream;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.sdkStreamMixin = void 0;\nconst node_http_handler_1 = require(\"@aws-sdk/node-http-handler\");\nconst util_buffer_from_1 = require(\"@aws-sdk/util-buffer-from\");\nconst stream_1 = require(\"stream\");\nconst util_1 = require(\"util\");\nconst ERR_MSG_STREAM_HAS_BEEN_TRANSFORMED = \"The stream has already been transformed.\";\nconst sdkStreamMixin = (stream) => {\n var _a, _b;\n if (!(stream instanceof stream_1.Readable)) {\n const name = ((_b = (_a = stream === null || stream === void 0 ? void 0 : stream.__proto__) === null || _a === void 0 ? void 0 : _a.constructor) === null || _b === void 0 ? void 0 : _b.name) || stream;\n throw new Error(`Unexpected stream implementation, expect Stream.Readable instance, got ${name}`);\n }\n let transformed = false;\n const transformToByteArray = async () => {\n if (transformed) {\n throw new Error(ERR_MSG_STREAM_HAS_BEEN_TRANSFORMED);\n }\n transformed = true;\n return await (0, node_http_handler_1.streamCollector)(stream);\n };\n return Object.assign(stream, {\n transformToByteArray,\n transformToString: async (encoding) => {\n const buf = await transformToByteArray();\n if (encoding === undefined || Buffer.isEncoding(encoding)) {\n return (0, util_buffer_from_1.fromArrayBuffer)(buf.buffer, buf.byteOffset, buf.byteLength).toString(encoding);\n }\n else {\n const decoder = new util_1.TextDecoder(encoding);\n return decoder.decode(buf);\n }\n },\n transformToWebStream: () => {\n if (transformed) {\n throw new Error(ERR_MSG_STREAM_HAS_BEEN_TRANSFORMED);\n }\n if (stream.readableFlowing !== null) {\n throw new Error(\"The stream has been consumed by other callbacks.\");\n }\n if (typeof stream_1.Readable.toWeb !== \"function\") {\n throw new Error(\"Readable.toWeb() is not supported. Please make sure you are using Node.js >= 17.0.0, or polyfill is available.\");\n }\n transformed = true;\n return stream_1.Readable.toWeb(stream);\n },\n });\n};\nexports.sdkStreamMixin = sdkStreamMixin;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./getAwsChunkedEncodingStream\"), exports);\ntslib_1.__exportStar(require(\"./sdk-stream-mixin\"), exports);\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SignatureV4MultiRegion = void 0;\nconst signature_v4_1 = require(\"@aws-sdk/signature-v4\");\nclass SignatureV4MultiRegion {\n constructor(options) {\n this.sigv4Signer = new signature_v4_1.SignatureV4(options);\n this.signerOptions = options;\n }\n async sign(requestToSign, options = {}) {\n if (options.signingRegion === \"*\") {\n if (this.signerOptions.runtime !== \"node\")\n throw new Error(\"This request requires signing with SigV4Asymmetric algorithm. It's only available in Node.js\");\n return this.getSigv4aSigner().sign(requestToSign, options);\n }\n return this.sigv4Signer.sign(requestToSign, options);\n }\n async presign(originalRequest, options = {}) {\n if (options.signingRegion === \"*\") {\n if (this.signerOptions.runtime !== \"node\")\n throw new Error(\"This request requires signing with SigV4Asymmetric algorithm. It's only available in Node.js\");\n return this.getSigv4aSigner().presign(originalRequest, options);\n }\n return this.sigv4Signer.presign(originalRequest, options);\n }\n getSigv4aSigner() {\n if (!this.sigv4aSigner) {\n let CrtSignerV4;\n try {\n CrtSignerV4 = typeof require === \"function\" && require(\"@aws-sdk/signature-v4-crt\").CrtSignerV4;\n if (typeof CrtSignerV4 !== \"function\")\n throw new Error();\n }\n catch (e) {\n e.message =\n `${e.message}\\nPlease check if you have installed \"@aws-sdk/signature-v4-crt\" package explicitly. \\n` +\n \"For more information please go to \" +\n \"https://github.com/aws/aws-sdk-js-v3#functionality-requiring-aws-common-runtime-crt\";\n throw e;\n }\n this.sigv4aSigner = new CrtSignerV4({\n ...this.signerOptions,\n signingAlgorithm: 1,\n });\n }\n return this.sigv4aSigner;\n }\n}\nexports.SignatureV4MultiRegion = SignatureV4MultiRegion;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./SignatureV4MultiRegion\"), exports);\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ruleSet = void 0;\nconst bV = \"required\", bW = \"type\", bX = \"rules\", bY = \"conditions\", bZ = \"fn\", ca = \"argv\", cb = \"ref\", cc = \"assign\", cd = \"url\", ce = \"properties\", cf = \"authSchemes\", cg = \"signingRegion\", ch = \"signingName\", ci = \"disableDoubleEncoding\", cj = \"headers\";\nconst a = false, b = true, c = \"tree\", d = \"isSet\", e = \"substring\", f = \"hardwareType\", g = \"regionPrefix\", h = \"abbaSuffix\", i = \"outpostId\", j = \"aws.partition\", k = \"stringEquals\", l = \"isValidHostLabel\", m = \"not\", n = \"error\", o = \"parseURL\", p = \"s3-outposts\", q = \"endpoint\", r = \"booleanEquals\", s = \"aws.parseArn\", t = \"s3\", u = \"aws.isVirtualHostableS3Bucket\", v = \"getAttr\", w = \"name\", x = \"Host override cannot be combined with Dualstack, FIPS, or S3 Accelerate\", y = \"https://{Bucket}.s3.{partitionResult#dnsSuffix}\", z = \"bucketArn\", A = \"arnType\", B = \"\", C = \"s3-object-lambda\", D = \"accesspoint\", E = \"accessPointName\", F = \"{url#scheme}://{accessPointName}-{bucketArn#accountId}.{url#authority}{url#path}\", G = \"mrapPartition\", H = \"outpostType\", I = \"arnPrefix\", J = \"{url#scheme}://{url#authority}{url#path}\", K = \"https://s3.{partitionResult#dnsSuffix}\", L = { [bV]: false, [bW]: \"String\" }, M = { [bV]: true, \"default\": false, [bW]: \"Boolean\" }, N = { [bV]: false, [bW]: \"Boolean\" }, O = { [bZ]: d, [ca]: [{ [cb]: \"Bucket\" }] }, P = { [cb]: \"Bucket\" }, Q = { [cb]: f }, R = { [bY]: [{ [bZ]: m, [ca]: [{ [bZ]: d, [ca]: [{ [cb]: \"Endpoint\" }] }] }], [n]: \"Expected a endpoint to be specified but no endpoint was found\", [bW]: n }, S = { [bZ]: m, [ca]: [{ [bZ]: d, [ca]: [{ [cb]: \"Endpoint\" }] }] }, T = { [bZ]: d, [ca]: [{ [cb]: \"Endpoint\" }] }, U = { [bZ]: o, [ca]: [{ [cb]: \"Endpoint\" }], [cc]: \"url\" }, V = { [cf]: [{ [w]: \"sigv4\", [cg]: \"{Region}\", [ch]: p, [ci]: true }] }, W = {}, X = { [cb]: \"ForcePathStyle\" }, Y = { [bY]: [{ [bZ]: \"uriEncode\", [ca]: [P], [cc]: \"uri_encoded_bucket\" }], [bW]: c, [bX]: [{ [bY]: [{ [bZ]: r, [ca]: [{ [cb]: \"UseDualStack\" }, true] }, T], [n]: \"Cannot set dual-stack in combination with a custom endpoint.\", [bW]: n }, { [bW]: c, [bX]: [{ [bY]: [{ [bZ]: j, [ca]: [{ [cb]: \"Region\" }], [cc]: \"partitionResult\" }], [bW]: c, [bX]: [{ [bW]: c, [bX]: [{ [bY]: [{ [bZ]: r, [ca]: [{ [cb]: \"Accelerate\" }, false] }], [bW]: c, [bX]: [{ [bW]: c, [bX]: [{ [bY]: [{ [bZ]: r, [ca]: [{ [cb]: \"UseDualStack\" }, true] }, S, { [bZ]: r, [ca]: [{ [cb]: \"UseFIPS\" }, true] }, { [bZ]: k, [ca]: [{ [cb]: \"Region\" }, \"aws-global\"] }], [q]: { [cd]: \"https://s3-fips.dualstack.us-east-1.{partitionResult#dnsSuffix}/{uri_encoded_bucket}\", [ce]: { [cf]: [{ [w]: \"sigv4\", [cg]: \"us-east-1\", [ch]: t, [ci]: true }] }, [cj]: {} }, [bW]: q }, { [bY]: [{ [bZ]: r, [ca]: [{ [cb]: \"UseDualStack\" }, true] }, S, { [bZ]: r, [ca]: [{ [cb]: \"UseFIPS\" }, true] }, { [bZ]: k, [ca]: [{ [cb]: \"Region\" }, \"aws-global\"] }], [q]: { [cd]: \"https://s3-fips.dualstack.us-east-1.{partitionResult#dnsSuffix}/{uri_encoded_bucket}\", [ce]: { [cf]: [{ [w]: \"sigv4\", [cg]: \"us-east-1\", [ch]: t, [ci]: true }] }, [cj]: {} }, [bW]: q }, { [bY]: [{ [bZ]: r, [ca]: [{ [cb]: \"UseDualStack\" }, true] }, S, { [bZ]: r, [ca]: [{ [cb]: \"UseFIPS\" }, true] }, { [bZ]: m, [ca]: [{ [bZ]: k, [ca]: [{ [cb]: \"Region\" }, \"aws-global\"] }] }, { [bZ]: r, [ca]: [{ [cb]: \"UseGlobalEndpoint\" }, true] }], [bW]: c, [bX]: [{ [q]: { [cd]: \"https://s3-fips.dualstack.{Region}.{partitionResult#dnsSuffix}/{uri_encoded_bucket}\", [ce]: { [cf]: [{ [w]: \"sigv4\", [cg]: \"{Region}\", [ch]: t, [ci]: true }] }, [cj]: {} }, [bW]: q }] }, { [bY]: [{ [bZ]: r, [ca]: [{ [cb]: \"UseDualStack\" }, true] }, S, { [bZ]: r, [ca]: [{ [cb]: \"UseFIPS\" }, true] }, { [bZ]: m, [ca]: [{ [bZ]: k, [ca]: [{ [cb]: \"Region\" }, \"aws-global\"] }] }, { [bZ]: r, [ca]: [{ [cb]: \"UseGlobalEndpoint\" }, false] }], [q]: { [cd]: \"https://s3-fips.dualstack.{Region}.{partitionResult#dnsSuffix}/{uri_encoded_bucket}\", [ce]: { [cf]: [{ [w]: \"sigv4\", [cg]: \"{Region}\", [ch]: t, [ci]: true }] }, [cj]: {} }, [bW]: q }, { [bY]: [{ [bZ]: r, [ca]: [{ [cb]: \"UseDualStack\" }, false] }, T, U, { [bZ]: r, [ca]: [{ [cb]: \"UseFIPS\" }, true] }, { [bZ]: k, [ca]: [{ [cb]: \"Region\" }, \"aws-global\"] }], [q]: { [cd]: \"{url#scheme}://{url#authority}{url#normalizedPath}{uri_encoded_bucket}\", [ce]: { [cf]: [{ [w]: \"sigv4\", [cg]: \"us-east-1\", [ch]: t, [ci]: true }] }, [cj]: {} }, [bW]: q }, { [bY]: [{ [bZ]: r, [ca]: [{ [cb]: \"UseDualStack\" }, false] }, T, U, { [bZ]: r, [ca]: [{ [cb]: \"UseFIPS\" }, true] }, { [bZ]: k, [ca]: [{ [cb]: \"Region\" }, \"aws-global\"] }], [q]: { [cd]: \"{url#scheme}://{url#authority}{url#normalizedPath}{uri_encoded_bucket}\", [ce]: { [cf]: [{ [w]: \"sigv4\", [cg]: \"us-east-1\", [ch]: t, [ci]: true }] }, [cj]: {} }, [bW]: q }, { [bY]: [{ [bZ]: r, [ca]: [{ [cb]: \"UseDualStack\" }, false] }, T, U, { [bZ]: r, [ca]: [{ [cb]: \"UseFIPS\" }, true] }, { [bZ]: m, [ca]: [{ [bZ]: k, [ca]: [{ [cb]: \"Region\" }, \"aws-global\"] }] }, { [bZ]: r, [ca]: [{ [cb]: \"UseGlobalEndpoint\" }, true] }], [bW]: c, [bX]: [{ [q]: { [cd]: \"{url#scheme}://{url#authority}{url#normalizedPath}{uri_encoded_bucket}\", [ce]: { [cf]: [{ [w]: \"sigv4\", [cg]: \"{Region}\", [ch]: t, [ci]: true }] }, [cj]: {} }, [bW]: q }] }, { [bY]: [{ [bZ]: r, [ca]: [{ [cb]: \"UseDualStack\" }, false] }, T, U, { [bZ]: r, [ca]: [{ [cb]: \"UseFIPS\" }, true] }, { [bZ]: m, [ca]: [{ [bZ]: k, [ca]: [{ [cb]: \"Region\" }, \"aws-global\"] }] }, { [bZ]: r, [ca]: [{ [cb]: \"UseGlobalEndpoint\" }, false] }], [q]: { [cd]: \"{url#scheme}://{url#authority}{url#normalizedPath}{uri_encoded_bucket}\", [ce]: { [cf]: [{ [w]: \"sigv4\", [cg]: \"{Region}\", [ch]: t, [ci]: true }] }, [cj]: {} }, [bW]: q }, { [bY]: [{ [bZ]: r, [ca]: [{ [cb]: \"UseDualStack\" }, false] }, S, { [bZ]: r, [ca]: [{ [cb]: \"UseFIPS\" }, true] }, { [bZ]: k, [ca]: [{ [cb]: \"Region\" }, \"aws-global\"] }], [q]: { [cd]: \"https://s3-fips.us-east-1.{partitionResult#dnsSuffix}/{uri_encoded_bucket}\", [ce]: { [cf]: [{ [w]: \"sigv4\", [cg]: \"us-east-1\", [ch]: t, [ci]: true }] }, [cj]: {} }, [bW]: q }, { [bY]: [{ [bZ]: r, [ca]: [{ [cb]: \"UseDualStack\" }, false] }, S, { [bZ]: r, [ca]: [{ [cb]: \"UseFIPS\" }, true] }, { [bZ]: k, [ca]: [{ [cb]: \"Region\" }, \"aws-global\"] }], [q]: { [cd]: \"https://s3-fips.us-east-1.{partitionResult#dnsSuffix}/{uri_encoded_bucket}\", [ce]: { [cf]: [{ [w]: \"sigv4\", [cg]: \"us-east-1\", [ch]: t, [ci]: true }] }, [cj]: {} }, [bW]: q }, { [bY]: [{ [bZ]: r, [ca]: [{ [cb]: \"UseDualStack\" }, false] }, S, { [bZ]: r, [ca]: [{ [cb]: \"UseFIPS\" }, true] }, { [bZ]: m, [ca]: [{ [bZ]: k, [ca]: [{ [cb]: \"Region\" }, \"aws-global\"] }] }, { [bZ]: r, [ca]: [{ [cb]: \"UseGlobalEndpoint\" }, true] }], [bW]: c, [bX]: [{ [q]: { [cd]: \"https://s3-fips.{Region}.{partitionResult#dnsSuffix}/{uri_encoded_bucket}\", [ce]: { [cf]: [{ [w]: \"sigv4\", [cg]: \"{Region}\", [ch]: t, [ci]: true }] }, [cj]: {} }, [bW]: q }] }, { [bY]: [{ [bZ]: r, [ca]: [{ [cb]: \"UseDualStack\" }, false] }, S, { [bZ]: r, [ca]: [{ [cb]: \"UseFIPS\" }, true] }, { [bZ]: m, [ca]: [{ [bZ]: k, [ca]: [{ [cb]: \"Region\" }, \"aws-global\"] }] }, { [bZ]: r, [ca]: [{ [cb]: \"UseGlobalEndpoint\" }, false] }], [q]: { [cd]: \"https://s3-fips.{Region}.{partitionResult#dnsSuffix}/{uri_encoded_bucket}\", [ce]: { [cf]: [{ [w]: \"sigv4\", [cg]: \"{Region}\", [ch]: t, [ci]: true }] }, [cj]: {} }, [bW]: q }, { [bY]: [{ [bZ]: r, [ca]: [{ [cb]: \"UseDualStack\" }, true] }, S, { [bZ]: r, [ca]: [{ [cb]: \"UseFIPS\" }, false] }, { [bZ]: k, [ca]: [{ [cb]: \"Region\" }, \"aws-global\"] }], [q]: { [cd]: \"https://s3.dualstack.us-east-1.{partitionResult#dnsSuffix}/{uri_encoded_bucket}\", [ce]: { [cf]: [{ [w]: \"sigv4\", [cg]: \"us-east-1\", [ch]: t, [ci]: true }] }, [cj]: {} }, [bW]: q }, { [bY]: [{ [bZ]: r, [ca]: [{ [cb]: \"UseDualStack\" }, true] }, S, { [bZ]: r, [ca]: [{ [cb]: \"UseFIPS\" }, false] }, { [bZ]: k, [ca]: [{ [cb]: \"Region\" }, \"aws-global\"] }], [q]: { [cd]: \"https://s3.dualstack.us-east-1.{partitionResult#dnsSuffix}/{uri_encoded_bucket}\", [ce]: { [cf]: [{ [w]: \"sigv4\", [cg]: \"us-east-1\", [ch]: t, [ci]: true }] }, [cj]: {} }, [bW]: q }, { [bY]: [{ [bZ]: r, [ca]: [{ [cb]: \"UseDualStack\" }, true] }, S, { [bZ]: r, [ca]: [{ [cb]: \"UseFIPS\" }, false] }, { [bZ]: m, [ca]: [{ [bZ]: k, [ca]: [{ [cb]: \"Region\" }, \"aws-global\"] }] }, { [bZ]: r, [ca]: [{ [cb]: \"UseGlobalEndpoint\" }, true] }], [bW]: c, [bX]: [{ [q]: { [cd]: \"https://s3.dualstack.{Region}.{partitionResult#dnsSuffix}/{uri_encoded_bucket}\", [ce]: { [cf]: [{ [w]: \"sigv4\", [cg]: \"{Region}\", [ch]: t, [ci]: true }] }, [cj]: {} }, [bW]: q }] }, { [bY]: [{ [bZ]: r, [ca]: [{ [cb]: \"UseDualStack\" }, true] }, S, { [bZ]: r, [ca]: [{ [cb]: \"UseFIPS\" }, false] }, { [bZ]: m, [ca]: [{ [bZ]: k, [ca]: [{ [cb]: \"Region\" }, \"aws-global\"] }] }, { [bZ]: r, [ca]: [{ [cb]: \"UseGlobalEndpoint\" }, false] }], [q]: { [cd]: \"https://s3.dualstack.{Region}.{partitionResult#dnsSuffix}/{uri_encoded_bucket}\", [ce]: { [cf]: [{ [w]: \"sigv4\", [cg]: \"{Region}\", [ch]: t, [ci]: true }] }, [cj]: {} }, [bW]: q }, { [bY]: [{ [bZ]: r, [ca]: [{ [cb]: \"UseDualStack\" }, false] }, T, U, { [bZ]: r, [ca]: [{ [cb]: \"UseFIPS\" }, false] }, { [bZ]: k, [ca]: [{ [cb]: \"Region\" }, \"aws-global\"] }], [q]: { [cd]: \"{url#scheme}://{url#authority}{url#normalizedPath}{uri_encoded_bucket}\", [ce]: { [cf]: [{ [w]: \"sigv4\", [cg]: \"us-east-1\", [ch]: t, [ci]: true }] }, [cj]: {} }, [bW]: q }, { [bY]: [{ [bZ]: r, [ca]: [{ [cb]: \"UseDualStack\" }, false] }, T, U, { [bZ]: r, [ca]: [{ [cb]: \"UseFIPS\" }, false] }, { [bZ]: k, [ca]: [{ [cb]: \"Region\" }, \"aws-global\"] }], [q]: { [cd]: \"{url#scheme}://{url#authority}{url#normalizedPath}{uri_encoded_bucket}\", [ce]: { [cf]: [{ [w]: \"sigv4\", [cg]: \"us-east-1\", [ch]: t, [ci]: true }] }, [cj]: {} }, [bW]: q }, { [bY]: [{ [bZ]: r, [ca]: [{ [cb]: \"UseDualStack\" }, false] }, T, U, { [bZ]: r, [ca]: [{ [cb]: \"UseFIPS\" }, false] }, { [bZ]: m, [ca]: [{ [bZ]: k, [ca]: [{ [cb]: \"Region\" }, \"aws-global\"] }] }, { [bZ]: r, [ca]: [{ [cb]: \"UseGlobalEndpoint\" }, true] }], [bW]: c, [bX]: [{ [bY]: [{ [bZ]: k, [ca]: [{ [cb]: \"Region\" }, \"us-east-1\"] }], [q]: { [cd]: \"{url#scheme}://{url#authority}{url#normalizedPath}{uri_encoded_bucket}\", [ce]: { [cf]: [{ [w]: \"sigv4\", [cg]: \"{Region}\", [ch]: t, [ci]: true }] }, [cj]: {} }, [bW]: q }, { [q]: { [cd]: \"{url#scheme}://{url#authority}{url#normalizedPath}{uri_encoded_bucket}\", [ce]: { [cf]: [{ [w]: \"sigv4\", [cg]: \"{Region}\", [ch]: t, [ci]: true }] }, [cj]: {} }, [bW]: q }] }, { [bY]: [{ [bZ]: r, [ca]: [{ [cb]: \"UseDualStack\" }, false] }, T, U, { [bZ]: r, [ca]: [{ [cb]: \"UseFIPS\" }, false] }, { [bZ]: m, [ca]: [{ [bZ]: k, [ca]: [{ [cb]: \"Region\" }, \"aws-global\"] }] }, { [bZ]: r, [ca]: [{ [cb]: \"UseGlobalEndpoint\" }, false] }], [q]: { [cd]: \"{url#scheme}://{url#authority}{url#normalizedPath}{uri_encoded_bucket}\", [ce]: { [cf]: [{ [w]: \"sigv4\", [cg]: \"{Region}\", [ch]: t, [ci]: true }] }, [cj]: {} }, [bW]: q }, { [bY]: [{ [bZ]: r, [ca]: [{ [cb]: \"UseDualStack\" }, false] }, S, { [bZ]: r, [ca]: [{ [cb]: \"UseFIPS\" }, false] }, { [bZ]: k, [ca]: [{ [cb]: \"Region\" }, \"aws-global\"] }], [q]: { [cd]: \"https://s3.{partitionResult#dnsSuffix}/{uri_encoded_bucket}\", [ce]: { [cf]: [{ [w]: \"sigv4\", [cg]: \"us-east-1\", [ch]: t, [ci]: true }] }, [cj]: {} }, [bW]: q }, { [bY]: [{ [bZ]: r, [ca]: [{ [cb]: \"UseDualStack\" }, false] }, S, { [bZ]: r, [ca]: [{ [cb]: \"UseFIPS\" }, false] }, { [bZ]: k, [ca]: [{ [cb]: \"Region\" }, \"aws-global\"] }], [q]: { [cd]: \"https://s3.{partitionResult#dnsSuffix}/{uri_encoded_bucket}\", [ce]: { [cf]: [{ [w]: \"sigv4\", [cg]: \"us-east-1\", [ch]: t, [ci]: true }] }, [cj]: {} }, [bW]: q }, { [bY]: [{ [bZ]: r, [ca]: [{ [cb]: \"UseDualStack\" }, false] }, S, { [bZ]: r, [ca]: [{ [cb]: \"UseFIPS\" }, false] }, { [bZ]: m, [ca]: [{ [bZ]: k, [ca]: [{ [cb]: \"Region\" }, \"aws-global\"] }] }, { [bZ]: r, [ca]: [{ [cb]: \"UseGlobalEndpoint\" }, true] }], [bW]: c, [bX]: [{ [bY]: [{ [bZ]: k, [ca]: [{ [cb]: \"Region\" }, \"us-east-1\"] }], [q]: { [cd]: \"https://s3.{partitionResult#dnsSuffix}/{uri_encoded_bucket}\", [ce]: { [cf]: [{ [w]: \"sigv4\", [cg]: \"{Region}\", [ch]: t, [ci]: true }] }, [cj]: {} }, [bW]: q }, { [q]: { [cd]: \"https://s3.{Region}.{partitionResult#dnsSuffix}/{uri_encoded_bucket}\", [ce]: { [cf]: [{ [w]: \"sigv4\", [cg]: \"{Region}\", [ch]: t, [ci]: true }] }, [cj]: {} }, [bW]: q }] }, { [bY]: [{ [bZ]: r, [ca]: [{ [cb]: \"UseDualStack\" }, false] }, S, { [bZ]: r, [ca]: [{ [cb]: \"UseFIPS\" }, false] }, { [bZ]: m, [ca]: [{ [bZ]: k, [ca]: [{ [cb]: \"Region\" }, \"aws-global\"] }] }, { [bZ]: r, [ca]: [{ [cb]: \"UseGlobalEndpoint\" }, false] }], [q]: { [cd]: \"https://s3.{Region}.{partitionResult#dnsSuffix}/{uri_encoded_bucket}\", [ce]: { [cf]: [{ [w]: \"sigv4\", [cg]: \"{Region}\", [ch]: t, [ci]: true }] }, [cj]: {} }, [bW]: q }] }] }, { [n]: \"Path-style addressing cannot be used with S3 Accelerate\", [bW]: n }] }] }, { [n]: \"A valid partition could not be determined\", [bW]: n }] }] }, Z = { [bZ]: r, [ca]: [{ [cb]: \"UseDualStack\" }, true] }, aa = { [bZ]: r, [ca]: [{ [cb]: \"Accelerate\" }, false] }, ab = { [bZ]: r, [ca]: [{ [cb]: \"UseFIPS\" }, true] }, ac = { [bZ]: m, [ca]: [{ [bZ]: k, [ca]: [{ [cb]: \"Region\" }, \"aws-global\"] }] }, ad = { [bZ]: r, [ca]: [{ [cb]: \"UseGlobalEndpoint\" }, true] }, ae = { [cf]: [{ [w]: \"sigv4\", [cg]: \"{Region}\", [ch]: t, [ci]: true }] }, af = { [bZ]: r, [ca]: [{ [cb]: \"UseGlobalEndpoint\" }, false] }, ag = { [bZ]: r, [ca]: [{ [cb]: \"UseDualStack\" }, false] }, ah = { [bZ]: r, [ca]: [{ [cb]: \"UseFIPS\" }, false] }, ai = { [n]: \"A valid partition could not be determined\", [bW]: n }, aj = { [bY]: [ab, { [bZ]: k, [ca]: [{ [bZ]: v, [ca]: [{ [cb]: \"partitionResult\" }, w] }, \"aws-cn\"] }], [n]: \"Partition does not support FIPS\", [bW]: n }, ak = { [bZ]: k, [ca]: [{ [bZ]: v, [ca]: [{ [cb]: \"partitionResult\" }, w] }, \"aws-cn\"] }, al = { [bZ]: r, [ca]: [{ [cb]: \"Accelerate\" }, true] }, am = { [bY]: [Z, ab, aa, S, { [bZ]: k, [ca]: [{ [cb]: \"Region\" }, \"aws-global\"] }], [q]: { [cd]: \"https://{Bucket}.s3-fips.dualstack.us-east-1.{partitionResult#dnsSuffix}\", [ce]: { [cf]: [{ [w]: \"sigv4\", [cg]: \"us-east-1\", [ch]: t, [ci]: true }] }, [cj]: {} }, [bW]: q }, an = { [cd]: \"https://{Bucket}.s3-fips.dualstack.{Region}.{partitionResult#dnsSuffix}\", [ce]: ae, [cj]: {} }, ao = { [bY]: [ag, ab, aa, S, { [bZ]: k, [ca]: [{ [cb]: \"Region\" }, \"aws-global\"] }], [q]: { [cd]: \"https://{Bucket}.s3-fips.us-east-1.{partitionResult#dnsSuffix}\", [ce]: { [cf]: [{ [w]: \"sigv4\", [cg]: \"us-east-1\", [ch]: t, [ci]: true }] }, [cj]: {} }, [bW]: q }, ap = { [cd]: \"https://{Bucket}.s3-fips.{Region}.{partitionResult#dnsSuffix}\", [ce]: ae, [cj]: {} }, aq = { [bY]: [Z, ah, al, S, { [bZ]: k, [ca]: [{ [cb]: \"Region\" }, \"aws-global\"] }], [q]: { [cd]: \"https://{Bucket}.s3-accelerate.dualstack.us-east-1.{partitionResult#dnsSuffix}\", [ce]: { [cf]: [{ [w]: \"sigv4\", [cg]: \"us-east-1\", [ch]: t, [ci]: true }] }, [cj]: {} }, [bW]: q }, ar = { [cd]: \"https://{Bucket}.s3-accelerate.dualstack.{partitionResult#dnsSuffix}\", [ce]: ae, [cj]: {} }, as = { [bY]: [Z, ah, aa, S, { [bZ]: k, [ca]: [{ [cb]: \"Region\" }, \"aws-global\"] }], [q]: { [cd]: \"https://{Bucket}.s3.dualstack.us-east-1.{partitionResult#dnsSuffix}\", [ce]: { [cf]: [{ [w]: \"sigv4\", [cg]: \"us-east-1\", [ch]: t, [ci]: true }] }, [cj]: {} }, [bW]: q }, at = { [cd]: \"https://{Bucket}.s3.dualstack.{Region}.{partitionResult#dnsSuffix}\", [ce]: ae, [cj]: {} }, au = { [bY]: [ag, ah, aa, T, U, { [bZ]: r, [ca]: [{ [bZ]: v, [ca]: [{ [cb]: \"url\" }, \"isIp\"] }, true] }, { [bZ]: k, [ca]: [{ [cb]: \"Region\" }, \"aws-global\"] }], [q]: { [cd]: \"{url#scheme}://{url#authority}{url#normalizedPath}{Bucket}\", [ce]: { [cf]: [{ [w]: \"sigv4\", [cg]: \"us-east-1\", [ch]: t, [ci]: true }] }, [cj]: {} }, [bW]: q }, av = { [bZ]: r, [ca]: [{ [bZ]: v, [ca]: [{ [cb]: \"url\" }, \"isIp\"] }, true] }, aw = { [cb]: \"url\" }, ax = { [bY]: [ag, ah, aa, T, U, { [bZ]: r, [ca]: [{ [bZ]: v, [ca]: [aw, \"isIp\"] }, false] }, { [bZ]: k, [ca]: [{ [cb]: \"Region\" }, \"aws-global\"] }], [q]: { [cd]: \"{url#scheme}://{Bucket}.{url#authority}{url#path}\", [ce]: { [cf]: [{ [w]: \"sigv4\", [cg]: \"us-east-1\", [ch]: t, [ci]: true }] }, [cj]: {} }, [bW]: q }, ay = { [bZ]: r, [ca]: [{ [bZ]: v, [ca]: [aw, \"isIp\"] }, false] }, az = { [cd]: \"{url#scheme}://{url#authority}{url#normalizedPath}{Bucket}\", [ce]: ae, [cj]: {} }, aA = { [cd]: \"{url#scheme}://{Bucket}.{url#authority}{url#path}\", [ce]: ae, [cj]: {} }, aB = { [q]: aA, [bW]: q }, aC = { [bY]: [ag, ah, al, S, { [bZ]: k, [ca]: [{ [cb]: \"Region\" }, \"aws-global\"] }], [q]: { [cd]: \"https://{Bucket}.s3-accelerate.{partitionResult#dnsSuffix}\", [ce]: { [cf]: [{ [w]: \"sigv4\", [cg]: \"us-east-1\", [ch]: t, [ci]: true }] }, [cj]: {} }, [bW]: q }, aD = { [cd]: \"https://{Bucket}.s3-accelerate.{partitionResult#dnsSuffix}\", [ce]: ae, [cj]: {} }, aE = { [bY]: [ag, ah, aa, S, { [bZ]: k, [ca]: [{ [cb]: \"Region\" }, \"aws-global\"] }], [q]: { [cd]: y, [ce]: { [cf]: [{ [w]: \"sigv4\", [cg]: \"us-east-1\", [ch]: t, [ci]: true }] }, [cj]: {} }, [bW]: q }, aF = { [cd]: \"https://{Bucket}.s3.{Region}.{partitionResult#dnsSuffix}\", [ce]: ae, [cj]: {} }, aG = { [n]: \"Invalid region: region was not a valid DNS name.\", [bW]: n }, aH = { [cb]: z }, aI = { [cb]: A }, aJ = { [bZ]: v, [ca]: [aH, \"service\"] }, aK = { [cb]: E }, aL = { [bY]: [Z], [n]: \"S3 Object Lambda does not support Dual-stack\", [bW]: n }, aM = { [bY]: [al], [n]: \"S3 Object Lambda does not support S3 Accelerate\", [bW]: n }, aN = { [bY]: [{ [bZ]: d, [ca]: [{ [cb]: \"DisableAccessPoints\" }] }, { [bZ]: r, [ca]: [{ [cb]: \"DisableAccessPoints\" }, true] }], [n]: \"Access points are not supported for this operation\", [bW]: n }, aO = { [bY]: [{ [bZ]: d, [ca]: [{ [cb]: \"UseArnRegion\" }] }, { [bZ]: r, [ca]: [{ [cb]: \"UseArnRegion\" }, false] }, { [bZ]: m, [ca]: [{ [bZ]: k, [ca]: [{ [bZ]: v, [ca]: [aH, \"region\"] }, \"{Region}\"] }] }], [n]: \"Invalid configuration: region from ARN `{bucketArn#region}` does not match client region `{Region}` and UseArnRegion is `false`\", [bW]: n }, aP = { [bZ]: v, [ca]: [{ [cb]: \"bucketPartition\" }, w] }, aQ = { [bZ]: v, [ca]: [aH, \"accountId\"] }, aR = { [bY]: [ab, { [bZ]: k, [ca]: [aP, \"aws-cn\"] }], [n]: \"Partition does not support FIPS\", [bW]: n }, aS = { [cf]: [{ [w]: \"sigv4\", [cg]: \"{bucketArn#region}\", [ch]: C, [ci]: true }] }, aT = { [n]: \"Invalid ARN: The access point name may only contain a-z, A-Z, 0-9 and `-`. Found: `{accessPointName}`\", [bW]: n }, aU = { [n]: \"Invalid ARN: The account id may only contain a-z, A-Z, 0-9 and `-`. Found: `{bucketArn#accountId}`\", [bW]: n }, aV = { [n]: \"Invalid region in ARN: `{bucketArn#region}` (invalid DNS name)\", [bW]: n }, aW = { [n]: \"Client was configured for partition `{partitionResult#name}` but ARN (`{Bucket}`) has `{bucketPartition#name}`\", [bW]: n }, aX = { [n]: \"Could not load partition for ARN region `{bucketArn#region}`\", [bW]: n }, aY = { [n]: \"Invalid ARN: The ARN may only contain a single resource component after `accesspoint`.\", [bW]: n }, aZ = { [n]: \"Invalid ARN: bucket ARN is missing a region\", [bW]: n }, ba = { [n]: \"Invalid ARN: Expected a resource of the format `accesspoint:` but no name was provided\", [bW]: n }, bb = { [cf]: [{ [w]: \"sigv4\", [cg]: \"{bucketArn#region}\", [ch]: t, [ci]: true }] }, bc = { [cf]: [{ [w]: \"sigv4\", [cg]: \"{bucketArn#region}\", [ch]: p, [ci]: true }] }, bd = { [cb]: \"UseObjectLambdaEndpoint\" }, be = { [cf]: [{ [w]: \"sigv4\", [cg]: \"{Region}\", [ch]: C, [ci]: true }] }, bf = { [bY]: [ab, Z, T, U, { [bZ]: k, [ca]: [{ [cb]: \"Region\" }, \"aws-global\"] }], [q]: { [cd]: J, [ce]: { [cf]: [{ [w]: \"sigv4\", [cg]: \"us-east-1\", [ch]: t, [ci]: true }] }, [cj]: {} }, [bW]: q }, bg = { [q]: { [cd]: J, [ce]: ae, [cj]: {} }, [bW]: q }, bh = { [cd]: J, [ce]: ae, [cj]: {} }, bi = { [bY]: [ab, Z, S, { [bZ]: k, [ca]: [{ [cb]: \"Region\" }, \"aws-global\"] }], [q]: { [cd]: \"https://s3-fips.dualstack.us-east-1.{partitionResult#dnsSuffix}\", [ce]: { [cf]: [{ [w]: \"sigv4\", [cg]: \"us-east-1\", [ch]: t, [ci]: true }] }, [cj]: {} }, [bW]: q }, bj = { [cd]: \"https://s3-fips.dualstack.{Region}.{partitionResult#dnsSuffix}\", [ce]: ae, [cj]: {} }, bk = { [bY]: [ab, ag, T, U, { [bZ]: k, [ca]: [{ [cb]: \"Region\" }, \"aws-global\"] }], [q]: { [cd]: J, [ce]: { [cf]: [{ [w]: \"sigv4\", [cg]: \"us-east-1\", [ch]: t, [ci]: true }] }, [cj]: {} }, [bW]: q }, bl = { [bY]: [ab, ag, S, { [bZ]: k, [ca]: [{ [cb]: \"Region\" }, \"aws-global\"] }], [q]: { [cd]: \"https://s3-fips.us-east-1.{partitionResult#dnsSuffix}\", [ce]: { [cf]: [{ [w]: \"sigv4\", [cg]: \"us-east-1\", [ch]: t, [ci]: true }] }, [cj]: {} }, [bW]: q }, bm = { [cd]: \"https://s3-fips.{Region}.{partitionResult#dnsSuffix}\", [ce]: ae, [cj]: {} }, bn = { [bY]: [ah, Z, T, U, { [bZ]: k, [ca]: [{ [cb]: \"Region\" }, \"aws-global\"] }], [q]: { [cd]: J, [ce]: { [cf]: [{ [w]: \"sigv4\", [cg]: \"us-east-1\", [ch]: t, [ci]: true }] }, [cj]: {} }, [bW]: q }, bo = { [bY]: [ah, Z, S, { [bZ]: k, [ca]: [{ [cb]: \"Region\" }, \"aws-global\"] }], [q]: { [cd]: \"https://s3.dualstack.us-east-1.{partitionResult#dnsSuffix}\", [ce]: { [cf]: [{ [w]: \"sigv4\", [cg]: \"us-east-1\", [ch]: t, [ci]: true }] }, [cj]: {} }, [bW]: q }, bp = { [cd]: \"https://s3.dualstack.{Region}.{partitionResult#dnsSuffix}\", [ce]: ae, [cj]: {} }, bq = { [bY]: [ah, ag, T, U, { [bZ]: k, [ca]: [{ [cb]: \"Region\" }, \"aws-global\"] }], [q]: { [cd]: J, [ce]: { [cf]: [{ [w]: \"sigv4\", [cg]: \"us-east-1\", [ch]: t, [ci]: true }] }, [cj]: {} }, [bW]: q }, br = { [bY]: [ah, ag, S, { [bZ]: k, [ca]: [{ [cb]: \"Region\" }, \"aws-global\"] }], [q]: { [cd]: K, [ce]: { [cf]: [{ [w]: \"sigv4\", [cg]: \"us-east-1\", [ch]: t, [ci]: true }] }, [cj]: {} }, [bW]: q }, bs = { [cd]: \"https://s3.{Region}.{partitionResult#dnsSuffix}\", [ce]: ae, [cj]: {} }, bt = [{ [cb]: \"Region\" }], bu = [P], bv = [{ [bZ]: l, [ca]: [{ [cb]: i }, false] }], bw = [{ [bZ]: k, [ca]: [{ [cb]: g }, \"beta\"] }], bx = [{ [cb]: \"Endpoint\" }], by = [T, U], bz = [O], bA = [{ [bZ]: s, [ca]: [P] }], bB = [Z, T], bC = [{ [bZ]: j, [ca]: bt, [cc]: \"partitionResult\" }], bD = [{ [bZ]: k, [ca]: [{ [cb]: \"Region\" }, \"us-east-1\"] }], bE = [{ [bZ]: l, [ca]: [{ [cb]: \"Region\" }, false] }], bF = [{ [bZ]: k, [ca]: [aI, D] }], bG = [{ [bZ]: v, [ca]: [aH, \"resourceId[1]\"], [cc]: E }, { [bZ]: m, [ca]: [{ [bZ]: k, [ca]: [aK, B] }] }], bH = [aH, \"resourceId[1]\"], bI = [Z], bJ = [al], bK = [{ [bZ]: m, [ca]: [{ [bZ]: k, [ca]: [{ [bZ]: v, [ca]: [aH, \"region\"] }, B] }] }], bL = [{ [bZ]: m, [ca]: [{ [bZ]: d, [ca]: [{ [bZ]: v, [ca]: [aH, \"resourceId[2]\"] }] }] }], bM = [aH, \"resourceId[2]\"], bN = [{ [bZ]: j, [ca]: [{ [bZ]: v, [ca]: [aH, \"region\"] }], [cc]: \"bucketPartition\" }], bO = [{ [bZ]: k, [ca]: [aP, { [bZ]: v, [ca]: [{ [cb]: \"partitionResult\" }, w] }] }], bP = [{ [bZ]: l, [ca]: [{ [bZ]: v, [ca]: [aH, \"region\"] }, true] }], bQ = [{ [bZ]: l, [ca]: [aQ, false] }], bR = [{ [bZ]: l, [ca]: [aK, false] }], bS = [ab], bT = [{ [bZ]: l, [ca]: [{ [cb]: \"Region\" }, true] }], bU = [bg];\nconst _data = { version: \"1.0\", parameters: { Bucket: L, Region: L, UseFIPS: M, UseDualStack: M, Endpoint: L, ForcePathStyle: N, Accelerate: M, UseGlobalEndpoint: M, UseObjectLambdaEndpoint: N, DisableAccessPoints: N, DisableMultiRegionAccessPoints: M, UseArnRegion: N }, [bX]: [{ [bW]: c, [bX]: [{ [bY]: [{ [bZ]: d, [ca]: bt }], [bW]: c, [bX]: [{ [bW]: c, [bX]: [{ [bY]: [O, { [bZ]: e, [ca]: [P, 49, 50, b], [cc]: f }, { [bZ]: e, [ca]: [P, 8, 12, b], [cc]: g }, { [bZ]: e, [ca]: [P, 0, 7, b], [cc]: h }, { [bZ]: e, [ca]: [P, 32, 49, b], [cc]: i }, { [bZ]: j, [ca]: bt, [cc]: \"regionPartition\" }, { [bZ]: k, [ca]: [{ [cb]: h }, \"--op-s3\"] }], [bW]: c, [bX]: [{ [bY]: bv, [bW]: c, [bX]: [{ [bW]: c, [bX]: [{ [bY]: [{ [bZ]: k, [ca]: [Q, \"e\"] }], [bW]: c, [bX]: [{ [bY]: bw, [bW]: c, [bX]: [R, { [bY]: by, endpoint: { [cd]: \"https://{Bucket}.ec2.{url#authority}\", [ce]: V, [cj]: W }, [bW]: q }] }, { endpoint: { [cd]: \"https://{Bucket}.ec2.s3-outposts.{Region}.{regionPartition#dnsSuffix}\", [ce]: V, [cj]: W }, [bW]: q }] }, { [bY]: [{ [bZ]: k, [ca]: [Q, \"o\"] }], [bW]: c, [bX]: [{ [bY]: bw, [bW]: c, [bX]: [R, { [bY]: by, endpoint: { [cd]: \"https://{Bucket}.op-{outpostId}.{url#authority}\", [ce]: V, [cj]: W }, [bW]: q }] }, { endpoint: { [cd]: \"https://{Bucket}.op-{outpostId}.s3-outposts.{Region}.{regionPartition#dnsSuffix}\", [ce]: V, [cj]: W }, [bW]: q }] }, { error: \"Unrecognized hardware type: \\\"Expected hardware type o or e but got {hardwareType}\\\"\", [bW]: n }] }] }, { error: \"Invalid ARN: The outpost Id must only contain a-z, A-Z, 0-9 and `-`.\", [bW]: n }] }, { [bY]: bz, [bW]: c, [bX]: [{ [bY]: [T, { [bZ]: m, [ca]: [{ [bZ]: d, [ca]: [{ [bZ]: o, [ca]: bx }] }] }], error: \"Custom endpoint `{Endpoint}` was not a valid URI\", [bW]: n }, { [bW]: c, [bX]: [{ [bY]: [{ [bZ]: d, [ca]: [X] }, { [bZ]: r, [ca]: [X, b] }], [bW]: c, [bX]: [{ [bW]: c, [bX]: [{ [bY]: bA, error: \"Path-style addressing cannot be used with ARN buckets\", [bW]: n }, Y] }] }, { [bY]: [{ [bZ]: u, [ca]: [P, a] }], [bW]: c, [bX]: [{ [bY]: bC, [bW]: c, [bX]: [{ [bW]: c, [bX]: [{ [bY]: bE, [bW]: c, [bX]: [{ [bW]: c, [bX]: [aj, { [bW]: c, [bX]: [{ [bY]: [al, ab], error: \"Accelerate cannot be used with FIPS\", [bW]: n }, { [bW]: c, [bX]: [{ [bY]: [al, ak], error: \"S3 Accelerate cannot be used in this region\", [bW]: n }, { [bW]: c, [bX]: [{ [bY]: [T, Z], error: x, [bW]: n }, { [bW]: c, [bX]: [{ [bY]: [T, ab], error: x, [bW]: n }, { [bW]: c, [bX]: [{ [bY]: [T, al], error: x, [bW]: n }, { [bW]: c, [bX]: [am, am, { [bY]: [Z, ab, aa, S, ac, ad], [bW]: c, [bX]: [{ endpoint: an, [bW]: q }] }, { [bY]: [Z, ab, aa, S, ac, af], endpoint: an, [bW]: q }, ao, ao, { [bY]: [ag, ab, aa, S, ac, ad], [bW]: c, [bX]: [{ endpoint: ap, [bW]: q }] }, { [bY]: [ag, ab, aa, S, ac, af], endpoint: ap, [bW]: q }, aq, aq, { [bY]: [Z, ah, al, S, ac, ad], [bW]: c, [bX]: [{ endpoint: ar, [bW]: q }] }, { [bY]: [Z, ah, al, S, ac, af], endpoint: ar, [bW]: q }, as, as, { [bY]: [Z, ah, aa, S, ac, ad], [bW]: c, [bX]: [{ endpoint: at, [bW]: q }] }, { [bY]: [Z, ah, aa, S, ac, af], endpoint: at, [bW]: q }, au, ax, au, ax, { [bY]: [ag, ah, aa, T, U, av, ac, ad], [bW]: c, [bX]: [{ [bY]: bD, endpoint: az, [bW]: q }, { endpoint: az, [bW]: q }] }, { [bY]: [ag, ah, aa, T, U, ay, ac, ad], [bW]: c, [bX]: [{ [bY]: bD, endpoint: aA, [bW]: q }, aB] }, { [bY]: [ag, ah, aa, T, U, av, ac, af], endpoint: az, [bW]: q }, { [bY]: [ag, ah, aa, T, U, ay, ac, af], endpoint: aA, [bW]: q }, aC, aC, { [bY]: [ag, ah, al, S, ac, ad], [bW]: c, [bX]: [{ [bY]: bD, endpoint: aD, [bW]: q }, { endpoint: aD, [bW]: q }] }, { [bY]: [ag, ah, al, S, ac, af], endpoint: aD, [bW]: q }, aE, aE, { [bY]: [ag, ah, aa, S, ac, ad], [bW]: c, [bX]: [{ [bY]: bD, endpoint: { [cd]: y, [ce]: ae, [cj]: W }, [bW]: q }, { endpoint: aF, [bW]: q }] }, { [bY]: [ag, ah, aa, S, ac, af], endpoint: aF, [bW]: q }] }] }] }] }] }] }] }] }, aG] }] }, ai] }, { [bY]: [T, U, { [bZ]: k, [ca]: [{ [bZ]: v, [ca]: [aw, \"scheme\"] }, \"http\"] }, { [bZ]: u, [ca]: [P, b] }, ah, ag, aa], [bW]: c, [bX]: [{ [bY]: bC, [bW]: c, [bX]: [{ [bW]: c, [bX]: [{ [bY]: bE, [bW]: c, [bX]: [aB] }, aG] }] }, ai] }, { [bY]: [{ [bZ]: s, [ca]: bu, [cc]: z }], [bW]: c, [bX]: [{ [bY]: [{ [bZ]: v, [ca]: [aH, \"resourceId[0]\"], [cc]: A }, { [bZ]: m, [ca]: [{ [bZ]: k, [ca]: [aI, B] }] }], [bW]: c, [bX]: [{ [bW]: c, [bX]: [{ [bY]: [{ [bZ]: k, [ca]: [aJ, C] }], [bW]: c, [bX]: [{ [bY]: bF, [bW]: c, [bX]: [{ [bW]: c, [bX]: [{ [bY]: bG, [bW]: c, [bX]: [{ [bW]: c, [bX]: [aL, { [bW]: c, [bX]: [aM, { [bW]: c, [bX]: [{ [bY]: bK, [bW]: c, [bX]: [{ [bW]: c, [bX]: [aN, { [bW]: c, [bX]: [{ [bY]: bL, [bW]: c, [bX]: [{ [bW]: c, [bX]: [aO, { [bW]: c, [bX]: [{ [bY]: bN, [bW]: c, [bX]: [{ [bW]: c, [bX]: [{ [bY]: bC, [bW]: c, [bX]: [{ [bW]: c, [bX]: [{ [bY]: bO, [bW]: c, [bX]: [{ [bW]: c, [bX]: [{ [bY]: bP, [bW]: c, [bX]: [{ [bW]: c, [bX]: [{ [bY]: [{ [bZ]: k, [ca]: [aQ, B] }], error: \"Invalid ARN: Missing account id\", [bW]: n }, { [bW]: c, [bX]: [{ [bY]: bQ, [bW]: c, [bX]: [{ [bW]: c, [bX]: [{ [bY]: bR, [bW]: c, [bX]: [{ [bW]: c, [bX]: [aR, { [bW]: c, [bX]: [{ [bY]: by, endpoint: { [cd]: F, [ce]: aS, [cj]: W }, [bW]: q }, { [bY]: bS, endpoint: { [cd]: \"https://{accessPointName}-{bucketArn#accountId}.s3-object-lambda-fips.{bucketArn#region}.{bucketPartition#dnsSuffix}\", [ce]: aS, [cj]: W }, [bW]: q }, { endpoint: { [cd]: \"https://{accessPointName}-{bucketArn#accountId}.s3-object-lambda.{bucketArn#region}.{bucketPartition#dnsSuffix}\", [ce]: aS, [cj]: W }, [bW]: q }] }] }] }, aT] }] }, aU] }] }] }, aV] }] }, aW] }] }, ai] }] }, aX] }] }] }, aY] }] }] }, aZ] }] }] }] }, ba] }] }, { error: \"Invalid ARN: Object Lambda ARNs only support `accesspoint` arn types, but found: `{arnType}`\", [bW]: n }] }, { [bY]: bF, [bW]: c, [bX]: [{ [bY]: bG, [bW]: c, [bX]: [{ [bW]: c, [bX]: [{ [bY]: bK, [bW]: c, [bX]: [{ [bY]: bF, [bW]: c, [bX]: [{ [bY]: bK, [bW]: c, [bX]: [{ [bW]: c, [bX]: [aN, { [bW]: c, [bX]: [{ [bY]: bL, [bW]: c, [bX]: [{ [bW]: c, [bX]: [aO, { [bW]: c, [bX]: [{ [bY]: bN, [bW]: c, [bX]: [{ [bW]: c, [bX]: [{ [bY]: bC, [bW]: c, [bX]: [{ [bW]: c, [bX]: [{ [bY]: [{ [bZ]: k, [ca]: [aP, \"{partitionResult#name}\"] }], [bW]: c, [bX]: [{ [bW]: c, [bX]: [{ [bY]: bP, [bW]: c, [bX]: [{ [bW]: c, [bX]: [{ [bY]: [{ [bZ]: k, [ca]: [aJ, t] }], [bW]: c, [bX]: [{ [bW]: c, [bX]: [{ [bY]: bQ, [bW]: c, [bX]: [{ [bW]: c, [bX]: [{ [bY]: bR, [bW]: c, [bX]: [{ [bW]: c, [bX]: [{ [bY]: bJ, error: \"Access Points do not support S3 Accelerate\", [bW]: n }, { [bW]: c, [bX]: [aR, { [bW]: c, [bX]: [{ [bY]: bB, error: \"DualStack cannot be combined with a Host override (PrivateLink)\", [bW]: n }, { [bW]: c, [bX]: [{ [bY]: [ab, Z], endpoint: { [cd]: \"https://{accessPointName}-{bucketArn#accountId}.s3-accesspoint-fips.dualstack.{bucketArn#region}.{bucketPartition#dnsSuffix}\", [ce]: bb, [cj]: W }, [bW]: q }, { [bY]: [ab, ag], endpoint: { [cd]: \"https://{accessPointName}-{bucketArn#accountId}.s3-accesspoint-fips.{bucketArn#region}.{bucketPartition#dnsSuffix}\", [ce]: bb, [cj]: W }, [bW]: q }, { [bY]: [ah, Z], endpoint: { [cd]: \"https://{accessPointName}-{bucketArn#accountId}.s3-accesspoint.dualstack.{bucketArn#region}.{bucketPartition#dnsSuffix}\", [ce]: bb, [cj]: W }, [bW]: q }, { [bY]: [ah, ag, T, U], endpoint: { [cd]: F, [ce]: bb, [cj]: W }, [bW]: q }, { [bY]: [ah, ag], endpoint: { [cd]: \"https://{accessPointName}-{bucketArn#accountId}.s3-accesspoint.{bucketArn#region}.{bucketPartition#dnsSuffix}\", [ce]: bb, [cj]: W }, [bW]: q }] }] }] }] }] }, aT] }] }, aU] }] }, { error: \"Invalid ARN: The ARN was not for the S3 service, found: {bucketArn#service}\", [bW]: n }] }] }, aV] }] }, aW] }] }, ai] }] }, aX] }] }] }, aY] }] }] }, aZ] }] }, { [bW]: c, [bX]: [{ [bY]: [{ [bZ]: l, [ca]: [aK, b] }], [bW]: c, [bX]: [{ [bW]: c, [bX]: [{ [bY]: bI, error: \"S3 MRAP does not support dual-stack\", [bW]: n }, { [bW]: c, [bX]: [{ [bY]: bS, error: \"S3 MRAP does not support FIPS\", [bW]: n }, { [bW]: c, [bX]: [{ [bY]: bJ, error: \"S3 MRAP does not support S3 Accelerate\", [bW]: n }, { [bW]: c, [bX]: [{ [bY]: [{ [bZ]: r, [ca]: [{ [cb]: \"DisableMultiRegionAccessPoints\" }, b] }], error: \"Invalid configuration: Multi-Region Access Point ARNs are disabled.\", [bW]: n }, { [bW]: c, [bX]: [{ [bY]: [{ [bZ]: j, [ca]: bt, [cc]: G }], [bW]: c, [bX]: [{ [bW]: c, [bX]: [{ [bY]: [{ [bZ]: k, [ca]: [{ [bZ]: v, [ca]: [{ [cb]: G }, w] }, { [bZ]: v, [ca]: [aH, \"partition\"] }] }], [bW]: c, [bX]: [{ endpoint: { [cd]: \"https://{accessPointName}.accesspoint.s3-global.{mrapPartition#dnsSuffix}\", [ce]: { [cf]: [{ name: \"sigv4a\", signingRegionSet: [\"*\"], [ch]: t, [ci]: b }] }, [cj]: W }, [bW]: q }] }, { error: \"Client was configured for partition `{mrapPartition#name}` but bucket referred to partition `{bucketArn#partition}`\", [bW]: n }] }] }, { error: \"{Region} was not a valid region\", [bW]: n }] }] }] }] }] }] }, { error: \"Invalid Access Point Name\", [bW]: n }] }] }] }, ba] }, { [bY]: [{ [bZ]: k, [ca]: [aJ, p] }], [bW]: c, [bX]: [{ [bY]: bI, error: \"S3 Outposts does not support Dual-stack\", [bW]: n }, { [bW]: c, [bX]: [{ [bY]: bS, error: \"S3 Outposts does not support FIPS\", [bW]: n }, { [bW]: c, [bX]: [{ [bY]: bJ, error: \"S3 Outposts does not support S3 Accelerate\", [bW]: n }, { [bW]: c, [bX]: [{ [bY]: [{ [bZ]: d, [ca]: [{ [bZ]: v, [ca]: [aH, \"resourceId[4]\"] }] }], error: \"Invalid Arn: Outpost Access Point ARN contains sub resources\", [bW]: n }, { [bW]: c, [bX]: [{ [bY]: [{ [bZ]: v, [ca]: bH, [cc]: i }], [bW]: c, [bX]: [{ [bW]: c, [bX]: [{ [bY]: bv, [bW]: c, [bX]: [{ [bW]: c, [bX]: [aO, { [bW]: c, [bX]: [{ [bY]: bN, [bW]: c, [bX]: [{ [bW]: c, [bX]: [{ [bY]: bC, [bW]: c, [bX]: [{ [bW]: c, [bX]: [{ [bY]: bO, [bW]: c, [bX]: [{ [bW]: c, [bX]: [{ [bY]: bP, [bW]: c, [bX]: [{ [bW]: c, [bX]: [{ [bY]: bQ, [bW]: c, [bX]: [{ [bW]: c, [bX]: [{ [bY]: [{ [bZ]: v, [ca]: bM, [cc]: H }], [bW]: c, [bX]: [{ [bW]: c, [bX]: [{ [bY]: [{ [bZ]: v, [ca]: [aH, \"resourceId[3]\"], [cc]: E }], [bW]: c, [bX]: [{ [bW]: c, [bX]: [{ [bY]: [{ [bZ]: k, [ca]: [{ [cb]: H }, D] }], [bW]: c, [bX]: [{ [bW]: c, [bX]: [{ [bY]: by, endpoint: { [cd]: \"https://{accessPointName}-{bucketArn#accountId}.{outpostId}.{url#authority}\", [ce]: bc, [cj]: W }, [bW]: q }, { endpoint: { [cd]: \"https://{accessPointName}-{bucketArn#accountId}.{outpostId}.s3-outposts.{bucketArn#region}.{bucketPartition#dnsSuffix}\", [ce]: bc, [cj]: W }, [bW]: q }] }] }, { error: \"Expected an outpost type `accesspoint`, found {outpostType}\", [bW]: n }] }] }, { error: \"Invalid ARN: expected an access point name\", [bW]: n }] }] }, { error: \"Invalid ARN: Expected a 4-component resource\", [bW]: n }] }] }, aU] }] }, aV] }] }, aW] }] }, ai] }] }, { error: \"Could not load partition for ARN region {bucketArn#region}\", [bW]: n }] }] }] }, { error: \"Invalid ARN: The outpost Id may only contain a-z, A-Z, 0-9 and `-`. Found: `{outpostId}`\", [bW]: n }] }] }, { error: \"Invalid ARN: The Outpost Id was not set\", [bW]: n }] }] }] }] }] }, { error: \"Invalid ARN: Unrecognized format: {Bucket} (type: {arnType})\", [bW]: n }] }] }, { error: \"Invalid ARN: No ARN type specified\", [bW]: n }] }, { [bY]: [{ [bZ]: e, [ca]: [P, 0, 4, a], [cc]: I }, { [bZ]: k, [ca]: [{ [cb]: I }, \"arn:\"] }, { [bZ]: m, [ca]: [{ [bZ]: d, [ca]: bA }] }], error: \"Invalid ARN: `{Bucket}` was not a valid ARN\", [bW]: n }, Y] }] }, { [bY]: [{ [bZ]: d, [ca]: [bd] }, { [bZ]: r, [ca]: [bd, b] }], [bW]: c, [bX]: [{ [bY]: bC, [bW]: c, [bX]: [{ [bW]: c, [bX]: [{ [bY]: bT, [bW]: c, [bX]: [{ [bW]: c, [bX]: [aL, { [bW]: c, [bX]: [aM, { [bW]: c, [bX]: [aj, { [bW]: c, [bX]: [{ [bY]: by, endpoint: { [cd]: J, [ce]: be, [cj]: W }, [bW]: q }, { [bY]: bS, endpoint: { [cd]: \"https://s3-object-lambda-fips.{Region}.{partitionResult#dnsSuffix}\", [ce]: be, [cj]: W }, [bW]: q }, { endpoint: { [cd]: \"https://s3-object-lambda.{Region}.{partitionResult#dnsSuffix}\", [ce]: be, [cj]: W }, [bW]: q }] }] }] }] }] }, aG] }] }, ai] }, { [bY]: [{ [bZ]: m, [ca]: bz }], [bW]: c, [bX]: [{ [bY]: bC, [bW]: c, [bX]: [{ [bW]: c, [bX]: [{ [bY]: bT, [bW]: c, [bX]: [{ [bW]: c, [bX]: [aj, { [bW]: c, [bX]: [bf, bf, { [bY]: [ab, Z, T, U, ac, ad], [bW]: c, [bX]: bU }, { [bY]: [ab, Z, T, U, ac, af], endpoint: bh, [bW]: q }, bi, bi, { [bY]: [ab, Z, S, ac, ad], [bW]: c, [bX]: [{ endpoint: bj, [bW]: q }] }, { [bY]: [ab, Z, S, ac, af], endpoint: bj, [bW]: q }, bk, bk, { [bY]: [ab, ag, T, U, ac, ad], [bW]: c, [bX]: bU }, { [bY]: [ab, ag, T, U, ac, af], endpoint: bh, [bW]: q }, bl, bl, { [bY]: [ab, ag, S, ac, ad], [bW]: c, [bX]: [{ endpoint: bm, [bW]: q }] }, { [bY]: [ab, ag, S, ac, af], endpoint: bm, [bW]: q }, bn, bn, { [bY]: [ah, Z, T, U, ac, ad], [bW]: c, [bX]: bU }, { [bY]: [ah, Z, T, U, ac, af], endpoint: bh, [bW]: q }, bo, bo, { [bY]: [ah, Z, S, ac, ad], [bW]: c, [bX]: [{ endpoint: bp, [bW]: q }] }, { [bY]: [ah, Z, S, ac, af], endpoint: bp, [bW]: q }, bq, bq, { [bY]: [ah, ag, T, U, ac, ad], [bW]: c, [bX]: [{ [bY]: bD, endpoint: bh, [bW]: q }, bg] }, { [bY]: [ah, ag, T, U, ac, af], endpoint: bh, [bW]: q }, br, br, { [bY]: [ah, ag, S, ac, ad], [bW]: c, [bX]: [{ [bY]: bD, endpoint: { [cd]: K, [ce]: ae, [cj]: W }, [bW]: q }, { endpoint: bs, [bW]: q }] }, { [bY]: [ah, ag, S, ac, af], endpoint: bs, [bW]: q }] }] }] }, aG] }] }, ai] }] }] }, { error: \"A region must be set when sending requests to S3.\", [bW]: n }] }] };\nexports.ruleSet = _data;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.defaultEndpointResolver = void 0;\nconst util_endpoints_1 = require(\"@aws-sdk/util-endpoints\");\nconst ruleset_1 = require(\"./ruleset\");\nconst defaultEndpointResolver = (endpointParams, context = {}) => {\n return (0, util_endpoints_1.resolveEndpoint)(ruleset_1.ruleSet, {\n endpointParams: endpointParams,\n logger: context.logger,\n });\n};\nexports.defaultEndpointResolver = defaultEndpointResolver;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRuntimeConfig = void 0;\nconst signature_v4_multi_region_1 = require(\"@aws-sdk/signature-v4-multi-region\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst url_parser_1 = require(\"@aws-sdk/url-parser\");\nconst util_base64_1 = require(\"@aws-sdk/util-base64\");\nconst util_utf8_1 = require(\"@aws-sdk/util-utf8\");\nconst endpointResolver_1 = require(\"./endpoint/endpointResolver\");\nconst getRuntimeConfig = (config) => ({\n apiVersion: \"2006-03-01\",\n base64Decoder: config?.base64Decoder ?? util_base64_1.fromBase64,\n base64Encoder: config?.base64Encoder ?? util_base64_1.toBase64,\n disableHostPrefix: config?.disableHostPrefix ?? false,\n endpointProvider: config?.endpointProvider ?? endpointResolver_1.defaultEndpointResolver,\n logger: config?.logger ?? new smithy_client_1.NoOpLogger(),\n serviceId: config?.serviceId ?? \"S3\",\n signerConstructor: config?.signerConstructor ?? signature_v4_multi_region_1.SignatureV4MultiRegion,\n signingEscapePath: config?.signingEscapePath ?? false,\n urlParser: config?.urlParser ?? url_parser_1.parseUrl,\n useArnRegion: config?.useArnRegion ?? false,\n utf8Decoder: config?.utf8Decoder ?? util_utf8_1.fromUtf8,\n utf8Encoder: config?.utf8Encoder ?? util_utf8_1.toUtf8,\n});\nexports.getRuntimeConfig = getRuntimeConfig;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRuntimeConfig = void 0;\nconst tslib_1 = require(\"tslib\");\nconst package_json_1 = tslib_1.__importDefault(require(\"../package.json\"));\nconst client_sts_1 = require(\"@aws-sdk/client-sts\");\nconst config_resolver_1 = require(\"@aws-sdk/config-resolver\");\nconst credential_provider_node_1 = require(\"@aws-sdk/credential-provider-node\");\nconst eventstream_serde_node_1 = require(\"@aws-sdk/eventstream-serde-node\");\nconst hash_node_1 = require(\"@aws-sdk/hash-node\");\nconst hash_stream_node_1 = require(\"@aws-sdk/hash-stream-node\");\nconst middleware_bucket_endpoint_1 = require(\"@aws-sdk/middleware-bucket-endpoint\");\nconst middleware_retry_1 = require(\"@aws-sdk/middleware-retry\");\nconst node_config_provider_1 = require(\"@aws-sdk/node-config-provider\");\nconst node_http_handler_1 = require(\"@aws-sdk/node-http-handler\");\nconst util_body_length_node_1 = require(\"@aws-sdk/util-body-length-node\");\nconst util_retry_1 = require(\"@aws-sdk/util-retry\");\nconst util_stream_node_1 = require(\"@aws-sdk/util-stream-node\");\nconst util_user_agent_node_1 = require(\"@aws-sdk/util-user-agent-node\");\nconst runtimeConfig_shared_1 = require(\"./runtimeConfig.shared\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst util_defaults_mode_node_1 = require(\"@aws-sdk/util-defaults-mode-node\");\nconst smithy_client_2 = require(\"@aws-sdk/smithy-client\");\nconst getRuntimeConfig = (config) => {\n (0, smithy_client_2.emitWarningIfUnsupportedVersion)(process.version);\n const defaultsMode = (0, util_defaults_mode_node_1.resolveDefaultsModeConfig)(config);\n const defaultConfigProvider = () => defaultsMode().then(smithy_client_1.loadConfigsForDefaultMode);\n const clientSharedValues = (0, runtimeConfig_shared_1.getRuntimeConfig)(config);\n return {\n ...clientSharedValues,\n ...config,\n runtime: \"node\",\n defaultsMode,\n bodyLengthChecker: config?.bodyLengthChecker ?? util_body_length_node_1.calculateBodyLength,\n credentialDefaultProvider: config?.credentialDefaultProvider ?? (0, client_sts_1.decorateDefaultCredentialProvider)(credential_provider_node_1.defaultProvider),\n defaultUserAgentProvider: config?.defaultUserAgentProvider ??\n (0, util_user_agent_node_1.defaultUserAgent)({ serviceId: clientSharedValues.serviceId, clientVersion: package_json_1.default.version }),\n eventStreamSerdeProvider: config?.eventStreamSerdeProvider ?? eventstream_serde_node_1.eventStreamSerdeProvider,\n getAwsChunkedEncodingStream: config?.getAwsChunkedEncodingStream ?? util_stream_node_1.getAwsChunkedEncodingStream,\n maxAttempts: config?.maxAttempts ?? (0, node_config_provider_1.loadConfig)(middleware_retry_1.NODE_MAX_ATTEMPT_CONFIG_OPTIONS),\n md5: config?.md5 ?? hash_node_1.Hash.bind(null, \"md5\"),\n region: config?.region ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_REGION_CONFIG_OPTIONS, config_resolver_1.NODE_REGION_CONFIG_FILE_OPTIONS),\n requestHandler: config?.requestHandler ?? new node_http_handler_1.NodeHttpHandler(defaultConfigProvider),\n retryMode: config?.retryMode ??\n (0, node_config_provider_1.loadConfig)({\n ...middleware_retry_1.NODE_RETRY_MODE_CONFIG_OPTIONS,\n default: async () => (await defaultConfigProvider()).retryMode || util_retry_1.DEFAULT_RETRY_MODE,\n }),\n sdkStreamMixin: config?.sdkStreamMixin ?? util_stream_node_1.sdkStreamMixin,\n sha1: config?.sha1 ?? hash_node_1.Hash.bind(null, \"sha1\"),\n sha256: config?.sha256 ?? hash_node_1.Hash.bind(null, \"sha256\"),\n streamCollector: config?.streamCollector ?? node_http_handler_1.streamCollector,\n streamHasher: config?.streamHasher ?? hash_stream_node_1.readableStreamHasher,\n useArnRegion: config?.useArnRegion ?? (0, node_config_provider_1.loadConfig)(middleware_bucket_endpoint_1.NODE_USE_ARN_REGION_CONFIG_OPTIONS),\n useDualstackEndpoint: config?.useDualstackEndpoint ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS),\n useFipsEndpoint: config?.useFipsEndpoint ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS),\n };\n};\nexports.getRuntimeConfig = getRuntimeConfig;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.S3Client = void 0;\nconst config_resolver_1 = require(\"@aws-sdk/config-resolver\");\nconst eventstream_serde_config_resolver_1 = require(\"@aws-sdk/eventstream-serde-config-resolver\");\nconst middleware_content_length_1 = require(\"@aws-sdk/middleware-content-length\");\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_expect_continue_1 = require(\"@aws-sdk/middleware-expect-continue\");\nconst middleware_host_header_1 = require(\"@aws-sdk/middleware-host-header\");\nconst middleware_logger_1 = require(\"@aws-sdk/middleware-logger\");\nconst middleware_recursion_detection_1 = require(\"@aws-sdk/middleware-recursion-detection\");\nconst middleware_retry_1 = require(\"@aws-sdk/middleware-retry\");\nconst middleware_sdk_s3_1 = require(\"@aws-sdk/middleware-sdk-s3\");\nconst middleware_signing_1 = require(\"@aws-sdk/middleware-signing\");\nconst middleware_user_agent_1 = require(\"@aws-sdk/middleware-user-agent\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst EndpointParameters_1 = require(\"./endpoint/EndpointParameters\");\nconst runtimeConfig_1 = require(\"./runtimeConfig\");\nclass S3Client extends smithy_client_1.Client {\n constructor(configuration) {\n const _config_0 = (0, runtimeConfig_1.getRuntimeConfig)(configuration);\n const _config_1 = (0, EndpointParameters_1.resolveClientEndpointParameters)(_config_0);\n const _config_2 = (0, config_resolver_1.resolveRegionConfig)(_config_1);\n const _config_3 = (0, middleware_endpoint_1.resolveEndpointConfig)(_config_2);\n const _config_4 = (0, middleware_retry_1.resolveRetryConfig)(_config_3);\n const _config_5 = (0, middleware_host_header_1.resolveHostHeaderConfig)(_config_4);\n const _config_6 = (0, middleware_signing_1.resolveAwsAuthConfig)(_config_5);\n const _config_7 = (0, middleware_sdk_s3_1.resolveS3Config)(_config_6);\n const _config_8 = (0, middleware_user_agent_1.resolveUserAgentConfig)(_config_7);\n const _config_9 = (0, eventstream_serde_config_resolver_1.resolveEventStreamSerdeConfig)(_config_8);\n super(_config_9);\n this.config = _config_9;\n this.middlewareStack.use((0, middleware_retry_1.getRetryPlugin)(this.config));\n this.middlewareStack.use((0, middleware_content_length_1.getContentLengthPlugin)(this.config));\n this.middlewareStack.use((0, middleware_host_header_1.getHostHeaderPlugin)(this.config));\n this.middlewareStack.use((0, middleware_logger_1.getLoggerPlugin)(this.config));\n this.middlewareStack.use((0, middleware_recursion_detection_1.getRecursionDetectionPlugin)(this.config));\n this.middlewareStack.use((0, middleware_signing_1.getAwsAuthPlugin)(this.config));\n this.middlewareStack.use((0, middleware_sdk_s3_1.getValidateBucketNamePlugin)(this.config));\n this.middlewareStack.use((0, middleware_expect_continue_1.getAddExpectContinuePlugin)(this.config));\n this.middlewareStack.use((0, middleware_user_agent_1.getUserAgentPlugin)(this.config));\n }\n destroy() {\n super.destroy();\n }\n}\nexports.S3Client = S3Client;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.S3 = void 0;\nconst AbortMultipartUploadCommand_1 = require(\"./commands/AbortMultipartUploadCommand\");\nconst CompleteMultipartUploadCommand_1 = require(\"./commands/CompleteMultipartUploadCommand\");\nconst CopyObjectCommand_1 = require(\"./commands/CopyObjectCommand\");\nconst CreateBucketCommand_1 = require(\"./commands/CreateBucketCommand\");\nconst CreateMultipartUploadCommand_1 = require(\"./commands/CreateMultipartUploadCommand\");\nconst DeleteBucketAnalyticsConfigurationCommand_1 = require(\"./commands/DeleteBucketAnalyticsConfigurationCommand\");\nconst DeleteBucketCommand_1 = require(\"./commands/DeleteBucketCommand\");\nconst DeleteBucketCorsCommand_1 = require(\"./commands/DeleteBucketCorsCommand\");\nconst DeleteBucketEncryptionCommand_1 = require(\"./commands/DeleteBucketEncryptionCommand\");\nconst DeleteBucketIntelligentTieringConfigurationCommand_1 = require(\"./commands/DeleteBucketIntelligentTieringConfigurationCommand\");\nconst DeleteBucketInventoryConfigurationCommand_1 = require(\"./commands/DeleteBucketInventoryConfigurationCommand\");\nconst DeleteBucketLifecycleCommand_1 = require(\"./commands/DeleteBucketLifecycleCommand\");\nconst DeleteBucketMetricsConfigurationCommand_1 = require(\"./commands/DeleteBucketMetricsConfigurationCommand\");\nconst DeleteBucketOwnershipControlsCommand_1 = require(\"./commands/DeleteBucketOwnershipControlsCommand\");\nconst DeleteBucketPolicyCommand_1 = require(\"./commands/DeleteBucketPolicyCommand\");\nconst DeleteBucketReplicationCommand_1 = require(\"./commands/DeleteBucketReplicationCommand\");\nconst DeleteBucketTaggingCommand_1 = require(\"./commands/DeleteBucketTaggingCommand\");\nconst DeleteBucketWebsiteCommand_1 = require(\"./commands/DeleteBucketWebsiteCommand\");\nconst DeleteObjectCommand_1 = require(\"./commands/DeleteObjectCommand\");\nconst DeleteObjectsCommand_1 = require(\"./commands/DeleteObjectsCommand\");\nconst DeleteObjectTaggingCommand_1 = require(\"./commands/DeleteObjectTaggingCommand\");\nconst DeletePublicAccessBlockCommand_1 = require(\"./commands/DeletePublicAccessBlockCommand\");\nconst GetBucketAccelerateConfigurationCommand_1 = require(\"./commands/GetBucketAccelerateConfigurationCommand\");\nconst GetBucketAclCommand_1 = require(\"./commands/GetBucketAclCommand\");\nconst GetBucketAnalyticsConfigurationCommand_1 = require(\"./commands/GetBucketAnalyticsConfigurationCommand\");\nconst GetBucketCorsCommand_1 = require(\"./commands/GetBucketCorsCommand\");\nconst GetBucketEncryptionCommand_1 = require(\"./commands/GetBucketEncryptionCommand\");\nconst GetBucketIntelligentTieringConfigurationCommand_1 = require(\"./commands/GetBucketIntelligentTieringConfigurationCommand\");\nconst GetBucketInventoryConfigurationCommand_1 = require(\"./commands/GetBucketInventoryConfigurationCommand\");\nconst GetBucketLifecycleConfigurationCommand_1 = require(\"./commands/GetBucketLifecycleConfigurationCommand\");\nconst GetBucketLocationCommand_1 = require(\"./commands/GetBucketLocationCommand\");\nconst GetBucketLoggingCommand_1 = require(\"./commands/GetBucketLoggingCommand\");\nconst GetBucketMetricsConfigurationCommand_1 = require(\"./commands/GetBucketMetricsConfigurationCommand\");\nconst GetBucketNotificationConfigurationCommand_1 = require(\"./commands/GetBucketNotificationConfigurationCommand\");\nconst GetBucketOwnershipControlsCommand_1 = require(\"./commands/GetBucketOwnershipControlsCommand\");\nconst GetBucketPolicyCommand_1 = require(\"./commands/GetBucketPolicyCommand\");\nconst GetBucketPolicyStatusCommand_1 = require(\"./commands/GetBucketPolicyStatusCommand\");\nconst GetBucketReplicationCommand_1 = require(\"./commands/GetBucketReplicationCommand\");\nconst GetBucketRequestPaymentCommand_1 = require(\"./commands/GetBucketRequestPaymentCommand\");\nconst GetBucketTaggingCommand_1 = require(\"./commands/GetBucketTaggingCommand\");\nconst GetBucketVersioningCommand_1 = require(\"./commands/GetBucketVersioningCommand\");\nconst GetBucketWebsiteCommand_1 = require(\"./commands/GetBucketWebsiteCommand\");\nconst GetObjectAclCommand_1 = require(\"./commands/GetObjectAclCommand\");\nconst GetObjectAttributesCommand_1 = require(\"./commands/GetObjectAttributesCommand\");\nconst GetObjectCommand_1 = require(\"./commands/GetObjectCommand\");\nconst GetObjectLegalHoldCommand_1 = require(\"./commands/GetObjectLegalHoldCommand\");\nconst GetObjectLockConfigurationCommand_1 = require(\"./commands/GetObjectLockConfigurationCommand\");\nconst GetObjectRetentionCommand_1 = require(\"./commands/GetObjectRetentionCommand\");\nconst GetObjectTaggingCommand_1 = require(\"./commands/GetObjectTaggingCommand\");\nconst GetObjectTorrentCommand_1 = require(\"./commands/GetObjectTorrentCommand\");\nconst GetPublicAccessBlockCommand_1 = require(\"./commands/GetPublicAccessBlockCommand\");\nconst HeadBucketCommand_1 = require(\"./commands/HeadBucketCommand\");\nconst HeadObjectCommand_1 = require(\"./commands/HeadObjectCommand\");\nconst ListBucketAnalyticsConfigurationsCommand_1 = require(\"./commands/ListBucketAnalyticsConfigurationsCommand\");\nconst ListBucketIntelligentTieringConfigurationsCommand_1 = require(\"./commands/ListBucketIntelligentTieringConfigurationsCommand\");\nconst ListBucketInventoryConfigurationsCommand_1 = require(\"./commands/ListBucketInventoryConfigurationsCommand\");\nconst ListBucketMetricsConfigurationsCommand_1 = require(\"./commands/ListBucketMetricsConfigurationsCommand\");\nconst ListBucketsCommand_1 = require(\"./commands/ListBucketsCommand\");\nconst ListMultipartUploadsCommand_1 = require(\"./commands/ListMultipartUploadsCommand\");\nconst ListObjectsCommand_1 = require(\"./commands/ListObjectsCommand\");\nconst ListObjectsV2Command_1 = require(\"./commands/ListObjectsV2Command\");\nconst ListObjectVersionsCommand_1 = require(\"./commands/ListObjectVersionsCommand\");\nconst ListPartsCommand_1 = require(\"./commands/ListPartsCommand\");\nconst PutBucketAccelerateConfigurationCommand_1 = require(\"./commands/PutBucketAccelerateConfigurationCommand\");\nconst PutBucketAclCommand_1 = require(\"./commands/PutBucketAclCommand\");\nconst PutBucketAnalyticsConfigurationCommand_1 = require(\"./commands/PutBucketAnalyticsConfigurationCommand\");\nconst PutBucketCorsCommand_1 = require(\"./commands/PutBucketCorsCommand\");\nconst PutBucketEncryptionCommand_1 = require(\"./commands/PutBucketEncryptionCommand\");\nconst PutBucketIntelligentTieringConfigurationCommand_1 = require(\"./commands/PutBucketIntelligentTieringConfigurationCommand\");\nconst PutBucketInventoryConfigurationCommand_1 = require(\"./commands/PutBucketInventoryConfigurationCommand\");\nconst PutBucketLifecycleConfigurationCommand_1 = require(\"./commands/PutBucketLifecycleConfigurationCommand\");\nconst PutBucketLoggingCommand_1 = require(\"./commands/PutBucketLoggingCommand\");\nconst PutBucketMetricsConfigurationCommand_1 = require(\"./commands/PutBucketMetricsConfigurationCommand\");\nconst PutBucketNotificationConfigurationCommand_1 = require(\"./commands/PutBucketNotificationConfigurationCommand\");\nconst PutBucketOwnershipControlsCommand_1 = require(\"./commands/PutBucketOwnershipControlsCommand\");\nconst PutBucketPolicyCommand_1 = require(\"./commands/PutBucketPolicyCommand\");\nconst PutBucketReplicationCommand_1 = require(\"./commands/PutBucketReplicationCommand\");\nconst PutBucketRequestPaymentCommand_1 = require(\"./commands/PutBucketRequestPaymentCommand\");\nconst PutBucketTaggingCommand_1 = require(\"./commands/PutBucketTaggingCommand\");\nconst PutBucketVersioningCommand_1 = require(\"./commands/PutBucketVersioningCommand\");\nconst PutBucketWebsiteCommand_1 = require(\"./commands/PutBucketWebsiteCommand\");\nconst PutObjectAclCommand_1 = require(\"./commands/PutObjectAclCommand\");\nconst PutObjectCommand_1 = require(\"./commands/PutObjectCommand\");\nconst PutObjectLegalHoldCommand_1 = require(\"./commands/PutObjectLegalHoldCommand\");\nconst PutObjectLockConfigurationCommand_1 = require(\"./commands/PutObjectLockConfigurationCommand\");\nconst PutObjectRetentionCommand_1 = require(\"./commands/PutObjectRetentionCommand\");\nconst PutObjectTaggingCommand_1 = require(\"./commands/PutObjectTaggingCommand\");\nconst PutPublicAccessBlockCommand_1 = require(\"./commands/PutPublicAccessBlockCommand\");\nconst RestoreObjectCommand_1 = require(\"./commands/RestoreObjectCommand\");\nconst SelectObjectContentCommand_1 = require(\"./commands/SelectObjectContentCommand\");\nconst UploadPartCommand_1 = require(\"./commands/UploadPartCommand\");\nconst UploadPartCopyCommand_1 = require(\"./commands/UploadPartCopyCommand\");\nconst WriteGetObjectResponseCommand_1 = require(\"./commands/WriteGetObjectResponseCommand\");\nconst S3Client_1 = require(\"./S3Client\");\nclass S3 extends S3Client_1.S3Client {\n abortMultipartUpload(args, optionsOrCb, cb) {\n const command = new AbortMultipartUploadCommand_1.AbortMultipartUploadCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n completeMultipartUpload(args, optionsOrCb, cb) {\n const command = new CompleteMultipartUploadCommand_1.CompleteMultipartUploadCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n copyObject(args, optionsOrCb, cb) {\n const command = new CopyObjectCommand_1.CopyObjectCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n createBucket(args, optionsOrCb, cb) {\n const command = new CreateBucketCommand_1.CreateBucketCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n createMultipartUpload(args, optionsOrCb, cb) {\n const command = new CreateMultipartUploadCommand_1.CreateMultipartUploadCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n deleteBucket(args, optionsOrCb, cb) {\n const command = new DeleteBucketCommand_1.DeleteBucketCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n deleteBucketAnalyticsConfiguration(args, optionsOrCb, cb) {\n const command = new DeleteBucketAnalyticsConfigurationCommand_1.DeleteBucketAnalyticsConfigurationCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n deleteBucketCors(args, optionsOrCb, cb) {\n const command = new DeleteBucketCorsCommand_1.DeleteBucketCorsCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n deleteBucketEncryption(args, optionsOrCb, cb) {\n const command = new DeleteBucketEncryptionCommand_1.DeleteBucketEncryptionCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n deleteBucketIntelligentTieringConfiguration(args, optionsOrCb, cb) {\n const command = new DeleteBucketIntelligentTieringConfigurationCommand_1.DeleteBucketIntelligentTieringConfigurationCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n deleteBucketInventoryConfiguration(args, optionsOrCb, cb) {\n const command = new DeleteBucketInventoryConfigurationCommand_1.DeleteBucketInventoryConfigurationCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n deleteBucketLifecycle(args, optionsOrCb, cb) {\n const command = new DeleteBucketLifecycleCommand_1.DeleteBucketLifecycleCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n deleteBucketMetricsConfiguration(args, optionsOrCb, cb) {\n const command = new DeleteBucketMetricsConfigurationCommand_1.DeleteBucketMetricsConfigurationCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n deleteBucketOwnershipControls(args, optionsOrCb, cb) {\n const command = new DeleteBucketOwnershipControlsCommand_1.DeleteBucketOwnershipControlsCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n deleteBucketPolicy(args, optionsOrCb, cb) {\n const command = new DeleteBucketPolicyCommand_1.DeleteBucketPolicyCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n deleteBucketReplication(args, optionsOrCb, cb) {\n const command = new DeleteBucketReplicationCommand_1.DeleteBucketReplicationCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n deleteBucketTagging(args, optionsOrCb, cb) {\n const command = new DeleteBucketTaggingCommand_1.DeleteBucketTaggingCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n deleteBucketWebsite(args, optionsOrCb, cb) {\n const command = new DeleteBucketWebsiteCommand_1.DeleteBucketWebsiteCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n deleteObject(args, optionsOrCb, cb) {\n const command = new DeleteObjectCommand_1.DeleteObjectCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n deleteObjects(args, optionsOrCb, cb) {\n const command = new DeleteObjectsCommand_1.DeleteObjectsCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n deleteObjectTagging(args, optionsOrCb, cb) {\n const command = new DeleteObjectTaggingCommand_1.DeleteObjectTaggingCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n deletePublicAccessBlock(args, optionsOrCb, cb) {\n const command = new DeletePublicAccessBlockCommand_1.DeletePublicAccessBlockCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n getBucketAccelerateConfiguration(args, optionsOrCb, cb) {\n const command = new GetBucketAccelerateConfigurationCommand_1.GetBucketAccelerateConfigurationCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n getBucketAcl(args, optionsOrCb, cb) {\n const command = new GetBucketAclCommand_1.GetBucketAclCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n getBucketAnalyticsConfiguration(args, optionsOrCb, cb) {\n const command = new GetBucketAnalyticsConfigurationCommand_1.GetBucketAnalyticsConfigurationCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n getBucketCors(args, optionsOrCb, cb) {\n const command = new GetBucketCorsCommand_1.GetBucketCorsCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n getBucketEncryption(args, optionsOrCb, cb) {\n const command = new GetBucketEncryptionCommand_1.GetBucketEncryptionCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n getBucketIntelligentTieringConfiguration(args, optionsOrCb, cb) {\n const command = new GetBucketIntelligentTieringConfigurationCommand_1.GetBucketIntelligentTieringConfigurationCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n getBucketInventoryConfiguration(args, optionsOrCb, cb) {\n const command = new GetBucketInventoryConfigurationCommand_1.GetBucketInventoryConfigurationCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n getBucketLifecycleConfiguration(args, optionsOrCb, cb) {\n const command = new GetBucketLifecycleConfigurationCommand_1.GetBucketLifecycleConfigurationCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n getBucketLocation(args, optionsOrCb, cb) {\n const command = new GetBucketLocationCommand_1.GetBucketLocationCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n getBucketLogging(args, optionsOrCb, cb) {\n const command = new GetBucketLoggingCommand_1.GetBucketLoggingCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n getBucketMetricsConfiguration(args, optionsOrCb, cb) {\n const command = new GetBucketMetricsConfigurationCommand_1.GetBucketMetricsConfigurationCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n getBucketNotificationConfiguration(args, optionsOrCb, cb) {\n const command = new GetBucketNotificationConfigurationCommand_1.GetBucketNotificationConfigurationCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n getBucketOwnershipControls(args, optionsOrCb, cb) {\n const command = new GetBucketOwnershipControlsCommand_1.GetBucketOwnershipControlsCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n getBucketPolicy(args, optionsOrCb, cb) {\n const command = new GetBucketPolicyCommand_1.GetBucketPolicyCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n getBucketPolicyStatus(args, optionsOrCb, cb) {\n const command = new GetBucketPolicyStatusCommand_1.GetBucketPolicyStatusCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n getBucketReplication(args, optionsOrCb, cb) {\n const command = new GetBucketReplicationCommand_1.GetBucketReplicationCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n getBucketRequestPayment(args, optionsOrCb, cb) {\n const command = new GetBucketRequestPaymentCommand_1.GetBucketRequestPaymentCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n getBucketTagging(args, optionsOrCb, cb) {\n const command = new GetBucketTaggingCommand_1.GetBucketTaggingCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n getBucketVersioning(args, optionsOrCb, cb) {\n const command = new GetBucketVersioningCommand_1.GetBucketVersioningCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n getBucketWebsite(args, optionsOrCb, cb) {\n const command = new GetBucketWebsiteCommand_1.GetBucketWebsiteCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n getObject(args, optionsOrCb, cb) {\n const command = new GetObjectCommand_1.GetObjectCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n getObjectAcl(args, optionsOrCb, cb) {\n const command = new GetObjectAclCommand_1.GetObjectAclCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n getObjectAttributes(args, optionsOrCb, cb) {\n const command = new GetObjectAttributesCommand_1.GetObjectAttributesCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n getObjectLegalHold(args, optionsOrCb, cb) {\n const command = new GetObjectLegalHoldCommand_1.GetObjectLegalHoldCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n getObjectLockConfiguration(args, optionsOrCb, cb) {\n const command = new GetObjectLockConfigurationCommand_1.GetObjectLockConfigurationCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n getObjectRetention(args, optionsOrCb, cb) {\n const command = new GetObjectRetentionCommand_1.GetObjectRetentionCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n getObjectTagging(args, optionsOrCb, cb) {\n const command = new GetObjectTaggingCommand_1.GetObjectTaggingCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n getObjectTorrent(args, optionsOrCb, cb) {\n const command = new GetObjectTorrentCommand_1.GetObjectTorrentCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n getPublicAccessBlock(args, optionsOrCb, cb) {\n const command = new GetPublicAccessBlockCommand_1.GetPublicAccessBlockCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n headBucket(args, optionsOrCb, cb) {\n const command = new HeadBucketCommand_1.HeadBucketCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n headObject(args, optionsOrCb, cb) {\n const command = new HeadObjectCommand_1.HeadObjectCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n listBucketAnalyticsConfigurations(args, optionsOrCb, cb) {\n const command = new ListBucketAnalyticsConfigurationsCommand_1.ListBucketAnalyticsConfigurationsCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n listBucketIntelligentTieringConfigurations(args, optionsOrCb, cb) {\n const command = new ListBucketIntelligentTieringConfigurationsCommand_1.ListBucketIntelligentTieringConfigurationsCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n listBucketInventoryConfigurations(args, optionsOrCb, cb) {\n const command = new ListBucketInventoryConfigurationsCommand_1.ListBucketInventoryConfigurationsCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n listBucketMetricsConfigurations(args, optionsOrCb, cb) {\n const command = new ListBucketMetricsConfigurationsCommand_1.ListBucketMetricsConfigurationsCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n listBuckets(args, optionsOrCb, cb) {\n const command = new ListBucketsCommand_1.ListBucketsCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n listMultipartUploads(args, optionsOrCb, cb) {\n const command = new ListMultipartUploadsCommand_1.ListMultipartUploadsCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n listObjects(args, optionsOrCb, cb) {\n const command = new ListObjectsCommand_1.ListObjectsCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n listObjectsV2(args, optionsOrCb, cb) {\n const command = new ListObjectsV2Command_1.ListObjectsV2Command(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n listObjectVersions(args, optionsOrCb, cb) {\n const command = new ListObjectVersionsCommand_1.ListObjectVersionsCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n listParts(args, optionsOrCb, cb) {\n const command = new ListPartsCommand_1.ListPartsCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n putBucketAccelerateConfiguration(args, optionsOrCb, cb) {\n const command = new PutBucketAccelerateConfigurationCommand_1.PutBucketAccelerateConfigurationCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n putBucketAcl(args, optionsOrCb, cb) {\n const command = new PutBucketAclCommand_1.PutBucketAclCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n putBucketAnalyticsConfiguration(args, optionsOrCb, cb) {\n const command = new PutBucketAnalyticsConfigurationCommand_1.PutBucketAnalyticsConfigurationCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n putBucketCors(args, optionsOrCb, cb) {\n const command = new PutBucketCorsCommand_1.PutBucketCorsCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n putBucketEncryption(args, optionsOrCb, cb) {\n const command = new PutBucketEncryptionCommand_1.PutBucketEncryptionCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n putBucketIntelligentTieringConfiguration(args, optionsOrCb, cb) {\n const command = new PutBucketIntelligentTieringConfigurationCommand_1.PutBucketIntelligentTieringConfigurationCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n putBucketInventoryConfiguration(args, optionsOrCb, cb) {\n const command = new PutBucketInventoryConfigurationCommand_1.PutBucketInventoryConfigurationCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n putBucketLifecycleConfiguration(args, optionsOrCb, cb) {\n const command = new PutBucketLifecycleConfigurationCommand_1.PutBucketLifecycleConfigurationCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n putBucketLogging(args, optionsOrCb, cb) {\n const command = new PutBucketLoggingCommand_1.PutBucketLoggingCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n putBucketMetricsConfiguration(args, optionsOrCb, cb) {\n const command = new PutBucketMetricsConfigurationCommand_1.PutBucketMetricsConfigurationCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n putBucketNotificationConfiguration(args, optionsOrCb, cb) {\n const command = new PutBucketNotificationConfigurationCommand_1.PutBucketNotificationConfigurationCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n putBucketOwnershipControls(args, optionsOrCb, cb) {\n const command = new PutBucketOwnershipControlsCommand_1.PutBucketOwnershipControlsCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n putBucketPolicy(args, optionsOrCb, cb) {\n const command = new PutBucketPolicyCommand_1.PutBucketPolicyCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n putBucketReplication(args, optionsOrCb, cb) {\n const command = new PutBucketReplicationCommand_1.PutBucketReplicationCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n putBucketRequestPayment(args, optionsOrCb, cb) {\n const command = new PutBucketRequestPaymentCommand_1.PutBucketRequestPaymentCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n putBucketTagging(args, optionsOrCb, cb) {\n const command = new PutBucketTaggingCommand_1.PutBucketTaggingCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n putBucketVersioning(args, optionsOrCb, cb) {\n const command = new PutBucketVersioningCommand_1.PutBucketVersioningCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n putBucketWebsite(args, optionsOrCb, cb) {\n const command = new PutBucketWebsiteCommand_1.PutBucketWebsiteCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n putObject(args, optionsOrCb, cb) {\n const command = new PutObjectCommand_1.PutObjectCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n putObjectAcl(args, optionsOrCb, cb) {\n const command = new PutObjectAclCommand_1.PutObjectAclCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n putObjectLegalHold(args, optionsOrCb, cb) {\n const command = new PutObjectLegalHoldCommand_1.PutObjectLegalHoldCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n putObjectLockConfiguration(args, optionsOrCb, cb) {\n const command = new PutObjectLockConfigurationCommand_1.PutObjectLockConfigurationCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n putObjectRetention(args, optionsOrCb, cb) {\n const command = new PutObjectRetentionCommand_1.PutObjectRetentionCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n putObjectTagging(args, optionsOrCb, cb) {\n const command = new PutObjectTaggingCommand_1.PutObjectTaggingCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n putPublicAccessBlock(args, optionsOrCb, cb) {\n const command = new PutPublicAccessBlockCommand_1.PutPublicAccessBlockCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n restoreObject(args, optionsOrCb, cb) {\n const command = new RestoreObjectCommand_1.RestoreObjectCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n selectObjectContent(args, optionsOrCb, cb) {\n const command = new SelectObjectContentCommand_1.SelectObjectContentCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n uploadPart(args, optionsOrCb, cb) {\n const command = new UploadPartCommand_1.UploadPartCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n uploadPartCopy(args, optionsOrCb, cb) {\n const command = new UploadPartCopyCommand_1.UploadPartCopyCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n writeGetObjectResponse(args, optionsOrCb, cb) {\n const command = new WriteGetObjectResponseCommand_1.WriteGetObjectResponseCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n}\nexports.S3 = S3;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./AbortMultipartUploadCommand\"), exports);\ntslib_1.__exportStar(require(\"./CompleteMultipartUploadCommand\"), exports);\ntslib_1.__exportStar(require(\"./CopyObjectCommand\"), exports);\ntslib_1.__exportStar(require(\"./CreateBucketCommand\"), exports);\ntslib_1.__exportStar(require(\"./CreateMultipartUploadCommand\"), exports);\ntslib_1.__exportStar(require(\"./DeleteBucketAnalyticsConfigurationCommand\"), exports);\ntslib_1.__exportStar(require(\"./DeleteBucketCommand\"), exports);\ntslib_1.__exportStar(require(\"./DeleteBucketCorsCommand\"), exports);\ntslib_1.__exportStar(require(\"./DeleteBucketEncryptionCommand\"), exports);\ntslib_1.__exportStar(require(\"./DeleteBucketIntelligentTieringConfigurationCommand\"), exports);\ntslib_1.__exportStar(require(\"./DeleteBucketInventoryConfigurationCommand\"), exports);\ntslib_1.__exportStar(require(\"./DeleteBucketLifecycleCommand\"), exports);\ntslib_1.__exportStar(require(\"./DeleteBucketMetricsConfigurationCommand\"), exports);\ntslib_1.__exportStar(require(\"./DeleteBucketOwnershipControlsCommand\"), exports);\ntslib_1.__exportStar(require(\"./DeleteBucketPolicyCommand\"), exports);\ntslib_1.__exportStar(require(\"./DeleteBucketReplicationCommand\"), exports);\ntslib_1.__exportStar(require(\"./DeleteBucketTaggingCommand\"), exports);\ntslib_1.__exportStar(require(\"./DeleteBucketWebsiteCommand\"), exports);\ntslib_1.__exportStar(require(\"./DeleteObjectCommand\"), exports);\ntslib_1.__exportStar(require(\"./DeleteObjectTaggingCommand\"), exports);\ntslib_1.__exportStar(require(\"./DeleteObjectsCommand\"), exports);\ntslib_1.__exportStar(require(\"./DeletePublicAccessBlockCommand\"), exports);\ntslib_1.__exportStar(require(\"./GetBucketAccelerateConfigurationCommand\"), exports);\ntslib_1.__exportStar(require(\"./GetBucketAclCommand\"), exports);\ntslib_1.__exportStar(require(\"./GetBucketAnalyticsConfigurationCommand\"), exports);\ntslib_1.__exportStar(require(\"./GetBucketCorsCommand\"), exports);\ntslib_1.__exportStar(require(\"./GetBucketEncryptionCommand\"), exports);\ntslib_1.__exportStar(require(\"./GetBucketIntelligentTieringConfigurationCommand\"), exports);\ntslib_1.__exportStar(require(\"./GetBucketInventoryConfigurationCommand\"), exports);\ntslib_1.__exportStar(require(\"./GetBucketLifecycleConfigurationCommand\"), exports);\ntslib_1.__exportStar(require(\"./GetBucketLocationCommand\"), exports);\ntslib_1.__exportStar(require(\"./GetBucketLoggingCommand\"), exports);\ntslib_1.__exportStar(require(\"./GetBucketMetricsConfigurationCommand\"), exports);\ntslib_1.__exportStar(require(\"./GetBucketNotificationConfigurationCommand\"), exports);\ntslib_1.__exportStar(require(\"./GetBucketOwnershipControlsCommand\"), exports);\ntslib_1.__exportStar(require(\"./GetBucketPolicyCommand\"), exports);\ntslib_1.__exportStar(require(\"./GetBucketPolicyStatusCommand\"), exports);\ntslib_1.__exportStar(require(\"./GetBucketReplicationCommand\"), exports);\ntslib_1.__exportStar(require(\"./GetBucketRequestPaymentCommand\"), exports);\ntslib_1.__exportStar(require(\"./GetBucketTaggingCommand\"), exports);\ntslib_1.__exportStar(require(\"./GetBucketVersioningCommand\"), exports);\ntslib_1.__exportStar(require(\"./GetBucketWebsiteCommand\"), exports);\ntslib_1.__exportStar(require(\"./GetObjectAclCommand\"), exports);\ntslib_1.__exportStar(require(\"./GetObjectAttributesCommand\"), exports);\ntslib_1.__exportStar(require(\"./GetObjectCommand\"), exports);\ntslib_1.__exportStar(require(\"./GetObjectLegalHoldCommand\"), exports);\ntslib_1.__exportStar(require(\"./GetObjectLockConfigurationCommand\"), exports);\ntslib_1.__exportStar(require(\"./GetObjectRetentionCommand\"), exports);\ntslib_1.__exportStar(require(\"./GetObjectTaggingCommand\"), exports);\ntslib_1.__exportStar(require(\"./GetObjectTorrentCommand\"), exports);\ntslib_1.__exportStar(require(\"./GetPublicAccessBlockCommand\"), exports);\ntslib_1.__exportStar(require(\"./HeadBucketCommand\"), exports);\ntslib_1.__exportStar(require(\"./HeadObjectCommand\"), exports);\ntslib_1.__exportStar(require(\"./ListBucketAnalyticsConfigurationsCommand\"), exports);\ntslib_1.__exportStar(require(\"./ListBucketIntelligentTieringConfigurationsCommand\"), exports);\ntslib_1.__exportStar(require(\"./ListBucketInventoryConfigurationsCommand\"), exports);\ntslib_1.__exportStar(require(\"./ListBucketMetricsConfigurationsCommand\"), exports);\ntslib_1.__exportStar(require(\"./ListBucketsCommand\"), exports);\ntslib_1.__exportStar(require(\"./ListMultipartUploadsCommand\"), exports);\ntslib_1.__exportStar(require(\"./ListObjectVersionsCommand\"), exports);\ntslib_1.__exportStar(require(\"./ListObjectsCommand\"), exports);\ntslib_1.__exportStar(require(\"./ListObjectsV2Command\"), exports);\ntslib_1.__exportStar(require(\"./ListPartsCommand\"), exports);\ntslib_1.__exportStar(require(\"./PutBucketAccelerateConfigurationCommand\"), exports);\ntslib_1.__exportStar(require(\"./PutBucketAclCommand\"), exports);\ntslib_1.__exportStar(require(\"./PutBucketAnalyticsConfigurationCommand\"), exports);\ntslib_1.__exportStar(require(\"./PutBucketCorsCommand\"), exports);\ntslib_1.__exportStar(require(\"./PutBucketEncryptionCommand\"), exports);\ntslib_1.__exportStar(require(\"./PutBucketIntelligentTieringConfigurationCommand\"), exports);\ntslib_1.__exportStar(require(\"./PutBucketInventoryConfigurationCommand\"), exports);\ntslib_1.__exportStar(require(\"./PutBucketLifecycleConfigurationCommand\"), exports);\ntslib_1.__exportStar(require(\"./PutBucketLoggingCommand\"), exports);\ntslib_1.__exportStar(require(\"./PutBucketMetricsConfigurationCommand\"), exports);\ntslib_1.__exportStar(require(\"./PutBucketNotificationConfigurationCommand\"), exports);\ntslib_1.__exportStar(require(\"./PutBucketOwnershipControlsCommand\"), exports);\ntslib_1.__exportStar(require(\"./PutBucketPolicyCommand\"), exports);\ntslib_1.__exportStar(require(\"./PutBucketReplicationCommand\"), exports);\ntslib_1.__exportStar(require(\"./PutBucketRequestPaymentCommand\"), exports);\ntslib_1.__exportStar(require(\"./PutBucketTaggingCommand\"), exports);\ntslib_1.__exportStar(require(\"./PutBucketVersioningCommand\"), exports);\ntslib_1.__exportStar(require(\"./PutBucketWebsiteCommand\"), exports);\ntslib_1.__exportStar(require(\"./PutObjectAclCommand\"), exports);\ntslib_1.__exportStar(require(\"./PutObjectCommand\"), exports);\ntslib_1.__exportStar(require(\"./PutObjectLegalHoldCommand\"), exports);\ntslib_1.__exportStar(require(\"./PutObjectLockConfigurationCommand\"), exports);\ntslib_1.__exportStar(require(\"./PutObjectRetentionCommand\"), exports);\ntslib_1.__exportStar(require(\"./PutObjectTaggingCommand\"), exports);\ntslib_1.__exportStar(require(\"./PutPublicAccessBlockCommand\"), exports);\ntslib_1.__exportStar(require(\"./RestoreObjectCommand\"), exports);\ntslib_1.__exportStar(require(\"./SelectObjectContentCommand\"), exports);\ntslib_1.__exportStar(require(\"./UploadPartCommand\"), exports);\ntslib_1.__exportStar(require(\"./UploadPartCopyCommand\"), exports);\ntslib_1.__exportStar(require(\"./WriteGetObjectResponseCommand\"), exports);\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./models_0\"), exports);\ntslib_1.__exportStar(require(\"./models_1\"), exports);\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.paginateListObjectsV2 = void 0;\nconst ListObjectsV2Command_1 = require(\"../commands/ListObjectsV2Command\");\nconst S3_1 = require(\"../S3\");\nconst S3Client_1 = require(\"../S3Client\");\nconst makePagedClientRequest = async (client, input, ...args) => {\n return await client.send(new ListObjectsV2Command_1.ListObjectsV2Command(input), ...args);\n};\nconst makePagedRequest = async (client, input, ...args) => {\n return await client.listObjectsV2(input, ...args);\n};\nasync function* paginateListObjectsV2(config, input, ...additionalArguments) {\n let token = config.startingToken || undefined;\n let hasNext = true;\n let page;\n while (hasNext) {\n input.ContinuationToken = token;\n input[\"MaxKeys\"] = config.pageSize;\n if (config.client instanceof S3_1.S3) {\n page = await makePagedRequest(config.client, input, ...additionalArguments);\n }\n else if (config.client instanceof S3Client_1.S3Client) {\n page = await makePagedClientRequest(config.client, input, ...additionalArguments);\n }\n else {\n throw new Error(\"Invalid client, expected S3 | S3Client\");\n }\n yield page;\n const prevToken = token;\n token = page.NextContinuationToken;\n hasNext = !!(token && (!config.stopOnSameToken || token !== prevToken));\n }\n return undefined;\n}\nexports.paginateListObjectsV2 = paginateListObjectsV2;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.paginateListParts = void 0;\nconst ListPartsCommand_1 = require(\"../commands/ListPartsCommand\");\nconst S3_1 = require(\"../S3\");\nconst S3Client_1 = require(\"../S3Client\");\nconst makePagedClientRequest = async (client, input, ...args) => {\n return await client.send(new ListPartsCommand_1.ListPartsCommand(input), ...args);\n};\nconst makePagedRequest = async (client, input, ...args) => {\n return await client.listParts(input, ...args);\n};\nasync function* paginateListParts(config, input, ...additionalArguments) {\n let token = config.startingToken || undefined;\n let hasNext = true;\n let page;\n while (hasNext) {\n input.PartNumberMarker = token;\n input[\"MaxParts\"] = config.pageSize;\n if (config.client instanceof S3_1.S3) {\n page = await makePagedRequest(config.client, input, ...additionalArguments);\n }\n else if (config.client instanceof S3Client_1.S3Client) {\n page = await makePagedClientRequest(config.client, input, ...additionalArguments);\n }\n else {\n throw new Error(\"Invalid client, expected S3 | S3Client\");\n }\n yield page;\n const prevToken = token;\n token = page.NextPartNumberMarker;\n hasNext = !!(token && (!config.stopOnSameToken || token !== prevToken));\n }\n return undefined;\n}\nexports.paginateListParts = paginateListParts;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./Interfaces\"), exports);\ntslib_1.__exportStar(require(\"./ListObjectsV2Paginator\"), exports);\ntslib_1.__exportStar(require(\"./ListPartsPaginator\"), exports);\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.sleep = void 0;\nconst sleep = (seconds) => {\n return new Promise((resolve) => setTimeout(resolve, seconds * 1000));\n};\nexports.sleep = sleep;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.checkExceptions = exports.WaiterState = exports.waiterServiceDefaults = void 0;\nexports.waiterServiceDefaults = {\n minDelay: 2,\n maxDelay: 120,\n};\nvar WaiterState;\n(function (WaiterState) {\n WaiterState[\"ABORTED\"] = \"ABORTED\";\n WaiterState[\"FAILURE\"] = \"FAILURE\";\n WaiterState[\"SUCCESS\"] = \"SUCCESS\";\n WaiterState[\"RETRY\"] = \"RETRY\";\n WaiterState[\"TIMEOUT\"] = \"TIMEOUT\";\n})(WaiterState = exports.WaiterState || (exports.WaiterState = {}));\nconst checkExceptions = (result) => {\n if (result.state === WaiterState.ABORTED) {\n const abortError = new Error(`${JSON.stringify({\n ...result,\n reason: \"Request was aborted\",\n })}`);\n abortError.name = \"AbortError\";\n throw abortError;\n }\n else if (result.state === WaiterState.TIMEOUT) {\n const timeoutError = new Error(`${JSON.stringify({\n ...result,\n reason: \"Waiter has timed out\",\n })}`);\n timeoutError.name = \"TimeoutError\";\n throw timeoutError;\n }\n else if (result.state !== WaiterState.SUCCESS) {\n throw new Error(`${JSON.stringify({ result })}`);\n }\n return result;\n};\nexports.checkExceptions = checkExceptions;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.runPolling = void 0;\nconst sleep_1 = require(\"./utils/sleep\");\nconst waiter_1 = require(\"./waiter\");\nconst exponentialBackoffWithJitter = (minDelay, maxDelay, attemptCeiling, attempt) => {\n if (attempt > attemptCeiling)\n return maxDelay;\n const delay = minDelay * 2 ** (attempt - 1);\n return randomInRange(minDelay, delay);\n};\nconst randomInRange = (min, max) => min + Math.random() * (max - min);\nconst runPolling = async ({ minDelay, maxDelay, maxWaitTime, abortController, client, abortSignal }, input, acceptorChecks) => {\n var _a;\n const { state, reason } = await acceptorChecks(client, input);\n if (state !== waiter_1.WaiterState.RETRY) {\n return { state, reason };\n }\n let currentAttempt = 1;\n const waitUntil = Date.now() + maxWaitTime * 1000;\n const attemptCeiling = Math.log(maxDelay / minDelay) / Math.log(2) + 1;\n while (true) {\n if (((_a = abortController === null || abortController === void 0 ? void 0 : abortController.signal) === null || _a === void 0 ? void 0 : _a.aborted) || (abortSignal === null || abortSignal === void 0 ? void 0 : abortSignal.aborted)) {\n return { state: waiter_1.WaiterState.ABORTED };\n }\n const delay = exponentialBackoffWithJitter(minDelay, maxDelay, attemptCeiling, currentAttempt);\n if (Date.now() + delay * 1000 > waitUntil) {\n return { state: waiter_1.WaiterState.TIMEOUT };\n }\n await (0, sleep_1.sleep)(delay);\n const { state, reason } = await acceptorChecks(client, input);\n if (state !== waiter_1.WaiterState.RETRY) {\n return { state, reason };\n }\n currentAttempt += 1;\n }\n};\nexports.runPolling = runPolling;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.validateWaiterOptions = void 0;\nconst validateWaiterOptions = (options) => {\n if (options.maxWaitTime < 1) {\n throw new Error(`WaiterConfiguration.maxWaitTime must be greater than 0`);\n }\n else if (options.minDelay < 1) {\n throw new Error(`WaiterConfiguration.minDelay must be greater than 0`);\n }\n else if (options.maxDelay < 1) {\n throw new Error(`WaiterConfiguration.maxDelay must be greater than 0`);\n }\n else if (options.maxWaitTime <= options.minDelay) {\n throw new Error(`WaiterConfiguration.maxWaitTime [${options.maxWaitTime}] must be greater than WaiterConfiguration.minDelay [${options.minDelay}] for this waiter`);\n }\n else if (options.maxDelay < options.minDelay) {\n throw new Error(`WaiterConfiguration.maxDelay [${options.maxDelay}] must be greater than WaiterConfiguration.minDelay [${options.minDelay}] for this waiter`);\n }\n};\nexports.validateWaiterOptions = validateWaiterOptions;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./sleep\"), exports);\ntslib_1.__exportStar(require(\"./validate\"), exports);\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createWaiter = void 0;\nconst poller_1 = require(\"./poller\");\nconst utils_1 = require(\"./utils\");\nconst waiter_1 = require(\"./waiter\");\nconst abortTimeout = async (abortSignal) => {\n return new Promise((resolve) => {\n abortSignal.onabort = () => resolve({ state: waiter_1.WaiterState.ABORTED });\n });\n};\nconst createWaiter = async (options, input, acceptorChecks) => {\n const params = {\n ...waiter_1.waiterServiceDefaults,\n ...options,\n };\n (0, utils_1.validateWaiterOptions)(params);\n const exitConditions = [(0, poller_1.runPolling)(params, input, acceptorChecks)];\n if (options.abortController) {\n exitConditions.push(abortTimeout(options.abortController.signal));\n }\n if (options.abortSignal) {\n exitConditions.push(abortTimeout(options.abortSignal));\n }\n return Promise.race(exitConditions);\n};\nexports.createWaiter = createWaiter;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./createWaiter\"), exports);\ntslib_1.__exportStar(require(\"./waiter\"), exports);\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.waitUntilBucketExists = exports.waitForBucketExists = void 0;\nconst util_waiter_1 = require(\"@aws-sdk/util-waiter\");\nconst HeadBucketCommand_1 = require(\"../commands/HeadBucketCommand\");\nconst checkState = async (client, input) => {\n let reason;\n try {\n const result = await client.send(new HeadBucketCommand_1.HeadBucketCommand(input));\n reason = result;\n return { state: util_waiter_1.WaiterState.SUCCESS, reason };\n }\n catch (exception) {\n reason = exception;\n if (exception.name && exception.name == \"NotFound\") {\n return { state: util_waiter_1.WaiterState.RETRY, reason };\n }\n }\n return { state: util_waiter_1.WaiterState.RETRY, reason };\n};\nconst waitForBucketExists = async (params, input) => {\n const serviceDefaults = { minDelay: 5, maxDelay: 120 };\n return (0, util_waiter_1.createWaiter)({ ...serviceDefaults, ...params }, input, checkState);\n};\nexports.waitForBucketExists = waitForBucketExists;\nconst waitUntilBucketExists = async (params, input) => {\n const serviceDefaults = { minDelay: 5, maxDelay: 120 };\n const result = await (0, util_waiter_1.createWaiter)({ ...serviceDefaults, ...params }, input, checkState);\n return (0, util_waiter_1.checkExceptions)(result);\n};\nexports.waitUntilBucketExists = waitUntilBucketExists;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.waitUntilBucketNotExists = exports.waitForBucketNotExists = void 0;\nconst util_waiter_1 = require(\"@aws-sdk/util-waiter\");\nconst HeadBucketCommand_1 = require(\"../commands/HeadBucketCommand\");\nconst checkState = async (client, input) => {\n let reason;\n try {\n const result = await client.send(new HeadBucketCommand_1.HeadBucketCommand(input));\n reason = result;\n }\n catch (exception) {\n reason = exception;\n if (exception.name && exception.name == \"NotFound\") {\n return { state: util_waiter_1.WaiterState.SUCCESS, reason };\n }\n }\n return { state: util_waiter_1.WaiterState.RETRY, reason };\n};\nconst waitForBucketNotExists = async (params, input) => {\n const serviceDefaults = { minDelay: 5, maxDelay: 120 };\n return (0, util_waiter_1.createWaiter)({ ...serviceDefaults, ...params }, input, checkState);\n};\nexports.waitForBucketNotExists = waitForBucketNotExists;\nconst waitUntilBucketNotExists = async (params, input) => {\n const serviceDefaults = { minDelay: 5, maxDelay: 120 };\n const result = await (0, util_waiter_1.createWaiter)({ ...serviceDefaults, ...params }, input, checkState);\n return (0, util_waiter_1.checkExceptions)(result);\n};\nexports.waitUntilBucketNotExists = waitUntilBucketNotExists;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.waitUntilObjectExists = exports.waitForObjectExists = void 0;\nconst util_waiter_1 = require(\"@aws-sdk/util-waiter\");\nconst HeadObjectCommand_1 = require(\"../commands/HeadObjectCommand\");\nconst checkState = async (client, input) => {\n let reason;\n try {\n const result = await client.send(new HeadObjectCommand_1.HeadObjectCommand(input));\n reason = result;\n return { state: util_waiter_1.WaiterState.SUCCESS, reason };\n }\n catch (exception) {\n reason = exception;\n if (exception.name && exception.name == \"NotFound\") {\n return { state: util_waiter_1.WaiterState.RETRY, reason };\n }\n }\n return { state: util_waiter_1.WaiterState.RETRY, reason };\n};\nconst waitForObjectExists = async (params, input) => {\n const serviceDefaults = { minDelay: 5, maxDelay: 120 };\n return (0, util_waiter_1.createWaiter)({ ...serviceDefaults, ...params }, input, checkState);\n};\nexports.waitForObjectExists = waitForObjectExists;\nconst waitUntilObjectExists = async (params, input) => {\n const serviceDefaults = { minDelay: 5, maxDelay: 120 };\n const result = await (0, util_waiter_1.createWaiter)({ ...serviceDefaults, ...params }, input, checkState);\n return (0, util_waiter_1.checkExceptions)(result);\n};\nexports.waitUntilObjectExists = waitUntilObjectExists;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.waitUntilObjectNotExists = exports.waitForObjectNotExists = void 0;\nconst util_waiter_1 = require(\"@aws-sdk/util-waiter\");\nconst HeadObjectCommand_1 = require(\"../commands/HeadObjectCommand\");\nconst checkState = async (client, input) => {\n let reason;\n try {\n const result = await client.send(new HeadObjectCommand_1.HeadObjectCommand(input));\n reason = result;\n }\n catch (exception) {\n reason = exception;\n if (exception.name && exception.name == \"NotFound\") {\n return { state: util_waiter_1.WaiterState.SUCCESS, reason };\n }\n }\n return { state: util_waiter_1.WaiterState.RETRY, reason };\n};\nconst waitForObjectNotExists = async (params, input) => {\n const serviceDefaults = { minDelay: 5, maxDelay: 120 };\n return (0, util_waiter_1.createWaiter)({ ...serviceDefaults, ...params }, input, checkState);\n};\nexports.waitForObjectNotExists = waitForObjectNotExists;\nconst waitUntilObjectNotExists = async (params, input) => {\n const serviceDefaults = { minDelay: 5, maxDelay: 120 };\n const result = await (0, util_waiter_1.createWaiter)({ ...serviceDefaults, ...params }, input, checkState);\n return (0, util_waiter_1.checkExceptions)(result);\n};\nexports.waitUntilObjectNotExists = waitUntilObjectNotExists;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./waitForBucketExists\"), exports);\ntslib_1.__exportStar(require(\"./waitForBucketNotExists\"), exports);\ntslib_1.__exportStar(require(\"./waitForObjectExists\"), exports);\ntslib_1.__exportStar(require(\"./waitForObjectNotExists\"), exports);\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.S3ServiceException = void 0;\nconst tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./S3\"), exports);\ntslib_1.__exportStar(require(\"./S3Client\"), exports);\ntslib_1.__exportStar(require(\"./commands\"), exports);\ntslib_1.__exportStar(require(\"./models\"), exports);\ntslib_1.__exportStar(require(\"./pagination\"), exports);\ntslib_1.__exportStar(require(\"./waiters\"), exports);\nvar S3ServiceException_1 = require(\"./models/S3ServiceException\");\nObject.defineProperty(exports, \"S3ServiceException\", { enumerable: true, get: function () { return S3ServiceException_1.S3ServiceException; } });\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.resolveClientEndpointParameters = void 0;\nconst resolveClientEndpointParameters = (options) => {\n return {\n ...options,\n useDualstackEndpoint: options.useDualstackEndpoint ?? false,\n useFipsEndpoint: options.useFipsEndpoint ?? false,\n defaultSigningName: \"athena\",\n };\n};\nexports.resolveClientEndpointParameters = resolveClientEndpointParameters;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ruleSet = void 0;\nconst q = \"fn\", r = \"argv\", s = \"ref\";\nconst a = true, b = false, c = \"String\", d = \"PartitionResult\", e = \"tree\", f = \"error\", g = \"endpoint\", h = { \"required\": true, \"default\": false, \"type\": \"Boolean\" }, i = { [s]: \"Endpoint\" }, j = { [q]: \"booleanEquals\", [r]: [{ [s]: \"UseFIPS\" }, true] }, k = { [q]: \"booleanEquals\", [r]: [{ [s]: \"UseDualStack\" }, true] }, l = {}, m = { [q]: \"booleanEquals\", [r]: [true, { [q]: \"getAttr\", [r]: [{ [s]: d }, \"supportsFIPS\"] }] }, n = { [q]: \"booleanEquals\", [r]: [true, { [q]: \"getAttr\", [r]: [{ [s]: d }, \"supportsDualStack\"] }] }, o = [j], p = [k];\nconst _data = { version: \"1.0\", parameters: { Region: { required: a, type: c }, UseDualStack: h, UseFIPS: h, Endpoint: { required: b, type: c } }, rules: [{ conditions: [{ [q]: \"aws.partition\", [r]: [{ [s]: \"Region\" }], assign: d }], type: e, rules: [{ conditions: [{ [q]: \"isSet\", [r]: [i] }], type: e, rules: [{ conditions: o, error: \"Invalid Configuration: FIPS and custom endpoint are not supported\", type: f }, { type: e, rules: [{ conditions: p, error: \"Invalid Configuration: Dualstack and custom endpoint are not supported\", type: f }, { endpoint: { url: i, properties: l, headers: l }, type: g }] }] }, { conditions: [j, k], type: e, rules: [{ conditions: [m, n], type: e, rules: [{ endpoint: { url: \"https://athena-fips.{Region}.{PartitionResult#dualStackDnsSuffix}\", properties: l, headers: l }, type: g }] }, { error: \"FIPS and DualStack are enabled, but this partition does not support one or both\", type: f }] }, { conditions: o, type: e, rules: [{ conditions: [m], type: e, rules: [{ type: e, rules: [{ endpoint: { url: \"https://athena-fips.{Region}.{PartitionResult#dnsSuffix}\", properties: l, headers: l }, type: g }] }] }, { error: \"FIPS is enabled but this partition does not support FIPS\", type: f }] }, { conditions: p, type: e, rules: [{ conditions: [n], type: e, rules: [{ endpoint: { url: \"https://athena.{Region}.{PartitionResult#dualStackDnsSuffix}\", properties: l, headers: l }, type: g }] }, { error: \"DualStack is enabled but this partition does not support DualStack\", type: f }] }, { endpoint: { url: \"https://athena.{Region}.{PartitionResult#dnsSuffix}\", properties: l, headers: l }, type: g }] }] };\nexports.ruleSet = _data;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.defaultEndpointResolver = void 0;\nconst util_endpoints_1 = require(\"@aws-sdk/util-endpoints\");\nconst ruleset_1 = require(\"./ruleset\");\nconst defaultEndpointResolver = (endpointParams, context = {}) => {\n return (0, util_endpoints_1.resolveEndpoint)(ruleset_1.ruleSet, {\n endpointParams: endpointParams,\n logger: context.logger,\n });\n};\nexports.defaultEndpointResolver = defaultEndpointResolver;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRuntimeConfig = void 0;\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst url_parser_1 = require(\"@aws-sdk/url-parser\");\nconst util_base64_1 = require(\"@aws-sdk/util-base64\");\nconst util_utf8_1 = require(\"@aws-sdk/util-utf8\");\nconst endpointResolver_1 = require(\"./endpoint/endpointResolver\");\nconst getRuntimeConfig = (config) => ({\n apiVersion: \"2017-05-18\",\n base64Decoder: config?.base64Decoder ?? util_base64_1.fromBase64,\n base64Encoder: config?.base64Encoder ?? util_base64_1.toBase64,\n disableHostPrefix: config?.disableHostPrefix ?? false,\n endpointProvider: config?.endpointProvider ?? endpointResolver_1.defaultEndpointResolver,\n logger: config?.logger ?? new smithy_client_1.NoOpLogger(),\n serviceId: config?.serviceId ?? \"Athena\",\n urlParser: config?.urlParser ?? url_parser_1.parseUrl,\n utf8Decoder: config?.utf8Decoder ?? util_utf8_1.fromUtf8,\n utf8Encoder: config?.utf8Encoder ?? util_utf8_1.toUtf8,\n});\nexports.getRuntimeConfig = getRuntimeConfig;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRuntimeConfig = void 0;\nconst tslib_1 = require(\"tslib\");\nconst package_json_1 = tslib_1.__importDefault(require(\"../package.json\"));\nconst client_sts_1 = require(\"@aws-sdk/client-sts\");\nconst config_resolver_1 = require(\"@aws-sdk/config-resolver\");\nconst credential_provider_node_1 = require(\"@aws-sdk/credential-provider-node\");\nconst hash_node_1 = require(\"@aws-sdk/hash-node\");\nconst middleware_retry_1 = require(\"@aws-sdk/middleware-retry\");\nconst node_config_provider_1 = require(\"@aws-sdk/node-config-provider\");\nconst node_http_handler_1 = require(\"@aws-sdk/node-http-handler\");\nconst util_body_length_node_1 = require(\"@aws-sdk/util-body-length-node\");\nconst util_retry_1 = require(\"@aws-sdk/util-retry\");\nconst util_user_agent_node_1 = require(\"@aws-sdk/util-user-agent-node\");\nconst runtimeConfig_shared_1 = require(\"./runtimeConfig.shared\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst util_defaults_mode_node_1 = require(\"@aws-sdk/util-defaults-mode-node\");\nconst smithy_client_2 = require(\"@aws-sdk/smithy-client\");\nconst getRuntimeConfig = (config) => {\n (0, smithy_client_2.emitWarningIfUnsupportedVersion)(process.version);\n const defaultsMode = (0, util_defaults_mode_node_1.resolveDefaultsModeConfig)(config);\n const defaultConfigProvider = () => defaultsMode().then(smithy_client_1.loadConfigsForDefaultMode);\n const clientSharedValues = (0, runtimeConfig_shared_1.getRuntimeConfig)(config);\n return {\n ...clientSharedValues,\n ...config,\n runtime: \"node\",\n defaultsMode,\n bodyLengthChecker: config?.bodyLengthChecker ?? util_body_length_node_1.calculateBodyLength,\n credentialDefaultProvider: config?.credentialDefaultProvider ?? (0, client_sts_1.decorateDefaultCredentialProvider)(credential_provider_node_1.defaultProvider),\n defaultUserAgentProvider: config?.defaultUserAgentProvider ??\n (0, util_user_agent_node_1.defaultUserAgent)({ serviceId: clientSharedValues.serviceId, clientVersion: package_json_1.default.version }),\n maxAttempts: config?.maxAttempts ?? (0, node_config_provider_1.loadConfig)(middleware_retry_1.NODE_MAX_ATTEMPT_CONFIG_OPTIONS),\n region: config?.region ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_REGION_CONFIG_OPTIONS, config_resolver_1.NODE_REGION_CONFIG_FILE_OPTIONS),\n requestHandler: config?.requestHandler ?? new node_http_handler_1.NodeHttpHandler(defaultConfigProvider),\n retryMode: config?.retryMode ??\n (0, node_config_provider_1.loadConfig)({\n ...middleware_retry_1.NODE_RETRY_MODE_CONFIG_OPTIONS,\n default: async () => (await defaultConfigProvider()).retryMode || util_retry_1.DEFAULT_RETRY_MODE,\n }),\n sha256: config?.sha256 ?? hash_node_1.Hash.bind(null, \"sha256\"),\n streamCollector: config?.streamCollector ?? node_http_handler_1.streamCollector,\n useDualstackEndpoint: config?.useDualstackEndpoint ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS),\n useFipsEndpoint: config?.useFipsEndpoint ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS),\n };\n};\nexports.getRuntimeConfig = getRuntimeConfig;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AthenaClient = void 0;\nconst config_resolver_1 = require(\"@aws-sdk/config-resolver\");\nconst middleware_content_length_1 = require(\"@aws-sdk/middleware-content-length\");\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_host_header_1 = require(\"@aws-sdk/middleware-host-header\");\nconst middleware_logger_1 = require(\"@aws-sdk/middleware-logger\");\nconst middleware_recursion_detection_1 = require(\"@aws-sdk/middleware-recursion-detection\");\nconst middleware_retry_1 = require(\"@aws-sdk/middleware-retry\");\nconst middleware_signing_1 = require(\"@aws-sdk/middleware-signing\");\nconst middleware_user_agent_1 = require(\"@aws-sdk/middleware-user-agent\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst EndpointParameters_1 = require(\"./endpoint/EndpointParameters\");\nconst runtimeConfig_1 = require(\"./runtimeConfig\");\nclass AthenaClient extends smithy_client_1.Client {\n constructor(configuration) {\n const _config_0 = (0, runtimeConfig_1.getRuntimeConfig)(configuration);\n const _config_1 = (0, EndpointParameters_1.resolveClientEndpointParameters)(_config_0);\n const _config_2 = (0, config_resolver_1.resolveRegionConfig)(_config_1);\n const _config_3 = (0, middleware_endpoint_1.resolveEndpointConfig)(_config_2);\n const _config_4 = (0, middleware_retry_1.resolveRetryConfig)(_config_3);\n const _config_5 = (0, middleware_host_header_1.resolveHostHeaderConfig)(_config_4);\n const _config_6 = (0, middleware_signing_1.resolveAwsAuthConfig)(_config_5);\n const _config_7 = (0, middleware_user_agent_1.resolveUserAgentConfig)(_config_6);\n super(_config_7);\n this.config = _config_7;\n this.middlewareStack.use((0, middleware_retry_1.getRetryPlugin)(this.config));\n this.middlewareStack.use((0, middleware_content_length_1.getContentLengthPlugin)(this.config));\n this.middlewareStack.use((0, middleware_host_header_1.getHostHeaderPlugin)(this.config));\n this.middlewareStack.use((0, middleware_logger_1.getLoggerPlugin)(this.config));\n this.middlewareStack.use((0, middleware_recursion_detection_1.getRecursionDetectionPlugin)(this.config));\n this.middlewareStack.use((0, middleware_signing_1.getAwsAuthPlugin)(this.config));\n this.middlewareStack.use((0, middleware_user_agent_1.getUserAgentPlugin)(this.config));\n }\n destroy() {\n super.destroy();\n }\n}\nexports.AthenaClient = AthenaClient;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AthenaServiceException = void 0;\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nclass AthenaServiceException extends smithy_client_1.ServiceException {\n constructor(options) {\n super(options);\n Object.setPrototypeOf(this, AthenaServiceException.prototype);\n }\n}\nexports.AthenaServiceException = AthenaServiceException;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CreatePreparedStatementInputFilterSensitiveLog = exports.CreateNotebookOutputFilterSensitiveLog = exports.CreateNotebookInputFilterSensitiveLog = exports.CreateNamedQueryOutputFilterSensitiveLog = exports.CreateNamedQueryInputFilterSensitiveLog = exports.CreateDataCatalogOutputFilterSensitiveLog = exports.CreateDataCatalogInputFilterSensitiveLog = exports.TagFilterSensitiveLog = exports.BatchGetQueryExecutionOutputFilterSensitiveLog = exports.UnprocessedQueryExecutionIdFilterSensitiveLog = exports.QueryExecutionFilterSensitiveLog = exports.QueryExecutionStatusFilterSensitiveLog = exports.AthenaErrorFilterSensitiveLog = exports.QueryExecutionStatisticsFilterSensitiveLog = exports.ResultReuseInformationFilterSensitiveLog = exports.ResultReuseConfigurationFilterSensitiveLog = exports.ResultReuseByAgeConfigurationFilterSensitiveLog = exports.ResultConfigurationFilterSensitiveLog = exports.EncryptionConfigurationFilterSensitiveLog = exports.QueryExecutionContextFilterSensitiveLog = exports.EngineVersionFilterSensitiveLog = exports.BatchGetQueryExecutionInputFilterSensitiveLog = exports.BatchGetPreparedStatementOutputFilterSensitiveLog = exports.UnprocessedPreparedStatementNameFilterSensitiveLog = exports.PreparedStatementFilterSensitiveLog = exports.BatchGetPreparedStatementInputFilterSensitiveLog = exports.BatchGetNamedQueryOutputFilterSensitiveLog = exports.UnprocessedNamedQueryIdFilterSensitiveLog = exports.NamedQueryFilterSensitiveLog = exports.BatchGetNamedQueryInputFilterSensitiveLog = exports.AclConfigurationFilterSensitiveLog = exports.SessionAlreadyExistsException = exports.ExecutorType = exports.ExecutorState = exports.WorkGroupState = exports.SessionState = exports.ColumnNullable = exports.MetadataException = exports.CalculationExecutionState = exports.NotebookType = exports.ResourceNotFoundException = exports.TooManyRequestsException = exports.ThrottleReason = exports.DataCatalogType = exports.QueryExecutionState = exports.StatementType = exports.EncryptionOption = exports.InvalidRequestException = exports.InternalServerException = exports.S3AclOption = void 0;\nexports.GetQueryResultsOutputFilterSensitiveLog = exports.ResultSetFilterSensitiveLog = exports.RowFilterSensitiveLog = exports.DatumFilterSensitiveLog = exports.ResultSetMetadataFilterSensitiveLog = exports.ColumnInfoFilterSensitiveLog = exports.GetQueryResultsInputFilterSensitiveLog = exports.GetQueryExecutionOutputFilterSensitiveLog = exports.GetQueryExecutionInputFilterSensitiveLog = exports.GetPreparedStatementOutputFilterSensitiveLog = exports.GetPreparedStatementInputFilterSensitiveLog = exports.GetNotebookMetadataOutputFilterSensitiveLog = exports.GetNotebookMetadataInputFilterSensitiveLog = exports.GetNamedQueryOutputFilterSensitiveLog = exports.GetNamedQueryInputFilterSensitiveLog = exports.GetDataCatalogOutputFilterSensitiveLog = exports.DataCatalogFilterSensitiveLog = exports.GetDataCatalogInputFilterSensitiveLog = exports.GetDatabaseOutputFilterSensitiveLog = exports.DatabaseFilterSensitiveLog = exports.GetDatabaseInputFilterSensitiveLog = exports.GetCalculationExecutionStatusResponseFilterSensitiveLog = exports.GetCalculationExecutionStatusRequestFilterSensitiveLog = exports.GetCalculationExecutionCodeResponseFilterSensitiveLog = exports.GetCalculationExecutionCodeRequestFilterSensitiveLog = exports.GetCalculationExecutionResponseFilterSensitiveLog = exports.CalculationStatusFilterSensitiveLog = exports.CalculationStatisticsFilterSensitiveLog = exports.CalculationResultFilterSensitiveLog = exports.GetCalculationExecutionRequestFilterSensitiveLog = exports.ExportNotebookOutputFilterSensitiveLog = exports.NotebookMetadataFilterSensitiveLog = exports.ExportNotebookInputFilterSensitiveLog = exports.DeleteWorkGroupOutputFilterSensitiveLog = exports.DeleteWorkGroupInputFilterSensitiveLog = exports.DeletePreparedStatementOutputFilterSensitiveLog = exports.DeletePreparedStatementInputFilterSensitiveLog = exports.DeleteNotebookOutputFilterSensitiveLog = exports.DeleteNotebookInputFilterSensitiveLog = exports.DeleteNamedQueryOutputFilterSensitiveLog = exports.DeleteNamedQueryInputFilterSensitiveLog = exports.DeleteDataCatalogOutputFilterSensitiveLog = exports.DeleteDataCatalogInputFilterSensitiveLog = exports.CreateWorkGroupOutputFilterSensitiveLog = exports.CreateWorkGroupInputFilterSensitiveLog = exports.WorkGroupConfigurationFilterSensitiveLog = exports.CustomerContentEncryptionConfigurationFilterSensitiveLog = exports.CreatePresignedNotebookUrlResponseFilterSensitiveLog = exports.CreatePresignedNotebookUrlRequestFilterSensitiveLog = exports.CreatePreparedStatementOutputFilterSensitiveLog = void 0;\nexports.ListSessionsRequestFilterSensitiveLog = exports.ListQueryExecutionsOutputFilterSensitiveLog = exports.ListQueryExecutionsInputFilterSensitiveLog = exports.ListPreparedStatementsOutputFilterSensitiveLog = exports.PreparedStatementSummaryFilterSensitiveLog = exports.ListPreparedStatementsInputFilterSensitiveLog = exports.ListNotebookSessionsResponseFilterSensitiveLog = exports.NotebookSessionSummaryFilterSensitiveLog = exports.ListNotebookSessionsRequestFilterSensitiveLog = exports.ListNotebookMetadataOutputFilterSensitiveLog = exports.ListNotebookMetadataInputFilterSensitiveLog = exports.FilterDefinitionFilterSensitiveLog = exports.ListNamedQueriesOutputFilterSensitiveLog = exports.ListNamedQueriesInputFilterSensitiveLog = exports.ListExecutorsResponseFilterSensitiveLog = exports.ExecutorsSummaryFilterSensitiveLog = exports.ListExecutorsRequestFilterSensitiveLog = exports.ListEngineVersionsOutputFilterSensitiveLog = exports.ListEngineVersionsInputFilterSensitiveLog = exports.ListDataCatalogsOutputFilterSensitiveLog = exports.DataCatalogSummaryFilterSensitiveLog = exports.ListDataCatalogsInputFilterSensitiveLog = exports.ListDatabasesOutputFilterSensitiveLog = exports.ListDatabasesInputFilterSensitiveLog = exports.ListCalculationExecutionsResponseFilterSensitiveLog = exports.CalculationSummaryFilterSensitiveLog = exports.ListCalculationExecutionsRequestFilterSensitiveLog = exports.ListApplicationDPUSizesOutputFilterSensitiveLog = exports.ApplicationDPUSizesFilterSensitiveLog = exports.ListApplicationDPUSizesInputFilterSensitiveLog = exports.ImportNotebookOutputFilterSensitiveLog = exports.ImportNotebookInputFilterSensitiveLog = exports.GetWorkGroupOutputFilterSensitiveLog = exports.WorkGroupFilterSensitiveLog = exports.GetWorkGroupInputFilterSensitiveLog = exports.GetTableMetadataOutputFilterSensitiveLog = exports.TableMetadataFilterSensitiveLog = exports.ColumnFilterSensitiveLog = exports.GetTableMetadataInputFilterSensitiveLog = exports.GetSessionStatusResponseFilterSensitiveLog = exports.GetSessionStatusRequestFilterSensitiveLog = exports.GetSessionResponseFilterSensitiveLog = exports.SessionStatusFilterSensitiveLog = exports.SessionStatisticsFilterSensitiveLog = exports.SessionConfigurationFilterSensitiveLog = exports.EngineConfigurationFilterSensitiveLog = exports.GetSessionRequestFilterSensitiveLog = exports.QueryRuntimeStatisticsTimelineFilterSensitiveLog = exports.QueryRuntimeStatisticsRowsFilterSensitiveLog = exports.GetQueryRuntimeStatisticsInputFilterSensitiveLog = void 0;\nexports.GetQueryRuntimeStatisticsOutputFilterSensitiveLog = exports.QueryRuntimeStatisticsFilterSensitiveLog = exports.QueryStageFilterSensitiveLog = exports.QueryStagePlanNodeFilterSensitiveLog = exports.UpdateWorkGroupOutputFilterSensitiveLog = exports.UpdateWorkGroupInputFilterSensitiveLog = exports.WorkGroupConfigurationUpdatesFilterSensitiveLog = exports.ResultConfigurationUpdatesFilterSensitiveLog = exports.UpdatePreparedStatementOutputFilterSensitiveLog = exports.UpdatePreparedStatementInputFilterSensitiveLog = exports.UpdateNotebookMetadataOutputFilterSensitiveLog = exports.UpdateNotebookMetadataInputFilterSensitiveLog = exports.UpdateNotebookOutputFilterSensitiveLog = exports.UpdateNotebookInputFilterSensitiveLog = exports.UpdateNamedQueryOutputFilterSensitiveLog = exports.UpdateNamedQueryInputFilterSensitiveLog = exports.UpdateDataCatalogOutputFilterSensitiveLog = exports.UpdateDataCatalogInputFilterSensitiveLog = exports.UntagResourceOutputFilterSensitiveLog = exports.UntagResourceInputFilterSensitiveLog = exports.TerminateSessionResponseFilterSensitiveLog = exports.TerminateSessionRequestFilterSensitiveLog = exports.TagResourceOutputFilterSensitiveLog = exports.TagResourceInputFilterSensitiveLog = exports.StopQueryExecutionOutputFilterSensitiveLog = exports.StopQueryExecutionInputFilterSensitiveLog = exports.StopCalculationExecutionResponseFilterSensitiveLog = exports.StopCalculationExecutionRequestFilterSensitiveLog = exports.StartSessionResponseFilterSensitiveLog = exports.StartSessionRequestFilterSensitiveLog = exports.StartQueryExecutionOutputFilterSensitiveLog = exports.StartQueryExecutionInputFilterSensitiveLog = exports.StartCalculationExecutionResponseFilterSensitiveLog = exports.StartCalculationExecutionRequestFilterSensitiveLog = exports.CalculationConfigurationFilterSensitiveLog = exports.ListWorkGroupsOutputFilterSensitiveLog = exports.WorkGroupSummaryFilterSensitiveLog = exports.ListWorkGroupsInputFilterSensitiveLog = exports.ListTagsForResourceOutputFilterSensitiveLog = exports.ListTagsForResourceInputFilterSensitiveLog = exports.ListTableMetadataOutputFilterSensitiveLog = exports.ListTableMetadataInputFilterSensitiveLog = exports.ListSessionsResponseFilterSensitiveLog = exports.SessionSummaryFilterSensitiveLog = void 0;\nconst AthenaServiceException_1 = require(\"./AthenaServiceException\");\nvar S3AclOption;\n(function (S3AclOption) {\n S3AclOption[\"BUCKET_OWNER_FULL_CONTROL\"] = \"BUCKET_OWNER_FULL_CONTROL\";\n})(S3AclOption = exports.S3AclOption || (exports.S3AclOption = {}));\nclass InternalServerException extends AthenaServiceException_1.AthenaServiceException {\n constructor(opts) {\n super({\n name: \"InternalServerException\",\n $fault: \"server\",\n ...opts,\n });\n this.name = \"InternalServerException\";\n this.$fault = \"server\";\n Object.setPrototypeOf(this, InternalServerException.prototype);\n this.Message = opts.Message;\n }\n}\nexports.InternalServerException = InternalServerException;\nclass InvalidRequestException extends AthenaServiceException_1.AthenaServiceException {\n constructor(opts) {\n super({\n name: \"InvalidRequestException\",\n $fault: \"client\",\n ...opts,\n });\n this.name = \"InvalidRequestException\";\n this.$fault = \"client\";\n Object.setPrototypeOf(this, InvalidRequestException.prototype);\n this.AthenaErrorCode = opts.AthenaErrorCode;\n this.Message = opts.Message;\n }\n}\nexports.InvalidRequestException = InvalidRequestException;\nvar EncryptionOption;\n(function (EncryptionOption) {\n EncryptionOption[\"CSE_KMS\"] = \"CSE_KMS\";\n EncryptionOption[\"SSE_KMS\"] = \"SSE_KMS\";\n EncryptionOption[\"SSE_S3\"] = \"SSE_S3\";\n})(EncryptionOption = exports.EncryptionOption || (exports.EncryptionOption = {}));\nvar StatementType;\n(function (StatementType) {\n StatementType[\"DDL\"] = \"DDL\";\n StatementType[\"DML\"] = \"DML\";\n StatementType[\"UTILITY\"] = \"UTILITY\";\n})(StatementType = exports.StatementType || (exports.StatementType = {}));\nvar QueryExecutionState;\n(function (QueryExecutionState) {\n QueryExecutionState[\"CANCELLED\"] = \"CANCELLED\";\n QueryExecutionState[\"FAILED\"] = \"FAILED\";\n QueryExecutionState[\"QUEUED\"] = \"QUEUED\";\n QueryExecutionState[\"RUNNING\"] = \"RUNNING\";\n QueryExecutionState[\"SUCCEEDED\"] = \"SUCCEEDED\";\n})(QueryExecutionState = exports.QueryExecutionState || (exports.QueryExecutionState = {}));\nvar DataCatalogType;\n(function (DataCatalogType) {\n DataCatalogType[\"GLUE\"] = \"GLUE\";\n DataCatalogType[\"HIVE\"] = \"HIVE\";\n DataCatalogType[\"LAMBDA\"] = \"LAMBDA\";\n})(DataCatalogType = exports.DataCatalogType || (exports.DataCatalogType = {}));\nvar ThrottleReason;\n(function (ThrottleReason) {\n ThrottleReason[\"CONCURRENT_QUERY_LIMIT_EXCEEDED\"] = \"CONCURRENT_QUERY_LIMIT_EXCEEDED\";\n})(ThrottleReason = exports.ThrottleReason || (exports.ThrottleReason = {}));\nclass TooManyRequestsException extends AthenaServiceException_1.AthenaServiceException {\n constructor(opts) {\n super({\n name: \"TooManyRequestsException\",\n $fault: \"client\",\n ...opts,\n });\n this.name = \"TooManyRequestsException\";\n this.$fault = \"client\";\n Object.setPrototypeOf(this, TooManyRequestsException.prototype);\n this.Message = opts.Message;\n this.Reason = opts.Reason;\n }\n}\nexports.TooManyRequestsException = TooManyRequestsException;\nclass ResourceNotFoundException extends AthenaServiceException_1.AthenaServiceException {\n constructor(opts) {\n super({\n name: \"ResourceNotFoundException\",\n $fault: \"client\",\n ...opts,\n });\n this.name = \"ResourceNotFoundException\";\n this.$fault = \"client\";\n Object.setPrototypeOf(this, ResourceNotFoundException.prototype);\n this.Message = opts.Message;\n this.ResourceName = opts.ResourceName;\n }\n}\nexports.ResourceNotFoundException = ResourceNotFoundException;\nvar NotebookType;\n(function (NotebookType) {\n NotebookType[\"IPYNB\"] = \"IPYNB\";\n})(NotebookType = exports.NotebookType || (exports.NotebookType = {}));\nvar CalculationExecutionState;\n(function (CalculationExecutionState) {\n CalculationExecutionState[\"CANCELED\"] = \"CANCELED\";\n CalculationExecutionState[\"CANCELING\"] = \"CANCELING\";\n CalculationExecutionState[\"COMPLETED\"] = \"COMPLETED\";\n CalculationExecutionState[\"CREATED\"] = \"CREATED\";\n CalculationExecutionState[\"CREATING\"] = \"CREATING\";\n CalculationExecutionState[\"FAILED\"] = \"FAILED\";\n CalculationExecutionState[\"QUEUED\"] = \"QUEUED\";\n CalculationExecutionState[\"RUNNING\"] = \"RUNNING\";\n})(CalculationExecutionState = exports.CalculationExecutionState || (exports.CalculationExecutionState = {}));\nclass MetadataException extends AthenaServiceException_1.AthenaServiceException {\n constructor(opts) {\n super({\n name: \"MetadataException\",\n $fault: \"client\",\n ...opts,\n });\n this.name = \"MetadataException\";\n this.$fault = \"client\";\n Object.setPrototypeOf(this, MetadataException.prototype);\n this.Message = opts.Message;\n }\n}\nexports.MetadataException = MetadataException;\nvar ColumnNullable;\n(function (ColumnNullable) {\n ColumnNullable[\"NOT_NULL\"] = \"NOT_NULL\";\n ColumnNullable[\"NULLABLE\"] = \"NULLABLE\";\n ColumnNullable[\"UNKNOWN\"] = \"UNKNOWN\";\n})(ColumnNullable = exports.ColumnNullable || (exports.ColumnNullable = {}));\nvar SessionState;\n(function (SessionState) {\n SessionState[\"BUSY\"] = \"BUSY\";\n SessionState[\"CREATED\"] = \"CREATED\";\n SessionState[\"CREATING\"] = \"CREATING\";\n SessionState[\"DEGRADED\"] = \"DEGRADED\";\n SessionState[\"FAILED\"] = \"FAILED\";\n SessionState[\"IDLE\"] = \"IDLE\";\n SessionState[\"TERMINATED\"] = \"TERMINATED\";\n SessionState[\"TERMINATING\"] = \"TERMINATING\";\n})(SessionState = exports.SessionState || (exports.SessionState = {}));\nvar WorkGroupState;\n(function (WorkGroupState) {\n WorkGroupState[\"DISABLED\"] = \"DISABLED\";\n WorkGroupState[\"ENABLED\"] = \"ENABLED\";\n})(WorkGroupState = exports.WorkGroupState || (exports.WorkGroupState = {}));\nvar ExecutorState;\n(function (ExecutorState) {\n ExecutorState[\"CREATED\"] = \"CREATED\";\n ExecutorState[\"CREATING\"] = \"CREATING\";\n ExecutorState[\"FAILED\"] = \"FAILED\";\n ExecutorState[\"REGISTERED\"] = \"REGISTERED\";\n ExecutorState[\"TERMINATED\"] = \"TERMINATED\";\n ExecutorState[\"TERMINATING\"] = \"TERMINATING\";\n})(ExecutorState = exports.ExecutorState || (exports.ExecutorState = {}));\nvar ExecutorType;\n(function (ExecutorType) {\n ExecutorType[\"COORDINATOR\"] = \"COORDINATOR\";\n ExecutorType[\"GATEWAY\"] = \"GATEWAY\";\n ExecutorType[\"WORKER\"] = \"WORKER\";\n})(ExecutorType = exports.ExecutorType || (exports.ExecutorType = {}));\nclass SessionAlreadyExistsException extends AthenaServiceException_1.AthenaServiceException {\n constructor(opts) {\n super({\n name: \"SessionAlreadyExistsException\",\n $fault: \"client\",\n ...opts,\n });\n this.name = \"SessionAlreadyExistsException\";\n this.$fault = \"client\";\n Object.setPrototypeOf(this, SessionAlreadyExistsException.prototype);\n this.Message = opts.Message;\n }\n}\nexports.SessionAlreadyExistsException = SessionAlreadyExistsException;\nconst AclConfigurationFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.AclConfigurationFilterSensitiveLog = AclConfigurationFilterSensitiveLog;\nconst BatchGetNamedQueryInputFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.BatchGetNamedQueryInputFilterSensitiveLog = BatchGetNamedQueryInputFilterSensitiveLog;\nconst NamedQueryFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.NamedQueryFilterSensitiveLog = NamedQueryFilterSensitiveLog;\nconst UnprocessedNamedQueryIdFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.UnprocessedNamedQueryIdFilterSensitiveLog = UnprocessedNamedQueryIdFilterSensitiveLog;\nconst BatchGetNamedQueryOutputFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.BatchGetNamedQueryOutputFilterSensitiveLog = BatchGetNamedQueryOutputFilterSensitiveLog;\nconst BatchGetPreparedStatementInputFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.BatchGetPreparedStatementInputFilterSensitiveLog = BatchGetPreparedStatementInputFilterSensitiveLog;\nconst PreparedStatementFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.PreparedStatementFilterSensitiveLog = PreparedStatementFilterSensitiveLog;\nconst UnprocessedPreparedStatementNameFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.UnprocessedPreparedStatementNameFilterSensitiveLog = UnprocessedPreparedStatementNameFilterSensitiveLog;\nconst BatchGetPreparedStatementOutputFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.BatchGetPreparedStatementOutputFilterSensitiveLog = BatchGetPreparedStatementOutputFilterSensitiveLog;\nconst BatchGetQueryExecutionInputFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.BatchGetQueryExecutionInputFilterSensitiveLog = BatchGetQueryExecutionInputFilterSensitiveLog;\nconst EngineVersionFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.EngineVersionFilterSensitiveLog = EngineVersionFilterSensitiveLog;\nconst QueryExecutionContextFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.QueryExecutionContextFilterSensitiveLog = QueryExecutionContextFilterSensitiveLog;\nconst EncryptionConfigurationFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.EncryptionConfigurationFilterSensitiveLog = EncryptionConfigurationFilterSensitiveLog;\nconst ResultConfigurationFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.ResultConfigurationFilterSensitiveLog = ResultConfigurationFilterSensitiveLog;\nconst ResultReuseByAgeConfigurationFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.ResultReuseByAgeConfigurationFilterSensitiveLog = ResultReuseByAgeConfigurationFilterSensitiveLog;\nconst ResultReuseConfigurationFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.ResultReuseConfigurationFilterSensitiveLog = ResultReuseConfigurationFilterSensitiveLog;\nconst ResultReuseInformationFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.ResultReuseInformationFilterSensitiveLog = ResultReuseInformationFilterSensitiveLog;\nconst QueryExecutionStatisticsFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.QueryExecutionStatisticsFilterSensitiveLog = QueryExecutionStatisticsFilterSensitiveLog;\nconst AthenaErrorFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.AthenaErrorFilterSensitiveLog = AthenaErrorFilterSensitiveLog;\nconst QueryExecutionStatusFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.QueryExecutionStatusFilterSensitiveLog = QueryExecutionStatusFilterSensitiveLog;\nconst QueryExecutionFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.QueryExecutionFilterSensitiveLog = QueryExecutionFilterSensitiveLog;\nconst UnprocessedQueryExecutionIdFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.UnprocessedQueryExecutionIdFilterSensitiveLog = UnprocessedQueryExecutionIdFilterSensitiveLog;\nconst BatchGetQueryExecutionOutputFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.BatchGetQueryExecutionOutputFilterSensitiveLog = BatchGetQueryExecutionOutputFilterSensitiveLog;\nconst TagFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.TagFilterSensitiveLog = TagFilterSensitiveLog;\nconst CreateDataCatalogInputFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.CreateDataCatalogInputFilterSensitiveLog = CreateDataCatalogInputFilterSensitiveLog;\nconst CreateDataCatalogOutputFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.CreateDataCatalogOutputFilterSensitiveLog = CreateDataCatalogOutputFilterSensitiveLog;\nconst CreateNamedQueryInputFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.CreateNamedQueryInputFilterSensitiveLog = CreateNamedQueryInputFilterSensitiveLog;\nconst CreateNamedQueryOutputFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.CreateNamedQueryOutputFilterSensitiveLog = CreateNamedQueryOutputFilterSensitiveLog;\nconst CreateNotebookInputFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.CreateNotebookInputFilterSensitiveLog = CreateNotebookInputFilterSensitiveLog;\nconst CreateNotebookOutputFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.CreateNotebookOutputFilterSensitiveLog = CreateNotebookOutputFilterSensitiveLog;\nconst CreatePreparedStatementInputFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.CreatePreparedStatementInputFilterSensitiveLog = CreatePreparedStatementInputFilterSensitiveLog;\nconst CreatePreparedStatementOutputFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.CreatePreparedStatementOutputFilterSensitiveLog = CreatePreparedStatementOutputFilterSensitiveLog;\nconst CreatePresignedNotebookUrlRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.CreatePresignedNotebookUrlRequestFilterSensitiveLog = CreatePresignedNotebookUrlRequestFilterSensitiveLog;\nconst CreatePresignedNotebookUrlResponseFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.CreatePresignedNotebookUrlResponseFilterSensitiveLog = CreatePresignedNotebookUrlResponseFilterSensitiveLog;\nconst CustomerContentEncryptionConfigurationFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.CustomerContentEncryptionConfigurationFilterSensitiveLog = CustomerContentEncryptionConfigurationFilterSensitiveLog;\nconst WorkGroupConfigurationFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.WorkGroupConfigurationFilterSensitiveLog = WorkGroupConfigurationFilterSensitiveLog;\nconst CreateWorkGroupInputFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.CreateWorkGroupInputFilterSensitiveLog = CreateWorkGroupInputFilterSensitiveLog;\nconst CreateWorkGroupOutputFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.CreateWorkGroupOutputFilterSensitiveLog = CreateWorkGroupOutputFilterSensitiveLog;\nconst DeleteDataCatalogInputFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.DeleteDataCatalogInputFilterSensitiveLog = DeleteDataCatalogInputFilterSensitiveLog;\nconst DeleteDataCatalogOutputFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.DeleteDataCatalogOutputFilterSensitiveLog = DeleteDataCatalogOutputFilterSensitiveLog;\nconst DeleteNamedQueryInputFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.DeleteNamedQueryInputFilterSensitiveLog = DeleteNamedQueryInputFilterSensitiveLog;\nconst DeleteNamedQueryOutputFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.DeleteNamedQueryOutputFilterSensitiveLog = DeleteNamedQueryOutputFilterSensitiveLog;\nconst DeleteNotebookInputFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.DeleteNotebookInputFilterSensitiveLog = DeleteNotebookInputFilterSensitiveLog;\nconst DeleteNotebookOutputFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.DeleteNotebookOutputFilterSensitiveLog = DeleteNotebookOutputFilterSensitiveLog;\nconst DeletePreparedStatementInputFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.DeletePreparedStatementInputFilterSensitiveLog = DeletePreparedStatementInputFilterSensitiveLog;\nconst DeletePreparedStatementOutputFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.DeletePreparedStatementOutputFilterSensitiveLog = DeletePreparedStatementOutputFilterSensitiveLog;\nconst DeleteWorkGroupInputFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.DeleteWorkGroupInputFilterSensitiveLog = DeleteWorkGroupInputFilterSensitiveLog;\nconst DeleteWorkGroupOutputFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.DeleteWorkGroupOutputFilterSensitiveLog = DeleteWorkGroupOutputFilterSensitiveLog;\nconst ExportNotebookInputFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.ExportNotebookInputFilterSensitiveLog = ExportNotebookInputFilterSensitiveLog;\nconst NotebookMetadataFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.NotebookMetadataFilterSensitiveLog = NotebookMetadataFilterSensitiveLog;\nconst ExportNotebookOutputFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.ExportNotebookOutputFilterSensitiveLog = ExportNotebookOutputFilterSensitiveLog;\nconst GetCalculationExecutionRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.GetCalculationExecutionRequestFilterSensitiveLog = GetCalculationExecutionRequestFilterSensitiveLog;\nconst CalculationResultFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.CalculationResultFilterSensitiveLog = CalculationResultFilterSensitiveLog;\nconst CalculationStatisticsFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.CalculationStatisticsFilterSensitiveLog = CalculationStatisticsFilterSensitiveLog;\nconst CalculationStatusFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.CalculationStatusFilterSensitiveLog = CalculationStatusFilterSensitiveLog;\nconst GetCalculationExecutionResponseFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.GetCalculationExecutionResponseFilterSensitiveLog = GetCalculationExecutionResponseFilterSensitiveLog;\nconst GetCalculationExecutionCodeRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.GetCalculationExecutionCodeRequestFilterSensitiveLog = GetCalculationExecutionCodeRequestFilterSensitiveLog;\nconst GetCalculationExecutionCodeResponseFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.GetCalculationExecutionCodeResponseFilterSensitiveLog = GetCalculationExecutionCodeResponseFilterSensitiveLog;\nconst GetCalculationExecutionStatusRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.GetCalculationExecutionStatusRequestFilterSensitiveLog = GetCalculationExecutionStatusRequestFilterSensitiveLog;\nconst GetCalculationExecutionStatusResponseFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.GetCalculationExecutionStatusResponseFilterSensitiveLog = GetCalculationExecutionStatusResponseFilterSensitiveLog;\nconst GetDatabaseInputFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.GetDatabaseInputFilterSensitiveLog = GetDatabaseInputFilterSensitiveLog;\nconst DatabaseFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.DatabaseFilterSensitiveLog = DatabaseFilterSensitiveLog;\nconst GetDatabaseOutputFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.GetDatabaseOutputFilterSensitiveLog = GetDatabaseOutputFilterSensitiveLog;\nconst GetDataCatalogInputFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.GetDataCatalogInputFilterSensitiveLog = GetDataCatalogInputFilterSensitiveLog;\nconst DataCatalogFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.DataCatalogFilterSensitiveLog = DataCatalogFilterSensitiveLog;\nconst GetDataCatalogOutputFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.GetDataCatalogOutputFilterSensitiveLog = GetDataCatalogOutputFilterSensitiveLog;\nconst GetNamedQueryInputFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.GetNamedQueryInputFilterSensitiveLog = GetNamedQueryInputFilterSensitiveLog;\nconst GetNamedQueryOutputFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.GetNamedQueryOutputFilterSensitiveLog = GetNamedQueryOutputFilterSensitiveLog;\nconst GetNotebookMetadataInputFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.GetNotebookMetadataInputFilterSensitiveLog = GetNotebookMetadataInputFilterSensitiveLog;\nconst GetNotebookMetadataOutputFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.GetNotebookMetadataOutputFilterSensitiveLog = GetNotebookMetadataOutputFilterSensitiveLog;\nconst GetPreparedStatementInputFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.GetPreparedStatementInputFilterSensitiveLog = GetPreparedStatementInputFilterSensitiveLog;\nconst GetPreparedStatementOutputFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.GetPreparedStatementOutputFilterSensitiveLog = GetPreparedStatementOutputFilterSensitiveLog;\nconst GetQueryExecutionInputFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.GetQueryExecutionInputFilterSensitiveLog = GetQueryExecutionInputFilterSensitiveLog;\nconst GetQueryExecutionOutputFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.GetQueryExecutionOutputFilterSensitiveLog = GetQueryExecutionOutputFilterSensitiveLog;\nconst GetQueryResultsInputFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.GetQueryResultsInputFilterSensitiveLog = GetQueryResultsInputFilterSensitiveLog;\nconst ColumnInfoFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.ColumnInfoFilterSensitiveLog = ColumnInfoFilterSensitiveLog;\nconst ResultSetMetadataFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.ResultSetMetadataFilterSensitiveLog = ResultSetMetadataFilterSensitiveLog;\nconst DatumFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.DatumFilterSensitiveLog = DatumFilterSensitiveLog;\nconst RowFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.RowFilterSensitiveLog = RowFilterSensitiveLog;\nconst ResultSetFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.ResultSetFilterSensitiveLog = ResultSetFilterSensitiveLog;\nconst GetQueryResultsOutputFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.GetQueryResultsOutputFilterSensitiveLog = GetQueryResultsOutputFilterSensitiveLog;\nconst GetQueryRuntimeStatisticsInputFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.GetQueryRuntimeStatisticsInputFilterSensitiveLog = GetQueryRuntimeStatisticsInputFilterSensitiveLog;\nconst QueryRuntimeStatisticsRowsFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.QueryRuntimeStatisticsRowsFilterSensitiveLog = QueryRuntimeStatisticsRowsFilterSensitiveLog;\nconst QueryRuntimeStatisticsTimelineFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.QueryRuntimeStatisticsTimelineFilterSensitiveLog = QueryRuntimeStatisticsTimelineFilterSensitiveLog;\nconst GetSessionRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.GetSessionRequestFilterSensitiveLog = GetSessionRequestFilterSensitiveLog;\nconst EngineConfigurationFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.EngineConfigurationFilterSensitiveLog = EngineConfigurationFilterSensitiveLog;\nconst SessionConfigurationFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.SessionConfigurationFilterSensitiveLog = SessionConfigurationFilterSensitiveLog;\nconst SessionStatisticsFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.SessionStatisticsFilterSensitiveLog = SessionStatisticsFilterSensitiveLog;\nconst SessionStatusFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.SessionStatusFilterSensitiveLog = SessionStatusFilterSensitiveLog;\nconst GetSessionResponseFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.GetSessionResponseFilterSensitiveLog = GetSessionResponseFilterSensitiveLog;\nconst GetSessionStatusRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.GetSessionStatusRequestFilterSensitiveLog = GetSessionStatusRequestFilterSensitiveLog;\nconst GetSessionStatusResponseFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.GetSessionStatusResponseFilterSensitiveLog = GetSessionStatusResponseFilterSensitiveLog;\nconst GetTableMetadataInputFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.GetTableMetadataInputFilterSensitiveLog = GetTableMetadataInputFilterSensitiveLog;\nconst ColumnFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.ColumnFilterSensitiveLog = ColumnFilterSensitiveLog;\nconst TableMetadataFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.TableMetadataFilterSensitiveLog = TableMetadataFilterSensitiveLog;\nconst GetTableMetadataOutputFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.GetTableMetadataOutputFilterSensitiveLog = GetTableMetadataOutputFilterSensitiveLog;\nconst GetWorkGroupInputFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.GetWorkGroupInputFilterSensitiveLog = GetWorkGroupInputFilterSensitiveLog;\nconst WorkGroupFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.WorkGroupFilterSensitiveLog = WorkGroupFilterSensitiveLog;\nconst GetWorkGroupOutputFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.GetWorkGroupOutputFilterSensitiveLog = GetWorkGroupOutputFilterSensitiveLog;\nconst ImportNotebookInputFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.ImportNotebookInputFilterSensitiveLog = ImportNotebookInputFilterSensitiveLog;\nconst ImportNotebookOutputFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.ImportNotebookOutputFilterSensitiveLog = ImportNotebookOutputFilterSensitiveLog;\nconst ListApplicationDPUSizesInputFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.ListApplicationDPUSizesInputFilterSensitiveLog = ListApplicationDPUSizesInputFilterSensitiveLog;\nconst ApplicationDPUSizesFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.ApplicationDPUSizesFilterSensitiveLog = ApplicationDPUSizesFilterSensitiveLog;\nconst ListApplicationDPUSizesOutputFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.ListApplicationDPUSizesOutputFilterSensitiveLog = ListApplicationDPUSizesOutputFilterSensitiveLog;\nconst ListCalculationExecutionsRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.ListCalculationExecutionsRequestFilterSensitiveLog = ListCalculationExecutionsRequestFilterSensitiveLog;\nconst CalculationSummaryFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.CalculationSummaryFilterSensitiveLog = CalculationSummaryFilterSensitiveLog;\nconst ListCalculationExecutionsResponseFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.ListCalculationExecutionsResponseFilterSensitiveLog = ListCalculationExecutionsResponseFilterSensitiveLog;\nconst ListDatabasesInputFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.ListDatabasesInputFilterSensitiveLog = ListDatabasesInputFilterSensitiveLog;\nconst ListDatabasesOutputFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.ListDatabasesOutputFilterSensitiveLog = ListDatabasesOutputFilterSensitiveLog;\nconst ListDataCatalogsInputFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.ListDataCatalogsInputFilterSensitiveLog = ListDataCatalogsInputFilterSensitiveLog;\nconst DataCatalogSummaryFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.DataCatalogSummaryFilterSensitiveLog = DataCatalogSummaryFilterSensitiveLog;\nconst ListDataCatalogsOutputFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.ListDataCatalogsOutputFilterSensitiveLog = ListDataCatalogsOutputFilterSensitiveLog;\nconst ListEngineVersionsInputFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.ListEngineVersionsInputFilterSensitiveLog = ListEngineVersionsInputFilterSensitiveLog;\nconst ListEngineVersionsOutputFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.ListEngineVersionsOutputFilterSensitiveLog = ListEngineVersionsOutputFilterSensitiveLog;\nconst ListExecutorsRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.ListExecutorsRequestFilterSensitiveLog = ListExecutorsRequestFilterSensitiveLog;\nconst ExecutorsSummaryFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.ExecutorsSummaryFilterSensitiveLog = ExecutorsSummaryFilterSensitiveLog;\nconst ListExecutorsResponseFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.ListExecutorsResponseFilterSensitiveLog = ListExecutorsResponseFilterSensitiveLog;\nconst ListNamedQueriesInputFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.ListNamedQueriesInputFilterSensitiveLog = ListNamedQueriesInputFilterSensitiveLog;\nconst ListNamedQueriesOutputFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.ListNamedQueriesOutputFilterSensitiveLog = ListNamedQueriesOutputFilterSensitiveLog;\nconst FilterDefinitionFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.FilterDefinitionFilterSensitiveLog = FilterDefinitionFilterSensitiveLog;\nconst ListNotebookMetadataInputFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.ListNotebookMetadataInputFilterSensitiveLog = ListNotebookMetadataInputFilterSensitiveLog;\nconst ListNotebookMetadataOutputFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.ListNotebookMetadataOutputFilterSensitiveLog = ListNotebookMetadataOutputFilterSensitiveLog;\nconst ListNotebookSessionsRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.ListNotebookSessionsRequestFilterSensitiveLog = ListNotebookSessionsRequestFilterSensitiveLog;\nconst NotebookSessionSummaryFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.NotebookSessionSummaryFilterSensitiveLog = NotebookSessionSummaryFilterSensitiveLog;\nconst ListNotebookSessionsResponseFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.ListNotebookSessionsResponseFilterSensitiveLog = ListNotebookSessionsResponseFilterSensitiveLog;\nconst ListPreparedStatementsInputFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.ListPreparedStatementsInputFilterSensitiveLog = ListPreparedStatementsInputFilterSensitiveLog;\nconst PreparedStatementSummaryFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.PreparedStatementSummaryFilterSensitiveLog = PreparedStatementSummaryFilterSensitiveLog;\nconst ListPreparedStatementsOutputFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.ListPreparedStatementsOutputFilterSensitiveLog = ListPreparedStatementsOutputFilterSensitiveLog;\nconst ListQueryExecutionsInputFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.ListQueryExecutionsInputFilterSensitiveLog = ListQueryExecutionsInputFilterSensitiveLog;\nconst ListQueryExecutionsOutputFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.ListQueryExecutionsOutputFilterSensitiveLog = ListQueryExecutionsOutputFilterSensitiveLog;\nconst ListSessionsRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.ListSessionsRequestFilterSensitiveLog = ListSessionsRequestFilterSensitiveLog;\nconst SessionSummaryFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.SessionSummaryFilterSensitiveLog = SessionSummaryFilterSensitiveLog;\nconst ListSessionsResponseFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.ListSessionsResponseFilterSensitiveLog = ListSessionsResponseFilterSensitiveLog;\nconst ListTableMetadataInputFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.ListTableMetadataInputFilterSensitiveLog = ListTableMetadataInputFilterSensitiveLog;\nconst ListTableMetadataOutputFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.ListTableMetadataOutputFilterSensitiveLog = ListTableMetadataOutputFilterSensitiveLog;\nconst ListTagsForResourceInputFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.ListTagsForResourceInputFilterSensitiveLog = ListTagsForResourceInputFilterSensitiveLog;\nconst ListTagsForResourceOutputFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.ListTagsForResourceOutputFilterSensitiveLog = ListTagsForResourceOutputFilterSensitiveLog;\nconst ListWorkGroupsInputFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.ListWorkGroupsInputFilterSensitiveLog = ListWorkGroupsInputFilterSensitiveLog;\nconst WorkGroupSummaryFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.WorkGroupSummaryFilterSensitiveLog = WorkGroupSummaryFilterSensitiveLog;\nconst ListWorkGroupsOutputFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.ListWorkGroupsOutputFilterSensitiveLog = ListWorkGroupsOutputFilterSensitiveLog;\nconst CalculationConfigurationFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.CalculationConfigurationFilterSensitiveLog = CalculationConfigurationFilterSensitiveLog;\nconst StartCalculationExecutionRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.StartCalculationExecutionRequestFilterSensitiveLog = StartCalculationExecutionRequestFilterSensitiveLog;\nconst StartCalculationExecutionResponseFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.StartCalculationExecutionResponseFilterSensitiveLog = StartCalculationExecutionResponseFilterSensitiveLog;\nconst StartQueryExecutionInputFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.StartQueryExecutionInputFilterSensitiveLog = StartQueryExecutionInputFilterSensitiveLog;\nconst StartQueryExecutionOutputFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.StartQueryExecutionOutputFilterSensitiveLog = StartQueryExecutionOutputFilterSensitiveLog;\nconst StartSessionRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.StartSessionRequestFilterSensitiveLog = StartSessionRequestFilterSensitiveLog;\nconst StartSessionResponseFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.StartSessionResponseFilterSensitiveLog = StartSessionResponseFilterSensitiveLog;\nconst StopCalculationExecutionRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.StopCalculationExecutionRequestFilterSensitiveLog = StopCalculationExecutionRequestFilterSensitiveLog;\nconst StopCalculationExecutionResponseFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.StopCalculationExecutionResponseFilterSensitiveLog = StopCalculationExecutionResponseFilterSensitiveLog;\nconst StopQueryExecutionInputFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.StopQueryExecutionInputFilterSensitiveLog = StopQueryExecutionInputFilterSensitiveLog;\nconst StopQueryExecutionOutputFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.StopQueryExecutionOutputFilterSensitiveLog = StopQueryExecutionOutputFilterSensitiveLog;\nconst TagResourceInputFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.TagResourceInputFilterSensitiveLog = TagResourceInputFilterSensitiveLog;\nconst TagResourceOutputFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.TagResourceOutputFilterSensitiveLog = TagResourceOutputFilterSensitiveLog;\nconst TerminateSessionRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.TerminateSessionRequestFilterSensitiveLog = TerminateSessionRequestFilterSensitiveLog;\nconst TerminateSessionResponseFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.TerminateSessionResponseFilterSensitiveLog = TerminateSessionResponseFilterSensitiveLog;\nconst UntagResourceInputFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.UntagResourceInputFilterSensitiveLog = UntagResourceInputFilterSensitiveLog;\nconst UntagResourceOutputFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.UntagResourceOutputFilterSensitiveLog = UntagResourceOutputFilterSensitiveLog;\nconst UpdateDataCatalogInputFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.UpdateDataCatalogInputFilterSensitiveLog = UpdateDataCatalogInputFilterSensitiveLog;\nconst UpdateDataCatalogOutputFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.UpdateDataCatalogOutputFilterSensitiveLog = UpdateDataCatalogOutputFilterSensitiveLog;\nconst UpdateNamedQueryInputFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.UpdateNamedQueryInputFilterSensitiveLog = UpdateNamedQueryInputFilterSensitiveLog;\nconst UpdateNamedQueryOutputFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.UpdateNamedQueryOutputFilterSensitiveLog = UpdateNamedQueryOutputFilterSensitiveLog;\nconst UpdateNotebookInputFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.UpdateNotebookInputFilterSensitiveLog = UpdateNotebookInputFilterSensitiveLog;\nconst UpdateNotebookOutputFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.UpdateNotebookOutputFilterSensitiveLog = UpdateNotebookOutputFilterSensitiveLog;\nconst UpdateNotebookMetadataInputFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.UpdateNotebookMetadataInputFilterSensitiveLog = UpdateNotebookMetadataInputFilterSensitiveLog;\nconst UpdateNotebookMetadataOutputFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.UpdateNotebookMetadataOutputFilterSensitiveLog = UpdateNotebookMetadataOutputFilterSensitiveLog;\nconst UpdatePreparedStatementInputFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.UpdatePreparedStatementInputFilterSensitiveLog = UpdatePreparedStatementInputFilterSensitiveLog;\nconst UpdatePreparedStatementOutputFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.UpdatePreparedStatementOutputFilterSensitiveLog = UpdatePreparedStatementOutputFilterSensitiveLog;\nconst ResultConfigurationUpdatesFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.ResultConfigurationUpdatesFilterSensitiveLog = ResultConfigurationUpdatesFilterSensitiveLog;\nconst WorkGroupConfigurationUpdatesFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.WorkGroupConfigurationUpdatesFilterSensitiveLog = WorkGroupConfigurationUpdatesFilterSensitiveLog;\nconst UpdateWorkGroupInputFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.UpdateWorkGroupInputFilterSensitiveLog = UpdateWorkGroupInputFilterSensitiveLog;\nconst UpdateWorkGroupOutputFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.UpdateWorkGroupOutputFilterSensitiveLog = UpdateWorkGroupOutputFilterSensitiveLog;\nconst QueryStagePlanNodeFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.QueryStagePlanNodeFilterSensitiveLog = QueryStagePlanNodeFilterSensitiveLog;\nconst QueryStageFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.QueryStageFilterSensitiveLog = QueryStageFilterSensitiveLog;\nconst QueryRuntimeStatisticsFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.QueryRuntimeStatisticsFilterSensitiveLog = QueryRuntimeStatisticsFilterSensitiveLog;\nconst GetQueryRuntimeStatisticsOutputFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexports.GetQueryRuntimeStatisticsOutputFilterSensitiveLog = GetQueryRuntimeStatisticsOutputFilterSensitiveLog;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.serializeAws_json1_1StopCalculationExecutionCommand = exports.serializeAws_json1_1StartSessionCommand = exports.serializeAws_json1_1StartQueryExecutionCommand = exports.serializeAws_json1_1StartCalculationExecutionCommand = exports.serializeAws_json1_1ListWorkGroupsCommand = exports.serializeAws_json1_1ListTagsForResourceCommand = exports.serializeAws_json1_1ListTableMetadataCommand = exports.serializeAws_json1_1ListSessionsCommand = exports.serializeAws_json1_1ListQueryExecutionsCommand = exports.serializeAws_json1_1ListPreparedStatementsCommand = exports.serializeAws_json1_1ListNotebookSessionsCommand = exports.serializeAws_json1_1ListNotebookMetadataCommand = exports.serializeAws_json1_1ListNamedQueriesCommand = exports.serializeAws_json1_1ListExecutorsCommand = exports.serializeAws_json1_1ListEngineVersionsCommand = exports.serializeAws_json1_1ListDataCatalogsCommand = exports.serializeAws_json1_1ListDatabasesCommand = exports.serializeAws_json1_1ListCalculationExecutionsCommand = exports.serializeAws_json1_1ListApplicationDPUSizesCommand = exports.serializeAws_json1_1ImportNotebookCommand = exports.serializeAws_json1_1GetWorkGroupCommand = exports.serializeAws_json1_1GetTableMetadataCommand = exports.serializeAws_json1_1GetSessionStatusCommand = exports.serializeAws_json1_1GetSessionCommand = exports.serializeAws_json1_1GetQueryRuntimeStatisticsCommand = exports.serializeAws_json1_1GetQueryResultsCommand = exports.serializeAws_json1_1GetQueryExecutionCommand = exports.serializeAws_json1_1GetPreparedStatementCommand = exports.serializeAws_json1_1GetNotebookMetadataCommand = exports.serializeAws_json1_1GetNamedQueryCommand = exports.serializeAws_json1_1GetDataCatalogCommand = exports.serializeAws_json1_1GetDatabaseCommand = exports.serializeAws_json1_1GetCalculationExecutionStatusCommand = exports.serializeAws_json1_1GetCalculationExecutionCodeCommand = exports.serializeAws_json1_1GetCalculationExecutionCommand = exports.serializeAws_json1_1ExportNotebookCommand = exports.serializeAws_json1_1DeleteWorkGroupCommand = exports.serializeAws_json1_1DeletePreparedStatementCommand = exports.serializeAws_json1_1DeleteNotebookCommand = exports.serializeAws_json1_1DeleteNamedQueryCommand = exports.serializeAws_json1_1DeleteDataCatalogCommand = exports.serializeAws_json1_1CreateWorkGroupCommand = exports.serializeAws_json1_1CreatePresignedNotebookUrlCommand = exports.serializeAws_json1_1CreatePreparedStatementCommand = exports.serializeAws_json1_1CreateNotebookCommand = exports.serializeAws_json1_1CreateNamedQueryCommand = exports.serializeAws_json1_1CreateDataCatalogCommand = exports.serializeAws_json1_1BatchGetQueryExecutionCommand = exports.serializeAws_json1_1BatchGetPreparedStatementCommand = exports.serializeAws_json1_1BatchGetNamedQueryCommand = void 0;\nexports.deserializeAws_json1_1ListNotebookSessionsCommand = exports.deserializeAws_json1_1ListNotebookMetadataCommand = exports.deserializeAws_json1_1ListNamedQueriesCommand = exports.deserializeAws_json1_1ListExecutorsCommand = exports.deserializeAws_json1_1ListEngineVersionsCommand = exports.deserializeAws_json1_1ListDataCatalogsCommand = exports.deserializeAws_json1_1ListDatabasesCommand = exports.deserializeAws_json1_1ListCalculationExecutionsCommand = exports.deserializeAws_json1_1ListApplicationDPUSizesCommand = exports.deserializeAws_json1_1ImportNotebookCommand = exports.deserializeAws_json1_1GetWorkGroupCommand = exports.deserializeAws_json1_1GetTableMetadataCommand = exports.deserializeAws_json1_1GetSessionStatusCommand = exports.deserializeAws_json1_1GetSessionCommand = exports.deserializeAws_json1_1GetQueryRuntimeStatisticsCommand = exports.deserializeAws_json1_1GetQueryResultsCommand = exports.deserializeAws_json1_1GetQueryExecutionCommand = exports.deserializeAws_json1_1GetPreparedStatementCommand = exports.deserializeAws_json1_1GetNotebookMetadataCommand = exports.deserializeAws_json1_1GetNamedQueryCommand = exports.deserializeAws_json1_1GetDataCatalogCommand = exports.deserializeAws_json1_1GetDatabaseCommand = exports.deserializeAws_json1_1GetCalculationExecutionStatusCommand = exports.deserializeAws_json1_1GetCalculationExecutionCodeCommand = exports.deserializeAws_json1_1GetCalculationExecutionCommand = exports.deserializeAws_json1_1ExportNotebookCommand = exports.deserializeAws_json1_1DeleteWorkGroupCommand = exports.deserializeAws_json1_1DeletePreparedStatementCommand = exports.deserializeAws_json1_1DeleteNotebookCommand = exports.deserializeAws_json1_1DeleteNamedQueryCommand = exports.deserializeAws_json1_1DeleteDataCatalogCommand = exports.deserializeAws_json1_1CreateWorkGroupCommand = exports.deserializeAws_json1_1CreatePresignedNotebookUrlCommand = exports.deserializeAws_json1_1CreatePreparedStatementCommand = exports.deserializeAws_json1_1CreateNotebookCommand = exports.deserializeAws_json1_1CreateNamedQueryCommand = exports.deserializeAws_json1_1CreateDataCatalogCommand = exports.deserializeAws_json1_1BatchGetQueryExecutionCommand = exports.deserializeAws_json1_1BatchGetPreparedStatementCommand = exports.deserializeAws_json1_1BatchGetNamedQueryCommand = exports.serializeAws_json1_1UpdateWorkGroupCommand = exports.serializeAws_json1_1UpdatePreparedStatementCommand = exports.serializeAws_json1_1UpdateNotebookMetadataCommand = exports.serializeAws_json1_1UpdateNotebookCommand = exports.serializeAws_json1_1UpdateNamedQueryCommand = exports.serializeAws_json1_1UpdateDataCatalogCommand = exports.serializeAws_json1_1UntagResourceCommand = exports.serializeAws_json1_1TerminateSessionCommand = exports.serializeAws_json1_1TagResourceCommand = exports.serializeAws_json1_1StopQueryExecutionCommand = void 0;\nexports.deserializeAws_json1_1UpdateWorkGroupCommand = exports.deserializeAws_json1_1UpdatePreparedStatementCommand = exports.deserializeAws_json1_1UpdateNotebookMetadataCommand = exports.deserializeAws_json1_1UpdateNotebookCommand = exports.deserializeAws_json1_1UpdateNamedQueryCommand = exports.deserializeAws_json1_1UpdateDataCatalogCommand = exports.deserializeAws_json1_1UntagResourceCommand = exports.deserializeAws_json1_1TerminateSessionCommand = exports.deserializeAws_json1_1TagResourceCommand = exports.deserializeAws_json1_1StopQueryExecutionCommand = exports.deserializeAws_json1_1StopCalculationExecutionCommand = exports.deserializeAws_json1_1StartSessionCommand = exports.deserializeAws_json1_1StartQueryExecutionCommand = exports.deserializeAws_json1_1StartCalculationExecutionCommand = exports.deserializeAws_json1_1ListWorkGroupsCommand = exports.deserializeAws_json1_1ListTagsForResourceCommand = exports.deserializeAws_json1_1ListTableMetadataCommand = exports.deserializeAws_json1_1ListSessionsCommand = exports.deserializeAws_json1_1ListQueryExecutionsCommand = exports.deserializeAws_json1_1ListPreparedStatementsCommand = void 0;\nconst protocol_http_1 = require(\"@aws-sdk/protocol-http\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst uuid_1 = require(\"uuid\");\nconst AthenaServiceException_1 = require(\"../models/AthenaServiceException\");\nconst models_0_1 = require(\"../models/models_0\");\nconst serializeAws_json1_1BatchGetNamedQueryCommand = async (input, context) => {\n const headers = {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": \"AmazonAthena.BatchGetNamedQuery\",\n };\n let body;\n body = JSON.stringify(serializeAws_json1_1BatchGetNamedQueryInput(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexports.serializeAws_json1_1BatchGetNamedQueryCommand = serializeAws_json1_1BatchGetNamedQueryCommand;\nconst serializeAws_json1_1BatchGetPreparedStatementCommand = async (input, context) => {\n const headers = {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": \"AmazonAthena.BatchGetPreparedStatement\",\n };\n let body;\n body = JSON.stringify(serializeAws_json1_1BatchGetPreparedStatementInput(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexports.serializeAws_json1_1BatchGetPreparedStatementCommand = serializeAws_json1_1BatchGetPreparedStatementCommand;\nconst serializeAws_json1_1BatchGetQueryExecutionCommand = async (input, context) => {\n const headers = {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": \"AmazonAthena.BatchGetQueryExecution\",\n };\n let body;\n body = JSON.stringify(serializeAws_json1_1BatchGetQueryExecutionInput(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexports.serializeAws_json1_1BatchGetQueryExecutionCommand = serializeAws_json1_1BatchGetQueryExecutionCommand;\nconst serializeAws_json1_1CreateDataCatalogCommand = async (input, context) => {\n const headers = {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": \"AmazonAthena.CreateDataCatalog\",\n };\n let body;\n body = JSON.stringify(serializeAws_json1_1CreateDataCatalogInput(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexports.serializeAws_json1_1CreateDataCatalogCommand = serializeAws_json1_1CreateDataCatalogCommand;\nconst serializeAws_json1_1CreateNamedQueryCommand = async (input, context) => {\n const headers = {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": \"AmazonAthena.CreateNamedQuery\",\n };\n let body;\n body = JSON.stringify(serializeAws_json1_1CreateNamedQueryInput(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexports.serializeAws_json1_1CreateNamedQueryCommand = serializeAws_json1_1CreateNamedQueryCommand;\nconst serializeAws_json1_1CreateNotebookCommand = async (input, context) => {\n const headers = {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": \"AmazonAthena.CreateNotebook\",\n };\n let body;\n body = JSON.stringify(serializeAws_json1_1CreateNotebookInput(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexports.serializeAws_json1_1CreateNotebookCommand = serializeAws_json1_1CreateNotebookCommand;\nconst serializeAws_json1_1CreatePreparedStatementCommand = async (input, context) => {\n const headers = {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": \"AmazonAthena.CreatePreparedStatement\",\n };\n let body;\n body = JSON.stringify(serializeAws_json1_1CreatePreparedStatementInput(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexports.serializeAws_json1_1CreatePreparedStatementCommand = serializeAws_json1_1CreatePreparedStatementCommand;\nconst serializeAws_json1_1CreatePresignedNotebookUrlCommand = async (input, context) => {\n const headers = {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": \"AmazonAthena.CreatePresignedNotebookUrl\",\n };\n let body;\n body = JSON.stringify(serializeAws_json1_1CreatePresignedNotebookUrlRequest(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexports.serializeAws_json1_1CreatePresignedNotebookUrlCommand = serializeAws_json1_1CreatePresignedNotebookUrlCommand;\nconst serializeAws_json1_1CreateWorkGroupCommand = async (input, context) => {\n const headers = {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": \"AmazonAthena.CreateWorkGroup\",\n };\n let body;\n body = JSON.stringify(serializeAws_json1_1CreateWorkGroupInput(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexports.serializeAws_json1_1CreateWorkGroupCommand = serializeAws_json1_1CreateWorkGroupCommand;\nconst serializeAws_json1_1DeleteDataCatalogCommand = async (input, context) => {\n const headers = {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": \"AmazonAthena.DeleteDataCatalog\",\n };\n let body;\n body = JSON.stringify(serializeAws_json1_1DeleteDataCatalogInput(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexports.serializeAws_json1_1DeleteDataCatalogCommand = serializeAws_json1_1DeleteDataCatalogCommand;\nconst serializeAws_json1_1DeleteNamedQueryCommand = async (input, context) => {\n const headers = {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": \"AmazonAthena.DeleteNamedQuery\",\n };\n let body;\n body = JSON.stringify(serializeAws_json1_1DeleteNamedQueryInput(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexports.serializeAws_json1_1DeleteNamedQueryCommand = serializeAws_json1_1DeleteNamedQueryCommand;\nconst serializeAws_json1_1DeleteNotebookCommand = async (input, context) => {\n const headers = {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": \"AmazonAthena.DeleteNotebook\",\n };\n let body;\n body = JSON.stringify(serializeAws_json1_1DeleteNotebookInput(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexports.serializeAws_json1_1DeleteNotebookCommand = serializeAws_json1_1DeleteNotebookCommand;\nconst serializeAws_json1_1DeletePreparedStatementCommand = async (input, context) => {\n const headers = {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": \"AmazonAthena.DeletePreparedStatement\",\n };\n let body;\n body = JSON.stringify(serializeAws_json1_1DeletePreparedStatementInput(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexports.serializeAws_json1_1DeletePreparedStatementCommand = serializeAws_json1_1DeletePreparedStatementCommand;\nconst serializeAws_json1_1DeleteWorkGroupCommand = async (input, context) => {\n const headers = {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": \"AmazonAthena.DeleteWorkGroup\",\n };\n let body;\n body = JSON.stringify(serializeAws_json1_1DeleteWorkGroupInput(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexports.serializeAws_json1_1DeleteWorkGroupCommand = serializeAws_json1_1DeleteWorkGroupCommand;\nconst serializeAws_json1_1ExportNotebookCommand = async (input, context) => {\n const headers = {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": \"AmazonAthena.ExportNotebook\",\n };\n let body;\n body = JSON.stringify(serializeAws_json1_1ExportNotebookInput(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexports.serializeAws_json1_1ExportNotebookCommand = serializeAws_json1_1ExportNotebookCommand;\nconst serializeAws_json1_1GetCalculationExecutionCommand = async (input, context) => {\n const headers = {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": \"AmazonAthena.GetCalculationExecution\",\n };\n let body;\n body = JSON.stringify(serializeAws_json1_1GetCalculationExecutionRequest(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexports.serializeAws_json1_1GetCalculationExecutionCommand = serializeAws_json1_1GetCalculationExecutionCommand;\nconst serializeAws_json1_1GetCalculationExecutionCodeCommand = async (input, context) => {\n const headers = {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": \"AmazonAthena.GetCalculationExecutionCode\",\n };\n let body;\n body = JSON.stringify(serializeAws_json1_1GetCalculationExecutionCodeRequest(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexports.serializeAws_json1_1GetCalculationExecutionCodeCommand = serializeAws_json1_1GetCalculationExecutionCodeCommand;\nconst serializeAws_json1_1GetCalculationExecutionStatusCommand = async (input, context) => {\n const headers = {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": \"AmazonAthena.GetCalculationExecutionStatus\",\n };\n let body;\n body = JSON.stringify(serializeAws_json1_1GetCalculationExecutionStatusRequest(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexports.serializeAws_json1_1GetCalculationExecutionStatusCommand = serializeAws_json1_1GetCalculationExecutionStatusCommand;\nconst serializeAws_json1_1GetDatabaseCommand = async (input, context) => {\n const headers = {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": \"AmazonAthena.GetDatabase\",\n };\n let body;\n body = JSON.stringify(serializeAws_json1_1GetDatabaseInput(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexports.serializeAws_json1_1GetDatabaseCommand = serializeAws_json1_1GetDatabaseCommand;\nconst serializeAws_json1_1GetDataCatalogCommand = async (input, context) => {\n const headers = {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": \"AmazonAthena.GetDataCatalog\",\n };\n let body;\n body = JSON.stringify(serializeAws_json1_1GetDataCatalogInput(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexports.serializeAws_json1_1GetDataCatalogCommand = serializeAws_json1_1GetDataCatalogCommand;\nconst serializeAws_json1_1GetNamedQueryCommand = async (input, context) => {\n const headers = {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": \"AmazonAthena.GetNamedQuery\",\n };\n let body;\n body = JSON.stringify(serializeAws_json1_1GetNamedQueryInput(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexports.serializeAws_json1_1GetNamedQueryCommand = serializeAws_json1_1GetNamedQueryCommand;\nconst serializeAws_json1_1GetNotebookMetadataCommand = async (input, context) => {\n const headers = {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": \"AmazonAthena.GetNotebookMetadata\",\n };\n let body;\n body = JSON.stringify(serializeAws_json1_1GetNotebookMetadataInput(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexports.serializeAws_json1_1GetNotebookMetadataCommand = serializeAws_json1_1GetNotebookMetadataCommand;\nconst serializeAws_json1_1GetPreparedStatementCommand = async (input, context) => {\n const headers = {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": \"AmazonAthena.GetPreparedStatement\",\n };\n let body;\n body = JSON.stringify(serializeAws_json1_1GetPreparedStatementInput(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexports.serializeAws_json1_1GetPreparedStatementCommand = serializeAws_json1_1GetPreparedStatementCommand;\nconst serializeAws_json1_1GetQueryExecutionCommand = async (input, context) => {\n const headers = {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": \"AmazonAthena.GetQueryExecution\",\n };\n let body;\n body = JSON.stringify(serializeAws_json1_1GetQueryExecutionInput(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexports.serializeAws_json1_1GetQueryExecutionCommand = serializeAws_json1_1GetQueryExecutionCommand;\nconst serializeAws_json1_1GetQueryResultsCommand = async (input, context) => {\n const headers = {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": \"AmazonAthena.GetQueryResults\",\n };\n let body;\n body = JSON.stringify(serializeAws_json1_1GetQueryResultsInput(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexports.serializeAws_json1_1GetQueryResultsCommand = serializeAws_json1_1GetQueryResultsCommand;\nconst serializeAws_json1_1GetQueryRuntimeStatisticsCommand = async (input, context) => {\n const headers = {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": \"AmazonAthena.GetQueryRuntimeStatistics\",\n };\n let body;\n body = JSON.stringify(serializeAws_json1_1GetQueryRuntimeStatisticsInput(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexports.serializeAws_json1_1GetQueryRuntimeStatisticsCommand = serializeAws_json1_1GetQueryRuntimeStatisticsCommand;\nconst serializeAws_json1_1GetSessionCommand = async (input, context) => {\n const headers = {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": \"AmazonAthena.GetSession\",\n };\n let body;\n body = JSON.stringify(serializeAws_json1_1GetSessionRequest(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexports.serializeAws_json1_1GetSessionCommand = serializeAws_json1_1GetSessionCommand;\nconst serializeAws_json1_1GetSessionStatusCommand = async (input, context) => {\n const headers = {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": \"AmazonAthena.GetSessionStatus\",\n };\n let body;\n body = JSON.stringify(serializeAws_json1_1GetSessionStatusRequest(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexports.serializeAws_json1_1GetSessionStatusCommand = serializeAws_json1_1GetSessionStatusCommand;\nconst serializeAws_json1_1GetTableMetadataCommand = async (input, context) => {\n const headers = {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": \"AmazonAthena.GetTableMetadata\",\n };\n let body;\n body = JSON.stringify(serializeAws_json1_1GetTableMetadataInput(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexports.serializeAws_json1_1GetTableMetadataCommand = serializeAws_json1_1GetTableMetadataCommand;\nconst serializeAws_json1_1GetWorkGroupCommand = async (input, context) => {\n const headers = {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": \"AmazonAthena.GetWorkGroup\",\n };\n let body;\n body = JSON.stringify(serializeAws_json1_1GetWorkGroupInput(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexports.serializeAws_json1_1GetWorkGroupCommand = serializeAws_json1_1GetWorkGroupCommand;\nconst serializeAws_json1_1ImportNotebookCommand = async (input, context) => {\n const headers = {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": \"AmazonAthena.ImportNotebook\",\n };\n let body;\n body = JSON.stringify(serializeAws_json1_1ImportNotebookInput(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexports.serializeAws_json1_1ImportNotebookCommand = serializeAws_json1_1ImportNotebookCommand;\nconst serializeAws_json1_1ListApplicationDPUSizesCommand = async (input, context) => {\n const headers = {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": \"AmazonAthena.ListApplicationDPUSizes\",\n };\n let body;\n body = JSON.stringify(serializeAws_json1_1ListApplicationDPUSizesInput(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexports.serializeAws_json1_1ListApplicationDPUSizesCommand = serializeAws_json1_1ListApplicationDPUSizesCommand;\nconst serializeAws_json1_1ListCalculationExecutionsCommand = async (input, context) => {\n const headers = {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": \"AmazonAthena.ListCalculationExecutions\",\n };\n let body;\n body = JSON.stringify(serializeAws_json1_1ListCalculationExecutionsRequest(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexports.serializeAws_json1_1ListCalculationExecutionsCommand = serializeAws_json1_1ListCalculationExecutionsCommand;\nconst serializeAws_json1_1ListDatabasesCommand = async (input, context) => {\n const headers = {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": \"AmazonAthena.ListDatabases\",\n };\n let body;\n body = JSON.stringify(serializeAws_json1_1ListDatabasesInput(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexports.serializeAws_json1_1ListDatabasesCommand = serializeAws_json1_1ListDatabasesCommand;\nconst serializeAws_json1_1ListDataCatalogsCommand = async (input, context) => {\n const headers = {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": \"AmazonAthena.ListDataCatalogs\",\n };\n let body;\n body = JSON.stringify(serializeAws_json1_1ListDataCatalogsInput(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexports.serializeAws_json1_1ListDataCatalogsCommand = serializeAws_json1_1ListDataCatalogsCommand;\nconst serializeAws_json1_1ListEngineVersionsCommand = async (input, context) => {\n const headers = {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": \"AmazonAthena.ListEngineVersions\",\n };\n let body;\n body = JSON.stringify(serializeAws_json1_1ListEngineVersionsInput(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexports.serializeAws_json1_1ListEngineVersionsCommand = serializeAws_json1_1ListEngineVersionsCommand;\nconst serializeAws_json1_1ListExecutorsCommand = async (input, context) => {\n const headers = {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": \"AmazonAthena.ListExecutors\",\n };\n let body;\n body = JSON.stringify(serializeAws_json1_1ListExecutorsRequest(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexports.serializeAws_json1_1ListExecutorsCommand = serializeAws_json1_1ListExecutorsCommand;\nconst serializeAws_json1_1ListNamedQueriesCommand = async (input, context) => {\n const headers = {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": \"AmazonAthena.ListNamedQueries\",\n };\n let body;\n body = JSON.stringify(serializeAws_json1_1ListNamedQueriesInput(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexports.serializeAws_json1_1ListNamedQueriesCommand = serializeAws_json1_1ListNamedQueriesCommand;\nconst serializeAws_json1_1ListNotebookMetadataCommand = async (input, context) => {\n const headers = {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": \"AmazonAthena.ListNotebookMetadata\",\n };\n let body;\n body = JSON.stringify(serializeAws_json1_1ListNotebookMetadataInput(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexports.serializeAws_json1_1ListNotebookMetadataCommand = serializeAws_json1_1ListNotebookMetadataCommand;\nconst serializeAws_json1_1ListNotebookSessionsCommand = async (input, context) => {\n const headers = {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": \"AmazonAthena.ListNotebookSessions\",\n };\n let body;\n body = JSON.stringify(serializeAws_json1_1ListNotebookSessionsRequest(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexports.serializeAws_json1_1ListNotebookSessionsCommand = serializeAws_json1_1ListNotebookSessionsCommand;\nconst serializeAws_json1_1ListPreparedStatementsCommand = async (input, context) => {\n const headers = {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": \"AmazonAthena.ListPreparedStatements\",\n };\n let body;\n body = JSON.stringify(serializeAws_json1_1ListPreparedStatementsInput(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexports.serializeAws_json1_1ListPreparedStatementsCommand = serializeAws_json1_1ListPreparedStatementsCommand;\nconst serializeAws_json1_1ListQueryExecutionsCommand = async (input, context) => {\n const headers = {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": \"AmazonAthena.ListQueryExecutions\",\n };\n let body;\n body = JSON.stringify(serializeAws_json1_1ListQueryExecutionsInput(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexports.serializeAws_json1_1ListQueryExecutionsCommand = serializeAws_json1_1ListQueryExecutionsCommand;\nconst serializeAws_json1_1ListSessionsCommand = async (input, context) => {\n const headers = {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": \"AmazonAthena.ListSessions\",\n };\n let body;\n body = JSON.stringify(serializeAws_json1_1ListSessionsRequest(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexports.serializeAws_json1_1ListSessionsCommand = serializeAws_json1_1ListSessionsCommand;\nconst serializeAws_json1_1ListTableMetadataCommand = async (input, context) => {\n const headers = {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": \"AmazonAthena.ListTableMetadata\",\n };\n let body;\n body = JSON.stringify(serializeAws_json1_1ListTableMetadataInput(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexports.serializeAws_json1_1ListTableMetadataCommand = serializeAws_json1_1ListTableMetadataCommand;\nconst serializeAws_json1_1ListTagsForResourceCommand = async (input, context) => {\n const headers = {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": \"AmazonAthena.ListTagsForResource\",\n };\n let body;\n body = JSON.stringify(serializeAws_json1_1ListTagsForResourceInput(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexports.serializeAws_json1_1ListTagsForResourceCommand = serializeAws_json1_1ListTagsForResourceCommand;\nconst serializeAws_json1_1ListWorkGroupsCommand = async (input, context) => {\n const headers = {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": \"AmazonAthena.ListWorkGroups\",\n };\n let body;\n body = JSON.stringify(serializeAws_json1_1ListWorkGroupsInput(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexports.serializeAws_json1_1ListWorkGroupsCommand = serializeAws_json1_1ListWorkGroupsCommand;\nconst serializeAws_json1_1StartCalculationExecutionCommand = async (input, context) => {\n const headers = {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": \"AmazonAthena.StartCalculationExecution\",\n };\n let body;\n body = JSON.stringify(serializeAws_json1_1StartCalculationExecutionRequest(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexports.serializeAws_json1_1StartCalculationExecutionCommand = serializeAws_json1_1StartCalculationExecutionCommand;\nconst serializeAws_json1_1StartQueryExecutionCommand = async (input, context) => {\n const headers = {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": \"AmazonAthena.StartQueryExecution\",\n };\n let body;\n body = JSON.stringify(serializeAws_json1_1StartQueryExecutionInput(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexports.serializeAws_json1_1StartQueryExecutionCommand = serializeAws_json1_1StartQueryExecutionCommand;\nconst serializeAws_json1_1StartSessionCommand = async (input, context) => {\n const headers = {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": \"AmazonAthena.StartSession\",\n };\n let body;\n body = JSON.stringify(serializeAws_json1_1StartSessionRequest(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexports.serializeAws_json1_1StartSessionCommand = serializeAws_json1_1StartSessionCommand;\nconst serializeAws_json1_1StopCalculationExecutionCommand = async (input, context) => {\n const headers = {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": \"AmazonAthena.StopCalculationExecution\",\n };\n let body;\n body = JSON.stringify(serializeAws_json1_1StopCalculationExecutionRequest(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexports.serializeAws_json1_1StopCalculationExecutionCommand = serializeAws_json1_1StopCalculationExecutionCommand;\nconst serializeAws_json1_1StopQueryExecutionCommand = async (input, context) => {\n const headers = {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": \"AmazonAthena.StopQueryExecution\",\n };\n let body;\n body = JSON.stringify(serializeAws_json1_1StopQueryExecutionInput(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexports.serializeAws_json1_1StopQueryExecutionCommand = serializeAws_json1_1StopQueryExecutionCommand;\nconst serializeAws_json1_1TagResourceCommand = async (input, context) => {\n const headers = {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": \"AmazonAthena.TagResource\",\n };\n let body;\n body = JSON.stringify(serializeAws_json1_1TagResourceInput(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexports.serializeAws_json1_1TagResourceCommand = serializeAws_json1_1TagResourceCommand;\nconst serializeAws_json1_1TerminateSessionCommand = async (input, context) => {\n const headers = {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": \"AmazonAthena.TerminateSession\",\n };\n let body;\n body = JSON.stringify(serializeAws_json1_1TerminateSessionRequest(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexports.serializeAws_json1_1TerminateSessionCommand = serializeAws_json1_1TerminateSessionCommand;\nconst serializeAws_json1_1UntagResourceCommand = async (input, context) => {\n const headers = {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": \"AmazonAthena.UntagResource\",\n };\n let body;\n body = JSON.stringify(serializeAws_json1_1UntagResourceInput(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexports.serializeAws_json1_1UntagResourceCommand = serializeAws_json1_1UntagResourceCommand;\nconst serializeAws_json1_1UpdateDataCatalogCommand = async (input, context) => {\n const headers = {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": \"AmazonAthena.UpdateDataCatalog\",\n };\n let body;\n body = JSON.stringify(serializeAws_json1_1UpdateDataCatalogInput(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexports.serializeAws_json1_1UpdateDataCatalogCommand = serializeAws_json1_1UpdateDataCatalogCommand;\nconst serializeAws_json1_1UpdateNamedQueryCommand = async (input, context) => {\n const headers = {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": \"AmazonAthena.UpdateNamedQuery\",\n };\n let body;\n body = JSON.stringify(serializeAws_json1_1UpdateNamedQueryInput(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexports.serializeAws_json1_1UpdateNamedQueryCommand = serializeAws_json1_1UpdateNamedQueryCommand;\nconst serializeAws_json1_1UpdateNotebookCommand = async (input, context) => {\n const headers = {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": \"AmazonAthena.UpdateNotebook\",\n };\n let body;\n body = JSON.stringify(serializeAws_json1_1UpdateNotebookInput(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexports.serializeAws_json1_1UpdateNotebookCommand = serializeAws_json1_1UpdateNotebookCommand;\nconst serializeAws_json1_1UpdateNotebookMetadataCommand = async (input, context) => {\n const headers = {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": \"AmazonAthena.UpdateNotebookMetadata\",\n };\n let body;\n body = JSON.stringify(serializeAws_json1_1UpdateNotebookMetadataInput(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexports.serializeAws_json1_1UpdateNotebookMetadataCommand = serializeAws_json1_1UpdateNotebookMetadataCommand;\nconst serializeAws_json1_1UpdatePreparedStatementCommand = async (input, context) => {\n const headers = {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": \"AmazonAthena.UpdatePreparedStatement\",\n };\n let body;\n body = JSON.stringify(serializeAws_json1_1UpdatePreparedStatementInput(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexports.serializeAws_json1_1UpdatePreparedStatementCommand = serializeAws_json1_1UpdatePreparedStatementCommand;\nconst serializeAws_json1_1UpdateWorkGroupCommand = async (input, context) => {\n const headers = {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": \"AmazonAthena.UpdateWorkGroup\",\n };\n let body;\n body = JSON.stringify(serializeAws_json1_1UpdateWorkGroupInput(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexports.serializeAws_json1_1UpdateWorkGroupCommand = serializeAws_json1_1UpdateWorkGroupCommand;\nconst deserializeAws_json1_1BatchGetNamedQueryCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return deserializeAws_json1_1BatchGetNamedQueryCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = deserializeAws_json1_1BatchGetNamedQueryOutput(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return Promise.resolve(response);\n};\nexports.deserializeAws_json1_1BatchGetNamedQueryCommand = deserializeAws_json1_1BatchGetNamedQueryCommand;\nconst deserializeAws_json1_1BatchGetNamedQueryCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"InternalServerException\":\n case \"com.amazonaws.athena#InternalServerException\":\n throw await deserializeAws_json1_1InternalServerExceptionResponse(parsedOutput, context);\n case \"InvalidRequestException\":\n case \"com.amazonaws.athena#InvalidRequestException\":\n throw await deserializeAws_json1_1InvalidRequestExceptionResponse(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody,\n exceptionCtor: AthenaServiceException_1.AthenaServiceException,\n errorCode,\n });\n }\n};\nconst deserializeAws_json1_1BatchGetPreparedStatementCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return deserializeAws_json1_1BatchGetPreparedStatementCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = deserializeAws_json1_1BatchGetPreparedStatementOutput(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return Promise.resolve(response);\n};\nexports.deserializeAws_json1_1BatchGetPreparedStatementCommand = deserializeAws_json1_1BatchGetPreparedStatementCommand;\nconst deserializeAws_json1_1BatchGetPreparedStatementCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"InternalServerException\":\n case \"com.amazonaws.athena#InternalServerException\":\n throw await deserializeAws_json1_1InternalServerExceptionResponse(parsedOutput, context);\n case \"InvalidRequestException\":\n case \"com.amazonaws.athena#InvalidRequestException\":\n throw await deserializeAws_json1_1InvalidRequestExceptionResponse(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody,\n exceptionCtor: AthenaServiceException_1.AthenaServiceException,\n errorCode,\n });\n }\n};\nconst deserializeAws_json1_1BatchGetQueryExecutionCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return deserializeAws_json1_1BatchGetQueryExecutionCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = deserializeAws_json1_1BatchGetQueryExecutionOutput(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return Promise.resolve(response);\n};\nexports.deserializeAws_json1_1BatchGetQueryExecutionCommand = deserializeAws_json1_1BatchGetQueryExecutionCommand;\nconst deserializeAws_json1_1BatchGetQueryExecutionCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"InternalServerException\":\n case \"com.amazonaws.athena#InternalServerException\":\n throw await deserializeAws_json1_1InternalServerExceptionResponse(parsedOutput, context);\n case \"InvalidRequestException\":\n case \"com.amazonaws.athena#InvalidRequestException\":\n throw await deserializeAws_json1_1InvalidRequestExceptionResponse(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody,\n exceptionCtor: AthenaServiceException_1.AthenaServiceException,\n errorCode,\n });\n }\n};\nconst deserializeAws_json1_1CreateDataCatalogCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return deserializeAws_json1_1CreateDataCatalogCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = deserializeAws_json1_1CreateDataCatalogOutput(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return Promise.resolve(response);\n};\nexports.deserializeAws_json1_1CreateDataCatalogCommand = deserializeAws_json1_1CreateDataCatalogCommand;\nconst deserializeAws_json1_1CreateDataCatalogCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"InternalServerException\":\n case \"com.amazonaws.athena#InternalServerException\":\n throw await deserializeAws_json1_1InternalServerExceptionResponse(parsedOutput, context);\n case \"InvalidRequestException\":\n case \"com.amazonaws.athena#InvalidRequestException\":\n throw await deserializeAws_json1_1InvalidRequestExceptionResponse(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody,\n exceptionCtor: AthenaServiceException_1.AthenaServiceException,\n errorCode,\n });\n }\n};\nconst deserializeAws_json1_1CreateNamedQueryCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return deserializeAws_json1_1CreateNamedQueryCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = deserializeAws_json1_1CreateNamedQueryOutput(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return Promise.resolve(response);\n};\nexports.deserializeAws_json1_1CreateNamedQueryCommand = deserializeAws_json1_1CreateNamedQueryCommand;\nconst deserializeAws_json1_1CreateNamedQueryCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"InternalServerException\":\n case \"com.amazonaws.athena#InternalServerException\":\n throw await deserializeAws_json1_1InternalServerExceptionResponse(parsedOutput, context);\n case \"InvalidRequestException\":\n case \"com.amazonaws.athena#InvalidRequestException\":\n throw await deserializeAws_json1_1InvalidRequestExceptionResponse(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody,\n exceptionCtor: AthenaServiceException_1.AthenaServiceException,\n errorCode,\n });\n }\n};\nconst deserializeAws_json1_1CreateNotebookCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return deserializeAws_json1_1CreateNotebookCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = deserializeAws_json1_1CreateNotebookOutput(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return Promise.resolve(response);\n};\nexports.deserializeAws_json1_1CreateNotebookCommand = deserializeAws_json1_1CreateNotebookCommand;\nconst deserializeAws_json1_1CreateNotebookCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"InternalServerException\":\n case \"com.amazonaws.athena#InternalServerException\":\n throw await deserializeAws_json1_1InternalServerExceptionResponse(parsedOutput, context);\n case \"InvalidRequestException\":\n case \"com.amazonaws.athena#InvalidRequestException\":\n throw await deserializeAws_json1_1InvalidRequestExceptionResponse(parsedOutput, context);\n case \"TooManyRequestsException\":\n case \"com.amazonaws.athena#TooManyRequestsException\":\n throw await deserializeAws_json1_1TooManyRequestsExceptionResponse(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody,\n exceptionCtor: AthenaServiceException_1.AthenaServiceException,\n errorCode,\n });\n }\n};\nconst deserializeAws_json1_1CreatePreparedStatementCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return deserializeAws_json1_1CreatePreparedStatementCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = deserializeAws_json1_1CreatePreparedStatementOutput(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return Promise.resolve(response);\n};\nexports.deserializeAws_json1_1CreatePreparedStatementCommand = deserializeAws_json1_1CreatePreparedStatementCommand;\nconst deserializeAws_json1_1CreatePreparedStatementCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"InternalServerException\":\n case \"com.amazonaws.athena#InternalServerException\":\n throw await deserializeAws_json1_1InternalServerExceptionResponse(parsedOutput, context);\n case \"InvalidRequestException\":\n case \"com.amazonaws.athena#InvalidRequestException\":\n throw await deserializeAws_json1_1InvalidRequestExceptionResponse(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody,\n exceptionCtor: AthenaServiceException_1.AthenaServiceException,\n errorCode,\n });\n }\n};\nconst deserializeAws_json1_1CreatePresignedNotebookUrlCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return deserializeAws_json1_1CreatePresignedNotebookUrlCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = deserializeAws_json1_1CreatePresignedNotebookUrlResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return Promise.resolve(response);\n};\nexports.deserializeAws_json1_1CreatePresignedNotebookUrlCommand = deserializeAws_json1_1CreatePresignedNotebookUrlCommand;\nconst deserializeAws_json1_1CreatePresignedNotebookUrlCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"InternalServerException\":\n case \"com.amazonaws.athena#InternalServerException\":\n throw await deserializeAws_json1_1InternalServerExceptionResponse(parsedOutput, context);\n case \"InvalidRequestException\":\n case \"com.amazonaws.athena#InvalidRequestException\":\n throw await deserializeAws_json1_1InvalidRequestExceptionResponse(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.athena#ResourceNotFoundException\":\n throw await deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody,\n exceptionCtor: AthenaServiceException_1.AthenaServiceException,\n errorCode,\n });\n }\n};\nconst deserializeAws_json1_1CreateWorkGroupCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return deserializeAws_json1_1CreateWorkGroupCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = deserializeAws_json1_1CreateWorkGroupOutput(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return Promise.resolve(response);\n};\nexports.deserializeAws_json1_1CreateWorkGroupCommand = deserializeAws_json1_1CreateWorkGroupCommand;\nconst deserializeAws_json1_1CreateWorkGroupCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"InternalServerException\":\n case \"com.amazonaws.athena#InternalServerException\":\n throw await deserializeAws_json1_1InternalServerExceptionResponse(parsedOutput, context);\n case \"InvalidRequestException\":\n case \"com.amazonaws.athena#InvalidRequestException\":\n throw await deserializeAws_json1_1InvalidRequestExceptionResponse(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody,\n exceptionCtor: AthenaServiceException_1.AthenaServiceException,\n errorCode,\n });\n }\n};\nconst deserializeAws_json1_1DeleteDataCatalogCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return deserializeAws_json1_1DeleteDataCatalogCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = deserializeAws_json1_1DeleteDataCatalogOutput(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return Promise.resolve(response);\n};\nexports.deserializeAws_json1_1DeleteDataCatalogCommand = deserializeAws_json1_1DeleteDataCatalogCommand;\nconst deserializeAws_json1_1DeleteDataCatalogCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"InternalServerException\":\n case \"com.amazonaws.athena#InternalServerException\":\n throw await deserializeAws_json1_1InternalServerExceptionResponse(parsedOutput, context);\n case \"InvalidRequestException\":\n case \"com.amazonaws.athena#InvalidRequestException\":\n throw await deserializeAws_json1_1InvalidRequestExceptionResponse(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody,\n exceptionCtor: AthenaServiceException_1.AthenaServiceException,\n errorCode,\n });\n }\n};\nconst deserializeAws_json1_1DeleteNamedQueryCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return deserializeAws_json1_1DeleteNamedQueryCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = deserializeAws_json1_1DeleteNamedQueryOutput(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return Promise.resolve(response);\n};\nexports.deserializeAws_json1_1DeleteNamedQueryCommand = deserializeAws_json1_1DeleteNamedQueryCommand;\nconst deserializeAws_json1_1DeleteNamedQueryCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"InternalServerException\":\n case \"com.amazonaws.athena#InternalServerException\":\n throw await deserializeAws_json1_1InternalServerExceptionResponse(parsedOutput, context);\n case \"InvalidRequestException\":\n case \"com.amazonaws.athena#InvalidRequestException\":\n throw await deserializeAws_json1_1InvalidRequestExceptionResponse(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody,\n exceptionCtor: AthenaServiceException_1.AthenaServiceException,\n errorCode,\n });\n }\n};\nconst deserializeAws_json1_1DeleteNotebookCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return deserializeAws_json1_1DeleteNotebookCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = deserializeAws_json1_1DeleteNotebookOutput(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return Promise.resolve(response);\n};\nexports.deserializeAws_json1_1DeleteNotebookCommand = deserializeAws_json1_1DeleteNotebookCommand;\nconst deserializeAws_json1_1DeleteNotebookCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"InternalServerException\":\n case \"com.amazonaws.athena#InternalServerException\":\n throw await deserializeAws_json1_1InternalServerExceptionResponse(parsedOutput, context);\n case \"InvalidRequestException\":\n case \"com.amazonaws.athena#InvalidRequestException\":\n throw await deserializeAws_json1_1InvalidRequestExceptionResponse(parsedOutput, context);\n case \"TooManyRequestsException\":\n case \"com.amazonaws.athena#TooManyRequestsException\":\n throw await deserializeAws_json1_1TooManyRequestsExceptionResponse(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody,\n exceptionCtor: AthenaServiceException_1.AthenaServiceException,\n errorCode,\n });\n }\n};\nconst deserializeAws_json1_1DeletePreparedStatementCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return deserializeAws_json1_1DeletePreparedStatementCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = deserializeAws_json1_1DeletePreparedStatementOutput(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return Promise.resolve(response);\n};\nexports.deserializeAws_json1_1DeletePreparedStatementCommand = deserializeAws_json1_1DeletePreparedStatementCommand;\nconst deserializeAws_json1_1DeletePreparedStatementCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"InternalServerException\":\n case \"com.amazonaws.athena#InternalServerException\":\n throw await deserializeAws_json1_1InternalServerExceptionResponse(parsedOutput, context);\n case \"InvalidRequestException\":\n case \"com.amazonaws.athena#InvalidRequestException\":\n throw await deserializeAws_json1_1InvalidRequestExceptionResponse(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.athena#ResourceNotFoundException\":\n throw await deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody,\n exceptionCtor: AthenaServiceException_1.AthenaServiceException,\n errorCode,\n });\n }\n};\nconst deserializeAws_json1_1DeleteWorkGroupCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return deserializeAws_json1_1DeleteWorkGroupCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = deserializeAws_json1_1DeleteWorkGroupOutput(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return Promise.resolve(response);\n};\nexports.deserializeAws_json1_1DeleteWorkGroupCommand = deserializeAws_json1_1DeleteWorkGroupCommand;\nconst deserializeAws_json1_1DeleteWorkGroupCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"InternalServerException\":\n case \"com.amazonaws.athena#InternalServerException\":\n throw await deserializeAws_json1_1InternalServerExceptionResponse(parsedOutput, context);\n case \"InvalidRequestException\":\n case \"com.amazonaws.athena#InvalidRequestException\":\n throw await deserializeAws_json1_1InvalidRequestExceptionResponse(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody,\n exceptionCtor: AthenaServiceException_1.AthenaServiceException,\n errorCode,\n });\n }\n};\nconst deserializeAws_json1_1ExportNotebookCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return deserializeAws_json1_1ExportNotebookCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = deserializeAws_json1_1ExportNotebookOutput(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return Promise.resolve(response);\n};\nexports.deserializeAws_json1_1ExportNotebookCommand = deserializeAws_json1_1ExportNotebookCommand;\nconst deserializeAws_json1_1ExportNotebookCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"InternalServerException\":\n case \"com.amazonaws.athena#InternalServerException\":\n throw await deserializeAws_json1_1InternalServerExceptionResponse(parsedOutput, context);\n case \"InvalidRequestException\":\n case \"com.amazonaws.athena#InvalidRequestException\":\n throw await deserializeAws_json1_1InvalidRequestExceptionResponse(parsedOutput, context);\n case \"TooManyRequestsException\":\n case \"com.amazonaws.athena#TooManyRequestsException\":\n throw await deserializeAws_json1_1TooManyRequestsExceptionResponse(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody,\n exceptionCtor: AthenaServiceException_1.AthenaServiceException,\n errorCode,\n });\n }\n};\nconst deserializeAws_json1_1GetCalculationExecutionCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return deserializeAws_json1_1GetCalculationExecutionCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = deserializeAws_json1_1GetCalculationExecutionResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return Promise.resolve(response);\n};\nexports.deserializeAws_json1_1GetCalculationExecutionCommand = deserializeAws_json1_1GetCalculationExecutionCommand;\nconst deserializeAws_json1_1GetCalculationExecutionCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"InternalServerException\":\n case \"com.amazonaws.athena#InternalServerException\":\n throw await deserializeAws_json1_1InternalServerExceptionResponse(parsedOutput, context);\n case \"InvalidRequestException\":\n case \"com.amazonaws.athena#InvalidRequestException\":\n throw await deserializeAws_json1_1InvalidRequestExceptionResponse(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.athena#ResourceNotFoundException\":\n throw await deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody,\n exceptionCtor: AthenaServiceException_1.AthenaServiceException,\n errorCode,\n });\n }\n};\nconst deserializeAws_json1_1GetCalculationExecutionCodeCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return deserializeAws_json1_1GetCalculationExecutionCodeCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = deserializeAws_json1_1GetCalculationExecutionCodeResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return Promise.resolve(response);\n};\nexports.deserializeAws_json1_1GetCalculationExecutionCodeCommand = deserializeAws_json1_1GetCalculationExecutionCodeCommand;\nconst deserializeAws_json1_1GetCalculationExecutionCodeCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"InternalServerException\":\n case \"com.amazonaws.athena#InternalServerException\":\n throw await deserializeAws_json1_1InternalServerExceptionResponse(parsedOutput, context);\n case \"InvalidRequestException\":\n case \"com.amazonaws.athena#InvalidRequestException\":\n throw await deserializeAws_json1_1InvalidRequestExceptionResponse(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.athena#ResourceNotFoundException\":\n throw await deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody,\n exceptionCtor: AthenaServiceException_1.AthenaServiceException,\n errorCode,\n });\n }\n};\nconst deserializeAws_json1_1GetCalculationExecutionStatusCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return deserializeAws_json1_1GetCalculationExecutionStatusCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = deserializeAws_json1_1GetCalculationExecutionStatusResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return Promise.resolve(response);\n};\nexports.deserializeAws_json1_1GetCalculationExecutionStatusCommand = deserializeAws_json1_1GetCalculationExecutionStatusCommand;\nconst deserializeAws_json1_1GetCalculationExecutionStatusCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"InternalServerException\":\n case \"com.amazonaws.athena#InternalServerException\":\n throw await deserializeAws_json1_1InternalServerExceptionResponse(parsedOutput, context);\n case \"InvalidRequestException\":\n case \"com.amazonaws.athena#InvalidRequestException\":\n throw await deserializeAws_json1_1InvalidRequestExceptionResponse(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.athena#ResourceNotFoundException\":\n throw await deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody,\n exceptionCtor: AthenaServiceException_1.AthenaServiceException,\n errorCode,\n });\n }\n};\nconst deserializeAws_json1_1GetDatabaseCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return deserializeAws_json1_1GetDatabaseCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = deserializeAws_json1_1GetDatabaseOutput(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return Promise.resolve(response);\n};\nexports.deserializeAws_json1_1GetDatabaseCommand = deserializeAws_json1_1GetDatabaseCommand;\nconst deserializeAws_json1_1GetDatabaseCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"InternalServerException\":\n case \"com.amazonaws.athena#InternalServerException\":\n throw await deserializeAws_json1_1InternalServerExceptionResponse(parsedOutput, context);\n case \"InvalidRequestException\":\n case \"com.amazonaws.athena#InvalidRequestException\":\n throw await deserializeAws_json1_1InvalidRequestExceptionResponse(parsedOutput, context);\n case \"MetadataException\":\n case \"com.amazonaws.athena#MetadataException\":\n throw await deserializeAws_json1_1MetadataExceptionResponse(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody,\n exceptionCtor: AthenaServiceException_1.AthenaServiceException,\n errorCode,\n });\n }\n};\nconst deserializeAws_json1_1GetDataCatalogCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return deserializeAws_json1_1GetDataCatalogCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = deserializeAws_json1_1GetDataCatalogOutput(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return Promise.resolve(response);\n};\nexports.deserializeAws_json1_1GetDataCatalogCommand = deserializeAws_json1_1GetDataCatalogCommand;\nconst deserializeAws_json1_1GetDataCatalogCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"InternalServerException\":\n case \"com.amazonaws.athena#InternalServerException\":\n throw await deserializeAws_json1_1InternalServerExceptionResponse(parsedOutput, context);\n case \"InvalidRequestException\":\n case \"com.amazonaws.athena#InvalidRequestException\":\n throw await deserializeAws_json1_1InvalidRequestExceptionResponse(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody,\n exceptionCtor: AthenaServiceException_1.AthenaServiceException,\n errorCode,\n });\n }\n};\nconst deserializeAws_json1_1GetNamedQueryCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return deserializeAws_json1_1GetNamedQueryCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = deserializeAws_json1_1GetNamedQueryOutput(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return Promise.resolve(response);\n};\nexports.deserializeAws_json1_1GetNamedQueryCommand = deserializeAws_json1_1GetNamedQueryCommand;\nconst deserializeAws_json1_1GetNamedQueryCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"InternalServerException\":\n case \"com.amazonaws.athena#InternalServerException\":\n throw await deserializeAws_json1_1InternalServerExceptionResponse(parsedOutput, context);\n case \"InvalidRequestException\":\n case \"com.amazonaws.athena#InvalidRequestException\":\n throw await deserializeAws_json1_1InvalidRequestExceptionResponse(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody,\n exceptionCtor: AthenaServiceException_1.AthenaServiceException,\n errorCode,\n });\n }\n};\nconst deserializeAws_json1_1GetNotebookMetadataCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return deserializeAws_json1_1GetNotebookMetadataCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = deserializeAws_json1_1GetNotebookMetadataOutput(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return Promise.resolve(response);\n};\nexports.deserializeAws_json1_1GetNotebookMetadataCommand = deserializeAws_json1_1GetNotebookMetadataCommand;\nconst deserializeAws_json1_1GetNotebookMetadataCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"InternalServerException\":\n case \"com.amazonaws.athena#InternalServerException\":\n throw await deserializeAws_json1_1InternalServerExceptionResponse(parsedOutput, context);\n case \"InvalidRequestException\":\n case \"com.amazonaws.athena#InvalidRequestException\":\n throw await deserializeAws_json1_1InvalidRequestExceptionResponse(parsedOutput, context);\n case \"TooManyRequestsException\":\n case \"com.amazonaws.athena#TooManyRequestsException\":\n throw await deserializeAws_json1_1TooManyRequestsExceptionResponse(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody,\n exceptionCtor: AthenaServiceException_1.AthenaServiceException,\n errorCode,\n });\n }\n};\nconst deserializeAws_json1_1GetPreparedStatementCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return deserializeAws_json1_1GetPreparedStatementCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = deserializeAws_json1_1GetPreparedStatementOutput(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return Promise.resolve(response);\n};\nexports.deserializeAws_json1_1GetPreparedStatementCommand = deserializeAws_json1_1GetPreparedStatementCommand;\nconst deserializeAws_json1_1GetPreparedStatementCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"InternalServerException\":\n case \"com.amazonaws.athena#InternalServerException\":\n throw await deserializeAws_json1_1InternalServerExceptionResponse(parsedOutput, context);\n case \"InvalidRequestException\":\n case \"com.amazonaws.athena#InvalidRequestException\":\n throw await deserializeAws_json1_1InvalidRequestExceptionResponse(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.athena#ResourceNotFoundException\":\n throw await deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody,\n exceptionCtor: AthenaServiceException_1.AthenaServiceException,\n errorCode,\n });\n }\n};\nconst deserializeAws_json1_1GetQueryExecutionCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return deserializeAws_json1_1GetQueryExecutionCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = deserializeAws_json1_1GetQueryExecutionOutput(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return Promise.resolve(response);\n};\nexports.deserializeAws_json1_1GetQueryExecutionCommand = deserializeAws_json1_1GetQueryExecutionCommand;\nconst deserializeAws_json1_1GetQueryExecutionCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"InternalServerException\":\n case \"com.amazonaws.athena#InternalServerException\":\n throw await deserializeAws_json1_1InternalServerExceptionResponse(parsedOutput, context);\n case \"InvalidRequestException\":\n case \"com.amazonaws.athena#InvalidRequestException\":\n throw await deserializeAws_json1_1InvalidRequestExceptionResponse(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody,\n exceptionCtor: AthenaServiceException_1.AthenaServiceException,\n errorCode,\n });\n }\n};\nconst deserializeAws_json1_1GetQueryResultsCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return deserializeAws_json1_1GetQueryResultsCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = deserializeAws_json1_1GetQueryResultsOutput(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return Promise.resolve(response);\n};\nexports.deserializeAws_json1_1GetQueryResultsCommand = deserializeAws_json1_1GetQueryResultsCommand;\nconst deserializeAws_json1_1GetQueryResultsCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"InternalServerException\":\n case \"com.amazonaws.athena#InternalServerException\":\n throw await deserializeAws_json1_1InternalServerExceptionResponse(parsedOutput, context);\n case \"InvalidRequestException\":\n case \"com.amazonaws.athena#InvalidRequestException\":\n throw await deserializeAws_json1_1InvalidRequestExceptionResponse(parsedOutput, context);\n case \"TooManyRequestsException\":\n case \"com.amazonaws.athena#TooManyRequestsException\":\n throw await deserializeAws_json1_1TooManyRequestsExceptionResponse(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody,\n exceptionCtor: AthenaServiceException_1.AthenaServiceException,\n errorCode,\n });\n }\n};\nconst deserializeAws_json1_1GetQueryRuntimeStatisticsCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return deserializeAws_json1_1GetQueryRuntimeStatisticsCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = deserializeAws_json1_1GetQueryRuntimeStatisticsOutput(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return Promise.resolve(response);\n};\nexports.deserializeAws_json1_1GetQueryRuntimeStatisticsCommand = deserializeAws_json1_1GetQueryRuntimeStatisticsCommand;\nconst deserializeAws_json1_1GetQueryRuntimeStatisticsCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"InternalServerException\":\n case \"com.amazonaws.athena#InternalServerException\":\n throw await deserializeAws_json1_1InternalServerExceptionResponse(parsedOutput, context);\n case \"InvalidRequestException\":\n case \"com.amazonaws.athena#InvalidRequestException\":\n throw await deserializeAws_json1_1InvalidRequestExceptionResponse(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody,\n exceptionCtor: AthenaServiceException_1.AthenaServiceException,\n errorCode,\n });\n }\n};\nconst deserializeAws_json1_1GetSessionCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return deserializeAws_json1_1GetSessionCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = deserializeAws_json1_1GetSessionResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return Promise.resolve(response);\n};\nexports.deserializeAws_json1_1GetSessionCommand = deserializeAws_json1_1GetSessionCommand;\nconst deserializeAws_json1_1GetSessionCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"InternalServerException\":\n case \"com.amazonaws.athena#InternalServerException\":\n throw await deserializeAws_json1_1InternalServerExceptionResponse(parsedOutput, context);\n case \"InvalidRequestException\":\n case \"com.amazonaws.athena#InvalidRequestException\":\n throw await deserializeAws_json1_1InvalidRequestExceptionResponse(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.athena#ResourceNotFoundException\":\n throw await deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody,\n exceptionCtor: AthenaServiceException_1.AthenaServiceException,\n errorCode,\n });\n }\n};\nconst deserializeAws_json1_1GetSessionStatusCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return deserializeAws_json1_1GetSessionStatusCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = deserializeAws_json1_1GetSessionStatusResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return Promise.resolve(response);\n};\nexports.deserializeAws_json1_1GetSessionStatusCommand = deserializeAws_json1_1GetSessionStatusCommand;\nconst deserializeAws_json1_1GetSessionStatusCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"InternalServerException\":\n case \"com.amazonaws.athena#InternalServerException\":\n throw await deserializeAws_json1_1InternalServerExceptionResponse(parsedOutput, context);\n case \"InvalidRequestException\":\n case \"com.amazonaws.athena#InvalidRequestException\":\n throw await deserializeAws_json1_1InvalidRequestExceptionResponse(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.athena#ResourceNotFoundException\":\n throw await deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody,\n exceptionCtor: AthenaServiceException_1.AthenaServiceException,\n errorCode,\n });\n }\n};\nconst deserializeAws_json1_1GetTableMetadataCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return deserializeAws_json1_1GetTableMetadataCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = deserializeAws_json1_1GetTableMetadataOutput(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return Promise.resolve(response);\n};\nexports.deserializeAws_json1_1GetTableMetadataCommand = deserializeAws_json1_1GetTableMetadataCommand;\nconst deserializeAws_json1_1GetTableMetadataCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"InternalServerException\":\n case \"com.amazonaws.athena#InternalServerException\":\n throw await deserializeAws_json1_1InternalServerExceptionResponse(parsedOutput, context);\n case \"InvalidRequestException\":\n case \"com.amazonaws.athena#InvalidRequestException\":\n throw await deserializeAws_json1_1InvalidRequestExceptionResponse(parsedOutput, context);\n case \"MetadataException\":\n case \"com.amazonaws.athena#MetadataException\":\n throw await deserializeAws_json1_1MetadataExceptionResponse(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody,\n exceptionCtor: AthenaServiceException_1.AthenaServiceException,\n errorCode,\n });\n }\n};\nconst deserializeAws_json1_1GetWorkGroupCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return deserializeAws_json1_1GetWorkGroupCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = deserializeAws_json1_1GetWorkGroupOutput(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return Promise.resolve(response);\n};\nexports.deserializeAws_json1_1GetWorkGroupCommand = deserializeAws_json1_1GetWorkGroupCommand;\nconst deserializeAws_json1_1GetWorkGroupCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"InternalServerException\":\n case \"com.amazonaws.athena#InternalServerException\":\n throw await deserializeAws_json1_1InternalServerExceptionResponse(parsedOutput, context);\n case \"InvalidRequestException\":\n case \"com.amazonaws.athena#InvalidRequestException\":\n throw await deserializeAws_json1_1InvalidRequestExceptionResponse(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody,\n exceptionCtor: AthenaServiceException_1.AthenaServiceException,\n errorCode,\n });\n }\n};\nconst deserializeAws_json1_1ImportNotebookCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return deserializeAws_json1_1ImportNotebookCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = deserializeAws_json1_1ImportNotebookOutput(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return Promise.resolve(response);\n};\nexports.deserializeAws_json1_1ImportNotebookCommand = deserializeAws_json1_1ImportNotebookCommand;\nconst deserializeAws_json1_1ImportNotebookCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"InternalServerException\":\n case \"com.amazonaws.athena#InternalServerException\":\n throw await deserializeAws_json1_1InternalServerExceptionResponse(parsedOutput, context);\n case \"InvalidRequestException\":\n case \"com.amazonaws.athena#InvalidRequestException\":\n throw await deserializeAws_json1_1InvalidRequestExceptionResponse(parsedOutput, context);\n case \"TooManyRequestsException\":\n case \"com.amazonaws.athena#TooManyRequestsException\":\n throw await deserializeAws_json1_1TooManyRequestsExceptionResponse(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody,\n exceptionCtor: AthenaServiceException_1.AthenaServiceException,\n errorCode,\n });\n }\n};\nconst deserializeAws_json1_1ListApplicationDPUSizesCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return deserializeAws_json1_1ListApplicationDPUSizesCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = deserializeAws_json1_1ListApplicationDPUSizesOutput(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return Promise.resolve(response);\n};\nexports.deserializeAws_json1_1ListApplicationDPUSizesCommand = deserializeAws_json1_1ListApplicationDPUSizesCommand;\nconst deserializeAws_json1_1ListApplicationDPUSizesCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"InternalServerException\":\n case \"com.amazonaws.athena#InternalServerException\":\n throw await deserializeAws_json1_1InternalServerExceptionResponse(parsedOutput, context);\n case \"InvalidRequestException\":\n case \"com.amazonaws.athena#InvalidRequestException\":\n throw await deserializeAws_json1_1InvalidRequestExceptionResponse(parsedOutput, context);\n case \"TooManyRequestsException\":\n case \"com.amazonaws.athena#TooManyRequestsException\":\n throw await deserializeAws_json1_1TooManyRequestsExceptionResponse(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody,\n exceptionCtor: AthenaServiceException_1.AthenaServiceException,\n errorCode,\n });\n }\n};\nconst deserializeAws_json1_1ListCalculationExecutionsCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return deserializeAws_json1_1ListCalculationExecutionsCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = deserializeAws_json1_1ListCalculationExecutionsResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return Promise.resolve(response);\n};\nexports.deserializeAws_json1_1ListCalculationExecutionsCommand = deserializeAws_json1_1ListCalculationExecutionsCommand;\nconst deserializeAws_json1_1ListCalculationExecutionsCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"InternalServerException\":\n case \"com.amazonaws.athena#InternalServerException\":\n throw await deserializeAws_json1_1InternalServerExceptionResponse(parsedOutput, context);\n case \"InvalidRequestException\":\n case \"com.amazonaws.athena#InvalidRequestException\":\n throw await deserializeAws_json1_1InvalidRequestExceptionResponse(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.athena#ResourceNotFoundException\":\n throw await deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody,\n exceptionCtor: AthenaServiceException_1.AthenaServiceException,\n errorCode,\n });\n }\n};\nconst deserializeAws_json1_1ListDatabasesCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return deserializeAws_json1_1ListDatabasesCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = deserializeAws_json1_1ListDatabasesOutput(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return Promise.resolve(response);\n};\nexports.deserializeAws_json1_1ListDatabasesCommand = deserializeAws_json1_1ListDatabasesCommand;\nconst deserializeAws_json1_1ListDatabasesCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"InternalServerException\":\n case \"com.amazonaws.athena#InternalServerException\":\n throw await deserializeAws_json1_1InternalServerExceptionResponse(parsedOutput, context);\n case \"InvalidRequestException\":\n case \"com.amazonaws.athena#InvalidRequestException\":\n throw await deserializeAws_json1_1InvalidRequestExceptionResponse(parsedOutput, context);\n case \"MetadataException\":\n case \"com.amazonaws.athena#MetadataException\":\n throw await deserializeAws_json1_1MetadataExceptionResponse(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody,\n exceptionCtor: AthenaServiceException_1.AthenaServiceException,\n errorCode,\n });\n }\n};\nconst deserializeAws_json1_1ListDataCatalogsCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return deserializeAws_json1_1ListDataCatalogsCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = deserializeAws_json1_1ListDataCatalogsOutput(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return Promise.resolve(response);\n};\nexports.deserializeAws_json1_1ListDataCatalogsCommand = deserializeAws_json1_1ListDataCatalogsCommand;\nconst deserializeAws_json1_1ListDataCatalogsCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"InternalServerException\":\n case \"com.amazonaws.athena#InternalServerException\":\n throw await deserializeAws_json1_1InternalServerExceptionResponse(parsedOutput, context);\n case \"InvalidRequestException\":\n case \"com.amazonaws.athena#InvalidRequestException\":\n throw await deserializeAws_json1_1InvalidRequestExceptionResponse(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody,\n exceptionCtor: AthenaServiceException_1.AthenaServiceException,\n errorCode,\n });\n }\n};\nconst deserializeAws_json1_1ListEngineVersionsCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return deserializeAws_json1_1ListEngineVersionsCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = deserializeAws_json1_1ListEngineVersionsOutput(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return Promise.resolve(response);\n};\nexports.deserializeAws_json1_1ListEngineVersionsCommand = deserializeAws_json1_1ListEngineVersionsCommand;\nconst deserializeAws_json1_1ListEngineVersionsCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"InternalServerException\":\n case \"com.amazonaws.athena#InternalServerException\":\n throw await deserializeAws_json1_1InternalServerExceptionResponse(parsedOutput, context);\n case \"InvalidRequestException\":\n case \"com.amazonaws.athena#InvalidRequestException\":\n throw await deserializeAws_json1_1InvalidRequestExceptionResponse(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody,\n exceptionCtor: AthenaServiceException_1.AthenaServiceException,\n errorCode,\n });\n }\n};\nconst deserializeAws_json1_1ListExecutorsCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return deserializeAws_json1_1ListExecutorsCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = deserializeAws_json1_1ListExecutorsResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return Promise.resolve(response);\n};\nexports.deserializeAws_json1_1ListExecutorsCommand = deserializeAws_json1_1ListExecutorsCommand;\nconst deserializeAws_json1_1ListExecutorsCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"InternalServerException\":\n case \"com.amazonaws.athena#InternalServerException\":\n throw await deserializeAws_json1_1InternalServerExceptionResponse(parsedOutput, context);\n case \"InvalidRequestException\":\n case \"com.amazonaws.athena#InvalidRequestException\":\n throw await deserializeAws_json1_1InvalidRequestExceptionResponse(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.athena#ResourceNotFoundException\":\n throw await deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody,\n exceptionCtor: AthenaServiceException_1.AthenaServiceException,\n errorCode,\n });\n }\n};\nconst deserializeAws_json1_1ListNamedQueriesCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return deserializeAws_json1_1ListNamedQueriesCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = deserializeAws_json1_1ListNamedQueriesOutput(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return Promise.resolve(response);\n};\nexports.deserializeAws_json1_1ListNamedQueriesCommand = deserializeAws_json1_1ListNamedQueriesCommand;\nconst deserializeAws_json1_1ListNamedQueriesCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"InternalServerException\":\n case \"com.amazonaws.athena#InternalServerException\":\n throw await deserializeAws_json1_1InternalServerExceptionResponse(parsedOutput, context);\n case \"InvalidRequestException\":\n case \"com.amazonaws.athena#InvalidRequestException\":\n throw await deserializeAws_json1_1InvalidRequestExceptionResponse(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody,\n exceptionCtor: AthenaServiceException_1.AthenaServiceException,\n errorCode,\n });\n }\n};\nconst deserializeAws_json1_1ListNotebookMetadataCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return deserializeAws_json1_1ListNotebookMetadataCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = deserializeAws_json1_1ListNotebookMetadataOutput(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return Promise.resolve(response);\n};\nexports.deserializeAws_json1_1ListNotebookMetadataCommand = deserializeAws_json1_1ListNotebookMetadataCommand;\nconst deserializeAws_json1_1ListNotebookMetadataCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"InternalServerException\":\n case \"com.amazonaws.athena#InternalServerException\":\n throw await deserializeAws_json1_1InternalServerExceptionResponse(parsedOutput, context);\n case \"InvalidRequestException\":\n case \"com.amazonaws.athena#InvalidRequestException\":\n throw await deserializeAws_json1_1InvalidRequestExceptionResponse(parsedOutput, context);\n case \"TooManyRequestsException\":\n case \"com.amazonaws.athena#TooManyRequestsException\":\n throw await deserializeAws_json1_1TooManyRequestsExceptionResponse(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody,\n exceptionCtor: AthenaServiceException_1.AthenaServiceException,\n errorCode,\n });\n }\n};\nconst deserializeAws_json1_1ListNotebookSessionsCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return deserializeAws_json1_1ListNotebookSessionsCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = deserializeAws_json1_1ListNotebookSessionsResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return Promise.resolve(response);\n};\nexports.deserializeAws_json1_1ListNotebookSessionsCommand = deserializeAws_json1_1ListNotebookSessionsCommand;\nconst deserializeAws_json1_1ListNotebookSessionsCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"InternalServerException\":\n case \"com.amazonaws.athena#InternalServerException\":\n throw await deserializeAws_json1_1InternalServerExceptionResponse(parsedOutput, context);\n case \"InvalidRequestException\":\n case \"com.amazonaws.athena#InvalidRequestException\":\n throw await deserializeAws_json1_1InvalidRequestExceptionResponse(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.athena#ResourceNotFoundException\":\n throw await deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody,\n exceptionCtor: AthenaServiceException_1.AthenaServiceException,\n errorCode,\n });\n }\n};\nconst deserializeAws_json1_1ListPreparedStatementsCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return deserializeAws_json1_1ListPreparedStatementsCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = deserializeAws_json1_1ListPreparedStatementsOutput(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return Promise.resolve(response);\n};\nexports.deserializeAws_json1_1ListPreparedStatementsCommand = deserializeAws_json1_1ListPreparedStatementsCommand;\nconst deserializeAws_json1_1ListPreparedStatementsCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"InternalServerException\":\n case \"com.amazonaws.athena#InternalServerException\":\n throw await deserializeAws_json1_1InternalServerExceptionResponse(parsedOutput, context);\n case \"InvalidRequestException\":\n case \"com.amazonaws.athena#InvalidRequestException\":\n throw await deserializeAws_json1_1InvalidRequestExceptionResponse(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody,\n exceptionCtor: AthenaServiceException_1.AthenaServiceException,\n errorCode,\n });\n }\n};\nconst deserializeAws_json1_1ListQueryExecutionsCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return deserializeAws_json1_1ListQueryExecutionsCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = deserializeAws_json1_1ListQueryExecutionsOutput(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return Promise.resolve(response);\n};\nexports.deserializeAws_json1_1ListQueryExecutionsCommand = deserializeAws_json1_1ListQueryExecutionsCommand;\nconst deserializeAws_json1_1ListQueryExecutionsCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"InternalServerException\":\n case \"com.amazonaws.athena#InternalServerException\":\n throw await deserializeAws_json1_1InternalServerExceptionResponse(parsedOutput, context);\n case \"InvalidRequestException\":\n case \"com.amazonaws.athena#InvalidRequestException\":\n throw await deserializeAws_json1_1InvalidRequestExceptionResponse(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody,\n exceptionCtor: AthenaServiceException_1.AthenaServiceException,\n errorCode,\n });\n }\n};\nconst deserializeAws_json1_1ListSessionsCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return deserializeAws_json1_1ListSessionsCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = deserializeAws_json1_1ListSessionsResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return Promise.resolve(response);\n};\nexports.deserializeAws_json1_1ListSessionsCommand = deserializeAws_json1_1ListSessionsCommand;\nconst deserializeAws_json1_1ListSessionsCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"InternalServerException\":\n case \"com.amazonaws.athena#InternalServerException\":\n throw await deserializeAws_json1_1InternalServerExceptionResponse(parsedOutput, context);\n case \"InvalidRequestException\":\n case \"com.amazonaws.athena#InvalidRequestException\":\n throw await deserializeAws_json1_1InvalidRequestExceptionResponse(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.athena#ResourceNotFoundException\":\n throw await deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody,\n exceptionCtor: AthenaServiceException_1.AthenaServiceException,\n errorCode,\n });\n }\n};\nconst deserializeAws_json1_1ListTableMetadataCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return deserializeAws_json1_1ListTableMetadataCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = deserializeAws_json1_1ListTableMetadataOutput(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return Promise.resolve(response);\n};\nexports.deserializeAws_json1_1ListTableMetadataCommand = deserializeAws_json1_1ListTableMetadataCommand;\nconst deserializeAws_json1_1ListTableMetadataCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"InternalServerException\":\n case \"com.amazonaws.athena#InternalServerException\":\n throw await deserializeAws_json1_1InternalServerExceptionResponse(parsedOutput, context);\n case \"InvalidRequestException\":\n case \"com.amazonaws.athena#InvalidRequestException\":\n throw await deserializeAws_json1_1InvalidRequestExceptionResponse(parsedOutput, context);\n case \"MetadataException\":\n case \"com.amazonaws.athena#MetadataException\":\n throw await deserializeAws_json1_1MetadataExceptionResponse(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody,\n exceptionCtor: AthenaServiceException_1.AthenaServiceException,\n errorCode,\n });\n }\n};\nconst deserializeAws_json1_1ListTagsForResourceCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return deserializeAws_json1_1ListTagsForResourceCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = deserializeAws_json1_1ListTagsForResourceOutput(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return Promise.resolve(response);\n};\nexports.deserializeAws_json1_1ListTagsForResourceCommand = deserializeAws_json1_1ListTagsForResourceCommand;\nconst deserializeAws_json1_1ListTagsForResourceCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"InternalServerException\":\n case \"com.amazonaws.athena#InternalServerException\":\n throw await deserializeAws_json1_1InternalServerExceptionResponse(parsedOutput, context);\n case \"InvalidRequestException\":\n case \"com.amazonaws.athena#InvalidRequestException\":\n throw await deserializeAws_json1_1InvalidRequestExceptionResponse(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.athena#ResourceNotFoundException\":\n throw await deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody,\n exceptionCtor: AthenaServiceException_1.AthenaServiceException,\n errorCode,\n });\n }\n};\nconst deserializeAws_json1_1ListWorkGroupsCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return deserializeAws_json1_1ListWorkGroupsCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = deserializeAws_json1_1ListWorkGroupsOutput(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return Promise.resolve(response);\n};\nexports.deserializeAws_json1_1ListWorkGroupsCommand = deserializeAws_json1_1ListWorkGroupsCommand;\nconst deserializeAws_json1_1ListWorkGroupsCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"InternalServerException\":\n case \"com.amazonaws.athena#InternalServerException\":\n throw await deserializeAws_json1_1InternalServerExceptionResponse(parsedOutput, context);\n case \"InvalidRequestException\":\n case \"com.amazonaws.athena#InvalidRequestException\":\n throw await deserializeAws_json1_1InvalidRequestExceptionResponse(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody,\n exceptionCtor: AthenaServiceException_1.AthenaServiceException,\n errorCode,\n });\n }\n};\nconst deserializeAws_json1_1StartCalculationExecutionCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return deserializeAws_json1_1StartCalculationExecutionCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = deserializeAws_json1_1StartCalculationExecutionResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return Promise.resolve(response);\n};\nexports.deserializeAws_json1_1StartCalculationExecutionCommand = deserializeAws_json1_1StartCalculationExecutionCommand;\nconst deserializeAws_json1_1StartCalculationExecutionCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"InternalServerException\":\n case \"com.amazonaws.athena#InternalServerException\":\n throw await deserializeAws_json1_1InternalServerExceptionResponse(parsedOutput, context);\n case \"InvalidRequestException\":\n case \"com.amazonaws.athena#InvalidRequestException\":\n throw await deserializeAws_json1_1InvalidRequestExceptionResponse(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.athena#ResourceNotFoundException\":\n throw await deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody,\n exceptionCtor: AthenaServiceException_1.AthenaServiceException,\n errorCode,\n });\n }\n};\nconst deserializeAws_json1_1StartQueryExecutionCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return deserializeAws_json1_1StartQueryExecutionCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = deserializeAws_json1_1StartQueryExecutionOutput(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return Promise.resolve(response);\n};\nexports.deserializeAws_json1_1StartQueryExecutionCommand = deserializeAws_json1_1StartQueryExecutionCommand;\nconst deserializeAws_json1_1StartQueryExecutionCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"InternalServerException\":\n case \"com.amazonaws.athena#InternalServerException\":\n throw await deserializeAws_json1_1InternalServerExceptionResponse(parsedOutput, context);\n case \"InvalidRequestException\":\n case \"com.amazonaws.athena#InvalidRequestException\":\n throw await deserializeAws_json1_1InvalidRequestExceptionResponse(parsedOutput, context);\n case \"TooManyRequestsException\":\n case \"com.amazonaws.athena#TooManyRequestsException\":\n throw await deserializeAws_json1_1TooManyRequestsExceptionResponse(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody,\n exceptionCtor: AthenaServiceException_1.AthenaServiceException,\n errorCode,\n });\n }\n};\nconst deserializeAws_json1_1StartSessionCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return deserializeAws_json1_1StartSessionCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = deserializeAws_json1_1StartSessionResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return Promise.resolve(response);\n};\nexports.deserializeAws_json1_1StartSessionCommand = deserializeAws_json1_1StartSessionCommand;\nconst deserializeAws_json1_1StartSessionCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"InternalServerException\":\n case \"com.amazonaws.athena#InternalServerException\":\n throw await deserializeAws_json1_1InternalServerExceptionResponse(parsedOutput, context);\n case \"InvalidRequestException\":\n case \"com.amazonaws.athena#InvalidRequestException\":\n throw await deserializeAws_json1_1InvalidRequestExceptionResponse(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.athena#ResourceNotFoundException\":\n throw await deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context);\n case \"SessionAlreadyExistsException\":\n case \"com.amazonaws.athena#SessionAlreadyExistsException\":\n throw await deserializeAws_json1_1SessionAlreadyExistsExceptionResponse(parsedOutput, context);\n case \"TooManyRequestsException\":\n case \"com.amazonaws.athena#TooManyRequestsException\":\n throw await deserializeAws_json1_1TooManyRequestsExceptionResponse(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody,\n exceptionCtor: AthenaServiceException_1.AthenaServiceException,\n errorCode,\n });\n }\n};\nconst deserializeAws_json1_1StopCalculationExecutionCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return deserializeAws_json1_1StopCalculationExecutionCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = deserializeAws_json1_1StopCalculationExecutionResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return Promise.resolve(response);\n};\nexports.deserializeAws_json1_1StopCalculationExecutionCommand = deserializeAws_json1_1StopCalculationExecutionCommand;\nconst deserializeAws_json1_1StopCalculationExecutionCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"InternalServerException\":\n case \"com.amazonaws.athena#InternalServerException\":\n throw await deserializeAws_json1_1InternalServerExceptionResponse(parsedOutput, context);\n case \"InvalidRequestException\":\n case \"com.amazonaws.athena#InvalidRequestException\":\n throw await deserializeAws_json1_1InvalidRequestExceptionResponse(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.athena#ResourceNotFoundException\":\n throw await deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody,\n exceptionCtor: AthenaServiceException_1.AthenaServiceException,\n errorCode,\n });\n }\n};\nconst deserializeAws_json1_1StopQueryExecutionCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return deserializeAws_json1_1StopQueryExecutionCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = deserializeAws_json1_1StopQueryExecutionOutput(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return Promise.resolve(response);\n};\nexports.deserializeAws_json1_1StopQueryExecutionCommand = deserializeAws_json1_1StopQueryExecutionCommand;\nconst deserializeAws_json1_1StopQueryExecutionCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"InternalServerException\":\n case \"com.amazonaws.athena#InternalServerException\":\n throw await deserializeAws_json1_1InternalServerExceptionResponse(parsedOutput, context);\n case \"InvalidRequestException\":\n case \"com.amazonaws.athena#InvalidRequestException\":\n throw await deserializeAws_json1_1InvalidRequestExceptionResponse(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody,\n exceptionCtor: AthenaServiceException_1.AthenaServiceException,\n errorCode,\n });\n }\n};\nconst deserializeAws_json1_1TagResourceCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return deserializeAws_json1_1TagResourceCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = deserializeAws_json1_1TagResourceOutput(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return Promise.resolve(response);\n};\nexports.deserializeAws_json1_1TagResourceCommand = deserializeAws_json1_1TagResourceCommand;\nconst deserializeAws_json1_1TagResourceCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"InternalServerException\":\n case \"com.amazonaws.athena#InternalServerException\":\n throw await deserializeAws_json1_1InternalServerExceptionResponse(parsedOutput, context);\n case \"InvalidRequestException\":\n case \"com.amazonaws.athena#InvalidRequestException\":\n throw await deserializeAws_json1_1InvalidRequestExceptionResponse(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.athena#ResourceNotFoundException\":\n throw await deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody,\n exceptionCtor: AthenaServiceException_1.AthenaServiceException,\n errorCode,\n });\n }\n};\nconst deserializeAws_json1_1TerminateSessionCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return deserializeAws_json1_1TerminateSessionCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = deserializeAws_json1_1TerminateSessionResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return Promise.resolve(response);\n};\nexports.deserializeAws_json1_1TerminateSessionCommand = deserializeAws_json1_1TerminateSessionCommand;\nconst deserializeAws_json1_1TerminateSessionCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"InternalServerException\":\n case \"com.amazonaws.athena#InternalServerException\":\n throw await deserializeAws_json1_1InternalServerExceptionResponse(parsedOutput, context);\n case \"InvalidRequestException\":\n case \"com.amazonaws.athena#InvalidRequestException\":\n throw await deserializeAws_json1_1InvalidRequestExceptionResponse(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.athena#ResourceNotFoundException\":\n throw await deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody,\n exceptionCtor: AthenaServiceException_1.AthenaServiceException,\n errorCode,\n });\n }\n};\nconst deserializeAws_json1_1UntagResourceCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return deserializeAws_json1_1UntagResourceCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = deserializeAws_json1_1UntagResourceOutput(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return Promise.resolve(response);\n};\nexports.deserializeAws_json1_1UntagResourceCommand = deserializeAws_json1_1UntagResourceCommand;\nconst deserializeAws_json1_1UntagResourceCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"InternalServerException\":\n case \"com.amazonaws.athena#InternalServerException\":\n throw await deserializeAws_json1_1InternalServerExceptionResponse(parsedOutput, context);\n case \"InvalidRequestException\":\n case \"com.amazonaws.athena#InvalidRequestException\":\n throw await deserializeAws_json1_1InvalidRequestExceptionResponse(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.athena#ResourceNotFoundException\":\n throw await deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody,\n exceptionCtor: AthenaServiceException_1.AthenaServiceException,\n errorCode,\n });\n }\n};\nconst deserializeAws_json1_1UpdateDataCatalogCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return deserializeAws_json1_1UpdateDataCatalogCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = deserializeAws_json1_1UpdateDataCatalogOutput(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return Promise.resolve(response);\n};\nexports.deserializeAws_json1_1UpdateDataCatalogCommand = deserializeAws_json1_1UpdateDataCatalogCommand;\nconst deserializeAws_json1_1UpdateDataCatalogCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"InternalServerException\":\n case \"com.amazonaws.athena#InternalServerException\":\n throw await deserializeAws_json1_1InternalServerExceptionResponse(parsedOutput, context);\n case \"InvalidRequestException\":\n case \"com.amazonaws.athena#InvalidRequestException\":\n throw await deserializeAws_json1_1InvalidRequestExceptionResponse(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody,\n exceptionCtor: AthenaServiceException_1.AthenaServiceException,\n errorCode,\n });\n }\n};\nconst deserializeAws_json1_1UpdateNamedQueryCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return deserializeAws_json1_1UpdateNamedQueryCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = deserializeAws_json1_1UpdateNamedQueryOutput(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return Promise.resolve(response);\n};\nexports.deserializeAws_json1_1UpdateNamedQueryCommand = deserializeAws_json1_1UpdateNamedQueryCommand;\nconst deserializeAws_json1_1UpdateNamedQueryCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"InternalServerException\":\n case \"com.amazonaws.athena#InternalServerException\":\n throw await deserializeAws_json1_1InternalServerExceptionResponse(parsedOutput, context);\n case \"InvalidRequestException\":\n case \"com.amazonaws.athena#InvalidRequestException\":\n throw await deserializeAws_json1_1InvalidRequestExceptionResponse(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody,\n exceptionCtor: AthenaServiceException_1.AthenaServiceException,\n errorCode,\n });\n }\n};\nconst deserializeAws_json1_1UpdateNotebookCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return deserializeAws_json1_1UpdateNotebookCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = deserializeAws_json1_1UpdateNotebookOutput(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return Promise.resolve(response);\n};\nexports.deserializeAws_json1_1UpdateNotebookCommand = deserializeAws_json1_1UpdateNotebookCommand;\nconst deserializeAws_json1_1UpdateNotebookCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"InternalServerException\":\n case \"com.amazonaws.athena#InternalServerException\":\n throw await deserializeAws_json1_1InternalServerExceptionResponse(parsedOutput, context);\n case \"InvalidRequestException\":\n case \"com.amazonaws.athena#InvalidRequestException\":\n throw await deserializeAws_json1_1InvalidRequestExceptionResponse(parsedOutput, context);\n case \"TooManyRequestsException\":\n case \"com.amazonaws.athena#TooManyRequestsException\":\n throw await deserializeAws_json1_1TooManyRequestsExceptionResponse(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody,\n exceptionCtor: AthenaServiceException_1.AthenaServiceException,\n errorCode,\n });\n }\n};\nconst deserializeAws_json1_1UpdateNotebookMetadataCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return deserializeAws_json1_1UpdateNotebookMetadataCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = deserializeAws_json1_1UpdateNotebookMetadataOutput(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return Promise.resolve(response);\n};\nexports.deserializeAws_json1_1UpdateNotebookMetadataCommand = deserializeAws_json1_1UpdateNotebookMetadataCommand;\nconst deserializeAws_json1_1UpdateNotebookMetadataCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"InternalServerException\":\n case \"com.amazonaws.athena#InternalServerException\":\n throw await deserializeAws_json1_1InternalServerExceptionResponse(parsedOutput, context);\n case \"InvalidRequestException\":\n case \"com.amazonaws.athena#InvalidRequestException\":\n throw await deserializeAws_json1_1InvalidRequestExceptionResponse(parsedOutput, context);\n case \"TooManyRequestsException\":\n case \"com.amazonaws.athena#TooManyRequestsException\":\n throw await deserializeAws_json1_1TooManyRequestsExceptionResponse(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody,\n exceptionCtor: AthenaServiceException_1.AthenaServiceException,\n errorCode,\n });\n }\n};\nconst deserializeAws_json1_1UpdatePreparedStatementCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return deserializeAws_json1_1UpdatePreparedStatementCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = deserializeAws_json1_1UpdatePreparedStatementOutput(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return Promise.resolve(response);\n};\nexports.deserializeAws_json1_1UpdatePreparedStatementCommand = deserializeAws_json1_1UpdatePreparedStatementCommand;\nconst deserializeAws_json1_1UpdatePreparedStatementCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"InternalServerException\":\n case \"com.amazonaws.athena#InternalServerException\":\n throw await deserializeAws_json1_1InternalServerExceptionResponse(parsedOutput, context);\n case \"InvalidRequestException\":\n case \"com.amazonaws.athena#InvalidRequestException\":\n throw await deserializeAws_json1_1InvalidRequestExceptionResponse(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.athena#ResourceNotFoundException\":\n throw await deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody,\n exceptionCtor: AthenaServiceException_1.AthenaServiceException,\n errorCode,\n });\n }\n};\nconst deserializeAws_json1_1UpdateWorkGroupCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return deserializeAws_json1_1UpdateWorkGroupCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = deserializeAws_json1_1UpdateWorkGroupOutput(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return Promise.resolve(response);\n};\nexports.deserializeAws_json1_1UpdateWorkGroupCommand = deserializeAws_json1_1UpdateWorkGroupCommand;\nconst deserializeAws_json1_1UpdateWorkGroupCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"InternalServerException\":\n case \"com.amazonaws.athena#InternalServerException\":\n throw await deserializeAws_json1_1InternalServerExceptionResponse(parsedOutput, context);\n case \"InvalidRequestException\":\n case \"com.amazonaws.athena#InvalidRequestException\":\n throw await deserializeAws_json1_1InvalidRequestExceptionResponse(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n (0, smithy_client_1.throwDefaultError)({\n output,\n parsedBody,\n exceptionCtor: AthenaServiceException_1.AthenaServiceException,\n errorCode,\n });\n }\n};\nconst deserializeAws_json1_1InternalServerExceptionResponse = async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = deserializeAws_json1_1InternalServerException(body, context);\n const exception = new models_0_1.InternalServerException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized,\n });\n return (0, smithy_client_1.decorateServiceException)(exception, body);\n};\nconst deserializeAws_json1_1InvalidRequestExceptionResponse = async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = deserializeAws_json1_1InvalidRequestException(body, context);\n const exception = new models_0_1.InvalidRequestException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized,\n });\n return (0, smithy_client_1.decorateServiceException)(exception, body);\n};\nconst deserializeAws_json1_1MetadataExceptionResponse = async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = deserializeAws_json1_1MetadataException(body, context);\n const exception = new models_0_1.MetadataException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized,\n });\n return (0, smithy_client_1.decorateServiceException)(exception, body);\n};\nconst deserializeAws_json1_1ResourceNotFoundExceptionResponse = async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = deserializeAws_json1_1ResourceNotFoundException(body, context);\n const exception = new models_0_1.ResourceNotFoundException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized,\n });\n return (0, smithy_client_1.decorateServiceException)(exception, body);\n};\nconst deserializeAws_json1_1SessionAlreadyExistsExceptionResponse = async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = deserializeAws_json1_1SessionAlreadyExistsException(body, context);\n const exception = new models_0_1.SessionAlreadyExistsException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized,\n });\n return (0, smithy_client_1.decorateServiceException)(exception, body);\n};\nconst deserializeAws_json1_1TooManyRequestsExceptionResponse = async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = deserializeAws_json1_1TooManyRequestsException(body, context);\n const exception = new models_0_1.TooManyRequestsException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized,\n });\n return (0, smithy_client_1.decorateServiceException)(exception, body);\n};\nconst serializeAws_json1_1AclConfiguration = (input, context) => {\n return {\n ...(input.S3AclOption != null && { S3AclOption: input.S3AclOption }),\n };\n};\nconst serializeAws_json1_1BatchGetNamedQueryInput = (input, context) => {\n return {\n ...(input.NamedQueryIds != null && {\n NamedQueryIds: serializeAws_json1_1NamedQueryIdList(input.NamedQueryIds, context),\n }),\n };\n};\nconst serializeAws_json1_1BatchGetPreparedStatementInput = (input, context) => {\n return {\n ...(input.PreparedStatementNames != null && {\n PreparedStatementNames: serializeAws_json1_1PreparedStatementNameList(input.PreparedStatementNames, context),\n }),\n ...(input.WorkGroup != null && { WorkGroup: input.WorkGroup }),\n };\n};\nconst serializeAws_json1_1BatchGetQueryExecutionInput = (input, context) => {\n return {\n ...(input.QueryExecutionIds != null && {\n QueryExecutionIds: serializeAws_json1_1QueryExecutionIdList(input.QueryExecutionIds, context),\n }),\n };\n};\nconst serializeAws_json1_1CalculationConfiguration = (input, context) => {\n return {\n ...(input.CodeBlock != null && { CodeBlock: input.CodeBlock }),\n };\n};\nconst serializeAws_json1_1CreateDataCatalogInput = (input, context) => {\n return {\n ...(input.Description != null && { Description: input.Description }),\n ...(input.Name != null && { Name: input.Name }),\n ...(input.Parameters != null && { Parameters: serializeAws_json1_1ParametersMap(input.Parameters, context) }),\n ...(input.Tags != null && { Tags: serializeAws_json1_1TagList(input.Tags, context) }),\n ...(input.Type != null && { Type: input.Type }),\n };\n};\nconst serializeAws_json1_1CreateNamedQueryInput = (input, context) => {\n return {\n ClientRequestToken: input.ClientRequestToken ?? (0, uuid_1.v4)(),\n ...(input.Database != null && { Database: input.Database }),\n ...(input.Description != null && { Description: input.Description }),\n ...(input.Name != null && { Name: input.Name }),\n ...(input.QueryString != null && { QueryString: input.QueryString }),\n ...(input.WorkGroup != null && { WorkGroup: input.WorkGroup }),\n };\n};\nconst serializeAws_json1_1CreateNotebookInput = (input, context) => {\n return {\n ...(input.ClientRequestToken != null && { ClientRequestToken: input.ClientRequestToken }),\n ...(input.Name != null && { Name: input.Name }),\n ...(input.WorkGroup != null && { WorkGroup: input.WorkGroup }),\n };\n};\nconst serializeAws_json1_1CreatePreparedStatementInput = (input, context) => {\n return {\n ...(input.Description != null && { Description: input.Description }),\n ...(input.QueryStatement != null && { QueryStatement: input.QueryStatement }),\n ...(input.StatementName != null && { StatementName: input.StatementName }),\n ...(input.WorkGroup != null && { WorkGroup: input.WorkGroup }),\n };\n};\nconst serializeAws_json1_1CreatePresignedNotebookUrlRequest = (input, context) => {\n return {\n ...(input.SessionId != null && { SessionId: input.SessionId }),\n };\n};\nconst serializeAws_json1_1CreateWorkGroupInput = (input, context) => {\n return {\n ...(input.Configuration != null && {\n Configuration: serializeAws_json1_1WorkGroupConfiguration(input.Configuration, context),\n }),\n ...(input.Description != null && { Description: input.Description }),\n ...(input.Name != null && { Name: input.Name }),\n ...(input.Tags != null && { Tags: serializeAws_json1_1TagList(input.Tags, context) }),\n };\n};\nconst serializeAws_json1_1CustomerContentEncryptionConfiguration = (input, context) => {\n return {\n ...(input.KmsKey != null && { KmsKey: input.KmsKey }),\n };\n};\nconst serializeAws_json1_1DeleteDataCatalogInput = (input, context) => {\n return {\n ...(input.Name != null && { Name: input.Name }),\n };\n};\nconst serializeAws_json1_1DeleteNamedQueryInput = (input, context) => {\n return {\n NamedQueryId: input.NamedQueryId ?? (0, uuid_1.v4)(),\n };\n};\nconst serializeAws_json1_1DeleteNotebookInput = (input, context) => {\n return {\n ...(input.NotebookId != null && { NotebookId: input.NotebookId }),\n };\n};\nconst serializeAws_json1_1DeletePreparedStatementInput = (input, context) => {\n return {\n ...(input.StatementName != null && { StatementName: input.StatementName }),\n ...(input.WorkGroup != null && { WorkGroup: input.WorkGroup }),\n };\n};\nconst serializeAws_json1_1DeleteWorkGroupInput = (input, context) => {\n return {\n ...(input.RecursiveDeleteOption != null && { RecursiveDeleteOption: input.RecursiveDeleteOption }),\n ...(input.WorkGroup != null && { WorkGroup: input.WorkGroup }),\n };\n};\nconst serializeAws_json1_1EncryptionConfiguration = (input, context) => {\n return {\n ...(input.EncryptionOption != null && { EncryptionOption: input.EncryptionOption }),\n ...(input.KmsKey != null && { KmsKey: input.KmsKey }),\n };\n};\nconst serializeAws_json1_1EngineConfiguration = (input, context) => {\n return {\n ...(input.AdditionalConfigs != null && {\n AdditionalConfigs: serializeAws_json1_1ParametersMap(input.AdditionalConfigs, context),\n }),\n ...(input.CoordinatorDpuSize != null && { CoordinatorDpuSize: input.CoordinatorDpuSize }),\n ...(input.DefaultExecutorDpuSize != null && { DefaultExecutorDpuSize: input.DefaultExecutorDpuSize }),\n ...(input.MaxConcurrentDpus != null && { MaxConcurrentDpus: input.MaxConcurrentDpus }),\n };\n};\nconst serializeAws_json1_1EngineVersion = (input, context) => {\n return {\n ...(input.EffectiveEngineVersion != null && { EffectiveEngineVersion: input.EffectiveEngineVersion }),\n ...(input.SelectedEngineVersion != null && { SelectedEngineVersion: input.SelectedEngineVersion }),\n };\n};\nconst serializeAws_json1_1ExecutionParameters = (input, context) => {\n return input\n .filter((e) => e != null)\n .map((entry) => {\n return entry;\n });\n};\nconst serializeAws_json1_1ExportNotebookInput = (input, context) => {\n return {\n ...(input.NotebookId != null && { NotebookId: input.NotebookId }),\n };\n};\nconst serializeAws_json1_1FilterDefinition = (input, context) => {\n return {\n ...(input.Name != null && { Name: input.Name }),\n };\n};\nconst serializeAws_json1_1GetCalculationExecutionCodeRequest = (input, context) => {\n return {\n ...(input.CalculationExecutionId != null && { CalculationExecutionId: input.CalculationExecutionId }),\n };\n};\nconst serializeAws_json1_1GetCalculationExecutionRequest = (input, context) => {\n return {\n ...(input.CalculationExecutionId != null && { CalculationExecutionId: input.CalculationExecutionId }),\n };\n};\nconst serializeAws_json1_1GetCalculationExecutionStatusRequest = (input, context) => {\n return {\n ...(input.CalculationExecutionId != null && { CalculationExecutionId: input.CalculationExecutionId }),\n };\n};\nconst serializeAws_json1_1GetDatabaseInput = (input, context) => {\n return {\n ...(input.CatalogName != null && { CatalogName: input.CatalogName }),\n ...(input.DatabaseName != null && { DatabaseName: input.DatabaseName }),\n };\n};\nconst serializeAws_json1_1GetDataCatalogInput = (input, context) => {\n return {\n ...(input.Name != null && { Name: input.Name }),\n };\n};\nconst serializeAws_json1_1GetNamedQueryInput = (input, context) => {\n return {\n ...(input.NamedQueryId != null && { NamedQueryId: input.NamedQueryId }),\n };\n};\nconst serializeAws_json1_1GetNotebookMetadataInput = (input, context) => {\n return {\n ...(input.NotebookId != null && { NotebookId: input.NotebookId }),\n };\n};\nconst serializeAws_json1_1GetPreparedStatementInput = (input, context) => {\n return {\n ...(input.StatementName != null && { StatementName: input.StatementName }),\n ...(input.WorkGroup != null && { WorkGroup: input.WorkGroup }),\n };\n};\nconst serializeAws_json1_1GetQueryExecutionInput = (input, context) => {\n return {\n ...(input.QueryExecutionId != null && { QueryExecutionId: input.QueryExecutionId }),\n };\n};\nconst serializeAws_json1_1GetQueryResultsInput = (input, context) => {\n return {\n ...(input.MaxResults != null && { MaxResults: input.MaxResults }),\n ...(input.NextToken != null && { NextToken: input.NextToken }),\n ...(input.QueryExecutionId != null && { QueryExecutionId: input.QueryExecutionId }),\n };\n};\nconst serializeAws_json1_1GetQueryRuntimeStatisticsInput = (input, context) => {\n return {\n ...(input.QueryExecutionId != null && { QueryExecutionId: input.QueryExecutionId }),\n };\n};\nconst serializeAws_json1_1GetSessionRequest = (input, context) => {\n return {\n ...(input.SessionId != null && { SessionId: input.SessionId }),\n };\n};\nconst serializeAws_json1_1GetSessionStatusRequest = (input, context) => {\n return {\n ...(input.SessionId != null && { SessionId: input.SessionId }),\n };\n};\nconst serializeAws_json1_1GetTableMetadataInput = (input, context) => {\n return {\n ...(input.CatalogName != null && { CatalogName: input.CatalogName }),\n ...(input.DatabaseName != null && { DatabaseName: input.DatabaseName }),\n ...(input.TableName != null && { TableName: input.TableName }),\n };\n};\nconst serializeAws_json1_1GetWorkGroupInput = (input, context) => {\n return {\n ...(input.WorkGroup != null && { WorkGroup: input.WorkGroup }),\n };\n};\nconst serializeAws_json1_1ImportNotebookInput = (input, context) => {\n return {\n ...(input.ClientRequestToken != null && { ClientRequestToken: input.ClientRequestToken }),\n ...(input.Name != null && { Name: input.Name }),\n ...(input.Payload != null && { Payload: input.Payload }),\n ...(input.Type != null && { Type: input.Type }),\n ...(input.WorkGroup != null && { WorkGroup: input.WorkGroup }),\n };\n};\nconst serializeAws_json1_1ListApplicationDPUSizesInput = (input, context) => {\n return {\n ...(input.MaxResults != null && { MaxResults: input.MaxResults }),\n ...(input.NextToken != null && { NextToken: input.NextToken }),\n };\n};\nconst serializeAws_json1_1ListCalculationExecutionsRequest = (input, context) => {\n return {\n ...(input.MaxResults != null && { MaxResults: input.MaxResults }),\n ...(input.NextToken != null && { NextToken: input.NextToken }),\n ...(input.SessionId != null && { SessionId: input.SessionId }),\n ...(input.StateFilter != null && { StateFilter: input.StateFilter }),\n };\n};\nconst serializeAws_json1_1ListDatabasesInput = (input, context) => {\n return {\n ...(input.CatalogName != null && { CatalogName: input.CatalogName }),\n ...(input.MaxResults != null && { MaxResults: input.MaxResults }),\n ...(input.NextToken != null && { NextToken: input.NextToken }),\n };\n};\nconst serializeAws_json1_1ListDataCatalogsInput = (input, context) => {\n return {\n ...(input.MaxResults != null && { MaxResults: input.MaxResults }),\n ...(input.NextToken != null && { NextToken: input.NextToken }),\n };\n};\nconst serializeAws_json1_1ListEngineVersionsInput = (input, context) => {\n return {\n ...(input.MaxResults != null && { MaxResults: input.MaxResults }),\n ...(input.NextToken != null && { NextToken: input.NextToken }),\n };\n};\nconst serializeAws_json1_1ListExecutorsRequest = (input, context) => {\n return {\n ...(input.ExecutorStateFilter != null && { ExecutorStateFilter: input.ExecutorStateFilter }),\n ...(input.MaxResults != null && { MaxResults: input.MaxResults }),\n ...(input.NextToken != null && { NextToken: input.NextToken }),\n ...(input.SessionId != null && { SessionId: input.SessionId }),\n };\n};\nconst serializeAws_json1_1ListNamedQueriesInput = (input, context) => {\n return {\n ...(input.MaxResults != null && { MaxResults: input.MaxResults }),\n ...(input.NextToken != null && { NextToken: input.NextToken }),\n ...(input.WorkGroup != null && { WorkGroup: input.WorkGroup }),\n };\n};\nconst serializeAws_json1_1ListNotebookMetadataInput = (input, context) => {\n return {\n ...(input.Filters != null && { Filters: serializeAws_json1_1FilterDefinition(input.Filters, context) }),\n ...(input.MaxResults != null && { MaxResults: input.MaxResults }),\n ...(input.NextToken != null && { NextToken: input.NextToken }),\n ...(input.WorkGroup != null && { WorkGroup: input.WorkGroup }),\n };\n};\nconst serializeAws_json1_1ListNotebookSessionsRequest = (input, context) => {\n return {\n ...(input.MaxResults != null && { MaxResults: input.MaxResults }),\n ...(input.NextToken != null && { NextToken: input.NextToken }),\n ...(input.NotebookId != null && { NotebookId: input.NotebookId }),\n };\n};\nconst serializeAws_json1_1ListPreparedStatementsInput = (input, context) => {\n return {\n ...(input.MaxResults != null && { MaxResults: input.MaxResults }),\n ...(input.NextToken != null && { NextToken: input.NextToken }),\n ...(input.WorkGroup != null && { WorkGroup: input.WorkGroup }),\n };\n};\nconst serializeAws_json1_1ListQueryExecutionsInput = (input, context) => {\n return {\n ...(input.MaxResults != null && { MaxResults: input.MaxResults }),\n ...(input.NextToken != null && { NextToken: input.NextToken }),\n ...(input.WorkGroup != null && { WorkGroup: input.WorkGroup }),\n };\n};\nconst serializeAws_json1_1ListSessionsRequest = (input, context) => {\n return {\n ...(input.MaxResults != null && { MaxResults: input.MaxResults }),\n ...(input.NextToken != null && { NextToken: input.NextToken }),\n ...(input.StateFilter != null && { StateFilter: input.StateFilter }),\n ...(input.WorkGroup != null && { WorkGroup: input.WorkGroup }),\n };\n};\nconst serializeAws_json1_1ListTableMetadataInput = (input, context) => {\n return {\n ...(input.CatalogName != null && { CatalogName: input.CatalogName }),\n ...(input.DatabaseName != null && { DatabaseName: input.DatabaseName }),\n ...(input.Expression != null && { Expression: input.Expression }),\n ...(input.MaxResults != null && { MaxResults: input.MaxResults }),\n ...(input.NextToken != null && { NextToken: input.NextToken }),\n };\n};\nconst serializeAws_json1_1ListTagsForResourceInput = (input, context) => {\n return {\n ...(input.MaxResults != null && { MaxResults: input.MaxResults }),\n ...(input.NextToken != null && { NextToken: input.NextToken }),\n ...(input.ResourceARN != null && { ResourceARN: input.ResourceARN }),\n };\n};\nconst serializeAws_json1_1ListWorkGroupsInput = (input, context) => {\n return {\n ...(input.MaxResults != null && { MaxResults: input.MaxResults }),\n ...(input.NextToken != null && { NextToken: input.NextToken }),\n };\n};\nconst serializeAws_json1_1NamedQueryIdList = (input, context) => {\n return input\n .filter((e) => e != null)\n .map((entry) => {\n return entry;\n });\n};\nconst serializeAws_json1_1ParametersMap = (input, context) => {\n return Object.entries(input).reduce((acc, [key, value]) => {\n if (value === null) {\n return acc;\n }\n acc[key] = value;\n return acc;\n }, {});\n};\nconst serializeAws_json1_1PreparedStatementNameList = (input, context) => {\n return input\n .filter((e) => e != null)\n .map((entry) => {\n return entry;\n });\n};\nconst serializeAws_json1_1QueryExecutionContext = (input, context) => {\n return {\n ...(input.Catalog != null && { Catalog: input.Catalog }),\n ...(input.Database != null && { Database: input.Database }),\n };\n};\nconst serializeAws_json1_1QueryExecutionIdList = (input, context) => {\n return input\n .filter((e) => e != null)\n .map((entry) => {\n return entry;\n });\n};\nconst serializeAws_json1_1ResultConfiguration = (input, context) => {\n return {\n ...(input.AclConfiguration != null && {\n AclConfiguration: serializeAws_json1_1AclConfiguration(input.AclConfiguration, context),\n }),\n ...(input.EncryptionConfiguration != null && {\n EncryptionConfiguration: serializeAws_json1_1EncryptionConfiguration(input.EncryptionConfiguration, context),\n }),\n ...(input.ExpectedBucketOwner != null && { ExpectedBucketOwner: input.ExpectedBucketOwner }),\n ...(input.OutputLocation != null && { OutputLocation: input.OutputLocation }),\n };\n};\nconst serializeAws_json1_1ResultConfigurationUpdates = (input, context) => {\n return {\n ...(input.AclConfiguration != null && {\n AclConfiguration: serializeAws_json1_1AclConfiguration(input.AclConfiguration, context),\n }),\n ...(input.EncryptionConfiguration != null && {\n EncryptionConfiguration: serializeAws_json1_1EncryptionConfiguration(input.EncryptionConfiguration, context),\n }),\n ...(input.ExpectedBucketOwner != null && { ExpectedBucketOwner: input.ExpectedBucketOwner }),\n ...(input.OutputLocation != null && { OutputLocation: input.OutputLocation }),\n ...(input.RemoveAclConfiguration != null && { RemoveAclConfiguration: input.RemoveAclConfiguration }),\n ...(input.RemoveEncryptionConfiguration != null && {\n RemoveEncryptionConfiguration: input.RemoveEncryptionConfiguration,\n }),\n ...(input.RemoveExpectedBucketOwner != null && { RemoveExpectedBucketOwner: input.RemoveExpectedBucketOwner }),\n ...(input.RemoveOutputLocation != null && { RemoveOutputLocation: input.RemoveOutputLocation }),\n };\n};\nconst serializeAws_json1_1ResultReuseByAgeConfiguration = (input, context) => {\n return {\n ...(input.Enabled != null && { Enabled: input.Enabled }),\n ...(input.MaxAgeInMinutes != null && { MaxAgeInMinutes: input.MaxAgeInMinutes }),\n };\n};\nconst serializeAws_json1_1ResultReuseConfiguration = (input, context) => {\n return {\n ...(input.ResultReuseByAgeConfiguration != null && {\n ResultReuseByAgeConfiguration: serializeAws_json1_1ResultReuseByAgeConfiguration(input.ResultReuseByAgeConfiguration, context),\n }),\n };\n};\nconst serializeAws_json1_1StartCalculationExecutionRequest = (input, context) => {\n return {\n ...(input.CalculationConfiguration != null && {\n CalculationConfiguration: serializeAws_json1_1CalculationConfiguration(input.CalculationConfiguration, context),\n }),\n ...(input.ClientRequestToken != null && { ClientRequestToken: input.ClientRequestToken }),\n ...(input.CodeBlock != null && { CodeBlock: input.CodeBlock }),\n ...(input.Description != null && { Description: input.Description }),\n ...(input.SessionId != null && { SessionId: input.SessionId }),\n };\n};\nconst serializeAws_json1_1StartQueryExecutionInput = (input, context) => {\n return {\n ClientRequestToken: input.ClientRequestToken ?? (0, uuid_1.v4)(),\n ...(input.ExecutionParameters != null && {\n ExecutionParameters: serializeAws_json1_1ExecutionParameters(input.ExecutionParameters, context),\n }),\n ...(input.QueryExecutionContext != null && {\n QueryExecutionContext: serializeAws_json1_1QueryExecutionContext(input.QueryExecutionContext, context),\n }),\n ...(input.QueryString != null && { QueryString: input.QueryString }),\n ...(input.ResultConfiguration != null && {\n ResultConfiguration: serializeAws_json1_1ResultConfiguration(input.ResultConfiguration, context),\n }),\n ...(input.ResultReuseConfiguration != null && {\n ResultReuseConfiguration: serializeAws_json1_1ResultReuseConfiguration(input.ResultReuseConfiguration, context),\n }),\n ...(input.WorkGroup != null && { WorkGroup: input.WorkGroup }),\n };\n};\nconst serializeAws_json1_1StartSessionRequest = (input, context) => {\n return {\n ...(input.ClientRequestToken != null && { ClientRequestToken: input.ClientRequestToken }),\n ...(input.Description != null && { Description: input.Description }),\n ...(input.EngineConfiguration != null && {\n EngineConfiguration: serializeAws_json1_1EngineConfiguration(input.EngineConfiguration, context),\n }),\n ...(input.NotebookVersion != null && { NotebookVersion: input.NotebookVersion }),\n ...(input.SessionIdleTimeoutInMinutes != null && {\n SessionIdleTimeoutInMinutes: input.SessionIdleTimeoutInMinutes,\n }),\n ...(input.WorkGroup != null && { WorkGroup: input.WorkGroup }),\n };\n};\nconst serializeAws_json1_1StopCalculationExecutionRequest = (input, context) => {\n return {\n ...(input.CalculationExecutionId != null && { CalculationExecutionId: input.CalculationExecutionId }),\n };\n};\nconst serializeAws_json1_1StopQueryExecutionInput = (input, context) => {\n return {\n QueryExecutionId: input.QueryExecutionId ?? (0, uuid_1.v4)(),\n };\n};\nconst serializeAws_json1_1Tag = (input, context) => {\n return {\n ...(input.Key != null && { Key: input.Key }),\n ...(input.Value != null && { Value: input.Value }),\n };\n};\nconst serializeAws_json1_1TagKeyList = (input, context) => {\n return input\n .filter((e) => e != null)\n .map((entry) => {\n return entry;\n });\n};\nconst serializeAws_json1_1TagList = (input, context) => {\n return input\n .filter((e) => e != null)\n .map((entry) => {\n return serializeAws_json1_1Tag(entry, context);\n });\n};\nconst serializeAws_json1_1TagResourceInput = (input, context) => {\n return {\n ...(input.ResourceARN != null && { ResourceARN: input.ResourceARN }),\n ...(input.Tags != null && { Tags: serializeAws_json1_1TagList(input.Tags, context) }),\n };\n};\nconst serializeAws_json1_1TerminateSessionRequest = (input, context) => {\n return {\n ...(input.SessionId != null && { SessionId: input.SessionId }),\n };\n};\nconst serializeAws_json1_1UntagResourceInput = (input, context) => {\n return {\n ...(input.ResourceARN != null && { ResourceARN: input.ResourceARN }),\n ...(input.TagKeys != null && { TagKeys: serializeAws_json1_1TagKeyList(input.TagKeys, context) }),\n };\n};\nconst serializeAws_json1_1UpdateDataCatalogInput = (input, context) => {\n return {\n ...(input.Description != null && { Description: input.Description }),\n ...(input.Name != null && { Name: input.Name }),\n ...(input.Parameters != null && { Parameters: serializeAws_json1_1ParametersMap(input.Parameters, context) }),\n ...(input.Type != null && { Type: input.Type }),\n };\n};\nconst serializeAws_json1_1UpdateNamedQueryInput = (input, context) => {\n return {\n ...(input.Description != null && { Description: input.Description }),\n ...(input.Name != null && { Name: input.Name }),\n ...(input.NamedQueryId != null && { NamedQueryId: input.NamedQueryId }),\n ...(input.QueryString != null && { QueryString: input.QueryString }),\n };\n};\nconst serializeAws_json1_1UpdateNotebookInput = (input, context) => {\n return {\n ...(input.ClientRequestToken != null && { ClientRequestToken: input.ClientRequestToken }),\n ...(input.NotebookId != null && { NotebookId: input.NotebookId }),\n ...(input.Payload != null && { Payload: input.Payload }),\n ...(input.SessionId != null && { SessionId: input.SessionId }),\n ...(input.Type != null && { Type: input.Type }),\n };\n};\nconst serializeAws_json1_1UpdateNotebookMetadataInput = (input, context) => {\n return {\n ...(input.ClientRequestToken != null && { ClientRequestToken: input.ClientRequestToken }),\n ...(input.Name != null && { Name: input.Name }),\n ...(input.NotebookId != null && { NotebookId: input.NotebookId }),\n };\n};\nconst serializeAws_json1_1UpdatePreparedStatementInput = (input, context) => {\n return {\n ...(input.Description != null && { Description: input.Description }),\n ...(input.QueryStatement != null && { QueryStatement: input.QueryStatement }),\n ...(input.StatementName != null && { StatementName: input.StatementName }),\n ...(input.WorkGroup != null && { WorkGroup: input.WorkGroup }),\n };\n};\nconst serializeAws_json1_1UpdateWorkGroupInput = (input, context) => {\n return {\n ...(input.ConfigurationUpdates != null && {\n ConfigurationUpdates: serializeAws_json1_1WorkGroupConfigurationUpdates(input.ConfigurationUpdates, context),\n }),\n ...(input.Description != null && { Description: input.Description }),\n ...(input.State != null && { State: input.State }),\n ...(input.WorkGroup != null && { WorkGroup: input.WorkGroup }),\n };\n};\nconst serializeAws_json1_1WorkGroupConfiguration = (input, context) => {\n return {\n ...(input.AdditionalConfiguration != null && { AdditionalConfiguration: input.AdditionalConfiguration }),\n ...(input.BytesScannedCutoffPerQuery != null && { BytesScannedCutoffPerQuery: input.BytesScannedCutoffPerQuery }),\n ...(input.CustomerContentEncryptionConfiguration != null && {\n CustomerContentEncryptionConfiguration: serializeAws_json1_1CustomerContentEncryptionConfiguration(input.CustomerContentEncryptionConfiguration, context),\n }),\n ...(input.EnforceWorkGroupConfiguration != null && {\n EnforceWorkGroupConfiguration: input.EnforceWorkGroupConfiguration,\n }),\n ...(input.EngineVersion != null && {\n EngineVersion: serializeAws_json1_1EngineVersion(input.EngineVersion, context),\n }),\n ...(input.ExecutionRole != null && { ExecutionRole: input.ExecutionRole }),\n ...(input.PublishCloudWatchMetricsEnabled != null && {\n PublishCloudWatchMetricsEnabled: input.PublishCloudWatchMetricsEnabled,\n }),\n ...(input.RequesterPaysEnabled != null && { RequesterPaysEnabled: input.RequesterPaysEnabled }),\n ...(input.ResultConfiguration != null && {\n ResultConfiguration: serializeAws_json1_1ResultConfiguration(input.ResultConfiguration, context),\n }),\n };\n};\nconst serializeAws_json1_1WorkGroupConfigurationUpdates = (input, context) => {\n return {\n ...(input.AdditionalConfiguration != null && { AdditionalConfiguration: input.AdditionalConfiguration }),\n ...(input.BytesScannedCutoffPerQuery != null && { BytesScannedCutoffPerQuery: input.BytesScannedCutoffPerQuery }),\n ...(input.CustomerContentEncryptionConfiguration != null && {\n CustomerContentEncryptionConfiguration: serializeAws_json1_1CustomerContentEncryptionConfiguration(input.CustomerContentEncryptionConfiguration, context),\n }),\n ...(input.EnforceWorkGroupConfiguration != null && {\n EnforceWorkGroupConfiguration: input.EnforceWorkGroupConfiguration,\n }),\n ...(input.EngineVersion != null && {\n EngineVersion: serializeAws_json1_1EngineVersion(input.EngineVersion, context),\n }),\n ...(input.ExecutionRole != null && { ExecutionRole: input.ExecutionRole }),\n ...(input.PublishCloudWatchMetricsEnabled != null && {\n PublishCloudWatchMetricsEnabled: input.PublishCloudWatchMetricsEnabled,\n }),\n ...(input.RemoveBytesScannedCutoffPerQuery != null && {\n RemoveBytesScannedCutoffPerQuery: input.RemoveBytesScannedCutoffPerQuery,\n }),\n ...(input.RemoveCustomerContentEncryptionConfiguration != null && {\n RemoveCustomerContentEncryptionConfiguration: input.RemoveCustomerContentEncryptionConfiguration,\n }),\n ...(input.RequesterPaysEnabled != null && { RequesterPaysEnabled: input.RequesterPaysEnabled }),\n ...(input.ResultConfigurationUpdates != null && {\n ResultConfigurationUpdates: serializeAws_json1_1ResultConfigurationUpdates(input.ResultConfigurationUpdates, context),\n }),\n };\n};\nconst deserializeAws_json1_1AclConfiguration = (output, context) => {\n return {\n S3AclOption: (0, smithy_client_1.expectString)(output.S3AclOption),\n };\n};\nconst deserializeAws_json1_1ApplicationDPUSizes = (output, context) => {\n return {\n ApplicationRuntimeId: (0, smithy_client_1.expectString)(output.ApplicationRuntimeId),\n SupportedDPUSizes: output.SupportedDPUSizes != null\n ? deserializeAws_json1_1SupportedDPUSizeList(output.SupportedDPUSizes, context)\n : undefined,\n };\n};\nconst deserializeAws_json1_1ApplicationDPUSizesList = (output, context) => {\n const retVal = (output || [])\n .filter((e) => e != null)\n .map((entry) => {\n if (entry === null) {\n return null;\n }\n return deserializeAws_json1_1ApplicationDPUSizes(entry, context);\n });\n return retVal;\n};\nconst deserializeAws_json1_1AthenaError = (output, context) => {\n return {\n ErrorCategory: (0, smithy_client_1.expectInt32)(output.ErrorCategory),\n ErrorMessage: (0, smithy_client_1.expectString)(output.ErrorMessage),\n ErrorType: (0, smithy_client_1.expectInt32)(output.ErrorType),\n Retryable: (0, smithy_client_1.expectBoolean)(output.Retryable),\n };\n};\nconst deserializeAws_json1_1BatchGetNamedQueryOutput = (output, context) => {\n return {\n NamedQueries: output.NamedQueries != null ? deserializeAws_json1_1NamedQueryList(output.NamedQueries, context) : undefined,\n UnprocessedNamedQueryIds: output.UnprocessedNamedQueryIds != null\n ? deserializeAws_json1_1UnprocessedNamedQueryIdList(output.UnprocessedNamedQueryIds, context)\n : undefined,\n };\n};\nconst deserializeAws_json1_1BatchGetPreparedStatementOutput = (output, context) => {\n return {\n PreparedStatements: output.PreparedStatements != null\n ? deserializeAws_json1_1PreparedStatementDetailsList(output.PreparedStatements, context)\n : undefined,\n UnprocessedPreparedStatementNames: output.UnprocessedPreparedStatementNames != null\n ? deserializeAws_json1_1UnprocessedPreparedStatementNameList(output.UnprocessedPreparedStatementNames, context)\n : undefined,\n };\n};\nconst deserializeAws_json1_1BatchGetQueryExecutionOutput = (output, context) => {\n return {\n QueryExecutions: output.QueryExecutions != null\n ? deserializeAws_json1_1QueryExecutionList(output.QueryExecutions, context)\n : undefined,\n UnprocessedQueryExecutionIds: output.UnprocessedQueryExecutionIds != null\n ? deserializeAws_json1_1UnprocessedQueryExecutionIdList(output.UnprocessedQueryExecutionIds, context)\n : undefined,\n };\n};\nconst deserializeAws_json1_1CalculationResult = (output, context) => {\n return {\n ResultS3Uri: (0, smithy_client_1.expectString)(output.ResultS3Uri),\n ResultType: (0, smithy_client_1.expectString)(output.ResultType),\n StdErrorS3Uri: (0, smithy_client_1.expectString)(output.StdErrorS3Uri),\n StdOutS3Uri: (0, smithy_client_1.expectString)(output.StdOutS3Uri),\n };\n};\nconst deserializeAws_json1_1CalculationsList = (output, context) => {\n const retVal = (output || [])\n .filter((e) => e != null)\n .map((entry) => {\n if (entry === null) {\n return null;\n }\n return deserializeAws_json1_1CalculationSummary(entry, context);\n });\n return retVal;\n};\nconst deserializeAws_json1_1CalculationStatistics = (output, context) => {\n return {\n DpuExecutionInMillis: (0, smithy_client_1.expectLong)(output.DpuExecutionInMillis),\n Progress: (0, smithy_client_1.expectString)(output.Progress),\n };\n};\nconst deserializeAws_json1_1CalculationStatus = (output, context) => {\n return {\n CompletionDateTime: output.CompletionDateTime != null\n ? (0, smithy_client_1.expectNonNull)((0, smithy_client_1.parseEpochTimestamp)((0, smithy_client_1.expectNumber)(output.CompletionDateTime)))\n : undefined,\n State: (0, smithy_client_1.expectString)(output.State),\n StateChangeReason: (0, smithy_client_1.expectString)(output.StateChangeReason),\n SubmissionDateTime: output.SubmissionDateTime != null\n ? (0, smithy_client_1.expectNonNull)((0, smithy_client_1.parseEpochTimestamp)((0, smithy_client_1.expectNumber)(output.SubmissionDateTime)))\n : undefined,\n };\n};\nconst deserializeAws_json1_1CalculationSummary = (output, context) => {\n return {\n CalculationExecutionId: (0, smithy_client_1.expectString)(output.CalculationExecutionId),\n Description: (0, smithy_client_1.expectString)(output.Description),\n Status: output.Status != null ? deserializeAws_json1_1CalculationStatus(output.Status, context) : undefined,\n };\n};\nconst deserializeAws_json1_1Column = (output, context) => {\n return {\n Comment: (0, smithy_client_1.expectString)(output.Comment),\n Name: (0, smithy_client_1.expectString)(output.Name),\n Type: (0, smithy_client_1.expectString)(output.Type),\n };\n};\nconst deserializeAws_json1_1ColumnInfo = (output, context) => {\n return {\n CaseSensitive: (0, smithy_client_1.expectBoolean)(output.CaseSensitive),\n CatalogName: (0, smithy_client_1.expectString)(output.CatalogName),\n Label: (0, smithy_client_1.expectString)(output.Label),\n Name: (0, smithy_client_1.expectString)(output.Name),\n Nullable: (0, smithy_client_1.expectString)(output.Nullable),\n Precision: (0, smithy_client_1.expectInt32)(output.Precision),\n Scale: (0, smithy_client_1.expectInt32)(output.Scale),\n SchemaName: (0, smithy_client_1.expectString)(output.SchemaName),\n TableName: (0, smithy_client_1.expectString)(output.TableName),\n Type: (0, smithy_client_1.expectString)(output.Type),\n };\n};\nconst deserializeAws_json1_1ColumnInfoList = (output, context) => {\n const retVal = (output || [])\n .filter((e) => e != null)\n .map((entry) => {\n if (entry === null) {\n return null;\n }\n return deserializeAws_json1_1ColumnInfo(entry, context);\n });\n return retVal;\n};\nconst deserializeAws_json1_1ColumnList = (output, context) => {\n const retVal = (output || [])\n .filter((e) => e != null)\n .map((entry) => {\n if (entry === null) {\n return null;\n }\n return deserializeAws_json1_1Column(entry, context);\n });\n return retVal;\n};\nconst deserializeAws_json1_1CreateDataCatalogOutput = (output, context) => {\n return {};\n};\nconst deserializeAws_json1_1CreateNamedQueryOutput = (output, context) => {\n return {\n NamedQueryId: (0, smithy_client_1.expectString)(output.NamedQueryId),\n };\n};\nconst deserializeAws_json1_1CreateNotebookOutput = (output, context) => {\n return {\n NotebookId: (0, smithy_client_1.expectString)(output.NotebookId),\n };\n};\nconst deserializeAws_json1_1CreatePreparedStatementOutput = (output, context) => {\n return {};\n};\nconst deserializeAws_json1_1CreatePresignedNotebookUrlResponse = (output, context) => {\n return {\n AuthToken: (0, smithy_client_1.expectString)(output.AuthToken),\n AuthTokenExpirationTime: (0, smithy_client_1.expectLong)(output.AuthTokenExpirationTime),\n NotebookUrl: (0, smithy_client_1.expectString)(output.NotebookUrl),\n };\n};\nconst deserializeAws_json1_1CreateWorkGroupOutput = (output, context) => {\n return {};\n};\nconst deserializeAws_json1_1CustomerContentEncryptionConfiguration = (output, context) => {\n return {\n KmsKey: (0, smithy_client_1.expectString)(output.KmsKey),\n };\n};\nconst deserializeAws_json1_1Database = (output, context) => {\n return {\n Description: (0, smithy_client_1.expectString)(output.Description),\n Name: (0, smithy_client_1.expectString)(output.Name),\n Parameters: output.Parameters != null ? deserializeAws_json1_1ParametersMap(output.Parameters, context) : undefined,\n };\n};\nconst deserializeAws_json1_1DatabaseList = (output, context) => {\n const retVal = (output || [])\n .filter((e) => e != null)\n .map((entry) => {\n if (entry === null) {\n return null;\n }\n return deserializeAws_json1_1Database(entry, context);\n });\n return retVal;\n};\nconst deserializeAws_json1_1DataCatalog = (output, context) => {\n return {\n Description: (0, smithy_client_1.expectString)(output.Description),\n Name: (0, smithy_client_1.expectString)(output.Name),\n Parameters: output.Parameters != null ? deserializeAws_json1_1ParametersMap(output.Parameters, context) : undefined,\n Type: (0, smithy_client_1.expectString)(output.Type),\n };\n};\nconst deserializeAws_json1_1DataCatalogSummary = (output, context) => {\n return {\n CatalogName: (0, smithy_client_1.expectString)(output.CatalogName),\n Type: (0, smithy_client_1.expectString)(output.Type),\n };\n};\nconst deserializeAws_json1_1DataCatalogSummaryList = (output, context) => {\n const retVal = (output || [])\n .filter((e) => e != null)\n .map((entry) => {\n if (entry === null) {\n return null;\n }\n return deserializeAws_json1_1DataCatalogSummary(entry, context);\n });\n return retVal;\n};\nconst deserializeAws_json1_1Datum = (output, context) => {\n return {\n VarCharValue: (0, smithy_client_1.expectString)(output.VarCharValue),\n };\n};\nconst deserializeAws_json1_1datumList = (output, context) => {\n const retVal = (output || [])\n .filter((e) => e != null)\n .map((entry) => {\n if (entry === null) {\n return null;\n }\n return deserializeAws_json1_1Datum(entry, context);\n });\n return retVal;\n};\nconst deserializeAws_json1_1DeleteDataCatalogOutput = (output, context) => {\n return {};\n};\nconst deserializeAws_json1_1DeleteNamedQueryOutput = (output, context) => {\n return {};\n};\nconst deserializeAws_json1_1DeleteNotebookOutput = (output, context) => {\n return {};\n};\nconst deserializeAws_json1_1DeletePreparedStatementOutput = (output, context) => {\n return {};\n};\nconst deserializeAws_json1_1DeleteWorkGroupOutput = (output, context) => {\n return {};\n};\nconst deserializeAws_json1_1EncryptionConfiguration = (output, context) => {\n return {\n EncryptionOption: (0, smithy_client_1.expectString)(output.EncryptionOption),\n KmsKey: (0, smithy_client_1.expectString)(output.KmsKey),\n };\n};\nconst deserializeAws_json1_1EngineConfiguration = (output, context) => {\n return {\n AdditionalConfigs: output.AdditionalConfigs != null\n ? deserializeAws_json1_1ParametersMap(output.AdditionalConfigs, context)\n : undefined,\n CoordinatorDpuSize: (0, smithy_client_1.expectInt32)(output.CoordinatorDpuSize),\n DefaultExecutorDpuSize: (0, smithy_client_1.expectInt32)(output.DefaultExecutorDpuSize),\n MaxConcurrentDpus: (0, smithy_client_1.expectInt32)(output.MaxConcurrentDpus),\n };\n};\nconst deserializeAws_json1_1EngineVersion = (output, context) => {\n return {\n EffectiveEngineVersion: (0, smithy_client_1.expectString)(output.EffectiveEngineVersion),\n SelectedEngineVersion: (0, smithy_client_1.expectString)(output.SelectedEngineVersion),\n };\n};\nconst deserializeAws_json1_1EngineVersionsList = (output, context) => {\n const retVal = (output || [])\n .filter((e) => e != null)\n .map((entry) => {\n if (entry === null) {\n return null;\n }\n return deserializeAws_json1_1EngineVersion(entry, context);\n });\n return retVal;\n};\nconst deserializeAws_json1_1ExecutionParameters = (output, context) => {\n const retVal = (output || [])\n .filter((e) => e != null)\n .map((entry) => {\n if (entry === null) {\n return null;\n }\n return (0, smithy_client_1.expectString)(entry);\n });\n return retVal;\n};\nconst deserializeAws_json1_1ExecutorsSummary = (output, context) => {\n return {\n ExecutorId: (0, smithy_client_1.expectString)(output.ExecutorId),\n ExecutorSize: (0, smithy_client_1.expectLong)(output.ExecutorSize),\n ExecutorState: (0, smithy_client_1.expectString)(output.ExecutorState),\n ExecutorType: (0, smithy_client_1.expectString)(output.ExecutorType),\n StartDateTime: (0, smithy_client_1.expectLong)(output.StartDateTime),\n TerminationDateTime: (0, smithy_client_1.expectLong)(output.TerminationDateTime),\n };\n};\nconst deserializeAws_json1_1ExecutorsSummaryList = (output, context) => {\n const retVal = (output || [])\n .filter((e) => e != null)\n .map((entry) => {\n if (entry === null) {\n return null;\n }\n return deserializeAws_json1_1ExecutorsSummary(entry, context);\n });\n return retVal;\n};\nconst deserializeAws_json1_1ExportNotebookOutput = (output, context) => {\n return {\n NotebookMetadata: output.NotebookMetadata != null\n ? deserializeAws_json1_1NotebookMetadata(output.NotebookMetadata, context)\n : undefined,\n Payload: (0, smithy_client_1.expectString)(output.Payload),\n };\n};\nconst deserializeAws_json1_1GetCalculationExecutionCodeResponse = (output, context) => {\n return {\n CodeBlock: (0, smithy_client_1.expectString)(output.CodeBlock),\n };\n};\nconst deserializeAws_json1_1GetCalculationExecutionResponse = (output, context) => {\n return {\n CalculationExecutionId: (0, smithy_client_1.expectString)(output.CalculationExecutionId),\n Description: (0, smithy_client_1.expectString)(output.Description),\n Result: output.Result != null ? deserializeAws_json1_1CalculationResult(output.Result, context) : undefined,\n SessionId: (0, smithy_client_1.expectString)(output.SessionId),\n Statistics: output.Statistics != null ? deserializeAws_json1_1CalculationStatistics(output.Statistics, context) : undefined,\n Status: output.Status != null ? deserializeAws_json1_1CalculationStatus(output.Status, context) : undefined,\n WorkingDirectory: (0, smithy_client_1.expectString)(output.WorkingDirectory),\n };\n};\nconst deserializeAws_json1_1GetCalculationExecutionStatusResponse = (output, context) => {\n return {\n Statistics: output.Statistics != null ? deserializeAws_json1_1CalculationStatistics(output.Statistics, context) : undefined,\n Status: output.Status != null ? deserializeAws_json1_1CalculationStatus(output.Status, context) : undefined,\n };\n};\nconst deserializeAws_json1_1GetDatabaseOutput = (output, context) => {\n return {\n Database: output.Database != null ? deserializeAws_json1_1Database(output.Database, context) : undefined,\n };\n};\nconst deserializeAws_json1_1GetDataCatalogOutput = (output, context) => {\n return {\n DataCatalog: output.DataCatalog != null ? deserializeAws_json1_1DataCatalog(output.DataCatalog, context) : undefined,\n };\n};\nconst deserializeAws_json1_1GetNamedQueryOutput = (output, context) => {\n return {\n NamedQuery: output.NamedQuery != null ? deserializeAws_json1_1NamedQuery(output.NamedQuery, context) : undefined,\n };\n};\nconst deserializeAws_json1_1GetNotebookMetadataOutput = (output, context) => {\n return {\n NotebookMetadata: output.NotebookMetadata != null\n ? deserializeAws_json1_1NotebookMetadata(output.NotebookMetadata, context)\n : undefined,\n };\n};\nconst deserializeAws_json1_1GetPreparedStatementOutput = (output, context) => {\n return {\n PreparedStatement: output.PreparedStatement != null\n ? deserializeAws_json1_1PreparedStatement(output.PreparedStatement, context)\n : undefined,\n };\n};\nconst deserializeAws_json1_1GetQueryExecutionOutput = (output, context) => {\n return {\n QueryExecution: output.QueryExecution != null ? deserializeAws_json1_1QueryExecution(output.QueryExecution, context) : undefined,\n };\n};\nconst deserializeAws_json1_1GetQueryResultsOutput = (output, context) => {\n return {\n NextToken: (0, smithy_client_1.expectString)(output.NextToken),\n ResultSet: output.ResultSet != null ? deserializeAws_json1_1ResultSet(output.ResultSet, context) : undefined,\n UpdateCount: (0, smithy_client_1.expectLong)(output.UpdateCount),\n };\n};\nconst deserializeAws_json1_1GetQueryRuntimeStatisticsOutput = (output, context) => {\n return {\n QueryRuntimeStatistics: output.QueryRuntimeStatistics != null\n ? deserializeAws_json1_1QueryRuntimeStatistics(output.QueryRuntimeStatistics, context)\n : undefined,\n };\n};\nconst deserializeAws_json1_1GetSessionResponse = (output, context) => {\n return {\n Description: (0, smithy_client_1.expectString)(output.Description),\n EngineConfiguration: output.EngineConfiguration != null\n ? deserializeAws_json1_1EngineConfiguration(output.EngineConfiguration, context)\n : undefined,\n EngineVersion: (0, smithy_client_1.expectString)(output.EngineVersion),\n NotebookVersion: (0, smithy_client_1.expectString)(output.NotebookVersion),\n SessionConfiguration: output.SessionConfiguration != null\n ? deserializeAws_json1_1SessionConfiguration(output.SessionConfiguration, context)\n : undefined,\n SessionId: (0, smithy_client_1.expectString)(output.SessionId),\n Statistics: output.Statistics != null ? deserializeAws_json1_1SessionStatistics(output.Statistics, context) : undefined,\n Status: output.Status != null ? deserializeAws_json1_1SessionStatus(output.Status, context) : undefined,\n WorkGroup: (0, smithy_client_1.expectString)(output.WorkGroup),\n };\n};\nconst deserializeAws_json1_1GetSessionStatusResponse = (output, context) => {\n return {\n SessionId: (0, smithy_client_1.expectString)(output.SessionId),\n Status: output.Status != null ? deserializeAws_json1_1SessionStatus(output.Status, context) : undefined,\n };\n};\nconst deserializeAws_json1_1GetTableMetadataOutput = (output, context) => {\n return {\n TableMetadata: output.TableMetadata != null ? deserializeAws_json1_1TableMetadata(output.TableMetadata, context) : undefined,\n };\n};\nconst deserializeAws_json1_1GetWorkGroupOutput = (output, context) => {\n return {\n WorkGroup: output.WorkGroup != null ? deserializeAws_json1_1WorkGroup(output.WorkGroup, context) : undefined,\n };\n};\nconst deserializeAws_json1_1ImportNotebookOutput = (output, context) => {\n return {\n NotebookId: (0, smithy_client_1.expectString)(output.NotebookId),\n };\n};\nconst deserializeAws_json1_1InternalServerException = (output, context) => {\n return {\n Message: (0, smithy_client_1.expectString)(output.Message),\n };\n};\nconst deserializeAws_json1_1InvalidRequestException = (output, context) => {\n return {\n AthenaErrorCode: (0, smithy_client_1.expectString)(output.AthenaErrorCode),\n Message: (0, smithy_client_1.expectString)(output.Message),\n };\n};\nconst deserializeAws_json1_1ListApplicationDPUSizesOutput = (output, context) => {\n return {\n ApplicationDPUSizes: output.ApplicationDPUSizes != null\n ? deserializeAws_json1_1ApplicationDPUSizesList(output.ApplicationDPUSizes, context)\n : undefined,\n NextToken: (0, smithy_client_1.expectString)(output.NextToken),\n };\n};\nconst deserializeAws_json1_1ListCalculationExecutionsResponse = (output, context) => {\n return {\n Calculations: output.Calculations != null ? deserializeAws_json1_1CalculationsList(output.Calculations, context) : undefined,\n NextToken: (0, smithy_client_1.expectString)(output.NextToken),\n };\n};\nconst deserializeAws_json1_1ListDatabasesOutput = (output, context) => {\n return {\n DatabaseList: output.DatabaseList != null ? deserializeAws_json1_1DatabaseList(output.DatabaseList, context) : undefined,\n NextToken: (0, smithy_client_1.expectString)(output.NextToken),\n };\n};\nconst deserializeAws_json1_1ListDataCatalogsOutput = (output, context) => {\n return {\n DataCatalogsSummary: output.DataCatalogsSummary != null\n ? deserializeAws_json1_1DataCatalogSummaryList(output.DataCatalogsSummary, context)\n : undefined,\n NextToken: (0, smithy_client_1.expectString)(output.NextToken),\n };\n};\nconst deserializeAws_json1_1ListEngineVersionsOutput = (output, context) => {\n return {\n EngineVersions: output.EngineVersions != null\n ? deserializeAws_json1_1EngineVersionsList(output.EngineVersions, context)\n : undefined,\n NextToken: (0, smithy_client_1.expectString)(output.NextToken),\n };\n};\nconst deserializeAws_json1_1ListExecutorsResponse = (output, context) => {\n return {\n ExecutorsSummary: output.ExecutorsSummary != null\n ? deserializeAws_json1_1ExecutorsSummaryList(output.ExecutorsSummary, context)\n : undefined,\n NextToken: (0, smithy_client_1.expectString)(output.NextToken),\n SessionId: (0, smithy_client_1.expectString)(output.SessionId),\n };\n};\nconst deserializeAws_json1_1ListNamedQueriesOutput = (output, context) => {\n return {\n NamedQueryIds: output.NamedQueryIds != null ? deserializeAws_json1_1NamedQueryIdList(output.NamedQueryIds, context) : undefined,\n NextToken: (0, smithy_client_1.expectString)(output.NextToken),\n };\n};\nconst deserializeAws_json1_1ListNotebookMetadataOutput = (output, context) => {\n return {\n NextToken: (0, smithy_client_1.expectString)(output.NextToken),\n NotebookMetadataList: output.NotebookMetadataList != null\n ? deserializeAws_json1_1NotebookMetadataArray(output.NotebookMetadataList, context)\n : undefined,\n };\n};\nconst deserializeAws_json1_1ListNotebookSessionsResponse = (output, context) => {\n return {\n NextToken: (0, smithy_client_1.expectString)(output.NextToken),\n NotebookSessionsList: output.NotebookSessionsList != null\n ? deserializeAws_json1_1NotebookSessionsList(output.NotebookSessionsList, context)\n : undefined,\n };\n};\nconst deserializeAws_json1_1ListPreparedStatementsOutput = (output, context) => {\n return {\n NextToken: (0, smithy_client_1.expectString)(output.NextToken),\n PreparedStatements: output.PreparedStatements != null\n ? deserializeAws_json1_1PreparedStatementsList(output.PreparedStatements, context)\n : undefined,\n };\n};\nconst deserializeAws_json1_1ListQueryExecutionsOutput = (output, context) => {\n return {\n NextToken: (0, smithy_client_1.expectString)(output.NextToken),\n QueryExecutionIds: output.QueryExecutionIds != null\n ? deserializeAws_json1_1QueryExecutionIdList(output.QueryExecutionIds, context)\n : undefined,\n };\n};\nconst deserializeAws_json1_1ListSessionsResponse = (output, context) => {\n return {\n NextToken: (0, smithy_client_1.expectString)(output.NextToken),\n Sessions: output.Sessions != null ? deserializeAws_json1_1SessionsList(output.Sessions, context) : undefined,\n };\n};\nconst deserializeAws_json1_1ListTableMetadataOutput = (output, context) => {\n return {\n NextToken: (0, smithy_client_1.expectString)(output.NextToken),\n TableMetadataList: output.TableMetadataList != null\n ? deserializeAws_json1_1TableMetadataList(output.TableMetadataList, context)\n : undefined,\n };\n};\nconst deserializeAws_json1_1ListTagsForResourceOutput = (output, context) => {\n return {\n NextToken: (0, smithy_client_1.expectString)(output.NextToken),\n Tags: output.Tags != null ? deserializeAws_json1_1TagList(output.Tags, context) : undefined,\n };\n};\nconst deserializeAws_json1_1ListWorkGroupsOutput = (output, context) => {\n return {\n NextToken: (0, smithy_client_1.expectString)(output.NextToken),\n WorkGroups: output.WorkGroups != null ? deserializeAws_json1_1WorkGroupsList(output.WorkGroups, context) : undefined,\n };\n};\nconst deserializeAws_json1_1MetadataException = (output, context) => {\n return {\n Message: (0, smithy_client_1.expectString)(output.Message),\n };\n};\nconst deserializeAws_json1_1NamedQuery = (output, context) => {\n return {\n Database: (0, smithy_client_1.expectString)(output.Database),\n Description: (0, smithy_client_1.expectString)(output.Description),\n Name: (0, smithy_client_1.expectString)(output.Name),\n NamedQueryId: (0, smithy_client_1.expectString)(output.NamedQueryId),\n QueryString: (0, smithy_client_1.expectString)(output.QueryString),\n WorkGroup: (0, smithy_client_1.expectString)(output.WorkGroup),\n };\n};\nconst deserializeAws_json1_1NamedQueryIdList = (output, context) => {\n const retVal = (output || [])\n .filter((e) => e != null)\n .map((entry) => {\n if (entry === null) {\n return null;\n }\n return (0, smithy_client_1.expectString)(entry);\n });\n return retVal;\n};\nconst deserializeAws_json1_1NamedQueryList = (output, context) => {\n const retVal = (output || [])\n .filter((e) => e != null)\n .map((entry) => {\n if (entry === null) {\n return null;\n }\n return deserializeAws_json1_1NamedQuery(entry, context);\n });\n return retVal;\n};\nconst deserializeAws_json1_1NotebookMetadata = (output, context) => {\n return {\n CreationTime: output.CreationTime != null\n ? (0, smithy_client_1.expectNonNull)((0, smithy_client_1.parseEpochTimestamp)((0, smithy_client_1.expectNumber)(output.CreationTime)))\n : undefined,\n LastModifiedTime: output.LastModifiedTime != null\n ? (0, smithy_client_1.expectNonNull)((0, smithy_client_1.parseEpochTimestamp)((0, smithy_client_1.expectNumber)(output.LastModifiedTime)))\n : undefined,\n Name: (0, smithy_client_1.expectString)(output.Name),\n NotebookId: (0, smithy_client_1.expectString)(output.NotebookId),\n Type: (0, smithy_client_1.expectString)(output.Type),\n WorkGroup: (0, smithy_client_1.expectString)(output.WorkGroup),\n };\n};\nconst deserializeAws_json1_1NotebookMetadataArray = (output, context) => {\n const retVal = (output || [])\n .filter((e) => e != null)\n .map((entry) => {\n if (entry === null) {\n return null;\n }\n return deserializeAws_json1_1NotebookMetadata(entry, context);\n });\n return retVal;\n};\nconst deserializeAws_json1_1NotebookSessionsList = (output, context) => {\n const retVal = (output || [])\n .filter((e) => e != null)\n .map((entry) => {\n if (entry === null) {\n return null;\n }\n return deserializeAws_json1_1NotebookSessionSummary(entry, context);\n });\n return retVal;\n};\nconst deserializeAws_json1_1NotebookSessionSummary = (output, context) => {\n return {\n CreationTime: output.CreationTime != null\n ? (0, smithy_client_1.expectNonNull)((0, smithy_client_1.parseEpochTimestamp)((0, smithy_client_1.expectNumber)(output.CreationTime)))\n : undefined,\n SessionId: (0, smithy_client_1.expectString)(output.SessionId),\n };\n};\nconst deserializeAws_json1_1ParametersMap = (output, context) => {\n return Object.entries(output).reduce((acc, [key, value]) => {\n if (value === null) {\n return acc;\n }\n acc[key] = (0, smithy_client_1.expectString)(value);\n return acc;\n }, {});\n};\nconst deserializeAws_json1_1PreparedStatement = (output, context) => {\n return {\n Description: (0, smithy_client_1.expectString)(output.Description),\n LastModifiedTime: output.LastModifiedTime != null\n ? (0, smithy_client_1.expectNonNull)((0, smithy_client_1.parseEpochTimestamp)((0, smithy_client_1.expectNumber)(output.LastModifiedTime)))\n : undefined,\n QueryStatement: (0, smithy_client_1.expectString)(output.QueryStatement),\n StatementName: (0, smithy_client_1.expectString)(output.StatementName),\n WorkGroupName: (0, smithy_client_1.expectString)(output.WorkGroupName),\n };\n};\nconst deserializeAws_json1_1PreparedStatementDetailsList = (output, context) => {\n const retVal = (output || [])\n .filter((e) => e != null)\n .map((entry) => {\n if (entry === null) {\n return null;\n }\n return deserializeAws_json1_1PreparedStatement(entry, context);\n });\n return retVal;\n};\nconst deserializeAws_json1_1PreparedStatementsList = (output, context) => {\n const retVal = (output || [])\n .filter((e) => e != null)\n .map((entry) => {\n if (entry === null) {\n return null;\n }\n return deserializeAws_json1_1PreparedStatementSummary(entry, context);\n });\n return retVal;\n};\nconst deserializeAws_json1_1PreparedStatementSummary = (output, context) => {\n return {\n LastModifiedTime: output.LastModifiedTime != null\n ? (0, smithy_client_1.expectNonNull)((0, smithy_client_1.parseEpochTimestamp)((0, smithy_client_1.expectNumber)(output.LastModifiedTime)))\n : undefined,\n StatementName: (0, smithy_client_1.expectString)(output.StatementName),\n };\n};\nconst deserializeAws_json1_1QueryExecution = (output, context) => {\n return {\n EngineVersion: output.EngineVersion != null ? deserializeAws_json1_1EngineVersion(output.EngineVersion, context) : undefined,\n ExecutionParameters: output.ExecutionParameters != null\n ? deserializeAws_json1_1ExecutionParameters(output.ExecutionParameters, context)\n : undefined,\n Query: (0, smithy_client_1.expectString)(output.Query),\n QueryExecutionContext: output.QueryExecutionContext != null\n ? deserializeAws_json1_1QueryExecutionContext(output.QueryExecutionContext, context)\n : undefined,\n QueryExecutionId: (0, smithy_client_1.expectString)(output.QueryExecutionId),\n ResultConfiguration: output.ResultConfiguration != null\n ? deserializeAws_json1_1ResultConfiguration(output.ResultConfiguration, context)\n : undefined,\n ResultReuseConfiguration: output.ResultReuseConfiguration != null\n ? deserializeAws_json1_1ResultReuseConfiguration(output.ResultReuseConfiguration, context)\n : undefined,\n StatementType: (0, smithy_client_1.expectString)(output.StatementType),\n Statistics: output.Statistics != null\n ? deserializeAws_json1_1QueryExecutionStatistics(output.Statistics, context)\n : undefined,\n Status: output.Status != null ? deserializeAws_json1_1QueryExecutionStatus(output.Status, context) : undefined,\n WorkGroup: (0, smithy_client_1.expectString)(output.WorkGroup),\n };\n};\nconst deserializeAws_json1_1QueryExecutionContext = (output, context) => {\n return {\n Catalog: (0, smithy_client_1.expectString)(output.Catalog),\n Database: (0, smithy_client_1.expectString)(output.Database),\n };\n};\nconst deserializeAws_json1_1QueryExecutionIdList = (output, context) => {\n const retVal = (output || [])\n .filter((e) => e != null)\n .map((entry) => {\n if (entry === null) {\n return null;\n }\n return (0, smithy_client_1.expectString)(entry);\n });\n return retVal;\n};\nconst deserializeAws_json1_1QueryExecutionList = (output, context) => {\n const retVal = (output || [])\n .filter((e) => e != null)\n .map((entry) => {\n if (entry === null) {\n return null;\n }\n return deserializeAws_json1_1QueryExecution(entry, context);\n });\n return retVal;\n};\nconst deserializeAws_json1_1QueryExecutionStatistics = (output, context) => {\n return {\n DataManifestLocation: (0, smithy_client_1.expectString)(output.DataManifestLocation),\n DataScannedInBytes: (0, smithy_client_1.expectLong)(output.DataScannedInBytes),\n EngineExecutionTimeInMillis: (0, smithy_client_1.expectLong)(output.EngineExecutionTimeInMillis),\n QueryPlanningTimeInMillis: (0, smithy_client_1.expectLong)(output.QueryPlanningTimeInMillis),\n QueryQueueTimeInMillis: (0, smithy_client_1.expectLong)(output.QueryQueueTimeInMillis),\n ResultReuseInformation: output.ResultReuseInformation != null\n ? deserializeAws_json1_1ResultReuseInformation(output.ResultReuseInformation, context)\n : undefined,\n ServiceProcessingTimeInMillis: (0, smithy_client_1.expectLong)(output.ServiceProcessingTimeInMillis),\n TotalExecutionTimeInMillis: (0, smithy_client_1.expectLong)(output.TotalExecutionTimeInMillis),\n };\n};\nconst deserializeAws_json1_1QueryExecutionStatus = (output, context) => {\n return {\n AthenaError: output.AthenaError != null ? deserializeAws_json1_1AthenaError(output.AthenaError, context) : undefined,\n CompletionDateTime: output.CompletionDateTime != null\n ? (0, smithy_client_1.expectNonNull)((0, smithy_client_1.parseEpochTimestamp)((0, smithy_client_1.expectNumber)(output.CompletionDateTime)))\n : undefined,\n State: (0, smithy_client_1.expectString)(output.State),\n StateChangeReason: (0, smithy_client_1.expectString)(output.StateChangeReason),\n SubmissionDateTime: output.SubmissionDateTime != null\n ? (0, smithy_client_1.expectNonNull)((0, smithy_client_1.parseEpochTimestamp)((0, smithy_client_1.expectNumber)(output.SubmissionDateTime)))\n : undefined,\n };\n};\nconst deserializeAws_json1_1QueryRuntimeStatistics = (output, context) => {\n return {\n OutputStage: output.OutputStage != null ? deserializeAws_json1_1QueryStage(output.OutputStage, context) : undefined,\n Rows: output.Rows != null ? deserializeAws_json1_1QueryRuntimeStatisticsRows(output.Rows, context) : undefined,\n Timeline: output.Timeline != null\n ? deserializeAws_json1_1QueryRuntimeStatisticsTimeline(output.Timeline, context)\n : undefined,\n };\n};\nconst deserializeAws_json1_1QueryRuntimeStatisticsRows = (output, context) => {\n return {\n InputBytes: (0, smithy_client_1.expectLong)(output.InputBytes),\n InputRows: (0, smithy_client_1.expectLong)(output.InputRows),\n OutputBytes: (0, smithy_client_1.expectLong)(output.OutputBytes),\n OutputRows: (0, smithy_client_1.expectLong)(output.OutputRows),\n };\n};\nconst deserializeAws_json1_1QueryRuntimeStatisticsTimeline = (output, context) => {\n return {\n EngineExecutionTimeInMillis: (0, smithy_client_1.expectLong)(output.EngineExecutionTimeInMillis),\n QueryPlanningTimeInMillis: (0, smithy_client_1.expectLong)(output.QueryPlanningTimeInMillis),\n QueryQueueTimeInMillis: (0, smithy_client_1.expectLong)(output.QueryQueueTimeInMillis),\n ServiceProcessingTimeInMillis: (0, smithy_client_1.expectLong)(output.ServiceProcessingTimeInMillis),\n TotalExecutionTimeInMillis: (0, smithy_client_1.expectLong)(output.TotalExecutionTimeInMillis),\n };\n};\nconst deserializeAws_json1_1QueryStage = (output, context) => {\n return {\n ExecutionTime: (0, smithy_client_1.expectLong)(output.ExecutionTime),\n InputBytes: (0, smithy_client_1.expectLong)(output.InputBytes),\n InputRows: (0, smithy_client_1.expectLong)(output.InputRows),\n OutputBytes: (0, smithy_client_1.expectLong)(output.OutputBytes),\n OutputRows: (0, smithy_client_1.expectLong)(output.OutputRows),\n QueryStagePlan: output.QueryStagePlan != null\n ? deserializeAws_json1_1QueryStagePlanNode(output.QueryStagePlan, context)\n : undefined,\n StageId: (0, smithy_client_1.expectLong)(output.StageId),\n State: (0, smithy_client_1.expectString)(output.State),\n SubStages: output.SubStages != null ? deserializeAws_json1_1QueryStages(output.SubStages, context) : undefined,\n };\n};\nconst deserializeAws_json1_1QueryStagePlanNode = (output, context) => {\n return {\n Children: output.Children != null ? deserializeAws_json1_1QueryStagePlanNodes(output.Children, context) : undefined,\n Identifier: (0, smithy_client_1.expectString)(output.Identifier),\n Name: (0, smithy_client_1.expectString)(output.Name),\n RemoteSources: output.RemoteSources != null ? deserializeAws_json1_1StringList(output.RemoteSources, context) : undefined,\n };\n};\nconst deserializeAws_json1_1QueryStagePlanNodes = (output, context) => {\n const retVal = (output || [])\n .filter((e) => e != null)\n .map((entry) => {\n if (entry === null) {\n return null;\n }\n return deserializeAws_json1_1QueryStagePlanNode(entry, context);\n });\n return retVal;\n};\nconst deserializeAws_json1_1QueryStages = (output, context) => {\n const retVal = (output || [])\n .filter((e) => e != null)\n .map((entry) => {\n if (entry === null) {\n return null;\n }\n return deserializeAws_json1_1QueryStage(entry, context);\n });\n return retVal;\n};\nconst deserializeAws_json1_1ResourceNotFoundException = (output, context) => {\n return {\n Message: (0, smithy_client_1.expectString)(output.Message),\n ResourceName: (0, smithy_client_1.expectString)(output.ResourceName),\n };\n};\nconst deserializeAws_json1_1ResultConfiguration = (output, context) => {\n return {\n AclConfiguration: output.AclConfiguration != null\n ? deserializeAws_json1_1AclConfiguration(output.AclConfiguration, context)\n : undefined,\n EncryptionConfiguration: output.EncryptionConfiguration != null\n ? deserializeAws_json1_1EncryptionConfiguration(output.EncryptionConfiguration, context)\n : undefined,\n ExpectedBucketOwner: (0, smithy_client_1.expectString)(output.ExpectedBucketOwner),\n OutputLocation: (0, smithy_client_1.expectString)(output.OutputLocation),\n };\n};\nconst deserializeAws_json1_1ResultReuseByAgeConfiguration = (output, context) => {\n return {\n Enabled: (0, smithy_client_1.expectBoolean)(output.Enabled),\n MaxAgeInMinutes: (0, smithy_client_1.expectInt32)(output.MaxAgeInMinutes),\n };\n};\nconst deserializeAws_json1_1ResultReuseConfiguration = (output, context) => {\n return {\n ResultReuseByAgeConfiguration: output.ResultReuseByAgeConfiguration != null\n ? deserializeAws_json1_1ResultReuseByAgeConfiguration(output.ResultReuseByAgeConfiguration, context)\n : undefined,\n };\n};\nconst deserializeAws_json1_1ResultReuseInformation = (output, context) => {\n return {\n ReusedPreviousResult: (0, smithy_client_1.expectBoolean)(output.ReusedPreviousResult),\n };\n};\nconst deserializeAws_json1_1ResultSet = (output, context) => {\n return {\n ResultSetMetadata: output.ResultSetMetadata != null\n ? deserializeAws_json1_1ResultSetMetadata(output.ResultSetMetadata, context)\n : undefined,\n Rows: output.Rows != null ? deserializeAws_json1_1RowList(output.Rows, context) : undefined,\n };\n};\nconst deserializeAws_json1_1ResultSetMetadata = (output, context) => {\n return {\n ColumnInfo: output.ColumnInfo != null ? deserializeAws_json1_1ColumnInfoList(output.ColumnInfo, context) : undefined,\n };\n};\nconst deserializeAws_json1_1Row = (output, context) => {\n return {\n Data: output.Data != null ? deserializeAws_json1_1datumList(output.Data, context) : undefined,\n };\n};\nconst deserializeAws_json1_1RowList = (output, context) => {\n const retVal = (output || [])\n .filter((e) => e != null)\n .map((entry) => {\n if (entry === null) {\n return null;\n }\n return deserializeAws_json1_1Row(entry, context);\n });\n return retVal;\n};\nconst deserializeAws_json1_1SessionAlreadyExistsException = (output, context) => {\n return {\n Message: (0, smithy_client_1.expectString)(output.Message),\n };\n};\nconst deserializeAws_json1_1SessionConfiguration = (output, context) => {\n return {\n EncryptionConfiguration: output.EncryptionConfiguration != null\n ? deserializeAws_json1_1EncryptionConfiguration(output.EncryptionConfiguration, context)\n : undefined,\n ExecutionRole: (0, smithy_client_1.expectString)(output.ExecutionRole),\n IdleTimeoutSeconds: (0, smithy_client_1.expectLong)(output.IdleTimeoutSeconds),\n WorkingDirectory: (0, smithy_client_1.expectString)(output.WorkingDirectory),\n };\n};\nconst deserializeAws_json1_1SessionsList = (output, context) => {\n const retVal = (output || [])\n .filter((e) => e != null)\n .map((entry) => {\n if (entry === null) {\n return null;\n }\n return deserializeAws_json1_1SessionSummary(entry, context);\n });\n return retVal;\n};\nconst deserializeAws_json1_1SessionStatistics = (output, context) => {\n return {\n DpuExecutionInMillis: (0, smithy_client_1.expectLong)(output.DpuExecutionInMillis),\n };\n};\nconst deserializeAws_json1_1SessionStatus = (output, context) => {\n return {\n EndDateTime: output.EndDateTime != null\n ? (0, smithy_client_1.expectNonNull)((0, smithy_client_1.parseEpochTimestamp)((0, smithy_client_1.expectNumber)(output.EndDateTime)))\n : undefined,\n IdleSinceDateTime: output.IdleSinceDateTime != null\n ? (0, smithy_client_1.expectNonNull)((0, smithy_client_1.parseEpochTimestamp)((0, smithy_client_1.expectNumber)(output.IdleSinceDateTime)))\n : undefined,\n LastModifiedDateTime: output.LastModifiedDateTime != null\n ? (0, smithy_client_1.expectNonNull)((0, smithy_client_1.parseEpochTimestamp)((0, smithy_client_1.expectNumber)(output.LastModifiedDateTime)))\n : undefined,\n StartDateTime: output.StartDateTime != null\n ? (0, smithy_client_1.expectNonNull)((0, smithy_client_1.parseEpochTimestamp)((0, smithy_client_1.expectNumber)(output.StartDateTime)))\n : undefined,\n State: (0, smithy_client_1.expectString)(output.State),\n StateChangeReason: (0, smithy_client_1.expectString)(output.StateChangeReason),\n };\n};\nconst deserializeAws_json1_1SessionSummary = (output, context) => {\n return {\n Description: (0, smithy_client_1.expectString)(output.Description),\n EngineVersion: output.EngineVersion != null ? deserializeAws_json1_1EngineVersion(output.EngineVersion, context) : undefined,\n NotebookVersion: (0, smithy_client_1.expectString)(output.NotebookVersion),\n SessionId: (0, smithy_client_1.expectString)(output.SessionId),\n Status: output.Status != null ? deserializeAws_json1_1SessionStatus(output.Status, context) : undefined,\n };\n};\nconst deserializeAws_json1_1StartCalculationExecutionResponse = (output, context) => {\n return {\n CalculationExecutionId: (0, smithy_client_1.expectString)(output.CalculationExecutionId),\n State: (0, smithy_client_1.expectString)(output.State),\n };\n};\nconst deserializeAws_json1_1StartQueryExecutionOutput = (output, context) => {\n return {\n QueryExecutionId: (0, smithy_client_1.expectString)(output.QueryExecutionId),\n };\n};\nconst deserializeAws_json1_1StartSessionResponse = (output, context) => {\n return {\n SessionId: (0, smithy_client_1.expectString)(output.SessionId),\n State: (0, smithy_client_1.expectString)(output.State),\n };\n};\nconst deserializeAws_json1_1StopCalculationExecutionResponse = (output, context) => {\n return {\n State: (0, smithy_client_1.expectString)(output.State),\n };\n};\nconst deserializeAws_json1_1StopQueryExecutionOutput = (output, context) => {\n return {};\n};\nconst deserializeAws_json1_1StringList = (output, context) => {\n const retVal = (output || [])\n .filter((e) => e != null)\n .map((entry) => {\n if (entry === null) {\n return null;\n }\n return (0, smithy_client_1.expectString)(entry);\n });\n return retVal;\n};\nconst deserializeAws_json1_1SupportedDPUSizeList = (output, context) => {\n const retVal = (output || [])\n .filter((e) => e != null)\n .map((entry) => {\n if (entry === null) {\n return null;\n }\n return (0, smithy_client_1.expectInt32)(entry);\n });\n return retVal;\n};\nconst deserializeAws_json1_1TableMetadata = (output, context) => {\n return {\n Columns: output.Columns != null ? deserializeAws_json1_1ColumnList(output.Columns, context) : undefined,\n CreateTime: output.CreateTime != null ? (0, smithy_client_1.expectNonNull)((0, smithy_client_1.parseEpochTimestamp)((0, smithy_client_1.expectNumber)(output.CreateTime))) : undefined,\n LastAccessTime: output.LastAccessTime != null\n ? (0, smithy_client_1.expectNonNull)((0, smithy_client_1.parseEpochTimestamp)((0, smithy_client_1.expectNumber)(output.LastAccessTime)))\n : undefined,\n Name: (0, smithy_client_1.expectString)(output.Name),\n Parameters: output.Parameters != null ? deserializeAws_json1_1ParametersMap(output.Parameters, context) : undefined,\n PartitionKeys: output.PartitionKeys != null ? deserializeAws_json1_1ColumnList(output.PartitionKeys, context) : undefined,\n TableType: (0, smithy_client_1.expectString)(output.TableType),\n };\n};\nconst deserializeAws_json1_1TableMetadataList = (output, context) => {\n const retVal = (output || [])\n .filter((e) => e != null)\n .map((entry) => {\n if (entry === null) {\n return null;\n }\n return deserializeAws_json1_1TableMetadata(entry, context);\n });\n return retVal;\n};\nconst deserializeAws_json1_1Tag = (output, context) => {\n return {\n Key: (0, smithy_client_1.expectString)(output.Key),\n Value: (0, smithy_client_1.expectString)(output.Value),\n };\n};\nconst deserializeAws_json1_1TagList = (output, context) => {\n const retVal = (output || [])\n .filter((e) => e != null)\n .map((entry) => {\n if (entry === null) {\n return null;\n }\n return deserializeAws_json1_1Tag(entry, context);\n });\n return retVal;\n};\nconst deserializeAws_json1_1TagResourceOutput = (output, context) => {\n return {};\n};\nconst deserializeAws_json1_1TerminateSessionResponse = (output, context) => {\n return {\n State: (0, smithy_client_1.expectString)(output.State),\n };\n};\nconst deserializeAws_json1_1TooManyRequestsException = (output, context) => {\n return {\n Message: (0, smithy_client_1.expectString)(output.Message),\n Reason: (0, smithy_client_1.expectString)(output.Reason),\n };\n};\nconst deserializeAws_json1_1UnprocessedNamedQueryId = (output, context) => {\n return {\n ErrorCode: (0, smithy_client_1.expectString)(output.ErrorCode),\n ErrorMessage: (0, smithy_client_1.expectString)(output.ErrorMessage),\n NamedQueryId: (0, smithy_client_1.expectString)(output.NamedQueryId),\n };\n};\nconst deserializeAws_json1_1UnprocessedNamedQueryIdList = (output, context) => {\n const retVal = (output || [])\n .filter((e) => e != null)\n .map((entry) => {\n if (entry === null) {\n return null;\n }\n return deserializeAws_json1_1UnprocessedNamedQueryId(entry, context);\n });\n return retVal;\n};\nconst deserializeAws_json1_1UnprocessedPreparedStatementName = (output, context) => {\n return {\n ErrorCode: (0, smithy_client_1.expectString)(output.ErrorCode),\n ErrorMessage: (0, smithy_client_1.expectString)(output.ErrorMessage),\n StatementName: (0, smithy_client_1.expectString)(output.StatementName),\n };\n};\nconst deserializeAws_json1_1UnprocessedPreparedStatementNameList = (output, context) => {\n const retVal = (output || [])\n .filter((e) => e != null)\n .map((entry) => {\n if (entry === null) {\n return null;\n }\n return deserializeAws_json1_1UnprocessedPreparedStatementName(entry, context);\n });\n return retVal;\n};\nconst deserializeAws_json1_1UnprocessedQueryExecutionId = (output, context) => {\n return {\n ErrorCode: (0, smithy_client_1.expectString)(output.ErrorCode),\n ErrorMessage: (0, smithy_client_1.expectString)(output.ErrorMessage),\n QueryExecutionId: (0, smithy_client_1.expectString)(output.QueryExecutionId),\n };\n};\nconst deserializeAws_json1_1UnprocessedQueryExecutionIdList = (output, context) => {\n const retVal = (output || [])\n .filter((e) => e != null)\n .map((entry) => {\n if (entry === null) {\n return null;\n }\n return deserializeAws_json1_1UnprocessedQueryExecutionId(entry, context);\n });\n return retVal;\n};\nconst deserializeAws_json1_1UntagResourceOutput = (output, context) => {\n return {};\n};\nconst deserializeAws_json1_1UpdateDataCatalogOutput = (output, context) => {\n return {};\n};\nconst deserializeAws_json1_1UpdateNamedQueryOutput = (output, context) => {\n return {};\n};\nconst deserializeAws_json1_1UpdateNotebookMetadataOutput = (output, context) => {\n return {};\n};\nconst deserializeAws_json1_1UpdateNotebookOutput = (output, context) => {\n return {};\n};\nconst deserializeAws_json1_1UpdatePreparedStatementOutput = (output, context) => {\n return {};\n};\nconst deserializeAws_json1_1UpdateWorkGroupOutput = (output, context) => {\n return {};\n};\nconst deserializeAws_json1_1WorkGroup = (output, context) => {\n return {\n Configuration: output.Configuration != null\n ? deserializeAws_json1_1WorkGroupConfiguration(output.Configuration, context)\n : undefined,\n CreationTime: output.CreationTime != null\n ? (0, smithy_client_1.expectNonNull)((0, smithy_client_1.parseEpochTimestamp)((0, smithy_client_1.expectNumber)(output.CreationTime)))\n : undefined,\n Description: (0, smithy_client_1.expectString)(output.Description),\n Name: (0, smithy_client_1.expectString)(output.Name),\n State: (0, smithy_client_1.expectString)(output.State),\n };\n};\nconst deserializeAws_json1_1WorkGroupConfiguration = (output, context) => {\n return {\n AdditionalConfiguration: (0, smithy_client_1.expectString)(output.AdditionalConfiguration),\n BytesScannedCutoffPerQuery: (0, smithy_client_1.expectLong)(output.BytesScannedCutoffPerQuery),\n CustomerContentEncryptionConfiguration: output.CustomerContentEncryptionConfiguration != null\n ? deserializeAws_json1_1CustomerContentEncryptionConfiguration(output.CustomerContentEncryptionConfiguration, context)\n : undefined,\n EnforceWorkGroupConfiguration: (0, smithy_client_1.expectBoolean)(output.EnforceWorkGroupConfiguration),\n EngineVersion: output.EngineVersion != null ? deserializeAws_json1_1EngineVersion(output.EngineVersion, context) : undefined,\n ExecutionRole: (0, smithy_client_1.expectString)(output.ExecutionRole),\n PublishCloudWatchMetricsEnabled: (0, smithy_client_1.expectBoolean)(output.PublishCloudWatchMetricsEnabled),\n RequesterPaysEnabled: (0, smithy_client_1.expectBoolean)(output.RequesterPaysEnabled),\n ResultConfiguration: output.ResultConfiguration != null\n ? deserializeAws_json1_1ResultConfiguration(output.ResultConfiguration, context)\n : undefined,\n };\n};\nconst deserializeAws_json1_1WorkGroupsList = (output, context) => {\n const retVal = (output || [])\n .filter((e) => e != null)\n .map((entry) => {\n if (entry === null) {\n return null;\n }\n return deserializeAws_json1_1WorkGroupSummary(entry, context);\n });\n return retVal;\n};\nconst deserializeAws_json1_1WorkGroupSummary = (output, context) => {\n return {\n CreationTime: output.CreationTime != null\n ? (0, smithy_client_1.expectNonNull)((0, smithy_client_1.parseEpochTimestamp)((0, smithy_client_1.expectNumber)(output.CreationTime)))\n : undefined,\n Description: (0, smithy_client_1.expectString)(output.Description),\n EngineVersion: output.EngineVersion != null ? deserializeAws_json1_1EngineVersion(output.EngineVersion, context) : undefined,\n Name: (0, smithy_client_1.expectString)(output.Name),\n State: (0, smithy_client_1.expectString)(output.State),\n };\n};\nconst deserializeMetadata = (output) => ({\n httpStatusCode: output.statusCode,\n requestId: output.headers[\"x-amzn-requestid\"] ?? output.headers[\"x-amzn-request-id\"] ?? output.headers[\"x-amz-request-id\"],\n extendedRequestId: output.headers[\"x-amz-id-2\"],\n cfId: output.headers[\"x-amz-cf-id\"],\n});\nconst collectBody = (streamBody = new Uint8Array(), context) => {\n if (streamBody instanceof Uint8Array) {\n return Promise.resolve(streamBody);\n }\n return context.streamCollector(streamBody) || Promise.resolve(new Uint8Array());\n};\nconst collectBodyString = (streamBody, context) => collectBody(streamBody, context).then((body) => context.utf8Encoder(body));\nconst buildHttpRpcRequest = async (context, headers, path, resolvedHostname, body) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const contents = {\n protocol,\n hostname,\n port,\n method: \"POST\",\n path: basePath.endsWith(\"/\") ? basePath.slice(0, -1) + path : basePath + path,\n headers,\n };\n if (resolvedHostname !== undefined) {\n contents.hostname = resolvedHostname;\n }\n if (body !== undefined) {\n contents.body = body;\n }\n return new protocol_http_1.HttpRequest(contents);\n};\nconst parseBody = (streamBody, context) => collectBodyString(streamBody, context).then((encoded) => {\n if (encoded.length) {\n return JSON.parse(encoded);\n }\n return {};\n});\nconst parseErrorBody = async (errorBody, context) => {\n const value = await parseBody(errorBody, context);\n value.message = value.message ?? value.Message;\n return value;\n};\nconst loadRestJsonErrorCode = (output, data) => {\n const findKey = (object, key) => Object.keys(object).find((k) => k.toLowerCase() === key.toLowerCase());\n const sanitizeErrorCode = (rawValue) => {\n let cleanValue = rawValue;\n if (typeof cleanValue === \"number\") {\n cleanValue = cleanValue.toString();\n }\n if (cleanValue.indexOf(\",\") >= 0) {\n cleanValue = cleanValue.split(\",\")[0];\n }\n if (cleanValue.indexOf(\":\") >= 0) {\n cleanValue = cleanValue.split(\":\")[0];\n }\n if (cleanValue.indexOf(\"#\") >= 0) {\n cleanValue = cleanValue.split(\"#\")[1];\n }\n return cleanValue;\n };\n const headerKey = findKey(output.headers, \"x-amzn-errortype\");\n if (headerKey !== undefined) {\n return sanitizeErrorCode(output.headers[headerKey]);\n }\n if (data.code !== undefined) {\n return sanitizeErrorCode(data.code);\n }\n if (data[\"__type\"] !== undefined) {\n return sanitizeErrorCode(data[\"__type\"]);\n }\n};\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BatchGetNamedQueryCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_json1_1_1 = require(\"../protocols/Aws_json1_1\");\nclass BatchGetNamedQueryCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, BatchGetNamedQueryCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"AthenaClient\";\n const commandName = \"BatchGetNamedQueryCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.BatchGetNamedQueryInputFilterSensitiveLog,\n outputFilterSensitiveLog: models_0_1.BatchGetNamedQueryOutputFilterSensitiveLog,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_json1_1_1.serializeAws_json1_1BatchGetNamedQueryCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_json1_1_1.deserializeAws_json1_1BatchGetNamedQueryCommand)(output, context);\n }\n}\nexports.BatchGetNamedQueryCommand = BatchGetNamedQueryCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BatchGetPreparedStatementCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_json1_1_1 = require(\"../protocols/Aws_json1_1\");\nclass BatchGetPreparedStatementCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, BatchGetPreparedStatementCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"AthenaClient\";\n const commandName = \"BatchGetPreparedStatementCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.BatchGetPreparedStatementInputFilterSensitiveLog,\n outputFilterSensitiveLog: models_0_1.BatchGetPreparedStatementOutputFilterSensitiveLog,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_json1_1_1.serializeAws_json1_1BatchGetPreparedStatementCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_json1_1_1.deserializeAws_json1_1BatchGetPreparedStatementCommand)(output, context);\n }\n}\nexports.BatchGetPreparedStatementCommand = BatchGetPreparedStatementCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BatchGetQueryExecutionCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_json1_1_1 = require(\"../protocols/Aws_json1_1\");\nclass BatchGetQueryExecutionCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, BatchGetQueryExecutionCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"AthenaClient\";\n const commandName = \"BatchGetQueryExecutionCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.BatchGetQueryExecutionInputFilterSensitiveLog,\n outputFilterSensitiveLog: models_0_1.BatchGetQueryExecutionOutputFilterSensitiveLog,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_json1_1_1.serializeAws_json1_1BatchGetQueryExecutionCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_json1_1_1.deserializeAws_json1_1BatchGetQueryExecutionCommand)(output, context);\n }\n}\nexports.BatchGetQueryExecutionCommand = BatchGetQueryExecutionCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CreateDataCatalogCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_json1_1_1 = require(\"../protocols/Aws_json1_1\");\nclass CreateDataCatalogCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, CreateDataCatalogCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"AthenaClient\";\n const commandName = \"CreateDataCatalogCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.CreateDataCatalogInputFilterSensitiveLog,\n outputFilterSensitiveLog: models_0_1.CreateDataCatalogOutputFilterSensitiveLog,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_json1_1_1.serializeAws_json1_1CreateDataCatalogCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_json1_1_1.deserializeAws_json1_1CreateDataCatalogCommand)(output, context);\n }\n}\nexports.CreateDataCatalogCommand = CreateDataCatalogCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CreateNamedQueryCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_json1_1_1 = require(\"../protocols/Aws_json1_1\");\nclass CreateNamedQueryCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, CreateNamedQueryCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"AthenaClient\";\n const commandName = \"CreateNamedQueryCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.CreateNamedQueryInputFilterSensitiveLog,\n outputFilterSensitiveLog: models_0_1.CreateNamedQueryOutputFilterSensitiveLog,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_json1_1_1.serializeAws_json1_1CreateNamedQueryCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_json1_1_1.deserializeAws_json1_1CreateNamedQueryCommand)(output, context);\n }\n}\nexports.CreateNamedQueryCommand = CreateNamedQueryCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CreateNotebookCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_json1_1_1 = require(\"../protocols/Aws_json1_1\");\nclass CreateNotebookCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, CreateNotebookCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"AthenaClient\";\n const commandName = \"CreateNotebookCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.CreateNotebookInputFilterSensitiveLog,\n outputFilterSensitiveLog: models_0_1.CreateNotebookOutputFilterSensitiveLog,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_json1_1_1.serializeAws_json1_1CreateNotebookCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_json1_1_1.deserializeAws_json1_1CreateNotebookCommand)(output, context);\n }\n}\nexports.CreateNotebookCommand = CreateNotebookCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CreatePreparedStatementCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_json1_1_1 = require(\"../protocols/Aws_json1_1\");\nclass CreatePreparedStatementCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, CreatePreparedStatementCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"AthenaClient\";\n const commandName = \"CreatePreparedStatementCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.CreatePreparedStatementInputFilterSensitiveLog,\n outputFilterSensitiveLog: models_0_1.CreatePreparedStatementOutputFilterSensitiveLog,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_json1_1_1.serializeAws_json1_1CreatePreparedStatementCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_json1_1_1.deserializeAws_json1_1CreatePreparedStatementCommand)(output, context);\n }\n}\nexports.CreatePreparedStatementCommand = CreatePreparedStatementCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CreatePresignedNotebookUrlCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_json1_1_1 = require(\"../protocols/Aws_json1_1\");\nclass CreatePresignedNotebookUrlCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, CreatePresignedNotebookUrlCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"AthenaClient\";\n const commandName = \"CreatePresignedNotebookUrlCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.CreatePresignedNotebookUrlRequestFilterSensitiveLog,\n outputFilterSensitiveLog: models_0_1.CreatePresignedNotebookUrlResponseFilterSensitiveLog,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_json1_1_1.serializeAws_json1_1CreatePresignedNotebookUrlCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_json1_1_1.deserializeAws_json1_1CreatePresignedNotebookUrlCommand)(output, context);\n }\n}\nexports.CreatePresignedNotebookUrlCommand = CreatePresignedNotebookUrlCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CreateWorkGroupCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_json1_1_1 = require(\"../protocols/Aws_json1_1\");\nclass CreateWorkGroupCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, CreateWorkGroupCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"AthenaClient\";\n const commandName = \"CreateWorkGroupCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.CreateWorkGroupInputFilterSensitiveLog,\n outputFilterSensitiveLog: models_0_1.CreateWorkGroupOutputFilterSensitiveLog,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_json1_1_1.serializeAws_json1_1CreateWorkGroupCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_json1_1_1.deserializeAws_json1_1CreateWorkGroupCommand)(output, context);\n }\n}\nexports.CreateWorkGroupCommand = CreateWorkGroupCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DeleteDataCatalogCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_json1_1_1 = require(\"../protocols/Aws_json1_1\");\nclass DeleteDataCatalogCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, DeleteDataCatalogCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"AthenaClient\";\n const commandName = \"DeleteDataCatalogCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.DeleteDataCatalogInputFilterSensitiveLog,\n outputFilterSensitiveLog: models_0_1.DeleteDataCatalogOutputFilterSensitiveLog,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_json1_1_1.serializeAws_json1_1DeleteDataCatalogCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_json1_1_1.deserializeAws_json1_1DeleteDataCatalogCommand)(output, context);\n }\n}\nexports.DeleteDataCatalogCommand = DeleteDataCatalogCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DeleteNamedQueryCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_json1_1_1 = require(\"../protocols/Aws_json1_1\");\nclass DeleteNamedQueryCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, DeleteNamedQueryCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"AthenaClient\";\n const commandName = \"DeleteNamedQueryCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.DeleteNamedQueryInputFilterSensitiveLog,\n outputFilterSensitiveLog: models_0_1.DeleteNamedQueryOutputFilterSensitiveLog,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_json1_1_1.serializeAws_json1_1DeleteNamedQueryCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_json1_1_1.deserializeAws_json1_1DeleteNamedQueryCommand)(output, context);\n }\n}\nexports.DeleteNamedQueryCommand = DeleteNamedQueryCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DeleteNotebookCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_json1_1_1 = require(\"../protocols/Aws_json1_1\");\nclass DeleteNotebookCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, DeleteNotebookCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"AthenaClient\";\n const commandName = \"DeleteNotebookCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.DeleteNotebookInputFilterSensitiveLog,\n outputFilterSensitiveLog: models_0_1.DeleteNotebookOutputFilterSensitiveLog,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_json1_1_1.serializeAws_json1_1DeleteNotebookCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_json1_1_1.deserializeAws_json1_1DeleteNotebookCommand)(output, context);\n }\n}\nexports.DeleteNotebookCommand = DeleteNotebookCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DeletePreparedStatementCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_json1_1_1 = require(\"../protocols/Aws_json1_1\");\nclass DeletePreparedStatementCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, DeletePreparedStatementCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"AthenaClient\";\n const commandName = \"DeletePreparedStatementCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.DeletePreparedStatementInputFilterSensitiveLog,\n outputFilterSensitiveLog: models_0_1.DeletePreparedStatementOutputFilterSensitiveLog,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_json1_1_1.serializeAws_json1_1DeletePreparedStatementCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_json1_1_1.deserializeAws_json1_1DeletePreparedStatementCommand)(output, context);\n }\n}\nexports.DeletePreparedStatementCommand = DeletePreparedStatementCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DeleteWorkGroupCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_json1_1_1 = require(\"../protocols/Aws_json1_1\");\nclass DeleteWorkGroupCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, DeleteWorkGroupCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"AthenaClient\";\n const commandName = \"DeleteWorkGroupCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.DeleteWorkGroupInputFilterSensitiveLog,\n outputFilterSensitiveLog: models_0_1.DeleteWorkGroupOutputFilterSensitiveLog,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_json1_1_1.serializeAws_json1_1DeleteWorkGroupCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_json1_1_1.deserializeAws_json1_1DeleteWorkGroupCommand)(output, context);\n }\n}\nexports.DeleteWorkGroupCommand = DeleteWorkGroupCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ExportNotebookCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_json1_1_1 = require(\"../protocols/Aws_json1_1\");\nclass ExportNotebookCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, ExportNotebookCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"AthenaClient\";\n const commandName = \"ExportNotebookCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.ExportNotebookInputFilterSensitiveLog,\n outputFilterSensitiveLog: models_0_1.ExportNotebookOutputFilterSensitiveLog,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_json1_1_1.serializeAws_json1_1ExportNotebookCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_json1_1_1.deserializeAws_json1_1ExportNotebookCommand)(output, context);\n }\n}\nexports.ExportNotebookCommand = ExportNotebookCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.GetCalculationExecutionCodeCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_json1_1_1 = require(\"../protocols/Aws_json1_1\");\nclass GetCalculationExecutionCodeCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, GetCalculationExecutionCodeCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"AthenaClient\";\n const commandName = \"GetCalculationExecutionCodeCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.GetCalculationExecutionCodeRequestFilterSensitiveLog,\n outputFilterSensitiveLog: models_0_1.GetCalculationExecutionCodeResponseFilterSensitiveLog,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_json1_1_1.serializeAws_json1_1GetCalculationExecutionCodeCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_json1_1_1.deserializeAws_json1_1GetCalculationExecutionCodeCommand)(output, context);\n }\n}\nexports.GetCalculationExecutionCodeCommand = GetCalculationExecutionCodeCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.GetCalculationExecutionCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_json1_1_1 = require(\"../protocols/Aws_json1_1\");\nclass GetCalculationExecutionCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, GetCalculationExecutionCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"AthenaClient\";\n const commandName = \"GetCalculationExecutionCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.GetCalculationExecutionRequestFilterSensitiveLog,\n outputFilterSensitiveLog: models_0_1.GetCalculationExecutionResponseFilterSensitiveLog,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_json1_1_1.serializeAws_json1_1GetCalculationExecutionCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_json1_1_1.deserializeAws_json1_1GetCalculationExecutionCommand)(output, context);\n }\n}\nexports.GetCalculationExecutionCommand = GetCalculationExecutionCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.GetCalculationExecutionStatusCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_json1_1_1 = require(\"../protocols/Aws_json1_1\");\nclass GetCalculationExecutionStatusCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, GetCalculationExecutionStatusCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"AthenaClient\";\n const commandName = \"GetCalculationExecutionStatusCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.GetCalculationExecutionStatusRequestFilterSensitiveLog,\n outputFilterSensitiveLog: models_0_1.GetCalculationExecutionStatusResponseFilterSensitiveLog,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_json1_1_1.serializeAws_json1_1GetCalculationExecutionStatusCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_json1_1_1.deserializeAws_json1_1GetCalculationExecutionStatusCommand)(output, context);\n }\n}\nexports.GetCalculationExecutionStatusCommand = GetCalculationExecutionStatusCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.GetDatabaseCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_json1_1_1 = require(\"../protocols/Aws_json1_1\");\nclass GetDatabaseCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, GetDatabaseCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"AthenaClient\";\n const commandName = \"GetDatabaseCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.GetDatabaseInputFilterSensitiveLog,\n outputFilterSensitiveLog: models_0_1.GetDatabaseOutputFilterSensitiveLog,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_json1_1_1.serializeAws_json1_1GetDatabaseCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_json1_1_1.deserializeAws_json1_1GetDatabaseCommand)(output, context);\n }\n}\nexports.GetDatabaseCommand = GetDatabaseCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.GetDataCatalogCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_json1_1_1 = require(\"../protocols/Aws_json1_1\");\nclass GetDataCatalogCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, GetDataCatalogCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"AthenaClient\";\n const commandName = \"GetDataCatalogCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.GetDataCatalogInputFilterSensitiveLog,\n outputFilterSensitiveLog: models_0_1.GetDataCatalogOutputFilterSensitiveLog,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_json1_1_1.serializeAws_json1_1GetDataCatalogCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_json1_1_1.deserializeAws_json1_1GetDataCatalogCommand)(output, context);\n }\n}\nexports.GetDataCatalogCommand = GetDataCatalogCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.GetNamedQueryCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_json1_1_1 = require(\"../protocols/Aws_json1_1\");\nclass GetNamedQueryCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, GetNamedQueryCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"AthenaClient\";\n const commandName = \"GetNamedQueryCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.GetNamedQueryInputFilterSensitiveLog,\n outputFilterSensitiveLog: models_0_1.GetNamedQueryOutputFilterSensitiveLog,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_json1_1_1.serializeAws_json1_1GetNamedQueryCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_json1_1_1.deserializeAws_json1_1GetNamedQueryCommand)(output, context);\n }\n}\nexports.GetNamedQueryCommand = GetNamedQueryCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.GetNotebookMetadataCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_json1_1_1 = require(\"../protocols/Aws_json1_1\");\nclass GetNotebookMetadataCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, GetNotebookMetadataCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"AthenaClient\";\n const commandName = \"GetNotebookMetadataCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.GetNotebookMetadataInputFilterSensitiveLog,\n outputFilterSensitiveLog: models_0_1.GetNotebookMetadataOutputFilterSensitiveLog,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_json1_1_1.serializeAws_json1_1GetNotebookMetadataCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_json1_1_1.deserializeAws_json1_1GetNotebookMetadataCommand)(output, context);\n }\n}\nexports.GetNotebookMetadataCommand = GetNotebookMetadataCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.GetPreparedStatementCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_json1_1_1 = require(\"../protocols/Aws_json1_1\");\nclass GetPreparedStatementCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, GetPreparedStatementCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"AthenaClient\";\n const commandName = \"GetPreparedStatementCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.GetPreparedStatementInputFilterSensitiveLog,\n outputFilterSensitiveLog: models_0_1.GetPreparedStatementOutputFilterSensitiveLog,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_json1_1_1.serializeAws_json1_1GetPreparedStatementCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_json1_1_1.deserializeAws_json1_1GetPreparedStatementCommand)(output, context);\n }\n}\nexports.GetPreparedStatementCommand = GetPreparedStatementCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.GetQueryExecutionCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_json1_1_1 = require(\"../protocols/Aws_json1_1\");\nclass GetQueryExecutionCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, GetQueryExecutionCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"AthenaClient\";\n const commandName = \"GetQueryExecutionCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.GetQueryExecutionInputFilterSensitiveLog,\n outputFilterSensitiveLog: models_0_1.GetQueryExecutionOutputFilterSensitiveLog,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_json1_1_1.serializeAws_json1_1GetQueryExecutionCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_json1_1_1.deserializeAws_json1_1GetQueryExecutionCommand)(output, context);\n }\n}\nexports.GetQueryExecutionCommand = GetQueryExecutionCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.GetQueryResultsCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_json1_1_1 = require(\"../protocols/Aws_json1_1\");\nclass GetQueryResultsCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, GetQueryResultsCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"AthenaClient\";\n const commandName = \"GetQueryResultsCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.GetQueryResultsInputFilterSensitiveLog,\n outputFilterSensitiveLog: models_0_1.GetQueryResultsOutputFilterSensitiveLog,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_json1_1_1.serializeAws_json1_1GetQueryResultsCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_json1_1_1.deserializeAws_json1_1GetQueryResultsCommand)(output, context);\n }\n}\nexports.GetQueryResultsCommand = GetQueryResultsCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.GetQueryRuntimeStatisticsCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_json1_1_1 = require(\"../protocols/Aws_json1_1\");\nclass GetQueryRuntimeStatisticsCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, GetQueryRuntimeStatisticsCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"AthenaClient\";\n const commandName = \"GetQueryRuntimeStatisticsCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.GetQueryRuntimeStatisticsInputFilterSensitiveLog,\n outputFilterSensitiveLog: models_0_1.GetQueryRuntimeStatisticsOutputFilterSensitiveLog,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_json1_1_1.serializeAws_json1_1GetQueryRuntimeStatisticsCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_json1_1_1.deserializeAws_json1_1GetQueryRuntimeStatisticsCommand)(output, context);\n }\n}\nexports.GetQueryRuntimeStatisticsCommand = GetQueryRuntimeStatisticsCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.GetSessionCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_json1_1_1 = require(\"../protocols/Aws_json1_1\");\nclass GetSessionCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, GetSessionCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"AthenaClient\";\n const commandName = \"GetSessionCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.GetSessionRequestFilterSensitiveLog,\n outputFilterSensitiveLog: models_0_1.GetSessionResponseFilterSensitiveLog,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_json1_1_1.serializeAws_json1_1GetSessionCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_json1_1_1.deserializeAws_json1_1GetSessionCommand)(output, context);\n }\n}\nexports.GetSessionCommand = GetSessionCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.GetSessionStatusCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_json1_1_1 = require(\"../protocols/Aws_json1_1\");\nclass GetSessionStatusCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, GetSessionStatusCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"AthenaClient\";\n const commandName = \"GetSessionStatusCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.GetSessionStatusRequestFilterSensitiveLog,\n outputFilterSensitiveLog: models_0_1.GetSessionStatusResponseFilterSensitiveLog,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_json1_1_1.serializeAws_json1_1GetSessionStatusCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_json1_1_1.deserializeAws_json1_1GetSessionStatusCommand)(output, context);\n }\n}\nexports.GetSessionStatusCommand = GetSessionStatusCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.GetTableMetadataCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_json1_1_1 = require(\"../protocols/Aws_json1_1\");\nclass GetTableMetadataCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, GetTableMetadataCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"AthenaClient\";\n const commandName = \"GetTableMetadataCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.GetTableMetadataInputFilterSensitiveLog,\n outputFilterSensitiveLog: models_0_1.GetTableMetadataOutputFilterSensitiveLog,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_json1_1_1.serializeAws_json1_1GetTableMetadataCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_json1_1_1.deserializeAws_json1_1GetTableMetadataCommand)(output, context);\n }\n}\nexports.GetTableMetadataCommand = GetTableMetadataCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.GetWorkGroupCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_json1_1_1 = require(\"../protocols/Aws_json1_1\");\nclass GetWorkGroupCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, GetWorkGroupCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"AthenaClient\";\n const commandName = \"GetWorkGroupCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.GetWorkGroupInputFilterSensitiveLog,\n outputFilterSensitiveLog: models_0_1.GetWorkGroupOutputFilterSensitiveLog,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_json1_1_1.serializeAws_json1_1GetWorkGroupCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_json1_1_1.deserializeAws_json1_1GetWorkGroupCommand)(output, context);\n }\n}\nexports.GetWorkGroupCommand = GetWorkGroupCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ImportNotebookCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_json1_1_1 = require(\"../protocols/Aws_json1_1\");\nclass ImportNotebookCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, ImportNotebookCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"AthenaClient\";\n const commandName = \"ImportNotebookCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.ImportNotebookInputFilterSensitiveLog,\n outputFilterSensitiveLog: models_0_1.ImportNotebookOutputFilterSensitiveLog,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_json1_1_1.serializeAws_json1_1ImportNotebookCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_json1_1_1.deserializeAws_json1_1ImportNotebookCommand)(output, context);\n }\n}\nexports.ImportNotebookCommand = ImportNotebookCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ListApplicationDPUSizesCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_json1_1_1 = require(\"../protocols/Aws_json1_1\");\nclass ListApplicationDPUSizesCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, ListApplicationDPUSizesCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"AthenaClient\";\n const commandName = \"ListApplicationDPUSizesCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.ListApplicationDPUSizesInputFilterSensitiveLog,\n outputFilterSensitiveLog: models_0_1.ListApplicationDPUSizesOutputFilterSensitiveLog,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_json1_1_1.serializeAws_json1_1ListApplicationDPUSizesCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_json1_1_1.deserializeAws_json1_1ListApplicationDPUSizesCommand)(output, context);\n }\n}\nexports.ListApplicationDPUSizesCommand = ListApplicationDPUSizesCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ListCalculationExecutionsCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_json1_1_1 = require(\"../protocols/Aws_json1_1\");\nclass ListCalculationExecutionsCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, ListCalculationExecutionsCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"AthenaClient\";\n const commandName = \"ListCalculationExecutionsCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.ListCalculationExecutionsRequestFilterSensitiveLog,\n outputFilterSensitiveLog: models_0_1.ListCalculationExecutionsResponseFilterSensitiveLog,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_json1_1_1.serializeAws_json1_1ListCalculationExecutionsCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_json1_1_1.deserializeAws_json1_1ListCalculationExecutionsCommand)(output, context);\n }\n}\nexports.ListCalculationExecutionsCommand = ListCalculationExecutionsCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ListDatabasesCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_json1_1_1 = require(\"../protocols/Aws_json1_1\");\nclass ListDatabasesCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, ListDatabasesCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"AthenaClient\";\n const commandName = \"ListDatabasesCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.ListDatabasesInputFilterSensitiveLog,\n outputFilterSensitiveLog: models_0_1.ListDatabasesOutputFilterSensitiveLog,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_json1_1_1.serializeAws_json1_1ListDatabasesCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_json1_1_1.deserializeAws_json1_1ListDatabasesCommand)(output, context);\n }\n}\nexports.ListDatabasesCommand = ListDatabasesCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ListDataCatalogsCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_json1_1_1 = require(\"../protocols/Aws_json1_1\");\nclass ListDataCatalogsCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, ListDataCatalogsCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"AthenaClient\";\n const commandName = \"ListDataCatalogsCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.ListDataCatalogsInputFilterSensitiveLog,\n outputFilterSensitiveLog: models_0_1.ListDataCatalogsOutputFilterSensitiveLog,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_json1_1_1.serializeAws_json1_1ListDataCatalogsCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_json1_1_1.deserializeAws_json1_1ListDataCatalogsCommand)(output, context);\n }\n}\nexports.ListDataCatalogsCommand = ListDataCatalogsCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ListEngineVersionsCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_json1_1_1 = require(\"../protocols/Aws_json1_1\");\nclass ListEngineVersionsCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, ListEngineVersionsCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"AthenaClient\";\n const commandName = \"ListEngineVersionsCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.ListEngineVersionsInputFilterSensitiveLog,\n outputFilterSensitiveLog: models_0_1.ListEngineVersionsOutputFilterSensitiveLog,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_json1_1_1.serializeAws_json1_1ListEngineVersionsCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_json1_1_1.deserializeAws_json1_1ListEngineVersionsCommand)(output, context);\n }\n}\nexports.ListEngineVersionsCommand = ListEngineVersionsCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ListExecutorsCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_json1_1_1 = require(\"../protocols/Aws_json1_1\");\nclass ListExecutorsCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, ListExecutorsCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"AthenaClient\";\n const commandName = \"ListExecutorsCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.ListExecutorsRequestFilterSensitiveLog,\n outputFilterSensitiveLog: models_0_1.ListExecutorsResponseFilterSensitiveLog,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_json1_1_1.serializeAws_json1_1ListExecutorsCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_json1_1_1.deserializeAws_json1_1ListExecutorsCommand)(output, context);\n }\n}\nexports.ListExecutorsCommand = ListExecutorsCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ListNamedQueriesCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_json1_1_1 = require(\"../protocols/Aws_json1_1\");\nclass ListNamedQueriesCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, ListNamedQueriesCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"AthenaClient\";\n const commandName = \"ListNamedQueriesCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.ListNamedQueriesInputFilterSensitiveLog,\n outputFilterSensitiveLog: models_0_1.ListNamedQueriesOutputFilterSensitiveLog,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_json1_1_1.serializeAws_json1_1ListNamedQueriesCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_json1_1_1.deserializeAws_json1_1ListNamedQueriesCommand)(output, context);\n }\n}\nexports.ListNamedQueriesCommand = ListNamedQueriesCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ListNotebookMetadataCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_json1_1_1 = require(\"../protocols/Aws_json1_1\");\nclass ListNotebookMetadataCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, ListNotebookMetadataCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"AthenaClient\";\n const commandName = \"ListNotebookMetadataCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.ListNotebookMetadataInputFilterSensitiveLog,\n outputFilterSensitiveLog: models_0_1.ListNotebookMetadataOutputFilterSensitiveLog,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_json1_1_1.serializeAws_json1_1ListNotebookMetadataCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_json1_1_1.deserializeAws_json1_1ListNotebookMetadataCommand)(output, context);\n }\n}\nexports.ListNotebookMetadataCommand = ListNotebookMetadataCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ListNotebookSessionsCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_json1_1_1 = require(\"../protocols/Aws_json1_1\");\nclass ListNotebookSessionsCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, ListNotebookSessionsCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"AthenaClient\";\n const commandName = \"ListNotebookSessionsCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.ListNotebookSessionsRequestFilterSensitiveLog,\n outputFilterSensitiveLog: models_0_1.ListNotebookSessionsResponseFilterSensitiveLog,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_json1_1_1.serializeAws_json1_1ListNotebookSessionsCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_json1_1_1.deserializeAws_json1_1ListNotebookSessionsCommand)(output, context);\n }\n}\nexports.ListNotebookSessionsCommand = ListNotebookSessionsCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ListPreparedStatementsCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_json1_1_1 = require(\"../protocols/Aws_json1_1\");\nclass ListPreparedStatementsCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, ListPreparedStatementsCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"AthenaClient\";\n const commandName = \"ListPreparedStatementsCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.ListPreparedStatementsInputFilterSensitiveLog,\n outputFilterSensitiveLog: models_0_1.ListPreparedStatementsOutputFilterSensitiveLog,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_json1_1_1.serializeAws_json1_1ListPreparedStatementsCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_json1_1_1.deserializeAws_json1_1ListPreparedStatementsCommand)(output, context);\n }\n}\nexports.ListPreparedStatementsCommand = ListPreparedStatementsCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ListQueryExecutionsCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_json1_1_1 = require(\"../protocols/Aws_json1_1\");\nclass ListQueryExecutionsCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, ListQueryExecutionsCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"AthenaClient\";\n const commandName = \"ListQueryExecutionsCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.ListQueryExecutionsInputFilterSensitiveLog,\n outputFilterSensitiveLog: models_0_1.ListQueryExecutionsOutputFilterSensitiveLog,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_json1_1_1.serializeAws_json1_1ListQueryExecutionsCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_json1_1_1.deserializeAws_json1_1ListQueryExecutionsCommand)(output, context);\n }\n}\nexports.ListQueryExecutionsCommand = ListQueryExecutionsCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ListSessionsCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_json1_1_1 = require(\"../protocols/Aws_json1_1\");\nclass ListSessionsCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, ListSessionsCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"AthenaClient\";\n const commandName = \"ListSessionsCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.ListSessionsRequestFilterSensitiveLog,\n outputFilterSensitiveLog: models_0_1.ListSessionsResponseFilterSensitiveLog,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_json1_1_1.serializeAws_json1_1ListSessionsCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_json1_1_1.deserializeAws_json1_1ListSessionsCommand)(output, context);\n }\n}\nexports.ListSessionsCommand = ListSessionsCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ListTableMetadataCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_json1_1_1 = require(\"../protocols/Aws_json1_1\");\nclass ListTableMetadataCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, ListTableMetadataCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"AthenaClient\";\n const commandName = \"ListTableMetadataCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.ListTableMetadataInputFilterSensitiveLog,\n outputFilterSensitiveLog: models_0_1.ListTableMetadataOutputFilterSensitiveLog,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_json1_1_1.serializeAws_json1_1ListTableMetadataCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_json1_1_1.deserializeAws_json1_1ListTableMetadataCommand)(output, context);\n }\n}\nexports.ListTableMetadataCommand = ListTableMetadataCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ListTagsForResourceCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_json1_1_1 = require(\"../protocols/Aws_json1_1\");\nclass ListTagsForResourceCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, ListTagsForResourceCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"AthenaClient\";\n const commandName = \"ListTagsForResourceCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.ListTagsForResourceInputFilterSensitiveLog,\n outputFilterSensitiveLog: models_0_1.ListTagsForResourceOutputFilterSensitiveLog,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_json1_1_1.serializeAws_json1_1ListTagsForResourceCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_json1_1_1.deserializeAws_json1_1ListTagsForResourceCommand)(output, context);\n }\n}\nexports.ListTagsForResourceCommand = ListTagsForResourceCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ListWorkGroupsCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_json1_1_1 = require(\"../protocols/Aws_json1_1\");\nclass ListWorkGroupsCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, ListWorkGroupsCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"AthenaClient\";\n const commandName = \"ListWorkGroupsCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.ListWorkGroupsInputFilterSensitiveLog,\n outputFilterSensitiveLog: models_0_1.ListWorkGroupsOutputFilterSensitiveLog,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_json1_1_1.serializeAws_json1_1ListWorkGroupsCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_json1_1_1.deserializeAws_json1_1ListWorkGroupsCommand)(output, context);\n }\n}\nexports.ListWorkGroupsCommand = ListWorkGroupsCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StartCalculationExecutionCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_json1_1_1 = require(\"../protocols/Aws_json1_1\");\nclass StartCalculationExecutionCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, StartCalculationExecutionCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"AthenaClient\";\n const commandName = \"StartCalculationExecutionCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.StartCalculationExecutionRequestFilterSensitiveLog,\n outputFilterSensitiveLog: models_0_1.StartCalculationExecutionResponseFilterSensitiveLog,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_json1_1_1.serializeAws_json1_1StartCalculationExecutionCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_json1_1_1.deserializeAws_json1_1StartCalculationExecutionCommand)(output, context);\n }\n}\nexports.StartCalculationExecutionCommand = StartCalculationExecutionCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StartQueryExecutionCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_json1_1_1 = require(\"../protocols/Aws_json1_1\");\nclass StartQueryExecutionCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, StartQueryExecutionCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"AthenaClient\";\n const commandName = \"StartQueryExecutionCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.StartQueryExecutionInputFilterSensitiveLog,\n outputFilterSensitiveLog: models_0_1.StartQueryExecutionOutputFilterSensitiveLog,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_json1_1_1.serializeAws_json1_1StartQueryExecutionCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_json1_1_1.deserializeAws_json1_1StartQueryExecutionCommand)(output, context);\n }\n}\nexports.StartQueryExecutionCommand = StartQueryExecutionCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StartSessionCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_json1_1_1 = require(\"../protocols/Aws_json1_1\");\nclass StartSessionCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, StartSessionCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"AthenaClient\";\n const commandName = \"StartSessionCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.StartSessionRequestFilterSensitiveLog,\n outputFilterSensitiveLog: models_0_1.StartSessionResponseFilterSensitiveLog,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_json1_1_1.serializeAws_json1_1StartSessionCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_json1_1_1.deserializeAws_json1_1StartSessionCommand)(output, context);\n }\n}\nexports.StartSessionCommand = StartSessionCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StopCalculationExecutionCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_json1_1_1 = require(\"../protocols/Aws_json1_1\");\nclass StopCalculationExecutionCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, StopCalculationExecutionCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"AthenaClient\";\n const commandName = \"StopCalculationExecutionCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.StopCalculationExecutionRequestFilterSensitiveLog,\n outputFilterSensitiveLog: models_0_1.StopCalculationExecutionResponseFilterSensitiveLog,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_json1_1_1.serializeAws_json1_1StopCalculationExecutionCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_json1_1_1.deserializeAws_json1_1StopCalculationExecutionCommand)(output, context);\n }\n}\nexports.StopCalculationExecutionCommand = StopCalculationExecutionCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StopQueryExecutionCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_json1_1_1 = require(\"../protocols/Aws_json1_1\");\nclass StopQueryExecutionCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, StopQueryExecutionCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"AthenaClient\";\n const commandName = \"StopQueryExecutionCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.StopQueryExecutionInputFilterSensitiveLog,\n outputFilterSensitiveLog: models_0_1.StopQueryExecutionOutputFilterSensitiveLog,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_json1_1_1.serializeAws_json1_1StopQueryExecutionCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_json1_1_1.deserializeAws_json1_1StopQueryExecutionCommand)(output, context);\n }\n}\nexports.StopQueryExecutionCommand = StopQueryExecutionCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TagResourceCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_json1_1_1 = require(\"../protocols/Aws_json1_1\");\nclass TagResourceCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, TagResourceCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"AthenaClient\";\n const commandName = \"TagResourceCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.TagResourceInputFilterSensitiveLog,\n outputFilterSensitiveLog: models_0_1.TagResourceOutputFilterSensitiveLog,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_json1_1_1.serializeAws_json1_1TagResourceCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_json1_1_1.deserializeAws_json1_1TagResourceCommand)(output, context);\n }\n}\nexports.TagResourceCommand = TagResourceCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TerminateSessionCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_json1_1_1 = require(\"../protocols/Aws_json1_1\");\nclass TerminateSessionCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, TerminateSessionCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"AthenaClient\";\n const commandName = \"TerminateSessionCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.TerminateSessionRequestFilterSensitiveLog,\n outputFilterSensitiveLog: models_0_1.TerminateSessionResponseFilterSensitiveLog,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_json1_1_1.serializeAws_json1_1TerminateSessionCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_json1_1_1.deserializeAws_json1_1TerminateSessionCommand)(output, context);\n }\n}\nexports.TerminateSessionCommand = TerminateSessionCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.UntagResourceCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_json1_1_1 = require(\"../protocols/Aws_json1_1\");\nclass UntagResourceCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, UntagResourceCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"AthenaClient\";\n const commandName = \"UntagResourceCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.UntagResourceInputFilterSensitiveLog,\n outputFilterSensitiveLog: models_0_1.UntagResourceOutputFilterSensitiveLog,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_json1_1_1.serializeAws_json1_1UntagResourceCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_json1_1_1.deserializeAws_json1_1UntagResourceCommand)(output, context);\n }\n}\nexports.UntagResourceCommand = UntagResourceCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.UpdateDataCatalogCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_json1_1_1 = require(\"../protocols/Aws_json1_1\");\nclass UpdateDataCatalogCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, UpdateDataCatalogCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"AthenaClient\";\n const commandName = \"UpdateDataCatalogCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.UpdateDataCatalogInputFilterSensitiveLog,\n outputFilterSensitiveLog: models_0_1.UpdateDataCatalogOutputFilterSensitiveLog,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_json1_1_1.serializeAws_json1_1UpdateDataCatalogCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_json1_1_1.deserializeAws_json1_1UpdateDataCatalogCommand)(output, context);\n }\n}\nexports.UpdateDataCatalogCommand = UpdateDataCatalogCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.UpdateNamedQueryCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_json1_1_1 = require(\"../protocols/Aws_json1_1\");\nclass UpdateNamedQueryCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, UpdateNamedQueryCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"AthenaClient\";\n const commandName = \"UpdateNamedQueryCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.UpdateNamedQueryInputFilterSensitiveLog,\n outputFilterSensitiveLog: models_0_1.UpdateNamedQueryOutputFilterSensitiveLog,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_json1_1_1.serializeAws_json1_1UpdateNamedQueryCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_json1_1_1.deserializeAws_json1_1UpdateNamedQueryCommand)(output, context);\n }\n}\nexports.UpdateNamedQueryCommand = UpdateNamedQueryCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.UpdateNotebookCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_json1_1_1 = require(\"../protocols/Aws_json1_1\");\nclass UpdateNotebookCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, UpdateNotebookCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"AthenaClient\";\n const commandName = \"UpdateNotebookCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.UpdateNotebookInputFilterSensitiveLog,\n outputFilterSensitiveLog: models_0_1.UpdateNotebookOutputFilterSensitiveLog,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_json1_1_1.serializeAws_json1_1UpdateNotebookCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_json1_1_1.deserializeAws_json1_1UpdateNotebookCommand)(output, context);\n }\n}\nexports.UpdateNotebookCommand = UpdateNotebookCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.UpdateNotebookMetadataCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_json1_1_1 = require(\"../protocols/Aws_json1_1\");\nclass UpdateNotebookMetadataCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, UpdateNotebookMetadataCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"AthenaClient\";\n const commandName = \"UpdateNotebookMetadataCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.UpdateNotebookMetadataInputFilterSensitiveLog,\n outputFilterSensitiveLog: models_0_1.UpdateNotebookMetadataOutputFilterSensitiveLog,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_json1_1_1.serializeAws_json1_1UpdateNotebookMetadataCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_json1_1_1.deserializeAws_json1_1UpdateNotebookMetadataCommand)(output, context);\n }\n}\nexports.UpdateNotebookMetadataCommand = UpdateNotebookMetadataCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.UpdatePreparedStatementCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_json1_1_1 = require(\"../protocols/Aws_json1_1\");\nclass UpdatePreparedStatementCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, UpdatePreparedStatementCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"AthenaClient\";\n const commandName = \"UpdatePreparedStatementCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.UpdatePreparedStatementInputFilterSensitiveLog,\n outputFilterSensitiveLog: models_0_1.UpdatePreparedStatementOutputFilterSensitiveLog,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_json1_1_1.serializeAws_json1_1UpdatePreparedStatementCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_json1_1_1.deserializeAws_json1_1UpdatePreparedStatementCommand)(output, context);\n }\n}\nexports.UpdatePreparedStatementCommand = UpdatePreparedStatementCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.UpdateWorkGroupCommand = void 0;\nconst middleware_endpoint_1 = require(\"@aws-sdk/middleware-endpoint\");\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_json1_1_1 = require(\"../protocols/Aws_json1_1\");\nclass UpdateWorkGroupCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n static getEndpointParameterInstructions() {\n return {\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, UpdateWorkGroupCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"AthenaClient\";\n const commandName = \"UpdateWorkGroupCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.UpdateWorkGroupInputFilterSensitiveLog,\n outputFilterSensitiveLog: models_0_1.UpdateWorkGroupOutputFilterSensitiveLog,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_json1_1_1.serializeAws_json1_1UpdateWorkGroupCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_json1_1_1.deserializeAws_json1_1UpdateWorkGroupCommand)(output, context);\n }\n}\nexports.UpdateWorkGroupCommand = UpdateWorkGroupCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Athena = void 0;\nconst AthenaClient_1 = require(\"./AthenaClient\");\nconst BatchGetNamedQueryCommand_1 = require(\"./commands/BatchGetNamedQueryCommand\");\nconst BatchGetPreparedStatementCommand_1 = require(\"./commands/BatchGetPreparedStatementCommand\");\nconst BatchGetQueryExecutionCommand_1 = require(\"./commands/BatchGetQueryExecutionCommand\");\nconst CreateDataCatalogCommand_1 = require(\"./commands/CreateDataCatalogCommand\");\nconst CreateNamedQueryCommand_1 = require(\"./commands/CreateNamedQueryCommand\");\nconst CreateNotebookCommand_1 = require(\"./commands/CreateNotebookCommand\");\nconst CreatePreparedStatementCommand_1 = require(\"./commands/CreatePreparedStatementCommand\");\nconst CreatePresignedNotebookUrlCommand_1 = require(\"./commands/CreatePresignedNotebookUrlCommand\");\nconst CreateWorkGroupCommand_1 = require(\"./commands/CreateWorkGroupCommand\");\nconst DeleteDataCatalogCommand_1 = require(\"./commands/DeleteDataCatalogCommand\");\nconst DeleteNamedQueryCommand_1 = require(\"./commands/DeleteNamedQueryCommand\");\nconst DeleteNotebookCommand_1 = require(\"./commands/DeleteNotebookCommand\");\nconst DeletePreparedStatementCommand_1 = require(\"./commands/DeletePreparedStatementCommand\");\nconst DeleteWorkGroupCommand_1 = require(\"./commands/DeleteWorkGroupCommand\");\nconst ExportNotebookCommand_1 = require(\"./commands/ExportNotebookCommand\");\nconst GetCalculationExecutionCodeCommand_1 = require(\"./commands/GetCalculationExecutionCodeCommand\");\nconst GetCalculationExecutionCommand_1 = require(\"./commands/GetCalculationExecutionCommand\");\nconst GetCalculationExecutionStatusCommand_1 = require(\"./commands/GetCalculationExecutionStatusCommand\");\nconst GetDatabaseCommand_1 = require(\"./commands/GetDatabaseCommand\");\nconst GetDataCatalogCommand_1 = require(\"./commands/GetDataCatalogCommand\");\nconst GetNamedQueryCommand_1 = require(\"./commands/GetNamedQueryCommand\");\nconst GetNotebookMetadataCommand_1 = require(\"./commands/GetNotebookMetadataCommand\");\nconst GetPreparedStatementCommand_1 = require(\"./commands/GetPreparedStatementCommand\");\nconst GetQueryExecutionCommand_1 = require(\"./commands/GetQueryExecutionCommand\");\nconst GetQueryResultsCommand_1 = require(\"./commands/GetQueryResultsCommand\");\nconst GetQueryRuntimeStatisticsCommand_1 = require(\"./commands/GetQueryRuntimeStatisticsCommand\");\nconst GetSessionCommand_1 = require(\"./commands/GetSessionCommand\");\nconst GetSessionStatusCommand_1 = require(\"./commands/GetSessionStatusCommand\");\nconst GetTableMetadataCommand_1 = require(\"./commands/GetTableMetadataCommand\");\nconst GetWorkGroupCommand_1 = require(\"./commands/GetWorkGroupCommand\");\nconst ImportNotebookCommand_1 = require(\"./commands/ImportNotebookCommand\");\nconst ListApplicationDPUSizesCommand_1 = require(\"./commands/ListApplicationDPUSizesCommand\");\nconst ListCalculationExecutionsCommand_1 = require(\"./commands/ListCalculationExecutionsCommand\");\nconst ListDatabasesCommand_1 = require(\"./commands/ListDatabasesCommand\");\nconst ListDataCatalogsCommand_1 = require(\"./commands/ListDataCatalogsCommand\");\nconst ListEngineVersionsCommand_1 = require(\"./commands/ListEngineVersionsCommand\");\nconst ListExecutorsCommand_1 = require(\"./commands/ListExecutorsCommand\");\nconst ListNamedQueriesCommand_1 = require(\"./commands/ListNamedQueriesCommand\");\nconst ListNotebookMetadataCommand_1 = require(\"./commands/ListNotebookMetadataCommand\");\nconst ListNotebookSessionsCommand_1 = require(\"./commands/ListNotebookSessionsCommand\");\nconst ListPreparedStatementsCommand_1 = require(\"./commands/ListPreparedStatementsCommand\");\nconst ListQueryExecutionsCommand_1 = require(\"./commands/ListQueryExecutionsCommand\");\nconst ListSessionsCommand_1 = require(\"./commands/ListSessionsCommand\");\nconst ListTableMetadataCommand_1 = require(\"./commands/ListTableMetadataCommand\");\nconst ListTagsForResourceCommand_1 = require(\"./commands/ListTagsForResourceCommand\");\nconst ListWorkGroupsCommand_1 = require(\"./commands/ListWorkGroupsCommand\");\nconst StartCalculationExecutionCommand_1 = require(\"./commands/StartCalculationExecutionCommand\");\nconst StartQueryExecutionCommand_1 = require(\"./commands/StartQueryExecutionCommand\");\nconst StartSessionCommand_1 = require(\"./commands/StartSessionCommand\");\nconst StopCalculationExecutionCommand_1 = require(\"./commands/StopCalculationExecutionCommand\");\nconst StopQueryExecutionCommand_1 = require(\"./commands/StopQueryExecutionCommand\");\nconst TagResourceCommand_1 = require(\"./commands/TagResourceCommand\");\nconst TerminateSessionCommand_1 = require(\"./commands/TerminateSessionCommand\");\nconst UntagResourceCommand_1 = require(\"./commands/UntagResourceCommand\");\nconst UpdateDataCatalogCommand_1 = require(\"./commands/UpdateDataCatalogCommand\");\nconst UpdateNamedQueryCommand_1 = require(\"./commands/UpdateNamedQueryCommand\");\nconst UpdateNotebookCommand_1 = require(\"./commands/UpdateNotebookCommand\");\nconst UpdateNotebookMetadataCommand_1 = require(\"./commands/UpdateNotebookMetadataCommand\");\nconst UpdatePreparedStatementCommand_1 = require(\"./commands/UpdatePreparedStatementCommand\");\nconst UpdateWorkGroupCommand_1 = require(\"./commands/UpdateWorkGroupCommand\");\nclass Athena extends AthenaClient_1.AthenaClient {\n batchGetNamedQuery(args, optionsOrCb, cb) {\n const command = new BatchGetNamedQueryCommand_1.BatchGetNamedQueryCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n batchGetPreparedStatement(args, optionsOrCb, cb) {\n const command = new BatchGetPreparedStatementCommand_1.BatchGetPreparedStatementCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n batchGetQueryExecution(args, optionsOrCb, cb) {\n const command = new BatchGetQueryExecutionCommand_1.BatchGetQueryExecutionCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n createDataCatalog(args, optionsOrCb, cb) {\n const command = new CreateDataCatalogCommand_1.CreateDataCatalogCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n createNamedQuery(args, optionsOrCb, cb) {\n const command = new CreateNamedQueryCommand_1.CreateNamedQueryCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n createNotebook(args, optionsOrCb, cb) {\n const command = new CreateNotebookCommand_1.CreateNotebookCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n createPreparedStatement(args, optionsOrCb, cb) {\n const command = new CreatePreparedStatementCommand_1.CreatePreparedStatementCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n createPresignedNotebookUrl(args, optionsOrCb, cb) {\n const command = new CreatePresignedNotebookUrlCommand_1.CreatePresignedNotebookUrlCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n createWorkGroup(args, optionsOrCb, cb) {\n const command = new CreateWorkGroupCommand_1.CreateWorkGroupCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n deleteDataCatalog(args, optionsOrCb, cb) {\n const command = new DeleteDataCatalogCommand_1.DeleteDataCatalogCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n deleteNamedQuery(args, optionsOrCb, cb) {\n const command = new DeleteNamedQueryCommand_1.DeleteNamedQueryCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n deleteNotebook(args, optionsOrCb, cb) {\n const command = new DeleteNotebookCommand_1.DeleteNotebookCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n deletePreparedStatement(args, optionsOrCb, cb) {\n const command = new DeletePreparedStatementCommand_1.DeletePreparedStatementCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n deleteWorkGroup(args, optionsOrCb, cb) {\n const command = new DeleteWorkGroupCommand_1.DeleteWorkGroupCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n exportNotebook(args, optionsOrCb, cb) {\n const command = new ExportNotebookCommand_1.ExportNotebookCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n getCalculationExecution(args, optionsOrCb, cb) {\n const command = new GetCalculationExecutionCommand_1.GetCalculationExecutionCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n getCalculationExecutionCode(args, optionsOrCb, cb) {\n const command = new GetCalculationExecutionCodeCommand_1.GetCalculationExecutionCodeCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n getCalculationExecutionStatus(args, optionsOrCb, cb) {\n const command = new GetCalculationExecutionStatusCommand_1.GetCalculationExecutionStatusCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n getDatabase(args, optionsOrCb, cb) {\n const command = new GetDatabaseCommand_1.GetDatabaseCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n getDataCatalog(args, optionsOrCb, cb) {\n const command = new GetDataCatalogCommand_1.GetDataCatalogCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n getNamedQuery(args, optionsOrCb, cb) {\n const command = new GetNamedQueryCommand_1.GetNamedQueryCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n getNotebookMetadata(args, optionsOrCb, cb) {\n const command = new GetNotebookMetadataCommand_1.GetNotebookMetadataCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n getPreparedStatement(args, optionsOrCb, cb) {\n const command = new GetPreparedStatementCommand_1.GetPreparedStatementCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n getQueryExecution(args, optionsOrCb, cb) {\n const command = new GetQueryExecutionCommand_1.GetQueryExecutionCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n getQueryResults(args, optionsOrCb, cb) {\n const command = new GetQueryResultsCommand_1.GetQueryResultsCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n getQueryRuntimeStatistics(args, optionsOrCb, cb) {\n const command = new GetQueryRuntimeStatisticsCommand_1.GetQueryRuntimeStatisticsCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n getSession(args, optionsOrCb, cb) {\n const command = new GetSessionCommand_1.GetSessionCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n getSessionStatus(args, optionsOrCb, cb) {\n const command = new GetSessionStatusCommand_1.GetSessionStatusCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n getTableMetadata(args, optionsOrCb, cb) {\n const command = new GetTableMetadataCommand_1.GetTableMetadataCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n getWorkGroup(args, optionsOrCb, cb) {\n const command = new GetWorkGroupCommand_1.GetWorkGroupCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n importNotebook(args, optionsOrCb, cb) {\n const command = new ImportNotebookCommand_1.ImportNotebookCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n listApplicationDPUSizes(args, optionsOrCb, cb) {\n const command = new ListApplicationDPUSizesCommand_1.ListApplicationDPUSizesCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n listCalculationExecutions(args, optionsOrCb, cb) {\n const command = new ListCalculationExecutionsCommand_1.ListCalculationExecutionsCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n listDatabases(args, optionsOrCb, cb) {\n const command = new ListDatabasesCommand_1.ListDatabasesCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n listDataCatalogs(args, optionsOrCb, cb) {\n const command = new ListDataCatalogsCommand_1.ListDataCatalogsCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n listEngineVersions(args, optionsOrCb, cb) {\n const command = new ListEngineVersionsCommand_1.ListEngineVersionsCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n listExecutors(args, optionsOrCb, cb) {\n const command = new ListExecutorsCommand_1.ListExecutorsCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n listNamedQueries(args, optionsOrCb, cb) {\n const command = new ListNamedQueriesCommand_1.ListNamedQueriesCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n listNotebookMetadata(args, optionsOrCb, cb) {\n const command = new ListNotebookMetadataCommand_1.ListNotebookMetadataCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n listNotebookSessions(args, optionsOrCb, cb) {\n const command = new ListNotebookSessionsCommand_1.ListNotebookSessionsCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n listPreparedStatements(args, optionsOrCb, cb) {\n const command = new ListPreparedStatementsCommand_1.ListPreparedStatementsCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n listQueryExecutions(args, optionsOrCb, cb) {\n const command = new ListQueryExecutionsCommand_1.ListQueryExecutionsCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n listSessions(args, optionsOrCb, cb) {\n const command = new ListSessionsCommand_1.ListSessionsCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n listTableMetadata(args, optionsOrCb, cb) {\n const command = new ListTableMetadataCommand_1.ListTableMetadataCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n listTagsForResource(args, optionsOrCb, cb) {\n const command = new ListTagsForResourceCommand_1.ListTagsForResourceCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n listWorkGroups(args, optionsOrCb, cb) {\n const command = new ListWorkGroupsCommand_1.ListWorkGroupsCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n startCalculationExecution(args, optionsOrCb, cb) {\n const command = new StartCalculationExecutionCommand_1.StartCalculationExecutionCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n startQueryExecution(args, optionsOrCb, cb) {\n const command = new StartQueryExecutionCommand_1.StartQueryExecutionCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n startSession(args, optionsOrCb, cb) {\n const command = new StartSessionCommand_1.StartSessionCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n stopCalculationExecution(args, optionsOrCb, cb) {\n const command = new StopCalculationExecutionCommand_1.StopCalculationExecutionCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n stopQueryExecution(args, optionsOrCb, cb) {\n const command = new StopQueryExecutionCommand_1.StopQueryExecutionCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n tagResource(args, optionsOrCb, cb) {\n const command = new TagResourceCommand_1.TagResourceCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n terminateSession(args, optionsOrCb, cb) {\n const command = new TerminateSessionCommand_1.TerminateSessionCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n untagResource(args, optionsOrCb, cb) {\n const command = new UntagResourceCommand_1.UntagResourceCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n updateDataCatalog(args, optionsOrCb, cb) {\n const command = new UpdateDataCatalogCommand_1.UpdateDataCatalogCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n updateNamedQuery(args, optionsOrCb, cb) {\n const command = new UpdateNamedQueryCommand_1.UpdateNamedQueryCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n updateNotebook(args, optionsOrCb, cb) {\n const command = new UpdateNotebookCommand_1.UpdateNotebookCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n updateNotebookMetadata(args, optionsOrCb, cb) {\n const command = new UpdateNotebookMetadataCommand_1.UpdateNotebookMetadataCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n updatePreparedStatement(args, optionsOrCb, cb) {\n const command = new UpdatePreparedStatementCommand_1.UpdatePreparedStatementCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n updateWorkGroup(args, optionsOrCb, cb) {\n const command = new UpdateWorkGroupCommand_1.UpdateWorkGroupCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n}\nexports.Athena = Athena;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./BatchGetNamedQueryCommand\"), exports);\ntslib_1.__exportStar(require(\"./BatchGetPreparedStatementCommand\"), exports);\ntslib_1.__exportStar(require(\"./BatchGetQueryExecutionCommand\"), exports);\ntslib_1.__exportStar(require(\"./CreateDataCatalogCommand\"), exports);\ntslib_1.__exportStar(require(\"./CreateNamedQueryCommand\"), exports);\ntslib_1.__exportStar(require(\"./CreateNotebookCommand\"), exports);\ntslib_1.__exportStar(require(\"./CreatePreparedStatementCommand\"), exports);\ntslib_1.__exportStar(require(\"./CreatePresignedNotebookUrlCommand\"), exports);\ntslib_1.__exportStar(require(\"./CreateWorkGroupCommand\"), exports);\ntslib_1.__exportStar(require(\"./DeleteDataCatalogCommand\"), exports);\ntslib_1.__exportStar(require(\"./DeleteNamedQueryCommand\"), exports);\ntslib_1.__exportStar(require(\"./DeleteNotebookCommand\"), exports);\ntslib_1.__exportStar(require(\"./DeletePreparedStatementCommand\"), exports);\ntslib_1.__exportStar(require(\"./DeleteWorkGroupCommand\"), exports);\ntslib_1.__exportStar(require(\"./ExportNotebookCommand\"), exports);\ntslib_1.__exportStar(require(\"./GetCalculationExecutionCodeCommand\"), exports);\ntslib_1.__exportStar(require(\"./GetCalculationExecutionCommand\"), exports);\ntslib_1.__exportStar(require(\"./GetCalculationExecutionStatusCommand\"), exports);\ntslib_1.__exportStar(require(\"./GetDataCatalogCommand\"), exports);\ntslib_1.__exportStar(require(\"./GetDatabaseCommand\"), exports);\ntslib_1.__exportStar(require(\"./GetNamedQueryCommand\"), exports);\ntslib_1.__exportStar(require(\"./GetNotebookMetadataCommand\"), exports);\ntslib_1.__exportStar(require(\"./GetPreparedStatementCommand\"), exports);\ntslib_1.__exportStar(require(\"./GetQueryExecutionCommand\"), exports);\ntslib_1.__exportStar(require(\"./GetQueryResultsCommand\"), exports);\ntslib_1.__exportStar(require(\"./GetQueryRuntimeStatisticsCommand\"), exports);\ntslib_1.__exportStar(require(\"./GetSessionCommand\"), exports);\ntslib_1.__exportStar(require(\"./GetSessionStatusCommand\"), exports);\ntslib_1.__exportStar(require(\"./GetTableMetadataCommand\"), exports);\ntslib_1.__exportStar(require(\"./GetWorkGroupCommand\"), exports);\ntslib_1.__exportStar(require(\"./ImportNotebookCommand\"), exports);\ntslib_1.__exportStar(require(\"./ListApplicationDPUSizesCommand\"), exports);\ntslib_1.__exportStar(require(\"./ListCalculationExecutionsCommand\"), exports);\ntslib_1.__exportStar(require(\"./ListDataCatalogsCommand\"), exports);\ntslib_1.__exportStar(require(\"./ListDatabasesCommand\"), exports);\ntslib_1.__exportStar(require(\"./ListEngineVersionsCommand\"), exports);\ntslib_1.__exportStar(require(\"./ListExecutorsCommand\"), exports);\ntslib_1.__exportStar(require(\"./ListNamedQueriesCommand\"), exports);\ntslib_1.__exportStar(require(\"./ListNotebookMetadataCommand\"), exports);\ntslib_1.__exportStar(require(\"./ListNotebookSessionsCommand\"), exports);\ntslib_1.__exportStar(require(\"./ListPreparedStatementsCommand\"), exports);\ntslib_1.__exportStar(require(\"./ListQueryExecutionsCommand\"), exports);\ntslib_1.__exportStar(require(\"./ListSessionsCommand\"), exports);\ntslib_1.__exportStar(require(\"./ListTableMetadataCommand\"), exports);\ntslib_1.__exportStar(require(\"./ListTagsForResourceCommand\"), exports);\ntslib_1.__exportStar(require(\"./ListWorkGroupsCommand\"), exports);\ntslib_1.__exportStar(require(\"./StartCalculationExecutionCommand\"), exports);\ntslib_1.__exportStar(require(\"./StartQueryExecutionCommand\"), exports);\ntslib_1.__exportStar(require(\"./StartSessionCommand\"), exports);\ntslib_1.__exportStar(require(\"./StopCalculationExecutionCommand\"), exports);\ntslib_1.__exportStar(require(\"./StopQueryExecutionCommand\"), exports);\ntslib_1.__exportStar(require(\"./TagResourceCommand\"), exports);\ntslib_1.__exportStar(require(\"./TerminateSessionCommand\"), exports);\ntslib_1.__exportStar(require(\"./UntagResourceCommand\"), exports);\ntslib_1.__exportStar(require(\"./UpdateDataCatalogCommand\"), exports);\ntslib_1.__exportStar(require(\"./UpdateNamedQueryCommand\"), exports);\ntslib_1.__exportStar(require(\"./UpdateNotebookCommand\"), exports);\ntslib_1.__exportStar(require(\"./UpdateNotebookMetadataCommand\"), exports);\ntslib_1.__exportStar(require(\"./UpdatePreparedStatementCommand\"), exports);\ntslib_1.__exportStar(require(\"./UpdateWorkGroupCommand\"), exports);\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./models_0\"), exports);\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.paginateGetQueryResults = void 0;\nconst Athena_1 = require(\"../Athena\");\nconst AthenaClient_1 = require(\"../AthenaClient\");\nconst GetQueryResultsCommand_1 = require(\"../commands/GetQueryResultsCommand\");\nconst makePagedClientRequest = async (client, input, ...args) => {\n return await client.send(new GetQueryResultsCommand_1.GetQueryResultsCommand(input), ...args);\n};\nconst makePagedRequest = async (client, input, ...args) => {\n return await client.getQueryResults(input, ...args);\n};\nasync function* paginateGetQueryResults(config, input, ...additionalArguments) {\n let token = config.startingToken || undefined;\n let hasNext = true;\n let page;\n while (hasNext) {\n input.NextToken = token;\n input[\"MaxResults\"] = config.pageSize;\n if (config.client instanceof Athena_1.Athena) {\n page = await makePagedRequest(config.client, input, ...additionalArguments);\n }\n else if (config.client instanceof AthenaClient_1.AthenaClient) {\n page = await makePagedClientRequest(config.client, input, ...additionalArguments);\n }\n else {\n throw new Error(\"Invalid client, expected Athena | AthenaClient\");\n }\n yield page;\n const prevToken = token;\n token = page.NextToken;\n hasNext = !!(token && (!config.stopOnSameToken || token !== prevToken));\n }\n return undefined;\n}\nexports.paginateGetQueryResults = paginateGetQueryResults;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.paginateListApplicationDPUSizes = void 0;\nconst Athena_1 = require(\"../Athena\");\nconst AthenaClient_1 = require(\"../AthenaClient\");\nconst ListApplicationDPUSizesCommand_1 = require(\"../commands/ListApplicationDPUSizesCommand\");\nconst makePagedClientRequest = async (client, input, ...args) => {\n return await client.send(new ListApplicationDPUSizesCommand_1.ListApplicationDPUSizesCommand(input), ...args);\n};\nconst makePagedRequest = async (client, input, ...args) => {\n return await client.listApplicationDPUSizes(input, ...args);\n};\nasync function* paginateListApplicationDPUSizes(config, input, ...additionalArguments) {\n let token = config.startingToken || undefined;\n let hasNext = true;\n let page;\n while (hasNext) {\n input.NextToken = token;\n input[\"MaxResults\"] = config.pageSize;\n if (config.client instanceof Athena_1.Athena) {\n page = await makePagedRequest(config.client, input, ...additionalArguments);\n }\n else if (config.client instanceof AthenaClient_1.AthenaClient) {\n page = await makePagedClientRequest(config.client, input, ...additionalArguments);\n }\n else {\n throw new Error(\"Invalid client, expected Athena | AthenaClient\");\n }\n yield page;\n const prevToken = token;\n token = page.NextToken;\n hasNext = !!(token && (!config.stopOnSameToken || token !== prevToken));\n }\n return undefined;\n}\nexports.paginateListApplicationDPUSizes = paginateListApplicationDPUSizes;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.paginateListCalculationExecutions = void 0;\nconst Athena_1 = require(\"../Athena\");\nconst AthenaClient_1 = require(\"../AthenaClient\");\nconst ListCalculationExecutionsCommand_1 = require(\"../commands/ListCalculationExecutionsCommand\");\nconst makePagedClientRequest = async (client, input, ...args) => {\n return await client.send(new ListCalculationExecutionsCommand_1.ListCalculationExecutionsCommand(input), ...args);\n};\nconst makePagedRequest = async (client, input, ...args) => {\n return await client.listCalculationExecutions(input, ...args);\n};\nasync function* paginateListCalculationExecutions(config, input, ...additionalArguments) {\n let token = config.startingToken || undefined;\n let hasNext = true;\n let page;\n while (hasNext) {\n input.NextToken = token;\n input[\"MaxResults\"] = config.pageSize;\n if (config.client instanceof Athena_1.Athena) {\n page = await makePagedRequest(config.client, input, ...additionalArguments);\n }\n else if (config.client instanceof AthenaClient_1.AthenaClient) {\n page = await makePagedClientRequest(config.client, input, ...additionalArguments);\n }\n else {\n throw new Error(\"Invalid client, expected Athena | AthenaClient\");\n }\n yield page;\n const prevToken = token;\n token = page.NextToken;\n hasNext = !!(token && (!config.stopOnSameToken || token !== prevToken));\n }\n return undefined;\n}\nexports.paginateListCalculationExecutions = paginateListCalculationExecutions;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.paginateListDataCatalogs = void 0;\nconst Athena_1 = require(\"../Athena\");\nconst AthenaClient_1 = require(\"../AthenaClient\");\nconst ListDataCatalogsCommand_1 = require(\"../commands/ListDataCatalogsCommand\");\nconst makePagedClientRequest = async (client, input, ...args) => {\n return await client.send(new ListDataCatalogsCommand_1.ListDataCatalogsCommand(input), ...args);\n};\nconst makePagedRequest = async (client, input, ...args) => {\n return await client.listDataCatalogs(input, ...args);\n};\nasync function* paginateListDataCatalogs(config, input, ...additionalArguments) {\n let token = config.startingToken || undefined;\n let hasNext = true;\n let page;\n while (hasNext) {\n input.NextToken = token;\n input[\"MaxResults\"] = config.pageSize;\n if (config.client instanceof Athena_1.Athena) {\n page = await makePagedRequest(config.client, input, ...additionalArguments);\n }\n else if (config.client instanceof AthenaClient_1.AthenaClient) {\n page = await makePagedClientRequest(config.client, input, ...additionalArguments);\n }\n else {\n throw new Error(\"Invalid client, expected Athena | AthenaClient\");\n }\n yield page;\n const prevToken = token;\n token = page.NextToken;\n hasNext = !!(token && (!config.stopOnSameToken || token !== prevToken));\n }\n return undefined;\n}\nexports.paginateListDataCatalogs = paginateListDataCatalogs;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.paginateListDatabases = void 0;\nconst Athena_1 = require(\"../Athena\");\nconst AthenaClient_1 = require(\"../AthenaClient\");\nconst ListDatabasesCommand_1 = require(\"../commands/ListDatabasesCommand\");\nconst makePagedClientRequest = async (client, input, ...args) => {\n return await client.send(new ListDatabasesCommand_1.ListDatabasesCommand(input), ...args);\n};\nconst makePagedRequest = async (client, input, ...args) => {\n return await client.listDatabases(input, ...args);\n};\nasync function* paginateListDatabases(config, input, ...additionalArguments) {\n let token = config.startingToken || undefined;\n let hasNext = true;\n let page;\n while (hasNext) {\n input.NextToken = token;\n input[\"MaxResults\"] = config.pageSize;\n if (config.client instanceof Athena_1.Athena) {\n page = await makePagedRequest(config.client, input, ...additionalArguments);\n }\n else if (config.client instanceof AthenaClient_1.AthenaClient) {\n page = await makePagedClientRequest(config.client, input, ...additionalArguments);\n }\n else {\n throw new Error(\"Invalid client, expected Athena | AthenaClient\");\n }\n yield page;\n const prevToken = token;\n token = page.NextToken;\n hasNext = !!(token && (!config.stopOnSameToken || token !== prevToken));\n }\n return undefined;\n}\nexports.paginateListDatabases = paginateListDatabases;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.paginateListEngineVersions = void 0;\nconst Athena_1 = require(\"../Athena\");\nconst AthenaClient_1 = require(\"../AthenaClient\");\nconst ListEngineVersionsCommand_1 = require(\"../commands/ListEngineVersionsCommand\");\nconst makePagedClientRequest = async (client, input, ...args) => {\n return await client.send(new ListEngineVersionsCommand_1.ListEngineVersionsCommand(input), ...args);\n};\nconst makePagedRequest = async (client, input, ...args) => {\n return await client.listEngineVersions(input, ...args);\n};\nasync function* paginateListEngineVersions(config, input, ...additionalArguments) {\n let token = config.startingToken || undefined;\n let hasNext = true;\n let page;\n while (hasNext) {\n input.NextToken = token;\n input[\"MaxResults\"] = config.pageSize;\n if (config.client instanceof Athena_1.Athena) {\n page = await makePagedRequest(config.client, input, ...additionalArguments);\n }\n else if (config.client instanceof AthenaClient_1.AthenaClient) {\n page = await makePagedClientRequest(config.client, input, ...additionalArguments);\n }\n else {\n throw new Error(\"Invalid client, expected Athena | AthenaClient\");\n }\n yield page;\n const prevToken = token;\n token = page.NextToken;\n hasNext = !!(token && (!config.stopOnSameToken || token !== prevToken));\n }\n return undefined;\n}\nexports.paginateListEngineVersions = paginateListEngineVersions;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.paginateListExecutors = void 0;\nconst Athena_1 = require(\"../Athena\");\nconst AthenaClient_1 = require(\"../AthenaClient\");\nconst ListExecutorsCommand_1 = require(\"../commands/ListExecutorsCommand\");\nconst makePagedClientRequest = async (client, input, ...args) => {\n return await client.send(new ListExecutorsCommand_1.ListExecutorsCommand(input), ...args);\n};\nconst makePagedRequest = async (client, input, ...args) => {\n return await client.listExecutors(input, ...args);\n};\nasync function* paginateListExecutors(config, input, ...additionalArguments) {\n let token = config.startingToken || undefined;\n let hasNext = true;\n let page;\n while (hasNext) {\n input.NextToken = token;\n input[\"MaxResults\"] = config.pageSize;\n if (config.client instanceof Athena_1.Athena) {\n page = await makePagedRequest(config.client, input, ...additionalArguments);\n }\n else if (config.client instanceof AthenaClient_1.AthenaClient) {\n page = await makePagedClientRequest(config.client, input, ...additionalArguments);\n }\n else {\n throw new Error(\"Invalid client, expected Athena | AthenaClient\");\n }\n yield page;\n const prevToken = token;\n token = page.NextToken;\n hasNext = !!(token && (!config.stopOnSameToken || token !== prevToken));\n }\n return undefined;\n}\nexports.paginateListExecutors = paginateListExecutors;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.paginateListNamedQueries = void 0;\nconst Athena_1 = require(\"../Athena\");\nconst AthenaClient_1 = require(\"../AthenaClient\");\nconst ListNamedQueriesCommand_1 = require(\"../commands/ListNamedQueriesCommand\");\nconst makePagedClientRequest = async (client, input, ...args) => {\n return await client.send(new ListNamedQueriesCommand_1.ListNamedQueriesCommand(input), ...args);\n};\nconst makePagedRequest = async (client, input, ...args) => {\n return await client.listNamedQueries(input, ...args);\n};\nasync function* paginateListNamedQueries(config, input, ...additionalArguments) {\n let token = config.startingToken || undefined;\n let hasNext = true;\n let page;\n while (hasNext) {\n input.NextToken = token;\n input[\"MaxResults\"] = config.pageSize;\n if (config.client instanceof Athena_1.Athena) {\n page = await makePagedRequest(config.client, input, ...additionalArguments);\n }\n else if (config.client instanceof AthenaClient_1.AthenaClient) {\n page = await makePagedClientRequest(config.client, input, ...additionalArguments);\n }\n else {\n throw new Error(\"Invalid client, expected Athena | AthenaClient\");\n }\n yield page;\n const prevToken = token;\n token = page.NextToken;\n hasNext = !!(token && (!config.stopOnSameToken || token !== prevToken));\n }\n return undefined;\n}\nexports.paginateListNamedQueries = paginateListNamedQueries;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.paginateListPreparedStatements = void 0;\nconst Athena_1 = require(\"../Athena\");\nconst AthenaClient_1 = require(\"../AthenaClient\");\nconst ListPreparedStatementsCommand_1 = require(\"../commands/ListPreparedStatementsCommand\");\nconst makePagedClientRequest = async (client, input, ...args) => {\n return await client.send(new ListPreparedStatementsCommand_1.ListPreparedStatementsCommand(input), ...args);\n};\nconst makePagedRequest = async (client, input, ...args) => {\n return await client.listPreparedStatements(input, ...args);\n};\nasync function* paginateListPreparedStatements(config, input, ...additionalArguments) {\n let token = config.startingToken || undefined;\n let hasNext = true;\n let page;\n while (hasNext) {\n input.NextToken = token;\n input[\"MaxResults\"] = config.pageSize;\n if (config.client instanceof Athena_1.Athena) {\n page = await makePagedRequest(config.client, input, ...additionalArguments);\n }\n else if (config.client instanceof AthenaClient_1.AthenaClient) {\n page = await makePagedClientRequest(config.client, input, ...additionalArguments);\n }\n else {\n throw new Error(\"Invalid client, expected Athena | AthenaClient\");\n }\n yield page;\n const prevToken = token;\n token = page.NextToken;\n hasNext = !!(token && (!config.stopOnSameToken || token !== prevToken));\n }\n return undefined;\n}\nexports.paginateListPreparedStatements = paginateListPreparedStatements;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.paginateListQueryExecutions = void 0;\nconst Athena_1 = require(\"../Athena\");\nconst AthenaClient_1 = require(\"../AthenaClient\");\nconst ListQueryExecutionsCommand_1 = require(\"../commands/ListQueryExecutionsCommand\");\nconst makePagedClientRequest = async (client, input, ...args) => {\n return await client.send(new ListQueryExecutionsCommand_1.ListQueryExecutionsCommand(input), ...args);\n};\nconst makePagedRequest = async (client, input, ...args) => {\n return await client.listQueryExecutions(input, ...args);\n};\nasync function* paginateListQueryExecutions(config, input, ...additionalArguments) {\n let token = config.startingToken || undefined;\n let hasNext = true;\n let page;\n while (hasNext) {\n input.NextToken = token;\n input[\"MaxResults\"] = config.pageSize;\n if (config.client instanceof Athena_1.Athena) {\n page = await makePagedRequest(config.client, input, ...additionalArguments);\n }\n else if (config.client instanceof AthenaClient_1.AthenaClient) {\n page = await makePagedClientRequest(config.client, input, ...additionalArguments);\n }\n else {\n throw new Error(\"Invalid client, expected Athena | AthenaClient\");\n }\n yield page;\n const prevToken = token;\n token = page.NextToken;\n hasNext = !!(token && (!config.stopOnSameToken || token !== prevToken));\n }\n return undefined;\n}\nexports.paginateListQueryExecutions = paginateListQueryExecutions;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.paginateListSessions = void 0;\nconst Athena_1 = require(\"../Athena\");\nconst AthenaClient_1 = require(\"../AthenaClient\");\nconst ListSessionsCommand_1 = require(\"../commands/ListSessionsCommand\");\nconst makePagedClientRequest = async (client, input, ...args) => {\n return await client.send(new ListSessionsCommand_1.ListSessionsCommand(input), ...args);\n};\nconst makePagedRequest = async (client, input, ...args) => {\n return await client.listSessions(input, ...args);\n};\nasync function* paginateListSessions(config, input, ...additionalArguments) {\n let token = config.startingToken || undefined;\n let hasNext = true;\n let page;\n while (hasNext) {\n input.NextToken = token;\n input[\"MaxResults\"] = config.pageSize;\n if (config.client instanceof Athena_1.Athena) {\n page = await makePagedRequest(config.client, input, ...additionalArguments);\n }\n else if (config.client instanceof AthenaClient_1.AthenaClient) {\n page = await makePagedClientRequest(config.client, input, ...additionalArguments);\n }\n else {\n throw new Error(\"Invalid client, expected Athena | AthenaClient\");\n }\n yield page;\n const prevToken = token;\n token = page.NextToken;\n hasNext = !!(token && (!config.stopOnSameToken || token !== prevToken));\n }\n return undefined;\n}\nexports.paginateListSessions = paginateListSessions;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.paginateListTableMetadata = void 0;\nconst Athena_1 = require(\"../Athena\");\nconst AthenaClient_1 = require(\"../AthenaClient\");\nconst ListTableMetadataCommand_1 = require(\"../commands/ListTableMetadataCommand\");\nconst makePagedClientRequest = async (client, input, ...args) => {\n return await client.send(new ListTableMetadataCommand_1.ListTableMetadataCommand(input), ...args);\n};\nconst makePagedRequest = async (client, input, ...args) => {\n return await client.listTableMetadata(input, ...args);\n};\nasync function* paginateListTableMetadata(config, input, ...additionalArguments) {\n let token = config.startingToken || undefined;\n let hasNext = true;\n let page;\n while (hasNext) {\n input.NextToken = token;\n input[\"MaxResults\"] = config.pageSize;\n if (config.client instanceof Athena_1.Athena) {\n page = await makePagedRequest(config.client, input, ...additionalArguments);\n }\n else if (config.client instanceof AthenaClient_1.AthenaClient) {\n page = await makePagedClientRequest(config.client, input, ...additionalArguments);\n }\n else {\n throw new Error(\"Invalid client, expected Athena | AthenaClient\");\n }\n yield page;\n const prevToken = token;\n token = page.NextToken;\n hasNext = !!(token && (!config.stopOnSameToken || token !== prevToken));\n }\n return undefined;\n}\nexports.paginateListTableMetadata = paginateListTableMetadata;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.paginateListTagsForResource = void 0;\nconst Athena_1 = require(\"../Athena\");\nconst AthenaClient_1 = require(\"../AthenaClient\");\nconst ListTagsForResourceCommand_1 = require(\"../commands/ListTagsForResourceCommand\");\nconst makePagedClientRequest = async (client, input, ...args) => {\n return await client.send(new ListTagsForResourceCommand_1.ListTagsForResourceCommand(input), ...args);\n};\nconst makePagedRequest = async (client, input, ...args) => {\n return await client.listTagsForResource(input, ...args);\n};\nasync function* paginateListTagsForResource(config, input, ...additionalArguments) {\n let token = config.startingToken || undefined;\n let hasNext = true;\n let page;\n while (hasNext) {\n input.NextToken = token;\n input[\"MaxResults\"] = config.pageSize;\n if (config.client instanceof Athena_1.Athena) {\n page = await makePagedRequest(config.client, input, ...additionalArguments);\n }\n else if (config.client instanceof AthenaClient_1.AthenaClient) {\n page = await makePagedClientRequest(config.client, input, ...additionalArguments);\n }\n else {\n throw new Error(\"Invalid client, expected Athena | AthenaClient\");\n }\n yield page;\n const prevToken = token;\n token = page.NextToken;\n hasNext = !!(token && (!config.stopOnSameToken || token !== prevToken));\n }\n return undefined;\n}\nexports.paginateListTagsForResource = paginateListTagsForResource;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.paginateListWorkGroups = void 0;\nconst Athena_1 = require(\"../Athena\");\nconst AthenaClient_1 = require(\"../AthenaClient\");\nconst ListWorkGroupsCommand_1 = require(\"../commands/ListWorkGroupsCommand\");\nconst makePagedClientRequest = async (client, input, ...args) => {\n return await client.send(new ListWorkGroupsCommand_1.ListWorkGroupsCommand(input), ...args);\n};\nconst makePagedRequest = async (client, input, ...args) => {\n return await client.listWorkGroups(input, ...args);\n};\nasync function* paginateListWorkGroups(config, input, ...additionalArguments) {\n let token = config.startingToken || undefined;\n let hasNext = true;\n let page;\n while (hasNext) {\n input.NextToken = token;\n input[\"MaxResults\"] = config.pageSize;\n if (config.client instanceof Athena_1.Athena) {\n page = await makePagedRequest(config.client, input, ...additionalArguments);\n }\n else if (config.client instanceof AthenaClient_1.AthenaClient) {\n page = await makePagedClientRequest(config.client, input, ...additionalArguments);\n }\n else {\n throw new Error(\"Invalid client, expected Athena | AthenaClient\");\n }\n yield page;\n const prevToken = token;\n token = page.NextToken;\n hasNext = !!(token && (!config.stopOnSameToken || token !== prevToken));\n }\n return undefined;\n}\nexports.paginateListWorkGroups = paginateListWorkGroups;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./GetQueryResultsPaginator\"), exports);\ntslib_1.__exportStar(require(\"./Interfaces\"), exports);\ntslib_1.__exportStar(require(\"./ListApplicationDPUSizesPaginator\"), exports);\ntslib_1.__exportStar(require(\"./ListCalculationExecutionsPaginator\"), exports);\ntslib_1.__exportStar(require(\"./ListDataCatalogsPaginator\"), exports);\ntslib_1.__exportStar(require(\"./ListDatabasesPaginator\"), exports);\ntslib_1.__exportStar(require(\"./ListEngineVersionsPaginator\"), exports);\ntslib_1.__exportStar(require(\"./ListExecutorsPaginator\"), exports);\ntslib_1.__exportStar(require(\"./ListNamedQueriesPaginator\"), exports);\ntslib_1.__exportStar(require(\"./ListPreparedStatementsPaginator\"), exports);\ntslib_1.__exportStar(require(\"./ListQueryExecutionsPaginator\"), exports);\ntslib_1.__exportStar(require(\"./ListSessionsPaginator\"), exports);\ntslib_1.__exportStar(require(\"./ListTableMetadataPaginator\"), exports);\ntslib_1.__exportStar(require(\"./ListTagsForResourcePaginator\"), exports);\ntslib_1.__exportStar(require(\"./ListWorkGroupsPaginator\"), exports);\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AthenaServiceException = void 0;\nconst tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./Athena\"), exports);\ntslib_1.__exportStar(require(\"./AthenaClient\"), exports);\ntslib_1.__exportStar(require(\"./commands\"), exports);\ntslib_1.__exportStar(require(\"./models\"), exports);\ntslib_1.__exportStar(require(\"./pagination\"), exports);\nvar AthenaServiceException_1 = require(\"./models/AthenaServiceException\");\nObject.defineProperty(exports, \"AthenaServiceException\", { enumerable: true, get: function () { return AthenaServiceException_1.AthenaServiceException; } });\n", "import { fromIni } from '@aws-sdk/credential-providers'\nimport { SecretsManagerClient, GetSecretValueCommand } from '@aws-sdk/client-secrets-manager'\nimport { S3Client, S3ClientConfig, PutObjectCommand, GetObjectCommand } from '@aws-sdk/client-s3'\nimport { AthenaClient, AthenaClientConfig, StartQueryExecutionCommand, GetQueryExecutionCommand } from '@aws-sdk/client-athena'\nimport { defaultProvider } from '@aws-sdk/credential-provider-node'\nimport { EventTableSchema } from '@casimir/data'\n\nexport async function getSecret(id: string) {\n const aws = new SecretsManagerClient({})\n const { SecretString } = await aws.send(\n new GetSecretValueCommand(\n { \n SecretId: id\n }\n )\n )\n return SecretString\n}\n\n/**\n * Ensures AWS credentials are available and returns them.\n * Checks for AWS credentials in the environment variables.\n * If not found, loads credentials from `AWS_PROFILE` or the default profile.\n * \n * @returns AWS credentials\n */\nexport async function loadCredentials() {\n const defaultProfile = 'consensus-networks-dev'\n if (!process.env.AWS_ACCESS_KEY_ID || !process.env.AWS_SECRET_ACCESS_KEY) {\n process.env.AWS_PROFILE = process.env.AWS_PROFILE || defaultProfile\n return await fromIni()()\n }\n return {\n accessKeyId: process.env.AWS_ACCESS_KEY_ID,\n secretAccessKey: process.env.AWS_SECRET_ACCESS_KEY\n }\n}\n\nconst defaultQueryOutputBucket = 'casimir-etl-output-bucket-dev'\n\nlet athena: AthenaClient | null = null\nlet s3: S3Client | null = null\n\n/**\n * Creates a new Athena client\n *\n * @param opt - Athena client config\n * @returns Athena client\n *\n */\nexport async function newAthenaClient(opt?: AthenaClientConfig): Promise {\n if (opt?.region === undefined) {\n opt = {\n region: 'us-east-2'\n }\n }\n\n if (opt.credentials === undefined) {\n opt = {\n credentials: defaultProvider()\n }\n }\n const client = new AthenaClient(opt)\n athena = client\n\n return client\n}\n\n/**\n * Creates a new S3 client\n *\n * @param opt - S3 client config\n * @returns S3 client\n *\n */\nexport async function newS3Client(opt?: S3ClientConfig): Promise {\n if (s3) {\n return s3\n }\n\n if (opt?.region === undefined) {\n opt = {\n region: 'us-east-2'\n }\n }\n\n if (opt.credentials === undefined) {\n opt = {\n credentials: defaultProvider()\n }\n }\n\n const client = new S3Client(opt)\n s3 = client\n\n return client\n}\n\n/**\n * Uploads data to S3\n *\n * @param input.bucket - Bucket destination\n * @param input.key - Key destination\n * @param input.data - Data to be uploaded\n *\n */\nexport async function uploadToS3(input: { bucket: string, key: string, data: string }): Promise {\n if (!s3) {\n s3 = await newS3Client()\n }\n\n const upload = new PutObjectCommand({\n Bucket: input.bucket,\n Key: input.key,\n Body: input.data\n })\n\n const { $metadata } = await s3.send(upload)\n if ($metadata.httpStatusCode !== 200) throw new Error('Error uploading to s3')\n}\n\n/**\n * Get data from S3\n *\n * @param input.bucket - Bucket destination\n * @param input.key - Key destination\n * @param input.data - Data to be uploaded\n * @return data - Data from S3\n *\n */\nexport async function getFromS3(bucket: string, key: string): Promise {\n if (!s3) {\n s3 = await newS3Client()\n }\n\n const { $metadata, Body } = await s3.send(new GetObjectCommand({\n Bucket: bucket,\n Key: key\n // Bucket: 'cms-lds-agg',\n // Key: `cms_hcf_aggregates/${res.QueryExecutionId}.csv`\n }))\n\n if ($metadata.httpStatusCode !== 200) throw new Error('FailedQuery: unable retrieve result from S3')\n if (Body === undefined) throw new Error('InvalidQueryResult: query result is undefined')\n\n let chunk = ''\n\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n for await (const data of Body) {\n chunk += data.toString()\n }\n return chunk\n}\n\nlet retry = 0\nlet backoff = 500\n\n/**\n * Poll for Athena query's result\n *\n * @param input.bucket - Bucket destination\n * @param input.key - Key destination\n * @param input.data - Data to be uploaded\n *\n */\nasync function pollAthenaQueryOutput(queryId: string): Promise {\n if (!athena) {\n athena = await newAthenaClient()\n }\n\n const getStateCmd = new GetQueryExecutionCommand({\n QueryExecutionId: queryId\n })\n\n const { $metadata, QueryExecution } = await athena.send(getStateCmd)\n\n if ($metadata.httpStatusCode !== 200) throw new Error('FailedQuery: unable to query Athena')\n if (QueryExecution === undefined) throw new Error('InvalidQueryExecution: query execution is undefined')\n if (QueryExecution.Status === undefined) throw new Error('InvalidQueryExecutionStatus: query execution status is undefined')\n\n if (QueryExecution.Status.State === 'QUEUED' || QueryExecution.Status.State === 'RUNNING') {\n setTimeout(() => {\n pollAthenaQueryOutput(queryId)\n retry++\n backoff = backoff + 500\n }, backoff)\n }\n\n if (QueryExecution.Status.State === 'FAILED') {\n const reason = QueryExecution.Status.StateChangeReason\n if (reason && reason.includes('HIVE_BAD_DATA')) {\n throw new Error('FailedQuery: Check the table for bad data')\n } else {\n throw new Error('QueryFailed: query failed')\n }\n }\n if (QueryExecution.Status.State === 'SUCCEEDED')\n return\n}\n\n/**\n * Runs a SQL query on Athena table\n *\n * @param query - SQL query to run (make sure the correct permissions are set)\n * @return string - Query result\n */\nexport async function queryAthena(query: string): Promise {\n\n if (!athena) {\n athena = await newAthenaClient()\n }\n\n const execCmd = new StartQueryExecutionCommand({\n QueryString: query,\n WorkGroup: 'primary',\n ResultConfiguration: {\n OutputLocation: `s3://${defaultQueryOutputBucket}/`\n }\n })\n\n const { $metadata, QueryExecutionId } = await athena.send(execCmd)\n\n if ($metadata.httpStatusCode !== 200) {\n throw new Error('FailedQuery: unable to query Athena')\n }\n\n if (QueryExecutionId === undefined) {\n throw new Error('InvalidQueryExecutionId: query execution id is undefined')\n }\n\n await pollAthenaQueryOutput(QueryExecutionId)\n\n // wait for athena to finish writing to s3\n await new Promise(resolve => setTimeout(resolve, 2000))\n\n const raw = await getFromS3(defaultQueryOutputBucket, `${QueryExecutionId}.csv`)\n\n const rows = raw.split('\\n').filter(r => r !== '')\n\n if (rows.length <= 1) {\n return null\n }\n\n const header = rows.splice(0, 1)[0].split(',').map((h: string) => h.trim().replace(/\"/g, ''))\n\n const events: EventTableSchema[] = []\n\n rows.forEach((curr, i) => {\n const row = curr.split(',')\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n const event: EventTableColumn = {}\n row.forEach((r, i) => {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n event[header[i]] = r.trim().replace(/\"/g, '')\n })\n\n if (event) {\n events.push(event)\n }\n })\n return events\n}"], + "mappings": "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", + "names": ["require_tslib", "__commonJSMin", "exports", "module", "__extends", "__assign", "__rest", "__decorate", "__param", "__esDecorate", "__runInitializers", "__propKey", "__setFunctionName", "__metadata", "__awaiter", "__generator", "__exportStar", "__values", "__read", "__spread", "__spreadArrays", "__spreadArray", "__await", "__asyncGenerator", "__asyncDelegator", "__asyncValues", "__makeTemplateObject", "__importStar", "__importDefault", "__classPrivateFieldGet", "__classPrivateFieldSet", "__classPrivateFieldIn", "__createBinding", "factory", "root", "createExporter", "previous", "id", "v", "exporter", "extendStatics", "d", "b", "p", "__", "t", "s", "n", "e", "i", "decorators", "target", "key", "desc", "c", "r", "paramIndex", "decorator", "ctor", "descriptorIn", "contextIn", "initializers", "extraInitializers", "accept", "f", "kind", "descriptor", "_", "done", "context", "result", "thisArg", "value", "useValue", "x", "name", "prefix", "metadataKey", "metadataValue", "_arguments", "P", "generator", "adopt", "resolve", "reject", "fulfilled", "step", "rejected", "body", "y", "g", "verb", "op", "m", "o", "k", "k2", "ar", "error", "il", "a", "j", "jl", "to", "from", "pack", "l", "q", "resume", "settle", "fulfill", "cooked", "raw", "__setModuleDefault", "mod", "receiver", "state", "require_booleanSelector", "__commonJSMin", "exports", "SelectorType", "booleanSelector", "obj", "key", "type", "require_dist_cjs", "__commonJSMin", "exports", "tslib_1", "require_NodeUseDualstackEndpointConfigOptions", "__commonJSMin", "exports", "util_config_provider_1", "env", "profile", "require_NodeUseFipsEndpointConfigOptions", "__commonJSMin", "exports", "util_config_provider_1", "env", "profile", "require_normalizeProvider", "__commonJSMin", "exports", "normalizeProvider", "input", "promisified", "require_dist_cjs", "__commonJSMin", "exports", "tslib_1", "require_resolveCustomEndpointsConfig", "__commonJSMin", "exports", "util_middleware_1", "resolveCustomEndpointsConfig", "input", "_a", "_b", "endpoint", "urlParser", "require_getEndpointFromRegion", "__commonJSMin", "exports", "getEndpointFromRegion", "input", "_a", "tls", "region", "useDualstackEndpoint", "useFipsEndpoint", "hostname", "require_resolveEndpointsConfig", "__commonJSMin", "exports", "util_middleware_1", "getEndpointFromRegion_1", "resolveEndpointsConfig", "input", "_a", "_b", "useDualstackEndpoint", "endpoint", "useFipsEndpoint", "urlParser", "require_endpointsConfig", "__commonJSMin", "exports", "tslib_1", "require_config", "__commonJSMin", "exports", "env", "profile", "require_isFipsRegion", "__commonJSMin", "exports", "isFipsRegion", "region", "require_getRealRegion", "__commonJSMin", "exports", "isFipsRegion_1", "getRealRegion", "region", "require_resolveRegionConfig", "__commonJSMin", "exports", "getRealRegion_1", "isFipsRegion_1", "resolveRegionConfig", "input", "region", "useFipsEndpoint", "providedRegion", "require_regionConfig", "__commonJSMin", "exports", "tslib_1", "require_PartitionHash", "__commonJSMin", "exports", "require_RegionHash", "__commonJSMin", "exports", "require_getHostnameFromVariants", "__commonJSMin", "exports", "getHostnameFromVariants", "variants", "useFipsEndpoint", "useDualstackEndpoint", "_a", "tags", "require_getResolvedHostname", "__commonJSMin", "exports", "getResolvedHostname", "resolvedRegion", "regionHostname", "partitionHostname", "require_getResolvedPartition", "__commonJSMin", "exports", "getResolvedPartition", "region", "partitionHash", "_a", "key", "require_getResolvedSigningRegion", "__commonJSMin", "exports", "getResolvedSigningRegion", "hostname", "signingRegion", "regionRegex", "useFipsEndpoint", "regionRegexJs", "regionRegexmatchArray", "require_getRegionInfo", "__commonJSMin", "exports", "getHostnameFromVariants_1", "getResolvedHostname_1", "getResolvedPartition_1", "getResolvedSigningRegion_1", "getRegionInfo", "region", "useFipsEndpoint", "useDualstackEndpoint", "signingService", "regionHash", "partitionHash", "_a", "_b", "_c", "_d", "_e", "_f", "partition", "resolvedRegion", "hostnameOptions", "regionHostname", "partitionHostname", "hostname", "signingRegion", "require_regionInfo", "__commonJSMin", "exports", "tslib_1", "require_dist_cjs", "__commonJSMin", "exports", "tslib_1", "require_FieldPosition", "__commonJSMin", "exports", "FieldPosition", "require_Field", "__commonJSMin", "exports", "FieldPosition_1", "Field", "name", "kind", "values", "value", "v", "require_Fields", "__commonJSMin", "exports", "Fields", "fields", "encoding", "field", "name", "kind", "require_httpHandler", "__commonJSMin", "exports", "require_httpRequest", "__commonJSMin", "exports", "HttpRequest", "options", "request", "req", "cloned", "cloneQuery", "query", "carry", "paramName", "param", "require_httpResponse", "__commonJSMin", "exports", "HttpResponse", "options", "response", "resp", "require_isValidHostname", "__commonJSMin", "exports", "isValidHostname", "hostname", "require_dist_cjs", "__commonJSMin", "exports", "tslib_1", "require_dist_cjs", "__commonJSMin", "exports", "protocol_http_1", "CONTENT_LENGTH_HEADER", "contentLengthMiddleware", "bodyLengthChecker", "next", "args", "request", "body", "headers", "str", "length", "getContentLengthPlugin", "options", "clientStack", "require_s3", "__commonJSMin", "exports", "resolveParamsForS3", "endpointParams", "bucket", "DOMAIN_PATTERN", "IP_ADDRESS_PATTERN", "DOTS_PATTERN", "isDnsCompatibleBucketName", "bucketName", "isArnBucketName", "arn", "partition", "service", "region", "account", "typeOrId", "isArn", "isValidArn", "require_service_customizations", "__commonJSMin", "exports", "tslib_1", "require_createConfigValueProvider", "__commonJSMin", "exports", "createConfigValueProvider", "configKey", "canonicalEndpointParamKey", "config", "configProvider", "_a", "configValue", "endpoint", "protocol", "hostname", "port", "path", "require_getEndpointFromInstructions", "__commonJSMin", "exports", "service_customizations_1", "createConfigValueProvider_1", "getEndpointFromInstructions", "commandInput", "instructionsSupplier", "clientConfig", "context", "endpointParams", "resolveParams", "_a", "instructions", "name", "instruction", "require_dist_cjs", "__commonJSMin", "exports", "parseQueryString", "querystring", "query", "pair", "key", "value", "require_dist_cjs", "__commonJSMin", "exports", "querystring_parser_1", "parseUrl", "url", "hostname", "pathname", "port", "protocol", "search", "query", "require_toEndpointV1", "__commonJSMin", "exports", "url_parser_1", "toEndpointV1", "endpoint", "require_adaptors", "__commonJSMin", "exports", "tslib_1", "require_endpointMiddleware", "__commonJSMin", "exports", "getEndpointFromInstructions_1", "endpointMiddleware", "config", "instructions", "next", "context", "args", "_a", "_b", "endpoint", "authScheme", "require_deserializerMiddleware", "__commonJSMin", "exports", "deserializerMiddleware", "options", "deserializer", "next", "context", "args", "response", "parsed", "error", "require_serializerMiddleware", "__commonJSMin", "exports", "serializerMiddleware", "options", "serializer", "next", "context", "args", "_a", "endpoint", "request", "require_serdePlugin", "__commonJSMin", "exports", "deserializerMiddleware_1", "serializerMiddleware_1", "getSerdePlugin", "config", "serializer", "deserializer", "commandStack", "require_dist_cjs", "__commonJSMin", "exports", "tslib_1", "require_getEndpointPlugin", "__commonJSMin", "exports", "middleware_serde_1", "endpointMiddleware_1", "getEndpointPlugin", "config", "instructions", "clientStack", "require_resolveEndpointConfig", "__commonJSMin", "exports", "util_middleware_1", "toEndpointV1_1", "resolveEndpointConfig", "input", "_a", "_b", "_c", "tls", "endpoint", "customEndpointProvider", "require_types", "__commonJSMin", "exports", "require_dist_cjs", "__commonJSMin", "exports", "tslib_1", "require_dist_cjs", "__commonJSMin", "exports", "protocol_http_1", "resolveHostHeaderConfig", "input", "hostHeaderMiddleware", "options", "next", "args", "request", "handlerProtocol", "host", "getHostHeaderPlugin", "clientStack", "require_loggerMiddleware", "__commonJSMin", "exports", "loggerMiddleware", "next", "context", "args", "response", "clientName", "commandName", "logger", "inputFilterSensitiveLog", "outputFilterSensitiveLog", "dynamoDbDocumentClientOptions", "overrideInputFilterSensitiveLog", "overrideOutputFilterSensitiveLog", "$metadata", "outputWithoutMetadata", "getLoggerPlugin", "options", "clientStack", "require_dist_cjs", "__commonJSMin", "exports", "tslib_1", "require_dist_cjs", "__commonJSMin", "exports", "protocol_http_1", "TRACE_ID_HEADER_NAME", "ENV_LAMBDA_FUNCTION_NAME", "ENV_TRACE_ID", "recursionDetectionMiddleware", "options", "next", "args", "request", "functionName", "traceId", "nonEmptyString", "str", "getRecursionDetectionPlugin", "clientStack", "require_config", "__commonJSMin", "exports", "RETRY_MODES", "require_constants", "__commonJSMin", "exports", "require_dist_cjs", "__commonJSMin", "exports", "constants_1", "isRetryableByTrait", "error", "isClockSkewError", "isThrottlingError", "_a", "_b", "isTransientError", "isServerError", "statusCode", "require_DefaultRateLimiter", "__commonJSMin", "exports", "service_error_classification_1", "DefaultRateLimiter", "options", "_a", "_b", "_c", "_d", "_e", "currentTimeInSeconds", "amount", "delay", "resolve", "timestamp", "fillAmount", "response", "calculatedRate", "rateToUse", "newRate", "t", "timeBucket", "currentRate", "num", "require_constants", "__commonJSMin", "exports", "require_defaultRetryBackoffStrategy", "__commonJSMin", "exports", "constants_1", "getDefaultRetryBackoffStrategy", "delayBase", "attempts", "delay", "require_defaultRetryToken", "__commonJSMin", "exports", "constants_1", "defaultRetryBackoffStrategy_1", "getDefaultRetryToken", "initialRetryTokens", "initialRetryDelay", "initialRetryCount", "options", "_a", "_b", "_c", "MAX_CAPACITY", "retryCost", "timeoutRetryCost", "retryBackoffStrategy", "availableCapacity", "retryDelay", "lastRetryCost", "retryCount", "getCapacityAmount", "errorType", "getRetryCount", "getRetryDelay", "getLastRetryCost", "hasRetryTokens", "errorInfo", "capacityAmount", "delayBase", "delayFromErrorType", "delayFromRetryAfterHint", "releaseAmount", "require_StandardRetryStrategy", "__commonJSMin", "exports", "config_1", "constants_1", "defaultRetryToken_1", "StandardRetryStrategy", "maxAttemptsProvider", "retryTokenScope", "tokenToRenew", "errorInfo", "maxAttempts", "token", "errorType", "require_AdaptiveRetryStrategy", "__commonJSMin", "exports", "config_1", "DefaultRateLimiter_1", "StandardRetryStrategy_1", "AdaptiveRetryStrategy", "maxAttemptsProvider", "options", "rateLimiter", "retryTokenScope", "tokenToRenew", "errorInfo", "token", "require_types", "__commonJSMin", "exports", "require_dist_cjs", "__commonJSMin", "exports", "tslib_1", "require_rng", "__commonJSMin", "exports", "rng", "_crypto", "_interopRequireDefault", "obj", "rnds8Pool", "poolPtr", "require_regex", "__commonJSMin", "exports", "_default", "require_validate", "__commonJSMin", "exports", "_regex", "_interopRequireDefault", "obj", "validate", "uuid", "_default", "require_stringify", "__commonJSMin", "exports", "_validate", "_interopRequireDefault", "obj", "byteToHex", "i", "stringify", "arr", "offset", "uuid", "_default", "require_v1", "__commonJSMin", "exports", "_rng", "_interopRequireDefault", "_stringify", "obj", "_nodeId", "_clockseq", "_lastMSecs", "_lastNSecs", "v1", "options", "buf", "offset", "i", "b", "node", "clockseq", "seedBytes", "msecs", "nsecs", "dt", "tl", "tmh", "n", "_default", "require_parse", "__commonJSMin", "exports", "_validate", "_interopRequireDefault", "obj", "parse", "uuid", "v", "arr", "_default", "require_v35", "__commonJSMin", "exports", "_default", "_stringify", "_interopRequireDefault", "_parse", "obj", "stringToBytes", "str", "bytes", "i", "DNS", "URL", "name", "version", "hashfunc", "generateUUID", "value", "namespace", "buf", "offset", "require_md5", "__commonJSMin", "exports", "_crypto", "_interopRequireDefault", "obj", "md5", "bytes", "_default", "require_v3", "__commonJSMin", "exports", "_v", "_interopRequireDefault", "_md", "obj", "v3", "_default", "require_v4", "__commonJSMin", "exports", "_rng", "_interopRequireDefault", "_stringify", "obj", "v4", "options", "buf", "offset", "rnds", "i", "_default", "require_sha1", "__commonJSMin", "exports", "_crypto", "_interopRequireDefault", "obj", "sha1", "bytes", "_default", "require_v5", "__commonJSMin", "exports", "_v", "_interopRequireDefault", "_sha", "obj", "v5", "_default", "require_nil", "__commonJSMin", "exports", "_default", "require_version", "__commonJSMin", "exports", "_validate", "_interopRequireDefault", "obj", "version", "uuid", "_default", "require_dist", "__commonJSMin", "exports", "_v", "_v2", "_v3", "_v4", "_nil", "_version", "_validate", "_stringify", "_parse", "_interopRequireDefault", "obj", "require_defaultRetryQuota", "__commonJSMin", "exports", "util_retry_1", "getDefaultRetryQuota", "initialRetryTokens", "options", "_a", "_b", "_c", "MAX_CAPACITY", "noRetryIncrement", "retryCost", "timeoutRetryCost", "availableCapacity", "getCapacityAmount", "error", "hasRetryTokens", "capacityAmount", "capacityReleaseAmount", "require_delayDecider", "__commonJSMin", "exports", "util_retry_1", "defaultDelayDecider", "delayBase", "attempts", "require_retryDecider", "__commonJSMin", "exports", "service_error_classification_1", "defaultRetryDecider", "error", "require_util", "__commonJSMin", "exports", "asSdkError", "error", "require_StandardRetryStrategy", "__commonJSMin", "exports", "protocol_http_1", "service_error_classification_1", "util_retry_1", "uuid_1", "defaultRetryQuota_1", "delayDecider_1", "retryDecider_1", "util_1", "StandardRetryStrategy", "maxAttemptsProvider", "options", "_a", "_b", "_c", "error", "attempts", "maxAttempts", "next", "args", "retryTokenAmount", "totalDelay", "request", "response", "output", "e", "err", "delayFromDecider", "delayFromResponse", "getDelayFromRetryAfterHeader", "delay", "resolve", "retryAfterHeaderName", "key", "retryAfter", "retryAfterSeconds", "require_AdaptiveRetryStrategy", "__commonJSMin", "exports", "util_retry_1", "StandardRetryStrategy_1", "AdaptiveRetryStrategy", "maxAttemptsProvider", "options", "rateLimiter", "superOptions", "next", "args", "response", "require_configurations", "__commonJSMin", "exports", "util_middleware_1", "util_retry_1", "env", "value", "maxAttempt", "profile", "resolveRetryConfig", "input", "_a", "retryStrategy", "maxAttempts", "require_omitRetryHeadersMiddleware", "__commonJSMin", "exports", "protocol_http_1", "util_retry_1", "omitRetryHeadersMiddleware", "next", "args", "request", "getOmitRetryHeadersPlugin", "options", "clientStack", "require_retryMiddleware", "__commonJSMin", "exports", "protocol_http_1", "service_error_classification_1", "util_retry_1", "uuid_1", "util_1", "retryMiddleware", "options", "next", "context", "args", "retryStrategy", "maxAttempts", "isRetryStrategyV2", "retryToken", "lastError", "attempts", "totalRetryDelay", "request", "response", "output", "e", "retryErrorInfo", "getRetyErrorInto", "delay", "resolve", "error", "errorInfo", "getRetryErrorType", "retryAfterHint", "getRetryPlugin", "clientStack", "getRetryAfterHint", "retryAfterHeaderName", "key", "retryAfter", "retryAfterSeconds", "require_dist_cjs", "__commonJSMin", "exports", "tslib_1", "require_ProviderError", "__commonJSMin", "exports", "ProviderError", "message", "tryNextLink", "error", "require_CredentialsProviderError", "__commonJSMin", "exports", "ProviderError_1", "CredentialsProviderError", "message", "tryNextLink", "require_TokenProviderError", "__commonJSMin", "exports", "ProviderError_1", "TokenProviderError", "message", "tryNextLink", "require_chain", "__commonJSMin", "exports", "ProviderError_1", "chain", "providers", "promise", "provider", "err", "require_fromStatic", "__commonJSMin", "exports", "fromStatic", "staticValue", "require_memoize", "__commonJSMin", "exports", "memoize", "provider", "isExpired", "requiresRefresh", "resolved", "pending", "hasResult", "isConstant", "coalesceProvider", "options", "require_dist_cjs", "__commonJSMin", "exports", "tslib_1", "require_dist_cjs", "__commonJSMin", "exports", "SHORT_TO_HEX", "HEX_TO_SHORT", "i", "encodedByte", "fromHex", "encoded", "out", "toHex", "bytes", "require_dist_cjs", "__commonJSMin", "exports", "isArrayBuffer", "arg", "require_dist_cjs", "__commonJSMin", "exports", "is_array_buffer_1", "buffer_1", "fromArrayBuffer", "input", "offset", "length", "fromString", "encoding", "require_fromUtf8", "__commonJSMin", "exports", "util_buffer_from_1", "fromUtf8", "input", "buf", "require_toUint8Array", "__commonJSMin", "exports", "fromUtf8_1", "toUint8Array", "data", "require_toUtf8", "__commonJSMin", "exports", "util_buffer_from_1", "toUtf8", "input", "require_dist_cjs", "__commonJSMin", "exports", "tslib_1", "require_constants", "__commonJSMin", "exports", "require_credentialDerivation", "__commonJSMin", "exports", "util_hex_encoding_1", "util_utf8_1", "constants_1", "signingKeyCache", "cacheQueue", "createScope", "shortDate", "region", "service", "getSigningKey", "sha256Constructor", "credentials", "credsHash", "hmac", "cacheKey", "key", "signable", "clearCredentialCache", "ctor", "secret", "data", "hash", "require_getCanonicalHeaders", "__commonJSMin", "exports", "constants_1", "getCanonicalHeaders", "headers", "unsignableHeaders", "signableHeaders", "canonical", "headerName", "canonicalHeaderName", "require_escape_uri", "__commonJSMin", "exports", "escapeUri", "uri", "hexEncode", "c", "require_escape_uri_path", "__commonJSMin", "exports", "escape_uri_1", "escapeUriPath", "uri", "require_dist_cjs", "__commonJSMin", "exports", "tslib_1", "require_getCanonicalQuery", "__commonJSMin", "exports", "util_uri_escape_1", "constants_1", "getCanonicalQuery", "query", "keys", "serialized", "key", "value", "encoded", "require_getPayloadHash", "__commonJSMin", "exports", "is_array_buffer_1", "util_hex_encoding_1", "util_utf8_1", "constants_1", "getPayloadHash", "headers", "body", "hashConstructor", "headerName", "hashCtor", "require_headerUtil", "__commonJSMin", "exports", "hasHeader", "soughtHeader", "headers", "headerName", "getHeaderValue", "deleteHeader", "require_cloneRequest", "__commonJSMin", "exports", "cloneRequest", "headers", "query", "rest", "cloneQuery", "carry", "paramName", "param", "require_moveHeadersToQuery", "__commonJSMin", "exports", "cloneRequest_1", "moveHeadersToQuery", "request", "options", "_a", "headers", "query", "name", "lname", "require_prepareRequest", "__commonJSMin", "exports", "cloneRequest_1", "constants_1", "prepareRequest", "request", "headerName", "require_utilDate", "__commonJSMin", "exports", "iso8601", "time", "toDate", "require_SignatureV4", "__commonJSMin", "exports", "util_hex_encoding_1", "util_middleware_1", "util_utf8_1", "constants_1", "credentialDerivation_1", "getCanonicalHeaders_1", "getCanonicalQuery_1", "getPayloadHash_1", "headerUtil_1", "moveHeadersToQuery_1", "prepareRequest_1", "utilDate_1", "SignatureV4", "applyChecksum", "credentials", "region", "service", "sha256", "uriEscapePath", "originalRequest", "options", "signingDate", "expiresIn", "unsignableHeaders", "unhoistableHeaders", "signableHeaders", "signingRegion", "signingService", "longDate", "shortDate", "formatDate", "scope", "request", "canonicalHeaders", "getCanonicalHeaderList", "toSign", "headers", "payload", "priorSignature", "hashedPayload", "hash", "hashedHeaders", "stringToSign", "requestToSign", "payloadHash", "signature", "sortedHeaders", "name", "credentialScope", "canonicalRequest", "hashedRequest", "path", "normalizedPathSegments", "pathSegment", "normalizedPath", "keyPromise", "now", "require_dist_cjs", "__commonJSMin", "exports", "tslib_1", "getCanonicalHeaders_1", "getCanonicalQuery_1", "getPayloadHash_1", "moveHeadersToQuery_1", "prepareRequest_1", "require_configurations", "__commonJSMin", "exports", "property_provider_1", "signature_v4_1", "util_middleware_1", "CREDENTIAL_EXPIRE_WINDOW", "resolveAwsAuthConfig", "input", "normalizedCreds", "normalizeCredentialProvider", "signingEscapePath", "systemClockOffset", "sha256", "signer", "region", "regionInfo", "signingRegion", "signingService", "params", "SignerCtor", "authScheme", "resolveSigV4AuthConfig", "credentials", "require_getSkewCorrectedDate", "__commonJSMin", "exports", "getSkewCorrectedDate", "systemClockOffset", "require_isClockSkewed", "__commonJSMin", "exports", "getSkewCorrectedDate_1", "isClockSkewed", "clockTime", "systemClockOffset", "require_getUpdatedSystemClockOffset", "__commonJSMin", "exports", "isClockSkewed_1", "getUpdatedSystemClockOffset", "clockTime", "currentSystemClockOffset", "clockTimeInMs", "require_middleware", "__commonJSMin", "exports", "protocol_http_1", "getSkewCorrectedDate_1", "getUpdatedSystemClockOffset_1", "awsAuthMiddleware", "options", "next", "context", "args", "_a", "_b", "_c", "_d", "authScheme", "multiRegionOverride", "signer", "output", "error", "serverTime", "getDateHeader", "dateHeader", "response", "getAwsAuthPlugin", "clientStack", "require_dist_cjs", "__commonJSMin", "exports", "tslib_1", "require_configurations", "__commonJSMin", "exports", "resolveUserAgentConfig", "input", "require_constants", "__commonJSMin", "exports", "require_user_agent_middleware", "__commonJSMin", "exports", "protocol_http_1", "constants_1", "userAgentMiddleware", "options", "next", "context", "args", "_a", "_b", "request", "headers", "userAgent", "escapeUserAgent", "defaultUserAgent", "customUserAgent", "sdkUserAgentValue", "normalUAValue", "section", "name", "version", "prefixSeparatorIndex", "prefix", "uaName", "item", "getUserAgentPlugin", "config", "clientStack", "require_dist_cjs", "__commonJSMin", "exports", "tslib_1", "require_NoOpLogger", "__commonJSMin", "exports", "NoOpLogger", "require_MiddlewareStack", "__commonJSMin", "exports", "constructStack", "absoluteEntries", "relativeEntries", "entriesNameSet", "sort", "entries", "a", "b", "stepWeights", "priorityWeights", "removeByName", "toRemove", "isRemoved", "filterCb", "entry", "removeByReference", "cloneTo", "toStack", "expandRelativeMiddlewareList", "from", "expandedMiddlewareList", "getMiddlewareList", "debug", "normalizedAbsoluteEntries", "normalizedRelativeEntries", "normalizedEntriesNameMap", "normalizedEntry", "toMiddleware", "wholeList", "expendedMiddlewareList", "stack", "middleware", "options", "name", "override", "toOverrideIndex", "toOverride", "plugin", "tags", "cloned", "mw", "handler", "context", "require_dist_cjs", "__commonJSMin", "exports", "tslib_1", "require_client", "__commonJSMin", "exports", "middleware_stack_1", "Client", "config", "command", "optionsOrCb", "cb", "options", "callback", "handler", "result", "err", "require_command", "__commonJSMin", "exports", "middleware_stack_1", "Command", "require_constants", "__commonJSMin", "exports", "require_parse_utils", "__commonJSMin", "exports", "parseBoolean", "value", "expectBoolean", "stackTraceWarning", "lower", "expectNumber", "parsed", "MAX_FLOAT", "expectFloat32", "expected", "expectLong", "expectInt32", "expectSizedInt", "expectShort", "expectByte", "size", "castInt", "expectNonNull", "location", "expectObject", "receivedType", "expectString", "expectUnion", "asObject", "setKeys", "v", "k", "strictParseDouble", "parseNumber", "strictParseFloat32", "NUMBER_REGEX", "matches", "limitedParseDouble", "parseFloatString", "limitedParseFloat32", "strictParseLong", "strictParseInt32", "strictParseShort", "strictParseByte", "message", "s", "require_date_utils", "__commonJSMin", "exports", "parse_utils_1", "DAYS", "MONTHS", "dateToUtcString", "date", "year", "month", "dayOfWeek", "dayOfMonthInt", "hoursInt", "minutesInt", "secondsInt", "dayOfMonthString", "hoursString", "minutesString", "secondsString", "RFC3339", "parseRfc3339DateTime", "value", "match", "_", "yearStr", "monthStr", "dayStr", "hours", "minutes", "seconds", "fractionalMilliseconds", "stripLeadingZeroes", "parseDateValue", "day", "buildDate", "RFC3339_WITH_OFFSET", "parseRfc3339DateTimeWithOffset", "offsetStr", "parseOffsetToMilliseconds", "IMF_FIXDATE", "RFC_850_DATE", "ASC_TIME", "parseRfc7231DateTime", "parseMonthByShortName", "adjustRfc850Year", "parseTwoDigitYear", "parseEpochTimestamp", "valueAsDouble", "time", "adjustedMonth", "validateDayOfMonth", "parseMilliseconds", "thisYear", "valueInThisCentury", "FIFTY_YEARS_IN_MILLIS", "input", "monthIdx", "DAYS_IN_MONTH", "maxDays", "isLeapYear", "type", "lower", "upper", "dateVal", "directionStr", "direction", "hour", "minute", "idx", "require_exceptions", "__commonJSMin", "exports", "ServiceException", "options", "decorateServiceException", "exception", "additions", "v", "k", "message", "require_default_error_handler", "__commonJSMin", "exports", "exceptions_1", "throwDefaultError", "output", "parsedBody", "exceptionCtor", "errorCode", "$metadata", "deserializeMetadata", "statusCode", "response", "_a", "_b", "require_defaults_mode", "__commonJSMin", "exports", "loadConfigsForDefaultMode", "mode", "require_emitWarningIfUnsupportedVersion", "__commonJSMin", "exports", "warningEmitted", "emitWarningIfUnsupportedVersion", "version", "require_extended_encode_uri_component", "__commonJSMin", "exports", "extendedEncodeURIComponent", "str", "c", "require_get_array_if_single_item", "__commonJSMin", "exports", "getArrayIfSingleItem", "mayBeArray", "require_get_value_from_text_node", "__commonJSMin", "exports", "getValueFromTextNode", "obj", "textNodeName", "key", "require_lazy_json", "__commonJSMin", "exports", "StringWrapper", "Class", "Constructor", "instance", "LazyJsonString", "object", "require_object_mapping", "__commonJSMin", "exports", "map", "arg0", "arg1", "arg2", "target", "filter", "instructions", "mapWithFilter", "key", "value", "_value", "defaultFilterPassed", "customFilterPassed", "convertMap", "output", "k", "v", "_instructions", "require_resolve_path", "__commonJSMin", "exports", "extended_encode_uri_component_1", "resolvedPath", "input", "memberName", "labelValueProvider", "uriLabel", "isGreedyLabel", "labelValue", "segment", "require_ser_utils", "__commonJSMin", "exports", "serializeFloat", "value", "require_split_every", "__commonJSMin", "exports", "splitEvery", "value", "delimiter", "numDelimiters", "segments", "compoundSegments", "currentSegment", "i", "require_dist_cjs", "__commonJSMin", "exports", "tslib_1", "require_EndpointParameters", "__commonJSMin", "exports", "resolveClientEndpointParameters", "options", "require_STSServiceException", "__commonJSMin", "exports", "smithy_client_1", "STSServiceException", "options", "require_models_0", "__commonJSMin", "exports", "STSServiceException_1", "ExpiredTokenException", "opts", "MalformedPolicyDocumentException", "PackedPolicyTooLargeException", "RegionDisabledException", "IDPRejectedClaimException", "InvalidIdentityTokenException", "IDPCommunicationErrorException", "InvalidAuthorizationMessageException", "AssumedRoleUserFilterSensitiveLog", "obj", "PolicyDescriptorTypeFilterSensitiveLog", "TagFilterSensitiveLog", "AssumeRoleRequestFilterSensitiveLog", "CredentialsFilterSensitiveLog", "AssumeRoleResponseFilterSensitiveLog", "AssumeRoleWithSAMLRequestFilterSensitiveLog", "AssumeRoleWithSAMLResponseFilterSensitiveLog", "AssumeRoleWithWebIdentityRequestFilterSensitiveLog", "AssumeRoleWithWebIdentityResponseFilterSensitiveLog", "DecodeAuthorizationMessageRequestFilterSensitiveLog", "DecodeAuthorizationMessageResponseFilterSensitiveLog", "GetAccessKeyInfoRequestFilterSensitiveLog", "GetAccessKeyInfoResponseFilterSensitiveLog", "GetCallerIdentityRequestFilterSensitiveLog", "GetCallerIdentityResponseFilterSensitiveLog", "GetFederationTokenRequestFilterSensitiveLog", "FederatedUserFilterSensitiveLog", "GetFederationTokenResponseFilterSensitiveLog", "GetSessionTokenRequestFilterSensitiveLog", "GetSessionTokenResponseFilterSensitiveLog", "require_util", "__commonJSMin", "exports", "nameStartChar", "nameChar", "nameRegexp", "regexName", "getAllMatches", "string", "regex", "matches", "match", "allmatches", "len", "index", "isName", "v", "obj", "target", "a", "arrayMode", "keys", "require_validator", "__commonJSMin", "exports", "util", "defaultOptions", "xmlData", "options", "tags", "tagFound", "reachedRoot", "readPI", "tagStartPos", "readCommentAndCDATA", "closingTag", "tagName", "validateTagName", "msg", "getErrorObject", "getLineNumberForPosition", "result", "readAttributeStr", "attrStr", "attrStrStart", "isValid", "validateAttributeString", "otg", "openPos", "afterAmp", "validateAmpersand", "isWhiteSpace", "t", "char", "i", "start", "tagname", "angleBracketsCount", "doubleQuote", "singleQuote", "startChar", "tagClosed", "validAttrStrRegxp", "matches", "attrNames", "getPositionFromMatch", "attrName", "validateAttrName", "validateNumberAmpersand", "re", "count", "code", "message", "lineNumber", "index", "lines", "match", "require_OptionsBuilder", "__commonJSMin", "exports", "defaultOptions", "tagName", "val", "attrName", "buildOptions", "options", "require_xmlNode", "__commonJSMin", "exports", "module", "XmlNode", "tagname", "key", "val", "node", "require_DocTypeReader", "__commonJSMin", "exports", "module", "readDocType", "xmlData", "i", "entities", "angleBracketsCount", "hasBody", "entity", "comment", "exp", "parseEntityExp", "entityRegex", "match", "require_strnum", "__commonJSMin", "exports", "module", "hexRegex", "numRegex", "consider", "toNumber", "str", "options", "trimmedStr", "match", "sign", "leadingZeros", "numTrimmedByZeros", "trimZeros", "eNotation", "num", "numStr", "require_OrderedObjParser", "__commonJSMin", "exports", "module", "util", "xmlNode", "readDocType", "toNumber", "regx", "OrderedObjParser", "options", "addExternalEntities", "parseXml", "parseTextData", "resolveNameSpace", "buildAttributesMap", "isItStopNode", "replaceEntitiesValue", "readStopNodeData", "saveTextToParentTag", "externalEntities", "entKeys", "i", "ent", "val", "tagName", "jPath", "dontTrim", "hasAttributes", "isLeafNode", "escapeEntities", "newval", "parseValue", "tagname", "tags", "prefix", "attrsRegx", "attrStr", "matches", "len", "attrs", "attrName", "oldVal", "aName", "newVal", "attrCollection", "xmlData", "xmlObj", "currentNode", "textData", "closeIndex", "findClosingIndex", "colonIndex", "tagData", "readTagExp", "childNode", "endIndex", "comment", "result", "tagExp", "attrExpPresent", "lastTag", "tagContent", "entityName", "entity", "stopNodes", "currentTagName", "allNodesExp", "stopNodePath", "stopNodeExp", "tagExpWithClosingIndex", "closingChar", "attrBoundary", "index", "ch", "str", "errMsg", "closingIndex", "removeNSPrefix", "separatorIndex", "startIndex", "openTagCount", "shouldParse", "require_node2json", "__commonJSMin", "exports", "prettify", "node", "options", "compress", "arr", "jPath", "text", "compressedObj", "tagObj", "property", "propName", "newJpath", "val", "isLeaf", "isLeafTag", "assignAttributes", "obj", "keys", "i", "key", "attrMap", "jpath", "len", "atrrName", "propCount", "require_XMLParser", "__commonJSMin", "exports", "module", "buildOptions", "OrderedObjParser", "prettify", "validator", "XMLParser", "options", "xmlData", "validationOption", "result", "orderedObjParser", "orderedResult", "key", "value", "require_orderedJs2Xml", "__commonJSMin", "exports", "module", "EOL", "toXml", "jArray", "options", "indentation", "arrToStr", "arr", "jPath", "xmlStr", "isPreviousElementTag", "i", "tagObj", "tagName", "propName", "newJPath", "tagText", "isStopNode", "replaceEntitiesValue", "attStr", "attr_to_str", "tempInd", "piTextNodeName", "newIdentation", "tagStart", "tagValue", "obj", "keys", "key", "attrMap", "attrStr", "attr", "attrVal", "index", "textValue", "entity", "require_json2xml", "__commonJSMin", "exports", "module", "buildFromOrderedJs", "defaultOptions", "key", "a", "attrName", "Builder", "options", "isAttribute", "processTextOrObjNode", "indentate", "jObj", "level", "attrStr", "val", "attr", "newval", "arrLen", "j", "item", "Ks", "L", "object", "result", "tagEndExp", "piClosingChar", "closeTag", "textValue", "i", "entity", "name", "require_fxp", "__commonJSMin", "exports", "module", "validator", "XMLParser", "XMLBuilder", "require_Aws_query", "__commonJSMin", "exports", "protocol_http_1", "smithy_client_1", "fast_xml_parser_1", "models_0_1", "STSServiceException_1", "serializeAws_queryAssumeRoleCommand", "input", "context", "headers", "body", "buildFormUrlencodedString", "serializeAws_queryAssumeRoleRequest", "buildHttpRpcRequest", "serializeAws_queryAssumeRoleWithSAMLCommand", "serializeAws_queryAssumeRoleWithSAMLRequest", "serializeAws_queryAssumeRoleWithWebIdentityCommand", "serializeAws_queryAssumeRoleWithWebIdentityRequest", "serializeAws_queryDecodeAuthorizationMessageCommand", "serializeAws_queryDecodeAuthorizationMessageRequest", "serializeAws_queryGetAccessKeyInfoCommand", "serializeAws_queryGetAccessKeyInfoRequest", "serializeAws_queryGetCallerIdentityCommand", "serializeAws_queryGetCallerIdentityRequest", "serializeAws_queryGetFederationTokenCommand", "serializeAws_queryGetFederationTokenRequest", "serializeAws_queryGetSessionTokenCommand", "serializeAws_queryGetSessionTokenRequest", "deserializeAws_queryAssumeRoleCommand", "output", "deserializeAws_queryAssumeRoleCommandError", "data", "parseBody", "contents", "deserializeAws_queryAssumeRoleResponse", "response", "deserializeMetadata", "parsedOutput", "parseErrorBody", "errorCode", "loadQueryErrorCode", "deserializeAws_queryExpiredTokenExceptionResponse", "deserializeAws_queryMalformedPolicyDocumentExceptionResponse", "deserializeAws_queryPackedPolicyTooLargeExceptionResponse", "deserializeAws_queryRegionDisabledExceptionResponse", "parsedBody", "deserializeAws_queryAssumeRoleWithSAMLCommand", "deserializeAws_queryAssumeRoleWithSAMLCommandError", "deserializeAws_queryAssumeRoleWithSAMLResponse", "deserializeAws_queryIDPRejectedClaimExceptionResponse", "deserializeAws_queryInvalidIdentityTokenExceptionResponse", "deserializeAws_queryAssumeRoleWithWebIdentityCommand", "deserializeAws_queryAssumeRoleWithWebIdentityCommandError", "deserializeAws_queryAssumeRoleWithWebIdentityResponse", "deserializeAws_queryIDPCommunicationErrorExceptionResponse", "deserializeAws_queryDecodeAuthorizationMessageCommand", "deserializeAws_queryDecodeAuthorizationMessageCommandError", "deserializeAws_queryDecodeAuthorizationMessageResponse", "deserializeAws_queryInvalidAuthorizationMessageExceptionResponse", "deserializeAws_queryGetAccessKeyInfoCommand", "deserializeAws_queryGetAccessKeyInfoCommandError", "deserializeAws_queryGetAccessKeyInfoResponse", "deserializeAws_queryGetCallerIdentityCommand", "deserializeAws_queryGetCallerIdentityCommandError", "deserializeAws_queryGetCallerIdentityResponse", "deserializeAws_queryGetFederationTokenCommand", "deserializeAws_queryGetFederationTokenCommandError", "deserializeAws_queryGetFederationTokenResponse", "deserializeAws_queryGetSessionTokenCommand", "deserializeAws_queryGetSessionTokenCommandError", "deserializeAws_queryGetSessionTokenResponse", "deserialized", "deserializeAws_queryExpiredTokenException", "exception", "deserializeAws_queryIDPCommunicationErrorException", "deserializeAws_queryIDPRejectedClaimException", "deserializeAws_queryInvalidAuthorizationMessageException", "deserializeAws_queryInvalidIdentityTokenException", "deserializeAws_queryMalformedPolicyDocumentException", "deserializeAws_queryPackedPolicyTooLargeException", "deserializeAws_queryRegionDisabledException", "entries", "memberEntries", "serializeAws_querypolicyDescriptorListType", "key", "value", "loc", "serializeAws_querytagListType", "serializeAws_querytagKeyListType", "counter", "entry", "serializeAws_queryPolicyDescriptorType", "serializeAws_queryTag", "deserializeAws_queryAssumedRoleUser", "deserializeAws_queryCredentials", "deserializeAws_queryFederatedUser", "collectBody", "streamBody", "collectBodyString", "path", "resolvedHostname", "hostname", "protocol", "port", "basePath", "encoded", "parser", "_", "val", "parsedObj", "textNodeName", "parsedObjToReturn", "errorBody", "formEntries", "require_AssumeRoleCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_serde_1", "middleware_signing_1", "smithy_client_1", "models_0_1", "Aws_query_1", "AssumeRoleCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "requestHandler", "request", "context", "output", "require_AssumeRoleWithSAMLCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_serde_1", "smithy_client_1", "models_0_1", "Aws_query_1", "AssumeRoleWithSAMLCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "requestHandler", "request", "context", "output", "require_AssumeRoleWithWebIdentityCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_serde_1", "smithy_client_1", "models_0_1", "Aws_query_1", "AssumeRoleWithWebIdentityCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "requestHandler", "request", "context", "output", "require_DecodeAuthorizationMessageCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_serde_1", "middleware_signing_1", "smithy_client_1", "models_0_1", "Aws_query_1", "DecodeAuthorizationMessageCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "requestHandler", "request", "context", "output", "require_GetAccessKeyInfoCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_serde_1", "middleware_signing_1", "smithy_client_1", "models_0_1", "Aws_query_1", "GetAccessKeyInfoCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "requestHandler", "request", "context", "output", "require_GetCallerIdentityCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_serde_1", "middleware_signing_1", "smithy_client_1", "models_0_1", "Aws_query_1", "GetCallerIdentityCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "requestHandler", "request", "context", "output", "require_GetFederationTokenCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_serde_1", "middleware_signing_1", "smithy_client_1", "models_0_1", "Aws_query_1", "GetFederationTokenCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "requestHandler", "request", "context", "output", "require_GetSessionTokenCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_serde_1", "middleware_signing_1", "smithy_client_1", "models_0_1", "Aws_query_1", "GetSessionTokenCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "requestHandler", "request", "context", "output", "require_dist_cjs", "__commonJSMin", "exports", "middleware_signing_1", "resolveStsAuthConfig", "input", "stsClientCtor", "require_EndpointParameters", "__commonJSMin", "exports", "resolveClientEndpointParameters", "options", "require_defaultStsRoleAssumers", "__commonJSMin", "exports", "AssumeRoleCommand_1", "AssumeRoleWithWebIdentityCommand_1", "ASSUME_ROLE_DEFAULT_REGION", "decorateDefaultRegion", "region", "getDefaultRoleAssumer", "stsOptions", "stsClientCtor", "stsClient", "closureSourceCreds", "sourceCreds", "params", "logger", "requestHandler", "Credentials", "getDefaultRoleAssumerWithWebIdentity", "decorateDefaultCredentialProvider", "provider", "input", "require_fromEnv", "__commonJSMin", "exports", "property_provider_1", "fromEnv", "accessKeyId", "secretAccessKey", "sessionToken", "expiry", "require_dist_cjs", "__commonJSMin", "exports", "tslib_1", "require_getHomeDir", "__commonJSMin", "exports", "os_1", "path_1", "getHomeDir", "HOME", "USERPROFILE", "HOMEPATH", "HOMEDRIVE", "require_getProfileName", "__commonJSMin", "exports", "getProfileName", "init", "require_getSSOTokenFilepath", "__commonJSMin", "exports", "crypto_1", "path_1", "getHomeDir_1", "getSSOTokenFilepath", "id", "cacheName", "require_getSSOTokenFromFile", "__commonJSMin", "exports", "fs_1", "getSSOTokenFilepath_1", "readFile", "getSSOTokenFromFile", "id", "ssoTokenFilepath", "ssoTokenText", "require_getConfigFilepath", "__commonJSMin", "exports", "path_1", "getHomeDir_1", "getConfigFilepath", "require_getCredentialsFilepath", "__commonJSMin", "exports", "path_1", "getHomeDir_1", "getCredentialsFilepath", "require_getProfileData", "__commonJSMin", "exports", "profileKeyRegex", "getProfileData", "data", "key", "acc", "value", "require_parseIni", "__commonJSMin", "exports", "profileNameBlockList", "parseIni", "iniData", "map", "currentSection", "line", "indexOfEqualsSign", "start", "end", "name", "value", "require_slurpFile", "__commonJSMin", "exports", "fs_1", "readFile", "filePromisesHash", "slurpFile", "path", "require_loadSharedConfigFiles", "__commonJSMin", "exports", "getConfigFilepath_1", "getCredentialsFilepath_1", "getProfileData_1", "parseIni_1", "slurpFile_1", "swallowError", "loadSharedConfigFiles", "init", "filepath", "configFilepath", "parsedFiles", "require_getSsoSessionData", "__commonJSMin", "exports", "ssoSessionKeyRegex", "getSsoSessionData", "data", "key", "acc", "value", "require_loadSsoSessionData", "__commonJSMin", "exports", "getConfigFilepath_1", "getSsoSessionData_1", "parseIni_1", "slurpFile_1", "swallowError", "loadSsoSessionData", "init", "_a", "require_parseKnownFiles", "__commonJSMin", "exports", "loadSharedConfigFiles_1", "parseKnownFiles", "init", "parsedFiles", "require_types", "__commonJSMin", "exports", "require_dist_cjs", "__commonJSMin", "exports", "tslib_1", "require_httpRequest", "__commonJSMin", "exports", "property_provider_1", "buffer_1", "http_1", "httpRequest", "options", "resolve", "reject", "_a", "req", "err", "res", "statusCode", "chunks", "chunk", "require_ImdsCredentials", "__commonJSMin", "exports", "isImdsCredentials", "arg", "fromImdsCredentials", "creds", "require_RemoteProviderInit", "__commonJSMin", "exports", "providerConfigFromInit", "maxRetries", "timeout", "require_retry", "__commonJSMin", "exports", "retry", "toRetry", "maxRetries", "promise", "i", "require_fromContainerMetadata", "__commonJSMin", "exports", "property_provider_1", "url_1", "httpRequest_1", "ImdsCredentials_1", "RemoteProviderInit_1", "retry_1", "fromContainerMetadata", "init", "timeout", "maxRetries", "requestOptions", "getCmdsUri", "credsResponse", "requestFromEcsImds", "options", "CMDS_IP", "GREENGRASS_HOSTS", "GREENGRASS_PROTOCOLS", "parsed", "require_fromEnv", "__commonJSMin", "exports", "property_provider_1", "fromEnv", "envVarSelector", "config", "e", "require_fromSharedConfigFiles", "__commonJSMin", "exports", "property_provider_1", "shared_ini_file_loader_1", "fromSharedConfigFiles", "configSelector", "preferredFile", "init", "profile", "configFile", "credentialsFile", "profileFromCredentials", "profileFromConfig", "mergedProfile", "configValue", "e", "require_fromStatic", "__commonJSMin", "exports", "property_provider_1", "isFunction", "func", "fromStatic", "defaultValue", "require_configLoader", "__commonJSMin", "exports", "property_provider_1", "fromEnv_1", "fromSharedConfigFiles_1", "fromStatic_1", "loadConfig", "environmentVariableSelector", "configFileSelector", "defaultValue", "configuration", "require_dist_cjs", "__commonJSMin", "exports", "tslib_1", "require_Endpoint", "__commonJSMin", "exports", "Endpoint", "require_EndpointConfigOptions", "__commonJSMin", "exports", "env", "profile", "require_EndpointMode", "__commonJSMin", "exports", "EndpointMode", "require_EndpointModeConfigOptions", "__commonJSMin", "exports", "EndpointMode_1", "env", "profile", "require_getInstanceMetadataEndpoint", "__commonJSMin", "exports", "node_config_provider_1", "url_parser_1", "Endpoint_1", "EndpointConfigOptions_1", "EndpointMode_1", "EndpointModeConfigOptions_1", "getInstanceMetadataEndpoint", "getFromEndpointConfig", "getFromEndpointModeConfig", "endpointMode", "require_getExtendedInstanceMetadataCredentials", "__commonJSMin", "exports", "STATIC_STABILITY_REFRESH_INTERVAL_SECONDS", "STATIC_STABILITY_REFRESH_INTERVAL_JITTER_WINDOW_SECONDS", "STATIC_STABILITY_DOC_URL", "getExtendedInstanceMetadataCredentials", "credentials", "logger", "_a", "refreshInterval", "newExpiration", "originalExpiration", "require_staticStabilityProvider", "__commonJSMin", "exports", "getExtendedInstanceMetadataCredentials_1", "staticStabilityProvider", "provider", "options", "logger", "pastCredentials", "credentials", "e", "require_fromInstanceMetadata", "__commonJSMin", "exports", "property_provider_1", "httpRequest_1", "ImdsCredentials_1", "RemoteProviderInit_1", "retry_1", "getInstanceMetadataEndpoint_1", "staticStabilityProvider_1", "IMDS_PATH", "IMDS_TOKEN_PATH", "fromInstanceMetadata", "init", "getInstanceImdsProvider", "disableFetchToken", "timeout", "maxRetries", "getCredentials", "options", "profile", "getProfile", "err", "creds", "getCredentialsFromProfile", "endpoint", "token", "getMetadataToken", "error", "credsResponse", "require_types", "__commonJSMin", "exports", "require_dist_cjs", "__commonJSMin", "exports", "tslib_1", "httpRequest_1", "getInstanceMetadataEndpoint_1", "require_resolveCredentialSource", "__commonJSMin", "exports", "credential_provider_env_1", "credential_provider_imds_1", "property_provider_1", "resolveCredentialSource", "credentialSource", "profileName", "sourceProvidersMap", "require_resolveAssumeRoleCredentials", "__commonJSMin", "exports", "property_provider_1", "shared_ini_file_loader_1", "resolveCredentialSource_1", "resolveProfileData_1", "isAssumeRoleProfile", "arg", "isAssumeRoleWithSourceProfile", "isAssumeRoleWithProviderProfile", "resolveAssumeRoleCredentials", "profileName", "profiles", "options", "visitedProfiles", "data", "source_profile", "sourceCredsProvider", "params", "mfa_serial", "sourceCreds", "require_getValidatedProcessCredentials", "__commonJSMin", "exports", "getValidatedProcessCredentials", "profileName", "data", "currentTime", "require_resolveProcessCredentials", "__commonJSMin", "exports", "property_provider_1", "child_process_1", "util_1", "getValidatedProcessCredentials_1", "resolveProcessCredentials", "profileName", "profiles", "profile", "credentialProcess", "execPromise", "stdout", "data", "error", "require_fromProcess", "__commonJSMin", "exports", "shared_ini_file_loader_1", "resolveProcessCredentials_1", "fromProcess", "init", "profiles", "require_dist_cjs", "__commonJSMin", "exports", "tslib_1", "require_resolveProcessCredentials", "__commonJSMin", "exports", "credential_provider_process_1", "isProcessProfile", "arg", "resolveProcessCredentials", "options", "profile", "require_isSsoProfile", "__commonJSMin", "exports", "isSsoProfile", "arg", "require_SSOServiceException", "__commonJSMin", "exports", "smithy_client_1", "SSOServiceException", "options", "require_models_0", "__commonJSMin", "exports", "smithy_client_1", "SSOServiceException_1", "InvalidRequestException", "opts", "ResourceNotFoundException", "TooManyRequestsException", "UnauthorizedException", "AccountInfoFilterSensitiveLog", "obj", "GetRoleCredentialsRequestFilterSensitiveLog", "RoleCredentialsFilterSensitiveLog", "GetRoleCredentialsResponseFilterSensitiveLog", "ListAccountRolesRequestFilterSensitiveLog", "RoleInfoFilterSensitiveLog", "ListAccountRolesResponseFilterSensitiveLog", "ListAccountsRequestFilterSensitiveLog", "ListAccountsResponseFilterSensitiveLog", "LogoutRequestFilterSensitiveLog", "require_Aws_restJson1", "__commonJSMin", "exports", "protocol_http_1", "smithy_client_1", "models_0_1", "SSOServiceException_1", "serializeAws_restJson1GetRoleCredentialsCommand", "input", "context", "hostname", "protocol", "port", "basePath", "headers", "map", "isSerializableHeaderValue", "resolvedPath", "query", "body", "serializeAws_restJson1ListAccountRolesCommand", "serializeAws_restJson1ListAccountsCommand", "serializeAws_restJson1LogoutCommand", "deserializeAws_restJson1GetRoleCredentialsCommand", "output", "deserializeAws_restJson1GetRoleCredentialsCommandError", "contents", "deserializeMetadata", "data", "parseBody", "deserializeAws_restJson1RoleCredentials", "parsedOutput", "parseErrorBody", "errorCode", "loadRestJsonErrorCode", "deserializeAws_restJson1InvalidRequestExceptionResponse", "deserializeAws_restJson1ResourceNotFoundExceptionResponse", "deserializeAws_restJson1TooManyRequestsExceptionResponse", "deserializeAws_restJson1UnauthorizedExceptionResponse", "parsedBody", "deserializeAws_restJson1ListAccountRolesCommand", "deserializeAws_restJson1ListAccountRolesCommandError", "deserializeAws_restJson1RoleListType", "deserializeAws_restJson1ListAccountsCommand", "deserializeAws_restJson1ListAccountsCommandError", "deserializeAws_restJson1AccountListType", "deserializeAws_restJson1LogoutCommand", "deserializeAws_restJson1LogoutCommandError", "collectBody", "exception", "deserializeAws_restJson1AccountInfo", "e", "entry", "deserializeAws_restJson1RoleInfo", "streamBody", "collectBodyString", "value", "encoded", "errorBody", "findKey", "object", "key", "k", "sanitizeErrorCode", "rawValue", "cleanValue", "headerKey", "require_GetRoleCredentialsCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_serde_1", "smithy_client_1", "models_0_1", "Aws_restJson1_1", "GetRoleCredentialsCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "requestHandler", "request", "context", "output", "require_ListAccountRolesCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_serde_1", "smithy_client_1", "models_0_1", "Aws_restJson1_1", "ListAccountRolesCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "requestHandler", "request", "context", "output", "require_ListAccountsCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_serde_1", "smithy_client_1", "models_0_1", "Aws_restJson1_1", "ListAccountsCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "requestHandler", "request", "context", "output", "require_LogoutCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_serde_1", "smithy_client_1", "models_0_1", "Aws_restJson1_1", "LogoutCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "output", "requestHandler", "request", "context", "require_EndpointParameters", "__commonJSMin", "exports", "resolveClientEndpointParameters", "options", "require_dist_cjs", "__commonJSMin", "exports", "util_buffer_from_1", "util_utf8_1", "buffer_1", "crypto_1", "Hash", "algorithmIdentifier", "secret", "toHash", "encoding", "castSourceData", "toCast", "require_dist_cjs", "__commonJSMin", "exports", "util_uri_escape_1", "buildQueryString", "query", "parts", "key", "value", "i", "iLen", "qsEntry", "require_constants", "__commonJSMin", "exports", "require_get_transformed_headers", "__commonJSMin", "exports", "getTransformedHeaders", "headers", "transformedHeaders", "name", "headerValues", "require_set_connection_timeout", "__commonJSMin", "exports", "setConnectionTimeout", "request", "reject", "timeoutInMs", "socket", "timeoutId", "require_set_socket_timeout", "__commonJSMin", "exports", "setSocketTimeout", "request", "reject", "timeoutInMs", "require_write_request_body", "__commonJSMin", "exports", "stream_1", "writeRequestBody", "httpRequest", "request", "writeBody", "body", "require_node_http_handler", "__commonJSMin", "exports", "protocol_http_1", "querystring_builder_1", "http_1", "https_1", "constants_1", "get_transformed_headers_1", "set_connection_timeout_1", "set_socket_timeout_1", "write_request_body_1", "NodeHttpHandler", "options", "resolve", "reject", "_options", "connectionTimeout", "socketTimeout", "httpAgent", "httpsAgent", "keepAlive", "maxSockets", "_a", "_b", "_c", "_d", "request", "abortSignal", "abortError", "isSSL", "queryString", "nodeHttpsOptions", "req", "res", "httpResponse", "err", "require_node_http2_handler", "__commonJSMin", "exports", "protocol_http_1", "querystring_builder_1", "http2_1", "get_transformed_headers_1", "write_request_body_1", "NodeHttp2Handler", "options", "resolve", "reject", "opts", "sessions", "session", "request", "abortSignal", "requestTimeout", "disableConcurrentStreams", "rejectOriginal", "fulfilled", "abortError", "hostname", "method", "port", "protocol", "path", "query", "authority", "err", "queryString", "req", "headers", "httpResponse", "timeoutError", "type", "code", "id", "_a", "sessionCache", "existingSessions", "newSession", "destroySessionCb", "s", "require_collector", "__commonJSMin", "exports", "stream_1", "Collector", "chunk", "encoding", "callback", "require_stream_collector", "__commonJSMin", "exports", "collector_1", "streamCollector", "stream", "resolve", "reject", "collector", "err", "bytes", "require_dist_cjs", "__commonJSMin", "exports", "tslib_1", "require_calculateBodyLength", "__commonJSMin", "exports", "fs_1", "calculateBodyLength", "body", "require_dist_cjs", "__commonJSMin", "exports", "tslib_1", "require_is_crt_available", "__commonJSMin", "exports", "module", "isCrtAvailable", "require_dist_cjs", "__commonJSMin", "exports", "node_config_provider_1", "os_1", "process_1", "is_crt_available_1", "defaultUserAgent", "serviceId", "clientVersion", "sections", "crtAvailable", "appIdPromise", "env", "profile", "resolvedUserAgent", "appId", "require_fromBase64", "__commonJSMin", "exports", "util_buffer_from_1", "BASE64_REGEX", "fromBase64", "input", "buffer", "require_toBase64", "__commonJSMin", "exports", "util_buffer_from_1", "toBase64", "input", "require_dist_cjs", "__commonJSMin", "exports", "tslib_1", "require_partition", "__commonJSMin", "exports", "tslib_1", "partitions_json_1", "partitions", "DEFAULT_PARTITION", "partition", "value", "regions", "outputs", "region", "regionData", "regionRegex", "require_debugId", "__commonJSMin", "exports", "require_toDebugString", "__commonJSMin", "exports", "toDebugString", "input", "require_debug", "__commonJSMin", "exports", "tslib_1", "require_EndpointError", "__commonJSMin", "exports", "EndpointError", "message", "require_EndpointRuleObject", "__commonJSMin", "exports", "require_ErrorRuleObject", "__commonJSMin", "exports", "require_RuleSetObject", "__commonJSMin", "exports", "require_TreeRuleObject", "__commonJSMin", "exports", "require_shared", "__commonJSMin", "exports", "require_types", "__commonJSMin", "exports", "tslib_1", "require_isIpAddress", "__commonJSMin", "exports", "IP_V4_REGEX", "isIpAddress", "value", "require_isValidHostLabel", "__commonJSMin", "exports", "VALID_HOST_LABEL_REGEX", "isValidHostLabel", "value", "allowSubDomains", "labels", "label", "require_isVirtualHostableS3Bucket", "__commonJSMin", "exports", "isIpAddress_1", "isValidHostLabel_1", "isVirtualHostableS3Bucket", "value", "allowSubDomains", "label", "require_parseArn", "__commonJSMin", "exports", "parseArn", "value", "segments", "arn", "partition", "service", "region", "accountId", "resourceId", "require_aws", "__commonJSMin", "exports", "tslib_1", "require_booleanEquals", "__commonJSMin", "exports", "booleanEquals", "value1", "value2", "require_getAttrPathList", "__commonJSMin", "exports", "types_1", "getAttrPathList", "path", "parts", "pathList", "part", "squareBracketIndex", "arrayIndex", "require_getAttr", "__commonJSMin", "exports", "types_1", "getAttrPathList_1", "getAttr", "value", "path", "acc", "index", "require_isSet", "__commonJSMin", "exports", "isSet", "value", "require_not", "__commonJSMin", "exports", "not", "value", "require_abort", "__commonJSMin", "exports", "require_auth", "__commonJSMin", "exports", "HttpAuthLocation", "require_checksum", "__commonJSMin", "exports", "require_client", "__commonJSMin", "exports", "require_command", "__commonJSMin", "exports", "require_credentials", "__commonJSMin", "exports", "require_crypto", "__commonJSMin", "exports", "require_dns", "__commonJSMin", "exports", "HostAddressType", "require_endpoint", "__commonJSMin", "exports", "EndpointURLScheme", "require_eventStream", "__commonJSMin", "exports", "require_http", "__commonJSMin", "exports", "require_AnonymousIdentity", "__commonJSMin", "exports", "require_AwsCredentialIdentity", "__commonJSMin", "exports", "require_Identity", "__commonJSMin", "exports", "require_LoginIdentity", "__commonJSMin", "exports", "require_TokenIdentity", "__commonJSMin", "exports", "require_identity", "__commonJSMin", "exports", "tslib_1", "require_logger", "__commonJSMin", "exports", "require_middleware", "__commonJSMin", "exports", "require_pagination", "__commonJSMin", "exports", "require_profile", "__commonJSMin", "exports", "require_request", "__commonJSMin", "exports", "require_response", "__commonJSMin", "exports", "require_retry", "__commonJSMin", "exports", "require_serde", "__commonJSMin", "exports", "require_shapes", "__commonJSMin", "exports", "require_signature", "__commonJSMin", "exports", "require_stream", "__commonJSMin", "exports", "require_token", "__commonJSMin", "exports", "require_transfer", "__commonJSMin", "exports", "require_util", "__commonJSMin", "exports", "require_waiter", "__commonJSMin", "exports", "require_dist_cjs", "__commonJSMin", "exports", "tslib_1", "require_parseURL", "__commonJSMin", "exports", "types_1", "isIpAddress_1", "DEFAULT_PORTS", "parseURL", "value", "whatwgURL", "hostname", "port", "protocol", "path", "query", "url", "k", "v", "urlString", "host", "pathname", "search", "scheme", "isIp", "inputContainsDefaultPort", "authority", "require_stringEquals", "__commonJSMin", "exports", "stringEquals", "value1", "value2", "require_substring", "__commonJSMin", "exports", "substring", "input", "start", "stop", "reverse", "require_uriEncode", "__commonJSMin", "exports", "uriEncode", "value", "c", "require_lib", "__commonJSMin", "exports", "tslib_1", "require_evaluateTemplate", "__commonJSMin", "exports", "lib_1", "evaluateTemplate", "template", "options", "evaluatedTemplateArr", "templateContext", "currentIndex", "openingBraceIndex", "closingBraceIndex", "parameterName", "refName", "attrName", "require_getReferenceValue", "__commonJSMin", "exports", "getReferenceValue", "ref", "options", "require_evaluateExpression", "__commonJSMin", "exports", "types_1", "callFunction_1", "evaluateTemplate_1", "getReferenceValue_1", "evaluateExpression", "obj", "keyName", "options", "require_callFunction", "__commonJSMin", "exports", "tslib_1", "lib", "evaluateExpression_1", "callFunction", "fn", "argv", "options", "evaluatedArgs", "arg", "acc", "key", "require_evaluateCondition", "__commonJSMin", "exports", "debug_1", "types_1", "callFunction_1", "evaluateCondition", "assign", "fnArgs", "options", "_a", "_b", "value", "require_evaluateConditions", "__commonJSMin", "exports", "debug_1", "evaluateCondition_1", "evaluateConditions", "conditions", "options", "_a", "_b", "conditionsReferenceRecord", "condition", "result", "toAssign", "require_getEndpointHeaders", "__commonJSMin", "exports", "types_1", "evaluateExpression_1", "getEndpointHeaders", "headers", "options", "acc", "headerKey", "headerVal", "headerValEntry", "processedExpr", "require_getEndpointProperty", "__commonJSMin", "exports", "types_1", "evaluateTemplate_1", "getEndpointProperties_1", "getEndpointProperty", "property", "options", "propertyEntry", "require_getEndpointProperties", "__commonJSMin", "exports", "getEndpointProperty_1", "getEndpointProperties", "properties", "options", "acc", "propertyKey", "propertyVal", "require_getEndpointUrl", "__commonJSMin", "exports", "types_1", "evaluateExpression_1", "getEndpointUrl", "endpointUrl", "options", "expression", "error", "require_evaluateEndpointRule", "__commonJSMin", "exports", "debug_1", "evaluateConditions_1", "getEndpointHeaders_1", "getEndpointProperties_1", "getEndpointUrl_1", "evaluateEndpointRule", "endpointRule", "options", "_a", "_b", "conditions", "endpoint", "result", "referenceRecord", "endpointRuleOptions", "url", "properties", "headers", "require_evaluateErrorRule", "__commonJSMin", "exports", "types_1", "evaluateConditions_1", "evaluateExpression_1", "evaluateErrorRule", "errorRule", "options", "conditions", "error", "result", "referenceRecord", "require_evaluateTreeRule", "__commonJSMin", "exports", "evaluateConditions_1", "evaluateRules_1", "evaluateTreeRule", "treeRule", "options", "conditions", "rules", "result", "referenceRecord", "require_evaluateRules", "__commonJSMin", "exports", "types_1", "evaluateEndpointRule_1", "evaluateErrorRule_1", "evaluateTreeRule_1", "evaluateRules", "rules", "options", "rule", "endpointOrUndefined", "require_utils", "__commonJSMin", "exports", "tslib_1", "require_resolveEndpoint", "__commonJSMin", "exports", "debug_1", "types_1", "utils_1", "resolveEndpoint", "ruleSetObject", "options", "_a", "_b", "_c", "_d", "_e", "_f", "endpointParams", "logger", "parameters", "rules", "paramsWithDefault", "v", "k", "paramKey", "paramDefaultValue", "requiredParams", "requiredParam", "endpoint", "givenEndpoint", "protocol", "port", "require_dist_cjs", "__commonJSMin", "exports", "tslib_1", "require_ruleset", "__commonJSMin", "exports", "p", "q", "r", "s", "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "_data", "require_endpointResolver", "__commonJSMin", "exports", "util_endpoints_1", "ruleset_1", "defaultEndpointResolver", "endpointParams", "context", "require_runtimeConfig_shared", "__commonJSMin", "exports", "smithy_client_1", "url_parser_1", "util_base64_1", "util_utf8_1", "endpointResolver_1", "getRuntimeConfig", "config", "require_constants", "__commonJSMin", "exports", "require_defaultsModeConfig", "__commonJSMin", "exports", "AWS_DEFAULTS_MODE_ENV", "AWS_DEFAULTS_MODE_CONFIG", "env", "profile", "require_resolveDefaultsModeConfig", "__commonJSMin", "exports", "config_resolver_1", "credential_provider_imds_1", "node_config_provider_1", "property_provider_1", "constants_1", "defaultsModeConfig_1", "resolveDefaultsModeConfig", "region", "defaultsMode", "mode", "resolveNodeDefaultsModeAuto", "clientRegion", "resolvedRegion", "inferredRegion", "inferPhysicalRegion", "_a", "endpoint", "require_dist_cjs", "__commonJSMin", "exports", "tslib_1", "require_runtimeConfig", "__commonJSMin", "exports", "tslib_1", "package_json_1", "config_resolver_1", "hash_node_1", "middleware_retry_1", "node_config_provider_1", "node_http_handler_1", "util_body_length_node_1", "util_retry_1", "util_user_agent_node_1", "runtimeConfig_shared_1", "smithy_client_1", "util_defaults_mode_node_1", "smithy_client_2", "getRuntimeConfig", "config", "defaultsMode", "defaultConfigProvider", "clientSharedValues", "require_SSOClient", "__commonJSMin", "exports", "config_resolver_1", "middleware_content_length_1", "middleware_endpoint_1", "middleware_host_header_1", "middleware_logger_1", "middleware_recursion_detection_1", "middleware_retry_1", "middleware_user_agent_1", "smithy_client_1", "EndpointParameters_1", "runtimeConfig_1", "SSOClient", "configuration", "_config_0", "_config_1", "_config_2", "_config_3", "_config_4", "_config_5", "_config_6", "require_SSO", "__commonJSMin", "exports", "GetRoleCredentialsCommand_1", "ListAccountRolesCommand_1", "ListAccountsCommand_1", "LogoutCommand_1", "SSOClient_1", "SSO", "args", "optionsOrCb", "cb", "command", "require_commands", "__commonJSMin", "exports", "tslib_1", "require_models", "__commonJSMin", "exports", "tslib_1", "require_Interfaces", "__commonJSMin", "exports", "require_ListAccountRolesPaginator", "__commonJSMin", "exports", "ListAccountRolesCommand_1", "SSO_1", "SSOClient_1", "makePagedClientRequest", "client", "input", "args", "makePagedRequest", "paginateListAccountRoles", "config", "additionalArguments", "token", "hasNext", "page", "prevToken", "require_ListAccountsPaginator", "__commonJSMin", "exports", "ListAccountsCommand_1", "SSO_1", "SSOClient_1", "makePagedClientRequest", "client", "input", "args", "makePagedRequest", "paginateListAccounts", "config", "additionalArguments", "token", "hasNext", "page", "prevToken", "require_pagination", "__commonJSMin", "exports", "tslib_1", "require_dist_cjs", "__commonJSMin", "exports", "tslib_1", "SSOServiceException_1", "require_constants", "__commonJSMin", "exports", "require_SSOOIDCServiceException", "__commonJSMin", "exports", "smithy_client_1", "SSOOIDCServiceException", "options", "require_models_0", "__commonJSMin", "exports", "SSOOIDCServiceException_1", "AccessDeniedException", "opts", "AuthorizationPendingException", "ExpiredTokenException", "InternalServerException", "InvalidClientException", "InvalidGrantException", "InvalidRequestException", "InvalidScopeException", "SlowDownException", "UnauthorizedClientException", "UnsupportedGrantTypeException", "InvalidClientMetadataException", "CreateTokenRequestFilterSensitiveLog", "obj", "CreateTokenResponseFilterSensitiveLog", "RegisterClientRequestFilterSensitiveLog", "RegisterClientResponseFilterSensitiveLog", "StartDeviceAuthorizationRequestFilterSensitiveLog", "StartDeviceAuthorizationResponseFilterSensitiveLog", "require_Aws_restJson1", "__commonJSMin", "exports", "protocol_http_1", "smithy_client_1", "models_0_1", "SSOOIDCServiceException_1", "serializeAws_restJson1CreateTokenCommand", "input", "context", "hostname", "protocol", "port", "basePath", "headers", "resolvedPath", "body", "serializeAws_restJson1Scopes", "serializeAws_restJson1RegisterClientCommand", "serializeAws_restJson1StartDeviceAuthorizationCommand", "deserializeAws_restJson1CreateTokenCommand", "output", "deserializeAws_restJson1CreateTokenCommandError", "contents", "map", "deserializeMetadata", "data", "parseBody", "parsedOutput", "parseErrorBody", "errorCode", "loadRestJsonErrorCode", "deserializeAws_restJson1AccessDeniedExceptionResponse", "deserializeAws_restJson1AuthorizationPendingExceptionResponse", "deserializeAws_restJson1ExpiredTokenExceptionResponse", "deserializeAws_restJson1InternalServerExceptionResponse", "deserializeAws_restJson1InvalidClientExceptionResponse", "deserializeAws_restJson1InvalidGrantExceptionResponse", "deserializeAws_restJson1InvalidRequestExceptionResponse", "deserializeAws_restJson1InvalidScopeExceptionResponse", "deserializeAws_restJson1SlowDownExceptionResponse", "deserializeAws_restJson1UnauthorizedClientExceptionResponse", "deserializeAws_restJson1UnsupportedGrantTypeExceptionResponse", "parsedBody", "deserializeAws_restJson1RegisterClientCommand", "deserializeAws_restJson1RegisterClientCommandError", "deserializeAws_restJson1InvalidClientMetadataExceptionResponse", "deserializeAws_restJson1StartDeviceAuthorizationCommand", "deserializeAws_restJson1StartDeviceAuthorizationCommandError", "exception", "e", "entry", "collectBody", "streamBody", "collectBodyString", "encoded", "errorBody", "value", "findKey", "object", "key", "k", "sanitizeErrorCode", "rawValue", "cleanValue", "headerKey", "require_CreateTokenCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_serde_1", "smithy_client_1", "models_0_1", "Aws_restJson1_1", "CreateTokenCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "requestHandler", "request", "context", "output", "require_RegisterClientCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_serde_1", "smithy_client_1", "models_0_1", "Aws_restJson1_1", "RegisterClientCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "requestHandler", "request", "context", "output", "require_StartDeviceAuthorizationCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_serde_1", "smithy_client_1", "models_0_1", "Aws_restJson1_1", "StartDeviceAuthorizationCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "requestHandler", "request", "context", "output", "require_EndpointParameters", "__commonJSMin", "exports", "resolveClientEndpointParameters", "options", "require_ruleset", "__commonJSMin", "exports", "p", "q", "r", "s", "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "_data", "require_endpointResolver", "__commonJSMin", "exports", "util_endpoints_1", "ruleset_1", "defaultEndpointResolver", "endpointParams", "context", "require_runtimeConfig_shared", "__commonJSMin", "exports", "smithy_client_1", "url_parser_1", "util_base64_1", "util_utf8_1", "endpointResolver_1", "getRuntimeConfig", "config", "require_runtimeConfig", "__commonJSMin", "exports", "tslib_1", "package_json_1", "config_resolver_1", "hash_node_1", "middleware_retry_1", "node_config_provider_1", "node_http_handler_1", "util_body_length_node_1", "util_retry_1", "util_user_agent_node_1", "runtimeConfig_shared_1", "smithy_client_1", "util_defaults_mode_node_1", "smithy_client_2", "getRuntimeConfig", "config", "defaultsMode", "defaultConfigProvider", "clientSharedValues", "require_SSOOIDCClient", "__commonJSMin", "exports", "config_resolver_1", "middleware_content_length_1", "middleware_endpoint_1", "middleware_host_header_1", "middleware_logger_1", "middleware_recursion_detection_1", "middleware_retry_1", "middleware_user_agent_1", "smithy_client_1", "EndpointParameters_1", "runtimeConfig_1", "SSOOIDCClient", "configuration", "_config_0", "_config_1", "_config_2", "_config_3", "_config_4", "_config_5", "_config_6", "require_SSOOIDC", "__commonJSMin", "exports", "CreateTokenCommand_1", "RegisterClientCommand_1", "StartDeviceAuthorizationCommand_1", "SSOOIDCClient_1", "SSOOIDC", "args", "optionsOrCb", "cb", "command", "require_commands", "__commonJSMin", "exports", "tslib_1", "require_models", "__commonJSMin", "exports", "tslib_1", "require_dist_cjs", "__commonJSMin", "exports", "tslib_1", "SSOOIDCServiceException_1", "require_getSsoOidcClient", "__commonJSMin", "exports", "client_sso_oidc_1", "ssoOidcClientsHash", "getSsoOidcClient", "ssoRegion", "ssoOidcClient", "require_getNewSsoOidcToken", "__commonJSMin", "exports", "client_sso_oidc_1", "getSsoOidcClient_1", "getNewSsoOidcToken", "ssoToken", "ssoRegion", "require_validateTokenExpiry", "__commonJSMin", "exports", "property_provider_1", "constants_1", "validateTokenExpiry", "token", "require_validateTokenKey", "__commonJSMin", "exports", "property_provider_1", "constants_1", "validateTokenKey", "key", "value", "forRefresh", "require_writeSSOTokenToFile", "__commonJSMin", "exports", "shared_ini_file_loader_1", "fs_1", "writeFile", "writeSSOTokenToFile", "id", "ssoToken", "tokenFilepath", "tokenString", "require_fromSso", "__commonJSMin", "exports", "property_provider_1", "shared_ini_file_loader_1", "constants_1", "getNewSsoOidcToken_1", "validateTokenExpiry_1", "validateTokenKey_1", "writeSSOTokenToFile_1", "lastRefreshAttemptTime", "fromSso", "init", "profiles", "profileName", "profile", "ssoSessionName", "ssoSession", "ssoSessionRequiredKey", "ssoStartUrl", "ssoRegion", "ssoToken", "accessToken", "expiresAt", "existingToken", "newSsoOidcToken", "newTokenExpiration", "require_fromStatic", "__commonJSMin", "exports", "property_provider_1", "fromStatic", "token", "require_nodeProvider", "__commonJSMin", "exports", "property_provider_1", "fromSso_1", "nodeProvider", "init", "token", "require_dist_cjs", "__commonJSMin", "exports", "tslib_1", "require_resolveSSOCredentials", "__commonJSMin", "exports", "client_sso_1", "property_provider_1", "shared_ini_file_loader_1", "token_providers_1", "EXPIRE_WINDOW_MS", "SHOULD_FAIL_CREDENTIAL_CHAIN", "resolveSSOCredentials", "ssoStartUrl", "ssoSession", "ssoAccountId", "ssoRegion", "ssoRoleName", "ssoClient", "profile", "token", "refreshMessage", "_token", "e", "accessToken", "sso", "ssoResp", "accessKeyId", "secretAccessKey", "sessionToken", "expiration", "require_validateSsoProfile", "__commonJSMin", "exports", "property_provider_1", "validateSsoProfile", "profile", "sso_start_url", "sso_account_id", "sso_region", "sso_role_name", "require_fromSSO", "__commonJSMin", "exports", "property_provider_1", "shared_ini_file_loader_1", "isSsoProfile_1", "resolveSSOCredentials_1", "validateSsoProfile_1", "fromSSO", "init", "ssoStartUrl", "ssoAccountId", "ssoRegion", "ssoRoleName", "ssoClient", "ssoSession", "profileName", "profile", "session", "conflictMsg", "sso_start_url", "sso_account_id", "sso_region", "sso_role_name", "sso_session", "require_types", "__commonJSMin", "exports", "require_dist_cjs", "__commonJSMin", "exports", "tslib_1", "require_resolveSsoCredentials", "__commonJSMin", "exports", "credential_provider_sso_1", "credential_provider_sso_2", "resolveSsoCredentials", "data", "sso_start_url", "sso_account_id", "sso_session", "sso_region", "sso_role_name", "require_resolveStaticCredentials", "__commonJSMin", "exports", "isStaticCredsProfile", "arg", "resolveStaticCredentials", "profile", "require_fromWebToken", "__commonJSMin", "exports", "property_provider_1", "fromWebToken", "init", "roleArn", "roleSessionName", "webIdentityToken", "providerId", "policyArns", "policy", "durationSeconds", "roleAssumerWithWebIdentity", "require_fromTokenFile", "__commonJSMin", "exports", "property_provider_1", "fs_1", "fromWebToken_1", "ENV_TOKEN_FILE", "ENV_ROLE_ARN", "ENV_ROLE_SESSION_NAME", "fromTokenFile", "init", "resolveTokenFile", "_a", "_b", "_c", "webIdentityTokenFile", "roleArn", "roleSessionName", "require_dist_cjs", "__commonJSMin", "exports", "tslib_1", "require_resolveWebIdentityCredentials", "__commonJSMin", "exports", "credential_provider_web_identity_1", "isWebIdentityProfile", "arg", "resolveWebIdentityCredentials", "profile", "options", "require_resolveProfileData", "__commonJSMin", "exports", "property_provider_1", "resolveAssumeRoleCredentials_1", "resolveProcessCredentials_1", "resolveSsoCredentials_1", "resolveStaticCredentials_1", "resolveWebIdentityCredentials_1", "resolveProfileData", "profileName", "profiles", "options", "visitedProfiles", "data", "require_fromIni", "__commonJSMin", "exports", "shared_ini_file_loader_1", "resolveProfileData_1", "fromIni", "init", "profiles", "require_dist_cjs", "__commonJSMin", "exports", "tslib_1", "require_remoteProvider", "__commonJSMin", "exports", "credential_provider_imds_1", "property_provider_1", "remoteProvider", "init", "require_defaultProvider", "__commonJSMin", "exports", "credential_provider_env_1", "credential_provider_ini_1", "credential_provider_process_1", "credential_provider_sso_1", "credential_provider_web_identity_1", "property_provider_1", "shared_ini_file_loader_1", "remoteProvider_1", "defaultProvider", "init", "credentials", "require_dist_cjs", "__commonJSMin", "exports", "tslib_1", "require_ruleset", "__commonJSMin", "exports", "G", "H", "I", "J", "K", "L", "M", "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", "A", "B", "C", "D", "E", "F", "_data", "require_endpointResolver", "__commonJSMin", "exports", "util_endpoints_1", "ruleset_1", "defaultEndpointResolver", "endpointParams", "context", "require_runtimeConfig_shared", "__commonJSMin", "exports", "smithy_client_1", "url_parser_1", "util_base64_1", "util_utf8_1", "endpointResolver_1", "getRuntimeConfig", "config", "require_runtimeConfig", "__commonJSMin", "exports", "tslib_1", "package_json_1", "defaultStsRoleAssumers_1", "config_resolver_1", "credential_provider_node_1", "hash_node_1", "middleware_retry_1", "node_config_provider_1", "node_http_handler_1", "util_body_length_node_1", "util_retry_1", "util_user_agent_node_1", "runtimeConfig_shared_1", "smithy_client_1", "util_defaults_mode_node_1", "smithy_client_2", "getRuntimeConfig", "config", "defaultsMode", "defaultConfigProvider", "clientSharedValues", "require_STSClient", "__commonJSMin", "exports", "config_resolver_1", "middleware_content_length_1", "middleware_endpoint_1", "middleware_host_header_1", "middleware_logger_1", "middleware_recursion_detection_1", "middleware_retry_1", "middleware_sdk_sts_1", "middleware_user_agent_1", "smithy_client_1", "EndpointParameters_1", "runtimeConfig_1", "STSClient", "configuration", "_config_0", "_config_1", "_config_2", "_config_3", "_config_4", "_config_5", "_config_6", "_config_7", "require_STS", "__commonJSMin", "exports", "AssumeRoleCommand_1", "AssumeRoleWithSAMLCommand_1", "AssumeRoleWithWebIdentityCommand_1", "DecodeAuthorizationMessageCommand_1", "GetAccessKeyInfoCommand_1", "GetCallerIdentityCommand_1", "GetFederationTokenCommand_1", "GetSessionTokenCommand_1", "STSClient_1", "STS", "args", "optionsOrCb", "cb", "command", "require_commands", "__commonJSMin", "exports", "tslib_1", "require_defaultRoleAssumers", "__commonJSMin", "exports", "defaultStsRoleAssumers_1", "STSClient_1", "getCustomizableStsClientCtor", "baseCtor", "customizations", "config", "customization", "getDefaultRoleAssumer", "stsOptions", "stsPlugins", "getDefaultRoleAssumerWithWebIdentity", "decorateDefaultCredentialProvider", "provider", "input", "require_models", "__commonJSMin", "exports", "tslib_1", "require_dist_cjs", "__commonJSMin", "exports", "tslib_1", "STSServiceException_1", "require_ruleset", "__commonJSMin", "exports", "p", "q", "r", "s", "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "_data", "require_endpointResolver", "__commonJSMin", "exports", "util_endpoints_1", "ruleset_1", "defaultEndpointResolver", "endpointParams", "context", "require_runtimeConfig_shared", "__commonJSMin", "exports", "smithy_client_1", "url_parser_1", "util_base64_1", "util_utf8_1", "endpointResolver_1", "getRuntimeConfig", "config", "require_runtimeConfig", "__commonJSMin", "exports", "tslib_1", "package_json_1", "client_sts_1", "config_resolver_1", "credential_provider_node_1", "hash_node_1", "middleware_retry_1", "node_config_provider_1", "node_http_handler_1", "util_body_length_node_1", "util_retry_1", "util_user_agent_node_1", "runtimeConfig_shared_1", "smithy_client_1", "util_defaults_mode_node_1", "smithy_client_2", "getRuntimeConfig", "config", "defaultsMode", "defaultConfigProvider", "clientSharedValues", "require_CognitoIdentityClient", "__commonJSMin", "exports", "config_resolver_1", "middleware_content_length_1", "middleware_endpoint_1", "middleware_host_header_1", "middleware_logger_1", "middleware_recursion_detection_1", "middleware_retry_1", "middleware_signing_1", "middleware_user_agent_1", "smithy_client_1", "EndpointParameters_1", "runtimeConfig_1", "CognitoIdentityClient", "configuration", "_config_0", "_config_1", "_config_2", "_config_3", "_config_4", "_config_5", "_config_6", "_config_7", "require_CognitoIdentityServiceException", "__commonJSMin", "exports", "smithy_client_1", "CognitoIdentityServiceException", "options", "require_models_0", "__commonJSMin", "exports", "CognitoIdentityServiceException_1", "AmbiguousRoleResolutionType", "InternalErrorException", "opts", "InvalidParameterException", "LimitExceededException", "NotAuthorizedException", "ResourceConflictException", "TooManyRequestsException", "ErrorCode", "ResourceNotFoundException", "ExternalServiceException", "InvalidIdentityPoolConfigurationException", "MappingRuleMatchType", "RoleMappingType", "DeveloperUserAlreadyRegisteredException", "ConcurrentModificationException", "CognitoIdentityProviderFilterSensitiveLog", "obj", "CreateIdentityPoolInputFilterSensitiveLog", "IdentityPoolFilterSensitiveLog", "DeleteIdentitiesInputFilterSensitiveLog", "UnprocessedIdentityIdFilterSensitiveLog", "DeleteIdentitiesResponseFilterSensitiveLog", "DeleteIdentityPoolInputFilterSensitiveLog", "DescribeIdentityInputFilterSensitiveLog", "IdentityDescriptionFilterSensitiveLog", "DescribeIdentityPoolInputFilterSensitiveLog", "GetCredentialsForIdentityInputFilterSensitiveLog", "CredentialsFilterSensitiveLog", "GetCredentialsForIdentityResponseFilterSensitiveLog", "GetIdInputFilterSensitiveLog", "GetIdResponseFilterSensitiveLog", "GetIdentityPoolRolesInputFilterSensitiveLog", "MappingRuleFilterSensitiveLog", "RulesConfigurationTypeFilterSensitiveLog", "RoleMappingFilterSensitiveLog", "GetIdentityPoolRolesResponseFilterSensitiveLog", "GetOpenIdTokenInputFilterSensitiveLog", "GetOpenIdTokenResponseFilterSensitiveLog", "GetOpenIdTokenForDeveloperIdentityInputFilterSensitiveLog", "GetOpenIdTokenForDeveloperIdentityResponseFilterSensitiveLog", "GetPrincipalTagAttributeMapInputFilterSensitiveLog", "GetPrincipalTagAttributeMapResponseFilterSensitiveLog", "ListIdentitiesInputFilterSensitiveLog", "ListIdentitiesResponseFilterSensitiveLog", "ListIdentityPoolsInputFilterSensitiveLog", "IdentityPoolShortDescriptionFilterSensitiveLog", "ListIdentityPoolsResponseFilterSensitiveLog", "ListTagsForResourceInputFilterSensitiveLog", "ListTagsForResourceResponseFilterSensitiveLog", "LookupDeveloperIdentityInputFilterSensitiveLog", "LookupDeveloperIdentityResponseFilterSensitiveLog", "MergeDeveloperIdentitiesInputFilterSensitiveLog", "MergeDeveloperIdentitiesResponseFilterSensitiveLog", "SetIdentityPoolRolesInputFilterSensitiveLog", "SetPrincipalTagAttributeMapInputFilterSensitiveLog", "SetPrincipalTagAttributeMapResponseFilterSensitiveLog", "TagResourceInputFilterSensitiveLog", "TagResourceResponseFilterSensitiveLog", "UnlinkDeveloperIdentityInputFilterSensitiveLog", "UnlinkIdentityInputFilterSensitiveLog", "UntagResourceInputFilterSensitiveLog", "UntagResourceResponseFilterSensitiveLog", "require_Aws_json1_1", "__commonJSMin", "exports", "protocol_http_1", "smithy_client_1", "CognitoIdentityServiceException_1", "models_0_1", "serializeAws_json1_1CreateIdentityPoolCommand", "input", "context", "headers", "body", "serializeAws_json1_1CreateIdentityPoolInput", "buildHttpRpcRequest", "serializeAws_json1_1DeleteIdentitiesCommand", "serializeAws_json1_1DeleteIdentitiesInput", "serializeAws_json1_1DeleteIdentityPoolCommand", "serializeAws_json1_1DeleteIdentityPoolInput", "serializeAws_json1_1DescribeIdentityCommand", "serializeAws_json1_1DescribeIdentityInput", "serializeAws_json1_1DescribeIdentityPoolCommand", "serializeAws_json1_1DescribeIdentityPoolInput", "serializeAws_json1_1GetCredentialsForIdentityCommand", "serializeAws_json1_1GetCredentialsForIdentityInput", "serializeAws_json1_1GetIdCommand", "serializeAws_json1_1GetIdInput", "serializeAws_json1_1GetIdentityPoolRolesCommand", "serializeAws_json1_1GetIdentityPoolRolesInput", "serializeAws_json1_1GetOpenIdTokenCommand", "serializeAws_json1_1GetOpenIdTokenInput", "serializeAws_json1_1GetOpenIdTokenForDeveloperIdentityCommand", "serializeAws_json1_1GetOpenIdTokenForDeveloperIdentityInput", "serializeAws_json1_1GetPrincipalTagAttributeMapCommand", "serializeAws_json1_1GetPrincipalTagAttributeMapInput", "serializeAws_json1_1ListIdentitiesCommand", "serializeAws_json1_1ListIdentitiesInput", "serializeAws_json1_1ListIdentityPoolsCommand", "serializeAws_json1_1ListIdentityPoolsInput", "serializeAws_json1_1ListTagsForResourceCommand", "serializeAws_json1_1ListTagsForResourceInput", "serializeAws_json1_1LookupDeveloperIdentityCommand", "serializeAws_json1_1LookupDeveloperIdentityInput", "serializeAws_json1_1MergeDeveloperIdentitiesCommand", "serializeAws_json1_1MergeDeveloperIdentitiesInput", "serializeAws_json1_1SetIdentityPoolRolesCommand", "serializeAws_json1_1SetIdentityPoolRolesInput", "serializeAws_json1_1SetPrincipalTagAttributeMapCommand", "serializeAws_json1_1SetPrincipalTagAttributeMapInput", "serializeAws_json1_1TagResourceCommand", "serializeAws_json1_1TagResourceInput", "serializeAws_json1_1UnlinkDeveloperIdentityCommand", "serializeAws_json1_1UnlinkDeveloperIdentityInput", "serializeAws_json1_1UnlinkIdentityCommand", "serializeAws_json1_1UnlinkIdentityInput", "serializeAws_json1_1UntagResourceCommand", "serializeAws_json1_1UntagResourceInput", "serializeAws_json1_1UpdateIdentityPoolCommand", "serializeAws_json1_1IdentityPool", "deserializeAws_json1_1CreateIdentityPoolCommand", "output", "deserializeAws_json1_1CreateIdentityPoolCommandError", "data", "parseBody", "contents", "deserializeAws_json1_1IdentityPool", "response", "deserializeMetadata", "parsedOutput", "parseErrorBody", "errorCode", "loadRestJsonErrorCode", "deserializeAws_json1_1InternalErrorExceptionResponse", "deserializeAws_json1_1InvalidParameterExceptionResponse", "deserializeAws_json1_1LimitExceededExceptionResponse", "deserializeAws_json1_1NotAuthorizedExceptionResponse", "deserializeAws_json1_1ResourceConflictExceptionResponse", "deserializeAws_json1_1TooManyRequestsExceptionResponse", "parsedBody", "deserializeAws_json1_1DeleteIdentitiesCommand", "deserializeAws_json1_1DeleteIdentitiesCommandError", "deserializeAws_json1_1DeleteIdentitiesResponse", "deserializeAws_json1_1DeleteIdentityPoolCommand", "deserializeAws_json1_1DeleteIdentityPoolCommandError", "collectBody", "deserializeAws_json1_1ResourceNotFoundExceptionResponse", "deserializeAws_json1_1DescribeIdentityCommand", "deserializeAws_json1_1DescribeIdentityCommandError", "deserializeAws_json1_1IdentityDescription", "deserializeAws_json1_1DescribeIdentityPoolCommand", "deserializeAws_json1_1DescribeIdentityPoolCommandError", "deserializeAws_json1_1GetCredentialsForIdentityCommand", "deserializeAws_json1_1GetCredentialsForIdentityCommandError", "deserializeAws_json1_1GetCredentialsForIdentityResponse", "deserializeAws_json1_1ExternalServiceExceptionResponse", "deserializeAws_json1_1InvalidIdentityPoolConfigurationExceptionResponse", "deserializeAws_json1_1GetIdCommand", "deserializeAws_json1_1GetIdCommandError", "deserializeAws_json1_1GetIdResponse", "deserializeAws_json1_1GetIdentityPoolRolesCommand", "deserializeAws_json1_1GetIdentityPoolRolesCommandError", "deserializeAws_json1_1GetIdentityPoolRolesResponse", "deserializeAws_json1_1GetOpenIdTokenCommand", "deserializeAws_json1_1GetOpenIdTokenCommandError", "deserializeAws_json1_1GetOpenIdTokenResponse", "deserializeAws_json1_1GetOpenIdTokenForDeveloperIdentityCommand", "deserializeAws_json1_1GetOpenIdTokenForDeveloperIdentityCommandError", "deserializeAws_json1_1GetOpenIdTokenForDeveloperIdentityResponse", "deserializeAws_json1_1DeveloperUserAlreadyRegisteredExceptionResponse", "deserializeAws_json1_1GetPrincipalTagAttributeMapCommand", "deserializeAws_json1_1GetPrincipalTagAttributeMapCommandError", "deserializeAws_json1_1GetPrincipalTagAttributeMapResponse", "deserializeAws_json1_1ListIdentitiesCommand", "deserializeAws_json1_1ListIdentitiesCommandError", "deserializeAws_json1_1ListIdentitiesResponse", "deserializeAws_json1_1ListIdentityPoolsCommand", "deserializeAws_json1_1ListIdentityPoolsCommandError", "deserializeAws_json1_1ListIdentityPoolsResponse", "deserializeAws_json1_1ListTagsForResourceCommand", "deserializeAws_json1_1ListTagsForResourceCommandError", "deserializeAws_json1_1ListTagsForResourceResponse", "deserializeAws_json1_1LookupDeveloperIdentityCommand", "deserializeAws_json1_1LookupDeveloperIdentityCommandError", "deserializeAws_json1_1LookupDeveloperIdentityResponse", "deserializeAws_json1_1MergeDeveloperIdentitiesCommand", "deserializeAws_json1_1MergeDeveloperIdentitiesCommandError", "deserializeAws_json1_1MergeDeveloperIdentitiesResponse", "deserializeAws_json1_1SetIdentityPoolRolesCommand", "deserializeAws_json1_1SetIdentityPoolRolesCommandError", "deserializeAws_json1_1ConcurrentModificationExceptionResponse", "deserializeAws_json1_1SetPrincipalTagAttributeMapCommand", "deserializeAws_json1_1SetPrincipalTagAttributeMapCommandError", "deserializeAws_json1_1SetPrincipalTagAttributeMapResponse", "deserializeAws_json1_1TagResourceCommand", "deserializeAws_json1_1TagResourceCommandError", "deserializeAws_json1_1TagResourceResponse", "deserializeAws_json1_1UnlinkDeveloperIdentityCommand", "deserializeAws_json1_1UnlinkDeveloperIdentityCommandError", "deserializeAws_json1_1UnlinkIdentityCommand", "deserializeAws_json1_1UnlinkIdentityCommandError", "deserializeAws_json1_1UntagResourceCommand", "deserializeAws_json1_1UntagResourceCommandError", "deserializeAws_json1_1UntagResourceResponse", "deserializeAws_json1_1UpdateIdentityPoolCommand", "deserializeAws_json1_1UpdateIdentityPoolCommandError", "deserialized", "deserializeAws_json1_1ConcurrentModificationException", "exception", "deserializeAws_json1_1DeveloperUserAlreadyRegisteredException", "deserializeAws_json1_1ExternalServiceException", "deserializeAws_json1_1InternalErrorException", "deserializeAws_json1_1InvalidIdentityPoolConfigurationException", "deserializeAws_json1_1InvalidParameterException", "deserializeAws_json1_1LimitExceededException", "deserializeAws_json1_1NotAuthorizedException", "deserializeAws_json1_1ResourceConflictException", "deserializeAws_json1_1ResourceNotFoundException", "deserializeAws_json1_1TooManyRequestsException", "serializeAws_json1_1CognitoIdentityProvider", "serializeAws_json1_1CognitoIdentityProviderList", "e", "entry", "serializeAws_json1_1IdentityPoolTagsType", "serializeAws_json1_1OIDCProviderList", "serializeAws_json1_1SAMLProviderList", "serializeAws_json1_1IdentityProviders", "serializeAws_json1_1IdentityIdList", "serializeAws_json1_1LoginsMap", "serializeAws_json1_1PrincipalTags", "serializeAws_json1_1IdentityPoolTagsListType", "acc", "key", "value", "serializeAws_json1_1LoginsList", "serializeAws_json1_1MappingRule", "serializeAws_json1_1MappingRulesList", "serializeAws_json1_1RoleMapping", "serializeAws_json1_1RulesConfigurationType", "serializeAws_json1_1RoleMappingMap", "serializeAws_json1_1RolesMap", "deserializeAws_json1_1CognitoIdentityProvider", "deserializeAws_json1_1CognitoIdentityProviderList", "deserializeAws_json1_1Credentials", "deserializeAws_json1_1UnprocessedIdentityIdList", "deserializeAws_json1_1DeveloperUserIdentifierList", "deserializeAws_json1_1RoleMappingMap", "deserializeAws_json1_1RolesMap", "deserializeAws_json1_1PrincipalTags", "deserializeAws_json1_1IdentitiesList", "deserializeAws_json1_1LoginsList", "deserializeAws_json1_1IdentityPoolTagsType", "deserializeAws_json1_1OIDCProviderList", "deserializeAws_json1_1SAMLProviderList", "deserializeAws_json1_1IdentityProviders", "deserializeAws_json1_1IdentityPoolShortDescription", "deserializeAws_json1_1IdentityPoolsList", "deserializeAws_json1_1MappingRule", "deserializeAws_json1_1MappingRulesList", "deserializeAws_json1_1RoleMapping", "deserializeAws_json1_1RulesConfigurationType", "deserializeAws_json1_1UnprocessedIdentityId", "streamBody", "collectBodyString", "path", "resolvedHostname", "hostname", "protocol", "port", "basePath", "encoded", "errorBody", "findKey", "object", "k", "sanitizeErrorCode", "rawValue", "cleanValue", "headerKey", "require_CreateIdentityPoolCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_serde_1", "middleware_signing_1", "smithy_client_1", "models_0_1", "Aws_json1_1_1", "CreateIdentityPoolCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "requestHandler", "request", "context", "output", "require_DeleteIdentitiesCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_serde_1", "middleware_signing_1", "smithy_client_1", "models_0_1", "Aws_json1_1_1", "DeleteIdentitiesCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "requestHandler", "request", "context", "output", "require_DeleteIdentityPoolCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_serde_1", "middleware_signing_1", "smithy_client_1", "models_0_1", "Aws_json1_1_1", "DeleteIdentityPoolCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "output", "requestHandler", "request", "context", "require_DescribeIdentityCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_serde_1", "middleware_signing_1", "smithy_client_1", "models_0_1", "Aws_json1_1_1", "DescribeIdentityCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "requestHandler", "request", "context", "output", "require_DescribeIdentityPoolCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_serde_1", "middleware_signing_1", "smithy_client_1", "models_0_1", "Aws_json1_1_1", "DescribeIdentityPoolCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "requestHandler", "request", "context", "output", "require_GetCredentialsForIdentityCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_serde_1", "smithy_client_1", "models_0_1", "Aws_json1_1_1", "GetCredentialsForIdentityCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "requestHandler", "request", "context", "output", "require_GetIdCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_serde_1", "smithy_client_1", "models_0_1", "Aws_json1_1_1", "GetIdCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "requestHandler", "request", "context", "output", "require_GetIdentityPoolRolesCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_serde_1", "middleware_signing_1", "smithy_client_1", "models_0_1", "Aws_json1_1_1", "GetIdentityPoolRolesCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "requestHandler", "request", "context", "output", "require_GetOpenIdTokenCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_serde_1", "smithy_client_1", "models_0_1", "Aws_json1_1_1", "GetOpenIdTokenCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "requestHandler", "request", "context", "output", "require_GetOpenIdTokenForDeveloperIdentityCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_serde_1", "middleware_signing_1", "smithy_client_1", "models_0_1", "Aws_json1_1_1", "GetOpenIdTokenForDeveloperIdentityCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "requestHandler", "request", "context", "output", "require_GetPrincipalTagAttributeMapCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_serde_1", "middleware_signing_1", "smithy_client_1", "models_0_1", "Aws_json1_1_1", "GetPrincipalTagAttributeMapCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "requestHandler", "request", "context", "output", "require_ListIdentitiesCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_serde_1", "middleware_signing_1", "smithy_client_1", "models_0_1", "Aws_json1_1_1", "ListIdentitiesCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "requestHandler", "request", "context", "output", "require_ListIdentityPoolsCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_serde_1", "middleware_signing_1", "smithy_client_1", "models_0_1", "Aws_json1_1_1", "ListIdentityPoolsCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "requestHandler", "request", "context", "output", "require_ListTagsForResourceCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_serde_1", "middleware_signing_1", "smithy_client_1", "models_0_1", "Aws_json1_1_1", "ListTagsForResourceCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "requestHandler", "request", "context", "output", "require_LookupDeveloperIdentityCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_serde_1", "middleware_signing_1", "smithy_client_1", "models_0_1", "Aws_json1_1_1", "LookupDeveloperIdentityCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "requestHandler", "request", "context", "output", "require_MergeDeveloperIdentitiesCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_serde_1", "middleware_signing_1", "smithy_client_1", "models_0_1", "Aws_json1_1_1", "MergeDeveloperIdentitiesCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "requestHandler", "request", "context", "output", "require_SetIdentityPoolRolesCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_serde_1", "middleware_signing_1", "smithy_client_1", "models_0_1", "Aws_json1_1_1", "SetIdentityPoolRolesCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "output", "requestHandler", "request", "context", "require_SetPrincipalTagAttributeMapCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_serde_1", "middleware_signing_1", "smithy_client_1", "models_0_1", "Aws_json1_1_1", "SetPrincipalTagAttributeMapCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "requestHandler", "request", "context", "output", "require_TagResourceCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_serde_1", "middleware_signing_1", "smithy_client_1", "models_0_1", "Aws_json1_1_1", "TagResourceCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "requestHandler", "request", "context", "output", "require_UnlinkDeveloperIdentityCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_serde_1", "middleware_signing_1", "smithy_client_1", "models_0_1", "Aws_json1_1_1", "UnlinkDeveloperIdentityCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "output", "requestHandler", "request", "context", "require_UnlinkIdentityCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_serde_1", "smithy_client_1", "models_0_1", "Aws_json1_1_1", "UnlinkIdentityCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "output", "requestHandler", "request", "context", "require_UntagResourceCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_serde_1", "middleware_signing_1", "smithy_client_1", "models_0_1", "Aws_json1_1_1", "UntagResourceCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "requestHandler", "request", "context", "output", "require_UpdateIdentityPoolCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_serde_1", "middleware_signing_1", "smithy_client_1", "models_0_1", "Aws_json1_1_1", "UpdateIdentityPoolCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "requestHandler", "request", "context", "output", "require_CognitoIdentity", "__commonJSMin", "exports", "CognitoIdentityClient_1", "CreateIdentityPoolCommand_1", "DeleteIdentitiesCommand_1", "DeleteIdentityPoolCommand_1", "DescribeIdentityCommand_1", "DescribeIdentityPoolCommand_1", "GetCredentialsForIdentityCommand_1", "GetIdCommand_1", "GetIdentityPoolRolesCommand_1", "GetOpenIdTokenCommand_1", "GetOpenIdTokenForDeveloperIdentityCommand_1", "GetPrincipalTagAttributeMapCommand_1", "ListIdentitiesCommand_1", "ListIdentityPoolsCommand_1", "ListTagsForResourceCommand_1", "LookupDeveloperIdentityCommand_1", "MergeDeveloperIdentitiesCommand_1", "SetIdentityPoolRolesCommand_1", "SetPrincipalTagAttributeMapCommand_1", "TagResourceCommand_1", "UnlinkDeveloperIdentityCommand_1", "UnlinkIdentityCommand_1", "UntagResourceCommand_1", "UpdateIdentityPoolCommand_1", "CognitoIdentity", "args", "optionsOrCb", "cb", "command", "require_commands", "__commonJSMin", "exports", "tslib_1", "require_models", "__commonJSMin", "exports", "tslib_1", "require_Interfaces", "__commonJSMin", "exports", "require_ListIdentityPoolsPaginator", "__commonJSMin", "exports", "CognitoIdentity_1", "CognitoIdentityClient_1", "ListIdentityPoolsCommand_1", "makePagedClientRequest", "client", "input", "args", "makePagedRequest", "paginateListIdentityPools", "config", "additionalArguments", "token", "hasNext", "page", "prevToken", "require_pagination", "__commonJSMin", "exports", "tslib_1", "require_dist_cjs", "__commonJSMin", "exports", "tslib_1", "CognitoIdentityServiceException_1", "require_CognitoProviderParameters", "__commonJSMin", "exports", "require_Logins", "__commonJSMin", "exports", "require_Storage", "__commonJSMin", "exports", "require_resolveLogins", "__commonJSMin", "exports", "resolveLogins", "logins", "arr", "name", "tokenOrProvider", "token", "resolvedPairs", "key", "value", "require_fromCognitoIdentity", "__commonJSMin", "exports", "client_cognito_identity_1", "property_provider_1", "resolveLogins_1", "fromCognitoIdentity", "parameters", "AccessKeyId", "throwOnMissingAccessKeyId", "Expiration", "SecretKey", "throwOnMissingSecretKey", "SessionToken", "throwOnMissingCredentials", "require_IndexedDbStorage", "__commonJSMin", "exports", "STORE_NAME", "IndexedDbStorage", "dbName", "key", "store", "req", "resolve", "reject", "id", "value", "openDbRequest", "db", "mode", "action", "tx", "err", "require_InMemoryStorage", "__commonJSMin", "exports", "InMemoryStorage", "store", "key", "value", "require_localStorage", "__commonJSMin", "exports", "IndexedDbStorage_1", "InMemoryStorage_1", "inMemoryStorage", "localStorage", "require_fromCognitoIdentityPool", "__commonJSMin", "exports", "client_cognito_identity_1", "property_provider_1", "fromCognitoIdentity_1", "localStorage_1", "resolveLogins_1", "fromCognitoIdentityPool", "accountId", "cache", "client", "customRoleArn", "identityPoolId", "logins", "userIdentifier", "cacheKey", "provider", "identityId", "IdentityId", "throwOnMissingId", "err", "require_dist_cjs", "__commonJSMin", "exports", "tslib_1", "require_fromCognitoIdentity", "__commonJSMin", "exports", "client_cognito_identity_1", "credential_provider_cognito_identity_1", "fromCognitoIdentity", "options", "_a", "require_fromCognitoIdentityPool", "__commonJSMin", "exports", "client_cognito_identity_1", "credential_provider_cognito_identity_1", "fromCognitoIdentityPool", "options", "_a", "require_fromContainerMetadata", "__commonJSMin", "exports", "credential_provider_imds_1", "fromContainerMetadata", "init", "require_fromEnv", "__commonJSMin", "exports", "credential_provider_env_1", "fromEnv", "require_fromIni", "__commonJSMin", "exports", "client_sts_1", "credential_provider_ini_1", "fromIni", "init", "_a", "_b", "require_fromInstanceMetadata", "__commonJSMin", "exports", "credential_provider_imds_1", "fromInstanceMetadata", "init", "require_fromNodeProviderChain", "__commonJSMin", "exports", "client_sts_1", "credential_provider_node_1", "fromNodeProviderChain", "init", "_a", "_b", "require_fromProcess", "__commonJSMin", "exports", "credential_provider_process_1", "fromProcess", "init", "require_fromSSO", "__commonJSMin", "exports", "client_sso_1", "credential_provider_sso_1", "fromSSO", "init", "require_fromTemporaryCredentials", "__commonJSMin", "exports", "client_sts_1", "property_provider_1", "fromTemporaryCredentials", "options", "stsClient", "_a", "params", "plugin", "Credentials", "require_fromTokenFile", "__commonJSMin", "exports", "client_sts_1", "credential_provider_web_identity_1", "fromTokenFile", "init", "_a", "require_fromWebToken", "__commonJSMin", "exports", "client_sts_1", "credential_provider_web_identity_1", "fromWebToken", "init", "_a", "require_dist_cjs", "__commonJSMin", "exports", "tslib_1", "require_SecretsManagerServiceException", "__commonJSMin", "exports", "smithy_client_1", "SecretsManagerServiceException", "options", "require_models_0", "__commonJSMin", "exports", "smithy_client_1", "SecretsManagerServiceException_1", "InternalServiceError", "opts", "InvalidParameterException", "InvalidRequestException", "ResourceNotFoundException", "StatusType", "DecryptionFailure", "EncryptionFailure", "LimitExceededException", "MalformedPolicyDocumentException", "PreconditionNotMetException", "ResourceExistsException", "FilterNameStringType", "InvalidNextTokenException", "SortOrderType", "PublicPolicyException", "ReplicaRegionTypeFilterSensitiveLog", "obj", "CancelRotateSecretRequestFilterSensitiveLog", "CancelRotateSecretResponseFilterSensitiveLog", "TagFilterSensitiveLog", "CreateSecretRequestFilterSensitiveLog", "ReplicationStatusTypeFilterSensitiveLog", "CreateSecretResponseFilterSensitiveLog", "DeleteResourcePolicyRequestFilterSensitiveLog", "DeleteResourcePolicyResponseFilterSensitiveLog", "DeleteSecretRequestFilterSensitiveLog", "DeleteSecretResponseFilterSensitiveLog", "DescribeSecretRequestFilterSensitiveLog", "RotationRulesTypeFilterSensitiveLog", "DescribeSecretResponseFilterSensitiveLog", "FilterFilterSensitiveLog", "GetRandomPasswordRequestFilterSensitiveLog", "GetRandomPasswordResponseFilterSensitiveLog", "GetResourcePolicyRequestFilterSensitiveLog", "GetResourcePolicyResponseFilterSensitiveLog", "GetSecretValueRequestFilterSensitiveLog", "GetSecretValueResponseFilterSensitiveLog", "ListSecretsRequestFilterSensitiveLog", "SecretListEntryFilterSensitiveLog", "ListSecretsResponseFilterSensitiveLog", "ListSecretVersionIdsRequestFilterSensitiveLog", "SecretVersionsListEntryFilterSensitiveLog", "ListSecretVersionIdsResponseFilterSensitiveLog", "PutResourcePolicyRequestFilterSensitiveLog", "PutResourcePolicyResponseFilterSensitiveLog", "PutSecretValueRequestFilterSensitiveLog", "PutSecretValueResponseFilterSensitiveLog", "RemoveRegionsFromReplicationRequestFilterSensitiveLog", "RemoveRegionsFromReplicationResponseFilterSensitiveLog", "ReplicateSecretToRegionsRequestFilterSensitiveLog", "ReplicateSecretToRegionsResponseFilterSensitiveLog", "RestoreSecretRequestFilterSensitiveLog", "RestoreSecretResponseFilterSensitiveLog", "RotateSecretRequestFilterSensitiveLog", "RotateSecretResponseFilterSensitiveLog", "StopReplicationToReplicaRequestFilterSensitiveLog", "StopReplicationToReplicaResponseFilterSensitiveLog", "TagResourceRequestFilterSensitiveLog", "UntagResourceRequestFilterSensitiveLog", "UpdateSecretRequestFilterSensitiveLog", "UpdateSecretResponseFilterSensitiveLog", "UpdateSecretVersionStageRequestFilterSensitiveLog", "UpdateSecretVersionStageResponseFilterSensitiveLog", "ValidateResourcePolicyRequestFilterSensitiveLog", "ValidationErrorsEntryFilterSensitiveLog", "ValidateResourcePolicyResponseFilterSensitiveLog", "require_Aws_json1_1", "__commonJSMin", "exports", "protocol_http_1", "smithy_client_1", "uuid_1", "models_0_1", "SecretsManagerServiceException_1", "serializeAws_json1_1CancelRotateSecretCommand", "input", "context", "headers", "body", "serializeAws_json1_1CancelRotateSecretRequest", "buildHttpRpcRequest", "serializeAws_json1_1CreateSecretCommand", "serializeAws_json1_1CreateSecretRequest", "serializeAws_json1_1DeleteResourcePolicyCommand", "serializeAws_json1_1DeleteResourcePolicyRequest", "serializeAws_json1_1DeleteSecretCommand", "serializeAws_json1_1DeleteSecretRequest", "serializeAws_json1_1DescribeSecretCommand", "serializeAws_json1_1DescribeSecretRequest", "serializeAws_json1_1GetRandomPasswordCommand", "serializeAws_json1_1GetRandomPasswordRequest", "serializeAws_json1_1GetResourcePolicyCommand", "serializeAws_json1_1GetResourcePolicyRequest", "serializeAws_json1_1GetSecretValueCommand", "serializeAws_json1_1GetSecretValueRequest", "serializeAws_json1_1ListSecretsCommand", "serializeAws_json1_1ListSecretsRequest", "serializeAws_json1_1ListSecretVersionIdsCommand", "serializeAws_json1_1ListSecretVersionIdsRequest", "serializeAws_json1_1PutResourcePolicyCommand", "serializeAws_json1_1PutResourcePolicyRequest", "serializeAws_json1_1PutSecretValueCommand", "serializeAws_json1_1PutSecretValueRequest", "serializeAws_json1_1RemoveRegionsFromReplicationCommand", "serializeAws_json1_1RemoveRegionsFromReplicationRequest", "serializeAws_json1_1ReplicateSecretToRegionsCommand", "serializeAws_json1_1ReplicateSecretToRegionsRequest", "serializeAws_json1_1RestoreSecretCommand", "serializeAws_json1_1RestoreSecretRequest", "serializeAws_json1_1RotateSecretCommand", "serializeAws_json1_1RotateSecretRequest", "serializeAws_json1_1StopReplicationToReplicaCommand", "serializeAws_json1_1StopReplicationToReplicaRequest", "serializeAws_json1_1TagResourceCommand", "serializeAws_json1_1TagResourceRequest", "serializeAws_json1_1UntagResourceCommand", "serializeAws_json1_1UntagResourceRequest", "serializeAws_json1_1UpdateSecretCommand", "serializeAws_json1_1UpdateSecretRequest", "serializeAws_json1_1UpdateSecretVersionStageCommand", "serializeAws_json1_1UpdateSecretVersionStageRequest", "serializeAws_json1_1ValidateResourcePolicyCommand", "serializeAws_json1_1ValidateResourcePolicyRequest", "deserializeAws_json1_1CancelRotateSecretCommand", "output", "deserializeAws_json1_1CancelRotateSecretCommandError", "data", "parseBody", "contents", "deserializeAws_json1_1CancelRotateSecretResponse", "response", "deserializeMetadata", "parsedOutput", "parseErrorBody", "errorCode", "loadRestJsonErrorCode", "deserializeAws_json1_1InternalServiceErrorResponse", "deserializeAws_json1_1InvalidParameterExceptionResponse", "deserializeAws_json1_1InvalidRequestExceptionResponse", "deserializeAws_json1_1ResourceNotFoundExceptionResponse", "parsedBody", "deserializeAws_json1_1CreateSecretCommand", "deserializeAws_json1_1CreateSecretCommandError", "deserializeAws_json1_1CreateSecretResponse", "deserializeAws_json1_1DecryptionFailureResponse", "deserializeAws_json1_1EncryptionFailureResponse", "deserializeAws_json1_1LimitExceededExceptionResponse", "deserializeAws_json1_1MalformedPolicyDocumentExceptionResponse", "deserializeAws_json1_1PreconditionNotMetExceptionResponse", "deserializeAws_json1_1ResourceExistsExceptionResponse", "deserializeAws_json1_1DeleteResourcePolicyCommand", "deserializeAws_json1_1DeleteResourcePolicyCommandError", "deserializeAws_json1_1DeleteResourcePolicyResponse", "deserializeAws_json1_1DeleteSecretCommand", "deserializeAws_json1_1DeleteSecretCommandError", "deserializeAws_json1_1DeleteSecretResponse", "deserializeAws_json1_1DescribeSecretCommand", "deserializeAws_json1_1DescribeSecretCommandError", "deserializeAws_json1_1DescribeSecretResponse", "deserializeAws_json1_1GetRandomPasswordCommand", "deserializeAws_json1_1GetRandomPasswordCommandError", "deserializeAws_json1_1GetRandomPasswordResponse", "deserializeAws_json1_1GetResourcePolicyCommand", "deserializeAws_json1_1GetResourcePolicyCommandError", "deserializeAws_json1_1GetResourcePolicyResponse", "deserializeAws_json1_1GetSecretValueCommand", "deserializeAws_json1_1GetSecretValueCommandError", "deserializeAws_json1_1GetSecretValueResponse", "deserializeAws_json1_1ListSecretsCommand", "deserializeAws_json1_1ListSecretsCommandError", "deserializeAws_json1_1ListSecretsResponse", "deserializeAws_json1_1InvalidNextTokenExceptionResponse", "deserializeAws_json1_1ListSecretVersionIdsCommand", "deserializeAws_json1_1ListSecretVersionIdsCommandError", "deserializeAws_json1_1ListSecretVersionIdsResponse", "deserializeAws_json1_1PutResourcePolicyCommand", "deserializeAws_json1_1PutResourcePolicyCommandError", "deserializeAws_json1_1PutResourcePolicyResponse", "deserializeAws_json1_1PublicPolicyExceptionResponse", "deserializeAws_json1_1PutSecretValueCommand", "deserializeAws_json1_1PutSecretValueCommandError", "deserializeAws_json1_1PutSecretValueResponse", "deserializeAws_json1_1RemoveRegionsFromReplicationCommand", "deserializeAws_json1_1RemoveRegionsFromReplicationCommandError", "deserializeAws_json1_1RemoveRegionsFromReplicationResponse", "deserializeAws_json1_1ReplicateSecretToRegionsCommand", "deserializeAws_json1_1ReplicateSecretToRegionsCommandError", "deserializeAws_json1_1ReplicateSecretToRegionsResponse", "deserializeAws_json1_1RestoreSecretCommand", "deserializeAws_json1_1RestoreSecretCommandError", "deserializeAws_json1_1RestoreSecretResponse", "deserializeAws_json1_1RotateSecretCommand", "deserializeAws_json1_1RotateSecretCommandError", "deserializeAws_json1_1RotateSecretResponse", "deserializeAws_json1_1StopReplicationToReplicaCommand", "deserializeAws_json1_1StopReplicationToReplicaCommandError", "deserializeAws_json1_1StopReplicationToReplicaResponse", "deserializeAws_json1_1TagResourceCommand", "deserializeAws_json1_1TagResourceCommandError", "collectBody", "deserializeAws_json1_1UntagResourceCommand", "deserializeAws_json1_1UntagResourceCommandError", "deserializeAws_json1_1UpdateSecretCommand", "deserializeAws_json1_1UpdateSecretCommandError", "deserializeAws_json1_1UpdateSecretResponse", "deserializeAws_json1_1UpdateSecretVersionStageCommand", "deserializeAws_json1_1UpdateSecretVersionStageCommandError", "deserializeAws_json1_1UpdateSecretVersionStageResponse", "deserializeAws_json1_1ValidateResourcePolicyCommand", "deserializeAws_json1_1ValidateResourcePolicyCommandError", "deserializeAws_json1_1ValidateResourcePolicyResponse", "deserialized", "deserializeAws_json1_1DecryptionFailure", "exception", "deserializeAws_json1_1EncryptionFailure", "deserializeAws_json1_1InternalServiceError", "deserializeAws_json1_1InvalidNextTokenException", "deserializeAws_json1_1InvalidParameterException", "deserializeAws_json1_1InvalidRequestException", "deserializeAws_json1_1LimitExceededException", "deserializeAws_json1_1MalformedPolicyDocumentException", "deserializeAws_json1_1PreconditionNotMetException", "deserializeAws_json1_1PublicPolicyException", "deserializeAws_json1_1ResourceExistsException", "deserializeAws_json1_1ResourceNotFoundException", "serializeAws_json1_1AddReplicaRegionListType", "e", "entry", "serializeAws_json1_1ReplicaRegionType", "serializeAws_json1_1TagListType", "serializeAws_json1_1Filter", "serializeAws_json1_1FilterValuesStringList", "serializeAws_json1_1FiltersListType", "serializeAws_json1_1SecretVersionStagesType", "serializeAws_json1_1RemoveReplicaRegionListType", "serializeAws_json1_1RotationRulesType", "serializeAws_json1_1Tag", "serializeAws_json1_1TagKeyListType", "deserializeAws_json1_1ReplicationStatusListType", "deserializeAws_json1_1RotationRulesType", "deserializeAws_json1_1TagListType", "deserializeAws_json1_1SecretVersionsToStagesMapType", "deserializeAws_json1_1SecretVersionStagesType", "deserializeAws_json1_1KmsKeyIdListType", "deserializeAws_json1_1SecretListType", "deserializeAws_json1_1SecretVersionsListType", "deserializeAws_json1_1ReplicationStatusType", "deserializeAws_json1_1SecretListEntry", "deserializeAws_json1_1SecretVersionsListEntry", "acc", "key", "value", "deserializeAws_json1_1Tag", "deserializeAws_json1_1ValidationErrorsType", "deserializeAws_json1_1ValidationErrorsEntry", "streamBody", "collectBodyString", "path", "resolvedHostname", "hostname", "protocol", "port", "basePath", "encoded", "errorBody", "findKey", "object", "k", "sanitizeErrorCode", "rawValue", "cleanValue", "headerKey", "require_CancelRotateSecretCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_serde_1", "smithy_client_1", "models_0_1", "Aws_json1_1_1", "CancelRotateSecretCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "requestHandler", "request", "context", "output", "require_CreateSecretCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_serde_1", "smithy_client_1", "models_0_1", "Aws_json1_1_1", "CreateSecretCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "requestHandler", "request", "context", "output", "require_DeleteResourcePolicyCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_serde_1", "smithy_client_1", "models_0_1", "Aws_json1_1_1", "DeleteResourcePolicyCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "requestHandler", "request", "context", "output", "require_DeleteSecretCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_serde_1", "smithy_client_1", "models_0_1", "Aws_json1_1_1", "DeleteSecretCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "requestHandler", "request", "context", "output", "require_DescribeSecretCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_serde_1", "smithy_client_1", "models_0_1", "Aws_json1_1_1", "DescribeSecretCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "requestHandler", "request", "context", "output", "require_GetRandomPasswordCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_serde_1", "smithy_client_1", "models_0_1", "Aws_json1_1_1", "GetRandomPasswordCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "requestHandler", "request", "context", "output", "require_GetResourcePolicyCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_serde_1", "smithy_client_1", "models_0_1", "Aws_json1_1_1", "GetResourcePolicyCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "requestHandler", "request", "context", "output", "require_GetSecretValueCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_serde_1", "smithy_client_1", "models_0_1", "Aws_json1_1_1", "GetSecretValueCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "requestHandler", "request", "context", "output", "require_ListSecretsCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_serde_1", "smithy_client_1", "models_0_1", "Aws_json1_1_1", "ListSecretsCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "requestHandler", "request", "context", "output", "require_ListSecretVersionIdsCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_serde_1", "smithy_client_1", "models_0_1", "Aws_json1_1_1", "ListSecretVersionIdsCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "requestHandler", "request", "context", "output", "require_PutResourcePolicyCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_serde_1", "smithy_client_1", "models_0_1", "Aws_json1_1_1", "PutResourcePolicyCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "requestHandler", "request", "context", "output", "require_PutSecretValueCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_serde_1", "smithy_client_1", "models_0_1", "Aws_json1_1_1", "PutSecretValueCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "requestHandler", "request", "context", "output", "require_RemoveRegionsFromReplicationCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_serde_1", "smithy_client_1", "models_0_1", "Aws_json1_1_1", "RemoveRegionsFromReplicationCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "requestHandler", "request", "context", "output", "require_ReplicateSecretToRegionsCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_serde_1", "smithy_client_1", "models_0_1", "Aws_json1_1_1", "ReplicateSecretToRegionsCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "requestHandler", "request", "context", "output", "require_RestoreSecretCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_serde_1", "smithy_client_1", "models_0_1", "Aws_json1_1_1", "RestoreSecretCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "requestHandler", "request", "context", "output", "require_RotateSecretCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_serde_1", "smithy_client_1", "models_0_1", "Aws_json1_1_1", "RotateSecretCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "requestHandler", "request", "context", "output", "require_StopReplicationToReplicaCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_serde_1", "smithy_client_1", "models_0_1", "Aws_json1_1_1", "StopReplicationToReplicaCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "requestHandler", "request", "context", "output", "require_TagResourceCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_serde_1", "smithy_client_1", "models_0_1", "Aws_json1_1_1", "TagResourceCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "output", "requestHandler", "request", "context", "require_UntagResourceCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_serde_1", "smithy_client_1", "models_0_1", "Aws_json1_1_1", "UntagResourceCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "output", "requestHandler", "request", "context", "require_UpdateSecretCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_serde_1", "smithy_client_1", "models_0_1", "Aws_json1_1_1", "UpdateSecretCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "requestHandler", "request", "context", "output", "require_UpdateSecretVersionStageCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_serde_1", "smithy_client_1", "models_0_1", "Aws_json1_1_1", "UpdateSecretVersionStageCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "requestHandler", "request", "context", "output", "require_ValidateResourcePolicyCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_serde_1", "smithy_client_1", "models_0_1", "Aws_json1_1_1", "ValidateResourcePolicyCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "requestHandler", "request", "context", "output", "require_EndpointParameters", "__commonJSMin", "exports", "resolveClientEndpointParameters", "options", "require_ruleset", "__commonJSMin", "exports", "q", "r", "s", "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "_data", "require_endpointResolver", "__commonJSMin", "exports", "util_endpoints_1", "ruleset_1", "defaultEndpointResolver", "endpointParams", "context", "require_runtimeConfig_shared", "__commonJSMin", "exports", "smithy_client_1", "url_parser_1", "util_base64_1", "util_utf8_1", "endpointResolver_1", "getRuntimeConfig", "config", "require_runtimeConfig", "__commonJSMin", "exports", "tslib_1", "package_json_1", "client_sts_1", "config_resolver_1", "credential_provider_node_1", "hash_node_1", "middleware_retry_1", "node_config_provider_1", "node_http_handler_1", "util_body_length_node_1", "util_retry_1", "util_user_agent_node_1", "runtimeConfig_shared_1", "smithy_client_1", "util_defaults_mode_node_1", "smithy_client_2", "getRuntimeConfig", "config", "defaultsMode", "defaultConfigProvider", "clientSharedValues", "require_SecretsManagerClient", "__commonJSMin", "exports", "config_resolver_1", "middleware_content_length_1", "middleware_endpoint_1", "middleware_host_header_1", "middleware_logger_1", "middleware_recursion_detection_1", "middleware_retry_1", "middleware_signing_1", "middleware_user_agent_1", "smithy_client_1", "EndpointParameters_1", "runtimeConfig_1", "SecretsManagerClient", "configuration", "_config_0", "_config_1", "_config_2", "_config_3", "_config_4", "_config_5", "_config_6", "_config_7", "require_SecretsManager", "__commonJSMin", "exports", "CancelRotateSecretCommand_1", "CreateSecretCommand_1", "DeleteResourcePolicyCommand_1", "DeleteSecretCommand_1", "DescribeSecretCommand_1", "GetRandomPasswordCommand_1", "GetResourcePolicyCommand_1", "GetSecretValueCommand_1", "ListSecretsCommand_1", "ListSecretVersionIdsCommand_1", "PutResourcePolicyCommand_1", "PutSecretValueCommand_1", "RemoveRegionsFromReplicationCommand_1", "ReplicateSecretToRegionsCommand_1", "RestoreSecretCommand_1", "RotateSecretCommand_1", "StopReplicationToReplicaCommand_1", "TagResourceCommand_1", "UntagResourceCommand_1", "UpdateSecretCommand_1", "UpdateSecretVersionStageCommand_1", "ValidateResourcePolicyCommand_1", "SecretsManagerClient_1", "SecretsManager", "args", "optionsOrCb", "cb", "command", "require_commands", "__commonJSMin", "exports", "tslib_1", "require_models", "__commonJSMin", "exports", "tslib_1", "require_Interfaces", "__commonJSMin", "exports", "require_ListSecretVersionIdsPaginator", "__commonJSMin", "exports", "ListSecretVersionIdsCommand_1", "SecretsManager_1", "SecretsManagerClient_1", "makePagedClientRequest", "client", "input", "args", "makePagedRequest", "paginateListSecretVersionIds", "config", "additionalArguments", "token", "hasNext", "page", "prevToken", "require_ListSecretsPaginator", "__commonJSMin", "exports", "ListSecretsCommand_1", "SecretsManager_1", "SecretsManagerClient_1", "makePagedClientRequest", "client", "input", "args", "makePagedRequest", "paginateListSecrets", "config", "additionalArguments", "token", "hasNext", "page", "prevToken", "require_pagination", "__commonJSMin", "exports", "tslib_1", "require_dist_cjs", "__commonJSMin", "exports", "tslib_1", "SecretsManagerServiceException_1", "require_S3ServiceException", "__commonJSMin", "exports", "smithy_client_1", "S3ServiceException", "options", "require_models_0", "__commonJSMin", "exports", "smithy_client_1", "S3ServiceException_1", "RequestCharged", "RequestPayer", "NoSuchUpload", "opts", "BucketAccelerateStatus", "Type", "Permission", "OwnerOverride", "ServerSideEncryption", "ObjectCannedACL", "ChecksumAlgorithm", "MetadataDirective", "ObjectLockLegalHoldStatus", "ObjectLockMode", "StorageClass", "TaggingDirective", "ObjectNotInActiveTierError", "BucketAlreadyExists", "BucketAlreadyOwnedByYou", "BucketCannedACL", "BucketLocationConstraint", "ObjectOwnership", "AnalyticsFilter", "value", "visitor", "AnalyticsS3ExportFileFormat", "StorageClassAnalysisSchemaVersion", "IntelligentTieringStatus", "IntelligentTieringAccessTier", "InventoryFormat", "InventoryIncludedObjectVersions", "InventoryOptionalField", "InventoryFrequency", "LifecycleRuleFilter", "TransitionStorageClass", "ExpirationStatus", "BucketLogsPermission", "MetricsFilter", "FilterRuleName", "DeleteMarkerReplicationStatus", "MetricsStatus", "ReplicationTimeStatus", "ExistingObjectReplicationStatus", "ReplicationRuleFilter", "ReplicaModificationsStatus", "SseKmsEncryptedObjectsStatus", "ReplicationRuleStatus", "Payer", "MFADeleteStatus", "BucketVersioningStatus", "Protocol", "ReplicationStatus", "ChecksumMode", "InvalidObjectState", "NoSuchKey", "ObjectAttributes", "ObjectLockEnabled", "ObjectLockRetentionMode", "NotFound", "ArchiveStatus", "EncodingType", "ObjectStorageClass", "NoSuchBucket", "ObjectVersionStorageClass", "MFADelete", "AbortIncompleteMultipartUploadFilterSensitiveLog", "obj", "AbortMultipartUploadOutputFilterSensitiveLog", "AbortMultipartUploadRequestFilterSensitiveLog", "AccelerateConfigurationFilterSensitiveLog", "GranteeFilterSensitiveLog", "GrantFilterSensitiveLog", "OwnerFilterSensitiveLog", "AccessControlPolicyFilterSensitiveLog", "AccessControlTranslationFilterSensitiveLog", "CompleteMultipartUploadOutputFilterSensitiveLog", "CompletedPartFilterSensitiveLog", "CompletedMultipartUploadFilterSensitiveLog", "CompleteMultipartUploadRequestFilterSensitiveLog", "CopyObjectResultFilterSensitiveLog", "CopyObjectOutputFilterSensitiveLog", "CopyObjectRequestFilterSensitiveLog", "CreateBucketOutputFilterSensitiveLog", "CreateBucketConfigurationFilterSensitiveLog", "CreateBucketRequestFilterSensitiveLog", "CreateMultipartUploadOutputFilterSensitiveLog", "CreateMultipartUploadRequestFilterSensitiveLog", "DeleteBucketRequestFilterSensitiveLog", "DeleteBucketAnalyticsConfigurationRequestFilterSensitiveLog", "DeleteBucketCorsRequestFilterSensitiveLog", "DeleteBucketEncryptionRequestFilterSensitiveLog", "DeleteBucketIntelligentTieringConfigurationRequestFilterSensitiveLog", "DeleteBucketInventoryConfigurationRequestFilterSensitiveLog", "DeleteBucketLifecycleRequestFilterSensitiveLog", "DeleteBucketMetricsConfigurationRequestFilterSensitiveLog", "DeleteBucketOwnershipControlsRequestFilterSensitiveLog", "DeleteBucketPolicyRequestFilterSensitiveLog", "DeleteBucketReplicationRequestFilterSensitiveLog", "DeleteBucketTaggingRequestFilterSensitiveLog", "DeleteBucketWebsiteRequestFilterSensitiveLog", "DeleteObjectOutputFilterSensitiveLog", "DeleteObjectRequestFilterSensitiveLog", "DeletedObjectFilterSensitiveLog", "_ErrorFilterSensitiveLog", "DeleteObjectsOutputFilterSensitiveLog", "ObjectIdentifierFilterSensitiveLog", "DeleteFilterSensitiveLog", "DeleteObjectsRequestFilterSensitiveLog", "DeleteObjectTaggingOutputFilterSensitiveLog", "DeleteObjectTaggingRequestFilterSensitiveLog", "DeletePublicAccessBlockRequestFilterSensitiveLog", "GetBucketAccelerateConfigurationOutputFilterSensitiveLog", "GetBucketAccelerateConfigurationRequestFilterSensitiveLog", "GetBucketAclOutputFilterSensitiveLog", "GetBucketAclRequestFilterSensitiveLog", "TagFilterSensitiveLog", "AnalyticsAndOperatorFilterSensitiveLog", "AnalyticsFilterFilterSensitiveLog", "AnalyticsS3BucketDestinationFilterSensitiveLog", "AnalyticsExportDestinationFilterSensitiveLog", "StorageClassAnalysisDataExportFilterSensitiveLog", "StorageClassAnalysisFilterSensitiveLog", "AnalyticsConfigurationFilterSensitiveLog", "GetBucketAnalyticsConfigurationOutputFilterSensitiveLog", "GetBucketAnalyticsConfigurationRequestFilterSensitiveLog", "CORSRuleFilterSensitiveLog", "GetBucketCorsOutputFilterSensitiveLog", "GetBucketCorsRequestFilterSensitiveLog", "ServerSideEncryptionByDefaultFilterSensitiveLog", "ServerSideEncryptionRuleFilterSensitiveLog", "ServerSideEncryptionConfigurationFilterSensitiveLog", "item", "GetBucketEncryptionOutputFilterSensitiveLog", "GetBucketEncryptionRequestFilterSensitiveLog", "IntelligentTieringAndOperatorFilterSensitiveLog", "IntelligentTieringFilterFilterSensitiveLog", "TieringFilterSensitiveLog", "IntelligentTieringConfigurationFilterSensitiveLog", "GetBucketIntelligentTieringConfigurationOutputFilterSensitiveLog", "GetBucketIntelligentTieringConfigurationRequestFilterSensitiveLog", "SSEKMSFilterSensitiveLog", "SSES3FilterSensitiveLog", "InventoryEncryptionFilterSensitiveLog", "InventoryS3BucketDestinationFilterSensitiveLog", "InventoryDestinationFilterSensitiveLog", "InventoryFilterFilterSensitiveLog", "InventoryScheduleFilterSensitiveLog", "InventoryConfigurationFilterSensitiveLog", "GetBucketInventoryConfigurationOutputFilterSensitiveLog", "GetBucketInventoryConfigurationRequestFilterSensitiveLog", "LifecycleExpirationFilterSensitiveLog", "LifecycleRuleAndOperatorFilterSensitiveLog", "LifecycleRuleFilterFilterSensitiveLog", "NoncurrentVersionExpirationFilterSensitiveLog", "NoncurrentVersionTransitionFilterSensitiveLog", "TransitionFilterSensitiveLog", "LifecycleRuleFilterSensitiveLog", "GetBucketLifecycleConfigurationOutputFilterSensitiveLog", "GetBucketLifecycleConfigurationRequestFilterSensitiveLog", "GetBucketLocationOutputFilterSensitiveLog", "GetBucketLocationRequestFilterSensitiveLog", "TargetGrantFilterSensitiveLog", "LoggingEnabledFilterSensitiveLog", "GetBucketLoggingOutputFilterSensitiveLog", "GetBucketLoggingRequestFilterSensitiveLog", "MetricsAndOperatorFilterSensitiveLog", "MetricsFilterFilterSensitiveLog", "MetricsConfigurationFilterSensitiveLog", "GetBucketMetricsConfigurationOutputFilterSensitiveLog", "GetBucketMetricsConfigurationRequestFilterSensitiveLog", "GetBucketNotificationConfigurationRequestFilterSensitiveLog", "EventBridgeConfigurationFilterSensitiveLog", "FilterRuleFilterSensitiveLog", "S3KeyFilterFilterSensitiveLog", "NotificationConfigurationFilterFilterSensitiveLog", "LambdaFunctionConfigurationFilterSensitiveLog", "QueueConfigurationFilterSensitiveLog", "TopicConfigurationFilterSensitiveLog", "NotificationConfigurationFilterSensitiveLog", "OwnershipControlsRuleFilterSensitiveLog", "OwnershipControlsFilterSensitiveLog", "GetBucketOwnershipControlsOutputFilterSensitiveLog", "GetBucketOwnershipControlsRequestFilterSensitiveLog", "GetBucketPolicyOutputFilterSensitiveLog", "GetBucketPolicyRequestFilterSensitiveLog", "PolicyStatusFilterSensitiveLog", "GetBucketPolicyStatusOutputFilterSensitiveLog", "GetBucketPolicyStatusRequestFilterSensitiveLog", "DeleteMarkerReplicationFilterSensitiveLog", "EncryptionConfigurationFilterSensitiveLog", "ReplicationTimeValueFilterSensitiveLog", "MetricsFilterSensitiveLog", "ReplicationTimeFilterSensitiveLog", "DestinationFilterSensitiveLog", "ExistingObjectReplicationFilterSensitiveLog", "ReplicationRuleAndOperatorFilterSensitiveLog", "ReplicationRuleFilterFilterSensitiveLog", "ReplicaModificationsFilterSensitiveLog", "SseKmsEncryptedObjectsFilterSensitiveLog", "SourceSelectionCriteriaFilterSensitiveLog", "ReplicationRuleFilterSensitiveLog", "ReplicationConfigurationFilterSensitiveLog", "GetBucketReplicationOutputFilterSensitiveLog", "GetBucketReplicationRequestFilterSensitiveLog", "GetBucketRequestPaymentOutputFilterSensitiveLog", "GetBucketRequestPaymentRequestFilterSensitiveLog", "GetBucketTaggingOutputFilterSensitiveLog", "GetBucketTaggingRequestFilterSensitiveLog", "GetBucketVersioningOutputFilterSensitiveLog", "GetBucketVersioningRequestFilterSensitiveLog", "ErrorDocumentFilterSensitiveLog", "IndexDocumentFilterSensitiveLog", "RedirectAllRequestsToFilterSensitiveLog", "ConditionFilterSensitiveLog", "RedirectFilterSensitiveLog", "RoutingRuleFilterSensitiveLog", "GetBucketWebsiteOutputFilterSensitiveLog", "GetBucketWebsiteRequestFilterSensitiveLog", "GetObjectOutputFilterSensitiveLog", "GetObjectRequestFilterSensitiveLog", "GetObjectAclOutputFilterSensitiveLog", "GetObjectAclRequestFilterSensitiveLog", "ChecksumFilterSensitiveLog", "ObjectPartFilterSensitiveLog", "GetObjectAttributesPartsFilterSensitiveLog", "GetObjectAttributesOutputFilterSensitiveLog", "GetObjectAttributesRequestFilterSensitiveLog", "ObjectLockLegalHoldFilterSensitiveLog", "GetObjectLegalHoldOutputFilterSensitiveLog", "GetObjectLegalHoldRequestFilterSensitiveLog", "DefaultRetentionFilterSensitiveLog", "ObjectLockRuleFilterSensitiveLog", "ObjectLockConfigurationFilterSensitiveLog", "GetObjectLockConfigurationOutputFilterSensitiveLog", "GetObjectLockConfigurationRequestFilterSensitiveLog", "ObjectLockRetentionFilterSensitiveLog", "GetObjectRetentionOutputFilterSensitiveLog", "GetObjectRetentionRequestFilterSensitiveLog", "GetObjectTaggingOutputFilterSensitiveLog", "GetObjectTaggingRequestFilterSensitiveLog", "GetObjectTorrentOutputFilterSensitiveLog", "GetObjectTorrentRequestFilterSensitiveLog", "PublicAccessBlockConfigurationFilterSensitiveLog", "GetPublicAccessBlockOutputFilterSensitiveLog", "GetPublicAccessBlockRequestFilterSensitiveLog", "HeadBucketRequestFilterSensitiveLog", "HeadObjectOutputFilterSensitiveLog", "HeadObjectRequestFilterSensitiveLog", "ListBucketAnalyticsConfigurationsOutputFilterSensitiveLog", "ListBucketAnalyticsConfigurationsRequestFilterSensitiveLog", "ListBucketIntelligentTieringConfigurationsOutputFilterSensitiveLog", "ListBucketIntelligentTieringConfigurationsRequestFilterSensitiveLog", "ListBucketInventoryConfigurationsOutputFilterSensitiveLog", "ListBucketInventoryConfigurationsRequestFilterSensitiveLog", "ListBucketMetricsConfigurationsOutputFilterSensitiveLog", "ListBucketMetricsConfigurationsRequestFilterSensitiveLog", "BucketFilterSensitiveLog", "ListBucketsOutputFilterSensitiveLog", "CommonPrefixFilterSensitiveLog", "InitiatorFilterSensitiveLog", "MultipartUploadFilterSensitiveLog", "ListMultipartUploadsOutputFilterSensitiveLog", "ListMultipartUploadsRequestFilterSensitiveLog", "_ObjectFilterSensitiveLog", "ListObjectsOutputFilterSensitiveLog", "ListObjectsRequestFilterSensitiveLog", "ListObjectsV2OutputFilterSensitiveLog", "ListObjectsV2RequestFilterSensitiveLog", "DeleteMarkerEntryFilterSensitiveLog", "ObjectVersionFilterSensitiveLog", "ListObjectVersionsOutputFilterSensitiveLog", "ListObjectVersionsRequestFilterSensitiveLog", "PartFilterSensitiveLog", "ListPartsOutputFilterSensitiveLog", "ListPartsRequestFilterSensitiveLog", "PutBucketAccelerateConfigurationRequestFilterSensitiveLog", "PutBucketAclRequestFilterSensitiveLog", "PutBucketAnalyticsConfigurationRequestFilterSensitiveLog", "CORSConfigurationFilterSensitiveLog", "PutBucketCorsRequestFilterSensitiveLog", "PutBucketEncryptionRequestFilterSensitiveLog", "PutBucketIntelligentTieringConfigurationRequestFilterSensitiveLog", "PutBucketInventoryConfigurationRequestFilterSensitiveLog", "BucketLifecycleConfigurationFilterSensitiveLog", "PutBucketLifecycleConfigurationRequestFilterSensitiveLog", "BucketLoggingStatusFilterSensitiveLog", "PutBucketLoggingRequestFilterSensitiveLog", "PutBucketMetricsConfigurationRequestFilterSensitiveLog", "PutBucketNotificationConfigurationRequestFilterSensitiveLog", "PutBucketOwnershipControlsRequestFilterSensitiveLog", "PutBucketPolicyRequestFilterSensitiveLog", "PutBucketReplicationRequestFilterSensitiveLog", "RequestPaymentConfigurationFilterSensitiveLog", "PutBucketRequestPaymentRequestFilterSensitiveLog", "TaggingFilterSensitiveLog", "PutBucketTaggingRequestFilterSensitiveLog", "VersioningConfigurationFilterSensitiveLog", "PutBucketVersioningRequestFilterSensitiveLog", "WebsiteConfigurationFilterSensitiveLog", "PutBucketWebsiteRequestFilterSensitiveLog", "PutObjectOutputFilterSensitiveLog", "PutObjectRequestFilterSensitiveLog", "PutObjectAclOutputFilterSensitiveLog", "PutObjectAclRequestFilterSensitiveLog", "PutObjectLegalHoldOutputFilterSensitiveLog", "PutObjectLegalHoldRequestFilterSensitiveLog", "PutObjectLockConfigurationOutputFilterSensitiveLog", "PutObjectLockConfigurationRequestFilterSensitiveLog", "require_escape_attribute", "__commonJSMin", "exports", "escapeAttribute", "value", "require_escape_element", "__commonJSMin", "exports", "escapeElement", "value", "require_XmlText", "__commonJSMin", "exports", "escape_element_1", "XmlText", "value", "require_XmlNode", "__commonJSMin", "exports", "escape_attribute_1", "XmlText_1", "XmlNode", "name", "children", "childText", "withName", "node", "value", "child", "hasChildren", "xmlText", "attributes", "attributeName", "attribute", "c", "require_dist_cjs", "__commonJSMin", "exports", "tslib_1", "require_models_1", "__commonJSMin", "exports", "smithy_client_1", "S3ServiceException_1", "ObjectAlreadyInActiveTierError", "opts", "Tier", "ExpressionType", "CompressionType", "FileHeaderInfo", "JSONType", "QuoteFields", "RestoreRequestType", "SelectObjectContentEventStream", "value", "visitor", "PutObjectRetentionOutputFilterSensitiveLog", "obj", "PutObjectRetentionRequestFilterSensitiveLog", "PutObjectTaggingOutputFilterSensitiveLog", "PutObjectTaggingRequestFilterSensitiveLog", "PutPublicAccessBlockRequestFilterSensitiveLog", "RestoreObjectOutputFilterSensitiveLog", "GlacierJobParametersFilterSensitiveLog", "EncryptionFilterSensitiveLog", "MetadataEntryFilterSensitiveLog", "S3LocationFilterSensitiveLog", "OutputLocationFilterSensitiveLog", "CSVInputFilterSensitiveLog", "JSONInputFilterSensitiveLog", "ParquetInputFilterSensitiveLog", "InputSerializationFilterSensitiveLog", "CSVOutputFilterSensitiveLog", "JSONOutputFilterSensitiveLog", "OutputSerializationFilterSensitiveLog", "SelectParametersFilterSensitiveLog", "RestoreRequestFilterSensitiveLog", "RestoreObjectRequestFilterSensitiveLog", "ContinuationEventFilterSensitiveLog", "EndEventFilterSensitiveLog", "ProgressFilterSensitiveLog", "ProgressEventFilterSensitiveLog", "RecordsEventFilterSensitiveLog", "StatsFilterSensitiveLog", "StatsEventFilterSensitiveLog", "SelectObjectContentEventStreamFilterSensitiveLog", "SelectObjectContentOutputFilterSensitiveLog", "RequestProgressFilterSensitiveLog", "ScanRangeFilterSensitiveLog", "SelectObjectContentRequestFilterSensitiveLog", "UploadPartOutputFilterSensitiveLog", "UploadPartRequestFilterSensitiveLog", "CopyPartResultFilterSensitiveLog", "UploadPartCopyOutputFilterSensitiveLog", "UploadPartCopyRequestFilterSensitiveLog", "WriteGetObjectResponseRequestFilterSensitiveLog", "require_Aws_restXml", "__commonJSMin", "exports", "protocol_http_1", "smithy_client_1", "xml_builder_1", "fast_xml_parser_1", "models_0_1", "models_1_1", "S3ServiceException_1", "serializeAws_restXmlAbortMultipartUploadCommand", "input", "context", "hostname", "protocol", "port", "basePath", "headers", "map", "isSerializableHeaderValue", "resolvedPath", "query", "body", "serializeAws_restXmlCompleteMultipartUploadCommand", "serializeAws_restXmlCompletedMultipartUpload", "contents", "serializeAws_restXmlCopyObjectCommand", "acc", "suffix", "serializeAws_restXmlCreateBucketCommand", "serializeAws_restXmlCreateBucketConfiguration", "serializeAws_restXmlCreateMultipartUploadCommand", "serializeAws_restXmlDeleteBucketCommand", "serializeAws_restXmlDeleteBucketAnalyticsConfigurationCommand", "serializeAws_restXmlDeleteBucketCorsCommand", "serializeAws_restXmlDeleteBucketEncryptionCommand", "serializeAws_restXmlDeleteBucketIntelligentTieringConfigurationCommand", "serializeAws_restXmlDeleteBucketInventoryConfigurationCommand", "serializeAws_restXmlDeleteBucketLifecycleCommand", "serializeAws_restXmlDeleteBucketMetricsConfigurationCommand", "serializeAws_restXmlDeleteBucketOwnershipControlsCommand", "serializeAws_restXmlDeleteBucketPolicyCommand", "serializeAws_restXmlDeleteBucketReplicationCommand", "serializeAws_restXmlDeleteBucketTaggingCommand", "serializeAws_restXmlDeleteBucketWebsiteCommand", "serializeAws_restXmlDeleteObjectCommand", "serializeAws_restXmlDeleteObjectsCommand", "serializeAws_restXmlDelete", "serializeAws_restXmlDeleteObjectTaggingCommand", "serializeAws_restXmlDeletePublicAccessBlockCommand", "serializeAws_restXmlGetBucketAccelerateConfigurationCommand", "serializeAws_restXmlGetBucketAclCommand", "serializeAws_restXmlGetBucketAnalyticsConfigurationCommand", "serializeAws_restXmlGetBucketCorsCommand", "serializeAws_restXmlGetBucketEncryptionCommand", "serializeAws_restXmlGetBucketIntelligentTieringConfigurationCommand", "serializeAws_restXmlGetBucketInventoryConfigurationCommand", "serializeAws_restXmlGetBucketLifecycleConfigurationCommand", "serializeAws_restXmlGetBucketLocationCommand", "serializeAws_restXmlGetBucketLoggingCommand", "serializeAws_restXmlGetBucketMetricsConfigurationCommand", "serializeAws_restXmlGetBucketNotificationConfigurationCommand", "serializeAws_restXmlGetBucketOwnershipControlsCommand", "serializeAws_restXmlGetBucketPolicyCommand", "serializeAws_restXmlGetBucketPolicyStatusCommand", "serializeAws_restXmlGetBucketReplicationCommand", "serializeAws_restXmlGetBucketRequestPaymentCommand", "serializeAws_restXmlGetBucketTaggingCommand", "serializeAws_restXmlGetBucketVersioningCommand", "serializeAws_restXmlGetBucketWebsiteCommand", "serializeAws_restXmlGetObjectCommand", "serializeAws_restXmlGetObjectAclCommand", "serializeAws_restXmlGetObjectAttributesCommand", "_entry", "serializeAws_restXmlGetObjectLegalHoldCommand", "serializeAws_restXmlGetObjectLockConfigurationCommand", "serializeAws_restXmlGetObjectRetentionCommand", "serializeAws_restXmlGetObjectTaggingCommand", "serializeAws_restXmlGetObjectTorrentCommand", "serializeAws_restXmlGetPublicAccessBlockCommand", "serializeAws_restXmlHeadBucketCommand", "serializeAws_restXmlHeadObjectCommand", "serializeAws_restXmlListBucketAnalyticsConfigurationsCommand", "serializeAws_restXmlListBucketIntelligentTieringConfigurationsCommand", "serializeAws_restXmlListBucketInventoryConfigurationsCommand", "serializeAws_restXmlListBucketMetricsConfigurationsCommand", "serializeAws_restXmlListBucketsCommand", "serializeAws_restXmlListMultipartUploadsCommand", "serializeAws_restXmlListObjectsCommand", "serializeAws_restXmlListObjectsV2Command", "serializeAws_restXmlListObjectVersionsCommand", "serializeAws_restXmlListPartsCommand", "serializeAws_restXmlPutBucketAccelerateConfigurationCommand", "serializeAws_restXmlAccelerateConfiguration", "serializeAws_restXmlPutBucketAclCommand", "serializeAws_restXmlAccessControlPolicy", "serializeAws_restXmlPutBucketAnalyticsConfigurationCommand", "serializeAws_restXmlAnalyticsConfiguration", "serializeAws_restXmlPutBucketCorsCommand", "serializeAws_restXmlCORSConfiguration", "serializeAws_restXmlPutBucketEncryptionCommand", "serializeAws_restXmlServerSideEncryptionConfiguration", "serializeAws_restXmlPutBucketIntelligentTieringConfigurationCommand", "serializeAws_restXmlIntelligentTieringConfiguration", "serializeAws_restXmlPutBucketInventoryConfigurationCommand", "serializeAws_restXmlInventoryConfiguration", "serializeAws_restXmlPutBucketLifecycleConfigurationCommand", "serializeAws_restXmlBucketLifecycleConfiguration", "serializeAws_restXmlPutBucketLoggingCommand", "serializeAws_restXmlBucketLoggingStatus", "serializeAws_restXmlPutBucketMetricsConfigurationCommand", "serializeAws_restXmlMetricsConfiguration", "serializeAws_restXmlPutBucketNotificationConfigurationCommand", "serializeAws_restXmlNotificationConfiguration", "serializeAws_restXmlPutBucketOwnershipControlsCommand", "serializeAws_restXmlOwnershipControls", "serializeAws_restXmlPutBucketPolicyCommand", "serializeAws_restXmlPutBucketReplicationCommand", "serializeAws_restXmlReplicationConfiguration", "serializeAws_restXmlPutBucketRequestPaymentCommand", "serializeAws_restXmlRequestPaymentConfiguration", "serializeAws_restXmlPutBucketTaggingCommand", "serializeAws_restXmlTagging", "serializeAws_restXmlPutBucketVersioningCommand", "serializeAws_restXmlVersioningConfiguration", "serializeAws_restXmlPutBucketWebsiteCommand", "serializeAws_restXmlWebsiteConfiguration", "serializeAws_restXmlPutObjectCommand", "serializeAws_restXmlPutObjectAclCommand", "serializeAws_restXmlPutObjectLegalHoldCommand", "serializeAws_restXmlObjectLockLegalHold", "serializeAws_restXmlPutObjectLockConfigurationCommand", "serializeAws_restXmlObjectLockConfiguration", "serializeAws_restXmlPutObjectRetentionCommand", "serializeAws_restXmlObjectLockRetention", "serializeAws_restXmlPutObjectTaggingCommand", "serializeAws_restXmlPutPublicAccessBlockCommand", "serializeAws_restXmlPublicAccessBlockConfiguration", "serializeAws_restXmlRestoreObjectCommand", "serializeAws_restXmlRestoreRequest", "serializeAws_restXmlSelectObjectContentCommand", "bodyNode", "node", "serializeAws_restXmlInputSerialization", "serializeAws_restXmlOutputSerialization", "serializeAws_restXmlRequestProgress", "serializeAws_restXmlScanRange", "serializeAws_restXmlUploadPartCommand", "serializeAws_restXmlUploadPartCopyCommand", "serializeAws_restXmlWriteGetObjectResponseCommand", "resolvedHostname", "deserializeAws_restXmlAbortMultipartUploadCommand", "output", "deserializeAws_restXmlAbortMultipartUploadCommandError", "deserializeMetadata", "collectBody", "parsedOutput", "parseErrorBody", "errorCode", "loadRestXmlErrorCode", "deserializeAws_restXmlNoSuchUploadResponse", "parsedBody", "deserializeAws_restXmlCompleteMultipartUploadCommand", "deserializeAws_restXmlCompleteMultipartUploadCommandError", "data", "parseBody", "deserializeAws_restXmlCopyObjectCommand", "deserializeAws_restXmlCopyObjectCommandError", "deserializeAws_restXmlCopyObjectResult", "deserializeAws_restXmlObjectNotInActiveTierErrorResponse", "deserializeAws_restXmlCreateBucketCommand", "deserializeAws_restXmlCreateBucketCommandError", "deserializeAws_restXmlBucketAlreadyExistsResponse", "deserializeAws_restXmlBucketAlreadyOwnedByYouResponse", "deserializeAws_restXmlCreateMultipartUploadCommand", "deserializeAws_restXmlCreateMultipartUploadCommandError", "deserializeAws_restXmlDeleteBucketCommand", "deserializeAws_restXmlDeleteBucketCommandError", "deserializeAws_restXmlDeleteBucketAnalyticsConfigurationCommand", "deserializeAws_restXmlDeleteBucketAnalyticsConfigurationCommandError", "deserializeAws_restXmlDeleteBucketCorsCommand", "deserializeAws_restXmlDeleteBucketCorsCommandError", "deserializeAws_restXmlDeleteBucketEncryptionCommand", "deserializeAws_restXmlDeleteBucketEncryptionCommandError", "deserializeAws_restXmlDeleteBucketIntelligentTieringConfigurationCommand", "deserializeAws_restXmlDeleteBucketIntelligentTieringConfigurationCommandError", "deserializeAws_restXmlDeleteBucketInventoryConfigurationCommand", "deserializeAws_restXmlDeleteBucketInventoryConfigurationCommandError", "deserializeAws_restXmlDeleteBucketLifecycleCommand", "deserializeAws_restXmlDeleteBucketLifecycleCommandError", "deserializeAws_restXmlDeleteBucketMetricsConfigurationCommand", "deserializeAws_restXmlDeleteBucketMetricsConfigurationCommandError", "deserializeAws_restXmlDeleteBucketOwnershipControlsCommand", "deserializeAws_restXmlDeleteBucketOwnershipControlsCommandError", "deserializeAws_restXmlDeleteBucketPolicyCommand", "deserializeAws_restXmlDeleteBucketPolicyCommandError", "deserializeAws_restXmlDeleteBucketReplicationCommand", "deserializeAws_restXmlDeleteBucketReplicationCommandError", "deserializeAws_restXmlDeleteBucketTaggingCommand", "deserializeAws_restXmlDeleteBucketTaggingCommandError", "deserializeAws_restXmlDeleteBucketWebsiteCommand", "deserializeAws_restXmlDeleteBucketWebsiteCommandError", "deserializeAws_restXmlDeleteObjectCommand", "deserializeAws_restXmlDeleteObjectCommandError", "deserializeAws_restXmlDeleteObjectsCommand", "deserializeAws_restXmlDeleteObjectsCommandError", "deserializeAws_restXmlDeletedObjects", "deserializeAws_restXmlErrors", "deserializeAws_restXmlDeleteObjectTaggingCommand", "deserializeAws_restXmlDeleteObjectTaggingCommandError", "deserializeAws_restXmlDeletePublicAccessBlockCommand", "deserializeAws_restXmlDeletePublicAccessBlockCommandError", "deserializeAws_restXmlGetBucketAccelerateConfigurationCommand", "deserializeAws_restXmlGetBucketAccelerateConfigurationCommandError", "deserializeAws_restXmlGetBucketAclCommand", "deserializeAws_restXmlGetBucketAclCommandError", "deserializeAws_restXmlGrants", "deserializeAws_restXmlOwner", "deserializeAws_restXmlGetBucketAnalyticsConfigurationCommand", "deserializeAws_restXmlGetBucketAnalyticsConfigurationCommandError", "deserializeAws_restXmlAnalyticsConfiguration", "deserializeAws_restXmlGetBucketCorsCommand", "deserializeAws_restXmlGetBucketCorsCommandError", "deserializeAws_restXmlCORSRules", "deserializeAws_restXmlGetBucketEncryptionCommand", "deserializeAws_restXmlGetBucketEncryptionCommandError", "deserializeAws_restXmlServerSideEncryptionConfiguration", "deserializeAws_restXmlGetBucketIntelligentTieringConfigurationCommand", "deserializeAws_restXmlGetBucketIntelligentTieringConfigurationCommandError", "deserializeAws_restXmlIntelligentTieringConfiguration", "deserializeAws_restXmlGetBucketInventoryConfigurationCommand", "deserializeAws_restXmlGetBucketInventoryConfigurationCommandError", "deserializeAws_restXmlInventoryConfiguration", "deserializeAws_restXmlGetBucketLifecycleConfigurationCommand", "deserializeAws_restXmlGetBucketLifecycleConfigurationCommandError", "deserializeAws_restXmlLifecycleRules", "deserializeAws_restXmlGetBucketLocationCommand", "deserializeAws_restXmlGetBucketLocationCommandError", "deserializeAws_restXmlGetBucketLoggingCommand", "deserializeAws_restXmlGetBucketLoggingCommandError", "deserializeAws_restXmlLoggingEnabled", "deserializeAws_restXmlGetBucketMetricsConfigurationCommand", "deserializeAws_restXmlGetBucketMetricsConfigurationCommandError", "deserializeAws_restXmlMetricsConfiguration", "deserializeAws_restXmlGetBucketNotificationConfigurationCommand", "deserializeAws_restXmlGetBucketNotificationConfigurationCommandError", "deserializeAws_restXmlEventBridgeConfiguration", "deserializeAws_restXmlLambdaFunctionConfigurationList", "deserializeAws_restXmlQueueConfigurationList", "deserializeAws_restXmlTopicConfigurationList", "deserializeAws_restXmlGetBucketOwnershipControlsCommand", "deserializeAws_restXmlGetBucketOwnershipControlsCommandError", "deserializeAws_restXmlOwnershipControls", "deserializeAws_restXmlGetBucketPolicyCommand", "deserializeAws_restXmlGetBucketPolicyCommandError", "collectBodyString", "deserializeAws_restXmlGetBucketPolicyStatusCommand", "deserializeAws_restXmlGetBucketPolicyStatusCommandError", "deserializeAws_restXmlPolicyStatus", "deserializeAws_restXmlGetBucketReplicationCommand", "deserializeAws_restXmlGetBucketReplicationCommandError", "deserializeAws_restXmlReplicationConfiguration", "deserializeAws_restXmlGetBucketRequestPaymentCommand", "deserializeAws_restXmlGetBucketRequestPaymentCommandError", "deserializeAws_restXmlGetBucketTaggingCommand", "deserializeAws_restXmlGetBucketTaggingCommandError", "deserializeAws_restXmlTagSet", "deserializeAws_restXmlGetBucketVersioningCommand", "deserializeAws_restXmlGetBucketVersioningCommandError", "deserializeAws_restXmlGetBucketWebsiteCommand", "deserializeAws_restXmlGetBucketWebsiteCommandError", "deserializeAws_restXmlErrorDocument", "deserializeAws_restXmlIndexDocument", "deserializeAws_restXmlRedirectAllRequestsTo", "deserializeAws_restXmlRoutingRules", "deserializeAws_restXmlGetObjectCommand", "deserializeAws_restXmlGetObjectCommandError", "header", "deserializeAws_restXmlInvalidObjectStateResponse", "deserializeAws_restXmlNoSuchKeyResponse", "deserializeAws_restXmlGetObjectAclCommand", "deserializeAws_restXmlGetObjectAclCommandError", "deserializeAws_restXmlGetObjectAttributesCommand", "deserializeAws_restXmlGetObjectAttributesCommandError", "deserializeAws_restXmlChecksum", "deserializeAws_restXmlGetObjectAttributesParts", "deserializeAws_restXmlGetObjectLegalHoldCommand", "deserializeAws_restXmlGetObjectLegalHoldCommandError", "deserializeAws_restXmlObjectLockLegalHold", "deserializeAws_restXmlGetObjectLockConfigurationCommand", "deserializeAws_restXmlGetObjectLockConfigurationCommandError", "deserializeAws_restXmlObjectLockConfiguration", "deserializeAws_restXmlGetObjectRetentionCommand", "deserializeAws_restXmlGetObjectRetentionCommandError", "deserializeAws_restXmlObjectLockRetention", "deserializeAws_restXmlGetObjectTaggingCommand", "deserializeAws_restXmlGetObjectTaggingCommandError", "deserializeAws_restXmlGetObjectTorrentCommand", "deserializeAws_restXmlGetObjectTorrentCommandError", "deserializeAws_restXmlGetPublicAccessBlockCommand", "deserializeAws_restXmlGetPublicAccessBlockCommandError", "deserializeAws_restXmlPublicAccessBlockConfiguration", "deserializeAws_restXmlHeadBucketCommand", "deserializeAws_restXmlHeadBucketCommandError", "deserializeAws_restXmlNotFoundResponse", "deserializeAws_restXmlHeadObjectCommand", "deserializeAws_restXmlHeadObjectCommandError", "deserializeAws_restXmlListBucketAnalyticsConfigurationsCommand", "deserializeAws_restXmlListBucketAnalyticsConfigurationsCommandError", "deserializeAws_restXmlAnalyticsConfigurationList", "deserializeAws_restXmlListBucketIntelligentTieringConfigurationsCommand", "deserializeAws_restXmlListBucketIntelligentTieringConfigurationsCommandError", "deserializeAws_restXmlIntelligentTieringConfigurationList", "deserializeAws_restXmlListBucketInventoryConfigurationsCommand", "deserializeAws_restXmlListBucketInventoryConfigurationsCommandError", "deserializeAws_restXmlInventoryConfigurationList", "deserializeAws_restXmlListBucketMetricsConfigurationsCommand", "deserializeAws_restXmlListBucketMetricsConfigurationsCommandError", "deserializeAws_restXmlMetricsConfigurationList", "deserializeAws_restXmlListBucketsCommand", "deserializeAws_restXmlListBucketsCommandError", "deserializeAws_restXmlBuckets", "deserializeAws_restXmlListMultipartUploadsCommand", "deserializeAws_restXmlListMultipartUploadsCommandError", "deserializeAws_restXmlCommonPrefixList", "deserializeAws_restXmlMultipartUploadList", "deserializeAws_restXmlListObjectsCommand", "deserializeAws_restXmlListObjectsCommandError", "deserializeAws_restXmlObjectList", "deserializeAws_restXmlNoSuchBucketResponse", "deserializeAws_restXmlListObjectsV2Command", "deserializeAws_restXmlListObjectsV2CommandError", "deserializeAws_restXmlListObjectVersionsCommand", "deserializeAws_restXmlListObjectVersionsCommandError", "deserializeAws_restXmlDeleteMarkers", "deserializeAws_restXmlObjectVersionList", "deserializeAws_restXmlListPartsCommand", "deserializeAws_restXmlListPartsCommandError", "deserializeAws_restXmlInitiator", "deserializeAws_restXmlParts", "deserializeAws_restXmlPutBucketAccelerateConfigurationCommand", "deserializeAws_restXmlPutBucketAccelerateConfigurationCommandError", "deserializeAws_restXmlPutBucketAclCommand", "deserializeAws_restXmlPutBucketAclCommandError", "deserializeAws_restXmlPutBucketAnalyticsConfigurationCommand", "deserializeAws_restXmlPutBucketAnalyticsConfigurationCommandError", "deserializeAws_restXmlPutBucketCorsCommand", "deserializeAws_restXmlPutBucketCorsCommandError", "deserializeAws_restXmlPutBucketEncryptionCommand", "deserializeAws_restXmlPutBucketEncryptionCommandError", "deserializeAws_restXmlPutBucketIntelligentTieringConfigurationCommand", "deserializeAws_restXmlPutBucketIntelligentTieringConfigurationCommandError", "deserializeAws_restXmlPutBucketInventoryConfigurationCommand", "deserializeAws_restXmlPutBucketInventoryConfigurationCommandError", "deserializeAws_restXmlPutBucketLifecycleConfigurationCommand", "deserializeAws_restXmlPutBucketLifecycleConfigurationCommandError", "deserializeAws_restXmlPutBucketLoggingCommand", "deserializeAws_restXmlPutBucketLoggingCommandError", "deserializeAws_restXmlPutBucketMetricsConfigurationCommand", "deserializeAws_restXmlPutBucketMetricsConfigurationCommandError", "deserializeAws_restXmlPutBucketNotificationConfigurationCommand", "deserializeAws_restXmlPutBucketNotificationConfigurationCommandError", "deserializeAws_restXmlPutBucketOwnershipControlsCommand", "deserializeAws_restXmlPutBucketOwnershipControlsCommandError", "deserializeAws_restXmlPutBucketPolicyCommand", "deserializeAws_restXmlPutBucketPolicyCommandError", "deserializeAws_restXmlPutBucketReplicationCommand", "deserializeAws_restXmlPutBucketReplicationCommandError", "deserializeAws_restXmlPutBucketRequestPaymentCommand", "deserializeAws_restXmlPutBucketRequestPaymentCommandError", "deserializeAws_restXmlPutBucketTaggingCommand", "deserializeAws_restXmlPutBucketTaggingCommandError", "deserializeAws_restXmlPutBucketVersioningCommand", "deserializeAws_restXmlPutBucketVersioningCommandError", "deserializeAws_restXmlPutBucketWebsiteCommand", "deserializeAws_restXmlPutBucketWebsiteCommandError", "deserializeAws_restXmlPutObjectCommand", "deserializeAws_restXmlPutObjectCommandError", "deserializeAws_restXmlPutObjectAclCommand", "deserializeAws_restXmlPutObjectAclCommandError", "deserializeAws_restXmlPutObjectLegalHoldCommand", "deserializeAws_restXmlPutObjectLegalHoldCommandError", "deserializeAws_restXmlPutObjectLockConfigurationCommand", "deserializeAws_restXmlPutObjectLockConfigurationCommandError", "deserializeAws_restXmlPutObjectRetentionCommand", "deserializeAws_restXmlPutObjectRetentionCommandError", "deserializeAws_restXmlPutObjectTaggingCommand", "deserializeAws_restXmlPutObjectTaggingCommandError", "deserializeAws_restXmlPutPublicAccessBlockCommand", "deserializeAws_restXmlPutPublicAccessBlockCommandError", "deserializeAws_restXmlRestoreObjectCommand", "deserializeAws_restXmlRestoreObjectCommandError", "deserializeAws_restXmlObjectAlreadyInActiveTierErrorResponse", "deserializeAws_restXmlSelectObjectContentCommand", "deserializeAws_restXmlSelectObjectContentCommandError", "deserializeAws_restXmlSelectObjectContentEventStream", "deserializeAws_restXmlUploadPartCommand", "deserializeAws_restXmlUploadPartCommandError", "deserializeAws_restXmlUploadPartCopyCommand", "deserializeAws_restXmlUploadPartCopyCommandError", "deserializeAws_restXmlCopyPartResult", "deserializeAws_restXmlWriteGetObjectResponseCommand", "deserializeAws_restXmlWriteGetObjectResponseCommandError", "exception", "event", "deserializeAws_restXmlRecordsEvent_event", "deserializeAws_restXmlStatsEvent_event", "deserializeAws_restXmlProgressEvent_event", "deserializeAws_restXmlContinuationEvent_event", "deserializeAws_restXmlEndEvent_event", "deserializeAws_restXmlContinuationEvent", "deserializeAws_restXmlEndEvent", "deserializeAws_restXmlProgress", "deserializeAws_restXmlStats", "serializeAws_restXmlAbortIncompleteMultipartUpload", "nodes", "serializeAws_restXmlGrants", "containerNode", "serializeAws_restXmlOwner", "serializeAws_restXmlAccessControlTranslation", "serializeAws_restXmlAllowedHeaders", "e", "entry", "serializeAws_restXmlAllowedMethods", "serializeAws_restXmlAllowedOrigins", "serializeAws_restXmlAnalyticsAndOperator", "serializeAws_restXmlTagSet", "serializeAws_restXmlAnalyticsFilter", "serializeAws_restXmlStorageClassAnalysis", "serializeAws_restXmlAnalyticsExportDestination", "serializeAws_restXmlAnalyticsS3BucketDestination", "value", "serializeAws_restXmlTag", "name", "serializeAws_restXmlLifecycleRules", "serializeAws_restXmlLoggingEnabled", "serializeAws_restXmlCompletedPartList", "serializeAws_restXmlCompletedPart", "serializeAws_restXmlCondition", "serializeAws_restXmlCORSRules", "serializeAws_restXmlCORSRule", "serializeAws_restXmlExposeHeaders", "serializeAws_restXmlCSVInput", "serializeAws_restXmlCSVOutput", "serializeAws_restXmlDefaultRetention", "serializeAws_restXmlObjectIdentifierList", "serializeAws_restXmlDeleteMarkerReplication", "serializeAws_restXmlDestination", "serializeAws_restXmlEncryptionConfiguration", "serializeAws_restXmlReplicationTime", "serializeAws_restXmlMetrics", "serializeAws_restXmlEncryption", "serializeAws_restXmlErrorDocument", "serializeAws_restXmlEventBridgeConfiguration", "serializeAws_restXmlEventList", "serializeAws_restXmlExistingObjectReplication", "serializeAws_restXmlFilterRule", "serializeAws_restXmlFilterRuleList", "serializeAws_restXmlGlacierJobParameters", "serializeAws_restXmlGrant", "serializeAws_restXmlGrantee", "serializeAws_restXmlIndexDocument", "serializeAws_restXmlJSONInput", "serializeAws_restXmlParquetInput", "serializeAws_restXmlIntelligentTieringAndOperator", "serializeAws_restXmlIntelligentTieringFilter", "serializeAws_restXmlTieringList", "serializeAws_restXmlInventoryDestination", "serializeAws_restXmlInventoryFilter", "serializeAws_restXmlInventoryOptionalFields", "serializeAws_restXmlInventorySchedule", "serializeAws_restXmlInventoryS3BucketDestination", "serializeAws_restXmlInventoryEncryption", "serializeAws_restXmlSSES3", "serializeAws_restXmlSSEKMS", "serializeAws_restXmlJSONOutput", "serializeAws_restXmlLambdaFunctionConfiguration", "serializeAws_restXmlNotificationConfigurationFilter", "serializeAws_restXmlLambdaFunctionConfigurationList", "serializeAws_restXmlLifecycleExpiration", "serializeAws_restXmlLifecycleRule", "serializeAws_restXmlLifecycleRuleFilter", "serializeAws_restXmlTransitionList", "serializeAws_restXmlNoncurrentVersionTransitionList", "serializeAws_restXmlNoncurrentVersionExpiration", "serializeAws_restXmlLifecycleRuleAndOperator", "serializeAws_restXmlTargetGrants", "serializeAws_restXmlMetadataEntry", "serializeAws_restXmlReplicationTimeValue", "serializeAws_restXmlMetricsAndOperator", "serializeAws_restXmlMetricsFilter", "serializeAws_restXmlNoncurrentVersionTransition", "serializeAws_restXmlTopicConfigurationList", "serializeAws_restXmlQueueConfigurationList", "serializeAws_restXmlS3KeyFilter", "serializeAws_restXmlObjectIdentifier", "serializeAws_restXmlObjectLockRule", "serializeAws_restXmlOutputLocation", "serializeAws_restXmlS3Location", "serializeAws_restXmlOwnershipControlsRules", "serializeAws_restXmlOwnershipControlsRule", "serializeAws_restXmlQueueConfiguration", "serializeAws_restXmlRedirect", "serializeAws_restXmlRedirectAllRequestsTo", "serializeAws_restXmlReplicaModifications", "serializeAws_restXmlReplicationRules", "serializeAws_restXmlReplicationRule", "serializeAws_restXmlReplicationRuleFilter", "serializeAws_restXmlSourceSelectionCriteria", "serializeAws_restXmlReplicationRuleAndOperator", "serializeAws_restXmlSelectParameters", "serializeAws_restXmlRoutingRule", "serializeAws_restXmlRoutingRules", "serializeAws_restXmlUserMetadata", "serializeAws_restXmlServerSideEncryptionByDefault", "serializeAws_restXmlServerSideEncryptionRules", "serializeAws_restXmlServerSideEncryptionRule", "serializeAws_restXmlSseKmsEncryptedObjects", "serializeAws_restXmlStorageClassAnalysisDataExport", "serializeAws_restXmlTargetGrant", "serializeAws_restXmlTiering", "serializeAws_restXmlTopicConfiguration", "serializeAws_restXmlTransition", "deserializeAws_restXmlAbortIncompleteMultipartUpload", "deserializeAws_restXmlAccessControlTranslation", "deserializeAws_restXmlAllowedHeaders", "deserializeAws_restXmlAllowedMethods", "deserializeAws_restXmlAllowedOrigins", "deserializeAws_restXmlAnalyticsAndOperator", "deserializeAws_restXmlAnalyticsFilter", "deserializeAws_restXmlStorageClassAnalysis", "deserializeAws_restXmlAnalyticsExportDestination", "deserializeAws_restXmlAnalyticsS3BucketDestination", "deserializeAws_restXmlTag", "deserializeAws_restXmlBucket", "deserializeAws_restXmlChecksumAlgorithmList", "deserializeAws_restXmlCommonPrefix", "deserializeAws_restXmlCondition", "deserializeAws_restXmlCORSRule", "deserializeAws_restXmlExposeHeaders", "deserializeAws_restXmlDefaultRetention", "deserializeAws_restXmlDeletedObject", "deserializeAws_restXmlDeleteMarkerEntry", "deserializeAws_restXmlDeleteMarkerReplication", "deserializeAws_restXmlDestination", "deserializeAws_restXmlEncryptionConfiguration", "deserializeAws_restXmlReplicationTime", "deserializeAws_restXmlMetrics", "deserializeAws_restXml_Error", "deserializeAws_restXmlEventList", "deserializeAws_restXmlExistingObjectReplication", "deserializeAws_restXmlFilterRule", "deserializeAws_restXmlFilterRuleList", "deserializeAws_restXmlPartsList", "deserializeAws_restXmlGrant", "deserializeAws_restXmlGrantee", "deserializeAws_restXmlIntelligentTieringAndOperator", "deserializeAws_restXmlIntelligentTieringFilter", "deserializeAws_restXmlTieringList", "deserializeAws_restXmlInventoryDestination", "deserializeAws_restXmlInventoryFilter", "deserializeAws_restXmlInventoryOptionalFields", "deserializeAws_restXmlInventorySchedule", "deserializeAws_restXmlInventoryS3BucketDestination", "deserializeAws_restXmlInventoryEncryption", "deserializeAws_restXmlSSES3", "deserializeAws_restXmlSSEKMS", "deserializeAws_restXmlLambdaFunctionConfiguration", "deserializeAws_restXmlNotificationConfigurationFilter", "deserializeAws_restXmlLifecycleExpiration", "deserializeAws_restXmlLifecycleRule", "deserializeAws_restXmlLifecycleRuleFilter", "deserializeAws_restXmlTransitionList", "deserializeAws_restXmlNoncurrentVersionTransitionList", "deserializeAws_restXmlNoncurrentVersionExpiration", "deserializeAws_restXmlLifecycleRuleAndOperator", "deserializeAws_restXmlTargetGrants", "deserializeAws_restXmlReplicationTimeValue", "deserializeAws_restXmlMetricsAndOperator", "deserializeAws_restXmlMetricsFilter", "deserializeAws_restXmlMultipartUpload", "deserializeAws_restXmlNoncurrentVersionTransition", "deserializeAws_restXmlS3KeyFilter", "deserializeAws_restXml_Object", "deserializeAws_restXmlObjectLockRule", "deserializeAws_restXmlObjectPart", "deserializeAws_restXmlObjectVersion", "deserializeAws_restXmlOwnershipControlsRules", "deserializeAws_restXmlOwnershipControlsRule", "deserializeAws_restXmlPart", "deserializeAws_restXmlQueueConfiguration", "deserializeAws_restXmlRedirect", "deserializeAws_restXmlReplicaModifications", "deserializeAws_restXmlReplicationRules", "deserializeAws_restXmlReplicationRule", "deserializeAws_restXmlReplicationRuleFilter", "deserializeAws_restXmlSourceSelectionCriteria", "deserializeAws_restXmlReplicationRuleAndOperator", "deserializeAws_restXmlRoutingRule", "deserializeAws_restXmlServerSideEncryptionByDefault", "deserializeAws_restXmlServerSideEncryptionRules", "deserializeAws_restXmlServerSideEncryptionRule", "deserializeAws_restXmlSseKmsEncryptedObjects", "deserializeAws_restXmlStorageClassAnalysisDataExport", "deserializeAws_restXmlTargetGrant", "deserializeAws_restXmlTiering", "deserializeAws_restXmlTopicConfiguration", "deserializeAws_restXmlTransition", "streamBody", "encoded", "parser", "_", "val", "parsedObj", "textNodeName", "key", "parsedObjToReturn", "errorBody", "require_AbortMultipartUploadCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_serde_1", "smithy_client_1", "models_0_1", "Aws_restXml_1", "AbortMultipartUploadCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "requestHandler", "request", "context", "output", "require_check_content_length_header", "__commonJSMin", "exports", "protocol_http_1", "CONTENT_LENGTH_HEADER", "checkContentLengthHeader", "next", "context", "args", "_a", "request", "message", "getCheckContentLengthHeaderPlugin", "unused", "clientStack", "require_configuration", "__commonJSMin", "exports", "resolveS3Config", "input", "_a", "_b", "_c", "require_throw_200_exceptions", "__commonJSMin", "exports", "protocol_http_1", "throw200ExceptionsMiddleware", "config", "next", "args", "result", "response", "statusCode", "body", "bodyBytes", "collectBody", "bodyString", "collectBodyString", "err", "streamBody", "context", "getThrow200ExceptionsPlugin", "clientStack", "require_dist_cjs", "__commonJSMin", "exports", "validate", "str", "parse", "arn", "segments", "partition", "service", "region", "accountId", "resource", "build", "arnObject", "segment", "require_validate_bucket_name", "__commonJSMin", "exports", "util_arn_parser_1", "validateBucketNameMiddleware", "next", "args", "Bucket", "err", "getValidateBucketNamePlugin", "unused", "clientStack", "require_dist_cjs", "__commonJSMin", "exports", "tslib_1", "require_dist_cjs", "__commonJSMin", "exports", "ssecMiddleware", "options", "next", "args", "input", "properties", "prop", "value", "valueView", "encoded", "hash", "getSsecPlugin", "config", "clientStack", "require_CompleteMultipartUploadCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_sdk_s3_1", "middleware_serde_1", "middleware_ssec_1", "smithy_client_1", "models_0_1", "Aws_restXml_1", "CompleteMultipartUploadCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "requestHandler", "request", "context", "output", "require_CopyObjectCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_sdk_s3_1", "middleware_serde_1", "middleware_ssec_1", "smithy_client_1", "models_0_1", "Aws_restXml_1", "CopyObjectCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "requestHandler", "request", "context", "output", "require_dist_cjs", "__commonJSMin", "exports", "locationConstraintMiddleware", "options", "next", "args", "CreateBucketConfiguration", "region", "getLocationConstraintPlugin", "config", "clientStack", "require_CreateBucketCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_location_constraint_1", "middleware_serde_1", "smithy_client_1", "models_0_1", "Aws_restXml_1", "CreateBucketCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "requestHandler", "request", "context", "output", "require_CreateMultipartUploadCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_serde_1", "middleware_ssec_1", "smithy_client_1", "models_0_1", "Aws_restXml_1", "CreateMultipartUploadCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "requestHandler", "request", "context", "output", "require_DeleteBucketAnalyticsConfigurationCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_serde_1", "smithy_client_1", "models_0_1", "Aws_restXml_1", "DeleteBucketAnalyticsConfigurationCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "output", "requestHandler", "request", "context", "require_DeleteBucketCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_serde_1", "smithy_client_1", "models_0_1", "Aws_restXml_1", "DeleteBucketCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "output", "requestHandler", "request", "context", "require_DeleteBucketCorsCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_serde_1", "smithy_client_1", "models_0_1", "Aws_restXml_1", "DeleteBucketCorsCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "output", "requestHandler", "request", "context", "require_DeleteBucketEncryptionCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_serde_1", "smithy_client_1", "models_0_1", "Aws_restXml_1", "DeleteBucketEncryptionCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "output", "requestHandler", "request", "context", "require_DeleteBucketIntelligentTieringConfigurationCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_serde_1", "smithy_client_1", "models_0_1", "Aws_restXml_1", "DeleteBucketIntelligentTieringConfigurationCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "output", "requestHandler", "request", "context", "require_DeleteBucketInventoryConfigurationCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_serde_1", "smithy_client_1", "models_0_1", "Aws_restXml_1", "DeleteBucketInventoryConfigurationCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "output", "requestHandler", "request", "context", "require_DeleteBucketLifecycleCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_serde_1", "smithy_client_1", "models_0_1", "Aws_restXml_1", "DeleteBucketLifecycleCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "output", "requestHandler", "request", "context", "require_DeleteBucketMetricsConfigurationCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_serde_1", "smithy_client_1", "models_0_1", "Aws_restXml_1", "DeleteBucketMetricsConfigurationCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "output", "requestHandler", "request", "context", "require_DeleteBucketOwnershipControlsCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_serde_1", "smithy_client_1", "models_0_1", "Aws_restXml_1", "DeleteBucketOwnershipControlsCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "output", "requestHandler", "request", "context", "require_DeleteBucketPolicyCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_serde_1", "smithy_client_1", "models_0_1", "Aws_restXml_1", "DeleteBucketPolicyCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "output", "requestHandler", "request", "context", "require_DeleteBucketReplicationCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_serde_1", "smithy_client_1", "models_0_1", "Aws_restXml_1", "DeleteBucketReplicationCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "output", "requestHandler", "request", "context", "require_DeleteBucketTaggingCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_serde_1", "smithy_client_1", "models_0_1", "Aws_restXml_1", "DeleteBucketTaggingCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "output", "requestHandler", "request", "context", "require_DeleteBucketWebsiteCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_serde_1", "smithy_client_1", "models_0_1", "Aws_restXml_1", "DeleteBucketWebsiteCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "output", "requestHandler", "request", "context", "require_DeleteObjectCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_serde_1", "smithy_client_1", "models_0_1", "Aws_restXml_1", "DeleteObjectCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "requestHandler", "request", "context", "output", "require_constants", "__commonJSMin", "exports", "ChecksumAlgorithm", "ChecksumLocation", "require_types", "__commonJSMin", "exports", "constants_1", "require_getChecksumAlgorithmForRequest", "__commonJSMin", "exports", "constants_1", "types_1", "getChecksumAlgorithmForRequest", "input", "requestChecksumRequired", "requestAlgorithmMember", "checksumAlgorithm", "require_getChecksumLocationName", "__commonJSMin", "exports", "constants_1", "getChecksumLocationName", "algorithm", "require_hasHeader", "__commonJSMin", "exports", "hasHeader", "header", "headers", "soughtHeader", "headerName", "require_isStreaming", "__commonJSMin", "exports", "is_array_buffer_1", "isStreaming", "body", "require_tslib", "__commonJSMin", "exports", "module", "__extends", "__assign", "__rest", "__decorate", "__param", "__metadata", "__awaiter", "__generator", "__exportStar", "__values", "__read", "__spread", "__spreadArrays", "__await", "__asyncGenerator", "__asyncDelegator", "__asyncValues", "__makeTemplateObject", "__importStar", "__importDefault", "__classPrivateFieldGet", "__classPrivateFieldSet", "__createBinding", "factory", "root", "createExporter", "previous", "id", "v", "exporter", "extendStatics", "d", "b", "p", "__", "i", "n", "s", "e", "t", "decorators", "target", "key", "desc", "c", "r", "paramIndex", "decorator", "metadataKey", "metadataValue", "thisArg", "_arguments", "P", "generator", "adopt", "value", "resolve", "reject", "fulfilled", "step", "rejected", "result", "body", "_", "f", "y", "g", "verb", "op", "o", "m", "k", "k2", "ar", "error", "il", "a", "j", "jl", "q", "resume", "settle", "fulfill", "cooked", "raw", "mod", "receiver", "privateMap", "require_pureJs", "__commonJSMin", "exports", "fromUtf8", "input", "bytes", "i", "len", "value", "surrogatePair", "toUtf8", "decoded", "byte", "nextByte", "encoded", "byteValue", "require_whatwgEncodingApi", "__commonJSMin", "exports", "fromUtf8", "input", "toUtf8", "require_dist_cjs", "__commonJSMin", "exports", "pureJs_1", "whatwgEncodingApi_1", "fromUtf8", "input", "toUtf8", "util_utf8_browser_1", "fromUtf8", "input", "convertToBuffer", "data", "exports", "isEmptyData", "data", "exports", "numToUint8", "num", "exports", "uint32ArrayFrom", "a_lookUpTable", "return_array", "a_index", "exports", "convertToBuffer_1", "exports", "isEmptyData_1", "numToUint8_1", "uint32ArrayFrom_1", "util_1", "index_1", "AwsCrc32", "toHash", "exports", "util_1", "crc32", "data", "Crc32", "exports", "data_1", "tslib_1", "data_1_1", "byte", "lookupTable", "a_lookUpTable", "aws_crc32_1", "require_tslib", "__commonJSMin", "exports", "module", "__extends", "__assign", "__rest", "__decorate", "__param", "__metadata", "__awaiter", "__generator", "__exportStar", "__values", "__read", "__spread", "__spreadArrays", "__await", "__asyncGenerator", "__asyncDelegator", "__asyncValues", "__makeTemplateObject", "__importStar", "__importDefault", "__classPrivateFieldGet", "__classPrivateFieldSet", "__createBinding", "factory", "root", "createExporter", "previous", "id", "v", "exporter", "extendStatics", "d", "b", "p", "__", "i", "n", "s", "e", "t", "decorators", "target", "key", "desc", "c", "r", "paramIndex", "decorator", "metadataKey", "metadataValue", "thisArg", "_arguments", "P", "generator", "adopt", "value", "resolve", "reject", "fulfilled", "step", "rejected", "result", "body", "_", "f", "y", "g", "verb", "op", "o", "m", "k", "k2", "ar", "error", "il", "a", "j", "jl", "q", "resume", "settle", "fulfill", "cooked", "raw", "mod", "receiver", "privateMap", "util_1", "index_1", "AwsCrc32c", "toHash", "exports", "util_1", "crc32c", "data", "Crc32c", "exports", "data_1", "tslib_1", "data_1_1", "byte", "lookupTable", "a_lookupTable", "aws_crc32c_1", "require_selectChecksumAlgorithmFunction", "__commonJSMin", "exports", "crc32_1", "crc32c_1", "constants_1", "selectChecksumAlgorithmFunction", "checksumAlgorithm", "config", "require_stringHasher", "__commonJSMin", "exports", "util_utf8_1", "stringHasher", "checksumAlgorithmFn", "body", "hash", "require_getChecksum", "__commonJSMin", "exports", "isStreaming_1", "stringHasher_1", "getChecksum", "body", "streamHasher", "checksumAlgorithmFn", "base64Encoder", "digest", "require_getChecksumAlgorithmListForResponse", "__commonJSMin", "exports", "types_1", "getChecksumAlgorithmListForResponse", "responseAlgorithms", "validChecksumAlgorithms", "algorithm", "require_validateChecksumFromResponse", "__commonJSMin", "exports", "getChecksum_1", "getChecksumAlgorithmListForResponse_1", "getChecksumLocationName_1", "selectChecksumAlgorithmFunction_1", "validateChecksumFromResponse", "response", "config", "responseAlgorithms", "checksumAlgorithms", "responseBody", "responseHeaders", "algorithm", "responseHeader", "checksumFromResponse", "checksumAlgorithmFn", "streamHasher", "base64Encoder", "checksum", "require_flexibleChecksumsMiddleware", "__commonJSMin", "exports", "protocol_http_1", "getChecksumAlgorithmForRequest_1", "getChecksumLocationName_1", "hasHeader_1", "isStreaming_1", "selectChecksumAlgorithmFunction_1", "stringHasher_1", "validateChecksumFromResponse_1", "flexibleChecksumsMiddleware", "config", "middlewareConfig", "next", "args", "request", "requestBody", "headers", "base64Encoder", "streamHasher", "input", "requestChecksumRequired", "requestAlgorithmMember", "checksumAlgorithm", "updatedBody", "updatedHeaders", "checksumLocationName", "checksumAlgorithmFn", "getAwsChunkedEncodingStream", "bodyLengthChecker", "rawChecksum", "result", "requestValidationModeMember", "responseAlgorithms", "require_getFlexibleChecksumsPlugin", "__commonJSMin", "exports", "flexibleChecksumsMiddleware_1", "getFlexibleChecksumsPlugin", "config", "middlewareConfig", "clientStack", "require_dist_cjs", "__commonJSMin", "exports", "tslib_1", "require_DeleteObjectsCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_flexible_checksums_1", "middleware_serde_1", "smithy_client_1", "models_0_1", "Aws_restXml_1", "DeleteObjectsCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "requestHandler", "request", "context", "output", "require_DeleteObjectTaggingCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_serde_1", "smithy_client_1", "models_0_1", "Aws_restXml_1", "DeleteObjectTaggingCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "requestHandler", "request", "context", "output", "require_DeletePublicAccessBlockCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_serde_1", "smithy_client_1", "models_0_1", "Aws_restXml_1", "DeletePublicAccessBlockCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "output", "requestHandler", "request", "context", "require_GetBucketAccelerateConfigurationCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_serde_1", "smithy_client_1", "models_0_1", "Aws_restXml_1", "GetBucketAccelerateConfigurationCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "requestHandler", "request", "context", "output", "require_GetBucketAclCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_serde_1", "smithy_client_1", "models_0_1", "Aws_restXml_1", "GetBucketAclCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "requestHandler", "request", "context", "output", "require_GetBucketAnalyticsConfigurationCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_serde_1", "smithy_client_1", "models_0_1", "Aws_restXml_1", "GetBucketAnalyticsConfigurationCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "requestHandler", "request", "context", "output", "require_GetBucketCorsCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_serde_1", "smithy_client_1", "models_0_1", "Aws_restXml_1", "GetBucketCorsCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "requestHandler", "request", "context", "output", "require_GetBucketEncryptionCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_serde_1", "smithy_client_1", "models_0_1", "Aws_restXml_1", "GetBucketEncryptionCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "requestHandler", "request", "context", "output", "require_GetBucketIntelligentTieringConfigurationCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_serde_1", "smithy_client_1", "models_0_1", "Aws_restXml_1", "GetBucketIntelligentTieringConfigurationCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "requestHandler", "request", "context", "output", "require_GetBucketInventoryConfigurationCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_serde_1", "smithy_client_1", "models_0_1", "Aws_restXml_1", "GetBucketInventoryConfigurationCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "requestHandler", "request", "context", "output", "require_GetBucketLifecycleConfigurationCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_serde_1", "smithy_client_1", "models_0_1", "Aws_restXml_1", "GetBucketLifecycleConfigurationCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "requestHandler", "request", "context", "output", "require_GetBucketLocationCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_serde_1", "smithy_client_1", "models_0_1", "Aws_restXml_1", "GetBucketLocationCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "requestHandler", "request", "context", "output", "require_GetBucketLoggingCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_serde_1", "smithy_client_1", "models_0_1", "Aws_restXml_1", "GetBucketLoggingCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "requestHandler", "request", "context", "output", "require_GetBucketMetricsConfigurationCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_serde_1", "smithy_client_1", "models_0_1", "Aws_restXml_1", "GetBucketMetricsConfigurationCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "requestHandler", "request", "context", "output", "require_GetBucketNotificationConfigurationCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_serde_1", "smithy_client_1", "models_0_1", "Aws_restXml_1", "GetBucketNotificationConfigurationCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "requestHandler", "request", "context", "output", "require_GetBucketOwnershipControlsCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_serde_1", "smithy_client_1", "models_0_1", "Aws_restXml_1", "GetBucketOwnershipControlsCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "requestHandler", "request", "context", "output", "require_GetBucketPolicyCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_serde_1", "smithy_client_1", "models_0_1", "Aws_restXml_1", "GetBucketPolicyCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "requestHandler", "request", "context", "output", "require_GetBucketPolicyStatusCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_serde_1", "smithy_client_1", "models_0_1", "Aws_restXml_1", "GetBucketPolicyStatusCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "requestHandler", "request", "context", "output", "require_GetBucketReplicationCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_serde_1", "smithy_client_1", "models_0_1", "Aws_restXml_1", "GetBucketReplicationCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "requestHandler", "request", "context", "output", "require_GetBucketRequestPaymentCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_serde_1", "smithy_client_1", "models_0_1", "Aws_restXml_1", "GetBucketRequestPaymentCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "requestHandler", "request", "context", "output", "require_GetBucketTaggingCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_serde_1", "smithy_client_1", "models_0_1", "Aws_restXml_1", "GetBucketTaggingCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "requestHandler", "request", "context", "output", "require_GetBucketVersioningCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_serde_1", "smithy_client_1", "models_0_1", "Aws_restXml_1", "GetBucketVersioningCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "requestHandler", "request", "context", "output", "require_GetBucketWebsiteCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_serde_1", "smithy_client_1", "models_0_1", "Aws_restXml_1", "GetBucketWebsiteCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "requestHandler", "request", "context", "output", "require_GetObjectAclCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_serde_1", "smithy_client_1", "models_0_1", "Aws_restXml_1", "GetObjectAclCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "requestHandler", "request", "context", "output", "require_GetObjectAttributesCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_serde_1", "middleware_ssec_1", "smithy_client_1", "models_0_1", "Aws_restXml_1", "GetObjectAttributesCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "requestHandler", "request", "context", "output", "require_GetObjectCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_flexible_checksums_1", "middleware_serde_1", "middleware_ssec_1", "smithy_client_1", "models_0_1", "Aws_restXml_1", "GetObjectCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "requestHandler", "request", "context", "output", "require_GetObjectLegalHoldCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_serde_1", "smithy_client_1", "models_0_1", "Aws_restXml_1", "GetObjectLegalHoldCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "requestHandler", "request", "context", "output", "require_GetObjectLockConfigurationCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_serde_1", "smithy_client_1", "models_0_1", "Aws_restXml_1", "GetObjectLockConfigurationCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "requestHandler", "request", "context", "output", "require_GetObjectRetentionCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_serde_1", "smithy_client_1", "models_0_1", "Aws_restXml_1", "GetObjectRetentionCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "requestHandler", "request", "context", "output", "require_GetObjectTaggingCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_serde_1", "smithy_client_1", "models_0_1", "Aws_restXml_1", "GetObjectTaggingCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "requestHandler", "request", "context", "output", "require_GetObjectTorrentCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_serde_1", "smithy_client_1", "models_0_1", "Aws_restXml_1", "GetObjectTorrentCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "requestHandler", "request", "context", "output", "require_GetPublicAccessBlockCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_serde_1", "smithy_client_1", "models_0_1", "Aws_restXml_1", "GetPublicAccessBlockCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "requestHandler", "request", "context", "output", "require_HeadBucketCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_serde_1", "smithy_client_1", "models_0_1", "Aws_restXml_1", "HeadBucketCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "output", "requestHandler", "request", "context", "require_HeadObjectCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_serde_1", "middleware_ssec_1", "smithy_client_1", "models_0_1", "Aws_restXml_1", "HeadObjectCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "requestHandler", "request", "context", "output", "require_ListBucketAnalyticsConfigurationsCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_serde_1", "smithy_client_1", "models_0_1", "Aws_restXml_1", "ListBucketAnalyticsConfigurationsCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "requestHandler", "request", "context", "output", "require_ListBucketIntelligentTieringConfigurationsCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_serde_1", "smithy_client_1", "models_0_1", "Aws_restXml_1", "ListBucketIntelligentTieringConfigurationsCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "requestHandler", "request", "context", "output", "require_ListBucketInventoryConfigurationsCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_serde_1", "smithy_client_1", "models_0_1", "Aws_restXml_1", "ListBucketInventoryConfigurationsCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "requestHandler", "request", "context", "output", "require_ListBucketMetricsConfigurationsCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_serde_1", "smithy_client_1", "models_0_1", "Aws_restXml_1", "ListBucketMetricsConfigurationsCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "requestHandler", "request", "context", "output", "require_ListBucketsCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_serde_1", "smithy_client_1", "models_0_1", "Aws_restXml_1", "ListBucketsCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "requestHandler", "request", "context", "output", "require_ListMultipartUploadsCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_serde_1", "smithy_client_1", "models_0_1", "Aws_restXml_1", "ListMultipartUploadsCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "requestHandler", "request", "context", "output", "require_ListObjectsCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_serde_1", "smithy_client_1", "models_0_1", "Aws_restXml_1", "ListObjectsCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "requestHandler", "request", "context", "output", "require_ListObjectsV2Command", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_serde_1", "smithy_client_1", "models_0_1", "Aws_restXml_1", "ListObjectsV2Command", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "requestHandler", "request", "context", "output", "require_ListObjectVersionsCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_serde_1", "smithy_client_1", "models_0_1", "Aws_restXml_1", "ListObjectVersionsCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "requestHandler", "request", "context", "output", "require_ListPartsCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_serde_1", "middleware_ssec_1", "smithy_client_1", "models_0_1", "Aws_restXml_1", "ListPartsCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "requestHandler", "request", "context", "output", "require_PutBucketAccelerateConfigurationCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_flexible_checksums_1", "middleware_serde_1", "smithy_client_1", "models_0_1", "Aws_restXml_1", "PutBucketAccelerateConfigurationCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "output", "requestHandler", "request", "context", "require_PutBucketAclCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_flexible_checksums_1", "middleware_serde_1", "smithy_client_1", "models_0_1", "Aws_restXml_1", "PutBucketAclCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "output", "requestHandler", "request", "context", "require_PutBucketAnalyticsConfigurationCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_serde_1", "smithy_client_1", "models_0_1", "Aws_restXml_1", "PutBucketAnalyticsConfigurationCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "output", "requestHandler", "request", "context", "require_PutBucketCorsCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_flexible_checksums_1", "middleware_serde_1", "smithy_client_1", "models_0_1", "Aws_restXml_1", "PutBucketCorsCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "output", "requestHandler", "request", "context", "require_PutBucketEncryptionCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_flexible_checksums_1", "middleware_serde_1", "smithy_client_1", "models_0_1", "Aws_restXml_1", "PutBucketEncryptionCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "output", "requestHandler", "request", "context", "require_PutBucketIntelligentTieringConfigurationCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_serde_1", "smithy_client_1", "models_0_1", "Aws_restXml_1", "PutBucketIntelligentTieringConfigurationCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "output", "requestHandler", "request", "context", "require_PutBucketInventoryConfigurationCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_serde_1", "smithy_client_1", "models_0_1", "Aws_restXml_1", "PutBucketInventoryConfigurationCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "output", "requestHandler", "request", "context", "require_PutBucketLifecycleConfigurationCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_flexible_checksums_1", "middleware_serde_1", "smithy_client_1", "models_0_1", "Aws_restXml_1", "PutBucketLifecycleConfigurationCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "output", "requestHandler", "request", "context", "require_PutBucketLoggingCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_flexible_checksums_1", "middleware_serde_1", "smithy_client_1", "models_0_1", "Aws_restXml_1", "PutBucketLoggingCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "output", "requestHandler", "request", "context", "require_PutBucketMetricsConfigurationCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_serde_1", "smithy_client_1", "models_0_1", "Aws_restXml_1", "PutBucketMetricsConfigurationCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "output", "requestHandler", "request", "context", "require_PutBucketNotificationConfigurationCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_serde_1", "smithy_client_1", "models_0_1", "Aws_restXml_1", "PutBucketNotificationConfigurationCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "output", "requestHandler", "request", "context", "require_PutBucketOwnershipControlsCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_flexible_checksums_1", "middleware_serde_1", "smithy_client_1", "models_0_1", "Aws_restXml_1", "PutBucketOwnershipControlsCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "output", "requestHandler", "request", "context", "require_PutBucketPolicyCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_flexible_checksums_1", "middleware_serde_1", "smithy_client_1", "models_0_1", "Aws_restXml_1", "PutBucketPolicyCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "output", "requestHandler", "request", "context", "require_PutBucketReplicationCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_flexible_checksums_1", "middleware_serde_1", "smithy_client_1", "models_0_1", "Aws_restXml_1", "PutBucketReplicationCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "output", "requestHandler", "request", "context", "require_PutBucketRequestPaymentCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_flexible_checksums_1", "middleware_serde_1", "smithy_client_1", "models_0_1", "Aws_restXml_1", "PutBucketRequestPaymentCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "output", "requestHandler", "request", "context", "require_PutBucketTaggingCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_flexible_checksums_1", "middleware_serde_1", "smithy_client_1", "models_0_1", "Aws_restXml_1", "PutBucketTaggingCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "output", "requestHandler", "request", "context", "require_PutBucketVersioningCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_flexible_checksums_1", "middleware_serde_1", "smithy_client_1", "models_0_1", "Aws_restXml_1", "PutBucketVersioningCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "output", "requestHandler", "request", "context", "require_PutBucketWebsiteCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_flexible_checksums_1", "middleware_serde_1", "smithy_client_1", "models_0_1", "Aws_restXml_1", "PutBucketWebsiteCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "output", "requestHandler", "request", "context", "require_PutObjectAclCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_flexible_checksums_1", "middleware_serde_1", "smithy_client_1", "models_0_1", "Aws_restXml_1", "PutObjectAclCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "requestHandler", "request", "context", "output", "require_PutObjectCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_flexible_checksums_1", "middleware_sdk_s3_1", "middleware_serde_1", "middleware_ssec_1", "smithy_client_1", "models_0_1", "Aws_restXml_1", "PutObjectCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "requestHandler", "request", "context", "output", "require_PutObjectLegalHoldCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_flexible_checksums_1", "middleware_serde_1", "smithy_client_1", "models_0_1", "Aws_restXml_1", "PutObjectLegalHoldCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "requestHandler", "request", "context", "output", "require_PutObjectLockConfigurationCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_flexible_checksums_1", "middleware_serde_1", "smithy_client_1", "models_0_1", "Aws_restXml_1", "PutObjectLockConfigurationCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "requestHandler", "request", "context", "output", "require_PutObjectRetentionCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_flexible_checksums_1", "middleware_serde_1", "smithy_client_1", "models_1_1", "Aws_restXml_1", "PutObjectRetentionCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "requestHandler", "request", "context", "output", "require_PutObjectTaggingCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_flexible_checksums_1", "middleware_serde_1", "smithy_client_1", "models_1_1", "Aws_restXml_1", "PutObjectTaggingCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "requestHandler", "request", "context", "output", "require_PutPublicAccessBlockCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_flexible_checksums_1", "middleware_serde_1", "smithy_client_1", "models_1_1", "Aws_restXml_1", "PutPublicAccessBlockCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "output", "requestHandler", "request", "context", "require_RestoreObjectCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_flexible_checksums_1", "middleware_serde_1", "smithy_client_1", "models_1_1", "Aws_restXml_1", "RestoreObjectCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "requestHandler", "request", "context", "output", "require_SelectObjectContentCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_serde_1", "middleware_ssec_1", "smithy_client_1", "models_1_1", "Aws_restXml_1", "SelectObjectContentCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "requestHandler", "request", "context", "output", "require_UploadPartCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_flexible_checksums_1", "middleware_serde_1", "middleware_ssec_1", "smithy_client_1", "models_1_1", "Aws_restXml_1", "UploadPartCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "requestHandler", "request", "context", "output", "require_UploadPartCopyCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_sdk_s3_1", "middleware_serde_1", "middleware_ssec_1", "smithy_client_1", "models_1_1", "Aws_restXml_1", "UploadPartCopyCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "requestHandler", "request", "context", "output", "require_WriteGetObjectResponseCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_serde_1", "smithy_client_1", "models_1_1", "Aws_restXml_1", "WriteGetObjectResponseCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "output", "requestHandler", "request", "context", "require_EventStreamSerdeConfig", "__commonJSMin", "exports", "resolveEventStreamSerdeConfig", "input", "require_dist_cjs", "__commonJSMin", "exports", "tslib_1", "require_dist_cjs", "__commonJSMin", "exports", "protocol_http_1", "addExpectContinueMiddleware", "options", "next", "args", "request", "getAddExpectContinuePlugin", "clientStack", "require_EndpointParameters", "__commonJSMin", "exports", "resolveClientEndpointParameters", "options", "require_Int64", "__commonJSMin", "exports", "util_hex_encoding_1", "Int64", "bytes", "number", "i", "remaining", "negate", "negative", "require_HeaderMarshaller", "__commonJSMin", "exports", "util_hex_encoding_1", "Int64_1", "HeaderMarshaller", "toUtf8", "fromUtf8", "headers", "chunks", "headerName", "bytes", "out", "carry", "position", "chunk", "header", "shortView", "intView", "longBytes", "binView", "binBytes", "utf8Bytes", "strView", "strBytes", "tsBytes", "UUID_PATTERN", "uuidBytes", "nameLength", "name", "BOOLEAN_TAG", "BYTE_TAG", "SHORT_TAG", "INT_TAG", "LONG_TAG", "binaryLength", "BINARY_TAG", "stringLength", "STRING_TAG", "TIMESTAMP_TAG", "UUID_TAG", "HEADER_VALUE_TYPE", "require_splitMessage", "__commonJSMin", "exports", "crc32_1", "PRELUDE_MEMBER_LENGTH", "PRELUDE_LENGTH", "CHECKSUM_LENGTH", "MINIMUM_MESSAGE_LENGTH", "splitMessage", "byteLength", "byteOffset", "buffer", "view", "messageLength", "headerLength", "expectedPreludeChecksum", "expectedMessageChecksum", "checksummer", "require_EventStreamCodec", "__commonJSMin", "exports", "crc32_1", "HeaderMarshaller_1", "splitMessage_1", "EventStreamCodec", "toUtf8", "fromUtf8", "rawHeaders", "body", "headers", "length", "out", "view", "checksum", "message", "require_Message", "__commonJSMin", "exports", "require_dist_cjs", "__commonJSMin", "exports", "tslib_1", "require_getChunkedStream", "__commonJSMin", "exports", "getChunkedStream", "source", "currentMessageTotalLength", "currentMessagePendingLength", "currentMessage", "messageLengthBuffer", "allocateMessage", "size", "iterator", "sourceIterator", "value", "done", "chunkLength", "currentOffset", "bytesRemaining", "numBytesForTotal", "numBytesToWrite", "require_getUnmarshalledStream", "__commonJSMin", "exports", "getUnmarshalledStream", "source", "options", "chunk", "message", "messageType", "unmodeledError", "code", "exception", "deserializedException", "error", "event", "deserialized", "require_EventStreamMarshaller", "__commonJSMin", "exports", "eventstream_codec_1", "getChunkedStream_1", "getUnmarshalledStream_1", "EventStreamMarshaller", "utf8Encoder", "utf8Decoder", "body", "deserializer", "chunkedStream", "input", "serializer", "self", "serializedIterator", "chunk", "require_provider", "__commonJSMin", "exports", "EventStreamMarshaller_1", "eventStreamSerdeProvider", "options", "require_dist_cjs", "__commonJSMin", "exports", "tslib_1", "require_utils", "__commonJSMin", "exports", "readabletoIterable", "readStream", "streamEnded", "generationEnded", "records", "err", "data", "value", "resolve", "require_EventStreamMarshaller", "__commonJSMin", "exports", "eventstream_serde_universal_1", "stream_1", "utils_1", "EventStreamMarshaller", "utf8Encoder", "utf8Decoder", "body", "deserializer", "bodyIterable", "input", "serializer", "require_provider", "__commonJSMin", "exports", "EventStreamMarshaller_1", "eventStreamSerdeProvider", "options", "require_dist_cjs", "__commonJSMin", "exports", "tslib_1", "require_HashCalculator", "__commonJSMin", "exports", "util_utf8_1", "stream_1", "HashCalculator", "hash", "options", "chunk", "encoding", "callback", "err", "require_fileStreamHasher", "__commonJSMin", "exports", "fs_1", "HashCalculator_1", "fileStreamHasher", "hashCtor", "fileStream", "resolve", "reject", "isReadStream", "fileStreamTee", "hash", "hashCalculator", "err", "stream", "require_readableStreamHasher", "__commonJSMin", "exports", "HashCalculator_1", "readableStreamHasher", "hashCtor", "readableStream", "hash", "hashCalculator", "resolve", "reject", "err", "require_dist_cjs", "__commonJSMin", "exports", "tslib_1", "require_NodeDisableMultiregionAccessPointConfigOptions", "__commonJSMin", "exports", "util_config_provider_1", "env", "profile", "require_NodeUseArnRegionConfigOptions", "__commonJSMin", "exports", "util_config_provider_1", "env", "profile", "require_bucketHostnameUtils", "__commonJSMin", "exports", "DOMAIN_PATTERN", "IP_ADDRESS_PATTERN", "DOTS_PATTERN", "S3_US_EAST_1_ALTNAME_PATTERN", "AWS_PARTITION_SUFFIX", "isBucketNameOptions", "options", "isDnsCompatibleBucketName", "bucketName", "getRegionalSuffix", "hostname", "parts", "getSuffix", "getSuffixForArnEndpoint", "validateArnEndpointOptions", "validateService", "service", "validateS3Service", "validateOutpostService", "validatePartition", "partition", "validateRegion", "region", "isEqualRegions", "validateRegionalClient", "regionA", "regionB", "validateAccountId", "accountId", "validateDNSHostLabel", "label", "validateCustomEndpoint", "getArnResources", "resource", "delimiter", "resourceType", "rest", "outpostId", "_", "accesspointName", "validateNoDualstack", "dualstackEndpoint", "validateNoFIPS", "useFipsEndpoint", "validateMrapAlias", "name", "require_bucketHostname", "__commonJSMin", "exports", "bucketHostnameUtils_1", "bucketHostname", "options", "getEndpointFromBucketName", "getEndpointFromArn", "accelerateEndpoint", "region", "baseHostname", "bucketName", "dualstackEndpoint", "fipsEndpoint", "pathStyleEndpoint", "tlsCompatible", "isCustomEndpoint", "clientRegion", "hostnameSuffix", "clientPartition", "service", "partition", "accountId", "resource", "accesspointName", "outpostId", "getEndpointFromObjectLambdaArn", "getEndpointFromMRAPArn", "getEndpointFromOutpostArn", "getEndpointFromAccessPointArn", "useArnRegion", "clientSigningRegion", "DNSHostLabel", "endpointRegion", "signingRegion", "disableMultiregionAccessPoints", "mrapAlias", "hostnamePrefix", "require_bucketEndpointMiddleware", "__commonJSMin", "exports", "protocol_http_1", "util_arn_parser_1", "bucketHostname_1", "bucketEndpointMiddleware", "options", "next", "context", "args", "bucketName", "replaceBucketInPath", "request", "bucketArn", "clientRegion", "useDualstackEndpoint", "useFipsEndpoint", "partition", "signingRegion", "useArnRegion", "hostname", "bucketEndpoint", "modifiedSigningRegion", "signingService", "dualstackEndpoint", "fipsEndpoint", "getBucketEndpointPlugin", "clientStack", "require_configurations", "__commonJSMin", "exports", "resolveBucketEndpointConfig", "input", "bucketEndpoint", "forcePathStyle", "useAccelerateEndpoint", "useArnRegion", "disableMultiregionAccessPoints", "require_dist_cjs", "__commonJSMin", "exports", "tslib_1", "bucketHostnameUtils_1", "require_getAwsChunkedEncodingStream", "__commonJSMin", "exports", "stream_1", "getAwsChunkedEncodingStream", "readableStream", "options", "base64Encoder", "bodyLengthChecker", "checksumAlgorithmFn", "checksumLocationName", "streamHasher", "checksumRequired", "digest", "awsChunkedEncodingStream", "data", "checksum", "require_sdk_stream_mixin", "__commonJSMin", "exports", "node_http_handler_1", "util_buffer_from_1", "stream_1", "util_1", "ERR_MSG_STREAM_HAS_BEEN_TRANSFORMED", "sdkStreamMixin", "stream", "_a", "_b", "name", "transformed", "transformToByteArray", "encoding", "buf", "require_dist_cjs", "__commonJSMin", "exports", "tslib_1", "require_SignatureV4MultiRegion", "__commonJSMin", "exports", "signature_v4_1", "SignatureV4MultiRegion", "options", "requestToSign", "originalRequest", "CrtSignerV4", "e", "require_dist_cjs", "__commonJSMin", "exports", "tslib_1", "require_ruleset", "__commonJSMin", "exports", "bV", "bW", "bX", "bY", "bZ", "ca", "cb", "cc", "cd", "ce", "cf", "cg", "ch", "ci", "cj", "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", "aa", "ab", "ac", "ad", "ae", "af", "ag", "ah", "ai", "aj", "ak", "al", "am", "an", "ao", "ap", "aq", "ar", "as", "at", "au", "av", "aw", "ax", "ay", "az", "aA", "aB", "aC", "aD", "aE", "aF", "aG", "aH", "aI", "aJ", "aK", "aL", "aM", "aN", "aO", "aP", "aQ", "aR", "aS", "aT", "aU", "aV", "aW", "aX", "aY", "aZ", "ba", "bb", "bc", "bd", "be", "bf", "bg", "bh", "bi", "bj", "bk", "bl", "bm", "bn", "bo", "bp", "bq", "br", "bs", "bt", "bu", "bv", "bw", "bx", "by", "bz", "bA", "bB", "bC", "bD", "bE", "bF", "bG", "bH", "bI", "bJ", "bK", "bL", "bM", "bN", "bO", "bP", "bQ", "bR", "bS", "bT", "bU", "_data", "require_endpointResolver", "__commonJSMin", "exports", "util_endpoints_1", "ruleset_1", "defaultEndpointResolver", "endpointParams", "context", "require_runtimeConfig_shared", "__commonJSMin", "exports", "signature_v4_multi_region_1", "smithy_client_1", "url_parser_1", "util_base64_1", "util_utf8_1", "endpointResolver_1", "getRuntimeConfig", "config", "require_runtimeConfig", "__commonJSMin", "exports", "tslib_1", "package_json_1", "client_sts_1", "config_resolver_1", "credential_provider_node_1", "eventstream_serde_node_1", "hash_node_1", "hash_stream_node_1", "middleware_bucket_endpoint_1", "middleware_retry_1", "node_config_provider_1", "node_http_handler_1", "util_body_length_node_1", "util_retry_1", "util_stream_node_1", "util_user_agent_node_1", "runtimeConfig_shared_1", "smithy_client_1", "util_defaults_mode_node_1", "smithy_client_2", "getRuntimeConfig", "config", "defaultsMode", "defaultConfigProvider", "clientSharedValues", "require_S3Client", "__commonJSMin", "exports", "config_resolver_1", "eventstream_serde_config_resolver_1", "middleware_content_length_1", "middleware_endpoint_1", "middleware_expect_continue_1", "middleware_host_header_1", "middleware_logger_1", "middleware_recursion_detection_1", "middleware_retry_1", "middleware_sdk_s3_1", "middleware_signing_1", "middleware_user_agent_1", "smithy_client_1", "EndpointParameters_1", "runtimeConfig_1", "S3Client", "configuration", "_config_0", "_config_1", "_config_2", "_config_3", "_config_4", "_config_5", "_config_6", "_config_7", "_config_8", "_config_9", "require_S3", "__commonJSMin", "exports", "AbortMultipartUploadCommand_1", "CompleteMultipartUploadCommand_1", "CopyObjectCommand_1", "CreateBucketCommand_1", "CreateMultipartUploadCommand_1", "DeleteBucketAnalyticsConfigurationCommand_1", "DeleteBucketCommand_1", "DeleteBucketCorsCommand_1", "DeleteBucketEncryptionCommand_1", "DeleteBucketIntelligentTieringConfigurationCommand_1", "DeleteBucketInventoryConfigurationCommand_1", "DeleteBucketLifecycleCommand_1", "DeleteBucketMetricsConfigurationCommand_1", "DeleteBucketOwnershipControlsCommand_1", "DeleteBucketPolicyCommand_1", "DeleteBucketReplicationCommand_1", "DeleteBucketTaggingCommand_1", "DeleteBucketWebsiteCommand_1", "DeleteObjectCommand_1", "DeleteObjectsCommand_1", "DeleteObjectTaggingCommand_1", "DeletePublicAccessBlockCommand_1", "GetBucketAccelerateConfigurationCommand_1", "GetBucketAclCommand_1", "GetBucketAnalyticsConfigurationCommand_1", "GetBucketCorsCommand_1", "GetBucketEncryptionCommand_1", "GetBucketIntelligentTieringConfigurationCommand_1", "GetBucketInventoryConfigurationCommand_1", "GetBucketLifecycleConfigurationCommand_1", "GetBucketLocationCommand_1", "GetBucketLoggingCommand_1", "GetBucketMetricsConfigurationCommand_1", "GetBucketNotificationConfigurationCommand_1", "GetBucketOwnershipControlsCommand_1", "GetBucketPolicyCommand_1", "GetBucketPolicyStatusCommand_1", "GetBucketReplicationCommand_1", "GetBucketRequestPaymentCommand_1", "GetBucketTaggingCommand_1", "GetBucketVersioningCommand_1", "GetBucketWebsiteCommand_1", "GetObjectAclCommand_1", "GetObjectAttributesCommand_1", "GetObjectCommand_1", "GetObjectLegalHoldCommand_1", "GetObjectLockConfigurationCommand_1", "GetObjectRetentionCommand_1", "GetObjectTaggingCommand_1", "GetObjectTorrentCommand_1", "GetPublicAccessBlockCommand_1", "HeadBucketCommand_1", "HeadObjectCommand_1", "ListBucketAnalyticsConfigurationsCommand_1", "ListBucketIntelligentTieringConfigurationsCommand_1", "ListBucketInventoryConfigurationsCommand_1", "ListBucketMetricsConfigurationsCommand_1", "ListBucketsCommand_1", "ListMultipartUploadsCommand_1", "ListObjectsCommand_1", "ListObjectsV2Command_1", "ListObjectVersionsCommand_1", "ListPartsCommand_1", "PutBucketAccelerateConfigurationCommand_1", "PutBucketAclCommand_1", "PutBucketAnalyticsConfigurationCommand_1", "PutBucketCorsCommand_1", "PutBucketEncryptionCommand_1", "PutBucketIntelligentTieringConfigurationCommand_1", "PutBucketInventoryConfigurationCommand_1", "PutBucketLifecycleConfigurationCommand_1", "PutBucketLoggingCommand_1", "PutBucketMetricsConfigurationCommand_1", "PutBucketNotificationConfigurationCommand_1", "PutBucketOwnershipControlsCommand_1", "PutBucketPolicyCommand_1", "PutBucketReplicationCommand_1", "PutBucketRequestPaymentCommand_1", "PutBucketTaggingCommand_1", "PutBucketVersioningCommand_1", "PutBucketWebsiteCommand_1", "PutObjectAclCommand_1", "PutObjectCommand_1", "PutObjectLegalHoldCommand_1", "PutObjectLockConfigurationCommand_1", "PutObjectRetentionCommand_1", "PutObjectTaggingCommand_1", "PutPublicAccessBlockCommand_1", "RestoreObjectCommand_1", "SelectObjectContentCommand_1", "UploadPartCommand_1", "UploadPartCopyCommand_1", "WriteGetObjectResponseCommand_1", "S3Client_1", "S3", "args", "optionsOrCb", "cb", "command", "require_commands", "__commonJSMin", "exports", "tslib_1", "require_models", "__commonJSMin", "exports", "tslib_1", "require_Interfaces", "__commonJSMin", "exports", "require_ListObjectsV2Paginator", "__commonJSMin", "exports", "ListObjectsV2Command_1", "S3_1", "S3Client_1", "makePagedClientRequest", "client", "input", "args", "makePagedRequest", "paginateListObjectsV2", "config", "additionalArguments", "token", "hasNext", "page", "prevToken", "require_ListPartsPaginator", "__commonJSMin", "exports", "ListPartsCommand_1", "S3_1", "S3Client_1", "makePagedClientRequest", "client", "input", "args", "makePagedRequest", "paginateListParts", "config", "additionalArguments", "token", "hasNext", "page", "prevToken", "require_pagination", "__commonJSMin", "exports", "tslib_1", "require_sleep", "__commonJSMin", "exports", "sleep", "seconds", "resolve", "require_waiter", "__commonJSMin", "exports", "WaiterState", "checkExceptions", "result", "abortError", "timeoutError", "require_poller", "__commonJSMin", "exports", "sleep_1", "waiter_1", "exponentialBackoffWithJitter", "minDelay", "maxDelay", "attemptCeiling", "attempt", "delay", "randomInRange", "min", "max", "runPolling", "maxWaitTime", "abortController", "client", "abortSignal", "input", "acceptorChecks", "_a", "state", "reason", "currentAttempt", "waitUntil", "require_validate", "__commonJSMin", "exports", "validateWaiterOptions", "options", "require_utils", "__commonJSMin", "exports", "tslib_1", "require_createWaiter", "__commonJSMin", "exports", "poller_1", "utils_1", "waiter_1", "abortTimeout", "abortSignal", "resolve", "createWaiter", "options", "input", "acceptorChecks", "params", "exitConditions", "require_dist_cjs", "__commonJSMin", "exports", "tslib_1", "require_waitForBucketExists", "__commonJSMin", "exports", "util_waiter_1", "HeadBucketCommand_1", "checkState", "client", "input", "reason", "exception", "waitForBucketExists", "params", "serviceDefaults", "waitUntilBucketExists", "result", "require_waitForBucketNotExists", "__commonJSMin", "exports", "util_waiter_1", "HeadBucketCommand_1", "checkState", "client", "input", "reason", "exception", "waitForBucketNotExists", "params", "serviceDefaults", "waitUntilBucketNotExists", "result", "require_waitForObjectExists", "__commonJSMin", "exports", "util_waiter_1", "HeadObjectCommand_1", "checkState", "client", "input", "reason", "exception", "waitForObjectExists", "params", "serviceDefaults", "waitUntilObjectExists", "result", "require_waitForObjectNotExists", "__commonJSMin", "exports", "util_waiter_1", "HeadObjectCommand_1", "checkState", "client", "input", "reason", "exception", "waitForObjectNotExists", "params", "serviceDefaults", "waitUntilObjectNotExists", "result", "require_waiters", "__commonJSMin", "exports", "tslib_1", "require_dist_cjs", "__commonJSMin", "exports", "tslib_1", "S3ServiceException_1", "require_EndpointParameters", "__commonJSMin", "exports", "resolveClientEndpointParameters", "options", "require_ruleset", "__commonJSMin", "exports", "q", "r", "s", "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "_data", "require_endpointResolver", "__commonJSMin", "exports", "util_endpoints_1", "ruleset_1", "defaultEndpointResolver", "endpointParams", "context", "require_runtimeConfig_shared", "__commonJSMin", "exports", "smithy_client_1", "url_parser_1", "util_base64_1", "util_utf8_1", "endpointResolver_1", "getRuntimeConfig", "config", "require_runtimeConfig", "__commonJSMin", "exports", "tslib_1", "package_json_1", "client_sts_1", "config_resolver_1", "credential_provider_node_1", "hash_node_1", "middleware_retry_1", "node_config_provider_1", "node_http_handler_1", "util_body_length_node_1", "util_retry_1", "util_user_agent_node_1", "runtimeConfig_shared_1", "smithy_client_1", "util_defaults_mode_node_1", "smithy_client_2", "getRuntimeConfig", "config", "defaultsMode", "defaultConfigProvider", "clientSharedValues", "require_AthenaClient", "__commonJSMin", "exports", "config_resolver_1", "middleware_content_length_1", "middleware_endpoint_1", "middleware_host_header_1", "middleware_logger_1", "middleware_recursion_detection_1", "middleware_retry_1", "middleware_signing_1", "middleware_user_agent_1", "smithy_client_1", "EndpointParameters_1", "runtimeConfig_1", "AthenaClient", "configuration", "_config_0", "_config_1", "_config_2", "_config_3", "_config_4", "_config_5", "_config_6", "_config_7", "require_AthenaServiceException", "__commonJSMin", "exports", "smithy_client_1", "AthenaServiceException", "options", "require_models_0", "__commonJSMin", "exports", "AthenaServiceException_1", "S3AclOption", "InternalServerException", "opts", "InvalidRequestException", "EncryptionOption", "StatementType", "QueryExecutionState", "DataCatalogType", "ThrottleReason", "TooManyRequestsException", "ResourceNotFoundException", "NotebookType", "CalculationExecutionState", "MetadataException", "ColumnNullable", "SessionState", "WorkGroupState", "ExecutorState", "ExecutorType", "SessionAlreadyExistsException", "AclConfigurationFilterSensitiveLog", "obj", "BatchGetNamedQueryInputFilterSensitiveLog", "NamedQueryFilterSensitiveLog", "UnprocessedNamedQueryIdFilterSensitiveLog", "BatchGetNamedQueryOutputFilterSensitiveLog", "BatchGetPreparedStatementInputFilterSensitiveLog", "PreparedStatementFilterSensitiveLog", "UnprocessedPreparedStatementNameFilterSensitiveLog", "BatchGetPreparedStatementOutputFilterSensitiveLog", "BatchGetQueryExecutionInputFilterSensitiveLog", "EngineVersionFilterSensitiveLog", "QueryExecutionContextFilterSensitiveLog", "EncryptionConfigurationFilterSensitiveLog", "ResultConfigurationFilterSensitiveLog", "ResultReuseByAgeConfigurationFilterSensitiveLog", "ResultReuseConfigurationFilterSensitiveLog", "ResultReuseInformationFilterSensitiveLog", "QueryExecutionStatisticsFilterSensitiveLog", "AthenaErrorFilterSensitiveLog", "QueryExecutionStatusFilterSensitiveLog", "QueryExecutionFilterSensitiveLog", "UnprocessedQueryExecutionIdFilterSensitiveLog", "BatchGetQueryExecutionOutputFilterSensitiveLog", "TagFilterSensitiveLog", "CreateDataCatalogInputFilterSensitiveLog", "CreateDataCatalogOutputFilterSensitiveLog", "CreateNamedQueryInputFilterSensitiveLog", "CreateNamedQueryOutputFilterSensitiveLog", "CreateNotebookInputFilterSensitiveLog", "CreateNotebookOutputFilterSensitiveLog", "CreatePreparedStatementInputFilterSensitiveLog", "CreatePreparedStatementOutputFilterSensitiveLog", "CreatePresignedNotebookUrlRequestFilterSensitiveLog", "CreatePresignedNotebookUrlResponseFilterSensitiveLog", "CustomerContentEncryptionConfigurationFilterSensitiveLog", "WorkGroupConfigurationFilterSensitiveLog", "CreateWorkGroupInputFilterSensitiveLog", "CreateWorkGroupOutputFilterSensitiveLog", "DeleteDataCatalogInputFilterSensitiveLog", "DeleteDataCatalogOutputFilterSensitiveLog", "DeleteNamedQueryInputFilterSensitiveLog", "DeleteNamedQueryOutputFilterSensitiveLog", "DeleteNotebookInputFilterSensitiveLog", "DeleteNotebookOutputFilterSensitiveLog", "DeletePreparedStatementInputFilterSensitiveLog", "DeletePreparedStatementOutputFilterSensitiveLog", "DeleteWorkGroupInputFilterSensitiveLog", "DeleteWorkGroupOutputFilterSensitiveLog", "ExportNotebookInputFilterSensitiveLog", "NotebookMetadataFilterSensitiveLog", "ExportNotebookOutputFilterSensitiveLog", "GetCalculationExecutionRequestFilterSensitiveLog", "CalculationResultFilterSensitiveLog", "CalculationStatisticsFilterSensitiveLog", "CalculationStatusFilterSensitiveLog", "GetCalculationExecutionResponseFilterSensitiveLog", "GetCalculationExecutionCodeRequestFilterSensitiveLog", "GetCalculationExecutionCodeResponseFilterSensitiveLog", "GetCalculationExecutionStatusRequestFilterSensitiveLog", "GetCalculationExecutionStatusResponseFilterSensitiveLog", "GetDatabaseInputFilterSensitiveLog", "DatabaseFilterSensitiveLog", "GetDatabaseOutputFilterSensitiveLog", "GetDataCatalogInputFilterSensitiveLog", "DataCatalogFilterSensitiveLog", "GetDataCatalogOutputFilterSensitiveLog", "GetNamedQueryInputFilterSensitiveLog", "GetNamedQueryOutputFilterSensitiveLog", "GetNotebookMetadataInputFilterSensitiveLog", "GetNotebookMetadataOutputFilterSensitiveLog", "GetPreparedStatementInputFilterSensitiveLog", "GetPreparedStatementOutputFilterSensitiveLog", "GetQueryExecutionInputFilterSensitiveLog", "GetQueryExecutionOutputFilterSensitiveLog", "GetQueryResultsInputFilterSensitiveLog", "ColumnInfoFilterSensitiveLog", "ResultSetMetadataFilterSensitiveLog", "DatumFilterSensitiveLog", "RowFilterSensitiveLog", "ResultSetFilterSensitiveLog", "GetQueryResultsOutputFilterSensitiveLog", "GetQueryRuntimeStatisticsInputFilterSensitiveLog", "QueryRuntimeStatisticsRowsFilterSensitiveLog", "QueryRuntimeStatisticsTimelineFilterSensitiveLog", "GetSessionRequestFilterSensitiveLog", "EngineConfigurationFilterSensitiveLog", "SessionConfigurationFilterSensitiveLog", "SessionStatisticsFilterSensitiveLog", "SessionStatusFilterSensitiveLog", "GetSessionResponseFilterSensitiveLog", "GetSessionStatusRequestFilterSensitiveLog", "GetSessionStatusResponseFilterSensitiveLog", "GetTableMetadataInputFilterSensitiveLog", "ColumnFilterSensitiveLog", "TableMetadataFilterSensitiveLog", "GetTableMetadataOutputFilterSensitiveLog", "GetWorkGroupInputFilterSensitiveLog", "WorkGroupFilterSensitiveLog", "GetWorkGroupOutputFilterSensitiveLog", "ImportNotebookInputFilterSensitiveLog", "ImportNotebookOutputFilterSensitiveLog", "ListApplicationDPUSizesInputFilterSensitiveLog", "ApplicationDPUSizesFilterSensitiveLog", "ListApplicationDPUSizesOutputFilterSensitiveLog", "ListCalculationExecutionsRequestFilterSensitiveLog", "CalculationSummaryFilterSensitiveLog", "ListCalculationExecutionsResponseFilterSensitiveLog", "ListDatabasesInputFilterSensitiveLog", "ListDatabasesOutputFilterSensitiveLog", "ListDataCatalogsInputFilterSensitiveLog", "DataCatalogSummaryFilterSensitiveLog", "ListDataCatalogsOutputFilterSensitiveLog", "ListEngineVersionsInputFilterSensitiveLog", "ListEngineVersionsOutputFilterSensitiveLog", "ListExecutorsRequestFilterSensitiveLog", "ExecutorsSummaryFilterSensitiveLog", "ListExecutorsResponseFilterSensitiveLog", "ListNamedQueriesInputFilterSensitiveLog", "ListNamedQueriesOutputFilterSensitiveLog", "FilterDefinitionFilterSensitiveLog", "ListNotebookMetadataInputFilterSensitiveLog", "ListNotebookMetadataOutputFilterSensitiveLog", "ListNotebookSessionsRequestFilterSensitiveLog", "NotebookSessionSummaryFilterSensitiveLog", "ListNotebookSessionsResponseFilterSensitiveLog", "ListPreparedStatementsInputFilterSensitiveLog", "PreparedStatementSummaryFilterSensitiveLog", "ListPreparedStatementsOutputFilterSensitiveLog", "ListQueryExecutionsInputFilterSensitiveLog", "ListQueryExecutionsOutputFilterSensitiveLog", "ListSessionsRequestFilterSensitiveLog", "SessionSummaryFilterSensitiveLog", "ListSessionsResponseFilterSensitiveLog", "ListTableMetadataInputFilterSensitiveLog", "ListTableMetadataOutputFilterSensitiveLog", "ListTagsForResourceInputFilterSensitiveLog", "ListTagsForResourceOutputFilterSensitiveLog", "ListWorkGroupsInputFilterSensitiveLog", "WorkGroupSummaryFilterSensitiveLog", "ListWorkGroupsOutputFilterSensitiveLog", "CalculationConfigurationFilterSensitiveLog", "StartCalculationExecutionRequestFilterSensitiveLog", "StartCalculationExecutionResponseFilterSensitiveLog", "StartQueryExecutionInputFilterSensitiveLog", "StartQueryExecutionOutputFilterSensitiveLog", "StartSessionRequestFilterSensitiveLog", "StartSessionResponseFilterSensitiveLog", "StopCalculationExecutionRequestFilterSensitiveLog", "StopCalculationExecutionResponseFilterSensitiveLog", "StopQueryExecutionInputFilterSensitiveLog", "StopQueryExecutionOutputFilterSensitiveLog", "TagResourceInputFilterSensitiveLog", "TagResourceOutputFilterSensitiveLog", "TerminateSessionRequestFilterSensitiveLog", "TerminateSessionResponseFilterSensitiveLog", "UntagResourceInputFilterSensitiveLog", "UntagResourceOutputFilterSensitiveLog", "UpdateDataCatalogInputFilterSensitiveLog", "UpdateDataCatalogOutputFilterSensitiveLog", "UpdateNamedQueryInputFilterSensitiveLog", "UpdateNamedQueryOutputFilterSensitiveLog", "UpdateNotebookInputFilterSensitiveLog", "UpdateNotebookOutputFilterSensitiveLog", "UpdateNotebookMetadataInputFilterSensitiveLog", "UpdateNotebookMetadataOutputFilterSensitiveLog", "UpdatePreparedStatementInputFilterSensitiveLog", "UpdatePreparedStatementOutputFilterSensitiveLog", "ResultConfigurationUpdatesFilterSensitiveLog", "WorkGroupConfigurationUpdatesFilterSensitiveLog", "UpdateWorkGroupInputFilterSensitiveLog", "UpdateWorkGroupOutputFilterSensitiveLog", "QueryStagePlanNodeFilterSensitiveLog", "QueryStageFilterSensitiveLog", "QueryRuntimeStatisticsFilterSensitiveLog", "GetQueryRuntimeStatisticsOutputFilterSensitiveLog", "require_Aws_json1_1", "__commonJSMin", "exports", "protocol_http_1", "smithy_client_1", "uuid_1", "AthenaServiceException_1", "models_0_1", "serializeAws_json1_1BatchGetNamedQueryCommand", "input", "context", "headers", "body", "serializeAws_json1_1BatchGetNamedQueryInput", "buildHttpRpcRequest", "serializeAws_json1_1BatchGetPreparedStatementCommand", "serializeAws_json1_1BatchGetPreparedStatementInput", "serializeAws_json1_1BatchGetQueryExecutionCommand", "serializeAws_json1_1BatchGetQueryExecutionInput", "serializeAws_json1_1CreateDataCatalogCommand", "serializeAws_json1_1CreateDataCatalogInput", "serializeAws_json1_1CreateNamedQueryCommand", "serializeAws_json1_1CreateNamedQueryInput", "serializeAws_json1_1CreateNotebookCommand", "serializeAws_json1_1CreateNotebookInput", "serializeAws_json1_1CreatePreparedStatementCommand", "serializeAws_json1_1CreatePreparedStatementInput", "serializeAws_json1_1CreatePresignedNotebookUrlCommand", "serializeAws_json1_1CreatePresignedNotebookUrlRequest", "serializeAws_json1_1CreateWorkGroupCommand", "serializeAws_json1_1CreateWorkGroupInput", "serializeAws_json1_1DeleteDataCatalogCommand", "serializeAws_json1_1DeleteDataCatalogInput", "serializeAws_json1_1DeleteNamedQueryCommand", "serializeAws_json1_1DeleteNamedQueryInput", "serializeAws_json1_1DeleteNotebookCommand", "serializeAws_json1_1DeleteNotebookInput", "serializeAws_json1_1DeletePreparedStatementCommand", "serializeAws_json1_1DeletePreparedStatementInput", "serializeAws_json1_1DeleteWorkGroupCommand", "serializeAws_json1_1DeleteWorkGroupInput", "serializeAws_json1_1ExportNotebookCommand", "serializeAws_json1_1ExportNotebookInput", "serializeAws_json1_1GetCalculationExecutionCommand", "serializeAws_json1_1GetCalculationExecutionRequest", "serializeAws_json1_1GetCalculationExecutionCodeCommand", "serializeAws_json1_1GetCalculationExecutionCodeRequest", "serializeAws_json1_1GetCalculationExecutionStatusCommand", "serializeAws_json1_1GetCalculationExecutionStatusRequest", "serializeAws_json1_1GetDatabaseCommand", "serializeAws_json1_1GetDatabaseInput", "serializeAws_json1_1GetDataCatalogCommand", "serializeAws_json1_1GetDataCatalogInput", "serializeAws_json1_1GetNamedQueryCommand", "serializeAws_json1_1GetNamedQueryInput", "serializeAws_json1_1GetNotebookMetadataCommand", "serializeAws_json1_1GetNotebookMetadataInput", "serializeAws_json1_1GetPreparedStatementCommand", "serializeAws_json1_1GetPreparedStatementInput", "serializeAws_json1_1GetQueryExecutionCommand", "serializeAws_json1_1GetQueryExecutionInput", "serializeAws_json1_1GetQueryResultsCommand", "serializeAws_json1_1GetQueryResultsInput", "serializeAws_json1_1GetQueryRuntimeStatisticsCommand", "serializeAws_json1_1GetQueryRuntimeStatisticsInput", "serializeAws_json1_1GetSessionCommand", "serializeAws_json1_1GetSessionRequest", "serializeAws_json1_1GetSessionStatusCommand", "serializeAws_json1_1GetSessionStatusRequest", "serializeAws_json1_1GetTableMetadataCommand", "serializeAws_json1_1GetTableMetadataInput", "serializeAws_json1_1GetWorkGroupCommand", "serializeAws_json1_1GetWorkGroupInput", "serializeAws_json1_1ImportNotebookCommand", "serializeAws_json1_1ImportNotebookInput", "serializeAws_json1_1ListApplicationDPUSizesCommand", "serializeAws_json1_1ListApplicationDPUSizesInput", "serializeAws_json1_1ListCalculationExecutionsCommand", "serializeAws_json1_1ListCalculationExecutionsRequest", "serializeAws_json1_1ListDatabasesCommand", "serializeAws_json1_1ListDatabasesInput", "serializeAws_json1_1ListDataCatalogsCommand", "serializeAws_json1_1ListDataCatalogsInput", "serializeAws_json1_1ListEngineVersionsCommand", "serializeAws_json1_1ListEngineVersionsInput", "serializeAws_json1_1ListExecutorsCommand", "serializeAws_json1_1ListExecutorsRequest", "serializeAws_json1_1ListNamedQueriesCommand", "serializeAws_json1_1ListNamedQueriesInput", "serializeAws_json1_1ListNotebookMetadataCommand", "serializeAws_json1_1ListNotebookMetadataInput", "serializeAws_json1_1ListNotebookSessionsCommand", "serializeAws_json1_1ListNotebookSessionsRequest", "serializeAws_json1_1ListPreparedStatementsCommand", "serializeAws_json1_1ListPreparedStatementsInput", "serializeAws_json1_1ListQueryExecutionsCommand", "serializeAws_json1_1ListQueryExecutionsInput", "serializeAws_json1_1ListSessionsCommand", "serializeAws_json1_1ListSessionsRequest", "serializeAws_json1_1ListTableMetadataCommand", "serializeAws_json1_1ListTableMetadataInput", "serializeAws_json1_1ListTagsForResourceCommand", "serializeAws_json1_1ListTagsForResourceInput", "serializeAws_json1_1ListWorkGroupsCommand", "serializeAws_json1_1ListWorkGroupsInput", "serializeAws_json1_1StartCalculationExecutionCommand", "serializeAws_json1_1StartCalculationExecutionRequest", "serializeAws_json1_1StartQueryExecutionCommand", "serializeAws_json1_1StartQueryExecutionInput", "serializeAws_json1_1StartSessionCommand", "serializeAws_json1_1StartSessionRequest", "serializeAws_json1_1StopCalculationExecutionCommand", "serializeAws_json1_1StopCalculationExecutionRequest", "serializeAws_json1_1StopQueryExecutionCommand", "serializeAws_json1_1StopQueryExecutionInput", "serializeAws_json1_1TagResourceCommand", "serializeAws_json1_1TagResourceInput", "serializeAws_json1_1TerminateSessionCommand", "serializeAws_json1_1TerminateSessionRequest", "serializeAws_json1_1UntagResourceCommand", "serializeAws_json1_1UntagResourceInput", "serializeAws_json1_1UpdateDataCatalogCommand", "serializeAws_json1_1UpdateDataCatalogInput", "serializeAws_json1_1UpdateNamedQueryCommand", "serializeAws_json1_1UpdateNamedQueryInput", "serializeAws_json1_1UpdateNotebookCommand", "serializeAws_json1_1UpdateNotebookInput", "serializeAws_json1_1UpdateNotebookMetadataCommand", "serializeAws_json1_1UpdateNotebookMetadataInput", "serializeAws_json1_1UpdatePreparedStatementCommand", "serializeAws_json1_1UpdatePreparedStatementInput", "serializeAws_json1_1UpdateWorkGroupCommand", "serializeAws_json1_1UpdateWorkGroupInput", "deserializeAws_json1_1BatchGetNamedQueryCommand", "output", "deserializeAws_json1_1BatchGetNamedQueryCommandError", "data", "parseBody", "contents", "deserializeAws_json1_1BatchGetNamedQueryOutput", "response", "deserializeMetadata", "parsedOutput", "parseErrorBody", "errorCode", "loadRestJsonErrorCode", "deserializeAws_json1_1InternalServerExceptionResponse", "deserializeAws_json1_1InvalidRequestExceptionResponse", "parsedBody", "deserializeAws_json1_1BatchGetPreparedStatementCommand", "deserializeAws_json1_1BatchGetPreparedStatementCommandError", "deserializeAws_json1_1BatchGetPreparedStatementOutput", "deserializeAws_json1_1BatchGetQueryExecutionCommand", "deserializeAws_json1_1BatchGetQueryExecutionCommandError", "deserializeAws_json1_1BatchGetQueryExecutionOutput", "deserializeAws_json1_1CreateDataCatalogCommand", "deserializeAws_json1_1CreateDataCatalogCommandError", "deserializeAws_json1_1CreateDataCatalogOutput", "deserializeAws_json1_1CreateNamedQueryCommand", "deserializeAws_json1_1CreateNamedQueryCommandError", "deserializeAws_json1_1CreateNamedQueryOutput", "deserializeAws_json1_1CreateNotebookCommand", "deserializeAws_json1_1CreateNotebookCommandError", "deserializeAws_json1_1CreateNotebookOutput", "deserializeAws_json1_1TooManyRequestsExceptionResponse", "deserializeAws_json1_1CreatePreparedStatementCommand", "deserializeAws_json1_1CreatePreparedStatementCommandError", "deserializeAws_json1_1CreatePreparedStatementOutput", "deserializeAws_json1_1CreatePresignedNotebookUrlCommand", "deserializeAws_json1_1CreatePresignedNotebookUrlCommandError", "deserializeAws_json1_1CreatePresignedNotebookUrlResponse", "deserializeAws_json1_1ResourceNotFoundExceptionResponse", "deserializeAws_json1_1CreateWorkGroupCommand", "deserializeAws_json1_1CreateWorkGroupCommandError", "deserializeAws_json1_1CreateWorkGroupOutput", "deserializeAws_json1_1DeleteDataCatalogCommand", "deserializeAws_json1_1DeleteDataCatalogCommandError", "deserializeAws_json1_1DeleteDataCatalogOutput", "deserializeAws_json1_1DeleteNamedQueryCommand", "deserializeAws_json1_1DeleteNamedQueryCommandError", "deserializeAws_json1_1DeleteNamedQueryOutput", "deserializeAws_json1_1DeleteNotebookCommand", "deserializeAws_json1_1DeleteNotebookCommandError", "deserializeAws_json1_1DeleteNotebookOutput", "deserializeAws_json1_1DeletePreparedStatementCommand", "deserializeAws_json1_1DeletePreparedStatementCommandError", "deserializeAws_json1_1DeletePreparedStatementOutput", "deserializeAws_json1_1DeleteWorkGroupCommand", "deserializeAws_json1_1DeleteWorkGroupCommandError", "deserializeAws_json1_1DeleteWorkGroupOutput", "deserializeAws_json1_1ExportNotebookCommand", "deserializeAws_json1_1ExportNotebookCommandError", "deserializeAws_json1_1ExportNotebookOutput", "deserializeAws_json1_1GetCalculationExecutionCommand", "deserializeAws_json1_1GetCalculationExecutionCommandError", "deserializeAws_json1_1GetCalculationExecutionResponse", "deserializeAws_json1_1GetCalculationExecutionCodeCommand", "deserializeAws_json1_1GetCalculationExecutionCodeCommandError", "deserializeAws_json1_1GetCalculationExecutionCodeResponse", "deserializeAws_json1_1GetCalculationExecutionStatusCommand", "deserializeAws_json1_1GetCalculationExecutionStatusCommandError", "deserializeAws_json1_1GetCalculationExecutionStatusResponse", "deserializeAws_json1_1GetDatabaseCommand", "deserializeAws_json1_1GetDatabaseCommandError", "deserializeAws_json1_1GetDatabaseOutput", "deserializeAws_json1_1MetadataExceptionResponse", "deserializeAws_json1_1GetDataCatalogCommand", "deserializeAws_json1_1GetDataCatalogCommandError", "deserializeAws_json1_1GetDataCatalogOutput", "deserializeAws_json1_1GetNamedQueryCommand", "deserializeAws_json1_1GetNamedQueryCommandError", "deserializeAws_json1_1GetNamedQueryOutput", "deserializeAws_json1_1GetNotebookMetadataCommand", "deserializeAws_json1_1GetNotebookMetadataCommandError", "deserializeAws_json1_1GetNotebookMetadataOutput", "deserializeAws_json1_1GetPreparedStatementCommand", "deserializeAws_json1_1GetPreparedStatementCommandError", "deserializeAws_json1_1GetPreparedStatementOutput", "deserializeAws_json1_1GetQueryExecutionCommand", "deserializeAws_json1_1GetQueryExecutionCommandError", "deserializeAws_json1_1GetQueryExecutionOutput", "deserializeAws_json1_1GetQueryResultsCommand", "deserializeAws_json1_1GetQueryResultsCommandError", "deserializeAws_json1_1GetQueryResultsOutput", "deserializeAws_json1_1GetQueryRuntimeStatisticsCommand", "deserializeAws_json1_1GetQueryRuntimeStatisticsCommandError", "deserializeAws_json1_1GetQueryRuntimeStatisticsOutput", "deserializeAws_json1_1GetSessionCommand", "deserializeAws_json1_1GetSessionCommandError", "deserializeAws_json1_1GetSessionResponse", "deserializeAws_json1_1GetSessionStatusCommand", "deserializeAws_json1_1GetSessionStatusCommandError", "deserializeAws_json1_1GetSessionStatusResponse", "deserializeAws_json1_1GetTableMetadataCommand", "deserializeAws_json1_1GetTableMetadataCommandError", "deserializeAws_json1_1GetTableMetadataOutput", "deserializeAws_json1_1GetWorkGroupCommand", "deserializeAws_json1_1GetWorkGroupCommandError", "deserializeAws_json1_1GetWorkGroupOutput", "deserializeAws_json1_1ImportNotebookCommand", "deserializeAws_json1_1ImportNotebookCommandError", "deserializeAws_json1_1ImportNotebookOutput", "deserializeAws_json1_1ListApplicationDPUSizesCommand", "deserializeAws_json1_1ListApplicationDPUSizesCommandError", "deserializeAws_json1_1ListApplicationDPUSizesOutput", "deserializeAws_json1_1ListCalculationExecutionsCommand", "deserializeAws_json1_1ListCalculationExecutionsCommandError", "deserializeAws_json1_1ListCalculationExecutionsResponse", "deserializeAws_json1_1ListDatabasesCommand", "deserializeAws_json1_1ListDatabasesCommandError", "deserializeAws_json1_1ListDatabasesOutput", "deserializeAws_json1_1ListDataCatalogsCommand", "deserializeAws_json1_1ListDataCatalogsCommandError", "deserializeAws_json1_1ListDataCatalogsOutput", "deserializeAws_json1_1ListEngineVersionsCommand", "deserializeAws_json1_1ListEngineVersionsCommandError", "deserializeAws_json1_1ListEngineVersionsOutput", "deserializeAws_json1_1ListExecutorsCommand", "deserializeAws_json1_1ListExecutorsCommandError", "deserializeAws_json1_1ListExecutorsResponse", "deserializeAws_json1_1ListNamedQueriesCommand", "deserializeAws_json1_1ListNamedQueriesCommandError", "deserializeAws_json1_1ListNamedQueriesOutput", "deserializeAws_json1_1ListNotebookMetadataCommand", "deserializeAws_json1_1ListNotebookMetadataCommandError", "deserializeAws_json1_1ListNotebookMetadataOutput", "deserializeAws_json1_1ListNotebookSessionsCommand", "deserializeAws_json1_1ListNotebookSessionsCommandError", "deserializeAws_json1_1ListNotebookSessionsResponse", "deserializeAws_json1_1ListPreparedStatementsCommand", "deserializeAws_json1_1ListPreparedStatementsCommandError", "deserializeAws_json1_1ListPreparedStatementsOutput", "deserializeAws_json1_1ListQueryExecutionsCommand", "deserializeAws_json1_1ListQueryExecutionsCommandError", "deserializeAws_json1_1ListQueryExecutionsOutput", "deserializeAws_json1_1ListSessionsCommand", "deserializeAws_json1_1ListSessionsCommandError", "deserializeAws_json1_1ListSessionsResponse", "deserializeAws_json1_1ListTableMetadataCommand", "deserializeAws_json1_1ListTableMetadataCommandError", "deserializeAws_json1_1ListTableMetadataOutput", "deserializeAws_json1_1ListTagsForResourceCommand", "deserializeAws_json1_1ListTagsForResourceCommandError", "deserializeAws_json1_1ListTagsForResourceOutput", "deserializeAws_json1_1ListWorkGroupsCommand", "deserializeAws_json1_1ListWorkGroupsCommandError", "deserializeAws_json1_1ListWorkGroupsOutput", "deserializeAws_json1_1StartCalculationExecutionCommand", "deserializeAws_json1_1StartCalculationExecutionCommandError", "deserializeAws_json1_1StartCalculationExecutionResponse", "deserializeAws_json1_1StartQueryExecutionCommand", "deserializeAws_json1_1StartQueryExecutionCommandError", "deserializeAws_json1_1StartQueryExecutionOutput", "deserializeAws_json1_1StartSessionCommand", "deserializeAws_json1_1StartSessionCommandError", "deserializeAws_json1_1StartSessionResponse", "deserializeAws_json1_1SessionAlreadyExistsExceptionResponse", "deserializeAws_json1_1StopCalculationExecutionCommand", "deserializeAws_json1_1StopCalculationExecutionCommandError", "deserializeAws_json1_1StopCalculationExecutionResponse", "deserializeAws_json1_1StopQueryExecutionCommand", "deserializeAws_json1_1StopQueryExecutionCommandError", "deserializeAws_json1_1StopQueryExecutionOutput", "deserializeAws_json1_1TagResourceCommand", "deserializeAws_json1_1TagResourceCommandError", "deserializeAws_json1_1TagResourceOutput", "deserializeAws_json1_1TerminateSessionCommand", "deserializeAws_json1_1TerminateSessionCommandError", "deserializeAws_json1_1TerminateSessionResponse", "deserializeAws_json1_1UntagResourceCommand", "deserializeAws_json1_1UntagResourceCommandError", "deserializeAws_json1_1UntagResourceOutput", "deserializeAws_json1_1UpdateDataCatalogCommand", "deserializeAws_json1_1UpdateDataCatalogCommandError", "deserializeAws_json1_1UpdateDataCatalogOutput", "deserializeAws_json1_1UpdateNamedQueryCommand", "deserializeAws_json1_1UpdateNamedQueryCommandError", "deserializeAws_json1_1UpdateNamedQueryOutput", "deserializeAws_json1_1UpdateNotebookCommand", "deserializeAws_json1_1UpdateNotebookCommandError", "deserializeAws_json1_1UpdateNotebookOutput", "deserializeAws_json1_1UpdateNotebookMetadataCommand", "deserializeAws_json1_1UpdateNotebookMetadataCommandError", "deserializeAws_json1_1UpdateNotebookMetadataOutput", "deserializeAws_json1_1UpdatePreparedStatementCommand", "deserializeAws_json1_1UpdatePreparedStatementCommandError", "deserializeAws_json1_1UpdatePreparedStatementOutput", "deserializeAws_json1_1UpdateWorkGroupCommand", "deserializeAws_json1_1UpdateWorkGroupCommandError", "deserializeAws_json1_1UpdateWorkGroupOutput", "deserialized", "deserializeAws_json1_1InternalServerException", "exception", "deserializeAws_json1_1InvalidRequestException", "deserializeAws_json1_1MetadataException", "deserializeAws_json1_1ResourceNotFoundException", "deserializeAws_json1_1SessionAlreadyExistsException", "deserializeAws_json1_1TooManyRequestsException", "serializeAws_json1_1AclConfiguration", "serializeAws_json1_1NamedQueryIdList", "serializeAws_json1_1PreparedStatementNameList", "serializeAws_json1_1QueryExecutionIdList", "serializeAws_json1_1CalculationConfiguration", "serializeAws_json1_1ParametersMap", "serializeAws_json1_1TagList", "serializeAws_json1_1WorkGroupConfiguration", "serializeAws_json1_1CustomerContentEncryptionConfiguration", "serializeAws_json1_1EncryptionConfiguration", "serializeAws_json1_1EngineConfiguration", "serializeAws_json1_1EngineVersion", "serializeAws_json1_1ExecutionParameters", "e", "entry", "serializeAws_json1_1FilterDefinition", "acc", "key", "value", "serializeAws_json1_1QueryExecutionContext", "serializeAws_json1_1ResultConfiguration", "serializeAws_json1_1ResultConfigurationUpdates", "serializeAws_json1_1ResultReuseByAgeConfiguration", "serializeAws_json1_1ResultReuseConfiguration", "serializeAws_json1_1Tag", "serializeAws_json1_1TagKeyList", "serializeAws_json1_1WorkGroupConfigurationUpdates", "deserializeAws_json1_1AclConfiguration", "deserializeAws_json1_1ApplicationDPUSizes", "deserializeAws_json1_1SupportedDPUSizeList", "deserializeAws_json1_1ApplicationDPUSizesList", "deserializeAws_json1_1AthenaError", "deserializeAws_json1_1NamedQueryList", "deserializeAws_json1_1UnprocessedNamedQueryIdList", "deserializeAws_json1_1PreparedStatementDetailsList", "deserializeAws_json1_1UnprocessedPreparedStatementNameList", "deserializeAws_json1_1QueryExecutionList", "deserializeAws_json1_1UnprocessedQueryExecutionIdList", "deserializeAws_json1_1CalculationResult", "deserializeAws_json1_1CalculationsList", "deserializeAws_json1_1CalculationSummary", "deserializeAws_json1_1CalculationStatistics", "deserializeAws_json1_1CalculationStatus", "deserializeAws_json1_1Column", "deserializeAws_json1_1ColumnInfo", "deserializeAws_json1_1ColumnInfoList", "deserializeAws_json1_1ColumnList", "deserializeAws_json1_1CustomerContentEncryptionConfiguration", "deserializeAws_json1_1Database", "deserializeAws_json1_1ParametersMap", "deserializeAws_json1_1DatabaseList", "deserializeAws_json1_1DataCatalog", "deserializeAws_json1_1DataCatalogSummary", "deserializeAws_json1_1DataCatalogSummaryList", "deserializeAws_json1_1Datum", "deserializeAws_json1_1datumList", "deserializeAws_json1_1EncryptionConfiguration", "deserializeAws_json1_1EngineConfiguration", "deserializeAws_json1_1EngineVersion", "deserializeAws_json1_1EngineVersionsList", "deserializeAws_json1_1ExecutionParameters", "deserializeAws_json1_1ExecutorsSummary", "deserializeAws_json1_1ExecutorsSummaryList", "deserializeAws_json1_1NotebookMetadata", "deserializeAws_json1_1NamedQuery", "deserializeAws_json1_1PreparedStatement", "deserializeAws_json1_1QueryExecution", "deserializeAws_json1_1ResultSet", "deserializeAws_json1_1QueryRuntimeStatistics", "deserializeAws_json1_1SessionConfiguration", "deserializeAws_json1_1SessionStatistics", "deserializeAws_json1_1SessionStatus", "deserializeAws_json1_1TableMetadata", "deserializeAws_json1_1WorkGroup", "deserializeAws_json1_1NamedQueryIdList", "deserializeAws_json1_1NotebookMetadataArray", "deserializeAws_json1_1NotebookSessionsList", "deserializeAws_json1_1PreparedStatementsList", "deserializeAws_json1_1QueryExecutionIdList", "deserializeAws_json1_1SessionsList", "deserializeAws_json1_1TableMetadataList", "deserializeAws_json1_1TagList", "deserializeAws_json1_1WorkGroupsList", "deserializeAws_json1_1NotebookSessionSummary", "deserializeAws_json1_1PreparedStatementSummary", "deserializeAws_json1_1QueryExecutionContext", "deserializeAws_json1_1ResultConfiguration", "deserializeAws_json1_1ResultReuseConfiguration", "deserializeAws_json1_1QueryExecutionStatistics", "deserializeAws_json1_1QueryExecutionStatus", "deserializeAws_json1_1ResultReuseInformation", "deserializeAws_json1_1QueryStage", "deserializeAws_json1_1QueryRuntimeStatisticsRows", "deserializeAws_json1_1QueryRuntimeStatisticsTimeline", "deserializeAws_json1_1QueryStagePlanNode", "deserializeAws_json1_1QueryStages", "deserializeAws_json1_1QueryStagePlanNodes", "deserializeAws_json1_1StringList", "deserializeAws_json1_1ResultReuseByAgeConfiguration", "deserializeAws_json1_1ResultSetMetadata", "deserializeAws_json1_1RowList", "deserializeAws_json1_1Row", "deserializeAws_json1_1SessionSummary", "deserializeAws_json1_1Tag", "deserializeAws_json1_1UnprocessedNamedQueryId", "deserializeAws_json1_1UnprocessedPreparedStatementName", "deserializeAws_json1_1UnprocessedQueryExecutionId", "deserializeAws_json1_1WorkGroupConfiguration", "deserializeAws_json1_1WorkGroupSummary", "collectBody", "streamBody", "collectBodyString", "path", "resolvedHostname", "hostname", "protocol", "port", "basePath", "encoded", "errorBody", "findKey", "object", "k", "sanitizeErrorCode", "rawValue", "cleanValue", "headerKey", "require_BatchGetNamedQueryCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_serde_1", "smithy_client_1", "models_0_1", "Aws_json1_1_1", "BatchGetNamedQueryCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "requestHandler", "request", "context", "output", "require_BatchGetPreparedStatementCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_serde_1", "smithy_client_1", "models_0_1", "Aws_json1_1_1", "BatchGetPreparedStatementCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "requestHandler", "request", "context", "output", "require_BatchGetQueryExecutionCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_serde_1", "smithy_client_1", "models_0_1", "Aws_json1_1_1", "BatchGetQueryExecutionCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "requestHandler", "request", "context", "output", "require_CreateDataCatalogCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_serde_1", "smithy_client_1", "models_0_1", "Aws_json1_1_1", "CreateDataCatalogCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "requestHandler", "request", "context", "output", "require_CreateNamedQueryCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_serde_1", "smithy_client_1", "models_0_1", "Aws_json1_1_1", "CreateNamedQueryCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "requestHandler", "request", "context", "output", "require_CreateNotebookCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_serde_1", "smithy_client_1", "models_0_1", "Aws_json1_1_1", "CreateNotebookCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "requestHandler", "request", "context", "output", "require_CreatePreparedStatementCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_serde_1", "smithy_client_1", "models_0_1", "Aws_json1_1_1", "CreatePreparedStatementCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "requestHandler", "request", "context", "output", "require_CreatePresignedNotebookUrlCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_serde_1", "smithy_client_1", "models_0_1", "Aws_json1_1_1", "CreatePresignedNotebookUrlCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "requestHandler", "request", "context", "output", "require_CreateWorkGroupCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_serde_1", "smithy_client_1", "models_0_1", "Aws_json1_1_1", "CreateWorkGroupCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "requestHandler", "request", "context", "output", "require_DeleteDataCatalogCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_serde_1", "smithy_client_1", "models_0_1", "Aws_json1_1_1", "DeleteDataCatalogCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "requestHandler", "request", "context", "output", "require_DeleteNamedQueryCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_serde_1", "smithy_client_1", "models_0_1", "Aws_json1_1_1", "DeleteNamedQueryCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "requestHandler", "request", "context", "output", "require_DeleteNotebookCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_serde_1", "smithy_client_1", "models_0_1", "Aws_json1_1_1", "DeleteNotebookCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "requestHandler", "request", "context", "output", "require_DeletePreparedStatementCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_serde_1", "smithy_client_1", "models_0_1", "Aws_json1_1_1", "DeletePreparedStatementCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "requestHandler", "request", "context", "output", "require_DeleteWorkGroupCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_serde_1", "smithy_client_1", "models_0_1", "Aws_json1_1_1", "DeleteWorkGroupCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "requestHandler", "request", "context", "output", "require_ExportNotebookCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_serde_1", "smithy_client_1", "models_0_1", "Aws_json1_1_1", "ExportNotebookCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "requestHandler", "request", "context", "output", "require_GetCalculationExecutionCodeCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_serde_1", "smithy_client_1", "models_0_1", "Aws_json1_1_1", "GetCalculationExecutionCodeCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "requestHandler", "request", "context", "output", "require_GetCalculationExecutionCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_serde_1", "smithy_client_1", "models_0_1", "Aws_json1_1_1", "GetCalculationExecutionCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "requestHandler", "request", "context", "output", "require_GetCalculationExecutionStatusCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_serde_1", "smithy_client_1", "models_0_1", "Aws_json1_1_1", "GetCalculationExecutionStatusCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "requestHandler", "request", "context", "output", "require_GetDatabaseCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_serde_1", "smithy_client_1", "models_0_1", "Aws_json1_1_1", "GetDatabaseCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "requestHandler", "request", "context", "output", "require_GetDataCatalogCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_serde_1", "smithy_client_1", "models_0_1", "Aws_json1_1_1", "GetDataCatalogCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "requestHandler", "request", "context", "output", "require_GetNamedQueryCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_serde_1", "smithy_client_1", "models_0_1", "Aws_json1_1_1", "GetNamedQueryCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "requestHandler", "request", "context", "output", "require_GetNotebookMetadataCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_serde_1", "smithy_client_1", "models_0_1", "Aws_json1_1_1", "GetNotebookMetadataCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "requestHandler", "request", "context", "output", "require_GetPreparedStatementCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_serde_1", "smithy_client_1", "models_0_1", "Aws_json1_1_1", "GetPreparedStatementCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "requestHandler", "request", "context", "output", "require_GetQueryExecutionCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_serde_1", "smithy_client_1", "models_0_1", "Aws_json1_1_1", "GetQueryExecutionCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "requestHandler", "request", "context", "output", "require_GetQueryResultsCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_serde_1", "smithy_client_1", "models_0_1", "Aws_json1_1_1", "GetQueryResultsCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "requestHandler", "request", "context", "output", "require_GetQueryRuntimeStatisticsCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_serde_1", "smithy_client_1", "models_0_1", "Aws_json1_1_1", "GetQueryRuntimeStatisticsCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "requestHandler", "request", "context", "output", "require_GetSessionCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_serde_1", "smithy_client_1", "models_0_1", "Aws_json1_1_1", "GetSessionCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "requestHandler", "request", "context", "output", "require_GetSessionStatusCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_serde_1", "smithy_client_1", "models_0_1", "Aws_json1_1_1", "GetSessionStatusCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "requestHandler", "request", "context", "output", "require_GetTableMetadataCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_serde_1", "smithy_client_1", "models_0_1", "Aws_json1_1_1", "GetTableMetadataCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "requestHandler", "request", "context", "output", "require_GetWorkGroupCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_serde_1", "smithy_client_1", "models_0_1", "Aws_json1_1_1", "GetWorkGroupCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "requestHandler", "request", "context", "output", "require_ImportNotebookCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_serde_1", "smithy_client_1", "models_0_1", "Aws_json1_1_1", "ImportNotebookCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "requestHandler", "request", "context", "output", "require_ListApplicationDPUSizesCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_serde_1", "smithy_client_1", "models_0_1", "Aws_json1_1_1", "ListApplicationDPUSizesCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "requestHandler", "request", "context", "output", "require_ListCalculationExecutionsCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_serde_1", "smithy_client_1", "models_0_1", "Aws_json1_1_1", "ListCalculationExecutionsCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "requestHandler", "request", "context", "output", "require_ListDatabasesCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_serde_1", "smithy_client_1", "models_0_1", "Aws_json1_1_1", "ListDatabasesCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "requestHandler", "request", "context", "output", "require_ListDataCatalogsCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_serde_1", "smithy_client_1", "models_0_1", "Aws_json1_1_1", "ListDataCatalogsCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "requestHandler", "request", "context", "output", "require_ListEngineVersionsCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_serde_1", "smithy_client_1", "models_0_1", "Aws_json1_1_1", "ListEngineVersionsCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "requestHandler", "request", "context", "output", "require_ListExecutorsCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_serde_1", "smithy_client_1", "models_0_1", "Aws_json1_1_1", "ListExecutorsCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "requestHandler", "request", "context", "output", "require_ListNamedQueriesCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_serde_1", "smithy_client_1", "models_0_1", "Aws_json1_1_1", "ListNamedQueriesCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "requestHandler", "request", "context", "output", "require_ListNotebookMetadataCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_serde_1", "smithy_client_1", "models_0_1", "Aws_json1_1_1", "ListNotebookMetadataCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "requestHandler", "request", "context", "output", "require_ListNotebookSessionsCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_serde_1", "smithy_client_1", "models_0_1", "Aws_json1_1_1", "ListNotebookSessionsCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "requestHandler", "request", "context", "output", "require_ListPreparedStatementsCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_serde_1", "smithy_client_1", "models_0_1", "Aws_json1_1_1", "ListPreparedStatementsCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "requestHandler", "request", "context", "output", "require_ListQueryExecutionsCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_serde_1", "smithy_client_1", "models_0_1", "Aws_json1_1_1", "ListQueryExecutionsCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "requestHandler", "request", "context", "output", "require_ListSessionsCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_serde_1", "smithy_client_1", "models_0_1", "Aws_json1_1_1", "ListSessionsCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "requestHandler", "request", "context", "output", "require_ListTableMetadataCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_serde_1", "smithy_client_1", "models_0_1", "Aws_json1_1_1", "ListTableMetadataCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "requestHandler", "request", "context", "output", "require_ListTagsForResourceCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_serde_1", "smithy_client_1", "models_0_1", "Aws_json1_1_1", "ListTagsForResourceCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "requestHandler", "request", "context", "output", "require_ListWorkGroupsCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_serde_1", "smithy_client_1", "models_0_1", "Aws_json1_1_1", "ListWorkGroupsCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "requestHandler", "request", "context", "output", "require_StartCalculationExecutionCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_serde_1", "smithy_client_1", "models_0_1", "Aws_json1_1_1", "StartCalculationExecutionCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "requestHandler", "request", "context", "output", "require_StartQueryExecutionCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_serde_1", "smithy_client_1", "models_0_1", "Aws_json1_1_1", "StartQueryExecutionCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "requestHandler", "request", "context", "output", "require_StartSessionCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_serde_1", "smithy_client_1", "models_0_1", "Aws_json1_1_1", "StartSessionCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "requestHandler", "request", "context", "output", "require_StopCalculationExecutionCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_serde_1", "smithy_client_1", "models_0_1", "Aws_json1_1_1", "StopCalculationExecutionCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "requestHandler", "request", "context", "output", "require_StopQueryExecutionCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_serde_1", "smithy_client_1", "models_0_1", "Aws_json1_1_1", "StopQueryExecutionCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "requestHandler", "request", "context", "output", "require_TagResourceCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_serde_1", "smithy_client_1", "models_0_1", "Aws_json1_1_1", "TagResourceCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "requestHandler", "request", "context", "output", "require_TerminateSessionCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_serde_1", "smithy_client_1", "models_0_1", "Aws_json1_1_1", "TerminateSessionCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "requestHandler", "request", "context", "output", "require_UntagResourceCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_serde_1", "smithy_client_1", "models_0_1", "Aws_json1_1_1", "UntagResourceCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "requestHandler", "request", "context", "output", "require_UpdateDataCatalogCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_serde_1", "smithy_client_1", "models_0_1", "Aws_json1_1_1", "UpdateDataCatalogCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "requestHandler", "request", "context", "output", "require_UpdateNamedQueryCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_serde_1", "smithy_client_1", "models_0_1", "Aws_json1_1_1", "UpdateNamedQueryCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "requestHandler", "request", "context", "output", "require_UpdateNotebookCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_serde_1", "smithy_client_1", "models_0_1", "Aws_json1_1_1", "UpdateNotebookCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "requestHandler", "request", "context", "output", "require_UpdateNotebookMetadataCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_serde_1", "smithy_client_1", "models_0_1", "Aws_json1_1_1", "UpdateNotebookMetadataCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "requestHandler", "request", "context", "output", "require_UpdatePreparedStatementCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_serde_1", "smithy_client_1", "models_0_1", "Aws_json1_1_1", "UpdatePreparedStatementCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "requestHandler", "request", "context", "output", "require_UpdateWorkGroupCommand", "__commonJSMin", "exports", "middleware_endpoint_1", "middleware_serde_1", "smithy_client_1", "models_0_1", "Aws_json1_1_1", "UpdateWorkGroupCommand", "input", "clientStack", "configuration", "options", "stack", "logger", "handlerExecutionContext", "requestHandler", "request", "context", "output", "require_Athena", "__commonJSMin", "exports", "AthenaClient_1", "BatchGetNamedQueryCommand_1", "BatchGetPreparedStatementCommand_1", "BatchGetQueryExecutionCommand_1", "CreateDataCatalogCommand_1", "CreateNamedQueryCommand_1", "CreateNotebookCommand_1", "CreatePreparedStatementCommand_1", "CreatePresignedNotebookUrlCommand_1", "CreateWorkGroupCommand_1", "DeleteDataCatalogCommand_1", "DeleteNamedQueryCommand_1", "DeleteNotebookCommand_1", "DeletePreparedStatementCommand_1", "DeleteWorkGroupCommand_1", "ExportNotebookCommand_1", "GetCalculationExecutionCodeCommand_1", "GetCalculationExecutionCommand_1", "GetCalculationExecutionStatusCommand_1", "GetDatabaseCommand_1", "GetDataCatalogCommand_1", "GetNamedQueryCommand_1", "GetNotebookMetadataCommand_1", "GetPreparedStatementCommand_1", "GetQueryExecutionCommand_1", "GetQueryResultsCommand_1", "GetQueryRuntimeStatisticsCommand_1", "GetSessionCommand_1", "GetSessionStatusCommand_1", "GetTableMetadataCommand_1", "GetWorkGroupCommand_1", "ImportNotebookCommand_1", "ListApplicationDPUSizesCommand_1", "ListCalculationExecutionsCommand_1", "ListDatabasesCommand_1", "ListDataCatalogsCommand_1", "ListEngineVersionsCommand_1", "ListExecutorsCommand_1", "ListNamedQueriesCommand_1", "ListNotebookMetadataCommand_1", "ListNotebookSessionsCommand_1", "ListPreparedStatementsCommand_1", "ListQueryExecutionsCommand_1", "ListSessionsCommand_1", "ListTableMetadataCommand_1", "ListTagsForResourceCommand_1", "ListWorkGroupsCommand_1", "StartCalculationExecutionCommand_1", "StartQueryExecutionCommand_1", "StartSessionCommand_1", "StopCalculationExecutionCommand_1", "StopQueryExecutionCommand_1", "TagResourceCommand_1", "TerminateSessionCommand_1", "UntagResourceCommand_1", "UpdateDataCatalogCommand_1", "UpdateNamedQueryCommand_1", "UpdateNotebookCommand_1", "UpdateNotebookMetadataCommand_1", "UpdatePreparedStatementCommand_1", "UpdateWorkGroupCommand_1", "Athena", "args", "optionsOrCb", "cb", "command", "require_commands", "__commonJSMin", "exports", "tslib_1", "require_models", "__commonJSMin", "exports", "tslib_1", "require_GetQueryResultsPaginator", "__commonJSMin", "exports", "Athena_1", "AthenaClient_1", "GetQueryResultsCommand_1", "makePagedClientRequest", "client", "input", "args", "makePagedRequest", "paginateGetQueryResults", "config", "additionalArguments", "token", "hasNext", "page", "prevToken", "require_Interfaces", "__commonJSMin", "exports", "require_ListApplicationDPUSizesPaginator", "__commonJSMin", "exports", "Athena_1", "AthenaClient_1", "ListApplicationDPUSizesCommand_1", "makePagedClientRequest", "client", "input", "args", "makePagedRequest", "paginateListApplicationDPUSizes", "config", "additionalArguments", "token", "hasNext", "page", "prevToken", "require_ListCalculationExecutionsPaginator", "__commonJSMin", "exports", "Athena_1", "AthenaClient_1", "ListCalculationExecutionsCommand_1", "makePagedClientRequest", "client", "input", "args", "makePagedRequest", "paginateListCalculationExecutions", "config", "additionalArguments", "token", "hasNext", "page", "prevToken", "require_ListDataCatalogsPaginator", "__commonJSMin", "exports", "Athena_1", "AthenaClient_1", "ListDataCatalogsCommand_1", "makePagedClientRequest", "client", "input", "args", "makePagedRequest", "paginateListDataCatalogs", "config", "additionalArguments", "token", "hasNext", "page", "prevToken", "require_ListDatabasesPaginator", "__commonJSMin", "exports", "Athena_1", "AthenaClient_1", "ListDatabasesCommand_1", "makePagedClientRequest", "client", "input", "args", "makePagedRequest", "paginateListDatabases", "config", "additionalArguments", "token", "hasNext", "page", "prevToken", "require_ListEngineVersionsPaginator", "__commonJSMin", "exports", "Athena_1", "AthenaClient_1", "ListEngineVersionsCommand_1", "makePagedClientRequest", "client", "input", "args", "makePagedRequest", "paginateListEngineVersions", "config", "additionalArguments", "token", "hasNext", "page", "prevToken", "require_ListExecutorsPaginator", "__commonJSMin", "exports", "Athena_1", "AthenaClient_1", "ListExecutorsCommand_1", "makePagedClientRequest", "client", "input", "args", "makePagedRequest", "paginateListExecutors", "config", "additionalArguments", "token", "hasNext", "page", "prevToken", "require_ListNamedQueriesPaginator", "__commonJSMin", "exports", "Athena_1", "AthenaClient_1", "ListNamedQueriesCommand_1", "makePagedClientRequest", "client", "input", "args", "makePagedRequest", "paginateListNamedQueries", "config", "additionalArguments", "token", "hasNext", "page", "prevToken", "require_ListPreparedStatementsPaginator", "__commonJSMin", "exports", "Athena_1", "AthenaClient_1", "ListPreparedStatementsCommand_1", "makePagedClientRequest", "client", "input", "args", "makePagedRequest", "paginateListPreparedStatements", "config", "additionalArguments", "token", "hasNext", "page", "prevToken", "require_ListQueryExecutionsPaginator", "__commonJSMin", "exports", "Athena_1", "AthenaClient_1", "ListQueryExecutionsCommand_1", "makePagedClientRequest", "client", "input", "args", "makePagedRequest", "paginateListQueryExecutions", "config", "additionalArguments", "token", "hasNext", "page", "prevToken", "require_ListSessionsPaginator", "__commonJSMin", "exports", "Athena_1", "AthenaClient_1", "ListSessionsCommand_1", "makePagedClientRequest", "client", "input", "args", "makePagedRequest", "paginateListSessions", "config", "additionalArguments", "token", "hasNext", "page", "prevToken", "require_ListTableMetadataPaginator", "__commonJSMin", "exports", "Athena_1", "AthenaClient_1", "ListTableMetadataCommand_1", "makePagedClientRequest", "client", "input", "args", "makePagedRequest", "paginateListTableMetadata", "config", "additionalArguments", "token", "hasNext", "page", "prevToken", "require_ListTagsForResourcePaginator", "__commonJSMin", "exports", "Athena_1", "AthenaClient_1", "ListTagsForResourceCommand_1", "makePagedClientRequest", "client", "input", "args", "makePagedRequest", "paginateListTagsForResource", "config", "additionalArguments", "token", "hasNext", "page", "prevToken", "require_ListWorkGroupsPaginator", "__commonJSMin", "exports", "Athena_1", "AthenaClient_1", "ListWorkGroupsCommand_1", "makePagedClientRequest", "client", "input", "args", "makePagedRequest", "paginateListWorkGroups", "config", "additionalArguments", "token", "hasNext", "page", "prevToken", "require_pagination", "__commonJSMin", "exports", "tslib_1", "require_dist_cjs", "__commonJSMin", "exports", "tslib_1", "AthenaServiceException_1", "src_exports", "__export", "getFromS3", "getSecret", "loadCredentials", "newAthenaClient", "newS3Client", "queryAthena", "uploadToS3", "__toCommonJS", "import_credential_providers", "import_client_secrets_manager", "import_client_s3", "import_client_athena", "import_credential_provider_node", "id", "aws", "SecretString", "defaultProfile", "defaultQueryOutputBucket", "athena", "s3", "opt", "client", "input", "upload", "$metadata", "bucket", "key", "Body", "chunk", "data", "retry", "backoff", "pollAthenaQueryOutput", "queryId", "getStateCmd", "QueryExecution", "reason", "query", "execCmd", "QueryExecutionId", "resolve", "rows", "r", "header", "h", "events", "curr", "i", "row", "event"] +} diff --git a/common/bitcoin-ledger-signer/dist/index.js b/common/bitcoin-ledger-signer/dist/index.js new file mode 100644 index 000000000..9d4e5b189 --- /dev/null +++ b/common/bitcoin-ledger-signer/dist/index.js @@ -0,0 +1,17 @@ +"use strict";var U6=Object.create;var po=Object.defineProperty;var D6=Object.getOwnPropertyDescriptor;var H6=Object.getOwnPropertyNames;var F6=Object.getPrototypeOf,K6=Object.prototype.hasOwnProperty;var G6=(e,t,r)=>t in e?po(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r;var T=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),W6=(e,t)=>{for(var r in t)po(e,r,{get:t[r],enumerable:!0})},Sd=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of H6(t))!K6.call(e,i)&&i!==r&&po(e,i,{get:()=>t[i],enumerable:!(n=D6(t,i))||n.enumerable});return e};var Qe=(e,t,r)=>(r=e!=null?U6(F6(e)):{},Sd(t||!e||!e.__esModule?po(r,"default",{value:e,enumerable:!0}):r,e)),V6=e=>Sd(po({},"__esModule",{value:!0}),e);var vo=(e,t,r)=>(G6(e,typeof t!="symbol"?t+"":t,r),r);var ka=T((MB,Id)=>{Id.exports=require("crypto").createHash});var dc=T((AB,Td)=>{Td.exports=require("crypto").createHmac});var Md=T(Na=>{"use strict";Object.defineProperty(Na,"__esModule",{value:!0});var pc=ka(),z6=dc();function $6(e){let t=pc("sha256").update(e).digest();try{return pc("rmd160").update(t).digest()}catch{return pc("ripemd160").update(t).digest()}}Na.hash160=$6;function j6(e,t){return z6("sha512",e).update(t).digest()}Na.hmacSHA512=j6});var qt=T((vc,Od)=>{var Ca=require("buffer"),_r=Ca.Buffer;function Ad(e,t){for(var r in e)t[r]=e[r]}_r.from&&_r.alloc&&_r.allocUnsafe&&_r.allocUnsafeSlow?Od.exports=Ca:(Ad(Ca,vc),vc.Buffer=ui);function ui(e,t,r){return _r(e,t,r)}ui.prototype=Object.create(_r.prototype);Ad(_r,ui);ui.from=function(e,t,r){if(typeof e=="number")throw new TypeError("Argument must not be a number");return _r(e,t,r)};ui.alloc=function(e,t,r){if(typeof e!="number")throw new TypeError("Argument must be a number");var n=_r(e);return t!==void 0?typeof r=="string"?n.fill(t,r):n.fill(t):n.fill(0),n};ui.allocUnsafe=function(e){if(typeof e!="number")throw new TypeError("Argument must be a number");return _r(e)};ui.allocUnsafeSlow=function(e){if(typeof e!="number")throw new TypeError("Argument must be a number");return Ca.SlowBuffer(e)}});var Bd=T((PB,Pd)=>{"use strict";var qa=qt().Buffer;function X6(e){if(e.length>=255)throw new TypeError("Alphabet too long");for(var t=new Uint8Array(256),r=0;r>>0,L=new Uint8Array(N);P!==B;){for(var H=S[P],W=0,K=N-1;(H!==0||W>>0,L[K]=H%a>>>0,H=H/a>>>0;if(H!==0)throw new Error("Non-zero carry");O=W,P++}for(var X=N-O;X!==N&&L[X]===0;)X++;for(var q=u.repeat(M);X>>0,N=new Uint8Array(B);S[M];){var L=t[S.charCodeAt(M)];if(L===255)return;for(var H=0,W=B-1;(L!==0||H>>0,N[W]=L%256>>>0,L=L/256>>>0;if(L!==0)throw new Error("Non-zero carry");P=H,M++}for(var K=B-P;K!==B&&N[K]===0;)K++;var X=qa.allocUnsafe(O+(B-K));X.fill(0,0,O);for(var q=O;K!==B;)X[q++]=N[K++];return X}function x(S){var M=w(S);if(M)return M;throw new Error("Non-base"+a+" character")}return{encode:p,decodeUnsafe:w,decode:x}}Pd.exports=X6});var bc=T((BB,Rd)=>{var Y6=Bd(),J6="123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz";Rd.exports=Y6(J6)});var Nd=T((RB,kd)=>{"use strict";var gc=bc(),Z6=qt().Buffer;kd.exports=function(e){function t(s){var a=e(s);return gc.encode(Z6.concat([s,a],s.length+4))}function r(s){var a=s.slice(0,-4),u=s.slice(-4),l=e(a);if(!(u[0]^l[0]|u[1]^l[1]|u[2]^l[2]|u[3]^l[3]))return a}function n(s){var a=gc.decodeUnsafe(s);if(!!a)return r(a)}function i(s){var a=gc.decode(s),u=r(a,e);if(!u)throw new Error("Invalid checksum");return u}return{encode:t,decode:i,decodeUnsafe:n}}});var ci=T((kB,qd)=>{"use strict";var Cd=ka(),Q6=Nd();function e_(e){var t=Cd("sha256").update(e).digest();return Cd("sha256").update(t).digest()}qd.exports=Q6(e_)});var Ud=T((NB,Ld)=>{var La=require("path").sep||"/";Ld.exports=t_;function t_(e){if(typeof e!="string"||e.length<=7||e.substring(0,7)!="file://")throw new TypeError("must pass in a file:// URI to convert to a file path");var t=decodeURI(e.substring(7)),r=t.indexOf("/"),n=t.substring(0,r),i=t.substring(r+1);return n=="localhost"&&(n=""),n&&(n=La+La+n),i=i.replace(/^(.+)\|/,"$1:"),La=="\\"&&(i=i.replace(/\//g,"\\")),/^.+\:/.test(i)||(i=La+i),n+i}});var Kd=T((os,Fd)=>{var mc=require("fs"),Da=require("path"),r_=Ud(),Ua=Da.join,n_=Da.dirname,Dd=mc.accessSync&&function(e){try{mc.accessSync(e)}catch{return!1}return!0}||mc.existsSync||Da.existsSync,Hd={arrow:process.env.NODE_BINDINGS_ARROW||" \u2192 ",compiled:process.env.NODE_BINDINGS_COMPILED_DIR||"compiled",platform:process.platform,arch:process.arch,nodePreGyp:"node-v"+process.versions.modules+"-"+process.platform+"-"+process.arch,version:process.versions.node,bindings:"bindings.node",try:[["module_root","build","bindings"],["module_root","build","Debug","bindings"],["module_root","build","Release","bindings"],["module_root","out","Debug","bindings"],["module_root","Debug","bindings"],["module_root","out","Release","bindings"],["module_root","Release","bindings"],["module_root","build","default","bindings"],["module_root","compiled","version","platform","arch","bindings"],["module_root","addon-build","release","install-root","bindings"],["module_root","addon-build","debug","install-root","bindings"],["module_root","addon-build","default","install-root","bindings"],["module_root","lib","binding","nodePreGyp","bindings"]]};function i_(e){typeof e=="string"?e={bindings:e}:e||(e={}),Object.keys(Hd).map(function(l){l in e||(e[l]=Hd[l])}),e.module_root||(e.module_root=os.getRoot(os.getFileName())),Da.extname(e.bindings)!=".node"&&(e.bindings+=".node");for(var t=typeof __webpack_require__=="function"?__non_webpack_require__:require,r=[],n=0,i=e.try.length,s,a,u;n{"use strict";var Ha=Kd()("secp256k1");delete Ha.path;for(let e in Ha)e.indexOf("is")===0&&(Ha[e].toJSON=function(){return e});Gd.exports=Ha});var zd=T((Vd,yc)=>{(function(e,t){"use strict";function r(y,o){if(!y)throw new Error(o||"Assertion failed")}function n(y,o){y.super_=o;var h=function(){};h.prototype=o.prototype,y.prototype=new h,y.prototype.constructor=y}function i(y,o,h){if(i.isBN(y))return y;this.negative=0,this.words=null,this.length=0,this.red=null,y!==null&&((o==="le"||o==="be")&&(h=o,o=10),this._init(y||0,o||10,h||"be"))}typeof e=="object"?e.exports=i:t.BN=i,i.BN=i,i.wordSize=26;var s;try{typeof window<"u"&&typeof window.Buffer<"u"?s=window.Buffer:s=require("buffer").Buffer}catch{}i.isBN=function(o){return o instanceof i?!0:o!==null&&typeof o=="object"&&o.constructor.wordSize===i.wordSize&&Array.isArray(o.words)},i.max=function(o,h){return o.cmp(h)>0?o:h},i.min=function(o,h){return o.cmp(h)<0?o:h},i.prototype._init=function(o,h,d){if(typeof o=="number")return this._initNumber(o,h,d);if(typeof o=="object")return this._initArray(o,h,d);h==="hex"&&(h=16),r(h===(h|0)&&h>=2&&h<=36),o=o.toString().replace(/\s+/g,"");var v=0;o[0]==="-"&&(v++,this.negative=1),v=0;v-=3)_=o[v]|o[v-1]<<8|o[v-2]<<16,this.words[m]|=_<>>26-E&67108863,E+=24,E>=26&&(E-=26,m++);else if(d==="le")for(v=0,m=0;v>>26-E&67108863,E+=24,E>=26&&(E-=26,m++);return this.strip()};function a(y,o){var h=y.charCodeAt(o);return h>=65&&h<=70?h-55:h>=97&&h<=102?h-87:h-48&15}function u(y,o,h){var d=a(y,h);return h-1>=o&&(d|=a(y,h-1)<<4),d}i.prototype._parseHex=function(o,h,d){this.length=Math.ceil((o.length-h)/6),this.words=new Array(this.length);for(var v=0;v=h;v-=2)E=u(o,h,v)<=18?(m-=18,_+=1,this.words[_]|=E>>>26):m+=8;else{var b=o.length-h;for(v=b%2===0?h+1:h;v=18?(m-=18,_+=1,this.words[_]|=E>>>26):m+=8}this.strip()};function l(y,o,h,d){for(var v=0,m=Math.min(y.length,h),_=o;_=49?v+=E-49+10:E>=17?v+=E-17+10:v+=E}return v}i.prototype._parseBase=function(o,h,d){this.words=[0],this.length=1;for(var v=0,m=1;m<=67108863;m*=h)v++;v--,m=m/h|0;for(var _=o.length-d,E=_%v,b=Math.min(_,_-E)+d,f=0,g=d;g1&&this.words[this.length-1]===0;)this.length--;return this._normSign()},i.prototype._normSign=function(){return this.length===1&&this.words[0]===0&&(this.negative=0),this},i.prototype.inspect=function(){return(this.red?""};var c=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],p=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],w=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];i.prototype.toString=function(o,h){o=o||10,h=h|0||1;var d;if(o===16||o==="hex"){d="";for(var v=0,m=0,_=0;_>>24-v&16777215,m!==0||_!==this.length-1?d=c[6-b.length]+b+d:d=b+d,v+=2,v>=26&&(v-=26,_--)}for(m!==0&&(d=m.toString(16)+d);d.length%h!==0;)d="0"+d;return this.negative!==0&&(d="-"+d),d}if(o===(o|0)&&o>=2&&o<=36){var f=p[o],g=w[o];d="";var A=this.clone();for(A.negative=0;!A.isZero();){var R=A.modn(g).toString(o);A=A.idivn(g),A.isZero()?d=R+d:d=c[f-R.length]+R+d}for(this.isZero()&&(d="0"+d);d.length%h!==0;)d="0"+d;return this.negative!==0&&(d="-"+d),d}r(!1,"Base should be between 2 and 36")},i.prototype.toNumber=function(){var o=this.words[0];return this.length===2?o+=this.words[1]*67108864:this.length===3&&this.words[2]===1?o+=4503599627370496+this.words[1]*67108864:this.length>2&&r(!1,"Number can only safely store up to 53 bits"),this.negative!==0?-o:o},i.prototype.toJSON=function(){return this.toString(16)},i.prototype.toBuffer=function(o,h){return r(typeof s<"u"),this.toArrayLike(s,o,h)},i.prototype.toArray=function(o,h){return this.toArrayLike(Array,o,h)},i.prototype.toArrayLike=function(o,h,d){var v=this.byteLength(),m=d||Math.max(1,v);r(v<=m,"byte array longer than desired length"),r(m>0,"Requested array length <= 0"),this.strip();var _=h==="le",E=new o(m),b,f,g=this.clone();if(_){for(f=0;!g.isZero();f++)b=g.andln(255),g.iushrn(8),E[f]=b;for(;f=4096&&(d+=13,h>>>=13),h>=64&&(d+=7,h>>>=7),h>=8&&(d+=4,h>>>=4),h>=2&&(d+=2,h>>>=2),d+h},i.prototype._zeroBits=function(o){if(o===0)return 26;var h=o,d=0;return(h&8191)===0&&(d+=13,h>>>=13),(h&127)===0&&(d+=7,h>>>=7),(h&15)===0&&(d+=4,h>>>=4),(h&3)===0&&(d+=2,h>>>=2),(h&1)===0&&d++,d},i.prototype.bitLength=function(){var o=this.words[this.length-1],h=this._countBits(o);return(this.length-1)*26+h};function x(y){for(var o=new Array(y.bitLength()),h=0;h>>v}return o}i.prototype.zeroBits=function(){if(this.isZero())return 0;for(var o=0,h=0;ho.length?this.clone().ior(o):o.clone().ior(this)},i.prototype.uor=function(o){return this.length>o.length?this.clone().iuor(o):o.clone().iuor(this)},i.prototype.iuand=function(o){var h;this.length>o.length?h=o:h=this;for(var d=0;do.length?this.clone().iand(o):o.clone().iand(this)},i.prototype.uand=function(o){return this.length>o.length?this.clone().iuand(o):o.clone().iuand(this)},i.prototype.iuxor=function(o){var h,d;this.length>o.length?(h=this,d=o):(h=o,d=this);for(var v=0;vo.length?this.clone().ixor(o):o.clone().ixor(this)},i.prototype.uxor=function(o){return this.length>o.length?this.clone().iuxor(o):o.clone().iuxor(this)},i.prototype.inotn=function(o){r(typeof o=="number"&&o>=0);var h=Math.ceil(o/26)|0,d=o%26;this._expand(h),d>0&&h--;for(var v=0;v0&&(this.words[v]=~this.words[v]&67108863>>26-d),this.strip()},i.prototype.notn=function(o){return this.clone().inotn(o)},i.prototype.setn=function(o,h){r(typeof o=="number"&&o>=0);var d=o/26|0,v=o%26;return this._expand(d+1),h?this.words[d]=this.words[d]|1<o.length?(d=this,v=o):(d=o,v=this);for(var m=0,_=0;_>>26;for(;m!==0&&_>>26;if(this.length=d.length,m!==0)this.words[this.length]=m,this.length++;else if(d!==this)for(;_o.length?this.clone().iadd(o):o.clone().iadd(this)},i.prototype.isub=function(o){if(o.negative!==0){o.negative=0;var h=this.iadd(o);return o.negative=1,h._normSign()}else if(this.negative!==0)return this.negative=0,this.iadd(o),this.negative=1,this._normSign();var d=this.cmp(o);if(d===0)return this.negative=0,this.length=1,this.words[0]=0,this;var v,m;d>0?(v=this,m=o):(v=o,m=this);for(var _=0,E=0;E>26,this.words[E]=h&67108863;for(;_!==0&&E>26,this.words[E]=h&67108863;if(_===0&&E>>26,A=b&67108863,R=Math.min(f,o.length-1),k=Math.max(0,f-y.length+1);k<=R;k++){var U=f-k|0;v=y.words[U]|0,m=o.words[k]|0,_=v*m+A,g+=_/67108864|0,A=_&67108863}h.words[f]=A|0,b=g|0}return b!==0?h.words[f]=b|0:h.length--,h.strip()}var M=function(o,h,d){var v=o.words,m=h.words,_=d.words,E=0,b,f,g,A=v[0]|0,R=A&8191,k=A>>>13,U=v[1]|0,G=U&8191,F=U>>>13,Le=v[2]|0,V=Le&8191,j=Le>>>13,fr=v[3]|0,Y=fr&8191,oe=fr>>>13,ct=v[4]|0,re=ct&8191,te=ct>>>13,hn=v[5]|0,ae=hn&8191,ne=hn>>>13,Hr=v[6]|0,ie=Hr&8191,J=Hr>>>13,yr=v[7]|0,D=yr&8191,fe=yr>>>13,wr=v[8]|0,se=wr&8191,ue=wr>>>13,qe=v[9]|0,Z=qe&8191,Q=qe>>>13,Jt=m[0]|0,ce=Jt&8191,he=Jt>>>13,Gn=m[1]|0,de=Gn&8191,pe=Gn>>>13,so=m[2]|0,ve=so&8191,be=so>>>13,oo=m[3]|0,ge=oo&8191,me=oo>>>13,ao=m[4]|0,ye=ao&8191,we=ao>>>13,fo=m[5]|0,_e=fo&8191,Ee=fo>>>13,uo=m[6]|0,xe=uo&8191,Se=uo>>>13,co=m[7]|0,Ie=co&8191,Te=co>>>13,ho=m[8]|0,Me=ho&8191,Ae=ho>>>13,lo=m[9]|0,Oe=lo&8191,Pe=lo>>>13;d.negative=o.negative^h.negative,d.length=19,b=Math.imul(R,ce),f=Math.imul(R,he),f=f+Math.imul(k,ce)|0,g=Math.imul(k,he);var Wn=(E+b|0)+((f&8191)<<13)|0;E=(g+(f>>>13)|0)+(Wn>>>26)|0,Wn&=67108863,b=Math.imul(G,ce),f=Math.imul(G,he),f=f+Math.imul(F,ce)|0,g=Math.imul(F,he),b=b+Math.imul(R,de)|0,f=f+Math.imul(R,pe)|0,f=f+Math.imul(k,de)|0,g=g+Math.imul(k,pe)|0;var Vn=(E+b|0)+((f&8191)<<13)|0;E=(g+(f>>>13)|0)+(Vn>>>26)|0,Vn&=67108863,b=Math.imul(V,ce),f=Math.imul(V,he),f=f+Math.imul(j,ce)|0,g=Math.imul(j,he),b=b+Math.imul(G,de)|0,f=f+Math.imul(G,pe)|0,f=f+Math.imul(F,de)|0,g=g+Math.imul(F,pe)|0,b=b+Math.imul(R,ve)|0,f=f+Math.imul(R,be)|0,f=f+Math.imul(k,ve)|0,g=g+Math.imul(k,be)|0;var zn=(E+b|0)+((f&8191)<<13)|0;E=(g+(f>>>13)|0)+(zn>>>26)|0,zn&=67108863,b=Math.imul(Y,ce),f=Math.imul(Y,he),f=f+Math.imul(oe,ce)|0,g=Math.imul(oe,he),b=b+Math.imul(V,de)|0,f=f+Math.imul(V,pe)|0,f=f+Math.imul(j,de)|0,g=g+Math.imul(j,pe)|0,b=b+Math.imul(G,ve)|0,f=f+Math.imul(G,be)|0,f=f+Math.imul(F,ve)|0,g=g+Math.imul(F,be)|0,b=b+Math.imul(R,ge)|0,f=f+Math.imul(R,me)|0,f=f+Math.imul(k,ge)|0,g=g+Math.imul(k,me)|0;var $n=(E+b|0)+((f&8191)<<13)|0;E=(g+(f>>>13)|0)+($n>>>26)|0,$n&=67108863,b=Math.imul(re,ce),f=Math.imul(re,he),f=f+Math.imul(te,ce)|0,g=Math.imul(te,he),b=b+Math.imul(Y,de)|0,f=f+Math.imul(Y,pe)|0,f=f+Math.imul(oe,de)|0,g=g+Math.imul(oe,pe)|0,b=b+Math.imul(V,ve)|0,f=f+Math.imul(V,be)|0,f=f+Math.imul(j,ve)|0,g=g+Math.imul(j,be)|0,b=b+Math.imul(G,ge)|0,f=f+Math.imul(G,me)|0,f=f+Math.imul(F,ge)|0,g=g+Math.imul(F,me)|0,b=b+Math.imul(R,ye)|0,f=f+Math.imul(R,we)|0,f=f+Math.imul(k,ye)|0,g=g+Math.imul(k,we)|0;var jn=(E+b|0)+((f&8191)<<13)|0;E=(g+(f>>>13)|0)+(jn>>>26)|0,jn&=67108863,b=Math.imul(ae,ce),f=Math.imul(ae,he),f=f+Math.imul(ne,ce)|0,g=Math.imul(ne,he),b=b+Math.imul(re,de)|0,f=f+Math.imul(re,pe)|0,f=f+Math.imul(te,de)|0,g=g+Math.imul(te,pe)|0,b=b+Math.imul(Y,ve)|0,f=f+Math.imul(Y,be)|0,f=f+Math.imul(oe,ve)|0,g=g+Math.imul(oe,be)|0,b=b+Math.imul(V,ge)|0,f=f+Math.imul(V,me)|0,f=f+Math.imul(j,ge)|0,g=g+Math.imul(j,me)|0,b=b+Math.imul(G,ye)|0,f=f+Math.imul(G,we)|0,f=f+Math.imul(F,ye)|0,g=g+Math.imul(F,we)|0,b=b+Math.imul(R,_e)|0,f=f+Math.imul(R,Ee)|0,f=f+Math.imul(k,_e)|0,g=g+Math.imul(k,Ee)|0;var Xn=(E+b|0)+((f&8191)<<13)|0;E=(g+(f>>>13)|0)+(Xn>>>26)|0,Xn&=67108863,b=Math.imul(ie,ce),f=Math.imul(ie,he),f=f+Math.imul(J,ce)|0,g=Math.imul(J,he),b=b+Math.imul(ae,de)|0,f=f+Math.imul(ae,pe)|0,f=f+Math.imul(ne,de)|0,g=g+Math.imul(ne,pe)|0,b=b+Math.imul(re,ve)|0,f=f+Math.imul(re,be)|0,f=f+Math.imul(te,ve)|0,g=g+Math.imul(te,be)|0,b=b+Math.imul(Y,ge)|0,f=f+Math.imul(Y,me)|0,f=f+Math.imul(oe,ge)|0,g=g+Math.imul(oe,me)|0,b=b+Math.imul(V,ye)|0,f=f+Math.imul(V,we)|0,f=f+Math.imul(j,ye)|0,g=g+Math.imul(j,we)|0,b=b+Math.imul(G,_e)|0,f=f+Math.imul(G,Ee)|0,f=f+Math.imul(F,_e)|0,g=g+Math.imul(F,Ee)|0,b=b+Math.imul(R,xe)|0,f=f+Math.imul(R,Se)|0,f=f+Math.imul(k,xe)|0,g=g+Math.imul(k,Se)|0;var Yn=(E+b|0)+((f&8191)<<13)|0;E=(g+(f>>>13)|0)+(Yn>>>26)|0,Yn&=67108863,b=Math.imul(D,ce),f=Math.imul(D,he),f=f+Math.imul(fe,ce)|0,g=Math.imul(fe,he),b=b+Math.imul(ie,de)|0,f=f+Math.imul(ie,pe)|0,f=f+Math.imul(J,de)|0,g=g+Math.imul(J,pe)|0,b=b+Math.imul(ae,ve)|0,f=f+Math.imul(ae,be)|0,f=f+Math.imul(ne,ve)|0,g=g+Math.imul(ne,be)|0,b=b+Math.imul(re,ge)|0,f=f+Math.imul(re,me)|0,f=f+Math.imul(te,ge)|0,g=g+Math.imul(te,me)|0,b=b+Math.imul(Y,ye)|0,f=f+Math.imul(Y,we)|0,f=f+Math.imul(oe,ye)|0,g=g+Math.imul(oe,we)|0,b=b+Math.imul(V,_e)|0,f=f+Math.imul(V,Ee)|0,f=f+Math.imul(j,_e)|0,g=g+Math.imul(j,Ee)|0,b=b+Math.imul(G,xe)|0,f=f+Math.imul(G,Se)|0,f=f+Math.imul(F,xe)|0,g=g+Math.imul(F,Se)|0,b=b+Math.imul(R,Ie)|0,f=f+Math.imul(R,Te)|0,f=f+Math.imul(k,Ie)|0,g=g+Math.imul(k,Te)|0;var Jn=(E+b|0)+((f&8191)<<13)|0;E=(g+(f>>>13)|0)+(Jn>>>26)|0,Jn&=67108863,b=Math.imul(se,ce),f=Math.imul(se,he),f=f+Math.imul(ue,ce)|0,g=Math.imul(ue,he),b=b+Math.imul(D,de)|0,f=f+Math.imul(D,pe)|0,f=f+Math.imul(fe,de)|0,g=g+Math.imul(fe,pe)|0,b=b+Math.imul(ie,ve)|0,f=f+Math.imul(ie,be)|0,f=f+Math.imul(J,ve)|0,g=g+Math.imul(J,be)|0,b=b+Math.imul(ae,ge)|0,f=f+Math.imul(ae,me)|0,f=f+Math.imul(ne,ge)|0,g=g+Math.imul(ne,me)|0,b=b+Math.imul(re,ye)|0,f=f+Math.imul(re,we)|0,f=f+Math.imul(te,ye)|0,g=g+Math.imul(te,we)|0,b=b+Math.imul(Y,_e)|0,f=f+Math.imul(Y,Ee)|0,f=f+Math.imul(oe,_e)|0,g=g+Math.imul(oe,Ee)|0,b=b+Math.imul(V,xe)|0,f=f+Math.imul(V,Se)|0,f=f+Math.imul(j,xe)|0,g=g+Math.imul(j,Se)|0,b=b+Math.imul(G,Ie)|0,f=f+Math.imul(G,Te)|0,f=f+Math.imul(F,Ie)|0,g=g+Math.imul(F,Te)|0,b=b+Math.imul(R,Me)|0,f=f+Math.imul(R,Ae)|0,f=f+Math.imul(k,Me)|0,g=g+Math.imul(k,Ae)|0;var Zn=(E+b|0)+((f&8191)<<13)|0;E=(g+(f>>>13)|0)+(Zn>>>26)|0,Zn&=67108863,b=Math.imul(Z,ce),f=Math.imul(Z,he),f=f+Math.imul(Q,ce)|0,g=Math.imul(Q,he),b=b+Math.imul(se,de)|0,f=f+Math.imul(se,pe)|0,f=f+Math.imul(ue,de)|0,g=g+Math.imul(ue,pe)|0,b=b+Math.imul(D,ve)|0,f=f+Math.imul(D,be)|0,f=f+Math.imul(fe,ve)|0,g=g+Math.imul(fe,be)|0,b=b+Math.imul(ie,ge)|0,f=f+Math.imul(ie,me)|0,f=f+Math.imul(J,ge)|0,g=g+Math.imul(J,me)|0,b=b+Math.imul(ae,ye)|0,f=f+Math.imul(ae,we)|0,f=f+Math.imul(ne,ye)|0,g=g+Math.imul(ne,we)|0,b=b+Math.imul(re,_e)|0,f=f+Math.imul(re,Ee)|0,f=f+Math.imul(te,_e)|0,g=g+Math.imul(te,Ee)|0,b=b+Math.imul(Y,xe)|0,f=f+Math.imul(Y,Se)|0,f=f+Math.imul(oe,xe)|0,g=g+Math.imul(oe,Se)|0,b=b+Math.imul(V,Ie)|0,f=f+Math.imul(V,Te)|0,f=f+Math.imul(j,Ie)|0,g=g+Math.imul(j,Te)|0,b=b+Math.imul(G,Me)|0,f=f+Math.imul(G,Ae)|0,f=f+Math.imul(F,Me)|0,g=g+Math.imul(F,Ae)|0,b=b+Math.imul(R,Oe)|0,f=f+Math.imul(R,Pe)|0,f=f+Math.imul(k,Oe)|0,g=g+Math.imul(k,Pe)|0;var Qn=(E+b|0)+((f&8191)<<13)|0;E=(g+(f>>>13)|0)+(Qn>>>26)|0,Qn&=67108863,b=Math.imul(Z,de),f=Math.imul(Z,pe),f=f+Math.imul(Q,de)|0,g=Math.imul(Q,pe),b=b+Math.imul(se,ve)|0,f=f+Math.imul(se,be)|0,f=f+Math.imul(ue,ve)|0,g=g+Math.imul(ue,be)|0,b=b+Math.imul(D,ge)|0,f=f+Math.imul(D,me)|0,f=f+Math.imul(fe,ge)|0,g=g+Math.imul(fe,me)|0,b=b+Math.imul(ie,ye)|0,f=f+Math.imul(ie,we)|0,f=f+Math.imul(J,ye)|0,g=g+Math.imul(J,we)|0,b=b+Math.imul(ae,_e)|0,f=f+Math.imul(ae,Ee)|0,f=f+Math.imul(ne,_e)|0,g=g+Math.imul(ne,Ee)|0,b=b+Math.imul(re,xe)|0,f=f+Math.imul(re,Se)|0,f=f+Math.imul(te,xe)|0,g=g+Math.imul(te,Se)|0,b=b+Math.imul(Y,Ie)|0,f=f+Math.imul(Y,Te)|0,f=f+Math.imul(oe,Ie)|0,g=g+Math.imul(oe,Te)|0,b=b+Math.imul(V,Me)|0,f=f+Math.imul(V,Ae)|0,f=f+Math.imul(j,Me)|0,g=g+Math.imul(j,Ae)|0,b=b+Math.imul(G,Oe)|0,f=f+Math.imul(G,Pe)|0,f=f+Math.imul(F,Oe)|0,g=g+Math.imul(F,Pe)|0;var ei=(E+b|0)+((f&8191)<<13)|0;E=(g+(f>>>13)|0)+(ei>>>26)|0,ei&=67108863,b=Math.imul(Z,ve),f=Math.imul(Z,be),f=f+Math.imul(Q,ve)|0,g=Math.imul(Q,be),b=b+Math.imul(se,ge)|0,f=f+Math.imul(se,me)|0,f=f+Math.imul(ue,ge)|0,g=g+Math.imul(ue,me)|0,b=b+Math.imul(D,ye)|0,f=f+Math.imul(D,we)|0,f=f+Math.imul(fe,ye)|0,g=g+Math.imul(fe,we)|0,b=b+Math.imul(ie,_e)|0,f=f+Math.imul(ie,Ee)|0,f=f+Math.imul(J,_e)|0,g=g+Math.imul(J,Ee)|0,b=b+Math.imul(ae,xe)|0,f=f+Math.imul(ae,Se)|0,f=f+Math.imul(ne,xe)|0,g=g+Math.imul(ne,Se)|0,b=b+Math.imul(re,Ie)|0,f=f+Math.imul(re,Te)|0,f=f+Math.imul(te,Ie)|0,g=g+Math.imul(te,Te)|0,b=b+Math.imul(Y,Me)|0,f=f+Math.imul(Y,Ae)|0,f=f+Math.imul(oe,Me)|0,g=g+Math.imul(oe,Ae)|0,b=b+Math.imul(V,Oe)|0,f=f+Math.imul(V,Pe)|0,f=f+Math.imul(j,Oe)|0,g=g+Math.imul(j,Pe)|0;var ti=(E+b|0)+((f&8191)<<13)|0;E=(g+(f>>>13)|0)+(ti>>>26)|0,ti&=67108863,b=Math.imul(Z,ge),f=Math.imul(Z,me),f=f+Math.imul(Q,ge)|0,g=Math.imul(Q,me),b=b+Math.imul(se,ye)|0,f=f+Math.imul(se,we)|0,f=f+Math.imul(ue,ye)|0,g=g+Math.imul(ue,we)|0,b=b+Math.imul(D,_e)|0,f=f+Math.imul(D,Ee)|0,f=f+Math.imul(fe,_e)|0,g=g+Math.imul(fe,Ee)|0,b=b+Math.imul(ie,xe)|0,f=f+Math.imul(ie,Se)|0,f=f+Math.imul(J,xe)|0,g=g+Math.imul(J,Se)|0,b=b+Math.imul(ae,Ie)|0,f=f+Math.imul(ae,Te)|0,f=f+Math.imul(ne,Ie)|0,g=g+Math.imul(ne,Te)|0,b=b+Math.imul(re,Me)|0,f=f+Math.imul(re,Ae)|0,f=f+Math.imul(te,Me)|0,g=g+Math.imul(te,Ae)|0,b=b+Math.imul(Y,Oe)|0,f=f+Math.imul(Y,Pe)|0,f=f+Math.imul(oe,Oe)|0,g=g+Math.imul(oe,Pe)|0;var ri=(E+b|0)+((f&8191)<<13)|0;E=(g+(f>>>13)|0)+(ri>>>26)|0,ri&=67108863,b=Math.imul(Z,ye),f=Math.imul(Z,we),f=f+Math.imul(Q,ye)|0,g=Math.imul(Q,we),b=b+Math.imul(se,_e)|0,f=f+Math.imul(se,Ee)|0,f=f+Math.imul(ue,_e)|0,g=g+Math.imul(ue,Ee)|0,b=b+Math.imul(D,xe)|0,f=f+Math.imul(D,Se)|0,f=f+Math.imul(fe,xe)|0,g=g+Math.imul(fe,Se)|0,b=b+Math.imul(ie,Ie)|0,f=f+Math.imul(ie,Te)|0,f=f+Math.imul(J,Ie)|0,g=g+Math.imul(J,Te)|0,b=b+Math.imul(ae,Me)|0,f=f+Math.imul(ae,Ae)|0,f=f+Math.imul(ne,Me)|0,g=g+Math.imul(ne,Ae)|0,b=b+Math.imul(re,Oe)|0,f=f+Math.imul(re,Pe)|0,f=f+Math.imul(te,Oe)|0,g=g+Math.imul(te,Pe)|0;var ni=(E+b|0)+((f&8191)<<13)|0;E=(g+(f>>>13)|0)+(ni>>>26)|0,ni&=67108863,b=Math.imul(Z,_e),f=Math.imul(Z,Ee),f=f+Math.imul(Q,_e)|0,g=Math.imul(Q,Ee),b=b+Math.imul(se,xe)|0,f=f+Math.imul(se,Se)|0,f=f+Math.imul(ue,xe)|0,g=g+Math.imul(ue,Se)|0,b=b+Math.imul(D,Ie)|0,f=f+Math.imul(D,Te)|0,f=f+Math.imul(fe,Ie)|0,g=g+Math.imul(fe,Te)|0,b=b+Math.imul(ie,Me)|0,f=f+Math.imul(ie,Ae)|0,f=f+Math.imul(J,Me)|0,g=g+Math.imul(J,Ae)|0,b=b+Math.imul(ae,Oe)|0,f=f+Math.imul(ae,Pe)|0,f=f+Math.imul(ne,Oe)|0,g=g+Math.imul(ne,Pe)|0;var ii=(E+b|0)+((f&8191)<<13)|0;E=(g+(f>>>13)|0)+(ii>>>26)|0,ii&=67108863,b=Math.imul(Z,xe),f=Math.imul(Z,Se),f=f+Math.imul(Q,xe)|0,g=Math.imul(Q,Se),b=b+Math.imul(se,Ie)|0,f=f+Math.imul(se,Te)|0,f=f+Math.imul(ue,Ie)|0,g=g+Math.imul(ue,Te)|0,b=b+Math.imul(D,Me)|0,f=f+Math.imul(D,Ae)|0,f=f+Math.imul(fe,Me)|0,g=g+Math.imul(fe,Ae)|0,b=b+Math.imul(ie,Oe)|0,f=f+Math.imul(ie,Pe)|0,f=f+Math.imul(J,Oe)|0,g=g+Math.imul(J,Pe)|0;var si=(E+b|0)+((f&8191)<<13)|0;E=(g+(f>>>13)|0)+(si>>>26)|0,si&=67108863,b=Math.imul(Z,Ie),f=Math.imul(Z,Te),f=f+Math.imul(Q,Ie)|0,g=Math.imul(Q,Te),b=b+Math.imul(se,Me)|0,f=f+Math.imul(se,Ae)|0,f=f+Math.imul(ue,Me)|0,g=g+Math.imul(ue,Ae)|0,b=b+Math.imul(D,Oe)|0,f=f+Math.imul(D,Pe)|0,f=f+Math.imul(fe,Oe)|0,g=g+Math.imul(fe,Pe)|0;var oi=(E+b|0)+((f&8191)<<13)|0;E=(g+(f>>>13)|0)+(oi>>>26)|0,oi&=67108863,b=Math.imul(Z,Me),f=Math.imul(Z,Ae),f=f+Math.imul(Q,Me)|0,g=Math.imul(Q,Ae),b=b+Math.imul(se,Oe)|0,f=f+Math.imul(se,Pe)|0,f=f+Math.imul(ue,Oe)|0,g=g+Math.imul(ue,Pe)|0;var ai=(E+b|0)+((f&8191)<<13)|0;E=(g+(f>>>13)|0)+(ai>>>26)|0,ai&=67108863,b=Math.imul(Z,Oe),f=Math.imul(Z,Pe),f=f+Math.imul(Q,Oe)|0,g=Math.imul(Q,Pe);var fi=(E+b|0)+((f&8191)<<13)|0;return E=(g+(f>>>13)|0)+(fi>>>26)|0,fi&=67108863,_[0]=Wn,_[1]=Vn,_[2]=zn,_[3]=$n,_[4]=jn,_[5]=Xn,_[6]=Yn,_[7]=Jn,_[8]=Zn,_[9]=Qn,_[10]=ei,_[11]=ti,_[12]=ri,_[13]=ni,_[14]=ii,_[15]=si,_[16]=oi,_[17]=ai,_[18]=fi,E!==0&&(_[19]=E,d.length++),d};Math.imul||(M=S);function O(y,o,h){h.negative=o.negative^y.negative,h.length=y.length+o.length;for(var d=0,v=0,m=0;m>>26)|0,v+=_>>>26,_&=67108863}h.words[m]=E,d=_,_=v}return d!==0?h.words[m]=d:h.length--,h.strip()}function P(y,o,h){var d=new B;return d.mulp(y,o,h)}i.prototype.mulTo=function(o,h){var d,v=this.length+o.length;return this.length===10&&o.length===10?d=M(this,o,h):v<63?d=S(this,o,h):v<1024?d=O(this,o,h):d=P(this,o,h),d};function B(y,o){this.x=y,this.y=o}B.prototype.makeRBT=function(o){for(var h=new Array(o),d=i.prototype._countBits(o)-1,v=0;v>=1;return v},B.prototype.permute=function(o,h,d,v,m,_){for(var E=0;E<_;E++)v[E]=h[o[E]],m[E]=d[o[E]]},B.prototype.transform=function(o,h,d,v,m,_){this.permute(_,o,h,d,v,m);for(var E=1;E>>1)m++;return 1<>>13,d[2*_+1]=m&8191,m=m>>>13;for(_=2*h;_>=26,h+=v/67108864|0,h+=m>>>26,this.words[d]=m&67108863}return h!==0&&(this.words[d]=h,this.length++),this},i.prototype.muln=function(o){return this.clone().imuln(o)},i.prototype.sqr=function(){return this.mul(this)},i.prototype.isqr=function(){return this.imul(this.clone())},i.prototype.pow=function(o){var h=x(o);if(h.length===0)return new i(1);for(var d=this,v=0;v=0);var h=o%26,d=(o-h)/26,v=67108863>>>26-h<<26-h,m;if(h!==0){var _=0;for(m=0;m>>26-h}_&&(this.words[m]=_,this.length++)}if(d!==0){for(m=this.length-1;m>=0;m--)this.words[m+d]=this.words[m];for(m=0;m=0);var v;h?v=(h-h%26)/26:v=0;var m=o%26,_=Math.min((o-m)/26,this.length),E=67108863^67108863>>>m<_)for(this.length-=_,f=0;f=0&&(g!==0||f>=v);f--){var A=this.words[f]|0;this.words[f]=g<<26-m|A>>>m,g=A&E}return b&&g!==0&&(b.words[b.length++]=g),this.length===0&&(this.words[0]=0,this.length=1),this.strip()},i.prototype.ishrn=function(o,h,d){return r(this.negative===0),this.iushrn(o,h,d)},i.prototype.shln=function(o){return this.clone().ishln(o)},i.prototype.ushln=function(o){return this.clone().iushln(o)},i.prototype.shrn=function(o){return this.clone().ishrn(o)},i.prototype.ushrn=function(o){return this.clone().iushrn(o)},i.prototype.testn=function(o){r(typeof o=="number"&&o>=0);var h=o%26,d=(o-h)/26,v=1<=0);var h=o%26,d=(o-h)/26;if(r(this.negative===0,"imaskn works only with positive numbers"),this.length<=d)return this;if(h!==0&&d++,this.length=Math.min(d,this.length),h!==0){var v=67108863^67108863>>>h<=67108864;h++)this.words[h]-=67108864,h===this.length-1?this.words[h+1]=1:this.words[h+1]++;return this.length=Math.max(this.length,h+1),this},i.prototype.isubn=function(o){if(r(typeof o=="number"),r(o<67108864),o<0)return this.iaddn(-o);if(this.negative!==0)return this.negative=0,this.iaddn(o),this.negative=1,this;if(this.words[0]-=o,this.length===1&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var h=0;h>26)-(b/67108864|0),this.words[m+d]=_&67108863}for(;m>26,this.words[m+d]=_&67108863;if(E===0)return this.strip();for(r(E===-1),E=0,m=0;m>26,this.words[m]=_&67108863;return this.negative=1,this.strip()},i.prototype._wordDiv=function(o,h){var d=this.length-o.length,v=this.clone(),m=o,_=m.words[m.length-1]|0,E=this._countBits(_);d=26-E,d!==0&&(m=m.ushln(d),v.iushln(d),_=m.words[m.length-1]|0);var b=v.length-m.length,f;if(h!=="mod"){f=new i(null),f.length=b+1,f.words=new Array(f.length);for(var g=0;g=0;R--){var k=(v.words[m.length+R]|0)*67108864+(v.words[m.length+R-1]|0);for(k=Math.min(k/_|0,67108863),v._ishlnsubmul(m,k,R);v.negative!==0;)k--,v.negative=0,v._ishlnsubmul(m,1,R),v.isZero()||(v.negative^=1);f&&(f.words[R]=k)}return f&&f.strip(),v.strip(),h!=="div"&&d!==0&&v.iushrn(d),{div:f||null,mod:v}},i.prototype.divmod=function(o,h,d){if(r(!o.isZero()),this.isZero())return{div:new i(0),mod:new i(0)};var v,m,_;return this.negative!==0&&o.negative===0?(_=this.neg().divmod(o,h),h!=="mod"&&(v=_.div.neg()),h!=="div"&&(m=_.mod.neg(),d&&m.negative!==0&&m.iadd(o)),{div:v,mod:m}):this.negative===0&&o.negative!==0?(_=this.divmod(o.neg(),h),h!=="mod"&&(v=_.div.neg()),{div:v,mod:_.mod}):(this.negative&o.negative)!==0?(_=this.neg().divmod(o.neg(),h),h!=="div"&&(m=_.mod.neg(),d&&m.negative!==0&&m.isub(o)),{div:_.div,mod:m}):o.length>this.length||this.cmp(o)<0?{div:new i(0),mod:this}:o.length===1?h==="div"?{div:this.divn(o.words[0]),mod:null}:h==="mod"?{div:null,mod:new i(this.modn(o.words[0]))}:{div:this.divn(o.words[0]),mod:new i(this.modn(o.words[0]))}:this._wordDiv(o,h)},i.prototype.div=function(o){return this.divmod(o,"div",!1).div},i.prototype.mod=function(o){return this.divmod(o,"mod",!1).mod},i.prototype.umod=function(o){return this.divmod(o,"mod",!0).mod},i.prototype.divRound=function(o){var h=this.divmod(o);if(h.mod.isZero())return h.div;var d=h.div.negative!==0?h.mod.isub(o):h.mod,v=o.ushrn(1),m=o.andln(1),_=d.cmp(v);return _<0||m===1&&_===0?h.div:h.div.negative!==0?h.div.isubn(1):h.div.iaddn(1)},i.prototype.modn=function(o){r(o<=67108863);for(var h=(1<<26)%o,d=0,v=this.length-1;v>=0;v--)d=(h*d+(this.words[v]|0))%o;return d},i.prototype.idivn=function(o){r(o<=67108863);for(var h=0,d=this.length-1;d>=0;d--){var v=(this.words[d]|0)+h*67108864;this.words[d]=v/o|0,h=v%o}return this.strip()},i.prototype.divn=function(o){return this.clone().idivn(o)},i.prototype.egcd=function(o){r(o.negative===0),r(!o.isZero());var h=this,d=o.clone();h.negative!==0?h=h.umod(o):h=h.clone();for(var v=new i(1),m=new i(0),_=new i(0),E=new i(1),b=0;h.isEven()&&d.isEven();)h.iushrn(1),d.iushrn(1),++b;for(var f=d.clone(),g=h.clone();!h.isZero();){for(var A=0,R=1;(h.words[0]&R)===0&&A<26;++A,R<<=1);if(A>0)for(h.iushrn(A);A-- >0;)(v.isOdd()||m.isOdd())&&(v.iadd(f),m.isub(g)),v.iushrn(1),m.iushrn(1);for(var k=0,U=1;(d.words[0]&U)===0&&k<26;++k,U<<=1);if(k>0)for(d.iushrn(k);k-- >0;)(_.isOdd()||E.isOdd())&&(_.iadd(f),E.isub(g)),_.iushrn(1),E.iushrn(1);h.cmp(d)>=0?(h.isub(d),v.isub(_),m.isub(E)):(d.isub(h),_.isub(v),E.isub(m))}return{a:_,b:E,gcd:d.iushln(b)}},i.prototype._invmp=function(o){r(o.negative===0),r(!o.isZero());var h=this,d=o.clone();h.negative!==0?h=h.umod(o):h=h.clone();for(var v=new i(1),m=new i(0),_=d.clone();h.cmpn(1)>0&&d.cmpn(1)>0;){for(var E=0,b=1;(h.words[0]&b)===0&&E<26;++E,b<<=1);if(E>0)for(h.iushrn(E);E-- >0;)v.isOdd()&&v.iadd(_),v.iushrn(1);for(var f=0,g=1;(d.words[0]&g)===0&&f<26;++f,g<<=1);if(f>0)for(d.iushrn(f);f-- >0;)m.isOdd()&&m.iadd(_),m.iushrn(1);h.cmp(d)>=0?(h.isub(d),v.isub(m)):(d.isub(h),m.isub(v))}var A;return h.cmpn(1)===0?A=v:A=m,A.cmpn(0)<0&&A.iadd(o),A},i.prototype.gcd=function(o){if(this.isZero())return o.abs();if(o.isZero())return this.abs();var h=this.clone(),d=o.clone();h.negative=0,d.negative=0;for(var v=0;h.isEven()&&d.isEven();v++)h.iushrn(1),d.iushrn(1);do{for(;h.isEven();)h.iushrn(1);for(;d.isEven();)d.iushrn(1);var m=h.cmp(d);if(m<0){var _=h;h=d,d=_}else if(m===0||d.cmpn(1)===0)break;h.isub(d)}while(!0);return d.iushln(v)},i.prototype.invm=function(o){return this.egcd(o).a.umod(o)},i.prototype.isEven=function(){return(this.words[0]&1)===0},i.prototype.isOdd=function(){return(this.words[0]&1)===1},i.prototype.andln=function(o){return this.words[0]&o},i.prototype.bincn=function(o){r(typeof o=="number");var h=o%26,d=(o-h)/26,v=1<>>26,E&=67108863,this.words[_]=E}return m!==0&&(this.words[_]=m,this.length++),this},i.prototype.isZero=function(){return this.length===1&&this.words[0]===0},i.prototype.cmpn=function(o){var h=o<0;if(this.negative!==0&&!h)return-1;if(this.negative===0&&h)return 1;this.strip();var d;if(this.length>1)d=1;else{h&&(o=-o),r(o<=67108863,"Number is too big");var v=this.words[0]|0;d=v===o?0:vo.length)return 1;if(this.length=0;d--){var v=this.words[d]|0,m=o.words[d]|0;if(v!==m){vm&&(h=1);break}}return h},i.prototype.gtn=function(o){return this.cmpn(o)===1},i.prototype.gt=function(o){return this.cmp(o)===1},i.prototype.gten=function(o){return this.cmpn(o)>=0},i.prototype.gte=function(o){return this.cmp(o)>=0},i.prototype.ltn=function(o){return this.cmpn(o)===-1},i.prototype.lt=function(o){return this.cmp(o)===-1},i.prototype.lten=function(o){return this.cmpn(o)<=0},i.prototype.lte=function(o){return this.cmp(o)<=0},i.prototype.eqn=function(o){return this.cmpn(o)===0},i.prototype.eq=function(o){return this.cmp(o)===0},i.red=function(o){return new q(o)},i.prototype.toRed=function(o){return r(!this.red,"Already a number in reduction context"),r(this.negative===0,"red works only with positives"),o.convertTo(this)._forceRed(o)},i.prototype.fromRed=function(){return r(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},i.prototype._forceRed=function(o){return this.red=o,this},i.prototype.forceRed=function(o){return r(!this.red,"Already a number in reduction context"),this._forceRed(o)},i.prototype.redAdd=function(o){return r(this.red,"redAdd works only with red numbers"),this.red.add(this,o)},i.prototype.redIAdd=function(o){return r(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,o)},i.prototype.redSub=function(o){return r(this.red,"redSub works only with red numbers"),this.red.sub(this,o)},i.prototype.redISub=function(o){return r(this.red,"redISub works only with red numbers"),this.red.isub(this,o)},i.prototype.redShl=function(o){return r(this.red,"redShl works only with red numbers"),this.red.shl(this,o)},i.prototype.redMul=function(o){return r(this.red,"redMul works only with red numbers"),this.red._verify2(this,o),this.red.mul(this,o)},i.prototype.redIMul=function(o){return r(this.red,"redMul works only with red numbers"),this.red._verify2(this,o),this.red.imul(this,o)},i.prototype.redSqr=function(){return r(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},i.prototype.redISqr=function(){return r(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},i.prototype.redSqrt=function(){return r(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},i.prototype.redInvm=function(){return r(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},i.prototype.redNeg=function(){return r(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},i.prototype.redPow=function(o){return r(this.red&&!o.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,o)};var N={k256:null,p224:null,p192:null,p25519:null};function L(y,o){this.name=y,this.p=new i(o,16),this.n=this.p.bitLength(),this.k=new i(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}L.prototype._tmp=function(){var o=new i(null);return o.words=new Array(Math.ceil(this.n/13)),o},L.prototype.ireduce=function(o){var h=o,d;do this.split(h,this.tmp),h=this.imulK(h),h=h.iadd(this.tmp),d=h.bitLength();while(d>this.n);var v=d0?h.isub(this.p):h.strip!==void 0?h.strip():h._strip(),h},L.prototype.split=function(o,h){o.iushrn(this.n,0,h)},L.prototype.imulK=function(o){return o.imul(this.k)};function H(){L.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}n(H,L),H.prototype.split=function(o,h){for(var d=4194303,v=Math.min(o.length,9),m=0;m>>22,_=E}_>>>=22,o.words[m-10]=_,_===0&&o.length>10?o.length-=10:o.length-=9},H.prototype.imulK=function(o){o.words[o.length]=0,o.words[o.length+1]=0,o.length+=2;for(var h=0,d=0;d>>=26,o.words[d]=m,h=v}return h!==0&&(o.words[o.length++]=h),o},i._prime=function(o){if(N[o])return N[o];var h;if(o==="k256")h=new H;else if(o==="p224")h=new W;else if(o==="p192")h=new K;else if(o==="p25519")h=new X;else throw new Error("Unknown prime "+o);return N[o]=h,h};function q(y){if(typeof y=="string"){var o=i._prime(y);this.m=o.p,this.prime=o}else r(y.gtn(1),"modulus must be greater than 1"),this.m=y,this.prime=null}q.prototype._verify1=function(o){r(o.negative===0,"red works only with positives"),r(o.red,"red works only with red numbers")},q.prototype._verify2=function(o,h){r((o.negative|h.negative)===0,"red works only with positives"),r(o.red&&o.red===h.red,"red works only with red numbers")},q.prototype.imod=function(o){return this.prime?this.prime.ireduce(o)._forceRed(this):o.umod(this.m)._forceRed(this)},q.prototype.neg=function(o){return o.isZero()?o.clone():this.m.sub(o)._forceRed(this)},q.prototype.add=function(o,h){this._verify2(o,h);var d=o.add(h);return d.cmp(this.m)>=0&&d.isub(this.m),d._forceRed(this)},q.prototype.iadd=function(o,h){this._verify2(o,h);var d=o.iadd(h);return d.cmp(this.m)>=0&&d.isub(this.m),d},q.prototype.sub=function(o,h){this._verify2(o,h);var d=o.sub(h);return d.cmpn(0)<0&&d.iadd(this.m),d._forceRed(this)},q.prototype.isub=function(o,h){this._verify2(o,h);var d=o.isub(h);return d.cmpn(0)<0&&d.iadd(this.m),d},q.prototype.shl=function(o,h){return this._verify1(o),this.imod(o.ushln(h))},q.prototype.imul=function(o,h){return this._verify2(o,h),this.imod(o.imul(h))},q.prototype.mul=function(o,h){return this._verify2(o,h),this.imod(o.mul(h))},q.prototype.isqr=function(o){return this.imul(o,o.clone())},q.prototype.sqr=function(o){return this.mul(o,o)},q.prototype.sqrt=function(o){if(o.isZero())return o.clone();var h=this.m.andln(3);if(r(h%2===1),h===3){var d=this.m.add(new i(1)).iushrn(2);return this.pow(o,d)}for(var v=this.m.subn(1),m=0;!v.isZero()&&v.andln(1)===0;)m++,v.iushrn(1);r(!v.isZero());var _=new i(1).toRed(this),E=_.redNeg(),b=this.m.subn(1).iushrn(1),f=this.m.bitLength();for(f=new i(2*f*f).toRed(this);this.pow(f,b).cmp(E)!==0;)f.redIAdd(E);for(var g=this.pow(f,v),A=this.pow(o,v.addn(1).iushrn(1)),R=this.pow(o,v),k=m;R.cmp(_)!==0;){for(var U=R,G=0;U.cmp(_)!==0;G++)U=U.redSqr();r(G=0;m--){for(var g=h.words[m],A=f-1;A>=0;A--){var R=g>>A&1;if(_!==v[0]&&(_=this.sqr(_)),R===0&&E===0){b=0;continue}E<<=1,E|=R,b++,!(b!==d&&(m!==0||A!==0))&&(_=this.mul(_,v[E]),b=0,E=0)}f=26}return _},q.prototype.convertTo=function(o){var h=o.umod(this.m);return h===o?h.clone():h},q.prototype.convertFrom=function(o){var h=o.clone();return h.red=null,h},i.mont=function(o){return new ee(o)};function ee(y){q.call(this,y),this.shift=this.m.bitLength(),this.shift%26!==0&&(this.shift+=26-this.shift%26),this.r=new i(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}n(ee,q),ee.prototype.convertTo=function(o){return this.imod(o.ushln(this.shift))},ee.prototype.convertFrom=function(o){var h=this.imod(o.mul(this.rinv));return h.red=null,h},ee.prototype.imul=function(o,h){if(o.isZero()||h.isZero())return o.words[0]=0,o.length=1,o;var d=o.imul(h),v=d.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),m=d.isub(v).iushrn(this.shift),_=m;return m.cmp(this.m)>=0?_=m.isub(this.m):m.cmpn(0)<0&&(_=m.iadd(this.m)),_._forceRed(this)},ee.prototype.mul=function(o,h){if(o.isZero()||h.isZero())return new i(0)._forceRed(this);var d=o.mul(h),v=d.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),m=d.isub(v).iushrn(this.shift),_=m;return m.cmp(this.m)>=0?_=m.isub(this.m):m.cmpn(0)<0&&(_=m.iadd(this.m)),_._forceRed(this)},ee.prototype.invm=function(o){var h=this.imod(o._invmp(this.m).mul(this.r2));return h._forceRed(this)}})(typeof yc>"u"||yc,Vd)});var $d=T((qB,s_)=>{s_.exports={name:"elliptic",version:"6.5.4",description:"EC cryptography",main:"lib/elliptic.js",files:["lib"],scripts:{lint:"eslint lib test","lint:fix":"npm run lint -- --fix",unit:"istanbul test _mocha --reporter=spec test/index.js",test:"npm run lint && npm run unit",version:"grunt dist && git add dist/"},repository:{type:"git",url:"git@github.com:indutny/elliptic"},keywords:["EC","Elliptic","curve","Cryptography"],author:"Fedor Indutny ",license:"MIT",bugs:{url:"https://github.com/indutny/elliptic/issues"},homepage:"https://github.com/indutny/elliptic",devDependencies:{brfs:"^2.0.2",coveralls:"^3.1.0",eslint:"^7.6.0",grunt:"^1.2.1","grunt-browserify":"^5.3.0","grunt-cli":"^1.3.2","grunt-contrib-connect":"^3.0.0","grunt-contrib-copy":"^1.0.0","grunt-contrib-uglify":"^5.0.0","grunt-mocha-istanbul":"^5.0.2","grunt-saucelabs":"^9.0.1",istanbul:"^0.4.5",mocha:"^8.0.1"},dependencies:{"bn.js":"^4.11.9",brorand:"^1.1.0","hash.js":"^1.0.0","hmac-drbg":"^1.0.1",inherits:"^2.0.4","minimalistic-assert":"^1.0.1","minimalistic-crypto-utils":"^1.0.1"}}});var Er=T((jd,wc)=>{(function(e,t){"use strict";function r(y,o){if(!y)throw new Error(o||"Assertion failed")}function n(y,o){y.super_=o;var h=function(){};h.prototype=o.prototype,y.prototype=new h,y.prototype.constructor=y}function i(y,o,h){if(i.isBN(y))return y;this.negative=0,this.words=null,this.length=0,this.red=null,y!==null&&((o==="le"||o==="be")&&(h=o,o=10),this._init(y||0,o||10,h||"be"))}typeof e=="object"?e.exports=i:t.BN=i,i.BN=i,i.wordSize=26;var s;try{typeof window<"u"&&typeof window.Buffer<"u"?s=window.Buffer:s=require("buffer").Buffer}catch{}i.isBN=function(o){return o instanceof i?!0:o!==null&&typeof o=="object"&&o.constructor.wordSize===i.wordSize&&Array.isArray(o.words)},i.max=function(o,h){return o.cmp(h)>0?o:h},i.min=function(o,h){return o.cmp(h)<0?o:h},i.prototype._init=function(o,h,d){if(typeof o=="number")return this._initNumber(o,h,d);if(typeof o=="object")return this._initArray(o,h,d);h==="hex"&&(h=16),r(h===(h|0)&&h>=2&&h<=36),o=o.toString().replace(/\s+/g,"");var v=0;o[0]==="-"&&(v++,this.negative=1),v=0;v-=3)_=o[v]|o[v-1]<<8|o[v-2]<<16,this.words[m]|=_<>>26-E&67108863,E+=24,E>=26&&(E-=26,m++);else if(d==="le")for(v=0,m=0;v>>26-E&67108863,E+=24,E>=26&&(E-=26,m++);return this.strip()};function a(y,o){var h=y.charCodeAt(o);return h>=65&&h<=70?h-55:h>=97&&h<=102?h-87:h-48&15}function u(y,o,h){var d=a(y,h);return h-1>=o&&(d|=a(y,h-1)<<4),d}i.prototype._parseHex=function(o,h,d){this.length=Math.ceil((o.length-h)/6),this.words=new Array(this.length);for(var v=0;v=h;v-=2)E=u(o,h,v)<=18?(m-=18,_+=1,this.words[_]|=E>>>26):m+=8;else{var b=o.length-h;for(v=b%2===0?h+1:h;v=18?(m-=18,_+=1,this.words[_]|=E>>>26):m+=8}this.strip()};function l(y,o,h,d){for(var v=0,m=Math.min(y.length,h),_=o;_=49?v+=E-49+10:E>=17?v+=E-17+10:v+=E}return v}i.prototype._parseBase=function(o,h,d){this.words=[0],this.length=1;for(var v=0,m=1;m<=67108863;m*=h)v++;v--,m=m/h|0;for(var _=o.length-d,E=_%v,b=Math.min(_,_-E)+d,f=0,g=d;g1&&this.words[this.length-1]===0;)this.length--;return this._normSign()},i.prototype._normSign=function(){return this.length===1&&this.words[0]===0&&(this.negative=0),this},i.prototype.inspect=function(){return(this.red?""};var c=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],p=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],w=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];i.prototype.toString=function(o,h){o=o||10,h=h|0||1;var d;if(o===16||o==="hex"){d="";for(var v=0,m=0,_=0;_>>24-v&16777215,m!==0||_!==this.length-1?d=c[6-b.length]+b+d:d=b+d,v+=2,v>=26&&(v-=26,_--)}for(m!==0&&(d=m.toString(16)+d);d.length%h!==0;)d="0"+d;return this.negative!==0&&(d="-"+d),d}if(o===(o|0)&&o>=2&&o<=36){var f=p[o],g=w[o];d="";var A=this.clone();for(A.negative=0;!A.isZero();){var R=A.modn(g).toString(o);A=A.idivn(g),A.isZero()?d=R+d:d=c[f-R.length]+R+d}for(this.isZero()&&(d="0"+d);d.length%h!==0;)d="0"+d;return this.negative!==0&&(d="-"+d),d}r(!1,"Base should be between 2 and 36")},i.prototype.toNumber=function(){var o=this.words[0];return this.length===2?o+=this.words[1]*67108864:this.length===3&&this.words[2]===1?o+=4503599627370496+this.words[1]*67108864:this.length>2&&r(!1,"Number can only safely store up to 53 bits"),this.negative!==0?-o:o},i.prototype.toJSON=function(){return this.toString(16)},i.prototype.toBuffer=function(o,h){return r(typeof s<"u"),this.toArrayLike(s,o,h)},i.prototype.toArray=function(o,h){return this.toArrayLike(Array,o,h)},i.prototype.toArrayLike=function(o,h,d){var v=this.byteLength(),m=d||Math.max(1,v);r(v<=m,"byte array longer than desired length"),r(m>0,"Requested array length <= 0"),this.strip();var _=h==="le",E=new o(m),b,f,g=this.clone();if(_){for(f=0;!g.isZero();f++)b=g.andln(255),g.iushrn(8),E[f]=b;for(;f=4096&&(d+=13,h>>>=13),h>=64&&(d+=7,h>>>=7),h>=8&&(d+=4,h>>>=4),h>=2&&(d+=2,h>>>=2),d+h},i.prototype._zeroBits=function(o){if(o===0)return 26;var h=o,d=0;return(h&8191)===0&&(d+=13,h>>>=13),(h&127)===0&&(d+=7,h>>>=7),(h&15)===0&&(d+=4,h>>>=4),(h&3)===0&&(d+=2,h>>>=2),(h&1)===0&&d++,d},i.prototype.bitLength=function(){var o=this.words[this.length-1],h=this._countBits(o);return(this.length-1)*26+h};function x(y){for(var o=new Array(y.bitLength()),h=0;h>>v}return o}i.prototype.zeroBits=function(){if(this.isZero())return 0;for(var o=0,h=0;ho.length?this.clone().ior(o):o.clone().ior(this)},i.prototype.uor=function(o){return this.length>o.length?this.clone().iuor(o):o.clone().iuor(this)},i.prototype.iuand=function(o){var h;this.length>o.length?h=o:h=this;for(var d=0;do.length?this.clone().iand(o):o.clone().iand(this)},i.prototype.uand=function(o){return this.length>o.length?this.clone().iuand(o):o.clone().iuand(this)},i.prototype.iuxor=function(o){var h,d;this.length>o.length?(h=this,d=o):(h=o,d=this);for(var v=0;vo.length?this.clone().ixor(o):o.clone().ixor(this)},i.prototype.uxor=function(o){return this.length>o.length?this.clone().iuxor(o):o.clone().iuxor(this)},i.prototype.inotn=function(o){r(typeof o=="number"&&o>=0);var h=Math.ceil(o/26)|0,d=o%26;this._expand(h),d>0&&h--;for(var v=0;v0&&(this.words[v]=~this.words[v]&67108863>>26-d),this.strip()},i.prototype.notn=function(o){return this.clone().inotn(o)},i.prototype.setn=function(o,h){r(typeof o=="number"&&o>=0);var d=o/26|0,v=o%26;return this._expand(d+1),h?this.words[d]=this.words[d]|1<o.length?(d=this,v=o):(d=o,v=this);for(var m=0,_=0;_>>26;for(;m!==0&&_>>26;if(this.length=d.length,m!==0)this.words[this.length]=m,this.length++;else if(d!==this)for(;_o.length?this.clone().iadd(o):o.clone().iadd(this)},i.prototype.isub=function(o){if(o.negative!==0){o.negative=0;var h=this.iadd(o);return o.negative=1,h._normSign()}else if(this.negative!==0)return this.negative=0,this.iadd(o),this.negative=1,this._normSign();var d=this.cmp(o);if(d===0)return this.negative=0,this.length=1,this.words[0]=0,this;var v,m;d>0?(v=this,m=o):(v=o,m=this);for(var _=0,E=0;E>26,this.words[E]=h&67108863;for(;_!==0&&E>26,this.words[E]=h&67108863;if(_===0&&E>>26,A=b&67108863,R=Math.min(f,o.length-1),k=Math.max(0,f-y.length+1);k<=R;k++){var U=f-k|0;v=y.words[U]|0,m=o.words[k]|0,_=v*m+A,g+=_/67108864|0,A=_&67108863}h.words[f]=A|0,b=g|0}return b!==0?h.words[f]=b|0:h.length--,h.strip()}var M=function(o,h,d){var v=o.words,m=h.words,_=d.words,E=0,b,f,g,A=v[0]|0,R=A&8191,k=A>>>13,U=v[1]|0,G=U&8191,F=U>>>13,Le=v[2]|0,V=Le&8191,j=Le>>>13,fr=v[3]|0,Y=fr&8191,oe=fr>>>13,ct=v[4]|0,re=ct&8191,te=ct>>>13,hn=v[5]|0,ae=hn&8191,ne=hn>>>13,Hr=v[6]|0,ie=Hr&8191,J=Hr>>>13,yr=v[7]|0,D=yr&8191,fe=yr>>>13,wr=v[8]|0,se=wr&8191,ue=wr>>>13,qe=v[9]|0,Z=qe&8191,Q=qe>>>13,Jt=m[0]|0,ce=Jt&8191,he=Jt>>>13,Gn=m[1]|0,de=Gn&8191,pe=Gn>>>13,so=m[2]|0,ve=so&8191,be=so>>>13,oo=m[3]|0,ge=oo&8191,me=oo>>>13,ao=m[4]|0,ye=ao&8191,we=ao>>>13,fo=m[5]|0,_e=fo&8191,Ee=fo>>>13,uo=m[6]|0,xe=uo&8191,Se=uo>>>13,co=m[7]|0,Ie=co&8191,Te=co>>>13,ho=m[8]|0,Me=ho&8191,Ae=ho>>>13,lo=m[9]|0,Oe=lo&8191,Pe=lo>>>13;d.negative=o.negative^h.negative,d.length=19,b=Math.imul(R,ce),f=Math.imul(R,he),f=f+Math.imul(k,ce)|0,g=Math.imul(k,he);var Wn=(E+b|0)+((f&8191)<<13)|0;E=(g+(f>>>13)|0)+(Wn>>>26)|0,Wn&=67108863,b=Math.imul(G,ce),f=Math.imul(G,he),f=f+Math.imul(F,ce)|0,g=Math.imul(F,he),b=b+Math.imul(R,de)|0,f=f+Math.imul(R,pe)|0,f=f+Math.imul(k,de)|0,g=g+Math.imul(k,pe)|0;var Vn=(E+b|0)+((f&8191)<<13)|0;E=(g+(f>>>13)|0)+(Vn>>>26)|0,Vn&=67108863,b=Math.imul(V,ce),f=Math.imul(V,he),f=f+Math.imul(j,ce)|0,g=Math.imul(j,he),b=b+Math.imul(G,de)|0,f=f+Math.imul(G,pe)|0,f=f+Math.imul(F,de)|0,g=g+Math.imul(F,pe)|0,b=b+Math.imul(R,ve)|0,f=f+Math.imul(R,be)|0,f=f+Math.imul(k,ve)|0,g=g+Math.imul(k,be)|0;var zn=(E+b|0)+((f&8191)<<13)|0;E=(g+(f>>>13)|0)+(zn>>>26)|0,zn&=67108863,b=Math.imul(Y,ce),f=Math.imul(Y,he),f=f+Math.imul(oe,ce)|0,g=Math.imul(oe,he),b=b+Math.imul(V,de)|0,f=f+Math.imul(V,pe)|0,f=f+Math.imul(j,de)|0,g=g+Math.imul(j,pe)|0,b=b+Math.imul(G,ve)|0,f=f+Math.imul(G,be)|0,f=f+Math.imul(F,ve)|0,g=g+Math.imul(F,be)|0,b=b+Math.imul(R,ge)|0,f=f+Math.imul(R,me)|0,f=f+Math.imul(k,ge)|0,g=g+Math.imul(k,me)|0;var $n=(E+b|0)+((f&8191)<<13)|0;E=(g+(f>>>13)|0)+($n>>>26)|0,$n&=67108863,b=Math.imul(re,ce),f=Math.imul(re,he),f=f+Math.imul(te,ce)|0,g=Math.imul(te,he),b=b+Math.imul(Y,de)|0,f=f+Math.imul(Y,pe)|0,f=f+Math.imul(oe,de)|0,g=g+Math.imul(oe,pe)|0,b=b+Math.imul(V,ve)|0,f=f+Math.imul(V,be)|0,f=f+Math.imul(j,ve)|0,g=g+Math.imul(j,be)|0,b=b+Math.imul(G,ge)|0,f=f+Math.imul(G,me)|0,f=f+Math.imul(F,ge)|0,g=g+Math.imul(F,me)|0,b=b+Math.imul(R,ye)|0,f=f+Math.imul(R,we)|0,f=f+Math.imul(k,ye)|0,g=g+Math.imul(k,we)|0;var jn=(E+b|0)+((f&8191)<<13)|0;E=(g+(f>>>13)|0)+(jn>>>26)|0,jn&=67108863,b=Math.imul(ae,ce),f=Math.imul(ae,he),f=f+Math.imul(ne,ce)|0,g=Math.imul(ne,he),b=b+Math.imul(re,de)|0,f=f+Math.imul(re,pe)|0,f=f+Math.imul(te,de)|0,g=g+Math.imul(te,pe)|0,b=b+Math.imul(Y,ve)|0,f=f+Math.imul(Y,be)|0,f=f+Math.imul(oe,ve)|0,g=g+Math.imul(oe,be)|0,b=b+Math.imul(V,ge)|0,f=f+Math.imul(V,me)|0,f=f+Math.imul(j,ge)|0,g=g+Math.imul(j,me)|0,b=b+Math.imul(G,ye)|0,f=f+Math.imul(G,we)|0,f=f+Math.imul(F,ye)|0,g=g+Math.imul(F,we)|0,b=b+Math.imul(R,_e)|0,f=f+Math.imul(R,Ee)|0,f=f+Math.imul(k,_e)|0,g=g+Math.imul(k,Ee)|0;var Xn=(E+b|0)+((f&8191)<<13)|0;E=(g+(f>>>13)|0)+(Xn>>>26)|0,Xn&=67108863,b=Math.imul(ie,ce),f=Math.imul(ie,he),f=f+Math.imul(J,ce)|0,g=Math.imul(J,he),b=b+Math.imul(ae,de)|0,f=f+Math.imul(ae,pe)|0,f=f+Math.imul(ne,de)|0,g=g+Math.imul(ne,pe)|0,b=b+Math.imul(re,ve)|0,f=f+Math.imul(re,be)|0,f=f+Math.imul(te,ve)|0,g=g+Math.imul(te,be)|0,b=b+Math.imul(Y,ge)|0,f=f+Math.imul(Y,me)|0,f=f+Math.imul(oe,ge)|0,g=g+Math.imul(oe,me)|0,b=b+Math.imul(V,ye)|0,f=f+Math.imul(V,we)|0,f=f+Math.imul(j,ye)|0,g=g+Math.imul(j,we)|0,b=b+Math.imul(G,_e)|0,f=f+Math.imul(G,Ee)|0,f=f+Math.imul(F,_e)|0,g=g+Math.imul(F,Ee)|0,b=b+Math.imul(R,xe)|0,f=f+Math.imul(R,Se)|0,f=f+Math.imul(k,xe)|0,g=g+Math.imul(k,Se)|0;var Yn=(E+b|0)+((f&8191)<<13)|0;E=(g+(f>>>13)|0)+(Yn>>>26)|0,Yn&=67108863,b=Math.imul(D,ce),f=Math.imul(D,he),f=f+Math.imul(fe,ce)|0,g=Math.imul(fe,he),b=b+Math.imul(ie,de)|0,f=f+Math.imul(ie,pe)|0,f=f+Math.imul(J,de)|0,g=g+Math.imul(J,pe)|0,b=b+Math.imul(ae,ve)|0,f=f+Math.imul(ae,be)|0,f=f+Math.imul(ne,ve)|0,g=g+Math.imul(ne,be)|0,b=b+Math.imul(re,ge)|0,f=f+Math.imul(re,me)|0,f=f+Math.imul(te,ge)|0,g=g+Math.imul(te,me)|0,b=b+Math.imul(Y,ye)|0,f=f+Math.imul(Y,we)|0,f=f+Math.imul(oe,ye)|0,g=g+Math.imul(oe,we)|0,b=b+Math.imul(V,_e)|0,f=f+Math.imul(V,Ee)|0,f=f+Math.imul(j,_e)|0,g=g+Math.imul(j,Ee)|0,b=b+Math.imul(G,xe)|0,f=f+Math.imul(G,Se)|0,f=f+Math.imul(F,xe)|0,g=g+Math.imul(F,Se)|0,b=b+Math.imul(R,Ie)|0,f=f+Math.imul(R,Te)|0,f=f+Math.imul(k,Ie)|0,g=g+Math.imul(k,Te)|0;var Jn=(E+b|0)+((f&8191)<<13)|0;E=(g+(f>>>13)|0)+(Jn>>>26)|0,Jn&=67108863,b=Math.imul(se,ce),f=Math.imul(se,he),f=f+Math.imul(ue,ce)|0,g=Math.imul(ue,he),b=b+Math.imul(D,de)|0,f=f+Math.imul(D,pe)|0,f=f+Math.imul(fe,de)|0,g=g+Math.imul(fe,pe)|0,b=b+Math.imul(ie,ve)|0,f=f+Math.imul(ie,be)|0,f=f+Math.imul(J,ve)|0,g=g+Math.imul(J,be)|0,b=b+Math.imul(ae,ge)|0,f=f+Math.imul(ae,me)|0,f=f+Math.imul(ne,ge)|0,g=g+Math.imul(ne,me)|0,b=b+Math.imul(re,ye)|0,f=f+Math.imul(re,we)|0,f=f+Math.imul(te,ye)|0,g=g+Math.imul(te,we)|0,b=b+Math.imul(Y,_e)|0,f=f+Math.imul(Y,Ee)|0,f=f+Math.imul(oe,_e)|0,g=g+Math.imul(oe,Ee)|0,b=b+Math.imul(V,xe)|0,f=f+Math.imul(V,Se)|0,f=f+Math.imul(j,xe)|0,g=g+Math.imul(j,Se)|0,b=b+Math.imul(G,Ie)|0,f=f+Math.imul(G,Te)|0,f=f+Math.imul(F,Ie)|0,g=g+Math.imul(F,Te)|0,b=b+Math.imul(R,Me)|0,f=f+Math.imul(R,Ae)|0,f=f+Math.imul(k,Me)|0,g=g+Math.imul(k,Ae)|0;var Zn=(E+b|0)+((f&8191)<<13)|0;E=(g+(f>>>13)|0)+(Zn>>>26)|0,Zn&=67108863,b=Math.imul(Z,ce),f=Math.imul(Z,he),f=f+Math.imul(Q,ce)|0,g=Math.imul(Q,he),b=b+Math.imul(se,de)|0,f=f+Math.imul(se,pe)|0,f=f+Math.imul(ue,de)|0,g=g+Math.imul(ue,pe)|0,b=b+Math.imul(D,ve)|0,f=f+Math.imul(D,be)|0,f=f+Math.imul(fe,ve)|0,g=g+Math.imul(fe,be)|0,b=b+Math.imul(ie,ge)|0,f=f+Math.imul(ie,me)|0,f=f+Math.imul(J,ge)|0,g=g+Math.imul(J,me)|0,b=b+Math.imul(ae,ye)|0,f=f+Math.imul(ae,we)|0,f=f+Math.imul(ne,ye)|0,g=g+Math.imul(ne,we)|0,b=b+Math.imul(re,_e)|0,f=f+Math.imul(re,Ee)|0,f=f+Math.imul(te,_e)|0,g=g+Math.imul(te,Ee)|0,b=b+Math.imul(Y,xe)|0,f=f+Math.imul(Y,Se)|0,f=f+Math.imul(oe,xe)|0,g=g+Math.imul(oe,Se)|0,b=b+Math.imul(V,Ie)|0,f=f+Math.imul(V,Te)|0,f=f+Math.imul(j,Ie)|0,g=g+Math.imul(j,Te)|0,b=b+Math.imul(G,Me)|0,f=f+Math.imul(G,Ae)|0,f=f+Math.imul(F,Me)|0,g=g+Math.imul(F,Ae)|0,b=b+Math.imul(R,Oe)|0,f=f+Math.imul(R,Pe)|0,f=f+Math.imul(k,Oe)|0,g=g+Math.imul(k,Pe)|0;var Qn=(E+b|0)+((f&8191)<<13)|0;E=(g+(f>>>13)|0)+(Qn>>>26)|0,Qn&=67108863,b=Math.imul(Z,de),f=Math.imul(Z,pe),f=f+Math.imul(Q,de)|0,g=Math.imul(Q,pe),b=b+Math.imul(se,ve)|0,f=f+Math.imul(se,be)|0,f=f+Math.imul(ue,ve)|0,g=g+Math.imul(ue,be)|0,b=b+Math.imul(D,ge)|0,f=f+Math.imul(D,me)|0,f=f+Math.imul(fe,ge)|0,g=g+Math.imul(fe,me)|0,b=b+Math.imul(ie,ye)|0,f=f+Math.imul(ie,we)|0,f=f+Math.imul(J,ye)|0,g=g+Math.imul(J,we)|0,b=b+Math.imul(ae,_e)|0,f=f+Math.imul(ae,Ee)|0,f=f+Math.imul(ne,_e)|0,g=g+Math.imul(ne,Ee)|0,b=b+Math.imul(re,xe)|0,f=f+Math.imul(re,Se)|0,f=f+Math.imul(te,xe)|0,g=g+Math.imul(te,Se)|0,b=b+Math.imul(Y,Ie)|0,f=f+Math.imul(Y,Te)|0,f=f+Math.imul(oe,Ie)|0,g=g+Math.imul(oe,Te)|0,b=b+Math.imul(V,Me)|0,f=f+Math.imul(V,Ae)|0,f=f+Math.imul(j,Me)|0,g=g+Math.imul(j,Ae)|0,b=b+Math.imul(G,Oe)|0,f=f+Math.imul(G,Pe)|0,f=f+Math.imul(F,Oe)|0,g=g+Math.imul(F,Pe)|0;var ei=(E+b|0)+((f&8191)<<13)|0;E=(g+(f>>>13)|0)+(ei>>>26)|0,ei&=67108863,b=Math.imul(Z,ve),f=Math.imul(Z,be),f=f+Math.imul(Q,ve)|0,g=Math.imul(Q,be),b=b+Math.imul(se,ge)|0,f=f+Math.imul(se,me)|0,f=f+Math.imul(ue,ge)|0,g=g+Math.imul(ue,me)|0,b=b+Math.imul(D,ye)|0,f=f+Math.imul(D,we)|0,f=f+Math.imul(fe,ye)|0,g=g+Math.imul(fe,we)|0,b=b+Math.imul(ie,_e)|0,f=f+Math.imul(ie,Ee)|0,f=f+Math.imul(J,_e)|0,g=g+Math.imul(J,Ee)|0,b=b+Math.imul(ae,xe)|0,f=f+Math.imul(ae,Se)|0,f=f+Math.imul(ne,xe)|0,g=g+Math.imul(ne,Se)|0,b=b+Math.imul(re,Ie)|0,f=f+Math.imul(re,Te)|0,f=f+Math.imul(te,Ie)|0,g=g+Math.imul(te,Te)|0,b=b+Math.imul(Y,Me)|0,f=f+Math.imul(Y,Ae)|0,f=f+Math.imul(oe,Me)|0,g=g+Math.imul(oe,Ae)|0,b=b+Math.imul(V,Oe)|0,f=f+Math.imul(V,Pe)|0,f=f+Math.imul(j,Oe)|0,g=g+Math.imul(j,Pe)|0;var ti=(E+b|0)+((f&8191)<<13)|0;E=(g+(f>>>13)|0)+(ti>>>26)|0,ti&=67108863,b=Math.imul(Z,ge),f=Math.imul(Z,me),f=f+Math.imul(Q,ge)|0,g=Math.imul(Q,me),b=b+Math.imul(se,ye)|0,f=f+Math.imul(se,we)|0,f=f+Math.imul(ue,ye)|0,g=g+Math.imul(ue,we)|0,b=b+Math.imul(D,_e)|0,f=f+Math.imul(D,Ee)|0,f=f+Math.imul(fe,_e)|0,g=g+Math.imul(fe,Ee)|0,b=b+Math.imul(ie,xe)|0,f=f+Math.imul(ie,Se)|0,f=f+Math.imul(J,xe)|0,g=g+Math.imul(J,Se)|0,b=b+Math.imul(ae,Ie)|0,f=f+Math.imul(ae,Te)|0,f=f+Math.imul(ne,Ie)|0,g=g+Math.imul(ne,Te)|0,b=b+Math.imul(re,Me)|0,f=f+Math.imul(re,Ae)|0,f=f+Math.imul(te,Me)|0,g=g+Math.imul(te,Ae)|0,b=b+Math.imul(Y,Oe)|0,f=f+Math.imul(Y,Pe)|0,f=f+Math.imul(oe,Oe)|0,g=g+Math.imul(oe,Pe)|0;var ri=(E+b|0)+((f&8191)<<13)|0;E=(g+(f>>>13)|0)+(ri>>>26)|0,ri&=67108863,b=Math.imul(Z,ye),f=Math.imul(Z,we),f=f+Math.imul(Q,ye)|0,g=Math.imul(Q,we),b=b+Math.imul(se,_e)|0,f=f+Math.imul(se,Ee)|0,f=f+Math.imul(ue,_e)|0,g=g+Math.imul(ue,Ee)|0,b=b+Math.imul(D,xe)|0,f=f+Math.imul(D,Se)|0,f=f+Math.imul(fe,xe)|0,g=g+Math.imul(fe,Se)|0,b=b+Math.imul(ie,Ie)|0,f=f+Math.imul(ie,Te)|0,f=f+Math.imul(J,Ie)|0,g=g+Math.imul(J,Te)|0,b=b+Math.imul(ae,Me)|0,f=f+Math.imul(ae,Ae)|0,f=f+Math.imul(ne,Me)|0,g=g+Math.imul(ne,Ae)|0,b=b+Math.imul(re,Oe)|0,f=f+Math.imul(re,Pe)|0,f=f+Math.imul(te,Oe)|0,g=g+Math.imul(te,Pe)|0;var ni=(E+b|0)+((f&8191)<<13)|0;E=(g+(f>>>13)|0)+(ni>>>26)|0,ni&=67108863,b=Math.imul(Z,_e),f=Math.imul(Z,Ee),f=f+Math.imul(Q,_e)|0,g=Math.imul(Q,Ee),b=b+Math.imul(se,xe)|0,f=f+Math.imul(se,Se)|0,f=f+Math.imul(ue,xe)|0,g=g+Math.imul(ue,Se)|0,b=b+Math.imul(D,Ie)|0,f=f+Math.imul(D,Te)|0,f=f+Math.imul(fe,Ie)|0,g=g+Math.imul(fe,Te)|0,b=b+Math.imul(ie,Me)|0,f=f+Math.imul(ie,Ae)|0,f=f+Math.imul(J,Me)|0,g=g+Math.imul(J,Ae)|0,b=b+Math.imul(ae,Oe)|0,f=f+Math.imul(ae,Pe)|0,f=f+Math.imul(ne,Oe)|0,g=g+Math.imul(ne,Pe)|0;var ii=(E+b|0)+((f&8191)<<13)|0;E=(g+(f>>>13)|0)+(ii>>>26)|0,ii&=67108863,b=Math.imul(Z,xe),f=Math.imul(Z,Se),f=f+Math.imul(Q,xe)|0,g=Math.imul(Q,Se),b=b+Math.imul(se,Ie)|0,f=f+Math.imul(se,Te)|0,f=f+Math.imul(ue,Ie)|0,g=g+Math.imul(ue,Te)|0,b=b+Math.imul(D,Me)|0,f=f+Math.imul(D,Ae)|0,f=f+Math.imul(fe,Me)|0,g=g+Math.imul(fe,Ae)|0,b=b+Math.imul(ie,Oe)|0,f=f+Math.imul(ie,Pe)|0,f=f+Math.imul(J,Oe)|0,g=g+Math.imul(J,Pe)|0;var si=(E+b|0)+((f&8191)<<13)|0;E=(g+(f>>>13)|0)+(si>>>26)|0,si&=67108863,b=Math.imul(Z,Ie),f=Math.imul(Z,Te),f=f+Math.imul(Q,Ie)|0,g=Math.imul(Q,Te),b=b+Math.imul(se,Me)|0,f=f+Math.imul(se,Ae)|0,f=f+Math.imul(ue,Me)|0,g=g+Math.imul(ue,Ae)|0,b=b+Math.imul(D,Oe)|0,f=f+Math.imul(D,Pe)|0,f=f+Math.imul(fe,Oe)|0,g=g+Math.imul(fe,Pe)|0;var oi=(E+b|0)+((f&8191)<<13)|0;E=(g+(f>>>13)|0)+(oi>>>26)|0,oi&=67108863,b=Math.imul(Z,Me),f=Math.imul(Z,Ae),f=f+Math.imul(Q,Me)|0,g=Math.imul(Q,Ae),b=b+Math.imul(se,Oe)|0,f=f+Math.imul(se,Pe)|0,f=f+Math.imul(ue,Oe)|0,g=g+Math.imul(ue,Pe)|0;var ai=(E+b|0)+((f&8191)<<13)|0;E=(g+(f>>>13)|0)+(ai>>>26)|0,ai&=67108863,b=Math.imul(Z,Oe),f=Math.imul(Z,Pe),f=f+Math.imul(Q,Oe)|0,g=Math.imul(Q,Pe);var fi=(E+b|0)+((f&8191)<<13)|0;return E=(g+(f>>>13)|0)+(fi>>>26)|0,fi&=67108863,_[0]=Wn,_[1]=Vn,_[2]=zn,_[3]=$n,_[4]=jn,_[5]=Xn,_[6]=Yn,_[7]=Jn,_[8]=Zn,_[9]=Qn,_[10]=ei,_[11]=ti,_[12]=ri,_[13]=ni,_[14]=ii,_[15]=si,_[16]=oi,_[17]=ai,_[18]=fi,E!==0&&(_[19]=E,d.length++),d};Math.imul||(M=S);function O(y,o,h){h.negative=o.negative^y.negative,h.length=y.length+o.length;for(var d=0,v=0,m=0;m>>26)|0,v+=_>>>26,_&=67108863}h.words[m]=E,d=_,_=v}return d!==0?h.words[m]=d:h.length--,h.strip()}function P(y,o,h){var d=new B;return d.mulp(y,o,h)}i.prototype.mulTo=function(o,h){var d,v=this.length+o.length;return this.length===10&&o.length===10?d=M(this,o,h):v<63?d=S(this,o,h):v<1024?d=O(this,o,h):d=P(this,o,h),d};function B(y,o){this.x=y,this.y=o}B.prototype.makeRBT=function(o){for(var h=new Array(o),d=i.prototype._countBits(o)-1,v=0;v>=1;return v},B.prototype.permute=function(o,h,d,v,m,_){for(var E=0;E<_;E++)v[E]=h[o[E]],m[E]=d[o[E]]},B.prototype.transform=function(o,h,d,v,m,_){this.permute(_,o,h,d,v,m);for(var E=1;E>>1)m++;return 1<>>13,d[2*_+1]=m&8191,m=m>>>13;for(_=2*h;_>=26,h+=v/67108864|0,h+=m>>>26,this.words[d]=m&67108863}return h!==0&&(this.words[d]=h,this.length++),this},i.prototype.muln=function(o){return this.clone().imuln(o)},i.prototype.sqr=function(){return this.mul(this)},i.prototype.isqr=function(){return this.imul(this.clone())},i.prototype.pow=function(o){var h=x(o);if(h.length===0)return new i(1);for(var d=this,v=0;v=0);var h=o%26,d=(o-h)/26,v=67108863>>>26-h<<26-h,m;if(h!==0){var _=0;for(m=0;m>>26-h}_&&(this.words[m]=_,this.length++)}if(d!==0){for(m=this.length-1;m>=0;m--)this.words[m+d]=this.words[m];for(m=0;m=0);var v;h?v=(h-h%26)/26:v=0;var m=o%26,_=Math.min((o-m)/26,this.length),E=67108863^67108863>>>m<_)for(this.length-=_,f=0;f=0&&(g!==0||f>=v);f--){var A=this.words[f]|0;this.words[f]=g<<26-m|A>>>m,g=A&E}return b&&g!==0&&(b.words[b.length++]=g),this.length===0&&(this.words[0]=0,this.length=1),this.strip()},i.prototype.ishrn=function(o,h,d){return r(this.negative===0),this.iushrn(o,h,d)},i.prototype.shln=function(o){return this.clone().ishln(o)},i.prototype.ushln=function(o){return this.clone().iushln(o)},i.prototype.shrn=function(o){return this.clone().ishrn(o)},i.prototype.ushrn=function(o){return this.clone().iushrn(o)},i.prototype.testn=function(o){r(typeof o=="number"&&o>=0);var h=o%26,d=(o-h)/26,v=1<=0);var h=o%26,d=(o-h)/26;if(r(this.negative===0,"imaskn works only with positive numbers"),this.length<=d)return this;if(h!==0&&d++,this.length=Math.min(d,this.length),h!==0){var v=67108863^67108863>>>h<=67108864;h++)this.words[h]-=67108864,h===this.length-1?this.words[h+1]=1:this.words[h+1]++;return this.length=Math.max(this.length,h+1),this},i.prototype.isubn=function(o){if(r(typeof o=="number"),r(o<67108864),o<0)return this.iaddn(-o);if(this.negative!==0)return this.negative=0,this.iaddn(o),this.negative=1,this;if(this.words[0]-=o,this.length===1&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var h=0;h>26)-(b/67108864|0),this.words[m+d]=_&67108863}for(;m>26,this.words[m+d]=_&67108863;if(E===0)return this.strip();for(r(E===-1),E=0,m=0;m>26,this.words[m]=_&67108863;return this.negative=1,this.strip()},i.prototype._wordDiv=function(o,h){var d=this.length-o.length,v=this.clone(),m=o,_=m.words[m.length-1]|0,E=this._countBits(_);d=26-E,d!==0&&(m=m.ushln(d),v.iushln(d),_=m.words[m.length-1]|0);var b=v.length-m.length,f;if(h!=="mod"){f=new i(null),f.length=b+1,f.words=new Array(f.length);for(var g=0;g=0;R--){var k=(v.words[m.length+R]|0)*67108864+(v.words[m.length+R-1]|0);for(k=Math.min(k/_|0,67108863),v._ishlnsubmul(m,k,R);v.negative!==0;)k--,v.negative=0,v._ishlnsubmul(m,1,R),v.isZero()||(v.negative^=1);f&&(f.words[R]=k)}return f&&f.strip(),v.strip(),h!=="div"&&d!==0&&v.iushrn(d),{div:f||null,mod:v}},i.prototype.divmod=function(o,h,d){if(r(!o.isZero()),this.isZero())return{div:new i(0),mod:new i(0)};var v,m,_;return this.negative!==0&&o.negative===0?(_=this.neg().divmod(o,h),h!=="mod"&&(v=_.div.neg()),h!=="div"&&(m=_.mod.neg(),d&&m.negative!==0&&m.iadd(o)),{div:v,mod:m}):this.negative===0&&o.negative!==0?(_=this.divmod(o.neg(),h),h!=="mod"&&(v=_.div.neg()),{div:v,mod:_.mod}):(this.negative&o.negative)!==0?(_=this.neg().divmod(o.neg(),h),h!=="div"&&(m=_.mod.neg(),d&&m.negative!==0&&m.isub(o)),{div:_.div,mod:m}):o.length>this.length||this.cmp(o)<0?{div:new i(0),mod:this}:o.length===1?h==="div"?{div:this.divn(o.words[0]),mod:null}:h==="mod"?{div:null,mod:new i(this.modn(o.words[0]))}:{div:this.divn(o.words[0]),mod:new i(this.modn(o.words[0]))}:this._wordDiv(o,h)},i.prototype.div=function(o){return this.divmod(o,"div",!1).div},i.prototype.mod=function(o){return this.divmod(o,"mod",!1).mod},i.prototype.umod=function(o){return this.divmod(o,"mod",!0).mod},i.prototype.divRound=function(o){var h=this.divmod(o);if(h.mod.isZero())return h.div;var d=h.div.negative!==0?h.mod.isub(o):h.mod,v=o.ushrn(1),m=o.andln(1),_=d.cmp(v);return _<0||m===1&&_===0?h.div:h.div.negative!==0?h.div.isubn(1):h.div.iaddn(1)},i.prototype.modn=function(o){r(o<=67108863);for(var h=(1<<26)%o,d=0,v=this.length-1;v>=0;v--)d=(h*d+(this.words[v]|0))%o;return d},i.prototype.idivn=function(o){r(o<=67108863);for(var h=0,d=this.length-1;d>=0;d--){var v=(this.words[d]|0)+h*67108864;this.words[d]=v/o|0,h=v%o}return this.strip()},i.prototype.divn=function(o){return this.clone().idivn(o)},i.prototype.egcd=function(o){r(o.negative===0),r(!o.isZero());var h=this,d=o.clone();h.negative!==0?h=h.umod(o):h=h.clone();for(var v=new i(1),m=new i(0),_=new i(0),E=new i(1),b=0;h.isEven()&&d.isEven();)h.iushrn(1),d.iushrn(1),++b;for(var f=d.clone(),g=h.clone();!h.isZero();){for(var A=0,R=1;(h.words[0]&R)===0&&A<26;++A,R<<=1);if(A>0)for(h.iushrn(A);A-- >0;)(v.isOdd()||m.isOdd())&&(v.iadd(f),m.isub(g)),v.iushrn(1),m.iushrn(1);for(var k=0,U=1;(d.words[0]&U)===0&&k<26;++k,U<<=1);if(k>0)for(d.iushrn(k);k-- >0;)(_.isOdd()||E.isOdd())&&(_.iadd(f),E.isub(g)),_.iushrn(1),E.iushrn(1);h.cmp(d)>=0?(h.isub(d),v.isub(_),m.isub(E)):(d.isub(h),_.isub(v),E.isub(m))}return{a:_,b:E,gcd:d.iushln(b)}},i.prototype._invmp=function(o){r(o.negative===0),r(!o.isZero());var h=this,d=o.clone();h.negative!==0?h=h.umod(o):h=h.clone();for(var v=new i(1),m=new i(0),_=d.clone();h.cmpn(1)>0&&d.cmpn(1)>0;){for(var E=0,b=1;(h.words[0]&b)===0&&E<26;++E,b<<=1);if(E>0)for(h.iushrn(E);E-- >0;)v.isOdd()&&v.iadd(_),v.iushrn(1);for(var f=0,g=1;(d.words[0]&g)===0&&f<26;++f,g<<=1);if(f>0)for(d.iushrn(f);f-- >0;)m.isOdd()&&m.iadd(_),m.iushrn(1);h.cmp(d)>=0?(h.isub(d),v.isub(m)):(d.isub(h),m.isub(v))}var A;return h.cmpn(1)===0?A=v:A=m,A.cmpn(0)<0&&A.iadd(o),A},i.prototype.gcd=function(o){if(this.isZero())return o.abs();if(o.isZero())return this.abs();var h=this.clone(),d=o.clone();h.negative=0,d.negative=0;for(var v=0;h.isEven()&&d.isEven();v++)h.iushrn(1),d.iushrn(1);do{for(;h.isEven();)h.iushrn(1);for(;d.isEven();)d.iushrn(1);var m=h.cmp(d);if(m<0){var _=h;h=d,d=_}else if(m===0||d.cmpn(1)===0)break;h.isub(d)}while(!0);return d.iushln(v)},i.prototype.invm=function(o){return this.egcd(o).a.umod(o)},i.prototype.isEven=function(){return(this.words[0]&1)===0},i.prototype.isOdd=function(){return(this.words[0]&1)===1},i.prototype.andln=function(o){return this.words[0]&o},i.prototype.bincn=function(o){r(typeof o=="number");var h=o%26,d=(o-h)/26,v=1<>>26,E&=67108863,this.words[_]=E}return m!==0&&(this.words[_]=m,this.length++),this},i.prototype.isZero=function(){return this.length===1&&this.words[0]===0},i.prototype.cmpn=function(o){var h=o<0;if(this.negative!==0&&!h)return-1;if(this.negative===0&&h)return 1;this.strip();var d;if(this.length>1)d=1;else{h&&(o=-o),r(o<=67108863,"Number is too big");var v=this.words[0]|0;d=v===o?0:vo.length)return 1;if(this.length=0;d--){var v=this.words[d]|0,m=o.words[d]|0;if(v!==m){vm&&(h=1);break}}return h},i.prototype.gtn=function(o){return this.cmpn(o)===1},i.prototype.gt=function(o){return this.cmp(o)===1},i.prototype.gten=function(o){return this.cmpn(o)>=0},i.prototype.gte=function(o){return this.cmp(o)>=0},i.prototype.ltn=function(o){return this.cmpn(o)===-1},i.prototype.lt=function(o){return this.cmp(o)===-1},i.prototype.lten=function(o){return this.cmpn(o)<=0},i.prototype.lte=function(o){return this.cmp(o)<=0},i.prototype.eqn=function(o){return this.cmpn(o)===0},i.prototype.eq=function(o){return this.cmp(o)===0},i.red=function(o){return new q(o)},i.prototype.toRed=function(o){return r(!this.red,"Already a number in reduction context"),r(this.negative===0,"red works only with positives"),o.convertTo(this)._forceRed(o)},i.prototype.fromRed=function(){return r(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},i.prototype._forceRed=function(o){return this.red=o,this},i.prototype.forceRed=function(o){return r(!this.red,"Already a number in reduction context"),this._forceRed(o)},i.prototype.redAdd=function(o){return r(this.red,"redAdd works only with red numbers"),this.red.add(this,o)},i.prototype.redIAdd=function(o){return r(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,o)},i.prototype.redSub=function(o){return r(this.red,"redSub works only with red numbers"),this.red.sub(this,o)},i.prototype.redISub=function(o){return r(this.red,"redISub works only with red numbers"),this.red.isub(this,o)},i.prototype.redShl=function(o){return r(this.red,"redShl works only with red numbers"),this.red.shl(this,o)},i.prototype.redMul=function(o){return r(this.red,"redMul works only with red numbers"),this.red._verify2(this,o),this.red.mul(this,o)},i.prototype.redIMul=function(o){return r(this.red,"redMul works only with red numbers"),this.red._verify2(this,o),this.red.imul(this,o)},i.prototype.redSqr=function(){return r(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},i.prototype.redISqr=function(){return r(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},i.prototype.redSqrt=function(){return r(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},i.prototype.redInvm=function(){return r(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},i.prototype.redNeg=function(){return r(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},i.prototype.redPow=function(o){return r(this.red&&!o.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,o)};var N={k256:null,p224:null,p192:null,p25519:null};function L(y,o){this.name=y,this.p=new i(o,16),this.n=this.p.bitLength(),this.k=new i(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}L.prototype._tmp=function(){var o=new i(null);return o.words=new Array(Math.ceil(this.n/13)),o},L.prototype.ireduce=function(o){var h=o,d;do this.split(h,this.tmp),h=this.imulK(h),h=h.iadd(this.tmp),d=h.bitLength();while(d>this.n);var v=d0?h.isub(this.p):h.strip!==void 0?h.strip():h._strip(),h},L.prototype.split=function(o,h){o.iushrn(this.n,0,h)},L.prototype.imulK=function(o){return o.imul(this.k)};function H(){L.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}n(H,L),H.prototype.split=function(o,h){for(var d=4194303,v=Math.min(o.length,9),m=0;m>>22,_=E}_>>>=22,o.words[m-10]=_,_===0&&o.length>10?o.length-=10:o.length-=9},H.prototype.imulK=function(o){o.words[o.length]=0,o.words[o.length+1]=0,o.length+=2;for(var h=0,d=0;d>>=26,o.words[d]=m,h=v}return h!==0&&(o.words[o.length++]=h),o},i._prime=function(o){if(N[o])return N[o];var h;if(o==="k256")h=new H;else if(o==="p224")h=new W;else if(o==="p192")h=new K;else if(o==="p25519")h=new X;else throw new Error("Unknown prime "+o);return N[o]=h,h};function q(y){if(typeof y=="string"){var o=i._prime(y);this.m=o.p,this.prime=o}else r(y.gtn(1),"modulus must be greater than 1"),this.m=y,this.prime=null}q.prototype._verify1=function(o){r(o.negative===0,"red works only with positives"),r(o.red,"red works only with red numbers")},q.prototype._verify2=function(o,h){r((o.negative|h.negative)===0,"red works only with positives"),r(o.red&&o.red===h.red,"red works only with red numbers")},q.prototype.imod=function(o){return this.prime?this.prime.ireduce(o)._forceRed(this):o.umod(this.m)._forceRed(this)},q.prototype.neg=function(o){return o.isZero()?o.clone():this.m.sub(o)._forceRed(this)},q.prototype.add=function(o,h){this._verify2(o,h);var d=o.add(h);return d.cmp(this.m)>=0&&d.isub(this.m),d._forceRed(this)},q.prototype.iadd=function(o,h){this._verify2(o,h);var d=o.iadd(h);return d.cmp(this.m)>=0&&d.isub(this.m),d},q.prototype.sub=function(o,h){this._verify2(o,h);var d=o.sub(h);return d.cmpn(0)<0&&d.iadd(this.m),d._forceRed(this)},q.prototype.isub=function(o,h){this._verify2(o,h);var d=o.isub(h);return d.cmpn(0)<0&&d.iadd(this.m),d},q.prototype.shl=function(o,h){return this._verify1(o),this.imod(o.ushln(h))},q.prototype.imul=function(o,h){return this._verify2(o,h),this.imod(o.imul(h))},q.prototype.mul=function(o,h){return this._verify2(o,h),this.imod(o.mul(h))},q.prototype.isqr=function(o){return this.imul(o,o.clone())},q.prototype.sqr=function(o){return this.mul(o,o)},q.prototype.sqrt=function(o){if(o.isZero())return o.clone();var h=this.m.andln(3);if(r(h%2===1),h===3){var d=this.m.add(new i(1)).iushrn(2);return this.pow(o,d)}for(var v=this.m.subn(1),m=0;!v.isZero()&&v.andln(1)===0;)m++,v.iushrn(1);r(!v.isZero());var _=new i(1).toRed(this),E=_.redNeg(),b=this.m.subn(1).iushrn(1),f=this.m.bitLength();for(f=new i(2*f*f).toRed(this);this.pow(f,b).cmp(E)!==0;)f.redIAdd(E);for(var g=this.pow(f,v),A=this.pow(o,v.addn(1).iushrn(1)),R=this.pow(o,v),k=m;R.cmp(_)!==0;){for(var U=R,G=0;U.cmp(_)!==0;G++)U=U.redSqr();r(G=0;m--){for(var g=h.words[m],A=f-1;A>=0;A--){var R=g>>A&1;if(_!==v[0]&&(_=this.sqr(_)),R===0&&E===0){b=0;continue}E<<=1,E|=R,b++,!(b!==d&&(m!==0||A!==0))&&(_=this.mul(_,v[E]),b=0,E=0)}f=26}return _},q.prototype.convertTo=function(o){var h=o.umod(this.m);return h===o?h.clone():h},q.prototype.convertFrom=function(o){var h=o.clone();return h.red=null,h},i.mont=function(o){return new ee(o)};function ee(y){q.call(this,y),this.shift=this.m.bitLength(),this.shift%26!==0&&(this.shift+=26-this.shift%26),this.r=new i(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}n(ee,q),ee.prototype.convertTo=function(o){return this.imod(o.ushln(this.shift))},ee.prototype.convertFrom=function(o){var h=this.imod(o.mul(this.rinv));return h.red=null,h},ee.prototype.imul=function(o,h){if(o.isZero()||h.isZero())return o.words[0]=0,o.length=1,o;var d=o.imul(h),v=d.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),m=d.isub(v).iushrn(this.shift),_=m;return m.cmp(this.m)>=0?_=m.isub(this.m):m.cmpn(0)<0&&(_=m.iadd(this.m)),_._forceRed(this)},ee.prototype.mul=function(o,h){if(o.isZero()||h.isZero())return new i(0)._forceRed(this);var d=o.mul(h),v=d.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),m=d.isub(v).iushrn(this.shift),_=m;return m.cmp(this.m)>=0?_=m.isub(this.m):m.cmpn(0)<0&&(_=m.iadd(this.m)),_._forceRed(this)},ee.prototype.invm=function(o){var h=this.imod(o._invmp(this.m).mul(this.r2));return h._forceRed(this)}})(typeof wc>"u"||wc,jd)});var ln=T((LB,Yd)=>{Yd.exports=Xd;function Xd(e,t){if(!e)throw new Error(t||"Assertion failed")}Xd.equal=function(t,r,n){if(t!=r)throw new Error(n||"Assertion failed: "+t+" != "+r)}});var _c=T(Qd=>{"use strict";var Fa=Qd;function o_(e,t){if(Array.isArray(e))return e.slice();if(!e)return[];var r=[];if(typeof e!="string"){for(var n=0;n>8,a=i&255;s?r.push(s,a):r.push(a)}return r}Fa.toArray=o_;function Jd(e){return e.length===1?"0"+e:e}Fa.zero2=Jd;function Zd(e){for(var t="",r=0;r{"use strict";var ur=ep,a_=Er(),f_=ln(),Ka=_c();ur.assert=f_;ur.toArray=Ka.toArray;ur.zero2=Ka.zero2;ur.toHex=Ka.toHex;ur.encode=Ka.encode;function u_(e,t,r){var n=new Array(Math.max(e.bitLength(),r)+1);n.fill(0);for(var i=1<(i>>1)-1?u=(i>>1)-l:u=l,s.isubn(u)):u=0,n[a]=u,s.iushrn(1)}return n}ur.getNAF=u_;function c_(e,t){var r=[[],[]];e=e.clone(),t=t.clone();for(var n=0,i=0,s;e.cmpn(-n)>0||t.cmpn(-i)>0;){var a=e.andln(3)+n&3,u=t.andln(3)+i&3;a===3&&(a=-1),u===3&&(u=-1);var l;(a&1)===0?l=0:(s=e.andln(7)+n&7,(s===3||s===5)&&u===2?l=-a:l=a),r[0].push(l);var c;(u&1)===0?c=0:(s=t.andln(7)+i&7,(s===3||s===5)&&a===2?c=-u:c=u),r[1].push(c),2*n===l+1&&(n=1-n),2*i===c+1&&(i=1-i),e.iushrn(1),t.iushrn(1)}return r}ur.getJSF=c_;function h_(e,t,r){var n="_"+t;e.prototype[t]=function(){return this[n]!==void 0?this[n]:this[n]=r.call(this)}}ur.cachedProperty=h_;function l_(e){return typeof e=="string"?ur.toArray(e,"hex"):e}ur.parseBytes=l_;function d_(e){return new a_(e,"hex","le")}ur.intFromLE=d_});var Ic=T((HB,Sc)=>{var Ec;Sc.exports=function(t){return Ec||(Ec=new dn(null)),Ec.generate(t)};function dn(e){this.rand=e}Sc.exports.Rand=dn;dn.prototype.generate=function(t){return this._rand(t)};dn.prototype._rand=function(t){if(this.rand.getBytes)return this.rand.getBytes(t);for(var r=new Uint8Array(t),n=0;n{"use strict";var hi=Er(),bo=Wt(),Ga=bo.getNAF,p_=bo.getJSF,Wa=bo.assert;function pn(e,t){this.type=e,this.p=new hi(t.p,16),this.red=t.prime?hi.red(t.prime):hi.mont(this.p),this.zero=new hi(0).toRed(this.red),this.one=new hi(1).toRed(this.red),this.two=new hi(2).toRed(this.red),this.n=t.n&&new hi(t.n,16),this.g=t.g&&this.pointFromJSON(t.g,t.gRed),this._wnafT1=new Array(4),this._wnafT2=new Array(4),this._wnafT3=new Array(4),this._wnafT4=new Array(4),this._bitLength=this.n?this.n.bitLength():0;var r=this.n&&this.p.div(this.n);!r||r.cmpn(100)>0?this.redN=null:(this._maxwellTrick=!0,this.redN=this.n.toRed(this.red))}tp.exports=pn;pn.prototype.point=function(){throw new Error("Not implemented")};pn.prototype.validate=function(){throw new Error("Not implemented")};pn.prototype._fixedNafMul=function(t,r){Wa(t.precomputed);var n=t._getDoubles(),i=Ga(r,1,this._bitLength),s=(1<=u;c--)l=(l<<1)+i[c];a.push(l)}for(var p=this.jpoint(null,null,null),w=this.jpoint(null,null,null),x=s;x>0;x--){for(u=0;u=0;l--){for(var c=0;l>=0&&a[l]===0;l--)c++;if(l>=0&&c++,u=u.dblp(c),l<0)break;var p=a[l];Wa(p!==0),t.type==="affine"?p>0?u=u.mixedAdd(s[p-1>>1]):u=u.mixedAdd(s[-p-1>>1].neg()):p>0?u=u.add(s[p-1>>1]):u=u.add(s[-p-1>>1].neg())}return t.type==="affine"?u.toP():u};pn.prototype._wnafMulAdd=function(t,r,n,i,s){var a=this._wnafT1,u=this._wnafT2,l=this._wnafT3,c=0,p,w,x;for(p=0;p=1;p-=2){var M=p-1,O=p;if(a[M]!==1||a[O]!==1){l[M]=Ga(n[M],a[M],this._bitLength),l[O]=Ga(n[O],a[O],this._bitLength),c=Math.max(l[M].length,c),c=Math.max(l[O].length,c);continue}var P=[r[M],null,null,r[O]];r[M].y.cmp(r[O].y)===0?(P[1]=r[M].add(r[O]),P[2]=r[M].toJ().mixedAdd(r[O].neg())):r[M].y.cmp(r[O].y.redNeg())===0?(P[1]=r[M].toJ().mixedAdd(r[O]),P[2]=r[M].add(r[O].neg())):(P[1]=r[M].toJ().mixedAdd(r[O]),P[2]=r[M].toJ().mixedAdd(r[O].neg()));var B=[-3,-1,-5,-7,0,7,5,1,3],N=p_(n[M],n[O]);for(c=Math.max(N[0].length,c),l[M]=new Array(c),l[O]=new Array(c),w=0;w=0;p--){for(var X=0;p>=0;){var q=!0;for(w=0;w=0&&X++,W=W.dblp(X),p<0)break;for(w=0;w0?x=u[w][ee-1>>1]:ee<0&&(x=u[w][-ee-1>>1].neg()),x.type==="affine"?W=W.mixedAdd(x):W=W.add(x))}}for(p=0;p=Math.ceil((t.bitLength()+1)/r.step):!1};Zt.prototype._getDoubles=function(t,r){if(this.precomputed&&this.precomputed.doubles)return this.precomputed.doubles;for(var n=[this],i=this,s=0;s{typeof Object.create=="function"?Tc.exports=function(t,r){r&&(t.super_=r,t.prototype=Object.create(r.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}))}:Tc.exports=function(t,r){if(r){t.super_=r;var n=function(){};n.prototype=r.prototype,t.prototype=new n,t.prototype.constructor=t}}});var ht=T((GB,Ac)=>{try{if(Mc=require("util"),typeof Mc.inherits!="function")throw"";Ac.exports=Mc.inherits}catch{Ac.exports=rp()}var Mc});var ip=T((WB,np)=>{"use strict";var v_=Wt(),st=Er(),Oc=ht(),as=go(),b_=v_.assert;function Qt(e){as.call(this,"short",e),this.a=new st(e.a,16).toRed(this.red),this.b=new st(e.b,16).toRed(this.red),this.tinv=this.two.redInvm(),this.zeroA=this.a.fromRed().cmpn(0)===0,this.threeA=this.a.fromRed().sub(this.p).cmpn(-3)===0,this.endo=this._getEndomorphism(e),this._endoWnafT1=new Array(4),this._endoWnafT2=new Array(4)}Oc(Qt,as);np.exports=Qt;Qt.prototype._getEndomorphism=function(t){if(!(!this.zeroA||!this.g||!this.n||this.p.modn(3)!==1)){var r,n;if(t.beta)r=new st(t.beta,16).toRed(this.red);else{var i=this._getEndoRoots(this.p);r=i[0].cmp(i[1])<0?i[0]:i[1],r=r.toRed(this.red)}if(t.lambda)n=new st(t.lambda,16);else{var s=this._getEndoRoots(this.n);this.g.mul(s[0]).x.cmp(this.g.x.redMul(r))===0?n=s[0]:(n=s[1],b_(this.g.mul(n).x.cmp(this.g.x.redMul(r))===0))}var a;return t.basis?a=t.basis.map(function(u){return{a:new st(u.a,16),b:new st(u.b,16)}}):a=this._getEndoBasis(n),{beta:r,lambda:n,basis:a}}};Qt.prototype._getEndoRoots=function(t){var r=t===this.p?this.red:st.mont(t),n=new st(2).toRed(r).redInvm(),i=n.redNeg(),s=new st(3).toRed(r).redNeg().redSqrt().redMul(n),a=i.redAdd(s).fromRed(),u=i.redSub(s).fromRed();return[a,u]};Qt.prototype._getEndoBasis=function(t){for(var r=this.n.ushrn(Math.floor(this.n.bitLength()/2)),n=t,i=this.n.clone(),s=new st(1),a=new st(0),u=new st(0),l=new st(1),c,p,w,x,S,M,O,P=0,B,N;n.cmpn(0)!==0;){var L=i.div(n);B=i.sub(L.mul(n)),N=u.sub(L.mul(s));var H=l.sub(L.mul(a));if(!w&&B.cmp(r)<0)c=O.neg(),p=s,w=B.neg(),x=N;else if(w&&++P===2)break;O=B,i=n,n=B,u=s,s=N,l=a,a=H}S=B.neg(),M=N;var W=w.sqr().add(x.sqr()),K=S.sqr().add(M.sqr());return K.cmp(W)>=0&&(S=c,M=p),w.negative&&(w=w.neg(),x=x.neg()),S.negative&&(S=S.neg(),M=M.neg()),[{a:w,b:x},{a:S,b:M}]};Qt.prototype._endoSplit=function(t){var r=this.endo.basis,n=r[0],i=r[1],s=i.b.mul(t).divRound(this.n),a=n.b.neg().mul(t).divRound(this.n),u=s.mul(n.a),l=a.mul(i.a),c=s.mul(n.b),p=a.mul(i.b),w=t.sub(u).sub(l),x=c.add(p).neg();return{k1:w,k2:x}};Qt.prototype.pointFromX=function(t,r){t=new st(t,16),t.red||(t=t.toRed(this.red));var n=t.redSqr().redMul(t).redIAdd(t.redMul(this.a)).redIAdd(this.b),i=n.redSqrt();if(i.redSqr().redSub(n).cmp(this.zero)!==0)throw new Error("invalid point");var s=i.fromRed().isOdd();return(r&&!s||!r&&s)&&(i=i.redNeg()),this.point(t,i)};Qt.prototype.validate=function(t){if(t.inf)return!0;var r=t.x,n=t.y,i=this.a.redMul(r),s=r.redSqr().redMul(r).redIAdd(i).redIAdd(this.b);return n.redSqr().redISub(s).cmpn(0)===0};Qt.prototype._endoWnafMulAdd=function(t,r,n){for(var i=this._endoWnafT1,s=this._endoWnafT2,a=0;a":""};lt.prototype.isInfinity=function(){return this.inf};lt.prototype.add=function(t){if(this.inf)return t;if(t.inf)return this;if(this.eq(t))return this.dbl();if(this.neg().eq(t))return this.curve.point(null,null);if(this.x.cmp(t.x)===0)return this.curve.point(null,null);var r=this.y.redSub(t.y);r.cmpn(0)!==0&&(r=r.redMul(this.x.redSub(t.x).redInvm()));var n=r.redSqr().redISub(this.x).redISub(t.x),i=r.redMul(this.x.redSub(n)).redISub(this.y);return this.curve.point(n,i)};lt.prototype.dbl=function(){if(this.inf)return this;var t=this.y.redAdd(this.y);if(t.cmpn(0)===0)return this.curve.point(null,null);var r=this.curve.a,n=this.x.redSqr(),i=t.redInvm(),s=n.redAdd(n).redIAdd(n).redIAdd(r).redMul(i),a=s.redSqr().redISub(this.x.redAdd(this.x)),u=s.redMul(this.x.redSub(a)).redISub(this.y);return this.curve.point(a,u)};lt.prototype.getX=function(){return this.x.fromRed()};lt.prototype.getY=function(){return this.y.fromRed()};lt.prototype.mul=function(t){return t=new st(t,16),this.isInfinity()?this:this._hasDoubles(t)?this.curve._fixedNafMul(this,t):this.curve.endo?this.curve._endoWnafMulAdd([this],[t]):this.curve._wnafMul(this,t)};lt.prototype.mulAdd=function(t,r,n){var i=[this,r],s=[t,n];return this.curve.endo?this.curve._endoWnafMulAdd(i,s):this.curve._wnafMulAdd(1,i,s,2)};lt.prototype.jmulAdd=function(t,r,n){var i=[this,r],s=[t,n];return this.curve.endo?this.curve._endoWnafMulAdd(i,s,!0):this.curve._wnafMulAdd(1,i,s,2,!0)};lt.prototype.eq=function(t){return this===t||this.inf===t.inf&&(this.inf||this.x.cmp(t.x)===0&&this.y.cmp(t.y)===0)};lt.prototype.neg=function(t){if(this.inf)return this;var r=this.curve.point(this.x,this.y.redNeg());if(t&&this.precomputed){var n=this.precomputed,i=function(s){return s.neg()};r.precomputed={naf:n.naf&&{wnd:n.naf.wnd,points:n.naf.points.map(i)},doubles:n.doubles&&{step:n.doubles.step,points:n.doubles.points.map(i)}}}return r};lt.prototype.toJ=function(){if(this.inf)return this.curve.jpoint(null,null,null);var t=this.curve.jpoint(this.x,this.y,this.curve.one);return t};function yt(e,t,r,n){as.BasePoint.call(this,e,"jacobian"),t===null&&r===null&&n===null?(this.x=this.curve.one,this.y=this.curve.one,this.z=new st(0)):(this.x=new st(t,16),this.y=new st(r,16),this.z=new st(n,16)),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)),this.zOne=this.z===this.curve.one}Oc(yt,as.BasePoint);Qt.prototype.jpoint=function(t,r,n){return new yt(this,t,r,n)};yt.prototype.toP=function(){if(this.isInfinity())return this.curve.point(null,null);var t=this.z.redInvm(),r=t.redSqr(),n=this.x.redMul(r),i=this.y.redMul(r).redMul(t);return this.curve.point(n,i)};yt.prototype.neg=function(){return this.curve.jpoint(this.x,this.y.redNeg(),this.z)};yt.prototype.add=function(t){if(this.isInfinity())return t;if(t.isInfinity())return this;var r=t.z.redSqr(),n=this.z.redSqr(),i=this.x.redMul(r),s=t.x.redMul(n),a=this.y.redMul(r.redMul(t.z)),u=t.y.redMul(n.redMul(this.z)),l=i.redSub(s),c=a.redSub(u);if(l.cmpn(0)===0)return c.cmpn(0)!==0?this.curve.jpoint(null,null,null):this.dbl();var p=l.redSqr(),w=p.redMul(l),x=i.redMul(p),S=c.redSqr().redIAdd(w).redISub(x).redISub(x),M=c.redMul(x.redISub(S)).redISub(a.redMul(w)),O=this.z.redMul(t.z).redMul(l);return this.curve.jpoint(S,M,O)};yt.prototype.mixedAdd=function(t){if(this.isInfinity())return t.toJ();if(t.isInfinity())return this;var r=this.z.redSqr(),n=this.x,i=t.x.redMul(r),s=this.y,a=t.y.redMul(r).redMul(this.z),u=n.redSub(i),l=s.redSub(a);if(u.cmpn(0)===0)return l.cmpn(0)!==0?this.curve.jpoint(null,null,null):this.dbl();var c=u.redSqr(),p=c.redMul(u),w=n.redMul(c),x=l.redSqr().redIAdd(p).redISub(w).redISub(w),S=l.redMul(w.redISub(x)).redISub(s.redMul(p)),M=this.z.redMul(u);return this.curve.jpoint(x,S,M)};yt.prototype.dblp=function(t){if(t===0)return this;if(this.isInfinity())return this;if(!t)return this.dbl();var r;if(this.curve.zeroA||this.curve.threeA){var n=this;for(r=0;r=0)return!1;if(n.redIAdd(s),this.x.cmp(n)===0)return!0}};yt.prototype.inspect=function(){return this.isInfinity()?"":""};yt.prototype.isInfinity=function(){return this.z.cmpn(0)===0}});var ap=T((VB,op)=>{"use strict";var fs=Er(),sp=ht(),Va=go(),g_=Wt();function us(e){Va.call(this,"mont",e),this.a=new fs(e.a,16).toRed(this.red),this.b=new fs(e.b,16).toRed(this.red),this.i4=new fs(4).toRed(this.red).redInvm(),this.two=new fs(2).toRed(this.red),this.a24=this.i4.redMul(this.a.redAdd(this.two))}sp(us,Va);op.exports=us;us.prototype.validate=function(t){var r=t.normalize().x,n=r.redSqr(),i=n.redMul(r).redAdd(n.redMul(this.a)).redAdd(r),s=i.redSqrt();return s.redSqr().cmp(i)===0};function dt(e,t,r){Va.BasePoint.call(this,e,"projective"),t===null&&r===null?(this.x=this.curve.one,this.z=this.curve.zero):(this.x=new fs(t,16),this.z=new fs(r,16),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)))}sp(dt,Va.BasePoint);us.prototype.decodePoint=function(t,r){return this.point(g_.toArray(t,r),1)};us.prototype.point=function(t,r){return new dt(this,t,r)};us.prototype.pointFromJSON=function(t){return dt.fromJSON(this,t)};dt.prototype.precompute=function(){};dt.prototype._encode=function(){return this.getX().toArray("be",this.curve.p.byteLength())};dt.fromJSON=function(t,r){return new dt(t,r[0],r[1]||t.one)};dt.prototype.inspect=function(){return this.isInfinity()?"":""};dt.prototype.isInfinity=function(){return this.z.cmpn(0)===0};dt.prototype.dbl=function(){var t=this.x.redAdd(this.z),r=t.redSqr(),n=this.x.redSub(this.z),i=n.redSqr(),s=r.redSub(i),a=r.redMul(i),u=s.redMul(i.redAdd(this.curve.a24.redMul(s)));return this.curve.point(a,u)};dt.prototype.add=function(){throw new Error("Not supported on Montgomery curve")};dt.prototype.diffAdd=function(t,r){var n=this.x.redAdd(this.z),i=this.x.redSub(this.z),s=t.x.redAdd(t.z),a=t.x.redSub(t.z),u=a.redMul(n),l=s.redMul(i),c=r.z.redMul(u.redAdd(l).redSqr()),p=r.x.redMul(u.redISub(l).redSqr());return this.curve.point(c,p)};dt.prototype.mul=function(t){for(var r=t.clone(),n=this,i=this.curve.point(null,null),s=this,a=[];r.cmpn(0)!==0;r.iushrn(1))a.push(r.andln(1));for(var u=a.length-1;u>=0;u--)a[u]===0?(n=n.diffAdd(i,s),i=i.dbl()):(i=n.diffAdd(i,s),n=n.dbl());return i};dt.prototype.mulAdd=function(){throw new Error("Not supported on Montgomery curve")};dt.prototype.jumlAdd=function(){throw new Error("Not supported on Montgomery curve")};dt.prototype.eq=function(t){return this.getX().cmp(t.getX())===0};dt.prototype.normalize=function(){return this.x=this.x.redMul(this.z.redInvm()),this.z=this.curve.one,this};dt.prototype.getX=function(){return this.normalize(),this.x.fromRed()}});var cp=T((zB,up)=>{"use strict";var m_=Wt(),Fr=Er(),fp=ht(),za=go(),y_=m_.assert;function xr(e){this.twisted=(e.a|0)!==1,this.mOneA=this.twisted&&(e.a|0)===-1,this.extended=this.mOneA,za.call(this,"edwards",e),this.a=new Fr(e.a,16).umod(this.red.m),this.a=this.a.toRed(this.red),this.c=new Fr(e.c,16).toRed(this.red),this.c2=this.c.redSqr(),this.d=new Fr(e.d,16).toRed(this.red),this.dd=this.d.redAdd(this.d),y_(!this.twisted||this.c.fromRed().cmpn(1)===0),this.oneC=(e.c|0)===1}fp(xr,za);up.exports=xr;xr.prototype._mulA=function(t){return this.mOneA?t.redNeg():this.a.redMul(t)};xr.prototype._mulC=function(t){return this.oneC?t:this.c.redMul(t)};xr.prototype.jpoint=function(t,r,n,i){return this.point(t,r,n,i)};xr.prototype.pointFromX=function(t,r){t=new Fr(t,16),t.red||(t=t.toRed(this.red));var n=t.redSqr(),i=this.c2.redSub(this.a.redMul(n)),s=this.one.redSub(this.c2.redMul(this.d).redMul(n)),a=i.redMul(s.redInvm()),u=a.redSqrt();if(u.redSqr().redSub(a).cmp(this.zero)!==0)throw new Error("invalid point");var l=u.fromRed().isOdd();return(r&&!l||!r&&l)&&(u=u.redNeg()),this.point(t,u)};xr.prototype.pointFromY=function(t,r){t=new Fr(t,16),t.red||(t=t.toRed(this.red));var n=t.redSqr(),i=n.redSub(this.c2),s=n.redMul(this.d).redMul(this.c2).redSub(this.a),a=i.redMul(s.redInvm());if(a.cmp(this.zero)===0){if(r)throw new Error("invalid point");return this.point(this.zero,t)}var u=a.redSqrt();if(u.redSqr().redSub(a).cmp(this.zero)!==0)throw new Error("invalid point");return u.fromRed().isOdd()!==r&&(u=u.redNeg()),this.point(u,t)};xr.prototype.validate=function(t){if(t.isInfinity())return!0;t.normalize();var r=t.x.redSqr(),n=t.y.redSqr(),i=r.redMul(this.a).redAdd(n),s=this.c2.redMul(this.one.redAdd(this.d.redMul(r).redMul(n)));return i.cmp(s)===0};function Xe(e,t,r,n,i){za.BasePoint.call(this,e,"projective"),t===null&&r===null&&n===null?(this.x=this.curve.zero,this.y=this.curve.one,this.z=this.curve.one,this.t=this.curve.zero,this.zOne=!0):(this.x=new Fr(t,16),this.y=new Fr(r,16),this.z=n?new Fr(n,16):this.curve.one,this.t=i&&new Fr(i,16),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)),this.t&&!this.t.red&&(this.t=this.t.toRed(this.curve.red)),this.zOne=this.z===this.curve.one,this.curve.extended&&!this.t&&(this.t=this.x.redMul(this.y),this.zOne||(this.t=this.t.redMul(this.z.redInvm()))))}fp(Xe,za.BasePoint);xr.prototype.pointFromJSON=function(t){return Xe.fromJSON(this,t)};xr.prototype.point=function(t,r,n,i){return new Xe(this,t,r,n,i)};Xe.fromJSON=function(t,r){return new Xe(t,r[0],r[1],r[2])};Xe.prototype.inspect=function(){return this.isInfinity()?"":""};Xe.prototype.isInfinity=function(){return this.x.cmpn(0)===0&&(this.y.cmp(this.z)===0||this.zOne&&this.y.cmp(this.curve.c)===0)};Xe.prototype._extDbl=function(){var t=this.x.redSqr(),r=this.y.redSqr(),n=this.z.redSqr();n=n.redIAdd(n);var i=this.curve._mulA(t),s=this.x.redAdd(this.y).redSqr().redISub(t).redISub(r),a=i.redAdd(r),u=a.redSub(n),l=i.redSub(r),c=s.redMul(u),p=a.redMul(l),w=s.redMul(l),x=u.redMul(a);return this.curve.point(c,p,x,w)};Xe.prototype._projDbl=function(){var t=this.x.redAdd(this.y).redSqr(),r=this.x.redSqr(),n=this.y.redSqr(),i,s,a,u,l,c;if(this.curve.twisted){u=this.curve._mulA(r);var p=u.redAdd(n);this.zOne?(i=t.redSub(r).redSub(n).redMul(p.redSub(this.curve.two)),s=p.redMul(u.redSub(n)),a=p.redSqr().redSub(p).redSub(p)):(l=this.z.redSqr(),c=p.redSub(l).redISub(l),i=t.redSub(r).redISub(n).redMul(c),s=p.redMul(u.redSub(n)),a=p.redMul(c))}else u=r.redAdd(n),l=this.curve._mulC(this.z).redSqr(),c=u.redSub(l).redSub(l),i=this.curve._mulC(t.redISub(u)).redMul(c),s=this.curve._mulC(u).redMul(r.redISub(n)),a=u.redMul(c);return this.curve.point(i,s,a)};Xe.prototype.dbl=function(){return this.isInfinity()?this:this.curve.extended?this._extDbl():this._projDbl()};Xe.prototype._extAdd=function(t){var r=this.y.redSub(this.x).redMul(t.y.redSub(t.x)),n=this.y.redAdd(this.x).redMul(t.y.redAdd(t.x)),i=this.t.redMul(this.curve.dd).redMul(t.t),s=this.z.redMul(t.z.redAdd(t.z)),a=n.redSub(r),u=s.redSub(i),l=s.redAdd(i),c=n.redAdd(r),p=a.redMul(u),w=l.redMul(c),x=a.redMul(c),S=u.redMul(l);return this.curve.point(p,w,S,x)};Xe.prototype._projAdd=function(t){var r=this.z.redMul(t.z),n=r.redSqr(),i=this.x.redMul(t.x),s=this.y.redMul(t.y),a=this.curve.d.redMul(i).redMul(s),u=n.redSub(a),l=n.redAdd(a),c=this.x.redAdd(this.y).redMul(t.x.redAdd(t.y)).redISub(i).redISub(s),p=r.redMul(u).redMul(c),w,x;return this.curve.twisted?(w=r.redMul(l).redMul(s.redSub(this.curve._mulA(i))),x=u.redMul(l)):(w=r.redMul(l).redMul(s.redSub(i)),x=this.curve._mulC(u).redMul(l)),this.curve.point(p,w,x)};Xe.prototype.add=function(t){return this.isInfinity()?t:t.isInfinity()?this:this.curve.extended?this._extAdd(t):this._projAdd(t)};Xe.prototype.mul=function(t){return this._hasDoubles(t)?this.curve._fixedNafMul(this,t):this.curve._wnafMul(this,t)};Xe.prototype.mulAdd=function(t,r,n){return this.curve._wnafMulAdd(1,[this,r],[t,n],2,!1)};Xe.prototype.jmulAdd=function(t,r,n){return this.curve._wnafMulAdd(1,[this,r],[t,n],2,!0)};Xe.prototype.normalize=function(){if(this.zOne)return this;var t=this.z.redInvm();return this.x=this.x.redMul(t),this.y=this.y.redMul(t),this.t&&(this.t=this.t.redMul(t)),this.z=this.curve.one,this.zOne=!0,this};Xe.prototype.neg=function(){return this.curve.point(this.x.redNeg(),this.y,this.z,this.t&&this.t.redNeg())};Xe.prototype.getX=function(){return this.normalize(),this.x.fromRed()};Xe.prototype.getY=function(){return this.normalize(),this.y.fromRed()};Xe.prototype.eq=function(t){return this===t||this.getX().cmp(t.getX())===0&&this.getY().cmp(t.getY())===0};Xe.prototype.eqXToP=function(t){var r=t.toRed(this.curve.red).redMul(this.z);if(this.x.cmp(r)===0)return!0;for(var n=t.clone(),i=this.curve.redN.redMul(this.z);;){if(n.iadd(this.curve.n),n.cmp(this.curve.p)>=0)return!1;if(r.redIAdd(i),this.x.cmp(r)===0)return!0}};Xe.prototype.toP=Xe.prototype.normalize;Xe.prototype.mixedAdd=Xe.prototype.add});var Pc=T(hp=>{"use strict";var $a=hp;$a.base=go();$a.short=ip();$a.mont=ap();$a.edwards=cp()});var cr=T(Ve=>{"use strict";var w_=ln(),__=ht();Ve.inherits=__;function E_(e,t){return(e.charCodeAt(t)&64512)!==55296||t<0||t+1>=e.length?!1:(e.charCodeAt(t+1)&64512)===56320}function x_(e,t){if(Array.isArray(e))return e.slice();if(!e)return[];var r=[];if(typeof e=="string")if(t){if(t==="hex")for(e=e.replace(/[^a-z0-9]+/ig,""),e.length%2!==0&&(e="0"+e),i=0;i>6|192,r[n++]=s&63|128):E_(e,i)?(s=65536+((s&1023)<<10)+(e.charCodeAt(++i)&1023),r[n++]=s>>18|240,r[n++]=s>>12&63|128,r[n++]=s>>6&63|128,r[n++]=s&63|128):(r[n++]=s>>12|224,r[n++]=s>>6&63|128,r[n++]=s&63|128)}else for(i=0;i>>24|e>>>8&65280|e<<8&16711680|(e&255)<<24;return t>>>0}Ve.htonl=lp;function I_(e,t){for(var r="",n=0;n>>0}return s}Ve.join32=T_;function M_(e,t){for(var r=new Array(e.length*4),n=0,i=0;n>>24,r[i+1]=s>>>16&255,r[i+2]=s>>>8&255,r[i+3]=s&255):(r[i+3]=s>>>24,r[i+2]=s>>>16&255,r[i+1]=s>>>8&255,r[i]=s&255)}return r}Ve.split32=M_;function A_(e,t){return e>>>t|e<<32-t}Ve.rotr32=A_;function O_(e,t){return e<>>32-t}Ve.rotl32=O_;function P_(e,t){return e+t>>>0}Ve.sum32=P_;function B_(e,t,r){return e+t+r>>>0}Ve.sum32_3=B_;function R_(e,t,r,n){return e+t+r+n>>>0}Ve.sum32_4=R_;function k_(e,t,r,n,i){return e+t+r+n+i>>>0}Ve.sum32_5=k_;function N_(e,t,r,n){var i=e[t],s=e[t+1],a=n+s>>>0,u=(a>>0,e[t+1]=a}Ve.sum64=N_;function C_(e,t,r,n){var i=t+n>>>0,s=(i>>0}Ve.sum64_hi=C_;function q_(e,t,r,n){var i=t+n;return i>>>0}Ve.sum64_lo=q_;function L_(e,t,r,n,i,s,a,u){var l=0,c=t;c=c+n>>>0,l+=c>>0,l+=c>>0,l+=c>>0}Ve.sum64_4_hi=L_;function U_(e,t,r,n,i,s,a,u){var l=t+n+s+u;return l>>>0}Ve.sum64_4_lo=U_;function D_(e,t,r,n,i,s,a,u,l,c){var p=0,w=t;w=w+n>>>0,p+=w>>0,p+=w>>0,p+=w>>0,p+=w>>0}Ve.sum64_5_hi=D_;function H_(e,t,r,n,i,s,a,u,l,c){var p=t+n+s+u+c;return p>>>0}Ve.sum64_5_lo=H_;function F_(e,t,r){var n=t<<32-r|e>>>r;return n>>>0}Ve.rotr64_hi=F_;function K_(e,t,r){var n=e<<32-r|t>>>r;return n>>>0}Ve.rotr64_lo=K_;function G_(e,t,r){return e>>>r}Ve.shr64_hi=G_;function W_(e,t,r){var n=e<<32-r|t>>>r;return n>>>0}Ve.shr64_lo=W_});var cs=T(bp=>{"use strict";var vp=cr(),V_=ln();function ja(){this.pending=null,this.pendingTotal=0,this.blockSize=this.constructor.blockSize,this.outSize=this.constructor.outSize,this.hmacStrength=this.constructor.hmacStrength,this.padLength=this.constructor.padLength/8,this.endian="big",this._delta8=this.blockSize/8,this._delta32=this.blockSize/32}bp.BlockHash=ja;ja.prototype.update=function(t,r){if(t=vp.toArray(t,r),this.pending?this.pending=this.pending.concat(t):this.pending=t,this.pendingTotal+=t.length,this.pending.length>=this._delta8){t=this.pending;var n=t.length%this._delta8;this.pending=t.slice(t.length-n,t.length),this.pending.length===0&&(this.pending=null),t=vp.join32(t,0,t.length-n,this.endian);for(var i=0;i>>24&255,i[s++]=t>>>16&255,i[s++]=t>>>8&255,i[s++]=t&255}else for(i[s++]=t&255,i[s++]=t>>>8&255,i[s++]=t>>>16&255,i[s++]=t>>>24&255,i[s++]=0,i[s++]=0,i[s++]=0,i[s++]=0,a=8;a{"use strict";var z_=cr(),Sr=z_.rotr32;function $_(e,t,r,n){if(e===0)return gp(t,r,n);if(e===1||e===3)return yp(t,r,n);if(e===2)return mp(t,r,n)}Kr.ft_1=$_;function gp(e,t,r){return e&t^~e&r}Kr.ch32=gp;function mp(e,t,r){return e&t^e&r^t&r}Kr.maj32=mp;function yp(e,t,r){return e^t^r}Kr.p32=yp;function j_(e){return Sr(e,2)^Sr(e,13)^Sr(e,22)}Kr.s0_256=j_;function X_(e){return Sr(e,6)^Sr(e,11)^Sr(e,25)}Kr.s1_256=X_;function Y_(e){return Sr(e,7)^Sr(e,18)^e>>>3}Kr.g0_256=Y_;function J_(e){return Sr(e,17)^Sr(e,19)^e>>>10}Kr.g1_256=J_});var Ep=T((JB,_p)=>{"use strict";var hs=cr(),Z_=cs(),Q_=Bc(),Rc=hs.rotl32,mo=hs.sum32,e4=hs.sum32_5,t4=Q_.ft_1,wp=Z_.BlockHash,r4=[1518500249,1859775393,2400959708,3395469782];function Ir(){if(!(this instanceof Ir))return new Ir;wp.call(this),this.h=[1732584193,4023233417,2562383102,271733878,3285377520],this.W=new Array(80)}hs.inherits(Ir,wp);_p.exports=Ir;Ir.blockSize=512;Ir.outSize=160;Ir.hmacStrength=80;Ir.padLength=64;Ir.prototype._update=function(t,r){for(var n=this.W,i=0;i<16;i++)n[i]=t[r+i];for(;i{"use strict";var ls=cr(),n4=cs(),ds=Bc(),i4=ln(),hr=ls.sum32,s4=ls.sum32_4,o4=ls.sum32_5,a4=ds.ch32,f4=ds.maj32,u4=ds.s0_256,c4=ds.s1_256,h4=ds.g0_256,l4=ds.g1_256,xp=n4.BlockHash,d4=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298];function Tr(){if(!(this instanceof Tr))return new Tr;xp.call(this),this.h=[1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225],this.k=d4,this.W=new Array(64)}ls.inherits(Tr,xp);Sp.exports=Tr;Tr.blockSize=512;Tr.outSize=256;Tr.hmacStrength=192;Tr.padLength=64;Tr.prototype._update=function(t,r){for(var n=this.W,i=0;i<16;i++)n[i]=t[r+i];for(;i{"use strict";var Nc=cr(),Ip=kc();function Gr(){if(!(this instanceof Gr))return new Gr;Ip.call(this),this.h=[3238371032,914150663,812702999,4144912697,4290775857,1750603025,1694076839,3204075428]}Nc.inherits(Gr,Ip);Tp.exports=Gr;Gr.blockSize=512;Gr.outSize=224;Gr.hmacStrength=192;Gr.padLength=64;Gr.prototype._digest=function(t){return t==="hex"?Nc.toHex32(this.h.slice(0,7),"big"):Nc.split32(this.h.slice(0,7),"big")}});var Lc=T((eR,Bp)=>{"use strict";var Lt=cr(),p4=cs(),v4=ln(),Mr=Lt.rotr64_hi,Ar=Lt.rotr64_lo,Ap=Lt.shr64_hi,Op=Lt.shr64_lo,vn=Lt.sum64,Cc=Lt.sum64_hi,qc=Lt.sum64_lo,b4=Lt.sum64_4_hi,g4=Lt.sum64_4_lo,m4=Lt.sum64_5_hi,y4=Lt.sum64_5_lo,Pp=p4.BlockHash,w4=[1116352408,3609767458,1899447441,602891725,3049323471,3964484399,3921009573,2173295548,961987163,4081628472,1508970993,3053834265,2453635748,2937671579,2870763221,3664609560,3624381080,2734883394,310598401,1164996542,607225278,1323610764,1426881987,3590304994,1925078388,4068182383,2162078206,991336113,2614888103,633803317,3248222580,3479774868,3835390401,2666613458,4022224774,944711139,264347078,2341262773,604807628,2007800933,770255983,1495990901,1249150122,1856431235,1555081692,3175218132,1996064986,2198950837,2554220882,3999719339,2821834349,766784016,2952996808,2566594879,3210313671,3203337956,3336571891,1034457026,3584528711,2466948901,113926993,3758326383,338241895,168717936,666307205,1188179964,773529912,1546045734,1294757372,1522805485,1396182291,2643833823,1695183700,2343527390,1986661051,1014477480,2177026350,1206759142,2456956037,344077627,2730485921,1290863460,2820302411,3158454273,3259730800,3505952657,3345764771,106217008,3516065817,3606008344,3600352804,1432725776,4094571909,1467031594,275423344,851169720,430227734,3100823752,506948616,1363258195,659060556,3750685593,883997877,3785050280,958139571,3318307427,1322822218,3812723403,1537002063,2003034995,1747873779,3602036899,1955562222,1575990012,2024104815,1125592928,2227730452,2716904306,2361852424,442776044,2428436474,593698344,2756734187,3733110249,3204031479,2999351573,3329325298,3815920427,3391569614,3928383900,3515267271,566280711,3940187606,3454069534,4118630271,4000239992,116418474,1914138554,174292421,2731055270,289380356,3203993006,460393269,320620315,685471733,587496836,852142971,1086792851,1017036298,365543100,1126000580,2618297676,1288033470,3409855158,1501505948,4234509866,1607167915,987167468,1816402316,1246189591];function lr(){if(!(this instanceof lr))return new lr;Pp.call(this),this.h=[1779033703,4089235720,3144134277,2227873595,1013904242,4271175723,2773480762,1595750129,1359893119,2917565137,2600822924,725511199,528734635,4215389547,1541459225,327033209],this.k=w4,this.W=new Array(160)}Lt.inherits(lr,Pp);Bp.exports=lr;lr.blockSize=1024;lr.outSize=512;lr.hmacStrength=192;lr.padLength=128;lr.prototype._prepareBlock=function(t,r){for(var n=this.W,i=0;i<32;i++)n[i]=t[r+i];for(;i{"use strict";var Uc=cr(),Rp=Lc();function Wr(){if(!(this instanceof Wr))return new Wr;Rp.call(this),this.h=[3418070365,3238371032,1654270250,914150663,2438529370,812702999,355462360,4144912697,1731405415,4290775857,2394180231,1750603025,3675008525,1694076839,1203062813,3204075428]}Uc.inherits(Wr,Rp);kp.exports=Wr;Wr.blockSize=1024;Wr.outSize=384;Wr.hmacStrength=192;Wr.padLength=128;Wr.prototype._digest=function(t){return t==="hex"?Uc.toHex32(this.h.slice(0,12),"big"):Uc.split32(this.h.slice(0,12),"big")}});var Cp=T(ps=>{"use strict";ps.sha1=Ep();ps.sha224=Mp();ps.sha256=kc();ps.sha384=Np();ps.sha512=Lc()});var Fp=T(Hp=>{"use strict";var li=cr(),k4=cs(),Xa=li.rotl32,qp=li.sum32,yo=li.sum32_3,Lp=li.sum32_4,Dp=k4.BlockHash;function Or(){if(!(this instanceof Or))return new Or;Dp.call(this),this.h=[1732584193,4023233417,2562383102,271733878,3285377520],this.endian="little"}li.inherits(Or,Dp);Hp.ripemd160=Or;Or.blockSize=512;Or.outSize=160;Or.hmacStrength=192;Or.padLength=64;Or.prototype._update=function(t,r){for(var n=this.h[0],i=this.h[1],s=this.h[2],a=this.h[3],u=this.h[4],l=n,c=i,p=s,w=a,x=u,S=0;S<80;S++){var M=qp(Xa(Lp(n,Up(S,i,s,a),t[q4[S]+r],N4(S)),U4[S]),u);n=u,u=a,a=Xa(s,10),s=i,i=M,M=qp(Xa(Lp(l,Up(79-S,c,p,w),t[L4[S]+r],C4(S)),D4[S]),x),l=x,x=w,w=Xa(p,10),p=c,c=M}M=yo(this.h[1],s,w),this.h[1]=yo(this.h[2],a,x),this.h[2]=yo(this.h[3],u,l),this.h[3]=yo(this.h[4],n,c),this.h[4]=yo(this.h[0],i,p),this.h[0]=M};Or.prototype._digest=function(t){return t==="hex"?li.toHex32(this.h,"little"):li.split32(this.h,"little")};function Up(e,t,r,n){return e<=15?t^r^n:e<=31?t&r|~t&n:e<=47?(t|~r)^n:e<=63?t&n|r&~n:t^(r|~n)}function N4(e){return e<=15?0:e<=31?1518500249:e<=47?1859775393:e<=63?2400959708:2840853838}function C4(e){return e<=15?1352829926:e<=31?1548603684:e<=47?1836072691:e<=63?2053994217:0}var q4=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13],L4=[5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11],U4=[11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6],D4=[8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11]});var Gp=T((iR,Kp)=>{"use strict";var H4=cr(),F4=ln();function vs(e,t,r){if(!(this instanceof vs))return new vs(e,t,r);this.Hash=e,this.blockSize=e.blockSize/8,this.outSize=e.outSize/8,this.inner=null,this.outer=null,this._init(H4.toArray(t,r))}Kp.exports=vs;vs.prototype._init=function(t){t.length>this.blockSize&&(t=new this.Hash().update(t).digest()),F4(t.length<=this.blockSize);for(var r=t.length;r{var wt=Wp;wt.utils=cr();wt.common=cs();wt.sha=Cp();wt.ripemd=Fp();wt.hmac=Gp();wt.sha1=wt.sha.sha1;wt.sha256=wt.sha.sha256;wt.sha224=wt.sha.sha224;wt.sha384=wt.sha.sha384;wt.sha512=wt.sha.sha512;wt.ripemd160=wt.ripemd.ripemd160});var zp=T((oR,Vp)=>{Vp.exports={doubles:{step:4,points:[["e60fce93b59e9ec53011aabc21c23e97b2a31369b87a5ae9c44ee89e2a6dec0a","f7e3507399e595929db99f34f57937101296891e44d23f0be1f32cce69616821"],["8282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508","11f8a8098557dfe45e8256e830b60ace62d613ac2f7b17bed31b6eaff6e26caf"],["175e159f728b865a72f99cc6c6fc846de0b93833fd2222ed73fce5b551e5b739","d3506e0d9e3c79eba4ef97a51ff71f5eacb5955add24345c6efa6ffee9fed695"],["363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff4640","4e273adfc732221953b445397f3363145b9a89008199ecb62003c7f3bee9de9"],["8b4b5f165df3c2be8c6244b5b745638843e4a781a15bcd1b69f79a55dffdf80c","4aad0a6f68d308b4b3fbd7813ab0da04f9e336546162ee56b3eff0c65fd4fd36"],["723cbaa6e5db996d6bf771c00bd548c7b700dbffa6c0e77bcb6115925232fcda","96e867b5595cc498a921137488824d6e2660a0653779494801dc069d9eb39f5f"],["eebfa4d493bebf98ba5feec812c2d3b50947961237a919839a533eca0e7dd7fa","5d9a8ca3970ef0f269ee7edaf178089d9ae4cdc3a711f712ddfd4fdae1de8999"],["100f44da696e71672791d0a09b7bde459f1215a29b3c03bfefd7835b39a48db0","cdd9e13192a00b772ec8f3300c090666b7ff4a18ff5195ac0fbd5cd62bc65a09"],["e1031be262c7ed1b1dc9227a4a04c017a77f8d4464f3b3852c8acde6e534fd2d","9d7061928940405e6bb6a4176597535af292dd419e1ced79a44f18f29456a00d"],["feea6cae46d55b530ac2839f143bd7ec5cf8b266a41d6af52d5e688d9094696d","e57c6b6c97dce1bab06e4e12bf3ecd5c981c8957cc41442d3155debf18090088"],["da67a91d91049cdcb367be4be6ffca3cfeed657d808583de33fa978bc1ec6cb1","9bacaa35481642bc41f463f7ec9780e5dec7adc508f740a17e9ea8e27a68be1d"],["53904faa0b334cdda6e000935ef22151ec08d0f7bb11069f57545ccc1a37b7c0","5bc087d0bc80106d88c9eccac20d3c1c13999981e14434699dcb096b022771c8"],["8e7bcd0bd35983a7719cca7764ca906779b53a043a9b8bcaeff959f43ad86047","10b7770b2a3da4b3940310420ca9514579e88e2e47fd68b3ea10047e8460372a"],["385eed34c1cdff21e6d0818689b81bde71a7f4f18397e6690a841e1599c43862","283bebc3e8ea23f56701de19e9ebf4576b304eec2086dc8cc0458fe5542e5453"],["6f9d9b803ecf191637c73a4413dfa180fddf84a5947fbc9c606ed86c3fac3a7","7c80c68e603059ba69b8e2a30e45c4d47ea4dd2f5c281002d86890603a842160"],["3322d401243c4e2582a2147c104d6ecbf774d163db0f5e5313b7e0e742d0e6bd","56e70797e9664ef5bfb019bc4ddaf9b72805f63ea2873af624f3a2e96c28b2a0"],["85672c7d2de0b7da2bd1770d89665868741b3f9af7643397721d74d28134ab83","7c481b9b5b43b2eb6374049bfa62c2e5e77f17fcc5298f44c8e3094f790313a6"],["948bf809b1988a46b06c9f1919413b10f9226c60f668832ffd959af60c82a0a","53a562856dcb6646dc6b74c5d1c3418c6d4dff08c97cd2bed4cb7f88d8c8e589"],["6260ce7f461801c34f067ce0f02873a8f1b0e44dfc69752accecd819f38fd8e8","bc2da82b6fa5b571a7f09049776a1ef7ecd292238051c198c1a84e95b2b4ae17"],["e5037de0afc1d8d43d8348414bbf4103043ec8f575bfdc432953cc8d2037fa2d","4571534baa94d3b5f9f98d09fb990bddbd5f5b03ec481f10e0e5dc841d755bda"],["e06372b0f4a207adf5ea905e8f1771b4e7e8dbd1c6a6c5b725866a0ae4fce725","7a908974bce18cfe12a27bb2ad5a488cd7484a7787104870b27034f94eee31dd"],["213c7a715cd5d45358d0bbf9dc0ce02204b10bdde2a3f58540ad6908d0559754","4b6dad0b5ae462507013ad06245ba190bb4850f5f36a7eeddff2c27534b458f2"],["4e7c272a7af4b34e8dbb9352a5419a87e2838c70adc62cddf0cc3a3b08fbd53c","17749c766c9d0b18e16fd09f6def681b530b9614bff7dd33e0b3941817dcaae6"],["fea74e3dbe778b1b10f238ad61686aa5c76e3db2be43057632427e2840fb27b6","6e0568db9b0b13297cf674deccb6af93126b596b973f7b77701d3db7f23cb96f"],["76e64113f677cf0e10a2570d599968d31544e179b760432952c02a4417bdde39","c90ddf8dee4e95cf577066d70681f0d35e2a33d2b56d2032b4b1752d1901ac01"],["c738c56b03b2abe1e8281baa743f8f9a8f7cc643df26cbee3ab150242bcbb891","893fb578951ad2537f718f2eacbfbbbb82314eef7880cfe917e735d9699a84c3"],["d895626548b65b81e264c7637c972877d1d72e5f3a925014372e9f6588f6c14b","febfaa38f2bc7eae728ec60818c340eb03428d632bb067e179363ed75d7d991f"],["b8da94032a957518eb0f6433571e8761ceffc73693e84edd49150a564f676e03","2804dfa44805a1e4d7c99cc9762808b092cc584d95ff3b511488e4e74efdf6e7"],["e80fea14441fb33a7d8adab9475d7fab2019effb5156a792f1a11778e3c0df5d","eed1de7f638e00771e89768ca3ca94472d155e80af322ea9fcb4291b6ac9ec78"],["a301697bdfcd704313ba48e51d567543f2a182031efd6915ddc07bbcc4e16070","7370f91cfb67e4f5081809fa25d40f9b1735dbf7c0a11a130c0d1a041e177ea1"],["90ad85b389d6b936463f9d0512678de208cc330b11307fffab7ac63e3fb04ed4","e507a3620a38261affdcbd9427222b839aefabe1582894d991d4d48cb6ef150"],["8f68b9d2f63b5f339239c1ad981f162ee88c5678723ea3351b7b444c9ec4c0da","662a9f2dba063986de1d90c2b6be215dbbea2cfe95510bfdf23cbf79501fff82"],["e4f3fb0176af85d65ff99ff9198c36091f48e86503681e3e6686fd5053231e11","1e63633ad0ef4f1c1661a6d0ea02b7286cc7e74ec951d1c9822c38576feb73bc"],["8c00fa9b18ebf331eb961537a45a4266c7034f2f0d4e1d0716fb6eae20eae29e","efa47267fea521a1a9dc343a3736c974c2fadafa81e36c54e7d2a4c66702414b"],["e7a26ce69dd4829f3e10cec0a9e98ed3143d084f308b92c0997fddfc60cb3e41","2a758e300fa7984b471b006a1aafbb18d0a6b2c0420e83e20e8a9421cf2cfd51"],["b6459e0ee3662ec8d23540c223bcbdc571cbcb967d79424f3cf29eb3de6b80ef","67c876d06f3e06de1dadf16e5661db3c4b3ae6d48e35b2ff30bf0b61a71ba45"],["d68a80c8280bb840793234aa118f06231d6f1fc67e73c5a5deda0f5b496943e8","db8ba9fff4b586d00c4b1f9177b0e28b5b0e7b8f7845295a294c84266b133120"],["324aed7df65c804252dc0270907a30b09612aeb973449cea4095980fc28d3d5d","648a365774b61f2ff130c0c35aec1f4f19213b0c7e332843967224af96ab7c84"],["4df9c14919cde61f6d51dfdbe5fee5dceec4143ba8d1ca888e8bd373fd054c96","35ec51092d8728050974c23a1d85d4b5d506cdc288490192ebac06cad10d5d"],["9c3919a84a474870faed8a9c1cc66021523489054d7f0308cbfc99c8ac1f98cd","ddb84f0f4a4ddd57584f044bf260e641905326f76c64c8e6be7e5e03d4fc599d"],["6057170b1dd12fdf8de05f281d8e06bb91e1493a8b91d4cc5a21382120a959e5","9a1af0b26a6a4807add9a2daf71df262465152bc3ee24c65e899be932385a2a8"],["a576df8e23a08411421439a4518da31880cef0fba7d4df12b1a6973eecb94266","40a6bf20e76640b2c92b97afe58cd82c432e10a7f514d9f3ee8be11ae1b28ec8"],["7778a78c28dec3e30a05fe9629de8c38bb30d1f5cf9a3a208f763889be58ad71","34626d9ab5a5b22ff7098e12f2ff580087b38411ff24ac563b513fc1fd9f43ac"],["928955ee637a84463729fd30e7afd2ed5f96274e5ad7e5cb09eda9c06d903ac","c25621003d3f42a827b78a13093a95eeac3d26efa8a8d83fc5180e935bcd091f"],["85d0fef3ec6db109399064f3a0e3b2855645b4a907ad354527aae75163d82751","1f03648413a38c0be29d496e582cf5663e8751e96877331582c237a24eb1f962"],["ff2b0dce97eece97c1c9b6041798b85dfdfb6d8882da20308f5404824526087e","493d13fef524ba188af4c4dc54d07936c7b7ed6fb90e2ceb2c951e01f0c29907"],["827fbbe4b1e880ea9ed2b2e6301b212b57f1ee148cd6dd28780e5e2cf856e241","c60f9c923c727b0b71bef2c67d1d12687ff7a63186903166d605b68baec293ec"],["eaa649f21f51bdbae7be4ae34ce6e5217a58fdce7f47f9aa7f3b58fa2120e2b3","be3279ed5bbbb03ac69a80f89879aa5a01a6b965f13f7e59d47a5305ba5ad93d"],["e4a42d43c5cf169d9391df6decf42ee541b6d8f0c9a137401e23632dda34d24f","4d9f92e716d1c73526fc99ccfb8ad34ce886eedfa8d8e4f13a7f7131deba9414"],["1ec80fef360cbdd954160fadab352b6b92b53576a88fea4947173b9d4300bf19","aeefe93756b5340d2f3a4958a7abbf5e0146e77f6295a07b671cdc1cc107cefd"],["146a778c04670c2f91b00af4680dfa8bce3490717d58ba889ddb5928366642be","b318e0ec3354028add669827f9d4b2870aaa971d2f7e5ed1d0b297483d83efd0"],["fa50c0f61d22e5f07e3acebb1aa07b128d0012209a28b9776d76a8793180eef9","6b84c6922397eba9b72cd2872281a68a5e683293a57a213b38cd8d7d3f4f2811"],["da1d61d0ca721a11b1a5bf6b7d88e8421a288ab5d5bba5220e53d32b5f067ec2","8157f55a7c99306c79c0766161c91e2966a73899d279b48a655fba0f1ad836f1"],["a8e282ff0c9706907215ff98e8fd416615311de0446f1e062a73b0610d064e13","7f97355b8db81c09abfb7f3c5b2515888b679a3e50dd6bd6cef7c73111f4cc0c"],["174a53b9c9a285872d39e56e6913cab15d59b1fa512508c022f382de8319497c","ccc9dc37abfc9c1657b4155f2c47f9e6646b3a1d8cb9854383da13ac079afa73"],["959396981943785c3d3e57edf5018cdbe039e730e4918b3d884fdff09475b7ba","2e7e552888c331dd8ba0386a4b9cd6849c653f64c8709385e9b8abf87524f2fd"],["d2a63a50ae401e56d645a1153b109a8fcca0a43d561fba2dbb51340c9d82b151","e82d86fb6443fcb7565aee58b2948220a70f750af484ca52d4142174dcf89405"],["64587e2335471eb890ee7896d7cfdc866bacbdbd3839317b3436f9b45617e073","d99fcdd5bf6902e2ae96dd6447c299a185b90a39133aeab358299e5e9faf6589"],["8481bde0e4e4d885b3a546d3e549de042f0aa6cea250e7fd358d6c86dd45e458","38ee7b8cba5404dd84a25bf39cecb2ca900a79c42b262e556d64b1b59779057e"],["13464a57a78102aa62b6979ae817f4637ffcfed3c4b1ce30bcd6303f6caf666b","69be159004614580ef7e433453ccb0ca48f300a81d0942e13f495a907f6ecc27"],["bc4a9df5b713fe2e9aef430bcc1dc97a0cd9ccede2f28588cada3a0d2d83f366","d3a81ca6e785c06383937adf4b798caa6e8a9fbfa547b16d758d666581f33c1"],["8c28a97bf8298bc0d23d8c749452a32e694b65e30a9472a3954ab30fe5324caa","40a30463a3305193378fedf31f7cc0eb7ae784f0451cb9459e71dc73cbef9482"],["8ea9666139527a8c1dd94ce4f071fd23c8b350c5a4bb33748c4ba111faccae0","620efabbc8ee2782e24e7c0cfb95c5d735b783be9cf0f8e955af34a30e62b945"],["dd3625faef5ba06074669716bbd3788d89bdde815959968092f76cc4eb9a9787","7a188fa3520e30d461da2501045731ca941461982883395937f68d00c644a573"],["f710d79d9eb962297e4f6232b40e8f7feb2bc63814614d692c12de752408221e","ea98e67232d3b3295d3b535532115ccac8612c721851617526ae47a9c77bfc82"]]},naf:{wnd:7,points:[["f9308a019258c31049344f85f89d5229b531c845836f99b08601f113bce036f9","388f7b0f632de8140fe337e62a37f3566500a99934c2231b6cb9fd7584b8e672"],["2f8bde4d1a07209355b4a7250a5c5128e88b84bddc619ab7cba8d569b240efe4","d8ac222636e5e3d6d4dba9dda6c9c426f788271bab0d6840dca87d3aa6ac62d6"],["5cbdf0646e5db4eaa398f365f2ea7a0e3d419b7e0330e39ce92bddedcac4f9bc","6aebca40ba255960a3178d6d861a54dba813d0b813fde7b5a5082628087264da"],["acd484e2f0c7f65309ad178a9f559abde09796974c57e714c35f110dfc27ccbe","cc338921b0a7d9fd64380971763b61e9add888a4375f8e0f05cc262ac64f9c37"],["774ae7f858a9411e5ef4246b70c65aac5649980be5c17891bbec17895da008cb","d984a032eb6b5e190243dd56d7b7b365372db1e2dff9d6a8301d74c9c953c61b"],["f28773c2d975288bc7d1d205c3748651b075fbc6610e58cddeeddf8f19405aa8","ab0902e8d880a89758212eb65cdaf473a1a06da521fa91f29b5cb52db03ed81"],["d7924d4f7d43ea965a465ae3095ff41131e5946f3c85f79e44adbcf8e27e080e","581e2872a86c72a683842ec228cc6defea40af2bd896d3a5c504dc9ff6a26b58"],["defdea4cdb677750a420fee807eacf21eb9898ae79b9768766e4faa04a2d4a34","4211ab0694635168e997b0ead2a93daeced1f4a04a95c0f6cfb199f69e56eb77"],["2b4ea0a797a443d293ef5cff444f4979f06acfebd7e86d277475656138385b6c","85e89bc037945d93b343083b5a1c86131a01f60c50269763b570c854e5c09b7a"],["352bbf4a4cdd12564f93fa332ce333301d9ad40271f8107181340aef25be59d5","321eb4075348f534d59c18259dda3e1f4a1b3b2e71b1039c67bd3d8bcf81998c"],["2fa2104d6b38d11b0230010559879124e42ab8dfeff5ff29dc9cdadd4ecacc3f","2de1068295dd865b64569335bd5dd80181d70ecfc882648423ba76b532b7d67"],["9248279b09b4d68dab21a9b066edda83263c3d84e09572e269ca0cd7f5453714","73016f7bf234aade5d1aa71bdea2b1ff3fc0de2a887912ffe54a32ce97cb3402"],["daed4f2be3a8bf278e70132fb0beb7522f570e144bf615c07e996d443dee8729","a69dce4a7d6c98e8d4a1aca87ef8d7003f83c230f3afa726ab40e52290be1c55"],["c44d12c7065d812e8acf28d7cbb19f9011ecd9e9fdf281b0e6a3b5e87d22e7db","2119a460ce326cdc76c45926c982fdac0e106e861edf61c5a039063f0e0e6482"],["6a245bf6dc698504c89a20cfded60853152b695336c28063b61c65cbd269e6b4","e022cf42c2bd4a708b3f5126f16a24ad8b33ba48d0423b6efd5e6348100d8a82"],["1697ffa6fd9de627c077e3d2fe541084ce13300b0bec1146f95ae57f0d0bd6a5","b9c398f186806f5d27561506e4557433a2cf15009e498ae7adee9d63d01b2396"],["605bdb019981718b986d0f07e834cb0d9deb8360ffb7f61df982345ef27a7479","2972d2de4f8d20681a78d93ec96fe23c26bfae84fb14db43b01e1e9056b8c49"],["62d14dab4150bf497402fdc45a215e10dcb01c354959b10cfe31c7e9d87ff33d","80fc06bd8cc5b01098088a1950eed0db01aa132967ab472235f5642483b25eaf"],["80c60ad0040f27dade5b4b06c408e56b2c50e9f56b9b8b425e555c2f86308b6f","1c38303f1cc5c30f26e66bad7fe72f70a65eed4cbe7024eb1aa01f56430bd57a"],["7a9375ad6167ad54aa74c6348cc54d344cc5dc9487d847049d5eabb0fa03c8fb","d0e3fa9eca8726909559e0d79269046bdc59ea10c70ce2b02d499ec224dc7f7"],["d528ecd9b696b54c907a9ed045447a79bb408ec39b68df504bb51f459bc3ffc9","eecf41253136e5f99966f21881fd656ebc4345405c520dbc063465b521409933"],["49370a4b5f43412ea25f514e8ecdad05266115e4a7ecb1387231808f8b45963","758f3f41afd6ed428b3081b0512fd62a54c3f3afbb5b6764b653052a12949c9a"],["77f230936ee88cbbd73df930d64702ef881d811e0e1498e2f1c13eb1fc345d74","958ef42a7886b6400a08266e9ba1b37896c95330d97077cbbe8eb3c7671c60d6"],["f2dac991cc4ce4b9ea44887e5c7c0bce58c80074ab9d4dbaeb28531b7739f530","e0dedc9b3b2f8dad4da1f32dec2531df9eb5fbeb0598e4fd1a117dba703a3c37"],["463b3d9f662621fb1b4be8fbbe2520125a216cdfc9dae3debcba4850c690d45b","5ed430d78c296c3543114306dd8622d7c622e27c970a1de31cb377b01af7307e"],["f16f804244e46e2a09232d4aff3b59976b98fac14328a2d1a32496b49998f247","cedabd9b82203f7e13d206fcdf4e33d92a6c53c26e5cce26d6579962c4e31df6"],["caf754272dc84563b0352b7a14311af55d245315ace27c65369e15f7151d41d1","cb474660ef35f5f2a41b643fa5e460575f4fa9b7962232a5c32f908318a04476"],["2600ca4b282cb986f85d0f1709979d8b44a09c07cb86d7c124497bc86f082120","4119b88753c15bd6a693b03fcddbb45d5ac6be74ab5f0ef44b0be9475a7e4b40"],["7635ca72d7e8432c338ec53cd12220bc01c48685e24f7dc8c602a7746998e435","91b649609489d613d1d5e590f78e6d74ecfc061d57048bad9e76f302c5b9c61"],["754e3239f325570cdbbf4a87deee8a66b7f2b33479d468fbc1a50743bf56cc18","673fb86e5bda30fb3cd0ed304ea49a023ee33d0197a695d0c5d98093c536683"],["e3e6bd1071a1e96aff57859c82d570f0330800661d1c952f9fe2694691d9b9e8","59c9e0bba394e76f40c0aa58379a3cb6a5a2283993e90c4167002af4920e37f5"],["186b483d056a033826ae73d88f732985c4ccb1f32ba35f4b4cc47fdcf04aa6eb","3b952d32c67cf77e2e17446e204180ab21fb8090895138b4a4a797f86e80888b"],["df9d70a6b9876ce544c98561f4be4f725442e6d2b737d9c91a8321724ce0963f","55eb2dafd84d6ccd5f862b785dc39d4ab157222720ef9da217b8c45cf2ba2417"],["5edd5cc23c51e87a497ca815d5dce0f8ab52554f849ed8995de64c5f34ce7143","efae9c8dbc14130661e8cec030c89ad0c13c66c0d17a2905cdc706ab7399a868"],["290798c2b6476830da12fe02287e9e777aa3fba1c355b17a722d362f84614fba","e38da76dcd440621988d00bcf79af25d5b29c094db2a23146d003afd41943e7a"],["af3c423a95d9f5b3054754efa150ac39cd29552fe360257362dfdecef4053b45","f98a3fd831eb2b749a93b0e6f35cfb40c8cd5aa667a15581bc2feded498fd9c6"],["766dbb24d134e745cccaa28c99bf274906bb66b26dcf98df8d2fed50d884249a","744b1152eacbe5e38dcc887980da38b897584a65fa06cedd2c924f97cbac5996"],["59dbf46f8c94759ba21277c33784f41645f7b44f6c596a58ce92e666191abe3e","c534ad44175fbc300f4ea6ce648309a042ce739a7919798cd85e216c4a307f6e"],["f13ada95103c4537305e691e74e9a4a8dd647e711a95e73cb62dc6018cfd87b8","e13817b44ee14de663bf4bc808341f326949e21a6a75c2570778419bdaf5733d"],["7754b4fa0e8aced06d4167a2c59cca4cda1869c06ebadfb6488550015a88522c","30e93e864e669d82224b967c3020b8fa8d1e4e350b6cbcc537a48b57841163a2"],["948dcadf5990e048aa3874d46abef9d701858f95de8041d2a6828c99e2262519","e491a42537f6e597d5d28a3224b1bc25df9154efbd2ef1d2cbba2cae5347d57e"],["7962414450c76c1689c7b48f8202ec37fb224cf5ac0bfa1570328a8a3d7c77ab","100b610ec4ffb4760d5c1fc133ef6f6b12507a051f04ac5760afa5b29db83437"],["3514087834964b54b15b160644d915485a16977225b8847bb0dd085137ec47ca","ef0afbb2056205448e1652c48e8127fc6039e77c15c2378b7e7d15a0de293311"],["d3cc30ad6b483e4bc79ce2c9dd8bc54993e947eb8df787b442943d3f7b527eaf","8b378a22d827278d89c5e9be8f9508ae3c2ad46290358630afb34db04eede0a4"],["1624d84780732860ce1c78fcbfefe08b2b29823db913f6493975ba0ff4847610","68651cf9b6da903e0914448c6cd9d4ca896878f5282be4c8cc06e2a404078575"],["733ce80da955a8a26902c95633e62a985192474b5af207da6df7b4fd5fc61cd4","f5435a2bd2badf7d485a4d8b8db9fcce3e1ef8e0201e4578c54673bc1dc5ea1d"],["15d9441254945064cf1a1c33bbd3b49f8966c5092171e699ef258dfab81c045c","d56eb30b69463e7234f5137b73b84177434800bacebfc685fc37bbe9efe4070d"],["a1d0fcf2ec9de675b612136e5ce70d271c21417c9d2b8aaaac138599d0717940","edd77f50bcb5a3cab2e90737309667f2641462a54070f3d519212d39c197a629"],["e22fbe15c0af8ccc5780c0735f84dbe9a790badee8245c06c7ca37331cb36980","a855babad5cd60c88b430a69f53a1a7a38289154964799be43d06d77d31da06"],["311091dd9860e8e20ee13473c1155f5f69635e394704eaa74009452246cfa9b3","66db656f87d1f04fffd1f04788c06830871ec5a64feee685bd80f0b1286d8374"],["34c1fd04d301be89b31c0442d3e6ac24883928b45a9340781867d4232ec2dbdf","9414685e97b1b5954bd46f730174136d57f1ceeb487443dc5321857ba73abee"],["f219ea5d6b54701c1c14de5b557eb42a8d13f3abbcd08affcc2a5e6b049b8d63","4cb95957e83d40b0f73af4544cccf6b1f4b08d3c07b27fb8d8c2962a400766d1"],["d7b8740f74a8fbaab1f683db8f45de26543a5490bca627087236912469a0b448","fa77968128d9c92ee1010f337ad4717eff15db5ed3c049b3411e0315eaa4593b"],["32d31c222f8f6f0ef86f7c98d3a3335ead5bcd32abdd94289fe4d3091aa824bf","5f3032f5892156e39ccd3d7915b9e1da2e6dac9e6f26e961118d14b8462e1661"],["7461f371914ab32671045a155d9831ea8793d77cd59592c4340f86cbc18347b5","8ec0ba238b96bec0cbdddcae0aa442542eee1ff50c986ea6b39847b3cc092ff6"],["ee079adb1df1860074356a25aa38206a6d716b2c3e67453d287698bad7b2b2d6","8dc2412aafe3be5c4c5f37e0ecc5f9f6a446989af04c4e25ebaac479ec1c8c1e"],["16ec93e447ec83f0467b18302ee620f7e65de331874c9dc72bfd8616ba9da6b5","5e4631150e62fb40d0e8c2a7ca5804a39d58186a50e497139626778e25b0674d"],["eaa5f980c245f6f038978290afa70b6bd8855897f98b6aa485b96065d537bd99","f65f5d3e292c2e0819a528391c994624d784869d7e6ea67fb18041024edc07dc"],["78c9407544ac132692ee1910a02439958ae04877151342ea96c4b6b35a49f51","f3e0319169eb9b85d5404795539a5e68fa1fbd583c064d2462b675f194a3ddb4"],["494f4be219a1a77016dcd838431aea0001cdc8ae7a6fc688726578d9702857a5","42242a969283a5f339ba7f075e36ba2af925ce30d767ed6e55f4b031880d562c"],["a598a8030da6d86c6bc7f2f5144ea549d28211ea58faa70ebf4c1e665c1fe9b5","204b5d6f84822c307e4b4a7140737aec23fc63b65b35f86a10026dbd2d864e6b"],["c41916365abb2b5d09192f5f2dbeafec208f020f12570a184dbadc3e58595997","4f14351d0087efa49d245b328984989d5caf9450f34bfc0ed16e96b58fa9913"],["841d6063a586fa475a724604da03bc5b92a2e0d2e0a36acfe4c73a5514742881","73867f59c0659e81904f9a1c7543698e62562d6744c169ce7a36de01a8d6154"],["5e95bb399a6971d376026947f89bde2f282b33810928be4ded112ac4d70e20d5","39f23f366809085beebfc71181313775a99c9aed7d8ba38b161384c746012865"],["36e4641a53948fd476c39f8a99fd974e5ec07564b5315d8bf99471bca0ef2f66","d2424b1b1abe4eb8164227b085c9aa9456ea13493fd563e06fd51cf5694c78fc"],["336581ea7bfbbb290c191a2f507a41cf5643842170e914faeab27c2c579f726","ead12168595fe1be99252129b6e56b3391f7ab1410cd1e0ef3dcdcabd2fda224"],["8ab89816dadfd6b6a1f2634fcf00ec8403781025ed6890c4849742706bd43ede","6fdcef09f2f6d0a044e654aef624136f503d459c3e89845858a47a9129cdd24e"],["1e33f1a746c9c5778133344d9299fcaa20b0938e8acff2544bb40284b8c5fb94","60660257dd11b3aa9c8ed618d24edff2306d320f1d03010e33a7d2057f3b3b6"],["85b7c1dcb3cec1b7ee7f30ded79dd20a0ed1f4cc18cbcfcfa410361fd8f08f31","3d98a9cdd026dd43f39048f25a8847f4fcafad1895d7a633c6fed3c35e999511"],["29df9fbd8d9e46509275f4b125d6d45d7fbe9a3b878a7af872a2800661ac5f51","b4c4fe99c775a606e2d8862179139ffda61dc861c019e55cd2876eb2a27d84b"],["a0b1cae06b0a847a3fea6e671aaf8adfdfe58ca2f768105c8082b2e449fce252","ae434102edde0958ec4b19d917a6a28e6b72da1834aff0e650f049503a296cf2"],["4e8ceafb9b3e9a136dc7ff67e840295b499dfb3b2133e4ba113f2e4c0e121e5","cf2174118c8b6d7a4b48f6d534ce5c79422c086a63460502b827ce62a326683c"],["d24a44e047e19b6f5afb81c7ca2f69080a5076689a010919f42725c2b789a33b","6fb8d5591b466f8fc63db50f1c0f1c69013f996887b8244d2cdec417afea8fa3"],["ea01606a7a6c9cdd249fdfcfacb99584001edd28abbab77b5104e98e8e3b35d4","322af4908c7312b0cfbfe369f7a7b3cdb7d4494bc2823700cfd652188a3ea98d"],["af8addbf2b661c8a6c6328655eb96651252007d8c5ea31be4ad196de8ce2131f","6749e67c029b85f52a034eafd096836b2520818680e26ac8f3dfbcdb71749700"],["e3ae1974566ca06cc516d47e0fb165a674a3dabcfca15e722f0e3450f45889","2aeabe7e4531510116217f07bf4d07300de97e4874f81f533420a72eeb0bd6a4"],["591ee355313d99721cf6993ffed1e3e301993ff3ed258802075ea8ced397e246","b0ea558a113c30bea60fc4775460c7901ff0b053d25ca2bdeee98f1a4be5d196"],["11396d55fda54c49f19aa97318d8da61fa8584e47b084945077cf03255b52984","998c74a8cd45ac01289d5833a7beb4744ff536b01b257be4c5767bea93ea57a4"],["3c5d2a1ba39c5a1790000738c9e0c40b8dcdfd5468754b6405540157e017aa7a","b2284279995a34e2f9d4de7396fc18b80f9b8b9fdd270f6661f79ca4c81bd257"],["cc8704b8a60a0defa3a99a7299f2e9c3fbc395afb04ac078425ef8a1793cc030","bdd46039feed17881d1e0862db347f8cf395b74fc4bcdc4e940b74e3ac1f1b13"],["c533e4f7ea8555aacd9777ac5cad29b97dd4defccc53ee7ea204119b2889b197","6f0a256bc5efdf429a2fb6242f1a43a2d9b925bb4a4b3a26bb8e0f45eb596096"],["c14f8f2ccb27d6f109f6d08d03cc96a69ba8c34eec07bbcf566d48e33da6593","c359d6923bb398f7fd4473e16fe1c28475b740dd098075e6c0e8649113dc3a38"],["a6cbc3046bc6a450bac24789fa17115a4c9739ed75f8f21ce441f72e0b90e6ef","21ae7f4680e889bb130619e2c0f95a360ceb573c70603139862afd617fa9b9f"],["347d6d9a02c48927ebfb86c1359b1caf130a3c0267d11ce6344b39f99d43cc38","60ea7f61a353524d1c987f6ecec92f086d565ab687870cb12689ff1e31c74448"],["da6545d2181db8d983f7dcb375ef5866d47c67b1bf31c8cf855ef7437b72656a","49b96715ab6878a79e78f07ce5680c5d6673051b4935bd897fea824b77dc208a"],["c40747cc9d012cb1a13b8148309c6de7ec25d6945d657146b9d5994b8feb1111","5ca560753be2a12fc6de6caf2cb489565db936156b9514e1bb5e83037e0fa2d4"],["4e42c8ec82c99798ccf3a610be870e78338c7f713348bd34c8203ef4037f3502","7571d74ee5e0fb92a7a8b33a07783341a5492144cc54bcc40a94473693606437"],["3775ab7089bc6af823aba2e1af70b236d251cadb0c86743287522a1b3b0dedea","be52d107bcfa09d8bcb9736a828cfa7fac8db17bf7a76a2c42ad961409018cf7"],["cee31cbf7e34ec379d94fb814d3d775ad954595d1314ba8846959e3e82f74e26","8fd64a14c06b589c26b947ae2bcf6bfa0149ef0be14ed4d80f448a01c43b1c6d"],["b4f9eaea09b6917619f6ea6a4eb5464efddb58fd45b1ebefcdc1a01d08b47986","39e5c9925b5a54b07433a4f18c61726f8bb131c012ca542eb24a8ac07200682a"],["d4263dfc3d2df923a0179a48966d30ce84e2515afc3dccc1b77907792ebcc60e","62dfaf07a0f78feb30e30d6295853ce189e127760ad6cf7fae164e122a208d54"],["48457524820fa65a4f8d35eb6930857c0032acc0a4a2de422233eeda897612c4","25a748ab367979d98733c38a1fa1c2e7dc6cc07db2d60a9ae7a76aaa49bd0f77"],["dfeeef1881101f2cb11644f3a2afdfc2045e19919152923f367a1767c11cceda","ecfb7056cf1de042f9420bab396793c0c390bde74b4bbdff16a83ae09a9a7517"],["6d7ef6b17543f8373c573f44e1f389835d89bcbc6062ced36c82df83b8fae859","cd450ec335438986dfefa10c57fea9bcc521a0959b2d80bbf74b190dca712d10"],["e75605d59102a5a2684500d3b991f2e3f3c88b93225547035af25af66e04541f","f5c54754a8f71ee540b9b48728473e314f729ac5308b06938360990e2bfad125"],["eb98660f4c4dfaa06a2be453d5020bc99a0c2e60abe388457dd43fefb1ed620c","6cb9a8876d9cb8520609af3add26cd20a0a7cd8a9411131ce85f44100099223e"],["13e87b027d8514d35939f2e6892b19922154596941888336dc3563e3b8dba942","fef5a3c68059a6dec5d624114bf1e91aac2b9da568d6abeb2570d55646b8adf1"],["ee163026e9fd6fe017c38f06a5be6fc125424b371ce2708e7bf4491691e5764a","1acb250f255dd61c43d94ccc670d0f58f49ae3fa15b96623e5430da0ad6c62b2"],["b268f5ef9ad51e4d78de3a750c2dc89b1e626d43505867999932e5db33af3d80","5f310d4b3c99b9ebb19f77d41c1dee018cf0d34fd4191614003e945a1216e423"],["ff07f3118a9df035e9fad85eb6c7bfe42b02f01ca99ceea3bf7ffdba93c4750d","438136d603e858a3a5c440c38eccbaddc1d2942114e2eddd4740d098ced1f0d8"],["8d8b9855c7c052a34146fd20ffb658bea4b9f69e0d825ebec16e8c3ce2b526a1","cdb559eedc2d79f926baf44fb84ea4d44bcf50fee51d7ceb30e2e7f463036758"],["52db0b5384dfbf05bfa9d472d7ae26dfe4b851ceca91b1eba54263180da32b63","c3b997d050ee5d423ebaf66a6db9f57b3180c902875679de924b69d84a7b375"],["e62f9490d3d51da6395efd24e80919cc7d0f29c3f3fa48c6fff543becbd43352","6d89ad7ba4876b0b22c2ca280c682862f342c8591f1daf5170e07bfd9ccafa7d"],["7f30ea2476b399b4957509c88f77d0191afa2ff5cb7b14fd6d8e7d65aaab1193","ca5ef7d4b231c94c3b15389a5f6311e9daff7bb67b103e9880ef4bff637acaec"],["5098ff1e1d9f14fb46a210fada6c903fef0fb7b4a1dd1d9ac60a0361800b7a00","9731141d81fc8f8084d37c6e7542006b3ee1b40d60dfe5362a5b132fd17ddc0"],["32b78c7de9ee512a72895be6b9cbefa6e2f3c4ccce445c96b9f2c81e2778ad58","ee1849f513df71e32efc3896ee28260c73bb80547ae2275ba497237794c8753c"],["e2cb74fddc8e9fbcd076eef2a7c72b0ce37d50f08269dfc074b581550547a4f7","d3aa2ed71c9dd2247a62df062736eb0baddea9e36122d2be8641abcb005cc4a4"],["8438447566d4d7bedadc299496ab357426009a35f235cb141be0d99cd10ae3a8","c4e1020916980a4da5d01ac5e6ad330734ef0d7906631c4f2390426b2edd791f"],["4162d488b89402039b584c6fc6c308870587d9c46f660b878ab65c82c711d67e","67163e903236289f776f22c25fb8a3afc1732f2b84b4e95dbda47ae5a0852649"],["3fad3fa84caf0f34f0f89bfd2dcf54fc175d767aec3e50684f3ba4a4bf5f683d","cd1bc7cb6cc407bb2f0ca647c718a730cf71872e7d0d2a53fa20efcdfe61826"],["674f2600a3007a00568c1a7ce05d0816c1fb84bf1370798f1c69532faeb1a86b","299d21f9413f33b3edf43b257004580b70db57da0b182259e09eecc69e0d38a5"],["d32f4da54ade74abb81b815ad1fb3b263d82d6c692714bcff87d29bd5ee9f08f","f9429e738b8e53b968e99016c059707782e14f4535359d582fc416910b3eea87"],["30e4e670435385556e593657135845d36fbb6931f72b08cb1ed954f1e3ce3ff6","462f9bce619898638499350113bbc9b10a878d35da70740dc695a559eb88db7b"],["be2062003c51cc3004682904330e4dee7f3dcd10b01e580bf1971b04d4cad297","62188bc49d61e5428573d48a74e1c655b1c61090905682a0d5558ed72dccb9bc"],["93144423ace3451ed29e0fb9ac2af211cb6e84a601df5993c419859fff5df04a","7c10dfb164c3425f5c71a3f9d7992038f1065224f72bb9d1d902a6d13037b47c"],["b015f8044f5fcbdcf21ca26d6c34fb8197829205c7b7d2a7cb66418c157b112c","ab8c1e086d04e813744a655b2df8d5f83b3cdc6faa3088c1d3aea1454e3a1d5f"],["d5e9e1da649d97d89e4868117a465a3a4f8a18de57a140d36b3f2af341a21b52","4cb04437f391ed73111a13cc1d4dd0db1693465c2240480d8955e8592f27447a"],["d3ae41047dd7ca065dbf8ed77b992439983005cd72e16d6f996a5316d36966bb","bd1aeb21ad22ebb22a10f0303417c6d964f8cdd7df0aca614b10dc14d125ac46"],["463e2763d885f958fc66cdd22800f0a487197d0a82e377b49f80af87c897b065","bfefacdb0e5d0fd7df3a311a94de062b26b80c61fbc97508b79992671ef7ca7f"],["7985fdfd127c0567c6f53ec1bb63ec3158e597c40bfe747c83cddfc910641917","603c12daf3d9862ef2b25fe1de289aed24ed291e0ec6708703a5bd567f32ed03"],["74a1ad6b5f76e39db2dd249410eac7f99e74c59cb83d2d0ed5ff1543da7703e9","cc6157ef18c9c63cd6193d83631bbea0093e0968942e8c33d5737fd790e0db08"],["30682a50703375f602d416664ba19b7fc9bab42c72747463a71d0896b22f6da3","553e04f6b018b4fa6c8f39e7f311d3176290d0e0f19ca73f17714d9977a22ff8"],["9e2158f0d7c0d5f26c3791efefa79597654e7a2b2464f52b1ee6c1347769ef57","712fcdd1b9053f09003a3481fa7762e9ffd7c8ef35a38509e2fbf2629008373"],["176e26989a43c9cfeba4029c202538c28172e566e3c4fce7322857f3be327d66","ed8cc9d04b29eb877d270b4878dc43c19aefd31f4eee09ee7b47834c1fa4b1c3"],["75d46efea3771e6e68abb89a13ad747ecf1892393dfc4f1b7004788c50374da8","9852390a99507679fd0b86fd2b39a868d7efc22151346e1a3ca4726586a6bed8"],["809a20c67d64900ffb698c4c825f6d5f2310fb0451c869345b7319f645605721","9e994980d9917e22b76b061927fa04143d096ccc54963e6a5ebfa5f3f8e286c1"],["1b38903a43f7f114ed4500b4eac7083fdefece1cf29c63528d563446f972c180","4036edc931a60ae889353f77fd53de4a2708b26b6f5da72ad3394119daf408f9"]]}}});var Ja=T(Xp=>{"use strict";var Hc=Xp,bn=Ya(),Dc=Pc(),K4=Wt(),$p=K4.assert;function jp(e){e.type==="short"?this.curve=new Dc.short(e):e.type==="edwards"?this.curve=new Dc.edwards(e):this.curve=new Dc.mont(e),this.g=this.curve.g,this.n=this.curve.n,this.hash=e.hash,$p(this.g.validate(),"Invalid curve"),$p(this.g.mul(this.n).isInfinity(),"Invalid curve, G*N != O")}Hc.PresetCurve=jp;function gn(e,t){Object.defineProperty(Hc,e,{configurable:!0,enumerable:!0,get:function(){var r=new jp(t);return Object.defineProperty(Hc,e,{configurable:!0,enumerable:!0,value:r}),r}})}gn("p192",{type:"short",prime:"p192",p:"ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff",a:"ffffffff ffffffff ffffffff fffffffe ffffffff fffffffc",b:"64210519 e59c80e7 0fa7e9ab 72243049 feb8deec c146b9b1",n:"ffffffff ffffffff ffffffff 99def836 146bc9b1 b4d22831",hash:bn.sha256,gRed:!1,g:["188da80e b03090f6 7cbf20eb 43a18800 f4ff0afd 82ff1012","07192b95 ffc8da78 631011ed 6b24cdd5 73f977a1 1e794811"]});gn("p224",{type:"short",prime:"p224",p:"ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001",a:"ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff fffffffe",b:"b4050a85 0c04b3ab f5413256 5044b0b7 d7bfd8ba 270b3943 2355ffb4",n:"ffffffff ffffffff ffffffff ffff16a2 e0b8f03e 13dd2945 5c5c2a3d",hash:bn.sha256,gRed:!1,g:["b70e0cbd 6bb4bf7f 321390b9 4a03c1d3 56c21122 343280d6 115c1d21","bd376388 b5f723fb 4c22dfe6 cd4375a0 5a074764 44d58199 85007e34"]});gn("p256",{type:"short",prime:null,p:"ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff ffffffff",a:"ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff fffffffc",b:"5ac635d8 aa3a93e7 b3ebbd55 769886bc 651d06b0 cc53b0f6 3bce3c3e 27d2604b",n:"ffffffff 00000000 ffffffff ffffffff bce6faad a7179e84 f3b9cac2 fc632551",hash:bn.sha256,gRed:!1,g:["6b17d1f2 e12c4247 f8bce6e5 63a440f2 77037d81 2deb33a0 f4a13945 d898c296","4fe342e2 fe1a7f9b 8ee7eb4a 7c0f9e16 2bce3357 6b315ece cbb64068 37bf51f5"]});gn("p384",{type:"short",prime:null,p:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe ffffffff 00000000 00000000 ffffffff",a:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe ffffffff 00000000 00000000 fffffffc",b:"b3312fa7 e23ee7e4 988e056b e3f82d19 181d9c6e fe814112 0314088f 5013875a c656398d 8a2ed19d 2a85c8ed d3ec2aef",n:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff c7634d81 f4372ddf 581a0db2 48b0a77a ecec196a ccc52973",hash:bn.sha384,gRed:!1,g:["aa87ca22 be8b0537 8eb1c71e f320ad74 6e1d3b62 8ba79b98 59f741e0 82542a38 5502f25d bf55296c 3a545e38 72760ab7","3617de4a 96262c6f 5d9e98bf 9292dc29 f8f41dbd 289a147c e9da3113 b5f0b8c0 0a60b1ce 1d7e819d 7a431d7c 90ea0e5f"]});gn("p521",{type:"short",prime:null,p:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff",a:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffc",b:"00000051 953eb961 8e1c9a1f 929a21a0 b68540ee a2da725b 99b315f3 b8b48991 8ef109e1 56193951 ec7e937b 1652c0bd 3bb1bf07 3573df88 3d2c34f1 ef451fd4 6b503f00",n:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffa 51868783 bf2f966b 7fcc0148 f709a5d0 3bb5c9b8 899c47ae bb6fb71e 91386409",hash:bn.sha512,gRed:!1,g:["000000c6 858e06b7 0404e9cd 9e3ecb66 2395b442 9c648139 053fb521 f828af60 6b4d3dba a14b5e77 efe75928 fe1dc127 a2ffa8de 3348b3c1 856a429b f97e7e31 c2e5bd66","00000118 39296a78 9a3bc004 5c8a5fb4 2c7d1bd9 98f54449 579b4468 17afbd17 273e662c 97ee7299 5ef42640 c550b901 3fad0761 353c7086 a272c240 88be9476 9fd16650"]});gn("curve25519",{type:"mont",prime:"p25519",p:"7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed",a:"76d06",b:"1",n:"1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed",hash:bn.sha256,gRed:!1,g:["9"]});gn("ed25519",{type:"edwards",prime:"p25519",p:"7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed",a:"-1",c:"1",d:"52036cee2b6ffe73 8cc740797779e898 00700a4d4141d8ab 75eb4dca135978a3",n:"1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed",hash:bn.sha256,gRed:!1,g:["216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a","6666666666666666666666666666666666666666666666666666666666666658"]});var Fc;try{Fc=zp()}catch{Fc=void 0}gn("secp256k1",{type:"short",prime:"k256",p:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f",a:"0",b:"7",n:"ffffffff ffffffff ffffffff fffffffe baaedce6 af48a03b bfd25e8c d0364141",h:"1",hash:bn.sha256,beta:"7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee",lambda:"5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72",basis:[{a:"3086d221a7d46bcde86c90e49284eb15",b:"-e4437ed6010e88286f547fa90abfe4c3"},{a:"114ca50f7a8e2f3f657c1108d9d44cfd8",b:"3086d221a7d46bcde86c90e49284eb15"}],gRed:!1,g:["79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798","483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8",Fc]})});var Zp=T((fR,Jp)=>{"use strict";var G4=Ya(),di=_c(),Yp=ln();function mn(e){if(!(this instanceof mn))return new mn(e);this.hash=e.hash,this.predResist=!!e.predResist,this.outLen=this.hash.outSize,this.minEntropy=e.minEntropy||this.hash.hmacStrength,this._reseed=null,this.reseedInterval=null,this.K=null,this.V=null;var t=di.toArray(e.entropy,e.entropyEnc||"hex"),r=di.toArray(e.nonce,e.nonceEnc||"hex"),n=di.toArray(e.pers,e.persEnc||"hex");Yp(t.length>=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits"),this._init(t,r,n)}Jp.exports=mn;mn.prototype._init=function(t,r,n){var i=t.concat(r).concat(n);this.K=new Array(this.outLen/8),this.V=new Array(this.outLen/8);for(var s=0;s=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits"),this._update(t.concat(n||[])),this._reseed=1};mn.prototype.generate=function(t,r,n,i){if(this._reseed>this.reseedInterval)throw new Error("Reseed is required");typeof r!="string"&&(i=n,n=r,r=null),n&&(n=di.toArray(n,i||"hex"),this._update(n));for(var s=[];s.length{"use strict";var W4=Er(),V4=Wt(),Kc=V4.assert;function Mt(e,t){this.ec=e,this.priv=null,this.pub=null,t.priv&&this._importPrivate(t.priv,t.privEnc),t.pub&&this._importPublic(t.pub,t.pubEnc)}Qp.exports=Mt;Mt.fromPublic=function(t,r,n){return r instanceof Mt?r:new Mt(t,{pub:r,pubEnc:n})};Mt.fromPrivate=function(t,r,n){return r instanceof Mt?r:new Mt(t,{priv:r,privEnc:n})};Mt.prototype.validate=function(){var t=this.getPublic();return t.isInfinity()?{result:!1,reason:"Invalid public key"}:t.validate()?t.mul(this.ec.curve.n).isInfinity()?{result:!0,reason:null}:{result:!1,reason:"Public key * N != O"}:{result:!1,reason:"Public key is not a point"}};Mt.prototype.getPublic=function(t,r){return typeof t=="string"&&(r=t,t=null),this.pub||(this.pub=this.ec.g.mul(this.priv)),r?this.pub.encode(r,t):this.pub};Mt.prototype.getPrivate=function(t){return t==="hex"?this.priv.toString(16,2):this.priv};Mt.prototype._importPrivate=function(t,r){this.priv=new W4(t,r||16),this.priv=this.priv.umod(this.ec.curve.n)};Mt.prototype._importPublic=function(t,r){if(t.x||t.y){this.ec.curve.type==="mont"?Kc(t.x,"Need x coordinate"):(this.ec.curve.type==="short"||this.ec.curve.type==="edwards")&&Kc(t.x&&t.y,"Need both x and y coordinate"),this.pub=this.ec.curve.point(t.x,t.y);return}this.pub=this.ec.curve.decodePoint(t,r)};Mt.prototype.derive=function(t){return t.validate()||Kc(t.validate(),"public point not validated"),t.mul(this.priv).getX()};Mt.prototype.sign=function(t,r,n){return this.ec.sign(t,this,r,n)};Mt.prototype.verify=function(t,r){return this.ec.verify(t,r,this)};Mt.prototype.inspect=function(){return""}});var n1=T((cR,r1)=>{"use strict";var Za=Er(),Vc=Wt(),z4=Vc.assert;function Qa(e,t){if(e instanceof Qa)return e;this._importDER(e,t)||(z4(e.r&&e.s,"Signature without r or s"),this.r=new Za(e.r,16),this.s=new Za(e.s,16),e.recoveryParam===void 0?this.recoveryParam=null:this.recoveryParam=e.recoveryParam)}r1.exports=Qa;function $4(){this.place=0}function Gc(e,t){var r=e[t.place++];if(!(r&128))return r;var n=r&15;if(n===0||n>4)return!1;for(var i=0,s=0,a=t.place;s>>=0;return i<=127?!1:(t.place=a,i)}function t1(e){for(var t=0,r=e.length-1;!e[t]&&!(e[t+1]&128)&&t>>3);for(e.push(r|128);--r;)e.push(t>>>(r<<3)&255);e.push(t)}Qa.prototype.toDER=function(t){var r=this.r.toArray(),n=this.s.toArray();for(r[0]&128&&(r=[0].concat(r)),n[0]&128&&(n=[0].concat(n)),r=t1(r),n=t1(n);!n[0]&&!(n[1]&128);)n=n.slice(1);var i=[2];Wc(i,r.length),i=i.concat(r),i.push(2),Wc(i,n.length);var s=i.concat(n),a=[48];return Wc(a,s.length),a=a.concat(s),Vc.encode(a,t)}});var a1=T((hR,o1)=>{"use strict";var pi=Er(),i1=Zp(),j4=Wt(),zc=Ja(),X4=Ic(),s1=j4.assert,$c=e1(),ef=n1();function er(e){if(!(this instanceof er))return new er(e);typeof e=="string"&&(s1(Object.prototype.hasOwnProperty.call(zc,e),"Unknown curve "+e),e=zc[e]),e instanceof zc.PresetCurve&&(e={curve:e}),this.curve=e.curve.curve,this.n=this.curve.n,this.nh=this.n.ushrn(1),this.g=this.curve.g,this.g=e.curve.g,this.g.precompute(e.curve.n.bitLength()+1),this.hash=e.hash||e.curve.hash}o1.exports=er;er.prototype.keyPair=function(t){return new $c(this,t)};er.prototype.keyFromPrivate=function(t,r){return $c.fromPrivate(this,t,r)};er.prototype.keyFromPublic=function(t,r){return $c.fromPublic(this,t,r)};er.prototype.genKeyPair=function(t){t||(t={});for(var r=new i1({hash:this.hash,pers:t.pers,persEnc:t.persEnc||"utf8",entropy:t.entropy||X4(this.hash.hmacStrength),entropyEnc:t.entropy&&t.entropyEnc||"utf8",nonce:this.n.toArray()}),n=this.n.byteLength(),i=this.n.sub(new pi(2));;){var s=new pi(r.generate(n));if(!(s.cmp(i)>0))return s.iaddn(1),this.keyFromPrivate(s)}};er.prototype._truncateToN=function(t,r){var n=t.byteLength()*8-this.n.bitLength();return n>0&&(t=t.ushrn(n)),!r&&t.cmp(this.n)>=0?t.sub(this.n):t};er.prototype.sign=function(t,r,n,i){typeof n=="object"&&(i=n,n=null),i||(i={}),r=this.keyFromPrivate(r,n),t=this._truncateToN(new pi(t,16));for(var s=this.n.byteLength(),a=r.getPrivate().toArray("be",s),u=t.toArray("be",s),l=new i1({hash:this.hash,entropy:a,nonce:u,pers:i.pers,persEnc:i.persEnc||"utf8"}),c=this.n.sub(new pi(1)),p=0;;p++){var w=i.k?i.k(p):new pi(l.generate(this.n.byteLength()));if(w=this._truncateToN(w,!0),!(w.cmpn(1)<=0||w.cmp(c)>=0)){var x=this.g.mul(w);if(!x.isInfinity()){var S=x.getX(),M=S.umod(this.n);if(M.cmpn(0)!==0){var O=w.invm(this.n).mul(M.mul(r.getPrivate()).iadd(t));if(O=O.umod(this.n),O.cmpn(0)!==0){var P=(x.getY().isOdd()?1:0)|(S.cmp(M)!==0?2:0);return i.canonical&&O.cmp(this.nh)>0&&(O=this.n.sub(O),P^=1),new ef({r:M,s:O,recoveryParam:P})}}}}}};er.prototype.verify=function(t,r,n,i){t=this._truncateToN(new pi(t,16)),n=this.keyFromPublic(n,i),r=new ef(r,"hex");var s=r.r,a=r.s;if(s.cmpn(1)<0||s.cmp(this.n)>=0||a.cmpn(1)<0||a.cmp(this.n)>=0)return!1;var u=a.invm(this.n),l=u.mul(t).umod(this.n),c=u.mul(s).umod(this.n),p;return this.curve._maxwellTrick?(p=this.g.jmulAdd(l,n.getPublic(),c),p.isInfinity()?!1:p.eqXToP(s)):(p=this.g.mulAdd(l,n.getPublic(),c),p.isInfinity()?!1:p.getX().umod(this.n).cmp(s)===0)};er.prototype.recoverPubKey=function(e,t,r,n){s1((3&r)===r,"The recovery param is more than two bits"),t=new ef(t,n);var i=this.n,s=new pi(e),a=t.r,u=t.s,l=r&1,c=r>>1;if(a.cmp(this.curve.p.umod(this.curve.n))>=0&&c)throw new Error("Unable to find sencond key candinate");c?a=this.curve.pointFromX(a.add(this.curve.n),l):a=this.curve.pointFromX(a,l);var p=t.r.invm(i),w=i.sub(s).mul(p).umod(i),x=u.mul(p).umod(i);return this.g.mulAdd(w,a,x)};er.prototype.getKeyRecoveryParam=function(e,t,r,n){if(t=new ef(t,n),t.recoveryParam!==null)return t.recoveryParam;for(var i=0;i<4;i++){var s;try{s=this.recoverPubKey(e,t,i)}catch{continue}if(s.eq(r))return i}throw new Error("Unable to find valid recovery factor")}});var h1=T((lR,c1)=>{"use strict";var wo=Wt(),u1=wo.assert,f1=wo.parseBytes,bs=wo.cachedProperty;function pt(e,t){this.eddsa=e,this._secret=f1(t.secret),e.isPoint(t.pub)?this._pub=t.pub:this._pubBytes=f1(t.pub)}pt.fromPublic=function(t,r){return r instanceof pt?r:new pt(t,{pub:r})};pt.fromSecret=function(t,r){return r instanceof pt?r:new pt(t,{secret:r})};pt.prototype.secret=function(){return this._secret};bs(pt,"pubBytes",function(){return this.eddsa.encodePoint(this.pub())});bs(pt,"pub",function(){return this._pubBytes?this.eddsa.decodePoint(this._pubBytes):this.eddsa.g.mul(this.priv())});bs(pt,"privBytes",function(){var t=this.eddsa,r=this.hash(),n=t.encodingLength-1,i=r.slice(0,t.encodingLength);return i[0]&=248,i[n]&=127,i[n]|=64,i});bs(pt,"priv",function(){return this.eddsa.decodeInt(this.privBytes())});bs(pt,"hash",function(){return this.eddsa.hash().update(this.secret()).digest()});bs(pt,"messagePrefix",function(){return this.hash().slice(this.eddsa.encodingLength)});pt.prototype.sign=function(t){return u1(this._secret,"KeyPair can only verify"),this.eddsa.sign(t,this)};pt.prototype.verify=function(t,r){return this.eddsa.verify(t,r,this)};pt.prototype.getSecret=function(t){return u1(this._secret,"KeyPair is public only"),wo.encode(this.secret(),t)};pt.prototype.getPublic=function(t){return wo.encode(this.pubBytes(),t)};c1.exports=pt});var d1=T((dR,l1)=>{"use strict";var Y4=Er(),tf=Wt(),J4=tf.assert,rf=tf.cachedProperty,Z4=tf.parseBytes;function vi(e,t){this.eddsa=e,typeof t!="object"&&(t=Z4(t)),Array.isArray(t)&&(t={R:t.slice(0,e.encodingLength),S:t.slice(e.encodingLength)}),J4(t.R&&t.S,"Signature without R or S"),e.isPoint(t.R)&&(this._R=t.R),t.S instanceof Y4&&(this._S=t.S),this._Rencoded=Array.isArray(t.R)?t.R:t.Rencoded,this._Sencoded=Array.isArray(t.S)?t.S:t.Sencoded}rf(vi,"S",function(){return this.eddsa.decodeInt(this.Sencoded())});rf(vi,"R",function(){return this.eddsa.decodePoint(this.Rencoded())});rf(vi,"Rencoded",function(){return this.eddsa.encodePoint(this.R())});rf(vi,"Sencoded",function(){return this.eddsa.encodeInt(this.S())});vi.prototype.toBytes=function(){return this.Rencoded().concat(this.Sencoded())};vi.prototype.toHex=function(){return tf.encode(this.toBytes(),"hex").toUpperCase()};l1.exports=vi});var m1=T((pR,g1)=>{"use strict";var Q4=Ya(),eE=Ja(),gs=Wt(),tE=gs.assert,v1=gs.parseBytes,b1=h1(),p1=d1();function Ut(e){if(tE(e==="ed25519","only tested with ed25519 so far"),!(this instanceof Ut))return new Ut(e);e=eE[e].curve,this.curve=e,this.g=e.g,this.g.precompute(e.n.bitLength()+1),this.pointClass=e.point().constructor,this.encodingLength=Math.ceil(e.n.bitLength()/8),this.hash=Q4.sha512}g1.exports=Ut;Ut.prototype.sign=function(t,r){t=v1(t);var n=this.keyFromSecret(r),i=this.hashInt(n.messagePrefix(),t),s=this.g.mul(i),a=this.encodePoint(s),u=this.hashInt(a,n.pubBytes(),t).mul(n.priv()),l=i.add(u).umod(this.curve.n);return this.makeSignature({R:s,S:l,Rencoded:a})};Ut.prototype.verify=function(t,r,n){t=v1(t),r=this.makeSignature(r);var i=this.keyFromPublic(n),s=this.hashInt(r.Rencoded(),i.pubBytes(),t),a=this.g.mul(r.S()),u=r.R().add(i.pub().mul(s));return u.eq(a)};Ut.prototype.hashInt=function(){for(var t=this.hash(),r=0;r{"use strict";var bi=y1;bi.version=$d().version;bi.utils=Wt();bi.rand=Ic();bi.curve=Pc();bi.curves=Ja();bi.ec=a1();bi.eddsa=m1()});var x1=T((bR,E1)=>{var yn=dc(),rE=Buffer.alloc(1,1),_1=Buffer.alloc(1,0);function nE(e,t,r,n,i){let s=Buffer.alloc(32,0),a=Buffer.alloc(32,1);s=yn("sha256",s).update(a).update(_1).update(t).update(e).update(i||"").digest(),a=yn("sha256",s).update(a).digest(),s=yn("sha256",s).update(a).update(rE).update(t).update(e).update(i||"").digest(),a=yn("sha256",s).update(a).digest(),a=yn("sha256",s).update(a).digest();let u=a;for(;!n(u)||!r(u);)s=yn("sha256",s).update(a).update(_1).digest(),a=yn("sha256",s).update(a).digest(),a=yn("sha256",s).update(a).digest(),u=a;return u}E1.exports=nE});var P1=T((gR,O1)=>{var iE=zd(),sE=w1().ec,jc=new sE("secp256k1"),oE=x1(),nf=Buffer.alloc(32,0),sf=Buffer.from("fffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141","hex"),S1=Buffer.from("fffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f","hex"),dr=jc.curve.n,I1=dr.shrn(1),af=jc.curve.g,ff="Expected Private",gi="Expected Point",uf="Expected Tweak",T1="Expected Hash",aE="Expected Signature",fE="Expected Extra Data (32 bytes)";function _o(e){return Buffer.isBuffer(e)&&e.length===32}function cf(e){return _o(e)?e.compare(sf)<0:!1}function wn(e){if(!Buffer.isBuffer(e)||e.length<33)return!1;let t=e[0],r=e.slice(1,33);if(r.compare(nf)===0||r.compare(S1)>=0)return!1;if((t===2||t===3)&&e.length===33){try{mi(e)}catch{return!1}return!0}let n=e.slice(33);return n.compare(nf)===0||n.compare(S1)>=0?!1:t===4&&e.length===65}function M1(e){return e[0]!==4}function uE(e){return wn(e)?M1(e):!1}function _n(e){return _o(e)?e.compare(nf)>0&&e.compare(sf)<0:!1}function cE(e){let t=e.slice(0,32),r=e.slice(32,64);return Buffer.isBuffer(e)&&e.length===64&&t.compare(sf)<0&&r.compare(sf)<0}function Eo(e,t){return e===void 0&&t!==void 0?M1(t):e===void 0?!0:e}function Vt(e){return new iE(e)}function of(e){return e.toArrayLike(Buffer,"be",32)}function mi(e){return jc.curve.decodePoint(e)}function ms(e,t){return Buffer.from(e._encode(t))}function hE(e,t,r){if(!wn(e))throw new TypeError(gi);if(!wn(t))throw new TypeError(gi);let n=mi(e),i=mi(t),s=n.add(i);if(s.isInfinity())return null;let a=Eo(r,e);return ms(s,a)}function lE(e,t,r){if(!wn(e))throw new TypeError(gi);if(!cf(t))throw new TypeError(uf);let n=Eo(r,e),i=mi(e);if(t.compare(nf)===0)return ms(i,n);let s=Vt(t),a=af.mul(s),u=i.add(a);return u.isInfinity()?null:ms(u,n)}function dE(e,t){if(!wn(e))throw new TypeError(gi);let r=mi(e);if(r.isInfinity())throw new TypeError(gi);let n=Eo(t,e);return ms(r,n)}function pE(e,t){if(!_n(e))throw new TypeError(ff);let r=Vt(e),n=af.mul(r);if(n.isInfinity())return null;let i=Eo(t);return ms(n,i)}function vE(e,t,r){if(!wn(e))throw new TypeError(gi);if(!cf(t))throw new TypeError(uf);let n=Eo(r,e),i=mi(e),s=Vt(t),a=i.mul(s);return a.isInfinity()?null:ms(a,n)}function bE(e,t){if(!_n(e))throw new TypeError(ff);if(!cf(t))throw new TypeError(uf);let r=Vt(e),n=Vt(t),i=of(r.add(n).umod(dr));return _n(i)?i:null}function gE(e,t){if(!_n(e))throw new TypeError(ff);if(!cf(t))throw new TypeError(uf);let r=Vt(e),n=Vt(t),i=of(r.sub(n).umod(dr));return _n(i)?i:null}function mE(e,t){return A1(e,t)}function yE(e,t,r){return A1(e,t,r)}function A1(e,t,r){if(!_o(e))throw new TypeError(T1);if(!_n(t))throw new TypeError(ff);if(r!==void 0&&!_o(r))throw new TypeError(fE);let n=Vt(t),i=Vt(e),s,a;oE(e,t,function(c){let p=Vt(c),w=af.mul(p);return!(w.isInfinity()||(s=w.x.umod(dr),s.isZero()===0)||(a=p.invm(dr).mul(i.add(n.mul(s))).umod(dr),a.isZero()===0))},_n,r),a.cmp(I1)>0&&(a=dr.sub(a));let l=Buffer.allocUnsafe(64);return of(s).copy(l,0),of(a).copy(l,32),l}function wE(e,t,r,n){if(!_o(e))throw new TypeError(T1);if(!wn(t))throw new TypeError(gi);if(!cE(r))throw new TypeError(aE);let i=mi(t),s=Vt(r.slice(0,32)),a=Vt(r.slice(32,64));if(n&&a.cmp(I1)>0||s.gtn(0)<=0||a.gtn(0)<=0)return!1;let u=Vt(e),l=a.invm(dr),c=u.mul(l).umod(dr),p=s.mul(l).umod(dr),w=af.mulAdd(c,i,p);return w.isInfinity()?!1:w.x.umod(dr).eq(s)}O1.exports={isPoint:wn,isPointCompressed:uE,isPrivate:_n,pointAdd:hE,pointAddScalar:lE,pointCompress:dE,pointFromScalar:pE,pointMultiply:vE,privateAdd:bE,privateSub:gE,sign:mE,signWithEntropy:yE,verify:wE}});var pr=T((mR,Xc)=>{"use strict";try{Xc.exports=Wd()}catch{Xc.exports=P1()}});var hf=T((yR,B1)=>{var xo={Array:function(e){return e!=null&&e.constructor===Array},Boolean:function(e){return typeof e=="boolean"},Function:function(e){return typeof e=="function"},Nil:function(e){return e==null},Number:function(e){return typeof e=="number"},Object:function(e){return typeof e=="object"},String:function(e){return typeof e=="string"},"":function(){return!0}};xo.Null=xo.Nil;for(Yc in xo)xo[Yc].toJSON=function(e){return e}.bind(null,Yc);var Yc;B1.exports=xo});var Qc=T((wR,N1)=>{var yi=hf();function R1(e){return e.name||e.toString().match(/function (.*?)\s*\(/)[1]}function Jc(e){return yi.Nil(e)?"":R1(e.constructor)}function _E(e){return yi.Function(e)?"":yi.String(e)?JSON.stringify(e):e&&yi.Object(e)?"":e}function Zc(e,t){Error.captureStackTrace&&Error.captureStackTrace(e,t)}function lf(e){return yi.Function(e)?e.toJSON?e.toJSON():R1(e):yi.Array(e)?"Array":e&&yi.Object(e)?"Object":e!==void 0?e:""}function k1(e,t,r){var n=_E(t);return"Expected "+lf(e)+", got"+(r!==""?" "+r:"")+(n!==""?" "+n:"")}function Vr(e,t,r){r=r||Jc(t),this.message=k1(e,t,r),Zc(this,Vr),this.__type=e,this.__value=t,this.__valueTypeName=r}Vr.prototype=Object.create(Error.prototype);Vr.prototype.constructor=Vr;function EE(e,t,r,n,i){var s='" of type ';return t==="key"&&(s='" with key type '),k1('property "'+lf(r)+s+lf(e),n,i)}function ys(e,t,r,n,i){e?(i=i||Jc(n),this.message=EE(e,r,t,n,i)):this.message='Unexpected property "'+t+'"',Zc(this,Vr),this.__label=r,this.__property=t,this.__type=e,this.__value=n,this.__valueTypeName=i}ys.prototype=Object.create(Error.prototype);ys.prototype.constructor=Vr;function xE(e,t){return new Vr(e,{},t)}function SE(e,t,r){return e instanceof ys?(t=t+"."+e.__property,e=new ys(e.__type,t,e.__label,e.__value,e.__valueTypeName)):e instanceof Vr&&(e=new ys(e.__type,t,r,e.__value,e.__valueTypeName)),Zc(e),e}N1.exports={TfTypeError:Vr,TfPropertyTypeError:ys,tfCustomError:xE,tfSubError:SE,tfJSON:lf,getValueTypeName:Jc}});var U1=T((_R,L1)=>{var nh=hf(),IE=Qc();function C1(e){return Buffer.isBuffer(e)}function q1(e){return typeof e=="string"&&/^([0-9a-f]{2})+$/i.test(e)}function df(e,t){var r=e.toJSON();function n(i){if(!e(i))return!1;if(i.length===t)return!0;throw IE.tfCustomError(r+"(Length: "+t+")",r+"(Length: "+i.length+")")}return n.toJSON=function(){return r},n}var TE=df.bind(null,nh.Array),ME=df.bind(null,C1),AE=df.bind(null,q1),OE=df.bind(null,nh.String);function PE(e,t,r){r=r||nh.Number;function n(i,s){return r(i,s)&&i>e&&i>24===e}function kE(e){return e<<16>>16===e}function NE(e){return(e|0)===e}function CE(e){return typeof e=="number"&&e>=-th&&e<=th&&Math.floor(e)===e}function qE(e){return(e&255)===e}function LE(e){return(e&65535)===e}function UE(e){return e>>>0===e}function DE(e){return typeof e=="number"&&e>=0&&e<=th&&Math.floor(e)===e}var rh={ArrayN:TE,Buffer:C1,BufferN:ME,Finite:BE,Hex:q1,HexN:AE,Int8:RE,Int16:kE,Int32:NE,Int53:CE,Range:PE,StringN:OE,UInt8:qE,UInt16:LE,UInt32:UE,UInt53:DE};for(eh in rh)rh[eh].toJSON=function(e){return e}.bind(null,eh);var eh;L1.exports=rh});var ft=T((ER,K1)=>{var Io=Qc(),_t=hf(),zr=Io.tfJSON,H1=Io.TfTypeError,F1=Io.TfPropertyTypeError,So=Io.tfSubError,HE=Io.getValueTypeName,$r={arrayOf:function(t,r){t=Pr(t),r=r||{};function n(i,s){return!_t.Array(i)||_t.Nil(i)||r.minLength!==void 0&&i.lengthr.maxLength||r.length!==void 0&&i.length!==r.length?!1:i.every(function(a,u){try{return kt(t,a,s)}catch(l){throw So(l,u)}})}return n.toJSON=function(){var i="["+zr(t)+"]";return r.length!==void 0?i+="{"+r.length+"}":(r.minLength!==void 0||r.maxLength!==void 0)&&(i+="{"+(r.minLength===void 0?0:r.minLength)+","+(r.maxLength===void 0?1/0:r.maxLength)+"}"),i},n},maybe:function e(t){t=Pr(t);function r(n,i){return _t.Nil(n)||t(n,i,e)}return r.toJSON=function(){return"?"+zr(t)},r},map:function(t,r){t=Pr(t),r&&(r=Pr(r));function n(i,s){if(!_t.Object(i)||_t.Nil(i))return!1;for(var a in i){try{r&&kt(r,a,s)}catch(l){throw So(l,a,"key")}try{var u=i[a];kt(t,u,s)}catch(l){throw So(l,a)}}return!0}return r?n.toJSON=function(){return"{"+zr(r)+": "+zr(t)+"}"}:n.toJSON=function(){return"{"+zr(t)+"}"},n},object:function(t){var r={};for(var n in t)r[n]=Pr(t[n]);function i(s,a){if(!_t.Object(s)||_t.Nil(s))return!1;var u;try{for(u in r){var l=r[u],c=s[u];kt(l,c,a)}}catch(p){throw So(p,u)}if(a){for(u in s)if(!r[u])throw new F1(void 0,u)}return!0}return i.toJSON=function(){return zr(r)},i},anyOf:function(){var t=[].slice.call(arguments).map(Pr);function r(n,i){return t.some(function(s){try{return kt(s,n,i)}catch{return!1}})}return r.toJSON=function(){return t.map(zr).join("|")},r},allOf:function(){var t=[].slice.call(arguments).map(Pr);function r(n,i){return t.every(function(s){try{return kt(s,n,i)}catch{return!1}})}return r.toJSON=function(){return t.map(zr).join(" & ")},r},quacksLike:function(t){function r(n){return t===HE(n)}return r.toJSON=function(){return t},r},tuple:function(){var t=[].slice.call(arguments).map(Pr);function r(n,i){return _t.Nil(n)||_t.Nil(n.length)||i&&n.length!==t.length?!1:t.every(function(s,a){try{return kt(s,n[a],i)}catch(u){throw So(u,a)}})}return r.toJSON=function(){return"("+t.map(zr).join(", ")+")"},r},value:function(t){function r(n){return n===t}return r.toJSON=function(){return t},r}};$r.oneOf=$r.anyOf;function Pr(e){if(_t.String(e))return e[0]==="?"?$r.maybe(e.slice(1)):_t[e]||$r.quacksLike(e);if(e&&_t.Object(e)){if(_t.Array(e)){if(e.length!==1)throw new TypeError("Expected compile() parameter of type Array of length 1");return $r.arrayOf(e[0])}return $r.object(e)}else if(_t.Function(e))return e;return $r.value(e)}function kt(e,t,r,n){if(_t.Function(e)){if(e(t,r))return!0;throw new H1(n||e,t)}return kt(Pr(e),t,r)}for(jr in _t)kt[jr]=_t[jr];var jr;for(jr in $r)kt[jr]=$r[jr];var D1=U1();for(jr in D1)kt[jr]=D1[jr];kt.compile=Pr;kt.TfTypeError=H1;kt.TfPropertyTypeError=F1;K1.exports=kt});var oh=T((xR,W1)=>{var ih=ci();function G1(e,t){if(t!==void 0&&e[0]!==t)throw new Error("Invalid network version");if(e.length===33)return{version:e[0],privateKey:e.slice(1,33),compressed:!1};if(e.length!==34)throw new Error("Invalid WIF length");if(e[33]!==1)throw new Error("Invalid compression flag");return{version:e[0],privateKey:e.slice(1,33),compressed:!0}}function sh(e,t,r){var n=new Buffer(r?34:33);return n.writeUInt8(e,0),t.copy(n,1),r&&(n[33]=1),n}function FE(e,t){return G1(ih.decode(e),t)}function KE(e,t,r){return typeof e=="number"?ih.encode(sh(e,t,r)):ih.encode(sh(e.version,e.privateKey,e.compressed))}W1.exports={decode:FE,decodeRaw:G1,encode:KE,encodeRaw:sh}});var j1=T(ws=>{"use strict";Object.defineProperty(ws,"__esModule",{value:!0});var ah=Md(),z1=ci(),Br=pr(),Et=ft(),GE=oh(),fh=Et.BufferN(32),WE=Et.compile({wif:Et.UInt8,bip32:{public:Et.UInt32,private:Et.UInt32}}),bf={messagePrefix:`Bitcoin Signed Message: +`,bech32:"bc",bip32:{public:76067358,private:76066276},pubKeyHash:0,scriptHash:5,wif:128},V1=2147483648,VE=Math.pow(2,31)-1;function zE(e){return Et.String(e)&&e.match(/^(m\/)?(\d+'?\/)*\d+'?$/)!==null}function $E(e){return Et.UInt32(e)&&e<=VE}var pf=class{constructor(t,r,n,i,s=0,a=0,u=0){this.__D=t,this.__Q=r,this.chainCode=n,this.network=i,this.__DEPTH=s,this.__INDEX=a,this.__PARENT_FINGERPRINT=u,Et(WE,i),this.lowR=!1}get depth(){return this.__DEPTH}get index(){return this.__INDEX}get parentFingerprint(){return this.__PARENT_FINGERPRINT}get publicKey(){return this.__Q===void 0&&(this.__Q=Br.pointFromScalar(this.__D,!0)),this.__Q}get privateKey(){return this.__D}get identifier(){return ah.hash160(this.publicKey)}get fingerprint(){return this.identifier.slice(0,4)}get compressed(){return!0}isNeutered(){return this.__D===void 0}neutered(){return vf(this.publicKey,this.chainCode,this.network,this.depth,this.index,this.parentFingerprint)}toBase58(){let t=this.network,r=this.isNeutered()?t.bip32.public:t.bip32.private,n=Buffer.allocUnsafe(78);return n.writeUInt32BE(r,0),n.writeUInt8(this.depth,4),n.writeUInt32BE(this.parentFingerprint,5),n.writeUInt32BE(this.index,9),this.chainCode.copy(n,13),this.isNeutered()?this.publicKey.copy(n,45):(n.writeUInt8(0,45),this.privateKey.copy(n,46)),z1.encode(n)}toWIF(){if(!this.privateKey)throw new TypeError("Missing private key");return GE.encode(this.network.wif,this.privateKey,!0)}derive(t){Et(Et.UInt32,t);let r=t>=V1,n=Buffer.allocUnsafe(37);if(r){if(this.isNeutered())throw new TypeError("Missing private key for hardened child key");n[0]=0,this.privateKey.copy(n,1),n.writeUInt32BE(t,33)}else this.publicKey.copy(n,0),n.writeUInt32BE(t,33);let i=ah.hmacSHA512(this.chainCode,n),s=i.slice(0,32),a=i.slice(32);if(!Br.isPrivate(s))return this.derive(t+1);let u;if(this.isNeutered()){let l=Br.pointAddScalar(this.publicKey,s,!0);if(l===null)return this.derive(t+1);u=vf(l,a,this.network,this.depth+1,t,this.fingerprint.readUInt32BE(0))}else{let l=Br.privateAdd(this.privateKey,s);if(l==null)return this.derive(t+1);u=uh(l,a,this.network,this.depth+1,t,this.fingerprint.readUInt32BE(0))}return u}deriveHardened(t){return Et($E,t),this.derive(t+V1)}derivePath(t){Et(zE,t);let r=t.split("/");if(r[0]==="m"){if(this.parentFingerprint)throw new TypeError("Expected master, got child");r=r.slice(1)}return r.reduce((n,i)=>{let s;return i.slice(-1)==="'"?(s=parseInt(i.slice(0,-1),10),n.deriveHardened(s)):(s=parseInt(i,10),n.derive(s))},this)}sign(t,r){if(!this.privateKey)throw new Error("Missing private key");if(r===void 0&&(r=this.lowR),r===!1)return Br.sign(t,this.privateKey);{let n=Br.sign(t,this.privateKey),i=Buffer.alloc(32,0),s=0;for(;n[0]>127;)s++,i.writeUIntLE(s,0,6),n=Br.signWithEntropy(t,this.privateKey,i);return n}}verify(t,r){return Br.verify(t,this.publicKey,r)}};function jE(e,t){let r=z1.decode(e);if(r.length!==78)throw new TypeError("Invalid buffer length");t=t||bf;let n=r.readUInt32BE(0);if(n!==t.bip32.private&&n!==t.bip32.public)throw new TypeError("Invalid network version");let i=r[4],s=r.readUInt32BE(5);if(i===0&&s!==0)throw new TypeError("Invalid parent fingerprint");let a=r.readUInt32BE(9);if(i===0&&a!==0)throw new TypeError("Invalid index");let u=r.slice(13,45),l;if(n===t.bip32.private){if(r.readUInt8(45)!==0)throw new TypeError("Invalid private key");let c=r.slice(46,78);l=uh(c,u,t,i,a,s)}else{let c=r.slice(45,78);l=vf(c,u,t,i,a,s)}return l}ws.fromBase58=jE;function $1(e,t,r){return uh(e,t,r)}ws.fromPrivateKey=$1;function uh(e,t,r,n,i,s){if(Et({privateKey:fh,chainCode:fh},{privateKey:e,chainCode:t}),r=r||bf,!Br.isPrivate(e))throw new TypeError("Private key not in range [1, n)");return new pf(e,void 0,t,r,n,i,s)}function XE(e,t,r){return vf(e,t,r)}ws.fromPublicKey=XE;function vf(e,t,r,n,i,s){if(Et({publicKey:Et.BufferN(33),chainCode:fh},{publicKey:e,chainCode:t}),r=r||bf,!Br.isPoint(e))throw new TypeError("Point is not on the curve");return new pf(void 0,e,t,r,n,i,s)}function YE(e,t){if(Et(Et.Buffer,e),e.length<16)throw new TypeError("Seed should be at least 128 bits");if(e.length>64)throw new TypeError("Seed should be at most 512 bits");t=t||bf;let r=ah.hmacSHA512(Buffer.from("Bitcoin seed","utf8"),e),n=r.slice(0,32),i=r.slice(32);return $1(n,i,t)}ws.fromSeed=YE});var X1=T(_s=>{"use strict";Object.defineProperty(_s,"__esModule",{value:!0});var gf=j1();_s.fromSeed=gf.fromSeed;_s.fromBase58=gf.fromBase58;_s.fromPublicKey=gf.fromPublicKey;_s.fromPrivateKey=gf.fromPrivateKey});var zt=T(To=>{"use strict";Object.defineProperty(To,"__esModule",{value:!0});To.bitcoin={messagePrefix:`Bitcoin Signed Message: +`,bech32:"bc",bip32:{public:76067358,private:76066276},pubKeyHash:0,scriptHash:5,wif:128};To.regtest={messagePrefix:`Bitcoin Signed Message: +`,bech32:"bcrt",bip32:{public:70617039,private:70615956},pubKeyHash:111,scriptHash:196,wif:239};To.testnet={messagePrefix:`Bitcoin Signed Message: +`,bech32:"tb",bip32:{public:70617039,private:70615956},pubKeyHash:111,scriptHash:196,wif:239}});var Y1=T(mf=>{"use strict";Object.defineProperty(mf,"__esModule",{value:!0});function JE(e,t,r){t=t||4,r=r===void 0?!0:r;let n=e.length;if(n===0)return 0;if(n>t)throw new TypeError("Script number overflow");if(r&&(e[n-1]&127)===0&&(n<=1||(e[n-2]&128)===0))throw new Error("Non-minimally encoded script number");if(n===5){let s=e.readUInt32LE(0),a=e.readUInt8(4);return a&128?-((a&-129)*4294967296+s):a*4294967296+s}let i=0;for(let s=0;s2147483647?5:e>8388607?4:e>32767?3:e>127?2:e>0?1:0}function QE(e){let t=Math.abs(e),r=ZE(t),n=Buffer.allocUnsafe(r),i=e<0;for(let s=0;s>=8;return n[r-1]&128?n.writeUInt8(i?128:0,r-1):i&&(n[r-1]|=128),n}mf.encode=QE});var vr=T(Je=>{"use strict";Object.defineProperty(Je,"__esModule",{value:!0});var Fe=ft(),ex=Math.pow(2,31)-1;function tx(e){return Fe.UInt32(e)&&e<=ex}Je.UInt31=tx;function J1(e){return Fe.String(e)&&!!e.match(/^(m\/)?(\d+'?\/)*\d+'?$/)}Je.BIP32Path=J1;J1.toJSON=()=>"BIP32 derivation path";function rx(e){return(Fe.Buffer(e.publicKey)||typeof e.getPublicKey=="function")&&typeof e.sign=="function"}Je.Signer=rx;var nx=21*1e14;function ix(e){return Fe.UInt53(e)&&e<=nx}Je.Satoshi=ix;Je.ECPoint=Fe.quacksLike("Point");Je.Network=Fe.compile({messagePrefix:Fe.oneOf(Fe.Buffer,Fe.String),bip32:{public:Fe.UInt32,private:Fe.UInt32},pubKeyHash:Fe.UInt8,scriptHash:Fe.UInt8,wif:Fe.UInt8});Je.Buffer256bit=Fe.BufferN(32);Je.Hash160bit=Fe.BufferN(20);Je.Hash256bit=Fe.BufferN(32);Je.Number=Fe.Number;Je.Array=Fe.Array;Je.Boolean=Fe.Boolean;Je.String=Fe.String;Je.Buffer=Fe.Buffer;Je.Hex=Fe.Hex;Je.maybe=Fe.maybe;Je.tuple=Fe.tuple;Je.UInt8=Fe.UInt8;Je.UInt32=Fe.UInt32;Je.Function=Fe.Function;Je.BufferN=Fe.BufferN;Je.Null=Fe.Null;Je.oneOf=Fe.oneOf});var ch=T((OR,Z1)=>{var sx=qt().Buffer;function ox(e){if(e.length<8||e.length>72||e[0]!==48||e[1]!==e.length-2||e[2]!==2)return!1;var t=e[3];if(t===0||5+t>=e.length||e[4+t]!==2)return!1;var r=e[5+t];return!(r===0||6+t+r!==e.length||e[4]&128||t>1&&e[4]===0&&!(e[5]&128)||e[t+6]&128||r>1&&e[t+6]===0&&!(e[t+7]&128))}function ax(e){if(e.length<8)throw new Error("DER sequence length is too short");if(e.length>72)throw new Error("DER sequence length is too long");if(e[0]!==48)throw new Error("Expected DER sequence");if(e[1]!==e.length-2)throw new Error("DER sequence length is invalid");if(e[2]!==2)throw new Error("Expected DER integer");var t=e[3];if(t===0)throw new Error("R length is zero");if(5+t>=e.length)throw new Error("R length is too long");if(e[4+t]!==2)throw new Error("Expected DER integer (2)");var r=e[5+t];if(r===0)throw new Error("S length is zero");if(6+t+r!==e.length)throw new Error("S length is invalid");if(e[4]&128)throw new Error("R value is negative");if(t>1&&e[4]===0&&!(e[5]&128))throw new Error("R value excessively padded");if(e[t+6]&128)throw new Error("S value is negative");if(r>1&&e[t+6]===0&&!(e[t+7]&128))throw new Error("S value excessively padded");return{r:e.slice(4,4+t),s:e.slice(6+t)}}function fx(e,t){var r=e.length,n=t.length;if(r===0)throw new Error("R length is zero");if(n===0)throw new Error("S length is zero");if(r>33)throw new Error("R length is too long");if(n>33)throw new Error("S length is too long");if(e[0]&128)throw new Error("R value is negative");if(t[0]&128)throw new Error("S value is negative");if(r>1&&e[0]===0&&!(e[1]&128))throw new Error("R value excessively padded");if(n>1&&t[0]===0&&!(t[1]&128))throw new Error("S value excessively padded");var i=sx.allocUnsafe(6+r+n);return i[0]=48,i[1]=i.length-2,i[2]=2,i[3]=e.length,e.copy(i,4),i[4+r]=2,i[5+r]=t.length,t.copy(i,6+r),i}Z1.exports={check:ox,decode:ax,encode:fx}});var iv=T(yf=>{"use strict";Object.defineProperty(yf,"__esModule",{value:!0});var Q1=vr(),nv=ch(),ux=ft(),ev=Buffer.alloc(1,0);function tv(e){let t=0;for(;e[t]===0;)++t;return t===e.length?ev:(e=e.slice(t),e[0]&128?Buffer.concat([ev,e],1+e.length):e)}function rv(e){e[0]===0&&(e=e.slice(1));let t=Buffer.alloc(32,0),r=Math.max(0,32-e.length);return e.copy(t,r),t}function cx(e){let t=e.readUInt8(e.length-1),r=t&-129;if(r<=0||r>=4)throw new Error("Invalid hashType "+t);let n=nv.decode(e.slice(0,-1)),i=rv(n.r),s=rv(n.s);return{signature:Buffer.concat([i,s],64),hashType:t}}yf.decode=cx;function hx(e,t){ux({signature:Q1.BufferN(64),hashType:Q1.UInt8},{signature:e,hashType:t});let r=t&-129;if(r<=0||r>=4)throw new Error("Invalid hashType "+t);let n=Buffer.allocUnsafe(1);n.writeUInt8(t,0);let i=tv(e.slice(0,32)),s=tv(e.slice(32,64));return Buffer.concat([nv.encode(i,s),n])}yf.encode=hx});var wf=T((BR,lx)=>{lx.exports={OP_FALSE:0,OP_0:0,OP_PUSHDATA1:76,OP_PUSHDATA2:77,OP_PUSHDATA4:78,OP_1NEGATE:79,OP_RESERVED:80,OP_TRUE:81,OP_1:81,OP_2:82,OP_3:83,OP_4:84,OP_5:85,OP_6:86,OP_7:87,OP_8:88,OP_9:89,OP_10:90,OP_11:91,OP_12:92,OP_13:93,OP_14:94,OP_15:95,OP_16:96,OP_NOP:97,OP_VER:98,OP_IF:99,OP_NOTIF:100,OP_VERIF:101,OP_VERNOTIF:102,OP_ELSE:103,OP_ENDIF:104,OP_VERIFY:105,OP_RETURN:106,OP_TOALTSTACK:107,OP_FROMALTSTACK:108,OP_2DROP:109,OP_2DUP:110,OP_3DUP:111,OP_2OVER:112,OP_2ROT:113,OP_2SWAP:114,OP_IFDUP:115,OP_DEPTH:116,OP_DROP:117,OP_DUP:118,OP_NIP:119,OP_OVER:120,OP_PICK:121,OP_ROLL:122,OP_ROT:123,OP_SWAP:124,OP_TUCK:125,OP_CAT:126,OP_SUBSTR:127,OP_LEFT:128,OP_RIGHT:129,OP_SIZE:130,OP_INVERT:131,OP_AND:132,OP_OR:133,OP_XOR:134,OP_EQUAL:135,OP_EQUALVERIFY:136,OP_RESERVED1:137,OP_RESERVED2:138,OP_1ADD:139,OP_1SUB:140,OP_2MUL:141,OP_2DIV:142,OP_NEGATE:143,OP_ABS:144,OP_NOT:145,OP_0NOTEQUAL:146,OP_ADD:147,OP_SUB:148,OP_MUL:149,OP_DIV:150,OP_MOD:151,OP_LSHIFT:152,OP_RSHIFT:153,OP_BOOLAND:154,OP_BOOLOR:155,OP_NUMEQUAL:156,OP_NUMEQUALVERIFY:157,OP_NUMNOTEQUAL:158,OP_LESSTHAN:159,OP_GREATERTHAN:160,OP_LESSTHANOREQUAL:161,OP_GREATERTHANOREQUAL:162,OP_MIN:163,OP_MAX:164,OP_WITHIN:165,OP_RIPEMD160:166,OP_SHA1:167,OP_SHA256:168,OP_HASH160:169,OP_HASH256:170,OP_CODESEPARATOR:171,OP_CHECKSIG:172,OP_CHECKSIGVERIFY:173,OP_CHECKMULTISIG:174,OP_CHECKMULTISIGVERIFY:175,OP_NOP1:176,OP_NOP2:177,OP_CHECKLOCKTIMEVERIFY:177,OP_NOP3:178,OP_CHECKSEQUENCEVERIFY:178,OP_NOP4:179,OP_NOP5:180,OP_NOP6:181,OP_NOP7:182,OP_NOP8:183,OP_NOP9:184,OP_NOP10:185,OP_PUBKEYHASH:253,OP_PUBKEY:254,OP_INVALIDOPCODE:255}});var av=T((RR,ov)=>{var En=wf();function sv(e){return ee.length)return null;n=e.readUInt8(t+1),i=2}else if(r===En.OP_PUSHDATA2){if(t+3>e.length)return null;n=e.readUInt16LE(t+1),i=3}else{if(t+5>e.length)return null;if(r!==En.OP_PUSHDATA4)throw new Error("Unexpected opcode");n=e.readUInt32LE(t+1),i=5}return{opcode:r,number:n,size:i}}ov.exports={encodingLength:sv,encode:dx,decode:px}});var lv=T((kR,hv)=>{var fv=wf(),cv={};for(hh in fv)uv=fv[hh],cv[uv]=hh;var uv,hh;hv.exports=cv});var ke=T(Ye=>{"use strict";Object.defineProperty(Ye,"__esModule",{value:!0});var dv=Y1(),vx=iv(),xn=vr(),bx=ch(),gx=pr(),lh=av(),Mo=ft();Ye.OPS=wf();var mx=lv(),pv=Ye.OPS.OP_RESERVED;function yx(e){return xn.Number(e)&&(e===Ye.OPS.OP_0||e>=Ye.OPS.OP_1&&e<=Ye.OPS.OP_16||e===Ye.OPS.OP_1NEGATE)}function wx(e){return xn.Buffer(e)||yx(e)}function vv(e){return xn.Array(e)&&e.every(wx)}Ye.isPushOnly=vv;function _f(e){if(e.length===0)return Ye.OPS.OP_0;if(e.length===1){if(e[0]>=1&&e[0]<=16)return pv+e[0];if(e[0]===129)return Ye.OPS.OP_1NEGATE}}function bv(e){return Buffer.isBuffer(e)}function _x(e){return xn.Array(e)}function Ef(e){return Buffer.isBuffer(e)}function gv(e){if(bv(e))return e;Mo(xn.Array,e);let t=e.reduce((i,s)=>Ef(s)?s.length===1&&_f(s)!==void 0?i+1:i+lh.encodingLength(s.length)+s.length:i+1,0),r=Buffer.allocUnsafe(t),n=0;if(e.forEach(i=>{if(Ef(i)){let s=_f(i);if(s!==void 0){r.writeUInt8(s,n),n+=1;return}n+=lh.encode(r,i.length,n),i.copy(r,n),n+=i.length}else r.writeUInt8(i,n),n+=1}),n!==r.length)throw new Error("Could not decode chunks");return r}Ye.compile=gv;function dh(e){if(_x(e))return e;Mo(xn.Buffer,e);let t=[],r=0;for(;rYe.OPS.OP_0&&n<=Ye.OPS.OP_PUSHDATA4){let i=lh.decode(e,r);if(i===null||(r+=i.size,r+i.number>e.length))return null;let s=e.slice(r,r+i.number);r+=i.number;let a=_f(s);a!==void 0?t.push(a):t.push(s)}else t.push(n),r+=1}return t}Ye.decompile=dh;function Ex(e){return bv(e)&&(e=dh(e)),e.map(t=>{if(Ef(t)){let r=_f(t);if(r===void 0)return t.toString("hex");t=r}return mx[t]}).join(" ")}Ye.toASM=Ex;function xx(e){return Mo(xn.String,e),gv(e.split(" ").map(t=>Ye.OPS[t]!==void 0?Ye.OPS[t]:(Mo(xn.Hex,t),Buffer.from(t,"hex"))))}Ye.fromASM=xx;function Sx(e){return e=dh(e),Mo(vv,e),e.map(t=>Ef(t)?t:t===Ye.OPS.OP_0?Buffer.allocUnsafe(0):dv.encode(t-pv))}Ye.toStack=Sx;function Ix(e){return gx.isPoint(e)}Ye.isCanonicalPubKey=Ix;function mv(e){let t=e&-129;return t>0&&t<4}Ye.isDefinedHashType=mv;function Tx(e){return!Buffer.isBuffer(e)||!mv(e[e.length-1])?!1:bx.check(e.slice(0,-1))}Ye.isCanonicalScriptSignature=Tx;Ye.number=dv;Ye.signature=vx});var Sn=T(xf=>{"use strict";Object.defineProperty(xf,"__esModule",{value:!0});function Mx(e,t,r){Object.defineProperty(e,t,{configurable:!0,enumerable:!0,get(){let n=r.call(this);return this[t]=n,n},set(n){Object.defineProperty(this,t,{configurable:!0,enumerable:!0,value:n,writable:!0})}})}xf.prop=Mx;function Ax(e){let t;return()=>(t!==void 0||(t=e()),t)}xf.value=Ax});var _v=T(ph=>{"use strict";Object.defineProperty(ph,"__esModule",{value:!0});var Ox=zt(),Sf=ke(),yv=Sn(),Xr=ft(),wv=Sf.OPS;function Px(e,t){return e.length!==t.length?!1:e.every((r,n)=>r.equals(t[n]))}function Bx(e,t){if(!e.data&&!e.output)throw new TypeError("Not enough data");t=Object.assign({validate:!0},t||{}),Xr({network:Xr.maybe(Xr.Object),output:Xr.maybe(Xr.Buffer),data:Xr.maybe(Xr.arrayOf(Xr.Buffer))},e);let n={name:"embed",network:e.network||Ox.bitcoin};if(yv.prop(n,"output",()=>{if(!!e.data)return Sf.compile([wv.OP_RETURN].concat(e.data))}),yv.prop(n,"data",()=>{if(!!e.output)return Sf.decompile(e.output).slice(1)}),t.validate&&e.output){let i=Sf.decompile(e.output);if(i[0]!==wv.OP_RETURN)throw new TypeError("Output is invalid");if(!i.slice(1).every(Xr.Buffer))throw new TypeError("Output is invalid");if(e.data&&!Px(e.data,n.data))throw new TypeError("Data mismatch")}return Object.assign(n,e)}ph.p2data=Bx});var Sv=T(vh=>{"use strict";Object.defineProperty(vh,"__esModule",{value:!0});var Rx=zt(),Es=ke(),In=Sn(),xs=Es.OPS,xt=ft(),Ev=pr(),If=xs.OP_RESERVED;function xv(e,t){return e.length!==t.length?!1:e.every((r,n)=>r.equals(t[n]))}function kx(e,t){if(!e.input&&!e.output&&!(e.pubkeys&&e.m!==void 0)&&!e.signatures)throw new TypeError("Not enough data");t=Object.assign({validate:!0},t||{});function r(l){return Es.isCanonicalScriptSignature(l)||(t.allowIncomplete&&l===xs.OP_0)!==void 0}xt({network:xt.maybe(xt.Object),m:xt.maybe(xt.Number),n:xt.maybe(xt.Number),output:xt.maybe(xt.Buffer),pubkeys:xt.maybe(xt.arrayOf(Ev.isPoint)),signatures:xt.maybe(xt.arrayOf(r)),input:xt.maybe(xt.Buffer)},e);let i={network:e.network||Rx.bitcoin},s=[],a=!1;function u(l){a||(a=!0,s=Es.decompile(l),i.m=s[0]-If,i.n=s[s.length-2]-If,i.pubkeys=s.slice(1,-2))}if(In.prop(i,"output",()=>{if(!!e.m&&!!i.n&&!!e.pubkeys)return Es.compile([].concat(If+e.m,e.pubkeys,If+i.n,xs.OP_CHECKMULTISIG))}),In.prop(i,"m",()=>{if(!!i.output)return u(i.output),i.m}),In.prop(i,"n",()=>{if(!!i.pubkeys)return i.pubkeys.length}),In.prop(i,"pubkeys",()=>{if(!!e.output)return u(e.output),i.pubkeys}),In.prop(i,"signatures",()=>{if(!!e.input)return Es.decompile(e.input).slice(1)}),In.prop(i,"input",()=>{if(!!e.signatures)return Es.compile([xs.OP_0].concat(e.signatures))}),In.prop(i,"witness",()=>{if(!!i.input)return[]}),In.prop(i,"name",()=>{if(!(!i.m||!i.n))return`p2ms(${i.m} of ${i.n})`}),t.validate){if(e.output){if(u(e.output),!xt.Number(s[0]))throw new TypeError("Output is invalid");if(!xt.Number(s[s.length-2]))throw new TypeError("Output is invalid");if(s[s.length-1]!==xs.OP_CHECKMULTISIG)throw new TypeError("Output is invalid");if(i.m<=0||i.n>16||i.m>i.n||i.n!==s.length-3)throw new TypeError("Output is invalid");if(!i.pubkeys.every(l=>Ev.isPoint(l)))throw new TypeError("Output is invalid");if(e.m!==void 0&&e.m!==i.m)throw new TypeError("m mismatch");if(e.n!==void 0&&e.n!==i.n)throw new TypeError("n mismatch");if(e.pubkeys&&!xv(e.pubkeys,i.pubkeys))throw new TypeError("Pubkeys mismatch")}if(e.pubkeys){if(e.n!==void 0&&e.n!==e.pubkeys.length)throw new TypeError("Pubkey count mismatch");if(i.n=e.pubkeys.length,i.ni.m)throw new TypeError("Too many signatures provided")}if(e.input){if(e.input[0]!==xs.OP_0)throw new TypeError("Input is invalid");if(i.signatures.length===0||!i.signatures.every(r))throw new TypeError("Input has invalid signature(s)");if(e.signatures&&!xv(e.signatures,i.signatures))throw new TypeError("Signature mismatch");if(e.m!==void 0&&e.m!==e.signatures.length)throw new TypeError("Signature count mismatch")}}return Object.assign(i,e)}vh.p2ms=kx});var Mv=T(bh=>{"use strict";Object.defineProperty(bh,"__esModule",{value:!0});var Nx=zt(),Is=ke(),Ss=Sn(),Yr=ft(),Iv=Is.OPS,Tv=pr();function Cx(e,t){if(!e.input&&!e.output&&!e.pubkey&&!e.input&&!e.signature)throw new TypeError("Not enough data");t=Object.assign({validate:!0},t||{}),Yr({network:Yr.maybe(Yr.Object),output:Yr.maybe(Yr.Buffer),pubkey:Yr.maybe(Tv.isPoint),signature:Yr.maybe(Is.isCanonicalScriptSignature),input:Yr.maybe(Yr.Buffer)},e);let r=Ss.value(()=>Is.decompile(e.input)),i={name:"p2pk",network:e.network||Nx.bitcoin};if(Ss.prop(i,"output",()=>{if(!!e.pubkey)return Is.compile([e.pubkey,Iv.OP_CHECKSIG])}),Ss.prop(i,"pubkey",()=>{if(!!e.output)return e.output.slice(1,-1)}),Ss.prop(i,"signature",()=>{if(!!e.input)return r()[0]}),Ss.prop(i,"input",()=>{if(!!e.signature)return Is.compile([e.signature])}),Ss.prop(i,"witness",()=>{if(!!i.input)return[]}),t.validate){if(e.output){if(e.output[e.output.length-1]!==Iv.OP_CHECKSIG)throw new TypeError("Output is invalid");if(!Tv.isPoint(i.pubkey))throw new TypeError("Output pubkey is invalid");if(e.pubkey&&!e.pubkey.equals(i.pubkey))throw new TypeError("Pubkey mismatch")}if(e.signature&&e.input&&!e.input.equals(i.input))throw new TypeError("Signature mismatch");if(e.input){if(r().length!==1)throw new TypeError("Input is invalid");if(!Is.isCanonicalScriptSignature(i.signature))throw new TypeError("Input has invalid signature")}}return Object.assign(i,e)}bh.p2pk=Cx});var Rr=T(wi=>{"use strict";Object.defineProperty(wi,"__esModule",{value:!0});var Tf=ka();function Av(e){try{return Tf("rmd160").update(e).digest()}catch{return Tf("ripemd160").update(e).digest()}}wi.ripemd160=Av;function qx(e){return Tf("sha1").update(e).digest()}wi.sha1=qx;function Mf(e){return Tf("sha256").update(e).digest()}wi.sha256=Mf;function Lx(e){return Av(Mf(e))}wi.hash160=Lx;function Ux(e){return Mf(Mf(e))}wi.hash256=Ux});var Bv=T(mh=>{"use strict";Object.defineProperty(mh,"__esModule",{value:!0});var gh=Rr(),Dx=zt(),Ts=ke(),Jr=Sn(),$t=ft(),Tn=Ts.OPS,Ov=pr(),Pv=ci();function Hx(e,t){if(!e.address&&!e.hash&&!e.output&&!e.pubkey&&!e.input)throw new TypeError("Not enough data");t=Object.assign({validate:!0},t||{}),$t({network:$t.maybe($t.Object),address:$t.maybe($t.String),hash:$t.maybe($t.BufferN(20)),output:$t.maybe($t.BufferN(25)),pubkey:$t.maybe(Ov.isPoint),signature:$t.maybe(Ts.isCanonicalScriptSignature),input:$t.maybe($t.Buffer)},e);let r=Jr.value(()=>{let a=Pv.decode(e.address),u=a.readUInt8(0),l=a.slice(1);return{version:u,hash:l}}),n=Jr.value(()=>Ts.decompile(e.input)),i=e.network||Dx.bitcoin,s={name:"p2pkh",network:i};if(Jr.prop(s,"address",()=>{if(!s.hash)return;let a=Buffer.allocUnsafe(21);return a.writeUInt8(i.pubKeyHash,0),s.hash.copy(a,1),Pv.encode(a)}),Jr.prop(s,"hash",()=>{if(e.output)return e.output.slice(3,23);if(e.address)return r().hash;if(e.pubkey||s.pubkey)return gh.hash160(e.pubkey||s.pubkey)}),Jr.prop(s,"output",()=>{if(!!s.hash)return Ts.compile([Tn.OP_DUP,Tn.OP_HASH160,s.hash,Tn.OP_EQUALVERIFY,Tn.OP_CHECKSIG])}),Jr.prop(s,"pubkey",()=>{if(!!e.input)return n()[1]}),Jr.prop(s,"signature",()=>{if(!!e.input)return n()[0]}),Jr.prop(s,"input",()=>{if(!!e.pubkey&&!!e.signature)return Ts.compile([e.signature,e.pubkey])}),Jr.prop(s,"witness",()=>{if(!!s.input)return[]}),t.validate){let a=Buffer.from([]);if(e.address){if(r().version!==i.pubKeyHash)throw new TypeError("Invalid version or Network mismatch");if(r().hash.length!==20)throw new TypeError("Invalid address");a=r().hash}if(e.hash){if(a.length>0&&!a.equals(e.hash))throw new TypeError("Hash mismatch");a=e.hash}if(e.output){if(e.output.length!==25||e.output[0]!==Tn.OP_DUP||e.output[1]!==Tn.OP_HASH160||e.output[2]!==20||e.output[23]!==Tn.OP_EQUALVERIFY||e.output[24]!==Tn.OP_CHECKSIG)throw new TypeError("Output is invalid");let u=e.output.slice(3,23);if(a.length>0&&!a.equals(u))throw new TypeError("Hash mismatch");a=u}if(e.pubkey){let u=gh.hash160(e.pubkey);if(a.length>0&&!a.equals(u))throw new TypeError("Hash mismatch");a=u}if(e.input){let u=n();if(u.length!==2)throw new TypeError("Input is invalid");if(!Ts.isCanonicalScriptSignature(u[0]))throw new TypeError("Input has invalid signature");if(!Ov.isPoint(u[1]))throw new TypeError("Input has invalid pubkey");if(e.signature&&!e.signature.equals(u[0]))throw new TypeError("Signature mismatch");if(e.pubkey&&!e.pubkey.equals(u[1]))throw new TypeError("Pubkey mismatch");let l=gh.hash160(u[1]);if(a.length>0&&!a.equals(l))throw new TypeError("Hash mismatch")}}return Object.assign(s,e)}mh.p2pkh=Hx});var Nv=T(yh=>{"use strict";Object.defineProperty(yh,"__esModule",{value:!0});var Rv=Rr(),Fx=zt(),Zr=ke(),kr=Sn(),et=ft(),Af=Zr.OPS,kv=ci();function Kx(e,t){return e.length!==t.length?!1:e.every((r,n)=>r.equals(t[n]))}function Gx(e,t){if(!e.address&&!e.hash&&!e.output&&!e.redeem&&!e.input)throw new TypeError("Not enough data");t=Object.assign({validate:!0},t||{}),et({network:et.maybe(et.Object),address:et.maybe(et.String),hash:et.maybe(et.BufferN(20)),output:et.maybe(et.BufferN(23)),redeem:et.maybe({network:et.maybe(et.Object),output:et.maybe(et.Buffer),input:et.maybe(et.Buffer),witness:et.maybe(et.arrayOf(et.Buffer))}),input:et.maybe(et.Buffer),witness:et.maybe(et.arrayOf(et.Buffer))},e);let r=e.network;r||(r=e.redeem&&e.redeem.network||Fx.bitcoin);let n={network:r},i=kr.value(()=>{let u=kv.decode(e.address),l=u.readUInt8(0),c=u.slice(1);return{version:l,hash:c}}),s=kr.value(()=>Zr.decompile(e.input)),a=kr.value(()=>{let u=s();return{network:r,output:u[u.length-1],input:Zr.compile(u.slice(0,-1)),witness:e.witness||[]}});if(kr.prop(n,"address",()=>{if(!n.hash)return;let u=Buffer.allocUnsafe(21);return u.writeUInt8(n.network.scriptHash,0),n.hash.copy(u,1),kv.encode(u)}),kr.prop(n,"hash",()=>{if(e.output)return e.output.slice(2,22);if(e.address)return i().hash;if(n.redeem&&n.redeem.output)return Rv.hash160(n.redeem.output)}),kr.prop(n,"output",()=>{if(!!n.hash)return Zr.compile([Af.OP_HASH160,n.hash,Af.OP_EQUAL])}),kr.prop(n,"redeem",()=>{if(!!e.input)return a()}),kr.prop(n,"input",()=>{if(!(!e.redeem||!e.redeem.input||!e.redeem.output))return Zr.compile([].concat(Zr.decompile(e.redeem.input),e.redeem.output))}),kr.prop(n,"witness",()=>{if(n.redeem&&n.redeem.witness)return n.redeem.witness;if(n.input)return[]}),kr.prop(n,"name",()=>{let u=["p2sh"];return n.redeem!==void 0&&u.push(n.redeem.name),u.join("-")}),t.validate){let u=Buffer.from([]);if(e.address){if(i().version!==r.scriptHash)throw new TypeError("Invalid version or Network mismatch");if(i().hash.length!==20)throw new TypeError("Invalid address");u=i().hash}if(e.hash){if(u.length>0&&!u.equals(e.hash))throw new TypeError("Hash mismatch");u=e.hash}if(e.output){if(e.output.length!==23||e.output[0]!==Af.OP_HASH160||e.output[1]!==20||e.output[22]!==Af.OP_EQUAL)throw new TypeError("Output is invalid");let c=e.output.slice(2,22);if(u.length>0&&!u.equals(c))throw new TypeError("Hash mismatch");u=c}let l=c=>{if(c.output){let p=Zr.decompile(c.output);if(!p||p.length<1)throw new TypeError("Redeem.output too short");let w=Rv.hash160(c.output);if(u.length>0&&!u.equals(w))throw new TypeError("Hash mismatch");u=w}if(c.input){let p=c.input.length>0,w=c.witness&&c.witness.length>0;if(!p&&!w)throw new TypeError("Empty input");if(p&&w)throw new TypeError("Input and witness provided");if(p){let x=Zr.decompile(c.input);if(!Zr.isPushOnly(x))throw new TypeError("Non push-only scriptSig")}}};if(e.input){let c=s();if(!c||c.length<1)throw new TypeError("Input too short");if(!Buffer.isBuffer(a().output))throw new TypeError("Input is invalid");l(a())}if(e.redeem){if(e.redeem.network&&e.redeem.network!==r)throw new TypeError("Network mismatch");if(e.input){let c=a();if(e.redeem.output&&!e.redeem.output.equals(c.output))throw new TypeError("Redeem.output mismatch");if(e.redeem.input&&!e.redeem.input.equals(c.input))throw new TypeError("Redeem.input mismatch")}l(e.redeem)}if(e.witness&&e.redeem&&e.redeem.witness&&!Kx(e.redeem.witness,e.witness))throw new TypeError("Witness and redeem.witness mismatch")}return Object.assign(n,e)}yh.p2sh=Gx});var Rf=T((KR,Lv)=>{"use strict";var Pf="qpzry9x8gf2tvdw0s3jn54khce6mua7l",wh={};for(Ao=0;Ao>25;return(e&33554431)<<5^-(t>>0&1)&996825010^-(t>>1&1)&642813549^-(t>>2&1)&513874426^-(t>>3&1)&1027748829^-(t>>4&1)&705979059}function Cv(e){for(var t=1,r=0;r126)return"Invalid prefix ("+e+")";t=Ms(t)^n>>5}for(t=Ms(t),r=0;rr)throw new TypeError("Exceeds length limit");e=e.toLowerCase();var n=Cv(e);if(typeof n=="string")throw new Error(n);for(var i=e+"1",s=0;s>5!==0)throw new Error("Non 5-bit word");n=Ms(n)^a,i+=Pf.charAt(a)}for(s=0;s<6;++s)n=Ms(n);for(n^=1,s=0;s<6;++s){var u=n>>(5-s)*5&31;i+=Pf.charAt(u)}return i}function qv(e,t){if(t=t||90,e.length<8)return e+" too short";if(e.length>t)return"Exceeds length limit";var r=e.toLowerCase(),n=e.toUpperCase();if(e!==r&&e!==n)return"Mixed-case string "+e;e=r;var i=e.lastIndexOf("1");if(i===-1)return"No separator character for "+e;if(i===0)return"Missing prefix for "+e;var s=e.slice(0,i),a=e.slice(i+1);if(a.length<6)return"Data too short";var u=Cv(s);if(typeof u=="string")return u;for(var l=[],c=0;c=a.length)&&l.push(w)}return u!==1?"Invalid checksum for "+e:{prefix:s,words:l}}function Vx(){var e=qv.apply(null,arguments);if(typeof e=="object")return e}function zx(e){var t=qv.apply(null,arguments);if(typeof t=="object")return t;throw new Error(t)}function Bf(e,t,r,n){for(var i=0,s=0,a=(1<=r;)s-=r,u.push(i>>s&a);if(n)s>0&&u.push(i<=t)return"Excess padding";if(i<{"use strict";Object.defineProperty(xh,"__esModule",{value:!0});var _h=Rr(),Jx=zt(),Nf=ke(),Mn=Sn(),At=ft(),Uv=Nf.OPS,Eh=pr(),kf=Rf(),Zx=Buffer.alloc(0);function Qx(e,t){if(!e.address&&!e.hash&&!e.output&&!e.pubkey&&!e.witness)throw new TypeError("Not enough data");t=Object.assign({validate:!0},t||{}),At({address:At.maybe(At.String),hash:At.maybe(At.BufferN(20)),input:At.maybe(At.BufferN(0)),network:At.maybe(At.Object),output:At.maybe(At.BufferN(22)),pubkey:At.maybe(Eh.isPoint),signature:At.maybe(Nf.isCanonicalScriptSignature),witness:At.maybe(At.arrayOf(At.Buffer))},e);let r=Mn.value(()=>{let s=kf.decode(e.address),a=s.words.shift(),u=kf.fromWords(s.words);return{version:a,prefix:s.prefix,data:Buffer.from(u)}}),n=e.network||Jx.bitcoin,i={name:"p2wpkh",network:n};if(Mn.prop(i,"address",()=>{if(!i.hash)return;let s=kf.toWords(i.hash);return s.unshift(0),kf.encode(n.bech32,s)}),Mn.prop(i,"hash",()=>{if(e.output)return e.output.slice(2,22);if(e.address)return r().data;if(e.pubkey||i.pubkey)return _h.hash160(e.pubkey||i.pubkey)}),Mn.prop(i,"output",()=>{if(!!i.hash)return Nf.compile([Uv.OP_0,i.hash])}),Mn.prop(i,"pubkey",()=>{if(e.pubkey)return e.pubkey;if(!!e.witness)return e.witness[1]}),Mn.prop(i,"signature",()=>{if(!!e.witness)return e.witness[0]}),Mn.prop(i,"input",()=>{if(!!i.witness)return Zx}),Mn.prop(i,"witness",()=>{if(!!e.pubkey&&!!e.signature)return[e.signature,e.pubkey]}),t.validate){let s=Buffer.from([]);if(e.address){if(n&&n.bech32!==r().prefix)throw new TypeError("Invalid prefix or Network mismatch");if(r().version!==0)throw new TypeError("Invalid address version");if(r().data.length!==20)throw new TypeError("Invalid address data");s=r().data}if(e.hash){if(s.length>0&&!s.equals(e.hash))throw new TypeError("Hash mismatch");s=e.hash}if(e.output){if(e.output.length!==22||e.output[0]!==Uv.OP_0||e.output[1]!==20)throw new TypeError("Output is invalid");if(s.length>0&&!s.equals(e.output.slice(2)))throw new TypeError("Hash mismatch");s=e.output.slice(2)}if(e.pubkey){let a=_h.hash160(e.pubkey);if(s.length>0&&!s.equals(a))throw new TypeError("Hash mismatch");if(s=a,!Eh.isPoint(e.pubkey)||e.pubkey.length!==33)throw new TypeError("Invalid pubkey for p2wpkh")}if(e.witness){if(e.witness.length!==2)throw new TypeError("Witness is invalid");if(!Nf.isCanonicalScriptSignature(e.witness[0]))throw new TypeError("Witness has invalid signature");if(!Eh.isPoint(e.witness[1])||e.witness[1].length!==33)throw new TypeError("Witness has invalid pubkey");if(e.signature&&!e.signature.equals(e.witness[0]))throw new TypeError("Signature mismatch");if(e.pubkey&&!e.pubkey.equals(e.witness[1]))throw new TypeError("Pubkey mismatch");let a=_h.hash160(e.witness[1]);if(s.length>0&&!s.equals(a))throw new TypeError("Hash mismatch")}}return Object.assign(i,e)}xh.p2wpkh=Qx});var Kv=T(Ih=>{"use strict";Object.defineProperty(Ih,"__esModule",{value:!0});var Hv=Rr(),e5=zt(),An=ke(),Qr=Sn(),tt=ft(),Fv=An.OPS,t5=pr(),Cf=Rf(),Sh=Buffer.alloc(0);function r5(e,t){return e.length!==t.length?!1:e.every((r,n)=>r.equals(t[n]))}function qf(e){return!!(Buffer.isBuffer(e)&&e.length===65&&e[0]===4&&t5.isPoint(e))}function n5(e,t){if(!e.address&&!e.hash&&!e.output&&!e.redeem&&!e.witness)throw new TypeError("Not enough data");t=Object.assign({validate:!0},t||{}),tt({network:tt.maybe(tt.Object),address:tt.maybe(tt.String),hash:tt.maybe(tt.BufferN(32)),output:tt.maybe(tt.BufferN(34)),redeem:tt.maybe({input:tt.maybe(tt.Buffer),network:tt.maybe(tt.Object),output:tt.maybe(tt.Buffer),witness:tt.maybe(tt.arrayOf(tt.Buffer))}),input:tt.maybe(tt.BufferN(0)),witness:tt.maybe(tt.arrayOf(tt.Buffer))},e);let r=Qr.value(()=>{let a=Cf.decode(e.address),u=a.words.shift(),l=Cf.fromWords(a.words);return{version:u,prefix:a.prefix,data:Buffer.from(l)}}),n=Qr.value(()=>An.decompile(e.redeem.input)),i=e.network;i||(i=e.redeem&&e.redeem.network||e5.bitcoin);let s={network:i};if(Qr.prop(s,"address",()=>{if(!s.hash)return;let a=Cf.toWords(s.hash);return a.unshift(0),Cf.encode(i.bech32,a)}),Qr.prop(s,"hash",()=>{if(e.output)return e.output.slice(2);if(e.address)return r().data;if(s.redeem&&s.redeem.output)return Hv.sha256(s.redeem.output)}),Qr.prop(s,"output",()=>{if(!!s.hash)return An.compile([Fv.OP_0,s.hash])}),Qr.prop(s,"redeem",()=>{if(!!e.witness)return{output:e.witness[e.witness.length-1],input:Sh,witness:e.witness.slice(0,-1)}}),Qr.prop(s,"input",()=>{if(!!s.witness)return Sh}),Qr.prop(s,"witness",()=>{if(e.redeem&&e.redeem.input&&e.redeem.input.length>0&&e.redeem.output&&e.redeem.output.length>0){let a=An.toStack(n());return s.redeem=Object.assign({witness:a},e.redeem),s.redeem.input=Sh,[].concat(a,e.redeem.output)}if(!!e.redeem&&!!e.redeem.output&&!!e.redeem.witness)return[].concat(e.redeem.witness,e.redeem.output)}),Qr.prop(s,"name",()=>{let a=["p2wsh"];return s.redeem!==void 0&&a.push(s.redeem.name),a.join("-")}),t.validate){let a=Buffer.from([]);if(e.address){if(r().prefix!==i.bech32)throw new TypeError("Invalid prefix or Network mismatch");if(r().version!==0)throw new TypeError("Invalid address version");if(r().data.length!==32)throw new TypeError("Invalid address data");a=r().data}if(e.hash){if(a.length>0&&!a.equals(e.hash))throw new TypeError("Hash mismatch");a=e.hash}if(e.output){if(e.output.length!==34||e.output[0]!==Fv.OP_0||e.output[1]!==32)throw new TypeError("Output is invalid");let u=e.output.slice(2);if(a.length>0&&!a.equals(u))throw new TypeError("Hash mismatch");a=u}if(e.redeem){if(e.redeem.network&&e.redeem.network!==i)throw new TypeError("Network mismatch");if(e.redeem.input&&e.redeem.input.length>0&&e.redeem.witness&&e.redeem.witness.length>0)throw new TypeError("Ambiguous witness source");if(e.redeem.output){if(An.decompile(e.redeem.output).length===0)throw new TypeError("Redeem.output is invalid");let u=Hv.sha256(e.redeem.output);if(a.length>0&&!a.equals(u))throw new TypeError("Hash mismatch");a=u}if(e.redeem.input&&!An.isPushOnly(n()))throw new TypeError("Non push-only scriptSig");if(e.witness&&e.redeem.witness&&!r5(e.witness,e.redeem.witness))throw new TypeError("Witness and redeem.witness mismatch");if(e.redeem.input&&n().some(qf)||e.redeem.output&&(An.decompile(e.redeem.output)||[]).some(qf))throw new TypeError("redeem.input or redeem.output contains uncompressed pubkey")}if(e.witness&&e.witness.length>0){let u=e.witness[e.witness.length-1];if(e.redeem&&e.redeem.output&&!e.redeem.output.equals(u))throw new TypeError("Witness and redeem.output mismatch");if(e.witness.some(qf)||(An.decompile(u)||[]).some(qf))throw new TypeError("Witness contains uncompressed pubkey")}}return Object.assign(s,e)}Ih.p2wsh=n5});var Oo=T(en=>{"use strict";Object.defineProperty(en,"__esModule",{value:!0});var i5=_v();en.embed=i5.p2data;var s5=Sv();en.p2ms=s5.p2ms;var o5=Mv();en.p2pk=o5.p2pk;var a5=Bv();en.p2pkh=a5.p2pkh;var f5=Nv();en.p2sh=f5.p2sh;var u5=Dv();en.p2wpkh=u5.p2wpkh;var c5=Kv();en.p2wsh=c5.p2wsh});var Uf=T(Pn=>{"use strict";Object.defineProperty(Pn,"__esModule",{value:!0});var Gv=zt(),On=Oo(),h5=ke(),Th=vr(),Lf=Rf(),Wv=ci(),l5=ft();function Vv(e){let t=Wv.decode(e);if(t.length<21)throw new TypeError(e+" is too short");if(t.length>21)throw new TypeError(e+" is too long");let r=t.readUInt8(0),n=t.slice(1);return{version:r,hash:n}}Pn.fromBase58Check=Vv;function zv(e){let t=Lf.decode(e),r=Lf.fromWords(t.words.slice(1));return{version:t.words[0],prefix:t.prefix,data:Buffer.from(r)}}Pn.fromBech32=zv;function d5(e,t){l5(Th.tuple(Th.Hash160bit,Th.UInt8),arguments);let r=Buffer.allocUnsafe(21);return r.writeUInt8(t,0),e.copy(r,1),Wv.encode(r)}Pn.toBase58Check=d5;function p5(e,t,r){let n=Lf.toWords(e);return n.unshift(t),Lf.encode(r,n)}Pn.toBech32=p5;function v5(e,t){t=t||Gv.bitcoin;try{return On.p2pkh({output:e,network:t}).address}catch{}try{return On.p2sh({output:e,network:t}).address}catch{}try{return On.p2wpkh({output:e,network:t}).address}catch{}try{return On.p2wsh({output:e,network:t}).address}catch{}throw new Error(h5.toASM(e)+" has no matching Address")}Pn.fromOutputScript=v5;function b5(e,t){t=t||Gv.bitcoin;let r,n;try{r=Vv(e)}catch{}if(r){if(r.version===t.pubKeyHash)return On.p2pkh({hash:r.hash}).output;if(r.version===t.scriptHash)return On.p2sh({hash:r.hash}).output}else{try{n=zv(e)}catch{}if(n){if(n.prefix!==t.bech32)throw new Error(e+" has an invalid prefix");if(n.version===0){if(n.data.length===20)return On.p2wpkh({hash:n.data}).output;if(n.data.length===32)return On.p2wsh({hash:n.data}).output}}}throw new Error(e+" has no matching Script")}Pn.toOutputScript=b5});var jv=T(($R,$v)=>{$v.exports=require("crypto").randomBytes});var Hf=T(As=>{"use strict";Object.defineProperty(As,"__esModule",{value:!0});var Xv=zt(),_i=vr(),tn=pr(),g5=jv(),Bn=ft(),Yv=oh(),Mh=Bn.maybe(Bn.compile({compressed:_i.maybe(_i.Boolean),network:_i.maybe(_i.Network)})),Df=class{constructor(t,r,n){this.__D=t,this.__Q=r,this.lowR=!1,n===void 0&&(n={}),this.compressed=n.compressed===void 0?!0:n.compressed,this.network=n.network||Xv.bitcoin,r!==void 0&&(this.__Q=tn.pointCompress(r,this.compressed))}get privateKey(){return this.__D}get publicKey(){return this.__Q||(this.__Q=tn.pointFromScalar(this.__D,this.compressed)),this.__Q}toWIF(){if(!this.__D)throw new Error("Missing private key");return Yv.encode(this.network.wif,this.__D,this.compressed)}sign(t,r){if(!this.__D)throw new Error("Missing private key");if(r===void 0&&(r=this.lowR),r===!1)return tn.sign(t,this.__D);{let n=tn.sign(t,this.__D),i=Buffer.alloc(32,0),s=0;for(;n[0]>127;)s++,i.writeUIntLE(s,0,6),n=tn.signWithEntropy(t,this.__D,i);return n}}verify(t,r){return tn.verify(t,this.publicKey,r)}};function Ah(e,t){if(Bn(_i.Buffer256bit,e),!tn.isPrivate(e))throw new TypeError("Private key not in range [1, n)");return Bn(Mh,t),new Df(e,void 0,t)}As.fromPrivateKey=Ah;function m5(e,t){return Bn(tn.isPoint,e),Bn(Mh,t),new Df(void 0,e,t)}As.fromPublicKey=m5;function y5(e,t){let r=Yv.decode(e),n=r.version;if(_i.Array(t)){if(t=t.filter(i=>n===i.wif).pop(),!t)throw new Error("Unknown network version")}else if(t=t||Xv.bitcoin,n!==t.wif)throw new Error("Invalid network version");return Ah(r.privateKey,{compressed:r.compressed,network:t})}As.fromWIF=y5;function w5(e){Bn(Mh,e),e===void 0&&(e={});let t=e.rng||g5,r;do r=t(32),Bn(_i.Buffer256bit,r);while(!tn.isPrivate(r));return Ah(r,e)}As.makeRandom=w5});var Ro=T((XR,Zv)=>{"use strict";var Oh=qt().Buffer,_5=9007199254740991;function Ph(e){if(e<0||e>_5||e%1!==0)throw new RangeError("value out of range")}function Po(e,t,r){if(Ph(e),t||(t=Oh.allocUnsafe(Jv(e))),!Oh.isBuffer(t))throw new TypeError("buffer must be a Buffer instance");return r||(r=0),e<253?(t.writeUInt8(e,r),Po.bytes=1):e<=65535?(t.writeUInt8(253,r),t.writeUInt16LE(e,r+1),Po.bytes=3):e<=4294967295?(t.writeUInt8(254,r),t.writeUInt32LE(e,r+1),Po.bytes=5):(t.writeUInt8(255,r),t.writeUInt32LE(e>>>0,r+1),t.writeUInt32LE(e/4294967296|0,r+5),Po.bytes=9),t}function Bo(e,t){if(!Oh.isBuffer(e))throw new TypeError("buffer must be a Buffer instance");t||(t=0);var r=e.readUInt8(t);if(r<253)return Bo.bytes=1,r;if(r===253)return Bo.bytes=3,e.readUInt16LE(t+1);if(r===254)return Bo.bytes=5,e.readUInt32LE(t+1);Bo.bytes=9;var n=e.readUInt32LE(t+1),i=e.readUInt32LE(t+5),s=i*4294967296+n;return Ph(s),s}function Jv(e){return Ph(e),e<253?1:e<=65535?3:e<=4294967295?5:9}Zv.exports={encode:Po,decode:Bo,encodingLength:Jv}});var ko=T(Rn=>{"use strict";Object.defineProperty(Rn,"__esModule",{value:!0});var Os=vr(),Qv=ft(),Ff=Ro();function eb(e,t){if(typeof e!="number")throw new Error("cannot write a non-number as a number");if(e<0)throw new Error("specified a negative value for writing an unsigned value");if(e>t)throw new Error("RangeError: value out of range");if(Math.floor(e)!==e)throw new Error("value has a fractional component")}function tb(e,t){let r=e.readUInt32LE(t),n=e.readUInt32LE(t+4);return n*=4294967296,eb(n+r,9007199254740991),n+r}Rn.readUInt64LE=tb;function rb(e,t,r){return eb(t,9007199254740991),e.writeInt32LE(t&-1,r),e.writeUInt32LE(Math.floor(t/4294967296),r+4),r+8}Rn.writeUInt64LE=rb;function E5(e){if(e.length<1)return e;let t=e.length-1,r=0;for(let n=0;nthis.writeVarSlice(r))}};Rn.BufferWriter=Bh;var Rh=class{constructor(t,r=0){this.buffer=t,this.offset=r,Qv(Os.tuple(Os.Buffer,Os.UInt32),[t,r])}readUInt8(){let t=this.buffer.readUInt8(this.offset);return this.offset++,t}readInt32(){let t=this.buffer.readInt32LE(this.offset);return this.offset+=4,t}readUInt32(){let t=this.buffer.readUInt32LE(this.offset);return this.offset+=4,t}readUInt64(){let t=tb(this.buffer,this.offset);return this.offset+=8,t}readVarInt(){let t=Ff.decode(this.buffer,this.offset);return this.offset+=Ff.decode.bytes,t}readSlice(t){if(this.buffer.length{"use strict";Object.defineProperty(Ch,"__esModule",{value:!0});var kn=ko(),Ei=Rr(),nb=ke(),S5=ke(),ze=vr(),xi=ft(),Kf=Ro();function Ps(e){let t=e.length;return Kf.encodingLength(t)+t}function I5(e){let t=e.length;return Kf.encodingLength(t)+e.reduce((r,n)=>r+Ps(n),0)}var Nh=Buffer.allocUnsafe(0),ib=[],kh=Buffer.from("0000000000000000000000000000000000000000000000000000000000000000","hex"),sb=Buffer.from("0000000000000000000000000000000000000000000000000000000000000001","hex"),T5=Buffer.from("ffffffffffffffff","hex"),M5={script:Nh,valueBuffer:T5};function A5(e){return e.value!==void 0}var Ge=class{constructor(){this.version=1,this.locktime=0,this.ins=[],this.outs=[]}static fromBuffer(t,r){let n=new kn.BufferReader(t),i=new Ge;i.version=n.readInt32();let s=n.readUInt8(),a=n.readUInt8(),u=!1;s===Ge.ADVANCED_TRANSACTION_MARKER&&a===Ge.ADVANCED_TRANSACTION_FLAG?u=!0:n.offset-=2;let l=n.readVarInt();for(let p=0;pt.witness.length!==0)}weight(){let t=this.byteLength(!1),r=this.byteLength(!0);return t*3+r}virtualSize(){return Math.ceil(this.weight()/4)}byteLength(t=!0){let r=t&&this.hasWitnesses();return(r?10:8)+Kf.encodingLength(this.ins.length)+Kf.encodingLength(this.outs.length)+this.ins.reduce((n,i)=>n+40+Ps(i.script),0)+this.outs.reduce((n,i)=>n+8+Ps(i.script),0)+(r?this.ins.reduce((n,i)=>n+I5(i.witness),0):0)}clone(){let t=new Ge;return t.version=this.version,t.locktime=this.locktime,t.ins=this.ins.map(r=>({hash:r.hash,index:r.index,script:r.script,sequence:r.sequence,witness:r.witness})),t.outs=this.outs.map(r=>({script:r.script,value:r.value})),t}hashForSignature(t,r,n){if(xi(ze.tuple(ze.UInt32,ze.Buffer,ze.Number),arguments),t>=this.ins.length)return sb;let i=nb.compile(nb.decompile(r).filter(u=>u!==S5.OPS.OP_CODESEPARATOR)),s=this.clone();if((n&31)===Ge.SIGHASH_NONE)s.outs=[],s.ins.forEach((u,l)=>{l!==t&&(u.sequence=0)});else if((n&31)===Ge.SIGHASH_SINGLE){if(t>=this.outs.length)return sb;s.outs.length=t+1;for(let u=0;u{l!==t&&(u.sequence=0)})}n&Ge.SIGHASH_ANYONECANPAY?(s.ins=[s.ins[t]],s.ins[0].script=i):(s.ins.forEach(u=>{u.script=Nh}),s.ins[t].script=i);let a=Buffer.allocUnsafe(s.byteLength(!1)+4);return a.writeInt32LE(n,a.length-4),s.__toBuffer(a,0,!1),Ei.hash256(a)}hashForWitnessV0(t,r,n,i){xi(ze.tuple(ze.UInt32,ze.Buffer,ze.Satoshi,ze.UInt32),arguments);let s=Buffer.from([]),a,u=kh,l=kh,c=kh;if(i&Ge.SIGHASH_ANYONECANPAY||(s=Buffer.allocUnsafe(36*this.ins.length),a=new kn.BufferWriter(s,0),this.ins.forEach(w=>{a.writeSlice(w.hash),a.writeUInt32(w.index)}),l=Ei.hash256(s)),!(i&Ge.SIGHASH_ANYONECANPAY)&&(i&31)!==Ge.SIGHASH_SINGLE&&(i&31)!==Ge.SIGHASH_NONE&&(s=Buffer.allocUnsafe(4*this.ins.length),a=new kn.BufferWriter(s,0),this.ins.forEach(w=>{a.writeUInt32(w.sequence)}),c=Ei.hash256(s)),(i&31)!==Ge.SIGHASH_SINGLE&&(i&31)!==Ge.SIGHASH_NONE){let w=this.outs.reduce((x,S)=>x+8+Ps(S.script),0);s=Buffer.allocUnsafe(w),a=new kn.BufferWriter(s,0),this.outs.forEach(x=>{a.writeUInt64(x.value),a.writeVarSlice(x.script)}),u=Ei.hash256(s)}else if((i&31)===Ge.SIGHASH_SINGLE&&t{i.writeSlice(a.hash),i.writeUInt32(a.index),i.writeVarSlice(a.script),i.writeUInt32(a.sequence)}),i.writeVarInt(this.outs.length),this.outs.forEach(a=>{A5(a)?i.writeUInt64(a.value):i.writeSlice(a.valueBuffer),i.writeVarSlice(a.script)}),s&&this.ins.forEach(a=>{i.writeVector(a.witness)}),i.writeUInt32(this.locktime),r!==void 0?t.slice(r,i.offset):t}};Ge.DEFAULT_SEQUENCE=4294967295;Ge.SIGHASH_ALL=1;Ge.SIGHASH_NONE=2;Ge.SIGHASH_SINGLE=3;Ge.SIGHASH_ANYONECANPAY=128;Ge.ADVANCED_TRANSACTION_MARKER=0;Ge.ADVANCED_TRANSACTION_FLAG=1;Ch.Transaction=Ge});var ab=T((ZR,ob)=>{ob.exports=function(t,r){if(!Array.isArray(t))throw TypeError("Expected values Array");if(typeof r!="function")throw TypeError("Expected digest Function");for(var n=t.length,i=t.concat();n>1;){for(var s=0,a=0;a{"use strict";Object.defineProperty(Dh,"__esModule",{value:!0});var Gf=ko(),qh=Rr(),O5=No(),P5=vr(),B5=ab(),R5=ft(),Lh=Ro(),Uh=new TypeError("Cannot compute merkle root for zero transactions"),fb=new TypeError("Cannot compute witness commit for non-segwit block"),rn=class{constructor(){this.version=1,this.prevHash=void 0,this.merkleRoot=void 0,this.timestamp=0,this.witnessCommit=void 0,this.bits=0,this.nonce=0,this.transactions=void 0}static fromBuffer(t){if(t.length<80)throw new Error("Buffer too small (< 80 bytes)");let r=new Gf.BufferReader(t),n=new rn;if(n.version=r.readInt32(),n.prevHash=r.readSlice(32),n.merkleRoot=r.readSlice(32),n.timestamp=r.readUInt32(),n.bits=r.readUInt32(),n.nonce=r.readUInt32(),t.length===80)return n;let i=()=>{let u=O5.Transaction.fromBuffer(r.buffer.slice(r.offset),!0);return r.offset+=u.byteLength(),u},s=r.readVarInt();n.transactions=[];for(let u=0;u>24)-3,n=t&8388607,i=Buffer.alloc(32,0);return i.writeUIntBE(n,29-r,3),i}static calculateMerkleRoot(t,r){if(R5([{getHash:P5.Function}],t),t.length===0)throw Uh;if(r&&!ub(t))throw fb;let n=t.map(s=>s.getHash(r)),i=B5(n,qh.hash256);return r?qh.hash256(Buffer.concat([i,t[0].ins[0].witness[0]])):i}getWitnessCommit(){if(!ub(this.transactions))return null;let t=this.transactions[0].outs.filter(n=>n.script.slice(0,6).equals(Buffer.from("6a24aa21a9ed","hex"))).map(n=>n.script.slice(6,38));if(t.length===0)return null;let r=t[t.length-1];return r instanceof Buffer&&r.length===32?r:null}hasWitnessCommit(){return this.witnessCommit instanceof Buffer&&this.witnessCommit.length===32||this.getWitnessCommit()!==null}hasWitness(){return k5(this.transactions)}weight(){let t=this.byteLength(!1,!1),r=this.byteLength(!1,!0);return t*3+r}byteLength(t,r=!0){return t||!this.transactions?80:80+Lh.encodingLength(this.transactions.length)+this.transactions.reduce((n,i)=>n+i.byteLength(r),0)}getHash(){return qh.hash256(this.toBuffer(!0))}getId(){return Gf.reverseBuffer(this.getHash()).toString("hex")}getUTCDate(){let t=new Date(0);return t.setUTCSeconds(this.timestamp),t}toBuffer(t){let r=Buffer.allocUnsafe(this.byteLength(t)),n=new Gf.BufferWriter(r);return n.writeInt32(this.version),n.writeSlice(this.prevHash),n.writeSlice(this.merkleRoot),n.writeUInt32(this.timestamp),n.writeUInt32(this.bits),n.writeUInt32(this.nonce),t||!this.transactions||(Lh.encode(this.transactions.length,r,n.offset),n.offset+=Lh.encode.bytes,this.transactions.forEach(i=>{let s=i.byteLength();i.toBuffer(r,n.offset),n.offset+=s})),r}toHex(t){return this.toBuffer(t).toString("hex")}checkTxRoots(){let t=this.hasWitnessCommit();return!t&&this.hasWitness()?!1:this.__checkMerkleRoot()&&(t?this.__checkWitnessCommit():!0)}checkProofOfWork(){let t=Gf.reverseBuffer(this.getHash()),r=rn.calculateTarget(this.bits);return t.compare(r)<=0}__checkMerkleRoot(){if(!this.transactions)throw Uh;let t=rn.calculateMerkleRoot(this.transactions);return this.merkleRoot.compare(t)===0}__checkWitnessCommit(){if(!this.transactions)throw Uh;if(!this.hasWitnessCommit())throw fb;let t=rn.calculateMerkleRoot(this.transactions,!0);return this.witnessCommit.compare(t)===0}};Dh.Block=rn;function ub(e){return e instanceof Array&&e[0]&&e[0].ins&&e[0].ins instanceof Array&&e[0].ins[0]&&e[0].ins[0].witness&&e[0].ins[0].witness instanceof Array&&e[0].ins[0].witness.length>0}function k5(e){return e instanceof Array&&e.some(t=>typeof t=="object"&&t.ins instanceof Array&&t.ins.some(r=>typeof r=="object"&&r.witness instanceof Array&&r.witness.length>0))}});var vt=T(br=>{"use strict";Object.defineProperty(br,"__esModule",{value:!0});var N5;(function(e){e[e.UNSIGNED_TX=0]="UNSIGNED_TX",e[e.GLOBAL_XPUB=1]="GLOBAL_XPUB"})(N5=br.GlobalTypes||(br.GlobalTypes={}));br.GLOBAL_TYPE_NAMES=["unsignedTx","globalXpub"];var C5;(function(e){e[e.NON_WITNESS_UTXO=0]="NON_WITNESS_UTXO",e[e.WITNESS_UTXO=1]="WITNESS_UTXO",e[e.PARTIAL_SIG=2]="PARTIAL_SIG",e[e.SIGHASH_TYPE=3]="SIGHASH_TYPE",e[e.REDEEM_SCRIPT=4]="REDEEM_SCRIPT",e[e.WITNESS_SCRIPT=5]="WITNESS_SCRIPT",e[e.BIP32_DERIVATION=6]="BIP32_DERIVATION",e[e.FINAL_SCRIPTSIG=7]="FINAL_SCRIPTSIG",e[e.FINAL_SCRIPTWITNESS=8]="FINAL_SCRIPTWITNESS",e[e.POR_COMMITMENT=9]="POR_COMMITMENT",e[e.TAP_KEY_SIG=19]="TAP_KEY_SIG",e[e.TAP_SCRIPT_SIG=20]="TAP_SCRIPT_SIG",e[e.TAP_LEAF_SCRIPT=21]="TAP_LEAF_SCRIPT",e[e.TAP_BIP32_DERIVATION=22]="TAP_BIP32_DERIVATION",e[e.TAP_INTERNAL_KEY=23]="TAP_INTERNAL_KEY",e[e.TAP_MERKLE_ROOT=24]="TAP_MERKLE_ROOT"})(C5=br.InputTypes||(br.InputTypes={}));br.INPUT_TYPE_NAMES=["nonWitnessUtxo","witnessUtxo","partialSig","sighashType","redeemScript","witnessScript","bip32Derivation","finalScriptSig","finalScriptWitness","porCommitment","tapKeySig","tapScriptSig","tapLeafScript","tapBip32Derivation","tapInternalKey","tapMerkleRoot"];var q5;(function(e){e[e.REDEEM_SCRIPT=0]="REDEEM_SCRIPT",e[e.WITNESS_SCRIPT=1]="WITNESS_SCRIPT",e[e.BIP32_DERIVATION=2]="BIP32_DERIVATION",e[e.TAP_INTERNAL_KEY=5]="TAP_INTERNAL_KEY",e[e.TAP_TREE=6]="TAP_TREE",e[e.TAP_BIP32_DERIVATION=7]="TAP_BIP32_DERIVATION"})(q5=br.OutputTypes||(br.OutputTypes={}));br.OUTPUT_TYPE_NAMES=["redeemScript","witnessScript","bip32Derivation","tapInternalKey","tapTree","tapBip32Derivation"]});var lb=T(Si=>{"use strict";Object.defineProperty(Si,"__esModule",{value:!0});var hb=vt(),L5=e=>[...Array(e).keys()];function U5(e){if(e.key[0]!==hb.GlobalTypes.GLOBAL_XPUB)throw new Error("Decode Error: could not decode globalXpub with key 0x"+e.key.toString("hex"));if(e.key.length!==79||![2,3].includes(e.key[46]))throw new Error("Decode Error: globalXpub has invalid extended pubkey in key 0x"+e.key.toString("hex"));if(e.value.length/4%1!==0)throw new Error("Decode Error: Global GLOBAL_XPUB value length should be multiple of 4");let t=e.key.slice(1),r={masterFingerprint:e.value.slice(0,4),extendedPubkey:t,path:"m"};for(let n of L5(e.value.length/4-1)){let i=e.value.readUInt32LE(n*4+4),s=!!(i&2147483648),a=i&2147483647;r.path+="/"+a.toString(10)+(s?"'":"")}return r}Si.decode=U5;function D5(e){let t=Buffer.from([hb.GlobalTypes.GLOBAL_XPUB]),r=Buffer.concat([t,e.extendedPubkey]),n=e.path.split("/"),i=Buffer.allocUnsafe(n.length*4);e.masterFingerprint.copy(i,0);let s=4;return n.slice(1).forEach(a=>{let u=a.slice(-1)==="'",l=2147483647&parseInt(u?a.slice(0,-1):a,10);u&&(l+=2147483648),i.writeUInt32LE(l,s),s+=4}),{key:r,value:i}}Si.encode=D5;Si.expected="{ masterFingerprint: Buffer; extendedPubkey: Buffer; path: string; }";function H5(e){let t=e.extendedPubkey,r=e.masterFingerprint,n=e.path;return Buffer.isBuffer(t)&&t.length===78&&[2,3].indexOf(t[45])>-1&&Buffer.isBuffer(r)&&r.length===4&&typeof n=="string"&&!!n.match(/^m(\/\d+'?)*$/)}Si.check=H5;function F5(e,t,r){let n=t.extendedPubkey.toString("hex");return r.has(n)?!1:(r.add(n),e.filter(i=>i.extendedPubkey.equals(t.extendedPubkey)).length===0)}Si.canAddToArray=F5});var db=T(Hh=>{"use strict";Object.defineProperty(Hh,"__esModule",{value:!0});var K5=vt();function G5(e){return{key:Buffer.from([K5.GlobalTypes.UNSIGNED_TX]),value:e.toBuffer()}}Hh.encode=G5});var vb=T(Ii=>{"use strict";Object.defineProperty(Ii,"__esModule",{value:!0});var pb=vt();function W5(e){if(e.key[0]!==pb.InputTypes.FINAL_SCRIPTSIG)throw new Error("Decode Error: could not decode finalScriptSig with key 0x"+e.key.toString("hex"));return e.value}Ii.decode=W5;function V5(e){return{key:Buffer.from([pb.InputTypes.FINAL_SCRIPTSIG]),value:e}}Ii.encode=V5;Ii.expected="Buffer";function z5(e){return Buffer.isBuffer(e)}Ii.check=z5;function $5(e,t){return!!e&&!!t&&e.finalScriptSig===void 0}Ii.canAdd=$5});var gb=T(Ti=>{"use strict";Object.defineProperty(Ti,"__esModule",{value:!0});var bb=vt();function j5(e){if(e.key[0]!==bb.InputTypes.FINAL_SCRIPTWITNESS)throw new Error("Decode Error: could not decode finalScriptWitness with key 0x"+e.key.toString("hex"));return e.value}Ti.decode=j5;function X5(e){return{key:Buffer.from([bb.InputTypes.FINAL_SCRIPTWITNESS]),value:e}}Ti.encode=X5;Ti.expected="Buffer";function Y5(e){return Buffer.isBuffer(e)}Ti.check=Y5;function J5(e,t){return!!e&&!!t&&e.finalScriptWitness===void 0}Ti.canAdd=J5});var yb=T(Mi=>{"use strict";Object.defineProperty(Mi,"__esModule",{value:!0});var mb=vt();function Z5(e){if(e.key[0]!==mb.InputTypes.NON_WITNESS_UTXO)throw new Error("Decode Error: could not decode nonWitnessUtxo with key 0x"+e.key.toString("hex"));return e.value}Mi.decode=Z5;function Q5(e){return{key:Buffer.from([mb.InputTypes.NON_WITNESS_UTXO]),value:e}}Mi.encode=Q5;Mi.expected="Buffer";function eS(e){return Buffer.isBuffer(e)}Mi.check=eS;function tS(e,t){return!!e&&!!t&&e.nonWitnessUtxo===void 0}Mi.canAdd=tS});var _b=T(Ai=>{"use strict";Object.defineProperty(Ai,"__esModule",{value:!0});var wb=vt();function rS(e){if(e.key[0]!==wb.InputTypes.PARTIAL_SIG)throw new Error("Decode Error: could not decode partialSig with key 0x"+e.key.toString("hex"));if(!(e.key.length===34||e.key.length===66)||![2,3,4].includes(e.key[1]))throw new Error("Decode Error: partialSig has invalid pubkey in key 0x"+e.key.toString("hex"));return{pubkey:e.key.slice(1),signature:e.value}}Ai.decode=rS;function nS(e){let t=Buffer.from([wb.InputTypes.PARTIAL_SIG]);return{key:Buffer.concat([t,e.pubkey]),value:e.signature}}Ai.encode=nS;Ai.expected="{ pubkey: Buffer; signature: Buffer; }";function iS(e){return Buffer.isBuffer(e.pubkey)&&Buffer.isBuffer(e.signature)&&[33,65].includes(e.pubkey.length)&&[2,3,4].includes(e.pubkey[0])&&sS(e.signature)}Ai.check=iS;function sS(e){if(!Buffer.isBuffer(e)||e.length<9||e[0]!==48||e.length!==e[1]+3||e[2]!==2)return!1;let t=e[3];if(t>33||t<1||e[3+t+1]!==2)return!1;let r=e[3+t+2];return!(r>33||r<1||e.length!==3+t+2+r+2)}function oS(e,t,r){let n=t.pubkey.toString("hex");return r.has(n)?!1:(r.add(n),e.filter(i=>i.pubkey.equals(t.pubkey)).length===0)}Ai.canAddToArray=oS});var xb=T(Oi=>{"use strict";Object.defineProperty(Oi,"__esModule",{value:!0});var Eb=vt();function aS(e){if(e.key[0]!==Eb.InputTypes.POR_COMMITMENT)throw new Error("Decode Error: could not decode porCommitment with key 0x"+e.key.toString("hex"));return e.value.toString("utf8")}Oi.decode=aS;function fS(e){return{key:Buffer.from([Eb.InputTypes.POR_COMMITMENT]),value:Buffer.from(e,"utf8")}}Oi.encode=fS;Oi.expected="string";function uS(e){return typeof e=="string"}Oi.check=uS;function cS(e,t){return!!e&&!!t&&e.porCommitment===void 0}Oi.canAdd=cS});var Ib=T(Pi=>{"use strict";Object.defineProperty(Pi,"__esModule",{value:!0});var Sb=vt();function hS(e){if(e.key[0]!==Sb.InputTypes.SIGHASH_TYPE)throw new Error("Decode Error: could not decode sighashType with key 0x"+e.key.toString("hex"));return e.value.readUInt32LE(0)}Pi.decode=hS;function lS(e){let t=Buffer.from([Sb.InputTypes.SIGHASH_TYPE]),r=Buffer.allocUnsafe(4);return r.writeUInt32LE(e,0),{key:t,value:r}}Pi.encode=lS;Pi.expected="number";function dS(e){return typeof e=="number"}Pi.check=dS;function pS(e,t){return!!e&&!!t&&e.sighashType===void 0}Pi.canAdd=pS});var Ab=T(Bi=>{"use strict";Object.defineProperty(Bi,"__esModule",{value:!0});var Tb=vt();function vS(e){if(e.key[0]!==Tb.InputTypes.TAP_KEY_SIG||e.key.length!==1)throw new Error("Decode Error: could not decode tapKeySig with key 0x"+e.key.toString("hex"));if(!Mb(e.value))throw new Error("Decode Error: tapKeySig not a valid 64-65-byte BIP340 signature");return e.value}Bi.decode=vS;function bS(e){return{key:Buffer.from([Tb.InputTypes.TAP_KEY_SIG]),value:e}}Bi.encode=bS;Bi.expected="Buffer";function Mb(e){return Buffer.isBuffer(e)&&(e.length===64||e.length===65)}Bi.check=Mb;function gS(e,t){return!!e&&!!t&&e.tapKeySig===void 0}Bi.canAdd=gS});var Pb=T(Ri=>{"use strict";Object.defineProperty(Ri,"__esModule",{value:!0});var Ob=vt();function mS(e){if(e.key[0]!==Ob.InputTypes.TAP_LEAF_SCRIPT)throw new Error("Decode Error: could not decode tapLeafScript with key 0x"+e.key.toString("hex"));if((e.key.length-2)%32!==0)throw new Error("Decode Error: tapLeafScript has invalid control block in key 0x"+e.key.toString("hex"));let t=e.value[e.value.length-1];if((e.key[1]&254)!==t)throw new Error("Decode Error: tapLeafScript bad leaf version in key 0x"+e.key.toString("hex"));let r=e.value.slice(0,-1);return{controlBlock:e.key.slice(1),script:r,leafVersion:t}}Ri.decode=mS;function yS(e){let t=Buffer.from([Ob.InputTypes.TAP_LEAF_SCRIPT]),r=Buffer.from([e.leafVersion]);return{key:Buffer.concat([t,e.controlBlock]),value:Buffer.concat([e.script,r])}}Ri.encode=yS;Ri.expected="{ controlBlock: Buffer; leafVersion: number, script: Buffer; }";function wS(e){return Buffer.isBuffer(e.controlBlock)&&(e.controlBlock.length-1)%32===0&&(e.controlBlock[0]&254)===e.leafVersion&&Buffer.isBuffer(e.script)}Ri.check=wS;function _S(e,t,r){let n=t.controlBlock.toString("hex");return r.has(n)?!1:(r.add(n),e.filter(i=>i.controlBlock.equals(t.controlBlock)).length===0)}Ri.canAddToArray=_S});var kb=T(ki=>{"use strict";Object.defineProperty(ki,"__esModule",{value:!0});var Bb=vt();function ES(e){if(e.key[0]!==Bb.InputTypes.TAP_MERKLE_ROOT||e.key.length!==1)throw new Error("Decode Error: could not decode tapMerkleRoot with key 0x"+e.key.toString("hex"));if(!Rb(e.value))throw new Error("Decode Error: tapMerkleRoot not a 32-byte hash");return e.value}ki.decode=ES;function xS(e){return{key:Buffer.from([Bb.InputTypes.TAP_MERKLE_ROOT]),value:e}}ki.encode=xS;ki.expected="Buffer";function Rb(e){return Buffer.isBuffer(e)&&e.length===32}ki.check=Rb;function SS(e,t){return!!e&&!!t&&e.tapMerkleRoot===void 0}ki.canAdd=SS});var Cb=T(Ni=>{"use strict";Object.defineProperty(Ni,"__esModule",{value:!0});var Nb=vt();function IS(e){if(e.key[0]!==Nb.InputTypes.TAP_SCRIPT_SIG)throw new Error("Decode Error: could not decode tapScriptSig with key 0x"+e.key.toString("hex"));if(e.key.length!==65)throw new Error("Decode Error: tapScriptSig has invalid key 0x"+e.key.toString("hex"));if(e.value.length!==64&&e.value.length!==65)throw new Error("Decode Error: tapScriptSig has invalid signature in key 0x"+e.key.toString("hex"));let t=e.key.slice(1,33),r=e.key.slice(33);return{pubkey:t,leafHash:r,signature:e.value}}Ni.decode=IS;function TS(e){let t=Buffer.from([Nb.InputTypes.TAP_SCRIPT_SIG]);return{key:Buffer.concat([t,e.pubkey,e.leafHash]),value:e.signature}}Ni.encode=TS;Ni.expected="{ pubkey: Buffer; leafHash: Buffer; signature: Buffer; }";function MS(e){return Buffer.isBuffer(e.pubkey)&&Buffer.isBuffer(e.leafHash)&&Buffer.isBuffer(e.signature)&&e.pubkey.length===32&&e.leafHash.length===32&&(e.signature.length===64||e.signature.length===65)}Ni.check=MS;function AS(e,t,r){let n=t.pubkey.toString("hex")+t.leafHash.toString("hex");return r.has(n)?!1:(r.add(n),e.filter(i=>i.pubkey.equals(t.pubkey)&&i.leafHash.equals(t.leafHash)).length===0)}Ni.canAddToArray=AS});var Ci=T(Lo=>{"use strict";Object.defineProperty(Lo,"__esModule",{value:!0});var OS=9007199254740991;function Fh(e){if(e<0||e>OS||e%1!==0)throw new RangeError("value out of range")}function Co(e,t,r){if(Fh(e),t||(t=Buffer.allocUnsafe(qb(e))),!Buffer.isBuffer(t))throw new TypeError("buffer must be a Buffer instance");return r||(r=0),e<253?(t.writeUInt8(e,r),Object.assign(Co,{bytes:1})):e<=65535?(t.writeUInt8(253,r),t.writeUInt16LE(e,r+1),Object.assign(Co,{bytes:3})):e<=4294967295?(t.writeUInt8(254,r),t.writeUInt32LE(e,r+1),Object.assign(Co,{bytes:5})):(t.writeUInt8(255,r),t.writeUInt32LE(e>>>0,r+1),t.writeUInt32LE(e/4294967296|0,r+5),Object.assign(Co,{bytes:9})),t}Lo.encode=Co;function qo(e,t){if(!Buffer.isBuffer(e))throw new TypeError("buffer must be a Buffer instance");t||(t=0);let r=e.readUInt8(t);if(r<253)return Object.assign(qo,{bytes:1}),r;if(r===253)return Object.assign(qo,{bytes:3}),e.readUInt16LE(t+1);if(r===254)return Object.assign(qo,{bytes:5}),e.readUInt32LE(t+1);{Object.assign(qo,{bytes:9});let n=e.readUInt32LE(t+1),s=e.readUInt32LE(t+5)*4294967296+n;return Fh(s),s}}Lo.decode=qo;function qb(e){return Fh(e),e<253?1:e<=65535?3:e<=4294967295?5:9}Lo.encodingLength=qb});var Vf=T(Nn=>{"use strict";Object.defineProperty(Nn,"__esModule",{value:!0});var Wf=Ci();Nn.range=e=>[...Array(e).keys()];function PS(e){if(e.length<1)return e;let t=e.length-1,r=0;for(let n=0;nt)throw new Error("RangeError: value out of range");if(Math.floor(e)!==e)throw new Error("value has a fractional component")}function RS(e,t){let r=e.readUInt32LE(t),n=e.readUInt32LE(t+4);return n*=4294967296,Ub(n+r,9007199254740991),n+r}Nn.readUInt64LE=RS;function kS(e,t,r){return Ub(t,9007199254740991),e.writeInt32LE(t&-1,r),e.writeUInt32LE(Math.floor(t/4294967296),r+4),r+8}Nn.writeUInt64LE=kS});var Fb=T(qi=>{"use strict";Object.defineProperty(qi,"__esModule",{value:!0});var Db=vt(),Hb=Vf(),zf=Ci();function NS(e){if(e.key[0]!==Db.InputTypes.WITNESS_UTXO)throw new Error("Decode Error: could not decode witnessUtxo with key 0x"+e.key.toString("hex"));let t=Hb.readUInt64LE(e.value,0),r=8,n=zf.decode(e.value,r);r+=zf.encodingLength(n);let i=e.value.slice(r);if(i.length!==n)throw new Error("Decode Error: WITNESS_UTXO script is not proper length");return{script:i,value:t}}qi.decode=NS;function CS(e){let{script:t,value:r}=e,n=zf.encodingLength(t.length),i=Buffer.allocUnsafe(8+n+t.length);return Hb.writeUInt64LE(i,r,0),zf.encode(t.length,i,8),t.copy(i,8+n),{key:Buffer.from([Db.InputTypes.WITNESS_UTXO]),value:i}}qi.encode=CS;qi.expected="{ script: Buffer; value: number; }";function qS(e){return Buffer.isBuffer(e.script)&&typeof e.value=="number"}qi.check=qS;function LS(e,t){return!!e&&!!t&&e.witnessUtxo===void 0}qi.canAdd=LS});var Gb=T(Li=>{"use strict";Object.defineProperty(Li,"__esModule",{value:!0});var Kb=vt(),Kh=Ci();function US(e){if(e.key[0]!==Kb.OutputTypes.TAP_TREE||e.key.length!==1)throw new Error("Decode Error: could not decode tapTree with key 0x"+e.key.toString("hex"));let t=0,r=[];for(;t[Buffer.of(n.depth,n.leafVersion),Kh.encode(n.script.length),n.script]));return{key:t,value:Buffer.concat(r)}}Li.encode=DS;Li.expected="{ leaves: [{ depth: number; leafVersion: number, script: Buffer; }] }";function HS(e){return Array.isArray(e.leaves)&&e.leaves.every(t=>t.depth>=0&&t.depth<=128&&(t.leafVersion&254)===t.leafVersion&&Buffer.isBuffer(t.script))}Li.check=HS;function FS(e,t){return!!e&&!!t&&e.tapTree===void 0}Li.canAdd=FS});var Wh=T(Gh=>{"use strict";Object.defineProperty(Gh,"__esModule",{value:!0});var KS=e=>[...Array(e).keys()],GS=e=>e.length===33&&[2,3].includes(e[0])||e.length===65&&e[0]===4;function WS(e,t=GS){function r(u){if(u.key[0]!==e)throw new Error("Decode Error: could not decode bip32Derivation with key 0x"+u.key.toString("hex"));let l=u.key.slice(1);if(!t(l))throw new Error("Decode Error: bip32Derivation has invalid pubkey in key 0x"+u.key.toString("hex"));if(u.value.length/4%1!==0)throw new Error("Decode Error: Input BIP32_DERIVATION value length should be multiple of 4");let c={masterFingerprint:u.value.slice(0,4),pubkey:l,path:"m"};for(let p of KS(u.value.length/4-1)){let w=u.value.readUInt32LE(p*4+4),x=!!(w&2147483648),S=w&2147483647;c.path+="/"+S.toString(10)+(x?"'":"")}return c}function n(u){let l=Buffer.from([e]),c=Buffer.concat([l,u.pubkey]),p=u.path.split("/"),w=Buffer.allocUnsafe(p.length*4);u.masterFingerprint.copy(w,0);let x=4;return p.slice(1).forEach(S=>{let M=S.slice(-1)==="'",O=2147483647&parseInt(M?S.slice(0,-1):S,10);M&&(O+=2147483648),w.writeUInt32LE(O,x),x+=4}),{key:c,value:w}}let i="{ masterFingerprint: Buffer; pubkey: Buffer; path: string; }";function s(u){return Buffer.isBuffer(u.pubkey)&&Buffer.isBuffer(u.masterFingerprint)&&typeof u.path=="string"&&t(u.pubkey)&&u.masterFingerprint.length===4}function a(u,l,c){let p=l.pubkey.toString("hex");return c.has(p)?!1:(c.add(p),u.filter(w=>w.pubkey.equals(l.pubkey)).length===0)}return{decode:r,encode:n,check:s,expected:i,canAddToArray:a}}Gh.makeConverter=WS});var Wb=T(Vh=>{"use strict";Object.defineProperty(Vh,"__esModule",{value:!0});function VS(e){return t;function t(r){let n;if(e.includes(r.key[0])&&(n=r.key.slice(1),!(n.length===33||n.length===65)||![2,3,4].includes(n[0])))throw new Error("Format Error: invalid pubkey in key 0x"+r.key.toString("hex"));return n}}Vh.makeChecker=VS});var Vb=T(zh=>{"use strict";Object.defineProperty(zh,"__esModule",{value:!0});function zS(e){function t(a){if(a.key[0]!==e)throw new Error("Decode Error: could not decode redeemScript with key 0x"+a.key.toString("hex"));return a.value}function r(a){return{key:Buffer.from([e]),value:a}}let n="Buffer";function i(a){return Buffer.isBuffer(a)}function s(a,u){return!!a&&!!u&&a.redeemScript===void 0}return{decode:t,encode:r,check:i,expected:n,canAdd:s}}zh.makeConverter=zS});var zb=T($h=>{"use strict";Object.defineProperty($h,"__esModule",{value:!0});var $f=Ci(),$S=Wh(),jS=e=>e.length===32;function XS(e){let t=$S.makeConverter(e,jS);function r(a){let u=$f.decode(a.value),l=$f.encodingLength(u),c=t.decode({key:a.key,value:a.value.slice(l+u*32)}),p=new Array(u);for(let w=0,x=l;wBuffer.isBuffer(u)&&u.length===32)&&t.check(a)}return{decode:r,encode:n,check:s,expected:i,canAddToArray:t.canAddToArray}}$h.makeConverter=XS});var $b=T(jh=>{"use strict";Object.defineProperty(jh,"__esModule",{value:!0});function YS(e){function t(a){if(a.key[0]!==e||a.key.length!==1)throw new Error("Decode Error: could not decode tapInternalKey with key 0x"+a.key.toString("hex"));if(a.value.length!==32)throw new Error("Decode Error: tapInternalKey not a 32-byte x-only pubkey");return a.value}function r(a){return{key:Buffer.from([e]),value:a}}let n="Buffer";function i(a){return Buffer.isBuffer(a)&&a.length===32}function s(a,u){return!!a&&!!u&&a.tapInternalKey===void 0}return{decode:t,encode:r,check:i,expected:n,canAdd:s}}jh.makeConverter=YS});var jb=T(Xh=>{"use strict";Object.defineProperty(Xh,"__esModule",{value:!0});function JS(e){function t(a){if(a.key[0]!==e)throw new Error("Decode Error: could not decode witnessScript with key 0x"+a.key.toString("hex"));return a.value}function r(a){return{key:Buffer.from([e]),value:a}}let n="Buffer";function i(a){return Buffer.isBuffer(a)}function s(a,u){return!!a&&!!u&&a.witnessScript===void 0}return{decode:t,encode:r,check:i,expected:n,canAdd:s}}Xh.makeConverter=JS});var jf=T(Uo=>{"use strict";Object.defineProperty(Uo,"__esModule",{value:!0});var jt=vt(),ZS=lb(),QS=db(),e8=vb(),t8=gb(),r8=yb(),n8=_b(),i8=xb(),s8=Ib(),o8=Ab(),a8=Pb(),f8=kb(),u8=Cb(),c8=Fb(),h8=Gb(),Xb=Wh(),Yh=Wb(),Yb=Vb(),Jb=zb(),Zb=$b(),Qb=jb(),l8={unsignedTx:QS,globalXpub:ZS,checkPubkey:Yh.makeChecker([])};Uo.globals=l8;var d8={nonWitnessUtxo:r8,partialSig:n8,sighashType:s8,finalScriptSig:e8,finalScriptWitness:t8,porCommitment:i8,witnessUtxo:c8,bip32Derivation:Xb.makeConverter(jt.InputTypes.BIP32_DERIVATION),redeemScript:Yb.makeConverter(jt.InputTypes.REDEEM_SCRIPT),witnessScript:Qb.makeConverter(jt.InputTypes.WITNESS_SCRIPT),checkPubkey:Yh.makeChecker([jt.InputTypes.PARTIAL_SIG,jt.InputTypes.BIP32_DERIVATION]),tapKeySig:o8,tapScriptSig:u8,tapLeafScript:a8,tapBip32Derivation:Jb.makeConverter(jt.InputTypes.TAP_BIP32_DERIVATION),tapInternalKey:Zb.makeConverter(jt.InputTypes.TAP_INTERNAL_KEY),tapMerkleRoot:f8};Uo.inputs=d8;var p8={bip32Derivation:Xb.makeConverter(jt.OutputTypes.BIP32_DERIVATION),redeemScript:Yb.makeConverter(jt.OutputTypes.REDEEM_SCRIPT),witnessScript:Qb.makeConverter(jt.OutputTypes.WITNESS_SCRIPT),checkPubkey:Yh.makeChecker([jt.OutputTypes.BIP32_DERIVATION]),tapBip32Derivation:Jb.makeConverter(jt.OutputTypes.TAP_BIP32_DERIVATION),tapTree:h8,tapInternalKey:Zb.makeConverter(jt.OutputTypes.TAP_INTERNAL_KEY)};Uo.outputs=p8});var r2=T(Do=>{"use strict";Object.defineProperty(Do,"__esModule",{value:!0});var Ze=jf(),Xf=Vf(),e2=Ci(),Be=vt();function v8(e,t){let r=0;function n(){let P=e2.decode(e,r);r+=e2.encodingLength(P);let B=e.slice(r,r+P);return r+=P,B}function i(){let P=e.readUInt32BE(r);return r+=4,P}function s(){let P=e.readUInt8(r);return r+=1,P}function a(){let P=n(),B=n();return{key:P,value:B}}function u(){if(r>=e.length)throw new Error("Format Error: Unexpected End of PSBT");let P=e.readUInt8(r)===0;return P&&r++,P}if(i()!==1886610036)throw new Error("Format Error: Invalid Magic Number");if(s()!==255)throw new Error("Format Error: Magic Number must be followed by 0xff separator");let l=[],c={};for(;!u();){let P=a(),B=P.key.toString("hex");if(c[B])throw new Error("Format Error: Keys must be unique for global keymap: key "+B);c[B]=1,l.push(P)}let p=l.filter(P=>P.key[0]===Be.GlobalTypes.UNSIGNED_TX);if(p.length!==1)throw new Error("Format Error: Only one UNSIGNED_TX allowed");let w=t(p[0].value),{inputCount:x,outputCount:S}=w.getInputOutputCounts(),M=[],O=[];for(let P of Xf.range(x)){let B={},N=[];for(;!u();){let L=a(),H=L.key.toString("hex");if(B[H])throw new Error("Format Error: Keys must be unique for each input: input index "+P+" key "+H);B[H]=1,N.push(L)}M.push(N)}for(let P of Xf.range(S)){let B={},N=[];for(;!u();){let L=a(),H=L.key.toString("hex");if(B[H])throw new Error("Format Error: Keys must be unique for each output: output index "+P+" key "+H);B[H]=1,N.push(L)}O.push(N)}return t2(w,{globalMapKeyVals:l,inputKeyVals:M,outputKeyVals:O})}Do.psbtFromBuffer=v8;function St(e,t,r){if(!t.equals(Buffer.from([r])))throw new Error(`Format Error: Invalid ${e} key: ${t.toString("hex")}`)}Do.checkKeyBuffer=St;function t2(e,{globalMapKeyVals:t,inputKeyVals:r,outputKeyVals:n}){let i={unsignedTx:e},s=0;for(let p of t)switch(p.key[0]){case Be.GlobalTypes.UNSIGNED_TX:if(St("global",p.key,Be.GlobalTypes.UNSIGNED_TX),s>0)throw new Error("Format Error: GlobalMap has multiple UNSIGNED_TX");s++;break;case Be.GlobalTypes.GLOBAL_XPUB:i.globalXpub===void 0&&(i.globalXpub=[]),i.globalXpub.push(Ze.globals.globalXpub.decode(p));break;default:i.unknownKeyVals||(i.unknownKeyVals=[]),i.unknownKeyVals.push(p)}let a=r.length,u=n.length,l=[],c=[];for(let p of Xf.range(a)){let w={};for(let x of r[p])switch(Ze.inputs.checkPubkey(x),x.key[0]){case Be.InputTypes.NON_WITNESS_UTXO:if(St("input",x.key,Be.InputTypes.NON_WITNESS_UTXO),w.nonWitnessUtxo!==void 0)throw new Error("Format Error: Input has multiple NON_WITNESS_UTXO");w.nonWitnessUtxo=Ze.inputs.nonWitnessUtxo.decode(x);break;case Be.InputTypes.WITNESS_UTXO:if(St("input",x.key,Be.InputTypes.WITNESS_UTXO),w.witnessUtxo!==void 0)throw new Error("Format Error: Input has multiple WITNESS_UTXO");w.witnessUtxo=Ze.inputs.witnessUtxo.decode(x);break;case Be.InputTypes.PARTIAL_SIG:w.partialSig===void 0&&(w.partialSig=[]),w.partialSig.push(Ze.inputs.partialSig.decode(x));break;case Be.InputTypes.SIGHASH_TYPE:if(St("input",x.key,Be.InputTypes.SIGHASH_TYPE),w.sighashType!==void 0)throw new Error("Format Error: Input has multiple SIGHASH_TYPE");w.sighashType=Ze.inputs.sighashType.decode(x);break;case Be.InputTypes.REDEEM_SCRIPT:if(St("input",x.key,Be.InputTypes.REDEEM_SCRIPT),w.redeemScript!==void 0)throw new Error("Format Error: Input has multiple REDEEM_SCRIPT");w.redeemScript=Ze.inputs.redeemScript.decode(x);break;case Be.InputTypes.WITNESS_SCRIPT:if(St("input",x.key,Be.InputTypes.WITNESS_SCRIPT),w.witnessScript!==void 0)throw new Error("Format Error: Input has multiple WITNESS_SCRIPT");w.witnessScript=Ze.inputs.witnessScript.decode(x);break;case Be.InputTypes.BIP32_DERIVATION:w.bip32Derivation===void 0&&(w.bip32Derivation=[]),w.bip32Derivation.push(Ze.inputs.bip32Derivation.decode(x));break;case Be.InputTypes.FINAL_SCRIPTSIG:St("input",x.key,Be.InputTypes.FINAL_SCRIPTSIG),w.finalScriptSig=Ze.inputs.finalScriptSig.decode(x);break;case Be.InputTypes.FINAL_SCRIPTWITNESS:St("input",x.key,Be.InputTypes.FINAL_SCRIPTWITNESS),w.finalScriptWitness=Ze.inputs.finalScriptWitness.decode(x);break;case Be.InputTypes.POR_COMMITMENT:St("input",x.key,Be.InputTypes.POR_COMMITMENT),w.porCommitment=Ze.inputs.porCommitment.decode(x);break;case Be.InputTypes.TAP_KEY_SIG:St("input",x.key,Be.InputTypes.TAP_KEY_SIG),w.tapKeySig=Ze.inputs.tapKeySig.decode(x);break;case Be.InputTypes.TAP_SCRIPT_SIG:w.tapScriptSig===void 0&&(w.tapScriptSig=[]),w.tapScriptSig.push(Ze.inputs.tapScriptSig.decode(x));break;case Be.InputTypes.TAP_LEAF_SCRIPT:w.tapLeafScript===void 0&&(w.tapLeafScript=[]),w.tapLeafScript.push(Ze.inputs.tapLeafScript.decode(x));break;case Be.InputTypes.TAP_BIP32_DERIVATION:w.tapBip32Derivation===void 0&&(w.tapBip32Derivation=[]),w.tapBip32Derivation.push(Ze.inputs.tapBip32Derivation.decode(x));break;case Be.InputTypes.TAP_INTERNAL_KEY:St("input",x.key,Be.InputTypes.TAP_INTERNAL_KEY),w.tapInternalKey=Ze.inputs.tapInternalKey.decode(x);break;case Be.InputTypes.TAP_MERKLE_ROOT:St("input",x.key,Be.InputTypes.TAP_MERKLE_ROOT),w.tapMerkleRoot=Ze.inputs.tapMerkleRoot.decode(x);break;default:w.unknownKeyVals||(w.unknownKeyVals=[]),w.unknownKeyVals.push(x)}l.push(w)}for(let p of Xf.range(u)){let w={};for(let x of n[p])switch(Ze.outputs.checkPubkey(x),x.key[0]){case Be.OutputTypes.REDEEM_SCRIPT:if(St("output",x.key,Be.OutputTypes.REDEEM_SCRIPT),w.redeemScript!==void 0)throw new Error("Format Error: Output has multiple REDEEM_SCRIPT");w.redeemScript=Ze.outputs.redeemScript.decode(x);break;case Be.OutputTypes.WITNESS_SCRIPT:if(St("output",x.key,Be.OutputTypes.WITNESS_SCRIPT),w.witnessScript!==void 0)throw new Error("Format Error: Output has multiple WITNESS_SCRIPT");w.witnessScript=Ze.outputs.witnessScript.decode(x);break;case Be.OutputTypes.BIP32_DERIVATION:w.bip32Derivation===void 0&&(w.bip32Derivation=[]),w.bip32Derivation.push(Ze.outputs.bip32Derivation.decode(x));break;case Be.OutputTypes.TAP_INTERNAL_KEY:St("output",x.key,Be.OutputTypes.TAP_INTERNAL_KEY),w.tapInternalKey=Ze.outputs.tapInternalKey.decode(x);break;case Be.OutputTypes.TAP_TREE:St("output",x.key,Be.OutputTypes.TAP_TREE),w.tapTree=Ze.outputs.tapTree.decode(x);break;case Be.OutputTypes.TAP_BIP32_DERIVATION:w.tapBip32Derivation===void 0&&(w.tapBip32Derivation=[]),w.tapBip32Derivation.push(Ze.outputs.tapBip32Derivation.decode(x));break;default:w.unknownKeyVals||(w.unknownKeyVals=[]),w.unknownKeyVals.push(x)}c.push(w)}return{globalMap:i,inputs:l,outputs:c}}Do.psbtFromKeyVals=t2});var s2=T(Yf=>{"use strict";Object.defineProperty(Yf,"__esModule",{value:!0});var Jh=jf(),n2=Vf();function b8({globalMap:e,inputs:t,outputs:r}){let{globalKeyVals:n,inputKeyVals:i,outputKeyVals:s}=i2({globalMap:e,inputs:t,outputs:r}),a=n2.keyValsToBuffer(n),u=w=>w.length===0?[Buffer.from([0])]:w.map(n2.keyValsToBuffer),l=u(i),c=u(s),p=Buffer.allocUnsafe(5);return p.writeUIntBE(482972169471,0,5),Buffer.concat([p,a].concat(l,c))}Yf.psbtToBuffer=b8;var g8=(e,t)=>e.key.compare(t.key);function Zh(e,t){let r=new Set,n=Object.entries(e).reduce((s,[a,u])=>{if(a==="unknownKeyVals")return s;let l=t[a];if(l===void 0)return s;let c=(Array.isArray(u)?u:[u]).map(l.encode);return c.map(w=>w.key.toString("hex")).forEach(w=>{if(r.has(w))throw new Error("Serialize Error: Duplicate key: "+w);r.add(w)}),s.concat(c)},[]),i=e.unknownKeyVals?e.unknownKeyVals.filter(s=>!r.has(s.key.toString("hex"))):[];return n.concat(i).sort(g8)}function i2({globalMap:e,inputs:t,outputs:r}){return{globalKeyVals:Zh(e,Jh.globals),inputKeyVals:t.map(n=>Zh(n,Jh.inputs)),outputKeyVals:r.map(n=>Zh(n,Jh.outputs))}}Yf.psbtToKeyVals=i2});var Qh=T(Jf=>{"use strict";function o2(e){for(var t in e)Jf.hasOwnProperty(t)||(Jf[t]=e[t])}Object.defineProperty(Jf,"__esModule",{value:!0});o2(r2());o2(s2())});var f2=T(rl=>{"use strict";Object.defineProperty(rl,"__esModule",{value:!0});var el=Qh();function m8(e){let t=e[0],r=el.psbtToKeyVals(t),n=e.slice(1);if(n.length===0)throw new Error("Combine: Nothing to combine");let i=a2(t);if(i===void 0)throw new Error("Combine: Self missing transaction");let s=Bs(r.globalKeyVals),a=r.inputKeyVals.map(Bs),u=r.outputKeyVals.map(Bs);for(let l of n){let c=a2(l);if(c===void 0||!c.toBuffer().equals(i.toBuffer()))throw new Error("Combine: One of the Psbts does not have the same transaction.");let p=el.psbtToKeyVals(l);Bs(p.globalKeyVals).forEach(tl(s,r.globalKeyVals,p.globalKeyVals)),p.inputKeyVals.map(Bs).forEach((M,O)=>M.forEach(tl(a[O],r.inputKeyVals[O],p.inputKeyVals[O]))),p.outputKeyVals.map(Bs).forEach((M,O)=>M.forEach(tl(u[O],r.outputKeyVals[O],p.outputKeyVals[O])))}return el.psbtFromKeyVals(i,{globalMapKeyVals:r.globalKeyVals,inputKeyVals:r.inputKeyVals,outputKeyVals:r.outputKeyVals})}rl.combine=m8;function tl(e,t,r){return n=>{if(e.has(n))return;let i=r.filter(s=>s.key.toString("hex")===n)[0];t.push(i),e.add(n)}}function a2(e){return e.globalMap.unsignedTx}function Bs(e){let t=new Set;return e.forEach(r=>{let n=r.key.toString("hex");if(t.has(n))throw new Error("Combine: KeyValue Map keys should be unique");t.add(n)}),t}});var il=T(Ot=>{"use strict";Object.defineProperty(Ot,"__esModule",{value:!0});var y8=jf();function c2(e,t){let r=e[t];if(r===void 0)throw new Error(`No input #${t}`);return r}Ot.checkForInput=c2;function h2(e,t){let r=e[t];if(r===void 0)throw new Error(`No output #${t}`);return r}Ot.checkForOutput=h2;function w8(e,t,r){if(e.key[0]n.key.equals(e.key)).length!==0)throw new Error(`Duplicate Key: ${e.key.toString("hex")}`)}Ot.checkHasKey=w8;function _8(e){let t=0;return Object.keys(e).forEach(r=>{Number(isNaN(Number(r)))&&t++}),t}Ot.getEnumLength=_8;function E8(e,t){let r=!1;if(t.nonWitnessUtxo||t.witnessUtxo){let n=!!t.redeemScript,i=!!t.witnessScript,s=!n||!!t.finalScriptSig,a=!i||!!t.finalScriptWitness,u=!!t.finalScriptSig||!!t.finalScriptWitness;r=s&&a&&u}if(r===!1)throw new Error(`Input #${e} has too much or too little data to clean`)}Ot.inputCheckUncleanFinalized=E8;function u2(e,t,r,n){throw new Error(`Data for ${e} key ${t} is incorrect: Expected ${r} and got ${JSON.stringify(n)}`)}function nl(e){return(t,r)=>{for(let n of Object.keys(t)){let i=t[n],{canAdd:s,canAddToArray:a,check:u,expected:l}=y8[e+"s"][n]||{},c=!!a;if(u)if(c){if(!Array.isArray(i)||r[n]&&!Array.isArray(r[n]))throw new Error(`Key type ${n} must be an array`);i.every(u)||u2(e,n,l,i);let p=r[n]||[],w=new Set;if(!i.every(x=>a(p,x,w)))throw new Error("Can not add duplicate data to array");r[n]=p.concat(i)}else{if(u(i)||u2(e,n,l,i),!s(r,i))throw new Error(`Can not add duplicate data to ${e}`);r[n]=i}}}}Ot.updateGlobal=nl("global");Ot.updateInput=nl("input");Ot.updateOutput=nl("output");function x8(e,t){let r=e.length-1,n=c2(e,r);Ot.updateInput(t,n)}Ot.addInputAttributes=x8;function S8(e,t){let r=e.length-1,n=h2(e,r);Ot.updateOutput(t,n)}Ot.addOutputAttributes=S8;function I8(e,t){if(!Buffer.isBuffer(t)||t.length<4)throw new Error("Set Version: Invalid Transaction");return t.writeUInt32LE(e,0),t}Ot.defaultVersionSetter=I8;function T8(e,t){if(!Buffer.isBuffer(t)||t.length<4)throw new Error("Set Locktime: Invalid Transaction");return t.writeUInt32LE(e,t.length-4),t}Ot.defaultLocktimeSetter=T8});var d2=T(al=>{"use strict";Object.defineProperty(al,"__esModule",{value:!0});var M8=f2(),l2=Qh(),sl=vt(),It=il(),ol=class{constructor(t){this.inputs=[],this.outputs=[],this.globalMap={unsignedTx:t}}static fromBase64(t,r){let n=Buffer.from(t,"base64");return this.fromBuffer(n,r)}static fromHex(t,r){let n=Buffer.from(t,"hex");return this.fromBuffer(n,r)}static fromBuffer(t,r){let n=l2.psbtFromBuffer(t,r),i=new this(n.globalMap.unsignedTx);return Object.assign(i,n),i}toBase64(){return this.toBuffer().toString("base64")}toHex(){return this.toBuffer().toString("hex")}toBuffer(){return l2.psbtToBuffer(this)}updateGlobal(t){return It.updateGlobal(t,this.globalMap),this}updateInput(t,r){let n=It.checkForInput(this.inputs,t);return It.updateInput(r,n),this}updateOutput(t,r){let n=It.checkForOutput(this.outputs,t);return It.updateOutput(r,n),this}addUnknownKeyValToGlobal(t){return It.checkHasKey(t,this.globalMap.unknownKeyVals,It.getEnumLength(sl.GlobalTypes)),this.globalMap.unknownKeyVals||(this.globalMap.unknownKeyVals=[]),this.globalMap.unknownKeyVals.push(t),this}addUnknownKeyValToInput(t,r){let n=It.checkForInput(this.inputs,t);return It.checkHasKey(r,n.unknownKeyVals,It.getEnumLength(sl.InputTypes)),n.unknownKeyVals||(n.unknownKeyVals=[]),n.unknownKeyVals.push(r),this}addUnknownKeyValToOutput(t,r){let n=It.checkForOutput(this.outputs,t);return It.checkHasKey(r,n.unknownKeyVals,It.getEnumLength(sl.OutputTypes)),n.unknownKeyVals||(n.unknownKeyVals=[]),n.unknownKeyVals.push(r),this}addInput(t){this.globalMap.unsignedTx.addInput(t),this.inputs.push({unknownKeyVals:[]});let r=t.unknownKeyVals||[],n=this.inputs.length-1;if(!Array.isArray(r))throw new Error("unknownKeyVals must be an Array");return r.forEach(i=>this.addUnknownKeyValToInput(n,i)),It.addInputAttributes(this.inputs,t),this}addOutput(t){this.globalMap.unsignedTx.addOutput(t),this.outputs.push({unknownKeyVals:[]});let r=t.unknownKeyVals||[],n=this.outputs.length-1;if(!Array.isArray(r))throw new Error("unknownKeyVals must be an Array");return r.forEach(i=>this.addUnknownKeyValToInput(n,i)),It.addOutputAttributes(this.outputs,t),this}clearFinalizedInput(t){let r=It.checkForInput(this.inputs,t);It.inputCheckUncleanFinalized(t,r);for(let n of Object.keys(r))["witnessUtxo","nonWitnessUtxo","finalScriptSig","finalScriptWitness","unknownKeyVals"].includes(n)||delete r[n];return this}combine(...t){let r=M8.combine([this].concat(t));return Object.assign(this,r),this}getTransaction(){return this.globalMap.unsignedTx.toBuffer()}};al.Psbt=ol});var L2=T(hl=>{"use strict";Object.defineProperty(hl,"__esModule",{value:!0});var p2=d2(),Qf=Ci(),Nr=il(),v2=Uf(),eu=ko(),A8=Rr(),I2=Hf(),O8=zt(),Tt=Oo(),Dt=ke(),ut=No(),P8={network:O8.bitcoin,maximumFeeRate:5e3},Rs=class{constructor(t={},r=new p2.Psbt(new tu)){this.data=r,this.opts=Object.assign({},P8,t),this.__CACHE={__NON_WITNESS_UTXO_TX_CACHE:[],__NON_WITNESS_UTXO_BUF_CACHE:[],__TX_IN_CACHE:{},__TX:this.data.globalMap.unsignedTx.tx,__UNSAFE_SIGN_NONSEGWIT:!1},this.data.inputs.length===0&&this.setVersion(2);let n=(i,s,a,u)=>Object.defineProperty(i,s,{enumerable:a,writable:u});n(this,"__CACHE",!1,!0),n(this,"opts",!1,!0)}static fromBase64(t,r={}){let n=Buffer.from(t,"base64");return this.fromBuffer(n,r)}static fromHex(t,r={}){let n=Buffer.from(t,"hex");return this.fromBuffer(n,r)}static fromBuffer(t,r={}){let n=p2.Psbt.fromBuffer(t,B8),i=new Rs(r,n);return D8(i.__CACHE.__TX,i.__CACHE),i}get inputCount(){return this.data.inputs.length}get version(){return this.__CACHE.__TX.version}set version(t){this.setVersion(t)}get locktime(){return this.__CACHE.__TX.locktime}set locktime(t){this.setLocktime(t)}get txInputs(){return this.__CACHE.__TX.ins.map(t=>({hash:eu.cloneBuffer(t.hash),index:t.index,sequence:t.sequence}))}get txOutputs(){return this.__CACHE.__TX.outs.map(t=>{let r;try{r=v2.fromOutputScript(t.script,this.opts.network)}catch{}return{script:eu.cloneBuffer(t.script),value:t.value,address:r}})}combine(...t){return this.data.combine(...t.map(r=>r.data)),this}clone(){let t=Rs.fromBuffer(this.data.toBuffer());return t.opts=JSON.parse(JSON.stringify(this.opts)),t}setMaximumFeeRate(t){Zf(t),this.opts.maximumFeeRate=t}setVersion(t){Zf(t),Ho(this.data.inputs,"setVersion");let r=this.__CACHE;return r.__TX.version=t,r.__EXTRACTED_TX=void 0,this}setLocktime(t){Zf(t),Ho(this.data.inputs,"setLocktime");let r=this.__CACHE;return r.__TX.locktime=t,r.__EXTRACTED_TX=void 0,this}setInputSequence(t,r){Zf(r),Ho(this.data.inputs,"setInputSequence");let n=this.__CACHE;if(n.__TX.ins.length<=t)throw new Error("Input index too high");return n.__TX.ins[t].sequence=r,n.__EXTRACTED_TX=void 0,this}addInputs(t){return t.forEach(r=>this.addInput(r)),this}addInput(t){if(arguments.length>1||!t||t.hash===void 0||t.index===void 0)throw new Error("Invalid arguments for Psbt.addInput. Requires single object with at least [hash] and [index]");Ho(this.data.inputs,"addInput"),t.witnessScript&&ru(t.witnessScript);let r=this.__CACHE;this.data.addInput(t);let n=r.__TX.ins[r.__TX.ins.length-1];O2(r,n);let i=this.data.inputs.length-1,s=this.data.inputs[i];return s.nonWitnessUtxo&&ul(this.__CACHE,s,i),r.__FEE=void 0,r.__FEE_RATE=void 0,r.__EXTRACTED_TX=void 0,this}addOutputs(t){return t.forEach(r=>this.addOutput(r)),this}addOutput(t){if(arguments.length>1||!t||t.value===void 0||t.address===void 0&&t.script===void 0)throw new Error("Invalid arguments for Psbt.addOutput. Requires single object with at least [script or address] and [value]");Ho(this.data.inputs,"addOutput");let{address:r}=t;if(typeof r=="string"){let{network:i}=this.opts,s=v2.toOutputScript(r,i);t=Object.assign(t,{script:s})}let n=this.__CACHE;return this.data.addOutput(t),n.__FEE=void 0,n.__FEE_RATE=void 0,n.__EXTRACTED_TX=void 0,this}extractTransaction(t){if(!this.data.inputs.every(T2))throw new Error("Not finalized");let r=this.__CACHE;if(t||q8(this,r,this.opts),r.__EXTRACTED_TX)return r.__EXTRACTED_TX;let n=r.__TX.clone();return k2(this.data.inputs,n,r,!0),n}getFeeRate(){return _2("__FEE_RATE","fee rate",this.data.inputs,this.__CACHE)}getFee(){return _2("__FEE","fee",this.data.inputs,this.__CACHE)}finalizeAllInputs(){return Nr.checkForInput(this.data.inputs,0),Fo(this.data.inputs.length).forEach(t=>this.finalizeInput(t)),this}finalizeInput(t,r=H8){let n=Nr.checkForInput(this.data.inputs,t),{script:i,isP2SH:s,isP2WSH:a,isSegwit:u}=W8(t,n,this.__CACHE);if(!i)throw new Error(`No script found for input #${t}`);L8(n);let{finalScriptSig:l,finalScriptWitness:c}=r(t,n,i,u,s,a);if(l&&this.data.updateInput(t,{finalScriptSig:l}),c&&this.data.updateInput(t,{finalScriptWitness:c}),!l&&!c)throw new Error(`Unknown error finalizing input #${t}`);return this.data.clearFinalizedInput(t),this}getInputType(t){let r=Nr.checkForInput(this.data.inputs,t),n=N2(t,r,this.__CACHE),i=su(n,t,"input",r.redeemScript||X8(r.finalScriptSig),r.witnessScript||Y8(r.finalScriptWitness)),s=i.type==="raw"?"":i.type+"-",a=q2(i.meaningfulScript);return s+a}inputHasPubkey(t,r){let n=Nr.checkForInput(this.data.inputs,t);return $8(r,n,t,this.__CACHE)}inputHasHDKey(t,r){let n=Nr.checkForInput(this.data.inputs,t),i=m2(r);return!!n.bip32Derivation&&n.bip32Derivation.some(i)}outputHasPubkey(t,r){let n=Nr.checkForOutput(this.data.outputs,t);return j8(r,n,t,this.__CACHE)}outputHasHDKey(t,r){let n=Nr.checkForOutput(this.data.outputs,t),i=m2(r);return!!n.bip32Derivation&&n.bip32Derivation.some(i)}validateSignaturesOfAllInputs(){return Nr.checkForInput(this.data.inputs,0),Fo(this.data.inputs.length).map(r=>this.validateSignaturesOfInput(r)).reduce((r,n)=>n===!0&&r,!0)}validateSignaturesOfInput(t,r){let n=this.data.inputs[t],i=(n||{}).partialSig;if(!n||!i||i.length<1)throw new Error("No signatures to validate");let s=r?i.filter(p=>p.pubkey.equals(r)):i;if(s.length<1)throw new Error("No signatures for this pubkey");let a=[],u,l,c;for(let p of s){let w=Dt.signature.decode(p.signature),{hash:x,script:S}=c!==w.hashType?B2(t,Object.assign({},n,{sighashType:w.hashType}),this.__CACHE,!0):{hash:u,script:l};c=w.hashType,u=x,l=S,A2(p.pubkey,S,"verify");let M=I2.fromPublicKey(p.pubkey);a.push(M.verify(x,w.signature))}return a.every(p=>p===!0)}signAllInputsHD(t,r=[ut.Transaction.SIGHASH_ALL]){if(!t||!t.publicKey||!t.fingerprint)throw new Error("Need HDSigner to sign input");let n=[];for(let i of Fo(this.data.inputs.length))try{this.signInputHD(i,t,r),n.push(!0)}catch{n.push(!1)}if(n.every(i=>i===!1))throw new Error("No inputs were signed");return this}signAllInputsHDAsync(t,r=[ut.Transaction.SIGHASH_ALL]){return new Promise((n,i)=>{if(!t||!t.publicKey||!t.fingerprint)return i(new Error("Need HDSigner to sign input"));let s=[],a=[];for(let u of Fo(this.data.inputs.length))a.push(this.signInputHDAsync(u,t,r).then(()=>{s.push(!0)},()=>{s.push(!1)}));return Promise.all(a).then(()=>{if(s.every(u=>u===!1))return i(new Error("No inputs were signed"));n()})})}signInputHD(t,r,n=[ut.Transaction.SIGHASH_ALL]){if(!r||!r.publicKey||!r.fingerprint)throw new Error("Need HDSigner to sign input");return x2(t,this.data.inputs,r).forEach(s=>this.signInput(t,s,n)),this}signInputHDAsync(t,r,n=[ut.Transaction.SIGHASH_ALL]){return new Promise((i,s)=>{if(!r||!r.publicKey||!r.fingerprint)return s(new Error("Need HDSigner to sign input"));let u=x2(t,this.data.inputs,r).map(l=>this.signInputAsync(t,l,n));return Promise.all(u).then(()=>{i()}).catch(s)})}signAllInputs(t,r=[ut.Transaction.SIGHASH_ALL]){if(!t||!t.publicKey)throw new Error("Need Signer to sign input");let n=[];for(let i of Fo(this.data.inputs.length))try{this.signInput(i,t,r),n.push(!0)}catch{n.push(!1)}if(n.every(i=>i===!1))throw new Error("No inputs were signed");return this}signAllInputsAsync(t,r=[ut.Transaction.SIGHASH_ALL]){return new Promise((n,i)=>{if(!t||!t.publicKey)return i(new Error("Need Signer to sign input"));let s=[],a=[];for(let[u]of this.data.inputs.entries())a.push(this.signInputAsync(u,t,r).then(()=>{s.push(!0)},()=>{s.push(!1)}));return Promise.all(a).then(()=>{if(s.every(u=>u===!1))return i(new Error("No inputs were signed"));n()})})}signInput(t,r,n=[ut.Transaction.SIGHASH_ALL]){if(!r||!r.publicKey)throw new Error("Need Signer to sign input");let{hash:i,sighashType:s}=E2(this.data.inputs,t,r.publicKey,this.__CACHE,n),a=[{pubkey:r.publicKey,signature:Dt.signature.encode(r.sign(i),s)}];return this.data.updateInput(t,{partialSig:a}),this}signInputAsync(t,r,n=[ut.Transaction.SIGHASH_ALL]){return Promise.resolve().then(()=>{if(!r||!r.publicKey)throw new Error("Need Signer to sign input");let{hash:i,sighashType:s}=E2(this.data.inputs,t,r.publicKey,this.__CACHE,n);return Promise.resolve(r.sign(i)).then(a=>{let u=[{pubkey:r.publicKey,signature:Dt.signature.encode(a,s)}];this.data.updateInput(t,{partialSig:u})})})}toBuffer(){return fl(this.__CACHE),this.data.toBuffer()}toHex(){return fl(this.__CACHE),this.data.toHex()}toBase64(){return fl(this.__CACHE),this.data.toBase64()}updateGlobal(t){return this.data.updateGlobal(t),this}updateInput(t,r){return r.witnessScript&&ru(r.witnessScript),this.data.updateInput(t,r),r.nonWitnessUtxo&&ul(this.__CACHE,this.data.inputs[t],t),this}updateOutput(t,r){return this.data.updateOutput(t,r),this}addUnknownKeyValToGlobal(t){return this.data.addUnknownKeyValToGlobal(t),this}addUnknownKeyValToInput(t,r){return this.data.addUnknownKeyValToInput(t,r),this}addUnknownKeyValToOutput(t,r){return this.data.addUnknownKeyValToOutput(t,r),this}clearFinalizedInput(t){return this.data.clearFinalizedInput(t),this}};hl.Psbt=Rs;var B8=e=>new tu(e),tu=class{constructor(t=Buffer.from([2,0,0,0,0,0,0,0,0,0])){this.tx=ut.Transaction.fromBuffer(t),U8(this.tx),Object.defineProperty(this,"tx",{enumerable:!1,writable:!0})}getInputOutputCounts(){return{inputCount:this.tx.ins.length,outputCount:this.tx.outs.length}}addInput(t){if(t.hash===void 0||t.index===void 0||!Buffer.isBuffer(t.hash)&&typeof t.hash!="string"||typeof t.index!="number")throw new Error("Error adding input.");let r=typeof t.hash=="string"?eu.reverseBuffer(Buffer.from(t.hash,"hex")):t.hash;this.tx.addInput(r,t.index,t.sequence)}addOutput(t){if(t.script===void 0||t.value===void 0||!Buffer.isBuffer(t.script)||typeof t.value!="number")throw new Error("Error adding output.");this.tx.addOutput(t.script,t.value)}toBuffer(){return this.tx.toBuffer()}};function R8(e,t,r){switch(r){case"pubkey":case"pubkeyhash":case"witnesspubkeyhash":return b2(1,e.partialSig);case"multisig":let n=Tt.p2ms({output:t});return b2(n.m,e.partialSig,n.pubkeys);default:return!1}}function fl(e){if(e.__UNSAFE_SIGN_NONSEGWIT!==!1)throw new Error("Not BIP174 compliant, can not export")}function b2(e,t,r){if(!t)return!1;let n;if(r?n=r.map(i=>{let s=I2.fromPublicKey(i,{compressed:!0}).publicKey;return t.find(a=>a.pubkey.equals(s))}).filter(i=>!!i):n=t,n.length>e)throw new Error("Too many signatures");return n.length===e}function T2(e){return!!e.finalScriptSig||!!e.finalScriptWitness}function ks(e){return t=>{try{return e({output:t}),!0}catch{return!1}}}var k8=ks(Tt.p2ms),N8=ks(Tt.p2pk),C8=ks(Tt.p2pkh),nu=ks(Tt.p2wpkh),g2=ks(Tt.p2wsh),M2=ks(Tt.p2sh);function m2(e){return t=>!(!t.masterFingerprint.equals(e.fingerprint)||!e.derivePath(t.path).publicKey.equals(t.pubkey))}function Zf(e){if(typeof e!="number"||e!==Math.floor(e)||e>4294967295||e<0)throw new Error("Invalid 32 bit integer")}function q8(e,t,r){let n=t.__FEE_RATE||e.getFeeRate(),i=t.__EXTRACTED_TX.virtualSize(),s=n*i;if(n>=r.maximumFeeRate)throw new Error(`Warning: You are paying around ${(s/1e8).toFixed(8)} in fees, which is ${n} satoshi per byte for a transaction with a VSize of ${i} bytes (segwit counted as 0.25 byte per byte). Use setMaximumFeeRate method to raise your threshold, or pass true to the first arg of extractTransaction.`)}function Ho(e,t){e.forEach(r=>{let n=!1,i=[];if((r.partialSig||[]).length===0){if(!r.finalScriptSig&&!r.finalScriptWitness)return;i=G8(r)}else i=r.partialSig;if(i.forEach(s=>{let{hashType:a}=Dt.signature.decode(s.signature),u=[];switch(a&ut.Transaction.SIGHASH_ANYONECANPAY&&u.push("addInput"),a&31){case ut.Transaction.SIGHASH_ALL:break;case ut.Transaction.SIGHASH_SINGLE:case ut.Transaction.SIGHASH_NONE:u.push("addOutput"),u.push("setInputSequence");break}u.indexOf(t)===-1&&(n=!0)}),n)throw new Error("Can not modify transaction, signatures exist.")})}function L8(e){if(!e.sighashType||!e.partialSig)return;let{partialSig:t,sighashType:r}=e;t.forEach(n=>{let{hashType:i}=Dt.signature.decode(n.signature);if(r!==i)throw new Error("Signature sighash does not match input sighash type")})}function A2(e,t,r){if(!cl(e,t))throw new Error(`Can not ${r} for this input with the key ${e.toString("hex")}`)}function U8(e){if(!e.ins.every(r=>r.script&&r.script.length===0&&r.witness&&r.witness.length===0))throw new Error("Format Error: Transaction ScriptSigs are not empty")}function D8(e,t){e.ins.forEach(r=>{O2(t,r)})}function O2(e,t){let r=eu.reverseBuffer(Buffer.from(t.hash)).toString("hex")+":"+t.index;if(e.__TX_IN_CACHE[r])throw new Error("Duplicate input detected.");e.__TX_IN_CACHE[r]=1}function P2(e,t){return(r,n,i,s)=>{let a=e({redeem:{output:i}}).output;if(!n.equals(a))throw new Error(`${t} for ${s} #${r} doesn't match the scriptPubKey in the prevout`)}}var y2=P2(Tt.p2sh,"Redeem script"),w2=P2(Tt.p2wsh,"Witness script");function _2(e,t,r,n){if(!r.every(T2))throw new Error(`PSBT must be finalized to calculate ${t}`);if(e==="__FEE_RATE"&&n.__FEE_RATE)return n.__FEE_RATE;if(e==="__FEE"&&n.__FEE)return n.__FEE;let i,s=!0;if(n.__EXTRACTED_TX?(i=n.__EXTRACTED_TX,s=!1):i=n.__TX.clone(),k2(r,i,n,s),e==="__FEE_RATE")return n.__FEE_RATE;if(e==="__FEE")return n.__FEE}function H8(e,t,r,n,i,s){let a=q2(r);if(!R8(t,r,a))throw new Error(`Can not finalize input #${e}`);return F8(r,a,t.partialSig,n,i,s)}function F8(e,t,r,n,i,s){let a,u,l=K8(e,t,r),c=s?Tt.p2wsh({redeem:l}):null,p=i?Tt.p2sh({redeem:c||l}):null;return n?(c?u=S2(c.witness):u=S2(l.witness),p&&(a=p.input)):p?a=p.input:a=l.input,{finalScriptSig:a,finalScriptWitness:u}}function E2(e,t,r,n,i){let s=Nr.checkForInput(e,t),{hash:a,sighashType:u,script:l}=B2(t,s,n,!1,i);return A2(r,l,"sign"),{hash:a,sighashType:u}}function B2(e,t,r,n,i){let s=r.__TX,a=t.sighashType||ut.Transaction.SIGHASH_ALL;if(i&&i.indexOf(a)<0){let w=z8(a);throw new Error(`Sighash type is not allowed. Retry the sign method passing the sighashTypes array of whitelisted types. Sighash type: ${w}`)}let u,l;if(t.nonWitnessUtxo){let w=iu(r,t,e),x=s.ins[e].hash,S=w.getHash();if(!x.equals(S))throw new Error(`Non-witness UTXO hash for input #${e} doesn't match the hash specified in the prevout`);let M=s.ins[e].index;l=w.outs[M]}else if(t.witnessUtxo)l=t.witnessUtxo;else throw new Error("Need a Utxo input item for signing");let{meaningfulScript:c,type:p}=su(l.script,e,"input",t.redeemScript,t.witnessScript);if(["p2sh-p2wsh","p2wsh"].indexOf(p)>=0)u=s.hashForWitnessV0(e,c,l.value,a);else if(nu(c)){let w=Tt.p2pkh({hash:c.slice(2)}).output;u=s.hashForWitnessV0(e,w,l.value,a)}else{if(t.nonWitnessUtxo===void 0&&r.__UNSAFE_SIGN_NONSEGWIT===!1)throw new Error(`Input #${e} has witnessUtxo but non-segwit script: ${c.toString("hex")}`);!n&&r.__UNSAFE_SIGN_NONSEGWIT!==!1&&console.warn(`Warning: Signing non-segwit inputs without the full parent transaction means there is a chance that a miner could feed you incorrect information to trick you into paying large fees. This behavior is the same as the old TransactionBuilder class when signing non-segwit scripts. You are not able to export this Psbt with toBuffer|toBase64|toHex since it is not BIP174 compliant. +********************* +PROCEED WITH CAUTION! +*********************`),u=s.hashForSignature(e,c,a)}return{script:c,sighashType:a,hash:u}}function K8(e,t,r){let n;switch(t){case"multisig":let i=V8(e,r);n=Tt.p2ms({output:e,signatures:i});break;case"pubkey":n=Tt.p2pk({output:e,signature:r[0].signature});break;case"pubkeyhash":n=Tt.p2pkh({output:e,pubkey:r[0].pubkey,signature:r[0].signature});break;case"witnesspubkeyhash":n=Tt.p2wpkh({output:e,pubkey:r[0].pubkey,signature:r[0].signature});break}return n}function G8(e){let t=e.finalScriptSig?Dt.decompile(e.finalScriptSig)||[]:[],r=e.finalScriptWitness?Dt.decompile(e.finalScriptWitness)||[]:[];return t.concat(r).filter(n=>Buffer.isBuffer(n)&&Dt.isCanonicalScriptSignature(n)).map(n=>({signature:n}))}function W8(e,t,r){let n=r.__TX,i={script:null,isSegwit:!1,isP2SH:!1,isP2WSH:!1};if(i.isP2SH=!!t.redeemScript,i.isP2WSH=!!t.witnessScript,t.witnessScript)i.script=t.witnessScript;else if(t.redeemScript)i.script=t.redeemScript;else if(t.nonWitnessUtxo){let s=iu(r,t,e),a=n.ins[e].index;i.script=s.outs[a].script}else t.witnessUtxo&&(i.script=t.witnessUtxo.script);return(t.witnessScript||nu(i.script))&&(i.isSegwit=!0),i}function x2(e,t,r){let n=Nr.checkForInput(t,e);if(!n.bip32Derivation||n.bip32Derivation.length===0)throw new Error("Need bip32Derivation to sign with HD");let i=n.bip32Derivation.map(a=>{if(a.masterFingerprint.equals(r.fingerprint))return a}).filter(a=>!!a);if(i.length===0)throw new Error("Need one bip32Derivation masterFingerprint to match the HDSigner fingerprint");return i.map(a=>{let u=r.derivePath(a.path);if(!a.pubkey.equals(u.publicKey))throw new Error("pubkey did not match bip32Derivation");return u})}function V8(e,t){return Tt.p2ms({output:e}).pubkeys.map(n=>(t.filter(i=>i.pubkey.equals(n))[0]||{}).signature).filter(n=>!!n)}function R2(e){let t=0;function r(a){return t+=a,e.slice(t-a,t)}function n(){let a=Qf.decode(e,t);return t+=Qf.decode.bytes,a}function i(){return r(n())}function s(){let a=n(),u=[];for(let l=0;l{if(n&&l.finalScriptSig&&(t.ins[c].script=l.finalScriptSig),n&&l.finalScriptWitness&&(t.ins[c].witness=R2(l.finalScriptWitness)),l.witnessUtxo)i+=l.witnessUtxo.value;else if(l.nonWitnessUtxo){let p=iu(r,l,c),w=t.ins[c].index,x=p.outs[w];i+=x.value}});let s=t.outs.reduce((l,c)=>l+c.value,0),a=i-s;if(a<0)throw new Error("Outputs are spending more than Inputs");let u=t.virtualSize();r.__FEE=a,r.__EXTRACTED_TX=t,r.__FEE_RATE=Math.floor(a/u)}function iu(e,t,r){let n=e.__NON_WITNESS_UTXO_TX_CACHE;return n[r]||ul(e,t,r),n[r]}function N2(e,t,r){if(t.witnessUtxo!==void 0)return t.witnessUtxo.script;if(t.nonWitnessUtxo!==void 0)return iu(r,t,e).outs[r.__TX.ins[e].index].script;throw new Error("Can't find pubkey in input without Utxo data")}function $8(e,t,r,n){let i=N2(r,t,n),{meaningfulScript:s}=su(i,r,"input",t.redeemScript,t.witnessScript);return cl(e,s)}function j8(e,t,r,n){let i=n.__TX.outs[r].script,{meaningfulScript:s}=su(i,r,"output",t.redeemScript,t.witnessScript);return cl(e,s)}function X8(e){if(!e)return;let t=Dt.decompile(e);if(!t)return;let r=t[t.length-1];if(!(!Buffer.isBuffer(r)||C2(r)||J8(r)||!Dt.decompile(r)))return r}function Y8(e){if(!e)return;let t=R2(e),r=t[t.length-1];if(!(C2(r)||!Dt.decompile(r)))return r}function C2(e){return e.length===33&&Dt.isCanonicalPubKey(e)}function J8(e){return Dt.isCanonicalScriptSignature(e)}function su(e,t,r,n,i){let s=M2(e),a=s&&n&&g2(n),u=g2(e);if(s&&n===void 0)throw new Error("scriptPubkey is P2SH but redeemScript missing");if((u||a)&&i===void 0)throw new Error("scriptPubkey or redeemScript is P2WSH but witnessScript missing");let l;return a?(l=i,y2(t,e,n,r),w2(t,n,i,r),ru(l)):u?(l=i,w2(t,e,i,r),ru(l)):s?(l=n,y2(t,e,n,r)):l=e,{meaningfulScript:l,type:a?"p2sh-p2wsh":s?"p2sh":u?"p2wsh":"raw"}}function ru(e){if(nu(e)||M2(e))throw new Error("P2WPKH or P2SH can not be contained within P2WSH")}function cl(e,t){let r=A8.hash160(e),n=Dt.decompile(t);if(n===null)throw new Error("Unknown script error");return n.some(i=>typeof i=="number"?!1:i.equals(e)||i.equals(r))}function q2(e){return nu(e)?"witnesspubkeyhash":C8(e)?"pubkeyhash":k8(e)?"multisig":N8(e)?"pubkey":"nonstandard"}function Fo(e){return[...Array(e).keys()]}});var H2=T(dl=>{"use strict";Object.defineProperty(dl,"__esModule",{value:!0});var ll=ke(),U2=ke();function Z8(e){return e===U2.OPS.OP_0||ll.isCanonicalScriptSignature(e)}function D2(e,t){let r=ll.decompile(e);return r.length<2||r[0]!==U2.OPS.OP_0?!1:t?r.slice(1).every(Z8):r.slice(1).every(ll.isCanonicalScriptSignature)}dl.check=D2;D2.toJSON=()=>"multisig input"});var z2=T(pl=>{"use strict";Object.defineProperty(pl,"__esModule",{value:!0});var F2=ke(),W2=ke(),K2=vr(),G2=W2.OPS.OP_RESERVED;function V2(e,t){let r=F2.decompile(e);if(r.length<4||r[r.length-1]!==W2.OPS.OP_CHECKMULTISIG||!K2.Number(r[0])||!K2.Number(r[r.length-2]))return!1;let n=r[0]-G2,i=r[r.length-2]-G2;return n<=0||i>16||n>i||i!==r.length-3?!1:t?!0:r.slice(1,-2).every(F2.isCanonicalPubKey)}pl.check=V2;V2.toJSON=()=>"multi-sig output"});var au=T(ou=>{"use strict";Object.defineProperty(ou,"__esModule",{value:!0});var Q8=H2();ou.input=Q8;var e7=z2();ou.output=e7});var j2=T(fu=>{"use strict";Object.defineProperty(fu,"__esModule",{value:!0});var $2=ke(),t7=$2.OPS;function vl(e){let t=$2.compile(e);return t.length>1&&t[0]===t7.OP_RETURN}fu.check=vl;vl.toJSON=()=>"null data output";var r7={check:vl};fu.output=r7});var J2=T(bl=>{"use strict";Object.defineProperty(bl,"__esModule",{value:!0});var X2=ke();function Y2(e){let t=X2.decompile(e);return t.length===1&&X2.isCanonicalScriptSignature(t[0])}bl.check=Y2;Y2.toJSON=()=>"pubKey input"});var eg=T(gl=>{"use strict";Object.defineProperty(gl,"__esModule",{value:!0});var Z2=ke(),n7=ke();function Q2(e){let t=Z2.decompile(e);return t.length===2&&Z2.isCanonicalPubKey(t[0])&&t[1]===n7.OPS.OP_CHECKSIG}gl.check=Q2;Q2.toJSON=()=>"pubKey output"});var cu=T(uu=>{"use strict";Object.defineProperty(uu,"__esModule",{value:!0});var i7=J2();uu.input=i7;var s7=eg();uu.output=s7});var rg=T(yl=>{"use strict";Object.defineProperty(yl,"__esModule",{value:!0});var ml=ke();function tg(e){let t=ml.decompile(e);return t.length===2&&ml.isCanonicalScriptSignature(t[0])&&ml.isCanonicalPubKey(t[1])}yl.check=tg;tg.toJSON=()=>"pubKeyHash input"});var ig=T(wl=>{"use strict";Object.defineProperty(wl,"__esModule",{value:!0});var o7=ke(),hu=ke();function ng(e){let t=o7.compile(e);return t.length===25&&t[0]===hu.OPS.OP_DUP&&t[1]===hu.OPS.OP_HASH160&&t[2]===20&&t[23]===hu.OPS.OP_EQUALVERIFY&&t[24]===hu.OPS.OP_CHECKSIG}wl.check=ng;ng.toJSON=()=>"pubKeyHash output"});var du=T(lu=>{"use strict";Object.defineProperty(lu,"__esModule",{value:!0});var a7=rg();lu.input=a7;var f7=ig();lu.output=f7});var El=T(_l=>{"use strict";Object.defineProperty(_l,"__esModule",{value:!0});var u7=ke(),c7=ke();function sg(e){let t=u7.compile(e);return t.length===22&&t[0]===c7.OPS.OP_0&&t[1]===20}_l.check=sg;sg.toJSON=()=>"Witness pubKeyHash output"});var Sl=T(xl=>{"use strict";Object.defineProperty(xl,"__esModule",{value:!0});var h7=ke(),l7=ke();function og(e){let t=h7.compile(e);return t.length===34&&t[0]===l7.OPS.OP_0&&t[1]===32}xl.check=og;og.toJSON=()=>"Witness scriptHash output"});var hg=T(Il=>{"use strict";Object.defineProperty(Il,"__esModule",{value:!0});var Ko=ke(),ag=au(),fg=cu(),ug=du(),d7=El(),p7=Sl();function cg(e,t){let r=Ko.decompile(e);if(r.length<1)return!1;let n=r[r.length-1];if(!Buffer.isBuffer(n))return!1;let i=Ko.decompile(Ko.compile(r.slice(0,-1))),s=Ko.decompile(n);return!s||!Ko.isPushOnly(i)?!1:r.length===1?p7.check(s)||d7.check(s):!!(ug.input.check(i)&&ug.output.check(s)||ag.input.check(i,t)&&ag.output.check(s)||fg.input.check(i)&&fg.output.check(s))}Il.check=cg;cg.toJSON=()=>"scriptHash input"});var pg=T(Tl=>{"use strict";Object.defineProperty(Tl,"__esModule",{value:!0});var v7=ke(),lg=ke();function dg(e){let t=v7.compile(e);return t.length===23&&t[0]===lg.OPS.OP_HASH160&&t[1]===20&&t[22]===lg.OPS.OP_EQUAL}Tl.check=dg;dg.toJSON=()=>"scriptHash output"});var vg=T(pu=>{"use strict";Object.defineProperty(pu,"__esModule",{value:!0});var b7=hg();pu.input=b7;var g7=pg();pu.output=g7});var yg=T(Go=>{"use strict";Object.defineProperty(Go,"__esModule",{value:!0});var Ml=ke(),bg=ke(),m7=vr(),gg=ft(),mg=Buffer.from("aa21a9ed","hex");function Al(e){let t=Ml.compile(e);return t.length>37&&t[0]===bg.OPS.OP_RETURN&&t[1]===36&&t.slice(2,6).equals(mg)}Go.check=Al;Al.toJSON=()=>"Witness commitment output";function y7(e){gg(m7.Hash256bit,e);let t=Buffer.allocUnsafe(36);return mg.copy(t,0),e.copy(t,4),Ml.compile([bg.OPS.OP_RETURN,t])}Go.encode=y7;function w7(e){return gg(Al,e),Ml.decompile(e)[1].slice(4,36)}Go.decode=w7});var wg=T(Ol=>{"use strict";Object.defineProperty(Ol,"__esModule",{value:!0});var _7=yg();Ol.output=_7});var Eg=T(Bl=>{"use strict";Object.defineProperty(Bl,"__esModule",{value:!0});var Pl=ke();function E7(e){return Pl.isCanonicalPubKey(e)&&e.length===33}function _g(e){let t=Pl.decompile(e);return t.length===2&&Pl.isCanonicalScriptSignature(t[0])&&E7(t[1])}Bl.check=_g;_g.toJSON=()=>"witnessPubKeyHash input"});var xg=T(vu=>{"use strict";Object.defineProperty(vu,"__esModule",{value:!0});var x7=Eg();vu.input=x7;var S7=El();vu.output=S7});var Pg=T(Rl=>{"use strict";Object.defineProperty(Rl,"__esModule",{value:!0});var Sg=ke(),Ig=ft(),Tg=au(),Mg=cu(),Ag=du();function Og(e,t){if(Ig(Ig.Array,e),e.length<1)return!1;let r=e[e.length-1];if(!Buffer.isBuffer(r))return!1;let n=Sg.decompile(r);if(!n||n.length===0)return!1;let i=Sg.compile(e.slice(0,-1));return!!(Ag.input.check(i)&&Ag.output.check(n)||Tg.input.check(i,t)&&Tg.output.check(n)||Mg.input.check(i)&&Mg.output.check(n))}Rl.check=Og;Og.toJSON=()=>"witnessScriptHash input"});var Bg=T(bu=>{"use strict";Object.defineProperty(bu,"__esModule",{value:!0});var I7=Pg();bu.input=I7;var T7=Sl();bu.output=T7});var Ug=T(Ns=>{"use strict";Object.defineProperty(Ns,"__esModule",{value:!0});var kl=ke(),Rg=au(),M7=j2(),kg=cu(),Ng=du(),Cg=vg(),A7=wg(),qg=xg(),Lg=Bg(),bt={P2MS:"multisig",NONSTANDARD:"nonstandard",NULLDATA:"nulldata",P2PK:"pubkey",P2PKH:"pubkeyhash",P2SH:"scripthash",P2WPKH:"witnesspubkeyhash",P2WSH:"witnessscripthash",WITNESS_COMMITMENT:"witnesscommitment"};Ns.types=bt;function O7(e){if(qg.output.check(e))return bt.P2WPKH;if(Lg.output.check(e))return bt.P2WSH;if(Ng.output.check(e))return bt.P2PKH;if(Cg.output.check(e))return bt.P2SH;let t=kl.decompile(e);if(!t)throw new TypeError("Invalid script");return Rg.output.check(t)?bt.P2MS:kg.output.check(t)?bt.P2PK:A7.output.check(t)?bt.WITNESS_COMMITMENT:M7.output.check(t)?bt.NULLDATA:bt.NONSTANDARD}Ns.output=O7;function P7(e,t){let r=kl.decompile(e);if(!r)throw new TypeError("Invalid script");return Ng.input.check(r)?bt.P2PKH:Cg.input.check(r,t)?bt.P2SH:Rg.input.check(r,t)?bt.P2MS:kg.input.check(r)?bt.P2PK:bt.NONSTANDARD}Ns.input=P7;function B7(e,t){let r=kl.decompile(e);if(!r)throw new TypeError("Invalid script");return qg.input.check(r)?bt.P2WPKH:Lg.input.check(r,t)?bt.P2WSH:bt.NONSTANDARD}Ns.witness=B7});var Hg=T(Ll=>{"use strict";Object.defineProperty(Ll,"__esModule",{value:!0});var R7=Uf(),k7=ko(),Ui=Ug(),Dg=Rr(),N7=Hf(),C7=zt(),je=Oo(),Di=ke(),q7=ke(),nn=No(),sn=vr(),Ke=ft(),le=Ui.types,L7=new Set(["p2pkh","p2pk","p2wpkh","p2ms","p2sh-p2pkh","p2sh-p2pk","p2sh-p2wpkh","p2sh-p2ms","p2wsh-p2pkh","p2wsh-p2pk","p2wsh-p2ms","p2sh-p2wsh-p2pkh","p2sh-p2wsh-p2pk","p2sh-p2wsh-p2ms"]);function $e(e,t,r){try{Ke(e,t)}catch{throw new Error(r)}}function U7(e){return typeof e=="string"||e instanceof String}function D7(e){return e instanceof nn.Transaction}var Vo=class{constructor(t=C7.bitcoin,r=2500){this.network=t,this.maximumFeeRate=r,this.__PREV_TX_SET={},this.__INPUTS=[],this.__TX=new nn.Transaction,this.__TX.version=2,this.__USE_LOW_R=!1,console.warn("Deprecation Warning: TransactionBuilder will be removed in the future. (v6.x.x or later) Please use the Psbt class instead. Examples of usage are available in the transactions-psbt.js integration test file on our Github. A high level explanation is available in the psbt.ts and psbt.js files as well.")}static fromTransaction(t,r){let n=new Vo(r);return n.setVersion(t.version),n.setLockTime(t.locktime),t.outs.forEach(i=>{n.addOutput(i.script,i.value)}),t.ins.forEach(i=>{n.__addInputUnsafe(i.hash,i.index,{sequence:i.sequence,script:i.script,witness:i.witness})}),n.__INPUTS.forEach((i,s)=>{H7(i,t,s)}),n}setLowR(t){return Ke(Ke.maybe(Ke.Boolean),t),t===void 0&&(t=!0),this.__USE_LOW_R=t,t}setLockTime(t){if(Ke(sn.UInt32,t),this.__INPUTS.some(r=>r.signatures?r.signatures.some(n=>n!==void 0):!1))throw new Error("No, this would invalidate signatures");this.__TX.locktime=t}setVersion(t){Ke(sn.UInt32,t),this.__TX.version=t}addInput(t,r,n,i){if(!this.__canModifyInputs())throw new Error("No, this would invalidate signatures");let s;if(U7(t))t=k7.reverseBuffer(Buffer.from(t,"hex"));else if(D7(t)){let a=t.outs[r];i=a.script,s=a.value,t=t.getHash(!1)}return this.__addInputUnsafe(t,r,{sequence:n,prevOutScript:i,value:s})}addOutput(t,r){if(!this.__canModifyOutputs())throw new Error("No, this would invalidate signatures");return typeof t=="string"&&(t=R7.toOutputScript(t,this.network)),this.__TX.addOutput(t,r)}build(){return this.__build(!1)}buildIncomplete(){return this.__build(!0)}sign(t,r,n,i,s,a){G7(W7(this.network,this.__INPUTS,this.__needsOutputs.bind(this),this.__TX,t,r,n,i,s,a,this.__USE_LOW_R))}__addInputUnsafe(t,r,n){if(nn.Transaction.isCoinbaseHash(t))throw new Error("coinbase inputs not supported");let i=t.toString("hex")+":"+r;if(this.__PREV_TX_SET[i]!==void 0)throw new Error("Duplicate TxOut: "+i);let s={};if(n.script!==void 0&&(s=gu(n.script,n.witness||[])),n.value!==void 0&&(s.value=n.value),!s.prevOutScript&&n.prevOutScript){let u;if(!s.pubkeys&&!s.signatures){let l=Wo(n.prevOutScript);l.pubkeys&&(s.pubkeys=l.pubkeys,s.signatures=l.signatures),u=l.type}s.prevOutScript=n.prevOutScript,s.prevOutType=u||Ui.output(n.prevOutScript)}let a=this.__TX.addInput(t,r,n.sequence,n.scriptSig);return this.__INPUTS[a]=s,this.__PREV_TX_SET[i]=!0,a}__build(t){if(!t){if(!this.__TX.ins.length)throw new Error("Transaction has no inputs");if(!this.__TX.outs.length)throw new Error("Transaction has no outputs")}let r=this.__TX.clone();if(this.__INPUTS.forEach((n,i)=>{if(!n.prevOutType&&!t)throw new Error("Transaction is not complete");let s=ql(n.prevOutType,n,t);if(!s){if(!t&&n.prevOutType===le.NONSTANDARD)throw new Error("Unknown input type");if(!t)throw new Error("Not enough information");return}r.setInputScript(i,s.input),r.setWitness(i,s.witness)}),!t&&this.__overMaximumFees(r.virtualSize()))throw new Error("Transaction has absurd fees");return r}__canModifyInputs(){return this.__INPUTS.every(t=>t.signatures?t.signatures.every(r=>r?(Cl(r)&nn.Transaction.SIGHASH_ANYONECANPAY)!==0:!0):!0)}__needsOutputs(t){return t===nn.Transaction.SIGHASH_ALL?this.__TX.outs.length===0:this.__TX.outs.length===0&&this.__INPUTS.some(r=>r.signatures?r.signatures.some(n=>!(!n||Cl(n)&nn.Transaction.SIGHASH_NONE)):!1)}__canModifyOutputs(){let t=this.__TX.ins.length,r=this.__TX.outs.length;return this.__INPUTS.every(n=>n.signatures===void 0?!0:n.signatures.every(i=>{if(!i)return!0;let a=Cl(i)&31;return a===nn.Transaction.SIGHASH_NONE?!0:a===nn.Transaction.SIGHASH_SINGLE?t<=r:!1}))}__overMaximumFees(t){let r=this.__INPUTS.reduce((a,u)=>a+(u.value>>>0),0),n=this.__TX.outs.reduce((a,u)=>a+u.value,0);return(r-n)/t>this.maximumFeeRate}};Ll.TransactionBuilder=Vo;function gu(e,t,r,n){if(e.length===0&&t.length===0)return{};if(!r){let i=Ui.input(e,!0),s=Ui.witness(t,!0);i===le.NONSTANDARD&&(i=void 0),s===le.NONSTANDARD&&(s=void 0),r=i||s}switch(r){case le.P2WPKH:{let{output:i,pubkey:s,signature:a}=je.p2wpkh({witness:t});return{prevOutScript:i,prevOutType:le.P2WPKH,pubkeys:[s],signatures:[a]}}case le.P2PKH:{let{output:i,pubkey:s,signature:a}=je.p2pkh({input:e});return{prevOutScript:i,prevOutType:le.P2PKH,pubkeys:[s],signatures:[a]}}case le.P2PK:{let{signature:i}=je.p2pk({input:e});return{prevOutType:le.P2PK,pubkeys:[void 0],signatures:[i]}}case le.P2MS:{let{m:i,pubkeys:s,signatures:a}=je.p2ms({input:e,output:n},{allowIncomplete:!0});return{prevOutType:le.P2MS,pubkeys:s,signatures:a,maxSignatures:i}}}if(r===le.P2SH){let{output:i,redeem:s}=je.p2sh({input:e,witness:t}),a=Ui.output(s.output),u=gu(s.input,s.witness,a,s.output);return u.prevOutType?{prevOutScript:i,prevOutType:le.P2SH,redeemScript:s.output,redeemScriptType:u.prevOutType,witnessScript:u.witnessScript,witnessScriptType:u.witnessScriptType,pubkeys:u.pubkeys,signatures:u.signatures}:{}}if(r===le.P2WSH){let{output:i,redeem:s}=je.p2wsh({input:e,witness:t}),a=Ui.output(s.output),u;return a===le.P2WPKH?u=gu(s.input,s.witness,a):u=gu(Di.compile(s.witness),[],a,s.output),u.prevOutType?{prevOutScript:i,prevOutType:le.P2WSH,witnessScript:s.output,witnessScriptType:u.prevOutType,pubkeys:u.pubkeys,signatures:u.signatures}:{}}return{prevOutType:le.NONSTANDARD,prevOutScript:e}}function H7(e,t,r){if(e.redeemScriptType!==le.P2MS||!e.redeemScript||e.pubkeys.length===e.signatures.length)return;let n=e.signatures.concat();e.signatures=e.pubkeys.map(i=>{let s=N7.fromPublicKey(i),a;return n.some((u,l)=>{if(!u)return!1;let c=Di.signature.decode(u),p=t.hashForSignature(r,e.redeemScript,c.hashType);return s.verify(p,c.signature)?(n[l]=void 0,a=u,!0):!1}),a})}function Wo(e,t){Ke(sn.Buffer,e);let r=Ui.output(e);switch(r){case le.P2PKH:{if(!t)return{type:r};let n=je.p2pkh({output:e}).hash,i=Dg.hash160(t);return n.equals(i)?{type:r,pubkeys:[t],signatures:[void 0]}:{type:r}}case le.P2WPKH:{if(!t)return{type:r};let n=je.p2wpkh({output:e}).hash,i=Dg.hash160(t);return n.equals(i)?{type:r,pubkeys:[t],signatures:[void 0]}:{type:r}}case le.P2PK:{let n=je.p2pk({output:e});return{type:r,pubkeys:[n.pubkey],signatures:[void 0]}}case le.P2MS:{let n=je.p2ms({output:e});return{type:r,pubkeys:n.pubkeys,signatures:n.pubkeys.map(()=>{}),maxSignatures:n.m}}}return{type:r}}function F7(e,t,r,n){if(r&&n){let s=je.p2wsh({redeem:{output:n}}),a=je.p2wsh({output:r}),u=je.p2sh({redeem:{output:r}}),l=je.p2sh({redeem:s});if(!s.hash.equals(a.hash))throw new Error("Witness script inconsistent with prevOutScript");if(!u.hash.equals(l.hash))throw new Error("Redeem script inconsistent with prevOutScript");let c=Wo(s.redeem.output,t);if(!c.pubkeys)throw new Error(c.type+" not supported as witnessScript ("+Di.toASM(n)+")");e.signatures&&e.signatures.some(w=>w!==void 0)&&(c.signatures=e.signatures);let p=n;if(c.type===le.P2WPKH)throw new Error("P2SH(P2WSH(P2WPKH)) is a consensus failure");return{redeemScript:r,redeemScriptType:le.P2WSH,witnessScript:n,witnessScriptType:c.type,prevOutType:le.P2SH,prevOutScript:u.output,hasWitness:!0,signScript:p,signType:c.type,pubkeys:c.pubkeys,signatures:c.signatures,maxSignatures:c.maxSignatures}}if(r){let s=je.p2sh({redeem:{output:r}});if(e.prevOutScript){let l;try{l=je.p2sh({output:e.prevOutScript})}catch{throw new Error("PrevOutScript must be P2SH")}if(!s.hash.equals(l.hash))throw new Error("Redeem script inconsistent with prevOutScript")}let a=Wo(s.redeem.output,t);if(!a.pubkeys)throw new Error(a.type+" not supported as redeemScript ("+Di.toASM(r)+")");e.signatures&&e.signatures.some(l=>l!==void 0)&&(a.signatures=e.signatures);let u=r;return a.type===le.P2WPKH&&(u=je.p2pkh({pubkey:a.pubkeys[0]}).output),{redeemScript:r,redeemScriptType:a.type,prevOutType:le.P2SH,prevOutScript:s.output,hasWitness:a.type===le.P2WPKH,signScript:u,signType:a.type,pubkeys:a.pubkeys,signatures:a.signatures,maxSignatures:a.maxSignatures}}if(n){let s=je.p2wsh({redeem:{output:n}});if(e.prevOutScript){let l=je.p2wsh({output:e.prevOutScript});if(!s.hash.equals(l.hash))throw new Error("Witness script inconsistent with prevOutScript")}let a=Wo(s.redeem.output,t);if(!a.pubkeys)throw new Error(a.type+" not supported as witnessScript ("+Di.toASM(n)+")");e.signatures&&e.signatures.some(l=>l!==void 0)&&(a.signatures=e.signatures);let u=n;if(a.type===le.P2WPKH)throw new Error("P2WSH(P2WPKH) is a consensus failure");return{witnessScript:n,witnessScriptType:a.type,prevOutType:le.P2WSH,prevOutScript:s.output,hasWitness:!0,signScript:u,signType:a.type,pubkeys:a.pubkeys,signatures:a.signatures,maxSignatures:a.maxSignatures}}if(e.prevOutType&&e.prevOutScript){if(e.prevOutType===le.P2SH)throw new Error("PrevOutScript is "+e.prevOutType+", requires redeemScript");if(e.prevOutType===le.P2WSH)throw new Error("PrevOutScript is "+e.prevOutType+", requires witnessScript");if(!e.prevOutScript)throw new Error("PrevOutScript is missing");let s=Wo(e.prevOutScript,t);if(!s.pubkeys)throw new Error(s.type+" not supported ("+Di.toASM(e.prevOutScript)+")");e.signatures&&e.signatures.some(u=>u!==void 0)&&(s.signatures=e.signatures);let a=e.prevOutScript;return s.type===le.P2WPKH&&(a=je.p2pkh({pubkey:s.pubkeys[0]}).output),{prevOutType:s.type,prevOutScript:e.prevOutScript,hasWitness:s.type===le.P2WPKH,signScript:a,signType:s.type,pubkeys:s.pubkeys,signatures:s.signatures,maxSignatures:s.maxSignatures}}let i=je.p2pkh({pubkey:t}).output;return{prevOutType:le.P2PKH,prevOutScript:i,hasWitness:!1,signScript:i,signType:le.P2PKH,pubkeys:[t],signatures:[void 0]}}function ql(e,t,r){let n=t.pubkeys||[],i=t.signatures||[];switch(e){case le.P2PKH:{if(n.length===0||i.length===0)break;return je.p2pkh({pubkey:n[0],signature:i[0]})}case le.P2WPKH:{if(n.length===0||i.length===0)break;return je.p2wpkh({pubkey:n[0],signature:i[0]})}case le.P2PK:{if(n.length===0||i.length===0)break;return je.p2pk({signature:i[0]})}case le.P2MS:{let s=t.maxSignatures;r?i=i.map(u=>u||q7.OPS.OP_0):i=i.filter(u=>u);let a=!r||s===i.length;return je.p2ms({m:s,pubkeys:n,signatures:i},{allowIncomplete:r,validate:a})}case le.P2SH:{let s=ql(t.redeemScriptType,t,r);return s?je.p2sh({redeem:{output:s.output||t.redeemScript,input:s.input,witness:s.witness}}):void 0}case le.P2WSH:{let s=ql(t.witnessScriptType,t,r);return s?je.p2wsh({redeem:{output:t.witnessScript,input:s.input,witness:s.witness}}):void 0}}}function Nl(e){return e.signScript!==void 0&&e.signType!==void 0&&e.pubkeys!==void 0&&e.signatures!==void 0&&e.signatures.length===e.pubkeys.length&&e.pubkeys.length>0&&(e.hasWitness===!1||e.value!==void 0)}function Cl(e){return e.readUInt8(e.length-1)}function K7(e,t){if(!L7.has(t.prevOutScriptType))throw new TypeError(`Unknown prevOutScriptType "${t.prevOutScriptType}"`);$e(Ke.Number,t.vin,"sign must include vin parameter as Number (input index)"),$e(sn.Signer,t.keyPair,"sign must include keyPair parameter as Signer interface"),$e(Ke.maybe(Ke.Number),t.hashType,"sign hashType parameter must be a number");let r=(e[t.vin]||[]).prevOutType,n=t.prevOutScriptType;switch(n){case"p2pkh":if(r&&r!=="pubkeyhash")throw new TypeError(`input #${t.vin} is not of type p2pkh: ${r}`);$e(Ke.value(void 0),t.witnessScript,`${n} requires NO witnessScript`),$e(Ke.value(void 0),t.redeemScript,`${n} requires NO redeemScript`),$e(Ke.value(void 0),t.witnessValue,`${n} requires NO witnessValue`);break;case"p2pk":if(r&&r!=="pubkey")throw new TypeError(`input #${t.vin} is not of type p2pk: ${r}`);$e(Ke.value(void 0),t.witnessScript,`${n} requires NO witnessScript`),$e(Ke.value(void 0),t.redeemScript,`${n} requires NO redeemScript`),$e(Ke.value(void 0),t.witnessValue,`${n} requires NO witnessValue`);break;case"p2wpkh":if(r&&r!=="witnesspubkeyhash")throw new TypeError(`input #${t.vin} is not of type p2wpkh: ${r}`);$e(Ke.value(void 0),t.witnessScript,`${n} requires NO witnessScript`),$e(Ke.value(void 0),t.redeemScript,`${n} requires NO redeemScript`),$e(sn.Satoshi,t.witnessValue,`${n} requires witnessValue`);break;case"p2ms":if(r&&r!=="multisig")throw new TypeError(`input #${t.vin} is not of type p2ms: ${r}`);$e(Ke.value(void 0),t.witnessScript,`${n} requires NO witnessScript`),$e(Ke.value(void 0),t.redeemScript,`${n} requires NO redeemScript`),$e(Ke.value(void 0),t.witnessValue,`${n} requires NO witnessValue`);break;case"p2sh-p2wpkh":if(r&&r!=="scripthash")throw new TypeError(`input #${t.vin} is not of type p2sh-p2wpkh: ${r}`);$e(Ke.value(void 0),t.witnessScript,`${n} requires NO witnessScript`),$e(Ke.Buffer,t.redeemScript,`${n} requires redeemScript`),$e(sn.Satoshi,t.witnessValue,`${n} requires witnessValue`);break;case"p2sh-p2ms":case"p2sh-p2pk":case"p2sh-p2pkh":if(r&&r!=="scripthash")throw new TypeError(`input #${t.vin} is not of type ${n}: ${r}`);$e(Ke.value(void 0),t.witnessScript,`${n} requires NO witnessScript`),$e(Ke.Buffer,t.redeemScript,`${n} requires redeemScript`),$e(Ke.value(void 0),t.witnessValue,`${n} requires NO witnessValue`);break;case"p2wsh-p2ms":case"p2wsh-p2pk":case"p2wsh-p2pkh":if(r&&r!=="witnessscripthash")throw new TypeError(`input #${t.vin} is not of type ${n}: ${r}`);$e(Ke.Buffer,t.witnessScript,`${n} requires witnessScript`),$e(Ke.value(void 0),t.redeemScript,`${n} requires NO redeemScript`),$e(sn.Satoshi,t.witnessValue,`${n} requires witnessValue`);break;case"p2sh-p2wsh-p2ms":case"p2sh-p2wsh-p2pk":case"p2sh-p2wsh-p2pkh":if(r&&r!=="scripthash")throw new TypeError(`input #${t.vin} is not of type ${n}: ${r}`);$e(Ke.Buffer,t.witnessScript,`${n} requires witnessScript`),$e(Ke.Buffer,t.redeemScript,`${n} requires witnessScript`),$e(sn.Satoshi,t.witnessValue,`${n} requires witnessScript`);break}}function G7({input:e,ourPubKey:t,keyPair:r,signatureHash:n,hashType:i,useLowR:s}){let a=!1;for(let[u,l]of e.pubkeys.entries()){if(!t.equals(l))continue;if(e.signatures[u])throw new Error("Signature already exists");if(t.length!==33&&e.hasWitness)throw new Error("BIP143 rejects uncompressed public keys in P2WPKH or P2WSH");let c=r.sign(n,s);e.signatures[u]=Di.signature.encode(c,i),a=!0}if(!a)throw new Error("Key pair cannot sign for this input")}function W7(e,t,r,n,i,s,a,u,l,c,p){let w;if(typeof i=="number")console.warn("DEPRECATED: TransactionBuilder sign method arguments will change in v6, please use the TxbSignArg interface"),w=i;else if(typeof i=="object")K7(t,i),{vin:w,keyPair:s,redeemScript:a,hashType:u,witnessValue:l,witnessScript:c}=i;else throw new TypeError("TransactionBuilder sign first arg must be TxbSignArg or number");if(s===void 0)throw new Error("sign requires keypair");if(s.network&&s.network!==e)throw new TypeError("Inconsistent network");if(!t[w])throw new Error("No input at index: "+w);if(u=u||nn.Transaction.SIGHASH_ALL,r(u))throw new Error("Transaction needs outputs");let x=t[w];if(x.redeemScript!==void 0&&a&&!x.redeemScript.equals(a))throw new Error("Inconsistent redeemScript");let S=s.publicKey||s.getPublicKey&&s.getPublicKey();if(!Nl(x)){if(l!==void 0){if(x.value!==void 0&&x.value!==l)throw new Error("Input did not match witnessValue");Ke(sn.Satoshi,l),x.value=l}if(!Nl(x)){let O=F7(x,S,a,c);Object.assign(x,O)}if(!Nl(x))throw Error(x.prevOutType+" not supported")}let M;return x.hasWitness?M=n.hashForWitnessV0(w,x.signScript,x.value,u):M=n.hashForSignature(w,x.signScript,u),{input:x,ourPubKey:S,keyPair:s,signatureHash:M,hashType:u,useLowR:!!p}}});var Cs=T(Ht=>{"use strict";Object.defineProperty(Ht,"__esModule",{value:!0});var V7=X1();Ht.bip32=V7;var z7=Uf();Ht.address=z7;var $7=Rr();Ht.crypto=$7;var j7=Hf();Ht.ECPair=j7;var X7=zt();Ht.networks=X7;var Y7=Oo();Ht.payments=Y7;var J7=ke();Ht.script=J7;var Z7=cb();Ht.Block=Z7.Block;var Q7=L2();Ht.Psbt=Q7.Psbt;var e9=ke();Ht.opcodes=e9.OPS;var t9=No();Ht.Transaction=t9.Transaction;var r9=Hg();Ht.TransactionBuilder=r9.TransactionBuilder});var Ul=T((tN,Fg)=>{var tr=function(e){if(!Array.isArray(e))throw new Error("Input must be an Array");if(e.length===0)throw new Error("Path must contain at least one level");for(var t=0;t=2147483648)throw new Error("Invalid child index");if(s[2]==="h"||s[2]==="H"||s[2]==="'")n[i]+=2147483648;else if(s[2].length!=0)throw new Error("Invalid modifier")}return new tr(n)};tr.prototype.toPathArray=function(){return this.path};tr.prototype.toString=function(e,t){for(var r=new Array(this.path.length),n=0;n"};Fg.exports=tr});var zl=T((sN,Vg)=>{Vg.exports=require("stream")});var Xg=T((aN,jg)=>{"use strict";function zg(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function $g(e){for(var t=1;t0?this.tail.next=r:this.head=r,this.tail=r,++this.length}unshift(t){let r={data:t,next:this.head};this.length===0&&(this.tail=r),this.head=r,++this.length}shift(){if(this.length===0)return;let t=this.head.data;return this.length===1?this.head=this.tail=null:this.head=this.head.next,--this.length,t}clear(){this.head=this.tail=null,this.length=0}join(t){if(this.length===0)return"";for(var r=this.head,n=""+r.data;r=r.next;)n+=t+r.data;return n}concat(t){if(this.length===0)return xu.alloc(0);let r=xu.allocUnsafe(t>>>0);for(var n=this.head,i=0;n;)u9(n.data,r,i),i+=n.data.length,n=n.next;return r}consume(t,r){var n;return ts.length?s.length:t;if(a===s.length?i+=s:i+=s.slice(0,t),t-=a,t===0){a===s.length?(++n,r.next?this.head=r.next:this.head=this.tail=null):(this.head=r,r.data=s.slice(a));break}++n}return this.length-=n,i}_getBuffer(t){let r=xu.allocUnsafe(t);var n=this.head,i=1;for(n.data.copy(r),t-=n.data.length;n=n.next;){let s=n.data,a=t>s.length?s.length:t;if(s.copy(r,r.length-t,0,a),t-=a,t===0){a===s.length?(++i,n.next?this.head=n.next:this.head=this.tail=null):(this.head=n,n.data=s.slice(a));break}++i}return this.length-=i,r}[f9](t,r){return $l(this,$g($g({},r),{},{depth:0,customInspect:!1}))}}});var Xl=T((fN,Jg)=>{"use strict";function c9(e,t){let r=this._readableState&&this._readableState.destroyed,n=this._writableState&&this._writableState.destroyed;return r||n?(t?t(e):e&&(this._writableState?this._writableState.errorEmitted||(this._writableState.errorEmitted=!0,process.nextTick(jl,this,e)):process.nextTick(jl,this,e)),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(e||null,i=>{!t&&i?this._writableState?this._writableState.errorEmitted?process.nextTick(Su,this):(this._writableState.errorEmitted=!0,process.nextTick(Yg,this,i)):process.nextTick(Yg,this,i):t?(process.nextTick(Su,this),t(i)):process.nextTick(Su,this)}),this)}function Yg(e,t){jl(e,t),Su(e)}function Su(e){e._writableState&&!e._writableState.emitClose||e._readableState&&!e._readableState.emitClose||e.emit("close")}function h9(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finalCalled=!1,this._writableState.prefinished=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)}function jl(e,t){e.emit("error",t)}function l9(e,t){let r=e._readableState,n=e._writableState;r&&r.autoDestroy||n&&n.autoDestroy?e.destroy(t):e.emit("error",t)}Jg.exports={destroy:c9,undestroy:h9,errorOrDestroy:l9}});var Cn=T((uN,em)=>{"use strict";var Qg={};function nr(e,t,r){r||(r=Error);function n(s,a,u){return typeof t=="string"?t:t(s,a,u)}class i extends r{constructor(a,u,l){super(n(a,u,l))}}i.prototype.name=r.name,i.prototype.code=e,Qg[e]=i}function Zg(e,t){if(Array.isArray(e)){let r=e.length;return e=e.map(n=>String(n)),r>2?`one of ${t} ${e.slice(0,r-1).join(", ")}, or `+e[r-1]:r===2?`one of ${t} ${e[0]} or ${e[1]}`:`of ${t} ${e[0]}`}else return`of ${t} ${String(e)}`}function d9(e,t,r){return e.substr(!r||r<0?0:+r,t.length)===t}function p9(e,t,r){return(r===void 0||r>e.length)&&(r=e.length),e.substring(r-t.length,r)===t}function v9(e,t,r){return typeof r!="number"&&(r=0),r+t.length>e.length?!1:e.indexOf(t,r)!==-1}nr("ERR_INVALID_OPT_VALUE",function(e,t){return'The value "'+t+'" is invalid for option "'+e+'"'},TypeError);nr("ERR_INVALID_ARG_TYPE",function(e,t,r){let n;typeof t=="string"&&d9(t,"not ")?(n="must not be",t=t.replace(/^not /,"")):n="must be";let i;if(p9(e," argument"))i=`The ${e} ${n} ${Zg(t,"type")}`;else{let s=v9(e,".")?"property":"argument";i=`The "${e}" ${s} ${n} ${Zg(t,"type")}`}return i+=`. Received type ${typeof r}`,i},TypeError);nr("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF");nr("ERR_METHOD_NOT_IMPLEMENTED",function(e){return"The "+e+" method is not implemented"});nr("ERR_STREAM_PREMATURE_CLOSE","Premature close");nr("ERR_STREAM_DESTROYED",function(e){return"Cannot call "+e+" after a stream was destroyed"});nr("ERR_MULTIPLE_CALLBACK","Callback called multiple times");nr("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable");nr("ERR_STREAM_WRITE_AFTER_END","write after end");nr("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError);nr("ERR_UNKNOWN_ENCODING",function(e){return"Unknown encoding: "+e},TypeError);nr("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event");em.exports.codes=Qg});var Yl=T((cN,tm)=>{"use strict";var b9=Cn().codes.ERR_INVALID_OPT_VALUE;function g9(e,t,r){return e.highWaterMark!=null?e.highWaterMark:t?e[r]:null}function m9(e,t,r,n){let i=g9(t,n,r);if(i!=null){if(!(isFinite(i)&&Math.floor(i)===i)||i<0){let s=n?r:"highWaterMark";throw new b9(s,i)}return Math.floor(i)}return e.objectMode?16:16*1024}tm.exports={getHighWaterMark:m9}});var nm=T((hN,rm)=>{rm.exports=require("util").deprecate});var Ql=T((lN,um)=>{"use strict";um.exports=at;function sm(e){this.next=null,this.entry=null,this.finish=()=>{V9(this,e)}}var Hs;at.WritableState=Xo;var y9={deprecate:nm()},om=zl(),Tu=require("buffer").Buffer,w9=(typeof global<"u"?global:typeof window<"u"?window:typeof self<"u"?self:{}).Uint8Array||function(){};function _9(e){return Tu.from(e)}function E9(e){return Tu.isBuffer(e)||e instanceof w9}var Zl=Xl(),x9=Yl(),S9=x9.getHighWaterMark,qn=Cn().codes,I9=qn.ERR_INVALID_ARG_TYPE,T9=qn.ERR_METHOD_NOT_IMPLEMENTED,M9=qn.ERR_MULTIPLE_CALLBACK,A9=qn.ERR_STREAM_CANNOT_PIPE,O9=qn.ERR_STREAM_DESTROYED,P9=qn.ERR_STREAM_NULL_VALUES,B9=qn.ERR_STREAM_WRITE_AFTER_END,R9=qn.ERR_UNKNOWN_ENCODING,Fs=Zl.errorOrDestroy;ht()(at,om);function k9(){}function Xo(e,t,r){Hs=Hs||Hi(),e=e||{},typeof r!="boolean"&&(r=t instanceof Hs),this.objectMode=!!e.objectMode,r&&(this.objectMode=this.objectMode||!!e.writableObjectMode),this.highWaterMark=S9(this,e,"writableHighWaterMark",r),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var n=e.decodeStrings===!1;this.decodeStrings=!n,this.defaultEncoding=e.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(i){H9(t,i)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.emitClose=e.emitClose!==!1,this.autoDestroy=!!e.autoDestroy,this.bufferedRequestCount=0,this.corkedRequestsFree=new sm(this)}Xo.prototype.getBuffer=function(){for(var t=this.bufferedRequest,r=[];t;)r.push(t),t=t.next;return r};(function(){try{Object.defineProperty(Xo.prototype,"buffer",{get:y9.deprecate(function(){return this.getBuffer()},"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch{}})();var Iu;typeof Symbol=="function"&&Symbol.hasInstance&&typeof Function.prototype[Symbol.hasInstance]=="function"?(Iu=Function.prototype[Symbol.hasInstance],Object.defineProperty(at,Symbol.hasInstance,{value:function(t){return Iu.call(this,t)?!0:this!==at?!1:t&&t._writableState instanceof Xo}})):Iu=function(t){return t instanceof this};function at(e){Hs=Hs||Hi();let t=this instanceof Hs;if(!t&&!Iu.call(at,this))return new at(e);this._writableState=new Xo(e,this,t),this.writable=!0,e&&(typeof e.write=="function"&&(this._write=e.write),typeof e.writev=="function"&&(this._writev=e.writev),typeof e.destroy=="function"&&(this._destroy=e.destroy),typeof e.final=="function"&&(this._final=e.final)),om.call(this)}at.prototype.pipe=function(){Fs(this,new A9)};function N9(e,t){var r=new B9;Fs(e,r),process.nextTick(t,r)}function C9(e,t,r,n){var i;return r===null?i=new P9:typeof r!="string"&&!t.objectMode&&(i=new I9("chunk",["string","Buffer"],r)),i?(Fs(e,i),process.nextTick(n,i),!1):!0}at.prototype.write=function(e,t,r){var n=this._writableState,i=!1,s=!n.objectMode&&E9(e);return s&&!Tu.isBuffer(e)&&(e=_9(e)),typeof t=="function"&&(r=t,t=null),s?t="buffer":t||(t=n.defaultEncoding),typeof r!="function"&&(r=k9),n.ending?N9(this,r):(s||C9(this,n,e,r))&&(n.pendingcb++,i=L9(this,n,s,e,t,r)),i};at.prototype.cork=function(){this._writableState.corked++};at.prototype.uncork=function(){var e=this._writableState;e.corked&&(e.corked--,!e.writing&&!e.corked&&!e.bufferProcessing&&e.bufferedRequest&&am(this,e))};at.prototype.setDefaultEncoding=function(t){if(typeof t=="string"&&(t=t.toLowerCase()),!(["hex","utf8","utf-8","ascii","binary","base64","ucs2","ucs-2","utf16le","utf-16le","raw"].indexOf((t+"").toLowerCase())>-1))throw new R9(t);return this._writableState.defaultEncoding=t,this};Object.defineProperty(at.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}});function q9(e,t,r){return!e.objectMode&&e.decodeStrings!==!1&&typeof t=="string"&&(t=Tu.from(t,r)),t}Object.defineProperty(at.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}});function L9(e,t,r,n,i,s){if(!r){var a=q9(t,n,i);n!==a&&(r=!0,i="buffer",n=a)}var u=t.objectMode?1:n.length;t.length+=u;var l=t.length{t.pendingcb--,r&&Fs(e,r),t.prefinished=!0,e.emit("prefinish"),jo(e,t)})}function G9(e,t){!t.prefinished&&!t.finalCalled&&(typeof e._final=="function"&&!t.destroyed?(t.pendingcb++,t.finalCalled=!0,process.nextTick(K9,e,t)):(t.prefinished=!0,e.emit("prefinish")))}function jo(e,t){var r=fm(t);if(r&&(G9(e,t),t.pendingcb===0&&(t.finished=!0,e.emit("finish"),t.autoDestroy))){let n=e._readableState;(!n||n.autoDestroy&&n.endEmitted)&&e.destroy()}return r}function W9(e,t,r){t.ending=!0,jo(e,t),r&&(t.finished?process.nextTick(r):e.once("finish",r)),t.ended=!0,e.writable=!1}function V9(e,t,r){var n=e.entry;for(e.entry=null;n;){var i=n.callback;t.pendingcb--,i(r),n=n.next}t.corkedRequestsFree.next=e}Object.defineProperty(at.prototype,"destroyed",{enumerable:!1,get(){return this._writableState===void 0?!1:this._writableState.destroyed},set(e){!this._writableState||(this._writableState.destroyed=e)}});at.prototype.destroy=Zl.destroy;at.prototype._undestroy=Zl.undestroy;at.prototype._destroy=function(e,t){t(e)}});var Hi=T((dN,hm)=>{"use strict";var z9=Object.keys||function(e){var t=[];for(var r in e)t.push(r);return t};hm.exports=Lr;var cm=t0(),e0=Ql();ht()(Lr,cm);{let e=z9(e0.prototype);for(Mu=0;Mu{"use strict";var n0=qt().Buffer,lm=n0.isEncoding||function(e){switch(e=""+e,e&&e.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}};function X9(e){if(!e)return"utf8";for(var t;;)switch(e){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return e;default:if(t)return;e=(""+e).toLowerCase(),t=!0}}function Y9(e){var t=X9(e);if(typeof t!="string"&&(n0.isEncoding===lm||!lm(e)))throw new Error("Unknown encoding: "+e);return t||e}dm.StringDecoder=Yo;function Yo(e){this.encoding=Y9(e);var t;switch(this.encoding){case"utf16le":this.text=rI,this.end=nI,t=4;break;case"utf8":this.fillLast=Q9,t=4;break;case"base64":this.text=iI,this.end=sI,t=3;break;default:this.write=oI,this.end=aI;return}this.lastNeed=0,this.lastTotal=0,this.lastChar=n0.allocUnsafe(t)}Yo.prototype.write=function(e){if(e.length===0)return"";var t,r;if(this.lastNeed){if(t=this.fillLast(e),t===void 0)return"";r=this.lastNeed,this.lastNeed=0}else r=0;return r>5===6?2:e>>4===14?3:e>>3===30?4:e>>6===2?-1:-2}function J9(e,t,r){var n=t.length-1;if(n=0?(i>0&&(e.lastNeed=i-1),i):--n=0?(i>0&&(e.lastNeed=i-2),i):--n=0?(i>0&&(i===2?i=0:e.lastNeed=i-3),i):0))}function Z9(e,t,r){if((t[0]&192)!==128)return e.lastNeed=0,"\uFFFD";if(e.lastNeed>1&&t.length>1){if((t[1]&192)!==128)return e.lastNeed=1,"\uFFFD";if(e.lastNeed>2&&t.length>2&&(t[2]&192)!==128)return e.lastNeed=2,"\uFFFD"}}function Q9(e){var t=this.lastTotal-this.lastNeed,r=Z9(this,e,t);if(r!==void 0)return r;if(this.lastNeed<=e.length)return e.copy(this.lastChar,t,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);e.copy(this.lastChar,t,0,e.length),this.lastNeed-=e.length}function eI(e,t){var r=J9(this,e,t);if(!this.lastNeed)return e.toString("utf8",t);this.lastTotal=r;var n=e.length-(r-this.lastNeed);return e.copy(this.lastChar,0,n),e.toString("utf8",t,n)}function tI(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+"\uFFFD":t}function rI(e,t){if((e.length-t)%2===0){var r=e.toString("utf16le",t);if(r){var n=r.charCodeAt(r.length-1);if(n>=55296&&n<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1],r.slice(0,-1)}return r}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=e[e.length-1],e.toString("utf16le",t,e.length-1)}function nI(e){var t=e&&e.length?this.write(e):"";if(this.lastNeed){var r=this.lastTotal-this.lastNeed;return t+this.lastChar.toString("utf16le",0,r)}return t}function iI(e,t){var r=(e.length-t)%3;return r===0?e.toString("base64",t):(this.lastNeed=3-r,this.lastTotal=3,r===1?this.lastChar[0]=e[e.length-1]:(this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1]),e.toString("base64",t,e.length-r))}function sI(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+this.lastChar.toString("base64",0,3-this.lastNeed):t}function oI(e){return e.toString(this.encoding)}function aI(e){return e&&e.length?this.write(e):""}});var Au=T((vN,bm)=>{"use strict";var pm=Cn().codes.ERR_STREAM_PREMATURE_CLOSE;function fI(e){let t=!1;return function(){if(!t){t=!0;for(var r=arguments.length,n=new Array(r),i=0;i{e.writable||u()};var a=e._writableState&&e._writableState.finished;let u=()=>{i=!1,a=!0,n||r.call(e)};var l=e._readableState&&e._readableState.endEmitted;let c=()=>{n=!1,l=!0,i||r.call(e)},p=S=>{r.call(e,S)},w=()=>{let S;if(n&&!l)return(!e._readableState||!e._readableState.ended)&&(S=new pm),r.call(e,S);if(i&&!a)return(!e._writableState||!e._writableState.ended)&&(S=new pm),r.call(e,S)},x=()=>{e.req.on("finish",u)};return cI(e)?(e.on("complete",u),e.on("abort",w),e.req?x():e.on("request",x)):i&&!e._writableState&&(e.on("end",s),e.on("close",s)),e.on("end",c),e.on("finish",u),t.error!==!1&&e.on("error",p),e.on("close",w),function(){e.removeListener("complete",u),e.removeListener("abort",w),e.removeListener("request",x),e.req&&e.req.removeListener("finish",u),e.removeListener("end",s),e.removeListener("close",s),e.removeListener("finish",u),e.removeListener("end",c),e.removeListener("error",p),e.removeListener("close",w)}}bm.exports=vm});var mm=T((bN,gm)=>{"use strict";var hI=Au(),Ln=Symbol("lastResolve"),Fi=Symbol("lastReject"),Jo=Symbol("error"),Ou=Symbol("ended"),Ki=Symbol("lastPromise"),s0=Symbol("handlePromise"),Gi=Symbol("stream");function Un(e,t){return{value:e,done:t}}function lI(e){let t=e[Ln];if(t!==null){let r=e[Gi].read();r!==null&&(e[Ki]=null,e[Ln]=null,e[Fi]=null,t(Un(r,!1)))}}function dI(e){process.nextTick(lI,e)}function pI(e,t){return(r,n)=>{e.then(()=>{if(t[Ou]){r(Un(void 0,!0));return}t[s0](r,n)},n)}}var vI=Object.getPrototypeOf(function(){}),bI=Object.setPrototypeOf({get stream(){return this[Gi]},next(){let e=this[Jo];if(e!==null)return Promise.reject(e);if(this[Ou])return Promise.resolve(Un(void 0,!0));if(this[Gi].destroyed)return new Promise((n,i)=>{process.nextTick(()=>{this[Jo]?i(this[Jo]):n(Un(void 0,!0))})});let t=this[Ki],r;if(t)r=new Promise(pI(t,this));else{let n=this[Gi].read();if(n!==null)return Promise.resolve(Un(n,!1));r=new Promise(this[s0])}return this[Ki]=r,r},[Symbol.asyncIterator](){return this},return(){return new Promise((e,t)=>{this[Gi].destroy(null,r=>{if(r){t(r);return}e(Un(void 0,!0))})})}},vI),gI=e=>{let t=Object.create(bI,{[Gi]:{value:e,writable:!0},[Ln]:{value:null,writable:!0},[Fi]:{value:null,writable:!0},[Jo]:{value:null,writable:!0},[Ou]:{value:e._readableState.endEmitted,writable:!0},[s0]:{value:(r,n)=>{let i=t[Gi].read();i?(t[Ki]=null,t[Ln]=null,t[Fi]=null,r(Un(i,!1))):(t[Ln]=r,t[Fi]=n)},writable:!0}});return t[Ki]=null,hI(e,r=>{if(r&&r.code!=="ERR_STREAM_PREMATURE_CLOSE"){let i=t[Fi];i!==null&&(t[Ki]=null,t[Ln]=null,t[Fi]=null,i(r)),t[Jo]=r;return}let n=t[Ln];n!==null&&(t[Ki]=null,t[Ln]=null,t[Fi]=null,n(Un(void 0,!0))),t[Ou]=!0}),e.on("readable",dI.bind(null,t)),t};gm.exports=gI});var Em=T((gN,_m)=>{"use strict";function ym(e,t,r,n,i,s,a){try{var u=e[s](a),l=u.value}catch(c){r(c);return}u.done?t(l):Promise.resolve(l).then(n,i)}function mI(e){return function(){var t=this,r=arguments;return new Promise(function(n,i){var s=e.apply(t,r);function a(l){ym(s,n,i,a,u,"next",l)}function u(l){ym(s,n,i,a,u,"throw",l)}a(void 0)})}}function wm(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function yI(e){for(var t=1;t{"use strict";Rm.exports=Ue;var Ks;Ue.ReadableState=Tm;var mN=require("events").EventEmitter,Im=function(t,r){return t.listeners(r).length},Qo=zl(),Pu=require("buffer").Buffer,II=(typeof global<"u"?global:typeof window<"u"?window:typeof self<"u"?self:{}).Uint8Array||function(){};function TI(e){return Pu.from(e)}function MI(e){return Pu.isBuffer(e)||e instanceof II}var o0=require("util"),Ne;o0&&o0.debuglog?Ne=o0.debuglog("stream"):Ne=function(){};var AI=Xg(),d0=Xl(),OI=Yl(),PI=OI.getHighWaterMark,Bu=Cn().codes,BI=Bu.ERR_INVALID_ARG_TYPE,RI=Bu.ERR_STREAM_PUSH_AFTER_EOF,kI=Bu.ERR_METHOD_NOT_IMPLEMENTED,NI=Bu.ERR_STREAM_UNSHIFT_AFTER_END_EVENT,Gs,a0,f0;ht()(Ue,Qo);var Zo=d0.errorOrDestroy,u0=["error","close","destroy","pause","resume"];function CI(e,t,r){if(typeof e.prependListener=="function")return e.prependListener(t,r);!e._events||!e._events[t]?e.on(t,r):Array.isArray(e._events[t])?e._events[t].unshift(r):e._events[t]=[r,e._events[t]]}function Tm(e,t,r){Ks=Ks||Hi(),e=e||{},typeof r!="boolean"&&(r=t instanceof Ks),this.objectMode=!!e.objectMode,r&&(this.objectMode=this.objectMode||!!e.readableObjectMode),this.highWaterMark=PI(this,e,"readableHighWaterMark",r),this.buffer=new AI,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.paused=!0,this.emitClose=e.emitClose!==!1,this.autoDestroy=!!e.autoDestroy,this.destroyed=!1,this.defaultEncoding=e.defaultEncoding||"utf8",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,e.encoding&&(Gs||(Gs=i0().StringDecoder),this.decoder=new Gs(e.encoding),this.encoding=e.encoding)}function Ue(e){if(Ks=Ks||Hi(),!(this instanceof Ue))return new Ue(e);let t=this instanceof Ks;this._readableState=new Tm(e,this,t),this.readable=!0,e&&(typeof e.read=="function"&&(this._read=e.read),typeof e.destroy=="function"&&(this._destroy=e.destroy)),Qo.call(this)}Object.defineProperty(Ue.prototype,"destroyed",{enumerable:!1,get(){return this._readableState===void 0?!1:this._readableState.destroyed},set(e){!this._readableState||(this._readableState.destroyed=e)}});Ue.prototype.destroy=d0.destroy;Ue.prototype._undestroy=d0.undestroy;Ue.prototype._destroy=function(e,t){t(e)};Ue.prototype.push=function(e,t){var r=this._readableState,n;return r.objectMode?n=!0:typeof e=="string"&&(t=t||r.defaultEncoding,t!==r.encoding&&(e=Pu.from(e,t),t=""),n=!0),Mm(this,e,t,!1,n)};Ue.prototype.unshift=function(e){return Mm(this,e,null,!0,!1)};function Mm(e,t,r,n,i){Ne("readableAddChunk",t);var s=e._readableState;if(t===null)s.reading=!1,UI(e,s);else{var a;if(i||(a=qI(s,t)),a)Zo(e,a);else if(s.objectMode||t&&t.length>0)if(typeof t!="string"&&!s.objectMode&&Object.getPrototypeOf(t)!==Pu.prototype&&(t=TI(t)),n)s.endEmitted?Zo(e,new NI):c0(e,s,t,!0);else if(s.ended)Zo(e,new RI);else{if(s.destroyed)return!1;s.reading=!1,s.decoder&&!r?(t=s.decoder.write(t),s.objectMode||t.length!==0?c0(e,s,t,!1):l0(e,s)):c0(e,s,t,!1)}else n||(s.reading=!1,l0(e,s))}return!s.ended&&(s.length=xm?e=xm:(e--,e|=e>>>1,e|=e>>>2,e|=e>>>4,e|=e>>>8,e|=e>>>16,e++),e}function Sm(e,t){return e<=0||t.length===0&&t.ended?0:t.objectMode?1:e!==e?t.flowing&&t.length?t.buffer.head.data.length:t.length:(e>t.highWaterMark&&(t.highWaterMark=LI(e)),e<=t.length?e:t.ended?t.length:(t.needReadable=!0,0))}Ue.prototype.read=function(e){Ne("read",e),e=parseInt(e,10);var t=this._readableState,r=e;if(e!==0&&(t.emittedReadable=!1),e===0&&t.needReadable&&((t.highWaterMark!==0?t.length>=t.highWaterMark:t.length>0)||t.ended))return Ne("read: emitReadable",t.length,t.ended),t.length===0&&t.ended?h0(this):Ru(this),null;if(e=Sm(e,t),e===0&&t.ended)return t.length===0&&h0(this),null;var n=t.needReadable;Ne("need readable",n),(t.length===0||t.length-e0?i=Pm(e,t):i=null,i===null?(t.needReadable=t.length<=t.highWaterMark,e=0):(t.length-=e,t.awaitDrain=0),t.length===0&&(t.ended||(t.needReadable=!0),r!==e&&t.ended&&h0(this)),i!==null&&this.emit("data",i),i};function UI(e,t){if(Ne("onEofChunk"),!t.ended){if(t.decoder){var r=t.decoder.end();r&&r.length&&(t.buffer.push(r),t.length+=t.objectMode?1:r.length)}t.ended=!0,t.sync?Ru(e):(t.needReadable=!1,t.emittedReadable||(t.emittedReadable=!0,Am(e)))}}function Ru(e){var t=e._readableState;Ne("emitReadable",t.needReadable,t.emittedReadable),t.needReadable=!1,t.emittedReadable||(Ne("emitReadable",t.flowing),t.emittedReadable=!0,process.nextTick(Am,e))}function Am(e){var t=e._readableState;Ne("emitReadable_",t.destroyed,t.length,t.ended),!t.destroyed&&(t.length||t.ended)&&(e.emit("readable"),t.emittedReadable=!1),t.needReadable=!t.flowing&&!t.ended&&t.length<=t.highWaterMark,p0(e)}function l0(e,t){t.readingMore||(t.readingMore=!0,process.nextTick(DI,e,t))}function DI(e,t){for(;!t.reading&&!t.ended&&(t.length1&&Bm(n.pipes,e)!==-1)&&!c&&(Ne("false write response, pause",n.awaitDrain),n.awaitDrain++),r.pause())}function x(P){Ne("onerror",P),O(),e.removeListener("error",x),Im(e,"error")===0&&Zo(e,P)}CI(e,"error",x);function S(){e.removeListener("finish",M),O()}e.once("close",S);function M(){Ne("onfinish"),e.removeListener("close",S),O()}e.once("finish",M);function O(){Ne("unpipe"),r.unpipe(e)}return e.emit("pipe",r),n.flowing||(Ne("pipe resume"),r.resume()),e};function HI(e){return function(){var r=e._readableState;Ne("pipeOnDrain",r.awaitDrain),r.awaitDrain&&r.awaitDrain--,r.awaitDrain===0&&Im(e,"data")&&(r.flowing=!0,p0(e))}}Ue.prototype.unpipe=function(e){var t=this._readableState,r={hasUnpiped:!1};if(t.pipesCount===0)return this;if(t.pipesCount===1)return e&&e!==t.pipes?this:(e||(e=t.pipes),t.pipes=null,t.pipesCount=0,t.flowing=!1,e&&e.emit("unpipe",this,r),this);if(!e){var n=t.pipes,i=t.pipesCount;t.pipes=null,t.pipesCount=0,t.flowing=!1;for(var s=0;s0,n.flowing!==!1&&this.resume()):e==="readable"&&!n.endEmitted&&!n.readableListening&&(n.readableListening=n.needReadable=!0,n.flowing=!1,n.emittedReadable=!1,Ne("on readable",n.length,n.reading),n.length?Ru(this):n.reading||process.nextTick(FI,this)),r};Ue.prototype.addListener=Ue.prototype.on;Ue.prototype.removeListener=function(e,t){let r=Qo.prototype.removeListener.call(this,e,t);return e==="readable"&&process.nextTick(Om,this),r};Ue.prototype.removeAllListeners=function(e){let t=Qo.prototype.removeAllListeners.apply(this,arguments);return(e==="readable"||e===void 0)&&process.nextTick(Om,this),t};function Om(e){let t=e._readableState;t.readableListening=e.listenerCount("readable")>0,t.resumeScheduled&&!t.paused?t.flowing=!0:e.listenerCount("data")>0&&e.resume()}function FI(e){Ne("readable nexttick read 0"),e.read(0)}Ue.prototype.resume=function(){var e=this._readableState;return e.flowing||(Ne("resume"),e.flowing=!e.readableListening,KI(this,e)),e.paused=!1,this};function KI(e,t){t.resumeScheduled||(t.resumeScheduled=!0,process.nextTick(GI,e,t))}function GI(e,t){Ne("resume",t.reading),t.reading||e.read(0),t.resumeScheduled=!1,e.emit("resume"),p0(e),t.flowing&&!t.reading&&e.read(0)}Ue.prototype.pause=function(){return Ne("call pause flowing=%j",this._readableState.flowing),this._readableState.flowing!==!1&&(Ne("pause"),this._readableState.flowing=!1,this.emit("pause")),this._readableState.paused=!0,this};function p0(e){let t=e._readableState;for(Ne("flow",t.flowing);t.flowing&&e.read()!==null;);}Ue.prototype.wrap=function(e){var t=this._readableState,r=!1;e.on("end",()=>{if(Ne("wrapped end"),t.decoder&&!t.ended){var s=t.decoder.end();s&&s.length&&this.push(s)}this.push(null)}),e.on("data",s=>{if(Ne("wrapped data"),t.decoder&&(s=t.decoder.write(s)),!(t.objectMode&&s==null)&&!(!t.objectMode&&(!s||!s.length))){var a=this.push(s);a||(r=!0,e.pause())}});for(var n in e)this[n]===void 0&&typeof e[n]=="function"&&(this[n]=function(a){return function(){return e[a].apply(e,arguments)}}(n));for(var i=0;i{Ne("wrapped _read",s),r&&(r=!1,e.resume())},this};typeof Symbol=="function"&&(Ue.prototype[Symbol.asyncIterator]=function(){return a0===void 0&&(a0=mm()),a0(this)});Object.defineProperty(Ue.prototype,"readableHighWaterMark",{enumerable:!1,get:function(){return this._readableState.highWaterMark}});Object.defineProperty(Ue.prototype,"readableBuffer",{enumerable:!1,get:function(){return this._readableState&&this._readableState.buffer}});Object.defineProperty(Ue.prototype,"readableFlowing",{enumerable:!1,get:function(){return this._readableState.flowing},set:function(t){this._readableState&&(this._readableState.flowing=t)}});Ue._fromList=Pm;Object.defineProperty(Ue.prototype,"readableLength",{enumerable:!1,get(){return this._readableState.length}});function Pm(e,t){if(t.length===0)return null;var r;return t.objectMode?r=t.buffer.shift():!e||e>=t.length?(t.decoder?r=t.buffer.join(""):t.buffer.length===1?r=t.buffer.first():r=t.buffer.concat(t.length),t.buffer.clear()):r=t.buffer.consume(e,t.decoder),r}function h0(e){var t=e._readableState;Ne("endReadable",t.endEmitted),t.endEmitted||(t.ended=!0,process.nextTick(WI,t,e))}function WI(e,t){if(Ne("endReadableNT",e.endEmitted,e.length),!e.endEmitted&&e.length===0&&(e.endEmitted=!0,t.readable=!1,t.emit("end"),e.autoDestroy)){let r=t._writableState;(!r||r.autoDestroy&&r.finished)&&t.destroy()}}typeof Symbol=="function"&&(Ue.from=function(e,t){return f0===void 0&&(f0=Em()),f0(Ue,e,t)});function Bm(e,t){for(var r=0,n=e.length;r{"use strict";Nm.exports=on;var ku=Cn().codes,VI=ku.ERR_METHOD_NOT_IMPLEMENTED,zI=ku.ERR_MULTIPLE_CALLBACK,$I=ku.ERR_TRANSFORM_ALREADY_TRANSFORMING,jI=ku.ERR_TRANSFORM_WITH_LENGTH_0,Nu=Hi();ht()(on,Nu);function XI(e,t){var r=this._transformState;r.transforming=!1;var n=r.writecb;if(n===null)return this.emit("error",new zI);r.writechunk=null,r.writecb=null,t!=null&&this.push(t),n(e);var i=this._readableState;i.reading=!1,(i.needReadable||i.length{km(this,e,t)}):km(this,null,null)}on.prototype.push=function(e,t){return this._transformState.needTransform=!1,Nu.prototype.push.call(this,e,t)};on.prototype._transform=function(e,t,r){r(new VI("_transform()"))};on.prototype._write=function(e,t,r){var n=this._transformState;if(n.writecb=r,n.writechunk=e,n.writeencoding=t,!n.transforming){var i=this._readableState;(n.needTransform||i.needReadable||i.length{t(r)})};function km(e,t,r){if(t)return e.emit("error",t);if(r!=null&&e.push(r),e._writableState.length)throw new jI;if(e._transformState.transforming)throw new $I;return e.push(null)}});var Lm=T((_N,qm)=>{"use strict";qm.exports=ea;var Cm=v0();ht()(ea,Cm);function ea(e){if(!(this instanceof ea))return new ea(e);Cm.call(this,e)}ea.prototype._transform=function(e,t,r){r(null,e)}});var Km=T((EN,Fm)=>{"use strict";var b0;function JI(e){let t=!1;return function(){t||(t=!0,e(...arguments))}}var Hm=Cn().codes,ZI=Hm.ERR_MISSING_ARGS,QI=Hm.ERR_STREAM_DESTROYED;function Um(e){if(e)throw e}function eT(e){return e.setHeader&&typeof e.abort=="function"}function tT(e,t,r,n){n=JI(n);let i=!1;e.on("close",()=>{i=!0}),b0===void 0&&(b0=Au()),b0(e,{readable:t,writable:r},a=>{if(a)return n(a);i=!0,n()});let s=!1;return a=>{if(!i&&!s){if(s=!0,eT(e))return e.abort();if(typeof e.destroy=="function")return e.destroy();n(a||new QI("pipe"))}}}function Dm(e){e()}function rT(e,t){return e.pipe(t)}function nT(e){return!e.length||typeof e[e.length-1]!="function"?Um:e.pop()}function iT(){for(var e=arguments.length,t=new Array(e),r=0;r0;return tT(a,l,c,function(p){i||(i=p),p&&s.forEach(Dm),!l&&(s.forEach(Dm),n(i))})});return t.reduce(rT)}Fm.exports=iT});var Gm=T((ir,ra)=>{var ta=require("stream");process.env.READABLE_STREAM==="disable"&&ta?(ra.exports=ta.Readable,Object.assign(ra.exports,ta),ra.exports.Stream=ta):(ir=ra.exports=t0(),ir.Stream=ta||ir,ir.Readable=ir,ir.Writable=Ql(),ir.Duplex=Hi(),ir.Transform=v0(),ir.PassThrough=Lm(),ir.finished=Au(),ir.pipeline=Km())});var zm=T((xN,Vm)=>{"use strict";var Cu=qt().Buffer,Wm=Gm().Transform,sT=ht();function oT(e,t){if(!Cu.isBuffer(e)&&typeof e!="string")throw new TypeError(t+" must be a string or a buffer")}function Dn(e){Wm.call(this),this._block=Cu.allocUnsafe(e),this._blockSize=e,this._blockOffset=0,this._length=[0,0,0,0],this._finalized=!1}sT(Dn,Wm);Dn.prototype._transform=function(e,t,r){var n=null;try{this.update(e,t)}catch(i){n=i}r(n)};Dn.prototype._flush=function(e){var t=null;try{this.push(this.digest())}catch(r){t=r}e(t)};Dn.prototype.update=function(e,t){if(oT(e,"Data"),this._finalized)throw new Error("Digest already called");Cu.isBuffer(e)||(e=Cu.from(e,t));for(var r=this._block,n=0;this._blockOffset+e.length-n>=this._blockSize;){for(var i=this._blockOffset;i0;++s)this._length[s]+=a,a=this._length[s]/4294967296|0,a>0&&(this._length[s]-=4294967296*a);return this};Dn.prototype._update=function(){throw new Error("_update is not implemented")};Dn.prototype.digest=function(e){if(this._finalized)throw new Error("Digest already called");this._finalized=!0;var t=this._digest();e!==void 0&&(t=t.toString(e)),this._block.fill(0),this._blockOffset=0;for(var r=0;r<4;++r)this._length[r]=0;return t};Dn.prototype._digest=function(){throw new Error("_digest is not implemented")};Vm.exports=Dn});var m0=T((SN,Qm)=>{"use strict";var g0=require("buffer").Buffer,aT=ht(),Zm=zm(),fT=new Array(16),na=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13],ia=[5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11],sa=[11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6],oa=[8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11],aa=[0,1518500249,1859775393,2400959708,2840853838],fa=[1352829926,1548603684,1836072691,2053994217,0];function qu(){Zm.call(this,64),this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520}aT(qu,Zm);qu.prototype._update=function(){for(var e=fT,t=0;t<16;++t)e[t]=this._block.readInt32LE(t*4);for(var r=this._a|0,n=this._b|0,i=this._c|0,s=this._d|0,a=this._e|0,u=this._a|0,l=this._b|0,c=this._c|0,p=this._d|0,w=this._e|0,x=0;x<80;x+=1){var S,M;x<16?(S=$m(r,n,i,s,a,e[na[x]],aa[0],sa[x]),M=Jm(u,l,c,p,w,e[ia[x]],fa[0],oa[x])):x<32?(S=jm(r,n,i,s,a,e[na[x]],aa[1],sa[x]),M=Ym(u,l,c,p,w,e[ia[x]],fa[1],oa[x])):x<48?(S=Xm(r,n,i,s,a,e[na[x]],aa[2],sa[x]),M=Xm(u,l,c,p,w,e[ia[x]],fa[2],oa[x])):x<64?(S=Ym(r,n,i,s,a,e[na[x]],aa[3],sa[x]),M=jm(u,l,c,p,w,e[ia[x]],fa[3],oa[x])):(S=Jm(r,n,i,s,a,e[na[x]],aa[4],sa[x]),M=$m(u,l,c,p,w,e[ia[x]],fa[4],oa[x])),r=a,a=s,s=Wi(i,10),i=n,n=S,u=w,w=p,p=Wi(c,10),c=l,l=M}var O=this._b+i+p|0;this._b=this._c+s+w|0,this._c=this._d+a+u|0,this._d=this._e+r+l|0,this._e=this._a+n+c|0,this._a=O};qu.prototype._digest=function(){this._block[this._blockOffset++]=128,this._blockOffset>56&&(this._block.fill(0,this._blockOffset,64),this._update(),this._blockOffset=0),this._block.fill(0,this._blockOffset,56),this._block.writeUInt32LE(this._length[0],56),this._block.writeUInt32LE(this._length[1],60),this._update();var e=g0.alloc?g0.alloc(20):new g0(20);return e.writeInt32LE(this._a,0),e.writeInt32LE(this._b,4),e.writeInt32LE(this._c,8),e.writeInt32LE(this._d,12),e.writeInt32LE(this._e,16),e};function Wi(e,t){return e<>>32-t}function $m(e,t,r,n,i,s,a,u){return Wi(e+(t^r^n)+s+a|0,u)+i|0}function jm(e,t,r,n,i,s,a,u){return Wi(e+(t&r|~t&n)+s+a|0,u)+i|0}function Xm(e,t,r,n,i,s,a,u){return Wi(e+((t|~r)^n)+s+a|0,u)+i|0}function Ym(e,t,r,n,i,s,a,u){return Wi(e+(t&n|r&~n)+s+a|0,u)+i|0}function Jm(e,t,r,n,i,s,a,u){return Wi(e+(t^(r|~n))+s+a|0,u)+i|0}Qm.exports=qu});var Vi=T((IN,ty)=>{var ey=qt().Buffer;function Lu(e,t){this._block=ey.alloc(e),this._finalSize=t,this._blockSize=e,this._len=0}Lu.prototype.update=function(e,t){typeof e=="string"&&(t=t||"utf8",e=ey.from(e,t));for(var r=this._block,n=this._blockSize,i=e.length,s=this._len,a=0;a=this._finalSize&&(this._update(this._block),this._block.fill(0));var r=this._len*8;if(r<=4294967295)this._block.writeUInt32BE(r,this._blockSize-4);else{var n=(r&4294967295)>>>0,i=(r-n)/4294967296;this._block.writeUInt32BE(i,this._blockSize-8),this._block.writeUInt32BE(n,this._blockSize-4)}this._update(this._block);var s=this._hash();return e?s.toString(e):s};Lu.prototype._update=function(){throw new Error("_update must be implemented by subclass")};ty.exports=Lu});var iy=T((TN,ny)=>{var uT=ht(),ry=Vi(),cT=qt().Buffer,hT=[1518500249,1859775393,-1894007588,-899497514],lT=new Array(80);function ua(){this.init(),this._w=lT,ry.call(this,64,56)}uT(ua,ry);ua.prototype.init=function(){return this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520,this};function dT(e){return e<<5|e>>>27}function pT(e){return e<<30|e>>>2}function vT(e,t,r,n){return e===0?t&r|~t&n:e===2?t&r|t&n|r&n:t^r^n}ua.prototype._update=function(e){for(var t=this._w,r=this._a|0,n=this._b|0,i=this._c|0,s=this._d|0,a=this._e|0,u=0;u<16;++u)t[u]=e.readInt32BE(u*4);for(;u<80;++u)t[u]=t[u-3]^t[u-8]^t[u-14]^t[u-16];for(var l=0;l<80;++l){var c=~~(l/20),p=dT(r)+vT(c,n,i,s)+a+t[l]+hT[c]|0;a=s,s=i,i=pT(n),n=r,r=p}this._a=r+this._a|0,this._b=n+this._b|0,this._c=i+this._c|0,this._d=s+this._d|0,this._e=a+this._e|0};ua.prototype._hash=function(){var e=cT.allocUnsafe(20);return e.writeInt32BE(this._a|0,0),e.writeInt32BE(this._b|0,4),e.writeInt32BE(this._c|0,8),e.writeInt32BE(this._d|0,12),e.writeInt32BE(this._e|0,16),e};ny.exports=ua});var ay=T((MN,oy)=>{var bT=ht(),sy=Vi(),gT=qt().Buffer,mT=[1518500249,1859775393,-1894007588,-899497514],yT=new Array(80);function ca(){this.init(),this._w=yT,sy.call(this,64,56)}bT(ca,sy);ca.prototype.init=function(){return this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520,this};function wT(e){return e<<1|e>>>31}function _T(e){return e<<5|e>>>27}function ET(e){return e<<30|e>>>2}function xT(e,t,r,n){return e===0?t&r|~t&n:e===2?t&r|t&n|r&n:t^r^n}ca.prototype._update=function(e){for(var t=this._w,r=this._a|0,n=this._b|0,i=this._c|0,s=this._d|0,a=this._e|0,u=0;u<16;++u)t[u]=e.readInt32BE(u*4);for(;u<80;++u)t[u]=wT(t[u-3]^t[u-8]^t[u-14]^t[u-16]);for(var l=0;l<80;++l){var c=~~(l/20),p=_T(r)+xT(c,n,i,s)+a+t[l]+mT[c]|0;a=s,s=i,i=ET(n),n=r,r=p}this._a=r+this._a|0,this._b=n+this._b|0,this._c=i+this._c|0,this._d=s+this._d|0,this._e=a+this._e|0};ca.prototype._hash=function(){var e=gT.allocUnsafe(20);return e.writeInt32BE(this._a|0,0),e.writeInt32BE(this._b|0,4),e.writeInt32BE(this._c|0,8),e.writeInt32BE(this._d|0,12),e.writeInt32BE(this._e|0,16),e};oy.exports=ca});var y0=T((AN,uy)=>{var ST=ht(),fy=Vi(),IT=qt().Buffer,TT=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298],MT=new Array(64);function ha(){this.init(),this._w=MT,fy.call(this,64,56)}ST(ha,fy);ha.prototype.init=function(){return this._a=1779033703,this._b=3144134277,this._c=1013904242,this._d=2773480762,this._e=1359893119,this._f=2600822924,this._g=528734635,this._h=1541459225,this};function AT(e,t,r){return r^e&(t^r)}function OT(e,t,r){return e&t|r&(e|t)}function PT(e){return(e>>>2|e<<30)^(e>>>13|e<<19)^(e>>>22|e<<10)}function BT(e){return(e>>>6|e<<26)^(e>>>11|e<<21)^(e>>>25|e<<7)}function RT(e){return(e>>>7|e<<25)^(e>>>18|e<<14)^e>>>3}function kT(e){return(e>>>17|e<<15)^(e>>>19|e<<13)^e>>>10}ha.prototype._update=function(e){for(var t=this._w,r=this._a|0,n=this._b|0,i=this._c|0,s=this._d|0,a=this._e|0,u=this._f|0,l=this._g|0,c=this._h|0,p=0;p<16;++p)t[p]=e.readInt32BE(p*4);for(;p<64;++p)t[p]=kT(t[p-2])+t[p-7]+RT(t[p-15])+t[p-16]|0;for(var w=0;w<64;++w){var x=c+BT(a)+AT(a,u,l)+TT[w]+t[w]|0,S=PT(r)+OT(r,n,i)|0;c=l,l=u,u=a,a=s+x|0,s=i,i=n,n=r,r=x+S|0}this._a=r+this._a|0,this._b=n+this._b|0,this._c=i+this._c|0,this._d=s+this._d|0,this._e=a+this._e|0,this._f=u+this._f|0,this._g=l+this._g|0,this._h=c+this._h|0};ha.prototype._hash=function(){var e=IT.allocUnsafe(32);return e.writeInt32BE(this._a,0),e.writeInt32BE(this._b,4),e.writeInt32BE(this._c,8),e.writeInt32BE(this._d,12),e.writeInt32BE(this._e,16),e.writeInt32BE(this._f,20),e.writeInt32BE(this._g,24),e.writeInt32BE(this._h,28),e};uy.exports=ha});var hy=T((ON,cy)=>{var NT=ht(),CT=y0(),qT=Vi(),LT=qt().Buffer,UT=new Array(64);function Uu(){this.init(),this._w=UT,qT.call(this,64,56)}NT(Uu,CT);Uu.prototype.init=function(){return this._a=3238371032,this._b=914150663,this._c=812702999,this._d=4144912697,this._e=4290775857,this._f=1750603025,this._g=1694076839,this._h=3204075428,this};Uu.prototype._hash=function(){var e=LT.allocUnsafe(28);return e.writeInt32BE(this._a,0),e.writeInt32BE(this._b,4),e.writeInt32BE(this._c,8),e.writeInt32BE(this._d,12),e.writeInt32BE(this._e,16),e.writeInt32BE(this._f,20),e.writeInt32BE(this._g,24),e};cy.exports=Uu});var w0=T((PN,my)=>{var DT=ht(),gy=Vi(),HT=qt().Buffer,ly=[1116352408,3609767458,1899447441,602891725,3049323471,3964484399,3921009573,2173295548,961987163,4081628472,1508970993,3053834265,2453635748,2937671579,2870763221,3664609560,3624381080,2734883394,310598401,1164996542,607225278,1323610764,1426881987,3590304994,1925078388,4068182383,2162078206,991336113,2614888103,633803317,3248222580,3479774868,3835390401,2666613458,4022224774,944711139,264347078,2341262773,604807628,2007800933,770255983,1495990901,1249150122,1856431235,1555081692,3175218132,1996064986,2198950837,2554220882,3999719339,2821834349,766784016,2952996808,2566594879,3210313671,3203337956,3336571891,1034457026,3584528711,2466948901,113926993,3758326383,338241895,168717936,666307205,1188179964,773529912,1546045734,1294757372,1522805485,1396182291,2643833823,1695183700,2343527390,1986661051,1014477480,2177026350,1206759142,2456956037,344077627,2730485921,1290863460,2820302411,3158454273,3259730800,3505952657,3345764771,106217008,3516065817,3606008344,3600352804,1432725776,4094571909,1467031594,275423344,851169720,430227734,3100823752,506948616,1363258195,659060556,3750685593,883997877,3785050280,958139571,3318307427,1322822218,3812723403,1537002063,2003034995,1747873779,3602036899,1955562222,1575990012,2024104815,1125592928,2227730452,2716904306,2361852424,442776044,2428436474,593698344,2756734187,3733110249,3204031479,2999351573,3329325298,3815920427,3391569614,3928383900,3515267271,566280711,3940187606,3454069534,4118630271,4000239992,116418474,1914138554,174292421,2731055270,289380356,3203993006,460393269,320620315,685471733,587496836,852142971,1086792851,1017036298,365543100,1126000580,2618297676,1288033470,3409855158,1501505948,4234509866,1607167915,987167468,1816402316,1246189591],FT=new Array(160);function la(){this.init(),this._w=FT,gy.call(this,128,112)}DT(la,gy);la.prototype.init=function(){return this._ah=1779033703,this._bh=3144134277,this._ch=1013904242,this._dh=2773480762,this._eh=1359893119,this._fh=2600822924,this._gh=528734635,this._hh=1541459225,this._al=4089235720,this._bl=2227873595,this._cl=4271175723,this._dl=1595750129,this._el=2917565137,this._fl=725511199,this._gl=4215389547,this._hl=327033209,this};function dy(e,t,r){return r^e&(t^r)}function py(e,t,r){return e&t|r&(e|t)}function vy(e,t){return(e>>>28|t<<4)^(t>>>2|e<<30)^(t>>>7|e<<25)}function by(e,t){return(e>>>14|t<<18)^(e>>>18|t<<14)^(t>>>9|e<<23)}function KT(e,t){return(e>>>1|t<<31)^(e>>>8|t<<24)^e>>>7}function GT(e,t){return(e>>>1|t<<31)^(e>>>8|t<<24)^(e>>>7|t<<25)}function WT(e,t){return(e>>>19|t<<13)^(t>>>29|e<<3)^e>>>6}function VT(e,t){return(e>>>19|t<<13)^(t>>>29|e<<3)^(e>>>6|t<<26)}function gt(e,t){return e>>>0>>0?1:0}la.prototype._update=function(e){for(var t=this._w,r=this._ah|0,n=this._bh|0,i=this._ch|0,s=this._dh|0,a=this._eh|0,u=this._fh|0,l=this._gh|0,c=this._hh|0,p=this._al|0,w=this._bl|0,x=this._cl|0,S=this._dl|0,M=this._el|0,O=this._fl|0,P=this._gl|0,B=this._hl|0,N=0;N<32;N+=2)t[N]=e.readInt32BE(N*4),t[N+1]=e.readInt32BE(N*4+4);for(;N<160;N+=2){var L=t[N-30],H=t[N-15*2+1],W=KT(L,H),K=GT(H,L);L=t[N-2*2],H=t[N-2*2+1];var X=WT(L,H),q=VT(H,L),ee=t[N-7*2],y=t[N-7*2+1],o=t[N-16*2],h=t[N-16*2+1],d=K+y|0,v=W+ee+gt(d,K)|0;d=d+q|0,v=v+X+gt(d,q)|0,d=d+h|0,v=v+o+gt(d,h)|0,t[N]=v,t[N+1]=d}for(var m=0;m<160;m+=2){v=t[m],d=t[m+1];var _=py(r,n,i),E=py(p,w,x),b=vy(r,p),f=vy(p,r),g=by(a,M),A=by(M,a),R=ly[m],k=ly[m+1],U=dy(a,u,l),G=dy(M,O,P),F=B+A|0,Le=c+g+gt(F,B)|0;F=F+G|0,Le=Le+U+gt(F,G)|0,F=F+k|0,Le=Le+R+gt(F,k)|0,F=F+d|0,Le=Le+v+gt(F,d)|0;var V=f+E|0,j=b+_+gt(V,f)|0;c=l,B=P,l=u,P=O,u=a,O=M,M=S+F|0,a=s+Le+gt(M,S)|0,s=i,S=x,i=n,x=w,n=r,w=p,p=F+V|0,r=Le+j+gt(p,F)|0}this._al=this._al+p|0,this._bl=this._bl+w|0,this._cl=this._cl+x|0,this._dl=this._dl+S|0,this._el=this._el+M|0,this._fl=this._fl+O|0,this._gl=this._gl+P|0,this._hl=this._hl+B|0,this._ah=this._ah+r+gt(this._al,p)|0,this._bh=this._bh+n+gt(this._bl,w)|0,this._ch=this._ch+i+gt(this._cl,x)|0,this._dh=this._dh+s+gt(this._dl,S)|0,this._eh=this._eh+a+gt(this._el,M)|0,this._fh=this._fh+u+gt(this._fl,O)|0,this._gh=this._gh+l+gt(this._gl,P)|0,this._hh=this._hh+c+gt(this._hl,B)|0};la.prototype._hash=function(){var e=HT.allocUnsafe(64);function t(r,n,i){e.writeInt32BE(r,i),e.writeInt32BE(n,i+4)}return t(this._ah,this._al,0),t(this._bh,this._bl,8),t(this._ch,this._cl,16),t(this._dh,this._dl,24),t(this._eh,this._el,32),t(this._fh,this._fl,40),t(this._gh,this._gl,48),t(this._hh,this._hl,56),e};my.exports=la});var wy=T((BN,yy)=>{var zT=ht(),$T=w0(),jT=Vi(),XT=qt().Buffer,YT=new Array(160);function Du(){this.init(),this._w=YT,jT.call(this,128,112)}zT(Du,$T);Du.prototype.init=function(){return this._ah=3418070365,this._bh=1654270250,this._ch=2438529370,this._dh=355462360,this._eh=1731405415,this._fh=2394180231,this._gh=3675008525,this._hh=1203062813,this._al=3238371032,this._bl=914150663,this._cl=812702999,this._dl=4144912697,this._el=4290775857,this._fl=1750603025,this._gl=1694076839,this._hl=3204075428,this};Du.prototype._hash=function(){var e=XT.allocUnsafe(48);function t(r,n,i){e.writeInt32BE(r,i),e.writeInt32BE(n,i+4)}return t(this._ah,this._al,0),t(this._bh,this._bl,8),t(this._ch,this._cl,16),t(this._dh,this._dl,24),t(this._eh,this._el,32),t(this._fh,this._fl,40),e};yy.exports=Du});var Hu=T((an,_y)=>{var an=_y.exports=function(t){t=t.toLowerCase();var r=an[t];if(!r)throw new Error(t+" is not supported (we accept pull requests)");return new r};an.sha=iy();an.sha1=ay();an.sha224=hy();an.sha256=y0();an.sha384=wy();an.sha512=w0()});var Wu=T(Xi=>{"use strict";Xi.__esModule=!0;Xi.listen=Xi.log=void 0;var lM=0,Fn=[],dM=function(e,t,r){var n={type:e,id:String(++lM),date:new Date};t&&(n.message=t),r&&(n.data=r),vM(n)};Xi.log=dM;var pM=function(e){return Fn.push(e),function(){var t=Fn.indexOf(e);t!==-1&&(Fn[t]=Fn[Fn.length-1],Fn.pop())}};Xi.listen=pM;function vM(e){for(var t=0;t{"use strict";var mM=process.env.NODE_ENV,yM=function(e,t,r,n,i,s,a,u){if(mM!=="production"&&t===void 0)throw new Error("invariant requires an error message argument");if(!e){var l;if(t===void 0)l=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var c=[r,n,i,s,a,u],p=0;l=new Error(t.replace(/%s/g,function(){return c[p++]})),l.name="Invariant Violation"}throw l.framesToPop=1,l}};Hy.exports=yM});var ga=T((TC,jy)=>{var SM="2.0.0",IM=Number.MAX_SAFE_INTEGER||9007199254740991,TM=16;jy.exports={SEMVER_SPEC_VERSION:SM,MAX_LENGTH:256,MAX_SAFE_INTEGER:IM,MAX_SAFE_COMPONENT_LENGTH:TM}});var ma=T((MC,Xy)=>{var MM=typeof process=="object"&&process.env&&process.env.NODE_DEBUG&&/\bsemver\b/i.test(process.env.NODE_DEBUG)?(...e)=>console.error("SEMVER",...e):()=>{};Xy.exports=MM});var Yi=T((Kn,Yy)=>{var{MAX_SAFE_COMPONENT_LENGTH:H0}=ga(),AM=ma();Kn=Yy.exports={};var OM=Kn.re=[],z=Kn.src=[],$=Kn.t={},PM=0,Re=(e,t,r)=>{let n=PM++;AM(e,n,t),$[e]=n,z[n]=t,OM[n]=new RegExp(t,r?"g":void 0)};Re("NUMERICIDENTIFIER","0|[1-9]\\d*");Re("NUMERICIDENTIFIERLOOSE","[0-9]+");Re("NONNUMERICIDENTIFIER","\\d*[a-zA-Z-][a-zA-Z0-9-]*");Re("MAINVERSION",`(${z[$.NUMERICIDENTIFIER]})\\.(${z[$.NUMERICIDENTIFIER]})\\.(${z[$.NUMERICIDENTIFIER]})`);Re("MAINVERSIONLOOSE",`(${z[$.NUMERICIDENTIFIERLOOSE]})\\.(${z[$.NUMERICIDENTIFIERLOOSE]})\\.(${z[$.NUMERICIDENTIFIERLOOSE]})`);Re("PRERELEASEIDENTIFIER",`(?:${z[$.NUMERICIDENTIFIER]}|${z[$.NONNUMERICIDENTIFIER]})`);Re("PRERELEASEIDENTIFIERLOOSE",`(?:${z[$.NUMERICIDENTIFIERLOOSE]}|${z[$.NONNUMERICIDENTIFIER]})`);Re("PRERELEASE",`(?:-(${z[$.PRERELEASEIDENTIFIER]}(?:\\.${z[$.PRERELEASEIDENTIFIER]})*))`);Re("PRERELEASELOOSE",`(?:-?(${z[$.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${z[$.PRERELEASEIDENTIFIERLOOSE]})*))`);Re("BUILDIDENTIFIER","[0-9A-Za-z-]+");Re("BUILD",`(?:\\+(${z[$.BUILDIDENTIFIER]}(?:\\.${z[$.BUILDIDENTIFIER]})*))`);Re("FULLPLAIN",`v?${z[$.MAINVERSION]}${z[$.PRERELEASE]}?${z[$.BUILD]}?`);Re("FULL",`^${z[$.FULLPLAIN]}$`);Re("LOOSEPLAIN",`[v=\\s]*${z[$.MAINVERSIONLOOSE]}${z[$.PRERELEASELOOSE]}?${z[$.BUILD]}?`);Re("LOOSE",`^${z[$.LOOSEPLAIN]}$`);Re("GTLT","((?:<|>)?=?)");Re("XRANGEIDENTIFIERLOOSE",`${z[$.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`);Re("XRANGEIDENTIFIER",`${z[$.NUMERICIDENTIFIER]}|x|X|\\*`);Re("XRANGEPLAIN",`[v=\\s]*(${z[$.XRANGEIDENTIFIER]})(?:\\.(${z[$.XRANGEIDENTIFIER]})(?:\\.(${z[$.XRANGEIDENTIFIER]})(?:${z[$.PRERELEASE]})?${z[$.BUILD]}?)?)?`);Re("XRANGEPLAINLOOSE",`[v=\\s]*(${z[$.XRANGEIDENTIFIERLOOSE]})(?:\\.(${z[$.XRANGEIDENTIFIERLOOSE]})(?:\\.(${z[$.XRANGEIDENTIFIERLOOSE]})(?:${z[$.PRERELEASELOOSE]})?${z[$.BUILD]}?)?)?`);Re("XRANGE",`^${z[$.GTLT]}\\s*${z[$.XRANGEPLAIN]}$`);Re("XRANGELOOSE",`^${z[$.GTLT]}\\s*${z[$.XRANGEPLAINLOOSE]}$`);Re("COERCE",`(^|[^\\d])(\\d{1,${H0}})(?:\\.(\\d{1,${H0}}))?(?:\\.(\\d{1,${H0}}))?(?:$|[^\\d])`);Re("COERCERTL",z[$.COERCE],!0);Re("LONETILDE","(?:~>?)");Re("TILDETRIM",`(\\s*)${z[$.LONETILDE]}\\s+`,!0);Kn.tildeTrimReplace="$1~";Re("TILDE",`^${z[$.LONETILDE]}${z[$.XRANGEPLAIN]}$`);Re("TILDELOOSE",`^${z[$.LONETILDE]}${z[$.XRANGEPLAINLOOSE]}$`);Re("LONECARET","(?:\\^)");Re("CARETTRIM",`(\\s*)${z[$.LONECARET]}\\s+`,!0);Kn.caretTrimReplace="$1^";Re("CARET",`^${z[$.LONECARET]}${z[$.XRANGEPLAIN]}$`);Re("CARETLOOSE",`^${z[$.LONECARET]}${z[$.XRANGEPLAINLOOSE]}$`);Re("COMPARATORLOOSE",`^${z[$.GTLT]}\\s*(${z[$.LOOSEPLAIN]})$|^$`);Re("COMPARATOR",`^${z[$.GTLT]}\\s*(${z[$.FULLPLAIN]})$|^$`);Re("COMPARATORTRIM",`(\\s*)${z[$.GTLT]}\\s*(${z[$.LOOSEPLAIN]}|${z[$.XRANGEPLAIN]})`,!0);Kn.comparatorTrimReplace="$1$2$3";Re("HYPHENRANGE",`^\\s*(${z[$.XRANGEPLAIN]})\\s+-\\s+(${z[$.XRANGEPLAIN]})\\s*$`);Re("HYPHENRANGELOOSE",`^\\s*(${z[$.XRANGEPLAINLOOSE]})\\s+-\\s+(${z[$.XRANGEPLAINLOOSE]})\\s*$`);Re("STAR","(<|>)?=?\\s*\\*");Re("GTE0","^\\s*>=\\s*0\\.0\\.0\\s*$");Re("GTE0PRE","^\\s*>=\\s*0\\.0\\.0-0\\s*$")});var ya=T((AC,Jy)=>{var BM=["includePrerelease","loose","rtl"],RM=e=>e?typeof e!="object"?{loose:!0}:BM.filter(t=>e[t]).reduce((t,r)=>(t[r]=!0,t),{}):{};Jy.exports=RM});var F0=T((OC,ew)=>{var Zy=/^[0-9]+$/,Qy=(e,t)=>{let r=Zy.test(e),n=Zy.test(t);return r&&n&&(e=+e,t=+t),e===t?0:r&&!n?-1:n&&!r?1:eQy(t,e);ew.exports={compareIdentifiers:Qy,rcompareIdentifiers:kM}});var Pt=T((PC,iw)=>{var zu=ma(),{MAX_LENGTH:tw,MAX_SAFE_INTEGER:$u}=ga(),{re:rw,t:nw}=Yi(),NM=ya(),{compareIdentifiers:Js}=F0(),Xt=class{constructor(t,r){if(r=NM(r),t instanceof Xt){if(t.loose===!!r.loose&&t.includePrerelease===!!r.includePrerelease)return t;t=t.version}else if(typeof t!="string")throw new TypeError(`Invalid Version: ${t}`);if(t.length>tw)throw new TypeError(`version is longer than ${tw} characters`);zu("SemVer",t,r),this.options=r,this.loose=!!r.loose,this.includePrerelease=!!r.includePrerelease;let n=t.trim().match(r.loose?rw[nw.LOOSE]:rw[nw.FULL]);if(!n)throw new TypeError(`Invalid Version: ${t}`);if(this.raw=t,this.major=+n[1],this.minor=+n[2],this.patch=+n[3],this.major>$u||this.major<0)throw new TypeError("Invalid major version");if(this.minor>$u||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>$u||this.patch<0)throw new TypeError("Invalid patch version");n[4]?this.prerelease=n[4].split(".").map(i=>{if(/^[0-9]+$/.test(i)){let s=+i;if(s>=0&&s<$u)return s}return i}):this.prerelease=[],this.build=n[5]?n[5].split("."):[],this.format()}format(){return this.version=`${this.major}.${this.minor}.${this.patch}`,this.prerelease.length&&(this.version+=`-${this.prerelease.join(".")}`),this.version}toString(){return this.version}compare(t){if(zu("SemVer.compare",this.version,this.options,t),!(t instanceof Xt)){if(typeof t=="string"&&t===this.version)return 0;t=new Xt(t,this.options)}return t.version===this.version?0:this.compareMain(t)||this.comparePre(t)}compareMain(t){return t instanceof Xt||(t=new Xt(t,this.options)),Js(this.major,t.major)||Js(this.minor,t.minor)||Js(this.patch,t.patch)}comparePre(t){if(t instanceof Xt||(t=new Xt(t,this.options)),this.prerelease.length&&!t.prerelease.length)return-1;if(!this.prerelease.length&&t.prerelease.length)return 1;if(!this.prerelease.length&&!t.prerelease.length)return 0;let r=0;do{let n=this.prerelease[r],i=t.prerelease[r];if(zu("prerelease compare",r,n,i),n===void 0&&i===void 0)return 0;if(i===void 0)return 1;if(n===void 0)return-1;if(n===i)continue;return Js(n,i)}while(++r)}compareBuild(t){t instanceof Xt||(t=new Xt(t,this.options));let r=0;do{let n=this.build[r],i=t.build[r];if(zu("prerelease compare",r,n,i),n===void 0&&i===void 0)return 0;if(i===void 0)return 1;if(n===void 0)return-1;if(n===i)continue;return Js(n,i)}while(++r)}inc(t,r){switch(t){case"premajor":this.prerelease.length=0,this.patch=0,this.minor=0,this.major++,this.inc("pre",r);break;case"preminor":this.prerelease.length=0,this.patch=0,this.minor++,this.inc("pre",r);break;case"prepatch":this.prerelease.length=0,this.inc("patch",r),this.inc("pre",r);break;case"prerelease":this.prerelease.length===0&&this.inc("patch",r),this.inc("pre",r);break;case"major":(this.minor!==0||this.patch!==0||this.prerelease.length===0)&&this.major++,this.minor=0,this.patch=0,this.prerelease=[];break;case"minor":(this.patch!==0||this.prerelease.length===0)&&this.minor++,this.patch=0,this.prerelease=[];break;case"patch":this.prerelease.length===0&&this.patch++,this.prerelease=[];break;case"pre":if(this.prerelease.length===0)this.prerelease=[0];else{let n=this.prerelease.length;for(;--n>=0;)typeof this.prerelease[n]=="number"&&(this.prerelease[n]++,n=-2);n===-1&&this.prerelease.push(0)}r&&(Js(this.prerelease[0],r)===0?isNaN(this.prerelease[1])&&(this.prerelease=[r,0]):this.prerelease=[r,0]);break;default:throw new Error(`invalid increment argument: ${t}`)}return this.format(),this.raw=this.version,this}};iw.exports=Xt});var Ji=T((BC,fw)=>{var{MAX_LENGTH:CM}=ga(),{re:sw,t:ow}=Yi(),aw=Pt(),qM=ya(),LM=(e,t)=>{if(t=qM(t),e instanceof aw)return e;if(typeof e!="string"||e.length>CM||!(t.loose?sw[ow.LOOSE]:sw[ow.FULL]).test(e))return null;try{return new aw(e,t)}catch{return null}};fw.exports=LM});var cw=T((RC,uw)=>{var UM=Ji(),DM=(e,t)=>{let r=UM(e,t);return r?r.version:null};uw.exports=DM});var lw=T((kC,hw)=>{var HM=Ji(),FM=(e,t)=>{let r=HM(e.trim().replace(/^[=v]+/,""),t);return r?r.version:null};hw.exports=FM});var vw=T((NC,pw)=>{var dw=Pt(),KM=(e,t,r,n)=>{typeof r=="string"&&(n=r,r=void 0);try{return new dw(e instanceof dw?e.version:e,r).inc(t,n).version}catch{return null}};pw.exports=KM});var or=T((CC,gw)=>{var bw=Pt(),GM=(e,t,r)=>new bw(e,r).compare(new bw(t,r));gw.exports=GM});var ju=T((qC,mw)=>{var WM=or(),VM=(e,t,r)=>WM(e,t,r)===0;mw.exports=VM});var _w=T((LC,ww)=>{var yw=Ji(),zM=ju(),$M=(e,t)=>{if(zM(e,t))return null;{let r=yw(e),n=yw(t),i=r.prerelease.length||n.prerelease.length,s=i?"pre":"",a=i?"prerelease":"";for(let u in r)if((u==="major"||u==="minor"||u==="patch")&&r[u]!==n[u])return s+u;return a}};ww.exports=$M});var xw=T((UC,Ew)=>{var jM=Pt(),XM=(e,t)=>new jM(e,t).major;Ew.exports=XM});var Iw=T((DC,Sw)=>{var YM=Pt(),JM=(e,t)=>new YM(e,t).minor;Sw.exports=JM});var Mw=T((HC,Tw)=>{var ZM=Pt(),QM=(e,t)=>new ZM(e,t).patch;Tw.exports=QM});var Ow=T((FC,Aw)=>{var eA=Ji(),tA=(e,t)=>{let r=eA(e,t);return r&&r.prerelease.length?r.prerelease:null};Aw.exports=tA});var Bw=T((KC,Pw)=>{var rA=or(),nA=(e,t,r)=>rA(t,e,r);Pw.exports=nA});var kw=T((GC,Rw)=>{var iA=or(),sA=(e,t)=>iA(e,t,!0);Rw.exports=sA});var Xu=T((WC,Cw)=>{var Nw=Pt(),oA=(e,t,r)=>{let n=new Nw(e,r),i=new Nw(t,r);return n.compare(i)||n.compareBuild(i)};Cw.exports=oA});var Lw=T((VC,qw)=>{var aA=Xu(),fA=(e,t)=>e.sort((r,n)=>aA(r,n,t));qw.exports=fA});var Dw=T((zC,Uw)=>{var uA=Xu(),cA=(e,t)=>e.sort((r,n)=>uA(n,r,t));Uw.exports=cA});var wa=T(($C,Hw)=>{var hA=or(),lA=(e,t,r)=>hA(e,t,r)>0;Hw.exports=lA});var Yu=T((jC,Fw)=>{var dA=or(),pA=(e,t,r)=>dA(e,t,r)<0;Fw.exports=pA});var K0=T((XC,Kw)=>{var vA=or(),bA=(e,t,r)=>vA(e,t,r)!==0;Kw.exports=bA});var Ju=T((YC,Gw)=>{var gA=or(),mA=(e,t,r)=>gA(e,t,r)>=0;Gw.exports=mA});var Zu=T((JC,Ww)=>{var yA=or(),wA=(e,t,r)=>yA(e,t,r)<=0;Ww.exports=wA});var G0=T((ZC,Vw)=>{var _A=ju(),EA=K0(),xA=wa(),SA=Ju(),IA=Yu(),TA=Zu(),MA=(e,t,r,n)=>{switch(t){case"===":return typeof e=="object"&&(e=e.version),typeof r=="object"&&(r=r.version),e===r;case"!==":return typeof e=="object"&&(e=e.version),typeof r=="object"&&(r=r.version),e!==r;case"":case"=":case"==":return _A(e,r,n);case"!=":return EA(e,r,n);case">":return xA(e,r,n);case">=":return SA(e,r,n);case"<":return IA(e,r,n);case"<=":return TA(e,r,n);default:throw new TypeError(`Invalid operator: ${t}`)}};Vw.exports=MA});var $w=T((QC,zw)=>{var AA=Pt(),OA=Ji(),{re:Qu,t:ec}=Yi(),PA=(e,t)=>{if(e instanceof AA)return e;if(typeof e=="number"&&(e=String(e)),typeof e!="string")return null;t=t||{};let r=null;if(!t.rtl)r=e.match(Qu[ec.COERCE]);else{let n;for(;(n=Qu[ec.COERCERTL].exec(e))&&(!r||r.index+r[0].length!==e.length);)(!r||n.index+n[0].length!==r.index+r[0].length)&&(r=n),Qu[ec.COERCERTL].lastIndex=n.index+n[1].length+n[2].length;Qu[ec.COERCERTL].lastIndex=-1}return r===null?null:OA(`${r[2]}.${r[3]||"0"}.${r[4]||"0"}`,t)};zw.exports=PA});var Xw=T((eq,jw)=>{"use strict";jw.exports=function(e){e.prototype[Symbol.iterator]=function*(){for(let t=this.head;t;t=t.next)yield t.value}}});var Jw=T((tq,Yw)=>{"use strict";Yw.exports=He;He.Node=Zi;He.create=He;function He(e){var t=this;if(t instanceof He||(t=new He),t.tail=null,t.head=null,t.length=0,e&&typeof e.forEach=="function")e.forEach(function(i){t.push(i)});else if(arguments.length>0)for(var r=0,n=arguments.length;r1)r=t;else if(this.head)n=this.head.next,r=this.head.value;else throw new TypeError("Reduce of empty list with no initial value");for(var i=0;n!==null;i++)r=e(r,n.value,i),n=n.next;return r};He.prototype.reduceReverse=function(e,t){var r,n=this.tail;if(arguments.length>1)r=t;else if(this.tail)n=this.tail.prev,r=this.tail.value;else throw new TypeError("Reduce of empty list with no initial value");for(var i=this.length-1;n!==null;i--)r=e(r,n.value,i),n=n.prev;return r};He.prototype.toArray=function(){for(var e=new Array(this.length),t=0,r=this.head;r!==null;t++)e[t]=r.value,r=r.next;return e};He.prototype.toArrayReverse=function(){for(var e=new Array(this.length),t=0,r=this.tail;r!==null;t++)e[t]=r.value,r=r.prev;return e};He.prototype.slice=function(e,t){t=t||this.length,t<0&&(t+=this.length),e=e||0,e<0&&(e+=this.length);var r=new He;if(tthis.length&&(t=this.length);for(var n=0,i=this.head;i!==null&&nthis.length&&(t=this.length);for(var n=this.length,i=this.tail;i!==null&&n>t;n--)i=i.prev;for(;i!==null&&n>e;n--,i=i.prev)r.push(i.value);return r};He.prototype.splice=function(e,t,...r){e>this.length&&(e=this.length-1),e<0&&(e=this.length+e);for(var n=0,i=this.head;i!==null&&n{"use strict";var NA=Jw(),Qi=Symbol("max"),un=Symbol("length"),Zs=Symbol("lengthCalculator"),Ea=Symbol("allowStale"),es=Symbol("maxAge"),fn=Symbol("dispose"),Zw=Symbol("noDisposeOnSet"),mt=Symbol("lruList"),gr=Symbol("cache"),e3=Symbol("updateAgeOnGet"),W0=()=>1,z0=class{constructor(t){if(typeof t=="number"&&(t={max:t}),t||(t={}),t.max&&(typeof t.max!="number"||t.max<0))throw new TypeError("max must be a non-negative number");let r=this[Qi]=t.max||1/0,n=t.length||W0;if(this[Zs]=typeof n!="function"?W0:n,this[Ea]=t.stale||!1,t.maxAge&&typeof t.maxAge!="number")throw new TypeError("maxAge must be a number");this[es]=t.maxAge||0,this[fn]=t.dispose,this[Zw]=t.noDisposeOnSet||!1,this[e3]=t.updateAgeOnGet||!1,this.reset()}set max(t){if(typeof t!="number"||t<0)throw new TypeError("max must be a non-negative number");this[Qi]=t||1/0,_a(this)}get max(){return this[Qi]}set allowStale(t){this[Ea]=!!t}get allowStale(){return this[Ea]}set maxAge(t){if(typeof t!="number")throw new TypeError("maxAge must be a non-negative number");this[es]=t,_a(this)}get maxAge(){return this[es]}set lengthCalculator(t){typeof t!="function"&&(t=W0),t!==this[Zs]&&(this[Zs]=t,this[un]=0,this[mt].forEach(r=>{r.length=this[Zs](r.value,r.key),this[un]+=r.length})),_a(this)}get lengthCalculator(){return this[Zs]}get length(){return this[un]}get itemCount(){return this[mt].length}rforEach(t,r){r=r||this;for(let n=this[mt].tail;n!==null;){let i=n.prev;Qw(this,t,n,r),n=i}}forEach(t,r){r=r||this;for(let n=this[mt].head;n!==null;){let i=n.next;Qw(this,t,n,r),n=i}}keys(){return this[mt].toArray().map(t=>t.key)}values(){return this[mt].toArray().map(t=>t.value)}reset(){this[fn]&&this[mt]&&this[mt].length&&this[mt].forEach(t=>this[fn](t.key,t.value)),this[gr]=new Map,this[mt]=new NA,this[un]=0}dump(){return this[mt].map(t=>tc(this,t)?!1:{k:t.key,v:t.value,e:t.now+(t.maxAge||0)}).toArray().filter(t=>t)}dumpLru(){return this[mt]}set(t,r,n){if(n=n||this[es],n&&typeof n!="number")throw new TypeError("maxAge must be a number");let i=n?Date.now():0,s=this[Zs](r,t);if(this[gr].has(t)){if(s>this[Qi])return Qs(this,this[gr].get(t)),!1;let l=this[gr].get(t).value;return this[fn]&&(this[Zw]||this[fn](t,l.value)),l.now=i,l.maxAge=n,l.value=r,this[un]+=s-l.length,l.length=s,this.get(t),_a(this),!0}let a=new $0(t,r,s,i,n);return a.length>this[Qi]?(this[fn]&&this[fn](t,r),!1):(this[un]+=a.length,this[mt].unshift(a),this[gr].set(t,this[mt].head),_a(this),!0)}has(t){if(!this[gr].has(t))return!1;let r=this[gr].get(t).value;return!tc(this,r)}get(t){return V0(this,t,!0)}peek(t){return V0(this,t,!1)}pop(){let t=this[mt].tail;return t?(Qs(this,t),t.value):null}del(t){Qs(this,this[gr].get(t))}load(t){this.reset();let r=Date.now();for(let n=t.length-1;n>=0;n--){let i=t[n],s=i.e||0;if(s===0)this.set(i.k,i.v);else{let a=s-r;a>0&&this.set(i.k,i.v,a)}}}prune(){this[gr].forEach((t,r)=>V0(this,r,!1))}},V0=(e,t,r)=>{let n=e[gr].get(t);if(n){let i=n.value;if(tc(e,i)){if(Qs(e,n),!e[Ea])return}else r&&(e[e3]&&(n.value.now=Date.now()),e[mt].unshiftNode(n));return i.value}},tc=(e,t)=>{if(!t||!t.maxAge&&!e[es])return!1;let r=Date.now()-t.now;return t.maxAge?r>t.maxAge:e[es]&&r>e[es]},_a=e=>{if(e[un]>e[Qi])for(let t=e[mt].tail;e[un]>e[Qi]&&t!==null;){let r=t.prev;Qs(e,t),t=r}},Qs=(e,t)=>{if(t){let r=t.value;e[fn]&&e[fn](r.key,r.value),e[un]-=r.length,e[gr].delete(r.key),e[mt].removeNode(t)}},$0=class{constructor(t,r,n,i,s){this.key=t,this.value=r,this.length=n,this.now=i,this.maxAge=s||0}},Qw=(e,t,r,n)=>{let i=r.value;tc(e,i)&&(Qs(e,r),e[Ea]||(i=void 0)),i&&t.call(n,i.value,i.key,e)};t3.exports=z0});var ar=T((nq,o3)=>{var ts=class{constructor(t,r){if(r=qA(r),t instanceof ts)return t.loose===!!r.loose&&t.includePrerelease===!!r.includePrerelease?t:new ts(t.raw,r);if(t instanceof j0)return this.raw=t.value,this.set=[[t]],this.format(),this;if(this.options=r,this.loose=!!r.loose,this.includePrerelease=!!r.includePrerelease,this.raw=t,this.set=t.split("||").map(n=>this.parseRange(n.trim())).filter(n=>n.length),!this.set.length)throw new TypeError(`Invalid SemVer Range: ${t}`);if(this.set.length>1){let n=this.set[0];if(this.set=this.set.filter(i=>!i3(i[0])),this.set.length===0)this.set=[n];else if(this.set.length>1){for(let i of this.set)if(i.length===1&&FA(i[0])){this.set=[i];break}}}this.format()}format(){return this.range=this.set.map(t=>t.join(" ").trim()).join("||").trim(),this.range}toString(){return this.range}parseRange(t){t=t.trim();let n=`parseRange:${Object.keys(this.options).join(",")}:${t}`,i=n3.get(n);if(i)return i;let s=this.options.loose,a=s?Kt[Nt.HYPHENRANGELOOSE]:Kt[Nt.HYPHENRANGE];t=t.replace(a,JA(this.options.includePrerelease)),nt("hyphen replace",t),t=t.replace(Kt[Nt.COMPARATORTRIM],UA),nt("comparator trim",t),t=t.replace(Kt[Nt.TILDETRIM],DA),t=t.replace(Kt[Nt.CARETTRIM],HA),t=t.split(/\s+/).join(" ");let u=t.split(" ").map(w=>KA(w,this.options)).join(" ").split(/\s+/).map(w=>YA(w,this.options));s&&(u=u.filter(w=>(nt("loose invalid filter",w,this.options),!!w.match(Kt[Nt.COMPARATORLOOSE])))),nt("range list",u);let l=new Map,c=u.map(w=>new j0(w,this.options));for(let w of c){if(i3(w))return[w];l.set(w.value,w)}l.size>1&&l.has("")&&l.delete("");let p=[...l.values()];return n3.set(n,p),p}intersects(t,r){if(!(t instanceof ts))throw new TypeError("a Range is required");return this.set.some(n=>s3(n,r)&&t.set.some(i=>s3(i,r)&&n.every(s=>i.every(a=>s.intersects(a,r)))))}test(t){if(!t)return!1;if(typeof t=="string")try{t=new LA(t,this.options)}catch{return!1}for(let r=0;re.value==="<0.0.0-0",FA=e=>e.value==="",s3=(e,t)=>{let r=!0,n=e.slice(),i=n.pop();for(;r&&n.length;)r=n.every(s=>i.intersects(s,t)),i=n.pop();return r},KA=(e,t)=>(nt("comp",e,t),e=VA(e,t),nt("caret",e),e=GA(e,t),nt("tildes",e),e=$A(e,t),nt("xrange",e),e=XA(e,t),nt("stars",e),e),Ct=e=>!e||e.toLowerCase()==="x"||e==="*",GA=(e,t)=>e.trim().split(/\s+/).map(r=>WA(r,t)).join(" "),WA=(e,t)=>{let r=t.loose?Kt[Nt.TILDELOOSE]:Kt[Nt.TILDE];return e.replace(r,(n,i,s,a,u)=>{nt("tilde",e,n,i,s,a,u);let l;return Ct(i)?l="":Ct(s)?l=`>=${i}.0.0 <${+i+1}.0.0-0`:Ct(a)?l=`>=${i}.${s}.0 <${i}.${+s+1}.0-0`:u?(nt("replaceTilde pr",u),l=`>=${i}.${s}.${a}-${u} <${i}.${+s+1}.0-0`):l=`>=${i}.${s}.${a} <${i}.${+s+1}.0-0`,nt("tilde return",l),l})},VA=(e,t)=>e.trim().split(/\s+/).map(r=>zA(r,t)).join(" "),zA=(e,t)=>{nt("caret",e,t);let r=t.loose?Kt[Nt.CARETLOOSE]:Kt[Nt.CARET],n=t.includePrerelease?"-0":"";return e.replace(r,(i,s,a,u,l)=>{nt("caret",e,i,s,a,u,l);let c;return Ct(s)?c="":Ct(a)?c=`>=${s}.0.0${n} <${+s+1}.0.0-0`:Ct(u)?s==="0"?c=`>=${s}.${a}.0${n} <${s}.${+a+1}.0-0`:c=`>=${s}.${a}.0${n} <${+s+1}.0.0-0`:l?(nt("replaceCaret pr",l),s==="0"?a==="0"?c=`>=${s}.${a}.${u}-${l} <${s}.${a}.${+u+1}-0`:c=`>=${s}.${a}.${u}-${l} <${s}.${+a+1}.0-0`:c=`>=${s}.${a}.${u}-${l} <${+s+1}.0.0-0`):(nt("no pr"),s==="0"?a==="0"?c=`>=${s}.${a}.${u}${n} <${s}.${a}.${+u+1}-0`:c=`>=${s}.${a}.${u}${n} <${s}.${+a+1}.0-0`:c=`>=${s}.${a}.${u} <${+s+1}.0.0-0`),nt("caret return",c),c})},$A=(e,t)=>(nt("replaceXRanges",e,t),e.split(/\s+/).map(r=>jA(r,t)).join(" ")),jA=(e,t)=>{e=e.trim();let r=t.loose?Kt[Nt.XRANGELOOSE]:Kt[Nt.XRANGE];return e.replace(r,(n,i,s,a,u,l)=>{nt("xRange",e,n,i,s,a,u,l);let c=Ct(s),p=c||Ct(a),w=p||Ct(u),x=w;return i==="="&&x&&(i=""),l=t.includePrerelease?"-0":"",c?i===">"||i==="<"?n="<0.0.0-0":n="*":i&&x?(p&&(a=0),u=0,i===">"?(i=">=",p?(s=+s+1,a=0,u=0):(a=+a+1,u=0)):i==="<="&&(i="<",p?s=+s+1:a=+a+1),i==="<"&&(l="-0"),n=`${i+s}.${a}.${u}${l}`):p?n=`>=${s}.0.0${l} <${+s+1}.0.0-0`:w&&(n=`>=${s}.${a}.0${l} <${s}.${+a+1}.0-0`),nt("xRange return",n),n})},XA=(e,t)=>(nt("replaceStars",e,t),e.trim().replace(Kt[Nt.STAR],"")),YA=(e,t)=>(nt("replaceGTE0",e,t),e.trim().replace(Kt[t.includePrerelease?Nt.GTE0PRE:Nt.GTE0],"")),JA=e=>(t,r,n,i,s,a,u,l,c,p,w,x,S)=>(Ct(n)?r="":Ct(i)?r=`>=${n}.0.0${e?"-0":""}`:Ct(s)?r=`>=${n}.${i}.0${e?"-0":""}`:a?r=`>=${r}`:r=`>=${r}${e?"-0":""}`,Ct(c)?l="":Ct(p)?l=`<${+c+1}.0.0-0`:Ct(w)?l=`<${c}.${+p+1}.0-0`:x?l=`<=${c}.${p}.${w}-${x}`:e?l=`<${c}.${p}.${+w+1}-0`:l=`<=${l}`,`${r} ${l}`.trim()),ZA=(e,t,r)=>{for(let n=0;n0){let i=e[n].semver;if(i.major===t.major&&i.minor===t.minor&&i.patch===t.patch)return!0}return!1}return!0}});var xa=T((iq,h3)=>{var Sa=Symbol("SemVer ANY"),eo=class{static get ANY(){return Sa}constructor(t,r){if(r=QA(r),t instanceof eo){if(t.loose===!!r.loose)return t;t=t.value}Y0("comparator",t,r),this.options=r,this.loose=!!r.loose,this.parse(t),this.semver===Sa?this.value="":this.value=this.operator+this.semver.version,Y0("comp",this)}parse(t){let r=this.options.loose?a3[f3.COMPARATORLOOSE]:a3[f3.COMPARATOR],n=t.match(r);if(!n)throw new TypeError(`Invalid comparator: ${t}`);this.operator=n[1]!==void 0?n[1]:"",this.operator==="="&&(this.operator=""),n[2]?this.semver=new u3(n[2],this.options.loose):this.semver=Sa}toString(){return this.value}test(t){if(Y0("Comparator.test",t,this.options.loose),this.semver===Sa||t===Sa)return!0;if(typeof t=="string")try{t=new u3(t,this.options)}catch{return!1}return X0(t,this.operator,this.semver,this.options)}intersects(t,r){if(!(t instanceof eo))throw new TypeError("a Comparator is required");if((!r||typeof r!="object")&&(r={loose:!!r,includePrerelease:!1}),this.operator==="")return this.value===""?!0:new c3(t.value,r).test(this.value);if(t.operator==="")return t.value===""?!0:new c3(this.value,r).test(t.semver);let n=(this.operator===">="||this.operator===">")&&(t.operator===">="||t.operator===">"),i=(this.operator==="<="||this.operator==="<")&&(t.operator==="<="||t.operator==="<"),s=this.semver.version===t.semver.version,a=(this.operator===">="||this.operator==="<=")&&(t.operator===">="||t.operator==="<="),u=X0(this.semver,"<",t.semver,r)&&(this.operator===">="||this.operator===">")&&(t.operator==="<="||t.operator==="<"),l=X0(this.semver,">",t.semver,r)&&(this.operator==="<="||this.operator==="<")&&(t.operator===">="||t.operator===">");return n||i||s&&a||u||l}};h3.exports=eo;var QA=ya(),{re:a3,t:f3}=Yi(),X0=G0(),Y0=ma(),u3=Pt(),c3=ar()});var Ia=T((sq,l3)=>{var eO=ar(),tO=(e,t,r)=>{try{t=new eO(t,r)}catch{return!1}return t.test(e)};l3.exports=tO});var p3=T((oq,d3)=>{var rO=ar(),nO=(e,t)=>new rO(e,t).set.map(r=>r.map(n=>n.value).join(" ").trim().split(" "));d3.exports=nO});var b3=T((aq,v3)=>{var iO=Pt(),sO=ar(),oO=(e,t,r)=>{let n=null,i=null,s=null;try{s=new sO(t,r)}catch{return null}return e.forEach(a=>{s.test(a)&&(!n||i.compare(a)===-1)&&(n=a,i=new iO(n,r))}),n};v3.exports=oO});var m3=T((fq,g3)=>{var aO=Pt(),fO=ar(),uO=(e,t,r)=>{let n=null,i=null,s=null;try{s=new fO(t,r)}catch{return null}return e.forEach(a=>{s.test(a)&&(!n||i.compare(a)===1)&&(n=a,i=new aO(n,r))}),n};g3.exports=uO});var _3=T((uq,w3)=>{var J0=Pt(),cO=ar(),y3=wa(),hO=(e,t)=>{e=new cO(e,t);let r=new J0("0.0.0");if(e.test(r)||(r=new J0("0.0.0-0"),e.test(r)))return r;r=null;for(let n=0;n{let u=new J0(a.semver.version);switch(a.operator){case">":u.prerelease.length===0?u.patch++:u.prerelease.push(0),u.raw=u.format();case"":case">=":(!s||y3(u,s))&&(s=u);break;case"<":case"<=":break;default:throw new Error(`Unexpected operation: ${a.operator}`)}}),s&&(!r||y3(r,s))&&(r=s)}return r&&e.test(r)?r:null};w3.exports=hO});var x3=T((cq,E3)=>{var lO=ar(),dO=(e,t)=>{try{return new lO(e,t).range||"*"}catch{return null}};E3.exports=dO});var rc=T((hq,M3)=>{var pO=Pt(),T3=xa(),{ANY:vO}=T3,bO=ar(),gO=Ia(),S3=wa(),I3=Yu(),mO=Zu(),yO=Ju(),wO=(e,t,r,n)=>{e=new pO(e,n),t=new bO(t,n);let i,s,a,u,l;switch(r){case">":i=S3,s=mO,a=I3,u=">",l=">=";break;case"<":i=I3,s=yO,a=S3,u="<",l="<=";break;default:throw new TypeError('Must provide a hilo val of "<" or ">"')}if(gO(e,t,n))return!1;for(let c=0;c{S.semver===vO&&(S=new T3(">=0.0.0")),w=w||S,x=x||S,i(S.semver,w.semver,n)?w=S:a(S.semver,x.semver,n)&&(x=S)}),w.operator===u||w.operator===l||(!x.operator||x.operator===u)&&s(e,x.semver))return!1;if(x.operator===l&&a(e,x.semver))return!1}return!0};M3.exports=wO});var O3=T((lq,A3)=>{var _O=rc(),EO=(e,t,r)=>_O(e,t,">",r);A3.exports=EO});var B3=T((dq,P3)=>{var xO=rc(),SO=(e,t,r)=>xO(e,t,"<",r);P3.exports=SO});var N3=T((pq,k3)=>{var R3=ar(),IO=(e,t,r)=>(e=new R3(e,r),t=new R3(t,r),e.intersects(t));k3.exports=IO});var q3=T((vq,C3)=>{var TO=Ia(),MO=or();C3.exports=(e,t,r)=>{let n=[],i=null,s=null,a=e.sort((p,w)=>MO(p,w,r));for(let p of a)TO(p,t,r)?(s=p,i||(i=p)):(s&&n.push([i,s]),s=null,i=null);i&&n.push([i,null]);let u=[];for(let[p,w]of n)p===w?u.push(p):!w&&p===a[0]?u.push("*"):w?p===a[0]?u.push(`<=${w}`):u.push(`${p} - ${w}`):u.push(`>=${p}`);let l=u.join(" || "),c=typeof t.raw=="string"?t.raw:String(t);return l.length{var L3=ar(),nc=xa(),{ANY:Z0}=nc,Ta=Ia(),Q0=or(),AO=(e,t,r={})=>{if(e===t)return!0;e=new L3(e,r),t=new L3(t,r);let n=!1;e:for(let i of e.set){for(let s of t.set){let a=OO(i,s,r);if(n=n||a!==null,a)continue e}if(n)return!1}return!0},OO=(e,t,r)=>{if(e===t)return!0;if(e.length===1&&e[0].semver===Z0){if(t.length===1&&t[0].semver===Z0)return!0;r.includePrerelease?e=[new nc(">=0.0.0-0")]:e=[new nc(">=0.0.0")]}if(t.length===1&&t[0].semver===Z0){if(r.includePrerelease)return!0;t=[new nc(">=0.0.0")]}let n=new Set,i,s;for(let S of e)S.operator===">"||S.operator===">="?i=U3(i,S,r):S.operator==="<"||S.operator==="<="?s=D3(s,S,r):n.add(S.semver);if(n.size>1)return null;let a;if(i&&s){if(a=Q0(i.semver,s.semver,r),a>0)return null;if(a===0&&(i.operator!==">="||s.operator!=="<="))return null}for(let S of n){if(i&&!Ta(S,String(i),r)||s&&!Ta(S,String(s),r))return null;for(let M of t)if(!Ta(S,String(M),r))return!1;return!0}let u,l,c,p,w=s&&!r.includePrerelease&&s.semver.prerelease.length?s.semver:!1,x=i&&!r.includePrerelease&&i.semver.prerelease.length?i.semver:!1;w&&w.prerelease.length===1&&s.operator==="<"&&w.prerelease[0]===0&&(w=!1);for(let S of t){if(p=p||S.operator===">"||S.operator===">=",c=c||S.operator==="<"||S.operator==="<=",i){if(x&&S.semver.prerelease&&S.semver.prerelease.length&&S.semver.major===x.major&&S.semver.minor===x.minor&&S.semver.patch===x.patch&&(x=!1),S.operator===">"||S.operator===">="){if(u=U3(i,S,r),u===S&&u!==i)return!1}else if(i.operator===">="&&!Ta(i.semver,String(S),r))return!1}if(s){if(w&&S.semver.prerelease&&S.semver.prerelease.length&&S.semver.major===w.major&&S.semver.minor===w.minor&&S.semver.patch===w.patch&&(w=!1),S.operator==="<"||S.operator==="<="){if(l=D3(s,S,r),l===S&&l!==s)return!1}else if(s.operator==="<="&&!Ta(s.semver,String(S),r))return!1}if(!S.operator&&(s||i)&&a!==0)return!1}return!(i&&c&&!s&&a!==0||s&&p&&!i&&a!==0||x||w)},U3=(e,t,r)=>{if(!e)return t;let n=Q0(e.semver,t.semver,r);return n>0?e:n<0||t.operator===">"&&e.operator===">="?t:e},D3=(e,t,r)=>{if(!e)return t;let n=Q0(e.semver,t.semver,r);return n<0?e:n>0||t.operator==="<"&&e.operator==="<="?t:e};H3.exports=AO});var td=T((gq,G3)=>{var ed=Yi(),PO=ga(),BO=Pt(),K3=F0(),RO=Ji(),kO=cw(),NO=lw(),CO=vw(),qO=_w(),LO=xw(),UO=Iw(),DO=Mw(),HO=Ow(),FO=or(),KO=Bw(),GO=kw(),WO=Xu(),VO=Lw(),zO=Dw(),$O=wa(),jO=Yu(),XO=ju(),YO=K0(),JO=Ju(),ZO=Zu(),QO=G0(),eP=$w(),tP=xa(),rP=ar(),nP=Ia(),iP=p3(),sP=b3(),oP=m3(),aP=_3(),fP=x3(),uP=rc(),cP=O3(),hP=B3(),lP=N3(),dP=q3(),pP=F3();G3.exports={parse:RO,valid:kO,clean:NO,inc:CO,diff:qO,major:LO,minor:UO,patch:DO,prerelease:HO,compare:FO,rcompare:KO,compareLoose:GO,compareBuild:WO,sort:VO,rsort:zO,gt:$O,lt:jO,eq:XO,neq:YO,gte:JO,lte:ZO,cmp:QO,coerce:eP,Comparator:tP,Range:rP,satisfies:nP,toComparators:iP,maxSatisfying:sP,minSatisfying:oP,minVersion:aP,validRange:fP,outside:uP,gtr:cP,ltr:hP,intersects:lP,simplifyRange:dP,subset:pP,SemVer:BO,re:ed.re,src:ed.src,tokens:ed.t,SEMVER_SPEC_VERSION:PO.SEMVER_SPEC_VERSION,compareIdentifiers:K3.compareIdentifiers,rcompareIdentifiers:K3.rcompareIdentifiers}});var b6=T(Bt=>{"use strict";var FP=Bt&&Bt.__extends||function(){var e=function(t,r){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,i){n.__proto__=i}||function(n,i){for(var s in i)Object.prototype.hasOwnProperty.call(i,s)&&(n[s]=i[s])},e(t,r)};return function(t,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");e(t,r);function n(){this.constructor=t}t.prototype=r===null?Object.create(r):(n.prototype=r.prototype,new n)}}(),KP=Bt&&Bt.__values||function(e){var t=typeof Symbol=="function"&&Symbol.iterator,r=t&&e[t],n=0;if(r)return r.call(e);if(e&&typeof e.length=="number")return{next:function(){return e&&n>=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")};Bt.__esModule=!0;Bt.serializeError=Bt.deserializeError=Bt.createCustomErrorClass=Bt.addCustomErrorDeserializer=void 0;var d6={},p6={},GP=function(e,t){p6[e]=t};Bt.addCustomErrorDeserializer=GP;var WP=function(e){var t=function(r){FP(n,r);function n(i,s,a){var u=r.call(this,i||e,a)||this;if(Object.setPrototypeOf(u,n.prototype),u.name=e,s)for(var l in s)u[l]=s[l];if(a&&VP(a)&&"cause"in a&&!("cause"in u)){var c=a.cause;u.cause=c,"stack"in c&&(u.stack=u.stack+` +CAUSE: `+c.stack)}return u}return n}(Error);return d6[e]=t,t};Bt.createCustomErrorClass=WP;function VP(e){return typeof e=="object"}var zP=function(e){if(e&&typeof e=="object"){try{if(typeof e.message=="string"){var t=JSON.parse(e.message);t.message&&t.name&&(e=t)}}catch{}var r=void 0;if(typeof e.name=="string"){var n=e.name,i=p6[n];if(i)r=i(e);else{var s=n==="Error"?Error:d6[n];s||(console.warn("deserializing an unknown class '"+n+"'"),s=(0,Bt.createCustomErrorClass)(n)),r=Object.create(s.prototype);try{for(var a in e)e.hasOwnProperty(a)&&(r[a]=e[a])}catch{}}}else typeof e.message=="string"&&(r=new Error(e.message));return r&&!r.stack&&Error.captureStackTrace&&Error.captureStackTrace(r,Bt.deserializeError),r}return new Error(String(e))};Bt.deserializeError=zP;var $P=function(e){return e&&(typeof e=="object"?v6(e,[]):typeof e=="function"?"[Function: ".concat(e.name||"anonymous","]"):e)};Bt.serializeError=$P;function v6(e,t){var r,n,i={};t.push(e);try{for(var s=KP(Object.keys(e)),a=s.next();!a.done;a=s.next()){var u=a.value,l=e[u];if(typeof l!="function"){if(!l||typeof l!="object"){i[u]=l;continue}if(t.indexOf(e[u])===-1){i[u]=v6(e[u],t.slice(0));continue}i[u]="[Circular]"}}}catch(c){r={error:c}}finally{try{a&&!a.done&&(n=s.return)&&n.call(s)}finally{if(r)throw r.error}}return typeof e.name=="string"&&(i.name=e.name),typeof e.message=="string"&&(i.message=e.message),typeof e.stack=="string"&&(i.stack=e.stack),i}});var sc=T(I=>{"use strict";var g6=I&&I.__extends||function(){var e=function(t,r){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,i){n.__proto__=i}||function(n,i){for(var s in i)Object.prototype.hasOwnProperty.call(i,s)&&(n[s]=i[s])},e(t,r)};return function(t,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");e(t,r);function n(){this.constructor=t}t.prototype=r===null?Object.create(r):(n.prototype=r.prototype,new n)}}();I.__esModule=!0;I.NoAddressesFound=I.NetworkDown=I.ManagerUninstallBTCDep=I.ManagerNotEnoughSpaceError=I.ManagerFirmwareNotEnoughSpaceError=I.ManagerDeviceLockedError=I.ManagerAppDepUninstallRequired=I.ManagerAppDepInstallRequired=I.ManagerAppRelyOnBTCError=I.ManagerAppAlreadyInstalledError=I.LedgerAPINotAvailable=I.LedgerAPIErrorWithMessage=I.LedgerAPIError=I.UnknownMCU=I.LatestMCUInstalledError=I.InvalidAddressBecauseDestinationIsAlsoSource=I.InvalidAddress=I.InvalidXRPTag=I.HardResetFail=I.FirmwareNotRecognized=I.FeeEstimationFailed=I.EthAppPleaseEnableContractData=I.EnpointConfigError=I.DeviceOnboardingStatePollingError=I.DeviceExtractOnboardingStateError=I.DisconnectedDeviceDuringOperation=I.DisconnectedDevice=I.LockedDeviceError=I.DeviceSocketNoBulkStatus=I.DeviceSocketFail=I.DeviceNameInvalid=I.DeviceHalted=I.DeviceInOSUExpected=I.DeviceOnDashboardUnexpected=I.DeviceOnDashboardExpected=I.DeviceNotGenuineError=I.DeviceGenuineSocketEarlyClose=I.DeviceAppVerifyNotSupported=I.CurrencyNotSupported=I.CashAddrNotSupported=I.CantOpenDevice=I.BtcUnmatchedApp=I.BluetoothRequired=I.AmountRequired=I.AccountNotSupported=I.AccountNameRequiredError=I.addCustomErrorDeserializer=I.createCustomErrorClass=I.deserializeError=I.serializeError=void 0;I.PairingFailed=I.SyncError=I.PendingOperation=I.DustLimit=I.FeeTooHigh=I.FeeRequired=I.FeeNotLoaded=I.CantScanQRCode=I.ETHAddressNonEIP=I.WrongAppForCurrency=I.WrongDeviceForAccount=I.WebsocketConnectionFailed=I.WebsocketConnectionError=I.DeviceShouldStayInApp=I.TransportWebUSBGestureRequired=I.TransportRaceCondition=I.TransportInterfaceNotAvailable=I.TransportOpenUserCancelled=I.UserRefusedOnDevice=I.UserRefusedAllowManager=I.UserRefusedFirmwareUpdate=I.UserRefusedAddress=I.UserRefusedDeviceNameChange=I.UpdateYourApp=I.UpdateIncorrectSig=I.UpdateIncorrectHash=I.UpdateFetchFileFail=I.UnavailableTezosOriginatedAccountSend=I.UnavailableTezosOriginatedAccountReceive=I.RecipientRequired=I.MCUNotGenuineToDashboard=I.UnexpectedBootloader=I.TimeoutTagged=I.RecommendUndelegation=I.RecommendSubAccountsToEmpty=I.PasswordIncorrectError=I.PasswordsDontMatchError=I.MaxFeeTooLow=I.PriorityFeeHigherThanMaxFee=I.PriorityFeeTooHigh=I.PriorityFeeTooLow=I.GasLessThanEstimate=I.NotSupportedLegacyAddress=I.NotEnoughGas=I.NoAccessToCamera=I.NotEnoughBalanceBecauseDestinationNotCreated=I.NotEnoughSpendableBalance=I.NotEnoughBalanceInParentAccount=I.NotEnoughBalanceToDelegate=I.NotEnoughBalance=void 0;I.TransportStatusError=I.getAltStatusMessage=I.StatusCodes=I.TransportError=I.HwTransportError=I.HwTransportErrorType=I.DBNotReset=I.DBWrongPassword=I.NoDBPathGiven=I.LanguageNotFound=I.FirmwareOrAppUpdateRequired=I.LedgerAPI5xx=I.LedgerAPI4xx=I.GenuineCheckFailed=void 0;var C=b6();I.serializeError=C.serializeError;I.deserializeError=C.deserializeError;I.createCustomErrorClass=C.createCustomErrorClass;I.addCustomErrorDeserializer=C.addCustomErrorDeserializer;I.AccountNameRequiredError=(0,C.createCustomErrorClass)("AccountNameRequired");I.AccountNotSupported=(0,C.createCustomErrorClass)("AccountNotSupported");I.AmountRequired=(0,C.createCustomErrorClass)("AmountRequired");I.BluetoothRequired=(0,C.createCustomErrorClass)("BluetoothRequired");I.BtcUnmatchedApp=(0,C.createCustomErrorClass)("BtcUnmatchedApp");I.CantOpenDevice=(0,C.createCustomErrorClass)("CantOpenDevice");I.CashAddrNotSupported=(0,C.createCustomErrorClass)("CashAddrNotSupported");I.CurrencyNotSupported=(0,C.createCustomErrorClass)("CurrencyNotSupported");I.DeviceAppVerifyNotSupported=(0,C.createCustomErrorClass)("DeviceAppVerifyNotSupported");I.DeviceGenuineSocketEarlyClose=(0,C.createCustomErrorClass)("DeviceGenuineSocketEarlyClose");I.DeviceNotGenuineError=(0,C.createCustomErrorClass)("DeviceNotGenuine");I.DeviceOnDashboardExpected=(0,C.createCustomErrorClass)("DeviceOnDashboardExpected");I.DeviceOnDashboardUnexpected=(0,C.createCustomErrorClass)("DeviceOnDashboardUnexpected");I.DeviceInOSUExpected=(0,C.createCustomErrorClass)("DeviceInOSUExpected");I.DeviceHalted=(0,C.createCustomErrorClass)("DeviceHalted");I.DeviceNameInvalid=(0,C.createCustomErrorClass)("DeviceNameInvalid");I.DeviceSocketFail=(0,C.createCustomErrorClass)("DeviceSocketFail");I.DeviceSocketNoBulkStatus=(0,C.createCustomErrorClass)("DeviceSocketNoBulkStatus");I.LockedDeviceError=(0,C.createCustomErrorClass)("LockedDeviceError");I.DisconnectedDevice=(0,C.createCustomErrorClass)("DisconnectedDevice");I.DisconnectedDeviceDuringOperation=(0,C.createCustomErrorClass)("DisconnectedDeviceDuringOperation");I.DeviceExtractOnboardingStateError=(0,C.createCustomErrorClass)("DeviceExtractOnboardingStateError");I.DeviceOnboardingStatePollingError=(0,C.createCustomErrorClass)("DeviceOnboardingStatePollingError");I.EnpointConfigError=(0,C.createCustomErrorClass)("EnpointConfig");I.EthAppPleaseEnableContractData=(0,C.createCustomErrorClass)("EthAppPleaseEnableContractData");I.FeeEstimationFailed=(0,C.createCustomErrorClass)("FeeEstimationFailed");I.FirmwareNotRecognized=(0,C.createCustomErrorClass)("FirmwareNotRecognized");I.HardResetFail=(0,C.createCustomErrorClass)("HardResetFail");I.InvalidXRPTag=(0,C.createCustomErrorClass)("InvalidXRPTag");I.InvalidAddress=(0,C.createCustomErrorClass)("InvalidAddress");I.InvalidAddressBecauseDestinationIsAlsoSource=(0,C.createCustomErrorClass)("InvalidAddressBecauseDestinationIsAlsoSource");I.LatestMCUInstalledError=(0,C.createCustomErrorClass)("LatestMCUInstalledError");I.UnknownMCU=(0,C.createCustomErrorClass)("UnknownMCU");I.LedgerAPIError=(0,C.createCustomErrorClass)("LedgerAPIError");I.LedgerAPIErrorWithMessage=(0,C.createCustomErrorClass)("LedgerAPIErrorWithMessage");I.LedgerAPINotAvailable=(0,C.createCustomErrorClass)("LedgerAPINotAvailable");I.ManagerAppAlreadyInstalledError=(0,C.createCustomErrorClass)("ManagerAppAlreadyInstalled");I.ManagerAppRelyOnBTCError=(0,C.createCustomErrorClass)("ManagerAppRelyOnBTC");I.ManagerAppDepInstallRequired=(0,C.createCustomErrorClass)("ManagerAppDepInstallRequired");I.ManagerAppDepUninstallRequired=(0,C.createCustomErrorClass)("ManagerAppDepUninstallRequired");I.ManagerDeviceLockedError=(0,C.createCustomErrorClass)("ManagerDeviceLocked");I.ManagerFirmwareNotEnoughSpaceError=(0,C.createCustomErrorClass)("ManagerFirmwareNotEnoughSpace");I.ManagerNotEnoughSpaceError=(0,C.createCustomErrorClass)("ManagerNotEnoughSpace");I.ManagerUninstallBTCDep=(0,C.createCustomErrorClass)("ManagerUninstallBTCDep");I.NetworkDown=(0,C.createCustomErrorClass)("NetworkDown");I.NoAddressesFound=(0,C.createCustomErrorClass)("NoAddressesFound");I.NotEnoughBalance=(0,C.createCustomErrorClass)("NotEnoughBalance");I.NotEnoughBalanceToDelegate=(0,C.createCustomErrorClass)("NotEnoughBalanceToDelegate");I.NotEnoughBalanceInParentAccount=(0,C.createCustomErrorClass)("NotEnoughBalanceInParentAccount");I.NotEnoughSpendableBalance=(0,C.createCustomErrorClass)("NotEnoughSpendableBalance");I.NotEnoughBalanceBecauseDestinationNotCreated=(0,C.createCustomErrorClass)("NotEnoughBalanceBecauseDestinationNotCreated");I.NoAccessToCamera=(0,C.createCustomErrorClass)("NoAccessToCamera");I.NotEnoughGas=(0,C.createCustomErrorClass)("NotEnoughGas");I.NotSupportedLegacyAddress=(0,C.createCustomErrorClass)("NotSupportedLegacyAddress");I.GasLessThanEstimate=(0,C.createCustomErrorClass)("GasLessThanEstimate");I.PriorityFeeTooLow=(0,C.createCustomErrorClass)("PriorityFeeTooLow");I.PriorityFeeTooHigh=(0,C.createCustomErrorClass)("PriorityFeeTooHigh");I.PriorityFeeHigherThanMaxFee=(0,C.createCustomErrorClass)("PriorityFeeHigherThanMaxFee");I.MaxFeeTooLow=(0,C.createCustomErrorClass)("MaxFeeTooLow");I.PasswordsDontMatchError=(0,C.createCustomErrorClass)("PasswordsDontMatch");I.PasswordIncorrectError=(0,C.createCustomErrorClass)("PasswordIncorrect");I.RecommendSubAccountsToEmpty=(0,C.createCustomErrorClass)("RecommendSubAccountsToEmpty");I.RecommendUndelegation=(0,C.createCustomErrorClass)("RecommendUndelegation");I.TimeoutTagged=(0,C.createCustomErrorClass)("TimeoutTagged");I.UnexpectedBootloader=(0,C.createCustomErrorClass)("UnexpectedBootloader");I.MCUNotGenuineToDashboard=(0,C.createCustomErrorClass)("MCUNotGenuineToDashboard");I.RecipientRequired=(0,C.createCustomErrorClass)("RecipientRequired");I.UnavailableTezosOriginatedAccountReceive=(0,C.createCustomErrorClass)("UnavailableTezosOriginatedAccountReceive");I.UnavailableTezosOriginatedAccountSend=(0,C.createCustomErrorClass)("UnavailableTezosOriginatedAccountSend");I.UpdateFetchFileFail=(0,C.createCustomErrorClass)("UpdateFetchFileFail");I.UpdateIncorrectHash=(0,C.createCustomErrorClass)("UpdateIncorrectHash");I.UpdateIncorrectSig=(0,C.createCustomErrorClass)("UpdateIncorrectSig");I.UpdateYourApp=(0,C.createCustomErrorClass)("UpdateYourApp");I.UserRefusedDeviceNameChange=(0,C.createCustomErrorClass)("UserRefusedDeviceNameChange");I.UserRefusedAddress=(0,C.createCustomErrorClass)("UserRefusedAddress");I.UserRefusedFirmwareUpdate=(0,C.createCustomErrorClass)("UserRefusedFirmwareUpdate");I.UserRefusedAllowManager=(0,C.createCustomErrorClass)("UserRefusedAllowManager");I.UserRefusedOnDevice=(0,C.createCustomErrorClass)("UserRefusedOnDevice");I.TransportOpenUserCancelled=(0,C.createCustomErrorClass)("TransportOpenUserCancelled");I.TransportInterfaceNotAvailable=(0,C.createCustomErrorClass)("TransportInterfaceNotAvailable");I.TransportRaceCondition=(0,C.createCustomErrorClass)("TransportRaceCondition");I.TransportWebUSBGestureRequired=(0,C.createCustomErrorClass)("TransportWebUSBGestureRequired");I.DeviceShouldStayInApp=(0,C.createCustomErrorClass)("DeviceShouldStayInApp");I.WebsocketConnectionError=(0,C.createCustomErrorClass)("WebsocketConnectionError");I.WebsocketConnectionFailed=(0,C.createCustomErrorClass)("WebsocketConnectionFailed");I.WrongDeviceForAccount=(0,C.createCustomErrorClass)("WrongDeviceForAccount");I.WrongAppForCurrency=(0,C.createCustomErrorClass)("WrongAppForCurrency");I.ETHAddressNonEIP=(0,C.createCustomErrorClass)("ETHAddressNonEIP");I.CantScanQRCode=(0,C.createCustomErrorClass)("CantScanQRCode");I.FeeNotLoaded=(0,C.createCustomErrorClass)("FeeNotLoaded");I.FeeRequired=(0,C.createCustomErrorClass)("FeeRequired");I.FeeTooHigh=(0,C.createCustomErrorClass)("FeeTooHigh");I.DustLimit=(0,C.createCustomErrorClass)("DustLimit");I.PendingOperation=(0,C.createCustomErrorClass)("PendingOperation");I.SyncError=(0,C.createCustomErrorClass)("SyncError");I.PairingFailed=(0,C.createCustomErrorClass)("PairingFailed");I.GenuineCheckFailed=(0,C.createCustomErrorClass)("GenuineCheckFailed");I.LedgerAPI4xx=(0,C.createCustomErrorClass)("LedgerAPI4xx");I.LedgerAPI5xx=(0,C.createCustomErrorClass)("LedgerAPI5xx");I.FirmwareOrAppUpdateRequired=(0,C.createCustomErrorClass)("FirmwareOrAppUpdateRequired");I.LanguageNotFound=(0,C.createCustomErrorClass)("LanguageNotFound");I.NoDBPathGiven=(0,C.createCustomErrorClass)("NoDBPathGiven");I.DBWrongPassword=(0,C.createCustomErrorClass)("DBWrongPassword");I.DBNotReset=(0,C.createCustomErrorClass)("DBNotReset");var jP;(function(e){e[e.Unknown=0]="Unknown",e[e.BleLocationServicesDisabled=1]="BleLocationServicesDisabled",e[e.BleBluetoothUnauthorized=2]="BleBluetoothUnauthorized",e[e.BleScanStartFailed=3]="BleScanStartFailed"})(jP=I.HwTransportErrorType||(I.HwTransportErrorType={}));var XP=function(e){g6(t,e);function t(r,n){var i=e.call(this,n)||this;return i.name="HwTransportError",i.type=r,Object.setPrototypeOf(i,t.prototype),i}return t}(Error);I.HwTransportError=XP;var m6=function(e){g6(t,e);function t(r,n){var i=this,s="TransportError";return i=e.call(this,r||s)||this,i.name=s,i.message=r,i.stack=new Error().stack,i.id=n,i}return t}(Error);I.TransportError=m6;(0,C.addCustomErrorDeserializer)("TransportError",function(e){return new m6(e.message,e.id)});I.StatusCodes={ACCESS_CONDITION_NOT_FULFILLED:38916,ALGORITHM_NOT_SUPPORTED:38020,CLA_NOT_SUPPORTED:28160,CODE_BLOCKED:38976,CODE_NOT_INITIALIZED:38914,COMMAND_INCOMPATIBLE_FILE_STRUCTURE:27009,CONDITIONS_OF_USE_NOT_SATISFIED:27013,CONTRADICTION_INVALIDATION:38928,CONTRADICTION_SECRET_CODE_STATUS:38920,CUSTOM_IMAGE_BOOTLOADER:26159,CUSTOM_IMAGE_EMPTY:26158,FILE_ALREADY_EXISTS:27273,FILE_NOT_FOUND:37892,GP_AUTH_FAILED:25344,HALTED:28586,INCONSISTENT_FILE:37896,INCORRECT_DATA:27264,INCORRECT_LENGTH:26368,INCORRECT_P1_P2:27392,INS_NOT_SUPPORTED:27904,INVALID_KCV:38021,INVALID_OFFSET:37890,LICENSING:28482,LOCKED_DEVICE:21781,MAX_VALUE_REACHED:38992,MEMORY_PROBLEM:37440,MISSING_CRITICAL_PARAMETER:26624,NO_EF_SELECTED:37888,NOT_ENOUGH_MEMORY_SPACE:27268,OK:36864,PIN_REMAINING_ATTEMPTS:25536,REFERENCED_DATA_NOT_FOUND:27272,SECURITY_STATUS_NOT_SATISFIED:27010,TECHNICAL_PROBLEM:28416,UNKNOWN_APDU:27906,USER_REFUSED_ON_DEVICE:21761};function y6(e){switch(e){case 26368:return"Incorrect length";case 26624:return"Missing critical parameter";case 27010:return"Security not satisfied (dongle locked or have invalid access rights)";case 27013:return"Condition of use not satisfied (denied by the user?)";case 27264:return"Invalid data received";case 27392:return"Invalid parameter received";case 21781:return"Locked device"}if(28416<=e&&e<=28671)return"Internal error, please report"}I.getAltStatusMessage=y6;function ld(e){var t=Object.keys(I.StatusCodes).find(function(s){return I.StatusCodes[s]===e})||"UNKNOWN_ERROR",r=y6(e)||t,n=e.toString(16),i="Ledger device: ".concat(r," (0x").concat(n,")");if(e===I.StatusCodes.LOCKED_DEVICE)throw new I.LockedDeviceError(i);this.name="TransportStatusError",this.message=i,this.stack=new Error().stack,this.statusCode=e,this.statusText=t}I.TransportStatusError=ld;ld.prototype=new Error;(0,C.addCustomErrorDeserializer)("TransportStatusError",function(e){return new ld(e.statusCode)})});var dd=T(it=>{"use strict";var oc=it&&it.__awaiter||function(e,t,r,n){function i(s){return s instanceof r?s:new r(function(a){a(s)})}return new(r||(r=Promise))(function(s,a){function u(p){try{c(n.next(p))}catch(w){a(w)}}function l(p){try{c(n.throw(p))}catch(w){a(w)}}function c(p){p.done?s(p.value):i(p.value).then(u,l)}c((n=n.apply(e,t||[])).next())})},ac=it&&it.__generator||function(e,t){var r={label:0,sent:function(){if(s[0]&1)throw s[1];return s[1]},trys:[],ops:[]},n,i,s,a;return a={next:u(0),throw:u(1),return:u(2)},typeof Symbol=="function"&&(a[Symbol.iterator]=function(){return this}),a;function u(c){return function(p){return l([c,p])}}function l(c){if(n)throw new TypeError("Generator is already executing.");for(;r;)try{if(n=1,i&&(s=c[0]&2?i.return:c[0]?i.throw||((s=i.return)&&s.call(i),0):i.next)&&!(s=s.call(i,c[1])).done)return s;switch(i=0,s&&(c=[c[0]&2,s.value]),c[0]){case 0:case 1:s=c;break;case 4:return r.label++,{value:c[1],done:!1};case 5:r.label++,i=c[1],c=[0];continue;case 7:c=r.ops.pop(),r.trys.pop();continue;default:if(s=r.trys,!(s=s.length>0&&s[s.length-1])&&(c[0]===6||c[0]===2)){r=0;continue}if(c[0]===3&&(!s||c[1]>s[0]&&c[1]=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")},YP=it&&it.__read||function(e,t){var r=typeof Symbol=="function"&&e[Symbol.iterator];if(!r)return e;var n=r.call(e),i,s=[],a;try{for(;(t===void 0||t-- >0)&&!(i=n.next()).done;)s.push(i.value)}catch(u){a={error:u}}finally{try{i&&!i.done&&(r=n.return)&&r.call(n)}finally{if(a)throw a.error}}return s},JP=it&&it.__spreadArray||function(e,t,r){if(r||arguments.length===2)for(var n=0,i=t.length,s;n=256)throw new Yt.TransportError("data.length exceed 256 bytes limit. Got: "+a.length,"DataLengthTooBig");return[4,this.exchange(Buffer.concat([Buffer.from([r,n,i,s]),Buffer.from([a.length]),a]))];case 1:if(l=p.sent(),c=l.readUInt16BE(l.length-2),!u.some(function(w){return w===c}))throw new Yt.TransportStatusError(c);return[2,l]}})})},this.exchangeAtomicImpl=function(r){return oc(t,void 0,void 0,function(){var n,i,s,a,u,l=this;return ac(this,function(c){switch(c.label){case 0:if(this.exchangeBusyPromise)throw new Yt.TransportRaceCondition("An action was already pending on the Ledger device. Please deny or reconnect.");i=new Promise(function(p){n=p}),this.exchangeBusyPromise=i,s=!1,a=setTimeout(function(){s=!0,l.emit("unresponsive")},this.unresponsiveTimeout),c.label=1;case 1:return c.trys.push([1,,3,4]),[4,r()];case 2:return u=c.sent(),s&&this.emit("responsive"),[2,u];case 3:return clearTimeout(a),n&&n(),this.exchangeBusyPromise=null,[7];case 4:return[2]}})})},this._appAPIlock=null}return e.prototype.exchange=function(t){throw new Error("exchange not implemented")},e.prototype.exchangeBulk=function(t,r){var n=this,i=!1,s=function(){i=!0},a=function(){return oc(n,void 0,void 0,function(){var u,l,c,p,w,x,S,M;return ac(this,function(O){switch(O.label){case 0:if(i)return[2];O.label=1;case 1:O.trys.push([1,6,7,8]),u=w6(t),l=u.next(),O.label=2;case 2:return l.done?[3,5]:(c=l.value,[4,this.exchange(c)]);case 3:if(p=O.sent(),i)return[2];if(w=p.readUInt16BE(p.length-2),w!==Yt.StatusCodes.OK)throw new Yt.TransportStatusError(w);r.next(p),O.label=4;case 4:return l=u.next(),[3,2];case 5:return[3,8];case 6:return x=O.sent(),S={error:x},[3,8];case 7:try{l&&!l.done&&(M=u.return)&&M.call(u)}finally{if(S)throw S.error}return[7];case 8:return[2]}})})};return a().then(function(){return!i&&r.complete()},function(u){return!i&&r.error(u)}),{unsubscribe:s}},e.prototype.setScrambleKey=function(t){},e.prototype.close=function(){return Promise.resolve()},e.prototype.on=function(t,r){this._events.on(t,r)},e.prototype.off=function(t,r){this._events.removeListener(t,r)},e.prototype.emit=function(t){for(var r,n=[],i=1;i{"use strict";bd.__esModule=!0;var vd=sc(),E6=5;function tB(e){var t=Buffer.alloc(2);return t.writeUInt16BE(e,0),t}var rB={data:Buffer.alloc(0),dataLength:0,sequence:0},nB=function(e,t){return{makeBlocks:function(r){var n=Buffer.concat([tB(r.length),r]),i=t-5,s=Math.ceil(n.length/i);n=Buffer.concat([n,Buffer.alloc(s*i-n.length+1).fill(0)]);for(var a=[],u=0;ua&&(s=s.slice(0,a)),{data:s,dataLength:a,sequence:u}},getReducedResult:function(r){if(r&&r.dataLength===r.data.length)return r.data}}};bd.default=nB});var wd=T(De=>{"use strict";var md=De&&De.__assign||function(){return md=Object.assign||function(e){for(var t,r=1,n=arguments.length;r>8,n=hc.find(function(i){return i.productIdMM===r});return n};De.identifyUSBProductId=fB;var uB=function(e){var t=hc.find(function(r){return r.id===sB[e]});return t};De.identifyProductName=uB;var T6=[],yd={};for(I6 in cc)if(gd=cc[I6],fc=gd.bluetoothSpec,fc)for(uc=0;uc{"use strict";var _d=Gt&&Gt.__awaiter||function(e,t,r,n){function i(s){return s instanceof r?s:new r(function(a){a(s)})}return new(r||(r=Promise))(function(s,a){function u(p){try{c(n.next(p))}catch(w){a(w)}}function l(p){try{c(n.throw(p))}catch(w){a(w)}}function c(p){p.done?s(p.value):i(p.value).then(u,l)}c((n=n.apply(e,t||[])).next())})},Ed=Gt&&Gt.__generator||function(e,t){var r={label:0,sent:function(){if(s[0]&1)throw s[1];return s[1]},trys:[],ops:[]},n,i,s,a;return a={next:u(0),throw:u(1),return:u(2)},typeof Symbol=="function"&&(a[Symbol.iterator]=function(){return this}),a;function u(c){return function(p){return l([c,p])}}function l(c){if(n)throw new TypeError("Generator is already executing.");for(;r;)try{if(n=1,i&&(s=c[0]&2?i.return:c[0]?i.throw||((s=i.return)&&s.call(i),0):i.next)&&!(s=s.call(i,c[1])).done)return s;switch(i=0,s&&(c=[c[0]&2,s.value]),c[0]){case 0:case 1:s=c;break;case 4:return r.label++,{value:c[1],done:!1};case 5:r.label++,i=c[1],c=[0];continue;case 7:c=r.ops.pop(),r.trys.pop();continue;default:if(s=r.trys,!(s=s.length>0&&s[s.length-1])&&(c[0]===6||c[0]===2)){r=0;continue}if(c[0]===3&&(!s||c[1]>s[0]&&c[1]0?[2,e[0]]:[2,A6()]}})})}Gt.getFirstLedgerDevice=dB;var pB=function(){return Promise.resolve(!!navigator&&!!navigator.usb&&typeof navigator.usb.getDevices=="function")};Gt.isSupported=pB});var q6=T(mr=>{"use strict";var vB=mr&&mr.__extends||function(){var e=function(t,r){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,i){n.__proto__=i}||function(n,i){for(var s in i)Object.prototype.hasOwnProperty.call(i,s)&&(n[s]=i[s])},e(t,r)};return function(t,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");e(t,r);function n(){this.constructor=t}t.prototype=r===null?Object.create(r):(n.prototype=r.prototype,new n)}}(),is=mr&&mr.__awaiter||function(e,t,r,n){function i(s){return s instanceof r?s:new r(function(a){a(s)})}return new(r||(r=Promise))(function(s,a){function u(p){try{c(n.next(p))}catch(w){a(w)}}function l(p){try{c(n.throw(p))}catch(w){a(w)}}function c(p){p.done?s(p.value):i(p.value).then(u,l)}c((n=n.apply(e,t||[])).next())})},ss=mr&&mr.__generator||function(e,t){var r={label:0,sent:function(){if(s[0]&1)throw s[1];return s[1]},trys:[],ops:[]},n,i,s,a;return a={next:u(0),throw:u(1),return:u(2)},typeof Symbol=="function"&&(a[Symbol.iterator]=function(){return this}),a;function u(c){return function(p){return l([c,p])}}function l(c){if(n)throw new TypeError("Generator is already executing.");for(;r;)try{if(n=1,i&&(s=c[0]&2?i.return:c[0]?i.throw||((s=i.return)&&s.call(i),0):i.next)&&!(s=s.call(i,c[1])).done)return s;switch(i=0,s&&(c=[c[0]&2,s.value]),c[0]){case 0:case 1:s=c;break;case 4:return r.label++,{value:c[1],done:!1};case 5:r.label++,i=c[1],c=[0];continue;case 7:c=r.ops.pop(),r.trys.pop();continue;default:if(s=r.trys,!(s=s.length>0&&s[s.length-1])&&(c[0]===6||c[0]===2)){r=0;continue}if(c[0]===3&&(!s||c[1]>s[0]&&c[1] "+r.toString("hex")),c=(0,gB.default)(u,l),p=c.makeBlocks(r),w=0,P.label=1;case 1:return wlc});module.exports=V6(IB);var Ly=Qe(Cs()),Uy=Qe(pr());var Dl=Qe(Ul()),Hl=Qe(ci());function Fl(e){var t=Buffer.alloc(1+e.length*4);return t[0]=e.length,e.forEach(function(r,n){t.writeUInt32BE(r,1+4*n)}),t}function qs(e){var t=e?Cr(e):[];return Fl(t)}function Ls(e){return Dl.default.fromPathArray(e).toString()}function Cr(e){return Dl.default.fromString(e).toPathArray()}function Kl(e){var t=Hl.default.decode(e);return t.slice(t.length-33)}function Gl(e){var t=Hl.default.decode(e);return{chaincode:t.slice(13,13+32),pubkey:t.slice(t.length-33),version:t.readUInt32BE(0)}}function Kg(e){for(var t=e.length-1;t>=0;t--)if(e[t]>=2147483648)return e.slice(0,t+1);return[]}var mu=Qe(Ro());function Wl(e){if(e>Number.MAX_SAFE_INTEGER)throw new Error("Can't convert numbers > MAX_SAFE_INT");for(var t=Buffer.alloc(8,0),r=0;r MAX_SAFE_INT");if(e[6]>31)throw new Error("Can't encode numbers > MAX_SAFE_INT");for(var r=e.length-1;r>=0;r--)t=t*256+e[r];return t}var ot=function(){function e(){this.bufs=[]}return e.prototype.write=function(t,r){var n=Buffer.alloc(t);r(n),this.bufs.push(n)},e.prototype.writeUInt8=function(t){this.write(1,function(r){return r.writeUInt8(t,0)})},e.prototype.writeInt32=function(t){this.write(4,function(r){return r.writeInt32LE(t,0)})},e.prototype.writeUInt32=function(t){this.write(4,function(r){return r.writeUInt32LE(t,0)})},e.prototype.writeUInt64=function(t){var r=Wl(t);this.writeSlice(r)},e.prototype.writeVarInt=function(t){this.bufs.push(mu.default.encode(t))},e.prototype.writeSlice=function(t){this.bufs.push(Buffer.from(t))},e.prototype.writeVarSlice=function(t){this.writeVarInt(t.length),this.writeSlice(t)},e.prototype.buffer=function(){return Buffer.concat(this.bufs)},e}();var qr=function(){function e(t,r){r===void 0&&(r=0),this.buffer=t,this.offset=r}return e.prototype.available=function(){return this.buffer.length-this.offset},e.prototype.readUInt8=function(){var t=this.buffer.readUInt8(this.offset);return this.offset++,t},e.prototype.readInt32=function(){var t=this.buffer.readInt32LE(this.offset);return this.offset+=4,t},e.prototype.readUInt32=function(){var t=this.buffer.readUInt32LE(this.offset);return this.offset+=4,t},e.prototype.readUInt64=function(){var t=this.readSlice(8),r=Vl(t);return r},e.prototype.readVarInt=function(){var t=mu.default.decode(this.buffer,this.offset);return this.offset+=mu.default.decode.bytes,t},e.prototype.readSlice=function(t){if(this.buffer.length0)&&!(i=n.next()).done;)s.push(i.value)}catch(u){a={error:u}}finally{try{i&&!i.done&&(r=n.return)&&r.call(n)}finally{if(a)throw a.error}}return s},Py=function(e,t,r){if(r||arguments.length===2)for(var n=0,i=t.length,s;n=this.leaves.length)throw Error("Index out of bounds");return x0(this.leafNodes[t])},e.prototype.calculateRoot=function(t){var r=t.length;if(r==0)return{root:new E0(void 0,void 0,Buffer.alloc(32,0)),leaves:[]};if(r==1){var n=new E0(void 0,void 0,t[0]);return{root:n,leaves:[n]}}var i=QT(r),s=this.calculateRoot(t.slice(0,i)),a=this.calculateRoot(t.slice(i)),u=s.root,l=a.root,c=this.hashNode(u.hash,l.hash),p=new E0(u,l,c);return u.parent=p,l.parent=p,{root:p,leaves:s.leaves.concat(a.leaves)}},e.prototype.hashNode=function(t,r){return this.h(Buffer.concat([Buffer.from([1]),t,r]))},e}();function Dr(e,t){return t===void 0&&(t=S0.crypto.sha256),ZT(Buffer.from([0]),e,t)}function ZT(e,t,r){return r(Buffer.concat([e,t]))}var E0=function(){function e(t,r,n){this.leftChild=t,this.rightChild=r,this.hash=n}return e.prototype.isLeaf=function(){return this.leftChild==null},e}();function x0(e){if(!e.parent)return[];if(e.parent.leftChild==e){if(!e.parent.rightChild)throw new Error("Expected right child to exist");return Py([e.parent.rightChild.hash],Oy(x0(e.parent)),!1)}else{if(!e.parent.leftChild)throw new Error("Expected left child to exist");return Py([e.parent.leftChild.hash],Oy(x0(e.parent)),!1)}}function QT(e){if(e<2)throw Error("Expected n >= 2");return eM(e)?e/2:1<0){if(n.length>1)throw Error("Expected exactly one signature, got ".concat(n.length));if(i)throw Error("Both taproot and non-taproot signatures present.");var s=!!e.getInputWitnessUtxo(r),a=e.getInputRedeemScript(r),u=!!a,l=e.getInputPartialSig(r,n[0]);if(!l)throw new Error("Expected partial signature for input "+r);if(s){var c=new ot;if(c.writeVarInt(2),c.writeVarInt(l.length),c.writeSlice(l),c.writeVarInt(n[0].length),c.writeSlice(n[0]),e.setInputFinalScriptwitness(r,c.buffer()),u){if(!a||a.length==0)throw new Error("Expected non-empty redeemscript. Can't finalize intput "+r);var p=new ot;p.writeUInt8(a.length),p.writeSlice(a),e.setInputFinalScriptsig(r,p.buffer())}}else{var w=new ot;Cy(w,l),Cy(w,n[0]),e.setInputFinalScriptsig(r,w.buffer())}}else{var l=e.getInputTapKeySig(r);if(!l)throw Error("No taproot signature found");if(l.length!=64&&l.length!=65)throw Error("Unexpected length of schnorr signature.");var c=new ot;c.writeVarInt(1),c.writeVarSlice(l),e.setInputFinalScriptwitness(r,c.buffer())}aM(e,r)}}function aM(e,t){var r=[Ce.BIP32_DERIVATION,Ce.PARTIAL_SIG,Ce.TAP_BIP32_DERIVATION,Ce.TAP_KEY_SIG],n=!!e.getInputWitnessUtxo(t),i=!!e.getInputNonWitnessUtxo(t);n&&i&&r.push(Ce.NON_WITNESS_UTXO),e.deleteInputEntries(t,r)}function Cy(e,t){if(t.length<=75)e.writeUInt8(t.length);else if(t.length<=256)e.writeUInt8(76),e.writeUInt8(t.length);else if(t.length<=256*256){e.writeUInt8(77);var r=Buffer.alloc(2);r.writeUInt16LE(t.length,0),e.writeSlice(r)}e.writeSlice(t)}function zi(e,t){if(e[t]<253)return[e[t],1];if(e[t]===253)return[(e[t+2]<<8)+e[t+1],3];if(e[t]===254)return[(e[t+4]<<24)+(e[t+3]<<16)+(e[t+2]<<8)+e[t+1],5];throw new Error("getVarint called with unexpected parameters")}function rt(e){if(e<253){var t=Buffer.alloc(1);return t[0]=e,t}if(e<=65535){var r=Buffer.alloc(3);return r[0]=253,r[1]=e&255,r[2]=e>>8&255,r}var n=Buffer.alloc(5);return n[0]=254,n[1]=e&255,n[2]=e>>8&255,n[3]=e>>16&255,n[4]=e>>24&255,n}function P0(e){var t=e.outputs,r=Buffer.alloc(0);return typeof t<"u"&&(r=Buffer.concat([r,rt(t.length)]),t.forEach(function(n){r=Buffer.concat([r,n.amount,rt(n.script.length),n.script])})),r}function Vs(e,t,r,n){n===void 0&&(n=[]);var i=n.includes("decred"),s=n.includes("zcash"),a=n.includes("bech32"),u=Buffer.alloc(0),l=typeof e.witness<"u"&&!t;e.inputs.forEach(function(p){u=i||a?Buffer.concat([u,p.prevout,Buffer.from([0]),p.sequence]):Buffer.concat([u,p.prevout,rt(p.script.length),p.script,p.sequence])});var c=P0(e);return typeof e.outputs<"u"&&typeof e.locktime<"u"&&(c=Buffer.concat([c,l&&e.witness||Buffer.alloc(0),e.locktime,e.nExpiryHeight||Buffer.alloc(0),e.extraData||Buffer.alloc(0)])),s?Buffer.concat([e.version,e.nVersionGroupId||Buffer.alloc(0),Buffer.from([180,208,214,194]),e.locktime||Buffer.from([0,0,0,0]),e.nExpiryHeight||Buffer.from([0,0,0,0]),l?Buffer.from("0001","hex"):Buffer.alloc(0),rt(e.inputs.length),u,c]):Buffer.concat([e.version,r||Buffer.alloc(0),e.nVersionGroupId||Buffer.alloc(0),l?Buffer.from("0001","hex"):Buffer.alloc(0),rt(e.inputs.length),u,c])}var $i=function(e,t,r,n){function i(s){return s instanceof r?s:new r(function(a){a(s)})}return new(r||(r=Promise))(function(s,a){function u(p){try{c(n.next(p))}catch(w){a(w)}}function l(p){try{c(n.throw(p))}catch(w){a(w)}}function c(p){p.done?s(p.value):i(p.value).then(u,l)}c((n=n.apply(e,t||[])).next())})},ji=function(e,t){var r={label:0,sent:function(){if(s[0]&1)throw s[1];return s[1]},trys:[],ops:[]},n,i,s,a;return a={next:u(0),throw:u(1),return:u(2)},typeof Symbol=="function"&&(a[Symbol.iterator]=function(){return this}),a;function u(c){return function(p){return l([c,p])}}function l(c){if(n)throw new TypeError("Generator is already executing.");for(;r;)try{if(n=1,i&&(s=c[0]&2?i.return:c[0]?i.throw||((s=i.return)&&s.call(i),0):i.next)&&!(s=s.call(i,c[1])).done)return s;switch(i=0,s&&(c=[c[0]&2,s.value]),c[0]){case 0:case 1:s=c;break;case 4:return r.label++,{value:c[1],done:!1};case 5:r.label++,i=c[1],c=[0];continue;case 7:c=r.ops.pop(),r.trys.pop();continue;default:if(s=r.trys,!(s=s.length>0&&s[s.length-1])&&(c[0]===6||c[0]===2)){r=0;continue}if(c[0]===3&&(!s||c[1]>s[0]&&c[1]=t},i=function(a){return a===void 0||a=3&&r.length<=5&&[44+t,49+t,84+t,86+t].some(function(a){return a==r[0]})&&[0+t,1+t].some(function(a){return a==r[1]})&&n(r[2])&&s(r[3])&&i(r[4])||r.length>=4&&r.length<=6&&48+t==r[0]&&[0+t,1+t].some(function(a){return a==r[1]})&&n(r[2])&&n(r[3])&&s(r[4])&&i(r[5]))}var Z3=Qe(bc()),Q3=Qe(m0()),e6=Qe(Hu());var z3=Qe(Wu());var R0=function(){return R0=Object.assign||function(e){for(var t,r=1,n=arguments.length;r0&&s[s.length-1])&&(c[0]===6||c[0]===2)){r=0;continue}if(c[0]===3&&(!s||c[1]>s[0]&&c[1]0&&s[s.length-1])&&(c[0]===6||c[0]===2)){r=0;continue}if(c[0]===3&&(!s||c[1]>s[0]&&c[1]=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")};function zs(e,t,r){return C0(this,void 0,void 0,function(){var n,i,s,a,u;return q0(this,function(l){switch(l.label){case 0:return i=!1,typeof r=="number"?(i=!0,s=Buffer.alloc(4),s.writeUInt32BE(r,0),n=Buffer.concat([s,t],t.length+4)):n=t,[4,e.send(224,66,i?0:128,0,n)];case 1:return a=l.sent(),u=a.slice(0,a.length-2).toString("hex"),[2,u]}})})}function $s(e,t,r,n){return n===void 0&&(n=[]),C0(this,void 0,void 0,function(){var i,s,a,u,l,c,p,w,x,S,M,O,P,B,N,y,L,H,W,K,y,X,q,ee,y,o,h,d,v,m,_=this;return q0(this,function(E){switch(E.label){case 0:if(i=r.version,s=r.inputs,a=r.outputs,u=r.locktime,l=r.nExpiryHeight,c=r.extraData,!a||!u)throw new Error("getTrustedInput: locktime & outputs is expected");return p=n.includes("decred"),w=n.includes("stealthcoin"),x=function(b,f){return C0(_,void 0,void 0,function(){var g,A,R,k,U,G,F,Le,V,j,fr;return q0(this,function(Y){switch(Y.label){case 0:for(g=f||Buffer.alloc(0),A=[],R=0;R!==b.length;)k=b.length-R>rr?rr:b.length-R,R+k!==b.length?A.push(b.slice(R,R+k)):A.push(Buffer.concat([b.slice(R,R+k),g])),R+=k;b.length===0&&A.push(g),Y.label=1;case 1:Y.trys.push([1,6,7,8]),G=N0(A),F=G.next(),Y.label=2;case 2:return F.done?[3,5]:(Le=F.value,[4,zs(e,Le)]);case 3:U=Y.sent(),Y.label=4;case 4:return F=G.next(),[3,2];case 5:return[3,8];case 6:return V=Y.sent(),j={error:V},[3,8];case 7:try{F&&!F.done&&(fr=G.return)&&fr.call(G)}finally{if(j)throw j.error}return[7];case 8:return[2,U]}})})},S=function(b){return zs(e,b)},[4,zs(e,Buffer.concat([r.version,r.timestamp||Buffer.alloc(0),r.nVersionGroupId||Buffer.alloc(0),rt(s.length)]),t)];case 1:E.sent(),E.label=2;case 2:E.trys.push([2,8,9,10]),M=N0(s),O=M.next(),E.label=3;case 3:return O.done?[3,7]:(P=O.value,B=w&&Buffer.compare(i,Buffer.from([2,0,0,0]))===0,N=p?P.tree||Buffer.from([0]):Buffer.alloc(0),y=Buffer.concat([P.prevout,N,B?Buffer.from([0]):rt(P.script.length)]),[4,zs(e,y)]);case 4:return E.sent(),[4,p?S(Buffer.concat([P.script,P.sequence])):B?S(P.sequence):x(P.script,P.sequence)];case 5:E.sent(),E.label=6;case 6:return O=M.next(),[3,3];case 7:return[3,10];case 8:return L=E.sent(),h={error:L},[3,10];case 9:try{O&&!O.done&&(d=M.return)&&d.call(M)}finally{if(h)throw h.error}return[7];case 10:return[4,zs(e,rt(a.length))];case 11:E.sent(),E.label=12;case 12:E.trys.push([12,17,18,19]),H=N0(a),W=H.next(),E.label=13;case 13:return W.done?[3,16]:(K=W.value,y=Buffer.concat([K.amount,p?Buffer.from([0,0]):Buffer.alloc(0),rt(K.script.length),K.script]),[4,zs(e,y)]);case 14:E.sent(),E.label=15;case 15:return W=H.next(),[3,13];case 16:return[3,19];case 17:return X=E.sent(),v={error:X},[3,19];case 18:try{W&&!W.done&&(m=H.return)&&m.call(H)}finally{if(v)throw v.error}return[7];case 19:return q=[],l&&l.length>0&&q.push(l),c&&c.length>0&&q.push(c),q.length&&(y=Buffer.concat(q),ee=p?y:Buffer.concat([rt(y.length),y])),[4,x(Buffer.concat([u,ee||Buffer.alloc(0)]))];case 20:return o=E.sent(),(0,Fy.default)(o,"missing result in processScriptBlocks"),[2,o]}})})}var wM=function(e,t,r,n){function i(s){return s instanceof r?s:new r(function(a){a(s)})}return new(r||(r=Promise))(function(s,a){function u(p){try{c(n.next(p))}catch(w){a(w)}}function l(p){try{c(n.throw(p))}catch(w){a(w)}}function c(p){p.done?s(p.value):i(p.value).then(u,l)}c((n=n.apply(e,t||[])).next())})},_M=function(e,t){var r={label:0,sent:function(){if(s[0]&1)throw s[1];return s[1]},trys:[],ops:[]},n,i,s,a;return a={next:u(0),throw:u(1),return:u(2)},typeof Symbol=="function"&&(a[Symbol.iterator]=function(){return this}),a;function u(c){return function(p){return l([c,p])}}function l(c){if(n)throw new TypeError("Generator is already executing.");for(;r;)try{if(n=1,i&&(s=c[0]&2?i.return:c[0]?i.throw||((s=i.return)&&s.call(i),0):i.next)&&!(s=s.call(i,c[1])).done)return s;switch(i=0,s&&(c=[c[0]&2,s.value]),c[0]){case 0:case 1:s=c;break;case 4:return r.label++,{value:c[1],done:!1};case 5:r.label++,i=c[1],c=[0];continue;case 7:c=r.ops.pop(),r.trys.pop();continue;default:if(s=r.trys,!(s=s.length>0&&s[s.length-1])&&(c[0]===6||c[0]===2)){r=0;continue}if(c[0]===3&&(!s||c[1]>s[0]&&c[1]=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")};function L0(e,t,r,n,i,s,a){i===void 0&&(i=!1),s===void 0&&(s=!1),a===void 0&&(a=[]);var u=a.includes("cashaddr")?3:i?a.includes("sapling")?5:s?4:2:0;return e.send(224,68,r?0:128,t?u:128,n)}function js(e,t,r,n,i,s,a,u){return i===void 0&&(i=!1),s===void 0&&(s=!1),a===void 0&&(a=[]),u===void 0&&(u=!1),wM(this,void 0,void 0,function(){var l,c,p,w,x,S,M,O,P,B,N,L,H,W,K,X,q,ee,y,o;return _M(this,function(h){switch(h.label){case 0:return l=Buffer.concat([r.version,r.timestamp||Buffer.alloc(0),r.nVersionGroupId||Buffer.alloc(0),rt(r.inputs.length)]),[4,L0(e,t,!0,l,i,s,a)];case 1:h.sent(),c=0,p=a.includes("decred"),h.label=2;case 2:h.trys.push([2,15,16,17]),w=Ky(r.inputs),x=w.next(),h.label=3;case 3:return x.done?[3,14]:(S=x.value,M=void 0,O=n[c].value,i?u&&n[c].trustedInput?M=Buffer.from([1,O.length]):M=Buffer.from([2]):n[c].trustedInput?M=Buffer.from([1,n[c].value.length]):M=Buffer.from([0]),l=Buffer.concat([M,O,p?Buffer.from([0]):Buffer.alloc(0),rt(S.script.length)]),[4,L0(e,t,!1,l,i,s,a)]);case 4:if(h.sent(),P=[],B=0,S.script.length===0)P.push(S.sequence);else for(;B!==S.script.length;)N=S.script.length-B>rr?rr:S.script.length-B,B+N!==S.script.length?P.push(S.script.slice(B,B+N)):P.push(Buffer.concat([S.script.slice(B,B+N),S.sequence])),B+=N;h.label=5;case 5:h.trys.push([5,10,11,12]),L=(y=void 0,Ky(P)),H=L.next(),h.label=6;case 6:return H.done?[3,9]:(W=H.value,[4,L0(e,t,!1,W,i,s,a)]);case 7:h.sent(),h.label=8;case 8:return H=L.next(),[3,6];case 9:return[3,12];case 10:return K=h.sent(),y={error:K},[3,12];case 11:try{H&&!H.done&&(o=L.return)&&o.call(L)}finally{if(y)throw y.error}return[7];case 12:c++,h.label=13;case 13:return x=w.next(),[3,3];case 14:return[3,17];case 15:return X=h.sent(),q={error:X},[3,17];case 16:try{x&&!x.done&&(ee=w.return)&&ee.call(w)}finally{if(q)throw q.error}return[7];case 17:return[2]}})})}var U0=Qe(Hu());function Xs(e,t,r,n){if(n===void 0&&(n=[]),!r)throw new Error("getTrustedInputBIP143: missing tx");var i=n.includes("decred");if(i)throw new Error("Decred does not implement BIP143");var s=(0,U0.default)("sha256").update((0,U0.default)("sha256").update(Vs(r,!0)).digest()).digest(),a=Buffer.alloc(4);a.writeUInt32LE(t,0);var u=r.outputs,l=r.locktime;if(!u||!l)throw new Error("getTrustedInputBIP143: locktime & outputs is expected");if(!u[t])throw new Error("getTrustedInputBIP143: wrong index");return s=Buffer.concat([s,a,u[t].amount]),s.toString("hex")}function Gy(e){var t=(e[64]&1)!==0?3:2,r=Buffer.alloc(1);return r[0]=t,Buffer.concat([r,e.slice(1,1+32)])}function ba(e,t,r,n,i,s){s===void 0&&(s=[]);var a=s.includes("decred"),u=qs(t),l=Buffer.alloc(4);l.writeUInt32BE(r,0);var c=a?Buffer.concat([u,l,i||Buffer.from([0,0,0,0]),Buffer.from([n])]):Buffer.concat([u,Buffer.from([0]),l,Buffer.from([n])]);return i&&!a&&(c=Buffer.concat([c,i])),e.send(224,72,0,0,c).then(function(p){return p.length>0?(p[0]=48,p.slice(0,p.length-2)):p})}var EM=function(e,t,r,n){function i(s){return s instanceof r?s:new r(function(a){a(s)})}return new(r||(r=Promise))(function(s,a){function u(p){try{c(n.next(p))}catch(w){a(w)}}function l(p){try{c(n.throw(p))}catch(w){a(w)}}function c(p){p.done?s(p.value):i(p.value).then(u,l)}c((n=n.apply(e,t||[])).next())})},xM=function(e,t){var r={label:0,sent:function(){if(s[0]&1)throw s[1];return s[1]},trys:[],ops:[]},n,i,s,a;return a={next:u(0),throw:u(1),return:u(2)},typeof Symbol=="function"&&(a[Symbol.iterator]=function(){return this}),a;function u(c){return function(p){return l([c,p])}}function l(c){if(n)throw new TypeError("Generator is already executing.");for(;r;)try{if(n=1,i&&(s=c[0]&2?i.return:c[0]?i.throw||((s=i.return)&&s.call(i),0):i.next)&&!(s=s.call(i,c[1])).done)return s;switch(i=0,s&&(c=[c[0]&2,s.value]),c[0]){case 0:case 1:s=c;break;case 4:return r.label++,{value:c[1],done:!1};case 5:r.label++,i=c[1],c=[0];continue;case 7:c=r.ops.pop(),r.trys.pop();continue;default:if(s=r.trys,!(s=s.length>0&&s[s.length-1])&&(c[0]===6||c[0]===2)){r=0;continue}if(c[0]===3&&(!s||c[1]>s[0]&&c[1]=t.length?t.length-n:rr,u=n+a===t.length?128:0,l=t.slice(n,n+a),[4,e.send(224,74,u,0,l)]):[3,3];case 2:return c.sent(),n+=a,[3,1];case 3:return[2]}})})}var zy=Qe(k0()),Wy=function(e,t,r,n){function i(s){return s instanceof r?s:new r(function(a){a(s)})}return new(r||(r=Promise))(function(s,a){function u(p){try{c(n.next(p))}catch(w){a(w)}}function l(p){try{c(n.throw(p))}catch(w){a(w)}}function c(p){p.done?s(p.value):i(p.value).then(u,l)}c((n=n.apply(e,t||[])).next())})},Vy=function(e,t){var r={label:0,sent:function(){if(s[0]&1)throw s[1];return s[1]},trys:[],ops:[]},n,i,s,a;return a={next:u(0),throw:u(1),return:u(2)},typeof Symbol=="function"&&(a[Symbol.iterator]=function(){return this}),a;function u(c){return function(p){return l([c,p])}}function l(c){if(n)throw new TypeError("Generator is already executing.");for(;r;)try{if(n=1,i&&(s=c[0]&2?i.return:c[0]?i.throw||((s=i.return)&&s.call(i),0):i.next)&&!(s=s.call(i,c[1])).done)return s;switch(i=0,s&&(c=[c[0]&2,s.value]),c[0]){case 0:case 1:s=c;break;case 4:return r.label++,{value:c[1],done:!1};case 5:r.label++,i=c[1],c=[0];continue;case 7:c=r.ops.pop(),r.trys.pop();continue;default:if(s=r.trys,!(s=s.length>0&&s[s.length-1])&&(c[0]===6||c[0]===2)){r=0;continue}if(c[0]===3&&(!s||c[1]>s[0]&&c[1]0&&s[s.length-1])&&(c[0]===6||c[0]===2)){r=0;continue}if(c[0]===3&&(!s||c[1]>s[0]&&c[1]=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")},mP={lockTime:yu,sigHashType:zo,segwit:!1,additionals:[],onDeviceStreaming:function(e){},onDeviceSignatureGranted:function(){},onDeviceSignatureRequested:function(){}};function $3(e,t){return vP(this,void 0,void 0,function(){var r,n,i,s,a,u,l,c,p,w,x,S,M,O,P,B,N,L,H,W,K,X,q,ee,y,o,h,d,v,m,_,E,b,f,g,A,R,k,U,G,ct,F,Le,V,j,fr,Y,D,oe,D,D,ct,re,te,hn,ae,D,ne,Hr,ie,J,yr,D,fe,wr,se,ue;return bP(this,function(qe){switch(qe.label){case 0:if(r=to(to({},mP),t),n=r.inputs,i=r.associatedKeysets,s=r.changePath,a=r.outputScriptHex,u=r.lockTime,l=r.sigHashType,c=r.segwit,p=r.initialTimestamp,w=r.additionals,x=r.expiryHeight,S=r.onDeviceStreaming,M=r.onDeviceSignatureGranted,O=r.onDeviceSignatureRequested,P=r.useTrustedInputForSegwit,P!==void 0)return[3,4];qe.label=1;case 1:return qe.trys.push([1,3,,4]),[4,Vu(e)];case 2:return B=qe.sent(),P=V3(B),[3,4];case 3:if(N=qe.sent(),N.statusCode===27904)P=!1;else throw N;return[3,4];case 4:L=function(Z,Q){var Jt=n.length;if(!(Jt<3)){var ce=Jt*Z+Q,he=2*Jt,Gn=ce/he;S({progress:Gn,total:he,index:ce})}},H=w.includes("decred"),W=w.includes("zcash"),K=w.includes("stealthcoin"),X=Date.now(),q=w.includes("sapling"),ee=c&&w.includes("bech32"),y=c||!!w&&(w.includes("abc")||w.includes("gold")||w.includes("bip143"))||!!x&&!H,o=Buffer.alloc(4),o.writeUInt32LE(u,0),h=Buffer.alloc(0),d=Buffer.alloc(0),v=Buffer.alloc(4),!!x&&!H?v.writeUInt32LE(W?2147483653:q?2147483652:2147483651,0):K?v.writeUInt32LE(2,0):v.writeUInt32LE(1,0),m=[],_=[],E=[],b=[],f=!0,g=!1,A={inputs:[],version:v,timestamp:Buffer.alloc(0)},R=y&&!P?Xs:$s,k=Buffer.from(a,"hex"),L(0,0),qe.label=5;case 5:qe.trys.push([5,11,12,13]),U=gP(n),G=U.next(),qe.label=6;case 6:return G.done?[3,10]:(ct=G.value,g?[3,8]:[4,R(e,ct[1],ct[0],w)]);case 7:F=qe.sent(),(0,z3.log)("hw","got trustedInput="+F),Le=Buffer.alloc(4),Le.writeUInt32LE(ct.length>=4&&typeof ct[3]=="number"?ct[3]:Us,0),m.push({trustedInput:!0,value:Buffer.from(F,"hex"),sequence:Le}),qe.label=8;case 8:V=ct[0].outputs,j=ct[1],V&&j<=V.length-1&&_.push(V[j]),x&&!H?(A.nVersionGroupId=Buffer.from(W?[10,39,167,38]:q?[133,32,47,137]:[112,130,196,3]),A.nExpiryHeight=x,A.extraData=Buffer.from(q?[0,0,0,0,0,0,0,0,0,0,0]:[0])):H&&(A.nExpiryHeight=x),qe.label=9;case 9:return G=U.next(),[3,6];case 10:return[3,13];case 11:return fr=qe.sent(),se={error:fr},[3,13];case 12:try{G&&!G.done&&(ue=U.return)&&ue.call(U)}finally{if(se)throw se.error}return[7];case 13:if(A.inputs=n.map(function(Z,Q){var Jt=Buffer.alloc(4);return Jt.writeUInt32LE(Z.length>=4&&typeof Z[3]=="number"?Z[3]:Us,0),{script:W?_[Q].script:h,prevout:d,sequence:Jt}}),g)return[3,18];Y=[],D=0,qe.label=14;case 14:return D=3&&typeof ct[2]=="string"?Buffer.from(ct[2],"hex"):c?Buffer.concat([Buffer.from([wu,$o,Ds]),Hn(b[D]),Buffer.from([_u,Eu])]):_[D].script,te=Object.assign({},A),hn=y?[m[D]]:m,y?te.inputs=[to(to({},te.inputs[D]),{script:re})]:te.inputs[D].script=re,[4,js(e,!y&&f,te,hn,y,!!x&&!H,w,P)]):[3,34];case 27:return qe.sent(),y?[3,31]:!g&&s?[4,D0(e,s)]:[3,29];case 28:qe.sent(),qe.label=29;case 29:return[4,Ys(e,k,w)];case 30:qe.sent(),qe.label=31;case 31:return f&&(M(),L(1,0)),[4,ba(e,i[D],u,l,x,w)];case 32:ae=qe.sent(),L(1,D+1),E.push(ae),A.inputs[D].script=h,f&&(f=!1),qe.label=33;case 33:return D++,[3,26];case 34:for(D=0;D0&&s[s.length-1])&&(c[0]===6||c[0]===2)){r=0;continue}if(c[0]===3&&(!s||c[1]>s[0]&&c[1]1)throw new Error("@ledgerhq/hw-app-btc: createPaymentTransaction multi argument signature is deprecated. please switch to named parameters.");return $3(this.transport,t)},e}(),nd=yP;function wP(e){return SP(e).slice(0,4)}function Y3(e){var t=Buffer.allocUnsafe(4);return t.writeUInt32BE(e,0),t}var J3=function(e){return Buffer.concat([Buffer.from([2+(e[64]&1)]),e.slice(1,33)])};function _P(e,t,r,n,i,s){var a=Y3(n);a[0]|=128;var u=Buffer.concat([Y3(e),Buffer.from([t]),r,a,i,s]),l=EP(u).slice(0,4);return Z3.default.encode(Buffer.concat([u,l]))}function rd(e){return(0,e6.default)("sha256").update(e).digest()}function EP(e){return rd(rd(e))}function xP(e){return new Q3.default().update(e).digest()}function SP(e){return xP(rd(e))}var t6=function(){function e(t,r){if(t.length!=r.length)throw new Error("keys and values should have the same length");for(var n=0;n=t[n+1].toString("hex"))throw new Error("keys must be in strictly increasing order");this.keys=t,this.keysTree=new Ur(t.map(function(i){return Dr(i)})),this.values=r,this.valuesTree=new Ur(r.map(function(i){return Dr(i)}))}return e.prototype.commitment=function(){return Buffer.concat([rt(this.keys.length),this.keysTree.getRoot(),this.valuesTree.getRoot()])},e}();var IP=function(){var e=function(t,r){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,i){n.__proto__=i}||function(n,i){for(var s in i)Object.prototype.hasOwnProperty.call(i,s)&&(n[s]=i[s])},e(t,r)};return function(t,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");e(t,r);function n(){this.constructor=t}t.prototype=r===null?Object.create(r):(n.prototype=r.prototype,new n)}}(),id=function(e,t){var r=typeof Symbol=="function"&&e[Symbol.iterator];if(!r)return e;var n=r.call(e),i,s=[],a;try{for(;(t===void 0||t-- >0)&&!(i=n.next()).done;)s.push(i.value)}catch(u){a={error:u}}finally{try{i&&!i.done&&(r=n.return)&&r.call(n)}finally{if(a)throw a.error}}return s},sd=function(e,t,r){if(r||arguments.length===2)for(var n=0,i=t.length,s;n0)&&!(i=n.next()).done;)s.push(i.value)}catch(u){a={error:u}}finally{try{i&&!i.done&&(r=n.return)&&r.call(n)}finally{if(a)throw a.error}}return s},ad=function(e,t,r){if(r||arguments.length===2)for(var n=0,i=t.length,s;n=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")},rs;(function(e){e[e.YIELD=16]="YIELD",e[e.GET_PREIMAGE=64]="GET_PREIMAGE",e[e.GET_MERKLE_LEAF_PROOF=65]="GET_MERKLE_LEAF_PROOF",e[e.GET_MERKLE_LEAF_INDEX=66]="GET_MERKLE_LEAF_INDEX",e[e.GET_MORE_ELEMENTS=160]="GET_MORE_ELEMENTS"})(rs||(rs={}));var Aa=function(){function e(){}return e}(),TP=function(e){Ma(t,e);function t(r,n){var i=e.call(this)||this;return i.progressCallback=n,i.code=rs.YIELD,i.results=r,i}return t.prototype.execute=function(r){return this.results.push(Buffer.from(r.subarray(1))),this.progressCallback(),Buffer.from("")},t}(Aa);var MP=function(e){Ma(t,e);function t(r,n){var i=e.call(this)||this;return i.code=rs.GET_PREIMAGE,i.known_preimages=r,i.queue=n,i}return t.prototype.execute=function(r){var n=Buffer.from(r.subarray(1));if(n.length!=1+32)throw new Error("Invalid request, unexpected trailing data");if(n[0]!=0)throw new Error("Unsupported request, the first byte should be 0");for(var i=Buffer.alloc(32),s=0;s<32;s++)i[s]=n[1+s];var a=i.toString("hex"),u=this.known_preimages.get(a);if(u!=null){var l=rt(u.length),c=255-l.length-1,p=Math.min(c,u.length);if(p=l||p.size()!=l)throw Error("Invalid index or tree size.");if(this.queue.length!=0)throw Error("This command should not execute when the queue is not empty.");var w=p.getProof(c),x=Math.min(Math.floor((255-32-1-1)/32),w.length),S=w.length-x;return S>0&&(n=this.queue).push.apply(n,ad([],od(w.slice(-S)),!1)),Buffer.concat(ad([p.getLeafHash(c),Buffer.from([w.length]),Buffer.from([x])],od(w.slice(0,x)),!1))},t}(Aa);var OP=function(e){Ma(t,e);function t(r){var n=e.call(this)||this;return n.code=rs.GET_MERKLE_LEAF_INDEX,n.known_trees=r,n}return t.prototype.execute=function(r){var n=Buffer.from(r.subarray(1));if(n.length!=32+32)throw new Error("Invalid request, unexpected trailing data");for(var i=Buffer.alloc(32),s=0;s<32;s++)i[s]=n.readUInt8(s);for(var a=i.toString("hex"),u=Buffer.alloc(32),s=0;s<32;s++)u[s]=n.readUInt8(32+s);var l=u.toString("hex"),c=this.known_trees.get(a);if(!c)throw Error("Requested Merkle leaf index for unknown root: ".concat(a));for(var p=0,w=0,s=0;s0&&s[s.length-1])&&(c[0]===6||c[0]===2)){r=0;continue}if(c[0]===3&&(!s||c[1]>s[0]&&c[1]=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")},BP=225,RP=248,ro;(function(e){e[e.GET_PUBKEY=0]="GET_PUBKEY",e[e.REGISTER_WALLET=2]="REGISTER_WALLET",e[e.GET_WALLET_ADDRESS=3]="GET_WALLET_ADDRESS",e[e.SIGN_PSBT=4]="SIGN_PSBT",e[e.GET_MASTER_FINGERPRINT=5]="GET_MASTER_FINGERPRINT"})(ro||(ro={}));var cd;(function(e){e[e.CONTINUE_INTERRUPTED=1]="CONTINUE_INTERRUPTED"})(cd||(cd={}));var s6=function(){function e(t){this.transport=t}return e.prototype.makeRequest=function(t,r,n){return Oa(this,void 0,void 0,function(){var i,s,a;return Pa(this,function(u){switch(u.label){case 0:return[4,this.transport.send(BP,t,0,0,r,[36864,57344])];case 1:i=u.sent(),u.label=2;case 2:if(i.readUInt16BE(i.length-2)!==57344)return[3,4];if(!n)throw new Error("Unexpected SW_INTERRUPTED_EXECUTION");return s=i.slice(0,-2),a=n.execute(s),[4,this.transport.send(RP,cd.CONTINUE_INTERRUPTED,0,0,a,[36864,57344])];case 3:return i=u.sent(),[3,2];case 4:return[2,i.slice(0,-2)]}})})},e.prototype.getExtendedPubkey=function(t,r){return Oa(this,void 0,void 0,function(){var n;return Pa(this,function(i){switch(i.label){case 0:if(r.length>6)throw new Error("Path too long. At most 6 levels allowed.");return[4,this.makeRequest(ro.GET_PUBKEY,Buffer.concat([Buffer.from(t?[1]:[0]),Fl(r)]))];case 1:return n=i.sent(),[2,n.toString("ascii")]}})})},e.prototype.getWalletAddress=function(t,r,n,i,s){return Oa(this,void 0,void 0,function(){var a,u,l;return Pa(this,function(c){switch(c.label){case 0:if(n!==0&&n!==1)throw new Error("Change can only be 0 or 1");if(i<0||!Number.isInteger(i))throw new Error("Invalid address index");if(r!=null&&r.length!=32)throw new Error("Invalid HMAC length");return a=new fd(function(){}),a.addKnownList(t.keys.map(function(p){return Buffer.from(p,"ascii")})),a.addKnownPreimage(t.serialize()),u=Buffer.alloc(4),u.writeUInt32BE(i,0),[4,this.makeRequest(ro.GET_WALLET_ADDRESS,Buffer.concat([Buffer.from(s?[1]:[0]),t.getWalletId(),r||Buffer.alloc(32,0),Buffer.from([n]),u]),a)];case 1:return l=c.sent(),[2,l.toString("ascii")]}})})},e.prototype.signPsbt=function(t,r,n,i){return Oa(this,void 0,void 0,function(){var s,a,u,l,w,c,p,w,x,S,M,O,P,B,N,L,H,W,K,X,q;return Pa(this,function(ee){switch(ee.label){case 0:if(s=new r6(t),n!=null&&n.length!=32)throw new Error("Invalid HMAC length");a=new fd(i),a.addKnownList(r.keys.map(function(y){return Buffer.from(y,"ascii")})),a.addKnownPreimage(r.serialize()),a.addKnownMapping(s.globalMerkleMap);try{for(u=ud(s.inputMerkleMaps),l=u.next();!l.done;l=u.next())w=l.value,a.addKnownMapping(w)}catch(y){L={error:y}}finally{try{l&&!l.done&&(H=u.return)&&H.call(u)}finally{if(L)throw L.error}}try{for(c=ud(s.outputMerkleMaps),p=c.next();!p.done;p=c.next())w=p.value,a.addKnownMapping(w)}catch(y){W={error:y}}finally{try{p&&!p.done&&(K=c.return)&&K.call(c)}finally{if(W)throw W.error}}return a.addKnownList(s.inputMapCommitments),x=new Ur(s.inputMapCommitments.map(function(y){return Dr(y)})).getRoot(),a.addKnownList(s.outputMapCommitments),S=new Ur(s.outputMapCommitments.map(function(y){return Dr(y)})).getRoot(),[4,this.makeRequest(ro.SIGN_PSBT,Buffer.concat([s.getGlobalKeysValuesRoot(),rt(s.getGlobalInputCount()),x,rt(s.getGlobalOutputCount()),S,r.getWalletId(),n||Buffer.alloc(32,0)]),a)];case 1:ee.sent(),M=a.getYielded(),O=new Map;try{for(P=ud(M),B=P.next();!B.done;B=P.next())N=B.value,O.set(N[0],N.slice(1))}catch(y){X={error:y}}finally{try{B&&!B.done&&(q=P.return)&&q.call(P)}finally{if(X)throw X.error}}return[2,O]}})})},e.prototype.getMasterFingerprint=function(){return Oa(this,void 0,void 0,function(){return Pa(this,function(t){return[2,this.makeRequest(ro.GET_MASTER_FINGERPRINT,Buffer.from([]))]})})},e}();var a6=Qe(Wu());function o6(e){var t="TX";return t+=" version "+e.version.toString("hex"),e.locktime&&(t+=" locktime "+e.locktime.toString("hex")),e.witness&&(t+=" witness "+e.witness.toString("hex")),e.timestamp&&(t+=" timestamp "+e.timestamp.toString("hex")),e.nVersionGroupId&&(t+=" nVersionGroupId "+e.nVersionGroupId.toString("hex")),e.nExpiryHeight&&(t+=" nExpiryHeight "+e.nExpiryHeight.toString("hex")),e.extraData&&(t+=" extraData "+e.extraData.toString("hex")),e.inputs.forEach(function(r,n){var i=r.prevout,s=r.script,a=r.sequence;t+=` +input `.concat(n,":"),t+=" prevout ".concat(i.toString("hex")),t+=" script ".concat(s.toString("hex")),t+=" sequence ".concat(a.toString("hex"))}),(e.outputs||[]).forEach(function(r,n){var i=r.amount,s=r.script;t+=` +output `.concat(n,":"),t+=" amount ".concat(i.toString("hex")),t+=" script ".concat(s.toString("hex"))}),t}function f6(e,t,r,n,i){t===void 0&&(t=!1),r===void 0&&(r=!1),n===void 0&&(n=!1),i===void 0&&(i=[]);var s=[],a=[],u=!1,l=0,c=Buffer.alloc(0),p=Buffer.alloc(0),w=Buffer.alloc(0),x=Buffer.alloc(0),S,M,O=i.includes("decred"),P=i.includes("zencash"),B=i.includes("zcash"),N=Buffer.from(e,"hex"),L=N.slice(l,l+4),H=L.equals(Buffer.from([3,0,0,128]))||L.equals(Buffer.from([4,0,0,128]))||L.equals(Buffer.from([5,0,0,128])),W=B&&L.equals(Buffer.from([5,0,0,128]));l+=4,!r&&t&&N[l]===0&&N[l+1]!==0&&!P&&(l+=2,u=!0),r&&(c=N.slice(l,4+l),l+=4),H&&(w=N.slice(l,4+l),l+=4),W&&(M=N.slice(l+4,l+8),p=N.slice(l+8,l+12),l+=12);var K=zi(N,l),X=K[0];l+=K[1];for(var q=0;q0&&s[s.length-1])&&(c[0]===6||c[0]===2)){r=0;continue}if(c[0]===3&&(!s||c[1]>s[0]&&c[1]=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")},qP={lockTime:yu,sigHashType:zo,segwit:!1,transactionVersion:Gg};function u6(e,t){return kP(this,void 0,void 0,function(){var r,n,i,s,a,u,l,c,p,w,x,S,M,O,P,B,N,L,H,W,K,d,X,o,q,ee,y,h,o,h,d,v,m,_,E,b,f;return NP(this,function(g){switch(g.label){case 0:r=no(no({},qP),t),n=r.inputs,i=r.associatedKeysets,s=r.outputScriptHex,a=r.lockTime,u=r.sigHashType,l=r.segwit,c=r.transactionVersion,p=Buffer.alloc(0),w=Buffer.alloc(0),x=Buffer.alloc(4),x.writeUInt32LE(c,0),S=[],M=[],O=[],P=!0,B=!1,N={inputs:[],version:x},L=l?Xs:$s,H=Buffer.from(s,"hex"),g.label=1;case 1:g.trys.push([1,7,8,9]),W=CP(n),K=W.next(),g.label=2;case 2:return K.done?[3,6]:(d=K.value,B?[3,4]:[4,L(e,d[1],d[0])]);case 3:X=g.sent(),o=Buffer.alloc(4),o.writeUInt32LE(d.length>=4&&typeof d[3]=="number"?d[3]:Us,0),S.push({trustedInput:!1,value:l?Buffer.from(X,"hex"):Buffer.from(X,"hex").slice(4,4+36),sequence:o}),g.label=4;case 4:q=d[0].outputs,ee=d[1],q&&ee<=q.length-1&&M.push(q[ee]),g.label=5;case 5:return K=W.next(),[3,2];case 6:return[3,9];case 7:return y=g.sent(),b={error:y},[3,9];case 8:try{K&&!K.done&&(f=W.return)&&f.call(W)}finally{if(b)throw b.error}return[7];case 9:for(h=0;h=4&&typeof n[h][3]=="number"?n[h][3]:Us,0),N.inputs.push({script:p,prevout:w,sequence:o});return l?[4,js(e,!0,N,S,!0)]:[3,12];case 10:return g.sent(),[4,Ys(e,H)];case 11:g.sent(),g.label=12;case 12:h=0,g.label=13;case 13:return h=3&&typeof d[2]=="string"?Buffer.from(d[2],"hex"):M[h].script,m=Object.assign({},N),_=l?[S[h]]:S,l?m.inputs=[no(no({},m.inputs[h]),{script:v})]:m.inputs[h].script=v,[4,js(e,!l&&P,m,_,l)]):[3,19];case 14:return g.sent(),l?[3,16]:[4,Ys(e,H)];case 15:g.sent(),g.label=16;case 16:return[4,ba(e,i[h],a,u)];case 17:E=g.sent(),O.push(l?E.toString("hex"):E.slice(0,E.length-1).toString("hex")),N.inputs[h].script=p,P&&(P=!1),g.label=18;case 18:return h++,[3,13];case 19:return[2,O]}})})}var h6=Qe(Ul());var LP=function(e,t,r,n){function i(s){return s instanceof r?s:new r(function(a){a(s)})}return new(r||(r=Promise))(function(s,a){function u(p){try{c(n.next(p))}catch(w){a(w)}}function l(p){try{c(n.throw(p))}catch(w){a(w)}}function c(p){p.done?s(p.value):i(p.value).then(u,l)}c((n=n.apply(e,t||[])).next())})},c6=function(e,t){var r={label:0,sent:function(){if(s[0]&1)throw s[1];return s[1]},trys:[],ops:[]},n,i,s,a;return a={next:u(0),throw:u(1),return:u(2)},typeof Symbol=="function"&&(a[Symbol.iterator]=function(){return this}),a;function u(c){return function(p){return l([c,p])}}function l(c){if(n)throw new TypeError("Generator is already executing.");for(;r;)try{if(n=1,i&&(s=c[0]&2?i.return:c[0]?i.throw||((s=i.return)&&s.call(i),0):i.next)&&!(s=s.call(i,c[1])).done)return s;switch(i=0,s&&(c=[c[0]&2,s.value]),c[0]){case 0:case 1:s=c;break;case 4:return r.label++,{value:c[1],done:!1};case 5:r.label++,i=c[1],c=[0];continue;case 7:c=r.ops.pop(),r.trys.pop();continue;default:if(s=r.trys,!(s=s.length>0&&s[s.length-1])&&(c[0]===6||c[0]===2)){r=0;continue}if(c[0]===3&&(!s||c[1]>s[0]&&c[1]s.length?s.length-a:S,O=Buffer.alloc(a===0?1+i.length*4+2+M:M),a===0?(O[0]=i.length,i.forEach(function(B,N){O.writeUInt32BE(B,1+4*N)}),O.writeUInt16BE(s.length,1+4*i.length),s.copy(O,1+4*i.length+2,a,a+M)):s.copy(O,0,a,a+M),[4,e.send(224,78,0,a===0?1:128,O)];case 1:return P.sent(),a+=M,[2]}})},x.label=1;case 1:return a===s.length?[3,3]:[5,u()];case 2:return x.sent(),[3,1];case 3:return[4,e.send(224,78,128,0,Buffer.from([0]))];case 4:return l=x.sent(),c=l[0]-48,p=l.slice(4,4+l[3]),p[0]===0&&(p=p.slice(1)),p=p.toString("hex"),a=4+l[3]+2,w=l.slice(a,a+l[a-1]),w[0]===0&&(w=w.slice(1)),w=w.toString("hex"),[2,{v:c,r:p,s:w}]}})})}var UP=function(e,t,r,n){function i(s){return s instanceof r?s:new r(function(a){a(s)})}return new(r||(r=Promise))(function(s,a){function u(p){try{c(n.next(p))}catch(w){a(w)}}function l(p){try{c(n.throw(p))}catch(w){a(w)}}function c(p){p.done?s(p.value):i(p.value).then(u,l)}c((n=n.apply(e,t||[])).next())})},DP=function(e,t){var r={label:0,sent:function(){if(s[0]&1)throw s[1];return s[1]},trys:[],ops:[]},n,i,s,a;return a={next:u(0),throw:u(1),return:u(2)},typeof Symbol=="function"&&(a[Symbol.iterator]=function(){return this}),a;function u(c){return function(p){return l([c,p])}}function l(c){if(n)throw new TypeError("Generator is already executing.");for(;r;)try{if(n=1,i&&(s=c[0]&2?i.return:c[0]?i.throw||((s=i.return)&&s.call(i),0):i.next)&&!(s=s.call(i,c[1])).done)return s;switch(i=0,s&&(c=[c[0]&2,s.value]),c[0]){case 0:case 1:s=c;break;case 4:return r.label++,{value:c[1],done:!1};case 5:r.label++,i=c[1],c=[0];continue;case 7:c=r.ops.pop(),r.trys.pop();continue;default:if(s=r.trys,!(s=s.length>0&&s[s.length-1])&&(c[0]===6||c[0]===2)){r=0;continue}if(c[0]===3&&(!s||c[1]>s[0]&&c[1]2||typeof r=="boolean"?(console.warn("btc.getWalletPublicKey deprecated signature used. Please switch to getWalletPublicKey(path, { format, verify })"),n={verify:!!r,format:arguments[2]?"p2sh":"legacy"}):n=r||{},this.changeImplIfNecessary().then(function(i){return i.getWalletPublicKey(t,n)})},e.prototype.signMessage=function(t,r){return l6(this._transport,{path:t,messageHex:r})},e.prototype.createPaymentTransaction=function(t){if(arguments.length>1)throw new Error("@ledgerhq/hw-app-btc: createPaymentTransaction multi argument signature is deprecated. please switch to named parameters.");return this.changeImplIfNecessary().then(function(r){return r.createPaymentTransaction(t)})},e.prototype.signP2SHTransaction=function(t){return u6(this._transport,t)},e.prototype.splitTransaction=function(t,r,n,i,s){return r===void 0&&(r=!1),n===void 0&&(n=!1),i===void 0&&(i=!1),s===void 0&&(s=[]),f6(t,r,n,i,s)},e.prototype.serializeTransactionOutputs=function(t){return P0(t)},e.prototype.getTrustedInput=function(t,r,n){return n===void 0&&(n=[]),$s(this._transport,t,r,n)},e.prototype.getTrustedInputBIP143=function(t,r,n){return n===void 0&&(n=[]),Xs(this._transport,t,r,n)},e.prototype.changeImplIfNecessary=function(){return UP(this,void 0,void 0,function(){var t,r;return DP(this,function(n){switch(n.label){case 0:return[4,Vu(this._transport)];case 1:return t=n.sent(),t.name==="Exchange"&&this._impl instanceof B0?[4,$y(this._transport)]:[3,3];case 2:r=n.sent(),r&&(this._impl=new nd(this._transport)),n.label=3;case 3:return[2,this._impl]}})})},e}(),hd=HP;var _6=Qe(dd());var pd=class extends _6.default{baseURL;eventStream;constructor(t){super(),this.baseURL=t}button=async t=>{let r={action:"press-and-release"};await fetch(`${this.baseURL}/button/${t}`,{method:"POST",body:JSON.stringify(r)})};async exchange(t){let r=t.toString("hex"),i=await(await fetch(`${this.baseURL}/apdu`,{method:"POST",body:JSON.stringify({data:r})})).json(),{data:s}=i;return Buffer.from(s,"hex")}async close(){return this.eventStream.close(),Promise.resolve()}},cn=pd;vo(cn,"isSupported",()=>Promise.resolve(!0)),vo(cn,"list",()=>Promise.resolve([])),vo(cn,"listen",()=>({unsubscribe:()=>{}})),vo(cn,"open",async t=>{try{t=t||"http://127.0.0.1:5000";let r=new pd(t),n=new EventSource(`${t}/events?stream=true`);return r.eventStream=n,r}catch(r){throw console.log(r),r}});var L6=Qe(q6());function xd(){async function e(){return await L6.default.create()}async function t(r){return await cn.open(r)}return{createUSBTransport:e,createSpeculosTransport:t}}var wB="84'/0'/0'/0/0",_B="usb",{createUSBTransport:EB,createSpeculosTransport:xB}=xd(),SB={usb:EB,speculos:xB},lc=class{type;path;baseURL;_btc;constructor(t){t.type||(t.type=_B),t.path||(t.path=wB),this.type=t.type,this.path=t.path,this.baseURL=t.baseURL;let r=this.type,n=SB[r];n||console.log("Unknown or unsupported type",this.type),this._btc=n(this.baseURL).then(i=>new hd({transport:i,currency:"bitcoin_testnet"}))}_retry(t,r){return new Promise(async(n,i)=>{let s="Please make sure Ledger is ready and retry";r&&r>0&&setTimeout(()=>i(new Error(s)),r);let a=await this._btc;for(let u=0;u<50;u++){try{let l=await t(a);return n(l)}catch(l){if(l.id!=="TransportLocked")return i(l)}await new Promise(l=>{setTimeout(l,100)})}return i(new Error(s))})}async getAddress(){let{bitcoinAddress:t}=await this._retry(r=>r.getWalletPublicKey(this.path,{verify:!1,format:"bech32"}));return t}async signMessage(t){try{let r=Buffer.from(t).toString("hex"),n=await this._retry(a=>a.signMessage(this.path,r)),i=n.v+27+4,s=Buffer.from(i.toString(16)+n.r+n.s,"hex").toString("base64");return console.log("Signature : "+s),s}catch(r){throw console.log(r),r}}async sendTransaction({from:t,to:r,value:n}){try{let i="f85f49b51366f7150d2adea6544bc256743707a38e2bdfbf839349ba1ff2875c",a=await this._retry(async u=>u.splitTransaction(i,!1));return new Promise(u=>u(""))}catch(i){throw console.log("Error in bitcoin-ledger-signer sendTransaction: ",i),i}}};0&&(module.exports={}); +/*! safe-buffer. MIT License. Feross Aboukhadijeh */ +//# sourceMappingURL=index.js.map diff --git a/common/bitcoin-ledger-signer/dist/index.js.map b/common/bitcoin-ledger-signer/dist/index.js.map new file mode 100644 index 000000000..62e9d0f6a --- /dev/null +++ b/common/bitcoin-ledger-signer/dist/index.js.map @@ -0,0 +1,7 @@ +{ + "version": 3, + "sources": ["../../../node_modules/create-hash/index.js", "../../../node_modules/create-hmac/index.js", "../../../node_modules/bip32/src/crypto.js", "../../../node_modules/safe-buffer/index.js", "../../../node_modules/base-x/src/index.js", "../../../node_modules/bs58/index.js", "../../../node_modules/bs58check/base.js", "../../../node_modules/bs58check/index.js", "../../../node_modules/file-uri-to-path/index.js", "../../../node_modules/bindings/bindings.js", "../../../node_modules/tiny-secp256k1/native.js", "../../../node_modules/tiny-secp256k1/node_modules/bn.js/lib/bn.js", "../../../node_modules/elliptic/node_modules/bn.js/lib/bn.js", "../../../node_modules/minimalistic-assert/index.js", "../../../node_modules/minimalistic-crypto-utils/lib/utils.js", "../../../node_modules/elliptic/lib/elliptic/utils.js", "../../../node_modules/brorand/index.js", "../../../node_modules/elliptic/lib/elliptic/curve/base.js", "../../../node_modules/inherits/inherits_browser.js", "../../../node_modules/inherits/inherits.js", "../../../node_modules/elliptic/lib/elliptic/curve/short.js", "../../../node_modules/elliptic/lib/elliptic/curve/mont.js", "../../../node_modules/elliptic/lib/elliptic/curve/edwards.js", "../../../node_modules/elliptic/lib/elliptic/curve/index.js", "../../../node_modules/hash.js/lib/hash/utils.js", "../../../node_modules/hash.js/lib/hash/common.js", "../../../node_modules/hash.js/lib/hash/sha/common.js", "../../../node_modules/hash.js/lib/hash/sha/1.js", "../../../node_modules/hash.js/lib/hash/sha/256.js", "../../../node_modules/hash.js/lib/hash/sha/224.js", "../../../node_modules/hash.js/lib/hash/sha/512.js", "../../../node_modules/hash.js/lib/hash/sha/384.js", "../../../node_modules/hash.js/lib/hash/sha.js", "../../../node_modules/hash.js/lib/hash/ripemd.js", "../../../node_modules/hash.js/lib/hash/hmac.js", "../../../node_modules/hash.js/lib/hash.js", "../../../node_modules/elliptic/lib/elliptic/precomputed/secp256k1.js", "../../../node_modules/elliptic/lib/elliptic/curves.js", "../../../node_modules/hmac-drbg/lib/hmac-drbg.js", "../../../node_modules/elliptic/lib/elliptic/ec/key.js", "../../../node_modules/elliptic/lib/elliptic/ec/signature.js", "../../../node_modules/elliptic/lib/elliptic/ec/index.js", "../../../node_modules/elliptic/lib/elliptic/eddsa/key.js", "../../../node_modules/elliptic/lib/elliptic/eddsa/signature.js", "../../../node_modules/elliptic/lib/elliptic/eddsa/index.js", "../../../node_modules/elliptic/lib/elliptic.js", "../../../node_modules/tiny-secp256k1/rfc6979.js", "../../../node_modules/tiny-secp256k1/js.js", "../../../node_modules/tiny-secp256k1/index.js", "../../../node_modules/typeforce/native.js", "../../../node_modules/typeforce/errors.js", "../../../node_modules/typeforce/extra.js", "../../../node_modules/typeforce/index.js", "../../../node_modules/wif/index.js", "../../../node_modules/bip32/src/bip32.js", "../../../node_modules/bip32/src/index.js", "../../../node_modules/bitcoinjs-lib/src/networks.js", "../../../node_modules/bitcoinjs-lib/src/script_number.js", "../../../node_modules/bitcoinjs-lib/src/types.js", "../../../node_modules/bip66/index.js", "../../../node_modules/bitcoinjs-lib/src/script_signature.js", "../../../node_modules/pushdata-bitcoin/index.js", "../../../node_modules/bitcoin-ops/map.js", "../../../node_modules/bitcoinjs-lib/src/script.js", "../../../node_modules/bitcoinjs-lib/src/payments/lazy.js", "../../../node_modules/bitcoinjs-lib/src/payments/embed.js", "../../../node_modules/bitcoinjs-lib/src/payments/p2ms.js", "../../../node_modules/bitcoinjs-lib/src/payments/p2pk.js", "../../../node_modules/bitcoinjs-lib/src/crypto.js", "../../../node_modules/bitcoinjs-lib/src/payments/p2pkh.js", "../../../node_modules/bitcoinjs-lib/src/payments/p2sh.js", "../../../node_modules/bech32/index.js", "../../../node_modules/bitcoinjs-lib/src/payments/p2wpkh.js", "../../../node_modules/bitcoinjs-lib/src/payments/p2wsh.js", "../../../node_modules/bitcoinjs-lib/src/payments/index.js", "../../../node_modules/bitcoinjs-lib/src/address.js", "../../../node_modules/randombytes/index.js", "../../../node_modules/bitcoinjs-lib/src/ecpair.js", "../../../node_modules/varuint-bitcoin/index.js", "../../../node_modules/bitcoinjs-lib/src/bufferutils.js", "../../../node_modules/bitcoinjs-lib/src/transaction.js", "../../../node_modules/merkle-lib/fastRoot.js", "../../../node_modules/bitcoinjs-lib/src/block.js", "../../../node_modules/bip174/src/lib/typeFields.js", "../../../node_modules/bip174/src/lib/converter/global/globalXpub.js", "../../../node_modules/bip174/src/lib/converter/global/unsignedTx.js", "../../../node_modules/bip174/src/lib/converter/input/finalScriptSig.js", "../../../node_modules/bip174/src/lib/converter/input/finalScriptWitness.js", "../../../node_modules/bip174/src/lib/converter/input/nonWitnessUtxo.js", "../../../node_modules/bip174/src/lib/converter/input/partialSig.js", "../../../node_modules/bip174/src/lib/converter/input/porCommitment.js", "../../../node_modules/bip174/src/lib/converter/input/sighashType.js", "../../../node_modules/bip174/src/lib/converter/input/tapKeySig.js", "../../../node_modules/bip174/src/lib/converter/input/tapLeafScript.js", "../../../node_modules/bip174/src/lib/converter/input/tapMerkleRoot.js", "../../../node_modules/bip174/src/lib/converter/input/tapScriptSig.js", "../../../node_modules/bip174/src/lib/converter/varint.js", "../../../node_modules/bip174/src/lib/converter/tools.js", "../../../node_modules/bip174/src/lib/converter/input/witnessUtxo.js", "../../../node_modules/bip174/src/lib/converter/output/tapTree.js", "../../../node_modules/bip174/src/lib/converter/shared/bip32Derivation.js", "../../../node_modules/bip174/src/lib/converter/shared/checkPubkey.js", "../../../node_modules/bip174/src/lib/converter/shared/redeemScript.js", "../../../node_modules/bip174/src/lib/converter/shared/tapBip32Derivation.js", "../../../node_modules/bip174/src/lib/converter/shared/tapInternalKey.js", "../../../node_modules/bip174/src/lib/converter/shared/witnessScript.js", "../../../node_modules/bip174/src/lib/converter/index.js", "../../../node_modules/bip174/src/lib/parser/fromBuffer.js", "../../../node_modules/bip174/src/lib/parser/toBuffer.js", "../../../node_modules/bip174/src/lib/parser/index.js", "../../../node_modules/bip174/src/lib/combiner/index.js", "../../../node_modules/bip174/src/lib/utils.js", "../../../node_modules/bip174/src/lib/psbt.js", "../../../node_modules/bitcoinjs-lib/src/psbt.js", "../../../node_modules/bitcoinjs-lib/src/templates/multisig/input.js", "../../../node_modules/bitcoinjs-lib/src/templates/multisig/output.js", "../../../node_modules/bitcoinjs-lib/src/templates/multisig/index.js", "../../../node_modules/bitcoinjs-lib/src/templates/nulldata.js", "../../../node_modules/bitcoinjs-lib/src/templates/pubkey/input.js", "../../../node_modules/bitcoinjs-lib/src/templates/pubkey/output.js", "../../../node_modules/bitcoinjs-lib/src/templates/pubkey/index.js", "../../../node_modules/bitcoinjs-lib/src/templates/pubkeyhash/input.js", "../../../node_modules/bitcoinjs-lib/src/templates/pubkeyhash/output.js", "../../../node_modules/bitcoinjs-lib/src/templates/pubkeyhash/index.js", "../../../node_modules/bitcoinjs-lib/src/templates/witnesspubkeyhash/output.js", "../../../node_modules/bitcoinjs-lib/src/templates/witnessscripthash/output.js", "../../../node_modules/bitcoinjs-lib/src/templates/scripthash/input.js", "../../../node_modules/bitcoinjs-lib/src/templates/scripthash/output.js", "../../../node_modules/bitcoinjs-lib/src/templates/scripthash/index.js", "../../../node_modules/bitcoinjs-lib/src/templates/witnesscommitment/output.js", "../../../node_modules/bitcoinjs-lib/src/templates/witnesscommitment/index.js", "../../../node_modules/bitcoinjs-lib/src/templates/witnesspubkeyhash/input.js", "../../../node_modules/bitcoinjs-lib/src/templates/witnesspubkeyhash/index.js", "../../../node_modules/bitcoinjs-lib/src/templates/witnessscripthash/input.js", "../../../node_modules/bitcoinjs-lib/src/templates/witnessscripthash/index.js", "../../../node_modules/bitcoinjs-lib/src/classify.js", "../../../node_modules/bitcoinjs-lib/src/transaction_builder.js", "../../../node_modules/bitcoinjs-lib/src/index.js", "../../../node_modules/bip32-path/index.js", "../../../node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/stream.js", "../../../node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/buffer_list.js", "../../../node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/destroy.js", "../../../node_modules/hash-base/node_modules/readable-stream/errors.js", "../../../node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/state.js", "../../../node_modules/util-deprecate/node.js", "../../../node_modules/hash-base/node_modules/readable-stream/lib/_stream_writable.js", "../../../node_modules/hash-base/node_modules/readable-stream/lib/_stream_duplex.js", "../../../node_modules/string_decoder/lib/string_decoder.js", "../../../node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/end-of-stream.js", "../../../node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/async_iterator.js", "../../../node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/from.js", "../../../node_modules/hash-base/node_modules/readable-stream/lib/_stream_readable.js", "../../../node_modules/hash-base/node_modules/readable-stream/lib/_stream_transform.js", "../../../node_modules/hash-base/node_modules/readable-stream/lib/_stream_passthrough.js", "../../../node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/pipeline.js", "../../../node_modules/hash-base/node_modules/readable-stream/readable.js", "../../../node_modules/hash-base/index.js", "../../../node_modules/ripemd160/index.js", "../../../node_modules/sha.js/hash.js", "../../../node_modules/sha.js/sha.js", "../../../node_modules/sha.js/sha1.js", "../../../node_modules/sha.js/sha256.js", "../../../node_modules/sha.js/sha224.js", "../../../node_modules/sha.js/sha512.js", "../../../node_modules/sha.js/sha384.js", "../../../node_modules/sha.js/index.js", "../../../node_modules/@ledgerhq/logs/src/index.ts", "../../../node_modules/invariant/invariant.js", "../../../node_modules/semver/internal/constants.js", "../../../node_modules/semver/internal/debug.js", "../../../node_modules/semver/internal/re.js", "../../../node_modules/semver/internal/parse-options.js", "../../../node_modules/semver/internal/identifiers.js", "../../../node_modules/semver/classes/semver.js", "../../../node_modules/semver/functions/parse.js", "../../../node_modules/semver/functions/valid.js", "../../../node_modules/semver/functions/clean.js", "../../../node_modules/semver/functions/inc.js", "../../../node_modules/semver/functions/compare.js", "../../../node_modules/semver/functions/eq.js", "../../../node_modules/semver/functions/diff.js", "../../../node_modules/semver/functions/major.js", "../../../node_modules/semver/functions/minor.js", "../../../node_modules/semver/functions/patch.js", "../../../node_modules/semver/functions/prerelease.js", "../../../node_modules/semver/functions/rcompare.js", "../../../node_modules/semver/functions/compare-loose.js", "../../../node_modules/semver/functions/compare-build.js", "../../../node_modules/semver/functions/sort.js", "../../../node_modules/semver/functions/rsort.js", "../../../node_modules/semver/functions/gt.js", "../../../node_modules/semver/functions/lt.js", "../../../node_modules/semver/functions/neq.js", "../../../node_modules/semver/functions/gte.js", "../../../node_modules/semver/functions/lte.js", "../../../node_modules/semver/functions/cmp.js", "../../../node_modules/semver/functions/coerce.js", "../../../node_modules/semver/node_modules/yallist/iterator.js", "../../../node_modules/semver/node_modules/yallist/yallist.js", "../../../node_modules/semver/node_modules/lru-cache/index.js", "../../../node_modules/semver/classes/range.js", "../../../node_modules/semver/classes/comparator.js", "../../../node_modules/semver/functions/satisfies.js", "../../../node_modules/semver/ranges/to-comparators.js", "../../../node_modules/semver/ranges/max-satisfying.js", "../../../node_modules/semver/ranges/min-satisfying.js", "../../../node_modules/semver/ranges/min-version.js", "../../../node_modules/semver/ranges/valid.js", "../../../node_modules/semver/ranges/outside.js", "../../../node_modules/semver/ranges/gtr.js", "../../../node_modules/semver/ranges/ltr.js", "../../../node_modules/semver/ranges/intersects.js", "../../../node_modules/semver/ranges/simplify.js", "../../../node_modules/semver/ranges/subset.js", "../../../node_modules/semver/index.js", "../../../node_modules/@ledgerhq/errors/src/helpers.ts", "../../../node_modules/@ledgerhq/errors/src/index.ts", "../../../node_modules/@ledgerhq/hw-transport/src/Transport.ts", "../../../node_modules/@ledgerhq/devices/src/hid-framing.ts", "../../../node_modules/@ledgerhq/devices/src/index.ts", "../../../node_modules/@ledgerhq/hw-transport-webusb/src/webusb.ts", "../../../node_modules/@ledgerhq/hw-transport-webusb/src/TransportWebUSB.ts", "../src/index.ts", "../../../node_modules/@ledgerhq/hw-app-btc/src/BtcNew.ts", "../../../node_modules/@ledgerhq/hw-app-btc/src/bip32.ts", "../../../node_modules/@ledgerhq/hw-app-btc/src/buffertools.ts", "../../../node_modules/@ledgerhq/hw-app-btc/src/newops/accounttype.ts", "../../../node_modules/@ledgerhq/hw-app-btc/src/constants.ts", "../../../node_modules/@ledgerhq/hw-app-btc/src/hashPublicKey.ts", "../../../node_modules/@ledgerhq/hw-app-btc/src/newops/policy.ts", "../../../node_modules/@ledgerhq/hw-app-btc/src/newops/merkle.ts", "../../../node_modules/@ledgerhq/hw-app-btc/src/newops/psbtExtractor.ts", "../../../node_modules/@ledgerhq/hw-app-btc/src/newops/psbtv2.ts", "../../../node_modules/@ledgerhq/hw-app-btc/src/newops/psbtFinalizer.ts", "../../../node_modules/@ledgerhq/hw-app-btc/src/varint.ts", "../../../node_modules/@ledgerhq/hw-app-btc/src/serializeTransaction.ts", "../../../node_modules/@ledgerhq/hw-app-btc/src/BtcOld.ts", "../../../node_modules/@ledgerhq/hw-app-btc/src/createTransaction.ts", "../../../node_modules/@ledgerhq/hw-app-btc/src/getWalletPublicKey.ts", "../../../node_modules/@ledgerhq/hw-app-btc/src/getTrustedInput.ts", "../../../node_modules/@ledgerhq/hw-app-btc/src/startUntrustedHashTransactionInput.ts", "../../../node_modules/@ledgerhq/hw-app-btc/src/getTrustedInputBIP143.ts", "../../../node_modules/@ledgerhq/hw-app-btc/src/compressPublicKey.ts", "../../../node_modules/@ledgerhq/hw-app-btc/src/signTransaction.ts", "../../../node_modules/@ledgerhq/hw-app-btc/src/finalizeInput.ts", "../../../node_modules/@ledgerhq/hw-app-btc/src/getAppAndVersion.ts", "../../../node_modules/@ledgerhq/hw-app-btc/src/shouldUseTrustedInputForSegwit.ts", "../../../node_modules/@ledgerhq/hw-app-btc/src/newops/merkleMap.ts", "../../../node_modules/@ledgerhq/hw-app-btc/src/newops/merkelizedPsbt.ts", "../../../node_modules/@ledgerhq/hw-app-btc/src/newops/clientCommands.ts", "../../../node_modules/@ledgerhq/hw-app-btc/src/newops/appClient.ts", "../../../node_modules/@ledgerhq/hw-app-btc/src/splitTransaction.ts", "../../../node_modules/@ledgerhq/hw-app-btc/src/debug.ts", "../../../node_modules/@ledgerhq/hw-app-btc/src/signP2SHTransaction.ts", "../../../node_modules/@ledgerhq/hw-app-btc/src/signMessage.ts", "../../../node_modules/@ledgerhq/hw-app-btc/src/Btc.ts", "../../transport-speculos-http/src/index.ts", "../src/providers/transports.ts"], + "sourcesContent": ["module.exports = require('crypto').createHash\n", "module.exports = require('crypto').createHmac\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst createHash = require('create-hash');\nconst createHmac = require('create-hmac');\nfunction hash160(buffer) {\n const sha256Hash = createHash('sha256')\n .update(buffer)\n .digest();\n try {\n return createHash('rmd160')\n .update(sha256Hash)\n .digest();\n }\n catch (err) {\n return createHash('ripemd160')\n .update(sha256Hash)\n .digest();\n }\n}\nexports.hash160 = hash160;\nfunction hmacSHA512(key, data) {\n return createHmac('sha512', key)\n .update(data)\n .digest();\n}\nexports.hmacSHA512 = hmacSHA512;\n", "/*! safe-buffer. MIT License. Feross Aboukhadijeh */\n/* eslint-disable node/no-deprecated-api */\nvar buffer = require('buffer')\nvar Buffer = buffer.Buffer\n\n// alternative to using Object.keys for old browsers\nfunction copyProps (src, dst) {\n for (var key in src) {\n dst[key] = src[key]\n }\n}\nif (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) {\n module.exports = buffer\n} else {\n // Copy properties from require('buffer')\n copyProps(buffer, exports)\n exports.Buffer = SafeBuffer\n}\n\nfunction SafeBuffer (arg, encodingOrOffset, length) {\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.prototype = Object.create(Buffer.prototype)\n\n// Copy static methods from Buffer\ncopyProps(Buffer, SafeBuffer)\n\nSafeBuffer.from = function (arg, encodingOrOffset, length) {\n if (typeof arg === 'number') {\n throw new TypeError('Argument must not be a number')\n }\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.alloc = function (size, fill, encoding) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n var buf = Buffer(size)\n if (fill !== undefined) {\n if (typeof encoding === 'string') {\n buf.fill(fill, encoding)\n } else {\n buf.fill(fill)\n }\n } else {\n buf.fill(0)\n }\n return buf\n}\n\nSafeBuffer.allocUnsafe = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return Buffer(size)\n}\n\nSafeBuffer.allocUnsafeSlow = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return buffer.SlowBuffer(size)\n}\n", "'use strict'\n// base-x encoding / decoding\n// Copyright (c) 2018 base-x contributors\n// Copyright (c) 2014-2018 The Bitcoin Core developers (base58.cpp)\n// Distributed under the MIT software license, see the accompanying\n// file LICENSE or http://www.opensource.org/licenses/mit-license.php.\n// @ts-ignore\nvar _Buffer = require('safe-buffer').Buffer\nfunction base (ALPHABET) {\n if (ALPHABET.length >= 255) { throw new TypeError('Alphabet too long') }\n var BASE_MAP = new Uint8Array(256)\n for (var j = 0; j < BASE_MAP.length; j++) {\n BASE_MAP[j] = 255\n }\n for (var i = 0; i < ALPHABET.length; i++) {\n var x = ALPHABET.charAt(i)\n var xc = x.charCodeAt(0)\n if (BASE_MAP[xc] !== 255) { throw new TypeError(x + ' is ambiguous') }\n BASE_MAP[xc] = i\n }\n var BASE = ALPHABET.length\n var LEADER = ALPHABET.charAt(0)\n var FACTOR = Math.log(BASE) / Math.log(256) // log(BASE) / log(256), rounded up\n var iFACTOR = Math.log(256) / Math.log(BASE) // log(256) / log(BASE), rounded up\n function encode (source) {\n if (Array.isArray(source) || source instanceof Uint8Array) { source = _Buffer.from(source) }\n if (!_Buffer.isBuffer(source)) { throw new TypeError('Expected Buffer') }\n if (source.length === 0) { return '' }\n // Skip & count leading zeroes.\n var zeroes = 0\n var length = 0\n var pbegin = 0\n var pend = source.length\n while (pbegin !== pend && source[pbegin] === 0) {\n pbegin++\n zeroes++\n }\n // Allocate enough space in big-endian base58 representation.\n var size = ((pend - pbegin) * iFACTOR + 1) >>> 0\n var b58 = new Uint8Array(size)\n // Process the bytes.\n while (pbegin !== pend) {\n var carry = source[pbegin]\n // Apply \"b58 = b58 * 256 + ch\".\n var i = 0\n for (var it1 = size - 1; (carry !== 0 || i < length) && (it1 !== -1); it1--, i++) {\n carry += (256 * b58[it1]) >>> 0\n b58[it1] = (carry % BASE) >>> 0\n carry = (carry / BASE) >>> 0\n }\n if (carry !== 0) { throw new Error('Non-zero carry') }\n length = i\n pbegin++\n }\n // Skip leading zeroes in base58 result.\n var it2 = size - length\n while (it2 !== size && b58[it2] === 0) {\n it2++\n }\n // Translate the result into a string.\n var str = LEADER.repeat(zeroes)\n for (; it2 < size; ++it2) { str += ALPHABET.charAt(b58[it2]) }\n return str\n }\n function decodeUnsafe (source) {\n if (typeof source !== 'string') { throw new TypeError('Expected String') }\n if (source.length === 0) { return _Buffer.alloc(0) }\n var psz = 0\n // Skip and count leading '1's.\n var zeroes = 0\n var length = 0\n while (source[psz] === LEADER) {\n zeroes++\n psz++\n }\n // Allocate enough space in big-endian base256 representation.\n var size = (((source.length - psz) * FACTOR) + 1) >>> 0 // log(58) / log(256), rounded up.\n var b256 = new Uint8Array(size)\n // Process the characters.\n while (source[psz]) {\n // Decode character\n var carry = BASE_MAP[source.charCodeAt(psz)]\n // Invalid character\n if (carry === 255) { return }\n var i = 0\n for (var it3 = size - 1; (carry !== 0 || i < length) && (it3 !== -1); it3--, i++) {\n carry += (BASE * b256[it3]) >>> 0\n b256[it3] = (carry % 256) >>> 0\n carry = (carry / 256) >>> 0\n }\n if (carry !== 0) { throw new Error('Non-zero carry') }\n length = i\n psz++\n }\n // Skip leading zeroes in b256.\n var it4 = size - length\n while (it4 !== size && b256[it4] === 0) {\n it4++\n }\n var vch = _Buffer.allocUnsafe(zeroes + (size - it4))\n vch.fill(0x00, 0, zeroes)\n var j = zeroes\n while (it4 !== size) {\n vch[j++] = b256[it4++]\n }\n return vch\n }\n function decode (string) {\n var buffer = decodeUnsafe(string)\n if (buffer) { return buffer }\n throw new Error('Non-base' + BASE + ' character')\n }\n return {\n encode: encode,\n decodeUnsafe: decodeUnsafe,\n decode: decode\n }\n}\nmodule.exports = base\n", "var basex = require('base-x')\nvar ALPHABET = '123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz'\n\nmodule.exports = basex(ALPHABET)\n", "'use strict'\n\nvar base58 = require('bs58')\nvar Buffer = require('safe-buffer').Buffer\n\nmodule.exports = function (checksumFn) {\n // Encode a buffer as a base58-check encoded string\n function encode (payload) {\n var checksum = checksumFn(payload)\n\n return base58.encode(Buffer.concat([\n payload,\n checksum\n ], payload.length + 4))\n }\n\n function decodeRaw (buffer) {\n var payload = buffer.slice(0, -4)\n var checksum = buffer.slice(-4)\n var newChecksum = checksumFn(payload)\n\n if (checksum[0] ^ newChecksum[0] |\n checksum[1] ^ newChecksum[1] |\n checksum[2] ^ newChecksum[2] |\n checksum[3] ^ newChecksum[3]) return\n\n return payload\n }\n\n // Decode a base58-check encoded string to a buffer, no result if checksum is wrong\n function decodeUnsafe (string) {\n var buffer = base58.decodeUnsafe(string)\n if (!buffer) return\n\n return decodeRaw(buffer)\n }\n\n function decode (string) {\n var buffer = base58.decode(string)\n var payload = decodeRaw(buffer, checksumFn)\n if (!payload) throw new Error('Invalid checksum')\n return payload\n }\n\n return {\n encode: encode,\n decode: decode,\n decodeUnsafe: decodeUnsafe\n }\n}\n", "'use strict'\n\nvar createHash = require('create-hash')\nvar bs58checkBase = require('./base')\n\n// SHA256(SHA256(buffer))\nfunction sha256x2 (buffer) {\n var tmp = createHash('sha256').update(buffer).digest()\n return createHash('sha256').update(tmp).digest()\n}\n\nmodule.exports = bs58checkBase(sha256x2)\n", "\n/**\n * Module dependencies.\n */\n\nvar sep = require('path').sep || '/';\n\n/**\n * Module exports.\n */\n\nmodule.exports = fileUriToPath;\n\n/**\n * File URI to Path function.\n *\n * @param {String} uri\n * @return {String} path\n * @api public\n */\n\nfunction fileUriToPath (uri) {\n if ('string' != typeof uri ||\n uri.length <= 7 ||\n 'file://' != uri.substring(0, 7)) {\n throw new TypeError('must pass in a file:// URI to convert to a file path');\n }\n\n var rest = decodeURI(uri.substring(7));\n var firstSlash = rest.indexOf('/');\n var host = rest.substring(0, firstSlash);\n var path = rest.substring(firstSlash + 1);\n\n // 2. Scheme Definition\n // As a special case, can be the string \"localhost\" or the empty\n // string; this is interpreted as \"the machine from which the URL is\n // being interpreted\".\n if ('localhost' == host) host = '';\n\n if (host) {\n host = sep + sep + host;\n }\n\n // 3.2 Drives, drive letters, mount points, file system root\n // Drive letters are mapped into the top of a file URI in various ways,\n // depending on the implementation; some applications substitute\n // vertical bar (\"|\") for the colon after the drive letter, yielding\n // \"file:///c|/tmp/test.txt\". In some cases, the colon is left\n // unchanged, as in \"file:///c:/tmp/test.txt\". In other cases, the\n // colon is simply omitted, as in \"file:///c/tmp/test.txt\".\n path = path.replace(/^(.+)\\|/, '$1:');\n\n // for Windows, we need to invert the path separators from what a URI uses\n if (sep == '\\\\') {\n path = path.replace(/\\//g, '\\\\');\n }\n\n if (/^.+\\:/.test(path)) {\n // has Windows drive at beginning of path\n } else {\n // unix path\u2026\n path = sep + path;\n }\n\n return host + path;\n}\n", "/**\n * Module dependencies.\n */\n\nvar fs = require('fs'),\n path = require('path'),\n fileURLToPath = require('file-uri-to-path'),\n join = path.join,\n dirname = path.dirname,\n exists =\n (fs.accessSync &&\n function(path) {\n try {\n fs.accessSync(path);\n } catch (e) {\n return false;\n }\n return true;\n }) ||\n fs.existsSync ||\n path.existsSync,\n defaults = {\n arrow: process.env.NODE_BINDINGS_ARROW || ' \u2192 ',\n compiled: process.env.NODE_BINDINGS_COMPILED_DIR || 'compiled',\n platform: process.platform,\n arch: process.arch,\n nodePreGyp:\n 'node-v' +\n process.versions.modules +\n '-' +\n process.platform +\n '-' +\n process.arch,\n version: process.versions.node,\n bindings: 'bindings.node',\n try: [\n // node-gyp's linked version in the \"build\" dir\n ['module_root', 'build', 'bindings'],\n // node-waf and gyp_addon (a.k.a node-gyp)\n ['module_root', 'build', 'Debug', 'bindings'],\n ['module_root', 'build', 'Release', 'bindings'],\n // Debug files, for development (legacy behavior, remove for node v0.9)\n ['module_root', 'out', 'Debug', 'bindings'],\n ['module_root', 'Debug', 'bindings'],\n // Release files, but manually compiled (legacy behavior, remove for node v0.9)\n ['module_root', 'out', 'Release', 'bindings'],\n ['module_root', 'Release', 'bindings'],\n // Legacy from node-waf, node <= 0.4.x\n ['module_root', 'build', 'default', 'bindings'],\n // Production \"Release\" buildtype binary (meh...)\n ['module_root', 'compiled', 'version', 'platform', 'arch', 'bindings'],\n // node-qbs builds\n ['module_root', 'addon-build', 'release', 'install-root', 'bindings'],\n ['module_root', 'addon-build', 'debug', 'install-root', 'bindings'],\n ['module_root', 'addon-build', 'default', 'install-root', 'bindings'],\n // node-pre-gyp path ./lib/binding/{node_abi}-{platform}-{arch}\n ['module_root', 'lib', 'binding', 'nodePreGyp', 'bindings']\n ]\n };\n\n/**\n * The main `bindings()` function loads the compiled bindings for a given module.\n * It uses V8's Error API to determine the parent filename that this function is\n * being invoked from, which is then used to find the root directory.\n */\n\nfunction bindings(opts) {\n // Argument surgery\n if (typeof opts == 'string') {\n opts = { bindings: opts };\n } else if (!opts) {\n opts = {};\n }\n\n // maps `defaults` onto `opts` object\n Object.keys(defaults).map(function(i) {\n if (!(i in opts)) opts[i] = defaults[i];\n });\n\n // Get the module root\n if (!opts.module_root) {\n opts.module_root = exports.getRoot(exports.getFileName());\n }\n\n // Ensure the given bindings name ends with .node\n if (path.extname(opts.bindings) != '.node') {\n opts.bindings += '.node';\n }\n\n // https://github.com/webpack/webpack/issues/4175#issuecomment-342931035\n var requireFunc =\n typeof __webpack_require__ === 'function'\n ? __non_webpack_require__\n : require;\n\n var tries = [],\n i = 0,\n l = opts.try.length,\n n,\n b,\n err;\n\n for (; i < l; i++) {\n n = join.apply(\n null,\n opts.try[i].map(function(p) {\n return opts[p] || p;\n })\n );\n tries.push(n);\n try {\n b = opts.path ? requireFunc.resolve(n) : requireFunc(n);\n if (!opts.path) {\n b.path = n;\n }\n return b;\n } catch (e) {\n if (e.code !== 'MODULE_NOT_FOUND' &&\n e.code !== 'QUALIFIED_PATH_RESOLUTION_FAILED' &&\n !/not find/i.test(e.message)) {\n throw e;\n }\n }\n }\n\n err = new Error(\n 'Could not locate the bindings file. Tried:\\n' +\n tries\n .map(function(a) {\n return opts.arrow + a;\n })\n .join('\\n')\n );\n err.tries = tries;\n throw err;\n}\nmodule.exports = exports = bindings;\n\n/**\n * Gets the filename of the JavaScript file that invokes this function.\n * Used to help find the root directory of a module.\n * Optionally accepts an filename argument to skip when searching for the invoking filename\n */\n\nexports.getFileName = function getFileName(calling_file) {\n var origPST = Error.prepareStackTrace,\n origSTL = Error.stackTraceLimit,\n dummy = {},\n fileName;\n\n Error.stackTraceLimit = 10;\n\n Error.prepareStackTrace = function(e, st) {\n for (var i = 0, l = st.length; i < l; i++) {\n fileName = st[i].getFileName();\n if (fileName !== __filename) {\n if (calling_file) {\n if (fileName !== calling_file) {\n return;\n }\n } else {\n return;\n }\n }\n }\n };\n\n // run the 'prepareStackTrace' function above\n Error.captureStackTrace(dummy);\n dummy.stack;\n\n // cleanup\n Error.prepareStackTrace = origPST;\n Error.stackTraceLimit = origSTL;\n\n // handle filename that starts with \"file://\"\n var fileSchema = 'file://';\n if (fileName.indexOf(fileSchema) === 0) {\n fileName = fileURLToPath(fileName);\n }\n\n return fileName;\n};\n\n/**\n * Gets the root directory of a module, given an arbitrary filename\n * somewhere in the module tree. The \"root directory\" is the directory\n * containing the `package.json` file.\n *\n * In: /home/nate/node-native-module/lib/index.js\n * Out: /home/nate/node-native-module\n */\n\nexports.getRoot = function getRoot(file) {\n var dir = dirname(file),\n prev;\n while (true) {\n if (dir === '.') {\n // Avoids an infinite loop in rare cases, like the REPL\n dir = process.cwd();\n }\n if (\n exists(join(dir, 'package.json')) ||\n exists(join(dir, 'node_modules'))\n ) {\n // Found the 'package.json' file or 'node_modules' dir; we're done\n return dir;\n }\n if (prev === dir) {\n // Got to the top\n throw new Error(\n 'Could not find module root given file: \"' +\n file +\n '\". Do you have a `package.json` file? '\n );\n }\n // Try the parent dir next\n prev = dir;\n dir = join(dir, '..');\n }\n};\n", "'use strict'\n\nlet binding = require('bindings')('secp256k1')\ndelete binding.path\n\n// NaN drops function names, add them for is* (via toJSON)\nfor (let key in binding) {\n if (key.indexOf('is') !== 0) continue\n\n binding[key].toJSON = function () { return key }\n}\n\nmodule.exports = binding\n", "(function (module, exports) {\n 'use strict';\n\n // Utils\n function assert (val, msg) {\n if (!val) throw new Error(msg || 'Assertion failed');\n }\n\n // Could use `inherits` module, but don't want to move from single file\n // architecture yet.\n function inherits (ctor, superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function () {};\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n\n // BN\n\n function BN (number, base, endian) {\n if (BN.isBN(number)) {\n return number;\n }\n\n this.negative = 0;\n this.words = null;\n this.length = 0;\n\n // Reduction context\n this.red = null;\n\n if (number !== null) {\n if (base === 'le' || base === 'be') {\n endian = base;\n base = 10;\n }\n\n this._init(number || 0, base || 10, endian || 'be');\n }\n }\n if (typeof module === 'object') {\n module.exports = BN;\n } else {\n exports.BN = BN;\n }\n\n BN.BN = BN;\n BN.wordSize = 26;\n\n var Buffer;\n try {\n if (typeof window !== 'undefined' && typeof window.Buffer !== 'undefined') {\n Buffer = window.Buffer;\n } else {\n Buffer = require('buffer').Buffer;\n }\n } catch (e) {\n }\n\n BN.isBN = function isBN (num) {\n if (num instanceof BN) {\n return true;\n }\n\n return num !== null && typeof num === 'object' &&\n num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);\n };\n\n BN.max = function max (left, right) {\n if (left.cmp(right) > 0) return left;\n return right;\n };\n\n BN.min = function min (left, right) {\n if (left.cmp(right) < 0) return left;\n return right;\n };\n\n BN.prototype._init = function init (number, base, endian) {\n if (typeof number === 'number') {\n return this._initNumber(number, base, endian);\n }\n\n if (typeof number === 'object') {\n return this._initArray(number, base, endian);\n }\n\n if (base === 'hex') {\n base = 16;\n }\n assert(base === (base | 0) && base >= 2 && base <= 36);\n\n number = number.toString().replace(/\\s+/g, '');\n var start = 0;\n if (number[0] === '-') {\n start++;\n this.negative = 1;\n }\n\n if (start < number.length) {\n if (base === 16) {\n this._parseHex(number, start, endian);\n } else {\n this._parseBase(number, base, start);\n if (endian === 'le') {\n this._initArray(this.toArray(), base, endian);\n }\n }\n }\n };\n\n BN.prototype._initNumber = function _initNumber (number, base, endian) {\n if (number < 0) {\n this.negative = 1;\n number = -number;\n }\n if (number < 0x4000000) {\n this.words = [ number & 0x3ffffff ];\n this.length = 1;\n } else if (number < 0x10000000000000) {\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff\n ];\n this.length = 2;\n } else {\n assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff,\n 1\n ];\n this.length = 3;\n }\n\n if (endian !== 'le') return;\n\n // Reverse the bytes\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initArray = function _initArray (number, base, endian) {\n // Perhaps a Uint8Array\n assert(typeof number.length === 'number');\n if (number.length <= 0) {\n this.words = [ 0 ];\n this.length = 1;\n return this;\n }\n\n this.length = Math.ceil(number.length / 3);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n var off = 0;\n if (endian === 'be') {\n for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n } else if (endian === 'le') {\n for (i = 0, j = 0; i < number.length; i += 3) {\n w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n return this.strip();\n };\n\n function parseHex4Bits (string, index) {\n var c = string.charCodeAt(index);\n // 'A' - 'F'\n if (c >= 65 && c <= 70) {\n return c - 55;\n // 'a' - 'f'\n } else if (c >= 97 && c <= 102) {\n return c - 87;\n // '0' - '9'\n } else {\n return (c - 48) & 0xf;\n }\n }\n\n function parseHexByte (string, lowerBound, index) {\n var r = parseHex4Bits(string, index);\n if (index - 1 >= lowerBound) {\n r |= parseHex4Bits(string, index - 1) << 4;\n }\n return r;\n }\n\n BN.prototype._parseHex = function _parseHex (number, start, endian) {\n // Create possibly bigger array to ensure that it fits the number\n this.length = Math.ceil((number.length - start) / 6);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n // 24-bits chunks\n var off = 0;\n var j = 0;\n\n var w;\n if (endian === 'be') {\n for (i = number.length - 1; i >= start; i -= 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n } else {\n var parseLength = number.length - start;\n for (i = parseLength % 2 === 0 ? start + 1 : start; i < number.length; i += 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n }\n\n this.strip();\n };\n\n function parseBase (str, start, end, mul) {\n var r = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r *= mul;\n\n // 'a'\n if (c >= 49) {\n r += c - 49 + 0xa;\n\n // 'A'\n } else if (c >= 17) {\n r += c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n r += c;\n }\n }\n return r;\n }\n\n BN.prototype._parseBase = function _parseBase (number, base, start) {\n // Initialize as zero\n this.words = [ 0 ];\n this.length = 1;\n\n // Find length of limb in base\n for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n limbLen++;\n }\n limbLen--;\n limbPow = (limbPow / base) | 0;\n\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n\n var word = 0;\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n\n this.imuln(limbPow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n if (mod !== 0) {\n var pow = 1;\n word = parseBase(number, i, number.length, base);\n\n for (i = 0; i < mod; i++) {\n pow *= base;\n }\n\n this.imuln(pow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n this.strip();\n };\n\n BN.prototype.copy = function copy (dest) {\n dest.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n dest.words[i] = this.words[i];\n }\n dest.length = this.length;\n dest.negative = this.negative;\n dest.red = this.red;\n };\n\n BN.prototype.clone = function clone () {\n var r = new BN(null);\n this.copy(r);\n return r;\n };\n\n BN.prototype._expand = function _expand (size) {\n while (this.length < size) {\n this.words[this.length++] = 0;\n }\n return this;\n };\n\n // Remove leading `0` from `this`\n BN.prototype.strip = function strip () {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\n return this._normSign();\n };\n\n BN.prototype._normSign = function _normSign () {\n // -0 = 0\n if (this.length === 1 && this.words[0] === 0) {\n this.negative = 0;\n }\n return this;\n };\n\n BN.prototype.inspect = function inspect () {\n return (this.red ? '';\n };\n\n /*\n\n var zeros = [];\n var groupSizes = [];\n var groupBases = [];\n\n var s = '';\n var i = -1;\n while (++i < BN.wordSize) {\n zeros[i] = s;\n s += '0';\n }\n groupSizes[0] = 0;\n groupSizes[1] = 0;\n groupBases[0] = 0;\n groupBases[1] = 0;\n var base = 2 - 1;\n while (++base < 36 + 1) {\n var groupSize = 0;\n var groupBase = 1;\n while (groupBase < (1 << BN.wordSize) / base) {\n groupBase *= base;\n groupSize += 1;\n }\n groupSizes[base] = groupSize;\n groupBases[base] = groupBase;\n }\n\n */\n\n var zeros = [\n '',\n '0',\n '00',\n '000',\n '0000',\n '00000',\n '000000',\n '0000000',\n '00000000',\n '000000000',\n '0000000000',\n '00000000000',\n '000000000000',\n '0000000000000',\n '00000000000000',\n '000000000000000',\n '0000000000000000',\n '00000000000000000',\n '000000000000000000',\n '0000000000000000000',\n '00000000000000000000',\n '000000000000000000000',\n '0000000000000000000000',\n '00000000000000000000000',\n '000000000000000000000000',\n '0000000000000000000000000'\n ];\n\n var groupSizes = [\n 0, 0,\n 25, 16, 12, 11, 10, 9, 8,\n 8, 7, 7, 7, 7, 6, 6,\n 6, 6, 6, 6, 6, 5, 5,\n 5, 5, 5, 5, 5, 5, 5,\n 5, 5, 5, 5, 5, 5, 5\n ];\n\n var groupBases = [\n 0, 0,\n 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,\n 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,\n 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,\n 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,\n 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176\n ];\n\n BN.prototype.toString = function toString (base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n\n var out;\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = this.words[i];\n var word = (((w << off) | carry) & 0xffffff).toString(16);\n carry = (w >>> (24 - off)) & 0xffffff;\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n off += 2;\n if (off >= 26) {\n off -= 26;\n i--;\n }\n }\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n if (base === (base | 0) && base >= 2 && base <= 36) {\n // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n var groupSize = groupSizes[base];\n // var groupBase = Math.pow(base, groupSize);\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n while (!c.isZero()) {\n var r = c.modn(groupBase).toString(base);\n c = c.idivn(groupBase);\n\n if (!c.isZero()) {\n out = zeros[groupSize - r.length] + r + out;\n } else {\n out = r + out;\n }\n }\n if (this.isZero()) {\n out = '0' + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n assert(false, 'Base should be between 2 and 36');\n };\n\n BN.prototype.toNumber = function toNumber () {\n var ret = this.words[0];\n if (this.length === 2) {\n ret += this.words[1] * 0x4000000;\n } else if (this.length === 3 && this.words[2] === 0x01) {\n // NOTE: at this stage it is known that the top bit is set\n ret += 0x10000000000000 + (this.words[1] * 0x4000000);\n } else if (this.length > 2) {\n assert(false, 'Number can only safely store up to 53 bits');\n }\n return (this.negative !== 0) ? -ret : ret;\n };\n\n BN.prototype.toJSON = function toJSON () {\n return this.toString(16);\n };\n\n BN.prototype.toBuffer = function toBuffer (endian, length) {\n assert(typeof Buffer !== 'undefined');\n return this.toArrayLike(Buffer, endian, length);\n };\n\n BN.prototype.toArray = function toArray (endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n var byteLength = this.byteLength();\n var reqLength = length || Math.max(1, byteLength);\n assert(byteLength <= reqLength, 'byte array longer than desired length');\n assert(reqLength > 0, 'Requested array length <= 0');\n\n this.strip();\n var littleEndian = endian === 'le';\n var res = new ArrayType(reqLength);\n\n var b, i;\n var q = this.clone();\n if (!littleEndian) {\n // Assume big-endian\n for (i = 0; i < reqLength - byteLength; i++) {\n res[i] = 0;\n }\n\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[reqLength - i - 1] = b;\n }\n } else {\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[i] = b;\n }\n\n for (; i < reqLength; i++) {\n res[i] = 0;\n }\n }\n\n return res;\n };\n\n if (Math.clz32) {\n BN.prototype._countBits = function _countBits (w) {\n return 32 - Math.clz32(w);\n };\n } else {\n BN.prototype._countBits = function _countBits (w) {\n var t = w;\n var r = 0;\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\n return r + t;\n };\n }\n\n BN.prototype._zeroBits = function _zeroBits (w) {\n // Short-cut\n if (w === 0) return 26;\n\n var t = w;\n var r = 0;\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n if ((t & 0x1) === 0) {\n r++;\n }\n return r;\n };\n\n // Return number of used bits in a BN\n BN.prototype.bitLength = function bitLength () {\n var w = this.words[this.length - 1];\n var hi = this._countBits(w);\n return (this.length - 1) * 26 + hi;\n };\n\n function toBitArray (num) {\n var w = new Array(num.bitLength());\n\n for (var bit = 0; bit < w.length; bit++) {\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n w[bit] = (num.words[off] & (1 << wbit)) >>> wbit;\n }\n\n return w;\n }\n\n // Number of trailing zero bits\n BN.prototype.zeroBits = function zeroBits () {\n if (this.isZero()) return 0;\n\n var r = 0;\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n r += b;\n if (b !== 26) break;\n }\n return r;\n };\n\n BN.prototype.byteLength = function byteLength () {\n return Math.ceil(this.bitLength() / 8);\n };\n\n BN.prototype.toTwos = function toTwos (width) {\n if (this.negative !== 0) {\n return this.abs().inotn(width).iaddn(1);\n }\n return this.clone();\n };\n\n BN.prototype.fromTwos = function fromTwos (width) {\n if (this.testn(width - 1)) {\n return this.notn(width).iaddn(1).ineg();\n }\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg () {\n return this.negative !== 0;\n };\n\n // Return negative clone of `this`\n BN.prototype.neg = function neg () {\n return this.clone().ineg();\n };\n\n BN.prototype.ineg = function ineg () {\n if (!this.isZero()) {\n this.negative ^= 1;\n }\n\n return this;\n };\n\n // Or `num` with `this` in-place\n BN.prototype.iuor = function iuor (num) {\n while (this.length < num.length) {\n this.words[this.length++] = 0;\n }\n\n for (var i = 0; i < num.length; i++) {\n this.words[i] = this.words[i] | num.words[i];\n }\n\n return this.strip();\n };\n\n BN.prototype.ior = function ior (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuor(num);\n };\n\n // Or `num` with `this`\n BN.prototype.or = function or (num) {\n if (this.length > num.length) return this.clone().ior(num);\n return num.clone().ior(this);\n };\n\n BN.prototype.uor = function uor (num) {\n if (this.length > num.length) return this.clone().iuor(num);\n return num.clone().iuor(this);\n };\n\n // And `num` with `this` in-place\n BN.prototype.iuand = function iuand (num) {\n // b = min-length(num, this)\n var b;\n if (this.length > num.length) {\n b = num;\n } else {\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = this.words[i] & num.words[i];\n }\n\n this.length = b.length;\n\n return this.strip();\n };\n\n BN.prototype.iand = function iand (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuand(num);\n };\n\n // And `num` with `this`\n BN.prototype.and = function and (num) {\n if (this.length > num.length) return this.clone().iand(num);\n return num.clone().iand(this);\n };\n\n BN.prototype.uand = function uand (num) {\n if (this.length > num.length) return this.clone().iuand(num);\n return num.clone().iuand(this);\n };\n\n // Xor `num` with `this` in-place\n BN.prototype.iuxor = function iuxor (num) {\n // a.length > b.length\n var a;\n var b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = a.words[i] ^ b.words[i];\n }\n\n if (this !== a) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = a.length;\n\n return this.strip();\n };\n\n BN.prototype.ixor = function ixor (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuxor(num);\n };\n\n // Xor `num` with `this`\n BN.prototype.xor = function xor (num) {\n if (this.length > num.length) return this.clone().ixor(num);\n return num.clone().ixor(this);\n };\n\n BN.prototype.uxor = function uxor (num) {\n if (this.length > num.length) return this.clone().iuxor(num);\n return num.clone().iuxor(this);\n };\n\n // Not ``this`` with ``width`` bitwidth\n BN.prototype.inotn = function inotn (width) {\n assert(typeof width === 'number' && width >= 0);\n\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26;\n\n // Extend the buffer with leading zeroes\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n }\n\n // Handle complete words\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n }\n\n // Handle the residue\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));\n }\n\n // And remove leading zeroes\n return this.strip();\n };\n\n BN.prototype.notn = function notn (width) {\n return this.clone().inotn(width);\n };\n\n // Set `bit` of `this`\n BN.prototype.setn = function setn (bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\n\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n this._expand(off + 1);\n\n if (val) {\n this.words[off] = this.words[off] | (1 << wbit);\n } else {\n this.words[off] = this.words[off] & ~(1 << wbit);\n }\n\n return this.strip();\n };\n\n // Add `num` to `this` in-place\n BN.prototype.iadd = function iadd (num) {\n var r;\n\n // negative + positive\n if (this.negative !== 0 && num.negative === 0) {\n this.negative = 0;\n r = this.isub(num);\n this.negative ^= 1;\n return this._normSign();\n\n // positive + negative\n } else if (this.negative === 0 && num.negative !== 0) {\n num.negative = 0;\n r = this.isub(num);\n num.negative = 1;\n return r._normSign();\n }\n\n // a.length > b.length\n var a, b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n this.length = a.length;\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++;\n // Copy the rest of the words\n } else if (a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n return this;\n };\n\n // Add `num` to `this`\n BN.prototype.add = function add (num) {\n var res;\n if (num.negative !== 0 && this.negative === 0) {\n num.negative = 0;\n res = this.sub(num);\n num.negative ^= 1;\n return res;\n } else if (num.negative === 0 && this.negative !== 0) {\n this.negative = 0;\n res = num.sub(this);\n this.negative = 1;\n return res;\n }\n\n if (this.length > num.length) return this.clone().iadd(num);\n\n return num.clone().iadd(this);\n };\n\n // Subtract `num` from `this` in-place\n BN.prototype.isub = function isub (num) {\n // this - (-num) = this + num\n if (num.negative !== 0) {\n num.negative = 0;\n var r = this.iadd(num);\n num.negative = 1;\n return r._normSign();\n\n // -this - num = -(this + num)\n } else if (this.negative !== 0) {\n this.negative = 0;\n this.iadd(num);\n this.negative = 1;\n return this._normSign();\n }\n\n // At this point both numbers are positive\n var cmp = this.cmp(num);\n\n // Optimization - zeroify\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n }\n\n // a > b\n var a, b;\n if (cmp > 0) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n\n // Copy rest of the words\n if (carry === 0 && i < a.length && a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = Math.max(this.length, i);\n\n if (a !== this) {\n this.negative = 1;\n }\n\n return this.strip();\n };\n\n // Subtract `num` from `this`\n BN.prototype.sub = function sub (num) {\n return this.clone().isub(num);\n };\n\n function smallMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n var len = (self.length + num.length) | 0;\n out.length = len;\n len = (len - 1) | 0;\n\n // Peel one iteration (compiler can't do it, because of code complexity)\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n var carry = (r / 0x4000000) | 0;\n out.words[0] = lo;\n\n for (var k = 1; k < len; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = carry >>> 26;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = (k - j) | 0;\n a = self.words[i] | 0;\n b = num.words[j] | 0;\n r = a * b + rword;\n ncarry += (r / 0x4000000) | 0;\n rword = r & 0x3ffffff;\n }\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n // TODO(indutny): it may be reasonable to omit it for users who don't need\n // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n // multiplication (like elliptic secp256k1).\n var comb10MulTo = function comb10MulTo (self, num, out) {\n var a = self.words;\n var b = num.words;\n var o = out.words;\n var c = 0;\n var lo;\n var mid;\n var hi;\n var a0 = a[0] | 0;\n var al0 = a0 & 0x1fff;\n var ah0 = a0 >>> 13;\n var a1 = a[1] | 0;\n var al1 = a1 & 0x1fff;\n var ah1 = a1 >>> 13;\n var a2 = a[2] | 0;\n var al2 = a2 & 0x1fff;\n var ah2 = a2 >>> 13;\n var a3 = a[3] | 0;\n var al3 = a3 & 0x1fff;\n var ah3 = a3 >>> 13;\n var a4 = a[4] | 0;\n var al4 = a4 & 0x1fff;\n var ah4 = a4 >>> 13;\n var a5 = a[5] | 0;\n var al5 = a5 & 0x1fff;\n var ah5 = a5 >>> 13;\n var a6 = a[6] | 0;\n var al6 = a6 & 0x1fff;\n var ah6 = a6 >>> 13;\n var a7 = a[7] | 0;\n var al7 = a7 & 0x1fff;\n var ah7 = a7 >>> 13;\n var a8 = a[8] | 0;\n var al8 = a8 & 0x1fff;\n var ah8 = a8 >>> 13;\n var a9 = a[9] | 0;\n var al9 = a9 & 0x1fff;\n var ah9 = a9 >>> 13;\n var b0 = b[0] | 0;\n var bl0 = b0 & 0x1fff;\n var bh0 = b0 >>> 13;\n var b1 = b[1] | 0;\n var bl1 = b1 & 0x1fff;\n var bh1 = b1 >>> 13;\n var b2 = b[2] | 0;\n var bl2 = b2 & 0x1fff;\n var bh2 = b2 >>> 13;\n var b3 = b[3] | 0;\n var bl3 = b3 & 0x1fff;\n var bh3 = b3 >>> 13;\n var b4 = b[4] | 0;\n var bl4 = b4 & 0x1fff;\n var bh4 = b4 >>> 13;\n var b5 = b[5] | 0;\n var bl5 = b5 & 0x1fff;\n var bh5 = b5 >>> 13;\n var b6 = b[6] | 0;\n var bl6 = b6 & 0x1fff;\n var bh6 = b6 >>> 13;\n var b7 = b[7] | 0;\n var bl7 = b7 & 0x1fff;\n var bh7 = b7 >>> 13;\n var b8 = b[8] | 0;\n var bl8 = b8 & 0x1fff;\n var bh8 = b8 >>> 13;\n var b9 = b[9] | 0;\n var bl9 = b9 & 0x1fff;\n var bh9 = b9 >>> 13;\n\n out.negative = self.negative ^ num.negative;\n out.length = 19;\n /* k = 0 */\n lo = Math.imul(al0, bl0);\n mid = Math.imul(al0, bh0);\n mid = (mid + Math.imul(ah0, bl0)) | 0;\n hi = Math.imul(ah0, bh0);\n var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;\n w0 &= 0x3ffffff;\n /* k = 1 */\n lo = Math.imul(al1, bl0);\n mid = Math.imul(al1, bh0);\n mid = (mid + Math.imul(ah1, bl0)) | 0;\n hi = Math.imul(ah1, bh0);\n lo = (lo + Math.imul(al0, bl1)) | 0;\n mid = (mid + Math.imul(al0, bh1)) | 0;\n mid = (mid + Math.imul(ah0, bl1)) | 0;\n hi = (hi + Math.imul(ah0, bh1)) | 0;\n var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;\n w1 &= 0x3ffffff;\n /* k = 2 */\n lo = Math.imul(al2, bl0);\n mid = Math.imul(al2, bh0);\n mid = (mid + Math.imul(ah2, bl0)) | 0;\n hi = Math.imul(ah2, bh0);\n lo = (lo + Math.imul(al1, bl1)) | 0;\n mid = (mid + Math.imul(al1, bh1)) | 0;\n mid = (mid + Math.imul(ah1, bl1)) | 0;\n hi = (hi + Math.imul(ah1, bh1)) | 0;\n lo = (lo + Math.imul(al0, bl2)) | 0;\n mid = (mid + Math.imul(al0, bh2)) | 0;\n mid = (mid + Math.imul(ah0, bl2)) | 0;\n hi = (hi + Math.imul(ah0, bh2)) | 0;\n var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;\n w2 &= 0x3ffffff;\n /* k = 3 */\n lo = Math.imul(al3, bl0);\n mid = Math.imul(al3, bh0);\n mid = (mid + Math.imul(ah3, bl0)) | 0;\n hi = Math.imul(ah3, bh0);\n lo = (lo + Math.imul(al2, bl1)) | 0;\n mid = (mid + Math.imul(al2, bh1)) | 0;\n mid = (mid + Math.imul(ah2, bl1)) | 0;\n hi = (hi + Math.imul(ah2, bh1)) | 0;\n lo = (lo + Math.imul(al1, bl2)) | 0;\n mid = (mid + Math.imul(al1, bh2)) | 0;\n mid = (mid + Math.imul(ah1, bl2)) | 0;\n hi = (hi + Math.imul(ah1, bh2)) | 0;\n lo = (lo + Math.imul(al0, bl3)) | 0;\n mid = (mid + Math.imul(al0, bh3)) | 0;\n mid = (mid + Math.imul(ah0, bl3)) | 0;\n hi = (hi + Math.imul(ah0, bh3)) | 0;\n var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;\n w3 &= 0x3ffffff;\n /* k = 4 */\n lo = Math.imul(al4, bl0);\n mid = Math.imul(al4, bh0);\n mid = (mid + Math.imul(ah4, bl0)) | 0;\n hi = Math.imul(ah4, bh0);\n lo = (lo + Math.imul(al3, bl1)) | 0;\n mid = (mid + Math.imul(al3, bh1)) | 0;\n mid = (mid + Math.imul(ah3, bl1)) | 0;\n hi = (hi + Math.imul(ah3, bh1)) | 0;\n lo = (lo + Math.imul(al2, bl2)) | 0;\n mid = (mid + Math.imul(al2, bh2)) | 0;\n mid = (mid + Math.imul(ah2, bl2)) | 0;\n hi = (hi + Math.imul(ah2, bh2)) | 0;\n lo = (lo + Math.imul(al1, bl3)) | 0;\n mid = (mid + Math.imul(al1, bh3)) | 0;\n mid = (mid + Math.imul(ah1, bl3)) | 0;\n hi = (hi + Math.imul(ah1, bh3)) | 0;\n lo = (lo + Math.imul(al0, bl4)) | 0;\n mid = (mid + Math.imul(al0, bh4)) | 0;\n mid = (mid + Math.imul(ah0, bl4)) | 0;\n hi = (hi + Math.imul(ah0, bh4)) | 0;\n var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;\n w4 &= 0x3ffffff;\n /* k = 5 */\n lo = Math.imul(al5, bl0);\n mid = Math.imul(al5, bh0);\n mid = (mid + Math.imul(ah5, bl0)) | 0;\n hi = Math.imul(ah5, bh0);\n lo = (lo + Math.imul(al4, bl1)) | 0;\n mid = (mid + Math.imul(al4, bh1)) | 0;\n mid = (mid + Math.imul(ah4, bl1)) | 0;\n hi = (hi + Math.imul(ah4, bh1)) | 0;\n lo = (lo + Math.imul(al3, bl2)) | 0;\n mid = (mid + Math.imul(al3, bh2)) | 0;\n mid = (mid + Math.imul(ah3, bl2)) | 0;\n hi = (hi + Math.imul(ah3, bh2)) | 0;\n lo = (lo + Math.imul(al2, bl3)) | 0;\n mid = (mid + Math.imul(al2, bh3)) | 0;\n mid = (mid + Math.imul(ah2, bl3)) | 0;\n hi = (hi + Math.imul(ah2, bh3)) | 0;\n lo = (lo + Math.imul(al1, bl4)) | 0;\n mid = (mid + Math.imul(al1, bh4)) | 0;\n mid = (mid + Math.imul(ah1, bl4)) | 0;\n hi = (hi + Math.imul(ah1, bh4)) | 0;\n lo = (lo + Math.imul(al0, bl5)) | 0;\n mid = (mid + Math.imul(al0, bh5)) | 0;\n mid = (mid + Math.imul(ah0, bl5)) | 0;\n hi = (hi + Math.imul(ah0, bh5)) | 0;\n var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;\n w5 &= 0x3ffffff;\n /* k = 6 */\n lo = Math.imul(al6, bl0);\n mid = Math.imul(al6, bh0);\n mid = (mid + Math.imul(ah6, bl0)) | 0;\n hi = Math.imul(ah6, bh0);\n lo = (lo + Math.imul(al5, bl1)) | 0;\n mid = (mid + Math.imul(al5, bh1)) | 0;\n mid = (mid + Math.imul(ah5, bl1)) | 0;\n hi = (hi + Math.imul(ah5, bh1)) | 0;\n lo = (lo + Math.imul(al4, bl2)) | 0;\n mid = (mid + Math.imul(al4, bh2)) | 0;\n mid = (mid + Math.imul(ah4, bl2)) | 0;\n hi = (hi + Math.imul(ah4, bh2)) | 0;\n lo = (lo + Math.imul(al3, bl3)) | 0;\n mid = (mid + Math.imul(al3, bh3)) | 0;\n mid = (mid + Math.imul(ah3, bl3)) | 0;\n hi = (hi + Math.imul(ah3, bh3)) | 0;\n lo = (lo + Math.imul(al2, bl4)) | 0;\n mid = (mid + Math.imul(al2, bh4)) | 0;\n mid = (mid + Math.imul(ah2, bl4)) | 0;\n hi = (hi + Math.imul(ah2, bh4)) | 0;\n lo = (lo + Math.imul(al1, bl5)) | 0;\n mid = (mid + Math.imul(al1, bh5)) | 0;\n mid = (mid + Math.imul(ah1, bl5)) | 0;\n hi = (hi + Math.imul(ah1, bh5)) | 0;\n lo = (lo + Math.imul(al0, bl6)) | 0;\n mid = (mid + Math.imul(al0, bh6)) | 0;\n mid = (mid + Math.imul(ah0, bl6)) | 0;\n hi = (hi + Math.imul(ah0, bh6)) | 0;\n var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;\n w6 &= 0x3ffffff;\n /* k = 7 */\n lo = Math.imul(al7, bl0);\n mid = Math.imul(al7, bh0);\n mid = (mid + Math.imul(ah7, bl0)) | 0;\n hi = Math.imul(ah7, bh0);\n lo = (lo + Math.imul(al6, bl1)) | 0;\n mid = (mid + Math.imul(al6, bh1)) | 0;\n mid = (mid + Math.imul(ah6, bl1)) | 0;\n hi = (hi + Math.imul(ah6, bh1)) | 0;\n lo = (lo + Math.imul(al5, bl2)) | 0;\n mid = (mid + Math.imul(al5, bh2)) | 0;\n mid = (mid + Math.imul(ah5, bl2)) | 0;\n hi = (hi + Math.imul(ah5, bh2)) | 0;\n lo = (lo + Math.imul(al4, bl3)) | 0;\n mid = (mid + Math.imul(al4, bh3)) | 0;\n mid = (mid + Math.imul(ah4, bl3)) | 0;\n hi = (hi + Math.imul(ah4, bh3)) | 0;\n lo = (lo + Math.imul(al3, bl4)) | 0;\n mid = (mid + Math.imul(al3, bh4)) | 0;\n mid = (mid + Math.imul(ah3, bl4)) | 0;\n hi = (hi + Math.imul(ah3, bh4)) | 0;\n lo = (lo + Math.imul(al2, bl5)) | 0;\n mid = (mid + Math.imul(al2, bh5)) | 0;\n mid = (mid + Math.imul(ah2, bl5)) | 0;\n hi = (hi + Math.imul(ah2, bh5)) | 0;\n lo = (lo + Math.imul(al1, bl6)) | 0;\n mid = (mid + Math.imul(al1, bh6)) | 0;\n mid = (mid + Math.imul(ah1, bl6)) | 0;\n hi = (hi + Math.imul(ah1, bh6)) | 0;\n lo = (lo + Math.imul(al0, bl7)) | 0;\n mid = (mid + Math.imul(al0, bh7)) | 0;\n mid = (mid + Math.imul(ah0, bl7)) | 0;\n hi = (hi + Math.imul(ah0, bh7)) | 0;\n var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;\n w7 &= 0x3ffffff;\n /* k = 8 */\n lo = Math.imul(al8, bl0);\n mid = Math.imul(al8, bh0);\n mid = (mid + Math.imul(ah8, bl0)) | 0;\n hi = Math.imul(ah8, bh0);\n lo = (lo + Math.imul(al7, bl1)) | 0;\n mid = (mid + Math.imul(al7, bh1)) | 0;\n mid = (mid + Math.imul(ah7, bl1)) | 0;\n hi = (hi + Math.imul(ah7, bh1)) | 0;\n lo = (lo + Math.imul(al6, bl2)) | 0;\n mid = (mid + Math.imul(al6, bh2)) | 0;\n mid = (mid + Math.imul(ah6, bl2)) | 0;\n hi = (hi + Math.imul(ah6, bh2)) | 0;\n lo = (lo + Math.imul(al5, bl3)) | 0;\n mid = (mid + Math.imul(al5, bh3)) | 0;\n mid = (mid + Math.imul(ah5, bl3)) | 0;\n hi = (hi + Math.imul(ah5, bh3)) | 0;\n lo = (lo + Math.imul(al4, bl4)) | 0;\n mid = (mid + Math.imul(al4, bh4)) | 0;\n mid = (mid + Math.imul(ah4, bl4)) | 0;\n hi = (hi + Math.imul(ah4, bh4)) | 0;\n lo = (lo + Math.imul(al3, bl5)) | 0;\n mid = (mid + Math.imul(al3, bh5)) | 0;\n mid = (mid + Math.imul(ah3, bl5)) | 0;\n hi = (hi + Math.imul(ah3, bh5)) | 0;\n lo = (lo + Math.imul(al2, bl6)) | 0;\n mid = (mid + Math.imul(al2, bh6)) | 0;\n mid = (mid + Math.imul(ah2, bl6)) | 0;\n hi = (hi + Math.imul(ah2, bh6)) | 0;\n lo = (lo + Math.imul(al1, bl7)) | 0;\n mid = (mid + Math.imul(al1, bh7)) | 0;\n mid = (mid + Math.imul(ah1, bl7)) | 0;\n hi = (hi + Math.imul(ah1, bh7)) | 0;\n lo = (lo + Math.imul(al0, bl8)) | 0;\n mid = (mid + Math.imul(al0, bh8)) | 0;\n mid = (mid + Math.imul(ah0, bl8)) | 0;\n hi = (hi + Math.imul(ah0, bh8)) | 0;\n var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;\n w8 &= 0x3ffffff;\n /* k = 9 */\n lo = Math.imul(al9, bl0);\n mid = Math.imul(al9, bh0);\n mid = (mid + Math.imul(ah9, bl0)) | 0;\n hi = Math.imul(ah9, bh0);\n lo = (lo + Math.imul(al8, bl1)) | 0;\n mid = (mid + Math.imul(al8, bh1)) | 0;\n mid = (mid + Math.imul(ah8, bl1)) | 0;\n hi = (hi + Math.imul(ah8, bh1)) | 0;\n lo = (lo + Math.imul(al7, bl2)) | 0;\n mid = (mid + Math.imul(al7, bh2)) | 0;\n mid = (mid + Math.imul(ah7, bl2)) | 0;\n hi = (hi + Math.imul(ah7, bh2)) | 0;\n lo = (lo + Math.imul(al6, bl3)) | 0;\n mid = (mid + Math.imul(al6, bh3)) | 0;\n mid = (mid + Math.imul(ah6, bl3)) | 0;\n hi = (hi + Math.imul(ah6, bh3)) | 0;\n lo = (lo + Math.imul(al5, bl4)) | 0;\n mid = (mid + Math.imul(al5, bh4)) | 0;\n mid = (mid + Math.imul(ah5, bl4)) | 0;\n hi = (hi + Math.imul(ah5, bh4)) | 0;\n lo = (lo + Math.imul(al4, bl5)) | 0;\n mid = (mid + Math.imul(al4, bh5)) | 0;\n mid = (mid + Math.imul(ah4, bl5)) | 0;\n hi = (hi + Math.imul(ah4, bh5)) | 0;\n lo = (lo + Math.imul(al3, bl6)) | 0;\n mid = (mid + Math.imul(al3, bh6)) | 0;\n mid = (mid + Math.imul(ah3, bl6)) | 0;\n hi = (hi + Math.imul(ah3, bh6)) | 0;\n lo = (lo + Math.imul(al2, bl7)) | 0;\n mid = (mid + Math.imul(al2, bh7)) | 0;\n mid = (mid + Math.imul(ah2, bl7)) | 0;\n hi = (hi + Math.imul(ah2, bh7)) | 0;\n lo = (lo + Math.imul(al1, bl8)) | 0;\n mid = (mid + Math.imul(al1, bh8)) | 0;\n mid = (mid + Math.imul(ah1, bl8)) | 0;\n hi = (hi + Math.imul(ah1, bh8)) | 0;\n lo = (lo + Math.imul(al0, bl9)) | 0;\n mid = (mid + Math.imul(al0, bh9)) | 0;\n mid = (mid + Math.imul(ah0, bl9)) | 0;\n hi = (hi + Math.imul(ah0, bh9)) | 0;\n var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;\n w9 &= 0x3ffffff;\n /* k = 10 */\n lo = Math.imul(al9, bl1);\n mid = Math.imul(al9, bh1);\n mid = (mid + Math.imul(ah9, bl1)) | 0;\n hi = Math.imul(ah9, bh1);\n lo = (lo + Math.imul(al8, bl2)) | 0;\n mid = (mid + Math.imul(al8, bh2)) | 0;\n mid = (mid + Math.imul(ah8, bl2)) | 0;\n hi = (hi + Math.imul(ah8, bh2)) | 0;\n lo = (lo + Math.imul(al7, bl3)) | 0;\n mid = (mid + Math.imul(al7, bh3)) | 0;\n mid = (mid + Math.imul(ah7, bl3)) | 0;\n hi = (hi + Math.imul(ah7, bh3)) | 0;\n lo = (lo + Math.imul(al6, bl4)) | 0;\n mid = (mid + Math.imul(al6, bh4)) | 0;\n mid = (mid + Math.imul(ah6, bl4)) | 0;\n hi = (hi + Math.imul(ah6, bh4)) | 0;\n lo = (lo + Math.imul(al5, bl5)) | 0;\n mid = (mid + Math.imul(al5, bh5)) | 0;\n mid = (mid + Math.imul(ah5, bl5)) | 0;\n hi = (hi + Math.imul(ah5, bh5)) | 0;\n lo = (lo + Math.imul(al4, bl6)) | 0;\n mid = (mid + Math.imul(al4, bh6)) | 0;\n mid = (mid + Math.imul(ah4, bl6)) | 0;\n hi = (hi + Math.imul(ah4, bh6)) | 0;\n lo = (lo + Math.imul(al3, bl7)) | 0;\n mid = (mid + Math.imul(al3, bh7)) | 0;\n mid = (mid + Math.imul(ah3, bl7)) | 0;\n hi = (hi + Math.imul(ah3, bh7)) | 0;\n lo = (lo + Math.imul(al2, bl8)) | 0;\n mid = (mid + Math.imul(al2, bh8)) | 0;\n mid = (mid + Math.imul(ah2, bl8)) | 0;\n hi = (hi + Math.imul(ah2, bh8)) | 0;\n lo = (lo + Math.imul(al1, bl9)) | 0;\n mid = (mid + Math.imul(al1, bh9)) | 0;\n mid = (mid + Math.imul(ah1, bl9)) | 0;\n hi = (hi + Math.imul(ah1, bh9)) | 0;\n var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;\n w10 &= 0x3ffffff;\n /* k = 11 */\n lo = Math.imul(al9, bl2);\n mid = Math.imul(al9, bh2);\n mid = (mid + Math.imul(ah9, bl2)) | 0;\n hi = Math.imul(ah9, bh2);\n lo = (lo + Math.imul(al8, bl3)) | 0;\n mid = (mid + Math.imul(al8, bh3)) | 0;\n mid = (mid + Math.imul(ah8, bl3)) | 0;\n hi = (hi + Math.imul(ah8, bh3)) | 0;\n lo = (lo + Math.imul(al7, bl4)) | 0;\n mid = (mid + Math.imul(al7, bh4)) | 0;\n mid = (mid + Math.imul(ah7, bl4)) | 0;\n hi = (hi + Math.imul(ah7, bh4)) | 0;\n lo = (lo + Math.imul(al6, bl5)) | 0;\n mid = (mid + Math.imul(al6, bh5)) | 0;\n mid = (mid + Math.imul(ah6, bl5)) | 0;\n hi = (hi + Math.imul(ah6, bh5)) | 0;\n lo = (lo + Math.imul(al5, bl6)) | 0;\n mid = (mid + Math.imul(al5, bh6)) | 0;\n mid = (mid + Math.imul(ah5, bl6)) | 0;\n hi = (hi + Math.imul(ah5, bh6)) | 0;\n lo = (lo + Math.imul(al4, bl7)) | 0;\n mid = (mid + Math.imul(al4, bh7)) | 0;\n mid = (mid + Math.imul(ah4, bl7)) | 0;\n hi = (hi + Math.imul(ah4, bh7)) | 0;\n lo = (lo + Math.imul(al3, bl8)) | 0;\n mid = (mid + Math.imul(al3, bh8)) | 0;\n mid = (mid + Math.imul(ah3, bl8)) | 0;\n hi = (hi + Math.imul(ah3, bh8)) | 0;\n lo = (lo + Math.imul(al2, bl9)) | 0;\n mid = (mid + Math.imul(al2, bh9)) | 0;\n mid = (mid + Math.imul(ah2, bl9)) | 0;\n hi = (hi + Math.imul(ah2, bh9)) | 0;\n var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;\n w11 &= 0x3ffffff;\n /* k = 12 */\n lo = Math.imul(al9, bl3);\n mid = Math.imul(al9, bh3);\n mid = (mid + Math.imul(ah9, bl3)) | 0;\n hi = Math.imul(ah9, bh3);\n lo = (lo + Math.imul(al8, bl4)) | 0;\n mid = (mid + Math.imul(al8, bh4)) | 0;\n mid = (mid + Math.imul(ah8, bl4)) | 0;\n hi = (hi + Math.imul(ah8, bh4)) | 0;\n lo = (lo + Math.imul(al7, bl5)) | 0;\n mid = (mid + Math.imul(al7, bh5)) | 0;\n mid = (mid + Math.imul(ah7, bl5)) | 0;\n hi = (hi + Math.imul(ah7, bh5)) | 0;\n lo = (lo + Math.imul(al6, bl6)) | 0;\n mid = (mid + Math.imul(al6, bh6)) | 0;\n mid = (mid + Math.imul(ah6, bl6)) | 0;\n hi = (hi + Math.imul(ah6, bh6)) | 0;\n lo = (lo + Math.imul(al5, bl7)) | 0;\n mid = (mid + Math.imul(al5, bh7)) | 0;\n mid = (mid + Math.imul(ah5, bl7)) | 0;\n hi = (hi + Math.imul(ah5, bh7)) | 0;\n lo = (lo + Math.imul(al4, bl8)) | 0;\n mid = (mid + Math.imul(al4, bh8)) | 0;\n mid = (mid + Math.imul(ah4, bl8)) | 0;\n hi = (hi + Math.imul(ah4, bh8)) | 0;\n lo = (lo + Math.imul(al3, bl9)) | 0;\n mid = (mid + Math.imul(al3, bh9)) | 0;\n mid = (mid + Math.imul(ah3, bl9)) | 0;\n hi = (hi + Math.imul(ah3, bh9)) | 0;\n var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;\n w12 &= 0x3ffffff;\n /* k = 13 */\n lo = Math.imul(al9, bl4);\n mid = Math.imul(al9, bh4);\n mid = (mid + Math.imul(ah9, bl4)) | 0;\n hi = Math.imul(ah9, bh4);\n lo = (lo + Math.imul(al8, bl5)) | 0;\n mid = (mid + Math.imul(al8, bh5)) | 0;\n mid = (mid + Math.imul(ah8, bl5)) | 0;\n hi = (hi + Math.imul(ah8, bh5)) | 0;\n lo = (lo + Math.imul(al7, bl6)) | 0;\n mid = (mid + Math.imul(al7, bh6)) | 0;\n mid = (mid + Math.imul(ah7, bl6)) | 0;\n hi = (hi + Math.imul(ah7, bh6)) | 0;\n lo = (lo + Math.imul(al6, bl7)) | 0;\n mid = (mid + Math.imul(al6, bh7)) | 0;\n mid = (mid + Math.imul(ah6, bl7)) | 0;\n hi = (hi + Math.imul(ah6, bh7)) | 0;\n lo = (lo + Math.imul(al5, bl8)) | 0;\n mid = (mid + Math.imul(al5, bh8)) | 0;\n mid = (mid + Math.imul(ah5, bl8)) | 0;\n hi = (hi + Math.imul(ah5, bh8)) | 0;\n lo = (lo + Math.imul(al4, bl9)) | 0;\n mid = (mid + Math.imul(al4, bh9)) | 0;\n mid = (mid + Math.imul(ah4, bl9)) | 0;\n hi = (hi + Math.imul(ah4, bh9)) | 0;\n var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;\n w13 &= 0x3ffffff;\n /* k = 14 */\n lo = Math.imul(al9, bl5);\n mid = Math.imul(al9, bh5);\n mid = (mid + Math.imul(ah9, bl5)) | 0;\n hi = Math.imul(ah9, bh5);\n lo = (lo + Math.imul(al8, bl6)) | 0;\n mid = (mid + Math.imul(al8, bh6)) | 0;\n mid = (mid + Math.imul(ah8, bl6)) | 0;\n hi = (hi + Math.imul(ah8, bh6)) | 0;\n lo = (lo + Math.imul(al7, bl7)) | 0;\n mid = (mid + Math.imul(al7, bh7)) | 0;\n mid = (mid + Math.imul(ah7, bl7)) | 0;\n hi = (hi + Math.imul(ah7, bh7)) | 0;\n lo = (lo + Math.imul(al6, bl8)) | 0;\n mid = (mid + Math.imul(al6, bh8)) | 0;\n mid = (mid + Math.imul(ah6, bl8)) | 0;\n hi = (hi + Math.imul(ah6, bh8)) | 0;\n lo = (lo + Math.imul(al5, bl9)) | 0;\n mid = (mid + Math.imul(al5, bh9)) | 0;\n mid = (mid + Math.imul(ah5, bl9)) | 0;\n hi = (hi + Math.imul(ah5, bh9)) | 0;\n var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;\n w14 &= 0x3ffffff;\n /* k = 15 */\n lo = Math.imul(al9, bl6);\n mid = Math.imul(al9, bh6);\n mid = (mid + Math.imul(ah9, bl6)) | 0;\n hi = Math.imul(ah9, bh6);\n lo = (lo + Math.imul(al8, bl7)) | 0;\n mid = (mid + Math.imul(al8, bh7)) | 0;\n mid = (mid + Math.imul(ah8, bl7)) | 0;\n hi = (hi + Math.imul(ah8, bh7)) | 0;\n lo = (lo + Math.imul(al7, bl8)) | 0;\n mid = (mid + Math.imul(al7, bh8)) | 0;\n mid = (mid + Math.imul(ah7, bl8)) | 0;\n hi = (hi + Math.imul(ah7, bh8)) | 0;\n lo = (lo + Math.imul(al6, bl9)) | 0;\n mid = (mid + Math.imul(al6, bh9)) | 0;\n mid = (mid + Math.imul(ah6, bl9)) | 0;\n hi = (hi + Math.imul(ah6, bh9)) | 0;\n var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;\n w15 &= 0x3ffffff;\n /* k = 16 */\n lo = Math.imul(al9, bl7);\n mid = Math.imul(al9, bh7);\n mid = (mid + Math.imul(ah9, bl7)) | 0;\n hi = Math.imul(ah9, bh7);\n lo = (lo + Math.imul(al8, bl8)) | 0;\n mid = (mid + Math.imul(al8, bh8)) | 0;\n mid = (mid + Math.imul(ah8, bl8)) | 0;\n hi = (hi + Math.imul(ah8, bh8)) | 0;\n lo = (lo + Math.imul(al7, bl9)) | 0;\n mid = (mid + Math.imul(al7, bh9)) | 0;\n mid = (mid + Math.imul(ah7, bl9)) | 0;\n hi = (hi + Math.imul(ah7, bh9)) | 0;\n var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;\n w16 &= 0x3ffffff;\n /* k = 17 */\n lo = Math.imul(al9, bl8);\n mid = Math.imul(al9, bh8);\n mid = (mid + Math.imul(ah9, bl8)) | 0;\n hi = Math.imul(ah9, bh8);\n lo = (lo + Math.imul(al8, bl9)) | 0;\n mid = (mid + Math.imul(al8, bh9)) | 0;\n mid = (mid + Math.imul(ah8, bl9)) | 0;\n hi = (hi + Math.imul(ah8, bh9)) | 0;\n var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;\n w17 &= 0x3ffffff;\n /* k = 18 */\n lo = Math.imul(al9, bl9);\n mid = Math.imul(al9, bh9);\n mid = (mid + Math.imul(ah9, bl9)) | 0;\n hi = Math.imul(ah9, bh9);\n var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;\n w18 &= 0x3ffffff;\n o[0] = w0;\n o[1] = w1;\n o[2] = w2;\n o[3] = w3;\n o[4] = w4;\n o[5] = w5;\n o[6] = w6;\n o[7] = w7;\n o[8] = w8;\n o[9] = w9;\n o[10] = w10;\n o[11] = w11;\n o[12] = w12;\n o[13] = w13;\n o[14] = w14;\n o[15] = w15;\n o[16] = w16;\n o[17] = w17;\n o[18] = w18;\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n return out;\n };\n\n // Polyfill comb\n if (!Math.imul) {\n comb10MulTo = smallMulTo;\n }\n\n function bigMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n out.length = self.length + num.length;\n\n var carry = 0;\n var hncarry = 0;\n for (var k = 0; k < out.length - 1; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = hncarry;\n hncarry = 0;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j;\n var a = self.words[i] | 0;\n var b = num.words[j] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;\n lo = (lo + rword) | 0;\n rword = lo & 0x3ffffff;\n ncarry = (ncarry + (lo >>> 26)) | 0;\n\n hncarry += ncarry >>> 26;\n ncarry &= 0x3ffffff;\n }\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\n if (carry !== 0) {\n out.words[k] = carry;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n function jumboMulTo (self, num, out) {\n var fftm = new FFTM();\n return fftm.mulp(self, num, out);\n }\n\n BN.prototype.mulTo = function mulTo (num, out) {\n var res;\n var len = this.length + num.length;\n if (this.length === 10 && num.length === 10) {\n res = comb10MulTo(this, num, out);\n } else if (len < 63) {\n res = smallMulTo(this, num, out);\n } else if (len < 1024) {\n res = bigMulTo(this, num, out);\n } else {\n res = jumboMulTo(this, num, out);\n }\n\n return res;\n };\n\n // Cooley-Tukey algorithm for FFT\n // slightly revisited to rely on looping instead of recursion\n\n function FFTM (x, y) {\n this.x = x;\n this.y = y;\n }\n\n FFTM.prototype.makeRBT = function makeRBT (N) {\n var t = new Array(N);\n var l = BN.prototype._countBits(N) - 1;\n for (var i = 0; i < N; i++) {\n t[i] = this.revBin(i, l, N);\n }\n\n return t;\n };\n\n // Returns binary-reversed representation of `x`\n FFTM.prototype.revBin = function revBin (x, l, N) {\n if (x === 0 || x === N - 1) return x;\n\n var rb = 0;\n for (var i = 0; i < l; i++) {\n rb |= (x & 1) << (l - i - 1);\n x >>= 1;\n }\n\n return rb;\n };\n\n // Performs \"tweedling\" phase, therefore 'emulating'\n // behaviour of the recursive algorithm\n FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {\n for (var i = 0; i < N; i++) {\n rtws[i] = rws[rbt[i]];\n itws[i] = iws[rbt[i]];\n }\n };\n\n FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {\n this.permute(rbt, rws, iws, rtws, itws, N);\n\n for (var s = 1; s < N; s <<= 1) {\n var l = s << 1;\n\n var rtwdf = Math.cos(2 * Math.PI / l);\n var itwdf = Math.sin(2 * Math.PI / l);\n\n for (var p = 0; p < N; p += l) {\n var rtwdf_ = rtwdf;\n var itwdf_ = itwdf;\n\n for (var j = 0; j < s; j++) {\n var re = rtws[p + j];\n var ie = itws[p + j];\n\n var ro = rtws[p + j + s];\n var io = itws[p + j + s];\n\n var rx = rtwdf_ * ro - itwdf_ * io;\n\n io = rtwdf_ * io + itwdf_ * ro;\n ro = rx;\n\n rtws[p + j] = re + ro;\n itws[p + j] = ie + io;\n\n rtws[p + j + s] = re - ro;\n itws[p + j + s] = ie - io;\n\n /* jshint maxdepth : false */\n if (j !== l) {\n rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n\n itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n rtwdf_ = rx;\n }\n }\n }\n }\n };\n\n FFTM.prototype.guessLen13b = function guessLen13b (n, m) {\n var N = Math.max(m, n) | 1;\n var odd = N & 1;\n var i = 0;\n for (N = N / 2 | 0; N; N = N >>> 1) {\n i++;\n }\n\n return 1 << i + 1 + odd;\n };\n\n FFTM.prototype.conjugate = function conjugate (rws, iws, N) {\n if (N <= 1) return;\n\n for (var i = 0; i < N / 2; i++) {\n var t = rws[i];\n\n rws[i] = rws[N - i - 1];\n rws[N - i - 1] = t;\n\n t = iws[i];\n\n iws[i] = -iws[N - i - 1];\n iws[N - i - 1] = -t;\n }\n };\n\n FFTM.prototype.normalize13b = function normalize13b (ws, N) {\n var carry = 0;\n for (var i = 0; i < N / 2; i++) {\n var w = Math.round(ws[2 * i + 1] / N) * 0x2000 +\n Math.round(ws[2 * i] / N) +\n carry;\n\n ws[i] = w & 0x3ffffff;\n\n if (w < 0x4000000) {\n carry = 0;\n } else {\n carry = w / 0x4000000 | 0;\n }\n }\n\n return ws;\n };\n\n FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {\n var carry = 0;\n for (var i = 0; i < len; i++) {\n carry = carry + (ws[i] | 0);\n\n rws[2 * i] = carry & 0x1fff; carry = carry >>> 13;\n rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13;\n }\n\n // Pad with zeroes\n for (i = 2 * len; i < N; ++i) {\n rws[i] = 0;\n }\n\n assert(carry === 0);\n assert((carry & ~0x1fff) === 0);\n };\n\n FFTM.prototype.stub = function stub (N) {\n var ph = new Array(N);\n for (var i = 0; i < N; i++) {\n ph[i] = 0;\n }\n\n return ph;\n };\n\n FFTM.prototype.mulp = function mulp (x, y, out) {\n var N = 2 * this.guessLen13b(x.length, y.length);\n\n var rbt = this.makeRBT(N);\n\n var _ = this.stub(N);\n\n var rws = new Array(N);\n var rwst = new Array(N);\n var iwst = new Array(N);\n\n var nrws = new Array(N);\n var nrwst = new Array(N);\n var niwst = new Array(N);\n\n var rmws = out.words;\n rmws.length = N;\n\n this.convert13b(x.words, x.length, rws, N);\n this.convert13b(y.words, y.length, nrws, N);\n\n this.transform(rws, _, rwst, iwst, N, rbt);\n this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n for (var i = 0; i < N; i++) {\n var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n rwst[i] = rx;\n }\n\n this.conjugate(rwst, iwst, N);\n this.transform(rwst, iwst, rmws, _, N, rbt);\n this.conjugate(rmws, _, N);\n this.normalize13b(rmws, N);\n\n out.negative = x.negative ^ y.negative;\n out.length = x.length + y.length;\n return out.strip();\n };\n\n // Multiply `this` by `num`\n BN.prototype.mul = function mul (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return this.mulTo(num, out);\n };\n\n // Multiply employing FFT\n BN.prototype.mulf = function mulf (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return jumboMulTo(this, num, out);\n };\n\n // In-place Multiplication\n BN.prototype.imul = function imul (num) {\n return this.clone().mulTo(num, this);\n };\n\n BN.prototype.imuln = function imuln (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n\n // Carry\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = (this.words[i] | 0) * num;\n var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n carry >>= 26;\n carry += (w / 0x4000000) | 0;\n // NOTE: lo is 27bit maximum\n carry += lo >>> 26;\n this.words[i] = lo & 0x3ffffff;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n\n return this;\n };\n\n BN.prototype.muln = function muln (num) {\n return this.clone().imuln(num);\n };\n\n // `this` * `this`\n BN.prototype.sqr = function sqr () {\n return this.mul(this);\n };\n\n // `this` * `this` in-place\n BN.prototype.isqr = function isqr () {\n return this.imul(this.clone());\n };\n\n // Math.pow(`this`, `num`)\n BN.prototype.pow = function pow (num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1);\n\n // Skip leading zeroes\n var res = this;\n for (var i = 0; i < w.length; i++, res = res.sqr()) {\n if (w[i] !== 0) break;\n }\n\n if (++i < w.length) {\n for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n if (w[i] === 0) continue;\n\n res = res.mul(q);\n }\n }\n\n return res;\n };\n\n // Shift-left in-place\n BN.prototype.iushln = function iushln (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);\n var i;\n\n if (r !== 0) {\n var carry = 0;\n\n for (i = 0; i < this.length; i++) {\n var newCarry = this.words[i] & carryMask;\n var c = ((this.words[i] | 0) - newCarry) << r;\n this.words[i] = c | carry;\n carry = newCarry >>> (26 - r);\n }\n\n if (carry) {\n this.words[i] = carry;\n this.length++;\n }\n }\n\n if (s !== 0) {\n for (i = this.length - 1; i >= 0; i--) {\n this.words[i + s] = this.words[i];\n }\n\n for (i = 0; i < s; i++) {\n this.words[i] = 0;\n }\n\n this.length += s;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishln = function ishln (bits) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushln(bits);\n };\n\n // Shift-right in-place\n // NOTE: `hint` is a lowest bit before trailing zeroes\n // NOTE: if `extended` is present - it will be filled with destroyed bits\n BN.prototype.iushrn = function iushrn (bits, hint, extended) {\n assert(typeof bits === 'number' && bits >= 0);\n var h;\n if (hint) {\n h = (hint - (hint % 26)) / 26;\n } else {\n h = 0;\n }\n\n var r = bits % 26;\n var s = Math.min((bits - r) / 26, this.length);\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n var maskedWords = extended;\n\n h -= s;\n h = Math.max(0, h);\n\n // Extended mode, copy masked part\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n maskedWords.length = s;\n }\n\n if (s === 0) {\n // No-op, we should not move anything at all\n } else if (this.length > s) {\n this.length -= s;\n for (i = 0; i < this.length; i++) {\n this.words[i] = this.words[i + s];\n }\n } else {\n this.words[0] = 0;\n this.length = 1;\n }\n\n var carry = 0;\n for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n var word = this.words[i] | 0;\n this.words[i] = (carry << (26 - r)) | (word >>> r);\n carry = word & mask;\n }\n\n // Push carried bits as a mask\n if (maskedWords && carry !== 0) {\n maskedWords.words[maskedWords.length++] = carry;\n }\n\n if (this.length === 0) {\n this.words[0] = 0;\n this.length = 1;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishrn = function ishrn (bits, hint, extended) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushrn(bits, hint, extended);\n };\n\n // Shift-left\n BN.prototype.shln = function shln (bits) {\n return this.clone().ishln(bits);\n };\n\n BN.prototype.ushln = function ushln (bits) {\n return this.clone().iushln(bits);\n };\n\n // Shift-right\n BN.prototype.shrn = function shrn (bits) {\n return this.clone().ishrn(bits);\n };\n\n BN.prototype.ushrn = function ushrn (bits) {\n return this.clone().iushrn(bits);\n };\n\n // Test if n bit is set\n BN.prototype.testn = function testn (bit) {\n assert(typeof bit === 'number' && bit >= 0);\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) return false;\n\n // Check bit and return\n var w = this.words[s];\n\n return !!(w & q);\n };\n\n // Return only lowers bits of number (in-place)\n BN.prototype.imaskn = function imaskn (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n\n assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n if (this.length <= s) {\n return this;\n }\n\n if (r !== 0) {\n s++;\n }\n this.length = Math.min(s, this.length);\n\n if (r !== 0) {\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n this.words[this.length - 1] &= mask;\n }\n\n return this.strip();\n };\n\n // Return only lowers bits of number\n BN.prototype.maskn = function maskn (bits) {\n return this.clone().imaskn(bits);\n };\n\n // Add plain number `num` to `this`\n BN.prototype.iaddn = function iaddn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.isubn(-num);\n\n // Possible sign change\n if (this.negative !== 0) {\n if (this.length === 1 && (this.words[0] | 0) < num) {\n this.words[0] = num - (this.words[0] | 0);\n this.negative = 0;\n return this;\n }\n\n this.negative = 0;\n this.isubn(num);\n this.negative = 1;\n return this;\n }\n\n // Add without checks\n return this._iaddn(num);\n };\n\n BN.prototype._iaddn = function _iaddn (num) {\n this.words[0] += num;\n\n // Carry\n for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n this.words[i] -= 0x4000000;\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n this.length = Math.max(this.length, i + 1);\n\n return this;\n };\n\n // Subtract plain number `num` from `this`\n BN.prototype.isubn = function isubn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.iaddn(-num);\n\n if (this.negative !== 0) {\n this.negative = 0;\n this.iaddn(num);\n this.negative = 1;\n return this;\n }\n\n this.words[0] -= num;\n\n if (this.length === 1 && this.words[0] < 0) {\n this.words[0] = -this.words[0];\n this.negative = 1;\n } else {\n // Carry\n for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n this.words[i] += 0x4000000;\n this.words[i + 1] -= 1;\n }\n }\n\n return this.strip();\n };\n\n BN.prototype.addn = function addn (num) {\n return this.clone().iaddn(num);\n };\n\n BN.prototype.subn = function subn (num) {\n return this.clone().isubn(num);\n };\n\n BN.prototype.iabs = function iabs () {\n this.negative = 0;\n\n return this;\n };\n\n BN.prototype.abs = function abs () {\n return this.clone().iabs();\n };\n\n BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {\n var len = num.length + shift;\n var i;\n\n this._expand(len);\n\n var w;\n var carry = 0;\n for (i = 0; i < num.length; i++) {\n w = (this.words[i + shift] | 0) + carry;\n var right = (num.words[i] | 0) * mul;\n w -= right & 0x3ffffff;\n carry = (w >> 26) - ((right / 0x4000000) | 0);\n this.words[i + shift] = w & 0x3ffffff;\n }\n for (; i < this.length - shift; i++) {\n w = (this.words[i + shift] | 0) + carry;\n carry = w >> 26;\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n if (carry === 0) return this.strip();\n\n // Subtraction overflow\n assert(carry === -1);\n carry = 0;\n for (i = 0; i < this.length; i++) {\n w = -(this.words[i] | 0) + carry;\n carry = w >> 26;\n this.words[i] = w & 0x3ffffff;\n }\n this.negative = 1;\n\n return this.strip();\n };\n\n BN.prototype._wordDiv = function _wordDiv (num, mode) {\n var shift = this.length - num.length;\n\n var a = this.clone();\n var b = num;\n\n // Normalize\n var bhi = b.words[b.length - 1] | 0;\n var bhiBits = this._countBits(bhi);\n shift = 26 - bhiBits;\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n }\n\n // Initialize quotient\n var m = a.length - b.length;\n var q;\n\n if (mode !== 'mod') {\n q = new BN(null);\n q.length = m + 1;\n q.words = new Array(q.length);\n for (var i = 0; i < q.length; i++) {\n q.words[i] = 0;\n }\n }\n\n var diff = a.clone()._ishlnsubmul(b, 1, m);\n if (diff.negative === 0) {\n a = diff;\n if (q) {\n q.words[m] = 1;\n }\n }\n\n for (var j = m - 1; j >= 0; j--) {\n var qj = (a.words[b.length + j] | 0) * 0x4000000 +\n (a.words[b.length + j - 1] | 0);\n\n // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n // (0x7ffffff)\n qj = Math.min((qj / bhi) | 0, 0x3ffffff);\n\n a._ishlnsubmul(b, qj, j);\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n a._ishlnsubmul(b, 1, j);\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n if (q) {\n q.words[j] = qj;\n }\n }\n if (q) {\n q.strip();\n }\n a.strip();\n\n // Denormalize\n if (mode !== 'div' && shift !== 0) {\n a.iushrn(shift);\n }\n\n return {\n div: q || null,\n mod: a\n };\n };\n\n // NOTE: 1) `mode` can be set to `mod` to request mod only,\n // to `div` to request div only, or be absent to\n // request both div & mod\n // 2) `positive` is true if unsigned mod is requested\n BN.prototype.divmod = function divmod (num, mode, positive) {\n assert(!num.isZero());\n\n if (this.isZero()) {\n return {\n div: new BN(0),\n mod: new BN(0)\n };\n }\n\n var div, mod, res;\n if (this.negative !== 0 && num.negative === 0) {\n res = this.neg().divmod(num, mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.iadd(num);\n }\n }\n\n return {\n div: div,\n mod: mod\n };\n }\n\n if (this.negative === 0 && num.negative !== 0) {\n res = this.divmod(num.neg(), mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n return {\n div: div,\n mod: res.mod\n };\n }\n\n if ((this.negative & num.negative) !== 0) {\n res = this.neg().divmod(num.neg(), mode);\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n\n return {\n div: res.div,\n mod: mod\n };\n }\n\n // Both numbers are positive at this point\n\n // Strip both numbers to approximate shift value\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n }\n\n // Very short reduction\n if (num.length === 1) {\n if (mode === 'div') {\n return {\n div: this.divn(num.words[0]),\n mod: null\n };\n }\n\n if (mode === 'mod') {\n return {\n div: null,\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return this._wordDiv(num, mode);\n };\n\n // Find `this` / `num`\n BN.prototype.div = function div (num) {\n return this.divmod(num, 'div', false).div;\n };\n\n // Find `this` % `num`\n BN.prototype.mod = function mod (num) {\n return this.divmod(num, 'mod', false).mod;\n };\n\n BN.prototype.umod = function umod (num) {\n return this.divmod(num, 'mod', true).mod;\n };\n\n // Find Round(`this` / `num`)\n BN.prototype.divRound = function divRound (num) {\n var dm = this.divmod(num);\n\n // Fast case - exact division\n if (dm.mod.isZero()) return dm.div;\n\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half);\n\n // Round down\n if (cmp < 0 || r2 === 1 && cmp === 0) return dm.div;\n\n // Round up\n return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n };\n\n BN.prototype.modn = function modn (num) {\n assert(num <= 0x3ffffff);\n var p = (1 << 26) % num;\n\n var acc = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n acc = (p * acc + (this.words[i] | 0)) % num;\n }\n\n return acc;\n };\n\n // In-place division by number\n BN.prototype.idivn = function idivn (num) {\n assert(num <= 0x3ffffff);\n\n var carry = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var w = (this.words[i] | 0) + carry * 0x4000000;\n this.words[i] = (w / num) | 0;\n carry = w % num;\n }\n\n return this.strip();\n };\n\n BN.prototype.divn = function divn (num) {\n return this.clone().idivn(num);\n };\n\n BN.prototype.egcd = function egcd (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var x = this;\n var y = p.clone();\n\n if (x.negative !== 0) {\n x = x.umod(p);\n } else {\n x = x.clone();\n }\n\n // A * x + B * y = x\n var A = new BN(1);\n var B = new BN(0);\n\n // C * x + D * y = y\n var C = new BN(0);\n var D = new BN(1);\n\n var g = 0;\n\n while (x.isEven() && y.isEven()) {\n x.iushrn(1);\n y.iushrn(1);\n ++g;\n }\n\n var yp = y.clone();\n var xp = x.clone();\n\n while (!x.isZero()) {\n for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n x.iushrn(i);\n while (i-- > 0) {\n if (A.isOdd() || B.isOdd()) {\n A.iadd(yp);\n B.isub(xp);\n }\n\n A.iushrn(1);\n B.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n y.iushrn(j);\n while (j-- > 0) {\n if (C.isOdd() || D.isOdd()) {\n C.iadd(yp);\n D.isub(xp);\n }\n\n C.iushrn(1);\n D.iushrn(1);\n }\n }\n\n if (x.cmp(y) >= 0) {\n x.isub(y);\n A.isub(C);\n B.isub(D);\n } else {\n y.isub(x);\n C.isub(A);\n D.isub(B);\n }\n }\n\n return {\n a: C,\n b: D,\n gcd: y.iushln(g)\n };\n };\n\n // This is reduced incarnation of the binary EEA\n // above, designated to invert members of the\n // _prime_ fields F(p) at a maximal speed\n BN.prototype._invmp = function _invmp (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var a = this;\n var b = p.clone();\n\n if (a.negative !== 0) {\n a = a.umod(p);\n } else {\n a = a.clone();\n }\n\n var x1 = new BN(1);\n var x2 = new BN(0);\n\n var delta = b.clone();\n\n while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n a.iushrn(i);\n while (i-- > 0) {\n if (x1.isOdd()) {\n x1.iadd(delta);\n }\n\n x1.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n b.iushrn(j);\n while (j-- > 0) {\n if (x2.isOdd()) {\n x2.iadd(delta);\n }\n\n x2.iushrn(1);\n }\n }\n\n if (a.cmp(b) >= 0) {\n a.isub(b);\n x1.isub(x2);\n } else {\n b.isub(a);\n x2.isub(x1);\n }\n }\n\n var res;\n if (a.cmpn(1) === 0) {\n res = x1;\n } else {\n res = x2;\n }\n\n if (res.cmpn(0) < 0) {\n res.iadd(p);\n }\n\n return res;\n };\n\n BN.prototype.gcd = function gcd (num) {\n if (this.isZero()) return num.abs();\n if (num.isZero()) return this.abs();\n\n var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0;\n\n // Remove common factor of two\n for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n a.iushrn(1);\n b.iushrn(1);\n }\n\n do {\n while (a.isEven()) {\n a.iushrn(1);\n }\n while (b.isEven()) {\n b.iushrn(1);\n }\n\n var r = a.cmp(b);\n if (r < 0) {\n // Swap `a` and `b` to make `a` always bigger than `b`\n var t = a;\n a = b;\n b = t;\n } else if (r === 0 || b.cmpn(1) === 0) {\n break;\n }\n\n a.isub(b);\n } while (true);\n\n return b.iushln(shift);\n };\n\n // Invert number in the field F(num)\n BN.prototype.invm = function invm (num) {\n return this.egcd(num).a.umod(num);\n };\n\n BN.prototype.isEven = function isEven () {\n return (this.words[0] & 1) === 0;\n };\n\n BN.prototype.isOdd = function isOdd () {\n return (this.words[0] & 1) === 1;\n };\n\n // And first word and num\n BN.prototype.andln = function andln (num) {\n return this.words[0] & num;\n };\n\n // Increment at the bit position in-line\n BN.prototype.bincn = function bincn (bit) {\n assert(typeof bit === 'number');\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) {\n this._expand(s + 1);\n this.words[s] |= q;\n return this;\n }\n\n // Add bit and propagate, if needed\n var carry = q;\n for (var i = s; carry !== 0 && i < this.length; i++) {\n var w = this.words[i] | 0;\n w += carry;\n carry = w >>> 26;\n w &= 0x3ffffff;\n this.words[i] = w;\n }\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n return this;\n };\n\n BN.prototype.isZero = function isZero () {\n return this.length === 1 && this.words[0] === 0;\n };\n\n BN.prototype.cmpn = function cmpn (num) {\n var negative = num < 0;\n\n if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n\n this.strip();\n\n var res;\n if (this.length > 1) {\n res = 1;\n } else {\n if (negative) {\n num = -num;\n }\n\n assert(num <= 0x3ffffff, 'Number is too big');\n\n var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Compare two numbers and return:\n // 1 - if `this` > `num`\n // 0 - if `this` == `num`\n // -1 - if `this` < `num`\n BN.prototype.cmp = function cmp (num) {\n if (this.negative !== 0 && num.negative === 0) return -1;\n if (this.negative === 0 && num.negative !== 0) return 1;\n\n var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Unsigned comparison\n BN.prototype.ucmp = function ucmp (num) {\n // At this point both numbers have the same sign\n if (this.length > num.length) return 1;\n if (this.length < num.length) return -1;\n\n var res = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var a = this.words[i] | 0;\n var b = num.words[i] | 0;\n\n if (a === b) continue;\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n break;\n }\n return res;\n };\n\n BN.prototype.gtn = function gtn (num) {\n return this.cmpn(num) === 1;\n };\n\n BN.prototype.gt = function gt (num) {\n return this.cmp(num) === 1;\n };\n\n BN.prototype.gten = function gten (num) {\n return this.cmpn(num) >= 0;\n };\n\n BN.prototype.gte = function gte (num) {\n return this.cmp(num) >= 0;\n };\n\n BN.prototype.ltn = function ltn (num) {\n return this.cmpn(num) === -1;\n };\n\n BN.prototype.lt = function lt (num) {\n return this.cmp(num) === -1;\n };\n\n BN.prototype.lten = function lten (num) {\n return this.cmpn(num) <= 0;\n };\n\n BN.prototype.lte = function lte (num) {\n return this.cmp(num) <= 0;\n };\n\n BN.prototype.eqn = function eqn (num) {\n return this.cmpn(num) === 0;\n };\n\n BN.prototype.eq = function eq (num) {\n return this.cmp(num) === 0;\n };\n\n //\n // A reduce context, could be using montgomery or something better, depending\n // on the `m` itself.\n //\n BN.red = function red (num) {\n return new Red(num);\n };\n\n BN.prototype.toRed = function toRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n assert(this.negative === 0, 'red works only with positives');\n return ctx.convertTo(this)._forceRed(ctx);\n };\n\n BN.prototype.fromRed = function fromRed () {\n assert(this.red, 'fromRed works only with numbers in reduction context');\n return this.red.convertFrom(this);\n };\n\n BN.prototype._forceRed = function _forceRed (ctx) {\n this.red = ctx;\n return this;\n };\n\n BN.prototype.forceRed = function forceRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n return this._forceRed(ctx);\n };\n\n BN.prototype.redAdd = function redAdd (num) {\n assert(this.red, 'redAdd works only with red numbers');\n return this.red.add(this, num);\n };\n\n BN.prototype.redIAdd = function redIAdd (num) {\n assert(this.red, 'redIAdd works only with red numbers');\n return this.red.iadd(this, num);\n };\n\n BN.prototype.redSub = function redSub (num) {\n assert(this.red, 'redSub works only with red numbers');\n return this.red.sub(this, num);\n };\n\n BN.prototype.redISub = function redISub (num) {\n assert(this.red, 'redISub works only with red numbers');\n return this.red.isub(this, num);\n };\n\n BN.prototype.redShl = function redShl (num) {\n assert(this.red, 'redShl works only with red numbers');\n return this.red.shl(this, num);\n };\n\n BN.prototype.redMul = function redMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.mul(this, num);\n };\n\n BN.prototype.redIMul = function redIMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.imul(this, num);\n };\n\n BN.prototype.redSqr = function redSqr () {\n assert(this.red, 'redSqr works only with red numbers');\n this.red._verify1(this);\n return this.red.sqr(this);\n };\n\n BN.prototype.redISqr = function redISqr () {\n assert(this.red, 'redISqr works only with red numbers');\n this.red._verify1(this);\n return this.red.isqr(this);\n };\n\n // Square root over p\n BN.prototype.redSqrt = function redSqrt () {\n assert(this.red, 'redSqrt works only with red numbers');\n this.red._verify1(this);\n return this.red.sqrt(this);\n };\n\n BN.prototype.redInvm = function redInvm () {\n assert(this.red, 'redInvm works only with red numbers');\n this.red._verify1(this);\n return this.red.invm(this);\n };\n\n // Return negative clone of `this` % `red modulo`\n BN.prototype.redNeg = function redNeg () {\n assert(this.red, 'redNeg works only with red numbers');\n this.red._verify1(this);\n return this.red.neg(this);\n };\n\n BN.prototype.redPow = function redPow (num) {\n assert(this.red && !num.red, 'redPow(normalNum)');\n this.red._verify1(this);\n return this.red.pow(this, num);\n };\n\n // Prime numbers with efficient reduction\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n };\n\n // Pseudo-Mersenne prime\n function MPrime (name, p) {\n // P = 2 ^ N - K\n this.name = name;\n this.p = new BN(p, 16);\n this.n = this.p.bitLength();\n this.k = new BN(1).iushln(this.n).isub(this.p);\n\n this.tmp = this._tmp();\n }\n\n MPrime.prototype._tmp = function _tmp () {\n var tmp = new BN(null);\n tmp.words = new Array(Math.ceil(this.n / 13));\n return tmp;\n };\n\n MPrime.prototype.ireduce = function ireduce (num) {\n // Assumes that `num` is less than `P^2`\n // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n var r = num;\n var rlen;\n\n do {\n this.split(r, this.tmp);\n r = this.imulK(r);\n r = r.iadd(this.tmp);\n rlen = r.bitLength();\n } while (rlen > this.n);\n\n var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n if (cmp === 0) {\n r.words[0] = 0;\n r.length = 1;\n } else if (cmp > 0) {\n r.isub(this.p);\n } else {\n if (r.strip !== undefined) {\n // r is BN v4 instance\n r.strip();\n } else {\n // r is BN v5 instance\n r._strip();\n }\n }\n\n return r;\n };\n\n MPrime.prototype.split = function split (input, out) {\n input.iushrn(this.n, 0, out);\n };\n\n MPrime.prototype.imulK = function imulK (num) {\n return num.imul(this.k);\n };\n\n function K256 () {\n MPrime.call(\n this,\n 'k256',\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n }\n inherits(K256, MPrime);\n\n K256.prototype.split = function split (input, output) {\n // 256 = 9 * 26 + 22\n var mask = 0x3fffff;\n\n var outLen = Math.min(input.length, 9);\n for (var i = 0; i < outLen; i++) {\n output.words[i] = input.words[i];\n }\n output.length = outLen;\n\n if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n }\n\n // Shift by 9 limbs\n var prev = input.words[9];\n output.words[output.length++] = prev & mask;\n\n for (i = 10; i < input.length; i++) {\n var next = input.words[i] | 0;\n input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22);\n prev = next;\n }\n prev >>>= 22;\n input.words[i - 10] = prev;\n if (prev === 0 && input.length > 10) {\n input.length -= 10;\n } else {\n input.length -= 9;\n }\n };\n\n K256.prototype.imulK = function imulK (num) {\n // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n num.words[num.length] = 0;\n num.words[num.length + 1] = 0;\n num.length += 2;\n\n // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n var lo = 0;\n for (var i = 0; i < num.length; i++) {\n var w = num.words[i] | 0;\n lo += w * 0x3d1;\n num.words[i] = lo & 0x3ffffff;\n lo = w * 0x40 + ((lo / 0x4000000) | 0);\n }\n\n // Fast length reduction\n if (num.words[num.length - 1] === 0) {\n num.length--;\n if (num.words[num.length - 1] === 0) {\n num.length--;\n }\n }\n return num;\n };\n\n function P224 () {\n MPrime.call(\n this,\n 'p224',\n 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n }\n inherits(P224, MPrime);\n\n function P192 () {\n MPrime.call(\n this,\n 'p192',\n 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n }\n inherits(P192, MPrime);\n\n function P25519 () {\n // 2 ^ 255 - 19\n MPrime.call(\n this,\n '25519',\n '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n }\n inherits(P25519, MPrime);\n\n P25519.prototype.imulK = function imulK (num) {\n // K = 0x13\n var carry = 0;\n for (var i = 0; i < num.length; i++) {\n var hi = (num.words[i] | 0) * 0x13 + carry;\n var lo = hi & 0x3ffffff;\n hi >>>= 26;\n\n num.words[i] = lo;\n carry = hi;\n }\n if (carry !== 0) {\n num.words[num.length++] = carry;\n }\n return num;\n };\n\n // Exported mostly for testing purposes, use plain name instead\n BN._prime = function prime (name) {\n // Cached version of prime\n if (primes[name]) return primes[name];\n\n var prime;\n if (name === 'k256') {\n prime = new K256();\n } else if (name === 'p224') {\n prime = new P224();\n } else if (name === 'p192') {\n prime = new P192();\n } else if (name === 'p25519') {\n prime = new P25519();\n } else {\n throw new Error('Unknown prime ' + name);\n }\n primes[name] = prime;\n\n return prime;\n };\n\n //\n // Base reduction engine\n //\n function Red (m) {\n if (typeof m === 'string') {\n var prime = BN._prime(m);\n this.m = prime.p;\n this.prime = prime;\n } else {\n assert(m.gtn(1), 'modulus must be greater than 1');\n this.m = m;\n this.prime = null;\n }\n }\n\n Red.prototype._verify1 = function _verify1 (a) {\n assert(a.negative === 0, 'red works only with positives');\n assert(a.red, 'red works only with red numbers');\n };\n\n Red.prototype._verify2 = function _verify2 (a, b) {\n assert((a.negative | b.negative) === 0, 'red works only with positives');\n assert(a.red && a.red === b.red,\n 'red works only with red numbers');\n };\n\n Red.prototype.imod = function imod (a) {\n if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n return a.umod(this.m)._forceRed(this);\n };\n\n Red.prototype.neg = function neg (a) {\n if (a.isZero()) {\n return a.clone();\n }\n\n return this.m.sub(a)._forceRed(this);\n };\n\n Red.prototype.add = function add (a, b) {\n this._verify2(a, b);\n\n var res = a.add(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.iadd = function iadd (a, b) {\n this._verify2(a, b);\n\n var res = a.iadd(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res;\n };\n\n Red.prototype.sub = function sub (a, b) {\n this._verify2(a, b);\n\n var res = a.sub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.isub = function isub (a, b) {\n this._verify2(a, b);\n\n var res = a.isub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res;\n };\n\n Red.prototype.shl = function shl (a, num) {\n this._verify1(a);\n return this.imod(a.ushln(num));\n };\n\n Red.prototype.imul = function imul (a, b) {\n this._verify2(a, b);\n return this.imod(a.imul(b));\n };\n\n Red.prototype.mul = function mul (a, b) {\n this._verify2(a, b);\n return this.imod(a.mul(b));\n };\n\n Red.prototype.isqr = function isqr (a) {\n return this.imul(a, a.clone());\n };\n\n Red.prototype.sqr = function sqr (a) {\n return this.mul(a, a);\n };\n\n Red.prototype.sqrt = function sqrt (a) {\n if (a.isZero()) return a.clone();\n\n var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1);\n\n // Fast case\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n }\n\n // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n //\n // Find Q and S, that Q * 2 ^ S = (P - 1)\n var q = this.m.subn(1);\n var s = 0;\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n assert(!q.isZero());\n\n var one = new BN(1).toRed(this);\n var nOne = one.redNeg();\n\n // Find quadratic non-residue\n // NOTE: Max is such because of generalized Riemann hypothesis.\n var lpow = this.m.subn(1).iushrn(1);\n var z = this.m.bitLength();\n z = new BN(2 * z * z).toRed(this);\n\n while (this.pow(z, lpow).cmp(nOne) !== 0) {\n z.redIAdd(nOne);\n }\n\n var c = this.pow(z, q);\n var r = this.pow(a, q.addn(1).iushrn(1));\n var t = this.pow(a, q);\n var m = s;\n while (t.cmp(one) !== 0) {\n var tmp = t;\n for (var i = 0; tmp.cmp(one) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\n\n r = r.redMul(b);\n c = b.redSqr();\n t = t.redMul(c);\n m = i;\n }\n\n return r;\n };\n\n Red.prototype.invm = function invm (a) {\n var inv = a._invmp(this.m);\n if (inv.negative !== 0) {\n inv.negative = 0;\n return this.imod(inv).redNeg();\n } else {\n return this.imod(inv);\n }\n };\n\n Red.prototype.pow = function pow (a, num) {\n if (num.isZero()) return new BN(1).toRed(this);\n if (num.cmpn(1) === 0) return a.clone();\n\n var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n for (var i = 2; i < wnd.length; i++) {\n wnd[i] = this.mul(wnd[i - 1], a);\n }\n\n var res = wnd[0];\n var current = 0;\n var currentLen = 0;\n var start = num.bitLength() % 26;\n if (start === 0) {\n start = 26;\n }\n\n for (i = num.length - 1; i >= 0; i--) {\n var word = num.words[i];\n for (var j = start - 1; j >= 0; j--) {\n var bit = (word >> j) & 1;\n if (res !== wnd[0]) {\n res = this.sqr(res);\n }\n\n if (bit === 0 && current === 0) {\n currentLen = 0;\n continue;\n }\n\n current <<= 1;\n current |= bit;\n currentLen++;\n if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n\n res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\n start = 26;\n }\n\n return res;\n };\n\n Red.prototype.convertTo = function convertTo (num) {\n var r = num.umod(this.m);\n\n return r === num ? r.clone() : r;\n };\n\n Red.prototype.convertFrom = function convertFrom (num) {\n var res = num.clone();\n res.red = null;\n return res;\n };\n\n //\n // Montgomery method engine\n //\n\n BN.mont = function mont (num) {\n return new Mont(num);\n };\n\n function Mont (m) {\n Red.call(this, m);\n\n this.shift = this.m.bitLength();\n if (this.shift % 26 !== 0) {\n this.shift += 26 - (this.shift % 26);\n }\n\n this.r = new BN(1).iushln(this.shift);\n this.r2 = this.imod(this.r.sqr());\n this.rinv = this.r._invmp(this.m);\n\n this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n this.minv = this.minv.umod(this.r);\n this.minv = this.r.sub(this.minv);\n }\n inherits(Mont, Red);\n\n Mont.prototype.convertTo = function convertTo (num) {\n return this.imod(num.ushln(this.shift));\n };\n\n Mont.prototype.convertFrom = function convertFrom (num) {\n var r = this.imod(num.mul(this.rinv));\n r.red = null;\n return r;\n };\n\n Mont.prototype.imul = function imul (a, b) {\n if (a.isZero() || b.isZero()) {\n a.words[0] = 0;\n a.length = 1;\n return a;\n }\n\n var t = a.imul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.mul = function mul (a, b) {\n if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n\n var t = a.mul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.invm = function invm (a) {\n // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n var res = this.imod(a._invmp(this.m).mul(this.r2));\n return res._forceRed(this);\n };\n})(typeof module === 'undefined' || module, this);\n", "(function (module, exports) {\n 'use strict';\n\n // Utils\n function assert (val, msg) {\n if (!val) throw new Error(msg || 'Assertion failed');\n }\n\n // Could use `inherits` module, but don't want to move from single file\n // architecture yet.\n function inherits (ctor, superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function () {};\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n\n // BN\n\n function BN (number, base, endian) {\n if (BN.isBN(number)) {\n return number;\n }\n\n this.negative = 0;\n this.words = null;\n this.length = 0;\n\n // Reduction context\n this.red = null;\n\n if (number !== null) {\n if (base === 'le' || base === 'be') {\n endian = base;\n base = 10;\n }\n\n this._init(number || 0, base || 10, endian || 'be');\n }\n }\n if (typeof module === 'object') {\n module.exports = BN;\n } else {\n exports.BN = BN;\n }\n\n BN.BN = BN;\n BN.wordSize = 26;\n\n var Buffer;\n try {\n if (typeof window !== 'undefined' && typeof window.Buffer !== 'undefined') {\n Buffer = window.Buffer;\n } else {\n Buffer = require('buffer').Buffer;\n }\n } catch (e) {\n }\n\n BN.isBN = function isBN (num) {\n if (num instanceof BN) {\n return true;\n }\n\n return num !== null && typeof num === 'object' &&\n num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);\n };\n\n BN.max = function max (left, right) {\n if (left.cmp(right) > 0) return left;\n return right;\n };\n\n BN.min = function min (left, right) {\n if (left.cmp(right) < 0) return left;\n return right;\n };\n\n BN.prototype._init = function init (number, base, endian) {\n if (typeof number === 'number') {\n return this._initNumber(number, base, endian);\n }\n\n if (typeof number === 'object') {\n return this._initArray(number, base, endian);\n }\n\n if (base === 'hex') {\n base = 16;\n }\n assert(base === (base | 0) && base >= 2 && base <= 36);\n\n number = number.toString().replace(/\\s+/g, '');\n var start = 0;\n if (number[0] === '-') {\n start++;\n this.negative = 1;\n }\n\n if (start < number.length) {\n if (base === 16) {\n this._parseHex(number, start, endian);\n } else {\n this._parseBase(number, base, start);\n if (endian === 'le') {\n this._initArray(this.toArray(), base, endian);\n }\n }\n }\n };\n\n BN.prototype._initNumber = function _initNumber (number, base, endian) {\n if (number < 0) {\n this.negative = 1;\n number = -number;\n }\n if (number < 0x4000000) {\n this.words = [ number & 0x3ffffff ];\n this.length = 1;\n } else if (number < 0x10000000000000) {\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff\n ];\n this.length = 2;\n } else {\n assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff,\n 1\n ];\n this.length = 3;\n }\n\n if (endian !== 'le') return;\n\n // Reverse the bytes\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initArray = function _initArray (number, base, endian) {\n // Perhaps a Uint8Array\n assert(typeof number.length === 'number');\n if (number.length <= 0) {\n this.words = [ 0 ];\n this.length = 1;\n return this;\n }\n\n this.length = Math.ceil(number.length / 3);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n var off = 0;\n if (endian === 'be') {\n for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n } else if (endian === 'le') {\n for (i = 0, j = 0; i < number.length; i += 3) {\n w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n return this.strip();\n };\n\n function parseHex4Bits (string, index) {\n var c = string.charCodeAt(index);\n // 'A' - 'F'\n if (c >= 65 && c <= 70) {\n return c - 55;\n // 'a' - 'f'\n } else if (c >= 97 && c <= 102) {\n return c - 87;\n // '0' - '9'\n } else {\n return (c - 48) & 0xf;\n }\n }\n\n function parseHexByte (string, lowerBound, index) {\n var r = parseHex4Bits(string, index);\n if (index - 1 >= lowerBound) {\n r |= parseHex4Bits(string, index - 1) << 4;\n }\n return r;\n }\n\n BN.prototype._parseHex = function _parseHex (number, start, endian) {\n // Create possibly bigger array to ensure that it fits the number\n this.length = Math.ceil((number.length - start) / 6);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n // 24-bits chunks\n var off = 0;\n var j = 0;\n\n var w;\n if (endian === 'be') {\n for (i = number.length - 1; i >= start; i -= 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n } else {\n var parseLength = number.length - start;\n for (i = parseLength % 2 === 0 ? start + 1 : start; i < number.length; i += 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n }\n\n this.strip();\n };\n\n function parseBase (str, start, end, mul) {\n var r = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r *= mul;\n\n // 'a'\n if (c >= 49) {\n r += c - 49 + 0xa;\n\n // 'A'\n } else if (c >= 17) {\n r += c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n r += c;\n }\n }\n return r;\n }\n\n BN.prototype._parseBase = function _parseBase (number, base, start) {\n // Initialize as zero\n this.words = [ 0 ];\n this.length = 1;\n\n // Find length of limb in base\n for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n limbLen++;\n }\n limbLen--;\n limbPow = (limbPow / base) | 0;\n\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n\n var word = 0;\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n\n this.imuln(limbPow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n if (mod !== 0) {\n var pow = 1;\n word = parseBase(number, i, number.length, base);\n\n for (i = 0; i < mod; i++) {\n pow *= base;\n }\n\n this.imuln(pow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n this.strip();\n };\n\n BN.prototype.copy = function copy (dest) {\n dest.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n dest.words[i] = this.words[i];\n }\n dest.length = this.length;\n dest.negative = this.negative;\n dest.red = this.red;\n };\n\n BN.prototype.clone = function clone () {\n var r = new BN(null);\n this.copy(r);\n return r;\n };\n\n BN.prototype._expand = function _expand (size) {\n while (this.length < size) {\n this.words[this.length++] = 0;\n }\n return this;\n };\n\n // Remove leading `0` from `this`\n BN.prototype.strip = function strip () {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\n return this._normSign();\n };\n\n BN.prototype._normSign = function _normSign () {\n // -0 = 0\n if (this.length === 1 && this.words[0] === 0) {\n this.negative = 0;\n }\n return this;\n };\n\n BN.prototype.inspect = function inspect () {\n return (this.red ? '';\n };\n\n /*\n\n var zeros = [];\n var groupSizes = [];\n var groupBases = [];\n\n var s = '';\n var i = -1;\n while (++i < BN.wordSize) {\n zeros[i] = s;\n s += '0';\n }\n groupSizes[0] = 0;\n groupSizes[1] = 0;\n groupBases[0] = 0;\n groupBases[1] = 0;\n var base = 2 - 1;\n while (++base < 36 + 1) {\n var groupSize = 0;\n var groupBase = 1;\n while (groupBase < (1 << BN.wordSize) / base) {\n groupBase *= base;\n groupSize += 1;\n }\n groupSizes[base] = groupSize;\n groupBases[base] = groupBase;\n }\n\n */\n\n var zeros = [\n '',\n '0',\n '00',\n '000',\n '0000',\n '00000',\n '000000',\n '0000000',\n '00000000',\n '000000000',\n '0000000000',\n '00000000000',\n '000000000000',\n '0000000000000',\n '00000000000000',\n '000000000000000',\n '0000000000000000',\n '00000000000000000',\n '000000000000000000',\n '0000000000000000000',\n '00000000000000000000',\n '000000000000000000000',\n '0000000000000000000000',\n '00000000000000000000000',\n '000000000000000000000000',\n '0000000000000000000000000'\n ];\n\n var groupSizes = [\n 0, 0,\n 25, 16, 12, 11, 10, 9, 8,\n 8, 7, 7, 7, 7, 6, 6,\n 6, 6, 6, 6, 6, 5, 5,\n 5, 5, 5, 5, 5, 5, 5,\n 5, 5, 5, 5, 5, 5, 5\n ];\n\n var groupBases = [\n 0, 0,\n 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,\n 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,\n 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,\n 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,\n 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176\n ];\n\n BN.prototype.toString = function toString (base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n\n var out;\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = this.words[i];\n var word = (((w << off) | carry) & 0xffffff).toString(16);\n carry = (w >>> (24 - off)) & 0xffffff;\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n off += 2;\n if (off >= 26) {\n off -= 26;\n i--;\n }\n }\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n if (base === (base | 0) && base >= 2 && base <= 36) {\n // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n var groupSize = groupSizes[base];\n // var groupBase = Math.pow(base, groupSize);\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n while (!c.isZero()) {\n var r = c.modn(groupBase).toString(base);\n c = c.idivn(groupBase);\n\n if (!c.isZero()) {\n out = zeros[groupSize - r.length] + r + out;\n } else {\n out = r + out;\n }\n }\n if (this.isZero()) {\n out = '0' + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n assert(false, 'Base should be between 2 and 36');\n };\n\n BN.prototype.toNumber = function toNumber () {\n var ret = this.words[0];\n if (this.length === 2) {\n ret += this.words[1] * 0x4000000;\n } else if (this.length === 3 && this.words[2] === 0x01) {\n // NOTE: at this stage it is known that the top bit is set\n ret += 0x10000000000000 + (this.words[1] * 0x4000000);\n } else if (this.length > 2) {\n assert(false, 'Number can only safely store up to 53 bits');\n }\n return (this.negative !== 0) ? -ret : ret;\n };\n\n BN.prototype.toJSON = function toJSON () {\n return this.toString(16);\n };\n\n BN.prototype.toBuffer = function toBuffer (endian, length) {\n assert(typeof Buffer !== 'undefined');\n return this.toArrayLike(Buffer, endian, length);\n };\n\n BN.prototype.toArray = function toArray (endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n var byteLength = this.byteLength();\n var reqLength = length || Math.max(1, byteLength);\n assert(byteLength <= reqLength, 'byte array longer than desired length');\n assert(reqLength > 0, 'Requested array length <= 0');\n\n this.strip();\n var littleEndian = endian === 'le';\n var res = new ArrayType(reqLength);\n\n var b, i;\n var q = this.clone();\n if (!littleEndian) {\n // Assume big-endian\n for (i = 0; i < reqLength - byteLength; i++) {\n res[i] = 0;\n }\n\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[reqLength - i - 1] = b;\n }\n } else {\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[i] = b;\n }\n\n for (; i < reqLength; i++) {\n res[i] = 0;\n }\n }\n\n return res;\n };\n\n if (Math.clz32) {\n BN.prototype._countBits = function _countBits (w) {\n return 32 - Math.clz32(w);\n };\n } else {\n BN.prototype._countBits = function _countBits (w) {\n var t = w;\n var r = 0;\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\n return r + t;\n };\n }\n\n BN.prototype._zeroBits = function _zeroBits (w) {\n // Short-cut\n if (w === 0) return 26;\n\n var t = w;\n var r = 0;\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n if ((t & 0x1) === 0) {\n r++;\n }\n return r;\n };\n\n // Return number of used bits in a BN\n BN.prototype.bitLength = function bitLength () {\n var w = this.words[this.length - 1];\n var hi = this._countBits(w);\n return (this.length - 1) * 26 + hi;\n };\n\n function toBitArray (num) {\n var w = new Array(num.bitLength());\n\n for (var bit = 0; bit < w.length; bit++) {\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n w[bit] = (num.words[off] & (1 << wbit)) >>> wbit;\n }\n\n return w;\n }\n\n // Number of trailing zero bits\n BN.prototype.zeroBits = function zeroBits () {\n if (this.isZero()) return 0;\n\n var r = 0;\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n r += b;\n if (b !== 26) break;\n }\n return r;\n };\n\n BN.prototype.byteLength = function byteLength () {\n return Math.ceil(this.bitLength() / 8);\n };\n\n BN.prototype.toTwos = function toTwos (width) {\n if (this.negative !== 0) {\n return this.abs().inotn(width).iaddn(1);\n }\n return this.clone();\n };\n\n BN.prototype.fromTwos = function fromTwos (width) {\n if (this.testn(width - 1)) {\n return this.notn(width).iaddn(1).ineg();\n }\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg () {\n return this.negative !== 0;\n };\n\n // Return negative clone of `this`\n BN.prototype.neg = function neg () {\n return this.clone().ineg();\n };\n\n BN.prototype.ineg = function ineg () {\n if (!this.isZero()) {\n this.negative ^= 1;\n }\n\n return this;\n };\n\n // Or `num` with `this` in-place\n BN.prototype.iuor = function iuor (num) {\n while (this.length < num.length) {\n this.words[this.length++] = 0;\n }\n\n for (var i = 0; i < num.length; i++) {\n this.words[i] = this.words[i] | num.words[i];\n }\n\n return this.strip();\n };\n\n BN.prototype.ior = function ior (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuor(num);\n };\n\n // Or `num` with `this`\n BN.prototype.or = function or (num) {\n if (this.length > num.length) return this.clone().ior(num);\n return num.clone().ior(this);\n };\n\n BN.prototype.uor = function uor (num) {\n if (this.length > num.length) return this.clone().iuor(num);\n return num.clone().iuor(this);\n };\n\n // And `num` with `this` in-place\n BN.prototype.iuand = function iuand (num) {\n // b = min-length(num, this)\n var b;\n if (this.length > num.length) {\n b = num;\n } else {\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = this.words[i] & num.words[i];\n }\n\n this.length = b.length;\n\n return this.strip();\n };\n\n BN.prototype.iand = function iand (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuand(num);\n };\n\n // And `num` with `this`\n BN.prototype.and = function and (num) {\n if (this.length > num.length) return this.clone().iand(num);\n return num.clone().iand(this);\n };\n\n BN.prototype.uand = function uand (num) {\n if (this.length > num.length) return this.clone().iuand(num);\n return num.clone().iuand(this);\n };\n\n // Xor `num` with `this` in-place\n BN.prototype.iuxor = function iuxor (num) {\n // a.length > b.length\n var a;\n var b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = a.words[i] ^ b.words[i];\n }\n\n if (this !== a) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = a.length;\n\n return this.strip();\n };\n\n BN.prototype.ixor = function ixor (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuxor(num);\n };\n\n // Xor `num` with `this`\n BN.prototype.xor = function xor (num) {\n if (this.length > num.length) return this.clone().ixor(num);\n return num.clone().ixor(this);\n };\n\n BN.prototype.uxor = function uxor (num) {\n if (this.length > num.length) return this.clone().iuxor(num);\n return num.clone().iuxor(this);\n };\n\n // Not ``this`` with ``width`` bitwidth\n BN.prototype.inotn = function inotn (width) {\n assert(typeof width === 'number' && width >= 0);\n\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26;\n\n // Extend the buffer with leading zeroes\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n }\n\n // Handle complete words\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n }\n\n // Handle the residue\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));\n }\n\n // And remove leading zeroes\n return this.strip();\n };\n\n BN.prototype.notn = function notn (width) {\n return this.clone().inotn(width);\n };\n\n // Set `bit` of `this`\n BN.prototype.setn = function setn (bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\n\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n this._expand(off + 1);\n\n if (val) {\n this.words[off] = this.words[off] | (1 << wbit);\n } else {\n this.words[off] = this.words[off] & ~(1 << wbit);\n }\n\n return this.strip();\n };\n\n // Add `num` to `this` in-place\n BN.prototype.iadd = function iadd (num) {\n var r;\n\n // negative + positive\n if (this.negative !== 0 && num.negative === 0) {\n this.negative = 0;\n r = this.isub(num);\n this.negative ^= 1;\n return this._normSign();\n\n // positive + negative\n } else if (this.negative === 0 && num.negative !== 0) {\n num.negative = 0;\n r = this.isub(num);\n num.negative = 1;\n return r._normSign();\n }\n\n // a.length > b.length\n var a, b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n this.length = a.length;\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++;\n // Copy the rest of the words\n } else if (a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n return this;\n };\n\n // Add `num` to `this`\n BN.prototype.add = function add (num) {\n var res;\n if (num.negative !== 0 && this.negative === 0) {\n num.negative = 0;\n res = this.sub(num);\n num.negative ^= 1;\n return res;\n } else if (num.negative === 0 && this.negative !== 0) {\n this.negative = 0;\n res = num.sub(this);\n this.negative = 1;\n return res;\n }\n\n if (this.length > num.length) return this.clone().iadd(num);\n\n return num.clone().iadd(this);\n };\n\n // Subtract `num` from `this` in-place\n BN.prototype.isub = function isub (num) {\n // this - (-num) = this + num\n if (num.negative !== 0) {\n num.negative = 0;\n var r = this.iadd(num);\n num.negative = 1;\n return r._normSign();\n\n // -this - num = -(this + num)\n } else if (this.negative !== 0) {\n this.negative = 0;\n this.iadd(num);\n this.negative = 1;\n return this._normSign();\n }\n\n // At this point both numbers are positive\n var cmp = this.cmp(num);\n\n // Optimization - zeroify\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n }\n\n // a > b\n var a, b;\n if (cmp > 0) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n\n // Copy rest of the words\n if (carry === 0 && i < a.length && a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = Math.max(this.length, i);\n\n if (a !== this) {\n this.negative = 1;\n }\n\n return this.strip();\n };\n\n // Subtract `num` from `this`\n BN.prototype.sub = function sub (num) {\n return this.clone().isub(num);\n };\n\n function smallMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n var len = (self.length + num.length) | 0;\n out.length = len;\n len = (len - 1) | 0;\n\n // Peel one iteration (compiler can't do it, because of code complexity)\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n var carry = (r / 0x4000000) | 0;\n out.words[0] = lo;\n\n for (var k = 1; k < len; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = carry >>> 26;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = (k - j) | 0;\n a = self.words[i] | 0;\n b = num.words[j] | 0;\n r = a * b + rword;\n ncarry += (r / 0x4000000) | 0;\n rword = r & 0x3ffffff;\n }\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n // TODO(indutny): it may be reasonable to omit it for users who don't need\n // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n // multiplication (like elliptic secp256k1).\n var comb10MulTo = function comb10MulTo (self, num, out) {\n var a = self.words;\n var b = num.words;\n var o = out.words;\n var c = 0;\n var lo;\n var mid;\n var hi;\n var a0 = a[0] | 0;\n var al0 = a0 & 0x1fff;\n var ah0 = a0 >>> 13;\n var a1 = a[1] | 0;\n var al1 = a1 & 0x1fff;\n var ah1 = a1 >>> 13;\n var a2 = a[2] | 0;\n var al2 = a2 & 0x1fff;\n var ah2 = a2 >>> 13;\n var a3 = a[3] | 0;\n var al3 = a3 & 0x1fff;\n var ah3 = a3 >>> 13;\n var a4 = a[4] | 0;\n var al4 = a4 & 0x1fff;\n var ah4 = a4 >>> 13;\n var a5 = a[5] | 0;\n var al5 = a5 & 0x1fff;\n var ah5 = a5 >>> 13;\n var a6 = a[6] | 0;\n var al6 = a6 & 0x1fff;\n var ah6 = a6 >>> 13;\n var a7 = a[7] | 0;\n var al7 = a7 & 0x1fff;\n var ah7 = a7 >>> 13;\n var a8 = a[8] | 0;\n var al8 = a8 & 0x1fff;\n var ah8 = a8 >>> 13;\n var a9 = a[9] | 0;\n var al9 = a9 & 0x1fff;\n var ah9 = a9 >>> 13;\n var b0 = b[0] | 0;\n var bl0 = b0 & 0x1fff;\n var bh0 = b0 >>> 13;\n var b1 = b[1] | 0;\n var bl1 = b1 & 0x1fff;\n var bh1 = b1 >>> 13;\n var b2 = b[2] | 0;\n var bl2 = b2 & 0x1fff;\n var bh2 = b2 >>> 13;\n var b3 = b[3] | 0;\n var bl3 = b3 & 0x1fff;\n var bh3 = b3 >>> 13;\n var b4 = b[4] | 0;\n var bl4 = b4 & 0x1fff;\n var bh4 = b4 >>> 13;\n var b5 = b[5] | 0;\n var bl5 = b5 & 0x1fff;\n var bh5 = b5 >>> 13;\n var b6 = b[6] | 0;\n var bl6 = b6 & 0x1fff;\n var bh6 = b6 >>> 13;\n var b7 = b[7] | 0;\n var bl7 = b7 & 0x1fff;\n var bh7 = b7 >>> 13;\n var b8 = b[8] | 0;\n var bl8 = b8 & 0x1fff;\n var bh8 = b8 >>> 13;\n var b9 = b[9] | 0;\n var bl9 = b9 & 0x1fff;\n var bh9 = b9 >>> 13;\n\n out.negative = self.negative ^ num.negative;\n out.length = 19;\n /* k = 0 */\n lo = Math.imul(al0, bl0);\n mid = Math.imul(al0, bh0);\n mid = (mid + Math.imul(ah0, bl0)) | 0;\n hi = Math.imul(ah0, bh0);\n var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;\n w0 &= 0x3ffffff;\n /* k = 1 */\n lo = Math.imul(al1, bl0);\n mid = Math.imul(al1, bh0);\n mid = (mid + Math.imul(ah1, bl0)) | 0;\n hi = Math.imul(ah1, bh0);\n lo = (lo + Math.imul(al0, bl1)) | 0;\n mid = (mid + Math.imul(al0, bh1)) | 0;\n mid = (mid + Math.imul(ah0, bl1)) | 0;\n hi = (hi + Math.imul(ah0, bh1)) | 0;\n var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;\n w1 &= 0x3ffffff;\n /* k = 2 */\n lo = Math.imul(al2, bl0);\n mid = Math.imul(al2, bh0);\n mid = (mid + Math.imul(ah2, bl0)) | 0;\n hi = Math.imul(ah2, bh0);\n lo = (lo + Math.imul(al1, bl1)) | 0;\n mid = (mid + Math.imul(al1, bh1)) | 0;\n mid = (mid + Math.imul(ah1, bl1)) | 0;\n hi = (hi + Math.imul(ah1, bh1)) | 0;\n lo = (lo + Math.imul(al0, bl2)) | 0;\n mid = (mid + Math.imul(al0, bh2)) | 0;\n mid = (mid + Math.imul(ah0, bl2)) | 0;\n hi = (hi + Math.imul(ah0, bh2)) | 0;\n var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;\n w2 &= 0x3ffffff;\n /* k = 3 */\n lo = Math.imul(al3, bl0);\n mid = Math.imul(al3, bh0);\n mid = (mid + Math.imul(ah3, bl0)) | 0;\n hi = Math.imul(ah3, bh0);\n lo = (lo + Math.imul(al2, bl1)) | 0;\n mid = (mid + Math.imul(al2, bh1)) | 0;\n mid = (mid + Math.imul(ah2, bl1)) | 0;\n hi = (hi + Math.imul(ah2, bh1)) | 0;\n lo = (lo + Math.imul(al1, bl2)) | 0;\n mid = (mid + Math.imul(al1, bh2)) | 0;\n mid = (mid + Math.imul(ah1, bl2)) | 0;\n hi = (hi + Math.imul(ah1, bh2)) | 0;\n lo = (lo + Math.imul(al0, bl3)) | 0;\n mid = (mid + Math.imul(al0, bh3)) | 0;\n mid = (mid + Math.imul(ah0, bl3)) | 0;\n hi = (hi + Math.imul(ah0, bh3)) | 0;\n var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;\n w3 &= 0x3ffffff;\n /* k = 4 */\n lo = Math.imul(al4, bl0);\n mid = Math.imul(al4, bh0);\n mid = (mid + Math.imul(ah4, bl0)) | 0;\n hi = Math.imul(ah4, bh0);\n lo = (lo + Math.imul(al3, bl1)) | 0;\n mid = (mid + Math.imul(al3, bh1)) | 0;\n mid = (mid + Math.imul(ah3, bl1)) | 0;\n hi = (hi + Math.imul(ah3, bh1)) | 0;\n lo = (lo + Math.imul(al2, bl2)) | 0;\n mid = (mid + Math.imul(al2, bh2)) | 0;\n mid = (mid + Math.imul(ah2, bl2)) | 0;\n hi = (hi + Math.imul(ah2, bh2)) | 0;\n lo = (lo + Math.imul(al1, bl3)) | 0;\n mid = (mid + Math.imul(al1, bh3)) | 0;\n mid = (mid + Math.imul(ah1, bl3)) | 0;\n hi = (hi + Math.imul(ah1, bh3)) | 0;\n lo = (lo + Math.imul(al0, bl4)) | 0;\n mid = (mid + Math.imul(al0, bh4)) | 0;\n mid = (mid + Math.imul(ah0, bl4)) | 0;\n hi = (hi + Math.imul(ah0, bh4)) | 0;\n var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;\n w4 &= 0x3ffffff;\n /* k = 5 */\n lo = Math.imul(al5, bl0);\n mid = Math.imul(al5, bh0);\n mid = (mid + Math.imul(ah5, bl0)) | 0;\n hi = Math.imul(ah5, bh0);\n lo = (lo + Math.imul(al4, bl1)) | 0;\n mid = (mid + Math.imul(al4, bh1)) | 0;\n mid = (mid + Math.imul(ah4, bl1)) | 0;\n hi = (hi + Math.imul(ah4, bh1)) | 0;\n lo = (lo + Math.imul(al3, bl2)) | 0;\n mid = (mid + Math.imul(al3, bh2)) | 0;\n mid = (mid + Math.imul(ah3, bl2)) | 0;\n hi = (hi + Math.imul(ah3, bh2)) | 0;\n lo = (lo + Math.imul(al2, bl3)) | 0;\n mid = (mid + Math.imul(al2, bh3)) | 0;\n mid = (mid + Math.imul(ah2, bl3)) | 0;\n hi = (hi + Math.imul(ah2, bh3)) | 0;\n lo = (lo + Math.imul(al1, bl4)) | 0;\n mid = (mid + Math.imul(al1, bh4)) | 0;\n mid = (mid + Math.imul(ah1, bl4)) | 0;\n hi = (hi + Math.imul(ah1, bh4)) | 0;\n lo = (lo + Math.imul(al0, bl5)) | 0;\n mid = (mid + Math.imul(al0, bh5)) | 0;\n mid = (mid + Math.imul(ah0, bl5)) | 0;\n hi = (hi + Math.imul(ah0, bh5)) | 0;\n var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;\n w5 &= 0x3ffffff;\n /* k = 6 */\n lo = Math.imul(al6, bl0);\n mid = Math.imul(al6, bh0);\n mid = (mid + Math.imul(ah6, bl0)) | 0;\n hi = Math.imul(ah6, bh0);\n lo = (lo + Math.imul(al5, bl1)) | 0;\n mid = (mid + Math.imul(al5, bh1)) | 0;\n mid = (mid + Math.imul(ah5, bl1)) | 0;\n hi = (hi + Math.imul(ah5, bh1)) | 0;\n lo = (lo + Math.imul(al4, bl2)) | 0;\n mid = (mid + Math.imul(al4, bh2)) | 0;\n mid = (mid + Math.imul(ah4, bl2)) | 0;\n hi = (hi + Math.imul(ah4, bh2)) | 0;\n lo = (lo + Math.imul(al3, bl3)) | 0;\n mid = (mid + Math.imul(al3, bh3)) | 0;\n mid = (mid + Math.imul(ah3, bl3)) | 0;\n hi = (hi + Math.imul(ah3, bh3)) | 0;\n lo = (lo + Math.imul(al2, bl4)) | 0;\n mid = (mid + Math.imul(al2, bh4)) | 0;\n mid = (mid + Math.imul(ah2, bl4)) | 0;\n hi = (hi + Math.imul(ah2, bh4)) | 0;\n lo = (lo + Math.imul(al1, bl5)) | 0;\n mid = (mid + Math.imul(al1, bh5)) | 0;\n mid = (mid + Math.imul(ah1, bl5)) | 0;\n hi = (hi + Math.imul(ah1, bh5)) | 0;\n lo = (lo + Math.imul(al0, bl6)) | 0;\n mid = (mid + Math.imul(al0, bh6)) | 0;\n mid = (mid + Math.imul(ah0, bl6)) | 0;\n hi = (hi + Math.imul(ah0, bh6)) | 0;\n var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;\n w6 &= 0x3ffffff;\n /* k = 7 */\n lo = Math.imul(al7, bl0);\n mid = Math.imul(al7, bh0);\n mid = (mid + Math.imul(ah7, bl0)) | 0;\n hi = Math.imul(ah7, bh0);\n lo = (lo + Math.imul(al6, bl1)) | 0;\n mid = (mid + Math.imul(al6, bh1)) | 0;\n mid = (mid + Math.imul(ah6, bl1)) | 0;\n hi = (hi + Math.imul(ah6, bh1)) | 0;\n lo = (lo + Math.imul(al5, bl2)) | 0;\n mid = (mid + Math.imul(al5, bh2)) | 0;\n mid = (mid + Math.imul(ah5, bl2)) | 0;\n hi = (hi + Math.imul(ah5, bh2)) | 0;\n lo = (lo + Math.imul(al4, bl3)) | 0;\n mid = (mid + Math.imul(al4, bh3)) | 0;\n mid = (mid + Math.imul(ah4, bl3)) | 0;\n hi = (hi + Math.imul(ah4, bh3)) | 0;\n lo = (lo + Math.imul(al3, bl4)) | 0;\n mid = (mid + Math.imul(al3, bh4)) | 0;\n mid = (mid + Math.imul(ah3, bl4)) | 0;\n hi = (hi + Math.imul(ah3, bh4)) | 0;\n lo = (lo + Math.imul(al2, bl5)) | 0;\n mid = (mid + Math.imul(al2, bh5)) | 0;\n mid = (mid + Math.imul(ah2, bl5)) | 0;\n hi = (hi + Math.imul(ah2, bh5)) | 0;\n lo = (lo + Math.imul(al1, bl6)) | 0;\n mid = (mid + Math.imul(al1, bh6)) | 0;\n mid = (mid + Math.imul(ah1, bl6)) | 0;\n hi = (hi + Math.imul(ah1, bh6)) | 0;\n lo = (lo + Math.imul(al0, bl7)) | 0;\n mid = (mid + Math.imul(al0, bh7)) | 0;\n mid = (mid + Math.imul(ah0, bl7)) | 0;\n hi = (hi + Math.imul(ah0, bh7)) | 0;\n var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;\n w7 &= 0x3ffffff;\n /* k = 8 */\n lo = Math.imul(al8, bl0);\n mid = Math.imul(al8, bh0);\n mid = (mid + Math.imul(ah8, bl0)) | 0;\n hi = Math.imul(ah8, bh0);\n lo = (lo + Math.imul(al7, bl1)) | 0;\n mid = (mid + Math.imul(al7, bh1)) | 0;\n mid = (mid + Math.imul(ah7, bl1)) | 0;\n hi = (hi + Math.imul(ah7, bh1)) | 0;\n lo = (lo + Math.imul(al6, bl2)) | 0;\n mid = (mid + Math.imul(al6, bh2)) | 0;\n mid = (mid + Math.imul(ah6, bl2)) | 0;\n hi = (hi + Math.imul(ah6, bh2)) | 0;\n lo = (lo + Math.imul(al5, bl3)) | 0;\n mid = (mid + Math.imul(al5, bh3)) | 0;\n mid = (mid + Math.imul(ah5, bl3)) | 0;\n hi = (hi + Math.imul(ah5, bh3)) | 0;\n lo = (lo + Math.imul(al4, bl4)) | 0;\n mid = (mid + Math.imul(al4, bh4)) | 0;\n mid = (mid + Math.imul(ah4, bl4)) | 0;\n hi = (hi + Math.imul(ah4, bh4)) | 0;\n lo = (lo + Math.imul(al3, bl5)) | 0;\n mid = (mid + Math.imul(al3, bh5)) | 0;\n mid = (mid + Math.imul(ah3, bl5)) | 0;\n hi = (hi + Math.imul(ah3, bh5)) | 0;\n lo = (lo + Math.imul(al2, bl6)) | 0;\n mid = (mid + Math.imul(al2, bh6)) | 0;\n mid = (mid + Math.imul(ah2, bl6)) | 0;\n hi = (hi + Math.imul(ah2, bh6)) | 0;\n lo = (lo + Math.imul(al1, bl7)) | 0;\n mid = (mid + Math.imul(al1, bh7)) | 0;\n mid = (mid + Math.imul(ah1, bl7)) | 0;\n hi = (hi + Math.imul(ah1, bh7)) | 0;\n lo = (lo + Math.imul(al0, bl8)) | 0;\n mid = (mid + Math.imul(al0, bh8)) | 0;\n mid = (mid + Math.imul(ah0, bl8)) | 0;\n hi = (hi + Math.imul(ah0, bh8)) | 0;\n var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;\n w8 &= 0x3ffffff;\n /* k = 9 */\n lo = Math.imul(al9, bl0);\n mid = Math.imul(al9, bh0);\n mid = (mid + Math.imul(ah9, bl0)) | 0;\n hi = Math.imul(ah9, bh0);\n lo = (lo + Math.imul(al8, bl1)) | 0;\n mid = (mid + Math.imul(al8, bh1)) | 0;\n mid = (mid + Math.imul(ah8, bl1)) | 0;\n hi = (hi + Math.imul(ah8, bh1)) | 0;\n lo = (lo + Math.imul(al7, bl2)) | 0;\n mid = (mid + Math.imul(al7, bh2)) | 0;\n mid = (mid + Math.imul(ah7, bl2)) | 0;\n hi = (hi + Math.imul(ah7, bh2)) | 0;\n lo = (lo + Math.imul(al6, bl3)) | 0;\n mid = (mid + Math.imul(al6, bh3)) | 0;\n mid = (mid + Math.imul(ah6, bl3)) | 0;\n hi = (hi + Math.imul(ah6, bh3)) | 0;\n lo = (lo + Math.imul(al5, bl4)) | 0;\n mid = (mid + Math.imul(al5, bh4)) | 0;\n mid = (mid + Math.imul(ah5, bl4)) | 0;\n hi = (hi + Math.imul(ah5, bh4)) | 0;\n lo = (lo + Math.imul(al4, bl5)) | 0;\n mid = (mid + Math.imul(al4, bh5)) | 0;\n mid = (mid + Math.imul(ah4, bl5)) | 0;\n hi = (hi + Math.imul(ah4, bh5)) | 0;\n lo = (lo + Math.imul(al3, bl6)) | 0;\n mid = (mid + Math.imul(al3, bh6)) | 0;\n mid = (mid + Math.imul(ah3, bl6)) | 0;\n hi = (hi + Math.imul(ah3, bh6)) | 0;\n lo = (lo + Math.imul(al2, bl7)) | 0;\n mid = (mid + Math.imul(al2, bh7)) | 0;\n mid = (mid + Math.imul(ah2, bl7)) | 0;\n hi = (hi + Math.imul(ah2, bh7)) | 0;\n lo = (lo + Math.imul(al1, bl8)) | 0;\n mid = (mid + Math.imul(al1, bh8)) | 0;\n mid = (mid + Math.imul(ah1, bl8)) | 0;\n hi = (hi + Math.imul(ah1, bh8)) | 0;\n lo = (lo + Math.imul(al0, bl9)) | 0;\n mid = (mid + Math.imul(al0, bh9)) | 0;\n mid = (mid + Math.imul(ah0, bl9)) | 0;\n hi = (hi + Math.imul(ah0, bh9)) | 0;\n var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;\n w9 &= 0x3ffffff;\n /* k = 10 */\n lo = Math.imul(al9, bl1);\n mid = Math.imul(al9, bh1);\n mid = (mid + Math.imul(ah9, bl1)) | 0;\n hi = Math.imul(ah9, bh1);\n lo = (lo + Math.imul(al8, bl2)) | 0;\n mid = (mid + Math.imul(al8, bh2)) | 0;\n mid = (mid + Math.imul(ah8, bl2)) | 0;\n hi = (hi + Math.imul(ah8, bh2)) | 0;\n lo = (lo + Math.imul(al7, bl3)) | 0;\n mid = (mid + Math.imul(al7, bh3)) | 0;\n mid = (mid + Math.imul(ah7, bl3)) | 0;\n hi = (hi + Math.imul(ah7, bh3)) | 0;\n lo = (lo + Math.imul(al6, bl4)) | 0;\n mid = (mid + Math.imul(al6, bh4)) | 0;\n mid = (mid + Math.imul(ah6, bl4)) | 0;\n hi = (hi + Math.imul(ah6, bh4)) | 0;\n lo = (lo + Math.imul(al5, bl5)) | 0;\n mid = (mid + Math.imul(al5, bh5)) | 0;\n mid = (mid + Math.imul(ah5, bl5)) | 0;\n hi = (hi + Math.imul(ah5, bh5)) | 0;\n lo = (lo + Math.imul(al4, bl6)) | 0;\n mid = (mid + Math.imul(al4, bh6)) | 0;\n mid = (mid + Math.imul(ah4, bl6)) | 0;\n hi = (hi + Math.imul(ah4, bh6)) | 0;\n lo = (lo + Math.imul(al3, bl7)) | 0;\n mid = (mid + Math.imul(al3, bh7)) | 0;\n mid = (mid + Math.imul(ah3, bl7)) | 0;\n hi = (hi + Math.imul(ah3, bh7)) | 0;\n lo = (lo + Math.imul(al2, bl8)) | 0;\n mid = (mid + Math.imul(al2, bh8)) | 0;\n mid = (mid + Math.imul(ah2, bl8)) | 0;\n hi = (hi + Math.imul(ah2, bh8)) | 0;\n lo = (lo + Math.imul(al1, bl9)) | 0;\n mid = (mid + Math.imul(al1, bh9)) | 0;\n mid = (mid + Math.imul(ah1, bl9)) | 0;\n hi = (hi + Math.imul(ah1, bh9)) | 0;\n var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;\n w10 &= 0x3ffffff;\n /* k = 11 */\n lo = Math.imul(al9, bl2);\n mid = Math.imul(al9, bh2);\n mid = (mid + Math.imul(ah9, bl2)) | 0;\n hi = Math.imul(ah9, bh2);\n lo = (lo + Math.imul(al8, bl3)) | 0;\n mid = (mid + Math.imul(al8, bh3)) | 0;\n mid = (mid + Math.imul(ah8, bl3)) | 0;\n hi = (hi + Math.imul(ah8, bh3)) | 0;\n lo = (lo + Math.imul(al7, bl4)) | 0;\n mid = (mid + Math.imul(al7, bh4)) | 0;\n mid = (mid + Math.imul(ah7, bl4)) | 0;\n hi = (hi + Math.imul(ah7, bh4)) | 0;\n lo = (lo + Math.imul(al6, bl5)) | 0;\n mid = (mid + Math.imul(al6, bh5)) | 0;\n mid = (mid + Math.imul(ah6, bl5)) | 0;\n hi = (hi + Math.imul(ah6, bh5)) | 0;\n lo = (lo + Math.imul(al5, bl6)) | 0;\n mid = (mid + Math.imul(al5, bh6)) | 0;\n mid = (mid + Math.imul(ah5, bl6)) | 0;\n hi = (hi + Math.imul(ah5, bh6)) | 0;\n lo = (lo + Math.imul(al4, bl7)) | 0;\n mid = (mid + Math.imul(al4, bh7)) | 0;\n mid = (mid + Math.imul(ah4, bl7)) | 0;\n hi = (hi + Math.imul(ah4, bh7)) | 0;\n lo = (lo + Math.imul(al3, bl8)) | 0;\n mid = (mid + Math.imul(al3, bh8)) | 0;\n mid = (mid + Math.imul(ah3, bl8)) | 0;\n hi = (hi + Math.imul(ah3, bh8)) | 0;\n lo = (lo + Math.imul(al2, bl9)) | 0;\n mid = (mid + Math.imul(al2, bh9)) | 0;\n mid = (mid + Math.imul(ah2, bl9)) | 0;\n hi = (hi + Math.imul(ah2, bh9)) | 0;\n var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;\n w11 &= 0x3ffffff;\n /* k = 12 */\n lo = Math.imul(al9, bl3);\n mid = Math.imul(al9, bh3);\n mid = (mid + Math.imul(ah9, bl3)) | 0;\n hi = Math.imul(ah9, bh3);\n lo = (lo + Math.imul(al8, bl4)) | 0;\n mid = (mid + Math.imul(al8, bh4)) | 0;\n mid = (mid + Math.imul(ah8, bl4)) | 0;\n hi = (hi + Math.imul(ah8, bh4)) | 0;\n lo = (lo + Math.imul(al7, bl5)) | 0;\n mid = (mid + Math.imul(al7, bh5)) | 0;\n mid = (mid + Math.imul(ah7, bl5)) | 0;\n hi = (hi + Math.imul(ah7, bh5)) | 0;\n lo = (lo + Math.imul(al6, bl6)) | 0;\n mid = (mid + Math.imul(al6, bh6)) | 0;\n mid = (mid + Math.imul(ah6, bl6)) | 0;\n hi = (hi + Math.imul(ah6, bh6)) | 0;\n lo = (lo + Math.imul(al5, bl7)) | 0;\n mid = (mid + Math.imul(al5, bh7)) | 0;\n mid = (mid + Math.imul(ah5, bl7)) | 0;\n hi = (hi + Math.imul(ah5, bh7)) | 0;\n lo = (lo + Math.imul(al4, bl8)) | 0;\n mid = (mid + Math.imul(al4, bh8)) | 0;\n mid = (mid + Math.imul(ah4, bl8)) | 0;\n hi = (hi + Math.imul(ah4, bh8)) | 0;\n lo = (lo + Math.imul(al3, bl9)) | 0;\n mid = (mid + Math.imul(al3, bh9)) | 0;\n mid = (mid + Math.imul(ah3, bl9)) | 0;\n hi = (hi + Math.imul(ah3, bh9)) | 0;\n var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;\n w12 &= 0x3ffffff;\n /* k = 13 */\n lo = Math.imul(al9, bl4);\n mid = Math.imul(al9, bh4);\n mid = (mid + Math.imul(ah9, bl4)) | 0;\n hi = Math.imul(ah9, bh4);\n lo = (lo + Math.imul(al8, bl5)) | 0;\n mid = (mid + Math.imul(al8, bh5)) | 0;\n mid = (mid + Math.imul(ah8, bl5)) | 0;\n hi = (hi + Math.imul(ah8, bh5)) | 0;\n lo = (lo + Math.imul(al7, bl6)) | 0;\n mid = (mid + Math.imul(al7, bh6)) | 0;\n mid = (mid + Math.imul(ah7, bl6)) | 0;\n hi = (hi + Math.imul(ah7, bh6)) | 0;\n lo = (lo + Math.imul(al6, bl7)) | 0;\n mid = (mid + Math.imul(al6, bh7)) | 0;\n mid = (mid + Math.imul(ah6, bl7)) | 0;\n hi = (hi + Math.imul(ah6, bh7)) | 0;\n lo = (lo + Math.imul(al5, bl8)) | 0;\n mid = (mid + Math.imul(al5, bh8)) | 0;\n mid = (mid + Math.imul(ah5, bl8)) | 0;\n hi = (hi + Math.imul(ah5, bh8)) | 0;\n lo = (lo + Math.imul(al4, bl9)) | 0;\n mid = (mid + Math.imul(al4, bh9)) | 0;\n mid = (mid + Math.imul(ah4, bl9)) | 0;\n hi = (hi + Math.imul(ah4, bh9)) | 0;\n var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;\n w13 &= 0x3ffffff;\n /* k = 14 */\n lo = Math.imul(al9, bl5);\n mid = Math.imul(al9, bh5);\n mid = (mid + Math.imul(ah9, bl5)) | 0;\n hi = Math.imul(ah9, bh5);\n lo = (lo + Math.imul(al8, bl6)) | 0;\n mid = (mid + Math.imul(al8, bh6)) | 0;\n mid = (mid + Math.imul(ah8, bl6)) | 0;\n hi = (hi + Math.imul(ah8, bh6)) | 0;\n lo = (lo + Math.imul(al7, bl7)) | 0;\n mid = (mid + Math.imul(al7, bh7)) | 0;\n mid = (mid + Math.imul(ah7, bl7)) | 0;\n hi = (hi + Math.imul(ah7, bh7)) | 0;\n lo = (lo + Math.imul(al6, bl8)) | 0;\n mid = (mid + Math.imul(al6, bh8)) | 0;\n mid = (mid + Math.imul(ah6, bl8)) | 0;\n hi = (hi + Math.imul(ah6, bh8)) | 0;\n lo = (lo + Math.imul(al5, bl9)) | 0;\n mid = (mid + Math.imul(al5, bh9)) | 0;\n mid = (mid + Math.imul(ah5, bl9)) | 0;\n hi = (hi + Math.imul(ah5, bh9)) | 0;\n var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;\n w14 &= 0x3ffffff;\n /* k = 15 */\n lo = Math.imul(al9, bl6);\n mid = Math.imul(al9, bh6);\n mid = (mid + Math.imul(ah9, bl6)) | 0;\n hi = Math.imul(ah9, bh6);\n lo = (lo + Math.imul(al8, bl7)) | 0;\n mid = (mid + Math.imul(al8, bh7)) | 0;\n mid = (mid + Math.imul(ah8, bl7)) | 0;\n hi = (hi + Math.imul(ah8, bh7)) | 0;\n lo = (lo + Math.imul(al7, bl8)) | 0;\n mid = (mid + Math.imul(al7, bh8)) | 0;\n mid = (mid + Math.imul(ah7, bl8)) | 0;\n hi = (hi + Math.imul(ah7, bh8)) | 0;\n lo = (lo + Math.imul(al6, bl9)) | 0;\n mid = (mid + Math.imul(al6, bh9)) | 0;\n mid = (mid + Math.imul(ah6, bl9)) | 0;\n hi = (hi + Math.imul(ah6, bh9)) | 0;\n var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;\n w15 &= 0x3ffffff;\n /* k = 16 */\n lo = Math.imul(al9, bl7);\n mid = Math.imul(al9, bh7);\n mid = (mid + Math.imul(ah9, bl7)) | 0;\n hi = Math.imul(ah9, bh7);\n lo = (lo + Math.imul(al8, bl8)) | 0;\n mid = (mid + Math.imul(al8, bh8)) | 0;\n mid = (mid + Math.imul(ah8, bl8)) | 0;\n hi = (hi + Math.imul(ah8, bh8)) | 0;\n lo = (lo + Math.imul(al7, bl9)) | 0;\n mid = (mid + Math.imul(al7, bh9)) | 0;\n mid = (mid + Math.imul(ah7, bl9)) | 0;\n hi = (hi + Math.imul(ah7, bh9)) | 0;\n var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;\n w16 &= 0x3ffffff;\n /* k = 17 */\n lo = Math.imul(al9, bl8);\n mid = Math.imul(al9, bh8);\n mid = (mid + Math.imul(ah9, bl8)) | 0;\n hi = Math.imul(ah9, bh8);\n lo = (lo + Math.imul(al8, bl9)) | 0;\n mid = (mid + Math.imul(al8, bh9)) | 0;\n mid = (mid + Math.imul(ah8, bl9)) | 0;\n hi = (hi + Math.imul(ah8, bh9)) | 0;\n var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;\n w17 &= 0x3ffffff;\n /* k = 18 */\n lo = Math.imul(al9, bl9);\n mid = Math.imul(al9, bh9);\n mid = (mid + Math.imul(ah9, bl9)) | 0;\n hi = Math.imul(ah9, bh9);\n var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;\n w18 &= 0x3ffffff;\n o[0] = w0;\n o[1] = w1;\n o[2] = w2;\n o[3] = w3;\n o[4] = w4;\n o[5] = w5;\n o[6] = w6;\n o[7] = w7;\n o[8] = w8;\n o[9] = w9;\n o[10] = w10;\n o[11] = w11;\n o[12] = w12;\n o[13] = w13;\n o[14] = w14;\n o[15] = w15;\n o[16] = w16;\n o[17] = w17;\n o[18] = w18;\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n return out;\n };\n\n // Polyfill comb\n if (!Math.imul) {\n comb10MulTo = smallMulTo;\n }\n\n function bigMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n out.length = self.length + num.length;\n\n var carry = 0;\n var hncarry = 0;\n for (var k = 0; k < out.length - 1; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = hncarry;\n hncarry = 0;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j;\n var a = self.words[i] | 0;\n var b = num.words[j] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;\n lo = (lo + rword) | 0;\n rword = lo & 0x3ffffff;\n ncarry = (ncarry + (lo >>> 26)) | 0;\n\n hncarry += ncarry >>> 26;\n ncarry &= 0x3ffffff;\n }\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\n if (carry !== 0) {\n out.words[k] = carry;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n function jumboMulTo (self, num, out) {\n var fftm = new FFTM();\n return fftm.mulp(self, num, out);\n }\n\n BN.prototype.mulTo = function mulTo (num, out) {\n var res;\n var len = this.length + num.length;\n if (this.length === 10 && num.length === 10) {\n res = comb10MulTo(this, num, out);\n } else if (len < 63) {\n res = smallMulTo(this, num, out);\n } else if (len < 1024) {\n res = bigMulTo(this, num, out);\n } else {\n res = jumboMulTo(this, num, out);\n }\n\n return res;\n };\n\n // Cooley-Tukey algorithm for FFT\n // slightly revisited to rely on looping instead of recursion\n\n function FFTM (x, y) {\n this.x = x;\n this.y = y;\n }\n\n FFTM.prototype.makeRBT = function makeRBT (N) {\n var t = new Array(N);\n var l = BN.prototype._countBits(N) - 1;\n for (var i = 0; i < N; i++) {\n t[i] = this.revBin(i, l, N);\n }\n\n return t;\n };\n\n // Returns binary-reversed representation of `x`\n FFTM.prototype.revBin = function revBin (x, l, N) {\n if (x === 0 || x === N - 1) return x;\n\n var rb = 0;\n for (var i = 0; i < l; i++) {\n rb |= (x & 1) << (l - i - 1);\n x >>= 1;\n }\n\n return rb;\n };\n\n // Performs \"tweedling\" phase, therefore 'emulating'\n // behaviour of the recursive algorithm\n FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {\n for (var i = 0; i < N; i++) {\n rtws[i] = rws[rbt[i]];\n itws[i] = iws[rbt[i]];\n }\n };\n\n FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {\n this.permute(rbt, rws, iws, rtws, itws, N);\n\n for (var s = 1; s < N; s <<= 1) {\n var l = s << 1;\n\n var rtwdf = Math.cos(2 * Math.PI / l);\n var itwdf = Math.sin(2 * Math.PI / l);\n\n for (var p = 0; p < N; p += l) {\n var rtwdf_ = rtwdf;\n var itwdf_ = itwdf;\n\n for (var j = 0; j < s; j++) {\n var re = rtws[p + j];\n var ie = itws[p + j];\n\n var ro = rtws[p + j + s];\n var io = itws[p + j + s];\n\n var rx = rtwdf_ * ro - itwdf_ * io;\n\n io = rtwdf_ * io + itwdf_ * ro;\n ro = rx;\n\n rtws[p + j] = re + ro;\n itws[p + j] = ie + io;\n\n rtws[p + j + s] = re - ro;\n itws[p + j + s] = ie - io;\n\n /* jshint maxdepth : false */\n if (j !== l) {\n rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n\n itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n rtwdf_ = rx;\n }\n }\n }\n }\n };\n\n FFTM.prototype.guessLen13b = function guessLen13b (n, m) {\n var N = Math.max(m, n) | 1;\n var odd = N & 1;\n var i = 0;\n for (N = N / 2 | 0; N; N = N >>> 1) {\n i++;\n }\n\n return 1 << i + 1 + odd;\n };\n\n FFTM.prototype.conjugate = function conjugate (rws, iws, N) {\n if (N <= 1) return;\n\n for (var i = 0; i < N / 2; i++) {\n var t = rws[i];\n\n rws[i] = rws[N - i - 1];\n rws[N - i - 1] = t;\n\n t = iws[i];\n\n iws[i] = -iws[N - i - 1];\n iws[N - i - 1] = -t;\n }\n };\n\n FFTM.prototype.normalize13b = function normalize13b (ws, N) {\n var carry = 0;\n for (var i = 0; i < N / 2; i++) {\n var w = Math.round(ws[2 * i + 1] / N) * 0x2000 +\n Math.round(ws[2 * i] / N) +\n carry;\n\n ws[i] = w & 0x3ffffff;\n\n if (w < 0x4000000) {\n carry = 0;\n } else {\n carry = w / 0x4000000 | 0;\n }\n }\n\n return ws;\n };\n\n FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {\n var carry = 0;\n for (var i = 0; i < len; i++) {\n carry = carry + (ws[i] | 0);\n\n rws[2 * i] = carry & 0x1fff; carry = carry >>> 13;\n rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13;\n }\n\n // Pad with zeroes\n for (i = 2 * len; i < N; ++i) {\n rws[i] = 0;\n }\n\n assert(carry === 0);\n assert((carry & ~0x1fff) === 0);\n };\n\n FFTM.prototype.stub = function stub (N) {\n var ph = new Array(N);\n for (var i = 0; i < N; i++) {\n ph[i] = 0;\n }\n\n return ph;\n };\n\n FFTM.prototype.mulp = function mulp (x, y, out) {\n var N = 2 * this.guessLen13b(x.length, y.length);\n\n var rbt = this.makeRBT(N);\n\n var _ = this.stub(N);\n\n var rws = new Array(N);\n var rwst = new Array(N);\n var iwst = new Array(N);\n\n var nrws = new Array(N);\n var nrwst = new Array(N);\n var niwst = new Array(N);\n\n var rmws = out.words;\n rmws.length = N;\n\n this.convert13b(x.words, x.length, rws, N);\n this.convert13b(y.words, y.length, nrws, N);\n\n this.transform(rws, _, rwst, iwst, N, rbt);\n this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n for (var i = 0; i < N; i++) {\n var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n rwst[i] = rx;\n }\n\n this.conjugate(rwst, iwst, N);\n this.transform(rwst, iwst, rmws, _, N, rbt);\n this.conjugate(rmws, _, N);\n this.normalize13b(rmws, N);\n\n out.negative = x.negative ^ y.negative;\n out.length = x.length + y.length;\n return out.strip();\n };\n\n // Multiply `this` by `num`\n BN.prototype.mul = function mul (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return this.mulTo(num, out);\n };\n\n // Multiply employing FFT\n BN.prototype.mulf = function mulf (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return jumboMulTo(this, num, out);\n };\n\n // In-place Multiplication\n BN.prototype.imul = function imul (num) {\n return this.clone().mulTo(num, this);\n };\n\n BN.prototype.imuln = function imuln (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n\n // Carry\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = (this.words[i] | 0) * num;\n var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n carry >>= 26;\n carry += (w / 0x4000000) | 0;\n // NOTE: lo is 27bit maximum\n carry += lo >>> 26;\n this.words[i] = lo & 0x3ffffff;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n\n return this;\n };\n\n BN.prototype.muln = function muln (num) {\n return this.clone().imuln(num);\n };\n\n // `this` * `this`\n BN.prototype.sqr = function sqr () {\n return this.mul(this);\n };\n\n // `this` * `this` in-place\n BN.prototype.isqr = function isqr () {\n return this.imul(this.clone());\n };\n\n // Math.pow(`this`, `num`)\n BN.prototype.pow = function pow (num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1);\n\n // Skip leading zeroes\n var res = this;\n for (var i = 0; i < w.length; i++, res = res.sqr()) {\n if (w[i] !== 0) break;\n }\n\n if (++i < w.length) {\n for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n if (w[i] === 0) continue;\n\n res = res.mul(q);\n }\n }\n\n return res;\n };\n\n // Shift-left in-place\n BN.prototype.iushln = function iushln (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);\n var i;\n\n if (r !== 0) {\n var carry = 0;\n\n for (i = 0; i < this.length; i++) {\n var newCarry = this.words[i] & carryMask;\n var c = ((this.words[i] | 0) - newCarry) << r;\n this.words[i] = c | carry;\n carry = newCarry >>> (26 - r);\n }\n\n if (carry) {\n this.words[i] = carry;\n this.length++;\n }\n }\n\n if (s !== 0) {\n for (i = this.length - 1; i >= 0; i--) {\n this.words[i + s] = this.words[i];\n }\n\n for (i = 0; i < s; i++) {\n this.words[i] = 0;\n }\n\n this.length += s;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishln = function ishln (bits) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushln(bits);\n };\n\n // Shift-right in-place\n // NOTE: `hint` is a lowest bit before trailing zeroes\n // NOTE: if `extended` is present - it will be filled with destroyed bits\n BN.prototype.iushrn = function iushrn (bits, hint, extended) {\n assert(typeof bits === 'number' && bits >= 0);\n var h;\n if (hint) {\n h = (hint - (hint % 26)) / 26;\n } else {\n h = 0;\n }\n\n var r = bits % 26;\n var s = Math.min((bits - r) / 26, this.length);\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n var maskedWords = extended;\n\n h -= s;\n h = Math.max(0, h);\n\n // Extended mode, copy masked part\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n maskedWords.length = s;\n }\n\n if (s === 0) {\n // No-op, we should not move anything at all\n } else if (this.length > s) {\n this.length -= s;\n for (i = 0; i < this.length; i++) {\n this.words[i] = this.words[i + s];\n }\n } else {\n this.words[0] = 0;\n this.length = 1;\n }\n\n var carry = 0;\n for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n var word = this.words[i] | 0;\n this.words[i] = (carry << (26 - r)) | (word >>> r);\n carry = word & mask;\n }\n\n // Push carried bits as a mask\n if (maskedWords && carry !== 0) {\n maskedWords.words[maskedWords.length++] = carry;\n }\n\n if (this.length === 0) {\n this.words[0] = 0;\n this.length = 1;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishrn = function ishrn (bits, hint, extended) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushrn(bits, hint, extended);\n };\n\n // Shift-left\n BN.prototype.shln = function shln (bits) {\n return this.clone().ishln(bits);\n };\n\n BN.prototype.ushln = function ushln (bits) {\n return this.clone().iushln(bits);\n };\n\n // Shift-right\n BN.prototype.shrn = function shrn (bits) {\n return this.clone().ishrn(bits);\n };\n\n BN.prototype.ushrn = function ushrn (bits) {\n return this.clone().iushrn(bits);\n };\n\n // Test if n bit is set\n BN.prototype.testn = function testn (bit) {\n assert(typeof bit === 'number' && bit >= 0);\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) return false;\n\n // Check bit and return\n var w = this.words[s];\n\n return !!(w & q);\n };\n\n // Return only lowers bits of number (in-place)\n BN.prototype.imaskn = function imaskn (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n\n assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n if (this.length <= s) {\n return this;\n }\n\n if (r !== 0) {\n s++;\n }\n this.length = Math.min(s, this.length);\n\n if (r !== 0) {\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n this.words[this.length - 1] &= mask;\n }\n\n return this.strip();\n };\n\n // Return only lowers bits of number\n BN.prototype.maskn = function maskn (bits) {\n return this.clone().imaskn(bits);\n };\n\n // Add plain number `num` to `this`\n BN.prototype.iaddn = function iaddn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.isubn(-num);\n\n // Possible sign change\n if (this.negative !== 0) {\n if (this.length === 1 && (this.words[0] | 0) < num) {\n this.words[0] = num - (this.words[0] | 0);\n this.negative = 0;\n return this;\n }\n\n this.negative = 0;\n this.isubn(num);\n this.negative = 1;\n return this;\n }\n\n // Add without checks\n return this._iaddn(num);\n };\n\n BN.prototype._iaddn = function _iaddn (num) {\n this.words[0] += num;\n\n // Carry\n for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n this.words[i] -= 0x4000000;\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n this.length = Math.max(this.length, i + 1);\n\n return this;\n };\n\n // Subtract plain number `num` from `this`\n BN.prototype.isubn = function isubn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.iaddn(-num);\n\n if (this.negative !== 0) {\n this.negative = 0;\n this.iaddn(num);\n this.negative = 1;\n return this;\n }\n\n this.words[0] -= num;\n\n if (this.length === 1 && this.words[0] < 0) {\n this.words[0] = -this.words[0];\n this.negative = 1;\n } else {\n // Carry\n for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n this.words[i] += 0x4000000;\n this.words[i + 1] -= 1;\n }\n }\n\n return this.strip();\n };\n\n BN.prototype.addn = function addn (num) {\n return this.clone().iaddn(num);\n };\n\n BN.prototype.subn = function subn (num) {\n return this.clone().isubn(num);\n };\n\n BN.prototype.iabs = function iabs () {\n this.negative = 0;\n\n return this;\n };\n\n BN.prototype.abs = function abs () {\n return this.clone().iabs();\n };\n\n BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {\n var len = num.length + shift;\n var i;\n\n this._expand(len);\n\n var w;\n var carry = 0;\n for (i = 0; i < num.length; i++) {\n w = (this.words[i + shift] | 0) + carry;\n var right = (num.words[i] | 0) * mul;\n w -= right & 0x3ffffff;\n carry = (w >> 26) - ((right / 0x4000000) | 0);\n this.words[i + shift] = w & 0x3ffffff;\n }\n for (; i < this.length - shift; i++) {\n w = (this.words[i + shift] | 0) + carry;\n carry = w >> 26;\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n if (carry === 0) return this.strip();\n\n // Subtraction overflow\n assert(carry === -1);\n carry = 0;\n for (i = 0; i < this.length; i++) {\n w = -(this.words[i] | 0) + carry;\n carry = w >> 26;\n this.words[i] = w & 0x3ffffff;\n }\n this.negative = 1;\n\n return this.strip();\n };\n\n BN.prototype._wordDiv = function _wordDiv (num, mode) {\n var shift = this.length - num.length;\n\n var a = this.clone();\n var b = num;\n\n // Normalize\n var bhi = b.words[b.length - 1] | 0;\n var bhiBits = this._countBits(bhi);\n shift = 26 - bhiBits;\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n }\n\n // Initialize quotient\n var m = a.length - b.length;\n var q;\n\n if (mode !== 'mod') {\n q = new BN(null);\n q.length = m + 1;\n q.words = new Array(q.length);\n for (var i = 0; i < q.length; i++) {\n q.words[i] = 0;\n }\n }\n\n var diff = a.clone()._ishlnsubmul(b, 1, m);\n if (diff.negative === 0) {\n a = diff;\n if (q) {\n q.words[m] = 1;\n }\n }\n\n for (var j = m - 1; j >= 0; j--) {\n var qj = (a.words[b.length + j] | 0) * 0x4000000 +\n (a.words[b.length + j - 1] | 0);\n\n // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n // (0x7ffffff)\n qj = Math.min((qj / bhi) | 0, 0x3ffffff);\n\n a._ishlnsubmul(b, qj, j);\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n a._ishlnsubmul(b, 1, j);\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n if (q) {\n q.words[j] = qj;\n }\n }\n if (q) {\n q.strip();\n }\n a.strip();\n\n // Denormalize\n if (mode !== 'div' && shift !== 0) {\n a.iushrn(shift);\n }\n\n return {\n div: q || null,\n mod: a\n };\n };\n\n // NOTE: 1) `mode` can be set to `mod` to request mod only,\n // to `div` to request div only, or be absent to\n // request both div & mod\n // 2) `positive` is true if unsigned mod is requested\n BN.prototype.divmod = function divmod (num, mode, positive) {\n assert(!num.isZero());\n\n if (this.isZero()) {\n return {\n div: new BN(0),\n mod: new BN(0)\n };\n }\n\n var div, mod, res;\n if (this.negative !== 0 && num.negative === 0) {\n res = this.neg().divmod(num, mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.iadd(num);\n }\n }\n\n return {\n div: div,\n mod: mod\n };\n }\n\n if (this.negative === 0 && num.negative !== 0) {\n res = this.divmod(num.neg(), mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n return {\n div: div,\n mod: res.mod\n };\n }\n\n if ((this.negative & num.negative) !== 0) {\n res = this.neg().divmod(num.neg(), mode);\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n\n return {\n div: res.div,\n mod: mod\n };\n }\n\n // Both numbers are positive at this point\n\n // Strip both numbers to approximate shift value\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n }\n\n // Very short reduction\n if (num.length === 1) {\n if (mode === 'div') {\n return {\n div: this.divn(num.words[0]),\n mod: null\n };\n }\n\n if (mode === 'mod') {\n return {\n div: null,\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return this._wordDiv(num, mode);\n };\n\n // Find `this` / `num`\n BN.prototype.div = function div (num) {\n return this.divmod(num, 'div', false).div;\n };\n\n // Find `this` % `num`\n BN.prototype.mod = function mod (num) {\n return this.divmod(num, 'mod', false).mod;\n };\n\n BN.prototype.umod = function umod (num) {\n return this.divmod(num, 'mod', true).mod;\n };\n\n // Find Round(`this` / `num`)\n BN.prototype.divRound = function divRound (num) {\n var dm = this.divmod(num);\n\n // Fast case - exact division\n if (dm.mod.isZero()) return dm.div;\n\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half);\n\n // Round down\n if (cmp < 0 || r2 === 1 && cmp === 0) return dm.div;\n\n // Round up\n return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n };\n\n BN.prototype.modn = function modn (num) {\n assert(num <= 0x3ffffff);\n var p = (1 << 26) % num;\n\n var acc = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n acc = (p * acc + (this.words[i] | 0)) % num;\n }\n\n return acc;\n };\n\n // In-place division by number\n BN.prototype.idivn = function idivn (num) {\n assert(num <= 0x3ffffff);\n\n var carry = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var w = (this.words[i] | 0) + carry * 0x4000000;\n this.words[i] = (w / num) | 0;\n carry = w % num;\n }\n\n return this.strip();\n };\n\n BN.prototype.divn = function divn (num) {\n return this.clone().idivn(num);\n };\n\n BN.prototype.egcd = function egcd (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var x = this;\n var y = p.clone();\n\n if (x.negative !== 0) {\n x = x.umod(p);\n } else {\n x = x.clone();\n }\n\n // A * x + B * y = x\n var A = new BN(1);\n var B = new BN(0);\n\n // C * x + D * y = y\n var C = new BN(0);\n var D = new BN(1);\n\n var g = 0;\n\n while (x.isEven() && y.isEven()) {\n x.iushrn(1);\n y.iushrn(1);\n ++g;\n }\n\n var yp = y.clone();\n var xp = x.clone();\n\n while (!x.isZero()) {\n for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n x.iushrn(i);\n while (i-- > 0) {\n if (A.isOdd() || B.isOdd()) {\n A.iadd(yp);\n B.isub(xp);\n }\n\n A.iushrn(1);\n B.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n y.iushrn(j);\n while (j-- > 0) {\n if (C.isOdd() || D.isOdd()) {\n C.iadd(yp);\n D.isub(xp);\n }\n\n C.iushrn(1);\n D.iushrn(1);\n }\n }\n\n if (x.cmp(y) >= 0) {\n x.isub(y);\n A.isub(C);\n B.isub(D);\n } else {\n y.isub(x);\n C.isub(A);\n D.isub(B);\n }\n }\n\n return {\n a: C,\n b: D,\n gcd: y.iushln(g)\n };\n };\n\n // This is reduced incarnation of the binary EEA\n // above, designated to invert members of the\n // _prime_ fields F(p) at a maximal speed\n BN.prototype._invmp = function _invmp (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var a = this;\n var b = p.clone();\n\n if (a.negative !== 0) {\n a = a.umod(p);\n } else {\n a = a.clone();\n }\n\n var x1 = new BN(1);\n var x2 = new BN(0);\n\n var delta = b.clone();\n\n while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n a.iushrn(i);\n while (i-- > 0) {\n if (x1.isOdd()) {\n x1.iadd(delta);\n }\n\n x1.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n b.iushrn(j);\n while (j-- > 0) {\n if (x2.isOdd()) {\n x2.iadd(delta);\n }\n\n x2.iushrn(1);\n }\n }\n\n if (a.cmp(b) >= 0) {\n a.isub(b);\n x1.isub(x2);\n } else {\n b.isub(a);\n x2.isub(x1);\n }\n }\n\n var res;\n if (a.cmpn(1) === 0) {\n res = x1;\n } else {\n res = x2;\n }\n\n if (res.cmpn(0) < 0) {\n res.iadd(p);\n }\n\n return res;\n };\n\n BN.prototype.gcd = function gcd (num) {\n if (this.isZero()) return num.abs();\n if (num.isZero()) return this.abs();\n\n var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0;\n\n // Remove common factor of two\n for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n a.iushrn(1);\n b.iushrn(1);\n }\n\n do {\n while (a.isEven()) {\n a.iushrn(1);\n }\n while (b.isEven()) {\n b.iushrn(1);\n }\n\n var r = a.cmp(b);\n if (r < 0) {\n // Swap `a` and `b` to make `a` always bigger than `b`\n var t = a;\n a = b;\n b = t;\n } else if (r === 0 || b.cmpn(1) === 0) {\n break;\n }\n\n a.isub(b);\n } while (true);\n\n return b.iushln(shift);\n };\n\n // Invert number in the field F(num)\n BN.prototype.invm = function invm (num) {\n return this.egcd(num).a.umod(num);\n };\n\n BN.prototype.isEven = function isEven () {\n return (this.words[0] & 1) === 0;\n };\n\n BN.prototype.isOdd = function isOdd () {\n return (this.words[0] & 1) === 1;\n };\n\n // And first word and num\n BN.prototype.andln = function andln (num) {\n return this.words[0] & num;\n };\n\n // Increment at the bit position in-line\n BN.prototype.bincn = function bincn (bit) {\n assert(typeof bit === 'number');\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) {\n this._expand(s + 1);\n this.words[s] |= q;\n return this;\n }\n\n // Add bit and propagate, if needed\n var carry = q;\n for (var i = s; carry !== 0 && i < this.length; i++) {\n var w = this.words[i] | 0;\n w += carry;\n carry = w >>> 26;\n w &= 0x3ffffff;\n this.words[i] = w;\n }\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n return this;\n };\n\n BN.prototype.isZero = function isZero () {\n return this.length === 1 && this.words[0] === 0;\n };\n\n BN.prototype.cmpn = function cmpn (num) {\n var negative = num < 0;\n\n if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n\n this.strip();\n\n var res;\n if (this.length > 1) {\n res = 1;\n } else {\n if (negative) {\n num = -num;\n }\n\n assert(num <= 0x3ffffff, 'Number is too big');\n\n var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Compare two numbers and return:\n // 1 - if `this` > `num`\n // 0 - if `this` == `num`\n // -1 - if `this` < `num`\n BN.prototype.cmp = function cmp (num) {\n if (this.negative !== 0 && num.negative === 0) return -1;\n if (this.negative === 0 && num.negative !== 0) return 1;\n\n var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Unsigned comparison\n BN.prototype.ucmp = function ucmp (num) {\n // At this point both numbers have the same sign\n if (this.length > num.length) return 1;\n if (this.length < num.length) return -1;\n\n var res = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var a = this.words[i] | 0;\n var b = num.words[i] | 0;\n\n if (a === b) continue;\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n break;\n }\n return res;\n };\n\n BN.prototype.gtn = function gtn (num) {\n return this.cmpn(num) === 1;\n };\n\n BN.prototype.gt = function gt (num) {\n return this.cmp(num) === 1;\n };\n\n BN.prototype.gten = function gten (num) {\n return this.cmpn(num) >= 0;\n };\n\n BN.prototype.gte = function gte (num) {\n return this.cmp(num) >= 0;\n };\n\n BN.prototype.ltn = function ltn (num) {\n return this.cmpn(num) === -1;\n };\n\n BN.prototype.lt = function lt (num) {\n return this.cmp(num) === -1;\n };\n\n BN.prototype.lten = function lten (num) {\n return this.cmpn(num) <= 0;\n };\n\n BN.prototype.lte = function lte (num) {\n return this.cmp(num) <= 0;\n };\n\n BN.prototype.eqn = function eqn (num) {\n return this.cmpn(num) === 0;\n };\n\n BN.prototype.eq = function eq (num) {\n return this.cmp(num) === 0;\n };\n\n //\n // A reduce context, could be using montgomery or something better, depending\n // on the `m` itself.\n //\n BN.red = function red (num) {\n return new Red(num);\n };\n\n BN.prototype.toRed = function toRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n assert(this.negative === 0, 'red works only with positives');\n return ctx.convertTo(this)._forceRed(ctx);\n };\n\n BN.prototype.fromRed = function fromRed () {\n assert(this.red, 'fromRed works only with numbers in reduction context');\n return this.red.convertFrom(this);\n };\n\n BN.prototype._forceRed = function _forceRed (ctx) {\n this.red = ctx;\n return this;\n };\n\n BN.prototype.forceRed = function forceRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n return this._forceRed(ctx);\n };\n\n BN.prototype.redAdd = function redAdd (num) {\n assert(this.red, 'redAdd works only with red numbers');\n return this.red.add(this, num);\n };\n\n BN.prototype.redIAdd = function redIAdd (num) {\n assert(this.red, 'redIAdd works only with red numbers');\n return this.red.iadd(this, num);\n };\n\n BN.prototype.redSub = function redSub (num) {\n assert(this.red, 'redSub works only with red numbers');\n return this.red.sub(this, num);\n };\n\n BN.prototype.redISub = function redISub (num) {\n assert(this.red, 'redISub works only with red numbers');\n return this.red.isub(this, num);\n };\n\n BN.prototype.redShl = function redShl (num) {\n assert(this.red, 'redShl works only with red numbers');\n return this.red.shl(this, num);\n };\n\n BN.prototype.redMul = function redMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.mul(this, num);\n };\n\n BN.prototype.redIMul = function redIMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.imul(this, num);\n };\n\n BN.prototype.redSqr = function redSqr () {\n assert(this.red, 'redSqr works only with red numbers');\n this.red._verify1(this);\n return this.red.sqr(this);\n };\n\n BN.prototype.redISqr = function redISqr () {\n assert(this.red, 'redISqr works only with red numbers');\n this.red._verify1(this);\n return this.red.isqr(this);\n };\n\n // Square root over p\n BN.prototype.redSqrt = function redSqrt () {\n assert(this.red, 'redSqrt works only with red numbers');\n this.red._verify1(this);\n return this.red.sqrt(this);\n };\n\n BN.prototype.redInvm = function redInvm () {\n assert(this.red, 'redInvm works only with red numbers');\n this.red._verify1(this);\n return this.red.invm(this);\n };\n\n // Return negative clone of `this` % `red modulo`\n BN.prototype.redNeg = function redNeg () {\n assert(this.red, 'redNeg works only with red numbers');\n this.red._verify1(this);\n return this.red.neg(this);\n };\n\n BN.prototype.redPow = function redPow (num) {\n assert(this.red && !num.red, 'redPow(normalNum)');\n this.red._verify1(this);\n return this.red.pow(this, num);\n };\n\n // Prime numbers with efficient reduction\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n };\n\n // Pseudo-Mersenne prime\n function MPrime (name, p) {\n // P = 2 ^ N - K\n this.name = name;\n this.p = new BN(p, 16);\n this.n = this.p.bitLength();\n this.k = new BN(1).iushln(this.n).isub(this.p);\n\n this.tmp = this._tmp();\n }\n\n MPrime.prototype._tmp = function _tmp () {\n var tmp = new BN(null);\n tmp.words = new Array(Math.ceil(this.n / 13));\n return tmp;\n };\n\n MPrime.prototype.ireduce = function ireduce (num) {\n // Assumes that `num` is less than `P^2`\n // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n var r = num;\n var rlen;\n\n do {\n this.split(r, this.tmp);\n r = this.imulK(r);\n r = r.iadd(this.tmp);\n rlen = r.bitLength();\n } while (rlen > this.n);\n\n var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n if (cmp === 0) {\n r.words[0] = 0;\n r.length = 1;\n } else if (cmp > 0) {\n r.isub(this.p);\n } else {\n if (r.strip !== undefined) {\n // r is BN v4 instance\n r.strip();\n } else {\n // r is BN v5 instance\n r._strip();\n }\n }\n\n return r;\n };\n\n MPrime.prototype.split = function split (input, out) {\n input.iushrn(this.n, 0, out);\n };\n\n MPrime.prototype.imulK = function imulK (num) {\n return num.imul(this.k);\n };\n\n function K256 () {\n MPrime.call(\n this,\n 'k256',\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n }\n inherits(K256, MPrime);\n\n K256.prototype.split = function split (input, output) {\n // 256 = 9 * 26 + 22\n var mask = 0x3fffff;\n\n var outLen = Math.min(input.length, 9);\n for (var i = 0; i < outLen; i++) {\n output.words[i] = input.words[i];\n }\n output.length = outLen;\n\n if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n }\n\n // Shift by 9 limbs\n var prev = input.words[9];\n output.words[output.length++] = prev & mask;\n\n for (i = 10; i < input.length; i++) {\n var next = input.words[i] | 0;\n input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22);\n prev = next;\n }\n prev >>>= 22;\n input.words[i - 10] = prev;\n if (prev === 0 && input.length > 10) {\n input.length -= 10;\n } else {\n input.length -= 9;\n }\n };\n\n K256.prototype.imulK = function imulK (num) {\n // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n num.words[num.length] = 0;\n num.words[num.length + 1] = 0;\n num.length += 2;\n\n // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n var lo = 0;\n for (var i = 0; i < num.length; i++) {\n var w = num.words[i] | 0;\n lo += w * 0x3d1;\n num.words[i] = lo & 0x3ffffff;\n lo = w * 0x40 + ((lo / 0x4000000) | 0);\n }\n\n // Fast length reduction\n if (num.words[num.length - 1] === 0) {\n num.length--;\n if (num.words[num.length - 1] === 0) {\n num.length--;\n }\n }\n return num;\n };\n\n function P224 () {\n MPrime.call(\n this,\n 'p224',\n 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n }\n inherits(P224, MPrime);\n\n function P192 () {\n MPrime.call(\n this,\n 'p192',\n 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n }\n inherits(P192, MPrime);\n\n function P25519 () {\n // 2 ^ 255 - 19\n MPrime.call(\n this,\n '25519',\n '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n }\n inherits(P25519, MPrime);\n\n P25519.prototype.imulK = function imulK (num) {\n // K = 0x13\n var carry = 0;\n for (var i = 0; i < num.length; i++) {\n var hi = (num.words[i] | 0) * 0x13 + carry;\n var lo = hi & 0x3ffffff;\n hi >>>= 26;\n\n num.words[i] = lo;\n carry = hi;\n }\n if (carry !== 0) {\n num.words[num.length++] = carry;\n }\n return num;\n };\n\n // Exported mostly for testing purposes, use plain name instead\n BN._prime = function prime (name) {\n // Cached version of prime\n if (primes[name]) return primes[name];\n\n var prime;\n if (name === 'k256') {\n prime = new K256();\n } else if (name === 'p224') {\n prime = new P224();\n } else if (name === 'p192') {\n prime = new P192();\n } else if (name === 'p25519') {\n prime = new P25519();\n } else {\n throw new Error('Unknown prime ' + name);\n }\n primes[name] = prime;\n\n return prime;\n };\n\n //\n // Base reduction engine\n //\n function Red (m) {\n if (typeof m === 'string') {\n var prime = BN._prime(m);\n this.m = prime.p;\n this.prime = prime;\n } else {\n assert(m.gtn(1), 'modulus must be greater than 1');\n this.m = m;\n this.prime = null;\n }\n }\n\n Red.prototype._verify1 = function _verify1 (a) {\n assert(a.negative === 0, 'red works only with positives');\n assert(a.red, 'red works only with red numbers');\n };\n\n Red.prototype._verify2 = function _verify2 (a, b) {\n assert((a.negative | b.negative) === 0, 'red works only with positives');\n assert(a.red && a.red === b.red,\n 'red works only with red numbers');\n };\n\n Red.prototype.imod = function imod (a) {\n if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n return a.umod(this.m)._forceRed(this);\n };\n\n Red.prototype.neg = function neg (a) {\n if (a.isZero()) {\n return a.clone();\n }\n\n return this.m.sub(a)._forceRed(this);\n };\n\n Red.prototype.add = function add (a, b) {\n this._verify2(a, b);\n\n var res = a.add(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.iadd = function iadd (a, b) {\n this._verify2(a, b);\n\n var res = a.iadd(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res;\n };\n\n Red.prototype.sub = function sub (a, b) {\n this._verify2(a, b);\n\n var res = a.sub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.isub = function isub (a, b) {\n this._verify2(a, b);\n\n var res = a.isub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res;\n };\n\n Red.prototype.shl = function shl (a, num) {\n this._verify1(a);\n return this.imod(a.ushln(num));\n };\n\n Red.prototype.imul = function imul (a, b) {\n this._verify2(a, b);\n return this.imod(a.imul(b));\n };\n\n Red.prototype.mul = function mul (a, b) {\n this._verify2(a, b);\n return this.imod(a.mul(b));\n };\n\n Red.prototype.isqr = function isqr (a) {\n return this.imul(a, a.clone());\n };\n\n Red.prototype.sqr = function sqr (a) {\n return this.mul(a, a);\n };\n\n Red.prototype.sqrt = function sqrt (a) {\n if (a.isZero()) return a.clone();\n\n var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1);\n\n // Fast case\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n }\n\n // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n //\n // Find Q and S, that Q * 2 ^ S = (P - 1)\n var q = this.m.subn(1);\n var s = 0;\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n assert(!q.isZero());\n\n var one = new BN(1).toRed(this);\n var nOne = one.redNeg();\n\n // Find quadratic non-residue\n // NOTE: Max is such because of generalized Riemann hypothesis.\n var lpow = this.m.subn(1).iushrn(1);\n var z = this.m.bitLength();\n z = new BN(2 * z * z).toRed(this);\n\n while (this.pow(z, lpow).cmp(nOne) !== 0) {\n z.redIAdd(nOne);\n }\n\n var c = this.pow(z, q);\n var r = this.pow(a, q.addn(1).iushrn(1));\n var t = this.pow(a, q);\n var m = s;\n while (t.cmp(one) !== 0) {\n var tmp = t;\n for (var i = 0; tmp.cmp(one) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\n\n r = r.redMul(b);\n c = b.redSqr();\n t = t.redMul(c);\n m = i;\n }\n\n return r;\n };\n\n Red.prototype.invm = function invm (a) {\n var inv = a._invmp(this.m);\n if (inv.negative !== 0) {\n inv.negative = 0;\n return this.imod(inv).redNeg();\n } else {\n return this.imod(inv);\n }\n };\n\n Red.prototype.pow = function pow (a, num) {\n if (num.isZero()) return new BN(1).toRed(this);\n if (num.cmpn(1) === 0) return a.clone();\n\n var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n for (var i = 2; i < wnd.length; i++) {\n wnd[i] = this.mul(wnd[i - 1], a);\n }\n\n var res = wnd[0];\n var current = 0;\n var currentLen = 0;\n var start = num.bitLength() % 26;\n if (start === 0) {\n start = 26;\n }\n\n for (i = num.length - 1; i >= 0; i--) {\n var word = num.words[i];\n for (var j = start - 1; j >= 0; j--) {\n var bit = (word >> j) & 1;\n if (res !== wnd[0]) {\n res = this.sqr(res);\n }\n\n if (bit === 0 && current === 0) {\n currentLen = 0;\n continue;\n }\n\n current <<= 1;\n current |= bit;\n currentLen++;\n if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n\n res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\n start = 26;\n }\n\n return res;\n };\n\n Red.prototype.convertTo = function convertTo (num) {\n var r = num.umod(this.m);\n\n return r === num ? r.clone() : r;\n };\n\n Red.prototype.convertFrom = function convertFrom (num) {\n var res = num.clone();\n res.red = null;\n return res;\n };\n\n //\n // Montgomery method engine\n //\n\n BN.mont = function mont (num) {\n return new Mont(num);\n };\n\n function Mont (m) {\n Red.call(this, m);\n\n this.shift = this.m.bitLength();\n if (this.shift % 26 !== 0) {\n this.shift += 26 - (this.shift % 26);\n }\n\n this.r = new BN(1).iushln(this.shift);\n this.r2 = this.imod(this.r.sqr());\n this.rinv = this.r._invmp(this.m);\n\n this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n this.minv = this.minv.umod(this.r);\n this.minv = this.r.sub(this.minv);\n }\n inherits(Mont, Red);\n\n Mont.prototype.convertTo = function convertTo (num) {\n return this.imod(num.ushln(this.shift));\n };\n\n Mont.prototype.convertFrom = function convertFrom (num) {\n var r = this.imod(num.mul(this.rinv));\n r.red = null;\n return r;\n };\n\n Mont.prototype.imul = function imul (a, b) {\n if (a.isZero() || b.isZero()) {\n a.words[0] = 0;\n a.length = 1;\n return a;\n }\n\n var t = a.imul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.mul = function mul (a, b) {\n if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n\n var t = a.mul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.invm = function invm (a) {\n // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n var res = this.imod(a._invmp(this.m).mul(this.r2));\n return res._forceRed(this);\n };\n})(typeof module === 'undefined' || module, this);\n", "module.exports = assert;\n\nfunction assert(val, msg) {\n if (!val)\n throw new Error(msg || 'Assertion failed');\n}\n\nassert.equal = function assertEqual(l, r, msg) {\n if (l != r)\n throw new Error(msg || ('Assertion failed: ' + l + ' != ' + r));\n};\n", "'use strict';\n\nvar utils = exports;\n\nfunction toArray(msg, enc) {\n if (Array.isArray(msg))\n return msg.slice();\n if (!msg)\n return [];\n var res = [];\n if (typeof msg !== 'string') {\n for (var i = 0; i < msg.length; i++)\n res[i] = msg[i] | 0;\n return res;\n }\n if (enc === 'hex') {\n msg = msg.replace(/[^a-z0-9]+/ig, '');\n if (msg.length % 2 !== 0)\n msg = '0' + msg;\n for (var i = 0; i < msg.length; i += 2)\n res.push(parseInt(msg[i] + msg[i + 1], 16));\n } else {\n for (var i = 0; i < msg.length; i++) {\n var c = msg.charCodeAt(i);\n var hi = c >> 8;\n var lo = c & 0xff;\n if (hi)\n res.push(hi, lo);\n else\n res.push(lo);\n }\n }\n return res;\n}\nutils.toArray = toArray;\n\nfunction zero2(word) {\n if (word.length === 1)\n return '0' + word;\n else\n return word;\n}\nutils.zero2 = zero2;\n\nfunction toHex(msg) {\n var res = '';\n for (var i = 0; i < msg.length; i++)\n res += zero2(msg[i].toString(16));\n return res;\n}\nutils.toHex = toHex;\n\nutils.encode = function encode(arr, enc) {\n if (enc === 'hex')\n return toHex(arr);\n else\n return arr;\n};\n", "'use strict';\n\nvar utils = exports;\nvar BN = require('bn.js');\nvar minAssert = require('minimalistic-assert');\nvar minUtils = require('minimalistic-crypto-utils');\n\nutils.assert = minAssert;\nutils.toArray = minUtils.toArray;\nutils.zero2 = minUtils.zero2;\nutils.toHex = minUtils.toHex;\nutils.encode = minUtils.encode;\n\n// Represent num in a w-NAF form\nfunction getNAF(num, w, bits) {\n var naf = new Array(Math.max(num.bitLength(), bits) + 1);\n naf.fill(0);\n\n var ws = 1 << (w + 1);\n var k = num.clone();\n\n for (var i = 0; i < naf.length; i++) {\n var z;\n var mod = k.andln(ws - 1);\n if (k.isOdd()) {\n if (mod > (ws >> 1) - 1)\n z = (ws >> 1) - mod;\n else\n z = mod;\n k.isubn(z);\n } else {\n z = 0;\n }\n\n naf[i] = z;\n k.iushrn(1);\n }\n\n return naf;\n}\nutils.getNAF = getNAF;\n\n// Represent k1, k2 in a Joint Sparse Form\nfunction getJSF(k1, k2) {\n var jsf = [\n [],\n [],\n ];\n\n k1 = k1.clone();\n k2 = k2.clone();\n var d1 = 0;\n var d2 = 0;\n var m8;\n while (k1.cmpn(-d1) > 0 || k2.cmpn(-d2) > 0) {\n // First phase\n var m14 = (k1.andln(3) + d1) & 3;\n var m24 = (k2.andln(3) + d2) & 3;\n if (m14 === 3)\n m14 = -1;\n if (m24 === 3)\n m24 = -1;\n var u1;\n if ((m14 & 1) === 0) {\n u1 = 0;\n } else {\n m8 = (k1.andln(7) + d1) & 7;\n if ((m8 === 3 || m8 === 5) && m24 === 2)\n u1 = -m14;\n else\n u1 = m14;\n }\n jsf[0].push(u1);\n\n var u2;\n if ((m24 & 1) === 0) {\n u2 = 0;\n } else {\n m8 = (k2.andln(7) + d2) & 7;\n if ((m8 === 3 || m8 === 5) && m14 === 2)\n u2 = -m24;\n else\n u2 = m24;\n }\n jsf[1].push(u2);\n\n // Second phase\n if (2 * d1 === u1 + 1)\n d1 = 1 - d1;\n if (2 * d2 === u2 + 1)\n d2 = 1 - d2;\n k1.iushrn(1);\n k2.iushrn(1);\n }\n\n return jsf;\n}\nutils.getJSF = getJSF;\n\nfunction cachedProperty(obj, name, computer) {\n var key = '_' + name;\n obj.prototype[name] = function cachedProperty() {\n return this[key] !== undefined ? this[key] :\n this[key] = computer.call(this);\n };\n}\nutils.cachedProperty = cachedProperty;\n\nfunction parseBytes(bytes) {\n return typeof bytes === 'string' ? utils.toArray(bytes, 'hex') :\n bytes;\n}\nutils.parseBytes = parseBytes;\n\nfunction intFromLE(bytes) {\n return new BN(bytes, 'hex', 'le');\n}\nutils.intFromLE = intFromLE;\n\n", "var r;\n\nmodule.exports = function rand(len) {\n if (!r)\n r = new Rand(null);\n\n return r.generate(len);\n};\n\nfunction Rand(rand) {\n this.rand = rand;\n}\nmodule.exports.Rand = Rand;\n\nRand.prototype.generate = function generate(len) {\n return this._rand(len);\n};\n\n// Emulate crypto API using randy\nRand.prototype._rand = function _rand(n) {\n if (this.rand.getBytes)\n return this.rand.getBytes(n);\n\n var res = new Uint8Array(n);\n for (var i = 0; i < res.length; i++)\n res[i] = this.rand.getByte();\n return res;\n};\n\nif (typeof self === 'object') {\n if (self.crypto && self.crypto.getRandomValues) {\n // Modern browsers\n Rand.prototype._rand = function _rand(n) {\n var arr = new Uint8Array(n);\n self.crypto.getRandomValues(arr);\n return arr;\n };\n } else if (self.msCrypto && self.msCrypto.getRandomValues) {\n // IE\n Rand.prototype._rand = function _rand(n) {\n var arr = new Uint8Array(n);\n self.msCrypto.getRandomValues(arr);\n return arr;\n };\n\n // Safari's WebWorkers do not have `crypto`\n } else if (typeof window === 'object') {\n // Old junk\n Rand.prototype._rand = function() {\n throw new Error('Not implemented yet');\n };\n }\n} else {\n // Node.js or Web worker with no crypto support\n try {\n var crypto = require('crypto');\n if (typeof crypto.randomBytes !== 'function')\n throw new Error('Not supported');\n\n Rand.prototype._rand = function _rand(n) {\n return crypto.randomBytes(n);\n };\n } catch (e) {\n }\n}\n", "'use strict';\n\nvar BN = require('bn.js');\nvar utils = require('../utils');\nvar getNAF = utils.getNAF;\nvar getJSF = utils.getJSF;\nvar assert = utils.assert;\n\nfunction BaseCurve(type, conf) {\n this.type = type;\n this.p = new BN(conf.p, 16);\n\n // Use Montgomery, when there is no fast reduction for the prime\n this.red = conf.prime ? BN.red(conf.prime) : BN.mont(this.p);\n\n // Useful for many curves\n this.zero = new BN(0).toRed(this.red);\n this.one = new BN(1).toRed(this.red);\n this.two = new BN(2).toRed(this.red);\n\n // Curve configuration, optional\n this.n = conf.n && new BN(conf.n, 16);\n this.g = conf.g && this.pointFromJSON(conf.g, conf.gRed);\n\n // Temporary arrays\n this._wnafT1 = new Array(4);\n this._wnafT2 = new Array(4);\n this._wnafT3 = new Array(4);\n this._wnafT4 = new Array(4);\n\n this._bitLength = this.n ? this.n.bitLength() : 0;\n\n // Generalized Greg Maxwell's trick\n var adjustCount = this.n && this.p.div(this.n);\n if (!adjustCount || adjustCount.cmpn(100) > 0) {\n this.redN = null;\n } else {\n this._maxwellTrick = true;\n this.redN = this.n.toRed(this.red);\n }\n}\nmodule.exports = BaseCurve;\n\nBaseCurve.prototype.point = function point() {\n throw new Error('Not implemented');\n};\n\nBaseCurve.prototype.validate = function validate() {\n throw new Error('Not implemented');\n};\n\nBaseCurve.prototype._fixedNafMul = function _fixedNafMul(p, k) {\n assert(p.precomputed);\n var doubles = p._getDoubles();\n\n var naf = getNAF(k, 1, this._bitLength);\n var I = (1 << (doubles.step + 1)) - (doubles.step % 2 === 0 ? 2 : 1);\n I /= 3;\n\n // Translate into more windowed form\n var repr = [];\n var j;\n var nafW;\n for (j = 0; j < naf.length; j += doubles.step) {\n nafW = 0;\n for (var l = j + doubles.step - 1; l >= j; l--)\n nafW = (nafW << 1) + naf[l];\n repr.push(nafW);\n }\n\n var a = this.jpoint(null, null, null);\n var b = this.jpoint(null, null, null);\n for (var i = I; i > 0; i--) {\n for (j = 0; j < repr.length; j++) {\n nafW = repr[j];\n if (nafW === i)\n b = b.mixedAdd(doubles.points[j]);\n else if (nafW === -i)\n b = b.mixedAdd(doubles.points[j].neg());\n }\n a = a.add(b);\n }\n return a.toP();\n};\n\nBaseCurve.prototype._wnafMul = function _wnafMul(p, k) {\n var w = 4;\n\n // Precompute window\n var nafPoints = p._getNAFPoints(w);\n w = nafPoints.wnd;\n var wnd = nafPoints.points;\n\n // Get NAF form\n var naf = getNAF(k, w, this._bitLength);\n\n // Add `this`*(N+1) for every w-NAF index\n var acc = this.jpoint(null, null, null);\n for (var i = naf.length - 1; i >= 0; i--) {\n // Count zeroes\n for (var l = 0; i >= 0 && naf[i] === 0; i--)\n l++;\n if (i >= 0)\n l++;\n acc = acc.dblp(l);\n\n if (i < 0)\n break;\n var z = naf[i];\n assert(z !== 0);\n if (p.type === 'affine') {\n // J +- P\n if (z > 0)\n acc = acc.mixedAdd(wnd[(z - 1) >> 1]);\n else\n acc = acc.mixedAdd(wnd[(-z - 1) >> 1].neg());\n } else {\n // J +- J\n if (z > 0)\n acc = acc.add(wnd[(z - 1) >> 1]);\n else\n acc = acc.add(wnd[(-z - 1) >> 1].neg());\n }\n }\n return p.type === 'affine' ? acc.toP() : acc;\n};\n\nBaseCurve.prototype._wnafMulAdd = function _wnafMulAdd(defW,\n points,\n coeffs,\n len,\n jacobianResult) {\n var wndWidth = this._wnafT1;\n var wnd = this._wnafT2;\n var naf = this._wnafT3;\n\n // Fill all arrays\n var max = 0;\n var i;\n var j;\n var p;\n for (i = 0; i < len; i++) {\n p = points[i];\n var nafPoints = p._getNAFPoints(defW);\n wndWidth[i] = nafPoints.wnd;\n wnd[i] = nafPoints.points;\n }\n\n // Comb small window NAFs\n for (i = len - 1; i >= 1; i -= 2) {\n var a = i - 1;\n var b = i;\n if (wndWidth[a] !== 1 || wndWidth[b] !== 1) {\n naf[a] = getNAF(coeffs[a], wndWidth[a], this._bitLength);\n naf[b] = getNAF(coeffs[b], wndWidth[b], this._bitLength);\n max = Math.max(naf[a].length, max);\n max = Math.max(naf[b].length, max);\n continue;\n }\n\n var comb = [\n points[a], /* 1 */\n null, /* 3 */\n null, /* 5 */\n points[b], /* 7 */\n ];\n\n // Try to avoid Projective points, if possible\n if (points[a].y.cmp(points[b].y) === 0) {\n comb[1] = points[a].add(points[b]);\n comb[2] = points[a].toJ().mixedAdd(points[b].neg());\n } else if (points[a].y.cmp(points[b].y.redNeg()) === 0) {\n comb[1] = points[a].toJ().mixedAdd(points[b]);\n comb[2] = points[a].add(points[b].neg());\n } else {\n comb[1] = points[a].toJ().mixedAdd(points[b]);\n comb[2] = points[a].toJ().mixedAdd(points[b].neg());\n }\n\n var index = [\n -3, /* -1 -1 */\n -1, /* -1 0 */\n -5, /* -1 1 */\n -7, /* 0 -1 */\n 0, /* 0 0 */\n 7, /* 0 1 */\n 5, /* 1 -1 */\n 1, /* 1 0 */\n 3, /* 1 1 */\n ];\n\n var jsf = getJSF(coeffs[a], coeffs[b]);\n max = Math.max(jsf[0].length, max);\n naf[a] = new Array(max);\n naf[b] = new Array(max);\n for (j = 0; j < max; j++) {\n var ja = jsf[0][j] | 0;\n var jb = jsf[1][j] | 0;\n\n naf[a][j] = index[(ja + 1) * 3 + (jb + 1)];\n naf[b][j] = 0;\n wnd[a] = comb;\n }\n }\n\n var acc = this.jpoint(null, null, null);\n var tmp = this._wnafT4;\n for (i = max; i >= 0; i--) {\n var k = 0;\n\n while (i >= 0) {\n var zero = true;\n for (j = 0; j < len; j++) {\n tmp[j] = naf[j][i] | 0;\n if (tmp[j] !== 0)\n zero = false;\n }\n if (!zero)\n break;\n k++;\n i--;\n }\n if (i >= 0)\n k++;\n acc = acc.dblp(k);\n if (i < 0)\n break;\n\n for (j = 0; j < len; j++) {\n var z = tmp[j];\n p;\n if (z === 0)\n continue;\n else if (z > 0)\n p = wnd[j][(z - 1) >> 1];\n else if (z < 0)\n p = wnd[j][(-z - 1) >> 1].neg();\n\n if (p.type === 'affine')\n acc = acc.mixedAdd(p);\n else\n acc = acc.add(p);\n }\n }\n // Zeroify references\n for (i = 0; i < len; i++)\n wnd[i] = null;\n\n if (jacobianResult)\n return acc;\n else\n return acc.toP();\n};\n\nfunction BasePoint(curve, type) {\n this.curve = curve;\n this.type = type;\n this.precomputed = null;\n}\nBaseCurve.BasePoint = BasePoint;\n\nBasePoint.prototype.eq = function eq(/*other*/) {\n throw new Error('Not implemented');\n};\n\nBasePoint.prototype.validate = function validate() {\n return this.curve.validate(this);\n};\n\nBaseCurve.prototype.decodePoint = function decodePoint(bytes, enc) {\n bytes = utils.toArray(bytes, enc);\n\n var len = this.p.byteLength();\n\n // uncompressed, hybrid-odd, hybrid-even\n if ((bytes[0] === 0x04 || bytes[0] === 0x06 || bytes[0] === 0x07) &&\n bytes.length - 1 === 2 * len) {\n if (bytes[0] === 0x06)\n assert(bytes[bytes.length - 1] % 2 === 0);\n else if (bytes[0] === 0x07)\n assert(bytes[bytes.length - 1] % 2 === 1);\n\n var res = this.point(bytes.slice(1, 1 + len),\n bytes.slice(1 + len, 1 + 2 * len));\n\n return res;\n } else if ((bytes[0] === 0x02 || bytes[0] === 0x03) &&\n bytes.length - 1 === len) {\n return this.pointFromX(bytes.slice(1, 1 + len), bytes[0] === 0x03);\n }\n throw new Error('Unknown point format');\n};\n\nBasePoint.prototype.encodeCompressed = function encodeCompressed(enc) {\n return this.encode(enc, true);\n};\n\nBasePoint.prototype._encode = function _encode(compact) {\n var len = this.curve.p.byteLength();\n var x = this.getX().toArray('be', len);\n\n if (compact)\n return [ this.getY().isEven() ? 0x02 : 0x03 ].concat(x);\n\n return [ 0x04 ].concat(x, this.getY().toArray('be', len));\n};\n\nBasePoint.prototype.encode = function encode(enc, compact) {\n return utils.encode(this._encode(compact), enc);\n};\n\nBasePoint.prototype.precompute = function precompute(power) {\n if (this.precomputed)\n return this;\n\n var precomputed = {\n doubles: null,\n naf: null,\n beta: null,\n };\n precomputed.naf = this._getNAFPoints(8);\n precomputed.doubles = this._getDoubles(4, power);\n precomputed.beta = this._getBeta();\n this.precomputed = precomputed;\n\n return this;\n};\n\nBasePoint.prototype._hasDoubles = function _hasDoubles(k) {\n if (!this.precomputed)\n return false;\n\n var doubles = this.precomputed.doubles;\n if (!doubles)\n return false;\n\n return doubles.points.length >= Math.ceil((k.bitLength() + 1) / doubles.step);\n};\n\nBasePoint.prototype._getDoubles = function _getDoubles(step, power) {\n if (this.precomputed && this.precomputed.doubles)\n return this.precomputed.doubles;\n\n var doubles = [ this ];\n var acc = this;\n for (var i = 0; i < power; i += step) {\n for (var j = 0; j < step; j++)\n acc = acc.dbl();\n doubles.push(acc);\n }\n return {\n step: step,\n points: doubles,\n };\n};\n\nBasePoint.prototype._getNAFPoints = function _getNAFPoints(wnd) {\n if (this.precomputed && this.precomputed.naf)\n return this.precomputed.naf;\n\n var res = [ this ];\n var max = (1 << wnd) - 1;\n var dbl = max === 1 ? null : this.dbl();\n for (var i = 1; i < max; i++)\n res[i] = res[i - 1].add(dbl);\n return {\n wnd: wnd,\n points: res,\n };\n};\n\nBasePoint.prototype._getBeta = function _getBeta() {\n return null;\n};\n\nBasePoint.prototype.dblp = function dblp(k) {\n var r = this;\n for (var i = 0; i < k; i++)\n r = r.dbl();\n return r;\n};\n", "if (typeof Object.create === 'function') {\n // implementation from standard node.js 'util' module\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n })\n }\n };\n} else {\n // old school shim for old browsers\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor\n var TempCtor = function () {}\n TempCtor.prototype = superCtor.prototype\n ctor.prototype = new TempCtor()\n ctor.prototype.constructor = ctor\n }\n }\n}\n", "try {\n var util = require('util');\n /* istanbul ignore next */\n if (typeof util.inherits !== 'function') throw '';\n module.exports = util.inherits;\n} catch (e) {\n /* istanbul ignore next */\n module.exports = require('./inherits_browser.js');\n}\n", "'use strict';\n\nvar utils = require('../utils');\nvar BN = require('bn.js');\nvar inherits = require('inherits');\nvar Base = require('./base');\n\nvar assert = utils.assert;\n\nfunction ShortCurve(conf) {\n Base.call(this, 'short', conf);\n\n this.a = new BN(conf.a, 16).toRed(this.red);\n this.b = new BN(conf.b, 16).toRed(this.red);\n this.tinv = this.two.redInvm();\n\n this.zeroA = this.a.fromRed().cmpn(0) === 0;\n this.threeA = this.a.fromRed().sub(this.p).cmpn(-3) === 0;\n\n // If the curve is endomorphic, precalculate beta and lambda\n this.endo = this._getEndomorphism(conf);\n this._endoWnafT1 = new Array(4);\n this._endoWnafT2 = new Array(4);\n}\ninherits(ShortCurve, Base);\nmodule.exports = ShortCurve;\n\nShortCurve.prototype._getEndomorphism = function _getEndomorphism(conf) {\n // No efficient endomorphism\n if (!this.zeroA || !this.g || !this.n || this.p.modn(3) !== 1)\n return;\n\n // Compute beta and lambda, that lambda * P = (beta * Px; Py)\n var beta;\n var lambda;\n if (conf.beta) {\n beta = new BN(conf.beta, 16).toRed(this.red);\n } else {\n var betas = this._getEndoRoots(this.p);\n // Choose the smallest beta\n beta = betas[0].cmp(betas[1]) < 0 ? betas[0] : betas[1];\n beta = beta.toRed(this.red);\n }\n if (conf.lambda) {\n lambda = new BN(conf.lambda, 16);\n } else {\n // Choose the lambda that is matching selected beta\n var lambdas = this._getEndoRoots(this.n);\n if (this.g.mul(lambdas[0]).x.cmp(this.g.x.redMul(beta)) === 0) {\n lambda = lambdas[0];\n } else {\n lambda = lambdas[1];\n assert(this.g.mul(lambda).x.cmp(this.g.x.redMul(beta)) === 0);\n }\n }\n\n // Get basis vectors, used for balanced length-two representation\n var basis;\n if (conf.basis) {\n basis = conf.basis.map(function(vec) {\n return {\n a: new BN(vec.a, 16),\n b: new BN(vec.b, 16),\n };\n });\n } else {\n basis = this._getEndoBasis(lambda);\n }\n\n return {\n beta: beta,\n lambda: lambda,\n basis: basis,\n };\n};\n\nShortCurve.prototype._getEndoRoots = function _getEndoRoots(num) {\n // Find roots of for x^2 + x + 1 in F\n // Root = (-1 +- Sqrt(-3)) / 2\n //\n var red = num === this.p ? this.red : BN.mont(num);\n var tinv = new BN(2).toRed(red).redInvm();\n var ntinv = tinv.redNeg();\n\n var s = new BN(3).toRed(red).redNeg().redSqrt().redMul(tinv);\n\n var l1 = ntinv.redAdd(s).fromRed();\n var l2 = ntinv.redSub(s).fromRed();\n return [ l1, l2 ];\n};\n\nShortCurve.prototype._getEndoBasis = function _getEndoBasis(lambda) {\n // aprxSqrt >= sqrt(this.n)\n var aprxSqrt = this.n.ushrn(Math.floor(this.n.bitLength() / 2));\n\n // 3.74\n // Run EGCD, until r(L + 1) < aprxSqrt\n var u = lambda;\n var v = this.n.clone();\n var x1 = new BN(1);\n var y1 = new BN(0);\n var x2 = new BN(0);\n var y2 = new BN(1);\n\n // NOTE: all vectors are roots of: a + b * lambda = 0 (mod n)\n var a0;\n var b0;\n // First vector\n var a1;\n var b1;\n // Second vector\n var a2;\n var b2;\n\n var prevR;\n var i = 0;\n var r;\n var x;\n while (u.cmpn(0) !== 0) {\n var q = v.div(u);\n r = v.sub(q.mul(u));\n x = x2.sub(q.mul(x1));\n var y = y2.sub(q.mul(y1));\n\n if (!a1 && r.cmp(aprxSqrt) < 0) {\n a0 = prevR.neg();\n b0 = x1;\n a1 = r.neg();\n b1 = x;\n } else if (a1 && ++i === 2) {\n break;\n }\n prevR = r;\n\n v = u;\n u = r;\n x2 = x1;\n x1 = x;\n y2 = y1;\n y1 = y;\n }\n a2 = r.neg();\n b2 = x;\n\n var len1 = a1.sqr().add(b1.sqr());\n var len2 = a2.sqr().add(b2.sqr());\n if (len2.cmp(len1) >= 0) {\n a2 = a0;\n b2 = b0;\n }\n\n // Normalize signs\n if (a1.negative) {\n a1 = a1.neg();\n b1 = b1.neg();\n }\n if (a2.negative) {\n a2 = a2.neg();\n b2 = b2.neg();\n }\n\n return [\n { a: a1, b: b1 },\n { a: a2, b: b2 },\n ];\n};\n\nShortCurve.prototype._endoSplit = function _endoSplit(k) {\n var basis = this.endo.basis;\n var v1 = basis[0];\n var v2 = basis[1];\n\n var c1 = v2.b.mul(k).divRound(this.n);\n var c2 = v1.b.neg().mul(k).divRound(this.n);\n\n var p1 = c1.mul(v1.a);\n var p2 = c2.mul(v2.a);\n var q1 = c1.mul(v1.b);\n var q2 = c2.mul(v2.b);\n\n // Calculate answer\n var k1 = k.sub(p1).sub(p2);\n var k2 = q1.add(q2).neg();\n return { k1: k1, k2: k2 };\n};\n\nShortCurve.prototype.pointFromX = function pointFromX(x, odd) {\n x = new BN(x, 16);\n if (!x.red)\n x = x.toRed(this.red);\n\n var y2 = x.redSqr().redMul(x).redIAdd(x.redMul(this.a)).redIAdd(this.b);\n var y = y2.redSqrt();\n if (y.redSqr().redSub(y2).cmp(this.zero) !== 0)\n throw new Error('invalid point');\n\n // XXX Is there any way to tell if the number is odd without converting it\n // to non-red form?\n var isOdd = y.fromRed().isOdd();\n if (odd && !isOdd || !odd && isOdd)\n y = y.redNeg();\n\n return this.point(x, y);\n};\n\nShortCurve.prototype.validate = function validate(point) {\n if (point.inf)\n return true;\n\n var x = point.x;\n var y = point.y;\n\n var ax = this.a.redMul(x);\n var rhs = x.redSqr().redMul(x).redIAdd(ax).redIAdd(this.b);\n return y.redSqr().redISub(rhs).cmpn(0) === 0;\n};\n\nShortCurve.prototype._endoWnafMulAdd =\n function _endoWnafMulAdd(points, coeffs, jacobianResult) {\n var npoints = this._endoWnafT1;\n var ncoeffs = this._endoWnafT2;\n for (var i = 0; i < points.length; i++) {\n var split = this._endoSplit(coeffs[i]);\n var p = points[i];\n var beta = p._getBeta();\n\n if (split.k1.negative) {\n split.k1.ineg();\n p = p.neg(true);\n }\n if (split.k2.negative) {\n split.k2.ineg();\n beta = beta.neg(true);\n }\n\n npoints[i * 2] = p;\n npoints[i * 2 + 1] = beta;\n ncoeffs[i * 2] = split.k1;\n ncoeffs[i * 2 + 1] = split.k2;\n }\n var res = this._wnafMulAdd(1, npoints, ncoeffs, i * 2, jacobianResult);\n\n // Clean-up references to points and coefficients\n for (var j = 0; j < i * 2; j++) {\n npoints[j] = null;\n ncoeffs[j] = null;\n }\n return res;\n };\n\nfunction Point(curve, x, y, isRed) {\n Base.BasePoint.call(this, curve, 'affine');\n if (x === null && y === null) {\n this.x = null;\n this.y = null;\n this.inf = true;\n } else {\n this.x = new BN(x, 16);\n this.y = new BN(y, 16);\n // Force redgomery representation when loading from JSON\n if (isRed) {\n this.x.forceRed(this.curve.red);\n this.y.forceRed(this.curve.red);\n }\n if (!this.x.red)\n this.x = this.x.toRed(this.curve.red);\n if (!this.y.red)\n this.y = this.y.toRed(this.curve.red);\n this.inf = false;\n }\n}\ninherits(Point, Base.BasePoint);\n\nShortCurve.prototype.point = function point(x, y, isRed) {\n return new Point(this, x, y, isRed);\n};\n\nShortCurve.prototype.pointFromJSON = function pointFromJSON(obj, red) {\n return Point.fromJSON(this, obj, red);\n};\n\nPoint.prototype._getBeta = function _getBeta() {\n if (!this.curve.endo)\n return;\n\n var pre = this.precomputed;\n if (pre && pre.beta)\n return pre.beta;\n\n var beta = this.curve.point(this.x.redMul(this.curve.endo.beta), this.y);\n if (pre) {\n var curve = this.curve;\n var endoMul = function(p) {\n return curve.point(p.x.redMul(curve.endo.beta), p.y);\n };\n pre.beta = beta;\n beta.precomputed = {\n beta: null,\n naf: pre.naf && {\n wnd: pre.naf.wnd,\n points: pre.naf.points.map(endoMul),\n },\n doubles: pre.doubles && {\n step: pre.doubles.step,\n points: pre.doubles.points.map(endoMul),\n },\n };\n }\n return beta;\n};\n\nPoint.prototype.toJSON = function toJSON() {\n if (!this.precomputed)\n return [ this.x, this.y ];\n\n return [ this.x, this.y, this.precomputed && {\n doubles: this.precomputed.doubles && {\n step: this.precomputed.doubles.step,\n points: this.precomputed.doubles.points.slice(1),\n },\n naf: this.precomputed.naf && {\n wnd: this.precomputed.naf.wnd,\n points: this.precomputed.naf.points.slice(1),\n },\n } ];\n};\n\nPoint.fromJSON = function fromJSON(curve, obj, red) {\n if (typeof obj === 'string')\n obj = JSON.parse(obj);\n var res = curve.point(obj[0], obj[1], red);\n if (!obj[2])\n return res;\n\n function obj2point(obj) {\n return curve.point(obj[0], obj[1], red);\n }\n\n var pre = obj[2];\n res.precomputed = {\n beta: null,\n doubles: pre.doubles && {\n step: pre.doubles.step,\n points: [ res ].concat(pre.doubles.points.map(obj2point)),\n },\n naf: pre.naf && {\n wnd: pre.naf.wnd,\n points: [ res ].concat(pre.naf.points.map(obj2point)),\n },\n };\n return res;\n};\n\nPoint.prototype.inspect = function inspect() {\n if (this.isInfinity())\n return '';\n return '';\n};\n\nPoint.prototype.isInfinity = function isInfinity() {\n return this.inf;\n};\n\nPoint.prototype.add = function add(p) {\n // O + P = P\n if (this.inf)\n return p;\n\n // P + O = P\n if (p.inf)\n return this;\n\n // P + P = 2P\n if (this.eq(p))\n return this.dbl();\n\n // P + (-P) = O\n if (this.neg().eq(p))\n return this.curve.point(null, null);\n\n // P + Q = O\n if (this.x.cmp(p.x) === 0)\n return this.curve.point(null, null);\n\n var c = this.y.redSub(p.y);\n if (c.cmpn(0) !== 0)\n c = c.redMul(this.x.redSub(p.x).redInvm());\n var nx = c.redSqr().redISub(this.x).redISub(p.x);\n var ny = c.redMul(this.x.redSub(nx)).redISub(this.y);\n return this.curve.point(nx, ny);\n};\n\nPoint.prototype.dbl = function dbl() {\n if (this.inf)\n return this;\n\n // 2P = O\n var ys1 = this.y.redAdd(this.y);\n if (ys1.cmpn(0) === 0)\n return this.curve.point(null, null);\n\n var a = this.curve.a;\n\n var x2 = this.x.redSqr();\n var dyinv = ys1.redInvm();\n var c = x2.redAdd(x2).redIAdd(x2).redIAdd(a).redMul(dyinv);\n\n var nx = c.redSqr().redISub(this.x.redAdd(this.x));\n var ny = c.redMul(this.x.redSub(nx)).redISub(this.y);\n return this.curve.point(nx, ny);\n};\n\nPoint.prototype.getX = function getX() {\n return this.x.fromRed();\n};\n\nPoint.prototype.getY = function getY() {\n return this.y.fromRed();\n};\n\nPoint.prototype.mul = function mul(k) {\n k = new BN(k, 16);\n if (this.isInfinity())\n return this;\n else if (this._hasDoubles(k))\n return this.curve._fixedNafMul(this, k);\n else if (this.curve.endo)\n return this.curve._endoWnafMulAdd([ this ], [ k ]);\n else\n return this.curve._wnafMul(this, k);\n};\n\nPoint.prototype.mulAdd = function mulAdd(k1, p2, k2) {\n var points = [ this, p2 ];\n var coeffs = [ k1, k2 ];\n if (this.curve.endo)\n return this.curve._endoWnafMulAdd(points, coeffs);\n else\n return this.curve._wnafMulAdd(1, points, coeffs, 2);\n};\n\nPoint.prototype.jmulAdd = function jmulAdd(k1, p2, k2) {\n var points = [ this, p2 ];\n var coeffs = [ k1, k2 ];\n if (this.curve.endo)\n return this.curve._endoWnafMulAdd(points, coeffs, true);\n else\n return this.curve._wnafMulAdd(1, points, coeffs, 2, true);\n};\n\nPoint.prototype.eq = function eq(p) {\n return this === p ||\n this.inf === p.inf &&\n (this.inf || this.x.cmp(p.x) === 0 && this.y.cmp(p.y) === 0);\n};\n\nPoint.prototype.neg = function neg(_precompute) {\n if (this.inf)\n return this;\n\n var res = this.curve.point(this.x, this.y.redNeg());\n if (_precompute && this.precomputed) {\n var pre = this.precomputed;\n var negate = function(p) {\n return p.neg();\n };\n res.precomputed = {\n naf: pre.naf && {\n wnd: pre.naf.wnd,\n points: pre.naf.points.map(negate),\n },\n doubles: pre.doubles && {\n step: pre.doubles.step,\n points: pre.doubles.points.map(negate),\n },\n };\n }\n return res;\n};\n\nPoint.prototype.toJ = function toJ() {\n if (this.inf)\n return this.curve.jpoint(null, null, null);\n\n var res = this.curve.jpoint(this.x, this.y, this.curve.one);\n return res;\n};\n\nfunction JPoint(curve, x, y, z) {\n Base.BasePoint.call(this, curve, 'jacobian');\n if (x === null && y === null && z === null) {\n this.x = this.curve.one;\n this.y = this.curve.one;\n this.z = new BN(0);\n } else {\n this.x = new BN(x, 16);\n this.y = new BN(y, 16);\n this.z = new BN(z, 16);\n }\n if (!this.x.red)\n this.x = this.x.toRed(this.curve.red);\n if (!this.y.red)\n this.y = this.y.toRed(this.curve.red);\n if (!this.z.red)\n this.z = this.z.toRed(this.curve.red);\n\n this.zOne = this.z === this.curve.one;\n}\ninherits(JPoint, Base.BasePoint);\n\nShortCurve.prototype.jpoint = function jpoint(x, y, z) {\n return new JPoint(this, x, y, z);\n};\n\nJPoint.prototype.toP = function toP() {\n if (this.isInfinity())\n return this.curve.point(null, null);\n\n var zinv = this.z.redInvm();\n var zinv2 = zinv.redSqr();\n var ax = this.x.redMul(zinv2);\n var ay = this.y.redMul(zinv2).redMul(zinv);\n\n return this.curve.point(ax, ay);\n};\n\nJPoint.prototype.neg = function neg() {\n return this.curve.jpoint(this.x, this.y.redNeg(), this.z);\n};\n\nJPoint.prototype.add = function add(p) {\n // O + P = P\n if (this.isInfinity())\n return p;\n\n // P + O = P\n if (p.isInfinity())\n return this;\n\n // 12M + 4S + 7A\n var pz2 = p.z.redSqr();\n var z2 = this.z.redSqr();\n var u1 = this.x.redMul(pz2);\n var u2 = p.x.redMul(z2);\n var s1 = this.y.redMul(pz2.redMul(p.z));\n var s2 = p.y.redMul(z2.redMul(this.z));\n\n var h = u1.redSub(u2);\n var r = s1.redSub(s2);\n if (h.cmpn(0) === 0) {\n if (r.cmpn(0) !== 0)\n return this.curve.jpoint(null, null, null);\n else\n return this.dbl();\n }\n\n var h2 = h.redSqr();\n var h3 = h2.redMul(h);\n var v = u1.redMul(h2);\n\n var nx = r.redSqr().redIAdd(h3).redISub(v).redISub(v);\n var ny = r.redMul(v.redISub(nx)).redISub(s1.redMul(h3));\n var nz = this.z.redMul(p.z).redMul(h);\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.mixedAdd = function mixedAdd(p) {\n // O + P = P\n if (this.isInfinity())\n return p.toJ();\n\n // P + O = P\n if (p.isInfinity())\n return this;\n\n // 8M + 3S + 7A\n var z2 = this.z.redSqr();\n var u1 = this.x;\n var u2 = p.x.redMul(z2);\n var s1 = this.y;\n var s2 = p.y.redMul(z2).redMul(this.z);\n\n var h = u1.redSub(u2);\n var r = s1.redSub(s2);\n if (h.cmpn(0) === 0) {\n if (r.cmpn(0) !== 0)\n return this.curve.jpoint(null, null, null);\n else\n return this.dbl();\n }\n\n var h2 = h.redSqr();\n var h3 = h2.redMul(h);\n var v = u1.redMul(h2);\n\n var nx = r.redSqr().redIAdd(h3).redISub(v).redISub(v);\n var ny = r.redMul(v.redISub(nx)).redISub(s1.redMul(h3));\n var nz = this.z.redMul(h);\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.dblp = function dblp(pow) {\n if (pow === 0)\n return this;\n if (this.isInfinity())\n return this;\n if (!pow)\n return this.dbl();\n\n var i;\n if (this.curve.zeroA || this.curve.threeA) {\n var r = this;\n for (i = 0; i < pow; i++)\n r = r.dbl();\n return r;\n }\n\n // 1M + 2S + 1A + N * (4S + 5M + 8A)\n // N = 1 => 6M + 6S + 9A\n var a = this.curve.a;\n var tinv = this.curve.tinv;\n\n var jx = this.x;\n var jy = this.y;\n var jz = this.z;\n var jz4 = jz.redSqr().redSqr();\n\n // Reuse results\n var jyd = jy.redAdd(jy);\n for (i = 0; i < pow; i++) {\n var jx2 = jx.redSqr();\n var jyd2 = jyd.redSqr();\n var jyd4 = jyd2.redSqr();\n var c = jx2.redAdd(jx2).redIAdd(jx2).redIAdd(a.redMul(jz4));\n\n var t1 = jx.redMul(jyd2);\n var nx = c.redSqr().redISub(t1.redAdd(t1));\n var t2 = t1.redISub(nx);\n var dny = c.redMul(t2);\n dny = dny.redIAdd(dny).redISub(jyd4);\n var nz = jyd.redMul(jz);\n if (i + 1 < pow)\n jz4 = jz4.redMul(jyd4);\n\n jx = nx;\n jz = nz;\n jyd = dny;\n }\n\n return this.curve.jpoint(jx, jyd.redMul(tinv), jz);\n};\n\nJPoint.prototype.dbl = function dbl() {\n if (this.isInfinity())\n return this;\n\n if (this.curve.zeroA)\n return this._zeroDbl();\n else if (this.curve.threeA)\n return this._threeDbl();\n else\n return this._dbl();\n};\n\nJPoint.prototype._zeroDbl = function _zeroDbl() {\n var nx;\n var ny;\n var nz;\n // Z = 1\n if (this.zOne) {\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-0.html\n // #doubling-mdbl-2007-bl\n // 1M + 5S + 14A\n\n // XX = X1^2\n var xx = this.x.redSqr();\n // YY = Y1^2\n var yy = this.y.redSqr();\n // YYYY = YY^2\n var yyyy = yy.redSqr();\n // S = 2 * ((X1 + YY)^2 - XX - YYYY)\n var s = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);\n s = s.redIAdd(s);\n // M = 3 * XX + a; a = 0\n var m = xx.redAdd(xx).redIAdd(xx);\n // T = M ^ 2 - 2*S\n var t = m.redSqr().redISub(s).redISub(s);\n\n // 8 * YYYY\n var yyyy8 = yyyy.redIAdd(yyyy);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n\n // X3 = T\n nx = t;\n // Y3 = M * (S - T) - 8 * YYYY\n ny = m.redMul(s.redISub(t)).redISub(yyyy8);\n // Z3 = 2*Y1\n nz = this.y.redAdd(this.y);\n } else {\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-0.html\n // #doubling-dbl-2009-l\n // 2M + 5S + 13A\n\n // A = X1^2\n var a = this.x.redSqr();\n // B = Y1^2\n var b = this.y.redSqr();\n // C = B^2\n var c = b.redSqr();\n // D = 2 * ((X1 + B)^2 - A - C)\n var d = this.x.redAdd(b).redSqr().redISub(a).redISub(c);\n d = d.redIAdd(d);\n // E = 3 * A\n var e = a.redAdd(a).redIAdd(a);\n // F = E^2\n var f = e.redSqr();\n\n // 8 * C\n var c8 = c.redIAdd(c);\n c8 = c8.redIAdd(c8);\n c8 = c8.redIAdd(c8);\n\n // X3 = F - 2 * D\n nx = f.redISub(d).redISub(d);\n // Y3 = E * (D - X3) - 8 * C\n ny = e.redMul(d.redISub(nx)).redISub(c8);\n // Z3 = 2 * Y1 * Z1\n nz = this.y.redMul(this.z);\n nz = nz.redIAdd(nz);\n }\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype._threeDbl = function _threeDbl() {\n var nx;\n var ny;\n var nz;\n // Z = 1\n if (this.zOne) {\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-3.html\n // #doubling-mdbl-2007-bl\n // 1M + 5S + 15A\n\n // XX = X1^2\n var xx = this.x.redSqr();\n // YY = Y1^2\n var yy = this.y.redSqr();\n // YYYY = YY^2\n var yyyy = yy.redSqr();\n // S = 2 * ((X1 + YY)^2 - XX - YYYY)\n var s = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);\n s = s.redIAdd(s);\n // M = 3 * XX + a\n var m = xx.redAdd(xx).redIAdd(xx).redIAdd(this.curve.a);\n // T = M^2 - 2 * S\n var t = m.redSqr().redISub(s).redISub(s);\n // X3 = T\n nx = t;\n // Y3 = M * (S - T) - 8 * YYYY\n var yyyy8 = yyyy.redIAdd(yyyy);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n ny = m.redMul(s.redISub(t)).redISub(yyyy8);\n // Z3 = 2 * Y1\n nz = this.y.redAdd(this.y);\n } else {\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-3.html#doubling-dbl-2001-b\n // 3M + 5S\n\n // delta = Z1^2\n var delta = this.z.redSqr();\n // gamma = Y1^2\n var gamma = this.y.redSqr();\n // beta = X1 * gamma\n var beta = this.x.redMul(gamma);\n // alpha = 3 * (X1 - delta) * (X1 + delta)\n var alpha = this.x.redSub(delta).redMul(this.x.redAdd(delta));\n alpha = alpha.redAdd(alpha).redIAdd(alpha);\n // X3 = alpha^2 - 8 * beta\n var beta4 = beta.redIAdd(beta);\n beta4 = beta4.redIAdd(beta4);\n var beta8 = beta4.redAdd(beta4);\n nx = alpha.redSqr().redISub(beta8);\n // Z3 = (Y1 + Z1)^2 - gamma - delta\n nz = this.y.redAdd(this.z).redSqr().redISub(gamma).redISub(delta);\n // Y3 = alpha * (4 * beta - X3) - 8 * gamma^2\n var ggamma8 = gamma.redSqr();\n ggamma8 = ggamma8.redIAdd(ggamma8);\n ggamma8 = ggamma8.redIAdd(ggamma8);\n ggamma8 = ggamma8.redIAdd(ggamma8);\n ny = alpha.redMul(beta4.redISub(nx)).redISub(ggamma8);\n }\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype._dbl = function _dbl() {\n var a = this.curve.a;\n\n // 4M + 6S + 10A\n var jx = this.x;\n var jy = this.y;\n var jz = this.z;\n var jz4 = jz.redSqr().redSqr();\n\n var jx2 = jx.redSqr();\n var jy2 = jy.redSqr();\n\n var c = jx2.redAdd(jx2).redIAdd(jx2).redIAdd(a.redMul(jz4));\n\n var jxd4 = jx.redAdd(jx);\n jxd4 = jxd4.redIAdd(jxd4);\n var t1 = jxd4.redMul(jy2);\n var nx = c.redSqr().redISub(t1.redAdd(t1));\n var t2 = t1.redISub(nx);\n\n var jyd8 = jy2.redSqr();\n jyd8 = jyd8.redIAdd(jyd8);\n jyd8 = jyd8.redIAdd(jyd8);\n jyd8 = jyd8.redIAdd(jyd8);\n var ny = c.redMul(t2).redISub(jyd8);\n var nz = jy.redAdd(jy).redMul(jz);\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.trpl = function trpl() {\n if (!this.curve.zeroA)\n return this.dbl().add(this);\n\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-0.html#tripling-tpl-2007-bl\n // 5M + 10S + ...\n\n // XX = X1^2\n var xx = this.x.redSqr();\n // YY = Y1^2\n var yy = this.y.redSqr();\n // ZZ = Z1^2\n var zz = this.z.redSqr();\n // YYYY = YY^2\n var yyyy = yy.redSqr();\n // M = 3 * XX + a * ZZ2; a = 0\n var m = xx.redAdd(xx).redIAdd(xx);\n // MM = M^2\n var mm = m.redSqr();\n // E = 6 * ((X1 + YY)^2 - XX - YYYY) - MM\n var e = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);\n e = e.redIAdd(e);\n e = e.redAdd(e).redIAdd(e);\n e = e.redISub(mm);\n // EE = E^2\n var ee = e.redSqr();\n // T = 16*YYYY\n var t = yyyy.redIAdd(yyyy);\n t = t.redIAdd(t);\n t = t.redIAdd(t);\n t = t.redIAdd(t);\n // U = (M + E)^2 - MM - EE - T\n var u = m.redIAdd(e).redSqr().redISub(mm).redISub(ee).redISub(t);\n // X3 = 4 * (X1 * EE - 4 * YY * U)\n var yyu4 = yy.redMul(u);\n yyu4 = yyu4.redIAdd(yyu4);\n yyu4 = yyu4.redIAdd(yyu4);\n var nx = this.x.redMul(ee).redISub(yyu4);\n nx = nx.redIAdd(nx);\n nx = nx.redIAdd(nx);\n // Y3 = 8 * Y1 * (U * (T - U) - E * EE)\n var ny = this.y.redMul(u.redMul(t.redISub(u)).redISub(e.redMul(ee)));\n ny = ny.redIAdd(ny);\n ny = ny.redIAdd(ny);\n ny = ny.redIAdd(ny);\n // Z3 = (Z1 + E)^2 - ZZ - EE\n var nz = this.z.redAdd(e).redSqr().redISub(zz).redISub(ee);\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.mul = function mul(k, kbase) {\n k = new BN(k, kbase);\n\n return this.curve._wnafMul(this, k);\n};\n\nJPoint.prototype.eq = function eq(p) {\n if (p.type === 'affine')\n return this.eq(p.toJ());\n\n if (this === p)\n return true;\n\n // x1 * z2^2 == x2 * z1^2\n var z2 = this.z.redSqr();\n var pz2 = p.z.redSqr();\n if (this.x.redMul(pz2).redISub(p.x.redMul(z2)).cmpn(0) !== 0)\n return false;\n\n // y1 * z2^3 == y2 * z1^3\n var z3 = z2.redMul(this.z);\n var pz3 = pz2.redMul(p.z);\n return this.y.redMul(pz3).redISub(p.y.redMul(z3)).cmpn(0) === 0;\n};\n\nJPoint.prototype.eqXToP = function eqXToP(x) {\n var zs = this.z.redSqr();\n var rx = x.toRed(this.curve.red).redMul(zs);\n if (this.x.cmp(rx) === 0)\n return true;\n\n var xc = x.clone();\n var t = this.curve.redN.redMul(zs);\n for (;;) {\n xc.iadd(this.curve.n);\n if (xc.cmp(this.curve.p) >= 0)\n return false;\n\n rx.redIAdd(t);\n if (this.x.cmp(rx) === 0)\n return true;\n }\n};\n\nJPoint.prototype.inspect = function inspect() {\n if (this.isInfinity())\n return '';\n return '';\n};\n\nJPoint.prototype.isInfinity = function isInfinity() {\n // XXX This code assumes that zero is always zero in red\n return this.z.cmpn(0) === 0;\n};\n", "'use strict';\n\nvar BN = require('bn.js');\nvar inherits = require('inherits');\nvar Base = require('./base');\n\nvar utils = require('../utils');\n\nfunction MontCurve(conf) {\n Base.call(this, 'mont', conf);\n\n this.a = new BN(conf.a, 16).toRed(this.red);\n this.b = new BN(conf.b, 16).toRed(this.red);\n this.i4 = new BN(4).toRed(this.red).redInvm();\n this.two = new BN(2).toRed(this.red);\n this.a24 = this.i4.redMul(this.a.redAdd(this.two));\n}\ninherits(MontCurve, Base);\nmodule.exports = MontCurve;\n\nMontCurve.prototype.validate = function validate(point) {\n var x = point.normalize().x;\n var x2 = x.redSqr();\n var rhs = x2.redMul(x).redAdd(x2.redMul(this.a)).redAdd(x);\n var y = rhs.redSqrt();\n\n return y.redSqr().cmp(rhs) === 0;\n};\n\nfunction Point(curve, x, z) {\n Base.BasePoint.call(this, curve, 'projective');\n if (x === null && z === null) {\n this.x = this.curve.one;\n this.z = this.curve.zero;\n } else {\n this.x = new BN(x, 16);\n this.z = new BN(z, 16);\n if (!this.x.red)\n this.x = this.x.toRed(this.curve.red);\n if (!this.z.red)\n this.z = this.z.toRed(this.curve.red);\n }\n}\ninherits(Point, Base.BasePoint);\n\nMontCurve.prototype.decodePoint = function decodePoint(bytes, enc) {\n return this.point(utils.toArray(bytes, enc), 1);\n};\n\nMontCurve.prototype.point = function point(x, z) {\n return new Point(this, x, z);\n};\n\nMontCurve.prototype.pointFromJSON = function pointFromJSON(obj) {\n return Point.fromJSON(this, obj);\n};\n\nPoint.prototype.precompute = function precompute() {\n // No-op\n};\n\nPoint.prototype._encode = function _encode() {\n return this.getX().toArray('be', this.curve.p.byteLength());\n};\n\nPoint.fromJSON = function fromJSON(curve, obj) {\n return new Point(curve, obj[0], obj[1] || curve.one);\n};\n\nPoint.prototype.inspect = function inspect() {\n if (this.isInfinity())\n return '';\n return '';\n};\n\nPoint.prototype.isInfinity = function isInfinity() {\n // XXX This code assumes that zero is always zero in red\n return this.z.cmpn(0) === 0;\n};\n\nPoint.prototype.dbl = function dbl() {\n // http://hyperelliptic.org/EFD/g1p/auto-montgom-xz.html#doubling-dbl-1987-m-3\n // 2M + 2S + 4A\n\n // A = X1 + Z1\n var a = this.x.redAdd(this.z);\n // AA = A^2\n var aa = a.redSqr();\n // B = X1 - Z1\n var b = this.x.redSub(this.z);\n // BB = B^2\n var bb = b.redSqr();\n // C = AA - BB\n var c = aa.redSub(bb);\n // X3 = AA * BB\n var nx = aa.redMul(bb);\n // Z3 = C * (BB + A24 * C)\n var nz = c.redMul(bb.redAdd(this.curve.a24.redMul(c)));\n return this.curve.point(nx, nz);\n};\n\nPoint.prototype.add = function add() {\n throw new Error('Not supported on Montgomery curve');\n};\n\nPoint.prototype.diffAdd = function diffAdd(p, diff) {\n // http://hyperelliptic.org/EFD/g1p/auto-montgom-xz.html#diffadd-dadd-1987-m-3\n // 4M + 2S + 6A\n\n // A = X2 + Z2\n var a = this.x.redAdd(this.z);\n // B = X2 - Z2\n var b = this.x.redSub(this.z);\n // C = X3 + Z3\n var c = p.x.redAdd(p.z);\n // D = X3 - Z3\n var d = p.x.redSub(p.z);\n // DA = D * A\n var da = d.redMul(a);\n // CB = C * B\n var cb = c.redMul(b);\n // X5 = Z1 * (DA + CB)^2\n var nx = diff.z.redMul(da.redAdd(cb).redSqr());\n // Z5 = X1 * (DA - CB)^2\n var nz = diff.x.redMul(da.redISub(cb).redSqr());\n return this.curve.point(nx, nz);\n};\n\nPoint.prototype.mul = function mul(k) {\n var t = k.clone();\n var a = this; // (N / 2) * Q + Q\n var b = this.curve.point(null, null); // (N / 2) * Q\n var c = this; // Q\n\n for (var bits = []; t.cmpn(0) !== 0; t.iushrn(1))\n bits.push(t.andln(1));\n\n for (var i = bits.length - 1; i >= 0; i--) {\n if (bits[i] === 0) {\n // N * Q + Q = ((N / 2) * Q + Q)) + (N / 2) * Q\n a = a.diffAdd(b, c);\n // N * Q = 2 * ((N / 2) * Q + Q))\n b = b.dbl();\n } else {\n // N * Q = ((N / 2) * Q + Q) + ((N / 2) * Q)\n b = a.diffAdd(b, c);\n // N * Q + Q = 2 * ((N / 2) * Q + Q)\n a = a.dbl();\n }\n }\n return b;\n};\n\nPoint.prototype.mulAdd = function mulAdd() {\n throw new Error('Not supported on Montgomery curve');\n};\n\nPoint.prototype.jumlAdd = function jumlAdd() {\n throw new Error('Not supported on Montgomery curve');\n};\n\nPoint.prototype.eq = function eq(other) {\n return this.getX().cmp(other.getX()) === 0;\n};\n\nPoint.prototype.normalize = function normalize() {\n this.x = this.x.redMul(this.z.redInvm());\n this.z = this.curve.one;\n return this;\n};\n\nPoint.prototype.getX = function getX() {\n // Normalize coordinates\n this.normalize();\n\n return this.x.fromRed();\n};\n", "'use strict';\n\nvar utils = require('../utils');\nvar BN = require('bn.js');\nvar inherits = require('inherits');\nvar Base = require('./base');\n\nvar assert = utils.assert;\n\nfunction EdwardsCurve(conf) {\n // NOTE: Important as we are creating point in Base.call()\n this.twisted = (conf.a | 0) !== 1;\n this.mOneA = this.twisted && (conf.a | 0) === -1;\n this.extended = this.mOneA;\n\n Base.call(this, 'edwards', conf);\n\n this.a = new BN(conf.a, 16).umod(this.red.m);\n this.a = this.a.toRed(this.red);\n this.c = new BN(conf.c, 16).toRed(this.red);\n this.c2 = this.c.redSqr();\n this.d = new BN(conf.d, 16).toRed(this.red);\n this.dd = this.d.redAdd(this.d);\n\n assert(!this.twisted || this.c.fromRed().cmpn(1) === 0);\n this.oneC = (conf.c | 0) === 1;\n}\ninherits(EdwardsCurve, Base);\nmodule.exports = EdwardsCurve;\n\nEdwardsCurve.prototype._mulA = function _mulA(num) {\n if (this.mOneA)\n return num.redNeg();\n else\n return this.a.redMul(num);\n};\n\nEdwardsCurve.prototype._mulC = function _mulC(num) {\n if (this.oneC)\n return num;\n else\n return this.c.redMul(num);\n};\n\n// Just for compatibility with Short curve\nEdwardsCurve.prototype.jpoint = function jpoint(x, y, z, t) {\n return this.point(x, y, z, t);\n};\n\nEdwardsCurve.prototype.pointFromX = function pointFromX(x, odd) {\n x = new BN(x, 16);\n if (!x.red)\n x = x.toRed(this.red);\n\n var x2 = x.redSqr();\n var rhs = this.c2.redSub(this.a.redMul(x2));\n var lhs = this.one.redSub(this.c2.redMul(this.d).redMul(x2));\n\n var y2 = rhs.redMul(lhs.redInvm());\n var y = y2.redSqrt();\n if (y.redSqr().redSub(y2).cmp(this.zero) !== 0)\n throw new Error('invalid point');\n\n var isOdd = y.fromRed().isOdd();\n if (odd && !isOdd || !odd && isOdd)\n y = y.redNeg();\n\n return this.point(x, y);\n};\n\nEdwardsCurve.prototype.pointFromY = function pointFromY(y, odd) {\n y = new BN(y, 16);\n if (!y.red)\n y = y.toRed(this.red);\n\n // x^2 = (y^2 - c^2) / (c^2 d y^2 - a)\n var y2 = y.redSqr();\n var lhs = y2.redSub(this.c2);\n var rhs = y2.redMul(this.d).redMul(this.c2).redSub(this.a);\n var x2 = lhs.redMul(rhs.redInvm());\n\n if (x2.cmp(this.zero) === 0) {\n if (odd)\n throw new Error('invalid point');\n else\n return this.point(this.zero, y);\n }\n\n var x = x2.redSqrt();\n if (x.redSqr().redSub(x2).cmp(this.zero) !== 0)\n throw new Error('invalid point');\n\n if (x.fromRed().isOdd() !== odd)\n x = x.redNeg();\n\n return this.point(x, y);\n};\n\nEdwardsCurve.prototype.validate = function validate(point) {\n if (point.isInfinity())\n return true;\n\n // Curve: A * X^2 + Y^2 = C^2 * (1 + D * X^2 * Y^2)\n point.normalize();\n\n var x2 = point.x.redSqr();\n var y2 = point.y.redSqr();\n var lhs = x2.redMul(this.a).redAdd(y2);\n var rhs = this.c2.redMul(this.one.redAdd(this.d.redMul(x2).redMul(y2)));\n\n return lhs.cmp(rhs) === 0;\n};\n\nfunction Point(curve, x, y, z, t) {\n Base.BasePoint.call(this, curve, 'projective');\n if (x === null && y === null && z === null) {\n this.x = this.curve.zero;\n this.y = this.curve.one;\n this.z = this.curve.one;\n this.t = this.curve.zero;\n this.zOne = true;\n } else {\n this.x = new BN(x, 16);\n this.y = new BN(y, 16);\n this.z = z ? new BN(z, 16) : this.curve.one;\n this.t = t && new BN(t, 16);\n if (!this.x.red)\n this.x = this.x.toRed(this.curve.red);\n if (!this.y.red)\n this.y = this.y.toRed(this.curve.red);\n if (!this.z.red)\n this.z = this.z.toRed(this.curve.red);\n if (this.t && !this.t.red)\n this.t = this.t.toRed(this.curve.red);\n this.zOne = this.z === this.curve.one;\n\n // Use extended coordinates\n if (this.curve.extended && !this.t) {\n this.t = this.x.redMul(this.y);\n if (!this.zOne)\n this.t = this.t.redMul(this.z.redInvm());\n }\n }\n}\ninherits(Point, Base.BasePoint);\n\nEdwardsCurve.prototype.pointFromJSON = function pointFromJSON(obj) {\n return Point.fromJSON(this, obj);\n};\n\nEdwardsCurve.prototype.point = function point(x, y, z, t) {\n return new Point(this, x, y, z, t);\n};\n\nPoint.fromJSON = function fromJSON(curve, obj) {\n return new Point(curve, obj[0], obj[1], obj[2]);\n};\n\nPoint.prototype.inspect = function inspect() {\n if (this.isInfinity())\n return '';\n return '';\n};\n\nPoint.prototype.isInfinity = function isInfinity() {\n // XXX This code assumes that zero is always zero in red\n return this.x.cmpn(0) === 0 &&\n (this.y.cmp(this.z) === 0 ||\n (this.zOne && this.y.cmp(this.curve.c) === 0));\n};\n\nPoint.prototype._extDbl = function _extDbl() {\n // hyperelliptic.org/EFD/g1p/auto-twisted-extended-1.html\n // #doubling-dbl-2008-hwcd\n // 4M + 4S\n\n // A = X1^2\n var a = this.x.redSqr();\n // B = Y1^2\n var b = this.y.redSqr();\n // C = 2 * Z1^2\n var c = this.z.redSqr();\n c = c.redIAdd(c);\n // D = a * A\n var d = this.curve._mulA(a);\n // E = (X1 + Y1)^2 - A - B\n var e = this.x.redAdd(this.y).redSqr().redISub(a).redISub(b);\n // G = D + B\n var g = d.redAdd(b);\n // F = G - C\n var f = g.redSub(c);\n // H = D - B\n var h = d.redSub(b);\n // X3 = E * F\n var nx = e.redMul(f);\n // Y3 = G * H\n var ny = g.redMul(h);\n // T3 = E * H\n var nt = e.redMul(h);\n // Z3 = F * G\n var nz = f.redMul(g);\n return this.curve.point(nx, ny, nz, nt);\n};\n\nPoint.prototype._projDbl = function _projDbl() {\n // hyperelliptic.org/EFD/g1p/auto-twisted-projective.html\n // #doubling-dbl-2008-bbjlp\n // #doubling-dbl-2007-bl\n // and others\n // Generally 3M + 4S or 2M + 4S\n\n // B = (X1 + Y1)^2\n var b = this.x.redAdd(this.y).redSqr();\n // C = X1^2\n var c = this.x.redSqr();\n // D = Y1^2\n var d = this.y.redSqr();\n\n var nx;\n var ny;\n var nz;\n var e;\n var h;\n var j;\n if (this.curve.twisted) {\n // E = a * C\n e = this.curve._mulA(c);\n // F = E + D\n var f = e.redAdd(d);\n if (this.zOne) {\n // X3 = (B - C - D) * (F - 2)\n nx = b.redSub(c).redSub(d).redMul(f.redSub(this.curve.two));\n // Y3 = F * (E - D)\n ny = f.redMul(e.redSub(d));\n // Z3 = F^2 - 2 * F\n nz = f.redSqr().redSub(f).redSub(f);\n } else {\n // H = Z1^2\n h = this.z.redSqr();\n // J = F - 2 * H\n j = f.redSub(h).redISub(h);\n // X3 = (B-C-D)*J\n nx = b.redSub(c).redISub(d).redMul(j);\n // Y3 = F * (E - D)\n ny = f.redMul(e.redSub(d));\n // Z3 = F * J\n nz = f.redMul(j);\n }\n } else {\n // E = C + D\n e = c.redAdd(d);\n // H = (c * Z1)^2\n h = this.curve._mulC(this.z).redSqr();\n // J = E - 2 * H\n j = e.redSub(h).redSub(h);\n // X3 = c * (B - E) * J\n nx = this.curve._mulC(b.redISub(e)).redMul(j);\n // Y3 = c * E * (C - D)\n ny = this.curve._mulC(e).redMul(c.redISub(d));\n // Z3 = E * J\n nz = e.redMul(j);\n }\n return this.curve.point(nx, ny, nz);\n};\n\nPoint.prototype.dbl = function dbl() {\n if (this.isInfinity())\n return this;\n\n // Double in extended coordinates\n if (this.curve.extended)\n return this._extDbl();\n else\n return this._projDbl();\n};\n\nPoint.prototype._extAdd = function _extAdd(p) {\n // hyperelliptic.org/EFD/g1p/auto-twisted-extended-1.html\n // #addition-add-2008-hwcd-3\n // 8M\n\n // A = (Y1 - X1) * (Y2 - X2)\n var a = this.y.redSub(this.x).redMul(p.y.redSub(p.x));\n // B = (Y1 + X1) * (Y2 + X2)\n var b = this.y.redAdd(this.x).redMul(p.y.redAdd(p.x));\n // C = T1 * k * T2\n var c = this.t.redMul(this.curve.dd).redMul(p.t);\n // D = Z1 * 2 * Z2\n var d = this.z.redMul(p.z.redAdd(p.z));\n // E = B - A\n var e = b.redSub(a);\n // F = D - C\n var f = d.redSub(c);\n // G = D + C\n var g = d.redAdd(c);\n // H = B + A\n var h = b.redAdd(a);\n // X3 = E * F\n var nx = e.redMul(f);\n // Y3 = G * H\n var ny = g.redMul(h);\n // T3 = E * H\n var nt = e.redMul(h);\n // Z3 = F * G\n var nz = f.redMul(g);\n return this.curve.point(nx, ny, nz, nt);\n};\n\nPoint.prototype._projAdd = function _projAdd(p) {\n // hyperelliptic.org/EFD/g1p/auto-twisted-projective.html\n // #addition-add-2008-bbjlp\n // #addition-add-2007-bl\n // 10M + 1S\n\n // A = Z1 * Z2\n var a = this.z.redMul(p.z);\n // B = A^2\n var b = a.redSqr();\n // C = X1 * X2\n var c = this.x.redMul(p.x);\n // D = Y1 * Y2\n var d = this.y.redMul(p.y);\n // E = d * C * D\n var e = this.curve.d.redMul(c).redMul(d);\n // F = B - E\n var f = b.redSub(e);\n // G = B + E\n var g = b.redAdd(e);\n // X3 = A * F * ((X1 + Y1) * (X2 + Y2) - C - D)\n var tmp = this.x.redAdd(this.y).redMul(p.x.redAdd(p.y)).redISub(c).redISub(d);\n var nx = a.redMul(f).redMul(tmp);\n var ny;\n var nz;\n if (this.curve.twisted) {\n // Y3 = A * G * (D - a * C)\n ny = a.redMul(g).redMul(d.redSub(this.curve._mulA(c)));\n // Z3 = F * G\n nz = f.redMul(g);\n } else {\n // Y3 = A * G * (D - C)\n ny = a.redMul(g).redMul(d.redSub(c));\n // Z3 = c * F * G\n nz = this.curve._mulC(f).redMul(g);\n }\n return this.curve.point(nx, ny, nz);\n};\n\nPoint.prototype.add = function add(p) {\n if (this.isInfinity())\n return p;\n if (p.isInfinity())\n return this;\n\n if (this.curve.extended)\n return this._extAdd(p);\n else\n return this._projAdd(p);\n};\n\nPoint.prototype.mul = function mul(k) {\n if (this._hasDoubles(k))\n return this.curve._fixedNafMul(this, k);\n else\n return this.curve._wnafMul(this, k);\n};\n\nPoint.prototype.mulAdd = function mulAdd(k1, p, k2) {\n return this.curve._wnafMulAdd(1, [ this, p ], [ k1, k2 ], 2, false);\n};\n\nPoint.prototype.jmulAdd = function jmulAdd(k1, p, k2) {\n return this.curve._wnafMulAdd(1, [ this, p ], [ k1, k2 ], 2, true);\n};\n\nPoint.prototype.normalize = function normalize() {\n if (this.zOne)\n return this;\n\n // Normalize coordinates\n var zi = this.z.redInvm();\n this.x = this.x.redMul(zi);\n this.y = this.y.redMul(zi);\n if (this.t)\n this.t = this.t.redMul(zi);\n this.z = this.curve.one;\n this.zOne = true;\n return this;\n};\n\nPoint.prototype.neg = function neg() {\n return this.curve.point(this.x.redNeg(),\n this.y,\n this.z,\n this.t && this.t.redNeg());\n};\n\nPoint.prototype.getX = function getX() {\n this.normalize();\n return this.x.fromRed();\n};\n\nPoint.prototype.getY = function getY() {\n this.normalize();\n return this.y.fromRed();\n};\n\nPoint.prototype.eq = function eq(other) {\n return this === other ||\n this.getX().cmp(other.getX()) === 0 &&\n this.getY().cmp(other.getY()) === 0;\n};\n\nPoint.prototype.eqXToP = function eqXToP(x) {\n var rx = x.toRed(this.curve.red).redMul(this.z);\n if (this.x.cmp(rx) === 0)\n return true;\n\n var xc = x.clone();\n var t = this.curve.redN.redMul(this.z);\n for (;;) {\n xc.iadd(this.curve.n);\n if (xc.cmp(this.curve.p) >= 0)\n return false;\n\n rx.redIAdd(t);\n if (this.x.cmp(rx) === 0)\n return true;\n }\n};\n\n// Compatibility with BaseCurve\nPoint.prototype.toP = Point.prototype.normalize;\nPoint.prototype.mixedAdd = Point.prototype.add;\n", "'use strict';\n\nvar curve = exports;\n\ncurve.base = require('./base');\ncurve.short = require('./short');\ncurve.mont = require('./mont');\ncurve.edwards = require('./edwards');\n", "'use strict';\n\nvar assert = require('minimalistic-assert');\nvar inherits = require('inherits');\n\nexports.inherits = inherits;\n\nfunction isSurrogatePair(msg, i) {\n if ((msg.charCodeAt(i) & 0xFC00) !== 0xD800) {\n return false;\n }\n if (i < 0 || i + 1 >= msg.length) {\n return false;\n }\n return (msg.charCodeAt(i + 1) & 0xFC00) === 0xDC00;\n}\n\nfunction toArray(msg, enc) {\n if (Array.isArray(msg))\n return msg.slice();\n if (!msg)\n return [];\n var res = [];\n if (typeof msg === 'string') {\n if (!enc) {\n // Inspired by stringToUtf8ByteArray() in closure-library by Google\n // https://github.com/google/closure-library/blob/8598d87242af59aac233270742c8984e2b2bdbe0/closure/goog/crypt/crypt.js#L117-L143\n // Apache License 2.0\n // https://github.com/google/closure-library/blob/master/LICENSE\n var p = 0;\n for (var i = 0; i < msg.length; i++) {\n var c = msg.charCodeAt(i);\n if (c < 128) {\n res[p++] = c;\n } else if (c < 2048) {\n res[p++] = (c >> 6) | 192;\n res[p++] = (c & 63) | 128;\n } else if (isSurrogatePair(msg, i)) {\n c = 0x10000 + ((c & 0x03FF) << 10) + (msg.charCodeAt(++i) & 0x03FF);\n res[p++] = (c >> 18) | 240;\n res[p++] = ((c >> 12) & 63) | 128;\n res[p++] = ((c >> 6) & 63) | 128;\n res[p++] = (c & 63) | 128;\n } else {\n res[p++] = (c >> 12) | 224;\n res[p++] = ((c >> 6) & 63) | 128;\n res[p++] = (c & 63) | 128;\n }\n }\n } else if (enc === 'hex') {\n msg = msg.replace(/[^a-z0-9]+/ig, '');\n if (msg.length % 2 !== 0)\n msg = '0' + msg;\n for (i = 0; i < msg.length; i += 2)\n res.push(parseInt(msg[i] + msg[i + 1], 16));\n }\n } else {\n for (i = 0; i < msg.length; i++)\n res[i] = msg[i] | 0;\n }\n return res;\n}\nexports.toArray = toArray;\n\nfunction toHex(msg) {\n var res = '';\n for (var i = 0; i < msg.length; i++)\n res += zero2(msg[i].toString(16));\n return res;\n}\nexports.toHex = toHex;\n\nfunction htonl(w) {\n var res = (w >>> 24) |\n ((w >>> 8) & 0xff00) |\n ((w << 8) & 0xff0000) |\n ((w & 0xff) << 24);\n return res >>> 0;\n}\nexports.htonl = htonl;\n\nfunction toHex32(msg, endian) {\n var res = '';\n for (var i = 0; i < msg.length; i++) {\n var w = msg[i];\n if (endian === 'little')\n w = htonl(w);\n res += zero8(w.toString(16));\n }\n return res;\n}\nexports.toHex32 = toHex32;\n\nfunction zero2(word) {\n if (word.length === 1)\n return '0' + word;\n else\n return word;\n}\nexports.zero2 = zero2;\n\nfunction zero8(word) {\n if (word.length === 7)\n return '0' + word;\n else if (word.length === 6)\n return '00' + word;\n else if (word.length === 5)\n return '000' + word;\n else if (word.length === 4)\n return '0000' + word;\n else if (word.length === 3)\n return '00000' + word;\n else if (word.length === 2)\n return '000000' + word;\n else if (word.length === 1)\n return '0000000' + word;\n else\n return word;\n}\nexports.zero8 = zero8;\n\nfunction join32(msg, start, end, endian) {\n var len = end - start;\n assert(len % 4 === 0);\n var res = new Array(len / 4);\n for (var i = 0, k = start; i < res.length; i++, k += 4) {\n var w;\n if (endian === 'big')\n w = (msg[k] << 24) | (msg[k + 1] << 16) | (msg[k + 2] << 8) | msg[k + 3];\n else\n w = (msg[k + 3] << 24) | (msg[k + 2] << 16) | (msg[k + 1] << 8) | msg[k];\n res[i] = w >>> 0;\n }\n return res;\n}\nexports.join32 = join32;\n\nfunction split32(msg, endian) {\n var res = new Array(msg.length * 4);\n for (var i = 0, k = 0; i < msg.length; i++, k += 4) {\n var m = msg[i];\n if (endian === 'big') {\n res[k] = m >>> 24;\n res[k + 1] = (m >>> 16) & 0xff;\n res[k + 2] = (m >>> 8) & 0xff;\n res[k + 3] = m & 0xff;\n } else {\n res[k + 3] = m >>> 24;\n res[k + 2] = (m >>> 16) & 0xff;\n res[k + 1] = (m >>> 8) & 0xff;\n res[k] = m & 0xff;\n }\n }\n return res;\n}\nexports.split32 = split32;\n\nfunction rotr32(w, b) {\n return (w >>> b) | (w << (32 - b));\n}\nexports.rotr32 = rotr32;\n\nfunction rotl32(w, b) {\n return (w << b) | (w >>> (32 - b));\n}\nexports.rotl32 = rotl32;\n\nfunction sum32(a, b) {\n return (a + b) >>> 0;\n}\nexports.sum32 = sum32;\n\nfunction sum32_3(a, b, c) {\n return (a + b + c) >>> 0;\n}\nexports.sum32_3 = sum32_3;\n\nfunction sum32_4(a, b, c, d) {\n return (a + b + c + d) >>> 0;\n}\nexports.sum32_4 = sum32_4;\n\nfunction sum32_5(a, b, c, d, e) {\n return (a + b + c + d + e) >>> 0;\n}\nexports.sum32_5 = sum32_5;\n\nfunction sum64(buf, pos, ah, al) {\n var bh = buf[pos];\n var bl = buf[pos + 1];\n\n var lo = (al + bl) >>> 0;\n var hi = (lo < al ? 1 : 0) + ah + bh;\n buf[pos] = hi >>> 0;\n buf[pos + 1] = lo;\n}\nexports.sum64 = sum64;\n\nfunction sum64_hi(ah, al, bh, bl) {\n var lo = (al + bl) >>> 0;\n var hi = (lo < al ? 1 : 0) + ah + bh;\n return hi >>> 0;\n}\nexports.sum64_hi = sum64_hi;\n\nfunction sum64_lo(ah, al, bh, bl) {\n var lo = al + bl;\n return lo >>> 0;\n}\nexports.sum64_lo = sum64_lo;\n\nfunction sum64_4_hi(ah, al, bh, bl, ch, cl, dh, dl) {\n var carry = 0;\n var lo = al;\n lo = (lo + bl) >>> 0;\n carry += lo < al ? 1 : 0;\n lo = (lo + cl) >>> 0;\n carry += lo < cl ? 1 : 0;\n lo = (lo + dl) >>> 0;\n carry += lo < dl ? 1 : 0;\n\n var hi = ah + bh + ch + dh + carry;\n return hi >>> 0;\n}\nexports.sum64_4_hi = sum64_4_hi;\n\nfunction sum64_4_lo(ah, al, bh, bl, ch, cl, dh, dl) {\n var lo = al + bl + cl + dl;\n return lo >>> 0;\n}\nexports.sum64_4_lo = sum64_4_lo;\n\nfunction sum64_5_hi(ah, al, bh, bl, ch, cl, dh, dl, eh, el) {\n var carry = 0;\n var lo = al;\n lo = (lo + bl) >>> 0;\n carry += lo < al ? 1 : 0;\n lo = (lo + cl) >>> 0;\n carry += lo < cl ? 1 : 0;\n lo = (lo + dl) >>> 0;\n carry += lo < dl ? 1 : 0;\n lo = (lo + el) >>> 0;\n carry += lo < el ? 1 : 0;\n\n var hi = ah + bh + ch + dh + eh + carry;\n return hi >>> 0;\n}\nexports.sum64_5_hi = sum64_5_hi;\n\nfunction sum64_5_lo(ah, al, bh, bl, ch, cl, dh, dl, eh, el) {\n var lo = al + bl + cl + dl + el;\n\n return lo >>> 0;\n}\nexports.sum64_5_lo = sum64_5_lo;\n\nfunction rotr64_hi(ah, al, num) {\n var r = (al << (32 - num)) | (ah >>> num);\n return r >>> 0;\n}\nexports.rotr64_hi = rotr64_hi;\n\nfunction rotr64_lo(ah, al, num) {\n var r = (ah << (32 - num)) | (al >>> num);\n return r >>> 0;\n}\nexports.rotr64_lo = rotr64_lo;\n\nfunction shr64_hi(ah, al, num) {\n return ah >>> num;\n}\nexports.shr64_hi = shr64_hi;\n\nfunction shr64_lo(ah, al, num) {\n var r = (ah << (32 - num)) | (al >>> num);\n return r >>> 0;\n}\nexports.shr64_lo = shr64_lo;\n", "'use strict';\n\nvar utils = require('./utils');\nvar assert = require('minimalistic-assert');\n\nfunction BlockHash() {\n this.pending = null;\n this.pendingTotal = 0;\n this.blockSize = this.constructor.blockSize;\n this.outSize = this.constructor.outSize;\n this.hmacStrength = this.constructor.hmacStrength;\n this.padLength = this.constructor.padLength / 8;\n this.endian = 'big';\n\n this._delta8 = this.blockSize / 8;\n this._delta32 = this.blockSize / 32;\n}\nexports.BlockHash = BlockHash;\n\nBlockHash.prototype.update = function update(msg, enc) {\n // Convert message to array, pad it, and join into 32bit blocks\n msg = utils.toArray(msg, enc);\n if (!this.pending)\n this.pending = msg;\n else\n this.pending = this.pending.concat(msg);\n this.pendingTotal += msg.length;\n\n // Enough data, try updating\n if (this.pending.length >= this._delta8) {\n msg = this.pending;\n\n // Process pending data in blocks\n var r = msg.length % this._delta8;\n this.pending = msg.slice(msg.length - r, msg.length);\n if (this.pending.length === 0)\n this.pending = null;\n\n msg = utils.join32(msg, 0, msg.length - r, this.endian);\n for (var i = 0; i < msg.length; i += this._delta32)\n this._update(msg, i, i + this._delta32);\n }\n\n return this;\n};\n\nBlockHash.prototype.digest = function digest(enc) {\n this.update(this._pad());\n assert(this.pending === null);\n\n return this._digest(enc);\n};\n\nBlockHash.prototype._pad = function pad() {\n var len = this.pendingTotal;\n var bytes = this._delta8;\n var k = bytes - ((len + this.padLength) % bytes);\n var res = new Array(k + this.padLength);\n res[0] = 0x80;\n for (var i = 1; i < k; i++)\n res[i] = 0;\n\n // Append length\n len <<= 3;\n if (this.endian === 'big') {\n for (var t = 8; t < this.padLength; t++)\n res[i++] = 0;\n\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = (len >>> 24) & 0xff;\n res[i++] = (len >>> 16) & 0xff;\n res[i++] = (len >>> 8) & 0xff;\n res[i++] = len & 0xff;\n } else {\n res[i++] = len & 0xff;\n res[i++] = (len >>> 8) & 0xff;\n res[i++] = (len >>> 16) & 0xff;\n res[i++] = (len >>> 24) & 0xff;\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = 0;\n\n for (t = 8; t < this.padLength; t++)\n res[i++] = 0;\n }\n\n return res;\n};\n", "'use strict';\n\nvar utils = require('../utils');\nvar rotr32 = utils.rotr32;\n\nfunction ft_1(s, x, y, z) {\n if (s === 0)\n return ch32(x, y, z);\n if (s === 1 || s === 3)\n return p32(x, y, z);\n if (s === 2)\n return maj32(x, y, z);\n}\nexports.ft_1 = ft_1;\n\nfunction ch32(x, y, z) {\n return (x & y) ^ ((~x) & z);\n}\nexports.ch32 = ch32;\n\nfunction maj32(x, y, z) {\n return (x & y) ^ (x & z) ^ (y & z);\n}\nexports.maj32 = maj32;\n\nfunction p32(x, y, z) {\n return x ^ y ^ z;\n}\nexports.p32 = p32;\n\nfunction s0_256(x) {\n return rotr32(x, 2) ^ rotr32(x, 13) ^ rotr32(x, 22);\n}\nexports.s0_256 = s0_256;\n\nfunction s1_256(x) {\n return rotr32(x, 6) ^ rotr32(x, 11) ^ rotr32(x, 25);\n}\nexports.s1_256 = s1_256;\n\nfunction g0_256(x) {\n return rotr32(x, 7) ^ rotr32(x, 18) ^ (x >>> 3);\n}\nexports.g0_256 = g0_256;\n\nfunction g1_256(x) {\n return rotr32(x, 17) ^ rotr32(x, 19) ^ (x >>> 10);\n}\nexports.g1_256 = g1_256;\n", "'use strict';\n\nvar utils = require('../utils');\nvar common = require('../common');\nvar shaCommon = require('./common');\n\nvar rotl32 = utils.rotl32;\nvar sum32 = utils.sum32;\nvar sum32_5 = utils.sum32_5;\nvar ft_1 = shaCommon.ft_1;\nvar BlockHash = common.BlockHash;\n\nvar sha1_K = [\n 0x5A827999, 0x6ED9EBA1,\n 0x8F1BBCDC, 0xCA62C1D6\n];\n\nfunction SHA1() {\n if (!(this instanceof SHA1))\n return new SHA1();\n\n BlockHash.call(this);\n this.h = [\n 0x67452301, 0xefcdab89, 0x98badcfe,\n 0x10325476, 0xc3d2e1f0 ];\n this.W = new Array(80);\n}\n\nutils.inherits(SHA1, BlockHash);\nmodule.exports = SHA1;\n\nSHA1.blockSize = 512;\nSHA1.outSize = 160;\nSHA1.hmacStrength = 80;\nSHA1.padLength = 64;\n\nSHA1.prototype._update = function _update(msg, start) {\n var W = this.W;\n\n for (var i = 0; i < 16; i++)\n W[i] = msg[start + i];\n\n for(; i < W.length; i++)\n W[i] = rotl32(W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16], 1);\n\n var a = this.h[0];\n var b = this.h[1];\n var c = this.h[2];\n var d = this.h[3];\n var e = this.h[4];\n\n for (i = 0; i < W.length; i++) {\n var s = ~~(i / 20);\n var t = sum32_5(rotl32(a, 5), ft_1(s, b, c, d), e, W[i], sha1_K[s]);\n e = d;\n d = c;\n c = rotl32(b, 30);\n b = a;\n a = t;\n }\n\n this.h[0] = sum32(this.h[0], a);\n this.h[1] = sum32(this.h[1], b);\n this.h[2] = sum32(this.h[2], c);\n this.h[3] = sum32(this.h[3], d);\n this.h[4] = sum32(this.h[4], e);\n};\n\nSHA1.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h, 'big');\n else\n return utils.split32(this.h, 'big');\n};\n", "'use strict';\n\nvar utils = require('../utils');\nvar common = require('../common');\nvar shaCommon = require('./common');\nvar assert = require('minimalistic-assert');\n\nvar sum32 = utils.sum32;\nvar sum32_4 = utils.sum32_4;\nvar sum32_5 = utils.sum32_5;\nvar ch32 = shaCommon.ch32;\nvar maj32 = shaCommon.maj32;\nvar s0_256 = shaCommon.s0_256;\nvar s1_256 = shaCommon.s1_256;\nvar g0_256 = shaCommon.g0_256;\nvar g1_256 = shaCommon.g1_256;\n\nvar BlockHash = common.BlockHash;\n\nvar sha256_K = [\n 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5,\n 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5,\n 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3,\n 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174,\n 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc,\n 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,\n 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7,\n 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967,\n 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13,\n 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,\n 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3,\n 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,\n 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5,\n 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3,\n 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208,\n 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2\n];\n\nfunction SHA256() {\n if (!(this instanceof SHA256))\n return new SHA256();\n\n BlockHash.call(this);\n this.h = [\n 0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a,\n 0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19\n ];\n this.k = sha256_K;\n this.W = new Array(64);\n}\nutils.inherits(SHA256, BlockHash);\nmodule.exports = SHA256;\n\nSHA256.blockSize = 512;\nSHA256.outSize = 256;\nSHA256.hmacStrength = 192;\nSHA256.padLength = 64;\n\nSHA256.prototype._update = function _update(msg, start) {\n var W = this.W;\n\n for (var i = 0; i < 16; i++)\n W[i] = msg[start + i];\n for (; i < W.length; i++)\n W[i] = sum32_4(g1_256(W[i - 2]), W[i - 7], g0_256(W[i - 15]), W[i - 16]);\n\n var a = this.h[0];\n var b = this.h[1];\n var c = this.h[2];\n var d = this.h[3];\n var e = this.h[4];\n var f = this.h[5];\n var g = this.h[6];\n var h = this.h[7];\n\n assert(this.k.length === W.length);\n for (i = 0; i < W.length; i++) {\n var T1 = sum32_5(h, s1_256(e), ch32(e, f, g), this.k[i], W[i]);\n var T2 = sum32(s0_256(a), maj32(a, b, c));\n h = g;\n g = f;\n f = e;\n e = sum32(d, T1);\n d = c;\n c = b;\n b = a;\n a = sum32(T1, T2);\n }\n\n this.h[0] = sum32(this.h[0], a);\n this.h[1] = sum32(this.h[1], b);\n this.h[2] = sum32(this.h[2], c);\n this.h[3] = sum32(this.h[3], d);\n this.h[4] = sum32(this.h[4], e);\n this.h[5] = sum32(this.h[5], f);\n this.h[6] = sum32(this.h[6], g);\n this.h[7] = sum32(this.h[7], h);\n};\n\nSHA256.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h, 'big');\n else\n return utils.split32(this.h, 'big');\n};\n", "'use strict';\n\nvar utils = require('../utils');\nvar SHA256 = require('./256');\n\nfunction SHA224() {\n if (!(this instanceof SHA224))\n return new SHA224();\n\n SHA256.call(this);\n this.h = [\n 0xc1059ed8, 0x367cd507, 0x3070dd17, 0xf70e5939,\n 0xffc00b31, 0x68581511, 0x64f98fa7, 0xbefa4fa4 ];\n}\nutils.inherits(SHA224, SHA256);\nmodule.exports = SHA224;\n\nSHA224.blockSize = 512;\nSHA224.outSize = 224;\nSHA224.hmacStrength = 192;\nSHA224.padLength = 64;\n\nSHA224.prototype._digest = function digest(enc) {\n // Just truncate output\n if (enc === 'hex')\n return utils.toHex32(this.h.slice(0, 7), 'big');\n else\n return utils.split32(this.h.slice(0, 7), 'big');\n};\n\n", "'use strict';\n\nvar utils = require('../utils');\nvar common = require('../common');\nvar assert = require('minimalistic-assert');\n\nvar rotr64_hi = utils.rotr64_hi;\nvar rotr64_lo = utils.rotr64_lo;\nvar shr64_hi = utils.shr64_hi;\nvar shr64_lo = utils.shr64_lo;\nvar sum64 = utils.sum64;\nvar sum64_hi = utils.sum64_hi;\nvar sum64_lo = utils.sum64_lo;\nvar sum64_4_hi = utils.sum64_4_hi;\nvar sum64_4_lo = utils.sum64_4_lo;\nvar sum64_5_hi = utils.sum64_5_hi;\nvar sum64_5_lo = utils.sum64_5_lo;\n\nvar BlockHash = common.BlockHash;\n\nvar sha512_K = [\n 0x428a2f98, 0xd728ae22, 0x71374491, 0x23ef65cd,\n 0xb5c0fbcf, 0xec4d3b2f, 0xe9b5dba5, 0x8189dbbc,\n 0x3956c25b, 0xf348b538, 0x59f111f1, 0xb605d019,\n 0x923f82a4, 0xaf194f9b, 0xab1c5ed5, 0xda6d8118,\n 0xd807aa98, 0xa3030242, 0x12835b01, 0x45706fbe,\n 0x243185be, 0x4ee4b28c, 0x550c7dc3, 0xd5ffb4e2,\n 0x72be5d74, 0xf27b896f, 0x80deb1fe, 0x3b1696b1,\n 0x9bdc06a7, 0x25c71235, 0xc19bf174, 0xcf692694,\n 0xe49b69c1, 0x9ef14ad2, 0xefbe4786, 0x384f25e3,\n 0x0fc19dc6, 0x8b8cd5b5, 0x240ca1cc, 0x77ac9c65,\n 0x2de92c6f, 0x592b0275, 0x4a7484aa, 0x6ea6e483,\n 0x5cb0a9dc, 0xbd41fbd4, 0x76f988da, 0x831153b5,\n 0x983e5152, 0xee66dfab, 0xa831c66d, 0x2db43210,\n 0xb00327c8, 0x98fb213f, 0xbf597fc7, 0xbeef0ee4,\n 0xc6e00bf3, 0x3da88fc2, 0xd5a79147, 0x930aa725,\n 0x06ca6351, 0xe003826f, 0x14292967, 0x0a0e6e70,\n 0x27b70a85, 0x46d22ffc, 0x2e1b2138, 0x5c26c926,\n 0x4d2c6dfc, 0x5ac42aed, 0x53380d13, 0x9d95b3df,\n 0x650a7354, 0x8baf63de, 0x766a0abb, 0x3c77b2a8,\n 0x81c2c92e, 0x47edaee6, 0x92722c85, 0x1482353b,\n 0xa2bfe8a1, 0x4cf10364, 0xa81a664b, 0xbc423001,\n 0xc24b8b70, 0xd0f89791, 0xc76c51a3, 0x0654be30,\n 0xd192e819, 0xd6ef5218, 0xd6990624, 0x5565a910,\n 0xf40e3585, 0x5771202a, 0x106aa070, 0x32bbd1b8,\n 0x19a4c116, 0xb8d2d0c8, 0x1e376c08, 0x5141ab53,\n 0x2748774c, 0xdf8eeb99, 0x34b0bcb5, 0xe19b48a8,\n 0x391c0cb3, 0xc5c95a63, 0x4ed8aa4a, 0xe3418acb,\n 0x5b9cca4f, 0x7763e373, 0x682e6ff3, 0xd6b2b8a3,\n 0x748f82ee, 0x5defb2fc, 0x78a5636f, 0x43172f60,\n 0x84c87814, 0xa1f0ab72, 0x8cc70208, 0x1a6439ec,\n 0x90befffa, 0x23631e28, 0xa4506ceb, 0xde82bde9,\n 0xbef9a3f7, 0xb2c67915, 0xc67178f2, 0xe372532b,\n 0xca273ece, 0xea26619c, 0xd186b8c7, 0x21c0c207,\n 0xeada7dd6, 0xcde0eb1e, 0xf57d4f7f, 0xee6ed178,\n 0x06f067aa, 0x72176fba, 0x0a637dc5, 0xa2c898a6,\n 0x113f9804, 0xbef90dae, 0x1b710b35, 0x131c471b,\n 0x28db77f5, 0x23047d84, 0x32caab7b, 0x40c72493,\n 0x3c9ebe0a, 0x15c9bebc, 0x431d67c4, 0x9c100d4c,\n 0x4cc5d4be, 0xcb3e42b6, 0x597f299c, 0xfc657e2a,\n 0x5fcb6fab, 0x3ad6faec, 0x6c44198c, 0x4a475817\n];\n\nfunction SHA512() {\n if (!(this instanceof SHA512))\n return new SHA512();\n\n BlockHash.call(this);\n this.h = [\n 0x6a09e667, 0xf3bcc908,\n 0xbb67ae85, 0x84caa73b,\n 0x3c6ef372, 0xfe94f82b,\n 0xa54ff53a, 0x5f1d36f1,\n 0x510e527f, 0xade682d1,\n 0x9b05688c, 0x2b3e6c1f,\n 0x1f83d9ab, 0xfb41bd6b,\n 0x5be0cd19, 0x137e2179 ];\n this.k = sha512_K;\n this.W = new Array(160);\n}\nutils.inherits(SHA512, BlockHash);\nmodule.exports = SHA512;\n\nSHA512.blockSize = 1024;\nSHA512.outSize = 512;\nSHA512.hmacStrength = 192;\nSHA512.padLength = 128;\n\nSHA512.prototype._prepareBlock = function _prepareBlock(msg, start) {\n var W = this.W;\n\n // 32 x 32bit words\n for (var i = 0; i < 32; i++)\n W[i] = msg[start + i];\n for (; i < W.length; i += 2) {\n var c0_hi = g1_512_hi(W[i - 4], W[i - 3]); // i - 2\n var c0_lo = g1_512_lo(W[i - 4], W[i - 3]);\n var c1_hi = W[i - 14]; // i - 7\n var c1_lo = W[i - 13];\n var c2_hi = g0_512_hi(W[i - 30], W[i - 29]); // i - 15\n var c2_lo = g0_512_lo(W[i - 30], W[i - 29]);\n var c3_hi = W[i - 32]; // i - 16\n var c3_lo = W[i - 31];\n\n W[i] = sum64_4_hi(\n c0_hi, c0_lo,\n c1_hi, c1_lo,\n c2_hi, c2_lo,\n c3_hi, c3_lo);\n W[i + 1] = sum64_4_lo(\n c0_hi, c0_lo,\n c1_hi, c1_lo,\n c2_hi, c2_lo,\n c3_hi, c3_lo);\n }\n};\n\nSHA512.prototype._update = function _update(msg, start) {\n this._prepareBlock(msg, start);\n\n var W = this.W;\n\n var ah = this.h[0];\n var al = this.h[1];\n var bh = this.h[2];\n var bl = this.h[3];\n var ch = this.h[4];\n var cl = this.h[5];\n var dh = this.h[6];\n var dl = this.h[7];\n var eh = this.h[8];\n var el = this.h[9];\n var fh = this.h[10];\n var fl = this.h[11];\n var gh = this.h[12];\n var gl = this.h[13];\n var hh = this.h[14];\n var hl = this.h[15];\n\n assert(this.k.length === W.length);\n for (var i = 0; i < W.length; i += 2) {\n var c0_hi = hh;\n var c0_lo = hl;\n var c1_hi = s1_512_hi(eh, el);\n var c1_lo = s1_512_lo(eh, el);\n var c2_hi = ch64_hi(eh, el, fh, fl, gh, gl);\n var c2_lo = ch64_lo(eh, el, fh, fl, gh, gl);\n var c3_hi = this.k[i];\n var c3_lo = this.k[i + 1];\n var c4_hi = W[i];\n var c4_lo = W[i + 1];\n\n var T1_hi = sum64_5_hi(\n c0_hi, c0_lo,\n c1_hi, c1_lo,\n c2_hi, c2_lo,\n c3_hi, c3_lo,\n c4_hi, c4_lo);\n var T1_lo = sum64_5_lo(\n c0_hi, c0_lo,\n c1_hi, c1_lo,\n c2_hi, c2_lo,\n c3_hi, c3_lo,\n c4_hi, c4_lo);\n\n c0_hi = s0_512_hi(ah, al);\n c0_lo = s0_512_lo(ah, al);\n c1_hi = maj64_hi(ah, al, bh, bl, ch, cl);\n c1_lo = maj64_lo(ah, al, bh, bl, ch, cl);\n\n var T2_hi = sum64_hi(c0_hi, c0_lo, c1_hi, c1_lo);\n var T2_lo = sum64_lo(c0_hi, c0_lo, c1_hi, c1_lo);\n\n hh = gh;\n hl = gl;\n\n gh = fh;\n gl = fl;\n\n fh = eh;\n fl = el;\n\n eh = sum64_hi(dh, dl, T1_hi, T1_lo);\n el = sum64_lo(dl, dl, T1_hi, T1_lo);\n\n dh = ch;\n dl = cl;\n\n ch = bh;\n cl = bl;\n\n bh = ah;\n bl = al;\n\n ah = sum64_hi(T1_hi, T1_lo, T2_hi, T2_lo);\n al = sum64_lo(T1_hi, T1_lo, T2_hi, T2_lo);\n }\n\n sum64(this.h, 0, ah, al);\n sum64(this.h, 2, bh, bl);\n sum64(this.h, 4, ch, cl);\n sum64(this.h, 6, dh, dl);\n sum64(this.h, 8, eh, el);\n sum64(this.h, 10, fh, fl);\n sum64(this.h, 12, gh, gl);\n sum64(this.h, 14, hh, hl);\n};\n\nSHA512.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h, 'big');\n else\n return utils.split32(this.h, 'big');\n};\n\nfunction ch64_hi(xh, xl, yh, yl, zh) {\n var r = (xh & yh) ^ ((~xh) & zh);\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction ch64_lo(xh, xl, yh, yl, zh, zl) {\n var r = (xl & yl) ^ ((~xl) & zl);\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction maj64_hi(xh, xl, yh, yl, zh) {\n var r = (xh & yh) ^ (xh & zh) ^ (yh & zh);\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction maj64_lo(xh, xl, yh, yl, zh, zl) {\n var r = (xl & yl) ^ (xl & zl) ^ (yl & zl);\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction s0_512_hi(xh, xl) {\n var c0_hi = rotr64_hi(xh, xl, 28);\n var c1_hi = rotr64_hi(xl, xh, 2); // 34\n var c2_hi = rotr64_hi(xl, xh, 7); // 39\n\n var r = c0_hi ^ c1_hi ^ c2_hi;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction s0_512_lo(xh, xl) {\n var c0_lo = rotr64_lo(xh, xl, 28);\n var c1_lo = rotr64_lo(xl, xh, 2); // 34\n var c2_lo = rotr64_lo(xl, xh, 7); // 39\n\n var r = c0_lo ^ c1_lo ^ c2_lo;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction s1_512_hi(xh, xl) {\n var c0_hi = rotr64_hi(xh, xl, 14);\n var c1_hi = rotr64_hi(xh, xl, 18);\n var c2_hi = rotr64_hi(xl, xh, 9); // 41\n\n var r = c0_hi ^ c1_hi ^ c2_hi;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction s1_512_lo(xh, xl) {\n var c0_lo = rotr64_lo(xh, xl, 14);\n var c1_lo = rotr64_lo(xh, xl, 18);\n var c2_lo = rotr64_lo(xl, xh, 9); // 41\n\n var r = c0_lo ^ c1_lo ^ c2_lo;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction g0_512_hi(xh, xl) {\n var c0_hi = rotr64_hi(xh, xl, 1);\n var c1_hi = rotr64_hi(xh, xl, 8);\n var c2_hi = shr64_hi(xh, xl, 7);\n\n var r = c0_hi ^ c1_hi ^ c2_hi;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction g0_512_lo(xh, xl) {\n var c0_lo = rotr64_lo(xh, xl, 1);\n var c1_lo = rotr64_lo(xh, xl, 8);\n var c2_lo = shr64_lo(xh, xl, 7);\n\n var r = c0_lo ^ c1_lo ^ c2_lo;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction g1_512_hi(xh, xl) {\n var c0_hi = rotr64_hi(xh, xl, 19);\n var c1_hi = rotr64_hi(xl, xh, 29); // 61\n var c2_hi = shr64_hi(xh, xl, 6);\n\n var r = c0_hi ^ c1_hi ^ c2_hi;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction g1_512_lo(xh, xl) {\n var c0_lo = rotr64_lo(xh, xl, 19);\n var c1_lo = rotr64_lo(xl, xh, 29); // 61\n var c2_lo = shr64_lo(xh, xl, 6);\n\n var r = c0_lo ^ c1_lo ^ c2_lo;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n", "'use strict';\n\nvar utils = require('../utils');\n\nvar SHA512 = require('./512');\n\nfunction SHA384() {\n if (!(this instanceof SHA384))\n return new SHA384();\n\n SHA512.call(this);\n this.h = [\n 0xcbbb9d5d, 0xc1059ed8,\n 0x629a292a, 0x367cd507,\n 0x9159015a, 0x3070dd17,\n 0x152fecd8, 0xf70e5939,\n 0x67332667, 0xffc00b31,\n 0x8eb44a87, 0x68581511,\n 0xdb0c2e0d, 0x64f98fa7,\n 0x47b5481d, 0xbefa4fa4 ];\n}\nutils.inherits(SHA384, SHA512);\nmodule.exports = SHA384;\n\nSHA384.blockSize = 1024;\nSHA384.outSize = 384;\nSHA384.hmacStrength = 192;\nSHA384.padLength = 128;\n\nSHA384.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h.slice(0, 12), 'big');\n else\n return utils.split32(this.h.slice(0, 12), 'big');\n};\n", "'use strict';\n\nexports.sha1 = require('./sha/1');\nexports.sha224 = require('./sha/224');\nexports.sha256 = require('./sha/256');\nexports.sha384 = require('./sha/384');\nexports.sha512 = require('./sha/512');\n", "'use strict';\n\nvar utils = require('./utils');\nvar common = require('./common');\n\nvar rotl32 = utils.rotl32;\nvar sum32 = utils.sum32;\nvar sum32_3 = utils.sum32_3;\nvar sum32_4 = utils.sum32_4;\nvar BlockHash = common.BlockHash;\n\nfunction RIPEMD160() {\n if (!(this instanceof RIPEMD160))\n return new RIPEMD160();\n\n BlockHash.call(this);\n\n this.h = [ 0x67452301, 0xefcdab89, 0x98badcfe, 0x10325476, 0xc3d2e1f0 ];\n this.endian = 'little';\n}\nutils.inherits(RIPEMD160, BlockHash);\nexports.ripemd160 = RIPEMD160;\n\nRIPEMD160.blockSize = 512;\nRIPEMD160.outSize = 160;\nRIPEMD160.hmacStrength = 192;\nRIPEMD160.padLength = 64;\n\nRIPEMD160.prototype._update = function update(msg, start) {\n var A = this.h[0];\n var B = this.h[1];\n var C = this.h[2];\n var D = this.h[3];\n var E = this.h[4];\n var Ah = A;\n var Bh = B;\n var Ch = C;\n var Dh = D;\n var Eh = E;\n for (var j = 0; j < 80; j++) {\n var T = sum32(\n rotl32(\n sum32_4(A, f(j, B, C, D), msg[r[j] + start], K(j)),\n s[j]),\n E);\n A = E;\n E = D;\n D = rotl32(C, 10);\n C = B;\n B = T;\n T = sum32(\n rotl32(\n sum32_4(Ah, f(79 - j, Bh, Ch, Dh), msg[rh[j] + start], Kh(j)),\n sh[j]),\n Eh);\n Ah = Eh;\n Eh = Dh;\n Dh = rotl32(Ch, 10);\n Ch = Bh;\n Bh = T;\n }\n T = sum32_3(this.h[1], C, Dh);\n this.h[1] = sum32_3(this.h[2], D, Eh);\n this.h[2] = sum32_3(this.h[3], E, Ah);\n this.h[3] = sum32_3(this.h[4], A, Bh);\n this.h[4] = sum32_3(this.h[0], B, Ch);\n this.h[0] = T;\n};\n\nRIPEMD160.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h, 'little');\n else\n return utils.split32(this.h, 'little');\n};\n\nfunction f(j, x, y, z) {\n if (j <= 15)\n return x ^ y ^ z;\n else if (j <= 31)\n return (x & y) | ((~x) & z);\n else if (j <= 47)\n return (x | (~y)) ^ z;\n else if (j <= 63)\n return (x & z) | (y & (~z));\n else\n return x ^ (y | (~z));\n}\n\nfunction K(j) {\n if (j <= 15)\n return 0x00000000;\n else if (j <= 31)\n return 0x5a827999;\n else if (j <= 47)\n return 0x6ed9eba1;\n else if (j <= 63)\n return 0x8f1bbcdc;\n else\n return 0xa953fd4e;\n}\n\nfunction Kh(j) {\n if (j <= 15)\n return 0x50a28be6;\n else if (j <= 31)\n return 0x5c4dd124;\n else if (j <= 47)\n return 0x6d703ef3;\n else if (j <= 63)\n return 0x7a6d76e9;\n else\n return 0x00000000;\n}\n\nvar r = [\n 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,\n 7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8,\n 3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11, 5, 12,\n 1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2,\n 4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13\n];\n\nvar rh = [\n 5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12,\n 6, 11, 3, 7, 0, 13, 5, 10, 14, 15, 8, 12, 4, 9, 1, 2,\n 15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0, 4, 13,\n 8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14,\n 12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11\n];\n\nvar s = [\n 11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8,\n 7, 6, 8, 13, 11, 9, 7, 15, 7, 12, 15, 9, 11, 7, 13, 12,\n 11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5, 12, 7, 5,\n 11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12,\n 9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6\n];\n\nvar sh = [\n 8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6,\n 9, 13, 15, 7, 12, 8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11,\n 9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14, 13, 13, 7, 5,\n 15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8,\n 8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11\n];\n", "'use strict';\n\nvar utils = require('./utils');\nvar assert = require('minimalistic-assert');\n\nfunction Hmac(hash, key, enc) {\n if (!(this instanceof Hmac))\n return new Hmac(hash, key, enc);\n this.Hash = hash;\n this.blockSize = hash.blockSize / 8;\n this.outSize = hash.outSize / 8;\n this.inner = null;\n this.outer = null;\n\n this._init(utils.toArray(key, enc));\n}\nmodule.exports = Hmac;\n\nHmac.prototype._init = function init(key) {\n // Shorten key, if needed\n if (key.length > this.blockSize)\n key = new this.Hash().update(key).digest();\n assert(key.length <= this.blockSize);\n\n // Add padding to key\n for (var i = key.length; i < this.blockSize; i++)\n key.push(0);\n\n for (i = 0; i < key.length; i++)\n key[i] ^= 0x36;\n this.inner = new this.Hash().update(key);\n\n // 0x36 ^ 0x5c = 0x6a\n for (i = 0; i < key.length; i++)\n key[i] ^= 0x6a;\n this.outer = new this.Hash().update(key);\n};\n\nHmac.prototype.update = function update(msg, enc) {\n this.inner.update(msg, enc);\n return this;\n};\n\nHmac.prototype.digest = function digest(enc) {\n this.outer.update(this.inner.digest());\n return this.outer.digest(enc);\n};\n", "var hash = exports;\n\nhash.utils = require('./hash/utils');\nhash.common = require('./hash/common');\nhash.sha = require('./hash/sha');\nhash.ripemd = require('./hash/ripemd');\nhash.hmac = require('./hash/hmac');\n\n// Proxy hash functions to the main object\nhash.sha1 = hash.sha.sha1;\nhash.sha256 = hash.sha.sha256;\nhash.sha224 = hash.sha.sha224;\nhash.sha384 = hash.sha.sha384;\nhash.sha512 = hash.sha.sha512;\nhash.ripemd160 = hash.ripemd.ripemd160;\n", "module.exports = {\n doubles: {\n step: 4,\n points: [\n [\n 'e60fce93b59e9ec53011aabc21c23e97b2a31369b87a5ae9c44ee89e2a6dec0a',\n 'f7e3507399e595929db99f34f57937101296891e44d23f0be1f32cce69616821',\n ],\n [\n '8282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508',\n '11f8a8098557dfe45e8256e830b60ace62d613ac2f7b17bed31b6eaff6e26caf',\n ],\n [\n '175e159f728b865a72f99cc6c6fc846de0b93833fd2222ed73fce5b551e5b739',\n 'd3506e0d9e3c79eba4ef97a51ff71f5eacb5955add24345c6efa6ffee9fed695',\n ],\n [\n '363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff4640',\n '4e273adfc732221953b445397f3363145b9a89008199ecb62003c7f3bee9de9',\n ],\n [\n '8b4b5f165df3c2be8c6244b5b745638843e4a781a15bcd1b69f79a55dffdf80c',\n '4aad0a6f68d308b4b3fbd7813ab0da04f9e336546162ee56b3eff0c65fd4fd36',\n ],\n [\n '723cbaa6e5db996d6bf771c00bd548c7b700dbffa6c0e77bcb6115925232fcda',\n '96e867b5595cc498a921137488824d6e2660a0653779494801dc069d9eb39f5f',\n ],\n [\n 'eebfa4d493bebf98ba5feec812c2d3b50947961237a919839a533eca0e7dd7fa',\n '5d9a8ca3970ef0f269ee7edaf178089d9ae4cdc3a711f712ddfd4fdae1de8999',\n ],\n [\n '100f44da696e71672791d0a09b7bde459f1215a29b3c03bfefd7835b39a48db0',\n 'cdd9e13192a00b772ec8f3300c090666b7ff4a18ff5195ac0fbd5cd62bc65a09',\n ],\n [\n 'e1031be262c7ed1b1dc9227a4a04c017a77f8d4464f3b3852c8acde6e534fd2d',\n '9d7061928940405e6bb6a4176597535af292dd419e1ced79a44f18f29456a00d',\n ],\n [\n 'feea6cae46d55b530ac2839f143bd7ec5cf8b266a41d6af52d5e688d9094696d',\n 'e57c6b6c97dce1bab06e4e12bf3ecd5c981c8957cc41442d3155debf18090088',\n ],\n [\n 'da67a91d91049cdcb367be4be6ffca3cfeed657d808583de33fa978bc1ec6cb1',\n '9bacaa35481642bc41f463f7ec9780e5dec7adc508f740a17e9ea8e27a68be1d',\n ],\n [\n '53904faa0b334cdda6e000935ef22151ec08d0f7bb11069f57545ccc1a37b7c0',\n '5bc087d0bc80106d88c9eccac20d3c1c13999981e14434699dcb096b022771c8',\n ],\n [\n '8e7bcd0bd35983a7719cca7764ca906779b53a043a9b8bcaeff959f43ad86047',\n '10b7770b2a3da4b3940310420ca9514579e88e2e47fd68b3ea10047e8460372a',\n ],\n [\n '385eed34c1cdff21e6d0818689b81bde71a7f4f18397e6690a841e1599c43862',\n '283bebc3e8ea23f56701de19e9ebf4576b304eec2086dc8cc0458fe5542e5453',\n ],\n [\n '6f9d9b803ecf191637c73a4413dfa180fddf84a5947fbc9c606ed86c3fac3a7',\n '7c80c68e603059ba69b8e2a30e45c4d47ea4dd2f5c281002d86890603a842160',\n ],\n [\n '3322d401243c4e2582a2147c104d6ecbf774d163db0f5e5313b7e0e742d0e6bd',\n '56e70797e9664ef5bfb019bc4ddaf9b72805f63ea2873af624f3a2e96c28b2a0',\n ],\n [\n '85672c7d2de0b7da2bd1770d89665868741b3f9af7643397721d74d28134ab83',\n '7c481b9b5b43b2eb6374049bfa62c2e5e77f17fcc5298f44c8e3094f790313a6',\n ],\n [\n '948bf809b1988a46b06c9f1919413b10f9226c60f668832ffd959af60c82a0a',\n '53a562856dcb6646dc6b74c5d1c3418c6d4dff08c97cd2bed4cb7f88d8c8e589',\n ],\n [\n '6260ce7f461801c34f067ce0f02873a8f1b0e44dfc69752accecd819f38fd8e8',\n 'bc2da82b6fa5b571a7f09049776a1ef7ecd292238051c198c1a84e95b2b4ae17',\n ],\n [\n 'e5037de0afc1d8d43d8348414bbf4103043ec8f575bfdc432953cc8d2037fa2d',\n '4571534baa94d3b5f9f98d09fb990bddbd5f5b03ec481f10e0e5dc841d755bda',\n ],\n [\n 'e06372b0f4a207adf5ea905e8f1771b4e7e8dbd1c6a6c5b725866a0ae4fce725',\n '7a908974bce18cfe12a27bb2ad5a488cd7484a7787104870b27034f94eee31dd',\n ],\n [\n '213c7a715cd5d45358d0bbf9dc0ce02204b10bdde2a3f58540ad6908d0559754',\n '4b6dad0b5ae462507013ad06245ba190bb4850f5f36a7eeddff2c27534b458f2',\n ],\n [\n '4e7c272a7af4b34e8dbb9352a5419a87e2838c70adc62cddf0cc3a3b08fbd53c',\n '17749c766c9d0b18e16fd09f6def681b530b9614bff7dd33e0b3941817dcaae6',\n ],\n [\n 'fea74e3dbe778b1b10f238ad61686aa5c76e3db2be43057632427e2840fb27b6',\n '6e0568db9b0b13297cf674deccb6af93126b596b973f7b77701d3db7f23cb96f',\n ],\n [\n '76e64113f677cf0e10a2570d599968d31544e179b760432952c02a4417bdde39',\n 'c90ddf8dee4e95cf577066d70681f0d35e2a33d2b56d2032b4b1752d1901ac01',\n ],\n [\n 'c738c56b03b2abe1e8281baa743f8f9a8f7cc643df26cbee3ab150242bcbb891',\n '893fb578951ad2537f718f2eacbfbbbb82314eef7880cfe917e735d9699a84c3',\n ],\n [\n 'd895626548b65b81e264c7637c972877d1d72e5f3a925014372e9f6588f6c14b',\n 'febfaa38f2bc7eae728ec60818c340eb03428d632bb067e179363ed75d7d991f',\n ],\n [\n 'b8da94032a957518eb0f6433571e8761ceffc73693e84edd49150a564f676e03',\n '2804dfa44805a1e4d7c99cc9762808b092cc584d95ff3b511488e4e74efdf6e7',\n ],\n [\n 'e80fea14441fb33a7d8adab9475d7fab2019effb5156a792f1a11778e3c0df5d',\n 'eed1de7f638e00771e89768ca3ca94472d155e80af322ea9fcb4291b6ac9ec78',\n ],\n [\n 'a301697bdfcd704313ba48e51d567543f2a182031efd6915ddc07bbcc4e16070',\n '7370f91cfb67e4f5081809fa25d40f9b1735dbf7c0a11a130c0d1a041e177ea1',\n ],\n [\n '90ad85b389d6b936463f9d0512678de208cc330b11307fffab7ac63e3fb04ed4',\n 'e507a3620a38261affdcbd9427222b839aefabe1582894d991d4d48cb6ef150',\n ],\n [\n '8f68b9d2f63b5f339239c1ad981f162ee88c5678723ea3351b7b444c9ec4c0da',\n '662a9f2dba063986de1d90c2b6be215dbbea2cfe95510bfdf23cbf79501fff82',\n ],\n [\n 'e4f3fb0176af85d65ff99ff9198c36091f48e86503681e3e6686fd5053231e11',\n '1e63633ad0ef4f1c1661a6d0ea02b7286cc7e74ec951d1c9822c38576feb73bc',\n ],\n [\n '8c00fa9b18ebf331eb961537a45a4266c7034f2f0d4e1d0716fb6eae20eae29e',\n 'efa47267fea521a1a9dc343a3736c974c2fadafa81e36c54e7d2a4c66702414b',\n ],\n [\n 'e7a26ce69dd4829f3e10cec0a9e98ed3143d084f308b92c0997fddfc60cb3e41',\n '2a758e300fa7984b471b006a1aafbb18d0a6b2c0420e83e20e8a9421cf2cfd51',\n ],\n [\n 'b6459e0ee3662ec8d23540c223bcbdc571cbcb967d79424f3cf29eb3de6b80ef',\n '67c876d06f3e06de1dadf16e5661db3c4b3ae6d48e35b2ff30bf0b61a71ba45',\n ],\n [\n 'd68a80c8280bb840793234aa118f06231d6f1fc67e73c5a5deda0f5b496943e8',\n 'db8ba9fff4b586d00c4b1f9177b0e28b5b0e7b8f7845295a294c84266b133120',\n ],\n [\n '324aed7df65c804252dc0270907a30b09612aeb973449cea4095980fc28d3d5d',\n '648a365774b61f2ff130c0c35aec1f4f19213b0c7e332843967224af96ab7c84',\n ],\n [\n '4df9c14919cde61f6d51dfdbe5fee5dceec4143ba8d1ca888e8bd373fd054c96',\n '35ec51092d8728050974c23a1d85d4b5d506cdc288490192ebac06cad10d5d',\n ],\n [\n '9c3919a84a474870faed8a9c1cc66021523489054d7f0308cbfc99c8ac1f98cd',\n 'ddb84f0f4a4ddd57584f044bf260e641905326f76c64c8e6be7e5e03d4fc599d',\n ],\n [\n '6057170b1dd12fdf8de05f281d8e06bb91e1493a8b91d4cc5a21382120a959e5',\n '9a1af0b26a6a4807add9a2daf71df262465152bc3ee24c65e899be932385a2a8',\n ],\n [\n 'a576df8e23a08411421439a4518da31880cef0fba7d4df12b1a6973eecb94266',\n '40a6bf20e76640b2c92b97afe58cd82c432e10a7f514d9f3ee8be11ae1b28ec8',\n ],\n [\n '7778a78c28dec3e30a05fe9629de8c38bb30d1f5cf9a3a208f763889be58ad71',\n '34626d9ab5a5b22ff7098e12f2ff580087b38411ff24ac563b513fc1fd9f43ac',\n ],\n [\n '928955ee637a84463729fd30e7afd2ed5f96274e5ad7e5cb09eda9c06d903ac',\n 'c25621003d3f42a827b78a13093a95eeac3d26efa8a8d83fc5180e935bcd091f',\n ],\n [\n '85d0fef3ec6db109399064f3a0e3b2855645b4a907ad354527aae75163d82751',\n '1f03648413a38c0be29d496e582cf5663e8751e96877331582c237a24eb1f962',\n ],\n [\n 'ff2b0dce97eece97c1c9b6041798b85dfdfb6d8882da20308f5404824526087e',\n '493d13fef524ba188af4c4dc54d07936c7b7ed6fb90e2ceb2c951e01f0c29907',\n ],\n [\n '827fbbe4b1e880ea9ed2b2e6301b212b57f1ee148cd6dd28780e5e2cf856e241',\n 'c60f9c923c727b0b71bef2c67d1d12687ff7a63186903166d605b68baec293ec',\n ],\n [\n 'eaa649f21f51bdbae7be4ae34ce6e5217a58fdce7f47f9aa7f3b58fa2120e2b3',\n 'be3279ed5bbbb03ac69a80f89879aa5a01a6b965f13f7e59d47a5305ba5ad93d',\n ],\n [\n 'e4a42d43c5cf169d9391df6decf42ee541b6d8f0c9a137401e23632dda34d24f',\n '4d9f92e716d1c73526fc99ccfb8ad34ce886eedfa8d8e4f13a7f7131deba9414',\n ],\n [\n '1ec80fef360cbdd954160fadab352b6b92b53576a88fea4947173b9d4300bf19',\n 'aeefe93756b5340d2f3a4958a7abbf5e0146e77f6295a07b671cdc1cc107cefd',\n ],\n [\n '146a778c04670c2f91b00af4680dfa8bce3490717d58ba889ddb5928366642be',\n 'b318e0ec3354028add669827f9d4b2870aaa971d2f7e5ed1d0b297483d83efd0',\n ],\n [\n 'fa50c0f61d22e5f07e3acebb1aa07b128d0012209a28b9776d76a8793180eef9',\n '6b84c6922397eba9b72cd2872281a68a5e683293a57a213b38cd8d7d3f4f2811',\n ],\n [\n 'da1d61d0ca721a11b1a5bf6b7d88e8421a288ab5d5bba5220e53d32b5f067ec2',\n '8157f55a7c99306c79c0766161c91e2966a73899d279b48a655fba0f1ad836f1',\n ],\n [\n 'a8e282ff0c9706907215ff98e8fd416615311de0446f1e062a73b0610d064e13',\n '7f97355b8db81c09abfb7f3c5b2515888b679a3e50dd6bd6cef7c73111f4cc0c',\n ],\n [\n '174a53b9c9a285872d39e56e6913cab15d59b1fa512508c022f382de8319497c',\n 'ccc9dc37abfc9c1657b4155f2c47f9e6646b3a1d8cb9854383da13ac079afa73',\n ],\n [\n '959396981943785c3d3e57edf5018cdbe039e730e4918b3d884fdff09475b7ba',\n '2e7e552888c331dd8ba0386a4b9cd6849c653f64c8709385e9b8abf87524f2fd',\n ],\n [\n 'd2a63a50ae401e56d645a1153b109a8fcca0a43d561fba2dbb51340c9d82b151',\n 'e82d86fb6443fcb7565aee58b2948220a70f750af484ca52d4142174dcf89405',\n ],\n [\n '64587e2335471eb890ee7896d7cfdc866bacbdbd3839317b3436f9b45617e073',\n 'd99fcdd5bf6902e2ae96dd6447c299a185b90a39133aeab358299e5e9faf6589',\n ],\n [\n '8481bde0e4e4d885b3a546d3e549de042f0aa6cea250e7fd358d6c86dd45e458',\n '38ee7b8cba5404dd84a25bf39cecb2ca900a79c42b262e556d64b1b59779057e',\n ],\n [\n '13464a57a78102aa62b6979ae817f4637ffcfed3c4b1ce30bcd6303f6caf666b',\n '69be159004614580ef7e433453ccb0ca48f300a81d0942e13f495a907f6ecc27',\n ],\n [\n 'bc4a9df5b713fe2e9aef430bcc1dc97a0cd9ccede2f28588cada3a0d2d83f366',\n 'd3a81ca6e785c06383937adf4b798caa6e8a9fbfa547b16d758d666581f33c1',\n ],\n [\n '8c28a97bf8298bc0d23d8c749452a32e694b65e30a9472a3954ab30fe5324caa',\n '40a30463a3305193378fedf31f7cc0eb7ae784f0451cb9459e71dc73cbef9482',\n ],\n [\n '8ea9666139527a8c1dd94ce4f071fd23c8b350c5a4bb33748c4ba111faccae0',\n '620efabbc8ee2782e24e7c0cfb95c5d735b783be9cf0f8e955af34a30e62b945',\n ],\n [\n 'dd3625faef5ba06074669716bbd3788d89bdde815959968092f76cc4eb9a9787',\n '7a188fa3520e30d461da2501045731ca941461982883395937f68d00c644a573',\n ],\n [\n 'f710d79d9eb962297e4f6232b40e8f7feb2bc63814614d692c12de752408221e',\n 'ea98e67232d3b3295d3b535532115ccac8612c721851617526ae47a9c77bfc82',\n ],\n ],\n },\n naf: {\n wnd: 7,\n points: [\n [\n 'f9308a019258c31049344f85f89d5229b531c845836f99b08601f113bce036f9',\n '388f7b0f632de8140fe337e62a37f3566500a99934c2231b6cb9fd7584b8e672',\n ],\n [\n '2f8bde4d1a07209355b4a7250a5c5128e88b84bddc619ab7cba8d569b240efe4',\n 'd8ac222636e5e3d6d4dba9dda6c9c426f788271bab0d6840dca87d3aa6ac62d6',\n ],\n [\n '5cbdf0646e5db4eaa398f365f2ea7a0e3d419b7e0330e39ce92bddedcac4f9bc',\n '6aebca40ba255960a3178d6d861a54dba813d0b813fde7b5a5082628087264da',\n ],\n [\n 'acd484e2f0c7f65309ad178a9f559abde09796974c57e714c35f110dfc27ccbe',\n 'cc338921b0a7d9fd64380971763b61e9add888a4375f8e0f05cc262ac64f9c37',\n ],\n [\n '774ae7f858a9411e5ef4246b70c65aac5649980be5c17891bbec17895da008cb',\n 'd984a032eb6b5e190243dd56d7b7b365372db1e2dff9d6a8301d74c9c953c61b',\n ],\n [\n 'f28773c2d975288bc7d1d205c3748651b075fbc6610e58cddeeddf8f19405aa8',\n 'ab0902e8d880a89758212eb65cdaf473a1a06da521fa91f29b5cb52db03ed81',\n ],\n [\n 'd7924d4f7d43ea965a465ae3095ff41131e5946f3c85f79e44adbcf8e27e080e',\n '581e2872a86c72a683842ec228cc6defea40af2bd896d3a5c504dc9ff6a26b58',\n ],\n [\n 'defdea4cdb677750a420fee807eacf21eb9898ae79b9768766e4faa04a2d4a34',\n '4211ab0694635168e997b0ead2a93daeced1f4a04a95c0f6cfb199f69e56eb77',\n ],\n [\n '2b4ea0a797a443d293ef5cff444f4979f06acfebd7e86d277475656138385b6c',\n '85e89bc037945d93b343083b5a1c86131a01f60c50269763b570c854e5c09b7a',\n ],\n [\n '352bbf4a4cdd12564f93fa332ce333301d9ad40271f8107181340aef25be59d5',\n '321eb4075348f534d59c18259dda3e1f4a1b3b2e71b1039c67bd3d8bcf81998c',\n ],\n [\n '2fa2104d6b38d11b0230010559879124e42ab8dfeff5ff29dc9cdadd4ecacc3f',\n '2de1068295dd865b64569335bd5dd80181d70ecfc882648423ba76b532b7d67',\n ],\n [\n '9248279b09b4d68dab21a9b066edda83263c3d84e09572e269ca0cd7f5453714',\n '73016f7bf234aade5d1aa71bdea2b1ff3fc0de2a887912ffe54a32ce97cb3402',\n ],\n [\n 'daed4f2be3a8bf278e70132fb0beb7522f570e144bf615c07e996d443dee8729',\n 'a69dce4a7d6c98e8d4a1aca87ef8d7003f83c230f3afa726ab40e52290be1c55',\n ],\n [\n 'c44d12c7065d812e8acf28d7cbb19f9011ecd9e9fdf281b0e6a3b5e87d22e7db',\n '2119a460ce326cdc76c45926c982fdac0e106e861edf61c5a039063f0e0e6482',\n ],\n [\n '6a245bf6dc698504c89a20cfded60853152b695336c28063b61c65cbd269e6b4',\n 'e022cf42c2bd4a708b3f5126f16a24ad8b33ba48d0423b6efd5e6348100d8a82',\n ],\n [\n '1697ffa6fd9de627c077e3d2fe541084ce13300b0bec1146f95ae57f0d0bd6a5',\n 'b9c398f186806f5d27561506e4557433a2cf15009e498ae7adee9d63d01b2396',\n ],\n [\n '605bdb019981718b986d0f07e834cb0d9deb8360ffb7f61df982345ef27a7479',\n '2972d2de4f8d20681a78d93ec96fe23c26bfae84fb14db43b01e1e9056b8c49',\n ],\n [\n '62d14dab4150bf497402fdc45a215e10dcb01c354959b10cfe31c7e9d87ff33d',\n '80fc06bd8cc5b01098088a1950eed0db01aa132967ab472235f5642483b25eaf',\n ],\n [\n '80c60ad0040f27dade5b4b06c408e56b2c50e9f56b9b8b425e555c2f86308b6f',\n '1c38303f1cc5c30f26e66bad7fe72f70a65eed4cbe7024eb1aa01f56430bd57a',\n ],\n [\n '7a9375ad6167ad54aa74c6348cc54d344cc5dc9487d847049d5eabb0fa03c8fb',\n 'd0e3fa9eca8726909559e0d79269046bdc59ea10c70ce2b02d499ec224dc7f7',\n ],\n [\n 'd528ecd9b696b54c907a9ed045447a79bb408ec39b68df504bb51f459bc3ffc9',\n 'eecf41253136e5f99966f21881fd656ebc4345405c520dbc063465b521409933',\n ],\n [\n '49370a4b5f43412ea25f514e8ecdad05266115e4a7ecb1387231808f8b45963',\n '758f3f41afd6ed428b3081b0512fd62a54c3f3afbb5b6764b653052a12949c9a',\n ],\n [\n '77f230936ee88cbbd73df930d64702ef881d811e0e1498e2f1c13eb1fc345d74',\n '958ef42a7886b6400a08266e9ba1b37896c95330d97077cbbe8eb3c7671c60d6',\n ],\n [\n 'f2dac991cc4ce4b9ea44887e5c7c0bce58c80074ab9d4dbaeb28531b7739f530',\n 'e0dedc9b3b2f8dad4da1f32dec2531df9eb5fbeb0598e4fd1a117dba703a3c37',\n ],\n [\n '463b3d9f662621fb1b4be8fbbe2520125a216cdfc9dae3debcba4850c690d45b',\n '5ed430d78c296c3543114306dd8622d7c622e27c970a1de31cb377b01af7307e',\n ],\n [\n 'f16f804244e46e2a09232d4aff3b59976b98fac14328a2d1a32496b49998f247',\n 'cedabd9b82203f7e13d206fcdf4e33d92a6c53c26e5cce26d6579962c4e31df6',\n ],\n [\n 'caf754272dc84563b0352b7a14311af55d245315ace27c65369e15f7151d41d1',\n 'cb474660ef35f5f2a41b643fa5e460575f4fa9b7962232a5c32f908318a04476',\n ],\n [\n '2600ca4b282cb986f85d0f1709979d8b44a09c07cb86d7c124497bc86f082120',\n '4119b88753c15bd6a693b03fcddbb45d5ac6be74ab5f0ef44b0be9475a7e4b40',\n ],\n [\n '7635ca72d7e8432c338ec53cd12220bc01c48685e24f7dc8c602a7746998e435',\n '91b649609489d613d1d5e590f78e6d74ecfc061d57048bad9e76f302c5b9c61',\n ],\n [\n '754e3239f325570cdbbf4a87deee8a66b7f2b33479d468fbc1a50743bf56cc18',\n '673fb86e5bda30fb3cd0ed304ea49a023ee33d0197a695d0c5d98093c536683',\n ],\n [\n 'e3e6bd1071a1e96aff57859c82d570f0330800661d1c952f9fe2694691d9b9e8',\n '59c9e0bba394e76f40c0aa58379a3cb6a5a2283993e90c4167002af4920e37f5',\n ],\n [\n '186b483d056a033826ae73d88f732985c4ccb1f32ba35f4b4cc47fdcf04aa6eb',\n '3b952d32c67cf77e2e17446e204180ab21fb8090895138b4a4a797f86e80888b',\n ],\n [\n 'df9d70a6b9876ce544c98561f4be4f725442e6d2b737d9c91a8321724ce0963f',\n '55eb2dafd84d6ccd5f862b785dc39d4ab157222720ef9da217b8c45cf2ba2417',\n ],\n [\n '5edd5cc23c51e87a497ca815d5dce0f8ab52554f849ed8995de64c5f34ce7143',\n 'efae9c8dbc14130661e8cec030c89ad0c13c66c0d17a2905cdc706ab7399a868',\n ],\n [\n '290798c2b6476830da12fe02287e9e777aa3fba1c355b17a722d362f84614fba',\n 'e38da76dcd440621988d00bcf79af25d5b29c094db2a23146d003afd41943e7a',\n ],\n [\n 'af3c423a95d9f5b3054754efa150ac39cd29552fe360257362dfdecef4053b45',\n 'f98a3fd831eb2b749a93b0e6f35cfb40c8cd5aa667a15581bc2feded498fd9c6',\n ],\n [\n '766dbb24d134e745cccaa28c99bf274906bb66b26dcf98df8d2fed50d884249a',\n '744b1152eacbe5e38dcc887980da38b897584a65fa06cedd2c924f97cbac5996',\n ],\n [\n '59dbf46f8c94759ba21277c33784f41645f7b44f6c596a58ce92e666191abe3e',\n 'c534ad44175fbc300f4ea6ce648309a042ce739a7919798cd85e216c4a307f6e',\n ],\n [\n 'f13ada95103c4537305e691e74e9a4a8dd647e711a95e73cb62dc6018cfd87b8',\n 'e13817b44ee14de663bf4bc808341f326949e21a6a75c2570778419bdaf5733d',\n ],\n [\n '7754b4fa0e8aced06d4167a2c59cca4cda1869c06ebadfb6488550015a88522c',\n '30e93e864e669d82224b967c3020b8fa8d1e4e350b6cbcc537a48b57841163a2',\n ],\n [\n '948dcadf5990e048aa3874d46abef9d701858f95de8041d2a6828c99e2262519',\n 'e491a42537f6e597d5d28a3224b1bc25df9154efbd2ef1d2cbba2cae5347d57e',\n ],\n [\n '7962414450c76c1689c7b48f8202ec37fb224cf5ac0bfa1570328a8a3d7c77ab',\n '100b610ec4ffb4760d5c1fc133ef6f6b12507a051f04ac5760afa5b29db83437',\n ],\n [\n '3514087834964b54b15b160644d915485a16977225b8847bb0dd085137ec47ca',\n 'ef0afbb2056205448e1652c48e8127fc6039e77c15c2378b7e7d15a0de293311',\n ],\n [\n 'd3cc30ad6b483e4bc79ce2c9dd8bc54993e947eb8df787b442943d3f7b527eaf',\n '8b378a22d827278d89c5e9be8f9508ae3c2ad46290358630afb34db04eede0a4',\n ],\n [\n '1624d84780732860ce1c78fcbfefe08b2b29823db913f6493975ba0ff4847610',\n '68651cf9b6da903e0914448c6cd9d4ca896878f5282be4c8cc06e2a404078575',\n ],\n [\n '733ce80da955a8a26902c95633e62a985192474b5af207da6df7b4fd5fc61cd4',\n 'f5435a2bd2badf7d485a4d8b8db9fcce3e1ef8e0201e4578c54673bc1dc5ea1d',\n ],\n [\n '15d9441254945064cf1a1c33bbd3b49f8966c5092171e699ef258dfab81c045c',\n 'd56eb30b69463e7234f5137b73b84177434800bacebfc685fc37bbe9efe4070d',\n ],\n [\n 'a1d0fcf2ec9de675b612136e5ce70d271c21417c9d2b8aaaac138599d0717940',\n 'edd77f50bcb5a3cab2e90737309667f2641462a54070f3d519212d39c197a629',\n ],\n [\n 'e22fbe15c0af8ccc5780c0735f84dbe9a790badee8245c06c7ca37331cb36980',\n 'a855babad5cd60c88b430a69f53a1a7a38289154964799be43d06d77d31da06',\n ],\n [\n '311091dd9860e8e20ee13473c1155f5f69635e394704eaa74009452246cfa9b3',\n '66db656f87d1f04fffd1f04788c06830871ec5a64feee685bd80f0b1286d8374',\n ],\n [\n '34c1fd04d301be89b31c0442d3e6ac24883928b45a9340781867d4232ec2dbdf',\n '9414685e97b1b5954bd46f730174136d57f1ceeb487443dc5321857ba73abee',\n ],\n [\n 'f219ea5d6b54701c1c14de5b557eb42a8d13f3abbcd08affcc2a5e6b049b8d63',\n '4cb95957e83d40b0f73af4544cccf6b1f4b08d3c07b27fb8d8c2962a400766d1',\n ],\n [\n 'd7b8740f74a8fbaab1f683db8f45de26543a5490bca627087236912469a0b448',\n 'fa77968128d9c92ee1010f337ad4717eff15db5ed3c049b3411e0315eaa4593b',\n ],\n [\n '32d31c222f8f6f0ef86f7c98d3a3335ead5bcd32abdd94289fe4d3091aa824bf',\n '5f3032f5892156e39ccd3d7915b9e1da2e6dac9e6f26e961118d14b8462e1661',\n ],\n [\n '7461f371914ab32671045a155d9831ea8793d77cd59592c4340f86cbc18347b5',\n '8ec0ba238b96bec0cbdddcae0aa442542eee1ff50c986ea6b39847b3cc092ff6',\n ],\n [\n 'ee079adb1df1860074356a25aa38206a6d716b2c3e67453d287698bad7b2b2d6',\n '8dc2412aafe3be5c4c5f37e0ecc5f9f6a446989af04c4e25ebaac479ec1c8c1e',\n ],\n [\n '16ec93e447ec83f0467b18302ee620f7e65de331874c9dc72bfd8616ba9da6b5',\n '5e4631150e62fb40d0e8c2a7ca5804a39d58186a50e497139626778e25b0674d',\n ],\n [\n 'eaa5f980c245f6f038978290afa70b6bd8855897f98b6aa485b96065d537bd99',\n 'f65f5d3e292c2e0819a528391c994624d784869d7e6ea67fb18041024edc07dc',\n ],\n [\n '78c9407544ac132692ee1910a02439958ae04877151342ea96c4b6b35a49f51',\n 'f3e0319169eb9b85d5404795539a5e68fa1fbd583c064d2462b675f194a3ddb4',\n ],\n [\n '494f4be219a1a77016dcd838431aea0001cdc8ae7a6fc688726578d9702857a5',\n '42242a969283a5f339ba7f075e36ba2af925ce30d767ed6e55f4b031880d562c',\n ],\n [\n 'a598a8030da6d86c6bc7f2f5144ea549d28211ea58faa70ebf4c1e665c1fe9b5',\n '204b5d6f84822c307e4b4a7140737aec23fc63b65b35f86a10026dbd2d864e6b',\n ],\n [\n 'c41916365abb2b5d09192f5f2dbeafec208f020f12570a184dbadc3e58595997',\n '4f14351d0087efa49d245b328984989d5caf9450f34bfc0ed16e96b58fa9913',\n ],\n [\n '841d6063a586fa475a724604da03bc5b92a2e0d2e0a36acfe4c73a5514742881',\n '73867f59c0659e81904f9a1c7543698e62562d6744c169ce7a36de01a8d6154',\n ],\n [\n '5e95bb399a6971d376026947f89bde2f282b33810928be4ded112ac4d70e20d5',\n '39f23f366809085beebfc71181313775a99c9aed7d8ba38b161384c746012865',\n ],\n [\n '36e4641a53948fd476c39f8a99fd974e5ec07564b5315d8bf99471bca0ef2f66',\n 'd2424b1b1abe4eb8164227b085c9aa9456ea13493fd563e06fd51cf5694c78fc',\n ],\n [\n '336581ea7bfbbb290c191a2f507a41cf5643842170e914faeab27c2c579f726',\n 'ead12168595fe1be99252129b6e56b3391f7ab1410cd1e0ef3dcdcabd2fda224',\n ],\n [\n '8ab89816dadfd6b6a1f2634fcf00ec8403781025ed6890c4849742706bd43ede',\n '6fdcef09f2f6d0a044e654aef624136f503d459c3e89845858a47a9129cdd24e',\n ],\n [\n '1e33f1a746c9c5778133344d9299fcaa20b0938e8acff2544bb40284b8c5fb94',\n '60660257dd11b3aa9c8ed618d24edff2306d320f1d03010e33a7d2057f3b3b6',\n ],\n [\n '85b7c1dcb3cec1b7ee7f30ded79dd20a0ed1f4cc18cbcfcfa410361fd8f08f31',\n '3d98a9cdd026dd43f39048f25a8847f4fcafad1895d7a633c6fed3c35e999511',\n ],\n [\n '29df9fbd8d9e46509275f4b125d6d45d7fbe9a3b878a7af872a2800661ac5f51',\n 'b4c4fe99c775a606e2d8862179139ffda61dc861c019e55cd2876eb2a27d84b',\n ],\n [\n 'a0b1cae06b0a847a3fea6e671aaf8adfdfe58ca2f768105c8082b2e449fce252',\n 'ae434102edde0958ec4b19d917a6a28e6b72da1834aff0e650f049503a296cf2',\n ],\n [\n '4e8ceafb9b3e9a136dc7ff67e840295b499dfb3b2133e4ba113f2e4c0e121e5',\n 'cf2174118c8b6d7a4b48f6d534ce5c79422c086a63460502b827ce62a326683c',\n ],\n [\n 'd24a44e047e19b6f5afb81c7ca2f69080a5076689a010919f42725c2b789a33b',\n '6fb8d5591b466f8fc63db50f1c0f1c69013f996887b8244d2cdec417afea8fa3',\n ],\n [\n 'ea01606a7a6c9cdd249fdfcfacb99584001edd28abbab77b5104e98e8e3b35d4',\n '322af4908c7312b0cfbfe369f7a7b3cdb7d4494bc2823700cfd652188a3ea98d',\n ],\n [\n 'af8addbf2b661c8a6c6328655eb96651252007d8c5ea31be4ad196de8ce2131f',\n '6749e67c029b85f52a034eafd096836b2520818680e26ac8f3dfbcdb71749700',\n ],\n [\n 'e3ae1974566ca06cc516d47e0fb165a674a3dabcfca15e722f0e3450f45889',\n '2aeabe7e4531510116217f07bf4d07300de97e4874f81f533420a72eeb0bd6a4',\n ],\n [\n '591ee355313d99721cf6993ffed1e3e301993ff3ed258802075ea8ced397e246',\n 'b0ea558a113c30bea60fc4775460c7901ff0b053d25ca2bdeee98f1a4be5d196',\n ],\n [\n '11396d55fda54c49f19aa97318d8da61fa8584e47b084945077cf03255b52984',\n '998c74a8cd45ac01289d5833a7beb4744ff536b01b257be4c5767bea93ea57a4',\n ],\n [\n '3c5d2a1ba39c5a1790000738c9e0c40b8dcdfd5468754b6405540157e017aa7a',\n 'b2284279995a34e2f9d4de7396fc18b80f9b8b9fdd270f6661f79ca4c81bd257',\n ],\n [\n 'cc8704b8a60a0defa3a99a7299f2e9c3fbc395afb04ac078425ef8a1793cc030',\n 'bdd46039feed17881d1e0862db347f8cf395b74fc4bcdc4e940b74e3ac1f1b13',\n ],\n [\n 'c533e4f7ea8555aacd9777ac5cad29b97dd4defccc53ee7ea204119b2889b197',\n '6f0a256bc5efdf429a2fb6242f1a43a2d9b925bb4a4b3a26bb8e0f45eb596096',\n ],\n [\n 'c14f8f2ccb27d6f109f6d08d03cc96a69ba8c34eec07bbcf566d48e33da6593',\n 'c359d6923bb398f7fd4473e16fe1c28475b740dd098075e6c0e8649113dc3a38',\n ],\n [\n 'a6cbc3046bc6a450bac24789fa17115a4c9739ed75f8f21ce441f72e0b90e6ef',\n '21ae7f4680e889bb130619e2c0f95a360ceb573c70603139862afd617fa9b9f',\n ],\n [\n '347d6d9a02c48927ebfb86c1359b1caf130a3c0267d11ce6344b39f99d43cc38',\n '60ea7f61a353524d1c987f6ecec92f086d565ab687870cb12689ff1e31c74448',\n ],\n [\n 'da6545d2181db8d983f7dcb375ef5866d47c67b1bf31c8cf855ef7437b72656a',\n '49b96715ab6878a79e78f07ce5680c5d6673051b4935bd897fea824b77dc208a',\n ],\n [\n 'c40747cc9d012cb1a13b8148309c6de7ec25d6945d657146b9d5994b8feb1111',\n '5ca560753be2a12fc6de6caf2cb489565db936156b9514e1bb5e83037e0fa2d4',\n ],\n [\n '4e42c8ec82c99798ccf3a610be870e78338c7f713348bd34c8203ef4037f3502',\n '7571d74ee5e0fb92a7a8b33a07783341a5492144cc54bcc40a94473693606437',\n ],\n [\n '3775ab7089bc6af823aba2e1af70b236d251cadb0c86743287522a1b3b0dedea',\n 'be52d107bcfa09d8bcb9736a828cfa7fac8db17bf7a76a2c42ad961409018cf7',\n ],\n [\n 'cee31cbf7e34ec379d94fb814d3d775ad954595d1314ba8846959e3e82f74e26',\n '8fd64a14c06b589c26b947ae2bcf6bfa0149ef0be14ed4d80f448a01c43b1c6d',\n ],\n [\n 'b4f9eaea09b6917619f6ea6a4eb5464efddb58fd45b1ebefcdc1a01d08b47986',\n '39e5c9925b5a54b07433a4f18c61726f8bb131c012ca542eb24a8ac07200682a',\n ],\n [\n 'd4263dfc3d2df923a0179a48966d30ce84e2515afc3dccc1b77907792ebcc60e',\n '62dfaf07a0f78feb30e30d6295853ce189e127760ad6cf7fae164e122a208d54',\n ],\n [\n '48457524820fa65a4f8d35eb6930857c0032acc0a4a2de422233eeda897612c4',\n '25a748ab367979d98733c38a1fa1c2e7dc6cc07db2d60a9ae7a76aaa49bd0f77',\n ],\n [\n 'dfeeef1881101f2cb11644f3a2afdfc2045e19919152923f367a1767c11cceda',\n 'ecfb7056cf1de042f9420bab396793c0c390bde74b4bbdff16a83ae09a9a7517',\n ],\n [\n '6d7ef6b17543f8373c573f44e1f389835d89bcbc6062ced36c82df83b8fae859',\n 'cd450ec335438986dfefa10c57fea9bcc521a0959b2d80bbf74b190dca712d10',\n ],\n [\n 'e75605d59102a5a2684500d3b991f2e3f3c88b93225547035af25af66e04541f',\n 'f5c54754a8f71ee540b9b48728473e314f729ac5308b06938360990e2bfad125',\n ],\n [\n 'eb98660f4c4dfaa06a2be453d5020bc99a0c2e60abe388457dd43fefb1ed620c',\n '6cb9a8876d9cb8520609af3add26cd20a0a7cd8a9411131ce85f44100099223e',\n ],\n [\n '13e87b027d8514d35939f2e6892b19922154596941888336dc3563e3b8dba942',\n 'fef5a3c68059a6dec5d624114bf1e91aac2b9da568d6abeb2570d55646b8adf1',\n ],\n [\n 'ee163026e9fd6fe017c38f06a5be6fc125424b371ce2708e7bf4491691e5764a',\n '1acb250f255dd61c43d94ccc670d0f58f49ae3fa15b96623e5430da0ad6c62b2',\n ],\n [\n 'b268f5ef9ad51e4d78de3a750c2dc89b1e626d43505867999932e5db33af3d80',\n '5f310d4b3c99b9ebb19f77d41c1dee018cf0d34fd4191614003e945a1216e423',\n ],\n [\n 'ff07f3118a9df035e9fad85eb6c7bfe42b02f01ca99ceea3bf7ffdba93c4750d',\n '438136d603e858a3a5c440c38eccbaddc1d2942114e2eddd4740d098ced1f0d8',\n ],\n [\n '8d8b9855c7c052a34146fd20ffb658bea4b9f69e0d825ebec16e8c3ce2b526a1',\n 'cdb559eedc2d79f926baf44fb84ea4d44bcf50fee51d7ceb30e2e7f463036758',\n ],\n [\n '52db0b5384dfbf05bfa9d472d7ae26dfe4b851ceca91b1eba54263180da32b63',\n 'c3b997d050ee5d423ebaf66a6db9f57b3180c902875679de924b69d84a7b375',\n ],\n [\n 'e62f9490d3d51da6395efd24e80919cc7d0f29c3f3fa48c6fff543becbd43352',\n '6d89ad7ba4876b0b22c2ca280c682862f342c8591f1daf5170e07bfd9ccafa7d',\n ],\n [\n '7f30ea2476b399b4957509c88f77d0191afa2ff5cb7b14fd6d8e7d65aaab1193',\n 'ca5ef7d4b231c94c3b15389a5f6311e9daff7bb67b103e9880ef4bff637acaec',\n ],\n [\n '5098ff1e1d9f14fb46a210fada6c903fef0fb7b4a1dd1d9ac60a0361800b7a00',\n '9731141d81fc8f8084d37c6e7542006b3ee1b40d60dfe5362a5b132fd17ddc0',\n ],\n [\n '32b78c7de9ee512a72895be6b9cbefa6e2f3c4ccce445c96b9f2c81e2778ad58',\n 'ee1849f513df71e32efc3896ee28260c73bb80547ae2275ba497237794c8753c',\n ],\n [\n 'e2cb74fddc8e9fbcd076eef2a7c72b0ce37d50f08269dfc074b581550547a4f7',\n 'd3aa2ed71c9dd2247a62df062736eb0baddea9e36122d2be8641abcb005cc4a4',\n ],\n [\n '8438447566d4d7bedadc299496ab357426009a35f235cb141be0d99cd10ae3a8',\n 'c4e1020916980a4da5d01ac5e6ad330734ef0d7906631c4f2390426b2edd791f',\n ],\n [\n '4162d488b89402039b584c6fc6c308870587d9c46f660b878ab65c82c711d67e',\n '67163e903236289f776f22c25fb8a3afc1732f2b84b4e95dbda47ae5a0852649',\n ],\n [\n '3fad3fa84caf0f34f0f89bfd2dcf54fc175d767aec3e50684f3ba4a4bf5f683d',\n 'cd1bc7cb6cc407bb2f0ca647c718a730cf71872e7d0d2a53fa20efcdfe61826',\n ],\n [\n '674f2600a3007a00568c1a7ce05d0816c1fb84bf1370798f1c69532faeb1a86b',\n '299d21f9413f33b3edf43b257004580b70db57da0b182259e09eecc69e0d38a5',\n ],\n [\n 'd32f4da54ade74abb81b815ad1fb3b263d82d6c692714bcff87d29bd5ee9f08f',\n 'f9429e738b8e53b968e99016c059707782e14f4535359d582fc416910b3eea87',\n ],\n [\n '30e4e670435385556e593657135845d36fbb6931f72b08cb1ed954f1e3ce3ff6',\n '462f9bce619898638499350113bbc9b10a878d35da70740dc695a559eb88db7b',\n ],\n [\n 'be2062003c51cc3004682904330e4dee7f3dcd10b01e580bf1971b04d4cad297',\n '62188bc49d61e5428573d48a74e1c655b1c61090905682a0d5558ed72dccb9bc',\n ],\n [\n '93144423ace3451ed29e0fb9ac2af211cb6e84a601df5993c419859fff5df04a',\n '7c10dfb164c3425f5c71a3f9d7992038f1065224f72bb9d1d902a6d13037b47c',\n ],\n [\n 'b015f8044f5fcbdcf21ca26d6c34fb8197829205c7b7d2a7cb66418c157b112c',\n 'ab8c1e086d04e813744a655b2df8d5f83b3cdc6faa3088c1d3aea1454e3a1d5f',\n ],\n [\n 'd5e9e1da649d97d89e4868117a465a3a4f8a18de57a140d36b3f2af341a21b52',\n '4cb04437f391ed73111a13cc1d4dd0db1693465c2240480d8955e8592f27447a',\n ],\n [\n 'd3ae41047dd7ca065dbf8ed77b992439983005cd72e16d6f996a5316d36966bb',\n 'bd1aeb21ad22ebb22a10f0303417c6d964f8cdd7df0aca614b10dc14d125ac46',\n ],\n [\n '463e2763d885f958fc66cdd22800f0a487197d0a82e377b49f80af87c897b065',\n 'bfefacdb0e5d0fd7df3a311a94de062b26b80c61fbc97508b79992671ef7ca7f',\n ],\n [\n '7985fdfd127c0567c6f53ec1bb63ec3158e597c40bfe747c83cddfc910641917',\n '603c12daf3d9862ef2b25fe1de289aed24ed291e0ec6708703a5bd567f32ed03',\n ],\n [\n '74a1ad6b5f76e39db2dd249410eac7f99e74c59cb83d2d0ed5ff1543da7703e9',\n 'cc6157ef18c9c63cd6193d83631bbea0093e0968942e8c33d5737fd790e0db08',\n ],\n [\n '30682a50703375f602d416664ba19b7fc9bab42c72747463a71d0896b22f6da3',\n '553e04f6b018b4fa6c8f39e7f311d3176290d0e0f19ca73f17714d9977a22ff8',\n ],\n [\n '9e2158f0d7c0d5f26c3791efefa79597654e7a2b2464f52b1ee6c1347769ef57',\n '712fcdd1b9053f09003a3481fa7762e9ffd7c8ef35a38509e2fbf2629008373',\n ],\n [\n '176e26989a43c9cfeba4029c202538c28172e566e3c4fce7322857f3be327d66',\n 'ed8cc9d04b29eb877d270b4878dc43c19aefd31f4eee09ee7b47834c1fa4b1c3',\n ],\n [\n '75d46efea3771e6e68abb89a13ad747ecf1892393dfc4f1b7004788c50374da8',\n '9852390a99507679fd0b86fd2b39a868d7efc22151346e1a3ca4726586a6bed8',\n ],\n [\n '809a20c67d64900ffb698c4c825f6d5f2310fb0451c869345b7319f645605721',\n '9e994980d9917e22b76b061927fa04143d096ccc54963e6a5ebfa5f3f8e286c1',\n ],\n [\n '1b38903a43f7f114ed4500b4eac7083fdefece1cf29c63528d563446f972c180',\n '4036edc931a60ae889353f77fd53de4a2708b26b6f5da72ad3394119daf408f9',\n ],\n ],\n },\n};\n", "'use strict';\n\nvar curves = exports;\n\nvar hash = require('hash.js');\nvar curve = require('./curve');\nvar utils = require('./utils');\n\nvar assert = utils.assert;\n\nfunction PresetCurve(options) {\n if (options.type === 'short')\n this.curve = new curve.short(options);\n else if (options.type === 'edwards')\n this.curve = new curve.edwards(options);\n else\n this.curve = new curve.mont(options);\n this.g = this.curve.g;\n this.n = this.curve.n;\n this.hash = options.hash;\n\n assert(this.g.validate(), 'Invalid curve');\n assert(this.g.mul(this.n).isInfinity(), 'Invalid curve, G*N != O');\n}\ncurves.PresetCurve = PresetCurve;\n\nfunction defineCurve(name, options) {\n Object.defineProperty(curves, name, {\n configurable: true,\n enumerable: true,\n get: function() {\n var curve = new PresetCurve(options);\n Object.defineProperty(curves, name, {\n configurable: true,\n enumerable: true,\n value: curve,\n });\n return curve;\n },\n });\n}\n\ndefineCurve('p192', {\n type: 'short',\n prime: 'p192',\n p: 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff',\n a: 'ffffffff ffffffff ffffffff fffffffe ffffffff fffffffc',\n b: '64210519 e59c80e7 0fa7e9ab 72243049 feb8deec c146b9b1',\n n: 'ffffffff ffffffff ffffffff 99def836 146bc9b1 b4d22831',\n hash: hash.sha256,\n gRed: false,\n g: [\n '188da80e b03090f6 7cbf20eb 43a18800 f4ff0afd 82ff1012',\n '07192b95 ffc8da78 631011ed 6b24cdd5 73f977a1 1e794811',\n ],\n});\n\ndefineCurve('p224', {\n type: 'short',\n prime: 'p224',\n p: 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001',\n a: 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff fffffffe',\n b: 'b4050a85 0c04b3ab f5413256 5044b0b7 d7bfd8ba 270b3943 2355ffb4',\n n: 'ffffffff ffffffff ffffffff ffff16a2 e0b8f03e 13dd2945 5c5c2a3d',\n hash: hash.sha256,\n gRed: false,\n g: [\n 'b70e0cbd 6bb4bf7f 321390b9 4a03c1d3 56c21122 343280d6 115c1d21',\n 'bd376388 b5f723fb 4c22dfe6 cd4375a0 5a074764 44d58199 85007e34',\n ],\n});\n\ndefineCurve('p256', {\n type: 'short',\n prime: null,\n p: 'ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff ffffffff',\n a: 'ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff fffffffc',\n b: '5ac635d8 aa3a93e7 b3ebbd55 769886bc 651d06b0 cc53b0f6 3bce3c3e 27d2604b',\n n: 'ffffffff 00000000 ffffffff ffffffff bce6faad a7179e84 f3b9cac2 fc632551',\n hash: hash.sha256,\n gRed: false,\n g: [\n '6b17d1f2 e12c4247 f8bce6e5 63a440f2 77037d81 2deb33a0 f4a13945 d898c296',\n '4fe342e2 fe1a7f9b 8ee7eb4a 7c0f9e16 2bce3357 6b315ece cbb64068 37bf51f5',\n ],\n});\n\ndefineCurve('p384', {\n type: 'short',\n prime: null,\n p: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'fffffffe ffffffff 00000000 00000000 ffffffff',\n a: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'fffffffe ffffffff 00000000 00000000 fffffffc',\n b: 'b3312fa7 e23ee7e4 988e056b e3f82d19 181d9c6e fe814112 0314088f ' +\n '5013875a c656398d 8a2ed19d 2a85c8ed d3ec2aef',\n n: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff c7634d81 ' +\n 'f4372ddf 581a0db2 48b0a77a ecec196a ccc52973',\n hash: hash.sha384,\n gRed: false,\n g: [\n 'aa87ca22 be8b0537 8eb1c71e f320ad74 6e1d3b62 8ba79b98 59f741e0 82542a38 ' +\n '5502f25d bf55296c 3a545e38 72760ab7',\n '3617de4a 96262c6f 5d9e98bf 9292dc29 f8f41dbd 289a147c e9da3113 b5f0b8c0 ' +\n '0a60b1ce 1d7e819d 7a431d7c 90ea0e5f',\n ],\n});\n\ndefineCurve('p521', {\n type: 'short',\n prime: null,\n p: '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff ffffffff',\n a: '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff fffffffc',\n b: '00000051 953eb961 8e1c9a1f 929a21a0 b68540ee a2da725b ' +\n '99b315f3 b8b48991 8ef109e1 56193951 ec7e937b 1652c0bd ' +\n '3bb1bf07 3573df88 3d2c34f1 ef451fd4 6b503f00',\n n: '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff fffffffa 51868783 bf2f966b 7fcc0148 ' +\n 'f709a5d0 3bb5c9b8 899c47ae bb6fb71e 91386409',\n hash: hash.sha512,\n gRed: false,\n g: [\n '000000c6 858e06b7 0404e9cd 9e3ecb66 2395b442 9c648139 ' +\n '053fb521 f828af60 6b4d3dba a14b5e77 efe75928 fe1dc127 ' +\n 'a2ffa8de 3348b3c1 856a429b f97e7e31 c2e5bd66',\n '00000118 39296a78 9a3bc004 5c8a5fb4 2c7d1bd9 98f54449 ' +\n '579b4468 17afbd17 273e662c 97ee7299 5ef42640 c550b901 ' +\n '3fad0761 353c7086 a272c240 88be9476 9fd16650',\n ],\n});\n\ndefineCurve('curve25519', {\n type: 'mont',\n prime: 'p25519',\n p: '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed',\n a: '76d06',\n b: '1',\n n: '1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed',\n hash: hash.sha256,\n gRed: false,\n g: [\n '9',\n ],\n});\n\ndefineCurve('ed25519', {\n type: 'edwards',\n prime: 'p25519',\n p: '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed',\n a: '-1',\n c: '1',\n // -121665 * (121666^(-1)) (mod P)\n d: '52036cee2b6ffe73 8cc740797779e898 00700a4d4141d8ab 75eb4dca135978a3',\n n: '1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed',\n hash: hash.sha256,\n gRed: false,\n g: [\n '216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a',\n\n // 4/5\n '6666666666666666666666666666666666666666666666666666666666666658',\n ],\n});\n\nvar pre;\ntry {\n pre = require('./precomputed/secp256k1');\n} catch (e) {\n pre = undefined;\n}\n\ndefineCurve('secp256k1', {\n type: 'short',\n prime: 'k256',\n p: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f',\n a: '0',\n b: '7',\n n: 'ffffffff ffffffff ffffffff fffffffe baaedce6 af48a03b bfd25e8c d0364141',\n h: '1',\n hash: hash.sha256,\n\n // Precomputed endomorphism\n beta: '7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee',\n lambda: '5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72',\n basis: [\n {\n a: '3086d221a7d46bcde86c90e49284eb15',\n b: '-e4437ed6010e88286f547fa90abfe4c3',\n },\n {\n a: '114ca50f7a8e2f3f657c1108d9d44cfd8',\n b: '3086d221a7d46bcde86c90e49284eb15',\n },\n ],\n\n gRed: false,\n g: [\n '79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798',\n '483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8',\n pre,\n ],\n});\n", "'use strict';\n\nvar hash = require('hash.js');\nvar utils = require('minimalistic-crypto-utils');\nvar assert = require('minimalistic-assert');\n\nfunction HmacDRBG(options) {\n if (!(this instanceof HmacDRBG))\n return new HmacDRBG(options);\n this.hash = options.hash;\n this.predResist = !!options.predResist;\n\n this.outLen = this.hash.outSize;\n this.minEntropy = options.minEntropy || this.hash.hmacStrength;\n\n this._reseed = null;\n this.reseedInterval = null;\n this.K = null;\n this.V = null;\n\n var entropy = utils.toArray(options.entropy, options.entropyEnc || 'hex');\n var nonce = utils.toArray(options.nonce, options.nonceEnc || 'hex');\n var pers = utils.toArray(options.pers, options.persEnc || 'hex');\n assert(entropy.length >= (this.minEntropy / 8),\n 'Not enough entropy. Minimum is: ' + this.minEntropy + ' bits');\n this._init(entropy, nonce, pers);\n}\nmodule.exports = HmacDRBG;\n\nHmacDRBG.prototype._init = function init(entropy, nonce, pers) {\n var seed = entropy.concat(nonce).concat(pers);\n\n this.K = new Array(this.outLen / 8);\n this.V = new Array(this.outLen / 8);\n for (var i = 0; i < this.V.length; i++) {\n this.K[i] = 0x00;\n this.V[i] = 0x01;\n }\n\n this._update(seed);\n this._reseed = 1;\n this.reseedInterval = 0x1000000000000; // 2^48\n};\n\nHmacDRBG.prototype._hmac = function hmac() {\n return new hash.hmac(this.hash, this.K);\n};\n\nHmacDRBG.prototype._update = function update(seed) {\n var kmac = this._hmac()\n .update(this.V)\n .update([ 0x00 ]);\n if (seed)\n kmac = kmac.update(seed);\n this.K = kmac.digest();\n this.V = this._hmac().update(this.V).digest();\n if (!seed)\n return;\n\n this.K = this._hmac()\n .update(this.V)\n .update([ 0x01 ])\n .update(seed)\n .digest();\n this.V = this._hmac().update(this.V).digest();\n};\n\nHmacDRBG.prototype.reseed = function reseed(entropy, entropyEnc, add, addEnc) {\n // Optional entropy enc\n if (typeof entropyEnc !== 'string') {\n addEnc = add;\n add = entropyEnc;\n entropyEnc = null;\n }\n\n entropy = utils.toArray(entropy, entropyEnc);\n add = utils.toArray(add, addEnc);\n\n assert(entropy.length >= (this.minEntropy / 8),\n 'Not enough entropy. Minimum is: ' + this.minEntropy + ' bits');\n\n this._update(entropy.concat(add || []));\n this._reseed = 1;\n};\n\nHmacDRBG.prototype.generate = function generate(len, enc, add, addEnc) {\n if (this._reseed > this.reseedInterval)\n throw new Error('Reseed is required');\n\n // Optional encoding\n if (typeof enc !== 'string') {\n addEnc = add;\n add = enc;\n enc = null;\n }\n\n // Optional additional data\n if (add) {\n add = utils.toArray(add, addEnc || 'hex');\n this._update(add);\n }\n\n var temp = [];\n while (temp.length < len) {\n this.V = this._hmac().update(this.V).digest();\n temp = temp.concat(this.V);\n }\n\n var res = temp.slice(0, len);\n this._update(add);\n this._reseed++;\n return utils.encode(res, enc);\n};\n", "'use strict';\n\nvar BN = require('bn.js');\nvar utils = require('../utils');\nvar assert = utils.assert;\n\nfunction KeyPair(ec, options) {\n this.ec = ec;\n this.priv = null;\n this.pub = null;\n\n // KeyPair(ec, { priv: ..., pub: ... })\n if (options.priv)\n this._importPrivate(options.priv, options.privEnc);\n if (options.pub)\n this._importPublic(options.pub, options.pubEnc);\n}\nmodule.exports = KeyPair;\n\nKeyPair.fromPublic = function fromPublic(ec, pub, enc) {\n if (pub instanceof KeyPair)\n return pub;\n\n return new KeyPair(ec, {\n pub: pub,\n pubEnc: enc,\n });\n};\n\nKeyPair.fromPrivate = function fromPrivate(ec, priv, enc) {\n if (priv instanceof KeyPair)\n return priv;\n\n return new KeyPair(ec, {\n priv: priv,\n privEnc: enc,\n });\n};\n\nKeyPair.prototype.validate = function validate() {\n var pub = this.getPublic();\n\n if (pub.isInfinity())\n return { result: false, reason: 'Invalid public key' };\n if (!pub.validate())\n return { result: false, reason: 'Public key is not a point' };\n if (!pub.mul(this.ec.curve.n).isInfinity())\n return { result: false, reason: 'Public key * N != O' };\n\n return { result: true, reason: null };\n};\n\nKeyPair.prototype.getPublic = function getPublic(compact, enc) {\n // compact is optional argument\n if (typeof compact === 'string') {\n enc = compact;\n compact = null;\n }\n\n if (!this.pub)\n this.pub = this.ec.g.mul(this.priv);\n\n if (!enc)\n return this.pub;\n\n return this.pub.encode(enc, compact);\n};\n\nKeyPair.prototype.getPrivate = function getPrivate(enc) {\n if (enc === 'hex')\n return this.priv.toString(16, 2);\n else\n return this.priv;\n};\n\nKeyPair.prototype._importPrivate = function _importPrivate(key, enc) {\n this.priv = new BN(key, enc || 16);\n\n // Ensure that the priv won't be bigger than n, otherwise we may fail\n // in fixed multiplication method\n this.priv = this.priv.umod(this.ec.curve.n);\n};\n\nKeyPair.prototype._importPublic = function _importPublic(key, enc) {\n if (key.x || key.y) {\n // Montgomery points only have an `x` coordinate.\n // Weierstrass/Edwards points on the other hand have both `x` and\n // `y` coordinates.\n if (this.ec.curve.type === 'mont') {\n assert(key.x, 'Need x coordinate');\n } else if (this.ec.curve.type === 'short' ||\n this.ec.curve.type === 'edwards') {\n assert(key.x && key.y, 'Need both x and y coordinate');\n }\n this.pub = this.ec.curve.point(key.x, key.y);\n return;\n }\n this.pub = this.ec.curve.decodePoint(key, enc);\n};\n\n// ECDH\nKeyPair.prototype.derive = function derive(pub) {\n if(!pub.validate()) {\n assert(pub.validate(), 'public point not validated');\n }\n return pub.mul(this.priv).getX();\n};\n\n// ECDSA\nKeyPair.prototype.sign = function sign(msg, enc, options) {\n return this.ec.sign(msg, this, enc, options);\n};\n\nKeyPair.prototype.verify = function verify(msg, signature) {\n return this.ec.verify(msg, signature, this);\n};\n\nKeyPair.prototype.inspect = function inspect() {\n return '';\n};\n", "'use strict';\n\nvar BN = require('bn.js');\n\nvar utils = require('../utils');\nvar assert = utils.assert;\n\nfunction Signature(options, enc) {\n if (options instanceof Signature)\n return options;\n\n if (this._importDER(options, enc))\n return;\n\n assert(options.r && options.s, 'Signature without r or s');\n this.r = new BN(options.r, 16);\n this.s = new BN(options.s, 16);\n if (options.recoveryParam === undefined)\n this.recoveryParam = null;\n else\n this.recoveryParam = options.recoveryParam;\n}\nmodule.exports = Signature;\n\nfunction Position() {\n this.place = 0;\n}\n\nfunction getLength(buf, p) {\n var initial = buf[p.place++];\n if (!(initial & 0x80)) {\n return initial;\n }\n var octetLen = initial & 0xf;\n\n // Indefinite length or overflow\n if (octetLen === 0 || octetLen > 4) {\n return false;\n }\n\n var val = 0;\n for (var i = 0, off = p.place; i < octetLen; i++, off++) {\n val <<= 8;\n val |= buf[off];\n val >>>= 0;\n }\n\n // Leading zeroes\n if (val <= 0x7f) {\n return false;\n }\n\n p.place = off;\n return val;\n}\n\nfunction rmPadding(buf) {\n var i = 0;\n var len = buf.length - 1;\n while (!buf[i] && !(buf[i + 1] & 0x80) && i < len) {\n i++;\n }\n if (i === 0) {\n return buf;\n }\n return buf.slice(i);\n}\n\nSignature.prototype._importDER = function _importDER(data, enc) {\n data = utils.toArray(data, enc);\n var p = new Position();\n if (data[p.place++] !== 0x30) {\n return false;\n }\n var len = getLength(data, p);\n if (len === false) {\n return false;\n }\n if ((len + p.place) !== data.length) {\n return false;\n }\n if (data[p.place++] !== 0x02) {\n return false;\n }\n var rlen = getLength(data, p);\n if (rlen === false) {\n return false;\n }\n var r = data.slice(p.place, rlen + p.place);\n p.place += rlen;\n if (data[p.place++] !== 0x02) {\n return false;\n }\n var slen = getLength(data, p);\n if (slen === false) {\n return false;\n }\n if (data.length !== slen + p.place) {\n return false;\n }\n var s = data.slice(p.place, slen + p.place);\n if (r[0] === 0) {\n if (r[1] & 0x80) {\n r = r.slice(1);\n } else {\n // Leading zeroes\n return false;\n }\n }\n if (s[0] === 0) {\n if (s[1] & 0x80) {\n s = s.slice(1);\n } else {\n // Leading zeroes\n return false;\n }\n }\n\n this.r = new BN(r);\n this.s = new BN(s);\n this.recoveryParam = null;\n\n return true;\n};\n\nfunction constructLength(arr, len) {\n if (len < 0x80) {\n arr.push(len);\n return;\n }\n var octets = 1 + (Math.log(len) / Math.LN2 >>> 3);\n arr.push(octets | 0x80);\n while (--octets) {\n arr.push((len >>> (octets << 3)) & 0xff);\n }\n arr.push(len);\n}\n\nSignature.prototype.toDER = function toDER(enc) {\n var r = this.r.toArray();\n var s = this.s.toArray();\n\n // Pad values\n if (r[0] & 0x80)\n r = [ 0 ].concat(r);\n // Pad values\n if (s[0] & 0x80)\n s = [ 0 ].concat(s);\n\n r = rmPadding(r);\n s = rmPadding(s);\n\n while (!s[0] && !(s[1] & 0x80)) {\n s = s.slice(1);\n }\n var arr = [ 0x02 ];\n constructLength(arr, r.length);\n arr = arr.concat(r);\n arr.push(0x02);\n constructLength(arr, s.length);\n var backHalf = arr.concat(s);\n var res = [ 0x30 ];\n constructLength(res, backHalf.length);\n res = res.concat(backHalf);\n return utils.encode(res, enc);\n};\n", "'use strict';\n\nvar BN = require('bn.js');\nvar HmacDRBG = require('hmac-drbg');\nvar utils = require('../utils');\nvar curves = require('../curves');\nvar rand = require('brorand');\nvar assert = utils.assert;\n\nvar KeyPair = require('./key');\nvar Signature = require('./signature');\n\nfunction EC(options) {\n if (!(this instanceof EC))\n return new EC(options);\n\n // Shortcut `elliptic.ec(curve-name)`\n if (typeof options === 'string') {\n assert(Object.prototype.hasOwnProperty.call(curves, options),\n 'Unknown curve ' + options);\n\n options = curves[options];\n }\n\n // Shortcut for `elliptic.ec(elliptic.curves.curveName)`\n if (options instanceof curves.PresetCurve)\n options = { curve: options };\n\n this.curve = options.curve.curve;\n this.n = this.curve.n;\n this.nh = this.n.ushrn(1);\n this.g = this.curve.g;\n\n // Point on curve\n this.g = options.curve.g;\n this.g.precompute(options.curve.n.bitLength() + 1);\n\n // Hash for function for DRBG\n this.hash = options.hash || options.curve.hash;\n}\nmodule.exports = EC;\n\nEC.prototype.keyPair = function keyPair(options) {\n return new KeyPair(this, options);\n};\n\nEC.prototype.keyFromPrivate = function keyFromPrivate(priv, enc) {\n return KeyPair.fromPrivate(this, priv, enc);\n};\n\nEC.prototype.keyFromPublic = function keyFromPublic(pub, enc) {\n return KeyPair.fromPublic(this, pub, enc);\n};\n\nEC.prototype.genKeyPair = function genKeyPair(options) {\n if (!options)\n options = {};\n\n // Instantiate Hmac_DRBG\n var drbg = new HmacDRBG({\n hash: this.hash,\n pers: options.pers,\n persEnc: options.persEnc || 'utf8',\n entropy: options.entropy || rand(this.hash.hmacStrength),\n entropyEnc: options.entropy && options.entropyEnc || 'utf8',\n nonce: this.n.toArray(),\n });\n\n var bytes = this.n.byteLength();\n var ns2 = this.n.sub(new BN(2));\n for (;;) {\n var priv = new BN(drbg.generate(bytes));\n if (priv.cmp(ns2) > 0)\n continue;\n\n priv.iaddn(1);\n return this.keyFromPrivate(priv);\n }\n};\n\nEC.prototype._truncateToN = function _truncateToN(msg, truncOnly) {\n var delta = msg.byteLength() * 8 - this.n.bitLength();\n if (delta > 0)\n msg = msg.ushrn(delta);\n if (!truncOnly && msg.cmp(this.n) >= 0)\n return msg.sub(this.n);\n else\n return msg;\n};\n\nEC.prototype.sign = function sign(msg, key, enc, options) {\n if (typeof enc === 'object') {\n options = enc;\n enc = null;\n }\n if (!options)\n options = {};\n\n key = this.keyFromPrivate(key, enc);\n msg = this._truncateToN(new BN(msg, 16));\n\n // Zero-extend key to provide enough entropy\n var bytes = this.n.byteLength();\n var bkey = key.getPrivate().toArray('be', bytes);\n\n // Zero-extend nonce to have the same byte size as N\n var nonce = msg.toArray('be', bytes);\n\n // Instantiate Hmac_DRBG\n var drbg = new HmacDRBG({\n hash: this.hash,\n entropy: bkey,\n nonce: nonce,\n pers: options.pers,\n persEnc: options.persEnc || 'utf8',\n });\n\n // Number of bytes to generate\n var ns1 = this.n.sub(new BN(1));\n\n for (var iter = 0; ; iter++) {\n var k = options.k ?\n options.k(iter) :\n new BN(drbg.generate(this.n.byteLength()));\n k = this._truncateToN(k, true);\n if (k.cmpn(1) <= 0 || k.cmp(ns1) >= 0)\n continue;\n\n var kp = this.g.mul(k);\n if (kp.isInfinity())\n continue;\n\n var kpX = kp.getX();\n var r = kpX.umod(this.n);\n if (r.cmpn(0) === 0)\n continue;\n\n var s = k.invm(this.n).mul(r.mul(key.getPrivate()).iadd(msg));\n s = s.umod(this.n);\n if (s.cmpn(0) === 0)\n continue;\n\n var recoveryParam = (kp.getY().isOdd() ? 1 : 0) |\n (kpX.cmp(r) !== 0 ? 2 : 0);\n\n // Use complement of `s`, if it is > `n / 2`\n if (options.canonical && s.cmp(this.nh) > 0) {\n s = this.n.sub(s);\n recoveryParam ^= 1;\n }\n\n return new Signature({ r: r, s: s, recoveryParam: recoveryParam });\n }\n};\n\nEC.prototype.verify = function verify(msg, signature, key, enc) {\n msg = this._truncateToN(new BN(msg, 16));\n key = this.keyFromPublic(key, enc);\n signature = new Signature(signature, 'hex');\n\n // Perform primitive values validation\n var r = signature.r;\n var s = signature.s;\n if (r.cmpn(1) < 0 || r.cmp(this.n) >= 0)\n return false;\n if (s.cmpn(1) < 0 || s.cmp(this.n) >= 0)\n return false;\n\n // Validate signature\n var sinv = s.invm(this.n);\n var u1 = sinv.mul(msg).umod(this.n);\n var u2 = sinv.mul(r).umod(this.n);\n var p;\n\n if (!this.curve._maxwellTrick) {\n p = this.g.mulAdd(u1, key.getPublic(), u2);\n if (p.isInfinity())\n return false;\n\n return p.getX().umod(this.n).cmp(r) === 0;\n }\n\n // NOTE: Greg Maxwell's trick, inspired by:\n // https://git.io/vad3K\n\n p = this.g.jmulAdd(u1, key.getPublic(), u2);\n if (p.isInfinity())\n return false;\n\n // Compare `p.x` of Jacobian point with `r`,\n // this will do `p.x == r * p.z^2` instead of multiplying `p.x` by the\n // inverse of `p.z^2`\n return p.eqXToP(r);\n};\n\nEC.prototype.recoverPubKey = function(msg, signature, j, enc) {\n assert((3 & j) === j, 'The recovery param is more than two bits');\n signature = new Signature(signature, enc);\n\n var n = this.n;\n var e = new BN(msg);\n var r = signature.r;\n var s = signature.s;\n\n // A set LSB signifies that the y-coordinate is odd\n var isYOdd = j & 1;\n var isSecondKey = j >> 1;\n if (r.cmp(this.curve.p.umod(this.curve.n)) >= 0 && isSecondKey)\n throw new Error('Unable to find sencond key candinate');\n\n // 1.1. Let x = r + jn.\n if (isSecondKey)\n r = this.curve.pointFromX(r.add(this.curve.n), isYOdd);\n else\n r = this.curve.pointFromX(r, isYOdd);\n\n var rInv = signature.r.invm(n);\n var s1 = n.sub(e).mul(rInv).umod(n);\n var s2 = s.mul(rInv).umod(n);\n\n // 1.6.1 Compute Q = r^-1 (sR - eG)\n // Q = r^-1 (sR + -eG)\n return this.g.mulAdd(s1, r, s2);\n};\n\nEC.prototype.getKeyRecoveryParam = function(e, signature, Q, enc) {\n signature = new Signature(signature, enc);\n if (signature.recoveryParam !== null)\n return signature.recoveryParam;\n\n for (var i = 0; i < 4; i++) {\n var Qprime;\n try {\n Qprime = this.recoverPubKey(e, signature, i);\n } catch (e) {\n continue;\n }\n\n if (Qprime.eq(Q))\n return i;\n }\n throw new Error('Unable to find valid recovery factor');\n};\n", "'use strict';\n\nvar utils = require('../utils');\nvar assert = utils.assert;\nvar parseBytes = utils.parseBytes;\nvar cachedProperty = utils.cachedProperty;\n\n/**\n* @param {EDDSA} eddsa - instance\n* @param {Object} params - public/private key parameters\n*\n* @param {Array} [params.secret] - secret seed bytes\n* @param {Point} [params.pub] - public key point (aka `A` in eddsa terms)\n* @param {Array} [params.pub] - public key point encoded as bytes\n*\n*/\nfunction KeyPair(eddsa, params) {\n this.eddsa = eddsa;\n this._secret = parseBytes(params.secret);\n if (eddsa.isPoint(params.pub))\n this._pub = params.pub;\n else\n this._pubBytes = parseBytes(params.pub);\n}\n\nKeyPair.fromPublic = function fromPublic(eddsa, pub) {\n if (pub instanceof KeyPair)\n return pub;\n return new KeyPair(eddsa, { pub: pub });\n};\n\nKeyPair.fromSecret = function fromSecret(eddsa, secret) {\n if (secret instanceof KeyPair)\n return secret;\n return new KeyPair(eddsa, { secret: secret });\n};\n\nKeyPair.prototype.secret = function secret() {\n return this._secret;\n};\n\ncachedProperty(KeyPair, 'pubBytes', function pubBytes() {\n return this.eddsa.encodePoint(this.pub());\n});\n\ncachedProperty(KeyPair, 'pub', function pub() {\n if (this._pubBytes)\n return this.eddsa.decodePoint(this._pubBytes);\n return this.eddsa.g.mul(this.priv());\n});\n\ncachedProperty(KeyPair, 'privBytes', function privBytes() {\n var eddsa = this.eddsa;\n var hash = this.hash();\n var lastIx = eddsa.encodingLength - 1;\n\n var a = hash.slice(0, eddsa.encodingLength);\n a[0] &= 248;\n a[lastIx] &= 127;\n a[lastIx] |= 64;\n\n return a;\n});\n\ncachedProperty(KeyPair, 'priv', function priv() {\n return this.eddsa.decodeInt(this.privBytes());\n});\n\ncachedProperty(KeyPair, 'hash', function hash() {\n return this.eddsa.hash().update(this.secret()).digest();\n});\n\ncachedProperty(KeyPair, 'messagePrefix', function messagePrefix() {\n return this.hash().slice(this.eddsa.encodingLength);\n});\n\nKeyPair.prototype.sign = function sign(message) {\n assert(this._secret, 'KeyPair can only verify');\n return this.eddsa.sign(message, this);\n};\n\nKeyPair.prototype.verify = function verify(message, sig) {\n return this.eddsa.verify(message, sig, this);\n};\n\nKeyPair.prototype.getSecret = function getSecret(enc) {\n assert(this._secret, 'KeyPair is public only');\n return utils.encode(this.secret(), enc);\n};\n\nKeyPair.prototype.getPublic = function getPublic(enc) {\n return utils.encode(this.pubBytes(), enc);\n};\n\nmodule.exports = KeyPair;\n", "'use strict';\n\nvar BN = require('bn.js');\nvar utils = require('../utils');\nvar assert = utils.assert;\nvar cachedProperty = utils.cachedProperty;\nvar parseBytes = utils.parseBytes;\n\n/**\n* @param {EDDSA} eddsa - eddsa instance\n* @param {Array|Object} sig -\n* @param {Array|Point} [sig.R] - R point as Point or bytes\n* @param {Array|bn} [sig.S] - S scalar as bn or bytes\n* @param {Array} [sig.Rencoded] - R point encoded\n* @param {Array} [sig.Sencoded] - S scalar encoded\n*/\nfunction Signature(eddsa, sig) {\n this.eddsa = eddsa;\n\n if (typeof sig !== 'object')\n sig = parseBytes(sig);\n\n if (Array.isArray(sig)) {\n sig = {\n R: sig.slice(0, eddsa.encodingLength),\n S: sig.slice(eddsa.encodingLength),\n };\n }\n\n assert(sig.R && sig.S, 'Signature without R or S');\n\n if (eddsa.isPoint(sig.R))\n this._R = sig.R;\n if (sig.S instanceof BN)\n this._S = sig.S;\n\n this._Rencoded = Array.isArray(sig.R) ? sig.R : sig.Rencoded;\n this._Sencoded = Array.isArray(sig.S) ? sig.S : sig.Sencoded;\n}\n\ncachedProperty(Signature, 'S', function S() {\n return this.eddsa.decodeInt(this.Sencoded());\n});\n\ncachedProperty(Signature, 'R', function R() {\n return this.eddsa.decodePoint(this.Rencoded());\n});\n\ncachedProperty(Signature, 'Rencoded', function Rencoded() {\n return this.eddsa.encodePoint(this.R());\n});\n\ncachedProperty(Signature, 'Sencoded', function Sencoded() {\n return this.eddsa.encodeInt(this.S());\n});\n\nSignature.prototype.toBytes = function toBytes() {\n return this.Rencoded().concat(this.Sencoded());\n};\n\nSignature.prototype.toHex = function toHex() {\n return utils.encode(this.toBytes(), 'hex').toUpperCase();\n};\n\nmodule.exports = Signature;\n", "'use strict';\n\nvar hash = require('hash.js');\nvar curves = require('../curves');\nvar utils = require('../utils');\nvar assert = utils.assert;\nvar parseBytes = utils.parseBytes;\nvar KeyPair = require('./key');\nvar Signature = require('./signature');\n\nfunction EDDSA(curve) {\n assert(curve === 'ed25519', 'only tested with ed25519 so far');\n\n if (!(this instanceof EDDSA))\n return new EDDSA(curve);\n\n curve = curves[curve].curve;\n this.curve = curve;\n this.g = curve.g;\n this.g.precompute(curve.n.bitLength() + 1);\n\n this.pointClass = curve.point().constructor;\n this.encodingLength = Math.ceil(curve.n.bitLength() / 8);\n this.hash = hash.sha512;\n}\n\nmodule.exports = EDDSA;\n\n/**\n* @param {Array|String} message - message bytes\n* @param {Array|String|KeyPair} secret - secret bytes or a keypair\n* @returns {Signature} - signature\n*/\nEDDSA.prototype.sign = function sign(message, secret) {\n message = parseBytes(message);\n var key = this.keyFromSecret(secret);\n var r = this.hashInt(key.messagePrefix(), message);\n var R = this.g.mul(r);\n var Rencoded = this.encodePoint(R);\n var s_ = this.hashInt(Rencoded, key.pubBytes(), message)\n .mul(key.priv());\n var S = r.add(s_).umod(this.curve.n);\n return this.makeSignature({ R: R, S: S, Rencoded: Rencoded });\n};\n\n/**\n* @param {Array} message - message bytes\n* @param {Array|String|Signature} sig - sig bytes\n* @param {Array|String|Point|KeyPair} pub - public key\n* @returns {Boolean} - true if public key matches sig of message\n*/\nEDDSA.prototype.verify = function verify(message, sig, pub) {\n message = parseBytes(message);\n sig = this.makeSignature(sig);\n var key = this.keyFromPublic(pub);\n var h = this.hashInt(sig.Rencoded(), key.pubBytes(), message);\n var SG = this.g.mul(sig.S());\n var RplusAh = sig.R().add(key.pub().mul(h));\n return RplusAh.eq(SG);\n};\n\nEDDSA.prototype.hashInt = function hashInt() {\n var hash = this.hash();\n for (var i = 0; i < arguments.length; i++)\n hash.update(arguments[i]);\n return utils.intFromLE(hash.digest()).umod(this.curve.n);\n};\n\nEDDSA.prototype.keyFromPublic = function keyFromPublic(pub) {\n return KeyPair.fromPublic(this, pub);\n};\n\nEDDSA.prototype.keyFromSecret = function keyFromSecret(secret) {\n return KeyPair.fromSecret(this, secret);\n};\n\nEDDSA.prototype.makeSignature = function makeSignature(sig) {\n if (sig instanceof Signature)\n return sig;\n return new Signature(this, sig);\n};\n\n/**\n* * https://tools.ietf.org/html/draft-josefsson-eddsa-ed25519-03#section-5.2\n*\n* EDDSA defines methods for encoding and decoding points and integers. These are\n* helper convenience methods, that pass along to utility functions implied\n* parameters.\n*\n*/\nEDDSA.prototype.encodePoint = function encodePoint(point) {\n var enc = point.getY().toArray('le', this.encodingLength);\n enc[this.encodingLength - 1] |= point.getX().isOdd() ? 0x80 : 0;\n return enc;\n};\n\nEDDSA.prototype.decodePoint = function decodePoint(bytes) {\n bytes = utils.parseBytes(bytes);\n\n var lastIx = bytes.length - 1;\n var normed = bytes.slice(0, lastIx).concat(bytes[lastIx] & ~0x80);\n var xIsOdd = (bytes[lastIx] & 0x80) !== 0;\n\n var y = utils.intFromLE(normed);\n return this.curve.pointFromY(y, xIsOdd);\n};\n\nEDDSA.prototype.encodeInt = function encodeInt(num) {\n return num.toArray('le', this.encodingLength);\n};\n\nEDDSA.prototype.decodeInt = function decodeInt(bytes) {\n return utils.intFromLE(bytes);\n};\n\nEDDSA.prototype.isPoint = function isPoint(val) {\n return val instanceof this.pointClass;\n};\n", "'use strict';\n\nvar elliptic = exports;\n\nelliptic.version = require('../package.json').version;\nelliptic.utils = require('./elliptic/utils');\nelliptic.rand = require('brorand');\nelliptic.curve = require('./elliptic/curve');\nelliptic.curves = require('./elliptic/curves');\n\n// Protocols\nelliptic.ec = require('./elliptic/ec');\nelliptic.eddsa = require('./elliptic/eddsa');\n", "const createHmac = require('create-hmac')\n\nconst ONE1 = Buffer.alloc(1, 1)\nconst ZERO1 = Buffer.alloc(1, 0)\n\n// https://tools.ietf.org/html/rfc6979#section-3.2\nfunction deterministicGenerateK (hash, x, checkSig, isPrivate, extraEntropy) {\n // Step A, ignored as hash already provided\n // Step B\n // Step C\n let k = Buffer.alloc(32, 0)\n let v = Buffer.alloc(32, 1)\n\n // Step D\n k = createHmac('sha256', k)\n .update(v)\n .update(ZERO1)\n .update(x)\n .update(hash)\n .update(extraEntropy || '')\n .digest()\n\n // Step E\n v = createHmac('sha256', k).update(v).digest()\n\n // Step F\n k = createHmac('sha256', k)\n .update(v)\n .update(ONE1)\n .update(x)\n .update(hash)\n .update(extraEntropy || '')\n .digest()\n\n // Step G\n v = createHmac('sha256', k).update(v).digest()\n\n // Step H1/H2a, ignored as tlen === qlen (256 bit)\n // Step H2b\n v = createHmac('sha256', k).update(v).digest()\n\n let T = v\n\n // Step H3, repeat until T is within the interval [1, n - 1] and is suitable for ECDSA\n while (!isPrivate(T) || !checkSig(T)) {\n k = createHmac('sha256', k)\n .update(v)\n .update(ZERO1)\n .digest()\n\n v = createHmac('sha256', k).update(v).digest()\n\n // Step H1/H2a, again, ignored as tlen === qlen (256 bit)\n // Step H2b again\n v = createHmac('sha256', k).update(v).digest()\n T = v\n }\n\n return T\n}\n\nmodule.exports = deterministicGenerateK\n", "const BN = require('bn.js')\nconst EC = require('elliptic').ec\nconst secp256k1 = new EC('secp256k1')\nconst deterministicGenerateK = require('./rfc6979')\n\nconst ZERO32 = Buffer.alloc(32, 0)\nconst EC_GROUP_ORDER = Buffer.from('fffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141', 'hex')\nconst EC_P = Buffer.from('fffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f', 'hex')\n\nconst n = secp256k1.curve.n\nconst nDiv2 = n.shrn(1)\nconst G = secp256k1.curve.g\n\nconst THROW_BAD_PRIVATE = 'Expected Private'\nconst THROW_BAD_POINT = 'Expected Point'\nconst THROW_BAD_TWEAK = 'Expected Tweak'\nconst THROW_BAD_HASH = 'Expected Hash'\nconst THROW_BAD_SIGNATURE = 'Expected Signature'\nconst THROW_BAD_EXTRA_DATA = 'Expected Extra Data (32 bytes)'\n\nfunction isScalar (x) {\n return Buffer.isBuffer(x) && x.length === 32\n}\n\nfunction isOrderScalar (x) {\n if (!isScalar(x)) return false\n return x.compare(EC_GROUP_ORDER) < 0 // < G\n}\n\nfunction isPoint (p) {\n if (!Buffer.isBuffer(p)) return false\n if (p.length < 33) return false\n\n const t = p[0]\n const x = p.slice(1, 33)\n if (x.compare(ZERO32) === 0) return false\n if (x.compare(EC_P) >= 0) return false\n if ((t === 0x02 || t === 0x03) && p.length === 33) {\n try { decodeFrom(p) } catch (e) { return false } // TODO: temporary\n return true\n }\n\n const y = p.slice(33)\n if (y.compare(ZERO32) === 0) return false\n if (y.compare(EC_P) >= 0) return false\n if (t === 0x04 && p.length === 65) return true\n return false\n}\n\nfunction __isPointCompressed (p) {\n return p[0] !== 0x04\n}\n\nfunction isPointCompressed (p) {\n if (!isPoint(p)) return false\n return __isPointCompressed(p)\n}\n\nfunction isPrivate (x) {\n if (!isScalar(x)) return false\n return x.compare(ZERO32) > 0 && // > 0\n x.compare(EC_GROUP_ORDER) < 0 // < G\n}\n\nfunction isSignature (value) {\n const r = value.slice(0, 32)\n const s = value.slice(32, 64)\n return Buffer.isBuffer(value) && value.length === 64 &&\n r.compare(EC_GROUP_ORDER) < 0 &&\n s.compare(EC_GROUP_ORDER) < 0\n}\n\nfunction assumeCompression (value, pubkey) {\n if (value === undefined && pubkey !== undefined) return __isPointCompressed(pubkey)\n if (value === undefined) return true\n return value\n}\n\nfunction fromBuffer (d) { return new BN(d) }\nfunction toBuffer (d) { return d.toArrayLike(Buffer, 'be', 32) }\nfunction decodeFrom (P) { return secp256k1.curve.decodePoint(P) }\nfunction getEncoded (P, compressed) { return Buffer.from(P._encode(compressed)) }\n\nfunction pointAdd (pA, pB, __compressed) {\n if (!isPoint(pA)) throw new TypeError(THROW_BAD_POINT)\n if (!isPoint(pB)) throw new TypeError(THROW_BAD_POINT)\n\n const a = decodeFrom(pA)\n const b = decodeFrom(pB)\n const pp = a.add(b)\n if (pp.isInfinity()) return null\n\n const compressed = assumeCompression(__compressed, pA)\n return getEncoded(pp, compressed)\n}\n\nfunction pointAddScalar (p, tweak, __compressed) {\n if (!isPoint(p)) throw new TypeError(THROW_BAD_POINT)\n if (!isOrderScalar(tweak)) throw new TypeError(THROW_BAD_TWEAK)\n\n const compressed = assumeCompression(__compressed, p)\n const pp = decodeFrom(p)\n if (tweak.compare(ZERO32) === 0) return getEncoded(pp, compressed)\n\n const tt = fromBuffer(tweak)\n const qq = G.mul(tt)\n const uu = pp.add(qq)\n if (uu.isInfinity()) return null\n\n return getEncoded(uu, compressed)\n}\n\nfunction pointCompress (p, __compressed) {\n if (!isPoint(p)) throw new TypeError(THROW_BAD_POINT)\n\n const pp = decodeFrom(p)\n if (pp.isInfinity()) throw new TypeError(THROW_BAD_POINT)\n\n const compressed = assumeCompression(__compressed, p)\n\n return getEncoded(pp, compressed)\n}\n\nfunction pointFromScalar (d, __compressed) {\n if (!isPrivate(d)) throw new TypeError(THROW_BAD_PRIVATE)\n\n const dd = fromBuffer(d)\n const pp = G.mul(dd)\n if (pp.isInfinity()) return null\n\n const compressed = assumeCompression(__compressed)\n return getEncoded(pp, compressed)\n}\n\nfunction pointMultiply (p, tweak, __compressed) {\n if (!isPoint(p)) throw new TypeError(THROW_BAD_POINT)\n if (!isOrderScalar(tweak)) throw new TypeError(THROW_BAD_TWEAK)\n\n const compressed = assumeCompression(__compressed, p)\n const pp = decodeFrom(p)\n const tt = fromBuffer(tweak)\n const qq = pp.mul(tt)\n if (qq.isInfinity()) return null\n\n return getEncoded(qq, compressed)\n}\n\nfunction privateAdd (d, tweak) {\n if (!isPrivate(d)) throw new TypeError(THROW_BAD_PRIVATE)\n if (!isOrderScalar(tweak)) throw new TypeError(THROW_BAD_TWEAK)\n\n const dd = fromBuffer(d)\n const tt = fromBuffer(tweak)\n const dt = toBuffer(dd.add(tt).umod(n))\n if (!isPrivate(dt)) return null\n\n return dt\n}\n\nfunction privateSub (d, tweak) {\n if (!isPrivate(d)) throw new TypeError(THROW_BAD_PRIVATE)\n if (!isOrderScalar(tweak)) throw new TypeError(THROW_BAD_TWEAK)\n\n const dd = fromBuffer(d)\n const tt = fromBuffer(tweak)\n const dt = toBuffer(dd.sub(tt).umod(n))\n if (!isPrivate(dt)) return null\n\n return dt\n}\n\nfunction sign (hash, x) {\n return __sign(hash, x)\n}\n\nfunction signWithEntropy (hash, x, addData) {\n return __sign(hash, x, addData)\n}\n\nfunction __sign (hash, x, addData) {\n if (!isScalar(hash)) throw new TypeError(THROW_BAD_HASH)\n if (!isPrivate(x)) throw new TypeError(THROW_BAD_PRIVATE)\n if (addData !== undefined && !isScalar(addData)) throw new TypeError(THROW_BAD_EXTRA_DATA)\n\n const d = fromBuffer(x)\n const e = fromBuffer(hash)\n\n let r, s\n const checkSig = function (k) {\n const kI = fromBuffer(k)\n const Q = G.mul(kI)\n\n if (Q.isInfinity()) return false\n\n r = Q.x.umod(n)\n if (r.isZero() === 0) return false\n\n s = kI\n .invm(n)\n .mul(e.add(d.mul(r)))\n .umod(n)\n if (s.isZero() === 0) return false\n\n return true\n }\n\n deterministicGenerateK(hash, x, checkSig, isPrivate, addData)\n\n // enforce low S values, see bip62: 'low s values in signatures'\n if (s.cmp(nDiv2) > 0) {\n s = n.sub(s)\n }\n\n const buffer = Buffer.allocUnsafe(64)\n toBuffer(r).copy(buffer, 0)\n toBuffer(s).copy(buffer, 32)\n return buffer\n}\n\nfunction verify (hash, q, signature, strict) {\n if (!isScalar(hash)) throw new TypeError(THROW_BAD_HASH)\n if (!isPoint(q)) throw new TypeError(THROW_BAD_POINT)\n\n // 1.4.1 Enforce r and s are both integers in the interval [1, n \u2212 1] (1, isSignature enforces '< n - 1')\n if (!isSignature(signature)) throw new TypeError(THROW_BAD_SIGNATURE)\n\n const Q = decodeFrom(q)\n const r = fromBuffer(signature.slice(0, 32))\n const s = fromBuffer(signature.slice(32, 64))\n\n if (strict && s.cmp(nDiv2) > 0) {\n return false\n }\n\n // 1.4.1 Enforce r and s are both integers in the interval [1, n \u2212 1] (2, enforces '> 0')\n if (r.gtn(0) <= 0 /* || r.compareTo(n) >= 0 */) return false\n if (s.gtn(0) <= 0 /* || s.compareTo(n) >= 0 */) return false\n\n // 1.4.2 H = Hash(M), already done by the user\n // 1.4.3 e = H\n const e = fromBuffer(hash)\n\n // Compute s^-1\n const sInv = s.invm(n)\n\n // 1.4.4 Compute u1 = es^\u22121 mod n\n // u2 = rs^\u22121 mod n\n const u1 = e.mul(sInv).umod(n)\n const u2 = r.mul(sInv).umod(n)\n\n // 1.4.5 Compute R = (xR, yR)\n // R = u1G + u2Q\n const R = G.mulAdd(u1, Q, u2)\n\n // 1.4.5 (cont.) Enforce R is not at infinity\n if (R.isInfinity()) return false\n\n // 1.4.6 Convert the field element R.x to an integer\n const xR = R.x\n\n // 1.4.7 Set v = xR mod n\n const v = xR.umod(n)\n\n // 1.4.8 If v = r, output \"valid\", and if v != r, output \"invalid\"\n return v.eq(r)\n}\n\nmodule.exports = {\n isPoint,\n isPointCompressed,\n isPrivate,\n pointAdd,\n pointAddScalar,\n pointCompress,\n pointFromScalar,\n pointMultiply,\n privateAdd,\n privateSub,\n sign,\n signWithEntropy,\n verify\n}\n", "'use strict'\n\ntry {\n module.exports = require('./native')\n} catch (err) {\n module.exports = require('./js')\n}\n", "var types = {\n Array: function (value) { return value !== null && value !== undefined && value.constructor === Array },\n Boolean: function (value) { return typeof value === 'boolean' },\n Function: function (value) { return typeof value === 'function' },\n Nil: function (value) { return value === undefined || value === null },\n Number: function (value) { return typeof value === 'number' },\n Object: function (value) { return typeof value === 'object' },\n String: function (value) { return typeof value === 'string' },\n '': function () { return true }\n}\n\n// TODO: deprecate\ntypes.Null = types.Nil\n\nfor (var typeName in types) {\n types[typeName].toJSON = function (t) {\n return t\n }.bind(null, typeName)\n}\n\nmodule.exports = types\n", "var native = require('./native')\n\nfunction getTypeName (fn) {\n return fn.name || fn.toString().match(/function (.*?)\\s*\\(/)[1]\n}\n\nfunction getValueTypeName (value) {\n return native.Nil(value) ? '' : getTypeName(value.constructor)\n}\n\nfunction getValue (value) {\n if (native.Function(value)) return ''\n if (native.String(value)) return JSON.stringify(value)\n if (value && native.Object(value)) return ''\n return value\n}\n\nfunction captureStackTrace (e, t) {\n if (Error.captureStackTrace) {\n Error.captureStackTrace(e, t)\n }\n}\n\nfunction tfJSON (type) {\n if (native.Function(type)) return type.toJSON ? type.toJSON() : getTypeName(type)\n if (native.Array(type)) return 'Array'\n if (type && native.Object(type)) return 'Object'\n\n return type !== undefined ? type : ''\n}\n\nfunction tfErrorString (type, value, valueTypeName) {\n var valueJson = getValue(value)\n\n return 'Expected ' + tfJSON(type) + ', got' +\n (valueTypeName !== '' ? ' ' + valueTypeName : '') +\n (valueJson !== '' ? ' ' + valueJson : '')\n}\n\nfunction TfTypeError (type, value, valueTypeName) {\n valueTypeName = valueTypeName || getValueTypeName(value)\n this.message = tfErrorString(type, value, valueTypeName)\n\n captureStackTrace(this, TfTypeError)\n this.__type = type\n this.__value = value\n this.__valueTypeName = valueTypeName\n}\n\nTfTypeError.prototype = Object.create(Error.prototype)\nTfTypeError.prototype.constructor = TfTypeError\n\nfunction tfPropertyErrorString (type, label, name, value, valueTypeName) {\n var description = '\" of type '\n if (label === 'key') description = '\" with key type '\n\n return tfErrorString('property \"' + tfJSON(name) + description + tfJSON(type), value, valueTypeName)\n}\n\nfunction TfPropertyTypeError (type, property, label, value, valueTypeName) {\n if (type) {\n valueTypeName = valueTypeName || getValueTypeName(value)\n this.message = tfPropertyErrorString(type, label, property, value, valueTypeName)\n } else {\n this.message = 'Unexpected property \"' + property + '\"'\n }\n\n captureStackTrace(this, TfTypeError)\n this.__label = label\n this.__property = property\n this.__type = type\n this.__value = value\n this.__valueTypeName = valueTypeName\n}\n\nTfPropertyTypeError.prototype = Object.create(Error.prototype)\nTfPropertyTypeError.prototype.constructor = TfTypeError\n\nfunction tfCustomError (expected, actual) {\n return new TfTypeError(expected, {}, actual)\n}\n\nfunction tfSubError (e, property, label) {\n // sub child?\n if (e instanceof TfPropertyTypeError) {\n property = property + '.' + e.__property\n\n e = new TfPropertyTypeError(\n e.__type, property, e.__label, e.__value, e.__valueTypeName\n )\n\n // child?\n } else if (e instanceof TfTypeError) {\n e = new TfPropertyTypeError(\n e.__type, property, label, e.__value, e.__valueTypeName\n )\n }\n\n captureStackTrace(e)\n return e\n}\n\nmodule.exports = {\n TfTypeError: TfTypeError,\n TfPropertyTypeError: TfPropertyTypeError,\n tfCustomError: tfCustomError,\n tfSubError: tfSubError,\n tfJSON: tfJSON,\n getValueTypeName: getValueTypeName\n}\n", "var NATIVE = require('./native')\nvar ERRORS = require('./errors')\n\nfunction _Buffer (value) {\n return Buffer.isBuffer(value)\n}\n\nfunction Hex (value) {\n return typeof value === 'string' && /^([0-9a-f]{2})+$/i.test(value)\n}\n\nfunction _LengthN (type, length) {\n var name = type.toJSON()\n\n function Length (value) {\n if (!type(value)) return false\n if (value.length === length) return true\n\n throw ERRORS.tfCustomError(name + '(Length: ' + length + ')', name + '(Length: ' + value.length + ')')\n }\n Length.toJSON = function () { return name }\n\n return Length\n}\n\nvar _ArrayN = _LengthN.bind(null, NATIVE.Array)\nvar _BufferN = _LengthN.bind(null, _Buffer)\nvar _HexN = _LengthN.bind(null, Hex)\nvar _StringN = _LengthN.bind(null, NATIVE.String)\n\nfunction Range (a, b, f) {\n f = f || NATIVE.Number\n function _range (value, strict) {\n return f(value, strict) && (value > a) && (value < b)\n }\n _range.toJSON = function () {\n return `${f.toJSON()} between [${a}, ${b}]`\n }\n return _range\n}\n\nvar INT53_MAX = Math.pow(2, 53) - 1\n\nfunction Finite (value) {\n return typeof value === 'number' && isFinite(value)\n}\nfunction Int8 (value) { return ((value << 24) >> 24) === value }\nfunction Int16 (value) { return ((value << 16) >> 16) === value }\nfunction Int32 (value) { return (value | 0) === value }\nfunction Int53 (value) {\n return typeof value === 'number' &&\n value >= -INT53_MAX &&\n value <= INT53_MAX &&\n Math.floor(value) === value\n}\nfunction UInt8 (value) { return (value & 0xff) === value }\nfunction UInt16 (value) { return (value & 0xffff) === value }\nfunction UInt32 (value) { return (value >>> 0) === value }\nfunction UInt53 (value) {\n return typeof value === 'number' &&\n value >= 0 &&\n value <= INT53_MAX &&\n Math.floor(value) === value\n}\n\nvar types = {\n ArrayN: _ArrayN,\n Buffer: _Buffer,\n BufferN: _BufferN,\n Finite: Finite,\n Hex: Hex,\n HexN: _HexN,\n Int8: Int8,\n Int16: Int16,\n Int32: Int32,\n Int53: Int53,\n Range: Range,\n StringN: _StringN,\n UInt8: UInt8,\n UInt16: UInt16,\n UInt32: UInt32,\n UInt53: UInt53\n}\n\nfor (var typeName in types) {\n types[typeName].toJSON = function (t) {\n return t\n }.bind(null, typeName)\n}\n\nmodule.exports = types\n", "var ERRORS = require('./errors')\nvar NATIVE = require('./native')\n\n// short-hand\nvar tfJSON = ERRORS.tfJSON\nvar TfTypeError = ERRORS.TfTypeError\nvar TfPropertyTypeError = ERRORS.TfPropertyTypeError\nvar tfSubError = ERRORS.tfSubError\nvar getValueTypeName = ERRORS.getValueTypeName\n\nvar TYPES = {\n arrayOf: function arrayOf (type, options) {\n type = compile(type)\n options = options || {}\n\n function _arrayOf (array, strict) {\n if (!NATIVE.Array(array)) return false\n if (NATIVE.Nil(array)) return false\n if (options.minLength !== undefined && array.length < options.minLength) return false\n if (options.maxLength !== undefined && array.length > options.maxLength) return false\n if (options.length !== undefined && array.length !== options.length) return false\n\n return array.every(function (value, i) {\n try {\n return typeforce(type, value, strict)\n } catch (e) {\n throw tfSubError(e, i)\n }\n })\n }\n _arrayOf.toJSON = function () {\n var str = '[' + tfJSON(type) + ']'\n if (options.length !== undefined) {\n str += '{' + options.length + '}'\n } else if (options.minLength !== undefined || options.maxLength !== undefined) {\n str += '{' +\n (options.minLength === undefined ? 0 : options.minLength) + ',' +\n (options.maxLength === undefined ? Infinity : options.maxLength) + '}'\n }\n return str\n }\n\n return _arrayOf\n },\n\n maybe: function maybe (type) {\n type = compile(type)\n\n function _maybe (value, strict) {\n return NATIVE.Nil(value) || type(value, strict, maybe)\n }\n _maybe.toJSON = function () { return '?' + tfJSON(type) }\n\n return _maybe\n },\n\n map: function map (propertyType, propertyKeyType) {\n propertyType = compile(propertyType)\n if (propertyKeyType) propertyKeyType = compile(propertyKeyType)\n\n function _map (value, strict) {\n if (!NATIVE.Object(value)) return false\n if (NATIVE.Nil(value)) return false\n\n for (var propertyName in value) {\n try {\n if (propertyKeyType) {\n typeforce(propertyKeyType, propertyName, strict)\n }\n } catch (e) {\n throw tfSubError(e, propertyName, 'key')\n }\n\n try {\n var propertyValue = value[propertyName]\n typeforce(propertyType, propertyValue, strict)\n } catch (e) {\n throw tfSubError(e, propertyName)\n }\n }\n\n return true\n }\n\n if (propertyKeyType) {\n _map.toJSON = function () {\n return '{' + tfJSON(propertyKeyType) + ': ' + tfJSON(propertyType) + '}'\n }\n } else {\n _map.toJSON = function () { return '{' + tfJSON(propertyType) + '}' }\n }\n\n return _map\n },\n\n object: function object (uncompiled) {\n var type = {}\n\n for (var typePropertyName in uncompiled) {\n type[typePropertyName] = compile(uncompiled[typePropertyName])\n }\n\n function _object (value, strict) {\n if (!NATIVE.Object(value)) return false\n if (NATIVE.Nil(value)) return false\n\n var propertyName\n\n try {\n for (propertyName in type) {\n var propertyType = type[propertyName]\n var propertyValue = value[propertyName]\n\n typeforce(propertyType, propertyValue, strict)\n }\n } catch (e) {\n throw tfSubError(e, propertyName)\n }\n\n if (strict) {\n for (propertyName in value) {\n if (type[propertyName]) continue\n\n throw new TfPropertyTypeError(undefined, propertyName)\n }\n }\n\n return true\n }\n _object.toJSON = function () { return tfJSON(type) }\n\n return _object\n },\n\n anyOf: function anyOf () {\n var types = [].slice.call(arguments).map(compile)\n\n function _anyOf (value, strict) {\n return types.some(function (type) {\n try {\n return typeforce(type, value, strict)\n } catch (e) {\n return false\n }\n })\n }\n _anyOf.toJSON = function () { return types.map(tfJSON).join('|') }\n\n return _anyOf\n },\n\n allOf: function allOf () {\n var types = [].slice.call(arguments).map(compile)\n\n function _allOf (value, strict) {\n return types.every(function (type) {\n try {\n return typeforce(type, value, strict)\n } catch (e) {\n return false\n }\n })\n }\n _allOf.toJSON = function () { return types.map(tfJSON).join(' & ') }\n\n return _allOf\n },\n\n quacksLike: function quacksLike (type) {\n function _quacksLike (value) {\n return type === getValueTypeName(value)\n }\n _quacksLike.toJSON = function () { return type }\n\n return _quacksLike\n },\n\n tuple: function tuple () {\n var types = [].slice.call(arguments).map(compile)\n\n function _tuple (values, strict) {\n if (NATIVE.Nil(values)) return false\n if (NATIVE.Nil(values.length)) return false\n if (strict && (values.length !== types.length)) return false\n\n return types.every(function (type, i) {\n try {\n return typeforce(type, values[i], strict)\n } catch (e) {\n throw tfSubError(e, i)\n }\n })\n }\n _tuple.toJSON = function () { return '(' + types.map(tfJSON).join(', ') + ')' }\n\n return _tuple\n },\n\n value: function value (expected) {\n function _value (actual) {\n return actual === expected\n }\n _value.toJSON = function () { return expected }\n\n return _value\n }\n}\n\n// TODO: deprecate\nTYPES.oneOf = TYPES.anyOf\n\nfunction compile (type) {\n if (NATIVE.String(type)) {\n if (type[0] === '?') return TYPES.maybe(type.slice(1))\n\n return NATIVE[type] || TYPES.quacksLike(type)\n } else if (type && NATIVE.Object(type)) {\n if (NATIVE.Array(type)) {\n if (type.length !== 1) throw new TypeError('Expected compile() parameter of type Array of length 1')\n return TYPES.arrayOf(type[0])\n }\n\n return TYPES.object(type)\n } else if (NATIVE.Function(type)) {\n return type\n }\n\n return TYPES.value(type)\n}\n\nfunction typeforce (type, value, strict, surrogate) {\n if (NATIVE.Function(type)) {\n if (type(value, strict)) return true\n\n throw new TfTypeError(surrogate || type, value)\n }\n\n // JIT\n return typeforce(compile(type), value, strict)\n}\n\n// assign types to typeforce function\nfor (var typeName in NATIVE) {\n typeforce[typeName] = NATIVE[typeName]\n}\n\nfor (typeName in TYPES) {\n typeforce[typeName] = TYPES[typeName]\n}\n\nvar EXTRA = require('./extra')\nfor (typeName in EXTRA) {\n typeforce[typeName] = EXTRA[typeName]\n}\n\ntypeforce.compile = compile\ntypeforce.TfTypeError = TfTypeError\ntypeforce.TfPropertyTypeError = TfPropertyTypeError\n\nmodule.exports = typeforce\n", "var bs58check = require('bs58check')\n\nfunction decodeRaw (buffer, version) {\n // check version only if defined\n if (version !== undefined && buffer[0] !== version) throw new Error('Invalid network version')\n\n // uncompressed\n if (buffer.length === 33) {\n return {\n version: buffer[0],\n privateKey: buffer.slice(1, 33),\n compressed: false\n }\n }\n\n // invalid length\n if (buffer.length !== 34) throw new Error('Invalid WIF length')\n\n // invalid compression flag\n if (buffer[33] !== 0x01) throw new Error('Invalid compression flag')\n\n return {\n version: buffer[0],\n privateKey: buffer.slice(1, 33),\n compressed: true\n }\n}\n\nfunction encodeRaw (version, privateKey, compressed) {\n var result = new Buffer(compressed ? 34 : 33)\n\n result.writeUInt8(version, 0)\n privateKey.copy(result, 1)\n\n if (compressed) {\n result[33] = 0x01\n }\n\n return result\n}\n\nfunction decode (string, version) {\n return decodeRaw(bs58check.decode(string), version)\n}\n\nfunction encode (version, privateKey, compressed) {\n if (typeof version === 'number') return bs58check.encode(encodeRaw(version, privateKey, compressed))\n\n return bs58check.encode(\n encodeRaw(\n version.version,\n version.privateKey,\n version.compressed\n )\n )\n}\n\nmodule.exports = {\n decode: decode,\n decodeRaw: decodeRaw,\n encode: encode,\n encodeRaw: encodeRaw\n}\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst crypto = require(\"./crypto\");\nconst bs58check = require('bs58check');\nconst ecc = require('tiny-secp256k1');\nconst typeforce = require('typeforce');\nconst wif = require('wif');\nconst UINT256_TYPE = typeforce.BufferN(32);\nconst NETWORK_TYPE = typeforce.compile({\n wif: typeforce.UInt8,\n bip32: {\n public: typeforce.UInt32,\n private: typeforce.UInt32,\n },\n});\nconst BITCOIN = {\n messagePrefix: '\\x18Bitcoin Signed Message:\\n',\n bech32: 'bc',\n bip32: {\n public: 0x0488b21e,\n private: 0x0488ade4,\n },\n pubKeyHash: 0x00,\n scriptHash: 0x05,\n wif: 0x80,\n};\nconst HIGHEST_BIT = 0x80000000;\nconst UINT31_MAX = Math.pow(2, 31) - 1;\nfunction BIP32Path(value) {\n return (typeforce.String(value) && value.match(/^(m\\/)?(\\d+'?\\/)*\\d+'?$/) !== null);\n}\nfunction UInt31(value) {\n return typeforce.UInt32(value) && value <= UINT31_MAX;\n}\nclass BIP32 {\n constructor(__D, __Q, chainCode, network, __DEPTH = 0, __INDEX = 0, __PARENT_FINGERPRINT = 0x00000000) {\n this.__D = __D;\n this.__Q = __Q;\n this.chainCode = chainCode;\n this.network = network;\n this.__DEPTH = __DEPTH;\n this.__INDEX = __INDEX;\n this.__PARENT_FINGERPRINT = __PARENT_FINGERPRINT;\n typeforce(NETWORK_TYPE, network);\n this.lowR = false;\n }\n get depth() {\n return this.__DEPTH;\n }\n get index() {\n return this.__INDEX;\n }\n get parentFingerprint() {\n return this.__PARENT_FINGERPRINT;\n }\n get publicKey() {\n if (this.__Q === undefined)\n this.__Q = ecc.pointFromScalar(this.__D, true);\n return this.__Q;\n }\n get privateKey() {\n return this.__D;\n }\n get identifier() {\n return crypto.hash160(this.publicKey);\n }\n get fingerprint() {\n return this.identifier.slice(0, 4);\n }\n get compressed() {\n return true;\n }\n // Private === not neutered\n // Public === neutered\n isNeutered() {\n return this.__D === undefined;\n }\n neutered() {\n return fromPublicKeyLocal(this.publicKey, this.chainCode, this.network, this.depth, this.index, this.parentFingerprint);\n }\n toBase58() {\n const network = this.network;\n const version = !this.isNeutered()\n ? network.bip32.private\n : network.bip32.public;\n const buffer = Buffer.allocUnsafe(78);\n // 4 bytes: version bytes\n buffer.writeUInt32BE(version, 0);\n // 1 byte: depth: 0x00 for master nodes, 0x01 for level-1 descendants, ....\n buffer.writeUInt8(this.depth, 4);\n // 4 bytes: the fingerprint of the parent's key (0x00000000 if master key)\n buffer.writeUInt32BE(this.parentFingerprint, 5);\n // 4 bytes: child number. This is the number i in xi = xpar/i, with xi the key being serialized.\n // This is encoded in big endian. (0x00000000 if master key)\n buffer.writeUInt32BE(this.index, 9);\n // 32 bytes: the chain code\n this.chainCode.copy(buffer, 13);\n // 33 bytes: the public key or private key data\n if (!this.isNeutered()) {\n // 0x00 + k for private keys\n buffer.writeUInt8(0, 45);\n this.privateKey.copy(buffer, 46);\n // 33 bytes: the public key\n }\n else {\n // X9.62 encoding for public keys\n this.publicKey.copy(buffer, 45);\n }\n return bs58check.encode(buffer);\n }\n toWIF() {\n if (!this.privateKey)\n throw new TypeError('Missing private key');\n return wif.encode(this.network.wif, this.privateKey, true);\n }\n // https://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki#child-key-derivation-ckd-functions\n derive(index) {\n typeforce(typeforce.UInt32, index);\n const isHardened = index >= HIGHEST_BIT;\n const data = Buffer.allocUnsafe(37);\n // Hardened child\n if (isHardened) {\n if (this.isNeutered())\n throw new TypeError('Missing private key for hardened child key');\n // data = 0x00 || ser256(kpar) || ser32(index)\n data[0] = 0x00;\n this.privateKey.copy(data, 1);\n data.writeUInt32BE(index, 33);\n // Normal child\n }\n else {\n // data = serP(point(kpar)) || ser32(index)\n // = serP(Kpar) || ser32(index)\n this.publicKey.copy(data, 0);\n data.writeUInt32BE(index, 33);\n }\n const I = crypto.hmacSHA512(this.chainCode, data);\n const IL = I.slice(0, 32);\n const IR = I.slice(32);\n // if parse256(IL) >= n, proceed with the next value for i\n if (!ecc.isPrivate(IL))\n return this.derive(index + 1);\n // Private parent key -> private child key\n let hd;\n if (!this.isNeutered()) {\n // ki = parse256(IL) + kpar (mod n)\n const ki = ecc.privateAdd(this.privateKey, IL);\n // In case ki == 0, proceed with the next value for i\n if (ki == null)\n return this.derive(index + 1);\n hd = fromPrivateKeyLocal(ki, IR, this.network, this.depth + 1, index, this.fingerprint.readUInt32BE(0));\n // Public parent key -> public child key\n }\n else {\n // Ki = point(parse256(IL)) + Kpar\n // = G*IL + Kpar\n const Ki = ecc.pointAddScalar(this.publicKey, IL, true);\n // In case Ki is the point at infinity, proceed with the next value for i\n if (Ki === null)\n return this.derive(index + 1);\n hd = fromPublicKeyLocal(Ki, IR, this.network, this.depth + 1, index, this.fingerprint.readUInt32BE(0));\n }\n return hd;\n }\n deriveHardened(index) {\n typeforce(UInt31, index);\n // Only derives hardened private keys by default\n return this.derive(index + HIGHEST_BIT);\n }\n derivePath(path) {\n typeforce(BIP32Path, path);\n let splitPath = path.split('/');\n if (splitPath[0] === 'm') {\n if (this.parentFingerprint)\n throw new TypeError('Expected master, got child');\n splitPath = splitPath.slice(1);\n }\n return splitPath.reduce((prevHd, indexStr) => {\n let index;\n if (indexStr.slice(-1) === `'`) {\n index = parseInt(indexStr.slice(0, -1), 10);\n return prevHd.deriveHardened(index);\n }\n else {\n index = parseInt(indexStr, 10);\n return prevHd.derive(index);\n }\n }, this);\n }\n sign(hash, lowR) {\n if (!this.privateKey)\n throw new Error('Missing private key');\n if (lowR === undefined)\n lowR = this.lowR;\n if (lowR === false) {\n return ecc.sign(hash, this.privateKey);\n }\n else {\n let sig = ecc.sign(hash, this.privateKey);\n const extraData = Buffer.alloc(32, 0);\n let counter = 0;\n // if first try is lowR, skip the loop\n // for second try and on, add extra entropy counting up\n while (sig[0] > 0x7f) {\n counter++;\n extraData.writeUIntLE(counter, 0, 6);\n sig = ecc.signWithEntropy(hash, this.privateKey, extraData);\n }\n return sig;\n }\n }\n verify(hash, signature) {\n return ecc.verify(hash, this.publicKey, signature);\n }\n}\nfunction fromBase58(inString, network) {\n const buffer = bs58check.decode(inString);\n if (buffer.length !== 78)\n throw new TypeError('Invalid buffer length');\n network = network || BITCOIN;\n // 4 bytes: version bytes\n const version = buffer.readUInt32BE(0);\n if (version !== network.bip32.private && version !== network.bip32.public)\n throw new TypeError('Invalid network version');\n // 1 byte: depth: 0x00 for master nodes, 0x01 for level-1 descendants, ...\n const depth = buffer[4];\n // 4 bytes: the fingerprint of the parent's key (0x00000000 if master key)\n const parentFingerprint = buffer.readUInt32BE(5);\n if (depth === 0) {\n if (parentFingerprint !== 0x00000000)\n throw new TypeError('Invalid parent fingerprint');\n }\n // 4 bytes: child number. This is the number i in xi = xpar/i, with xi the key being serialized.\n // This is encoded in MSB order. (0x00000000 if master key)\n const index = buffer.readUInt32BE(9);\n if (depth === 0 && index !== 0)\n throw new TypeError('Invalid index');\n // 32 bytes: the chain code\n const chainCode = buffer.slice(13, 45);\n let hd;\n // 33 bytes: private key data (0x00 + k)\n if (version === network.bip32.private) {\n if (buffer.readUInt8(45) !== 0x00)\n throw new TypeError('Invalid private key');\n const k = buffer.slice(46, 78);\n hd = fromPrivateKeyLocal(k, chainCode, network, depth, index, parentFingerprint);\n // 33 bytes: public key data (0x02 + X or 0x03 + X)\n }\n else {\n const X = buffer.slice(45, 78);\n hd = fromPublicKeyLocal(X, chainCode, network, depth, index, parentFingerprint);\n }\n return hd;\n}\nexports.fromBase58 = fromBase58;\nfunction fromPrivateKey(privateKey, chainCode, network) {\n return fromPrivateKeyLocal(privateKey, chainCode, network);\n}\nexports.fromPrivateKey = fromPrivateKey;\nfunction fromPrivateKeyLocal(privateKey, chainCode, network, depth, index, parentFingerprint) {\n typeforce({\n privateKey: UINT256_TYPE,\n chainCode: UINT256_TYPE,\n }, { privateKey, chainCode });\n network = network || BITCOIN;\n if (!ecc.isPrivate(privateKey))\n throw new TypeError('Private key not in range [1, n)');\n return new BIP32(privateKey, undefined, chainCode, network, depth, index, parentFingerprint);\n}\nfunction fromPublicKey(publicKey, chainCode, network) {\n return fromPublicKeyLocal(publicKey, chainCode, network);\n}\nexports.fromPublicKey = fromPublicKey;\nfunction fromPublicKeyLocal(publicKey, chainCode, network, depth, index, parentFingerprint) {\n typeforce({\n publicKey: typeforce.BufferN(33),\n chainCode: UINT256_TYPE,\n }, { publicKey, chainCode });\n network = network || BITCOIN;\n // verify the X coordinate is a point on the curve\n if (!ecc.isPoint(publicKey))\n throw new TypeError('Point is not on the curve');\n return new BIP32(undefined, publicKey, chainCode, network, depth, index, parentFingerprint);\n}\nfunction fromSeed(seed, network) {\n typeforce(typeforce.Buffer, seed);\n if (seed.length < 16)\n throw new TypeError('Seed should be at least 128 bits');\n if (seed.length > 64)\n throw new TypeError('Seed should be at most 512 bits');\n network = network || BITCOIN;\n const I = crypto.hmacSHA512(Buffer.from('Bitcoin seed', 'utf8'), seed);\n const IL = I.slice(0, 32);\n const IR = I.slice(32);\n return fromPrivateKey(IL, IR, network);\n}\nexports.fromSeed = fromSeed;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar bip32_1 = require(\"./bip32\");\nexports.fromSeed = bip32_1.fromSeed;\nexports.fromBase58 = bip32_1.fromBase58;\nexports.fromPublicKey = bip32_1.fromPublicKey;\nexports.fromPrivateKey = bip32_1.fromPrivateKey;\n", "'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nexports.bitcoin = {\n messagePrefix: '\\x18Bitcoin Signed Message:\\n',\n bech32: 'bc',\n bip32: {\n public: 0x0488b21e,\n private: 0x0488ade4,\n },\n pubKeyHash: 0x00,\n scriptHash: 0x05,\n wif: 0x80,\n};\nexports.regtest = {\n messagePrefix: '\\x18Bitcoin Signed Message:\\n',\n bech32: 'bcrt',\n bip32: {\n public: 0x043587cf,\n private: 0x04358394,\n },\n pubKeyHash: 0x6f,\n scriptHash: 0xc4,\n wif: 0xef,\n};\nexports.testnet = {\n messagePrefix: '\\x18Bitcoin Signed Message:\\n',\n bech32: 'tb',\n bip32: {\n public: 0x043587cf,\n private: 0x04358394,\n },\n pubKeyHash: 0x6f,\n scriptHash: 0xc4,\n wif: 0xef,\n};\n", "'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nfunction decode(buffer, maxLength, minimal) {\n maxLength = maxLength || 4;\n minimal = minimal === undefined ? true : minimal;\n const length = buffer.length;\n if (length === 0) return 0;\n if (length > maxLength) throw new TypeError('Script number overflow');\n if (minimal) {\n if ((buffer[length - 1] & 0x7f) === 0) {\n if (length <= 1 || (buffer[length - 2] & 0x80) === 0)\n throw new Error('Non-minimally encoded script number');\n }\n }\n // 40-bit\n if (length === 5) {\n const a = buffer.readUInt32LE(0);\n const b = buffer.readUInt8(4);\n if (b & 0x80) return -((b & ~0x80) * 0x100000000 + a);\n return b * 0x100000000 + a;\n }\n // 32-bit / 24-bit / 16-bit / 8-bit\n let result = 0;\n for (let i = 0; i < length; ++i) {\n result |= buffer[i] << (8 * i);\n }\n if (buffer[length - 1] & 0x80)\n return -(result & ~(0x80 << (8 * (length - 1))));\n return result;\n}\nexports.decode = decode;\nfunction scriptNumSize(i) {\n return i > 0x7fffffff\n ? 5\n : i > 0x7fffff\n ? 4\n : i > 0x7fff\n ? 3\n : i > 0x7f\n ? 2\n : i > 0x00\n ? 1\n : 0;\n}\nfunction encode(_number) {\n let value = Math.abs(_number);\n const size = scriptNumSize(value);\n const buffer = Buffer.allocUnsafe(size);\n const negative = _number < 0;\n for (let i = 0; i < size; ++i) {\n buffer.writeUInt8(value & 0xff, i);\n value >>= 8;\n }\n if (buffer[size - 1] & 0x80) {\n buffer.writeUInt8(negative ? 0x80 : 0x00, size - 1);\n } else if (negative) {\n buffer[size - 1] |= 0x80;\n }\n return buffer;\n}\nexports.encode = encode;\n", "'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nconst typeforce = require('typeforce');\nconst UINT31_MAX = Math.pow(2, 31) - 1;\nfunction UInt31(value) {\n return typeforce.UInt32(value) && value <= UINT31_MAX;\n}\nexports.UInt31 = UInt31;\nfunction BIP32Path(value) {\n return typeforce.String(value) && !!value.match(/^(m\\/)?(\\d+'?\\/)*\\d+'?$/);\n}\nexports.BIP32Path = BIP32Path;\nBIP32Path.toJSON = () => {\n return 'BIP32 derivation path';\n};\nfunction Signer(obj) {\n return (\n (typeforce.Buffer(obj.publicKey) ||\n typeof obj.getPublicKey === 'function') &&\n typeof obj.sign === 'function'\n );\n}\nexports.Signer = Signer;\nconst SATOSHI_MAX = 21 * 1e14;\nfunction Satoshi(value) {\n return typeforce.UInt53(value) && value <= SATOSHI_MAX;\n}\nexports.Satoshi = Satoshi;\n// external dependent types\nexports.ECPoint = typeforce.quacksLike('Point');\n// exposed, external API\nexports.Network = typeforce.compile({\n messagePrefix: typeforce.oneOf(typeforce.Buffer, typeforce.String),\n bip32: {\n public: typeforce.UInt32,\n private: typeforce.UInt32,\n },\n pubKeyHash: typeforce.UInt8,\n scriptHash: typeforce.UInt8,\n wif: typeforce.UInt8,\n});\nexports.Buffer256bit = typeforce.BufferN(32);\nexports.Hash160bit = typeforce.BufferN(20);\nexports.Hash256bit = typeforce.BufferN(32);\nexports.Number = typeforce.Number; // tslint:disable-line variable-name\nexports.Array = typeforce.Array;\nexports.Boolean = typeforce.Boolean; // tslint:disable-line variable-name\nexports.String = typeforce.String; // tslint:disable-line variable-name\nexports.Buffer = typeforce.Buffer;\nexports.Hex = typeforce.Hex;\nexports.maybe = typeforce.maybe;\nexports.tuple = typeforce.tuple;\nexports.UInt8 = typeforce.UInt8;\nexports.UInt32 = typeforce.UInt32;\nexports.Function = typeforce.Function;\nexports.BufferN = typeforce.BufferN;\nexports.Null = typeforce.Null;\nexports.oneOf = typeforce.oneOf;\n", "// Reference https://github.com/bitcoin/bips/blob/master/bip-0066.mediawiki\n// Format: 0x30 [total-length] 0x02 [R-length] [R] 0x02 [S-length] [S]\n// NOTE: SIGHASH byte ignored AND restricted, truncate before use\n\nvar Buffer = require('safe-buffer').Buffer\n\nfunction check (buffer) {\n if (buffer.length < 8) return false\n if (buffer.length > 72) return false\n if (buffer[0] !== 0x30) return false\n if (buffer[1] !== buffer.length - 2) return false\n if (buffer[2] !== 0x02) return false\n\n var lenR = buffer[3]\n if (lenR === 0) return false\n if (5 + lenR >= buffer.length) return false\n if (buffer[4 + lenR] !== 0x02) return false\n\n var lenS = buffer[5 + lenR]\n if (lenS === 0) return false\n if ((6 + lenR + lenS) !== buffer.length) return false\n\n if (buffer[4] & 0x80) return false\n if (lenR > 1 && (buffer[4] === 0x00) && !(buffer[5] & 0x80)) return false\n\n if (buffer[lenR + 6] & 0x80) return false\n if (lenS > 1 && (buffer[lenR + 6] === 0x00) && !(buffer[lenR + 7] & 0x80)) return false\n return true\n}\n\nfunction decode (buffer) {\n if (buffer.length < 8) throw new Error('DER sequence length is too short')\n if (buffer.length > 72) throw new Error('DER sequence length is too long')\n if (buffer[0] !== 0x30) throw new Error('Expected DER sequence')\n if (buffer[1] !== buffer.length - 2) throw new Error('DER sequence length is invalid')\n if (buffer[2] !== 0x02) throw new Error('Expected DER integer')\n\n var lenR = buffer[3]\n if (lenR === 0) throw new Error('R length is zero')\n if (5 + lenR >= buffer.length) throw new Error('R length is too long')\n if (buffer[4 + lenR] !== 0x02) throw new Error('Expected DER integer (2)')\n\n var lenS = buffer[5 + lenR]\n if (lenS === 0) throw new Error('S length is zero')\n if ((6 + lenR + lenS) !== buffer.length) throw new Error('S length is invalid')\n\n if (buffer[4] & 0x80) throw new Error('R value is negative')\n if (lenR > 1 && (buffer[4] === 0x00) && !(buffer[5] & 0x80)) throw new Error('R value excessively padded')\n\n if (buffer[lenR + 6] & 0x80) throw new Error('S value is negative')\n if (lenS > 1 && (buffer[lenR + 6] === 0x00) && !(buffer[lenR + 7] & 0x80)) throw new Error('S value excessively padded')\n\n // non-BIP66 - extract R, S values\n return {\n r: buffer.slice(4, 4 + lenR),\n s: buffer.slice(6 + lenR)\n }\n}\n\n/*\n * Expects r and s to be positive DER integers.\n *\n * The DER format uses the most significant bit as a sign bit (& 0x80).\n * If the significant bit is set AND the integer is positive, a 0x00 is prepended.\n *\n * Examples:\n *\n * 0 => 0x00\n * 1 => 0x01\n * -1 => 0xff\n * 127 => 0x7f\n * -127 => 0x81\n * 128 => 0x0080\n * -128 => 0x80\n * 255 => 0x00ff\n * -255 => 0xff01\n * 16300 => 0x3fac\n * -16300 => 0xc054\n * 62300 => 0x00f35c\n * -62300 => 0xff0ca4\n*/\nfunction encode (r, s) {\n var lenR = r.length\n var lenS = s.length\n if (lenR === 0) throw new Error('R length is zero')\n if (lenS === 0) throw new Error('S length is zero')\n if (lenR > 33) throw new Error('R length is too long')\n if (lenS > 33) throw new Error('S length is too long')\n if (r[0] & 0x80) throw new Error('R value is negative')\n if (s[0] & 0x80) throw new Error('S value is negative')\n if (lenR > 1 && (r[0] === 0x00) && !(r[1] & 0x80)) throw new Error('R value excessively padded')\n if (lenS > 1 && (s[0] === 0x00) && !(s[1] & 0x80)) throw new Error('S value excessively padded')\n\n var signature = Buffer.allocUnsafe(6 + lenR + lenS)\n\n // 0x30 [total-length] 0x02 [R-length] [R] 0x02 [S-length] [S]\n signature[0] = 0x30\n signature[1] = signature.length - 2\n signature[2] = 0x02\n signature[3] = r.length\n r.copy(signature, 4)\n signature[4 + lenR] = 0x02\n signature[5 + lenR] = s.length\n s.copy(signature, 6 + lenR)\n\n return signature\n}\n\nmodule.exports = {\n check: check,\n decode: decode,\n encode: encode\n}\n", "'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nconst types = require('./types');\nconst bip66 = require('bip66');\nconst typeforce = require('typeforce');\nconst ZERO = Buffer.alloc(1, 0);\nfunction toDER(x) {\n let i = 0;\n while (x[i] === 0) ++i;\n if (i === x.length) return ZERO;\n x = x.slice(i);\n if (x[0] & 0x80) return Buffer.concat([ZERO, x], 1 + x.length);\n return x;\n}\nfunction fromDER(x) {\n if (x[0] === 0x00) x = x.slice(1);\n const buffer = Buffer.alloc(32, 0);\n const bstart = Math.max(0, 32 - x.length);\n x.copy(buffer, bstart);\n return buffer;\n}\n// BIP62: 1 byte hashType flag (only 0x01, 0x02, 0x03, 0x81, 0x82 and 0x83 are allowed)\nfunction decode(buffer) {\n const hashType = buffer.readUInt8(buffer.length - 1);\n const hashTypeMod = hashType & ~0x80;\n if (hashTypeMod <= 0 || hashTypeMod >= 4)\n throw new Error('Invalid hashType ' + hashType);\n const decoded = bip66.decode(buffer.slice(0, -1));\n const r = fromDER(decoded.r);\n const s = fromDER(decoded.s);\n const signature = Buffer.concat([r, s], 64);\n return { signature, hashType };\n}\nexports.decode = decode;\nfunction encode(signature, hashType) {\n typeforce(\n {\n signature: types.BufferN(64),\n hashType: types.UInt8,\n },\n { signature, hashType },\n );\n const hashTypeMod = hashType & ~0x80;\n if (hashTypeMod <= 0 || hashTypeMod >= 4)\n throw new Error('Invalid hashType ' + hashType);\n const hashTypeBuffer = Buffer.allocUnsafe(1);\n hashTypeBuffer.writeUInt8(hashType, 0);\n const r = toDER(signature.slice(0, 32));\n const s = toDER(signature.slice(32, 64));\n return Buffer.concat([bip66.encode(r, s), hashTypeBuffer]);\n}\nexports.encode = encode;\n", "var OPS = require('bitcoin-ops')\n\nfunction encodingLength (i) {\n return i < OPS.OP_PUSHDATA1 ? 1\n : i <= 0xff ? 2\n : i <= 0xffff ? 3\n : 5\n}\n\nfunction encode (buffer, number, offset) {\n var size = encodingLength(number)\n\n // ~6 bit\n if (size === 1) {\n buffer.writeUInt8(number, offset)\n\n // 8 bit\n } else if (size === 2) {\n buffer.writeUInt8(OPS.OP_PUSHDATA1, offset)\n buffer.writeUInt8(number, offset + 1)\n\n // 16 bit\n } else if (size === 3) {\n buffer.writeUInt8(OPS.OP_PUSHDATA2, offset)\n buffer.writeUInt16LE(number, offset + 1)\n\n // 32 bit\n } else {\n buffer.writeUInt8(OPS.OP_PUSHDATA4, offset)\n buffer.writeUInt32LE(number, offset + 1)\n }\n\n return size\n}\n\nfunction decode (buffer, offset) {\n var opcode = buffer.readUInt8(offset)\n var number, size\n\n // ~6 bit\n if (opcode < OPS.OP_PUSHDATA1) {\n number = opcode\n size = 1\n\n // 8 bit\n } else if (opcode === OPS.OP_PUSHDATA1) {\n if (offset + 2 > buffer.length) return null\n number = buffer.readUInt8(offset + 1)\n size = 2\n\n // 16 bit\n } else if (opcode === OPS.OP_PUSHDATA2) {\n if (offset + 3 > buffer.length) return null\n number = buffer.readUInt16LE(offset + 1)\n size = 3\n\n // 32 bit\n } else {\n if (offset + 5 > buffer.length) return null\n if (opcode !== OPS.OP_PUSHDATA4) throw new Error('Unexpected opcode')\n\n number = buffer.readUInt32LE(offset + 1)\n size = 5\n }\n\n return {\n opcode: opcode,\n number: number,\n size: size\n }\n}\n\nmodule.exports = {\n encodingLength: encodingLength,\n encode: encode,\n decode: decode\n}\n", "var OPS = require('./index.json')\n\nvar map = {}\nfor (var op in OPS) {\n var code = OPS[op]\n map[code] = op\n}\n\nmodule.exports = map\n", "'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nconst scriptNumber = require('./script_number');\nconst scriptSignature = require('./script_signature');\nconst types = require('./types');\nconst bip66 = require('bip66');\nconst ecc = require('tiny-secp256k1');\nconst pushdata = require('pushdata-bitcoin');\nconst typeforce = require('typeforce');\nexports.OPS = require('bitcoin-ops');\nconst REVERSE_OPS = require('bitcoin-ops/map');\nconst OP_INT_BASE = exports.OPS.OP_RESERVED; // OP_1 - 1\nfunction isOPInt(value) {\n return (\n types.Number(value) &&\n (value === exports.OPS.OP_0 ||\n (value >= exports.OPS.OP_1 && value <= exports.OPS.OP_16) ||\n value === exports.OPS.OP_1NEGATE)\n );\n}\nfunction isPushOnlyChunk(value) {\n return types.Buffer(value) || isOPInt(value);\n}\nfunction isPushOnly(value) {\n return types.Array(value) && value.every(isPushOnlyChunk);\n}\nexports.isPushOnly = isPushOnly;\nfunction asMinimalOP(buffer) {\n if (buffer.length === 0) return exports.OPS.OP_0;\n if (buffer.length !== 1) return;\n if (buffer[0] >= 1 && buffer[0] <= 16) return OP_INT_BASE + buffer[0];\n if (buffer[0] === 0x81) return exports.OPS.OP_1NEGATE;\n}\nfunction chunksIsBuffer(buf) {\n return Buffer.isBuffer(buf);\n}\nfunction chunksIsArray(buf) {\n return types.Array(buf);\n}\nfunction singleChunkIsBuffer(buf) {\n return Buffer.isBuffer(buf);\n}\nfunction compile(chunks) {\n // TODO: remove me\n if (chunksIsBuffer(chunks)) return chunks;\n typeforce(types.Array, chunks);\n const bufferSize = chunks.reduce((accum, chunk) => {\n // data chunk\n if (singleChunkIsBuffer(chunk)) {\n // adhere to BIP62.3, minimal push policy\n if (chunk.length === 1 && asMinimalOP(chunk) !== undefined) {\n return accum + 1;\n }\n return accum + pushdata.encodingLength(chunk.length) + chunk.length;\n }\n // opcode\n return accum + 1;\n }, 0.0);\n const buffer = Buffer.allocUnsafe(bufferSize);\n let offset = 0;\n chunks.forEach(chunk => {\n // data chunk\n if (singleChunkIsBuffer(chunk)) {\n // adhere to BIP62.3, minimal push policy\n const opcode = asMinimalOP(chunk);\n if (opcode !== undefined) {\n buffer.writeUInt8(opcode, offset);\n offset += 1;\n return;\n }\n offset += pushdata.encode(buffer, chunk.length, offset);\n chunk.copy(buffer, offset);\n offset += chunk.length;\n // opcode\n } else {\n buffer.writeUInt8(chunk, offset);\n offset += 1;\n }\n });\n if (offset !== buffer.length) throw new Error('Could not decode chunks');\n return buffer;\n}\nexports.compile = compile;\nfunction decompile(buffer) {\n // TODO: remove me\n if (chunksIsArray(buffer)) return buffer;\n typeforce(types.Buffer, buffer);\n const chunks = [];\n let i = 0;\n while (i < buffer.length) {\n const opcode = buffer[i];\n // data chunk\n if (opcode > exports.OPS.OP_0 && opcode <= exports.OPS.OP_PUSHDATA4) {\n const d = pushdata.decode(buffer, i);\n // did reading a pushDataInt fail?\n if (d === null) return null;\n i += d.size;\n // attempt to read too much data?\n if (i + d.number > buffer.length) return null;\n const data = buffer.slice(i, i + d.number);\n i += d.number;\n // decompile minimally\n const op = asMinimalOP(data);\n if (op !== undefined) {\n chunks.push(op);\n } else {\n chunks.push(data);\n }\n // opcode\n } else {\n chunks.push(opcode);\n i += 1;\n }\n }\n return chunks;\n}\nexports.decompile = decompile;\nfunction toASM(chunks) {\n if (chunksIsBuffer(chunks)) {\n chunks = decompile(chunks);\n }\n return chunks\n .map(chunk => {\n // data?\n if (singleChunkIsBuffer(chunk)) {\n const op = asMinimalOP(chunk);\n if (op === undefined) return chunk.toString('hex');\n chunk = op;\n }\n // opcode!\n return REVERSE_OPS[chunk];\n })\n .join(' ');\n}\nexports.toASM = toASM;\nfunction fromASM(asm) {\n typeforce(types.String, asm);\n return compile(\n asm.split(' ').map(chunkStr => {\n // opcode?\n if (exports.OPS[chunkStr] !== undefined) return exports.OPS[chunkStr];\n typeforce(types.Hex, chunkStr);\n // data!\n return Buffer.from(chunkStr, 'hex');\n }),\n );\n}\nexports.fromASM = fromASM;\nfunction toStack(chunks) {\n chunks = decompile(chunks);\n typeforce(isPushOnly, chunks);\n return chunks.map(op => {\n if (singleChunkIsBuffer(op)) return op;\n if (op === exports.OPS.OP_0) return Buffer.allocUnsafe(0);\n return scriptNumber.encode(op - OP_INT_BASE);\n });\n}\nexports.toStack = toStack;\nfunction isCanonicalPubKey(buffer) {\n return ecc.isPoint(buffer);\n}\nexports.isCanonicalPubKey = isCanonicalPubKey;\nfunction isDefinedHashType(hashType) {\n const hashTypeMod = hashType & ~0x80;\n // return hashTypeMod > SIGHASH_ALL && hashTypeMod < SIGHASH_SINGLE\n return hashTypeMod > 0x00 && hashTypeMod < 0x04;\n}\nexports.isDefinedHashType = isDefinedHashType;\nfunction isCanonicalScriptSignature(buffer) {\n if (!Buffer.isBuffer(buffer)) return false;\n if (!isDefinedHashType(buffer[buffer.length - 1])) return false;\n return bip66.check(buffer.slice(0, -1));\n}\nexports.isCanonicalScriptSignature = isCanonicalScriptSignature;\n// tslint:disable-next-line variable-name\nexports.number = scriptNumber;\nexports.signature = scriptSignature;\n", "'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nfunction prop(object, name, f) {\n Object.defineProperty(object, name, {\n configurable: true,\n enumerable: true,\n get() {\n const _value = f.call(this);\n this[name] = _value;\n return _value;\n },\n set(_value) {\n Object.defineProperty(this, name, {\n configurable: true,\n enumerable: true,\n value: _value,\n writable: true,\n });\n },\n });\n}\nexports.prop = prop;\nfunction value(f) {\n let _value;\n return () => {\n if (_value !== undefined) return _value;\n _value = f();\n return _value;\n };\n}\nexports.value = value;\n", "'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nconst networks_1 = require('../networks');\nconst bscript = require('../script');\nconst lazy = require('./lazy');\nconst typef = require('typeforce');\nconst OPS = bscript.OPS;\nfunction stacksEqual(a, b) {\n if (a.length !== b.length) return false;\n return a.every((x, i) => {\n return x.equals(b[i]);\n });\n}\n// output: OP_RETURN ...\nfunction p2data(a, opts) {\n if (!a.data && !a.output) throw new TypeError('Not enough data');\n opts = Object.assign({ validate: true }, opts || {});\n typef(\n {\n network: typef.maybe(typef.Object),\n output: typef.maybe(typef.Buffer),\n data: typef.maybe(typef.arrayOf(typef.Buffer)),\n },\n a,\n );\n const network = a.network || networks_1.bitcoin;\n const o = { name: 'embed', network };\n lazy.prop(o, 'output', () => {\n if (!a.data) return;\n return bscript.compile([OPS.OP_RETURN].concat(a.data));\n });\n lazy.prop(o, 'data', () => {\n if (!a.output) return;\n return bscript.decompile(a.output).slice(1);\n });\n // extended validation\n if (opts.validate) {\n if (a.output) {\n const chunks = bscript.decompile(a.output);\n if (chunks[0] !== OPS.OP_RETURN) throw new TypeError('Output is invalid');\n if (!chunks.slice(1).every(typef.Buffer))\n throw new TypeError('Output is invalid');\n if (a.data && !stacksEqual(a.data, o.data))\n throw new TypeError('Data mismatch');\n }\n }\n return Object.assign(o, a);\n}\nexports.p2data = p2data;\n", "'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nconst networks_1 = require('../networks');\nconst bscript = require('../script');\nconst lazy = require('./lazy');\nconst OPS = bscript.OPS;\nconst typef = require('typeforce');\nconst ecc = require('tiny-secp256k1');\nconst OP_INT_BASE = OPS.OP_RESERVED; // OP_1 - 1\nfunction stacksEqual(a, b) {\n if (a.length !== b.length) return false;\n return a.every((x, i) => {\n return x.equals(b[i]);\n });\n}\n// input: OP_0 [signatures ...]\n// output: m [pubKeys ...] n OP_CHECKMULTISIG\nfunction p2ms(a, opts) {\n if (\n !a.input &&\n !a.output &&\n !(a.pubkeys && a.m !== undefined) &&\n !a.signatures\n )\n throw new TypeError('Not enough data');\n opts = Object.assign({ validate: true }, opts || {});\n function isAcceptableSignature(x) {\n return (\n bscript.isCanonicalScriptSignature(x) ||\n (opts.allowIncomplete && x === OPS.OP_0) !== undefined\n );\n }\n typef(\n {\n network: typef.maybe(typef.Object),\n m: typef.maybe(typef.Number),\n n: typef.maybe(typef.Number),\n output: typef.maybe(typef.Buffer),\n pubkeys: typef.maybe(typef.arrayOf(ecc.isPoint)),\n signatures: typef.maybe(typef.arrayOf(isAcceptableSignature)),\n input: typef.maybe(typef.Buffer),\n },\n a,\n );\n const network = a.network || networks_1.bitcoin;\n const o = { network };\n let chunks = [];\n let decoded = false;\n function decode(output) {\n if (decoded) return;\n decoded = true;\n chunks = bscript.decompile(output);\n o.m = chunks[0] - OP_INT_BASE;\n o.n = chunks[chunks.length - 2] - OP_INT_BASE;\n o.pubkeys = chunks.slice(1, -2);\n }\n lazy.prop(o, 'output', () => {\n if (!a.m) return;\n if (!o.n) return;\n if (!a.pubkeys) return;\n return bscript.compile(\n [].concat(\n OP_INT_BASE + a.m,\n a.pubkeys,\n OP_INT_BASE + o.n,\n OPS.OP_CHECKMULTISIG,\n ),\n );\n });\n lazy.prop(o, 'm', () => {\n if (!o.output) return;\n decode(o.output);\n return o.m;\n });\n lazy.prop(o, 'n', () => {\n if (!o.pubkeys) return;\n return o.pubkeys.length;\n });\n lazy.prop(o, 'pubkeys', () => {\n if (!a.output) return;\n decode(a.output);\n return o.pubkeys;\n });\n lazy.prop(o, 'signatures', () => {\n if (!a.input) return;\n return bscript.decompile(a.input).slice(1);\n });\n lazy.prop(o, 'input', () => {\n if (!a.signatures) return;\n return bscript.compile([OPS.OP_0].concat(a.signatures));\n });\n lazy.prop(o, 'witness', () => {\n if (!o.input) return;\n return [];\n });\n lazy.prop(o, 'name', () => {\n if (!o.m || !o.n) return;\n return `p2ms(${o.m} of ${o.n})`;\n });\n // extended validation\n if (opts.validate) {\n if (a.output) {\n decode(a.output);\n if (!typef.Number(chunks[0])) throw new TypeError('Output is invalid');\n if (!typef.Number(chunks[chunks.length - 2]))\n throw new TypeError('Output is invalid');\n if (chunks[chunks.length - 1] !== OPS.OP_CHECKMULTISIG)\n throw new TypeError('Output is invalid');\n if (o.m <= 0 || o.n > 16 || o.m > o.n || o.n !== chunks.length - 3)\n throw new TypeError('Output is invalid');\n if (!o.pubkeys.every(x => ecc.isPoint(x)))\n throw new TypeError('Output is invalid');\n if (a.m !== undefined && a.m !== o.m) throw new TypeError('m mismatch');\n if (a.n !== undefined && a.n !== o.n) throw new TypeError('n mismatch');\n if (a.pubkeys && !stacksEqual(a.pubkeys, o.pubkeys))\n throw new TypeError('Pubkeys mismatch');\n }\n if (a.pubkeys) {\n if (a.n !== undefined && a.n !== a.pubkeys.length)\n throw new TypeError('Pubkey count mismatch');\n o.n = a.pubkeys.length;\n if (o.n < o.m) throw new TypeError('Pubkey count cannot be less than m');\n }\n if (a.signatures) {\n if (a.signatures.length < o.m)\n throw new TypeError('Not enough signatures provided');\n if (a.signatures.length > o.m)\n throw new TypeError('Too many signatures provided');\n }\n if (a.input) {\n if (a.input[0] !== OPS.OP_0) throw new TypeError('Input is invalid');\n if (\n o.signatures.length === 0 ||\n !o.signatures.every(isAcceptableSignature)\n )\n throw new TypeError('Input has invalid signature(s)');\n if (a.signatures && !stacksEqual(a.signatures, o.signatures))\n throw new TypeError('Signature mismatch');\n if (a.m !== undefined && a.m !== a.signatures.length)\n throw new TypeError('Signature count mismatch');\n }\n }\n return Object.assign(o, a);\n}\nexports.p2ms = p2ms;\n", "'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nconst networks_1 = require('../networks');\nconst bscript = require('../script');\nconst lazy = require('./lazy');\nconst typef = require('typeforce');\nconst OPS = bscript.OPS;\nconst ecc = require('tiny-secp256k1');\n// input: {signature}\n// output: {pubKey} OP_CHECKSIG\nfunction p2pk(a, opts) {\n if (!a.input && !a.output && !a.pubkey && !a.input && !a.signature)\n throw new TypeError('Not enough data');\n opts = Object.assign({ validate: true }, opts || {});\n typef(\n {\n network: typef.maybe(typef.Object),\n output: typef.maybe(typef.Buffer),\n pubkey: typef.maybe(ecc.isPoint),\n signature: typef.maybe(bscript.isCanonicalScriptSignature),\n input: typef.maybe(typef.Buffer),\n },\n a,\n );\n const _chunks = lazy.value(() => {\n return bscript.decompile(a.input);\n });\n const network = a.network || networks_1.bitcoin;\n const o = { name: 'p2pk', network };\n lazy.prop(o, 'output', () => {\n if (!a.pubkey) return;\n return bscript.compile([a.pubkey, OPS.OP_CHECKSIG]);\n });\n lazy.prop(o, 'pubkey', () => {\n if (!a.output) return;\n return a.output.slice(1, -1);\n });\n lazy.prop(o, 'signature', () => {\n if (!a.input) return;\n return _chunks()[0];\n });\n lazy.prop(o, 'input', () => {\n if (!a.signature) return;\n return bscript.compile([a.signature]);\n });\n lazy.prop(o, 'witness', () => {\n if (!o.input) return;\n return [];\n });\n // extended validation\n if (opts.validate) {\n if (a.output) {\n if (a.output[a.output.length - 1] !== OPS.OP_CHECKSIG)\n throw new TypeError('Output is invalid');\n if (!ecc.isPoint(o.pubkey))\n throw new TypeError('Output pubkey is invalid');\n if (a.pubkey && !a.pubkey.equals(o.pubkey))\n throw new TypeError('Pubkey mismatch');\n }\n if (a.signature) {\n if (a.input && !a.input.equals(o.input))\n throw new TypeError('Signature mismatch');\n }\n if (a.input) {\n if (_chunks().length !== 1) throw new TypeError('Input is invalid');\n if (!bscript.isCanonicalScriptSignature(o.signature))\n throw new TypeError('Input has invalid signature');\n }\n }\n return Object.assign(o, a);\n}\nexports.p2pk = p2pk;\n", "'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nconst createHash = require('create-hash');\nfunction ripemd160(buffer) {\n try {\n return createHash('rmd160')\n .update(buffer)\n .digest();\n } catch (err) {\n return createHash('ripemd160')\n .update(buffer)\n .digest();\n }\n}\nexports.ripemd160 = ripemd160;\nfunction sha1(buffer) {\n return createHash('sha1')\n .update(buffer)\n .digest();\n}\nexports.sha1 = sha1;\nfunction sha256(buffer) {\n return createHash('sha256')\n .update(buffer)\n .digest();\n}\nexports.sha256 = sha256;\nfunction hash160(buffer) {\n return ripemd160(sha256(buffer));\n}\nexports.hash160 = hash160;\nfunction hash256(buffer) {\n return sha256(sha256(buffer));\n}\nexports.hash256 = hash256;\n", "'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nconst bcrypto = require('../crypto');\nconst networks_1 = require('../networks');\nconst bscript = require('../script');\nconst lazy = require('./lazy');\nconst typef = require('typeforce');\nconst OPS = bscript.OPS;\nconst ecc = require('tiny-secp256k1');\nconst bs58check = require('bs58check');\n// input: {signature} {pubkey}\n// output: OP_DUP OP_HASH160 {hash160(pubkey)} OP_EQUALVERIFY OP_CHECKSIG\nfunction p2pkh(a, opts) {\n if (!a.address && !a.hash && !a.output && !a.pubkey && !a.input)\n throw new TypeError('Not enough data');\n opts = Object.assign({ validate: true }, opts || {});\n typef(\n {\n network: typef.maybe(typef.Object),\n address: typef.maybe(typef.String),\n hash: typef.maybe(typef.BufferN(20)),\n output: typef.maybe(typef.BufferN(25)),\n pubkey: typef.maybe(ecc.isPoint),\n signature: typef.maybe(bscript.isCanonicalScriptSignature),\n input: typef.maybe(typef.Buffer),\n },\n a,\n );\n const _address = lazy.value(() => {\n const payload = bs58check.decode(a.address);\n const version = payload.readUInt8(0);\n const hash = payload.slice(1);\n return { version, hash };\n });\n const _chunks = lazy.value(() => {\n return bscript.decompile(a.input);\n });\n const network = a.network || networks_1.bitcoin;\n const o = { name: 'p2pkh', network };\n lazy.prop(o, 'address', () => {\n if (!o.hash) return;\n const payload = Buffer.allocUnsafe(21);\n payload.writeUInt8(network.pubKeyHash, 0);\n o.hash.copy(payload, 1);\n return bs58check.encode(payload);\n });\n lazy.prop(o, 'hash', () => {\n if (a.output) return a.output.slice(3, 23);\n if (a.address) return _address().hash;\n if (a.pubkey || o.pubkey) return bcrypto.hash160(a.pubkey || o.pubkey);\n });\n lazy.prop(o, 'output', () => {\n if (!o.hash) return;\n return bscript.compile([\n OPS.OP_DUP,\n OPS.OP_HASH160,\n o.hash,\n OPS.OP_EQUALVERIFY,\n OPS.OP_CHECKSIG,\n ]);\n });\n lazy.prop(o, 'pubkey', () => {\n if (!a.input) return;\n return _chunks()[1];\n });\n lazy.prop(o, 'signature', () => {\n if (!a.input) return;\n return _chunks()[0];\n });\n lazy.prop(o, 'input', () => {\n if (!a.pubkey) return;\n if (!a.signature) return;\n return bscript.compile([a.signature, a.pubkey]);\n });\n lazy.prop(o, 'witness', () => {\n if (!o.input) return;\n return [];\n });\n // extended validation\n if (opts.validate) {\n let hash = Buffer.from([]);\n if (a.address) {\n if (_address().version !== network.pubKeyHash)\n throw new TypeError('Invalid version or Network mismatch');\n if (_address().hash.length !== 20) throw new TypeError('Invalid address');\n hash = _address().hash;\n }\n if (a.hash) {\n if (hash.length > 0 && !hash.equals(a.hash))\n throw new TypeError('Hash mismatch');\n else hash = a.hash;\n }\n if (a.output) {\n if (\n a.output.length !== 25 ||\n a.output[0] !== OPS.OP_DUP ||\n a.output[1] !== OPS.OP_HASH160 ||\n a.output[2] !== 0x14 ||\n a.output[23] !== OPS.OP_EQUALVERIFY ||\n a.output[24] !== OPS.OP_CHECKSIG\n )\n throw new TypeError('Output is invalid');\n const hash2 = a.output.slice(3, 23);\n if (hash.length > 0 && !hash.equals(hash2))\n throw new TypeError('Hash mismatch');\n else hash = hash2;\n }\n if (a.pubkey) {\n const pkh = bcrypto.hash160(a.pubkey);\n if (hash.length > 0 && !hash.equals(pkh))\n throw new TypeError('Hash mismatch');\n else hash = pkh;\n }\n if (a.input) {\n const chunks = _chunks();\n if (chunks.length !== 2) throw new TypeError('Input is invalid');\n if (!bscript.isCanonicalScriptSignature(chunks[0]))\n throw new TypeError('Input has invalid signature');\n if (!ecc.isPoint(chunks[1]))\n throw new TypeError('Input has invalid pubkey');\n if (a.signature && !a.signature.equals(chunks[0]))\n throw new TypeError('Signature mismatch');\n if (a.pubkey && !a.pubkey.equals(chunks[1]))\n throw new TypeError('Pubkey mismatch');\n const pkh = bcrypto.hash160(chunks[1]);\n if (hash.length > 0 && !hash.equals(pkh))\n throw new TypeError('Hash mismatch');\n }\n }\n return Object.assign(o, a);\n}\nexports.p2pkh = p2pkh;\n", "'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nconst bcrypto = require('../crypto');\nconst networks_1 = require('../networks');\nconst bscript = require('../script');\nconst lazy = require('./lazy');\nconst typef = require('typeforce');\nconst OPS = bscript.OPS;\nconst bs58check = require('bs58check');\nfunction stacksEqual(a, b) {\n if (a.length !== b.length) return false;\n return a.every((x, i) => {\n return x.equals(b[i]);\n });\n}\n// input: [redeemScriptSig ...] {redeemScript}\n// witness: \n// output: OP_HASH160 {hash160(redeemScript)} OP_EQUAL\nfunction p2sh(a, opts) {\n if (!a.address && !a.hash && !a.output && !a.redeem && !a.input)\n throw new TypeError('Not enough data');\n opts = Object.assign({ validate: true }, opts || {});\n typef(\n {\n network: typef.maybe(typef.Object),\n address: typef.maybe(typef.String),\n hash: typef.maybe(typef.BufferN(20)),\n output: typef.maybe(typef.BufferN(23)),\n redeem: typef.maybe({\n network: typef.maybe(typef.Object),\n output: typef.maybe(typef.Buffer),\n input: typef.maybe(typef.Buffer),\n witness: typef.maybe(typef.arrayOf(typef.Buffer)),\n }),\n input: typef.maybe(typef.Buffer),\n witness: typef.maybe(typef.arrayOf(typef.Buffer)),\n },\n a,\n );\n let network = a.network;\n if (!network) {\n network = (a.redeem && a.redeem.network) || networks_1.bitcoin;\n }\n const o = { network };\n const _address = lazy.value(() => {\n const payload = bs58check.decode(a.address);\n const version = payload.readUInt8(0);\n const hash = payload.slice(1);\n return { version, hash };\n });\n const _chunks = lazy.value(() => {\n return bscript.decompile(a.input);\n });\n const _redeem = lazy.value(() => {\n const chunks = _chunks();\n return {\n network,\n output: chunks[chunks.length - 1],\n input: bscript.compile(chunks.slice(0, -1)),\n witness: a.witness || [],\n };\n });\n // output dependents\n lazy.prop(o, 'address', () => {\n if (!o.hash) return;\n const payload = Buffer.allocUnsafe(21);\n payload.writeUInt8(o.network.scriptHash, 0);\n o.hash.copy(payload, 1);\n return bs58check.encode(payload);\n });\n lazy.prop(o, 'hash', () => {\n // in order of least effort\n if (a.output) return a.output.slice(2, 22);\n if (a.address) return _address().hash;\n if (o.redeem && o.redeem.output) return bcrypto.hash160(o.redeem.output);\n });\n lazy.prop(o, 'output', () => {\n if (!o.hash) return;\n return bscript.compile([OPS.OP_HASH160, o.hash, OPS.OP_EQUAL]);\n });\n // input dependents\n lazy.prop(o, 'redeem', () => {\n if (!a.input) return;\n return _redeem();\n });\n lazy.prop(o, 'input', () => {\n if (!a.redeem || !a.redeem.input || !a.redeem.output) return;\n return bscript.compile(\n [].concat(bscript.decompile(a.redeem.input), a.redeem.output),\n );\n });\n lazy.prop(o, 'witness', () => {\n if (o.redeem && o.redeem.witness) return o.redeem.witness;\n if (o.input) return [];\n });\n lazy.prop(o, 'name', () => {\n const nameParts = ['p2sh'];\n if (o.redeem !== undefined) nameParts.push(o.redeem.name);\n return nameParts.join('-');\n });\n if (opts.validate) {\n let hash = Buffer.from([]);\n if (a.address) {\n if (_address().version !== network.scriptHash)\n throw new TypeError('Invalid version or Network mismatch');\n if (_address().hash.length !== 20) throw new TypeError('Invalid address');\n hash = _address().hash;\n }\n if (a.hash) {\n if (hash.length > 0 && !hash.equals(a.hash))\n throw new TypeError('Hash mismatch');\n else hash = a.hash;\n }\n if (a.output) {\n if (\n a.output.length !== 23 ||\n a.output[0] !== OPS.OP_HASH160 ||\n a.output[1] !== 0x14 ||\n a.output[22] !== OPS.OP_EQUAL\n )\n throw new TypeError('Output is invalid');\n const hash2 = a.output.slice(2, 22);\n if (hash.length > 0 && !hash.equals(hash2))\n throw new TypeError('Hash mismatch');\n else hash = hash2;\n }\n // inlined to prevent 'no-inner-declarations' failing\n const checkRedeem = redeem => {\n // is the redeem output empty/invalid?\n if (redeem.output) {\n const decompile = bscript.decompile(redeem.output);\n if (!decompile || decompile.length < 1)\n throw new TypeError('Redeem.output too short');\n // match hash against other sources\n const hash2 = bcrypto.hash160(redeem.output);\n if (hash.length > 0 && !hash.equals(hash2))\n throw new TypeError('Hash mismatch');\n else hash = hash2;\n }\n if (redeem.input) {\n const hasInput = redeem.input.length > 0;\n const hasWitness = redeem.witness && redeem.witness.length > 0;\n if (!hasInput && !hasWitness) throw new TypeError('Empty input');\n if (hasInput && hasWitness)\n throw new TypeError('Input and witness provided');\n if (hasInput) {\n const richunks = bscript.decompile(redeem.input);\n if (!bscript.isPushOnly(richunks))\n throw new TypeError('Non push-only scriptSig');\n }\n }\n };\n if (a.input) {\n const chunks = _chunks();\n if (!chunks || chunks.length < 1) throw new TypeError('Input too short');\n if (!Buffer.isBuffer(_redeem().output))\n throw new TypeError('Input is invalid');\n checkRedeem(_redeem());\n }\n if (a.redeem) {\n if (a.redeem.network && a.redeem.network !== network)\n throw new TypeError('Network mismatch');\n if (a.input) {\n const redeem = _redeem();\n if (a.redeem.output && !a.redeem.output.equals(redeem.output))\n throw new TypeError('Redeem.output mismatch');\n if (a.redeem.input && !a.redeem.input.equals(redeem.input))\n throw new TypeError('Redeem.input mismatch');\n }\n checkRedeem(a.redeem);\n }\n if (a.witness) {\n if (\n a.redeem &&\n a.redeem.witness &&\n !stacksEqual(a.redeem.witness, a.witness)\n )\n throw new TypeError('Witness and redeem.witness mismatch');\n }\n }\n return Object.assign(o, a);\n}\nexports.p2sh = p2sh;\n", "'use strict'\nvar ALPHABET = 'qpzry9x8gf2tvdw0s3jn54khce6mua7l'\n\n// pre-compute lookup table\nvar ALPHABET_MAP = {}\nfor (var z = 0; z < ALPHABET.length; z++) {\n var x = ALPHABET.charAt(z)\n\n if (ALPHABET_MAP[x] !== undefined) throw new TypeError(x + ' is ambiguous')\n ALPHABET_MAP[x] = z\n}\n\nfunction polymodStep (pre) {\n var b = pre >> 25\n return ((pre & 0x1FFFFFF) << 5) ^\n (-((b >> 0) & 1) & 0x3b6a57b2) ^\n (-((b >> 1) & 1) & 0x26508e6d) ^\n (-((b >> 2) & 1) & 0x1ea119fa) ^\n (-((b >> 3) & 1) & 0x3d4233dd) ^\n (-((b >> 4) & 1) & 0x2a1462b3)\n}\n\nfunction prefixChk (prefix) {\n var chk = 1\n for (var i = 0; i < prefix.length; ++i) {\n var c = prefix.charCodeAt(i)\n if (c < 33 || c > 126) return 'Invalid prefix (' + prefix + ')'\n\n chk = polymodStep(chk) ^ (c >> 5)\n }\n chk = polymodStep(chk)\n\n for (i = 0; i < prefix.length; ++i) {\n var v = prefix.charCodeAt(i)\n chk = polymodStep(chk) ^ (v & 0x1f)\n }\n return chk\n}\n\nfunction encode (prefix, words, LIMIT) {\n LIMIT = LIMIT || 90\n if ((prefix.length + 7 + words.length) > LIMIT) throw new TypeError('Exceeds length limit')\n\n prefix = prefix.toLowerCase()\n\n // determine chk mod\n var chk = prefixChk(prefix)\n if (typeof chk === 'string') throw new Error(chk)\n\n var result = prefix + '1'\n for (var i = 0; i < words.length; ++i) {\n var x = words[i]\n if ((x >> 5) !== 0) throw new Error('Non 5-bit word')\n\n chk = polymodStep(chk) ^ x\n result += ALPHABET.charAt(x)\n }\n\n for (i = 0; i < 6; ++i) {\n chk = polymodStep(chk)\n }\n chk ^= 1\n\n for (i = 0; i < 6; ++i) {\n var v = (chk >> ((5 - i) * 5)) & 0x1f\n result += ALPHABET.charAt(v)\n }\n\n return result\n}\n\nfunction __decode (str, LIMIT) {\n LIMIT = LIMIT || 90\n if (str.length < 8) return str + ' too short'\n if (str.length > LIMIT) return 'Exceeds length limit'\n\n // don't allow mixed case\n var lowered = str.toLowerCase()\n var uppered = str.toUpperCase()\n if (str !== lowered && str !== uppered) return 'Mixed-case string ' + str\n str = lowered\n\n var split = str.lastIndexOf('1')\n if (split === -1) return 'No separator character for ' + str\n if (split === 0) return 'Missing prefix for ' + str\n\n var prefix = str.slice(0, split)\n var wordChars = str.slice(split + 1)\n if (wordChars.length < 6) return 'Data too short'\n\n var chk = prefixChk(prefix)\n if (typeof chk === 'string') return chk\n\n var words = []\n for (var i = 0; i < wordChars.length; ++i) {\n var c = wordChars.charAt(i)\n var v = ALPHABET_MAP[c]\n if (v === undefined) return 'Unknown character ' + c\n chk = polymodStep(chk) ^ v\n\n // not in the checksum?\n if (i + 6 >= wordChars.length) continue\n words.push(v)\n }\n\n if (chk !== 1) return 'Invalid checksum for ' + str\n return { prefix: prefix, words: words }\n}\n\nfunction decodeUnsafe () {\n var res = __decode.apply(null, arguments)\n if (typeof res === 'object') return res\n}\n\nfunction decode (str) {\n var res = __decode.apply(null, arguments)\n if (typeof res === 'object') return res\n\n throw new Error(res)\n}\n\nfunction convert (data, inBits, outBits, pad) {\n var value = 0\n var bits = 0\n var maxV = (1 << outBits) - 1\n\n var result = []\n for (var i = 0; i < data.length; ++i) {\n value = (value << inBits) | data[i]\n bits += inBits\n\n while (bits >= outBits) {\n bits -= outBits\n result.push((value >> bits) & maxV)\n }\n }\n\n if (pad) {\n if (bits > 0) {\n result.push((value << (outBits - bits)) & maxV)\n }\n } else {\n if (bits >= inBits) return 'Excess padding'\n if ((value << (outBits - bits)) & maxV) return 'Non-zero padding'\n }\n\n return result\n}\n\nfunction toWordsUnsafe (bytes) {\n var res = convert(bytes, 8, 5, true)\n if (Array.isArray(res)) return res\n}\n\nfunction toWords (bytes) {\n var res = convert(bytes, 8, 5, true)\n if (Array.isArray(res)) return res\n\n throw new Error(res)\n}\n\nfunction fromWordsUnsafe (words) {\n var res = convert(words, 5, 8, false)\n if (Array.isArray(res)) return res\n}\n\nfunction fromWords (words) {\n var res = convert(words, 5, 8, false)\n if (Array.isArray(res)) return res\n\n throw new Error(res)\n}\n\nmodule.exports = {\n decodeUnsafe: decodeUnsafe,\n decode: decode,\n encode: encode,\n toWordsUnsafe: toWordsUnsafe,\n toWords: toWords,\n fromWordsUnsafe: fromWordsUnsafe,\n fromWords: fromWords\n}\n", "'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nconst bcrypto = require('../crypto');\nconst networks_1 = require('../networks');\nconst bscript = require('../script');\nconst lazy = require('./lazy');\nconst typef = require('typeforce');\nconst OPS = bscript.OPS;\nconst ecc = require('tiny-secp256k1');\nconst bech32 = require('bech32');\nconst EMPTY_BUFFER = Buffer.alloc(0);\n// witness: {signature} {pubKey}\n// input: <>\n// output: OP_0 {pubKeyHash}\nfunction p2wpkh(a, opts) {\n if (!a.address && !a.hash && !a.output && !a.pubkey && !a.witness)\n throw new TypeError('Not enough data');\n opts = Object.assign({ validate: true }, opts || {});\n typef(\n {\n address: typef.maybe(typef.String),\n hash: typef.maybe(typef.BufferN(20)),\n input: typef.maybe(typef.BufferN(0)),\n network: typef.maybe(typef.Object),\n output: typef.maybe(typef.BufferN(22)),\n pubkey: typef.maybe(ecc.isPoint),\n signature: typef.maybe(bscript.isCanonicalScriptSignature),\n witness: typef.maybe(typef.arrayOf(typef.Buffer)),\n },\n a,\n );\n const _address = lazy.value(() => {\n const result = bech32.decode(a.address);\n const version = result.words.shift();\n const data = bech32.fromWords(result.words);\n return {\n version,\n prefix: result.prefix,\n data: Buffer.from(data),\n };\n });\n const network = a.network || networks_1.bitcoin;\n const o = { name: 'p2wpkh', network };\n lazy.prop(o, 'address', () => {\n if (!o.hash) return;\n const words = bech32.toWords(o.hash);\n words.unshift(0x00);\n return bech32.encode(network.bech32, words);\n });\n lazy.prop(o, 'hash', () => {\n if (a.output) return a.output.slice(2, 22);\n if (a.address) return _address().data;\n if (a.pubkey || o.pubkey) return bcrypto.hash160(a.pubkey || o.pubkey);\n });\n lazy.prop(o, 'output', () => {\n if (!o.hash) return;\n return bscript.compile([OPS.OP_0, o.hash]);\n });\n lazy.prop(o, 'pubkey', () => {\n if (a.pubkey) return a.pubkey;\n if (!a.witness) return;\n return a.witness[1];\n });\n lazy.prop(o, 'signature', () => {\n if (!a.witness) return;\n return a.witness[0];\n });\n lazy.prop(o, 'input', () => {\n if (!o.witness) return;\n return EMPTY_BUFFER;\n });\n lazy.prop(o, 'witness', () => {\n if (!a.pubkey) return;\n if (!a.signature) return;\n return [a.signature, a.pubkey];\n });\n // extended validation\n if (opts.validate) {\n let hash = Buffer.from([]);\n if (a.address) {\n if (network && network.bech32 !== _address().prefix)\n throw new TypeError('Invalid prefix or Network mismatch');\n if (_address().version !== 0x00)\n throw new TypeError('Invalid address version');\n if (_address().data.length !== 20)\n throw new TypeError('Invalid address data');\n hash = _address().data;\n }\n if (a.hash) {\n if (hash.length > 0 && !hash.equals(a.hash))\n throw new TypeError('Hash mismatch');\n else hash = a.hash;\n }\n if (a.output) {\n if (\n a.output.length !== 22 ||\n a.output[0] !== OPS.OP_0 ||\n a.output[1] !== 0x14\n )\n throw new TypeError('Output is invalid');\n if (hash.length > 0 && !hash.equals(a.output.slice(2)))\n throw new TypeError('Hash mismatch');\n else hash = a.output.slice(2);\n }\n if (a.pubkey) {\n const pkh = bcrypto.hash160(a.pubkey);\n if (hash.length > 0 && !hash.equals(pkh))\n throw new TypeError('Hash mismatch');\n else hash = pkh;\n if (!ecc.isPoint(a.pubkey) || a.pubkey.length !== 33)\n throw new TypeError('Invalid pubkey for p2wpkh');\n }\n if (a.witness) {\n if (a.witness.length !== 2) throw new TypeError('Witness is invalid');\n if (!bscript.isCanonicalScriptSignature(a.witness[0]))\n throw new TypeError('Witness has invalid signature');\n if (!ecc.isPoint(a.witness[1]) || a.witness[1].length !== 33)\n throw new TypeError('Witness has invalid pubkey');\n if (a.signature && !a.signature.equals(a.witness[0]))\n throw new TypeError('Signature mismatch');\n if (a.pubkey && !a.pubkey.equals(a.witness[1]))\n throw new TypeError('Pubkey mismatch');\n const pkh = bcrypto.hash160(a.witness[1]);\n if (hash.length > 0 && !hash.equals(pkh))\n throw new TypeError('Hash mismatch');\n }\n }\n return Object.assign(o, a);\n}\nexports.p2wpkh = p2wpkh;\n", "'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nconst bcrypto = require('../crypto');\nconst networks_1 = require('../networks');\nconst bscript = require('../script');\nconst lazy = require('./lazy');\nconst typef = require('typeforce');\nconst OPS = bscript.OPS;\nconst ecc = require('tiny-secp256k1');\nconst bech32 = require('bech32');\nconst EMPTY_BUFFER = Buffer.alloc(0);\nfunction stacksEqual(a, b) {\n if (a.length !== b.length) return false;\n return a.every((x, i) => {\n return x.equals(b[i]);\n });\n}\nfunction chunkHasUncompressedPubkey(chunk) {\n if (\n Buffer.isBuffer(chunk) &&\n chunk.length === 65 &&\n chunk[0] === 0x04 &&\n ecc.isPoint(chunk)\n ) {\n return true;\n } else {\n return false;\n }\n}\n// input: <>\n// witness: [redeemScriptSig ...] {redeemScript}\n// output: OP_0 {sha256(redeemScript)}\nfunction p2wsh(a, opts) {\n if (!a.address && !a.hash && !a.output && !a.redeem && !a.witness)\n throw new TypeError('Not enough data');\n opts = Object.assign({ validate: true }, opts || {});\n typef(\n {\n network: typef.maybe(typef.Object),\n address: typef.maybe(typef.String),\n hash: typef.maybe(typef.BufferN(32)),\n output: typef.maybe(typef.BufferN(34)),\n redeem: typef.maybe({\n input: typef.maybe(typef.Buffer),\n network: typef.maybe(typef.Object),\n output: typef.maybe(typef.Buffer),\n witness: typef.maybe(typef.arrayOf(typef.Buffer)),\n }),\n input: typef.maybe(typef.BufferN(0)),\n witness: typef.maybe(typef.arrayOf(typef.Buffer)),\n },\n a,\n );\n const _address = lazy.value(() => {\n const result = bech32.decode(a.address);\n const version = result.words.shift();\n const data = bech32.fromWords(result.words);\n return {\n version,\n prefix: result.prefix,\n data: Buffer.from(data),\n };\n });\n const _rchunks = lazy.value(() => {\n return bscript.decompile(a.redeem.input);\n });\n let network = a.network;\n if (!network) {\n network = (a.redeem && a.redeem.network) || networks_1.bitcoin;\n }\n const o = { network };\n lazy.prop(o, 'address', () => {\n if (!o.hash) return;\n const words = bech32.toWords(o.hash);\n words.unshift(0x00);\n return bech32.encode(network.bech32, words);\n });\n lazy.prop(o, 'hash', () => {\n if (a.output) return a.output.slice(2);\n if (a.address) return _address().data;\n if (o.redeem && o.redeem.output) return bcrypto.sha256(o.redeem.output);\n });\n lazy.prop(o, 'output', () => {\n if (!o.hash) return;\n return bscript.compile([OPS.OP_0, o.hash]);\n });\n lazy.prop(o, 'redeem', () => {\n if (!a.witness) return;\n return {\n output: a.witness[a.witness.length - 1],\n input: EMPTY_BUFFER,\n witness: a.witness.slice(0, -1),\n };\n });\n lazy.prop(o, 'input', () => {\n if (!o.witness) return;\n return EMPTY_BUFFER;\n });\n lazy.prop(o, 'witness', () => {\n // transform redeem input to witness stack?\n if (\n a.redeem &&\n a.redeem.input &&\n a.redeem.input.length > 0 &&\n a.redeem.output &&\n a.redeem.output.length > 0\n ) {\n const stack = bscript.toStack(_rchunks());\n // assign, and blank the existing input\n o.redeem = Object.assign({ witness: stack }, a.redeem);\n o.redeem.input = EMPTY_BUFFER;\n return [].concat(stack, a.redeem.output);\n }\n if (!a.redeem) return;\n if (!a.redeem.output) return;\n if (!a.redeem.witness) return;\n return [].concat(a.redeem.witness, a.redeem.output);\n });\n lazy.prop(o, 'name', () => {\n const nameParts = ['p2wsh'];\n if (o.redeem !== undefined) nameParts.push(o.redeem.name);\n return nameParts.join('-');\n });\n // extended validation\n if (opts.validate) {\n let hash = Buffer.from([]);\n if (a.address) {\n if (_address().prefix !== network.bech32)\n throw new TypeError('Invalid prefix or Network mismatch');\n if (_address().version !== 0x00)\n throw new TypeError('Invalid address version');\n if (_address().data.length !== 32)\n throw new TypeError('Invalid address data');\n hash = _address().data;\n }\n if (a.hash) {\n if (hash.length > 0 && !hash.equals(a.hash))\n throw new TypeError('Hash mismatch');\n else hash = a.hash;\n }\n if (a.output) {\n if (\n a.output.length !== 34 ||\n a.output[0] !== OPS.OP_0 ||\n a.output[1] !== 0x20\n )\n throw new TypeError('Output is invalid');\n const hash2 = a.output.slice(2);\n if (hash.length > 0 && !hash.equals(hash2))\n throw new TypeError('Hash mismatch');\n else hash = hash2;\n }\n if (a.redeem) {\n if (a.redeem.network && a.redeem.network !== network)\n throw new TypeError('Network mismatch');\n // is there two redeem sources?\n if (\n a.redeem.input &&\n a.redeem.input.length > 0 &&\n a.redeem.witness &&\n a.redeem.witness.length > 0\n )\n throw new TypeError('Ambiguous witness source');\n // is the redeem output non-empty?\n if (a.redeem.output) {\n if (bscript.decompile(a.redeem.output).length === 0)\n throw new TypeError('Redeem.output is invalid');\n // match hash against other sources\n const hash2 = bcrypto.sha256(a.redeem.output);\n if (hash.length > 0 && !hash.equals(hash2))\n throw new TypeError('Hash mismatch');\n else hash = hash2;\n }\n if (a.redeem.input && !bscript.isPushOnly(_rchunks()))\n throw new TypeError('Non push-only scriptSig');\n if (\n a.witness &&\n a.redeem.witness &&\n !stacksEqual(a.witness, a.redeem.witness)\n )\n throw new TypeError('Witness and redeem.witness mismatch');\n if (\n (a.redeem.input && _rchunks().some(chunkHasUncompressedPubkey)) ||\n (a.redeem.output &&\n (bscript.decompile(a.redeem.output) || []).some(\n chunkHasUncompressedPubkey,\n ))\n ) {\n throw new TypeError(\n 'redeem.input or redeem.output contains uncompressed pubkey',\n );\n }\n }\n if (a.witness && a.witness.length > 0) {\n const wScript = a.witness[a.witness.length - 1];\n if (a.redeem && a.redeem.output && !a.redeem.output.equals(wScript))\n throw new TypeError('Witness and redeem.output mismatch');\n if (\n a.witness.some(chunkHasUncompressedPubkey) ||\n (bscript.decompile(wScript) || []).some(chunkHasUncompressedPubkey)\n )\n throw new TypeError('Witness contains uncompressed pubkey');\n }\n }\n return Object.assign(o, a);\n}\nexports.p2wsh = p2wsh;\n", "'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nconst embed_1 = require('./embed');\nexports.embed = embed_1.p2data;\nconst p2ms_1 = require('./p2ms');\nexports.p2ms = p2ms_1.p2ms;\nconst p2pk_1 = require('./p2pk');\nexports.p2pk = p2pk_1.p2pk;\nconst p2pkh_1 = require('./p2pkh');\nexports.p2pkh = p2pkh_1.p2pkh;\nconst p2sh_1 = require('./p2sh');\nexports.p2sh = p2sh_1.p2sh;\nconst p2wpkh_1 = require('./p2wpkh');\nexports.p2wpkh = p2wpkh_1.p2wpkh;\nconst p2wsh_1 = require('./p2wsh');\nexports.p2wsh = p2wsh_1.p2wsh;\n// TODO\n// witness commitment\n", "'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nconst networks = require('./networks');\nconst payments = require('./payments');\nconst bscript = require('./script');\nconst types = require('./types');\nconst bech32 = require('bech32');\nconst bs58check = require('bs58check');\nconst typeforce = require('typeforce');\nfunction fromBase58Check(address) {\n const payload = bs58check.decode(address);\n // TODO: 4.0.0, move to \"toOutputScript\"\n if (payload.length < 21) throw new TypeError(address + ' is too short');\n if (payload.length > 21) throw new TypeError(address + ' is too long');\n const version = payload.readUInt8(0);\n const hash = payload.slice(1);\n return { version, hash };\n}\nexports.fromBase58Check = fromBase58Check;\nfunction fromBech32(address) {\n const result = bech32.decode(address);\n const data = bech32.fromWords(result.words.slice(1));\n return {\n version: result.words[0],\n prefix: result.prefix,\n data: Buffer.from(data),\n };\n}\nexports.fromBech32 = fromBech32;\nfunction toBase58Check(hash, version) {\n typeforce(types.tuple(types.Hash160bit, types.UInt8), arguments);\n const payload = Buffer.allocUnsafe(21);\n payload.writeUInt8(version, 0);\n hash.copy(payload, 1);\n return bs58check.encode(payload);\n}\nexports.toBase58Check = toBase58Check;\nfunction toBech32(data, version, prefix) {\n const words = bech32.toWords(data);\n words.unshift(version);\n return bech32.encode(prefix, words);\n}\nexports.toBech32 = toBech32;\nfunction fromOutputScript(output, network) {\n // TODO: Network\n network = network || networks.bitcoin;\n try {\n return payments.p2pkh({ output, network }).address;\n } catch (e) {}\n try {\n return payments.p2sh({ output, network }).address;\n } catch (e) {}\n try {\n return payments.p2wpkh({ output, network }).address;\n } catch (e) {}\n try {\n return payments.p2wsh({ output, network }).address;\n } catch (e) {}\n throw new Error(bscript.toASM(output) + ' has no matching Address');\n}\nexports.fromOutputScript = fromOutputScript;\nfunction toOutputScript(address, network) {\n network = network || networks.bitcoin;\n let decodeBase58;\n let decodeBech32;\n try {\n decodeBase58 = fromBase58Check(address);\n } catch (e) {}\n if (decodeBase58) {\n if (decodeBase58.version === network.pubKeyHash)\n return payments.p2pkh({ hash: decodeBase58.hash }).output;\n if (decodeBase58.version === network.scriptHash)\n return payments.p2sh({ hash: decodeBase58.hash }).output;\n } else {\n try {\n decodeBech32 = fromBech32(address);\n } catch (e) {}\n if (decodeBech32) {\n if (decodeBech32.prefix !== network.bech32)\n throw new Error(address + ' has an invalid prefix');\n if (decodeBech32.version === 0) {\n if (decodeBech32.data.length === 20)\n return payments.p2wpkh({ hash: decodeBech32.data }).output;\n if (decodeBech32.data.length === 32)\n return payments.p2wsh({ hash: decodeBech32.data }).output;\n }\n }\n }\n throw new Error(address + ' has no matching Script');\n}\nexports.toOutputScript = toOutputScript;\n", "module.exports = require('crypto').randomBytes\n", "'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nconst NETWORKS = require('./networks');\nconst types = require('./types');\nconst ecc = require('tiny-secp256k1');\nconst randomBytes = require('randombytes');\nconst typeforce = require('typeforce');\nconst wif = require('wif');\nconst isOptions = typeforce.maybe(\n typeforce.compile({\n compressed: types.maybe(types.Boolean),\n network: types.maybe(types.Network),\n }),\n);\nclass ECPair {\n constructor(__D, __Q, options) {\n this.__D = __D;\n this.__Q = __Q;\n this.lowR = false;\n if (options === undefined) options = {};\n this.compressed =\n options.compressed === undefined ? true : options.compressed;\n this.network = options.network || NETWORKS.bitcoin;\n if (__Q !== undefined) this.__Q = ecc.pointCompress(__Q, this.compressed);\n }\n get privateKey() {\n return this.__D;\n }\n get publicKey() {\n if (!this.__Q) this.__Q = ecc.pointFromScalar(this.__D, this.compressed);\n return this.__Q;\n }\n toWIF() {\n if (!this.__D) throw new Error('Missing private key');\n return wif.encode(this.network.wif, this.__D, this.compressed);\n }\n sign(hash, lowR) {\n if (!this.__D) throw new Error('Missing private key');\n if (lowR === undefined) lowR = this.lowR;\n if (lowR === false) {\n return ecc.sign(hash, this.__D);\n } else {\n let sig = ecc.sign(hash, this.__D);\n const extraData = Buffer.alloc(32, 0);\n let counter = 0;\n // if first try is lowR, skip the loop\n // for second try and on, add extra entropy counting up\n while (sig[0] > 0x7f) {\n counter++;\n extraData.writeUIntLE(counter, 0, 6);\n sig = ecc.signWithEntropy(hash, this.__D, extraData);\n }\n return sig;\n }\n }\n verify(hash, signature) {\n return ecc.verify(hash, this.publicKey, signature);\n }\n}\nfunction fromPrivateKey(buffer, options) {\n typeforce(types.Buffer256bit, buffer);\n if (!ecc.isPrivate(buffer))\n throw new TypeError('Private key not in range [1, n)');\n typeforce(isOptions, options);\n return new ECPair(buffer, undefined, options);\n}\nexports.fromPrivateKey = fromPrivateKey;\nfunction fromPublicKey(buffer, options) {\n typeforce(ecc.isPoint, buffer);\n typeforce(isOptions, options);\n return new ECPair(undefined, buffer, options);\n}\nexports.fromPublicKey = fromPublicKey;\nfunction fromWIF(wifString, network) {\n const decoded = wif.decode(wifString);\n const version = decoded.version;\n // list of networks?\n if (types.Array(network)) {\n network = network\n .filter(x => {\n return version === x.wif;\n })\n .pop();\n if (!network) throw new Error('Unknown network version');\n // otherwise, assume a network object (or default to bitcoin)\n } else {\n network = network || NETWORKS.bitcoin;\n if (version !== network.wif) throw new Error('Invalid network version');\n }\n return fromPrivateKey(decoded.privateKey, {\n compressed: decoded.compressed,\n network: network,\n });\n}\nexports.fromWIF = fromWIF;\nfunction makeRandom(options) {\n typeforce(isOptions, options);\n if (options === undefined) options = {};\n const rng = options.rng || randomBytes;\n let d;\n do {\n d = rng(32);\n typeforce(types.Buffer256bit, d);\n } while (!ecc.isPrivate(d));\n return fromPrivateKey(d, options);\n}\nexports.makeRandom = makeRandom;\n", "'use strict'\nvar Buffer = require('safe-buffer').Buffer\n\n// Number.MAX_SAFE_INTEGER\nvar MAX_SAFE_INTEGER = 9007199254740991\n\nfunction checkUInt53 (n) {\n if (n < 0 || n > MAX_SAFE_INTEGER || n % 1 !== 0) throw new RangeError('value out of range')\n}\n\nfunction encode (number, buffer, offset) {\n checkUInt53(number)\n\n if (!buffer) buffer = Buffer.allocUnsafe(encodingLength(number))\n if (!Buffer.isBuffer(buffer)) throw new TypeError('buffer must be a Buffer instance')\n if (!offset) offset = 0\n\n // 8 bit\n if (number < 0xfd) {\n buffer.writeUInt8(number, offset)\n encode.bytes = 1\n\n // 16 bit\n } else if (number <= 0xffff) {\n buffer.writeUInt8(0xfd, offset)\n buffer.writeUInt16LE(number, offset + 1)\n encode.bytes = 3\n\n // 32 bit\n } else if (number <= 0xffffffff) {\n buffer.writeUInt8(0xfe, offset)\n buffer.writeUInt32LE(number, offset + 1)\n encode.bytes = 5\n\n // 64 bit\n } else {\n buffer.writeUInt8(0xff, offset)\n buffer.writeUInt32LE(number >>> 0, offset + 1)\n buffer.writeUInt32LE((number / 0x100000000) | 0, offset + 5)\n encode.bytes = 9\n }\n\n return buffer\n}\n\nfunction decode (buffer, offset) {\n if (!Buffer.isBuffer(buffer)) throw new TypeError('buffer must be a Buffer instance')\n if (!offset) offset = 0\n\n var first = buffer.readUInt8(offset)\n\n // 8 bit\n if (first < 0xfd) {\n decode.bytes = 1\n return first\n\n // 16 bit\n } else if (first === 0xfd) {\n decode.bytes = 3\n return buffer.readUInt16LE(offset + 1)\n\n // 32 bit\n } else if (first === 0xfe) {\n decode.bytes = 5\n return buffer.readUInt32LE(offset + 1)\n\n // 64 bit\n } else {\n decode.bytes = 9\n var lo = buffer.readUInt32LE(offset + 1)\n var hi = buffer.readUInt32LE(offset + 5)\n var number = hi * 0x0100000000 + lo\n checkUInt53(number)\n\n return number\n }\n}\n\nfunction encodingLength (number) {\n checkUInt53(number)\n\n return (\n number < 0xfd ? 1\n : number <= 0xffff ? 3\n : number <= 0xffffffff ? 5\n : 9\n )\n}\n\nmodule.exports = { encode: encode, decode: decode, encodingLength: encodingLength }\n", "'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nconst types = require('./types');\nconst typeforce = require('typeforce');\nconst varuint = require('varuint-bitcoin');\n// https://github.com/feross/buffer/blob/master/index.js#L1127\nfunction verifuint(value, max) {\n if (typeof value !== 'number')\n throw new Error('cannot write a non-number as a number');\n if (value < 0)\n throw new Error('specified a negative value for writing an unsigned value');\n if (value > max) throw new Error('RangeError: value out of range');\n if (Math.floor(value) !== value)\n throw new Error('value has a fractional component');\n}\nfunction readUInt64LE(buffer, offset) {\n const a = buffer.readUInt32LE(offset);\n let b = buffer.readUInt32LE(offset + 4);\n b *= 0x100000000;\n verifuint(b + a, 0x001fffffffffffff);\n return b + a;\n}\nexports.readUInt64LE = readUInt64LE;\nfunction writeUInt64LE(buffer, value, offset) {\n verifuint(value, 0x001fffffffffffff);\n buffer.writeInt32LE(value & -1, offset);\n buffer.writeUInt32LE(Math.floor(value / 0x100000000), offset + 4);\n return offset + 8;\n}\nexports.writeUInt64LE = writeUInt64LE;\nfunction reverseBuffer(buffer) {\n if (buffer.length < 1) return buffer;\n let j = buffer.length - 1;\n let tmp = 0;\n for (let i = 0; i < buffer.length / 2; i++) {\n tmp = buffer[i];\n buffer[i] = buffer[j];\n buffer[j] = tmp;\n j--;\n }\n return buffer;\n}\nexports.reverseBuffer = reverseBuffer;\nfunction cloneBuffer(buffer) {\n const clone = Buffer.allocUnsafe(buffer.length);\n buffer.copy(clone);\n return clone;\n}\nexports.cloneBuffer = cloneBuffer;\n/**\n * Helper class for serialization of bitcoin data types into a pre-allocated buffer.\n */\nclass BufferWriter {\n constructor(buffer, offset = 0) {\n this.buffer = buffer;\n this.offset = offset;\n typeforce(types.tuple(types.Buffer, types.UInt32), [buffer, offset]);\n }\n writeUInt8(i) {\n this.offset = this.buffer.writeUInt8(i, this.offset);\n }\n writeInt32(i) {\n this.offset = this.buffer.writeInt32LE(i, this.offset);\n }\n writeUInt32(i) {\n this.offset = this.buffer.writeUInt32LE(i, this.offset);\n }\n writeUInt64(i) {\n this.offset = writeUInt64LE(this.buffer, i, this.offset);\n }\n writeVarInt(i) {\n varuint.encode(i, this.buffer, this.offset);\n this.offset += varuint.encode.bytes;\n }\n writeSlice(slice) {\n if (this.buffer.length < this.offset + slice.length) {\n throw new Error('Cannot write slice out of bounds');\n }\n this.offset += slice.copy(this.buffer, this.offset);\n }\n writeVarSlice(slice) {\n this.writeVarInt(slice.length);\n this.writeSlice(slice);\n }\n writeVector(vector) {\n this.writeVarInt(vector.length);\n vector.forEach(buf => this.writeVarSlice(buf));\n }\n}\nexports.BufferWriter = BufferWriter;\n/**\n * Helper class for reading of bitcoin data types from a buffer.\n */\nclass BufferReader {\n constructor(buffer, offset = 0) {\n this.buffer = buffer;\n this.offset = offset;\n typeforce(types.tuple(types.Buffer, types.UInt32), [buffer, offset]);\n }\n readUInt8() {\n const result = this.buffer.readUInt8(this.offset);\n this.offset++;\n return result;\n }\n readInt32() {\n const result = this.buffer.readInt32LE(this.offset);\n this.offset += 4;\n return result;\n }\n readUInt32() {\n const result = this.buffer.readUInt32LE(this.offset);\n this.offset += 4;\n return result;\n }\n readUInt64() {\n const result = readUInt64LE(this.buffer, this.offset);\n this.offset += 8;\n return result;\n }\n readVarInt() {\n const vi = varuint.decode(this.buffer, this.offset);\n this.offset += varuint.decode.bytes;\n return vi;\n }\n readSlice(n) {\n if (this.buffer.length < this.offset + n) {\n throw new Error('Cannot read slice out of bounds');\n }\n const result = this.buffer.slice(this.offset, this.offset + n);\n this.offset += n;\n return result;\n }\n readVarSlice() {\n return this.readSlice(this.readVarInt());\n }\n readVector() {\n const count = this.readVarInt();\n const vector = [];\n for (let i = 0; i < count; i++) vector.push(this.readVarSlice());\n return vector;\n }\n}\nexports.BufferReader = BufferReader;\n", "'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nconst bufferutils_1 = require('./bufferutils');\nconst bcrypto = require('./crypto');\nconst bscript = require('./script');\nconst script_1 = require('./script');\nconst types = require('./types');\nconst typeforce = require('typeforce');\nconst varuint = require('varuint-bitcoin');\nfunction varSliceSize(someScript) {\n const length = someScript.length;\n return varuint.encodingLength(length) + length;\n}\nfunction vectorSize(someVector) {\n const length = someVector.length;\n return (\n varuint.encodingLength(length) +\n someVector.reduce((sum, witness) => {\n return sum + varSliceSize(witness);\n }, 0)\n );\n}\nconst EMPTY_SCRIPT = Buffer.allocUnsafe(0);\nconst EMPTY_WITNESS = [];\nconst ZERO = Buffer.from(\n '0000000000000000000000000000000000000000000000000000000000000000',\n 'hex',\n);\nconst ONE = Buffer.from(\n '0000000000000000000000000000000000000000000000000000000000000001',\n 'hex',\n);\nconst VALUE_UINT64_MAX = Buffer.from('ffffffffffffffff', 'hex');\nconst BLANK_OUTPUT = {\n script: EMPTY_SCRIPT,\n valueBuffer: VALUE_UINT64_MAX,\n};\nfunction isOutput(out) {\n return out.value !== undefined;\n}\nclass Transaction {\n constructor() {\n this.version = 1;\n this.locktime = 0;\n this.ins = [];\n this.outs = [];\n }\n static fromBuffer(buffer, _NO_STRICT) {\n const bufferReader = new bufferutils_1.BufferReader(buffer);\n const tx = new Transaction();\n tx.version = bufferReader.readInt32();\n const marker = bufferReader.readUInt8();\n const flag = bufferReader.readUInt8();\n let hasWitnesses = false;\n if (\n marker === Transaction.ADVANCED_TRANSACTION_MARKER &&\n flag === Transaction.ADVANCED_TRANSACTION_FLAG\n ) {\n hasWitnesses = true;\n } else {\n bufferReader.offset -= 2;\n }\n const vinLen = bufferReader.readVarInt();\n for (let i = 0; i < vinLen; ++i) {\n tx.ins.push({\n hash: bufferReader.readSlice(32),\n index: bufferReader.readUInt32(),\n script: bufferReader.readVarSlice(),\n sequence: bufferReader.readUInt32(),\n witness: EMPTY_WITNESS,\n });\n }\n const voutLen = bufferReader.readVarInt();\n for (let i = 0; i < voutLen; ++i) {\n tx.outs.push({\n value: bufferReader.readUInt64(),\n script: bufferReader.readVarSlice(),\n });\n }\n if (hasWitnesses) {\n for (let i = 0; i < vinLen; ++i) {\n tx.ins[i].witness = bufferReader.readVector();\n }\n // was this pointless?\n if (!tx.hasWitnesses())\n throw new Error('Transaction has superfluous witness data');\n }\n tx.locktime = bufferReader.readUInt32();\n if (_NO_STRICT) return tx;\n if (bufferReader.offset !== buffer.length)\n throw new Error('Transaction has unexpected data');\n return tx;\n }\n static fromHex(hex) {\n return Transaction.fromBuffer(Buffer.from(hex, 'hex'), false);\n }\n static isCoinbaseHash(buffer) {\n typeforce(types.Hash256bit, buffer);\n for (let i = 0; i < 32; ++i) {\n if (buffer[i] !== 0) return false;\n }\n return true;\n }\n isCoinbase() {\n return (\n this.ins.length === 1 && Transaction.isCoinbaseHash(this.ins[0].hash)\n );\n }\n addInput(hash, index, sequence, scriptSig) {\n typeforce(\n types.tuple(\n types.Hash256bit,\n types.UInt32,\n types.maybe(types.UInt32),\n types.maybe(types.Buffer),\n ),\n arguments,\n );\n if (types.Null(sequence)) {\n sequence = Transaction.DEFAULT_SEQUENCE;\n }\n // Add the input and return the input's index\n return (\n this.ins.push({\n hash,\n index,\n script: scriptSig || EMPTY_SCRIPT,\n sequence: sequence,\n witness: EMPTY_WITNESS,\n }) - 1\n );\n }\n addOutput(scriptPubKey, value) {\n typeforce(types.tuple(types.Buffer, types.Satoshi), arguments);\n // Add the output and return the output's index\n return (\n this.outs.push({\n script: scriptPubKey,\n value,\n }) - 1\n );\n }\n hasWitnesses() {\n return this.ins.some(x => {\n return x.witness.length !== 0;\n });\n }\n weight() {\n const base = this.byteLength(false);\n const total = this.byteLength(true);\n return base * 3 + total;\n }\n virtualSize() {\n return Math.ceil(this.weight() / 4);\n }\n byteLength(_ALLOW_WITNESS = true) {\n const hasWitnesses = _ALLOW_WITNESS && this.hasWitnesses();\n return (\n (hasWitnesses ? 10 : 8) +\n varuint.encodingLength(this.ins.length) +\n varuint.encodingLength(this.outs.length) +\n this.ins.reduce((sum, input) => {\n return sum + 40 + varSliceSize(input.script);\n }, 0) +\n this.outs.reduce((sum, output) => {\n return sum + 8 + varSliceSize(output.script);\n }, 0) +\n (hasWitnesses\n ? this.ins.reduce((sum, input) => {\n return sum + vectorSize(input.witness);\n }, 0)\n : 0)\n );\n }\n clone() {\n const newTx = new Transaction();\n newTx.version = this.version;\n newTx.locktime = this.locktime;\n newTx.ins = this.ins.map(txIn => {\n return {\n hash: txIn.hash,\n index: txIn.index,\n script: txIn.script,\n sequence: txIn.sequence,\n witness: txIn.witness,\n };\n });\n newTx.outs = this.outs.map(txOut => {\n return {\n script: txOut.script,\n value: txOut.value,\n };\n });\n return newTx;\n }\n /**\n * Hash transaction for signing a specific input.\n *\n * Bitcoin uses a different hash for each signed transaction input.\n * This method copies the transaction, makes the necessary changes based on the\n * hashType, and then hashes the result.\n * This hash can then be used to sign the provided transaction input.\n */\n hashForSignature(inIndex, prevOutScript, hashType) {\n typeforce(\n types.tuple(types.UInt32, types.Buffer, /* types.UInt8 */ types.Number),\n arguments,\n );\n // https://github.com/bitcoin/bitcoin/blob/master/src/test/sighash_tests.cpp#L29\n if (inIndex >= this.ins.length) return ONE;\n // ignore OP_CODESEPARATOR\n const ourScript = bscript.compile(\n bscript.decompile(prevOutScript).filter(x => {\n return x !== script_1.OPS.OP_CODESEPARATOR;\n }),\n );\n const txTmp = this.clone();\n // SIGHASH_NONE: ignore all outputs? (wildcard payee)\n if ((hashType & 0x1f) === Transaction.SIGHASH_NONE) {\n txTmp.outs = [];\n // ignore sequence numbers (except at inIndex)\n txTmp.ins.forEach((input, i) => {\n if (i === inIndex) return;\n input.sequence = 0;\n });\n // SIGHASH_SINGLE: ignore all outputs, except at the same index?\n } else if ((hashType & 0x1f) === Transaction.SIGHASH_SINGLE) {\n // https://github.com/bitcoin/bitcoin/blob/master/src/test/sighash_tests.cpp#L60\n if (inIndex >= this.outs.length) return ONE;\n // truncate outputs after\n txTmp.outs.length = inIndex + 1;\n // \"blank\" outputs before\n for (let i = 0; i < inIndex; i++) {\n txTmp.outs[i] = BLANK_OUTPUT;\n }\n // ignore sequence numbers (except at inIndex)\n txTmp.ins.forEach((input, y) => {\n if (y === inIndex) return;\n input.sequence = 0;\n });\n }\n // SIGHASH_ANYONECANPAY: ignore inputs entirely?\n if (hashType & Transaction.SIGHASH_ANYONECANPAY) {\n txTmp.ins = [txTmp.ins[inIndex]];\n txTmp.ins[0].script = ourScript;\n // SIGHASH_ALL: only ignore input scripts\n } else {\n // \"blank\" others input scripts\n txTmp.ins.forEach(input => {\n input.script = EMPTY_SCRIPT;\n });\n txTmp.ins[inIndex].script = ourScript;\n }\n // serialize and hash\n const buffer = Buffer.allocUnsafe(txTmp.byteLength(false) + 4);\n buffer.writeInt32LE(hashType, buffer.length - 4);\n txTmp.__toBuffer(buffer, 0, false);\n return bcrypto.hash256(buffer);\n }\n hashForWitnessV0(inIndex, prevOutScript, value, hashType) {\n typeforce(\n types.tuple(types.UInt32, types.Buffer, types.Satoshi, types.UInt32),\n arguments,\n );\n let tbuffer = Buffer.from([]);\n let bufferWriter;\n let hashOutputs = ZERO;\n let hashPrevouts = ZERO;\n let hashSequence = ZERO;\n if (!(hashType & Transaction.SIGHASH_ANYONECANPAY)) {\n tbuffer = Buffer.allocUnsafe(36 * this.ins.length);\n bufferWriter = new bufferutils_1.BufferWriter(tbuffer, 0);\n this.ins.forEach(txIn => {\n bufferWriter.writeSlice(txIn.hash);\n bufferWriter.writeUInt32(txIn.index);\n });\n hashPrevouts = bcrypto.hash256(tbuffer);\n }\n if (\n !(hashType & Transaction.SIGHASH_ANYONECANPAY) &&\n (hashType & 0x1f) !== Transaction.SIGHASH_SINGLE &&\n (hashType & 0x1f) !== Transaction.SIGHASH_NONE\n ) {\n tbuffer = Buffer.allocUnsafe(4 * this.ins.length);\n bufferWriter = new bufferutils_1.BufferWriter(tbuffer, 0);\n this.ins.forEach(txIn => {\n bufferWriter.writeUInt32(txIn.sequence);\n });\n hashSequence = bcrypto.hash256(tbuffer);\n }\n if (\n (hashType & 0x1f) !== Transaction.SIGHASH_SINGLE &&\n (hashType & 0x1f) !== Transaction.SIGHASH_NONE\n ) {\n const txOutsSize = this.outs.reduce((sum, output) => {\n return sum + 8 + varSliceSize(output.script);\n }, 0);\n tbuffer = Buffer.allocUnsafe(txOutsSize);\n bufferWriter = new bufferutils_1.BufferWriter(tbuffer, 0);\n this.outs.forEach(out => {\n bufferWriter.writeUInt64(out.value);\n bufferWriter.writeVarSlice(out.script);\n });\n hashOutputs = bcrypto.hash256(tbuffer);\n } else if (\n (hashType & 0x1f) === Transaction.SIGHASH_SINGLE &&\n inIndex < this.outs.length\n ) {\n const output = this.outs[inIndex];\n tbuffer = Buffer.allocUnsafe(8 + varSliceSize(output.script));\n bufferWriter = new bufferutils_1.BufferWriter(tbuffer, 0);\n bufferWriter.writeUInt64(output.value);\n bufferWriter.writeVarSlice(output.script);\n hashOutputs = bcrypto.hash256(tbuffer);\n }\n tbuffer = Buffer.allocUnsafe(156 + varSliceSize(prevOutScript));\n bufferWriter = new bufferutils_1.BufferWriter(tbuffer, 0);\n const input = this.ins[inIndex];\n bufferWriter.writeUInt32(this.version);\n bufferWriter.writeSlice(hashPrevouts);\n bufferWriter.writeSlice(hashSequence);\n bufferWriter.writeSlice(input.hash);\n bufferWriter.writeUInt32(input.index);\n bufferWriter.writeVarSlice(prevOutScript);\n bufferWriter.writeUInt64(value);\n bufferWriter.writeUInt32(input.sequence);\n bufferWriter.writeSlice(hashOutputs);\n bufferWriter.writeUInt32(this.locktime);\n bufferWriter.writeUInt32(hashType);\n return bcrypto.hash256(tbuffer);\n }\n getHash(forWitness) {\n // wtxid for coinbase is always 32 bytes of 0x00\n if (forWitness && this.isCoinbase()) return Buffer.alloc(32, 0);\n return bcrypto.hash256(this.__toBuffer(undefined, undefined, forWitness));\n }\n getId() {\n // transaction hash's are displayed in reverse order\n return bufferutils_1.reverseBuffer(this.getHash(false)).toString('hex');\n }\n toBuffer(buffer, initialOffset) {\n return this.__toBuffer(buffer, initialOffset, true);\n }\n toHex() {\n return this.toBuffer(undefined, undefined).toString('hex');\n }\n setInputScript(index, scriptSig) {\n typeforce(types.tuple(types.Number, types.Buffer), arguments);\n this.ins[index].script = scriptSig;\n }\n setWitness(index, witness) {\n typeforce(types.tuple(types.Number, [types.Buffer]), arguments);\n this.ins[index].witness = witness;\n }\n __toBuffer(buffer, initialOffset, _ALLOW_WITNESS = false) {\n if (!buffer) buffer = Buffer.allocUnsafe(this.byteLength(_ALLOW_WITNESS));\n const bufferWriter = new bufferutils_1.BufferWriter(\n buffer,\n initialOffset || 0,\n );\n bufferWriter.writeInt32(this.version);\n const hasWitnesses = _ALLOW_WITNESS && this.hasWitnesses();\n if (hasWitnesses) {\n bufferWriter.writeUInt8(Transaction.ADVANCED_TRANSACTION_MARKER);\n bufferWriter.writeUInt8(Transaction.ADVANCED_TRANSACTION_FLAG);\n }\n bufferWriter.writeVarInt(this.ins.length);\n this.ins.forEach(txIn => {\n bufferWriter.writeSlice(txIn.hash);\n bufferWriter.writeUInt32(txIn.index);\n bufferWriter.writeVarSlice(txIn.script);\n bufferWriter.writeUInt32(txIn.sequence);\n });\n bufferWriter.writeVarInt(this.outs.length);\n this.outs.forEach(txOut => {\n if (isOutput(txOut)) {\n bufferWriter.writeUInt64(txOut.value);\n } else {\n bufferWriter.writeSlice(txOut.valueBuffer);\n }\n bufferWriter.writeVarSlice(txOut.script);\n });\n if (hasWitnesses) {\n this.ins.forEach(input => {\n bufferWriter.writeVector(input.witness);\n });\n }\n bufferWriter.writeUInt32(this.locktime);\n // avoid slicing unless necessary\n if (initialOffset !== undefined)\n return buffer.slice(initialOffset, bufferWriter.offset);\n return buffer;\n }\n}\nTransaction.DEFAULT_SEQUENCE = 0xffffffff;\nTransaction.SIGHASH_ALL = 0x01;\nTransaction.SIGHASH_NONE = 0x02;\nTransaction.SIGHASH_SINGLE = 0x03;\nTransaction.SIGHASH_ANYONECANPAY = 0x80;\nTransaction.ADVANCED_TRANSACTION_MARKER = 0x00;\nTransaction.ADVANCED_TRANSACTION_FLAG = 0x01;\nexports.Transaction = Transaction;\n", "// constant-space merkle root calculation algorithm\nmodule.exports = function fastRoot (values, digestFn) {\n if (!Array.isArray(values)) throw TypeError('Expected values Array')\n if (typeof digestFn !== 'function') throw TypeError('Expected digest Function')\n\n var length = values.length\n var results = values.concat()\n\n while (length > 1) {\n var j = 0\n\n for (var i = 0; i < length; i += 2, ++j) {\n var left = results[i]\n var right = i + 1 === length ? left : results[i + 1]\n var data = Buffer.concat([left, right])\n\n results[j] = digestFn(data)\n }\n\n length = j\n }\n\n return results[0]\n}\n", "'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nconst bufferutils_1 = require('./bufferutils');\nconst bcrypto = require('./crypto');\nconst transaction_1 = require('./transaction');\nconst types = require('./types');\nconst fastMerkleRoot = require('merkle-lib/fastRoot');\nconst typeforce = require('typeforce');\nconst varuint = require('varuint-bitcoin');\nconst errorMerkleNoTxes = new TypeError(\n 'Cannot compute merkle root for zero transactions',\n);\nconst errorWitnessNotSegwit = new TypeError(\n 'Cannot compute witness commit for non-segwit block',\n);\nclass Block {\n constructor() {\n this.version = 1;\n this.prevHash = undefined;\n this.merkleRoot = undefined;\n this.timestamp = 0;\n this.witnessCommit = undefined;\n this.bits = 0;\n this.nonce = 0;\n this.transactions = undefined;\n }\n static fromBuffer(buffer) {\n if (buffer.length < 80) throw new Error('Buffer too small (< 80 bytes)');\n const bufferReader = new bufferutils_1.BufferReader(buffer);\n const block = new Block();\n block.version = bufferReader.readInt32();\n block.prevHash = bufferReader.readSlice(32);\n block.merkleRoot = bufferReader.readSlice(32);\n block.timestamp = bufferReader.readUInt32();\n block.bits = bufferReader.readUInt32();\n block.nonce = bufferReader.readUInt32();\n if (buffer.length === 80) return block;\n const readTransaction = () => {\n const tx = transaction_1.Transaction.fromBuffer(\n bufferReader.buffer.slice(bufferReader.offset),\n true,\n );\n bufferReader.offset += tx.byteLength();\n return tx;\n };\n const nTransactions = bufferReader.readVarInt();\n block.transactions = [];\n for (let i = 0; i < nTransactions; ++i) {\n const tx = readTransaction();\n block.transactions.push(tx);\n }\n const witnessCommit = block.getWitnessCommit();\n // This Block contains a witness commit\n if (witnessCommit) block.witnessCommit = witnessCommit;\n return block;\n }\n static fromHex(hex) {\n return Block.fromBuffer(Buffer.from(hex, 'hex'));\n }\n static calculateTarget(bits) {\n const exponent = ((bits & 0xff000000) >> 24) - 3;\n const mantissa = bits & 0x007fffff;\n const target = Buffer.alloc(32, 0);\n target.writeUIntBE(mantissa, 29 - exponent, 3);\n return target;\n }\n static calculateMerkleRoot(transactions, forWitness) {\n typeforce([{ getHash: types.Function }], transactions);\n if (transactions.length === 0) throw errorMerkleNoTxes;\n if (forWitness && !txesHaveWitnessCommit(transactions))\n throw errorWitnessNotSegwit;\n const hashes = transactions.map(transaction =>\n transaction.getHash(forWitness),\n );\n const rootHash = fastMerkleRoot(hashes, bcrypto.hash256);\n return forWitness\n ? bcrypto.hash256(\n Buffer.concat([rootHash, transactions[0].ins[0].witness[0]]),\n )\n : rootHash;\n }\n getWitnessCommit() {\n if (!txesHaveWitnessCommit(this.transactions)) return null;\n // The merkle root for the witness data is in an OP_RETURN output.\n // There is no rule for the index of the output, so use filter to find it.\n // The root is prepended with 0xaa21a9ed so check for 0x6a24aa21a9ed\n // If multiple commits are found, the output with highest index is assumed.\n const witnessCommits = this.transactions[0].outs\n .filter(out =>\n out.script.slice(0, 6).equals(Buffer.from('6a24aa21a9ed', 'hex')),\n )\n .map(out => out.script.slice(6, 38));\n if (witnessCommits.length === 0) return null;\n // Use the commit with the highest output (should only be one though)\n const result = witnessCommits[witnessCommits.length - 1];\n if (!(result instanceof Buffer && result.length === 32)) return null;\n return result;\n }\n hasWitnessCommit() {\n if (\n this.witnessCommit instanceof Buffer &&\n this.witnessCommit.length === 32\n )\n return true;\n if (this.getWitnessCommit() !== null) return true;\n return false;\n }\n hasWitness() {\n return anyTxHasWitness(this.transactions);\n }\n weight() {\n const base = this.byteLength(false, false);\n const total = this.byteLength(false, true);\n return base * 3 + total;\n }\n byteLength(headersOnly, allowWitness = true) {\n if (headersOnly || !this.transactions) return 80;\n return (\n 80 +\n varuint.encodingLength(this.transactions.length) +\n this.transactions.reduce((a, x) => a + x.byteLength(allowWitness), 0)\n );\n }\n getHash() {\n return bcrypto.hash256(this.toBuffer(true));\n }\n getId() {\n return bufferutils_1.reverseBuffer(this.getHash()).toString('hex');\n }\n getUTCDate() {\n const date = new Date(0); // epoch\n date.setUTCSeconds(this.timestamp);\n return date;\n }\n // TODO: buffer, offset compatibility\n toBuffer(headersOnly) {\n const buffer = Buffer.allocUnsafe(this.byteLength(headersOnly));\n const bufferWriter = new bufferutils_1.BufferWriter(buffer);\n bufferWriter.writeInt32(this.version);\n bufferWriter.writeSlice(this.prevHash);\n bufferWriter.writeSlice(this.merkleRoot);\n bufferWriter.writeUInt32(this.timestamp);\n bufferWriter.writeUInt32(this.bits);\n bufferWriter.writeUInt32(this.nonce);\n if (headersOnly || !this.transactions) return buffer;\n varuint.encode(this.transactions.length, buffer, bufferWriter.offset);\n bufferWriter.offset += varuint.encode.bytes;\n this.transactions.forEach(tx => {\n const txSize = tx.byteLength(); // TODO: extract from toBuffer?\n tx.toBuffer(buffer, bufferWriter.offset);\n bufferWriter.offset += txSize;\n });\n return buffer;\n }\n toHex(headersOnly) {\n return this.toBuffer(headersOnly).toString('hex');\n }\n checkTxRoots() {\n // If the Block has segwit transactions but no witness commit,\n // there's no way it can be valid, so fail the check.\n const hasWitnessCommit = this.hasWitnessCommit();\n if (!hasWitnessCommit && this.hasWitness()) return false;\n return (\n this.__checkMerkleRoot() &&\n (hasWitnessCommit ? this.__checkWitnessCommit() : true)\n );\n }\n checkProofOfWork() {\n const hash = bufferutils_1.reverseBuffer(this.getHash());\n const target = Block.calculateTarget(this.bits);\n return hash.compare(target) <= 0;\n }\n __checkMerkleRoot() {\n if (!this.transactions) throw errorMerkleNoTxes;\n const actualMerkleRoot = Block.calculateMerkleRoot(this.transactions);\n return this.merkleRoot.compare(actualMerkleRoot) === 0;\n }\n __checkWitnessCommit() {\n if (!this.transactions) throw errorMerkleNoTxes;\n if (!this.hasWitnessCommit()) throw errorWitnessNotSegwit;\n const actualWitnessCommit = Block.calculateMerkleRoot(\n this.transactions,\n true,\n );\n return this.witnessCommit.compare(actualWitnessCommit) === 0;\n }\n}\nexports.Block = Block;\nfunction txesHaveWitnessCommit(transactions) {\n return (\n transactions instanceof Array &&\n transactions[0] &&\n transactions[0].ins &&\n transactions[0].ins instanceof Array &&\n transactions[0].ins[0] &&\n transactions[0].ins[0].witness &&\n transactions[0].ins[0].witness instanceof Array &&\n transactions[0].ins[0].witness.length > 0\n );\n}\nfunction anyTxHasWitness(transactions) {\n return (\n transactions instanceof Array &&\n transactions.some(\n tx =>\n typeof tx === 'object' &&\n tx.ins instanceof Array &&\n tx.ins.some(\n input =>\n typeof input === 'object' &&\n input.witness instanceof Array &&\n input.witness.length > 0,\n ),\n )\n );\n}\n", "'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nvar GlobalTypes;\n(function(GlobalTypes) {\n GlobalTypes[(GlobalTypes['UNSIGNED_TX'] = 0)] = 'UNSIGNED_TX';\n GlobalTypes[(GlobalTypes['GLOBAL_XPUB'] = 1)] = 'GLOBAL_XPUB';\n})((GlobalTypes = exports.GlobalTypes || (exports.GlobalTypes = {})));\nexports.GLOBAL_TYPE_NAMES = ['unsignedTx', 'globalXpub'];\nvar InputTypes;\n(function(InputTypes) {\n InputTypes[(InputTypes['NON_WITNESS_UTXO'] = 0)] = 'NON_WITNESS_UTXO';\n InputTypes[(InputTypes['WITNESS_UTXO'] = 1)] = 'WITNESS_UTXO';\n InputTypes[(InputTypes['PARTIAL_SIG'] = 2)] = 'PARTIAL_SIG';\n InputTypes[(InputTypes['SIGHASH_TYPE'] = 3)] = 'SIGHASH_TYPE';\n InputTypes[(InputTypes['REDEEM_SCRIPT'] = 4)] = 'REDEEM_SCRIPT';\n InputTypes[(InputTypes['WITNESS_SCRIPT'] = 5)] = 'WITNESS_SCRIPT';\n InputTypes[(InputTypes['BIP32_DERIVATION'] = 6)] = 'BIP32_DERIVATION';\n InputTypes[(InputTypes['FINAL_SCRIPTSIG'] = 7)] = 'FINAL_SCRIPTSIG';\n InputTypes[(InputTypes['FINAL_SCRIPTWITNESS'] = 8)] = 'FINAL_SCRIPTWITNESS';\n InputTypes[(InputTypes['POR_COMMITMENT'] = 9)] = 'POR_COMMITMENT';\n InputTypes[(InputTypes['TAP_KEY_SIG'] = 19)] = 'TAP_KEY_SIG';\n InputTypes[(InputTypes['TAP_SCRIPT_SIG'] = 20)] = 'TAP_SCRIPT_SIG';\n InputTypes[(InputTypes['TAP_LEAF_SCRIPT'] = 21)] = 'TAP_LEAF_SCRIPT';\n InputTypes[(InputTypes['TAP_BIP32_DERIVATION'] = 22)] =\n 'TAP_BIP32_DERIVATION';\n InputTypes[(InputTypes['TAP_INTERNAL_KEY'] = 23)] = 'TAP_INTERNAL_KEY';\n InputTypes[(InputTypes['TAP_MERKLE_ROOT'] = 24)] = 'TAP_MERKLE_ROOT';\n})((InputTypes = exports.InputTypes || (exports.InputTypes = {})));\nexports.INPUT_TYPE_NAMES = [\n 'nonWitnessUtxo',\n 'witnessUtxo',\n 'partialSig',\n 'sighashType',\n 'redeemScript',\n 'witnessScript',\n 'bip32Derivation',\n 'finalScriptSig',\n 'finalScriptWitness',\n 'porCommitment',\n 'tapKeySig',\n 'tapScriptSig',\n 'tapLeafScript',\n 'tapBip32Derivation',\n 'tapInternalKey',\n 'tapMerkleRoot',\n];\nvar OutputTypes;\n(function(OutputTypes) {\n OutputTypes[(OutputTypes['REDEEM_SCRIPT'] = 0)] = 'REDEEM_SCRIPT';\n OutputTypes[(OutputTypes['WITNESS_SCRIPT'] = 1)] = 'WITNESS_SCRIPT';\n OutputTypes[(OutputTypes['BIP32_DERIVATION'] = 2)] = 'BIP32_DERIVATION';\n OutputTypes[(OutputTypes['TAP_INTERNAL_KEY'] = 5)] = 'TAP_INTERNAL_KEY';\n OutputTypes[(OutputTypes['TAP_TREE'] = 6)] = 'TAP_TREE';\n OutputTypes[(OutputTypes['TAP_BIP32_DERIVATION'] = 7)] =\n 'TAP_BIP32_DERIVATION';\n})((OutputTypes = exports.OutputTypes || (exports.OutputTypes = {})));\nexports.OUTPUT_TYPE_NAMES = [\n 'redeemScript',\n 'witnessScript',\n 'bip32Derivation',\n 'tapInternalKey',\n 'tapTree',\n 'tapBip32Derivation',\n];\n", "'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nconst typeFields_1 = require('../../typeFields');\nconst range = n => [...Array(n).keys()];\nfunction decode(keyVal) {\n if (keyVal.key[0] !== typeFields_1.GlobalTypes.GLOBAL_XPUB) {\n throw new Error(\n 'Decode Error: could not decode globalXpub with key 0x' +\n keyVal.key.toString('hex'),\n );\n }\n if (keyVal.key.length !== 79 || ![2, 3].includes(keyVal.key[46])) {\n throw new Error(\n 'Decode Error: globalXpub has invalid extended pubkey in key 0x' +\n keyVal.key.toString('hex'),\n );\n }\n if ((keyVal.value.length / 4) % 1 !== 0) {\n throw new Error(\n 'Decode Error: Global GLOBAL_XPUB value length should be multiple of 4',\n );\n }\n const extendedPubkey = keyVal.key.slice(1);\n const data = {\n masterFingerprint: keyVal.value.slice(0, 4),\n extendedPubkey,\n path: 'm',\n };\n for (const i of range(keyVal.value.length / 4 - 1)) {\n const val = keyVal.value.readUInt32LE(i * 4 + 4);\n const isHard = !!(val & 0x80000000);\n const idx = val & 0x7fffffff;\n data.path += '/' + idx.toString(10) + (isHard ? \"'\" : '');\n }\n return data;\n}\nexports.decode = decode;\nfunction encode(data) {\n const head = Buffer.from([typeFields_1.GlobalTypes.GLOBAL_XPUB]);\n const key = Buffer.concat([head, data.extendedPubkey]);\n const splitPath = data.path.split('/');\n const value = Buffer.allocUnsafe(splitPath.length * 4);\n data.masterFingerprint.copy(value, 0);\n let offset = 4;\n splitPath.slice(1).forEach(level => {\n const isHard = level.slice(-1) === \"'\";\n let num = 0x7fffffff & parseInt(isHard ? level.slice(0, -1) : level, 10);\n if (isHard) num += 0x80000000;\n value.writeUInt32LE(num, offset);\n offset += 4;\n });\n return {\n key,\n value,\n };\n}\nexports.encode = encode;\nexports.expected =\n '{ masterFingerprint: Buffer; extendedPubkey: Buffer; path: string; }';\nfunction check(data) {\n const epk = data.extendedPubkey;\n const mfp = data.masterFingerprint;\n const p = data.path;\n return (\n Buffer.isBuffer(epk) &&\n epk.length === 78 &&\n [2, 3].indexOf(epk[45]) > -1 &&\n Buffer.isBuffer(mfp) &&\n mfp.length === 4 &&\n typeof p === 'string' &&\n !!p.match(/^m(\\/\\d+'?)*$/)\n );\n}\nexports.check = check;\nfunction canAddToArray(array, item, dupeSet) {\n const dupeString = item.extendedPubkey.toString('hex');\n if (dupeSet.has(dupeString)) return false;\n dupeSet.add(dupeString);\n return (\n array.filter(v => v.extendedPubkey.equals(item.extendedPubkey)).length === 0\n );\n}\nexports.canAddToArray = canAddToArray;\n", "'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nconst typeFields_1 = require('../../typeFields');\nfunction encode(data) {\n return {\n key: Buffer.from([typeFields_1.GlobalTypes.UNSIGNED_TX]),\n value: data.toBuffer(),\n };\n}\nexports.encode = encode;\n", "'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nconst typeFields_1 = require('../../typeFields');\nfunction decode(keyVal) {\n if (keyVal.key[0] !== typeFields_1.InputTypes.FINAL_SCRIPTSIG) {\n throw new Error(\n 'Decode Error: could not decode finalScriptSig with key 0x' +\n keyVal.key.toString('hex'),\n );\n }\n return keyVal.value;\n}\nexports.decode = decode;\nfunction encode(data) {\n const key = Buffer.from([typeFields_1.InputTypes.FINAL_SCRIPTSIG]);\n return {\n key,\n value: data,\n };\n}\nexports.encode = encode;\nexports.expected = 'Buffer';\nfunction check(data) {\n return Buffer.isBuffer(data);\n}\nexports.check = check;\nfunction canAdd(currentData, newData) {\n return !!currentData && !!newData && currentData.finalScriptSig === undefined;\n}\nexports.canAdd = canAdd;\n", "'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nconst typeFields_1 = require('../../typeFields');\nfunction decode(keyVal) {\n if (keyVal.key[0] !== typeFields_1.InputTypes.FINAL_SCRIPTWITNESS) {\n throw new Error(\n 'Decode Error: could not decode finalScriptWitness with key 0x' +\n keyVal.key.toString('hex'),\n );\n }\n return keyVal.value;\n}\nexports.decode = decode;\nfunction encode(data) {\n const key = Buffer.from([typeFields_1.InputTypes.FINAL_SCRIPTWITNESS]);\n return {\n key,\n value: data,\n };\n}\nexports.encode = encode;\nexports.expected = 'Buffer';\nfunction check(data) {\n return Buffer.isBuffer(data);\n}\nexports.check = check;\nfunction canAdd(currentData, newData) {\n return (\n !!currentData && !!newData && currentData.finalScriptWitness === undefined\n );\n}\nexports.canAdd = canAdd;\n", "'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nconst typeFields_1 = require('../../typeFields');\nfunction decode(keyVal) {\n if (keyVal.key[0] !== typeFields_1.InputTypes.NON_WITNESS_UTXO) {\n throw new Error(\n 'Decode Error: could not decode nonWitnessUtxo with key 0x' +\n keyVal.key.toString('hex'),\n );\n }\n return keyVal.value;\n}\nexports.decode = decode;\nfunction encode(data) {\n return {\n key: Buffer.from([typeFields_1.InputTypes.NON_WITNESS_UTXO]),\n value: data,\n };\n}\nexports.encode = encode;\nexports.expected = 'Buffer';\nfunction check(data) {\n return Buffer.isBuffer(data);\n}\nexports.check = check;\nfunction canAdd(currentData, newData) {\n return !!currentData && !!newData && currentData.nonWitnessUtxo === undefined;\n}\nexports.canAdd = canAdd;\n", "'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nconst typeFields_1 = require('../../typeFields');\nfunction decode(keyVal) {\n if (keyVal.key[0] !== typeFields_1.InputTypes.PARTIAL_SIG) {\n throw new Error(\n 'Decode Error: could not decode partialSig with key 0x' +\n keyVal.key.toString('hex'),\n );\n }\n if (\n !(keyVal.key.length === 34 || keyVal.key.length === 66) ||\n ![2, 3, 4].includes(keyVal.key[1])\n ) {\n throw new Error(\n 'Decode Error: partialSig has invalid pubkey in key 0x' +\n keyVal.key.toString('hex'),\n );\n }\n const pubkey = keyVal.key.slice(1);\n return {\n pubkey,\n signature: keyVal.value,\n };\n}\nexports.decode = decode;\nfunction encode(pSig) {\n const head = Buffer.from([typeFields_1.InputTypes.PARTIAL_SIG]);\n return {\n key: Buffer.concat([head, pSig.pubkey]),\n value: pSig.signature,\n };\n}\nexports.encode = encode;\nexports.expected = '{ pubkey: Buffer; signature: Buffer; }';\nfunction check(data) {\n return (\n Buffer.isBuffer(data.pubkey) &&\n Buffer.isBuffer(data.signature) &&\n [33, 65].includes(data.pubkey.length) &&\n [2, 3, 4].includes(data.pubkey[0]) &&\n isDerSigWithSighash(data.signature)\n );\n}\nexports.check = check;\nfunction isDerSigWithSighash(buf) {\n if (!Buffer.isBuffer(buf) || buf.length < 9) return false;\n if (buf[0] !== 0x30) return false;\n if (buf.length !== buf[1] + 3) return false;\n if (buf[2] !== 0x02) return false;\n const rLen = buf[3];\n if (rLen > 33 || rLen < 1) return false;\n if (buf[3 + rLen + 1] !== 0x02) return false;\n const sLen = buf[3 + rLen + 2];\n if (sLen > 33 || sLen < 1) return false;\n if (buf.length !== 3 + rLen + 2 + sLen + 2) return false;\n return true;\n}\nfunction canAddToArray(array, item, dupeSet) {\n const dupeString = item.pubkey.toString('hex');\n if (dupeSet.has(dupeString)) return false;\n dupeSet.add(dupeString);\n return array.filter(v => v.pubkey.equals(item.pubkey)).length === 0;\n}\nexports.canAddToArray = canAddToArray;\n", "'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nconst typeFields_1 = require('../../typeFields');\nfunction decode(keyVal) {\n if (keyVal.key[0] !== typeFields_1.InputTypes.POR_COMMITMENT) {\n throw new Error(\n 'Decode Error: could not decode porCommitment with key 0x' +\n keyVal.key.toString('hex'),\n );\n }\n return keyVal.value.toString('utf8');\n}\nexports.decode = decode;\nfunction encode(data) {\n const key = Buffer.from([typeFields_1.InputTypes.POR_COMMITMENT]);\n return {\n key,\n value: Buffer.from(data, 'utf8'),\n };\n}\nexports.encode = encode;\nexports.expected = 'string';\nfunction check(data) {\n return typeof data === 'string';\n}\nexports.check = check;\nfunction canAdd(currentData, newData) {\n return !!currentData && !!newData && currentData.porCommitment === undefined;\n}\nexports.canAdd = canAdd;\n", "'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nconst typeFields_1 = require('../../typeFields');\nfunction decode(keyVal) {\n if (keyVal.key[0] !== typeFields_1.InputTypes.SIGHASH_TYPE) {\n throw new Error(\n 'Decode Error: could not decode sighashType with key 0x' +\n keyVal.key.toString('hex'),\n );\n }\n return keyVal.value.readUInt32LE(0);\n}\nexports.decode = decode;\nfunction encode(data) {\n const key = Buffer.from([typeFields_1.InputTypes.SIGHASH_TYPE]);\n const value = Buffer.allocUnsafe(4);\n value.writeUInt32LE(data, 0);\n return {\n key,\n value,\n };\n}\nexports.encode = encode;\nexports.expected = 'number';\nfunction check(data) {\n return typeof data === 'number';\n}\nexports.check = check;\nfunction canAdd(currentData, newData) {\n return !!currentData && !!newData && currentData.sighashType === undefined;\n}\nexports.canAdd = canAdd;\n", "'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nconst typeFields_1 = require('../../typeFields');\nfunction decode(keyVal) {\n if (\n keyVal.key[0] !== typeFields_1.InputTypes.TAP_KEY_SIG ||\n keyVal.key.length !== 1\n ) {\n throw new Error(\n 'Decode Error: could not decode tapKeySig with key 0x' +\n keyVal.key.toString('hex'),\n );\n }\n if (!check(keyVal.value)) {\n throw new Error(\n 'Decode Error: tapKeySig not a valid 64-65-byte BIP340 signature',\n );\n }\n return keyVal.value;\n}\nexports.decode = decode;\nfunction encode(value) {\n const key = Buffer.from([typeFields_1.InputTypes.TAP_KEY_SIG]);\n return { key, value };\n}\nexports.encode = encode;\nexports.expected = 'Buffer';\nfunction check(data) {\n return Buffer.isBuffer(data) && (data.length === 64 || data.length === 65);\n}\nexports.check = check;\nfunction canAdd(currentData, newData) {\n return !!currentData && !!newData && currentData.tapKeySig === undefined;\n}\nexports.canAdd = canAdd;\n", "'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nconst typeFields_1 = require('../../typeFields');\nfunction decode(keyVal) {\n if (keyVal.key[0] !== typeFields_1.InputTypes.TAP_LEAF_SCRIPT) {\n throw new Error(\n 'Decode Error: could not decode tapLeafScript with key 0x' +\n keyVal.key.toString('hex'),\n );\n }\n if ((keyVal.key.length - 2) % 32 !== 0) {\n throw new Error(\n 'Decode Error: tapLeafScript has invalid control block in key 0x' +\n keyVal.key.toString('hex'),\n );\n }\n const leafVersion = keyVal.value[keyVal.value.length - 1];\n if ((keyVal.key[1] & 0xfe) !== leafVersion) {\n throw new Error(\n 'Decode Error: tapLeafScript bad leaf version in key 0x' +\n keyVal.key.toString('hex'),\n );\n }\n const script = keyVal.value.slice(0, -1);\n const controlBlock = keyVal.key.slice(1);\n return { controlBlock, script, leafVersion };\n}\nexports.decode = decode;\nfunction encode(tScript) {\n const head = Buffer.from([typeFields_1.InputTypes.TAP_LEAF_SCRIPT]);\n const verBuf = Buffer.from([tScript.leafVersion]);\n return {\n key: Buffer.concat([head, tScript.controlBlock]),\n value: Buffer.concat([tScript.script, verBuf]),\n };\n}\nexports.encode = encode;\nexports.expected =\n '{ controlBlock: Buffer; leafVersion: number, script: Buffer; }';\nfunction check(data) {\n return (\n Buffer.isBuffer(data.controlBlock) &&\n (data.controlBlock.length - 1) % 32 === 0 &&\n (data.controlBlock[0] & 0xfe) === data.leafVersion &&\n Buffer.isBuffer(data.script)\n );\n}\nexports.check = check;\nfunction canAddToArray(array, item, dupeSet) {\n const dupeString = item.controlBlock.toString('hex');\n if (dupeSet.has(dupeString)) return false;\n dupeSet.add(dupeString);\n return (\n array.filter(v => v.controlBlock.equals(item.controlBlock)).length === 0\n );\n}\nexports.canAddToArray = canAddToArray;\n", "'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nconst typeFields_1 = require('../../typeFields');\nfunction decode(keyVal) {\n if (\n keyVal.key[0] !== typeFields_1.InputTypes.TAP_MERKLE_ROOT ||\n keyVal.key.length !== 1\n ) {\n throw new Error(\n 'Decode Error: could not decode tapMerkleRoot with key 0x' +\n keyVal.key.toString('hex'),\n );\n }\n if (!check(keyVal.value)) {\n throw new Error('Decode Error: tapMerkleRoot not a 32-byte hash');\n }\n return keyVal.value;\n}\nexports.decode = decode;\nfunction encode(value) {\n const key = Buffer.from([typeFields_1.InputTypes.TAP_MERKLE_ROOT]);\n return { key, value };\n}\nexports.encode = encode;\nexports.expected = 'Buffer';\nfunction check(data) {\n return Buffer.isBuffer(data) && data.length === 32;\n}\nexports.check = check;\nfunction canAdd(currentData, newData) {\n return !!currentData && !!newData && currentData.tapMerkleRoot === undefined;\n}\nexports.canAdd = canAdd;\n", "'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nconst typeFields_1 = require('../../typeFields');\nfunction decode(keyVal) {\n if (keyVal.key[0] !== typeFields_1.InputTypes.TAP_SCRIPT_SIG) {\n throw new Error(\n 'Decode Error: could not decode tapScriptSig with key 0x' +\n keyVal.key.toString('hex'),\n );\n }\n if (keyVal.key.length !== 65) {\n throw new Error(\n 'Decode Error: tapScriptSig has invalid key 0x' +\n keyVal.key.toString('hex'),\n );\n }\n if (keyVal.value.length !== 64 && keyVal.value.length !== 65) {\n throw new Error(\n 'Decode Error: tapScriptSig has invalid signature in key 0x' +\n keyVal.key.toString('hex'),\n );\n }\n const pubkey = keyVal.key.slice(1, 33);\n const leafHash = keyVal.key.slice(33);\n return {\n pubkey,\n leafHash,\n signature: keyVal.value,\n };\n}\nexports.decode = decode;\nfunction encode(tSig) {\n const head = Buffer.from([typeFields_1.InputTypes.TAP_SCRIPT_SIG]);\n return {\n key: Buffer.concat([head, tSig.pubkey, tSig.leafHash]),\n value: tSig.signature,\n };\n}\nexports.encode = encode;\nexports.expected = '{ pubkey: Buffer; leafHash: Buffer; signature: Buffer; }';\nfunction check(data) {\n return (\n Buffer.isBuffer(data.pubkey) &&\n Buffer.isBuffer(data.leafHash) &&\n Buffer.isBuffer(data.signature) &&\n data.pubkey.length === 32 &&\n data.leafHash.length === 32 &&\n (data.signature.length === 64 || data.signature.length === 65)\n );\n}\nexports.check = check;\nfunction canAddToArray(array, item, dupeSet) {\n const dupeString =\n item.pubkey.toString('hex') + item.leafHash.toString('hex');\n if (dupeSet.has(dupeString)) return false;\n dupeSet.add(dupeString);\n return (\n array.filter(\n v => v.pubkey.equals(item.pubkey) && v.leafHash.equals(item.leafHash),\n ).length === 0\n );\n}\nexports.canAddToArray = canAddToArray;\n", "'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\n// Number.MAX_SAFE_INTEGER\nconst MAX_SAFE_INTEGER = 9007199254740991;\nfunction checkUInt53(n) {\n if (n < 0 || n > MAX_SAFE_INTEGER || n % 1 !== 0)\n throw new RangeError('value out of range');\n}\nfunction encode(_number, buffer, offset) {\n checkUInt53(_number);\n if (!buffer) buffer = Buffer.allocUnsafe(encodingLength(_number));\n if (!Buffer.isBuffer(buffer))\n throw new TypeError('buffer must be a Buffer instance');\n if (!offset) offset = 0;\n // 8 bit\n if (_number < 0xfd) {\n buffer.writeUInt8(_number, offset);\n Object.assign(encode, { bytes: 1 });\n // 16 bit\n } else if (_number <= 0xffff) {\n buffer.writeUInt8(0xfd, offset);\n buffer.writeUInt16LE(_number, offset + 1);\n Object.assign(encode, { bytes: 3 });\n // 32 bit\n } else if (_number <= 0xffffffff) {\n buffer.writeUInt8(0xfe, offset);\n buffer.writeUInt32LE(_number, offset + 1);\n Object.assign(encode, { bytes: 5 });\n // 64 bit\n } else {\n buffer.writeUInt8(0xff, offset);\n buffer.writeUInt32LE(_number >>> 0, offset + 1);\n buffer.writeUInt32LE((_number / 0x100000000) | 0, offset + 5);\n Object.assign(encode, { bytes: 9 });\n }\n return buffer;\n}\nexports.encode = encode;\nfunction decode(buffer, offset) {\n if (!Buffer.isBuffer(buffer))\n throw new TypeError('buffer must be a Buffer instance');\n if (!offset) offset = 0;\n const first = buffer.readUInt8(offset);\n // 8 bit\n if (first < 0xfd) {\n Object.assign(decode, { bytes: 1 });\n return first;\n // 16 bit\n } else if (first === 0xfd) {\n Object.assign(decode, { bytes: 3 });\n return buffer.readUInt16LE(offset + 1);\n // 32 bit\n } else if (first === 0xfe) {\n Object.assign(decode, { bytes: 5 });\n return buffer.readUInt32LE(offset + 1);\n // 64 bit\n } else {\n Object.assign(decode, { bytes: 9 });\n const lo = buffer.readUInt32LE(offset + 1);\n const hi = buffer.readUInt32LE(offset + 5);\n const _number = hi * 0x0100000000 + lo;\n checkUInt53(_number);\n return _number;\n }\n}\nexports.decode = decode;\nfunction encodingLength(_number) {\n checkUInt53(_number);\n return _number < 0xfd\n ? 1\n : _number <= 0xffff\n ? 3\n : _number <= 0xffffffff\n ? 5\n : 9;\n}\nexports.encodingLength = encodingLength;\n", "'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nconst varuint = require('./varint');\nexports.range = n => [...Array(n).keys()];\nfunction reverseBuffer(buffer) {\n if (buffer.length < 1) return buffer;\n let j = buffer.length - 1;\n let tmp = 0;\n for (let i = 0; i < buffer.length / 2; i++) {\n tmp = buffer[i];\n buffer[i] = buffer[j];\n buffer[j] = tmp;\n j--;\n }\n return buffer;\n}\nexports.reverseBuffer = reverseBuffer;\nfunction keyValsToBuffer(keyVals) {\n const buffers = keyVals.map(keyValToBuffer);\n buffers.push(Buffer.from([0]));\n return Buffer.concat(buffers);\n}\nexports.keyValsToBuffer = keyValsToBuffer;\nfunction keyValToBuffer(keyVal) {\n const keyLen = keyVal.key.length;\n const valLen = keyVal.value.length;\n const keyVarIntLen = varuint.encodingLength(keyLen);\n const valVarIntLen = varuint.encodingLength(valLen);\n const buffer = Buffer.allocUnsafe(\n keyVarIntLen + keyLen + valVarIntLen + valLen,\n );\n varuint.encode(keyLen, buffer, 0);\n keyVal.key.copy(buffer, keyVarIntLen);\n varuint.encode(valLen, buffer, keyVarIntLen + keyLen);\n keyVal.value.copy(buffer, keyVarIntLen + keyLen + valVarIntLen);\n return buffer;\n}\nexports.keyValToBuffer = keyValToBuffer;\n// https://github.com/feross/buffer/blob/master/index.js#L1127\nfunction verifuint(value, max) {\n if (typeof value !== 'number')\n throw new Error('cannot write a non-number as a number');\n if (value < 0)\n throw new Error('specified a negative value for writing an unsigned value');\n if (value > max) throw new Error('RangeError: value out of range');\n if (Math.floor(value) !== value)\n throw new Error('value has a fractional component');\n}\nfunction readUInt64LE(buffer, offset) {\n const a = buffer.readUInt32LE(offset);\n let b = buffer.readUInt32LE(offset + 4);\n b *= 0x100000000;\n verifuint(b + a, 0x001fffffffffffff);\n return b + a;\n}\nexports.readUInt64LE = readUInt64LE;\nfunction writeUInt64LE(buffer, value, offset) {\n verifuint(value, 0x001fffffffffffff);\n buffer.writeInt32LE(value & -1, offset);\n buffer.writeUInt32LE(Math.floor(value / 0x100000000), offset + 4);\n return offset + 8;\n}\nexports.writeUInt64LE = writeUInt64LE;\n", "'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nconst typeFields_1 = require('../../typeFields');\nconst tools_1 = require('../tools');\nconst varuint = require('../varint');\nfunction decode(keyVal) {\n if (keyVal.key[0] !== typeFields_1.InputTypes.WITNESS_UTXO) {\n throw new Error(\n 'Decode Error: could not decode witnessUtxo with key 0x' +\n keyVal.key.toString('hex'),\n );\n }\n const value = tools_1.readUInt64LE(keyVal.value, 0);\n let _offset = 8;\n const scriptLen = varuint.decode(keyVal.value, _offset);\n _offset += varuint.encodingLength(scriptLen);\n const script = keyVal.value.slice(_offset);\n if (script.length !== scriptLen) {\n throw new Error('Decode Error: WITNESS_UTXO script is not proper length');\n }\n return {\n script,\n value,\n };\n}\nexports.decode = decode;\nfunction encode(data) {\n const { script, value } = data;\n const varintLen = varuint.encodingLength(script.length);\n const result = Buffer.allocUnsafe(8 + varintLen + script.length);\n tools_1.writeUInt64LE(result, value, 0);\n varuint.encode(script.length, result, 8);\n script.copy(result, 8 + varintLen);\n return {\n key: Buffer.from([typeFields_1.InputTypes.WITNESS_UTXO]),\n value: result,\n };\n}\nexports.encode = encode;\nexports.expected = '{ script: Buffer; value: number; }';\nfunction check(data) {\n return Buffer.isBuffer(data.script) && typeof data.value === 'number';\n}\nexports.check = check;\nfunction canAdd(currentData, newData) {\n return !!currentData && !!newData && currentData.witnessUtxo === undefined;\n}\nexports.canAdd = canAdd;\n", "'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nconst typeFields_1 = require('../../typeFields');\nconst varuint = require('../varint');\nfunction decode(keyVal) {\n if (\n keyVal.key[0] !== typeFields_1.OutputTypes.TAP_TREE ||\n keyVal.key.length !== 1\n ) {\n throw new Error(\n 'Decode Error: could not decode tapTree with key 0x' +\n keyVal.key.toString('hex'),\n );\n }\n let _offset = 0;\n const data = [];\n while (_offset < keyVal.value.length) {\n const depth = keyVal.value[_offset++];\n const leafVersion = keyVal.value[_offset++];\n const scriptLen = varuint.decode(keyVal.value, _offset);\n _offset += varuint.encodingLength(scriptLen);\n data.push({\n depth,\n leafVersion,\n script: keyVal.value.slice(_offset, _offset + scriptLen),\n });\n _offset += scriptLen;\n }\n return { leaves: data };\n}\nexports.decode = decode;\nfunction encode(tree) {\n const key = Buffer.from([typeFields_1.OutputTypes.TAP_TREE]);\n const bufs = [].concat(\n ...tree.leaves.map(tapLeaf => [\n Buffer.of(tapLeaf.depth, tapLeaf.leafVersion),\n varuint.encode(tapLeaf.script.length),\n tapLeaf.script,\n ]),\n );\n return {\n key,\n value: Buffer.concat(bufs),\n };\n}\nexports.encode = encode;\nexports.expected =\n '{ leaves: [{ depth: number; leafVersion: number, script: Buffer; }] }';\nfunction check(data) {\n return (\n Array.isArray(data.leaves) &&\n data.leaves.every(\n tapLeaf =>\n tapLeaf.depth >= 0 &&\n tapLeaf.depth <= 128 &&\n (tapLeaf.leafVersion & 0xfe) === tapLeaf.leafVersion &&\n Buffer.isBuffer(tapLeaf.script),\n )\n );\n}\nexports.check = check;\nfunction canAdd(currentData, newData) {\n return !!currentData && !!newData && currentData.tapTree === undefined;\n}\nexports.canAdd = canAdd;\n", "'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nconst range = n => [...Array(n).keys()];\nconst isValidDERKey = pubkey =>\n (pubkey.length === 33 && [2, 3].includes(pubkey[0])) ||\n (pubkey.length === 65 && 4 === pubkey[0]);\nfunction makeConverter(TYPE_BYTE, isValidPubkey = isValidDERKey) {\n function decode(keyVal) {\n if (keyVal.key[0] !== TYPE_BYTE) {\n throw new Error(\n 'Decode Error: could not decode bip32Derivation with key 0x' +\n keyVal.key.toString('hex'),\n );\n }\n const pubkey = keyVal.key.slice(1);\n if (!isValidPubkey(pubkey)) {\n throw new Error(\n 'Decode Error: bip32Derivation has invalid pubkey in key 0x' +\n keyVal.key.toString('hex'),\n );\n }\n if ((keyVal.value.length / 4) % 1 !== 0) {\n throw new Error(\n 'Decode Error: Input BIP32_DERIVATION value length should be multiple of 4',\n );\n }\n const data = {\n masterFingerprint: keyVal.value.slice(0, 4),\n pubkey,\n path: 'm',\n };\n for (const i of range(keyVal.value.length / 4 - 1)) {\n const val = keyVal.value.readUInt32LE(i * 4 + 4);\n const isHard = !!(val & 0x80000000);\n const idx = val & 0x7fffffff;\n data.path += '/' + idx.toString(10) + (isHard ? \"'\" : '');\n }\n return data;\n }\n function encode(data) {\n const head = Buffer.from([TYPE_BYTE]);\n const key = Buffer.concat([head, data.pubkey]);\n const splitPath = data.path.split('/');\n const value = Buffer.allocUnsafe(splitPath.length * 4);\n data.masterFingerprint.copy(value, 0);\n let offset = 4;\n splitPath.slice(1).forEach(level => {\n const isHard = level.slice(-1) === \"'\";\n let num = 0x7fffffff & parseInt(isHard ? level.slice(0, -1) : level, 10);\n if (isHard) num += 0x80000000;\n value.writeUInt32LE(num, offset);\n offset += 4;\n });\n return {\n key,\n value,\n };\n }\n const expected =\n '{ masterFingerprint: Buffer; pubkey: Buffer; path: string; }';\n function check(data) {\n return (\n Buffer.isBuffer(data.pubkey) &&\n Buffer.isBuffer(data.masterFingerprint) &&\n typeof data.path === 'string' &&\n isValidPubkey(data.pubkey) &&\n data.masterFingerprint.length === 4\n );\n }\n function canAddToArray(array, item, dupeSet) {\n const dupeString = item.pubkey.toString('hex');\n if (dupeSet.has(dupeString)) return false;\n dupeSet.add(dupeString);\n return array.filter(v => v.pubkey.equals(item.pubkey)).length === 0;\n }\n return {\n decode,\n encode,\n check,\n expected,\n canAddToArray,\n };\n}\nexports.makeConverter = makeConverter;\n", "'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nfunction makeChecker(pubkeyTypes) {\n return checkPubkey;\n function checkPubkey(keyVal) {\n let pubkey;\n if (pubkeyTypes.includes(keyVal.key[0])) {\n pubkey = keyVal.key.slice(1);\n if (\n !(pubkey.length === 33 || pubkey.length === 65) ||\n ![2, 3, 4].includes(pubkey[0])\n ) {\n throw new Error(\n 'Format Error: invalid pubkey in key 0x' + keyVal.key.toString('hex'),\n );\n }\n }\n return pubkey;\n }\n}\nexports.makeChecker = makeChecker;\n", "'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nfunction makeConverter(TYPE_BYTE) {\n function decode(keyVal) {\n if (keyVal.key[0] !== TYPE_BYTE) {\n throw new Error(\n 'Decode Error: could not decode redeemScript with key 0x' +\n keyVal.key.toString('hex'),\n );\n }\n return keyVal.value;\n }\n function encode(data) {\n const key = Buffer.from([TYPE_BYTE]);\n return {\n key,\n value: data,\n };\n }\n const expected = 'Buffer';\n function check(data) {\n return Buffer.isBuffer(data);\n }\n function canAdd(currentData, newData) {\n return !!currentData && !!newData && currentData.redeemScript === undefined;\n }\n return {\n decode,\n encode,\n check,\n expected,\n canAdd,\n };\n}\nexports.makeConverter = makeConverter;\n", "'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nconst varuint = require('../varint');\nconst bip32Derivation = require('./bip32Derivation');\nconst isValidBIP340Key = pubkey => pubkey.length === 32;\nfunction makeConverter(TYPE_BYTE) {\n const parent = bip32Derivation.makeConverter(TYPE_BYTE, isValidBIP340Key);\n function decode(keyVal) {\n const nHashes = varuint.decode(keyVal.value);\n const nHashesLen = varuint.encodingLength(nHashes);\n const base = parent.decode({\n key: keyVal.key,\n value: keyVal.value.slice(nHashesLen + nHashes * 32),\n });\n const leafHashes = new Array(nHashes);\n for (let i = 0, _offset = nHashesLen; i < nHashes; i++, _offset += 32) {\n leafHashes[i] = keyVal.value.slice(_offset, _offset + 32);\n }\n return Object.assign({}, base, { leafHashes });\n }\n function encode(data) {\n const base = parent.encode(data);\n const nHashesLen = varuint.encodingLength(data.leafHashes.length);\n const nHashesBuf = Buffer.allocUnsafe(nHashesLen);\n varuint.encode(data.leafHashes.length, nHashesBuf);\n const value = Buffer.concat([nHashesBuf, ...data.leafHashes, base.value]);\n return Object.assign({}, base, { value });\n }\n const expected =\n '{ ' +\n 'masterFingerprint: Buffer; ' +\n 'pubkey: Buffer; ' +\n 'path: string; ' +\n 'leafHashes: Buffer[]; ' +\n '}';\n function check(data) {\n return (\n Array.isArray(data.leafHashes) &&\n data.leafHashes.every(\n leafHash => Buffer.isBuffer(leafHash) && leafHash.length === 32,\n ) &&\n parent.check(data)\n );\n }\n return {\n decode,\n encode,\n check,\n expected,\n canAddToArray: parent.canAddToArray,\n };\n}\nexports.makeConverter = makeConverter;\n", "'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nfunction makeConverter(TYPE_BYTE) {\n function decode(keyVal) {\n if (keyVal.key[0] !== TYPE_BYTE || keyVal.key.length !== 1) {\n throw new Error(\n 'Decode Error: could not decode tapInternalKey with key 0x' +\n keyVal.key.toString('hex'),\n );\n }\n if (keyVal.value.length !== 32) {\n throw new Error(\n 'Decode Error: tapInternalKey not a 32-byte x-only pubkey',\n );\n }\n return keyVal.value;\n }\n function encode(value) {\n const key = Buffer.from([TYPE_BYTE]);\n return { key, value };\n }\n const expected = 'Buffer';\n function check(data) {\n return Buffer.isBuffer(data) && data.length === 32;\n }\n function canAdd(currentData, newData) {\n return (\n !!currentData && !!newData && currentData.tapInternalKey === undefined\n );\n }\n return {\n decode,\n encode,\n check,\n expected,\n canAdd,\n };\n}\nexports.makeConverter = makeConverter;\n", "'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nfunction makeConverter(TYPE_BYTE) {\n function decode(keyVal) {\n if (keyVal.key[0] !== TYPE_BYTE) {\n throw new Error(\n 'Decode Error: could not decode witnessScript with key 0x' +\n keyVal.key.toString('hex'),\n );\n }\n return keyVal.value;\n }\n function encode(data) {\n const key = Buffer.from([TYPE_BYTE]);\n return {\n key,\n value: data,\n };\n }\n const expected = 'Buffer';\n function check(data) {\n return Buffer.isBuffer(data);\n }\n function canAdd(currentData, newData) {\n return (\n !!currentData && !!newData && currentData.witnessScript === undefined\n );\n }\n return {\n decode,\n encode,\n check,\n expected,\n canAdd,\n };\n}\nexports.makeConverter = makeConverter;\n", "'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nconst typeFields_1 = require('../typeFields');\nconst globalXpub = require('./global/globalXpub');\nconst unsignedTx = require('./global/unsignedTx');\nconst finalScriptSig = require('./input/finalScriptSig');\nconst finalScriptWitness = require('./input/finalScriptWitness');\nconst nonWitnessUtxo = require('./input/nonWitnessUtxo');\nconst partialSig = require('./input/partialSig');\nconst porCommitment = require('./input/porCommitment');\nconst sighashType = require('./input/sighashType');\nconst tapKeySig = require('./input/tapKeySig');\nconst tapLeafScript = require('./input/tapLeafScript');\nconst tapMerkleRoot = require('./input/tapMerkleRoot');\nconst tapScriptSig = require('./input/tapScriptSig');\nconst witnessUtxo = require('./input/witnessUtxo');\nconst tapTree = require('./output/tapTree');\nconst bip32Derivation = require('./shared/bip32Derivation');\nconst checkPubkey = require('./shared/checkPubkey');\nconst redeemScript = require('./shared/redeemScript');\nconst tapBip32Derivation = require('./shared/tapBip32Derivation');\nconst tapInternalKey = require('./shared/tapInternalKey');\nconst witnessScript = require('./shared/witnessScript');\nconst globals = {\n unsignedTx,\n globalXpub,\n // pass an Array of key bytes that require pubkey beside the key\n checkPubkey: checkPubkey.makeChecker([]),\n};\nexports.globals = globals;\nconst inputs = {\n nonWitnessUtxo,\n partialSig,\n sighashType,\n finalScriptSig,\n finalScriptWitness,\n porCommitment,\n witnessUtxo,\n bip32Derivation: bip32Derivation.makeConverter(\n typeFields_1.InputTypes.BIP32_DERIVATION,\n ),\n redeemScript: redeemScript.makeConverter(\n typeFields_1.InputTypes.REDEEM_SCRIPT,\n ),\n witnessScript: witnessScript.makeConverter(\n typeFields_1.InputTypes.WITNESS_SCRIPT,\n ),\n checkPubkey: checkPubkey.makeChecker([\n typeFields_1.InputTypes.PARTIAL_SIG,\n typeFields_1.InputTypes.BIP32_DERIVATION,\n ]),\n tapKeySig,\n tapScriptSig,\n tapLeafScript,\n tapBip32Derivation: tapBip32Derivation.makeConverter(\n typeFields_1.InputTypes.TAP_BIP32_DERIVATION,\n ),\n tapInternalKey: tapInternalKey.makeConverter(\n typeFields_1.InputTypes.TAP_INTERNAL_KEY,\n ),\n tapMerkleRoot,\n};\nexports.inputs = inputs;\nconst outputs = {\n bip32Derivation: bip32Derivation.makeConverter(\n typeFields_1.OutputTypes.BIP32_DERIVATION,\n ),\n redeemScript: redeemScript.makeConverter(\n typeFields_1.OutputTypes.REDEEM_SCRIPT,\n ),\n witnessScript: witnessScript.makeConverter(\n typeFields_1.OutputTypes.WITNESS_SCRIPT,\n ),\n checkPubkey: checkPubkey.makeChecker([\n typeFields_1.OutputTypes.BIP32_DERIVATION,\n ]),\n tapBip32Derivation: tapBip32Derivation.makeConverter(\n typeFields_1.OutputTypes.TAP_BIP32_DERIVATION,\n ),\n tapTree,\n tapInternalKey: tapInternalKey.makeConverter(\n typeFields_1.OutputTypes.TAP_INTERNAL_KEY,\n ),\n};\nexports.outputs = outputs;\n", "'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nconst convert = require('../converter');\nconst tools_1 = require('../converter/tools');\nconst varuint = require('../converter/varint');\nconst typeFields_1 = require('../typeFields');\nfunction psbtFromBuffer(buffer, txGetter) {\n let offset = 0;\n function varSlice() {\n const keyLen = varuint.decode(buffer, offset);\n offset += varuint.encodingLength(keyLen);\n const key = buffer.slice(offset, offset + keyLen);\n offset += keyLen;\n return key;\n }\n function readUInt32BE() {\n const num = buffer.readUInt32BE(offset);\n offset += 4;\n return num;\n }\n function readUInt8() {\n const num = buffer.readUInt8(offset);\n offset += 1;\n return num;\n }\n function getKeyValue() {\n const key = varSlice();\n const value = varSlice();\n return {\n key,\n value,\n };\n }\n function checkEndOfKeyValPairs() {\n if (offset >= buffer.length) {\n throw new Error('Format Error: Unexpected End of PSBT');\n }\n const isEnd = buffer.readUInt8(offset) === 0;\n if (isEnd) {\n offset++;\n }\n return isEnd;\n }\n if (readUInt32BE() !== 0x70736274) {\n throw new Error('Format Error: Invalid Magic Number');\n }\n if (readUInt8() !== 0xff) {\n throw new Error(\n 'Format Error: Magic Number must be followed by 0xff separator',\n );\n }\n const globalMapKeyVals = [];\n const globalKeyIndex = {};\n while (!checkEndOfKeyValPairs()) {\n const keyVal = getKeyValue();\n const hexKey = keyVal.key.toString('hex');\n if (globalKeyIndex[hexKey]) {\n throw new Error(\n 'Format Error: Keys must be unique for global keymap: key ' + hexKey,\n );\n }\n globalKeyIndex[hexKey] = 1;\n globalMapKeyVals.push(keyVal);\n }\n const unsignedTxMaps = globalMapKeyVals.filter(\n keyVal => keyVal.key[0] === typeFields_1.GlobalTypes.UNSIGNED_TX,\n );\n if (unsignedTxMaps.length !== 1) {\n throw new Error('Format Error: Only one UNSIGNED_TX allowed');\n }\n const unsignedTx = txGetter(unsignedTxMaps[0].value);\n // Get input and output counts to loop the respective fields\n const { inputCount, outputCount } = unsignedTx.getInputOutputCounts();\n const inputKeyVals = [];\n const outputKeyVals = [];\n // Get input fields\n for (const index of tools_1.range(inputCount)) {\n const inputKeyIndex = {};\n const input = [];\n while (!checkEndOfKeyValPairs()) {\n const keyVal = getKeyValue();\n const hexKey = keyVal.key.toString('hex');\n if (inputKeyIndex[hexKey]) {\n throw new Error(\n 'Format Error: Keys must be unique for each input: ' +\n 'input index ' +\n index +\n ' key ' +\n hexKey,\n );\n }\n inputKeyIndex[hexKey] = 1;\n input.push(keyVal);\n }\n inputKeyVals.push(input);\n }\n for (const index of tools_1.range(outputCount)) {\n const outputKeyIndex = {};\n const output = [];\n while (!checkEndOfKeyValPairs()) {\n const keyVal = getKeyValue();\n const hexKey = keyVal.key.toString('hex');\n if (outputKeyIndex[hexKey]) {\n throw new Error(\n 'Format Error: Keys must be unique for each output: ' +\n 'output index ' +\n index +\n ' key ' +\n hexKey,\n );\n }\n outputKeyIndex[hexKey] = 1;\n output.push(keyVal);\n }\n outputKeyVals.push(output);\n }\n return psbtFromKeyVals(unsignedTx, {\n globalMapKeyVals,\n inputKeyVals,\n outputKeyVals,\n });\n}\nexports.psbtFromBuffer = psbtFromBuffer;\nfunction checkKeyBuffer(type, keyBuf, keyNum) {\n if (!keyBuf.equals(Buffer.from([keyNum]))) {\n throw new Error(\n `Format Error: Invalid ${type} key: ${keyBuf.toString('hex')}`,\n );\n }\n}\nexports.checkKeyBuffer = checkKeyBuffer;\nfunction psbtFromKeyVals(\n unsignedTx,\n { globalMapKeyVals, inputKeyVals, outputKeyVals },\n) {\n // That was easy :-)\n const globalMap = {\n unsignedTx,\n };\n let txCount = 0;\n for (const keyVal of globalMapKeyVals) {\n // If a globalMap item needs pubkey, uncomment\n // const pubkey = convert.globals.checkPubkey(keyVal);\n switch (keyVal.key[0]) {\n case typeFields_1.GlobalTypes.UNSIGNED_TX:\n checkKeyBuffer(\n 'global',\n keyVal.key,\n typeFields_1.GlobalTypes.UNSIGNED_TX,\n );\n if (txCount > 0) {\n throw new Error('Format Error: GlobalMap has multiple UNSIGNED_TX');\n }\n txCount++;\n break;\n case typeFields_1.GlobalTypes.GLOBAL_XPUB:\n if (globalMap.globalXpub === undefined) {\n globalMap.globalXpub = [];\n }\n globalMap.globalXpub.push(convert.globals.globalXpub.decode(keyVal));\n break;\n default:\n // This will allow inclusion during serialization.\n if (!globalMap.unknownKeyVals) globalMap.unknownKeyVals = [];\n globalMap.unknownKeyVals.push(keyVal);\n }\n }\n // Get input and output counts to loop the respective fields\n const inputCount = inputKeyVals.length;\n const outputCount = outputKeyVals.length;\n const inputs = [];\n const outputs = [];\n // Get input fields\n for (const index of tools_1.range(inputCount)) {\n const input = {};\n for (const keyVal of inputKeyVals[index]) {\n convert.inputs.checkPubkey(keyVal);\n switch (keyVal.key[0]) {\n case typeFields_1.InputTypes.NON_WITNESS_UTXO:\n checkKeyBuffer(\n 'input',\n keyVal.key,\n typeFields_1.InputTypes.NON_WITNESS_UTXO,\n );\n if (input.nonWitnessUtxo !== undefined) {\n throw new Error(\n 'Format Error: Input has multiple NON_WITNESS_UTXO',\n );\n }\n input.nonWitnessUtxo = convert.inputs.nonWitnessUtxo.decode(keyVal);\n break;\n case typeFields_1.InputTypes.WITNESS_UTXO:\n checkKeyBuffer(\n 'input',\n keyVal.key,\n typeFields_1.InputTypes.WITNESS_UTXO,\n );\n if (input.witnessUtxo !== undefined) {\n throw new Error('Format Error: Input has multiple WITNESS_UTXO');\n }\n input.witnessUtxo = convert.inputs.witnessUtxo.decode(keyVal);\n break;\n case typeFields_1.InputTypes.PARTIAL_SIG:\n if (input.partialSig === undefined) {\n input.partialSig = [];\n }\n input.partialSig.push(convert.inputs.partialSig.decode(keyVal));\n break;\n case typeFields_1.InputTypes.SIGHASH_TYPE:\n checkKeyBuffer(\n 'input',\n keyVal.key,\n typeFields_1.InputTypes.SIGHASH_TYPE,\n );\n if (input.sighashType !== undefined) {\n throw new Error('Format Error: Input has multiple SIGHASH_TYPE');\n }\n input.sighashType = convert.inputs.sighashType.decode(keyVal);\n break;\n case typeFields_1.InputTypes.REDEEM_SCRIPT:\n checkKeyBuffer(\n 'input',\n keyVal.key,\n typeFields_1.InputTypes.REDEEM_SCRIPT,\n );\n if (input.redeemScript !== undefined) {\n throw new Error('Format Error: Input has multiple REDEEM_SCRIPT');\n }\n input.redeemScript = convert.inputs.redeemScript.decode(keyVal);\n break;\n case typeFields_1.InputTypes.WITNESS_SCRIPT:\n checkKeyBuffer(\n 'input',\n keyVal.key,\n typeFields_1.InputTypes.WITNESS_SCRIPT,\n );\n if (input.witnessScript !== undefined) {\n throw new Error('Format Error: Input has multiple WITNESS_SCRIPT');\n }\n input.witnessScript = convert.inputs.witnessScript.decode(keyVal);\n break;\n case typeFields_1.InputTypes.BIP32_DERIVATION:\n if (input.bip32Derivation === undefined) {\n input.bip32Derivation = [];\n }\n input.bip32Derivation.push(\n convert.inputs.bip32Derivation.decode(keyVal),\n );\n break;\n case typeFields_1.InputTypes.FINAL_SCRIPTSIG:\n checkKeyBuffer(\n 'input',\n keyVal.key,\n typeFields_1.InputTypes.FINAL_SCRIPTSIG,\n );\n input.finalScriptSig = convert.inputs.finalScriptSig.decode(keyVal);\n break;\n case typeFields_1.InputTypes.FINAL_SCRIPTWITNESS:\n checkKeyBuffer(\n 'input',\n keyVal.key,\n typeFields_1.InputTypes.FINAL_SCRIPTWITNESS,\n );\n input.finalScriptWitness = convert.inputs.finalScriptWitness.decode(\n keyVal,\n );\n break;\n case typeFields_1.InputTypes.POR_COMMITMENT:\n checkKeyBuffer(\n 'input',\n keyVal.key,\n typeFields_1.InputTypes.POR_COMMITMENT,\n );\n input.porCommitment = convert.inputs.porCommitment.decode(keyVal);\n break;\n case typeFields_1.InputTypes.TAP_KEY_SIG:\n checkKeyBuffer(\n 'input',\n keyVal.key,\n typeFields_1.InputTypes.TAP_KEY_SIG,\n );\n input.tapKeySig = convert.inputs.tapKeySig.decode(keyVal);\n break;\n case typeFields_1.InputTypes.TAP_SCRIPT_SIG:\n if (input.tapScriptSig === undefined) {\n input.tapScriptSig = [];\n }\n input.tapScriptSig.push(convert.inputs.tapScriptSig.decode(keyVal));\n break;\n case typeFields_1.InputTypes.TAP_LEAF_SCRIPT:\n if (input.tapLeafScript === undefined) {\n input.tapLeafScript = [];\n }\n input.tapLeafScript.push(convert.inputs.tapLeafScript.decode(keyVal));\n break;\n case typeFields_1.InputTypes.TAP_BIP32_DERIVATION:\n if (input.tapBip32Derivation === undefined) {\n input.tapBip32Derivation = [];\n }\n input.tapBip32Derivation.push(\n convert.inputs.tapBip32Derivation.decode(keyVal),\n );\n break;\n case typeFields_1.InputTypes.TAP_INTERNAL_KEY:\n checkKeyBuffer(\n 'input',\n keyVal.key,\n typeFields_1.InputTypes.TAP_INTERNAL_KEY,\n );\n input.tapInternalKey = convert.inputs.tapInternalKey.decode(keyVal);\n break;\n case typeFields_1.InputTypes.TAP_MERKLE_ROOT:\n checkKeyBuffer(\n 'input',\n keyVal.key,\n typeFields_1.InputTypes.TAP_MERKLE_ROOT,\n );\n input.tapMerkleRoot = convert.inputs.tapMerkleRoot.decode(keyVal);\n break;\n default:\n // This will allow inclusion during serialization.\n if (!input.unknownKeyVals) input.unknownKeyVals = [];\n input.unknownKeyVals.push(keyVal);\n }\n }\n inputs.push(input);\n }\n for (const index of tools_1.range(outputCount)) {\n const output = {};\n for (const keyVal of outputKeyVals[index]) {\n convert.outputs.checkPubkey(keyVal);\n switch (keyVal.key[0]) {\n case typeFields_1.OutputTypes.REDEEM_SCRIPT:\n checkKeyBuffer(\n 'output',\n keyVal.key,\n typeFields_1.OutputTypes.REDEEM_SCRIPT,\n );\n if (output.redeemScript !== undefined) {\n throw new Error('Format Error: Output has multiple REDEEM_SCRIPT');\n }\n output.redeemScript = convert.outputs.redeemScript.decode(keyVal);\n break;\n case typeFields_1.OutputTypes.WITNESS_SCRIPT:\n checkKeyBuffer(\n 'output',\n keyVal.key,\n typeFields_1.OutputTypes.WITNESS_SCRIPT,\n );\n if (output.witnessScript !== undefined) {\n throw new Error('Format Error: Output has multiple WITNESS_SCRIPT');\n }\n output.witnessScript = convert.outputs.witnessScript.decode(keyVal);\n break;\n case typeFields_1.OutputTypes.BIP32_DERIVATION:\n if (output.bip32Derivation === undefined) {\n output.bip32Derivation = [];\n }\n output.bip32Derivation.push(\n convert.outputs.bip32Derivation.decode(keyVal),\n );\n break;\n case typeFields_1.OutputTypes.TAP_INTERNAL_KEY:\n checkKeyBuffer(\n 'output',\n keyVal.key,\n typeFields_1.OutputTypes.TAP_INTERNAL_KEY,\n );\n output.tapInternalKey = convert.outputs.tapInternalKey.decode(keyVal);\n break;\n case typeFields_1.OutputTypes.TAP_TREE:\n checkKeyBuffer(\n 'output',\n keyVal.key,\n typeFields_1.OutputTypes.TAP_TREE,\n );\n output.tapTree = convert.outputs.tapTree.decode(keyVal);\n break;\n case typeFields_1.OutputTypes.TAP_BIP32_DERIVATION:\n if (output.tapBip32Derivation === undefined) {\n output.tapBip32Derivation = [];\n }\n output.tapBip32Derivation.push(\n convert.outputs.tapBip32Derivation.decode(keyVal),\n );\n break;\n default:\n if (!output.unknownKeyVals) output.unknownKeyVals = [];\n output.unknownKeyVals.push(keyVal);\n }\n }\n outputs.push(output);\n }\n return { globalMap, inputs, outputs };\n}\nexports.psbtFromKeyVals = psbtFromKeyVals;\n", "'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nconst convert = require('../converter');\nconst tools_1 = require('../converter/tools');\nfunction psbtToBuffer({ globalMap, inputs, outputs }) {\n const { globalKeyVals, inputKeyVals, outputKeyVals } = psbtToKeyVals({\n globalMap,\n inputs,\n outputs,\n });\n const globalBuffer = tools_1.keyValsToBuffer(globalKeyVals);\n const keyValsOrEmptyToBuffer = keyVals =>\n keyVals.length === 0\n ? [Buffer.from([0])]\n : keyVals.map(tools_1.keyValsToBuffer);\n const inputBuffers = keyValsOrEmptyToBuffer(inputKeyVals);\n const outputBuffers = keyValsOrEmptyToBuffer(outputKeyVals);\n const header = Buffer.allocUnsafe(5);\n header.writeUIntBE(0x70736274ff, 0, 5);\n return Buffer.concat(\n [header, globalBuffer].concat(inputBuffers, outputBuffers),\n );\n}\nexports.psbtToBuffer = psbtToBuffer;\nconst sortKeyVals = (a, b) => {\n return a.key.compare(b.key);\n};\nfunction keyValsFromMap(keyValMap, converterFactory) {\n const keyHexSet = new Set();\n const keyVals = Object.entries(keyValMap).reduce((result, [key, value]) => {\n if (key === 'unknownKeyVals') return result;\n // We are checking for undefined anyways. So ignore TS error\n // @ts-ignore\n const converter = converterFactory[key];\n if (converter === undefined) return result;\n const encodedKeyVals = (Array.isArray(value) ? value : [value]).map(\n converter.encode,\n );\n const keyHexes = encodedKeyVals.map(kv => kv.key.toString('hex'));\n keyHexes.forEach(hex => {\n if (keyHexSet.has(hex))\n throw new Error('Serialize Error: Duplicate key: ' + hex);\n keyHexSet.add(hex);\n });\n return result.concat(encodedKeyVals);\n }, []);\n // Get other keyVals that have not yet been gotten\n const otherKeyVals = keyValMap.unknownKeyVals\n ? keyValMap.unknownKeyVals.filter(keyVal => {\n return !keyHexSet.has(keyVal.key.toString('hex'));\n })\n : [];\n return keyVals.concat(otherKeyVals).sort(sortKeyVals);\n}\nfunction psbtToKeyVals({ globalMap, inputs, outputs }) {\n // First parse the global keyVals\n // Get any extra keyvals to pass along\n return {\n globalKeyVals: keyValsFromMap(globalMap, convert.globals),\n inputKeyVals: inputs.map(i => keyValsFromMap(i, convert.inputs)),\n outputKeyVals: outputs.map(o => keyValsFromMap(o, convert.outputs)),\n };\n}\nexports.psbtToKeyVals = psbtToKeyVals;\n", "'use strict';\nfunction __export(m) {\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\n}\nObject.defineProperty(exports, '__esModule', { value: true });\n__export(require('./fromBuffer'));\n__export(require('./toBuffer'));\n", "'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nconst parser_1 = require('../parser');\nfunction combine(psbts) {\n const self = psbts[0];\n const selfKeyVals = parser_1.psbtToKeyVals(self);\n const others = psbts.slice(1);\n if (others.length === 0) throw new Error('Combine: Nothing to combine');\n const selfTx = getTx(self);\n if (selfTx === undefined) {\n throw new Error('Combine: Self missing transaction');\n }\n const selfGlobalSet = getKeySet(selfKeyVals.globalKeyVals);\n const selfInputSets = selfKeyVals.inputKeyVals.map(getKeySet);\n const selfOutputSets = selfKeyVals.outputKeyVals.map(getKeySet);\n for (const other of others) {\n const otherTx = getTx(other);\n if (\n otherTx === undefined ||\n !otherTx.toBuffer().equals(selfTx.toBuffer())\n ) {\n throw new Error(\n 'Combine: One of the Psbts does not have the same transaction.',\n );\n }\n const otherKeyVals = parser_1.psbtToKeyVals(other);\n const otherGlobalSet = getKeySet(otherKeyVals.globalKeyVals);\n otherGlobalSet.forEach(\n keyPusher(\n selfGlobalSet,\n selfKeyVals.globalKeyVals,\n otherKeyVals.globalKeyVals,\n ),\n );\n const otherInputSets = otherKeyVals.inputKeyVals.map(getKeySet);\n otherInputSets.forEach((inputSet, idx) =>\n inputSet.forEach(\n keyPusher(\n selfInputSets[idx],\n selfKeyVals.inputKeyVals[idx],\n otherKeyVals.inputKeyVals[idx],\n ),\n ),\n );\n const otherOutputSets = otherKeyVals.outputKeyVals.map(getKeySet);\n otherOutputSets.forEach((outputSet, idx) =>\n outputSet.forEach(\n keyPusher(\n selfOutputSets[idx],\n selfKeyVals.outputKeyVals[idx],\n otherKeyVals.outputKeyVals[idx],\n ),\n ),\n );\n }\n return parser_1.psbtFromKeyVals(selfTx, {\n globalMapKeyVals: selfKeyVals.globalKeyVals,\n inputKeyVals: selfKeyVals.inputKeyVals,\n outputKeyVals: selfKeyVals.outputKeyVals,\n });\n}\nexports.combine = combine;\nfunction keyPusher(selfSet, selfKeyVals, otherKeyVals) {\n return key => {\n if (selfSet.has(key)) return;\n const newKv = otherKeyVals.filter(kv => kv.key.toString('hex') === key)[0];\n selfKeyVals.push(newKv);\n selfSet.add(key);\n };\n}\nfunction getTx(psbt) {\n return psbt.globalMap.unsignedTx;\n}\nfunction getKeySet(keyVals) {\n const set = new Set();\n keyVals.forEach(keyVal => {\n const hex = keyVal.key.toString('hex');\n if (set.has(hex))\n throw new Error('Combine: KeyValue Map keys should be unique');\n set.add(hex);\n });\n return set;\n}\n", "'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nconst converter = require('./converter');\nfunction checkForInput(inputs, inputIndex) {\n const input = inputs[inputIndex];\n if (input === undefined) throw new Error(`No input #${inputIndex}`);\n return input;\n}\nexports.checkForInput = checkForInput;\nfunction checkForOutput(outputs, outputIndex) {\n const output = outputs[outputIndex];\n if (output === undefined) throw new Error(`No output #${outputIndex}`);\n return output;\n}\nexports.checkForOutput = checkForOutput;\nfunction checkHasKey(checkKeyVal, keyVals, enumLength) {\n if (checkKeyVal.key[0] < enumLength) {\n throw new Error(\n `Use the method for your specific key instead of addUnknownKeyVal*`,\n );\n }\n if (\n keyVals &&\n keyVals.filter(kv => kv.key.equals(checkKeyVal.key)).length !== 0\n ) {\n throw new Error(`Duplicate Key: ${checkKeyVal.key.toString('hex')}`);\n }\n}\nexports.checkHasKey = checkHasKey;\nfunction getEnumLength(myenum) {\n let count = 0;\n Object.keys(myenum).forEach(val => {\n if (Number(isNaN(Number(val)))) {\n count++;\n }\n });\n return count;\n}\nexports.getEnumLength = getEnumLength;\nfunction inputCheckUncleanFinalized(inputIndex, input) {\n let result = false;\n if (input.nonWitnessUtxo || input.witnessUtxo) {\n const needScriptSig = !!input.redeemScript;\n const needWitnessScript = !!input.witnessScript;\n const scriptSigOK = !needScriptSig || !!input.finalScriptSig;\n const witnessScriptOK = !needWitnessScript || !!input.finalScriptWitness;\n const hasOneFinal = !!input.finalScriptSig || !!input.finalScriptWitness;\n result = scriptSigOK && witnessScriptOK && hasOneFinal;\n }\n if (result === false) {\n throw new Error(\n `Input #${inputIndex} has too much or too little data to clean`,\n );\n }\n}\nexports.inputCheckUncleanFinalized = inputCheckUncleanFinalized;\nfunction throwForUpdateMaker(typeName, name, expected, data) {\n throw new Error(\n `Data for ${typeName} key ${name} is incorrect: Expected ` +\n `${expected} and got ${JSON.stringify(data)}`,\n );\n}\nfunction updateMaker(typeName) {\n return (updateData, mainData) => {\n for (const name of Object.keys(updateData)) {\n // @ts-ignore\n const data = updateData[name];\n // @ts-ignore\n const { canAdd, canAddToArray, check, expected } =\n // @ts-ignore\n converter[typeName + 's'][name] || {};\n const isArray = !!canAddToArray;\n // If unknown data. ignore and do not add\n if (check) {\n if (isArray) {\n if (\n !Array.isArray(data) ||\n // @ts-ignore\n (mainData[name] && !Array.isArray(mainData[name]))\n ) {\n throw new Error(`Key type ${name} must be an array`);\n }\n if (!data.every(check)) {\n throwForUpdateMaker(typeName, name, expected, data);\n }\n // @ts-ignore\n const arr = mainData[name] || [];\n const dupeCheckSet = new Set();\n if (!data.every(v => canAddToArray(arr, v, dupeCheckSet))) {\n throw new Error('Can not add duplicate data to array');\n }\n // @ts-ignore\n mainData[name] = arr.concat(data);\n } else {\n if (!check(data)) {\n throwForUpdateMaker(typeName, name, expected, data);\n }\n if (!canAdd(mainData, data)) {\n throw new Error(`Can not add duplicate data to ${typeName}`);\n }\n // @ts-ignore\n mainData[name] = data;\n }\n }\n }\n };\n}\nexports.updateGlobal = updateMaker('global');\nexports.updateInput = updateMaker('input');\nexports.updateOutput = updateMaker('output');\nfunction addInputAttributes(inputs, data) {\n const index = inputs.length - 1;\n const input = checkForInput(inputs, index);\n exports.updateInput(data, input);\n}\nexports.addInputAttributes = addInputAttributes;\nfunction addOutputAttributes(outputs, data) {\n const index = outputs.length - 1;\n const output = checkForOutput(outputs, index);\n exports.updateOutput(data, output);\n}\nexports.addOutputAttributes = addOutputAttributes;\nfunction defaultVersionSetter(version, txBuf) {\n if (!Buffer.isBuffer(txBuf) || txBuf.length < 4) {\n throw new Error('Set Version: Invalid Transaction');\n }\n txBuf.writeUInt32LE(version, 0);\n return txBuf;\n}\nexports.defaultVersionSetter = defaultVersionSetter;\nfunction defaultLocktimeSetter(locktime, txBuf) {\n if (!Buffer.isBuffer(txBuf) || txBuf.length < 4) {\n throw new Error('Set Locktime: Invalid Transaction');\n }\n txBuf.writeUInt32LE(locktime, txBuf.length - 4);\n return txBuf;\n}\nexports.defaultLocktimeSetter = defaultLocktimeSetter;\n", "'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nconst combiner_1 = require('./combiner');\nconst parser_1 = require('./parser');\nconst typeFields_1 = require('./typeFields');\nconst utils_1 = require('./utils');\nclass Psbt {\n constructor(tx) {\n this.inputs = [];\n this.outputs = [];\n this.globalMap = {\n unsignedTx: tx,\n };\n }\n static fromBase64(data, txFromBuffer) {\n const buffer = Buffer.from(data, 'base64');\n return this.fromBuffer(buffer, txFromBuffer);\n }\n static fromHex(data, txFromBuffer) {\n const buffer = Buffer.from(data, 'hex');\n return this.fromBuffer(buffer, txFromBuffer);\n }\n static fromBuffer(buffer, txFromBuffer) {\n const results = parser_1.psbtFromBuffer(buffer, txFromBuffer);\n const psbt = new this(results.globalMap.unsignedTx);\n Object.assign(psbt, results);\n return psbt;\n }\n toBase64() {\n const buffer = this.toBuffer();\n return buffer.toString('base64');\n }\n toHex() {\n const buffer = this.toBuffer();\n return buffer.toString('hex');\n }\n toBuffer() {\n return parser_1.psbtToBuffer(this);\n }\n updateGlobal(updateData) {\n utils_1.updateGlobal(updateData, this.globalMap);\n return this;\n }\n updateInput(inputIndex, updateData) {\n const input = utils_1.checkForInput(this.inputs, inputIndex);\n utils_1.updateInput(updateData, input);\n return this;\n }\n updateOutput(outputIndex, updateData) {\n const output = utils_1.checkForOutput(this.outputs, outputIndex);\n utils_1.updateOutput(updateData, output);\n return this;\n }\n addUnknownKeyValToGlobal(keyVal) {\n utils_1.checkHasKey(\n keyVal,\n this.globalMap.unknownKeyVals,\n utils_1.getEnumLength(typeFields_1.GlobalTypes),\n );\n if (!this.globalMap.unknownKeyVals) this.globalMap.unknownKeyVals = [];\n this.globalMap.unknownKeyVals.push(keyVal);\n return this;\n }\n addUnknownKeyValToInput(inputIndex, keyVal) {\n const input = utils_1.checkForInput(this.inputs, inputIndex);\n utils_1.checkHasKey(\n keyVal,\n input.unknownKeyVals,\n utils_1.getEnumLength(typeFields_1.InputTypes),\n );\n if (!input.unknownKeyVals) input.unknownKeyVals = [];\n input.unknownKeyVals.push(keyVal);\n return this;\n }\n addUnknownKeyValToOutput(outputIndex, keyVal) {\n const output = utils_1.checkForOutput(this.outputs, outputIndex);\n utils_1.checkHasKey(\n keyVal,\n output.unknownKeyVals,\n utils_1.getEnumLength(typeFields_1.OutputTypes),\n );\n if (!output.unknownKeyVals) output.unknownKeyVals = [];\n output.unknownKeyVals.push(keyVal);\n return this;\n }\n addInput(inputData) {\n this.globalMap.unsignedTx.addInput(inputData);\n this.inputs.push({\n unknownKeyVals: [],\n });\n const addKeyVals = inputData.unknownKeyVals || [];\n const inputIndex = this.inputs.length - 1;\n if (!Array.isArray(addKeyVals)) {\n throw new Error('unknownKeyVals must be an Array');\n }\n addKeyVals.forEach(keyVal =>\n this.addUnknownKeyValToInput(inputIndex, keyVal),\n );\n utils_1.addInputAttributes(this.inputs, inputData);\n return this;\n }\n addOutput(outputData) {\n this.globalMap.unsignedTx.addOutput(outputData);\n this.outputs.push({\n unknownKeyVals: [],\n });\n const addKeyVals = outputData.unknownKeyVals || [];\n const outputIndex = this.outputs.length - 1;\n if (!Array.isArray(addKeyVals)) {\n throw new Error('unknownKeyVals must be an Array');\n }\n addKeyVals.forEach(keyVal =>\n this.addUnknownKeyValToInput(outputIndex, keyVal),\n );\n utils_1.addOutputAttributes(this.outputs, outputData);\n return this;\n }\n clearFinalizedInput(inputIndex) {\n const input = utils_1.checkForInput(this.inputs, inputIndex);\n utils_1.inputCheckUncleanFinalized(inputIndex, input);\n for (const key of Object.keys(input)) {\n if (\n ![\n 'witnessUtxo',\n 'nonWitnessUtxo',\n 'finalScriptSig',\n 'finalScriptWitness',\n 'unknownKeyVals',\n ].includes(key)\n ) {\n // @ts-ignore\n delete input[key];\n }\n }\n return this;\n }\n combine(...those) {\n // Combine this with those.\n // Return self for chaining.\n const result = combiner_1.combine([this].concat(those));\n Object.assign(this, result);\n return this;\n }\n getTransaction() {\n return this.globalMap.unsignedTx.toBuffer();\n }\n}\nexports.Psbt = Psbt;\n", "'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nconst bip174_1 = require('bip174');\nconst varuint = require('bip174/src/lib/converter/varint');\nconst utils_1 = require('bip174/src/lib/utils');\nconst address_1 = require('./address');\nconst bufferutils_1 = require('./bufferutils');\nconst crypto_1 = require('./crypto');\nconst ecpair_1 = require('./ecpair');\nconst networks_1 = require('./networks');\nconst payments = require('./payments');\nconst bscript = require('./script');\nconst transaction_1 = require('./transaction');\n/**\n * These are the default arguments for a Psbt instance.\n */\nconst DEFAULT_OPTS = {\n /**\n * A bitcoinjs Network object. This is only used if you pass an `address`\n * parameter to addOutput. Otherwise it is not needed and can be left default.\n */\n network: networks_1.bitcoin,\n /**\n * When extractTransaction is called, the fee rate is checked.\n * THIS IS NOT TO BE RELIED ON.\n * It is only here as a last ditch effort to prevent sending a 500 BTC fee etc.\n */\n maximumFeeRate: 5000,\n};\n/**\n * Psbt class can parse and generate a PSBT binary based off of the BIP174.\n * There are 6 roles that this class fulfills. (Explained in BIP174)\n *\n * Creator: This can be done with `new Psbt()`\n * Updater: This can be done with `psbt.addInput(input)`, `psbt.addInputs(inputs)`,\n * `psbt.addOutput(output)`, `psbt.addOutputs(outputs)` when you are looking to\n * add new inputs and outputs to the PSBT, and `psbt.updateGlobal(itemObject)`,\n * `psbt.updateInput(itemObject)`, `psbt.updateOutput(itemObject)`\n * addInput requires hash: Buffer | string; and index: number; as attributes\n * and can also include any attributes that are used in updateInput method.\n * addOutput requires script: Buffer; and value: number; and likewise can include\n * data for updateOutput.\n * For a list of what attributes should be what types. Check the bip174 library.\n * Also, check the integration tests for some examples of usage.\n * Signer: There are a few methods. signAllInputs and signAllInputsAsync, which will search all input\n * information for your pubkey or pubkeyhash, and only sign inputs where it finds\n * your info. Or you can explicitly sign a specific input with signInput and\n * signInputAsync. For the async methods you can create a SignerAsync object\n * and use something like a hardware wallet to sign with. (You must implement this)\n * Combiner: psbts can be combined easily with `psbt.combine(psbt2, psbt3, psbt4 ...)`\n * the psbt calling combine will always have precedence when a conflict occurs.\n * Combine checks if the internal bitcoin transaction is the same, so be sure that\n * all sequences, version, locktime, etc. are the same before combining.\n * Input Finalizer: This role is fairly important. Not only does it need to construct\n * the input scriptSigs and witnesses, but it SHOULD verify the signatures etc.\n * Before running `psbt.finalizeAllInputs()` please run `psbt.validateSignaturesOfAllInputs()`\n * Running any finalize method will delete any data in the input(s) that are no longer\n * needed due to the finalized scripts containing the information.\n * Transaction Extractor: This role will perform some checks before returning a\n * Transaction object. Such as fee rate not being larger than maximumFeeRate etc.\n */\nclass Psbt {\n constructor(opts = {}, data = new bip174_1.Psbt(new PsbtTransaction())) {\n this.data = data;\n // set defaults\n this.opts = Object.assign({}, DEFAULT_OPTS, opts);\n this.__CACHE = {\n __NON_WITNESS_UTXO_TX_CACHE: [],\n __NON_WITNESS_UTXO_BUF_CACHE: [],\n __TX_IN_CACHE: {},\n __TX: this.data.globalMap.unsignedTx.tx,\n // Old TransactionBuilder behavior was to not confirm input values\n // before signing. Even though we highly encourage people to get\n // the full parent transaction to verify values, the ability to\n // sign non-segwit inputs without the full transaction was often\n // requested. So the only way to activate is to use @ts-ignore.\n // We will disable exporting the Psbt when unsafe sign is active.\n // because it is not BIP174 compliant.\n __UNSAFE_SIGN_NONSEGWIT: false,\n };\n if (this.data.inputs.length === 0) this.setVersion(2);\n // Make data hidden when enumerating\n const dpew = (obj, attr, enumerable, writable) =>\n Object.defineProperty(obj, attr, {\n enumerable,\n writable,\n });\n dpew(this, '__CACHE', false, true);\n dpew(this, 'opts', false, true);\n }\n static fromBase64(data, opts = {}) {\n const buffer = Buffer.from(data, 'base64');\n return this.fromBuffer(buffer, opts);\n }\n static fromHex(data, opts = {}) {\n const buffer = Buffer.from(data, 'hex');\n return this.fromBuffer(buffer, opts);\n }\n static fromBuffer(buffer, opts = {}) {\n const psbtBase = bip174_1.Psbt.fromBuffer(buffer, transactionFromBuffer);\n const psbt = new Psbt(opts, psbtBase);\n checkTxForDupeIns(psbt.__CACHE.__TX, psbt.__CACHE);\n return psbt;\n }\n get inputCount() {\n return this.data.inputs.length;\n }\n get version() {\n return this.__CACHE.__TX.version;\n }\n set version(version) {\n this.setVersion(version);\n }\n get locktime() {\n return this.__CACHE.__TX.locktime;\n }\n set locktime(locktime) {\n this.setLocktime(locktime);\n }\n get txInputs() {\n return this.__CACHE.__TX.ins.map(input => ({\n hash: bufferutils_1.cloneBuffer(input.hash),\n index: input.index,\n sequence: input.sequence,\n }));\n }\n get txOutputs() {\n return this.__CACHE.__TX.outs.map(output => {\n let address;\n try {\n address = address_1.fromOutputScript(output.script, this.opts.network);\n } catch (_) {}\n return {\n script: bufferutils_1.cloneBuffer(output.script),\n value: output.value,\n address,\n };\n });\n }\n combine(...those) {\n this.data.combine(...those.map(o => o.data));\n return this;\n }\n clone() {\n // TODO: more efficient cloning\n const res = Psbt.fromBuffer(this.data.toBuffer());\n res.opts = JSON.parse(JSON.stringify(this.opts));\n return res;\n }\n setMaximumFeeRate(satoshiPerByte) {\n check32Bit(satoshiPerByte); // 42.9 BTC per byte IS excessive... so throw\n this.opts.maximumFeeRate = satoshiPerByte;\n }\n setVersion(version) {\n check32Bit(version);\n checkInputsForPartialSig(this.data.inputs, 'setVersion');\n const c = this.__CACHE;\n c.__TX.version = version;\n c.__EXTRACTED_TX = undefined;\n return this;\n }\n setLocktime(locktime) {\n check32Bit(locktime);\n checkInputsForPartialSig(this.data.inputs, 'setLocktime');\n const c = this.__CACHE;\n c.__TX.locktime = locktime;\n c.__EXTRACTED_TX = undefined;\n return this;\n }\n setInputSequence(inputIndex, sequence) {\n check32Bit(sequence);\n checkInputsForPartialSig(this.data.inputs, 'setInputSequence');\n const c = this.__CACHE;\n if (c.__TX.ins.length <= inputIndex) {\n throw new Error('Input index too high');\n }\n c.__TX.ins[inputIndex].sequence = sequence;\n c.__EXTRACTED_TX = undefined;\n return this;\n }\n addInputs(inputDatas) {\n inputDatas.forEach(inputData => this.addInput(inputData));\n return this;\n }\n addInput(inputData) {\n if (\n arguments.length > 1 ||\n !inputData ||\n inputData.hash === undefined ||\n inputData.index === undefined\n ) {\n throw new Error(\n `Invalid arguments for Psbt.addInput. ` +\n `Requires single object with at least [hash] and [index]`,\n );\n }\n checkInputsForPartialSig(this.data.inputs, 'addInput');\n if (inputData.witnessScript) checkInvalidP2WSH(inputData.witnessScript);\n const c = this.__CACHE;\n this.data.addInput(inputData);\n const txIn = c.__TX.ins[c.__TX.ins.length - 1];\n checkTxInputCache(c, txIn);\n const inputIndex = this.data.inputs.length - 1;\n const input = this.data.inputs[inputIndex];\n if (input.nonWitnessUtxo) {\n addNonWitnessTxCache(this.__CACHE, input, inputIndex);\n }\n c.__FEE = undefined;\n c.__FEE_RATE = undefined;\n c.__EXTRACTED_TX = undefined;\n return this;\n }\n addOutputs(outputDatas) {\n outputDatas.forEach(outputData => this.addOutput(outputData));\n return this;\n }\n addOutput(outputData) {\n if (\n arguments.length > 1 ||\n !outputData ||\n outputData.value === undefined ||\n (outputData.address === undefined && outputData.script === undefined)\n ) {\n throw new Error(\n `Invalid arguments for Psbt.addOutput. ` +\n `Requires single object with at least [script or address] and [value]`,\n );\n }\n checkInputsForPartialSig(this.data.inputs, 'addOutput');\n const { address } = outputData;\n if (typeof address === 'string') {\n const { network } = this.opts;\n const script = address_1.toOutputScript(address, network);\n outputData = Object.assign(outputData, { script });\n }\n const c = this.__CACHE;\n this.data.addOutput(outputData);\n c.__FEE = undefined;\n c.__FEE_RATE = undefined;\n c.__EXTRACTED_TX = undefined;\n return this;\n }\n extractTransaction(disableFeeCheck) {\n if (!this.data.inputs.every(isFinalized)) throw new Error('Not finalized');\n const c = this.__CACHE;\n if (!disableFeeCheck) {\n checkFees(this, c, this.opts);\n }\n if (c.__EXTRACTED_TX) return c.__EXTRACTED_TX;\n const tx = c.__TX.clone();\n inputFinalizeGetAmts(this.data.inputs, tx, c, true);\n return tx;\n }\n getFeeRate() {\n return getTxCacheValue(\n '__FEE_RATE',\n 'fee rate',\n this.data.inputs,\n this.__CACHE,\n );\n }\n getFee() {\n return getTxCacheValue('__FEE', 'fee', this.data.inputs, this.__CACHE);\n }\n finalizeAllInputs() {\n utils_1.checkForInput(this.data.inputs, 0); // making sure we have at least one\n range(this.data.inputs.length).forEach(idx => this.finalizeInput(idx));\n return this;\n }\n finalizeInput(inputIndex, finalScriptsFunc = getFinalScripts) {\n const input = utils_1.checkForInput(this.data.inputs, inputIndex);\n const { script, isP2SH, isP2WSH, isSegwit } = getScriptFromInput(\n inputIndex,\n input,\n this.__CACHE,\n );\n if (!script) throw new Error(`No script found for input #${inputIndex}`);\n checkPartialSigSighashes(input);\n const { finalScriptSig, finalScriptWitness } = finalScriptsFunc(\n inputIndex,\n input,\n script,\n isSegwit,\n isP2SH,\n isP2WSH,\n );\n if (finalScriptSig) this.data.updateInput(inputIndex, { finalScriptSig });\n if (finalScriptWitness)\n this.data.updateInput(inputIndex, { finalScriptWitness });\n if (!finalScriptSig && !finalScriptWitness)\n throw new Error(`Unknown error finalizing input #${inputIndex}`);\n this.data.clearFinalizedInput(inputIndex);\n return this;\n }\n getInputType(inputIndex) {\n const input = utils_1.checkForInput(this.data.inputs, inputIndex);\n const script = getScriptFromUtxo(inputIndex, input, this.__CACHE);\n const result = getMeaningfulScript(\n script,\n inputIndex,\n 'input',\n input.redeemScript || redeemFromFinalScriptSig(input.finalScriptSig),\n input.witnessScript ||\n redeemFromFinalWitnessScript(input.finalScriptWitness),\n );\n const type = result.type === 'raw' ? '' : result.type + '-';\n const mainType = classifyScript(result.meaningfulScript);\n return type + mainType;\n }\n inputHasPubkey(inputIndex, pubkey) {\n const input = utils_1.checkForInput(this.data.inputs, inputIndex);\n return pubkeyInInput(pubkey, input, inputIndex, this.__CACHE);\n }\n inputHasHDKey(inputIndex, root) {\n const input = utils_1.checkForInput(this.data.inputs, inputIndex);\n const derivationIsMine = bip32DerivationIsMine(root);\n return (\n !!input.bip32Derivation && input.bip32Derivation.some(derivationIsMine)\n );\n }\n outputHasPubkey(outputIndex, pubkey) {\n const output = utils_1.checkForOutput(this.data.outputs, outputIndex);\n return pubkeyInOutput(pubkey, output, outputIndex, this.__CACHE);\n }\n outputHasHDKey(outputIndex, root) {\n const output = utils_1.checkForOutput(this.data.outputs, outputIndex);\n const derivationIsMine = bip32DerivationIsMine(root);\n return (\n !!output.bip32Derivation && output.bip32Derivation.some(derivationIsMine)\n );\n }\n validateSignaturesOfAllInputs() {\n utils_1.checkForInput(this.data.inputs, 0); // making sure we have at least one\n const results = range(this.data.inputs.length).map(idx =>\n this.validateSignaturesOfInput(idx),\n );\n return results.reduce((final, res) => res === true && final, true);\n }\n validateSignaturesOfInput(inputIndex, pubkey) {\n const input = this.data.inputs[inputIndex];\n const partialSig = (input || {}).partialSig;\n if (!input || !partialSig || partialSig.length < 1)\n throw new Error('No signatures to validate');\n const mySigs = pubkey\n ? partialSig.filter(sig => sig.pubkey.equals(pubkey))\n : partialSig;\n if (mySigs.length < 1) throw new Error('No signatures for this pubkey');\n const results = [];\n let hashCache;\n let scriptCache;\n let sighashCache;\n for (const pSig of mySigs) {\n const sig = bscript.signature.decode(pSig.signature);\n const { hash, script } =\n sighashCache !== sig.hashType\n ? getHashForSig(\n inputIndex,\n Object.assign({}, input, { sighashType: sig.hashType }),\n this.__CACHE,\n true,\n )\n : { hash: hashCache, script: scriptCache };\n sighashCache = sig.hashType;\n hashCache = hash;\n scriptCache = script;\n checkScriptForPubkey(pSig.pubkey, script, 'verify');\n const keypair = ecpair_1.fromPublicKey(pSig.pubkey);\n results.push(keypair.verify(hash, sig.signature));\n }\n return results.every(res => res === true);\n }\n signAllInputsHD(\n hdKeyPair,\n sighashTypes = [transaction_1.Transaction.SIGHASH_ALL],\n ) {\n if (!hdKeyPair || !hdKeyPair.publicKey || !hdKeyPair.fingerprint) {\n throw new Error('Need HDSigner to sign input');\n }\n const results = [];\n for (const i of range(this.data.inputs.length)) {\n try {\n this.signInputHD(i, hdKeyPair, sighashTypes);\n results.push(true);\n } catch (err) {\n results.push(false);\n }\n }\n if (results.every(v => v === false)) {\n throw new Error('No inputs were signed');\n }\n return this;\n }\n signAllInputsHDAsync(\n hdKeyPair,\n sighashTypes = [transaction_1.Transaction.SIGHASH_ALL],\n ) {\n return new Promise((resolve, reject) => {\n if (!hdKeyPair || !hdKeyPair.publicKey || !hdKeyPair.fingerprint) {\n return reject(new Error('Need HDSigner to sign input'));\n }\n const results = [];\n const promises = [];\n for (const i of range(this.data.inputs.length)) {\n promises.push(\n this.signInputHDAsync(i, hdKeyPair, sighashTypes).then(\n () => {\n results.push(true);\n },\n () => {\n results.push(false);\n },\n ),\n );\n }\n return Promise.all(promises).then(() => {\n if (results.every(v => v === false)) {\n return reject(new Error('No inputs were signed'));\n }\n resolve();\n });\n });\n }\n signInputHD(\n inputIndex,\n hdKeyPair,\n sighashTypes = [transaction_1.Transaction.SIGHASH_ALL],\n ) {\n if (!hdKeyPair || !hdKeyPair.publicKey || !hdKeyPair.fingerprint) {\n throw new Error('Need HDSigner to sign input');\n }\n const signers = getSignersFromHD(inputIndex, this.data.inputs, hdKeyPair);\n signers.forEach(signer => this.signInput(inputIndex, signer, sighashTypes));\n return this;\n }\n signInputHDAsync(\n inputIndex,\n hdKeyPair,\n sighashTypes = [transaction_1.Transaction.SIGHASH_ALL],\n ) {\n return new Promise((resolve, reject) => {\n if (!hdKeyPair || !hdKeyPair.publicKey || !hdKeyPair.fingerprint) {\n return reject(new Error('Need HDSigner to sign input'));\n }\n const signers = getSignersFromHD(inputIndex, this.data.inputs, hdKeyPair);\n const promises = signers.map(signer =>\n this.signInputAsync(inputIndex, signer, sighashTypes),\n );\n return Promise.all(promises)\n .then(() => {\n resolve();\n })\n .catch(reject);\n });\n }\n signAllInputs(\n keyPair,\n sighashTypes = [transaction_1.Transaction.SIGHASH_ALL],\n ) {\n if (!keyPair || !keyPair.publicKey)\n throw new Error('Need Signer to sign input');\n // TODO: Add a pubkey/pubkeyhash cache to each input\n // as input information is added, then eventually\n // optimize this method.\n const results = [];\n for (const i of range(this.data.inputs.length)) {\n try {\n this.signInput(i, keyPair, sighashTypes);\n results.push(true);\n } catch (err) {\n results.push(false);\n }\n }\n if (results.every(v => v === false)) {\n throw new Error('No inputs were signed');\n }\n return this;\n }\n signAllInputsAsync(\n keyPair,\n sighashTypes = [transaction_1.Transaction.SIGHASH_ALL],\n ) {\n return new Promise((resolve, reject) => {\n if (!keyPair || !keyPair.publicKey)\n return reject(new Error('Need Signer to sign input'));\n // TODO: Add a pubkey/pubkeyhash cache to each input\n // as input information is added, then eventually\n // optimize this method.\n const results = [];\n const promises = [];\n for (const [i] of this.data.inputs.entries()) {\n promises.push(\n this.signInputAsync(i, keyPair, sighashTypes).then(\n () => {\n results.push(true);\n },\n () => {\n results.push(false);\n },\n ),\n );\n }\n return Promise.all(promises).then(() => {\n if (results.every(v => v === false)) {\n return reject(new Error('No inputs were signed'));\n }\n resolve();\n });\n });\n }\n signInput(\n inputIndex,\n keyPair,\n sighashTypes = [transaction_1.Transaction.SIGHASH_ALL],\n ) {\n if (!keyPair || !keyPair.publicKey)\n throw new Error('Need Signer to sign input');\n const { hash, sighashType } = getHashAndSighashType(\n this.data.inputs,\n inputIndex,\n keyPair.publicKey,\n this.__CACHE,\n sighashTypes,\n );\n const partialSig = [\n {\n pubkey: keyPair.publicKey,\n signature: bscript.signature.encode(keyPair.sign(hash), sighashType),\n },\n ];\n this.data.updateInput(inputIndex, { partialSig });\n return this;\n }\n signInputAsync(\n inputIndex,\n keyPair,\n sighashTypes = [transaction_1.Transaction.SIGHASH_ALL],\n ) {\n return Promise.resolve().then(() => {\n if (!keyPair || !keyPair.publicKey)\n throw new Error('Need Signer to sign input');\n const { hash, sighashType } = getHashAndSighashType(\n this.data.inputs,\n inputIndex,\n keyPair.publicKey,\n this.__CACHE,\n sighashTypes,\n );\n return Promise.resolve(keyPair.sign(hash)).then(signature => {\n const partialSig = [\n {\n pubkey: keyPair.publicKey,\n signature: bscript.signature.encode(signature, sighashType),\n },\n ];\n this.data.updateInput(inputIndex, { partialSig });\n });\n });\n }\n toBuffer() {\n checkCache(this.__CACHE);\n return this.data.toBuffer();\n }\n toHex() {\n checkCache(this.__CACHE);\n return this.data.toHex();\n }\n toBase64() {\n checkCache(this.__CACHE);\n return this.data.toBase64();\n }\n updateGlobal(updateData) {\n this.data.updateGlobal(updateData);\n return this;\n }\n updateInput(inputIndex, updateData) {\n if (updateData.witnessScript) checkInvalidP2WSH(updateData.witnessScript);\n this.data.updateInput(inputIndex, updateData);\n if (updateData.nonWitnessUtxo) {\n addNonWitnessTxCache(\n this.__CACHE,\n this.data.inputs[inputIndex],\n inputIndex,\n );\n }\n return this;\n }\n updateOutput(outputIndex, updateData) {\n this.data.updateOutput(outputIndex, updateData);\n return this;\n }\n addUnknownKeyValToGlobal(keyVal) {\n this.data.addUnknownKeyValToGlobal(keyVal);\n return this;\n }\n addUnknownKeyValToInput(inputIndex, keyVal) {\n this.data.addUnknownKeyValToInput(inputIndex, keyVal);\n return this;\n }\n addUnknownKeyValToOutput(outputIndex, keyVal) {\n this.data.addUnknownKeyValToOutput(outputIndex, keyVal);\n return this;\n }\n clearFinalizedInput(inputIndex) {\n this.data.clearFinalizedInput(inputIndex);\n return this;\n }\n}\nexports.Psbt = Psbt;\n/**\n * This function is needed to pass to the bip174 base class's fromBuffer.\n * It takes the \"transaction buffer\" portion of the psbt buffer and returns a\n * Transaction (From the bip174 library) interface.\n */\nconst transactionFromBuffer = buffer => new PsbtTransaction(buffer);\n/**\n * This class implements the Transaction interface from bip174 library.\n * It contains a bitcoinjs-lib Transaction object.\n */\nclass PsbtTransaction {\n constructor(buffer = Buffer.from([2, 0, 0, 0, 0, 0, 0, 0, 0, 0])) {\n this.tx = transaction_1.Transaction.fromBuffer(buffer);\n checkTxEmpty(this.tx);\n Object.defineProperty(this, 'tx', {\n enumerable: false,\n writable: true,\n });\n }\n getInputOutputCounts() {\n return {\n inputCount: this.tx.ins.length,\n outputCount: this.tx.outs.length,\n };\n }\n addInput(input) {\n if (\n input.hash === undefined ||\n input.index === undefined ||\n (!Buffer.isBuffer(input.hash) && typeof input.hash !== 'string') ||\n typeof input.index !== 'number'\n ) {\n throw new Error('Error adding input.');\n }\n const hash =\n typeof input.hash === 'string'\n ? bufferutils_1.reverseBuffer(Buffer.from(input.hash, 'hex'))\n : input.hash;\n this.tx.addInput(hash, input.index, input.sequence);\n }\n addOutput(output) {\n if (\n output.script === undefined ||\n output.value === undefined ||\n !Buffer.isBuffer(output.script) ||\n typeof output.value !== 'number'\n ) {\n throw new Error('Error adding output.');\n }\n this.tx.addOutput(output.script, output.value);\n }\n toBuffer() {\n return this.tx.toBuffer();\n }\n}\nfunction canFinalize(input, script, scriptType) {\n switch (scriptType) {\n case 'pubkey':\n case 'pubkeyhash':\n case 'witnesspubkeyhash':\n return hasSigs(1, input.partialSig);\n case 'multisig':\n const p2ms = payments.p2ms({ output: script });\n return hasSigs(p2ms.m, input.partialSig, p2ms.pubkeys);\n default:\n return false;\n }\n}\nfunction checkCache(cache) {\n if (cache.__UNSAFE_SIGN_NONSEGWIT !== false) {\n throw new Error('Not BIP174 compliant, can not export');\n }\n}\nfunction hasSigs(neededSigs, partialSig, pubkeys) {\n if (!partialSig) return false;\n let sigs;\n if (pubkeys) {\n sigs = pubkeys\n .map(pkey => {\n const pubkey = ecpair_1.fromPublicKey(pkey, { compressed: true })\n .publicKey;\n return partialSig.find(pSig => pSig.pubkey.equals(pubkey));\n })\n .filter(v => !!v);\n } else {\n sigs = partialSig;\n }\n if (sigs.length > neededSigs) throw new Error('Too many signatures');\n return sigs.length === neededSigs;\n}\nfunction isFinalized(input) {\n return !!input.finalScriptSig || !!input.finalScriptWitness;\n}\nfunction isPaymentFactory(payment) {\n return script => {\n try {\n payment({ output: script });\n return true;\n } catch (err) {\n return false;\n }\n };\n}\nconst isP2MS = isPaymentFactory(payments.p2ms);\nconst isP2PK = isPaymentFactory(payments.p2pk);\nconst isP2PKH = isPaymentFactory(payments.p2pkh);\nconst isP2WPKH = isPaymentFactory(payments.p2wpkh);\nconst isP2WSHScript = isPaymentFactory(payments.p2wsh);\nconst isP2SHScript = isPaymentFactory(payments.p2sh);\nfunction bip32DerivationIsMine(root) {\n return d => {\n if (!d.masterFingerprint.equals(root.fingerprint)) return false;\n if (!root.derivePath(d.path).publicKey.equals(d.pubkey)) return false;\n return true;\n };\n}\nfunction check32Bit(num) {\n if (\n typeof num !== 'number' ||\n num !== Math.floor(num) ||\n num > 0xffffffff ||\n num < 0\n ) {\n throw new Error('Invalid 32 bit integer');\n }\n}\nfunction checkFees(psbt, cache, opts) {\n const feeRate = cache.__FEE_RATE || psbt.getFeeRate();\n const vsize = cache.__EXTRACTED_TX.virtualSize();\n const satoshis = feeRate * vsize;\n if (feeRate >= opts.maximumFeeRate) {\n throw new Error(\n `Warning: You are paying around ${(satoshis / 1e8).toFixed(8)} in ` +\n `fees, which is ${feeRate} satoshi per byte for a transaction ` +\n `with a VSize of ${vsize} bytes (segwit counted as 0.25 byte per ` +\n `byte). Use setMaximumFeeRate method to raise your threshold, or ` +\n `pass true to the first arg of extractTransaction.`,\n );\n }\n}\nfunction checkInputsForPartialSig(inputs, action) {\n inputs.forEach(input => {\n let throws = false;\n let pSigs = [];\n if ((input.partialSig || []).length === 0) {\n if (!input.finalScriptSig && !input.finalScriptWitness) return;\n pSigs = getPsigsFromInputFinalScripts(input);\n } else {\n pSigs = input.partialSig;\n }\n pSigs.forEach(pSig => {\n const { hashType } = bscript.signature.decode(pSig.signature);\n const whitelist = [];\n const isAnyoneCanPay =\n hashType & transaction_1.Transaction.SIGHASH_ANYONECANPAY;\n if (isAnyoneCanPay) whitelist.push('addInput');\n const hashMod = hashType & 0x1f;\n switch (hashMod) {\n case transaction_1.Transaction.SIGHASH_ALL:\n break;\n case transaction_1.Transaction.SIGHASH_SINGLE:\n case transaction_1.Transaction.SIGHASH_NONE:\n whitelist.push('addOutput');\n whitelist.push('setInputSequence');\n break;\n }\n if (whitelist.indexOf(action) === -1) {\n throws = true;\n }\n });\n if (throws) {\n throw new Error('Can not modify transaction, signatures exist.');\n }\n });\n}\nfunction checkPartialSigSighashes(input) {\n if (!input.sighashType || !input.partialSig) return;\n const { partialSig, sighashType } = input;\n partialSig.forEach(pSig => {\n const { hashType } = bscript.signature.decode(pSig.signature);\n if (sighashType !== hashType) {\n throw new Error('Signature sighash does not match input sighash type');\n }\n });\n}\nfunction checkScriptForPubkey(pubkey, script, action) {\n if (!pubkeyInScript(pubkey, script)) {\n throw new Error(\n `Can not ${action} for this input with the key ${pubkey.toString('hex')}`,\n );\n }\n}\nfunction checkTxEmpty(tx) {\n const isEmpty = tx.ins.every(\n input =>\n input.script &&\n input.script.length === 0 &&\n input.witness &&\n input.witness.length === 0,\n );\n if (!isEmpty) {\n throw new Error('Format Error: Transaction ScriptSigs are not empty');\n }\n}\nfunction checkTxForDupeIns(tx, cache) {\n tx.ins.forEach(input => {\n checkTxInputCache(cache, input);\n });\n}\nfunction checkTxInputCache(cache, input) {\n const key =\n bufferutils_1.reverseBuffer(Buffer.from(input.hash)).toString('hex') +\n ':' +\n input.index;\n if (cache.__TX_IN_CACHE[key]) throw new Error('Duplicate input detected.');\n cache.__TX_IN_CACHE[key] = 1;\n}\nfunction scriptCheckerFactory(payment, paymentScriptName) {\n return (inputIndex, scriptPubKey, redeemScript, ioType) => {\n const redeemScriptOutput = payment({\n redeem: { output: redeemScript },\n }).output;\n if (!scriptPubKey.equals(redeemScriptOutput)) {\n throw new Error(\n `${paymentScriptName} for ${ioType} #${inputIndex} doesn't match the scriptPubKey in the prevout`,\n );\n }\n };\n}\nconst checkRedeemScript = scriptCheckerFactory(payments.p2sh, 'Redeem script');\nconst checkWitnessScript = scriptCheckerFactory(\n payments.p2wsh,\n 'Witness script',\n);\nfunction getTxCacheValue(key, name, inputs, c) {\n if (!inputs.every(isFinalized))\n throw new Error(`PSBT must be finalized to calculate ${name}`);\n if (key === '__FEE_RATE' && c.__FEE_RATE) return c.__FEE_RATE;\n if (key === '__FEE' && c.__FEE) return c.__FEE;\n let tx;\n let mustFinalize = true;\n if (c.__EXTRACTED_TX) {\n tx = c.__EXTRACTED_TX;\n mustFinalize = false;\n } else {\n tx = c.__TX.clone();\n }\n inputFinalizeGetAmts(inputs, tx, c, mustFinalize);\n if (key === '__FEE_RATE') return c.__FEE_RATE;\n else if (key === '__FEE') return c.__FEE;\n}\nfunction getFinalScripts(inputIndex, input, script, isSegwit, isP2SH, isP2WSH) {\n const scriptType = classifyScript(script);\n if (!canFinalize(input, script, scriptType))\n throw new Error(`Can not finalize input #${inputIndex}`);\n return prepareFinalScripts(\n script,\n scriptType,\n input.partialSig,\n isSegwit,\n isP2SH,\n isP2WSH,\n );\n}\nfunction prepareFinalScripts(\n script,\n scriptType,\n partialSig,\n isSegwit,\n isP2SH,\n isP2WSH,\n) {\n let finalScriptSig;\n let finalScriptWitness;\n // Wow, the payments API is very handy\n const payment = getPayment(script, scriptType, partialSig);\n const p2wsh = !isP2WSH ? null : payments.p2wsh({ redeem: payment });\n const p2sh = !isP2SH ? null : payments.p2sh({ redeem: p2wsh || payment });\n if (isSegwit) {\n if (p2wsh) {\n finalScriptWitness = witnessStackToScriptWitness(p2wsh.witness);\n } else {\n finalScriptWitness = witnessStackToScriptWitness(payment.witness);\n }\n if (p2sh) {\n finalScriptSig = p2sh.input;\n }\n } else {\n if (p2sh) {\n finalScriptSig = p2sh.input;\n } else {\n finalScriptSig = payment.input;\n }\n }\n return {\n finalScriptSig,\n finalScriptWitness,\n };\n}\nfunction getHashAndSighashType(\n inputs,\n inputIndex,\n pubkey,\n cache,\n sighashTypes,\n) {\n const input = utils_1.checkForInput(inputs, inputIndex);\n const { hash, sighashType, script } = getHashForSig(\n inputIndex,\n input,\n cache,\n false,\n sighashTypes,\n );\n checkScriptForPubkey(pubkey, script, 'sign');\n return {\n hash,\n sighashType,\n };\n}\nfunction getHashForSig(inputIndex, input, cache, forValidate, sighashTypes) {\n const unsignedTx = cache.__TX;\n const sighashType =\n input.sighashType || transaction_1.Transaction.SIGHASH_ALL;\n if (sighashTypes && sighashTypes.indexOf(sighashType) < 0) {\n const str = sighashTypeToString(sighashType);\n throw new Error(\n `Sighash type is not allowed. Retry the sign method passing the ` +\n `sighashTypes array of whitelisted types. Sighash type: ${str}`,\n );\n }\n let hash;\n let prevout;\n if (input.nonWitnessUtxo) {\n const nonWitnessUtxoTx = nonWitnessUtxoTxFromCache(\n cache,\n input,\n inputIndex,\n );\n const prevoutHash = unsignedTx.ins[inputIndex].hash;\n const utxoHash = nonWitnessUtxoTx.getHash();\n // If a non-witness UTXO is provided, its hash must match the hash specified in the prevout\n if (!prevoutHash.equals(utxoHash)) {\n throw new Error(\n `Non-witness UTXO hash for input #${inputIndex} doesn't match the hash specified in the prevout`,\n );\n }\n const prevoutIndex = unsignedTx.ins[inputIndex].index;\n prevout = nonWitnessUtxoTx.outs[prevoutIndex];\n } else if (input.witnessUtxo) {\n prevout = input.witnessUtxo;\n } else {\n throw new Error('Need a Utxo input item for signing');\n }\n const { meaningfulScript, type } = getMeaningfulScript(\n prevout.script,\n inputIndex,\n 'input',\n input.redeemScript,\n input.witnessScript,\n );\n if (['p2sh-p2wsh', 'p2wsh'].indexOf(type) >= 0) {\n hash = unsignedTx.hashForWitnessV0(\n inputIndex,\n meaningfulScript,\n prevout.value,\n sighashType,\n );\n } else if (isP2WPKH(meaningfulScript)) {\n // P2WPKH uses the P2PKH template for prevoutScript when signing\n const signingScript = payments.p2pkh({ hash: meaningfulScript.slice(2) })\n .output;\n hash = unsignedTx.hashForWitnessV0(\n inputIndex,\n signingScript,\n prevout.value,\n sighashType,\n );\n } else {\n // non-segwit\n if (\n input.nonWitnessUtxo === undefined &&\n cache.__UNSAFE_SIGN_NONSEGWIT === false\n )\n throw new Error(\n `Input #${inputIndex} has witnessUtxo but non-segwit script: ` +\n `${meaningfulScript.toString('hex')}`,\n );\n if (!forValidate && cache.__UNSAFE_SIGN_NONSEGWIT !== false)\n console.warn(\n 'Warning: Signing non-segwit inputs without the full parent transaction ' +\n 'means there is a chance that a miner could feed you incorrect information ' +\n 'to trick you into paying large fees. This behavior is the same as the old ' +\n 'TransactionBuilder class when signing non-segwit scripts. You are not ' +\n 'able to export this Psbt with toBuffer|toBase64|toHex since it is not ' +\n 'BIP174 compliant.\\n*********************\\nPROCEED WITH CAUTION!\\n' +\n '*********************',\n );\n hash = unsignedTx.hashForSignature(\n inputIndex,\n meaningfulScript,\n sighashType,\n );\n }\n return {\n script: meaningfulScript,\n sighashType,\n hash,\n };\n}\nfunction getPayment(script, scriptType, partialSig) {\n let payment;\n switch (scriptType) {\n case 'multisig':\n const sigs = getSortedSigs(script, partialSig);\n payment = payments.p2ms({\n output: script,\n signatures: sigs,\n });\n break;\n case 'pubkey':\n payment = payments.p2pk({\n output: script,\n signature: partialSig[0].signature,\n });\n break;\n case 'pubkeyhash':\n payment = payments.p2pkh({\n output: script,\n pubkey: partialSig[0].pubkey,\n signature: partialSig[0].signature,\n });\n break;\n case 'witnesspubkeyhash':\n payment = payments.p2wpkh({\n output: script,\n pubkey: partialSig[0].pubkey,\n signature: partialSig[0].signature,\n });\n break;\n }\n return payment;\n}\nfunction getPsigsFromInputFinalScripts(input) {\n const scriptItems = !input.finalScriptSig\n ? []\n : bscript.decompile(input.finalScriptSig) || [];\n const witnessItems = !input.finalScriptWitness\n ? []\n : bscript.decompile(input.finalScriptWitness) || [];\n return scriptItems\n .concat(witnessItems)\n .filter(item => {\n return Buffer.isBuffer(item) && bscript.isCanonicalScriptSignature(item);\n })\n .map(sig => ({ signature: sig }));\n}\nfunction getScriptFromInput(inputIndex, input, cache) {\n const unsignedTx = cache.__TX;\n const res = {\n script: null,\n isSegwit: false,\n isP2SH: false,\n isP2WSH: false,\n };\n res.isP2SH = !!input.redeemScript;\n res.isP2WSH = !!input.witnessScript;\n if (input.witnessScript) {\n res.script = input.witnessScript;\n } else if (input.redeemScript) {\n res.script = input.redeemScript;\n } else {\n if (input.nonWitnessUtxo) {\n const nonWitnessUtxoTx = nonWitnessUtxoTxFromCache(\n cache,\n input,\n inputIndex,\n );\n const prevoutIndex = unsignedTx.ins[inputIndex].index;\n res.script = nonWitnessUtxoTx.outs[prevoutIndex].script;\n } else if (input.witnessUtxo) {\n res.script = input.witnessUtxo.script;\n }\n }\n if (input.witnessScript || isP2WPKH(res.script)) {\n res.isSegwit = true;\n }\n return res;\n}\nfunction getSignersFromHD(inputIndex, inputs, hdKeyPair) {\n const input = utils_1.checkForInput(inputs, inputIndex);\n if (!input.bip32Derivation || input.bip32Derivation.length === 0) {\n throw new Error('Need bip32Derivation to sign with HD');\n }\n const myDerivations = input.bip32Derivation\n .map(bipDv => {\n if (bipDv.masterFingerprint.equals(hdKeyPair.fingerprint)) {\n return bipDv;\n } else {\n return;\n }\n })\n .filter(v => !!v);\n if (myDerivations.length === 0) {\n throw new Error(\n 'Need one bip32Derivation masterFingerprint to match the HDSigner fingerprint',\n );\n }\n const signers = myDerivations.map(bipDv => {\n const node = hdKeyPair.derivePath(bipDv.path);\n if (!bipDv.pubkey.equals(node.publicKey)) {\n throw new Error('pubkey did not match bip32Derivation');\n }\n return node;\n });\n return signers;\n}\nfunction getSortedSigs(script, partialSig) {\n const p2ms = payments.p2ms({ output: script });\n // for each pubkey in order of p2ms script\n return p2ms.pubkeys\n .map(pk => {\n // filter partialSig array by pubkey being equal\n return (\n partialSig.filter(ps => {\n return ps.pubkey.equals(pk);\n })[0] || {}\n ).signature;\n // Any pubkey without a match will return undefined\n // this last filter removes all the undefined items in the array.\n })\n .filter(v => !!v);\n}\nfunction scriptWitnessToWitnessStack(buffer) {\n let offset = 0;\n function readSlice(n) {\n offset += n;\n return buffer.slice(offset - n, offset);\n }\n function readVarInt() {\n const vi = varuint.decode(buffer, offset);\n offset += varuint.decode.bytes;\n return vi;\n }\n function readVarSlice() {\n return readSlice(readVarInt());\n }\n function readVector() {\n const count = readVarInt();\n const vector = [];\n for (let i = 0; i < count; i++) vector.push(readVarSlice());\n return vector;\n }\n return readVector();\n}\nfunction sighashTypeToString(sighashType) {\n let text =\n sighashType & transaction_1.Transaction.SIGHASH_ANYONECANPAY\n ? 'SIGHASH_ANYONECANPAY | '\n : '';\n const sigMod = sighashType & 0x1f;\n switch (sigMod) {\n case transaction_1.Transaction.SIGHASH_ALL:\n text += 'SIGHASH_ALL';\n break;\n case transaction_1.Transaction.SIGHASH_SINGLE:\n text += 'SIGHASH_SINGLE';\n break;\n case transaction_1.Transaction.SIGHASH_NONE:\n text += 'SIGHASH_NONE';\n break;\n }\n return text;\n}\nfunction witnessStackToScriptWitness(witness) {\n let buffer = Buffer.allocUnsafe(0);\n function writeSlice(slice) {\n buffer = Buffer.concat([buffer, Buffer.from(slice)]);\n }\n function writeVarInt(i) {\n const currentLen = buffer.length;\n const varintLen = varuint.encodingLength(i);\n buffer = Buffer.concat([buffer, Buffer.allocUnsafe(varintLen)]);\n varuint.encode(i, buffer, currentLen);\n }\n function writeVarSlice(slice) {\n writeVarInt(slice.length);\n writeSlice(slice);\n }\n function writeVector(vector) {\n writeVarInt(vector.length);\n vector.forEach(writeVarSlice);\n }\n writeVector(witness);\n return buffer;\n}\nfunction addNonWitnessTxCache(cache, input, inputIndex) {\n cache.__NON_WITNESS_UTXO_BUF_CACHE[inputIndex] = input.nonWitnessUtxo;\n const tx = transaction_1.Transaction.fromBuffer(input.nonWitnessUtxo);\n cache.__NON_WITNESS_UTXO_TX_CACHE[inputIndex] = tx;\n const self = cache;\n const selfIndex = inputIndex;\n delete input.nonWitnessUtxo;\n Object.defineProperty(input, 'nonWitnessUtxo', {\n enumerable: true,\n get() {\n const buf = self.__NON_WITNESS_UTXO_BUF_CACHE[selfIndex];\n const txCache = self.__NON_WITNESS_UTXO_TX_CACHE[selfIndex];\n if (buf !== undefined) {\n return buf;\n } else {\n const newBuf = txCache.toBuffer();\n self.__NON_WITNESS_UTXO_BUF_CACHE[selfIndex] = newBuf;\n return newBuf;\n }\n },\n set(data) {\n self.__NON_WITNESS_UTXO_BUF_CACHE[selfIndex] = data;\n },\n });\n}\nfunction inputFinalizeGetAmts(inputs, tx, cache, mustFinalize) {\n let inputAmount = 0;\n inputs.forEach((input, idx) => {\n if (mustFinalize && input.finalScriptSig)\n tx.ins[idx].script = input.finalScriptSig;\n if (mustFinalize && input.finalScriptWitness) {\n tx.ins[idx].witness = scriptWitnessToWitnessStack(\n input.finalScriptWitness,\n );\n }\n if (input.witnessUtxo) {\n inputAmount += input.witnessUtxo.value;\n } else if (input.nonWitnessUtxo) {\n const nwTx = nonWitnessUtxoTxFromCache(cache, input, idx);\n const vout = tx.ins[idx].index;\n const out = nwTx.outs[vout];\n inputAmount += out.value;\n }\n });\n const outputAmount = tx.outs.reduce((total, o) => total + o.value, 0);\n const fee = inputAmount - outputAmount;\n if (fee < 0) {\n throw new Error('Outputs are spending more than Inputs');\n }\n const bytes = tx.virtualSize();\n cache.__FEE = fee;\n cache.__EXTRACTED_TX = tx;\n cache.__FEE_RATE = Math.floor(fee / bytes);\n}\nfunction nonWitnessUtxoTxFromCache(cache, input, inputIndex) {\n const c = cache.__NON_WITNESS_UTXO_TX_CACHE;\n if (!c[inputIndex]) {\n addNonWitnessTxCache(cache, input, inputIndex);\n }\n return c[inputIndex];\n}\nfunction getScriptFromUtxo(inputIndex, input, cache) {\n if (input.witnessUtxo !== undefined) {\n return input.witnessUtxo.script;\n } else if (input.nonWitnessUtxo !== undefined) {\n const nonWitnessUtxoTx = nonWitnessUtxoTxFromCache(\n cache,\n input,\n inputIndex,\n );\n return nonWitnessUtxoTx.outs[cache.__TX.ins[inputIndex].index].script;\n } else {\n throw new Error(\"Can't find pubkey in input without Utxo data\");\n }\n}\nfunction pubkeyInInput(pubkey, input, inputIndex, cache) {\n const script = getScriptFromUtxo(inputIndex, input, cache);\n const { meaningfulScript } = getMeaningfulScript(\n script,\n inputIndex,\n 'input',\n input.redeemScript,\n input.witnessScript,\n );\n return pubkeyInScript(pubkey, meaningfulScript);\n}\nfunction pubkeyInOutput(pubkey, output, outputIndex, cache) {\n const script = cache.__TX.outs[outputIndex].script;\n const { meaningfulScript } = getMeaningfulScript(\n script,\n outputIndex,\n 'output',\n output.redeemScript,\n output.witnessScript,\n );\n return pubkeyInScript(pubkey, meaningfulScript);\n}\nfunction redeemFromFinalScriptSig(finalScript) {\n if (!finalScript) return;\n const decomp = bscript.decompile(finalScript);\n if (!decomp) return;\n const lastItem = decomp[decomp.length - 1];\n if (\n !Buffer.isBuffer(lastItem) ||\n isPubkeyLike(lastItem) ||\n isSigLike(lastItem)\n )\n return;\n const sDecomp = bscript.decompile(lastItem);\n if (!sDecomp) return;\n return lastItem;\n}\nfunction redeemFromFinalWitnessScript(finalScript) {\n if (!finalScript) return;\n const decomp = scriptWitnessToWitnessStack(finalScript);\n const lastItem = decomp[decomp.length - 1];\n if (isPubkeyLike(lastItem)) return;\n const sDecomp = bscript.decompile(lastItem);\n if (!sDecomp) return;\n return lastItem;\n}\nfunction isPubkeyLike(buf) {\n return buf.length === 33 && bscript.isCanonicalPubKey(buf);\n}\nfunction isSigLike(buf) {\n return bscript.isCanonicalScriptSignature(buf);\n}\nfunction getMeaningfulScript(\n script,\n index,\n ioType,\n redeemScript,\n witnessScript,\n) {\n const isP2SH = isP2SHScript(script);\n const isP2SHP2WSH = isP2SH && redeemScript && isP2WSHScript(redeemScript);\n const isP2WSH = isP2WSHScript(script);\n if (isP2SH && redeemScript === undefined)\n throw new Error('scriptPubkey is P2SH but redeemScript missing');\n if ((isP2WSH || isP2SHP2WSH) && witnessScript === undefined)\n throw new Error(\n 'scriptPubkey or redeemScript is P2WSH but witnessScript missing',\n );\n let meaningfulScript;\n if (isP2SHP2WSH) {\n meaningfulScript = witnessScript;\n checkRedeemScript(index, script, redeemScript, ioType);\n checkWitnessScript(index, redeemScript, witnessScript, ioType);\n checkInvalidP2WSH(meaningfulScript);\n } else if (isP2WSH) {\n meaningfulScript = witnessScript;\n checkWitnessScript(index, script, witnessScript, ioType);\n checkInvalidP2WSH(meaningfulScript);\n } else if (isP2SH) {\n meaningfulScript = redeemScript;\n checkRedeemScript(index, script, redeemScript, ioType);\n } else {\n meaningfulScript = script;\n }\n return {\n meaningfulScript,\n type: isP2SHP2WSH\n ? 'p2sh-p2wsh'\n : isP2SH\n ? 'p2sh'\n : isP2WSH\n ? 'p2wsh'\n : 'raw',\n };\n}\nfunction checkInvalidP2WSH(script) {\n if (isP2WPKH(script) || isP2SHScript(script)) {\n throw new Error('P2WPKH or P2SH can not be contained within P2WSH');\n }\n}\nfunction pubkeyInScript(pubkey, script) {\n const pubkeyHash = crypto_1.hash160(pubkey);\n const decompiled = bscript.decompile(script);\n if (decompiled === null) throw new Error('Unknown script error');\n return decompiled.some(element => {\n if (typeof element === 'number') return false;\n return element.equals(pubkey) || element.equals(pubkeyHash);\n });\n}\nfunction classifyScript(script) {\n if (isP2WPKH(script)) return 'witnesspubkeyhash';\n if (isP2PKH(script)) return 'pubkeyhash';\n if (isP2MS(script)) return 'multisig';\n if (isP2PK(script)) return 'pubkey';\n return 'nonstandard';\n}\nfunction range(n) {\n return [...Array(n).keys()];\n}\n", "'use strict';\n// OP_0 [signatures ...]\nObject.defineProperty(exports, '__esModule', { value: true });\nconst bscript = require('../../script');\nconst script_1 = require('../../script');\nfunction partialSignature(value) {\n return (\n value === script_1.OPS.OP_0 || bscript.isCanonicalScriptSignature(value)\n );\n}\nfunction check(script, allowIncomplete) {\n const chunks = bscript.decompile(script);\n if (chunks.length < 2) return false;\n if (chunks[0] !== script_1.OPS.OP_0) return false;\n if (allowIncomplete) {\n return chunks.slice(1).every(partialSignature);\n }\n return chunks.slice(1).every(bscript.isCanonicalScriptSignature);\n}\nexports.check = check;\ncheck.toJSON = () => {\n return 'multisig input';\n};\n", "'use strict';\n// m [pubKeys ...] n OP_CHECKMULTISIG\nObject.defineProperty(exports, '__esModule', { value: true });\nconst bscript = require('../../script');\nconst script_1 = require('../../script');\nconst types = require('../../types');\nconst OP_INT_BASE = script_1.OPS.OP_RESERVED; // OP_1 - 1\nfunction check(script, allowIncomplete) {\n const chunks = bscript.decompile(script);\n if (chunks.length < 4) return false;\n if (chunks[chunks.length - 1] !== script_1.OPS.OP_CHECKMULTISIG) return false;\n if (!types.Number(chunks[0])) return false;\n if (!types.Number(chunks[chunks.length - 2])) return false;\n const m = chunks[0] - OP_INT_BASE;\n const n = chunks[chunks.length - 2] - OP_INT_BASE;\n if (m <= 0) return false;\n if (n > 16) return false;\n if (m > n) return false;\n if (n !== chunks.length - 3) return false;\n if (allowIncomplete) return true;\n const keys = chunks.slice(1, -2);\n return keys.every(bscript.isCanonicalPubKey);\n}\nexports.check = check;\ncheck.toJSON = () => {\n return 'multi-sig output';\n};\n", "'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nconst input = require('./input');\nexports.input = input;\nconst output = require('./output');\nexports.output = output;\n", "'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\n// OP_RETURN {data}\nconst bscript = require('../script');\nconst OPS = bscript.OPS;\nfunction check(script) {\n const buffer = bscript.compile(script);\n return buffer.length > 1 && buffer[0] === OPS.OP_RETURN;\n}\nexports.check = check;\ncheck.toJSON = () => {\n return 'null data output';\n};\nconst output = { check };\nexports.output = output;\n", "'use strict';\n// {signature}\nObject.defineProperty(exports, '__esModule', { value: true });\nconst bscript = require('../../script');\nfunction check(script) {\n const chunks = bscript.decompile(script);\n return chunks.length === 1 && bscript.isCanonicalScriptSignature(chunks[0]);\n}\nexports.check = check;\ncheck.toJSON = () => {\n return 'pubKey input';\n};\n", "'use strict';\n// {pubKey} OP_CHECKSIG\nObject.defineProperty(exports, '__esModule', { value: true });\nconst bscript = require('../../script');\nconst script_1 = require('../../script');\nfunction check(script) {\n const chunks = bscript.decompile(script);\n return (\n chunks.length === 2 &&\n bscript.isCanonicalPubKey(chunks[0]) &&\n chunks[1] === script_1.OPS.OP_CHECKSIG\n );\n}\nexports.check = check;\ncheck.toJSON = () => {\n return 'pubKey output';\n};\n", "'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nconst input = require('./input');\nexports.input = input;\nconst output = require('./output');\nexports.output = output;\n", "'use strict';\n// {signature} {pubKey}\nObject.defineProperty(exports, '__esModule', { value: true });\nconst bscript = require('../../script');\nfunction check(script) {\n const chunks = bscript.decompile(script);\n return (\n chunks.length === 2 &&\n bscript.isCanonicalScriptSignature(chunks[0]) &&\n bscript.isCanonicalPubKey(chunks[1])\n );\n}\nexports.check = check;\ncheck.toJSON = () => {\n return 'pubKeyHash input';\n};\n", "'use strict';\n// OP_DUP OP_HASH160 {pubKeyHash} OP_EQUALVERIFY OP_CHECKSIG\nObject.defineProperty(exports, '__esModule', { value: true });\nconst bscript = require('../../script');\nconst script_1 = require('../../script');\nfunction check(script) {\n const buffer = bscript.compile(script);\n return (\n buffer.length === 25 &&\n buffer[0] === script_1.OPS.OP_DUP &&\n buffer[1] === script_1.OPS.OP_HASH160 &&\n buffer[2] === 0x14 &&\n buffer[23] === script_1.OPS.OP_EQUALVERIFY &&\n buffer[24] === script_1.OPS.OP_CHECKSIG\n );\n}\nexports.check = check;\ncheck.toJSON = () => {\n return 'pubKeyHash output';\n};\n", "'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nconst input = require('./input');\nexports.input = input;\nconst output = require('./output');\nexports.output = output;\n", "'use strict';\n// OP_0 {pubKeyHash}\nObject.defineProperty(exports, '__esModule', { value: true });\nconst bscript = require('../../script');\nconst script_1 = require('../../script');\nfunction check(script) {\n const buffer = bscript.compile(script);\n return (\n buffer.length === 22 &&\n buffer[0] === script_1.OPS.OP_0 &&\n buffer[1] === 0x14\n );\n}\nexports.check = check;\ncheck.toJSON = () => {\n return 'Witness pubKeyHash output';\n};\n", "'use strict';\n// OP_0 {scriptHash}\nObject.defineProperty(exports, '__esModule', { value: true });\nconst bscript = require('../../script');\nconst script_1 = require('../../script');\nfunction check(script) {\n const buffer = bscript.compile(script);\n return (\n buffer.length === 34 &&\n buffer[0] === script_1.OPS.OP_0 &&\n buffer[1] === 0x20\n );\n}\nexports.check = check;\ncheck.toJSON = () => {\n return 'Witness scriptHash output';\n};\n", "'use strict';\n// {serialized scriptPubKey script}\nObject.defineProperty(exports, '__esModule', { value: true });\nconst bscript = require('../../script');\nconst p2ms = require('../multisig');\nconst p2pk = require('../pubkey');\nconst p2pkh = require('../pubkeyhash');\nconst p2wpkho = require('../witnesspubkeyhash/output');\nconst p2wsho = require('../witnessscripthash/output');\nfunction check(script, allowIncomplete) {\n const chunks = bscript.decompile(script);\n if (chunks.length < 1) return false;\n const lastChunk = chunks[chunks.length - 1];\n if (!Buffer.isBuffer(lastChunk)) return false;\n const scriptSigChunks = bscript.decompile(\n bscript.compile(chunks.slice(0, -1)),\n );\n const redeemScriptChunks = bscript.decompile(lastChunk);\n // is redeemScript a valid script?\n if (!redeemScriptChunks) return false;\n // is redeemScriptSig push only?\n if (!bscript.isPushOnly(scriptSigChunks)) return false;\n // is witness?\n if (chunks.length === 1) {\n return (\n p2wsho.check(redeemScriptChunks) || p2wpkho.check(redeemScriptChunks)\n );\n }\n // match types\n if (\n p2pkh.input.check(scriptSigChunks) &&\n p2pkh.output.check(redeemScriptChunks)\n )\n return true;\n if (\n p2ms.input.check(scriptSigChunks, allowIncomplete) &&\n p2ms.output.check(redeemScriptChunks)\n )\n return true;\n if (\n p2pk.input.check(scriptSigChunks) &&\n p2pk.output.check(redeemScriptChunks)\n )\n return true;\n return false;\n}\nexports.check = check;\ncheck.toJSON = () => {\n return 'scriptHash input';\n};\n", "'use strict';\n// OP_HASH160 {scriptHash} OP_EQUAL\nObject.defineProperty(exports, '__esModule', { value: true });\nconst bscript = require('../../script');\nconst script_1 = require('../../script');\nfunction check(script) {\n const buffer = bscript.compile(script);\n return (\n buffer.length === 23 &&\n buffer[0] === script_1.OPS.OP_HASH160 &&\n buffer[1] === 0x14 &&\n buffer[22] === script_1.OPS.OP_EQUAL\n );\n}\nexports.check = check;\ncheck.toJSON = () => {\n return 'scriptHash output';\n};\n", "'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nconst input = require('./input');\nexports.input = input;\nconst output = require('./output');\nexports.output = output;\n", "'use strict';\n// OP_RETURN {aa21a9ed} {commitment}\nObject.defineProperty(exports, '__esModule', { value: true });\nconst bscript = require('../../script');\nconst script_1 = require('../../script');\nconst types = require('../../types');\nconst typeforce = require('typeforce');\nconst HEADER = Buffer.from('aa21a9ed', 'hex');\nfunction check(script) {\n const buffer = bscript.compile(script);\n return (\n buffer.length > 37 &&\n buffer[0] === script_1.OPS.OP_RETURN &&\n buffer[1] === 0x24 &&\n buffer.slice(2, 6).equals(HEADER)\n );\n}\nexports.check = check;\ncheck.toJSON = () => {\n return 'Witness commitment output';\n};\nfunction encode(commitment) {\n typeforce(types.Hash256bit, commitment);\n const buffer = Buffer.allocUnsafe(36);\n HEADER.copy(buffer, 0);\n commitment.copy(buffer, 4);\n return bscript.compile([script_1.OPS.OP_RETURN, buffer]);\n}\nexports.encode = encode;\nfunction decode(buffer) {\n typeforce(check, buffer);\n return bscript.decompile(buffer)[1].slice(4, 36);\n}\nexports.decode = decode;\n", "'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nconst output = require('./output');\nexports.output = output;\n", "'use strict';\n// {signature} {pubKey}\nObject.defineProperty(exports, '__esModule', { value: true });\nconst bscript = require('../../script');\nfunction isCompressedCanonicalPubKey(pubKey) {\n return bscript.isCanonicalPubKey(pubKey) && pubKey.length === 33;\n}\nfunction check(script) {\n const chunks = bscript.decompile(script);\n return (\n chunks.length === 2 &&\n bscript.isCanonicalScriptSignature(chunks[0]) &&\n isCompressedCanonicalPubKey(chunks[1])\n );\n}\nexports.check = check;\ncheck.toJSON = () => {\n return 'witnessPubKeyHash input';\n};\n", "'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nconst input = require('./input');\nexports.input = input;\nconst output = require('./output');\nexports.output = output;\n", "'use strict';\n// {serialized scriptPubKey script}\nObject.defineProperty(exports, '__esModule', { value: true });\nconst bscript = require('../../script');\nconst typeforce = require('typeforce');\nconst p2ms = require('../multisig');\nconst p2pk = require('../pubkey');\nconst p2pkh = require('../pubkeyhash');\nfunction check(chunks, allowIncomplete) {\n typeforce(typeforce.Array, chunks);\n if (chunks.length < 1) return false;\n const witnessScript = chunks[chunks.length - 1];\n if (!Buffer.isBuffer(witnessScript)) return false;\n const witnessScriptChunks = bscript.decompile(witnessScript);\n // is witnessScript a valid script?\n if (!witnessScriptChunks || witnessScriptChunks.length === 0) return false;\n const witnessRawScriptSig = bscript.compile(chunks.slice(0, -1));\n // match types\n if (\n p2pkh.input.check(witnessRawScriptSig) &&\n p2pkh.output.check(witnessScriptChunks)\n )\n return true;\n if (\n p2ms.input.check(witnessRawScriptSig, allowIncomplete) &&\n p2ms.output.check(witnessScriptChunks)\n )\n return true;\n if (\n p2pk.input.check(witnessRawScriptSig) &&\n p2pk.output.check(witnessScriptChunks)\n )\n return true;\n return false;\n}\nexports.check = check;\ncheck.toJSON = () => {\n return 'witnessScriptHash input';\n};\n", "'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nconst input = require('./input');\nexports.input = input;\nconst output = require('./output');\nexports.output = output;\n", "'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nconst script_1 = require('./script');\nconst multisig = require('./templates/multisig');\nconst nullData = require('./templates/nulldata');\nconst pubKey = require('./templates/pubkey');\nconst pubKeyHash = require('./templates/pubkeyhash');\nconst scriptHash = require('./templates/scripthash');\nconst witnessCommitment = require('./templates/witnesscommitment');\nconst witnessPubKeyHash = require('./templates/witnesspubkeyhash');\nconst witnessScriptHash = require('./templates/witnessscripthash');\nconst types = {\n P2MS: 'multisig',\n NONSTANDARD: 'nonstandard',\n NULLDATA: 'nulldata',\n P2PK: 'pubkey',\n P2PKH: 'pubkeyhash',\n P2SH: 'scripthash',\n P2WPKH: 'witnesspubkeyhash',\n P2WSH: 'witnessscripthash',\n WITNESS_COMMITMENT: 'witnesscommitment',\n};\nexports.types = types;\nfunction classifyOutput(script) {\n if (witnessPubKeyHash.output.check(script)) return types.P2WPKH;\n if (witnessScriptHash.output.check(script)) return types.P2WSH;\n if (pubKeyHash.output.check(script)) return types.P2PKH;\n if (scriptHash.output.check(script)) return types.P2SH;\n // XXX: optimization, below functions .decompile before use\n const chunks = script_1.decompile(script);\n if (!chunks) throw new TypeError('Invalid script');\n if (multisig.output.check(chunks)) return types.P2MS;\n if (pubKey.output.check(chunks)) return types.P2PK;\n if (witnessCommitment.output.check(chunks)) return types.WITNESS_COMMITMENT;\n if (nullData.output.check(chunks)) return types.NULLDATA;\n return types.NONSTANDARD;\n}\nexports.output = classifyOutput;\nfunction classifyInput(script, allowIncomplete) {\n // XXX: optimization, below functions .decompile before use\n const chunks = script_1.decompile(script);\n if (!chunks) throw new TypeError('Invalid script');\n if (pubKeyHash.input.check(chunks)) return types.P2PKH;\n if (scriptHash.input.check(chunks, allowIncomplete)) return types.P2SH;\n if (multisig.input.check(chunks, allowIncomplete)) return types.P2MS;\n if (pubKey.input.check(chunks)) return types.P2PK;\n return types.NONSTANDARD;\n}\nexports.input = classifyInput;\nfunction classifyWitness(script, allowIncomplete) {\n // XXX: optimization, below functions .decompile before use\n const chunks = script_1.decompile(script);\n if (!chunks) throw new TypeError('Invalid script');\n if (witnessPubKeyHash.input.check(chunks)) return types.P2WPKH;\n if (witnessScriptHash.input.check(chunks, allowIncomplete))\n return types.P2WSH;\n return types.NONSTANDARD;\n}\nexports.witness = classifyWitness;\n", "'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nconst baddress = require('./address');\nconst bufferutils_1 = require('./bufferutils');\nconst classify = require('./classify');\nconst bcrypto = require('./crypto');\nconst ECPair = require('./ecpair');\nconst networks = require('./networks');\nconst payments = require('./payments');\nconst bscript = require('./script');\nconst script_1 = require('./script');\nconst transaction_1 = require('./transaction');\nconst types = require('./types');\nconst typeforce = require('typeforce');\nconst SCRIPT_TYPES = classify.types;\nconst PREVOUT_TYPES = new Set([\n // Raw\n 'p2pkh',\n 'p2pk',\n 'p2wpkh',\n 'p2ms',\n // P2SH wrapped\n 'p2sh-p2pkh',\n 'p2sh-p2pk',\n 'p2sh-p2wpkh',\n 'p2sh-p2ms',\n // P2WSH wrapped\n 'p2wsh-p2pkh',\n 'p2wsh-p2pk',\n 'p2wsh-p2ms',\n // P2SH-P2WSH wrapper\n 'p2sh-p2wsh-p2pkh',\n 'p2sh-p2wsh-p2pk',\n 'p2sh-p2wsh-p2ms',\n]);\nfunction tfMessage(type, value, message) {\n try {\n typeforce(type, value);\n } catch (err) {\n throw new Error(message);\n }\n}\nfunction txIsString(tx) {\n return typeof tx === 'string' || tx instanceof String;\n}\nfunction txIsTransaction(tx) {\n return tx instanceof transaction_1.Transaction;\n}\nclass TransactionBuilder {\n // WARNING: maximumFeeRate is __NOT__ to be relied on,\n // it's just another potential safety mechanism (safety in-depth)\n constructor(network = networks.bitcoin, maximumFeeRate = 2500) {\n this.network = network;\n this.maximumFeeRate = maximumFeeRate;\n this.__PREV_TX_SET = {};\n this.__INPUTS = [];\n this.__TX = new transaction_1.Transaction();\n this.__TX.version = 2;\n this.__USE_LOW_R = false;\n console.warn(\n 'Deprecation Warning: TransactionBuilder will be removed in the future. ' +\n '(v6.x.x or later) Please use the Psbt class instead. Examples of usage ' +\n 'are available in the transactions-psbt.js integration test file on our ' +\n 'Github. A high level explanation is available in the psbt.ts and psbt.js ' +\n 'files as well.',\n );\n }\n static fromTransaction(transaction, network) {\n const txb = new TransactionBuilder(network);\n // Copy transaction fields\n txb.setVersion(transaction.version);\n txb.setLockTime(transaction.locktime);\n // Copy outputs (done first to avoid signature invalidation)\n transaction.outs.forEach(txOut => {\n txb.addOutput(txOut.script, txOut.value);\n });\n // Copy inputs\n transaction.ins.forEach(txIn => {\n txb.__addInputUnsafe(txIn.hash, txIn.index, {\n sequence: txIn.sequence,\n script: txIn.script,\n witness: txIn.witness,\n });\n });\n // fix some things not possible through the public API\n txb.__INPUTS.forEach((input, i) => {\n fixMultisigOrder(input, transaction, i);\n });\n return txb;\n }\n setLowR(setting) {\n typeforce(typeforce.maybe(typeforce.Boolean), setting);\n if (setting === undefined) {\n setting = true;\n }\n this.__USE_LOW_R = setting;\n return setting;\n }\n setLockTime(locktime) {\n typeforce(types.UInt32, locktime);\n // if any signatures exist, throw\n if (\n this.__INPUTS.some(input => {\n if (!input.signatures) return false;\n return input.signatures.some(s => s !== undefined);\n })\n ) {\n throw new Error('No, this would invalidate signatures');\n }\n this.__TX.locktime = locktime;\n }\n setVersion(version) {\n typeforce(types.UInt32, version);\n // XXX: this might eventually become more complex depending on what the versions represent\n this.__TX.version = version;\n }\n addInput(txHash, vout, sequence, prevOutScript) {\n if (!this.__canModifyInputs()) {\n throw new Error('No, this would invalidate signatures');\n }\n let value;\n // is it a hex string?\n if (txIsString(txHash)) {\n // transaction hashs's are displayed in reverse order, un-reverse it\n txHash = bufferutils_1.reverseBuffer(Buffer.from(txHash, 'hex'));\n // is it a Transaction object?\n } else if (txIsTransaction(txHash)) {\n const txOut = txHash.outs[vout];\n prevOutScript = txOut.script;\n value = txOut.value;\n txHash = txHash.getHash(false);\n }\n return this.__addInputUnsafe(txHash, vout, {\n sequence,\n prevOutScript,\n value,\n });\n }\n addOutput(scriptPubKey, value) {\n if (!this.__canModifyOutputs()) {\n throw new Error('No, this would invalidate signatures');\n }\n // Attempt to get a script if it's a base58 or bech32 address string\n if (typeof scriptPubKey === 'string') {\n scriptPubKey = baddress.toOutputScript(scriptPubKey, this.network);\n }\n return this.__TX.addOutput(scriptPubKey, value);\n }\n build() {\n return this.__build(false);\n }\n buildIncomplete() {\n return this.__build(true);\n }\n sign(\n signParams,\n keyPair,\n redeemScript,\n hashType,\n witnessValue,\n witnessScript,\n ) {\n trySign(\n getSigningData(\n this.network,\n this.__INPUTS,\n this.__needsOutputs.bind(this),\n this.__TX,\n signParams,\n keyPair,\n redeemScript,\n hashType,\n witnessValue,\n witnessScript,\n this.__USE_LOW_R,\n ),\n );\n }\n __addInputUnsafe(txHash, vout, options) {\n if (transaction_1.Transaction.isCoinbaseHash(txHash)) {\n throw new Error('coinbase inputs not supported');\n }\n const prevTxOut = txHash.toString('hex') + ':' + vout;\n if (this.__PREV_TX_SET[prevTxOut] !== undefined)\n throw new Error('Duplicate TxOut: ' + prevTxOut);\n let input = {};\n // derive what we can from the scriptSig\n if (options.script !== undefined) {\n input = expandInput(options.script, options.witness || []);\n }\n // if an input value was given, retain it\n if (options.value !== undefined) {\n input.value = options.value;\n }\n // derive what we can from the previous transactions output script\n if (!input.prevOutScript && options.prevOutScript) {\n let prevOutType;\n if (!input.pubkeys && !input.signatures) {\n const expanded = expandOutput(options.prevOutScript);\n if (expanded.pubkeys) {\n input.pubkeys = expanded.pubkeys;\n input.signatures = expanded.signatures;\n }\n prevOutType = expanded.type;\n }\n input.prevOutScript = options.prevOutScript;\n input.prevOutType = prevOutType || classify.output(options.prevOutScript);\n }\n const vin = this.__TX.addInput(\n txHash,\n vout,\n options.sequence,\n options.scriptSig,\n );\n this.__INPUTS[vin] = input;\n this.__PREV_TX_SET[prevTxOut] = true;\n return vin;\n }\n __build(allowIncomplete) {\n if (!allowIncomplete) {\n if (!this.__TX.ins.length) throw new Error('Transaction has no inputs');\n if (!this.__TX.outs.length) throw new Error('Transaction has no outputs');\n }\n const tx = this.__TX.clone();\n // create script signatures from inputs\n this.__INPUTS.forEach((input, i) => {\n if (!input.prevOutType && !allowIncomplete)\n throw new Error('Transaction is not complete');\n const result = build(input.prevOutType, input, allowIncomplete);\n if (!result) {\n if (!allowIncomplete && input.prevOutType === SCRIPT_TYPES.NONSTANDARD)\n throw new Error('Unknown input type');\n if (!allowIncomplete) throw new Error('Not enough information');\n return;\n }\n tx.setInputScript(i, result.input);\n tx.setWitness(i, result.witness);\n });\n if (!allowIncomplete) {\n // do not rely on this, its merely a last resort\n if (this.__overMaximumFees(tx.virtualSize())) {\n throw new Error('Transaction has absurd fees');\n }\n }\n return tx;\n }\n __canModifyInputs() {\n return this.__INPUTS.every(input => {\n if (!input.signatures) return true;\n return input.signatures.every(signature => {\n if (!signature) return true;\n const hashType = signatureHashType(signature);\n // if SIGHASH_ANYONECANPAY is set, signatures would not\n // be invalidated by more inputs\n return (\n (hashType & transaction_1.Transaction.SIGHASH_ANYONECANPAY) !== 0\n );\n });\n });\n }\n __needsOutputs(signingHashType) {\n if (signingHashType === transaction_1.Transaction.SIGHASH_ALL) {\n return this.__TX.outs.length === 0;\n }\n // if inputs are being signed with SIGHASH_NONE, we don't strictly need outputs\n // .build() will fail, but .buildIncomplete() is OK\n return (\n this.__TX.outs.length === 0 &&\n this.__INPUTS.some(input => {\n if (!input.signatures) return false;\n return input.signatures.some(signature => {\n if (!signature) return false; // no signature, no issue\n const hashType = signatureHashType(signature);\n if (hashType & transaction_1.Transaction.SIGHASH_NONE) return false; // SIGHASH_NONE doesn't care about outputs\n return true; // SIGHASH_* does care\n });\n })\n );\n }\n __canModifyOutputs() {\n const nInputs = this.__TX.ins.length;\n const nOutputs = this.__TX.outs.length;\n return this.__INPUTS.every(input => {\n if (input.signatures === undefined) return true;\n return input.signatures.every(signature => {\n if (!signature) return true;\n const hashType = signatureHashType(signature);\n const hashTypeMod = hashType & 0x1f;\n if (hashTypeMod === transaction_1.Transaction.SIGHASH_NONE) return true;\n if (hashTypeMod === transaction_1.Transaction.SIGHASH_SINGLE) {\n // if SIGHASH_SINGLE is set, and nInputs > nOutputs\n // some signatures would be invalidated by the addition\n // of more outputs\n return nInputs <= nOutputs;\n }\n return false;\n });\n });\n }\n __overMaximumFees(bytes) {\n // not all inputs will have .value defined\n const incoming = this.__INPUTS.reduce((a, x) => a + (x.value >>> 0), 0);\n // but all outputs do, and if we have any input value\n // we can immediately determine if the outputs are too small\n const outgoing = this.__TX.outs.reduce((a, x) => a + x.value, 0);\n const fee = incoming - outgoing;\n const feeRate = fee / bytes;\n return feeRate > this.maximumFeeRate;\n }\n}\nexports.TransactionBuilder = TransactionBuilder;\nfunction expandInput(scriptSig, witnessStack, type, scriptPubKey) {\n if (scriptSig.length === 0 && witnessStack.length === 0) return {};\n if (!type) {\n let ssType = classify.input(scriptSig, true);\n let wsType = classify.witness(witnessStack, true);\n if (ssType === SCRIPT_TYPES.NONSTANDARD) ssType = undefined;\n if (wsType === SCRIPT_TYPES.NONSTANDARD) wsType = undefined;\n type = ssType || wsType;\n }\n switch (type) {\n case SCRIPT_TYPES.P2WPKH: {\n const { output, pubkey, signature } = payments.p2wpkh({\n witness: witnessStack,\n });\n return {\n prevOutScript: output,\n prevOutType: SCRIPT_TYPES.P2WPKH,\n pubkeys: [pubkey],\n signatures: [signature],\n };\n }\n case SCRIPT_TYPES.P2PKH: {\n const { output, pubkey, signature } = payments.p2pkh({\n input: scriptSig,\n });\n return {\n prevOutScript: output,\n prevOutType: SCRIPT_TYPES.P2PKH,\n pubkeys: [pubkey],\n signatures: [signature],\n };\n }\n case SCRIPT_TYPES.P2PK: {\n const { signature } = payments.p2pk({ input: scriptSig });\n return {\n prevOutType: SCRIPT_TYPES.P2PK,\n pubkeys: [undefined],\n signatures: [signature],\n };\n }\n case SCRIPT_TYPES.P2MS: {\n const { m, pubkeys, signatures } = payments.p2ms(\n {\n input: scriptSig,\n output: scriptPubKey,\n },\n { allowIncomplete: true },\n );\n return {\n prevOutType: SCRIPT_TYPES.P2MS,\n pubkeys,\n signatures,\n maxSignatures: m,\n };\n }\n }\n if (type === SCRIPT_TYPES.P2SH) {\n const { output, redeem } = payments.p2sh({\n input: scriptSig,\n witness: witnessStack,\n });\n const outputType = classify.output(redeem.output);\n const expanded = expandInput(\n redeem.input,\n redeem.witness,\n outputType,\n redeem.output,\n );\n if (!expanded.prevOutType) return {};\n return {\n prevOutScript: output,\n prevOutType: SCRIPT_TYPES.P2SH,\n redeemScript: redeem.output,\n redeemScriptType: expanded.prevOutType,\n witnessScript: expanded.witnessScript,\n witnessScriptType: expanded.witnessScriptType,\n pubkeys: expanded.pubkeys,\n signatures: expanded.signatures,\n };\n }\n if (type === SCRIPT_TYPES.P2WSH) {\n const { output, redeem } = payments.p2wsh({\n input: scriptSig,\n witness: witnessStack,\n });\n const outputType = classify.output(redeem.output);\n let expanded;\n if (outputType === SCRIPT_TYPES.P2WPKH) {\n expanded = expandInput(redeem.input, redeem.witness, outputType);\n } else {\n expanded = expandInput(\n bscript.compile(redeem.witness),\n [],\n outputType,\n redeem.output,\n );\n }\n if (!expanded.prevOutType) return {};\n return {\n prevOutScript: output,\n prevOutType: SCRIPT_TYPES.P2WSH,\n witnessScript: redeem.output,\n witnessScriptType: expanded.prevOutType,\n pubkeys: expanded.pubkeys,\n signatures: expanded.signatures,\n };\n }\n return {\n prevOutType: SCRIPT_TYPES.NONSTANDARD,\n prevOutScript: scriptSig,\n };\n}\n// could be done in expandInput, but requires the original Transaction for hashForSignature\nfunction fixMultisigOrder(input, transaction, vin) {\n if (input.redeemScriptType !== SCRIPT_TYPES.P2MS || !input.redeemScript)\n return;\n if (input.pubkeys.length === input.signatures.length) return;\n const unmatched = input.signatures.concat();\n input.signatures = input.pubkeys.map(pubKey => {\n const keyPair = ECPair.fromPublicKey(pubKey);\n let match;\n // check for a signature\n unmatched.some((signature, i) => {\n // skip if undefined || OP_0\n if (!signature) return false;\n // TODO: avoid O(n) hashForSignature\n const parsed = bscript.signature.decode(signature);\n const hash = transaction.hashForSignature(\n vin,\n input.redeemScript,\n parsed.hashType,\n );\n // skip if signature does not match pubKey\n if (!keyPair.verify(hash, parsed.signature)) return false;\n // remove matched signature from unmatched\n unmatched[i] = undefined;\n match = signature;\n return true;\n });\n return match;\n });\n}\nfunction expandOutput(script, ourPubKey) {\n typeforce(types.Buffer, script);\n const type = classify.output(script);\n switch (type) {\n case SCRIPT_TYPES.P2PKH: {\n if (!ourPubKey) return { type };\n // does our hash160(pubKey) match the output scripts?\n const pkh1 = payments.p2pkh({ output: script }).hash;\n const pkh2 = bcrypto.hash160(ourPubKey);\n if (!pkh1.equals(pkh2)) return { type };\n return {\n type,\n pubkeys: [ourPubKey],\n signatures: [undefined],\n };\n }\n case SCRIPT_TYPES.P2WPKH: {\n if (!ourPubKey) return { type };\n // does our hash160(pubKey) match the output scripts?\n const wpkh1 = payments.p2wpkh({ output: script }).hash;\n const wpkh2 = bcrypto.hash160(ourPubKey);\n if (!wpkh1.equals(wpkh2)) return { type };\n return {\n type,\n pubkeys: [ourPubKey],\n signatures: [undefined],\n };\n }\n case SCRIPT_TYPES.P2PK: {\n const p2pk = payments.p2pk({ output: script });\n return {\n type,\n pubkeys: [p2pk.pubkey],\n signatures: [undefined],\n };\n }\n case SCRIPT_TYPES.P2MS: {\n const p2ms = payments.p2ms({ output: script });\n return {\n type,\n pubkeys: p2ms.pubkeys,\n signatures: p2ms.pubkeys.map(() => undefined),\n maxSignatures: p2ms.m,\n };\n }\n }\n return { type };\n}\nfunction prepareInput(input, ourPubKey, redeemScript, witnessScript) {\n if (redeemScript && witnessScript) {\n const p2wsh = payments.p2wsh({\n redeem: { output: witnessScript },\n });\n const p2wshAlt = payments.p2wsh({ output: redeemScript });\n const p2sh = payments.p2sh({ redeem: { output: redeemScript } });\n const p2shAlt = payments.p2sh({ redeem: p2wsh });\n // enforces P2SH(P2WSH(...))\n if (!p2wsh.hash.equals(p2wshAlt.hash))\n throw new Error('Witness script inconsistent with prevOutScript');\n if (!p2sh.hash.equals(p2shAlt.hash))\n throw new Error('Redeem script inconsistent with prevOutScript');\n const expanded = expandOutput(p2wsh.redeem.output, ourPubKey);\n if (!expanded.pubkeys)\n throw new Error(\n expanded.type +\n ' not supported as witnessScript (' +\n bscript.toASM(witnessScript) +\n ')',\n );\n if (input.signatures && input.signatures.some(x => x !== undefined)) {\n expanded.signatures = input.signatures;\n }\n const signScript = witnessScript;\n if (expanded.type === SCRIPT_TYPES.P2WPKH)\n throw new Error('P2SH(P2WSH(P2WPKH)) is a consensus failure');\n return {\n redeemScript,\n redeemScriptType: SCRIPT_TYPES.P2WSH,\n witnessScript,\n witnessScriptType: expanded.type,\n prevOutType: SCRIPT_TYPES.P2SH,\n prevOutScript: p2sh.output,\n hasWitness: true,\n signScript,\n signType: expanded.type,\n pubkeys: expanded.pubkeys,\n signatures: expanded.signatures,\n maxSignatures: expanded.maxSignatures,\n };\n }\n if (redeemScript) {\n const p2sh = payments.p2sh({ redeem: { output: redeemScript } });\n if (input.prevOutScript) {\n let p2shAlt;\n try {\n p2shAlt = payments.p2sh({ output: input.prevOutScript });\n } catch (e) {\n throw new Error('PrevOutScript must be P2SH');\n }\n if (!p2sh.hash.equals(p2shAlt.hash))\n throw new Error('Redeem script inconsistent with prevOutScript');\n }\n const expanded = expandOutput(p2sh.redeem.output, ourPubKey);\n if (!expanded.pubkeys)\n throw new Error(\n expanded.type +\n ' not supported as redeemScript (' +\n bscript.toASM(redeemScript) +\n ')',\n );\n if (input.signatures && input.signatures.some(x => x !== undefined)) {\n expanded.signatures = input.signatures;\n }\n let signScript = redeemScript;\n if (expanded.type === SCRIPT_TYPES.P2WPKH) {\n signScript = payments.p2pkh({ pubkey: expanded.pubkeys[0] }).output;\n }\n return {\n redeemScript,\n redeemScriptType: expanded.type,\n prevOutType: SCRIPT_TYPES.P2SH,\n prevOutScript: p2sh.output,\n hasWitness: expanded.type === SCRIPT_TYPES.P2WPKH,\n signScript,\n signType: expanded.type,\n pubkeys: expanded.pubkeys,\n signatures: expanded.signatures,\n maxSignatures: expanded.maxSignatures,\n };\n }\n if (witnessScript) {\n const p2wsh = payments.p2wsh({ redeem: { output: witnessScript } });\n if (input.prevOutScript) {\n const p2wshAlt = payments.p2wsh({ output: input.prevOutScript });\n if (!p2wsh.hash.equals(p2wshAlt.hash))\n throw new Error('Witness script inconsistent with prevOutScript');\n }\n const expanded = expandOutput(p2wsh.redeem.output, ourPubKey);\n if (!expanded.pubkeys)\n throw new Error(\n expanded.type +\n ' not supported as witnessScript (' +\n bscript.toASM(witnessScript) +\n ')',\n );\n if (input.signatures && input.signatures.some(x => x !== undefined)) {\n expanded.signatures = input.signatures;\n }\n const signScript = witnessScript;\n if (expanded.type === SCRIPT_TYPES.P2WPKH)\n throw new Error('P2WSH(P2WPKH) is a consensus failure');\n return {\n witnessScript,\n witnessScriptType: expanded.type,\n prevOutType: SCRIPT_TYPES.P2WSH,\n prevOutScript: p2wsh.output,\n hasWitness: true,\n signScript,\n signType: expanded.type,\n pubkeys: expanded.pubkeys,\n signatures: expanded.signatures,\n maxSignatures: expanded.maxSignatures,\n };\n }\n if (input.prevOutType && input.prevOutScript) {\n // embedded scripts are not possible without extra information\n if (input.prevOutType === SCRIPT_TYPES.P2SH)\n throw new Error(\n 'PrevOutScript is ' + input.prevOutType + ', requires redeemScript',\n );\n if (input.prevOutType === SCRIPT_TYPES.P2WSH)\n throw new Error(\n 'PrevOutScript is ' + input.prevOutType + ', requires witnessScript',\n );\n if (!input.prevOutScript) throw new Error('PrevOutScript is missing');\n const expanded = expandOutput(input.prevOutScript, ourPubKey);\n if (!expanded.pubkeys)\n throw new Error(\n expanded.type +\n ' not supported (' +\n bscript.toASM(input.prevOutScript) +\n ')',\n );\n if (input.signatures && input.signatures.some(x => x !== undefined)) {\n expanded.signatures = input.signatures;\n }\n let signScript = input.prevOutScript;\n if (expanded.type === SCRIPT_TYPES.P2WPKH) {\n signScript = payments.p2pkh({ pubkey: expanded.pubkeys[0] }).output;\n }\n return {\n prevOutType: expanded.type,\n prevOutScript: input.prevOutScript,\n hasWitness: expanded.type === SCRIPT_TYPES.P2WPKH,\n signScript,\n signType: expanded.type,\n pubkeys: expanded.pubkeys,\n signatures: expanded.signatures,\n maxSignatures: expanded.maxSignatures,\n };\n }\n const prevOutScript = payments.p2pkh({ pubkey: ourPubKey }).output;\n return {\n prevOutType: SCRIPT_TYPES.P2PKH,\n prevOutScript,\n hasWitness: false,\n signScript: prevOutScript,\n signType: SCRIPT_TYPES.P2PKH,\n pubkeys: [ourPubKey],\n signatures: [undefined],\n };\n}\nfunction build(type, input, allowIncomplete) {\n const pubkeys = input.pubkeys || [];\n let signatures = input.signatures || [];\n switch (type) {\n case SCRIPT_TYPES.P2PKH: {\n if (pubkeys.length === 0) break;\n if (signatures.length === 0) break;\n return payments.p2pkh({ pubkey: pubkeys[0], signature: signatures[0] });\n }\n case SCRIPT_TYPES.P2WPKH: {\n if (pubkeys.length === 0) break;\n if (signatures.length === 0) break;\n return payments.p2wpkh({ pubkey: pubkeys[0], signature: signatures[0] });\n }\n case SCRIPT_TYPES.P2PK: {\n if (pubkeys.length === 0) break;\n if (signatures.length === 0) break;\n return payments.p2pk({ signature: signatures[0] });\n }\n case SCRIPT_TYPES.P2MS: {\n const m = input.maxSignatures;\n if (allowIncomplete) {\n signatures = signatures.map(x => x || script_1.OPS.OP_0);\n } else {\n signatures = signatures.filter(x => x);\n }\n // if the transaction is not not complete (complete), or if signatures.length === m, validate\n // otherwise, the number of OP_0's may be >= m, so don't validate (boo)\n const validate = !allowIncomplete || m === signatures.length;\n return payments.p2ms(\n { m, pubkeys, signatures },\n { allowIncomplete, validate },\n );\n }\n case SCRIPT_TYPES.P2SH: {\n const redeem = build(input.redeemScriptType, input, allowIncomplete);\n if (!redeem) return;\n return payments.p2sh({\n redeem: {\n output: redeem.output || input.redeemScript,\n input: redeem.input,\n witness: redeem.witness,\n },\n });\n }\n case SCRIPT_TYPES.P2WSH: {\n const redeem = build(input.witnessScriptType, input, allowIncomplete);\n if (!redeem) return;\n return payments.p2wsh({\n redeem: {\n output: input.witnessScript,\n input: redeem.input,\n witness: redeem.witness,\n },\n });\n }\n }\n}\nfunction canSign(input) {\n return (\n input.signScript !== undefined &&\n input.signType !== undefined &&\n input.pubkeys !== undefined &&\n input.signatures !== undefined &&\n input.signatures.length === input.pubkeys.length &&\n input.pubkeys.length > 0 &&\n (input.hasWitness === false || input.value !== undefined)\n );\n}\nfunction signatureHashType(buffer) {\n return buffer.readUInt8(buffer.length - 1);\n}\nfunction checkSignArgs(inputs, signParams) {\n if (!PREVOUT_TYPES.has(signParams.prevOutScriptType)) {\n throw new TypeError(\n `Unknown prevOutScriptType \"${signParams.prevOutScriptType}\"`,\n );\n }\n tfMessage(\n typeforce.Number,\n signParams.vin,\n `sign must include vin parameter as Number (input index)`,\n );\n tfMessage(\n types.Signer,\n signParams.keyPair,\n `sign must include keyPair parameter as Signer interface`,\n );\n tfMessage(\n typeforce.maybe(typeforce.Number),\n signParams.hashType,\n `sign hashType parameter must be a number`,\n );\n const prevOutType = (inputs[signParams.vin] || []).prevOutType;\n const posType = signParams.prevOutScriptType;\n switch (posType) {\n case 'p2pkh':\n if (prevOutType && prevOutType !== 'pubkeyhash') {\n throw new TypeError(\n `input #${signParams.vin} is not of type p2pkh: ${prevOutType}`,\n );\n }\n tfMessage(\n typeforce.value(undefined),\n signParams.witnessScript,\n `${posType} requires NO witnessScript`,\n );\n tfMessage(\n typeforce.value(undefined),\n signParams.redeemScript,\n `${posType} requires NO redeemScript`,\n );\n tfMessage(\n typeforce.value(undefined),\n signParams.witnessValue,\n `${posType} requires NO witnessValue`,\n );\n break;\n case 'p2pk':\n if (prevOutType && prevOutType !== 'pubkey') {\n throw new TypeError(\n `input #${signParams.vin} is not of type p2pk: ${prevOutType}`,\n );\n }\n tfMessage(\n typeforce.value(undefined),\n signParams.witnessScript,\n `${posType} requires NO witnessScript`,\n );\n tfMessage(\n typeforce.value(undefined),\n signParams.redeemScript,\n `${posType} requires NO redeemScript`,\n );\n tfMessage(\n typeforce.value(undefined),\n signParams.witnessValue,\n `${posType} requires NO witnessValue`,\n );\n break;\n case 'p2wpkh':\n if (prevOutType && prevOutType !== 'witnesspubkeyhash') {\n throw new TypeError(\n `input #${signParams.vin} is not of type p2wpkh: ${prevOutType}`,\n );\n }\n tfMessage(\n typeforce.value(undefined),\n signParams.witnessScript,\n `${posType} requires NO witnessScript`,\n );\n tfMessage(\n typeforce.value(undefined),\n signParams.redeemScript,\n `${posType} requires NO redeemScript`,\n );\n tfMessage(\n types.Satoshi,\n signParams.witnessValue,\n `${posType} requires witnessValue`,\n );\n break;\n case 'p2ms':\n if (prevOutType && prevOutType !== 'multisig') {\n throw new TypeError(\n `input #${signParams.vin} is not of type p2ms: ${prevOutType}`,\n );\n }\n tfMessage(\n typeforce.value(undefined),\n signParams.witnessScript,\n `${posType} requires NO witnessScript`,\n );\n tfMessage(\n typeforce.value(undefined),\n signParams.redeemScript,\n `${posType} requires NO redeemScript`,\n );\n tfMessage(\n typeforce.value(undefined),\n signParams.witnessValue,\n `${posType} requires NO witnessValue`,\n );\n break;\n case 'p2sh-p2wpkh':\n if (prevOutType && prevOutType !== 'scripthash') {\n throw new TypeError(\n `input #${signParams.vin} is not of type p2sh-p2wpkh: ${prevOutType}`,\n );\n }\n tfMessage(\n typeforce.value(undefined),\n signParams.witnessScript,\n `${posType} requires NO witnessScript`,\n );\n tfMessage(\n typeforce.Buffer,\n signParams.redeemScript,\n `${posType} requires redeemScript`,\n );\n tfMessage(\n types.Satoshi,\n signParams.witnessValue,\n `${posType} requires witnessValue`,\n );\n break;\n case 'p2sh-p2ms':\n case 'p2sh-p2pk':\n case 'p2sh-p2pkh':\n if (prevOutType && prevOutType !== 'scripthash') {\n throw new TypeError(\n `input #${signParams.vin} is not of type ${posType}: ${prevOutType}`,\n );\n }\n tfMessage(\n typeforce.value(undefined),\n signParams.witnessScript,\n `${posType} requires NO witnessScript`,\n );\n tfMessage(\n typeforce.Buffer,\n signParams.redeemScript,\n `${posType} requires redeemScript`,\n );\n tfMessage(\n typeforce.value(undefined),\n signParams.witnessValue,\n `${posType} requires NO witnessValue`,\n );\n break;\n case 'p2wsh-p2ms':\n case 'p2wsh-p2pk':\n case 'p2wsh-p2pkh':\n if (prevOutType && prevOutType !== 'witnessscripthash') {\n throw new TypeError(\n `input #${signParams.vin} is not of type ${posType}: ${prevOutType}`,\n );\n }\n tfMessage(\n typeforce.Buffer,\n signParams.witnessScript,\n `${posType} requires witnessScript`,\n );\n tfMessage(\n typeforce.value(undefined),\n signParams.redeemScript,\n `${posType} requires NO redeemScript`,\n );\n tfMessage(\n types.Satoshi,\n signParams.witnessValue,\n `${posType} requires witnessValue`,\n );\n break;\n case 'p2sh-p2wsh-p2ms':\n case 'p2sh-p2wsh-p2pk':\n case 'p2sh-p2wsh-p2pkh':\n if (prevOutType && prevOutType !== 'scripthash') {\n throw new TypeError(\n `input #${signParams.vin} is not of type ${posType}: ${prevOutType}`,\n );\n }\n tfMessage(\n typeforce.Buffer,\n signParams.witnessScript,\n `${posType} requires witnessScript`,\n );\n tfMessage(\n typeforce.Buffer,\n signParams.redeemScript,\n `${posType} requires witnessScript`,\n );\n tfMessage(\n types.Satoshi,\n signParams.witnessValue,\n `${posType} requires witnessScript`,\n );\n break;\n }\n}\nfunction trySign({\n input,\n ourPubKey,\n keyPair,\n signatureHash,\n hashType,\n useLowR,\n}) {\n // enforce in order signing of public keys\n let signed = false;\n for (const [i, pubKey] of input.pubkeys.entries()) {\n if (!ourPubKey.equals(pubKey)) continue;\n if (input.signatures[i]) throw new Error('Signature already exists');\n // TODO: add tests\n if (ourPubKey.length !== 33 && input.hasWitness) {\n throw new Error(\n 'BIP143 rejects uncompressed public keys in P2WPKH or P2WSH',\n );\n }\n const signature = keyPair.sign(signatureHash, useLowR);\n input.signatures[i] = bscript.signature.encode(signature, hashType);\n signed = true;\n }\n if (!signed) throw new Error('Key pair cannot sign for this input');\n}\nfunction getSigningData(\n network,\n inputs,\n needsOutputs,\n tx,\n signParams,\n keyPair,\n redeemScript,\n hashType,\n witnessValue,\n witnessScript,\n useLowR,\n) {\n let vin;\n if (typeof signParams === 'number') {\n console.warn(\n 'DEPRECATED: TransactionBuilder sign method arguments ' +\n 'will change in v6, please use the TxbSignArg interface',\n );\n vin = signParams;\n } else if (typeof signParams === 'object') {\n checkSignArgs(inputs, signParams);\n ({\n vin,\n keyPair,\n redeemScript,\n hashType,\n witnessValue,\n witnessScript,\n } = signParams);\n } else {\n throw new TypeError(\n 'TransactionBuilder sign first arg must be TxbSignArg or number',\n );\n }\n if (keyPair === undefined) {\n throw new Error('sign requires keypair');\n }\n // TODO: remove keyPair.network matching in 4.0.0\n if (keyPair.network && keyPair.network !== network)\n throw new TypeError('Inconsistent network');\n if (!inputs[vin]) throw new Error('No input at index: ' + vin);\n hashType = hashType || transaction_1.Transaction.SIGHASH_ALL;\n if (needsOutputs(hashType)) throw new Error('Transaction needs outputs');\n const input = inputs[vin];\n // if redeemScript was previously provided, enforce consistency\n if (\n input.redeemScript !== undefined &&\n redeemScript &&\n !input.redeemScript.equals(redeemScript)\n ) {\n throw new Error('Inconsistent redeemScript');\n }\n const ourPubKey =\n keyPair.publicKey || (keyPair.getPublicKey && keyPair.getPublicKey());\n if (!canSign(input)) {\n if (witnessValue !== undefined) {\n if (input.value !== undefined && input.value !== witnessValue)\n throw new Error('Input did not match witnessValue');\n typeforce(types.Satoshi, witnessValue);\n input.value = witnessValue;\n }\n if (!canSign(input)) {\n const prepared = prepareInput(\n input,\n ourPubKey,\n redeemScript,\n witnessScript,\n );\n // updates inline\n Object.assign(input, prepared);\n }\n if (!canSign(input)) throw Error(input.prevOutType + ' not supported');\n }\n // ready to sign\n let signatureHash;\n if (input.hasWitness) {\n signatureHash = tx.hashForWitnessV0(\n vin,\n input.signScript,\n input.value,\n hashType,\n );\n } else {\n signatureHash = tx.hashForSignature(vin, input.signScript, hashType);\n }\n return {\n input,\n ourPubKey,\n keyPair,\n signatureHash,\n hashType,\n useLowR: !!useLowR,\n };\n}\n", "'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nconst bip32 = require('bip32');\nexports.bip32 = bip32;\nconst address = require('./address');\nexports.address = address;\nconst crypto = require('./crypto');\nexports.crypto = crypto;\nconst ECPair = require('./ecpair');\nexports.ECPair = ECPair;\nconst networks = require('./networks');\nexports.networks = networks;\nconst payments = require('./payments');\nexports.payments = payments;\nconst script = require('./script');\nexports.script = script;\nvar block_1 = require('./block');\nexports.Block = block_1.Block;\nvar psbt_1 = require('./psbt');\nexports.Psbt = psbt_1.Psbt;\nvar script_1 = require('./script');\nexports.opcodes = script_1.OPS;\nvar transaction_1 = require('./transaction');\nexports.Transaction = transaction_1.Transaction;\nvar transaction_builder_1 = require('./transaction_builder');\nexports.TransactionBuilder = transaction_builder_1.TransactionBuilder;\n", "/*\n * Bitcoin BIP32 path helpers\n * (C) 2016 Alex Beregszaszi\n */\n\nconst HARDENED = 0x80000000\n\nvar BIPPath = function (path) {\n if (!Array.isArray(path)) {\n throw new Error('Input must be an Array')\n }\n if (path.length === 0) {\n throw new Error('Path must contain at least one level')\n }\n for (var i = 0; i < path.length; i++) {\n if (typeof path[i] !== 'number') {\n throw new Error('Path element is not a number')\n }\n }\n this.path = path\n}\n\nBIPPath.validatePathArray = function (path) {\n try {\n BIPPath.fromPathArray(path)\n return true\n } catch (e) {\n return false\n }\n}\n\nBIPPath.validateString = function (text, reqRoot) {\n try {\n BIPPath.fromString(text, reqRoot)\n return true\n } catch (e) {\n return false\n }\n}\n\nBIPPath.fromPathArray = function (path) {\n return new BIPPath(path)\n}\n\nBIPPath.fromString = function (text, reqRoot) {\n // skip the root\n if (/^m\\//i.test(text)) {\n text = text.slice(2)\n } else if (reqRoot) {\n throw new Error('Root element is required')\n }\n\n var path = text.split('/')\n var ret = new Array(path.length)\n for (var i = 0; i < path.length; i++) {\n var tmp = /(\\d+)([hH\\']?)/.exec(path[i])\n if (tmp === null) {\n throw new Error('Invalid input')\n }\n ret[i] = parseInt(tmp[1], 10)\n\n if (ret[i] >= HARDENED) {\n throw new Error('Invalid child index')\n }\n\n if (tmp[2] === 'h' || tmp[2] === 'H' || tmp[2] === '\\'') {\n ret[i] += HARDENED\n } else if (tmp[2].length != 0) {\n throw new Error('Invalid modifier')\n }\n }\n return new BIPPath(ret)\n}\n\nBIPPath.prototype.toPathArray = function () {\n return this.path\n}\n\nBIPPath.prototype.toString = function (noRoot, oldStyle) {\n var ret = new Array(this.path.length)\n for (var i = 0; i < this.path.length; i++) {\n var tmp = this.path[i]\n if (tmp & HARDENED) {\n ret[i] = (tmp & ~HARDENED) + (oldStyle ? 'h' : '\\'')\n } else {\n ret[i] = tmp\n }\n }\n return (noRoot ? '' : 'm/') + ret.join('/')\n}\n\nBIPPath.prototype.inspect = function () {\n return 'BIPPath <' + this.toString() + '>'\n}\n\nmodule.exports = BIPPath\n", "module.exports = require('stream');\n", "'use strict';\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return typeof key === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (typeof input !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (typeof res !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nconst _require = require('buffer'),\n Buffer = _require.Buffer;\nconst _require2 = require('util'),\n inspect = _require2.inspect;\nconst custom = inspect && inspect.custom || 'inspect';\nfunction copyBuffer(src, target, offset) {\n Buffer.prototype.copy.call(src, target, offset);\n}\nmodule.exports = class BufferList {\n constructor() {\n this.head = null;\n this.tail = null;\n this.length = 0;\n }\n push(v) {\n const entry = {\n data: v,\n next: null\n };\n if (this.length > 0) this.tail.next = entry;else this.head = entry;\n this.tail = entry;\n ++this.length;\n }\n unshift(v) {\n const entry = {\n data: v,\n next: this.head\n };\n if (this.length === 0) this.tail = entry;\n this.head = entry;\n ++this.length;\n }\n shift() {\n if (this.length === 0) return;\n const ret = this.head.data;\n if (this.length === 1) this.head = this.tail = null;else this.head = this.head.next;\n --this.length;\n return ret;\n }\n clear() {\n this.head = this.tail = null;\n this.length = 0;\n }\n join(s) {\n if (this.length === 0) return '';\n var p = this.head;\n var ret = '' + p.data;\n while (p = p.next) ret += s + p.data;\n return ret;\n }\n concat(n) {\n if (this.length === 0) return Buffer.alloc(0);\n const ret = Buffer.allocUnsafe(n >>> 0);\n var p = this.head;\n var i = 0;\n while (p) {\n copyBuffer(p.data, ret, i);\n i += p.data.length;\n p = p.next;\n }\n return ret;\n }\n\n // Consumes a specified amount of bytes or characters from the buffered data.\n consume(n, hasStrings) {\n var ret;\n if (n < this.head.data.length) {\n // `slice` is the same for buffers and strings.\n ret = this.head.data.slice(0, n);\n this.head.data = this.head.data.slice(n);\n } else if (n === this.head.data.length) {\n // First chunk is a perfect match.\n ret = this.shift();\n } else {\n // Result spans more than one buffer.\n ret = hasStrings ? this._getString(n) : this._getBuffer(n);\n }\n return ret;\n }\n first() {\n return this.head.data;\n }\n\n // Consumes a specified amount of characters from the buffered data.\n _getString(n) {\n var p = this.head;\n var c = 1;\n var ret = p.data;\n n -= ret.length;\n while (p = p.next) {\n const str = p.data;\n const nb = n > str.length ? str.length : n;\n if (nb === str.length) ret += str;else ret += str.slice(0, n);\n n -= nb;\n if (n === 0) {\n if (nb === str.length) {\n ++c;\n if (p.next) this.head = p.next;else this.head = this.tail = null;\n } else {\n this.head = p;\n p.data = str.slice(nb);\n }\n break;\n }\n ++c;\n }\n this.length -= c;\n return ret;\n }\n\n // Consumes a specified amount of bytes from the buffered data.\n _getBuffer(n) {\n const ret = Buffer.allocUnsafe(n);\n var p = this.head;\n var c = 1;\n p.data.copy(ret);\n n -= p.data.length;\n while (p = p.next) {\n const buf = p.data;\n const nb = n > buf.length ? buf.length : n;\n buf.copy(ret, ret.length - n, 0, nb);\n n -= nb;\n if (n === 0) {\n if (nb === buf.length) {\n ++c;\n if (p.next) this.head = p.next;else this.head = this.tail = null;\n } else {\n this.head = p;\n p.data = buf.slice(nb);\n }\n break;\n }\n ++c;\n }\n this.length -= c;\n return ret;\n }\n\n // Make sure the linked list only shows the minimal necessary information.\n [custom](_, options) {\n return inspect(this, _objectSpread(_objectSpread({}, options), {}, {\n // Only inspect one level.\n depth: 0,\n // It should not recurse.\n customInspect: false\n }));\n }\n};", "'use strict';\n\n// undocumented cb() API, needed for core, not for public API\nfunction destroy(err, cb) {\n const readableDestroyed = this._readableState && this._readableState.destroyed;\n const writableDestroyed = this._writableState && this._writableState.destroyed;\n if (readableDestroyed || writableDestroyed) {\n if (cb) {\n cb(err);\n } else if (err) {\n if (!this._writableState) {\n process.nextTick(emitErrorNT, this, err);\n } else if (!this._writableState.errorEmitted) {\n this._writableState.errorEmitted = true;\n process.nextTick(emitErrorNT, this, err);\n }\n }\n return this;\n }\n\n // we set destroyed to true before firing error callbacks in order\n // to make it re-entrance safe in case destroy() is called within callbacks\n\n if (this._readableState) {\n this._readableState.destroyed = true;\n }\n\n // if this is a duplex stream mark the writable part as destroyed as well\n if (this._writableState) {\n this._writableState.destroyed = true;\n }\n this._destroy(err || null, err => {\n if (!cb && err) {\n if (!this._writableState) {\n process.nextTick(emitErrorAndCloseNT, this, err);\n } else if (!this._writableState.errorEmitted) {\n this._writableState.errorEmitted = true;\n process.nextTick(emitErrorAndCloseNT, this, err);\n } else {\n process.nextTick(emitCloseNT, this);\n }\n } else if (cb) {\n process.nextTick(emitCloseNT, this);\n cb(err);\n } else {\n process.nextTick(emitCloseNT, this);\n }\n });\n return this;\n}\nfunction emitErrorAndCloseNT(self, err) {\n emitErrorNT(self, err);\n emitCloseNT(self);\n}\nfunction emitCloseNT(self) {\n if (self._writableState && !self._writableState.emitClose) return;\n if (self._readableState && !self._readableState.emitClose) return;\n self.emit('close');\n}\nfunction undestroy() {\n if (this._readableState) {\n this._readableState.destroyed = false;\n this._readableState.reading = false;\n this._readableState.ended = false;\n this._readableState.endEmitted = false;\n }\n if (this._writableState) {\n this._writableState.destroyed = false;\n this._writableState.ended = false;\n this._writableState.ending = false;\n this._writableState.finalCalled = false;\n this._writableState.prefinished = false;\n this._writableState.finished = false;\n this._writableState.errorEmitted = false;\n }\n}\nfunction emitErrorNT(self, err) {\n self.emit('error', err);\n}\nfunction errorOrDestroy(stream, err) {\n // We have tests that rely on errors being emitted\n // in the same tick, so changing this is semver major.\n // For now when you opt-in to autoDestroy we allow\n // the error to be emitted nextTick. In a future\n // semver major update we should change the default to this.\n\n const rState = stream._readableState;\n const wState = stream._writableState;\n if (rState && rState.autoDestroy || wState && wState.autoDestroy) stream.destroy(err);else stream.emit('error', err);\n}\nmodule.exports = {\n destroy,\n undestroy,\n errorOrDestroy\n};", "'use strict';\n\nconst codes = {};\n\nfunction createErrorType(code, message, Base) {\n if (!Base) {\n Base = Error\n }\n\n function getMessage (arg1, arg2, arg3) {\n if (typeof message === 'string') {\n return message\n } else {\n return message(arg1, arg2, arg3)\n }\n }\n\n class NodeError extends Base {\n constructor (arg1, arg2, arg3) {\n super(getMessage(arg1, arg2, arg3));\n }\n }\n\n NodeError.prototype.name = Base.name;\n NodeError.prototype.code = code;\n\n codes[code] = NodeError;\n}\n\n// https://github.com/nodejs/node/blob/v10.8.0/lib/internal/errors.js\nfunction oneOf(expected, thing) {\n if (Array.isArray(expected)) {\n const len = expected.length;\n expected = expected.map((i) => String(i));\n if (len > 2) {\n return `one of ${thing} ${expected.slice(0, len - 1).join(', ')}, or ` +\n expected[len - 1];\n } else if (len === 2) {\n return `one of ${thing} ${expected[0]} or ${expected[1]}`;\n } else {\n return `of ${thing} ${expected[0]}`;\n }\n } else {\n return `of ${thing} ${String(expected)}`;\n }\n}\n\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/startsWith\nfunction startsWith(str, search, pos) {\n\treturn str.substr(!pos || pos < 0 ? 0 : +pos, search.length) === search;\n}\n\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/endsWith\nfunction endsWith(str, search, this_len) {\n\tif (this_len === undefined || this_len > str.length) {\n\t\tthis_len = str.length;\n\t}\n\treturn str.substring(this_len - search.length, this_len) === search;\n}\n\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/includes\nfunction includes(str, search, start) {\n if (typeof start !== 'number') {\n start = 0;\n }\n\n if (start + search.length > str.length) {\n return false;\n } else {\n return str.indexOf(search, start) !== -1;\n }\n}\n\ncreateErrorType('ERR_INVALID_OPT_VALUE', function (name, value) {\n return 'The value \"' + value + '\" is invalid for option \"' + name + '\"'\n}, TypeError);\ncreateErrorType('ERR_INVALID_ARG_TYPE', function (name, expected, actual) {\n // determiner: 'must be' or 'must not be'\n let determiner;\n if (typeof expected === 'string' && startsWith(expected, 'not ')) {\n determiner = 'must not be';\n expected = expected.replace(/^not /, '');\n } else {\n determiner = 'must be';\n }\n\n let msg;\n if (endsWith(name, ' argument')) {\n // For cases like 'first argument'\n msg = `The ${name} ${determiner} ${oneOf(expected, 'type')}`;\n } else {\n const type = includes(name, '.') ? 'property' : 'argument';\n msg = `The \"${name}\" ${type} ${determiner} ${oneOf(expected, 'type')}`;\n }\n\n msg += `. Received type ${typeof actual}`;\n return msg;\n}, TypeError);\ncreateErrorType('ERR_STREAM_PUSH_AFTER_EOF', 'stream.push() after EOF');\ncreateErrorType('ERR_METHOD_NOT_IMPLEMENTED', function (name) {\n return 'The ' + name + ' method is not implemented'\n});\ncreateErrorType('ERR_STREAM_PREMATURE_CLOSE', 'Premature close');\ncreateErrorType('ERR_STREAM_DESTROYED', function (name) {\n return 'Cannot call ' + name + ' after a stream was destroyed';\n});\ncreateErrorType('ERR_MULTIPLE_CALLBACK', 'Callback called multiple times');\ncreateErrorType('ERR_STREAM_CANNOT_PIPE', 'Cannot pipe, not readable');\ncreateErrorType('ERR_STREAM_WRITE_AFTER_END', 'write after end');\ncreateErrorType('ERR_STREAM_NULL_VALUES', 'May not write null values to stream', TypeError);\ncreateErrorType('ERR_UNKNOWN_ENCODING', function (arg) {\n return 'Unknown encoding: ' + arg\n}, TypeError);\ncreateErrorType('ERR_STREAM_UNSHIFT_AFTER_END_EVENT', 'stream.unshift() after end event');\n\nmodule.exports.codes = codes;\n", "'use strict';\n\nconst ERR_INVALID_OPT_VALUE = require('../../../errors').codes.ERR_INVALID_OPT_VALUE;\nfunction highWaterMarkFrom(options, isDuplex, duplexKey) {\n return options.highWaterMark != null ? options.highWaterMark : isDuplex ? options[duplexKey] : null;\n}\nfunction getHighWaterMark(state, options, duplexKey, isDuplex) {\n const hwm = highWaterMarkFrom(options, isDuplex, duplexKey);\n if (hwm != null) {\n if (!(isFinite(hwm) && Math.floor(hwm) === hwm) || hwm < 0) {\n const name = isDuplex ? duplexKey : 'highWaterMark';\n throw new ERR_INVALID_OPT_VALUE(name, hwm);\n }\n return Math.floor(hwm);\n }\n\n // Default value\n return state.objectMode ? 16 : 16 * 1024;\n}\nmodule.exports = {\n getHighWaterMark\n};", "\n/**\n * For Node.js, simply re-export the core `util.deprecate` function.\n */\n\nmodule.exports = require('util').deprecate;\n", "// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// A bit simpler than readable streams.\n// Implement an async ._write(chunk, encoding, cb), and it'll handle all\n// the drain event emission and buffering.\n\n'use strict';\n\nmodule.exports = Writable;\n\n/* */\nfunction WriteReq(chunk, encoding, cb) {\n this.chunk = chunk;\n this.encoding = encoding;\n this.callback = cb;\n this.next = null;\n}\n\n// It seems a linked list but it is not\n// there will be only 2 of these for each stream\nfunction CorkedRequest(state) {\n this.next = null;\n this.entry = null;\n this.finish = () => {\n onCorkedFinish(this, state);\n };\n}\n/* */\n\n/**/\nvar Duplex;\n/**/\n\nWritable.WritableState = WritableState;\n\n/**/\nconst internalUtil = {\n deprecate: require('util-deprecate')\n};\n/**/\n\n/**/\nvar Stream = require('./internal/streams/stream');\n/**/\n\nconst Buffer = require('buffer').Buffer;\nconst OurUint8Array = (typeof global !== 'undefined' ? global : typeof window !== 'undefined' ? window : typeof self !== 'undefined' ? self : {}).Uint8Array || function () {};\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\nconst destroyImpl = require('./internal/streams/destroy');\nconst _require = require('./internal/streams/state'),\n getHighWaterMark = _require.getHighWaterMark;\nconst _require$codes = require('../errors').codes,\n ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK,\n ERR_STREAM_CANNOT_PIPE = _require$codes.ERR_STREAM_CANNOT_PIPE,\n ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED,\n ERR_STREAM_NULL_VALUES = _require$codes.ERR_STREAM_NULL_VALUES,\n ERR_STREAM_WRITE_AFTER_END = _require$codes.ERR_STREAM_WRITE_AFTER_END,\n ERR_UNKNOWN_ENCODING = _require$codes.ERR_UNKNOWN_ENCODING;\nconst errorOrDestroy = destroyImpl.errorOrDestroy;\nrequire('inherits')(Writable, Stream);\nfunction nop() {}\nfunction WritableState(options, stream, isDuplex) {\n Duplex = Duplex || require('./_stream_duplex');\n options = options || {};\n\n // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream,\n // e.g. options.readableObjectMode vs. options.writableObjectMode, etc.\n if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex;\n\n // object stream flag to indicate whether or not this stream\n // contains buffers or objects.\n this.objectMode = !!options.objectMode;\n if (isDuplex) this.objectMode = this.objectMode || !!options.writableObjectMode;\n\n // the point at which write() starts returning false\n // Note: 0 is a valid value, means that we always return false if\n // the entire buffer is not flushed immediately on write()\n this.highWaterMark = getHighWaterMark(this, options, 'writableHighWaterMark', isDuplex);\n\n // if _final has been called\n this.finalCalled = false;\n\n // drain event flag.\n this.needDrain = false;\n // at the start of calling end()\n this.ending = false;\n // when end() has been called, and returned\n this.ended = false;\n // when 'finish' is emitted\n this.finished = false;\n\n // has it been destroyed\n this.destroyed = false;\n\n // should we decode strings into buffers before passing to _write?\n // this is here so that some node-core streams can optimize string\n // handling at a lower level.\n var noDecode = options.decodeStrings === false;\n this.decodeStrings = !noDecode;\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n // not an actual buffer we keep track of, but a measurement\n // of how much we're waiting to get pushed to some underlying\n // socket or file.\n this.length = 0;\n\n // a flag to see when we're in the middle of a write.\n this.writing = false;\n\n // when true all writes will be buffered until .uncork() call\n this.corked = 0;\n\n // a flag to be able to tell if the onwrite cb is called immediately,\n // or on a later tick. We set this to true at first, because any\n // actions that shouldn't happen until \"later\" should generally also\n // not happen before the first write call.\n this.sync = true;\n\n // a flag to know if we're processing previously buffered items, which\n // may call the _write() callback in the same tick, so that we don't\n // end up in an overlapped onwrite situation.\n this.bufferProcessing = false;\n\n // the callback that's passed to _write(chunk,cb)\n this.onwrite = function (er) {\n onwrite(stream, er);\n };\n\n // the callback that the user supplies to write(chunk,encoding,cb)\n this.writecb = null;\n\n // the amount that is being written when _write is called.\n this.writelen = 0;\n this.bufferedRequest = null;\n this.lastBufferedRequest = null;\n\n // number of pending user-supplied write callbacks\n // this must be 0 before 'finish' can be emitted\n this.pendingcb = 0;\n\n // emit prefinish if the only thing we're waiting for is _write cbs\n // This is relevant for synchronous Transform streams\n this.prefinished = false;\n\n // True if the error was already emitted and should not be thrown again\n this.errorEmitted = false;\n\n // Should close be emitted on destroy. Defaults to true.\n this.emitClose = options.emitClose !== false;\n\n // Should .destroy() be called after 'finish' (and potentially 'end')\n this.autoDestroy = !!options.autoDestroy;\n\n // count buffered requests\n this.bufferedRequestCount = 0;\n\n // allocate the first CorkedRequest, there is always\n // one allocated and free to use, and we maintain at most two\n this.corkedRequestsFree = new CorkedRequest(this);\n}\nWritableState.prototype.getBuffer = function getBuffer() {\n var current = this.bufferedRequest;\n var out = [];\n while (current) {\n out.push(current);\n current = current.next;\n }\n return out;\n};\n(function () {\n try {\n Object.defineProperty(WritableState.prototype, 'buffer', {\n get: internalUtil.deprecate(function writableStateBufferGetter() {\n return this.getBuffer();\n }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.', 'DEP0003')\n });\n } catch (_) {}\n})();\n\n// Test _writableState for inheritance to account for Duplex streams,\n// whose prototype chain only points to Readable.\nvar realHasInstance;\nif (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') {\n realHasInstance = Function.prototype[Symbol.hasInstance];\n Object.defineProperty(Writable, Symbol.hasInstance, {\n value: function value(object) {\n if (realHasInstance.call(this, object)) return true;\n if (this !== Writable) return false;\n return object && object._writableState instanceof WritableState;\n }\n });\n} else {\n realHasInstance = function realHasInstance(object) {\n return object instanceof this;\n };\n}\nfunction Writable(options) {\n Duplex = Duplex || require('./_stream_duplex');\n\n // Writable ctor is applied to Duplexes, too.\n // `realHasInstance` is necessary because using plain `instanceof`\n // would return false, as no `_writableState` property is attached.\n\n // Trying to use the custom `instanceof` for Writable here will also break the\n // Node.js LazyTransform implementation, which has a non-trivial getter for\n // `_writableState` that would lead to infinite recursion.\n\n // Checking for a Stream.Duplex instance is faster here instead of inside\n // the WritableState constructor, at least with V8 6.5\n const isDuplex = this instanceof Duplex;\n if (!isDuplex && !realHasInstance.call(Writable, this)) return new Writable(options);\n this._writableState = new WritableState(options, this, isDuplex);\n\n // legacy.\n this.writable = true;\n if (options) {\n if (typeof options.write === 'function') this._write = options.write;\n if (typeof options.writev === 'function') this._writev = options.writev;\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n if (typeof options.final === 'function') this._final = options.final;\n }\n Stream.call(this);\n}\n\n// Otherwise people can pipe Writable streams, which is just wrong.\nWritable.prototype.pipe = function () {\n errorOrDestroy(this, new ERR_STREAM_CANNOT_PIPE());\n};\nfunction writeAfterEnd(stream, cb) {\n var er = new ERR_STREAM_WRITE_AFTER_END();\n // TODO: defer error events consistently everywhere, not just the cb\n errorOrDestroy(stream, er);\n process.nextTick(cb, er);\n}\n\n// Checks that a user-supplied chunk is valid, especially for the particular\n// mode the stream is in. Currently this means that `null` is never accepted\n// and undefined/non-string values are only allowed in object mode.\nfunction validChunk(stream, state, chunk, cb) {\n var er;\n if (chunk === null) {\n er = new ERR_STREAM_NULL_VALUES();\n } else if (typeof chunk !== 'string' && !state.objectMode) {\n er = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer'], chunk);\n }\n if (er) {\n errorOrDestroy(stream, er);\n process.nextTick(cb, er);\n return false;\n }\n return true;\n}\nWritable.prototype.write = function (chunk, encoding, cb) {\n var state = this._writableState;\n var ret = false;\n var isBuf = !state.objectMode && _isUint8Array(chunk);\n if (isBuf && !Buffer.isBuffer(chunk)) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n if (isBuf) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding;\n if (typeof cb !== 'function') cb = nop;\n if (state.ending) writeAfterEnd(this, cb);else if (isBuf || validChunk(this, state, chunk, cb)) {\n state.pendingcb++;\n ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb);\n }\n return ret;\n};\nWritable.prototype.cork = function () {\n this._writableState.corked++;\n};\nWritable.prototype.uncork = function () {\n var state = this._writableState;\n if (state.corked) {\n state.corked--;\n if (!state.writing && !state.corked && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);\n }\n};\nWritable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {\n // node::ParseEncoding() requires lower case.\n if (typeof encoding === 'string') encoding = encoding.toLowerCase();\n if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new ERR_UNKNOWN_ENCODING(encoding);\n this._writableState.defaultEncoding = encoding;\n return this;\n};\nObject.defineProperty(Writable.prototype, 'writableBuffer', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState && this._writableState.getBuffer();\n }\n});\nfunction decodeChunk(state, chunk, encoding) {\n if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') {\n chunk = Buffer.from(chunk, encoding);\n }\n return chunk;\n}\nObject.defineProperty(Writable.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.highWaterMark;\n }\n});\n\n// if we're already writing something, then just put this\n// in the queue, and wait our turn. Otherwise, call _write\n// If we return false, then we need a drain event, so set that flag.\nfunction writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) {\n if (!isBuf) {\n var newChunk = decodeChunk(state, chunk, encoding);\n if (chunk !== newChunk) {\n isBuf = true;\n encoding = 'buffer';\n chunk = newChunk;\n }\n }\n var len = state.objectMode ? 1 : chunk.length;\n state.length += len;\n var ret = state.length < state.highWaterMark;\n // we must ensure that previous needDrain will not be reset to false.\n if (!ret) state.needDrain = true;\n if (state.writing || state.corked) {\n var last = state.lastBufferedRequest;\n state.lastBufferedRequest = {\n chunk,\n encoding,\n isBuf,\n callback: cb,\n next: null\n };\n if (last) {\n last.next = state.lastBufferedRequest;\n } else {\n state.bufferedRequest = state.lastBufferedRequest;\n }\n state.bufferedRequestCount += 1;\n } else {\n doWrite(stream, state, false, len, chunk, encoding, cb);\n }\n return ret;\n}\nfunction doWrite(stream, state, writev, len, chunk, encoding, cb) {\n state.writelen = len;\n state.writecb = cb;\n state.writing = true;\n state.sync = true;\n if (state.destroyed) state.onwrite(new ERR_STREAM_DESTROYED('write'));else if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite);\n state.sync = false;\n}\nfunction onwriteError(stream, state, sync, er, cb) {\n --state.pendingcb;\n if (sync) {\n // defer the callback if we are being called synchronously\n // to avoid piling up things on the stack\n process.nextTick(cb, er);\n // this can emit finish, and it will always happen\n // after error\n process.nextTick(finishMaybe, stream, state);\n stream._writableState.errorEmitted = true;\n errorOrDestroy(stream, er);\n } else {\n // the caller expect this to happen before if\n // it is async\n cb(er);\n stream._writableState.errorEmitted = true;\n errorOrDestroy(stream, er);\n // this can emit finish, but finish must\n // always follow error\n finishMaybe(stream, state);\n }\n}\nfunction onwriteStateUpdate(state) {\n state.writing = false;\n state.writecb = null;\n state.length -= state.writelen;\n state.writelen = 0;\n}\nfunction onwrite(stream, er) {\n var state = stream._writableState;\n var sync = state.sync;\n var cb = state.writecb;\n if (typeof cb !== 'function') throw new ERR_MULTIPLE_CALLBACK();\n onwriteStateUpdate(state);\n if (er) onwriteError(stream, state, sync, er, cb);else {\n // Check if we're actually ready to finish, but don't emit yet\n var finished = needFinish(state) || stream.destroyed;\n if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {\n clearBuffer(stream, state);\n }\n if (sync) {\n process.nextTick(afterWrite, stream, state, finished, cb);\n } else {\n afterWrite(stream, state, finished, cb);\n }\n }\n}\nfunction afterWrite(stream, state, finished, cb) {\n if (!finished) onwriteDrain(stream, state);\n state.pendingcb--;\n cb();\n finishMaybe(stream, state);\n}\n\n// Must force callback to be called on nextTick, so that we don't\n// emit 'drain' before the write() consumer gets the 'false' return\n// value, and has a chance to attach a 'drain' listener.\nfunction onwriteDrain(stream, state) {\n if (state.length === 0 && state.needDrain) {\n state.needDrain = false;\n stream.emit('drain');\n }\n}\n\n// if there's something in the buffer waiting, then process it\nfunction clearBuffer(stream, state) {\n state.bufferProcessing = true;\n var entry = state.bufferedRequest;\n if (stream._writev && entry && entry.next) {\n // Fast case, write everything using _writev()\n var l = state.bufferedRequestCount;\n var buffer = new Array(l);\n var holder = state.corkedRequestsFree;\n holder.entry = entry;\n var count = 0;\n var allBuffers = true;\n while (entry) {\n buffer[count] = entry;\n if (!entry.isBuf) allBuffers = false;\n entry = entry.next;\n count += 1;\n }\n buffer.allBuffers = allBuffers;\n doWrite(stream, state, true, state.length, buffer, '', holder.finish);\n\n // doWrite is almost always async, defer these to save a bit of time\n // as the hot path ends with doWrite\n state.pendingcb++;\n state.lastBufferedRequest = null;\n if (holder.next) {\n state.corkedRequestsFree = holder.next;\n holder.next = null;\n } else {\n state.corkedRequestsFree = new CorkedRequest(state);\n }\n state.bufferedRequestCount = 0;\n } else {\n // Slow case, write chunks one-by-one\n while (entry) {\n var chunk = entry.chunk;\n var encoding = entry.encoding;\n var cb = entry.callback;\n var len = state.objectMode ? 1 : chunk.length;\n doWrite(stream, state, false, len, chunk, encoding, cb);\n entry = entry.next;\n state.bufferedRequestCount--;\n // if we didn't call the onwrite immediately, then\n // it means that we need to wait until it does.\n // also, that means that the chunk and cb are currently\n // being processed, so move the buffer counter past them.\n if (state.writing) {\n break;\n }\n }\n if (entry === null) state.lastBufferedRequest = null;\n }\n state.bufferedRequest = entry;\n state.bufferProcessing = false;\n}\nWritable.prototype._write = function (chunk, encoding, cb) {\n cb(new ERR_METHOD_NOT_IMPLEMENTED('_write()'));\n};\nWritable.prototype._writev = null;\nWritable.prototype.end = function (chunk, encoding, cb) {\n var state = this._writableState;\n if (typeof chunk === 'function') {\n cb = chunk;\n chunk = null;\n encoding = null;\n } else if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n if (chunk !== null && chunk !== undefined) this.write(chunk, encoding);\n\n // .end() fully uncorks\n if (state.corked) {\n state.corked = 1;\n this.uncork();\n }\n\n // ignore unnecessary end() calls.\n if (!state.ending) endWritable(this, state, cb);\n return this;\n};\nObject.defineProperty(Writable.prototype, 'writableLength', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get() {\n return this._writableState.length;\n }\n});\nfunction needFinish(state) {\n return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing;\n}\nfunction callFinal(stream, state) {\n stream._final(err => {\n state.pendingcb--;\n if (err) {\n errorOrDestroy(stream, err);\n }\n state.prefinished = true;\n stream.emit('prefinish');\n finishMaybe(stream, state);\n });\n}\nfunction prefinish(stream, state) {\n if (!state.prefinished && !state.finalCalled) {\n if (typeof stream._final === 'function' && !state.destroyed) {\n state.pendingcb++;\n state.finalCalled = true;\n process.nextTick(callFinal, stream, state);\n } else {\n state.prefinished = true;\n stream.emit('prefinish');\n }\n }\n}\nfunction finishMaybe(stream, state) {\n var need = needFinish(state);\n if (need) {\n prefinish(stream, state);\n if (state.pendingcb === 0) {\n state.finished = true;\n stream.emit('finish');\n if (state.autoDestroy) {\n // In case of duplex streams we need a way to detect\n // if the readable side is ready for autoDestroy as well\n const rState = stream._readableState;\n if (!rState || rState.autoDestroy && rState.endEmitted) {\n stream.destroy();\n }\n }\n }\n }\n return need;\n}\nfunction endWritable(stream, state, cb) {\n state.ending = true;\n finishMaybe(stream, state);\n if (cb) {\n if (state.finished) process.nextTick(cb);else stream.once('finish', cb);\n }\n state.ended = true;\n stream.writable = false;\n}\nfunction onCorkedFinish(corkReq, state, err) {\n var entry = corkReq.entry;\n corkReq.entry = null;\n while (entry) {\n var cb = entry.callback;\n state.pendingcb--;\n cb(err);\n entry = entry.next;\n }\n\n // reuse the free corkReq.\n state.corkedRequestsFree.next = corkReq;\n}\nObject.defineProperty(Writable.prototype, 'destroyed', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get() {\n if (this._writableState === undefined) {\n return false;\n }\n return this._writableState.destroyed;\n },\n set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._writableState) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._writableState.destroyed = value;\n }\n});\nWritable.prototype.destroy = destroyImpl.destroy;\nWritable.prototype._undestroy = destroyImpl.undestroy;\nWritable.prototype._destroy = function (err, cb) {\n cb(err);\n};", "// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a duplex stream is just a stream that is both readable and writable.\n// Since JS doesn't have multiple prototypal inheritance, this class\n// prototypally inherits from Readable, and then parasitically from\n// Writable.\n\n'use strict';\n\n/**/\nvar objectKeys = Object.keys || function (obj) {\n var keys = [];\n for (var key in obj) keys.push(key);\n return keys;\n};\n/**/\n\nmodule.exports = Duplex;\nconst Readable = require('./_stream_readable');\nconst Writable = require('./_stream_writable');\nrequire('inherits')(Duplex, Readable);\n{\n // Allow the keys array to be GC'ed.\n const keys = objectKeys(Writable.prototype);\n for (var v = 0; v < keys.length; v++) {\n const method = keys[v];\n if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method];\n }\n}\nfunction Duplex(options) {\n if (!(this instanceof Duplex)) return new Duplex(options);\n Readable.call(this, options);\n Writable.call(this, options);\n this.allowHalfOpen = true;\n if (options) {\n if (options.readable === false) this.readable = false;\n if (options.writable === false) this.writable = false;\n if (options.allowHalfOpen === false) {\n this.allowHalfOpen = false;\n this.once('end', onend);\n }\n }\n}\nObject.defineProperty(Duplex.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get() {\n return this._writableState.highWaterMark;\n }\n});\nObject.defineProperty(Duplex.prototype, 'writableBuffer', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState && this._writableState.getBuffer();\n }\n});\nObject.defineProperty(Duplex.prototype, 'writableLength', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get() {\n return this._writableState.length;\n }\n});\n\n// the no-half-open enforcer\nfunction onend() {\n // If the writable side ended, then we're ok.\n if (this._writableState.ended) return;\n\n // no more data can be written.\n // But allow more writes to happen in this tick.\n process.nextTick(onEndNT, this);\n}\nfunction onEndNT(self) {\n self.end();\n}\nObject.defineProperty(Duplex.prototype, 'destroyed', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get() {\n if (this._readableState === undefined || this._writableState === undefined) {\n return false;\n }\n return this._readableState.destroyed && this._writableState.destroyed;\n },\n set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (this._readableState === undefined || this._writableState === undefined) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._readableState.destroyed = value;\n this._writableState.destroyed = value;\n }\n});", "// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\n/**/\n\nvar Buffer = require('safe-buffer').Buffer;\n/**/\n\nvar isEncoding = Buffer.isEncoding || function (encoding) {\n encoding = '' + encoding;\n switch (encoding && encoding.toLowerCase()) {\n case 'hex':case 'utf8':case 'utf-8':case 'ascii':case 'binary':case 'base64':case 'ucs2':case 'ucs-2':case 'utf16le':case 'utf-16le':case 'raw':\n return true;\n default:\n return false;\n }\n};\n\nfunction _normalizeEncoding(enc) {\n if (!enc) return 'utf8';\n var retried;\n while (true) {\n switch (enc) {\n case 'utf8':\n case 'utf-8':\n return 'utf8';\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return 'utf16le';\n case 'latin1':\n case 'binary':\n return 'latin1';\n case 'base64':\n case 'ascii':\n case 'hex':\n return enc;\n default:\n if (retried) return; // undefined\n enc = ('' + enc).toLowerCase();\n retried = true;\n }\n }\n};\n\n// Do not cache `Buffer.isEncoding` when checking encoding names as some\n// modules monkey-patch it to support additional encodings\nfunction normalizeEncoding(enc) {\n var nenc = _normalizeEncoding(enc);\n if (typeof nenc !== 'string' && (Buffer.isEncoding === isEncoding || !isEncoding(enc))) throw new Error('Unknown encoding: ' + enc);\n return nenc || enc;\n}\n\n// StringDecoder provides an interface for efficiently splitting a series of\n// buffers into a series of JS strings without breaking apart multi-byte\n// characters.\nexports.StringDecoder = StringDecoder;\nfunction StringDecoder(encoding) {\n this.encoding = normalizeEncoding(encoding);\n var nb;\n switch (this.encoding) {\n case 'utf16le':\n this.text = utf16Text;\n this.end = utf16End;\n nb = 4;\n break;\n case 'utf8':\n this.fillLast = utf8FillLast;\n nb = 4;\n break;\n case 'base64':\n this.text = base64Text;\n this.end = base64End;\n nb = 3;\n break;\n default:\n this.write = simpleWrite;\n this.end = simpleEnd;\n return;\n }\n this.lastNeed = 0;\n this.lastTotal = 0;\n this.lastChar = Buffer.allocUnsafe(nb);\n}\n\nStringDecoder.prototype.write = function (buf) {\n if (buf.length === 0) return '';\n var r;\n var i;\n if (this.lastNeed) {\n r = this.fillLast(buf);\n if (r === undefined) return '';\n i = this.lastNeed;\n this.lastNeed = 0;\n } else {\n i = 0;\n }\n if (i < buf.length) return r ? r + this.text(buf, i) : this.text(buf, i);\n return r || '';\n};\n\nStringDecoder.prototype.end = utf8End;\n\n// Returns only complete characters in a Buffer\nStringDecoder.prototype.text = utf8Text;\n\n// Attempts to complete a partial non-UTF-8 character using bytes from a Buffer\nStringDecoder.prototype.fillLast = function (buf) {\n if (this.lastNeed <= buf.length) {\n buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, buf.length);\n this.lastNeed -= buf.length;\n};\n\n// Checks the type of a UTF-8 byte, whether it's ASCII, a leading byte, or a\n// continuation byte. If an invalid byte is detected, -2 is returned.\nfunction utf8CheckByte(byte) {\n if (byte <= 0x7F) return 0;else if (byte >> 5 === 0x06) return 2;else if (byte >> 4 === 0x0E) return 3;else if (byte >> 3 === 0x1E) return 4;\n return byte >> 6 === 0x02 ? -1 : -2;\n}\n\n// Checks at most 3 bytes at the end of a Buffer in order to detect an\n// incomplete multi-byte UTF-8 character. The total number of bytes (2, 3, or 4)\n// needed to complete the UTF-8 character (if applicable) are returned.\nfunction utf8CheckIncomplete(self, buf, i) {\n var j = buf.length - 1;\n if (j < i) return 0;\n var nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) self.lastNeed = nb - 1;\n return nb;\n }\n if (--j < i || nb === -2) return 0;\n nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) self.lastNeed = nb - 2;\n return nb;\n }\n if (--j < i || nb === -2) return 0;\n nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) {\n if (nb === 2) nb = 0;else self.lastNeed = nb - 3;\n }\n return nb;\n }\n return 0;\n}\n\n// Validates as many continuation bytes for a multi-byte UTF-8 character as\n// needed or are available. If we see a non-continuation byte where we expect\n// one, we \"replace\" the validated continuation bytes we've seen so far with\n// a single UTF-8 replacement character ('\\ufffd'), to match v8's UTF-8 decoding\n// behavior. The continuation byte check is included three times in the case\n// where all of the continuation bytes for a character exist in the same buffer.\n// It is also done this way as a slight performance increase instead of using a\n// loop.\nfunction utf8CheckExtraBytes(self, buf, p) {\n if ((buf[0] & 0xC0) !== 0x80) {\n self.lastNeed = 0;\n return '\\ufffd';\n }\n if (self.lastNeed > 1 && buf.length > 1) {\n if ((buf[1] & 0xC0) !== 0x80) {\n self.lastNeed = 1;\n return '\\ufffd';\n }\n if (self.lastNeed > 2 && buf.length > 2) {\n if ((buf[2] & 0xC0) !== 0x80) {\n self.lastNeed = 2;\n return '\\ufffd';\n }\n }\n }\n}\n\n// Attempts to complete a multi-byte UTF-8 character using bytes from a Buffer.\nfunction utf8FillLast(buf) {\n var p = this.lastTotal - this.lastNeed;\n var r = utf8CheckExtraBytes(this, buf, p);\n if (r !== undefined) return r;\n if (this.lastNeed <= buf.length) {\n buf.copy(this.lastChar, p, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n buf.copy(this.lastChar, p, 0, buf.length);\n this.lastNeed -= buf.length;\n}\n\n// Returns all complete UTF-8 characters in a Buffer. If the Buffer ended on a\n// partial character, the character's bytes are buffered until the required\n// number of bytes are available.\nfunction utf8Text(buf, i) {\n var total = utf8CheckIncomplete(this, buf, i);\n if (!this.lastNeed) return buf.toString('utf8', i);\n this.lastTotal = total;\n var end = buf.length - (total - this.lastNeed);\n buf.copy(this.lastChar, 0, end);\n return buf.toString('utf8', i, end);\n}\n\n// For UTF-8, a replacement character is added when ending on a partial\n// character.\nfunction utf8End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) return r + '\\ufffd';\n return r;\n}\n\n// UTF-16LE typically needs two bytes per character, but even if we have an even\n// number of bytes available, we need to check if we end on a leading/high\n// surrogate. In that case, we need to wait for the next two bytes in order to\n// decode the last character properly.\nfunction utf16Text(buf, i) {\n if ((buf.length - i) % 2 === 0) {\n var r = buf.toString('utf16le', i);\n if (r) {\n var c = r.charCodeAt(r.length - 1);\n if (c >= 0xD800 && c <= 0xDBFF) {\n this.lastNeed = 2;\n this.lastTotal = 4;\n this.lastChar[0] = buf[buf.length - 2];\n this.lastChar[1] = buf[buf.length - 1];\n return r.slice(0, -1);\n }\n }\n return r;\n }\n this.lastNeed = 1;\n this.lastTotal = 2;\n this.lastChar[0] = buf[buf.length - 1];\n return buf.toString('utf16le', i, buf.length - 1);\n}\n\n// For UTF-16LE we do not explicitly append special replacement characters if we\n// end on a partial character, we simply let v8 handle that.\nfunction utf16End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) {\n var end = this.lastTotal - this.lastNeed;\n return r + this.lastChar.toString('utf16le', 0, end);\n }\n return r;\n}\n\nfunction base64Text(buf, i) {\n var n = (buf.length - i) % 3;\n if (n === 0) return buf.toString('base64', i);\n this.lastNeed = 3 - n;\n this.lastTotal = 3;\n if (n === 1) {\n this.lastChar[0] = buf[buf.length - 1];\n } else {\n this.lastChar[0] = buf[buf.length - 2];\n this.lastChar[1] = buf[buf.length - 1];\n }\n return buf.toString('base64', i, buf.length - n);\n}\n\nfunction base64End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) return r + this.lastChar.toString('base64', 0, 3 - this.lastNeed);\n return r;\n}\n\n// Pass bytes on through for single-byte encodings (e.g. ascii, latin1, hex)\nfunction simpleWrite(buf) {\n return buf.toString(this.encoding);\n}\n\nfunction simpleEnd(buf) {\n return buf && buf.length ? this.write(buf) : '';\n}", "// Ported from https://github.com/mafintosh/end-of-stream with\n// permission from the author, Mathias Buus (@mafintosh).\n\n'use strict';\n\nconst ERR_STREAM_PREMATURE_CLOSE = require('../../../errors').codes.ERR_STREAM_PREMATURE_CLOSE;\nfunction once(callback) {\n let called = false;\n return function () {\n if (called) return;\n called = true;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n callback.apply(this, args);\n };\n}\nfunction noop() {}\nfunction isRequest(stream) {\n return stream.setHeader && typeof stream.abort === 'function';\n}\nfunction eos(stream, opts, callback) {\n if (typeof opts === 'function') return eos(stream, null, opts);\n if (!opts) opts = {};\n callback = once(callback || noop);\n let readable = opts.readable || opts.readable !== false && stream.readable;\n let writable = opts.writable || opts.writable !== false && stream.writable;\n const onlegacyfinish = () => {\n if (!stream.writable) onfinish();\n };\n var writableEnded = stream._writableState && stream._writableState.finished;\n const onfinish = () => {\n writable = false;\n writableEnded = true;\n if (!readable) callback.call(stream);\n };\n var readableEnded = stream._readableState && stream._readableState.endEmitted;\n const onend = () => {\n readable = false;\n readableEnded = true;\n if (!writable) callback.call(stream);\n };\n const onerror = err => {\n callback.call(stream, err);\n };\n const onclose = () => {\n let err;\n if (readable && !readableEnded) {\n if (!stream._readableState || !stream._readableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE();\n return callback.call(stream, err);\n }\n if (writable && !writableEnded) {\n if (!stream._writableState || !stream._writableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE();\n return callback.call(stream, err);\n }\n };\n const onrequest = () => {\n stream.req.on('finish', onfinish);\n };\n if (isRequest(stream)) {\n stream.on('complete', onfinish);\n stream.on('abort', onclose);\n if (stream.req) onrequest();else stream.on('request', onrequest);\n } else if (writable && !stream._writableState) {\n // legacy streams\n stream.on('end', onlegacyfinish);\n stream.on('close', onlegacyfinish);\n }\n stream.on('end', onend);\n stream.on('finish', onfinish);\n if (opts.error !== false) stream.on('error', onerror);\n stream.on('close', onclose);\n return function () {\n stream.removeListener('complete', onfinish);\n stream.removeListener('abort', onclose);\n stream.removeListener('request', onrequest);\n if (stream.req) stream.req.removeListener('finish', onfinish);\n stream.removeListener('end', onlegacyfinish);\n stream.removeListener('close', onlegacyfinish);\n stream.removeListener('finish', onfinish);\n stream.removeListener('end', onend);\n stream.removeListener('error', onerror);\n stream.removeListener('close', onclose);\n };\n}\nmodule.exports = eos;", "'use strict';\n\nconst finished = require('./end-of-stream');\nconst kLastResolve = Symbol('lastResolve');\nconst kLastReject = Symbol('lastReject');\nconst kError = Symbol('error');\nconst kEnded = Symbol('ended');\nconst kLastPromise = Symbol('lastPromise');\nconst kHandlePromise = Symbol('handlePromise');\nconst kStream = Symbol('stream');\nfunction createIterResult(value, done) {\n return {\n value,\n done\n };\n}\nfunction readAndResolve(iter) {\n const resolve = iter[kLastResolve];\n if (resolve !== null) {\n const data = iter[kStream].read();\n // we defer if data is null\n // we can be expecting either 'end' or\n // 'error'\n if (data !== null) {\n iter[kLastPromise] = null;\n iter[kLastResolve] = null;\n iter[kLastReject] = null;\n resolve(createIterResult(data, false));\n }\n }\n}\nfunction onReadable(iter) {\n // we wait for the next tick, because it might\n // emit an error with process.nextTick\n process.nextTick(readAndResolve, iter);\n}\nfunction wrapForNext(lastPromise, iter) {\n return (resolve, reject) => {\n lastPromise.then(() => {\n if (iter[kEnded]) {\n resolve(createIterResult(undefined, true));\n return;\n }\n iter[kHandlePromise](resolve, reject);\n }, reject);\n };\n}\nconst AsyncIteratorPrototype = Object.getPrototypeOf(function () {});\nconst ReadableStreamAsyncIteratorPrototype = Object.setPrototypeOf({\n get stream() {\n return this[kStream];\n },\n next() {\n // if we have detected an error in the meanwhile\n // reject straight away\n const error = this[kError];\n if (error !== null) {\n return Promise.reject(error);\n }\n if (this[kEnded]) {\n return Promise.resolve(createIterResult(undefined, true));\n }\n if (this[kStream].destroyed) {\n // We need to defer via nextTick because if .destroy(err) is\n // called, the error will be emitted via nextTick, and\n // we cannot guarantee that there is no error lingering around\n // waiting to be emitted.\n return new Promise((resolve, reject) => {\n process.nextTick(() => {\n if (this[kError]) {\n reject(this[kError]);\n } else {\n resolve(createIterResult(undefined, true));\n }\n });\n });\n }\n\n // if we have multiple next() calls\n // we will wait for the previous Promise to finish\n // this logic is optimized to support for await loops,\n // where next() is only called once at a time\n const lastPromise = this[kLastPromise];\n let promise;\n if (lastPromise) {\n promise = new Promise(wrapForNext(lastPromise, this));\n } else {\n // fast path needed to support multiple this.push()\n // without triggering the next() queue\n const data = this[kStream].read();\n if (data !== null) {\n return Promise.resolve(createIterResult(data, false));\n }\n promise = new Promise(this[kHandlePromise]);\n }\n this[kLastPromise] = promise;\n return promise;\n },\n [Symbol.asyncIterator]() {\n return this;\n },\n return() {\n // destroy(err, cb) is a private API\n // we can guarantee we have that here, because we control the\n // Readable class this is attached to\n return new Promise((resolve, reject) => {\n this[kStream].destroy(null, err => {\n if (err) {\n reject(err);\n return;\n }\n resolve(createIterResult(undefined, true));\n });\n });\n }\n}, AsyncIteratorPrototype);\nconst createReadableStreamAsyncIterator = stream => {\n const iterator = Object.create(ReadableStreamAsyncIteratorPrototype, {\n [kStream]: {\n value: stream,\n writable: true\n },\n [kLastResolve]: {\n value: null,\n writable: true\n },\n [kLastReject]: {\n value: null,\n writable: true\n },\n [kError]: {\n value: null,\n writable: true\n },\n [kEnded]: {\n value: stream._readableState.endEmitted,\n writable: true\n },\n // the function passed to new Promise\n // is cached so we avoid allocating a new\n // closure at every run\n [kHandlePromise]: {\n value: (resolve, reject) => {\n const data = iterator[kStream].read();\n if (data) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n resolve(createIterResult(data, false));\n } else {\n iterator[kLastResolve] = resolve;\n iterator[kLastReject] = reject;\n }\n },\n writable: true\n }\n });\n iterator[kLastPromise] = null;\n finished(stream, err => {\n if (err && err.code !== 'ERR_STREAM_PREMATURE_CLOSE') {\n const reject = iterator[kLastReject];\n // reject if we are waiting for data in the Promise\n // returned by next() and store the error\n if (reject !== null) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n reject(err);\n }\n iterator[kError] = err;\n return;\n }\n const resolve = iterator[kLastResolve];\n if (resolve !== null) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n resolve(createIterResult(undefined, true));\n }\n iterator[kEnded] = true;\n });\n stream.on('readable', onReadable.bind(null, iterator));\n return iterator;\n};\nmodule.exports = createReadableStreamAsyncIterator;", "'use strict';\n\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }\nfunction _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err); } _next(undefined); }); }; }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return typeof key === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (typeof input !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (typeof res !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nconst ERR_INVALID_ARG_TYPE = require('../../../errors').codes.ERR_INVALID_ARG_TYPE;\nfunction from(Readable, iterable, opts) {\n let iterator;\n if (iterable && typeof iterable.next === 'function') {\n iterator = iterable;\n } else if (iterable && iterable[Symbol.asyncIterator]) iterator = iterable[Symbol.asyncIterator]();else if (iterable && iterable[Symbol.iterator]) iterator = iterable[Symbol.iterator]();else throw new ERR_INVALID_ARG_TYPE('iterable', ['Iterable'], iterable);\n const readable = new Readable(_objectSpread({\n objectMode: true\n }, opts));\n // Reading boolean to protect against _read\n // being called before last iteration completion.\n let reading = false;\n readable._read = function () {\n if (!reading) {\n reading = true;\n next();\n }\n };\n function next() {\n return _next2.apply(this, arguments);\n }\n function _next2() {\n _next2 = _asyncToGenerator(function* () {\n try {\n const _yield$iterator$next = yield iterator.next(),\n value = _yield$iterator$next.value,\n done = _yield$iterator$next.done;\n if (done) {\n readable.push(null);\n } else if (readable.push(yield value)) {\n next();\n } else {\n reading = false;\n }\n } catch (err) {\n readable.destroy(err);\n }\n });\n return _next2.apply(this, arguments);\n }\n return readable;\n}\nmodule.exports = from;", "// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nmodule.exports = Readable;\n\n/**/\nvar Duplex;\n/**/\n\nReadable.ReadableState = ReadableState;\n\n/**/\nconst EE = require('events').EventEmitter;\nvar EElistenerCount = function EElistenerCount(emitter, type) {\n return emitter.listeners(type).length;\n};\n/**/\n\n/**/\nvar Stream = require('./internal/streams/stream');\n/**/\n\nconst Buffer = require('buffer').Buffer;\nconst OurUint8Array = (typeof global !== 'undefined' ? global : typeof window !== 'undefined' ? window : typeof self !== 'undefined' ? self : {}).Uint8Array || function () {};\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n\n/**/\nconst debugUtil = require('util');\nlet debug;\nif (debugUtil && debugUtil.debuglog) {\n debug = debugUtil.debuglog('stream');\n} else {\n debug = function debug() {};\n}\n/**/\n\nconst BufferList = require('./internal/streams/buffer_list');\nconst destroyImpl = require('./internal/streams/destroy');\nconst _require = require('./internal/streams/state'),\n getHighWaterMark = _require.getHighWaterMark;\nconst _require$codes = require('../errors').codes,\n ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE,\n ERR_STREAM_PUSH_AFTER_EOF = _require$codes.ERR_STREAM_PUSH_AFTER_EOF,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_STREAM_UNSHIFT_AFTER_END_EVENT = _require$codes.ERR_STREAM_UNSHIFT_AFTER_END_EVENT;\n\n// Lazy loaded to improve the startup performance.\nlet StringDecoder;\nlet createReadableStreamAsyncIterator;\nlet from;\nrequire('inherits')(Readable, Stream);\nconst errorOrDestroy = destroyImpl.errorOrDestroy;\nconst kProxyEvents = ['error', 'close', 'destroy', 'pause', 'resume'];\nfunction prependListener(emitter, event, fn) {\n // Sadly this is not cacheable as some libraries bundle their own\n // event emitter implementation with them.\n if (typeof emitter.prependListener === 'function') return emitter.prependListener(event, fn);\n\n // This is a hack to make sure that our error handler is attached before any\n // userland ones. NEVER DO THIS. This is here only because this code needs\n // to continue to work with older versions of Node.js that do not include\n // the prependListener() method. The goal is to eventually remove this hack.\n if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (Array.isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]];\n}\nfunction ReadableState(options, stream, isDuplex) {\n Duplex = Duplex || require('./_stream_duplex');\n options = options || {};\n\n // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream.\n // These options can be provided separately as readableXXX and writableXXX.\n if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex;\n\n // object stream flag. Used to make read(n) ignore n and to\n // make all the buffer merging and length checks go away\n this.objectMode = !!options.objectMode;\n if (isDuplex) this.objectMode = this.objectMode || !!options.readableObjectMode;\n\n // the point at which it stops calling _read() to fill the buffer\n // Note: 0 is a valid value, means \"don't call _read preemptively ever\"\n this.highWaterMark = getHighWaterMark(this, options, 'readableHighWaterMark', isDuplex);\n\n // A linked list is used to store data chunks instead of an array because the\n // linked list can remove elements from the beginning faster than\n // array.shift()\n this.buffer = new BufferList();\n this.length = 0;\n this.pipes = null;\n this.pipesCount = 0;\n this.flowing = null;\n this.ended = false;\n this.endEmitted = false;\n this.reading = false;\n\n // a flag to be able to tell if the event 'readable'/'data' is emitted\n // immediately, or on a later tick. We set this to true at first, because\n // any actions that shouldn't happen until \"later\" should generally also\n // not happen before the first read call.\n this.sync = true;\n\n // whenever we return null, then we set a flag to say\n // that we're awaiting a 'readable' event emission.\n this.needReadable = false;\n this.emittedReadable = false;\n this.readableListening = false;\n this.resumeScheduled = false;\n this.paused = true;\n\n // Should close be emitted on destroy. Defaults to true.\n this.emitClose = options.emitClose !== false;\n\n // Should .destroy() be called after 'end' (and potentially 'finish')\n this.autoDestroy = !!options.autoDestroy;\n\n // has it been destroyed\n this.destroyed = false;\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n // the number of writers that are awaiting a drain event in .pipe()s\n this.awaitDrain = 0;\n\n // if true, a maybeReadMore has been scheduled\n this.readingMore = false;\n this.decoder = null;\n this.encoding = null;\n if (options.encoding) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n this.decoder = new StringDecoder(options.encoding);\n this.encoding = options.encoding;\n }\n}\nfunction Readable(options) {\n Duplex = Duplex || require('./_stream_duplex');\n if (!(this instanceof Readable)) return new Readable(options);\n\n // Checking for a Stream.Duplex instance is faster here instead of inside\n // the ReadableState constructor, at least with V8 6.5\n const isDuplex = this instanceof Duplex;\n this._readableState = new ReadableState(options, this, isDuplex);\n\n // legacy\n this.readable = true;\n if (options) {\n if (typeof options.read === 'function') this._read = options.read;\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n }\n Stream.call(this);\n}\nObject.defineProperty(Readable.prototype, 'destroyed', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get() {\n if (this._readableState === undefined) {\n return false;\n }\n return this._readableState.destroyed;\n },\n set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._readableState) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._readableState.destroyed = value;\n }\n});\nReadable.prototype.destroy = destroyImpl.destroy;\nReadable.prototype._undestroy = destroyImpl.undestroy;\nReadable.prototype._destroy = function (err, cb) {\n cb(err);\n};\n\n// Manually shove something into the read() buffer.\n// This returns true if the highWaterMark has not been hit yet,\n// similar to how Writable.write() returns true if you should\n// write() some more.\nReadable.prototype.push = function (chunk, encoding) {\n var state = this._readableState;\n var skipChunkCheck;\n if (!state.objectMode) {\n if (typeof chunk === 'string') {\n encoding = encoding || state.defaultEncoding;\n if (encoding !== state.encoding) {\n chunk = Buffer.from(chunk, encoding);\n encoding = '';\n }\n skipChunkCheck = true;\n }\n } else {\n skipChunkCheck = true;\n }\n return readableAddChunk(this, chunk, encoding, false, skipChunkCheck);\n};\n\n// Unshift should *always* be something directly out of read()\nReadable.prototype.unshift = function (chunk) {\n return readableAddChunk(this, chunk, null, true, false);\n};\nfunction readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) {\n debug('readableAddChunk', chunk);\n var state = stream._readableState;\n if (chunk === null) {\n state.reading = false;\n onEofChunk(stream, state);\n } else {\n var er;\n if (!skipChunkCheck) er = chunkInvalid(state, chunk);\n if (er) {\n errorOrDestroy(stream, er);\n } else if (state.objectMode || chunk && chunk.length > 0) {\n if (typeof chunk !== 'string' && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer.prototype) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n if (addToFront) {\n if (state.endEmitted) errorOrDestroy(stream, new ERR_STREAM_UNSHIFT_AFTER_END_EVENT());else addChunk(stream, state, chunk, true);\n } else if (state.ended) {\n errorOrDestroy(stream, new ERR_STREAM_PUSH_AFTER_EOF());\n } else if (state.destroyed) {\n return false;\n } else {\n state.reading = false;\n if (state.decoder && !encoding) {\n chunk = state.decoder.write(chunk);\n if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false);else maybeReadMore(stream, state);\n } else {\n addChunk(stream, state, chunk, false);\n }\n }\n } else if (!addToFront) {\n state.reading = false;\n maybeReadMore(stream, state);\n }\n }\n\n // We can push more data if we are below the highWaterMark.\n // Also, if we have no data yet, we can stand some more bytes.\n // This is to work around cases where hwm=0, such as the repl.\n return !state.ended && (state.length < state.highWaterMark || state.length === 0);\n}\nfunction addChunk(stream, state, chunk, addToFront) {\n if (state.flowing && state.length === 0 && !state.sync) {\n state.awaitDrain = 0;\n stream.emit('data', chunk);\n } else {\n // update the buffer info.\n state.length += state.objectMode ? 1 : chunk.length;\n if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk);\n if (state.needReadable) emitReadable(stream);\n }\n maybeReadMore(stream, state);\n}\nfunction chunkInvalid(state, chunk) {\n var er;\n if (!_isUint8Array(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n er = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer', 'Uint8Array'], chunk);\n }\n return er;\n}\nReadable.prototype.isPaused = function () {\n return this._readableState.flowing === false;\n};\n\n// backwards compatibility.\nReadable.prototype.setEncoding = function (enc) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n const decoder = new StringDecoder(enc);\n this._readableState.decoder = decoder;\n // If setEncoding(null), decoder.encoding equals utf8\n this._readableState.encoding = this._readableState.decoder.encoding;\n\n // Iterate over current buffer to convert already stored Buffers:\n let p = this._readableState.buffer.head;\n let content = '';\n while (p !== null) {\n content += decoder.write(p.data);\n p = p.next;\n }\n this._readableState.buffer.clear();\n if (content !== '') this._readableState.buffer.push(content);\n this._readableState.length = content.length;\n return this;\n};\n\n// Don't raise the hwm > 1GB\nconst MAX_HWM = 0x40000000;\nfunction computeNewHighWaterMark(n) {\n if (n >= MAX_HWM) {\n // TODO(ronag): Throw ERR_VALUE_OUT_OF_RANGE.\n n = MAX_HWM;\n } else {\n // Get the next highest power of 2 to prevent increasing hwm excessively in\n // tiny amounts\n n--;\n n |= n >>> 1;\n n |= n >>> 2;\n n |= n >>> 4;\n n |= n >>> 8;\n n |= n >>> 16;\n n++;\n }\n return n;\n}\n\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction howMuchToRead(n, state) {\n if (n <= 0 || state.length === 0 && state.ended) return 0;\n if (state.objectMode) return 1;\n if (n !== n) {\n // Only flow one buffer at a time\n if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length;\n }\n // If we're asking for more than the current hwm, then raise the hwm.\n if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);\n if (n <= state.length) return n;\n // Don't have enough\n if (!state.ended) {\n state.needReadable = true;\n return 0;\n }\n return state.length;\n}\n\n// you can override either this method, or the async _read(n) below.\nReadable.prototype.read = function (n) {\n debug('read', n);\n n = parseInt(n, 10);\n var state = this._readableState;\n var nOrig = n;\n if (n !== 0) state.emittedReadable = false;\n\n // if we're doing read(0) to trigger a readable event, but we\n // already have a bunch of data in the buffer, then just trigger\n // the 'readable' event and move on.\n if (n === 0 && state.needReadable && ((state.highWaterMark !== 0 ? state.length >= state.highWaterMark : state.length > 0) || state.ended)) {\n debug('read: emitReadable', state.length, state.ended);\n if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this);\n return null;\n }\n n = howMuchToRead(n, state);\n\n // if we've ended, and we're now clear, then finish it up.\n if (n === 0 && state.ended) {\n if (state.length === 0) endReadable(this);\n return null;\n }\n\n // All the actual chunk generation logic needs to be\n // *below* the call to _read. The reason is that in certain\n // synthetic stream cases, such as passthrough streams, _read\n // may be a completely synchronous operation which may change\n // the state of the read buffer, providing enough data when\n // before there was *not* enough.\n //\n // So, the steps are:\n // 1. Figure out what the state of things will be after we do\n // a read from the buffer.\n //\n // 2. If that resulting state will trigger a _read, then call _read.\n // Note that this may be asynchronous, or synchronous. Yes, it is\n // deeply ugly to write APIs this way, but that still doesn't mean\n // that the Readable class should behave improperly, as streams are\n // designed to be sync/async agnostic.\n // Take note if the _read call is sync or async (ie, if the read call\n // has returned yet), so that we know whether or not it's safe to emit\n // 'readable' etc.\n //\n // 3. Actually pull the requested chunks out of the buffer and return.\n\n // if we need a readable event, then we need to do some reading.\n var doRead = state.needReadable;\n debug('need readable', doRead);\n\n // if we currently have less than the highWaterMark, then also read some\n if (state.length === 0 || state.length - n < state.highWaterMark) {\n doRead = true;\n debug('length less than watermark', doRead);\n }\n\n // however, if we've ended, then there's no point, and if we're already\n // reading, then it's unnecessary.\n if (state.ended || state.reading) {\n doRead = false;\n debug('reading or ended', doRead);\n } else if (doRead) {\n debug('do read');\n state.reading = true;\n state.sync = true;\n // if the length is currently zero, then we *need* a readable event.\n if (state.length === 0) state.needReadable = true;\n // call internal read method\n this._read(state.highWaterMark);\n state.sync = false;\n // If _read pushed data synchronously, then `reading` will be false,\n // and we need to re-evaluate how much data we can return to the user.\n if (!state.reading) n = howMuchToRead(nOrig, state);\n }\n var ret;\n if (n > 0) ret = fromList(n, state);else ret = null;\n if (ret === null) {\n state.needReadable = state.length <= state.highWaterMark;\n n = 0;\n } else {\n state.length -= n;\n state.awaitDrain = 0;\n }\n if (state.length === 0) {\n // If we have nothing in the buffer, then we want to know\n // as soon as we *do* get something into the buffer.\n if (!state.ended) state.needReadable = true;\n\n // If we tried to read() past the EOF, then emit end on the next tick.\n if (nOrig !== n && state.ended) endReadable(this);\n }\n if (ret !== null) this.emit('data', ret);\n return ret;\n};\nfunction onEofChunk(stream, state) {\n debug('onEofChunk');\n if (state.ended) return;\n if (state.decoder) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) {\n state.buffer.push(chunk);\n state.length += state.objectMode ? 1 : chunk.length;\n }\n }\n state.ended = true;\n if (state.sync) {\n // if we are sync, wait until next tick to emit the data.\n // Otherwise we risk emitting data in the flow()\n // the readable code triggers during a read() call\n emitReadable(stream);\n } else {\n // emit 'readable' now to make sure it gets picked up.\n state.needReadable = false;\n if (!state.emittedReadable) {\n state.emittedReadable = true;\n emitReadable_(stream);\n }\n }\n}\n\n// Don't emit readable right away in sync mode, because this can trigger\n// another read() call => stack overflow. This way, it might trigger\n// a nextTick recursion warning, but that's not so bad.\nfunction emitReadable(stream) {\n var state = stream._readableState;\n debug('emitReadable', state.needReadable, state.emittedReadable);\n state.needReadable = false;\n if (!state.emittedReadable) {\n debug('emitReadable', state.flowing);\n state.emittedReadable = true;\n process.nextTick(emitReadable_, stream);\n }\n}\nfunction emitReadable_(stream) {\n var state = stream._readableState;\n debug('emitReadable_', state.destroyed, state.length, state.ended);\n if (!state.destroyed && (state.length || state.ended)) {\n stream.emit('readable');\n state.emittedReadable = false;\n }\n\n // The stream needs another readable event if\n // 1. It is not flowing, as the flow mechanism will take\n // care of it.\n // 2. It is not ended.\n // 3. It is below the highWaterMark, so we can schedule\n // another readable later.\n state.needReadable = !state.flowing && !state.ended && state.length <= state.highWaterMark;\n flow(stream);\n}\n\n// at this point, the user has presumably seen the 'readable' event,\n// and called read() to consume some data. that may have triggered\n// in turn another _read(n) call, in which case reading = true if\n// it's in progress.\n// However, if we're not ended, or reading, and the length < hwm,\n// then go ahead and try to read some more preemptively.\nfunction maybeReadMore(stream, state) {\n if (!state.readingMore) {\n state.readingMore = true;\n process.nextTick(maybeReadMore_, stream, state);\n }\n}\nfunction maybeReadMore_(stream, state) {\n // Attempt to read more data if we should.\n //\n // The conditions for reading more data are (one of):\n // - Not enough data buffered (state.length < state.highWaterMark). The loop\n // is responsible for filling the buffer with enough data if such data\n // is available. If highWaterMark is 0 and we are not in the flowing mode\n // we should _not_ attempt to buffer any extra data. We'll get more data\n // when the stream consumer calls read() instead.\n // - No data in the buffer, and the stream is in flowing mode. In this mode\n // the loop below is responsible for ensuring read() is called. Failing to\n // call read here would abort the flow and there's no other mechanism for\n // continuing the flow if the stream consumer has just subscribed to the\n // 'data' event.\n //\n // In addition to the above conditions to keep reading data, the following\n // conditions prevent the data from being read:\n // - The stream has ended (state.ended).\n // - There is already a pending 'read' operation (state.reading). This is a\n // case where the the stream has called the implementation defined _read()\n // method, but they are processing the call asynchronously and have _not_\n // called push() with new data. In this case we skip performing more\n // read()s. The execution ends in this method again after the _read() ends\n // up calling push() with more data.\n while (!state.reading && !state.ended && (state.length < state.highWaterMark || state.flowing && state.length === 0)) {\n const len = state.length;\n debug('maybeReadMore read 0');\n stream.read(0);\n if (len === state.length)\n // didn't get any data, stop spinning.\n break;\n }\n state.readingMore = false;\n}\n\n// abstract method. to be overridden in specific implementation classes.\n// call cb(er, data) where data is <= n in length.\n// for virtual (non-string, non-buffer) streams, \"length\" is somewhat\n// arbitrary, and perhaps not very meaningful.\nReadable.prototype._read = function (n) {\n errorOrDestroy(this, new ERR_METHOD_NOT_IMPLEMENTED('_read()'));\n};\nReadable.prototype.pipe = function (dest, pipeOpts) {\n var src = this;\n var state = this._readableState;\n switch (state.pipesCount) {\n case 0:\n state.pipes = dest;\n break;\n case 1:\n state.pipes = [state.pipes, dest];\n break;\n default:\n state.pipes.push(dest);\n break;\n }\n state.pipesCount += 1;\n debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);\n var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;\n var endFn = doEnd ? onend : unpipe;\n if (state.endEmitted) process.nextTick(endFn);else src.once('end', endFn);\n dest.on('unpipe', onunpipe);\n function onunpipe(readable, unpipeInfo) {\n debug('onunpipe');\n if (readable === src) {\n if (unpipeInfo && unpipeInfo.hasUnpiped === false) {\n unpipeInfo.hasUnpiped = true;\n cleanup();\n }\n }\n }\n function onend() {\n debug('onend');\n dest.end();\n }\n\n // when the dest drains, it reduces the awaitDrain counter\n // on the source. This would be more elegant with a .once()\n // handler in flow(), but adding and removing repeatedly is\n // too slow.\n var ondrain = pipeOnDrain(src);\n dest.on('drain', ondrain);\n var cleanedUp = false;\n function cleanup() {\n debug('cleanup');\n // cleanup event handlers once the pipe is broken\n dest.removeListener('close', onclose);\n dest.removeListener('finish', onfinish);\n dest.removeListener('drain', ondrain);\n dest.removeListener('error', onerror);\n dest.removeListener('unpipe', onunpipe);\n src.removeListener('end', onend);\n src.removeListener('end', unpipe);\n src.removeListener('data', ondata);\n cleanedUp = true;\n\n // if the reader is waiting for a drain event from this\n // specific writer, then it would cause it to never start\n // flowing again.\n // So, if this is awaiting a drain, then we just call it now.\n // If we don't know, then assume that we are waiting for one.\n if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();\n }\n src.on('data', ondata);\n function ondata(chunk) {\n debug('ondata');\n var ret = dest.write(chunk);\n debug('dest.write', ret);\n if (ret === false) {\n // If the user unpiped during `dest.write()`, it is possible\n // to get stuck in a permanently paused state if that write\n // also returned false.\n // => Check whether `dest` is still a piping destination.\n if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) {\n debug('false write response, pause', state.awaitDrain);\n state.awaitDrain++;\n }\n src.pause();\n }\n }\n\n // if the dest has an error, then stop piping into it.\n // however, don't suppress the throwing behavior for this.\n function onerror(er) {\n debug('onerror', er);\n unpipe();\n dest.removeListener('error', onerror);\n if (EElistenerCount(dest, 'error') === 0) errorOrDestroy(dest, er);\n }\n\n // Make sure our error handler is attached before userland ones.\n prependListener(dest, 'error', onerror);\n\n // Both close and finish should trigger unpipe, but only once.\n function onclose() {\n dest.removeListener('finish', onfinish);\n unpipe();\n }\n dest.once('close', onclose);\n function onfinish() {\n debug('onfinish');\n dest.removeListener('close', onclose);\n unpipe();\n }\n dest.once('finish', onfinish);\n function unpipe() {\n debug('unpipe');\n src.unpipe(dest);\n }\n\n // tell the dest that it's being piped to\n dest.emit('pipe', src);\n\n // start the flow if it hasn't been started already.\n if (!state.flowing) {\n debug('pipe resume');\n src.resume();\n }\n return dest;\n};\nfunction pipeOnDrain(src) {\n return function pipeOnDrainFunctionResult() {\n var state = src._readableState;\n debug('pipeOnDrain', state.awaitDrain);\n if (state.awaitDrain) state.awaitDrain--;\n if (state.awaitDrain === 0 && EElistenerCount(src, 'data')) {\n state.flowing = true;\n flow(src);\n }\n };\n}\nReadable.prototype.unpipe = function (dest) {\n var state = this._readableState;\n var unpipeInfo = {\n hasUnpiped: false\n };\n\n // if we're not piping anywhere, then do nothing.\n if (state.pipesCount === 0) return this;\n\n // just one destination. most common case.\n if (state.pipesCount === 1) {\n // passed in one, but it's not the right one.\n if (dest && dest !== state.pipes) return this;\n if (!dest) dest = state.pipes;\n\n // got a match.\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n if (dest) dest.emit('unpipe', this, unpipeInfo);\n return this;\n }\n\n // slow case. multiple pipe destinations.\n\n if (!dest) {\n // remove all.\n var dests = state.pipes;\n var len = state.pipesCount;\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n for (var i = 0; i < len; i++) dests[i].emit('unpipe', this, {\n hasUnpiped: false\n });\n return this;\n }\n\n // try to find the right one.\n var index = indexOf(state.pipes, dest);\n if (index === -1) return this;\n state.pipes.splice(index, 1);\n state.pipesCount -= 1;\n if (state.pipesCount === 1) state.pipes = state.pipes[0];\n dest.emit('unpipe', this, unpipeInfo);\n return this;\n};\n\n// set up data events if they are asked for\n// Ensure readable listeners eventually get something\nReadable.prototype.on = function (ev, fn) {\n const res = Stream.prototype.on.call(this, ev, fn);\n const state = this._readableState;\n if (ev === 'data') {\n // update readableListening so that resume() may be a no-op\n // a few lines down. This is needed to support once('readable').\n state.readableListening = this.listenerCount('readable') > 0;\n\n // Try start flowing on next tick if stream isn't explicitly paused\n if (state.flowing !== false) this.resume();\n } else if (ev === 'readable') {\n if (!state.endEmitted && !state.readableListening) {\n state.readableListening = state.needReadable = true;\n state.flowing = false;\n state.emittedReadable = false;\n debug('on readable', state.length, state.reading);\n if (state.length) {\n emitReadable(this);\n } else if (!state.reading) {\n process.nextTick(nReadingNextTick, this);\n }\n }\n }\n return res;\n};\nReadable.prototype.addListener = Readable.prototype.on;\nReadable.prototype.removeListener = function (ev, fn) {\n const res = Stream.prototype.removeListener.call(this, ev, fn);\n if (ev === 'readable') {\n // We need to check if there is someone still listening to\n // readable and reset the state. However this needs to happen\n // after readable has been emitted but before I/O (nextTick) to\n // support once('readable', fn) cycles. This means that calling\n // resume within the same tick will have no\n // effect.\n process.nextTick(updateReadableListening, this);\n }\n return res;\n};\nReadable.prototype.removeAllListeners = function (ev) {\n const res = Stream.prototype.removeAllListeners.apply(this, arguments);\n if (ev === 'readable' || ev === undefined) {\n // We need to check if there is someone still listening to\n // readable and reset the state. However this needs to happen\n // after readable has been emitted but before I/O (nextTick) to\n // support once('readable', fn) cycles. This means that calling\n // resume within the same tick will have no\n // effect.\n process.nextTick(updateReadableListening, this);\n }\n return res;\n};\nfunction updateReadableListening(self) {\n const state = self._readableState;\n state.readableListening = self.listenerCount('readable') > 0;\n if (state.resumeScheduled && !state.paused) {\n // flowing needs to be set to true now, otherwise\n // the upcoming resume will not flow.\n state.flowing = true;\n\n // crude way to check if we should resume\n } else if (self.listenerCount('data') > 0) {\n self.resume();\n }\n}\nfunction nReadingNextTick(self) {\n debug('readable nexttick read 0');\n self.read(0);\n}\n\n// pause() and resume() are remnants of the legacy readable stream API\n// If the user uses them, then switch into old mode.\nReadable.prototype.resume = function () {\n var state = this._readableState;\n if (!state.flowing) {\n debug('resume');\n // we flow only if there is no one listening\n // for readable, but we still have to call\n // resume()\n state.flowing = !state.readableListening;\n resume(this, state);\n }\n state.paused = false;\n return this;\n};\nfunction resume(stream, state) {\n if (!state.resumeScheduled) {\n state.resumeScheduled = true;\n process.nextTick(resume_, stream, state);\n }\n}\nfunction resume_(stream, state) {\n debug('resume', state.reading);\n if (!state.reading) {\n stream.read(0);\n }\n state.resumeScheduled = false;\n stream.emit('resume');\n flow(stream);\n if (state.flowing && !state.reading) stream.read(0);\n}\nReadable.prototype.pause = function () {\n debug('call pause flowing=%j', this._readableState.flowing);\n if (this._readableState.flowing !== false) {\n debug('pause');\n this._readableState.flowing = false;\n this.emit('pause');\n }\n this._readableState.paused = true;\n return this;\n};\nfunction flow(stream) {\n const state = stream._readableState;\n debug('flow', state.flowing);\n while (state.flowing && stream.read() !== null);\n}\n\n// wrap an old-style stream as the async data source.\n// This is *not* part of the readable stream interface.\n// It is an ugly unfortunate mess of history.\nReadable.prototype.wrap = function (stream) {\n var state = this._readableState;\n var paused = false;\n stream.on('end', () => {\n debug('wrapped end');\n if (state.decoder && !state.ended) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) this.push(chunk);\n }\n this.push(null);\n });\n stream.on('data', chunk => {\n debug('wrapped data');\n if (state.decoder) chunk = state.decoder.write(chunk);\n\n // don't skip over falsy values in objectMode\n if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return;\n var ret = this.push(chunk);\n if (!ret) {\n paused = true;\n stream.pause();\n }\n });\n\n // proxy all the other methods.\n // important when wrapping filters and duplexes.\n for (var i in stream) {\n if (this[i] === undefined && typeof stream[i] === 'function') {\n this[i] = function methodWrap(method) {\n return function methodWrapReturnFunction() {\n return stream[method].apply(stream, arguments);\n };\n }(i);\n }\n }\n\n // proxy certain important events.\n for (var n = 0; n < kProxyEvents.length; n++) {\n stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n]));\n }\n\n // when we try to consume some more bytes, simply unpause the\n // underlying stream.\n this._read = n => {\n debug('wrapped _read', n);\n if (paused) {\n paused = false;\n stream.resume();\n }\n };\n return this;\n};\nif (typeof Symbol === 'function') {\n Readable.prototype[Symbol.asyncIterator] = function () {\n if (createReadableStreamAsyncIterator === undefined) {\n createReadableStreamAsyncIterator = require('./internal/streams/async_iterator');\n }\n return createReadableStreamAsyncIterator(this);\n };\n}\nObject.defineProperty(Readable.prototype, 'readableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.highWaterMark;\n }\n});\nObject.defineProperty(Readable.prototype, 'readableBuffer', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState && this._readableState.buffer;\n }\n});\nObject.defineProperty(Readable.prototype, 'readableFlowing', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.flowing;\n },\n set: function set(state) {\n if (this._readableState) {\n this._readableState.flowing = state;\n }\n }\n});\n\n// exposed for testing purposes only.\nReadable._fromList = fromList;\nObject.defineProperty(Readable.prototype, 'readableLength', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get() {\n return this._readableState.length;\n }\n});\n\n// Pluck off n bytes from an array of buffers.\n// Length is the combined lengths of all the buffers in the list.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction fromList(n, state) {\n // nothing buffered\n if (state.length === 0) return null;\n var ret;\n if (state.objectMode) ret = state.buffer.shift();else if (!n || n >= state.length) {\n // read it all, truncate the list\n if (state.decoder) ret = state.buffer.join('');else if (state.buffer.length === 1) ret = state.buffer.first();else ret = state.buffer.concat(state.length);\n state.buffer.clear();\n } else {\n // read part of list\n ret = state.buffer.consume(n, state.decoder);\n }\n return ret;\n}\nfunction endReadable(stream) {\n var state = stream._readableState;\n debug('endReadable', state.endEmitted);\n if (!state.endEmitted) {\n state.ended = true;\n process.nextTick(endReadableNT, state, stream);\n }\n}\nfunction endReadableNT(state, stream) {\n debug('endReadableNT', state.endEmitted, state.length);\n\n // Check that we didn't get one last unshift.\n if (!state.endEmitted && state.length === 0) {\n state.endEmitted = true;\n stream.readable = false;\n stream.emit('end');\n if (state.autoDestroy) {\n // In case of duplex streams we need a way to detect\n // if the writable side is ready for autoDestroy as well\n const wState = stream._writableState;\n if (!wState || wState.autoDestroy && wState.finished) {\n stream.destroy();\n }\n }\n }\n}\nif (typeof Symbol === 'function') {\n Readable.from = function (iterable, opts) {\n if (from === undefined) {\n from = require('./internal/streams/from');\n }\n return from(Readable, iterable, opts);\n };\n}\nfunction indexOf(xs, x) {\n for (var i = 0, l = xs.length; i < l; i++) {\n if (xs[i] === x) return i;\n }\n return -1;\n}", "// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a transform stream is a readable/writable stream where you do\n// something with the data. Sometimes it's called a \"filter\",\n// but that's not a great name for it, since that implies a thing where\n// some bits pass through, and others are simply ignored. (That would\n// be a valid example of a transform, of course.)\n//\n// While the output is causally related to the input, it's not a\n// necessarily symmetric or synchronous transformation. For example,\n// a zlib stream might take multiple plain-text writes(), and then\n// emit a single compressed chunk some time in the future.\n//\n// Here's how this works:\n//\n// The Transform stream has all the aspects of the readable and writable\n// stream classes. When you write(chunk), that calls _write(chunk,cb)\n// internally, and returns false if there's a lot of pending writes\n// buffered up. When you call read(), that calls _read(n) until\n// there's enough pending readable data buffered up.\n//\n// In a transform stream, the written data is placed in a buffer. When\n// _read(n) is called, it transforms the queued up data, calling the\n// buffered _write cb's as it consumes chunks. If consuming a single\n// written chunk would result in multiple output chunks, then the first\n// outputted bit calls the readcb, and subsequent chunks just go into\n// the read buffer, and will cause it to emit 'readable' if necessary.\n//\n// This way, back-pressure is actually determined by the reading side,\n// since _read has to be called to start processing a new chunk. However,\n// a pathological inflate type of transform can cause excessive buffering\n// here. For example, imagine a stream where every byte of input is\n// interpreted as an integer from 0-255, and then results in that many\n// bytes of output. Writing the 4 bytes {ff,ff,ff,ff} would result in\n// 1kb of data being output. In this case, you could write a very small\n// amount of input, and end up with a very large amount of output. In\n// such a pathological inflating mechanism, there'd be no way to tell\n// the system to stop doing the transform. A single 4MB write could\n// cause the system to run out of memory.\n//\n// However, even in such a pathological case, only a single written chunk\n// would be consumed, and then the rest would wait (un-transformed) until\n// the results of the previous transformed chunk were consumed.\n\n'use strict';\n\nmodule.exports = Transform;\nconst _require$codes = require('../errors').codes,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK,\n ERR_TRANSFORM_ALREADY_TRANSFORMING = _require$codes.ERR_TRANSFORM_ALREADY_TRANSFORMING,\n ERR_TRANSFORM_WITH_LENGTH_0 = _require$codes.ERR_TRANSFORM_WITH_LENGTH_0;\nconst Duplex = require('./_stream_duplex');\nrequire('inherits')(Transform, Duplex);\nfunction afterTransform(er, data) {\n var ts = this._transformState;\n ts.transforming = false;\n var cb = ts.writecb;\n if (cb === null) {\n return this.emit('error', new ERR_MULTIPLE_CALLBACK());\n }\n ts.writechunk = null;\n ts.writecb = null;\n if (data != null)\n // single equals check for both `null` and `undefined`\n this.push(data);\n cb(er);\n var rs = this._readableState;\n rs.reading = false;\n if (rs.needReadable || rs.length < rs.highWaterMark) {\n this._read(rs.highWaterMark);\n }\n}\nfunction Transform(options) {\n if (!(this instanceof Transform)) return new Transform(options);\n Duplex.call(this, options);\n this._transformState = {\n afterTransform: afterTransform.bind(this),\n needTransform: false,\n transforming: false,\n writecb: null,\n writechunk: null,\n writeencoding: null\n };\n\n // start out asking for a readable event once data is transformed.\n this._readableState.needReadable = true;\n\n // we have implemented the _read method, and done the other things\n // that Readable wants before the first _read call, so unset the\n // sync guard flag.\n this._readableState.sync = false;\n if (options) {\n if (typeof options.transform === 'function') this._transform = options.transform;\n if (typeof options.flush === 'function') this._flush = options.flush;\n }\n\n // When the writable side finishes, then flush out anything remaining.\n this.on('prefinish', prefinish);\n}\nfunction prefinish() {\n if (typeof this._flush === 'function' && !this._readableState.destroyed) {\n this._flush((er, data) => {\n done(this, er, data);\n });\n } else {\n done(this, null, null);\n }\n}\nTransform.prototype.push = function (chunk, encoding) {\n this._transformState.needTransform = false;\n return Duplex.prototype.push.call(this, chunk, encoding);\n};\n\n// This is the part where you do stuff!\n// override this function in implementation classes.\n// 'chunk' is an input chunk.\n//\n// Call `push(newChunk)` to pass along transformed output\n// to the readable side. You may call 'push' zero or more times.\n//\n// Call `cb(err)` when you are done with this chunk. If you pass\n// an error, then that'll put the hurt on the whole operation. If you\n// never call cb(), then you'll never get another chunk.\nTransform.prototype._transform = function (chunk, encoding, cb) {\n cb(new ERR_METHOD_NOT_IMPLEMENTED('_transform()'));\n};\nTransform.prototype._write = function (chunk, encoding, cb) {\n var ts = this._transformState;\n ts.writecb = cb;\n ts.writechunk = chunk;\n ts.writeencoding = encoding;\n if (!ts.transforming) {\n var rs = this._readableState;\n if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark);\n }\n};\n\n// Doesn't matter what the args are here.\n// _transform does all the work.\n// That we got here means that the readable side wants more data.\nTransform.prototype._read = function (n) {\n var ts = this._transformState;\n if (ts.writechunk !== null && !ts.transforming) {\n ts.transforming = true;\n this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);\n } else {\n // mark that we need a transform, so that any data that comes in\n // will get processed, now that we've asked for it.\n ts.needTransform = true;\n }\n};\nTransform.prototype._destroy = function (err, cb) {\n Duplex.prototype._destroy.call(this, err, err2 => {\n cb(err2);\n });\n};\nfunction done(stream, er, data) {\n if (er) return stream.emit('error', er);\n if (data != null)\n // single equals check for both `null` and `undefined`\n stream.push(data);\n\n // TODO(BridgeAR): Write a test for these two error cases\n // if there's nothing in the write buffer, then that means\n // that nothing more will ever be provided\n if (stream._writableState.length) throw new ERR_TRANSFORM_WITH_LENGTH_0();\n if (stream._transformState.transforming) throw new ERR_TRANSFORM_ALREADY_TRANSFORMING();\n return stream.push(null);\n}", "// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a passthrough stream.\n// basically just the most minimal sort of Transform stream.\n// Every written chunk gets output as-is.\n\n'use strict';\n\nmodule.exports = PassThrough;\nconst Transform = require('./_stream_transform');\nrequire('inherits')(PassThrough, Transform);\nfunction PassThrough(options) {\n if (!(this instanceof PassThrough)) return new PassThrough(options);\n Transform.call(this, options);\n}\nPassThrough.prototype._transform = function (chunk, encoding, cb) {\n cb(null, chunk);\n};", "// Ported from https://github.com/mafintosh/pump with\n// permission from the author, Mathias Buus (@mafintosh).\n\n'use strict';\n\nlet eos;\nfunction once(callback) {\n let called = false;\n return function () {\n if (called) return;\n called = true;\n callback(...arguments);\n };\n}\nconst _require$codes = require('../../../errors').codes,\n ERR_MISSING_ARGS = _require$codes.ERR_MISSING_ARGS,\n ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED;\nfunction noop(err) {\n // Rethrow the error if it exists to avoid swallowing it\n if (err) throw err;\n}\nfunction isRequest(stream) {\n return stream.setHeader && typeof stream.abort === 'function';\n}\nfunction destroyer(stream, reading, writing, callback) {\n callback = once(callback);\n let closed = false;\n stream.on('close', () => {\n closed = true;\n });\n if (eos === undefined) eos = require('./end-of-stream');\n eos(stream, {\n readable: reading,\n writable: writing\n }, err => {\n if (err) return callback(err);\n closed = true;\n callback();\n });\n let destroyed = false;\n return err => {\n if (closed) return;\n if (destroyed) return;\n destroyed = true;\n\n // request.destroy just do .end - .abort is what we want\n if (isRequest(stream)) return stream.abort();\n if (typeof stream.destroy === 'function') return stream.destroy();\n callback(err || new ERR_STREAM_DESTROYED('pipe'));\n };\n}\nfunction call(fn) {\n fn();\n}\nfunction pipe(from, to) {\n return from.pipe(to);\n}\nfunction popCallback(streams) {\n if (!streams.length) return noop;\n if (typeof streams[streams.length - 1] !== 'function') return noop;\n return streams.pop();\n}\nfunction pipeline() {\n for (var _len = arguments.length, streams = new Array(_len), _key = 0; _key < _len; _key++) {\n streams[_key] = arguments[_key];\n }\n const callback = popCallback(streams);\n if (Array.isArray(streams[0])) streams = streams[0];\n if (streams.length < 2) {\n throw new ERR_MISSING_ARGS('streams');\n }\n let error;\n const destroys = streams.map(function (stream, i) {\n const reading = i < streams.length - 1;\n const writing = i > 0;\n return destroyer(stream, reading, writing, function (err) {\n if (!error) error = err;\n if (err) destroys.forEach(call);\n if (reading) return;\n destroys.forEach(call);\n callback(error);\n });\n });\n return streams.reduce(pipe);\n}\nmodule.exports = pipeline;", "var Stream = require('stream');\nif (process.env.READABLE_STREAM === 'disable' && Stream) {\n module.exports = Stream.Readable;\n Object.assign(module.exports, Stream);\n module.exports.Stream = Stream;\n} else {\n exports = module.exports = require('./lib/_stream_readable.js');\n exports.Stream = Stream || exports;\n exports.Readable = exports;\n exports.Writable = require('./lib/_stream_writable.js');\n exports.Duplex = require('./lib/_stream_duplex.js');\n exports.Transform = require('./lib/_stream_transform.js');\n exports.PassThrough = require('./lib/_stream_passthrough.js');\n exports.finished = require('./lib/internal/streams/end-of-stream.js');\n exports.pipeline = require('./lib/internal/streams/pipeline.js');\n}\n", "'use strict'\nvar Buffer = require('safe-buffer').Buffer\nvar Transform = require('readable-stream').Transform\nvar inherits = require('inherits')\n\nfunction throwIfNotStringOrBuffer (val, prefix) {\n if (!Buffer.isBuffer(val) && typeof val !== 'string') {\n throw new TypeError(prefix + ' must be a string or a buffer')\n }\n}\n\nfunction HashBase (blockSize) {\n Transform.call(this)\n\n this._block = Buffer.allocUnsafe(blockSize)\n this._blockSize = blockSize\n this._blockOffset = 0\n this._length = [0, 0, 0, 0]\n\n this._finalized = false\n}\n\ninherits(HashBase, Transform)\n\nHashBase.prototype._transform = function (chunk, encoding, callback) {\n var error = null\n try {\n this.update(chunk, encoding)\n } catch (err) {\n error = err\n }\n\n callback(error)\n}\n\nHashBase.prototype._flush = function (callback) {\n var error = null\n try {\n this.push(this.digest())\n } catch (err) {\n error = err\n }\n\n callback(error)\n}\n\nHashBase.prototype.update = function (data, encoding) {\n throwIfNotStringOrBuffer(data, 'Data')\n if (this._finalized) throw new Error('Digest already called')\n if (!Buffer.isBuffer(data)) data = Buffer.from(data, encoding)\n\n // consume data\n var block = this._block\n var offset = 0\n while (this._blockOffset + data.length - offset >= this._blockSize) {\n for (var i = this._blockOffset; i < this._blockSize;) block[i++] = data[offset++]\n this._update()\n this._blockOffset = 0\n }\n while (offset < data.length) block[this._blockOffset++] = data[offset++]\n\n // update length\n for (var j = 0, carry = data.length * 8; carry > 0; ++j) {\n this._length[j] += carry\n carry = (this._length[j] / 0x0100000000) | 0\n if (carry > 0) this._length[j] -= 0x0100000000 * carry\n }\n\n return this\n}\n\nHashBase.prototype._update = function () {\n throw new Error('_update is not implemented')\n}\n\nHashBase.prototype.digest = function (encoding) {\n if (this._finalized) throw new Error('Digest already called')\n this._finalized = true\n\n var digest = this._digest()\n if (encoding !== undefined) digest = digest.toString(encoding)\n\n // reset state\n this._block.fill(0)\n this._blockOffset = 0\n for (var i = 0; i < 4; ++i) this._length[i] = 0\n\n return digest\n}\n\nHashBase.prototype._digest = function () {\n throw new Error('_digest is not implemented')\n}\n\nmodule.exports = HashBase\n", "'use strict'\nvar Buffer = require('buffer').Buffer\nvar inherits = require('inherits')\nvar HashBase = require('hash-base')\n\nvar ARRAY16 = new Array(16)\n\nvar zl = [\n 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,\n 7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8,\n 3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11, 5, 12,\n 1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2,\n 4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13\n]\n\nvar zr = [\n 5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12,\n 6, 11, 3, 7, 0, 13, 5, 10, 14, 15, 8, 12, 4, 9, 1, 2,\n 15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0, 4, 13,\n 8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14,\n 12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11\n]\n\nvar sl = [\n 11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8,\n 7, 6, 8, 13, 11, 9, 7, 15, 7, 12, 15, 9, 11, 7, 13, 12,\n 11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5, 12, 7, 5,\n 11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12,\n 9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6\n]\n\nvar sr = [\n 8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6,\n 9, 13, 15, 7, 12, 8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11,\n 9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14, 13, 13, 7, 5,\n 15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8,\n 8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11\n]\n\nvar hl = [0x00000000, 0x5a827999, 0x6ed9eba1, 0x8f1bbcdc, 0xa953fd4e]\nvar hr = [0x50a28be6, 0x5c4dd124, 0x6d703ef3, 0x7a6d76e9, 0x00000000]\n\nfunction RIPEMD160 () {\n HashBase.call(this, 64)\n\n // state\n this._a = 0x67452301\n this._b = 0xefcdab89\n this._c = 0x98badcfe\n this._d = 0x10325476\n this._e = 0xc3d2e1f0\n}\n\ninherits(RIPEMD160, HashBase)\n\nRIPEMD160.prototype._update = function () {\n var words = ARRAY16\n for (var j = 0; j < 16; ++j) words[j] = this._block.readInt32LE(j * 4)\n\n var al = this._a | 0\n var bl = this._b | 0\n var cl = this._c | 0\n var dl = this._d | 0\n var el = this._e | 0\n\n var ar = this._a | 0\n var br = this._b | 0\n var cr = this._c | 0\n var dr = this._d | 0\n var er = this._e | 0\n\n // computation\n for (var i = 0; i < 80; i += 1) {\n var tl\n var tr\n if (i < 16) {\n tl = fn1(al, bl, cl, dl, el, words[zl[i]], hl[0], sl[i])\n tr = fn5(ar, br, cr, dr, er, words[zr[i]], hr[0], sr[i])\n } else if (i < 32) {\n tl = fn2(al, bl, cl, dl, el, words[zl[i]], hl[1], sl[i])\n tr = fn4(ar, br, cr, dr, er, words[zr[i]], hr[1], sr[i])\n } else if (i < 48) {\n tl = fn3(al, bl, cl, dl, el, words[zl[i]], hl[2], sl[i])\n tr = fn3(ar, br, cr, dr, er, words[zr[i]], hr[2], sr[i])\n } else if (i < 64) {\n tl = fn4(al, bl, cl, dl, el, words[zl[i]], hl[3], sl[i])\n tr = fn2(ar, br, cr, dr, er, words[zr[i]], hr[3], sr[i])\n } else { // if (i<80) {\n tl = fn5(al, bl, cl, dl, el, words[zl[i]], hl[4], sl[i])\n tr = fn1(ar, br, cr, dr, er, words[zr[i]], hr[4], sr[i])\n }\n\n al = el\n el = dl\n dl = rotl(cl, 10)\n cl = bl\n bl = tl\n\n ar = er\n er = dr\n dr = rotl(cr, 10)\n cr = br\n br = tr\n }\n\n // update state\n var t = (this._b + cl + dr) | 0\n this._b = (this._c + dl + er) | 0\n this._c = (this._d + el + ar) | 0\n this._d = (this._e + al + br) | 0\n this._e = (this._a + bl + cr) | 0\n this._a = t\n}\n\nRIPEMD160.prototype._digest = function () {\n // create padding and handle blocks\n this._block[this._blockOffset++] = 0x80\n if (this._blockOffset > 56) {\n this._block.fill(0, this._blockOffset, 64)\n this._update()\n this._blockOffset = 0\n }\n\n this._block.fill(0, this._blockOffset, 56)\n this._block.writeUInt32LE(this._length[0], 56)\n this._block.writeUInt32LE(this._length[1], 60)\n this._update()\n\n // produce result\n var buffer = Buffer.alloc ? Buffer.alloc(20) : new Buffer(20)\n buffer.writeInt32LE(this._a, 0)\n buffer.writeInt32LE(this._b, 4)\n buffer.writeInt32LE(this._c, 8)\n buffer.writeInt32LE(this._d, 12)\n buffer.writeInt32LE(this._e, 16)\n return buffer\n}\n\nfunction rotl (x, n) {\n return (x << n) | (x >>> (32 - n))\n}\n\nfunction fn1 (a, b, c, d, e, m, k, s) {\n return (rotl((a + (b ^ c ^ d) + m + k) | 0, s) + e) | 0\n}\n\nfunction fn2 (a, b, c, d, e, m, k, s) {\n return (rotl((a + ((b & c) | ((~b) & d)) + m + k) | 0, s) + e) | 0\n}\n\nfunction fn3 (a, b, c, d, e, m, k, s) {\n return (rotl((a + ((b | (~c)) ^ d) + m + k) | 0, s) + e) | 0\n}\n\nfunction fn4 (a, b, c, d, e, m, k, s) {\n return (rotl((a + ((b & d) | (c & (~d))) + m + k) | 0, s) + e) | 0\n}\n\nfunction fn5 (a, b, c, d, e, m, k, s) {\n return (rotl((a + (b ^ (c | (~d))) + m + k) | 0, s) + e) | 0\n}\n\nmodule.exports = RIPEMD160\n", "var Buffer = require('safe-buffer').Buffer\n\n// prototype class for hash functions\nfunction Hash (blockSize, finalSize) {\n this._block = Buffer.alloc(blockSize)\n this._finalSize = finalSize\n this._blockSize = blockSize\n this._len = 0\n}\n\nHash.prototype.update = function (data, enc) {\n if (typeof data === 'string') {\n enc = enc || 'utf8'\n data = Buffer.from(data, enc)\n }\n\n var block = this._block\n var blockSize = this._blockSize\n var length = data.length\n var accum = this._len\n\n for (var offset = 0; offset < length;) {\n var assigned = accum % blockSize\n var remainder = Math.min(length - offset, blockSize - assigned)\n\n for (var i = 0; i < remainder; i++) {\n block[assigned + i] = data[offset + i]\n }\n\n accum += remainder\n offset += remainder\n\n if ((accum % blockSize) === 0) {\n this._update(block)\n }\n }\n\n this._len += length\n return this\n}\n\nHash.prototype.digest = function (enc) {\n var rem = this._len % this._blockSize\n\n this._block[rem] = 0x80\n\n // zero (rem + 1) trailing bits, where (rem + 1) is the smallest\n // non-negative solution to the equation (length + 1 + (rem + 1)) === finalSize mod blockSize\n this._block.fill(0, rem + 1)\n\n if (rem >= this._finalSize) {\n this._update(this._block)\n this._block.fill(0)\n }\n\n var bits = this._len * 8\n\n // uint32\n if (bits <= 0xffffffff) {\n this._block.writeUInt32BE(bits, this._blockSize - 4)\n\n // uint64\n } else {\n var lowBits = (bits & 0xffffffff) >>> 0\n var highBits = (bits - lowBits) / 0x100000000\n\n this._block.writeUInt32BE(highBits, this._blockSize - 8)\n this._block.writeUInt32BE(lowBits, this._blockSize - 4)\n }\n\n this._update(this._block)\n var hash = this._hash()\n\n return enc ? hash.toString(enc) : hash\n}\n\nHash.prototype._update = function () {\n throw new Error('_update must be implemented by subclass')\n}\n\nmodule.exports = Hash\n", "/*\n * A JavaScript implementation of the Secure Hash Algorithm, SHA-0, as defined\n * in FIPS PUB 180-1\n * This source code is derived from sha1.js of the same repository.\n * The difference between SHA-0 and SHA-1 is just a bitwise rotate left\n * operation was added.\n */\n\nvar inherits = require('inherits')\nvar Hash = require('./hash')\nvar Buffer = require('safe-buffer').Buffer\n\nvar K = [\n 0x5a827999, 0x6ed9eba1, 0x8f1bbcdc | 0, 0xca62c1d6 | 0\n]\n\nvar W = new Array(80)\n\nfunction Sha () {\n this.init()\n this._w = W\n\n Hash.call(this, 64, 56)\n}\n\ninherits(Sha, Hash)\n\nSha.prototype.init = function () {\n this._a = 0x67452301\n this._b = 0xefcdab89\n this._c = 0x98badcfe\n this._d = 0x10325476\n this._e = 0xc3d2e1f0\n\n return this\n}\n\nfunction rotl5 (num) {\n return (num << 5) | (num >>> 27)\n}\n\nfunction rotl30 (num) {\n return (num << 30) | (num >>> 2)\n}\n\nfunction ft (s, b, c, d) {\n if (s === 0) return (b & c) | ((~b) & d)\n if (s === 2) return (b & c) | (b & d) | (c & d)\n return b ^ c ^ d\n}\n\nSha.prototype._update = function (M) {\n var W = this._w\n\n var a = this._a | 0\n var b = this._b | 0\n var c = this._c | 0\n var d = this._d | 0\n var e = this._e | 0\n\n for (var i = 0; i < 16; ++i) W[i] = M.readInt32BE(i * 4)\n for (; i < 80; ++i) W[i] = W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16]\n\n for (var j = 0; j < 80; ++j) {\n var s = ~~(j / 20)\n var t = (rotl5(a) + ft(s, b, c, d) + e + W[j] + K[s]) | 0\n\n e = d\n d = c\n c = rotl30(b)\n b = a\n a = t\n }\n\n this._a = (a + this._a) | 0\n this._b = (b + this._b) | 0\n this._c = (c + this._c) | 0\n this._d = (d + this._d) | 0\n this._e = (e + this._e) | 0\n}\n\nSha.prototype._hash = function () {\n var H = Buffer.allocUnsafe(20)\n\n H.writeInt32BE(this._a | 0, 0)\n H.writeInt32BE(this._b | 0, 4)\n H.writeInt32BE(this._c | 0, 8)\n H.writeInt32BE(this._d | 0, 12)\n H.writeInt32BE(this._e | 0, 16)\n\n return H\n}\n\nmodule.exports = Sha\n", "/*\n * A JavaScript implementation of the Secure Hash Algorithm, SHA-1, as defined\n * in FIPS PUB 180-1\n * Version 2.1a Copyright Paul Johnston 2000 - 2002.\n * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet\n * Distributed under the BSD License\n * See http://pajhome.org.uk/crypt/md5 for details.\n */\n\nvar inherits = require('inherits')\nvar Hash = require('./hash')\nvar Buffer = require('safe-buffer').Buffer\n\nvar K = [\n 0x5a827999, 0x6ed9eba1, 0x8f1bbcdc | 0, 0xca62c1d6 | 0\n]\n\nvar W = new Array(80)\n\nfunction Sha1 () {\n this.init()\n this._w = W\n\n Hash.call(this, 64, 56)\n}\n\ninherits(Sha1, Hash)\n\nSha1.prototype.init = function () {\n this._a = 0x67452301\n this._b = 0xefcdab89\n this._c = 0x98badcfe\n this._d = 0x10325476\n this._e = 0xc3d2e1f0\n\n return this\n}\n\nfunction rotl1 (num) {\n return (num << 1) | (num >>> 31)\n}\n\nfunction rotl5 (num) {\n return (num << 5) | (num >>> 27)\n}\n\nfunction rotl30 (num) {\n return (num << 30) | (num >>> 2)\n}\n\nfunction ft (s, b, c, d) {\n if (s === 0) return (b & c) | ((~b) & d)\n if (s === 2) return (b & c) | (b & d) | (c & d)\n return b ^ c ^ d\n}\n\nSha1.prototype._update = function (M) {\n var W = this._w\n\n var a = this._a | 0\n var b = this._b | 0\n var c = this._c | 0\n var d = this._d | 0\n var e = this._e | 0\n\n for (var i = 0; i < 16; ++i) W[i] = M.readInt32BE(i * 4)\n for (; i < 80; ++i) W[i] = rotl1(W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16])\n\n for (var j = 0; j < 80; ++j) {\n var s = ~~(j / 20)\n var t = (rotl5(a) + ft(s, b, c, d) + e + W[j] + K[s]) | 0\n\n e = d\n d = c\n c = rotl30(b)\n b = a\n a = t\n }\n\n this._a = (a + this._a) | 0\n this._b = (b + this._b) | 0\n this._c = (c + this._c) | 0\n this._d = (d + this._d) | 0\n this._e = (e + this._e) | 0\n}\n\nSha1.prototype._hash = function () {\n var H = Buffer.allocUnsafe(20)\n\n H.writeInt32BE(this._a | 0, 0)\n H.writeInt32BE(this._b | 0, 4)\n H.writeInt32BE(this._c | 0, 8)\n H.writeInt32BE(this._d | 0, 12)\n H.writeInt32BE(this._e | 0, 16)\n\n return H\n}\n\nmodule.exports = Sha1\n", "/**\n * A JavaScript implementation of the Secure Hash Algorithm, SHA-256, as defined\n * in FIPS 180-2\n * Version 2.2-beta Copyright Angel Marin, Paul Johnston 2000 - 2009.\n * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet\n *\n */\n\nvar inherits = require('inherits')\nvar Hash = require('./hash')\nvar Buffer = require('safe-buffer').Buffer\n\nvar K = [\n 0x428A2F98, 0x71374491, 0xB5C0FBCF, 0xE9B5DBA5,\n 0x3956C25B, 0x59F111F1, 0x923F82A4, 0xAB1C5ED5,\n 0xD807AA98, 0x12835B01, 0x243185BE, 0x550C7DC3,\n 0x72BE5D74, 0x80DEB1FE, 0x9BDC06A7, 0xC19BF174,\n 0xE49B69C1, 0xEFBE4786, 0x0FC19DC6, 0x240CA1CC,\n 0x2DE92C6F, 0x4A7484AA, 0x5CB0A9DC, 0x76F988DA,\n 0x983E5152, 0xA831C66D, 0xB00327C8, 0xBF597FC7,\n 0xC6E00BF3, 0xD5A79147, 0x06CA6351, 0x14292967,\n 0x27B70A85, 0x2E1B2138, 0x4D2C6DFC, 0x53380D13,\n 0x650A7354, 0x766A0ABB, 0x81C2C92E, 0x92722C85,\n 0xA2BFE8A1, 0xA81A664B, 0xC24B8B70, 0xC76C51A3,\n 0xD192E819, 0xD6990624, 0xF40E3585, 0x106AA070,\n 0x19A4C116, 0x1E376C08, 0x2748774C, 0x34B0BCB5,\n 0x391C0CB3, 0x4ED8AA4A, 0x5B9CCA4F, 0x682E6FF3,\n 0x748F82EE, 0x78A5636F, 0x84C87814, 0x8CC70208,\n 0x90BEFFFA, 0xA4506CEB, 0xBEF9A3F7, 0xC67178F2\n]\n\nvar W = new Array(64)\n\nfunction Sha256 () {\n this.init()\n\n this._w = W // new Array(64)\n\n Hash.call(this, 64, 56)\n}\n\ninherits(Sha256, Hash)\n\nSha256.prototype.init = function () {\n this._a = 0x6a09e667\n this._b = 0xbb67ae85\n this._c = 0x3c6ef372\n this._d = 0xa54ff53a\n this._e = 0x510e527f\n this._f = 0x9b05688c\n this._g = 0x1f83d9ab\n this._h = 0x5be0cd19\n\n return this\n}\n\nfunction ch (x, y, z) {\n return z ^ (x & (y ^ z))\n}\n\nfunction maj (x, y, z) {\n return (x & y) | (z & (x | y))\n}\n\nfunction sigma0 (x) {\n return (x >>> 2 | x << 30) ^ (x >>> 13 | x << 19) ^ (x >>> 22 | x << 10)\n}\n\nfunction sigma1 (x) {\n return (x >>> 6 | x << 26) ^ (x >>> 11 | x << 21) ^ (x >>> 25 | x << 7)\n}\n\nfunction gamma0 (x) {\n return (x >>> 7 | x << 25) ^ (x >>> 18 | x << 14) ^ (x >>> 3)\n}\n\nfunction gamma1 (x) {\n return (x >>> 17 | x << 15) ^ (x >>> 19 | x << 13) ^ (x >>> 10)\n}\n\nSha256.prototype._update = function (M) {\n var W = this._w\n\n var a = this._a | 0\n var b = this._b | 0\n var c = this._c | 0\n var d = this._d | 0\n var e = this._e | 0\n var f = this._f | 0\n var g = this._g | 0\n var h = this._h | 0\n\n for (var i = 0; i < 16; ++i) W[i] = M.readInt32BE(i * 4)\n for (; i < 64; ++i) W[i] = (gamma1(W[i - 2]) + W[i - 7] + gamma0(W[i - 15]) + W[i - 16]) | 0\n\n for (var j = 0; j < 64; ++j) {\n var T1 = (h + sigma1(e) + ch(e, f, g) + K[j] + W[j]) | 0\n var T2 = (sigma0(a) + maj(a, b, c)) | 0\n\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\n this._a = (a + this._a) | 0\n this._b = (b + this._b) | 0\n this._c = (c + this._c) | 0\n this._d = (d + this._d) | 0\n this._e = (e + this._e) | 0\n this._f = (f + this._f) | 0\n this._g = (g + this._g) | 0\n this._h = (h + this._h) | 0\n}\n\nSha256.prototype._hash = function () {\n var H = Buffer.allocUnsafe(32)\n\n H.writeInt32BE(this._a, 0)\n H.writeInt32BE(this._b, 4)\n H.writeInt32BE(this._c, 8)\n H.writeInt32BE(this._d, 12)\n H.writeInt32BE(this._e, 16)\n H.writeInt32BE(this._f, 20)\n H.writeInt32BE(this._g, 24)\n H.writeInt32BE(this._h, 28)\n\n return H\n}\n\nmodule.exports = Sha256\n", "/**\n * A JavaScript implementation of the Secure Hash Algorithm, SHA-256, as defined\n * in FIPS 180-2\n * Version 2.2-beta Copyright Angel Marin, Paul Johnston 2000 - 2009.\n * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet\n *\n */\n\nvar inherits = require('inherits')\nvar Sha256 = require('./sha256')\nvar Hash = require('./hash')\nvar Buffer = require('safe-buffer').Buffer\n\nvar W = new Array(64)\n\nfunction Sha224 () {\n this.init()\n\n this._w = W // new Array(64)\n\n Hash.call(this, 64, 56)\n}\n\ninherits(Sha224, Sha256)\n\nSha224.prototype.init = function () {\n this._a = 0xc1059ed8\n this._b = 0x367cd507\n this._c = 0x3070dd17\n this._d = 0xf70e5939\n this._e = 0xffc00b31\n this._f = 0x68581511\n this._g = 0x64f98fa7\n this._h = 0xbefa4fa4\n\n return this\n}\n\nSha224.prototype._hash = function () {\n var H = Buffer.allocUnsafe(28)\n\n H.writeInt32BE(this._a, 0)\n H.writeInt32BE(this._b, 4)\n H.writeInt32BE(this._c, 8)\n H.writeInt32BE(this._d, 12)\n H.writeInt32BE(this._e, 16)\n H.writeInt32BE(this._f, 20)\n H.writeInt32BE(this._g, 24)\n\n return H\n}\n\nmodule.exports = Sha224\n", "var inherits = require('inherits')\nvar Hash = require('./hash')\nvar Buffer = require('safe-buffer').Buffer\n\nvar K = [\n 0x428a2f98, 0xd728ae22, 0x71374491, 0x23ef65cd,\n 0xb5c0fbcf, 0xec4d3b2f, 0xe9b5dba5, 0x8189dbbc,\n 0x3956c25b, 0xf348b538, 0x59f111f1, 0xb605d019,\n 0x923f82a4, 0xaf194f9b, 0xab1c5ed5, 0xda6d8118,\n 0xd807aa98, 0xa3030242, 0x12835b01, 0x45706fbe,\n 0x243185be, 0x4ee4b28c, 0x550c7dc3, 0xd5ffb4e2,\n 0x72be5d74, 0xf27b896f, 0x80deb1fe, 0x3b1696b1,\n 0x9bdc06a7, 0x25c71235, 0xc19bf174, 0xcf692694,\n 0xe49b69c1, 0x9ef14ad2, 0xefbe4786, 0x384f25e3,\n 0x0fc19dc6, 0x8b8cd5b5, 0x240ca1cc, 0x77ac9c65,\n 0x2de92c6f, 0x592b0275, 0x4a7484aa, 0x6ea6e483,\n 0x5cb0a9dc, 0xbd41fbd4, 0x76f988da, 0x831153b5,\n 0x983e5152, 0xee66dfab, 0xa831c66d, 0x2db43210,\n 0xb00327c8, 0x98fb213f, 0xbf597fc7, 0xbeef0ee4,\n 0xc6e00bf3, 0x3da88fc2, 0xd5a79147, 0x930aa725,\n 0x06ca6351, 0xe003826f, 0x14292967, 0x0a0e6e70,\n 0x27b70a85, 0x46d22ffc, 0x2e1b2138, 0x5c26c926,\n 0x4d2c6dfc, 0x5ac42aed, 0x53380d13, 0x9d95b3df,\n 0x650a7354, 0x8baf63de, 0x766a0abb, 0x3c77b2a8,\n 0x81c2c92e, 0x47edaee6, 0x92722c85, 0x1482353b,\n 0xa2bfe8a1, 0x4cf10364, 0xa81a664b, 0xbc423001,\n 0xc24b8b70, 0xd0f89791, 0xc76c51a3, 0x0654be30,\n 0xd192e819, 0xd6ef5218, 0xd6990624, 0x5565a910,\n 0xf40e3585, 0x5771202a, 0x106aa070, 0x32bbd1b8,\n 0x19a4c116, 0xb8d2d0c8, 0x1e376c08, 0x5141ab53,\n 0x2748774c, 0xdf8eeb99, 0x34b0bcb5, 0xe19b48a8,\n 0x391c0cb3, 0xc5c95a63, 0x4ed8aa4a, 0xe3418acb,\n 0x5b9cca4f, 0x7763e373, 0x682e6ff3, 0xd6b2b8a3,\n 0x748f82ee, 0x5defb2fc, 0x78a5636f, 0x43172f60,\n 0x84c87814, 0xa1f0ab72, 0x8cc70208, 0x1a6439ec,\n 0x90befffa, 0x23631e28, 0xa4506ceb, 0xde82bde9,\n 0xbef9a3f7, 0xb2c67915, 0xc67178f2, 0xe372532b,\n 0xca273ece, 0xea26619c, 0xd186b8c7, 0x21c0c207,\n 0xeada7dd6, 0xcde0eb1e, 0xf57d4f7f, 0xee6ed178,\n 0x06f067aa, 0x72176fba, 0x0a637dc5, 0xa2c898a6,\n 0x113f9804, 0xbef90dae, 0x1b710b35, 0x131c471b,\n 0x28db77f5, 0x23047d84, 0x32caab7b, 0x40c72493,\n 0x3c9ebe0a, 0x15c9bebc, 0x431d67c4, 0x9c100d4c,\n 0x4cc5d4be, 0xcb3e42b6, 0x597f299c, 0xfc657e2a,\n 0x5fcb6fab, 0x3ad6faec, 0x6c44198c, 0x4a475817\n]\n\nvar W = new Array(160)\n\nfunction Sha512 () {\n this.init()\n this._w = W\n\n Hash.call(this, 128, 112)\n}\n\ninherits(Sha512, Hash)\n\nSha512.prototype.init = function () {\n this._ah = 0x6a09e667\n this._bh = 0xbb67ae85\n this._ch = 0x3c6ef372\n this._dh = 0xa54ff53a\n this._eh = 0x510e527f\n this._fh = 0x9b05688c\n this._gh = 0x1f83d9ab\n this._hh = 0x5be0cd19\n\n this._al = 0xf3bcc908\n this._bl = 0x84caa73b\n this._cl = 0xfe94f82b\n this._dl = 0x5f1d36f1\n this._el = 0xade682d1\n this._fl = 0x2b3e6c1f\n this._gl = 0xfb41bd6b\n this._hl = 0x137e2179\n\n return this\n}\n\nfunction Ch (x, y, z) {\n return z ^ (x & (y ^ z))\n}\n\nfunction maj (x, y, z) {\n return (x & y) | (z & (x | y))\n}\n\nfunction sigma0 (x, xl) {\n return (x >>> 28 | xl << 4) ^ (xl >>> 2 | x << 30) ^ (xl >>> 7 | x << 25)\n}\n\nfunction sigma1 (x, xl) {\n return (x >>> 14 | xl << 18) ^ (x >>> 18 | xl << 14) ^ (xl >>> 9 | x << 23)\n}\n\nfunction Gamma0 (x, xl) {\n return (x >>> 1 | xl << 31) ^ (x >>> 8 | xl << 24) ^ (x >>> 7)\n}\n\nfunction Gamma0l (x, xl) {\n return (x >>> 1 | xl << 31) ^ (x >>> 8 | xl << 24) ^ (x >>> 7 | xl << 25)\n}\n\nfunction Gamma1 (x, xl) {\n return (x >>> 19 | xl << 13) ^ (xl >>> 29 | x << 3) ^ (x >>> 6)\n}\n\nfunction Gamma1l (x, xl) {\n return (x >>> 19 | xl << 13) ^ (xl >>> 29 | x << 3) ^ (x >>> 6 | xl << 26)\n}\n\nfunction getCarry (a, b) {\n return (a >>> 0) < (b >>> 0) ? 1 : 0\n}\n\nSha512.prototype._update = function (M) {\n var W = this._w\n\n var ah = this._ah | 0\n var bh = this._bh | 0\n var ch = this._ch | 0\n var dh = this._dh | 0\n var eh = this._eh | 0\n var fh = this._fh | 0\n var gh = this._gh | 0\n var hh = this._hh | 0\n\n var al = this._al | 0\n var bl = this._bl | 0\n var cl = this._cl | 0\n var dl = this._dl | 0\n var el = this._el | 0\n var fl = this._fl | 0\n var gl = this._gl | 0\n var hl = this._hl | 0\n\n for (var i = 0; i < 32; i += 2) {\n W[i] = M.readInt32BE(i * 4)\n W[i + 1] = M.readInt32BE(i * 4 + 4)\n }\n for (; i < 160; i += 2) {\n var xh = W[i - 15 * 2]\n var xl = W[i - 15 * 2 + 1]\n var gamma0 = Gamma0(xh, xl)\n var gamma0l = Gamma0l(xl, xh)\n\n xh = W[i - 2 * 2]\n xl = W[i - 2 * 2 + 1]\n var gamma1 = Gamma1(xh, xl)\n var gamma1l = Gamma1l(xl, xh)\n\n // W[i] = gamma0 + W[i - 7] + gamma1 + W[i - 16]\n var Wi7h = W[i - 7 * 2]\n var Wi7l = W[i - 7 * 2 + 1]\n\n var Wi16h = W[i - 16 * 2]\n var Wi16l = W[i - 16 * 2 + 1]\n\n var Wil = (gamma0l + Wi7l) | 0\n var Wih = (gamma0 + Wi7h + getCarry(Wil, gamma0l)) | 0\n Wil = (Wil + gamma1l) | 0\n Wih = (Wih + gamma1 + getCarry(Wil, gamma1l)) | 0\n Wil = (Wil + Wi16l) | 0\n Wih = (Wih + Wi16h + getCarry(Wil, Wi16l)) | 0\n\n W[i] = Wih\n W[i + 1] = Wil\n }\n\n for (var j = 0; j < 160; j += 2) {\n Wih = W[j]\n Wil = W[j + 1]\n\n var majh = maj(ah, bh, ch)\n var majl = maj(al, bl, cl)\n\n var sigma0h = sigma0(ah, al)\n var sigma0l = sigma0(al, ah)\n var sigma1h = sigma1(eh, el)\n var sigma1l = sigma1(el, eh)\n\n // t1 = h + sigma1 + ch + K[j] + W[j]\n var Kih = K[j]\n var Kil = K[j + 1]\n\n var chh = Ch(eh, fh, gh)\n var chl = Ch(el, fl, gl)\n\n var t1l = (hl + sigma1l) | 0\n var t1h = (hh + sigma1h + getCarry(t1l, hl)) | 0\n t1l = (t1l + chl) | 0\n t1h = (t1h + chh + getCarry(t1l, chl)) | 0\n t1l = (t1l + Kil) | 0\n t1h = (t1h + Kih + getCarry(t1l, Kil)) | 0\n t1l = (t1l + Wil) | 0\n t1h = (t1h + Wih + getCarry(t1l, Wil)) | 0\n\n // t2 = sigma0 + maj\n var t2l = (sigma0l + majl) | 0\n var t2h = (sigma0h + majh + getCarry(t2l, sigma0l)) | 0\n\n hh = gh\n hl = gl\n gh = fh\n gl = fl\n fh = eh\n fl = el\n el = (dl + t1l) | 0\n eh = (dh + t1h + getCarry(el, dl)) | 0\n dh = ch\n dl = cl\n ch = bh\n cl = bl\n bh = ah\n bl = al\n al = (t1l + t2l) | 0\n ah = (t1h + t2h + getCarry(al, t1l)) | 0\n }\n\n this._al = (this._al + al) | 0\n this._bl = (this._bl + bl) | 0\n this._cl = (this._cl + cl) | 0\n this._dl = (this._dl + dl) | 0\n this._el = (this._el + el) | 0\n this._fl = (this._fl + fl) | 0\n this._gl = (this._gl + gl) | 0\n this._hl = (this._hl + hl) | 0\n\n this._ah = (this._ah + ah + getCarry(this._al, al)) | 0\n this._bh = (this._bh + bh + getCarry(this._bl, bl)) | 0\n this._ch = (this._ch + ch + getCarry(this._cl, cl)) | 0\n this._dh = (this._dh + dh + getCarry(this._dl, dl)) | 0\n this._eh = (this._eh + eh + getCarry(this._el, el)) | 0\n this._fh = (this._fh + fh + getCarry(this._fl, fl)) | 0\n this._gh = (this._gh + gh + getCarry(this._gl, gl)) | 0\n this._hh = (this._hh + hh + getCarry(this._hl, hl)) | 0\n}\n\nSha512.prototype._hash = function () {\n var H = Buffer.allocUnsafe(64)\n\n function writeInt64BE (h, l, offset) {\n H.writeInt32BE(h, offset)\n H.writeInt32BE(l, offset + 4)\n }\n\n writeInt64BE(this._ah, this._al, 0)\n writeInt64BE(this._bh, this._bl, 8)\n writeInt64BE(this._ch, this._cl, 16)\n writeInt64BE(this._dh, this._dl, 24)\n writeInt64BE(this._eh, this._el, 32)\n writeInt64BE(this._fh, this._fl, 40)\n writeInt64BE(this._gh, this._gl, 48)\n writeInt64BE(this._hh, this._hl, 56)\n\n return H\n}\n\nmodule.exports = Sha512\n", "var inherits = require('inherits')\nvar SHA512 = require('./sha512')\nvar Hash = require('./hash')\nvar Buffer = require('safe-buffer').Buffer\n\nvar W = new Array(160)\n\nfunction Sha384 () {\n this.init()\n this._w = W\n\n Hash.call(this, 128, 112)\n}\n\ninherits(Sha384, SHA512)\n\nSha384.prototype.init = function () {\n this._ah = 0xcbbb9d5d\n this._bh = 0x629a292a\n this._ch = 0x9159015a\n this._dh = 0x152fecd8\n this._eh = 0x67332667\n this._fh = 0x8eb44a87\n this._gh = 0xdb0c2e0d\n this._hh = 0x47b5481d\n\n this._al = 0xc1059ed8\n this._bl = 0x367cd507\n this._cl = 0x3070dd17\n this._dl = 0xf70e5939\n this._el = 0xffc00b31\n this._fl = 0x68581511\n this._gl = 0x64f98fa7\n this._hl = 0xbefa4fa4\n\n return this\n}\n\nSha384.prototype._hash = function () {\n var H = Buffer.allocUnsafe(48)\n\n function writeInt64BE (h, l, offset) {\n H.writeInt32BE(h, offset)\n H.writeInt32BE(l, offset + 4)\n }\n\n writeInt64BE(this._ah, this._al, 0)\n writeInt64BE(this._bh, this._bl, 8)\n writeInt64BE(this._ch, this._cl, 16)\n writeInt64BE(this._dh, this._dl, 24)\n writeInt64BE(this._eh, this._el, 32)\n writeInt64BE(this._fh, this._fl, 40)\n\n return H\n}\n\nmodule.exports = Sha384\n", "var exports = module.exports = function SHA (algorithm) {\n algorithm = algorithm.toLowerCase()\n\n var Algorithm = exports[algorithm]\n if (!Algorithm) throw new Error(algorithm + ' is not supported (we accept pull requests)')\n\n return new Algorithm()\n}\n\nexports.sha = require('./sha')\nexports.sha1 = require('./sha1')\nexports.sha224 = require('./sha224')\nexports.sha256 = require('./sha256')\nexports.sha384 = require('./sha384')\nexports.sha512 = require('./sha512')\n", "/**\n * A Log object\n */\nexport interface Log {\n type: string;\n message?: string;\n data?: any;\n // unique amount all logs\n id: string;\n // date of the log\n date: Date;\n}\nexport type Unsubscribe = () => void;\nexport type Subscriber = (arg0: Log) => void;\nlet id = 0;\nconst subscribers: Subscriber[] = [];\n\n/**\n * log something\n * @param type a namespaced identifier of the log (it is not a level like \"debug\", \"error\" but more like \"apdu-in\", \"apdu-out\", etc...)\n * @param message a clear message of the log associated to the type\n */\nexport const log = (type: string, message?: string, data?: any) => {\n const obj: Log = {\n type,\n id: String(++id),\n date: new Date(),\n };\n if (message) obj.message = message;\n if (data) obj.data = data;\n dispatch(obj);\n};\n\n/**\n * listen to logs.\n * @param cb that is called for each future log() with the Log object\n * @return a function that can be called to unsubscribe the listener\n */\nexport const listen = (cb: Subscriber): Unsubscribe => {\n subscribers.push(cb);\n return () => {\n const i = subscribers.indexOf(cb);\n\n if (i !== -1) {\n // equivalent of subscribers.splice(i, 1) // https://twitter.com/Rich_Harris/status/1125850391155965952\n subscribers[i] = subscribers[subscribers.length - 1];\n subscribers.pop();\n }\n };\n};\n\nfunction dispatch(log: Log) {\n for (let i = 0; i < subscribers.length; i++) {\n try {\n subscribers[i](log);\n } catch (e) {\n console.error(e);\n }\n }\n}\n\n// for debug purpose\n\ndeclare global {\n interface Window {\n __ledgerLogsListen: any;\n }\n}\n\nif (typeof window !== \"undefined\") {\n window.__ledgerLogsListen = listen;\n}\n", "/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar NODE_ENV = process.env.NODE_ENV;\n\nvar invariant = function(condition, format, a, b, c, d, e, f) {\n if (NODE_ENV !== 'production') {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n }\n\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error(\n 'Minified exception occurred; use the non-minified dev environment ' +\n 'for the full error message and additional helpful warnings.'\n );\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(\n format.replace(/%s/g, function() { return args[argIndex++]; })\n );\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n};\n\nmodule.exports = invariant;\n", "// Note: this is the semver.org version of the spec that it implements\n// Not necessarily the package version of this code.\nconst SEMVER_SPEC_VERSION = '2.0.0'\n\nconst MAX_LENGTH = 256\nconst MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER ||\n/* istanbul ignore next */ 9007199254740991\n\n// Max safe segment length for coercion.\nconst MAX_SAFE_COMPONENT_LENGTH = 16\n\nmodule.exports = {\n SEMVER_SPEC_VERSION,\n MAX_LENGTH,\n MAX_SAFE_INTEGER,\n MAX_SAFE_COMPONENT_LENGTH,\n}\n", "const debug = (\n typeof process === 'object' &&\n process.env &&\n process.env.NODE_DEBUG &&\n /\\bsemver\\b/i.test(process.env.NODE_DEBUG)\n) ? (...args) => console.error('SEMVER', ...args)\n : () => {}\n\nmodule.exports = debug\n", "const { MAX_SAFE_COMPONENT_LENGTH } = require('./constants')\nconst debug = require('./debug')\nexports = module.exports = {}\n\n// The actual regexps go on exports.re\nconst re = exports.re = []\nconst src = exports.src = []\nconst t = exports.t = {}\nlet R = 0\n\nconst createToken = (name, value, isGlobal) => {\n const index = R++\n debug(name, index, value)\n t[name] = index\n src[index] = value\n re[index] = new RegExp(value, isGlobal ? 'g' : undefined)\n}\n\n// The following Regular Expressions can be used for tokenizing,\n// validating, and parsing SemVer version strings.\n\n// ## Numeric Identifier\n// A single `0`, or a non-zero digit followed by zero or more digits.\n\ncreateToken('NUMERICIDENTIFIER', '0|[1-9]\\\\d*')\ncreateToken('NUMERICIDENTIFIERLOOSE', '[0-9]+')\n\n// ## Non-numeric Identifier\n// Zero or more digits, followed by a letter or hyphen, and then zero or\n// more letters, digits, or hyphens.\n\ncreateToken('NONNUMERICIDENTIFIER', '\\\\d*[a-zA-Z-][a-zA-Z0-9-]*')\n\n// ## Main Version\n// Three dot-separated numeric identifiers.\n\ncreateToken('MAINVERSION', `(${src[t.NUMERICIDENTIFIER]})\\\\.` +\n `(${src[t.NUMERICIDENTIFIER]})\\\\.` +\n `(${src[t.NUMERICIDENTIFIER]})`)\n\ncreateToken('MAINVERSIONLOOSE', `(${src[t.NUMERICIDENTIFIERLOOSE]})\\\\.` +\n `(${src[t.NUMERICIDENTIFIERLOOSE]})\\\\.` +\n `(${src[t.NUMERICIDENTIFIERLOOSE]})`)\n\n// ## Pre-release Version Identifier\n// A numeric identifier, or a non-numeric identifier.\n\ncreateToken('PRERELEASEIDENTIFIER', `(?:${src[t.NUMERICIDENTIFIER]\n}|${src[t.NONNUMERICIDENTIFIER]})`)\n\ncreateToken('PRERELEASEIDENTIFIERLOOSE', `(?:${src[t.NUMERICIDENTIFIERLOOSE]\n}|${src[t.NONNUMERICIDENTIFIER]})`)\n\n// ## Pre-release Version\n// Hyphen, followed by one or more dot-separated pre-release version\n// identifiers.\n\ncreateToken('PRERELEASE', `(?:-(${src[t.PRERELEASEIDENTIFIER]\n}(?:\\\\.${src[t.PRERELEASEIDENTIFIER]})*))`)\n\ncreateToken('PRERELEASELOOSE', `(?:-?(${src[t.PRERELEASEIDENTIFIERLOOSE]\n}(?:\\\\.${src[t.PRERELEASEIDENTIFIERLOOSE]})*))`)\n\n// ## Build Metadata Identifier\n// Any combination of digits, letters, or hyphens.\n\ncreateToken('BUILDIDENTIFIER', '[0-9A-Za-z-]+')\n\n// ## Build Metadata\n// Plus sign, followed by one or more period-separated build metadata\n// identifiers.\n\ncreateToken('BUILD', `(?:\\\\+(${src[t.BUILDIDENTIFIER]\n}(?:\\\\.${src[t.BUILDIDENTIFIER]})*))`)\n\n// ## Full Version String\n// A main version, followed optionally by a pre-release version and\n// build metadata.\n\n// Note that the only major, minor, patch, and pre-release sections of\n// the version string are capturing groups. The build metadata is not a\n// capturing group, because it should not ever be used in version\n// comparison.\n\ncreateToken('FULLPLAIN', `v?${src[t.MAINVERSION]\n}${src[t.PRERELEASE]}?${\n src[t.BUILD]}?`)\n\ncreateToken('FULL', `^${src[t.FULLPLAIN]}$`)\n\n// like full, but allows v1.2.3 and =1.2.3, which people do sometimes.\n// also, 1.0.0alpha1 (prerelease without the hyphen) which is pretty\n// common in the npm registry.\ncreateToken('LOOSEPLAIN', `[v=\\\\s]*${src[t.MAINVERSIONLOOSE]\n}${src[t.PRERELEASELOOSE]}?${\n src[t.BUILD]}?`)\n\ncreateToken('LOOSE', `^${src[t.LOOSEPLAIN]}$`)\n\ncreateToken('GTLT', '((?:<|>)?=?)')\n\n// Something like \"2.*\" or \"1.2.x\".\n// Note that \"x.x\" is a valid xRange identifer, meaning \"any version\"\n// Only the first item is strictly required.\ncreateToken('XRANGEIDENTIFIERLOOSE', `${src[t.NUMERICIDENTIFIERLOOSE]}|x|X|\\\\*`)\ncreateToken('XRANGEIDENTIFIER', `${src[t.NUMERICIDENTIFIER]}|x|X|\\\\*`)\n\ncreateToken('XRANGEPLAIN', `[v=\\\\s]*(${src[t.XRANGEIDENTIFIER]})` +\n `(?:\\\\.(${src[t.XRANGEIDENTIFIER]})` +\n `(?:\\\\.(${src[t.XRANGEIDENTIFIER]})` +\n `(?:${src[t.PRERELEASE]})?${\n src[t.BUILD]}?` +\n `)?)?`)\n\ncreateToken('XRANGEPLAINLOOSE', `[v=\\\\s]*(${src[t.XRANGEIDENTIFIERLOOSE]})` +\n `(?:\\\\.(${src[t.XRANGEIDENTIFIERLOOSE]})` +\n `(?:\\\\.(${src[t.XRANGEIDENTIFIERLOOSE]})` +\n `(?:${src[t.PRERELEASELOOSE]})?${\n src[t.BUILD]}?` +\n `)?)?`)\n\ncreateToken('XRANGE', `^${src[t.GTLT]}\\\\s*${src[t.XRANGEPLAIN]}$`)\ncreateToken('XRANGELOOSE', `^${src[t.GTLT]}\\\\s*${src[t.XRANGEPLAINLOOSE]}$`)\n\n// Coercion.\n// Extract anything that could conceivably be a part of a valid semver\ncreateToken('COERCE', `${'(^|[^\\\\d])' +\n '(\\\\d{1,'}${MAX_SAFE_COMPONENT_LENGTH}})` +\n `(?:\\\\.(\\\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?` +\n `(?:\\\\.(\\\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?` +\n `(?:$|[^\\\\d])`)\ncreateToken('COERCERTL', src[t.COERCE], true)\n\n// Tilde ranges.\n// Meaning is \"reasonably at or greater than\"\ncreateToken('LONETILDE', '(?:~>?)')\n\ncreateToken('TILDETRIM', `(\\\\s*)${src[t.LONETILDE]}\\\\s+`, true)\nexports.tildeTrimReplace = '$1~'\n\ncreateToken('TILDE', `^${src[t.LONETILDE]}${src[t.XRANGEPLAIN]}$`)\ncreateToken('TILDELOOSE', `^${src[t.LONETILDE]}${src[t.XRANGEPLAINLOOSE]}$`)\n\n// Caret ranges.\n// Meaning is \"at least and backwards compatible with\"\ncreateToken('LONECARET', '(?:\\\\^)')\n\ncreateToken('CARETTRIM', `(\\\\s*)${src[t.LONECARET]}\\\\s+`, true)\nexports.caretTrimReplace = '$1^'\n\ncreateToken('CARET', `^${src[t.LONECARET]}${src[t.XRANGEPLAIN]}$`)\ncreateToken('CARETLOOSE', `^${src[t.LONECARET]}${src[t.XRANGEPLAINLOOSE]}$`)\n\n// A simple gt/lt/eq thing, or just \"\" to indicate \"any version\"\ncreateToken('COMPARATORLOOSE', `^${src[t.GTLT]}\\\\s*(${src[t.LOOSEPLAIN]})$|^$`)\ncreateToken('COMPARATOR', `^${src[t.GTLT]}\\\\s*(${src[t.FULLPLAIN]})$|^$`)\n\n// An expression to strip any whitespace between the gtlt and the thing\n// it modifies, so that `> 1.2.3` ==> `>1.2.3`\ncreateToken('COMPARATORTRIM', `(\\\\s*)${src[t.GTLT]\n}\\\\s*(${src[t.LOOSEPLAIN]}|${src[t.XRANGEPLAIN]})`, true)\nexports.comparatorTrimReplace = '$1$2$3'\n\n// Something like `1.2.3 - 1.2.4`\n// Note that these all use the loose form, because they'll be\n// checked against either the strict or loose comparator form\n// later.\ncreateToken('HYPHENRANGE', `^\\\\s*(${src[t.XRANGEPLAIN]})` +\n `\\\\s+-\\\\s+` +\n `(${src[t.XRANGEPLAIN]})` +\n `\\\\s*$`)\n\ncreateToken('HYPHENRANGELOOSE', `^\\\\s*(${src[t.XRANGEPLAINLOOSE]})` +\n `\\\\s+-\\\\s+` +\n `(${src[t.XRANGEPLAINLOOSE]})` +\n `\\\\s*$`)\n\n// Star ranges basically just allow anything at all.\ncreateToken('STAR', '(<|>)?=?\\\\s*\\\\*')\n// >=0.0.0 is like a star\ncreateToken('GTE0', '^\\\\s*>=\\\\s*0\\\\.0\\\\.0\\\\s*$')\ncreateToken('GTE0PRE', '^\\\\s*>=\\\\s*0\\\\.0\\\\.0-0\\\\s*$')\n", "// parse out just the options we care about so we always get a consistent\n// obj with keys in a consistent order.\nconst opts = ['includePrerelease', 'loose', 'rtl']\nconst parseOptions = options =>\n !options ? {}\n : typeof options !== 'object' ? { loose: true }\n : opts.filter(k => options[k]).reduce((o, k) => {\n o[k] = true\n return o\n }, {})\nmodule.exports = parseOptions\n", "const numeric = /^[0-9]+$/\nconst compareIdentifiers = (a, b) => {\n const anum = numeric.test(a)\n const bnum = numeric.test(b)\n\n if (anum && bnum) {\n a = +a\n b = +b\n }\n\n return a === b ? 0\n : (anum && !bnum) ? -1\n : (bnum && !anum) ? 1\n : a < b ? -1\n : 1\n}\n\nconst rcompareIdentifiers = (a, b) => compareIdentifiers(b, a)\n\nmodule.exports = {\n compareIdentifiers,\n rcompareIdentifiers,\n}\n", "const debug = require('../internal/debug')\nconst { MAX_LENGTH, MAX_SAFE_INTEGER } = require('../internal/constants')\nconst { re, t } = require('../internal/re')\n\nconst parseOptions = require('../internal/parse-options')\nconst { compareIdentifiers } = require('../internal/identifiers')\nclass SemVer {\n constructor (version, options) {\n options = parseOptions(options)\n\n if (version instanceof SemVer) {\n if (version.loose === !!options.loose &&\n version.includePrerelease === !!options.includePrerelease) {\n return version\n } else {\n version = version.version\n }\n } else if (typeof version !== 'string') {\n throw new TypeError(`Invalid Version: ${version}`)\n }\n\n if (version.length > MAX_LENGTH) {\n throw new TypeError(\n `version is longer than ${MAX_LENGTH} characters`\n )\n }\n\n debug('SemVer', version, options)\n this.options = options\n this.loose = !!options.loose\n // this isn't actually relevant for versions, but keep it so that we\n // don't run into trouble passing this.options around.\n this.includePrerelease = !!options.includePrerelease\n\n const m = version.trim().match(options.loose ? re[t.LOOSE] : re[t.FULL])\n\n if (!m) {\n throw new TypeError(`Invalid Version: ${version}`)\n }\n\n this.raw = version\n\n // these are actually numbers\n this.major = +m[1]\n this.minor = +m[2]\n this.patch = +m[3]\n\n if (this.major > MAX_SAFE_INTEGER || this.major < 0) {\n throw new TypeError('Invalid major version')\n }\n\n if (this.minor > MAX_SAFE_INTEGER || this.minor < 0) {\n throw new TypeError('Invalid minor version')\n }\n\n if (this.patch > MAX_SAFE_INTEGER || this.patch < 0) {\n throw new TypeError('Invalid patch version')\n }\n\n // numberify any prerelease numeric ids\n if (!m[4]) {\n this.prerelease = []\n } else {\n this.prerelease = m[4].split('.').map((id) => {\n if (/^[0-9]+$/.test(id)) {\n const num = +id\n if (num >= 0 && num < MAX_SAFE_INTEGER) {\n return num\n }\n }\n return id\n })\n }\n\n this.build = m[5] ? m[5].split('.') : []\n this.format()\n }\n\n format () {\n this.version = `${this.major}.${this.minor}.${this.patch}`\n if (this.prerelease.length) {\n this.version += `-${this.prerelease.join('.')}`\n }\n return this.version\n }\n\n toString () {\n return this.version\n }\n\n compare (other) {\n debug('SemVer.compare', this.version, this.options, other)\n if (!(other instanceof SemVer)) {\n if (typeof other === 'string' && other === this.version) {\n return 0\n }\n other = new SemVer(other, this.options)\n }\n\n if (other.version === this.version) {\n return 0\n }\n\n return this.compareMain(other) || this.comparePre(other)\n }\n\n compareMain (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n return (\n compareIdentifiers(this.major, other.major) ||\n compareIdentifiers(this.minor, other.minor) ||\n compareIdentifiers(this.patch, other.patch)\n )\n }\n\n comparePre (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n // NOT having a prerelease is > having one\n if (this.prerelease.length && !other.prerelease.length) {\n return -1\n } else if (!this.prerelease.length && other.prerelease.length) {\n return 1\n } else if (!this.prerelease.length && !other.prerelease.length) {\n return 0\n }\n\n let i = 0\n do {\n const a = this.prerelease[i]\n const b = other.prerelease[i]\n debug('prerelease compare', i, a, b)\n if (a === undefined && b === undefined) {\n return 0\n } else if (b === undefined) {\n return 1\n } else if (a === undefined) {\n return -1\n } else if (a === b) {\n continue\n } else {\n return compareIdentifiers(a, b)\n }\n } while (++i)\n }\n\n compareBuild (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n let i = 0\n do {\n const a = this.build[i]\n const b = other.build[i]\n debug('prerelease compare', i, a, b)\n if (a === undefined && b === undefined) {\n return 0\n } else if (b === undefined) {\n return 1\n } else if (a === undefined) {\n return -1\n } else if (a === b) {\n continue\n } else {\n return compareIdentifiers(a, b)\n }\n } while (++i)\n }\n\n // preminor will bump the version up to the next minor release, and immediately\n // down to pre-release. premajor and prepatch work the same way.\n inc (release, identifier) {\n switch (release) {\n case 'premajor':\n this.prerelease.length = 0\n this.patch = 0\n this.minor = 0\n this.major++\n this.inc('pre', identifier)\n break\n case 'preminor':\n this.prerelease.length = 0\n this.patch = 0\n this.minor++\n this.inc('pre', identifier)\n break\n case 'prepatch':\n // If this is already a prerelease, it will bump to the next version\n // drop any prereleases that might already exist, since they are not\n // relevant at this point.\n this.prerelease.length = 0\n this.inc('patch', identifier)\n this.inc('pre', identifier)\n break\n // If the input is a non-prerelease version, this acts the same as\n // prepatch.\n case 'prerelease':\n if (this.prerelease.length === 0) {\n this.inc('patch', identifier)\n }\n this.inc('pre', identifier)\n break\n\n case 'major':\n // If this is a pre-major version, bump up to the same major version.\n // Otherwise increment major.\n // 1.0.0-5 bumps to 1.0.0\n // 1.1.0 bumps to 2.0.0\n if (\n this.minor !== 0 ||\n this.patch !== 0 ||\n this.prerelease.length === 0\n ) {\n this.major++\n }\n this.minor = 0\n this.patch = 0\n this.prerelease = []\n break\n case 'minor':\n // If this is a pre-minor version, bump up to the same minor version.\n // Otherwise increment minor.\n // 1.2.0-5 bumps to 1.2.0\n // 1.2.1 bumps to 1.3.0\n if (this.patch !== 0 || this.prerelease.length === 0) {\n this.minor++\n }\n this.patch = 0\n this.prerelease = []\n break\n case 'patch':\n // If this is not a pre-release version, it will increment the patch.\n // If it is a pre-release it will bump up to the same patch version.\n // 1.2.0-5 patches to 1.2.0\n // 1.2.0 patches to 1.2.1\n if (this.prerelease.length === 0) {\n this.patch++\n }\n this.prerelease = []\n break\n // This probably shouldn't be used publicly.\n // 1.0.0 'pre' would become 1.0.0-0 which is the wrong direction.\n case 'pre':\n if (this.prerelease.length === 0) {\n this.prerelease = [0]\n } else {\n let i = this.prerelease.length\n while (--i >= 0) {\n if (typeof this.prerelease[i] === 'number') {\n this.prerelease[i]++\n i = -2\n }\n }\n if (i === -1) {\n // didn't increment anything\n this.prerelease.push(0)\n }\n }\n if (identifier) {\n // 1.2.0-beta.1 bumps to 1.2.0-beta.2,\n // 1.2.0-beta.fooblz or 1.2.0-beta bumps to 1.2.0-beta.0\n if (compareIdentifiers(this.prerelease[0], identifier) === 0) {\n if (isNaN(this.prerelease[1])) {\n this.prerelease = [identifier, 0]\n }\n } else {\n this.prerelease = [identifier, 0]\n }\n }\n break\n\n default:\n throw new Error(`invalid increment argument: ${release}`)\n }\n this.format()\n this.raw = this.version\n return this\n }\n}\n\nmodule.exports = SemVer\n", "const { MAX_LENGTH } = require('../internal/constants')\nconst { re, t } = require('../internal/re')\nconst SemVer = require('../classes/semver')\n\nconst parseOptions = require('../internal/parse-options')\nconst parse = (version, options) => {\n options = parseOptions(options)\n\n if (version instanceof SemVer) {\n return version\n }\n\n if (typeof version !== 'string') {\n return null\n }\n\n if (version.length > MAX_LENGTH) {\n return null\n }\n\n const r = options.loose ? re[t.LOOSE] : re[t.FULL]\n if (!r.test(version)) {\n return null\n }\n\n try {\n return new SemVer(version, options)\n } catch (er) {\n return null\n }\n}\n\nmodule.exports = parse\n", "const parse = require('./parse')\nconst valid = (version, options) => {\n const v = parse(version, options)\n return v ? v.version : null\n}\nmodule.exports = valid\n", "const parse = require('./parse')\nconst clean = (version, options) => {\n const s = parse(version.trim().replace(/^[=v]+/, ''), options)\n return s ? s.version : null\n}\nmodule.exports = clean\n", "const SemVer = require('../classes/semver')\n\nconst inc = (version, release, options, identifier) => {\n if (typeof (options) === 'string') {\n identifier = options\n options = undefined\n }\n\n try {\n return new SemVer(\n version instanceof SemVer ? version.version : version,\n options\n ).inc(release, identifier).version\n } catch (er) {\n return null\n }\n}\nmodule.exports = inc\n", "const SemVer = require('../classes/semver')\nconst compare = (a, b, loose) =>\n new SemVer(a, loose).compare(new SemVer(b, loose))\n\nmodule.exports = compare\n", "const compare = require('./compare')\nconst eq = (a, b, loose) => compare(a, b, loose) === 0\nmodule.exports = eq\n", "const parse = require('./parse')\nconst eq = require('./eq')\n\nconst diff = (version1, version2) => {\n if (eq(version1, version2)) {\n return null\n } else {\n const v1 = parse(version1)\n const v2 = parse(version2)\n const hasPre = v1.prerelease.length || v2.prerelease.length\n const prefix = hasPre ? 'pre' : ''\n const defaultResult = hasPre ? 'prerelease' : ''\n for (const key in v1) {\n if (key === 'major' || key === 'minor' || key === 'patch') {\n if (v1[key] !== v2[key]) {\n return prefix + key\n }\n }\n }\n return defaultResult // may be undefined\n }\n}\nmodule.exports = diff\n", "const SemVer = require('../classes/semver')\nconst major = (a, loose) => new SemVer(a, loose).major\nmodule.exports = major\n", "const SemVer = require('../classes/semver')\nconst minor = (a, loose) => new SemVer(a, loose).minor\nmodule.exports = minor\n", "const SemVer = require('../classes/semver')\nconst patch = (a, loose) => new SemVer(a, loose).patch\nmodule.exports = patch\n", "const parse = require('./parse')\nconst prerelease = (version, options) => {\n const parsed = parse(version, options)\n return (parsed && parsed.prerelease.length) ? parsed.prerelease : null\n}\nmodule.exports = prerelease\n", "const compare = require('./compare')\nconst rcompare = (a, b, loose) => compare(b, a, loose)\nmodule.exports = rcompare\n", "const compare = require('./compare')\nconst compareLoose = (a, b) => compare(a, b, true)\nmodule.exports = compareLoose\n", "const SemVer = require('../classes/semver')\nconst compareBuild = (a, b, loose) => {\n const versionA = new SemVer(a, loose)\n const versionB = new SemVer(b, loose)\n return versionA.compare(versionB) || versionA.compareBuild(versionB)\n}\nmodule.exports = compareBuild\n", "const compareBuild = require('./compare-build')\nconst sort = (list, loose) => list.sort((a, b) => compareBuild(a, b, loose))\nmodule.exports = sort\n", "const compareBuild = require('./compare-build')\nconst rsort = (list, loose) => list.sort((a, b) => compareBuild(b, a, loose))\nmodule.exports = rsort\n", "const compare = require('./compare')\nconst gt = (a, b, loose) => compare(a, b, loose) > 0\nmodule.exports = gt\n", "const compare = require('./compare')\nconst lt = (a, b, loose) => compare(a, b, loose) < 0\nmodule.exports = lt\n", "const compare = require('./compare')\nconst neq = (a, b, loose) => compare(a, b, loose) !== 0\nmodule.exports = neq\n", "const compare = require('./compare')\nconst gte = (a, b, loose) => compare(a, b, loose) >= 0\nmodule.exports = gte\n", "const compare = require('./compare')\nconst lte = (a, b, loose) => compare(a, b, loose) <= 0\nmodule.exports = lte\n", "const eq = require('./eq')\nconst neq = require('./neq')\nconst gt = require('./gt')\nconst gte = require('./gte')\nconst lt = require('./lt')\nconst lte = require('./lte')\n\nconst cmp = (a, op, b, loose) => {\n switch (op) {\n case '===':\n if (typeof a === 'object') {\n a = a.version\n }\n if (typeof b === 'object') {\n b = b.version\n }\n return a === b\n\n case '!==':\n if (typeof a === 'object') {\n a = a.version\n }\n if (typeof b === 'object') {\n b = b.version\n }\n return a !== b\n\n case '':\n case '=':\n case '==':\n return eq(a, b, loose)\n\n case '!=':\n return neq(a, b, loose)\n\n case '>':\n return gt(a, b, loose)\n\n case '>=':\n return gte(a, b, loose)\n\n case '<':\n return lt(a, b, loose)\n\n case '<=':\n return lte(a, b, loose)\n\n default:\n throw new TypeError(`Invalid operator: ${op}`)\n }\n}\nmodule.exports = cmp\n", "const SemVer = require('../classes/semver')\nconst parse = require('./parse')\nconst { re, t } = require('../internal/re')\n\nconst coerce = (version, options) => {\n if (version instanceof SemVer) {\n return version\n }\n\n if (typeof version === 'number') {\n version = String(version)\n }\n\n if (typeof version !== 'string') {\n return null\n }\n\n options = options || {}\n\n let match = null\n if (!options.rtl) {\n match = version.match(re[t.COERCE])\n } else {\n // Find the right-most coercible string that does not share\n // a terminus with a more left-ward coercible string.\n // Eg, '1.2.3.4' wants to coerce '2.3.4', not '3.4' or '4'\n //\n // Walk through the string checking with a /g regexp\n // Manually set the index so as to pick up overlapping matches.\n // Stop when we get a match that ends at the string end, since no\n // coercible string can be more right-ward without the same terminus.\n let next\n while ((next = re[t.COERCERTL].exec(version)) &&\n (!match || match.index + match[0].length !== version.length)\n ) {\n if (!match ||\n next.index + next[0].length !== match.index + match[0].length) {\n match = next\n }\n re[t.COERCERTL].lastIndex = next.index + next[1].length + next[2].length\n }\n // leave it in a clean state\n re[t.COERCERTL].lastIndex = -1\n }\n\n if (match === null) {\n return null\n }\n\n return parse(`${match[2]}.${match[3] || '0'}.${match[4] || '0'}`, options)\n}\nmodule.exports = coerce\n", "'use strict'\nmodule.exports = function (Yallist) {\n Yallist.prototype[Symbol.iterator] = function* () {\n for (let walker = this.head; walker; walker = walker.next) {\n yield walker.value\n }\n }\n}\n", "'use strict'\nmodule.exports = Yallist\n\nYallist.Node = Node\nYallist.create = Yallist\n\nfunction Yallist (list) {\n var self = this\n if (!(self instanceof Yallist)) {\n self = new Yallist()\n }\n\n self.tail = null\n self.head = null\n self.length = 0\n\n if (list && typeof list.forEach === 'function') {\n list.forEach(function (item) {\n self.push(item)\n })\n } else if (arguments.length > 0) {\n for (var i = 0, l = arguments.length; i < l; i++) {\n self.push(arguments[i])\n }\n }\n\n return self\n}\n\nYallist.prototype.removeNode = function (node) {\n if (node.list !== this) {\n throw new Error('removing node which does not belong to this list')\n }\n\n var next = node.next\n var prev = node.prev\n\n if (next) {\n next.prev = prev\n }\n\n if (prev) {\n prev.next = next\n }\n\n if (node === this.head) {\n this.head = next\n }\n if (node === this.tail) {\n this.tail = prev\n }\n\n node.list.length--\n node.next = null\n node.prev = null\n node.list = null\n\n return next\n}\n\nYallist.prototype.unshiftNode = function (node) {\n if (node === this.head) {\n return\n }\n\n if (node.list) {\n node.list.removeNode(node)\n }\n\n var head = this.head\n node.list = this\n node.next = head\n if (head) {\n head.prev = node\n }\n\n this.head = node\n if (!this.tail) {\n this.tail = node\n }\n this.length++\n}\n\nYallist.prototype.pushNode = function (node) {\n if (node === this.tail) {\n return\n }\n\n if (node.list) {\n node.list.removeNode(node)\n }\n\n var tail = this.tail\n node.list = this\n node.prev = tail\n if (tail) {\n tail.next = node\n }\n\n this.tail = node\n if (!this.head) {\n this.head = node\n }\n this.length++\n}\n\nYallist.prototype.push = function () {\n for (var i = 0, l = arguments.length; i < l; i++) {\n push(this, arguments[i])\n }\n return this.length\n}\n\nYallist.prototype.unshift = function () {\n for (var i = 0, l = arguments.length; i < l; i++) {\n unshift(this, arguments[i])\n }\n return this.length\n}\n\nYallist.prototype.pop = function () {\n if (!this.tail) {\n return undefined\n }\n\n var res = this.tail.value\n this.tail = this.tail.prev\n if (this.tail) {\n this.tail.next = null\n } else {\n this.head = null\n }\n this.length--\n return res\n}\n\nYallist.prototype.shift = function () {\n if (!this.head) {\n return undefined\n }\n\n var res = this.head.value\n this.head = this.head.next\n if (this.head) {\n this.head.prev = null\n } else {\n this.tail = null\n }\n this.length--\n return res\n}\n\nYallist.prototype.forEach = function (fn, thisp) {\n thisp = thisp || this\n for (var walker = this.head, i = 0; walker !== null; i++) {\n fn.call(thisp, walker.value, i, this)\n walker = walker.next\n }\n}\n\nYallist.prototype.forEachReverse = function (fn, thisp) {\n thisp = thisp || this\n for (var walker = this.tail, i = this.length - 1; walker !== null; i--) {\n fn.call(thisp, walker.value, i, this)\n walker = walker.prev\n }\n}\n\nYallist.prototype.get = function (n) {\n for (var i = 0, walker = this.head; walker !== null && i < n; i++) {\n // abort out of the list early if we hit a cycle\n walker = walker.next\n }\n if (i === n && walker !== null) {\n return walker.value\n }\n}\n\nYallist.prototype.getReverse = function (n) {\n for (var i = 0, walker = this.tail; walker !== null && i < n; i++) {\n // abort out of the list early if we hit a cycle\n walker = walker.prev\n }\n if (i === n && walker !== null) {\n return walker.value\n }\n}\n\nYallist.prototype.map = function (fn, thisp) {\n thisp = thisp || this\n var res = new Yallist()\n for (var walker = this.head; walker !== null;) {\n res.push(fn.call(thisp, walker.value, this))\n walker = walker.next\n }\n return res\n}\n\nYallist.prototype.mapReverse = function (fn, thisp) {\n thisp = thisp || this\n var res = new Yallist()\n for (var walker = this.tail; walker !== null;) {\n res.push(fn.call(thisp, walker.value, this))\n walker = walker.prev\n }\n return res\n}\n\nYallist.prototype.reduce = function (fn, initial) {\n var acc\n var walker = this.head\n if (arguments.length > 1) {\n acc = initial\n } else if (this.head) {\n walker = this.head.next\n acc = this.head.value\n } else {\n throw new TypeError('Reduce of empty list with no initial value')\n }\n\n for (var i = 0; walker !== null; i++) {\n acc = fn(acc, walker.value, i)\n walker = walker.next\n }\n\n return acc\n}\n\nYallist.prototype.reduceReverse = function (fn, initial) {\n var acc\n var walker = this.tail\n if (arguments.length > 1) {\n acc = initial\n } else if (this.tail) {\n walker = this.tail.prev\n acc = this.tail.value\n } else {\n throw new TypeError('Reduce of empty list with no initial value')\n }\n\n for (var i = this.length - 1; walker !== null; i--) {\n acc = fn(acc, walker.value, i)\n walker = walker.prev\n }\n\n return acc\n}\n\nYallist.prototype.toArray = function () {\n var arr = new Array(this.length)\n for (var i = 0, walker = this.head; walker !== null; i++) {\n arr[i] = walker.value\n walker = walker.next\n }\n return arr\n}\n\nYallist.prototype.toArrayReverse = function () {\n var arr = new Array(this.length)\n for (var i = 0, walker = this.tail; walker !== null; i++) {\n arr[i] = walker.value\n walker = walker.prev\n }\n return arr\n}\n\nYallist.prototype.slice = function (from, to) {\n to = to || this.length\n if (to < 0) {\n to += this.length\n }\n from = from || 0\n if (from < 0) {\n from += this.length\n }\n var ret = new Yallist()\n if (to < from || to < 0) {\n return ret\n }\n if (from < 0) {\n from = 0\n }\n if (to > this.length) {\n to = this.length\n }\n for (var i = 0, walker = this.head; walker !== null && i < from; i++) {\n walker = walker.next\n }\n for (; walker !== null && i < to; i++, walker = walker.next) {\n ret.push(walker.value)\n }\n return ret\n}\n\nYallist.prototype.sliceReverse = function (from, to) {\n to = to || this.length\n if (to < 0) {\n to += this.length\n }\n from = from || 0\n if (from < 0) {\n from += this.length\n }\n var ret = new Yallist()\n if (to < from || to < 0) {\n return ret\n }\n if (from < 0) {\n from = 0\n }\n if (to > this.length) {\n to = this.length\n }\n for (var i = this.length, walker = this.tail; walker !== null && i > to; i--) {\n walker = walker.prev\n }\n for (; walker !== null && i > from; i--, walker = walker.prev) {\n ret.push(walker.value)\n }\n return ret\n}\n\nYallist.prototype.splice = function (start, deleteCount, ...nodes) {\n if (start > this.length) {\n start = this.length - 1\n }\n if (start < 0) {\n start = this.length + start;\n }\n\n for (var i = 0, walker = this.head; walker !== null && i < start; i++) {\n walker = walker.next\n }\n\n var ret = []\n for (var i = 0; walker && i < deleteCount; i++) {\n ret.push(walker.value)\n walker = this.removeNode(walker)\n }\n if (walker === null) {\n walker = this.tail\n }\n\n if (walker !== this.head && walker !== this.tail) {\n walker = walker.prev\n }\n\n for (var i = 0; i < nodes.length; i++) {\n walker = insert(this, walker, nodes[i])\n }\n return ret;\n}\n\nYallist.prototype.reverse = function () {\n var head = this.head\n var tail = this.tail\n for (var walker = head; walker !== null; walker = walker.prev) {\n var p = walker.prev\n walker.prev = walker.next\n walker.next = p\n }\n this.head = tail\n this.tail = head\n return this\n}\n\nfunction insert (self, node, value) {\n var inserted = node === self.head ?\n new Node(value, null, node, self) :\n new Node(value, node, node.next, self)\n\n if (inserted.next === null) {\n self.tail = inserted\n }\n if (inserted.prev === null) {\n self.head = inserted\n }\n\n self.length++\n\n return inserted\n}\n\nfunction push (self, item) {\n self.tail = new Node(item, self.tail, null, self)\n if (!self.head) {\n self.head = self.tail\n }\n self.length++\n}\n\nfunction unshift (self, item) {\n self.head = new Node(item, null, self.head, self)\n if (!self.tail) {\n self.tail = self.head\n }\n self.length++\n}\n\nfunction Node (value, prev, next, list) {\n if (!(this instanceof Node)) {\n return new Node(value, prev, next, list)\n }\n\n this.list = list\n this.value = value\n\n if (prev) {\n prev.next = this\n this.prev = prev\n } else {\n this.prev = null\n }\n\n if (next) {\n next.prev = this\n this.next = next\n } else {\n this.next = null\n }\n}\n\ntry {\n // add if support for Symbol.iterator is present\n require('./iterator.js')(Yallist)\n} catch (er) {}\n", "'use strict'\n\n// A linked list to keep track of recently-used-ness\nconst Yallist = require('yallist')\n\nconst MAX = Symbol('max')\nconst LENGTH = Symbol('length')\nconst LENGTH_CALCULATOR = Symbol('lengthCalculator')\nconst ALLOW_STALE = Symbol('allowStale')\nconst MAX_AGE = Symbol('maxAge')\nconst DISPOSE = Symbol('dispose')\nconst NO_DISPOSE_ON_SET = Symbol('noDisposeOnSet')\nconst LRU_LIST = Symbol('lruList')\nconst CACHE = Symbol('cache')\nconst UPDATE_AGE_ON_GET = Symbol('updateAgeOnGet')\n\nconst naiveLength = () => 1\n\n// lruList is a yallist where the head is the youngest\n// item, and the tail is the oldest. the list contains the Hit\n// objects as the entries.\n// Each Hit object has a reference to its Yallist.Node. This\n// never changes.\n//\n// cache is a Map (or PseudoMap) that matches the keys to\n// the Yallist.Node object.\nclass LRUCache {\n constructor (options) {\n if (typeof options === 'number')\n options = { max: options }\n\n if (!options)\n options = {}\n\n if (options.max && (typeof options.max !== 'number' || options.max < 0))\n throw new TypeError('max must be a non-negative number')\n // Kind of weird to have a default max of Infinity, but oh well.\n const max = this[MAX] = options.max || Infinity\n\n const lc = options.length || naiveLength\n this[LENGTH_CALCULATOR] = (typeof lc !== 'function') ? naiveLength : lc\n this[ALLOW_STALE] = options.stale || false\n if (options.maxAge && typeof options.maxAge !== 'number')\n throw new TypeError('maxAge must be a number')\n this[MAX_AGE] = options.maxAge || 0\n this[DISPOSE] = options.dispose\n this[NO_DISPOSE_ON_SET] = options.noDisposeOnSet || false\n this[UPDATE_AGE_ON_GET] = options.updateAgeOnGet || false\n this.reset()\n }\n\n // resize the cache when the max changes.\n set max (mL) {\n if (typeof mL !== 'number' || mL < 0)\n throw new TypeError('max must be a non-negative number')\n\n this[MAX] = mL || Infinity\n trim(this)\n }\n get max () {\n return this[MAX]\n }\n\n set allowStale (allowStale) {\n this[ALLOW_STALE] = !!allowStale\n }\n get allowStale () {\n return this[ALLOW_STALE]\n }\n\n set maxAge (mA) {\n if (typeof mA !== 'number')\n throw new TypeError('maxAge must be a non-negative number')\n\n this[MAX_AGE] = mA\n trim(this)\n }\n get maxAge () {\n return this[MAX_AGE]\n }\n\n // resize the cache when the lengthCalculator changes.\n set lengthCalculator (lC) {\n if (typeof lC !== 'function')\n lC = naiveLength\n\n if (lC !== this[LENGTH_CALCULATOR]) {\n this[LENGTH_CALCULATOR] = lC\n this[LENGTH] = 0\n this[LRU_LIST].forEach(hit => {\n hit.length = this[LENGTH_CALCULATOR](hit.value, hit.key)\n this[LENGTH] += hit.length\n })\n }\n trim(this)\n }\n get lengthCalculator () { return this[LENGTH_CALCULATOR] }\n\n get length () { return this[LENGTH] }\n get itemCount () { return this[LRU_LIST].length }\n\n rforEach (fn, thisp) {\n thisp = thisp || this\n for (let walker = this[LRU_LIST].tail; walker !== null;) {\n const prev = walker.prev\n forEachStep(this, fn, walker, thisp)\n walker = prev\n }\n }\n\n forEach (fn, thisp) {\n thisp = thisp || this\n for (let walker = this[LRU_LIST].head; walker !== null;) {\n const next = walker.next\n forEachStep(this, fn, walker, thisp)\n walker = next\n }\n }\n\n keys () {\n return this[LRU_LIST].toArray().map(k => k.key)\n }\n\n values () {\n return this[LRU_LIST].toArray().map(k => k.value)\n }\n\n reset () {\n if (this[DISPOSE] &&\n this[LRU_LIST] &&\n this[LRU_LIST].length) {\n this[LRU_LIST].forEach(hit => this[DISPOSE](hit.key, hit.value))\n }\n\n this[CACHE] = new Map() // hash of items by key\n this[LRU_LIST] = new Yallist() // list of items in order of use recency\n this[LENGTH] = 0 // length of items in the list\n }\n\n dump () {\n return this[LRU_LIST].map(hit =>\n isStale(this, hit) ? false : {\n k: hit.key,\n v: hit.value,\n e: hit.now + (hit.maxAge || 0)\n }).toArray().filter(h => h)\n }\n\n dumpLru () {\n return this[LRU_LIST]\n }\n\n set (key, value, maxAge) {\n maxAge = maxAge || this[MAX_AGE]\n\n if (maxAge && typeof maxAge !== 'number')\n throw new TypeError('maxAge must be a number')\n\n const now = maxAge ? Date.now() : 0\n const len = this[LENGTH_CALCULATOR](value, key)\n\n if (this[CACHE].has(key)) {\n if (len > this[MAX]) {\n del(this, this[CACHE].get(key))\n return false\n }\n\n const node = this[CACHE].get(key)\n const item = node.value\n\n // dispose of the old one before overwriting\n // split out into 2 ifs for better coverage tracking\n if (this[DISPOSE]) {\n if (!this[NO_DISPOSE_ON_SET])\n this[DISPOSE](key, item.value)\n }\n\n item.now = now\n item.maxAge = maxAge\n item.value = value\n this[LENGTH] += len - item.length\n item.length = len\n this.get(key)\n trim(this)\n return true\n }\n\n const hit = new Entry(key, value, len, now, maxAge)\n\n // oversized objects fall out of cache automatically.\n if (hit.length > this[MAX]) {\n if (this[DISPOSE])\n this[DISPOSE](key, value)\n\n return false\n }\n\n this[LENGTH] += hit.length\n this[LRU_LIST].unshift(hit)\n this[CACHE].set(key, this[LRU_LIST].head)\n trim(this)\n return true\n }\n\n has (key) {\n if (!this[CACHE].has(key)) return false\n const hit = this[CACHE].get(key).value\n return !isStale(this, hit)\n }\n\n get (key) {\n return get(this, key, true)\n }\n\n peek (key) {\n return get(this, key, false)\n }\n\n pop () {\n const node = this[LRU_LIST].tail\n if (!node)\n return null\n\n del(this, node)\n return node.value\n }\n\n del (key) {\n del(this, this[CACHE].get(key))\n }\n\n load (arr) {\n // reset the cache\n this.reset()\n\n const now = Date.now()\n // A previous serialized cache has the most recent items first\n for (let l = arr.length - 1; l >= 0; l--) {\n const hit = arr[l]\n const expiresAt = hit.e || 0\n if (expiresAt === 0)\n // the item was created without expiration in a non aged cache\n this.set(hit.k, hit.v)\n else {\n const maxAge = expiresAt - now\n // dont add already expired items\n if (maxAge > 0) {\n this.set(hit.k, hit.v, maxAge)\n }\n }\n }\n }\n\n prune () {\n this[CACHE].forEach((value, key) => get(this, key, false))\n }\n}\n\nconst get = (self, key, doUse) => {\n const node = self[CACHE].get(key)\n if (node) {\n const hit = node.value\n if (isStale(self, hit)) {\n del(self, node)\n if (!self[ALLOW_STALE])\n return undefined\n } else {\n if (doUse) {\n if (self[UPDATE_AGE_ON_GET])\n node.value.now = Date.now()\n self[LRU_LIST].unshiftNode(node)\n }\n }\n return hit.value\n }\n}\n\nconst isStale = (self, hit) => {\n if (!hit || (!hit.maxAge && !self[MAX_AGE]))\n return false\n\n const diff = Date.now() - hit.now\n return hit.maxAge ? diff > hit.maxAge\n : self[MAX_AGE] && (diff > self[MAX_AGE])\n}\n\nconst trim = self => {\n if (self[LENGTH] > self[MAX]) {\n for (let walker = self[LRU_LIST].tail;\n self[LENGTH] > self[MAX] && walker !== null;) {\n // We know that we're about to delete this one, and also\n // what the next least recently used key will be, so just\n // go ahead and set it now.\n const prev = walker.prev\n del(self, walker)\n walker = prev\n }\n }\n}\n\nconst del = (self, node) => {\n if (node) {\n const hit = node.value\n if (self[DISPOSE])\n self[DISPOSE](hit.key, hit.value)\n\n self[LENGTH] -= hit.length\n self[CACHE].delete(hit.key)\n self[LRU_LIST].removeNode(node)\n }\n}\n\nclass Entry {\n constructor (key, value, length, now, maxAge) {\n this.key = key\n this.value = value\n this.length = length\n this.now = now\n this.maxAge = maxAge || 0\n }\n}\n\nconst forEachStep = (self, fn, node, thisp) => {\n let hit = node.value\n if (isStale(self, hit)) {\n del(self, node)\n if (!self[ALLOW_STALE])\n hit = undefined\n }\n if (hit)\n fn.call(thisp, hit.value, hit.key, self)\n}\n\nmodule.exports = LRUCache\n", "// hoisted class for cyclic dependency\nclass Range {\n constructor (range, options) {\n options = parseOptions(options)\n\n if (range instanceof Range) {\n if (\n range.loose === !!options.loose &&\n range.includePrerelease === !!options.includePrerelease\n ) {\n return range\n } else {\n return new Range(range.raw, options)\n }\n }\n\n if (range instanceof Comparator) {\n // just put it in the set and return\n this.raw = range.value\n this.set = [[range]]\n this.format()\n return this\n }\n\n this.options = options\n this.loose = !!options.loose\n this.includePrerelease = !!options.includePrerelease\n\n // First, split based on boolean or ||\n this.raw = range\n this.set = range\n .split('||')\n // map the range to a 2d array of comparators\n .map(r => this.parseRange(r.trim()))\n // throw out any comparator lists that are empty\n // this generally means that it was not a valid range, which is allowed\n // in loose mode, but will still throw if the WHOLE range is invalid.\n .filter(c => c.length)\n\n if (!this.set.length) {\n throw new TypeError(`Invalid SemVer Range: ${range}`)\n }\n\n // if we have any that are not the null set, throw out null sets.\n if (this.set.length > 1) {\n // keep the first one, in case they're all null sets\n const first = this.set[0]\n this.set = this.set.filter(c => !isNullSet(c[0]))\n if (this.set.length === 0) {\n this.set = [first]\n } else if (this.set.length > 1) {\n // if we have any that are *, then the range is just *\n for (const c of this.set) {\n if (c.length === 1 && isAny(c[0])) {\n this.set = [c]\n break\n }\n }\n }\n }\n\n this.format()\n }\n\n format () {\n this.range = this.set\n .map((comps) => {\n return comps.join(' ').trim()\n })\n .join('||')\n .trim()\n return this.range\n }\n\n toString () {\n return this.range\n }\n\n parseRange (range) {\n range = range.trim()\n\n // memoize range parsing for performance.\n // this is a very hot path, and fully deterministic.\n const memoOpts = Object.keys(this.options).join(',')\n const memoKey = `parseRange:${memoOpts}:${range}`\n const cached = cache.get(memoKey)\n if (cached) {\n return cached\n }\n\n const loose = this.options.loose\n // `1.2.3 - 1.2.4` => `>=1.2.3 <=1.2.4`\n const hr = loose ? re[t.HYPHENRANGELOOSE] : re[t.HYPHENRANGE]\n range = range.replace(hr, hyphenReplace(this.options.includePrerelease))\n debug('hyphen replace', range)\n // `> 1.2.3 < 1.2.5` => `>1.2.3 <1.2.5`\n range = range.replace(re[t.COMPARATORTRIM], comparatorTrimReplace)\n debug('comparator trim', range)\n\n // `~ 1.2.3` => `~1.2.3`\n range = range.replace(re[t.TILDETRIM], tildeTrimReplace)\n\n // `^ 1.2.3` => `^1.2.3`\n range = range.replace(re[t.CARETTRIM], caretTrimReplace)\n\n // normalize spaces\n range = range.split(/\\s+/).join(' ')\n\n // At this point, the range is completely trimmed and\n // ready to be split into comparators.\n\n let rangeList = range\n .split(' ')\n .map(comp => parseComparator(comp, this.options))\n .join(' ')\n .split(/\\s+/)\n // >=0.0.0 is equivalent to *\n .map(comp => replaceGTE0(comp, this.options))\n\n if (loose) {\n // in loose mode, throw out any that are not valid comparators\n rangeList = rangeList.filter(comp => {\n debug('loose invalid filter', comp, this.options)\n return !!comp.match(re[t.COMPARATORLOOSE])\n })\n }\n debug('range list', rangeList)\n\n // if any comparators are the null set, then replace with JUST null set\n // if more than one comparator, remove any * comparators\n // also, don't include the same comparator more than once\n const rangeMap = new Map()\n const comparators = rangeList.map(comp => new Comparator(comp, this.options))\n for (const comp of comparators) {\n if (isNullSet(comp)) {\n return [comp]\n }\n rangeMap.set(comp.value, comp)\n }\n if (rangeMap.size > 1 && rangeMap.has('')) {\n rangeMap.delete('')\n }\n\n const result = [...rangeMap.values()]\n cache.set(memoKey, result)\n return result\n }\n\n intersects (range, options) {\n if (!(range instanceof Range)) {\n throw new TypeError('a Range is required')\n }\n\n return this.set.some((thisComparators) => {\n return (\n isSatisfiable(thisComparators, options) &&\n range.set.some((rangeComparators) => {\n return (\n isSatisfiable(rangeComparators, options) &&\n thisComparators.every((thisComparator) => {\n return rangeComparators.every((rangeComparator) => {\n return thisComparator.intersects(rangeComparator, options)\n })\n })\n )\n })\n )\n })\n }\n\n // if ANY of the sets match ALL of its comparators, then pass\n test (version) {\n if (!version) {\n return false\n }\n\n if (typeof version === 'string') {\n try {\n version = new SemVer(version, this.options)\n } catch (er) {\n return false\n }\n }\n\n for (let i = 0; i < this.set.length; i++) {\n if (testSet(this.set[i], version, this.options)) {\n return true\n }\n }\n return false\n }\n}\nmodule.exports = Range\n\nconst LRU = require('lru-cache')\nconst cache = new LRU({ max: 1000 })\n\nconst parseOptions = require('../internal/parse-options')\nconst Comparator = require('./comparator')\nconst debug = require('../internal/debug')\nconst SemVer = require('./semver')\nconst {\n re,\n t,\n comparatorTrimReplace,\n tildeTrimReplace,\n caretTrimReplace,\n} = require('../internal/re')\n\nconst isNullSet = c => c.value === '<0.0.0-0'\nconst isAny = c => c.value === ''\n\n// take a set of comparators and determine whether there\n// exists a version which can satisfy it\nconst isSatisfiable = (comparators, options) => {\n let result = true\n const remainingComparators = comparators.slice()\n let testComparator = remainingComparators.pop()\n\n while (result && remainingComparators.length) {\n result = remainingComparators.every((otherComparator) => {\n return testComparator.intersects(otherComparator, options)\n })\n\n testComparator = remainingComparators.pop()\n }\n\n return result\n}\n\n// comprised of xranges, tildes, stars, and gtlt's at this point.\n// already replaced the hyphen ranges\n// turn into a set of JUST comparators.\nconst parseComparator = (comp, options) => {\n debug('comp', comp, options)\n comp = replaceCarets(comp, options)\n debug('caret', comp)\n comp = replaceTildes(comp, options)\n debug('tildes', comp)\n comp = replaceXRanges(comp, options)\n debug('xrange', comp)\n comp = replaceStars(comp, options)\n debug('stars', comp)\n return comp\n}\n\nconst isX = id => !id || id.toLowerCase() === 'x' || id === '*'\n\n// ~, ~> --> * (any, kinda silly)\n// ~2, ~2.x, ~2.x.x, ~>2, ~>2.x ~>2.x.x --> >=2.0.0 <3.0.0-0\n// ~2.0, ~2.0.x, ~>2.0, ~>2.0.x --> >=2.0.0 <2.1.0-0\n// ~1.2, ~1.2.x, ~>1.2, ~>1.2.x --> >=1.2.0 <1.3.0-0\n// ~1.2.3, ~>1.2.3 --> >=1.2.3 <1.3.0-0\n// ~1.2.0, ~>1.2.0 --> >=1.2.0 <1.3.0-0\n// ~0.0.1 --> >=0.0.1 <0.1.0-0\nconst replaceTildes = (comp, options) =>\n comp.trim().split(/\\s+/).map((c) => {\n return replaceTilde(c, options)\n }).join(' ')\n\nconst replaceTilde = (comp, options) => {\n const r = options.loose ? re[t.TILDELOOSE] : re[t.TILDE]\n return comp.replace(r, (_, M, m, p, pr) => {\n debug('tilde', comp, _, M, m, p, pr)\n let ret\n\n if (isX(M)) {\n ret = ''\n } else if (isX(m)) {\n ret = `>=${M}.0.0 <${+M + 1}.0.0-0`\n } else if (isX(p)) {\n // ~1.2 == >=1.2.0 <1.3.0-0\n ret = `>=${M}.${m}.0 <${M}.${+m + 1}.0-0`\n } else if (pr) {\n debug('replaceTilde pr', pr)\n ret = `>=${M}.${m}.${p}-${pr\n } <${M}.${+m + 1}.0-0`\n } else {\n // ~1.2.3 == >=1.2.3 <1.3.0-0\n ret = `>=${M}.${m}.${p\n } <${M}.${+m + 1}.0-0`\n }\n\n debug('tilde return', ret)\n return ret\n })\n}\n\n// ^ --> * (any, kinda silly)\n// ^2, ^2.x, ^2.x.x --> >=2.0.0 <3.0.0-0\n// ^2.0, ^2.0.x --> >=2.0.0 <3.0.0-0\n// ^1.2, ^1.2.x --> >=1.2.0 <2.0.0-0\n// ^1.2.3 --> >=1.2.3 <2.0.0-0\n// ^1.2.0 --> >=1.2.0 <2.0.0-0\n// ^0.0.1 --> >=0.0.1 <0.0.2-0\n// ^0.1.0 --> >=0.1.0 <0.2.0-0\nconst replaceCarets = (comp, options) =>\n comp.trim().split(/\\s+/).map((c) => {\n return replaceCaret(c, options)\n }).join(' ')\n\nconst replaceCaret = (comp, options) => {\n debug('caret', comp, options)\n const r = options.loose ? re[t.CARETLOOSE] : re[t.CARET]\n const z = options.includePrerelease ? '-0' : ''\n return comp.replace(r, (_, M, m, p, pr) => {\n debug('caret', comp, _, M, m, p, pr)\n let ret\n\n if (isX(M)) {\n ret = ''\n } else if (isX(m)) {\n ret = `>=${M}.0.0${z} <${+M + 1}.0.0-0`\n } else if (isX(p)) {\n if (M === '0') {\n ret = `>=${M}.${m}.0${z} <${M}.${+m + 1}.0-0`\n } else {\n ret = `>=${M}.${m}.0${z} <${+M + 1}.0.0-0`\n }\n } else if (pr) {\n debug('replaceCaret pr', pr)\n if (M === '0') {\n if (m === '0') {\n ret = `>=${M}.${m}.${p}-${pr\n } <${M}.${m}.${+p + 1}-0`\n } else {\n ret = `>=${M}.${m}.${p}-${pr\n } <${M}.${+m + 1}.0-0`\n }\n } else {\n ret = `>=${M}.${m}.${p}-${pr\n } <${+M + 1}.0.0-0`\n }\n } else {\n debug('no pr')\n if (M === '0') {\n if (m === '0') {\n ret = `>=${M}.${m}.${p\n }${z} <${M}.${m}.${+p + 1}-0`\n } else {\n ret = `>=${M}.${m}.${p\n }${z} <${M}.${+m + 1}.0-0`\n }\n } else {\n ret = `>=${M}.${m}.${p\n } <${+M + 1}.0.0-0`\n }\n }\n\n debug('caret return', ret)\n return ret\n })\n}\n\nconst replaceXRanges = (comp, options) => {\n debug('replaceXRanges', comp, options)\n return comp.split(/\\s+/).map((c) => {\n return replaceXRange(c, options)\n }).join(' ')\n}\n\nconst replaceXRange = (comp, options) => {\n comp = comp.trim()\n const r = options.loose ? re[t.XRANGELOOSE] : re[t.XRANGE]\n return comp.replace(r, (ret, gtlt, M, m, p, pr) => {\n debug('xRange', comp, ret, gtlt, M, m, p, pr)\n const xM = isX(M)\n const xm = xM || isX(m)\n const xp = xm || isX(p)\n const anyX = xp\n\n if (gtlt === '=' && anyX) {\n gtlt = ''\n }\n\n // if we're including prereleases in the match, then we need\n // to fix this to -0, the lowest possible prerelease value\n pr = options.includePrerelease ? '-0' : ''\n\n if (xM) {\n if (gtlt === '>' || gtlt === '<') {\n // nothing is allowed\n ret = '<0.0.0-0'\n } else {\n // nothing is forbidden\n ret = '*'\n }\n } else if (gtlt && anyX) {\n // we know patch is an x, because we have any x at all.\n // replace X with 0\n if (xm) {\n m = 0\n }\n p = 0\n\n if (gtlt === '>') {\n // >1 => >=2.0.0\n // >1.2 => >=1.3.0\n gtlt = '>='\n if (xm) {\n M = +M + 1\n m = 0\n p = 0\n } else {\n m = +m + 1\n p = 0\n }\n } else if (gtlt === '<=') {\n // <=0.7.x is actually <0.8.0, since any 0.7.x should\n // pass. Similarly, <=7.x is actually <8.0.0, etc.\n gtlt = '<'\n if (xm) {\n M = +M + 1\n } else {\n m = +m + 1\n }\n }\n\n if (gtlt === '<') {\n pr = '-0'\n }\n\n ret = `${gtlt + M}.${m}.${p}${pr}`\n } else if (xm) {\n ret = `>=${M}.0.0${pr} <${+M + 1}.0.0-0`\n } else if (xp) {\n ret = `>=${M}.${m}.0${pr\n } <${M}.${+m + 1}.0-0`\n }\n\n debug('xRange return', ret)\n\n return ret\n })\n}\n\n// Because * is AND-ed with everything else in the comparator,\n// and '' means \"any version\", just remove the *s entirely.\nconst replaceStars = (comp, options) => {\n debug('replaceStars', comp, options)\n // Looseness is ignored here. star is always as loose as it gets!\n return comp.trim().replace(re[t.STAR], '')\n}\n\nconst replaceGTE0 = (comp, options) => {\n debug('replaceGTE0', comp, options)\n return comp.trim()\n .replace(re[options.includePrerelease ? t.GTE0PRE : t.GTE0], '')\n}\n\n// This function is passed to string.replace(re[t.HYPHENRANGE])\n// M, m, patch, prerelease, build\n// 1.2 - 3.4.5 => >=1.2.0 <=3.4.5\n// 1.2.3 - 3.4 => >=1.2.0 <3.5.0-0 Any 3.4.x will do\n// 1.2 - 3.4 => >=1.2.0 <3.5.0-0\nconst hyphenReplace = incPr => ($0,\n from, fM, fm, fp, fpr, fb,\n to, tM, tm, tp, tpr, tb) => {\n if (isX(fM)) {\n from = ''\n } else if (isX(fm)) {\n from = `>=${fM}.0.0${incPr ? '-0' : ''}`\n } else if (isX(fp)) {\n from = `>=${fM}.${fm}.0${incPr ? '-0' : ''}`\n } else if (fpr) {\n from = `>=${from}`\n } else {\n from = `>=${from}${incPr ? '-0' : ''}`\n }\n\n if (isX(tM)) {\n to = ''\n } else if (isX(tm)) {\n to = `<${+tM + 1}.0.0-0`\n } else if (isX(tp)) {\n to = `<${tM}.${+tm + 1}.0-0`\n } else if (tpr) {\n to = `<=${tM}.${tm}.${tp}-${tpr}`\n } else if (incPr) {\n to = `<${tM}.${tm}.${+tp + 1}-0`\n } else {\n to = `<=${to}`\n }\n\n return (`${from} ${to}`).trim()\n}\n\nconst testSet = (set, version, options) => {\n for (let i = 0; i < set.length; i++) {\n if (!set[i].test(version)) {\n return false\n }\n }\n\n if (version.prerelease.length && !options.includePrerelease) {\n // Find the set of versions that are allowed to have prereleases\n // For example, ^1.2.3-pr.1 desugars to >=1.2.3-pr.1 <2.0.0\n // That should allow `1.2.3-pr.2` to pass.\n // However, `1.2.4-alpha.notready` should NOT be allowed,\n // even though it's within the range set by the comparators.\n for (let i = 0; i < set.length; i++) {\n debug(set[i].semver)\n if (set[i].semver === Comparator.ANY) {\n continue\n }\n\n if (set[i].semver.prerelease.length > 0) {\n const allowed = set[i].semver\n if (allowed.major === version.major &&\n allowed.minor === version.minor &&\n allowed.patch === version.patch) {\n return true\n }\n }\n }\n\n // Version has a -pre, but it's not one of the ones we like.\n return false\n }\n\n return true\n}\n", "const ANY = Symbol('SemVer ANY')\n// hoisted class for cyclic dependency\nclass Comparator {\n static get ANY () {\n return ANY\n }\n\n constructor (comp, options) {\n options = parseOptions(options)\n\n if (comp instanceof Comparator) {\n if (comp.loose === !!options.loose) {\n return comp\n } else {\n comp = comp.value\n }\n }\n\n debug('comparator', comp, options)\n this.options = options\n this.loose = !!options.loose\n this.parse(comp)\n\n if (this.semver === ANY) {\n this.value = ''\n } else {\n this.value = this.operator + this.semver.version\n }\n\n debug('comp', this)\n }\n\n parse (comp) {\n const r = this.options.loose ? re[t.COMPARATORLOOSE] : re[t.COMPARATOR]\n const m = comp.match(r)\n\n if (!m) {\n throw new TypeError(`Invalid comparator: ${comp}`)\n }\n\n this.operator = m[1] !== undefined ? m[1] : ''\n if (this.operator === '=') {\n this.operator = ''\n }\n\n // if it literally is just '>' or '' then allow anything.\n if (!m[2]) {\n this.semver = ANY\n } else {\n this.semver = new SemVer(m[2], this.options.loose)\n }\n }\n\n toString () {\n return this.value\n }\n\n test (version) {\n debug('Comparator.test', version, this.options.loose)\n\n if (this.semver === ANY || version === ANY) {\n return true\n }\n\n if (typeof version === 'string') {\n try {\n version = new SemVer(version, this.options)\n } catch (er) {\n return false\n }\n }\n\n return cmp(version, this.operator, this.semver, this.options)\n }\n\n intersects (comp, options) {\n if (!(comp instanceof Comparator)) {\n throw new TypeError('a Comparator is required')\n }\n\n if (!options || typeof options !== 'object') {\n options = {\n loose: !!options,\n includePrerelease: false,\n }\n }\n\n if (this.operator === '') {\n if (this.value === '') {\n return true\n }\n return new Range(comp.value, options).test(this.value)\n } else if (comp.operator === '') {\n if (comp.value === '') {\n return true\n }\n return new Range(this.value, options).test(comp.semver)\n }\n\n const sameDirectionIncreasing =\n (this.operator === '>=' || this.operator === '>') &&\n (comp.operator === '>=' || comp.operator === '>')\n const sameDirectionDecreasing =\n (this.operator === '<=' || this.operator === '<') &&\n (comp.operator === '<=' || comp.operator === '<')\n const sameSemVer = this.semver.version === comp.semver.version\n const differentDirectionsInclusive =\n (this.operator === '>=' || this.operator === '<=') &&\n (comp.operator === '>=' || comp.operator === '<=')\n const oppositeDirectionsLessThan =\n cmp(this.semver, '<', comp.semver, options) &&\n (this.operator === '>=' || this.operator === '>') &&\n (comp.operator === '<=' || comp.operator === '<')\n const oppositeDirectionsGreaterThan =\n cmp(this.semver, '>', comp.semver, options) &&\n (this.operator === '<=' || this.operator === '<') &&\n (comp.operator === '>=' || comp.operator === '>')\n\n return (\n sameDirectionIncreasing ||\n sameDirectionDecreasing ||\n (sameSemVer && differentDirectionsInclusive) ||\n oppositeDirectionsLessThan ||\n oppositeDirectionsGreaterThan\n )\n }\n}\n\nmodule.exports = Comparator\n\nconst parseOptions = require('../internal/parse-options')\nconst { re, t } = require('../internal/re')\nconst cmp = require('../functions/cmp')\nconst debug = require('../internal/debug')\nconst SemVer = require('./semver')\nconst Range = require('./range')\n", "const Range = require('../classes/range')\nconst satisfies = (version, range, options) => {\n try {\n range = new Range(range, options)\n } catch (er) {\n return false\n }\n return range.test(version)\n}\nmodule.exports = satisfies\n", "const Range = require('../classes/range')\n\n// Mostly just for testing and legacy API reasons\nconst toComparators = (range, options) =>\n new Range(range, options).set\n .map(comp => comp.map(c => c.value).join(' ').trim().split(' '))\n\nmodule.exports = toComparators\n", "const SemVer = require('../classes/semver')\nconst Range = require('../classes/range')\n\nconst maxSatisfying = (versions, range, options) => {\n let max = null\n let maxSV = null\n let rangeObj = null\n try {\n rangeObj = new Range(range, options)\n } catch (er) {\n return null\n }\n versions.forEach((v) => {\n if (rangeObj.test(v)) {\n // satisfies(v, range, options)\n if (!max || maxSV.compare(v) === -1) {\n // compare(max, v, true)\n max = v\n maxSV = new SemVer(max, options)\n }\n }\n })\n return max\n}\nmodule.exports = maxSatisfying\n", "const SemVer = require('../classes/semver')\nconst Range = require('../classes/range')\nconst minSatisfying = (versions, range, options) => {\n let min = null\n let minSV = null\n let rangeObj = null\n try {\n rangeObj = new Range(range, options)\n } catch (er) {\n return null\n }\n versions.forEach((v) => {\n if (rangeObj.test(v)) {\n // satisfies(v, range, options)\n if (!min || minSV.compare(v) === 1) {\n // compare(min, v, true)\n min = v\n minSV = new SemVer(min, options)\n }\n }\n })\n return min\n}\nmodule.exports = minSatisfying\n", "const SemVer = require('../classes/semver')\nconst Range = require('../classes/range')\nconst gt = require('../functions/gt')\n\nconst minVersion = (range, loose) => {\n range = new Range(range, loose)\n\n let minver = new SemVer('0.0.0')\n if (range.test(minver)) {\n return minver\n }\n\n minver = new SemVer('0.0.0-0')\n if (range.test(minver)) {\n return minver\n }\n\n minver = null\n for (let i = 0; i < range.set.length; ++i) {\n const comparators = range.set[i]\n\n let setMin = null\n comparators.forEach((comparator) => {\n // Clone to avoid manipulating the comparator's semver object.\n const compver = new SemVer(comparator.semver.version)\n switch (comparator.operator) {\n case '>':\n if (compver.prerelease.length === 0) {\n compver.patch++\n } else {\n compver.prerelease.push(0)\n }\n compver.raw = compver.format()\n /* fallthrough */\n case '':\n case '>=':\n if (!setMin || gt(compver, setMin)) {\n setMin = compver\n }\n break\n case '<':\n case '<=':\n /* Ignore maximum versions */\n break\n /* istanbul ignore next */\n default:\n throw new Error(`Unexpected operation: ${comparator.operator}`)\n }\n })\n if (setMin && (!minver || gt(minver, setMin))) {\n minver = setMin\n }\n }\n\n if (minver && range.test(minver)) {\n return minver\n }\n\n return null\n}\nmodule.exports = minVersion\n", "const Range = require('../classes/range')\nconst validRange = (range, options) => {\n try {\n // Return '*' instead of '' so that truthiness works.\n // This will throw if it's invalid anyway\n return new Range(range, options).range || '*'\n } catch (er) {\n return null\n }\n}\nmodule.exports = validRange\n", "const SemVer = require('../classes/semver')\nconst Comparator = require('../classes/comparator')\nconst { ANY } = Comparator\nconst Range = require('../classes/range')\nconst satisfies = require('../functions/satisfies')\nconst gt = require('../functions/gt')\nconst lt = require('../functions/lt')\nconst lte = require('../functions/lte')\nconst gte = require('../functions/gte')\n\nconst outside = (version, range, hilo, options) => {\n version = new SemVer(version, options)\n range = new Range(range, options)\n\n let gtfn, ltefn, ltfn, comp, ecomp\n switch (hilo) {\n case '>':\n gtfn = gt\n ltefn = lte\n ltfn = lt\n comp = '>'\n ecomp = '>='\n break\n case '<':\n gtfn = lt\n ltefn = gte\n ltfn = gt\n comp = '<'\n ecomp = '<='\n break\n default:\n throw new TypeError('Must provide a hilo val of \"<\" or \">\"')\n }\n\n // If it satisfies the range it is not outside\n if (satisfies(version, range, options)) {\n return false\n }\n\n // From now on, variable terms are as if we're in \"gtr\" mode.\n // but note that everything is flipped for the \"ltr\" function.\n\n for (let i = 0; i < range.set.length; ++i) {\n const comparators = range.set[i]\n\n let high = null\n let low = null\n\n comparators.forEach((comparator) => {\n if (comparator.semver === ANY) {\n comparator = new Comparator('>=0.0.0')\n }\n high = high || comparator\n low = low || comparator\n if (gtfn(comparator.semver, high.semver, options)) {\n high = comparator\n } else if (ltfn(comparator.semver, low.semver, options)) {\n low = comparator\n }\n })\n\n // If the edge version comparator has a operator then our version\n // isn't outside it\n if (high.operator === comp || high.operator === ecomp) {\n return false\n }\n\n // If the lowest version comparator has an operator and our version\n // is less than it then it isn't higher than the range\n if ((!low.operator || low.operator === comp) &&\n ltefn(version, low.semver)) {\n return false\n } else if (low.operator === ecomp && ltfn(version, low.semver)) {\n return false\n }\n }\n return true\n}\n\nmodule.exports = outside\n", "// Determine if version is greater than all the versions possible in the range.\nconst outside = require('./outside')\nconst gtr = (version, range, options) => outside(version, range, '>', options)\nmodule.exports = gtr\n", "const outside = require('./outside')\n// Determine if version is less than all the versions possible in the range\nconst ltr = (version, range, options) => outside(version, range, '<', options)\nmodule.exports = ltr\n", "const Range = require('../classes/range')\nconst intersects = (r1, r2, options) => {\n r1 = new Range(r1, options)\n r2 = new Range(r2, options)\n return r1.intersects(r2)\n}\nmodule.exports = intersects\n", "// given a set of versions and a range, create a \"simplified\" range\n// that includes the same versions that the original range does\n// If the original range is shorter than the simplified one, return that.\nconst satisfies = require('../functions/satisfies.js')\nconst compare = require('../functions/compare.js')\nmodule.exports = (versions, range, options) => {\n const set = []\n let first = null\n let prev = null\n const v = versions.sort((a, b) => compare(a, b, options))\n for (const version of v) {\n const included = satisfies(version, range, options)\n if (included) {\n prev = version\n if (!first) {\n first = version\n }\n } else {\n if (prev) {\n set.push([first, prev])\n }\n prev = null\n first = null\n }\n }\n if (first) {\n set.push([first, null])\n }\n\n const ranges = []\n for (const [min, max] of set) {\n if (min === max) {\n ranges.push(min)\n } else if (!max && min === v[0]) {\n ranges.push('*')\n } else if (!max) {\n ranges.push(`>=${min}`)\n } else if (min === v[0]) {\n ranges.push(`<=${max}`)\n } else {\n ranges.push(`${min} - ${max}`)\n }\n }\n const simplified = ranges.join(' || ')\n const original = typeof range.raw === 'string' ? range.raw : String(range)\n return simplified.length < original.length ? simplified : range\n}\n", "const Range = require('../classes/range.js')\nconst Comparator = require('../classes/comparator.js')\nconst { ANY } = Comparator\nconst satisfies = require('../functions/satisfies.js')\nconst compare = require('../functions/compare.js')\n\n// Complex range `r1 || r2 || ...` is a subset of `R1 || R2 || ...` iff:\n// - Every simple range `r1, r2, ...` is a null set, OR\n// - Every simple range `r1, r2, ...` which is not a null set is a subset of\n// some `R1, R2, ...`\n//\n// Simple range `c1 c2 ...` is a subset of simple range `C1 C2 ...` iff:\n// - If c is only the ANY comparator\n// - If C is only the ANY comparator, return true\n// - Else if in prerelease mode, return false\n// - else replace c with `[>=0.0.0]`\n// - If C is only the ANY comparator\n// - if in prerelease mode, return true\n// - else replace C with `[>=0.0.0]`\n// - Let EQ be the set of = comparators in c\n// - If EQ is more than one, return true (null set)\n// - Let GT be the highest > or >= comparator in c\n// - Let LT be the lowest < or <= comparator in c\n// - If GT and LT, and GT.semver > LT.semver, return true (null set)\n// - If any C is a = range, and GT or LT are set, return false\n// - If EQ\n// - If GT, and EQ does not satisfy GT, return true (null set)\n// - If LT, and EQ does not satisfy LT, return true (null set)\n// - If EQ satisfies every C, return true\n// - Else return false\n// - If GT\n// - If GT.semver is lower than any > or >= comp in C, return false\n// - If GT is >=, and GT.semver does not satisfy every C, return false\n// - If GT.semver has a prerelease, and not in prerelease mode\n// - If no C has a prerelease and the GT.semver tuple, return false\n// - If LT\n// - If LT.semver is greater than any < or <= comp in C, return false\n// - If LT is <=, and LT.semver does not satisfy every C, return false\n// - If GT.semver has a prerelease, and not in prerelease mode\n// - If no C has a prerelease and the LT.semver tuple, return false\n// - Else return true\n\nconst subset = (sub, dom, options = {}) => {\n if (sub === dom) {\n return true\n }\n\n sub = new Range(sub, options)\n dom = new Range(dom, options)\n let sawNonNull = false\n\n OUTER: for (const simpleSub of sub.set) {\n for (const simpleDom of dom.set) {\n const isSub = simpleSubset(simpleSub, simpleDom, options)\n sawNonNull = sawNonNull || isSub !== null\n if (isSub) {\n continue OUTER\n }\n }\n // the null set is a subset of everything, but null simple ranges in\n // a complex range should be ignored. so if we saw a non-null range,\n // then we know this isn't a subset, but if EVERY simple range was null,\n // then it is a subset.\n if (sawNonNull) {\n return false\n }\n }\n return true\n}\n\nconst simpleSubset = (sub, dom, options) => {\n if (sub === dom) {\n return true\n }\n\n if (sub.length === 1 && sub[0].semver === ANY) {\n if (dom.length === 1 && dom[0].semver === ANY) {\n return true\n } else if (options.includePrerelease) {\n sub = [new Comparator('>=0.0.0-0')]\n } else {\n sub = [new Comparator('>=0.0.0')]\n }\n }\n\n if (dom.length === 1 && dom[0].semver === ANY) {\n if (options.includePrerelease) {\n return true\n } else {\n dom = [new Comparator('>=0.0.0')]\n }\n }\n\n const eqSet = new Set()\n let gt, lt\n for (const c of sub) {\n if (c.operator === '>' || c.operator === '>=') {\n gt = higherGT(gt, c, options)\n } else if (c.operator === '<' || c.operator === '<=') {\n lt = lowerLT(lt, c, options)\n } else {\n eqSet.add(c.semver)\n }\n }\n\n if (eqSet.size > 1) {\n return null\n }\n\n let gtltComp\n if (gt && lt) {\n gtltComp = compare(gt.semver, lt.semver, options)\n if (gtltComp > 0) {\n return null\n } else if (gtltComp === 0 && (gt.operator !== '>=' || lt.operator !== '<=')) {\n return null\n }\n }\n\n // will iterate one or zero times\n for (const eq of eqSet) {\n if (gt && !satisfies(eq, String(gt), options)) {\n return null\n }\n\n if (lt && !satisfies(eq, String(lt), options)) {\n return null\n }\n\n for (const c of dom) {\n if (!satisfies(eq, String(c), options)) {\n return false\n }\n }\n\n return true\n }\n\n let higher, lower\n let hasDomLT, hasDomGT\n // if the subset has a prerelease, we need a comparator in the superset\n // with the same tuple and a prerelease, or it's not a subset\n let needDomLTPre = lt &&\n !options.includePrerelease &&\n lt.semver.prerelease.length ? lt.semver : false\n let needDomGTPre = gt &&\n !options.includePrerelease &&\n gt.semver.prerelease.length ? gt.semver : false\n // exception: <1.2.3-0 is the same as <1.2.3\n if (needDomLTPre && needDomLTPre.prerelease.length === 1 &&\n lt.operator === '<' && needDomLTPre.prerelease[0] === 0) {\n needDomLTPre = false\n }\n\n for (const c of dom) {\n hasDomGT = hasDomGT || c.operator === '>' || c.operator === '>='\n hasDomLT = hasDomLT || c.operator === '<' || c.operator === '<='\n if (gt) {\n if (needDomGTPre) {\n if (c.semver.prerelease && c.semver.prerelease.length &&\n c.semver.major === needDomGTPre.major &&\n c.semver.minor === needDomGTPre.minor &&\n c.semver.patch === needDomGTPre.patch) {\n needDomGTPre = false\n }\n }\n if (c.operator === '>' || c.operator === '>=') {\n higher = higherGT(gt, c, options)\n if (higher === c && higher !== gt) {\n return false\n }\n } else if (gt.operator === '>=' && !satisfies(gt.semver, String(c), options)) {\n return false\n }\n }\n if (lt) {\n if (needDomLTPre) {\n if (c.semver.prerelease && c.semver.prerelease.length &&\n c.semver.major === needDomLTPre.major &&\n c.semver.minor === needDomLTPre.minor &&\n c.semver.patch === needDomLTPre.patch) {\n needDomLTPre = false\n }\n }\n if (c.operator === '<' || c.operator === '<=') {\n lower = lowerLT(lt, c, options)\n if (lower === c && lower !== lt) {\n return false\n }\n } else if (lt.operator === '<=' && !satisfies(lt.semver, String(c), options)) {\n return false\n }\n }\n if (!c.operator && (lt || gt) && gtltComp !== 0) {\n return false\n }\n }\n\n // if there was a < or >, and nothing in the dom, then must be false\n // UNLESS it was limited by another range in the other direction.\n // Eg, >1.0.0 <1.0.1 is still a subset of <2.0.0\n if (gt && hasDomLT && !lt && gtltComp !== 0) {\n return false\n }\n\n if (lt && hasDomGT && !gt && gtltComp !== 0) {\n return false\n }\n\n // we needed a prerelease range in a specific tuple, but didn't get one\n // then this isn't a subset. eg >=1.2.3-pre is not a subset of >=1.0.0,\n // because it includes prereleases in the 1.2.3 tuple\n if (needDomGTPre || needDomLTPre) {\n return false\n }\n\n return true\n}\n\n// >=1.2.3 is lower than >1.2.3\nconst higherGT = (a, b, options) => {\n if (!a) {\n return b\n }\n const comp = compare(a.semver, b.semver, options)\n return comp > 0 ? a\n : comp < 0 ? b\n : b.operator === '>' && a.operator === '>=' ? b\n : a\n}\n\n// <=1.2.3 is higher than <1.2.3\nconst lowerLT = (a, b, options) => {\n if (!a) {\n return b\n }\n const comp = compare(a.semver, b.semver, options)\n return comp < 0 ? a\n : comp > 0 ? b\n : b.operator === '<' && a.operator === '<=' ? b\n : a\n}\n\nmodule.exports = subset\n", "// just pre-load all the stuff that index.js lazily exports\nconst internalRe = require('./internal/re')\nconst constants = require('./internal/constants')\nconst SemVer = require('./classes/semver')\nconst identifiers = require('./internal/identifiers')\nconst parse = require('./functions/parse')\nconst valid = require('./functions/valid')\nconst clean = require('./functions/clean')\nconst inc = require('./functions/inc')\nconst diff = require('./functions/diff')\nconst major = require('./functions/major')\nconst minor = require('./functions/minor')\nconst patch = require('./functions/patch')\nconst prerelease = require('./functions/prerelease')\nconst compare = require('./functions/compare')\nconst rcompare = require('./functions/rcompare')\nconst compareLoose = require('./functions/compare-loose')\nconst compareBuild = require('./functions/compare-build')\nconst sort = require('./functions/sort')\nconst rsort = require('./functions/rsort')\nconst gt = require('./functions/gt')\nconst lt = require('./functions/lt')\nconst eq = require('./functions/eq')\nconst neq = require('./functions/neq')\nconst gte = require('./functions/gte')\nconst lte = require('./functions/lte')\nconst cmp = require('./functions/cmp')\nconst coerce = require('./functions/coerce')\nconst Comparator = require('./classes/comparator')\nconst Range = require('./classes/range')\nconst satisfies = require('./functions/satisfies')\nconst toComparators = require('./ranges/to-comparators')\nconst maxSatisfying = require('./ranges/max-satisfying')\nconst minSatisfying = require('./ranges/min-satisfying')\nconst minVersion = require('./ranges/min-version')\nconst validRange = require('./ranges/valid')\nconst outside = require('./ranges/outside')\nconst gtr = require('./ranges/gtr')\nconst ltr = require('./ranges/ltr')\nconst intersects = require('./ranges/intersects')\nconst simplifyRange = require('./ranges/simplify')\nconst subset = require('./ranges/subset')\nmodule.exports = {\n parse,\n valid,\n clean,\n inc,\n diff,\n major,\n minor,\n patch,\n prerelease,\n compare,\n rcompare,\n compareLoose,\n compareBuild,\n sort,\n rsort,\n gt,\n lt,\n eq,\n neq,\n gte,\n lte,\n cmp,\n coerce,\n Comparator,\n Range,\n satisfies,\n toComparators,\n maxSatisfying,\n minSatisfying,\n minVersion,\n validRange,\n outside,\n gtr,\n ltr,\n intersects,\n simplifyRange,\n subset,\n SemVer,\n re: internalRe.re,\n src: internalRe.src,\n tokens: internalRe.t,\n SEMVER_SPEC_VERSION: constants.SEMVER_SPEC_VERSION,\n compareIdentifiers: identifiers.compareIdentifiers,\n rcompareIdentifiers: identifiers.rcompareIdentifiers,\n}\n", "/* eslint-disable no-continue */\n/* eslint-disable no-unused-vars */\n/* eslint-disable no-param-reassign */\n/* eslint-disable no-prototype-builtins */\n\nconst errorClasses = {};\nconst deserializers = {};\n\nexport const addCustomErrorDeserializer = (\n name: string,\n deserializer: (obj: any) => any\n): void => {\n deserializers[name] = deserializer;\n};\n\nexport interface LedgerErrorConstructor\n extends ErrorConstructor {\n new (message?: string, fields?: F, options?: any): Error;\n (message?: string, fields?: F, options?: any): Error;\n readonly prototype: Error;\n}\n\nexport const createCustomErrorClass = <\n F extends { [key: string]: unknown },\n T extends LedgerErrorConstructor\n>(\n name: string\n): T => {\n class CustomErrorClass extends Error {\n cause?: Error;\n constructor(message?: string, fields?: F, options?: any) {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n super(message || name, options);\n // Set the prototype explicitly. See https://github.com/Microsoft/TypeScript/wiki/Breaking-Changes#extending-built-ins-like-error-array-and-map-may-no-longer-work\n Object.setPrototypeOf(this, CustomErrorClass.prototype);\n this.name = name;\n if (fields) {\n for (const k in fields) {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n this[k] = fields[k];\n }\n }\n if (\n options &&\n isObject(options) &&\n \"cause\" in options &&\n !(\"cause\" in this)\n ) {\n // .cause was specified but the superconstructor\n // did not create an instance property.\n const cause = options.cause;\n this.cause = cause;\n if (\"stack\" in cause) {\n this.stack = this.stack + \"\\nCAUSE: \" + cause.stack;\n }\n }\n }\n }\n\n errorClasses[name] = CustomErrorClass;\n\n return CustomErrorClass as unknown as T;\n};\n\nfunction isObject(value) {\n return typeof value === \"object\";\n}\n\n// inspired from https://github.com/programble/errio/blob/master/index.js\nexport const deserializeError = (object: any): Error | undefined => {\n if (object && typeof object === \"object\") {\n try {\n if (typeof object.message === \"string\") {\n const msg = JSON.parse(object.message);\n if (msg.message && msg.name) {\n object = msg;\n }\n }\n } catch (e) {\n // nothing\n }\n\n let error;\n if (typeof object.name === \"string\") {\n const { name } = object;\n const des = deserializers[name];\n if (des) {\n error = des(object);\n } else {\n let constructor = name === \"Error\" ? Error : errorClasses[name];\n\n if (!constructor) {\n console.warn(\"deserializing an unknown class '\" + name + \"'\");\n constructor = createCustomErrorClass(name);\n }\n\n error = Object.create(constructor.prototype);\n try {\n for (const prop in object) {\n if (object.hasOwnProperty(prop)) {\n error[prop] = object[prop];\n }\n }\n } catch (e) {\n // sometimes setting a property can fail (e.g. .name)\n }\n }\n } else {\n if (typeof object.message === \"string\") {\n error = new Error(object.message);\n }\n }\n\n if (error && !error.stack && Error.captureStackTrace) {\n Error.captureStackTrace(error, deserializeError);\n }\n return error;\n }\n return new Error(String(object));\n};\n\n// inspired from https://github.com/sindresorhus/serialize-error/blob/master/index.js\nexport const serializeError = (\n value: undefined | To | string | (() => unknown)\n): undefined | To | string => {\n if (!value) return value;\n if (typeof value === \"object\") {\n return destroyCircular(value, []);\n }\n if (typeof value === \"function\") {\n return `[Function: ${value.name || \"anonymous\"}]`;\n }\n return value;\n};\n\ninterface To {\n name?: string;\n message?: string;\n stack?: string;\n}\n\n// https://www.npmjs.com/package/destroy-circular\nfunction destroyCircular(from: To, seen: Array): To {\n const to: To = {};\n seen.push(from);\n for (const key of Object.keys(from)) {\n const value = from[key];\n if (typeof value === \"function\") {\n continue;\n }\n if (!value || typeof value !== \"object\") {\n to[key] = value;\n continue;\n }\n if (seen.indexOf(from[key]) === -1) {\n to[key] = destroyCircular(from[key], seen.slice(0));\n continue;\n }\n to[key] = \"[Circular]\";\n }\n if (typeof from.name === \"string\") {\n to.name = from.name;\n }\n if (typeof from.message === \"string\") {\n to.message = from.message;\n }\n if (typeof from.stack === \"string\") {\n to.stack = from.stack;\n }\n return to;\n}\n", "import {\n serializeError,\n deserializeError,\n createCustomErrorClass,\n addCustomErrorDeserializer,\n LedgerErrorConstructor,\n} from \"./helpers\";\n\nexport {\n serializeError,\n deserializeError,\n createCustomErrorClass,\n addCustomErrorDeserializer,\n};\n\nexport const AccountNameRequiredError = createCustomErrorClass(\n \"AccountNameRequired\"\n);\nexport const AccountNotSupported = createCustomErrorClass(\n \"AccountNotSupported\"\n);\nexport const AmountRequired = createCustomErrorClass(\"AmountRequired\");\nexport const BluetoothRequired = createCustomErrorClass(\"BluetoothRequired\");\nexport const BtcUnmatchedApp = createCustomErrorClass(\"BtcUnmatchedApp\");\nexport const CantOpenDevice = createCustomErrorClass(\"CantOpenDevice\");\nexport const CashAddrNotSupported = createCustomErrorClass(\n \"CashAddrNotSupported\"\n);\nexport const CurrencyNotSupported = createCustomErrorClass<\n { currencyName: string },\n LedgerErrorConstructor<{ currencyName: string }>\n>(\"CurrencyNotSupported\");\nexport const DeviceAppVerifyNotSupported = createCustomErrorClass(\n \"DeviceAppVerifyNotSupported\"\n);\nexport const DeviceGenuineSocketEarlyClose = createCustomErrorClass(\n \"DeviceGenuineSocketEarlyClose\"\n);\nexport const DeviceNotGenuineError = createCustomErrorClass(\"DeviceNotGenuine\");\nexport const DeviceOnDashboardExpected = createCustomErrorClass(\n \"DeviceOnDashboardExpected\"\n);\nexport const DeviceOnDashboardUnexpected = createCustomErrorClass(\n \"DeviceOnDashboardUnexpected\"\n);\nexport const DeviceInOSUExpected = createCustomErrorClass(\n \"DeviceInOSUExpected\"\n);\nexport const DeviceHalted = createCustomErrorClass(\"DeviceHalted\");\nexport const DeviceNameInvalid = createCustomErrorClass(\"DeviceNameInvalid\");\nexport const DeviceSocketFail = createCustomErrorClass(\"DeviceSocketFail\");\nexport const DeviceSocketNoBulkStatus = createCustomErrorClass(\n \"DeviceSocketNoBulkStatus\"\n);\nexport const LockedDeviceError = createCustomErrorClass(\"LockedDeviceError\");\nexport const DisconnectedDevice = createCustomErrorClass(\"DisconnectedDevice\");\nexport const DisconnectedDeviceDuringOperation = createCustomErrorClass(\n \"DisconnectedDeviceDuringOperation\"\n);\nexport const DeviceExtractOnboardingStateError = createCustomErrorClass(\n \"DeviceExtractOnboardingStateError\"\n);\nexport const DeviceOnboardingStatePollingError = createCustomErrorClass(\n \"DeviceOnboardingStatePollingError\"\n);\nexport const EnpointConfigError = createCustomErrorClass(\"EnpointConfig\");\nexport const EthAppPleaseEnableContractData = createCustomErrorClass(\n \"EthAppPleaseEnableContractData\"\n);\nexport const FeeEstimationFailed = createCustomErrorClass(\n \"FeeEstimationFailed\"\n);\nexport const FirmwareNotRecognized = createCustomErrorClass(\n \"FirmwareNotRecognized\"\n);\nexport const HardResetFail = createCustomErrorClass(\"HardResetFail\");\nexport const InvalidXRPTag = createCustomErrorClass(\"InvalidXRPTag\");\nexport const InvalidAddress = createCustomErrorClass(\"InvalidAddress\");\nexport const InvalidAddressBecauseDestinationIsAlsoSource =\n createCustomErrorClass(\"InvalidAddressBecauseDestinationIsAlsoSource\");\nexport const LatestMCUInstalledError = createCustomErrorClass(\n \"LatestMCUInstalledError\"\n);\nexport const UnknownMCU = createCustomErrorClass(\"UnknownMCU\");\nexport const LedgerAPIError = createCustomErrorClass(\"LedgerAPIError\");\nexport const LedgerAPIErrorWithMessage = createCustomErrorClass(\n \"LedgerAPIErrorWithMessage\"\n);\nexport const LedgerAPINotAvailable = createCustomErrorClass(\n \"LedgerAPINotAvailable\"\n);\nexport const ManagerAppAlreadyInstalledError = createCustomErrorClass(\n \"ManagerAppAlreadyInstalled\"\n);\nexport const ManagerAppRelyOnBTCError = createCustomErrorClass(\n \"ManagerAppRelyOnBTC\"\n);\nexport const ManagerAppDepInstallRequired = createCustomErrorClass(\n \"ManagerAppDepInstallRequired\"\n);\nexport const ManagerAppDepUninstallRequired = createCustomErrorClass(\n \"ManagerAppDepUninstallRequired\"\n);\nexport const ManagerDeviceLockedError = createCustomErrorClass(\n \"ManagerDeviceLocked\"\n);\nexport const ManagerFirmwareNotEnoughSpaceError = createCustomErrorClass(\n \"ManagerFirmwareNotEnoughSpace\"\n);\nexport const ManagerNotEnoughSpaceError = createCustomErrorClass(\n \"ManagerNotEnoughSpace\"\n);\nexport const ManagerUninstallBTCDep = createCustomErrorClass(\n \"ManagerUninstallBTCDep\"\n);\nexport const NetworkDown = createCustomErrorClass(\"NetworkDown\");\nexport const NoAddressesFound = createCustomErrorClass(\"NoAddressesFound\");\nexport const NotEnoughBalance = createCustomErrorClass(\"NotEnoughBalance\");\nexport const NotEnoughBalanceToDelegate = createCustomErrorClass(\n \"NotEnoughBalanceToDelegate\"\n);\nexport const NotEnoughBalanceInParentAccount = createCustomErrorClass(\n \"NotEnoughBalanceInParentAccount\"\n);\nexport const NotEnoughSpendableBalance = createCustomErrorClass(\n \"NotEnoughSpendableBalance\"\n);\nexport const NotEnoughBalanceBecauseDestinationNotCreated =\n createCustomErrorClass(\"NotEnoughBalanceBecauseDestinationNotCreated\");\nexport const NoAccessToCamera = createCustomErrorClass(\"NoAccessToCamera\");\nexport const NotEnoughGas = createCustomErrorClass(\"NotEnoughGas\");\nexport const NotSupportedLegacyAddress = createCustomErrorClass(\n \"NotSupportedLegacyAddress\"\n);\nexport const GasLessThanEstimate = createCustomErrorClass(\n \"GasLessThanEstimate\"\n);\nexport const PriorityFeeTooLow = createCustomErrorClass(\"PriorityFeeTooLow\");\nexport const PriorityFeeTooHigh = createCustomErrorClass(\"PriorityFeeTooHigh\");\nexport const PriorityFeeHigherThanMaxFee = createCustomErrorClass(\n \"PriorityFeeHigherThanMaxFee\"\n);\nexport const MaxFeeTooLow = createCustomErrorClass(\"MaxFeeTooLow\");\nexport const PasswordsDontMatchError =\n createCustomErrorClass(\"PasswordsDontMatch\");\nexport const PasswordIncorrectError =\n createCustomErrorClass(\"PasswordIncorrect\");\nexport const RecommendSubAccountsToEmpty = createCustomErrorClass(\n \"RecommendSubAccountsToEmpty\"\n);\nexport const RecommendUndelegation = createCustomErrorClass(\n \"RecommendUndelegation\"\n);\nexport const TimeoutTagged = createCustomErrorClass(\"TimeoutTagged\");\nexport const UnexpectedBootloader = createCustomErrorClass(\n \"UnexpectedBootloader\"\n);\nexport const MCUNotGenuineToDashboard = createCustomErrorClass(\n \"MCUNotGenuineToDashboard\"\n);\nexport const RecipientRequired = createCustomErrorClass(\"RecipientRequired\");\nexport const UnavailableTezosOriginatedAccountReceive = createCustomErrorClass(\n \"UnavailableTezosOriginatedAccountReceive\"\n);\nexport const UnavailableTezosOriginatedAccountSend = createCustomErrorClass(\n \"UnavailableTezosOriginatedAccountSend\"\n);\nexport const UpdateFetchFileFail = createCustomErrorClass(\n \"UpdateFetchFileFail\"\n);\nexport const UpdateIncorrectHash = createCustomErrorClass(\n \"UpdateIncorrectHash\"\n);\nexport const UpdateIncorrectSig = createCustomErrorClass(\"UpdateIncorrectSig\");\nexport const UpdateYourApp = createCustomErrorClass(\"UpdateYourApp\");\nexport const UserRefusedDeviceNameChange = createCustomErrorClass(\n \"UserRefusedDeviceNameChange\"\n);\nexport const UserRefusedAddress = createCustomErrorClass(\"UserRefusedAddress\");\nexport const UserRefusedFirmwareUpdate = createCustomErrorClass(\n \"UserRefusedFirmwareUpdate\"\n);\nexport const UserRefusedAllowManager = createCustomErrorClass(\n \"UserRefusedAllowManager\"\n);\nexport const UserRefusedOnDevice = createCustomErrorClass(\n \"UserRefusedOnDevice\"\n); // TODO rename because it's just for transaction refusal\nexport const TransportOpenUserCancelled = createCustomErrorClass(\n \"TransportOpenUserCancelled\"\n);\nexport const TransportInterfaceNotAvailable = createCustomErrorClass(\n \"TransportInterfaceNotAvailable\"\n);\nexport const TransportRaceCondition = createCustomErrorClass(\n \"TransportRaceCondition\"\n);\nexport const TransportWebUSBGestureRequired = createCustomErrorClass(\n \"TransportWebUSBGestureRequired\"\n);\nexport const DeviceShouldStayInApp = createCustomErrorClass(\n \"DeviceShouldStayInApp\"\n);\nexport const WebsocketConnectionError = createCustomErrorClass(\n \"WebsocketConnectionError\"\n);\nexport const WebsocketConnectionFailed = createCustomErrorClass(\n \"WebsocketConnectionFailed\"\n);\nexport const WrongDeviceForAccount = createCustomErrorClass(\n \"WrongDeviceForAccount\"\n);\nexport const WrongAppForCurrency = createCustomErrorClass(\n \"WrongAppForCurrency\"\n);\nexport const ETHAddressNonEIP = createCustomErrorClass(\"ETHAddressNonEIP\");\nexport const CantScanQRCode = createCustomErrorClass(\"CantScanQRCode\");\nexport const FeeNotLoaded = createCustomErrorClass(\"FeeNotLoaded\");\nexport const FeeRequired = createCustomErrorClass(\"FeeRequired\");\nexport const FeeTooHigh = createCustomErrorClass(\"FeeTooHigh\");\nexport const DustLimit = createCustomErrorClass(\"DustLimit\");\nexport const PendingOperation = createCustomErrorClass(\"PendingOperation\");\nexport const SyncError = createCustomErrorClass(\"SyncError\");\nexport const PairingFailed = createCustomErrorClass(\"PairingFailed\");\nexport const GenuineCheckFailed = createCustomErrorClass(\"GenuineCheckFailed\");\nexport const LedgerAPI4xx = createCustomErrorClass(\"LedgerAPI4xx\");\nexport const LedgerAPI5xx = createCustomErrorClass(\"LedgerAPI5xx\");\nexport const FirmwareOrAppUpdateRequired = createCustomErrorClass(\n \"FirmwareOrAppUpdateRequired\"\n);\n\nexport const LanguageNotFound = createCustomErrorClass(\"LanguageNotFound\");\n\n// db stuff, no need to translate\nexport const NoDBPathGiven = createCustomErrorClass(\"NoDBPathGiven\");\nexport const DBWrongPassword = createCustomErrorClass(\"DBWrongPassword\");\nexport const DBNotReset = createCustomErrorClass(\"DBNotReset\");\n\n/**\n * Type of a Transport error used to represent all equivalent errors coming from all possible implementation of Transport\n */\nexport enum HwTransportErrorType {\n Unknown = 0,\n BleLocationServicesDisabled = 1,\n BleBluetoothUnauthorized = 2,\n BleScanStartFailed = 3,\n}\n\n/**\n * Represents an error coming from any Transport implementation.\n *\n * Needed to map a specific implementation error into an error that\n * can be managed by any code unaware of the specific Transport implementation\n * that was used.\n */\nexport class HwTransportError extends Error {\n type: HwTransportErrorType;\n\n constructor(type: HwTransportErrorType, message: string) {\n super(message);\n this.name = \"HwTransportError\";\n this.type = type;\n\n // Needed as long as we target < ES6\n Object.setPrototypeOf(this, HwTransportError.prototype);\n }\n}\n\n/**\n * TransportError is used for any generic transport errors.\n * e.g. Error thrown when data received by exchanges are incorrect or if exchanged failed to communicate with the device for various reason.\n */\nexport class TransportError extends Error {\n id: string;\n constructor(message: string, id: string) {\n const name = \"TransportError\";\n super(message || name);\n this.name = name;\n this.message = message;\n this.stack = new Error().stack;\n this.id = id;\n }\n}\n\naddCustomErrorDeserializer(\n \"TransportError\",\n (e) => new TransportError(e.message, e.id)\n);\n\nexport const StatusCodes = {\n ACCESS_CONDITION_NOT_FULFILLED: 0x9804,\n ALGORITHM_NOT_SUPPORTED: 0x9484,\n CLA_NOT_SUPPORTED: 0x6e00,\n CODE_BLOCKED: 0x9840,\n CODE_NOT_INITIALIZED: 0x9802,\n COMMAND_INCOMPATIBLE_FILE_STRUCTURE: 0x6981,\n CONDITIONS_OF_USE_NOT_SATISFIED: 0x6985,\n CONTRADICTION_INVALIDATION: 0x9810,\n CONTRADICTION_SECRET_CODE_STATUS: 0x9808,\n CUSTOM_IMAGE_BOOTLOADER: 0x662f,\n CUSTOM_IMAGE_EMPTY: 0x662e,\n FILE_ALREADY_EXISTS: 0x6a89,\n FILE_NOT_FOUND: 0x9404,\n GP_AUTH_FAILED: 0x6300,\n HALTED: 0x6faa,\n INCONSISTENT_FILE: 0x9408,\n INCORRECT_DATA: 0x6a80,\n INCORRECT_LENGTH: 0x6700,\n INCORRECT_P1_P2: 0x6b00,\n INS_NOT_SUPPORTED: 0x6d00,\n INVALID_KCV: 0x9485,\n INVALID_OFFSET: 0x9402,\n LICENSING: 0x6f42,\n LOCKED_DEVICE: 0x5515,\n MAX_VALUE_REACHED: 0x9850,\n MEMORY_PROBLEM: 0x9240,\n MISSING_CRITICAL_PARAMETER: 0x6800,\n NO_EF_SELECTED: 0x9400,\n NOT_ENOUGH_MEMORY_SPACE: 0x6a84,\n OK: 0x9000,\n PIN_REMAINING_ATTEMPTS: 0x63c0,\n REFERENCED_DATA_NOT_FOUND: 0x6a88,\n SECURITY_STATUS_NOT_SATISFIED: 0x6982,\n TECHNICAL_PROBLEM: 0x6f00,\n UNKNOWN_APDU: 0x6d02,\n USER_REFUSED_ON_DEVICE: 0x5501,\n};\n\nexport function getAltStatusMessage(code: number): string | undefined | null {\n switch (code) {\n // improve text of most common errors\n case 0x6700:\n return \"Incorrect length\";\n case 0x6800:\n return \"Missing critical parameter\";\n case 0x6982:\n return \"Security not satisfied (dongle locked or have invalid access rights)\";\n case 0x6985:\n return \"Condition of use not satisfied (denied by the user?)\";\n case 0x6a80:\n return \"Invalid data received\";\n case 0x6b00:\n return \"Invalid parameter received\";\n case 0x5515:\n return \"Locked device\";\n }\n if (0x6f00 <= code && code <= 0x6fff) {\n return \"Internal error, please report\";\n }\n}\n\n/**\n * Error thrown when a device returned a non success status.\n * the error.statusCode is one of the `StatusCodes` exported by this library.\n */\nexport function TransportStatusError(statusCode: number): void {\n const statusText =\n Object.keys(StatusCodes).find((k) => StatusCodes[k] === statusCode) ||\n \"UNKNOWN_ERROR\";\n const smsg = getAltStatusMessage(statusCode) || statusText;\n const statusCodeStr = statusCode.toString(16);\n const message = `Ledger device: ${smsg} (0x${statusCodeStr})`;\n\n // Maps to a LockedDeviceError\n if (statusCode === StatusCodes.LOCKED_DEVICE) {\n throw new LockedDeviceError(message);\n }\n\n this.name = \"TransportStatusError\";\n this.message = message;\n this.stack = new Error().stack;\n this.statusCode = statusCode;\n this.statusText = statusText;\n}\nTransportStatusError.prototype = new Error();\n\naddCustomErrorDeserializer(\n \"TransportStatusError\",\n (e) => new TransportStatusError(e.statusCode)\n);\n", "import EventEmitter from \"events\";\nimport type { DeviceModel } from \"@ledgerhq/devices\";\nimport {\n TransportRaceCondition,\n TransportError,\n StatusCodes,\n getAltStatusMessage,\n TransportStatusError,\n} from \"@ledgerhq/errors\";\nexport {\n TransportError,\n TransportStatusError,\n StatusCodes,\n getAltStatusMessage,\n};\n\n/**\n */\nexport type Subscription = {\n unsubscribe: () => void;\n};\n\n/**\n */\nexport type Device = any; // Should be a union type of all possible Device object's shape\n\nexport type DescriptorEventType = \"add\" | \"remove\";\n/**\n * A \"descriptor\" is a parameter that is specific to the implementation, and can be an ID, file path, or URL.\n * type: add or remove event\n * descriptor: a parameter that can be passed to open(descriptor)\n * deviceModel: device info on the model (is it a nano s, nano x, ...)\n * device: transport specific device info\n */\nexport interface DescriptorEvent {\n type: DescriptorEventType;\n descriptor: Descriptor;\n deviceModel?: DeviceModel | null | undefined;\n device?: Device;\n}\n\n/**\n * Observer generic type, following the Observer pattern\n */\nexport type Observer = Readonly<{\n next: (event: EventType) => unknown;\n error: (e: EventError) => unknown;\n complete: () => unknown;\n}>;\n\n/**\n * The Transport class defines a generic interface for communicating with a Ledger hardware wallet.\n * There are different kind of transports based on the technology (channels like U2F, HID, Bluetooth, Webusb) and environment (Node, Web,...).\n * It is an abstract class that needs to be implemented.\n */\nexport default class Transport {\n exchangeTimeout = 30000;\n unresponsiveTimeout = 15000;\n deviceModel: DeviceModel | null | undefined = null;\n\n /**\n * Check if the transport is supported on the current platform/browser.\n * @returns {Promise} A promise that resolves with a boolean indicating support.\n */\n static readonly isSupported: () => Promise;\n\n /**\n * List all available descriptors for the transport.\n * For a better granularity, checkout `listen()`.\n *\n * @returns {Promise>} A promise that resolves with an array of descriptors.\n * @example\n * TransportFoo.list().then(descriptors => ...)\n */\n static readonly list: () => Promise>;\n\n /**\n * Listen for device events for the transport. The method takes an observer of DescriptorEvent and returns a Subscription.\n * A DescriptorEvent is an object containing a \"descriptor\" and a \"type\" field. The \"type\" field can be \"add\" or \"remove\", and the \"descriptor\" field can be passed to the \"open\" method.\n * The \"listen\" method will first emit all currently connected devices and then will emit events as they occur, such as when a USB device is plugged in or a Bluetooth device becomes discoverable.\n * @param {Observer>} observer - An object with \"next\", \"error\", and \"complete\" functions, following the observer pattern.\n * @returns {Subscription} A Subscription object on which you can call \".unsubscribe()\" to stop listening to descriptors.\n * @example\n const sub = TransportFoo.listen({\n next: e => {\n if (e.type===\"add\") {\n sub.unsubscribe();\n const transport = await TransportFoo.open(e.descriptor);\n ...\n }\n },\n error: error => {},\n complete: () => {}\n })\n */\n static readonly listen: (\n observer: Observer>\n ) => Subscription;\n\n /**\n * Attempt to create a Transport instance with a specific descriptor.\n * @param {any} descriptor - The descriptor to open the transport with.\n * @param {number} timeout - An optional timeout for the transport connection.\n * @returns {Promise} A promise that resolves with a Transport instance.\n * @example\n TransportFoo.open(descriptor).then(transport => ...)\n */\n static readonly open: (\n descriptor?: any,\n timeout?: number\n ) => Promise;\n\n /**\n * Send data to the device using a low level API.\n * It's recommended to use the \"send\" method for a higher level API.\n * @param {Buffer} apdu - The data to send.\n * @returns {Promise} A promise that resolves with the response data from the device.\n */\n exchange(_apdu: Buffer): Promise {\n throw new Error(\"exchange not implemented\");\n }\n\n /**\n * Send apdus in batch to the device using a low level API.\n * The default implementation is to call exchange for each apdu.\n * @param {Array} apdus - array of apdus to send.\n * @param {Observer} observer - an observer that will receive the response of each apdu.\n * @returns {Subscription} A Subscription object on which you can call \".unsubscribe()\" to stop sending apdus.\n */\n exchangeBulk(apdus: Buffer[], observer: Observer): Subscription {\n let unsubscribed = false;\n const unsubscribe = () => {\n unsubscribed = true;\n };\n\n const main = async () => {\n if (unsubscribed) return;\n for (const apdu of apdus) {\n const r = await this.exchange(apdu);\n if (unsubscribed) return;\n const status = r.readUInt16BE(r.length - 2);\n if (status !== StatusCodes.OK) {\n throw new TransportStatusError(status);\n }\n observer.next(r);\n }\n };\n\n main().then(\n () => !unsubscribed && observer.complete(),\n (e) => !unsubscribed && observer.error(e)\n );\n\n return { unsubscribe };\n }\n\n /**\n * Set the \"scramble key\" for the next data exchanges with the device.\n * Each app can have a different scramble key and it is set internally during instantiation.\n * @param {string} key - The scramble key to set.\n * @deprecated This method is no longer needed for modern transports and should be migrated away from.\n */\n setScrambleKey(_key: string) {}\n\n /**\n * Close the connection with the device.\n * @returns {Promise} A promise that resolves when the transport is closed.\n */\n close(): Promise {\n return Promise.resolve();\n }\n\n _events = new EventEmitter();\n\n /**\n * Listen for an event on the transport instance.\n * Transport implementations may have specific events. Common events include:\n * \"disconnect\" : triggered when the transport is disconnected.\n * @param {string} eventName - The name of the event to listen for.\n * @param {(...args: Array) => any} cb - The callback function to be invoked when the event occurs.\n */\n on(eventName: string, cb: (...args: Array) => any): void {\n this._events.on(eventName, cb);\n }\n\n /**\n * Stop listening to an event on an instance of transport.\n */\n off(eventName: string, cb: (...args: Array) => any): void {\n this._events.removeListener(eventName, cb);\n }\n\n emit(event: string, ...args: any): void {\n this._events.emit(event, ...args);\n }\n\n /**\n * Enable or not logs of the binary exchange\n */\n setDebugMode() {\n console.warn(\n \"setDebugMode is deprecated. use @ledgerhq/logs instead. No logs are emitted in this anymore.\"\n );\n }\n\n /**\n * Set a timeout (in milliseconds) for the exchange call. Only some transport might implement it. (e.g. U2F)\n */\n setExchangeTimeout(exchangeTimeout: number): void {\n this.exchangeTimeout = exchangeTimeout;\n }\n\n /**\n * Define the delay before emitting \"unresponsive\" on an exchange that does not respond\n */\n setExchangeUnresponsiveTimeout(unresponsiveTimeout: number): void {\n this.unresponsiveTimeout = unresponsiveTimeout;\n }\n\n /**\n * Send data to the device using the higher level API.\n * @param {number} cla - The instruction class for the command.\n * @param {number} ins - The instruction code for the command.\n * @param {number} p1 - The first parameter for the instruction.\n * @param {number} p2 - The second parameter for the instruction.\n * @param {Buffer} data - The data to be sent. Defaults to an empty buffer.\n * @param {Array} statusList - A list of acceptable status codes for the response. Defaults to [StatusCodes.OK].\n * @returns {Promise} A promise that resolves with the response data from the device.\n */\n send = async (\n cla: number,\n ins: number,\n p1: number,\n p2: number,\n data: Buffer = Buffer.alloc(0),\n statusList: Array = [StatusCodes.OK]\n ): Promise => {\n if (data.length >= 256) {\n throw new TransportError(\n \"data.length exceed 256 bytes limit. Got: \" + data.length,\n \"DataLengthTooBig\"\n );\n }\n\n const response = await this.exchange(\n Buffer.concat([\n Buffer.from([cla, ins, p1, p2]),\n Buffer.from([data.length]),\n data,\n ])\n );\n const sw = response.readUInt16BE(response.length - 2);\n\n if (!statusList.some((s) => s === sw)) {\n throw new TransportStatusError(sw);\n }\n\n return response;\n };\n\n /**\n * create() allows to open the first descriptor available or\n * throw if there is none or if timeout is reached.\n * This is a light helper, alternative to using listen() and open() (that you may need for any more advanced usecase)\n * @example\n TransportFoo.create().then(transport => ...)\n */\n static create(\n openTimeout = 3000,\n listenTimeout?: number\n ): Promise {\n return new Promise((resolve, reject) => {\n let found = false;\n const sub = this.listen({\n next: (e) => {\n found = true;\n if (sub) sub.unsubscribe();\n if (listenTimeoutId) clearTimeout(listenTimeoutId);\n this.open(e.descriptor, openTimeout).then(resolve, reject);\n },\n error: (e) => {\n if (listenTimeoutId) clearTimeout(listenTimeoutId);\n reject(e);\n },\n complete: () => {\n if (listenTimeoutId) clearTimeout(listenTimeoutId);\n\n if (!found) {\n reject(\n new TransportError(\n this.ErrorMessage_NoDeviceFound,\n \"NoDeviceFound\"\n )\n );\n }\n },\n });\n const listenTimeoutId = listenTimeout\n ? setTimeout(() => {\n sub.unsubscribe();\n reject(\n new TransportError(\n this.ErrorMessage_ListenTimeout,\n \"ListenTimeout\"\n )\n );\n }, listenTimeout)\n : null;\n });\n }\n\n exchangeBusyPromise: Promise | null | undefined;\n exchangeAtomicImpl = async (\n f: () => Promise\n ): Promise => {\n if (this.exchangeBusyPromise) {\n throw new TransportRaceCondition(\n \"An action was already pending on the Ledger device. Please deny or reconnect.\"\n );\n }\n\n let resolveBusy;\n const busyPromise: Promise = new Promise((r) => {\n resolveBusy = r;\n });\n this.exchangeBusyPromise = busyPromise;\n let unresponsiveReached = false;\n const timeout = setTimeout(() => {\n unresponsiveReached = true;\n this.emit(\"unresponsive\");\n }, this.unresponsiveTimeout);\n\n try {\n const res = await f();\n\n if (unresponsiveReached) {\n this.emit(\"responsive\");\n }\n\n return res;\n } finally {\n clearTimeout(timeout);\n if (resolveBusy) resolveBusy();\n this.exchangeBusyPromise = null;\n }\n };\n\n decorateAppAPIMethods(\n self: Record,\n methods: Array,\n scrambleKey: string\n ) {\n for (const methodName of methods) {\n self[methodName] = this.decorateAppAPIMethod(\n methodName,\n self[methodName],\n self,\n scrambleKey\n );\n }\n }\n\n _appAPIlock: string | null = null;\n\n decorateAppAPIMethod(\n methodName: string,\n f: (...args: A) => Promise,\n ctx: any,\n scrambleKey: string\n ): (...args: A) => Promise {\n return async (...args) => {\n const { _appAPIlock } = this;\n\n if (_appAPIlock) {\n return Promise.reject(\n new TransportError(\n \"Ledger Device is busy (lock \" + _appAPIlock + \")\",\n \"TransportLocked\"\n )\n );\n }\n\n try {\n this._appAPIlock = methodName;\n this.setScrambleKey(scrambleKey);\n return await f.apply(ctx, args);\n } finally {\n this._appAPIlock = null;\n }\n };\n }\n\n static ErrorMessage_ListenTimeout = \"No Ledger device found (timeout)\";\n static ErrorMessage_NoDeviceFound = \"No Ledger device found\";\n}\n", "import { TransportError } from \"@ledgerhq/errors\";\nexport type ResponseAcc =\n | {\n data: Buffer;\n dataLength: number;\n sequence: number;\n }\n | null\n | undefined;\nconst Tag = 0x05;\n\nfunction asUInt16BE(value) {\n const b = Buffer.alloc(2);\n b.writeUInt16BE(value, 0);\n return b;\n}\n\nconst initialAcc = {\n data: Buffer.alloc(0),\n dataLength: 0,\n sequence: 0,\n};\n\n/**\n *\n */\nconst createHIDframing = (channel: number, packetSize: number) => {\n return {\n makeBlocks(apdu: Buffer): Buffer[] {\n let data = Buffer.concat([asUInt16BE(apdu.length), apdu]);\n const blockSize = packetSize - 5;\n const nbBlocks = Math.ceil(data.length / blockSize);\n data = Buffer.concat([\n data, // fill data with padding\n Buffer.alloc(nbBlocks * blockSize - data.length + 1).fill(0),\n ]);\n const blocks: Buffer[] = [];\n\n for (let i = 0; i < nbBlocks; i++) {\n const head = Buffer.alloc(5);\n head.writeUInt16BE(channel, 0);\n head.writeUInt8(Tag, 2);\n head.writeUInt16BE(i, 3);\n const chunk = data.slice(i * blockSize, (i + 1) * blockSize);\n blocks.push(Buffer.concat([head, chunk]));\n }\n\n return blocks;\n },\n\n reduceResponse(acc: ResponseAcc, chunk: Buffer): ResponseAcc {\n let { data, dataLength, sequence } = acc || initialAcc;\n\n if (chunk.readUInt16BE(0) !== channel) {\n throw new TransportError(\"Invalid channel\", \"InvalidChannel\");\n }\n\n if (chunk.readUInt8(2) !== Tag) {\n throw new TransportError(\"Invalid tag\", \"InvalidTag\");\n }\n\n if (chunk.readUInt16BE(3) !== sequence) {\n throw new TransportError(\"Invalid sequence\", \"InvalidSequence\");\n }\n\n if (!acc) {\n dataLength = chunk.readUInt16BE(5);\n }\n\n sequence++;\n const chunkData = chunk.slice(acc ? 5 : 7);\n data = Buffer.concat([data, chunkData]);\n\n if (data.length > dataLength) {\n data = data.slice(0, dataLength);\n }\n\n return {\n data,\n dataLength,\n sequence,\n };\n },\n\n getReducedResult(acc: ResponseAcc): Buffer | null | undefined {\n if (acc && acc.dataLength === acc.data.length) {\n return acc.data;\n }\n },\n };\n};\n\nexport default createHIDframing;\n", "import semver from \"semver\";\n\n/**\n * The USB product IDs will be defined as MMII, encoding a model (MM) and an interface bitfield (II)\n *\n ** Model\n * Ledger Nano S : 0x10\n * Ledger Blue : 0x00\n * Ledger Nano X : 0x40\n *\n ** Interface support bitfield\n * Generic HID : 0x01\n * Keyboard HID : 0x02\n * U2F : 0x04\n * CCID : 0x08\n * WebUSB : 0x10\n */\nexport const IIGenericHID = 0x01;\nexport const IIKeyboardHID = 0x02;\nexport const IIU2F = 0x04;\nexport const IICCID = 0x08;\nexport const IIWebUSB = 0x10;\n\nexport enum DeviceModelId {\n blue = \"blue\",\n nanoS = \"nanoS\",\n nanoSP = \"nanoSP\",\n nanoX = \"nanoX\",\n stax = \"stax\",\n}\n\nconst devices: { [key in DeviceModelId]: DeviceModel } = {\n [DeviceModelId.blue]: {\n id: DeviceModelId.blue,\n productName: \"Ledger\u00A0Blue\",\n productIdMM: 0x00,\n legacyUsbProductId: 0x0000,\n usbOnly: true,\n memorySize: 480 * 1024,\n masks: [0x31000000, 0x31010000],\n getBlockSize: (_firwareVersion: string): number => 4 * 1024,\n },\n [DeviceModelId.nanoS]: {\n id: DeviceModelId.nanoS,\n productName: \"Ledger\u00A0Nano\u00A0S\",\n productIdMM: 0x10,\n legacyUsbProductId: 0x0001,\n usbOnly: true,\n memorySize: 320 * 1024,\n masks: [0x31100000],\n getBlockSize: (firmwareVersion: string): number =>\n semver.lt(semver.coerce(firmwareVersion) ?? \"\", \"2.0.0\")\n ? 4 * 1024\n : 2 * 1024,\n },\n [DeviceModelId.nanoSP]: {\n id: DeviceModelId.nanoSP,\n productName: \"Ledger Nano S Plus\",\n productIdMM: 0x50,\n legacyUsbProductId: 0x0005,\n usbOnly: true,\n memorySize: 1536 * 1024,\n masks: [0x33100000],\n getBlockSize: (_firmwareVersion: string): number => 32,\n },\n [DeviceModelId.nanoX]: {\n id: DeviceModelId.nanoX,\n productName: \"Ledger\u00A0Nano\u00A0X\",\n productIdMM: 0x40,\n legacyUsbProductId: 0x0004,\n usbOnly: false,\n memorySize: 2 * 1024 * 1024,\n masks: [0x33000000],\n getBlockSize: (_firwareVersion: string): number => 4 * 1024,\n bluetoothSpec: [\n {\n serviceUuid: \"13d63400-2c97-0004-0000-4c6564676572\",\n notifyUuid: \"13d63400-2c97-0004-0001-4c6564676572\",\n writeUuid: \"13d63400-2c97-0004-0002-4c6564676572\",\n writeCmdUuid: \"13d63400-2c97-0004-0003-4c6564676572\",\n },\n ],\n },\n [DeviceModelId.stax]: {\n id: DeviceModelId.stax,\n productName: \"Ledger\u00A0Stax\",\n productIdMM: 0x60,\n legacyUsbProductId: 0x0006,\n usbOnly: false,\n memorySize: 1536 * 1024,\n masks: [0x33200000],\n getBlockSize: (_firmwareVersion: string): number => 32,\n bluetoothSpec: [\n {\n serviceUuid: \"13d63400-2c97-6004-0000-4c6564676572\",\n notifyUuid: \"13d63400-2c97-6004-0001-4c6564676572\",\n writeUuid: \"13d63400-2c97-6004-0002-4c6564676572\",\n writeCmdUuid: \"13d63400-2c97-6004-0003-4c6564676572\",\n },\n ],\n },\n};\n\nconst productMap = {\n Blue: DeviceModelId.blue,\n \"Nano S\": DeviceModelId.nanoS,\n \"Nano S Plus\": DeviceModelId.nanoSP,\n \"Nano X\": DeviceModelId.nanoX,\n Stax: DeviceModelId.stax,\n};\n\nconst devicesList: DeviceModel[] = Object.values(devices);\n\n/**\n *\n */\nexport const ledgerUSBVendorId = 0x2c97;\n\n/**\n *\n */\nexport const getDeviceModel = (id: DeviceModelId): DeviceModel => {\n const info = devices[id];\n if (!info) throw new Error(\"device '\" + id + \"' does not exist\");\n return info;\n};\n\n/**\n * Given a `targetId`, return the deviceModel associated to it,\n * based on the first two bytes.\n */\nexport const identifyTargetId = (\n targetId: number\n): DeviceModel | null | undefined => {\n const deviceModel = devicesList.find(({ masks }) =>\n masks.find((mask) => (targetId & 0xffff0000) === mask)\n );\n\n return deviceModel;\n};\n\n/**\n *\n */\nexport const identifyUSBProductId = (\n usbProductId: number\n): DeviceModel | null | undefined => {\n const legacy = devicesList.find((d) => d.legacyUsbProductId === usbProductId);\n if (legacy) return legacy;\n const mm = usbProductId >> 8;\n const deviceModel = devicesList.find((d) => d.productIdMM === mm);\n return deviceModel;\n};\n\nexport const identifyProductName = (\n productName: string\n): DeviceModel | null | undefined => {\n const deviceModel = devicesList.find((d) => d.id === productMap[productName]);\n return deviceModel;\n};\n\nconst bluetoothServices: string[] = [];\nconst serviceUuidToInfos: Record = {};\n\nfor (const id in devices) {\n const deviceModel = devices[id];\n const { bluetoothSpec } = deviceModel;\n if (bluetoothSpec) {\n for (let i = 0; i < bluetoothSpec.length; i++) {\n const spec = bluetoothSpec[i];\n bluetoothServices.push(spec.serviceUuid);\n serviceUuidToInfos[spec.serviceUuid] = serviceUuidToInfos[\n spec.serviceUuid.replace(/-/g, \"\")\n ] = {\n deviceModel,\n ...spec,\n };\n }\n }\n}\n\n/**\n *\n */\nexport const getBluetoothServiceUuids = (): string[] => bluetoothServices;\n\n/**\n *\n */\nexport const getInfosForServiceUuid = (\n uuid: string\n): BluetoothInfos | undefined => serviceUuidToInfos[uuid.toLowerCase()];\n\n/**\n *\n */\nexport interface DeviceModel {\n id: DeviceModelId;\n productName: string;\n productIdMM: number;\n legacyUsbProductId: number;\n usbOnly: boolean;\n memorySize: number;\n masks: number[];\n // blockSize: number, // THIS FIELD IS DEPRECATED, use getBlockSize\n getBlockSize: (firmwareVersion: string) => number;\n bluetoothSpec?: {\n serviceUuid: string;\n writeUuid: string;\n writeCmdUuid: string;\n notifyUuid: string;\n }[];\n}\n\n/**\n *\n */\nexport interface BluetoothInfos {\n deviceModel: DeviceModel;\n serviceUuid: string;\n writeUuid: string;\n writeCmdUuid: string;\n notifyUuid: string;\n}\n", "import { ledgerUSBVendorId } from \"@ledgerhq/devices\";\n\nconst ledgerDevices = [\n {\n vendorId: ledgerUSBVendorId,\n },\n];\n\nexport async function requestLedgerDevice(): Promise {\n const device = await navigator.usb.requestDevice({\n filters: ledgerDevices,\n });\n return device;\n}\n\nexport async function getLedgerDevices(): Promise {\n const devices = await navigator.usb.getDevices();\n return devices.filter((d) => d.vendorId === ledgerUSBVendorId);\n}\n\nexport async function getFirstLedgerDevice(): Promise {\n const existingDevices = await getLedgerDevices();\n if (existingDevices.length > 0) return existingDevices[0];\n return requestLedgerDevice();\n}\n\nexport const isSupported = (): Promise =>\n Promise.resolve(\n !!navigator &&\n !!navigator.usb &&\n typeof navigator.usb.getDevices === \"function\"\n );\n", "import Transport from \"@ledgerhq/hw-transport\";\nimport type {\n Observer,\n DescriptorEvent,\n Subscription,\n} from \"@ledgerhq/hw-transport\";\nimport hidFraming from \"@ledgerhq/devices/hid-framing\";\nimport { identifyUSBProductId } from \"@ledgerhq/devices\";\nimport type { DeviceModel } from \"@ledgerhq/devices\";\nimport { log } from \"@ledgerhq/logs\";\nimport {\n TransportOpenUserCancelled,\n TransportInterfaceNotAvailable,\n TransportWebUSBGestureRequired,\n DisconnectedDeviceDuringOperation,\n DisconnectedDevice,\n} from \"@ledgerhq/errors\";\nimport {\n getLedgerDevices,\n getFirstLedgerDevice,\n requestLedgerDevice,\n isSupported,\n} from \"./webusb\";\n\nconst configurationValue = 1;\nconst endpointNumber = 3;\n\n/**\n * WebUSB Transport implementation\n * @example\n * import TransportWebUSB from \"@ledgerhq/hw-transport-webusb\";\n * ...\n * TransportWebUSB.create().then(transport => ...)\n */\nexport default class TransportWebUSB extends Transport {\n device: USBDevice;\n deviceModel: DeviceModel | null | undefined;\n channel = Math.floor(Math.random() * 0xffff);\n packetSize = 64;\n interfaceNumber: number;\n\n constructor(device: USBDevice, interfaceNumber: number) {\n super();\n this.device = device;\n this.interfaceNumber = interfaceNumber;\n this.deviceModel = identifyUSBProductId(device.productId);\n }\n\n /**\n * Check if WebUSB transport is supported.\n */\n static isSupported = isSupported;\n\n /**\n * List the WebUSB devices that was previously authorized by the user.\n */\n static list = getLedgerDevices;\n\n /**\n * Actively listen to WebUSB devices and emit ONE device\n * that was either accepted before, if not it will trigger the native permission UI.\n *\n * Important: it must be called in the context of a UI click!\n */\n static listen = (\n observer: Observer>\n ): Subscription => {\n let unsubscribed = false;\n getFirstLedgerDevice().then(\n (device) => {\n if (!unsubscribed) {\n const deviceModel = identifyUSBProductId(device.productId);\n observer.next({\n type: \"add\",\n descriptor: device,\n deviceModel,\n });\n observer.complete();\n }\n },\n (error) => {\n if (\n window.DOMException &&\n error instanceof window.DOMException &&\n error.code === 18\n ) {\n observer.error(new TransportWebUSBGestureRequired(error.message));\n } else {\n observer.error(new TransportOpenUserCancelled(error.message));\n }\n }\n );\n\n function unsubscribe() {\n unsubscribed = true;\n }\n\n return {\n unsubscribe,\n };\n };\n\n /**\n * Similar to create() except it will always display the device permission (even if some devices are already accepted).\n */\n static async request() {\n const device = await requestLedgerDevice();\n return TransportWebUSB.open(device);\n }\n\n /**\n * Similar to create() except it will never display the device permission (it returns a Promise, null if it fails to find a device).\n */\n static async openConnected() {\n const devices = await getLedgerDevices();\n if (devices.length === 0) return null;\n return TransportWebUSB.open(devices[0]);\n }\n\n /**\n * Create a Ledger transport with a USBDevice\n */\n static async open(device: USBDevice) {\n await device.open();\n\n if (device.configuration === null) {\n await device.selectConfiguration(configurationValue);\n }\n\n await gracefullyResetDevice(device);\n const iface = device.configurations[0].interfaces.find(({ alternates }) =>\n alternates.some((a) => a.interfaceClass === 255)\n );\n\n if (!iface) {\n throw new TransportInterfaceNotAvailable(\n \"No WebUSB interface found for your Ledger device. Please upgrade firmware or contact techsupport.\"\n );\n }\n\n const interfaceNumber = iface.interfaceNumber;\n\n try {\n await device.claimInterface(interfaceNumber);\n } catch (e: any) {\n await device.close();\n throw new TransportInterfaceNotAvailable(e.message);\n }\n\n const transport = new TransportWebUSB(device, interfaceNumber);\n\n const onDisconnect = (e) => {\n if (device === e.device) {\n // $FlowFixMe\n navigator.usb.removeEventListener(\"disconnect\", onDisconnect);\n\n transport._emitDisconnect(new DisconnectedDevice());\n }\n };\n\n // $FlowFixMe\n navigator.usb.addEventListener(\"disconnect\", onDisconnect);\n return transport;\n }\n\n _disconnectEmitted = false;\n _emitDisconnect = (e: Error) => {\n if (this._disconnectEmitted) return;\n this._disconnectEmitted = true;\n this.emit(\"disconnect\", e);\n };\n\n /**\n * Release the transport device\n */\n async close(): Promise {\n await this.exchangeBusyPromise;\n await this.device.releaseInterface(this.interfaceNumber);\n await gracefullyResetDevice(this.device);\n await this.device.close();\n }\n\n /**\n * Exchange with the device using APDU protocol.\n * @param apdu\n * @returns a promise of apdu response\n */\n async exchange(apdu: Buffer): Promise {\n const b = await this.exchangeAtomicImpl(async () => {\n const { channel, packetSize } = this;\n log(\"apdu\", \"=> \" + apdu.toString(\"hex\"));\n const framing = hidFraming(channel, packetSize);\n // Write...\n const blocks = framing.makeBlocks(apdu);\n\n for (let i = 0; i < blocks.length; i++) {\n await this.device.transferOut(endpointNumber, blocks[i]);\n }\n\n // Read...\n let result;\n let acc;\n\n while (!(result = framing.getReducedResult(acc))) {\n const r = await this.device.transferIn(endpointNumber, packetSize);\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n const buffer = Buffer.from(r.data.buffer);\n acc = framing.reduceResponse(acc, buffer);\n }\n\n log(\"apdu\", \"<= \" + result.toString(\"hex\"));\n return result;\n }).catch((e) => {\n if (e && e.message && e.message.includes(\"disconnected\")) {\n this._emitDisconnect(e);\n\n throw new DisconnectedDeviceDuringOperation(e.message);\n }\n\n throw e;\n });\n\n return b as Buffer;\n }\n\n setScrambleKey() {}\n}\n\nasync function gracefullyResetDevice(device: USBDevice) {\n try {\n await device.reset();\n } catch (err) {\n console.warn(err);\n }\n}\n", "import Btc from '@ledgerhq/hw-app-btc'\nimport useTransports from './providers/transports'\nimport { BitcoinLedgerSignerOptions } from './interfaces/BitcoinLedgerSignerOptions'\nimport { TransactionInit } from './interfaces/TransactionInit'\n\nconst defaultPath = '84\\'/0\\'/0\\'/0/0' // Legacy addresses: '44\\'/0\\'/0\\'/0/0', Segwit: '49\\'/0\\'/0\\'/0/0', Native Segwit: '84\\'/0\\'/0\\'/0/0'\n// const defaultPath = '84\\'/1\\'/0\\'/0/0' // TestNetPath\nconst defaultType = 'usb'\nconst { createUSBTransport, createSpeculosTransport } = useTransports()\nconst transportCreators = {\n 'usb': createUSBTransport,\n 'speculos': createSpeculosTransport\n}\n\nexport default class BitcoinLedgerSigner {\n readonly type: string\n readonly path: string\n readonly baseURL?: string\n _btc?: Promise\n\n constructor(options: BitcoinLedgerSignerOptions) {\n if (!options.type) options.type = defaultType\n if (!options.path) options.path = defaultPath\n this.type = options.type\n this.path = options.path\n this.baseURL = options.baseURL\n\n const transportCreatorType = this.type as keyof typeof transportCreators\n const transportCreator = transportCreators[transportCreatorType]\n if (!transportCreator) console.log('Unknown or unsupported type', this.type)\n this._btc = transportCreator(this.baseURL).then(transport => {\n // TODO: Add conditional for testnet\n return new Btc({ transport, currency: 'bitcoin_testnet' })\n return new Btc({ transport, currency: 'bitcoin' })\n })\n }\n\n _retry(callback: (btc: Btc) => Promise, timeout?: number): Promise {\n // The async-promise-executor is ok since _retry handles necessary errors \n // eslint-disable-next-line no-async-promise-executor\n return new Promise(async (resolve, reject) => {\n const ledgerConnectionError = 'Please make sure Ledger is ready and retry'\n if (timeout && timeout > 0) {\n setTimeout(() => reject(new Error(ledgerConnectionError)), timeout)\n }\n\n const btc = await this._btc as Btc\n\n // Wait up to 5 seconds\n for (let i = 0; i < 50; i++) {\n try {\n const result = await callback(btc)\n return resolve(result)\n } catch (error) {\n if ((error as { id: string }).id !== 'TransportLocked') {\n return reject(error)\n }\n }\n await new Promise((resolve) => {\n setTimeout(resolve, 100)\n })\n }\n\n return reject(new Error(ledgerConnectionError))\n })\n }\n\n async getAddress(): Promise {\n const { bitcoinAddress: address } = await this._retry((btc) => btc.getWalletPublicKey(\n this.path,\n { verify: false, format: 'bech32'}\n ))\n return address\n }\n\n async signMessage(message: string): Promise {\n try {\n const messageHex = Buffer.from(message).toString('hex')\n const result = await this._retry((btc) => btc.signMessage(\n this.path,\n messageHex\n ))\n const v = result['v'] + 27 + 4\n const signature = Buffer.from(v.toString(16) + result['r'] + result['s'], 'hex').toString('base64')\n console.log('Signature : ' + signature)\n return signature\n } catch (err) {\n console.log(err)\n throw err\n }\n }\n\n // async signTransaction(path: string, transaction: any) {\n // }\n\n async sendTransaction({from, to, value}: TransactionInit): Promise {\n try {\n // Build the transaction object using splitTransaction to then pass into getTrustedInput\n // Create a transaction hex string\n const transactionHex = 'f85f49b51366f7150d2adea6544bc256743707a38e2bdfbf839349ba1ff2875c'\n const isSegwitSupported = false\n const tx = await this._retry(async (btc) => btc.splitTransaction(\n transactionHex,\n isSegwitSupported\n ))\n return new Promise(resolve => resolve(''))\n // const output_index = 1\n // const inputs = [[tx, output_index]]\n // Get trusted input (returns a string) using getTrustedInput\n // const trustedInput = await this._retry((btc) => btc.getTrustedInput(\n // 0,\n\n // ))\n \n // Build the CreateTransactionArg and pass it to createPaymentTransaction\n } catch (err) {\n console.log('Error in bitcoin-ledger-signer sendTransaction: ', err)\n throw err\n }\n }\n}", "import { crypto } from \"bitcoinjs-lib\";\nimport { pointCompress } from \"tiny-secp256k1\";\nimport {\n getXpubComponents,\n hardenedPathOf,\n pathArrayToString,\n pathStringToArray,\n pubkeyFromXpub,\n} from \"./bip32\";\nimport { BufferReader } from \"./buffertools\";\nimport type { CreateTransactionArg } from \"./createTransaction\";\nimport type { AddressFormat } from \"./getWalletPublicKey\";\nimport {\n AccountType,\n p2pkh,\n p2tr,\n p2wpkh,\n p2wpkhWrapped,\n SpendingCondition,\n} from \"./newops/accounttype\";\nimport { AppClient as Client } from \"./newops/appClient\";\nimport {\n createKey,\n DefaultDescriptorTemplate,\n WalletPolicy,\n} from \"./newops/policy\";\nimport { extract } from \"./newops/psbtExtractor\";\nimport { finalize } from \"./newops/psbtFinalizer\";\nimport { psbtIn, PsbtV2 } from \"./newops/psbtv2\";\nimport { serializeTransaction } from \"./serializeTransaction\";\nimport type { Transaction } from \"./types\";\n\n/**\n * This class implements the same interface as BtcOld (formerly\n * named Btc), but interacts with Bitcoin hardware app version 2+\n * which uses a totally new APDU protocol. This new\n * protocol is documented at\n * https://github.com/LedgerHQ/app-bitcoin-new/blob/master/doc/bitcoin.md\n *\n * Since the interface must remain compatible with BtcOld, the methods\n * of this class are quite clunky, because it needs to adapt legacy\n * input data into the PSBT process. In the future, a new interface should\n * be developed that exposes PSBT to the outer world, which would render\n * a much cleaner implementation.\n */\nexport default class BtcNew {\n constructor(private client: Client) {}\n\n /**\n * This is a new method that allow users to get an xpub at a standard path.\n * Standard paths are described at\n * https://github.com/LedgerHQ/app-bitcoin-new/blob/master/doc/bitcoin.md#description\n *\n * This boils down to paths (N=0 for Bitcoin, N=1 for Testnet):\n * M/44'/N'/x'/**\n * M/48'/N'/x'/y'/**\n * M/49'/N'/x'/**\n * M/84'/N'/x'/**\n * M/86'/N'/x'/**\n *\n * The method was added because of added security in the hardware app v2+. The\n * new hardware app will allow export of any xpub up to and including the\n * deepest hardened key of standard derivation paths, whereas the old app\n * would allow export of any key.\n *\n * This caused an issue for callers of this class, who only had\n * getWalletPublicKey() to call which means they have to constuct xpub\n * themselves:\n *\n * Suppose a user of this class wants to create an account xpub on a standard\n * path, M/44'/0'/Z'. The user must get the parent key fingerprint (see BIP32)\n * by requesting the parent key M/44'/0'. The new app won't allow that, because\n * it only allows exporting deepest level hardened path. So the options are to\n * allow requesting M/44'/0' from the app, or to add a new function\n * \"getWalletXpub\".\n *\n * We opted for adding a new function, which can greatly simplify client code.\n */\n async getWalletXpub({\n path,\n xpubVersion,\n }: {\n path: string;\n xpubVersion: number;\n }): Promise {\n const pathElements: number[] = pathStringToArray(path);\n const xpub = await this.client.getExtendedPubkey(false, pathElements);\n const xpubComponents = getXpubComponents(xpub);\n if (xpubComponents.version != xpubVersion) {\n throw new Error(\n `Expected xpub version ${xpubVersion} doesn't match the xpub version from the device ${xpubComponents.version}`\n );\n }\n return xpub;\n }\n\n /**\n * This method returns a public key, a bitcoin address, and and a chaincode\n * for a specific derivation path.\n *\n * Limitation: If the path is not a leaf node of a standard path, the address\n * will be the empty string \"\", see this.getWalletAddress() for details.\n */\n async getWalletPublicKey(\n path: string,\n opts?: {\n verify?: boolean;\n format?: AddressFormat;\n }\n ): Promise<{\n publicKey: string;\n bitcoinAddress: string;\n chainCode: string;\n }> {\n if (!isPathNormal(path)) {\n throw Error(`non-standard path: ${path}`);\n }\n const pathElements: number[] = pathStringToArray(path);\n const xpub = await this.client.getExtendedPubkey(false, pathElements);\n\n const display = opts?.verify ?? false;\n\n const address = await this.getWalletAddress(\n pathElements,\n descrTemplFrom(opts?.format ?? \"legacy\"),\n display\n );\n const components = getXpubComponents(xpub);\n const uncompressedPubkey = Buffer.from(\n pointCompress(components.pubkey, false)\n );\n return {\n publicKey: uncompressedPubkey.toString(\"hex\"),\n bitcoinAddress: address,\n chainCode: components.chaincode.toString(\"hex\"),\n };\n }\n\n /**\n * Get an address for the specified path.\n *\n * If display is true, we must get the address from the device, which would require\n * us to determine WalletPolicy. This requires two *extra* queries to the device, one\n * for the account xpub and one for master key fingerprint.\n *\n * If display is false we *could* generate the address ourselves, but chose to\n * get it from the device to save development time. However, it shouldn't take\n * too much time to implement local address generation.\n *\n * Moreover, if the path is not for a leaf, ie accountPath+/X/Y, there is no\n * way to get the address from the device. In this case we have to create it\n * ourselves, but we don't at this time, and instead return an empty (\"\") address.\n */\n private async getWalletAddress(\n pathElements: number[],\n descrTempl: DefaultDescriptorTemplate,\n display: boolean\n ): Promise {\n const accountPath = hardenedPathOf(pathElements);\n if (accountPath.length + 2 != pathElements.length) {\n return \"\";\n }\n const accountXpub = await this.client.getExtendedPubkey(false, accountPath);\n const masterFingerprint = await this.client.getMasterFingerprint();\n const policy = new WalletPolicy(\n descrTempl,\n createKey(masterFingerprint, accountPath, accountXpub)\n );\n const changeAndIndex = pathElements.slice(-2, pathElements.length);\n return this.client.getWalletAddress(\n policy,\n Buffer.alloc(32, 0),\n changeAndIndex[0],\n changeAndIndex[1],\n display\n );\n }\n\n /**\n * Build and sign a transaction. See Btc.createPaymentTransaction for\n * details on how to use this method.\n *\n * This method will convert the legacy arguments, CreateTransactionArg, into\n * a psbt which is finally signed and finalized, and the extracted fully signed\n * transaction is returned.\n */\n async createPaymentTransaction(arg: CreateTransactionArg): Promise {\n const inputCount = arg.inputs.length;\n if (inputCount == 0) {\n throw Error(\"No inputs\");\n }\n const psbt = new PsbtV2();\n // The master fingerprint is needed when adding BIP32 derivation paths on\n // the psbt.\n const masterFp = await this.client.getMasterFingerprint();\n\n const accountType = accountTypeFromArg(arg, psbt, masterFp);\n\n if (arg.lockTime != undefined) {\n // The signer will assume locktime 0 if unset\n psbt.setGlobalFallbackLocktime(arg.lockTime);\n }\n psbt.setGlobalInputCount(inputCount);\n psbt.setGlobalPsbtVersion(2);\n psbt.setGlobalTxVersion(2);\n\n let notifyCount = 0;\n const progress = () => {\n if (!arg.onDeviceStreaming) return;\n arg.onDeviceStreaming({\n total: 2 * inputCount,\n index: notifyCount,\n progress: ++notifyCount / (2 * inputCount),\n });\n };\n\n let accountXpub = \"\";\n let accountPath: number[] = [];\n for (let i = 0; i < inputCount; i++) {\n progress();\n const pathElems: number[] = pathStringToArray(arg.associatedKeysets[i]);\n if (accountXpub == \"\") {\n // We assume all inputs belong to the same account so we set\n // the account xpub and path based on the first input.\n accountPath = pathElems.slice(0, -2);\n accountXpub = await this.client.getExtendedPubkey(false, accountPath);\n }\n await this.setInput(\n psbt,\n i,\n arg.inputs[i],\n pathElems,\n accountType,\n masterFp,\n arg.sigHashType\n );\n }\n\n const outputsConcat = Buffer.from(arg.outputScriptHex, \"hex\");\n const outputsBufferReader = new BufferReader(outputsConcat);\n const outputCount = outputsBufferReader.readVarInt();\n psbt.setGlobalOutputCount(outputCount);\n const changeData = await this.outputScriptAt(\n accountPath,\n accountType,\n arg.changePath\n );\n // If the caller supplied a changePath, we must make sure there actually is\n // a change output. If no change output found, we'll throw an error.\n let changeFound = !changeData;\n for (let i = 0; i < outputCount; i++) {\n const amount = Number(outputsBufferReader.readUInt64());\n const outputScript = outputsBufferReader.readVarSlice();\n psbt.setOutputAmount(i, amount);\n psbt.setOutputScript(i, outputScript);\n\n // We won't know if we're paying to ourselves, because there's no\n // information in arg to support multiple \"change paths\". One exception is\n // if there are multiple outputs to the change address.\n const isChange =\n changeData && outputScript.equals(changeData?.cond.scriptPubKey);\n if (isChange) {\n changeFound = true;\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const changePath = pathStringToArray(arg.changePath!);\n const pubkey = changeData.pubkey;\n\n accountType.setOwnOutput(i, changeData.cond, [pubkey], [changePath]);\n }\n }\n if (!changeFound) {\n throw new Error(\n \"Change script not found among outputs! \" +\n changeData?.cond.scriptPubKey.toString(\"hex\")\n );\n }\n\n const key = createKey(masterFp, accountPath, accountXpub);\n const p = new WalletPolicy(accountType.getDescriptorTemplate(), key);\n // This is cheating, because it's not actually requested on the\n // device yet, but it will be, soonish.\n if (arg.onDeviceSignatureRequested) arg.onDeviceSignatureRequested();\n\n let firstSigned = false;\n // This callback will be called once for each signature yielded.\n const progressCallback = () => {\n if (!firstSigned) {\n firstSigned = true;\n arg.onDeviceSignatureGranted && arg.onDeviceSignatureGranted();\n }\n progress();\n };\n\n await this.signPsbt(psbt, p, progressCallback);\n finalize(psbt);\n const serializedTx = extract(psbt);\n return serializedTx.toString(\"hex\");\n }\n\n /**\n * Calculates an output script along with public key and possible redeemScript\n * from a path and accountType. The accountPath must be a prefix of path.\n *\n * @returns an object with output script (property \"script\"), redeemScript (if\n * wrapped p2wpkh), and pubkey at provided path. The values of these three\n * properties depend on the accountType used.\n */\n private async outputScriptAt(\n accountPath: number[],\n accountType: AccountType,\n path: string | undefined\n ): Promise<{ cond: SpendingCondition; pubkey: Buffer } | undefined> {\n if (!path) return undefined;\n const pathElems = pathStringToArray(path);\n // Make sure path is in our account, otherwise something fishy is probably\n // going on.\n for (let i = 0; i < accountPath.length; i++) {\n if (accountPath[i] != pathElems[i]) {\n throw new Error(\n `Path ${path} not in account ${pathArrayToString(accountPath)}`\n );\n }\n }\n const xpub = await this.client.getExtendedPubkey(false, pathElems);\n const pubkey = pubkeyFromXpub(xpub);\n const cond = accountType.spendingCondition([pubkey]);\n return { cond, pubkey };\n }\n\n /**\n * Adds relevant data about an input to the psbt. This includes sequence,\n * previous txid, output index, spent UTXO, redeem script for wrapped p2wpkh,\n * public key and its derivation path.\n */\n private async setInput(\n psbt: PsbtV2,\n i: number,\n input: [\n Transaction,\n number,\n string | null | undefined,\n number | null | undefined\n ],\n pathElements: number[],\n accountType: AccountType,\n masterFP: Buffer,\n sigHashType?: number\n ): Promise {\n const inputTx = input[0];\n const spentOutputIndex = input[1];\n // redeemScript will be null for wrapped p2wpkh, we need to create it\n // ourselves. But if set, it should be used.\n const redeemScript = input[2] ? Buffer.from(input[2], \"hex\") : undefined;\n const sequence = input[3];\n if (sequence != undefined) {\n psbt.setInputSequence(i, sequence);\n }\n if (sigHashType != undefined) {\n psbt.setInputSighashType(i, sigHashType);\n }\n const inputTxBuffer = serializeTransaction(inputTx, true);\n const inputTxid = crypto.hash256(inputTxBuffer);\n const xpubBase58 = await this.client.getExtendedPubkey(false, pathElements);\n\n const pubkey = pubkeyFromXpub(xpubBase58);\n if (!inputTx.outputs)\n throw Error(\"Missing outputs array in transaction to sign\");\n const spentTxOutput = inputTx.outputs[spentOutputIndex];\n const spendCondition: SpendingCondition = {\n scriptPubKey: spentTxOutput.script,\n redeemScript: redeemScript,\n };\n const spentOutput = { cond: spendCondition, amount: spentTxOutput.amount };\n accountType.setInput(\n i,\n inputTxBuffer,\n spentOutput,\n [pubkey],\n [pathElements]\n );\n\n psbt.setInputPreviousTxId(i, inputTxid);\n psbt.setInputOutputIndex(i, spentOutputIndex);\n }\n\n /**\n * This implements the \"Signer\" role of the BIP370 transaction signing\n * process.\n *\n * It ssks the hardware device to sign the a psbt using the specified wallet\n * policy. This method assumes BIP32 derived keys are used for all inputs, see\n * comment in-line. The signatures returned from the hardware device is added\n * to the appropriate input fields of the PSBT.\n */\n private async signPsbt(\n psbt: PsbtV2,\n walletPolicy: WalletPolicy,\n progressCallback: () => void\n ): Promise {\n const sigs: Map = await this.client.signPsbt(\n psbt,\n walletPolicy,\n Buffer.alloc(32, 0),\n progressCallback\n );\n sigs.forEach((v, k) => {\n // Note: Looking at BIP32 derivation does not work in the generic case,\n // since some inputs might not have a BIP32-derived pubkey.\n const pubkeys = psbt.getInputKeyDatas(k, psbtIn.BIP32_DERIVATION);\n let pubkey;\n if (pubkeys.length != 1) {\n // No legacy BIP32_DERIVATION, assume we're using taproot.\n pubkey = psbt.getInputKeyDatas(k, psbtIn.TAP_BIP32_DERIVATION);\n if (pubkey.length == 0) {\n throw Error(`Missing pubkey derivation for input ${k}`);\n }\n psbt.setInputTapKeySig(k, v);\n } else {\n pubkey = pubkeys[0];\n psbt.setInputPartialSig(k, pubkey, v);\n }\n });\n }\n}\n\nfunction descrTemplFrom(\n addressFormat: AddressFormat\n): DefaultDescriptorTemplate {\n if (addressFormat == \"legacy\") return \"pkh(@0)\";\n if (addressFormat == \"p2sh\") return \"sh(wpkh(@0))\";\n if (addressFormat == \"bech32\") return \"wpkh(@0)\";\n if (addressFormat == \"bech32m\") return \"tr(@0)\";\n throw new Error(\"Unsupported address format \" + addressFormat);\n}\n\nfunction accountTypeFromArg(\n arg: CreateTransactionArg,\n psbt: PsbtV2,\n masterFp: Buffer\n): AccountType {\n if (arg.additionals.includes(\"bech32m\")) return new p2tr(psbt, masterFp);\n if (arg.additionals.includes(\"bech32\")) return new p2wpkh(psbt, masterFp);\n if (arg.segwit) return new p2wpkhWrapped(psbt, masterFp);\n return new p2pkh(psbt, masterFp);\n}\n\n/*\n The new protocol only allows standard path.\n Standard paths are (currently):\n M/44'/(1|0)'/X'\n M/49'/(1|0)'/X'\n M/84'/(1|0)'/X'\n M/86'/(1|0)'/X'\n M/48'/(1|0)'/X'/Y'\n followed by \"\", \"(0|1)\", or \"(0|1)/b\", where a and b are \n non-hardened. For example, the following paths are standard\n M/48'/1'/99'/7'\n M/86'/1'/99'/0\n M/48'/0'/99'/7'/1/17\n The following paths are non-standard\n M/48'/0'/99' // Not deepest hardened path\n M/48'/0'/99'/7'/1/17/2 // Too many non-hardened derivation steps\n M/199'/0'/1'/0/88 // Not a known purpose 199\n M/86'/1'/99'/2 // Change path item must be 0 or 1\n*/\nfunction isPathNormal(path: string): boolean {\n //path is not deepest hardened node of a standard path or deeper, use BtcOld\n const h = 0x80000000; //HARDENED from bip32\n const pathElems = pathStringToArray(path);\n\n const hard = (n: number) => n >= h;\n const soft = (n: number | undefined) => n === undefined || n < h;\n const change = (n: number | undefined) =>\n n === undefined || n === 0 || n === 1;\n\n if (\n pathElems.length >= 3 &&\n pathElems.length <= 5 &&\n [44 + h, 49 + h, 84 + h, 86 + h].some((v) => v == pathElems[0]) &&\n [0 + h, 1 + h].some((v) => v == pathElems[1]) &&\n hard(pathElems[2]) &&\n change(pathElems[3]) &&\n soft(pathElems[4])\n ) {\n return true;\n }\n if (\n pathElems.length >= 4 &&\n pathElems.length <= 6 &&\n 48 + h == pathElems[0] &&\n [0 + h, 1 + h].some((v) => v == pathElems[1]) &&\n hard(pathElems[2]) &&\n hard(pathElems[3]) &&\n change(pathElems[4]) &&\n soft(pathElems[5])\n ) {\n return true;\n }\n return false;\n}\n", "import bippath from \"bip32-path\";\nimport bs58check from \"bs58check\";\n\nexport function pathElementsToBuffer(paths: number[]): Buffer {\n const buffer = Buffer.alloc(1 + paths.length * 4);\n buffer[0] = paths.length;\n paths.forEach((element, index) => {\n buffer.writeUInt32BE(element, 1 + 4 * index);\n });\n return buffer;\n}\n\nexport function bip32asBuffer(path: string): Buffer {\n const pathElements = !path ? [] : pathStringToArray(path);\n return pathElementsToBuffer(pathElements);\n}\n\nexport function pathArrayToString(pathElements: number[]): string {\n // Limitation: bippath can't handle and empty path. It shouldn't affect us\n // right now, but might in the future.\n // TODO: Fix support for empty path.\n return bippath.fromPathArray(pathElements).toString();\n}\n\nexport function pathStringToArray(path: string): number[] {\n return bippath.fromString(path).toPathArray();\n}\n\nexport function pubkeyFromXpub(xpub: string): Buffer {\n const xpubBuf = bs58check.decode(xpub);\n return xpubBuf.slice(xpubBuf.length - 33);\n}\n\nexport function getXpubComponents(xpub: string): {\n chaincode: Buffer;\n pubkey: Buffer;\n version: number;\n} {\n const xpubBuf: Buffer = bs58check.decode(xpub);\n return {\n chaincode: xpubBuf.slice(13, 13 + 32),\n pubkey: xpubBuf.slice(xpubBuf.length - 33),\n version: xpubBuf.readUInt32BE(0),\n };\n}\n\nexport function hardenedPathOf(pathElements: number[]): number[] {\n for (let i = pathElements.length - 1; i >= 0; i--) {\n if (pathElements[i] >= 0x80000000) {\n return pathElements.slice(0, i + 1);\n }\n }\n return [];\n}\n", "import varuint from \"varuint-bitcoin\";\n\nexport function unsafeTo64bitLE(n: number): Buffer {\n // we want to represent the input as a 8-bytes array\n if (n > Number.MAX_SAFE_INTEGER) {\n throw new Error(\"Can't convert numbers > MAX_SAFE_INT\");\n }\n const byteArray = Buffer.alloc(8, 0);\n for (let index = 0; index < byteArray.length; index++) {\n const byte = n & 0xff;\n byteArray[index] = byte;\n n = (n - byte) / 256;\n }\n return byteArray;\n}\n\nexport function unsafeFrom64bitLE(byteArray: Buffer): number {\n let value = 0;\n if (byteArray.length != 8) {\n throw new Error(\"Expected Bufffer of lenght 8\");\n }\n if (byteArray[7] != 0) {\n throw new Error(\"Can't encode numbers > MAX_SAFE_INT\");\n }\n if (byteArray[6] > 0x1f) {\n throw new Error(\"Can't encode numbers > MAX_SAFE_INT\");\n }\n for (let i = byteArray.length - 1; i >= 0; i--) {\n value = value * 256 + byteArray[i];\n }\n return value;\n}\n\nexport class BufferWriter {\n private bufs: Buffer[] = [];\n\n write(alloc: number, fn: (b: Buffer) => void): void {\n const b = Buffer.alloc(alloc);\n fn(b);\n this.bufs.push(b);\n }\n\n writeUInt8(i: number): void {\n this.write(1, (b) => b.writeUInt8(i, 0));\n }\n\n writeInt32(i: number): void {\n this.write(4, (b) => b.writeInt32LE(i, 0));\n }\n\n writeUInt32(i: number): void {\n this.write(4, (b) => b.writeUInt32LE(i, 0));\n }\n\n writeUInt64(i: number): void {\n const bytes = unsafeTo64bitLE(i);\n this.writeSlice(bytes);\n }\n\n writeVarInt(i: number): void {\n this.bufs.push(varuint.encode(i));\n }\n\n writeSlice(slice: Buffer): void {\n this.bufs.push(Buffer.from(slice));\n }\n\n writeVarSlice(slice: Buffer): void {\n this.writeVarInt(slice.length);\n this.writeSlice(slice);\n }\n\n buffer(): Buffer {\n return Buffer.concat(this.bufs);\n }\n}\n\nexport class BufferReader {\n constructor(public buffer: Buffer, public offset: number = 0) {}\n\n available(): number {\n return this.buffer.length - this.offset;\n }\n\n readUInt8(): number {\n const result = this.buffer.readUInt8(this.offset);\n this.offset++;\n return result;\n }\n\n readInt32(): number {\n const result = this.buffer.readInt32LE(this.offset);\n this.offset += 4;\n return result;\n }\n\n readUInt32(): number {\n const result = this.buffer.readUInt32LE(this.offset);\n this.offset += 4;\n return result;\n }\n\n readUInt64(): number {\n const buf = this.readSlice(8);\n const n = unsafeFrom64bitLE(buf);\n return n;\n }\n\n readVarInt(): number {\n const vi = varuint.decode(this.buffer, this.offset);\n this.offset += varuint.decode.bytes;\n return vi;\n }\n\n readSlice(n: number): Buffer {\n if (this.buffer.length < this.offset + n) {\n throw new Error(\"Cannot read slice out of bounds\");\n }\n const result = this.buffer.slice(this.offset, this.offset + n);\n this.offset += n;\n return result;\n }\n\n readVarSlice(): Buffer {\n return this.readSlice(this.readVarInt());\n }\n\n readVector(): Buffer[] {\n const count = this.readVarInt();\n const vector: Buffer[] = [];\n for (let i = 0; i < count; i++) vector.push(this.readVarSlice());\n return vector;\n }\n}\n", "import { crypto } from \"bitcoinjs-lib\";\nimport { pointAddScalar } from \"tiny-secp256k1\";\nimport { BufferWriter } from \"../buffertools\";\nimport {\n HASH_SIZE,\n OP_CHECKSIG,\n OP_DUP,\n OP_EQUAL,\n OP_EQUALVERIFY,\n OP_HASH160,\n} from \"../constants\";\nimport { hashPublicKey } from \"../hashPublicKey\";\nimport { DefaultDescriptorTemplate } from \"./policy\";\nimport { PsbtV2 } from \"./psbtv2\";\n\nexport type SpendingCondition = {\n scriptPubKey: Buffer;\n redeemScript?: Buffer;\n // Possible future extension:\n // witnessScript?: Buffer; // For p2wsh witnessScript\n // tapScript?: {tapPath: Buffer[], script: Buffer} // For taproot\n};\n\nexport type SpentOutput = { cond: SpendingCondition; amount: Buffer };\n\n/**\n * Encapsulates differences between account types, for example p2wpkh,\n * p2wpkhWrapped, p2tr.\n */\nexport interface AccountType {\n /**\n * Generates a scriptPubKey (output script) from a list of public keys. If a\n * p2sh redeemScript or a p2wsh witnessScript is needed it will also be set on\n * the returned SpendingCondition.\n *\n * The pubkeys are expected to be 33 byte ecdsa compressed pubkeys.\n */\n spendingCondition(pubkeys: Buffer[]): SpendingCondition;\n\n /**\n * Populates the psbt with account type-specific data for an input.\n * @param i The index of the input map to populate\n * @param inputTx The full transaction containing the spent output. This may\n * be omitted for taproot.\n * @param spentOutput The amount and spending condition of the spent output\n * @param pubkeys The 33 byte ecdsa compressed public keys involved in the input\n * @param pathElems The paths corresponding to the pubkeys, in same order.\n */\n setInput(\n i: number,\n inputTx: Buffer | undefined,\n spentOutput: SpentOutput,\n pubkeys: Buffer[],\n pathElems: number[][]\n ): void;\n\n /**\n * Populates the psbt with account type-specific data for an output. This is typically\n * done for change outputs and other outputs that goes to the same account as\n * being spent from.\n * @param i The index of the output map to populate\n * @param cond The spending condition for this output\n * @param pubkeys The 33 byte ecdsa compressed public keys involved in this output\n * @param paths The paths corresponding to the pubkeys, in same order.\n */\n setOwnOutput(\n i: number,\n cond: SpendingCondition,\n pubkeys: Buffer[],\n paths: number[][]\n ): void;\n\n /**\n * Returns the descriptor template for this account type. Currently only\n * DefaultDescriptorTemplates are allowed, but that might be changed in the\n * future. See class WalletPolicy for more information on descriptor\n * templates.\n */\n getDescriptorTemplate(): DefaultDescriptorTemplate;\n}\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\ninterface BaseAccount extends AccountType {}\n\nabstract class BaseAccount implements AccountType {\n constructor(protected psbt: PsbtV2, protected masterFp: Buffer) {}\n}\n\n/**\n * Superclass for single signature accounts. This will make sure that the pubkey\n * arrays and path arrays in the method arguments contains exactly one element\n * and calls an abstract method to do the actual work.\n */\nabstract class SingleKeyAccount extends BaseAccount {\n spendingCondition(pubkeys: Buffer[]): SpendingCondition {\n if (pubkeys.length != 1) {\n throw new Error(\"Expected single key, got \" + pubkeys.length);\n }\n return this.singleKeyCondition(pubkeys[0]);\n }\n protected abstract singleKeyCondition(pubkey: Buffer): SpendingCondition;\n\n setInput(\n i: number,\n inputTx: Buffer | undefined,\n spentOutput: SpentOutput,\n pubkeys: Buffer[],\n pathElems: number[][]\n ) {\n if (pubkeys.length != 1) {\n throw new Error(\"Expected single key, got \" + pubkeys.length);\n }\n if (pathElems.length != 1) {\n throw new Error(\"Expected single path, got \" + pathElems.length);\n }\n this.setSingleKeyInput(i, inputTx, spentOutput, pubkeys[0], pathElems[0]);\n }\n protected abstract setSingleKeyInput(\n i: number,\n inputTx: Buffer | undefined,\n spentOutput: SpentOutput,\n pubkey: Buffer,\n path: number[]\n );\n\n setOwnOutput(\n i: number,\n cond: SpendingCondition,\n pubkeys: Buffer[],\n paths: number[][]\n ) {\n if (pubkeys.length != 1) {\n throw new Error(\"Expected single key, got \" + pubkeys.length);\n }\n if (paths.length != 1) {\n throw new Error(\"Expected single path, got \" + paths.length);\n }\n this.setSingleKeyOutput(i, cond, pubkeys[0], paths[0]);\n }\n protected abstract setSingleKeyOutput(\n i: number,\n cond: SpendingCondition,\n pubkey: Buffer,\n path: number[]\n );\n}\n\nexport class p2pkh extends SingleKeyAccount {\n singleKeyCondition(pubkey: Buffer): SpendingCondition {\n const buf = new BufferWriter();\n const pubkeyHash = hashPublicKey(pubkey);\n buf.writeSlice(Buffer.from([OP_DUP, OP_HASH160, HASH_SIZE]));\n buf.writeSlice(pubkeyHash);\n buf.writeSlice(Buffer.from([OP_EQUALVERIFY, OP_CHECKSIG]));\n return { scriptPubKey: buf.buffer() };\n }\n\n setSingleKeyInput(\n i: number,\n inputTx: Buffer | undefined,\n _spentOutput: SpentOutput,\n pubkey: Buffer,\n path: number[]\n ) {\n if (!inputTx) {\n throw new Error(\"Full input base transaction required\");\n }\n this.psbt.setInputNonWitnessUtxo(i, inputTx);\n this.psbt.setInputBip32Derivation(i, pubkey, this.masterFp, path);\n }\n\n setSingleKeyOutput(\n i: number,\n cond: SpendingCondition,\n pubkey: Buffer,\n path: number[]\n ) {\n this.psbt.setOutputBip32Derivation(i, pubkey, this.masterFp, path);\n }\n\n getDescriptorTemplate(): DefaultDescriptorTemplate {\n return \"pkh(@0)\";\n }\n}\n\nexport class p2tr extends SingleKeyAccount {\n singleKeyCondition(pubkey: Buffer): SpendingCondition {\n const xonlyPubkey = pubkey.slice(1); // x-only pubkey\n const buf = new BufferWriter();\n const outputKey = this.getTaprootOutputKey(xonlyPubkey);\n buf.writeSlice(Buffer.from([0x51, 32])); // push1, pubkeylen\n buf.writeSlice(outputKey);\n return { scriptPubKey: buf.buffer() };\n }\n\n setSingleKeyInput(\n i: number,\n _inputTx: Buffer | undefined,\n spentOutput: SpentOutput,\n pubkey: Buffer,\n path: number[]\n ) {\n const xonly = pubkey.slice(1);\n this.psbt.setInputTapBip32Derivation(i, xonly, [], this.masterFp, path);\n this.psbt.setInputWitnessUtxo(\n i,\n spentOutput.amount,\n spentOutput.cond.scriptPubKey\n );\n }\n\n setSingleKeyOutput(\n i: number,\n cond: SpendingCondition,\n pubkey: Buffer,\n path: number[]\n ) {\n const xonly = pubkey.slice(1);\n this.psbt.setOutputTapBip32Derivation(i, xonly, [], this.masterFp, path);\n }\n\n getDescriptorTemplate(): DefaultDescriptorTemplate {\n return \"tr(@0)\";\n }\n\n /*\n The following two functions are copied from wallet-btc and adapted.\n They should be moved to a library to avoid code reuse.\n */\n private hashTapTweak(x: Buffer): Buffer {\n // hash_tag(x) = SHA256(SHA256(tag) || SHA256(tag) || x), see BIP340\n // See https://github.com/bitcoin/bips/blob/master/bip-0340.mediawiki#specification\n const h = crypto.sha256(Buffer.from(\"TapTweak\", \"utf-8\"));\n return crypto.sha256(Buffer.concat([h, h, x]));\n }\n\n /**\n * Calculates a taproot output key from an internal key. This output key will be\n * used as witness program in a taproot output. The internal key is tweaked\n * according to recommendation in BIP341:\n * https://github.com/bitcoin/bips/blob/master/bip-0341.mediawiki#cite_ref-22-0\n *\n * @param internalPubkey A 32 byte x-only taproot internal key\n * @returns The output key\n */\n getTaprootOutputKey(internalPubkey: Buffer): Buffer {\n if (internalPubkey.length != 32) {\n throw new Error(\"Expected 32 byte pubkey. Got \" + internalPubkey.length);\n }\n // A BIP32 derived key can be converted to a schnorr pubkey by dropping\n // the first byte, which represent the oddness/evenness. In schnorr all\n // pubkeys are even.\n // https://github.com/bitcoin/bips/blob/master/bip-0340.mediawiki#public-key-conversion\n const evenEcdsaPubkey = Buffer.concat([\n Buffer.from([0x02]),\n internalPubkey,\n ]);\n const tweak = this.hashTapTweak(internalPubkey);\n\n // Q = P + int(hash_TapTweak(bytes(P)))G\n const outputEcdsaKey = Buffer.from(pointAddScalar(evenEcdsaPubkey, tweak));\n // Convert to schnorr.\n const outputSchnorrKey = outputEcdsaKey.slice(1);\n // Create address\n return outputSchnorrKey;\n }\n}\n\nexport class p2wpkhWrapped extends SingleKeyAccount {\n singleKeyCondition(pubkey: Buffer): SpendingCondition {\n const buf = new BufferWriter();\n const redeemScript = this.createRedeemScript(pubkey);\n const scriptHash = hashPublicKey(redeemScript);\n buf.writeSlice(Buffer.from([OP_HASH160, HASH_SIZE]));\n buf.writeSlice(scriptHash);\n buf.writeUInt8(OP_EQUAL);\n return { scriptPubKey: buf.buffer(), redeemScript: redeemScript };\n }\n\n setSingleKeyInput(\n i: number,\n inputTx: Buffer | undefined,\n spentOutput: SpentOutput,\n pubkey: Buffer,\n path: number[]\n ) {\n if (!inputTx) {\n throw new Error(\"Full input base transaction required\");\n }\n this.psbt.setInputNonWitnessUtxo(i, inputTx);\n this.psbt.setInputBip32Derivation(i, pubkey, this.masterFp, path);\n\n const userSuppliedRedeemScript = spentOutput.cond.redeemScript;\n const expectedRedeemScript = this.createRedeemScript(pubkey);\n if (\n userSuppliedRedeemScript &&\n !expectedRedeemScript.equals(userSuppliedRedeemScript)\n ) {\n // At what point might a user set the redeemScript on its own?\n throw new Error(`User-supplied redeemScript ${userSuppliedRedeemScript.toString(\n \"hex\"\n )} doesn't\n match expected ${expectedRedeemScript.toString(\"hex\")} for input ${i}`);\n }\n this.psbt.setInputRedeemScript(i, expectedRedeemScript);\n this.psbt.setInputWitnessUtxo(\n i,\n spentOutput.amount,\n spentOutput.cond.scriptPubKey\n );\n }\n\n setSingleKeyOutput(\n i: number,\n cond: SpendingCondition,\n pubkey: Buffer,\n path: number[]\n ) {\n this.psbt.setOutputRedeemScript(i, cond.redeemScript!);\n this.psbt.setOutputBip32Derivation(i, pubkey, this.masterFp, path);\n }\n\n getDescriptorTemplate(): DefaultDescriptorTemplate {\n return \"sh(wpkh(@0))\";\n }\n\n private createRedeemScript(pubkey: Buffer): Buffer {\n const pubkeyHash = hashPublicKey(pubkey);\n return Buffer.concat([Buffer.from(\"0014\", \"hex\"), pubkeyHash]);\n }\n}\n\nexport class p2wpkh extends SingleKeyAccount {\n singleKeyCondition(pubkey: Buffer): SpendingCondition {\n const buf = new BufferWriter();\n const pubkeyHash = hashPublicKey(pubkey);\n buf.writeSlice(Buffer.from([0, HASH_SIZE]));\n buf.writeSlice(pubkeyHash);\n return { scriptPubKey: buf.buffer() };\n }\n\n setSingleKeyInput(\n i: number,\n inputTx: Buffer | undefined,\n spentOutput: SpentOutput,\n pubkey: Buffer,\n path: number[]\n ) {\n if (!inputTx) {\n throw new Error(\"Full input base transaction required\");\n }\n this.psbt.setInputNonWitnessUtxo(i, inputTx);\n this.psbt.setInputBip32Derivation(i, pubkey, this.masterFp, path);\n this.psbt.setInputWitnessUtxo(\n i,\n spentOutput.amount,\n spentOutput.cond.scriptPubKey\n );\n }\n\n setSingleKeyOutput(\n i: number,\n cond: SpendingCondition,\n pubkey: Buffer,\n path: number[]\n ) {\n this.psbt.setOutputBip32Derivation(i, pubkey, this.masterFp, path);\n }\n\n getDescriptorTemplate(): DefaultDescriptorTemplate {\n return \"wpkh(@0)\";\n }\n}\n", "// flow\nexport const MAX_SCRIPT_BLOCK = 50;\nexport const DEFAULT_VERSION = 1;\nexport const DEFAULT_LOCKTIME = 0;\nexport const DEFAULT_SEQUENCE = 0xffffffff;\nexport const SIGHASH_ALL = 1;\nexport const OP_DUP = 0x76;\nexport const OP_HASH160 = 0xa9;\nexport const HASH_SIZE = 0x14;\nexport const OP_EQUAL = 0x87;\nexport const OP_EQUALVERIFY = 0x88;\nexport const OP_CHECKSIG = 0xac;\nexport const OP_RETURN = 0x6a;\n", "import RIPEMD160 from \"ripemd160\";\nimport sha from \"sha.js\";\nexport function hashPublicKey(buffer: Buffer): Buffer {\n return new RIPEMD160().update(sha(\"sha256\").update(buffer).digest()).digest();\n}\n", "import { crypto } from \"bitcoinjs-lib\";\nimport { pathArrayToString } from \"../bip32\";\nimport { BufferWriter } from \"../buffertools\";\nimport { hashLeaf, Merkle } from \"./merkle\";\n\nexport type DefaultDescriptorTemplate =\n | \"pkh(@0)\"\n | \"sh(wpkh(@0))\"\n | \"wpkh(@0)\"\n | \"tr(@0)\";\n\n/**\n * The Bitcon hardware app uses a descriptors-like thing to describe\n * how to construct output scripts from keys. A \"Wallet Policy\" consists\n * of a \"Descriptor Template\" and a list of \"keys\". A key is basically\n * a serialized BIP32 extended public key with some added derivation path\n * information. This is documented at\n * https://github.com/LedgerHQ/app-bitcoin-new/blob/master/doc/wallet.md\n */\nexport class WalletPolicy {\n descriptorTemplate: string;\n keys: string[];\n /**\n * For now, we only support default descriptor templates.\n */\n constructor(descriptorTemplate: DefaultDescriptorTemplate, key: string) {\n this.descriptorTemplate = descriptorTemplate;\n this.keys = [key];\n }\n\n getWalletId(): Buffer {\n // wallet_id (sha256 of the wallet serialization),\n return crypto.sha256(this.serialize());\n }\n\n serialize(): Buffer {\n const keyBuffers = this.keys.map((k) => {\n return Buffer.from(k, \"ascii\");\n });\n const m = new Merkle(keyBuffers.map((k) => hashLeaf(k)));\n\n const buf = new BufferWriter();\n buf.writeUInt8(0x01); // wallet type (policy map)\n buf.writeUInt8(0); // length of wallet name (empty string for default wallets)\n buf.writeVarSlice(Buffer.from(this.descriptorTemplate, \"ascii\"));\n buf.writeVarInt(this.keys.length), buf.writeSlice(m.getRoot());\n return buf.buffer();\n }\n}\n\nexport function createKey(\n masterFingerprint: Buffer,\n path: number[],\n xpub: string\n): string {\n const accountPath = pathArrayToString(path);\n return `[${masterFingerprint.toString(\"hex\")}${accountPath.substring(\n 1\n )}]${xpub}/**`;\n}\n", "import { crypto } from \"bitcoinjs-lib\";\n\n/**\n * This class implements the merkle tree used by Ledger Bitcoin app v2+,\n * which is documented at\n * https://github.com/LedgerHQ/app-bitcoin-new/blob/master/doc/merkle.md\n */\nexport class Merkle {\n private leaves: Buffer[];\n private rootNode: Node;\n private leafNodes: Node[];\n private h: (buf: Buffer) => Buffer;\n constructor(\n leaves: Buffer[],\n hasher: (buf: Buffer) => Buffer = crypto.sha256\n ) {\n this.leaves = leaves;\n this.h = hasher;\n const nodes = this.calculateRoot(leaves);\n this.rootNode = nodes.root;\n this.leafNodes = nodes.leaves;\n }\n getRoot(): Buffer {\n return this.rootNode.hash;\n }\n size(): number {\n return this.leaves.length;\n }\n getLeaves(): Buffer[] {\n return this.leaves;\n }\n getLeafHash(index: number): Buffer {\n return this.leafNodes[index].hash;\n }\n getProof(index: number): Buffer[] {\n if (index >= this.leaves.length) throw Error(\"Index out of bounds\");\n return proveNode(this.leafNodes[index]);\n }\n\n calculateRoot(leaves: Buffer[]): { root: Node; leaves: Node[] } {\n const n = leaves.length;\n if (n == 0) {\n return {\n root: new Node(undefined, undefined, Buffer.alloc(32, 0)),\n leaves: [],\n };\n }\n if (n == 1) {\n const newNode = new Node(undefined, undefined, leaves[0]);\n return { root: newNode, leaves: [newNode] };\n }\n const leftCount = highestPowerOf2LessThan(n);\n const leftBranch = this.calculateRoot(leaves.slice(0, leftCount));\n const rightBranch = this.calculateRoot(leaves.slice(leftCount));\n const leftChild = leftBranch.root;\n const rightChild = rightBranch.root;\n const hash = this.hashNode(leftChild.hash, rightChild.hash);\n const node = new Node(leftChild, rightChild, hash);\n leftChild.parent = node;\n rightChild.parent = node;\n return { root: node, leaves: leftBranch.leaves.concat(rightBranch.leaves) };\n }\n\n hashNode(left: Buffer, right: Buffer): Buffer {\n return this.h(Buffer.concat([Buffer.from([1]), left, right]));\n }\n}\n\nexport function hashLeaf(\n buf: Buffer,\n hashFunction: (buf: Buffer) => Buffer = crypto.sha256\n): Buffer {\n return hashConcat(Buffer.from([0]), buf, hashFunction);\n}\n\nfunction hashConcat(\n bufA: Buffer,\n bufB: Buffer,\n hashFunction: (buf: Buffer) => Buffer\n): Buffer {\n return hashFunction(Buffer.concat([bufA, bufB]));\n}\n\nclass Node {\n leftChild?: Node;\n rightChild?: Node;\n parent?: Node;\n hash: Buffer;\n constructor(left: Node | undefined, right: Node | undefined, hash: Buffer) {\n this.leftChild = left;\n this.rightChild = right;\n this.hash = hash;\n }\n isLeaf(): boolean {\n return this.leftChild == undefined;\n }\n}\n\nfunction proveNode(node: Node): Buffer[] {\n if (!node.parent) {\n return [];\n }\n if (node.parent.leftChild == node) {\n if (!node.parent.rightChild) {\n throw new Error(\"Expected right child to exist\");\n }\n return [node.parent.rightChild.hash, ...proveNode(node.parent)];\n } else {\n if (!node.parent.leftChild) {\n throw new Error(\"Expected left child to exist\");\n }\n return [node.parent.leftChild.hash, ...proveNode(node.parent)];\n }\n}\n\nfunction highestPowerOf2LessThan(n: number) {\n if (n < 2) {\n throw Error(\"Expected n >= 2\");\n }\n if (isPowerOf2(n)) {\n return n / 2;\n }\n return 1 << Math.floor(Math.log2(n));\n}\n\nfunction isPowerOf2(n: number): boolean {\n return (n & (n - 1)) == 0;\n}\n", "import { BufferWriter } from \"../buffertools\";\nimport { PsbtV2 } from \"./psbtv2\";\n\n/**\n * This implements the \"Transaction Extractor\" role of BIP370 (PSBTv2\n * https://github.com/bitcoin/bips/blob/master/bip-0370.mediawiki#transaction-extractor). However\n * the role is partially documented in BIP174 (PSBTv0\n * https://github.com/bitcoin/bips/blob/master/bip-0174.mediawiki#transaction-extractor).\n */\nexport function extract(psbt: PsbtV2): Buffer {\n const tx = new BufferWriter();\n tx.writeUInt32(psbt.getGlobalTxVersion());\n\n const isSegwit = !!psbt.getInputWitnessUtxo(0);\n if (isSegwit) {\n tx.writeSlice(Buffer.from([0, 1]));\n }\n const inputCount = psbt.getGlobalInputCount();\n tx.writeVarInt(inputCount);\n const witnessWriter = new BufferWriter();\n for (let i = 0; i < inputCount; i++) {\n tx.writeSlice(psbt.getInputPreviousTxid(i));\n tx.writeUInt32(psbt.getInputOutputIndex(i));\n tx.writeVarSlice(psbt.getInputFinalScriptsig(i) ?? Buffer.from([]));\n tx.writeUInt32(psbt.getInputSequence(i));\n if (isSegwit) {\n witnessWriter.writeSlice(psbt.getInputFinalScriptwitness(i));\n }\n }\n const outputCount = psbt.getGlobalOutputCount();\n tx.writeVarInt(outputCount);\n for (let i = 0; i < outputCount; i++) {\n tx.writeUInt64(psbt.getOutputAmount(i));\n tx.writeVarSlice(psbt.getOutputScript(i));\n }\n tx.writeSlice(witnessWriter.buffer());\n tx.writeUInt32(psbt.getGlobalFallbackLocktime() ?? 0);\n return tx.buffer();\n}\n", "/* eslint-disable @typescript-eslint/no-non-null-assertion */\n/* eslint-disable @typescript-eslint/explicit-module-boundary-types */\nimport {\n BufferReader,\n BufferWriter,\n unsafeFrom64bitLE,\n unsafeTo64bitLE,\n} from \"../buffertools\";\n\nexport enum psbtGlobal {\n TX_VERSION = 0x02,\n FALLBACK_LOCKTIME = 0x03,\n INPUT_COUNT = 0x04,\n OUTPUT_COUNT = 0x05,\n TX_MODIFIABLE = 0x06,\n VERSION = 0xfb,\n}\nexport enum psbtIn {\n NON_WITNESS_UTXO = 0x00,\n WITNESS_UTXO = 0x01,\n PARTIAL_SIG = 0x02,\n SIGHASH_TYPE = 0x03,\n REDEEM_SCRIPT = 0x04,\n BIP32_DERIVATION = 0x06,\n FINAL_SCRIPTSIG = 0x07,\n FINAL_SCRIPTWITNESS = 0x08,\n PREVIOUS_TXID = 0x0e,\n OUTPUT_INDEX = 0x0f,\n SEQUENCE = 0x10,\n TAP_KEY_SIG = 0x13,\n TAP_BIP32_DERIVATION = 0x16,\n}\nexport enum psbtOut {\n REDEEM_SCRIPT = 0x00,\n BIP_32_DERIVATION = 0x02,\n AMOUNT = 0x03,\n SCRIPT = 0x04,\n TAP_BIP32_DERIVATION = 0x07,\n}\n\nconst PSBT_MAGIC_BYTES = Buffer.from([0x70, 0x73, 0x62, 0x74, 0xff]);\n\nexport class NoSuchEntry extends Error {}\n\n/**\n * Implements Partially Signed Bitcoin Transaction version 2, BIP370, as\n * documented at https://github.com/bitcoin/bips/blob/master/bip-0370.mediawiki\n * and https://github.com/bitcoin/bips/blob/master/bip-0174.mediawiki\n *\n * A psbt is a data structure that can carry all relevant information about a\n * transaction through all stages of the signing process. From constructing an\n * unsigned transaction to extracting the final serialized transaction ready for\n * broadcast.\n *\n * This implementation is limited to what's needed in ledgerjs to carry out its\n * duties, which means that support for features like multisig or taproot script\n * path spending are not implemented. Specifically, it supports p2pkh,\n * p2wpkhWrappedInP2sh, p2wpkh and p2tr key path spending.\n *\n * This class is made purposefully dumb, so it's easy to add support for\n * complemantary fields as needed in the future.\n */\nexport class PsbtV2 {\n protected globalMap: Map = new Map();\n protected inputMaps: Map[] = [];\n protected outputMaps: Map[] = [];\n\n setGlobalTxVersion(version: number) {\n this.setGlobal(psbtGlobal.TX_VERSION, uint32LE(version));\n }\n getGlobalTxVersion(): number {\n return this.getGlobal(psbtGlobal.TX_VERSION).readUInt32LE(0);\n }\n setGlobalFallbackLocktime(locktime: number) {\n this.setGlobal(psbtGlobal.FALLBACK_LOCKTIME, uint32LE(locktime));\n }\n getGlobalFallbackLocktime(): number | undefined {\n return this.getGlobalOptional(psbtGlobal.FALLBACK_LOCKTIME)?.readUInt32LE(\n 0\n );\n }\n setGlobalInputCount(inputCount: number) {\n this.setGlobal(psbtGlobal.INPUT_COUNT, varint(inputCount));\n }\n getGlobalInputCount(): number {\n return fromVarint(this.getGlobal(psbtGlobal.INPUT_COUNT));\n }\n setGlobalOutputCount(outputCount: number) {\n this.setGlobal(psbtGlobal.OUTPUT_COUNT, varint(outputCount));\n }\n getGlobalOutputCount(): number {\n return fromVarint(this.getGlobal(psbtGlobal.OUTPUT_COUNT));\n }\n setGlobalTxModifiable(byte: Buffer) {\n this.setGlobal(psbtGlobal.TX_MODIFIABLE, byte);\n }\n getGlobalTxModifiable(): Buffer | undefined {\n return this.getGlobalOptional(psbtGlobal.TX_MODIFIABLE);\n }\n setGlobalPsbtVersion(psbtVersion: number) {\n this.setGlobal(psbtGlobal.VERSION, uint32LE(psbtVersion));\n }\n getGlobalPsbtVersion(): number {\n return this.getGlobal(psbtGlobal.VERSION).readUInt32LE(0);\n }\n\n setInputNonWitnessUtxo(inputIndex: number, transaction: Buffer) {\n this.setInput(inputIndex, psbtIn.NON_WITNESS_UTXO, b(), transaction);\n }\n getInputNonWitnessUtxo(inputIndex: number): Buffer | undefined {\n return this.getInputOptional(inputIndex, psbtIn.NON_WITNESS_UTXO, b());\n }\n setInputWitnessUtxo(\n inputIndex: number,\n amount: Buffer,\n scriptPubKey: Buffer\n ) {\n const buf = new BufferWriter();\n buf.writeSlice(amount);\n buf.writeVarSlice(scriptPubKey);\n this.setInput(inputIndex, psbtIn.WITNESS_UTXO, b(), buf.buffer());\n }\n getInputWitnessUtxo(\n inputIndex: number\n ): { amount: Buffer; scriptPubKey: Buffer } | undefined {\n const utxo = this.getInputOptional(inputIndex, psbtIn.WITNESS_UTXO, b());\n if (!utxo) return undefined;\n const buf = new BufferReader(utxo);\n return { amount: buf.readSlice(8), scriptPubKey: buf.readVarSlice() };\n }\n setInputPartialSig(inputIndex: number, pubkey: Buffer, signature: Buffer) {\n this.setInput(inputIndex, psbtIn.PARTIAL_SIG, pubkey, signature);\n }\n getInputPartialSig(inputIndex: number, pubkey: Buffer): Buffer | undefined {\n return this.getInputOptional(inputIndex, psbtIn.PARTIAL_SIG, pubkey);\n }\n setInputSighashType(inputIndex: number, sigHashtype: number) {\n this.setInput(inputIndex, psbtIn.SIGHASH_TYPE, b(), uint32LE(sigHashtype));\n }\n getInputSighashType(inputIndex: number): number | undefined {\n const result = this.getInputOptional(inputIndex, psbtIn.SIGHASH_TYPE, b());\n if (!result) return undefined;\n return result.readUInt32LE(0);\n }\n setInputRedeemScript(inputIndex: number, redeemScript: Buffer) {\n this.setInput(inputIndex, psbtIn.REDEEM_SCRIPT, b(), redeemScript);\n }\n getInputRedeemScript(inputIndex: number): Buffer | undefined {\n return this.getInputOptional(inputIndex, psbtIn.REDEEM_SCRIPT, b());\n }\n setInputBip32Derivation(\n inputIndex: number,\n pubkey: Buffer,\n masterFingerprint: Buffer,\n path: number[]\n ) {\n if (pubkey.length != 33)\n throw new Error(\"Invalid pubkey length: \" + pubkey.length);\n this.setInput(\n inputIndex,\n psbtIn.BIP32_DERIVATION,\n pubkey,\n this.encodeBip32Derivation(masterFingerprint, path)\n );\n }\n getInputBip32Derivation(\n inputIndex: number,\n pubkey: Buffer\n ): { masterFingerprint: Buffer; path: number[] } | undefined {\n const buf = this.getInputOptional(\n inputIndex,\n psbtIn.BIP32_DERIVATION,\n pubkey\n );\n if (!buf) return undefined;\n return this.decodeBip32Derivation(buf);\n }\n setInputFinalScriptsig(inputIndex: number, scriptSig: Buffer) {\n this.setInput(inputIndex, psbtIn.FINAL_SCRIPTSIG, b(), scriptSig);\n }\n getInputFinalScriptsig(inputIndex: number): Buffer | undefined {\n return this.getInputOptional(inputIndex, psbtIn.FINAL_SCRIPTSIG, b());\n }\n setInputFinalScriptwitness(inputIndex: number, scriptWitness: Buffer) {\n this.setInput(inputIndex, psbtIn.FINAL_SCRIPTWITNESS, b(), scriptWitness);\n }\n getInputFinalScriptwitness(inputIndex: number): Buffer {\n return this.getInput(inputIndex, psbtIn.FINAL_SCRIPTWITNESS, b());\n }\n setInputPreviousTxId(inputIndex: number, txid: Buffer) {\n this.setInput(inputIndex, psbtIn.PREVIOUS_TXID, b(), txid);\n }\n getInputPreviousTxid(inputIndex: number): Buffer {\n return this.getInput(inputIndex, psbtIn.PREVIOUS_TXID, b());\n }\n setInputOutputIndex(inputIndex: number, outputIndex: number) {\n this.setInput(inputIndex, psbtIn.OUTPUT_INDEX, b(), uint32LE(outputIndex));\n }\n getInputOutputIndex(inputIndex: number): number {\n return this.getInput(inputIndex, psbtIn.OUTPUT_INDEX, b()).readUInt32LE(0);\n }\n setInputSequence(inputIndex: number, sequence: number) {\n this.setInput(inputIndex, psbtIn.SEQUENCE, b(), uint32LE(sequence));\n }\n getInputSequence(inputIndex: number): number {\n return (\n this.getInputOptional(inputIndex, psbtIn.SEQUENCE, b())?.readUInt32LE(\n 0\n ) ?? 0xffffffff\n );\n }\n setInputTapKeySig(inputIndex: number, sig: Buffer) {\n this.setInput(inputIndex, psbtIn.TAP_KEY_SIG, b(), sig);\n }\n getInputTapKeySig(inputIndex: number): Buffer | undefined {\n return this.getInputOptional(inputIndex, psbtIn.TAP_KEY_SIG, b());\n }\n setInputTapBip32Derivation(\n inputIndex: number,\n pubkey: Buffer,\n hashes: Buffer[],\n masterFingerprint: Buffer,\n path: number[]\n ) {\n if (pubkey.length != 32)\n throw new Error(\"Invalid pubkey length: \" + pubkey.length);\n const buf = this.encodeTapBip32Derivation(hashes, masterFingerprint, path);\n this.setInput(inputIndex, psbtIn.TAP_BIP32_DERIVATION, pubkey, buf);\n }\n getInputTapBip32Derivation(\n inputIndex: number,\n pubkey: Buffer\n ): { hashes: Buffer[]; masterFingerprint: Buffer; path: number[] } {\n const buf = this.getInput(inputIndex, psbtIn.TAP_BIP32_DERIVATION, pubkey);\n return this.decodeTapBip32Derivation(buf);\n }\n getInputKeyDatas(inputIndex: number, keyType: KeyType): Buffer[] {\n return this.getKeyDatas(this.inputMaps[inputIndex], keyType);\n }\n\n setOutputRedeemScript(outputIndex: number, redeemScript: Buffer) {\n this.setOutput(outputIndex, psbtOut.REDEEM_SCRIPT, b(), redeemScript);\n }\n getOutputRedeemScript(outputIndex: number): Buffer {\n return this.getOutput(outputIndex, psbtOut.REDEEM_SCRIPT, b());\n }\n setOutputBip32Derivation(\n outputIndex: number,\n pubkey: Buffer,\n masterFingerprint: Buffer,\n path: number[]\n ) {\n this.setOutput(\n outputIndex,\n psbtOut.BIP_32_DERIVATION,\n pubkey,\n this.encodeBip32Derivation(masterFingerprint, path)\n );\n }\n getOutputBip32Derivation(\n outputIndex: number,\n pubkey: Buffer\n ): { masterFingerprint: Buffer; path: number[] } {\n const buf = this.getOutput(outputIndex, psbtOut.BIP_32_DERIVATION, pubkey);\n return this.decodeBip32Derivation(buf);\n }\n setOutputAmount(outputIndex: number, amount: number) {\n this.setOutput(outputIndex, psbtOut.AMOUNT, b(), uint64LE(amount));\n }\n getOutputAmount(outputIndex: number): number {\n const buf = this.getOutput(outputIndex, psbtOut.AMOUNT, b());\n return unsafeFrom64bitLE(buf);\n }\n setOutputScript(outputIndex: number, scriptPubKey: Buffer) {\n this.setOutput(outputIndex, psbtOut.SCRIPT, b(), scriptPubKey);\n }\n getOutputScript(outputIndex: number): Buffer {\n return this.getOutput(outputIndex, psbtOut.SCRIPT, b());\n }\n setOutputTapBip32Derivation(\n outputIndex: number,\n pubkey: Buffer,\n hashes: Buffer[],\n fingerprint: Buffer,\n path: number[]\n ) {\n const buf = this.encodeTapBip32Derivation(hashes, fingerprint, path);\n this.setOutput(outputIndex, psbtOut.TAP_BIP32_DERIVATION, pubkey, buf);\n }\n getOutputTapBip32Derivation(\n outputIndex: number,\n pubkey: Buffer\n ): { hashes: Buffer[]; masterFingerprint: Buffer; path: number[] } {\n const buf = this.getOutput(\n outputIndex,\n psbtOut.TAP_BIP32_DERIVATION,\n pubkey\n );\n return this.decodeTapBip32Derivation(buf);\n }\n\n deleteInputEntries(inputIndex: number, keyTypes: psbtIn[]) {\n const map = this.inputMaps[inputIndex];\n map.forEach((_v, k, m) => {\n if (this.isKeyType(k, keyTypes)) {\n m.delete(k);\n }\n });\n }\n\n copy(to: PsbtV2) {\n this.copyMap(this.globalMap, to.globalMap);\n this.copyMaps(this.inputMaps, to.inputMaps);\n this.copyMaps(this.outputMaps, to.outputMaps);\n }\n copyMaps(from: Map[], to: Map[]) {\n from.forEach((m, index) => {\n const to_index = new Map();\n this.copyMap(m, to_index);\n to[index] = to_index;\n });\n }\n copyMap(from: Map, to: Map) {\n from.forEach((v, k) => to.set(k, Buffer.from(v)));\n }\n serialize(): Buffer {\n const buf = new BufferWriter();\n buf.writeSlice(Buffer.from([0x70, 0x73, 0x62, 0x74, 0xff]));\n serializeMap(buf, this.globalMap);\n this.inputMaps.forEach((map) => {\n serializeMap(buf, map);\n });\n this.outputMaps.forEach((map) => {\n serializeMap(buf, map);\n });\n return buf.buffer();\n }\n deserialize(psbt: Buffer) {\n const buf = new BufferReader(psbt);\n if (!buf.readSlice(5).equals(PSBT_MAGIC_BYTES)) {\n throw new Error(\"Invalid magic bytes\");\n }\n while (this.readKeyPair(this.globalMap, buf));\n for (let i = 0; i < this.getGlobalInputCount(); i++) {\n this.inputMaps[i] = new Map();\n while (this.readKeyPair(this.inputMaps[i], buf));\n }\n for (let i = 0; i < this.getGlobalOutputCount(); i++) {\n this.outputMaps[i] = new Map();\n while (this.readKeyPair(this.outputMaps[i], buf));\n }\n }\n private readKeyPair(map: Map, buf: BufferReader): boolean {\n const keyLen = buf.readVarInt();\n if (keyLen == 0) {\n return false;\n }\n const keyType = buf.readUInt8();\n const keyData = buf.readSlice(keyLen - 1);\n const value = buf.readVarSlice();\n set(map, keyType, keyData, value);\n return true;\n }\n private getKeyDatas(map: Map, keyType: KeyType): Buffer[] {\n const result: Buffer[] = [];\n map.forEach((_v, k) => {\n if (this.isKeyType(k, [keyType])) {\n result.push(Buffer.from(k.substring(2), \"hex\"));\n }\n });\n return result;\n }\n private isKeyType(hexKey: string, keyTypes: KeyType[]): boolean {\n const keyType = Buffer.from(hexKey.substring(0, 2), \"hex\").readUInt8(0);\n return keyTypes.some((k) => k == keyType);\n }\n private setGlobal(keyType: KeyType, value: Buffer) {\n const key = new Key(keyType, Buffer.from([]));\n this.globalMap.set(key.toString(), value);\n }\n private getGlobal(keyType: KeyType): Buffer {\n return get(this.globalMap, keyType, b(), false)!;\n }\n private getGlobalOptional(keyType: KeyType): Buffer | undefined {\n return get(this.globalMap, keyType, b(), true);\n }\n private setInput(\n index: number,\n keyType: KeyType,\n keyData: Buffer,\n value: Buffer\n ) {\n set(this.getMap(index, this.inputMaps), keyType, keyData, value);\n }\n private getInput(index: number, keyType: KeyType, keyData: Buffer): Buffer {\n return get(this.inputMaps[index], keyType, keyData, false)!;\n }\n private getInputOptional(\n index: number,\n keyType: KeyType,\n keyData: Buffer\n ): Buffer | undefined {\n return get(this.inputMaps[index], keyType, keyData, true);\n }\n private setOutput(\n index: number,\n keyType: KeyType,\n keyData: Buffer,\n value: Buffer\n ) {\n set(this.getMap(index, this.outputMaps), keyType, keyData, value);\n }\n private getOutput(index: number, keyType: KeyType, keyData: Buffer): Buffer {\n return get(this.outputMaps[index], keyType, keyData, false)!;\n }\n private getMap(\n index: number,\n maps: Map[]\n ): Map {\n if (maps[index]) {\n return maps[index];\n }\n return (maps[index] = new Map());\n }\n private encodeBip32Derivation(masterFingerprint: Buffer, path: number[]) {\n const buf = new BufferWriter();\n this.writeBip32Derivation(buf, masterFingerprint, path);\n return buf.buffer();\n }\n private decodeBip32Derivation(buffer: Buffer): {\n masterFingerprint: Buffer;\n path: number[];\n } {\n const buf = new BufferReader(buffer);\n return this.readBip32Derivation(buf);\n }\n private writeBip32Derivation(\n buf: BufferWriter,\n masterFingerprint: Buffer,\n path: number[]\n ) {\n buf.writeSlice(masterFingerprint);\n path.forEach((element) => {\n buf.writeUInt32(element);\n });\n }\n private readBip32Derivation(buf: BufferReader): {\n masterFingerprint: Buffer;\n path: number[];\n } {\n const masterFingerprint = buf.readSlice(4);\n const path: number[] = [];\n while (buf.offset < buf.buffer.length) {\n path.push(buf.readUInt32());\n }\n return { masterFingerprint, path };\n }\n private encodeTapBip32Derivation(\n hashes: Buffer[],\n masterFingerprint: Buffer,\n path: number[]\n ): Buffer {\n const buf = new BufferWriter();\n buf.writeVarInt(hashes.length);\n hashes.forEach((h) => {\n buf.writeSlice(h);\n });\n this.writeBip32Derivation(buf, masterFingerprint, path);\n return buf.buffer();\n }\n private decodeTapBip32Derivation(buffer: Buffer): {\n hashes: Buffer[];\n masterFingerprint: Buffer;\n path: number[];\n } {\n const buf = new BufferReader(buffer);\n const hashCount = buf.readVarInt();\n const hashes: Buffer[] = [];\n for (let i = 0; i < hashCount; i++) {\n hashes.push(buf.readSlice(32));\n }\n const deriv = this.readBip32Derivation(buf);\n return { hashes, ...deriv };\n }\n}\nfunction get(\n map: Map,\n keyType: KeyType,\n keyData: Buffer,\n acceptUndefined: boolean\n): Buffer | undefined {\n if (!map) throw Error(\"No such map\");\n const key = new Key(keyType, keyData);\n const value = map.get(key.toString());\n if (!value) {\n if (acceptUndefined) {\n return undefined;\n }\n throw new NoSuchEntry(key.toString());\n }\n // Make sure to return a copy, to protect the underlying data.\n return Buffer.from(value);\n}\ntype KeyType = number;\n\nclass Key {\n keyType: KeyType;\n keyData: Buffer;\n constructor(keyType: KeyType, keyData: Buffer) {\n this.keyType = keyType;\n this.keyData = keyData;\n }\n toString(): string {\n const buf = new BufferWriter();\n this.toBuffer(buf);\n return buf.buffer().toString(\"hex\");\n }\n serialize(buf: BufferWriter) {\n buf.writeVarInt(1 + this.keyData.length);\n this.toBuffer(buf);\n }\n private toBuffer(buf: BufferWriter) {\n buf.writeUInt8(this.keyType);\n buf.writeSlice(this.keyData);\n }\n}\nclass KeyPair {\n key: Key;\n value: Buffer;\n constructor(key: Key, value: Buffer) {\n this.key = key;\n this.value = value;\n }\n serialize(buf: BufferWriter) {\n this.key.serialize(buf);\n buf.writeVarSlice(this.value);\n }\n}\nfunction createKey(buf: Buffer): Key {\n return new Key(buf.readUInt8(0), buf.slice(1));\n}\nfunction serializeMap(buf: BufferWriter, map: Map) {\n for (const k in map.keys) {\n const value = map.get(k)!;\n const keyPair = new KeyPair(createKey(Buffer.from(k, \"hex\")), value);\n keyPair.serialize(buf);\n }\n buf.writeUInt8(0);\n}\n\nfunction b(): Buffer {\n return Buffer.from([]);\n}\nfunction set(\n map: Map,\n keyType: KeyType,\n keyData: Buffer,\n value: Buffer\n) {\n const key = new Key(keyType, keyData);\n map.set(key.toString(), value);\n}\nfunction uint32LE(n: number): Buffer {\n const b = Buffer.alloc(4);\n b.writeUInt32LE(n, 0);\n return b;\n}\nfunction uint64LE(n: number): Buffer {\n return unsafeTo64bitLE(n);\n}\nfunction varint(n: number): Buffer {\n const b = new BufferWriter();\n b.writeVarInt(n);\n return b.buffer();\n}\nfunction fromVarint(buf: Buffer): number {\n return new BufferReader(buf).readVarInt();\n}\n", "import { BufferWriter } from \"../buffertools\";\nimport { psbtIn, PsbtV2 } from \"./psbtv2\";\n\n/**\n * This roughly implements the \"input finalizer\" role of BIP370 (PSBTv2\n * https://github.com/bitcoin/bips/blob/master/bip-0370.mediawiki). However\n * the role is documented in BIP174 (PSBTv0\n * https://github.com/bitcoin/bips/blob/master/bip-0174.mediawiki).\n *\n * Verify that all inputs have a signature, and set inputFinalScriptwitness\n * and/or inputFinalScriptSig depending on the type of the spent outputs. Clean\n * fields that aren't useful anymore, partial signatures, redeem script and\n * derivation paths.\n *\n * @param psbt The psbt with all signatures added as partial sigs, either\n * through PSBT_IN_PARTIAL_SIG or PSBT_IN_TAP_KEY_SIG\n */\nexport function finalize(psbt: PsbtV2): void {\n // First check that each input has a signature\n const inputCount = psbt.getGlobalInputCount();\n for (let i = 0; i < inputCount; i++) {\n const legacyPubkeys = psbt.getInputKeyDatas(i, psbtIn.PARTIAL_SIG);\n const taprootSig = psbt.getInputTapKeySig(i);\n if (legacyPubkeys.length == 0 && !taprootSig) {\n throw Error(`No signature for input ${i} present`);\n }\n if (legacyPubkeys.length > 0) {\n if (legacyPubkeys.length > 1) {\n throw Error(\n `Expected exactly one signature, got ${legacyPubkeys.length}`\n );\n }\n if (taprootSig) {\n throw Error(\"Both taproot and non-taproot signatures present.\");\n }\n\n const isSegwitV0 = !!psbt.getInputWitnessUtxo(i);\n const redeemScript = psbt.getInputRedeemScript(i);\n const isWrappedSegwit = !!redeemScript;\n const signature = psbt.getInputPartialSig(i, legacyPubkeys[0]);\n if (!signature)\n throw new Error(\"Expected partial signature for input \" + i);\n if (isSegwitV0) {\n const witnessBuf = new BufferWriter();\n witnessBuf.writeVarInt(2);\n witnessBuf.writeVarInt(signature.length);\n witnessBuf.writeSlice(signature);\n witnessBuf.writeVarInt(legacyPubkeys[0].length);\n witnessBuf.writeSlice(legacyPubkeys[0]);\n psbt.setInputFinalScriptwitness(i, witnessBuf.buffer());\n if (isWrappedSegwit) {\n if (!redeemScript || redeemScript.length == 0) {\n throw new Error(\n \"Expected non-empty redeemscript. Can't finalize intput \" + i\n );\n }\n const scriptSigBuf = new BufferWriter();\n // Push redeemScript length\n scriptSigBuf.writeUInt8(redeemScript.length);\n scriptSigBuf.writeSlice(redeemScript);\n psbt.setInputFinalScriptsig(i, scriptSigBuf.buffer());\n }\n } else {\n // Legacy input\n const scriptSig = new BufferWriter();\n writePush(scriptSig, signature);\n writePush(scriptSig, legacyPubkeys[0]);\n psbt.setInputFinalScriptsig(i, scriptSig.buffer());\n }\n } else {\n // Taproot input\n const signature = psbt.getInputTapKeySig(i);\n if (!signature) {\n throw Error(\"No taproot signature found\");\n }\n if (signature.length != 64 && signature.length != 65) {\n throw Error(\"Unexpected length of schnorr signature.\");\n }\n const witnessBuf = new BufferWriter();\n witnessBuf.writeVarInt(1);\n witnessBuf.writeVarSlice(signature);\n psbt.setInputFinalScriptwitness(i, witnessBuf.buffer());\n }\n clearFinalizedInput(psbt, i);\n }\n}\n\n/**\n * Deletes fields that are no longer neccesary from the psbt.\n *\n * Note, the spec doesn't say anything about removing ouput fields\n * like PSBT_OUT_BIP32_DERIVATION_PATH and others, so we keep them\n * without actually knowing why. I think we should remove them too.\n */\nfunction clearFinalizedInput(psbt: PsbtV2, inputIndex: number) {\n const keyTypes = [\n psbtIn.BIP32_DERIVATION,\n psbtIn.PARTIAL_SIG,\n psbtIn.TAP_BIP32_DERIVATION,\n psbtIn.TAP_KEY_SIG,\n ];\n const witnessUtxoAvailable = !!psbt.getInputWitnessUtxo(inputIndex);\n const nonWitnessUtxoAvailable = !!psbt.getInputNonWitnessUtxo(inputIndex);\n if (witnessUtxoAvailable && nonWitnessUtxoAvailable) {\n // Remove NON_WITNESS_UTXO for segwit v0 as it's only needed while signing.\n // Segwit v1 doesn't have NON_WITNESS_UTXO set.\n // See https://github.com/bitcoin/bips/blob/master/bip-0174.mediawiki#cite_note-7\n keyTypes.push(psbtIn.NON_WITNESS_UTXO);\n }\n psbt.deleteInputEntries(inputIndex, keyTypes);\n}\n\n/**\n * Writes a script push operation to buf, which looks different\n * depending on the size of the data. See\n * https://en.bitcoin.it/wiki/Script#Constants\n *\n * @param buf the BufferWriter to write to\n * @param data the Buffer to be pushed.\n */\nfunction writePush(buf: BufferWriter, data: Buffer) {\n if (data.length <= 75) {\n buf.writeUInt8(data.length);\n } else if (data.length <= 256) {\n buf.writeUInt8(76);\n buf.writeUInt8(data.length);\n } else if (data.length <= 256 * 256) {\n buf.writeUInt8(77);\n const b = Buffer.alloc(2);\n b.writeUInt16LE(data.length, 0);\n buf.writeSlice(b);\n }\n buf.writeSlice(data);\n}\n", "export function getVarint(data: Buffer, offset: number): [number, number] {\n if (data[offset] < 0xfd) {\n return [data[offset], 1];\n }\n\n if (data[offset] === 0xfd) {\n return [(data[offset + 2] << 8) + data[offset + 1], 3];\n }\n\n if (data[offset] === 0xfe) {\n return [\n (data[offset + 4] << 24) +\n (data[offset + 3] << 16) +\n (data[offset + 2] << 8) +\n data[offset + 1],\n 5,\n ];\n }\n\n throw new Error(\"getVarint called with unexpected parameters\");\n}\nexport function createVarint(value: number): Buffer {\n if (value < 0xfd) {\n const buffer = Buffer.alloc(1);\n buffer[0] = value;\n return buffer;\n }\n\n if (value <= 0xffff) {\n const buffer = Buffer.alloc(3);\n buffer[0] = 0xfd;\n buffer[1] = value & 0xff;\n buffer[2] = (value >> 8) & 0xff;\n return buffer;\n }\n\n const buffer = Buffer.alloc(5);\n buffer[0] = 0xfe;\n buffer[1] = value & 0xff;\n buffer[2] = (value >> 8) & 0xff;\n buffer[3] = (value >> 16) & 0xff;\n buffer[4] = (value >> 24) & 0xff;\n return buffer;\n}\n", "import type { Transaction } from \"./types\";\nimport { createVarint } from \"./varint\";\n\n/**\n @example\nconst tx1 = btc.splitTransaction(\"01000000014ea60aeac5252c14291d428915bd7ccd1bfc4af009f4d4dc57ae597ed0420b71010000008a47304402201f36a12c240dbf9e566bc04321050b1984cd6eaf6caee8f02bb0bfec08e3354b022012ee2aeadcbbfd1e92959f57c15c1c6debb757b798451b104665aa3010569b49014104090b15bde569386734abf2a2b99f9ca6a50656627e77de663ca7325702769986cf26cc9dd7fdea0af432c8e2becc867c932e1b9dd742f2a108997c2252e2bdebffffffff0281b72e00000000001976a91472a5d75c8d2d0565b656a5232703b167d50d5a2b88aca0860100000000001976a9144533f5fb9b4817f713c48f0bfe96b9f50c476c9b88ac00000000\");\nconst outputScript = btc.serializeTransactionOutputs(tx1).toString('hex');\n */\nexport function serializeTransactionOutputs({ outputs }: Transaction): Buffer {\n let outputBuffer = Buffer.alloc(0);\n\n if (typeof outputs !== \"undefined\") {\n outputBuffer = Buffer.concat([outputBuffer, createVarint(outputs.length)]);\n outputs.forEach((output) => {\n outputBuffer = Buffer.concat([\n outputBuffer,\n output.amount,\n createVarint(output.script.length),\n output.script,\n ]);\n });\n }\n\n return outputBuffer;\n}\nexport function serializeTransaction(\n transaction: Transaction,\n skipWitness: boolean,\n timestamp?: Buffer,\n additionals: string[] = []\n) {\n const isDecred = additionals.includes(\"decred\");\n const isZcash = additionals.includes(\"zcash\");\n const isBech32 = additionals.includes(\"bech32\");\n let inputBuffer = Buffer.alloc(0);\n const useWitness =\n typeof transaction[\"witness\"] != \"undefined\" && !skipWitness;\n transaction.inputs.forEach((input) => {\n inputBuffer =\n isDecred || isBech32\n ? Buffer.concat([\n inputBuffer,\n input.prevout,\n Buffer.from([0x00]), //tree\n input.sequence,\n ])\n : Buffer.concat([\n inputBuffer,\n input.prevout,\n createVarint(input.script.length),\n input.script,\n input.sequence,\n ]);\n });\n let outputBuffer = serializeTransactionOutputs(transaction);\n\n if (\n typeof transaction.outputs !== \"undefined\" &&\n typeof transaction.locktime !== \"undefined\"\n ) {\n outputBuffer = Buffer.concat([\n outputBuffer,\n (useWitness && transaction.witness) || Buffer.alloc(0),\n transaction.locktime,\n transaction.nExpiryHeight || Buffer.alloc(0),\n transaction.extraData || Buffer.alloc(0),\n ]);\n }\n // from to https://zips.z.cash/zip-0225, zcash is different with other coins, the lock_time and nExpiryHeight fields are before the inputs and outputs\n if (isZcash) {\n return Buffer.concat([\n transaction.version,\n transaction.nVersionGroupId || Buffer.alloc(0),\n Buffer.from([0xb4, 0xd0, 0xd6, 0xc2]), // Zcash Consensus Branch ID: 0xC2D6D0B4 refer to https://z.cash/upgrade/nu5/\n transaction.locktime || Buffer.from([0x00, 0x00, 0x00, 0x00]),\n transaction.nExpiryHeight || Buffer.from([0x00, 0x00, 0x00, 0x00]),\n useWitness ? Buffer.from(\"0001\", \"hex\") : Buffer.alloc(0),\n createVarint(transaction.inputs.length),\n inputBuffer,\n outputBuffer,\n ]);\n }\n return Buffer.concat([\n transaction.version,\n timestamp ? timestamp : Buffer.alloc(0),\n transaction.nVersionGroupId || Buffer.alloc(0),\n useWitness ? Buffer.from(\"0001\", \"hex\") : Buffer.alloc(0),\n createVarint(transaction.inputs.length),\n inputBuffer,\n outputBuffer,\n ]);\n}\n", "import bs58 from \"bs58\";\nimport RIPEMD160 from \"ripemd160\";\nimport sha from \"sha.js\";\nimport type Transport from \"@ledgerhq/hw-transport\";\nimport type { CreateTransactionArg } from \"./createTransaction\";\nimport { createTransaction } from \"./createTransaction\";\nimport type { AddressFormat } from \"./getWalletPublicKey\";\nimport { getWalletPublicKey } from \"./getWalletPublicKey\";\nimport { pathArrayToString, pathStringToArray } from \"./bip32\";\nexport type { AddressFormat };\n\n/**\n * Bitcoin API.\n *\n * @example\n * import Btc from \"@ledgerhq/hw-app-btc\";\n * const btc = new Btc({ transport, currency: \"zcash\" });\n */\n\nexport default class BtcOld {\n constructor(private transport: Transport) {}\n\n private derivationsCache = {};\n private async derivatePath(path: string) {\n if (this.derivationsCache[path]) return this.derivationsCache[path];\n const res = await getWalletPublicKey(this.transport, {\n path,\n });\n this.derivationsCache[path] = res;\n return res;\n }\n\n async getWalletXpub({\n path,\n xpubVersion,\n }: {\n path: string;\n xpubVersion: number;\n }): Promise {\n const pathElements = pathStringToArray(path);\n const parentPath = pathElements.slice(0, -1);\n const parentDerivation = await this.derivatePath(\n pathArrayToString(parentPath)\n );\n const accountDerivation = await this.derivatePath(path);\n const fingerprint = makeFingerprint(\n compressPublicKeySECP256(Buffer.from(parentDerivation.publicKey, \"hex\"))\n );\n const xpub = makeXpub(\n xpubVersion,\n pathElements.length,\n fingerprint,\n pathElements[pathElements.length - 1],\n Buffer.from(accountDerivation.chainCode, \"hex\"),\n compressPublicKeySECP256(Buffer.from(accountDerivation.publicKey, \"hex\"))\n );\n return xpub;\n }\n\n /**\n * @param path a BIP 32 path\n * @param options an object with optional these fields:\n *\n * - verify (boolean) will ask user to confirm the address on the device\n *\n * - format (\"legacy\" | \"p2sh\" | \"bech32\" | \"cashaddr\") to use different bitcoin address formatter.\n *\n * NB The normal usage is to use:\n *\n * - legacy format with 44' paths\n *\n * - p2sh format with 49' paths\n *\n * - bech32 format with 173' paths\n *\n * - cashaddr in case of Bitcoin Cash\n *\n * @example\n * btc.getWalletPublicKey(\"44'/0'/0'/0/0\").then(o => o.bitcoinAddress)\n * btc.getWalletPublicKey(\"49'/0'/0'/0/0\", { format: \"p2sh\" }).then(o => o.bitcoinAddress)\n */\n getWalletPublicKey(\n path: string,\n opts?: {\n verify?: boolean;\n format?: AddressFormat;\n }\n ): Promise<{\n publicKey: string;\n bitcoinAddress: string;\n chainCode: string;\n }> {\n if (opts?.format === \"bech32m\") {\n throw new Error(\"Unsupported address format bech32m\");\n }\n return getWalletPublicKey(this.transport, { ...opts, path });\n }\n\n /**\n * To sign a transaction involving standard (P2PKH) inputs, call createTransaction with the following parameters\n * @param inputs is an array of [ transaction, output_index, optional redeem script, optional sequence ] where\n *\n * * transaction is the previously computed transaction object for this UTXO\n * * output_index is the output in the transaction used as input for this UTXO (counting from 0)\n * * redeem script is the optional redeem script to use when consuming a Segregated Witness input\n * * sequence is the sequence number to use for this input (when using RBF), or non present\n * @param associatedKeysets is an array of BIP 32 paths pointing to the path to the private key used for each UTXO\n * @param changePath is an optional BIP 32 path pointing to the path to the public key used to compute the change address\n * @param outputScriptHex is the hexadecimal serialized outputs of the transaction to sign\n * @param lockTime is the optional lockTime of the transaction to sign, or default (0)\n * @param sigHashType is the hash type of the transaction to sign, or default (all)\n * @param segwit is an optional boolean indicating wether to use segwit or not\n * @param initialTimestamp is an optional timestamp of the function call to use for coins that necessitate timestamps only, (not the one that the tx will include)\n * @param additionals list of additionnal options\n *\n * - \"bech32\" for spending native segwit outputs\n * - \"abc\" for bch\n * - \"gold\" for btg\n * - \"bipxxx\" for using BIPxxx\n * - \"sapling\" to indicate a zec transaction is supporting sapling (to be set over block 419200)\n * @param expiryHeight is an optional Buffer for zec overwinter / sapling Txs\n * @param useTrustedInputForSegwit trust inputs for segwit transactions\n * @return the signed transaction ready to be broadcast\n * @example\n btc.createTransaction({\n inputs: [ [tx1, 1] ],\n associatedKeysets: [\"0'/0/0\"],\n outputScriptHex: \"01905f0100000000001976a91472a5d75c8d2d0565b656a5232703b167d50d5a2b88ac\"\n }).then(res => ...);\n */\n createPaymentTransaction(arg: CreateTransactionArg): Promise {\n if (arguments.length > 1) {\n throw new Error(\n \"@ledgerhq/hw-app-btc: createPaymentTransaction multi argument signature is deprecated. please switch to named parameters.\"\n );\n }\n return createTransaction(this.transport, arg);\n }\n}\n\nfunction makeFingerprint(compressedPubKey) {\n return hash160(compressedPubKey).slice(0, 4);\n}\n\nfunction asBufferUInt32BE(n: number): Buffer {\n const buf = Buffer.allocUnsafe(4);\n buf.writeUInt32BE(n, 0);\n return buf;\n}\n\nconst compressPublicKeySECP256 = (publicKey: Buffer) =>\n Buffer.concat([\n Buffer.from([0x02 + (publicKey[64] & 0x01)]),\n publicKey.slice(1, 33),\n ]);\n\nfunction makeXpub(\n version: number,\n depth: number,\n parentFingerprint: Buffer,\n index: number,\n chainCode: Buffer,\n pubKey: Buffer\n) {\n const indexBuffer = asBufferUInt32BE(index);\n indexBuffer[0] |= 0x80;\n const extendedKeyBytes = Buffer.concat([\n asBufferUInt32BE(version),\n Buffer.from([depth]),\n parentFingerprint,\n indexBuffer,\n chainCode,\n pubKey,\n ]);\n const checksum = hash256(extendedKeyBytes).slice(0, 4);\n return bs58.encode(Buffer.concat([extendedKeyBytes, checksum]));\n}\n\nfunction sha256(buffer: Buffer | string) {\n return sha(\"sha256\").update(buffer).digest();\n}\nfunction hash256(buffer: Buffer | string) {\n return sha256(sha256(buffer));\n}\nfunction ripemd160(buffer: Buffer | string) {\n return new RIPEMD160().update(buffer).digest();\n}\nfunction hash160(buffer: Buffer | string) {\n return ripemd160(sha256(buffer));\n}\n", "import { log } from \"@ledgerhq/logs\";\nimport type Transport from \"@ledgerhq/hw-transport\";\nimport { hashPublicKey } from \"./hashPublicKey\";\nimport { getWalletPublicKey } from \"./getWalletPublicKey\";\nimport type { AddressFormat } from \"./getWalletPublicKey\";\nimport { getTrustedInput } from \"./getTrustedInput\";\nimport { startUntrustedHashTransactionInput } from \"./startUntrustedHashTransactionInput\";\nimport { serializeTransaction } from \"./serializeTransaction\";\nimport { getTrustedInputBIP143 } from \"./getTrustedInputBIP143\";\nimport { compressPublicKey } from \"./compressPublicKey\";\nimport { signTransaction } from \"./signTransaction\";\nimport { hashOutputFull, provideOutputFullChangePath } from \"./finalizeInput\";\nimport { getAppAndVersion } from \"./getAppAndVersion\";\nimport type { TransactionOutput, Transaction } from \"./types\";\nimport {\n DEFAULT_LOCKTIME,\n DEFAULT_SEQUENCE,\n SIGHASH_ALL,\n OP_DUP,\n OP_HASH160,\n HASH_SIZE,\n OP_EQUALVERIFY,\n OP_CHECKSIG,\n} from \"./constants\";\nimport { shouldUseTrustedInputForSegwit } from \"./shouldUseTrustedInputForSegwit\";\nexport type { AddressFormat };\nconst defaultsSignTransaction = {\n lockTime: DEFAULT_LOCKTIME,\n sigHashType: SIGHASH_ALL,\n segwit: false,\n additionals: [],\n onDeviceStreaming: (_e) => {},\n onDeviceSignatureGranted: () => {},\n onDeviceSignatureRequested: () => {},\n};\n\n/**\n *\n */\nexport type CreateTransactionArg = {\n inputs: Array<\n [Transaction, number, string | null | undefined, number | null | undefined]\n >;\n associatedKeysets: string[];\n changePath?: string;\n outputScriptHex: string;\n lockTime?: number;\n sigHashType?: number;\n segwit?: boolean;\n initialTimestamp?: number;\n additionals: Array;\n expiryHeight?: Buffer;\n useTrustedInputForSegwit?: boolean;\n onDeviceStreaming?: (arg0: {\n progress: number;\n total: number;\n index: number;\n }) => void;\n onDeviceSignatureRequested?: () => void;\n onDeviceSignatureGranted?: () => void;\n};\nexport async function createTransaction(\n transport: Transport,\n arg: CreateTransactionArg\n): Promise {\n const signTx = { ...defaultsSignTransaction, ...arg };\n const {\n inputs,\n associatedKeysets,\n changePath,\n outputScriptHex,\n lockTime,\n sigHashType,\n segwit,\n initialTimestamp,\n additionals,\n expiryHeight,\n onDeviceStreaming,\n onDeviceSignatureGranted,\n onDeviceSignatureRequested,\n } = signTx;\n let useTrustedInputForSegwit = signTx.useTrustedInputForSegwit;\n\n if (useTrustedInputForSegwit === undefined) {\n try {\n const a = await getAppAndVersion(transport);\n useTrustedInputForSegwit = shouldUseTrustedInputForSegwit(a);\n } catch (e: any) {\n if (e.statusCode === 0x6d00) {\n useTrustedInputForSegwit = false;\n } else {\n throw e;\n }\n }\n }\n\n // loop: 0 or 1 (before and after)\n // i: index of the input being streamed\n // i goes on 0...n, inluding n. in order for the progress value to go to 1\n // we normalize the 2 loops to make a global percentage\n const notify = (loop, i) => {\n const { length } = inputs;\n if (length < 3) return; // there is not enough significant event to worth notifying (aka just use a spinner)\n\n const index = length * loop + i;\n const total = 2 * length;\n const progress = index / total;\n onDeviceStreaming({\n progress,\n total,\n index,\n });\n };\n\n const isDecred = additionals.includes(\"decred\");\n const isZcash = additionals.includes(\"zcash\");\n const isXST = additionals.includes(\"stealthcoin\");\n const startTime = Date.now();\n const sapling = additionals.includes(\"sapling\");\n const bech32 = segwit && additionals.includes(\"bech32\");\n const useBip143 =\n segwit ||\n (!!additionals &&\n (additionals.includes(\"abc\") ||\n additionals.includes(\"gold\") ||\n additionals.includes(\"bip143\"))) ||\n (!!expiryHeight && !isDecred);\n // Inputs are provided as arrays of [transaction, output_index, optional redeem script, optional sequence]\n // associatedKeysets are provided as arrays of [path]\n const lockTimeBuffer = Buffer.alloc(4);\n lockTimeBuffer.writeUInt32LE(lockTime, 0);\n const nullScript = Buffer.alloc(0);\n const nullPrevout = Buffer.alloc(0);\n const defaultVersion = Buffer.alloc(4);\n !!expiryHeight && !isDecred\n ? defaultVersion.writeUInt32LE(\n isZcash ? 0x80000005 : sapling ? 0x80000004 : 0x80000003,\n 0\n ) // v5 format for zcash refer to https://zips.z.cash/zip-0225\n : isXST\n ? defaultVersion.writeUInt32LE(2, 0)\n : defaultVersion.writeUInt32LE(1, 0);\n // Default version to 2 for XST not to have timestamp\n const trustedInputs: Array = [];\n const regularOutputs: Array = [];\n const signatures: Buffer[] = [];\n const publicKeys: Buffer[] = [];\n let firstRun = true;\n const resuming = false;\n const targetTransaction: Transaction = {\n inputs: [],\n version: defaultVersion,\n timestamp: Buffer.alloc(0),\n };\n const getTrustedInputCall =\n useBip143 && !useTrustedInputForSegwit\n ? getTrustedInputBIP143\n : getTrustedInput;\n const outputScript = Buffer.from(outputScriptHex, \"hex\");\n notify(0, 0);\n // first pass on inputs to get trusted inputs\n for (const input of inputs) {\n if (!resuming) {\n const trustedInput = await getTrustedInputCall(\n transport,\n input[1],\n input[0],\n additionals\n );\n log(\"hw\", \"got trustedInput=\" + trustedInput);\n const sequence = Buffer.alloc(4);\n sequence.writeUInt32LE(\n input.length >= 4 && typeof input[3] === \"number\"\n ? input[3]\n : DEFAULT_SEQUENCE,\n 0\n );\n trustedInputs.push({\n trustedInput: true,\n value: Buffer.from(trustedInput, \"hex\"),\n sequence,\n });\n }\n\n const { outputs } = input[0];\n const index = input[1];\n\n if (outputs && index <= outputs.length - 1) {\n regularOutputs.push(outputs[index]);\n }\n\n if (expiryHeight && !isDecred) {\n targetTransaction.nVersionGroupId = Buffer.from(\n // nVersionGroupId is 0x26A7270A for zcash from https://z.cash/upgrade/nu5/\n isZcash\n ? [0x0a, 0x27, 0xa7, 0x26]\n : sapling\n ? [0x85, 0x20, 0x2f, 0x89]\n : [0x70, 0x82, 0xc4, 0x03]\n );\n targetTransaction.nExpiryHeight = expiryHeight;\n // For sapling : valueBalance (8), nShieldedSpend (1), nShieldedOutput (1), nJoinSplit (1)\n // Overwinter : use nJoinSplit (1)\n targetTransaction.extraData = Buffer.from(\n sapling\n ? [0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00]\n : [0x00]\n );\n } else if (isDecred) {\n targetTransaction.nExpiryHeight = expiryHeight;\n }\n }\n\n targetTransaction.inputs = inputs.map((input, idx) => {\n const sequence = Buffer.alloc(4);\n sequence.writeUInt32LE(\n input.length >= 4 && typeof input[3] === \"number\"\n ? input[3]\n : DEFAULT_SEQUENCE,\n 0\n );\n return {\n script: isZcash ? regularOutputs[idx].script : nullScript,\n prevout: nullPrevout,\n sequence,\n };\n });\n\n if (!resuming) {\n // Collect public keys\n const result: {\n publicKey: string;\n bitcoinAddress: string;\n chainCode: string;\n }[] = [];\n\n for (let i = 0; i < inputs.length; i++) {\n const r = await getWalletPublicKey(transport, {\n path: associatedKeysets[i],\n });\n notify(0, i + 1);\n result.push(r);\n }\n\n for (let i = 0; i < result.length; i++) {\n publicKeys.push(\n compressPublicKey(Buffer.from(result[i].publicKey, \"hex\"))\n );\n }\n }\n\n if (initialTimestamp !== undefined) {\n targetTransaction.timestamp = Buffer.alloc(4);\n targetTransaction.timestamp.writeUInt32LE(\n Math.floor(initialTimestamp + (Date.now() - startTime) / 1000),\n 0\n );\n }\n\n onDeviceSignatureRequested();\n\n if (useBip143) {\n // Do the first run with all inputs\n await startUntrustedHashTransactionInput(\n transport,\n true,\n targetTransaction,\n trustedInputs,\n true,\n !!expiryHeight,\n additionals,\n useTrustedInputForSegwit\n );\n\n if (!resuming && changePath) {\n await provideOutputFullChangePath(transport, changePath);\n }\n\n await hashOutputFull(transport, outputScript);\n }\n\n if (!!expiryHeight && !isDecred) {\n await signTransaction(transport, \"\", lockTime, SIGHASH_ALL, expiryHeight);\n }\n\n // Do the second run with the individual transaction\n for (let i = 0; i < inputs.length; i++) {\n const input = inputs[i];\n const script =\n inputs[i].length >= 3 && typeof input[2] === \"string\"\n ? Buffer.from(input[2], \"hex\")\n : !segwit\n ? regularOutputs[i].script\n : Buffer.concat([\n Buffer.from([OP_DUP, OP_HASH160, HASH_SIZE]),\n hashPublicKey(publicKeys[i]),\n Buffer.from([OP_EQUALVERIFY, OP_CHECKSIG]),\n ]);\n const pseudoTX = Object.assign({}, targetTransaction);\n const pseudoTrustedInputs = useBip143 ? [trustedInputs[i]] : trustedInputs;\n\n if (useBip143) {\n pseudoTX.inputs = [{ ...pseudoTX.inputs[i], script }];\n } else {\n pseudoTX.inputs[i].script = script;\n }\n\n await startUntrustedHashTransactionInput(\n transport,\n !useBip143 && firstRun,\n pseudoTX,\n pseudoTrustedInputs,\n useBip143,\n !!expiryHeight && !isDecred,\n additionals,\n useTrustedInputForSegwit\n );\n\n if (!useBip143) {\n if (!resuming && changePath) {\n await provideOutputFullChangePath(transport, changePath);\n }\n\n await hashOutputFull(transport, outputScript, additionals);\n }\n\n if (firstRun) {\n onDeviceSignatureGranted();\n notify(1, 0);\n }\n\n const signature = await signTransaction(\n transport,\n associatedKeysets[i],\n lockTime,\n sigHashType,\n expiryHeight,\n additionals\n );\n notify(1, i + 1);\n signatures.push(signature);\n targetTransaction.inputs[i].script = nullScript;\n\n if (firstRun) {\n firstRun = false;\n }\n }\n\n // Populate the final input scripts\n for (let i = 0; i < inputs.length; i++) {\n if (segwit) {\n targetTransaction.witness = Buffer.alloc(0);\n\n if (!bech32) {\n targetTransaction.inputs[i].script = Buffer.concat([\n Buffer.from(\"160014\", \"hex\"),\n hashPublicKey(publicKeys[i]),\n ]);\n }\n } else {\n const signatureSize = Buffer.alloc(1);\n const keySize = Buffer.alloc(1);\n signatureSize[0] = signatures[i].length;\n keySize[0] = publicKeys[i].length;\n targetTransaction.inputs[i].script = Buffer.concat([\n signatureSize,\n signatures[i],\n keySize,\n publicKeys[i],\n ]);\n }\n\n const offset = useBip143 && !useTrustedInputForSegwit ? 0 : 4;\n targetTransaction.inputs[i].prevout = trustedInputs[i].value.slice(\n offset,\n offset + 0x24\n );\n }\n targetTransaction.locktime = lockTimeBuffer;\n let result = Buffer.concat([\n serializeTransaction(\n targetTransaction,\n false,\n targetTransaction.timestamp,\n additionals\n ),\n outputScript,\n ]);\n\n if (segwit && !isDecred) {\n let witness = Buffer.alloc(0);\n\n for (let i = 0; i < inputs.length; i++) {\n const tmpScriptData = Buffer.concat([\n Buffer.from(\"02\", \"hex\"),\n Buffer.from([signatures[i].length]),\n signatures[i],\n Buffer.from([publicKeys[i].length]),\n publicKeys[i],\n ]);\n witness = Buffer.concat([witness, tmpScriptData]);\n }\n\n result = Buffer.concat([result, witness]);\n }\n\n // from to https://zips.z.cash/zip-0225, zcash is different with other coins, the lock_time and nExpiryHeight fields are before the inputs and outputs\n if (!isZcash) {\n result = Buffer.concat([result, lockTimeBuffer]);\n if (expiryHeight) {\n result = Buffer.concat([\n result,\n targetTransaction.nExpiryHeight || Buffer.alloc(0),\n targetTransaction.extraData || Buffer.alloc(0),\n ]);\n }\n }\n if (isDecred) {\n let decredWitness = Buffer.from([targetTransaction.inputs.length]);\n inputs.forEach((input, inputIndex) => {\n decredWitness = Buffer.concat([\n decredWitness,\n Buffer.from([0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00]),\n Buffer.from([0x00, 0x00, 0x00, 0x00]), //Block height\n Buffer.from([0xff, 0xff, 0xff, 0xff]), //Block index\n Buffer.from([targetTransaction.inputs[inputIndex].script.length]),\n targetTransaction.inputs[inputIndex].script,\n ]);\n });\n result = Buffer.concat([result, decredWitness]);\n }\n if (isZcash) {\n result = Buffer.concat([result, Buffer.from([0x00, 0x00, 0x00])]);\n }\n return result.toString(\"hex\");\n}\n", "import type Transport from \"@ledgerhq/hw-transport\";\nimport { bip32asBuffer } from \"./bip32\";\n\n/**\n * address format is one of legacy | p2sh | bech32 | cashaddr\n */\nexport type AddressFormat =\n | \"legacy\"\n | \"p2sh\"\n | \"bech32\"\n | \"bech32m\"\n | \"cashaddr\";\nconst addressFormatMap = {\n legacy: 0,\n p2sh: 1,\n bech32: 2,\n cashaddr: 3,\n};\nexport async function getWalletPublicKey(\n transport: Transport,\n options: {\n path: string;\n verify?: boolean;\n format?: AddressFormat;\n }\n): Promise<{\n publicKey: string;\n bitcoinAddress: string;\n chainCode: string;\n}> {\n const { path, verify, format } = {\n verify: false,\n format: \"legacy\",\n ...options,\n };\n\n if (!(format in addressFormatMap)) {\n throw new Error(\"btc.getWalletPublicKey invalid format=\" + format);\n }\n\n const buffer = bip32asBuffer(path);\n const p1 = verify ? 1 : 0;\n const p2 = addressFormatMap[format];\n const response = await transport.send(0xe0, 0x40, p1, p2, buffer);\n const publicKeyLength = response[0];\n const addressLength = response[1 + publicKeyLength];\n const publicKey = response.slice(1, 1 + publicKeyLength).toString(\"hex\");\n const bitcoinAddress = response\n .slice(1 + publicKeyLength + 1, 1 + publicKeyLength + 1 + addressLength)\n .toString(\"ascii\");\n const chainCode = response\n .slice(\n 1 + publicKeyLength + 1 + addressLength,\n 1 + publicKeyLength + 1 + addressLength + 32\n )\n .toString(\"hex\");\n return {\n publicKey,\n bitcoinAddress,\n chainCode,\n };\n}\n", "import invariant from \"invariant\";\nimport type Transport from \"@ledgerhq/hw-transport\";\nimport type { Transaction } from \"./types\";\nimport { MAX_SCRIPT_BLOCK } from \"./constants\";\nimport { createVarint } from \"./varint\";\nexport async function getTrustedInputRaw(\n transport: Transport,\n transactionData: Buffer,\n indexLookup?: number | null | undefined\n): Promise {\n let data;\n let firstRound = false;\n\n if (typeof indexLookup === \"number\") {\n firstRound = true;\n const prefix = Buffer.alloc(4);\n prefix.writeUInt32BE(indexLookup, 0);\n data = Buffer.concat([prefix, transactionData], transactionData.length + 4);\n } else {\n data = transactionData;\n }\n\n const trustedInput = await transport.send(\n 0xe0,\n 0x42,\n firstRound ? 0x00 : 0x80,\n 0x00,\n data\n );\n const res = trustedInput.slice(0, trustedInput.length - 2).toString(\"hex\");\n return res;\n}\nexport async function getTrustedInput(\n transport: Transport,\n indexLookup: number,\n transaction: Transaction,\n additionals: Array = []\n): Promise {\n const { version, inputs, outputs, locktime, nExpiryHeight, extraData } =\n transaction;\n\n if (!outputs || !locktime) {\n throw new Error(\"getTrustedInput: locktime & outputs is expected\");\n }\n\n const isDecred = additionals.includes(\"decred\");\n const isXST = additionals.includes(\"stealthcoin\");\n\n const processScriptBlocks = async (script, sequence?: Buffer) => {\n const seq = sequence || Buffer.alloc(0);\n const scriptBlocks: Buffer[] = [];\n let offset = 0;\n\n while (offset !== script.length) {\n const blockSize =\n script.length - offset > MAX_SCRIPT_BLOCK\n ? MAX_SCRIPT_BLOCK\n : script.length - offset;\n\n if (offset + blockSize !== script.length) {\n scriptBlocks.push(script.slice(offset, offset + blockSize));\n } else {\n scriptBlocks.push(\n Buffer.concat([script.slice(offset, offset + blockSize), seq])\n );\n }\n\n offset += blockSize;\n }\n\n // Handle case when no script length: we still want to pass the sequence\n // relatable: https://github.com/LedgerHQ/ledger-live-desktop/issues/1386\n if (script.length === 0) {\n scriptBlocks.push(seq);\n }\n\n let res;\n\n for (const scriptBlock of scriptBlocks) {\n res = await getTrustedInputRaw(transport, scriptBlock);\n }\n\n return res;\n };\n\n const processWholeScriptBlock = (block) =>\n getTrustedInputRaw(transport, block);\n\n await getTrustedInputRaw(\n transport,\n Buffer.concat([\n transaction.version,\n transaction.timestamp || Buffer.alloc(0),\n transaction.nVersionGroupId || Buffer.alloc(0),\n createVarint(inputs.length),\n ]),\n indexLookup\n );\n\n for (const input of inputs) {\n const isXSTV2 =\n isXST &&\n Buffer.compare(version, Buffer.from([0x02, 0x00, 0x00, 0x00])) === 0;\n const treeField = isDecred\n ? input.tree || Buffer.from([0x00])\n : Buffer.alloc(0);\n const data = Buffer.concat([\n input.prevout,\n treeField,\n isXSTV2 ? Buffer.from([0x00]) : createVarint(input.script.length),\n ]);\n await getTrustedInputRaw(transport, data);\n // iteration (eachSeries) ended\n // TODO notify progress\n // deferred.notify(\"input\");\n // Reference: https://github.com/StealthSend/Stealth/commit/5be35d6c2c500b32ed82e5d6913d66d18a4b0a7f#diff-e8db9b851adc2422aadfffca88f14c91R566\n await (isDecred\n ? processWholeScriptBlock(Buffer.concat([input.script, input.sequence]))\n : isXSTV2\n ? processWholeScriptBlock(input.sequence)\n : processScriptBlocks(input.script, input.sequence));\n }\n\n await getTrustedInputRaw(transport, createVarint(outputs.length));\n\n for (const output of outputs) {\n const data = Buffer.concat([\n output.amount,\n isDecred ? Buffer.from([0x00, 0x00]) : Buffer.alloc(0), //Version script\n createVarint(output.script.length),\n output.script,\n ]);\n await getTrustedInputRaw(transport, data);\n }\n\n const endData: Buffer[] = [];\n\n if (nExpiryHeight && nExpiryHeight.length > 0) {\n endData.push(nExpiryHeight);\n }\n\n if (extraData && extraData.length > 0) {\n endData.push(extraData);\n }\n\n let extraPart;\n\n if (endData.length) {\n const data = Buffer.concat(endData);\n extraPart = isDecred\n ? data\n : Buffer.concat([createVarint(data.length), data]);\n }\n\n const res = await processScriptBlocks(\n Buffer.concat([locktime, extraPart || Buffer.alloc(0)])\n );\n invariant(res, \"missing result in processScriptBlocks\");\n return res;\n}\n", "import type Transport from \"@ledgerhq/hw-transport\";\nimport type { Transaction } from \"./types\";\nimport { createVarint } from \"./varint\";\nimport { MAX_SCRIPT_BLOCK } from \"./constants\";\nexport function startUntrustedHashTransactionInputRaw(\n transport: Transport,\n newTransaction: boolean,\n firstRound: boolean,\n transactionData: Buffer,\n bip143 = false,\n overwinter = false,\n additionals: Array = []\n): Promise {\n const p2 = additionals.includes(\"cashaddr\")\n ? 0x03\n : bip143\n ? additionals.includes(\"sapling\")\n ? 0x05\n : overwinter\n ? 0x04\n : 0x02\n : 0x00;\n return transport.send(\n 0xe0,\n 0x44,\n firstRound ? 0x00 : 0x80,\n newTransaction ? p2 : 0x80,\n transactionData\n );\n}\nexport async function startUntrustedHashTransactionInput(\n transport: Transport,\n newTransaction: boolean,\n transaction: Transaction,\n inputs: Array<{\n trustedInput: boolean;\n value: Buffer;\n }>,\n bip143 = false,\n overwinter = false,\n additionals: Array = [],\n useTrustedInputForSegwit = false\n): Promise {\n let data = Buffer.concat([\n transaction.version,\n transaction.timestamp || Buffer.alloc(0),\n transaction.nVersionGroupId || Buffer.alloc(0),\n createVarint(transaction.inputs.length),\n ]);\n await startUntrustedHashTransactionInputRaw(\n transport,\n newTransaction,\n true,\n data,\n bip143,\n overwinter,\n additionals\n );\n let i = 0;\n const isDecred = additionals.includes(\"decred\");\n\n for (const input of transaction.inputs) {\n let prefix;\n const inputValue = inputs[i].value;\n\n if (bip143) {\n if (useTrustedInputForSegwit && inputs[i].trustedInput) {\n prefix = Buffer.from([0x01, inputValue.length]);\n } else {\n prefix = Buffer.from([0x02]);\n }\n } else {\n if (inputs[i].trustedInput) {\n prefix = Buffer.from([0x01, inputs[i].value.length]);\n } else {\n prefix = Buffer.from([0x00]);\n }\n }\n\n data = Buffer.concat([\n prefix,\n inputValue,\n isDecred ? Buffer.from([0x00]) : Buffer.alloc(0),\n createVarint(input.script.length),\n ]);\n await startUntrustedHashTransactionInputRaw(\n transport,\n newTransaction,\n false,\n data,\n bip143,\n overwinter,\n additionals\n );\n const scriptBlocks: Buffer[] = [];\n let offset = 0;\n\n if (input.script.length === 0) {\n scriptBlocks.push(input.sequence);\n } else {\n while (offset !== input.script.length) {\n const blockSize =\n input.script.length - offset > MAX_SCRIPT_BLOCK\n ? MAX_SCRIPT_BLOCK\n : input.script.length - offset;\n\n if (offset + blockSize !== input.script.length) {\n scriptBlocks.push(input.script.slice(offset, offset + blockSize));\n } else {\n scriptBlocks.push(\n Buffer.concat([\n input.script.slice(offset, offset + blockSize),\n input.sequence,\n ])\n );\n }\n\n offset += blockSize;\n }\n }\n\n for (const scriptBlock of scriptBlocks) {\n await startUntrustedHashTransactionInputRaw(\n transport,\n newTransaction,\n false,\n scriptBlock,\n bip143,\n overwinter,\n additionals\n );\n }\n\n i++;\n }\n}\n", "import Transport from \"@ledgerhq/hw-transport\";\nimport shajs from \"sha.js\";\nimport type { Transaction } from \"./types\";\nimport { serializeTransaction } from \"./serializeTransaction\";\nexport function getTrustedInputBIP143(\n transport: Transport,\n indexLookup: number,\n transaction: Transaction,\n additionals: Array = []\n): string {\n if (!transaction) {\n throw new Error(\"getTrustedInputBIP143: missing tx\");\n }\n\n const isDecred = additionals.includes(\"decred\");\n\n if (isDecred) {\n throw new Error(\"Decred does not implement BIP143\");\n }\n\n let hash = shajs(\"sha256\")\n .update(\n shajs(\"sha256\").update(serializeTransaction(transaction, true)).digest()\n )\n .digest();\n const data = Buffer.alloc(4);\n data.writeUInt32LE(indexLookup, 0);\n const { outputs, locktime } = transaction;\n\n if (!outputs || !locktime) {\n throw new Error(\"getTrustedInputBIP143: locktime & outputs is expected\");\n }\n\n if (!outputs[indexLookup]) {\n throw new Error(\"getTrustedInputBIP143: wrong index\");\n }\n\n hash = Buffer.concat([hash, data, outputs[indexLookup].amount]);\n return hash.toString(\"hex\");\n}\n", "export function compressPublicKey(publicKey: Buffer): Buffer {\n const prefix = (publicKey[64] & 1) !== 0 ? 0x03 : 0x02;\n const prefixBuffer = Buffer.alloc(1);\n prefixBuffer[0] = prefix;\n return Buffer.concat([prefixBuffer, publicKey.slice(1, 1 + 32)]);\n}\n", "import type Transport from \"@ledgerhq/hw-transport\";\nimport { bip32asBuffer } from \"./bip32\";\nexport function signTransaction(\n transport: Transport,\n path: string,\n lockTime: number,\n sigHashType: number,\n expiryHeight?: Buffer,\n additionals: Array = []\n): Promise {\n const isDecred = additionals.includes(\"decred\");\n const pathsBuffer = bip32asBuffer(path);\n const lockTimeBuffer = Buffer.alloc(4);\n lockTimeBuffer.writeUInt32BE(lockTime, 0);\n let buffer = isDecred\n ? Buffer.concat([\n pathsBuffer,\n lockTimeBuffer,\n expiryHeight || Buffer.from([0x00, 0x00, 0x00, 0x00]),\n Buffer.from([sigHashType]),\n ])\n : Buffer.concat([\n pathsBuffer,\n Buffer.from([0x00]),\n lockTimeBuffer,\n Buffer.from([sigHashType]),\n ]);\n\n if (expiryHeight && !isDecred) {\n buffer = Buffer.concat([buffer, expiryHeight]);\n }\n\n return transport.send(0xe0, 0x48, 0x00, 0x00, buffer).then((result) => {\n if (result.length > 0) {\n result[0] = 0x30;\n return result.slice(0, result.length - 2);\n }\n\n return result;\n });\n}\n", "import Transport from \"@ledgerhq/hw-transport\";\nimport { bip32asBuffer } from \"./bip32\";\nimport { MAX_SCRIPT_BLOCK } from \"./constants\";\nexport function provideOutputFullChangePath(\n transport: Transport,\n path: string\n): Promise {\n const buffer = bip32asBuffer(path);\n return transport.send(0xe0, 0x4a, 0xff, 0x00, buffer);\n}\nexport async function hashOutputFull(\n transport: Transport,\n outputScript: Buffer,\n additionals: Array = []\n): Promise {\n let offset = 0;\n const p1 = Number(0x80);\n const isDecred = additionals.includes(\"decred\");\n\n ///WARNING: Decred works only with one call (without chunking)\n //TODO: test without this for Decred\n if (isDecred) {\n return transport.send(0xe0, 0x4a, p1, 0x00, outputScript);\n }\n\n while (offset < outputScript.length) {\n const blockSize =\n offset + MAX_SCRIPT_BLOCK >= outputScript.length\n ? outputScript.length - offset\n : MAX_SCRIPT_BLOCK;\n const p1 = offset + blockSize === outputScript.length ? 0x80 : 0x00;\n const data = outputScript.slice(offset, offset + blockSize);\n await transport.send(0xe0, 0x4a, p1, 0x00, data);\n offset += blockSize;\n }\n}\n", "import invariant from \"invariant\";\nimport Transport from \"@ledgerhq/hw-transport\";\n\nexport type AppAndVersion = {\n name: string;\n version: string;\n flags: number | Buffer;\n};\n\nexport const getAppAndVersion = async (\n transport: Transport\n): Promise => {\n const r = await transport.send(0xb0, 0x01, 0x00, 0x00);\n let i = 0;\n const format = r[i++];\n invariant(format === 1, \"getAppAndVersion: format not supported\");\n const nameLength = r[i++];\n const name = r.slice(i, (i += nameLength)).toString(\"ascii\");\n const versionLength = r[i++];\n const version = r.slice(i, (i += versionLength)).toString(\"ascii\");\n const flagLength = r[i++];\n const flags = r.slice(i, (i += flagLength));\n return {\n name,\n version,\n flags,\n };\n};\n\nexport const checkIsBtcLegacy = async (\n transport: Transport\n): Promise => {\n try {\n // Call old btc API, it will throw an exception with new btc app. It is a workaround to differentiate new/old btc nano app\n await transport.send(0xe0, 0xc4, 0, 0);\n } catch (e: unknown) {\n return false;\n }\n return true;\n};\n", "import semver from \"semver\";\nexport function shouldUseTrustedInputForSegwit({\n version,\n name,\n}: {\n version: string;\n name: string;\n}): boolean {\n if (name === \"Decred\") return false;\n if (name === \"Exchange\") return true;\n return semver.gte(version, \"1.4.0\");\n}\n", "import { createVarint } from \"../varint\";\nimport { hashLeaf, Merkle } from \"./merkle\";\n\n/**\n * This implements \"Merkelized Maps\", documented at\n * https://github.com/LedgerHQ/app-bitcoin-new/blob/master/doc/merkle.md#merkleized-maps\n *\n * A merkelized map consist of two merkle trees, one for the keys of\n * a map and one for the values of the same map, thus the two merkle\n * trees have the same shape. The commitment is the number elements\n * in the map followed by the keys' merkle root followed by the\n * values' merkle root.\n */\nexport class MerkleMap {\n keys: Buffer[];\n keysTree: Merkle;\n values: Buffer[];\n valuesTree: Merkle;\n /**\n * @param keys Sorted list of (unhashed) keys\n * @param values values, in corresponding order as the keys, and of equal length\n */\n constructor(keys: Buffer[], values: Buffer[]) {\n if (keys.length != values.length) {\n throw new Error(\"keys and values should have the same length\");\n }\n\n // Sanity check: verify that keys are actually sorted and with no duplicates\n for (let i = 0; i < keys.length - 1; i++) {\n if (keys[i].toString(\"hex\") >= keys[i + 1].toString(\"hex\")) {\n throw new Error(\"keys must be in strictly increasing order\");\n }\n }\n\n this.keys = keys;\n this.keysTree = new Merkle(keys.map((k) => hashLeaf(k)));\n this.values = values;\n this.valuesTree = new Merkle(values.map((v) => hashLeaf(v)));\n }\n\n commitment(): Buffer {\n // returns a buffer between 65 and 73 (included) bytes long\n return Buffer.concat([\n createVarint(this.keys.length),\n this.keysTree.getRoot(),\n this.valuesTree.getRoot(),\n ]);\n }\n}\n", "import { MerkleMap } from \"./merkleMap\";\nimport { PsbtV2 } from \"./psbtv2\";\n\n/**\n * This class merkelizes a PSBTv2, by merkelizing the different\n * maps of the psbt. This is used during the transaction signing process,\n * where the hardware app can request specific parts of the psbt from the\n * client code and be sure that the response data actually belong to the psbt.\n * The reason for this is the limited amount of memory available to the app,\n * so it can't always store the full psbt in memory.\n *\n * The signing process is documented at\n * https://github.com/LedgerHQ/app-bitcoin-new/blob/master/doc/bitcoin.md#sign_psbt\n */\nexport class MerkelizedPsbt extends PsbtV2 {\n public globalMerkleMap: MerkleMap;\n public inputMerkleMaps: MerkleMap[] = [];\n public outputMerkleMaps: MerkleMap[] = [];\n public inputMapCommitments: Buffer[];\n public outputMapCommitments: Buffer[];\n constructor(psbt: PsbtV2) {\n super();\n psbt.copy(this);\n this.globalMerkleMap = MerkelizedPsbt.createMerkleMap(this.globalMap);\n\n for (let i = 0; i < this.getGlobalInputCount(); i++) {\n this.inputMerkleMaps.push(\n MerkelizedPsbt.createMerkleMap(this.inputMaps[i])\n );\n }\n this.inputMapCommitments = [...this.inputMerkleMaps.values()].map((v) =>\n v.commitment()\n );\n\n for (let i = 0; i < this.getGlobalOutputCount(); i++) {\n this.outputMerkleMaps.push(\n MerkelizedPsbt.createMerkleMap(this.outputMaps[i])\n );\n }\n this.outputMapCommitments = [...this.outputMerkleMaps.values()].map((v) =>\n v.commitment()\n );\n }\n // These public functions are for MerkelizedPsbt.\n getGlobalSize(): number {\n return this.globalMap.size;\n }\n getGlobalKeysValuesRoot(): Buffer {\n return this.globalMerkleMap.commitment();\n }\n\n private static createMerkleMap(map: Map): MerkleMap {\n const sortedKeysStrings = [...map.keys()].sort();\n const values = sortedKeysStrings.map((k) => {\n const v = map.get(k);\n if (!v) {\n throw new Error(\"No value for key \" + k);\n }\n return v;\n });\n const sortedKeys = sortedKeysStrings.map((k) => Buffer.from(k, \"hex\"));\n\n const merkleMap = new MerkleMap(sortedKeys, values);\n return merkleMap;\n }\n}\n", "import { crypto } from \"bitcoinjs-lib\";\nimport { BufferReader } from \"../buffertools\";\nimport { createVarint } from \"../varint\";\nimport { hashLeaf, Merkle } from \"./merkle\";\nimport { MerkleMap } from \"./merkleMap\";\n\nenum ClientCommandCode {\n YIELD = 0x10,\n GET_PREIMAGE = 0x40,\n GET_MERKLE_LEAF_PROOF = 0x41,\n GET_MERKLE_LEAF_INDEX = 0x42,\n GET_MORE_ELEMENTS = 0xa0,\n}\n\nabstract class ClientCommand {\n abstract code: ClientCommandCode;\n abstract execute(request: Buffer): Buffer;\n}\n\nexport class YieldCommand extends ClientCommand {\n private results: Buffer[];\n\n code = ClientCommandCode.YIELD;\n\n constructor(results: Buffer[], private progressCallback: () => void) {\n super();\n this.results = results;\n }\n\n execute(request: Buffer): Buffer {\n this.results.push(Buffer.from(request.subarray(1)));\n this.progressCallback();\n return Buffer.from(\"\");\n }\n}\n\nexport class GetPreimageCommand extends ClientCommand {\n private known_preimages: Map;\n private queue: Buffer[];\n\n code = ClientCommandCode.GET_PREIMAGE;\n\n constructor(known_preimages: Map, queue: Buffer[]) {\n super();\n this.known_preimages = known_preimages;\n this.queue = queue;\n }\n\n execute(request: Buffer): Buffer {\n const req = Buffer.from(request.subarray(1));\n\n // we expect no more data to read\n if (req.length != 1 + 32) {\n throw new Error(\"Invalid request, unexpected trailing data\");\n }\n\n if (req[0] != 0) {\n throw new Error(\"Unsupported request, the first byte should be 0\");\n }\n\n // read the hash\n const hash = Buffer.alloc(32);\n for (let i = 0; i < 32; i++) {\n hash[i] = req[1 + i];\n }\n const req_hash_hex = hash.toString(\"hex\");\n\n const known_preimage = this.known_preimages.get(req_hash_hex);\n if (known_preimage != undefined) {\n const preimage_len_varint = createVarint(known_preimage.length);\n\n // We can send at most 255 - len(preimage_len_out) - 1 bytes in a single message;\n // the rest will be stored in the queue for GET_MORE_ELEMENTS\n const max_payload_size = 255 - preimage_len_varint.length - 1;\n\n const payload_size = Math.min(max_payload_size, known_preimage.length);\n\n if (payload_size < known_preimage.length) {\n for (let i = payload_size; i < known_preimage.length; i++) {\n this.queue.push(Buffer.from([known_preimage[i]]));\n }\n }\n\n return Buffer.concat([\n preimage_len_varint,\n Buffer.from([payload_size]),\n Buffer.from(known_preimage.subarray(0, payload_size)),\n ]);\n }\n\n throw Error(`Requested unknown preimage for: ${req_hash_hex}`);\n }\n}\n\nexport class GetMerkleLeafProofCommand extends ClientCommand {\n private known_trees: Map;\n private queue: Buffer[];\n\n code = ClientCommandCode.GET_MERKLE_LEAF_PROOF;\n\n constructor(known_trees: Map, queue: Buffer[]) {\n super();\n this.known_trees = known_trees;\n this.queue = queue;\n }\n\n execute(request: Buffer): Buffer {\n const req = Buffer.from(request.subarray(1));\n\n if (req.length < 32 + 1 + 1) {\n throw new Error(\"Invalid request, expected at least 34 bytes\");\n }\n\n const reqBuf = new BufferReader(req);\n const hash = reqBuf.readSlice(32);\n const hash_hex = hash.toString(\"hex\");\n\n let tree_size;\n let leaf_index;\n try {\n tree_size = reqBuf.readVarInt();\n leaf_index = reqBuf.readVarInt();\n } catch (e: any) {\n throw new Error(\n \"Invalid request, couldn't parse tree_size or leaf_index\"\n );\n }\n\n const mt = this.known_trees.get(hash_hex);\n if (!mt) {\n throw Error(`Requested Merkle leaf proof for unknown tree: ${hash_hex}`);\n }\n\n if (leaf_index >= tree_size || mt.size() != tree_size) {\n throw Error(\"Invalid index or tree size.\");\n }\n\n if (this.queue.length != 0) {\n throw Error(\n \"This command should not execute when the queue is not empty.\"\n );\n }\n\n const proof = mt.getProof(leaf_index);\n\n const n_response_elements = Math.min(\n Math.floor((255 - 32 - 1 - 1) / 32),\n proof.length\n );\n const n_leftover_elements = proof.length - n_response_elements;\n\n // Add to the queue any proof elements that do not fit the response\n if (n_leftover_elements > 0) {\n this.queue.push(...proof.slice(-n_leftover_elements));\n }\n\n return Buffer.concat([\n mt.getLeafHash(leaf_index),\n Buffer.from([proof.length]),\n Buffer.from([n_response_elements]),\n ...proof.slice(0, n_response_elements),\n ]);\n }\n}\n\nexport class GetMerkleLeafIndexCommand extends ClientCommand {\n private known_trees: Map;\n\n code = ClientCommandCode.GET_MERKLE_LEAF_INDEX;\n\n constructor(known_trees: Map) {\n super();\n this.known_trees = known_trees;\n }\n\n execute(request: Buffer): Buffer {\n const req = Buffer.from(request.subarray(1));\n\n if (req.length != 32 + 32) {\n throw new Error(\"Invalid request, unexpected trailing data\");\n }\n\n // read the root hash\n const root_hash = Buffer.alloc(32);\n for (let i = 0; i < 32; i++) {\n root_hash[i] = req.readUInt8(i);\n }\n const root_hash_hex = root_hash.toString(\"hex\");\n\n // read the leaf hash\n const leef_hash = Buffer.alloc(32);\n for (let i = 0; i < 32; i++) {\n leef_hash[i] = req.readUInt8(32 + i);\n }\n const leef_hash_hex = leef_hash.toString(\"hex\");\n\n const mt = this.known_trees.get(root_hash_hex);\n if (!mt) {\n throw Error(\n `Requested Merkle leaf index for unknown root: ${root_hash_hex}`\n );\n }\n\n let leaf_index = 0;\n let found = 0;\n for (let i = 0; i < mt.size(); i++) {\n if (mt.getLeafHash(i).toString(\"hex\") == leef_hash_hex) {\n found = 1;\n leaf_index = i;\n break;\n }\n }\n return Buffer.concat([Buffer.from([found]), createVarint(leaf_index)]);\n }\n}\n\nexport class GetMoreElementsCommand extends ClientCommand {\n queue: Buffer[];\n\n code = ClientCommandCode.GET_MORE_ELEMENTS;\n\n constructor(queue: Buffer[]) {\n super();\n this.queue = queue;\n }\n\n execute(request: Buffer): Buffer {\n if (request.length != 1) {\n throw new Error(\"Invalid request, unexpected trailing data\");\n }\n\n if (this.queue.length === 0) {\n throw new Error(\"No elements to get\");\n }\n\n // all elements should have the same length\n const element_len = this.queue[0].length;\n if (this.queue.some((el) => el.length != element_len)) {\n throw new Error(\n \"The queue contains elements with different byte length, which is not expected\"\n );\n }\n\n const max_elements = Math.floor(253 / element_len);\n const n_returned_elements = Math.min(max_elements, this.queue.length);\n\n const returned_elements = this.queue.splice(0, n_returned_elements);\n\n return Buffer.concat([\n Buffer.from([n_returned_elements]),\n Buffer.from([element_len]),\n ...returned_elements,\n ]);\n }\n}\n\n/**\n * This class will dispatch a client command coming from the hardware device to\n * the appropriate client command implementation. Those client commands\n * typically requests data from a merkle tree or merkelized maps.\n *\n * A ClientCommandInterpreter is prepared by adding the merkle trees and\n * merkelized maps it should be able to serve to the hardware device. This class\n * doesn't know anything about the semantics of the data it holds, it just\n * serves merkle data. It doesn't even know in what context it is being\n * executed, ie SignPsbt, getWalletAddress, etc.\n *\n * If the command yelds results to the client, as signPsbt does, the yielded\n * data will be accessible after the command completed by calling getYielded(),\n * which will return the yields in the same order as they came in.\n */\nexport class ClientCommandInterpreter {\n private roots: Map = new Map();\n private preimages: Map = new Map();\n\n private yielded: Buffer[] = [];\n\n private queue: Buffer[] = [];\n\n private commands: Map = new Map();\n\n constructor(progressCallback: () => void) {\n const commands = [\n new YieldCommand(this.yielded, progressCallback),\n new GetPreimageCommand(this.preimages, this.queue),\n new GetMerkleLeafIndexCommand(this.roots),\n new GetMerkleLeafProofCommand(this.roots, this.queue),\n new GetMoreElementsCommand(this.queue),\n ];\n\n for (const cmd of commands) {\n if (this.commands.has(cmd.code)) {\n throw new Error(`Multiple commands with code ${cmd.code}`);\n }\n this.commands.set(cmd.code, cmd);\n }\n }\n\n getYielded(): Buffer[] {\n return this.yielded;\n }\n\n addKnownPreimage(preimage: Buffer): void {\n this.preimages.set(crypto.sha256(preimage).toString(\"hex\"), preimage);\n }\n\n addKnownList(elements: Buffer[]): void {\n for (const el of elements) {\n const preimage = Buffer.concat([Buffer.from([0]), el]);\n this.addKnownPreimage(preimage);\n }\n const mt = new Merkle(elements.map((el) => hashLeaf(el)));\n this.roots.set(mt.getRoot().toString(\"hex\"), mt);\n }\n\n addKnownMapping(mm: MerkleMap): void {\n this.addKnownList(mm.keys);\n this.addKnownList(mm.values);\n }\n\n execute(request: Buffer): Buffer {\n if (request.length == 0) {\n throw new Error(\"Unexpected empty command\");\n }\n\n const cmdCode = request[0];\n const cmd = this.commands.get(cmdCode);\n if (!cmd) {\n throw new Error(`Unexpected command code ${cmdCode}`);\n }\n\n return cmd.execute(request);\n }\n}\n", "import Transport from \"@ledgerhq/hw-transport\";\nimport { pathElementsToBuffer } from \"../bip32\";\nimport { PsbtV2 } from \"./psbtv2\";\nimport { MerkelizedPsbt } from \"./merkelizedPsbt\";\nimport { ClientCommandInterpreter } from \"./clientCommands\";\nimport { WalletPolicy } from \"./policy\";\nimport { createVarint } from \"../varint\";\nimport { hashLeaf, Merkle } from \"./merkle\";\n\nconst CLA_BTC = 0xe1;\nconst CLA_FRAMEWORK = 0xf8;\n\nenum BitcoinIns {\n GET_PUBKEY = 0x00,\n // GET_ADDRESS = 0x01, // Removed from app\n REGISTER_WALLET = 0x02,\n GET_WALLET_ADDRESS = 0x03,\n SIGN_PSBT = 0x04,\n GET_MASTER_FINGERPRINT = 0x05,\n}\n\nenum FrameworkIns {\n CONTINUE_INTERRUPTED = 0x01,\n}\n\n/**\n * This class encapsulates the APDU protocol documented at\n * https://github.com/LedgerHQ/app-bitcoin-new/blob/master/doc/bitcoin.md\n */\nexport class AppClient {\n transport: Transport;\n\n constructor(transport: Transport) {\n this.transport = transport;\n }\n\n private async makeRequest(\n ins: BitcoinIns,\n data: Buffer,\n cci?: ClientCommandInterpreter\n ): Promise {\n let response: Buffer = await this.transport.send(\n CLA_BTC,\n ins,\n 0,\n 0,\n data,\n [0x9000, 0xe000]\n );\n while (response.readUInt16BE(response.length - 2) === 0xe000) {\n if (!cci) {\n throw new Error(\"Unexpected SW_INTERRUPTED_EXECUTION\");\n }\n\n const hwRequest = response.slice(0, -2);\n const commandResponse = cci.execute(hwRequest);\n\n response = await this.transport.send(\n CLA_FRAMEWORK,\n FrameworkIns.CONTINUE_INTERRUPTED,\n 0,\n 0,\n commandResponse,\n [0x9000, 0xe000]\n );\n }\n return response.slice(0, -2); // drop the status word (can only be 0x9000 at this point)\n }\n\n async getExtendedPubkey(\n display: boolean,\n pathElements: number[]\n ): Promise {\n if (pathElements.length > 6) {\n throw new Error(\"Path too long. At most 6 levels allowed.\");\n }\n const response = await this.makeRequest(\n BitcoinIns.GET_PUBKEY,\n Buffer.concat([\n Buffer.from(display ? [1] : [0]),\n pathElementsToBuffer(pathElements),\n ])\n );\n return response.toString(\"ascii\");\n }\n\n async getWalletAddress(\n walletPolicy: WalletPolicy,\n walletHMAC: Buffer | null,\n change: number,\n addressIndex: number,\n display: boolean\n ): Promise {\n if (change !== 0 && change !== 1)\n throw new Error(\"Change can only be 0 or 1\");\n if (addressIndex < 0 || !Number.isInteger(addressIndex))\n throw new Error(\"Invalid address index\");\n\n if (walletHMAC != null && walletHMAC.length != 32) {\n throw new Error(\"Invalid HMAC length\");\n }\n\n const clientInterpreter = new ClientCommandInterpreter(() => {});\n clientInterpreter.addKnownList(\n walletPolicy.keys.map((k) => Buffer.from(k, \"ascii\"))\n );\n clientInterpreter.addKnownPreimage(walletPolicy.serialize());\n\n const addressIndexBuffer = Buffer.alloc(4);\n addressIndexBuffer.writeUInt32BE(addressIndex, 0);\n\n const response = await this.makeRequest(\n BitcoinIns.GET_WALLET_ADDRESS,\n Buffer.concat([\n Buffer.from(display ? [1] : [0]),\n walletPolicy.getWalletId(),\n walletHMAC || Buffer.alloc(32, 0),\n Buffer.from([change]),\n addressIndexBuffer,\n ]),\n clientInterpreter\n );\n\n return response.toString(\"ascii\");\n }\n\n async signPsbt(\n psbt: PsbtV2,\n walletPolicy: WalletPolicy,\n walletHMAC: Buffer | null,\n progressCallback: () => void\n ): Promise> {\n const merkelizedPsbt = new MerkelizedPsbt(psbt);\n\n if (walletHMAC != null && walletHMAC.length != 32) {\n throw new Error(\"Invalid HMAC length\");\n }\n\n const clientInterpreter = new ClientCommandInterpreter(progressCallback);\n\n // prepare ClientCommandInterpreter\n clientInterpreter.addKnownList(\n walletPolicy.keys.map((k) => Buffer.from(k, \"ascii\"))\n );\n clientInterpreter.addKnownPreimage(walletPolicy.serialize());\n\n clientInterpreter.addKnownMapping(merkelizedPsbt.globalMerkleMap);\n for (const map of merkelizedPsbt.inputMerkleMaps) {\n clientInterpreter.addKnownMapping(map);\n }\n for (const map of merkelizedPsbt.outputMerkleMaps) {\n clientInterpreter.addKnownMapping(map);\n }\n\n clientInterpreter.addKnownList(merkelizedPsbt.inputMapCommitments);\n const inputMapsRoot = new Merkle(\n merkelizedPsbt.inputMapCommitments.map((m) => hashLeaf(m))\n ).getRoot();\n clientInterpreter.addKnownList(merkelizedPsbt.outputMapCommitments);\n const outputMapsRoot = new Merkle(\n merkelizedPsbt.outputMapCommitments.map((m) => hashLeaf(m))\n ).getRoot();\n\n await this.makeRequest(\n BitcoinIns.SIGN_PSBT,\n Buffer.concat([\n merkelizedPsbt.getGlobalKeysValuesRoot(),\n createVarint(merkelizedPsbt.getGlobalInputCount()),\n inputMapsRoot,\n createVarint(merkelizedPsbt.getGlobalOutputCount()),\n outputMapsRoot,\n walletPolicy.getWalletId(),\n walletHMAC || Buffer.alloc(32, 0),\n ]),\n clientInterpreter\n );\n\n const yielded = clientInterpreter.getYielded();\n\n const ret: Map = new Map();\n for (const inputAndSig of yielded) {\n ret.set(inputAndSig[0], inputAndSig.slice(1));\n }\n return ret;\n }\n\n async getMasterFingerprint(): Promise {\n return this.makeRequest(BitcoinIns.GET_MASTER_FINGERPRINT, Buffer.from([]));\n }\n}\n", "import { log } from \"@ledgerhq/logs\";\nimport type { Transaction, TransactionInput, TransactionOutput } from \"./types\";\nimport { getVarint } from \"./varint\";\nimport { formatTransactionDebug } from \"./debug\";\nexport function splitTransaction(\n transactionHex: string,\n isSegwitSupported: boolean | null | undefined = false,\n hasTimestamp = false,\n hasExtraData = false,\n additionals: Array = []\n): Transaction {\n const inputs: TransactionInput[] = [];\n const outputs: TransactionOutput[] = [];\n let witness = false;\n let offset = 0;\n let timestamp = Buffer.alloc(0);\n let nExpiryHeight = Buffer.alloc(0);\n let nVersionGroupId = Buffer.alloc(0);\n let extraData = Buffer.alloc(0);\n let witnessScript, locktime;\n const isDecred = additionals.includes(\"decred\");\n const isZencash = additionals.includes(\"zencash\");\n const isZcash = additionals.includes(\"zcash\");\n const transaction = Buffer.from(transactionHex, \"hex\");\n const version = transaction.slice(offset, offset + 4);\n const overwinter =\n version.equals(Buffer.from([0x03, 0x00, 0x00, 0x80])) ||\n version.equals(Buffer.from([0x04, 0x00, 0x00, 0x80])) ||\n version.equals(Buffer.from([0x05, 0x00, 0x00, 0x80]));\n const isZcashv5 =\n isZcash && version.equals(Buffer.from([0x05, 0x00, 0x00, 0x80]));\n offset += 4;\n if (\n !hasTimestamp &&\n isSegwitSupported &&\n transaction[offset] === 0 &&\n transaction[offset + 1] !== 0 &&\n !isZencash\n ) {\n offset += 2;\n witness = true;\n }\n\n if (hasTimestamp) {\n timestamp = transaction.slice(offset, 4 + offset);\n offset += 4;\n }\n\n if (overwinter) {\n nVersionGroupId = transaction.slice(offset, 4 + offset);\n offset += 4;\n }\n if (isZcashv5) {\n locktime = transaction.slice(offset + 4, offset + 8);\n nExpiryHeight = transaction.slice(offset + 8, offset + 12);\n offset += 12;\n }\n let varint = getVarint(transaction, offset);\n const numberInputs = varint[0];\n offset += varint[1];\n\n for (let i = 0; i < numberInputs; i++) {\n const prevout = transaction.slice(offset, offset + 36);\n offset += 36;\n let script = Buffer.alloc(0);\n let tree = Buffer.alloc(0);\n\n //No script for decred, it has a witness\n if (!isDecred) {\n varint = getVarint(transaction, offset);\n offset += varint[1];\n script = transaction.slice(offset, offset + varint[0]);\n offset += varint[0];\n } else {\n //Tree field\n tree = transaction.slice(offset, offset + 1);\n offset += 1;\n }\n\n const sequence = transaction.slice(offset, offset + 4);\n offset += 4;\n inputs.push({\n prevout,\n script,\n sequence,\n tree,\n });\n }\n varint = getVarint(transaction, offset);\n const numberOutputs = varint[0];\n offset += varint[1];\n for (let i = 0; i < numberOutputs; i++) {\n const amount = transaction.slice(offset, offset + 8);\n offset += 8;\n\n if (isDecred) {\n //Script version\n offset += 2;\n }\n\n varint = getVarint(transaction, offset);\n offset += varint[1];\n const script = transaction.slice(offset, offset + varint[0]);\n offset += varint[0];\n outputs.push({\n amount,\n script,\n });\n }\n\n if (witness) {\n witnessScript = transaction.slice(offset, -4);\n locktime = transaction.slice(transaction.length - 4);\n } else if (!isZcashv5) {\n locktime = transaction.slice(offset, offset + 4);\n }\n\n offset += 4;\n\n if ((overwinter || isDecred) && !isZcashv5) {\n nExpiryHeight = transaction.slice(offset, offset + 4);\n offset += 4;\n }\n\n if (hasExtraData) {\n extraData = transaction.slice(offset);\n }\n\n //Get witnesses for Decred\n if (isDecred) {\n varint = getVarint(transaction, offset);\n offset += varint[1];\n\n if (varint[0] !== numberInputs) {\n throw new Error(\"splitTransaction: incoherent number of witnesses\");\n }\n\n for (let i = 0; i < numberInputs; i++) {\n //amount\n offset += 8;\n //block height\n offset += 4;\n //block index\n offset += 4;\n //Script size\n varint = getVarint(transaction, offset);\n offset += varint[1];\n const script = transaction.slice(offset, offset + varint[0]);\n offset += varint[0];\n inputs[i].script = script;\n }\n }\n\n const t: Transaction = {\n version,\n inputs,\n outputs,\n locktime,\n witness: witnessScript,\n timestamp,\n nVersionGroupId,\n nExpiryHeight,\n extraData,\n };\n log(\n \"btc\",\n `splitTransaction ${transactionHex}:\\n${formatTransactionDebug(t)}`\n );\n return t;\n}\n", "import type { Transaction } from \"./types\";\nexport function formatTransactionDebug(transaction: Transaction): string {\n let str = \"TX\";\n str += \" version \" + transaction.version.toString(\"hex\");\n\n if (transaction.locktime) {\n str += \" locktime \" + transaction.locktime.toString(\"hex\");\n }\n\n if (transaction.witness) {\n str += \" witness \" + transaction.witness.toString(\"hex\");\n }\n\n if (transaction.timestamp) {\n str += \" timestamp \" + transaction.timestamp.toString(\"hex\");\n }\n\n if (transaction.nVersionGroupId) {\n str += \" nVersionGroupId \" + transaction.nVersionGroupId.toString(\"hex\");\n }\n\n if (transaction.nExpiryHeight) {\n str += \" nExpiryHeight \" + transaction.nExpiryHeight.toString(\"hex\");\n }\n\n if (transaction.extraData) {\n str += \" extraData \" + transaction.extraData.toString(\"hex\");\n }\n\n transaction.inputs.forEach(({ prevout, script, sequence }, i) => {\n str += `\\ninput ${i}:`;\n str += ` prevout ${prevout.toString(\"hex\")}`;\n str += ` script ${script.toString(\"hex\")}`;\n str += ` sequence ${sequence.toString(\"hex\")}`;\n });\n (transaction.outputs || []).forEach(({ amount, script }, i) => {\n str += `\\noutput ${i}:`;\n str += ` amount ${amount.toString(\"hex\")}`;\n str += ` script ${script.toString(\"hex\")}`;\n });\n return str;\n}\nexport function displayTransactionDebug(transaction: Transaction): void {\n console.log(formatTransactionDebug(transaction));\n}\n", "import type Transport from \"@ledgerhq/hw-transport\";\nimport { getTrustedInput } from \"./getTrustedInput\";\nimport { startUntrustedHashTransactionInput } from \"./startUntrustedHashTransactionInput\";\nimport { getTrustedInputBIP143 } from \"./getTrustedInputBIP143\";\nimport { signTransaction } from \"./signTransaction\";\nimport { hashOutputFull } from \"./finalizeInput\";\nimport type { TransactionOutput, Transaction, TrustedInput } from \"./types\";\nimport {\n DEFAULT_LOCKTIME,\n DEFAULT_VERSION,\n DEFAULT_SEQUENCE,\n SIGHASH_ALL,\n} from \"./constants\";\nconst defaultArg = {\n lockTime: DEFAULT_LOCKTIME,\n sigHashType: SIGHASH_ALL,\n segwit: false,\n transactionVersion: DEFAULT_VERSION,\n};\n\n/**\n *\n */\nexport type SignP2SHTransactionArg = {\n inputs: Array<\n [Transaction, number, string | null | undefined, number | null | undefined]\n >;\n associatedKeysets: string[];\n outputScriptHex: string;\n lockTime?: number;\n sigHashType?: number;\n segwit?: boolean;\n transactionVersion?: number;\n};\nexport async function signP2SHTransaction(\n transport: Transport,\n arg: SignP2SHTransactionArg\n) {\n const {\n inputs,\n associatedKeysets,\n outputScriptHex,\n lockTime,\n sigHashType,\n segwit,\n transactionVersion,\n } = { ...defaultArg, ...arg };\n // Inputs are provided as arrays of [transaction, output_index, redeem script, optional sequence]\n // associatedKeysets are provided as arrays of [path]\n const nullScript = Buffer.alloc(0);\n const nullPrevout = Buffer.alloc(0);\n const defaultVersion = Buffer.alloc(4);\n defaultVersion.writeUInt32LE(transactionVersion, 0);\n const trustedInputs: TrustedInput[] = [];\n const regularOutputs: Array = [];\n const signatures: string[] = [];\n let firstRun = true;\n const resuming = false;\n const targetTransaction: Transaction = {\n inputs: [],\n version: defaultVersion,\n };\n const getTrustedInputCall = segwit ? getTrustedInputBIP143 : getTrustedInput;\n const outputScript = Buffer.from(outputScriptHex, \"hex\");\n\n for (const input of inputs) {\n if (!resuming) {\n const trustedInput = await getTrustedInputCall(\n transport,\n input[1],\n input[0]\n );\n const sequence = Buffer.alloc(4);\n sequence.writeUInt32LE(\n input.length >= 4 && typeof input[3] === \"number\"\n ? input[3]\n : DEFAULT_SEQUENCE,\n 0\n );\n trustedInputs.push({\n trustedInput: false,\n value: segwit\n ? Buffer.from(trustedInput, \"hex\")\n : Buffer.from(trustedInput, \"hex\").slice(4, 4 + 0x24),\n sequence,\n });\n }\n\n const { outputs } = input[0];\n const index = input[1];\n\n if (outputs && index <= outputs.length - 1) {\n regularOutputs.push(outputs[index]);\n }\n }\n\n // Pre-build the target transaction\n for (let i = 0; i < inputs.length; i++) {\n const sequence = Buffer.alloc(4);\n sequence.writeUInt32LE(\n inputs[i].length >= 4 && typeof inputs[i][3] === \"number\"\n ? (inputs[i][3] as number)\n : DEFAULT_SEQUENCE,\n 0\n );\n targetTransaction.inputs.push({\n script: nullScript,\n prevout: nullPrevout,\n sequence,\n });\n }\n\n if (segwit) {\n await startUntrustedHashTransactionInput(\n transport,\n true,\n targetTransaction,\n trustedInputs,\n true\n );\n await hashOutputFull(transport, outputScript);\n }\n\n for (let i = 0; i < inputs.length; i++) {\n const input = inputs[i];\n const script =\n inputs[i].length >= 3 && typeof input[2] === \"string\"\n ? Buffer.from(input[2], \"hex\")\n : regularOutputs[i].script;\n const pseudoTX = Object.assign({}, targetTransaction);\n const pseudoTrustedInputs = segwit ? [trustedInputs[i]] : trustedInputs;\n\n if (segwit) {\n pseudoTX.inputs = [{ ...pseudoTX.inputs[i], script }];\n } else {\n pseudoTX.inputs[i].script = script;\n }\n\n await startUntrustedHashTransactionInput(\n transport,\n !segwit && firstRun,\n pseudoTX,\n pseudoTrustedInputs,\n segwit\n );\n\n if (!segwit) {\n await hashOutputFull(transport, outputScript);\n }\n\n const signature = await signTransaction(\n transport,\n associatedKeysets[i],\n lockTime,\n sigHashType\n );\n signatures.push(\n segwit\n ? signature.toString(\"hex\")\n : signature.slice(0, signature.length - 1).toString(\"hex\")\n );\n targetTransaction.inputs[i].script = nullScript;\n\n if (firstRun) {\n firstRun = false;\n }\n }\n\n return signatures;\n}\n", "import type Transport from \"@ledgerhq/hw-transport\";\nimport bippath from \"bip32-path\";\nimport { MAX_SCRIPT_BLOCK } from \"./constants\";\nexport async function signMessage(\n transport: Transport,\n {\n path,\n messageHex,\n }: {\n path: string;\n messageHex: string;\n }\n): Promise<{\n v: number;\n r: string;\n s: string;\n}> {\n const paths = bippath.fromString(path).toPathArray();\n const message = Buffer.from(messageHex, \"hex\");\n let offset = 0;\n\n while (offset !== message.length) {\n const maxChunkSize =\n offset === 0\n ? MAX_SCRIPT_BLOCK - 1 - paths.length * 4 - 4\n : MAX_SCRIPT_BLOCK;\n const chunkSize =\n offset + maxChunkSize > message.length\n ? message.length - offset\n : maxChunkSize;\n const buffer = Buffer.alloc(\n offset === 0 ? 1 + paths.length * 4 + 2 + chunkSize : chunkSize\n );\n\n if (offset === 0) {\n buffer[0] = paths.length;\n paths.forEach((element, index) => {\n buffer.writeUInt32BE(element, 1 + 4 * index);\n });\n buffer.writeUInt16BE(message.length, 1 + 4 * paths.length);\n message.copy(\n buffer,\n 1 + 4 * paths.length + 2,\n offset,\n offset + chunkSize\n );\n } else {\n message.copy(buffer, 0, offset, offset + chunkSize);\n }\n\n await transport.send(0xe0, 0x4e, 0x00, offset === 0 ? 0x01 : 0x80, buffer);\n offset += chunkSize;\n }\n\n const res = await transport.send(0xe0, 0x4e, 0x80, 0x00, Buffer.from([0x00]));\n const v = res[0] - 0x30;\n let r: Buffer | string = res.slice(4, 4 + res[3]);\n\n if (r[0] === 0) {\n r = r.slice(1);\n }\n\n r = r.toString(\"hex\");\n offset = 4 + res[3] + 2;\n let s: Buffer | string = res.slice(offset, offset + res[offset - 1]);\n\n if (s[0] === 0) {\n s = s.slice(1);\n }\n\n s = s.toString(\"hex\");\n return {\n v,\n r,\n s,\n };\n}\n", "import type Transport from \"@ledgerhq/hw-transport\";\nimport BtcNew from \"./BtcNew\";\nimport BtcOld from \"./BtcOld\";\nimport type { CreateTransactionArg } from \"./createTransaction\";\nimport { getTrustedInput } from \"./getTrustedInput\";\nimport { getTrustedInputBIP143 } from \"./getTrustedInputBIP143\";\nimport type { AddressFormat } from \"./getWalletPublicKey\";\nimport { AppClient } from \"./newops/appClient\";\nimport { serializeTransactionOutputs } from \"./serializeTransaction\";\nimport type { SignP2SHTransactionArg } from \"./signP2SHTransaction\";\nimport { splitTransaction } from \"./splitTransaction\";\nimport type { Transaction } from \"./types\";\nexport type { AddressFormat };\nimport { signP2SHTransaction } from \"./signP2SHTransaction\";\nimport { signMessage } from \"./signMessage\";\nimport { checkIsBtcLegacy, getAppAndVersion } from \"./getAppAndVersion\";\n\n/**\n * Bitcoin API.\n *\n * @example\n * import Btc from \"@ledgerhq/hw-app-btc\";\n * const btc = new Btc({ transport, currency: \"bitcoin\" });\n */\n\nexport default class Btc {\n private _transport: Transport;\n private _impl: BtcOld | BtcNew;\n\n constructor({\n transport,\n scrambleKey = \"BTC\",\n currency = \"bitcoin\",\n }: {\n transport: Transport;\n scrambleKey?: string;\n currency?: string;\n }) {\n this._transport = transport;\n this._transport.decorateAppAPIMethods(\n this,\n [\n \"getWalletXpub\",\n \"getWalletPublicKey\",\n \"signP2SHTransaction\",\n \"signMessage\",\n \"createPaymentTransaction\",\n \"getTrustedInput\",\n \"getTrustedInputBIP143\",\n ],\n scrambleKey\n );\n // new APDU (nano app API) for bitcoin and old APDU for altcoin\n if (currency === \"bitcoin\" || currency === \"bitcoin_testnet\") {\n this._impl = new BtcNew(new AppClient(this._transport));\n } else {\n this._impl = new BtcOld(this._transport);\n }\n }\n\n /**\n * Get an XPUB with a ledger device\n * @param arg derivation parameter\n * - path: a BIP 32 path of the account level. e.g. `84'/0'/0'`\n * - xpubVersion: the XPUBVersion of the coin used. (use @ledgerhq/currencies if needed)\n * @returns XPUB of the account\n */\n getWalletXpub(arg: { path: string; xpubVersion: number }): Promise {\n return this.changeImplIfNecessary().then((impl) => {\n return impl.getWalletXpub(arg);\n });\n }\n\n /**\n * @param path a BIP 32 path\n * @param options an object with optional these fields:\n *\n * - verify (boolean) will ask user to confirm the address on the device\n *\n * - format (\"legacy\" | \"p2sh\" | \"bech32\" | \"bech32m\" | \"cashaddr\") to use different bitcoin address formatter.\n *\n * NB The normal usage is to use:\n *\n * - legacy format with 44' paths\n *\n * - p2sh format with 49' paths\n *\n * - bech32 format with 84' paths\n *\n * - cashaddr in case of Bitcoin Cash\n *\n * @example\n * btc.getWalletPublicKey(\"44'/0'/0'/0/0\").then(o => o.bitcoinAddress)\n * btc.getWalletPublicKey(\"49'/0'/0'/0/0\", { format: \"p2sh\" }).then(o => o.bitcoinAddress)\n */\n getWalletPublicKey(\n path: string,\n opts?: {\n verify?: boolean;\n format?: AddressFormat;\n }\n ): Promise<{\n publicKey: string;\n bitcoinAddress: string;\n chainCode: string;\n }> {\n let options;\n if (arguments.length > 2 || typeof opts === \"boolean\") {\n console.warn(\n \"btc.getWalletPublicKey deprecated signature used. Please switch to getWalletPublicKey(path, { format, verify })\"\n );\n options = {\n verify: !!opts,\n // eslint-disable-next-line prefer-rest-params\n format: arguments[2] ? \"p2sh\" : \"legacy\",\n };\n } else {\n options = opts || {};\n }\n return this.changeImplIfNecessary().then((impl) => {\n return impl.getWalletPublicKey(path, options);\n });\n }\n\n /**\n * You can sign a message according to the Bitcoin Signature format and retrieve v, r, s given the message and the BIP 32 path of the account to sign.\n * @example\n btc.signMessage(\"44'/60'/0'/0'/0\", Buffer.from(\"test\").toString(\"hex\")).then(function(result) {\n var v = result['v'] + 27 + 4;\n var signature = Buffer.from(v.toString(16) + result['r'] + result['s'], 'hex').toString('base64');\n console.log(\"Signature : \" + signature);\n }).catch(function(ex) {console.log(ex);});\n */\n signMessage(\n path: string,\n messageHex: string\n ): Promise<{\n v: number;\n r: string;\n s: string;\n }> {\n return signMessage(this._transport, {\n path,\n messageHex,\n });\n }\n\n /**\n * To sign a transaction involving standard (P2PKH) inputs, call createTransaction with the following parameters\n * @param inputs is an array of [ transaction, output_index, optional redeem script, optional sequence ] where\n *\n * * transaction is the previously computed transaction object for this UTXO\n * * output_index is the output in the transaction used as input for this UTXO (counting from 0)\n * * redeem script is the optional redeem script to use when consuming a Segregated Witness input\n * * sequence is the sequence number to use for this input (when using RBF), or non present\n * @param associatedKeysets is an array of BIP 32 paths pointing to the path to the private key used for each UTXO\n * @param changePath is an optional BIP 32 path pointing to the path to the public key used to compute the change address\n * @param outputScriptHex is the hexadecimal serialized outputs of the transaction to sign, including leading vararg voutCount\n * @param lockTime is the optional lockTime of the transaction to sign, or default (0)\n * @param sigHashType is the hash type of the transaction to sign, or default (all)\n * @param segwit is an optional boolean indicating wether to use segwit or not. This includes wrapped segwit.\n * @param initialTimestamp is an optional timestamp of the function call to use for coins that necessitate timestamps only, (not the one that the tx will include)\n * @param additionals list of additionnal options\n *\n * - \"bech32\" for spending native segwit outputs\n * - \"bech32m\" for spending segwit v1+ outputs\n * - \"abc\" for bch\n * - \"gold\" for btg\n * - \"bipxxx\" for using BIPxxx\n * - \"sapling\" to indicate a zec transaction is supporting sapling (to be set over block 419200)\n * @param expiryHeight is an optional Buffer for zec overwinter / sapling Txs\n * @param useTrustedInputForSegwit trust inputs for segwit transactions. If app version >= 1.4.0 this should be true.\n * @return the signed transaction ready to be broadcast\n * @example\n btc.createTransaction({\n inputs: [ [tx1, 1] ],\n associatedKeysets: [\"0'/0/0\"],\n outputScriptHex: \"01905f0100000000001976a91472a5d75c8d2d0565b656a5232703b167d50d5a2b88ac\"\n }).then(res => ...);\n */\n createPaymentTransaction(arg: CreateTransactionArg): Promise {\n if (arguments.length > 1) {\n throw new Error(\n \"@ledgerhq/hw-app-btc: createPaymentTransaction multi argument signature is deprecated. please switch to named parameters.\"\n );\n }\n return this.changeImplIfNecessary().then((impl) => {\n return impl.createPaymentTransaction(arg);\n });\n }\n\n /**\n * To obtain the signature of multisignature (P2SH) inputs, call signP2SHTransaction_async with the folowing parameters\n * @param inputs is an array of [ transaction, output_index, redeem script, optional sequence ] where\n * * transaction is the previously computed transaction object for this UTXO\n * * output_index is the output in the transaction used as input for this UTXO (counting from 0)\n * * redeem script is the mandatory redeem script associated to the current P2SH input\n * * sequence is the sequence number to use for this input (when using RBF), or non present\n * @param associatedKeysets is an array of BIP 32 paths pointing to the path to the private key used for each UTXO\n * @param outputScriptHex is the hexadecimal serialized outputs of the transaction to sign\n * @param lockTime is the optional lockTime of the transaction to sign, or default (0)\n * @param sigHashType is the hash type of the transaction to sign, or default (all)\n * @return the signed transaction ready to be broadcast\n * @example\n btc.signP2SHTransaction({\n inputs: [ [tx, 1, \"52210289b4a3ad52a919abd2bdd6920d8a6879b1e788c38aa76f0440a6f32a9f1996d02103a3393b1439d1693b063482c04bd40142db97bdf139eedd1b51ffb7070a37eac321030b9a409a1e476b0d5d17b804fcdb81cf30f9b99c6f3ae1178206e08bc500639853ae\"] ],\n associatedKeysets: [\"0'/0/0\"],\n outputScriptHex: \"01905f0100000000001976a91472a5d75c8d2d0565b656a5232703b167d50d5a2b88ac\"\n }).then(result => ...);\n */\n signP2SHTransaction(arg: SignP2SHTransactionArg): Promise {\n return signP2SHTransaction(this._transport, arg);\n }\n\n /**\n * For each UTXO included in your transaction, create a transaction object from the raw serialized version of the transaction used in this UTXO.\n * @example\n const tx1 = btc.splitTransaction(\"01000000014ea60aeac5252c14291d428915bd7ccd1bfc4af009f4d4dc57ae597ed0420b71010000008a47304402201f36a12c240dbf9e566bc04321050b1984cd6eaf6caee8f02bb0bfec08e3354b022012ee2aeadcbbfd1e92959f57c15c1c6debb757b798451b104665aa3010569b49014104090b15bde569386734abf2a2b99f9ca6a50656627e77de663ca7325702769986cf26cc9dd7fdea0af432c8e2becc867c932e1b9dd742f2a108997c2252e2bdebffffffff0281b72e00000000001976a91472a5d75c8d2d0565b656a5232703b167d50d5a2b88aca0860100000000001976a9144533f5fb9b4817f713c48f0bfe96b9f50c476c9b88ac00000000\");\n */\n splitTransaction(\n transactionHex: string,\n isSegwitSupported: boolean | null | undefined = false,\n hasTimestamp = false,\n hasExtraData = false,\n additionals: Array = []\n ): Transaction {\n return splitTransaction(\n transactionHex,\n isSegwitSupported,\n hasTimestamp,\n hasExtraData,\n additionals\n );\n }\n\n /**\n @example\n const tx1 = btc.splitTransaction(\"01000000014ea60aeac5252c14291d428915bd7ccd1bfc4af009f4d4dc57ae597ed0420b71010000008a47304402201f36a12c240dbf9e566bc04321050b1984cd6eaf6caee8f02bb0bfec08e3354b022012ee2aeadcbbfd1e92959f57c15c1c6debb757b798451b104665aa3010569b49014104090b15bde569386734abf2a2b99f9ca6a50656627e77de663ca7325702769986cf26cc9dd7fdea0af432c8e2becc867c932e1b9dd742f2a108997c2252e2bdebffffffff0281b72e00000000001976a91472a5d75c8d2d0565b656a5232703b167d50d5a2b88aca0860100000000001976a9144533f5fb9b4817f713c48f0bfe96b9f50c476c9b88ac00000000\");\n const outputScript = btc.serializeTransactionOutputs(tx1).toString('hex');\n */\n serializeTransactionOutputs(t: Transaction): Buffer {\n return serializeTransactionOutputs(t);\n }\n\n getTrustedInput(\n indexLookup: number,\n transaction: Transaction,\n additionals: Array = []\n ): Promise {\n return getTrustedInput(\n this._transport,\n indexLookup,\n transaction,\n additionals\n );\n }\n\n getTrustedInputBIP143(\n indexLookup: number,\n transaction: Transaction,\n additionals: Array = []\n ): string {\n return getTrustedInputBIP143(\n this._transport,\n indexLookup,\n transaction,\n additionals\n );\n }\n\n async changeImplIfNecessary(): Promise {\n const appAndVersion = await getAppAndVersion(this._transport);\n if (appAndVersion.name === \"Exchange\" && this._impl instanceof BtcNew) {\n const isBtcLegacy = await checkIsBtcLegacy(this._transport);\n if (isBtcLegacy) {\n this._impl = new BtcOld(this._transport);\n }\n }\n return this._impl;\n }\n}\n", "import Transport from '@ledgerhq/hw-transport'\n\n/**\n * Speculos TCP transport implementation\n *\n * @example\n * import TransportSpeculosHTTP from \"@casimir/speculos-transport\"\n * const transport = await TransportSpeculosHTTP.create()\n * const res = await transport.send(0xE0, 0x01, 0, 0)\n */\nexport default class TransportSpeculosHTTP extends Transport {\n baseURL: string\n eventStream!: EventSource\n\n constructor(baseURL: string) {\n super()\n this.baseURL = baseURL\n }\n\n static isSupported = (): Promise => Promise.resolve(true)\n // this transport is not discoverable\n static list = (): Promise => Promise.resolve([])\n static listen = () => ({\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n unsubscribe: () => {},\n })\n\n static open = async (\n baseURL?: string\n ): Promise => {\n try {\n baseURL = baseURL || 'http://127.0.0.1:5000'\n const transport = new TransportSpeculosHTTP(baseURL)\n const eventSource = new EventSource(`${baseURL}/events?stream=true`)\n // eventSource.addEventListener('open', (event: Event) => console.warn('Ledger', event.type), false)\n // eventSource.addEventListener('error', (event: Event) => console.warn('Ledger', event.type, eventSource.readyState), false)\n // eventSource.addEventListener('message', (message: MessageEvent) => console.warn('Ledger', message.type, message.data), false)\n transport.eventStream = eventSource\n return transport\n } catch (error) {\n console.log(error)\n throw error\n }\n }\n\n /**\n * Press and release button\n * buttons available: left, right, both\n * @param {*} but\n */\n button = async (but: string): Promise => {\n const action = { action: 'press-and-release' }\n await fetch(`${this.baseURL}/button/${but}`, { method: 'POST', body: JSON.stringify(action) })\n }\n\n async exchange(apdu: Buffer): Promise {\n const hex = apdu.toString('hex')\n const response = await fetch(`${this.baseURL}/apdu`, { method: 'POST', body: JSON.stringify({ data: hex }) })\n const json = await response.json()\n const { data } = json\n return Buffer.from(data, 'hex')\n }\n\n async close() {\n // close event stream\n this.eventStream.close()\n return Promise.resolve()\n }\n}\n", "import Transport from '@ledgerhq/hw-transport'\nimport TransportSpeculosHTTP from '@casimir/transport-speculos-http'\nimport TransportWebUSB from '@ledgerhq/hw-transport-webusb'\n\nexport default function useTransports() {\n\n async function createUSBTransport(): Promise {\n return await TransportWebUSB.create()\n }\n\n async function createSpeculosTransport(baseURL?: string): Promise {\n return await TransportSpeculosHTTP.open(baseURL)\n }\n\n return { createUSBTransport, createSpeculosTransport }\n}"], + "mappings": "yxBAAA,IAAAA,GAAAC,EAAA,CAAAC,GAAAC,KAAA,CAAAA,GAAO,QAAU,QAAQ,UAAU,aCAnC,IAAAC,GAAAC,EAAA,CAAAC,GAAAC,KAAA,CAAAA,GAAO,QAAU,QAAQ,UAAU,aCAnC,IAAAC,GAAAC,EAAAC,IAAA,cACA,OAAO,eAAeA,GAAS,aAAc,CAAE,MAAO,EAAK,CAAC,EAC5D,IAAMC,GAAa,KACbC,GAAa,KACnB,SAASC,GAAQC,EAAQ,CACrB,IAAMC,EAAaJ,GAAW,QAAQ,EACjC,OAAOG,CAAM,EACb,OAAO,EACZ,GAAI,CACA,OAAOH,GAAW,QAAQ,EACrB,OAAOI,CAAU,EACjB,OAAO,CAChB,MACA,CACI,OAAOJ,GAAW,WAAW,EACxB,OAAOI,CAAU,EACjB,OAAO,CAChB,CACJ,CACAL,GAAQ,QAAUG,GAClB,SAASG,GAAWC,EAAKC,EAAM,CAC3B,OAAON,GAAW,SAAUK,CAAG,EAC1B,OAAOC,CAAI,EACX,OAAO,CAChB,CACAR,GAAQ,WAAaM,KCzBrB,IAAAG,GAAAC,EAAA,CAAAC,GAAAC,KAAA,CAEA,IAAIC,GAAS,QAAQ,UACjBC,GAASD,GAAO,OAGpB,SAASE,GAAWC,EAAKC,EAAK,CAC5B,QAASC,KAAOF,EACdC,EAAIC,GAAOF,EAAIE,EAEnB,CACIJ,GAAO,MAAQA,GAAO,OAASA,GAAO,aAAeA,GAAO,gBAC9DF,GAAO,QAAUC,IAGjBE,GAAUF,GAAQF,EAAO,EACzBA,GAAQ,OAASQ,IAGnB,SAASA,GAAYC,EAAKC,EAAkBC,EAAQ,CAClD,OAAOR,GAAOM,EAAKC,EAAkBC,CAAM,CAC7C,CAEAH,GAAW,UAAY,OAAO,OAAOL,GAAO,SAAS,EAGrDC,GAAUD,GAAQK,EAAU,EAE5BA,GAAW,KAAO,SAAUC,EAAKC,EAAkBC,EAAQ,CACzD,GAAI,OAAOF,GAAQ,SACjB,MAAM,IAAI,UAAU,+BAA+B,EAErD,OAAON,GAAOM,EAAKC,EAAkBC,CAAM,CAC7C,EAEAH,GAAW,MAAQ,SAAUI,EAAMC,EAAMC,EAAU,CACjD,GAAI,OAAOF,GAAS,SAClB,MAAM,IAAI,UAAU,2BAA2B,EAEjD,IAAIG,EAAMZ,GAAOS,CAAI,EACrB,OAAIC,IAAS,OACP,OAAOC,GAAa,SACtBC,EAAI,KAAKF,EAAMC,CAAQ,EAEvBC,EAAI,KAAKF,CAAI,EAGfE,EAAI,KAAK,CAAC,EAELA,CACT,EAEAP,GAAW,YAAc,SAAUI,EAAM,CACvC,GAAI,OAAOA,GAAS,SAClB,MAAM,IAAI,UAAU,2BAA2B,EAEjD,OAAOT,GAAOS,CAAI,CACpB,EAEAJ,GAAW,gBAAkB,SAAUI,EAAM,CAC3C,GAAI,OAAOA,GAAS,SAClB,MAAM,IAAI,UAAU,2BAA2B,EAEjD,OAAOV,GAAO,WAAWU,CAAI,CAC/B,IChEA,IAAAI,GAAAC,EAAA,CAAAC,GAAAC,KAAA,cAOA,IAAIC,GAAU,KAAuB,OACrC,SAASC,GAAMC,EAAU,CACvB,GAAIA,EAAS,QAAU,IAAO,MAAM,IAAI,UAAU,mBAAmB,EAErE,QADIC,EAAW,IAAI,WAAW,GAAG,EACxBC,EAAI,EAAGA,EAAID,EAAS,OAAQC,IACnCD,EAASC,GAAK,IAEhB,QAASC,EAAI,EAAGA,EAAIH,EAAS,OAAQG,IAAK,CACxC,IAAIC,EAAIJ,EAAS,OAAOG,CAAC,EACrBE,EAAKD,EAAE,WAAW,CAAC,EACvB,GAAIH,EAASI,KAAQ,IAAO,MAAM,IAAI,UAAUD,EAAI,eAAe,EACnEH,EAASI,GAAMF,CACjB,CACA,IAAIG,EAAON,EAAS,OAChBO,EAASP,EAAS,OAAO,CAAC,EAC1BQ,EAAS,KAAK,IAAIF,CAAI,EAAI,KAAK,IAAI,GAAG,EACtCG,EAAU,KAAK,IAAI,GAAG,EAAI,KAAK,IAAIH,CAAI,EAC3C,SAASI,EAAQC,EAAQ,CAEvB,IADI,MAAM,QAAQA,CAAM,GAAKA,aAAkB,cAAcA,EAASb,GAAQ,KAAKa,CAAM,GACrF,CAACb,GAAQ,SAASa,CAAM,EAAK,MAAM,IAAI,UAAU,iBAAiB,EACtE,GAAIA,EAAO,SAAW,EAAK,MAAO,GAMlC,QAJIC,EAAS,EACTC,EAAS,EACTC,EAAS,EACTC,EAAOJ,EAAO,OACXG,IAAWC,GAAQJ,EAAOG,KAAY,GAC3CA,IACAF,IAMF,QAHII,GAASD,EAAOD,GAAUL,EAAU,IAAO,EAC3CQ,EAAM,IAAI,WAAWD,CAAI,EAEtBF,IAAWC,GAAM,CAItB,QAHIG,EAAQP,EAAOG,GAEfX,EAAI,EACCgB,EAAMH,EAAO,GAAIE,IAAU,GAAKf,EAAIU,IAAYM,IAAQ,GAAKA,IAAOhB,IAC3Ee,GAAU,IAAMD,EAAIE,KAAU,EAC9BF,EAAIE,GAAQD,EAAQZ,IAAU,EAC9BY,EAASA,EAAQZ,IAAU,EAE7B,GAAIY,IAAU,EAAK,MAAM,IAAI,MAAM,gBAAgB,EACnDL,EAASV,EACTW,GACF,CAGA,QADIM,EAAMJ,EAAOH,EACVO,IAAQJ,GAAQC,EAAIG,KAAS,GAClCA,IAIF,QADIC,EAAMd,EAAO,OAAOK,CAAM,EACvBQ,EAAMJ,EAAM,EAAEI,EAAOC,GAAOrB,EAAS,OAAOiB,EAAIG,EAAI,EAC3D,OAAOC,CACT,CACA,SAASC,EAAcX,EAAQ,CAC7B,GAAI,OAAOA,GAAW,SAAY,MAAM,IAAI,UAAU,iBAAiB,EACvE,GAAIA,EAAO,SAAW,EAAK,OAAOb,GAAQ,MAAM,CAAC,EAKjD,QAJIyB,EAAM,EAENX,EAAS,EACTC,EAAS,EACNF,EAAOY,KAAShB,GACrBK,IACAW,IAMF,QAHIP,GAAUL,EAAO,OAASY,GAAOf,EAAU,IAAO,EAClDgB,EAAO,IAAI,WAAWR,CAAI,EAEvBL,EAAOY,IAAM,CAElB,IAAIL,EAAQjB,EAASU,EAAO,WAAWY,CAAG,GAE1C,GAAIL,IAAU,IAAO,OAErB,QADIf,EAAI,EACCsB,EAAMT,EAAO,GAAIE,IAAU,GAAKf,EAAIU,IAAYY,IAAQ,GAAKA,IAAOtB,IAC3Ee,GAAUZ,EAAOkB,EAAKC,KAAU,EAChCD,EAAKC,GAAQP,EAAQ,MAAS,EAC9BA,EAASA,EAAQ,MAAS,EAE5B,GAAIA,IAAU,EAAK,MAAM,IAAI,MAAM,gBAAgB,EACnDL,EAASV,EACToB,GACF,CAGA,QADIG,EAAMV,EAAOH,EACVa,IAAQV,GAAQQ,EAAKE,KAAS,GACnCA,IAEF,IAAIC,EAAM7B,GAAQ,YAAYc,GAAUI,EAAOU,EAAI,EACnDC,EAAI,KAAK,EAAM,EAAGf,CAAM,EAExB,QADIV,EAAIU,EACDc,IAAQV,GACbW,EAAIzB,KAAOsB,EAAKE,KAElB,OAAOC,CACT,CACA,SAASC,EAAQC,EAAQ,CACvB,IAAIC,EAASR,EAAaO,CAAM,EAChC,GAAIC,EAAU,OAAOA,EACrB,MAAM,IAAI,MAAM,WAAaxB,EAAO,YAAY,CAClD,CACA,MAAO,CACL,OAAQI,EACR,aAAcY,EACd,OAAQM,CACV,CACF,CACA/B,GAAO,QAAUE,KCtHjB,IAAAgC,GAAAC,EAAA,CAAAC,GAAAC,KAAA,KAAIC,GAAQ,KACRC,GAAW,6DAEfF,GAAO,QAAUC,GAAMC,EAAQ,ICH/B,IAAAC,GAAAC,EAAA,CAAAC,GAAAC,KAAA,cAEA,IAAIC,GAAS,KACTC,GAAS,KAAuB,OAEpCF,GAAO,QAAU,SAAUG,EAAY,CAErC,SAASC,EAAQC,EAAS,CACxB,IAAIC,EAAWH,EAAWE,CAAO,EAEjC,OAAOJ,GAAO,OAAOC,GAAO,OAAO,CACjCG,EACAC,CACF,EAAGD,EAAQ,OAAS,CAAC,CAAC,CACxB,CAEA,SAASE,EAAWC,EAAQ,CAC1B,IAAIH,EAAUG,EAAO,MAAM,EAAG,EAAE,EAC5BF,EAAWE,EAAO,MAAM,EAAE,EAC1BC,EAAcN,EAAWE,CAAO,EAEpC,GAAI,EAAAC,EAAS,GAAKG,EAAY,GAC1BH,EAAS,GAAKG,EAAY,GAC1BH,EAAS,GAAKG,EAAY,GAC1BH,EAAS,GAAKG,EAAY,IAE9B,OAAOJ,CACT,CAGA,SAASK,EAAcC,EAAQ,CAC7B,IAAIH,EAASP,GAAO,aAAaU,CAAM,EACvC,GAAI,EAACH,EAEL,OAAOD,EAAUC,CAAM,CACzB,CAEA,SAASI,EAAQD,EAAQ,CACvB,IAAIH,EAASP,GAAO,OAAOU,CAAM,EAC7BN,EAAUE,EAAUC,EAAQL,CAAU,EAC1C,GAAI,CAACE,EAAS,MAAM,IAAI,MAAM,kBAAkB,EAChD,OAAOA,CACT,CAEA,MAAO,CACL,OAAQD,EACR,OAAQQ,EACR,aAAcF,CAChB,CACF,ICjDA,IAAAG,GAAAC,EAAA,CAAAC,GAAAC,KAAA,cAEA,IAAIC,GAAa,KACbC,GAAgB,KAGpB,SAASC,GAAUC,EAAQ,CACzB,IAAIC,EAAMJ,GAAW,QAAQ,EAAE,OAAOG,CAAM,EAAE,OAAO,EACrD,OAAOH,GAAW,QAAQ,EAAE,OAAOI,CAAG,EAAE,OAAO,CACjD,CAEAL,GAAO,QAAUE,GAAcC,EAAQ,ICXvC,IAAAG,GAAAC,EAAA,CAAAC,GAAAC,KAAA,CAKA,IAAIC,GAAM,QAAQ,QAAQ,KAAO,IAMjCD,GAAO,QAAUE,GAUjB,SAASA,GAAeC,EAAK,CAC3B,GAAgB,OAAOA,GAAnB,UACAA,EAAI,QAAU,GACDA,EAAI,UAAU,EAAG,CAAC,GAA/B,UACF,MAAM,IAAI,UAAU,sDAAsD,EAG5E,IAAIC,EAAO,UAAUD,EAAI,UAAU,CAAC,CAAC,EACjCE,EAAaD,EAAK,QAAQ,GAAG,EAC7BE,EAAOF,EAAK,UAAU,EAAGC,CAAU,EACnCE,EAAOH,EAAK,UAAUC,EAAa,CAAC,EAMxC,OAAmBC,GAAf,cAAqBA,EAAO,IAE5BA,IACFA,EAAOL,GAAMA,GAAMK,GAUrBC,EAAOA,EAAK,QAAQ,UAAW,KAAK,EAGhCN,IAAO,OACTM,EAAOA,EAAK,QAAQ,MAAO,IAAI,GAG7B,QAAQ,KAAKA,CAAI,IAInBA,EAAON,GAAMM,GAGRD,EAAOC,CAChB,ICjEA,IAAAC,GAAAC,EAAA,CAAAC,GAAAC,KAAA,CAIA,IAAIC,GAAK,QAAQ,MACfC,GAAO,QAAQ,QACfC,GAAgB,KAChBC,GAAOF,GAAK,KACZG,GAAUH,GAAK,QACfI,GACGL,GAAG,YACF,SAASC,EAAM,CACb,GAAI,CACFD,GAAG,WAAWC,CAAI,CACpB,MAAE,CACA,MAAO,EACT,CACA,MAAO,EACT,GACFD,GAAG,YACHC,GAAK,WACPK,GAAW,CACT,MAAO,QAAQ,IAAI,qBAAuB,WAC1C,SAAU,QAAQ,IAAI,4BAA8B,WACpD,SAAU,QAAQ,SAClB,KAAM,QAAQ,KACd,WACE,SACA,QAAQ,SAAS,QACjB,IACA,QAAQ,SACR,IACA,QAAQ,KACV,QAAS,QAAQ,SAAS,KAC1B,SAAU,gBACV,IAAK,CAEH,CAAC,cAAe,QAAS,UAAU,EAEnC,CAAC,cAAe,QAAS,QAAS,UAAU,EAC5C,CAAC,cAAe,QAAS,UAAW,UAAU,EAE9C,CAAC,cAAe,MAAO,QAAS,UAAU,EAC1C,CAAC,cAAe,QAAS,UAAU,EAEnC,CAAC,cAAe,MAAO,UAAW,UAAU,EAC5C,CAAC,cAAe,UAAW,UAAU,EAErC,CAAC,cAAe,QAAS,UAAW,UAAU,EAE9C,CAAC,cAAe,WAAY,UAAW,WAAY,OAAQ,UAAU,EAErE,CAAC,cAAe,cAAe,UAAW,eAAgB,UAAU,EACpE,CAAC,cAAe,cAAe,QAAS,eAAgB,UAAU,EAClE,CAAC,cAAe,cAAe,UAAW,eAAgB,UAAU,EAEpE,CAAC,cAAe,MAAO,UAAW,aAAc,UAAU,CAC5D,CACF,EAQF,SAASC,GAASC,EAAM,CAElB,OAAOA,GAAQ,SACjBA,EAAO,CAAE,SAAUA,CAAK,EACdA,IACVA,EAAO,CAAC,GAIV,OAAO,KAAKF,EAAQ,EAAE,IAAI,SAASG,EAAG,CAC9BA,KAAKD,IAAOA,EAAKC,GAAKH,GAASG,GACvC,CAAC,EAGID,EAAK,cACRA,EAAK,YAAcV,GAAQ,QAAQA,GAAQ,YAAY,CAAC,GAItDG,GAAK,QAAQO,EAAK,QAAQ,GAAK,UACjCA,EAAK,UAAY,SAgBnB,QAZIE,EACF,OAAO,qBAAwB,WAC3B,wBACA,QAEFC,EAAQ,CAAC,EACXF,EAAI,EACJG,EAAIJ,EAAK,IAAI,OACbK,EACAC,EACAC,EAEKN,EAAIG,EAAGH,IAAK,CACjBI,EAAIV,GAAK,MACP,KACAK,EAAK,IAAIC,GAAG,IAAI,SAASO,EAAG,CAC1B,OAAOR,EAAKQ,IAAMA,CACpB,CAAC,CACH,EACAL,EAAM,KAAKE,CAAC,EACZ,GAAI,CACF,OAAAC,EAAIN,EAAK,KAAOE,EAAY,QAAQG,CAAC,EAAIH,EAAYG,CAAC,EACjDL,EAAK,OACRM,EAAE,KAAOD,GAEJC,CACT,OAASG,EAAP,CACA,GAAIA,EAAE,OAAS,oBACXA,EAAE,OAAS,oCACX,CAAC,YAAY,KAAKA,EAAE,OAAO,EAC7B,MAAMA,CAEV,CACF,CAEA,MAAAF,EAAM,IAAI,MACR;AAAA,EACEJ,EACG,IAAI,SAASO,EAAG,CACf,OAAOV,EAAK,MAAQU,CACtB,CAAC,EACA,KAAK;AAAA,CAAI,CAChB,EACAH,EAAI,MAAQJ,EACNI,CACR,CACAhB,GAAO,QAAUD,GAAUS,GAQ3BT,GAAQ,YAAc,SAAqBqB,EAAc,CACvD,IAAIC,EAAU,MAAM,kBAClBC,EAAU,MAAM,gBAChBC,EAAQ,CAAC,EACTC,EAEF,MAAM,gBAAkB,GAExB,MAAM,kBAAoB,SAASN,EAAGO,EAAI,CACxC,QAASf,EAAI,EAAGG,EAAIY,EAAG,OAAQf,EAAIG,EAAGH,IAEpC,GADAc,EAAWC,EAAGf,GAAG,YAAY,EACzBc,IAAa,WACf,GAAIJ,GACF,GAAII,IAAaJ,EACf,WAGF,OAIR,EAGA,MAAM,kBAAkBG,CAAK,EAC7BA,EAAM,MAGN,MAAM,kBAAoBF,EAC1B,MAAM,gBAAkBC,EAGxB,IAAII,EAAa,UACjB,OAAIF,EAAS,QAAQE,CAAU,IAAM,IACnCF,EAAWrB,GAAcqB,CAAQ,GAG5BA,CACT,EAWAzB,GAAQ,QAAU,SAAiB4B,EAAM,CAGvC,QAFIC,EAAMvB,GAAQsB,CAAI,EACpBE,IACW,CAKX,GAJID,IAAQ,MAEVA,EAAM,QAAQ,IAAI,GAGlBtB,GAAOF,GAAKwB,EAAK,cAAc,CAAC,GAChCtB,GAAOF,GAAKwB,EAAK,cAAc,CAAC,EAGhC,OAAOA,EAET,GAAIC,IAASD,EAEX,MAAM,IAAI,MACR,2CACED,EACA,wCACJ,EAGFE,EAAOD,EACPA,EAAMxB,GAAKwB,EAAK,IAAI,CACtB,CACF,IC5NA,IAAAE,GAAAC,EAAA,CAAAC,GAAAC,KAAA,cAEA,IAAIC,GAAU,KAAoB,WAAW,EAC7C,OAAOA,GAAQ,KAGf,QAASC,KAAOD,GACVC,EAAI,QAAQ,IAAI,IAAM,IAE1BD,GAAQC,GAAK,OAAS,UAAY,CAAE,OAAOA,CAAI,GAGjDF,GAAO,QAAUC,KCZjB,IAAAE,GAAAC,EAAA,CAAAC,GAAAC,KAAA,EAAC,SAAUA,EAAQD,EAAS,CAC1B,aAGA,SAASE,EAAQC,EAAKC,EAAK,CACzB,GAAI,CAACD,EAAK,MAAM,IAAI,MAAMC,GAAO,kBAAkB,CACrD,CAIA,SAASC,EAAUC,EAAMC,EAAW,CAClCD,EAAK,OAASC,EACd,IAAIC,EAAW,UAAY,CAAC,EAC5BA,EAAS,UAAYD,EAAU,UAC/BD,EAAK,UAAY,IAAIE,EACrBF,EAAK,UAAU,YAAcA,CAC/B,CAIA,SAASG,EAAIC,EAAQC,EAAMC,EAAQ,CACjC,GAAIH,EAAG,KAAKC,CAAM,EAChB,OAAOA,EAGT,KAAK,SAAW,EAChB,KAAK,MAAQ,KACb,KAAK,OAAS,EAGd,KAAK,IAAM,KAEPA,IAAW,QACTC,IAAS,MAAQA,IAAS,QAC5BC,EAASD,EACTA,EAAO,IAGT,KAAK,MAAMD,GAAU,EAAGC,GAAQ,GAAIC,GAAU,IAAI,EAEtD,CACI,OAAOX,GAAW,SACpBA,EAAO,QAAUQ,EAEjBT,EAAQ,GAAKS,EAGfA,EAAG,GAAKA,EACRA,EAAG,SAAW,GAEd,IAAII,EACJ,GAAI,CACE,OAAO,OAAW,KAAe,OAAO,OAAO,OAAW,IAC5DA,EAAS,OAAO,OAEhBA,EAAS,QAAQ,UAAU,MAE/B,MAAE,CACF,CAEAJ,EAAG,KAAO,SAAeK,EAAK,CAC5B,OAAIA,aAAeL,EACV,GAGFK,IAAQ,MAAQ,OAAOA,GAAQ,UACpCA,EAAI,YAAY,WAAaL,EAAG,UAAY,MAAM,QAAQK,EAAI,KAAK,CACvE,EAEAL,EAAG,IAAM,SAAcM,EAAMC,EAAO,CAClC,OAAID,EAAK,IAAIC,CAAK,EAAI,EAAUD,EACzBC,CACT,EAEAP,EAAG,IAAM,SAAcM,EAAMC,EAAO,CAClC,OAAID,EAAK,IAAIC,CAAK,EAAI,EAAUD,EACzBC,CACT,EAEAP,EAAG,UAAU,MAAQ,SAAeC,EAAQC,EAAMC,EAAQ,CACxD,GAAI,OAAOF,GAAW,SACpB,OAAO,KAAK,YAAYA,EAAQC,EAAMC,CAAM,EAG9C,GAAI,OAAOF,GAAW,SACpB,OAAO,KAAK,WAAWA,EAAQC,EAAMC,CAAM,EAGzCD,IAAS,QACXA,EAAO,IAETT,EAAOS,KAAUA,EAAO,IAAMA,GAAQ,GAAKA,GAAQ,EAAE,EAErDD,EAASA,EAAO,SAAS,EAAE,QAAQ,OAAQ,EAAE,EAC7C,IAAIO,EAAQ,EACRP,EAAO,KAAO,MAChBO,IACA,KAAK,SAAW,GAGdA,EAAQP,EAAO,SACbC,IAAS,GACX,KAAK,UAAUD,EAAQO,EAAOL,CAAM,GAEpC,KAAK,WAAWF,EAAQC,EAAMM,CAAK,EAC/BL,IAAW,MACb,KAAK,WAAW,KAAK,QAAQ,EAAGD,EAAMC,CAAM,GAIpD,EAEAH,EAAG,UAAU,YAAc,SAAsBC,EAAQC,EAAMC,EAAQ,CACjEF,EAAS,IACX,KAAK,SAAW,EAChBA,EAAS,CAACA,GAERA,EAAS,UACX,KAAK,MAAQ,CAAEA,EAAS,QAAU,EAClC,KAAK,OAAS,GACLA,EAAS,kBAClB,KAAK,MAAQ,CACXA,EAAS,SACRA,EAAS,SAAa,QACzB,EACA,KAAK,OAAS,IAEdR,EAAOQ,EAAS,gBAAgB,EAChC,KAAK,MAAQ,CACXA,EAAS,SACRA,EAAS,SAAa,SACvB,CACF,EACA,KAAK,OAAS,GAGZE,IAAW,MAGf,KAAK,WAAW,KAAK,QAAQ,EAAGD,EAAMC,CAAM,CAC9C,EAEAH,EAAG,UAAU,WAAa,SAAqBC,EAAQC,EAAMC,EAAQ,CAGnE,GADAV,EAAO,OAAOQ,EAAO,QAAW,QAAQ,EACpCA,EAAO,QAAU,EACnB,YAAK,MAAQ,CAAE,CAAE,EACjB,KAAK,OAAS,EACP,KAGT,KAAK,OAAS,KAAK,KAAKA,EAAO,OAAS,CAAC,EACzC,KAAK,MAAQ,IAAI,MAAM,KAAK,MAAM,EAClC,QAASQ,EAAI,EAAGA,EAAI,KAAK,OAAQA,IAC/B,KAAK,MAAMA,GAAK,EAGlB,IAAIC,EAAGC,EACHC,EAAM,EACV,GAAIT,IAAW,KACb,IAAKM,EAAIR,EAAO,OAAS,EAAGS,EAAI,EAAGD,GAAK,EAAGA,GAAK,EAC9CE,EAAIV,EAAOQ,GAAMR,EAAOQ,EAAI,IAAM,EAAMR,EAAOQ,EAAI,IAAM,GACzD,KAAK,MAAMC,IAAOC,GAAKC,EAAO,SAC9B,KAAK,MAAMF,EAAI,GAAMC,IAAO,GAAKC,EAAQ,SACzCA,GAAO,GACHA,GAAO,KACTA,GAAO,GACPF,aAGKP,IAAW,KACpB,IAAKM,EAAI,EAAGC,EAAI,EAAGD,EAAIR,EAAO,OAAQQ,GAAK,EACzCE,EAAIV,EAAOQ,GAAMR,EAAOQ,EAAI,IAAM,EAAMR,EAAOQ,EAAI,IAAM,GACzD,KAAK,MAAMC,IAAOC,GAAKC,EAAO,SAC9B,KAAK,MAAMF,EAAI,GAAMC,IAAO,GAAKC,EAAQ,SACzCA,GAAO,GACHA,GAAO,KACTA,GAAO,GACPF,KAIN,OAAO,KAAK,MAAM,CACpB,EAEA,SAASG,EAAeC,EAAQC,EAAO,CACrC,IAAIC,EAAIF,EAAO,WAAWC,CAAK,EAE/B,OAAIC,GAAK,IAAMA,GAAK,GACXA,EAAI,GAEFA,GAAK,IAAMA,GAAK,IAClBA,EAAI,GAGHA,EAAI,GAAM,EAEtB,CAEA,SAASC,EAAcH,EAAQI,EAAYH,EAAO,CAChD,IAAII,EAAIN,EAAcC,EAAQC,CAAK,EACnC,OAAIA,EAAQ,GAAKG,IACfC,GAAKN,EAAcC,EAAQC,EAAQ,CAAC,GAAK,GAEpCI,CACT,CAEAnB,EAAG,UAAU,UAAY,SAAoBC,EAAQO,EAAOL,EAAQ,CAElE,KAAK,OAAS,KAAK,MAAMF,EAAO,OAASO,GAAS,CAAC,EACnD,KAAK,MAAQ,IAAI,MAAM,KAAK,MAAM,EAClC,QAASC,EAAI,EAAGA,EAAI,KAAK,OAAQA,IAC/B,KAAK,MAAMA,GAAK,EAIlB,IAAIG,EAAM,EACNF,EAAI,EAEJC,EACJ,GAAIR,IAAW,KACb,IAAKM,EAAIR,EAAO,OAAS,EAAGQ,GAAKD,EAAOC,GAAK,EAC3CE,EAAIM,EAAahB,EAAQO,EAAOC,CAAC,GAAKG,EACtC,KAAK,MAAMF,IAAMC,EAAI,SACjBC,GAAO,IACTA,GAAO,GACPF,GAAK,EACL,KAAK,MAAMA,IAAMC,IAAM,IAEvBC,GAAO,MAGN,CACL,IAAIQ,EAAcnB,EAAO,OAASO,EAClC,IAAKC,EAAIW,EAAc,IAAM,EAAIZ,EAAQ,EAAIA,EAAOC,EAAIR,EAAO,OAAQQ,GAAK,EAC1EE,EAAIM,EAAahB,EAAQO,EAAOC,CAAC,GAAKG,EACtC,KAAK,MAAMF,IAAMC,EAAI,SACjBC,GAAO,IACTA,GAAO,GACPF,GAAK,EACL,KAAK,MAAMA,IAAMC,IAAM,IAEvBC,GAAO,CAGb,CAEA,KAAK,MAAM,CACb,EAEA,SAASS,EAAWC,EAAKd,EAAOe,EAAKC,EAAK,CAGxC,QAFIL,EAAI,EACJM,EAAM,KAAK,IAAIH,EAAI,OAAQC,CAAG,EACzBd,EAAID,EAAOC,EAAIgB,EAAKhB,IAAK,CAChC,IAAIO,EAAIM,EAAI,WAAWb,CAAC,EAAI,GAE5BU,GAAKK,EAGDR,GAAK,GACPG,GAAKH,EAAI,GAAK,GAGLA,GAAK,GACdG,GAAKH,EAAI,GAAK,GAIdG,GAAKH,CAET,CACA,OAAOG,CACT,CAEAnB,EAAG,UAAU,WAAa,SAAqBC,EAAQC,EAAMM,EAAO,CAElE,KAAK,MAAQ,CAAE,CAAE,EACjB,KAAK,OAAS,EAGd,QAASkB,EAAU,EAAGC,EAAU,EAAGA,GAAW,SAAWA,GAAWzB,EAClEwB,IAEFA,IACAC,EAAWA,EAAUzB,EAAQ,EAO7B,QALI0B,EAAQ3B,EAAO,OAASO,EACxBqB,EAAMD,EAAQF,EACdH,EAAM,KAAK,IAAIK,EAAOA,EAAQC,CAAG,EAAIrB,EAErCsB,EAAO,EACFrB,EAAID,EAAOC,EAAIc,EAAKd,GAAKiB,EAChCI,EAAOT,EAAUpB,EAAQQ,EAAGA,EAAIiB,EAASxB,CAAI,EAE7C,KAAK,MAAMyB,CAAO,EACd,KAAK,MAAM,GAAKG,EAAO,SACzB,KAAK,MAAM,IAAMA,EAEjB,KAAK,OAAOA,CAAI,EAIpB,GAAID,IAAQ,EAAG,CACb,IAAIE,EAAM,EAGV,IAFAD,EAAOT,EAAUpB,EAAQQ,EAAGR,EAAO,OAAQC,CAAI,EAE1CO,EAAI,EAAGA,EAAIoB,EAAKpB,IACnBsB,GAAO7B,EAGT,KAAK,MAAM6B,CAAG,EACV,KAAK,MAAM,GAAKD,EAAO,SACzB,KAAK,MAAM,IAAMA,EAEjB,KAAK,OAAOA,CAAI,CAEpB,CAEA,KAAK,MAAM,CACb,EAEA9B,EAAG,UAAU,KAAO,SAAegC,EAAM,CACvCA,EAAK,MAAQ,IAAI,MAAM,KAAK,MAAM,EAClC,QAASvB,EAAI,EAAGA,EAAI,KAAK,OAAQA,IAC/BuB,EAAK,MAAMvB,GAAK,KAAK,MAAMA,GAE7BuB,EAAK,OAAS,KAAK,OACnBA,EAAK,SAAW,KAAK,SACrBA,EAAK,IAAM,KAAK,GAClB,EAEAhC,EAAG,UAAU,MAAQ,UAAkB,CACrC,IAAImB,EAAI,IAAInB,EAAG,IAAI,EACnB,YAAK,KAAKmB,CAAC,EACJA,CACT,EAEAnB,EAAG,UAAU,QAAU,SAAkBiC,EAAM,CAC7C,KAAO,KAAK,OAASA,GACnB,KAAK,MAAM,KAAK,UAAY,EAE9B,OAAO,IACT,EAGAjC,EAAG,UAAU,MAAQ,UAAkB,CACrC,KAAO,KAAK,OAAS,GAAK,KAAK,MAAM,KAAK,OAAS,KAAO,GACxD,KAAK,SAEP,OAAO,KAAK,UAAU,CACxB,EAEAA,EAAG,UAAU,UAAY,UAAsB,CAE7C,OAAI,KAAK,SAAW,GAAK,KAAK,MAAM,KAAO,IACzC,KAAK,SAAW,GAEX,IACT,EAEAA,EAAG,UAAU,QAAU,UAAoB,CACzC,OAAQ,KAAK,IAAM,UAAY,SAAW,KAAK,SAAS,EAAE,EAAI,GAChE,EAgCA,IAAIkC,EAAQ,CACV,GACA,IACA,KACA,MACA,OACA,QACA,SACA,UACA,WACA,YACA,aACA,cACA,eACA,gBACA,iBACA,kBACA,mBACA,oBACA,qBACA,sBACA,uBACA,wBACA,yBACA,0BACA,2BACA,2BACF,EAEIC,EAAa,CACf,EAAG,EACH,GAAI,GAAI,GAAI,GAAI,GAAI,EAAG,EACvB,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAClB,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAClB,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAClB,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,CACpB,EAEIC,EAAa,CACf,EAAG,EACH,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAC5D,SAAU,IAAU,SAAU,SAAU,SAAU,QAAS,SAC3D,SAAU,SAAU,SAAU,SAAU,KAAU,QAAS,QAC3D,QAAS,QAAS,QAAS,SAAU,SAAU,SAAU,SACzD,MAAU,SAAU,SAAU,SAAU,SAAU,SAAU,QAC9D,EAEApC,EAAG,UAAU,SAAW,SAAmBE,EAAMmC,EAAS,CACxDnC,EAAOA,GAAQ,GACfmC,EAAUA,EAAU,GAAK,EAEzB,IAAIC,EACJ,GAAIpC,IAAS,IAAMA,IAAS,MAAO,CACjCoC,EAAM,GAGN,QAFI1B,EAAM,EACN2B,EAAQ,EACH9B,EAAI,EAAGA,EAAI,KAAK,OAAQA,IAAK,CACpC,IAAIE,EAAI,KAAK,MAAMF,GACfqB,IAAUnB,GAAKC,EAAO2B,GAAS,UAAU,SAAS,EAAE,EACxDA,EAAS5B,IAAO,GAAKC,EAAQ,SACzB2B,IAAU,GAAK9B,IAAM,KAAK,OAAS,EACrC6B,EAAMJ,EAAM,EAAIJ,EAAK,QAAUA,EAAOQ,EAEtCA,EAAMR,EAAOQ,EAEf1B,GAAO,EACHA,GAAO,KACTA,GAAO,GACPH,IAEJ,CAIA,IAHI8B,IAAU,IACZD,EAAMC,EAAM,SAAS,EAAE,EAAID,GAEtBA,EAAI,OAASD,IAAY,GAC9BC,EAAM,IAAMA,EAEd,OAAI,KAAK,WAAa,IACpBA,EAAM,IAAMA,GAEPA,CACT,CAEA,GAAIpC,KAAUA,EAAO,IAAMA,GAAQ,GAAKA,GAAQ,GAAI,CAElD,IAAIsC,EAAYL,EAAWjC,GAEvBuC,EAAYL,EAAWlC,GAC3BoC,EAAM,GACN,IAAItB,EAAI,KAAK,MAAM,EAEnB,IADAA,EAAE,SAAW,EACN,CAACA,EAAE,OAAO,GAAG,CAClB,IAAIG,EAAIH,EAAE,KAAKyB,CAAS,EAAE,SAASvC,CAAI,EACvCc,EAAIA,EAAE,MAAMyB,CAAS,EAEhBzB,EAAE,OAAO,EAGZsB,EAAMnB,EAAImB,EAFVA,EAAMJ,EAAMM,EAAYrB,EAAE,QAAUA,EAAImB,CAI5C,CAIA,IAHI,KAAK,OAAO,IACdA,EAAM,IAAMA,GAEPA,EAAI,OAASD,IAAY,GAC9BC,EAAM,IAAMA,EAEd,OAAI,KAAK,WAAa,IACpBA,EAAM,IAAMA,GAEPA,CACT,CAEA7C,EAAO,GAAO,iCAAiC,CACjD,EAEAO,EAAG,UAAU,SAAW,UAAqB,CAC3C,IAAI0C,EAAM,KAAK,MAAM,GACrB,OAAI,KAAK,SAAW,EAClBA,GAAO,KAAK,MAAM,GAAK,SACd,KAAK,SAAW,GAAK,KAAK,MAAM,KAAO,EAEhDA,GAAO,iBAAoB,KAAK,MAAM,GAAK,SAClC,KAAK,OAAS,GACvBjD,EAAO,GAAO,4CAA4C,EAEpD,KAAK,WAAa,EAAK,CAACiD,EAAMA,CACxC,EAEA1C,EAAG,UAAU,OAAS,UAAmB,CACvC,OAAO,KAAK,SAAS,EAAE,CACzB,EAEAA,EAAG,UAAU,SAAW,SAAmBG,EAAQwC,EAAQ,CACzD,OAAAlD,EAAO,OAAOW,EAAW,GAAW,EAC7B,KAAK,YAAYA,EAAQD,EAAQwC,CAAM,CAChD,EAEA3C,EAAG,UAAU,QAAU,SAAkBG,EAAQwC,EAAQ,CACvD,OAAO,KAAK,YAAY,MAAOxC,EAAQwC,CAAM,CAC/C,EAEA3C,EAAG,UAAU,YAAc,SAAsB4C,EAAWzC,EAAQwC,EAAQ,CAC1E,IAAIE,EAAa,KAAK,WAAW,EAC7BC,EAAYH,GAAU,KAAK,IAAI,EAAGE,CAAU,EAChDpD,EAAOoD,GAAcC,EAAW,uCAAuC,EACvErD,EAAOqD,EAAY,EAAG,6BAA6B,EAEnD,KAAK,MAAM,EACX,IAAIC,EAAe5C,IAAW,KAC1B6C,EAAM,IAAIJ,EAAUE,CAAS,EAE7B,EAAGrC,EACHwC,EAAI,KAAK,MAAM,EACnB,GAAKF,EAYE,CACL,IAAKtC,EAAI,EAAG,CAACwC,EAAE,OAAO,EAAGxC,IACvB,EAAIwC,EAAE,MAAM,GAAI,EAChBA,EAAE,OAAO,CAAC,EAEVD,EAAIvC,GAAK,EAGX,KAAOA,EAAIqC,EAAWrC,IACpBuC,EAAIvC,GAAK,CAEb,KAvBmB,CAEjB,IAAKA,EAAI,EAAGA,EAAIqC,EAAYD,EAAYpC,IACtCuC,EAAIvC,GAAK,EAGX,IAAKA,EAAI,EAAG,CAACwC,EAAE,OAAO,EAAGxC,IACvB,EAAIwC,EAAE,MAAM,GAAI,EAChBA,EAAE,OAAO,CAAC,EAEVD,EAAIF,EAAYrC,EAAI,GAAK,CAE7B,CAaA,OAAOuC,CACT,EAEI,KAAK,MACPhD,EAAG,UAAU,WAAa,SAAqBW,EAAG,CAChD,MAAO,IAAK,KAAK,MAAMA,CAAC,CAC1B,EAEAX,EAAG,UAAU,WAAa,SAAqBW,EAAG,CAChD,IAAIuC,EAAIvC,EACJQ,EAAI,EACR,OAAI+B,GAAK,OACP/B,GAAK,GACL+B,KAAO,IAELA,GAAK,KACP/B,GAAK,EACL+B,KAAO,GAELA,GAAK,IACP/B,GAAK,EACL+B,KAAO,GAELA,GAAK,IACP/B,GAAK,EACL+B,KAAO,GAEF/B,EAAI+B,CACb,EAGFlD,EAAG,UAAU,UAAY,SAAoBW,EAAG,CAE9C,GAAIA,IAAM,EAAG,MAAO,IAEpB,IAAIuC,EAAIvC,EACJQ,EAAI,EACR,OAAK+B,EAAI,QAAY,IACnB/B,GAAK,GACL+B,KAAO,KAEJA,EAAI,OAAU,IACjB/B,GAAK,EACL+B,KAAO,IAEJA,EAAI,MAAS,IAChB/B,GAAK,EACL+B,KAAO,IAEJA,EAAI,KAAS,IAChB/B,GAAK,EACL+B,KAAO,IAEJA,EAAI,KAAS,GAChB/B,IAEKA,CACT,EAGAnB,EAAG,UAAU,UAAY,UAAsB,CAC7C,IAAIW,EAAI,KAAK,MAAM,KAAK,OAAS,GAC7BwC,EAAK,KAAK,WAAWxC,CAAC,EAC1B,OAAQ,KAAK,OAAS,GAAK,GAAKwC,CAClC,EAEA,SAASC,EAAY/C,EAAK,CAGxB,QAFIM,EAAI,IAAI,MAAMN,EAAI,UAAU,CAAC,EAExBgD,EAAM,EAAGA,EAAM1C,EAAE,OAAQ0C,IAAO,CACvC,IAAIzC,EAAOyC,EAAM,GAAM,EACnBC,EAAOD,EAAM,GAEjB1C,EAAE0C,IAAQhD,EAAI,MAAMO,GAAQ,GAAK0C,KAAWA,CAC9C,CAEA,OAAO3C,CACT,CAGAX,EAAG,UAAU,SAAW,UAAqB,CAC3C,GAAI,KAAK,OAAO,EAAG,MAAO,GAG1B,QADImB,EAAI,EACCV,EAAI,EAAGA,EAAI,KAAK,OAAQA,IAAK,CACpC,IAAI8C,EAAI,KAAK,UAAU,KAAK,MAAM9C,EAAE,EAEpC,GADAU,GAAKoC,EACDA,IAAM,GAAI,KAChB,CACA,OAAOpC,CACT,EAEAnB,EAAG,UAAU,WAAa,UAAuB,CAC/C,OAAO,KAAK,KAAK,KAAK,UAAU,EAAI,CAAC,CACvC,EAEAA,EAAG,UAAU,OAAS,SAAiBwD,EAAO,CAC5C,OAAI,KAAK,WAAa,EACb,KAAK,IAAI,EAAE,MAAMA,CAAK,EAAE,MAAM,CAAC,EAEjC,KAAK,MAAM,CACpB,EAEAxD,EAAG,UAAU,SAAW,SAAmBwD,EAAO,CAChD,OAAI,KAAK,MAAMA,EAAQ,CAAC,EACf,KAAK,KAAKA,CAAK,EAAE,MAAM,CAAC,EAAE,KAAK,EAEjC,KAAK,MAAM,CACpB,EAEAxD,EAAG,UAAU,MAAQ,UAAkB,CACrC,OAAO,KAAK,WAAa,CAC3B,EAGAA,EAAG,UAAU,IAAM,UAAgB,CACjC,OAAO,KAAK,MAAM,EAAE,KAAK,CAC3B,EAEAA,EAAG,UAAU,KAAO,UAAiB,CACnC,OAAK,KAAK,OAAO,IACf,KAAK,UAAY,GAGZ,IACT,EAGAA,EAAG,UAAU,KAAO,SAAeK,EAAK,CACtC,KAAO,KAAK,OAASA,EAAI,QACvB,KAAK,MAAM,KAAK,UAAY,EAG9B,QAASI,EAAI,EAAGA,EAAIJ,EAAI,OAAQI,IAC9B,KAAK,MAAMA,GAAK,KAAK,MAAMA,GAAKJ,EAAI,MAAMI,GAG5C,OAAO,KAAK,MAAM,CACpB,EAEAT,EAAG,UAAU,IAAM,SAAcK,EAAK,CACpC,OAAAZ,GAAQ,KAAK,SAAWY,EAAI,YAAc,CAAC,EACpC,KAAK,KAAKA,CAAG,CACtB,EAGAL,EAAG,UAAU,GAAK,SAAaK,EAAK,CAClC,OAAI,KAAK,OAASA,EAAI,OAAe,KAAK,MAAM,EAAE,IAAIA,CAAG,EAClDA,EAAI,MAAM,EAAE,IAAI,IAAI,CAC7B,EAEAL,EAAG,UAAU,IAAM,SAAcK,EAAK,CACpC,OAAI,KAAK,OAASA,EAAI,OAAe,KAAK,MAAM,EAAE,KAAKA,CAAG,EACnDA,EAAI,MAAM,EAAE,KAAK,IAAI,CAC9B,EAGAL,EAAG,UAAU,MAAQ,SAAgBK,EAAK,CAExC,IAAIkD,EACA,KAAK,OAASlD,EAAI,OACpBkD,EAAIlD,EAEJkD,EAAI,KAGN,QAAS9C,EAAI,EAAGA,EAAI8C,EAAE,OAAQ9C,IAC5B,KAAK,MAAMA,GAAK,KAAK,MAAMA,GAAKJ,EAAI,MAAMI,GAG5C,YAAK,OAAS8C,EAAE,OAET,KAAK,MAAM,CACpB,EAEAvD,EAAG,UAAU,KAAO,SAAeK,EAAK,CACtC,OAAAZ,GAAQ,KAAK,SAAWY,EAAI,YAAc,CAAC,EACpC,KAAK,MAAMA,CAAG,CACvB,EAGAL,EAAG,UAAU,IAAM,SAAcK,EAAK,CACpC,OAAI,KAAK,OAASA,EAAI,OAAe,KAAK,MAAM,EAAE,KAAKA,CAAG,EACnDA,EAAI,MAAM,EAAE,KAAK,IAAI,CAC9B,EAEAL,EAAG,UAAU,KAAO,SAAeK,EAAK,CACtC,OAAI,KAAK,OAASA,EAAI,OAAe,KAAK,MAAM,EAAE,MAAMA,CAAG,EACpDA,EAAI,MAAM,EAAE,MAAM,IAAI,CAC/B,EAGAL,EAAG,UAAU,MAAQ,SAAgBK,EAAK,CAExC,IAAIoD,EACAF,EACA,KAAK,OAASlD,EAAI,QACpBoD,EAAI,KACJF,EAAIlD,IAEJoD,EAAIpD,EACJkD,EAAI,MAGN,QAAS9C,EAAI,EAAGA,EAAI8C,EAAE,OAAQ9C,IAC5B,KAAK,MAAMA,GAAKgD,EAAE,MAAMhD,GAAK8C,EAAE,MAAM9C,GAGvC,GAAI,OAASgD,EACX,KAAOhD,EAAIgD,EAAE,OAAQhD,IACnB,KAAK,MAAMA,GAAKgD,EAAE,MAAMhD,GAI5B,YAAK,OAASgD,EAAE,OAET,KAAK,MAAM,CACpB,EAEAzD,EAAG,UAAU,KAAO,SAAeK,EAAK,CACtC,OAAAZ,GAAQ,KAAK,SAAWY,EAAI,YAAc,CAAC,EACpC,KAAK,MAAMA,CAAG,CACvB,EAGAL,EAAG,UAAU,IAAM,SAAcK,EAAK,CACpC,OAAI,KAAK,OAASA,EAAI,OAAe,KAAK,MAAM,EAAE,KAAKA,CAAG,EACnDA,EAAI,MAAM,EAAE,KAAK,IAAI,CAC9B,EAEAL,EAAG,UAAU,KAAO,SAAeK,EAAK,CACtC,OAAI,KAAK,OAASA,EAAI,OAAe,KAAK,MAAM,EAAE,MAAMA,CAAG,EACpDA,EAAI,MAAM,EAAE,MAAM,IAAI,CAC/B,EAGAL,EAAG,UAAU,MAAQ,SAAgBwD,EAAO,CAC1C/D,EAAO,OAAO+D,GAAU,UAAYA,GAAS,CAAC,EAE9C,IAAIE,EAAc,KAAK,KAAKF,EAAQ,EAAE,EAAI,EACtCG,EAAWH,EAAQ,GAGvB,KAAK,QAAQE,CAAW,EAEpBC,EAAW,GACbD,IAIF,QAASjD,EAAI,EAAGA,EAAIiD,EAAajD,IAC/B,KAAK,MAAMA,GAAK,CAAC,KAAK,MAAMA,GAAK,SAInC,OAAIkD,EAAW,IACb,KAAK,MAAMlD,GAAK,CAAC,KAAK,MAAMA,GAAM,UAAc,GAAKkD,GAIhD,KAAK,MAAM,CACpB,EAEA3D,EAAG,UAAU,KAAO,SAAewD,EAAO,CACxC,OAAO,KAAK,MAAM,EAAE,MAAMA,CAAK,CACjC,EAGAxD,EAAG,UAAU,KAAO,SAAeqD,EAAK3D,EAAK,CAC3CD,EAAO,OAAO4D,GAAQ,UAAYA,GAAO,CAAC,EAE1C,IAAIzC,EAAOyC,EAAM,GAAM,EACnBC,EAAOD,EAAM,GAEjB,YAAK,QAAQzC,EAAM,CAAC,EAEhBlB,EACF,KAAK,MAAMkB,GAAO,KAAK,MAAMA,GAAQ,GAAK0C,EAE1C,KAAK,MAAM1C,GAAO,KAAK,MAAMA,GAAO,EAAE,GAAK0C,GAGtC,KAAK,MAAM,CACpB,EAGAtD,EAAG,UAAU,KAAO,SAAeK,EAAK,CACtC,IAAIc,EAGJ,GAAI,KAAK,WAAa,GAAKd,EAAI,WAAa,EAC1C,YAAK,SAAW,EAChBc,EAAI,KAAK,KAAKd,CAAG,EACjB,KAAK,UAAY,EACV,KAAK,UAAU,EAGjB,GAAI,KAAK,WAAa,GAAKA,EAAI,WAAa,EACjD,OAAAA,EAAI,SAAW,EACfc,EAAI,KAAK,KAAKd,CAAG,EACjBA,EAAI,SAAW,EACRc,EAAE,UAAU,EAIrB,IAAIsC,EAAGF,EACH,KAAK,OAASlD,EAAI,QACpBoD,EAAI,KACJF,EAAIlD,IAEJoD,EAAIpD,EACJkD,EAAI,MAIN,QADIhB,EAAQ,EACH9B,EAAI,EAAGA,EAAI8C,EAAE,OAAQ9C,IAC5BU,GAAKsC,EAAE,MAAMhD,GAAK,IAAM8C,EAAE,MAAM9C,GAAK,GAAK8B,EAC1C,KAAK,MAAM9B,GAAKU,EAAI,SACpBoB,EAAQpB,IAAM,GAEhB,KAAOoB,IAAU,GAAK9B,EAAIgD,EAAE,OAAQhD,IAClCU,GAAKsC,EAAE,MAAMhD,GAAK,GAAK8B,EACvB,KAAK,MAAM9B,GAAKU,EAAI,SACpBoB,EAAQpB,IAAM,GAIhB,GADA,KAAK,OAASsC,EAAE,OACZlB,IAAU,EACZ,KAAK,MAAM,KAAK,QAAUA,EAC1B,KAAK,iBAEIkB,IAAM,KACf,KAAOhD,EAAIgD,EAAE,OAAQhD,IACnB,KAAK,MAAMA,GAAKgD,EAAE,MAAMhD,GAI5B,OAAO,IACT,EAGAT,EAAG,UAAU,IAAM,SAAcK,EAAK,CACpC,IAAI2C,EACJ,OAAI3C,EAAI,WAAa,GAAK,KAAK,WAAa,GAC1CA,EAAI,SAAW,EACf2C,EAAM,KAAK,IAAI3C,CAAG,EAClBA,EAAI,UAAY,EACT2C,GACE3C,EAAI,WAAa,GAAK,KAAK,WAAa,GACjD,KAAK,SAAW,EAChB2C,EAAM3C,EAAI,IAAI,IAAI,EAClB,KAAK,SAAW,EACT2C,GAGL,KAAK,OAAS3C,EAAI,OAAe,KAAK,MAAM,EAAE,KAAKA,CAAG,EAEnDA,EAAI,MAAM,EAAE,KAAK,IAAI,CAC9B,EAGAL,EAAG,UAAU,KAAO,SAAeK,EAAK,CAEtC,GAAIA,EAAI,WAAa,EAAG,CACtBA,EAAI,SAAW,EACf,IAAIc,EAAI,KAAK,KAAKd,CAAG,EACrB,OAAAA,EAAI,SAAW,EACRc,EAAE,UAAU,CAGrB,SAAW,KAAK,WAAa,EAC3B,YAAK,SAAW,EAChB,KAAK,KAAKd,CAAG,EACb,KAAK,SAAW,EACT,KAAK,UAAU,EAIxB,IAAIuD,EAAM,KAAK,IAAIvD,CAAG,EAGtB,GAAIuD,IAAQ,EACV,YAAK,SAAW,EAChB,KAAK,OAAS,EACd,KAAK,MAAM,GAAK,EACT,KAIT,IAAIH,EAAGF,EACHK,EAAM,GACRH,EAAI,KACJF,EAAIlD,IAEJoD,EAAIpD,EACJkD,EAAI,MAIN,QADIhB,EAAQ,EACH9B,EAAI,EAAGA,EAAI8C,EAAE,OAAQ9C,IAC5BU,GAAKsC,EAAE,MAAMhD,GAAK,IAAM8C,EAAE,MAAM9C,GAAK,GAAK8B,EAC1CA,EAAQpB,GAAK,GACb,KAAK,MAAMV,GAAKU,EAAI,SAEtB,KAAOoB,IAAU,GAAK9B,EAAIgD,EAAE,OAAQhD,IAClCU,GAAKsC,EAAE,MAAMhD,GAAK,GAAK8B,EACvBA,EAAQpB,GAAK,GACb,KAAK,MAAMV,GAAKU,EAAI,SAItB,GAAIoB,IAAU,GAAK9B,EAAIgD,EAAE,QAAUA,IAAM,KACvC,KAAOhD,EAAIgD,EAAE,OAAQhD,IACnB,KAAK,MAAMA,GAAKgD,EAAE,MAAMhD,GAI5B,YAAK,OAAS,KAAK,IAAI,KAAK,OAAQA,CAAC,EAEjCgD,IAAM,OACR,KAAK,SAAW,GAGX,KAAK,MAAM,CACpB,EAGAzD,EAAG,UAAU,IAAM,SAAcK,EAAK,CACpC,OAAO,KAAK,MAAM,EAAE,KAAKA,CAAG,CAC9B,EAEA,SAASwD,EAAYC,EAAMzD,EAAKiC,EAAK,CACnCA,EAAI,SAAWjC,EAAI,SAAWyD,EAAK,SACnC,IAAIrC,EAAOqC,EAAK,OAASzD,EAAI,OAAU,EACvCiC,EAAI,OAASb,EACbA,EAAOA,EAAM,EAAK,EAGlB,IAAIgC,EAAIK,EAAK,MAAM,GAAK,EACpBP,EAAIlD,EAAI,MAAM,GAAK,EACnBc,EAAIsC,EAAIF,EAERQ,EAAK5C,EAAI,SACToB,EAASpB,EAAI,SAAa,EAC9BmB,EAAI,MAAM,GAAKyB,EAEf,QAASC,EAAI,EAAGA,EAAIvC,EAAKuC,IAAK,CAM5B,QAHIC,EAAS1B,IAAU,GACnB2B,EAAQ3B,EAAQ,SAChB4B,EAAO,KAAK,IAAIH,EAAG3D,EAAI,OAAS,CAAC,EAC5BK,EAAI,KAAK,IAAI,EAAGsD,EAAIF,EAAK,OAAS,CAAC,EAAGpD,GAAKyD,EAAMzD,IAAK,CAC7D,IAAID,EAAKuD,EAAItD,EAAK,EAClB+C,EAAIK,EAAK,MAAMrD,GAAK,EACpB8C,EAAIlD,EAAI,MAAMK,GAAK,EACnBS,EAAIsC,EAAIF,EAAIW,EACZD,GAAW9C,EAAI,SAAa,EAC5B+C,EAAQ/C,EAAI,QACd,CACAmB,EAAI,MAAM0B,GAAKE,EAAQ,EACvB3B,EAAQ0B,EAAS,CACnB,CACA,OAAI1B,IAAU,EACZD,EAAI,MAAM0B,GAAKzB,EAAQ,EAEvBD,EAAI,SAGCA,EAAI,MAAM,CACnB,CAKA,IAAI8B,EAAc,SAAsBN,EAAMzD,EAAKiC,EAAK,CACtD,IAAImB,EAAIK,EAAK,MACTP,EAAIlD,EAAI,MACRgE,EAAI/B,EAAI,MACRtB,EAAI,EACJ+C,EACAO,EACAnB,EACAoB,EAAKd,EAAE,GAAK,EACZe,EAAMD,EAAK,KACXE,EAAMF,IAAO,GACbG,EAAKjB,EAAE,GAAK,EACZkB,EAAMD,EAAK,KACXE,EAAMF,IAAO,GACbG,GAAKpB,EAAE,GAAK,EACZqB,EAAMD,GAAK,KACXE,EAAMF,KAAO,GACbG,GAAKvB,EAAE,GAAK,EACZwB,EAAMD,GAAK,KACXE,GAAMF,KAAO,GACbG,GAAK1B,EAAE,GAAK,EACZ2B,GAAMD,GAAK,KACXE,GAAMF,KAAO,GACbG,GAAK7B,EAAE,GAAK,EACZ8B,GAAMD,GAAK,KACXE,GAAMF,KAAO,GACbG,GAAKhC,EAAE,GAAK,EACZiC,GAAMD,GAAK,KACXE,EAAMF,KAAO,GACbG,GAAKnC,EAAE,GAAK,EACZoC,EAAMD,GAAK,KACXE,GAAMF,KAAO,GACbG,GAAKtC,EAAE,GAAK,EACZuC,GAAMD,GAAK,KACXE,GAAMF,KAAO,GACbG,GAAKzC,EAAE,GAAK,EACZ0C,EAAMD,GAAK,KACXE,EAAMF,KAAO,GACbG,GAAK9C,EAAE,GAAK,EACZ+C,GAAMD,GAAK,KACXE,GAAMF,KAAO,GACbG,GAAKjD,EAAE,GAAK,EACZkD,GAAMD,GAAK,KACXE,GAAMF,KAAO,GACbG,GAAKpD,EAAE,GAAK,EACZqD,GAAMD,GAAK,KACXE,GAAMF,KAAO,GACbG,GAAKvD,EAAE,GAAK,EACZwD,GAAMD,GAAK,KACXE,GAAMF,KAAO,GACbG,GAAK1D,EAAE,GAAK,EACZ2D,GAAMD,GAAK,KACXE,GAAMF,KAAO,GACbG,GAAK7D,EAAE,GAAK,EACZ8D,GAAMD,GAAK,KACXE,GAAMF,KAAO,GACbG,GAAKhE,EAAE,GAAK,EACZiE,GAAMD,GAAK,KACXE,GAAMF,KAAO,GACbG,GAAKnE,EAAE,GAAK,EACZoE,GAAMD,GAAK,KACXE,GAAMF,KAAO,GACbG,GAAKtE,EAAE,GAAK,EACZuE,GAAMD,GAAK,KACXE,GAAMF,KAAO,GACbG,GAAKzE,EAAE,GAAK,EACZ0E,GAAMD,GAAK,KACXE,GAAMF,KAAO,GAEjB1F,EAAI,SAAWwB,EAAK,SAAWzD,EAAI,SACnCiC,EAAI,OAAS,GAEbyB,EAAK,KAAK,KAAKS,EAAK8B,EAAG,EACvBhC,EAAM,KAAK,KAAKE,EAAK+B,EAAG,EACxBjC,EAAOA,EAAM,KAAK,KAAKG,EAAK6B,EAAG,EAAK,EACpCnD,EAAK,KAAK,KAAKsB,EAAK8B,EAAG,EACvB,IAAI4B,IAAQnH,EAAI+C,EAAM,KAAOO,EAAM,OAAW,IAAO,EACrDtD,GAAOmC,GAAMmB,IAAQ,IAAO,IAAM6D,KAAO,IAAO,EAChDA,IAAM,SAENpE,EAAK,KAAK,KAAKY,EAAK2B,EAAG,EACvBhC,EAAM,KAAK,KAAKK,EAAK4B,EAAG,EACxBjC,EAAOA,EAAM,KAAK,KAAKM,EAAK0B,EAAG,EAAK,EACpCnD,EAAK,KAAK,KAAKyB,EAAK2B,EAAG,EACvBxC,EAAMA,EAAK,KAAK,KAAKS,EAAKiC,EAAG,EAAK,EAClCnC,EAAOA,EAAM,KAAK,KAAKE,EAAKkC,EAAG,EAAK,EACpCpC,EAAOA,EAAM,KAAK,KAAKG,EAAKgC,EAAG,EAAK,EACpCtD,EAAMA,EAAK,KAAK,KAAKsB,EAAKiC,EAAG,EAAK,EAClC,IAAI0B,IAAQpH,EAAI+C,EAAM,KAAOO,EAAM,OAAW,IAAO,EACrDtD,GAAOmC,GAAMmB,IAAQ,IAAO,IAAM8D,KAAO,IAAO,EAChDA,IAAM,SAENrE,EAAK,KAAK,KAAKe,EAAKwB,EAAG,EACvBhC,EAAM,KAAK,KAAKQ,EAAKyB,EAAG,EACxBjC,EAAOA,EAAM,KAAK,KAAKS,EAAKuB,EAAG,EAAK,EACpCnD,EAAK,KAAK,KAAK4B,EAAKwB,EAAG,EACvBxC,EAAMA,EAAK,KAAK,KAAKY,EAAK8B,EAAG,EAAK,EAClCnC,EAAOA,EAAM,KAAK,KAAKK,EAAK+B,EAAG,EAAK,EACpCpC,EAAOA,EAAM,KAAK,KAAKM,EAAK6B,EAAG,EAAK,EACpCtD,EAAMA,EAAK,KAAK,KAAKyB,EAAK8B,EAAG,EAAK,EAClC3C,EAAMA,EAAK,KAAK,KAAKS,EAAKoC,EAAG,EAAK,EAClCtC,EAAOA,EAAM,KAAK,KAAKE,EAAKqC,EAAG,EAAK,EACpCvC,EAAOA,EAAM,KAAK,KAAKG,EAAKmC,EAAG,EAAK,EACpCzD,EAAMA,EAAK,KAAK,KAAKsB,EAAKoC,EAAG,EAAK,EAClC,IAAIwB,IAAQrH,EAAI+C,EAAM,KAAOO,EAAM,OAAW,IAAO,EACrDtD,GAAOmC,GAAMmB,IAAQ,IAAO,IAAM+D,KAAO,IAAO,EAChDA,IAAM,SAENtE,EAAK,KAAK,KAAKkB,EAAKqB,EAAG,EACvBhC,EAAM,KAAK,KAAKW,EAAKsB,EAAG,EACxBjC,EAAOA,EAAM,KAAK,KAAKY,GAAKoB,EAAG,EAAK,EACpCnD,EAAK,KAAK,KAAK+B,GAAKqB,EAAG,EACvBxC,EAAMA,EAAK,KAAK,KAAKe,EAAK2B,EAAG,EAAK,EAClCnC,EAAOA,EAAM,KAAK,KAAKQ,EAAK4B,EAAG,EAAK,EACpCpC,EAAOA,EAAM,KAAK,KAAKS,EAAK0B,EAAG,EAAK,EACpCtD,EAAMA,EAAK,KAAK,KAAK4B,EAAK2B,EAAG,EAAK,EAClC3C,EAAMA,EAAK,KAAK,KAAKY,EAAKiC,EAAG,EAAK,EAClCtC,EAAOA,EAAM,KAAK,KAAKK,EAAKkC,EAAG,EAAK,EACpCvC,EAAOA,EAAM,KAAK,KAAKM,EAAKgC,EAAG,EAAK,EACpCzD,EAAMA,EAAK,KAAK,KAAKyB,EAAKiC,EAAG,EAAK,EAClC9C,EAAMA,EAAK,KAAK,KAAKS,EAAKuC,EAAG,EAAK,EAClCzC,EAAOA,EAAM,KAAK,KAAKE,EAAKwC,EAAG,EAAK,EACpC1C,EAAOA,EAAM,KAAK,KAAKG,EAAKsC,EAAG,EAAK,EACpC5D,EAAMA,EAAK,KAAK,KAAKsB,EAAKuC,EAAG,EAAK,EAClC,IAAIsB,IAAQtH,EAAI+C,EAAM,KAAOO,EAAM,OAAW,IAAO,EACrDtD,GAAOmC,GAAMmB,IAAQ,IAAO,IAAMgE,KAAO,IAAO,EAChDA,IAAM,SAENvE,EAAK,KAAK,KAAKqB,GAAKkB,EAAG,EACvBhC,EAAM,KAAK,KAAKc,GAAKmB,EAAG,EACxBjC,EAAOA,EAAM,KAAK,KAAKe,GAAKiB,EAAG,EAAK,EACpCnD,EAAK,KAAK,KAAKkC,GAAKkB,EAAG,EACvBxC,EAAMA,EAAK,KAAK,KAAKkB,EAAKwB,EAAG,EAAK,EAClCnC,EAAOA,EAAM,KAAK,KAAKW,EAAKyB,EAAG,EAAK,EACpCpC,EAAOA,EAAM,KAAK,KAAKY,GAAKuB,EAAG,EAAK,EACpCtD,EAAMA,EAAK,KAAK,KAAK+B,GAAKwB,EAAG,EAAK,EAClC3C,EAAMA,EAAK,KAAK,KAAKe,EAAK8B,EAAG,EAAK,EAClCtC,EAAOA,EAAM,KAAK,KAAKQ,EAAK+B,EAAG,EAAK,EACpCvC,EAAOA,EAAM,KAAK,KAAKS,EAAK6B,EAAG,EAAK,EACpCzD,EAAMA,EAAK,KAAK,KAAK4B,EAAK8B,EAAG,EAAK,EAClC9C,EAAMA,EAAK,KAAK,KAAKY,EAAKoC,EAAG,EAAK,EAClCzC,EAAOA,EAAM,KAAK,KAAKK,EAAKqC,EAAG,EAAK,EACpC1C,EAAOA,EAAM,KAAK,KAAKM,EAAKmC,EAAG,EAAK,EACpC5D,EAAMA,EAAK,KAAK,KAAKyB,EAAKoC,EAAG,EAAK,EAClCjD,EAAMA,EAAK,KAAK,KAAKS,EAAK0C,EAAG,EAAK,EAClC5C,EAAOA,EAAM,KAAK,KAAKE,EAAK2C,EAAG,EAAK,EACpC7C,EAAOA,EAAM,KAAK,KAAKG,EAAKyC,EAAG,EAAK,EACpC/D,EAAMA,EAAK,KAAK,KAAKsB,EAAK0C,EAAG,EAAK,EAClC,IAAIoB,IAAQvH,EAAI+C,EAAM,KAAOO,EAAM,OAAW,IAAO,EACrDtD,GAAOmC,GAAMmB,IAAQ,IAAO,IAAMiE,KAAO,IAAO,EAChDA,IAAM,SAENxE,EAAK,KAAK,KAAKwB,GAAKe,EAAG,EACvBhC,EAAM,KAAK,KAAKiB,GAAKgB,EAAG,EACxBjC,EAAOA,EAAM,KAAK,KAAKkB,GAAKc,EAAG,EAAK,EACpCnD,EAAK,KAAK,KAAKqC,GAAKe,EAAG,EACvBxC,EAAMA,EAAK,KAAK,KAAKqB,GAAKqB,EAAG,EAAK,EAClCnC,EAAOA,EAAM,KAAK,KAAKc,GAAKsB,EAAG,EAAK,EACpCpC,EAAOA,EAAM,KAAK,KAAKe,GAAKoB,EAAG,EAAK,EACpCtD,EAAMA,EAAK,KAAK,KAAKkC,GAAKqB,EAAG,EAAK,EAClC3C,EAAMA,EAAK,KAAK,KAAKkB,EAAK2B,EAAG,EAAK,EAClCtC,EAAOA,EAAM,KAAK,KAAKW,EAAK4B,EAAG,EAAK,EACpCvC,EAAOA,EAAM,KAAK,KAAKY,GAAK0B,EAAG,EAAK,EACpCzD,EAAMA,EAAK,KAAK,KAAK+B,GAAK2B,EAAG,EAAK,EAClC9C,EAAMA,EAAK,KAAK,KAAKe,EAAKiC,EAAG,EAAK,EAClCzC,EAAOA,EAAM,KAAK,KAAKQ,EAAKkC,EAAG,EAAK,EACpC1C,EAAOA,EAAM,KAAK,KAAKS,EAAKgC,EAAG,EAAK,EACpC5D,EAAMA,EAAK,KAAK,KAAK4B,EAAKiC,EAAG,EAAK,EAClCjD,EAAMA,EAAK,KAAK,KAAKY,EAAKuC,EAAG,EAAK,EAClC5C,EAAOA,EAAM,KAAK,KAAKK,EAAKwC,EAAG,EAAK,EACpC7C,EAAOA,EAAM,KAAK,KAAKM,EAAKsC,EAAG,EAAK,EACpC/D,EAAMA,EAAK,KAAK,KAAKyB,EAAKuC,EAAG,EAAK,EAClCpD,EAAMA,EAAK,KAAK,KAAKS,EAAK6C,EAAG,EAAK,EAClC/C,EAAOA,EAAM,KAAK,KAAKE,EAAK8C,EAAG,EAAK,EACpChD,EAAOA,EAAM,KAAK,KAAKG,EAAK4C,EAAG,EAAK,EACpClE,EAAMA,EAAK,KAAK,KAAKsB,EAAK6C,EAAG,EAAK,EAClC,IAAIkB,IAAQxH,EAAI+C,EAAM,KAAOO,EAAM,OAAW,IAAO,EACrDtD,GAAOmC,GAAMmB,IAAQ,IAAO,IAAMkE,KAAO,IAAO,EAChDA,IAAM,SAENzE,EAAK,KAAK,KAAK2B,GAAKY,EAAG,EACvBhC,EAAM,KAAK,KAAKoB,GAAKa,EAAG,EACxBjC,EAAOA,EAAM,KAAK,KAAKqB,EAAKW,EAAG,EAAK,EACpCnD,EAAK,KAAK,KAAKwC,EAAKY,EAAG,EACvBxC,EAAMA,EAAK,KAAK,KAAKwB,GAAKkB,EAAG,EAAK,EAClCnC,EAAOA,EAAM,KAAK,KAAKiB,GAAKmB,EAAG,EAAK,EACpCpC,EAAOA,EAAM,KAAK,KAAKkB,GAAKiB,EAAG,EAAK,EACpCtD,EAAMA,EAAK,KAAK,KAAKqC,GAAKkB,EAAG,EAAK,EAClC3C,EAAMA,EAAK,KAAK,KAAKqB,GAAKwB,EAAG,EAAK,EAClCtC,EAAOA,EAAM,KAAK,KAAKc,GAAKyB,EAAG,EAAK,EACpCvC,EAAOA,EAAM,KAAK,KAAKe,GAAKuB,EAAG,EAAK,EACpCzD,EAAMA,EAAK,KAAK,KAAKkC,GAAKwB,EAAG,EAAK,EAClC9C,EAAMA,EAAK,KAAK,KAAKkB,EAAK8B,EAAG,EAAK,EAClCzC,EAAOA,EAAM,KAAK,KAAKW,EAAK+B,EAAG,EAAK,EACpC1C,EAAOA,EAAM,KAAK,KAAKY,GAAK6B,EAAG,EAAK,EACpC5D,EAAMA,EAAK,KAAK,KAAK+B,GAAK8B,EAAG,EAAK,EAClCjD,EAAMA,EAAK,KAAK,KAAKe,EAAKoC,EAAG,EAAK,EAClC5C,EAAOA,EAAM,KAAK,KAAKQ,EAAKqC,EAAG,EAAK,EACpC7C,EAAOA,EAAM,KAAK,KAAKS,EAAKmC,EAAG,EAAK,EACpC/D,EAAMA,EAAK,KAAK,KAAK4B,EAAKoC,EAAG,EAAK,EAClCpD,EAAMA,EAAK,KAAK,KAAKY,EAAK0C,EAAG,EAAK,EAClC/C,EAAOA,EAAM,KAAK,KAAKK,EAAK2C,EAAG,EAAK,EACpChD,EAAOA,EAAM,KAAK,KAAKM,EAAKyC,EAAG,EAAK,EACpClE,EAAMA,EAAK,KAAK,KAAKyB,EAAK0C,EAAG,EAAK,EAClCvD,EAAMA,EAAK,KAAK,KAAKS,EAAKgD,EAAG,EAAK,EAClClD,EAAOA,EAAM,KAAK,KAAKE,EAAKiD,EAAG,EAAK,EACpCnD,EAAOA,EAAM,KAAK,KAAKG,EAAK+C,EAAG,EAAK,EACpCrE,EAAMA,EAAK,KAAK,KAAKsB,EAAKgD,EAAG,EAAK,EAClC,IAAIgB,IAAQzH,EAAI+C,EAAM,KAAOO,EAAM,OAAW,IAAO,EACrDtD,GAAOmC,GAAMmB,IAAQ,IAAO,IAAMmE,KAAO,IAAO,EAChDA,IAAM,SAEN1E,EAAK,KAAK,KAAK8B,EAAKS,EAAG,EACvBhC,EAAM,KAAK,KAAKuB,EAAKU,EAAG,EACxBjC,EAAOA,EAAM,KAAK,KAAKwB,GAAKQ,EAAG,EAAK,EACpCnD,EAAK,KAAK,KAAK2C,GAAKS,EAAG,EACvBxC,EAAMA,EAAK,KAAK,KAAK2B,GAAKe,EAAG,EAAK,EAClCnC,EAAOA,EAAM,KAAK,KAAKoB,GAAKgB,EAAG,EAAK,EACpCpC,EAAOA,EAAM,KAAK,KAAKqB,EAAKc,EAAG,EAAK,EACpCtD,EAAMA,EAAK,KAAK,KAAKwC,EAAKe,EAAG,EAAK,EAClC3C,EAAMA,EAAK,KAAK,KAAKwB,GAAKqB,EAAG,EAAK,EAClCtC,EAAOA,EAAM,KAAK,KAAKiB,GAAKsB,EAAG,EAAK,EACpCvC,EAAOA,EAAM,KAAK,KAAKkB,GAAKoB,EAAG,EAAK,EACpCzD,EAAMA,EAAK,KAAK,KAAKqC,GAAKqB,EAAG,EAAK,EAClC9C,EAAMA,EAAK,KAAK,KAAKqB,GAAK2B,EAAG,EAAK,EAClCzC,EAAOA,EAAM,KAAK,KAAKc,GAAK4B,EAAG,EAAK,EACpC1C,EAAOA,EAAM,KAAK,KAAKe,GAAK0B,EAAG,EAAK,EACpC5D,EAAMA,EAAK,KAAK,KAAKkC,GAAK2B,EAAG,EAAK,EAClCjD,EAAMA,EAAK,KAAK,KAAKkB,EAAKiC,EAAG,EAAK,EAClC5C,EAAOA,EAAM,KAAK,KAAKW,EAAKkC,EAAG,EAAK,EACpC7C,EAAOA,EAAM,KAAK,KAAKY,GAAKgC,EAAG,EAAK,EACpC/D,EAAMA,EAAK,KAAK,KAAK+B,GAAKiC,EAAG,EAAK,EAClCpD,EAAMA,EAAK,KAAK,KAAKe,EAAKuC,EAAG,EAAK,EAClC/C,EAAOA,EAAM,KAAK,KAAKQ,EAAKwC,EAAG,EAAK,EACpChD,EAAOA,EAAM,KAAK,KAAKS,EAAKsC,EAAG,EAAK,EACpClE,EAAMA,EAAK,KAAK,KAAK4B,EAAKuC,EAAG,EAAK,EAClCvD,EAAMA,EAAK,KAAK,KAAKY,EAAK6C,EAAG,EAAK,EAClClD,EAAOA,EAAM,KAAK,KAAKK,EAAK8C,EAAG,EAAK,EACpCnD,EAAOA,EAAM,KAAK,KAAKM,EAAK4C,EAAG,EAAK,EACpCrE,EAAMA,EAAK,KAAK,KAAKyB,EAAK6C,EAAG,EAAK,EAClC1D,EAAMA,EAAK,KAAK,KAAKS,EAAKmD,EAAG,EAAK,EAClCrD,EAAOA,EAAM,KAAK,KAAKE,EAAKoD,EAAG,EAAK,EACpCtD,EAAOA,EAAM,KAAK,KAAKG,EAAKkD,EAAG,EAAK,EACpCxE,EAAMA,EAAK,KAAK,KAAKsB,EAAKmD,EAAG,EAAK,EAClC,IAAIc,IAAQ1H,EAAI+C,EAAM,KAAOO,EAAM,OAAW,IAAO,EACrDtD,GAAOmC,GAAMmB,IAAQ,IAAO,IAAMoE,KAAO,IAAO,EAChDA,IAAM,SAEN3E,EAAK,KAAK,KAAKiC,GAAKM,EAAG,EACvBhC,EAAM,KAAK,KAAK0B,GAAKO,EAAG,EACxBjC,EAAOA,EAAM,KAAK,KAAK2B,GAAKK,EAAG,EAAK,EACpCnD,EAAK,KAAK,KAAK8C,GAAKM,EAAG,EACvBxC,EAAMA,EAAK,KAAK,KAAK8B,EAAKY,EAAG,EAAK,EAClCnC,EAAOA,EAAM,KAAK,KAAKuB,EAAKa,EAAG,EAAK,EACpCpC,EAAOA,EAAM,KAAK,KAAKwB,GAAKW,EAAG,EAAK,EACpCtD,EAAMA,EAAK,KAAK,KAAK2C,GAAKY,EAAG,EAAK,EAClC3C,EAAMA,EAAK,KAAK,KAAK2B,GAAKkB,EAAG,EAAK,EAClCtC,EAAOA,EAAM,KAAK,KAAKoB,GAAKmB,EAAG,EAAK,EACpCvC,EAAOA,EAAM,KAAK,KAAKqB,EAAKiB,EAAG,EAAK,EACpCzD,EAAMA,EAAK,KAAK,KAAKwC,EAAKkB,EAAG,EAAK,EAClC9C,EAAMA,EAAK,KAAK,KAAKwB,GAAKwB,EAAG,EAAK,EAClCzC,EAAOA,EAAM,KAAK,KAAKiB,GAAKyB,EAAG,EAAK,EACpC1C,EAAOA,EAAM,KAAK,KAAKkB,GAAKuB,EAAG,EAAK,EACpC5D,EAAMA,EAAK,KAAK,KAAKqC,GAAKwB,EAAG,EAAK,EAClCjD,EAAMA,EAAK,KAAK,KAAKqB,GAAK8B,EAAG,EAAK,EAClC5C,EAAOA,EAAM,KAAK,KAAKc,GAAK+B,EAAG,EAAK,EACpC7C,EAAOA,EAAM,KAAK,KAAKe,GAAK6B,EAAG,EAAK,EACpC/D,EAAMA,EAAK,KAAK,KAAKkC,GAAK8B,EAAG,EAAK,EAClCpD,EAAMA,EAAK,KAAK,KAAKkB,EAAKoC,EAAG,EAAK,EAClC/C,EAAOA,EAAM,KAAK,KAAKW,EAAKqC,EAAG,EAAK,EACpChD,EAAOA,EAAM,KAAK,KAAKY,GAAKmC,EAAG,EAAK,EACpClE,EAAMA,EAAK,KAAK,KAAK+B,GAAKoC,EAAG,EAAK,EAClCvD,EAAMA,EAAK,KAAK,KAAKe,EAAK0C,EAAG,EAAK,EAClClD,EAAOA,EAAM,KAAK,KAAKQ,EAAK2C,EAAG,EAAK,EACpCnD,EAAOA,EAAM,KAAK,KAAKS,EAAKyC,EAAG,EAAK,EACpCrE,EAAMA,EAAK,KAAK,KAAK4B,EAAK0C,EAAG,EAAK,EAClC1D,EAAMA,EAAK,KAAK,KAAKY,EAAKgD,EAAG,EAAK,EAClCrD,EAAOA,EAAM,KAAK,KAAKK,EAAKiD,EAAG,EAAK,EACpCtD,EAAOA,EAAM,KAAK,KAAKM,EAAK+C,EAAG,EAAK,EACpCxE,EAAMA,EAAK,KAAK,KAAKyB,EAAKgD,EAAG,EAAK,EAClC7D,EAAMA,EAAK,KAAK,KAAKS,EAAKsD,EAAG,EAAK,EAClCxD,EAAOA,EAAM,KAAK,KAAKE,EAAKuD,EAAG,EAAK,EACpCzD,EAAOA,EAAM,KAAK,KAAKG,EAAKqD,EAAG,EAAK,EACpC3E,EAAMA,EAAK,KAAK,KAAKsB,EAAKsD,EAAG,EAAK,EAClC,IAAIY,IAAQ3H,EAAI+C,EAAM,KAAOO,EAAM,OAAW,IAAO,EACrDtD,GAAOmC,GAAMmB,IAAQ,IAAO,IAAMqE,KAAO,IAAO,EAChDA,IAAM,SAEN5E,EAAK,KAAK,KAAKoC,EAAKG,EAAG,EACvBhC,EAAM,KAAK,KAAK6B,EAAKI,EAAG,EACxBjC,EAAOA,EAAM,KAAK,KAAK8B,EAAKE,EAAG,EAAK,EACpCnD,EAAK,KAAK,KAAKiD,EAAKG,EAAG,EACvBxC,EAAMA,EAAK,KAAK,KAAKiC,GAAKS,EAAG,EAAK,EAClCnC,EAAOA,EAAM,KAAK,KAAK0B,GAAKU,EAAG,EAAK,EACpCpC,EAAOA,EAAM,KAAK,KAAK2B,GAAKQ,EAAG,EAAK,EACpCtD,EAAMA,EAAK,KAAK,KAAK8C,GAAKS,EAAG,EAAK,EAClC3C,EAAMA,EAAK,KAAK,KAAK8B,EAAKe,EAAG,EAAK,EAClCtC,EAAOA,EAAM,KAAK,KAAKuB,EAAKgB,EAAG,EAAK,EACpCvC,EAAOA,EAAM,KAAK,KAAKwB,GAAKc,EAAG,EAAK,EACpCzD,EAAMA,EAAK,KAAK,KAAK2C,GAAKe,EAAG,EAAK,EAClC9C,EAAMA,EAAK,KAAK,KAAK2B,GAAKqB,EAAG,EAAK,EAClCzC,EAAOA,EAAM,KAAK,KAAKoB,GAAKsB,EAAG,EAAK,EACpC1C,EAAOA,EAAM,KAAK,KAAKqB,EAAKoB,EAAG,EAAK,EACpC5D,EAAMA,EAAK,KAAK,KAAKwC,EAAKqB,EAAG,EAAK,EAClCjD,EAAMA,EAAK,KAAK,KAAKwB,GAAK2B,EAAG,EAAK,EAClC5C,EAAOA,EAAM,KAAK,KAAKiB,GAAK4B,EAAG,EAAK,EACpC7C,EAAOA,EAAM,KAAK,KAAKkB,GAAK0B,EAAG,EAAK,EACpC/D,EAAMA,EAAK,KAAK,KAAKqC,GAAK2B,EAAG,EAAK,EAClCpD,EAAMA,EAAK,KAAK,KAAKqB,GAAKiC,EAAG,EAAK,EAClC/C,EAAOA,EAAM,KAAK,KAAKc,GAAKkC,EAAG,EAAK,EACpChD,EAAOA,EAAM,KAAK,KAAKe,GAAKgC,EAAG,EAAK,EACpClE,EAAMA,EAAK,KAAK,KAAKkC,GAAKiC,EAAG,EAAK,EAClCvD,EAAMA,EAAK,KAAK,KAAKkB,EAAKuC,EAAG,EAAK,EAClClD,EAAOA,EAAM,KAAK,KAAKW,EAAKwC,EAAG,EAAK,EACpCnD,EAAOA,EAAM,KAAK,KAAKY,GAAKsC,EAAG,EAAK,EACpCrE,EAAMA,EAAK,KAAK,KAAK+B,GAAKuC,EAAG,EAAK,EAClC1D,EAAMA,EAAK,KAAK,KAAKe,EAAK6C,EAAG,EAAK,EAClCrD,EAAOA,EAAM,KAAK,KAAKQ,EAAK8C,EAAG,EAAK,EACpCtD,EAAOA,EAAM,KAAK,KAAKS,EAAK4C,EAAG,EAAK,EACpCxE,EAAMA,EAAK,KAAK,KAAK4B,EAAK6C,EAAG,EAAK,EAClC7D,EAAMA,EAAK,KAAK,KAAKY,EAAKmD,EAAG,EAAK,EAClCxD,EAAOA,EAAM,KAAK,KAAKK,EAAKoD,EAAG,EAAK,EACpCzD,EAAOA,EAAM,KAAK,KAAKM,EAAKkD,EAAG,EAAK,EACpC3E,EAAMA,EAAK,KAAK,KAAKyB,EAAKmD,EAAG,EAAK,EAClChE,EAAMA,EAAK,KAAK,KAAKS,EAAKyD,EAAG,EAAK,EAClC3D,EAAOA,EAAM,KAAK,KAAKE,EAAK0D,EAAG,EAAK,EACpC5D,EAAOA,EAAM,KAAK,KAAKG,EAAKwD,EAAG,EAAK,EACpC9E,EAAMA,EAAK,KAAK,KAAKsB,EAAKyD,EAAG,EAAK,EAClC,IAAIU,IAAQ5H,EAAI+C,EAAM,KAAOO,EAAM,OAAW,IAAO,EACrDtD,GAAOmC,GAAMmB,IAAQ,IAAO,IAAMsE,KAAO,IAAO,EAChDA,IAAM,SAEN7E,EAAK,KAAK,KAAKoC,EAAKM,EAAG,EACvBnC,EAAM,KAAK,KAAK6B,EAAKO,EAAG,EACxBpC,EAAOA,EAAM,KAAK,KAAK8B,EAAKK,EAAG,EAAK,EACpCtD,EAAK,KAAK,KAAKiD,EAAKM,EAAG,EACvB3C,EAAMA,EAAK,KAAK,KAAKiC,GAAKY,EAAG,EAAK,EAClCtC,EAAOA,EAAM,KAAK,KAAK0B,GAAKa,EAAG,EAAK,EACpCvC,EAAOA,EAAM,KAAK,KAAK2B,GAAKW,EAAG,EAAK,EACpCzD,EAAMA,EAAK,KAAK,KAAK8C,GAAKY,EAAG,EAAK,EAClC9C,EAAMA,EAAK,KAAK,KAAK8B,EAAKkB,EAAG,EAAK,EAClCzC,EAAOA,EAAM,KAAK,KAAKuB,EAAKmB,EAAG,EAAK,EACpC1C,EAAOA,EAAM,KAAK,KAAKwB,GAAKiB,EAAG,EAAK,EACpC5D,EAAMA,EAAK,KAAK,KAAK2C,GAAKkB,EAAG,EAAK,EAClCjD,EAAMA,EAAK,KAAK,KAAK2B,GAAKwB,EAAG,EAAK,EAClC5C,EAAOA,EAAM,KAAK,KAAKoB,GAAKyB,EAAG,EAAK,EACpC7C,EAAOA,EAAM,KAAK,KAAKqB,EAAKuB,EAAG,EAAK,EACpC/D,EAAMA,EAAK,KAAK,KAAKwC,EAAKwB,EAAG,EAAK,EAClCpD,EAAMA,EAAK,KAAK,KAAKwB,GAAK8B,EAAG,EAAK,EAClC/C,EAAOA,EAAM,KAAK,KAAKiB,GAAK+B,EAAG,EAAK,EACpChD,EAAOA,EAAM,KAAK,KAAKkB,GAAK6B,EAAG,EAAK,EACpClE,EAAMA,EAAK,KAAK,KAAKqC,GAAK8B,EAAG,EAAK,EAClCvD,EAAMA,EAAK,KAAK,KAAKqB,GAAKoC,EAAG,EAAK,EAClClD,EAAOA,EAAM,KAAK,KAAKc,GAAKqC,EAAG,EAAK,EACpCnD,EAAOA,EAAM,KAAK,KAAKe,GAAKmC,EAAG,EAAK,EACpCrE,EAAMA,EAAK,KAAK,KAAKkC,GAAKoC,EAAG,EAAK,EAClC1D,EAAMA,EAAK,KAAK,KAAKkB,EAAK0C,EAAG,EAAK,EAClCrD,EAAOA,EAAM,KAAK,KAAKW,EAAK2C,EAAG,EAAK,EACpCtD,EAAOA,EAAM,KAAK,KAAKY,GAAKyC,EAAG,EAAK,EACpCxE,EAAMA,EAAK,KAAK,KAAK+B,GAAK0C,EAAG,EAAK,EAClC7D,EAAMA,EAAK,KAAK,KAAKe,EAAKgD,EAAG,EAAK,EAClCxD,EAAOA,EAAM,KAAK,KAAKQ,EAAKiD,EAAG,EAAK,EACpCzD,EAAOA,EAAM,KAAK,KAAKS,EAAK+C,EAAG,EAAK,EACpC3E,EAAMA,EAAK,KAAK,KAAK4B,EAAKgD,EAAG,EAAK,EAClChE,EAAMA,EAAK,KAAK,KAAKY,EAAKsD,EAAG,EAAK,EAClC3D,EAAOA,EAAM,KAAK,KAAKK,EAAKuD,EAAG,EAAK,EACpC5D,EAAOA,EAAM,KAAK,KAAKM,EAAKqD,EAAG,EAAK,EACpC9E,EAAMA,EAAK,KAAK,KAAKyB,EAAKsD,EAAG,EAAK,EAClC,IAAIW,IAAS7H,EAAI+C,EAAM,KAAOO,EAAM,OAAW,IAAO,EACtDtD,GAAOmC,GAAMmB,IAAQ,IAAO,IAAMuE,KAAQ,IAAO,EACjDA,IAAO,SAEP9E,EAAK,KAAK,KAAKoC,EAAKS,EAAG,EACvBtC,EAAM,KAAK,KAAK6B,EAAKU,EAAG,EACxBvC,EAAOA,EAAM,KAAK,KAAK8B,EAAKQ,EAAG,EAAK,EACpCzD,EAAK,KAAK,KAAKiD,EAAKS,EAAG,EACvB9C,EAAMA,EAAK,KAAK,KAAKiC,GAAKe,EAAG,EAAK,EAClCzC,EAAOA,EAAM,KAAK,KAAK0B,GAAKgB,EAAG,EAAK,EACpC1C,EAAOA,EAAM,KAAK,KAAK2B,GAAKc,EAAG,EAAK,EACpC5D,EAAMA,EAAK,KAAK,KAAK8C,GAAKe,EAAG,EAAK,EAClCjD,EAAMA,EAAK,KAAK,KAAK8B,EAAKqB,EAAG,EAAK,EAClC5C,EAAOA,EAAM,KAAK,KAAKuB,EAAKsB,EAAG,EAAK,EACpC7C,EAAOA,EAAM,KAAK,KAAKwB,GAAKoB,EAAG,EAAK,EACpC/D,EAAMA,EAAK,KAAK,KAAK2C,GAAKqB,EAAG,EAAK,EAClCpD,EAAMA,EAAK,KAAK,KAAK2B,GAAK2B,EAAG,EAAK,EAClC/C,EAAOA,EAAM,KAAK,KAAKoB,GAAK4B,EAAG,EAAK,EACpChD,EAAOA,EAAM,KAAK,KAAKqB,EAAK0B,EAAG,EAAK,EACpClE,EAAMA,EAAK,KAAK,KAAKwC,EAAK2B,EAAG,EAAK,EAClCvD,EAAMA,EAAK,KAAK,KAAKwB,GAAKiC,EAAG,EAAK,EAClClD,EAAOA,EAAM,KAAK,KAAKiB,GAAKkC,EAAG,EAAK,EACpCnD,EAAOA,EAAM,KAAK,KAAKkB,GAAKgC,EAAG,EAAK,EACpCrE,EAAMA,EAAK,KAAK,KAAKqC,GAAKiC,EAAG,EAAK,EAClC1D,EAAMA,EAAK,KAAK,KAAKqB,GAAKuC,EAAG,EAAK,EAClCrD,EAAOA,EAAM,KAAK,KAAKc,GAAKwC,EAAG,EAAK,EACpCtD,EAAOA,EAAM,KAAK,KAAKe,GAAKsC,EAAG,EAAK,EACpCxE,EAAMA,EAAK,KAAK,KAAKkC,GAAKuC,EAAG,EAAK,EAClC7D,EAAMA,EAAK,KAAK,KAAKkB,EAAK6C,EAAG,EAAK,EAClCxD,EAAOA,EAAM,KAAK,KAAKW,EAAK8C,EAAG,EAAK,EACpCzD,EAAOA,EAAM,KAAK,KAAKY,GAAK4C,EAAG,EAAK,EACpC3E,EAAMA,EAAK,KAAK,KAAK+B,GAAK6C,EAAG,EAAK,EAClChE,EAAMA,EAAK,KAAK,KAAKe,EAAKmD,EAAG,EAAK,EAClC3D,EAAOA,EAAM,KAAK,KAAKQ,EAAKoD,EAAG,EAAK,EACpC5D,EAAOA,EAAM,KAAK,KAAKS,EAAKkD,EAAG,EAAK,EACpC9E,EAAMA,EAAK,KAAK,KAAK4B,EAAKmD,EAAG,EAAK,EAClC,IAAIY,IAAS9H,EAAI+C,EAAM,KAAOO,EAAM,OAAW,IAAO,EACtDtD,GAAOmC,GAAMmB,IAAQ,IAAO,IAAMwE,KAAQ,IAAO,EACjDA,IAAO,SAEP/E,EAAK,KAAK,KAAKoC,EAAKY,EAAG,EACvBzC,EAAM,KAAK,KAAK6B,EAAKa,EAAG,EACxB1C,EAAOA,EAAM,KAAK,KAAK8B,EAAKW,EAAG,EAAK,EACpC5D,EAAK,KAAK,KAAKiD,EAAKY,EAAG,EACvBjD,EAAMA,EAAK,KAAK,KAAKiC,GAAKkB,EAAG,EAAK,EAClC5C,EAAOA,EAAM,KAAK,KAAK0B,GAAKmB,EAAG,EAAK,EACpC7C,EAAOA,EAAM,KAAK,KAAK2B,GAAKiB,EAAG,EAAK,EACpC/D,EAAMA,EAAK,KAAK,KAAK8C,GAAKkB,EAAG,EAAK,EAClCpD,EAAMA,EAAK,KAAK,KAAK8B,EAAKwB,EAAG,EAAK,EAClC/C,EAAOA,EAAM,KAAK,KAAKuB,EAAKyB,EAAG,EAAK,EACpChD,EAAOA,EAAM,KAAK,KAAKwB,GAAKuB,EAAG,EAAK,EACpClE,EAAMA,EAAK,KAAK,KAAK2C,GAAKwB,EAAG,EAAK,EAClCvD,EAAMA,EAAK,KAAK,KAAK2B,GAAK8B,EAAG,EAAK,EAClClD,EAAOA,EAAM,KAAK,KAAKoB,GAAK+B,EAAG,EAAK,EACpCnD,EAAOA,EAAM,KAAK,KAAKqB,EAAK6B,EAAG,EAAK,EACpCrE,EAAMA,EAAK,KAAK,KAAKwC,EAAK8B,EAAG,EAAK,EAClC1D,EAAMA,EAAK,KAAK,KAAKwB,GAAKoC,EAAG,EAAK,EAClCrD,EAAOA,EAAM,KAAK,KAAKiB,GAAKqC,EAAG,EAAK,EACpCtD,EAAOA,EAAM,KAAK,KAAKkB,GAAKmC,EAAG,EAAK,EACpCxE,EAAMA,EAAK,KAAK,KAAKqC,GAAKoC,EAAG,EAAK,EAClC7D,EAAMA,EAAK,KAAK,KAAKqB,GAAK0C,EAAG,EAAK,EAClCxD,EAAOA,EAAM,KAAK,KAAKc,GAAK2C,EAAG,EAAK,EACpCzD,EAAOA,EAAM,KAAK,KAAKe,GAAKyC,EAAG,EAAK,EACpC3E,EAAMA,EAAK,KAAK,KAAKkC,GAAK0C,EAAG,EAAK,EAClChE,EAAMA,EAAK,KAAK,KAAKkB,EAAKgD,EAAG,EAAK,EAClC3D,EAAOA,EAAM,KAAK,KAAKW,EAAKiD,EAAG,EAAK,EACpC5D,EAAOA,EAAM,KAAK,KAAKY,GAAK+C,EAAG,EAAK,EACpC9E,EAAMA,EAAK,KAAK,KAAK+B,GAAKgD,EAAG,EAAK,EAClC,IAAIa,IAAS/H,EAAI+C,EAAM,KAAOO,EAAM,OAAW,IAAO,EACtDtD,GAAOmC,GAAMmB,IAAQ,IAAO,IAAMyE,KAAQ,IAAO,EACjDA,IAAO,SAEPhF,EAAK,KAAK,KAAKoC,EAAKe,EAAG,EACvB5C,EAAM,KAAK,KAAK6B,EAAKgB,EAAG,EACxB7C,EAAOA,EAAM,KAAK,KAAK8B,EAAKc,EAAG,EAAK,EACpC/D,EAAK,KAAK,KAAKiD,EAAKe,EAAG,EACvBpD,EAAMA,EAAK,KAAK,KAAKiC,GAAKqB,EAAG,EAAK,EAClC/C,EAAOA,EAAM,KAAK,KAAK0B,GAAKsB,EAAG,EAAK,EACpChD,EAAOA,EAAM,KAAK,KAAK2B,GAAKoB,EAAG,EAAK,EACpClE,EAAMA,EAAK,KAAK,KAAK8C,GAAKqB,EAAG,EAAK,EAClCvD,EAAMA,EAAK,KAAK,KAAK8B,EAAK2B,EAAG,EAAK,EAClClD,EAAOA,EAAM,KAAK,KAAKuB,EAAK4B,EAAG,EAAK,EACpCnD,EAAOA,EAAM,KAAK,KAAKwB,GAAK0B,EAAG,EAAK,EACpCrE,EAAMA,EAAK,KAAK,KAAK2C,GAAK2B,EAAG,EAAK,EAClC1D,EAAMA,EAAK,KAAK,KAAK2B,GAAKiC,EAAG,EAAK,EAClCrD,EAAOA,EAAM,KAAK,KAAKoB,GAAKkC,EAAG,EAAK,EACpCtD,EAAOA,EAAM,KAAK,KAAKqB,EAAKgC,EAAG,EAAK,EACpCxE,EAAMA,EAAK,KAAK,KAAKwC,EAAKiC,EAAG,EAAK,EAClC7D,EAAMA,EAAK,KAAK,KAAKwB,GAAKuC,EAAG,EAAK,EAClCxD,EAAOA,EAAM,KAAK,KAAKiB,GAAKwC,EAAG,EAAK,EACpCzD,EAAOA,EAAM,KAAK,KAAKkB,GAAKsC,EAAG,EAAK,EACpC3E,EAAMA,EAAK,KAAK,KAAKqC,GAAKuC,EAAG,EAAK,EAClChE,EAAMA,EAAK,KAAK,KAAKqB,GAAK6C,EAAG,EAAK,EAClC3D,EAAOA,EAAM,KAAK,KAAKc,GAAK8C,EAAG,EAAK,EACpC5D,EAAOA,EAAM,KAAK,KAAKe,GAAK4C,EAAG,EAAK,EACpC9E,EAAMA,EAAK,KAAK,KAAKkC,GAAK6C,EAAG,EAAK,EAClC,IAAIc,IAAShI,EAAI+C,EAAM,KAAOO,EAAM,OAAW,IAAO,EACtDtD,GAAOmC,GAAMmB,IAAQ,IAAO,IAAM0E,KAAQ,IAAO,EACjDA,IAAO,SAEPjF,EAAK,KAAK,KAAKoC,EAAKkB,EAAG,EACvB/C,EAAM,KAAK,KAAK6B,EAAKmB,EAAG,EACxBhD,EAAOA,EAAM,KAAK,KAAK8B,EAAKiB,EAAG,EAAK,EACpClE,EAAK,KAAK,KAAKiD,EAAKkB,EAAG,EACvBvD,EAAMA,EAAK,KAAK,KAAKiC,GAAKwB,EAAG,EAAK,EAClClD,EAAOA,EAAM,KAAK,KAAK0B,GAAKyB,EAAG,EAAK,EACpCnD,EAAOA,EAAM,KAAK,KAAK2B,GAAKuB,EAAG,EAAK,EACpCrE,EAAMA,EAAK,KAAK,KAAK8C,GAAKwB,EAAG,EAAK,EAClC1D,EAAMA,EAAK,KAAK,KAAK8B,EAAK8B,EAAG,EAAK,EAClCrD,EAAOA,EAAM,KAAK,KAAKuB,EAAK+B,EAAG,EAAK,EACpCtD,EAAOA,EAAM,KAAK,KAAKwB,GAAK6B,EAAG,EAAK,EACpCxE,EAAMA,EAAK,KAAK,KAAK2C,GAAK8B,EAAG,EAAK,EAClC7D,EAAMA,EAAK,KAAK,KAAK2B,GAAKoC,EAAG,EAAK,EAClCxD,EAAOA,EAAM,KAAK,KAAKoB,GAAKqC,EAAG,EAAK,EACpCzD,EAAOA,EAAM,KAAK,KAAKqB,EAAKmC,EAAG,EAAK,EACpC3E,EAAMA,EAAK,KAAK,KAAKwC,EAAKoC,EAAG,EAAK,EAClChE,EAAMA,EAAK,KAAK,KAAKwB,GAAK0C,EAAG,EAAK,EAClC3D,EAAOA,EAAM,KAAK,KAAKiB,GAAK2C,EAAG,EAAK,EACpC5D,EAAOA,EAAM,KAAK,KAAKkB,GAAKyC,EAAG,EAAK,EACpC9E,EAAMA,EAAK,KAAK,KAAKqC,GAAK0C,EAAG,EAAK,EAClC,IAAIe,IAASjI,EAAI+C,EAAM,KAAOO,EAAM,OAAW,IAAO,EACtDtD,GAAOmC,GAAMmB,IAAQ,IAAO,IAAM2E,KAAQ,IAAO,EACjDA,IAAO,SAEPlF,EAAK,KAAK,KAAKoC,EAAKqB,EAAG,EACvBlD,EAAM,KAAK,KAAK6B,EAAKsB,EAAG,EACxBnD,EAAOA,EAAM,KAAK,KAAK8B,EAAKoB,EAAG,EAAK,EACpCrE,EAAK,KAAK,KAAKiD,EAAKqB,EAAG,EACvB1D,EAAMA,EAAK,KAAK,KAAKiC,GAAK2B,EAAG,EAAK,EAClCrD,EAAOA,EAAM,KAAK,KAAK0B,GAAK4B,EAAG,EAAK,EACpCtD,EAAOA,EAAM,KAAK,KAAK2B,GAAK0B,EAAG,EAAK,EACpCxE,EAAMA,EAAK,KAAK,KAAK8C,GAAK2B,EAAG,EAAK,EAClC7D,EAAMA,EAAK,KAAK,KAAK8B,EAAKiC,EAAG,EAAK,EAClCxD,EAAOA,EAAM,KAAK,KAAKuB,EAAKkC,EAAG,EAAK,EACpCzD,EAAOA,EAAM,KAAK,KAAKwB,GAAKgC,EAAG,EAAK,EACpC3E,EAAMA,EAAK,KAAK,KAAK2C,GAAKiC,EAAG,EAAK,EAClChE,EAAMA,EAAK,KAAK,KAAK2B,GAAKuC,EAAG,EAAK,EAClC3D,EAAOA,EAAM,KAAK,KAAKoB,GAAKwC,EAAG,EAAK,EACpC5D,EAAOA,EAAM,KAAK,KAAKqB,EAAKsC,EAAG,EAAK,EACpC9E,EAAMA,EAAK,KAAK,KAAKwC,EAAKuC,EAAG,EAAK,EAClC,IAAIgB,IAASlI,EAAI+C,EAAM,KAAOO,EAAM,OAAW,IAAO,EACtDtD,GAAOmC,GAAMmB,IAAQ,IAAO,IAAM4E,KAAQ,IAAO,EACjDA,IAAO,SAEPnF,EAAK,KAAK,KAAKoC,EAAKwB,EAAG,EACvBrD,EAAM,KAAK,KAAK6B,EAAKyB,EAAG,EACxBtD,EAAOA,EAAM,KAAK,KAAK8B,EAAKuB,EAAG,EAAK,EACpCxE,EAAK,KAAK,KAAKiD,EAAKwB,EAAG,EACvB7D,EAAMA,EAAK,KAAK,KAAKiC,GAAK8B,EAAG,EAAK,EAClCxD,EAAOA,EAAM,KAAK,KAAK0B,GAAK+B,EAAG,EAAK,EACpCzD,EAAOA,EAAM,KAAK,KAAK2B,GAAK6B,EAAG,EAAK,EACpC3E,EAAMA,EAAK,KAAK,KAAK8C,GAAK8B,EAAG,EAAK,EAClChE,EAAMA,EAAK,KAAK,KAAK8B,EAAKoC,EAAG,EAAK,EAClC3D,EAAOA,EAAM,KAAK,KAAKuB,EAAKqC,EAAG,EAAK,EACpC5D,EAAOA,EAAM,KAAK,KAAKwB,GAAKmC,EAAG,EAAK,EACpC9E,EAAMA,EAAK,KAAK,KAAK2C,GAAKoC,EAAG,EAAK,EAClC,IAAIiB,IAASnI,EAAI+C,EAAM,KAAOO,EAAM,OAAW,IAAO,EACtDtD,GAAOmC,GAAMmB,IAAQ,IAAO,IAAM6E,KAAQ,IAAO,EACjDA,IAAO,SAEPpF,EAAK,KAAK,KAAKoC,EAAK2B,EAAG,EACvBxD,EAAM,KAAK,KAAK6B,EAAK4B,EAAG,EACxBzD,EAAOA,EAAM,KAAK,KAAK8B,EAAK0B,EAAG,EAAK,EACpC3E,EAAK,KAAK,KAAKiD,EAAK2B,EAAG,EACvBhE,EAAMA,EAAK,KAAK,KAAKiC,GAAKiC,EAAG,EAAK,EAClC3D,EAAOA,EAAM,KAAK,KAAK0B,GAAKkC,EAAG,EAAK,EACpC5D,EAAOA,EAAM,KAAK,KAAK2B,GAAKgC,EAAG,EAAK,EACpC9E,EAAMA,EAAK,KAAK,KAAK8C,GAAKiC,EAAG,EAAK,EAClC,IAAIkB,IAASpI,EAAI+C,EAAM,KAAOO,EAAM,OAAW,IAAO,EACtDtD,GAAOmC,GAAMmB,IAAQ,IAAO,IAAM8E,KAAQ,IAAO,EACjDA,IAAO,SAEPrF,EAAK,KAAK,KAAKoC,EAAK8B,EAAG,EACvB3D,EAAM,KAAK,KAAK6B,EAAK+B,EAAG,EACxB5D,EAAOA,EAAM,KAAK,KAAK8B,EAAK6B,EAAG,EAAK,EACpC9E,EAAK,KAAK,KAAKiD,EAAK8B,EAAG,EACvB,IAAImB,IAASrI,EAAI+C,EAAM,KAAOO,EAAM,OAAW,IAAO,EACtD,OAAAtD,GAAOmC,GAAMmB,IAAQ,IAAO,IAAM+E,KAAQ,IAAO,EACjDA,IAAO,SACPhF,EAAE,GAAK8D,GACP9D,EAAE,GAAK+D,GACP/D,EAAE,GAAKgE,GACPhE,EAAE,GAAKiE,GACPjE,EAAE,GAAKkE,GACPlE,EAAE,GAAKmE,GACPnE,EAAE,GAAKoE,GACPpE,EAAE,GAAKqE,GACPrE,EAAE,GAAKsE,GACPtE,EAAE,GAAKuE,GACPvE,EAAE,IAAMwE,GACRxE,EAAE,IAAMyE,GACRzE,EAAE,IAAM0E,GACR1E,EAAE,IAAM2E,GACR3E,EAAE,IAAM4E,GACR5E,EAAE,IAAM6E,GACR7E,EAAE,IAAM8E,GACR9E,EAAE,IAAM+E,GACR/E,EAAE,IAAMgF,GACJrI,IAAM,IACRqD,EAAE,IAAMrD,EACRsB,EAAI,UAECA,CACT,EAGK,KAAK,OACR8B,EAAcP,GAGhB,SAASyF,EAAUxF,EAAMzD,EAAKiC,EAAK,CACjCA,EAAI,SAAWjC,EAAI,SAAWyD,EAAK,SACnCxB,EAAI,OAASwB,EAAK,OAASzD,EAAI,OAI/B,QAFIkC,EAAQ,EACRgH,EAAU,EACLvF,EAAI,EAAGA,EAAI1B,EAAI,OAAS,EAAG0B,IAAK,CAGvC,IAAIC,EAASsF,EACbA,EAAU,EAGV,QAFIrF,EAAQ3B,EAAQ,SAChB4B,EAAO,KAAK,IAAIH,EAAG3D,EAAI,OAAS,CAAC,EAC5BK,EAAI,KAAK,IAAI,EAAGsD,EAAIF,EAAK,OAAS,CAAC,EAAGpD,GAAKyD,EAAMzD,IAAK,CAC7D,IAAID,EAAIuD,EAAItD,EACR+C,EAAIK,EAAK,MAAMrD,GAAK,EACpB8C,EAAIlD,EAAI,MAAMK,GAAK,EACnBS,EAAIsC,EAAIF,EAERQ,EAAK5C,EAAI,SACb8C,EAAUA,GAAW9C,EAAI,SAAa,GAAM,EAC5C4C,EAAMA,EAAKG,EAAS,EACpBA,EAAQH,EAAK,SACbE,EAAUA,GAAUF,IAAO,IAAO,EAElCwF,GAAWtF,IAAW,GACtBA,GAAU,QACZ,CACA3B,EAAI,MAAM0B,GAAKE,EACf3B,EAAQ0B,EACRA,EAASsF,CACX,CACA,OAAIhH,IAAU,EACZD,EAAI,MAAM0B,GAAKzB,EAEfD,EAAI,SAGCA,EAAI,MAAM,CACnB,CAEA,SAASkH,EAAY1F,EAAMzD,EAAKiC,EAAK,CACnC,IAAImH,EAAO,IAAIC,EACf,OAAOD,EAAK,KAAK3F,EAAMzD,EAAKiC,CAAG,CACjC,CAEAtC,EAAG,UAAU,MAAQ,SAAgBK,EAAKiC,EAAK,CAC7C,IAAIU,EACAvB,EAAM,KAAK,OAASpB,EAAI,OAC5B,OAAI,KAAK,SAAW,IAAMA,EAAI,SAAW,GACvC2C,EAAMoB,EAAY,KAAM/D,EAAKiC,CAAG,EACvBb,EAAM,GACfuB,EAAMa,EAAW,KAAMxD,EAAKiC,CAAG,EACtBb,EAAM,KACfuB,EAAMsG,EAAS,KAAMjJ,EAAKiC,CAAG,EAE7BU,EAAMwG,EAAW,KAAMnJ,EAAKiC,CAAG,EAG1BU,CACT,EAKA,SAAS0G,EAAMC,EAAGC,EAAG,CACnB,KAAK,EAAID,EACT,KAAK,EAAIC,CACX,CAEAF,EAAK,UAAU,QAAU,SAAkBG,EAAG,CAG5C,QAFI3G,EAAI,IAAI,MAAM2G,CAAC,EACfC,EAAI9J,EAAG,UAAU,WAAW6J,CAAC,EAAI,EAC5BpJ,EAAI,EAAGA,EAAIoJ,EAAGpJ,IACrByC,EAAEzC,GAAK,KAAK,OAAOA,EAAGqJ,EAAGD,CAAC,EAG5B,OAAO3G,CACT,EAGAwG,EAAK,UAAU,OAAS,SAAiBC,EAAGG,EAAGD,EAAG,CAChD,GAAIF,IAAM,GAAKA,IAAME,EAAI,EAAG,OAAOF,EAGnC,QADII,EAAK,EACAtJ,EAAI,EAAGA,EAAIqJ,EAAGrJ,IACrBsJ,IAAOJ,EAAI,IAAOG,EAAIrJ,EAAI,EAC1BkJ,IAAM,EAGR,OAAOI,CACT,EAIAL,EAAK,UAAU,QAAU,SAAkBM,EAAKC,EAAKC,EAAKC,EAAMC,EAAMP,EAAG,CACvE,QAASpJ,EAAI,EAAGA,EAAIoJ,EAAGpJ,IACrB0J,EAAK1J,GAAKwJ,EAAID,EAAIvJ,IAClB2J,EAAK3J,GAAKyJ,EAAIF,EAAIvJ,GAEtB,EAEAiJ,EAAK,UAAU,UAAY,SAAoBO,EAAKC,EAAKC,EAAMC,EAAMP,EAAGG,EAAK,CAC3E,KAAK,QAAQA,EAAKC,EAAKC,EAAKC,EAAMC,EAAMP,CAAC,EAEzC,QAASQ,EAAI,EAAGA,EAAIR,EAAGQ,IAAM,EAM3B,QALIP,EAAIO,GAAK,EAETC,EAAQ,KAAK,IAAI,EAAI,KAAK,GAAKR,CAAC,EAChCS,EAAQ,KAAK,IAAI,EAAI,KAAK,GAAKT,CAAC,EAE3BU,EAAI,EAAGA,EAAIX,EAAGW,GAAKV,EAI1B,QAHIW,EAASH,EACTI,EAASH,EAEJ7J,EAAI,EAAGA,EAAI2J,EAAG3J,IAAK,CAC1B,IAAIiK,EAAKR,EAAKK,EAAI9J,GACdkK,EAAKR,EAAKI,EAAI9J,GAEdmK,GAAKV,EAAKK,EAAI9J,EAAI2J,GAClBS,EAAKV,EAAKI,EAAI9J,EAAI2J,GAElBU,EAAKN,EAASI,GAAKH,EAASI,EAEhCA,EAAKL,EAASK,EAAKJ,EAASG,GAC5BA,GAAKE,EAELZ,EAAKK,EAAI9J,GAAKiK,EAAKE,GACnBT,EAAKI,EAAI9J,GAAKkK,EAAKE,EAEnBX,EAAKK,EAAI9J,EAAI2J,GAAKM,EAAKE,GACvBT,EAAKI,EAAI9J,EAAI2J,GAAKO,EAAKE,EAGnBpK,IAAMoJ,IACRiB,EAAKT,EAAQG,EAASF,EAAQG,EAE9BA,EAASJ,EAAQI,EAASH,EAAQE,EAClCA,EAASM,EAEb,CAGN,EAEArB,EAAK,UAAU,YAAc,SAAsBsB,EAAGC,EAAG,CACvD,IAAIpB,EAAI,KAAK,IAAIoB,EAAGD,CAAC,EAAI,EACrBE,EAAMrB,EAAI,EACVpJ,EAAI,EACR,IAAKoJ,EAAIA,EAAI,EAAI,EAAGA,EAAGA,EAAIA,IAAM,EAC/BpJ,IAGF,MAAO,IAAKA,EAAI,EAAIyK,CACtB,EAEAxB,EAAK,UAAU,UAAY,SAAoBO,EAAKC,EAAKL,EAAG,CAC1D,GAAI,EAAAA,GAAK,GAET,QAASpJ,EAAI,EAAGA,EAAIoJ,EAAI,EAAGpJ,IAAK,CAC9B,IAAIyC,EAAI+G,EAAIxJ,GAEZwJ,EAAIxJ,GAAKwJ,EAAIJ,EAAIpJ,EAAI,GACrBwJ,EAAIJ,EAAIpJ,EAAI,GAAKyC,EAEjBA,EAAIgH,EAAIzJ,GAERyJ,EAAIzJ,GAAK,CAACyJ,EAAIL,EAAIpJ,EAAI,GACtByJ,EAAIL,EAAIpJ,EAAI,GAAK,CAACyC,CACpB,CACF,EAEAwG,EAAK,UAAU,aAAe,SAAuByB,EAAItB,EAAG,CAE1D,QADItH,EAAQ,EACH9B,EAAI,EAAGA,EAAIoJ,EAAI,EAAGpJ,IAAK,CAC9B,IAAIE,EAAI,KAAK,MAAMwK,EAAG,EAAI1K,EAAI,GAAKoJ,CAAC,EAAI,KACtC,KAAK,MAAMsB,EAAG,EAAI1K,GAAKoJ,CAAC,EACxBtH,EAEF4I,EAAG1K,GAAKE,EAAI,SAERA,EAAI,SACN4B,EAAQ,EAERA,EAAQ5B,EAAI,SAAY,CAE5B,CAEA,OAAOwK,CACT,EAEAzB,EAAK,UAAU,WAAa,SAAqByB,EAAI1J,EAAKwI,EAAKJ,EAAG,CAEhE,QADItH,EAAQ,EACH9B,EAAI,EAAGA,EAAIgB,EAAKhB,IACvB8B,EAAQA,GAAS4I,EAAG1K,GAAK,GAEzBwJ,EAAI,EAAIxJ,GAAK8B,EAAQ,KAAQA,EAAQA,IAAU,GAC/C0H,EAAI,EAAIxJ,EAAI,GAAK8B,EAAQ,KAAQA,EAAQA,IAAU,GAIrD,IAAK9B,EAAI,EAAIgB,EAAKhB,EAAIoJ,EAAG,EAAEpJ,EACzBwJ,EAAIxJ,GAAK,EAGXhB,EAAO8C,IAAU,CAAC,EAClB9C,GAAQ8C,EAAQ,SAAa,CAAC,CAChC,EAEAmH,EAAK,UAAU,KAAO,SAAeG,EAAG,CAEtC,QADIuB,EAAK,IAAI,MAAMvB,CAAC,EACXpJ,EAAI,EAAGA,EAAIoJ,EAAGpJ,IACrB2K,EAAG3K,GAAK,EAGV,OAAO2K,CACT,EAEA1B,EAAK,UAAU,KAAO,SAAeC,EAAGC,EAAGtH,EAAK,CAC9C,IAAIuH,EAAI,EAAI,KAAK,YAAYF,EAAE,OAAQC,EAAE,MAAM,EAE3CI,EAAM,KAAK,QAAQH,CAAC,EAEpB,EAAI,KAAK,KAAKA,CAAC,EAEfI,EAAM,IAAI,MAAMJ,CAAC,EACjBwB,EAAO,IAAI,MAAMxB,CAAC,EAClByB,EAAO,IAAI,MAAMzB,CAAC,EAElB0B,EAAO,IAAI,MAAM1B,CAAC,EAClB2B,EAAQ,IAAI,MAAM3B,CAAC,EACnB4B,EAAQ,IAAI,MAAM5B,CAAC,EAEnB6B,EAAOpJ,EAAI,MACfoJ,EAAK,OAAS7B,EAEd,KAAK,WAAWF,EAAE,MAAOA,EAAE,OAAQM,EAAKJ,CAAC,EACzC,KAAK,WAAWD,EAAE,MAAOA,EAAE,OAAQ2B,EAAM1B,CAAC,EAE1C,KAAK,UAAUI,EAAK,EAAGoB,EAAMC,EAAMzB,EAAGG,CAAG,EACzC,KAAK,UAAUuB,EAAM,EAAGC,EAAOC,EAAO5B,EAAGG,CAAG,EAE5C,QAASvJ,EAAI,EAAGA,EAAIoJ,EAAGpJ,IAAK,CAC1B,IAAIsK,EAAKM,EAAK5K,GAAK+K,EAAM/K,GAAK6K,EAAK7K,GAAKgL,EAAMhL,GAC9C6K,EAAK7K,GAAK4K,EAAK5K,GAAKgL,EAAMhL,GAAK6K,EAAK7K,GAAK+K,EAAM/K,GAC/C4K,EAAK5K,GAAKsK,CACZ,CAEA,YAAK,UAAUM,EAAMC,EAAMzB,CAAC,EAC5B,KAAK,UAAUwB,EAAMC,EAAMI,EAAM,EAAG7B,EAAGG,CAAG,EAC1C,KAAK,UAAU0B,EAAM,EAAG7B,CAAC,EACzB,KAAK,aAAa6B,EAAM7B,CAAC,EAEzBvH,EAAI,SAAWqH,EAAE,SAAWC,EAAE,SAC9BtH,EAAI,OAASqH,EAAE,OAASC,EAAE,OACnBtH,EAAI,MAAM,CACnB,EAGAtC,EAAG,UAAU,IAAM,SAAcK,EAAK,CACpC,IAAIiC,EAAM,IAAItC,EAAG,IAAI,EACrB,OAAAsC,EAAI,MAAQ,IAAI,MAAM,KAAK,OAASjC,EAAI,MAAM,EACvC,KAAK,MAAMA,EAAKiC,CAAG,CAC5B,EAGAtC,EAAG,UAAU,KAAO,SAAeK,EAAK,CACtC,IAAIiC,EAAM,IAAItC,EAAG,IAAI,EACrB,OAAAsC,EAAI,MAAQ,IAAI,MAAM,KAAK,OAASjC,EAAI,MAAM,EACvCmJ,EAAW,KAAMnJ,EAAKiC,CAAG,CAClC,EAGAtC,EAAG,UAAU,KAAO,SAAeK,EAAK,CACtC,OAAO,KAAK,MAAM,EAAE,MAAMA,EAAK,IAAI,CACrC,EAEAL,EAAG,UAAU,MAAQ,SAAgBK,EAAK,CACxCZ,EAAO,OAAOY,GAAQ,QAAQ,EAC9BZ,EAAOY,EAAM,QAAS,EAItB,QADIkC,EAAQ,EACH9B,EAAI,EAAGA,EAAI,KAAK,OAAQA,IAAK,CACpC,IAAIE,GAAK,KAAK,MAAMF,GAAK,GAAKJ,EAC1B0D,GAAMpD,EAAI,WAAc4B,EAAQ,UACpCA,IAAU,GACVA,GAAU5B,EAAI,SAAa,EAE3B4B,GAASwB,IAAO,GAChB,KAAK,MAAMtD,GAAKsD,EAAK,QACvB,CAEA,OAAIxB,IAAU,IACZ,KAAK,MAAM9B,GAAK8B,EAChB,KAAK,UAGA,IACT,EAEAvC,EAAG,UAAU,KAAO,SAAeK,EAAK,CACtC,OAAO,KAAK,MAAM,EAAE,MAAMA,CAAG,CAC/B,EAGAL,EAAG,UAAU,IAAM,UAAgB,CACjC,OAAO,KAAK,IAAI,IAAI,CACtB,EAGAA,EAAG,UAAU,KAAO,UAAiB,CACnC,OAAO,KAAK,KAAK,KAAK,MAAM,CAAC,CAC/B,EAGAA,EAAG,UAAU,IAAM,SAAcK,EAAK,CACpC,IAAIM,EAAIyC,EAAW/C,CAAG,EACtB,GAAIM,EAAE,SAAW,EAAG,OAAO,IAAIX,EAAG,CAAC,EAInC,QADIgD,EAAM,KACDvC,EAAI,EAAGA,EAAIE,EAAE,QAChBA,EAAEF,KAAO,EADeA,IAAKuC,EAAMA,EAAI,IAAI,EAC/C,CAGF,GAAI,EAAEvC,EAAIE,EAAE,OACV,QAASsC,EAAID,EAAI,IAAI,EAAGvC,EAAIE,EAAE,OAAQF,IAAKwC,EAAIA,EAAE,IAAI,EAC/CtC,EAAEF,KAAO,IAEbuC,EAAMA,EAAI,IAAIC,CAAC,GAInB,OAAOD,CACT,EAGAhD,EAAG,UAAU,OAAS,SAAiB2L,EAAM,CAC3ClM,EAAO,OAAOkM,GAAS,UAAYA,GAAQ,CAAC,EAC5C,IAAIxK,EAAIwK,EAAO,GACXtB,GAAKsB,EAAOxK,GAAK,GACjByK,EAAa,WAAe,GAAKzK,GAAQ,GAAKA,EAC9CV,EAEJ,GAAIU,IAAM,EAAG,CACX,IAAIoB,EAAQ,EAEZ,IAAK9B,EAAI,EAAGA,EAAI,KAAK,OAAQA,IAAK,CAChC,IAAIoL,EAAW,KAAK,MAAMpL,GAAKmL,EAC3B5K,GAAM,KAAK,MAAMP,GAAK,GAAKoL,GAAa1K,EAC5C,KAAK,MAAMV,GAAKO,EAAIuB,EACpBA,EAAQsJ,IAAc,GAAK1K,CAC7B,CAEIoB,IACF,KAAK,MAAM9B,GAAK8B,EAChB,KAAK,SAET,CAEA,GAAI8H,IAAM,EAAG,CACX,IAAK5J,EAAI,KAAK,OAAS,EAAGA,GAAK,EAAGA,IAChC,KAAK,MAAMA,EAAI4J,GAAK,KAAK,MAAM5J,GAGjC,IAAKA,EAAI,EAAGA,EAAI4J,EAAG5J,IACjB,KAAK,MAAMA,GAAK,EAGlB,KAAK,QAAU4J,CACjB,CAEA,OAAO,KAAK,MAAM,CACpB,EAEArK,EAAG,UAAU,MAAQ,SAAgB2L,EAAM,CAEzC,OAAAlM,EAAO,KAAK,WAAa,CAAC,EACnB,KAAK,OAAOkM,CAAI,CACzB,EAKA3L,EAAG,UAAU,OAAS,SAAiB2L,EAAMG,EAAMC,EAAU,CAC3DtM,EAAO,OAAOkM,GAAS,UAAYA,GAAQ,CAAC,EAC5C,IAAIK,EACAF,EACFE,GAAKF,EAAQA,EAAO,IAAO,GAE3BE,EAAI,EAGN,IAAI7K,EAAIwK,EAAO,GACXtB,EAAI,KAAK,KAAKsB,EAAOxK,GAAK,GAAI,KAAK,MAAM,EACzC8K,EAAO,SAAc,WAAc9K,GAAMA,EACzC+K,EAAcH,EAMlB,GAJAC,GAAK3B,EACL2B,EAAI,KAAK,IAAI,EAAGA,CAAC,EAGbE,EAAa,CACf,QAASzL,EAAI,EAAGA,EAAI4J,EAAG5J,IACrByL,EAAY,MAAMzL,GAAK,KAAK,MAAMA,GAEpCyL,EAAY,OAAS7B,CACvB,CAEA,GAAIA,IAAM,EAEH,GAAI,KAAK,OAASA,EAEvB,IADA,KAAK,QAAUA,EACV5J,EAAI,EAAGA,EAAI,KAAK,OAAQA,IAC3B,KAAK,MAAMA,GAAK,KAAK,MAAMA,EAAI4J,QAGjC,KAAK,MAAM,GAAK,EAChB,KAAK,OAAS,EAGhB,IAAI9H,EAAQ,EACZ,IAAK9B,EAAI,KAAK,OAAS,EAAGA,GAAK,IAAM8B,IAAU,GAAK9B,GAAKuL,GAAIvL,IAAK,CAChE,IAAIqB,EAAO,KAAK,MAAMrB,GAAK,EAC3B,KAAK,MAAMA,GAAM8B,GAAU,GAAKpB,EAAOW,IAASX,EAChDoB,EAAQT,EAAOmK,CACjB,CAGA,OAAIC,GAAe3J,IAAU,IAC3B2J,EAAY,MAAMA,EAAY,UAAY3J,GAGxC,KAAK,SAAW,IAClB,KAAK,MAAM,GAAK,EAChB,KAAK,OAAS,GAGT,KAAK,MAAM,CACpB,EAEAvC,EAAG,UAAU,MAAQ,SAAgB2L,EAAMG,EAAMC,EAAU,CAEzD,OAAAtM,EAAO,KAAK,WAAa,CAAC,EACnB,KAAK,OAAOkM,EAAMG,EAAMC,CAAQ,CACzC,EAGA/L,EAAG,UAAU,KAAO,SAAe2L,EAAM,CACvC,OAAO,KAAK,MAAM,EAAE,MAAMA,CAAI,CAChC,EAEA3L,EAAG,UAAU,MAAQ,SAAgB2L,EAAM,CACzC,OAAO,KAAK,MAAM,EAAE,OAAOA,CAAI,CACjC,EAGA3L,EAAG,UAAU,KAAO,SAAe2L,EAAM,CACvC,OAAO,KAAK,MAAM,EAAE,MAAMA,CAAI,CAChC,EAEA3L,EAAG,UAAU,MAAQ,SAAgB2L,EAAM,CACzC,OAAO,KAAK,MAAM,EAAE,OAAOA,CAAI,CACjC,EAGA3L,EAAG,UAAU,MAAQ,SAAgBqD,EAAK,CACxC5D,EAAO,OAAO4D,GAAQ,UAAYA,GAAO,CAAC,EAC1C,IAAIlC,EAAIkC,EAAM,GACVgH,GAAKhH,EAAMlC,GAAK,GAChB8B,EAAI,GAAK9B,EAGb,GAAI,KAAK,QAAUkJ,EAAG,MAAO,GAG7B,IAAI1J,EAAI,KAAK,MAAM0J,GAEnB,MAAO,CAAC,EAAE1J,EAAIsC,EAChB,EAGAjD,EAAG,UAAU,OAAS,SAAiB2L,EAAM,CAC3ClM,EAAO,OAAOkM,GAAS,UAAYA,GAAQ,CAAC,EAC5C,IAAIxK,EAAIwK,EAAO,GACXtB,GAAKsB,EAAOxK,GAAK,GAIrB,GAFA1B,EAAO,KAAK,WAAa,EAAG,yCAAyC,EAEjE,KAAK,QAAU4K,EACjB,OAAO,KAQT,GALIlJ,IAAM,GACRkJ,IAEF,KAAK,OAAS,KAAK,IAAIA,EAAG,KAAK,MAAM,EAEjClJ,IAAM,EAAG,CACX,IAAI8K,EAAO,SAAc,WAAc9K,GAAMA,EAC7C,KAAK,MAAM,KAAK,OAAS,IAAM8K,CACjC,CAEA,OAAO,KAAK,MAAM,CACpB,EAGAjM,EAAG,UAAU,MAAQ,SAAgB2L,EAAM,CACzC,OAAO,KAAK,MAAM,EAAE,OAAOA,CAAI,CACjC,EAGA3L,EAAG,UAAU,MAAQ,SAAgBK,EAAK,CAGxC,OAFAZ,EAAO,OAAOY,GAAQ,QAAQ,EAC9BZ,EAAOY,EAAM,QAAS,EAClBA,EAAM,EAAU,KAAK,MAAM,CAACA,CAAG,EAG/B,KAAK,WAAa,EAChB,KAAK,SAAW,IAAM,KAAK,MAAM,GAAK,GAAKA,GAC7C,KAAK,MAAM,GAAKA,GAAO,KAAK,MAAM,GAAK,GACvC,KAAK,SAAW,EACT,OAGT,KAAK,SAAW,EAChB,KAAK,MAAMA,CAAG,EACd,KAAK,SAAW,EACT,MAIF,KAAK,OAAOA,CAAG,CACxB,EAEAL,EAAG,UAAU,OAAS,SAAiBK,EAAK,CAC1C,KAAK,MAAM,IAAMA,EAGjB,QAASI,EAAI,EAAGA,EAAI,KAAK,QAAU,KAAK,MAAMA,IAAM,SAAWA,IAC7D,KAAK,MAAMA,IAAM,SACbA,IAAM,KAAK,OAAS,EACtB,KAAK,MAAMA,EAAI,GAAK,EAEpB,KAAK,MAAMA,EAAI,KAGnB,YAAK,OAAS,KAAK,IAAI,KAAK,OAAQA,EAAI,CAAC,EAElC,IACT,EAGAT,EAAG,UAAU,MAAQ,SAAgBK,EAAK,CAGxC,GAFAZ,EAAO,OAAOY,GAAQ,QAAQ,EAC9BZ,EAAOY,EAAM,QAAS,EAClBA,EAAM,EAAG,OAAO,KAAK,MAAM,CAACA,CAAG,EAEnC,GAAI,KAAK,WAAa,EACpB,YAAK,SAAW,EAChB,KAAK,MAAMA,CAAG,EACd,KAAK,SAAW,EACT,KAKT,GAFA,KAAK,MAAM,IAAMA,EAEb,KAAK,SAAW,GAAK,KAAK,MAAM,GAAK,EACvC,KAAK,MAAM,GAAK,CAAC,KAAK,MAAM,GAC5B,KAAK,SAAW,MAGhB,SAASI,EAAI,EAAGA,EAAI,KAAK,QAAU,KAAK,MAAMA,GAAK,EAAGA,IACpD,KAAK,MAAMA,IAAM,SACjB,KAAK,MAAMA,EAAI,IAAM,EAIzB,OAAO,KAAK,MAAM,CACpB,EAEAT,EAAG,UAAU,KAAO,SAAeK,EAAK,CACtC,OAAO,KAAK,MAAM,EAAE,MAAMA,CAAG,CAC/B,EAEAL,EAAG,UAAU,KAAO,SAAeK,EAAK,CACtC,OAAO,KAAK,MAAM,EAAE,MAAMA,CAAG,CAC/B,EAEAL,EAAG,UAAU,KAAO,UAAiB,CACnC,YAAK,SAAW,EAET,IACT,EAEAA,EAAG,UAAU,IAAM,UAAgB,CACjC,OAAO,KAAK,MAAM,EAAE,KAAK,CAC3B,EAEAA,EAAG,UAAU,aAAe,SAAuBK,EAAKmB,EAAK2K,EAAO,CAClE,IAAI1K,EAAMpB,EAAI,OAAS8L,EACnB1L,EAEJ,KAAK,QAAQgB,CAAG,EAEhB,IAAId,EACA4B,EAAQ,EACZ,IAAK9B,EAAI,EAAGA,EAAIJ,EAAI,OAAQI,IAAK,CAC/BE,GAAK,KAAK,MAAMF,EAAI0L,GAAS,GAAK5J,EAClC,IAAIhC,GAASF,EAAI,MAAMI,GAAK,GAAKe,EACjCb,GAAKJ,EAAQ,SACbgC,GAAS5B,GAAK,KAAQJ,EAAQ,SAAa,GAC3C,KAAK,MAAME,EAAI0L,GAASxL,EAAI,QAC9B,CACA,KAAOF,EAAI,KAAK,OAAS0L,EAAO1L,IAC9BE,GAAK,KAAK,MAAMF,EAAI0L,GAAS,GAAK5J,EAClCA,EAAQ5B,GAAK,GACb,KAAK,MAAMF,EAAI0L,GAASxL,EAAI,SAG9B,GAAI4B,IAAU,EAAG,OAAO,KAAK,MAAM,EAKnC,IAFA9C,EAAO8C,IAAU,EAAE,EACnBA,EAAQ,EACH9B,EAAI,EAAGA,EAAI,KAAK,OAAQA,IAC3BE,EAAI,EAAE,KAAK,MAAMF,GAAK,GAAK8B,EAC3BA,EAAQ5B,GAAK,GACb,KAAK,MAAMF,GAAKE,EAAI,SAEtB,YAAK,SAAW,EAET,KAAK,MAAM,CACpB,EAEAX,EAAG,UAAU,SAAW,SAAmBK,EAAK+L,EAAM,CACpD,IAAID,EAAQ,KAAK,OAAS9L,EAAI,OAE1BoD,EAAI,KAAK,MAAM,EACfF,EAAIlD,EAGJgM,EAAM9I,EAAE,MAAMA,EAAE,OAAS,GAAK,EAC9B+I,EAAU,KAAK,WAAWD,CAAG,EACjCF,EAAQ,GAAKG,EACTH,IAAU,IACZ5I,EAAIA,EAAE,MAAM4I,CAAK,EACjB1I,EAAE,OAAO0I,CAAK,EACdE,EAAM9I,EAAE,MAAMA,EAAE,OAAS,GAAK,GAIhC,IAAI0H,EAAIxH,EAAE,OAASF,EAAE,OACjBN,EAEJ,GAAImJ,IAAS,MAAO,CAClBnJ,EAAI,IAAIjD,EAAG,IAAI,EACfiD,EAAE,OAASgI,EAAI,EACfhI,EAAE,MAAQ,IAAI,MAAMA,EAAE,MAAM,EAC5B,QAASxC,EAAI,EAAGA,EAAIwC,EAAE,OAAQxC,IAC5BwC,EAAE,MAAMxC,GAAK,CAEjB,CAEA,IAAI8L,EAAO9I,EAAE,MAAM,EAAE,aAAaF,EAAG,EAAG0H,CAAC,EACrCsB,EAAK,WAAa,IACpB9I,EAAI8I,EACAtJ,IACFA,EAAE,MAAMgI,GAAK,IAIjB,QAASvK,EAAIuK,EAAI,EAAGvK,GAAK,EAAGA,IAAK,CAC/B,IAAI8L,GAAM/I,EAAE,MAAMF,EAAE,OAAS7C,GAAK,GAAK,UACpC+C,EAAE,MAAMF,EAAE,OAAS7C,EAAI,GAAK,GAO/B,IAHA8L,EAAK,KAAK,IAAKA,EAAKH,EAAO,EAAG,QAAS,EAEvC5I,EAAE,aAAaF,EAAGiJ,EAAI9L,CAAC,EAChB+C,EAAE,WAAa,GACpB+I,IACA/I,EAAE,SAAW,EACbA,EAAE,aAAaF,EAAG,EAAG7C,CAAC,EACjB+C,EAAE,OAAO,IACZA,EAAE,UAAY,GAGdR,IACFA,EAAE,MAAMvC,GAAK8L,EAEjB,CACA,OAAIvJ,GACFA,EAAE,MAAM,EAEVQ,EAAE,MAAM,EAGJ2I,IAAS,OAASD,IAAU,GAC9B1I,EAAE,OAAO0I,CAAK,EAGT,CACL,IAAKlJ,GAAK,KACV,IAAKQ,CACP,CACF,EAMAzD,EAAG,UAAU,OAAS,SAAiBK,EAAK+L,EAAMK,EAAU,CAG1D,GAFAhN,EAAO,CAACY,EAAI,OAAO,CAAC,EAEhB,KAAK,OAAO,EACd,MAAO,CACL,IAAK,IAAIL,EAAG,CAAC,EACb,IAAK,IAAIA,EAAG,CAAC,CACf,EAGF,IAAI0M,EAAK7K,EAAKmB,EACd,OAAI,KAAK,WAAa,GAAK3C,EAAI,WAAa,GAC1C2C,EAAM,KAAK,IAAI,EAAE,OAAO3C,EAAK+L,CAAI,EAE7BA,IAAS,QACXM,EAAM1J,EAAI,IAAI,IAAI,GAGhBoJ,IAAS,QACXvK,EAAMmB,EAAI,IAAI,IAAI,EACdyJ,GAAY5K,EAAI,WAAa,GAC/BA,EAAI,KAAKxB,CAAG,GAIT,CACL,IAAKqM,EACL,IAAK7K,CACP,GAGE,KAAK,WAAa,GAAKxB,EAAI,WAAa,GAC1C2C,EAAM,KAAK,OAAO3C,EAAI,IAAI,EAAG+L,CAAI,EAE7BA,IAAS,QACXM,EAAM1J,EAAI,IAAI,IAAI,GAGb,CACL,IAAK0J,EACL,IAAK1J,EAAI,GACX,IAGG,KAAK,SAAW3C,EAAI,YAAc,GACrC2C,EAAM,KAAK,IAAI,EAAE,OAAO3C,EAAI,IAAI,EAAG+L,CAAI,EAEnCA,IAAS,QACXvK,EAAMmB,EAAI,IAAI,IAAI,EACdyJ,GAAY5K,EAAI,WAAa,GAC/BA,EAAI,KAAKxB,CAAG,GAIT,CACL,IAAK2C,EAAI,IACT,IAAKnB,CACP,GAMExB,EAAI,OAAS,KAAK,QAAU,KAAK,IAAIA,CAAG,EAAI,EACvC,CACL,IAAK,IAAIL,EAAG,CAAC,EACb,IAAK,IACP,EAIEK,EAAI,SAAW,EACb+L,IAAS,MACJ,CACL,IAAK,KAAK,KAAK/L,EAAI,MAAM,EAAE,EAC3B,IAAK,IACP,EAGE+L,IAAS,MACJ,CACL,IAAK,KACL,IAAK,IAAIpM,EAAG,KAAK,KAAKK,EAAI,MAAM,EAAE,CAAC,CACrC,EAGK,CACL,IAAK,KAAK,KAAKA,EAAI,MAAM,EAAE,EAC3B,IAAK,IAAIL,EAAG,KAAK,KAAKK,EAAI,MAAM,EAAE,CAAC,CACrC,EAGK,KAAK,SAASA,EAAK+L,CAAI,CAChC,EAGApM,EAAG,UAAU,IAAM,SAAcK,EAAK,CACpC,OAAO,KAAK,OAAOA,EAAK,MAAO,EAAK,EAAE,GACxC,EAGAL,EAAG,UAAU,IAAM,SAAcK,EAAK,CACpC,OAAO,KAAK,OAAOA,EAAK,MAAO,EAAK,EAAE,GACxC,EAEAL,EAAG,UAAU,KAAO,SAAeK,EAAK,CACtC,OAAO,KAAK,OAAOA,EAAK,MAAO,EAAI,EAAE,GACvC,EAGAL,EAAG,UAAU,SAAW,SAAmBK,EAAK,CAC9C,IAAIsM,EAAK,KAAK,OAAOtM,CAAG,EAGxB,GAAIsM,EAAG,IAAI,OAAO,EAAG,OAAOA,EAAG,IAE/B,IAAI9K,EAAM8K,EAAG,IAAI,WAAa,EAAIA,EAAG,IAAI,KAAKtM,CAAG,EAAIsM,EAAG,IAEpDC,EAAOvM,EAAI,MAAM,CAAC,EAClBwM,EAAKxM,EAAI,MAAM,CAAC,EAChBuD,EAAM/B,EAAI,IAAI+K,CAAI,EAGtB,OAAIhJ,EAAM,GAAKiJ,IAAO,GAAKjJ,IAAQ,EAAU+I,EAAG,IAGzCA,EAAG,IAAI,WAAa,EAAIA,EAAG,IAAI,MAAM,CAAC,EAAIA,EAAG,IAAI,MAAM,CAAC,CACjE,EAEA3M,EAAG,UAAU,KAAO,SAAeK,EAAK,CACtCZ,EAAOY,GAAO,QAAS,EAIvB,QAHImK,GAAK,GAAK,IAAMnK,EAEhByM,EAAM,EACDrM,EAAI,KAAK,OAAS,EAAGA,GAAK,EAAGA,IACpCqM,GAAOtC,EAAIsC,GAAO,KAAK,MAAMrM,GAAK,IAAMJ,EAG1C,OAAOyM,CACT,EAGA9M,EAAG,UAAU,MAAQ,SAAgBK,EAAK,CACxCZ,EAAOY,GAAO,QAAS,EAGvB,QADIkC,EAAQ,EACH9B,EAAI,KAAK,OAAS,EAAGA,GAAK,EAAGA,IAAK,CACzC,IAAIE,GAAK,KAAK,MAAMF,GAAK,GAAK8B,EAAQ,SACtC,KAAK,MAAM9B,GAAME,EAAIN,EAAO,EAC5BkC,EAAQ5B,EAAIN,CACd,CAEA,OAAO,KAAK,MAAM,CACpB,EAEAL,EAAG,UAAU,KAAO,SAAeK,EAAK,CACtC,OAAO,KAAK,MAAM,EAAE,MAAMA,CAAG,CAC/B,EAEAL,EAAG,UAAU,KAAO,SAAewK,EAAG,CACpC/K,EAAO+K,EAAE,WAAa,CAAC,EACvB/K,EAAO,CAAC+K,EAAE,OAAO,CAAC,EAElB,IAAIb,EAAI,KACJC,EAAIY,EAAE,MAAM,EAEZb,EAAE,WAAa,EACjBA,EAAIA,EAAE,KAAKa,CAAC,EAEZb,EAAIA,EAAE,MAAM,EAad,QATIoD,EAAI,IAAI/M,EAAG,CAAC,EACZgN,EAAI,IAAIhN,EAAG,CAAC,EAGZiN,EAAI,IAAIjN,EAAG,CAAC,EACZkN,EAAI,IAAIlN,EAAG,CAAC,EAEZmN,EAAI,EAEDxD,EAAE,OAAO,GAAKC,EAAE,OAAO,GAC5BD,EAAE,OAAO,CAAC,EACVC,EAAE,OAAO,CAAC,EACV,EAAEuD,EAMJ,QAHIC,EAAKxD,EAAE,MAAM,EACbyD,EAAK1D,EAAE,MAAM,EAEV,CAACA,EAAE,OAAO,GAAG,CAClB,QAASlJ,EAAI,EAAG6M,EAAK,GAAI3D,EAAE,MAAM,GAAK2D,KAAQ,GAAK7M,EAAI,GAAI,EAAEA,EAAG6M,IAAO,EAAE,CACzE,GAAI7M,EAAI,EAEN,IADAkJ,EAAE,OAAOlJ,CAAC,EACHA,KAAM,IACPsM,EAAE,MAAM,GAAKC,EAAE,MAAM,KACvBD,EAAE,KAAKK,CAAE,EACTJ,EAAE,KAAKK,CAAE,GAGXN,EAAE,OAAO,CAAC,EACVC,EAAE,OAAO,CAAC,EAId,QAAStM,EAAI,EAAG6M,EAAK,GAAI3D,EAAE,MAAM,GAAK2D,KAAQ,GAAK7M,EAAI,GAAI,EAAEA,EAAG6M,IAAO,EAAE,CACzE,GAAI7M,EAAI,EAEN,IADAkJ,EAAE,OAAOlJ,CAAC,EACHA,KAAM,IACPuM,EAAE,MAAM,GAAKC,EAAE,MAAM,KACvBD,EAAE,KAAKG,CAAE,EACTF,EAAE,KAAKG,CAAE,GAGXJ,EAAE,OAAO,CAAC,EACVC,EAAE,OAAO,CAAC,EAIVvD,EAAE,IAAIC,CAAC,GAAK,GACdD,EAAE,KAAKC,CAAC,EACRmD,EAAE,KAAKE,CAAC,EACRD,EAAE,KAAKE,CAAC,IAERtD,EAAE,KAAKD,CAAC,EACRsD,EAAE,KAAKF,CAAC,EACRG,EAAE,KAAKF,CAAC,EAEZ,CAEA,MAAO,CACL,EAAGC,EACH,EAAGC,EACH,IAAKtD,EAAE,OAAOuD,CAAC,CACjB,CACF,EAKAnN,EAAG,UAAU,OAAS,SAAiBwK,EAAG,CACxC/K,EAAO+K,EAAE,WAAa,CAAC,EACvB/K,EAAO,CAAC+K,EAAE,OAAO,CAAC,EAElB,IAAI/G,EAAI,KACJF,EAAIiH,EAAE,MAAM,EAEZ/G,EAAE,WAAa,EACjBA,EAAIA,EAAE,KAAK+G,CAAC,EAEZ/G,EAAIA,EAAE,MAAM,EAQd,QALI+J,EAAK,IAAIxN,EAAG,CAAC,EACbyN,EAAK,IAAIzN,EAAG,CAAC,EAEb0N,EAAQnK,EAAE,MAAM,EAEbE,EAAE,KAAK,CAAC,EAAI,GAAKF,EAAE,KAAK,CAAC,EAAI,GAAG,CACrC,QAAS9C,EAAI,EAAG6M,EAAK,GAAI7J,EAAE,MAAM,GAAK6J,KAAQ,GAAK7M,EAAI,GAAI,EAAEA,EAAG6M,IAAO,EAAE,CACzE,GAAI7M,EAAI,EAEN,IADAgD,EAAE,OAAOhD,CAAC,EACHA,KAAM,GACP+M,EAAG,MAAM,GACXA,EAAG,KAAKE,CAAK,EAGfF,EAAG,OAAO,CAAC,EAIf,QAAS9M,EAAI,EAAG6M,EAAK,GAAIhK,EAAE,MAAM,GAAKgK,KAAQ,GAAK7M,EAAI,GAAI,EAAEA,EAAG6M,IAAO,EAAE,CACzE,GAAI7M,EAAI,EAEN,IADA6C,EAAE,OAAO7C,CAAC,EACHA,KAAM,GACP+M,EAAG,MAAM,GACXA,EAAG,KAAKC,CAAK,EAGfD,EAAG,OAAO,CAAC,EAIXhK,EAAE,IAAIF,CAAC,GAAK,GACdE,EAAE,KAAKF,CAAC,EACRiK,EAAG,KAAKC,CAAE,IAEVlK,EAAE,KAAKE,CAAC,EACRgK,EAAG,KAAKD,CAAE,EAEd,CAEA,IAAIxK,EACJ,OAAIS,EAAE,KAAK,CAAC,IAAM,EAChBT,EAAMwK,EAENxK,EAAMyK,EAGJzK,EAAI,KAAK,CAAC,EAAI,GAChBA,EAAI,KAAKwH,CAAC,EAGLxH,CACT,EAEAhD,EAAG,UAAU,IAAM,SAAcK,EAAK,CACpC,GAAI,KAAK,OAAO,EAAG,OAAOA,EAAI,IAAI,EAClC,GAAIA,EAAI,OAAO,EAAG,OAAO,KAAK,IAAI,EAElC,IAAIoD,EAAI,KAAK,MAAM,EACfF,EAAIlD,EAAI,MAAM,EAClBoD,EAAE,SAAW,EACbF,EAAE,SAAW,EAGb,QAAS4I,EAAQ,EAAG1I,EAAE,OAAO,GAAKF,EAAE,OAAO,EAAG4I,IAC5C1I,EAAE,OAAO,CAAC,EACVF,EAAE,OAAO,CAAC,EAGZ,EAAG,CACD,KAAOE,EAAE,OAAO,GACdA,EAAE,OAAO,CAAC,EAEZ,KAAOF,EAAE,OAAO,GACdA,EAAE,OAAO,CAAC,EAGZ,IAAIpC,EAAIsC,EAAE,IAAIF,CAAC,EACf,GAAIpC,EAAI,EAAG,CAET,IAAI+B,EAAIO,EACRA,EAAIF,EACJA,EAAIL,CACN,SAAW/B,IAAM,GAAKoC,EAAE,KAAK,CAAC,IAAM,EAClC,MAGFE,EAAE,KAAKF,CAAC,CACV,OAAS,IAET,OAAOA,EAAE,OAAO4I,CAAK,CACvB,EAGAnM,EAAG,UAAU,KAAO,SAAeK,EAAK,CACtC,OAAO,KAAK,KAAKA,CAAG,EAAE,EAAE,KAAKA,CAAG,CAClC,EAEAL,EAAG,UAAU,OAAS,UAAmB,CACvC,OAAQ,KAAK,MAAM,GAAK,KAAO,CACjC,EAEAA,EAAG,UAAU,MAAQ,UAAkB,CACrC,OAAQ,KAAK,MAAM,GAAK,KAAO,CACjC,EAGAA,EAAG,UAAU,MAAQ,SAAgBK,EAAK,CACxC,OAAO,KAAK,MAAM,GAAKA,CACzB,EAGAL,EAAG,UAAU,MAAQ,SAAgBqD,EAAK,CACxC5D,EAAO,OAAO4D,GAAQ,QAAQ,EAC9B,IAAIlC,EAAIkC,EAAM,GACVgH,GAAKhH,EAAMlC,GAAK,GAChB8B,EAAI,GAAK9B,EAGb,GAAI,KAAK,QAAUkJ,EACjB,YAAK,QAAQA,EAAI,CAAC,EAClB,KAAK,MAAMA,IAAMpH,EACV,KAKT,QADIV,EAAQU,EACHxC,EAAI4J,EAAG9H,IAAU,GAAK9B,EAAI,KAAK,OAAQA,IAAK,CACnD,IAAIE,EAAI,KAAK,MAAMF,GAAK,EACxBE,GAAK4B,EACLA,EAAQ5B,IAAM,GACdA,GAAK,SACL,KAAK,MAAMF,GAAKE,CAClB,CACA,OAAI4B,IAAU,IACZ,KAAK,MAAM9B,GAAK8B,EAChB,KAAK,UAEA,IACT,EAEAvC,EAAG,UAAU,OAAS,UAAmB,CACvC,OAAO,KAAK,SAAW,GAAK,KAAK,MAAM,KAAO,CAChD,EAEAA,EAAG,UAAU,KAAO,SAAeK,EAAK,CACtC,IAAIsN,EAAWtN,EAAM,EAErB,GAAI,KAAK,WAAa,GAAK,CAACsN,EAAU,MAAO,GAC7C,GAAI,KAAK,WAAa,GAAKA,EAAU,MAAO,GAE5C,KAAK,MAAM,EAEX,IAAI3K,EACJ,GAAI,KAAK,OAAS,EAChBA,EAAM,MACD,CACD2K,IACFtN,EAAM,CAACA,GAGTZ,EAAOY,GAAO,SAAW,mBAAmB,EAE5C,IAAIM,EAAI,KAAK,MAAM,GAAK,EACxBqC,EAAMrC,IAAMN,EAAM,EAAIM,EAAIN,EAAM,GAAK,CACvC,CACA,OAAI,KAAK,WAAa,EAAU,CAAC2C,EAAM,EAChCA,CACT,EAMAhD,EAAG,UAAU,IAAM,SAAcK,EAAK,CACpC,GAAI,KAAK,WAAa,GAAKA,EAAI,WAAa,EAAG,MAAO,GACtD,GAAI,KAAK,WAAa,GAAKA,EAAI,WAAa,EAAG,MAAO,GAEtD,IAAI2C,EAAM,KAAK,KAAK3C,CAAG,EACvB,OAAI,KAAK,WAAa,EAAU,CAAC2C,EAAM,EAChCA,CACT,EAGAhD,EAAG,UAAU,KAAO,SAAeK,EAAK,CAEtC,GAAI,KAAK,OAASA,EAAI,OAAQ,MAAO,GACrC,GAAI,KAAK,OAASA,EAAI,OAAQ,MAAO,GAGrC,QADI2C,EAAM,EACDvC,EAAI,KAAK,OAAS,EAAGA,GAAK,EAAGA,IAAK,CACzC,IAAIgD,EAAI,KAAK,MAAMhD,GAAK,EACpB8C,EAAIlD,EAAI,MAAMI,GAAK,EAEvB,GAAIgD,IAAMF,EACV,CAAIE,EAAIF,EACNP,EAAM,GACGS,EAAIF,IACbP,EAAM,GAER,MACF,CACA,OAAOA,CACT,EAEAhD,EAAG,UAAU,IAAM,SAAcK,EAAK,CACpC,OAAO,KAAK,KAAKA,CAAG,IAAM,CAC5B,EAEAL,EAAG,UAAU,GAAK,SAAaK,EAAK,CAClC,OAAO,KAAK,IAAIA,CAAG,IAAM,CAC3B,EAEAL,EAAG,UAAU,KAAO,SAAeK,EAAK,CACtC,OAAO,KAAK,KAAKA,CAAG,GAAK,CAC3B,EAEAL,EAAG,UAAU,IAAM,SAAcK,EAAK,CACpC,OAAO,KAAK,IAAIA,CAAG,GAAK,CAC1B,EAEAL,EAAG,UAAU,IAAM,SAAcK,EAAK,CACpC,OAAO,KAAK,KAAKA,CAAG,IAAM,EAC5B,EAEAL,EAAG,UAAU,GAAK,SAAaK,EAAK,CAClC,OAAO,KAAK,IAAIA,CAAG,IAAM,EAC3B,EAEAL,EAAG,UAAU,KAAO,SAAeK,EAAK,CACtC,OAAO,KAAK,KAAKA,CAAG,GAAK,CAC3B,EAEAL,EAAG,UAAU,IAAM,SAAcK,EAAK,CACpC,OAAO,KAAK,IAAIA,CAAG,GAAK,CAC1B,EAEAL,EAAG,UAAU,IAAM,SAAcK,EAAK,CACpC,OAAO,KAAK,KAAKA,CAAG,IAAM,CAC5B,EAEAL,EAAG,UAAU,GAAK,SAAaK,EAAK,CAClC,OAAO,KAAK,IAAIA,CAAG,IAAM,CAC3B,EAMAL,EAAG,IAAM,SAAcK,EAAK,CAC1B,OAAO,IAAIuN,EAAIvN,CAAG,CACpB,EAEAL,EAAG,UAAU,MAAQ,SAAgB6N,EAAK,CACxC,OAAApO,EAAO,CAAC,KAAK,IAAK,uCAAuC,EACzDA,EAAO,KAAK,WAAa,EAAG,+BAA+B,EACpDoO,EAAI,UAAU,IAAI,EAAE,UAAUA,CAAG,CAC1C,EAEA7N,EAAG,UAAU,QAAU,UAAoB,CACzC,OAAAP,EAAO,KAAK,IAAK,sDAAsD,EAChE,KAAK,IAAI,YAAY,IAAI,CAClC,EAEAO,EAAG,UAAU,UAAY,SAAoB6N,EAAK,CAChD,YAAK,IAAMA,EACJ,IACT,EAEA7N,EAAG,UAAU,SAAW,SAAmB6N,EAAK,CAC9C,OAAApO,EAAO,CAAC,KAAK,IAAK,uCAAuC,EAClD,KAAK,UAAUoO,CAAG,CAC3B,EAEA7N,EAAG,UAAU,OAAS,SAAiBK,EAAK,CAC1C,OAAAZ,EAAO,KAAK,IAAK,oCAAoC,EAC9C,KAAK,IAAI,IAAI,KAAMY,CAAG,CAC/B,EAEAL,EAAG,UAAU,QAAU,SAAkBK,EAAK,CAC5C,OAAAZ,EAAO,KAAK,IAAK,qCAAqC,EAC/C,KAAK,IAAI,KAAK,KAAMY,CAAG,CAChC,EAEAL,EAAG,UAAU,OAAS,SAAiBK,EAAK,CAC1C,OAAAZ,EAAO,KAAK,IAAK,oCAAoC,EAC9C,KAAK,IAAI,IAAI,KAAMY,CAAG,CAC/B,EAEAL,EAAG,UAAU,QAAU,SAAkBK,EAAK,CAC5C,OAAAZ,EAAO,KAAK,IAAK,qCAAqC,EAC/C,KAAK,IAAI,KAAK,KAAMY,CAAG,CAChC,EAEAL,EAAG,UAAU,OAAS,SAAiBK,EAAK,CAC1C,OAAAZ,EAAO,KAAK,IAAK,oCAAoC,EAC9C,KAAK,IAAI,IAAI,KAAMY,CAAG,CAC/B,EAEAL,EAAG,UAAU,OAAS,SAAiBK,EAAK,CAC1C,OAAAZ,EAAO,KAAK,IAAK,oCAAoC,EACrD,KAAK,IAAI,SAAS,KAAMY,CAAG,EACpB,KAAK,IAAI,IAAI,KAAMA,CAAG,CAC/B,EAEAL,EAAG,UAAU,QAAU,SAAkBK,EAAK,CAC5C,OAAAZ,EAAO,KAAK,IAAK,oCAAoC,EACrD,KAAK,IAAI,SAAS,KAAMY,CAAG,EACpB,KAAK,IAAI,KAAK,KAAMA,CAAG,CAChC,EAEAL,EAAG,UAAU,OAAS,UAAmB,CACvC,OAAAP,EAAO,KAAK,IAAK,oCAAoC,EACrD,KAAK,IAAI,SAAS,IAAI,EACf,KAAK,IAAI,IAAI,IAAI,CAC1B,EAEAO,EAAG,UAAU,QAAU,UAAoB,CACzC,OAAAP,EAAO,KAAK,IAAK,qCAAqC,EACtD,KAAK,IAAI,SAAS,IAAI,EACf,KAAK,IAAI,KAAK,IAAI,CAC3B,EAGAO,EAAG,UAAU,QAAU,UAAoB,CACzC,OAAAP,EAAO,KAAK,IAAK,qCAAqC,EACtD,KAAK,IAAI,SAAS,IAAI,EACf,KAAK,IAAI,KAAK,IAAI,CAC3B,EAEAO,EAAG,UAAU,QAAU,UAAoB,CACzC,OAAAP,EAAO,KAAK,IAAK,qCAAqC,EACtD,KAAK,IAAI,SAAS,IAAI,EACf,KAAK,IAAI,KAAK,IAAI,CAC3B,EAGAO,EAAG,UAAU,OAAS,UAAmB,CACvC,OAAAP,EAAO,KAAK,IAAK,oCAAoC,EACrD,KAAK,IAAI,SAAS,IAAI,EACf,KAAK,IAAI,IAAI,IAAI,CAC1B,EAEAO,EAAG,UAAU,OAAS,SAAiBK,EAAK,CAC1C,OAAAZ,EAAO,KAAK,KAAO,CAACY,EAAI,IAAK,mBAAmB,EAChD,KAAK,IAAI,SAAS,IAAI,EACf,KAAK,IAAI,IAAI,KAAMA,CAAG,CAC/B,EAGA,IAAIyN,EAAS,CACX,KAAM,KACN,KAAM,KACN,KAAM,KACN,OAAQ,IACV,EAGA,SAASC,EAAQC,EAAMxD,EAAG,CAExB,KAAK,KAAOwD,EACZ,KAAK,EAAI,IAAIhO,EAAGwK,EAAG,EAAE,EACrB,KAAK,EAAI,KAAK,EAAE,UAAU,EAC1B,KAAK,EAAI,IAAIxK,EAAG,CAAC,EAAE,OAAO,KAAK,CAAC,EAAE,KAAK,KAAK,CAAC,EAE7C,KAAK,IAAM,KAAK,KAAK,CACvB,CAEA+N,EAAO,UAAU,KAAO,UAAiB,CACvC,IAAIE,EAAM,IAAIjO,EAAG,IAAI,EACrB,OAAAiO,EAAI,MAAQ,IAAI,MAAM,KAAK,KAAK,KAAK,EAAI,EAAE,CAAC,EACrCA,CACT,EAEAF,EAAO,UAAU,QAAU,SAAkB1N,EAAK,CAGhD,IAAIc,EAAId,EACJ6N,EAEJ,GACE,KAAK,MAAM/M,EAAG,KAAK,GAAG,EACtBA,EAAI,KAAK,MAAMA,CAAC,EAChBA,EAAIA,EAAE,KAAK,KAAK,GAAG,EACnB+M,EAAO/M,EAAE,UAAU,QACZ+M,EAAO,KAAK,GAErB,IAAItK,EAAMsK,EAAO,KAAK,EAAI,GAAK/M,EAAE,KAAK,KAAK,CAAC,EAC5C,OAAIyC,IAAQ,GACVzC,EAAE,MAAM,GAAK,EACbA,EAAE,OAAS,GACFyC,EAAM,EACfzC,EAAE,KAAK,KAAK,CAAC,EAETA,EAAE,QAAU,OAEdA,EAAE,MAAM,EAGRA,EAAE,OAAO,EAINA,CACT,EAEA4M,EAAO,UAAU,MAAQ,SAAgBI,EAAO7L,EAAK,CACnD6L,EAAM,OAAO,KAAK,EAAG,EAAG7L,CAAG,CAC7B,EAEAyL,EAAO,UAAU,MAAQ,SAAgB1N,EAAK,CAC5C,OAAOA,EAAI,KAAK,KAAK,CAAC,CACxB,EAEA,SAAS+N,GAAQ,CACfL,EAAO,KACL,KACA,OACA,yEAAyE,CAC7E,CACAnO,EAASwO,EAAML,CAAM,EAErBK,EAAK,UAAU,MAAQ,SAAgBD,EAAOE,EAAQ,CAKpD,QAHIpC,EAAO,QAEPqC,EAAS,KAAK,IAAIH,EAAM,OAAQ,CAAC,EAC5B1N,EAAI,EAAGA,EAAI6N,EAAQ7N,IAC1B4N,EAAO,MAAM5N,GAAK0N,EAAM,MAAM1N,GAIhC,GAFA4N,EAAO,OAASC,EAEZH,EAAM,QAAU,EAAG,CACrBA,EAAM,MAAM,GAAK,EACjBA,EAAM,OAAS,EACf,MACF,CAGA,IAAII,EAAOJ,EAAM,MAAM,GAGvB,IAFAE,EAAO,MAAMA,EAAO,UAAYE,EAAOtC,EAElCxL,EAAI,GAAIA,EAAI0N,EAAM,OAAQ1N,IAAK,CAClC,IAAI+N,EAAOL,EAAM,MAAM1N,GAAK,EAC5B0N,EAAM,MAAM1N,EAAI,KAAQ+N,EAAOvC,IAAS,EAAMsC,IAAS,GACvDA,EAAOC,CACT,CACAD,KAAU,GACVJ,EAAM,MAAM1N,EAAI,IAAM8N,EAClBA,IAAS,GAAKJ,EAAM,OAAS,GAC/BA,EAAM,QAAU,GAEhBA,EAAM,QAAU,CAEpB,EAEAC,EAAK,UAAU,MAAQ,SAAgB/N,EAAK,CAE1CA,EAAI,MAAMA,EAAI,QAAU,EACxBA,EAAI,MAAMA,EAAI,OAAS,GAAK,EAC5BA,EAAI,QAAU,EAId,QADI0D,EAAK,EACAtD,EAAI,EAAGA,EAAIJ,EAAI,OAAQI,IAAK,CACnC,IAAIE,EAAIN,EAAI,MAAMI,GAAK,EACvBsD,GAAMpD,EAAI,IACVN,EAAI,MAAMI,GAAKsD,EAAK,SACpBA,EAAKpD,EAAI,IAASoD,EAAK,SAAa,EACtC,CAGA,OAAI1D,EAAI,MAAMA,EAAI,OAAS,KAAO,IAChCA,EAAI,SACAA,EAAI,MAAMA,EAAI,OAAS,KAAO,GAChCA,EAAI,UAGDA,CACT,EAEA,SAASoO,GAAQ,CACfV,EAAO,KACL,KACA,OACA,gEAAgE,CACpE,CACAnO,EAAS6O,EAAMV,CAAM,EAErB,SAASW,GAAQ,CACfX,EAAO,KACL,KACA,OACA,uDAAuD,CAC3D,CACAnO,EAAS8O,EAAMX,CAAM,EAErB,SAASY,GAAU,CAEjBZ,EAAO,KACL,KACA,QACA,qEAAqE,CACzE,CACAnO,EAAS+O,EAAQZ,CAAM,EAEvBY,EAAO,UAAU,MAAQ,SAAgBtO,EAAK,CAG5C,QADIkC,EAAQ,EACH9B,EAAI,EAAGA,EAAIJ,EAAI,OAAQI,IAAK,CACnC,IAAI0C,GAAM9C,EAAI,MAAMI,GAAK,GAAK,GAAO8B,EACjCwB,EAAKZ,EAAK,SACdA,KAAQ,GAER9C,EAAI,MAAMI,GAAKsD,EACfxB,EAAQY,CACV,CACA,OAAIZ,IAAU,IACZlC,EAAI,MAAMA,EAAI,UAAYkC,GAErBlC,CACT,EAGAL,EAAG,OAAS,SAAgBgO,EAAM,CAEhC,GAAIF,EAAOE,GAAO,OAAOF,EAAOE,GAEhC,IAAIY,EACJ,GAAIZ,IAAS,OACXY,EAAQ,IAAIR,UACHJ,IAAS,OAClBY,EAAQ,IAAIH,UACHT,IAAS,OAClBY,EAAQ,IAAIF,UACHV,IAAS,SAClBY,EAAQ,IAAID,MAEZ,OAAM,IAAI,MAAM,iBAAmBX,CAAI,EAEzC,OAAAF,EAAOE,GAAQY,EAERA,CACT,EAKA,SAAShB,EAAK3C,EAAG,CACf,GAAI,OAAOA,GAAM,SAAU,CACzB,IAAI2D,EAAQ5O,EAAG,OAAOiL,CAAC,EACvB,KAAK,EAAI2D,EAAM,EACf,KAAK,MAAQA,CACf,MACEnP,EAAOwL,EAAE,IAAI,CAAC,EAAG,gCAAgC,EACjD,KAAK,EAAIA,EACT,KAAK,MAAQ,IAEjB,CAEA2C,EAAI,UAAU,SAAW,SAAmBnK,EAAG,CAC7ChE,EAAOgE,EAAE,WAAa,EAAG,+BAA+B,EACxDhE,EAAOgE,EAAE,IAAK,iCAAiC,CACjD,EAEAmK,EAAI,UAAU,SAAW,SAAmBnK,EAAGF,EAAG,CAChD9D,GAAQgE,EAAE,SAAWF,EAAE,YAAc,EAAG,+BAA+B,EACvE9D,EAAOgE,EAAE,KAAOA,EAAE,MAAQF,EAAE,IAC1B,iCAAiC,CACrC,EAEAqK,EAAI,UAAU,KAAO,SAAenK,EAAG,CACrC,OAAI,KAAK,MAAc,KAAK,MAAM,QAAQA,CAAC,EAAE,UAAU,IAAI,EACpDA,EAAE,KAAK,KAAK,CAAC,EAAE,UAAU,IAAI,CACtC,EAEAmK,EAAI,UAAU,IAAM,SAAcnK,EAAG,CACnC,OAAIA,EAAE,OAAO,EACJA,EAAE,MAAM,EAGV,KAAK,EAAE,IAAIA,CAAC,EAAE,UAAU,IAAI,CACrC,EAEAmK,EAAI,UAAU,IAAM,SAAcnK,EAAGF,EAAG,CACtC,KAAK,SAASE,EAAGF,CAAC,EAElB,IAAIP,EAAMS,EAAE,IAAIF,CAAC,EACjB,OAAIP,EAAI,IAAI,KAAK,CAAC,GAAK,GACrBA,EAAI,KAAK,KAAK,CAAC,EAEVA,EAAI,UAAU,IAAI,CAC3B,EAEA4K,EAAI,UAAU,KAAO,SAAenK,EAAGF,EAAG,CACxC,KAAK,SAASE,EAAGF,CAAC,EAElB,IAAIP,EAAMS,EAAE,KAAKF,CAAC,EAClB,OAAIP,EAAI,IAAI,KAAK,CAAC,GAAK,GACrBA,EAAI,KAAK,KAAK,CAAC,EAEVA,CACT,EAEA4K,EAAI,UAAU,IAAM,SAAcnK,EAAGF,EAAG,CACtC,KAAK,SAASE,EAAGF,CAAC,EAElB,IAAIP,EAAMS,EAAE,IAAIF,CAAC,EACjB,OAAIP,EAAI,KAAK,CAAC,EAAI,GAChBA,EAAI,KAAK,KAAK,CAAC,EAEVA,EAAI,UAAU,IAAI,CAC3B,EAEA4K,EAAI,UAAU,KAAO,SAAenK,EAAGF,EAAG,CACxC,KAAK,SAASE,EAAGF,CAAC,EAElB,IAAIP,EAAMS,EAAE,KAAKF,CAAC,EAClB,OAAIP,EAAI,KAAK,CAAC,EAAI,GAChBA,EAAI,KAAK,KAAK,CAAC,EAEVA,CACT,EAEA4K,EAAI,UAAU,IAAM,SAAcnK,EAAGpD,EAAK,CACxC,YAAK,SAASoD,CAAC,EACR,KAAK,KAAKA,EAAE,MAAMpD,CAAG,CAAC,CAC/B,EAEAuN,EAAI,UAAU,KAAO,SAAenK,EAAGF,EAAG,CACxC,YAAK,SAASE,EAAGF,CAAC,EACX,KAAK,KAAKE,EAAE,KAAKF,CAAC,CAAC,CAC5B,EAEAqK,EAAI,UAAU,IAAM,SAAcnK,EAAGF,EAAG,CACtC,YAAK,SAASE,EAAGF,CAAC,EACX,KAAK,KAAKE,EAAE,IAAIF,CAAC,CAAC,CAC3B,EAEAqK,EAAI,UAAU,KAAO,SAAenK,EAAG,CACrC,OAAO,KAAK,KAAKA,EAAGA,EAAE,MAAM,CAAC,CAC/B,EAEAmK,EAAI,UAAU,IAAM,SAAcnK,EAAG,CACnC,OAAO,KAAK,IAAIA,EAAGA,CAAC,CACtB,EAEAmK,EAAI,UAAU,KAAO,SAAenK,EAAG,CACrC,GAAIA,EAAE,OAAO,EAAG,OAAOA,EAAE,MAAM,EAE/B,IAAIoL,EAAO,KAAK,EAAE,MAAM,CAAC,EAIzB,GAHApP,EAAOoP,EAAO,IAAM,CAAC,EAGjBA,IAAS,EAAG,CACd,IAAI9M,EAAM,KAAK,EAAE,IAAI,IAAI/B,EAAG,CAAC,CAAC,EAAE,OAAO,CAAC,EACxC,OAAO,KAAK,IAAIyD,EAAG1B,CAAG,CACxB,CAOA,QAFIkB,EAAI,KAAK,EAAE,KAAK,CAAC,EACjBoH,EAAI,EACD,CAACpH,EAAE,OAAO,GAAKA,EAAE,MAAM,CAAC,IAAM,GACnCoH,IACApH,EAAE,OAAO,CAAC,EAEZxD,EAAO,CAACwD,EAAE,OAAO,CAAC,EAElB,IAAI6L,EAAM,IAAI9O,EAAG,CAAC,EAAE,MAAM,IAAI,EAC1B+O,EAAOD,EAAI,OAAO,EAIlBE,EAAO,KAAK,EAAE,KAAK,CAAC,EAAE,OAAO,CAAC,EAC9BC,EAAI,KAAK,EAAE,UAAU,EAGzB,IAFAA,EAAI,IAAIjP,EAAG,EAAIiP,EAAIA,CAAC,EAAE,MAAM,IAAI,EAEzB,KAAK,IAAIA,EAAGD,CAAI,EAAE,IAAID,CAAI,IAAM,GACrCE,EAAE,QAAQF,CAAI,EAOhB,QAJI/N,EAAI,KAAK,IAAIiO,EAAGhM,CAAC,EACjB9B,EAAI,KAAK,IAAIsC,EAAGR,EAAE,KAAK,CAAC,EAAE,OAAO,CAAC,CAAC,EACnCC,EAAI,KAAK,IAAIO,EAAGR,CAAC,EACjBgI,EAAIZ,EACDnH,EAAE,IAAI4L,CAAG,IAAM,GAAG,CAEvB,QADIb,EAAM/K,EACDzC,EAAI,EAAGwN,EAAI,IAAIa,CAAG,IAAM,EAAGrO,IAClCwN,EAAMA,EAAI,OAAO,EAEnBxO,EAAOgB,EAAIwK,CAAC,EACZ,IAAI1H,EAAI,KAAK,IAAIvC,EAAG,IAAIhB,EAAG,CAAC,EAAE,OAAOiL,EAAIxK,EAAI,CAAC,CAAC,EAE/CU,EAAIA,EAAE,OAAOoC,CAAC,EACdvC,EAAIuC,EAAE,OAAO,EACbL,EAAIA,EAAE,OAAOlC,CAAC,EACdiK,EAAIxK,CACN,CAEA,OAAOU,CACT,EAEAyM,EAAI,UAAU,KAAO,SAAenK,EAAG,CACrC,IAAIyL,EAAMzL,EAAE,OAAO,KAAK,CAAC,EACzB,OAAIyL,EAAI,WAAa,GACnBA,EAAI,SAAW,EACR,KAAK,KAAKA,CAAG,EAAE,OAAO,GAEtB,KAAK,KAAKA,CAAG,CAExB,EAEAtB,EAAI,UAAU,IAAM,SAAcnK,EAAGpD,EAAK,CACxC,GAAIA,EAAI,OAAO,EAAG,OAAO,IAAIL,EAAG,CAAC,EAAE,MAAM,IAAI,EAC7C,GAAIK,EAAI,KAAK,CAAC,IAAM,EAAG,OAAOoD,EAAE,MAAM,EAEtC,IAAI0L,EAAa,EACbC,EAAM,IAAI,MAAM,GAAKD,CAAU,EACnCC,EAAI,GAAK,IAAIpP,EAAG,CAAC,EAAE,MAAM,IAAI,EAC7BoP,EAAI,GAAK3L,EACT,QAAShD,EAAI,EAAGA,EAAI2O,EAAI,OAAQ3O,IAC9B2O,EAAI3O,GAAK,KAAK,IAAI2O,EAAI3O,EAAI,GAAIgD,CAAC,EAGjC,IAAIT,EAAMoM,EAAI,GACVC,EAAU,EACVC,EAAa,EACb9O,EAAQH,EAAI,UAAU,EAAI,GAK9B,IAJIG,IAAU,IACZA,EAAQ,IAGLC,EAAIJ,EAAI,OAAS,EAAGI,GAAK,EAAGA,IAAK,CAEpC,QADIqB,EAAOzB,EAAI,MAAMI,GACZC,EAAIF,EAAQ,EAAGE,GAAK,EAAGA,IAAK,CACnC,IAAI2C,EAAOvB,GAAQpB,EAAK,EAKxB,GAJIsC,IAAQoM,EAAI,KACdpM,EAAM,KAAK,IAAIA,CAAG,GAGhBK,IAAQ,GAAKgM,IAAY,EAAG,CAC9BC,EAAa,EACb,QACF,CAEAD,IAAY,EACZA,GAAWhM,EACXiM,IACI,EAAAA,IAAeH,IAAe1O,IAAM,GAAKC,IAAM,MAEnDsC,EAAM,KAAK,IAAIA,EAAKoM,EAAIC,EAAQ,EAChCC,EAAa,EACbD,EAAU,EACZ,CACA7O,EAAQ,EACV,CAEA,OAAOwC,CACT,EAEA4K,EAAI,UAAU,UAAY,SAAoBvN,EAAK,CACjD,IAAIc,EAAId,EAAI,KAAK,KAAK,CAAC,EAEvB,OAAOc,IAAMd,EAAMc,EAAE,MAAM,EAAIA,CACjC,EAEAyM,EAAI,UAAU,YAAc,SAAsBvN,EAAK,CACrD,IAAI2C,EAAM3C,EAAI,MAAM,EACpB,OAAA2C,EAAI,IAAM,KACHA,CACT,EAMAhD,EAAG,KAAO,SAAeK,EAAK,CAC5B,OAAO,IAAIkP,GAAKlP,CAAG,CACrB,EAEA,SAASkP,GAAMtE,EAAG,CAChB2C,EAAI,KAAK,KAAM3C,CAAC,EAEhB,KAAK,MAAQ,KAAK,EAAE,UAAU,EAC1B,KAAK,MAAQ,KAAO,IACtB,KAAK,OAAS,GAAM,KAAK,MAAQ,IAGnC,KAAK,EAAI,IAAIjL,EAAG,CAAC,EAAE,OAAO,KAAK,KAAK,EACpC,KAAK,GAAK,KAAK,KAAK,KAAK,EAAE,IAAI,CAAC,EAChC,KAAK,KAAO,KAAK,EAAE,OAAO,KAAK,CAAC,EAEhC,KAAK,KAAO,KAAK,KAAK,IAAI,KAAK,CAAC,EAAE,MAAM,CAAC,EAAE,IAAI,KAAK,CAAC,EACrD,KAAK,KAAO,KAAK,KAAK,KAAK,KAAK,CAAC,EACjC,KAAK,KAAO,KAAK,EAAE,IAAI,KAAK,IAAI,CAClC,CACAJ,EAAS2P,GAAM3B,CAAG,EAElB2B,GAAK,UAAU,UAAY,SAAoBlP,EAAK,CAClD,OAAO,KAAK,KAAKA,EAAI,MAAM,KAAK,KAAK,CAAC,CACxC,EAEAkP,GAAK,UAAU,YAAc,SAAsBlP,EAAK,CACtD,IAAIc,EAAI,KAAK,KAAKd,EAAI,IAAI,KAAK,IAAI,CAAC,EACpC,OAAAc,EAAE,IAAM,KACDA,CACT,EAEAoO,GAAK,UAAU,KAAO,SAAe9L,EAAGF,EAAG,CACzC,GAAIE,EAAE,OAAO,GAAKF,EAAE,OAAO,EACzB,OAAAE,EAAE,MAAM,GAAK,EACbA,EAAE,OAAS,EACJA,EAGT,IAAIP,EAAIO,EAAE,KAAKF,CAAC,EACZvC,EAAIkC,EAAE,MAAM,KAAK,KAAK,EAAE,IAAI,KAAK,IAAI,EAAE,OAAO,KAAK,KAAK,EAAE,IAAI,KAAK,CAAC,EACpEsM,EAAItM,EAAE,KAAKlC,CAAC,EAAE,OAAO,KAAK,KAAK,EAC/BgC,EAAMwM,EAEV,OAAIA,EAAE,IAAI,KAAK,CAAC,GAAK,EACnBxM,EAAMwM,EAAE,KAAK,KAAK,CAAC,EACVA,EAAE,KAAK,CAAC,EAAI,IACrBxM,EAAMwM,EAAE,KAAK,KAAK,CAAC,GAGdxM,EAAI,UAAU,IAAI,CAC3B,EAEAuM,GAAK,UAAU,IAAM,SAAc9L,EAAGF,EAAG,CACvC,GAAIE,EAAE,OAAO,GAAKF,EAAE,OAAO,EAAG,OAAO,IAAIvD,EAAG,CAAC,EAAE,UAAU,IAAI,EAE7D,IAAIkD,EAAIO,EAAE,IAAIF,CAAC,EACXvC,EAAIkC,EAAE,MAAM,KAAK,KAAK,EAAE,IAAI,KAAK,IAAI,EAAE,OAAO,KAAK,KAAK,EAAE,IAAI,KAAK,CAAC,EACpEsM,EAAItM,EAAE,KAAKlC,CAAC,EAAE,OAAO,KAAK,KAAK,EAC/BgC,EAAMwM,EACV,OAAIA,EAAE,IAAI,KAAK,CAAC,GAAK,EACnBxM,EAAMwM,EAAE,KAAK,KAAK,CAAC,EACVA,EAAE,KAAK,CAAC,EAAI,IACrBxM,EAAMwM,EAAE,KAAK,KAAK,CAAC,GAGdxM,EAAI,UAAU,IAAI,CAC3B,EAEAuM,GAAK,UAAU,KAAO,SAAe9L,EAAG,CAEtC,IAAIT,EAAM,KAAK,KAAKS,EAAE,OAAO,KAAK,CAAC,EAAE,IAAI,KAAK,EAAE,CAAC,EACjD,OAAOT,EAAI,UAAU,IAAI,CAC3B,CACF,GAAG,OAAOxD,GAAW,KAAeA,GAAQD,EAAI,+kCCr3GhD,IAAAkQ,GAAAC,EAAA,CAAAC,GAAAC,KAAA,EAAC,SAAUA,EAAQD,EAAS,CAC1B,aAGA,SAASE,EAAQC,EAAKC,EAAK,CACzB,GAAI,CAACD,EAAK,MAAM,IAAI,MAAMC,GAAO,kBAAkB,CACrD,CAIA,SAASC,EAAUC,EAAMC,EAAW,CAClCD,EAAK,OAASC,EACd,IAAIC,EAAW,UAAY,CAAC,EAC5BA,EAAS,UAAYD,EAAU,UAC/BD,EAAK,UAAY,IAAIE,EACrBF,EAAK,UAAU,YAAcA,CAC/B,CAIA,SAASG,EAAIC,EAAQC,EAAMC,EAAQ,CACjC,GAAIH,EAAG,KAAKC,CAAM,EAChB,OAAOA,EAGT,KAAK,SAAW,EAChB,KAAK,MAAQ,KACb,KAAK,OAAS,EAGd,KAAK,IAAM,KAEPA,IAAW,QACTC,IAAS,MAAQA,IAAS,QAC5BC,EAASD,EACTA,EAAO,IAGT,KAAK,MAAMD,GAAU,EAAGC,GAAQ,GAAIC,GAAU,IAAI,EAEtD,CACI,OAAOX,GAAW,SACpBA,EAAO,QAAUQ,EAEjBT,EAAQ,GAAKS,EAGfA,EAAG,GAAKA,EACRA,EAAG,SAAW,GAEd,IAAII,EACJ,GAAI,CACE,OAAO,OAAW,KAAe,OAAO,OAAO,OAAW,IAC5DA,EAAS,OAAO,OAEhBA,EAAS,QAAQ,UAAU,MAE/B,MAAE,CACF,CAEAJ,EAAG,KAAO,SAAeK,EAAK,CAC5B,OAAIA,aAAeL,EACV,GAGFK,IAAQ,MAAQ,OAAOA,GAAQ,UACpCA,EAAI,YAAY,WAAaL,EAAG,UAAY,MAAM,QAAQK,EAAI,KAAK,CACvE,EAEAL,EAAG,IAAM,SAAcM,EAAMC,EAAO,CAClC,OAAID,EAAK,IAAIC,CAAK,EAAI,EAAUD,EACzBC,CACT,EAEAP,EAAG,IAAM,SAAcM,EAAMC,EAAO,CAClC,OAAID,EAAK,IAAIC,CAAK,EAAI,EAAUD,EACzBC,CACT,EAEAP,EAAG,UAAU,MAAQ,SAAeC,EAAQC,EAAMC,EAAQ,CACxD,GAAI,OAAOF,GAAW,SACpB,OAAO,KAAK,YAAYA,EAAQC,EAAMC,CAAM,EAG9C,GAAI,OAAOF,GAAW,SACpB,OAAO,KAAK,WAAWA,EAAQC,EAAMC,CAAM,EAGzCD,IAAS,QACXA,EAAO,IAETT,EAAOS,KAAUA,EAAO,IAAMA,GAAQ,GAAKA,GAAQ,EAAE,EAErDD,EAASA,EAAO,SAAS,EAAE,QAAQ,OAAQ,EAAE,EAC7C,IAAIO,EAAQ,EACRP,EAAO,KAAO,MAChBO,IACA,KAAK,SAAW,GAGdA,EAAQP,EAAO,SACbC,IAAS,GACX,KAAK,UAAUD,EAAQO,EAAOL,CAAM,GAEpC,KAAK,WAAWF,EAAQC,EAAMM,CAAK,EAC/BL,IAAW,MACb,KAAK,WAAW,KAAK,QAAQ,EAAGD,EAAMC,CAAM,GAIpD,EAEAH,EAAG,UAAU,YAAc,SAAsBC,EAAQC,EAAMC,EAAQ,CACjEF,EAAS,IACX,KAAK,SAAW,EAChBA,EAAS,CAACA,GAERA,EAAS,UACX,KAAK,MAAQ,CAAEA,EAAS,QAAU,EAClC,KAAK,OAAS,GACLA,EAAS,kBAClB,KAAK,MAAQ,CACXA,EAAS,SACRA,EAAS,SAAa,QACzB,EACA,KAAK,OAAS,IAEdR,EAAOQ,EAAS,gBAAgB,EAChC,KAAK,MAAQ,CACXA,EAAS,SACRA,EAAS,SAAa,SACvB,CACF,EACA,KAAK,OAAS,GAGZE,IAAW,MAGf,KAAK,WAAW,KAAK,QAAQ,EAAGD,EAAMC,CAAM,CAC9C,EAEAH,EAAG,UAAU,WAAa,SAAqBC,EAAQC,EAAMC,EAAQ,CAGnE,GADAV,EAAO,OAAOQ,EAAO,QAAW,QAAQ,EACpCA,EAAO,QAAU,EACnB,YAAK,MAAQ,CAAE,CAAE,EACjB,KAAK,OAAS,EACP,KAGT,KAAK,OAAS,KAAK,KAAKA,EAAO,OAAS,CAAC,EACzC,KAAK,MAAQ,IAAI,MAAM,KAAK,MAAM,EAClC,QAASQ,EAAI,EAAGA,EAAI,KAAK,OAAQA,IAC/B,KAAK,MAAMA,GAAK,EAGlB,IAAIC,EAAGC,EACHC,EAAM,EACV,GAAIT,IAAW,KACb,IAAKM,EAAIR,EAAO,OAAS,EAAGS,EAAI,EAAGD,GAAK,EAAGA,GAAK,EAC9CE,EAAIV,EAAOQ,GAAMR,EAAOQ,EAAI,IAAM,EAAMR,EAAOQ,EAAI,IAAM,GACzD,KAAK,MAAMC,IAAOC,GAAKC,EAAO,SAC9B,KAAK,MAAMF,EAAI,GAAMC,IAAO,GAAKC,EAAQ,SACzCA,GAAO,GACHA,GAAO,KACTA,GAAO,GACPF,aAGKP,IAAW,KACpB,IAAKM,EAAI,EAAGC,EAAI,EAAGD,EAAIR,EAAO,OAAQQ,GAAK,EACzCE,EAAIV,EAAOQ,GAAMR,EAAOQ,EAAI,IAAM,EAAMR,EAAOQ,EAAI,IAAM,GACzD,KAAK,MAAMC,IAAOC,GAAKC,EAAO,SAC9B,KAAK,MAAMF,EAAI,GAAMC,IAAO,GAAKC,EAAQ,SACzCA,GAAO,GACHA,GAAO,KACTA,GAAO,GACPF,KAIN,OAAO,KAAK,MAAM,CACpB,EAEA,SAASG,EAAeC,EAAQC,EAAO,CACrC,IAAIC,EAAIF,EAAO,WAAWC,CAAK,EAE/B,OAAIC,GAAK,IAAMA,GAAK,GACXA,EAAI,GAEFA,GAAK,IAAMA,GAAK,IAClBA,EAAI,GAGHA,EAAI,GAAM,EAEtB,CAEA,SAASC,EAAcH,EAAQI,EAAYH,EAAO,CAChD,IAAII,EAAIN,EAAcC,EAAQC,CAAK,EACnC,OAAIA,EAAQ,GAAKG,IACfC,GAAKN,EAAcC,EAAQC,EAAQ,CAAC,GAAK,GAEpCI,CACT,CAEAnB,EAAG,UAAU,UAAY,SAAoBC,EAAQO,EAAOL,EAAQ,CAElE,KAAK,OAAS,KAAK,MAAMF,EAAO,OAASO,GAAS,CAAC,EACnD,KAAK,MAAQ,IAAI,MAAM,KAAK,MAAM,EAClC,QAASC,EAAI,EAAGA,EAAI,KAAK,OAAQA,IAC/B,KAAK,MAAMA,GAAK,EAIlB,IAAIG,EAAM,EACNF,EAAI,EAEJC,EACJ,GAAIR,IAAW,KACb,IAAKM,EAAIR,EAAO,OAAS,EAAGQ,GAAKD,EAAOC,GAAK,EAC3CE,EAAIM,EAAahB,EAAQO,EAAOC,CAAC,GAAKG,EACtC,KAAK,MAAMF,IAAMC,EAAI,SACjBC,GAAO,IACTA,GAAO,GACPF,GAAK,EACL,KAAK,MAAMA,IAAMC,IAAM,IAEvBC,GAAO,MAGN,CACL,IAAIQ,EAAcnB,EAAO,OAASO,EAClC,IAAKC,EAAIW,EAAc,IAAM,EAAIZ,EAAQ,EAAIA,EAAOC,EAAIR,EAAO,OAAQQ,GAAK,EAC1EE,EAAIM,EAAahB,EAAQO,EAAOC,CAAC,GAAKG,EACtC,KAAK,MAAMF,IAAMC,EAAI,SACjBC,GAAO,IACTA,GAAO,GACPF,GAAK,EACL,KAAK,MAAMA,IAAMC,IAAM,IAEvBC,GAAO,CAGb,CAEA,KAAK,MAAM,CACb,EAEA,SAASS,EAAWC,EAAKd,EAAOe,EAAKC,EAAK,CAGxC,QAFIL,EAAI,EACJM,EAAM,KAAK,IAAIH,EAAI,OAAQC,CAAG,EACzBd,EAAID,EAAOC,EAAIgB,EAAKhB,IAAK,CAChC,IAAIO,EAAIM,EAAI,WAAWb,CAAC,EAAI,GAE5BU,GAAKK,EAGDR,GAAK,GACPG,GAAKH,EAAI,GAAK,GAGLA,GAAK,GACdG,GAAKH,EAAI,GAAK,GAIdG,GAAKH,CAET,CACA,OAAOG,CACT,CAEAnB,EAAG,UAAU,WAAa,SAAqBC,EAAQC,EAAMM,EAAO,CAElE,KAAK,MAAQ,CAAE,CAAE,EACjB,KAAK,OAAS,EAGd,QAASkB,EAAU,EAAGC,EAAU,EAAGA,GAAW,SAAWA,GAAWzB,EAClEwB,IAEFA,IACAC,EAAWA,EAAUzB,EAAQ,EAO7B,QALI0B,EAAQ3B,EAAO,OAASO,EACxBqB,EAAMD,EAAQF,EACdH,EAAM,KAAK,IAAIK,EAAOA,EAAQC,CAAG,EAAIrB,EAErCsB,EAAO,EACFrB,EAAID,EAAOC,EAAIc,EAAKd,GAAKiB,EAChCI,EAAOT,EAAUpB,EAAQQ,EAAGA,EAAIiB,EAASxB,CAAI,EAE7C,KAAK,MAAMyB,CAAO,EACd,KAAK,MAAM,GAAKG,EAAO,SACzB,KAAK,MAAM,IAAMA,EAEjB,KAAK,OAAOA,CAAI,EAIpB,GAAID,IAAQ,EAAG,CACb,IAAIE,EAAM,EAGV,IAFAD,EAAOT,EAAUpB,EAAQQ,EAAGR,EAAO,OAAQC,CAAI,EAE1CO,EAAI,EAAGA,EAAIoB,EAAKpB,IACnBsB,GAAO7B,EAGT,KAAK,MAAM6B,CAAG,EACV,KAAK,MAAM,GAAKD,EAAO,SACzB,KAAK,MAAM,IAAMA,EAEjB,KAAK,OAAOA,CAAI,CAEpB,CAEA,KAAK,MAAM,CACb,EAEA9B,EAAG,UAAU,KAAO,SAAegC,EAAM,CACvCA,EAAK,MAAQ,IAAI,MAAM,KAAK,MAAM,EAClC,QAASvB,EAAI,EAAGA,EAAI,KAAK,OAAQA,IAC/BuB,EAAK,MAAMvB,GAAK,KAAK,MAAMA,GAE7BuB,EAAK,OAAS,KAAK,OACnBA,EAAK,SAAW,KAAK,SACrBA,EAAK,IAAM,KAAK,GAClB,EAEAhC,EAAG,UAAU,MAAQ,UAAkB,CACrC,IAAImB,EAAI,IAAInB,EAAG,IAAI,EACnB,YAAK,KAAKmB,CAAC,EACJA,CACT,EAEAnB,EAAG,UAAU,QAAU,SAAkBiC,EAAM,CAC7C,KAAO,KAAK,OAASA,GACnB,KAAK,MAAM,KAAK,UAAY,EAE9B,OAAO,IACT,EAGAjC,EAAG,UAAU,MAAQ,UAAkB,CACrC,KAAO,KAAK,OAAS,GAAK,KAAK,MAAM,KAAK,OAAS,KAAO,GACxD,KAAK,SAEP,OAAO,KAAK,UAAU,CACxB,EAEAA,EAAG,UAAU,UAAY,UAAsB,CAE7C,OAAI,KAAK,SAAW,GAAK,KAAK,MAAM,KAAO,IACzC,KAAK,SAAW,GAEX,IACT,EAEAA,EAAG,UAAU,QAAU,UAAoB,CACzC,OAAQ,KAAK,IAAM,UAAY,SAAW,KAAK,SAAS,EAAE,EAAI,GAChE,EAgCA,IAAIkC,EAAQ,CACV,GACA,IACA,KACA,MACA,OACA,QACA,SACA,UACA,WACA,YACA,aACA,cACA,eACA,gBACA,iBACA,kBACA,mBACA,oBACA,qBACA,sBACA,uBACA,wBACA,yBACA,0BACA,2BACA,2BACF,EAEIC,EAAa,CACf,EAAG,EACH,GAAI,GAAI,GAAI,GAAI,GAAI,EAAG,EACvB,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAClB,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAClB,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAClB,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,CACpB,EAEIC,EAAa,CACf,EAAG,EACH,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAC5D,SAAU,IAAU,SAAU,SAAU,SAAU,QAAS,SAC3D,SAAU,SAAU,SAAU,SAAU,KAAU,QAAS,QAC3D,QAAS,QAAS,QAAS,SAAU,SAAU,SAAU,SACzD,MAAU,SAAU,SAAU,SAAU,SAAU,SAAU,QAC9D,EAEApC,EAAG,UAAU,SAAW,SAAmBE,EAAMmC,EAAS,CACxDnC,EAAOA,GAAQ,GACfmC,EAAUA,EAAU,GAAK,EAEzB,IAAIC,EACJ,GAAIpC,IAAS,IAAMA,IAAS,MAAO,CACjCoC,EAAM,GAGN,QAFI1B,EAAM,EACN2B,EAAQ,EACH9B,EAAI,EAAGA,EAAI,KAAK,OAAQA,IAAK,CACpC,IAAIE,EAAI,KAAK,MAAMF,GACfqB,IAAUnB,GAAKC,EAAO2B,GAAS,UAAU,SAAS,EAAE,EACxDA,EAAS5B,IAAO,GAAKC,EAAQ,SACzB2B,IAAU,GAAK9B,IAAM,KAAK,OAAS,EACrC6B,EAAMJ,EAAM,EAAIJ,EAAK,QAAUA,EAAOQ,EAEtCA,EAAMR,EAAOQ,EAEf1B,GAAO,EACHA,GAAO,KACTA,GAAO,GACPH,IAEJ,CAIA,IAHI8B,IAAU,IACZD,EAAMC,EAAM,SAAS,EAAE,EAAID,GAEtBA,EAAI,OAASD,IAAY,GAC9BC,EAAM,IAAMA,EAEd,OAAI,KAAK,WAAa,IACpBA,EAAM,IAAMA,GAEPA,CACT,CAEA,GAAIpC,KAAUA,EAAO,IAAMA,GAAQ,GAAKA,GAAQ,GAAI,CAElD,IAAIsC,EAAYL,EAAWjC,GAEvBuC,EAAYL,EAAWlC,GAC3BoC,EAAM,GACN,IAAItB,EAAI,KAAK,MAAM,EAEnB,IADAA,EAAE,SAAW,EACN,CAACA,EAAE,OAAO,GAAG,CAClB,IAAIG,EAAIH,EAAE,KAAKyB,CAAS,EAAE,SAASvC,CAAI,EACvCc,EAAIA,EAAE,MAAMyB,CAAS,EAEhBzB,EAAE,OAAO,EAGZsB,EAAMnB,EAAImB,EAFVA,EAAMJ,EAAMM,EAAYrB,EAAE,QAAUA,EAAImB,CAI5C,CAIA,IAHI,KAAK,OAAO,IACdA,EAAM,IAAMA,GAEPA,EAAI,OAASD,IAAY,GAC9BC,EAAM,IAAMA,EAEd,OAAI,KAAK,WAAa,IACpBA,EAAM,IAAMA,GAEPA,CACT,CAEA7C,EAAO,GAAO,iCAAiC,CACjD,EAEAO,EAAG,UAAU,SAAW,UAAqB,CAC3C,IAAI0C,EAAM,KAAK,MAAM,GACrB,OAAI,KAAK,SAAW,EAClBA,GAAO,KAAK,MAAM,GAAK,SACd,KAAK,SAAW,GAAK,KAAK,MAAM,KAAO,EAEhDA,GAAO,iBAAoB,KAAK,MAAM,GAAK,SAClC,KAAK,OAAS,GACvBjD,EAAO,GAAO,4CAA4C,EAEpD,KAAK,WAAa,EAAK,CAACiD,EAAMA,CACxC,EAEA1C,EAAG,UAAU,OAAS,UAAmB,CACvC,OAAO,KAAK,SAAS,EAAE,CACzB,EAEAA,EAAG,UAAU,SAAW,SAAmBG,EAAQwC,EAAQ,CACzD,OAAAlD,EAAO,OAAOW,EAAW,GAAW,EAC7B,KAAK,YAAYA,EAAQD,EAAQwC,CAAM,CAChD,EAEA3C,EAAG,UAAU,QAAU,SAAkBG,EAAQwC,EAAQ,CACvD,OAAO,KAAK,YAAY,MAAOxC,EAAQwC,CAAM,CAC/C,EAEA3C,EAAG,UAAU,YAAc,SAAsB4C,EAAWzC,EAAQwC,EAAQ,CAC1E,IAAIE,EAAa,KAAK,WAAW,EAC7BC,EAAYH,GAAU,KAAK,IAAI,EAAGE,CAAU,EAChDpD,EAAOoD,GAAcC,EAAW,uCAAuC,EACvErD,EAAOqD,EAAY,EAAG,6BAA6B,EAEnD,KAAK,MAAM,EACX,IAAIC,EAAe5C,IAAW,KAC1B6C,EAAM,IAAIJ,EAAUE,CAAS,EAE7B,EAAGrC,EACHwC,EAAI,KAAK,MAAM,EACnB,GAAKF,EAYE,CACL,IAAKtC,EAAI,EAAG,CAACwC,EAAE,OAAO,EAAGxC,IACvB,EAAIwC,EAAE,MAAM,GAAI,EAChBA,EAAE,OAAO,CAAC,EAEVD,EAAIvC,GAAK,EAGX,KAAOA,EAAIqC,EAAWrC,IACpBuC,EAAIvC,GAAK,CAEb,KAvBmB,CAEjB,IAAKA,EAAI,EAAGA,EAAIqC,EAAYD,EAAYpC,IACtCuC,EAAIvC,GAAK,EAGX,IAAKA,EAAI,EAAG,CAACwC,EAAE,OAAO,EAAGxC,IACvB,EAAIwC,EAAE,MAAM,GAAI,EAChBA,EAAE,OAAO,CAAC,EAEVD,EAAIF,EAAYrC,EAAI,GAAK,CAE7B,CAaA,OAAOuC,CACT,EAEI,KAAK,MACPhD,EAAG,UAAU,WAAa,SAAqBW,EAAG,CAChD,MAAO,IAAK,KAAK,MAAMA,CAAC,CAC1B,EAEAX,EAAG,UAAU,WAAa,SAAqBW,EAAG,CAChD,IAAIuC,EAAIvC,EACJQ,EAAI,EACR,OAAI+B,GAAK,OACP/B,GAAK,GACL+B,KAAO,IAELA,GAAK,KACP/B,GAAK,EACL+B,KAAO,GAELA,GAAK,IACP/B,GAAK,EACL+B,KAAO,GAELA,GAAK,IACP/B,GAAK,EACL+B,KAAO,GAEF/B,EAAI+B,CACb,EAGFlD,EAAG,UAAU,UAAY,SAAoBW,EAAG,CAE9C,GAAIA,IAAM,EAAG,MAAO,IAEpB,IAAIuC,EAAIvC,EACJQ,EAAI,EACR,OAAK+B,EAAI,QAAY,IACnB/B,GAAK,GACL+B,KAAO,KAEJA,EAAI,OAAU,IACjB/B,GAAK,EACL+B,KAAO,IAEJA,EAAI,MAAS,IAChB/B,GAAK,EACL+B,KAAO,IAEJA,EAAI,KAAS,IAChB/B,GAAK,EACL+B,KAAO,IAEJA,EAAI,KAAS,GAChB/B,IAEKA,CACT,EAGAnB,EAAG,UAAU,UAAY,UAAsB,CAC7C,IAAIW,EAAI,KAAK,MAAM,KAAK,OAAS,GAC7BwC,EAAK,KAAK,WAAWxC,CAAC,EAC1B,OAAQ,KAAK,OAAS,GAAK,GAAKwC,CAClC,EAEA,SAASC,EAAY/C,EAAK,CAGxB,QAFIM,EAAI,IAAI,MAAMN,EAAI,UAAU,CAAC,EAExBgD,EAAM,EAAGA,EAAM1C,EAAE,OAAQ0C,IAAO,CACvC,IAAIzC,EAAOyC,EAAM,GAAM,EACnBC,EAAOD,EAAM,GAEjB1C,EAAE0C,IAAQhD,EAAI,MAAMO,GAAQ,GAAK0C,KAAWA,CAC9C,CAEA,OAAO3C,CACT,CAGAX,EAAG,UAAU,SAAW,UAAqB,CAC3C,GAAI,KAAK,OAAO,EAAG,MAAO,GAG1B,QADImB,EAAI,EACCV,EAAI,EAAGA,EAAI,KAAK,OAAQA,IAAK,CACpC,IAAI8C,EAAI,KAAK,UAAU,KAAK,MAAM9C,EAAE,EAEpC,GADAU,GAAKoC,EACDA,IAAM,GAAI,KAChB,CACA,OAAOpC,CACT,EAEAnB,EAAG,UAAU,WAAa,UAAuB,CAC/C,OAAO,KAAK,KAAK,KAAK,UAAU,EAAI,CAAC,CACvC,EAEAA,EAAG,UAAU,OAAS,SAAiBwD,EAAO,CAC5C,OAAI,KAAK,WAAa,EACb,KAAK,IAAI,EAAE,MAAMA,CAAK,EAAE,MAAM,CAAC,EAEjC,KAAK,MAAM,CACpB,EAEAxD,EAAG,UAAU,SAAW,SAAmBwD,EAAO,CAChD,OAAI,KAAK,MAAMA,EAAQ,CAAC,EACf,KAAK,KAAKA,CAAK,EAAE,MAAM,CAAC,EAAE,KAAK,EAEjC,KAAK,MAAM,CACpB,EAEAxD,EAAG,UAAU,MAAQ,UAAkB,CACrC,OAAO,KAAK,WAAa,CAC3B,EAGAA,EAAG,UAAU,IAAM,UAAgB,CACjC,OAAO,KAAK,MAAM,EAAE,KAAK,CAC3B,EAEAA,EAAG,UAAU,KAAO,UAAiB,CACnC,OAAK,KAAK,OAAO,IACf,KAAK,UAAY,GAGZ,IACT,EAGAA,EAAG,UAAU,KAAO,SAAeK,EAAK,CACtC,KAAO,KAAK,OAASA,EAAI,QACvB,KAAK,MAAM,KAAK,UAAY,EAG9B,QAASI,EAAI,EAAGA,EAAIJ,EAAI,OAAQI,IAC9B,KAAK,MAAMA,GAAK,KAAK,MAAMA,GAAKJ,EAAI,MAAMI,GAG5C,OAAO,KAAK,MAAM,CACpB,EAEAT,EAAG,UAAU,IAAM,SAAcK,EAAK,CACpC,OAAAZ,GAAQ,KAAK,SAAWY,EAAI,YAAc,CAAC,EACpC,KAAK,KAAKA,CAAG,CACtB,EAGAL,EAAG,UAAU,GAAK,SAAaK,EAAK,CAClC,OAAI,KAAK,OAASA,EAAI,OAAe,KAAK,MAAM,EAAE,IAAIA,CAAG,EAClDA,EAAI,MAAM,EAAE,IAAI,IAAI,CAC7B,EAEAL,EAAG,UAAU,IAAM,SAAcK,EAAK,CACpC,OAAI,KAAK,OAASA,EAAI,OAAe,KAAK,MAAM,EAAE,KAAKA,CAAG,EACnDA,EAAI,MAAM,EAAE,KAAK,IAAI,CAC9B,EAGAL,EAAG,UAAU,MAAQ,SAAgBK,EAAK,CAExC,IAAIkD,EACA,KAAK,OAASlD,EAAI,OACpBkD,EAAIlD,EAEJkD,EAAI,KAGN,QAAS9C,EAAI,EAAGA,EAAI8C,EAAE,OAAQ9C,IAC5B,KAAK,MAAMA,GAAK,KAAK,MAAMA,GAAKJ,EAAI,MAAMI,GAG5C,YAAK,OAAS8C,EAAE,OAET,KAAK,MAAM,CACpB,EAEAvD,EAAG,UAAU,KAAO,SAAeK,EAAK,CACtC,OAAAZ,GAAQ,KAAK,SAAWY,EAAI,YAAc,CAAC,EACpC,KAAK,MAAMA,CAAG,CACvB,EAGAL,EAAG,UAAU,IAAM,SAAcK,EAAK,CACpC,OAAI,KAAK,OAASA,EAAI,OAAe,KAAK,MAAM,EAAE,KAAKA,CAAG,EACnDA,EAAI,MAAM,EAAE,KAAK,IAAI,CAC9B,EAEAL,EAAG,UAAU,KAAO,SAAeK,EAAK,CACtC,OAAI,KAAK,OAASA,EAAI,OAAe,KAAK,MAAM,EAAE,MAAMA,CAAG,EACpDA,EAAI,MAAM,EAAE,MAAM,IAAI,CAC/B,EAGAL,EAAG,UAAU,MAAQ,SAAgBK,EAAK,CAExC,IAAIoD,EACAF,EACA,KAAK,OAASlD,EAAI,QACpBoD,EAAI,KACJF,EAAIlD,IAEJoD,EAAIpD,EACJkD,EAAI,MAGN,QAAS9C,EAAI,EAAGA,EAAI8C,EAAE,OAAQ9C,IAC5B,KAAK,MAAMA,GAAKgD,EAAE,MAAMhD,GAAK8C,EAAE,MAAM9C,GAGvC,GAAI,OAASgD,EACX,KAAOhD,EAAIgD,EAAE,OAAQhD,IACnB,KAAK,MAAMA,GAAKgD,EAAE,MAAMhD,GAI5B,YAAK,OAASgD,EAAE,OAET,KAAK,MAAM,CACpB,EAEAzD,EAAG,UAAU,KAAO,SAAeK,EAAK,CACtC,OAAAZ,GAAQ,KAAK,SAAWY,EAAI,YAAc,CAAC,EACpC,KAAK,MAAMA,CAAG,CACvB,EAGAL,EAAG,UAAU,IAAM,SAAcK,EAAK,CACpC,OAAI,KAAK,OAASA,EAAI,OAAe,KAAK,MAAM,EAAE,KAAKA,CAAG,EACnDA,EAAI,MAAM,EAAE,KAAK,IAAI,CAC9B,EAEAL,EAAG,UAAU,KAAO,SAAeK,EAAK,CACtC,OAAI,KAAK,OAASA,EAAI,OAAe,KAAK,MAAM,EAAE,MAAMA,CAAG,EACpDA,EAAI,MAAM,EAAE,MAAM,IAAI,CAC/B,EAGAL,EAAG,UAAU,MAAQ,SAAgBwD,EAAO,CAC1C/D,EAAO,OAAO+D,GAAU,UAAYA,GAAS,CAAC,EAE9C,IAAIE,EAAc,KAAK,KAAKF,EAAQ,EAAE,EAAI,EACtCG,EAAWH,EAAQ,GAGvB,KAAK,QAAQE,CAAW,EAEpBC,EAAW,GACbD,IAIF,QAASjD,EAAI,EAAGA,EAAIiD,EAAajD,IAC/B,KAAK,MAAMA,GAAK,CAAC,KAAK,MAAMA,GAAK,SAInC,OAAIkD,EAAW,IACb,KAAK,MAAMlD,GAAK,CAAC,KAAK,MAAMA,GAAM,UAAc,GAAKkD,GAIhD,KAAK,MAAM,CACpB,EAEA3D,EAAG,UAAU,KAAO,SAAewD,EAAO,CACxC,OAAO,KAAK,MAAM,EAAE,MAAMA,CAAK,CACjC,EAGAxD,EAAG,UAAU,KAAO,SAAeqD,EAAK3D,EAAK,CAC3CD,EAAO,OAAO4D,GAAQ,UAAYA,GAAO,CAAC,EAE1C,IAAIzC,EAAOyC,EAAM,GAAM,EACnBC,EAAOD,EAAM,GAEjB,YAAK,QAAQzC,EAAM,CAAC,EAEhBlB,EACF,KAAK,MAAMkB,GAAO,KAAK,MAAMA,GAAQ,GAAK0C,EAE1C,KAAK,MAAM1C,GAAO,KAAK,MAAMA,GAAO,EAAE,GAAK0C,GAGtC,KAAK,MAAM,CACpB,EAGAtD,EAAG,UAAU,KAAO,SAAeK,EAAK,CACtC,IAAIc,EAGJ,GAAI,KAAK,WAAa,GAAKd,EAAI,WAAa,EAC1C,YAAK,SAAW,EAChBc,EAAI,KAAK,KAAKd,CAAG,EACjB,KAAK,UAAY,EACV,KAAK,UAAU,EAGjB,GAAI,KAAK,WAAa,GAAKA,EAAI,WAAa,EACjD,OAAAA,EAAI,SAAW,EACfc,EAAI,KAAK,KAAKd,CAAG,EACjBA,EAAI,SAAW,EACRc,EAAE,UAAU,EAIrB,IAAIsC,EAAGF,EACH,KAAK,OAASlD,EAAI,QACpBoD,EAAI,KACJF,EAAIlD,IAEJoD,EAAIpD,EACJkD,EAAI,MAIN,QADIhB,EAAQ,EACH9B,EAAI,EAAGA,EAAI8C,EAAE,OAAQ9C,IAC5BU,GAAKsC,EAAE,MAAMhD,GAAK,IAAM8C,EAAE,MAAM9C,GAAK,GAAK8B,EAC1C,KAAK,MAAM9B,GAAKU,EAAI,SACpBoB,EAAQpB,IAAM,GAEhB,KAAOoB,IAAU,GAAK9B,EAAIgD,EAAE,OAAQhD,IAClCU,GAAKsC,EAAE,MAAMhD,GAAK,GAAK8B,EACvB,KAAK,MAAM9B,GAAKU,EAAI,SACpBoB,EAAQpB,IAAM,GAIhB,GADA,KAAK,OAASsC,EAAE,OACZlB,IAAU,EACZ,KAAK,MAAM,KAAK,QAAUA,EAC1B,KAAK,iBAEIkB,IAAM,KACf,KAAOhD,EAAIgD,EAAE,OAAQhD,IACnB,KAAK,MAAMA,GAAKgD,EAAE,MAAMhD,GAI5B,OAAO,IACT,EAGAT,EAAG,UAAU,IAAM,SAAcK,EAAK,CACpC,IAAI2C,EACJ,OAAI3C,EAAI,WAAa,GAAK,KAAK,WAAa,GAC1CA,EAAI,SAAW,EACf2C,EAAM,KAAK,IAAI3C,CAAG,EAClBA,EAAI,UAAY,EACT2C,GACE3C,EAAI,WAAa,GAAK,KAAK,WAAa,GACjD,KAAK,SAAW,EAChB2C,EAAM3C,EAAI,IAAI,IAAI,EAClB,KAAK,SAAW,EACT2C,GAGL,KAAK,OAAS3C,EAAI,OAAe,KAAK,MAAM,EAAE,KAAKA,CAAG,EAEnDA,EAAI,MAAM,EAAE,KAAK,IAAI,CAC9B,EAGAL,EAAG,UAAU,KAAO,SAAeK,EAAK,CAEtC,GAAIA,EAAI,WAAa,EAAG,CACtBA,EAAI,SAAW,EACf,IAAIc,EAAI,KAAK,KAAKd,CAAG,EACrB,OAAAA,EAAI,SAAW,EACRc,EAAE,UAAU,CAGrB,SAAW,KAAK,WAAa,EAC3B,YAAK,SAAW,EAChB,KAAK,KAAKd,CAAG,EACb,KAAK,SAAW,EACT,KAAK,UAAU,EAIxB,IAAIuD,EAAM,KAAK,IAAIvD,CAAG,EAGtB,GAAIuD,IAAQ,EACV,YAAK,SAAW,EAChB,KAAK,OAAS,EACd,KAAK,MAAM,GAAK,EACT,KAIT,IAAIH,EAAGF,EACHK,EAAM,GACRH,EAAI,KACJF,EAAIlD,IAEJoD,EAAIpD,EACJkD,EAAI,MAIN,QADIhB,EAAQ,EACH9B,EAAI,EAAGA,EAAI8C,EAAE,OAAQ9C,IAC5BU,GAAKsC,EAAE,MAAMhD,GAAK,IAAM8C,EAAE,MAAM9C,GAAK,GAAK8B,EAC1CA,EAAQpB,GAAK,GACb,KAAK,MAAMV,GAAKU,EAAI,SAEtB,KAAOoB,IAAU,GAAK9B,EAAIgD,EAAE,OAAQhD,IAClCU,GAAKsC,EAAE,MAAMhD,GAAK,GAAK8B,EACvBA,EAAQpB,GAAK,GACb,KAAK,MAAMV,GAAKU,EAAI,SAItB,GAAIoB,IAAU,GAAK9B,EAAIgD,EAAE,QAAUA,IAAM,KACvC,KAAOhD,EAAIgD,EAAE,OAAQhD,IACnB,KAAK,MAAMA,GAAKgD,EAAE,MAAMhD,GAI5B,YAAK,OAAS,KAAK,IAAI,KAAK,OAAQA,CAAC,EAEjCgD,IAAM,OACR,KAAK,SAAW,GAGX,KAAK,MAAM,CACpB,EAGAzD,EAAG,UAAU,IAAM,SAAcK,EAAK,CACpC,OAAO,KAAK,MAAM,EAAE,KAAKA,CAAG,CAC9B,EAEA,SAASwD,EAAYC,EAAMzD,EAAKiC,EAAK,CACnCA,EAAI,SAAWjC,EAAI,SAAWyD,EAAK,SACnC,IAAIrC,EAAOqC,EAAK,OAASzD,EAAI,OAAU,EACvCiC,EAAI,OAASb,EACbA,EAAOA,EAAM,EAAK,EAGlB,IAAIgC,EAAIK,EAAK,MAAM,GAAK,EACpBP,EAAIlD,EAAI,MAAM,GAAK,EACnBc,EAAIsC,EAAIF,EAERQ,EAAK5C,EAAI,SACToB,EAASpB,EAAI,SAAa,EAC9BmB,EAAI,MAAM,GAAKyB,EAEf,QAASC,EAAI,EAAGA,EAAIvC,EAAKuC,IAAK,CAM5B,QAHIC,EAAS1B,IAAU,GACnB2B,EAAQ3B,EAAQ,SAChB4B,EAAO,KAAK,IAAIH,EAAG3D,EAAI,OAAS,CAAC,EAC5BK,EAAI,KAAK,IAAI,EAAGsD,EAAIF,EAAK,OAAS,CAAC,EAAGpD,GAAKyD,EAAMzD,IAAK,CAC7D,IAAID,EAAKuD,EAAItD,EAAK,EAClB+C,EAAIK,EAAK,MAAMrD,GAAK,EACpB8C,EAAIlD,EAAI,MAAMK,GAAK,EACnBS,EAAIsC,EAAIF,EAAIW,EACZD,GAAW9C,EAAI,SAAa,EAC5B+C,EAAQ/C,EAAI,QACd,CACAmB,EAAI,MAAM0B,GAAKE,EAAQ,EACvB3B,EAAQ0B,EAAS,CACnB,CACA,OAAI1B,IAAU,EACZD,EAAI,MAAM0B,GAAKzB,EAAQ,EAEvBD,EAAI,SAGCA,EAAI,MAAM,CACnB,CAKA,IAAI8B,EAAc,SAAsBN,EAAMzD,EAAKiC,EAAK,CACtD,IAAImB,EAAIK,EAAK,MACTP,EAAIlD,EAAI,MACRgE,EAAI/B,EAAI,MACRtB,EAAI,EACJ+C,EACAO,EACAnB,EACAoB,EAAKd,EAAE,GAAK,EACZe,EAAMD,EAAK,KACXE,EAAMF,IAAO,GACbG,EAAKjB,EAAE,GAAK,EACZkB,EAAMD,EAAK,KACXE,EAAMF,IAAO,GACbG,GAAKpB,EAAE,GAAK,EACZqB,EAAMD,GAAK,KACXE,EAAMF,KAAO,GACbG,GAAKvB,EAAE,GAAK,EACZwB,EAAMD,GAAK,KACXE,GAAMF,KAAO,GACbG,GAAK1B,EAAE,GAAK,EACZ2B,GAAMD,GAAK,KACXE,GAAMF,KAAO,GACbG,GAAK7B,EAAE,GAAK,EACZ8B,GAAMD,GAAK,KACXE,GAAMF,KAAO,GACbG,GAAKhC,EAAE,GAAK,EACZiC,GAAMD,GAAK,KACXE,EAAMF,KAAO,GACbG,GAAKnC,EAAE,GAAK,EACZoC,EAAMD,GAAK,KACXE,GAAMF,KAAO,GACbG,GAAKtC,EAAE,GAAK,EACZuC,GAAMD,GAAK,KACXE,GAAMF,KAAO,GACbG,GAAKzC,EAAE,GAAK,EACZ0C,EAAMD,GAAK,KACXE,EAAMF,KAAO,GACbG,GAAK9C,EAAE,GAAK,EACZ+C,GAAMD,GAAK,KACXE,GAAMF,KAAO,GACbG,GAAKjD,EAAE,GAAK,EACZkD,GAAMD,GAAK,KACXE,GAAMF,KAAO,GACbG,GAAKpD,EAAE,GAAK,EACZqD,GAAMD,GAAK,KACXE,GAAMF,KAAO,GACbG,GAAKvD,EAAE,GAAK,EACZwD,GAAMD,GAAK,KACXE,GAAMF,KAAO,GACbG,GAAK1D,EAAE,GAAK,EACZ2D,GAAMD,GAAK,KACXE,GAAMF,KAAO,GACbG,GAAK7D,EAAE,GAAK,EACZ8D,GAAMD,GAAK,KACXE,GAAMF,KAAO,GACbG,GAAKhE,EAAE,GAAK,EACZiE,GAAMD,GAAK,KACXE,GAAMF,KAAO,GACbG,GAAKnE,EAAE,GAAK,EACZoE,GAAMD,GAAK,KACXE,GAAMF,KAAO,GACbG,GAAKtE,EAAE,GAAK,EACZuE,GAAMD,GAAK,KACXE,GAAMF,KAAO,GACbG,GAAKzE,EAAE,GAAK,EACZ0E,GAAMD,GAAK,KACXE,GAAMF,KAAO,GAEjB1F,EAAI,SAAWwB,EAAK,SAAWzD,EAAI,SACnCiC,EAAI,OAAS,GAEbyB,EAAK,KAAK,KAAKS,EAAK8B,EAAG,EACvBhC,EAAM,KAAK,KAAKE,EAAK+B,EAAG,EACxBjC,EAAOA,EAAM,KAAK,KAAKG,EAAK6B,EAAG,EAAK,EACpCnD,EAAK,KAAK,KAAKsB,EAAK8B,EAAG,EACvB,IAAI4B,IAAQnH,EAAI+C,EAAM,KAAOO,EAAM,OAAW,IAAO,EACrDtD,GAAOmC,GAAMmB,IAAQ,IAAO,IAAM6D,KAAO,IAAO,EAChDA,IAAM,SAENpE,EAAK,KAAK,KAAKY,EAAK2B,EAAG,EACvBhC,EAAM,KAAK,KAAKK,EAAK4B,EAAG,EACxBjC,EAAOA,EAAM,KAAK,KAAKM,EAAK0B,EAAG,EAAK,EACpCnD,EAAK,KAAK,KAAKyB,EAAK2B,EAAG,EACvBxC,EAAMA,EAAK,KAAK,KAAKS,EAAKiC,EAAG,EAAK,EAClCnC,EAAOA,EAAM,KAAK,KAAKE,EAAKkC,EAAG,EAAK,EACpCpC,EAAOA,EAAM,KAAK,KAAKG,EAAKgC,EAAG,EAAK,EACpCtD,EAAMA,EAAK,KAAK,KAAKsB,EAAKiC,EAAG,EAAK,EAClC,IAAI0B,IAAQpH,EAAI+C,EAAM,KAAOO,EAAM,OAAW,IAAO,EACrDtD,GAAOmC,GAAMmB,IAAQ,IAAO,IAAM8D,KAAO,IAAO,EAChDA,IAAM,SAENrE,EAAK,KAAK,KAAKe,EAAKwB,EAAG,EACvBhC,EAAM,KAAK,KAAKQ,EAAKyB,EAAG,EACxBjC,EAAOA,EAAM,KAAK,KAAKS,EAAKuB,EAAG,EAAK,EACpCnD,EAAK,KAAK,KAAK4B,EAAKwB,EAAG,EACvBxC,EAAMA,EAAK,KAAK,KAAKY,EAAK8B,EAAG,EAAK,EAClCnC,EAAOA,EAAM,KAAK,KAAKK,EAAK+B,EAAG,EAAK,EACpCpC,EAAOA,EAAM,KAAK,KAAKM,EAAK6B,EAAG,EAAK,EACpCtD,EAAMA,EAAK,KAAK,KAAKyB,EAAK8B,EAAG,EAAK,EAClC3C,EAAMA,EAAK,KAAK,KAAKS,EAAKoC,EAAG,EAAK,EAClCtC,EAAOA,EAAM,KAAK,KAAKE,EAAKqC,EAAG,EAAK,EACpCvC,EAAOA,EAAM,KAAK,KAAKG,EAAKmC,EAAG,EAAK,EACpCzD,EAAMA,EAAK,KAAK,KAAKsB,EAAKoC,EAAG,EAAK,EAClC,IAAIwB,IAAQrH,EAAI+C,EAAM,KAAOO,EAAM,OAAW,IAAO,EACrDtD,GAAOmC,GAAMmB,IAAQ,IAAO,IAAM+D,KAAO,IAAO,EAChDA,IAAM,SAENtE,EAAK,KAAK,KAAKkB,EAAKqB,EAAG,EACvBhC,EAAM,KAAK,KAAKW,EAAKsB,EAAG,EACxBjC,EAAOA,EAAM,KAAK,KAAKY,GAAKoB,EAAG,EAAK,EACpCnD,EAAK,KAAK,KAAK+B,GAAKqB,EAAG,EACvBxC,EAAMA,EAAK,KAAK,KAAKe,EAAK2B,EAAG,EAAK,EAClCnC,EAAOA,EAAM,KAAK,KAAKQ,EAAK4B,EAAG,EAAK,EACpCpC,EAAOA,EAAM,KAAK,KAAKS,EAAK0B,EAAG,EAAK,EACpCtD,EAAMA,EAAK,KAAK,KAAK4B,EAAK2B,EAAG,EAAK,EAClC3C,EAAMA,EAAK,KAAK,KAAKY,EAAKiC,EAAG,EAAK,EAClCtC,EAAOA,EAAM,KAAK,KAAKK,EAAKkC,EAAG,EAAK,EACpCvC,EAAOA,EAAM,KAAK,KAAKM,EAAKgC,EAAG,EAAK,EACpCzD,EAAMA,EAAK,KAAK,KAAKyB,EAAKiC,EAAG,EAAK,EAClC9C,EAAMA,EAAK,KAAK,KAAKS,EAAKuC,EAAG,EAAK,EAClCzC,EAAOA,EAAM,KAAK,KAAKE,EAAKwC,EAAG,EAAK,EACpC1C,EAAOA,EAAM,KAAK,KAAKG,EAAKsC,EAAG,EAAK,EACpC5D,EAAMA,EAAK,KAAK,KAAKsB,EAAKuC,EAAG,EAAK,EAClC,IAAIsB,IAAQtH,EAAI+C,EAAM,KAAOO,EAAM,OAAW,IAAO,EACrDtD,GAAOmC,GAAMmB,IAAQ,IAAO,IAAMgE,KAAO,IAAO,EAChDA,IAAM,SAENvE,EAAK,KAAK,KAAKqB,GAAKkB,EAAG,EACvBhC,EAAM,KAAK,KAAKc,GAAKmB,EAAG,EACxBjC,EAAOA,EAAM,KAAK,KAAKe,GAAKiB,EAAG,EAAK,EACpCnD,EAAK,KAAK,KAAKkC,GAAKkB,EAAG,EACvBxC,EAAMA,EAAK,KAAK,KAAKkB,EAAKwB,EAAG,EAAK,EAClCnC,EAAOA,EAAM,KAAK,KAAKW,EAAKyB,EAAG,EAAK,EACpCpC,EAAOA,EAAM,KAAK,KAAKY,GAAKuB,EAAG,EAAK,EACpCtD,EAAMA,EAAK,KAAK,KAAK+B,GAAKwB,EAAG,EAAK,EAClC3C,EAAMA,EAAK,KAAK,KAAKe,EAAK8B,EAAG,EAAK,EAClCtC,EAAOA,EAAM,KAAK,KAAKQ,EAAK+B,EAAG,EAAK,EACpCvC,EAAOA,EAAM,KAAK,KAAKS,EAAK6B,EAAG,EAAK,EACpCzD,EAAMA,EAAK,KAAK,KAAK4B,EAAK8B,EAAG,EAAK,EAClC9C,EAAMA,EAAK,KAAK,KAAKY,EAAKoC,EAAG,EAAK,EAClCzC,EAAOA,EAAM,KAAK,KAAKK,EAAKqC,EAAG,EAAK,EACpC1C,EAAOA,EAAM,KAAK,KAAKM,EAAKmC,EAAG,EAAK,EACpC5D,EAAMA,EAAK,KAAK,KAAKyB,EAAKoC,EAAG,EAAK,EAClCjD,EAAMA,EAAK,KAAK,KAAKS,EAAK0C,EAAG,EAAK,EAClC5C,EAAOA,EAAM,KAAK,KAAKE,EAAK2C,EAAG,EAAK,EACpC7C,EAAOA,EAAM,KAAK,KAAKG,EAAKyC,EAAG,EAAK,EACpC/D,EAAMA,EAAK,KAAK,KAAKsB,EAAK0C,EAAG,EAAK,EAClC,IAAIoB,IAAQvH,EAAI+C,EAAM,KAAOO,EAAM,OAAW,IAAO,EACrDtD,GAAOmC,GAAMmB,IAAQ,IAAO,IAAMiE,KAAO,IAAO,EAChDA,IAAM,SAENxE,EAAK,KAAK,KAAKwB,GAAKe,EAAG,EACvBhC,EAAM,KAAK,KAAKiB,GAAKgB,EAAG,EACxBjC,EAAOA,EAAM,KAAK,KAAKkB,GAAKc,EAAG,EAAK,EACpCnD,EAAK,KAAK,KAAKqC,GAAKe,EAAG,EACvBxC,EAAMA,EAAK,KAAK,KAAKqB,GAAKqB,EAAG,EAAK,EAClCnC,EAAOA,EAAM,KAAK,KAAKc,GAAKsB,EAAG,EAAK,EACpCpC,EAAOA,EAAM,KAAK,KAAKe,GAAKoB,EAAG,EAAK,EACpCtD,EAAMA,EAAK,KAAK,KAAKkC,GAAKqB,EAAG,EAAK,EAClC3C,EAAMA,EAAK,KAAK,KAAKkB,EAAK2B,EAAG,EAAK,EAClCtC,EAAOA,EAAM,KAAK,KAAKW,EAAK4B,EAAG,EAAK,EACpCvC,EAAOA,EAAM,KAAK,KAAKY,GAAK0B,EAAG,EAAK,EACpCzD,EAAMA,EAAK,KAAK,KAAK+B,GAAK2B,EAAG,EAAK,EAClC9C,EAAMA,EAAK,KAAK,KAAKe,EAAKiC,EAAG,EAAK,EAClCzC,EAAOA,EAAM,KAAK,KAAKQ,EAAKkC,EAAG,EAAK,EACpC1C,EAAOA,EAAM,KAAK,KAAKS,EAAKgC,EAAG,EAAK,EACpC5D,EAAMA,EAAK,KAAK,KAAK4B,EAAKiC,EAAG,EAAK,EAClCjD,EAAMA,EAAK,KAAK,KAAKY,EAAKuC,EAAG,EAAK,EAClC5C,EAAOA,EAAM,KAAK,KAAKK,EAAKwC,EAAG,EAAK,EACpC7C,EAAOA,EAAM,KAAK,KAAKM,EAAKsC,EAAG,EAAK,EACpC/D,EAAMA,EAAK,KAAK,KAAKyB,EAAKuC,EAAG,EAAK,EAClCpD,EAAMA,EAAK,KAAK,KAAKS,EAAK6C,EAAG,EAAK,EAClC/C,EAAOA,EAAM,KAAK,KAAKE,EAAK8C,EAAG,EAAK,EACpChD,EAAOA,EAAM,KAAK,KAAKG,EAAK4C,EAAG,EAAK,EACpClE,EAAMA,EAAK,KAAK,KAAKsB,EAAK6C,EAAG,EAAK,EAClC,IAAIkB,IAAQxH,EAAI+C,EAAM,KAAOO,EAAM,OAAW,IAAO,EACrDtD,GAAOmC,GAAMmB,IAAQ,IAAO,IAAMkE,KAAO,IAAO,EAChDA,IAAM,SAENzE,EAAK,KAAK,KAAK2B,GAAKY,EAAG,EACvBhC,EAAM,KAAK,KAAKoB,GAAKa,EAAG,EACxBjC,EAAOA,EAAM,KAAK,KAAKqB,EAAKW,EAAG,EAAK,EACpCnD,EAAK,KAAK,KAAKwC,EAAKY,EAAG,EACvBxC,EAAMA,EAAK,KAAK,KAAKwB,GAAKkB,EAAG,EAAK,EAClCnC,EAAOA,EAAM,KAAK,KAAKiB,GAAKmB,EAAG,EAAK,EACpCpC,EAAOA,EAAM,KAAK,KAAKkB,GAAKiB,EAAG,EAAK,EACpCtD,EAAMA,EAAK,KAAK,KAAKqC,GAAKkB,EAAG,EAAK,EAClC3C,EAAMA,EAAK,KAAK,KAAKqB,GAAKwB,EAAG,EAAK,EAClCtC,EAAOA,EAAM,KAAK,KAAKc,GAAKyB,EAAG,EAAK,EACpCvC,EAAOA,EAAM,KAAK,KAAKe,GAAKuB,EAAG,EAAK,EACpCzD,EAAMA,EAAK,KAAK,KAAKkC,GAAKwB,EAAG,EAAK,EAClC9C,EAAMA,EAAK,KAAK,KAAKkB,EAAK8B,EAAG,EAAK,EAClCzC,EAAOA,EAAM,KAAK,KAAKW,EAAK+B,EAAG,EAAK,EACpC1C,EAAOA,EAAM,KAAK,KAAKY,GAAK6B,EAAG,EAAK,EACpC5D,EAAMA,EAAK,KAAK,KAAK+B,GAAK8B,EAAG,EAAK,EAClCjD,EAAMA,EAAK,KAAK,KAAKe,EAAKoC,EAAG,EAAK,EAClC5C,EAAOA,EAAM,KAAK,KAAKQ,EAAKqC,EAAG,EAAK,EACpC7C,EAAOA,EAAM,KAAK,KAAKS,EAAKmC,EAAG,EAAK,EACpC/D,EAAMA,EAAK,KAAK,KAAK4B,EAAKoC,EAAG,EAAK,EAClCpD,EAAMA,EAAK,KAAK,KAAKY,EAAK0C,EAAG,EAAK,EAClC/C,EAAOA,EAAM,KAAK,KAAKK,EAAK2C,EAAG,EAAK,EACpChD,EAAOA,EAAM,KAAK,KAAKM,EAAKyC,EAAG,EAAK,EACpClE,EAAMA,EAAK,KAAK,KAAKyB,EAAK0C,EAAG,EAAK,EAClCvD,EAAMA,EAAK,KAAK,KAAKS,EAAKgD,EAAG,EAAK,EAClClD,EAAOA,EAAM,KAAK,KAAKE,EAAKiD,EAAG,EAAK,EACpCnD,EAAOA,EAAM,KAAK,KAAKG,EAAK+C,EAAG,EAAK,EACpCrE,EAAMA,EAAK,KAAK,KAAKsB,EAAKgD,EAAG,EAAK,EAClC,IAAIgB,IAAQzH,EAAI+C,EAAM,KAAOO,EAAM,OAAW,IAAO,EACrDtD,GAAOmC,GAAMmB,IAAQ,IAAO,IAAMmE,KAAO,IAAO,EAChDA,IAAM,SAEN1E,EAAK,KAAK,KAAK8B,EAAKS,EAAG,EACvBhC,EAAM,KAAK,KAAKuB,EAAKU,EAAG,EACxBjC,EAAOA,EAAM,KAAK,KAAKwB,GAAKQ,EAAG,EAAK,EACpCnD,EAAK,KAAK,KAAK2C,GAAKS,EAAG,EACvBxC,EAAMA,EAAK,KAAK,KAAK2B,GAAKe,EAAG,EAAK,EAClCnC,EAAOA,EAAM,KAAK,KAAKoB,GAAKgB,EAAG,EAAK,EACpCpC,EAAOA,EAAM,KAAK,KAAKqB,EAAKc,EAAG,EAAK,EACpCtD,EAAMA,EAAK,KAAK,KAAKwC,EAAKe,EAAG,EAAK,EAClC3C,EAAMA,EAAK,KAAK,KAAKwB,GAAKqB,EAAG,EAAK,EAClCtC,EAAOA,EAAM,KAAK,KAAKiB,GAAKsB,EAAG,EAAK,EACpCvC,EAAOA,EAAM,KAAK,KAAKkB,GAAKoB,EAAG,EAAK,EACpCzD,EAAMA,EAAK,KAAK,KAAKqC,GAAKqB,EAAG,EAAK,EAClC9C,EAAMA,EAAK,KAAK,KAAKqB,GAAK2B,EAAG,EAAK,EAClCzC,EAAOA,EAAM,KAAK,KAAKc,GAAK4B,EAAG,EAAK,EACpC1C,EAAOA,EAAM,KAAK,KAAKe,GAAK0B,EAAG,EAAK,EACpC5D,EAAMA,EAAK,KAAK,KAAKkC,GAAK2B,EAAG,EAAK,EAClCjD,EAAMA,EAAK,KAAK,KAAKkB,EAAKiC,EAAG,EAAK,EAClC5C,EAAOA,EAAM,KAAK,KAAKW,EAAKkC,EAAG,EAAK,EACpC7C,EAAOA,EAAM,KAAK,KAAKY,GAAKgC,EAAG,EAAK,EACpC/D,EAAMA,EAAK,KAAK,KAAK+B,GAAKiC,EAAG,EAAK,EAClCpD,EAAMA,EAAK,KAAK,KAAKe,EAAKuC,EAAG,EAAK,EAClC/C,EAAOA,EAAM,KAAK,KAAKQ,EAAKwC,EAAG,EAAK,EACpChD,EAAOA,EAAM,KAAK,KAAKS,EAAKsC,EAAG,EAAK,EACpClE,EAAMA,EAAK,KAAK,KAAK4B,EAAKuC,EAAG,EAAK,EAClCvD,EAAMA,EAAK,KAAK,KAAKY,EAAK6C,EAAG,EAAK,EAClClD,EAAOA,EAAM,KAAK,KAAKK,EAAK8C,EAAG,EAAK,EACpCnD,EAAOA,EAAM,KAAK,KAAKM,EAAK4C,EAAG,EAAK,EACpCrE,EAAMA,EAAK,KAAK,KAAKyB,EAAK6C,EAAG,EAAK,EAClC1D,EAAMA,EAAK,KAAK,KAAKS,EAAKmD,EAAG,EAAK,EAClCrD,EAAOA,EAAM,KAAK,KAAKE,EAAKoD,EAAG,EAAK,EACpCtD,EAAOA,EAAM,KAAK,KAAKG,EAAKkD,EAAG,EAAK,EACpCxE,EAAMA,EAAK,KAAK,KAAKsB,EAAKmD,EAAG,EAAK,EAClC,IAAIc,IAAQ1H,EAAI+C,EAAM,KAAOO,EAAM,OAAW,IAAO,EACrDtD,GAAOmC,GAAMmB,IAAQ,IAAO,IAAMoE,KAAO,IAAO,EAChDA,IAAM,SAEN3E,EAAK,KAAK,KAAKiC,GAAKM,EAAG,EACvBhC,EAAM,KAAK,KAAK0B,GAAKO,EAAG,EACxBjC,EAAOA,EAAM,KAAK,KAAK2B,GAAKK,EAAG,EAAK,EACpCnD,EAAK,KAAK,KAAK8C,GAAKM,EAAG,EACvBxC,EAAMA,EAAK,KAAK,KAAK8B,EAAKY,EAAG,EAAK,EAClCnC,EAAOA,EAAM,KAAK,KAAKuB,EAAKa,EAAG,EAAK,EACpCpC,EAAOA,EAAM,KAAK,KAAKwB,GAAKW,EAAG,EAAK,EACpCtD,EAAMA,EAAK,KAAK,KAAK2C,GAAKY,EAAG,EAAK,EAClC3C,EAAMA,EAAK,KAAK,KAAK2B,GAAKkB,EAAG,EAAK,EAClCtC,EAAOA,EAAM,KAAK,KAAKoB,GAAKmB,EAAG,EAAK,EACpCvC,EAAOA,EAAM,KAAK,KAAKqB,EAAKiB,EAAG,EAAK,EACpCzD,EAAMA,EAAK,KAAK,KAAKwC,EAAKkB,EAAG,EAAK,EAClC9C,EAAMA,EAAK,KAAK,KAAKwB,GAAKwB,EAAG,EAAK,EAClCzC,EAAOA,EAAM,KAAK,KAAKiB,GAAKyB,EAAG,EAAK,EACpC1C,EAAOA,EAAM,KAAK,KAAKkB,GAAKuB,EAAG,EAAK,EACpC5D,EAAMA,EAAK,KAAK,KAAKqC,GAAKwB,EAAG,EAAK,EAClCjD,EAAMA,EAAK,KAAK,KAAKqB,GAAK8B,EAAG,EAAK,EAClC5C,EAAOA,EAAM,KAAK,KAAKc,GAAK+B,EAAG,EAAK,EACpC7C,EAAOA,EAAM,KAAK,KAAKe,GAAK6B,EAAG,EAAK,EACpC/D,EAAMA,EAAK,KAAK,KAAKkC,GAAK8B,EAAG,EAAK,EAClCpD,EAAMA,EAAK,KAAK,KAAKkB,EAAKoC,EAAG,EAAK,EAClC/C,EAAOA,EAAM,KAAK,KAAKW,EAAKqC,EAAG,EAAK,EACpChD,EAAOA,EAAM,KAAK,KAAKY,GAAKmC,EAAG,EAAK,EACpClE,EAAMA,EAAK,KAAK,KAAK+B,GAAKoC,EAAG,EAAK,EAClCvD,EAAMA,EAAK,KAAK,KAAKe,EAAK0C,EAAG,EAAK,EAClClD,EAAOA,EAAM,KAAK,KAAKQ,EAAK2C,EAAG,EAAK,EACpCnD,EAAOA,EAAM,KAAK,KAAKS,EAAKyC,EAAG,EAAK,EACpCrE,EAAMA,EAAK,KAAK,KAAK4B,EAAK0C,EAAG,EAAK,EAClC1D,EAAMA,EAAK,KAAK,KAAKY,EAAKgD,EAAG,EAAK,EAClCrD,EAAOA,EAAM,KAAK,KAAKK,EAAKiD,EAAG,EAAK,EACpCtD,EAAOA,EAAM,KAAK,KAAKM,EAAK+C,EAAG,EAAK,EACpCxE,EAAMA,EAAK,KAAK,KAAKyB,EAAKgD,EAAG,EAAK,EAClC7D,EAAMA,EAAK,KAAK,KAAKS,EAAKsD,EAAG,EAAK,EAClCxD,EAAOA,EAAM,KAAK,KAAKE,EAAKuD,EAAG,EAAK,EACpCzD,EAAOA,EAAM,KAAK,KAAKG,EAAKqD,EAAG,EAAK,EACpC3E,EAAMA,EAAK,KAAK,KAAKsB,EAAKsD,EAAG,EAAK,EAClC,IAAIY,IAAQ3H,EAAI+C,EAAM,KAAOO,EAAM,OAAW,IAAO,EACrDtD,GAAOmC,GAAMmB,IAAQ,IAAO,IAAMqE,KAAO,IAAO,EAChDA,IAAM,SAEN5E,EAAK,KAAK,KAAKoC,EAAKG,EAAG,EACvBhC,EAAM,KAAK,KAAK6B,EAAKI,EAAG,EACxBjC,EAAOA,EAAM,KAAK,KAAK8B,EAAKE,EAAG,EAAK,EACpCnD,EAAK,KAAK,KAAKiD,EAAKG,EAAG,EACvBxC,EAAMA,EAAK,KAAK,KAAKiC,GAAKS,EAAG,EAAK,EAClCnC,EAAOA,EAAM,KAAK,KAAK0B,GAAKU,EAAG,EAAK,EACpCpC,EAAOA,EAAM,KAAK,KAAK2B,GAAKQ,EAAG,EAAK,EACpCtD,EAAMA,EAAK,KAAK,KAAK8C,GAAKS,EAAG,EAAK,EAClC3C,EAAMA,EAAK,KAAK,KAAK8B,EAAKe,EAAG,EAAK,EAClCtC,EAAOA,EAAM,KAAK,KAAKuB,EAAKgB,EAAG,EAAK,EACpCvC,EAAOA,EAAM,KAAK,KAAKwB,GAAKc,EAAG,EAAK,EACpCzD,EAAMA,EAAK,KAAK,KAAK2C,GAAKe,EAAG,EAAK,EAClC9C,EAAMA,EAAK,KAAK,KAAK2B,GAAKqB,EAAG,EAAK,EAClCzC,EAAOA,EAAM,KAAK,KAAKoB,GAAKsB,EAAG,EAAK,EACpC1C,EAAOA,EAAM,KAAK,KAAKqB,EAAKoB,EAAG,EAAK,EACpC5D,EAAMA,EAAK,KAAK,KAAKwC,EAAKqB,EAAG,EAAK,EAClCjD,EAAMA,EAAK,KAAK,KAAKwB,GAAK2B,EAAG,EAAK,EAClC5C,EAAOA,EAAM,KAAK,KAAKiB,GAAK4B,EAAG,EAAK,EACpC7C,EAAOA,EAAM,KAAK,KAAKkB,GAAK0B,EAAG,EAAK,EACpC/D,EAAMA,EAAK,KAAK,KAAKqC,GAAK2B,EAAG,EAAK,EAClCpD,EAAMA,EAAK,KAAK,KAAKqB,GAAKiC,EAAG,EAAK,EAClC/C,EAAOA,EAAM,KAAK,KAAKc,GAAKkC,EAAG,EAAK,EACpChD,EAAOA,EAAM,KAAK,KAAKe,GAAKgC,EAAG,EAAK,EACpClE,EAAMA,EAAK,KAAK,KAAKkC,GAAKiC,EAAG,EAAK,EAClCvD,EAAMA,EAAK,KAAK,KAAKkB,EAAKuC,EAAG,EAAK,EAClClD,EAAOA,EAAM,KAAK,KAAKW,EAAKwC,EAAG,EAAK,EACpCnD,EAAOA,EAAM,KAAK,KAAKY,GAAKsC,EAAG,EAAK,EACpCrE,EAAMA,EAAK,KAAK,KAAK+B,GAAKuC,EAAG,EAAK,EAClC1D,EAAMA,EAAK,KAAK,KAAKe,EAAK6C,EAAG,EAAK,EAClCrD,EAAOA,EAAM,KAAK,KAAKQ,EAAK8C,EAAG,EAAK,EACpCtD,EAAOA,EAAM,KAAK,KAAKS,EAAK4C,EAAG,EAAK,EACpCxE,EAAMA,EAAK,KAAK,KAAK4B,EAAK6C,EAAG,EAAK,EAClC7D,EAAMA,EAAK,KAAK,KAAKY,EAAKmD,EAAG,EAAK,EAClCxD,EAAOA,EAAM,KAAK,KAAKK,EAAKoD,EAAG,EAAK,EACpCzD,EAAOA,EAAM,KAAK,KAAKM,EAAKkD,EAAG,EAAK,EACpC3E,EAAMA,EAAK,KAAK,KAAKyB,EAAKmD,EAAG,EAAK,EAClChE,EAAMA,EAAK,KAAK,KAAKS,EAAKyD,EAAG,EAAK,EAClC3D,EAAOA,EAAM,KAAK,KAAKE,EAAK0D,EAAG,EAAK,EACpC5D,EAAOA,EAAM,KAAK,KAAKG,EAAKwD,EAAG,EAAK,EACpC9E,EAAMA,EAAK,KAAK,KAAKsB,EAAKyD,EAAG,EAAK,EAClC,IAAIU,IAAQ5H,EAAI+C,EAAM,KAAOO,EAAM,OAAW,IAAO,EACrDtD,GAAOmC,GAAMmB,IAAQ,IAAO,IAAMsE,KAAO,IAAO,EAChDA,IAAM,SAEN7E,EAAK,KAAK,KAAKoC,EAAKM,EAAG,EACvBnC,EAAM,KAAK,KAAK6B,EAAKO,EAAG,EACxBpC,EAAOA,EAAM,KAAK,KAAK8B,EAAKK,EAAG,EAAK,EACpCtD,EAAK,KAAK,KAAKiD,EAAKM,EAAG,EACvB3C,EAAMA,EAAK,KAAK,KAAKiC,GAAKY,EAAG,EAAK,EAClCtC,EAAOA,EAAM,KAAK,KAAK0B,GAAKa,EAAG,EAAK,EACpCvC,EAAOA,EAAM,KAAK,KAAK2B,GAAKW,EAAG,EAAK,EACpCzD,EAAMA,EAAK,KAAK,KAAK8C,GAAKY,EAAG,EAAK,EAClC9C,EAAMA,EAAK,KAAK,KAAK8B,EAAKkB,EAAG,EAAK,EAClCzC,EAAOA,EAAM,KAAK,KAAKuB,EAAKmB,EAAG,EAAK,EACpC1C,EAAOA,EAAM,KAAK,KAAKwB,GAAKiB,EAAG,EAAK,EACpC5D,EAAMA,EAAK,KAAK,KAAK2C,GAAKkB,EAAG,EAAK,EAClCjD,EAAMA,EAAK,KAAK,KAAK2B,GAAKwB,EAAG,EAAK,EAClC5C,EAAOA,EAAM,KAAK,KAAKoB,GAAKyB,EAAG,EAAK,EACpC7C,EAAOA,EAAM,KAAK,KAAKqB,EAAKuB,EAAG,EAAK,EACpC/D,EAAMA,EAAK,KAAK,KAAKwC,EAAKwB,EAAG,EAAK,EAClCpD,EAAMA,EAAK,KAAK,KAAKwB,GAAK8B,EAAG,EAAK,EAClC/C,EAAOA,EAAM,KAAK,KAAKiB,GAAK+B,EAAG,EAAK,EACpChD,EAAOA,EAAM,KAAK,KAAKkB,GAAK6B,EAAG,EAAK,EACpClE,EAAMA,EAAK,KAAK,KAAKqC,GAAK8B,EAAG,EAAK,EAClCvD,EAAMA,EAAK,KAAK,KAAKqB,GAAKoC,EAAG,EAAK,EAClClD,EAAOA,EAAM,KAAK,KAAKc,GAAKqC,EAAG,EAAK,EACpCnD,EAAOA,EAAM,KAAK,KAAKe,GAAKmC,EAAG,EAAK,EACpCrE,EAAMA,EAAK,KAAK,KAAKkC,GAAKoC,EAAG,EAAK,EAClC1D,EAAMA,EAAK,KAAK,KAAKkB,EAAK0C,EAAG,EAAK,EAClCrD,EAAOA,EAAM,KAAK,KAAKW,EAAK2C,EAAG,EAAK,EACpCtD,EAAOA,EAAM,KAAK,KAAKY,GAAKyC,EAAG,EAAK,EACpCxE,EAAMA,EAAK,KAAK,KAAK+B,GAAK0C,EAAG,EAAK,EAClC7D,EAAMA,EAAK,KAAK,KAAKe,EAAKgD,EAAG,EAAK,EAClCxD,EAAOA,EAAM,KAAK,KAAKQ,EAAKiD,EAAG,EAAK,EACpCzD,EAAOA,EAAM,KAAK,KAAKS,EAAK+C,EAAG,EAAK,EACpC3E,EAAMA,EAAK,KAAK,KAAK4B,EAAKgD,EAAG,EAAK,EAClChE,EAAMA,EAAK,KAAK,KAAKY,EAAKsD,EAAG,EAAK,EAClC3D,EAAOA,EAAM,KAAK,KAAKK,EAAKuD,EAAG,EAAK,EACpC5D,EAAOA,EAAM,KAAK,KAAKM,EAAKqD,EAAG,EAAK,EACpC9E,EAAMA,EAAK,KAAK,KAAKyB,EAAKsD,EAAG,EAAK,EAClC,IAAIW,IAAS7H,EAAI+C,EAAM,KAAOO,EAAM,OAAW,IAAO,EACtDtD,GAAOmC,GAAMmB,IAAQ,IAAO,IAAMuE,KAAQ,IAAO,EACjDA,IAAO,SAEP9E,EAAK,KAAK,KAAKoC,EAAKS,EAAG,EACvBtC,EAAM,KAAK,KAAK6B,EAAKU,EAAG,EACxBvC,EAAOA,EAAM,KAAK,KAAK8B,EAAKQ,EAAG,EAAK,EACpCzD,EAAK,KAAK,KAAKiD,EAAKS,EAAG,EACvB9C,EAAMA,EAAK,KAAK,KAAKiC,GAAKe,EAAG,EAAK,EAClCzC,EAAOA,EAAM,KAAK,KAAK0B,GAAKgB,EAAG,EAAK,EACpC1C,EAAOA,EAAM,KAAK,KAAK2B,GAAKc,EAAG,EAAK,EACpC5D,EAAMA,EAAK,KAAK,KAAK8C,GAAKe,EAAG,EAAK,EAClCjD,EAAMA,EAAK,KAAK,KAAK8B,EAAKqB,EAAG,EAAK,EAClC5C,EAAOA,EAAM,KAAK,KAAKuB,EAAKsB,EAAG,EAAK,EACpC7C,EAAOA,EAAM,KAAK,KAAKwB,GAAKoB,EAAG,EAAK,EACpC/D,EAAMA,EAAK,KAAK,KAAK2C,GAAKqB,EAAG,EAAK,EAClCpD,EAAMA,EAAK,KAAK,KAAK2B,GAAK2B,EAAG,EAAK,EAClC/C,EAAOA,EAAM,KAAK,KAAKoB,GAAK4B,EAAG,EAAK,EACpChD,EAAOA,EAAM,KAAK,KAAKqB,EAAK0B,EAAG,EAAK,EACpClE,EAAMA,EAAK,KAAK,KAAKwC,EAAK2B,EAAG,EAAK,EAClCvD,EAAMA,EAAK,KAAK,KAAKwB,GAAKiC,EAAG,EAAK,EAClClD,EAAOA,EAAM,KAAK,KAAKiB,GAAKkC,EAAG,EAAK,EACpCnD,EAAOA,EAAM,KAAK,KAAKkB,GAAKgC,EAAG,EAAK,EACpCrE,EAAMA,EAAK,KAAK,KAAKqC,GAAKiC,EAAG,EAAK,EAClC1D,EAAMA,EAAK,KAAK,KAAKqB,GAAKuC,EAAG,EAAK,EAClCrD,EAAOA,EAAM,KAAK,KAAKc,GAAKwC,EAAG,EAAK,EACpCtD,EAAOA,EAAM,KAAK,KAAKe,GAAKsC,EAAG,EAAK,EACpCxE,EAAMA,EAAK,KAAK,KAAKkC,GAAKuC,EAAG,EAAK,EAClC7D,EAAMA,EAAK,KAAK,KAAKkB,EAAK6C,EAAG,EAAK,EAClCxD,EAAOA,EAAM,KAAK,KAAKW,EAAK8C,EAAG,EAAK,EACpCzD,EAAOA,EAAM,KAAK,KAAKY,GAAK4C,EAAG,EAAK,EACpC3E,EAAMA,EAAK,KAAK,KAAK+B,GAAK6C,EAAG,EAAK,EAClChE,EAAMA,EAAK,KAAK,KAAKe,EAAKmD,EAAG,EAAK,EAClC3D,EAAOA,EAAM,KAAK,KAAKQ,EAAKoD,EAAG,EAAK,EACpC5D,EAAOA,EAAM,KAAK,KAAKS,EAAKkD,EAAG,EAAK,EACpC9E,EAAMA,EAAK,KAAK,KAAK4B,EAAKmD,EAAG,EAAK,EAClC,IAAIY,IAAS9H,EAAI+C,EAAM,KAAOO,EAAM,OAAW,IAAO,EACtDtD,GAAOmC,GAAMmB,IAAQ,IAAO,IAAMwE,KAAQ,IAAO,EACjDA,IAAO,SAEP/E,EAAK,KAAK,KAAKoC,EAAKY,EAAG,EACvBzC,EAAM,KAAK,KAAK6B,EAAKa,EAAG,EACxB1C,EAAOA,EAAM,KAAK,KAAK8B,EAAKW,EAAG,EAAK,EACpC5D,EAAK,KAAK,KAAKiD,EAAKY,EAAG,EACvBjD,EAAMA,EAAK,KAAK,KAAKiC,GAAKkB,EAAG,EAAK,EAClC5C,EAAOA,EAAM,KAAK,KAAK0B,GAAKmB,EAAG,EAAK,EACpC7C,EAAOA,EAAM,KAAK,KAAK2B,GAAKiB,EAAG,EAAK,EACpC/D,EAAMA,EAAK,KAAK,KAAK8C,GAAKkB,EAAG,EAAK,EAClCpD,EAAMA,EAAK,KAAK,KAAK8B,EAAKwB,EAAG,EAAK,EAClC/C,EAAOA,EAAM,KAAK,KAAKuB,EAAKyB,EAAG,EAAK,EACpChD,EAAOA,EAAM,KAAK,KAAKwB,GAAKuB,EAAG,EAAK,EACpClE,EAAMA,EAAK,KAAK,KAAK2C,GAAKwB,EAAG,EAAK,EAClCvD,EAAMA,EAAK,KAAK,KAAK2B,GAAK8B,EAAG,EAAK,EAClClD,EAAOA,EAAM,KAAK,KAAKoB,GAAK+B,EAAG,EAAK,EACpCnD,EAAOA,EAAM,KAAK,KAAKqB,EAAK6B,EAAG,EAAK,EACpCrE,EAAMA,EAAK,KAAK,KAAKwC,EAAK8B,EAAG,EAAK,EAClC1D,EAAMA,EAAK,KAAK,KAAKwB,GAAKoC,EAAG,EAAK,EAClCrD,EAAOA,EAAM,KAAK,KAAKiB,GAAKqC,EAAG,EAAK,EACpCtD,EAAOA,EAAM,KAAK,KAAKkB,GAAKmC,EAAG,EAAK,EACpCxE,EAAMA,EAAK,KAAK,KAAKqC,GAAKoC,EAAG,EAAK,EAClC7D,EAAMA,EAAK,KAAK,KAAKqB,GAAK0C,EAAG,EAAK,EAClCxD,EAAOA,EAAM,KAAK,KAAKc,GAAK2C,EAAG,EAAK,EACpCzD,EAAOA,EAAM,KAAK,KAAKe,GAAKyC,EAAG,EAAK,EACpC3E,EAAMA,EAAK,KAAK,KAAKkC,GAAK0C,EAAG,EAAK,EAClChE,EAAMA,EAAK,KAAK,KAAKkB,EAAKgD,EAAG,EAAK,EAClC3D,EAAOA,EAAM,KAAK,KAAKW,EAAKiD,EAAG,EAAK,EACpC5D,EAAOA,EAAM,KAAK,KAAKY,GAAK+C,EAAG,EAAK,EACpC9E,EAAMA,EAAK,KAAK,KAAK+B,GAAKgD,EAAG,EAAK,EAClC,IAAIa,IAAS/H,EAAI+C,EAAM,KAAOO,EAAM,OAAW,IAAO,EACtDtD,GAAOmC,GAAMmB,IAAQ,IAAO,IAAMyE,KAAQ,IAAO,EACjDA,IAAO,SAEPhF,EAAK,KAAK,KAAKoC,EAAKe,EAAG,EACvB5C,EAAM,KAAK,KAAK6B,EAAKgB,EAAG,EACxB7C,EAAOA,EAAM,KAAK,KAAK8B,EAAKc,EAAG,EAAK,EACpC/D,EAAK,KAAK,KAAKiD,EAAKe,EAAG,EACvBpD,EAAMA,EAAK,KAAK,KAAKiC,GAAKqB,EAAG,EAAK,EAClC/C,EAAOA,EAAM,KAAK,KAAK0B,GAAKsB,EAAG,EAAK,EACpChD,EAAOA,EAAM,KAAK,KAAK2B,GAAKoB,EAAG,EAAK,EACpClE,EAAMA,EAAK,KAAK,KAAK8C,GAAKqB,EAAG,EAAK,EAClCvD,EAAMA,EAAK,KAAK,KAAK8B,EAAK2B,EAAG,EAAK,EAClClD,EAAOA,EAAM,KAAK,KAAKuB,EAAK4B,EAAG,EAAK,EACpCnD,EAAOA,EAAM,KAAK,KAAKwB,GAAK0B,EAAG,EAAK,EACpCrE,EAAMA,EAAK,KAAK,KAAK2C,GAAK2B,EAAG,EAAK,EAClC1D,EAAMA,EAAK,KAAK,KAAK2B,GAAKiC,EAAG,EAAK,EAClCrD,EAAOA,EAAM,KAAK,KAAKoB,GAAKkC,EAAG,EAAK,EACpCtD,EAAOA,EAAM,KAAK,KAAKqB,EAAKgC,EAAG,EAAK,EACpCxE,EAAMA,EAAK,KAAK,KAAKwC,EAAKiC,EAAG,EAAK,EAClC7D,EAAMA,EAAK,KAAK,KAAKwB,GAAKuC,EAAG,EAAK,EAClCxD,EAAOA,EAAM,KAAK,KAAKiB,GAAKwC,EAAG,EAAK,EACpCzD,EAAOA,EAAM,KAAK,KAAKkB,GAAKsC,EAAG,EAAK,EACpC3E,EAAMA,EAAK,KAAK,KAAKqC,GAAKuC,EAAG,EAAK,EAClChE,EAAMA,EAAK,KAAK,KAAKqB,GAAK6C,EAAG,EAAK,EAClC3D,EAAOA,EAAM,KAAK,KAAKc,GAAK8C,EAAG,EAAK,EACpC5D,EAAOA,EAAM,KAAK,KAAKe,GAAK4C,EAAG,EAAK,EACpC9E,EAAMA,EAAK,KAAK,KAAKkC,GAAK6C,EAAG,EAAK,EAClC,IAAIc,IAAShI,EAAI+C,EAAM,KAAOO,EAAM,OAAW,IAAO,EACtDtD,GAAOmC,GAAMmB,IAAQ,IAAO,IAAM0E,KAAQ,IAAO,EACjDA,IAAO,SAEPjF,EAAK,KAAK,KAAKoC,EAAKkB,EAAG,EACvB/C,EAAM,KAAK,KAAK6B,EAAKmB,EAAG,EACxBhD,EAAOA,EAAM,KAAK,KAAK8B,EAAKiB,EAAG,EAAK,EACpClE,EAAK,KAAK,KAAKiD,EAAKkB,EAAG,EACvBvD,EAAMA,EAAK,KAAK,KAAKiC,GAAKwB,EAAG,EAAK,EAClClD,EAAOA,EAAM,KAAK,KAAK0B,GAAKyB,EAAG,EAAK,EACpCnD,EAAOA,EAAM,KAAK,KAAK2B,GAAKuB,EAAG,EAAK,EACpCrE,EAAMA,EAAK,KAAK,KAAK8C,GAAKwB,EAAG,EAAK,EAClC1D,EAAMA,EAAK,KAAK,KAAK8B,EAAK8B,EAAG,EAAK,EAClCrD,EAAOA,EAAM,KAAK,KAAKuB,EAAK+B,EAAG,EAAK,EACpCtD,EAAOA,EAAM,KAAK,KAAKwB,GAAK6B,EAAG,EAAK,EACpCxE,EAAMA,EAAK,KAAK,KAAK2C,GAAK8B,EAAG,EAAK,EAClC7D,EAAMA,EAAK,KAAK,KAAK2B,GAAKoC,EAAG,EAAK,EAClCxD,EAAOA,EAAM,KAAK,KAAKoB,GAAKqC,EAAG,EAAK,EACpCzD,EAAOA,EAAM,KAAK,KAAKqB,EAAKmC,EAAG,EAAK,EACpC3E,EAAMA,EAAK,KAAK,KAAKwC,EAAKoC,EAAG,EAAK,EAClChE,EAAMA,EAAK,KAAK,KAAKwB,GAAK0C,EAAG,EAAK,EAClC3D,EAAOA,EAAM,KAAK,KAAKiB,GAAK2C,EAAG,EAAK,EACpC5D,EAAOA,EAAM,KAAK,KAAKkB,GAAKyC,EAAG,EAAK,EACpC9E,EAAMA,EAAK,KAAK,KAAKqC,GAAK0C,EAAG,EAAK,EAClC,IAAIe,IAASjI,EAAI+C,EAAM,KAAOO,EAAM,OAAW,IAAO,EACtDtD,GAAOmC,GAAMmB,IAAQ,IAAO,IAAM2E,KAAQ,IAAO,EACjDA,IAAO,SAEPlF,EAAK,KAAK,KAAKoC,EAAKqB,EAAG,EACvBlD,EAAM,KAAK,KAAK6B,EAAKsB,EAAG,EACxBnD,EAAOA,EAAM,KAAK,KAAK8B,EAAKoB,EAAG,EAAK,EACpCrE,EAAK,KAAK,KAAKiD,EAAKqB,EAAG,EACvB1D,EAAMA,EAAK,KAAK,KAAKiC,GAAK2B,EAAG,EAAK,EAClCrD,EAAOA,EAAM,KAAK,KAAK0B,GAAK4B,EAAG,EAAK,EACpCtD,EAAOA,EAAM,KAAK,KAAK2B,GAAK0B,EAAG,EAAK,EACpCxE,EAAMA,EAAK,KAAK,KAAK8C,GAAK2B,EAAG,EAAK,EAClC7D,EAAMA,EAAK,KAAK,KAAK8B,EAAKiC,EAAG,EAAK,EAClCxD,EAAOA,EAAM,KAAK,KAAKuB,EAAKkC,EAAG,EAAK,EACpCzD,EAAOA,EAAM,KAAK,KAAKwB,GAAKgC,EAAG,EAAK,EACpC3E,EAAMA,EAAK,KAAK,KAAK2C,GAAKiC,EAAG,EAAK,EAClChE,EAAMA,EAAK,KAAK,KAAK2B,GAAKuC,EAAG,EAAK,EAClC3D,EAAOA,EAAM,KAAK,KAAKoB,GAAKwC,EAAG,EAAK,EACpC5D,EAAOA,EAAM,KAAK,KAAKqB,EAAKsC,EAAG,EAAK,EACpC9E,EAAMA,EAAK,KAAK,KAAKwC,EAAKuC,EAAG,EAAK,EAClC,IAAIgB,IAASlI,EAAI+C,EAAM,KAAOO,EAAM,OAAW,IAAO,EACtDtD,GAAOmC,GAAMmB,IAAQ,IAAO,IAAM4E,KAAQ,IAAO,EACjDA,IAAO,SAEPnF,EAAK,KAAK,KAAKoC,EAAKwB,EAAG,EACvBrD,EAAM,KAAK,KAAK6B,EAAKyB,EAAG,EACxBtD,EAAOA,EAAM,KAAK,KAAK8B,EAAKuB,EAAG,EAAK,EACpCxE,EAAK,KAAK,KAAKiD,EAAKwB,EAAG,EACvB7D,EAAMA,EAAK,KAAK,KAAKiC,GAAK8B,EAAG,EAAK,EAClCxD,EAAOA,EAAM,KAAK,KAAK0B,GAAK+B,EAAG,EAAK,EACpCzD,EAAOA,EAAM,KAAK,KAAK2B,GAAK6B,EAAG,EAAK,EACpC3E,EAAMA,EAAK,KAAK,KAAK8C,GAAK8B,EAAG,EAAK,EAClChE,EAAMA,EAAK,KAAK,KAAK8B,EAAKoC,EAAG,EAAK,EAClC3D,EAAOA,EAAM,KAAK,KAAKuB,EAAKqC,EAAG,EAAK,EACpC5D,EAAOA,EAAM,KAAK,KAAKwB,GAAKmC,EAAG,EAAK,EACpC9E,EAAMA,EAAK,KAAK,KAAK2C,GAAKoC,EAAG,EAAK,EAClC,IAAIiB,IAASnI,EAAI+C,EAAM,KAAOO,EAAM,OAAW,IAAO,EACtDtD,GAAOmC,GAAMmB,IAAQ,IAAO,IAAM6E,KAAQ,IAAO,EACjDA,IAAO,SAEPpF,EAAK,KAAK,KAAKoC,EAAK2B,EAAG,EACvBxD,EAAM,KAAK,KAAK6B,EAAK4B,EAAG,EACxBzD,EAAOA,EAAM,KAAK,KAAK8B,EAAK0B,EAAG,EAAK,EACpC3E,EAAK,KAAK,KAAKiD,EAAK2B,EAAG,EACvBhE,EAAMA,EAAK,KAAK,KAAKiC,GAAKiC,EAAG,EAAK,EAClC3D,EAAOA,EAAM,KAAK,KAAK0B,GAAKkC,EAAG,EAAK,EACpC5D,EAAOA,EAAM,KAAK,KAAK2B,GAAKgC,EAAG,EAAK,EACpC9E,EAAMA,EAAK,KAAK,KAAK8C,GAAKiC,EAAG,EAAK,EAClC,IAAIkB,IAASpI,EAAI+C,EAAM,KAAOO,EAAM,OAAW,IAAO,EACtDtD,GAAOmC,GAAMmB,IAAQ,IAAO,IAAM8E,KAAQ,IAAO,EACjDA,IAAO,SAEPrF,EAAK,KAAK,KAAKoC,EAAK8B,EAAG,EACvB3D,EAAM,KAAK,KAAK6B,EAAK+B,EAAG,EACxB5D,EAAOA,EAAM,KAAK,KAAK8B,EAAK6B,EAAG,EAAK,EACpC9E,EAAK,KAAK,KAAKiD,EAAK8B,EAAG,EACvB,IAAImB,IAASrI,EAAI+C,EAAM,KAAOO,EAAM,OAAW,IAAO,EACtD,OAAAtD,GAAOmC,GAAMmB,IAAQ,IAAO,IAAM+E,KAAQ,IAAO,EACjDA,IAAO,SACPhF,EAAE,GAAK8D,GACP9D,EAAE,GAAK+D,GACP/D,EAAE,GAAKgE,GACPhE,EAAE,GAAKiE,GACPjE,EAAE,GAAKkE,GACPlE,EAAE,GAAKmE,GACPnE,EAAE,GAAKoE,GACPpE,EAAE,GAAKqE,GACPrE,EAAE,GAAKsE,GACPtE,EAAE,GAAKuE,GACPvE,EAAE,IAAMwE,GACRxE,EAAE,IAAMyE,GACRzE,EAAE,IAAM0E,GACR1E,EAAE,IAAM2E,GACR3E,EAAE,IAAM4E,GACR5E,EAAE,IAAM6E,GACR7E,EAAE,IAAM8E,GACR9E,EAAE,IAAM+E,GACR/E,EAAE,IAAMgF,GACJrI,IAAM,IACRqD,EAAE,IAAMrD,EACRsB,EAAI,UAECA,CACT,EAGK,KAAK,OACR8B,EAAcP,GAGhB,SAASyF,EAAUxF,EAAMzD,EAAKiC,EAAK,CACjCA,EAAI,SAAWjC,EAAI,SAAWyD,EAAK,SACnCxB,EAAI,OAASwB,EAAK,OAASzD,EAAI,OAI/B,QAFIkC,EAAQ,EACRgH,EAAU,EACLvF,EAAI,EAAGA,EAAI1B,EAAI,OAAS,EAAG0B,IAAK,CAGvC,IAAIC,EAASsF,EACbA,EAAU,EAGV,QAFIrF,EAAQ3B,EAAQ,SAChB4B,EAAO,KAAK,IAAIH,EAAG3D,EAAI,OAAS,CAAC,EAC5BK,EAAI,KAAK,IAAI,EAAGsD,EAAIF,EAAK,OAAS,CAAC,EAAGpD,GAAKyD,EAAMzD,IAAK,CAC7D,IAAID,EAAIuD,EAAItD,EACR+C,EAAIK,EAAK,MAAMrD,GAAK,EACpB8C,EAAIlD,EAAI,MAAMK,GAAK,EACnBS,EAAIsC,EAAIF,EAERQ,EAAK5C,EAAI,SACb8C,EAAUA,GAAW9C,EAAI,SAAa,GAAM,EAC5C4C,EAAMA,EAAKG,EAAS,EACpBA,EAAQH,EAAK,SACbE,EAAUA,GAAUF,IAAO,IAAO,EAElCwF,GAAWtF,IAAW,GACtBA,GAAU,QACZ,CACA3B,EAAI,MAAM0B,GAAKE,EACf3B,EAAQ0B,EACRA,EAASsF,CACX,CACA,OAAIhH,IAAU,EACZD,EAAI,MAAM0B,GAAKzB,EAEfD,EAAI,SAGCA,EAAI,MAAM,CACnB,CAEA,SAASkH,EAAY1F,EAAMzD,EAAKiC,EAAK,CACnC,IAAImH,EAAO,IAAIC,EACf,OAAOD,EAAK,KAAK3F,EAAMzD,EAAKiC,CAAG,CACjC,CAEAtC,EAAG,UAAU,MAAQ,SAAgBK,EAAKiC,EAAK,CAC7C,IAAIU,EACAvB,EAAM,KAAK,OAASpB,EAAI,OAC5B,OAAI,KAAK,SAAW,IAAMA,EAAI,SAAW,GACvC2C,EAAMoB,EAAY,KAAM/D,EAAKiC,CAAG,EACvBb,EAAM,GACfuB,EAAMa,EAAW,KAAMxD,EAAKiC,CAAG,EACtBb,EAAM,KACfuB,EAAMsG,EAAS,KAAMjJ,EAAKiC,CAAG,EAE7BU,EAAMwG,EAAW,KAAMnJ,EAAKiC,CAAG,EAG1BU,CACT,EAKA,SAAS0G,EAAMC,EAAGC,EAAG,CACnB,KAAK,EAAID,EACT,KAAK,EAAIC,CACX,CAEAF,EAAK,UAAU,QAAU,SAAkBG,EAAG,CAG5C,QAFI3G,EAAI,IAAI,MAAM2G,CAAC,EACfC,EAAI9J,EAAG,UAAU,WAAW6J,CAAC,EAAI,EAC5BpJ,EAAI,EAAGA,EAAIoJ,EAAGpJ,IACrByC,EAAEzC,GAAK,KAAK,OAAOA,EAAGqJ,EAAGD,CAAC,EAG5B,OAAO3G,CACT,EAGAwG,EAAK,UAAU,OAAS,SAAiBC,EAAGG,EAAGD,EAAG,CAChD,GAAIF,IAAM,GAAKA,IAAME,EAAI,EAAG,OAAOF,EAGnC,QADII,EAAK,EACAtJ,EAAI,EAAGA,EAAIqJ,EAAGrJ,IACrBsJ,IAAOJ,EAAI,IAAOG,EAAIrJ,EAAI,EAC1BkJ,IAAM,EAGR,OAAOI,CACT,EAIAL,EAAK,UAAU,QAAU,SAAkBM,EAAKC,EAAKC,EAAKC,EAAMC,EAAMP,EAAG,CACvE,QAASpJ,EAAI,EAAGA,EAAIoJ,EAAGpJ,IACrB0J,EAAK1J,GAAKwJ,EAAID,EAAIvJ,IAClB2J,EAAK3J,GAAKyJ,EAAIF,EAAIvJ,GAEtB,EAEAiJ,EAAK,UAAU,UAAY,SAAoBO,EAAKC,EAAKC,EAAMC,EAAMP,EAAGG,EAAK,CAC3E,KAAK,QAAQA,EAAKC,EAAKC,EAAKC,EAAMC,EAAMP,CAAC,EAEzC,QAASQ,EAAI,EAAGA,EAAIR,EAAGQ,IAAM,EAM3B,QALIP,EAAIO,GAAK,EAETC,EAAQ,KAAK,IAAI,EAAI,KAAK,GAAKR,CAAC,EAChCS,EAAQ,KAAK,IAAI,EAAI,KAAK,GAAKT,CAAC,EAE3BU,EAAI,EAAGA,EAAIX,EAAGW,GAAKV,EAI1B,QAHIW,EAASH,EACTI,EAASH,EAEJ7J,EAAI,EAAGA,EAAI2J,EAAG3J,IAAK,CAC1B,IAAIiK,EAAKR,EAAKK,EAAI9J,GACdkK,EAAKR,EAAKI,EAAI9J,GAEdmK,GAAKV,EAAKK,EAAI9J,EAAI2J,GAClBS,EAAKV,EAAKI,EAAI9J,EAAI2J,GAElBU,EAAKN,EAASI,GAAKH,EAASI,EAEhCA,EAAKL,EAASK,EAAKJ,EAASG,GAC5BA,GAAKE,EAELZ,EAAKK,EAAI9J,GAAKiK,EAAKE,GACnBT,EAAKI,EAAI9J,GAAKkK,EAAKE,EAEnBX,EAAKK,EAAI9J,EAAI2J,GAAKM,EAAKE,GACvBT,EAAKI,EAAI9J,EAAI2J,GAAKO,EAAKE,EAGnBpK,IAAMoJ,IACRiB,EAAKT,EAAQG,EAASF,EAAQG,EAE9BA,EAASJ,EAAQI,EAASH,EAAQE,EAClCA,EAASM,EAEb,CAGN,EAEArB,EAAK,UAAU,YAAc,SAAsBsB,EAAGC,EAAG,CACvD,IAAIpB,EAAI,KAAK,IAAIoB,EAAGD,CAAC,EAAI,EACrBE,EAAMrB,EAAI,EACVpJ,EAAI,EACR,IAAKoJ,EAAIA,EAAI,EAAI,EAAGA,EAAGA,EAAIA,IAAM,EAC/BpJ,IAGF,MAAO,IAAKA,EAAI,EAAIyK,CACtB,EAEAxB,EAAK,UAAU,UAAY,SAAoBO,EAAKC,EAAKL,EAAG,CAC1D,GAAI,EAAAA,GAAK,GAET,QAASpJ,EAAI,EAAGA,EAAIoJ,EAAI,EAAGpJ,IAAK,CAC9B,IAAIyC,EAAI+G,EAAIxJ,GAEZwJ,EAAIxJ,GAAKwJ,EAAIJ,EAAIpJ,EAAI,GACrBwJ,EAAIJ,EAAIpJ,EAAI,GAAKyC,EAEjBA,EAAIgH,EAAIzJ,GAERyJ,EAAIzJ,GAAK,CAACyJ,EAAIL,EAAIpJ,EAAI,GACtByJ,EAAIL,EAAIpJ,EAAI,GAAK,CAACyC,CACpB,CACF,EAEAwG,EAAK,UAAU,aAAe,SAAuByB,EAAItB,EAAG,CAE1D,QADItH,EAAQ,EACH9B,EAAI,EAAGA,EAAIoJ,EAAI,EAAGpJ,IAAK,CAC9B,IAAIE,EAAI,KAAK,MAAMwK,EAAG,EAAI1K,EAAI,GAAKoJ,CAAC,EAAI,KACtC,KAAK,MAAMsB,EAAG,EAAI1K,GAAKoJ,CAAC,EACxBtH,EAEF4I,EAAG1K,GAAKE,EAAI,SAERA,EAAI,SACN4B,EAAQ,EAERA,EAAQ5B,EAAI,SAAY,CAE5B,CAEA,OAAOwK,CACT,EAEAzB,EAAK,UAAU,WAAa,SAAqByB,EAAI1J,EAAKwI,EAAKJ,EAAG,CAEhE,QADItH,EAAQ,EACH9B,EAAI,EAAGA,EAAIgB,EAAKhB,IACvB8B,EAAQA,GAAS4I,EAAG1K,GAAK,GAEzBwJ,EAAI,EAAIxJ,GAAK8B,EAAQ,KAAQA,EAAQA,IAAU,GAC/C0H,EAAI,EAAIxJ,EAAI,GAAK8B,EAAQ,KAAQA,EAAQA,IAAU,GAIrD,IAAK9B,EAAI,EAAIgB,EAAKhB,EAAIoJ,EAAG,EAAEpJ,EACzBwJ,EAAIxJ,GAAK,EAGXhB,EAAO8C,IAAU,CAAC,EAClB9C,GAAQ8C,EAAQ,SAAa,CAAC,CAChC,EAEAmH,EAAK,UAAU,KAAO,SAAeG,EAAG,CAEtC,QADIuB,EAAK,IAAI,MAAMvB,CAAC,EACXpJ,EAAI,EAAGA,EAAIoJ,EAAGpJ,IACrB2K,EAAG3K,GAAK,EAGV,OAAO2K,CACT,EAEA1B,EAAK,UAAU,KAAO,SAAeC,EAAGC,EAAGtH,EAAK,CAC9C,IAAIuH,EAAI,EAAI,KAAK,YAAYF,EAAE,OAAQC,EAAE,MAAM,EAE3CI,EAAM,KAAK,QAAQH,CAAC,EAEpB,EAAI,KAAK,KAAKA,CAAC,EAEfI,EAAM,IAAI,MAAMJ,CAAC,EACjBwB,EAAO,IAAI,MAAMxB,CAAC,EAClByB,EAAO,IAAI,MAAMzB,CAAC,EAElB0B,EAAO,IAAI,MAAM1B,CAAC,EAClB2B,EAAQ,IAAI,MAAM3B,CAAC,EACnB4B,EAAQ,IAAI,MAAM5B,CAAC,EAEnB6B,EAAOpJ,EAAI,MACfoJ,EAAK,OAAS7B,EAEd,KAAK,WAAWF,EAAE,MAAOA,EAAE,OAAQM,EAAKJ,CAAC,EACzC,KAAK,WAAWD,EAAE,MAAOA,EAAE,OAAQ2B,EAAM1B,CAAC,EAE1C,KAAK,UAAUI,EAAK,EAAGoB,EAAMC,EAAMzB,EAAGG,CAAG,EACzC,KAAK,UAAUuB,EAAM,EAAGC,EAAOC,EAAO5B,EAAGG,CAAG,EAE5C,QAASvJ,EAAI,EAAGA,EAAIoJ,EAAGpJ,IAAK,CAC1B,IAAIsK,EAAKM,EAAK5K,GAAK+K,EAAM/K,GAAK6K,EAAK7K,GAAKgL,EAAMhL,GAC9C6K,EAAK7K,GAAK4K,EAAK5K,GAAKgL,EAAMhL,GAAK6K,EAAK7K,GAAK+K,EAAM/K,GAC/C4K,EAAK5K,GAAKsK,CACZ,CAEA,YAAK,UAAUM,EAAMC,EAAMzB,CAAC,EAC5B,KAAK,UAAUwB,EAAMC,EAAMI,EAAM,EAAG7B,EAAGG,CAAG,EAC1C,KAAK,UAAU0B,EAAM,EAAG7B,CAAC,EACzB,KAAK,aAAa6B,EAAM7B,CAAC,EAEzBvH,EAAI,SAAWqH,EAAE,SAAWC,EAAE,SAC9BtH,EAAI,OAASqH,EAAE,OAASC,EAAE,OACnBtH,EAAI,MAAM,CACnB,EAGAtC,EAAG,UAAU,IAAM,SAAcK,EAAK,CACpC,IAAIiC,EAAM,IAAItC,EAAG,IAAI,EACrB,OAAAsC,EAAI,MAAQ,IAAI,MAAM,KAAK,OAASjC,EAAI,MAAM,EACvC,KAAK,MAAMA,EAAKiC,CAAG,CAC5B,EAGAtC,EAAG,UAAU,KAAO,SAAeK,EAAK,CACtC,IAAIiC,EAAM,IAAItC,EAAG,IAAI,EACrB,OAAAsC,EAAI,MAAQ,IAAI,MAAM,KAAK,OAASjC,EAAI,MAAM,EACvCmJ,EAAW,KAAMnJ,EAAKiC,CAAG,CAClC,EAGAtC,EAAG,UAAU,KAAO,SAAeK,EAAK,CACtC,OAAO,KAAK,MAAM,EAAE,MAAMA,EAAK,IAAI,CACrC,EAEAL,EAAG,UAAU,MAAQ,SAAgBK,EAAK,CACxCZ,EAAO,OAAOY,GAAQ,QAAQ,EAC9BZ,EAAOY,EAAM,QAAS,EAItB,QADIkC,EAAQ,EACH9B,EAAI,EAAGA,EAAI,KAAK,OAAQA,IAAK,CACpC,IAAIE,GAAK,KAAK,MAAMF,GAAK,GAAKJ,EAC1B0D,GAAMpD,EAAI,WAAc4B,EAAQ,UACpCA,IAAU,GACVA,GAAU5B,EAAI,SAAa,EAE3B4B,GAASwB,IAAO,GAChB,KAAK,MAAMtD,GAAKsD,EAAK,QACvB,CAEA,OAAIxB,IAAU,IACZ,KAAK,MAAM9B,GAAK8B,EAChB,KAAK,UAGA,IACT,EAEAvC,EAAG,UAAU,KAAO,SAAeK,EAAK,CACtC,OAAO,KAAK,MAAM,EAAE,MAAMA,CAAG,CAC/B,EAGAL,EAAG,UAAU,IAAM,UAAgB,CACjC,OAAO,KAAK,IAAI,IAAI,CACtB,EAGAA,EAAG,UAAU,KAAO,UAAiB,CACnC,OAAO,KAAK,KAAK,KAAK,MAAM,CAAC,CAC/B,EAGAA,EAAG,UAAU,IAAM,SAAcK,EAAK,CACpC,IAAIM,EAAIyC,EAAW/C,CAAG,EACtB,GAAIM,EAAE,SAAW,EAAG,OAAO,IAAIX,EAAG,CAAC,EAInC,QADIgD,EAAM,KACDvC,EAAI,EAAGA,EAAIE,EAAE,QAChBA,EAAEF,KAAO,EADeA,IAAKuC,EAAMA,EAAI,IAAI,EAC/C,CAGF,GAAI,EAAEvC,EAAIE,EAAE,OACV,QAASsC,EAAID,EAAI,IAAI,EAAGvC,EAAIE,EAAE,OAAQF,IAAKwC,EAAIA,EAAE,IAAI,EAC/CtC,EAAEF,KAAO,IAEbuC,EAAMA,EAAI,IAAIC,CAAC,GAInB,OAAOD,CACT,EAGAhD,EAAG,UAAU,OAAS,SAAiB2L,EAAM,CAC3ClM,EAAO,OAAOkM,GAAS,UAAYA,GAAQ,CAAC,EAC5C,IAAIxK,EAAIwK,EAAO,GACXtB,GAAKsB,EAAOxK,GAAK,GACjByK,EAAa,WAAe,GAAKzK,GAAQ,GAAKA,EAC9CV,EAEJ,GAAIU,IAAM,EAAG,CACX,IAAIoB,EAAQ,EAEZ,IAAK9B,EAAI,EAAGA,EAAI,KAAK,OAAQA,IAAK,CAChC,IAAIoL,EAAW,KAAK,MAAMpL,GAAKmL,EAC3B5K,GAAM,KAAK,MAAMP,GAAK,GAAKoL,GAAa1K,EAC5C,KAAK,MAAMV,GAAKO,EAAIuB,EACpBA,EAAQsJ,IAAc,GAAK1K,CAC7B,CAEIoB,IACF,KAAK,MAAM9B,GAAK8B,EAChB,KAAK,SAET,CAEA,GAAI8H,IAAM,EAAG,CACX,IAAK5J,EAAI,KAAK,OAAS,EAAGA,GAAK,EAAGA,IAChC,KAAK,MAAMA,EAAI4J,GAAK,KAAK,MAAM5J,GAGjC,IAAKA,EAAI,EAAGA,EAAI4J,EAAG5J,IACjB,KAAK,MAAMA,GAAK,EAGlB,KAAK,QAAU4J,CACjB,CAEA,OAAO,KAAK,MAAM,CACpB,EAEArK,EAAG,UAAU,MAAQ,SAAgB2L,EAAM,CAEzC,OAAAlM,EAAO,KAAK,WAAa,CAAC,EACnB,KAAK,OAAOkM,CAAI,CACzB,EAKA3L,EAAG,UAAU,OAAS,SAAiB2L,EAAMG,EAAMC,EAAU,CAC3DtM,EAAO,OAAOkM,GAAS,UAAYA,GAAQ,CAAC,EAC5C,IAAIK,EACAF,EACFE,GAAKF,EAAQA,EAAO,IAAO,GAE3BE,EAAI,EAGN,IAAI7K,EAAIwK,EAAO,GACXtB,EAAI,KAAK,KAAKsB,EAAOxK,GAAK,GAAI,KAAK,MAAM,EACzC8K,EAAO,SAAc,WAAc9K,GAAMA,EACzC+K,EAAcH,EAMlB,GAJAC,GAAK3B,EACL2B,EAAI,KAAK,IAAI,EAAGA,CAAC,EAGbE,EAAa,CACf,QAASzL,EAAI,EAAGA,EAAI4J,EAAG5J,IACrByL,EAAY,MAAMzL,GAAK,KAAK,MAAMA,GAEpCyL,EAAY,OAAS7B,CACvB,CAEA,GAAIA,IAAM,EAEH,GAAI,KAAK,OAASA,EAEvB,IADA,KAAK,QAAUA,EACV5J,EAAI,EAAGA,EAAI,KAAK,OAAQA,IAC3B,KAAK,MAAMA,GAAK,KAAK,MAAMA,EAAI4J,QAGjC,KAAK,MAAM,GAAK,EAChB,KAAK,OAAS,EAGhB,IAAI9H,EAAQ,EACZ,IAAK9B,EAAI,KAAK,OAAS,EAAGA,GAAK,IAAM8B,IAAU,GAAK9B,GAAKuL,GAAIvL,IAAK,CAChE,IAAIqB,EAAO,KAAK,MAAMrB,GAAK,EAC3B,KAAK,MAAMA,GAAM8B,GAAU,GAAKpB,EAAOW,IAASX,EAChDoB,EAAQT,EAAOmK,CACjB,CAGA,OAAIC,GAAe3J,IAAU,IAC3B2J,EAAY,MAAMA,EAAY,UAAY3J,GAGxC,KAAK,SAAW,IAClB,KAAK,MAAM,GAAK,EAChB,KAAK,OAAS,GAGT,KAAK,MAAM,CACpB,EAEAvC,EAAG,UAAU,MAAQ,SAAgB2L,EAAMG,EAAMC,EAAU,CAEzD,OAAAtM,EAAO,KAAK,WAAa,CAAC,EACnB,KAAK,OAAOkM,EAAMG,EAAMC,CAAQ,CACzC,EAGA/L,EAAG,UAAU,KAAO,SAAe2L,EAAM,CACvC,OAAO,KAAK,MAAM,EAAE,MAAMA,CAAI,CAChC,EAEA3L,EAAG,UAAU,MAAQ,SAAgB2L,EAAM,CACzC,OAAO,KAAK,MAAM,EAAE,OAAOA,CAAI,CACjC,EAGA3L,EAAG,UAAU,KAAO,SAAe2L,EAAM,CACvC,OAAO,KAAK,MAAM,EAAE,MAAMA,CAAI,CAChC,EAEA3L,EAAG,UAAU,MAAQ,SAAgB2L,EAAM,CACzC,OAAO,KAAK,MAAM,EAAE,OAAOA,CAAI,CACjC,EAGA3L,EAAG,UAAU,MAAQ,SAAgBqD,EAAK,CACxC5D,EAAO,OAAO4D,GAAQ,UAAYA,GAAO,CAAC,EAC1C,IAAIlC,EAAIkC,EAAM,GACVgH,GAAKhH,EAAMlC,GAAK,GAChB8B,EAAI,GAAK9B,EAGb,GAAI,KAAK,QAAUkJ,EAAG,MAAO,GAG7B,IAAI1J,EAAI,KAAK,MAAM0J,GAEnB,MAAO,CAAC,EAAE1J,EAAIsC,EAChB,EAGAjD,EAAG,UAAU,OAAS,SAAiB2L,EAAM,CAC3ClM,EAAO,OAAOkM,GAAS,UAAYA,GAAQ,CAAC,EAC5C,IAAIxK,EAAIwK,EAAO,GACXtB,GAAKsB,EAAOxK,GAAK,GAIrB,GAFA1B,EAAO,KAAK,WAAa,EAAG,yCAAyC,EAEjE,KAAK,QAAU4K,EACjB,OAAO,KAQT,GALIlJ,IAAM,GACRkJ,IAEF,KAAK,OAAS,KAAK,IAAIA,EAAG,KAAK,MAAM,EAEjClJ,IAAM,EAAG,CACX,IAAI8K,EAAO,SAAc,WAAc9K,GAAMA,EAC7C,KAAK,MAAM,KAAK,OAAS,IAAM8K,CACjC,CAEA,OAAO,KAAK,MAAM,CACpB,EAGAjM,EAAG,UAAU,MAAQ,SAAgB2L,EAAM,CACzC,OAAO,KAAK,MAAM,EAAE,OAAOA,CAAI,CACjC,EAGA3L,EAAG,UAAU,MAAQ,SAAgBK,EAAK,CAGxC,OAFAZ,EAAO,OAAOY,GAAQ,QAAQ,EAC9BZ,EAAOY,EAAM,QAAS,EAClBA,EAAM,EAAU,KAAK,MAAM,CAACA,CAAG,EAG/B,KAAK,WAAa,EAChB,KAAK,SAAW,IAAM,KAAK,MAAM,GAAK,GAAKA,GAC7C,KAAK,MAAM,GAAKA,GAAO,KAAK,MAAM,GAAK,GACvC,KAAK,SAAW,EACT,OAGT,KAAK,SAAW,EAChB,KAAK,MAAMA,CAAG,EACd,KAAK,SAAW,EACT,MAIF,KAAK,OAAOA,CAAG,CACxB,EAEAL,EAAG,UAAU,OAAS,SAAiBK,EAAK,CAC1C,KAAK,MAAM,IAAMA,EAGjB,QAASI,EAAI,EAAGA,EAAI,KAAK,QAAU,KAAK,MAAMA,IAAM,SAAWA,IAC7D,KAAK,MAAMA,IAAM,SACbA,IAAM,KAAK,OAAS,EACtB,KAAK,MAAMA,EAAI,GAAK,EAEpB,KAAK,MAAMA,EAAI,KAGnB,YAAK,OAAS,KAAK,IAAI,KAAK,OAAQA,EAAI,CAAC,EAElC,IACT,EAGAT,EAAG,UAAU,MAAQ,SAAgBK,EAAK,CAGxC,GAFAZ,EAAO,OAAOY,GAAQ,QAAQ,EAC9BZ,EAAOY,EAAM,QAAS,EAClBA,EAAM,EAAG,OAAO,KAAK,MAAM,CAACA,CAAG,EAEnC,GAAI,KAAK,WAAa,EACpB,YAAK,SAAW,EAChB,KAAK,MAAMA,CAAG,EACd,KAAK,SAAW,EACT,KAKT,GAFA,KAAK,MAAM,IAAMA,EAEb,KAAK,SAAW,GAAK,KAAK,MAAM,GAAK,EACvC,KAAK,MAAM,GAAK,CAAC,KAAK,MAAM,GAC5B,KAAK,SAAW,MAGhB,SAASI,EAAI,EAAGA,EAAI,KAAK,QAAU,KAAK,MAAMA,GAAK,EAAGA,IACpD,KAAK,MAAMA,IAAM,SACjB,KAAK,MAAMA,EAAI,IAAM,EAIzB,OAAO,KAAK,MAAM,CACpB,EAEAT,EAAG,UAAU,KAAO,SAAeK,EAAK,CACtC,OAAO,KAAK,MAAM,EAAE,MAAMA,CAAG,CAC/B,EAEAL,EAAG,UAAU,KAAO,SAAeK,EAAK,CACtC,OAAO,KAAK,MAAM,EAAE,MAAMA,CAAG,CAC/B,EAEAL,EAAG,UAAU,KAAO,UAAiB,CACnC,YAAK,SAAW,EAET,IACT,EAEAA,EAAG,UAAU,IAAM,UAAgB,CACjC,OAAO,KAAK,MAAM,EAAE,KAAK,CAC3B,EAEAA,EAAG,UAAU,aAAe,SAAuBK,EAAKmB,EAAK2K,EAAO,CAClE,IAAI1K,EAAMpB,EAAI,OAAS8L,EACnB1L,EAEJ,KAAK,QAAQgB,CAAG,EAEhB,IAAId,EACA4B,EAAQ,EACZ,IAAK9B,EAAI,EAAGA,EAAIJ,EAAI,OAAQI,IAAK,CAC/BE,GAAK,KAAK,MAAMF,EAAI0L,GAAS,GAAK5J,EAClC,IAAIhC,GAASF,EAAI,MAAMI,GAAK,GAAKe,EACjCb,GAAKJ,EAAQ,SACbgC,GAAS5B,GAAK,KAAQJ,EAAQ,SAAa,GAC3C,KAAK,MAAME,EAAI0L,GAASxL,EAAI,QAC9B,CACA,KAAOF,EAAI,KAAK,OAAS0L,EAAO1L,IAC9BE,GAAK,KAAK,MAAMF,EAAI0L,GAAS,GAAK5J,EAClCA,EAAQ5B,GAAK,GACb,KAAK,MAAMF,EAAI0L,GAASxL,EAAI,SAG9B,GAAI4B,IAAU,EAAG,OAAO,KAAK,MAAM,EAKnC,IAFA9C,EAAO8C,IAAU,EAAE,EACnBA,EAAQ,EACH9B,EAAI,EAAGA,EAAI,KAAK,OAAQA,IAC3BE,EAAI,EAAE,KAAK,MAAMF,GAAK,GAAK8B,EAC3BA,EAAQ5B,GAAK,GACb,KAAK,MAAMF,GAAKE,EAAI,SAEtB,YAAK,SAAW,EAET,KAAK,MAAM,CACpB,EAEAX,EAAG,UAAU,SAAW,SAAmBK,EAAK+L,EAAM,CACpD,IAAID,EAAQ,KAAK,OAAS9L,EAAI,OAE1BoD,EAAI,KAAK,MAAM,EACfF,EAAIlD,EAGJgM,EAAM9I,EAAE,MAAMA,EAAE,OAAS,GAAK,EAC9B+I,EAAU,KAAK,WAAWD,CAAG,EACjCF,EAAQ,GAAKG,EACTH,IAAU,IACZ5I,EAAIA,EAAE,MAAM4I,CAAK,EACjB1I,EAAE,OAAO0I,CAAK,EACdE,EAAM9I,EAAE,MAAMA,EAAE,OAAS,GAAK,GAIhC,IAAI0H,EAAIxH,EAAE,OAASF,EAAE,OACjBN,EAEJ,GAAImJ,IAAS,MAAO,CAClBnJ,EAAI,IAAIjD,EAAG,IAAI,EACfiD,EAAE,OAASgI,EAAI,EACfhI,EAAE,MAAQ,IAAI,MAAMA,EAAE,MAAM,EAC5B,QAASxC,EAAI,EAAGA,EAAIwC,EAAE,OAAQxC,IAC5BwC,EAAE,MAAMxC,GAAK,CAEjB,CAEA,IAAI8L,EAAO9I,EAAE,MAAM,EAAE,aAAaF,EAAG,EAAG0H,CAAC,EACrCsB,EAAK,WAAa,IACpB9I,EAAI8I,EACAtJ,IACFA,EAAE,MAAMgI,GAAK,IAIjB,QAASvK,EAAIuK,EAAI,EAAGvK,GAAK,EAAGA,IAAK,CAC/B,IAAI8L,GAAM/I,EAAE,MAAMF,EAAE,OAAS7C,GAAK,GAAK,UACpC+C,EAAE,MAAMF,EAAE,OAAS7C,EAAI,GAAK,GAO/B,IAHA8L,EAAK,KAAK,IAAKA,EAAKH,EAAO,EAAG,QAAS,EAEvC5I,EAAE,aAAaF,EAAGiJ,EAAI9L,CAAC,EAChB+C,EAAE,WAAa,GACpB+I,IACA/I,EAAE,SAAW,EACbA,EAAE,aAAaF,EAAG,EAAG7C,CAAC,EACjB+C,EAAE,OAAO,IACZA,EAAE,UAAY,GAGdR,IACFA,EAAE,MAAMvC,GAAK8L,EAEjB,CACA,OAAIvJ,GACFA,EAAE,MAAM,EAEVQ,EAAE,MAAM,EAGJ2I,IAAS,OAASD,IAAU,GAC9B1I,EAAE,OAAO0I,CAAK,EAGT,CACL,IAAKlJ,GAAK,KACV,IAAKQ,CACP,CACF,EAMAzD,EAAG,UAAU,OAAS,SAAiBK,EAAK+L,EAAMK,EAAU,CAG1D,GAFAhN,EAAO,CAACY,EAAI,OAAO,CAAC,EAEhB,KAAK,OAAO,EACd,MAAO,CACL,IAAK,IAAIL,EAAG,CAAC,EACb,IAAK,IAAIA,EAAG,CAAC,CACf,EAGF,IAAI0M,EAAK7K,EAAKmB,EACd,OAAI,KAAK,WAAa,GAAK3C,EAAI,WAAa,GAC1C2C,EAAM,KAAK,IAAI,EAAE,OAAO3C,EAAK+L,CAAI,EAE7BA,IAAS,QACXM,EAAM1J,EAAI,IAAI,IAAI,GAGhBoJ,IAAS,QACXvK,EAAMmB,EAAI,IAAI,IAAI,EACdyJ,GAAY5K,EAAI,WAAa,GAC/BA,EAAI,KAAKxB,CAAG,GAIT,CACL,IAAKqM,EACL,IAAK7K,CACP,GAGE,KAAK,WAAa,GAAKxB,EAAI,WAAa,GAC1C2C,EAAM,KAAK,OAAO3C,EAAI,IAAI,EAAG+L,CAAI,EAE7BA,IAAS,QACXM,EAAM1J,EAAI,IAAI,IAAI,GAGb,CACL,IAAK0J,EACL,IAAK1J,EAAI,GACX,IAGG,KAAK,SAAW3C,EAAI,YAAc,GACrC2C,EAAM,KAAK,IAAI,EAAE,OAAO3C,EAAI,IAAI,EAAG+L,CAAI,EAEnCA,IAAS,QACXvK,EAAMmB,EAAI,IAAI,IAAI,EACdyJ,GAAY5K,EAAI,WAAa,GAC/BA,EAAI,KAAKxB,CAAG,GAIT,CACL,IAAK2C,EAAI,IACT,IAAKnB,CACP,GAMExB,EAAI,OAAS,KAAK,QAAU,KAAK,IAAIA,CAAG,EAAI,EACvC,CACL,IAAK,IAAIL,EAAG,CAAC,EACb,IAAK,IACP,EAIEK,EAAI,SAAW,EACb+L,IAAS,MACJ,CACL,IAAK,KAAK,KAAK/L,EAAI,MAAM,EAAE,EAC3B,IAAK,IACP,EAGE+L,IAAS,MACJ,CACL,IAAK,KACL,IAAK,IAAIpM,EAAG,KAAK,KAAKK,EAAI,MAAM,EAAE,CAAC,CACrC,EAGK,CACL,IAAK,KAAK,KAAKA,EAAI,MAAM,EAAE,EAC3B,IAAK,IAAIL,EAAG,KAAK,KAAKK,EAAI,MAAM,EAAE,CAAC,CACrC,EAGK,KAAK,SAASA,EAAK+L,CAAI,CAChC,EAGApM,EAAG,UAAU,IAAM,SAAcK,EAAK,CACpC,OAAO,KAAK,OAAOA,EAAK,MAAO,EAAK,EAAE,GACxC,EAGAL,EAAG,UAAU,IAAM,SAAcK,EAAK,CACpC,OAAO,KAAK,OAAOA,EAAK,MAAO,EAAK,EAAE,GACxC,EAEAL,EAAG,UAAU,KAAO,SAAeK,EAAK,CACtC,OAAO,KAAK,OAAOA,EAAK,MAAO,EAAI,EAAE,GACvC,EAGAL,EAAG,UAAU,SAAW,SAAmBK,EAAK,CAC9C,IAAIsM,EAAK,KAAK,OAAOtM,CAAG,EAGxB,GAAIsM,EAAG,IAAI,OAAO,EAAG,OAAOA,EAAG,IAE/B,IAAI9K,EAAM8K,EAAG,IAAI,WAAa,EAAIA,EAAG,IAAI,KAAKtM,CAAG,EAAIsM,EAAG,IAEpDC,EAAOvM,EAAI,MAAM,CAAC,EAClBwM,EAAKxM,EAAI,MAAM,CAAC,EAChBuD,EAAM/B,EAAI,IAAI+K,CAAI,EAGtB,OAAIhJ,EAAM,GAAKiJ,IAAO,GAAKjJ,IAAQ,EAAU+I,EAAG,IAGzCA,EAAG,IAAI,WAAa,EAAIA,EAAG,IAAI,MAAM,CAAC,EAAIA,EAAG,IAAI,MAAM,CAAC,CACjE,EAEA3M,EAAG,UAAU,KAAO,SAAeK,EAAK,CACtCZ,EAAOY,GAAO,QAAS,EAIvB,QAHImK,GAAK,GAAK,IAAMnK,EAEhByM,EAAM,EACDrM,EAAI,KAAK,OAAS,EAAGA,GAAK,EAAGA,IACpCqM,GAAOtC,EAAIsC,GAAO,KAAK,MAAMrM,GAAK,IAAMJ,EAG1C,OAAOyM,CACT,EAGA9M,EAAG,UAAU,MAAQ,SAAgBK,EAAK,CACxCZ,EAAOY,GAAO,QAAS,EAGvB,QADIkC,EAAQ,EACH9B,EAAI,KAAK,OAAS,EAAGA,GAAK,EAAGA,IAAK,CACzC,IAAIE,GAAK,KAAK,MAAMF,GAAK,GAAK8B,EAAQ,SACtC,KAAK,MAAM9B,GAAME,EAAIN,EAAO,EAC5BkC,EAAQ5B,EAAIN,CACd,CAEA,OAAO,KAAK,MAAM,CACpB,EAEAL,EAAG,UAAU,KAAO,SAAeK,EAAK,CACtC,OAAO,KAAK,MAAM,EAAE,MAAMA,CAAG,CAC/B,EAEAL,EAAG,UAAU,KAAO,SAAewK,EAAG,CACpC/K,EAAO+K,EAAE,WAAa,CAAC,EACvB/K,EAAO,CAAC+K,EAAE,OAAO,CAAC,EAElB,IAAIb,EAAI,KACJC,EAAIY,EAAE,MAAM,EAEZb,EAAE,WAAa,EACjBA,EAAIA,EAAE,KAAKa,CAAC,EAEZb,EAAIA,EAAE,MAAM,EAad,QATIoD,EAAI,IAAI/M,EAAG,CAAC,EACZgN,EAAI,IAAIhN,EAAG,CAAC,EAGZiN,EAAI,IAAIjN,EAAG,CAAC,EACZkN,EAAI,IAAIlN,EAAG,CAAC,EAEZmN,EAAI,EAEDxD,EAAE,OAAO,GAAKC,EAAE,OAAO,GAC5BD,EAAE,OAAO,CAAC,EACVC,EAAE,OAAO,CAAC,EACV,EAAEuD,EAMJ,QAHIC,EAAKxD,EAAE,MAAM,EACbyD,EAAK1D,EAAE,MAAM,EAEV,CAACA,EAAE,OAAO,GAAG,CAClB,QAASlJ,EAAI,EAAG6M,EAAK,GAAI3D,EAAE,MAAM,GAAK2D,KAAQ,GAAK7M,EAAI,GAAI,EAAEA,EAAG6M,IAAO,EAAE,CACzE,GAAI7M,EAAI,EAEN,IADAkJ,EAAE,OAAOlJ,CAAC,EACHA,KAAM,IACPsM,EAAE,MAAM,GAAKC,EAAE,MAAM,KACvBD,EAAE,KAAKK,CAAE,EACTJ,EAAE,KAAKK,CAAE,GAGXN,EAAE,OAAO,CAAC,EACVC,EAAE,OAAO,CAAC,EAId,QAAStM,EAAI,EAAG6M,EAAK,GAAI3D,EAAE,MAAM,GAAK2D,KAAQ,GAAK7M,EAAI,GAAI,EAAEA,EAAG6M,IAAO,EAAE,CACzE,GAAI7M,EAAI,EAEN,IADAkJ,EAAE,OAAOlJ,CAAC,EACHA,KAAM,IACPuM,EAAE,MAAM,GAAKC,EAAE,MAAM,KACvBD,EAAE,KAAKG,CAAE,EACTF,EAAE,KAAKG,CAAE,GAGXJ,EAAE,OAAO,CAAC,EACVC,EAAE,OAAO,CAAC,EAIVvD,EAAE,IAAIC,CAAC,GAAK,GACdD,EAAE,KAAKC,CAAC,EACRmD,EAAE,KAAKE,CAAC,EACRD,EAAE,KAAKE,CAAC,IAERtD,EAAE,KAAKD,CAAC,EACRsD,EAAE,KAAKF,CAAC,EACRG,EAAE,KAAKF,CAAC,EAEZ,CAEA,MAAO,CACL,EAAGC,EACH,EAAGC,EACH,IAAKtD,EAAE,OAAOuD,CAAC,CACjB,CACF,EAKAnN,EAAG,UAAU,OAAS,SAAiBwK,EAAG,CACxC/K,EAAO+K,EAAE,WAAa,CAAC,EACvB/K,EAAO,CAAC+K,EAAE,OAAO,CAAC,EAElB,IAAI/G,EAAI,KACJF,EAAIiH,EAAE,MAAM,EAEZ/G,EAAE,WAAa,EACjBA,EAAIA,EAAE,KAAK+G,CAAC,EAEZ/G,EAAIA,EAAE,MAAM,EAQd,QALI+J,EAAK,IAAIxN,EAAG,CAAC,EACbyN,EAAK,IAAIzN,EAAG,CAAC,EAEb0N,EAAQnK,EAAE,MAAM,EAEbE,EAAE,KAAK,CAAC,EAAI,GAAKF,EAAE,KAAK,CAAC,EAAI,GAAG,CACrC,QAAS9C,EAAI,EAAG6M,EAAK,GAAI7J,EAAE,MAAM,GAAK6J,KAAQ,GAAK7M,EAAI,GAAI,EAAEA,EAAG6M,IAAO,EAAE,CACzE,GAAI7M,EAAI,EAEN,IADAgD,EAAE,OAAOhD,CAAC,EACHA,KAAM,GACP+M,EAAG,MAAM,GACXA,EAAG,KAAKE,CAAK,EAGfF,EAAG,OAAO,CAAC,EAIf,QAAS9M,EAAI,EAAG6M,EAAK,GAAIhK,EAAE,MAAM,GAAKgK,KAAQ,GAAK7M,EAAI,GAAI,EAAEA,EAAG6M,IAAO,EAAE,CACzE,GAAI7M,EAAI,EAEN,IADA6C,EAAE,OAAO7C,CAAC,EACHA,KAAM,GACP+M,EAAG,MAAM,GACXA,EAAG,KAAKC,CAAK,EAGfD,EAAG,OAAO,CAAC,EAIXhK,EAAE,IAAIF,CAAC,GAAK,GACdE,EAAE,KAAKF,CAAC,EACRiK,EAAG,KAAKC,CAAE,IAEVlK,EAAE,KAAKE,CAAC,EACRgK,EAAG,KAAKD,CAAE,EAEd,CAEA,IAAIxK,EACJ,OAAIS,EAAE,KAAK,CAAC,IAAM,EAChBT,EAAMwK,EAENxK,EAAMyK,EAGJzK,EAAI,KAAK,CAAC,EAAI,GAChBA,EAAI,KAAKwH,CAAC,EAGLxH,CACT,EAEAhD,EAAG,UAAU,IAAM,SAAcK,EAAK,CACpC,GAAI,KAAK,OAAO,EAAG,OAAOA,EAAI,IAAI,EAClC,GAAIA,EAAI,OAAO,EAAG,OAAO,KAAK,IAAI,EAElC,IAAIoD,EAAI,KAAK,MAAM,EACfF,EAAIlD,EAAI,MAAM,EAClBoD,EAAE,SAAW,EACbF,EAAE,SAAW,EAGb,QAAS4I,EAAQ,EAAG1I,EAAE,OAAO,GAAKF,EAAE,OAAO,EAAG4I,IAC5C1I,EAAE,OAAO,CAAC,EACVF,EAAE,OAAO,CAAC,EAGZ,EAAG,CACD,KAAOE,EAAE,OAAO,GACdA,EAAE,OAAO,CAAC,EAEZ,KAAOF,EAAE,OAAO,GACdA,EAAE,OAAO,CAAC,EAGZ,IAAIpC,EAAIsC,EAAE,IAAIF,CAAC,EACf,GAAIpC,EAAI,EAAG,CAET,IAAI+B,EAAIO,EACRA,EAAIF,EACJA,EAAIL,CACN,SAAW/B,IAAM,GAAKoC,EAAE,KAAK,CAAC,IAAM,EAClC,MAGFE,EAAE,KAAKF,CAAC,CACV,OAAS,IAET,OAAOA,EAAE,OAAO4I,CAAK,CACvB,EAGAnM,EAAG,UAAU,KAAO,SAAeK,EAAK,CACtC,OAAO,KAAK,KAAKA,CAAG,EAAE,EAAE,KAAKA,CAAG,CAClC,EAEAL,EAAG,UAAU,OAAS,UAAmB,CACvC,OAAQ,KAAK,MAAM,GAAK,KAAO,CACjC,EAEAA,EAAG,UAAU,MAAQ,UAAkB,CACrC,OAAQ,KAAK,MAAM,GAAK,KAAO,CACjC,EAGAA,EAAG,UAAU,MAAQ,SAAgBK,EAAK,CACxC,OAAO,KAAK,MAAM,GAAKA,CACzB,EAGAL,EAAG,UAAU,MAAQ,SAAgBqD,EAAK,CACxC5D,EAAO,OAAO4D,GAAQ,QAAQ,EAC9B,IAAIlC,EAAIkC,EAAM,GACVgH,GAAKhH,EAAMlC,GAAK,GAChB8B,EAAI,GAAK9B,EAGb,GAAI,KAAK,QAAUkJ,EACjB,YAAK,QAAQA,EAAI,CAAC,EAClB,KAAK,MAAMA,IAAMpH,EACV,KAKT,QADIV,EAAQU,EACHxC,EAAI4J,EAAG9H,IAAU,GAAK9B,EAAI,KAAK,OAAQA,IAAK,CACnD,IAAIE,EAAI,KAAK,MAAMF,GAAK,EACxBE,GAAK4B,EACLA,EAAQ5B,IAAM,GACdA,GAAK,SACL,KAAK,MAAMF,GAAKE,CAClB,CACA,OAAI4B,IAAU,IACZ,KAAK,MAAM9B,GAAK8B,EAChB,KAAK,UAEA,IACT,EAEAvC,EAAG,UAAU,OAAS,UAAmB,CACvC,OAAO,KAAK,SAAW,GAAK,KAAK,MAAM,KAAO,CAChD,EAEAA,EAAG,UAAU,KAAO,SAAeK,EAAK,CACtC,IAAIsN,EAAWtN,EAAM,EAErB,GAAI,KAAK,WAAa,GAAK,CAACsN,EAAU,MAAO,GAC7C,GAAI,KAAK,WAAa,GAAKA,EAAU,MAAO,GAE5C,KAAK,MAAM,EAEX,IAAI3K,EACJ,GAAI,KAAK,OAAS,EAChBA,EAAM,MACD,CACD2K,IACFtN,EAAM,CAACA,GAGTZ,EAAOY,GAAO,SAAW,mBAAmB,EAE5C,IAAIM,EAAI,KAAK,MAAM,GAAK,EACxBqC,EAAMrC,IAAMN,EAAM,EAAIM,EAAIN,EAAM,GAAK,CACvC,CACA,OAAI,KAAK,WAAa,EAAU,CAAC2C,EAAM,EAChCA,CACT,EAMAhD,EAAG,UAAU,IAAM,SAAcK,EAAK,CACpC,GAAI,KAAK,WAAa,GAAKA,EAAI,WAAa,EAAG,MAAO,GACtD,GAAI,KAAK,WAAa,GAAKA,EAAI,WAAa,EAAG,MAAO,GAEtD,IAAI2C,EAAM,KAAK,KAAK3C,CAAG,EACvB,OAAI,KAAK,WAAa,EAAU,CAAC2C,EAAM,EAChCA,CACT,EAGAhD,EAAG,UAAU,KAAO,SAAeK,EAAK,CAEtC,GAAI,KAAK,OAASA,EAAI,OAAQ,MAAO,GACrC,GAAI,KAAK,OAASA,EAAI,OAAQ,MAAO,GAGrC,QADI2C,EAAM,EACDvC,EAAI,KAAK,OAAS,EAAGA,GAAK,EAAGA,IAAK,CACzC,IAAIgD,EAAI,KAAK,MAAMhD,GAAK,EACpB8C,EAAIlD,EAAI,MAAMI,GAAK,EAEvB,GAAIgD,IAAMF,EACV,CAAIE,EAAIF,EACNP,EAAM,GACGS,EAAIF,IACbP,EAAM,GAER,MACF,CACA,OAAOA,CACT,EAEAhD,EAAG,UAAU,IAAM,SAAcK,EAAK,CACpC,OAAO,KAAK,KAAKA,CAAG,IAAM,CAC5B,EAEAL,EAAG,UAAU,GAAK,SAAaK,EAAK,CAClC,OAAO,KAAK,IAAIA,CAAG,IAAM,CAC3B,EAEAL,EAAG,UAAU,KAAO,SAAeK,EAAK,CACtC,OAAO,KAAK,KAAKA,CAAG,GAAK,CAC3B,EAEAL,EAAG,UAAU,IAAM,SAAcK,EAAK,CACpC,OAAO,KAAK,IAAIA,CAAG,GAAK,CAC1B,EAEAL,EAAG,UAAU,IAAM,SAAcK,EAAK,CACpC,OAAO,KAAK,KAAKA,CAAG,IAAM,EAC5B,EAEAL,EAAG,UAAU,GAAK,SAAaK,EAAK,CAClC,OAAO,KAAK,IAAIA,CAAG,IAAM,EAC3B,EAEAL,EAAG,UAAU,KAAO,SAAeK,EAAK,CACtC,OAAO,KAAK,KAAKA,CAAG,GAAK,CAC3B,EAEAL,EAAG,UAAU,IAAM,SAAcK,EAAK,CACpC,OAAO,KAAK,IAAIA,CAAG,GAAK,CAC1B,EAEAL,EAAG,UAAU,IAAM,SAAcK,EAAK,CACpC,OAAO,KAAK,KAAKA,CAAG,IAAM,CAC5B,EAEAL,EAAG,UAAU,GAAK,SAAaK,EAAK,CAClC,OAAO,KAAK,IAAIA,CAAG,IAAM,CAC3B,EAMAL,EAAG,IAAM,SAAcK,EAAK,CAC1B,OAAO,IAAIuN,EAAIvN,CAAG,CACpB,EAEAL,EAAG,UAAU,MAAQ,SAAgB6N,EAAK,CACxC,OAAApO,EAAO,CAAC,KAAK,IAAK,uCAAuC,EACzDA,EAAO,KAAK,WAAa,EAAG,+BAA+B,EACpDoO,EAAI,UAAU,IAAI,EAAE,UAAUA,CAAG,CAC1C,EAEA7N,EAAG,UAAU,QAAU,UAAoB,CACzC,OAAAP,EAAO,KAAK,IAAK,sDAAsD,EAChE,KAAK,IAAI,YAAY,IAAI,CAClC,EAEAO,EAAG,UAAU,UAAY,SAAoB6N,EAAK,CAChD,YAAK,IAAMA,EACJ,IACT,EAEA7N,EAAG,UAAU,SAAW,SAAmB6N,EAAK,CAC9C,OAAApO,EAAO,CAAC,KAAK,IAAK,uCAAuC,EAClD,KAAK,UAAUoO,CAAG,CAC3B,EAEA7N,EAAG,UAAU,OAAS,SAAiBK,EAAK,CAC1C,OAAAZ,EAAO,KAAK,IAAK,oCAAoC,EAC9C,KAAK,IAAI,IAAI,KAAMY,CAAG,CAC/B,EAEAL,EAAG,UAAU,QAAU,SAAkBK,EAAK,CAC5C,OAAAZ,EAAO,KAAK,IAAK,qCAAqC,EAC/C,KAAK,IAAI,KAAK,KAAMY,CAAG,CAChC,EAEAL,EAAG,UAAU,OAAS,SAAiBK,EAAK,CAC1C,OAAAZ,EAAO,KAAK,IAAK,oCAAoC,EAC9C,KAAK,IAAI,IAAI,KAAMY,CAAG,CAC/B,EAEAL,EAAG,UAAU,QAAU,SAAkBK,EAAK,CAC5C,OAAAZ,EAAO,KAAK,IAAK,qCAAqC,EAC/C,KAAK,IAAI,KAAK,KAAMY,CAAG,CAChC,EAEAL,EAAG,UAAU,OAAS,SAAiBK,EAAK,CAC1C,OAAAZ,EAAO,KAAK,IAAK,oCAAoC,EAC9C,KAAK,IAAI,IAAI,KAAMY,CAAG,CAC/B,EAEAL,EAAG,UAAU,OAAS,SAAiBK,EAAK,CAC1C,OAAAZ,EAAO,KAAK,IAAK,oCAAoC,EACrD,KAAK,IAAI,SAAS,KAAMY,CAAG,EACpB,KAAK,IAAI,IAAI,KAAMA,CAAG,CAC/B,EAEAL,EAAG,UAAU,QAAU,SAAkBK,EAAK,CAC5C,OAAAZ,EAAO,KAAK,IAAK,oCAAoC,EACrD,KAAK,IAAI,SAAS,KAAMY,CAAG,EACpB,KAAK,IAAI,KAAK,KAAMA,CAAG,CAChC,EAEAL,EAAG,UAAU,OAAS,UAAmB,CACvC,OAAAP,EAAO,KAAK,IAAK,oCAAoC,EACrD,KAAK,IAAI,SAAS,IAAI,EACf,KAAK,IAAI,IAAI,IAAI,CAC1B,EAEAO,EAAG,UAAU,QAAU,UAAoB,CACzC,OAAAP,EAAO,KAAK,IAAK,qCAAqC,EACtD,KAAK,IAAI,SAAS,IAAI,EACf,KAAK,IAAI,KAAK,IAAI,CAC3B,EAGAO,EAAG,UAAU,QAAU,UAAoB,CACzC,OAAAP,EAAO,KAAK,IAAK,qCAAqC,EACtD,KAAK,IAAI,SAAS,IAAI,EACf,KAAK,IAAI,KAAK,IAAI,CAC3B,EAEAO,EAAG,UAAU,QAAU,UAAoB,CACzC,OAAAP,EAAO,KAAK,IAAK,qCAAqC,EACtD,KAAK,IAAI,SAAS,IAAI,EACf,KAAK,IAAI,KAAK,IAAI,CAC3B,EAGAO,EAAG,UAAU,OAAS,UAAmB,CACvC,OAAAP,EAAO,KAAK,IAAK,oCAAoC,EACrD,KAAK,IAAI,SAAS,IAAI,EACf,KAAK,IAAI,IAAI,IAAI,CAC1B,EAEAO,EAAG,UAAU,OAAS,SAAiBK,EAAK,CAC1C,OAAAZ,EAAO,KAAK,KAAO,CAACY,EAAI,IAAK,mBAAmB,EAChD,KAAK,IAAI,SAAS,IAAI,EACf,KAAK,IAAI,IAAI,KAAMA,CAAG,CAC/B,EAGA,IAAIyN,EAAS,CACX,KAAM,KACN,KAAM,KACN,KAAM,KACN,OAAQ,IACV,EAGA,SAASC,EAAQC,EAAMxD,EAAG,CAExB,KAAK,KAAOwD,EACZ,KAAK,EAAI,IAAIhO,EAAGwK,EAAG,EAAE,EACrB,KAAK,EAAI,KAAK,EAAE,UAAU,EAC1B,KAAK,EAAI,IAAIxK,EAAG,CAAC,EAAE,OAAO,KAAK,CAAC,EAAE,KAAK,KAAK,CAAC,EAE7C,KAAK,IAAM,KAAK,KAAK,CACvB,CAEA+N,EAAO,UAAU,KAAO,UAAiB,CACvC,IAAIE,EAAM,IAAIjO,EAAG,IAAI,EACrB,OAAAiO,EAAI,MAAQ,IAAI,MAAM,KAAK,KAAK,KAAK,EAAI,EAAE,CAAC,EACrCA,CACT,EAEAF,EAAO,UAAU,QAAU,SAAkB1N,EAAK,CAGhD,IAAIc,EAAId,EACJ6N,EAEJ,GACE,KAAK,MAAM/M,EAAG,KAAK,GAAG,EACtBA,EAAI,KAAK,MAAMA,CAAC,EAChBA,EAAIA,EAAE,KAAK,KAAK,GAAG,EACnB+M,EAAO/M,EAAE,UAAU,QACZ+M,EAAO,KAAK,GAErB,IAAItK,EAAMsK,EAAO,KAAK,EAAI,GAAK/M,EAAE,KAAK,KAAK,CAAC,EAC5C,OAAIyC,IAAQ,GACVzC,EAAE,MAAM,GAAK,EACbA,EAAE,OAAS,GACFyC,EAAM,EACfzC,EAAE,KAAK,KAAK,CAAC,EAETA,EAAE,QAAU,OAEdA,EAAE,MAAM,EAGRA,EAAE,OAAO,EAINA,CACT,EAEA4M,EAAO,UAAU,MAAQ,SAAgBI,EAAO7L,EAAK,CACnD6L,EAAM,OAAO,KAAK,EAAG,EAAG7L,CAAG,CAC7B,EAEAyL,EAAO,UAAU,MAAQ,SAAgB1N,EAAK,CAC5C,OAAOA,EAAI,KAAK,KAAK,CAAC,CACxB,EAEA,SAAS+N,GAAQ,CACfL,EAAO,KACL,KACA,OACA,yEAAyE,CAC7E,CACAnO,EAASwO,EAAML,CAAM,EAErBK,EAAK,UAAU,MAAQ,SAAgBD,EAAOE,EAAQ,CAKpD,QAHIpC,EAAO,QAEPqC,EAAS,KAAK,IAAIH,EAAM,OAAQ,CAAC,EAC5B1N,EAAI,EAAGA,EAAI6N,EAAQ7N,IAC1B4N,EAAO,MAAM5N,GAAK0N,EAAM,MAAM1N,GAIhC,GAFA4N,EAAO,OAASC,EAEZH,EAAM,QAAU,EAAG,CACrBA,EAAM,MAAM,GAAK,EACjBA,EAAM,OAAS,EACf,MACF,CAGA,IAAII,EAAOJ,EAAM,MAAM,GAGvB,IAFAE,EAAO,MAAMA,EAAO,UAAYE,EAAOtC,EAElCxL,EAAI,GAAIA,EAAI0N,EAAM,OAAQ1N,IAAK,CAClC,IAAI+N,EAAOL,EAAM,MAAM1N,GAAK,EAC5B0N,EAAM,MAAM1N,EAAI,KAAQ+N,EAAOvC,IAAS,EAAMsC,IAAS,GACvDA,EAAOC,CACT,CACAD,KAAU,GACVJ,EAAM,MAAM1N,EAAI,IAAM8N,EAClBA,IAAS,GAAKJ,EAAM,OAAS,GAC/BA,EAAM,QAAU,GAEhBA,EAAM,QAAU,CAEpB,EAEAC,EAAK,UAAU,MAAQ,SAAgB/N,EAAK,CAE1CA,EAAI,MAAMA,EAAI,QAAU,EACxBA,EAAI,MAAMA,EAAI,OAAS,GAAK,EAC5BA,EAAI,QAAU,EAId,QADI0D,EAAK,EACAtD,EAAI,EAAGA,EAAIJ,EAAI,OAAQI,IAAK,CACnC,IAAIE,EAAIN,EAAI,MAAMI,GAAK,EACvBsD,GAAMpD,EAAI,IACVN,EAAI,MAAMI,GAAKsD,EAAK,SACpBA,EAAKpD,EAAI,IAASoD,EAAK,SAAa,EACtC,CAGA,OAAI1D,EAAI,MAAMA,EAAI,OAAS,KAAO,IAChCA,EAAI,SACAA,EAAI,MAAMA,EAAI,OAAS,KAAO,GAChCA,EAAI,UAGDA,CACT,EAEA,SAASoO,GAAQ,CACfV,EAAO,KACL,KACA,OACA,gEAAgE,CACpE,CACAnO,EAAS6O,EAAMV,CAAM,EAErB,SAASW,GAAQ,CACfX,EAAO,KACL,KACA,OACA,uDAAuD,CAC3D,CACAnO,EAAS8O,EAAMX,CAAM,EAErB,SAASY,GAAU,CAEjBZ,EAAO,KACL,KACA,QACA,qEAAqE,CACzE,CACAnO,EAAS+O,EAAQZ,CAAM,EAEvBY,EAAO,UAAU,MAAQ,SAAgBtO,EAAK,CAG5C,QADIkC,EAAQ,EACH9B,EAAI,EAAGA,EAAIJ,EAAI,OAAQI,IAAK,CACnC,IAAI0C,GAAM9C,EAAI,MAAMI,GAAK,GAAK,GAAO8B,EACjCwB,EAAKZ,EAAK,SACdA,KAAQ,GAER9C,EAAI,MAAMI,GAAKsD,EACfxB,EAAQY,CACV,CACA,OAAIZ,IAAU,IACZlC,EAAI,MAAMA,EAAI,UAAYkC,GAErBlC,CACT,EAGAL,EAAG,OAAS,SAAgBgO,EAAM,CAEhC,GAAIF,EAAOE,GAAO,OAAOF,EAAOE,GAEhC,IAAIY,EACJ,GAAIZ,IAAS,OACXY,EAAQ,IAAIR,UACHJ,IAAS,OAClBY,EAAQ,IAAIH,UACHT,IAAS,OAClBY,EAAQ,IAAIF,UACHV,IAAS,SAClBY,EAAQ,IAAID,MAEZ,OAAM,IAAI,MAAM,iBAAmBX,CAAI,EAEzC,OAAAF,EAAOE,GAAQY,EAERA,CACT,EAKA,SAAShB,EAAK3C,EAAG,CACf,GAAI,OAAOA,GAAM,SAAU,CACzB,IAAI2D,EAAQ5O,EAAG,OAAOiL,CAAC,EACvB,KAAK,EAAI2D,EAAM,EACf,KAAK,MAAQA,CACf,MACEnP,EAAOwL,EAAE,IAAI,CAAC,EAAG,gCAAgC,EACjD,KAAK,EAAIA,EACT,KAAK,MAAQ,IAEjB,CAEA2C,EAAI,UAAU,SAAW,SAAmBnK,EAAG,CAC7ChE,EAAOgE,EAAE,WAAa,EAAG,+BAA+B,EACxDhE,EAAOgE,EAAE,IAAK,iCAAiC,CACjD,EAEAmK,EAAI,UAAU,SAAW,SAAmBnK,EAAGF,EAAG,CAChD9D,GAAQgE,EAAE,SAAWF,EAAE,YAAc,EAAG,+BAA+B,EACvE9D,EAAOgE,EAAE,KAAOA,EAAE,MAAQF,EAAE,IAC1B,iCAAiC,CACrC,EAEAqK,EAAI,UAAU,KAAO,SAAenK,EAAG,CACrC,OAAI,KAAK,MAAc,KAAK,MAAM,QAAQA,CAAC,EAAE,UAAU,IAAI,EACpDA,EAAE,KAAK,KAAK,CAAC,EAAE,UAAU,IAAI,CACtC,EAEAmK,EAAI,UAAU,IAAM,SAAcnK,EAAG,CACnC,OAAIA,EAAE,OAAO,EACJA,EAAE,MAAM,EAGV,KAAK,EAAE,IAAIA,CAAC,EAAE,UAAU,IAAI,CACrC,EAEAmK,EAAI,UAAU,IAAM,SAAcnK,EAAGF,EAAG,CACtC,KAAK,SAASE,EAAGF,CAAC,EAElB,IAAIP,EAAMS,EAAE,IAAIF,CAAC,EACjB,OAAIP,EAAI,IAAI,KAAK,CAAC,GAAK,GACrBA,EAAI,KAAK,KAAK,CAAC,EAEVA,EAAI,UAAU,IAAI,CAC3B,EAEA4K,EAAI,UAAU,KAAO,SAAenK,EAAGF,EAAG,CACxC,KAAK,SAASE,EAAGF,CAAC,EAElB,IAAIP,EAAMS,EAAE,KAAKF,CAAC,EAClB,OAAIP,EAAI,IAAI,KAAK,CAAC,GAAK,GACrBA,EAAI,KAAK,KAAK,CAAC,EAEVA,CACT,EAEA4K,EAAI,UAAU,IAAM,SAAcnK,EAAGF,EAAG,CACtC,KAAK,SAASE,EAAGF,CAAC,EAElB,IAAIP,EAAMS,EAAE,IAAIF,CAAC,EACjB,OAAIP,EAAI,KAAK,CAAC,EAAI,GAChBA,EAAI,KAAK,KAAK,CAAC,EAEVA,EAAI,UAAU,IAAI,CAC3B,EAEA4K,EAAI,UAAU,KAAO,SAAenK,EAAGF,EAAG,CACxC,KAAK,SAASE,EAAGF,CAAC,EAElB,IAAIP,EAAMS,EAAE,KAAKF,CAAC,EAClB,OAAIP,EAAI,KAAK,CAAC,EAAI,GAChBA,EAAI,KAAK,KAAK,CAAC,EAEVA,CACT,EAEA4K,EAAI,UAAU,IAAM,SAAcnK,EAAGpD,EAAK,CACxC,YAAK,SAASoD,CAAC,EACR,KAAK,KAAKA,EAAE,MAAMpD,CAAG,CAAC,CAC/B,EAEAuN,EAAI,UAAU,KAAO,SAAenK,EAAGF,EAAG,CACxC,YAAK,SAASE,EAAGF,CAAC,EACX,KAAK,KAAKE,EAAE,KAAKF,CAAC,CAAC,CAC5B,EAEAqK,EAAI,UAAU,IAAM,SAAcnK,EAAGF,EAAG,CACtC,YAAK,SAASE,EAAGF,CAAC,EACX,KAAK,KAAKE,EAAE,IAAIF,CAAC,CAAC,CAC3B,EAEAqK,EAAI,UAAU,KAAO,SAAenK,EAAG,CACrC,OAAO,KAAK,KAAKA,EAAGA,EAAE,MAAM,CAAC,CAC/B,EAEAmK,EAAI,UAAU,IAAM,SAAcnK,EAAG,CACnC,OAAO,KAAK,IAAIA,EAAGA,CAAC,CACtB,EAEAmK,EAAI,UAAU,KAAO,SAAenK,EAAG,CACrC,GAAIA,EAAE,OAAO,EAAG,OAAOA,EAAE,MAAM,EAE/B,IAAIoL,EAAO,KAAK,EAAE,MAAM,CAAC,EAIzB,GAHApP,EAAOoP,EAAO,IAAM,CAAC,EAGjBA,IAAS,EAAG,CACd,IAAI9M,EAAM,KAAK,EAAE,IAAI,IAAI/B,EAAG,CAAC,CAAC,EAAE,OAAO,CAAC,EACxC,OAAO,KAAK,IAAIyD,EAAG1B,CAAG,CACxB,CAOA,QAFIkB,EAAI,KAAK,EAAE,KAAK,CAAC,EACjBoH,EAAI,EACD,CAACpH,EAAE,OAAO,GAAKA,EAAE,MAAM,CAAC,IAAM,GACnCoH,IACApH,EAAE,OAAO,CAAC,EAEZxD,EAAO,CAACwD,EAAE,OAAO,CAAC,EAElB,IAAI6L,EAAM,IAAI9O,EAAG,CAAC,EAAE,MAAM,IAAI,EAC1B+O,EAAOD,EAAI,OAAO,EAIlBE,EAAO,KAAK,EAAE,KAAK,CAAC,EAAE,OAAO,CAAC,EAC9BC,EAAI,KAAK,EAAE,UAAU,EAGzB,IAFAA,EAAI,IAAIjP,EAAG,EAAIiP,EAAIA,CAAC,EAAE,MAAM,IAAI,EAEzB,KAAK,IAAIA,EAAGD,CAAI,EAAE,IAAID,CAAI,IAAM,GACrCE,EAAE,QAAQF,CAAI,EAOhB,QAJI/N,EAAI,KAAK,IAAIiO,EAAGhM,CAAC,EACjB9B,EAAI,KAAK,IAAIsC,EAAGR,EAAE,KAAK,CAAC,EAAE,OAAO,CAAC,CAAC,EACnCC,EAAI,KAAK,IAAIO,EAAGR,CAAC,EACjBgI,EAAIZ,EACDnH,EAAE,IAAI4L,CAAG,IAAM,GAAG,CAEvB,QADIb,EAAM/K,EACDzC,EAAI,EAAGwN,EAAI,IAAIa,CAAG,IAAM,EAAGrO,IAClCwN,EAAMA,EAAI,OAAO,EAEnBxO,EAAOgB,EAAIwK,CAAC,EACZ,IAAI1H,EAAI,KAAK,IAAIvC,EAAG,IAAIhB,EAAG,CAAC,EAAE,OAAOiL,EAAIxK,EAAI,CAAC,CAAC,EAE/CU,EAAIA,EAAE,OAAOoC,CAAC,EACdvC,EAAIuC,EAAE,OAAO,EACbL,EAAIA,EAAE,OAAOlC,CAAC,EACdiK,EAAIxK,CACN,CAEA,OAAOU,CACT,EAEAyM,EAAI,UAAU,KAAO,SAAenK,EAAG,CACrC,IAAIyL,EAAMzL,EAAE,OAAO,KAAK,CAAC,EACzB,OAAIyL,EAAI,WAAa,GACnBA,EAAI,SAAW,EACR,KAAK,KAAKA,CAAG,EAAE,OAAO,GAEtB,KAAK,KAAKA,CAAG,CAExB,EAEAtB,EAAI,UAAU,IAAM,SAAcnK,EAAGpD,EAAK,CACxC,GAAIA,EAAI,OAAO,EAAG,OAAO,IAAIL,EAAG,CAAC,EAAE,MAAM,IAAI,EAC7C,GAAIK,EAAI,KAAK,CAAC,IAAM,EAAG,OAAOoD,EAAE,MAAM,EAEtC,IAAI0L,EAAa,EACbC,EAAM,IAAI,MAAM,GAAKD,CAAU,EACnCC,EAAI,GAAK,IAAIpP,EAAG,CAAC,EAAE,MAAM,IAAI,EAC7BoP,EAAI,GAAK3L,EACT,QAAShD,EAAI,EAAGA,EAAI2O,EAAI,OAAQ3O,IAC9B2O,EAAI3O,GAAK,KAAK,IAAI2O,EAAI3O,EAAI,GAAIgD,CAAC,EAGjC,IAAIT,EAAMoM,EAAI,GACVC,EAAU,EACVC,EAAa,EACb9O,EAAQH,EAAI,UAAU,EAAI,GAK9B,IAJIG,IAAU,IACZA,EAAQ,IAGLC,EAAIJ,EAAI,OAAS,EAAGI,GAAK,EAAGA,IAAK,CAEpC,QADIqB,EAAOzB,EAAI,MAAMI,GACZC,EAAIF,EAAQ,EAAGE,GAAK,EAAGA,IAAK,CACnC,IAAI2C,EAAOvB,GAAQpB,EAAK,EAKxB,GAJIsC,IAAQoM,EAAI,KACdpM,EAAM,KAAK,IAAIA,CAAG,GAGhBK,IAAQ,GAAKgM,IAAY,EAAG,CAC9BC,EAAa,EACb,QACF,CAEAD,IAAY,EACZA,GAAWhM,EACXiM,IACI,EAAAA,IAAeH,IAAe1O,IAAM,GAAKC,IAAM,MAEnDsC,EAAM,KAAK,IAAIA,EAAKoM,EAAIC,EAAQ,EAChCC,EAAa,EACbD,EAAU,EACZ,CACA7O,EAAQ,EACV,CAEA,OAAOwC,CACT,EAEA4K,EAAI,UAAU,UAAY,SAAoBvN,EAAK,CACjD,IAAIc,EAAId,EAAI,KAAK,KAAK,CAAC,EAEvB,OAAOc,IAAMd,EAAMc,EAAE,MAAM,EAAIA,CACjC,EAEAyM,EAAI,UAAU,YAAc,SAAsBvN,EAAK,CACrD,IAAI2C,EAAM3C,EAAI,MAAM,EACpB,OAAA2C,EAAI,IAAM,KACHA,CACT,EAMAhD,EAAG,KAAO,SAAeK,EAAK,CAC5B,OAAO,IAAIkP,GAAKlP,CAAG,CACrB,EAEA,SAASkP,GAAMtE,EAAG,CAChB2C,EAAI,KAAK,KAAM3C,CAAC,EAEhB,KAAK,MAAQ,KAAK,EAAE,UAAU,EAC1B,KAAK,MAAQ,KAAO,IACtB,KAAK,OAAS,GAAM,KAAK,MAAQ,IAGnC,KAAK,EAAI,IAAIjL,EAAG,CAAC,EAAE,OAAO,KAAK,KAAK,EACpC,KAAK,GAAK,KAAK,KAAK,KAAK,EAAE,IAAI,CAAC,EAChC,KAAK,KAAO,KAAK,EAAE,OAAO,KAAK,CAAC,EAEhC,KAAK,KAAO,KAAK,KAAK,IAAI,KAAK,CAAC,EAAE,MAAM,CAAC,EAAE,IAAI,KAAK,CAAC,EACrD,KAAK,KAAO,KAAK,KAAK,KAAK,KAAK,CAAC,EACjC,KAAK,KAAO,KAAK,EAAE,IAAI,KAAK,IAAI,CAClC,CACAJ,EAAS2P,GAAM3B,CAAG,EAElB2B,GAAK,UAAU,UAAY,SAAoBlP,EAAK,CAClD,OAAO,KAAK,KAAKA,EAAI,MAAM,KAAK,KAAK,CAAC,CACxC,EAEAkP,GAAK,UAAU,YAAc,SAAsBlP,EAAK,CACtD,IAAIc,EAAI,KAAK,KAAKd,EAAI,IAAI,KAAK,IAAI,CAAC,EACpC,OAAAc,EAAE,IAAM,KACDA,CACT,EAEAoO,GAAK,UAAU,KAAO,SAAe9L,EAAGF,EAAG,CACzC,GAAIE,EAAE,OAAO,GAAKF,EAAE,OAAO,EACzB,OAAAE,EAAE,MAAM,GAAK,EACbA,EAAE,OAAS,EACJA,EAGT,IAAIP,EAAIO,EAAE,KAAKF,CAAC,EACZvC,EAAIkC,EAAE,MAAM,KAAK,KAAK,EAAE,IAAI,KAAK,IAAI,EAAE,OAAO,KAAK,KAAK,EAAE,IAAI,KAAK,CAAC,EACpEsM,EAAItM,EAAE,KAAKlC,CAAC,EAAE,OAAO,KAAK,KAAK,EAC/BgC,EAAMwM,EAEV,OAAIA,EAAE,IAAI,KAAK,CAAC,GAAK,EACnBxM,EAAMwM,EAAE,KAAK,KAAK,CAAC,EACVA,EAAE,KAAK,CAAC,EAAI,IACrBxM,EAAMwM,EAAE,KAAK,KAAK,CAAC,GAGdxM,EAAI,UAAU,IAAI,CAC3B,EAEAuM,GAAK,UAAU,IAAM,SAAc9L,EAAGF,EAAG,CACvC,GAAIE,EAAE,OAAO,GAAKF,EAAE,OAAO,EAAG,OAAO,IAAIvD,EAAG,CAAC,EAAE,UAAU,IAAI,EAE7D,IAAIkD,EAAIO,EAAE,IAAIF,CAAC,EACXvC,EAAIkC,EAAE,MAAM,KAAK,KAAK,EAAE,IAAI,KAAK,IAAI,EAAE,OAAO,KAAK,KAAK,EAAE,IAAI,KAAK,CAAC,EACpEsM,EAAItM,EAAE,KAAKlC,CAAC,EAAE,OAAO,KAAK,KAAK,EAC/BgC,EAAMwM,EACV,OAAIA,EAAE,IAAI,KAAK,CAAC,GAAK,EACnBxM,EAAMwM,EAAE,KAAK,KAAK,CAAC,EACVA,EAAE,KAAK,CAAC,EAAI,IACrBxM,EAAMwM,EAAE,KAAK,KAAK,CAAC,GAGdxM,EAAI,UAAU,IAAI,CAC3B,EAEAuM,GAAK,UAAU,KAAO,SAAe9L,EAAG,CAEtC,IAAIT,EAAM,KAAK,KAAKS,EAAE,OAAO,KAAK,CAAC,EAAE,IAAI,KAAK,EAAE,CAAC,EACjD,OAAOT,EAAI,UAAU,IAAI,CAC3B,CACF,GAAG,OAAOxD,GAAW,KAAeA,GAAQD,EAAI,ICr3GhD,IAAAkQ,GAAAC,EAAA,CAAAC,GAAAC,KAAA,CAAAA,GAAO,QAAUC,GAEjB,SAASA,GAAOC,EAAKC,EAAK,CACxB,GAAI,CAACD,EACH,MAAM,IAAI,MAAMC,GAAO,kBAAkB,CAC7C,CAEAF,GAAO,MAAQ,SAAqBG,EAAG,EAAGD,EAAK,CAC7C,GAAIC,GAAK,EACP,MAAM,IAAI,MAAMD,GAAQ,qBAAuBC,EAAI,OAAS,CAAE,CAClE,ICVA,IAAAC,GAAAC,EAAAC,IAAA,cAEA,IAAIC,GAAQD,GAEZ,SAASE,GAAQC,EAAKC,EAAK,CACzB,GAAI,MAAM,QAAQD,CAAG,EACnB,OAAOA,EAAI,MAAM,EACnB,GAAI,CAACA,EACH,MAAO,CAAC,EACV,IAAIE,EAAM,CAAC,EACX,GAAI,OAAOF,GAAQ,SAAU,CAC3B,QAASG,EAAI,EAAGA,EAAIH,EAAI,OAAQG,IAC9BD,EAAIC,GAAKH,EAAIG,GAAK,EACpB,OAAOD,CACT,CACA,GAAID,IAAQ,MAAO,CACjBD,EAAMA,EAAI,QAAQ,eAAgB,EAAE,EAChCA,EAAI,OAAS,IAAM,IACrBA,EAAM,IAAMA,GACd,QAASG,EAAI,EAAGA,EAAIH,EAAI,OAAQG,GAAK,EACnCD,EAAI,KAAK,SAASF,EAAIG,GAAKH,EAAIG,EAAI,GAAI,EAAE,CAAC,CAC9C,KACE,SAASA,EAAI,EAAGA,EAAIH,EAAI,OAAQG,IAAK,CACnC,IAAIC,EAAIJ,EAAI,WAAWG,CAAC,EACpBE,EAAKD,GAAK,EACVE,EAAKF,EAAI,IACTC,EACFH,EAAI,KAAKG,EAAIC,CAAE,EAEfJ,EAAI,KAAKI,CAAE,CACf,CAEF,OAAOJ,CACT,CACAJ,GAAM,QAAUC,GAEhB,SAASQ,GAAMC,EAAM,CACnB,OAAIA,EAAK,SAAW,EACX,IAAMA,EAENA,CACX,CACAV,GAAM,MAAQS,GAEd,SAASE,GAAMT,EAAK,CAElB,QADIE,EAAM,GACDC,EAAI,EAAGA,EAAIH,EAAI,OAAQG,IAC9BD,GAAOK,GAAMP,EAAIG,GAAG,SAAS,EAAE,CAAC,EAClC,OAAOD,CACT,CACAJ,GAAM,MAAQW,GAEdX,GAAM,OAAS,SAAgBY,EAAKT,EAAK,CACvC,OAAIA,IAAQ,MACHQ,GAAMC,CAAG,EAETA,CACX,ICzDA,IAAAC,GAAAC,EAAAC,IAAA,cAEA,IAAIC,GAAQD,GACRE,GAAK,KACLC,GAAY,KACZC,GAAW,KAEfH,GAAM,OAASE,GACfF,GAAM,QAAUG,GAAS,QACzBH,GAAM,MAAQG,GAAS,MACvBH,GAAM,MAAQG,GAAS,MACvBH,GAAM,OAASG,GAAS,OAGxB,SAASC,GAAOC,EAAKC,EAAGC,EAAM,CAC5B,IAAIC,EAAM,IAAI,MAAM,KAAK,IAAIH,EAAI,UAAU,EAAGE,CAAI,EAAI,CAAC,EACvDC,EAAI,KAAK,CAAC,EAKV,QAHIC,EAAK,GAAMH,EAAI,EACfI,EAAIL,EAAI,MAAM,EAETM,EAAI,EAAGA,EAAIH,EAAI,OAAQG,IAAK,CACnC,IAAIC,EACAC,EAAMH,EAAE,MAAMD,EAAK,CAAC,EACpBC,EAAE,MAAM,GACNG,GAAOJ,GAAM,GAAK,EACpBG,GAAKH,GAAM,GAAKI,EAEhBD,EAAIC,EACNH,EAAE,MAAME,CAAC,GAETA,EAAI,EAGNJ,EAAIG,GAAKC,EACTF,EAAE,OAAO,CAAC,CACZ,CAEA,OAAOF,CACT,CACAR,GAAM,OAASI,GAGf,SAASU,GAAOC,EAAIC,EAAI,CACtB,IAAIC,EAAM,CACR,CAAC,EACD,CAAC,CACH,EAEAF,EAAKA,EAAG,MAAM,EACdC,EAAKA,EAAG,MAAM,EAId,QAHIE,EAAK,EACLC,EAAK,EACLC,EACGL,EAAG,KAAK,CAACG,CAAE,EAAI,GAAKF,EAAG,KAAK,CAACG,CAAE,EAAI,GAAG,CAE3C,IAAIE,EAAON,EAAG,MAAM,CAAC,EAAIG,EAAM,EAC3BI,EAAON,EAAG,MAAM,CAAC,EAAIG,EAAM,EAC3BE,IAAQ,IACVA,EAAM,IACJC,IAAQ,IACVA,EAAM,IACR,IAAIC,GACCF,EAAM,KAAO,EAChBE,EAAK,GAELH,EAAML,EAAG,MAAM,CAAC,EAAIG,EAAM,GACrBE,IAAO,GAAKA,IAAO,IAAME,IAAQ,EACpCC,EAAK,CAACF,EAENE,EAAKF,GAETJ,EAAI,GAAG,KAAKM,CAAE,EAEd,IAAIC,GACCF,EAAM,KAAO,EAChBE,EAAK,GAELJ,EAAMJ,EAAG,MAAM,CAAC,EAAIG,EAAM,GACrBC,IAAO,GAAKA,IAAO,IAAMC,IAAQ,EACpCG,EAAK,CAACF,EAENE,EAAKF,GAETL,EAAI,GAAG,KAAKO,CAAE,EAGV,EAAIN,IAAOK,EAAK,IAClBL,EAAK,EAAIA,GACP,EAAIC,IAAOK,EAAK,IAClBL,EAAK,EAAIA,GACXJ,EAAG,OAAO,CAAC,EACXC,EAAG,OAAO,CAAC,CACb,CAEA,OAAOC,CACT,CACAjB,GAAM,OAASc,GAEf,SAASW,GAAeC,EAAKC,EAAMC,EAAU,CAC3C,IAAIC,EAAM,IAAMF,EAChBD,EAAI,UAAUC,GAAQ,UAA0B,CAC9C,OAAO,KAAKE,KAAS,OAAY,KAAKA,GACpC,KAAKA,GAAOD,EAAS,KAAK,IAAI,CAClC,CACF,CACA5B,GAAM,eAAiByB,GAEvB,SAASK,GAAWC,EAAO,CACzB,OAAO,OAAOA,GAAU,SAAW/B,GAAM,QAAQ+B,EAAO,KAAK,EAC3DA,CACJ,CACA/B,GAAM,WAAa8B,GAEnB,SAASE,GAAUD,EAAO,CACxB,OAAO,IAAI9B,GAAG8B,EAAO,MAAO,IAAI,CAClC,CACA/B,GAAM,UAAYgC,KCrHlB,IAAAC,GAAAC,EAAA,CAAAC,GAAAC,KAAA,KAAIC,GAEJD,GAAO,QAAU,SAAcE,EAAK,CAClC,OAAKD,KACHA,GAAI,IAAIE,GAAK,IAAI,GAEZF,GAAE,SAASC,CAAG,CACvB,EAEA,SAASC,GAAKC,EAAM,CAClB,KAAK,KAAOA,CACd,CACAJ,GAAO,QAAQ,KAAOG,GAEtBA,GAAK,UAAU,SAAW,SAAkBD,EAAK,CAC/C,OAAO,KAAK,MAAMA,CAAG,CACvB,EAGAC,GAAK,UAAU,MAAQ,SAAeE,EAAG,CACvC,GAAI,KAAK,KAAK,SACZ,OAAO,KAAK,KAAK,SAASA,CAAC,EAG7B,QADIC,EAAM,IAAI,WAAWD,CAAC,EACjBE,EAAI,EAAGA,EAAID,EAAI,OAAQC,IAC9BD,EAAIC,GAAK,KAAK,KAAK,QAAQ,EAC7B,OAAOD,CACT,EAEA,GAAI,OAAO,MAAS,SACd,KAAK,QAAU,KAAK,OAAO,gBAE7BH,GAAK,UAAU,MAAQ,SAAeE,EAAG,CACvC,IAAIG,EAAM,IAAI,WAAWH,CAAC,EAC1B,YAAK,OAAO,gBAAgBG,CAAG,EACxBA,CACT,EACS,KAAK,UAAY,KAAK,SAAS,gBAExCL,GAAK,UAAU,MAAQ,SAAeE,EAAG,CACvC,IAAIG,EAAM,IAAI,WAAWH,CAAC,EAC1B,YAAK,SAAS,gBAAgBG,CAAG,EAC1BA,CACT,EAGS,OAAO,QAAW,WAE3BL,GAAK,UAAU,MAAQ,UAAW,CAChC,MAAM,IAAI,MAAM,qBAAqB,CACvC,OAIF,IAAI,CAEF,GADIM,GAAS,QAAQ,UACjB,OAAOA,GAAO,aAAgB,WAChC,MAAM,IAAI,MAAM,eAAe,EAEjCN,GAAK,UAAU,MAAQ,SAAeE,EAAG,CACvC,OAAOI,GAAO,YAAYJ,CAAC,CAC7B,CACF,MAAE,CACF,CARM,IAAAI,KCvDR,IAAAC,GAAAC,EAAA,CAAAC,GAAAC,KAAA,cAEA,IAAIC,GAAK,KACLC,GAAQ,KACRC,GAASD,GAAM,OACfE,GAASF,GAAM,OACfG,GAASH,GAAM,OAEnB,SAASI,GAAUC,EAAMC,EAAM,CAC7B,KAAK,KAAOD,EACZ,KAAK,EAAI,IAAIN,GAAGO,EAAK,EAAG,EAAE,EAG1B,KAAK,IAAMA,EAAK,MAAQP,GAAG,IAAIO,EAAK,KAAK,EAAIP,GAAG,KAAK,KAAK,CAAC,EAG3D,KAAK,KAAO,IAAIA,GAAG,CAAC,EAAE,MAAM,KAAK,GAAG,EACpC,KAAK,IAAM,IAAIA,GAAG,CAAC,EAAE,MAAM,KAAK,GAAG,EACnC,KAAK,IAAM,IAAIA,GAAG,CAAC,EAAE,MAAM,KAAK,GAAG,EAGnC,KAAK,EAAIO,EAAK,GAAK,IAAIP,GAAGO,EAAK,EAAG,EAAE,EACpC,KAAK,EAAIA,EAAK,GAAK,KAAK,cAAcA,EAAK,EAAGA,EAAK,IAAI,EAGvD,KAAK,QAAU,IAAI,MAAM,CAAC,EAC1B,KAAK,QAAU,IAAI,MAAM,CAAC,EAC1B,KAAK,QAAU,IAAI,MAAM,CAAC,EAC1B,KAAK,QAAU,IAAI,MAAM,CAAC,EAE1B,KAAK,WAAa,KAAK,EAAI,KAAK,EAAE,UAAU,EAAI,EAGhD,IAAIC,EAAc,KAAK,GAAK,KAAK,EAAE,IAAI,KAAK,CAAC,EACzC,CAACA,GAAeA,EAAY,KAAK,GAAG,EAAI,EAC1C,KAAK,KAAO,MAEZ,KAAK,cAAgB,GACrB,KAAK,KAAO,KAAK,EAAE,MAAM,KAAK,GAAG,EAErC,CACAT,GAAO,QAAUM,GAEjBA,GAAU,UAAU,MAAQ,UAAiB,CAC3C,MAAM,IAAI,MAAM,iBAAiB,CACnC,EAEAA,GAAU,UAAU,SAAW,UAAoB,CACjD,MAAM,IAAI,MAAM,iBAAiB,CACnC,EAEAA,GAAU,UAAU,aAAe,SAAsBI,EAAGC,EAAG,CAC7DN,GAAOK,EAAE,WAAW,EACpB,IAAIE,EAAUF,EAAE,YAAY,EAExBG,EAAMV,GAAOQ,EAAG,EAAG,KAAK,UAAU,EAClCG,GAAK,GAAMF,EAAQ,KAAO,IAAOA,EAAQ,KAAO,IAAM,EAAI,EAAI,GAClEE,GAAK,EAGL,IAAIC,EAAO,CAAC,EACRC,EACAC,EACJ,IAAKD,EAAI,EAAGA,EAAIH,EAAI,OAAQG,GAAKJ,EAAQ,KAAM,CAC7CK,EAAO,EACP,QAASC,EAAIF,EAAIJ,EAAQ,KAAO,EAAGM,GAAKF,EAAGE,IACzCD,GAAQA,GAAQ,GAAKJ,EAAIK,GAC3BH,EAAK,KAAKE,CAAI,CAChB,CAIA,QAFIE,EAAI,KAAK,OAAO,KAAM,KAAM,IAAI,EAChCC,EAAI,KAAK,OAAO,KAAM,KAAM,IAAI,EAC3BC,EAAIP,EAAGO,EAAI,EAAGA,IAAK,CAC1B,IAAKL,EAAI,EAAGA,EAAID,EAAK,OAAQC,IAC3BC,EAAOF,EAAKC,GACRC,IAASI,EACXD,EAAIA,EAAE,SAASR,EAAQ,OAAOI,EAAE,EACzBC,IAAS,CAACI,IACjBD,EAAIA,EAAE,SAASR,EAAQ,OAAOI,GAAG,IAAI,CAAC,GAE1CG,EAAIA,EAAE,IAAIC,CAAC,CACb,CACA,OAAOD,EAAE,IAAI,CACf,EAEAb,GAAU,UAAU,SAAW,SAAkBI,EAAGC,EAAG,CACrD,IAAIW,EAAI,EAGJC,EAAYb,EAAE,cAAcY,CAAC,EACjCA,EAAIC,EAAU,IAQd,QAPIC,EAAMD,EAAU,OAGhBV,EAAMV,GAAOQ,EAAGW,EAAG,KAAK,UAAU,EAGlCG,EAAM,KAAK,OAAO,KAAM,KAAM,IAAI,EAC7BJ,EAAIR,EAAI,OAAS,EAAGQ,GAAK,EAAGA,IAAK,CAExC,QAASH,EAAI,EAAGG,GAAK,GAAKR,EAAIQ,KAAO,EAAGA,IACtCH,IAKF,GAJIG,GAAK,GACPH,IACFO,EAAMA,EAAI,KAAKP,CAAC,EAEZG,EAAI,EACN,MACF,IAAIK,EAAIb,EAAIQ,GACZhB,GAAOqB,IAAM,CAAC,EACVhB,EAAE,OAAS,SAETgB,EAAI,EACND,EAAMA,EAAI,SAASD,EAAKE,EAAI,GAAM,EAAE,EAEpCD,EAAMA,EAAI,SAASD,EAAK,CAACE,EAAI,GAAM,GAAG,IAAI,CAAC,EAGzCA,EAAI,EACND,EAAMA,EAAI,IAAID,EAAKE,EAAI,GAAM,EAAE,EAE/BD,EAAMA,EAAI,IAAID,EAAK,CAACE,EAAI,GAAM,GAAG,IAAI,CAAC,CAE5C,CACA,OAAOhB,EAAE,OAAS,SAAWe,EAAI,IAAI,EAAIA,CAC3C,EAEAnB,GAAU,UAAU,YAAc,SAAqBqB,EACrDC,EACAC,EACAC,EACAC,EAAgB,CAChB,IAAIC,EAAW,KAAK,QAChBR,EAAM,KAAK,QACXX,EAAM,KAAK,QAGXoB,EAAM,EACNZ,EACAL,EACAN,EACJ,IAAKW,EAAI,EAAGA,EAAIS,EAAKT,IAAK,CACxBX,EAAIkB,EAAOP,GACX,IAAIE,EAAYb,EAAE,cAAciB,CAAI,EACpCK,EAASX,GAAKE,EAAU,IACxBC,EAAIH,GAAKE,EAAU,MACrB,CAGA,IAAKF,EAAIS,EAAM,EAAGT,GAAK,EAAGA,GAAK,EAAG,CAChC,IAAIF,EAAIE,EAAI,EACRD,EAAIC,EACR,GAAIW,EAASb,KAAO,GAAKa,EAASZ,KAAO,EAAG,CAC1CP,EAAIM,GAAKhB,GAAO0B,EAAOV,GAAIa,EAASb,GAAI,KAAK,UAAU,EACvDN,EAAIO,GAAKjB,GAAO0B,EAAOT,GAAIY,EAASZ,GAAI,KAAK,UAAU,EACvDa,EAAM,KAAK,IAAIpB,EAAIM,GAAG,OAAQc,CAAG,EACjCA,EAAM,KAAK,IAAIpB,EAAIO,GAAG,OAAQa,CAAG,EACjC,QACF,CAEA,IAAIC,EAAO,CACTN,EAAOT,GACP,KACA,KACAS,EAAOR,EACT,EAGIQ,EAAOT,GAAG,EAAE,IAAIS,EAAOR,GAAG,CAAC,IAAM,GACnCc,EAAK,GAAKN,EAAOT,GAAG,IAAIS,EAAOR,EAAE,EACjCc,EAAK,GAAKN,EAAOT,GAAG,IAAI,EAAE,SAASS,EAAOR,GAAG,IAAI,CAAC,GACzCQ,EAAOT,GAAG,EAAE,IAAIS,EAAOR,GAAG,EAAE,OAAO,CAAC,IAAM,GACnDc,EAAK,GAAKN,EAAOT,GAAG,IAAI,EAAE,SAASS,EAAOR,EAAE,EAC5Cc,EAAK,GAAKN,EAAOT,GAAG,IAAIS,EAAOR,GAAG,IAAI,CAAC,IAEvCc,EAAK,GAAKN,EAAOT,GAAG,IAAI,EAAE,SAASS,EAAOR,EAAE,EAC5Cc,EAAK,GAAKN,EAAOT,GAAG,IAAI,EAAE,SAASS,EAAOR,GAAG,IAAI,CAAC,GAGpD,IAAIe,EAAQ,CACV,GACA,GACA,GACA,GACA,EACA,EACA,EACA,EACA,CACF,EAEIC,EAAMhC,GAAOyB,EAAOV,GAAIU,EAAOT,EAAE,EAIrC,IAHAa,EAAM,KAAK,IAAIG,EAAI,GAAG,OAAQH,CAAG,EACjCpB,EAAIM,GAAK,IAAI,MAAMc,CAAG,EACtBpB,EAAIO,GAAK,IAAI,MAAMa,CAAG,EACjBjB,EAAI,EAAGA,EAAIiB,EAAKjB,IAAK,CACxB,IAAIqB,EAAKD,EAAI,GAAGpB,GAAK,EACjBsB,EAAKF,EAAI,GAAGpB,GAAK,EAErBH,EAAIM,GAAGH,GAAKmB,GAAOE,EAAK,GAAK,GAAKC,EAAK,IACvCzB,EAAIO,GAAGJ,GAAK,EACZQ,EAAIL,GAAKe,CACX,CACF,CAEA,IAAIT,EAAM,KAAK,OAAO,KAAM,KAAM,IAAI,EAClCc,EAAM,KAAK,QACf,IAAKlB,EAAIY,EAAKZ,GAAK,EAAGA,IAAK,CAGzB,QAFIV,EAAI,EAEDU,GAAK,GAAG,CACb,IAAImB,EAAO,GACX,IAAKxB,EAAI,EAAGA,EAAIc,EAAKd,IACnBuB,EAAIvB,GAAKH,EAAIG,GAAGK,GAAK,EACjBkB,EAAIvB,KAAO,IACbwB,EAAO,IAEX,GAAI,CAACA,EACH,MACF7B,IACAU,GACF,CAIA,GAHIA,GAAK,GACPV,IACFc,EAAMA,EAAI,KAAKd,CAAC,EACZU,EAAI,EACN,MAEF,IAAKL,EAAI,EAAGA,EAAIc,EAAKd,IAAK,CACxB,IAAIU,GAAIa,EAAIvB,GAERU,KAAM,IAEDA,GAAI,EACXhB,EAAIc,EAAIR,GAAIU,GAAI,GAAM,GACfA,GAAI,IACXhB,EAAIc,EAAIR,GAAI,CAACU,GAAI,GAAM,GAAG,IAAI,GAE5BhB,EAAE,OAAS,SACbe,EAAMA,EAAI,SAASf,CAAC,EAEpBe,EAAMA,EAAI,IAAIf,CAAC,EACnB,CACF,CAEA,IAAKW,EAAI,EAAGA,EAAIS,EAAKT,IACnBG,EAAIH,GAAK,KAEX,OAAIU,EACKN,EAEAA,EAAI,IAAI,CACnB,EAEA,SAASgB,GAAUC,EAAOnC,EAAM,CAC9B,KAAK,MAAQmC,EACb,KAAK,KAAOnC,EACZ,KAAK,YAAc,IACrB,CACAD,GAAU,UAAYmC,GAEtBA,GAAU,UAAU,GAAK,UAAuB,CAC9C,MAAM,IAAI,MAAM,iBAAiB,CACnC,EAEAA,GAAU,UAAU,SAAW,UAAoB,CACjD,OAAO,KAAK,MAAM,SAAS,IAAI,CACjC,EAEAnC,GAAU,UAAU,YAAc,SAAqBqC,EAAOC,EAAK,CACjED,EAAQzC,GAAM,QAAQyC,EAAOC,CAAG,EAEhC,IAAId,EAAM,KAAK,EAAE,WAAW,EAG5B,IAAKa,EAAM,KAAO,GAAQA,EAAM,KAAO,GAAQA,EAAM,KAAO,IACxDA,EAAM,OAAS,IAAM,EAAIb,EAAK,CAC5Ba,EAAM,KAAO,EACftC,GAAOsC,EAAMA,EAAM,OAAS,GAAK,IAAM,CAAC,EACjCA,EAAM,KAAO,GACpBtC,GAAOsC,EAAMA,EAAM,OAAS,GAAK,IAAM,CAAC,EAE1C,IAAIE,EAAO,KAAK,MAAMF,EAAM,MAAM,EAAG,EAAIb,CAAG,EAC1Ca,EAAM,MAAM,EAAIb,EAAK,EAAI,EAAIA,CAAG,CAAC,EAEnC,OAAOe,CACT,UAAYF,EAAM,KAAO,GAAQA,EAAM,KAAO,IAClCA,EAAM,OAAS,IAAMb,EAC/B,OAAO,KAAK,WAAWa,EAAM,MAAM,EAAG,EAAIb,CAAG,EAAGa,EAAM,KAAO,CAAI,EAEnE,MAAM,IAAI,MAAM,sBAAsB,CACxC,EAEAF,GAAU,UAAU,iBAAmB,SAA0BG,EAAK,CACpE,OAAO,KAAK,OAAOA,EAAK,EAAI,CAC9B,EAEAH,GAAU,UAAU,QAAU,SAAiBK,EAAS,CACtD,IAAIhB,EAAM,KAAK,MAAM,EAAE,WAAW,EAC9BiB,EAAI,KAAK,KAAK,EAAE,QAAQ,KAAMjB,CAAG,EAErC,OAAIgB,EACK,CAAE,KAAK,KAAK,EAAE,OAAO,EAAI,EAAO,CAAK,EAAE,OAAOC,CAAC,EAEjD,CAAE,CAAK,EAAE,OAAOA,EAAG,KAAK,KAAK,EAAE,QAAQ,KAAMjB,CAAG,CAAC,CAC1D,EAEAW,GAAU,UAAU,OAAS,SAAgBG,EAAKE,EAAS,CACzD,OAAO5C,GAAM,OAAO,KAAK,QAAQ4C,CAAO,EAAGF,CAAG,CAChD,EAEAH,GAAU,UAAU,WAAa,SAAoBO,EAAO,CAC1D,GAAI,KAAK,YACP,OAAO,KAET,IAAIC,EAAc,CAChB,QAAS,KACT,IAAK,KACL,KAAM,IACR,EACA,OAAAA,EAAY,IAAM,KAAK,cAAc,CAAC,EACtCA,EAAY,QAAU,KAAK,YAAY,EAAGD,CAAK,EAC/CC,EAAY,KAAO,KAAK,SAAS,EACjC,KAAK,YAAcA,EAEZ,IACT,EAEAR,GAAU,UAAU,YAAc,SAAqB9B,EAAG,CACxD,GAAI,CAAC,KAAK,YACR,MAAO,GAET,IAAIC,EAAU,KAAK,YAAY,QAC/B,OAAKA,EAGEA,EAAQ,OAAO,QAAU,KAAK,MAAMD,EAAE,UAAU,EAAI,GAAKC,EAAQ,IAAI,EAFnE,EAGX,EAEA6B,GAAU,UAAU,YAAc,SAAqBS,EAAMF,EAAO,CAClE,GAAI,KAAK,aAAe,KAAK,YAAY,QACvC,OAAO,KAAK,YAAY,QAI1B,QAFIpC,EAAU,CAAE,IAAK,EACjBa,EAAM,KACDJ,EAAI,EAAGA,EAAI2B,EAAO3B,GAAK6B,EAAM,CACpC,QAASlC,EAAI,EAAGA,EAAIkC,EAAMlC,IACxBS,EAAMA,EAAI,IAAI,EAChBb,EAAQ,KAAKa,CAAG,CAClB,CACA,MAAO,CACL,KAAMyB,EACN,OAAQtC,CACV,CACF,EAEA6B,GAAU,UAAU,cAAgB,SAAuBjB,EAAK,CAC9D,GAAI,KAAK,aAAe,KAAK,YAAY,IACvC,OAAO,KAAK,YAAY,IAK1B,QAHIqB,EAAM,CAAE,IAAK,EACbZ,GAAO,GAAKT,GAAO,EACnB2B,EAAMlB,IAAQ,EAAI,KAAO,KAAK,IAAI,EAC7BZ,EAAI,EAAGA,EAAIY,EAAKZ,IACvBwB,EAAIxB,GAAKwB,EAAIxB,EAAI,GAAG,IAAI8B,CAAG,EAC7B,MAAO,CACL,IAAK3B,EACL,OAAQqB,CACV,CACF,EAEAJ,GAAU,UAAU,SAAW,UAAoB,CACjD,OAAO,IACT,EAEAA,GAAU,UAAU,KAAO,SAAc9B,EAAG,CAE1C,QADI,EAAI,KACCU,EAAI,EAAGA,EAAIV,EAAGU,IACrB,EAAI,EAAE,IAAI,EACZ,OAAO,CACT,IC5XA,IAAA+B,GAAAC,EAAA,CAAAC,GAAAC,KAAA,CAAI,OAAO,OAAO,QAAW,WAE3BA,GAAO,QAAU,SAAkBC,EAAMC,EAAW,CAC9CA,IACFD,EAAK,OAASC,EACdD,EAAK,UAAY,OAAO,OAAOC,EAAU,UAAW,CAClD,YAAa,CACX,MAAOD,EACP,WAAY,GACZ,SAAU,GACV,aAAc,EAChB,CACF,CAAC,EAEL,EAGAD,GAAO,QAAU,SAAkBC,EAAMC,EAAW,CAClD,GAAIA,EAAW,CACbD,EAAK,OAASC,EACd,IAAIC,EAAW,UAAY,CAAC,EAC5BA,EAAS,UAAYD,EAAU,UAC/BD,EAAK,UAAY,IAAIE,EACrBF,EAAK,UAAU,YAAcA,CAC/B,CACF,ICzBF,IAAAG,GAAAC,EAAA,CAAAC,GAAAC,KAAA,IAAI,CAGF,GAFIC,GAAO,QAAQ,QAEf,OAAOA,GAAK,UAAa,WAAY,KAAM,GAC/CD,GAAO,QAAUC,GAAK,QACxB,MAAE,CAEAD,GAAO,QAAU,IACnB,CAPM,IAAAC,KCDN,IAAAC,GAAAC,EAAA,CAAAC,GAAAC,KAAA,cAEA,IAAIC,GAAQ,KACRC,GAAK,KACLC,GAAW,KACXC,GAAO,KAEPC,GAASJ,GAAM,OAEnB,SAASK,GAAWC,EAAM,CACxBH,GAAK,KAAK,KAAM,QAASG,CAAI,EAE7B,KAAK,EAAI,IAAIL,GAAGK,EAAK,EAAG,EAAE,EAAE,MAAM,KAAK,GAAG,EAC1C,KAAK,EAAI,IAAIL,GAAGK,EAAK,EAAG,EAAE,EAAE,MAAM,KAAK,GAAG,EAC1C,KAAK,KAAO,KAAK,IAAI,QAAQ,EAE7B,KAAK,MAAQ,KAAK,EAAE,QAAQ,EAAE,KAAK,CAAC,IAAM,EAC1C,KAAK,OAAS,KAAK,EAAE,QAAQ,EAAE,IAAI,KAAK,CAAC,EAAE,KAAK,EAAE,IAAM,EAGxD,KAAK,KAAO,KAAK,iBAAiBA,CAAI,EACtC,KAAK,YAAc,IAAI,MAAM,CAAC,EAC9B,KAAK,YAAc,IAAI,MAAM,CAAC,CAChC,CACAJ,GAASG,GAAYF,EAAI,EACzBJ,GAAO,QAAUM,GAEjBA,GAAW,UAAU,iBAAmB,SAA0BC,EAAM,CAEtE,GAAI,GAAC,KAAK,OAAS,CAAC,KAAK,GAAK,CAAC,KAAK,GAAK,KAAK,EAAE,KAAK,CAAC,IAAM,GAI5D,KAAIC,EACAC,EACJ,GAAIF,EAAK,KACPC,EAAO,IAAIN,GAAGK,EAAK,KAAM,EAAE,EAAE,MAAM,KAAK,GAAG,MACtC,CACL,IAAIG,EAAQ,KAAK,cAAc,KAAK,CAAC,EAErCF,EAAOE,EAAM,GAAG,IAAIA,EAAM,EAAE,EAAI,EAAIA,EAAM,GAAKA,EAAM,GACrDF,EAAOA,EAAK,MAAM,KAAK,GAAG,CAC5B,CACA,GAAID,EAAK,OACPE,EAAS,IAAIP,GAAGK,EAAK,OAAQ,EAAE,MAC1B,CAEL,IAAII,EAAU,KAAK,cAAc,KAAK,CAAC,EACnC,KAAK,EAAE,IAAIA,EAAQ,EAAE,EAAE,EAAE,IAAI,KAAK,EAAE,EAAE,OAAOH,CAAI,CAAC,IAAM,EAC1DC,EAASE,EAAQ,IAEjBF,EAASE,EAAQ,GACjBN,GAAO,KAAK,EAAE,IAAII,CAAM,EAAE,EAAE,IAAI,KAAK,EAAE,EAAE,OAAOD,CAAI,CAAC,IAAM,CAAC,EAEhE,CAGA,IAAII,EACJ,OAAIL,EAAK,MACPK,EAAQL,EAAK,MAAM,IAAI,SAASM,EAAK,CACnC,MAAO,CACL,EAAG,IAAIX,GAAGW,EAAI,EAAG,EAAE,EACnB,EAAG,IAAIX,GAAGW,EAAI,EAAG,EAAE,CACrB,CACF,CAAC,EAEDD,EAAQ,KAAK,cAAcH,CAAM,EAG5B,CACL,KAAMD,EACN,OAAQC,EACR,MAAOG,CACT,EACF,EAEAN,GAAW,UAAU,cAAgB,SAAuBQ,EAAK,CAI/D,IAAIC,EAAMD,IAAQ,KAAK,EAAI,KAAK,IAAMZ,GAAG,KAAKY,CAAG,EAC7CE,EAAO,IAAId,GAAG,CAAC,EAAE,MAAMa,CAAG,EAAE,QAAQ,EACpCE,EAAQD,EAAK,OAAO,EAEpB,EAAI,IAAId,GAAG,CAAC,EAAE,MAAMa,CAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAOC,CAAI,EAEvDE,EAAKD,EAAM,OAAO,CAAC,EAAE,QAAQ,EAC7BE,EAAKF,EAAM,OAAO,CAAC,EAAE,QAAQ,EACjC,MAAO,CAAEC,EAAIC,CAAG,CAClB,EAEAb,GAAW,UAAU,cAAgB,SAAuBG,EAAQ,CA2BlE,QAzBIW,EAAW,KAAK,EAAE,MAAM,KAAK,MAAM,KAAK,EAAE,UAAU,EAAI,CAAC,CAAC,EAI1DC,EAAIZ,EACJa,EAAI,KAAK,EAAE,MAAM,EACjBC,EAAK,IAAIrB,GAAG,CAAC,EACbsB,EAAK,IAAItB,GAAG,CAAC,EACbuB,EAAK,IAAIvB,GAAG,CAAC,EACbwB,EAAK,IAAIxB,GAAG,CAAC,EAGbyB,EACAC,EAEAC,EACAC,EAEAC,EACAC,EAEAC,EACAC,EAAI,EACJC,EACAC,EACGf,EAAE,KAAK,CAAC,IAAM,GAAG,CACtB,IAAIgB,EAAIf,EAAE,IAAID,CAAC,EACfc,EAAIb,EAAE,IAAIe,EAAE,IAAIhB,CAAC,CAAC,EAClBe,EAAIX,EAAG,IAAIY,EAAE,IAAId,CAAE,CAAC,EACpB,IAAIe,EAAIZ,EAAG,IAAIW,EAAE,IAAIb,CAAE,CAAC,EAExB,GAAI,CAACK,GAAMM,EAAE,IAAIf,CAAQ,EAAI,EAC3BO,EAAKM,EAAM,IAAI,EACfL,EAAKL,EACLM,EAAKM,EAAE,IAAI,EACXL,EAAKM,UACIP,GAAM,EAAEK,IAAM,EACvB,MAEFD,EAAQE,EAERb,EAAID,EACJA,EAAIc,EACJV,EAAKF,EACLA,EAAKa,EACLV,EAAKF,EACLA,EAAKc,CACP,CACAP,EAAKI,EAAE,IAAI,EACXH,EAAKI,EAEL,IAAIG,EAAOV,EAAG,IAAI,EAAE,IAAIC,EAAG,IAAI,CAAC,EAC5BU,EAAOT,EAAG,IAAI,EAAE,IAAIC,EAAG,IAAI,CAAC,EAChC,OAAIQ,EAAK,IAAID,CAAI,GAAK,IACpBR,EAAKJ,EACLK,EAAKJ,GAIHC,EAAG,WACLA,EAAKA,EAAG,IAAI,EACZC,EAAKA,EAAG,IAAI,GAEVC,EAAG,WACLA,EAAKA,EAAG,IAAI,EACZC,EAAKA,EAAG,IAAI,GAGP,CACL,CAAE,EAAGH,EAAI,EAAGC,CAAG,EACf,CAAE,EAAGC,EAAI,EAAGC,CAAG,CACjB,CACF,EAEA1B,GAAW,UAAU,WAAa,SAAoBmC,EAAG,CACvD,IAAI7B,EAAQ,KAAK,KAAK,MAClB8B,EAAK9B,EAAM,GACX+B,EAAK/B,EAAM,GAEXgC,EAAKD,EAAG,EAAE,IAAIF,CAAC,EAAE,SAAS,KAAK,CAAC,EAChCI,EAAKH,EAAG,EAAE,IAAI,EAAE,IAAID,CAAC,EAAE,SAAS,KAAK,CAAC,EAEtCK,EAAKF,EAAG,IAAIF,EAAG,CAAC,EAChBK,EAAKF,EAAG,IAAIF,EAAG,CAAC,EAChBK,EAAKJ,EAAG,IAAIF,EAAG,CAAC,EAChBO,EAAKJ,EAAG,IAAIF,EAAG,CAAC,EAGhBO,EAAKT,EAAE,IAAIK,CAAE,EAAE,IAAIC,CAAE,EACrBI,EAAKH,EAAG,IAAIC,CAAE,EAAE,IAAI,EACxB,MAAO,CAAE,GAAIC,EAAI,GAAIC,CAAG,CAC1B,EAEA7C,GAAW,UAAU,WAAa,SAAoB8B,EAAGgB,EAAK,CAC5DhB,EAAI,IAAIlC,GAAGkC,EAAG,EAAE,EACXA,EAAE,MACLA,EAAIA,EAAE,MAAM,KAAK,GAAG,GAEtB,IAAIV,EAAKU,EAAE,OAAO,EAAE,OAAOA,CAAC,EAAE,QAAQA,EAAE,OAAO,KAAK,CAAC,CAAC,EAAE,QAAQ,KAAK,CAAC,EAClEE,EAAIZ,EAAG,QAAQ,EACnB,GAAIY,EAAE,OAAO,EAAE,OAAOZ,CAAE,EAAE,IAAI,KAAK,IAAI,IAAM,EAC3C,MAAM,IAAI,MAAM,eAAe,EAIjC,IAAI2B,EAAQf,EAAE,QAAQ,EAAE,MAAM,EAC9B,OAAIc,GAAO,CAACC,GAAS,CAACD,GAAOC,KAC3Bf,EAAIA,EAAE,OAAO,GAER,KAAK,MAAMF,EAAGE,CAAC,CACxB,EAEAhC,GAAW,UAAU,SAAW,SAAkBgD,EAAO,CACvD,GAAIA,EAAM,IACR,MAAO,GAET,IAAIlB,EAAIkB,EAAM,EACVhB,EAAIgB,EAAM,EAEVC,EAAK,KAAK,EAAE,OAAOnB,CAAC,EACpBoB,EAAMpB,EAAE,OAAO,EAAE,OAAOA,CAAC,EAAE,QAAQmB,CAAE,EAAE,QAAQ,KAAK,CAAC,EACzD,OAAOjB,EAAE,OAAO,EAAE,QAAQkB,CAAG,EAAE,KAAK,CAAC,IAAM,CAC7C,EAEAlD,GAAW,UAAU,gBACjB,SAAyBmD,EAAQC,EAAQC,EAAgB,CAGvD,QAFIC,EAAU,KAAK,YACfC,EAAU,KAAK,YACV3B,EAAI,EAAGA,EAAIuB,EAAO,OAAQvB,IAAK,CACtC,IAAI4B,EAAQ,KAAK,WAAWJ,EAAOxB,EAAE,EACjC6B,EAAIN,EAAOvB,GACX1B,EAAOuD,EAAE,SAAS,EAElBD,EAAM,GAAG,WACXA,EAAM,GAAG,KAAK,EACdC,EAAIA,EAAE,IAAI,EAAI,GAEZD,EAAM,GAAG,WACXA,EAAM,GAAG,KAAK,EACdtD,EAAOA,EAAK,IAAI,EAAI,GAGtBoD,EAAQ1B,EAAI,GAAK6B,EACjBH,EAAQ1B,EAAI,EAAI,GAAK1B,EACrBqD,EAAQ3B,EAAI,GAAK4B,EAAM,GACvBD,EAAQ3B,EAAI,EAAI,GAAK4B,EAAM,EAC7B,CAIA,QAHIE,EAAM,KAAK,YAAY,EAAGJ,EAASC,EAAS3B,EAAI,EAAGyB,CAAc,EAG5DM,EAAI,EAAGA,EAAI/B,EAAI,EAAG+B,IACzBL,EAAQK,GAAK,KACbJ,EAAQI,GAAK,KAEf,OAAOD,CACT,EAEJ,SAASE,GAAMC,EAAO/B,EAAGE,EAAG8B,EAAO,CACjChE,GAAK,UAAU,KAAK,KAAM+D,EAAO,QAAQ,EACrC/B,IAAM,MAAQE,IAAM,MACtB,KAAK,EAAI,KACT,KAAK,EAAI,KACT,KAAK,IAAM,KAEX,KAAK,EAAI,IAAIpC,GAAGkC,EAAG,EAAE,EACrB,KAAK,EAAI,IAAIlC,GAAGoC,EAAG,EAAE,EAEjB8B,IACF,KAAK,EAAE,SAAS,KAAK,MAAM,GAAG,EAC9B,KAAK,EAAE,SAAS,KAAK,MAAM,GAAG,GAE3B,KAAK,EAAE,MACV,KAAK,EAAI,KAAK,EAAE,MAAM,KAAK,MAAM,GAAG,GACjC,KAAK,EAAE,MACV,KAAK,EAAI,KAAK,EAAE,MAAM,KAAK,MAAM,GAAG,GACtC,KAAK,IAAM,GAEf,CACAjE,GAAS+D,GAAO9D,GAAK,SAAS,EAE9BE,GAAW,UAAU,MAAQ,SAAe8B,EAAGE,EAAG8B,EAAO,CACvD,OAAO,IAAIF,GAAM,KAAM9B,EAAGE,EAAG8B,CAAK,CACpC,EAEA9D,GAAW,UAAU,cAAgB,SAAuB+D,EAAKtD,EAAK,CACpE,OAAOmD,GAAM,SAAS,KAAMG,EAAKtD,CAAG,CACtC,EAEAmD,GAAM,UAAU,SAAW,UAAoB,CAC7C,GAAI,EAAC,KAAK,MAAM,KAGhB,KAAII,EAAM,KAAK,YACf,GAAIA,GAAOA,EAAI,KACb,OAAOA,EAAI,KAEb,IAAI9D,EAAO,KAAK,MAAM,MAAM,KAAK,EAAE,OAAO,KAAK,MAAM,KAAK,IAAI,EAAG,KAAK,CAAC,EACvE,GAAI8D,EAAK,CACP,IAAIH,EAAQ,KAAK,MACbI,EAAU,SAASR,EAAG,CACxB,OAAOI,EAAM,MAAMJ,EAAE,EAAE,OAAOI,EAAM,KAAK,IAAI,EAAGJ,EAAE,CAAC,CACrD,EACAO,EAAI,KAAO9D,EACXA,EAAK,YAAc,CACjB,KAAM,KACN,IAAK8D,EAAI,KAAO,CACd,IAAKA,EAAI,IAAI,IACb,OAAQA,EAAI,IAAI,OAAO,IAAIC,CAAO,CACpC,EACA,QAASD,EAAI,SAAW,CACtB,KAAMA,EAAI,QAAQ,KAClB,OAAQA,EAAI,QAAQ,OAAO,IAAIC,CAAO,CACxC,CACF,CACF,CACA,OAAO/D,EACT,EAEA0D,GAAM,UAAU,OAAS,UAAkB,CACzC,OAAK,KAAK,YAGH,CAAE,KAAK,EAAG,KAAK,EAAG,KAAK,aAAe,CAC3C,QAAS,KAAK,YAAY,SAAW,CACnC,KAAM,KAAK,YAAY,QAAQ,KAC/B,OAAQ,KAAK,YAAY,QAAQ,OAAO,MAAM,CAAC,CACjD,EACA,IAAK,KAAK,YAAY,KAAO,CAC3B,IAAK,KAAK,YAAY,IAAI,IAC1B,OAAQ,KAAK,YAAY,IAAI,OAAO,MAAM,CAAC,CAC7C,CACF,CAAE,EAXO,CAAE,KAAK,EAAG,KAAK,CAAE,CAY5B,EAEAA,GAAM,SAAW,SAAkBC,EAAOE,EAAKtD,EAAK,CAC9C,OAAOsD,GAAQ,WACjBA,EAAM,KAAK,MAAMA,CAAG,GACtB,IAAIL,EAAMG,EAAM,MAAME,EAAI,GAAIA,EAAI,GAAItD,CAAG,EACzC,GAAI,CAACsD,EAAI,GACP,OAAOL,EAET,SAASQ,EAAUH,EAAK,CACtB,OAAOF,EAAM,MAAME,EAAI,GAAIA,EAAI,GAAItD,CAAG,CACxC,CAEA,IAAIuD,EAAMD,EAAI,GACd,OAAAL,EAAI,YAAc,CAChB,KAAM,KACN,QAASM,EAAI,SAAW,CACtB,KAAMA,EAAI,QAAQ,KAClB,OAAQ,CAAEN,CAAI,EAAE,OAAOM,EAAI,QAAQ,OAAO,IAAIE,CAAS,CAAC,CAC1D,EACA,IAAKF,EAAI,KAAO,CACd,IAAKA,EAAI,IAAI,IACb,OAAQ,CAAEN,CAAI,EAAE,OAAOM,EAAI,IAAI,OAAO,IAAIE,CAAS,CAAC,CACtD,CACF,EACOR,CACT,EAEAE,GAAM,UAAU,QAAU,UAAmB,CAC3C,OAAI,KAAK,WAAW,EACX,sBACF,gBAAkB,KAAK,EAAE,QAAQ,EAAE,SAAS,GAAI,CAAC,EACpD,OAAS,KAAK,EAAE,QAAQ,EAAE,SAAS,GAAI,CAAC,EAAI,GAClD,EAEAA,GAAM,UAAU,WAAa,UAAsB,CACjD,OAAO,KAAK,GACd,EAEAA,GAAM,UAAU,IAAM,SAAaH,EAAG,CAEpC,GAAI,KAAK,IACP,OAAOA,EAGT,GAAIA,EAAE,IACJ,OAAO,KAGT,GAAI,KAAK,GAAGA,CAAC,EACX,OAAO,KAAK,IAAI,EAGlB,GAAI,KAAK,IAAI,EAAE,GAAGA,CAAC,EACjB,OAAO,KAAK,MAAM,MAAM,KAAM,IAAI,EAGpC,GAAI,KAAK,EAAE,IAAIA,EAAE,CAAC,IAAM,EACtB,OAAO,KAAK,MAAM,MAAM,KAAM,IAAI,EAEpC,IAAIU,EAAI,KAAK,EAAE,OAAOV,EAAE,CAAC,EACrBU,EAAE,KAAK,CAAC,IAAM,IAChBA,EAAIA,EAAE,OAAO,KAAK,EAAE,OAAOV,EAAE,CAAC,EAAE,QAAQ,CAAC,GAC3C,IAAIW,EAAKD,EAAE,OAAO,EAAE,QAAQ,KAAK,CAAC,EAAE,QAAQV,EAAE,CAAC,EAC3CY,EAAKF,EAAE,OAAO,KAAK,EAAE,OAAOC,CAAE,CAAC,EAAE,QAAQ,KAAK,CAAC,EACnD,OAAO,KAAK,MAAM,MAAMA,EAAIC,CAAE,CAChC,EAEAT,GAAM,UAAU,IAAM,UAAe,CACnC,GAAI,KAAK,IACP,OAAO,KAGT,IAAIU,EAAM,KAAK,EAAE,OAAO,KAAK,CAAC,EAC9B,GAAIA,EAAI,KAAK,CAAC,IAAM,EAClB,OAAO,KAAK,MAAM,MAAM,KAAM,IAAI,EAEpC,IAAIC,EAAI,KAAK,MAAM,EAEfpD,EAAK,KAAK,EAAE,OAAO,EACnBqD,EAAQF,EAAI,QAAQ,EACpBH,EAAIhD,EAAG,OAAOA,CAAE,EAAE,QAAQA,CAAE,EAAE,QAAQoD,CAAC,EAAE,OAAOC,CAAK,EAErDJ,EAAKD,EAAE,OAAO,EAAE,QAAQ,KAAK,EAAE,OAAO,KAAK,CAAC,CAAC,EAC7CE,EAAKF,EAAE,OAAO,KAAK,EAAE,OAAOC,CAAE,CAAC,EAAE,QAAQ,KAAK,CAAC,EACnD,OAAO,KAAK,MAAM,MAAMA,EAAIC,CAAE,CAChC,EAEAT,GAAM,UAAU,KAAO,UAAgB,CACrC,OAAO,KAAK,EAAE,QAAQ,CACxB,EAEAA,GAAM,UAAU,KAAO,UAAgB,CACrC,OAAO,KAAK,EAAE,QAAQ,CACxB,EAEAA,GAAM,UAAU,IAAM,SAAazB,EAAG,CAEpC,OADAA,EAAI,IAAIvC,GAAGuC,EAAG,EAAE,EACZ,KAAK,WAAW,EACX,KACA,KAAK,YAAYA,CAAC,EAClB,KAAK,MAAM,aAAa,KAAMA,CAAC,EAC/B,KAAK,MAAM,KACX,KAAK,MAAM,gBAAgB,CAAE,IAAK,EAAG,CAAEA,CAAE,CAAC,EAE1C,KAAK,MAAM,SAAS,KAAMA,CAAC,CACtC,EAEAyB,GAAM,UAAU,OAAS,SAAgBhB,EAAIH,EAAII,EAAI,CACnD,IAAIM,EAAS,CAAE,KAAMV,CAAG,EACpBW,EAAS,CAAER,EAAIC,CAAG,EACtB,OAAI,KAAK,MAAM,KACN,KAAK,MAAM,gBAAgBM,EAAQC,CAAM,EAEzC,KAAK,MAAM,YAAY,EAAGD,EAAQC,EAAQ,CAAC,CACtD,EAEAQ,GAAM,UAAU,QAAU,SAAiBhB,EAAIH,EAAII,EAAI,CACrD,IAAIM,EAAS,CAAE,KAAMV,CAAG,EACpBW,EAAS,CAAER,EAAIC,CAAG,EACtB,OAAI,KAAK,MAAM,KACN,KAAK,MAAM,gBAAgBM,EAAQC,EAAQ,EAAI,EAE/C,KAAK,MAAM,YAAY,EAAGD,EAAQC,EAAQ,EAAG,EAAI,CAC5D,EAEAQ,GAAM,UAAU,GAAK,SAAYH,EAAG,CAClC,OAAO,OAASA,GACT,KAAK,MAAQA,EAAE,MACV,KAAK,KAAO,KAAK,EAAE,IAAIA,EAAE,CAAC,IAAM,GAAK,KAAK,EAAE,IAAIA,EAAE,CAAC,IAAM,EACvE,EAEAG,GAAM,UAAU,IAAM,SAAaa,EAAa,CAC9C,GAAI,KAAK,IACP,OAAO,KAET,IAAIf,EAAM,KAAK,MAAM,MAAM,KAAK,EAAG,KAAK,EAAE,OAAO,CAAC,EAClD,GAAIe,GAAe,KAAK,YAAa,CACnC,IAAIT,EAAM,KAAK,YACXU,EAAS,SAASjB,EAAG,CACvB,OAAOA,EAAE,IAAI,CACf,EACAC,EAAI,YAAc,CAChB,IAAKM,EAAI,KAAO,CACd,IAAKA,EAAI,IAAI,IACb,OAAQA,EAAI,IAAI,OAAO,IAAIU,CAAM,CACnC,EACA,QAASV,EAAI,SAAW,CACtB,KAAMA,EAAI,QAAQ,KAClB,OAAQA,EAAI,QAAQ,OAAO,IAAIU,CAAM,CACvC,CACF,CACF,CACA,OAAOhB,CACT,EAEAE,GAAM,UAAU,IAAM,UAAe,CACnC,GAAI,KAAK,IACP,OAAO,KAAK,MAAM,OAAO,KAAM,KAAM,IAAI,EAE3C,IAAIF,EAAM,KAAK,MAAM,OAAO,KAAK,EAAG,KAAK,EAAG,KAAK,MAAM,GAAG,EAC1D,OAAOA,CACT,EAEA,SAASiB,GAAOd,EAAO/B,EAAGE,EAAG4C,EAAG,CAC9B9E,GAAK,UAAU,KAAK,KAAM+D,EAAO,UAAU,EACvC/B,IAAM,MAAQE,IAAM,MAAQ4C,IAAM,MACpC,KAAK,EAAI,KAAK,MAAM,IACpB,KAAK,EAAI,KAAK,MAAM,IACpB,KAAK,EAAI,IAAIhF,GAAG,CAAC,IAEjB,KAAK,EAAI,IAAIA,GAAGkC,EAAG,EAAE,EACrB,KAAK,EAAI,IAAIlC,GAAGoC,EAAG,EAAE,EACrB,KAAK,EAAI,IAAIpC,GAAGgF,EAAG,EAAE,GAElB,KAAK,EAAE,MACV,KAAK,EAAI,KAAK,EAAE,MAAM,KAAK,MAAM,GAAG,GACjC,KAAK,EAAE,MACV,KAAK,EAAI,KAAK,EAAE,MAAM,KAAK,MAAM,GAAG,GACjC,KAAK,EAAE,MACV,KAAK,EAAI,KAAK,EAAE,MAAM,KAAK,MAAM,GAAG,GAEtC,KAAK,KAAO,KAAK,IAAM,KAAK,MAAM,GACpC,CACA/E,GAAS8E,GAAQ7E,GAAK,SAAS,EAE/BE,GAAW,UAAU,OAAS,SAAgB8B,EAAGE,EAAG4C,EAAG,CACrD,OAAO,IAAID,GAAO,KAAM7C,EAAGE,EAAG4C,CAAC,CACjC,EAEAD,GAAO,UAAU,IAAM,UAAe,CACpC,GAAI,KAAK,WAAW,EAClB,OAAO,KAAK,MAAM,MAAM,KAAM,IAAI,EAEpC,IAAIE,EAAO,KAAK,EAAE,QAAQ,EACtBC,EAAQD,EAAK,OAAO,EACpB5B,EAAK,KAAK,EAAE,OAAO6B,CAAK,EACxBC,EAAK,KAAK,EAAE,OAAOD,CAAK,EAAE,OAAOD,CAAI,EAEzC,OAAO,KAAK,MAAM,MAAM5B,EAAI8B,CAAE,CAChC,EAEAJ,GAAO,UAAU,IAAM,UAAe,CACpC,OAAO,KAAK,MAAM,OAAO,KAAK,EAAG,KAAK,EAAE,OAAO,EAAG,KAAK,CAAC,CAC1D,EAEAA,GAAO,UAAU,IAAM,SAAalB,EAAG,CAErC,GAAI,KAAK,WAAW,EAClB,OAAOA,EAGT,GAAIA,EAAE,WAAW,EACf,OAAO,KAGT,IAAIuB,EAAMvB,EAAE,EAAE,OAAO,EACjBwB,EAAK,KAAK,EAAE,OAAO,EACnBC,EAAK,KAAK,EAAE,OAAOF,CAAG,EACtBG,EAAK1B,EAAE,EAAE,OAAOwB,CAAE,EAClBG,EAAK,KAAK,EAAE,OAAOJ,EAAI,OAAOvB,EAAE,CAAC,CAAC,EAClC4B,EAAK5B,EAAE,EAAE,OAAOwB,EAAG,OAAO,KAAK,CAAC,CAAC,EAEjCK,EAAIJ,EAAG,OAAOC,CAAE,EAChBtD,EAAIuD,EAAG,OAAOC,CAAE,EACpB,GAAIC,EAAE,KAAK,CAAC,IAAM,EAChB,OAAIzD,EAAE,KAAK,CAAC,IAAM,EACT,KAAK,MAAM,OAAO,KAAM,KAAM,IAAI,EAElC,KAAK,IAAI,EAGpB,IAAI0D,EAAKD,EAAE,OAAO,EACdE,EAAKD,EAAG,OAAOD,CAAC,EAChBtE,EAAIkE,EAAG,OAAOK,CAAE,EAEhBnB,EAAKvC,EAAE,OAAO,EAAE,QAAQ2D,CAAE,EAAE,QAAQxE,CAAC,EAAE,QAAQA,CAAC,EAChDqD,EAAKxC,EAAE,OAAOb,EAAE,QAAQoD,CAAE,CAAC,EAAE,QAAQgB,EAAG,OAAOI,CAAE,CAAC,EAClDC,EAAK,KAAK,EAAE,OAAOhC,EAAE,CAAC,EAAE,OAAO6B,CAAC,EAEpC,OAAO,KAAK,MAAM,OAAOlB,EAAIC,EAAIoB,CAAE,CACrC,EAEAd,GAAO,UAAU,SAAW,SAAkBlB,EAAG,CAE/C,GAAI,KAAK,WAAW,EAClB,OAAOA,EAAE,IAAI,EAGf,GAAIA,EAAE,WAAW,EACf,OAAO,KAGT,IAAIwB,EAAK,KAAK,EAAE,OAAO,EACnBC,EAAK,KAAK,EACVC,EAAK1B,EAAE,EAAE,OAAOwB,CAAE,EAClBG,EAAK,KAAK,EACVC,EAAK5B,EAAE,EAAE,OAAOwB,CAAE,EAAE,OAAO,KAAK,CAAC,EAEjCK,EAAIJ,EAAG,OAAOC,CAAE,EAChBtD,EAAIuD,EAAG,OAAOC,CAAE,EACpB,GAAIC,EAAE,KAAK,CAAC,IAAM,EAChB,OAAIzD,EAAE,KAAK,CAAC,IAAM,EACT,KAAK,MAAM,OAAO,KAAM,KAAM,IAAI,EAElC,KAAK,IAAI,EAGpB,IAAI0D,EAAKD,EAAE,OAAO,EACdE,EAAKD,EAAG,OAAOD,CAAC,EAChBtE,EAAIkE,EAAG,OAAOK,CAAE,EAEhBnB,EAAKvC,EAAE,OAAO,EAAE,QAAQ2D,CAAE,EAAE,QAAQxE,CAAC,EAAE,QAAQA,CAAC,EAChDqD,EAAKxC,EAAE,OAAOb,EAAE,QAAQoD,CAAE,CAAC,EAAE,QAAQgB,EAAG,OAAOI,CAAE,CAAC,EAClDC,EAAK,KAAK,EAAE,OAAOH,CAAC,EAExB,OAAO,KAAK,MAAM,OAAOlB,EAAIC,EAAIoB,CAAE,CACrC,EAEAd,GAAO,UAAU,KAAO,SAAce,EAAK,CACzC,GAAIA,IAAQ,EACV,OAAO,KACT,GAAI,KAAK,WAAW,EAClB,OAAO,KACT,GAAI,CAACA,EACH,OAAO,KAAK,IAAI,EAElB,IAAI9D,EACJ,GAAI,KAAK,MAAM,OAAS,KAAK,MAAM,OAAQ,CACzC,IAAIC,EAAI,KACR,IAAKD,EAAI,EAAGA,EAAI8D,EAAK9D,IACnBC,EAAIA,EAAE,IAAI,EACZ,OAAOA,CACT,CAIA,IAAI0C,EAAI,KAAK,MAAM,EACf7D,EAAO,KAAK,MAAM,KAElBiF,EAAK,KAAK,EACVC,EAAK,KAAK,EACVC,EAAK,KAAK,EACVC,EAAMD,EAAG,OAAO,EAAE,OAAO,EAGzBE,EAAMH,EAAG,OAAOA,CAAE,EACtB,IAAKhE,EAAI,EAAGA,EAAI8D,EAAK9D,IAAK,CACxB,IAAIoE,EAAML,EAAG,OAAO,EAChBM,EAAOF,EAAI,OAAO,EAClBG,EAAOD,EAAK,OAAO,EACnB9B,EAAI6B,EAAI,OAAOA,CAAG,EAAE,QAAQA,CAAG,EAAE,QAAQzB,EAAE,OAAOuB,CAAG,CAAC,EAEtDK,EAAKR,EAAG,OAAOM,CAAI,EACnB7B,EAAKD,EAAE,OAAO,EAAE,QAAQgC,EAAG,OAAOA,CAAE,CAAC,EACrCC,EAAKD,EAAG,QAAQ/B,CAAE,EAClBiC,EAAMlC,EAAE,OAAOiC,CAAE,EACrBC,EAAMA,EAAI,QAAQA,CAAG,EAAE,QAAQH,CAAI,EACnC,IAAIT,EAAKM,EAAI,OAAOF,CAAE,EAClBjE,EAAI,EAAI8D,IACVI,EAAMA,EAAI,OAAOI,CAAI,GAEvBP,EAAKvB,EACLyB,EAAKJ,EACLM,EAAMM,CACR,CAEA,OAAO,KAAK,MAAM,OAAOV,EAAII,EAAI,OAAOrF,CAAI,EAAGmF,CAAE,CACnD,EAEAlB,GAAO,UAAU,IAAM,UAAe,CACpC,OAAI,KAAK,WAAW,EACX,KAEL,KAAK,MAAM,MACN,KAAK,SAAS,EACd,KAAK,MAAM,OACX,KAAK,UAAU,EAEf,KAAK,KAAK,CACrB,EAEAA,GAAO,UAAU,SAAW,UAAoB,CAC9C,IAAIP,EACAC,EACAoB,EAEJ,GAAI,KAAK,KAAM,CAMb,IAAIa,EAAK,KAAK,EAAE,OAAO,EAEnBC,EAAK,KAAK,EAAE,OAAO,EAEnBC,EAAOD,EAAG,OAAO,EAEjBE,EAAI,KAAK,EAAE,OAAOF,CAAE,EAAE,OAAO,EAAE,QAAQD,CAAE,EAAE,QAAQE,CAAI,EAC3DC,EAAIA,EAAE,QAAQA,CAAC,EAEf,IAAIC,EAAIJ,EAAG,OAAOA,CAAE,EAAE,QAAQA,CAAE,EAE5BK,EAAID,EAAE,OAAO,EAAE,QAAQD,CAAC,EAAE,QAAQA,CAAC,EAGnCG,EAAQJ,EAAK,QAAQA,CAAI,EAC7BI,EAAQA,EAAM,QAAQA,CAAK,EAC3BA,EAAQA,EAAM,QAAQA,CAAK,EAG3BxC,EAAKuC,EAELtC,EAAKqC,EAAE,OAAOD,EAAE,QAAQE,CAAC,CAAC,EAAE,QAAQC,CAAK,EAEzCnB,EAAK,KAAK,EAAE,OAAO,KAAK,CAAC,CAC3B,KAAO,CAML,IAAIlB,EAAI,KAAK,EAAE,OAAO,EAElBsC,EAAI,KAAK,EAAE,OAAO,EAElB1C,EAAI0C,EAAE,OAAO,EAEbC,EAAI,KAAK,EAAE,OAAOD,CAAC,EAAE,OAAO,EAAE,QAAQtC,CAAC,EAAE,QAAQJ,CAAC,EACtD2C,EAAIA,EAAE,QAAQA,CAAC,EAEf,IAAIC,EAAIxC,EAAE,OAAOA,CAAC,EAAE,QAAQA,CAAC,EAEzByC,EAAID,EAAE,OAAO,EAGbE,EAAK9C,EAAE,QAAQA,CAAC,EACpB8C,EAAKA,EAAG,QAAQA,CAAE,EAClBA,EAAKA,EAAG,QAAQA,CAAE,EAGlB7C,EAAK4C,EAAE,QAAQF,CAAC,EAAE,QAAQA,CAAC,EAE3BzC,EAAK0C,EAAE,OAAOD,EAAE,QAAQ1C,CAAE,CAAC,EAAE,QAAQ6C,CAAE,EAEvCxB,EAAK,KAAK,EAAE,OAAO,KAAK,CAAC,EACzBA,EAAKA,EAAG,QAAQA,CAAE,CACpB,CAEA,OAAO,KAAK,MAAM,OAAOrB,EAAIC,EAAIoB,CAAE,CACrC,EAEAd,GAAO,UAAU,UAAY,UAAqB,CAChD,IAAIP,EACAC,EACAoB,EAEJ,GAAI,KAAK,KAAM,CAMb,IAAIa,EAAK,KAAK,EAAE,OAAO,EAEnBC,EAAK,KAAK,EAAE,OAAO,EAEnBC,EAAOD,EAAG,OAAO,EAEjBE,EAAI,KAAK,EAAE,OAAOF,CAAE,EAAE,OAAO,EAAE,QAAQD,CAAE,EAAE,QAAQE,CAAI,EAC3DC,EAAIA,EAAE,QAAQA,CAAC,EAEf,IAAIC,EAAIJ,EAAG,OAAOA,CAAE,EAAE,QAAQA,CAAE,EAAE,QAAQ,KAAK,MAAM,CAAC,EAElDK,EAAID,EAAE,OAAO,EAAE,QAAQD,CAAC,EAAE,QAAQA,CAAC,EAEvCrC,EAAKuC,EAEL,IAAIC,EAAQJ,EAAK,QAAQA,CAAI,EAC7BI,EAAQA,EAAM,QAAQA,CAAK,EAC3BA,EAAQA,EAAM,QAAQA,CAAK,EAC3BvC,EAAKqC,EAAE,OAAOD,EAAE,QAAQE,CAAC,CAAC,EAAE,QAAQC,CAAK,EAEzCnB,EAAK,KAAK,EAAE,OAAO,KAAK,CAAC,CAC3B,KAAO,CAKL,IAAIyB,EAAQ,KAAK,EAAE,OAAO,EAEtBC,EAAQ,KAAK,EAAE,OAAO,EAEtBjH,EAAO,KAAK,EAAE,OAAOiH,CAAK,EAE1BC,EAAQ,KAAK,EAAE,OAAOF,CAAK,EAAE,OAAO,KAAK,EAAE,OAAOA,CAAK,CAAC,EAC5DE,EAAQA,EAAM,OAAOA,CAAK,EAAE,QAAQA,CAAK,EAEzC,IAAIC,EAAQnH,EAAK,QAAQA,CAAI,EAC7BmH,EAAQA,EAAM,QAAQA,CAAK,EAC3B,IAAIC,EAAQD,EAAM,OAAOA,CAAK,EAC9BjD,EAAKgD,EAAM,OAAO,EAAE,QAAQE,CAAK,EAEjC7B,EAAK,KAAK,EAAE,OAAO,KAAK,CAAC,EAAE,OAAO,EAAE,QAAQ0B,CAAK,EAAE,QAAQD,CAAK,EAEhE,IAAIK,EAAUJ,EAAM,OAAO,EAC3BI,EAAUA,EAAQ,QAAQA,CAAO,EACjCA,EAAUA,EAAQ,QAAQA,CAAO,EACjCA,EAAUA,EAAQ,QAAQA,CAAO,EACjClD,EAAK+C,EAAM,OAAOC,EAAM,QAAQjD,CAAE,CAAC,EAAE,QAAQmD,CAAO,CACtD,CAEA,OAAO,KAAK,MAAM,OAAOnD,EAAIC,EAAIoB,CAAE,CACrC,EAEAd,GAAO,UAAU,KAAO,UAAgB,CACtC,IAAIJ,EAAI,KAAK,MAAM,EAGfoB,EAAK,KAAK,EACVC,EAAK,KAAK,EACVC,EAAK,KAAK,EACVC,EAAMD,EAAG,OAAO,EAAE,OAAO,EAEzBG,EAAML,EAAG,OAAO,EAChB6B,EAAM5B,EAAG,OAAO,EAEhBzB,EAAI6B,EAAI,OAAOA,CAAG,EAAE,QAAQA,CAAG,EAAE,QAAQzB,EAAE,OAAOuB,CAAG,CAAC,EAEtD2B,EAAO9B,EAAG,OAAOA,CAAE,EACvB8B,EAAOA,EAAK,QAAQA,CAAI,EACxB,IAAItB,EAAKsB,EAAK,OAAOD,CAAG,EACpBpD,EAAKD,EAAE,OAAO,EAAE,QAAQgC,EAAG,OAAOA,CAAE,CAAC,EACrCC,EAAKD,EAAG,QAAQ/B,CAAE,EAElBsD,EAAOF,EAAI,OAAO,EACtBE,EAAOA,EAAK,QAAQA,CAAI,EACxBA,EAAOA,EAAK,QAAQA,CAAI,EACxBA,EAAOA,EAAK,QAAQA,CAAI,EACxB,IAAIrD,EAAKF,EAAE,OAAOiC,CAAE,EAAE,QAAQsB,CAAI,EAC9BjC,EAAKG,EAAG,OAAOA,CAAE,EAAE,OAAOC,CAAE,EAEhC,OAAO,KAAK,MAAM,OAAOzB,EAAIC,EAAIoB,CAAE,CACrC,EAEAd,GAAO,UAAU,KAAO,UAAgB,CACtC,GAAI,CAAC,KAAK,MAAM,MACd,OAAO,KAAK,IAAI,EAAE,IAAI,IAAI,EAM5B,IAAI2B,EAAK,KAAK,EAAE,OAAO,EAEnBC,EAAK,KAAK,EAAE,OAAO,EAEnBoB,EAAK,KAAK,EAAE,OAAO,EAEnBnB,EAAOD,EAAG,OAAO,EAEjBG,EAAIJ,EAAG,OAAOA,CAAE,EAAE,QAAQA,CAAE,EAE5BsB,EAAKlB,EAAE,OAAO,EAEdK,EAAI,KAAK,EAAE,OAAOR,CAAE,EAAE,OAAO,EAAE,QAAQD,CAAE,EAAE,QAAQE,CAAI,EAC3DO,EAAIA,EAAE,QAAQA,CAAC,EACfA,EAAIA,EAAE,OAAOA,CAAC,EAAE,QAAQA,CAAC,EACzBA,EAAIA,EAAE,QAAQa,CAAE,EAEhB,IAAIC,EAAKd,EAAE,OAAO,EAEdJ,EAAIH,EAAK,QAAQA,CAAI,EACzBG,EAAIA,EAAE,QAAQA,CAAC,EACfA,EAAIA,EAAE,QAAQA,CAAC,EACfA,EAAIA,EAAE,QAAQA,CAAC,EAEf,IAAI5F,EAAI2F,EAAE,QAAQK,CAAC,EAAE,OAAO,EAAE,QAAQa,CAAE,EAAE,QAAQC,CAAE,EAAE,QAAQlB,CAAC,EAE3DmB,EAAOvB,EAAG,OAAOxF,CAAC,EACtB+G,EAAOA,EAAK,QAAQA,CAAI,EACxBA,EAAOA,EAAK,QAAQA,CAAI,EACxB,IAAI1D,EAAK,KAAK,EAAE,OAAOyD,CAAE,EAAE,QAAQC,CAAI,EACvC1D,EAAKA,EAAG,QAAQA,CAAE,EAClBA,EAAKA,EAAG,QAAQA,CAAE,EAElB,IAAIC,EAAK,KAAK,EAAE,OAAOtD,EAAE,OAAO4F,EAAE,QAAQ5F,CAAC,CAAC,EAAE,QAAQgG,EAAE,OAAOc,CAAE,CAAC,CAAC,EACnExD,EAAKA,EAAG,QAAQA,CAAE,EAClBA,EAAKA,EAAG,QAAQA,CAAE,EAClBA,EAAKA,EAAG,QAAQA,CAAE,EAElB,IAAIoB,EAAK,KAAK,EAAE,OAAOsB,CAAC,EAAE,OAAO,EAAE,QAAQY,CAAE,EAAE,QAAQE,CAAE,EAEzD,OAAO,KAAK,MAAM,OAAOzD,EAAIC,EAAIoB,CAAE,CACrC,EAEAd,GAAO,UAAU,IAAM,SAAaxC,EAAG4F,EAAO,CAC5C,OAAA5F,EAAI,IAAIvC,GAAGuC,EAAG4F,CAAK,EAEZ,KAAK,MAAM,SAAS,KAAM5F,CAAC,CACpC,EAEAwC,GAAO,UAAU,GAAK,SAAYlB,EAAG,CACnC,GAAIA,EAAE,OAAS,SACb,OAAO,KAAK,GAAGA,EAAE,IAAI,CAAC,EAExB,GAAI,OAASA,EACX,MAAO,GAGT,IAAIwB,EAAK,KAAK,EAAE,OAAO,EACnBD,EAAMvB,EAAE,EAAE,OAAO,EACrB,GAAI,KAAK,EAAE,OAAOuB,CAAG,EAAE,QAAQvB,EAAE,EAAE,OAAOwB,CAAE,CAAC,EAAE,KAAK,CAAC,IAAM,EACzD,MAAO,GAGT,IAAI+C,EAAK/C,EAAG,OAAO,KAAK,CAAC,EACrBgD,EAAMjD,EAAI,OAAOvB,EAAE,CAAC,EACxB,OAAO,KAAK,EAAE,OAAOwE,CAAG,EAAE,QAAQxE,EAAE,EAAE,OAAOuE,CAAE,CAAC,EAAE,KAAK,CAAC,IAAM,CAChE,EAEArD,GAAO,UAAU,OAAS,SAAgB7C,EAAG,CAC3C,IAAIoG,EAAK,KAAK,EAAE,OAAO,EACnBC,EAAKrG,EAAE,MAAM,KAAK,MAAM,GAAG,EAAE,OAAOoG,CAAE,EAC1C,GAAI,KAAK,EAAE,IAAIC,CAAE,IAAM,EACrB,MAAO,GAIT,QAFIC,EAAKtG,EAAE,MAAM,EACb6E,EAAI,KAAK,MAAM,KAAK,OAAOuB,CAAE,IACxB,CAEP,GADAE,EAAG,KAAK,KAAK,MAAM,CAAC,EAChBA,EAAG,IAAI,KAAK,MAAM,CAAC,GAAK,EAC1B,MAAO,GAGT,GADAD,EAAG,QAAQxB,CAAC,EACR,KAAK,EAAE,IAAIwB,CAAE,IAAM,EACrB,MAAO,EACX,CACF,EAEAxD,GAAO,UAAU,QAAU,UAAmB,CAC5C,OAAI,KAAK,WAAW,EACX,uBACF,iBAAmB,KAAK,EAAE,SAAS,GAAI,CAAC,EAC3C,OAAS,KAAK,EAAE,SAAS,GAAI,CAAC,EAC9B,OAAS,KAAK,EAAE,SAAS,GAAI,CAAC,EAAI,GACxC,EAEAA,GAAO,UAAU,WAAa,UAAsB,CAElD,OAAO,KAAK,EAAE,KAAK,CAAC,IAAM,CAC5B,ICz6BA,IAAA0D,GAAAC,EAAA,CAAAC,GAAAC,KAAA,cAEA,IAAIC,GAAK,KACLC,GAAW,KACXC,GAAO,KAEPC,GAAQ,KAEZ,SAASC,GAAUC,EAAM,CACvBH,GAAK,KAAK,KAAM,OAAQG,CAAI,EAE5B,KAAK,EAAI,IAAIL,GAAGK,EAAK,EAAG,EAAE,EAAE,MAAM,KAAK,GAAG,EAC1C,KAAK,EAAI,IAAIL,GAAGK,EAAK,EAAG,EAAE,EAAE,MAAM,KAAK,GAAG,EAC1C,KAAK,GAAK,IAAIL,GAAG,CAAC,EAAE,MAAM,KAAK,GAAG,EAAE,QAAQ,EAC5C,KAAK,IAAM,IAAIA,GAAG,CAAC,EAAE,MAAM,KAAK,GAAG,EACnC,KAAK,IAAM,KAAK,GAAG,OAAO,KAAK,EAAE,OAAO,KAAK,GAAG,CAAC,CACnD,CACAC,GAASG,GAAWF,EAAI,EACxBH,GAAO,QAAUK,GAEjBA,GAAU,UAAU,SAAW,SAAkBE,EAAO,CACtD,IAAIC,EAAID,EAAM,UAAU,EAAE,EACtBE,EAAKD,EAAE,OAAO,EACdE,EAAMD,EAAG,OAAOD,CAAC,EAAE,OAAOC,EAAG,OAAO,KAAK,CAAC,CAAC,EAAE,OAAOD,CAAC,EACrDG,EAAID,EAAI,QAAQ,EAEpB,OAAOC,EAAE,OAAO,EAAE,IAAID,CAAG,IAAM,CACjC,EAEA,SAASE,GAAMC,EAAOL,EAAGM,EAAG,CAC1BX,GAAK,UAAU,KAAK,KAAMU,EAAO,YAAY,EACzCL,IAAM,MAAQM,IAAM,MACtB,KAAK,EAAI,KAAK,MAAM,IACpB,KAAK,EAAI,KAAK,MAAM,OAEpB,KAAK,EAAI,IAAIb,GAAGO,EAAG,EAAE,EACrB,KAAK,EAAI,IAAIP,GAAGa,EAAG,EAAE,EAChB,KAAK,EAAE,MACV,KAAK,EAAI,KAAK,EAAE,MAAM,KAAK,MAAM,GAAG,GACjC,KAAK,EAAE,MACV,KAAK,EAAI,KAAK,EAAE,MAAM,KAAK,MAAM,GAAG,GAE1C,CACAZ,GAASU,GAAOT,GAAK,SAAS,EAE9BE,GAAU,UAAU,YAAc,SAAqBU,EAAOC,EAAK,CACjE,OAAO,KAAK,MAAMZ,GAAM,QAAQW,EAAOC,CAAG,EAAG,CAAC,CAChD,EAEAX,GAAU,UAAU,MAAQ,SAAeG,EAAGM,EAAG,CAC/C,OAAO,IAAIF,GAAM,KAAMJ,EAAGM,CAAC,CAC7B,EAEAT,GAAU,UAAU,cAAgB,SAAuBY,EAAK,CAC9D,OAAOL,GAAM,SAAS,KAAMK,CAAG,CACjC,EAEAL,GAAM,UAAU,WAAa,UAAsB,CAEnD,EAEAA,GAAM,UAAU,QAAU,UAAmB,CAC3C,OAAO,KAAK,KAAK,EAAE,QAAQ,KAAM,KAAK,MAAM,EAAE,WAAW,CAAC,CAC5D,EAEAA,GAAM,SAAW,SAAkBC,EAAOI,EAAK,CAC7C,OAAO,IAAIL,GAAMC,EAAOI,EAAI,GAAIA,EAAI,IAAMJ,EAAM,GAAG,CACrD,EAEAD,GAAM,UAAU,QAAU,UAAmB,CAC3C,OAAI,KAAK,WAAW,EACX,sBACF,gBAAkB,KAAK,EAAE,QAAQ,EAAE,SAAS,GAAI,CAAC,EACpD,OAAS,KAAK,EAAE,QAAQ,EAAE,SAAS,GAAI,CAAC,EAAI,GAClD,EAEAA,GAAM,UAAU,WAAa,UAAsB,CAEjD,OAAO,KAAK,EAAE,KAAK,CAAC,IAAM,CAC5B,EAEAA,GAAM,UAAU,IAAM,UAAe,CAKnC,IAAIM,EAAI,KAAK,EAAE,OAAO,KAAK,CAAC,EAExBC,EAAKD,EAAE,OAAO,EAEdE,EAAI,KAAK,EAAE,OAAO,KAAK,CAAC,EAExBC,EAAKD,EAAE,OAAO,EAEdE,EAAIH,EAAG,OAAOE,CAAE,EAEhBE,EAAKJ,EAAG,OAAOE,CAAE,EAEjBG,EAAKF,EAAE,OAAOD,EAAG,OAAO,KAAK,MAAM,IAAI,OAAOC,CAAC,CAAC,CAAC,EACrD,OAAO,KAAK,MAAM,MAAMC,EAAIC,CAAE,CAChC,EAEAZ,GAAM,UAAU,IAAM,UAAe,CACnC,MAAM,IAAI,MAAM,mCAAmC,CACrD,EAEAA,GAAM,UAAU,QAAU,SAAiBa,EAAGC,EAAM,CAKlD,IAAIR,EAAI,KAAK,EAAE,OAAO,KAAK,CAAC,EAExBE,EAAI,KAAK,EAAE,OAAO,KAAK,CAAC,EAExBE,EAAIG,EAAE,EAAE,OAAOA,EAAE,CAAC,EAElBE,EAAIF,EAAE,EAAE,OAAOA,EAAE,CAAC,EAElBG,EAAKD,EAAE,OAAOT,CAAC,EAEfW,EAAKP,EAAE,OAAOF,CAAC,EAEfG,EAAKG,EAAK,EAAE,OAAOE,EAAG,OAAOC,CAAE,EAAE,OAAO,CAAC,EAEzCL,EAAKE,EAAK,EAAE,OAAOE,EAAG,QAAQC,CAAE,EAAE,OAAO,CAAC,EAC9C,OAAO,KAAK,MAAM,MAAMN,EAAIC,CAAE,CAChC,EAEAZ,GAAM,UAAU,IAAM,SAAakB,EAAG,CAMpC,QALIC,EAAID,EAAE,MAAM,EACZZ,EAAI,KACJE,EAAI,KAAK,MAAM,MAAM,KAAM,IAAI,EAC/BE,EAAI,KAECU,EAAO,CAAC,EAAGD,EAAE,KAAK,CAAC,IAAM,EAAGA,EAAE,OAAO,CAAC,EAC7CC,EAAK,KAAKD,EAAE,MAAM,CAAC,CAAC,EAEtB,QAASE,EAAID,EAAK,OAAS,EAAGC,GAAK,EAAGA,IAChCD,EAAKC,KAAO,GAEdf,EAAIA,EAAE,QAAQE,EAAGE,CAAC,EAElBF,EAAIA,EAAE,IAAI,IAGVA,EAAIF,EAAE,QAAQE,EAAGE,CAAC,EAElBJ,EAAIA,EAAE,IAAI,GAGd,OAAOE,CACT,EAEAR,GAAM,UAAU,OAAS,UAAkB,CACzC,MAAM,IAAI,MAAM,mCAAmC,CACrD,EAEAA,GAAM,UAAU,QAAU,UAAmB,CAC3C,MAAM,IAAI,MAAM,mCAAmC,CACrD,EAEAA,GAAM,UAAU,GAAK,SAAYsB,EAAO,CACtC,OAAO,KAAK,KAAK,EAAE,IAAIA,EAAM,KAAK,CAAC,IAAM,CAC3C,EAEAtB,GAAM,UAAU,UAAY,UAAqB,CAC/C,YAAK,EAAI,KAAK,EAAE,OAAO,KAAK,EAAE,QAAQ,CAAC,EACvC,KAAK,EAAI,KAAK,MAAM,IACb,IACT,EAEAA,GAAM,UAAU,KAAO,UAAgB,CAErC,YAAK,UAAU,EAER,KAAK,EAAE,QAAQ,CACxB,ICjLA,IAAAuB,GAAAC,EAAA,CAAAC,GAAAC,KAAA,cAEA,IAAIC,GAAQ,KACRC,GAAK,KACLC,GAAW,KACXC,GAAO,KAEPC,GAASJ,GAAM,OAEnB,SAASK,GAAaC,EAAM,CAE1B,KAAK,SAAWA,EAAK,EAAI,KAAO,EAChC,KAAK,MAAQ,KAAK,UAAYA,EAAK,EAAI,KAAO,GAC9C,KAAK,SAAW,KAAK,MAErBH,GAAK,KAAK,KAAM,UAAWG,CAAI,EAE/B,KAAK,EAAI,IAAIL,GAAGK,EAAK,EAAG,EAAE,EAAE,KAAK,KAAK,IAAI,CAAC,EAC3C,KAAK,EAAI,KAAK,EAAE,MAAM,KAAK,GAAG,EAC9B,KAAK,EAAI,IAAIL,GAAGK,EAAK,EAAG,EAAE,EAAE,MAAM,KAAK,GAAG,EAC1C,KAAK,GAAK,KAAK,EAAE,OAAO,EACxB,KAAK,EAAI,IAAIL,GAAGK,EAAK,EAAG,EAAE,EAAE,MAAM,KAAK,GAAG,EAC1C,KAAK,GAAK,KAAK,EAAE,OAAO,KAAK,CAAC,EAE9BF,GAAO,CAAC,KAAK,SAAW,KAAK,EAAE,QAAQ,EAAE,KAAK,CAAC,IAAM,CAAC,EACtD,KAAK,MAAQE,EAAK,EAAI,KAAO,CAC/B,CACAJ,GAASG,GAAcF,EAAI,EAC3BJ,GAAO,QAAUM,GAEjBA,GAAa,UAAU,MAAQ,SAAeE,EAAK,CACjD,OAAI,KAAK,MACAA,EAAI,OAAO,EAEX,KAAK,EAAE,OAAOA,CAAG,CAC5B,EAEAF,GAAa,UAAU,MAAQ,SAAeE,EAAK,CACjD,OAAI,KAAK,KACAA,EAEA,KAAK,EAAE,OAAOA,CAAG,CAC5B,EAGAF,GAAa,UAAU,OAAS,SAAgBG,EAAGC,EAAGC,EAAGC,EAAG,CAC1D,OAAO,KAAK,MAAMH,EAAGC,EAAGC,EAAGC,CAAC,CAC9B,EAEAN,GAAa,UAAU,WAAa,SAAoBG,EAAGI,EAAK,CAC9DJ,EAAI,IAAIP,GAAGO,EAAG,EAAE,EACXA,EAAE,MACLA,EAAIA,EAAE,MAAM,KAAK,GAAG,GAEtB,IAAIK,EAAKL,EAAE,OAAO,EACdM,EAAM,KAAK,GAAG,OAAO,KAAK,EAAE,OAAOD,CAAE,CAAC,EACtCE,EAAM,KAAK,IAAI,OAAO,KAAK,GAAG,OAAO,KAAK,CAAC,EAAE,OAAOF,CAAE,CAAC,EAEvDG,EAAKF,EAAI,OAAOC,EAAI,QAAQ,CAAC,EAC7BN,EAAIO,EAAG,QAAQ,EACnB,GAAIP,EAAE,OAAO,EAAE,OAAOO,CAAE,EAAE,IAAI,KAAK,IAAI,IAAM,EAC3C,MAAM,IAAI,MAAM,eAAe,EAEjC,IAAIC,EAAQR,EAAE,QAAQ,EAAE,MAAM,EAC9B,OAAIG,GAAO,CAACK,GAAS,CAACL,GAAOK,KAC3BR,EAAIA,EAAE,OAAO,GAER,KAAK,MAAMD,EAAGC,CAAC,CACxB,EAEAJ,GAAa,UAAU,WAAa,SAAoBI,EAAGG,EAAK,CAC9DH,EAAI,IAAIR,GAAGQ,EAAG,EAAE,EACXA,EAAE,MACLA,EAAIA,EAAE,MAAM,KAAK,GAAG,GAGtB,IAAIO,EAAKP,EAAE,OAAO,EACdM,EAAMC,EAAG,OAAO,KAAK,EAAE,EACvBF,EAAME,EAAG,OAAO,KAAK,CAAC,EAAE,OAAO,KAAK,EAAE,EAAE,OAAO,KAAK,CAAC,EACrDH,EAAKE,EAAI,OAAOD,EAAI,QAAQ,CAAC,EAEjC,GAAID,EAAG,IAAI,KAAK,IAAI,IAAM,EAAG,CAC3B,GAAID,EACF,MAAM,IAAI,MAAM,eAAe,EAE/B,OAAO,KAAK,MAAM,KAAK,KAAMH,CAAC,CAClC,CAEA,IAAID,EAAIK,EAAG,QAAQ,EACnB,GAAIL,EAAE,OAAO,EAAE,OAAOK,CAAE,EAAE,IAAI,KAAK,IAAI,IAAM,EAC3C,MAAM,IAAI,MAAM,eAAe,EAEjC,OAAIL,EAAE,QAAQ,EAAE,MAAM,IAAMI,IAC1BJ,EAAIA,EAAE,OAAO,GAER,KAAK,MAAMA,EAAGC,CAAC,CACxB,EAEAJ,GAAa,UAAU,SAAW,SAAkBa,EAAO,CACzD,GAAIA,EAAM,WAAW,EACnB,MAAO,GAGTA,EAAM,UAAU,EAEhB,IAAIL,EAAKK,EAAM,EAAE,OAAO,EACpBF,EAAKE,EAAM,EAAE,OAAO,EACpBH,EAAMF,EAAG,OAAO,KAAK,CAAC,EAAE,OAAOG,CAAE,EACjCF,EAAM,KAAK,GAAG,OAAO,KAAK,IAAI,OAAO,KAAK,EAAE,OAAOD,CAAE,EAAE,OAAOG,CAAE,CAAC,CAAC,EAEtE,OAAOD,EAAI,IAAID,CAAG,IAAM,CAC1B,EAEA,SAASK,GAAMC,EAAOZ,EAAGC,EAAGC,EAAGC,EAAG,CAChCR,GAAK,UAAU,KAAK,KAAMiB,EAAO,YAAY,EACzCZ,IAAM,MAAQC,IAAM,MAAQC,IAAM,MACpC,KAAK,EAAI,KAAK,MAAM,KACpB,KAAK,EAAI,KAAK,MAAM,IACpB,KAAK,EAAI,KAAK,MAAM,IACpB,KAAK,EAAI,KAAK,MAAM,KACpB,KAAK,KAAO,KAEZ,KAAK,EAAI,IAAIT,GAAGO,EAAG,EAAE,EACrB,KAAK,EAAI,IAAIP,GAAGQ,EAAG,EAAE,EACrB,KAAK,EAAIC,EAAI,IAAIT,GAAGS,EAAG,EAAE,EAAI,KAAK,MAAM,IACxC,KAAK,EAAIC,GAAK,IAAIV,GAAGU,EAAG,EAAE,EACrB,KAAK,EAAE,MACV,KAAK,EAAI,KAAK,EAAE,MAAM,KAAK,MAAM,GAAG,GACjC,KAAK,EAAE,MACV,KAAK,EAAI,KAAK,EAAE,MAAM,KAAK,MAAM,GAAG,GACjC,KAAK,EAAE,MACV,KAAK,EAAI,KAAK,EAAE,MAAM,KAAK,MAAM,GAAG,GAClC,KAAK,GAAK,CAAC,KAAK,EAAE,MACpB,KAAK,EAAI,KAAK,EAAE,MAAM,KAAK,MAAM,GAAG,GACtC,KAAK,KAAO,KAAK,IAAM,KAAK,MAAM,IAG9B,KAAK,MAAM,UAAY,CAAC,KAAK,IAC/B,KAAK,EAAI,KAAK,EAAE,OAAO,KAAK,CAAC,EACxB,KAAK,OACR,KAAK,EAAI,KAAK,EAAE,OAAO,KAAK,EAAE,QAAQ,CAAC,IAG/C,CACAT,GAASiB,GAAOhB,GAAK,SAAS,EAE9BE,GAAa,UAAU,cAAgB,SAAuBgB,EAAK,CACjE,OAAOF,GAAM,SAAS,KAAME,CAAG,CACjC,EAEAhB,GAAa,UAAU,MAAQ,SAAeG,EAAGC,EAAGC,EAAGC,EAAG,CACxD,OAAO,IAAIQ,GAAM,KAAMX,EAAGC,EAAGC,EAAGC,CAAC,CACnC,EAEAQ,GAAM,SAAW,SAAkBC,EAAOC,EAAK,CAC7C,OAAO,IAAIF,GAAMC,EAAOC,EAAI,GAAIA,EAAI,GAAIA,EAAI,EAAE,CAChD,EAEAF,GAAM,UAAU,QAAU,UAAmB,CAC3C,OAAI,KAAK,WAAW,EACX,sBACF,gBAAkB,KAAK,EAAE,QAAQ,EAAE,SAAS,GAAI,CAAC,EACpD,OAAS,KAAK,EAAE,QAAQ,EAAE,SAAS,GAAI,CAAC,EACxC,OAAS,KAAK,EAAE,QAAQ,EAAE,SAAS,GAAI,CAAC,EAAI,GAClD,EAEAA,GAAM,UAAU,WAAa,UAAsB,CAEjD,OAAO,KAAK,EAAE,KAAK,CAAC,IAAM,IACvB,KAAK,EAAE,IAAI,KAAK,CAAC,IAAM,GACvB,KAAK,MAAQ,KAAK,EAAE,IAAI,KAAK,MAAM,CAAC,IAAM,EAC/C,EAEAA,GAAM,UAAU,QAAU,UAAmB,CAM3C,IAAIG,EAAI,KAAK,EAAE,OAAO,EAElBC,EAAI,KAAK,EAAE,OAAO,EAElBC,EAAI,KAAK,EAAE,OAAO,EACtBA,EAAIA,EAAE,QAAQA,CAAC,EAEf,IAAIC,EAAI,KAAK,MAAM,MAAMH,CAAC,EAEtBI,EAAI,KAAK,EAAE,OAAO,KAAK,CAAC,EAAE,OAAO,EAAE,QAAQJ,CAAC,EAAE,QAAQC,CAAC,EAEvDI,EAAIF,EAAE,OAAOF,CAAC,EAEdK,EAAID,EAAE,OAAOH,CAAC,EAEdK,EAAIJ,EAAE,OAAOF,CAAC,EAEdO,EAAKJ,EAAE,OAAOE,CAAC,EAEfG,EAAKJ,EAAE,OAAOE,CAAC,EAEfG,EAAKN,EAAE,OAAOG,CAAC,EAEfI,EAAKL,EAAE,OAAOD,CAAC,EACnB,OAAO,KAAK,MAAM,MAAMG,EAAIC,EAAIE,EAAID,CAAE,CACxC,EAEAb,GAAM,UAAU,SAAW,UAAoB,CAQ7C,IAAII,EAAI,KAAK,EAAE,OAAO,KAAK,CAAC,EAAE,OAAO,EAEjCC,EAAI,KAAK,EAAE,OAAO,EAElBC,EAAI,KAAK,EAAE,OAAO,EAElBK,EACAC,EACAE,EACAP,EACAG,EACAK,EACJ,GAAI,KAAK,MAAM,QAAS,CAEtBR,EAAI,KAAK,MAAM,MAAMF,CAAC,EAEtB,IAAII,EAAIF,EAAE,OAAOD,CAAC,EACd,KAAK,MAEPK,EAAKP,EAAE,OAAOC,CAAC,EAAE,OAAOC,CAAC,EAAE,OAAOG,EAAE,OAAO,KAAK,MAAM,GAAG,CAAC,EAE1DG,EAAKH,EAAE,OAAOF,EAAE,OAAOD,CAAC,CAAC,EAEzBQ,EAAKL,EAAE,OAAO,EAAE,OAAOA,CAAC,EAAE,OAAOA,CAAC,IAGlCC,EAAI,KAAK,EAAE,OAAO,EAElBK,EAAIN,EAAE,OAAOC,CAAC,EAAE,QAAQA,CAAC,EAEzBC,EAAKP,EAAE,OAAOC,CAAC,EAAE,QAAQC,CAAC,EAAE,OAAOS,CAAC,EAEpCH,EAAKH,EAAE,OAAOF,EAAE,OAAOD,CAAC,CAAC,EAEzBQ,EAAKL,EAAE,OAAOM,CAAC,EAEnB,MAEER,EAAIF,EAAE,OAAOC,CAAC,EAEdI,EAAI,KAAK,MAAM,MAAM,KAAK,CAAC,EAAE,OAAO,EAEpCK,EAAIR,EAAE,OAAOG,CAAC,EAAE,OAAOA,CAAC,EAExBC,EAAK,KAAK,MAAM,MAAMP,EAAE,QAAQG,CAAC,CAAC,EAAE,OAAOQ,CAAC,EAE5CH,EAAK,KAAK,MAAM,MAAML,CAAC,EAAE,OAAOF,EAAE,QAAQC,CAAC,CAAC,EAE5CQ,EAAKP,EAAE,OAAOQ,CAAC,EAEjB,OAAO,KAAK,MAAM,MAAMJ,EAAIC,EAAIE,CAAE,CACpC,EAEAd,GAAM,UAAU,IAAM,UAAe,CACnC,OAAI,KAAK,WAAW,EACX,KAGL,KAAK,MAAM,SACN,KAAK,QAAQ,EAEb,KAAK,SAAS,CACzB,EAEAA,GAAM,UAAU,QAAU,SAAiBgB,EAAG,CAM5C,IAAIb,EAAI,KAAK,EAAE,OAAO,KAAK,CAAC,EAAE,OAAOa,EAAE,EAAE,OAAOA,EAAE,CAAC,CAAC,EAEhDZ,EAAI,KAAK,EAAE,OAAO,KAAK,CAAC,EAAE,OAAOY,EAAE,EAAE,OAAOA,EAAE,CAAC,CAAC,EAEhDX,EAAI,KAAK,EAAE,OAAO,KAAK,MAAM,EAAE,EAAE,OAAOW,EAAE,CAAC,EAE3CV,EAAI,KAAK,EAAE,OAAOU,EAAE,EAAE,OAAOA,EAAE,CAAC,CAAC,EAEjCT,EAAIH,EAAE,OAAOD,CAAC,EAEdM,EAAIH,EAAE,OAAOD,CAAC,EAEdG,EAAIF,EAAE,OAAOD,CAAC,EAEdK,EAAIN,EAAE,OAAOD,CAAC,EAEdQ,EAAKJ,EAAE,OAAOE,CAAC,EAEfG,EAAKJ,EAAE,OAAOE,CAAC,EAEfG,EAAKN,EAAE,OAAOG,CAAC,EAEfI,EAAKL,EAAE,OAAOD,CAAC,EACnB,OAAO,KAAK,MAAM,MAAMG,EAAIC,EAAIE,EAAID,CAAE,CACxC,EAEAb,GAAM,UAAU,SAAW,SAAkBgB,EAAG,CAO9C,IAAIb,EAAI,KAAK,EAAE,OAAOa,EAAE,CAAC,EAErBZ,EAAID,EAAE,OAAO,EAEbE,EAAI,KAAK,EAAE,OAAOW,EAAE,CAAC,EAErBV,EAAI,KAAK,EAAE,OAAOU,EAAE,CAAC,EAErBT,EAAI,KAAK,MAAM,EAAE,OAAOF,CAAC,EAAE,OAAOC,CAAC,EAEnCG,EAAIL,EAAE,OAAOG,CAAC,EAEdC,EAAIJ,EAAE,OAAOG,CAAC,EAEdU,EAAM,KAAK,EAAE,OAAO,KAAK,CAAC,EAAE,OAAOD,EAAE,EAAE,OAAOA,EAAE,CAAC,CAAC,EAAE,QAAQX,CAAC,EAAE,QAAQC,CAAC,EACxEK,EAAKR,EAAE,OAAOM,CAAC,EAAE,OAAOQ,CAAG,EAC3BL,EACAE,EACJ,OAAI,KAAK,MAAM,SAEbF,EAAKT,EAAE,OAAOK,CAAC,EAAE,OAAOF,EAAE,OAAO,KAAK,MAAM,MAAMD,CAAC,CAAC,CAAC,EAErDS,EAAKL,EAAE,OAAOD,CAAC,IAGfI,EAAKT,EAAE,OAAOK,CAAC,EAAE,OAAOF,EAAE,OAAOD,CAAC,CAAC,EAEnCS,EAAK,KAAK,MAAM,MAAML,CAAC,EAAE,OAAOD,CAAC,GAE5B,KAAK,MAAM,MAAMG,EAAIC,EAAIE,CAAE,CACpC,EAEAd,GAAM,UAAU,IAAM,SAAagB,EAAG,CACpC,OAAI,KAAK,WAAW,EACXA,EACLA,EAAE,WAAW,EACR,KAEL,KAAK,MAAM,SACN,KAAK,QAAQA,CAAC,EAEd,KAAK,SAASA,CAAC,CAC1B,EAEAhB,GAAM,UAAU,IAAM,SAAakB,EAAG,CACpC,OAAI,KAAK,YAAYA,CAAC,EACb,KAAK,MAAM,aAAa,KAAMA,CAAC,EAE/B,KAAK,MAAM,SAAS,KAAMA,CAAC,CACtC,EAEAlB,GAAM,UAAU,OAAS,SAAgBmB,EAAIH,EAAGI,EAAI,CAClD,OAAO,KAAK,MAAM,YAAY,EAAG,CAAE,KAAMJ,CAAE,EAAG,CAAEG,EAAIC,CAAG,EAAG,EAAG,EAAK,CACpE,EAEApB,GAAM,UAAU,QAAU,SAAiBmB,EAAIH,EAAGI,EAAI,CACpD,OAAO,KAAK,MAAM,YAAY,EAAG,CAAE,KAAMJ,CAAE,EAAG,CAAEG,EAAIC,CAAG,EAAG,EAAG,EAAI,CACnE,EAEApB,GAAM,UAAU,UAAY,UAAqB,CAC/C,GAAI,KAAK,KACP,OAAO,KAGT,IAAIqB,EAAK,KAAK,EAAE,QAAQ,EACxB,YAAK,EAAI,KAAK,EAAE,OAAOA,CAAE,EACzB,KAAK,EAAI,KAAK,EAAE,OAAOA,CAAE,EACrB,KAAK,IACP,KAAK,EAAI,KAAK,EAAE,OAAOA,CAAE,GAC3B,KAAK,EAAI,KAAK,MAAM,IACpB,KAAK,KAAO,GACL,IACT,EAEArB,GAAM,UAAU,IAAM,UAAe,CACnC,OAAO,KAAK,MAAM,MAAM,KAAK,EAAE,OAAO,EACpC,KAAK,EACL,KAAK,EACL,KAAK,GAAK,KAAK,EAAE,OAAO,CAAC,CAC7B,EAEAA,GAAM,UAAU,KAAO,UAAgB,CACrC,YAAK,UAAU,EACR,KAAK,EAAE,QAAQ,CACxB,EAEAA,GAAM,UAAU,KAAO,UAAgB,CACrC,YAAK,UAAU,EACR,KAAK,EAAE,QAAQ,CACxB,EAEAA,GAAM,UAAU,GAAK,SAAYsB,EAAO,CACtC,OAAO,OAASA,GACT,KAAK,KAAK,EAAE,IAAIA,EAAM,KAAK,CAAC,IAAM,GAClC,KAAK,KAAK,EAAE,IAAIA,EAAM,KAAK,CAAC,IAAM,CAC3C,EAEAtB,GAAM,UAAU,OAAS,SAAgBX,EAAG,CAC1C,IAAIkC,EAAKlC,EAAE,MAAM,KAAK,MAAM,GAAG,EAAE,OAAO,KAAK,CAAC,EAC9C,GAAI,KAAK,EAAE,IAAIkC,CAAE,IAAM,EACrB,MAAO,GAIT,QAFIC,EAAKnC,EAAE,MAAM,EACbG,EAAI,KAAK,MAAM,KAAK,OAAO,KAAK,CAAC,IAC5B,CAEP,GADAgC,EAAG,KAAK,KAAK,MAAM,CAAC,EAChBA,EAAG,IAAI,KAAK,MAAM,CAAC,GAAK,EAC1B,MAAO,GAGT,GADAD,EAAG,QAAQ/B,CAAC,EACR,KAAK,EAAE,IAAI+B,CAAE,IAAM,EACrB,MAAO,EACX,CACF,EAGAvB,GAAM,UAAU,IAAMA,GAAM,UAAU,UACtCA,GAAM,UAAU,SAAWA,GAAM,UAAU,MClb3C,IAAAyB,GAAAC,EAAAC,IAAA,cAEA,IAAIC,GAAQD,GAEZC,GAAM,KAAO,KACbA,GAAM,MAAQ,KACdA,GAAM,KAAO,KACbA,GAAM,QAAU,OCPhB,IAAAC,GAAAC,EAAAC,IAAA,cAEA,IAAIC,GAAS,KACTC,GAAW,KAEfF,GAAQ,SAAWE,GAEnB,SAASC,GAAgBC,EAAKC,EAAG,CAI/B,OAHKD,EAAI,WAAWC,CAAC,EAAI,SAAY,OAGjCA,EAAI,GAAKA,EAAI,GAAKD,EAAI,OACjB,IAEDA,EAAI,WAAWC,EAAI,CAAC,EAAI,SAAY,KAC9C,CAEA,SAASC,GAAQF,EAAKG,EAAK,CACzB,GAAI,MAAM,QAAQH,CAAG,EACnB,OAAOA,EAAI,MAAM,EACnB,GAAI,CAACA,EACH,MAAO,CAAC,EACV,IAAII,EAAM,CAAC,EACX,GAAI,OAAOJ,GAAQ,SACjB,GAAKG,GAyBE,GAAIA,IAAQ,MAIjB,IAHAH,EAAMA,EAAI,QAAQ,eAAgB,EAAE,EAChCA,EAAI,OAAS,IAAM,IACrBA,EAAM,IAAMA,GACT,EAAI,EAAG,EAAIA,EAAI,OAAQ,GAAK,EAC/BI,EAAI,KAAK,SAASJ,EAAI,GAAKA,EAAI,EAAI,GAAI,EAAE,CAAC,MAxB5C,SADIK,EAAI,EACC,EAAI,EAAG,EAAIL,EAAI,OAAQ,IAAK,CACnC,IAAIM,EAAIN,EAAI,WAAW,CAAC,EACpBM,EAAI,IACNF,EAAIC,KAAOC,EACFA,EAAI,MACbF,EAAIC,KAAQC,GAAK,EAAK,IACtBF,EAAIC,KAAQC,EAAI,GAAM,KACbP,GAAgBC,EAAK,CAAC,GAC/BM,EAAI,QAAYA,EAAI,OAAW,KAAON,EAAI,WAAW,EAAE,CAAC,EAAI,MAC5DI,EAAIC,KAAQC,GAAK,GAAM,IACvBF,EAAIC,KAASC,GAAK,GAAM,GAAM,IAC9BF,EAAIC,KAASC,GAAK,EAAK,GAAM,IAC7BF,EAAIC,KAAQC,EAAI,GAAM,MAEtBF,EAAIC,KAAQC,GAAK,GAAM,IACvBF,EAAIC,KAASC,GAAK,EAAK,GAAM,IAC7BF,EAAIC,KAAQC,EAAI,GAAM,IAE1B,KASF,KAAK,EAAI,EAAG,EAAIN,EAAI,OAAQ,IAC1BI,EAAI,GAAKJ,EAAI,GAAK,EAEtB,OAAOI,CACT,CACAR,GAAQ,QAAUM,GAElB,SAASK,GAAMP,EAAK,CAElB,QADII,EAAM,GACDH,EAAI,EAAGA,EAAID,EAAI,OAAQC,IAC9BG,GAAOI,GAAMR,EAAIC,GAAG,SAAS,EAAE,CAAC,EAClC,OAAOG,CACT,CACAR,GAAQ,MAAQW,GAEhB,SAASE,GAAMC,EAAG,CAChB,IAAIN,EAAOM,IAAM,GACLA,IAAM,EAAK,MACXA,GAAK,EAAK,UACVA,EAAI,MAAS,GACzB,OAAON,IAAQ,CACjB,CACAR,GAAQ,MAAQa,GAEhB,SAASE,GAAQX,EAAKY,EAAQ,CAE5B,QADIR,EAAM,GACDH,EAAI,EAAGA,EAAID,EAAI,OAAQC,IAAK,CACnC,IAAIS,EAAIV,EAAIC,GACRW,IAAW,WACbF,EAAID,GAAMC,CAAC,GACbN,GAAOS,GAAMH,EAAE,SAAS,EAAE,CAAC,CAC7B,CACA,OAAON,CACT,CACAR,GAAQ,QAAUe,GAElB,SAASH,GAAMM,EAAM,CACnB,OAAIA,EAAK,SAAW,EACX,IAAMA,EAENA,CACX,CACAlB,GAAQ,MAAQY,GAEhB,SAASK,GAAMC,EAAM,CACnB,OAAIA,EAAK,SAAW,EACX,IAAMA,EACNA,EAAK,SAAW,EAChB,KAAOA,EACPA,EAAK,SAAW,EAChB,MAAQA,EACRA,EAAK,SAAW,EAChB,OAASA,EACTA,EAAK,SAAW,EAChB,QAAUA,EACVA,EAAK,SAAW,EAChB,SAAWA,EACXA,EAAK,SAAW,EAChB,UAAYA,EAEZA,CACX,CACAlB,GAAQ,MAAQiB,GAEhB,SAASE,GAAOf,EAAKgB,EAAOC,EAAKL,EAAQ,CACvC,IAAIM,EAAMD,EAAMD,EAChBnB,GAAOqB,EAAM,IAAM,CAAC,EAEpB,QADId,EAAM,IAAI,MAAMc,EAAM,CAAC,EAClBjB,EAAI,EAAGkB,EAAIH,EAAOf,EAAIG,EAAI,OAAQH,IAAKkB,GAAK,EAAG,CACtD,IAAIT,EACAE,IAAW,MACbF,EAAKV,EAAImB,IAAM,GAAOnB,EAAImB,EAAI,IAAM,GAAOnB,EAAImB,EAAI,IAAM,EAAKnB,EAAImB,EAAI,GAEtET,EAAKV,EAAImB,EAAI,IAAM,GAAOnB,EAAImB,EAAI,IAAM,GAAOnB,EAAImB,EAAI,IAAM,EAAKnB,EAAImB,GACxEf,EAAIH,GAAKS,IAAM,CACjB,CACA,OAAON,CACT,CACAR,GAAQ,OAASmB,GAEjB,SAASK,GAAQpB,EAAKY,EAAQ,CAE5B,QADIR,EAAM,IAAI,MAAMJ,EAAI,OAAS,CAAC,EACzBC,EAAI,EAAGkB,EAAI,EAAGlB,EAAID,EAAI,OAAQC,IAAKkB,GAAK,EAAG,CAClD,IAAIE,EAAIrB,EAAIC,GACRW,IAAW,OACbR,EAAIe,GAAKE,IAAM,GACfjB,EAAIe,EAAI,GAAME,IAAM,GAAM,IAC1BjB,EAAIe,EAAI,GAAME,IAAM,EAAK,IACzBjB,EAAIe,EAAI,GAAKE,EAAI,MAEjBjB,EAAIe,EAAI,GAAKE,IAAM,GACnBjB,EAAIe,EAAI,GAAME,IAAM,GAAM,IAC1BjB,EAAIe,EAAI,GAAME,IAAM,EAAK,IACzBjB,EAAIe,GAAKE,EAAI,IAEjB,CACA,OAAOjB,CACT,CACAR,GAAQ,QAAUwB,GAElB,SAASE,GAAOZ,EAAGa,EAAG,CACpB,OAAQb,IAAMa,EAAMb,GAAM,GAAKa,CACjC,CACA3B,GAAQ,OAAS0B,GAEjB,SAASE,GAAOd,EAAGa,EAAG,CACpB,OAAQb,GAAKa,EAAMb,IAAO,GAAKa,CACjC,CACA3B,GAAQ,OAAS4B,GAEjB,SAASC,GAAMC,EAAGH,EAAG,CACnB,OAAQG,EAAIH,IAAO,CACrB,CACA3B,GAAQ,MAAQ6B,GAEhB,SAASE,GAAQD,EAAGH,EAAGjB,EAAG,CACxB,OAAQoB,EAAIH,EAAIjB,IAAO,CACzB,CACAV,GAAQ,QAAU+B,GAElB,SAASC,GAAQF,EAAGH,EAAGjB,EAAGuB,EAAG,CAC3B,OAAQH,EAAIH,EAAIjB,EAAIuB,IAAO,CAC7B,CACAjC,GAAQ,QAAUgC,GAElB,SAASE,GAAQJ,EAAGH,EAAGjB,EAAGuB,EAAGE,EAAG,CAC9B,OAAQL,EAAIH,EAAIjB,EAAIuB,EAAIE,IAAO,CACjC,CACAnC,GAAQ,QAAUkC,GAElB,SAASE,GAAMC,EAAKC,EAAKC,EAAIC,EAAI,CAC/B,IAAIC,EAAKJ,EAAIC,GACTI,EAAKL,EAAIC,EAAM,GAEfK,EAAMH,EAAKE,IAAQ,EACnBE,GAAMD,EAAKH,EAAK,EAAI,GAAKD,EAAKE,EAClCJ,EAAIC,GAAOM,IAAO,EAClBP,EAAIC,EAAM,GAAKK,CACjB,CACA3C,GAAQ,MAAQoC,GAEhB,SAASS,GAASN,EAAIC,EAAIC,EAAIC,EAAI,CAChC,IAAIC,EAAMH,EAAKE,IAAQ,EACnBE,GAAMD,EAAKH,EAAK,EAAI,GAAKD,EAAKE,EAClC,OAAOG,IAAO,CAChB,CACA5C,GAAQ,SAAW6C,GAEnB,SAASC,GAASP,EAAIC,EAAIC,EAAIC,EAAI,CAChC,IAAIC,EAAKH,EAAKE,EACd,OAAOC,IAAO,CAChB,CACA3C,GAAQ,SAAW8C,GAEnB,SAASC,GAAWR,EAAIC,EAAIC,EAAIC,EAAIM,EAAIC,EAAIC,EAAIC,EAAI,CAClD,IAAIC,EAAQ,EACRT,EAAKH,EACTG,EAAMA,EAAKD,IAAQ,EACnBU,GAAST,EAAKH,EAAK,EAAI,EACvBG,EAAMA,EAAKM,IAAQ,EACnBG,GAAST,EAAKM,EAAK,EAAI,EACvBN,EAAMA,EAAKQ,IAAQ,EACnBC,GAAST,EAAKQ,EAAK,EAAI,EAEvB,IAAIP,EAAKL,EAAKE,EAAKO,EAAKE,EAAKE,EAC7B,OAAOR,IAAO,CAChB,CACA5C,GAAQ,WAAa+C,GAErB,SAASM,GAAWd,EAAIC,EAAIC,EAAIC,EAAIM,EAAIC,EAAIC,EAAIC,EAAI,CAClD,IAAIR,EAAKH,EAAKE,EAAKO,EAAKE,EACxB,OAAOR,IAAO,CAChB,CACA3C,GAAQ,WAAaqD,GAErB,SAASC,GAAWf,EAAIC,EAAIC,EAAIC,EAAIM,EAAIC,EAAIC,EAAIC,EAAII,EAAIC,EAAI,CAC1D,IAAIJ,EAAQ,EACRT,EAAKH,EACTG,EAAMA,EAAKD,IAAQ,EACnBU,GAAST,EAAKH,EAAK,EAAI,EACvBG,EAAMA,EAAKM,IAAQ,EACnBG,GAAST,EAAKM,EAAK,EAAI,EACvBN,EAAMA,EAAKQ,IAAQ,EACnBC,GAAST,EAAKQ,EAAK,EAAI,EACvBR,EAAMA,EAAKa,IAAQ,EACnBJ,GAAST,EAAKa,EAAK,EAAI,EAEvB,IAAIZ,EAAKL,EAAKE,EAAKO,EAAKE,EAAKK,EAAKH,EAClC,OAAOR,IAAO,CAChB,CACA5C,GAAQ,WAAasD,GAErB,SAASG,GAAWlB,EAAIC,EAAIC,EAAIC,EAAIM,EAAIC,EAAIC,EAAIC,EAAII,EAAIC,EAAI,CAC1D,IAAIb,EAAKH,EAAKE,EAAKO,EAAKE,EAAKK,EAE7B,OAAOb,IAAO,CAChB,CACA3C,GAAQ,WAAayD,GAErB,SAASC,GAAUnB,EAAIC,EAAImB,EAAK,CAC9B,IAAIC,EAAKpB,GAAO,GAAKmB,EAASpB,IAAOoB,EACrC,OAAOC,IAAM,CACf,CACA5D,GAAQ,UAAY0D,GAEpB,SAASG,GAAUtB,EAAIC,EAAImB,EAAK,CAC9B,IAAIC,EAAKrB,GAAO,GAAKoB,EAASnB,IAAOmB,EACrC,OAAOC,IAAM,CACf,CACA5D,GAAQ,UAAY6D,GAEpB,SAASC,GAASvB,EAAIC,EAAImB,EAAK,CAC7B,OAAOpB,IAAOoB,CAChB,CACA3D,GAAQ,SAAW8D,GAEnB,SAASC,GAASxB,EAAIC,EAAImB,EAAK,CAC7B,IAAIC,EAAKrB,GAAO,GAAKoB,EAASnB,IAAOmB,EACrC,OAAOC,IAAM,CACf,CACA5D,GAAQ,SAAW+D,KCrRnB,IAAAC,GAAAC,EAAAC,IAAA,cAEA,IAAIC,GAAQ,KACRC,GAAS,KAEb,SAASC,IAAY,CACnB,KAAK,QAAU,KACf,KAAK,aAAe,EACpB,KAAK,UAAY,KAAK,YAAY,UAClC,KAAK,QAAU,KAAK,YAAY,QAChC,KAAK,aAAe,KAAK,YAAY,aACrC,KAAK,UAAY,KAAK,YAAY,UAAY,EAC9C,KAAK,OAAS,MAEd,KAAK,QAAU,KAAK,UAAY,EAChC,KAAK,SAAW,KAAK,UAAY,EACnC,CACAH,GAAQ,UAAYG,GAEpBA,GAAU,UAAU,OAAS,SAAgBC,EAAKC,EAAK,CAUrD,GARAD,EAAMH,GAAM,QAAQG,EAAKC,CAAG,EACvB,KAAK,QAGR,KAAK,QAAU,KAAK,QAAQ,OAAOD,CAAG,EAFtC,KAAK,QAAUA,EAGjB,KAAK,cAAgBA,EAAI,OAGrB,KAAK,QAAQ,QAAU,KAAK,QAAS,CACvCA,EAAM,KAAK,QAGX,IAAIE,EAAIF,EAAI,OAAS,KAAK,QAC1B,KAAK,QAAUA,EAAI,MAAMA,EAAI,OAASE,EAAGF,EAAI,MAAM,EAC/C,KAAK,QAAQ,SAAW,IAC1B,KAAK,QAAU,MAEjBA,EAAMH,GAAM,OAAOG,EAAK,EAAGA,EAAI,OAASE,EAAG,KAAK,MAAM,EACtD,QAAS,EAAI,EAAG,EAAIF,EAAI,OAAQ,GAAK,KAAK,SACxC,KAAK,QAAQA,EAAK,EAAG,EAAI,KAAK,QAAQ,CAC1C,CAEA,OAAO,IACT,EAEAD,GAAU,UAAU,OAAS,SAAgBE,EAAK,CAChD,YAAK,OAAO,KAAK,KAAK,CAAC,EACvBH,GAAO,KAAK,UAAY,IAAI,EAErB,KAAK,QAAQG,CAAG,CACzB,EAEAF,GAAU,UAAU,KAAO,UAAe,CACxC,IAAII,EAAM,KAAK,aACXC,EAAQ,KAAK,QACbC,EAAID,GAAUD,EAAM,KAAK,WAAaC,EACtCE,EAAM,IAAI,MAAMD,EAAI,KAAK,SAAS,EACtCC,EAAI,GAAK,IACT,QAASC,EAAI,EAAGA,EAAIF,EAAGE,IACrBD,EAAIC,GAAK,EAIX,GADAJ,IAAQ,EACJ,KAAK,SAAW,MAAO,CACzB,QAASK,EAAI,EAAGA,EAAI,KAAK,UAAWA,IAClCF,EAAIC,KAAO,EAEbD,EAAIC,KAAO,EACXD,EAAIC,KAAO,EACXD,EAAIC,KAAO,EACXD,EAAIC,KAAO,EACXD,EAAIC,KAAQJ,IAAQ,GAAM,IAC1BG,EAAIC,KAAQJ,IAAQ,GAAM,IAC1BG,EAAIC,KAAQJ,IAAQ,EAAK,IACzBG,EAAIC,KAAOJ,EAAM,GACnB,KAUE,KATAG,EAAIC,KAAOJ,EAAM,IACjBG,EAAIC,KAAQJ,IAAQ,EAAK,IACzBG,EAAIC,KAAQJ,IAAQ,GAAM,IAC1BG,EAAIC,KAAQJ,IAAQ,GAAM,IAC1BG,EAAIC,KAAO,EACXD,EAAIC,KAAO,EACXD,EAAIC,KAAO,EACXD,EAAIC,KAAO,EAENC,EAAI,EAAGA,EAAI,KAAK,UAAWA,IAC9BF,EAAIC,KAAO,EAGf,OAAOD,CACT,IC3FA,IAAAG,GAAAC,EAAAC,IAAA,cAEA,IAAIC,GAAQ,KACRC,GAASD,GAAM,OAEnB,SAASE,GAAKC,EAAGC,EAAGC,EAAGC,EAAG,CACxB,GAAIH,IAAM,EACR,OAAOI,GAAKH,EAAGC,EAAGC,CAAC,EACrB,GAAIH,IAAM,GAAKA,IAAM,EACnB,OAAOK,GAAIJ,EAAGC,EAAGC,CAAC,EACpB,GAAIH,IAAM,EACR,OAAOM,GAAML,EAAGC,EAAGC,CAAC,CACxB,CACAP,GAAQ,KAAOG,GAEf,SAASK,GAAKH,EAAGC,EAAGC,EAAG,CACrB,OAAQF,EAAIC,EAAO,CAACD,EAAKE,CAC3B,CACAP,GAAQ,KAAOQ,GAEf,SAASE,GAAML,EAAGC,EAAGC,EAAG,CACtB,OAAQF,EAAIC,EAAMD,EAAIE,EAAMD,EAAIC,CAClC,CACAP,GAAQ,MAAQU,GAEhB,SAASD,GAAIJ,EAAGC,EAAGC,EAAG,CACpB,OAAOF,EAAIC,EAAIC,CACjB,CACAP,GAAQ,IAAMS,GAEd,SAASE,GAAON,EAAG,CACjB,OAAOH,GAAOG,EAAG,CAAC,EAAIH,GAAOG,EAAG,EAAE,EAAIH,GAAOG,EAAG,EAAE,CACpD,CACAL,GAAQ,OAASW,GAEjB,SAASC,GAAOP,EAAG,CACjB,OAAOH,GAAOG,EAAG,CAAC,EAAIH,GAAOG,EAAG,EAAE,EAAIH,GAAOG,EAAG,EAAE,CACpD,CACAL,GAAQ,OAASY,GAEjB,SAASC,GAAOR,EAAG,CACjB,OAAOH,GAAOG,EAAG,CAAC,EAAIH,GAAOG,EAAG,EAAE,EAAKA,IAAM,CAC/C,CACAL,GAAQ,OAASa,GAEjB,SAASC,GAAOT,EAAG,CACjB,OAAOH,GAAOG,EAAG,EAAE,EAAIH,GAAOG,EAAG,EAAE,EAAKA,IAAM,EAChD,CACAL,GAAQ,OAASc,KChDjB,IAAAC,GAAAC,EAAA,CAAAC,GAAAC,KAAA,cAEA,IAAIC,GAAQ,KACRC,GAAS,KACTC,GAAY,KAEZC,GAASH,GAAM,OACfI,GAAQJ,GAAM,MACdK,GAAUL,GAAM,QAChBM,GAAOJ,GAAU,KACjBK,GAAYN,GAAO,UAEnBO,GAAS,CACX,WAAY,WACZ,WAAY,UACd,EAEA,SAASC,IAAO,CACd,GAAI,EAAE,gBAAgBA,IACpB,OAAO,IAAIA,GAEbF,GAAU,KAAK,IAAI,EACnB,KAAK,EAAI,CACP,WAAY,WAAY,WACxB,UAAY,UAAW,EACzB,KAAK,EAAI,IAAI,MAAM,EAAE,CACvB,CAEAP,GAAM,SAASS,GAAMF,EAAS,EAC9BR,GAAO,QAAUU,GAEjBA,GAAK,UAAY,IACjBA,GAAK,QAAU,IACfA,GAAK,aAAe,GACpBA,GAAK,UAAY,GAEjBA,GAAK,UAAU,QAAU,SAAiBC,EAAKC,EAAO,CAGpD,QAFIC,EAAI,KAAK,EAEJ,EAAI,EAAG,EAAI,GAAI,IACtBA,EAAE,GAAKF,EAAIC,EAAQ,GAErB,KAAM,EAAIC,EAAE,OAAQ,IAClBA,EAAE,GAAKT,GAAOS,EAAE,EAAI,GAAKA,EAAE,EAAI,GAAKA,EAAE,EAAI,IAAMA,EAAE,EAAI,IAAK,CAAC,EAE9D,IAAIC,EAAI,KAAK,EAAE,GACXC,EAAI,KAAK,EAAE,GACXC,EAAI,KAAK,EAAE,GACXC,EAAI,KAAK,EAAE,GACXC,EAAI,KAAK,EAAE,GAEf,IAAK,EAAI,EAAG,EAAIL,EAAE,OAAQ,IAAK,CAC7B,IAAIM,EAAI,CAAC,EAAE,EAAI,IACXC,EAAId,GAAQF,GAAOU,EAAG,CAAC,EAAGP,GAAKY,EAAGJ,EAAGC,EAAGC,CAAC,EAAGC,EAAGL,EAAE,GAAIJ,GAAOU,EAAE,EAClED,EAAID,EACJA,EAAID,EACJA,EAAIZ,GAAOW,EAAG,EAAE,EAChBA,EAAID,EACJA,EAAIM,CACN,CAEA,KAAK,EAAE,GAAKf,GAAM,KAAK,EAAE,GAAIS,CAAC,EAC9B,KAAK,EAAE,GAAKT,GAAM,KAAK,EAAE,GAAIU,CAAC,EAC9B,KAAK,EAAE,GAAKV,GAAM,KAAK,EAAE,GAAIW,CAAC,EAC9B,KAAK,EAAE,GAAKX,GAAM,KAAK,EAAE,GAAIY,CAAC,EAC9B,KAAK,EAAE,GAAKZ,GAAM,KAAK,EAAE,GAAIa,CAAC,CAChC,EAEAR,GAAK,UAAU,QAAU,SAAgBW,EAAK,CAC5C,OAAIA,IAAQ,MACHpB,GAAM,QAAQ,KAAK,EAAG,KAAK,EAE3BA,GAAM,QAAQ,KAAK,EAAG,KAAK,CACtC,ICzEA,IAAAqB,GAAAC,EAAA,CAAAC,GAAAC,KAAA,cAEA,IAAIC,GAAQ,KACRC,GAAS,KACTC,GAAY,KACZC,GAAS,KAETC,GAAQJ,GAAM,MACdK,GAAUL,GAAM,QAChBM,GAAUN,GAAM,QAChBO,GAAOL,GAAU,KACjBM,GAAQN,GAAU,MAClBO,GAASP,GAAU,OACnBQ,GAASR,GAAU,OACnBS,GAAST,GAAU,OACnBU,GAASV,GAAU,OAEnBW,GAAYZ,GAAO,UAEnBa,GAAW,CACb,WAAY,WAAY,WAAY,WACpC,UAAY,WAAY,WAAY,WACpC,WAAY,UAAY,UAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,UAAY,UACpC,UAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,UAAY,UACpC,UAAY,UAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,UACpC,UAAY,UAAY,UAAY,UACpC,UAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,UACtC,EAEA,SAASC,IAAS,CAChB,GAAI,EAAE,gBAAgBA,IACpB,OAAO,IAAIA,GAEbF,GAAU,KAAK,IAAI,EACnB,KAAK,EAAI,CACP,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,UAAY,UACtC,EACA,KAAK,EAAIC,GACT,KAAK,EAAI,IAAI,MAAM,EAAE,CACvB,CACAd,GAAM,SAASe,GAAQF,EAAS,EAChCd,GAAO,QAAUgB,GAEjBA,GAAO,UAAY,IACnBA,GAAO,QAAU,IACjBA,GAAO,aAAe,IACtBA,GAAO,UAAY,GAEnBA,GAAO,UAAU,QAAU,SAAiBC,EAAKC,EAAO,CAGtD,QAFIC,EAAI,KAAK,EAEJ,EAAI,EAAG,EAAI,GAAI,IACtBA,EAAE,GAAKF,EAAIC,EAAQ,GACrB,KAAO,EAAIC,EAAE,OAAQ,IACnBA,EAAE,GAAKb,GAAQO,GAAOM,EAAE,EAAI,EAAE,EAAGA,EAAE,EAAI,GAAIP,GAAOO,EAAE,EAAI,GAAG,EAAGA,EAAE,EAAI,GAAG,EAEzE,IAAIC,EAAI,KAAK,EAAE,GACXC,EAAI,KAAK,EAAE,GACXC,EAAI,KAAK,EAAE,GACXC,EAAI,KAAK,EAAE,GACXC,EAAI,KAAK,EAAE,GACXC,EAAI,KAAK,EAAE,GACXC,EAAI,KAAK,EAAE,GACXC,EAAI,KAAK,EAAE,GAGf,IADAvB,GAAO,KAAK,EAAE,SAAWe,EAAE,MAAM,EAC5B,EAAI,EAAG,EAAIA,EAAE,OAAQ,IAAK,CAC7B,IAAIS,EAAKrB,GAAQoB,EAAGhB,GAAOa,CAAC,EAAGhB,GAAKgB,EAAGC,EAAGC,CAAC,EAAG,KAAK,EAAE,GAAIP,EAAE,EAAE,EACzDU,EAAKxB,GAAMK,GAAOU,CAAC,EAAGX,GAAMW,EAAGC,EAAGC,CAAC,CAAC,EACxCK,EAAID,EACJA,EAAID,EACJA,EAAID,EACJA,EAAInB,GAAMkB,EAAGK,CAAE,EACfL,EAAID,EACJA,EAAID,EACJA,EAAID,EACJA,EAAIf,GAAMuB,EAAIC,CAAE,CAClB,CAEA,KAAK,EAAE,GAAKxB,GAAM,KAAK,EAAE,GAAIe,CAAC,EAC9B,KAAK,EAAE,GAAKf,GAAM,KAAK,EAAE,GAAIgB,CAAC,EAC9B,KAAK,EAAE,GAAKhB,GAAM,KAAK,EAAE,GAAIiB,CAAC,EAC9B,KAAK,EAAE,GAAKjB,GAAM,KAAK,EAAE,GAAIkB,CAAC,EAC9B,KAAK,EAAE,GAAKlB,GAAM,KAAK,EAAE,GAAImB,CAAC,EAC9B,KAAK,EAAE,GAAKnB,GAAM,KAAK,EAAE,GAAIoB,CAAC,EAC9B,KAAK,EAAE,GAAKpB,GAAM,KAAK,EAAE,GAAIqB,CAAC,EAC9B,KAAK,EAAE,GAAKrB,GAAM,KAAK,EAAE,GAAIsB,CAAC,CAChC,EAEAX,GAAO,UAAU,QAAU,SAAgBc,EAAK,CAC9C,OAAIA,IAAQ,MACH7B,GAAM,QAAQ,KAAK,EAAG,KAAK,EAE3BA,GAAM,QAAQ,KAAK,EAAG,KAAK,CACtC,ICxGA,IAAA8B,GAAAC,EAAA,CAAAC,GAAAC,KAAA,cAEA,IAAIC,GAAQ,KACRC,GAAS,KAEb,SAASC,IAAS,CAChB,GAAI,EAAE,gBAAgBA,IACpB,OAAO,IAAIA,GAEbD,GAAO,KAAK,IAAI,EAChB,KAAK,EAAI,CACP,WAAY,UAAY,UAAY,WACpC,WAAY,WAAY,WAAY,UAAW,CACnD,CACAD,GAAM,SAASE,GAAQD,EAAM,EAC7BF,GAAO,QAAUG,GAEjBA,GAAO,UAAY,IACnBA,GAAO,QAAU,IACjBA,GAAO,aAAe,IACtBA,GAAO,UAAY,GAEnBA,GAAO,UAAU,QAAU,SAAgBC,EAAK,CAE9C,OAAIA,IAAQ,MACHH,GAAM,QAAQ,KAAK,EAAE,MAAM,EAAG,CAAC,EAAG,KAAK,EAEvCA,GAAM,QAAQ,KAAK,EAAE,MAAM,EAAG,CAAC,EAAG,KAAK,CAClD,IC5BA,IAAAI,GAAAC,EAAA,CAAAC,GAAAC,KAAA,cAEA,IAAIC,GAAQ,KACRC,GAAS,KACTC,GAAS,KAETC,GAAYH,GAAM,UAClBI,GAAYJ,GAAM,UAClBK,GAAWL,GAAM,SACjBM,GAAWN,GAAM,SACjBO,GAAQP,GAAM,MACdQ,GAAWR,GAAM,SACjBS,GAAWT,GAAM,SACjBU,GAAaV,GAAM,WACnBW,GAAaX,GAAM,WACnBY,GAAaZ,GAAM,WACnBa,GAAab,GAAM,WAEnBc,GAAYb,GAAO,UAEnBc,GAAW,CACb,WAAY,WAAY,WAAY,UACpC,WAAY,WAAY,WAAY,WACpC,UAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,UAAY,WACpC,UAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,UACpC,WAAY,UAAY,WAAY,WACpC,WAAY,WAAY,WAAY,UACpC,UAAY,WAAY,UAAY,WACpC,UAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,UACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,UAAY,WAAY,UAAY,UACpC,UAAY,WAAY,UAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,UACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,UACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,UAAY,UACpC,UAAY,WAAY,UAAY,WACpC,UAAY,WAAY,UAAY,WACpC,UAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,UACpC,WAAY,UAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,UACpC,WAAY,WAAY,WAAY,WACpC,UAAY,WAAY,UAAY,WACpC,UAAY,WAAY,UAAY,UACpC,UAAY,UAAY,UAAY,WACpC,WAAY,UAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,UAAY,WAAY,UACtC,EAEA,SAASC,IAAS,CAChB,GAAI,EAAE,gBAAgBA,IACpB,OAAO,IAAIA,GAEbF,GAAU,KAAK,IAAI,EACnB,KAAK,EAAI,CACP,WAAY,WACZ,WAAY,WACZ,WAAY,WACZ,WAAY,WACZ,WAAY,WACZ,WAAY,UACZ,UAAY,WACZ,WAAY,SAAW,EACzB,KAAK,EAAIC,GACT,KAAK,EAAI,IAAI,MAAM,GAAG,CACxB,CACAf,GAAM,SAASgB,GAAQF,EAAS,EAChCf,GAAO,QAAUiB,GAEjBA,GAAO,UAAY,KACnBA,GAAO,QAAU,IACjBA,GAAO,aAAe,IACtBA,GAAO,UAAY,IAEnBA,GAAO,UAAU,cAAgB,SAAuBC,EAAKC,EAAO,CAIlE,QAHIC,EAAI,KAAK,EAGJ,EAAI,EAAG,EAAI,GAAI,IACtBA,EAAE,GAAKF,EAAIC,EAAQ,GACrB,KAAO,EAAIC,EAAE,OAAQ,GAAK,EAAG,CAC3B,IAAIC,EAAQC,GAAUF,EAAE,EAAI,GAAIA,EAAE,EAAI,EAAE,EACpCG,EAAQC,GAAUJ,EAAE,EAAI,GAAIA,EAAE,EAAI,EAAE,EACpCK,EAAQL,EAAE,EAAI,IACdM,EAAQN,EAAE,EAAI,IACdO,EAAQC,GAAUR,EAAE,EAAI,IAAKA,EAAE,EAAI,GAAG,EACtCS,EAAQC,GAAUV,EAAE,EAAI,IAAKA,EAAE,EAAI,GAAG,EACtCW,EAAQX,EAAE,EAAI,IACdY,EAAQZ,EAAE,EAAI,IAElBA,EAAE,GAAKT,GACLU,EAAOE,EACPE,EAAOC,EACPC,EAAOE,EACPE,EAAOC,CAAK,EACdZ,EAAE,EAAI,GAAKR,GACTS,EAAOE,EACPE,EAAOC,EACPC,EAAOE,EACPE,EAAOC,CAAK,CAChB,CACF,EAEAf,GAAO,UAAU,QAAU,SAAiBC,EAAKC,EAAO,CACtD,KAAK,cAAcD,EAAKC,CAAK,EAE7B,IAAIC,EAAI,KAAK,EAETa,EAAK,KAAK,EAAE,GACZC,EAAK,KAAK,EAAE,GACZC,EAAK,KAAK,EAAE,GACZC,EAAK,KAAK,EAAE,GACZC,EAAK,KAAK,EAAE,GACZC,EAAK,KAAK,EAAE,GACZC,EAAK,KAAK,EAAE,GACZC,EAAK,KAAK,EAAE,GACZC,EAAK,KAAK,EAAE,GACZC,EAAK,KAAK,EAAE,GACZC,EAAK,KAAK,EAAE,IACZC,EAAK,KAAK,EAAE,IACZC,EAAK,KAAK,EAAE,IACZC,EAAK,KAAK,EAAE,IACZC,EAAK,KAAK,EAAE,IACZC,EAAK,KAAK,EAAE,IAEhB7C,GAAO,KAAK,EAAE,SAAWiB,EAAE,MAAM,EACjC,QAAS6B,EAAI,EAAGA,EAAI7B,EAAE,OAAQ6B,GAAK,EAAG,CACpC,IAAI5B,EAAQ0B,EACRxB,EAAQyB,EACRvB,EAAQyB,GAAUT,EAAIC,CAAE,EACxBhB,EAAQyB,GAAUV,EAAIC,CAAE,EACxBf,GAAQyB,GAAQX,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,CAAE,EACtCjB,EAAQwB,GAAQZ,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,CAAE,EACtCf,EAAQ,KAAK,EAAEkB,GACfjB,EAAQ,KAAK,EAAEiB,EAAI,GACnBK,EAAQlC,EAAE6B,GACVM,EAAQnC,EAAE6B,EAAI,GAEdO,EAAQ3C,GACVQ,EAAOE,EACPE,EAAOC,EACPC,GAAOE,EACPE,EAAOC,EACPsB,EAAOC,CAAK,EACVE,EAAQ3C,GACVO,EAAOE,EACPE,EAAOC,EACPC,GAAOE,EACPE,EAAOC,EACPsB,EAAOC,CAAK,EAEdlC,EAAQqC,GAAUzB,EAAIC,CAAE,EACxBX,EAAQoC,GAAU1B,EAAIC,CAAE,EACxBT,EAAQmC,GAAS3B,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,CAAE,EACvCZ,EAAQmC,GAAS5B,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,CAAE,EAEvC,IAAIwB,EAAQrD,GAASY,EAAOE,EAAOE,EAAOC,CAAK,EAC3CqC,EAAQrD,GAASW,EAAOE,EAAOE,EAAOC,CAAK,EAE/CqB,EAAKF,EACLG,EAAKF,EAELD,EAAKF,EACLG,EAAKF,EAELD,EAAKF,EACLG,EAAKF,EAELD,EAAKhC,GAAS8B,EAAIC,EAAIgB,EAAOC,CAAK,EAClCf,EAAKhC,GAAS8B,EAAIA,EAAIgB,EAAOC,CAAK,EAElClB,EAAKF,EACLG,EAAKF,EAELD,EAAKF,EACLG,EAAKF,EAELD,EAAKF,EACLG,EAAKF,EAELD,EAAKxB,GAAS+C,EAAOC,EAAOK,EAAOC,CAAK,EACxC7B,EAAKxB,GAAS8C,EAAOC,EAAOK,EAAOC,CAAK,CAC1C,CAEAvD,GAAM,KAAK,EAAG,EAAGyB,EAAIC,CAAE,EACvB1B,GAAM,KAAK,EAAG,EAAG2B,EAAIC,CAAE,EACvB5B,GAAM,KAAK,EAAG,EAAG6B,EAAIC,CAAE,EACvB9B,GAAM,KAAK,EAAG,EAAG+B,EAAIC,CAAE,EACvBhC,GAAM,KAAK,EAAG,EAAGiC,EAAIC,CAAE,EACvBlC,GAAM,KAAK,EAAG,GAAImC,EAAIC,CAAE,EACxBpC,GAAM,KAAK,EAAG,GAAIqC,EAAIC,CAAE,EACxBtC,GAAM,KAAK,EAAG,GAAIuC,EAAIC,CAAE,CAC1B,EAEA/B,GAAO,UAAU,QAAU,SAAgB+C,EAAK,CAC9C,OAAIA,IAAQ,MACH/D,GAAM,QAAQ,KAAK,EAAG,KAAK,EAE3BA,GAAM,QAAQ,KAAK,EAAG,KAAK,CACtC,EAEA,SAASmD,GAAQa,EAAIC,EAAIC,EAAIC,EAAIC,EAAI,CACnC,IAAIC,EAAKL,EAAKE,EAAQ,CAACF,EAAMI,EAC7B,OAAIC,EAAI,IACNA,GAAK,YACAA,CACT,CAEA,SAASjB,GAAQY,EAAIC,EAAIC,EAAIC,EAAIC,EAAIE,EAAI,CACvC,IAAID,EAAKJ,EAAKE,EAAQ,CAACF,EAAMK,EAC7B,OAAID,EAAI,IACNA,GAAK,YACAA,CACT,CAEA,SAASV,GAASK,EAAIC,EAAIC,EAAIC,EAAIC,EAAI,CACpC,IAAIC,EAAKL,EAAKE,EAAOF,EAAKI,EAAOF,EAAKE,EACtC,OAAIC,EAAI,IACNA,GAAK,YACAA,CACT,CAEA,SAAST,GAASI,EAAIC,EAAIC,EAAIC,EAAIC,EAAIE,EAAI,CACxC,IAAID,EAAKJ,EAAKE,EAAOF,EAAKK,EAAOH,EAAKG,EACtC,OAAID,EAAI,IACNA,GAAK,YACAA,CACT,CAEA,SAASZ,GAAUO,EAAIC,EAAI,CACzB,IAAI7C,EAAQjB,GAAU6D,EAAIC,EAAI,EAAE,EAC5BzC,EAAQrB,GAAU8D,EAAID,EAAI,CAAC,EAC3BtC,EAAQvB,GAAU8D,EAAID,EAAI,CAAC,EAE3BK,EAAIjD,EAAQI,EAAQE,EACxB,OAAI2C,EAAI,IACNA,GAAK,YACAA,CACT,CAEA,SAASX,GAAUM,EAAIC,EAAI,CACzB,IAAI3C,EAAQlB,GAAU4D,EAAIC,EAAI,EAAE,EAC5BxC,EAAQrB,GAAU6D,EAAID,EAAI,CAAC,EAC3BpC,EAAQxB,GAAU6D,EAAID,EAAI,CAAC,EAE3BK,EAAI/C,EAAQG,EAAQG,EACxB,OAAIyC,EAAI,IACNA,GAAK,YACAA,CACT,CAEA,SAASpB,GAAUe,EAAIC,EAAI,CACzB,IAAI7C,EAAQjB,GAAU6D,EAAIC,EAAI,EAAE,EAC5BzC,EAAQrB,GAAU6D,EAAIC,EAAI,EAAE,EAC5BvC,EAAQvB,GAAU8D,EAAID,EAAI,CAAC,EAE3BK,EAAIjD,EAAQI,EAAQE,EACxB,OAAI2C,EAAI,IACNA,GAAK,YACAA,CACT,CAEA,SAASnB,GAAUc,EAAIC,EAAI,CACzB,IAAI3C,EAAQlB,GAAU4D,EAAIC,EAAI,EAAE,EAC5BxC,EAAQrB,GAAU4D,EAAIC,EAAI,EAAE,EAC5BrC,EAAQxB,GAAU6D,EAAID,EAAI,CAAC,EAE3BK,EAAI/C,EAAQG,EAAQG,EACxB,OAAIyC,EAAI,IACNA,GAAK,YACAA,CACT,CAEA,SAAS1C,GAAUqC,EAAIC,EAAI,CACzB,IAAI7C,EAAQjB,GAAU6D,EAAIC,EAAI,CAAC,EAC3BzC,EAAQrB,GAAU6D,EAAIC,EAAI,CAAC,EAC3BvC,EAAQrB,GAAS2D,EAAIC,EAAI,CAAC,EAE1BI,EAAIjD,EAAQI,EAAQE,EACxB,OAAI2C,EAAI,IACNA,GAAK,YACAA,CACT,CAEA,SAASxC,GAAUmC,EAAIC,EAAI,CACzB,IAAI3C,EAAQlB,GAAU4D,EAAIC,EAAI,CAAC,EAC3BxC,EAAQrB,GAAU4D,EAAIC,EAAI,CAAC,EAC3BrC,EAAQtB,GAAS0D,EAAIC,EAAI,CAAC,EAE1BI,EAAI/C,EAAQG,EAAQG,EACxB,OAAIyC,EAAI,IACNA,GAAK,YACAA,CACT,CAEA,SAAShD,GAAU2C,EAAIC,EAAI,CACzB,IAAI7C,EAAQjB,GAAU6D,EAAIC,EAAI,EAAE,EAC5BzC,EAAQrB,GAAU8D,EAAID,EAAI,EAAE,EAC5BtC,EAAQrB,GAAS2D,EAAIC,EAAI,CAAC,EAE1BI,EAAIjD,EAAQI,EAAQE,EACxB,OAAI2C,EAAI,IACNA,GAAK,YACAA,CACT,CAEA,SAAS9C,GAAUyC,EAAIC,EAAI,CACzB,IAAI3C,EAAQlB,GAAU4D,EAAIC,EAAI,EAAE,EAC5BxC,EAAQrB,GAAU6D,EAAID,EAAI,EAAE,EAC5BpC,EAAQtB,GAAS0D,EAAIC,EAAI,CAAC,EAE1BI,EAAI/C,EAAQG,EAAQG,EACxB,OAAIyC,EAAI,IACNA,GAAK,YACAA,CACT,ICzUA,IAAAE,GAAAC,EAAA,CAAAC,GAAAC,KAAA,cAEA,IAAIC,GAAQ,KAERC,GAAS,KAEb,SAASC,IAAS,CAChB,GAAI,EAAE,gBAAgBA,IACpB,OAAO,IAAIA,GAEbD,GAAO,KAAK,IAAI,EAChB,KAAK,EAAI,CACP,WAAY,WACZ,WAAY,UACZ,WAAY,UACZ,UAAY,WACZ,WAAY,WACZ,WAAY,WACZ,WAAY,WACZ,WAAY,UAAW,CAC3B,CACAD,GAAM,SAASE,GAAQD,EAAM,EAC7BF,GAAO,QAAUG,GAEjBA,GAAO,UAAY,KACnBA,GAAO,QAAU,IACjBA,GAAO,aAAe,IACtBA,GAAO,UAAY,IAEnBA,GAAO,UAAU,QAAU,SAAgBC,EAAK,CAC9C,OAAIA,IAAQ,MACHH,GAAM,QAAQ,KAAK,EAAE,MAAM,EAAG,EAAE,EAAG,KAAK,EAExCA,GAAM,QAAQ,KAAK,EAAE,MAAM,EAAG,EAAE,EAAG,KAAK,CACnD,IClCA,IAAAI,GAAAC,EAAAC,IAAA,cAEAA,GAAQ,KAAO,KACfA,GAAQ,OAAS,KACjBA,GAAQ,OAAS,KACjBA,GAAQ,OAAS,KACjBA,GAAQ,OAAS,OCNjB,IAAAC,GAAAC,EAAAC,IAAA,cAEA,IAAIC,GAAQ,KACRC,GAAS,KAETC,GAASF,GAAM,OACfG,GAAQH,GAAM,MACdI,GAAUJ,GAAM,QAChBK,GAAUL,GAAM,QAChBM,GAAYL,GAAO,UAEvB,SAASM,IAAY,CACnB,GAAI,EAAE,gBAAgBA,IACpB,OAAO,IAAIA,GAEbD,GAAU,KAAK,IAAI,EAEnB,KAAK,EAAI,CAAE,WAAY,WAAY,WAAY,UAAY,UAAW,EACtE,KAAK,OAAS,QAChB,CACAN,GAAM,SAASO,GAAWD,EAAS,EACnCP,GAAQ,UAAYQ,GAEpBA,GAAU,UAAY,IACtBA,GAAU,QAAU,IACpBA,GAAU,aAAe,IACzBA,GAAU,UAAY,GAEtBA,GAAU,UAAU,QAAU,SAAgBC,EAAKC,EAAO,CAWxD,QAVIC,EAAI,KAAK,EAAE,GACXC,EAAI,KAAK,EAAE,GACXC,EAAI,KAAK,EAAE,GACXC,EAAI,KAAK,EAAE,GACXC,EAAI,KAAK,EAAE,GACXC,EAAKL,EACLM,EAAKL,EACLM,EAAKL,EACLM,EAAKL,EACLM,EAAKL,EACAM,EAAI,EAAGA,EAAI,GAAIA,IAAK,CAC3B,IAAIC,EAAIlB,GACND,GACEG,GAAQK,EAAGY,GAAEF,EAAGT,EAAGC,EAAGC,CAAC,EAAGL,EAAIe,GAAEH,GAAKX,GAAQe,GAAEJ,CAAC,CAAC,EACjDK,GAAEL,EAAE,EACNN,CAAC,EACHJ,EAAII,EACJA,EAAID,EACJA,EAAIX,GAAOU,EAAG,EAAE,EAChBA,EAAID,EACJA,EAAIU,EACJA,EAAIlB,GACFD,GACEG,GAAQU,EAAIO,GAAE,GAAKF,EAAGJ,EAAIC,EAAIC,CAAE,EAAGV,EAAIkB,GAAGN,GAAKX,GAAQkB,GAAGP,CAAC,CAAC,EAC5DQ,GAAGR,EAAE,EACPD,CAAE,EACJJ,EAAKI,EACLA,EAAKD,EACLA,EAAKhB,GAAOe,EAAI,EAAE,EAClBA,EAAKD,EACLA,EAAKK,CACP,CACAA,EAAIjB,GAAQ,KAAK,EAAE,GAAIQ,EAAGM,CAAE,EAC5B,KAAK,EAAE,GAAKd,GAAQ,KAAK,EAAE,GAAIS,EAAGM,CAAE,EACpC,KAAK,EAAE,GAAKf,GAAQ,KAAK,EAAE,GAAIU,EAAGC,CAAE,EACpC,KAAK,EAAE,GAAKX,GAAQ,KAAK,EAAE,GAAIM,EAAGM,CAAE,EACpC,KAAK,EAAE,GAAKZ,GAAQ,KAAK,EAAE,GAAIO,EAAGM,CAAE,EACpC,KAAK,EAAE,GAAKI,CACd,EAEAd,GAAU,UAAU,QAAU,SAAgBsB,EAAK,CACjD,OAAIA,IAAQ,MACH7B,GAAM,QAAQ,KAAK,EAAG,QAAQ,EAE9BA,GAAM,QAAQ,KAAK,EAAG,QAAQ,CACzC,EAEA,SAASsB,GAAEF,EAAGU,EAAGC,EAAGC,EAAG,CACrB,OAAIZ,GAAK,GACAU,EAAIC,EAAIC,EACRZ,GAAK,GACJU,EAAIC,EAAO,CAACD,EAAKE,EAClBZ,GAAK,IACJU,EAAK,CAACC,GAAMC,EACbZ,GAAK,GACJU,EAAIE,EAAMD,EAAK,CAACC,EAEjBF,GAAKC,EAAK,CAACC,EACtB,CAEA,SAASR,GAAEJ,EAAG,CACZ,OAAIA,GAAK,GACA,EACAA,GAAK,GACL,WACAA,GAAK,GACL,WACAA,GAAK,GACL,WAEA,UACX,CAEA,SAASO,GAAGP,EAAG,CACb,OAAIA,GAAK,GACA,WACAA,GAAK,GACL,WACAA,GAAK,GACL,WACAA,GAAK,GACL,WAEA,CACX,CAEA,IAAIG,GAAI,CACN,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAClD,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,EACnD,EAAG,GAAI,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,EAAG,GAClD,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EACnD,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,EACpD,EAEIG,GAAK,CACP,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,GAClD,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,EACnD,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,GAClD,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,GAAI,GAClD,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,EACpD,EAEID,GAAI,CACN,GAAI,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,EACrD,EAAG,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,GAAI,EAAG,GAAI,GACpD,GAAI,GAAI,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,GAAI,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,EACrD,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,GACpD,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,GAAI,GAAI,GAAI,GAAI,EAAG,EAAG,CACvD,EAEIG,GAAK,CACP,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,EACrD,EAAG,GAAI,GAAI,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,GACpD,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,EAAG,GAAI,GAAI,GAAI,EAAG,EACrD,GAAI,EAAG,EAAG,GAAI,GAAI,GAAI,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EACrD,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,GAAI,EACtD,ICjJA,IAAAK,GAAAC,EAAA,CAAAC,GAAAC,KAAA,cAEA,IAAIC,GAAQ,KACRC,GAAS,KAEb,SAASC,GAAKC,EAAMC,EAAKC,EAAK,CAC5B,GAAI,EAAE,gBAAgBH,IACpB,OAAO,IAAIA,GAAKC,EAAMC,EAAKC,CAAG,EAChC,KAAK,KAAOF,EACZ,KAAK,UAAYA,EAAK,UAAY,EAClC,KAAK,QAAUA,EAAK,QAAU,EAC9B,KAAK,MAAQ,KACb,KAAK,MAAQ,KAEb,KAAK,MAAMH,GAAM,QAAQI,EAAKC,CAAG,CAAC,CACpC,CACAN,GAAO,QAAUG,GAEjBA,GAAK,UAAU,MAAQ,SAAcE,EAAK,CAEpCA,EAAI,OAAS,KAAK,YACpBA,EAAM,IAAI,KAAK,KAAK,EAAE,OAAOA,CAAG,EAAE,OAAO,GAC3CH,GAAOG,EAAI,QAAU,KAAK,SAAS,EAGnC,QAASE,EAAIF,EAAI,OAAQE,EAAI,KAAK,UAAWA,IAC3CF,EAAI,KAAK,CAAC,EAEZ,IAAKE,EAAI,EAAGA,EAAIF,EAAI,OAAQE,IAC1BF,EAAIE,IAAM,GAIZ,IAHA,KAAK,MAAQ,IAAI,KAAK,KAAK,EAAE,OAAOF,CAAG,EAGlCE,EAAI,EAAGA,EAAIF,EAAI,OAAQE,IAC1BF,EAAIE,IAAM,IACZ,KAAK,MAAQ,IAAI,KAAK,KAAK,EAAE,OAAOF,CAAG,CACzC,EAEAF,GAAK,UAAU,OAAS,SAAgBK,EAAKF,EAAK,CAChD,YAAK,MAAM,OAAOE,EAAKF,CAAG,EACnB,IACT,EAEAH,GAAK,UAAU,OAAS,SAAgBG,EAAK,CAC3C,YAAK,MAAM,OAAO,KAAK,MAAM,OAAO,CAAC,EAC9B,KAAK,MAAM,OAAOA,CAAG,CAC9B,IC9CA,IAAAG,GAAAC,EAAAC,IAAA,KAAIC,GAAOD,GAEXC,GAAK,MAAQ,KACbA,GAAK,OAAS,KACdA,GAAK,IAAM,KACXA,GAAK,OAAS,KACdA,GAAK,KAAO,KAGZA,GAAK,KAAOA,GAAK,IAAI,KACrBA,GAAK,OAASA,GAAK,IAAI,OACvBA,GAAK,OAASA,GAAK,IAAI,OACvBA,GAAK,OAASA,GAAK,IAAI,OACvBA,GAAK,OAASA,GAAK,IAAI,OACvBA,GAAK,UAAYA,GAAK,OAAO,YCd7B,IAAAC,GAAAC,EAAA,CAAAC,GAAAC,KAAA,CAAAA,GAAO,QAAU,CACf,QAAS,CACP,KAAM,EACN,OAAQ,CACN,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,iEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,kEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,kEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,iEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,iEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,gEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,kEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,iEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,kEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,CACF,CACF,EACA,IAAK,CACH,IAAK,EACL,OAAQ,CACN,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,iEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,iEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,iEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,iEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,kEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,iEACF,EACA,CACE,mEACA,iEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,iEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,iEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,kEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,iEACF,EACA,CACE,mEACA,iEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,kEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,iEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,iEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,kEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,iEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,kEACA,kEACF,EACA,CACE,mEACA,iEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,iEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,iEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,iEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,iEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,CACF,CACF,CACF,IC3wBA,IAAAC,GAAAC,EAAAC,IAAA,cAEA,IAAIC,GAASD,GAETE,GAAO,KACPC,GAAQ,KACRC,GAAQ,KAERC,GAASD,GAAM,OAEnB,SAASE,GAAYC,EAAS,CACxBA,EAAQ,OAAS,QACnB,KAAK,MAAQ,IAAIJ,GAAM,MAAMI,CAAO,EAC7BA,EAAQ,OAAS,UACxB,KAAK,MAAQ,IAAIJ,GAAM,QAAQI,CAAO,EAEtC,KAAK,MAAQ,IAAIJ,GAAM,KAAKI,CAAO,EACrC,KAAK,EAAI,KAAK,MAAM,EACpB,KAAK,EAAI,KAAK,MAAM,EACpB,KAAK,KAAOA,EAAQ,KAEpBF,GAAO,KAAK,EAAE,SAAS,EAAG,eAAe,EACzCA,GAAO,KAAK,EAAE,IAAI,KAAK,CAAC,EAAE,WAAW,EAAG,yBAAyB,CACnE,CACAJ,GAAO,YAAcK,GAErB,SAASE,GAAYC,EAAMF,EAAS,CAClC,OAAO,eA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", + "names": ["require_create_hash", "__commonJSMin", "exports", "module", "require_create_hmac", "__commonJSMin", "exports", "module", "require_crypto", "__commonJSMin", "exports", "createHash", "createHmac", "hash160", "buffer", "sha256Hash", "hmacSHA512", "key", "data", "require_safe_buffer", "__commonJSMin", "exports", "module", "buffer", "Buffer", "copyProps", "src", "dst", "key", "SafeBuffer", "arg", "encodingOrOffset", "length", "size", "fill", "encoding", "buf", "require_src", "__commonJSMin", "exports", "module", "_Buffer", "base", "ALPHABET", "BASE_MAP", "j", "i", "x", "xc", "BASE", "LEADER", "FACTOR", "iFACTOR", "encode", "source", "zeroes", "length", "pbegin", "pend", "size", "b58", "carry", "it1", "it2", "str", "decodeUnsafe", "psz", "b256", "it3", "it4", "vch", "decode", "string", "buffer", "require_bs58", "__commonJSMin", "exports", "module", "basex", "ALPHABET", "require_base", "__commonJSMin", "exports", "module", "base58", "Buffer", "checksumFn", "encode", "payload", "checksum", "decodeRaw", "buffer", "newChecksum", "decodeUnsafe", "string", "decode", "require_bs58check", "__commonJSMin", "exports", "module", "createHash", "bs58checkBase", "sha256x2", "buffer", "tmp", "require_file_uri_to_path", "__commonJSMin", "exports", "module", "sep", "fileUriToPath", "uri", "rest", "firstSlash", "host", "path", "require_bindings", "__commonJSMin", "exports", "module", "fs", "path", "fileURLToPath", "join", "dirname", "exists", "defaults", "bindings", "opts", "i", "requireFunc", "tries", "l", "n", "b", "err", "p", "e", "a", "calling_file", "origPST", "origSTL", "dummy", "fileName", "st", "fileSchema", "file", "dir", "prev", "require_native", "__commonJSMin", "exports", "module", "binding", "key", "require_bn", "__commonJSMin", "exports", "module", "assert", "val", "msg", "inherits", "ctor", "superCtor", "TempCtor", "BN", "number", "base", "endian", "Buffer", "num", "left", "right", "start", "i", "j", "w", "off", "parseHex4Bits", "string", "index", "c", "parseHexByte", "lowerBound", "r", "parseLength", "parseBase", "str", "end", "mul", "len", "limbLen", "limbPow", "total", "mod", "word", "pow", "dest", "size", "zeros", "groupSizes", "groupBases", "padding", "out", "carry", "groupSize", "groupBase", "ret", "length", "ArrayType", "byteLength", "reqLength", "littleEndian", "res", "q", "t", "hi", "toBitArray", "bit", "wbit", "b", "width", "a", "bytesNeeded", "bitsLeft", "cmp", "smallMulTo", "self", "lo", "k", "ncarry", "rword", "maxJ", "comb10MulTo", "o", "mid", "a0", "al0", "ah0", "a1", "al1", "ah1", "a2", "al2", "ah2", "a3", "al3", "ah3", "a4", "al4", "ah4", "a5", "al5", "ah5", "a6", "al6", "ah6", "a7", "al7", "ah7", "a8", "al8", "ah8", "a9", "al9", "ah9", "b0", "bl0", "bh0", "b1", "bl1", "bh1", "b2", "bl2", "bh2", "b3", "bl3", "bh3", "b4", "bl4", "bh4", "b5", "bl5", "bh5", "b6", "bl6", "bh6", "b7", "bl7", "bh7", "b8", "bl8", "bh8", "b9", "bl9", "bh9", "w0", "w1", "w2", "w3", "w4", "w5", "w6", "w7", "w8", "w9", "w10", "w11", "w12", "w13", "w14", "w15", "w16", "w17", "w18", "bigMulTo", "hncarry", "jumboMulTo", "fftm", "FFTM", "x", "y", "N", "l", "rb", "rbt", "rws", "iws", "rtws", "itws", "s", "rtwdf", "itwdf", "p", "rtwdf_", "itwdf_", "re", "ie", "ro", "io", "rx", "n", "m", "odd", "ws", "ph", "rwst", "iwst", "nrws", "nrwst", "niwst", "rmws", "bits", "carryMask", "newCarry", "hint", "extended", "h", "mask", "maskedWords", "shift", "mode", "bhi", "bhiBits", "diff", "qj", "positive", "div", "dm", "half", "r2", "acc", "A", "B", "C", "D", "g", "yp", "xp", "im", "jm", "x1", "x2", "delta", "negative", "Red", "ctx", "primes", "MPrime", "name", "tmp", "rlen", "input", "K256", "output", "outLen", "prev", "next", "P224", "P192", "P25519", "prime", "mod3", "one", "nOne", "lpow", "z", "inv", "windowSize", "wnd", "current", "currentLen", "Mont", "u", "require_bn", "__commonJSMin", "exports", "module", "assert", "val", "msg", "inherits", "ctor", "superCtor", "TempCtor", "BN", "number", "base", "endian", "Buffer", "num", "left", "right", "start", "i", "j", "w", "off", "parseHex4Bits", "string", "index", "c", "parseHexByte", "lowerBound", "r", "parseLength", "parseBase", "str", "end", "mul", "len", "limbLen", "limbPow", "total", "mod", "word", "pow", "dest", "size", "zeros", "groupSizes", "groupBases", "padding", "out", "carry", "groupSize", "groupBase", "ret", "length", "ArrayType", "byteLength", "reqLength", "littleEndian", "res", "q", "t", "hi", "toBitArray", "bit", "wbit", "b", "width", "a", "bytesNeeded", "bitsLeft", "cmp", "smallMulTo", "self", "lo", "k", "ncarry", "rword", "maxJ", "comb10MulTo", "o", "mid", "a0", "al0", "ah0", "a1", "al1", "ah1", "a2", "al2", "ah2", "a3", "al3", "ah3", "a4", "al4", "ah4", "a5", "al5", "ah5", "a6", "al6", "ah6", "a7", "al7", "ah7", "a8", "al8", "ah8", "a9", "al9", "ah9", "b0", "bl0", "bh0", "b1", "bl1", "bh1", "b2", "bl2", "bh2", "b3", "bl3", "bh3", "b4", "bl4", "bh4", "b5", "bl5", "bh5", "b6", "bl6", "bh6", "b7", "bl7", "bh7", "b8", "bl8", "bh8", "b9", "bl9", "bh9", "w0", "w1", "w2", "w3", "w4", "w5", "w6", "w7", "w8", "w9", "w10", "w11", "w12", "w13", "w14", "w15", "w16", "w17", "w18", "bigMulTo", "hncarry", "jumboMulTo", "fftm", "FFTM", "x", "y", "N", "l", "rb", "rbt", "rws", "iws", "rtws", "itws", "s", "rtwdf", "itwdf", "p", "rtwdf_", "itwdf_", "re", "ie", "ro", "io", "rx", "n", "m", "odd", "ws", "ph", "rwst", "iwst", "nrws", "nrwst", "niwst", "rmws", "bits", "carryMask", "newCarry", "hint", "extended", "h", "mask", "maskedWords", "shift", "mode", "bhi", "bhiBits", "diff", "qj", "positive", "div", "dm", "half", "r2", "acc", "A", "B", "C", "D", "g", "yp", "xp", "im", "jm", "x1", "x2", "delta", "negative", "Red", "ctx", "primes", "MPrime", "name", "tmp", "rlen", "input", "K256", "output", "outLen", "prev", "next", "P224", "P192", "P25519", "prime", "mod3", "one", "nOne", "lpow", "z", "inv", "windowSize", "wnd", "current", "currentLen", "Mont", "u", "require_minimalistic_assert", "__commonJSMin", "exports", "module", "assert", "val", "msg", "l", "require_utils", "__commonJSMin", "exports", "utils", "toArray", "msg", "enc", "res", "i", "c", "hi", "lo", "zero2", "word", "toHex", "arr", "require_utils", "__commonJSMin", "exports", "utils", "BN", "minAssert", "minUtils", "getNAF", "num", "w", "bits", "naf", "ws", "k", "i", "z", "mod", "getJSF", "k1", "k2", "jsf", "d1", "d2", "m8", "m14", "m24", "u1", "u2", "cachedProperty", "obj", "name", "computer", "key", "parseBytes", "bytes", "intFromLE", "require_brorand", "__commonJSMin", "exports", "module", "r", "len", "Rand", "rand", "n", "res", "i", "arr", "crypto", "require_base", "__commonJSMin", "exports", "module", "BN", "utils", "getNAF", "getJSF", "assert", "BaseCurve", "type", "conf", "adjustCount", "p", "k", "doubles", "naf", "I", "repr", "j", "nafW", "l", "a", "b", "i", "w", "nafPoints", "wnd", "acc", "z", "defW", "points", "coeffs", "len", "jacobianResult", "wndWidth", "max", "comb", "index", "jsf", "ja", "jb", "tmp", "zero", "BasePoint", "curve", "bytes", "enc", "res", "compact", "x", "power", "precomputed", "step", "dbl", "require_inherits_browser", "__commonJSMin", "exports", "module", "ctor", "superCtor", "TempCtor", "require_inherits", "__commonJSMin", "exports", "module", "util", "require_short", "__commonJSMin", "exports", "module", "utils", "BN", "inherits", "Base", "assert", "ShortCurve", "conf", "beta", "lambda", "betas", "lambdas", "basis", "vec", "num", "red", "tinv", "ntinv", "l1", "l2", "aprxSqrt", "u", "v", "x1", "y1", "x2", "y2", "a0", "b0", "a1", "b1", "a2", "b2", "prevR", "i", "r", "x", "q", "y", "len1", "len2", "k", "v1", "v2", "c1", "c2", "p1", "p2", "q1", "q2", "k1", "k2", "odd", "isOdd", "point", "ax", "rhs", "points", "coeffs", "jacobianResult", "npoints", "ncoeffs", "split", "p", "res", "j", "Point", "curve", "isRed", "obj", "pre", "endoMul", "obj2point", "c", "nx", "ny", "ys1", "a", "dyinv", "_precompute", "negate", "JPoint", "z", "zinv", "zinv2", "ay", "pz2", "z2", "u1", "u2", "s1", "s2", "h", "h2", "h3", "nz", "pow", "jx", "jy", "jz", "jz4", "jyd", "jx2", "jyd2", "jyd4", "t1", "t2", "dny", "xx", "yy", "yyyy", "s", "m", "t", "yyyy8", "b", "d", "e", "f", "c8", "delta", "gamma", "alpha", "beta4", "beta8", "ggamma8", "jy2", "jxd4", "jyd8", "zz", "mm", "ee", "yyu4", "kbase", "z3", "pz3", "zs", "rx", "xc", "require_mont", "__commonJSMin", "exports", "module", "BN", "inherits", "Base", "utils", "MontCurve", "conf", "point", "x", "x2", "rhs", "y", "Point", "curve", "z", "bytes", "enc", "obj", "a", "aa", "b", "bb", "c", "nx", "nz", "p", "diff", "d", "da", "cb", "k", "t", "bits", "i", "other", "require_edwards", "__commonJSMin", "exports", "module", "utils", "BN", "inherits", "Base", "assert", "EdwardsCurve", "conf", "num", "x", "y", "z", "t", "odd", "x2", "rhs", "lhs", "y2", "isOdd", "point", "Point", "curve", "obj", "a", "b", "c", "d", "e", "g", "f", "h", "nx", "ny", "nt", "nz", "j", "p", "tmp", "k", "k1", "k2", "zi", "other", "rx", "xc", "require_curve", "__commonJSMin", "exports", "curve", "require_utils", "__commonJSMin", "exports", "assert", "inherits", "isSurrogatePair", "msg", "i", "toArray", "enc", "res", "p", "c", "toHex", "zero2", "htonl", "w", "toHex32", "endian", "zero8", "word", "join32", "start", "end", "len", "k", "split32", "m", "rotr32", "b", "rotl32", "sum32", "a", "sum32_3", "sum32_4", "d", "sum32_5", "e", "sum64", "buf", "pos", "ah", "al", "bh", "bl", "lo", "hi", "sum64_hi", "sum64_lo", "sum64_4_hi", "ch", "cl", "dh", "dl", "carry", "sum64_4_lo", "sum64_5_hi", "eh", "el", "sum64_5_lo", "rotr64_hi", "num", "r", "rotr64_lo", "shr64_hi", "shr64_lo", "require_common", "__commonJSMin", "exports", "utils", "assert", "BlockHash", "msg", "enc", "r", "len", "bytes", "k", "res", "i", "t", "require_common", "__commonJSMin", "exports", "utils", "rotr32", "ft_1", "s", "x", "y", "z", "ch32", "p32", "maj32", "s0_256", "s1_256", "g0_256", "g1_256", "require__", "__commonJSMin", "exports", "module", "utils", "common", "shaCommon", "rotl32", "sum32", "sum32_5", "ft_1", "BlockHash", "sha1_K", "SHA1", "msg", "start", "W", "a", "b", "c", "d", "e", "s", "t", "enc", "require__", "__commonJSMin", "exports", "module", "utils", "common", "shaCommon", "assert", "sum32", "sum32_4", "sum32_5", "ch32", "maj32", "s0_256", "s1_256", "g0_256", "g1_256", "BlockHash", "sha256_K", "SHA256", "msg", "start", "W", "a", "b", "c", "d", "e", "f", "g", "h", "T1", "T2", "enc", "require__", "__commonJSMin", "exports", "module", "utils", "SHA256", "SHA224", "enc", "require__", "__commonJSMin", "exports", "module", "utils", "common", "assert", "rotr64_hi", "rotr64_lo", "shr64_hi", "shr64_lo", "sum64", "sum64_hi", "sum64_lo", "sum64_4_hi", "sum64_4_lo", "sum64_5_hi", "sum64_5_lo", "BlockHash", "sha512_K", "SHA512", "msg", "start", "W", "c0_hi", "g1_512_hi", "c0_lo", "g1_512_lo", "c1_hi", "c1_lo", "c2_hi", "g0_512_hi", "c2_lo", "g0_512_lo", "c3_hi", "c3_lo", "ah", "al", "bh", "bl", "ch", "cl", "dh", "dl", "eh", "el", "fh", "fl", "gh", "gl", "hh", "hl", "i", "s1_512_hi", "s1_512_lo", "ch64_hi", "ch64_lo", "c4_hi", "c4_lo", "T1_hi", "T1_lo", "s0_512_hi", "s0_512_lo", "maj64_hi", "maj64_lo", "T2_hi", "T2_lo", "enc", "xh", "xl", "yh", "yl", "zh", "r", "zl", "require__", "__commonJSMin", "exports", "module", "utils", "SHA512", "SHA384", "enc", "require_sha", "__commonJSMin", "exports", "require_ripemd", "__commonJSMin", "exports", "utils", "common", "rotl32", "sum32", "sum32_3", "sum32_4", "BlockHash", "RIPEMD160", "msg", "start", "A", "B", "C", "D", "E", "Ah", "Bh", "Ch", "Dh", "Eh", "j", "T", "f", "r", "K", "s", "rh", "Kh", "sh", "enc", "x", "y", "z", "require_hmac", "__commonJSMin", "exports", "module", "utils", "assert", "Hmac", "hash", "key", "enc", "i", "msg", "require_hash", "__commonJSMin", "exports", "hash", "require_secp256k1", "__commonJSMin", "exports", "module", "require_curves", "__commonJSMin", "exports", "curves", "hash", "curve", "utils", "assert", "PresetCurve", "options", "defineCurve", "name", "pre", "require_hmac_drbg", "__commonJSMin", "exports", "module", "hash", "utils", "assert", "HmacDRBG", "options", "entropy", "nonce", "pers", "seed", "i", "kmac", "entropyEnc", "add", "addEnc", "len", "enc", "temp", "res", "require_key", "__commonJSMin", "exports", "module", "BN", "utils", "assert", "KeyPair", "ec", "options", "pub", "enc", "priv", "compact", "key", "msg", "signature", "require_signature", "__commonJSMin", "exports", "module", "BN", "utils", "assert", "Signature", "options", "enc", "Position", "getLength", "buf", "p", "initial", "octetLen", "val", "i", "off", "rmPadding", "len", "data", "rlen", "r", "slen", "s", "constructLength", "arr", "octets", "backHalf", "res", "require_ec", "__commonJSMin", "exports", "module", "BN", "HmacDRBG", "utils", "curves", "rand", "assert", "KeyPair", "Signature", "EC", "options", "priv", "enc", "pub", "drbg", "bytes", "ns2", "msg", "truncOnly", "delta", "key", "bkey", "nonce", "ns1", "iter", "k", "kp", "kpX", "r", "s", "recoveryParam", "signature", "sinv", "u1", "u2", "j", "n", "e", "isYOdd", "isSecondKey", "rInv", "s1", "s2", "Q", "Qprime", "require_key", "__commonJSMin", "exports", "module", "utils", "assert", "parseBytes", "cachedProperty", "KeyPair", "eddsa", "params", "pub", "secret", "hash", "lastIx", "a", "message", "sig", "enc", "require_signature", "__commonJSMin", "exports", "module", "BN", "utils", "assert", "cachedProperty", "parseBytes", "Signature", "eddsa", "sig", "require_eddsa", "__commonJSMin", "exports", "module", "hash", "curves", "utils", "assert", "parseBytes", "KeyPair", "Signature", "EDDSA", "curve", "message", "secret", "key", "r", "R", "Rencoded", "s_", "S", "sig", "pub", "h", "SG", "RplusAh", "i", "point", "enc", "bytes", "lastIx", "normed", "xIsOdd", "y", "num", "val", "require_elliptic", "__commonJSMin", "exports", "elliptic", "require_rfc6979", "__commonJSMin", "exports", "module", "createHmac", "ONE1", "ZERO1", "deterministicGenerateK", "hash", "x", "checkSig", "isPrivate", "extraEntropy", "k", "v", "T", "require_js", "__commonJSMin", "exports", "module", "BN", "EC", "secp256k1", "deterministicGenerateK", "ZERO32", "EC_GROUP_ORDER", "EC_P", "n", "nDiv2", "G", "THROW_BAD_PRIVATE", "THROW_BAD_POINT", "THROW_BAD_TWEAK", "THROW_BAD_HASH", "THROW_BAD_SIGNATURE", "THROW_BAD_EXTRA_DATA", "isScalar", "x", "isOrderScalar", "isPoint", "p", "decodeFrom", "y", "__isPointCompressed", "isPointCompressed", "isPrivate", "isSignature", "value", "r", "s", "assumeCompression", "pubkey", "fromBuffer", "d", "toBuffer", "P", "getEncoded", "compressed", "pointAdd", "pA", "pB", "__compressed", "a", "b", "pp", "pointAddScalar", "tweak", "tt", "qq", "uu", "pointCompress", "pointFromScalar", "dd", "pointMultiply", "privateAdd", "dt", "privateSub", "sign", "hash", "__sign", "signWithEntropy", "addData", "e", "k", "kI", "Q", "buffer", "verify", "q", "signature", "strict", "sInv", "u1", "u2", "R", "require_tiny_secp256k1", "__commonJSMin", "exports", "module", "require_native", "__commonJSMin", "exports", "module", "types", "value", "typeName", "t", "require_errors", "__commonJSMin", "exports", "module", "native", "getTypeName", "fn", "getValueTypeName", "value", "getValue", "captureStackTrace", "tfJSON", "type", "tfErrorString", "valueTypeName", "valueJson", "TfTypeError", "tfPropertyErrorString", "label", "name", "description", "TfPropertyTypeError", "property", "tfCustomError", "expected", "actual", "tfSubError", "require_extra", "__commonJSMin", "exports", "module", "NATIVE", "ERRORS", "_Buffer", "value", "Hex", "_LengthN", "type", "length", "name", "Length", "_ArrayN", "_BufferN", "_HexN", "_StringN", "Range", "a", "b", "f", "_range", "strict", "INT53_MAX", "Finite", "Int8", "Int16", "Int32", "Int53", "UInt8", "UInt16", "UInt32", "UInt53", "types", "typeName", "t", "require_typeforce", "__commonJSMin", "exports", "module", "ERRORS", "NATIVE", "tfJSON", "TfTypeError", "TfPropertyTypeError", "tfSubError", "getValueTypeName", "TYPES", "type", "options", "compile", "_arrayOf", "array", "strict", "value", "i", "typeforce", "e", "str", "maybe", "_maybe", "propertyType", "propertyKeyType", "_map", "propertyName", "propertyValue", "uncompiled", "typePropertyName", "_object", "types", "_anyOf", "_allOf", "_quacksLike", "_tuple", "values", "expected", "_value", "actual", "surrogate", "typeName", "EXTRA", "require_wif", "__commonJSMin", "exports", "module", "bs58check", "decodeRaw", "buffer", "version", "encodeRaw", "privateKey", "compressed", "result", "decode", "string", "encode", "require_bip32", "__commonJSMin", "exports", "crypto", "bs58check", "ecc", "typeforce", "wif", "UINT256_TYPE", "NETWORK_TYPE", "BITCOIN", "HIGHEST_BIT", "UINT31_MAX", "BIP32Path", "value", "UInt31", "BIP32", "__D", "__Q", "chainCode", "network", "__DEPTH", "__INDEX", "__PARENT_FINGERPRINT", "fromPublicKeyLocal", "version", "buffer", "index", "isHardened", "data", "I", "IL", "IR", "hd", "Ki", "ki", "fromPrivateKeyLocal", "path", "splitPath", "prevHd", "indexStr", "hash", "lowR", "sig", "extraData", "counter", "signature", "fromBase58", "inString", "depth", "parentFingerprint", "k", "X", "fromPrivateKey", "privateKey", "fromPublicKey", "publicKey", "fromSeed", "seed", "require_src", "__commonJSMin", "exports", "bip32_1", "require_networks", "__commonJSMin", "exports", "require_script_number", "__commonJSMin", "exports", "decode", "buffer", "maxLength", "minimal", "length", "a", "b", "result", "i", "scriptNumSize", "encode", "_number", "value", "size", "negative", "require_types", "__commonJSMin", "exports", "typeforce", "UINT31_MAX", "UInt31", "value", "BIP32Path", "Signer", "obj", "SATOSHI_MAX", "Satoshi", "require_bip66", "__commonJSMin", "exports", "module", "Buffer", "check", "buffer", "lenR", "lenS", "decode", "encode", "r", "s", "signature", "require_script_signature", "__commonJSMin", "exports", "types", "bip66", "typeforce", "ZERO", "toDER", "x", "i", "fromDER", "buffer", "bstart", "decode", "hashType", "hashTypeMod", "decoded", "r", "encode", "signature", "hashTypeBuffer", "require_pushdata_bitcoin", "__commonJSMin", "exports", "module", "OPS", "encodingLength", "i", "encode", "buffer", "number", "offset", "size", "decode", "opcode", "require_map", "__commonJSMin", "exports", "module", "OPS", "map", "op", "code", "require_script", "__commonJSMin", "exports", "scriptNumber", "scriptSignature", "types", "bip66", "ecc", "pushdata", "typeforce", "REVERSE_OPS", "OP_INT_BASE", "isOPInt", "value", "isPushOnlyChunk", "isPushOnly", "asMinimalOP", "buffer", "chunksIsBuffer", "buf", "chunksIsArray", "singleChunkIsBuffer", "compile", "chunks", "bufferSize", "accum", "chunk", "offset", "opcode", "decompile", "i", "d", "data", "op", "toASM", "fromASM", "asm", "chunkStr", "toStack", "isCanonicalPubKey", "isDefinedHashType", "hashType", "hashTypeMod", "isCanonicalScriptSignature", "require_lazy", "__commonJSMin", "exports", "prop", "object", "name", "f", "_value", "value", "require_embed", "__commonJSMin", "exports", "networks_1", "bscript", "lazy", "typef", "OPS", "stacksEqual", "a", "b", "x", "i", "p2data", "opts", "o", "chunks", "require_p2ms", "__commonJSMin", "exports", "networks_1", "bscript", "lazy", "OPS", "typef", "ecc", "OP_INT_BASE", "stacksEqual", "a", "b", "x", "i", "p2ms", "opts", "isAcceptableSignature", "o", "chunks", "decoded", "decode", "output", "require_p2pk", "__commonJSMin", "exports", "networks_1", "bscript", "lazy", "typef", "OPS", "ecc", "p2pk", "a", "opts", "_chunks", "o", "require_crypto", "__commonJSMin", "exports", "createHash", "ripemd160", "buffer", "sha1", "sha256", "hash160", "hash256", "require_p2pkh", "__commonJSMin", "exports", "bcrypto", "networks_1", "bscript", "lazy", "typef", "OPS", "ecc", "bs58check", "p2pkh", "a", "opts", "_address", "payload", "version", "hash", "_chunks", "network", "o", "hash2", "pkh", "chunks", "require_p2sh", "__commonJSMin", "exports", "bcrypto", "networks_1", "bscript", "lazy", "typef", "OPS", "bs58check", "stacksEqual", "a", "b", "x", "i", "p2sh", "opts", "network", "o", "_address", "payload", "version", "hash", "_chunks", "_redeem", "chunks", "nameParts", "hash2", "checkRedeem", "redeem", "decompile", "hasInput", "hasWitness", "richunks", "require_bech32", "__commonJSMin", "exports", "module", "ALPHABET", "ALPHABET_MAP", "z", "x", "polymodStep", "pre", "b", "prefixChk", "prefix", "chk", "i", "c", "v", "encode", "words", "LIMIT", "result", "__decode", "str", "lowered", "uppered", "split", "wordChars", "decodeUnsafe", "res", "decode", "convert", "data", "inBits", "outBits", "pad", "value", "bits", "maxV", "toWordsUnsafe", "bytes", "toWords", "fromWordsUnsafe", "fromWords", "require_p2wpkh", "__commonJSMin", "exports", "bcrypto", "networks_1", "bscript", "lazy", "typef", "OPS", "ecc", "bech32", "EMPTY_BUFFER", "p2wpkh", "a", "opts", "_address", "result", "version", "data", "network", "o", "words", "hash", "pkh", "require_p2wsh", "__commonJSMin", "exports", "bcrypto", "networks_1", "bscript", "lazy", "typef", "OPS", "ecc", "bech32", "EMPTY_BUFFER", "stacksEqual", "a", "b", "x", "i", "chunkHasUncompressedPubkey", "chunk", "p2wsh", "opts", "_address", "result", "version", "data", "_rchunks", "network", "o", "words", "stack", "nameParts", "hash", "hash2", "wScript", "require_payments", "__commonJSMin", "exports", "embed_1", "p2ms_1", "p2pk_1", "p2pkh_1", "p2sh_1", "p2wpkh_1", "p2wsh_1", "require_address", "__commonJSMin", "exports", "networks", "payments", "bscript", "types", "bech32", "bs58check", "typeforce", "fromBase58Check", "address", "payload", "version", "hash", "fromBech32", "result", "data", "toBase58Check", "toBech32", "prefix", "words", "fromOutputScript", "output", "network", "toOutputScript", "decodeBase58", "decodeBech32", "require_randombytes", "__commonJSMin", "exports", "module", "require_ecpair", "__commonJSMin", "exports", "NETWORKS", "types", "ecc", "randomBytes", "typeforce", "wif", "isOptions", "ECPair", "__D", "__Q", "options", "hash", "lowR", "sig", "extraData", "counter", "signature", "fromPrivateKey", "buffer", "fromPublicKey", "fromWIF", "wifString", "network", "decoded", "version", "x", "makeRandom", "rng", "d", "require_varuint_bitcoin", "__commonJSMin", "exports", "module", "Buffer", "MAX_SAFE_INTEGER", "checkUInt53", "n", "encode", "number", "buffer", "offset", "encodingLength", "decode", "first", "lo", "hi", "require_bufferutils", "__commonJSMin", "exports", "types", "typeforce", "varuint", "verifuint", "value", "max", "readUInt64LE", "buffer", "offset", "a", "b", "writeUInt64LE", "reverseBuffer", "j", "tmp", "i", "cloneBuffer", "clone", "BufferWriter", "slice", "vector", "buf", "BufferReader", "result", "vi", "n", "count", "require_transaction", "__commonJSMin", "exports", "bufferutils_1", "bcrypto", "bscript", "script_1", "types", "typeforce", "varuint", "varSliceSize", "someScript", "length", "vectorSize", "someVector", "sum", "witness", "EMPTY_SCRIPT", "EMPTY_WITNESS", "ZERO", "ONE", "VALUE_UINT64_MAX", "BLANK_OUTPUT", "isOutput", "out", "Transaction", "buffer", "_NO_STRICT", "bufferReader", "tx", "marker", "flag", "hasWitnesses", "vinLen", "i", "voutLen", "hex", "hash", "index", "sequence", "scriptSig", "scriptPubKey", "value", "x", "base", "total", "_ALLOW_WITNESS", "input", "output", "newTx", "txIn", "txOut", "inIndex", "prevOutScript", "hashType", "ourScript", "txTmp", "y", "tbuffer", "bufferWriter", "hashOutputs", "hashPrevouts", "hashSequence", "txOutsSize", "forWitness", "initialOffset", "require_fastRoot", "__commonJSMin", "exports", "module", "values", "digestFn", "length", "results", "j", "i", "left", "right", "data", "require_block", "__commonJSMin", "exports", "bufferutils_1", "bcrypto", "transaction_1", "types", "fastMerkleRoot", "typeforce", "varuint", "errorMerkleNoTxes", "errorWitnessNotSegwit", "Block", "buffer", "bufferReader", "block", "readTransaction", "tx", "nTransactions", "i", "witnessCommit", "hex", "bits", "exponent", "mantissa", "target", "transactions", "forWitness", "txesHaveWitnessCommit", "hashes", "transaction", "rootHash", "witnessCommits", "out", "result", "anyTxHasWitness", "base", "total", "headersOnly", "allowWitness", "a", "x", "date", "bufferWriter", "txSize", "hasWitnessCommit", "hash", "actualMerkleRoot", "actualWitnessCommit", "input", "require_typeFields", "__commonJSMin", "exports", "GlobalTypes", "InputTypes", "OutputTypes", "require_globalXpub", "__commonJSMin", "exports", "typeFields_1", "range", "n", "decode", "keyVal", "extendedPubkey", "data", "i", "val", "isHard", "idx", "encode", "head", "key", "splitPath", "value", "offset", "level", "num", "check", "epk", "mfp", "p", "canAddToArray", "array", "item", "dupeSet", "dupeString", "v", "require_unsignedTx", "__commonJSMin", "exports", "typeFields_1", "encode", "data", "require_finalScriptSig", "__commonJSMin", "exports", "typeFields_1", "decode", "keyVal", "encode", "data", "check", "canAdd", "currentData", "newData", "require_finalScriptWitness", "__commonJSMin", "exports", "typeFields_1", "decode", "keyVal", "encode", "data", "check", "canAdd", "currentData", "newData", "require_nonWitnessUtxo", "__commonJSMin", "exports", "typeFields_1", "decode", "keyVal", "encode", "data", "check", "canAdd", "currentData", "newData", "require_partialSig", "__commonJSMin", "exports", "typeFields_1", "decode", "keyVal", "encode", "pSig", "head", "check", "data", "isDerSigWithSighash", "buf", "rLen", "sLen", "canAddToArray", "array", "item", "dupeSet", "dupeString", "v", "require_porCommitment", "__commonJSMin", "exports", "typeFields_1", "decode", "keyVal", "encode", "data", "check", "canAdd", "currentData", "newData", "require_sighashType", "__commonJSMin", "exports", "typeFields_1", "decode", "keyVal", "encode", "data", "key", "value", "check", "canAdd", "currentData", "newData", "require_tapKeySig", "__commonJSMin", "exports", "typeFields_1", "decode", "keyVal", "check", "encode", "value", "data", "canAdd", "currentData", "newData", "require_tapLeafScript", "__commonJSMin", "exports", "typeFields_1", "decode", "keyVal", "leafVersion", "script", "encode", "tScript", "head", "verBuf", "check", "data", "canAddToArray", "array", "item", "dupeSet", "dupeString", "v", "require_tapMerkleRoot", "__commonJSMin", "exports", "typeFields_1", "decode", "keyVal", "check", "encode", "value", "data", "canAdd", "currentData", "newData", "require_tapScriptSig", "__commonJSMin", "exports", "typeFields_1", "decode", "keyVal", "pubkey", "leafHash", "encode", "tSig", "head", "check", "data", "canAddToArray", "array", "item", "dupeSet", "dupeString", "v", "require_varint", "__commonJSMin", "exports", "MAX_SAFE_INTEGER", "checkUInt53", "n", "encode", "_number", "buffer", "offset", "encodingLength", "decode", "first", "lo", "require_tools", "__commonJSMin", "exports", "varuint", "n", "reverseBuffer", "buffer", "j", "tmp", "i", "keyValsToBuffer", "keyVals", "buffers", "keyValToBuffer", "keyVal", "keyLen", "valLen", "keyVarIntLen", "valVarIntLen", "verifuint", "value", "max", "readUInt64LE", "offset", "a", "b", "writeUInt64LE", "require_witnessUtxo", "__commonJSMin", "exports", "typeFields_1", "tools_1", "varuint", "decode", "keyVal", "value", "_offset", "scriptLen", "script", "encode", "data", "varintLen", "result", "check", "canAdd", "currentData", "newData", "require_tapTree", "__commonJSMin", "exports", "typeFields_1", "varuint", "decode", "keyVal", "_offset", "data", "depth", "leafVersion", "scriptLen", "encode", "tree", "key", "bufs", "tapLeaf", "check", "canAdd", "currentData", "newData", "require_bip32Derivation", "__commonJSMin", "exports", "range", "n", "isValidDERKey", "pubkey", "makeConverter", "TYPE_BYTE", "isValidPubkey", "decode", "keyVal", "data", "i", "val", "isHard", "idx", "encode", "head", "key", "splitPath", "value", "offset", "level", "num", "expected", "check", "canAddToArray", "array", "item", "dupeSet", "dupeString", "v", "require_checkPubkey", "__commonJSMin", "exports", "makeChecker", "pubkeyTypes", "checkPubkey", "keyVal", "pubkey", "require_redeemScript", "__commonJSMin", "exports", "makeConverter", "TYPE_BYTE", "decode", "keyVal", "encode", "data", "expected", "check", "canAdd", "currentData", "newData", "require_tapBip32Derivation", "__commonJSMin", "exports", "varuint", "bip32Derivation", "isValidBIP340Key", "pubkey", "makeConverter", "TYPE_BYTE", "parent", "decode", "keyVal", "nHashes", "nHashesLen", "base", "leafHashes", "i", "_offset", "encode", "data", "nHashesBuf", "value", "expected", "check", "leafHash", "require_tapInternalKey", "__commonJSMin", "exports", "makeConverter", "TYPE_BYTE", "decode", "keyVal", "encode", "value", "expected", "check", "data", "canAdd", "currentData", "newData", "require_witnessScript", "__commonJSMin", "exports", "makeConverter", "TYPE_BYTE", "decode", "keyVal", "encode", "data", "expected", "check", "canAdd", "currentData", "newData", "require_converter", "__commonJSMin", "exports", "typeFields_1", "globalXpub", "unsignedTx", "finalScriptSig", "finalScriptWitness", "nonWitnessUtxo", "partialSig", "porCommitment", "sighashType", "tapKeySig", "tapLeafScript", "tapMerkleRoot", "tapScriptSig", "witnessUtxo", "tapTree", "bip32Derivation", "checkPubkey", "redeemScript", "tapBip32Derivation", "tapInternalKey", "witnessScript", "globals", "inputs", "outputs", "require_fromBuffer", "__commonJSMin", "exports", "convert", "tools_1", "varuint", "typeFields_1", "psbtFromBuffer", "buffer", "txGetter", "offset", "varSlice", "keyLen", "key", "readUInt32BE", "num", "readUInt8", "getKeyValue", "value", "checkEndOfKeyValPairs", "isEnd", "globalMapKeyVals", "globalKeyIndex", "keyVal", "hexKey", "unsignedTxMaps", "unsignedTx", "inputCount", "outputCount", "inputKeyVals", "outputKeyVals", "index", "inputKeyIndex", "input", "outputKeyIndex", "output", "psbtFromKeyVals", "checkKeyBuffer", "type", "keyBuf", "keyNum", "globalMap", "txCount", "inputs", "outputs", "require_toBuffer", "__commonJSMin", "exports", "convert", "tools_1", "psbtToBuffer", "globalMap", "inputs", "outputs", "globalKeyVals", "inputKeyVals", "outputKeyVals", "psbtToKeyVals", "globalBuffer", "keyValsOrEmptyToBuffer", "keyVals", "inputBuffers", "outputBuffers", "header", "sortKeyVals", "a", "b", "keyValsFromMap", "keyValMap", "converterFactory", "keyHexSet", "result", "key", "value", "converter", "encodedKeyVals", "kv", "hex", "otherKeyVals", "keyVal", "i", "o", "require_parser", "__commonJSMin", "exports", "__export", "m", "p", "require_combiner", "__commonJSMin", "exports", "parser_1", "combine", "psbts", "self", "selfKeyVals", "others", "selfTx", "getTx", "selfGlobalSet", "getKeySet", "selfInputSets", "selfOutputSets", "other", "otherTx", "otherKeyVals", "keyPusher", "inputSet", "idx", "outputSet", "selfSet", "key", "newKv", "kv", "psbt", "keyVals", "set", "keyVal", "hex", "require_utils", "__commonJSMin", "exports", "converter", "checkForInput", "inputs", "inputIndex", "input", "checkForOutput", "outputs", "outputIndex", "output", "checkHasKey", "checkKeyVal", "keyVals", "enumLength", "kv", "getEnumLength", "myenum", "count", "val", "inputCheckUncleanFinalized", "result", "needScriptSig", "needWitnessScript", "scriptSigOK", "witnessScriptOK", "hasOneFinal", "throwForUpdateMaker", "typeName", "name", "expected", "data", "updateMaker", "updateData", "mainData", "canAdd", "canAddToArray", "check", "isArray", "arr", "dupeCheckSet", "v", "addInputAttributes", "index", "addOutputAttributes", "defaultVersionSetter", "version", "txBuf", "defaultLocktimeSetter", "locktime", "require_psbt", "__commonJSMin", "exports", "combiner_1", "parser_1", "typeFields_1", "utils_1", "Psbt", "tx", "data", "txFromBuffer", "buffer", "results", "psbt", "updateData", "inputIndex", "input", "outputIndex", "output", "keyVal", "inputData", "addKeyVals", "outputData", "key", "those", "result", "require_psbt", "__commonJSMin", "exports", "bip174_1", "varuint", "utils_1", "address_1", "bufferutils_1", "crypto_1", "ecpair_1", "networks_1", "payments", "bscript", "transaction_1", "DEFAULT_OPTS", "Psbt", "opts", "data", "PsbtTransaction", "dpew", "obj", "attr", "enumerable", "writable", "buffer", "psbtBase", "transactionFromBuffer", "psbt", "checkTxForDupeIns", "version", "locktime", "input", "output", "address", "those", "o", "res", "satoshiPerByte", "check32Bit", "checkInputsForPartialSig", "c", "inputIndex", "sequence", "inputDatas", "inputData", "checkInvalidP2WSH", "txIn", "checkTxInputCache", "addNonWitnessTxCache", "outputDatas", "outputData", "network", "script", "disableFeeCheck", "isFinalized", "checkFees", "tx", "inputFinalizeGetAmts", "getTxCacheValue", "range", "idx", "finalScriptsFunc", "getFinalScripts", "isP2SH", "isP2WSH", "isSegwit", "getScriptFromInput", "checkPartialSigSighashes", "finalScriptSig", "finalScriptWitness", "getScriptFromUtxo", "result", "getMeaningfulScript", "redeemFromFinalScriptSig", "redeemFromFinalWitnessScript", "type", "mainType", "classifyScript", "pubkey", "pubkeyInInput", "root", "derivationIsMine", "bip32DerivationIsMine", "outputIndex", "pubkeyInOutput", "final", "partialSig", "mySigs", "sig", "results", "hashCache", "scriptCache", "sighashCache", "pSig", "hash", "getHashForSig", "checkScriptForPubkey", "keypair", "hdKeyPair", "sighashTypes", "v", "resolve", "reject", "promises", "i", "getSignersFromHD", "signer", "keyPair", "sighashType", "getHashAndSighashType", "signature", "checkCache", "updateData", "keyVal", "checkTxEmpty", "canFinalize", "scriptType", "hasSigs", "p2ms", "cache", "neededSigs", "pubkeys", "sigs", "pkey", "isPaymentFactory", "payment", "isP2MS", "isP2PK", "isP2PKH", "isP2WPKH", "isP2WSHScript", "isP2SHScript", "d", "num", "feeRate", "vsize", "satoshis", "inputs", "action", "throws", "pSigs", "getPsigsFromInputFinalScripts", "hashType", "whitelist", "pubkeyInScript", "key", "scriptCheckerFactory", "paymentScriptName", "scriptPubKey", "redeemScript", "ioType", "redeemScriptOutput", "checkRedeemScript", "checkWitnessScript", "name", "mustFinalize", "prepareFinalScripts", "getPayment", "p2wsh", "p2sh", "witnessStackToScriptWitness", "forValidate", "unsignedTx", "str", "sighashTypeToString", "prevout", "nonWitnessUtxoTx", "nonWitnessUtxoTxFromCache", "prevoutHash", "utxoHash", "prevoutIndex", "meaningfulScript", "signingScript", "getSortedSigs", "scriptItems", "witnessItems", "item", "myDerivations", "bipDv", "node", "pk", "ps", "scriptWitnessToWitnessStack", "offset", "readSlice", "n", "readVarInt", "vi", "readVarSlice", "readVector", "count", "vector", "text", "witness", "writeSlice", "slice", "writeVarInt", "currentLen", "varintLen", "writeVarSlice", "writeVector", "self", "selfIndex", "buf", "txCache", "newBuf", "inputAmount", "nwTx", "vout", "out", "outputAmount", "total", "fee", "bytes", "finalScript", "decomp", "lastItem", "isPubkeyLike", "isSigLike", "index", "witnessScript", "isP2SHP2WSH", "pubkeyHash", "decompiled", "element", "require_input", "__commonJSMin", "exports", "bscript", "script_1", "partialSignature", "value", "check", "script", "allowIncomplete", "chunks", "require_output", "__commonJSMin", "exports", "bscript", "script_1", "types", "OP_INT_BASE", "check", "script", "allowIncomplete", "chunks", "m", "n", "require_multisig", "__commonJSMin", "exports", "input", "output", "require_nulldata", "__commonJSMin", "exports", "bscript", "OPS", "check", "script", "buffer", "output", "require_input", "__commonJSMin", "exports", "bscript", "check", "script", "chunks", "require_output", "__commonJSMin", "exports", "bscript", "script_1", "check", "script", "chunks", "require_pubkey", "__commonJSMin", "exports", "input", "output", "require_input", "__commonJSMin", "exports", "bscript", "check", "script", "chunks", "require_output", "__commonJSMin", "exports", "bscript", "script_1", "check", "script", "buffer", "require_pubkeyhash", "__commonJSMin", "exports", "input", "output", "require_output", "__commonJSMin", "exports", "bscript", "script_1", "check", "script", "buffer", "require_output", "__commonJSMin", "exports", "bscript", "script_1", "check", "script", "buffer", "require_input", "__commonJSMin", "exports", "bscript", "p2ms", "p2pk", "p2pkh", "p2wpkho", "p2wsho", "check", "script", "allowIncomplete", "chunks", "lastChunk", "scriptSigChunks", "redeemScriptChunks", "require_output", "__commonJSMin", "exports", "bscript", "script_1", "check", "script", "buffer", "require_scripthash", "__commonJSMin", "exports", "input", "output", "require_output", "__commonJSMin", "exports", "bscript", "script_1", "types", "typeforce", "HEADER", "check", "script", "buffer", "encode", "commitment", "decode", "require_witnesscommitment", "__commonJSMin", "exports", "output", "require_input", "__commonJSMin", "exports", "bscript", "isCompressedCanonicalPubKey", "pubKey", "check", "script", "chunks", "require_witnesspubkeyhash", "__commonJSMin", "exports", "input", "output", "require_input", "__commonJSMin", "exports", "bscript", "typeforce", "p2ms", "p2pk", "p2pkh", "check", "chunks", "allowIncomplete", "witnessScript", "witnessScriptChunks", "witnessRawScriptSig", "require_witnessscripthash", "__commonJSMin", "exports", "input", "output", "require_classify", "__commonJSMin", "exports", "script_1", "multisig", "nullData", "pubKey", "pubKeyHash", "scriptHash", "witnessCommitment", "witnessPubKeyHash", "witnessScriptHash", "types", "classifyOutput", "script", "chunks", "classifyInput", "allowIncomplete", "classifyWitness", "require_transaction_builder", "__commonJSMin", "exports", "baddress", "bufferutils_1", "classify", "bcrypto", "ECPair", "networks", "payments", "bscript", "script_1", "transaction_1", "types", "typeforce", "SCRIPT_TYPES", "PREVOUT_TYPES", "tfMessage", "type", "value", "message", "txIsString", "tx", "txIsTransaction", "TransactionBuilder", "network", "maximumFeeRate", "transaction", "txb", "txOut", "txIn", "input", "i", "fixMultisigOrder", "setting", "locktime", "s", "version", "txHash", "vout", "sequence", "prevOutScript", "scriptPubKey", "signParams", "keyPair", "redeemScript", "hashType", "witnessValue", "witnessScript", "trySign", "getSigningData", "options", "prevTxOut", "expandInput", "prevOutType", "expanded", "expandOutput", "vin", "allowIncomplete", "result", "build", "signature", "signatureHashType", "signingHashType", "nInputs", "nOutputs", "hashTypeMod", "bytes", "incoming", "x", "outgoing", "scriptSig", "witnessStack", "ssType", "wsType", "output", "pubkey", "m", "pubkeys", "signatures", "redeem", "outputType", "unmatched", "pubKey", "match", "parsed", "hash", "script", "ourPubKey", "pkh1", "pkh2", "wpkh1", "wpkh2", "p2pk", "p2ms", "prepareInput", "p2wsh", "p2wshAlt", "p2sh", "p2shAlt", "signScript", "validate", "canSign", "buffer", "checkSignArgs", "inputs", "posType", "signatureHash", "useLowR", "signed", "needsOutputs", "prepared", "require_src", "__commonJSMin", "exports", "bip32", "address", "crypto", "ECPair", "networks", "payments", "script", "block_1", "psbt_1", "script_1", "transaction_1", "transaction_builder_1", "require_bip32_path", "__commonJSMin", "exports", "module", "BIPPath", "path", "i", "text", "reqRoot", "ret", "tmp", "noRoot", "oldStyle", "require_stream", "__commonJSMin", "exports", "module", "require_buffer_list", "__commonJSMin", "exports", "module", "ownKeys", "object", "enumerableOnly", "keys", "symbols", "sym", "_objectSpread", "target", "i", "source", "key", "_defineProperty", "obj", "value", "_toPropertyKey", "arg", "_toPrimitive", "input", "hint", "prim", "res", "_require", "Buffer", "_require2", "inspect", "custom", "copyBuffer", "src", "offset", "v", "entry", "ret", "s", "p", "n", "hasStrings", "c", "str", "nb", "buf", "_", "options", "require_destroy", "__commonJSMin", "exports", "module", "destroy", "err", "cb", "readableDestroyed", "writableDestroyed", "emitErrorNT", "emitCloseNT", "emitErrorAndCloseNT", "self", "undestroy", "errorOrDestroy", "stream", "rState", "wState", "require_errors", "__commonJSMin", "exports", "module", "codes", "createErrorType", "code", "message", "Base", "getMessage", "arg1", "arg2", "arg3", "NodeError", "oneOf", "expected", "thing", "len", "i", "startsWith", "str", "search", "pos", "endsWith", "this_len", "includes", "start", "name", "value", "actual", "determiner", "msg", "type", "arg", "require_state", "__commonJSMin", "exports", "module", "ERR_INVALID_OPT_VALUE", "highWaterMarkFrom", "options", "isDuplex", "duplexKey", "getHighWaterMark", "state", "hwm", "name", "require_node", "__commonJSMin", "exports", "module", "require_stream_writable", "__commonJSMin", "exports", "module", "Writable", "CorkedRequest", "state", "onCorkedFinish", "Duplex", "WritableState", "internalUtil", "Stream", "Buffer", "OurUint8Array", "_uint8ArrayToBuffer", "chunk", "_isUint8Array", "obj", "destroyImpl", "_require", "getHighWaterMark", "_require$codes", "ERR_INVALID_ARG_TYPE", "ERR_METHOD_NOT_IMPLEMENTED", "ERR_MULTIPLE_CALLBACK", "ERR_STREAM_CANNOT_PIPE", "ERR_STREAM_DESTROYED", "ERR_STREAM_NULL_VALUES", "ERR_STREAM_WRITE_AFTER_END", "ERR_UNKNOWN_ENCODING", "errorOrDestroy", "nop", "options", "stream", "isDuplex", "noDecode", "er", "onwrite", "current", "out", "realHasInstance", "object", "writeAfterEnd", "cb", "validChunk", "encoding", "ret", "isBuf", "writeOrBuffer", "clearBuffer", "decodeChunk", "newChunk", "len", "last", "doWrite", "writev", "onwriteError", "sync", "finishMaybe", "onwriteStateUpdate", "finished", "needFinish", "afterWrite", "onwriteDrain", "entry", "l", "buffer", "holder", "count", "allBuffers", "endWritable", "callFinal", "err", "prefinish", "need", "rState", "corkReq", "value", "require_stream_duplex", "__commonJSMin", "exports", "module", "objectKeys", "obj", "keys", "key", "Duplex", "Readable", "Writable", "v", "method", "options", "onend", "onEndNT", "self", "value", "require_string_decoder", "__commonJSMin", "exports", "Buffer", "isEncoding", "encoding", "_normalizeEncoding", "enc", "retried", "normalizeEncoding", "nenc", "StringDecoder", "nb", "utf16Text", "utf16End", "utf8FillLast", "base64Text", "base64End", "simpleWrite", "simpleEnd", "buf", "r", "i", "utf8End", "utf8Text", "utf8CheckByte", "byte", "utf8CheckIncomplete", "self", "j", "utf8CheckExtraBytes", "p", "total", "end", "c", "n", "require_end_of_stream", "__commonJSMin", "exports", "module", "ERR_STREAM_PREMATURE_CLOSE", "once", "callback", "called", "_len", "args", "_key", "noop", "isRequest", "stream", "eos", "opts", "readable", "writable", "onlegacyfinish", "onfinish", "writableEnded", "readableEnded", "onend", "onerror", "err", "onclose", "onrequest", "require_async_iterator", "__commonJSMin", "exports", "module", "finished", "kLastResolve", "kLastReject", "kError", "kEnded", "kLastPromise", "kHandlePromise", "kStream", "createIterResult", "value", "done", "readAndResolve", "iter", "resolve", "data", "onReadable", "wrapForNext", "lastPromise", "reject", "AsyncIteratorPrototype", "ReadableStreamAsyncIteratorPrototype", "error", "promise", "err", "createReadableStreamAsyncIterator", "stream", "iterator", "require_from", "__commonJSMin", "exports", "module", "asyncGeneratorStep", "gen", "resolve", "reject", "_next", "_throw", "key", "arg", "info", "value", "error", "_asyncToGenerator", "fn", "self", "args", "err", "ownKeys", "object", "enumerableOnly", "keys", "symbols", "sym", "_objectSpread", "target", "i", "source", "_defineProperty", "obj", "_toPropertyKey", "_toPrimitive", "input", "hint", "prim", "res", "ERR_INVALID_ARG_TYPE", "from", "Readable", "iterable", "opts", "iterator", "readable", "reading", "next", "_next2", "_yield$iterator$next", "require_stream_readable", "__commonJSMin", "exports", "module", "Readable", "Duplex", "ReadableState", "EE", "EElistenerCount", "emitter", "type", "Stream", "Buffer", "OurUint8Array", "_uint8ArrayToBuffer", "chunk", "_isUint8Array", "obj", "debugUtil", "debug", "BufferList", "destroyImpl", "_require", "getHighWaterMark", "_require$codes", "ERR_INVALID_ARG_TYPE", "ERR_STREAM_PUSH_AFTER_EOF", "ERR_METHOD_NOT_IMPLEMENTED", "ERR_STREAM_UNSHIFT_AFTER_END_EVENT", "StringDecoder", "createReadableStreamAsyncIterator", "from", "errorOrDestroy", "kProxyEvents", "prependListener", "event", "fn", "options", "stream", "isDuplex", "value", "err", "cb", "encoding", "state", "skipChunkCheck", "readableAddChunk", "addToFront", "onEofChunk", "er", "chunkInvalid", "addChunk", "maybeReadMore", "emitReadable", "enc", "decoder", "p", "content", "MAX_HWM", "computeNewHighWaterMark", "n", "howMuchToRead", "nOrig", "endReadable", "doRead", "ret", "fromList", "emitReadable_", "flow", "maybeReadMore_", "len", "dest", "pipeOpts", "src", "doEnd", "endFn", "onend", "unpipe", "onunpipe", "readable", "unpipeInfo", "cleanup", "ondrain", "pipeOnDrain", "cleanedUp", "onclose", "onfinish", "onerror", "ondata", "indexOf", "dests", "i", "index", "ev", "res", "nReadingNextTick", "updateReadableListening", "self", "resume", "resume_", "paused", "method", "endReadableNT", "wState", "iterable", "opts", "xs", "x", "l", "require_stream_transform", "__commonJSMin", "exports", "module", "Transform", "_require$codes", "ERR_METHOD_NOT_IMPLEMENTED", "ERR_MULTIPLE_CALLBACK", "ERR_TRANSFORM_ALREADY_TRANSFORMING", "ERR_TRANSFORM_WITH_LENGTH_0", "Duplex", "afterTransform", "er", "data", "ts", "cb", "rs", "options", "prefinish", "done", "chunk", "encoding", "n", "err", "err2", "stream", "require_stream_passthrough", "__commonJSMin", "exports", "module", "PassThrough", "Transform", "options", "chunk", "encoding", "cb", "require_pipeline", "__commonJSMin", "exports", "module", "eos", "once", "callback", "called", "_require$codes", "ERR_MISSING_ARGS", "ERR_STREAM_DESTROYED", "noop", "err", "isRequest", "stream", "destroyer", "reading", "writing", "closed", "destroyed", "call", "fn", "pipe", "from", "to", "popCallback", "streams", "pipeline", "_len", "_key", "error", "destroys", "i", "require_readable", "__commonJSMin", "exports", "module", "Stream", "require_hash_base", "__commonJSMin", "exports", "module", "Buffer", "Transform", "inherits", "throwIfNotStringOrBuffer", "val", "prefix", "HashBase", "blockSize", "chunk", "encoding", "callback", "error", "err", "data", "block", "offset", "j", "carry", "digest", "i", "require_ripemd160", "__commonJSMin", "exports", "module", "Buffer", "inherits", "HashBase", "ARRAY16", "zl", "zr", "sl", "sr", "hl", "hr", "RIPEMD160", "words", "j", "al", "bl", "cl", "dl", "el", "ar", "br", "cr", "dr", "er", "i", "tl", "tr", "fn1", "fn5", "fn2", "fn4", "fn3", "rotl", "t", "buffer", "x", "n", "a", "b", "c", "d", "e", "m", "k", "s", "require_hash", "__commonJSMin", "exports", "module", "Buffer", "Hash", "blockSize", "finalSize", "data", "enc", "block", "length", "accum", "offset", "assigned", "remainder", "i", "rem", "bits", "lowBits", "highBits", "hash", "require_sha", "__commonJSMin", "exports", "module", "inherits", "Hash", "Buffer", "K", "W", "Sha", "rotl5", "num", "rotl30", "ft", "s", "b", "c", "d", "M", "a", "e", "i", "j", "t", "H", "require_sha1", "__commonJSMin", "exports", "module", "inherits", "Hash", "Buffer", "K", "W", "Sha1", "rotl1", "num", "rotl5", "rotl30", "ft", "s", "b", "c", "d", "M", "a", "e", "i", "j", "t", "H", "require_sha256", "__commonJSMin", "exports", "module", "inherits", "Hash", "Buffer", "K", "W", "Sha256", "ch", "x", "y", "z", "maj", "sigma0", "sigma1", "gamma0", "gamma1", "M", "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "T1", "T2", "H", "require_sha224", "__commonJSMin", "exports", "module", "inherits", "Sha256", "Hash", "Buffer", "W", "Sha224", "H", "require_sha512", "__commonJSMin", "exports", "module", "inherits", "Hash", "Buffer", "K", "W", "Sha512", "Ch", "x", "y", "z", "maj", "sigma0", "xl", "sigma1", "Gamma0", "Gamma0l", "Gamma1", "Gamma1l", "getCarry", "a", "b", "M", "ah", "bh", "ch", "dh", "eh", "fh", "gh", "hh", "al", "bl", "cl", "dl", "el", "fl", "gl", "hl", "i", "xh", "gamma0", "gamma0l", "gamma1", "gamma1l", "Wi7h", "Wi7l", "Wi16h", "Wi16l", "Wil", "Wih", "j", "majh", "majl", "sigma0h", "sigma0l", "sigma1h", "sigma1l", "Kih", "Kil", "chh", "chl", "t1l", "t1h", "t2l", "t2h", "H", "writeInt64BE", "h", "l", "offset", "require_sha384", "__commonJSMin", "exports", "module", "inherits", "SHA512", "Hash", "Buffer", "W", "Sha384", "H", "writeInt64BE", "h", "l", "offset", "require_sha", "__commonJSMin", "exports", "module", "algorithm", "Algorithm", "id", "subscribers", "log", "type", "message", "data", "obj", "dispatch", "exports", "listen", "cb", "i", "e", "require_invariant", "__commonJSMin", "exports", "module", "NODE_ENV", "invariant", "condition", "format", "a", "b", "c", "d", "e", "f", "error", "args", "argIndex", "require_constants", "__commonJSMin", "exports", "module", "SEMVER_SPEC_VERSION", "MAX_SAFE_INTEGER", "MAX_SAFE_COMPONENT_LENGTH", "require_debug", "__commonJSMin", "exports", "module", "debug", "args", "require_re", "__commonJSMin", "exports", "module", "MAX_SAFE_COMPONENT_LENGTH", "debug", "re", "src", "t", "R", "createToken", "name", "value", "isGlobal", "index", "require_parse_options", "__commonJSMin", "exports", "module", "opts", "parseOptions", "options", "k", "o", "require_identifiers", "__commonJSMin", "exports", "module", "numeric", "compareIdentifiers", "a", "b", "anum", "bnum", "rcompareIdentifiers", "require_semver", "__commonJSMin", "exports", "module", "debug", "MAX_LENGTH", "MAX_SAFE_INTEGER", "re", "t", "parseOptions", "compareIdentifiers", "SemVer", "version", "options", "m", "id", "num", "other", "i", "a", "b", "release", "identifier", "require_parse", "__commonJSMin", "exports", "module", "MAX_LENGTH", "re", "t", "SemVer", "parseOptions", "parse", "version", "options", "require_valid", "__commonJSMin", "exports", "module", "parse", "valid", "version", "options", "v", "require_clean", "__commonJSMin", "exports", "module", "parse", "clean", "version", "options", "s", "require_inc", "__commonJSMin", "exports", "module", "SemVer", "inc", "version", "release", "options", "identifier", "require_compare", "__commonJSMin", "exports", "module", "SemVer", "compare", "a", "b", "loose", "require_eq", "__commonJSMin", "exports", "module", "compare", "eq", "a", "b", "loose", "require_diff", "__commonJSMin", "exports", "module", "parse", "eq", "diff", "version1", "version2", "v1", "v2", "hasPre", "prefix", "defaultResult", "key", "require_major", "__commonJSMin", "exports", "module", "SemVer", "major", "a", "loose", "require_minor", "__commonJSMin", "exports", "module", "SemVer", "minor", "a", "loose", "require_patch", "__commonJSMin", "exports", "module", "SemVer", "patch", "a", "loose", "require_prerelease", "__commonJSMin", "exports", "module", "parse", "prerelease", "version", "options", "parsed", "require_rcompare", "__commonJSMin", "exports", "module", "compare", "rcompare", "a", "b", "loose", "require_compare_loose", "__commonJSMin", "exports", "module", "compare", "compareLoose", "a", "b", "require_compare_build", "__commonJSMin", "exports", "module", "SemVer", "compareBuild", "a", "b", "loose", "versionA", "versionB", "require_sort", "__commonJSMin", "exports", "module", "compareBuild", "sort", "list", "loose", "a", "b", "require_rsort", "__commonJSMin", "exports", "module", "compareBuild", "rsort", "list", "loose", "a", "b", "require_gt", "__commonJSMin", "exports", "module", "compare", "gt", "a", "b", "loose", "require_lt", "__commonJSMin", "exports", "module", "compare", "lt", "a", "b", "loose", "require_neq", "__commonJSMin", "exports", "module", "compare", "neq", "a", "b", "loose", "require_gte", "__commonJSMin", "exports", "module", "compare", "gte", "a", "b", "loose", "require_lte", "__commonJSMin", "exports", "module", "compare", "lte", "a", "b", "loose", "require_cmp", "__commonJSMin", "exports", "module", "eq", "neq", "gt", "gte", "lt", "lte", "cmp", "a", "op", "b", "loose", "require_coerce", "__commonJSMin", "exports", "module", "SemVer", "parse", "re", "t", "coerce", "version", "options", "match", "next", "require_iterator", "__commonJSMin", "exports", "module", "Yallist", "walker", "require_yallist", "__commonJSMin", "exports", "module", "Yallist", "Node", "list", "self", "item", "i", "l", "node", "next", "prev", "head", "tail", "push", "unshift", "res", "fn", "thisp", "walker", "n", "initial", "acc", "arr", "from", "to", "ret", "start", "deleteCount", "nodes", "insert", "p", "value", "inserted", "require_lru_cache", "__commonJSMin", "exports", "module", "Yallist", "MAX", "LENGTH", "LENGTH_CALCULATOR", "ALLOW_STALE", "MAX_AGE", "DISPOSE", "NO_DISPOSE_ON_SET", "LRU_LIST", "CACHE", "UPDATE_AGE_ON_GET", "naiveLength", "LRUCache", "options", "max", "lc", "mL", "trim", "allowStale", "mA", "lC", "hit", "fn", "thisp", "walker", "prev", "forEachStep", "next", "k", "isStale", "h", "key", "value", "maxAge", "now", "len", "del", "item", "Entry", "get", "node", "arr", "l", "expiresAt", "self", "doUse", "diff", "length", "require_range", "__commonJSMin", "exports", "module", "Range", "range", "options", "parseOptions", "Comparator", "r", "c", "first", "isNullSet", "isAny", "comps", "memoKey", "cached", "cache", "loose", "hr", "re", "t", "hyphenReplace", "debug", "comparatorTrimReplace", "tildeTrimReplace", "caretTrimReplace", "rangeList", "comp", "parseComparator", "replaceGTE0", "rangeMap", "comparators", "result", "thisComparators", "isSatisfiable", "rangeComparators", "thisComparator", "rangeComparator", "version", "SemVer", "i", "testSet", "LRU", "remainingComparators", "testComparator", "otherComparator", "replaceCarets", "replaceTildes", "replaceXRanges", "replaceStars", "isX", "id", "replaceTilde", "_", "M", "m", "p", "pr", "ret", "replaceCaret", "z", "replaceXRange", "gtlt", "xM", "xm", "xp", "anyX", "incPr", "$0", "from", "fM", "fm", "fp", "fpr", "fb", "to", "tM", "tm", "tp", "tpr", "tb", "set", "allowed", "require_comparator", "__commonJSMin", "exports", "module", "ANY", "Comparator", "comp", "options", "parseOptions", "debug", "re", "t", "m", "SemVer", "version", "cmp", "Range", "sameDirectionIncreasing", "sameDirectionDecreasing", "sameSemVer", "differentDirectionsInclusive", "oppositeDirectionsLessThan", "oppositeDirectionsGreaterThan", "require_satisfies", "__commonJSMin", "exports", "module", "Range", "satisfies", "version", "range", "options", "require_to_comparators", "__commonJSMin", "exports", "module", "Range", "toComparators", "range", "options", "comp", "c", "require_max_satisfying", "__commonJSMin", "exports", "module", "SemVer", "Range", "maxSatisfying", "versions", "range", "options", "max", "maxSV", "rangeObj", "v", "require_min_satisfying", "__commonJSMin", "exports", "module", "SemVer", "Range", "minSatisfying", "versions", "range", "options", "min", "minSV", "rangeObj", "v", "require_min_version", "__commonJSMin", "exports", "module", "SemVer", "Range", "gt", "minVersion", "range", "loose", "minver", "i", "comparators", "setMin", "comparator", "compver", "require_valid", "__commonJSMin", "exports", "module", "Range", "validRange", "range", "options", "require_outside", "__commonJSMin", "exports", "module", "SemVer", "Comparator", "ANY", "Range", "satisfies", "gt", "lt", "lte", "gte", "outside", "version", "range", "hilo", "options", "gtfn", "ltefn", "ltfn", "comp", "ecomp", "i", "comparators", "high", "low", "comparator", "require_gtr", "__commonJSMin", "exports", "module", "outside", "gtr", "version", "range", "options", "require_ltr", "__commonJSMin", "exports", "module", "outside", "ltr", "version", "range", "options", "require_intersects", "__commonJSMin", "exports", "module", "Range", "intersects", "r1", "r2", "options", "require_simplify", "__commonJSMin", "exports", "module", "satisfies", "compare", "versions", "range", "options", "set", "first", "prev", "v", "a", "b", "version", "ranges", "min", "max", "simplified", "original", "require_subset", "__commonJSMin", "exports", "module", "Range", "Comparator", "ANY", "satisfies", "compare", "subset", "sub", "dom", "options", "sawNonNull", "OUTER", "simpleSub", "simpleDom", "isSub", "simpleSubset", "eqSet", "gt", "lt", "c", "higherGT", "lowerLT", "gtltComp", "eq", "higher", "lower", "hasDomLT", "hasDomGT", "needDomLTPre", "needDomGTPre", "a", "b", "comp", "require_semver", "__commonJSMin", "exports", "module", "internalRe", "constants", "SemVer", "identifiers", "parse", "valid", "clean", "inc", "diff", "major", "minor", "patch", "prerelease", "compare", "rcompare", "compareLoose", "compareBuild", "sort", "rsort", "gt", "lt", "eq", "neq", "gte", "lte", "cmp", "coerce", "Comparator", "Range", "satisfies", "toComparators", "maxSatisfying", "minSatisfying", "minVersion", "validRange", "outside", "gtr", "ltr", "intersects", "simplifyRange", "subset", "errorClasses", "deserializers", "addCustomErrorDeserializer", "name", "deserializer", "exports", "createCustomErrorClass", "CustomErrorClass", "_super", "__extends", "message", "fields", "options", "_this", "k", "isObject", "cause", "value", "deserializeError", "object", "msg", "error", "name_1", "des", "constructor", "prop", "serializeError", "destroyCircular", "from", "seen", "to", "_b", "__values", "_c", "key", "helpers_1", "exports", "HwTransportErrorType", "HwTransportError", "_super", "__extends", "type", "message", "_this", "TransportError", "id", "name", "getAltStatusMessage", "code", "TransportStatusError", "statusCode", "statusText", "k", "smsg", "statusCodeStr", "events_1", "__importDefault", "errors_1", "exports", "Transport", "_this", "cla", "ins", "p1", "p2", "data", "statusList", "response", "_a", "sw", "s", "f", "__awaiter", "busyPromise", "r", "resolveBusy", "unresponsiveReached", "timeout", "res", "_apdu", "apdus", "observer", "unsubscribed", "unsubscribe", "main", "apdus_1", "__values", "apdus_1_1", "apdu", "_b", "status_1", "e", "_key", "eventName", "cb", "event", "args", "_i", "__spreadArray", "__read", "exchangeTimeout", "unresponsiveTimeout", "openTimeout", "listenTimeout", "resolve", "reject", "found", "sub", "listenTimeoutId", "self", "methods", "scrambleKey", "methods_1", "methods_1_1", "methodName", "ctx", "_appAPIlock", "errors_1", "Tag", "asUInt16BE", "value", "b", "initialAcc", "createHIDframing", "channel", "packetSize", "apdu", "data", "blockSize", "nbBlocks", "blocks", "i", "head", "chunk", "acc", "_a", "dataLength", "sequence", "chunkData", "exports", "semver_1", "__importDefault", "exports", "DeviceModelId", "devices", "_a", "_firwareVersion", "firmwareVersion", "_firmwareVersion", "productMap", "devicesList", "getDeviceModel", "id", "info", "identifyTargetId", "targetId", "deviceModel", "masks", "mask", "identifyUSBProductId", "usbProductId", "legacy", "d", "mm", "identifyProductName", "productName", "bluetoothServices", "serviceUuidToInfos", "bluetoothSpec", "i", "spec", "__assign", "getBluetoothServiceUuids", "getInfosForServiceUuid", "uuid", "devices_1", "ledgerDevices", "requestLedgerDevice", "device", "_a", "exports", "getLedgerDevices", "devices", "d", "getFirstLedgerDevice", "existingDevices", "isSupported", "hw_transport_1", "__importDefault", "hid_framing_1", "devices_1", "logs_1", "errors_1", "webusb_1", "configurationValue", "endpointNumber", "TransportWebUSB", "_super", "__extends", "device", "interfaceNumber", "_this", "e", "_a", "devices", "gracefullyResetDevice", "iface", "alternates", "a", "e_1", "transport", "onDisconnect", "apdu", "__awaiter", "channel", "packetSize", "framing", "blocks", "i", "_b", "result", "acc", "r", "buffer", "b", "observer", "unsubscribed", "deviceModel", "error", "unsubscribe", "err_1", "src_exports", "__export", "BitcoinLedgerSigner", "__toCommonJS", "import_bitcoinjs_lib", "import_tiny_secp256k1", "import_bip32_path", "import_bs58check", "pathElementsToBuffer", "paths", "buffer", "element", "index", "bip32asBuffer", "path", "pathElements", "pathStringToArray", "pathArrayToString", "bippath", "pubkeyFromXpub", "xpub", "xpubBuf", "bs58check", "getXpubComponents", "hardenedPathOf", "i", "import_varuint_bitcoin", "unsafeTo64bitLE", "n", "byteArray", "index", "byte", "unsafeFrom64bitLE", "value", "i", "BufferWriter", "alloc", "fn", "b", "bytes", "varuint", "slice", "BufferReader", "buffer", "offset", "result", "buf", "n", "unsafeFrom64bitLE", "vi", "varuint", "count", "vector", "i", "import_bitcoinjs_lib", "import_tiny_secp256k1", "MAX_SCRIPT_BLOCK", "DEFAULT_VERSION", "DEFAULT_LOCKTIME", "DEFAULT_SEQUENCE", "SIGHASH_ALL", "OP_DUP", "OP_HASH160", "HASH_SIZE", "OP_EQUAL", "OP_EQUALVERIFY", "OP_CHECKSIG", "import_ripemd160", "import_sha", "hashPublicKey", "buffer", "RIPEMD160", "sha", "BaseAccount", "psbt", "masterFp", "SingleKeyAccount", "_super", "__extends", "pubkeys", "i", "inputTx", "spentOutput", "pathElems", "cond", "paths", "p2pkh", "pubkey", "buf", "BufferWriter", "pubkeyHash", "hashPublicKey", "OP_DUP", "OP_HASH160", "HASH_SIZE", "OP_EQUALVERIFY", "OP_CHECKSIG", "_spentOutput", "path", "p2tr", "_super", "__extends", "pubkey", "xonlyPubkey", "buf", "BufferWriter", "outputKey", "i", "_inputTx", "spentOutput", "path", "xonly", "cond", "x", "h", "internalPubkey", "evenEcdsaPubkey", "tweak", "outputEcdsaKey", "outputSchnorrKey", "SingleKeyAccount", "p2wpkhWrapped", "_super", "__extends", "pubkey", "buf", "BufferWriter", "redeemScript", "scriptHash", "hashPublicKey", "OP_HASH160", "HASH_SIZE", "OP_EQUAL", "i", "inputTx", "spentOutput", "path", "userSuppliedRedeemScript", "expectedRedeemScript", "cond", "pubkeyHash", "SingleKeyAccount", "p2wpkh", "_super", "__extends", "pubkey", "buf", "BufferWriter", "pubkeyHash", "hashPublicKey", "HASH_SIZE", "i", "inputTx", "spentOutput", "path", "cond", "SingleKeyAccount", "import_bitcoinjs_lib", "import_bitcoinjs_lib", "Merkle", "leaves", "hasher", "nodes", "index", "proveNode", "n", "Node", "newNode", "leftCount", "highestPowerOf2LessThan", "leftBranch", "rightBranch", "leftChild", "rightChild", "hash", "node", "left", "right", "hashLeaf", "buf", "hashFunction", "hashConcat", "bufA", "bufB", "Node", "left", "right", "hash", "proveNode", "node", "__spreadArray", "__read", "highestPowerOf2LessThan", "n", "isPowerOf2", "WalletPolicy", "descriptorTemplate", "key", "keyBuffers", "k", "m", "Merkle", "hashLeaf", "buf", "BufferWriter", "createKey", "masterFingerprint", "path", "xpub", "accountPath", "pathArrayToString", "extract", "psbt", "tx", "BufferWriter", "isSegwit", "inputCount", "witnessWriter", "i", "_a", "outputCount", "_b", "psbtGlobal", "psbtIn", "psbtOut", "PSBT_MAGIC_BYTES", "NoSuchEntry", "_super", "__extends", "PsbtV2", "version", "psbtGlobal", "uint32LE", "locktime", "_a", "inputCount", "varint", "fromVarint", "outputCount", "byte", "psbtVersion", "inputIndex", "transaction", "psbtIn", "b", "amount", "scriptPubKey", "buf", "BufferWriter", "utxo", "BufferReader", "pubkey", "signature", "sigHashtype", "result", "redeemScript", "masterFingerprint", "path", "scriptSig", "scriptWitness", "txid", "outputIndex", "sequence", "_b", "sig", "hashes", "keyType", "psbtOut", "uint64LE", "unsafeFrom64bitLE", "fingerprint", "keyTypes", "_this", "map", "_v", "k", "m", "to", "from", "index", "to_index", "v", "serializeMap", "psbt", "PSBT_MAGIC_BYTES", "i", "keyLen", "keyData", "value", "set", "hexKey", "key", "Key", "get", "maps", "buffer", "element", "h", "hashCount", "deriv", "__assign", "get", "map", "keyType", "keyData", "acceptUndefined", "key", "Key", "value", "NoSuchEntry", "buf", "BufferWriter", "KeyPair", "createKey", "serializeMap", "k", "keyPair", "b", "set", "uint32LE", "n", "uint64LE", "unsafeTo64bitLE", "varint", "fromVarint", "BufferReader", "finalize", "psbt", "inputCount", "i", "legacyPubkeys", "psbtIn", "taprootSig", "isSegwitV0", "redeemScript", "isWrappedSegwit", "signature", "witnessBuf", "BufferWriter", "scriptSigBuf", "scriptSig", "writePush", "clearFinalizedInput", "inputIndex", "keyTypes", "witnessUtxoAvailable", "nonWitnessUtxoAvailable", "buf", "data", "b", "getVarint", "data", "offset", "createVarint", "value", "buffer_1", "buffer_2", "buffer", "serializeTransactionOutputs", "_a", "outputs", "outputBuffer", "createVarint", "output", "serializeTransaction", "transaction", "skipWitness", "timestamp", "additionals", "isDecred", "isZcash", "isBech32", "inputBuffer", "useWitness", "input", "BtcNew", "client", "_a", "path", "xpubVersion", "pathElements", "pathStringToArray", "xpub", "_b", "xpubComponents", "getXpubComponents", "opts", "isPathNormal", "_c", "display", "descrTemplFrom", "address", "components", "uncompressedPubkey", "descrTempl", "accountPath", "hardenedPathOf", "accountXpub", "masterFingerprint", "policy", "WalletPolicy", "createKey", "changeAndIndex", "arg", "inputCount", "psbt", "PsbtV2", "masterFp", "accountType", "accountTypeFromArg", "notifyCount", "progress", "i", "pathElems", "outputsConcat", "outputsBufferReader", "BufferReader", "outputCount", "changeData", "changeFound", "amount", "outputScript", "isChange", "changePath", "pubkey", "key", "p", "firstSigned", "progressCallback", "finalize", "serializedTx", "extract", "pathArrayToString", "pubkeyFromXpub", "cond", "input", "masterFP", "sigHashType", "inputTx", "spentOutputIndex", "redeemScript", "sequence", "inputTxBuffer", "serializeTransaction", "inputTxid", "xpubBase58", "spentTxOutput", "spendCondition", "spentOutput", "walletPolicy", "sigs", "v", "k", "pubkeys", "psbtIn", "addressFormat", "p2tr", "p2wpkh", "p2wpkhWrapped", "p2pkh", "h", "hard", "n", "soft", "change", "import_bs58", "import_ripemd160", "import_sha", "import_logs", "addressFormatMap", "getWalletPublicKey", "transport", "options", "_a", "__assign", "path", "verify", "format", "buffer", "bip32asBuffer", "p1", "p2", "response", "_b", "publicKeyLength", "addressLength", "publicKey", "bitcoinAddress", "chainCode", "import_invariant", "getTrustedInputRaw", "transport", "transactionData", "indexLookup", "firstRound", "prefix", "data", "trustedInput", "_a", "res", "getTrustedInput", "transaction", "additionals", "version", "inputs", "outputs", "locktime", "nExpiryHeight", "extraData", "isDecred", "isXST", "processScriptBlocks", "script", "sequence", "__awaiter", "_this", "seq", "scriptBlocks", "offset", "blockSize", "MAX_SCRIPT_BLOCK", "scriptBlocks_1", "__values", "scriptBlocks_1_1", "scriptBlock", "_b", "processWholeScriptBlock", "block", "createVarint", "_c", "inputs_1", "inputs_1_1", "input", "isXSTV2", "treeField", "outputs_1", "outputs_1_1", "output", "endData", "extraPart", "invariant", "startUntrustedHashTransactionInputRaw", "transport", "newTransaction", "firstRound", "transactionData", "bip143", "overwinter", "additionals", "p2", "startUntrustedHashTransactionInput", "transaction", "inputs", "useTrustedInputForSegwit", "data", "createVarint", "_e", "i", "isDecred", "_a", "__values", "_b", "input", "prefix", "inputValue", "scriptBlocks", "offset", "blockSize", "MAX_SCRIPT_BLOCK", "scriptBlocks_1", "e_1", "scriptBlocks_1_1", "scriptBlock", "import_sha", "getTrustedInputBIP143", "transport", "indexLookup", "transaction", "additionals", "isDecred", "hash", "shajs", "serializeTransaction", "data", "outputs", "locktime", "compressPublicKey", "publicKey", "prefix", "prefixBuffer", "signTransaction", "transport", "path", "lockTime", "sigHashType", "expiryHeight", "additionals", "isDecred", "pathsBuffer", "bip32asBuffer", "lockTimeBuffer", "buffer", "result", "provideOutputFullChangePath", "transport", "path", "buffer", "bip32asBuffer", "hashOutputFull", "outputScript", "additionals", "offset", "p1", "isDecred", "blockSize", "MAX_SCRIPT_BLOCK", "p1_1", "data", "_a", "import_invariant", "getAppAndVersion", "transport", "__awaiter", "r", "_a", "i", "format", "invariant", "nameLength", "name", "versionLength", "version", "flagLength", "flags", "checkIsBtcLegacy", "import_semver", "shouldUseTrustedInputForSegwit", "_a", "version", "name", "semver", "defaultsSignTransaction", "DEFAULT_LOCKTIME", "SIGHASH_ALL", "_e", "createTransaction", "transport", "arg", "signTx", "__assign", "inputs", "associatedKeysets", "changePath", "outputScriptHex", "lockTime", "sigHashType", "segwit", "initialTimestamp", "additionals", "expiryHeight", "onDeviceStreaming", "onDeviceSignatureGranted", "onDeviceSignatureRequested", "useTrustedInputForSegwit", "getAppAndVersion", "a", "_b", "shouldUseTrustedInputForSegwit", "e_1", "notify", "loop", "i", "length", "index", "total", "progress", "isDecred", "isZcash", "isXST", "startTime", "sapling", "bech32", "useBip143", "lockTimeBuffer", "nullScript", "nullPrevout", "defaultVersion", "trustedInputs", "regularOutputs", "signatures", "publicKeys", "firstRun", "resuming", "targetTransaction", "getTrustedInputCall", "getTrustedInputBIP143", "getTrustedInput", "outputScript", "inputs_1", "__values", "inputs_1_1", "input", "trustedInput", "sequence", "DEFAULT_SEQUENCE", "outputs", "idx", "result_1", "getWalletPublicKey", "r", "compressPublicKey", "startUntrustedHashTransactionInput", "provideOutputFullChangePath", "hashOutputFull", "signTransaction", "script", "OP_DUP", "OP_HASH160", "HASH_SIZE", "hashPublicKey", "OP_EQUALVERIFY", "OP_CHECKSIG", "pseudoTX", "pseudoTrustedInputs", "signature", "signatureSize", "keySize", "offset", "result", "serializeTransaction", "witness", "tmpScriptData", "decredWitness_1", "inputIndex", "BtcOld", "transport", "path", "getWalletPublicKey", "res", "_a", "xpubVersion", "pathElements", "pathStringToArray", "parentPath", "pathArrayToString", "parentDerivation", "_b", "accountDerivation", "fingerprint", "makeFingerprint", "compressPublicKeySECP256", "xpub", "makeXpub", "opts", "__assign", "arg", "createTransaction", "compressedPubKey", "hash160", "asBufferUInt32BE", "n", "buf", "publicKey", "version", "depth", "parentFingerprint", "index", "chainCode", "pubKey", "indexBuffer", "extendedKeyBytes", "checksum", "hash256", "bs58", "sha256", "buffer", "sha", "ripemd160", "RIPEMD160", "MerkleMap", "keys", "values", "i", "Merkle", "k", "hashLeaf", "v", "createVarint", "MerkelizedPsbt", "_super", "__extends", "psbt", "_this", "__spreadArray", "__read", "v", "map", "sortedKeysStrings", "values", "k", "sortedKeys", "merkleMap", "MerkleMap", "PsbtV2", "import_bitcoinjs_lib", "ClientCommandCode", "ClientCommand", "YieldCommand", "_super", "__extends", "results", "progressCallback", "_this", "request", "GetPreimageCommand", "_super", "__extends", "known_preimages", "queue", "_this", "ClientCommandCode", "request", "req", "hash", "i", "req_hash_hex", "known_preimage", "preimage_len_varint", "createVarint", "max_payload_size", "payload_size", "ClientCommand", "GetMerkleLeafProofCommand", "_super", "__extends", "known_trees", "queue", "_this", "ClientCommandCode", "request", "req", "reqBuf", "BufferReader", "hash", "hash_hex", "tree_size", "leaf_index", "mt", "proof", "n_response_elements", "n_leftover_elements", "_a", "__spreadArray", "__read", "ClientCommand", "GetMerkleLeafIndexCommand", "_super", "__extends", "known_trees", "_this", "ClientCommandCode", "request", "req", "root_hash", "i", "root_hash_hex", "leef_hash", "leef_hash_hex", "mt", "leaf_index", "found", "createVarint", "ClientCommand", "GetMoreElementsCommand", "_super", "__extends", "queue", "_this", "ClientCommandCode", "request", "element_len", "el", "max_elements", "n_returned_elements", "returned_elements", "__spreadArray", "ClientCommand", "ClientCommandInterpreter", "progressCallback", "commands", "YieldCommand", "GetPreimageCommand", "GetMerkleLeafIndexCommand", "GetMerkleLeafProofCommand", "GetMoreElementsCommand", "commands_1", "__values", "commands_1_1", "cmd", "preimage", "elements", "elements_1", "elements_1_1", "el", "mt", "Merkle", "hashLeaf", "mm", "request", "cmdCode", "CLA_BTC", "CLA_FRAMEWORK", "BitcoinIns", "FrameworkIns", "AppClient", "transport", "ins", "data", "cci", "response", "_a", "hwRequest", "commandResponse", "display", "pathElements", "pathElementsToBuffer", "walletPolicy", "walletHMAC", "change", "addressIndex", "clientInterpreter", "ClientCommandInterpreter", "k", "addressIndexBuffer", "psbt", "progressCallback", "merkelizedPsbt", "MerkelizedPsbt", "__values", "_b", "map", "_c", "_d", "inputMapsRoot", "Merkle", "m", "hashLeaf", "outputMapsRoot", "createVarint", "_h", "yielded", "ret", "yielded_1", "yielded_1_1", "inputAndSig", "import_logs", "formatTransactionDebug", "transaction", "str", "_a", "i", "prevout", "script", "sequence", "amount", "splitTransaction", "transactionHex", "isSegwitSupported", "hasTimestamp", "hasExtraData", "additionals", "inputs", "outputs", "witness", "offset", "timestamp", "nExpiryHeight", "nVersionGroupId", "extraData", "witnessScript", "locktime", "isDecred", "isZencash", "isZcash", "transaction", "version", "overwinter", "isZcashv5", "varint", "getVarint", "numberInputs", "i", "prevout", "script", "tree", "sequence", "numberOutputs", "amount", "t", "formatTransactionDebug", "defaultArg", "DEFAULT_LOCKTIME", "SIGHASH_ALL", "DEFAULT_VERSION", "signP2SHTransaction", "transport", "arg", "_a", "__assign", "inputs", "associatedKeysets", "outputScriptHex", "lockTime", "sigHashType", "segwit", "transactionVersion", "nullScript", "nullPrevout", "defaultVersion", "trustedInputs", "regularOutputs", "signatures", "firstRun", "resuming", "targetTransaction", "getTrustedInputCall", "getTrustedInputBIP143", "getTrustedInput", "outputScript", "inputs_1", "__values", "inputs_1_1", "input", "trustedInput", "_c", "sequence", "DEFAULT_SEQUENCE", "outputs", "index", "i", "startUntrustedHashTransactionInput", "hashOutputFull", "script", "pseudoTX", "pseudoTrustedInputs", "signTransaction", "signature", "import_bip32_path", "signMessage", "transport", "_a", "path", "messageHex", "paths", "bippath", "message", "offset", "maxChunkSize", "MAX_SCRIPT_BLOCK", "chunkSize", "buffer", "element", "index", "_c", "res", "_b", "v", "r", "s", "Btc", "_a", "transport", "_b", "scrambleKey", "_c", "currency", "BtcNew_default", "AppClient", "BtcOld_default", "arg", "impl", "path", "opts", "options", "messageHex", "signMessage", "signP2SHTransaction", "transactionHex", "isSegwitSupported", "hasTimestamp", "hasExtraData", "additionals", "splitTransaction", "serializeTransactionOutputs", "indexLookup", "transaction", "getTrustedInput", "getTrustedInputBIP143", "getAppAndVersion", "appAndVersion", "checkIsBtcLegacy", "isBtcLegacy", "import_hw_transport", "_TransportSpeculosHTTP", "Transport", "baseURL", "but", "action", "apdu", "hex", "json", "data", "TransportSpeculosHTTP", "__publicField", "transport", "eventSource", "error", "import_hw_transport_webusb", "useTransports", "createUSBTransport", "TransportWebUSB", "createSpeculosTransport", "baseURL", "TransportSpeculosHTTP", "defaultPath", "defaultType", "createUSBTransport", "createSpeculosTransport", "useTransports", "transportCreators", "BitcoinLedgerSigner", "options", "transportCreatorType", "transportCreator", "transport", "Btc_default", "callback", "timeout", "resolve", "reject", "ledgerConnectionError", "btc", "i", "result", "error", "address", "message", "messageHex", "v", "signature", "err", "from", "to", "value", "transactionHex", "tx"] +} diff --git a/common/ethers-helpers/dist/index.js b/common/ethers-helpers/dist/index.js new file mode 100644 index 000000000..4eaa620c0 --- /dev/null +++ b/common/ethers-helpers/dist/index.js @@ -0,0 +1,21 @@ +"use strict";var N2=Object.create;var tf=Object.defineProperty;var J2=Object.getOwnPropertyDescriptor;var D2=Object.getOwnPropertyNames;var I2=Object.getPrototypeOf,U2=Object.prototype.hasOwnProperty;var L=(t,r)=>()=>(r||t((r={exports:{}}).exports,r),r.exports),H2=(t,r)=>{for(var e in r)tf(t,e,{get:r[e],enumerable:!0})},Id=(t,r,e,n)=>{if(r&&typeof r=="object"||typeof r=="function")for(let i of D2(r))!U2.call(t,i)&&i!==e&&tf(t,i,{get:()=>r[i],enumerable:!(n=J2(r,i))||n.enumerable});return t};var q2=(t,r,e)=>(e=t!=null?N2(I2(t)):{},Id(r||!t||!t.__esModule?tf(e,"default",{value:t,enumerable:!0}):e,t)),X2=t=>Id(tf({},"__esModule",{value:!0}),t);var Hd=L((Ud,Fc)=>{(function(t,r){"use strict";function e(v,f){if(!v)throw new Error(f||"Assertion failed")}function n(v,f){v.super_=f;var d=function(){};d.prototype=f.prototype,v.prototype=new d,v.prototype.constructor=v}function i(v,f,d){if(i.isBN(v))return v;this.negative=0,this.words=null,this.length=0,this.red=null,v!==null&&((f==="le"||f==="be")&&(d=f,f=10),this._init(v||0,f||10,d||"be"))}typeof t=="object"?t.exports=i:r.BN=i,i.BN=i,i.wordSize=26;var a;try{typeof window<"u"&&typeof window.Buffer<"u"?a=window.Buffer:a=require("buffer").Buffer}catch{}i.isBN=function(f){return f instanceof i?!0:f!==null&&typeof f=="object"&&f.constructor.wordSize===i.wordSize&&Array.isArray(f.words)},i.max=function(f,d){return f.cmp(d)>0?f:d},i.min=function(f,d){return f.cmp(d)<0?f:d},i.prototype._init=function(f,d,g){if(typeof f=="number")return this._initNumber(f,d,g);if(typeof f=="object")return this._initArray(f,d,g);d==="hex"&&(d=16),e(d===(d|0)&&d>=2&&d<=36),f=f.toString().replace(/\s+/g,"");var y=0;f[0]==="-"&&(y++,this.negative=1),y=0;y-=3)c=f[y]|f[y-1]<<8|f[y-2]<<16,this.words[m]|=c<>>26-x&67108863,x+=24,x>=26&&(x-=26,m++);else if(g==="le")for(y=0,m=0;y>>26-x&67108863,x+=24,x>=26&&(x-=26,m++);return this._strip()};function o(v,f){var d=v.charCodeAt(f);if(d>=48&&d<=57)return d-48;if(d>=65&&d<=70)return d-55;if(d>=97&&d<=102)return d-87;e(!1,"Invalid character in "+v)}function u(v,f,d){var g=o(v,d);return d-1>=f&&(g|=o(v,d-1)<<4),g}i.prototype._parseHex=function(f,d,g){this.length=Math.ceil((f.length-d)/6),this.words=new Array(this.length);for(var y=0;y=d;y-=2)x=u(f,d,y)<=18?(m-=18,c+=1,this.words[c]|=x>>>26):m+=8;else{var M=f.length-d;for(y=M%2===0?d+1:d;y=18?(m-=18,c+=1,this.words[c]|=x>>>26):m+=8}this._strip()};function l(v,f,d,g){for(var y=0,m=0,c=Math.min(v.length,d),x=f;x=49?m=M-49+10:M>=17?m=M-17+10:m=M,e(M>=0&&m1&&this.words[this.length-1]===0;)this.length--;return this._normSign()},i.prototype._normSign=function(){return this.length===1&&this.words[0]===0&&(this.negative=0),this},typeof Symbol<"u"&&typeof Symbol.for=="function")try{i.prototype[Symbol.for("nodejs.util.inspect.custom")]=p}catch{i.prototype.inspect=p}else i.prototype.inspect=p;function p(){return(this.red?""}var _=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],E=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],C=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];i.prototype.toString=function(f,d){f=f||10,d=d|0||1;var g;if(f===16||f==="hex"){g="";for(var y=0,m=0,c=0;c>>24-y&16777215,y+=2,y>=26&&(y-=26,c--),m!==0||c!==this.length-1?g=_[6-M.length]+M+g:g=M+g}for(m!==0&&(g=m.toString(16)+g);g.length%d!==0;)g="0"+g;return this.negative!==0&&(g="-"+g),g}if(f===(f|0)&&f>=2&&f<=36){var h=E[f],S=C[f];g="";var N=this.clone();for(N.negative=0;!N.isZero();){var w=N.modrn(S).toString(f);N=N.idivn(S),N.isZero()?g=w+g:g=_[h-w.length]+w+g}for(this.isZero()&&(g="0"+g);g.length%d!==0;)g="0"+g;return this.negative!==0&&(g="-"+g),g}e(!1,"Base should be between 2 and 36")},i.prototype.toNumber=function(){var f=this.words[0];return this.length===2?f+=this.words[1]*67108864:this.length===3&&this.words[2]===1?f+=4503599627370496+this.words[1]*67108864:this.length>2&&e(!1,"Number can only safely store up to 53 bits"),this.negative!==0?-f:f},i.prototype.toJSON=function(){return this.toString(16,2)},a&&(i.prototype.toBuffer=function(f,d){return this.toArrayLike(a,f,d)}),i.prototype.toArray=function(f,d){return this.toArrayLike(Array,f,d)};var P=function(f,d){return f.allocUnsafe?f.allocUnsafe(d):new f(d)};i.prototype.toArrayLike=function(f,d,g){this._strip();var y=this.byteLength(),m=g||Math.max(1,y);e(y<=m,"byte array longer than desired length"),e(m>0,"Requested array length <= 0");var c=P(f,m),x=d==="le"?"LE":"BE";return this["_toArrayLike"+x](c,y),c},i.prototype._toArrayLikeLE=function(f,d){for(var g=0,y=0,m=0,c=0;m>8&255),g>16&255),c===6?(g>24&255),y=0,c=0):(y=x>>>24,c+=2)}if(g=0&&(f[g--]=x>>8&255),g>=0&&(f[g--]=x>>16&255),c===6?(g>=0&&(f[g--]=x>>24&255),y=0,c=0):(y=x>>>24,c+=2)}if(g>=0)for(f[g--]=y;g>=0;)f[g--]=0},Math.clz32?i.prototype._countBits=function(f){return 32-Math.clz32(f)}:i.prototype._countBits=function(f){var d=f,g=0;return d>=4096&&(g+=13,d>>>=13),d>=64&&(g+=7,d>>>=7),d>=8&&(g+=4,d>>>=4),d>=2&&(g+=2,d>>>=2),g+d},i.prototype._zeroBits=function(f){if(f===0)return 26;var d=f,g=0;return(d&8191)===0&&(g+=13,d>>>=13),(d&127)===0&&(g+=7,d>>>=7),(d&15)===0&&(g+=4,d>>>=4),(d&3)===0&&(g+=2,d>>>=2),(d&1)===0&&g++,g},i.prototype.bitLength=function(){var f=this.words[this.length-1],d=this._countBits(f);return(this.length-1)*26+d};function B(v){for(var f=new Array(v.bitLength()),d=0;d>>y&1}return f}i.prototype.zeroBits=function(){if(this.isZero())return 0;for(var f=0,d=0;df.length?this.clone().ior(f):f.clone().ior(this)},i.prototype.uor=function(f){return this.length>f.length?this.clone().iuor(f):f.clone().iuor(this)},i.prototype.iuand=function(f){var d;this.length>f.length?d=f:d=this;for(var g=0;gf.length?this.clone().iand(f):f.clone().iand(this)},i.prototype.uand=function(f){return this.length>f.length?this.clone().iuand(f):f.clone().iuand(this)},i.prototype.iuxor=function(f){var d,g;this.length>f.length?(d=this,g=f):(d=f,g=this);for(var y=0;yf.length?this.clone().ixor(f):f.clone().ixor(this)},i.prototype.uxor=function(f){return this.length>f.length?this.clone().iuxor(f):f.clone().iuxor(this)},i.prototype.inotn=function(f){e(typeof f=="number"&&f>=0);var d=Math.ceil(f/26)|0,g=f%26;this._expand(d),g>0&&d--;for(var y=0;y0&&(this.words[y]=~this.words[y]&67108863>>26-g),this._strip()},i.prototype.notn=function(f){return this.clone().inotn(f)},i.prototype.setn=function(f,d){e(typeof f=="number"&&f>=0);var g=f/26|0,y=f%26;return this._expand(g+1),d?this.words[g]=this.words[g]|1<f.length?(g=this,y=f):(g=f,y=this);for(var m=0,c=0;c>>26;for(;m!==0&&c>>26;if(this.length=g.length,m!==0)this.words[this.length]=m,this.length++;else if(g!==this)for(;cf.length?this.clone().iadd(f):f.clone().iadd(this)},i.prototype.isub=function(f){if(f.negative!==0){f.negative=0;var d=this.iadd(f);return f.negative=1,d._normSign()}else if(this.negative!==0)return this.negative=0,this.iadd(f),this.negative=1,this._normSign();var g=this.cmp(f);if(g===0)return this.negative=0,this.length=1,this.words[0]=0,this;var y,m;g>0?(y=this,m=f):(y=f,m=this);for(var c=0,x=0;x>26,this.words[x]=d&67108863;for(;c!==0&&x>26,this.words[x]=d&67108863;if(c===0&&x>>26,N=M&67108863,w=Math.min(h,f.length-1),O=Math.max(0,h-v.length+1);O<=w;O++){var k=h-O|0;y=v.words[k]|0,m=f.words[O]|0,c=y*m+N,S+=c/67108864|0,N=c&67108863}d.words[h]=N|0,M=S|0}return M!==0?d.words[h]=M|0:d.length--,d._strip()}var R=function(f,d,g){var y=f.words,m=d.words,c=g.words,x=0,M,h,S,N=y[0]|0,w=N&8191,O=N>>>13,k=y[1]|0,D=k&8191,U=k>>>13,Q=y[2]|0,z=Q&8191,G=Q>>>13,er=y[3]|0,Z=er&8191,Y=er>>>13,Ht=y[4]|0,ne=Ht&8191,ie=Ht>>>13,qt=y[5]|0,ae=qt&8191,oe=qt>>>13,Xt=y[6]|0,se=Xt&8191,fe=Xt>>>13,Gt=y[7]|0,ue=Gt&8191,ce=Gt>>>13,jt=y[8]|0,le=jt&8191,de=jt>>>13,zt=y[9]|0,he=zt&8191,be=zt>>>13,Vt=m[0]|0,pe=Vt&8191,ve=Vt>>>13,Zt=m[1]|0,ge=Zt&8191,me=Zt>>>13,Kt=m[2]|0,xe=Kt&8191,ye=Kt>>>13,Qt=m[3]|0,Ae=Qt&8191,we=Qt>>>13,Wt=m[4]|0,_e=Wt&8191,Se=Wt>>>13,Yt=m[5]|0,Me=Yt&8191,Pe=Yt>>>13,$t=m[6]|0,Ee=$t&8191,Te=$t>>>13,en=m[7]|0,Ce=en&8191,Be=en>>>13,rn=m[8]|0,Oe=rn&8191,Fe=rn>>>13,Bt=m[9]|0,Ke=Bt&8191,Qe=Bt>>>13;g.negative=f.negative^d.negative,g.length=19,M=Math.imul(w,pe),h=Math.imul(w,ve),h=h+Math.imul(O,pe)|0,S=Math.imul(O,ve);var ot=(x+M|0)+((h&8191)<<13)|0;x=(S+(h>>>13)|0)+(ot>>>26)|0,ot&=67108863,M=Math.imul(D,pe),h=Math.imul(D,ve),h=h+Math.imul(U,pe)|0,S=Math.imul(U,ve),M=M+Math.imul(w,ge)|0,h=h+Math.imul(w,me)|0,h=h+Math.imul(O,ge)|0,S=S+Math.imul(O,me)|0;var st=(x+M|0)+((h&8191)<<13)|0;x=(S+(h>>>13)|0)+(st>>>26)|0,st&=67108863,M=Math.imul(z,pe),h=Math.imul(z,ve),h=h+Math.imul(G,pe)|0,S=Math.imul(G,ve),M=M+Math.imul(D,ge)|0,h=h+Math.imul(D,me)|0,h=h+Math.imul(U,ge)|0,S=S+Math.imul(U,me)|0,M=M+Math.imul(w,xe)|0,h=h+Math.imul(w,ye)|0,h=h+Math.imul(O,xe)|0,S=S+Math.imul(O,ye)|0;var ft=(x+M|0)+((h&8191)<<13)|0;x=(S+(h>>>13)|0)+(ft>>>26)|0,ft&=67108863,M=Math.imul(Z,pe),h=Math.imul(Z,ve),h=h+Math.imul(Y,pe)|0,S=Math.imul(Y,ve),M=M+Math.imul(z,ge)|0,h=h+Math.imul(z,me)|0,h=h+Math.imul(G,ge)|0,S=S+Math.imul(G,me)|0,M=M+Math.imul(D,xe)|0,h=h+Math.imul(D,ye)|0,h=h+Math.imul(U,xe)|0,S=S+Math.imul(U,ye)|0,M=M+Math.imul(w,Ae)|0,h=h+Math.imul(w,we)|0,h=h+Math.imul(O,Ae)|0,S=S+Math.imul(O,we)|0;var ut=(x+M|0)+((h&8191)<<13)|0;x=(S+(h>>>13)|0)+(ut>>>26)|0,ut&=67108863,M=Math.imul(ne,pe),h=Math.imul(ne,ve),h=h+Math.imul(ie,pe)|0,S=Math.imul(ie,ve),M=M+Math.imul(Z,ge)|0,h=h+Math.imul(Z,me)|0,h=h+Math.imul(Y,ge)|0,S=S+Math.imul(Y,me)|0,M=M+Math.imul(z,xe)|0,h=h+Math.imul(z,ye)|0,h=h+Math.imul(G,xe)|0,S=S+Math.imul(G,ye)|0,M=M+Math.imul(D,Ae)|0,h=h+Math.imul(D,we)|0,h=h+Math.imul(U,Ae)|0,S=S+Math.imul(U,we)|0,M=M+Math.imul(w,_e)|0,h=h+Math.imul(w,Se)|0,h=h+Math.imul(O,_e)|0,S=S+Math.imul(O,Se)|0;var ct=(x+M|0)+((h&8191)<<13)|0;x=(S+(h>>>13)|0)+(ct>>>26)|0,ct&=67108863,M=Math.imul(ae,pe),h=Math.imul(ae,ve),h=h+Math.imul(oe,pe)|0,S=Math.imul(oe,ve),M=M+Math.imul(ne,ge)|0,h=h+Math.imul(ne,me)|0,h=h+Math.imul(ie,ge)|0,S=S+Math.imul(ie,me)|0,M=M+Math.imul(Z,xe)|0,h=h+Math.imul(Z,ye)|0,h=h+Math.imul(Y,xe)|0,S=S+Math.imul(Y,ye)|0,M=M+Math.imul(z,Ae)|0,h=h+Math.imul(z,we)|0,h=h+Math.imul(G,Ae)|0,S=S+Math.imul(G,we)|0,M=M+Math.imul(D,_e)|0,h=h+Math.imul(D,Se)|0,h=h+Math.imul(U,_e)|0,S=S+Math.imul(U,Se)|0,M=M+Math.imul(w,Me)|0,h=h+Math.imul(w,Pe)|0,h=h+Math.imul(O,Me)|0,S=S+Math.imul(O,Pe)|0;var Ii=(x+M|0)+((h&8191)<<13)|0;x=(S+(h>>>13)|0)+(Ii>>>26)|0,Ii&=67108863,M=Math.imul(se,pe),h=Math.imul(se,ve),h=h+Math.imul(fe,pe)|0,S=Math.imul(fe,ve),M=M+Math.imul(ae,ge)|0,h=h+Math.imul(ae,me)|0,h=h+Math.imul(oe,ge)|0,S=S+Math.imul(oe,me)|0,M=M+Math.imul(ne,xe)|0,h=h+Math.imul(ne,ye)|0,h=h+Math.imul(ie,xe)|0,S=S+Math.imul(ie,ye)|0,M=M+Math.imul(Z,Ae)|0,h=h+Math.imul(Z,we)|0,h=h+Math.imul(Y,Ae)|0,S=S+Math.imul(Y,we)|0,M=M+Math.imul(z,_e)|0,h=h+Math.imul(z,Se)|0,h=h+Math.imul(G,_e)|0,S=S+Math.imul(G,Se)|0,M=M+Math.imul(D,Me)|0,h=h+Math.imul(D,Pe)|0,h=h+Math.imul(U,Me)|0,S=S+Math.imul(U,Pe)|0,M=M+Math.imul(w,Ee)|0,h=h+Math.imul(w,Te)|0,h=h+Math.imul(O,Ee)|0,S=S+Math.imul(O,Te)|0;var Ui=(x+M|0)+((h&8191)<<13)|0;x=(S+(h>>>13)|0)+(Ui>>>26)|0,Ui&=67108863,M=Math.imul(ue,pe),h=Math.imul(ue,ve),h=h+Math.imul(ce,pe)|0,S=Math.imul(ce,ve),M=M+Math.imul(se,ge)|0,h=h+Math.imul(se,me)|0,h=h+Math.imul(fe,ge)|0,S=S+Math.imul(fe,me)|0,M=M+Math.imul(ae,xe)|0,h=h+Math.imul(ae,ye)|0,h=h+Math.imul(oe,xe)|0,S=S+Math.imul(oe,ye)|0,M=M+Math.imul(ne,Ae)|0,h=h+Math.imul(ne,we)|0,h=h+Math.imul(ie,Ae)|0,S=S+Math.imul(ie,we)|0,M=M+Math.imul(Z,_e)|0,h=h+Math.imul(Z,Se)|0,h=h+Math.imul(Y,_e)|0,S=S+Math.imul(Y,Se)|0,M=M+Math.imul(z,Me)|0,h=h+Math.imul(z,Pe)|0,h=h+Math.imul(G,Me)|0,S=S+Math.imul(G,Pe)|0,M=M+Math.imul(D,Ee)|0,h=h+Math.imul(D,Te)|0,h=h+Math.imul(U,Ee)|0,S=S+Math.imul(U,Te)|0,M=M+Math.imul(w,Ce)|0,h=h+Math.imul(w,Be)|0,h=h+Math.imul(O,Ce)|0,S=S+Math.imul(O,Be)|0;var Hi=(x+M|0)+((h&8191)<<13)|0;x=(S+(h>>>13)|0)+(Hi>>>26)|0,Hi&=67108863,M=Math.imul(le,pe),h=Math.imul(le,ve),h=h+Math.imul(de,pe)|0,S=Math.imul(de,ve),M=M+Math.imul(ue,ge)|0,h=h+Math.imul(ue,me)|0,h=h+Math.imul(ce,ge)|0,S=S+Math.imul(ce,me)|0,M=M+Math.imul(se,xe)|0,h=h+Math.imul(se,ye)|0,h=h+Math.imul(fe,xe)|0,S=S+Math.imul(fe,ye)|0,M=M+Math.imul(ae,Ae)|0,h=h+Math.imul(ae,we)|0,h=h+Math.imul(oe,Ae)|0,S=S+Math.imul(oe,we)|0,M=M+Math.imul(ne,_e)|0,h=h+Math.imul(ne,Se)|0,h=h+Math.imul(ie,_e)|0,S=S+Math.imul(ie,Se)|0,M=M+Math.imul(Z,Me)|0,h=h+Math.imul(Z,Pe)|0,h=h+Math.imul(Y,Me)|0,S=S+Math.imul(Y,Pe)|0,M=M+Math.imul(z,Ee)|0,h=h+Math.imul(z,Te)|0,h=h+Math.imul(G,Ee)|0,S=S+Math.imul(G,Te)|0,M=M+Math.imul(D,Ce)|0,h=h+Math.imul(D,Be)|0,h=h+Math.imul(U,Ce)|0,S=S+Math.imul(U,Be)|0,M=M+Math.imul(w,Oe)|0,h=h+Math.imul(w,Fe)|0,h=h+Math.imul(O,Oe)|0,S=S+Math.imul(O,Fe)|0;var qi=(x+M|0)+((h&8191)<<13)|0;x=(S+(h>>>13)|0)+(qi>>>26)|0,qi&=67108863,M=Math.imul(he,pe),h=Math.imul(he,ve),h=h+Math.imul(be,pe)|0,S=Math.imul(be,ve),M=M+Math.imul(le,ge)|0,h=h+Math.imul(le,me)|0,h=h+Math.imul(de,ge)|0,S=S+Math.imul(de,me)|0,M=M+Math.imul(ue,xe)|0,h=h+Math.imul(ue,ye)|0,h=h+Math.imul(ce,xe)|0,S=S+Math.imul(ce,ye)|0,M=M+Math.imul(se,Ae)|0,h=h+Math.imul(se,we)|0,h=h+Math.imul(fe,Ae)|0,S=S+Math.imul(fe,we)|0,M=M+Math.imul(ae,_e)|0,h=h+Math.imul(ae,Se)|0,h=h+Math.imul(oe,_e)|0,S=S+Math.imul(oe,Se)|0,M=M+Math.imul(ne,Me)|0,h=h+Math.imul(ne,Pe)|0,h=h+Math.imul(ie,Me)|0,S=S+Math.imul(ie,Pe)|0,M=M+Math.imul(Z,Ee)|0,h=h+Math.imul(Z,Te)|0,h=h+Math.imul(Y,Ee)|0,S=S+Math.imul(Y,Te)|0,M=M+Math.imul(z,Ce)|0,h=h+Math.imul(z,Be)|0,h=h+Math.imul(G,Ce)|0,S=S+Math.imul(G,Be)|0,M=M+Math.imul(D,Oe)|0,h=h+Math.imul(D,Fe)|0,h=h+Math.imul(U,Oe)|0,S=S+Math.imul(U,Fe)|0,M=M+Math.imul(w,Ke)|0,h=h+Math.imul(w,Qe)|0,h=h+Math.imul(O,Ke)|0,S=S+Math.imul(O,Qe)|0;var Xi=(x+M|0)+((h&8191)<<13)|0;x=(S+(h>>>13)|0)+(Xi>>>26)|0,Xi&=67108863,M=Math.imul(he,ge),h=Math.imul(he,me),h=h+Math.imul(be,ge)|0,S=Math.imul(be,me),M=M+Math.imul(le,xe)|0,h=h+Math.imul(le,ye)|0,h=h+Math.imul(de,xe)|0,S=S+Math.imul(de,ye)|0,M=M+Math.imul(ue,Ae)|0,h=h+Math.imul(ue,we)|0,h=h+Math.imul(ce,Ae)|0,S=S+Math.imul(ce,we)|0,M=M+Math.imul(se,_e)|0,h=h+Math.imul(se,Se)|0,h=h+Math.imul(fe,_e)|0,S=S+Math.imul(fe,Se)|0,M=M+Math.imul(ae,Me)|0,h=h+Math.imul(ae,Pe)|0,h=h+Math.imul(oe,Me)|0,S=S+Math.imul(oe,Pe)|0,M=M+Math.imul(ne,Ee)|0,h=h+Math.imul(ne,Te)|0,h=h+Math.imul(ie,Ee)|0,S=S+Math.imul(ie,Te)|0,M=M+Math.imul(Z,Ce)|0,h=h+Math.imul(Z,Be)|0,h=h+Math.imul(Y,Ce)|0,S=S+Math.imul(Y,Be)|0,M=M+Math.imul(z,Oe)|0,h=h+Math.imul(z,Fe)|0,h=h+Math.imul(G,Oe)|0,S=S+Math.imul(G,Fe)|0,M=M+Math.imul(D,Ke)|0,h=h+Math.imul(D,Qe)|0,h=h+Math.imul(U,Ke)|0,S=S+Math.imul(U,Qe)|0;var Gi=(x+M|0)+((h&8191)<<13)|0;x=(S+(h>>>13)|0)+(Gi>>>26)|0,Gi&=67108863,M=Math.imul(he,xe),h=Math.imul(he,ye),h=h+Math.imul(be,xe)|0,S=Math.imul(be,ye),M=M+Math.imul(le,Ae)|0,h=h+Math.imul(le,we)|0,h=h+Math.imul(de,Ae)|0,S=S+Math.imul(de,we)|0,M=M+Math.imul(ue,_e)|0,h=h+Math.imul(ue,Se)|0,h=h+Math.imul(ce,_e)|0,S=S+Math.imul(ce,Se)|0,M=M+Math.imul(se,Me)|0,h=h+Math.imul(se,Pe)|0,h=h+Math.imul(fe,Me)|0,S=S+Math.imul(fe,Pe)|0,M=M+Math.imul(ae,Ee)|0,h=h+Math.imul(ae,Te)|0,h=h+Math.imul(oe,Ee)|0,S=S+Math.imul(oe,Te)|0,M=M+Math.imul(ne,Ce)|0,h=h+Math.imul(ne,Be)|0,h=h+Math.imul(ie,Ce)|0,S=S+Math.imul(ie,Be)|0,M=M+Math.imul(Z,Oe)|0,h=h+Math.imul(Z,Fe)|0,h=h+Math.imul(Y,Oe)|0,S=S+Math.imul(Y,Fe)|0,M=M+Math.imul(z,Ke)|0,h=h+Math.imul(z,Qe)|0,h=h+Math.imul(G,Ke)|0,S=S+Math.imul(G,Qe)|0;var ji=(x+M|0)+((h&8191)<<13)|0;x=(S+(h>>>13)|0)+(ji>>>26)|0,ji&=67108863,M=Math.imul(he,Ae),h=Math.imul(he,we),h=h+Math.imul(be,Ae)|0,S=Math.imul(be,we),M=M+Math.imul(le,_e)|0,h=h+Math.imul(le,Se)|0,h=h+Math.imul(de,_e)|0,S=S+Math.imul(de,Se)|0,M=M+Math.imul(ue,Me)|0,h=h+Math.imul(ue,Pe)|0,h=h+Math.imul(ce,Me)|0,S=S+Math.imul(ce,Pe)|0,M=M+Math.imul(se,Ee)|0,h=h+Math.imul(se,Te)|0,h=h+Math.imul(fe,Ee)|0,S=S+Math.imul(fe,Te)|0,M=M+Math.imul(ae,Ce)|0,h=h+Math.imul(ae,Be)|0,h=h+Math.imul(oe,Ce)|0,S=S+Math.imul(oe,Be)|0,M=M+Math.imul(ne,Oe)|0,h=h+Math.imul(ne,Fe)|0,h=h+Math.imul(ie,Oe)|0,S=S+Math.imul(ie,Fe)|0,M=M+Math.imul(Z,Ke)|0,h=h+Math.imul(Z,Qe)|0,h=h+Math.imul(Y,Ke)|0,S=S+Math.imul(Y,Qe)|0;var zi=(x+M|0)+((h&8191)<<13)|0;x=(S+(h>>>13)|0)+(zi>>>26)|0,zi&=67108863,M=Math.imul(he,_e),h=Math.imul(he,Se),h=h+Math.imul(be,_e)|0,S=Math.imul(be,Se),M=M+Math.imul(le,Me)|0,h=h+Math.imul(le,Pe)|0,h=h+Math.imul(de,Me)|0,S=S+Math.imul(de,Pe)|0,M=M+Math.imul(ue,Ee)|0,h=h+Math.imul(ue,Te)|0,h=h+Math.imul(ce,Ee)|0,S=S+Math.imul(ce,Te)|0,M=M+Math.imul(se,Ce)|0,h=h+Math.imul(se,Be)|0,h=h+Math.imul(fe,Ce)|0,S=S+Math.imul(fe,Be)|0,M=M+Math.imul(ae,Oe)|0,h=h+Math.imul(ae,Fe)|0,h=h+Math.imul(oe,Oe)|0,S=S+Math.imul(oe,Fe)|0,M=M+Math.imul(ne,Ke)|0,h=h+Math.imul(ne,Qe)|0,h=h+Math.imul(ie,Ke)|0,S=S+Math.imul(ie,Qe)|0;var Vi=(x+M|0)+((h&8191)<<13)|0;x=(S+(h>>>13)|0)+(Vi>>>26)|0,Vi&=67108863,M=Math.imul(he,Me),h=Math.imul(he,Pe),h=h+Math.imul(be,Me)|0,S=Math.imul(be,Pe),M=M+Math.imul(le,Ee)|0,h=h+Math.imul(le,Te)|0,h=h+Math.imul(de,Ee)|0,S=S+Math.imul(de,Te)|0,M=M+Math.imul(ue,Ce)|0,h=h+Math.imul(ue,Be)|0,h=h+Math.imul(ce,Ce)|0,S=S+Math.imul(ce,Be)|0,M=M+Math.imul(se,Oe)|0,h=h+Math.imul(se,Fe)|0,h=h+Math.imul(fe,Oe)|0,S=S+Math.imul(fe,Fe)|0,M=M+Math.imul(ae,Ke)|0,h=h+Math.imul(ae,Qe)|0,h=h+Math.imul(oe,Ke)|0,S=S+Math.imul(oe,Qe)|0;var Zi=(x+M|0)+((h&8191)<<13)|0;x=(S+(h>>>13)|0)+(Zi>>>26)|0,Zi&=67108863,M=Math.imul(he,Ee),h=Math.imul(he,Te),h=h+Math.imul(be,Ee)|0,S=Math.imul(be,Te),M=M+Math.imul(le,Ce)|0,h=h+Math.imul(le,Be)|0,h=h+Math.imul(de,Ce)|0,S=S+Math.imul(de,Be)|0,M=M+Math.imul(ue,Oe)|0,h=h+Math.imul(ue,Fe)|0,h=h+Math.imul(ce,Oe)|0,S=S+Math.imul(ce,Fe)|0,M=M+Math.imul(se,Ke)|0,h=h+Math.imul(se,Qe)|0,h=h+Math.imul(fe,Ke)|0,S=S+Math.imul(fe,Qe)|0;var Ki=(x+M|0)+((h&8191)<<13)|0;x=(S+(h>>>13)|0)+(Ki>>>26)|0,Ki&=67108863,M=Math.imul(he,Ce),h=Math.imul(he,Be),h=h+Math.imul(be,Ce)|0,S=Math.imul(be,Be),M=M+Math.imul(le,Oe)|0,h=h+Math.imul(le,Fe)|0,h=h+Math.imul(de,Oe)|0,S=S+Math.imul(de,Fe)|0,M=M+Math.imul(ue,Ke)|0,h=h+Math.imul(ue,Qe)|0,h=h+Math.imul(ce,Ke)|0,S=S+Math.imul(ce,Qe)|0;var Cc=(x+M|0)+((h&8191)<<13)|0;x=(S+(h>>>13)|0)+(Cc>>>26)|0,Cc&=67108863,M=Math.imul(he,Oe),h=Math.imul(he,Fe),h=h+Math.imul(be,Oe)|0,S=Math.imul(be,Fe),M=M+Math.imul(le,Ke)|0,h=h+Math.imul(le,Qe)|0,h=h+Math.imul(de,Ke)|0,S=S+Math.imul(de,Qe)|0;var Bc=(x+M|0)+((h&8191)<<13)|0;x=(S+(h>>>13)|0)+(Bc>>>26)|0,Bc&=67108863,M=Math.imul(he,Ke),h=Math.imul(he,Qe),h=h+Math.imul(be,Ke)|0,S=Math.imul(be,Qe);var Oc=(x+M|0)+((h&8191)<<13)|0;return x=(S+(h>>>13)|0)+(Oc>>>26)|0,Oc&=67108863,c[0]=ot,c[1]=st,c[2]=ft,c[3]=ut,c[4]=ct,c[5]=Ii,c[6]=Ui,c[7]=Hi,c[8]=qi,c[9]=Xi,c[10]=Gi,c[11]=ji,c[12]=zi,c[13]=Vi,c[14]=Zi,c[15]=Ki,c[16]=Cc,c[17]=Bc,c[18]=Oc,x!==0&&(c[19]=x,g.length++),g};Math.imul||(R=J);function q(v,f,d){d.negative=f.negative^v.negative,d.length=v.length+f.length;for(var g=0,y=0,m=0;m>>26)|0,y+=c>>>26,c&=67108863}d.words[m]=x,g=c,c=y}return g!==0?d.words[m]=g:d.length--,d._strip()}function I(v,f,d){return q(v,f,d)}i.prototype.mulTo=function(f,d){var g,y=this.length+f.length;return this.length===10&&f.length===10?g=R(this,f,d):y<63?g=J(this,f,d):y<1024?g=q(this,f,d):g=I(this,f,d),g};function j(v,f){this.x=v,this.y=f}j.prototype.makeRBT=function(f){for(var d=new Array(f),g=i.prototype._countBits(f)-1,y=0;y>=1;return y},j.prototype.permute=function(f,d,g,y,m,c){for(var x=0;x>>1)m++;return 1<>>13,g[2*c+1]=m&8191,m=m>>>13;for(c=2*d;c>=26,g+=m/67108864|0,g+=c>>>26,this.words[y]=c&67108863}return g!==0&&(this.words[y]=g,this.length++),d?this.ineg():this},i.prototype.muln=function(f){return this.clone().imuln(f)},i.prototype.sqr=function(){return this.mul(this)},i.prototype.isqr=function(){return this.imul(this.clone())},i.prototype.pow=function(f){var d=B(f);if(d.length===0)return new i(1);for(var g=this,y=0;y=0);var d=f%26,g=(f-d)/26,y=67108863>>>26-d<<26-d,m;if(d!==0){var c=0;for(m=0;m>>26-d}c&&(this.words[m]=c,this.length++)}if(g!==0){for(m=this.length-1;m>=0;m--)this.words[m+g]=this.words[m];for(m=0;m=0);var y;d?y=(d-d%26)/26:y=0;var m=f%26,c=Math.min((f-m)/26,this.length),x=67108863^67108863>>>m<c)for(this.length-=c,h=0;h=0&&(S!==0||h>=y);h--){var N=this.words[h]|0;this.words[h]=S<<26-m|N>>>m,S=N&x}return M&&S!==0&&(M.words[M.length++]=S),this.length===0&&(this.words[0]=0,this.length=1),this._strip()},i.prototype.ishrn=function(f,d,g){return e(this.negative===0),this.iushrn(f,d,g)},i.prototype.shln=function(f){return this.clone().ishln(f)},i.prototype.ushln=function(f){return this.clone().iushln(f)},i.prototype.shrn=function(f){return this.clone().ishrn(f)},i.prototype.ushrn=function(f){return this.clone().iushrn(f)},i.prototype.testn=function(f){e(typeof f=="number"&&f>=0);var d=f%26,g=(f-d)/26,y=1<=0);var d=f%26,g=(f-d)/26;if(e(this.negative===0,"imaskn works only with positive numbers"),this.length<=g)return this;if(d!==0&&g++,this.length=Math.min(g,this.length),d!==0){var y=67108863^67108863>>>d<=67108864;d++)this.words[d]-=67108864,d===this.length-1?this.words[d+1]=1:this.words[d+1]++;return this.length=Math.max(this.length,d+1),this},i.prototype.isubn=function(f){if(e(typeof f=="number"),e(f<67108864),f<0)return this.iaddn(-f);if(this.negative!==0)return this.negative=0,this.iaddn(f),this.negative=1,this;if(this.words[0]-=f,this.length===1&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var d=0;d>26)-(M/67108864|0),this.words[m+g]=c&67108863}for(;m>26,this.words[m+g]=c&67108863;if(x===0)return this._strip();for(e(x===-1),x=0,m=0;m>26,this.words[m]=c&67108863;return this.negative=1,this._strip()},i.prototype._wordDiv=function(f,d){var g=this.length-f.length,y=this.clone(),m=f,c=m.words[m.length-1]|0,x=this._countBits(c);g=26-x,g!==0&&(m=m.ushln(g),y.iushln(g),c=m.words[m.length-1]|0);var M=y.length-m.length,h;if(d!=="mod"){h=new i(null),h.length=M+1,h.words=new Array(h.length);for(var S=0;S=0;w--){var O=(y.words[m.length+w]|0)*67108864+(y.words[m.length+w-1]|0);for(O=Math.min(O/c|0,67108863),y._ishlnsubmul(m,O,w);y.negative!==0;)O--,y.negative=0,y._ishlnsubmul(m,1,w),y.isZero()||(y.negative^=1);h&&(h.words[w]=O)}return h&&h._strip(),y._strip(),d!=="div"&&g!==0&&y.iushrn(g),{div:h||null,mod:y}},i.prototype.divmod=function(f,d,g){if(e(!f.isZero()),this.isZero())return{div:new i(0),mod:new i(0)};var y,m,c;return this.negative!==0&&f.negative===0?(c=this.neg().divmod(f,d),d!=="mod"&&(y=c.div.neg()),d!=="div"&&(m=c.mod.neg(),g&&m.negative!==0&&m.iadd(f)),{div:y,mod:m}):this.negative===0&&f.negative!==0?(c=this.divmod(f.neg(),d),d!=="mod"&&(y=c.div.neg()),{div:y,mod:c.mod}):(this.negative&f.negative)!==0?(c=this.neg().divmod(f.neg(),d),d!=="div"&&(m=c.mod.neg(),g&&m.negative!==0&&m.isub(f)),{div:c.div,mod:m}):f.length>this.length||this.cmp(f)<0?{div:new i(0),mod:this}:f.length===1?d==="div"?{div:this.divn(f.words[0]),mod:null}:d==="mod"?{div:null,mod:new i(this.modrn(f.words[0]))}:{div:this.divn(f.words[0]),mod:new i(this.modrn(f.words[0]))}:this._wordDiv(f,d)},i.prototype.div=function(f){return this.divmod(f,"div",!1).div},i.prototype.mod=function(f){return this.divmod(f,"mod",!1).mod},i.prototype.umod=function(f){return this.divmod(f,"mod",!0).mod},i.prototype.divRound=function(f){var d=this.divmod(f);if(d.mod.isZero())return d.div;var g=d.div.negative!==0?d.mod.isub(f):d.mod,y=f.ushrn(1),m=f.andln(1),c=g.cmp(y);return c<0||m===1&&c===0?d.div:d.div.negative!==0?d.div.isubn(1):d.div.iaddn(1)},i.prototype.modrn=function(f){var d=f<0;d&&(f=-f),e(f<=67108863);for(var g=(1<<26)%f,y=0,m=this.length-1;m>=0;m--)y=(g*y+(this.words[m]|0))%f;return d?-y:y},i.prototype.modn=function(f){return this.modrn(f)},i.prototype.idivn=function(f){var d=f<0;d&&(f=-f),e(f<=67108863);for(var g=0,y=this.length-1;y>=0;y--){var m=(this.words[y]|0)+g*67108864;this.words[y]=m/f|0,g=m%f}return this._strip(),d?this.ineg():this},i.prototype.divn=function(f){return this.clone().idivn(f)},i.prototype.egcd=function(f){e(f.negative===0),e(!f.isZero());var d=this,g=f.clone();d.negative!==0?d=d.umod(f):d=d.clone();for(var y=new i(1),m=new i(0),c=new i(0),x=new i(1),M=0;d.isEven()&&g.isEven();)d.iushrn(1),g.iushrn(1),++M;for(var h=g.clone(),S=d.clone();!d.isZero();){for(var N=0,w=1;(d.words[0]&w)===0&&N<26;++N,w<<=1);if(N>0)for(d.iushrn(N);N-- >0;)(y.isOdd()||m.isOdd())&&(y.iadd(h),m.isub(S)),y.iushrn(1),m.iushrn(1);for(var O=0,k=1;(g.words[0]&k)===0&&O<26;++O,k<<=1);if(O>0)for(g.iushrn(O);O-- >0;)(c.isOdd()||x.isOdd())&&(c.iadd(h),x.isub(S)),c.iushrn(1),x.iushrn(1);d.cmp(g)>=0?(d.isub(g),y.isub(c),m.isub(x)):(g.isub(d),c.isub(y),x.isub(m))}return{a:c,b:x,gcd:g.iushln(M)}},i.prototype._invmp=function(f){e(f.negative===0),e(!f.isZero());var d=this,g=f.clone();d.negative!==0?d=d.umod(f):d=d.clone();for(var y=new i(1),m=new i(0),c=g.clone();d.cmpn(1)>0&&g.cmpn(1)>0;){for(var x=0,M=1;(d.words[0]&M)===0&&x<26;++x,M<<=1);if(x>0)for(d.iushrn(x);x-- >0;)y.isOdd()&&y.iadd(c),y.iushrn(1);for(var h=0,S=1;(g.words[0]&S)===0&&h<26;++h,S<<=1);if(h>0)for(g.iushrn(h);h-- >0;)m.isOdd()&&m.iadd(c),m.iushrn(1);d.cmp(g)>=0?(d.isub(g),y.isub(m)):(g.isub(d),m.isub(y))}var N;return d.cmpn(1)===0?N=y:N=m,N.cmpn(0)<0&&N.iadd(f),N},i.prototype.gcd=function(f){if(this.isZero())return f.abs();if(f.isZero())return this.abs();var d=this.clone(),g=f.clone();d.negative=0,g.negative=0;for(var y=0;d.isEven()&&g.isEven();y++)d.iushrn(1),g.iushrn(1);do{for(;d.isEven();)d.iushrn(1);for(;g.isEven();)g.iushrn(1);var m=d.cmp(g);if(m<0){var c=d;d=g,g=c}else if(m===0||g.cmpn(1)===0)break;d.isub(g)}while(!0);return g.iushln(y)},i.prototype.invm=function(f){return this.egcd(f).a.umod(f)},i.prototype.isEven=function(){return(this.words[0]&1)===0},i.prototype.isOdd=function(){return(this.words[0]&1)===1},i.prototype.andln=function(f){return this.words[0]&f},i.prototype.bincn=function(f){e(typeof f=="number");var d=f%26,g=(f-d)/26,y=1<>>26,x&=67108863,this.words[c]=x}return m!==0&&(this.words[c]=m,this.length++),this},i.prototype.isZero=function(){return this.length===1&&this.words[0]===0},i.prototype.cmpn=function(f){var d=f<0;if(this.negative!==0&&!d)return-1;if(this.negative===0&&d)return 1;this._strip();var g;if(this.length>1)g=1;else{d&&(f=-f),e(f<=67108863,"Number is too big");var y=this.words[0]|0;g=y===f?0:yf.length)return 1;if(this.length=0;g--){var y=this.words[g]|0,m=f.words[g]|0;if(y!==m){ym&&(d=1);break}}return d},i.prototype.gtn=function(f){return this.cmpn(f)===1},i.prototype.gt=function(f){return this.cmp(f)===1},i.prototype.gten=function(f){return this.cmpn(f)>=0},i.prototype.gte=function(f){return this.cmp(f)>=0},i.prototype.ltn=function(f){return this.cmpn(f)===-1},i.prototype.lt=function(f){return this.cmp(f)===-1},i.prototype.lten=function(f){return this.cmpn(f)<=0},i.prototype.lte=function(f){return this.cmp(f)<=0},i.prototype.eqn=function(f){return this.cmpn(f)===0},i.prototype.eq=function(f){return this.cmp(f)===0},i.red=function(f){return new b(f)},i.prototype.toRed=function(f){return e(!this.red,"Already a number in reduction context"),e(this.negative===0,"red works only with positives"),f.convertTo(this)._forceRed(f)},i.prototype.fromRed=function(){return e(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},i.prototype._forceRed=function(f){return this.red=f,this},i.prototype.forceRed=function(f){return e(!this.red,"Already a number in reduction context"),this._forceRed(f)},i.prototype.redAdd=function(f){return e(this.red,"redAdd works only with red numbers"),this.red.add(this,f)},i.prototype.redIAdd=function(f){return e(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,f)},i.prototype.redSub=function(f){return e(this.red,"redSub works only with red numbers"),this.red.sub(this,f)},i.prototype.redISub=function(f){return e(this.red,"redISub works only with red numbers"),this.red.isub(this,f)},i.prototype.redShl=function(f){return e(this.red,"redShl works only with red numbers"),this.red.shl(this,f)},i.prototype.redMul=function(f){return e(this.red,"redMul works only with red numbers"),this.red._verify2(this,f),this.red.mul(this,f)},i.prototype.redIMul=function(f){return e(this.red,"redMul works only with red numbers"),this.red._verify2(this,f),this.red.imul(this,f)},i.prototype.redSqr=function(){return e(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},i.prototype.redISqr=function(){return e(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},i.prototype.redSqrt=function(){return e(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},i.prototype.redInvm=function(){return e(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},i.prototype.redNeg=function(){return e(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},i.prototype.redPow=function(f){return e(this.red&&!f.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,f)};var V={k256:null,p224:null,p192:null,p25519:null};function X(v,f){this.name=v,this.p=new i(f,16),this.n=this.p.bitLength(),this.k=new i(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}X.prototype._tmp=function(){var f=new i(null);return f.words=new Array(Math.ceil(this.n/13)),f},X.prototype.ireduce=function(f){var d=f,g;do this.split(d,this.tmp),d=this.imulK(d),d=d.iadd(this.tmp),g=d.bitLength();while(g>this.n);var y=g0?d.isub(this.p):d.strip!==void 0?d.strip():d._strip(),d},X.prototype.split=function(f,d){f.iushrn(this.n,0,d)},X.prototype.imulK=function(f){return f.imul(this.k)};function W(){X.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}n(W,X),W.prototype.split=function(f,d){for(var g=4194303,y=Math.min(f.length,9),m=0;m>>22,c=x}c>>>=22,f.words[m-10]=c,c===0&&f.length>10?f.length-=10:f.length-=9},W.prototype.imulK=function(f){f.words[f.length]=0,f.words[f.length+1]=0,f.length+=2;for(var d=0,g=0;g>>=26,f.words[g]=m,d=y}return d!==0&&(f.words[f.length++]=d),f},i._prime=function(f){if(V[f])return V[f];var d;if(f==="k256")d=new W;else if(f==="p224")d=new K;else if(f==="p192")d=new H;else if(f==="p25519")d=new T;else throw new Error("Unknown prime "+f);return V[f]=d,d};function b(v){if(typeof v=="string"){var f=i._prime(v);this.m=f.p,this.prime=f}else e(v.gtn(1),"modulus must be greater than 1"),this.m=v,this.prime=null}b.prototype._verify1=function(f){e(f.negative===0,"red works only with positives"),e(f.red,"red works only with red numbers")},b.prototype._verify2=function(f,d){e((f.negative|d.negative)===0,"red works only with positives"),e(f.red&&f.red===d.red,"red works only with red numbers")},b.prototype.imod=function(f){return this.prime?this.prime.ireduce(f)._forceRed(this):(s(f,f.umod(this.m)._forceRed(this)),f)},b.prototype.neg=function(f){return f.isZero()?f.clone():this.m.sub(f)._forceRed(this)},b.prototype.add=function(f,d){this._verify2(f,d);var g=f.add(d);return g.cmp(this.m)>=0&&g.isub(this.m),g._forceRed(this)},b.prototype.iadd=function(f,d){this._verify2(f,d);var g=f.iadd(d);return g.cmp(this.m)>=0&&g.isub(this.m),g},b.prototype.sub=function(f,d){this._verify2(f,d);var g=f.sub(d);return g.cmpn(0)<0&&g.iadd(this.m),g._forceRed(this)},b.prototype.isub=function(f,d){this._verify2(f,d);var g=f.isub(d);return g.cmpn(0)<0&&g.iadd(this.m),g},b.prototype.shl=function(f,d){return this._verify1(f),this.imod(f.ushln(d))},b.prototype.imul=function(f,d){return this._verify2(f,d),this.imod(f.imul(d))},b.prototype.mul=function(f,d){return this._verify2(f,d),this.imod(f.mul(d))},b.prototype.isqr=function(f){return this.imul(f,f.clone())},b.prototype.sqr=function(f){return this.mul(f,f)},b.prototype.sqrt=function(f){if(f.isZero())return f.clone();var d=this.m.andln(3);if(e(d%2===1),d===3){var g=this.m.add(new i(1)).iushrn(2);return this.pow(f,g)}for(var y=this.m.subn(1),m=0;!y.isZero()&&y.andln(1)===0;)m++,y.iushrn(1);e(!y.isZero());var c=new i(1).toRed(this),x=c.redNeg(),M=this.m.subn(1).iushrn(1),h=this.m.bitLength();for(h=new i(2*h*h).toRed(this);this.pow(h,M).cmp(x)!==0;)h.redIAdd(x);for(var S=this.pow(h,y),N=this.pow(f,y.addn(1).iushrn(1)),w=this.pow(f,y),O=m;w.cmp(c)!==0;){for(var k=w,D=0;k.cmp(c)!==0;D++)k=k.redSqr();e(D=0;m--){for(var S=d.words[m],N=h-1;N>=0;N--){var w=S>>N&1;if(c!==y[0]&&(c=this.sqr(c)),w===0&&x===0){M=0;continue}x<<=1,x|=w,M++,!(M!==g&&(m!==0||N!==0))&&(c=this.mul(c,y[x]),M=0,x=0)}h=26}return c},b.prototype.convertTo=function(f){var d=f.umod(this.m);return d===f?d.clone():d},b.prototype.convertFrom=function(f){var d=f.clone();return d.red=null,d},i.mont=function(f){return new A(f)};function A(v){b.call(this,v),this.shift=this.m.bitLength(),this.shift%26!==0&&(this.shift+=26-this.shift%26),this.r=new i(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}n(A,b),A.prototype.convertTo=function(f){return this.imod(f.ushln(this.shift))},A.prototype.convertFrom=function(f){var d=this.imod(f.mul(this.rinv));return d.red=null,d},A.prototype.imul=function(f,d){if(f.isZero()||d.isZero())return f.words[0]=0,f.length=1,f;var g=f.imul(d),y=g.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),m=g.isub(y).iushrn(this.shift),c=m;return m.cmp(this.m)>=0?c=m.isub(this.m):m.cmpn(0)<0&&(c=m.iadd(this.m)),c._forceRed(this)},A.prototype.mul=function(f,d){if(f.isZero()||d.isZero())return new i(0)._forceRed(this);var g=f.mul(d),y=g.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),m=g.isub(y).iushrn(this.shift),c=m;return m.cmp(this.m)>=0?c=m.isub(this.m):m.cmpn(0)<0&&(c=m.iadd(this.m)),c._forceRed(this)},A.prototype.invm=function(f){var d=this.imod(f._invmp(this.m).mul(this.r2));return d._forceRed(this)}})(typeof Fc>"u"||Fc,Ud)});var qd=L(nf=>{"use strict";Object.defineProperty(nf,"__esModule",{value:!0});nf.version=void 0;nf.version="logger/5.7.0"});var re=L(nn=>{"use strict";Object.defineProperty(nn,"__esModule",{value:!0});nn.Logger=nn.ErrorCode=nn.LogLevel=void 0;var Xd=!1,Gd=!1,af={debug:1,default:2,info:2,warning:3,error:4,off:5},jd=af.default,G2=qd(),Lc=null;function j2(){try{var t=[];if(["NFD","NFC","NFKD","NFKC"].forEach(function(r){try{if("test".normalize(r)!=="test")throw new Error("bad normalize")}catch{t.push(r)}}),t.length)throw new Error("missing "+t.join(", "));if(String.fromCharCode(233).normalize("NFD")!==String.fromCharCode(101,769))throw new Error("broken implementation")}catch(r){return r.message}return null}var zd=j2(),Zd;(function(t){t.DEBUG="DEBUG",t.INFO="INFO",t.WARNING="WARNING",t.ERROR="ERROR",t.OFF="OFF"})(Zd=nn.LogLevel||(nn.LogLevel={}));var tn;(function(t){t.UNKNOWN_ERROR="UNKNOWN_ERROR",t.NOT_IMPLEMENTED="NOT_IMPLEMENTED",t.UNSUPPORTED_OPERATION="UNSUPPORTED_OPERATION",t.NETWORK_ERROR="NETWORK_ERROR",t.SERVER_ERROR="SERVER_ERROR",t.TIMEOUT="TIMEOUT",t.BUFFER_OVERRUN="BUFFER_OVERRUN",t.NUMERIC_FAULT="NUMERIC_FAULT",t.MISSING_NEW="MISSING_NEW",t.INVALID_ARGUMENT="INVALID_ARGUMENT",t.MISSING_ARGUMENT="MISSING_ARGUMENT",t.UNEXPECTED_ARGUMENT="UNEXPECTED_ARGUMENT",t.CALL_EXCEPTION="CALL_EXCEPTION",t.INSUFFICIENT_FUNDS="INSUFFICIENT_FUNDS",t.NONCE_EXPIRED="NONCE_EXPIRED",t.REPLACEMENT_UNDERPRICED="REPLACEMENT_UNDERPRICED",t.UNPREDICTABLE_GAS_LIMIT="UNPREDICTABLE_GAS_LIMIT",t.TRANSACTION_REPLACED="TRANSACTION_REPLACED",t.ACTION_REJECTED="ACTION_REJECTED"})(tn=nn.ErrorCode||(nn.ErrorCode={}));var Vd="0123456789abcdef",z2=function(){function t(r){Object.defineProperty(this,"version",{enumerable:!0,value:r,writable:!1})}return t.prototype._log=function(r,e){var n=r.toLowerCase();af[n]==null&&this.throwArgumentError("invalid log level name","logLevel",r),!(jd>af[n])&&console.log.apply(console,e)},t.prototype.debug=function(){for(var r=[],e=0;e>4],_+=Vd[p[E]&15];i.push(s+"=Uint8Array(0x"+_+")")}else i.push(s+"="+JSON.stringify(p))}catch{i.push(s+"="+JSON.stringify(n[s].toString()))}}),i.push("code="+e),i.push("version="+this.version);var a=r,o="";switch(e){case tn.NUMERIC_FAULT:{o="NUMERIC_FAULT";var u=r;switch(u){case"overflow":case"underflow":case"division-by-zero":o+="-"+u;break;case"negative-power":case"negative-width":o+="-unsupported";break;case"unbound-bitwise-result":o+="-unbound-result";break}break}case tn.CALL_EXCEPTION:case tn.INSUFFICIENT_FUNDS:case tn.MISSING_NEW:case tn.NONCE_EXPIRED:case tn.REPLACEMENT_UNDERPRICED:case tn.TRANSACTION_REPLACED:case tn.UNPREDICTABLE_GAS_LIMIT:o=e;break}o&&(r+=" [ See: https://links.ethers.org/v5-errors-"+o+" ]"),i.length&&(r+=" ("+i.join(", ")+")");var l=new Error(r);return l.reason=a,l.code=e,Object.keys(n).forEach(function(s){l[s]=n[s]}),l},t.prototype.throwError=function(r,e,n){throw this.makeError(r,e,n)},t.prototype.throwArgumentError=function(r,e,n){return this.throwError(r,t.errors.INVALID_ARGUMENT,{argument:e,value:n})},t.prototype.assert=function(r,e,n,i){r||this.throwError(e,n,i)},t.prototype.assertArgument=function(r,e,n,i){r||this.throwArgumentError(e,n,i)},t.prototype.checkNormalize=function(r){r==null&&(r="platform missing String.prototype.normalize"),zd&&this.throwError("platform missing String.prototype.normalize",t.errors.UNSUPPORTED_OPERATION,{operation:"String.prototype.normalize",form:zd})},t.prototype.checkSafeUint53=function(r,e){typeof r=="number"&&(e==null&&(e="value not safe"),(r<0||r>=9007199254740991)&&this.throwError(e,t.errors.NUMERIC_FAULT,{operation:"checkSafeInteger",fault:"out-of-safe-range",value:r}),r%1&&this.throwError(e,t.errors.NUMERIC_FAULT,{operation:"checkSafeInteger",fault:"non-integer",value:r}))},t.prototype.checkArgumentCount=function(r,e,n){n?n=": "+n:n="",re&&this.throwError("too many arguments"+n,t.errors.UNEXPECTED_ARGUMENT,{count:r,expectedCount:e})},t.prototype.checkNew=function(r,e){(r===Object||r==null)&&this.throwError("missing new",t.errors.MISSING_NEW,{name:e.name})},t.prototype.checkAbstract=function(r,e){r===e?this.throwError("cannot instantiate abstract class "+JSON.stringify(e.name)+" directly; use a sub-class",t.errors.UNSUPPORTED_OPERATION,{name:r.name,operation:"new"}):(r===Object||r==null)&&this.throwError("missing new",t.errors.MISSING_NEW,{name:e.name})},t.globalLogger=function(){return Lc||(Lc=new t(G2.version)),Lc},t.setCensorship=function(r,e){if(!r&&e&&this.globalLogger().throwError("cannot permanently disable censorship",t.errors.UNSUPPORTED_OPERATION,{operation:"setCensorship"}),Xd){if(!r)return;this.globalLogger().throwError("error censorship permanent",t.errors.UNSUPPORTED_OPERATION,{operation:"setCensorship"})}Gd=!!r,Xd=!!e},t.setLogLevel=function(r){var e=af[r.toLowerCase()];if(e==null){t.globalLogger().warn("invalid log level - "+r);return}jd=e},t.from=function(r){return new t(r)},t.errors=tn,t.levels=Zd,t}();nn.Logger=z2});var Kd=L(of=>{"use strict";Object.defineProperty(of,"__esModule",{value:!0});of.version=void 0;of.version="bytes/5.7.0"});var De=L(Ge=>{"use strict";Object.defineProperty(Ge,"__esModule",{value:!0});Ge.joinSignature=Ge.splitSignature=Ge.hexZeroPad=Ge.hexStripZeros=Ge.hexValue=Ge.hexConcat=Ge.hexDataSlice=Ge.hexDataLength=Ge.hexlify=Ge.isHexString=Ge.zeroPad=Ge.stripZeros=Ge.concat=Ge.arrayify=Ge.isBytes=Ge.isBytesLike=void 0;var V2=re(),Z2=Kd(),or=new V2.Logger(Z2.version);function Wd(t){return!!t.toHexString}function Ta(t){return t.slice||(t.slice=function(){var r=Array.prototype.slice.call(arguments);return Ta(new Uint8Array(Array.prototype.slice.apply(t,r)))}),t}function Yd(t){return Ot(t)&&!(t.length%2)||ff(t)}Ge.isBytesLike=Yd;function Qd(t){return typeof t=="number"&&t==t&&t%1===0}function ff(t){if(t==null)return!1;if(t.constructor===Uint8Array)return!0;if(typeof t=="string"||!Qd(t.length)||t.length<0)return!1;for(var r=0;r=256)return!1}return!0}Ge.isBytes=ff;function Qi(t,r){if(r||(r={}),typeof t=="number"){or.checkSafeUint53(t,"invalid arrayify value");for(var e=[];t;)e.unshift(t&255),t=parseInt(String(t/256));return e.length===0&&e.push(0),Ta(new Uint8Array(e))}if(r.allowMissingPrefix&&typeof t=="string"&&t.substring(0,2)!=="0x"&&(t="0x"+t),Wd(t)&&(t=t.toHexString()),Ot(t)){var n=t.substring(2);n.length%2&&(r.hexPad==="left"?n="0"+n:r.hexPad==="right"?n+="0":or.throwArgumentError("hex data is odd-length","value",t));for(var e=[],i=0;ir&&or.throwArgumentError("value out of range","value",arguments[0]);var e=new Uint8Array(r);return e.set(t,r-t.length),Ta(e)}Ge.zeroPad=eh;function Ot(t,r){return!(typeof t!="string"||!t.match(/^0x[0-9A-Fa-f]*$/)||r&&t.length!==2+2*r)}Ge.isHexString=Ot;var kc="0123456789abcdef";function Jr(t,r){if(r||(r={}),typeof t=="number"){or.checkSafeUint53(t,"invalid hexlify value");for(var e="";t;)e=kc[t&15]+e,t=Math.floor(t/16);return e.length?(e.length%2&&(e="0"+e),"0x"+e):"0x00"}if(typeof t=="bigint")return t=t.toString(16),t.length%2?"0x0"+t:"0x"+t;if(r.allowMissingPrefix&&typeof t=="string"&&t.substring(0,2)!=="0x"&&(t="0x"+t),Wd(t))return t.toHexString();if(Ot(t))return t.length%2&&(r.hexPad==="left"?t="0x0"+t.substring(2):r.hexPad==="right"?t+="0":or.throwArgumentError("hex data is odd-length","value",t)),t.toLowerCase();if(ff(t)){for(var n="0x",i=0;i>4]+kc[a&15]}return n}return or.throwArgumentError("invalid hexlify value","value",t)}Ge.hexlify=Jr;function Q2(t){if(typeof t!="string")t=Jr(t);else if(!Ot(t)||t.length%2)return null;return(t.length-2)/2}Ge.hexDataLength=Q2;function W2(t,r,e){return typeof t!="string"?t=Jr(t):(!Ot(t)||t.length%2)&&or.throwArgumentError("invalid hexData","value",t),r=2+2*r,e!=null?"0x"+t.substring(r,2+2*e):"0x"+t.substring(r)}Ge.hexDataSlice=W2;function Y2(t){var r="0x";return t.forEach(function(e){r+=Jr(e).substring(2)}),r}Ge.hexConcat=Y2;function $2(t){var r=rh(Jr(t,{hexPad:"left"}));return r==="0x"?"0x0":r}Ge.hexValue=$2;function rh(t){typeof t!="string"&&(t=Jr(t)),Ot(t)||or.throwArgumentError("invalid hex string","value",t),t=t.substring(2);for(var r=0;r2*r+2&&or.throwArgumentError("value out of range","value",arguments[1]);t.length<2*r+2;)t="0x0"+t.substring(2);return t}Ge.hexZeroPad=sf;function th(t){var r={r:"0x",s:"0x",_vs:"0x",recoveryParam:0,v:0,yParityAndS:"0x",compact:"0x"};if(Yd(t)){var e=Qi(t);e.length===64?(r.v=27+(e[32]>>7),e[32]&=127,r.r=Jr(e.slice(0,32)),r.s=Jr(e.slice(32,64))):e.length===65?(r.r=Jr(e.slice(0,32)),r.s=Jr(e.slice(32,64)),r.v=e[64]):or.throwArgumentError("invalid signature string","signature",t),r.v<27&&(r.v===0||r.v===1?r.v+=27:or.throwArgumentError("signature invalid v byte","signature",t)),r.recoveryParam=1-r.v%2,r.recoveryParam&&(e[32]|=128),r._vs=Jr(e.slice(32,64))}else{if(r.r=t.r,r.s=t.s,r.v=t.v,r.recoveryParam=t.recoveryParam,r._vs=t._vs,r._vs!=null){var n=eh(Qi(r._vs),32);r._vs=Jr(n);var i=n[0]>=128?1:0;r.recoveryParam==null?r.recoveryParam=i:r.recoveryParam!==i&&or.throwArgumentError("signature recoveryParam mismatch _vs","signature",t),n[0]&=127;var a=Jr(n);r.s==null?r.s=a:r.s!==a&&or.throwArgumentError("signature v mismatch _vs","signature",t)}if(r.recoveryParam==null)r.v==null?or.throwArgumentError("signature missing v and recoveryParam","signature",t):r.v===0||r.v===1?r.recoveryParam=r.v:r.recoveryParam=1-r.v%2;else if(r.v==null)r.v=27+r.recoveryParam;else{var o=r.v===0||r.v===1?r.v:1-r.v%2;r.recoveryParam!==o&&or.throwArgumentError("signature recoveryParam mismatch v","signature",t)}r.r==null||!Ot(r.r)?or.throwArgumentError("signature missing or invalid r","signature",t):r.r=sf(r.r,32),r.s==null||!Ot(r.s)?or.throwArgumentError("signature missing or invalid s","signature",t):r.s=sf(r.s,32);var u=Qi(r.s);u[0]>=128&&or.throwArgumentError("signature s out of range","signature",t),r.recoveryParam&&(u[0]|=128);var l=Jr(u);r._vs&&(Ot(r._vs)||or.throwArgumentError("signature invalid _vs","signature",t),r._vs=sf(r._vs,32)),r._vs==null?r._vs=l:r._vs!==l&&or.throwArgumentError("signature _vs mismatch v and s","signature",t)}return r.yParityAndS=r._vs,r.compact=r.r+r.yParityAndS.substring(2),r}Ge.splitSignature=th;function ey(t){return t=th(t),Jr($d([t.r,t.s,t.recoveryParam?"0x1c":"0x1b"]))}Ge.joinSignature=ey});var Rc=L(uf=>{"use strict";Object.defineProperty(uf,"__esModule",{value:!0});uf.version=void 0;uf.version="bignumber/5.7.0"});var lf=L(dt=>{"use strict";var ry=dt&&dt.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(dt,"__esModule",{value:!0});dt._base16To36=dt._base36To16=dt.BigNumber=dt.isBigNumberish=void 0;var ty=ry(Hd()),zo=ty.default.BN,Ca=De(),Ba=re(),ny=Rc(),Nn=new Ba.Logger(ny.version),Nc={},nh=9007199254740991;function iy(t){return t!=null&&(cf.isBigNumber(t)||typeof t=="number"&&t%1===0||typeof t=="string"&&!!t.match(/^-?[0-9]+$/)||(0,Ca.isHexString)(t)||typeof t=="bigint"||(0,Ca.isBytes)(t))}dt.isBigNumberish=iy;var ih=!1,cf=function(){function t(r,e){r!==Nc&&Nn.throwError("cannot call constructor directly; use BigNumber.from",Ba.Logger.errors.UNSUPPORTED_OPERATION,{operation:"new (BigNumber)"}),this._hex=e,this._isBigNumber=!0,Object.freeze(this)}return t.prototype.fromTwos=function(r){return Qr(He(this).fromTwos(r))},t.prototype.toTwos=function(r){return Qr(He(this).toTwos(r))},t.prototype.abs=function(){return this._hex[0]==="-"?t.from(this._hex.substring(1)):this},t.prototype.add=function(r){return Qr(He(this).add(He(r)))},t.prototype.sub=function(r){return Qr(He(this).sub(He(r)))},t.prototype.div=function(r){var e=t.from(r);return e.isZero()&<("division-by-zero","div"),Qr(He(this).div(He(r)))},t.prototype.mul=function(r){return Qr(He(this).mul(He(r)))},t.prototype.mod=function(r){var e=He(r);return e.isNeg()&<("division-by-zero","mod"),Qr(He(this).umod(e))},t.prototype.pow=function(r){var e=He(r);return e.isNeg()&<("negative-power","pow"),Qr(He(this).pow(e))},t.prototype.and=function(r){var e=He(r);return(this.isNegative()||e.isNeg())&<("unbound-bitwise-result","and"),Qr(He(this).and(e))},t.prototype.or=function(r){var e=He(r);return(this.isNegative()||e.isNeg())&<("unbound-bitwise-result","or"),Qr(He(this).or(e))},t.prototype.xor=function(r){var e=He(r);return(this.isNegative()||e.isNeg())&<("unbound-bitwise-result","xor"),Qr(He(this).xor(e))},t.prototype.mask=function(r){return(this.isNegative()||r<0)&<("negative-width","mask"),Qr(He(this).maskn(r))},t.prototype.shl=function(r){return(this.isNegative()||r<0)&<("negative-width","shl"),Qr(He(this).shln(r))},t.prototype.shr=function(r){return(this.isNegative()||r<0)&<("negative-width","shr"),Qr(He(this).shrn(r))},t.prototype.eq=function(r){return He(this).eq(He(r))},t.prototype.lt=function(r){return He(this).lt(He(r))},t.prototype.lte=function(r){return He(this).lte(He(r))},t.prototype.gt=function(r){return He(this).gt(He(r))},t.prototype.gte=function(r){return He(this).gte(He(r))},t.prototype.isNegative=function(){return this._hex[0]==="-"},t.prototype.isZero=function(){return He(this).isZero()},t.prototype.toNumber=function(){try{return He(this).toNumber()}catch{lt("overflow","toNumber",this.toString())}return null},t.prototype.toBigInt=function(){try{return BigInt(this.toString())}catch{}return Nn.throwError("this platform does not support BigInt",Ba.Logger.errors.UNSUPPORTED_OPERATION,{value:this.toString()})},t.prototype.toString=function(){return arguments.length>0&&(arguments[0]===10?ih||(ih=!0,Nn.warn("BigNumber.toString does not accept any parameters; base-10 is assumed")):arguments[0]===16?Nn.throwError("BigNumber.toString does not accept any parameters; use bigNumber.toHexString()",Ba.Logger.errors.UNEXPECTED_ARGUMENT,{}):Nn.throwError("BigNumber.toString does not accept parameters",Ba.Logger.errors.UNEXPECTED_ARGUMENT,{})),He(this).toString(10)},t.prototype.toHexString=function(){return this._hex},t.prototype.toJSON=function(r){return{type:"BigNumber",hex:this.toHexString()}},t.from=function(r){if(r instanceof t)return r;if(typeof r=="string")return r.match(/^-?0x[0-9a-f]+$/i)?new t(Nc,Vo(r)):r.match(/^-?[0-9]+$/)?new t(Nc,Vo(new zo(r))):Nn.throwArgumentError("invalid BigNumber string","value",r);if(typeof r=="number")return r%1&<("underflow","BigNumber.from",r),(r>=nh||r<=-nh)&<("overflow","BigNumber.from",r),t.from(String(r));var e=r;if(typeof e=="bigint")return t.from(e.toString());if((0,Ca.isBytes)(e))return t.from((0,Ca.hexlify)(e));if(e)if(e.toHexString){var n=e.toHexString();if(typeof n=="string")return t.from(n)}else{var n=e._hex;if(n==null&&e.type==="BigNumber"&&(n=e.hex),typeof n=="string"&&((0,Ca.isHexString)(n)||n[0]==="-"&&(0,Ca.isHexString)(n.substring(1))))return t.from(n)}return Nn.throwArgumentError("invalid BigNumber value","value",r)},t.isBigNumber=function(r){return!!(r&&r._isBigNumber)},t}();dt.BigNumber=cf;function Vo(t){if(typeof t!="string")return Vo(t.toString(16));if(t[0]==="-")return t=t.substring(1),t[0]==="-"&&Nn.throwArgumentError("invalid hex","value",t),t=Vo(t),t==="0x00"?t:"-"+t;if(t.substring(0,2)!=="0x"&&(t="0x"+t),t==="0x")return"0x00";for(t.length%2&&(t="0x0"+t.substring(2));t.length>4&&t.substring(0,4)==="0x00";)t="0x"+t.substring(4);return t}function Qr(t){return cf.from(Vo(t))}function He(t){var r=cf.from(t).toHexString();return r[0]==="-"?new zo("-"+r.substring(3),16):new zo(r.substring(2),16)}function lt(t,r,e){var n={fault:t,operation:r};return e!=null&&(n.value=e),Nn.throwError(t,Ba.Logger.errors.NUMERIC_FAULT,n)}function ay(t){return new zo(t,36).toString(16)}dt._base36To16=ay;function oy(t){return new zo(t,16).toString(36)}dt._base16To36=oy});var uh=L(on=>{"use strict";Object.defineProperty(on,"__esModule",{value:!0});on.FixedNumber=on.FixedFormat=on.parseFixed=on.formatFixed=void 0;var df=De(),Qo=re(),sy=Rc(),Kr=new Qo.Logger(sy.version),Jn=lf(),Zo={},oh=Jn.BigNumber.from(0),sh=Jn.BigNumber.from(-1);function fh(t,r,e,n){var i={fault:r,operation:e};return n!==void 0&&(i.value=n),Kr.throwError(t,Qo.Logger.errors.NUMERIC_FAULT,i)}var Ko="0";for(;Ko.length<256;)Ko+=Ko;function Jc(t){if(typeof t!="number")try{t=Jn.BigNumber.from(t).toNumber()}catch{}return typeof t=="number"&&t>=0&&t<=256&&!(t%1)?"1"+Ko.substring(0,t):Kr.throwArgumentError("invalid decimal size","decimals",t)}function hf(t,r){r==null&&(r=0);var e=Jc(r);t=Jn.BigNumber.from(t);var n=t.lt(oh);n&&(t=t.mul(sh));for(var i=t.mod(e).toString();i.length2&&Kr.throwArgumentError("too many decimal points","value",t);var a=i[0],o=i[1];for(a||(a="0"),o||(o="0");o[o.length-1]==="0";)o=o.substring(0,o.length-1);for(o.length>e.length-1&&fh("fractional component exceeds decimals","underflow","parseFixed"),o===""&&(o="0");o.length80&&Kr.throwArgumentError("invalid fixed format (decimals too large)","format.decimals",i),new t(Zo,e,n,i)},t}();on.FixedFormat=bf;var Dc=function(){function t(r,e,n,i){r!==Zo&&Kr.throwError("cannot use FixedNumber constructor; use FixedNumber.from",Qo.Logger.errors.UNSUPPORTED_OPERATION,{operation:"new FixedFormat"}),this.format=i,this._hex=e,this._value=n,this._isFixedNumber=!0,Object.freeze(this)}return t.prototype._checkFormat=function(r){this.format.name!==r.format.name&&Kr.throwArgumentError("incompatible format; use fixedNumber.toFormat","other",r)},t.prototype.addUnsafe=function(r){this._checkFormat(r);var e=an(this._value,this.format.decimals),n=an(r._value,r.format.decimals);return t.fromValue(e.add(n),this.format.decimals,this.format)},t.prototype.subUnsafe=function(r){this._checkFormat(r);var e=an(this._value,this.format.decimals),n=an(r._value,r.format.decimals);return t.fromValue(e.sub(n),this.format.decimals,this.format)},t.prototype.mulUnsafe=function(r){this._checkFormat(r);var e=an(this._value,this.format.decimals),n=an(r._value,r.format.decimals);return t.fromValue(e.mul(n).div(this.format._multiplier),this.format.decimals,this.format)},t.prototype.divUnsafe=function(r){this._checkFormat(r);var e=an(this._value,this.format.decimals),n=an(r._value,r.format.decimals);return t.fromValue(e.mul(this.format._multiplier).div(n),this.format.decimals,this.format)},t.prototype.floor=function(){var r=this.toString().split(".");r.length===1&&r.push("0");var e=t.from(r[0],this.format),n=!r[1].match(/^(0*)$/);return this.isNegative()&&n&&(e=e.subUnsafe(ah.toFormat(e.format))),e},t.prototype.ceiling=function(){var r=this.toString().split(".");r.length===1&&r.push("0");var e=t.from(r[0],this.format),n=!r[1].match(/^(0*)$/);return!this.isNegative()&&n&&(e=e.addUnsafe(ah.toFormat(e.format))),e},t.prototype.round=function(r){r==null&&(r=0);var e=this.toString().split(".");if(e.length===1&&e.push("0"),(r<0||r>80||r%1)&&Kr.throwArgumentError("invalid decimal count","decimals",r),e[1].length<=r)return this;var n=t.from("1"+Ko.substring(0,r),this.format),i=fy.toFormat(this.format);return this.mulUnsafe(n).addUnsafe(i).floor().divUnsafe(n)},t.prototype.isZero=function(){return this._value==="0.0"||this._value==="0"},t.prototype.isNegative=function(){return this._value[0]==="-"},t.prototype.toString=function(){return this._value},t.prototype.toHexString=function(r){if(r==null)return this._hex;r%8&&Kr.throwArgumentError("invalid byte width","width",r);var e=Jn.BigNumber.from(this._hex).fromTwos(this.format.width).toTwos(r).toHexString();return(0,df.hexZeroPad)(e,r/8)},t.prototype.toUnsafeFloat=function(){return parseFloat(this.toString())},t.prototype.toFormat=function(r){return t.fromString(this._value,r)},t.fromValue=function(r,e,n){return n==null&&e!=null&&!(0,Jn.isBigNumberish)(e)&&(n=e,e=null),e==null&&(e=0),n==null&&(n="fixed"),t.fromString(hf(r,e),bf.from(n))},t.fromString=function(r,e){e==null&&(e="fixed");var n=bf.from(e),i=an(r,n.decimals);!n.signed&&i.lt(oh)&&fh("unsigned value cannot be negative","overflow","value",r);var a=null;n.signed?a=i.toTwos(n.width).toHexString():(a=i.toHexString(),a=(0,df.hexZeroPad)(a,n.width/8));var o=hf(i,n.decimals);return new t(Zo,a,o,n)},t.fromBytes=function(r,e){e==null&&(e="fixed");var n=bf.from(e);if((0,df.arrayify)(r).length>n.width/8)throw new Error("overflow");var i=Jn.BigNumber.from(r);n.signed&&(i=i.fromTwos(n.width));var a=i.toTwos((n.signed?0:1)+n.width).toHexString(),o=hf(i,n.decimals);return new t(Zo,a,o,n)},t.from=function(r,e){if(typeof r=="string")return t.fromString(r,e);if((0,df.isBytes)(r))return t.fromBytes(r,e);try{return t.fromValue(r,0,e)}catch(n){if(n.code!==Qo.Logger.errors.INVALID_ARGUMENT)throw n}return Kr.throwArgumentError("invalid FixedNumber value","value",r)},t.isFixedNumber=function(r){return!!(r&&r._isFixedNumber)},t}();on.FixedNumber=Dc;var ah=Dc.from(1),fy=Dc.from("0.5")});var hr=L(Dr=>{"use strict";Object.defineProperty(Dr,"__esModule",{value:!0});Dr._base36To16=Dr._base16To36=Dr.parseFixed=Dr.FixedNumber=Dr.FixedFormat=Dr.formatFixed=Dr.BigNumber=void 0;var uy=lf();Object.defineProperty(Dr,"BigNumber",{enumerable:!0,get:function(){return uy.BigNumber}});var pf=uh();Object.defineProperty(Dr,"formatFixed",{enumerable:!0,get:function(){return pf.formatFixed}});Object.defineProperty(Dr,"FixedFormat",{enumerable:!0,get:function(){return pf.FixedFormat}});Object.defineProperty(Dr,"FixedNumber",{enumerable:!0,get:function(){return pf.FixedNumber}});Object.defineProperty(Dr,"parseFixed",{enumerable:!0,get:function(){return pf.parseFixed}});var ch=lf();Object.defineProperty(Dr,"_base16To36",{enumerable:!0,get:function(){return ch._base16To36}});Object.defineProperty(Dr,"_base36To16",{enumerable:!0,get:function(){return ch._base36To16}})});var lh=L(vf=>{"use strict";Object.defineProperty(vf,"__esModule",{value:!0});vf.version=void 0;vf.version="properties/5.7.0"});var Ve=L(br=>{"use strict";var cy=br&&br.__awaiter||function(t,r,e,n){function i(a){return a instanceof e?a:new e(function(o){o(a)})}return new(e||(e=Promise))(function(a,o){function u(p){try{s(n.next(p))}catch(_){o(_)}}function l(p){try{s(n.throw(p))}catch(_){o(_)}}function s(p){p.done?a(p.value):i(p.value).then(u,l)}s((n=n.apply(t,r||[])).next())})},ly=br&&br.__generator||function(t,r){var e={label:0,sent:function(){if(a[0]&1)throw a[1];return a[1]},trys:[],ops:[]},n,i,a,o;return o={next:u(0),throw:u(1),return:u(2)},typeof Symbol=="function"&&(o[Symbol.iterator]=function(){return this}),o;function u(s){return function(p){return l([s,p])}}function l(s){if(n)throw new TypeError("Generator is already executing.");for(;e;)try{if(n=1,i&&(a=s[0]&2?i.return:s[0]?i.throw||((a=i.return)&&a.call(i),0):i.next)&&!(a=a.call(i,s[1])).done)return a;switch(i=0,a&&(s=[s[0]&2,a.value]),s[0]){case 0:case 1:a=s;break;case 4:return e.label++,{value:s[1],done:!1};case 5:e.label++,i=s[1],s=[0];continue;case 7:s=e.ops.pop(),e.trys.pop();continue;default:if(a=e.trys,!(a=a.length>0&&a[a.length-1])&&(s[0]===6||s[0]===2)){e=0;continue}if(s[0]===3&&(!a||s[1]>a[0]&&s[1]{"use strict";Object.defineProperty(xf,"__esModule",{value:!0});xf.version=void 0;xf.version="abi/5.7.0"});var Pf=L(te=>{"use strict";var _f=te&&te.__extends||function(){var t=function(r,e){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,i){n.__proto__=i}||function(n,i){for(var a in i)Object.prototype.hasOwnProperty.call(i,a)&&(n[a]=i[a])},t(r,e)};return function(r,e){if(typeof e!="function"&&e!==null)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");t(r,e);function n(){this.constructor=r}r.prototype=e===null?Object.create(e):(n.prototype=e.prototype,new n)}}();Object.defineProperty(te,"__esModule",{value:!0});te.ErrorFragment=te.FunctionFragment=te.ConstructorFragment=te.EventFragment=te.Fragment=te.ParamType=te.FormatTypes=void 0;var qc=hr(),Ay=Ve(),Sf=re(),wy=Oa(),qe=new Sf.Logger(wy.version),Wi={},bh={calldata:!0,memory:!0,storage:!0},_y={calldata:!0,memory:!0};function yf(t,r){if(t==="bytes"||t==="string"){if(bh[r])return!0}else if(t==="address"){if(r==="payable")return!0}else if((t.indexOf("[")>=0||t==="tuple")&&_y[r])return!0;return(bh[r]||r==="payable")&&qe.throwArgumentError("invalid modifier","name",r),!1}function Sy(t,r){var e=t;function n(_){qe.throwArgumentError("unexpected character at position "+_,"param",t)}t=t.replace(/\s/g," ");function i(_){var E={type:"",name:"",parent:_,state:{allowType:!0}};return r&&(E.indexed=!1),E}for(var a={type:"",name:"",state:{allowType:!0}},o=a,u=0;u2&&qe.throwArgumentError("invalid human-readable ABI signature","value",t),e[1].match(/^[0-9]+$/)||qe.throwArgumentError("invalid human-readable ABI signature gas","value",t),r.gas=qc.BigNumber.from(e[1]),e[0]):t}function gh(t,r){r.constant=!1,r.payable=!1,r.stateMutability="nonpayable",t.split(" ").forEach(function(e){switch(e.trim()){case"constant":r.constant=!0;break;case"payable":r.payable=!0,r.stateMutability="payable";break;case"nonpayable":r.payable=!1,r.stateMutability="nonpayable";break;case"pure":r.constant=!0,r.stateMutability="pure";break;case"view":r.constant=!0,r.stateMutability="view";break;case"external":case"public":case"":break;default:console.log("unknown modifier: "+e)}})}function mh(t){var r={constant:!1,payable:!0,stateMutability:"payable"};return t.stateMutability!=null?(r.stateMutability=t.stateMutability,r.constant=r.stateMutability==="view"||r.stateMutability==="pure",t.constant!=null&&!!t.constant!==r.constant&&qe.throwArgumentError("cannot have constant function with mutability "+r.stateMutability,"value",t),r.payable=r.stateMutability==="payable",t.payable!=null&&!!t.payable!==r.payable&&qe.throwArgumentError("cannot have payable function with mutability "+r.stateMutability,"value",t)):t.payable!=null?(r.payable=!!t.payable,t.constant==null&&!r.payable&&t.type!=="constructor"&&qe.throwArgumentError("unable to determine stateMutability","value",t),r.constant=!!t.constant,r.constant?r.stateMutability="view":r.stateMutability=r.payable?"payable":"nonpayable",r.payable&&r.constant&&qe.throwArgumentError("cannot have constant payable function","value",t)):t.constant!=null?(r.constant=!!t.constant,r.payable=!r.constant,r.stateMutability=r.constant?"view":"payable"):t.type!=="constructor"&&qe.throwArgumentError("unable to determine stateMutability","value",t),r}var wf=function(t){_f(r,t);function r(){return t!==null&&t.apply(this,arguments)||this}return r.prototype.format=function(e){if(e||(e=te.FormatTypes.sighash),te.FormatTypes[e]||qe.throwArgumentError("invalid format type","format",e),e===te.FormatTypes.json)return JSON.stringify({type:"constructor",stateMutability:this.stateMutability!=="nonpayable"?this.stateMutability:void 0,payable:this.payable,gas:this.gas?this.gas.toNumber():void 0,inputs:this.inputs.map(function(i){return JSON.parse(i.format(e))})});e===te.FormatTypes.sighash&&qe.throwError("cannot format a constructor for sighash",Sf.Logger.errors.UNSUPPORTED_OPERATION,{operation:"format(sighash)"});var n="constructor("+this.inputs.map(function(i){return i.format(e)}).join(e===te.FormatTypes.full?", ":",")+") ";return this.stateMutability&&this.stateMutability!=="nonpayable"&&(n+=this.stateMutability+" "),n.trim()},r.from=function(e){return typeof e=="string"?r.fromString(e):r.fromObject(e)},r.fromObject=function(e){if(r.isConstructorFragment(e))return e;e.type!=="constructor"&&qe.throwArgumentError("invalid constructor object","value",e);var n=mh(e);n.constant&&qe.throwArgumentError("constructor cannot be constant","value",e);var i={name:null,type:e.type,inputs:e.inputs?e.inputs.map(Yi.fromObject):[],payable:n.payable,stateMutability:n.stateMutability,gas:e.gas?qc.BigNumber.from(e.gas):null};return new r(Wi,i)},r.fromString=function(e){var n={type:"constructor"};e=vh(e,n);var i=e.match($o);return(!i||i[1].trim()!=="constructor")&&qe.throwArgumentError("invalid constructor string","value",e),n.inputs=Wo(i[2].trim(),!1),gh(i[3].trim(),n),r.fromObject(n)},r.isConstructorFragment=function(e){return e&&e._isFragment&&e.type==="constructor"},r}(Mf);te.ConstructorFragment=wf;var Uc=function(t){_f(r,t);function r(){return t!==null&&t.apply(this,arguments)||this}return r.prototype.format=function(e){if(e||(e=te.FormatTypes.sighash),te.FormatTypes[e]||qe.throwArgumentError("invalid format type","format",e),e===te.FormatTypes.json)return JSON.stringify({type:"function",name:this.name,constant:this.constant,stateMutability:this.stateMutability!=="nonpayable"?this.stateMutability:void 0,payable:this.payable,gas:this.gas?this.gas.toNumber():void 0,inputs:this.inputs.map(function(i){return JSON.parse(i.format(e))}),outputs:this.outputs.map(function(i){return JSON.parse(i.format(e))})});var n="";return e!==te.FormatTypes.sighash&&(n+="function "),n+=this.name+"("+this.inputs.map(function(i){return i.format(e)}).join(e===te.FormatTypes.full?", ":",")+") ",e!==te.FormatTypes.sighash&&(this.stateMutability?this.stateMutability!=="nonpayable"&&(n+=this.stateMutability+" "):this.constant&&(n+="view "),this.outputs&&this.outputs.length&&(n+="returns ("+this.outputs.map(function(i){return i.format(e)}).join(", ")+") "),this.gas!=null&&(n+="@"+this.gas.toString()+" ")),n.trim()},r.from=function(e){return typeof e=="string"?r.fromString(e):r.fromObject(e)},r.fromObject=function(e){if(r.isFunctionFragment(e))return e;e.type!=="function"&&qe.throwArgumentError("invalid function object","value",e);var n=mh(e),i={type:e.type,name:Yo(e.name),constant:n.constant,inputs:e.inputs?e.inputs.map(Yi.fromObject):[],outputs:e.outputs?e.outputs.map(Yi.fromObject):[],payable:n.payable,stateMutability:n.stateMutability,gas:e.gas?qc.BigNumber.from(e.gas):null};return new r(Wi,i)},r.fromString=function(e){var n={type:"function"};e=vh(e,n);var i=e.split(" returns ");i.length>2&&qe.throwArgumentError("invalid function string","value",e);var a=i[0].match($o);if(a||qe.throwArgumentError("invalid function signature","value",e),n.name=a[1].trim(),n.name&&Yo(n.name),n.inputs=Wo(a[2],!1),gh(a[3].trim(),n),i.length>1){var o=i[1].match($o);(o[1].trim()!=""||o[3].trim()!="")&&qe.throwArgumentError("unexpected tokens","value",e),n.outputs=Wo(o[2],!1)}else n.outputs=[];return r.fromObject(n)},r.isFunctionFragment=function(e){return e&&e._isFragment&&e.type==="function"},r}(wf);te.FunctionFragment=Uc;function ph(t){var r=t.format();return(r==="Error(string)"||r==="Panic(uint256)")&&qe.throwArgumentError("cannot specify user defined "+r+" error","fragment",t),t}var Hc=function(t){_f(r,t);function r(){return t!==null&&t.apply(this,arguments)||this}return r.prototype.format=function(e){if(e||(e=te.FormatTypes.sighash),te.FormatTypes[e]||qe.throwArgumentError("invalid format type","format",e),e===te.FormatTypes.json)return JSON.stringify({type:"error",name:this.name,inputs:this.inputs.map(function(i){return JSON.parse(i.format(e))})});var n="";return e!==te.FormatTypes.sighash&&(n+="error "),n+=this.name+"("+this.inputs.map(function(i){return i.format(e)}).join(e===te.FormatTypes.full?", ":",")+") ",n.trim()},r.from=function(e){return typeof e=="string"?r.fromString(e):r.fromObject(e)},r.fromObject=function(e){if(r.isErrorFragment(e))return e;e.type!=="error"&&qe.throwArgumentError("invalid error object","value",e);var n={type:e.type,name:Yo(e.name),inputs:e.inputs?e.inputs.map(Yi.fromObject):[]};return ph(new r(Wi,n))},r.fromString=function(e){var n={type:"error"},i=e.match($o);return i||qe.throwArgumentError("invalid error signature","value",e),n.name=i[1].trim(),n.name&&Yo(n.name),n.inputs=Wo(i[2],!1),ph(r.fromObject(n))},r.isErrorFragment=function(e){return e&&e._isFragment&&e.type==="error"},r}(Mf);te.ErrorFragment=Hc;function Fa(t){return t.match(/^uint($|[^1-9])/)?t="uint256"+t.substring(4):t.match(/^int($|[^1-9])/)&&(t="int256"+t.substring(3)),t}var Py=new RegExp("^[a-zA-Z$_][a-zA-Z0-9$_]*$");function Yo(t){return(!t||!t.match(Py))&&qe.throwArgumentError('invalid identifier "'+t+'"',"value",t),t}var $o=new RegExp("^([^)(]*)\\((.*)\\)([^)(]*)$");function Ey(t){t=t.trim();for(var r=[],e="",n=0,i=0;i{"use strict";Object.defineProperty(sn,"__esModule",{value:!0});sn.Reader=sn.Writer=sn.Coder=sn.checkResultErrors=void 0;var ni=De(),xh=hr(),es=Ve(),Xc=re(),Ty=Oa(),Gc=new Xc.Logger(Ty.version);function Cy(t){var r=[],e=function(n,i){if(!!Array.isArray(i))for(var a in i){var o=n.slice();o.push(a);try{e(o,i[a])}catch(u){r.push({path:o,error:u})}}};return e([],t),r}sn.checkResultErrors=Cy;var By=function(){function t(r,e,n,i){this.name=r,this.type=e,this.localName=n,this.dynamic=i}return t.prototype._throwError=function(r,e){Gc.throwArgumentError(r,this.localName,e)},t}();sn.Coder=By;var Oy=function(){function t(r){(0,es.defineReadOnly)(this,"wordSize",r||32),this._data=[],this._dataLength=0,this._padding=new Uint8Array(r)}return Object.defineProperty(t.prototype,"data",{get:function(){return(0,ni.hexConcat)(this._data)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"length",{get:function(){return this._dataLength},enumerable:!1,configurable:!0}),t.prototype._writeData=function(r){return this._data.push(r),this._dataLength+=r.length,r.length},t.prototype.appendWriter=function(r){return this._writeData((0,ni.concat)(r._data))},t.prototype.writeBytes=function(r){var e=(0,ni.arrayify)(r),n=e.length%this.wordSize;return n&&(e=(0,ni.concat)([e,this._padding.slice(n)])),this._writeData(e)},t.prototype._getValue=function(r){var e=(0,ni.arrayify)(xh.BigNumber.from(r));return e.length>this.wordSize&&Gc.throwError("value out-of-bounds",Xc.Logger.errors.BUFFER_OVERRUN,{length:this.wordSize,offset:e.length}),e.length%this.wordSize&&(e=(0,ni.concat)([this._padding.slice(e.length%this.wordSize),e])),e},t.prototype.writeValue=function(r){return this._writeData(this._getValue(r))},t.prototype.writeUpdatableValue=function(){var r=this,e=this._data.length;return this._data.push(this._padding),this._dataLength+=this.wordSize,function(n){r._data[e]=r._getValue(n)}},t}();sn.Writer=Oy;var Fy=function(){function t(r,e,n,i){(0,es.defineReadOnly)(this,"_data",(0,ni.arrayify)(r)),(0,es.defineReadOnly)(this,"wordSize",e||32),(0,es.defineReadOnly)(this,"_coerceFunc",n),(0,es.defineReadOnly)(this,"allowLoose",i),this._offset=0}return Object.defineProperty(t.prototype,"data",{get:function(){return(0,ni.hexlify)(this._data)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"consumed",{get:function(){return this._offset},enumerable:!1,configurable:!0}),t.coerce=function(r,e){var n=r.match("^u?int([0-9]+)$");return n&&parseInt(n[1])<=48&&(e=e.toNumber()),e},t.prototype.coerce=function(r,e){return this._coerceFunc?this._coerceFunc(r,e):t.coerce(r,e)},t.prototype._peekBytes=function(r,e,n){var i=Math.ceil(e/this.wordSize)*this.wordSize;return this._offset+i>this._data.length&&(this.allowLoose&&n&&this._offset+e<=this._data.length?i=e:Gc.throwError("data out-of-bounds",Xc.Logger.errors.BUFFER_OVERRUN,{length:this._data.length,offset:this._offset+i})),this._data.slice(this._offset,this._offset+i)},t.prototype.subReader=function(r){return new t(this._data.slice(this._offset+r),this.wordSize,this._coerceFunc,this.allowLoose)},t.prototype.readBytes=function(r,e){var n=this._peekBytes(0,r,!!e);return this._offset+=n.length,n.slice(0,r)},t.prototype.readValue=function(){return xh.BigNumber.from(this.readBytes(this.wordSize))},t}();sn.Reader=Fy});var yh=L((PP,Ef)=>{(function(){"use strict";var t="input is invalid type",r="finalize already called",e=typeof window=="object",n=e?window:{};n.JS_SHA3_NO_WINDOW&&(e=!1);var i=!e&&typeof self=="object",a=!n.JS_SHA3_NO_NODE_JS&&typeof process=="object"&&process.versions&&process.versions.node;a?n=global:i&&(n=self);var o=!n.JS_SHA3_NO_COMMON_JS&&typeof Ef=="object"&&Ef.exports,u=typeof define=="function"&&define.amd,l=!n.JS_SHA3_NO_ARRAY_BUFFER&&typeof ArrayBuffer<"u",s="0123456789abcdef".split(""),p=[31,7936,2031616,520093696],_=[4,1024,262144,67108864],E=[1,256,65536,16777216],C=[6,1536,393216,100663296],P=[0,8,16,24],B=[1,0,32898,0,32906,2147483648,2147516416,2147483648,32907,0,2147483649,0,2147516545,2147483648,32777,2147483648,138,0,136,0,2147516425,0,2147483658,0,2147516555,0,139,2147483648,32905,2147483648,32771,2147483648,32770,2147483648,128,2147483648,32778,0,2147483658,2147483648,2147516545,2147483648,32896,2147483648,2147483649,0,2147516424,2147483648],J=[224,256,384,512],R=[128,256],q=["hex","buffer","arrayBuffer","array","digest"],I={128:168,256:136};(n.JS_SHA3_NO_NODE_JS||!Array.isArray)&&(Array.isArray=function(w){return Object.prototype.toString.call(w)==="[object Array]"}),l&&(n.JS_SHA3_NO_ARRAY_BUFFER_IS_VIEW||!ArrayBuffer.isView)&&(ArrayBuffer.isView=function(w){return typeof w=="object"&&w.buffer&&w.buffer.constructor===ArrayBuffer});for(var j=function(w,O,k){return function(D){return new h(w,O,w).update(D)[k]()}},V=function(w,O,k){return function(D,U){return new h(w,O,U).update(D)[k]()}},X=function(w,O,k){return function(D,U,Q,z){return f["cshake"+w].update(D,U,Q,z)[k]()}},W=function(w,O,k){return function(D,U,Q,z){return f["kmac"+w].update(D,U,Q,z)[k]()}},K=function(w,O,k,D){for(var U=0;U>5,this.byteCount=this.blockCount<<2,this.outputBlocks=k>>5,this.extraBytes=(k&31)>>3;for(var D=0;D<50;++D)this.s[D]=0}h.prototype.update=function(w){if(this.finalized)throw new Error(r);var O,k=typeof w;if(k!=="string"){if(k==="object"){if(w===null)throw new Error(t);if(l&&w.constructor===ArrayBuffer)w=new Uint8Array(w);else if(!Array.isArray(w)&&(!l||!ArrayBuffer.isView(w)))throw new Error(t)}else throw new Error(t);O=!0}for(var D=this.blocks,U=this.byteCount,Q=w.length,z=this.blockCount,G=0,er=this.s,Z,Y;G>2]|=w[G]<>2]|=Y<>2]|=(192|Y>>6)<>2]|=(128|Y&63)<=57344?(D[Z>>2]|=(224|Y>>12)<>2]|=(128|Y>>6&63)<>2]|=(128|Y&63)<>2]|=(240|Y>>18)<>2]|=(128|Y>>12&63)<>2]|=(128|Y>>6&63)<>2]|=(128|Y&63)<=U){for(this.start=Z-U,this.block=D[z],Z=0;Z>8,k=w&255;k>0;)U.unshift(k),w=w>>8,k=w&255,++D;return O?U.push(D):U.unshift(D),this.update(U),U.length},h.prototype.encodeString=function(w){var O,k=typeof w;if(k!=="string"){if(k==="object"){if(w===null)throw new Error(t);if(l&&w.constructor===ArrayBuffer)w=new Uint8Array(w);else if(!Array.isArray(w)&&(!l||!ArrayBuffer.isView(w)))throw new Error(t)}else throw new Error(t);O=!0}var D=0,U=w.length;if(O)D=U;else for(var Q=0;Q=57344?D+=3:(z=65536+((z&1023)<<10|w.charCodeAt(++Q)&1023),D+=4)}return D+=this.encode(D*8),this.update(w),D},h.prototype.bytepad=function(w,O){for(var k=this.encode(O),D=0;D>2]|=this.padding[O&3],this.lastByteIndex===this.byteCount)for(w[0]=w[k],O=1;O>4&15]+s[G&15]+s[G>>12&15]+s[G>>8&15]+s[G>>20&15]+s[G>>16&15]+s[G>>28&15]+s[G>>24&15];Q%w===0&&(N(O),U=0)}return D&&(G=O[U],z+=s[G>>4&15]+s[G&15],D>1&&(z+=s[G>>12&15]+s[G>>8&15]),D>2&&(z+=s[G>>20&15]+s[G>>16&15])),z},h.prototype.arrayBuffer=function(){this.finalize();var w=this.blockCount,O=this.s,k=this.outputBlocks,D=this.extraBytes,U=0,Q=0,z=this.outputBits>>3,G;D?G=new ArrayBuffer(k+1<<2):G=new ArrayBuffer(z);for(var er=new Uint32Array(G);Q>8&255,z[G+2]=er>>16&255,z[G+3]=er>>24&255;Q%w===0&&N(O)}return D&&(G=Q<<2,er=O[U],z[G]=er&255,D>1&&(z[G+1]=er>>8&255),D>2&&(z[G+2]=er>>16&255)),z};function S(w,O,k){h.call(this,w,O,k)}S.prototype=new h,S.prototype.finalize=function(){return this.encode(this.outputBits,!0),h.prototype.finalize.call(this)};var N=function(w){var O,k,D,U,Q,z,G,er,Z,Y,Ht,ne,ie,qt,ae,oe,Xt,se,fe,Gt,ue,ce,jt,le,de,zt,he,be,Vt,pe,ve,Zt,ge,me,Kt,xe,ye,Qt,Ae,we,Wt,_e,Se,Yt,Me,Pe,$t,Ee,Te,en,Ce,Be,rn,Oe,Fe,Bt,Ke,Qe,ot,st,ft,ut,ct;for(D=0;D<48;D+=2)U=w[0]^w[10]^w[20]^w[30]^w[40],Q=w[1]^w[11]^w[21]^w[31]^w[41],z=w[2]^w[12]^w[22]^w[32]^w[42],G=w[3]^w[13]^w[23]^w[33]^w[43],er=w[4]^w[14]^w[24]^w[34]^w[44],Z=w[5]^w[15]^w[25]^w[35]^w[45],Y=w[6]^w[16]^w[26]^w[36]^w[46],Ht=w[7]^w[17]^w[27]^w[37]^w[47],ne=w[8]^w[18]^w[28]^w[38]^w[48],ie=w[9]^w[19]^w[29]^w[39]^w[49],O=ne^(z<<1|G>>>31),k=ie^(G<<1|z>>>31),w[0]^=O,w[1]^=k,w[10]^=O,w[11]^=k,w[20]^=O,w[21]^=k,w[30]^=O,w[31]^=k,w[40]^=O,w[41]^=k,O=U^(er<<1|Z>>>31),k=Q^(Z<<1|er>>>31),w[2]^=O,w[3]^=k,w[12]^=O,w[13]^=k,w[22]^=O,w[23]^=k,w[32]^=O,w[33]^=k,w[42]^=O,w[43]^=k,O=z^(Y<<1|Ht>>>31),k=G^(Ht<<1|Y>>>31),w[4]^=O,w[5]^=k,w[14]^=O,w[15]^=k,w[24]^=O,w[25]^=k,w[34]^=O,w[35]^=k,w[44]^=O,w[45]^=k,O=er^(ne<<1|ie>>>31),k=Z^(ie<<1|ne>>>31),w[6]^=O,w[7]^=k,w[16]^=O,w[17]^=k,w[26]^=O,w[27]^=k,w[36]^=O,w[37]^=k,w[46]^=O,w[47]^=k,O=Y^(U<<1|Q>>>31),k=Ht^(Q<<1|U>>>31),w[8]^=O,w[9]^=k,w[18]^=O,w[19]^=k,w[28]^=O,w[29]^=k,w[38]^=O,w[39]^=k,w[48]^=O,w[49]^=k,qt=w[0],ae=w[1],Pe=w[11]<<4|w[10]>>>28,$t=w[10]<<4|w[11]>>>28,be=w[20]<<3|w[21]>>>29,Vt=w[21]<<3|w[20]>>>29,st=w[31]<<9|w[30]>>>23,ft=w[30]<<9|w[31]>>>23,_e=w[40]<<18|w[41]>>>14,Se=w[41]<<18|w[40]>>>14,me=w[2]<<1|w[3]>>>31,Kt=w[3]<<1|w[2]>>>31,oe=w[13]<<12|w[12]>>>20,Xt=w[12]<<12|w[13]>>>20,Ee=w[22]<<10|w[23]>>>22,Te=w[23]<<10|w[22]>>>22,pe=w[33]<<13|w[32]>>>19,ve=w[32]<<13|w[33]>>>19,ut=w[42]<<2|w[43]>>>30,ct=w[43]<<2|w[42]>>>30,Oe=w[5]<<30|w[4]>>>2,Fe=w[4]<<30|w[5]>>>2,xe=w[14]<<6|w[15]>>>26,ye=w[15]<<6|w[14]>>>26,se=w[25]<<11|w[24]>>>21,fe=w[24]<<11|w[25]>>>21,en=w[34]<<15|w[35]>>>17,Ce=w[35]<<15|w[34]>>>17,Zt=w[45]<<29|w[44]>>>3,ge=w[44]<<29|w[45]>>>3,le=w[6]<<28|w[7]>>>4,de=w[7]<<28|w[6]>>>4,Bt=w[17]<<23|w[16]>>>9,Ke=w[16]<<23|w[17]>>>9,Qt=w[26]<<25|w[27]>>>7,Ae=w[27]<<25|w[26]>>>7,Gt=w[36]<<21|w[37]>>>11,ue=w[37]<<21|w[36]>>>11,Be=w[47]<<24|w[46]>>>8,rn=w[46]<<24|w[47]>>>8,Yt=w[8]<<27|w[9]>>>5,Me=w[9]<<27|w[8]>>>5,zt=w[18]<<20|w[19]>>>12,he=w[19]<<20|w[18]>>>12,Qe=w[29]<<7|w[28]>>>25,ot=w[28]<<7|w[29]>>>25,we=w[38]<<8|w[39]>>>24,Wt=w[39]<<8|w[38]>>>24,ce=w[48]<<14|w[49]>>>18,jt=w[49]<<14|w[48]>>>18,w[0]=qt^~oe&se,w[1]=ae^~Xt&fe,w[10]=le^~zt&be,w[11]=de^~he&Vt,w[20]=me^~xe&Qt,w[21]=Kt^~ye&Ae,w[30]=Yt^~Pe&Ee,w[31]=Me^~$t&Te,w[40]=Oe^~Bt&Qe,w[41]=Fe^~Ke&ot,w[2]=oe^~se&Gt,w[3]=Xt^~fe&ue,w[12]=zt^~be&pe,w[13]=he^~Vt&ve,w[22]=xe^~Qt&we,w[23]=ye^~Ae&Wt,w[32]=Pe^~Ee&en,w[33]=$t^~Te&Ce,w[42]=Bt^~Qe&st,w[43]=Ke^~ot&ft,w[4]=se^~Gt&ce,w[5]=fe^~ue&jt,w[14]=be^~pe&Zt,w[15]=Vt^~ve&ge,w[24]=Qt^~we&_e,w[25]=Ae^~Wt&Se,w[34]=Ee^~en&Be,w[35]=Te^~Ce&rn,w[44]=Qe^~st&ut,w[45]=ot^~ft&ct,w[6]=Gt^~ce&qt,w[7]=ue^~jt&ae,w[16]=pe^~Zt&le,w[17]=ve^~ge&de,w[26]=we^~_e&me,w[27]=Wt^~Se&Kt,w[36]=en^~Be&Yt,w[37]=Ce^~rn&Me,w[46]=st^~ut&Oe,w[47]=ft^~ct&Fe,w[8]=ce^~qt&oe,w[9]=jt^~ae&Xt,w[18]=Zt^~le&zt,w[19]=ge^~de&he,w[28]=_e^~me&xe,w[29]=Se^~Kt&ye,w[38]=Be^~Yt&Pe,w[39]=rn^~Me&$t,w[48]=ut^~Oe&Bt,w[49]=ct^~Fe&Ke,w[0]^=B[D],w[1]^=B[D+1]};if(o)Ef.exports=f;else{for(g=0;g{"use strict";var Ly=La&&La.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(La,"__esModule",{value:!0});La.keccak256=void 0;var ky=Ly(yh()),Ry=De();function Ny(t){return"0x"+ky.default.keccak_256((0,Ry.arrayify)(t))}La.keccak256=Ny});var Ah=L(Tf=>{"use strict";Object.defineProperty(Tf,"__esModule",{value:!0});Tf.version=void 0;Tf.version="rlp/5.7.0"});var Cf=L(ka=>{"use strict";Object.defineProperty(ka,"__esModule",{value:!0});ka.decode=ka.encode=void 0;var $i=De(),Dn=re(),Jy=Ah(),fn=new Dn.Logger(Jy.version);function wh(t){for(var r=[];t;)r.unshift(t&255),t>>=8;return r}function _h(t,r,e){for(var n=0,i=0;ir+1+n&&fn.throwError("child data too short",Dn.Logger.errors.BUFFER_OVERRUN,{})}return{consumed:1+n,result:i}}function Ph(t,r){if(t.length===0&&fn.throwError("data too short",Dn.Logger.errors.BUFFER_OVERRUN,{}),t[r]>=248){var e=t[r]-247;r+1+e>t.length&&fn.throwError("data short segment too short",Dn.Logger.errors.BUFFER_OVERRUN,{});var n=_h(t,r+1,e);return r+1+e+n>t.length&&fn.throwError("data long segment too short",Dn.Logger.errors.BUFFER_OVERRUN,{}),Sh(t,r,r+1+e,e+n)}else if(t[r]>=192){var i=t[r]-192;return r+1+i>t.length&&fn.throwError("data array too short",Dn.Logger.errors.BUFFER_OVERRUN,{}),Sh(t,r,r+1,i)}else if(t[r]>=184){var e=t[r]-183;r+1+e>t.length&&fn.throwError("data array too short",Dn.Logger.errors.BUFFER_OVERRUN,{});var a=_h(t,r+1,e);r+1+e+a>t.length&&fn.throwError("data array too short",Dn.Logger.errors.BUFFER_OVERRUN,{});var o=(0,$i.hexlify)(t.slice(r+1+e,r+1+e+a));return{consumed:1+e+a,result:o}}else if(t[r]>=128){var u=t[r]-128;r+1+u>t.length&&fn.throwError("data too short",Dn.Logger.errors.BUFFER_OVERRUN,{});var o=(0,$i.hexlify)(t.slice(r+1,r+1+u));return{consumed:1+u,result:o}}return{consumed:1,result:(0,$i.hexlify)(t[r])}}function Iy(t){var r=(0,$i.arrayify)(t),e=Ph(r,0);return e.consumed!==r.length&&fn.throwArgumentError("invalid rlp data","data",t),e.result}ka.decode=Iy});var Eh=L(Bf=>{"use strict";Object.defineProperty(Bf,"__esModule",{value:!0});Bf.version=void 0;Bf.version="address/5.7.0"});var pt=L(bt=>{"use strict";Object.defineProperty(bt,"__esModule",{value:!0});bt.getCreate2Address=bt.getContractAddress=bt.getIcapAddress=bt.isAddress=bt.getAddress=void 0;var In=De(),jc=hr(),zc=tt(),Uy=Cf(),Hy=re(),qy=Eh(),ii=new Hy.Logger(qy.version);function Th(t){(0,In.isHexString)(t,20)||ii.throwArgumentError("invalid address","address",t),t=t.toLowerCase();for(var r=t.substring(2).split(""),e=new Uint8Array(40),n=0;n<40;n++)e[n]=r[n].charCodeAt(0);for(var i=(0,In.arrayify)((0,zc.keccak256)(e)),n=0;n<40;n+=2)i[n>>1]>>4>=8&&(r[n]=r[n].toUpperCase()),(i[n>>1]&15)>=8&&(r[n+1]=r[n+1].toUpperCase());return"0x"+r.join("")}var Xy=9007199254740991;function Gy(t){return Math.log10?Math.log10(t):Math.log(t)/Math.LN10}var Vc={};for(Ft=0;Ft<10;Ft++)Vc[String(Ft)]=String(Ft);var Ft;for(Ft=0;Ft<26;Ft++)Vc[String.fromCharCode(65+Ft)]=String(10+Ft);var Ft,Ch=Math.floor(Gy(Xy));function Bh(t){t=t.toUpperCase(),t=t.substring(4)+t.substring(0,2)+"00";for(var r=t.split("").map(function(i){return Vc[i]}).join("");r.length>=Ch;){var e=r.substring(0,Ch);r=parseInt(e,10)%97+r.substring(e.length)}for(var n=String(98-parseInt(r,10)%97);n.length<2;)n="0"+n;return n}function ea(t){var r=null;if(typeof t!="string"&&ii.throwArgumentError("invalid address","address",t),t.match(/^(0x)?[0-9a-fA-F]{40}$/))t.substring(0,2)!=="0x"&&(t="0x"+t),r=Th(t),t.match(/([A-F].*[a-f])|([a-f].*[A-F])/)&&r!==t&&ii.throwArgumentError("bad address checksum","address",t);else if(t.match(/^XE[0-9]{2}[0-9A-Za-z]{30,31}$/)){for(t.substring(2,4)!==Bh(t)&&ii.throwArgumentError("bad icap checksum","address",t),r=(0,jc._base36To16)(t.substring(4));r.length<40;)r="0"+r;r=Th("0x"+r)}else ii.throwArgumentError("invalid address","address",t);return r}bt.getAddress=ea;function jy(t){try{return ea(t),!0}catch{}return!1}bt.isAddress=jy;function zy(t){for(var r=(0,jc._base16To36)(ea(t).substring(2)).toUpperCase();r.length<30;)r="0"+r;return"XE"+Bh("XE00"+r)+r}bt.getIcapAddress=zy;function Vy(t){var r=null;try{r=ea(t.from)}catch{ii.throwArgumentError("missing from address","transaction",t)}var e=(0,In.stripZeros)((0,In.arrayify)(jc.BigNumber.from(t.nonce).toHexString()));return ea((0,In.hexDataSlice)((0,zc.keccak256)((0,Uy.encode)([r,e])),12))}bt.getContractAddress=Vy;function Zy(t,r,e){return(0,In.hexDataLength)(r)!==32&&ii.throwArgumentError("salt must be 32 bytes","salt",r),(0,In.hexDataLength)(e)!==32&&ii.throwArgumentError("initCodeHash must be 32 bytes","initCodeHash",e),ea((0,In.hexDataSlice)((0,zc.keccak256)((0,In.concat)(["0xff",ea(t),r,e])),12))}bt.getCreate2Address=Zy});var Fh=L(Ra=>{"use strict";var Ky=Ra&&Ra.__extends||function(){var t=function(r,e){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,i){n.__proto__=i}||function(n,i){for(var a in i)Object.prototype.hasOwnProperty.call(i,a)&&(n[a]=i[a])},t(r,e)};return function(r,e){if(typeof e!="function"&&e!==null)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");t(r,e);function n(){this.constructor=r}r.prototype=e===null?Object.create(e):(n.prototype=e.prototype,new n)}}();Object.defineProperty(Ra,"__esModule",{value:!0});Ra.AddressCoder=void 0;var Oh=pt(),Qy=De(),Wy=ht(),Yy=function(t){Ky(r,t);function r(e){return t.call(this,"address","address",e,!1)||this}return r.prototype.defaultValue=function(){return"0x0000000000000000000000000000000000000000"},r.prototype.encode=function(e,n){try{n=(0,Oh.getAddress)(n)}catch(i){this._throwError(i.message,n)}return e.writeValue(n)},r.prototype.decode=function(e){return(0,Oh.getAddress)((0,Qy.hexZeroPad)(e.readValue().toHexString(),20))},r}(Wy.Coder);Ra.AddressCoder=Yy});var Lh=L(Na=>{"use strict";var $y=Na&&Na.__extends||function(){var t=function(r,e){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,i){n.__proto__=i}||function(n,i){for(var a in i)Object.prototype.hasOwnProperty.call(i,a)&&(n[a]=i[a])},t(r,e)};return function(r,e){if(typeof e!="function"&&e!==null)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");t(r,e);function n(){this.constructor=r}r.prototype=e===null?Object.create(e):(n.prototype=e.prototype,new n)}}();Object.defineProperty(Na,"__esModule",{value:!0});Na.AnonymousCoder=void 0;var e3=ht(),r3=function(t){$y(r,t);function r(e){var n=t.call(this,e.name,e.type,void 0,e.dynamic)||this;return n.coder=e,n}return r.prototype.defaultValue=function(){return this.coder.defaultValue()},r.prototype.encode=function(e,n){return this.coder.encode(e,n)},r.prototype.decode=function(e){return this.coder.decode(e)},r}(e3.Coder);Na.AnonymousCoder=r3});var Kc=L(un=>{"use strict";var t3=un&&un.__extends||function(){var t=function(r,e){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,i){n.__proto__=i}||function(n,i){for(var a in i)Object.prototype.hasOwnProperty.call(i,a)&&(n[a]=i[a])},t(r,e)};return function(r,e){if(typeof e!="function"&&e!==null)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");t(r,e);function n(){this.constructor=r}r.prototype=e===null?Object.create(e):(n.prototype=e.prototype,new n)}}();Object.defineProperty(un,"__esModule",{value:!0});un.ArrayCoder=un.unpack=un.pack=void 0;var Da=re(),n3=Oa(),Ja=new Da.Logger(n3.version),Zc=ht(),i3=Lh();function kh(t,r,e){var n=null;if(Array.isArray(e))n=e;else if(e&&typeof e=="object"){var i={};n=r.map(function(s){var p=s.localName;return p||Ja.throwError("cannot encode object for signature with missing names",Da.Logger.errors.INVALID_ARGUMENT,{argument:"values",coder:s,value:e}),i[p]&&Ja.throwError("cannot encode object for signature with duplicate names",Da.Logger.errors.INVALID_ARGUMENT,{argument:"values",coder:s,value:e}),i[p]=!0,e[p]})}else Ja.throwArgumentError("invalid tuple value","tuple",e);r.length!==n.length&&Ja.throwArgumentError("types/value length mismatch","tuple",e);var a=new Zc.Writer(t.wordSize),o=new Zc.Writer(t.wordSize),u=[];r.forEach(function(s,p){var _=n[p];if(s.dynamic){var E=o.length;s.encode(o,_);var C=a.writeUpdatableValue();u.push(function(P){C(P+E)})}else s.encode(a,_)}),u.forEach(function(s){s(a.length)});var l=t.appendWriter(a);return l+=t.appendWriter(o),l}un.pack=kh;function Rh(t,r){var e=[],n=t.subReader(0);r.forEach(function(u){var l=null;if(u.dynamic){var s=t.readValue(),p=n.subReader(s.toNumber());try{l=u.decode(p)}catch(_){if(_.code===Da.Logger.errors.BUFFER_OVERRUN)throw _;l=_,l.baseType=u.name,l.name=u.localName,l.type=u.type}}else try{l=u.decode(t)}catch(_){if(_.code===Da.Logger.errors.BUFFER_OVERRUN)throw _;l=_,l.baseType=u.name,l.name=u.localName,l.type=u.type}l!=null&&e.push(l)});var i=r.reduce(function(u,l){var s=l.localName;return s&&(u[s]||(u[s]=0),u[s]++),u},{});r.forEach(function(u,l){var s=u.localName;if(!(!s||i[s]!==1)&&(s==="length"&&(s="_length"),e[s]==null)){var p=e[l];p instanceof Error?Object.defineProperty(e,s,{enumerable:!0,get:function(){throw p}}):e[s]=p}});for(var a=function(u){var l=e[u];l instanceof Error&&Object.defineProperty(e,u,{enumerable:!0,get:function(){throw l}})},o=0;o=0?n:"")+"]",u=n===-1||e.dynamic;return a=t.call(this,"array",o,i,u)||this,a.coder=e,a.length=n,a}return r.prototype.defaultValue=function(){for(var e=this.coder.defaultValue(),n=[],i=0;ie._data.length&&Ja.throwError("insufficient data length",Da.Logger.errors.BUFFER_OVERRUN,{length:e._data.length,count:n}));for(var i=[],a=0;a{"use strict";var o3=Ia&&Ia.__extends||function(){var t=function(r,e){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,i){n.__proto__=i}||function(n,i){for(var a in i)Object.prototype.hasOwnProperty.call(i,a)&&(n[a]=i[a])},t(r,e)};return function(r,e){if(typeof e!="function"&&e!==null)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");t(r,e);function n(){this.constructor=r}r.prototype=e===null?Object.create(e):(n.prototype=e.prototype,new n)}}();Object.defineProperty(Ia,"__esModule",{value:!0});Ia.BooleanCoder=void 0;var s3=ht(),f3=function(t){o3(r,t);function r(e){return t.call(this,"bool","bool",e,!1)||this}return r.prototype.defaultValue=function(){return!1},r.prototype.encode=function(e,n){return e.writeValue(n?1:0)},r.prototype.decode=function(e){return e.coerce(this.type,!e.readValue().isZero())},r}(s3.Coder);Ia.BooleanCoder=f3});var Qc=L(ai=>{"use strict";var Jh=ai&&ai.__extends||function(){var t=function(r,e){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,i){n.__proto__=i}||function(n,i){for(var a in i)Object.prototype.hasOwnProperty.call(i,a)&&(n[a]=i[a])},t(r,e)};return function(r,e){if(typeof e!="function"&&e!==null)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");t(r,e);function n(){this.constructor=r}r.prototype=e===null?Object.create(e):(n.prototype=e.prototype,new n)}}();Object.defineProperty(ai,"__esModule",{value:!0});ai.BytesCoder=ai.DynamicBytesCoder=void 0;var Dh=De(),u3=ht(),Ih=function(t){Jh(r,t);function r(e,n){return t.call(this,e,e,n,!0)||this}return r.prototype.defaultValue=function(){return"0x"},r.prototype.encode=function(e,n){n=(0,Dh.arrayify)(n);var i=e.writeValue(n.length);return i+=e.writeBytes(n),i},r.prototype.decode=function(e){return e.readBytes(e.readValue().toNumber(),!0)},r}(u3.Coder);ai.DynamicBytesCoder=Ih;var c3=function(t){Jh(r,t);function r(e){return t.call(this,"bytes",e)||this}return r.prototype.decode=function(e){return e.coerce(this.name,(0,Dh.hexlify)(t.prototype.decode.call(this,e)))},r}(Ih);ai.BytesCoder=c3});var Hh=L(Ua=>{"use strict";var l3=Ua&&Ua.__extends||function(){var t=function(r,e){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,i){n.__proto__=i}||function(n,i){for(var a in i)Object.prototype.hasOwnProperty.call(i,a)&&(n[a]=i[a])},t(r,e)};return function(r,e){if(typeof e!="function"&&e!==null)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");t(r,e);function n(){this.constructor=r}r.prototype=e===null?Object.create(e):(n.prototype=e.prototype,new n)}}();Object.defineProperty(Ua,"__esModule",{value:!0});Ua.FixedBytesCoder=void 0;var Uh=De(),d3=ht(),h3=function(t){l3(r,t);function r(e,n){var i=this,a="bytes"+String(e);return i=t.call(this,a,a,n,!1)||this,i.size=e,i}return r.prototype.defaultValue=function(){return"0x0000000000000000000000000000000000000000000000000000000000000000".substring(0,2+this.size*2)},r.prototype.encode=function(e,n){var i=(0,Uh.arrayify)(n);return i.length!==this.size&&this._throwError("incorrect data length",n),e.writeBytes(i)},r.prototype.decode=function(e){return e.coerce(this.name,(0,Uh.hexlify)(e.readBytes(this.size)))},r}(d3.Coder);Ua.FixedBytesCoder=h3});var qh=L(Ha=>{"use strict";var b3=Ha&&Ha.__extends||function(){var t=function(r,e){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,i){n.__proto__=i}||function(n,i){for(var a in i)Object.prototype.hasOwnProperty.call(i,a)&&(n[a]=i[a])},t(r,e)};return function(r,e){if(typeof e!="function"&&e!==null)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");t(r,e);function n(){this.constructor=r}r.prototype=e===null?Object.create(e):(n.prototype=e.prototype,new n)}}();Object.defineProperty(Ha,"__esModule",{value:!0});Ha.NullCoder=void 0;var p3=ht(),v3=function(t){b3(r,t);function r(e){return t.call(this,"null","",e,!1)||this}return r.prototype.defaultValue=function(){return null},r.prototype.encode=function(e,n){return n!=null&&this._throwError("not null",n),e.writeBytes([])},r.prototype.decode=function(e){return e.readBytes(0),e.coerce(this.name,null)},r}(p3.Coder);Ha.NullCoder=v3});var Xh=L(Of=>{"use strict";Object.defineProperty(Of,"__esModule",{value:!0});Of.AddressZero=void 0;Of.AddressZero="0x0000000000000000000000000000000000000000"});var Gh=L(wr=>{"use strict";Object.defineProperty(wr,"__esModule",{value:!0});wr.MaxInt256=wr.MinInt256=wr.MaxUint256=wr.WeiPerEther=wr.Two=wr.One=wr.Zero=wr.NegativeOne=void 0;var oi=hr(),g3=oi.BigNumber.from(-1);wr.NegativeOne=g3;var m3=oi.BigNumber.from(0);wr.Zero=m3;var x3=oi.BigNumber.from(1);wr.One=x3;var y3=oi.BigNumber.from(2);wr.Two=y3;var A3=oi.BigNumber.from("1000000000000000000");wr.WeiPerEther=A3;var w3=oi.BigNumber.from("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");wr.MaxUint256=w3;var _3=oi.BigNumber.from("-0x8000000000000000000000000000000000000000000000000000000000000000");wr.MinInt256=_3;var S3=oi.BigNumber.from("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");wr.MaxInt256=S3});var jh=L(Ff=>{"use strict";Object.defineProperty(Ff,"__esModule",{value:!0});Ff.HashZero=void 0;Ff.HashZero="0x0000000000000000000000000000000000000000000000000000000000000000"});var zh=L(Lf=>{"use strict";Object.defineProperty(Lf,"__esModule",{value:!0});Lf.EtherSymbol=void 0;Lf.EtherSymbol="\u039E"});var ra=L(tr=>{"use strict";Object.defineProperty(tr,"__esModule",{value:!0});tr.EtherSymbol=tr.HashZero=tr.MaxInt256=tr.MinInt256=tr.MaxUint256=tr.WeiPerEther=tr.Two=tr.One=tr.Zero=tr.NegativeOne=tr.AddressZero=void 0;var M3=Xh();Object.defineProperty(tr,"AddressZero",{enumerable:!0,get:function(){return M3.AddressZero}});var si=Gh();Object.defineProperty(tr,"NegativeOne",{enumerable:!0,get:function(){return si.NegativeOne}});Object.defineProperty(tr,"Zero",{enumerable:!0,get:function(){return si.Zero}});Object.defineProperty(tr,"One",{enumerable:!0,get:function(){return si.One}});Object.defineProperty(tr,"Two",{enumerable:!0,get:function(){return si.Two}});Object.defineProperty(tr,"WeiPerEther",{enumerable:!0,get:function(){return si.WeiPerEther}});Object.defineProperty(tr,"MaxUint256",{enumerable:!0,get:function(){return si.MaxUint256}});Object.defineProperty(tr,"MinInt256",{enumerable:!0,get:function(){return si.MinInt256}});Object.defineProperty(tr,"MaxInt256",{enumerable:!0,get:function(){return si.MaxInt256}});var P3=jh();Object.defineProperty(tr,"HashZero",{enumerable:!0,get:function(){return P3.HashZero}});var E3=zh();Object.defineProperty(tr,"EtherSymbol",{enumerable:!0,get:function(){return E3.EtherSymbol}})});var Vh=L(qa=>{"use strict";var T3=qa&&qa.__extends||function(){var t=function(r,e){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,i){n.__proto__=i}||function(n,i){for(var a in i)Object.prototype.hasOwnProperty.call(i,a)&&(n[a]=i[a])},t(r,e)};return function(r,e){if(typeof e!="function"&&e!==null)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");t(r,e);function n(){this.constructor=r}r.prototype=e===null?Object.create(e):(n.prototype=e.prototype,new n)}}();Object.defineProperty(qa,"__esModule",{value:!0});qa.NumberCoder=void 0;var C3=hr(),kf=ra(),B3=ht(),O3=function(t){T3(r,t);function r(e,n,i){var a=this,o=(n?"int":"uint")+e*8;return a=t.call(this,o,o,i,!1)||this,a.size=e,a.signed=n,a}return r.prototype.defaultValue=function(){return 0},r.prototype.encode=function(e,n){var i=C3.BigNumber.from(n),a=kf.MaxUint256.mask(e.wordSize*8);if(this.signed){var o=a.mask(this.size*8-1);(i.gt(o)||i.lt(o.add(kf.One).mul(kf.NegativeOne)))&&this._throwError("value out-of-bounds",n)}else(i.lt(kf.Zero)||i.gt(a.mask(this.size*8)))&&this._throwError("value out-of-bounds",n);return i=i.toTwos(this.size*8).mask(this.size*8),this.signed&&(i=i.fromTwos(this.size*8).toTwos(8*e.wordSize)),e.writeValue(i)},r.prototype.decode=function(e){var n=e.readValue().mask(this.size*8);return this.signed&&(n=n.fromTwos(this.size*8)),e.coerce(this.name,n)},r}(B3.Coder);qa.NumberCoder=O3});var Zh=L(Rf=>{"use strict";Object.defineProperty(Rf,"__esModule",{value:!0});Rf.version=void 0;Rf.version="strings/5.7.0"});var Jf=L(ur=>{"use strict";Object.defineProperty(ur,"__esModule",{value:!0});ur.toUtf8CodePoints=ur.toUtf8String=ur._toUtf8String=ur._toEscapedUtf8String=ur.toUtf8Bytes=ur.Utf8ErrorFuncs=ur.Utf8ErrorReason=ur.UnicodeNormalizationForm=void 0;var Kh=De(),F3=re(),L3=Zh(),Qh=new F3.Logger(L3.version),Nf;(function(t){t.current="",t.NFC="NFC",t.NFD="NFD",t.NFKC="NFKC",t.NFKD="NFKD"})(Nf=ur.UnicodeNormalizationForm||(ur.UnicodeNormalizationForm={}));var vt;(function(t){t.UNEXPECTED_CONTINUE="unexpected continuation byte",t.BAD_PREFIX="bad codepoint prefix",t.OVERRUN="string overrun",t.MISSING_CONTINUE="missing continuation byte",t.OUT_OF_RANGE="out of UTF-8 range",t.UTF16_SURROGATE="UTF-16 surrogate",t.OVERLONG="overlong representation"})(vt=ur.Utf8ErrorReason||(ur.Utf8ErrorReason={}));function k3(t,r,e,n,i){return Qh.throwArgumentError("invalid codepoint at offset "+r+"; "+t,"bytes",e)}function Wh(t,r,e,n,i){if(t===vt.BAD_PREFIX||t===vt.UNEXPECTED_CONTINUE){for(var a=0,o=r+1;o>6===2;o++)a++;return a}return t===vt.OVERRUN?e.length-r-1:0}function R3(t,r,e,n,i){return t===vt.OVERLONG?(n.push(i),0):(n.push(65533),Wh(t,r,e,n,i))}ur.Utf8ErrorFuncs=Object.freeze({error:k3,ignore:Wh,replace:R3});function Yc(t,r){r==null&&(r=ur.Utf8ErrorFuncs.error),t=(0,Kh.arrayify)(t);for(var e=[],n=0;n>7===0){e.push(i);continue}var a=null,o=null;if((i&224)===192)a=1,o=127;else if((i&240)===224)a=2,o=2047;else if((i&248)===240)a=3,o=65535;else{(i&192)===128?n+=r(vt.UNEXPECTED_CONTINUE,n-1,t,e):n+=r(vt.BAD_PREFIX,n-1,t,e);continue}if(n-1+a>=t.length){n+=r(vt.OVERRUN,n-1,t,e);continue}for(var u=i&(1<<8-a-1)-1,l=0;l1114111){n+=r(vt.OUT_OF_RANGE,n-1-a,t,e,u);continue}if(u>=55296&&u<=57343){n+=r(vt.UTF16_SURROGATE,n-1-a,t,e,u);continue}if(u<=o){n+=r(vt.OVERLONG,n-1-a,t,e,u);continue}e.push(u)}}return e}function Yh(t,r){r===void 0&&(r=Nf.current),r!=Nf.current&&(Qh.checkNormalize(),t=t.normalize(r));for(var e=[],n=0;n>6|192),e.push(i&63|128);else if((i&64512)==55296){n++;var a=t.charCodeAt(n);if(n>=t.length||(a&64512)!==56320)throw new Error("invalid utf-8 string");var o=65536+((i&1023)<<10)+(a&1023);e.push(o>>18|240),e.push(o>>12&63|128),e.push(o>>6&63|128),e.push(o&63|128)}else e.push(i>>12|224),e.push(i>>6&63|128),e.push(i&63|128)}return(0,Kh.arrayify)(e)}ur.toUtf8Bytes=Yh;function Wc(t){var r="0000"+t.toString(16);return"\\u"+r.substring(r.length-4)}function N3(t,r){return'"'+Yc(t,r).map(function(e){if(e<256){switch(e){case 8:return"\\b";case 9:return"\\t";case 10:return"\\n";case 13:return"\\r";case 34:return'\\"';case 92:return"\\\\"}if(e>=32&&e<127)return String.fromCharCode(e)}return e<=65535?Wc(e):(e-=65536,Wc((e>>10&1023)+55296)+Wc((e&1023)+56320))}).join("")+'"'}ur._toEscapedUtf8String=N3;function $h(t){return t.map(function(r){return r<=65535?String.fromCharCode(r):(r-=65536,String.fromCharCode((r>>10&1023)+55296,(r&1023)+56320))}).join("")}ur._toUtf8String=$h;function J3(t,r){return $h(Yc(t,r))}ur.toUtf8String=J3;function D3(t,r){return r===void 0&&(r=Nf.current),Yc(Yh(t,r))}ur.toUtf8CodePoints=D3});var rb=L(Xa=>{"use strict";Object.defineProperty(Xa,"__esModule",{value:!0});Xa.parseBytes32String=Xa.formatBytes32String=void 0;var I3=ra(),$c=De(),eb=Jf();function U3(t){var r=(0,eb.toUtf8Bytes)(t);if(r.length>31)throw new Error("bytes32 string must be less than 32 bytes");return(0,$c.hexlify)((0,$c.concat)([r,I3.HashZero]).slice(0,32))}Xa.formatBytes32String=U3;function H3(t){var r=(0,$c.arrayify)(t);if(r.length!==32)throw new Error("invalid bytes32 - not 32 bytes long");if(r[31]!==0)throw new Error("invalid bytes32 string - no null terminator");for(var e=31;r[e-1]===0;)e--;return(0,eb.toUtf8String)(r.slice(0,e))}Xa.parseBytes32String=H3});var ob=L(cn=>{"use strict";Object.defineProperty(cn,"__esModule",{value:!0});cn.nameprep=cn._nameprepTableC=cn._nameprepTableB2=cn._nameprepTableA1=void 0;var rs=Jf();function q3(t){if(t.length%4!==0)throw new Error("bad data");for(var r=[],e=0;e=e&&t<=e+i.h&&(t-e)%(i.d||1)===0){if(i.e&&i.e.indexOf(t-e)!==-1)continue;return i}}return null}var X3=tb("221,13-1b,5f-,40-10,51-f,11-3,3-3,2-2,2-4,8,2,15,2d,28-8,88,48,27-,3-5,11-20,27-,8,28,3-5,12,18,b-a,1c-4,6-16,2-d,2-2,2,1b-4,17-9,8f-,10,f,1f-2,1c-34,33-14e,4,36-,13-,6-2,1a-f,4,9-,3-,17,8,2-2,5-,2,8-,3-,4-8,2-3,3,6-,16-6,2-,7-3,3-,17,8,3,3,3-,2,6-3,3-,4-a,5,2-6,10-b,4,8,2,4,17,8,3,6-,b,4,4-,2-e,2-4,b-10,4,9-,3-,17,8,3-,5-,9-2,3-,4-7,3-3,3,4-3,c-10,3,7-2,4,5-2,3,2,3-2,3-2,4-2,9,4-3,6-2,4,5-8,2-e,d-d,4,9,4,18,b,6-3,8,4,5-6,3-8,3-3,b-11,3,9,4,18,b,6-3,8,4,5-6,3-6,2,3-3,b-11,3,9,4,18,11-3,7-,4,5-8,2-7,3-3,b-11,3,13-2,19,a,2-,8-2,2-3,7,2,9-11,4-b,3b-3,1e-24,3,2-,3,2-,2-5,5,8,4,2,2-,3,e,4-,6,2,7-,b-,3-21,49,23-5,1c-3,9,25,10-,2-2f,23,6,3,8-2,5-5,1b-45,27-9,2a-,2-3,5b-4,45-4,53-5,8,40,2,5-,8,2,5-,28,2,5-,20,2,5-,8,2,5-,8,8,18,20,2,5-,8,28,14-5,1d-22,56-b,277-8,1e-2,52-e,e,8-a,18-8,15-b,e,4,3-b,5e-2,b-15,10,b-5,59-7,2b-555,9d-3,5b-5,17-,7-,27-,7-,9,2,2,2,20-,36,10,f-,7,14-,4,a,54-3,2-6,6-5,9-,1c-10,13-1d,1c-14,3c-,10-6,32-b,240-30,28-18,c-14,a0,115-,3,66-,b-76,5,5-,1d,24,2,5-2,2,8-,35-2,19,f-10,1d-3,311-37f,1b,5a-b,d7-19,d-3,41,57-,68-4,29-3,5f,29-37,2e-2,25-c,2c-2,4e-3,30,78-3,64-,20,19b7-49,51a7-59,48e-2,38-738,2ba5-5b,222f-,3c-94,8-b,6-4,1b,6,2,3,3,6d-20,16e-f,41-,37-7,2e-2,11-f,5-b,18-,b,14,5-3,6,88-,2,bf-2,7-,7-,7-,4-2,8,8-9,8-2ff,20,5-b,1c-b4,27-,27-cbb1,f7-9,28-2,b5-221,56,48,3-,2-,3-,5,d,2,5,3,42,5-,9,8,1d,5,6,2-2,8,153-3,123-3,33-27fd,a6da-5128,21f-5df,3-fffd,3-fffd,3-fffd,3-fffd,3-fffd,3-fffd,3-fffd,3-fffd,3-fffd,3-fffd,3-fffd,3,2-1d,61-ff7d"),G3="ad,34f,1806,180b,180c,180d,200b,200c,200d,2060,feff".split(",").map(function(t){return parseInt(t,16)}),j3=[{h:25,s:32,l:65},{h:30,s:32,e:[23],l:127},{h:54,s:1,e:[48],l:64,d:2},{h:14,s:1,l:57,d:2},{h:44,s:1,l:17,d:2},{h:10,s:1,e:[2,6,8],l:61,d:2},{h:16,s:1,l:68,d:2},{h:84,s:1,e:[18,24,66],l:19,d:2},{h:26,s:32,e:[17],l:435},{h:22,s:1,l:71,d:2},{h:15,s:80,l:40},{h:31,s:32,l:16},{h:32,s:1,l:80,d:2},{h:52,s:1,l:42,d:2},{h:12,s:1,l:55,d:2},{h:40,s:1,e:[38],l:15,d:2},{h:14,s:1,l:48,d:2},{h:37,s:48,l:49},{h:148,s:1,l:6351,d:2},{h:88,s:1,l:160,d:2},{h:15,s:16,l:704},{h:25,s:26,l:854},{h:25,s:32,l:55915},{h:37,s:40,l:1247},{h:25,s:-119711,l:53248},{h:25,s:-119763,l:52},{h:25,s:-119815,l:52},{h:25,s:-119867,e:[1,4,5,7,8,11,12,17],l:52},{h:25,s:-119919,l:52},{h:24,s:-119971,e:[2,7,8,17],l:52},{h:24,s:-120023,e:[2,7,13,15,16,17],l:52},{h:25,s:-120075,l:52},{h:25,s:-120127,l:52},{h:25,s:-120179,l:52},{h:25,s:-120231,l:52},{h:25,s:-120283,l:52},{h:25,s:-120335,l:52},{h:24,s:-119543,e:[17],l:56},{h:24,s:-119601,e:[17],l:58},{h:24,s:-119659,e:[17],l:58},{h:24,s:-119717,e:[17],l:58},{h:24,s:-119775,e:[17],l:58}],z3=e0("b5:3bc,c3:ff,7:73,2:253,5:254,3:256,1:257,5:259,1:25b,3:260,1:263,2:269,1:268,5:26f,1:272,2:275,7:280,3:283,5:288,3:28a,1:28b,5:292,3f:195,1:1bf,29:19e,125:3b9,8b:3b2,1:3b8,1:3c5,3:3c6,1:3c0,1a:3ba,1:3c1,1:3c3,2:3b8,1:3b5,1bc9:3b9,1c:1f76,1:1f77,f:1f7a,1:1f7b,d:1f78,1:1f79,1:1f7c,1:1f7d,107:63,5:25b,4:68,1:68,1:68,3:69,1:69,1:6c,3:6e,4:70,1:71,1:72,1:72,1:72,7:7a,2:3c9,2:7a,2:6b,1:e5,1:62,1:63,3:65,1:66,2:6d,b:3b3,1:3c0,6:64,1b574:3b8,1a:3c3,20:3b8,1a:3c3,20:3b8,1a:3c3,20:3b8,1a:3c3,20:3b8,1a:3c3"),V3=e0("179:1,2:1,2:1,5:1,2:1,a:4f,a:1,8:1,2:1,2:1,3:1,5:1,3:1,4:1,2:1,3:1,4:1,8:2,1:1,2:2,1:1,2:2,27:2,195:26,2:25,1:25,1:25,2:40,2:3f,1:3f,33:1,11:-6,1:-9,1ac7:-3a,6d:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,9:-8,1:-8,1:-8,1:-8,1:-8,1:-8,b:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,9:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,9:-8,1:-8,1:-8,1:-8,1:-8,1:-8,c:-8,2:-8,2:-8,2:-8,9:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,49:-8,1:-8,1:-4a,1:-4a,d:-56,1:-56,1:-56,1:-56,d:-8,1:-8,f:-8,1:-8,3:-7"),Z3=e0("df:00730073,51:00690307,19:02BC006E,a7:006A030C,18a:002003B9,16:03B903080301,20:03C503080301,1d7:05650582,190f:00680331,1:00740308,1:0077030A,1:0079030A,1:006102BE,b6:03C50313,2:03C503130300,2:03C503130301,2:03C503130342,2a:1F0003B9,1:1F0103B9,1:1F0203B9,1:1F0303B9,1:1F0403B9,1:1F0503B9,1:1F0603B9,1:1F0703B9,1:1F0003B9,1:1F0103B9,1:1F0203B9,1:1F0303B9,1:1F0403B9,1:1F0503B9,1:1F0603B9,1:1F0703B9,1:1F2003B9,1:1F2103B9,1:1F2203B9,1:1F2303B9,1:1F2403B9,1:1F2503B9,1:1F2603B9,1:1F2703B9,1:1F2003B9,1:1F2103B9,1:1F2203B9,1:1F2303B9,1:1F2403B9,1:1F2503B9,1:1F2603B9,1:1F2703B9,1:1F6003B9,1:1F6103B9,1:1F6203B9,1:1F6303B9,1:1F6403B9,1:1F6503B9,1:1F6603B9,1:1F6703B9,1:1F6003B9,1:1F6103B9,1:1F6203B9,1:1F6303B9,1:1F6403B9,1:1F6503B9,1:1F6603B9,1:1F6703B9,3:1F7003B9,1:03B103B9,1:03AC03B9,2:03B10342,1:03B1034203B9,5:03B103B9,6:1F7403B9,1:03B703B9,1:03AE03B9,2:03B70342,1:03B7034203B9,5:03B703B9,6:03B903080300,1:03B903080301,3:03B90342,1:03B903080342,b:03C503080300,1:03C503080301,1:03C10313,2:03C50342,1:03C503080342,b:1F7C03B9,1:03C903B9,1:03CE03B9,2:03C90342,1:03C9034203B9,5:03C903B9,ac:00720073,5b:00B00063,6:00B00066,d:006E006F,a:0073006D,1:00740065006C,1:0074006D,124f:006800700061,2:00610075,2:006F0076,b:00700061,1:006E0061,1:03BC0061,1:006D0061,1:006B0061,1:006B0062,1:006D0062,1:00670062,3:00700066,1:006E0066,1:03BC0066,4:0068007A,1:006B0068007A,1:006D0068007A,1:00670068007A,1:00740068007A,15:00700061,1:006B00700061,1:006D00700061,1:006700700061,8:00700076,1:006E0076,1:03BC0076,1:006D0076,1:006B0076,1:006D0076,1:00700077,1:006E0077,1:03BC0077,1:006D0077,1:006B0077,1:006D0077,1:006B03C9,1:006D03C9,2:00620071,3:00632215006B0067,1:0063006F002E,1:00640062,1:00670079,2:00680070,2:006B006B,1:006B006D,9:00700068,2:00700070006D,1:00700072,2:00730076,1:00770062,c723:00660066,1:00660069,1:0066006C,1:006600660069,1:00660066006C,1:00730074,1:00730074,d:05740576,1:05740565,1:0574056B,1:057E0576,1:0574056D",q3),K3=tb("80-20,2a0-,39c,32,f71,18e,7f2-f,19-7,30-4,7-5,f81-b,5,a800-20ff,4d1-1f,110,fa-6,d174-7,2e84-,ffff-,ffff-,ffff-,ffff-,ffff-,ffff-,ffff-,ffff-,ffff-,ffff-,ffff-,ffff-,2,1f-5f,ff7f-20001");function Q3(t){return t.reduce(function(r,e){return e.forEach(function(n){r.push(n)}),r},[])}function nb(t){return!!r0(t,X3)}cn._nameprepTableA1=nb;function ib(t){var r=r0(t,j3);if(r)return[t+r.s];var e=z3[t];if(e)return e;var n=V3[t];if(n)return[t+n[0]];var i=Z3[t];return i||null}cn._nameprepTableB2=ib;function ab(t){return!!r0(t,K3)}cn._nameprepTableC=ab;function W3(t){if(t.match(/^[a-z0-9-]*$/i)&&t.length<=59)return t.toLowerCase();var r=(0,rs.toUtf8CodePoints)(t);r=Q3(r.map(function(n){if(G3.indexOf(n)>=0)return[];if(n>=65024&&n<=65039)return[];var i=ib(n);return i||[n]})),r=(0,rs.toUtf8CodePoints)((0,rs._toUtf8String)(r),rs.UnicodeNormalizationForm.NFKC),r.forEach(function(n){if(ab(n))throw new Error("STRINGPREP_CONTAINS_PROHIBITED")}),r.forEach(function(n){if(nb(n))throw new Error("STRINGPREP_CONTAINS_UNASSIGNED")});var e=(0,rs._toUtf8String)(r);if(e.substring(0,1)==="-"||e.substring(2,4)==="--"||e.substring(e.length-1)==="-")throw new Error("invalid hyphen");return e}cn.nameprep=W3});var pr=L(sr=>{"use strict";Object.defineProperty(sr,"__esModule",{value:!0});sr.nameprep=sr.parseBytes32String=sr.formatBytes32String=sr.UnicodeNormalizationForm=sr.Utf8ErrorReason=sr.Utf8ErrorFuncs=sr.toUtf8String=sr.toUtf8CodePoints=sr.toUtf8Bytes=sr._toEscapedUtf8String=void 0;var sb=rb();Object.defineProperty(sr,"formatBytes32String",{enumerable:!0,get:function(){return sb.formatBytes32String}});Object.defineProperty(sr,"parseBytes32String",{enumerable:!0,get:function(){return sb.parseBytes32String}});var Y3=ob();Object.defineProperty(sr,"nameprep",{enumerable:!0,get:function(){return Y3.nameprep}});var ta=Jf();Object.defineProperty(sr,"_toEscapedUtf8String",{enumerable:!0,get:function(){return ta._toEscapedUtf8String}});Object.defineProperty(sr,"toUtf8Bytes",{enumerable:!0,get:function(){return ta.toUtf8Bytes}});Object.defineProperty(sr,"toUtf8CodePoints",{enumerable:!0,get:function(){return ta.toUtf8CodePoints}});Object.defineProperty(sr,"toUtf8String",{enumerable:!0,get:function(){return ta.toUtf8String}});Object.defineProperty(sr,"UnicodeNormalizationForm",{enumerable:!0,get:function(){return ta.UnicodeNormalizationForm}});Object.defineProperty(sr,"Utf8ErrorFuncs",{enumerable:!0,get:function(){return ta.Utf8ErrorFuncs}});Object.defineProperty(sr,"Utf8ErrorReason",{enumerable:!0,get:function(){return ta.Utf8ErrorReason}})});var ub=L(Ga=>{"use strict";var $3=Ga&&Ga.__extends||function(){var t=function(r,e){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,i){n.__proto__=i}||function(n,i){for(var a in i)Object.prototype.hasOwnProperty.call(i,a)&&(n[a]=i[a])},t(r,e)};return function(r,e){if(typeof e!="function"&&e!==null)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");t(r,e);function n(){this.constructor=r}r.prototype=e===null?Object.create(e):(n.prototype=e.prototype,new n)}}();Object.defineProperty(Ga,"__esModule",{value:!0});Ga.StringCoder=void 0;var fb=pr(),e8=Qc(),r8=function(t){$3(r,t);function r(e){return t.call(this,"string",e)||this}return r.prototype.defaultValue=function(){return""},r.prototype.encode=function(e,n){return t.prototype.encode.call(this,e,(0,fb.toUtf8Bytes)(n))},r.prototype.decode=function(e){return(0,fb.toUtf8String)(t.prototype.decode.call(this,e))},r}(e8.DynamicBytesCoder);Ga.StringCoder=r8});var lb=L(ja=>{"use strict";var t8=ja&&ja.__extends||function(){var t=function(r,e){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,i){n.__proto__=i}||function(n,i){for(var a in i)Object.prototype.hasOwnProperty.call(i,a)&&(n[a]=i[a])},t(r,e)};return function(r,e){if(typeof e!="function"&&e!==null)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");t(r,e);function n(){this.constructor=r}r.prototype=e===null?Object.create(e):(n.prototype=e.prototype,new n)}}();Object.defineProperty(ja,"__esModule",{value:!0});ja.TupleCoder=void 0;var n8=ht(),cb=Kc(),i8=function(t){t8(r,t);function r(e,n){var i=this,a=!1,o=[];e.forEach(function(l){l.dynamic&&(a=!0),o.push(l.type)});var u="tuple("+o.join(",")+")";return i=t.call(this,"tuple",u,n,a)||this,i.coders=e,i}return r.prototype.defaultValue=function(){var e=[];this.coders.forEach(function(i){e.push(i.defaultValue())});var n=this.coders.reduce(function(i,a){var o=a.localName;return o&&(i[o]||(i[o]=0),i[o]++),i},{});return this.coders.forEach(function(i,a){var o=i.localName;!o||n[o]!==1||(o==="length"&&(o="_length"),e[o]==null&&(e[o]=e[a]))}),Object.freeze(e)},r.prototype.encode=function(e,n){return(0,cb.pack)(e,this.coders,n)},r.prototype.decode=function(e){return e.coerce(this.name,(0,cb.unpack)(e,this.coders))},r}(n8.Coder);ja.TupleCoder=i8});var n0=L(za=>{"use strict";Object.defineProperty(za,"__esModule",{value:!0});za.defaultAbiCoder=za.AbiCoder=void 0;var a8=De(),o8=Ve(),hb=re(),s8=Oa(),Df=new hb.Logger(s8.version),db=ht(),f8=Fh(),u8=Kc(),c8=Nh(),l8=Qc(),d8=Hh(),h8=qh(),b8=Vh(),p8=ub(),If=lb(),t0=Pf(),v8=new RegExp(/^bytes([0-9]*)$/),g8=new RegExp(/^(u?int)([0-9]*)$/),bb=function(){function t(r){(0,o8.defineReadOnly)(this,"coerceFunc",r||null)}return t.prototype._getCoder=function(r){var e=this;switch(r.baseType){case"address":return new f8.AddressCoder(r.name);case"bool":return new c8.BooleanCoder(r.name);case"string":return new p8.StringCoder(r.name);case"bytes":return new l8.BytesCoder(r.name);case"array":return new u8.ArrayCoder(this._getCoder(r.arrayChildren),r.arrayLength,r.name);case"tuple":return new If.TupleCoder((r.components||[]).map(function(a){return e._getCoder(a)}),r.name);case"":return new h8.NullCoder(r.name)}var n=r.type.match(g8);if(n){var i=parseInt(n[2]||"256");return(i===0||i>256||i%8!==0)&&Df.throwArgumentError("invalid "+n[1]+" bit length","param",r),new b8.NumberCoder(i/8,n[1]==="int",r.name)}if(n=r.type.match(v8),n){var i=parseInt(n[1]);return(i===0||i>32)&&Df.throwArgumentError("invalid bytes length","param",r),new d8.FixedBytesCoder(i,r.name)}return Df.throwArgumentError("invalid type","type",r.type)},t.prototype._getWordSize=function(){return 32},t.prototype._getReader=function(r,e){return new db.Reader(r,this._getWordSize(),this.coerceFunc,e)},t.prototype._getWriter=function(){return new db.Writer(this._getWordSize())},t.prototype.getDefaultValue=function(r){var e=this,n=r.map(function(a){return e._getCoder(t0.ParamType.from(a))}),i=new If.TupleCoder(n,"_");return i.defaultValue()},t.prototype.encode=function(r,e){var n=this;r.length!==e.length&&Df.throwError("types/values length mismatch",hb.Logger.errors.INVALID_ARGUMENT,{count:{types:r.length,values:e.length},value:{types:r,values:e}});var i=r.map(function(u){return n._getCoder(t0.ParamType.from(u))}),a=new If.TupleCoder(i,"_"),o=this._getWriter();return a.encode(o,e),o.data},t.prototype.decode=function(r,e,n){var i=this,a=r.map(function(u){return i._getCoder(t0.ParamType.from(u))}),o=new If.TupleCoder(a,"_");return o.decode(this._getReader((0,a8.arrayify)(e),n))},t}();za.AbiCoder=bb;za.defaultAbiCoder=new bb});var i0=L(Uf=>{"use strict";Object.defineProperty(Uf,"__esModule",{value:!0});Uf.id=void 0;var m8=tt(),x8=pr();function y8(t){return(0,m8.keccak256)((0,x8.toUtf8Bytes)(t))}Uf.id=y8});var a0=L(Hf=>{"use strict";Object.defineProperty(Hf,"__esModule",{value:!0});Hf.version=void 0;Hf.version="hash/5.7.0"});var vb=L(Va=>{"use strict";Object.defineProperty(Va,"__esModule",{value:!0});Va.encode=Va.decode=void 0;var pb=De();function A8(t){return(0,pb.arrayify)(new Uint8Array(Buffer.from(t,"base64")))}Va.decode=A8;function w8(t){return Buffer.from((0,pb.arrayify)(t)).toString("base64")}Va.encode=w8});var ts=L(Za=>{"use strict";Object.defineProperty(Za,"__esModule",{value:!0});Za.encode=Za.decode=void 0;var gb=vb();Object.defineProperty(Za,"decode",{enumerable:!0,get:function(){return gb.decode}});Object.defineProperty(Za,"encode",{enumerable:!0,get:function(){return gb.encode}})});var s0=L(_r=>{"use strict";Object.defineProperty(_r,"__esModule",{value:!0});_r.read_emoji_trie=_r.read_zero_terminated_array=_r.read_mapped_map=_r.read_member_array=_r.signed=_r.read_compressed_payload=_r.read_payload=_r.decode_arithmetic=void 0;function xb(t,r){r==null&&(r=1);var e=[],n=e.forEach,i=function(a,o){n.call(a,function(u){o>0&&Array.isArray(u)?i(u,o-1):e.push(u)})};return i(t,r),e}function _8(t){for(var r={},e=0;e>--s&1}for(var E=31,C=Math.pow(2,E),P=C>>>1,B=P>>1,J=C-1,R=0,o=0;o1;){var K=X+W>>>1;V>>1|_(),H=H<<1^P,T=(T^P)<<1|P|1;I=H,j=1+T-H}var b=n-4;return q.map(function(A){switch(A-b){case 3:return b+65792+(t[l++]<<16|t[l++]<<8|t[l++]);case 2:return b+256+(t[l++]<<8|t[l++]);case 1:return b+t[l++];default:return A-1}})}_r.decode_arithmetic=yb;function Ab(t){var r=0;return function(){return t[r++]}}_r.read_payload=Ab;function S8(t){return Ab(yb(t))}_r.read_compressed_payload=S8;function wb(t){return t&1?~t>>1:t>>1}_r.signed=wb;function M8(t,r){for(var e=Array(t),n=0;n>=1;var l=a==1,s=a==2;return{branches:n,valid:o,fe0f:u,save:l,check:s}}}_r.read_emoji_trie=B8});var Mb=L(qf=>{"use strict";Object.defineProperty(qf,"__esModule",{value:!0});qf.getData=void 0;var O8=ts(),F8=s0();function L8(){return(0,F8.read_compressed_payload)((0,O8.decode)("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"))}qf.getData=L8});var Cb=L(Ka=>{"use strict";Object.defineProperty(Ka,"__esModule",{value:!0});Ka.ens_normalize=Ka.ens_normalize_post_check=void 0;var k8=pr(),R8=Mb(),Xf=(0,R8.getData)(),Gf=s0(),N8=new Set((0,Gf.read_member_array)(Xf)),J8=new Set((0,Gf.read_member_array)(Xf)),D8=(0,Gf.read_mapped_map)(Xf),I8=(0,Gf.read_emoji_trie)(Xf),Pb=45,Eb=95;function Tb(t){return(0,k8.toUtf8CodePoints)(t)}function U8(t){return t.filter(function(r){return r!=65039})}function f0(t){for(var r=0,e=t.split(".");r=0;a--)if(i[a]!==Eb)throw new Error("underscore only allowed at start");if(i.length>=4&&i.every(function(o){return o<128})&&i[2]===Pb&&i[3]===Pb)throw new Error("invalid label extension")}catch(o){throw new Error('Invalid label "'+n+'": '+o.message)}}return t}Ka.ens_normalize_post_check=f0;function H8(t){return f0(q8(t,U8))}Ka.ens_normalize=H8;function q8(t,r){for(var e=Tb(t).reverse(),n=[];e.length;){var i=G8(e);if(i){n.push.apply(n,r(i));continue}var a=e.pop();if(N8.has(a)){n.push(a);continue}if(!J8.has(a)){var o=D8[a];if(o){n.push.apply(n,o);continue}throw new Error("Disallowed codepoint: 0x"+a.toString(16).toUpperCase())}}return f0(X8(String.fromCodePoint.apply(String,n)))}function X8(t){return t.normalize("NFC")}function G8(t,r){var e,n=I8,i,a,o=[],u=t.length;r&&(r.length=0);for(var l=function(){var p=t[--u];if(n=(e=n.branches.find(function(_){return _.set.has(p)}))===null||e===void 0?void 0:e.node,!n)return"break";if(n.save)a=p;else if(n.check&&p===a)return"break";o.push(p),n.fe0f&&(o.push(65039),u>0&&t[u-1]==65039&&u--),n.valid&&(i=o.slice(),n.valid==2&&i.splice(1,1),r&&r.push.apply(r,t.slice(u).reverse()),t.length=u)};u;){var s=l();if(s==="break")break}return i}});var u0=L(ln=>{"use strict";Object.defineProperty(ln,"__esModule",{value:!0});ln.dnsEncode=ln.namehash=ln.isValidName=ln.ensNormalize=void 0;var jf=De(),Fb=pr(),Bb=tt(),j8=re(),z8=a0(),V8=new j8.Logger(z8.version),Z8=Cb(),Lb=new Uint8Array(32);Lb.fill(0);function Ob(t){if(t.length===0)throw new Error("invalid ENS name; empty component");return t}function zf(t){var r=(0,Fb.toUtf8Bytes)((0,Z8.ens_normalize)(t)),e=[];if(t.length===0)return e;for(var n=0,i=0;i=r.length)throw new Error("invalid ENS name; empty component");return e.push(Ob(r.slice(n))),e}function K8(t){return zf(t).map(function(r){return(0,Fb.toUtf8String)(r)}).join(".")}ln.ensNormalize=K8;function Q8(t){try{return zf(t).length!==0}catch{}return!1}ln.isValidName=Q8;function W8(t){typeof t!="string"&&V8.throwArgumentError("invalid ENS name; not a string","name",t);for(var r=Lb,e=zf(t);e.length;)r=(0,Bb.keccak256)((0,jf.concat)([r,(0,Bb.keccak256)(e.pop())]));return(0,jf.hexlify)(r)}ln.namehash=W8;function Y8(t){return(0,jf.hexlify)((0,jf.concat)(zf(t).map(function(r){if(r.length>63)throw new Error("invalid DNS encoded entry; length exceeds 63 bytes");var e=new Uint8Array(r.length+1);return e.set(r,1),e[0]=e.length-1,e})))+"00"}ln.dnsEncode=Y8});var kb=L(na=>{"use strict";Object.defineProperty(na,"__esModule",{value:!0});na.hashMessage=na.messagePrefix=void 0;var $8=De(),e6=tt(),c0=pr();na.messagePrefix=`Ethereum Signed Message: +`;function r6(t){return typeof t=="string"&&(t=(0,c0.toUtf8Bytes)(t)),(0,e6.keccak256)((0,$8.concat)([(0,c0.toUtf8Bytes)(na.messagePrefix),(0,c0.toUtf8Bytes)(String(t.length)),t]))}na.hashMessage=r6});var Xb=L(fi=>{"use strict";var t6=fi&&fi.__awaiter||function(t,r,e,n){function i(a){return a instanceof e?a:new e(function(o){o(a)})}return new(e||(e=Promise))(function(a,o){function u(p){try{s(n.next(p))}catch(_){o(_)}}function l(p){try{s(n.throw(p))}catch(_){o(_)}}function s(p){p.done?a(p.value):i(p.value).then(u,l)}s((n=n.apply(t,r||[])).next())})},n6=fi&&fi.__generator||function(t,r){var e={label:0,sent:function(){if(a[0]&1)throw a[1];return a[1]},trys:[],ops:[]},n,i,a,o;return o={next:u(0),throw:u(1),return:u(2)},typeof Symbol=="function"&&(o[Symbol.iterator]=function(){return this}),o;function u(s){return function(p){return l([s,p])}}function l(s){if(n)throw new TypeError("Generator is already executing.");for(;e;)try{if(n=1,i&&(a=s[0]&2?i.return:s[0]?i.throw||((a=i.return)&&a.call(i),0):i.next)&&!(a=a.call(i,s[1])).done)return a;switch(i=0,a&&(s=[s[0]&2,a.value]),s[0]){case 0:case 1:a=s;break;case 4:return e.label++,{value:s[1],done:!1};case 5:e.label++,i=s[1],s=[0];continue;case 7:s=e.ops.pop(),e.trys.pop();continue;default:if(a=e.trys,!(a=a.length>0&&a[a.length-1])&&(s[0]===6||s[0]===2)){e=0;continue}if(s[0]===3&&(!a||s[1]>a[0]&&s[1]256||r[2]&&r[2]!==String(n))&&ir.throwArgumentError("invalid numeric width","type",t);var i=s6.mask(e?n-1:n),a=e?i.add(qb).mul(o6):Hb;return function(u){var l=aa.BigNumber.from(u);return(l.lt(a)||l.gt(i))&&ir.throwArgumentError("value out-of-bounds for "+t,"value",u),(0,Br.hexZeroPad)(l.toTwos(256).toHexString(),32)}}}{var r=t.match(/^bytes(\d+)$/);if(r){var o=parseInt(r[1]);return(o===0||o>32||r[1]!==String(o))&&ir.throwArgumentError("invalid bytes width","type",t),function(l){var s=(0,Br.arrayify)(l);return s.length!==o&&ir.throwArgumentError("invalid length for "+t,"value",l),f6(l)}}}switch(t){case"address":return function(u){return(0,Br.hexZeroPad)((0,Db.getAddress)(u),32)};case"bool":return function(u){return u?u6:c6};case"bytes":return function(u){return(0,Qa.keccak256)(u)};case"string":return function(u){return(0,Ib.id)(u)}}return null}function Jb(t,r){return t+"("+r.map(function(e){var n=e.name,i=e.type;return i+" "+n}).join(",")+")"}var d6=function(){function t(r){(0,ia.defineReadOnly)(this,"types",Object.freeze((0,ia.deepCopy)(r))),(0,ia.defineReadOnly)(this,"_encoderCache",{}),(0,ia.defineReadOnly)(this,"_types",{});var e={},n={},i={};Object.keys(r).forEach(function(_){e[_]={},n[_]=[],i[_]={}});var a=function(_){var E={};r[_].forEach(function(C){E[C.name]&&ir.throwArgumentError("duplicate variable name "+JSON.stringify(C.name)+" in "+JSON.stringify(_),"types",r),E[C.name]=!0;var P=C.type.match(/^([^\x5b]*)(\x5b|$)/)[1];P===_&&ir.throwArgumentError("circular type reference to "+JSON.stringify(P),"types",r);var B=d0(P);B||(n[P]||ir.throwArgumentError("unknown type "+JSON.stringify(P),"types",r),n[P].push(_),e[_][P]=!0)})};for(var o in r)a(o);var u=Object.keys(n).filter(function(_){return n[_].length===0});u.length===0?ir.throwArgumentError("missing primary type","types",r):u.length>1&&ir.throwArgumentError("ambiguous primary types or unused types: "+u.map(function(_){return JSON.stringify(_)}).join(", "),"types",r),(0,ia.defineReadOnly)(this,"primaryType",u[0]);function l(_,E){E[_]&&ir.throwArgumentError("circular type reference to "+JSON.stringify(_),"types",r),E[_]=!0,Object.keys(e[_]).forEach(function(C){!n[C]||(l(C,E),Object.keys(E).forEach(function(P){i[P][C]=!0}))}),delete E[_]}l(this.primaryType,{});for(var s in i){var p=Object.keys(i[s]);p.sort(),this._types[s]=Jb(s,r[s])+p.map(function(_){return Jb(_,r[_])}).join("")}}return t.prototype.getEncoder=function(r){var e=this._encoderCache[r];return e||(e=this._encoderCache[r]=this._getEncoder(r)),e},t.prototype._getEncoder=function(r){var e=this;{var n=d0(r);if(n)return n}var i=r.match(/^(.*)(\x5b(\d*)\x5d)$/);if(i){var a=i[1],o=this.getEncoder(a),u=parseInt(i[3]);return function(p){u>=0&&p.length!==u&&ir.throwArgumentError("array length mismatch; expected length ${ arrayLength }","value",p);var _=p.map(o);return e._types[a]&&(_=_.map(Qa.keccak256)),(0,Qa.keccak256)((0,Br.hexConcat)(_))}}var l=this.types[r];if(l){var s=(0,Ib.id)(this._types[r]);return function(p){var _=l.map(function(E){var C=E.name,P=E.type,B=e.getEncoder(P)(p[C]);return e._types[P]?(0,Qa.keccak256)(B):B});return _.unshift(s),(0,Br.hexConcat)(_)}}return ir.throwArgumentError("unknown type: "+r,"type",r)},t.prototype.encodeType=function(r){var e=this._types[r];return e||ir.throwArgumentError("unknown type: "+JSON.stringify(r),"name",r),e},t.prototype.encodeData=function(r,e){return this.getEncoder(r)(e)},t.prototype.hashStruct=function(r,e){return(0,Qa.keccak256)(this.encodeData(r,e))},t.prototype.encode=function(r){return this.encodeData(this.primaryType,r)},t.prototype.hash=function(r){return this.hashStruct(this.primaryType,r)},t.prototype._visit=function(r,e,n){var i=this;{var a=d0(r);if(a)return n(r,e)}var o=r.match(/^(.*)(\x5b(\d*)\x5d)$/);if(o){var u=o[1],l=parseInt(o[3]);return l>=0&&e.length!==l&&ir.throwArgumentError("array length mismatch; expected length ${ arrayLength }","value",e),e.map(function(p){return i._visit(u,p,n)})}var s=this.types[r];return s?s.reduce(function(p,_){var E=_.name,C=_.type;return p[E]=i._visit(C,e[E],n),p},{}):ir.throwArgumentError("unknown type: "+r,"type",r)},t.prototype.visit=function(r,e){return this._visit(this.primaryType,r,e)},t.from=function(r){return new t(r)},t.getPrimaryType=function(r){return t.from(r).primaryType},t.hashStruct=function(r,e,n){return t.from(e).hashStruct(r,n)},t.hashDomain=function(r){var e=[];for(var n in r){var i=Rb[n];i||ir.throwArgumentError("invalid typed-data domain key: "+JSON.stringify(n),"domain",r),e.push({name:n,type:i})}return e.sort(function(a,o){return l0.indexOf(a.name)-l0.indexOf(o.name)}),t.hashStruct("EIP712Domain",{EIP712Domain:e},r)},t.encode=function(r,e,n){return(0,Br.hexConcat)(["0x1901",t.hashDomain(r),t.from(e).hash(n)])},t.hash=function(r,e,n){return(0,Qa.keccak256)(t.encode(r,e,n))},t.resolveNames=function(r,e,n,i){return t6(this,void 0,void 0,function(){var a,o,u,l,s,p,_,E;return n6(this,function(C){switch(C.label){case 0:r=(0,ia.shallowCopy)(r),a={},r.verifyingContract&&!(0,Br.isHexString)(r.verifyingContract,20)&&(a[r.verifyingContract]="0x"),o=t.from(e),o.visit(n,function(P,B){return P==="address"&&!(0,Br.isHexString)(B,20)&&(a[B]="0x"),B}),u=[];for(l in a)u.push(l);s=0,C.label=1;case 1:return s{"use strict";Object.defineProperty(Sr,"__esModule",{value:!0});Sr._TypedDataEncoder=Sr.hashMessage=Sr.messagePrefix=Sr.ensNormalize=Sr.isValidName=Sr.namehash=Sr.dnsEncode=Sr.id=void 0;var h6=i0();Object.defineProperty(Sr,"id",{enumerable:!0,get:function(){return h6.id}});var h0=u0();Object.defineProperty(Sr,"dnsEncode",{enumerable:!0,get:function(){return h0.dnsEncode}});Object.defineProperty(Sr,"isValidName",{enumerable:!0,get:function(){return h0.isValidName}});Object.defineProperty(Sr,"namehash",{enumerable:!0,get:function(){return h0.namehash}});var Gb=kb();Object.defineProperty(Sr,"hashMessage",{enumerable:!0,get:function(){return Gb.hashMessage}});Object.defineProperty(Sr,"messagePrefix",{enumerable:!0,get:function(){return Gb.messagePrefix}});var b6=u0();Object.defineProperty(Sr,"ensNormalize",{enumerable:!0,get:function(){return b6.ensNormalize}});var p6=Xb();Object.defineProperty(Sr,"_TypedDataEncoder",{enumerable:!0,get:function(){return p6.TypedDataEncoder}})});var Wb=L(Ir=>{"use strict";var Kf=Ir&&Ir.__extends||function(){var t=function(r,e){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,i){n.__proto__=i}||function(n,i){for(var a in i)Object.prototype.hasOwnProperty.call(i,a)&&(n[a]=i[a])},t(r,e)};return function(r,e){if(typeof e!="function"&&e!==null)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");t(r,e);function n(){this.constructor=r}r.prototype=e===null?Object.create(e):(n.prototype=e.prototype,new n)}}();Object.defineProperty(Ir,"__esModule",{value:!0});Ir.Interface=Ir.Indexed=Ir.ErrorDescription=Ir.TransactionDescription=Ir.LogDescription=Ir.checkResultErrors=void 0;var v6=pt(),jb=hr(),nr=De(),Vf=oa(),zb=tt(),Or=Ve(),g6=n0(),m6=ht();Object.defineProperty(Ir,"checkResultErrors",{enumerable:!0,get:function(){return m6.checkResultErrors}});var Un=Pf(),Zf=re(),x6=Oa(),ar=new Zf.Logger(x6.version),Zb=function(t){Kf(r,t);function r(){return t!==null&&t.apply(this,arguments)||this}return r}(Or.Description);Ir.LogDescription=Zb;var Kb=function(t){Kf(r,t);function r(){return t!==null&&t.apply(this,arguments)||this}return r}(Or.Description);Ir.TransactionDescription=Kb;var Qb=function(t){Kf(r,t);function r(){return t!==null&&t.apply(this,arguments)||this}return r}(Or.Description);Ir.ErrorDescription=Qb;var b0=function(t){Kf(r,t);function r(){return t!==null&&t.apply(this,arguments)||this}return r.isIndexed=function(e){return!!(e&&e._isIndexed)},r}(Or.Description);Ir.Indexed=b0;var y6={"0x08c379a0":{signature:"Error(string)",name:"Error",inputs:["string"],reason:!0},"0x4e487b71":{signature:"Panic(uint256)",name:"Panic",inputs:["uint256"]}};function Vb(t,r){var e=new Error("deferred error during ABI decoding triggered accessing "+t);return e.error=r,e}var A6=function(){function t(r){var e=this.constructor,n=this,i=[];typeof r=="string"?i=JSON.parse(r):i=r,(0,Or.defineReadOnly)(this,"fragments",i.map(function(a){return Un.Fragment.from(a)}).filter(function(a){return a!=null})),(0,Or.defineReadOnly)(this,"_abiCoder",(0,Or.getStatic)(e,"getAbiCoder")()),(0,Or.defineReadOnly)(this,"functions",{}),(0,Or.defineReadOnly)(this,"errors",{}),(0,Or.defineReadOnly)(this,"events",{}),(0,Or.defineReadOnly)(this,"structs",{}),this.fragments.forEach(function(a){var o=null;switch(a.type){case"constructor":if(n.deploy){ar.warn("duplicate definition - constructor");return}(0,Or.defineReadOnly)(n,"deploy",a);return;case"function":o=n.functions;break;case"event":o=n.events;break;case"error":o=n.errors;break;default:return}var u=a.format();if(o[u]){ar.warn("duplicate definition - "+u);return}o[u]=a}),this.deploy||(0,Or.defineReadOnly)(this,"deploy",Un.ConstructorFragment.from({payable:!1,type:"constructor"})),(0,Or.defineReadOnly)(this,"_isInterface",!0)}return t.prototype.format=function(r){r||(r=Un.FormatTypes.full),r===Un.FormatTypes.sighash&&ar.throwArgumentError("interface does not support formatting sighash","format",r);var e=this.fragments.map(function(n){return n.format(r)});return r===Un.FormatTypes.json?JSON.stringify(e.map(function(n){return JSON.parse(n)})):e},t.getAbiCoder=function(){return g6.defaultAbiCoder},t.getAddress=function(r){return(0,v6.getAddress)(r)},t.getSighash=function(r){return(0,nr.hexDataSlice)((0,Vf.id)(r.format()),0,4)},t.getEventTopic=function(r){return(0,Vf.id)(r.format())},t.prototype.getFunction=function(r){if((0,nr.isHexString)(r)){for(var e in this.functions)if(r===this.getSighash(e))return this.functions[e];ar.throwArgumentError("no matching function","sighash",r)}if(r.indexOf("(")===-1){var n=r.trim(),i=Object.keys(this.functions).filter(function(o){return o.split("(")[0]===n});return i.length===0?ar.throwArgumentError("no matching function","name",n):i.length>1&&ar.throwArgumentError("multiple matching functions","name",n),this.functions[i[0]]}var a=this.functions[Un.FunctionFragment.fromString(r).format()];return a||ar.throwArgumentError("no matching function","signature",r),a},t.prototype.getEvent=function(r){if((0,nr.isHexString)(r)){var e=r.toLowerCase();for(var n in this.events)if(e===this.getEventTopic(n))return this.events[n];ar.throwArgumentError("no matching event","topichash",e)}if(r.indexOf("(")===-1){var i=r.trim(),a=Object.keys(this.events).filter(function(u){return u.split("(")[0]===i});return a.length===0?ar.throwArgumentError("no matching event","name",i):a.length>1&&ar.throwArgumentError("multiple matching events","name",i),this.events[a[0]]}var o=this.events[Un.EventFragment.fromString(r).format()];return o||ar.throwArgumentError("no matching event","signature",r),o},t.prototype.getError=function(r){if((0,nr.isHexString)(r)){var e=(0,Or.getStatic)(this.constructor,"getSighash");for(var n in this.errors){var i=this.errors[n];if(r===e(i))return this.errors[n]}ar.throwArgumentError("no matching error","sighash",r)}if(r.indexOf("(")===-1){var a=r.trim(),o=Object.keys(this.errors).filter(function(l){return l.split("(")[0]===a});return o.length===0?ar.throwArgumentError("no matching error","name",a):o.length>1&&ar.throwArgumentError("multiple matching errors","name",a),this.errors[o[0]]}var u=this.errors[Un.FunctionFragment.fromString(r).format()];return u||ar.throwArgumentError("no matching error","signature",r),u},t.prototype.getSighash=function(r){if(typeof r=="string")try{r=this.getFunction(r)}catch(e){try{r=this.getError(r)}catch{throw e}}return(0,Or.getStatic)(this.constructor,"getSighash")(r)},t.prototype.getEventTopic=function(r){return typeof r=="string"&&(r=this.getEvent(r)),(0,Or.getStatic)(this.constructor,"getEventTopic")(r)},t.prototype._decodeParams=function(r,e){return this._abiCoder.decode(r,e)},t.prototype._encodeParams=function(r,e){return this._abiCoder.encode(r,e)},t.prototype.encodeDeploy=function(r){return this._encodeParams(this.deploy.inputs,r||[])},t.prototype.decodeErrorResult=function(r,e){typeof r=="string"&&(r=this.getError(r));var n=(0,nr.arrayify)(e);return(0,nr.hexlify)(n.slice(0,4))!==this.getSighash(r)&&ar.throwArgumentError("data signature does not match error "+r.name+".","data",(0,nr.hexlify)(n)),this._decodeParams(r.inputs,n.slice(4))},t.prototype.encodeErrorResult=function(r,e){return typeof r=="string"&&(r=this.getError(r)),(0,nr.hexlify)((0,nr.concat)([this.getSighash(r),this._encodeParams(r.inputs,e||[])]))},t.prototype.decodeFunctionData=function(r,e){typeof r=="string"&&(r=this.getFunction(r));var n=(0,nr.arrayify)(e);return(0,nr.hexlify)(n.slice(0,4))!==this.getSighash(r)&&ar.throwArgumentError("data signature does not match function "+r.name+".","data",(0,nr.hexlify)(n)),this._decodeParams(r.inputs,n.slice(4))},t.prototype.encodeFunctionData=function(r,e){return typeof r=="string"&&(r=this.getFunction(r)),(0,nr.hexlify)((0,nr.concat)([this.getSighash(r),this._encodeParams(r.inputs,e||[])]))},t.prototype.decodeFunctionResult=function(r,e){typeof r=="string"&&(r=this.getFunction(r));var n=(0,nr.arrayify)(e),i=null,a="",o=null,u=null,l=null;switch(n.length%this._abiCoder._getWordSize()){case 0:try{return this._abiCoder.decode(r.outputs,n)}catch{}break;case 4:{var s=(0,nr.hexlify)(n.slice(0,4)),p=y6[s];if(p)o=this._abiCoder.decode(p.inputs,n.slice(4)),u=p.name,l=p.signature,p.reason&&(i=o[0]),u==="Error"?a="; VM Exception while processing transaction: reverted with reason string "+JSON.stringify(o[0]):u==="Panic"&&(a="; VM Exception while processing transaction: reverted with panic code "+o[0]);else try{var _=this.getError(s);o=this._abiCoder.decode(_.inputs,n.slice(4)),u=_.name,l=_.format()}catch{}break}}return ar.throwError("call revert exception"+a,Zf.Logger.errors.CALL_EXCEPTION,{method:r.format(),data:(0,nr.hexlify)(e),errorArgs:o,errorName:u,errorSignature:l,reason:i})},t.prototype.encodeFunctionResult=function(r,e){return typeof r=="string"&&(r=this.getFunction(r)),(0,nr.hexlify)(this._abiCoder.encode(r.outputs,e||[]))},t.prototype.encodeFilterTopics=function(r,e){var n=this;typeof r=="string"&&(r=this.getEvent(r)),e.length>r.inputs.length&&ar.throwError("too many arguments for "+r.format(),Zf.Logger.errors.UNEXPECTED_ARGUMENT,{argument:"values",value:e});var i=[];r.anonymous||i.push(this.getEventTopic(r));var a=function(o,u){return o.type==="string"?(0,Vf.id)(u):o.type==="bytes"?(0,zb.keccak256)((0,nr.hexlify)(u)):(o.type==="bool"&&typeof u=="boolean"&&(u=u?"0x01":"0x00"),o.type.match(/^u?int/)&&(u=jb.BigNumber.from(u).toHexString()),o.type==="address"&&n._abiCoder.encode(["address"],[u]),(0,nr.hexZeroPad)((0,nr.hexlify)(u),32))};for(e.forEach(function(o,u){var l=r.inputs[u];if(!l.indexed){o!=null&&ar.throwArgumentError("cannot filter non-indexed parameters; must be null","contract."+l.name,o);return}o==null?i.push(null):l.baseType==="array"||l.baseType==="tuple"?ar.throwArgumentError("filtering with tuples or arrays not supported","contract."+l.name,o):Array.isArray(o)?i.push(o.map(function(s){return a(l,s)})):i.push(a(l,o))});i.length&&i[i.length-1]===null;)i.pop();return i},t.prototype.encodeEventLog=function(r,e){var n=this;typeof r=="string"&&(r=this.getEvent(r));var i=[],a=[],o=[];return r.anonymous||i.push(this.getEventTopic(r)),e.length!==r.inputs.length&&ar.throwArgumentError("event arguments/values mismatch","values",e),r.inputs.forEach(function(u,l){var s=e[l];if(u.indexed)if(u.type==="string")i.push((0,Vf.id)(s));else if(u.type==="bytes")i.push((0,zb.keccak256)(s));else{if(u.baseType==="tuple"||u.baseType==="array")throw new Error("not implemented");i.push(n._abiCoder.encode([u.type],[s]))}else a.push(u),o.push(s)}),{data:this._abiCoder.encode(a,o),topics:i}},t.prototype.decodeEventLog=function(r,e,n){if(typeof r=="string"&&(r=this.getEvent(r)),n!=null&&!r.anonymous){var i=this.getEventTopic(r);(!(0,nr.isHexString)(n[0],32)||n[0].toLowerCase()!==i)&&ar.throwError("fragment/topic mismatch",Zf.Logger.errors.INVALID_ARGUMENT,{argument:"topics[0]",expected:i,value:n[0]}),n=n.slice(1)}var a=[],o=[],u=[];r.inputs.forEach(function(B,J){B.indexed?B.type==="string"||B.type==="bytes"||B.baseType==="tuple"||B.baseType==="array"?(a.push(Un.ParamType.fromObject({type:"bytes32",name:B.name})),u.push(!0)):(a.push(B),u.push(!1)):(o.push(B),u.push(!1))});var l=n!=null?this._abiCoder.decode(a,(0,nr.concat)(n)):null,s=this._abiCoder.decode(o,e,!0),p=[],_=0,E=0;r.inputs.forEach(function(B,J){if(B.indexed)if(l==null)p[J]=new b0({_isIndexed:!0,hash:null});else if(u[J])p[J]=new b0({_isIndexed:!0,hash:l[E++]});else try{p[J]=l[E++]}catch(q){p[J]=q}else try{p[J]=s[_++]}catch(q){p[J]=q}if(B.name&&p[B.name]==null){var R=p[J];R instanceof Error?Object.defineProperty(p,B.name,{enumerable:!0,get:function(){throw Vb("property "+JSON.stringify(B.name),R)}}):p[B.name]=R}});for(var C=function(B){var J=p[B];J instanceof Error&&Object.defineProperty(p,B,{enumerable:!0,get:function(){throw Vb("index "+B,J)}})},P=0;P{"use strict";Object.defineProperty(Ze,"__esModule",{value:!0});Ze.TransactionDescription=Ze.LogDescription=Ze.checkResultErrors=Ze.Indexed=Ze.Interface=Ze.defaultAbiCoder=Ze.AbiCoder=Ze.FormatTypes=Ze.ParamType=Ze.FunctionFragment=Ze.Fragment=Ze.EventFragment=Ze.ErrorFragment=Ze.ConstructorFragment=void 0;var sa=Pf();Object.defineProperty(Ze,"ConstructorFragment",{enumerable:!0,get:function(){return sa.ConstructorFragment}});Object.defineProperty(Ze,"ErrorFragment",{enumerable:!0,get:function(){return sa.ErrorFragment}});Object.defineProperty(Ze,"EventFragment",{enumerable:!0,get:function(){return sa.EventFragment}});Object.defineProperty(Ze,"FormatTypes",{enumerable:!0,get:function(){return sa.FormatTypes}});Object.defineProperty(Ze,"Fragment",{enumerable:!0,get:function(){return sa.Fragment}});Object.defineProperty(Ze,"FunctionFragment",{enumerable:!0,get:function(){return sa.FunctionFragment}});Object.defineProperty(Ze,"ParamType",{enumerable:!0,get:function(){return sa.ParamType}});var Yb=n0();Object.defineProperty(Ze,"AbiCoder",{enumerable:!0,get:function(){return Yb.AbiCoder}});Object.defineProperty(Ze,"defaultAbiCoder",{enumerable:!0,get:function(){return Yb.defaultAbiCoder}});var ns=Wb();Object.defineProperty(Ze,"checkResultErrors",{enumerable:!0,get:function(){return ns.checkResultErrors}});Object.defineProperty(Ze,"Indexed",{enumerable:!0,get:function(){return ns.Indexed}});Object.defineProperty(Ze,"Interface",{enumerable:!0,get:function(){return ns.Interface}});Object.defineProperty(Ze,"LogDescription",{enumerable:!0,get:function(){return ns.LogDescription}});Object.defineProperty(Ze,"TransactionDescription",{enumerable:!0,get:function(){return ns.TransactionDescription}})});var $b=L(Qf=>{"use strict";Object.defineProperty(Qf,"__esModule",{value:!0});Qf.version=void 0;Qf.version="abstract-provider/5.7.0"});var Wa=L(Mr=>{"use strict";var Yf=Mr&&Mr.__extends||function(){var t=function(r,e){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,i){n.__proto__=i}||function(n,i){for(var a in i)Object.prototype.hasOwnProperty.call(i,a)&&(n[a]=i[a])},t(r,e)};return function(r,e){if(typeof e!="function"&&e!==null)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");t(r,e);function n(){this.constructor=r}r.prototype=e===null?Object.create(e):(n.prototype=e.prototype,new n)}}(),w6=Mr&&Mr.__awaiter||function(t,r,e,n){function i(a){return a instanceof e?a:new e(function(o){o(a)})}return new(e||(e=Promise))(function(a,o){function u(p){try{s(n.next(p))}catch(_){o(_)}}function l(p){try{s(n.throw(p))}catch(_){o(_)}}function s(p){p.done?a(p.value):i(p.value).then(u,l)}s((n=n.apply(t,r||[])).next())})},_6=Mr&&Mr.__generator||function(t,r){var e={label:0,sent:function(){if(a[0]&1)throw a[1];return a[1]},trys:[],ops:[]},n,i,a,o;return o={next:u(0),throw:u(1),return:u(2)},typeof Symbol=="function"&&(o[Symbol.iterator]=function(){return this}),o;function u(s){return function(p){return l([s,p])}}function l(s){if(n)throw new TypeError("Generator is already executing.");for(;e;)try{if(n=1,i&&(a=s[0]&2?i.return:s[0]?i.throw||((a=i.return)&&a.call(i),0):i.next)&&!(a=a.call(i,s[1])).done)return a;switch(i=0,a&&(s=[s[0]&2,a.value]),s[0]){case 0:case 1:a=s;break;case 4:return e.label++,{value:s[1],done:!1};case 5:e.label++,i=s[1],s=[0];continue;case 7:s=e.ops.pop(),e.trys.pop();continue;default:if(a=e.trys,!(a=a.length>0&&a[a.length-1])&&(s[0]===6||s[0]===2)){e=0;continue}if(s[0]===3&&(!a||s[1]>a[0]&&s[1]{"use strict";Object.defineProperty(eu,"__esModule",{value:!0});eu.version=void 0;eu.version="abstract-signer/5.7.0"});var as=L(mt=>{"use strict";var O6=mt&&mt.__extends||function(){var t=function(r,e){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,i){n.__proto__=i}||function(n,i){for(var a in i)Object.prototype.hasOwnProperty.call(i,a)&&(n[a]=i[a])},t(r,e)};return function(r,e){if(typeof e!="function"&&e!==null)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");t(r,e);function n(){this.constructor=r}r.prototype=e===null?Object.create(e):(n.prototype=e.prototype,new n)}}(),Lt=mt&&mt.__awaiter||function(t,r,e,n){function i(a){return a instanceof e?a:new e(function(o){o(a)})}return new(e||(e=Promise))(function(a,o){function u(p){try{s(n.next(p))}catch(_){o(_)}}function l(p){try{s(n.throw(p))}catch(_){o(_)}}function s(p){p.done?a(p.value):i(p.value).then(u,l)}s((n=n.apply(t,r||[])).next())})},kt=mt&&mt.__generator||function(t,r){var e={label:0,sent:function(){if(a[0]&1)throw a[1];return a[1]},trys:[],ops:[]},n,i,a,o;return o={next:u(0),throw:u(1),return:u(2)},typeof Symbol=="function"&&(o[Symbol.iterator]=function(){return this}),o;function u(s){return function(p){return l([s,p])}}function l(s){if(n)throw new TypeError("Generator is already executing.");for(;e;)try{if(n=1,i&&(a=s[0]&2?i.return:s[0]?i.throw||((a=i.return)&&a.call(i),0):i.next)&&!(a=a.call(i,s[1])).done)return a;switch(i=0,a&&(s=[s[0]&2,a.value]),s[0]){case 0:case 1:a=s;break;case 4:return e.label++,{value:s[1],done:!1};case 5:e.label++,i=s[1],s=[0];continue;case 7:s=e.ops.pop(),e.trys.pop();continue;default:if(a=e.trys,!(a=a.length>0&&a[a.length-1])&&(s[0]===6||s[0]===2)){e=0;continue}if(s[0]===3&&(!a||s[1]>a[0]&&s[1]=0)throw l;return gt.throwError("cannot estimate gas; transaction may fail or may require manual gas limit",Hn.Logger.errors.UNPREDICTABLE_GAS_LIMIT,{error:l,tx:e})})),e.chainId==null?e.chainId=this.getChainId():e.chainId=Promise.all([Promise.resolve(e.chainId),this.getChainId()]).then(function(l){return l[1]!==0&&l[0]!==l[1]&>.throwArgumentError("chainId address mismatch","transaction",r),l[0]}),[4,(0,ui.resolveProperties)(e)];case 6:return[2,u.sent()]}})})},t.prototype._checkProvider=function(r){this.provider||gt.throwError("missing provider",Hn.Logger.errors.UNSUPPORTED_OPERATION,{operation:r||"_checkProvider"})},t.isSigner=function(r){return!!(r&&r._isSigner)},t}();mt.Signer=rp;var R6=function(t){O6(r,t);function r(e,n){var i=t.call(this)||this;return(0,ui.defineReadOnly)(i,"address",e),(0,ui.defineReadOnly)(i,"provider",n||null),i}return r.prototype.getAddress=function(){return Promise.resolve(this.address)},r.prototype._fail=function(e,n){return Promise.resolve().then(function(){gt.throwError(e,Hn.Logger.errors.UNSUPPORTED_OPERATION,{operation:n})})},r.prototype.signMessage=function(e){return this._fail("VoidSigner cannot sign messages","signMessage")},r.prototype.signTransaction=function(e){return this._fail("VoidSigner cannot sign transactions","signTransaction")},r.prototype._signTypedData=function(e,n,i){return this._fail("VoidSigner cannot sign typed data","signTypedData")},r.prototype.connect=function(e){return new r(this.address,e)},r}(rp);mt.VoidSigner=R6});var tp=L((vE,N6)=>{N6.exports={name:"elliptic",version:"6.5.4",description:"EC cryptography",main:"lib/elliptic.js",files:["lib"],scripts:{lint:"eslint lib test","lint:fix":"npm run lint -- --fix",unit:"istanbul test _mocha --reporter=spec test/index.js",test:"npm run lint && npm run unit",version:"grunt dist && git add dist/"},repository:{type:"git",url:"git@github.com:indutny/elliptic"},keywords:["EC","Elliptic","curve","Cryptography"],author:"Fedor Indutny ",license:"MIT",bugs:{url:"https://github.com/indutny/elliptic/issues"},homepage:"https://github.com/indutny/elliptic",devDependencies:{brfs:"^2.0.2",coveralls:"^3.1.0",eslint:"^7.6.0",grunt:"^1.2.1","grunt-browserify":"^5.3.0","grunt-cli":"^1.3.2","grunt-contrib-connect":"^3.0.0","grunt-contrib-copy":"^1.0.0","grunt-contrib-uglify":"^5.0.0","grunt-mocha-istanbul":"^5.0.2","grunt-saucelabs":"^9.0.1",istanbul:"^0.4.5",mocha:"^8.0.1"},dependencies:{"bn.js":"^4.11.9",brorand:"^1.1.0","hash.js":"^1.0.0","hmac-drbg":"^1.0.1",inherits:"^2.0.4","minimalistic-assert":"^1.0.1","minimalistic-crypto-utils":"^1.0.1"}}});var dn=L((np,g0)=>{(function(t,r){"use strict";function e(T,b){if(!T)throw new Error(b||"Assertion failed")}function n(T,b){T.super_=b;var A=function(){};A.prototype=b.prototype,T.prototype=new A,T.prototype.constructor=T}function i(T,b,A){if(i.isBN(T))return T;this.negative=0,this.words=null,this.length=0,this.red=null,T!==null&&((b==="le"||b==="be")&&(A=b,b=10),this._init(T||0,b||10,A||"be"))}typeof t=="object"?t.exports=i:r.BN=i,i.BN=i,i.wordSize=26;var a;try{typeof window<"u"&&typeof window.Buffer<"u"?a=window.Buffer:a=require("buffer").Buffer}catch{}i.isBN=function(b){return b instanceof i?!0:b!==null&&typeof b=="object"&&b.constructor.wordSize===i.wordSize&&Array.isArray(b.words)},i.max=function(b,A){return b.cmp(A)>0?b:A},i.min=function(b,A){return b.cmp(A)<0?b:A},i.prototype._init=function(b,A,v){if(typeof b=="number")return this._initNumber(b,A,v);if(typeof b=="object")return this._initArray(b,A,v);A==="hex"&&(A=16),e(A===(A|0)&&A>=2&&A<=36),b=b.toString().replace(/\s+/g,"");var f=0;b[0]==="-"&&(f++,this.negative=1),f=0;f-=3)g=b[f]|b[f-1]<<8|b[f-2]<<16,this.words[d]|=g<>>26-y&67108863,y+=24,y>=26&&(y-=26,d++);else if(v==="le")for(f=0,d=0;f>>26-y&67108863,y+=24,y>=26&&(y-=26,d++);return this.strip()};function o(T,b){var A=T.charCodeAt(b);return A>=65&&A<=70?A-55:A>=97&&A<=102?A-87:A-48&15}function u(T,b,A){var v=o(T,A);return A-1>=b&&(v|=o(T,A-1)<<4),v}i.prototype._parseHex=function(b,A,v){this.length=Math.ceil((b.length-A)/6),this.words=new Array(this.length);for(var f=0;f=A;f-=2)y=u(b,A,f)<=18?(d-=18,g+=1,this.words[g]|=y>>>26):d+=8;else{var m=b.length-A;for(f=m%2===0?A+1:A;f=18?(d-=18,g+=1,this.words[g]|=y>>>26):d+=8}this.strip()};function l(T,b,A,v){for(var f=0,d=Math.min(T.length,A),g=b;g=49?f+=y-49+10:y>=17?f+=y-17+10:f+=y}return f}i.prototype._parseBase=function(b,A,v){this.words=[0],this.length=1;for(var f=0,d=1;d<=67108863;d*=A)f++;f--,d=d/A|0;for(var g=b.length-v,y=g%f,m=Math.min(g,g-y)+v,c=0,x=v;x1&&this.words[this.length-1]===0;)this.length--;return this._normSign()},i.prototype._normSign=function(){return this.length===1&&this.words[0]===0&&(this.negative=0),this},i.prototype.inspect=function(){return(this.red?""};var s=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],p=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],_=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];i.prototype.toString=function(b,A){b=b||10,A=A|0||1;var v;if(b===16||b==="hex"){v="";for(var f=0,d=0,g=0;g>>24-f&16777215,d!==0||g!==this.length-1?v=s[6-m.length]+m+v:v=m+v,f+=2,f>=26&&(f-=26,g--)}for(d!==0&&(v=d.toString(16)+v);v.length%A!==0;)v="0"+v;return this.negative!==0&&(v="-"+v),v}if(b===(b|0)&&b>=2&&b<=36){var c=p[b],x=_[b];v="";var M=this.clone();for(M.negative=0;!M.isZero();){var h=M.modn(x).toString(b);M=M.idivn(x),M.isZero()?v=h+v:v=s[c-h.length]+h+v}for(this.isZero()&&(v="0"+v);v.length%A!==0;)v="0"+v;return this.negative!==0&&(v="-"+v),v}e(!1,"Base should be between 2 and 36")},i.prototype.toNumber=function(){var b=this.words[0];return this.length===2?b+=this.words[1]*67108864:this.length===3&&this.words[2]===1?b+=4503599627370496+this.words[1]*67108864:this.length>2&&e(!1,"Number can only safely store up to 53 bits"),this.negative!==0?-b:b},i.prototype.toJSON=function(){return this.toString(16)},i.prototype.toBuffer=function(b,A){return e(typeof a<"u"),this.toArrayLike(a,b,A)},i.prototype.toArray=function(b,A){return this.toArrayLike(Array,b,A)},i.prototype.toArrayLike=function(b,A,v){var f=this.byteLength(),d=v||Math.max(1,f);e(f<=d,"byte array longer than desired length"),e(d>0,"Requested array length <= 0"),this.strip();var g=A==="le",y=new b(d),m,c,x=this.clone();if(g){for(c=0;!x.isZero();c++)m=x.andln(255),x.iushrn(8),y[c]=m;for(;c=4096&&(v+=13,A>>>=13),A>=64&&(v+=7,A>>>=7),A>=8&&(v+=4,A>>>=4),A>=2&&(v+=2,A>>>=2),v+A},i.prototype._zeroBits=function(b){if(b===0)return 26;var A=b,v=0;return(A&8191)===0&&(v+=13,A>>>=13),(A&127)===0&&(v+=7,A>>>=7),(A&15)===0&&(v+=4,A>>>=4),(A&3)===0&&(v+=2,A>>>=2),(A&1)===0&&v++,v},i.prototype.bitLength=function(){var b=this.words[this.length-1],A=this._countBits(b);return(this.length-1)*26+A};function E(T){for(var b=new Array(T.bitLength()),A=0;A>>f}return b}i.prototype.zeroBits=function(){if(this.isZero())return 0;for(var b=0,A=0;Ab.length?this.clone().ior(b):b.clone().ior(this)},i.prototype.uor=function(b){return this.length>b.length?this.clone().iuor(b):b.clone().iuor(this)},i.prototype.iuand=function(b){var A;this.length>b.length?A=b:A=this;for(var v=0;vb.length?this.clone().iand(b):b.clone().iand(this)},i.prototype.uand=function(b){return this.length>b.length?this.clone().iuand(b):b.clone().iuand(this)},i.prototype.iuxor=function(b){var A,v;this.length>b.length?(A=this,v=b):(A=b,v=this);for(var f=0;fb.length?this.clone().ixor(b):b.clone().ixor(this)},i.prototype.uxor=function(b){return this.length>b.length?this.clone().iuxor(b):b.clone().iuxor(this)},i.prototype.inotn=function(b){e(typeof b=="number"&&b>=0);var A=Math.ceil(b/26)|0,v=b%26;this._expand(A),v>0&&A--;for(var f=0;f0&&(this.words[f]=~this.words[f]&67108863>>26-v),this.strip()},i.prototype.notn=function(b){return this.clone().inotn(b)},i.prototype.setn=function(b,A){e(typeof b=="number"&&b>=0);var v=b/26|0,f=b%26;return this._expand(v+1),A?this.words[v]=this.words[v]|1<b.length?(v=this,f=b):(v=b,f=this);for(var d=0,g=0;g>>26;for(;d!==0&&g>>26;if(this.length=v.length,d!==0)this.words[this.length]=d,this.length++;else if(v!==this)for(;gb.length?this.clone().iadd(b):b.clone().iadd(this)},i.prototype.isub=function(b){if(b.negative!==0){b.negative=0;var A=this.iadd(b);return b.negative=1,A._normSign()}else if(this.negative!==0)return this.negative=0,this.iadd(b),this.negative=1,this._normSign();var v=this.cmp(b);if(v===0)return this.negative=0,this.length=1,this.words[0]=0,this;var f,d;v>0?(f=this,d=b):(f=b,d=this);for(var g=0,y=0;y>26,this.words[y]=A&67108863;for(;g!==0&&y>26,this.words[y]=A&67108863;if(g===0&&y>>26,M=m&67108863,h=Math.min(c,b.length-1),S=Math.max(0,c-T.length+1);S<=h;S++){var N=c-S|0;f=T.words[N]|0,d=b.words[S]|0,g=f*d+M,x+=g/67108864|0,M=g&67108863}A.words[c]=M|0,m=x|0}return m!==0?A.words[c]=m|0:A.length--,A.strip()}var P=function(b,A,v){var f=b.words,d=A.words,g=v.words,y=0,m,c,x,M=f[0]|0,h=M&8191,S=M>>>13,N=f[1]|0,w=N&8191,O=N>>>13,k=f[2]|0,D=k&8191,U=k>>>13,Q=f[3]|0,z=Q&8191,G=Q>>>13,er=f[4]|0,Z=er&8191,Y=er>>>13,Ht=f[5]|0,ne=Ht&8191,ie=Ht>>>13,qt=f[6]|0,ae=qt&8191,oe=qt>>>13,Xt=f[7]|0,se=Xt&8191,fe=Xt>>>13,Gt=f[8]|0,ue=Gt&8191,ce=Gt>>>13,jt=f[9]|0,le=jt&8191,de=jt>>>13,zt=d[0]|0,he=zt&8191,be=zt>>>13,Vt=d[1]|0,pe=Vt&8191,ve=Vt>>>13,Zt=d[2]|0,ge=Zt&8191,me=Zt>>>13,Kt=d[3]|0,xe=Kt&8191,ye=Kt>>>13,Qt=d[4]|0,Ae=Qt&8191,we=Qt>>>13,Wt=d[5]|0,_e=Wt&8191,Se=Wt>>>13,Yt=d[6]|0,Me=Yt&8191,Pe=Yt>>>13,$t=d[7]|0,Ee=$t&8191,Te=$t>>>13,en=d[8]|0,Ce=en&8191,Be=en>>>13,rn=d[9]|0,Oe=rn&8191,Fe=rn>>>13;v.negative=b.negative^A.negative,v.length=19,m=Math.imul(h,he),c=Math.imul(h,be),c=c+Math.imul(S,he)|0,x=Math.imul(S,be);var Bt=(y+m|0)+((c&8191)<<13)|0;y=(x+(c>>>13)|0)+(Bt>>>26)|0,Bt&=67108863,m=Math.imul(w,he),c=Math.imul(w,be),c=c+Math.imul(O,he)|0,x=Math.imul(O,be),m=m+Math.imul(h,pe)|0,c=c+Math.imul(h,ve)|0,c=c+Math.imul(S,pe)|0,x=x+Math.imul(S,ve)|0;var Ke=(y+m|0)+((c&8191)<<13)|0;y=(x+(c>>>13)|0)+(Ke>>>26)|0,Ke&=67108863,m=Math.imul(D,he),c=Math.imul(D,be),c=c+Math.imul(U,he)|0,x=Math.imul(U,be),m=m+Math.imul(w,pe)|0,c=c+Math.imul(w,ve)|0,c=c+Math.imul(O,pe)|0,x=x+Math.imul(O,ve)|0,m=m+Math.imul(h,ge)|0,c=c+Math.imul(h,me)|0,c=c+Math.imul(S,ge)|0,x=x+Math.imul(S,me)|0;var Qe=(y+m|0)+((c&8191)<<13)|0;y=(x+(c>>>13)|0)+(Qe>>>26)|0,Qe&=67108863,m=Math.imul(z,he),c=Math.imul(z,be),c=c+Math.imul(G,he)|0,x=Math.imul(G,be),m=m+Math.imul(D,pe)|0,c=c+Math.imul(D,ve)|0,c=c+Math.imul(U,pe)|0,x=x+Math.imul(U,ve)|0,m=m+Math.imul(w,ge)|0,c=c+Math.imul(w,me)|0,c=c+Math.imul(O,ge)|0,x=x+Math.imul(O,me)|0,m=m+Math.imul(h,xe)|0,c=c+Math.imul(h,ye)|0,c=c+Math.imul(S,xe)|0,x=x+Math.imul(S,ye)|0;var ot=(y+m|0)+((c&8191)<<13)|0;y=(x+(c>>>13)|0)+(ot>>>26)|0,ot&=67108863,m=Math.imul(Z,he),c=Math.imul(Z,be),c=c+Math.imul(Y,he)|0,x=Math.imul(Y,be),m=m+Math.imul(z,pe)|0,c=c+Math.imul(z,ve)|0,c=c+Math.imul(G,pe)|0,x=x+Math.imul(G,ve)|0,m=m+Math.imul(D,ge)|0,c=c+Math.imul(D,me)|0,c=c+Math.imul(U,ge)|0,x=x+Math.imul(U,me)|0,m=m+Math.imul(w,xe)|0,c=c+Math.imul(w,ye)|0,c=c+Math.imul(O,xe)|0,x=x+Math.imul(O,ye)|0,m=m+Math.imul(h,Ae)|0,c=c+Math.imul(h,we)|0,c=c+Math.imul(S,Ae)|0,x=x+Math.imul(S,we)|0;var st=(y+m|0)+((c&8191)<<13)|0;y=(x+(c>>>13)|0)+(st>>>26)|0,st&=67108863,m=Math.imul(ne,he),c=Math.imul(ne,be),c=c+Math.imul(ie,he)|0,x=Math.imul(ie,be),m=m+Math.imul(Z,pe)|0,c=c+Math.imul(Z,ve)|0,c=c+Math.imul(Y,pe)|0,x=x+Math.imul(Y,ve)|0,m=m+Math.imul(z,ge)|0,c=c+Math.imul(z,me)|0,c=c+Math.imul(G,ge)|0,x=x+Math.imul(G,me)|0,m=m+Math.imul(D,xe)|0,c=c+Math.imul(D,ye)|0,c=c+Math.imul(U,xe)|0,x=x+Math.imul(U,ye)|0,m=m+Math.imul(w,Ae)|0,c=c+Math.imul(w,we)|0,c=c+Math.imul(O,Ae)|0,x=x+Math.imul(O,we)|0,m=m+Math.imul(h,_e)|0,c=c+Math.imul(h,Se)|0,c=c+Math.imul(S,_e)|0,x=x+Math.imul(S,Se)|0;var ft=(y+m|0)+((c&8191)<<13)|0;y=(x+(c>>>13)|0)+(ft>>>26)|0,ft&=67108863,m=Math.imul(ae,he),c=Math.imul(ae,be),c=c+Math.imul(oe,he)|0,x=Math.imul(oe,be),m=m+Math.imul(ne,pe)|0,c=c+Math.imul(ne,ve)|0,c=c+Math.imul(ie,pe)|0,x=x+Math.imul(ie,ve)|0,m=m+Math.imul(Z,ge)|0,c=c+Math.imul(Z,me)|0,c=c+Math.imul(Y,ge)|0,x=x+Math.imul(Y,me)|0,m=m+Math.imul(z,xe)|0,c=c+Math.imul(z,ye)|0,c=c+Math.imul(G,xe)|0,x=x+Math.imul(G,ye)|0,m=m+Math.imul(D,Ae)|0,c=c+Math.imul(D,we)|0,c=c+Math.imul(U,Ae)|0,x=x+Math.imul(U,we)|0,m=m+Math.imul(w,_e)|0,c=c+Math.imul(w,Se)|0,c=c+Math.imul(O,_e)|0,x=x+Math.imul(O,Se)|0,m=m+Math.imul(h,Me)|0,c=c+Math.imul(h,Pe)|0,c=c+Math.imul(S,Me)|0,x=x+Math.imul(S,Pe)|0;var ut=(y+m|0)+((c&8191)<<13)|0;y=(x+(c>>>13)|0)+(ut>>>26)|0,ut&=67108863,m=Math.imul(se,he),c=Math.imul(se,be),c=c+Math.imul(fe,he)|0,x=Math.imul(fe,be),m=m+Math.imul(ae,pe)|0,c=c+Math.imul(ae,ve)|0,c=c+Math.imul(oe,pe)|0,x=x+Math.imul(oe,ve)|0,m=m+Math.imul(ne,ge)|0,c=c+Math.imul(ne,me)|0,c=c+Math.imul(ie,ge)|0,x=x+Math.imul(ie,me)|0,m=m+Math.imul(Z,xe)|0,c=c+Math.imul(Z,ye)|0,c=c+Math.imul(Y,xe)|0,x=x+Math.imul(Y,ye)|0,m=m+Math.imul(z,Ae)|0,c=c+Math.imul(z,we)|0,c=c+Math.imul(G,Ae)|0,x=x+Math.imul(G,we)|0,m=m+Math.imul(D,_e)|0,c=c+Math.imul(D,Se)|0,c=c+Math.imul(U,_e)|0,x=x+Math.imul(U,Se)|0,m=m+Math.imul(w,Me)|0,c=c+Math.imul(w,Pe)|0,c=c+Math.imul(O,Me)|0,x=x+Math.imul(O,Pe)|0,m=m+Math.imul(h,Ee)|0,c=c+Math.imul(h,Te)|0,c=c+Math.imul(S,Ee)|0,x=x+Math.imul(S,Te)|0;var ct=(y+m|0)+((c&8191)<<13)|0;y=(x+(c>>>13)|0)+(ct>>>26)|0,ct&=67108863,m=Math.imul(ue,he),c=Math.imul(ue,be),c=c+Math.imul(ce,he)|0,x=Math.imul(ce,be),m=m+Math.imul(se,pe)|0,c=c+Math.imul(se,ve)|0,c=c+Math.imul(fe,pe)|0,x=x+Math.imul(fe,ve)|0,m=m+Math.imul(ae,ge)|0,c=c+Math.imul(ae,me)|0,c=c+Math.imul(oe,ge)|0,x=x+Math.imul(oe,me)|0,m=m+Math.imul(ne,xe)|0,c=c+Math.imul(ne,ye)|0,c=c+Math.imul(ie,xe)|0,x=x+Math.imul(ie,ye)|0,m=m+Math.imul(Z,Ae)|0,c=c+Math.imul(Z,we)|0,c=c+Math.imul(Y,Ae)|0,x=x+Math.imul(Y,we)|0,m=m+Math.imul(z,_e)|0,c=c+Math.imul(z,Se)|0,c=c+Math.imul(G,_e)|0,x=x+Math.imul(G,Se)|0,m=m+Math.imul(D,Me)|0,c=c+Math.imul(D,Pe)|0,c=c+Math.imul(U,Me)|0,x=x+Math.imul(U,Pe)|0,m=m+Math.imul(w,Ee)|0,c=c+Math.imul(w,Te)|0,c=c+Math.imul(O,Ee)|0,x=x+Math.imul(O,Te)|0,m=m+Math.imul(h,Ce)|0,c=c+Math.imul(h,Be)|0,c=c+Math.imul(S,Ce)|0,x=x+Math.imul(S,Be)|0;var Ii=(y+m|0)+((c&8191)<<13)|0;y=(x+(c>>>13)|0)+(Ii>>>26)|0,Ii&=67108863,m=Math.imul(le,he),c=Math.imul(le,be),c=c+Math.imul(de,he)|0,x=Math.imul(de,be),m=m+Math.imul(ue,pe)|0,c=c+Math.imul(ue,ve)|0,c=c+Math.imul(ce,pe)|0,x=x+Math.imul(ce,ve)|0,m=m+Math.imul(se,ge)|0,c=c+Math.imul(se,me)|0,c=c+Math.imul(fe,ge)|0,x=x+Math.imul(fe,me)|0,m=m+Math.imul(ae,xe)|0,c=c+Math.imul(ae,ye)|0,c=c+Math.imul(oe,xe)|0,x=x+Math.imul(oe,ye)|0,m=m+Math.imul(ne,Ae)|0,c=c+Math.imul(ne,we)|0,c=c+Math.imul(ie,Ae)|0,x=x+Math.imul(ie,we)|0,m=m+Math.imul(Z,_e)|0,c=c+Math.imul(Z,Se)|0,c=c+Math.imul(Y,_e)|0,x=x+Math.imul(Y,Se)|0,m=m+Math.imul(z,Me)|0,c=c+Math.imul(z,Pe)|0,c=c+Math.imul(G,Me)|0,x=x+Math.imul(G,Pe)|0,m=m+Math.imul(D,Ee)|0,c=c+Math.imul(D,Te)|0,c=c+Math.imul(U,Ee)|0,x=x+Math.imul(U,Te)|0,m=m+Math.imul(w,Ce)|0,c=c+Math.imul(w,Be)|0,c=c+Math.imul(O,Ce)|0,x=x+Math.imul(O,Be)|0,m=m+Math.imul(h,Oe)|0,c=c+Math.imul(h,Fe)|0,c=c+Math.imul(S,Oe)|0,x=x+Math.imul(S,Fe)|0;var Ui=(y+m|0)+((c&8191)<<13)|0;y=(x+(c>>>13)|0)+(Ui>>>26)|0,Ui&=67108863,m=Math.imul(le,pe),c=Math.imul(le,ve),c=c+Math.imul(de,pe)|0,x=Math.imul(de,ve),m=m+Math.imul(ue,ge)|0,c=c+Math.imul(ue,me)|0,c=c+Math.imul(ce,ge)|0,x=x+Math.imul(ce,me)|0,m=m+Math.imul(se,xe)|0,c=c+Math.imul(se,ye)|0,c=c+Math.imul(fe,xe)|0,x=x+Math.imul(fe,ye)|0,m=m+Math.imul(ae,Ae)|0,c=c+Math.imul(ae,we)|0,c=c+Math.imul(oe,Ae)|0,x=x+Math.imul(oe,we)|0,m=m+Math.imul(ne,_e)|0,c=c+Math.imul(ne,Se)|0,c=c+Math.imul(ie,_e)|0,x=x+Math.imul(ie,Se)|0,m=m+Math.imul(Z,Me)|0,c=c+Math.imul(Z,Pe)|0,c=c+Math.imul(Y,Me)|0,x=x+Math.imul(Y,Pe)|0,m=m+Math.imul(z,Ee)|0,c=c+Math.imul(z,Te)|0,c=c+Math.imul(G,Ee)|0,x=x+Math.imul(G,Te)|0,m=m+Math.imul(D,Ce)|0,c=c+Math.imul(D,Be)|0,c=c+Math.imul(U,Ce)|0,x=x+Math.imul(U,Be)|0,m=m+Math.imul(w,Oe)|0,c=c+Math.imul(w,Fe)|0,c=c+Math.imul(O,Oe)|0,x=x+Math.imul(O,Fe)|0;var Hi=(y+m|0)+((c&8191)<<13)|0;y=(x+(c>>>13)|0)+(Hi>>>26)|0,Hi&=67108863,m=Math.imul(le,ge),c=Math.imul(le,me),c=c+Math.imul(de,ge)|0,x=Math.imul(de,me),m=m+Math.imul(ue,xe)|0,c=c+Math.imul(ue,ye)|0,c=c+Math.imul(ce,xe)|0,x=x+Math.imul(ce,ye)|0,m=m+Math.imul(se,Ae)|0,c=c+Math.imul(se,we)|0,c=c+Math.imul(fe,Ae)|0,x=x+Math.imul(fe,we)|0,m=m+Math.imul(ae,_e)|0,c=c+Math.imul(ae,Se)|0,c=c+Math.imul(oe,_e)|0,x=x+Math.imul(oe,Se)|0,m=m+Math.imul(ne,Me)|0,c=c+Math.imul(ne,Pe)|0,c=c+Math.imul(ie,Me)|0,x=x+Math.imul(ie,Pe)|0,m=m+Math.imul(Z,Ee)|0,c=c+Math.imul(Z,Te)|0,c=c+Math.imul(Y,Ee)|0,x=x+Math.imul(Y,Te)|0,m=m+Math.imul(z,Ce)|0,c=c+Math.imul(z,Be)|0,c=c+Math.imul(G,Ce)|0,x=x+Math.imul(G,Be)|0,m=m+Math.imul(D,Oe)|0,c=c+Math.imul(D,Fe)|0,c=c+Math.imul(U,Oe)|0,x=x+Math.imul(U,Fe)|0;var qi=(y+m|0)+((c&8191)<<13)|0;y=(x+(c>>>13)|0)+(qi>>>26)|0,qi&=67108863,m=Math.imul(le,xe),c=Math.imul(le,ye),c=c+Math.imul(de,xe)|0,x=Math.imul(de,ye),m=m+Math.imul(ue,Ae)|0,c=c+Math.imul(ue,we)|0,c=c+Math.imul(ce,Ae)|0,x=x+Math.imul(ce,we)|0,m=m+Math.imul(se,_e)|0,c=c+Math.imul(se,Se)|0,c=c+Math.imul(fe,_e)|0,x=x+Math.imul(fe,Se)|0,m=m+Math.imul(ae,Me)|0,c=c+Math.imul(ae,Pe)|0,c=c+Math.imul(oe,Me)|0,x=x+Math.imul(oe,Pe)|0,m=m+Math.imul(ne,Ee)|0,c=c+Math.imul(ne,Te)|0,c=c+Math.imul(ie,Ee)|0,x=x+Math.imul(ie,Te)|0,m=m+Math.imul(Z,Ce)|0,c=c+Math.imul(Z,Be)|0,c=c+Math.imul(Y,Ce)|0,x=x+Math.imul(Y,Be)|0,m=m+Math.imul(z,Oe)|0,c=c+Math.imul(z,Fe)|0,c=c+Math.imul(G,Oe)|0,x=x+Math.imul(G,Fe)|0;var Xi=(y+m|0)+((c&8191)<<13)|0;y=(x+(c>>>13)|0)+(Xi>>>26)|0,Xi&=67108863,m=Math.imul(le,Ae),c=Math.imul(le,we),c=c+Math.imul(de,Ae)|0,x=Math.imul(de,we),m=m+Math.imul(ue,_e)|0,c=c+Math.imul(ue,Se)|0,c=c+Math.imul(ce,_e)|0,x=x+Math.imul(ce,Se)|0,m=m+Math.imul(se,Me)|0,c=c+Math.imul(se,Pe)|0,c=c+Math.imul(fe,Me)|0,x=x+Math.imul(fe,Pe)|0,m=m+Math.imul(ae,Ee)|0,c=c+Math.imul(ae,Te)|0,c=c+Math.imul(oe,Ee)|0,x=x+Math.imul(oe,Te)|0,m=m+Math.imul(ne,Ce)|0,c=c+Math.imul(ne,Be)|0,c=c+Math.imul(ie,Ce)|0,x=x+Math.imul(ie,Be)|0,m=m+Math.imul(Z,Oe)|0,c=c+Math.imul(Z,Fe)|0,c=c+Math.imul(Y,Oe)|0,x=x+Math.imul(Y,Fe)|0;var Gi=(y+m|0)+((c&8191)<<13)|0;y=(x+(c>>>13)|0)+(Gi>>>26)|0,Gi&=67108863,m=Math.imul(le,_e),c=Math.imul(le,Se),c=c+Math.imul(de,_e)|0,x=Math.imul(de,Se),m=m+Math.imul(ue,Me)|0,c=c+Math.imul(ue,Pe)|0,c=c+Math.imul(ce,Me)|0,x=x+Math.imul(ce,Pe)|0,m=m+Math.imul(se,Ee)|0,c=c+Math.imul(se,Te)|0,c=c+Math.imul(fe,Ee)|0,x=x+Math.imul(fe,Te)|0,m=m+Math.imul(ae,Ce)|0,c=c+Math.imul(ae,Be)|0,c=c+Math.imul(oe,Ce)|0,x=x+Math.imul(oe,Be)|0,m=m+Math.imul(ne,Oe)|0,c=c+Math.imul(ne,Fe)|0,c=c+Math.imul(ie,Oe)|0,x=x+Math.imul(ie,Fe)|0;var ji=(y+m|0)+((c&8191)<<13)|0;y=(x+(c>>>13)|0)+(ji>>>26)|0,ji&=67108863,m=Math.imul(le,Me),c=Math.imul(le,Pe),c=c+Math.imul(de,Me)|0,x=Math.imul(de,Pe),m=m+Math.imul(ue,Ee)|0,c=c+Math.imul(ue,Te)|0,c=c+Math.imul(ce,Ee)|0,x=x+Math.imul(ce,Te)|0,m=m+Math.imul(se,Ce)|0,c=c+Math.imul(se,Be)|0,c=c+Math.imul(fe,Ce)|0,x=x+Math.imul(fe,Be)|0,m=m+Math.imul(ae,Oe)|0,c=c+Math.imul(ae,Fe)|0,c=c+Math.imul(oe,Oe)|0,x=x+Math.imul(oe,Fe)|0;var zi=(y+m|0)+((c&8191)<<13)|0;y=(x+(c>>>13)|0)+(zi>>>26)|0,zi&=67108863,m=Math.imul(le,Ee),c=Math.imul(le,Te),c=c+Math.imul(de,Ee)|0,x=Math.imul(de,Te),m=m+Math.imul(ue,Ce)|0,c=c+Math.imul(ue,Be)|0,c=c+Math.imul(ce,Ce)|0,x=x+Math.imul(ce,Be)|0,m=m+Math.imul(se,Oe)|0,c=c+Math.imul(se,Fe)|0,c=c+Math.imul(fe,Oe)|0,x=x+Math.imul(fe,Fe)|0;var Vi=(y+m|0)+((c&8191)<<13)|0;y=(x+(c>>>13)|0)+(Vi>>>26)|0,Vi&=67108863,m=Math.imul(le,Ce),c=Math.imul(le,Be),c=c+Math.imul(de,Ce)|0,x=Math.imul(de,Be),m=m+Math.imul(ue,Oe)|0,c=c+Math.imul(ue,Fe)|0,c=c+Math.imul(ce,Oe)|0,x=x+Math.imul(ce,Fe)|0;var Zi=(y+m|0)+((c&8191)<<13)|0;y=(x+(c>>>13)|0)+(Zi>>>26)|0,Zi&=67108863,m=Math.imul(le,Oe),c=Math.imul(le,Fe),c=c+Math.imul(de,Oe)|0,x=Math.imul(de,Fe);var Ki=(y+m|0)+((c&8191)<<13)|0;return y=(x+(c>>>13)|0)+(Ki>>>26)|0,Ki&=67108863,g[0]=Bt,g[1]=Ke,g[2]=Qe,g[3]=ot,g[4]=st,g[5]=ft,g[6]=ut,g[7]=ct,g[8]=Ii,g[9]=Ui,g[10]=Hi,g[11]=qi,g[12]=Xi,g[13]=Gi,g[14]=ji,g[15]=zi,g[16]=Vi,g[17]=Zi,g[18]=Ki,y!==0&&(g[19]=y,v.length++),v};Math.imul||(P=C);function B(T,b,A){A.negative=b.negative^T.negative,A.length=T.length+b.length;for(var v=0,f=0,d=0;d>>26)|0,f+=g>>>26,g&=67108863}A.words[d]=y,v=g,g=f}return v!==0?A.words[d]=v:A.length--,A.strip()}function J(T,b,A){var v=new R;return v.mulp(T,b,A)}i.prototype.mulTo=function(b,A){var v,f=this.length+b.length;return this.length===10&&b.length===10?v=P(this,b,A):f<63?v=C(this,b,A):f<1024?v=B(this,b,A):v=J(this,b,A),v};function R(T,b){this.x=T,this.y=b}R.prototype.makeRBT=function(b){for(var A=new Array(b),v=i.prototype._countBits(b)-1,f=0;f>=1;return f},R.prototype.permute=function(b,A,v,f,d,g){for(var y=0;y>>1)d++;return 1<>>13,v[2*g+1]=d&8191,d=d>>>13;for(g=2*A;g>=26,A+=f/67108864|0,A+=d>>>26,this.words[v]=d&67108863}return A!==0&&(this.words[v]=A,this.length++),this},i.prototype.muln=function(b){return this.clone().imuln(b)},i.prototype.sqr=function(){return this.mul(this)},i.prototype.isqr=function(){return this.imul(this.clone())},i.prototype.pow=function(b){var A=E(b);if(A.length===0)return new i(1);for(var v=this,f=0;f=0);var A=b%26,v=(b-A)/26,f=67108863>>>26-A<<26-A,d;if(A!==0){var g=0;for(d=0;d>>26-A}g&&(this.words[d]=g,this.length++)}if(v!==0){for(d=this.length-1;d>=0;d--)this.words[d+v]=this.words[d];for(d=0;d=0);var f;A?f=(A-A%26)/26:f=0;var d=b%26,g=Math.min((b-d)/26,this.length),y=67108863^67108863>>>d<g)for(this.length-=g,c=0;c=0&&(x!==0||c>=f);c--){var M=this.words[c]|0;this.words[c]=x<<26-d|M>>>d,x=M&y}return m&&x!==0&&(m.words[m.length++]=x),this.length===0&&(this.words[0]=0,this.length=1),this.strip()},i.prototype.ishrn=function(b,A,v){return e(this.negative===0),this.iushrn(b,A,v)},i.prototype.shln=function(b){return this.clone().ishln(b)},i.prototype.ushln=function(b){return this.clone().iushln(b)},i.prototype.shrn=function(b){return this.clone().ishrn(b)},i.prototype.ushrn=function(b){return this.clone().iushrn(b)},i.prototype.testn=function(b){e(typeof b=="number"&&b>=0);var A=b%26,v=(b-A)/26,f=1<=0);var A=b%26,v=(b-A)/26;if(e(this.negative===0,"imaskn works only with positive numbers"),this.length<=v)return this;if(A!==0&&v++,this.length=Math.min(v,this.length),A!==0){var f=67108863^67108863>>>A<=67108864;A++)this.words[A]-=67108864,A===this.length-1?this.words[A+1]=1:this.words[A+1]++;return this.length=Math.max(this.length,A+1),this},i.prototype.isubn=function(b){if(e(typeof b=="number"),e(b<67108864),b<0)return this.iaddn(-b);if(this.negative!==0)return this.negative=0,this.iaddn(b),this.negative=1,this;if(this.words[0]-=b,this.length===1&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var A=0;A>26)-(m/67108864|0),this.words[d+v]=g&67108863}for(;d>26,this.words[d+v]=g&67108863;if(y===0)return this.strip();for(e(y===-1),y=0,d=0;d>26,this.words[d]=g&67108863;return this.negative=1,this.strip()},i.prototype._wordDiv=function(b,A){var v=this.length-b.length,f=this.clone(),d=b,g=d.words[d.length-1]|0,y=this._countBits(g);v=26-y,v!==0&&(d=d.ushln(v),f.iushln(v),g=d.words[d.length-1]|0);var m=f.length-d.length,c;if(A!=="mod"){c=new i(null),c.length=m+1,c.words=new Array(c.length);for(var x=0;x=0;h--){var S=(f.words[d.length+h]|0)*67108864+(f.words[d.length+h-1]|0);for(S=Math.min(S/g|0,67108863),f._ishlnsubmul(d,S,h);f.negative!==0;)S--,f.negative=0,f._ishlnsubmul(d,1,h),f.isZero()||(f.negative^=1);c&&(c.words[h]=S)}return c&&c.strip(),f.strip(),A!=="div"&&v!==0&&f.iushrn(v),{div:c||null,mod:f}},i.prototype.divmod=function(b,A,v){if(e(!b.isZero()),this.isZero())return{div:new i(0),mod:new i(0)};var f,d,g;return this.negative!==0&&b.negative===0?(g=this.neg().divmod(b,A),A!=="mod"&&(f=g.div.neg()),A!=="div"&&(d=g.mod.neg(),v&&d.negative!==0&&d.iadd(b)),{div:f,mod:d}):this.negative===0&&b.negative!==0?(g=this.divmod(b.neg(),A),A!=="mod"&&(f=g.div.neg()),{div:f,mod:g.mod}):(this.negative&b.negative)!==0?(g=this.neg().divmod(b.neg(),A),A!=="div"&&(d=g.mod.neg(),v&&d.negative!==0&&d.isub(b)),{div:g.div,mod:d}):b.length>this.length||this.cmp(b)<0?{div:new i(0),mod:this}:b.length===1?A==="div"?{div:this.divn(b.words[0]),mod:null}:A==="mod"?{div:null,mod:new i(this.modn(b.words[0]))}:{div:this.divn(b.words[0]),mod:new i(this.modn(b.words[0]))}:this._wordDiv(b,A)},i.prototype.div=function(b){return this.divmod(b,"div",!1).div},i.prototype.mod=function(b){return this.divmod(b,"mod",!1).mod},i.prototype.umod=function(b){return this.divmod(b,"mod",!0).mod},i.prototype.divRound=function(b){var A=this.divmod(b);if(A.mod.isZero())return A.div;var v=A.div.negative!==0?A.mod.isub(b):A.mod,f=b.ushrn(1),d=b.andln(1),g=v.cmp(f);return g<0||d===1&&g===0?A.div:A.div.negative!==0?A.div.isubn(1):A.div.iaddn(1)},i.prototype.modn=function(b){e(b<=67108863);for(var A=(1<<26)%b,v=0,f=this.length-1;f>=0;f--)v=(A*v+(this.words[f]|0))%b;return v},i.prototype.idivn=function(b){e(b<=67108863);for(var A=0,v=this.length-1;v>=0;v--){var f=(this.words[v]|0)+A*67108864;this.words[v]=f/b|0,A=f%b}return this.strip()},i.prototype.divn=function(b){return this.clone().idivn(b)},i.prototype.egcd=function(b){e(b.negative===0),e(!b.isZero());var A=this,v=b.clone();A.negative!==0?A=A.umod(b):A=A.clone();for(var f=new i(1),d=new i(0),g=new i(0),y=new i(1),m=0;A.isEven()&&v.isEven();)A.iushrn(1),v.iushrn(1),++m;for(var c=v.clone(),x=A.clone();!A.isZero();){for(var M=0,h=1;(A.words[0]&h)===0&&M<26;++M,h<<=1);if(M>0)for(A.iushrn(M);M-- >0;)(f.isOdd()||d.isOdd())&&(f.iadd(c),d.isub(x)),f.iushrn(1),d.iushrn(1);for(var S=0,N=1;(v.words[0]&N)===0&&S<26;++S,N<<=1);if(S>0)for(v.iushrn(S);S-- >0;)(g.isOdd()||y.isOdd())&&(g.iadd(c),y.isub(x)),g.iushrn(1),y.iushrn(1);A.cmp(v)>=0?(A.isub(v),f.isub(g),d.isub(y)):(v.isub(A),g.isub(f),y.isub(d))}return{a:g,b:y,gcd:v.iushln(m)}},i.prototype._invmp=function(b){e(b.negative===0),e(!b.isZero());var A=this,v=b.clone();A.negative!==0?A=A.umod(b):A=A.clone();for(var f=new i(1),d=new i(0),g=v.clone();A.cmpn(1)>0&&v.cmpn(1)>0;){for(var y=0,m=1;(A.words[0]&m)===0&&y<26;++y,m<<=1);if(y>0)for(A.iushrn(y);y-- >0;)f.isOdd()&&f.iadd(g),f.iushrn(1);for(var c=0,x=1;(v.words[0]&x)===0&&c<26;++c,x<<=1);if(c>0)for(v.iushrn(c);c-- >0;)d.isOdd()&&d.iadd(g),d.iushrn(1);A.cmp(v)>=0?(A.isub(v),f.isub(d)):(v.isub(A),d.isub(f))}var M;return A.cmpn(1)===0?M=f:M=d,M.cmpn(0)<0&&M.iadd(b),M},i.prototype.gcd=function(b){if(this.isZero())return b.abs();if(b.isZero())return this.abs();var A=this.clone(),v=b.clone();A.negative=0,v.negative=0;for(var f=0;A.isEven()&&v.isEven();f++)A.iushrn(1),v.iushrn(1);do{for(;A.isEven();)A.iushrn(1);for(;v.isEven();)v.iushrn(1);var d=A.cmp(v);if(d<0){var g=A;A=v,v=g}else if(d===0||v.cmpn(1)===0)break;A.isub(v)}while(!0);return v.iushln(f)},i.prototype.invm=function(b){return this.egcd(b).a.umod(b)},i.prototype.isEven=function(){return(this.words[0]&1)===0},i.prototype.isOdd=function(){return(this.words[0]&1)===1},i.prototype.andln=function(b){return this.words[0]&b},i.prototype.bincn=function(b){e(typeof b=="number");var A=b%26,v=(b-A)/26,f=1<>>26,y&=67108863,this.words[g]=y}return d!==0&&(this.words[g]=d,this.length++),this},i.prototype.isZero=function(){return this.length===1&&this.words[0]===0},i.prototype.cmpn=function(b){var A=b<0;if(this.negative!==0&&!A)return-1;if(this.negative===0&&A)return 1;this.strip();var v;if(this.length>1)v=1;else{A&&(b=-b),e(b<=67108863,"Number is too big");var f=this.words[0]|0;v=f===b?0:fb.length)return 1;if(this.length=0;v--){var f=this.words[v]|0,d=b.words[v]|0;if(f!==d){fd&&(A=1);break}}return A},i.prototype.gtn=function(b){return this.cmpn(b)===1},i.prototype.gt=function(b){return this.cmp(b)===1},i.prototype.gten=function(b){return this.cmpn(b)>=0},i.prototype.gte=function(b){return this.cmp(b)>=0},i.prototype.ltn=function(b){return this.cmpn(b)===-1},i.prototype.lt=function(b){return this.cmp(b)===-1},i.prototype.lten=function(b){return this.cmpn(b)<=0},i.prototype.lte=function(b){return this.cmp(b)<=0},i.prototype.eqn=function(b){return this.cmpn(b)===0},i.prototype.eq=function(b){return this.cmp(b)===0},i.red=function(b){return new K(b)},i.prototype.toRed=function(b){return e(!this.red,"Already a number in reduction context"),e(this.negative===0,"red works only with positives"),b.convertTo(this)._forceRed(b)},i.prototype.fromRed=function(){return e(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},i.prototype._forceRed=function(b){return this.red=b,this},i.prototype.forceRed=function(b){return e(!this.red,"Already a number in reduction context"),this._forceRed(b)},i.prototype.redAdd=function(b){return e(this.red,"redAdd works only with red numbers"),this.red.add(this,b)},i.prototype.redIAdd=function(b){return e(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,b)},i.prototype.redSub=function(b){return e(this.red,"redSub works only with red numbers"),this.red.sub(this,b)},i.prototype.redISub=function(b){return e(this.red,"redISub works only with red numbers"),this.red.isub(this,b)},i.prototype.redShl=function(b){return e(this.red,"redShl works only with red numbers"),this.red.shl(this,b)},i.prototype.redMul=function(b){return e(this.red,"redMul works only with red numbers"),this.red._verify2(this,b),this.red.mul(this,b)},i.prototype.redIMul=function(b){return e(this.red,"redMul works only with red numbers"),this.red._verify2(this,b),this.red.imul(this,b)},i.prototype.redSqr=function(){return e(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},i.prototype.redISqr=function(){return e(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},i.prototype.redSqrt=function(){return e(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},i.prototype.redInvm=function(){return e(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},i.prototype.redNeg=function(){return e(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},i.prototype.redPow=function(b){return e(this.red&&!b.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,b)};var q={k256:null,p224:null,p192:null,p25519:null};function I(T,b){this.name=T,this.p=new i(b,16),this.n=this.p.bitLength(),this.k=new i(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}I.prototype._tmp=function(){var b=new i(null);return b.words=new Array(Math.ceil(this.n/13)),b},I.prototype.ireduce=function(b){var A=b,v;do this.split(A,this.tmp),A=this.imulK(A),A=A.iadd(this.tmp),v=A.bitLength();while(v>this.n);var f=v0?A.isub(this.p):A.strip!==void 0?A.strip():A._strip(),A},I.prototype.split=function(b,A){b.iushrn(this.n,0,A)},I.prototype.imulK=function(b){return b.imul(this.k)};function j(){I.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}n(j,I),j.prototype.split=function(b,A){for(var v=4194303,f=Math.min(b.length,9),d=0;d>>22,g=y}g>>>=22,b.words[d-10]=g,g===0&&b.length>10?b.length-=10:b.length-=9},j.prototype.imulK=function(b){b.words[b.length]=0,b.words[b.length+1]=0,b.length+=2;for(var A=0,v=0;v>>=26,b.words[v]=d,A=f}return A!==0&&(b.words[b.length++]=A),b},i._prime=function(b){if(q[b])return q[b];var A;if(b==="k256")A=new j;else if(b==="p224")A=new V;else if(b==="p192")A=new X;else if(b==="p25519")A=new W;else throw new Error("Unknown prime "+b);return q[b]=A,A};function K(T){if(typeof T=="string"){var b=i._prime(T);this.m=b.p,this.prime=b}else e(T.gtn(1),"modulus must be greater than 1"),this.m=T,this.prime=null}K.prototype._verify1=function(b){e(b.negative===0,"red works only with positives"),e(b.red,"red works only with red numbers")},K.prototype._verify2=function(b,A){e((b.negative|A.negative)===0,"red works only with positives"),e(b.red&&b.red===A.red,"red works only with red numbers")},K.prototype.imod=function(b){return this.prime?this.prime.ireduce(b)._forceRed(this):b.umod(this.m)._forceRed(this)},K.prototype.neg=function(b){return b.isZero()?b.clone():this.m.sub(b)._forceRed(this)},K.prototype.add=function(b,A){this._verify2(b,A);var v=b.add(A);return v.cmp(this.m)>=0&&v.isub(this.m),v._forceRed(this)},K.prototype.iadd=function(b,A){this._verify2(b,A);var v=b.iadd(A);return v.cmp(this.m)>=0&&v.isub(this.m),v},K.prototype.sub=function(b,A){this._verify2(b,A);var v=b.sub(A);return v.cmpn(0)<0&&v.iadd(this.m),v._forceRed(this)},K.prototype.isub=function(b,A){this._verify2(b,A);var v=b.isub(A);return v.cmpn(0)<0&&v.iadd(this.m),v},K.prototype.shl=function(b,A){return this._verify1(b),this.imod(b.ushln(A))},K.prototype.imul=function(b,A){return this._verify2(b,A),this.imod(b.imul(A))},K.prototype.mul=function(b,A){return this._verify2(b,A),this.imod(b.mul(A))},K.prototype.isqr=function(b){return this.imul(b,b.clone())},K.prototype.sqr=function(b){return this.mul(b,b)},K.prototype.sqrt=function(b){if(b.isZero())return b.clone();var A=this.m.andln(3);if(e(A%2===1),A===3){var v=this.m.add(new i(1)).iushrn(2);return this.pow(b,v)}for(var f=this.m.subn(1),d=0;!f.isZero()&&f.andln(1)===0;)d++,f.iushrn(1);e(!f.isZero());var g=new i(1).toRed(this),y=g.redNeg(),m=this.m.subn(1).iushrn(1),c=this.m.bitLength();for(c=new i(2*c*c).toRed(this);this.pow(c,m).cmp(y)!==0;)c.redIAdd(y);for(var x=this.pow(c,f),M=this.pow(b,f.addn(1).iushrn(1)),h=this.pow(b,f),S=d;h.cmp(g)!==0;){for(var N=h,w=0;N.cmp(g)!==0;w++)N=N.redSqr();e(w=0;d--){for(var x=A.words[d],M=c-1;M>=0;M--){var h=x>>M&1;if(g!==f[0]&&(g=this.sqr(g)),h===0&&y===0){m=0;continue}y<<=1,y|=h,m++,!(m!==v&&(d!==0||M!==0))&&(g=this.mul(g,f[y]),m=0,y=0)}c=26}return g},K.prototype.convertTo=function(b){var A=b.umod(this.m);return A===b?A.clone():A},K.prototype.convertFrom=function(b){var A=b.clone();return A.red=null,A},i.mont=function(b){return new H(b)};function H(T){K.call(this,T),this.shift=this.m.bitLength(),this.shift%26!==0&&(this.shift+=26-this.shift%26),this.r=new i(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}n(H,K),H.prototype.convertTo=function(b){return this.imod(b.ushln(this.shift))},H.prototype.convertFrom=function(b){var A=this.imod(b.mul(this.rinv));return A.red=null,A},H.prototype.imul=function(b,A){if(b.isZero()||A.isZero())return b.words[0]=0,b.length=1,b;var v=b.imul(A),f=v.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),d=v.isub(f).iushrn(this.shift),g=d;return d.cmp(this.m)>=0?g=d.isub(this.m):d.cmpn(0)<0&&(g=d.iadd(this.m)),g._forceRed(this)},H.prototype.mul=function(b,A){if(b.isZero()||A.isZero())return new i(0)._forceRed(this);var v=b.mul(A),f=v.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),d=v.isub(f).iushrn(this.shift),g=d;return d.cmp(this.m)>=0?g=d.isub(this.m):d.cmpn(0)<0&&(g=d.iadd(this.m)),g._forceRed(this)},H.prototype.invm=function(b){var A=this.imod(b._invmp(this.m).mul(this.r2));return A._forceRed(this)}})(typeof g0>"u"||g0,np)});var ci=L((gE,ap)=>{ap.exports=ip;function ip(t,r){if(!t)throw new Error(r||"Assertion failed")}ip.equal=function(r,e,n){if(r!=e)throw new Error(n||"Assertion failed: "+r+" != "+e)}});var m0=L(fp=>{"use strict";var ru=fp;function J6(t,r){if(Array.isArray(t))return t.slice();if(!t)return[];var e=[];if(typeof t!="string"){for(var n=0;n>8,o=i&255;a?e.push(a,o):e.push(o)}return e}ru.toArray=J6;function op(t){return t.length===1?"0"+t:t}ru.zero2=op;function sp(t){for(var r="",e=0;e{"use strict";var Rt=up,D6=dn(),I6=ci(),tu=m0();Rt.assert=I6;Rt.toArray=tu.toArray;Rt.zero2=tu.zero2;Rt.toHex=tu.toHex;Rt.encode=tu.encode;function U6(t,r,e){var n=new Array(Math.max(t.bitLength(),e)+1);n.fill(0);for(var i=1<(i>>1)-1?u=(i>>1)-l:u=l,a.isubn(u)):u=0,n[o]=u,a.iushrn(1)}return n}Rt.getNAF=U6;function H6(t,r){var e=[[],[]];t=t.clone(),r=r.clone();for(var n=0,i=0,a;t.cmpn(-n)>0||r.cmpn(-i)>0;){var o=t.andln(3)+n&3,u=r.andln(3)+i&3;o===3&&(o=-1),u===3&&(u=-1);var l;(o&1)===0?l=0:(a=t.andln(7)+n&7,(a===3||a===5)&&u===2?l=-o:l=o),e[0].push(l);var s;(u&1)===0?s=0:(a=r.andln(7)+i&7,(a===3||a===5)&&o===2?s=-u:s=u),e[1].push(s),2*n===l+1&&(n=1-n),2*i===s+1&&(i=1-i),t.iushrn(1),r.iushrn(1)}return e}Rt.getJSF=H6;function q6(t,r,e){var n="_"+r;t.prototype[r]=function(){return this[n]!==void 0?this[n]:this[n]=e.call(this)}}Rt.cachedProperty=q6;function X6(t){return typeof t=="string"?Rt.toArray(t,"hex"):t}Rt.parseBytes=X6;function G6(t){return new D6(t,"hex","le")}Rt.intFromLE=G6});var w0=L((yE,A0)=>{var x0;A0.exports=function(r){return x0||(x0=new li(null)),x0.generate(r)};function li(t){this.rand=t}A0.exports.Rand=li;li.prototype.generate=function(r){return this._rand(r)};li.prototype._rand=function(r){if(this.rand.getBytes)return this.rand.getBytes(r);for(var e=new Uint8Array(r),n=0;n{"use strict";var fa=dn(),os=nt(),nu=os.getNAF,j6=os.getJSF,iu=os.assert;function di(t,r){this.type=t,this.p=new fa(r.p,16),this.red=r.prime?fa.red(r.prime):fa.mont(this.p),this.zero=new fa(0).toRed(this.red),this.one=new fa(1).toRed(this.red),this.two=new fa(2).toRed(this.red),this.n=r.n&&new fa(r.n,16),this.g=r.g&&this.pointFromJSON(r.g,r.gRed),this._wnafT1=new Array(4),this._wnafT2=new Array(4),this._wnafT3=new Array(4),this._wnafT4=new Array(4),this._bitLength=this.n?this.n.bitLength():0;var e=this.n&&this.p.div(this.n);!e||e.cmpn(100)>0?this.redN=null:(this._maxwellTrick=!0,this.redN=this.n.toRed(this.red))}cp.exports=di;di.prototype.point=function(){throw new Error("Not implemented")};di.prototype.validate=function(){throw new Error("Not implemented")};di.prototype._fixedNafMul=function(r,e){iu(r.precomputed);var n=r._getDoubles(),i=nu(e,1,this._bitLength),a=(1<=u;s--)l=(l<<1)+i[s];o.push(l)}for(var p=this.jpoint(null,null,null),_=this.jpoint(null,null,null),E=a;E>0;E--){for(u=0;u=0;l--){for(var s=0;l>=0&&o[l]===0;l--)s++;if(l>=0&&s++,u=u.dblp(s),l<0)break;var p=o[l];iu(p!==0),r.type==="affine"?p>0?u=u.mixedAdd(a[p-1>>1]):u=u.mixedAdd(a[-p-1>>1].neg()):p>0?u=u.add(a[p-1>>1]):u=u.add(a[-p-1>>1].neg())}return r.type==="affine"?u.toP():u};di.prototype._wnafMulAdd=function(r,e,n,i,a){var o=this._wnafT1,u=this._wnafT2,l=this._wnafT3,s=0,p,_,E;for(p=0;p=1;p-=2){var P=p-1,B=p;if(o[P]!==1||o[B]!==1){l[P]=nu(n[P],o[P],this._bitLength),l[B]=nu(n[B],o[B],this._bitLength),s=Math.max(l[P].length,s),s=Math.max(l[B].length,s);continue}var J=[e[P],null,null,e[B]];e[P].y.cmp(e[B].y)===0?(J[1]=e[P].add(e[B]),J[2]=e[P].toJ().mixedAdd(e[B].neg())):e[P].y.cmp(e[B].y.redNeg())===0?(J[1]=e[P].toJ().mixedAdd(e[B]),J[2]=e[P].add(e[B].neg())):(J[1]=e[P].toJ().mixedAdd(e[B]),J[2]=e[P].toJ().mixedAdd(e[B].neg()));var R=[-3,-1,-5,-7,0,7,5,1,3],q=j6(n[P],n[B]);for(s=Math.max(q[0].length,s),l[P]=new Array(s),l[B]=new Array(s),_=0;_=0;p--){for(var W=0;p>=0;){var K=!0;for(_=0;_=0&&W++,V=V.dblp(W),p<0)break;for(_=0;_0?E=u[_][H-1>>1]:H<0&&(E=u[_][-H-1>>1].neg()),E.type==="affine"?V=V.mixedAdd(E):V=V.add(E))}}for(p=0;p=Math.ceil((r.bitLength()+1)/e.step):!1};xt.prototype._getDoubles=function(r,e){if(this.precomputed&&this.precomputed.doubles)return this.precomputed.doubles;for(var n=[this],i=this,a=0;a{typeof Object.create=="function"?_0.exports=function(r,e){e&&(r.super_=e,r.prototype=Object.create(e.prototype,{constructor:{value:r,enumerable:!1,writable:!0,configurable:!0}}))}:_0.exports=function(r,e){if(e){r.super_=e;var n=function(){};n.prototype=e.prototype,r.prototype=new n,r.prototype.constructor=r}}});var fs=L((_E,M0)=>{try{if(S0=require("util"),typeof S0.inherits!="function")throw"";M0.exports=S0.inherits}catch{M0.exports=lp()}var S0});var hp=L((SE,dp)=>{"use strict";var z6=nt(),fr=dn(),P0=fs(),Ya=ss(),V6=z6.assert;function yt(t){Ya.call(this,"short",t),this.a=new fr(t.a,16).toRed(this.red),this.b=new fr(t.b,16).toRed(this.red),this.tinv=this.two.redInvm(),this.zeroA=this.a.fromRed().cmpn(0)===0,this.threeA=this.a.fromRed().sub(this.p).cmpn(-3)===0,this.endo=this._getEndomorphism(t),this._endoWnafT1=new Array(4),this._endoWnafT2=new Array(4)}P0(yt,Ya);dp.exports=yt;yt.prototype._getEndomorphism=function(r){if(!(!this.zeroA||!this.g||!this.n||this.p.modn(3)!==1)){var e,n;if(r.beta)e=new fr(r.beta,16).toRed(this.red);else{var i=this._getEndoRoots(this.p);e=i[0].cmp(i[1])<0?i[0]:i[1],e=e.toRed(this.red)}if(r.lambda)n=new fr(r.lambda,16);else{var a=this._getEndoRoots(this.n);this.g.mul(a[0]).x.cmp(this.g.x.redMul(e))===0?n=a[0]:(n=a[1],V6(this.g.mul(n).x.cmp(this.g.x.redMul(e))===0))}var o;return r.basis?o=r.basis.map(function(u){return{a:new fr(u.a,16),b:new fr(u.b,16)}}):o=this._getEndoBasis(n),{beta:e,lambda:n,basis:o}}};yt.prototype._getEndoRoots=function(r){var e=r===this.p?this.red:fr.mont(r),n=new fr(2).toRed(e).redInvm(),i=n.redNeg(),a=new fr(3).toRed(e).redNeg().redSqrt().redMul(n),o=i.redAdd(a).fromRed(),u=i.redSub(a).fromRed();return[o,u]};yt.prototype._getEndoBasis=function(r){for(var e=this.n.ushrn(Math.floor(this.n.bitLength()/2)),n=r,i=this.n.clone(),a=new fr(1),o=new fr(0),u=new fr(0),l=new fr(1),s,p,_,E,C,P,B,J=0,R,q;n.cmpn(0)!==0;){var I=i.div(n);R=i.sub(I.mul(n)),q=u.sub(I.mul(a));var j=l.sub(I.mul(o));if(!_&&R.cmp(e)<0)s=B.neg(),p=a,_=R.neg(),E=q;else if(_&&++J===2)break;B=R,i=n,n=R,u=a,a=q,l=o,o=j}C=R.neg(),P=q;var V=_.sqr().add(E.sqr()),X=C.sqr().add(P.sqr());return X.cmp(V)>=0&&(C=s,P=p),_.negative&&(_=_.neg(),E=E.neg()),C.negative&&(C=C.neg(),P=P.neg()),[{a:_,b:E},{a:C,b:P}]};yt.prototype._endoSplit=function(r){var e=this.endo.basis,n=e[0],i=e[1],a=i.b.mul(r).divRound(this.n),o=n.b.neg().mul(r).divRound(this.n),u=a.mul(n.a),l=o.mul(i.a),s=a.mul(n.b),p=o.mul(i.b),_=r.sub(u).sub(l),E=s.add(p).neg();return{k1:_,k2:E}};yt.prototype.pointFromX=function(r,e){r=new fr(r,16),r.red||(r=r.toRed(this.red));var n=r.redSqr().redMul(r).redIAdd(r.redMul(this.a)).redIAdd(this.b),i=n.redSqrt();if(i.redSqr().redSub(n).cmp(this.zero)!==0)throw new Error("invalid point");var a=i.fromRed().isOdd();return(e&&!a||!e&&a)&&(i=i.redNeg()),this.point(r,i)};yt.prototype.validate=function(r){if(r.inf)return!0;var e=r.x,n=r.y,i=this.a.redMul(e),a=e.redSqr().redMul(e).redIAdd(i).redIAdd(this.b);return n.redSqr().redISub(a).cmpn(0)===0};yt.prototype._endoWnafMulAdd=function(r,e,n){for(var i=this._endoWnafT1,a=this._endoWnafT2,o=0;o":""};Pr.prototype.isInfinity=function(){return this.inf};Pr.prototype.add=function(r){if(this.inf)return r;if(r.inf)return this;if(this.eq(r))return this.dbl();if(this.neg().eq(r))return this.curve.point(null,null);if(this.x.cmp(r.x)===0)return this.curve.point(null,null);var e=this.y.redSub(r.y);e.cmpn(0)!==0&&(e=e.redMul(this.x.redSub(r.x).redInvm()));var n=e.redSqr().redISub(this.x).redISub(r.x),i=e.redMul(this.x.redSub(n)).redISub(this.y);return this.curve.point(n,i)};Pr.prototype.dbl=function(){if(this.inf)return this;var r=this.y.redAdd(this.y);if(r.cmpn(0)===0)return this.curve.point(null,null);var e=this.curve.a,n=this.x.redSqr(),i=r.redInvm(),a=n.redAdd(n).redIAdd(n).redIAdd(e).redMul(i),o=a.redSqr().redISub(this.x.redAdd(this.x)),u=a.redMul(this.x.redSub(o)).redISub(this.y);return this.curve.point(o,u)};Pr.prototype.getX=function(){return this.x.fromRed()};Pr.prototype.getY=function(){return this.y.fromRed()};Pr.prototype.mul=function(r){return r=new fr(r,16),this.isInfinity()?this:this._hasDoubles(r)?this.curve._fixedNafMul(this,r):this.curve.endo?this.curve._endoWnafMulAdd([this],[r]):this.curve._wnafMul(this,r)};Pr.prototype.mulAdd=function(r,e,n){var i=[this,e],a=[r,n];return this.curve.endo?this.curve._endoWnafMulAdd(i,a):this.curve._wnafMulAdd(1,i,a,2)};Pr.prototype.jmulAdd=function(r,e,n){var i=[this,e],a=[r,n];return this.curve.endo?this.curve._endoWnafMulAdd(i,a,!0):this.curve._wnafMulAdd(1,i,a,2,!0)};Pr.prototype.eq=function(r){return this===r||this.inf===r.inf&&(this.inf||this.x.cmp(r.x)===0&&this.y.cmp(r.y)===0)};Pr.prototype.neg=function(r){if(this.inf)return this;var e=this.curve.point(this.x,this.y.redNeg());if(r&&this.precomputed){var n=this.precomputed,i=function(a){return a.neg()};e.precomputed={naf:n.naf&&{wnd:n.naf.wnd,points:n.naf.points.map(i)},doubles:n.doubles&&{step:n.doubles.step,points:n.doubles.points.map(i)}}}return e};Pr.prototype.toJ=function(){if(this.inf)return this.curve.jpoint(null,null,null);var r=this.curve.jpoint(this.x,this.y,this.curve.one);return r};function Fr(t,r,e,n){Ya.BasePoint.call(this,t,"jacobian"),r===null&&e===null&&n===null?(this.x=this.curve.one,this.y=this.curve.one,this.z=new fr(0)):(this.x=new fr(r,16),this.y=new fr(e,16),this.z=new fr(n,16)),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)),this.zOne=this.z===this.curve.one}P0(Fr,Ya.BasePoint);yt.prototype.jpoint=function(r,e,n){return new Fr(this,r,e,n)};Fr.prototype.toP=function(){if(this.isInfinity())return this.curve.point(null,null);var r=this.z.redInvm(),e=r.redSqr(),n=this.x.redMul(e),i=this.y.redMul(e).redMul(r);return this.curve.point(n,i)};Fr.prototype.neg=function(){return this.curve.jpoint(this.x,this.y.redNeg(),this.z)};Fr.prototype.add=function(r){if(this.isInfinity())return r;if(r.isInfinity())return this;var e=r.z.redSqr(),n=this.z.redSqr(),i=this.x.redMul(e),a=r.x.redMul(n),o=this.y.redMul(e.redMul(r.z)),u=r.y.redMul(n.redMul(this.z)),l=i.redSub(a),s=o.redSub(u);if(l.cmpn(0)===0)return s.cmpn(0)!==0?this.curve.jpoint(null,null,null):this.dbl();var p=l.redSqr(),_=p.redMul(l),E=i.redMul(p),C=s.redSqr().redIAdd(_).redISub(E).redISub(E),P=s.redMul(E.redISub(C)).redISub(o.redMul(_)),B=this.z.redMul(r.z).redMul(l);return this.curve.jpoint(C,P,B)};Fr.prototype.mixedAdd=function(r){if(this.isInfinity())return r.toJ();if(r.isInfinity())return this;var e=this.z.redSqr(),n=this.x,i=r.x.redMul(e),a=this.y,o=r.y.redMul(e).redMul(this.z),u=n.redSub(i),l=a.redSub(o);if(u.cmpn(0)===0)return l.cmpn(0)!==0?this.curve.jpoint(null,null,null):this.dbl();var s=u.redSqr(),p=s.redMul(u),_=n.redMul(s),E=l.redSqr().redIAdd(p).redISub(_).redISub(_),C=l.redMul(_.redISub(E)).redISub(a.redMul(p)),P=this.z.redMul(u);return this.curve.jpoint(E,C,P)};Fr.prototype.dblp=function(r){if(r===0)return this;if(this.isInfinity())return this;if(!r)return this.dbl();var e;if(this.curve.zeroA||this.curve.threeA){var n=this;for(e=0;e=0)return!1;if(n.redIAdd(a),this.x.cmp(n)===0)return!0}};Fr.prototype.inspect=function(){return this.isInfinity()?"":""};Fr.prototype.isInfinity=function(){return this.z.cmpn(0)===0}});var vp=L((ME,pp)=>{"use strict";var $a=dn(),bp=fs(),au=ss(),Z6=nt();function eo(t){au.call(this,"mont",t),this.a=new $a(t.a,16).toRed(this.red),this.b=new $a(t.b,16).toRed(this.red),this.i4=new $a(4).toRed(this.red).redInvm(),this.two=new $a(2).toRed(this.red),this.a24=this.i4.redMul(this.a.redAdd(this.two))}bp(eo,au);pp.exports=eo;eo.prototype.validate=function(r){var e=r.normalize().x,n=e.redSqr(),i=n.redMul(e).redAdd(n.redMul(this.a)).redAdd(e),a=i.redSqrt();return a.redSqr().cmp(i)===0};function Er(t,r,e){au.BasePoint.call(this,t,"projective"),r===null&&e===null?(this.x=this.curve.one,this.z=this.curve.zero):(this.x=new $a(r,16),this.z=new $a(e,16),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)))}bp(Er,au.BasePoint);eo.prototype.decodePoint=function(r,e){return this.point(Z6.toArray(r,e),1)};eo.prototype.point=function(r,e){return new Er(this,r,e)};eo.prototype.pointFromJSON=function(r){return Er.fromJSON(this,r)};Er.prototype.precompute=function(){};Er.prototype._encode=function(){return this.getX().toArray("be",this.curve.p.byteLength())};Er.fromJSON=function(r,e){return new Er(r,e[0],e[1]||r.one)};Er.prototype.inspect=function(){return this.isInfinity()?"":""};Er.prototype.isInfinity=function(){return this.z.cmpn(0)===0};Er.prototype.dbl=function(){var r=this.x.redAdd(this.z),e=r.redSqr(),n=this.x.redSub(this.z),i=n.redSqr(),a=e.redSub(i),o=e.redMul(i),u=a.redMul(i.redAdd(this.curve.a24.redMul(a)));return this.curve.point(o,u)};Er.prototype.add=function(){throw new Error("Not supported on Montgomery curve")};Er.prototype.diffAdd=function(r,e){var n=this.x.redAdd(this.z),i=this.x.redSub(this.z),a=r.x.redAdd(r.z),o=r.x.redSub(r.z),u=o.redMul(n),l=a.redMul(i),s=e.z.redMul(u.redAdd(l).redSqr()),p=e.x.redMul(u.redISub(l).redSqr());return this.curve.point(s,p)};Er.prototype.mul=function(r){for(var e=r.clone(),n=this,i=this.curve.point(null,null),a=this,o=[];e.cmpn(0)!==0;e.iushrn(1))o.push(e.andln(1));for(var u=o.length-1;u>=0;u--)o[u]===0?(n=n.diffAdd(i,a),i=i.dbl()):(i=n.diffAdd(i,a),n=n.dbl());return i};Er.prototype.mulAdd=function(){throw new Error("Not supported on Montgomery curve")};Er.prototype.jumlAdd=function(){throw new Error("Not supported on Montgomery curve")};Er.prototype.eq=function(r){return this.getX().cmp(r.getX())===0};Er.prototype.normalize=function(){return this.x=this.x.redMul(this.z.redInvm()),this.z=this.curve.one,this};Er.prototype.getX=function(){return this.normalize(),this.x.fromRed()}});var xp=L((PE,mp)=>{"use strict";var K6=nt(),qn=dn(),gp=fs(),ou=ss(),Q6=K6.assert;function hn(t){this.twisted=(t.a|0)!==1,this.mOneA=this.twisted&&(t.a|0)===-1,this.extended=this.mOneA,ou.call(this,"edwards",t),this.a=new qn(t.a,16).umod(this.red.m),this.a=this.a.toRed(this.red),this.c=new qn(t.c,16).toRed(this.red),this.c2=this.c.redSqr(),this.d=new qn(t.d,16).toRed(this.red),this.dd=this.d.redAdd(this.d),Q6(!this.twisted||this.c.fromRed().cmpn(1)===0),this.oneC=(t.c|0)===1}gp(hn,ou);mp.exports=hn;hn.prototype._mulA=function(r){return this.mOneA?r.redNeg():this.a.redMul(r)};hn.prototype._mulC=function(r){return this.oneC?r:this.c.redMul(r)};hn.prototype.jpoint=function(r,e,n,i){return this.point(r,e,n,i)};hn.prototype.pointFromX=function(r,e){r=new qn(r,16),r.red||(r=r.toRed(this.red));var n=r.redSqr(),i=this.c2.redSub(this.a.redMul(n)),a=this.one.redSub(this.c2.redMul(this.d).redMul(n)),o=i.redMul(a.redInvm()),u=o.redSqrt();if(u.redSqr().redSub(o).cmp(this.zero)!==0)throw new Error("invalid point");var l=u.fromRed().isOdd();return(e&&!l||!e&&l)&&(u=u.redNeg()),this.point(r,u)};hn.prototype.pointFromY=function(r,e){r=new qn(r,16),r.red||(r=r.toRed(this.red));var n=r.redSqr(),i=n.redSub(this.c2),a=n.redMul(this.d).redMul(this.c2).redSub(this.a),o=i.redMul(a.redInvm());if(o.cmp(this.zero)===0){if(e)throw new Error("invalid point");return this.point(this.zero,r)}var u=o.redSqrt();if(u.redSqr().redSub(o).cmp(this.zero)!==0)throw new Error("invalid point");return u.fromRed().isOdd()!==e&&(u=u.redNeg()),this.point(u,r)};hn.prototype.validate=function(r){if(r.isInfinity())return!0;r.normalize();var e=r.x.redSqr(),n=r.y.redSqr(),i=e.redMul(this.a).redAdd(n),a=this.c2.redMul(this.one.redAdd(this.d.redMul(e).redMul(n)));return i.cmp(a)===0};function rr(t,r,e,n,i){ou.BasePoint.call(this,t,"projective"),r===null&&e===null&&n===null?(this.x=this.curve.zero,this.y=this.curve.one,this.z=this.curve.one,this.t=this.curve.zero,this.zOne=!0):(this.x=new qn(r,16),this.y=new qn(e,16),this.z=n?new qn(n,16):this.curve.one,this.t=i&&new qn(i,16),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)),this.t&&!this.t.red&&(this.t=this.t.toRed(this.curve.red)),this.zOne=this.z===this.curve.one,this.curve.extended&&!this.t&&(this.t=this.x.redMul(this.y),this.zOne||(this.t=this.t.redMul(this.z.redInvm()))))}gp(rr,ou.BasePoint);hn.prototype.pointFromJSON=function(r){return rr.fromJSON(this,r)};hn.prototype.point=function(r,e,n,i){return new rr(this,r,e,n,i)};rr.fromJSON=function(r,e){return new rr(r,e[0],e[1],e[2])};rr.prototype.inspect=function(){return this.isInfinity()?"":""};rr.prototype.isInfinity=function(){return this.x.cmpn(0)===0&&(this.y.cmp(this.z)===0||this.zOne&&this.y.cmp(this.curve.c)===0)};rr.prototype._extDbl=function(){var r=this.x.redSqr(),e=this.y.redSqr(),n=this.z.redSqr();n=n.redIAdd(n);var i=this.curve._mulA(r),a=this.x.redAdd(this.y).redSqr().redISub(r).redISub(e),o=i.redAdd(e),u=o.redSub(n),l=i.redSub(e),s=a.redMul(u),p=o.redMul(l),_=a.redMul(l),E=u.redMul(o);return this.curve.point(s,p,E,_)};rr.prototype._projDbl=function(){var r=this.x.redAdd(this.y).redSqr(),e=this.x.redSqr(),n=this.y.redSqr(),i,a,o,u,l,s;if(this.curve.twisted){u=this.curve._mulA(e);var p=u.redAdd(n);this.zOne?(i=r.redSub(e).redSub(n).redMul(p.redSub(this.curve.two)),a=p.redMul(u.redSub(n)),o=p.redSqr().redSub(p).redSub(p)):(l=this.z.redSqr(),s=p.redSub(l).redISub(l),i=r.redSub(e).redISub(n).redMul(s),a=p.redMul(u.redSub(n)),o=p.redMul(s))}else u=e.redAdd(n),l=this.curve._mulC(this.z).redSqr(),s=u.redSub(l).redSub(l),i=this.curve._mulC(r.redISub(u)).redMul(s),a=this.curve._mulC(u).redMul(e.redISub(n)),o=u.redMul(s);return this.curve.point(i,a,o)};rr.prototype.dbl=function(){return this.isInfinity()?this:this.curve.extended?this._extDbl():this._projDbl()};rr.prototype._extAdd=function(r){var e=this.y.redSub(this.x).redMul(r.y.redSub(r.x)),n=this.y.redAdd(this.x).redMul(r.y.redAdd(r.x)),i=this.t.redMul(this.curve.dd).redMul(r.t),a=this.z.redMul(r.z.redAdd(r.z)),o=n.redSub(e),u=a.redSub(i),l=a.redAdd(i),s=n.redAdd(e),p=o.redMul(u),_=l.redMul(s),E=o.redMul(s),C=u.redMul(l);return this.curve.point(p,_,C,E)};rr.prototype._projAdd=function(r){var e=this.z.redMul(r.z),n=e.redSqr(),i=this.x.redMul(r.x),a=this.y.redMul(r.y),o=this.curve.d.redMul(i).redMul(a),u=n.redSub(o),l=n.redAdd(o),s=this.x.redAdd(this.y).redMul(r.x.redAdd(r.y)).redISub(i).redISub(a),p=e.redMul(u).redMul(s),_,E;return this.curve.twisted?(_=e.redMul(l).redMul(a.redSub(this.curve._mulA(i))),E=u.redMul(l)):(_=e.redMul(l).redMul(a.redSub(i)),E=this.curve._mulC(u).redMul(l)),this.curve.point(p,_,E)};rr.prototype.add=function(r){return this.isInfinity()?r:r.isInfinity()?this:this.curve.extended?this._extAdd(r):this._projAdd(r)};rr.prototype.mul=function(r){return this._hasDoubles(r)?this.curve._fixedNafMul(this,r):this.curve._wnafMul(this,r)};rr.prototype.mulAdd=function(r,e,n){return this.curve._wnafMulAdd(1,[this,e],[r,n],2,!1)};rr.prototype.jmulAdd=function(r,e,n){return this.curve._wnafMulAdd(1,[this,e],[r,n],2,!0)};rr.prototype.normalize=function(){if(this.zOne)return this;var r=this.z.redInvm();return this.x=this.x.redMul(r),this.y=this.y.redMul(r),this.t&&(this.t=this.t.redMul(r)),this.z=this.curve.one,this.zOne=!0,this};rr.prototype.neg=function(){return this.curve.point(this.x.redNeg(),this.y,this.z,this.t&&this.t.redNeg())};rr.prototype.getX=function(){return this.normalize(),this.x.fromRed()};rr.prototype.getY=function(){return this.normalize(),this.y.fromRed()};rr.prototype.eq=function(r){return this===r||this.getX().cmp(r.getX())===0&&this.getY().cmp(r.getY())===0};rr.prototype.eqXToP=function(r){var e=r.toRed(this.curve.red).redMul(this.z);if(this.x.cmp(e)===0)return!0;for(var n=r.clone(),i=this.curve.redN.redMul(this.z);;){if(n.iadd(this.curve.n),n.cmp(this.curve.p)>=0)return!1;if(e.redIAdd(i),this.x.cmp(e)===0)return!0}};rr.prototype.toP=rr.prototype.normalize;rr.prototype.mixedAdd=rr.prototype.add});var E0=L(yp=>{"use strict";var su=yp;su.base=ss();su.short=hp();su.mont=vp();su.edwards=xp()});var Nt=L($e=>{"use strict";var W6=ci(),Y6=fs();$e.inherits=Y6;function $6(t,r){return(t.charCodeAt(r)&64512)!==55296||r<0||r+1>=t.length?!1:(t.charCodeAt(r+1)&64512)===56320}function e4(t,r){if(Array.isArray(t))return t.slice();if(!t)return[];var e=[];if(typeof t=="string")if(r){if(r==="hex")for(t=t.replace(/[^a-z0-9]+/ig,""),t.length%2!==0&&(t="0"+t),i=0;i>6|192,e[n++]=a&63|128):$6(t,i)?(a=65536+((a&1023)<<10)+(t.charCodeAt(++i)&1023),e[n++]=a>>18|240,e[n++]=a>>12&63|128,e[n++]=a>>6&63|128,e[n++]=a&63|128):(e[n++]=a>>12|224,e[n++]=a>>6&63|128,e[n++]=a&63|128)}else for(i=0;i>>24|t>>>8&65280|t<<8&16711680|(t&255)<<24;return r>>>0}$e.htonl=Ap;function t4(t,r){for(var e="",n=0;n>>0}return a}$e.join32=n4;function i4(t,r){for(var e=new Array(t.length*4),n=0,i=0;n>>24,e[i+1]=a>>>16&255,e[i+2]=a>>>8&255,e[i+3]=a&255):(e[i+3]=a>>>24,e[i+2]=a>>>16&255,e[i+1]=a>>>8&255,e[i]=a&255)}return e}$e.split32=i4;function a4(t,r){return t>>>r|t<<32-r}$e.rotr32=a4;function o4(t,r){return t<>>32-r}$e.rotl32=o4;function s4(t,r){return t+r>>>0}$e.sum32=s4;function f4(t,r,e){return t+r+e>>>0}$e.sum32_3=f4;function u4(t,r,e,n){return t+r+e+n>>>0}$e.sum32_4=u4;function c4(t,r,e,n,i){return t+r+e+n+i>>>0}$e.sum32_5=c4;function l4(t,r,e,n){var i=t[r],a=t[r+1],o=n+a>>>0,u=(o>>0,t[r+1]=o}$e.sum64=l4;function d4(t,r,e,n){var i=r+n>>>0,a=(i>>0}$e.sum64_hi=d4;function h4(t,r,e,n){var i=r+n;return i>>>0}$e.sum64_lo=h4;function b4(t,r,e,n,i,a,o,u){var l=0,s=r;s=s+n>>>0,l+=s>>0,l+=s>>0,l+=s>>0}$e.sum64_4_hi=b4;function p4(t,r,e,n,i,a,o,u){var l=r+n+a+u;return l>>>0}$e.sum64_4_lo=p4;function v4(t,r,e,n,i,a,o,u,l,s){var p=0,_=r;_=_+n>>>0,p+=_>>0,p+=_>>0,p+=_>>0,p+=_>>0}$e.sum64_5_hi=v4;function g4(t,r,e,n,i,a,o,u,l,s){var p=r+n+a+u+s;return p>>>0}$e.sum64_5_lo=g4;function m4(t,r,e){var n=r<<32-e|t>>>e;return n>>>0}$e.rotr64_hi=m4;function x4(t,r,e){var n=t<<32-e|r>>>e;return n>>>0}$e.rotr64_lo=x4;function y4(t,r,e){return t>>>e}$e.shr64_hi=y4;function A4(t,r,e){var n=t<<32-e|r>>>e;return n>>>0}$e.shr64_lo=A4});var ro=L(Mp=>{"use strict";var Sp=Nt(),w4=ci();function fu(){this.pending=null,this.pendingTotal=0,this.blockSize=this.constructor.blockSize,this.outSize=this.constructor.outSize,this.hmacStrength=this.constructor.hmacStrength,this.padLength=this.constructor.padLength/8,this.endian="big",this._delta8=this.blockSize/8,this._delta32=this.blockSize/32}Mp.BlockHash=fu;fu.prototype.update=function(r,e){if(r=Sp.toArray(r,e),this.pending?this.pending=this.pending.concat(r):this.pending=r,this.pendingTotal+=r.length,this.pending.length>=this._delta8){r=this.pending;var n=r.length%this._delta8;this.pending=r.slice(r.length-n,r.length),this.pending.length===0&&(this.pending=null),r=Sp.join32(r,0,r.length-n,this.endian);for(var i=0;i>>24&255,i[a++]=r>>>16&255,i[a++]=r>>>8&255,i[a++]=r&255}else for(i[a++]=r&255,i[a++]=r>>>8&255,i[a++]=r>>>16&255,i[a++]=r>>>24&255,i[a++]=0,i[a++]=0,i[a++]=0,i[a++]=0,o=8;o{"use strict";var _4=Nt(),bn=_4.rotr32;function S4(t,r,e,n){if(t===0)return Pp(r,e,n);if(t===1||t===3)return Tp(r,e,n);if(t===2)return Ep(r,e,n)}Xn.ft_1=S4;function Pp(t,r,e){return t&r^~t&e}Xn.ch32=Pp;function Ep(t,r,e){return t&r^t&e^r&e}Xn.maj32=Ep;function Tp(t,r,e){return t^r^e}Xn.p32=Tp;function M4(t){return bn(t,2)^bn(t,13)^bn(t,22)}Xn.s0_256=M4;function P4(t){return bn(t,6)^bn(t,11)^bn(t,25)}Xn.s1_256=P4;function E4(t){return bn(t,7)^bn(t,18)^t>>>3}Xn.g0_256=E4;function T4(t){return bn(t,17)^bn(t,19)^t>>>10}Xn.g1_256=T4});var Op=L((OE,Bp)=>{"use strict";var to=Nt(),C4=ro(),B4=T0(),C0=to.rotl32,us=to.sum32,O4=to.sum32_5,F4=B4.ft_1,Cp=C4.BlockHash,L4=[1518500249,1859775393,2400959708,3395469782];function pn(){if(!(this instanceof pn))return new pn;Cp.call(this),this.h=[1732584193,4023233417,2562383102,271733878,3285377520],this.W=new Array(80)}to.inherits(pn,Cp);Bp.exports=pn;pn.blockSize=512;pn.outSize=160;pn.hmacStrength=80;pn.padLength=64;pn.prototype._update=function(r,e){for(var n=this.W,i=0;i<16;i++)n[i]=r[e+i];for(;i{"use strict";var no=Nt(),k4=ro(),io=T0(),R4=ci(),Jt=no.sum32,N4=no.sum32_4,J4=no.sum32_5,D4=io.ch32,I4=io.maj32,U4=io.s0_256,H4=io.s1_256,q4=io.g0_256,X4=io.g1_256,Fp=k4.BlockHash,G4=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298];function vn(){if(!(this instanceof vn))return new vn;Fp.call(this),this.h=[1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225],this.k=G4,this.W=new Array(64)}no.inherits(vn,Fp);Lp.exports=vn;vn.blockSize=512;vn.outSize=256;vn.hmacStrength=192;vn.padLength=64;vn.prototype._update=function(r,e){for(var n=this.W,i=0;i<16;i++)n[i]=r[e+i];for(;i{"use strict";var O0=Nt(),kp=B0();function Gn(){if(!(this instanceof Gn))return new Gn;kp.call(this),this.h=[3238371032,914150663,812702999,4144912697,4290775857,1750603025,1694076839,3204075428]}O0.inherits(Gn,kp);Rp.exports=Gn;Gn.blockSize=512;Gn.outSize=224;Gn.hmacStrength=192;Gn.padLength=64;Gn.prototype._digest=function(r){return r==="hex"?O0.toHex32(this.h.slice(0,7),"big"):O0.split32(this.h.slice(0,7),"big")}});var k0=L((kE,Up)=>{"use strict";var Wr=Nt(),j4=ro(),z4=ci(),gn=Wr.rotr64_hi,mn=Wr.rotr64_lo,Jp=Wr.shr64_hi,Dp=Wr.shr64_lo,hi=Wr.sum64,F0=Wr.sum64_hi,L0=Wr.sum64_lo,V4=Wr.sum64_4_hi,Z4=Wr.sum64_4_lo,K4=Wr.sum64_5_hi,Q4=Wr.sum64_5_lo,Ip=j4.BlockHash,W4=[1116352408,3609767458,1899447441,602891725,3049323471,3964484399,3921009573,2173295548,961987163,4081628472,1508970993,3053834265,2453635748,2937671579,2870763221,3664609560,3624381080,2734883394,310598401,1164996542,607225278,1323610764,1426881987,3590304994,1925078388,4068182383,2162078206,991336113,2614888103,633803317,3248222580,3479774868,3835390401,2666613458,4022224774,944711139,264347078,2341262773,604807628,2007800933,770255983,1495990901,1249150122,1856431235,1555081692,3175218132,1996064986,2198950837,2554220882,3999719339,2821834349,766784016,2952996808,2566594879,3210313671,3203337956,3336571891,1034457026,3584528711,2466948901,113926993,3758326383,338241895,168717936,666307205,1188179964,773529912,1546045734,1294757372,1522805485,1396182291,2643833823,1695183700,2343527390,1986661051,1014477480,2177026350,1206759142,2456956037,344077627,2730485921,1290863460,2820302411,3158454273,3259730800,3505952657,3345764771,106217008,3516065817,3606008344,3600352804,1432725776,4094571909,1467031594,275423344,851169720,430227734,3100823752,506948616,1363258195,659060556,3750685593,883997877,3785050280,958139571,3318307427,1322822218,3812723403,1537002063,2003034995,1747873779,3602036899,1955562222,1575990012,2024104815,1125592928,2227730452,2716904306,2361852424,442776044,2428436474,593698344,2756734187,3733110249,3204031479,2999351573,3329325298,3815920427,3391569614,3928383900,3515267271,566280711,3940187606,3454069534,4118630271,4000239992,116418474,1914138554,174292421,2731055270,289380356,3203993006,460393269,320620315,685471733,587496836,852142971,1086792851,1017036298,365543100,1126000580,2618297676,1288033470,3409855158,1501505948,4234509866,1607167915,987167468,1816402316,1246189591];function Dt(){if(!(this instanceof Dt))return new Dt;Ip.call(this),this.h=[1779033703,4089235720,3144134277,2227873595,1013904242,4271175723,2773480762,1595750129,1359893119,2917565137,2600822924,725511199,528734635,4215389547,1541459225,327033209],this.k=W4,this.W=new Array(160)}Wr.inherits(Dt,Ip);Up.exports=Dt;Dt.blockSize=1024;Dt.outSize=512;Dt.hmacStrength=192;Dt.padLength=128;Dt.prototype._prepareBlock=function(r,e){for(var n=this.W,i=0;i<32;i++)n[i]=r[e+i];for(;i{"use strict";var R0=Nt(),Hp=k0();function jn(){if(!(this instanceof jn))return new jn;Hp.call(this),this.h=[3418070365,3238371032,1654270250,914150663,2438529370,812702999,355462360,4144912697,1731405415,4290775857,2394180231,1750603025,3675008525,1694076839,1203062813,3204075428]}R0.inherits(jn,Hp);qp.exports=jn;jn.blockSize=1024;jn.outSize=384;jn.hmacStrength=192;jn.padLength=128;jn.prototype._digest=function(r){return r==="hex"?R0.toHex32(this.h.slice(0,12),"big"):R0.split32(this.h.slice(0,12),"big")}});var Gp=L(ao=>{"use strict";ao.sha1=Op();ao.sha224=Np();ao.sha256=B0();ao.sha384=Xp();ao.sha512=k0()});var Qp=L(Kp=>{"use strict";var ua=Nt(),c5=ro(),uu=ua.rotl32,jp=ua.sum32,cs=ua.sum32_3,zp=ua.sum32_4,Zp=c5.BlockHash;function xn(){if(!(this instanceof xn))return new xn;Zp.call(this),this.h=[1732584193,4023233417,2562383102,271733878,3285377520],this.endian="little"}ua.inherits(xn,Zp);Kp.ripemd160=xn;xn.blockSize=512;xn.outSize=160;xn.hmacStrength=192;xn.padLength=64;xn.prototype._update=function(r,e){for(var n=this.h[0],i=this.h[1],a=this.h[2],o=this.h[3],u=this.h[4],l=n,s=i,p=a,_=o,E=u,C=0;C<80;C++){var P=jp(uu(zp(n,Vp(C,i,a,o),r[h5[C]+e],l5(C)),p5[C]),u);n=u,u=o,o=uu(a,10),a=i,i=P,P=jp(uu(zp(l,Vp(79-C,s,p,_),r[b5[C]+e],d5(C)),v5[C]),E),l=E,E=_,_=uu(p,10),p=s,s=P}P=cs(this.h[1],a,_),this.h[1]=cs(this.h[2],o,E),this.h[2]=cs(this.h[3],u,l),this.h[3]=cs(this.h[4],n,s),this.h[4]=cs(this.h[0],i,p),this.h[0]=P};xn.prototype._digest=function(r){return r==="hex"?ua.toHex32(this.h,"little"):ua.split32(this.h,"little")};function Vp(t,r,e,n){return t<=15?r^e^n:t<=31?r&e|~r&n:t<=47?(r|~e)^n:t<=63?r&n|e&~n:r^(e|~n)}function l5(t){return t<=15?0:t<=31?1518500249:t<=47?1859775393:t<=63?2400959708:2840853838}function d5(t){return t<=15?1352829926:t<=31?1548603684:t<=47?1836072691:t<=63?2053994217:0}var h5=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13],b5=[5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11],p5=[11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6],v5=[8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11]});var Yp=L((DE,Wp)=>{"use strict";var g5=Nt(),m5=ci();function oo(t,r,e){if(!(this instanceof oo))return new oo(t,r,e);this.Hash=t,this.blockSize=t.blockSize/8,this.outSize=t.outSize/8,this.inner=null,this.outer=null,this._init(g5.toArray(r,e))}Wp.exports=oo;oo.prototype._init=function(r){r.length>this.blockSize&&(r=new this.Hash().update(r).digest()),m5(r.length<=this.blockSize);for(var e=r.length;e{var Lr=$p;Lr.utils=Nt();Lr.common=ro();Lr.sha=Gp();Lr.ripemd=Qp();Lr.hmac=Yp();Lr.sha1=Lr.sha.sha1;Lr.sha256=Lr.sha.sha256;Lr.sha224=Lr.sha.sha224;Lr.sha384=Lr.sha.sha384;Lr.sha512=Lr.sha.sha512;Lr.ripemd160=Lr.ripemd.ripemd160});var rv=L((UE,ev)=>{ev.exports={doubles:{step:4,points:[["e60fce93b59e9ec53011aabc21c23e97b2a31369b87a5ae9c44ee89e2a6dec0a","f7e3507399e595929db99f34f57937101296891e44d23f0be1f32cce69616821"],["8282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508","11f8a8098557dfe45e8256e830b60ace62d613ac2f7b17bed31b6eaff6e26caf"],["175e159f728b865a72f99cc6c6fc846de0b93833fd2222ed73fce5b551e5b739","d3506e0d9e3c79eba4ef97a51ff71f5eacb5955add24345c6efa6ffee9fed695"],["363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff4640","4e273adfc732221953b445397f3363145b9a89008199ecb62003c7f3bee9de9"],["8b4b5f165df3c2be8c6244b5b745638843e4a781a15bcd1b69f79a55dffdf80c","4aad0a6f68d308b4b3fbd7813ab0da04f9e336546162ee56b3eff0c65fd4fd36"],["723cbaa6e5db996d6bf771c00bd548c7b700dbffa6c0e77bcb6115925232fcda","96e867b5595cc498a921137488824d6e2660a0653779494801dc069d9eb39f5f"],["eebfa4d493bebf98ba5feec812c2d3b50947961237a919839a533eca0e7dd7fa","5d9a8ca3970ef0f269ee7edaf178089d9ae4cdc3a711f712ddfd4fdae1de8999"],["100f44da696e71672791d0a09b7bde459f1215a29b3c03bfefd7835b39a48db0","cdd9e13192a00b772ec8f3300c090666b7ff4a18ff5195ac0fbd5cd62bc65a09"],["e1031be262c7ed1b1dc9227a4a04c017a77f8d4464f3b3852c8acde6e534fd2d","9d7061928940405e6bb6a4176597535af292dd419e1ced79a44f18f29456a00d"],["feea6cae46d55b530ac2839f143bd7ec5cf8b266a41d6af52d5e688d9094696d","e57c6b6c97dce1bab06e4e12bf3ecd5c981c8957cc41442d3155debf18090088"],["da67a91d91049cdcb367be4be6ffca3cfeed657d808583de33fa978bc1ec6cb1","9bacaa35481642bc41f463f7ec9780e5dec7adc508f740a17e9ea8e27a68be1d"],["53904faa0b334cdda6e000935ef22151ec08d0f7bb11069f57545ccc1a37b7c0","5bc087d0bc80106d88c9eccac20d3c1c13999981e14434699dcb096b022771c8"],["8e7bcd0bd35983a7719cca7764ca906779b53a043a9b8bcaeff959f43ad86047","10b7770b2a3da4b3940310420ca9514579e88e2e47fd68b3ea10047e8460372a"],["385eed34c1cdff21e6d0818689b81bde71a7f4f18397e6690a841e1599c43862","283bebc3e8ea23f56701de19e9ebf4576b304eec2086dc8cc0458fe5542e5453"],["6f9d9b803ecf191637c73a4413dfa180fddf84a5947fbc9c606ed86c3fac3a7","7c80c68e603059ba69b8e2a30e45c4d47ea4dd2f5c281002d86890603a842160"],["3322d401243c4e2582a2147c104d6ecbf774d163db0f5e5313b7e0e742d0e6bd","56e70797e9664ef5bfb019bc4ddaf9b72805f63ea2873af624f3a2e96c28b2a0"],["85672c7d2de0b7da2bd1770d89665868741b3f9af7643397721d74d28134ab83","7c481b9b5b43b2eb6374049bfa62c2e5e77f17fcc5298f44c8e3094f790313a6"],["948bf809b1988a46b06c9f1919413b10f9226c60f668832ffd959af60c82a0a","53a562856dcb6646dc6b74c5d1c3418c6d4dff08c97cd2bed4cb7f88d8c8e589"],["6260ce7f461801c34f067ce0f02873a8f1b0e44dfc69752accecd819f38fd8e8","bc2da82b6fa5b571a7f09049776a1ef7ecd292238051c198c1a84e95b2b4ae17"],["e5037de0afc1d8d43d8348414bbf4103043ec8f575bfdc432953cc8d2037fa2d","4571534baa94d3b5f9f98d09fb990bddbd5f5b03ec481f10e0e5dc841d755bda"],["e06372b0f4a207adf5ea905e8f1771b4e7e8dbd1c6a6c5b725866a0ae4fce725","7a908974bce18cfe12a27bb2ad5a488cd7484a7787104870b27034f94eee31dd"],["213c7a715cd5d45358d0bbf9dc0ce02204b10bdde2a3f58540ad6908d0559754","4b6dad0b5ae462507013ad06245ba190bb4850f5f36a7eeddff2c27534b458f2"],["4e7c272a7af4b34e8dbb9352a5419a87e2838c70adc62cddf0cc3a3b08fbd53c","17749c766c9d0b18e16fd09f6def681b530b9614bff7dd33e0b3941817dcaae6"],["fea74e3dbe778b1b10f238ad61686aa5c76e3db2be43057632427e2840fb27b6","6e0568db9b0b13297cf674deccb6af93126b596b973f7b77701d3db7f23cb96f"],["76e64113f677cf0e10a2570d599968d31544e179b760432952c02a4417bdde39","c90ddf8dee4e95cf577066d70681f0d35e2a33d2b56d2032b4b1752d1901ac01"],["c738c56b03b2abe1e8281baa743f8f9a8f7cc643df26cbee3ab150242bcbb891","893fb578951ad2537f718f2eacbfbbbb82314eef7880cfe917e735d9699a84c3"],["d895626548b65b81e264c7637c972877d1d72e5f3a925014372e9f6588f6c14b","febfaa38f2bc7eae728ec60818c340eb03428d632bb067e179363ed75d7d991f"],["b8da94032a957518eb0f6433571e8761ceffc73693e84edd49150a564f676e03","2804dfa44805a1e4d7c99cc9762808b092cc584d95ff3b511488e4e74efdf6e7"],["e80fea14441fb33a7d8adab9475d7fab2019effb5156a792f1a11778e3c0df5d","eed1de7f638e00771e89768ca3ca94472d155e80af322ea9fcb4291b6ac9ec78"],["a301697bdfcd704313ba48e51d567543f2a182031efd6915ddc07bbcc4e16070","7370f91cfb67e4f5081809fa25d40f9b1735dbf7c0a11a130c0d1a041e177ea1"],["90ad85b389d6b936463f9d0512678de208cc330b11307fffab7ac63e3fb04ed4","e507a3620a38261affdcbd9427222b839aefabe1582894d991d4d48cb6ef150"],["8f68b9d2f63b5f339239c1ad981f162ee88c5678723ea3351b7b444c9ec4c0da","662a9f2dba063986de1d90c2b6be215dbbea2cfe95510bfdf23cbf79501fff82"],["e4f3fb0176af85d65ff99ff9198c36091f48e86503681e3e6686fd5053231e11","1e63633ad0ef4f1c1661a6d0ea02b7286cc7e74ec951d1c9822c38576feb73bc"],["8c00fa9b18ebf331eb961537a45a4266c7034f2f0d4e1d0716fb6eae20eae29e","efa47267fea521a1a9dc343a3736c974c2fadafa81e36c54e7d2a4c66702414b"],["e7a26ce69dd4829f3e10cec0a9e98ed3143d084f308b92c0997fddfc60cb3e41","2a758e300fa7984b471b006a1aafbb18d0a6b2c0420e83e20e8a9421cf2cfd51"],["b6459e0ee3662ec8d23540c223bcbdc571cbcb967d79424f3cf29eb3de6b80ef","67c876d06f3e06de1dadf16e5661db3c4b3ae6d48e35b2ff30bf0b61a71ba45"],["d68a80c8280bb840793234aa118f06231d6f1fc67e73c5a5deda0f5b496943e8","db8ba9fff4b586d00c4b1f9177b0e28b5b0e7b8f7845295a294c84266b133120"],["324aed7df65c804252dc0270907a30b09612aeb973449cea4095980fc28d3d5d","648a365774b61f2ff130c0c35aec1f4f19213b0c7e332843967224af96ab7c84"],["4df9c14919cde61f6d51dfdbe5fee5dceec4143ba8d1ca888e8bd373fd054c96","35ec51092d8728050974c23a1d85d4b5d506cdc288490192ebac06cad10d5d"],["9c3919a84a474870faed8a9c1cc66021523489054d7f0308cbfc99c8ac1f98cd","ddb84f0f4a4ddd57584f044bf260e641905326f76c64c8e6be7e5e03d4fc599d"],["6057170b1dd12fdf8de05f281d8e06bb91e1493a8b91d4cc5a21382120a959e5","9a1af0b26a6a4807add9a2daf71df262465152bc3ee24c65e899be932385a2a8"],["a576df8e23a08411421439a4518da31880cef0fba7d4df12b1a6973eecb94266","40a6bf20e76640b2c92b97afe58cd82c432e10a7f514d9f3ee8be11ae1b28ec8"],["7778a78c28dec3e30a05fe9629de8c38bb30d1f5cf9a3a208f763889be58ad71","34626d9ab5a5b22ff7098e12f2ff580087b38411ff24ac563b513fc1fd9f43ac"],["928955ee637a84463729fd30e7afd2ed5f96274e5ad7e5cb09eda9c06d903ac","c25621003d3f42a827b78a13093a95eeac3d26efa8a8d83fc5180e935bcd091f"],["85d0fef3ec6db109399064f3a0e3b2855645b4a907ad354527aae75163d82751","1f03648413a38c0be29d496e582cf5663e8751e96877331582c237a24eb1f962"],["ff2b0dce97eece97c1c9b6041798b85dfdfb6d8882da20308f5404824526087e","493d13fef524ba188af4c4dc54d07936c7b7ed6fb90e2ceb2c951e01f0c29907"],["827fbbe4b1e880ea9ed2b2e6301b212b57f1ee148cd6dd28780e5e2cf856e241","c60f9c923c727b0b71bef2c67d1d12687ff7a63186903166d605b68baec293ec"],["eaa649f21f51bdbae7be4ae34ce6e5217a58fdce7f47f9aa7f3b58fa2120e2b3","be3279ed5bbbb03ac69a80f89879aa5a01a6b965f13f7e59d47a5305ba5ad93d"],["e4a42d43c5cf169d9391df6decf42ee541b6d8f0c9a137401e23632dda34d24f","4d9f92e716d1c73526fc99ccfb8ad34ce886eedfa8d8e4f13a7f7131deba9414"],["1ec80fef360cbdd954160fadab352b6b92b53576a88fea4947173b9d4300bf19","aeefe93756b5340d2f3a4958a7abbf5e0146e77f6295a07b671cdc1cc107cefd"],["146a778c04670c2f91b00af4680dfa8bce3490717d58ba889ddb5928366642be","b318e0ec3354028add669827f9d4b2870aaa971d2f7e5ed1d0b297483d83efd0"],["fa50c0f61d22e5f07e3acebb1aa07b128d0012209a28b9776d76a8793180eef9","6b84c6922397eba9b72cd2872281a68a5e683293a57a213b38cd8d7d3f4f2811"],["da1d61d0ca721a11b1a5bf6b7d88e8421a288ab5d5bba5220e53d32b5f067ec2","8157f55a7c99306c79c0766161c91e2966a73899d279b48a655fba0f1ad836f1"],["a8e282ff0c9706907215ff98e8fd416615311de0446f1e062a73b0610d064e13","7f97355b8db81c09abfb7f3c5b2515888b679a3e50dd6bd6cef7c73111f4cc0c"],["174a53b9c9a285872d39e56e6913cab15d59b1fa512508c022f382de8319497c","ccc9dc37abfc9c1657b4155f2c47f9e6646b3a1d8cb9854383da13ac079afa73"],["959396981943785c3d3e57edf5018cdbe039e730e4918b3d884fdff09475b7ba","2e7e552888c331dd8ba0386a4b9cd6849c653f64c8709385e9b8abf87524f2fd"],["d2a63a50ae401e56d645a1153b109a8fcca0a43d561fba2dbb51340c9d82b151","e82d86fb6443fcb7565aee58b2948220a70f750af484ca52d4142174dcf89405"],["64587e2335471eb890ee7896d7cfdc866bacbdbd3839317b3436f9b45617e073","d99fcdd5bf6902e2ae96dd6447c299a185b90a39133aeab358299e5e9faf6589"],["8481bde0e4e4d885b3a546d3e549de042f0aa6cea250e7fd358d6c86dd45e458","38ee7b8cba5404dd84a25bf39cecb2ca900a79c42b262e556d64b1b59779057e"],["13464a57a78102aa62b6979ae817f4637ffcfed3c4b1ce30bcd6303f6caf666b","69be159004614580ef7e433453ccb0ca48f300a81d0942e13f495a907f6ecc27"],["bc4a9df5b713fe2e9aef430bcc1dc97a0cd9ccede2f28588cada3a0d2d83f366","d3a81ca6e785c06383937adf4b798caa6e8a9fbfa547b16d758d666581f33c1"],["8c28a97bf8298bc0d23d8c749452a32e694b65e30a9472a3954ab30fe5324caa","40a30463a3305193378fedf31f7cc0eb7ae784f0451cb9459e71dc73cbef9482"],["8ea9666139527a8c1dd94ce4f071fd23c8b350c5a4bb33748c4ba111faccae0","620efabbc8ee2782e24e7c0cfb95c5d735b783be9cf0f8e955af34a30e62b945"],["dd3625faef5ba06074669716bbd3788d89bdde815959968092f76cc4eb9a9787","7a188fa3520e30d461da2501045731ca941461982883395937f68d00c644a573"],["f710d79d9eb962297e4f6232b40e8f7feb2bc63814614d692c12de752408221e","ea98e67232d3b3295d3b535532115ccac8612c721851617526ae47a9c77bfc82"]]},naf:{wnd:7,points:[["f9308a019258c31049344f85f89d5229b531c845836f99b08601f113bce036f9","388f7b0f632de8140fe337e62a37f3566500a99934c2231b6cb9fd7584b8e672"],["2f8bde4d1a07209355b4a7250a5c5128e88b84bddc619ab7cba8d569b240efe4","d8ac222636e5e3d6d4dba9dda6c9c426f788271bab0d6840dca87d3aa6ac62d6"],["5cbdf0646e5db4eaa398f365f2ea7a0e3d419b7e0330e39ce92bddedcac4f9bc","6aebca40ba255960a3178d6d861a54dba813d0b813fde7b5a5082628087264da"],["acd484e2f0c7f65309ad178a9f559abde09796974c57e714c35f110dfc27ccbe","cc338921b0a7d9fd64380971763b61e9add888a4375f8e0f05cc262ac64f9c37"],["774ae7f858a9411e5ef4246b70c65aac5649980be5c17891bbec17895da008cb","d984a032eb6b5e190243dd56d7b7b365372db1e2dff9d6a8301d74c9c953c61b"],["f28773c2d975288bc7d1d205c3748651b075fbc6610e58cddeeddf8f19405aa8","ab0902e8d880a89758212eb65cdaf473a1a06da521fa91f29b5cb52db03ed81"],["d7924d4f7d43ea965a465ae3095ff41131e5946f3c85f79e44adbcf8e27e080e","581e2872a86c72a683842ec228cc6defea40af2bd896d3a5c504dc9ff6a26b58"],["defdea4cdb677750a420fee807eacf21eb9898ae79b9768766e4faa04a2d4a34","4211ab0694635168e997b0ead2a93daeced1f4a04a95c0f6cfb199f69e56eb77"],["2b4ea0a797a443d293ef5cff444f4979f06acfebd7e86d277475656138385b6c","85e89bc037945d93b343083b5a1c86131a01f60c50269763b570c854e5c09b7a"],["352bbf4a4cdd12564f93fa332ce333301d9ad40271f8107181340aef25be59d5","321eb4075348f534d59c18259dda3e1f4a1b3b2e71b1039c67bd3d8bcf81998c"],["2fa2104d6b38d11b0230010559879124e42ab8dfeff5ff29dc9cdadd4ecacc3f","2de1068295dd865b64569335bd5dd80181d70ecfc882648423ba76b532b7d67"],["9248279b09b4d68dab21a9b066edda83263c3d84e09572e269ca0cd7f5453714","73016f7bf234aade5d1aa71bdea2b1ff3fc0de2a887912ffe54a32ce97cb3402"],["daed4f2be3a8bf278e70132fb0beb7522f570e144bf615c07e996d443dee8729","a69dce4a7d6c98e8d4a1aca87ef8d7003f83c230f3afa726ab40e52290be1c55"],["c44d12c7065d812e8acf28d7cbb19f9011ecd9e9fdf281b0e6a3b5e87d22e7db","2119a460ce326cdc76c45926c982fdac0e106e861edf61c5a039063f0e0e6482"],["6a245bf6dc698504c89a20cfded60853152b695336c28063b61c65cbd269e6b4","e022cf42c2bd4a708b3f5126f16a24ad8b33ba48d0423b6efd5e6348100d8a82"],["1697ffa6fd9de627c077e3d2fe541084ce13300b0bec1146f95ae57f0d0bd6a5","b9c398f186806f5d27561506e4557433a2cf15009e498ae7adee9d63d01b2396"],["605bdb019981718b986d0f07e834cb0d9deb8360ffb7f61df982345ef27a7479","2972d2de4f8d20681a78d93ec96fe23c26bfae84fb14db43b01e1e9056b8c49"],["62d14dab4150bf497402fdc45a215e10dcb01c354959b10cfe31c7e9d87ff33d","80fc06bd8cc5b01098088a1950eed0db01aa132967ab472235f5642483b25eaf"],["80c60ad0040f27dade5b4b06c408e56b2c50e9f56b9b8b425e555c2f86308b6f","1c38303f1cc5c30f26e66bad7fe72f70a65eed4cbe7024eb1aa01f56430bd57a"],["7a9375ad6167ad54aa74c6348cc54d344cc5dc9487d847049d5eabb0fa03c8fb","d0e3fa9eca8726909559e0d79269046bdc59ea10c70ce2b02d499ec224dc7f7"],["d528ecd9b696b54c907a9ed045447a79bb408ec39b68df504bb51f459bc3ffc9","eecf41253136e5f99966f21881fd656ebc4345405c520dbc063465b521409933"],["49370a4b5f43412ea25f514e8ecdad05266115e4a7ecb1387231808f8b45963","758f3f41afd6ed428b3081b0512fd62a54c3f3afbb5b6764b653052a12949c9a"],["77f230936ee88cbbd73df930d64702ef881d811e0e1498e2f1c13eb1fc345d74","958ef42a7886b6400a08266e9ba1b37896c95330d97077cbbe8eb3c7671c60d6"],["f2dac991cc4ce4b9ea44887e5c7c0bce58c80074ab9d4dbaeb28531b7739f530","e0dedc9b3b2f8dad4da1f32dec2531df9eb5fbeb0598e4fd1a117dba703a3c37"],["463b3d9f662621fb1b4be8fbbe2520125a216cdfc9dae3debcba4850c690d45b","5ed430d78c296c3543114306dd8622d7c622e27c970a1de31cb377b01af7307e"],["f16f804244e46e2a09232d4aff3b59976b98fac14328a2d1a32496b49998f247","cedabd9b82203f7e13d206fcdf4e33d92a6c53c26e5cce26d6579962c4e31df6"],["caf754272dc84563b0352b7a14311af55d245315ace27c65369e15f7151d41d1","cb474660ef35f5f2a41b643fa5e460575f4fa9b7962232a5c32f908318a04476"],["2600ca4b282cb986f85d0f1709979d8b44a09c07cb86d7c124497bc86f082120","4119b88753c15bd6a693b03fcddbb45d5ac6be74ab5f0ef44b0be9475a7e4b40"],["7635ca72d7e8432c338ec53cd12220bc01c48685e24f7dc8c602a7746998e435","91b649609489d613d1d5e590f78e6d74ecfc061d57048bad9e76f302c5b9c61"],["754e3239f325570cdbbf4a87deee8a66b7f2b33479d468fbc1a50743bf56cc18","673fb86e5bda30fb3cd0ed304ea49a023ee33d0197a695d0c5d98093c536683"],["e3e6bd1071a1e96aff57859c82d570f0330800661d1c952f9fe2694691d9b9e8","59c9e0bba394e76f40c0aa58379a3cb6a5a2283993e90c4167002af4920e37f5"],["186b483d056a033826ae73d88f732985c4ccb1f32ba35f4b4cc47fdcf04aa6eb","3b952d32c67cf77e2e17446e204180ab21fb8090895138b4a4a797f86e80888b"],["df9d70a6b9876ce544c98561f4be4f725442e6d2b737d9c91a8321724ce0963f","55eb2dafd84d6ccd5f862b785dc39d4ab157222720ef9da217b8c45cf2ba2417"],["5edd5cc23c51e87a497ca815d5dce0f8ab52554f849ed8995de64c5f34ce7143","efae9c8dbc14130661e8cec030c89ad0c13c66c0d17a2905cdc706ab7399a868"],["290798c2b6476830da12fe02287e9e777aa3fba1c355b17a722d362f84614fba","e38da76dcd440621988d00bcf79af25d5b29c094db2a23146d003afd41943e7a"],["af3c423a95d9f5b3054754efa150ac39cd29552fe360257362dfdecef4053b45","f98a3fd831eb2b749a93b0e6f35cfb40c8cd5aa667a15581bc2feded498fd9c6"],["766dbb24d134e745cccaa28c99bf274906bb66b26dcf98df8d2fed50d884249a","744b1152eacbe5e38dcc887980da38b897584a65fa06cedd2c924f97cbac5996"],["59dbf46f8c94759ba21277c33784f41645f7b44f6c596a58ce92e666191abe3e","c534ad44175fbc300f4ea6ce648309a042ce739a7919798cd85e216c4a307f6e"],["f13ada95103c4537305e691e74e9a4a8dd647e711a95e73cb62dc6018cfd87b8","e13817b44ee14de663bf4bc808341f326949e21a6a75c2570778419bdaf5733d"],["7754b4fa0e8aced06d4167a2c59cca4cda1869c06ebadfb6488550015a88522c","30e93e864e669d82224b967c3020b8fa8d1e4e350b6cbcc537a48b57841163a2"],["948dcadf5990e048aa3874d46abef9d701858f95de8041d2a6828c99e2262519","e491a42537f6e597d5d28a3224b1bc25df9154efbd2ef1d2cbba2cae5347d57e"],["7962414450c76c1689c7b48f8202ec37fb224cf5ac0bfa1570328a8a3d7c77ab","100b610ec4ffb4760d5c1fc133ef6f6b12507a051f04ac5760afa5b29db83437"],["3514087834964b54b15b160644d915485a16977225b8847bb0dd085137ec47ca","ef0afbb2056205448e1652c48e8127fc6039e77c15c2378b7e7d15a0de293311"],["d3cc30ad6b483e4bc79ce2c9dd8bc54993e947eb8df787b442943d3f7b527eaf","8b378a22d827278d89c5e9be8f9508ae3c2ad46290358630afb34db04eede0a4"],["1624d84780732860ce1c78fcbfefe08b2b29823db913f6493975ba0ff4847610","68651cf9b6da903e0914448c6cd9d4ca896878f5282be4c8cc06e2a404078575"],["733ce80da955a8a26902c95633e62a985192474b5af207da6df7b4fd5fc61cd4","f5435a2bd2badf7d485a4d8b8db9fcce3e1ef8e0201e4578c54673bc1dc5ea1d"],["15d9441254945064cf1a1c33bbd3b49f8966c5092171e699ef258dfab81c045c","d56eb30b69463e7234f5137b73b84177434800bacebfc685fc37bbe9efe4070d"],["a1d0fcf2ec9de675b612136e5ce70d271c21417c9d2b8aaaac138599d0717940","edd77f50bcb5a3cab2e90737309667f2641462a54070f3d519212d39c197a629"],["e22fbe15c0af8ccc5780c0735f84dbe9a790badee8245c06c7ca37331cb36980","a855babad5cd60c88b430a69f53a1a7a38289154964799be43d06d77d31da06"],["311091dd9860e8e20ee13473c1155f5f69635e394704eaa74009452246cfa9b3","66db656f87d1f04fffd1f04788c06830871ec5a64feee685bd80f0b1286d8374"],["34c1fd04d301be89b31c0442d3e6ac24883928b45a9340781867d4232ec2dbdf","9414685e97b1b5954bd46f730174136d57f1ceeb487443dc5321857ba73abee"],["f219ea5d6b54701c1c14de5b557eb42a8d13f3abbcd08affcc2a5e6b049b8d63","4cb95957e83d40b0f73af4544cccf6b1f4b08d3c07b27fb8d8c2962a400766d1"],["d7b8740f74a8fbaab1f683db8f45de26543a5490bca627087236912469a0b448","fa77968128d9c92ee1010f337ad4717eff15db5ed3c049b3411e0315eaa4593b"],["32d31c222f8f6f0ef86f7c98d3a3335ead5bcd32abdd94289fe4d3091aa824bf","5f3032f5892156e39ccd3d7915b9e1da2e6dac9e6f26e961118d14b8462e1661"],["7461f371914ab32671045a155d9831ea8793d77cd59592c4340f86cbc18347b5","8ec0ba238b96bec0cbdddcae0aa442542eee1ff50c986ea6b39847b3cc092ff6"],["ee079adb1df1860074356a25aa38206a6d716b2c3e67453d287698bad7b2b2d6","8dc2412aafe3be5c4c5f37e0ecc5f9f6a446989af04c4e25ebaac479ec1c8c1e"],["16ec93e447ec83f0467b18302ee620f7e65de331874c9dc72bfd8616ba9da6b5","5e4631150e62fb40d0e8c2a7ca5804a39d58186a50e497139626778e25b0674d"],["eaa5f980c245f6f038978290afa70b6bd8855897f98b6aa485b96065d537bd99","f65f5d3e292c2e0819a528391c994624d784869d7e6ea67fb18041024edc07dc"],["78c9407544ac132692ee1910a02439958ae04877151342ea96c4b6b35a49f51","f3e0319169eb9b85d5404795539a5e68fa1fbd583c064d2462b675f194a3ddb4"],["494f4be219a1a77016dcd838431aea0001cdc8ae7a6fc688726578d9702857a5","42242a969283a5f339ba7f075e36ba2af925ce30d767ed6e55f4b031880d562c"],["a598a8030da6d86c6bc7f2f5144ea549d28211ea58faa70ebf4c1e665c1fe9b5","204b5d6f84822c307e4b4a7140737aec23fc63b65b35f86a10026dbd2d864e6b"],["c41916365abb2b5d09192f5f2dbeafec208f020f12570a184dbadc3e58595997","4f14351d0087efa49d245b328984989d5caf9450f34bfc0ed16e96b58fa9913"],["841d6063a586fa475a724604da03bc5b92a2e0d2e0a36acfe4c73a5514742881","73867f59c0659e81904f9a1c7543698e62562d6744c169ce7a36de01a8d6154"],["5e95bb399a6971d376026947f89bde2f282b33810928be4ded112ac4d70e20d5","39f23f366809085beebfc71181313775a99c9aed7d8ba38b161384c746012865"],["36e4641a53948fd476c39f8a99fd974e5ec07564b5315d8bf99471bca0ef2f66","d2424b1b1abe4eb8164227b085c9aa9456ea13493fd563e06fd51cf5694c78fc"],["336581ea7bfbbb290c191a2f507a41cf5643842170e914faeab27c2c579f726","ead12168595fe1be99252129b6e56b3391f7ab1410cd1e0ef3dcdcabd2fda224"],["8ab89816dadfd6b6a1f2634fcf00ec8403781025ed6890c4849742706bd43ede","6fdcef09f2f6d0a044e654aef624136f503d459c3e89845858a47a9129cdd24e"],["1e33f1a746c9c5778133344d9299fcaa20b0938e8acff2544bb40284b8c5fb94","60660257dd11b3aa9c8ed618d24edff2306d320f1d03010e33a7d2057f3b3b6"],["85b7c1dcb3cec1b7ee7f30ded79dd20a0ed1f4cc18cbcfcfa410361fd8f08f31","3d98a9cdd026dd43f39048f25a8847f4fcafad1895d7a633c6fed3c35e999511"],["29df9fbd8d9e46509275f4b125d6d45d7fbe9a3b878a7af872a2800661ac5f51","b4c4fe99c775a606e2d8862179139ffda61dc861c019e55cd2876eb2a27d84b"],["a0b1cae06b0a847a3fea6e671aaf8adfdfe58ca2f768105c8082b2e449fce252","ae434102edde0958ec4b19d917a6a28e6b72da1834aff0e650f049503a296cf2"],["4e8ceafb9b3e9a136dc7ff67e840295b499dfb3b2133e4ba113f2e4c0e121e5","cf2174118c8b6d7a4b48f6d534ce5c79422c086a63460502b827ce62a326683c"],["d24a44e047e19b6f5afb81c7ca2f69080a5076689a010919f42725c2b789a33b","6fb8d5591b466f8fc63db50f1c0f1c69013f996887b8244d2cdec417afea8fa3"],["ea01606a7a6c9cdd249fdfcfacb99584001edd28abbab77b5104e98e8e3b35d4","322af4908c7312b0cfbfe369f7a7b3cdb7d4494bc2823700cfd652188a3ea98d"],["af8addbf2b661c8a6c6328655eb96651252007d8c5ea31be4ad196de8ce2131f","6749e67c029b85f52a034eafd096836b2520818680e26ac8f3dfbcdb71749700"],["e3ae1974566ca06cc516d47e0fb165a674a3dabcfca15e722f0e3450f45889","2aeabe7e4531510116217f07bf4d07300de97e4874f81f533420a72eeb0bd6a4"],["591ee355313d99721cf6993ffed1e3e301993ff3ed258802075ea8ced397e246","b0ea558a113c30bea60fc4775460c7901ff0b053d25ca2bdeee98f1a4be5d196"],["11396d55fda54c49f19aa97318d8da61fa8584e47b084945077cf03255b52984","998c74a8cd45ac01289d5833a7beb4744ff536b01b257be4c5767bea93ea57a4"],["3c5d2a1ba39c5a1790000738c9e0c40b8dcdfd5468754b6405540157e017aa7a","b2284279995a34e2f9d4de7396fc18b80f9b8b9fdd270f6661f79ca4c81bd257"],["cc8704b8a60a0defa3a99a7299f2e9c3fbc395afb04ac078425ef8a1793cc030","bdd46039feed17881d1e0862db347f8cf395b74fc4bcdc4e940b74e3ac1f1b13"],["c533e4f7ea8555aacd9777ac5cad29b97dd4defccc53ee7ea204119b2889b197","6f0a256bc5efdf429a2fb6242f1a43a2d9b925bb4a4b3a26bb8e0f45eb596096"],["c14f8f2ccb27d6f109f6d08d03cc96a69ba8c34eec07bbcf566d48e33da6593","c359d6923bb398f7fd4473e16fe1c28475b740dd098075e6c0e8649113dc3a38"],["a6cbc3046bc6a450bac24789fa17115a4c9739ed75f8f21ce441f72e0b90e6ef","21ae7f4680e889bb130619e2c0f95a360ceb573c70603139862afd617fa9b9f"],["347d6d9a02c48927ebfb86c1359b1caf130a3c0267d11ce6344b39f99d43cc38","60ea7f61a353524d1c987f6ecec92f086d565ab687870cb12689ff1e31c74448"],["da6545d2181db8d983f7dcb375ef5866d47c67b1bf31c8cf855ef7437b72656a","49b96715ab6878a79e78f07ce5680c5d6673051b4935bd897fea824b77dc208a"],["c40747cc9d012cb1a13b8148309c6de7ec25d6945d657146b9d5994b8feb1111","5ca560753be2a12fc6de6caf2cb489565db936156b9514e1bb5e83037e0fa2d4"],["4e42c8ec82c99798ccf3a610be870e78338c7f713348bd34c8203ef4037f3502","7571d74ee5e0fb92a7a8b33a07783341a5492144cc54bcc40a94473693606437"],["3775ab7089bc6af823aba2e1af70b236d251cadb0c86743287522a1b3b0dedea","be52d107bcfa09d8bcb9736a828cfa7fac8db17bf7a76a2c42ad961409018cf7"],["cee31cbf7e34ec379d94fb814d3d775ad954595d1314ba8846959e3e82f74e26","8fd64a14c06b589c26b947ae2bcf6bfa0149ef0be14ed4d80f448a01c43b1c6d"],["b4f9eaea09b6917619f6ea6a4eb5464efddb58fd45b1ebefcdc1a01d08b47986","39e5c9925b5a54b07433a4f18c61726f8bb131c012ca542eb24a8ac07200682a"],["d4263dfc3d2df923a0179a48966d30ce84e2515afc3dccc1b77907792ebcc60e","62dfaf07a0f78feb30e30d6295853ce189e127760ad6cf7fae164e122a208d54"],["48457524820fa65a4f8d35eb6930857c0032acc0a4a2de422233eeda897612c4","25a748ab367979d98733c38a1fa1c2e7dc6cc07db2d60a9ae7a76aaa49bd0f77"],["dfeeef1881101f2cb11644f3a2afdfc2045e19919152923f367a1767c11cceda","ecfb7056cf1de042f9420bab396793c0c390bde74b4bbdff16a83ae09a9a7517"],["6d7ef6b17543f8373c573f44e1f389835d89bcbc6062ced36c82df83b8fae859","cd450ec335438986dfefa10c57fea9bcc521a0959b2d80bbf74b190dca712d10"],["e75605d59102a5a2684500d3b991f2e3f3c88b93225547035af25af66e04541f","f5c54754a8f71ee540b9b48728473e314f729ac5308b06938360990e2bfad125"],["eb98660f4c4dfaa06a2be453d5020bc99a0c2e60abe388457dd43fefb1ed620c","6cb9a8876d9cb8520609af3add26cd20a0a7cd8a9411131ce85f44100099223e"],["13e87b027d8514d35939f2e6892b19922154596941888336dc3563e3b8dba942","fef5a3c68059a6dec5d624114bf1e91aac2b9da568d6abeb2570d55646b8adf1"],["ee163026e9fd6fe017c38f06a5be6fc125424b371ce2708e7bf4491691e5764a","1acb250f255dd61c43d94ccc670d0f58f49ae3fa15b96623e5430da0ad6c62b2"],["b268f5ef9ad51e4d78de3a750c2dc89b1e626d43505867999932e5db33af3d80","5f310d4b3c99b9ebb19f77d41c1dee018cf0d34fd4191614003e945a1216e423"],["ff07f3118a9df035e9fad85eb6c7bfe42b02f01ca99ceea3bf7ffdba93c4750d","438136d603e858a3a5c440c38eccbaddc1d2942114e2eddd4740d098ced1f0d8"],["8d8b9855c7c052a34146fd20ffb658bea4b9f69e0d825ebec16e8c3ce2b526a1","cdb559eedc2d79f926baf44fb84ea4d44bcf50fee51d7ceb30e2e7f463036758"],["52db0b5384dfbf05bfa9d472d7ae26dfe4b851ceca91b1eba54263180da32b63","c3b997d050ee5d423ebaf66a6db9f57b3180c902875679de924b69d84a7b375"],["e62f9490d3d51da6395efd24e80919cc7d0f29c3f3fa48c6fff543becbd43352","6d89ad7ba4876b0b22c2ca280c682862f342c8591f1daf5170e07bfd9ccafa7d"],["7f30ea2476b399b4957509c88f77d0191afa2ff5cb7b14fd6d8e7d65aaab1193","ca5ef7d4b231c94c3b15389a5f6311e9daff7bb67b103e9880ef4bff637acaec"],["5098ff1e1d9f14fb46a210fada6c903fef0fb7b4a1dd1d9ac60a0361800b7a00","9731141d81fc8f8084d37c6e7542006b3ee1b40d60dfe5362a5b132fd17ddc0"],["32b78c7de9ee512a72895be6b9cbefa6e2f3c4ccce445c96b9f2c81e2778ad58","ee1849f513df71e32efc3896ee28260c73bb80547ae2275ba497237794c8753c"],["e2cb74fddc8e9fbcd076eef2a7c72b0ce37d50f08269dfc074b581550547a4f7","d3aa2ed71c9dd2247a62df062736eb0baddea9e36122d2be8641abcb005cc4a4"],["8438447566d4d7bedadc299496ab357426009a35f235cb141be0d99cd10ae3a8","c4e1020916980a4da5d01ac5e6ad330734ef0d7906631c4f2390426b2edd791f"],["4162d488b89402039b584c6fc6c308870587d9c46f660b878ab65c82c711d67e","67163e903236289f776f22c25fb8a3afc1732f2b84b4e95dbda47ae5a0852649"],["3fad3fa84caf0f34f0f89bfd2dcf54fc175d767aec3e50684f3ba4a4bf5f683d","cd1bc7cb6cc407bb2f0ca647c718a730cf71872e7d0d2a53fa20efcdfe61826"],["674f2600a3007a00568c1a7ce05d0816c1fb84bf1370798f1c69532faeb1a86b","299d21f9413f33b3edf43b257004580b70db57da0b182259e09eecc69e0d38a5"],["d32f4da54ade74abb81b815ad1fb3b263d82d6c692714bcff87d29bd5ee9f08f","f9429e738b8e53b968e99016c059707782e14f4535359d582fc416910b3eea87"],["30e4e670435385556e593657135845d36fbb6931f72b08cb1ed954f1e3ce3ff6","462f9bce619898638499350113bbc9b10a878d35da70740dc695a559eb88db7b"],["be2062003c51cc3004682904330e4dee7f3dcd10b01e580bf1971b04d4cad297","62188bc49d61e5428573d48a74e1c655b1c61090905682a0d5558ed72dccb9bc"],["93144423ace3451ed29e0fb9ac2af211cb6e84a601df5993c419859fff5df04a","7c10dfb164c3425f5c71a3f9d7992038f1065224f72bb9d1d902a6d13037b47c"],["b015f8044f5fcbdcf21ca26d6c34fb8197829205c7b7d2a7cb66418c157b112c","ab8c1e086d04e813744a655b2df8d5f83b3cdc6faa3088c1d3aea1454e3a1d5f"],["d5e9e1da649d97d89e4868117a465a3a4f8a18de57a140d36b3f2af341a21b52","4cb04437f391ed73111a13cc1d4dd0db1693465c2240480d8955e8592f27447a"],["d3ae41047dd7ca065dbf8ed77b992439983005cd72e16d6f996a5316d36966bb","bd1aeb21ad22ebb22a10f0303417c6d964f8cdd7df0aca614b10dc14d125ac46"],["463e2763d885f958fc66cdd22800f0a487197d0a82e377b49f80af87c897b065","bfefacdb0e5d0fd7df3a311a94de062b26b80c61fbc97508b79992671ef7ca7f"],["7985fdfd127c0567c6f53ec1bb63ec3158e597c40bfe747c83cddfc910641917","603c12daf3d9862ef2b25fe1de289aed24ed291e0ec6708703a5bd567f32ed03"],["74a1ad6b5f76e39db2dd249410eac7f99e74c59cb83d2d0ed5ff1543da7703e9","cc6157ef18c9c63cd6193d83631bbea0093e0968942e8c33d5737fd790e0db08"],["30682a50703375f602d416664ba19b7fc9bab42c72747463a71d0896b22f6da3","553e04f6b018b4fa6c8f39e7f311d3176290d0e0f19ca73f17714d9977a22ff8"],["9e2158f0d7c0d5f26c3791efefa79597654e7a2b2464f52b1ee6c1347769ef57","712fcdd1b9053f09003a3481fa7762e9ffd7c8ef35a38509e2fbf2629008373"],["176e26989a43c9cfeba4029c202538c28172e566e3c4fce7322857f3be327d66","ed8cc9d04b29eb877d270b4878dc43c19aefd31f4eee09ee7b47834c1fa4b1c3"],["75d46efea3771e6e68abb89a13ad747ecf1892393dfc4f1b7004788c50374da8","9852390a99507679fd0b86fd2b39a868d7efc22151346e1a3ca4726586a6bed8"],["809a20c67d64900ffb698c4c825f6d5f2310fb0451c869345b7319f645605721","9e994980d9917e22b76b061927fa04143d096ccc54963e6a5ebfa5f3f8e286c1"],["1b38903a43f7f114ed4500b4eac7083fdefece1cf29c63528d563446f972c180","4036edc931a60ae889353f77fd53de4a2708b26b6f5da72ad3394119daf408f9"]]}}});var cu=L(iv=>{"use strict";var J0=iv,bi=ls(),N0=E0(),x5=nt(),tv=x5.assert;function nv(t){t.type==="short"?this.curve=new N0.short(t):t.type==="edwards"?this.curve=new N0.edwards(t):this.curve=new N0.mont(t),this.g=this.curve.g,this.n=this.curve.n,this.hash=t.hash,tv(this.g.validate(),"Invalid curve"),tv(this.g.mul(this.n).isInfinity(),"Invalid curve, G*N != O")}J0.PresetCurve=nv;function pi(t,r){Object.defineProperty(J0,t,{configurable:!0,enumerable:!0,get:function(){var e=new nv(r);return Object.defineProperty(J0,t,{configurable:!0,enumerable:!0,value:e}),e}})}pi("p192",{type:"short",prime:"p192",p:"ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff",a:"ffffffff ffffffff ffffffff fffffffe ffffffff fffffffc",b:"64210519 e59c80e7 0fa7e9ab 72243049 feb8deec c146b9b1",n:"ffffffff ffffffff ffffffff 99def836 146bc9b1 b4d22831",hash:bi.sha256,gRed:!1,g:["188da80e b03090f6 7cbf20eb 43a18800 f4ff0afd 82ff1012","07192b95 ffc8da78 631011ed 6b24cdd5 73f977a1 1e794811"]});pi("p224",{type:"short",prime:"p224",p:"ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001",a:"ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff fffffffe",b:"b4050a85 0c04b3ab f5413256 5044b0b7 d7bfd8ba 270b3943 2355ffb4",n:"ffffffff ffffffff ffffffff ffff16a2 e0b8f03e 13dd2945 5c5c2a3d",hash:bi.sha256,gRed:!1,g:["b70e0cbd 6bb4bf7f 321390b9 4a03c1d3 56c21122 343280d6 115c1d21","bd376388 b5f723fb 4c22dfe6 cd4375a0 5a074764 44d58199 85007e34"]});pi("p256",{type:"short",prime:null,p:"ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff ffffffff",a:"ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff fffffffc",b:"5ac635d8 aa3a93e7 b3ebbd55 769886bc 651d06b0 cc53b0f6 3bce3c3e 27d2604b",n:"ffffffff 00000000 ffffffff ffffffff bce6faad a7179e84 f3b9cac2 fc632551",hash:bi.sha256,gRed:!1,g:["6b17d1f2 e12c4247 f8bce6e5 63a440f2 77037d81 2deb33a0 f4a13945 d898c296","4fe342e2 fe1a7f9b 8ee7eb4a 7c0f9e16 2bce3357 6b315ece cbb64068 37bf51f5"]});pi("p384",{type:"short",prime:null,p:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe ffffffff 00000000 00000000 ffffffff",a:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe ffffffff 00000000 00000000 fffffffc",b:"b3312fa7 e23ee7e4 988e056b e3f82d19 181d9c6e fe814112 0314088f 5013875a c656398d 8a2ed19d 2a85c8ed d3ec2aef",n:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff c7634d81 f4372ddf 581a0db2 48b0a77a ecec196a ccc52973",hash:bi.sha384,gRed:!1,g:["aa87ca22 be8b0537 8eb1c71e f320ad74 6e1d3b62 8ba79b98 59f741e0 82542a38 5502f25d bf55296c 3a545e38 72760ab7","3617de4a 96262c6f 5d9e98bf 9292dc29 f8f41dbd 289a147c e9da3113 b5f0b8c0 0a60b1ce 1d7e819d 7a431d7c 90ea0e5f"]});pi("p521",{type:"short",prime:null,p:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff",a:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffc",b:"00000051 953eb961 8e1c9a1f 929a21a0 b68540ee a2da725b 99b315f3 b8b48991 8ef109e1 56193951 ec7e937b 1652c0bd 3bb1bf07 3573df88 3d2c34f1 ef451fd4 6b503f00",n:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffa 51868783 bf2f966b 7fcc0148 f709a5d0 3bb5c9b8 899c47ae bb6fb71e 91386409",hash:bi.sha512,gRed:!1,g:["000000c6 858e06b7 0404e9cd 9e3ecb66 2395b442 9c648139 053fb521 f828af60 6b4d3dba a14b5e77 efe75928 fe1dc127 a2ffa8de 3348b3c1 856a429b f97e7e31 c2e5bd66","00000118 39296a78 9a3bc004 5c8a5fb4 2c7d1bd9 98f54449 579b4468 17afbd17 273e662c 97ee7299 5ef42640 c550b901 3fad0761 353c7086 a272c240 88be9476 9fd16650"]});pi("curve25519",{type:"mont",prime:"p25519",p:"7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed",a:"76d06",b:"1",n:"1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed",hash:bi.sha256,gRed:!1,g:["9"]});pi("ed25519",{type:"edwards",prime:"p25519",p:"7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed",a:"-1",c:"1",d:"52036cee2b6ffe73 8cc740797779e898 00700a4d4141d8ab 75eb4dca135978a3",n:"1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed",hash:bi.sha256,gRed:!1,g:["216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a","6666666666666666666666666666666666666666666666666666666666666658"]});var D0;try{D0=rv()}catch{D0=void 0}pi("secp256k1",{type:"short",prime:"k256",p:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f",a:"0",b:"7",n:"ffffffff ffffffff ffffffff fffffffe baaedce6 af48a03b bfd25e8c d0364141",h:"1",hash:bi.sha256,beta:"7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee",lambda:"5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72",basis:[{a:"3086d221a7d46bcde86c90e49284eb15",b:"-e4437ed6010e88286f547fa90abfe4c3"},{a:"114ca50f7a8e2f3f657c1108d9d44cfd8",b:"3086d221a7d46bcde86c90e49284eb15"}],gRed:!1,g:["79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798","483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8",D0]})});var sv=L((qE,ov)=>{"use strict";var y5=ls(),ca=m0(),av=ci();function vi(t){if(!(this instanceof vi))return new vi(t);this.hash=t.hash,this.predResist=!!t.predResist,this.outLen=this.hash.outSize,this.minEntropy=t.minEntropy||this.hash.hmacStrength,this._reseed=null,this.reseedInterval=null,this.K=null,this.V=null;var r=ca.toArray(t.entropy,t.entropyEnc||"hex"),e=ca.toArray(t.nonce,t.nonceEnc||"hex"),n=ca.toArray(t.pers,t.persEnc||"hex");av(r.length>=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits"),this._init(r,e,n)}ov.exports=vi;vi.prototype._init=function(r,e,n){var i=r.concat(e).concat(n);this.K=new Array(this.outLen/8),this.V=new Array(this.outLen/8);for(var a=0;a=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits"),this._update(r.concat(n||[])),this._reseed=1};vi.prototype.generate=function(r,e,n,i){if(this._reseed>this.reseedInterval)throw new Error("Reseed is required");typeof e!="string"&&(i=n,n=e,e=null),n&&(n=ca.toArray(n,i||"hex"),this._update(n));for(var a=[];a.length{"use strict";var A5=dn(),w5=nt(),I0=w5.assert;function Ur(t,r){this.ec=t,this.priv=null,this.pub=null,r.priv&&this._importPrivate(r.priv,r.privEnc),r.pub&&this._importPublic(r.pub,r.pubEnc)}fv.exports=Ur;Ur.fromPublic=function(r,e,n){return e instanceof Ur?e:new Ur(r,{pub:e,pubEnc:n})};Ur.fromPrivate=function(r,e,n){return e instanceof Ur?e:new Ur(r,{priv:e,privEnc:n})};Ur.prototype.validate=function(){var r=this.getPublic();return r.isInfinity()?{result:!1,reason:"Invalid public key"}:r.validate()?r.mul(this.ec.curve.n).isInfinity()?{result:!0,reason:null}:{result:!1,reason:"Public key * N != O"}:{result:!1,reason:"Public key is not a point"}};Ur.prototype.getPublic=function(r,e){return typeof r=="string"&&(e=r,r=null),this.pub||(this.pub=this.ec.g.mul(this.priv)),e?this.pub.encode(e,r):this.pub};Ur.prototype.getPrivate=function(r){return r==="hex"?this.priv.toString(16,2):this.priv};Ur.prototype._importPrivate=function(r,e){this.priv=new A5(r,e||16),this.priv=this.priv.umod(this.ec.curve.n)};Ur.prototype._importPublic=function(r,e){if(r.x||r.y){this.ec.curve.type==="mont"?I0(r.x,"Need x coordinate"):(this.ec.curve.type==="short"||this.ec.curve.type==="edwards")&&I0(r.x&&r.y,"Need both x and y coordinate"),this.pub=this.ec.curve.point(r.x,r.y);return}this.pub=this.ec.curve.decodePoint(r,e)};Ur.prototype.derive=function(r){return r.validate()||I0(r.validate(),"public point not validated"),r.mul(this.priv).getX()};Ur.prototype.sign=function(r,e,n){return this.ec.sign(r,this,e,n)};Ur.prototype.verify=function(r,e){return this.ec.verify(r,e,this)};Ur.prototype.inspect=function(){return""}});var dv=L((GE,lv)=>{"use strict";var lu=dn(),q0=nt(),_5=q0.assert;function du(t,r){if(t instanceof du)return t;this._importDER(t,r)||(_5(t.r&&t.s,"Signature without r or s"),this.r=new lu(t.r,16),this.s=new lu(t.s,16),t.recoveryParam===void 0?this.recoveryParam=null:this.recoveryParam=t.recoveryParam)}lv.exports=du;function S5(){this.place=0}function U0(t,r){var e=t[r.place++];if(!(e&128))return e;var n=e&15;if(n===0||n>4)return!1;for(var i=0,a=0,o=r.place;a>>=0;return i<=127?!1:(r.place=o,i)}function cv(t){for(var r=0,e=t.length-1;!t[r]&&!(t[r+1]&128)&&r>>3);for(t.push(e|128);--e;)t.push(r>>>(e<<3)&255);t.push(r)}du.prototype.toDER=function(r){var e=this.r.toArray(),n=this.s.toArray();for(e[0]&128&&(e=[0].concat(e)),n[0]&128&&(n=[0].concat(n)),e=cv(e),n=cv(n);!n[0]&&!(n[1]&128);)n=n.slice(1);var i=[2];H0(i,e.length),i=i.concat(e),i.push(2),H0(i,n.length);var a=i.concat(n),o=[48];return H0(o,a.length),o=o.concat(a),q0.encode(o,r)}});var vv=L((jE,pv)=>{"use strict";var la=dn(),hv=sv(),M5=nt(),X0=cu(),P5=w0(),bv=M5.assert,G0=uv(),hu=dv();function At(t){if(!(this instanceof At))return new At(t);typeof t=="string"&&(bv(Object.prototype.hasOwnProperty.call(X0,t),"Unknown curve "+t),t=X0[t]),t instanceof X0.PresetCurve&&(t={curve:t}),this.curve=t.curve.curve,this.n=this.curve.n,this.nh=this.n.ushrn(1),this.g=this.curve.g,this.g=t.curve.g,this.g.precompute(t.curve.n.bitLength()+1),this.hash=t.hash||t.curve.hash}pv.exports=At;At.prototype.keyPair=function(r){return new G0(this,r)};At.prototype.keyFromPrivate=function(r,e){return G0.fromPrivate(this,r,e)};At.prototype.keyFromPublic=function(r,e){return G0.fromPublic(this,r,e)};At.prototype.genKeyPair=function(r){r||(r={});for(var e=new hv({hash:this.hash,pers:r.pers,persEnc:r.persEnc||"utf8",entropy:r.entropy||P5(this.hash.hmacStrength),entropyEnc:r.entropy&&r.entropyEnc||"utf8",nonce:this.n.toArray()}),n=this.n.byteLength(),i=this.n.sub(new la(2));;){var a=new la(e.generate(n));if(!(a.cmp(i)>0))return a.iaddn(1),this.keyFromPrivate(a)}};At.prototype._truncateToN=function(r,e){var n=r.byteLength()*8-this.n.bitLength();return n>0&&(r=r.ushrn(n)),!e&&r.cmp(this.n)>=0?r.sub(this.n):r};At.prototype.sign=function(r,e,n,i){typeof n=="object"&&(i=n,n=null),i||(i={}),e=this.keyFromPrivate(e,n),r=this._truncateToN(new la(r,16));for(var a=this.n.byteLength(),o=e.getPrivate().toArray("be",a),u=r.toArray("be",a),l=new hv({hash:this.hash,entropy:o,nonce:u,pers:i.pers,persEnc:i.persEnc||"utf8"}),s=this.n.sub(new la(1)),p=0;;p++){var _=i.k?i.k(p):new la(l.generate(this.n.byteLength()));if(_=this._truncateToN(_,!0),!(_.cmpn(1)<=0||_.cmp(s)>=0)){var E=this.g.mul(_);if(!E.isInfinity()){var C=E.getX(),P=C.umod(this.n);if(P.cmpn(0)!==0){var B=_.invm(this.n).mul(P.mul(e.getPrivate()).iadd(r));if(B=B.umod(this.n),B.cmpn(0)!==0){var J=(E.getY().isOdd()?1:0)|(C.cmp(P)!==0?2:0);return i.canonical&&B.cmp(this.nh)>0&&(B=this.n.sub(B),J^=1),new hu({r:P,s:B,recoveryParam:J})}}}}}};At.prototype.verify=function(r,e,n,i){r=this._truncateToN(new la(r,16)),n=this.keyFromPublic(n,i),e=new hu(e,"hex");var a=e.r,o=e.s;if(a.cmpn(1)<0||a.cmp(this.n)>=0||o.cmpn(1)<0||o.cmp(this.n)>=0)return!1;var u=o.invm(this.n),l=u.mul(r).umod(this.n),s=u.mul(a).umod(this.n),p;return this.curve._maxwellTrick?(p=this.g.jmulAdd(l,n.getPublic(),s),p.isInfinity()?!1:p.eqXToP(a)):(p=this.g.mulAdd(l,n.getPublic(),s),p.isInfinity()?!1:p.getX().umod(this.n).cmp(a)===0)};At.prototype.recoverPubKey=function(t,r,e,n){bv((3&e)===e,"The recovery param is more than two bits"),r=new hu(r,n);var i=this.n,a=new la(t),o=r.r,u=r.s,l=e&1,s=e>>1;if(o.cmp(this.curve.p.umod(this.curve.n))>=0&&s)throw new Error("Unable to find sencond key candinate");s?o=this.curve.pointFromX(o.add(this.curve.n),l):o=this.curve.pointFromX(o,l);var p=r.r.invm(i),_=i.sub(a).mul(p).umod(i),E=u.mul(p).umod(i);return this.g.mulAdd(_,o,E)};At.prototype.getKeyRecoveryParam=function(t,r,e,n){if(r=new hu(r,n),r.recoveryParam!==null)return r.recoveryParam;for(var i=0;i<4;i++){var a;try{a=this.recoverPubKey(t,r,i)}catch{continue}if(a.eq(e))return i}throw new Error("Unable to find valid recovery factor")}});var yv=L((zE,xv)=>{"use strict";var ds=nt(),mv=ds.assert,gv=ds.parseBytes,so=ds.cachedProperty;function Tr(t,r){this.eddsa=t,this._secret=gv(r.secret),t.isPoint(r.pub)?this._pub=r.pub:this._pubBytes=gv(r.pub)}Tr.fromPublic=function(r,e){return e instanceof Tr?e:new Tr(r,{pub:e})};Tr.fromSecret=function(r,e){return e instanceof Tr?e:new Tr(r,{secret:e})};Tr.prototype.secret=function(){return this._secret};so(Tr,"pubBytes",function(){return this.eddsa.encodePoint(this.pub())});so(Tr,"pub",function(){return this._pubBytes?this.eddsa.decodePoint(this._pubBytes):this.eddsa.g.mul(this.priv())});so(Tr,"privBytes",function(){var r=this.eddsa,e=this.hash(),n=r.encodingLength-1,i=e.slice(0,r.encodingLength);return i[0]&=248,i[n]&=127,i[n]|=64,i});so(Tr,"priv",function(){return this.eddsa.decodeInt(this.privBytes())});so(Tr,"hash",function(){return this.eddsa.hash().update(this.secret()).digest()});so(Tr,"messagePrefix",function(){return this.hash().slice(this.eddsa.encodingLength)});Tr.prototype.sign=function(r){return mv(this._secret,"KeyPair can only verify"),this.eddsa.sign(r,this)};Tr.prototype.verify=function(r,e){return this.eddsa.verify(r,e,this)};Tr.prototype.getSecret=function(r){return mv(this._secret,"KeyPair is public only"),ds.encode(this.secret(),r)};Tr.prototype.getPublic=function(r){return ds.encode(this.pubBytes(),r)};xv.exports=Tr});var wv=L((VE,Av)=>{"use strict";var E5=dn(),bu=nt(),T5=bu.assert,pu=bu.cachedProperty,C5=bu.parseBytes;function da(t,r){this.eddsa=t,typeof r!="object"&&(r=C5(r)),Array.isArray(r)&&(r={R:r.slice(0,t.encodingLength),S:r.slice(t.encodingLength)}),T5(r.R&&r.S,"Signature without R or S"),t.isPoint(r.R)&&(this._R=r.R),r.S instanceof E5&&(this._S=r.S),this._Rencoded=Array.isArray(r.R)?r.R:r.Rencoded,this._Sencoded=Array.isArray(r.S)?r.S:r.Sencoded}pu(da,"S",function(){return this.eddsa.decodeInt(this.Sencoded())});pu(da,"R",function(){return this.eddsa.decodePoint(this.Rencoded())});pu(da,"Rencoded",function(){return this.eddsa.encodePoint(this.R())});pu(da,"Sencoded",function(){return this.eddsa.encodeInt(this.S())});da.prototype.toBytes=function(){return this.Rencoded().concat(this.Sencoded())};da.prototype.toHex=function(){return bu.encode(this.toBytes(),"hex").toUpperCase()};Av.exports=da});var Ev=L((ZE,Pv)=>{"use strict";var B5=ls(),O5=cu(),fo=nt(),F5=fo.assert,Sv=fo.parseBytes,Mv=yv(),_v=wv();function Yr(t){if(F5(t==="ed25519","only tested with ed25519 so far"),!(this instanceof Yr))return new Yr(t);t=O5[t].curve,this.curve=t,this.g=t.g,this.g.precompute(t.n.bitLength()+1),this.pointClass=t.point().constructor,this.encodingLength=Math.ceil(t.n.bitLength()/8),this.hash=B5.sha512}Pv.exports=Yr;Yr.prototype.sign=function(r,e){r=Sv(r);var n=this.keyFromSecret(e),i=this.hashInt(n.messagePrefix(),r),a=this.g.mul(i),o=this.encodePoint(a),u=this.hashInt(o,n.pubBytes(),r).mul(n.priv()),l=i.add(u).umod(this.curve.n);return this.makeSignature({R:a,S:l,Rencoded:o})};Yr.prototype.verify=function(r,e,n){r=Sv(r),e=this.makeSignature(e);var i=this.keyFromPublic(n),a=this.hashInt(e.Rencoded(),i.pubBytes(),r),o=this.g.mul(e.S()),u=e.R().add(i.pub().mul(a));return u.eq(o)};Yr.prototype.hashInt=function(){for(var r=this.hash(),e=0;e{"use strict";var ha=Tv;ha.version=tp().version;ha.utils=nt();ha.rand=w0();ha.curve=E0();ha.curves=cu();ha.ec=vv();ha.eddsa=Ev()});var Bv=L(uo=>{"use strict";var L5=uo&&uo.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(uo,"__esModule",{value:!0});uo.EC=void 0;var k5=L5(Cv()),R5=k5.default.ec;uo.EC=R5});var Ov=L(vu=>{"use strict";Object.defineProperty(vu,"__esModule",{value:!0});vu.version=void 0;vu.version="signing-key/5.7.0"});var bs=L(gi=>{"use strict";Object.defineProperty(gi,"__esModule",{value:!0});gi.computePublicKey=gi.recoverPublicKey=gi.SigningKey=void 0;var N5=Bv(),vr=De(),hs=Ve(),J5=re(),D5=Ov(),z0=new J5.Logger(D5.version),j0=null;function yn(){return j0||(j0=new N5.EC("secp256k1")),j0}var Fv=function(){function t(r){(0,hs.defineReadOnly)(this,"curve","secp256k1"),(0,hs.defineReadOnly)(this,"privateKey",(0,vr.hexlify)(r)),(0,vr.hexDataLength)(this.privateKey)!==32&&z0.throwArgumentError("invalid private key","privateKey","[[ REDACTED ]]");var e=yn().keyFromPrivate((0,vr.arrayify)(this.privateKey));(0,hs.defineReadOnly)(this,"publicKey","0x"+e.getPublic(!1,"hex")),(0,hs.defineReadOnly)(this,"compressedPublicKey","0x"+e.getPublic(!0,"hex")),(0,hs.defineReadOnly)(this,"_isSigningKey",!0)}return t.prototype._addPoint=function(r){var e=yn().keyFromPublic((0,vr.arrayify)(this.publicKey)),n=yn().keyFromPublic((0,vr.arrayify)(r));return"0x"+e.pub.add(n.pub).encodeCompressed("hex")},t.prototype.signDigest=function(r){var e=yn().keyFromPrivate((0,vr.arrayify)(this.privateKey)),n=(0,vr.arrayify)(r);n.length!==32&&z0.throwArgumentError("bad digest length","digest",r);var i=e.sign(n,{canonical:!0});return(0,vr.splitSignature)({recoveryParam:i.recoveryParam,r:(0,vr.hexZeroPad)("0x"+i.r.toString(16),32),s:(0,vr.hexZeroPad)("0x"+i.s.toString(16),32)})},t.prototype.computeSharedSecret=function(r){var e=yn().keyFromPrivate((0,vr.arrayify)(this.privateKey)),n=yn().keyFromPublic((0,vr.arrayify)(Lv(r)));return(0,vr.hexZeroPad)("0x"+e.derive(n.getPublic()).toString(16),32)},t.isSigningKey=function(r){return!!(r&&r._isSigningKey)},t}();gi.SigningKey=Fv;function I5(t,r){var e=(0,vr.splitSignature)(r),n={r:(0,vr.arrayify)(e.r),s:(0,vr.arrayify)(e.s)};return"0x"+yn().recoverPubKey((0,vr.arrayify)(t),n,e.recoveryParam).encode("hex",!1)}gi.recoverPublicKey=I5;function Lv(t,r){var e=(0,vr.arrayify)(t);if(e.length===32){var n=new Fv(e);return r?"0x"+yn().keyFromPrivate(e).getPublic(!0,"hex"):n.publicKey}else{if(e.length===33)return r?(0,vr.hexlify)(e):"0x"+yn().keyFromPublic(e).getPublic(!1,"hex");if(e.length===65)return r?"0x"+yn().keyFromPublic(e).getPublic(!0,"hex"):(0,vr.hexlify)(e)}return z0.throwArgumentError("invalid public or private key","key","[REDACTED]")}gi.computePublicKey=Lv});var kv=L(gu=>{"use strict";Object.defineProperty(gu,"__esModule",{value:!0});gu.version=void 0;gu.version="transactions/5.7.0"});var zn=L(cr=>{"use strict";var U5=cr&&cr.__createBinding||(Object.create?function(t,r,e,n){n===void 0&&(n=e),Object.defineProperty(t,n,{enumerable:!0,get:function(){return r[e]}})}:function(t,r,e,n){n===void 0&&(n=e),t[n]=r[e]}),H5=cr&&cr.__setModuleDefault||(Object.create?function(t,r){Object.defineProperty(t,"default",{enumerable:!0,value:r})}:function(t,r){t.default=r}),q5=cr&&cr.__importStar||function(t){if(t&&t.__esModule)return t;var r={};if(t!=null)for(var e in t)e!=="default"&&Object.prototype.hasOwnProperty.call(t,e)&&U5(r,t,e);return H5(r,t),r};Object.defineProperty(cr,"__esModule",{value:!0});cr.parse=cr.serialize=cr.accessListify=cr.recoverAddress=cr.computeAddress=cr.TransactionTypes=void 0;var ps=pt(),ba=hr(),Xe=De(),X5=ra(),co=tt(),G5=Ve(),mi=q5(Cf()),Rv=bs(),Z0=re(),j5=kv(),qr=new Z0.Logger(j5.version),z5;(function(t){t[t.legacy=0]="legacy",t[t.eip2930=1]="eip2930",t[t.eip1559=2]="eip1559"})(z5=cr.TransactionTypes||(cr.TransactionTypes={}));function K0(t){return t==="0x"?null:(0,ps.getAddress)(t)}function Hr(t){return t==="0x"?X5.Zero:ba.BigNumber.from(t)}var V5=[{name:"nonce",maxLength:32,numeric:!0},{name:"gasPrice",maxLength:32,numeric:!0},{name:"gasLimit",maxLength:32,numeric:!0},{name:"to",length:20},{name:"value",maxLength:32,numeric:!0},{name:"data"}],Z5={chainId:!0,data:!0,gasLimit:!0,gasPrice:!0,nonce:!0,to:!0,type:!0,value:!0};function Nv(t){var r=(0,Rv.computePublicKey)(t);return(0,ps.getAddress)((0,Xe.hexDataSlice)((0,co.keccak256)((0,Xe.hexDataSlice)(r,1)),12))}cr.computeAddress=Nv;function Q0(t,r){return Nv((0,Rv.recoverPublicKey)((0,Xe.arrayify)(t),r))}cr.recoverAddress=Q0;function it(t,r){var e=(0,Xe.stripZeros)(ba.BigNumber.from(t).toHexString());return e.length>32&&qr.throwArgumentError("invalid length for "+r,"transaction:"+r,t),e}function V0(t,r){return{address:(0,ps.getAddress)(t),storageKeys:(r||[]).map(function(e,n){return(0,Xe.hexDataLength)(e)!==32&&qr.throwArgumentError("invalid access list storageKey","accessList["+t+":"+n+"]",e),e.toLowerCase()})}}function mu(t){if(Array.isArray(t))return t.map(function(e,n){return Array.isArray(e)?(e.length>2&&qr.throwArgumentError("access list expected to be [ address, storageKeys[] ]","value["+n+"]",e),V0(e[0],e[1])):V0(e.address,e.storageKeys)});var r=Object.keys(t).map(function(e){var n=t[e].reduce(function(i,a){return i[a]=!0,i},{});return V0(e,Object.keys(n).sort())});return r.sort(function(e,n){return e.address.localeCompare(n.address)}),r}cr.accessListify=mu;function Jv(t){return mu(t).map(function(r){return[r.address,r.storageKeys]})}function Dv(t,r){if(t.gasPrice!=null){var e=ba.BigNumber.from(t.gasPrice),n=ba.BigNumber.from(t.maxFeePerGas||0);e.eq(n)||qr.throwArgumentError("mismatch EIP-1559 gasPrice != maxFeePerGas","tx",{gasPrice:e,maxFeePerGas:n})}var i=[it(t.chainId||0,"chainId"),it(t.nonce||0,"nonce"),it(t.maxPriorityFeePerGas||0,"maxPriorityFeePerGas"),it(t.maxFeePerGas||0,"maxFeePerGas"),it(t.gasLimit||0,"gasLimit"),t.to!=null?(0,ps.getAddress)(t.to):"0x",it(t.value||0,"value"),t.data||"0x",Jv(t.accessList||[])];if(r){var a=(0,Xe.splitSignature)(r);i.push(it(a.recoveryParam,"recoveryParam")),i.push((0,Xe.stripZeros)(a.r)),i.push((0,Xe.stripZeros)(a.s))}return(0,Xe.hexConcat)(["0x02",mi.encode(i)])}function Iv(t,r){var e=[it(t.chainId||0,"chainId"),it(t.nonce||0,"nonce"),it(t.gasPrice||0,"gasPrice"),it(t.gasLimit||0,"gasLimit"),t.to!=null?(0,ps.getAddress)(t.to):"0x",it(t.value||0,"value"),t.data||"0x",Jv(t.accessList||[])];if(r){var n=(0,Xe.splitSignature)(r);e.push(it(n.recoveryParam,"recoveryParam")),e.push((0,Xe.stripZeros)(n.r)),e.push((0,Xe.stripZeros)(n.s))}return(0,Xe.hexConcat)(["0x01",mi.encode(e)])}function K5(t,r){(0,G5.checkProperties)(t,Z5);var e=[];V5.forEach(function(o){var u=t[o.name]||[],l={};o.numeric&&(l.hexPad="left"),u=(0,Xe.arrayify)((0,Xe.hexlify)(u,l)),o.length&&u.length!==o.length&&u.length>0&&qr.throwArgumentError("invalid length for "+o.name,"transaction:"+o.name,u),o.maxLength&&(u=(0,Xe.stripZeros)(u),u.length>o.maxLength&&qr.throwArgumentError("invalid length for "+o.name,"transaction:"+o.name,u)),e.push((0,Xe.hexlify)(u))});var n=0;if(t.chainId!=null?(n=t.chainId,typeof n!="number"&&qr.throwArgumentError("invalid transaction.chainId","transaction",t)):r&&!(0,Xe.isBytesLike)(r)&&r.v>28&&(n=Math.floor((r.v-35)/2)),n!==0&&(e.push((0,Xe.hexlify)(n)),e.push("0x"),e.push("0x")),!r)return mi.encode(e);var i=(0,Xe.splitSignature)(r),a=27+i.recoveryParam;return n!==0?(e.pop(),e.pop(),e.pop(),a+=n*2+8,i.v>28&&i.v!==a&&qr.throwArgumentError("transaction.chainId/signature.v mismatch","signature",r)):i.v!==a&&qr.throwArgumentError("transaction.chainId/signature.v mismatch","signature",r),e.push((0,Xe.hexlify)(a)),e.push((0,Xe.stripZeros)((0,Xe.arrayify)(i.r))),e.push((0,Xe.stripZeros)((0,Xe.arrayify)(i.s))),mi.encode(e)}function Q5(t,r){if(t.type==null||t.type===0)return t.accessList!=null&&qr.throwArgumentError("untyped transactions do not support accessList; include type: 1","transaction",t),K5(t,r);switch(t.type){case 1:return Iv(t,r);case 2:return Dv(t,r);default:break}return qr.throwError("unsupported transaction type: "+t.type,Z0.Logger.errors.UNSUPPORTED_OPERATION,{operation:"serializeTransaction",transactionType:t.type})}cr.serialize=Q5;function Uv(t,r,e){try{var n=Hr(r[0]).toNumber();if(n!==0&&n!==1)throw new Error("bad recid");t.v=n}catch{qr.throwArgumentError("invalid v for transaction type: 1","v",r[0])}t.r=(0,Xe.hexZeroPad)(r[1],32),t.s=(0,Xe.hexZeroPad)(r[2],32);try{var i=(0,co.keccak256)(e(t));t.from=Q0(i,{r:t.r,s:t.s,recoveryParam:t.v})}catch{}}function W5(t){var r=mi.decode(t.slice(1));r.length!==9&&r.length!==12&&qr.throwArgumentError("invalid component count for transaction type: 2","payload",(0,Xe.hexlify)(t));var e=Hr(r[2]),n=Hr(r[3]),i={type:2,chainId:Hr(r[0]).toNumber(),nonce:Hr(r[1]).toNumber(),maxPriorityFeePerGas:e,maxFeePerGas:n,gasPrice:null,gasLimit:Hr(r[4]),to:K0(r[5]),value:Hr(r[6]),data:r[7],accessList:mu(r[8])};return r.length===9||(i.hash=(0,co.keccak256)(t),Uv(i,r.slice(9),Dv)),i}function Y5(t){var r=mi.decode(t.slice(1));r.length!==8&&r.length!==11&&qr.throwArgumentError("invalid component count for transaction type: 1","payload",(0,Xe.hexlify)(t));var e={type:1,chainId:Hr(r[0]).toNumber(),nonce:Hr(r[1]).toNumber(),gasPrice:Hr(r[2]),gasLimit:Hr(r[3]),to:K0(r[4]),value:Hr(r[5]),data:r[6],accessList:mu(r[7])};return r.length===8||(e.hash=(0,co.keccak256)(t),Uv(e,r.slice(8),Iv)),e}function $5(t){var r=mi.decode(t);r.length!==9&&r.length!==6&&qr.throwArgumentError("invalid raw transaction","rawTransaction",t);var e={nonce:Hr(r[0]).toNumber(),gasPrice:Hr(r[1]),gasLimit:Hr(r[2]),to:K0(r[3]),value:Hr(r[4]),data:r[5],chainId:0};if(r.length===6)return e;try{e.v=ba.BigNumber.from(r[6]).toNumber()}catch{return e}if(e.r=(0,Xe.hexZeroPad)(r[7],32),e.s=(0,Xe.hexZeroPad)(r[8],32),ba.BigNumber.from(e.r).isZero()&&ba.BigNumber.from(e.s).isZero())e.chainId=e.v,e.v=0;else{e.chainId=Math.floor((e.v-35)/2),e.chainId<0&&(e.chainId=0);var n=e.v-27,i=r.slice(0,6);e.chainId!==0&&(i.push((0,Xe.hexlify)(e.chainId)),i.push("0x"),i.push("0x"),n-=e.chainId*2+8);var a=(0,co.keccak256)(mi.encode(i));try{e.from=Q0(a,{r:(0,Xe.hexlify)(e.r),s:(0,Xe.hexlify)(e.s),recoveryParam:n})}catch{}e.hash=(0,co.keccak256)(t)}return e.type=null,e}function e7(t){var r=(0,Xe.arrayify)(t);if(r[0]>127)return $5(r);switch(r[0]){case 1:return Y5(r);case 2:return W5(r);default:break}return qr.throwError("unsupported transaction type: "+r[0],Z0.Logger.errors.UNSUPPORTED_OPERATION,{operation:"parseTransaction",transactionType:r[0]})}cr.parse=e7});var Hv=L(xu=>{"use strict";Object.defineProperty(xu,"__esModule",{value:!0});xu.version=void 0;xu.version="contracts/5.7.0"});var Kv=L(Xr=>{"use strict";var wu=Xr&&Xr.__extends||function(){var t=function(r,e){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,i){n.__proto__=i}||function(n,i){for(var a in i)Object.prototype.hasOwnProperty.call(i,a)&&(n[a]=i[a])},t(r,e)};return function(r,e){if(typeof e!="function"&&e!==null)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");t(r,e);function n(){this.constructor=r}r.prototype=e===null?Object.create(e):(n.prototype=e.prototype,new n)}}(),yi=Xr&&Xr.__awaiter||function(t,r,e,n){function i(a){return a instanceof e?a:new e(function(o){o(a)})}return new(e||(e=Promise))(function(a,o){function u(p){try{s(n.next(p))}catch(_){o(_)}}function l(p){try{s(n.throw(p))}catch(_){o(_)}}function s(p){p.done?a(p.value):i(p.value).then(u,l)}s((n=n.apply(t,r||[])).next())})},Ai=Xr&&Xr.__generator||function(t,r){var e={label:0,sent:function(){if(a[0]&1)throw a[1];return a[1]},trys:[],ops:[]},n,i,a,o;return o={next:u(0),throw:u(1),return:u(2)},typeof Symbol=="function"&&(o[Symbol.iterator]=function(){return this}),o;function u(s){return function(p){return l([s,p])}}function l(s){if(n)throw new TypeError("Generator is already executing.");for(;e;)try{if(n=1,i&&(a=s[0]&2?i.return:s[0]?i.throw||((a=i.return)&&a.call(i),0):i.next)&&!(a=a.call(i,s[1])).done)return a;switch(i=0,a&&(s=[s[0]&2,a.value]),s[0]){case 0:case 1:a=s;break;case 4:return e.label++,{value:s[1],done:!1};case 5:e.label++,i=s[1],s=[0];continue;case 7:s=e.ops.pop(),e.trys.pop();continue;default:if(a=e.trys,!(a=a.length>0&&a[a.length-1])&&(s[0]===6||s[0]===2)){e=0;continue}if(s[0]===3&&(!a||s[1]>a[0]&&s[1]1)){s=s.substring(1);var _=p[0];try{a[s]==null&&(0,$.defineReadOnly)(a,s,a[_])}catch{}a.functions[s]==null&&(0,$.defineReadOnly)(a.functions,s,a.functions[_]),a.callStatic[s]==null&&(0,$.defineReadOnly)(a.callStatic,s,a.callStatic[_]),a.populateTransaction[s]==null&&(0,$.defineReadOnly)(a.populateTransaction,s,a.populateTransaction[_]),a.estimateGas[s]==null&&(0,$.defineReadOnly)(a.estimateGas,s,a.estimateGas[_])}})}return t.getContractAddress=function(r){return(0,gs.getContractAddress)(r)},t.getInterface=function(r){return yu.Interface.isInterface(r)?r:new yu.Interface(r)},t.prototype.deployed=function(){return this._deployed()},t.prototype._deployed=function(r){var e=this;return this._deployedPromise||(this.deployTransaction?this._deployedPromise=this.deployTransaction.wait().then(function(){return e}):this._deployedPromise=this.provider.getCode(this.address,r).then(function(n){return n==="0x"&&We.throwError("contract not deployed",kr.Logger.errors.UNSUPPORTED_OPERATION,{contractAddress:e.address,operation:"getDeployed"}),e})),this._deployedPromise},t.prototype.fallback=function(r){var e=this;this.signer||We.throwError("sending a transactions require a signer",kr.Logger.errors.UNSUPPORTED_OPERATION,{operation:"sendTransaction(fallback)"});var n=(0,$.shallowCopy)(r||{});return["from","to"].forEach(function(i){n[i]!=null&&We.throwError("cannot override "+i,kr.Logger.errors.UNSUPPORTED_OPERATION,{operation:i})}),n.to=this.resolvedAddress,this.deployed().then(function(){return e.signer.sendTransaction(n)})},t.prototype.connect=function(r){typeof r=="string"&&(r=new W0.VoidSigner(r,this.provider));var e=new this.constructor(this.address,this.interface,r);return this.deployTransaction&&(0,$.defineReadOnly)(e,"deployTransaction",this.deployTransaction),e},t.prototype.attach=function(r){return new this.constructor(r,this.interface,this.signer||this.provider)},t.isIndexed=function(r){return yu.Indexed.isIndexed(r)},t.prototype._normalizeRunningEvent=function(r){return this._runningEvents[r.tag]?this._runningEvents[r.tag]:r},t.prototype._getRunningEvent=function(r){if(typeof r=="string"){if(r==="error")return this._normalizeRunningEvent(new u7);if(r==="event")return this._normalizeRunningEvent(new ms("event",null));if(r==="*")return this._normalizeRunningEvent(new Gv(this.address,this.interface));var e=this.interface.getEvent(r);return this._normalizeRunningEvent(new Xv(this.address,this.interface,e))}if(r.topics&&r.topics.length>0){try{var n=r.topics[0];if(typeof n!="string")throw new Error("invalid topic");var e=this.interface.getEvent(n);return this._normalizeRunningEvent(new Xv(this.address,this.interface,e,r.topics))}catch{}var i={address:this.address,topics:r.topics};return this._normalizeRunningEvent(new ms(Vv(i),i))}return this._normalizeRunningEvent(new Gv(this.address,this.interface))},t.prototype._checkRunningEvents=function(r){if(r.listenerCount()===0){delete this._runningEvents[r.tag];var e=this._wrappedEmits[r.tag];e&&r.filter&&(this.provider.off(r.filter,e),delete this._wrappedEmits[r.tag])}},t.prototype._wrapEvent=function(r,e,n){var i=this,a=(0,$.deepCopy)(e);return a.removeListener=function(){!n||(r.removeListener(n),i._checkRunningEvents(r))},a.getBlock=function(){return i.provider.getBlock(e.blockHash)},a.getTransaction=function(){return i.provider.getTransaction(e.transactionHash)},a.getTransactionReceipt=function(){return i.provider.getTransactionReceipt(e.transactionHash)},r.prepareEvent(a),a},t.prototype._addEventListener=function(r,e,n){var i=this;if(this.provider||We.throwError("events require a provider or a signer with a provider",kr.Logger.errors.UNSUPPORTED_OPERATION,{operation:"once"}),r.addListener(e,n),this._runningEvents[r.tag]=r,!this._wrappedEmits[r.tag]){var a=function(o){var u=i._wrapEvent(r,o,e);if(u.decodeError==null)try{var l=r.getEmit(u);i.emit.apply(i,r7([r.filter],l,!1))}catch(s){u.decodeError=s.error}r.filter!=null&&i.emit("event",u),u.decodeError!=null&&i.emit("error",u.decodeError,u)};this._wrappedEmits[r.tag]=a,r.filter!=null&&this.provider.on(r.filter,a)}},t.prototype.queryFilter=function(r,e,n){var i=this,a=this._getRunningEvent(r),o=(0,$.shallowCopy)(a.filter);return typeof e=="string"&&(0,pa.isHexString)(e,32)?(n!=null&&We.throwArgumentError("cannot specify toBlock with blockhash","toBlock",n),o.blockHash=e):(o.fromBlock=e??0,o.toBlock=n??"latest"),this.provider.getLogs(o).then(function(u){return u.map(function(l){return i._wrapEvent(a,l,null)})})},t.prototype.on=function(r,e){return this._addEventListener(this._getRunningEvent(r),e,!1),this},t.prototype.once=function(r,e){return this._addEventListener(this._getRunningEvent(r),e,!0),this},t.prototype.emit=function(r){for(var e=[],n=1;n0;return this._checkRunningEvents(i),a},t.prototype.listenerCount=function(r){var e=this;return this.provider?r==null?Object.keys(this._runningEvents).reduce(function(n,i){return n+e._runningEvents[i].listenerCount()},0):this._getRunningEvent(r).listenerCount():0},t.prototype.listeners=function(r){if(!this.provider)return[];if(r==null){var e=[];for(var n in this._runningEvents)this._runningEvents[n].listeners().forEach(function(i){e.push(i)});return e}return this._getRunningEvent(r).listeners()},t.prototype.removeAllListeners=function(r){if(!this.provider)return this;if(r==null){for(var e in this._runningEvents){var n=this._runningEvents[e];n.removeAllListeners(),this._checkRunningEvents(n)}return this}var i=this._getRunningEvent(r);return i.removeAllListeners(),this._checkRunningEvents(i),this},t.prototype.off=function(r,e){if(!this.provider)return this;var n=this._getRunningEvent(r);return n.removeListener(e),this._checkRunningEvents(n),this},t.prototype.removeListener=function(r,e){return this.off(r,e)},t}();Xr.BaseContract=Zv;var Y0=function(t){wu(r,t);function r(){return t!==null&&t.apply(this,arguments)||this}return r}(Zv);Xr.Contract=Y0;var c7=function(){function t(r,e,n){var i=this.constructor,a=null;typeof e=="string"?a=e:(0,pa.isBytes)(e)?a=(0,pa.hexlify)(e):e&&typeof e.object=="string"?a=e.object:a="!",a.substring(0,2)!=="0x"&&(a="0x"+a),(!(0,pa.isHexString)(a)||a.length%2)&&We.throwArgumentError("invalid bytecode","bytecode",e),n&&!W0.Signer.isSigner(n)&&We.throwArgumentError("invalid signer","signer",n),(0,$.defineReadOnly)(this,"bytecode",a),(0,$.defineReadOnly)(this,"interface",(0,$.getStatic)(i,"getInterface")(r)),(0,$.defineReadOnly)(this,"signer",n||null)}return t.prototype.getDeployTransaction=function(){for(var r=[],e=0;e{"use strict";Object.defineProperty(wi,"__esModule",{value:!0});wi.Base58=wi.Base32=wi.BaseX=void 0;var Qv=De(),Su=Ve(),$0=function(){function t(r){(0,Su.defineReadOnly)(this,"alphabet",r),(0,Su.defineReadOnly)(this,"base",r.length),(0,Su.defineReadOnly)(this,"_alphabetMap",{}),(0,Su.defineReadOnly)(this,"_leader",r.charAt(0));for(var e=0;e0;)n.push(a%this.base),a=a/this.base|0}for(var u="",l=0;e[l]===0&&l=0;--s)u+=this.alphabet[n[s]];return u},t.prototype.decode=function(r){if(typeof r!="string")throw new TypeError("Expected String");var e=[];if(r.length===0)return new Uint8Array(e);e.push(0);for(var n=0;n>=8;for(;a>0;)e.push(a&255),a>>=8}for(var u=0;r[u]===this._leader&&u{"use strict";Object.defineProperty(Pu,"__esModule",{value:!0});Pu.pbkdf2=void 0;var h7=require("crypto"),Yv=De();function Wv(t){return Buffer.from((0,Yv.arrayify)(t))}function b7(t,r,e,n,i){return(0,Yv.hexlify)((0,h7.pbkdf2Sync)(Wv(t),Wv(r),e,n,i))}Pu.pbkdf2=b7});var Tu=L(Eu=>{"use strict";Object.defineProperty(Eu,"__esModule",{value:!0});Eu.pbkdf2=void 0;var p7=$v();Object.defineProperty(Eu,"pbkdf2",{enumerable:!0,get:function(){return p7.pbkdf2}})});var el=L(xs=>{"use strict";Object.defineProperty(xs,"__esModule",{value:!0});xs.SupportedAlgorithm=void 0;var v7;(function(t){t.sha256="sha256",t.sha512="sha512"})(v7=xs.SupportedAlgorithm||(xs.SupportedAlgorithm={}))});var e1=L(Cu=>{"use strict";Object.defineProperty(Cu,"__esModule",{value:!0});Cu.version=void 0;Cu.version="sha2/5.7.0"});var t1=L(wt=>{"use strict";var g7=wt&&wt.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(wt,"__esModule",{value:!0});wt.computeHmac=wt.sha512=wt.sha256=wt.ripemd160=void 0;var rl=require("crypto"),m7=g7(ls()),ys=De(),x7=el(),r1=re(),y7=e1(),A7=new r1.Logger(y7.version);function w7(t){return"0x"+m7.default.ripemd160().update((0,ys.arrayify)(t)).digest("hex")}wt.ripemd160=w7;function _7(t){return"0x"+(0,rl.createHash)("sha256").update(Buffer.from((0,ys.arrayify)(t))).digest("hex")}wt.sha256=_7;function S7(t){return"0x"+(0,rl.createHash)("sha512").update(Buffer.from((0,ys.arrayify)(t))).digest("hex")}wt.sha512=S7;function M7(t,r,e){return x7.SupportedAlgorithm[t]||A7.throwError("unsupported algorithm - "+t,r1.Logger.errors.UNSUPPORTED_OPERATION,{operation:"computeHmac",algorithm:t}),"0x"+(0,rl.createHmac)(t,Buffer.from((0,ys.arrayify)(r))).update(Buffer.from((0,ys.arrayify)(e))).digest("hex")}wt.computeHmac=M7});var lo=L(_t=>{"use strict";Object.defineProperty(_t,"__esModule",{value:!0});_t.SupportedAlgorithm=_t.sha512=_t.sha256=_t.ripemd160=_t.computeHmac=void 0;var Bu=t1();Object.defineProperty(_t,"computeHmac",{enumerable:!0,get:function(){return Bu.computeHmac}});Object.defineProperty(_t,"ripemd160",{enumerable:!0,get:function(){return Bu.ripemd160}});Object.defineProperty(_t,"sha256",{enumerable:!0,get:function(){return Bu.sha256}});Object.defineProperty(_t,"sha512",{enumerable:!0,get:function(){return Bu.sha512}});var P7=el();Object.defineProperty(_t,"SupportedAlgorithm",{enumerable:!0,get:function(){return P7.SupportedAlgorithm}})});var n1=L(Ou=>{"use strict";Object.defineProperty(Ou,"__esModule",{value:!0});Ou.version=void 0;Ou.version="wordlists/5.7.0"});var An=L(va=>{"use strict";Object.defineProperty(va,"__esModule",{value:!0});va.Wordlist=va.logger=void 0;var E7=!1,T7=oa(),i1=Ve(),C7=re(),B7=n1();va.logger=new C7.Logger(B7.version);var O7=function(){function t(r){var e=this.constructor;va.logger.checkAbstract(e,t),(0,i1.defineReadOnly)(this,"locale",r)}return t.prototype.split=function(r){return r.toLowerCase().split(/ +/g)},t.prototype.join=function(r){return r.join(" ")},t.check=function(r){for(var e=[],n=0;n<2048;n++){var i=r.getWord(n);if(n!==r.getWordIndex(i))return"0x";e.push(i)}return(0,T7.id)(e.join(` +`)+` +`)},t.register=function(r,e){if(e||(e=r.locale),E7)try{var n=window;n._ethers&&n._ethers.wordlists&&(n._ethers.wordlists[e]||(0,i1.defineReadOnly)(n._ethers.wordlists,e,r))}catch{}},t}();va.Wordlist=O7});var s1=L(ho=>{"use strict";var F7=ho&&ho.__extends||function(){var t=function(r,e){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,i){n.__proto__=i}||function(n,i){for(var a in i)Object.prototype.hasOwnProperty.call(i,a)&&(n[a]=i[a])},t(r,e)};return function(r,e){if(typeof e!="function"&&e!==null)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");t(r,e);function n(){this.constructor=r}r.prototype=e===null?Object.create(e):(n.prototype=e.prototype,new n)}}();Object.defineProperty(ho,"__esModule",{value:!0});ho.langCz=void 0;var tl=An(),L7="AbdikaceAbecedaAdresaAgreseAkceAktovkaAlejAlkoholAmputaceAnanasAndulkaAnekdotaAnketaAntikaAnulovatArchaAroganceAsfaltAsistentAspiraceAstmaAstronomAtlasAtletikaAtolAutobusAzylBabkaBachorBacilBaculkaBadatelBagetaBagrBahnoBakterieBaladaBaletkaBalkonBalonekBalvanBalzaBambusBankomatBarbarBaretBarmanBarokoBarvaBaterkaBatohBavlnaBazalkaBazilikaBazukaBednaBeranBesedaBestieBetonBezinkaBezmocBeztakBicyklBidloBiftekBikinyBilanceBiografBiologBitvaBizonBlahobytBlatouchBlechaBleduleBleskBlikatBliznaBlokovatBlouditBludBobekBobrBodlinaBodnoutBohatostBojkotBojovatBokorysBolestBorecBoroviceBotaBoubelBouchatBoudaBouleBouratBoxerBradavkaBramboraBrankaBratrBreptaBriketaBrkoBrlohBronzBroskevBrunetkaBrusinkaBrzdaBrzyBublinaBubnovatBuchtaBuditelBudkaBudovaBufetBujarostBukviceBuldokBulvaBundaBunkrBurzaButikBuvolBuzolaBydletBylinaBytovkaBzukotCapartCarevnaCedrCeduleCejchCejnCelaCelerCelkemCelniceCeninaCennostCenovkaCentrumCenzorCestopisCetkaChalupaChapadloCharitaChataChechtatChemieChichotChirurgChladChlebaChlubitChmelChmuraChobotChocholChodbaCholeraChomoutChopitChorobaChovChrapotChrlitChrtChrupChtivostChudinaChutnatChvatChvilkaChvostChybaChystatChytitCibuleCigaretaCihelnaCihlaCinkotCirkusCisternaCitaceCitrusCizinecCizostClonaCokolivCouvatCtitelCtnostCudnostCuketaCukrCupotCvaknoutCvalCvikCvrkotCyklistaDalekoDarebaDatelDatumDceraDebataDechovkaDecibelDeficitDeflaceDeklDekretDemokratDepreseDerbyDeskaDetektivDikobrazDiktovatDiodaDiplomDiskDisplejDivadloDivochDlahaDlouhoDluhopisDnesDobroDobytekDocentDochutitDodnesDohledDohodaDohraDojemDojniceDokladDokolaDoktorDokumentDolarDolevaDolinaDomaDominantDomluvitDomovDonutitDopadDopisDoplnitDoposudDoprovodDopustitDorazitDorostDortDosahDoslovDostatekDosudDosytaDotazDotekDotknoutDoufatDoutnatDovozceDozaduDoznatDozorceDrahotaDrakDramatikDravecDrazeDrdolDrobnostDrogerieDrozdDrsnostDrtitDrzostDubenDuchovnoDudekDuhaDuhovkaDusitDusnoDutostDvojiceDvorecDynamitEkologEkonomieElektronElipsaEmailEmiseEmoceEmpatieEpizodaEpochaEpopejEposEsejEsenceEskortaEskymoEtiketaEuforieEvoluceExekuceExkurzeExpediceExplozeExportExtraktFackaFajfkaFakultaFanatikFantazieFarmacieFavoritFazoleFederaceFejetonFenkaFialkaFigurantFilozofFiltrFinanceFintaFixaceFjordFlanelFlirtFlotilaFondFosforFotbalFotkaFotonFrakceFreskaFrontaFukarFunkceFyzikaGalejeGarantGenetikaGeologGilotinaGlazuraGlejtGolemGolfistaGotikaGrafGramofonGranuleGrepGrilGrogGroteskaGumaHadiceHadrHalaHalenkaHanbaHanopisHarfaHarpunaHavranHebkostHejkalHejnoHejtmanHektarHelmaHematomHerecHernaHesloHezkyHistorikHladovkaHlasivkyHlavaHledatHlenHlodavecHlohHloupostHltatHlubinaHluchotaHmatHmotaHmyzHnisHnojivoHnoutHoblinaHobojHochHodinyHodlatHodnotaHodovatHojnostHokejHolinkaHolkaHolubHomoleHonitbaHonoraceHoralHordaHorizontHorkoHorlivecHormonHorninaHoroskopHorstvoHospodaHostinaHotovostHoubaHoufHoupatHouskaHovorHradbaHraniceHravostHrazdaHrbolekHrdinaHrdloHrdostHrnekHrobkaHromadaHrotHroudaHrozenHrstkaHrubostHryzatHubenostHubnoutHudbaHukotHumrHusitaHustotaHvozdHybnostHydrantHygienaHymnaHysterikIdylkaIhnedIkonaIluzeImunitaInfekceInflaceInkasoInovaceInspekceInternetInvalidaInvestorInzerceIronieJablkoJachtaJahodaJakmileJakostJalovecJantarJarmarkJaroJasanJasnoJatkaJavorJazykJedinecJedleJednatelJehlanJekotJelenJelitoJemnostJenomJepiceJeseterJevitJezdecJezeroJinakJindyJinochJiskraJistotaJitrniceJizvaJmenovatJogurtJurtaKabaretKabelKabinetKachnaKadetKadidloKahanKajakKajutaKakaoKaktusKalamitaKalhotyKalibrKalnostKameraKamkolivKamnaKanibalKanoeKantorKapalinaKapelaKapitolaKapkaKapleKapotaKaprKapustaKapybaraKaramelKarotkaKartonKasaKatalogKatedraKauceKauzaKavalecKazajkaKazetaKazivostKdekolivKdesiKedlubenKempKeramikaKinoKlacekKladivoKlamKlapotKlasikaKlaunKlecKlenbaKlepatKlesnoutKlidKlimaKlisnaKloboukKlokanKlopaKloubKlubovnaKlusatKluzkostKmenKmitatKmotrKnihaKnotKoaliceKoberecKobkaKoblihaKobylaKocourKohoutKojenecKokosKoktejlKolapsKoledaKolizeKoloKomandoKometaKomikKomnataKomoraKompasKomunitaKonatKonceptKondiceKonecKonfeseKongresKoninaKonkursKontaktKonzervaKopanecKopieKopnoutKoprovkaKorbelKorektorKormidloKoroptevKorpusKorunaKorytoKorzetKosatecKostkaKotelKotletaKotoulKoukatKoupelnaKousekKouzloKovbojKozaKozorohKrabiceKrachKrajinaKralovatKrasopisKravataKreditKrejcarKresbaKrevetaKriketKritikKrizeKrkavecKrmelecKrmivoKrocanKrokKronikaKropitKroupaKrovkaKrtekKruhadloKrupiceKrutostKrvinkaKrychleKryptaKrystalKrytKudlankaKufrKujnostKuklaKulajdaKulichKulkaKulometKulturaKunaKupodivuKurtKurzorKutilKvalitaKvasinkaKvestorKynologKyselinaKytaraKyticeKytkaKytovecKyvadloLabradorLachtanLadnostLaikLakomecLamelaLampaLanovkaLasiceLasoLasturaLatinkaLavinaLebkaLeckdyLedenLedniceLedovkaLedvinaLegendaLegieLegraceLehceLehkostLehnoutLektvarLenochodLentilkaLepenkaLepidloLetadloLetecLetmoLetokruhLevhartLevitaceLevobokLibraLichotkaLidojedLidskostLihovinaLijavecLilekLimetkaLinieLinkaLinoleumListopadLitinaLitovatLobistaLodivodLogikaLogopedLokalitaLoketLomcovatLopataLopuchLordLososLotrLoudalLouhLoukaLouskatLovecLstivostLucernaLuciferLumpLuskLustraceLviceLyraLyrikaLysinaMadamMadloMagistrMahagonMajetekMajitelMajoritaMakakMakoviceMakrelaMalbaMalinaMalovatMalviceMaminkaMandleMankoMarnostMasakrMaskotMasopustMaticeMatrikaMaturitaMazanecMazivoMazlitMazurkaMdlobaMechanikMeditaceMedovinaMelasaMelounMentolkaMetlaMetodaMetrMezeraMigraceMihnoutMihuleMikinaMikrofonMilenecMilimetrMilostMimikaMincovnaMinibarMinometMinulostMiskaMistrMixovatMladostMlhaMlhovinaMlokMlsatMluvitMnichMnohemMobilMocnostModelkaModlitbaMohylaMokroMolekulaMomentkaMonarchaMonoklMonstrumMontovatMonzunMosazMoskytMostMotivaceMotorkaMotykaMouchaMoudrostMozaikaMozekMozolMramorMravenecMrkevMrtvolaMrzetMrzutostMstitelMudrcMuflonMulatMumieMuniceMusetMutaceMuzeumMuzikantMyslivecMzdaNabouratNachytatNadaceNadbytekNadhozNadobroNadpisNahlasNahnatNahodileNahraditNaivitaNajednouNajistoNajmoutNaklonitNakonecNakrmitNalevoNamazatNamluvitNanometrNaokoNaopakNaostroNapadatNapevnoNaplnitNapnoutNaposledNaprostoNaroditNarubyNarychloNasaditNasekatNaslepoNastatNatolikNavenekNavrchNavzdoryNazvatNebeNechatNeckyNedalekoNedbatNeduhNegaceNehetNehodaNejenNejprveNeklidNelibostNemilostNemocNeochotaNeonkaNepokojNerostNervNesmyslNesouladNetvorNeuronNevinaNezvykleNicotaNijakNikamNikdyNiklNikterakNitroNoclehNohaviceNominaceNoraNorekNositelNosnostNouzeNovinyNovotaNozdraNudaNudleNugetNutitNutnostNutrieNymfaObalObarvitObavaObdivObecObehnatObejmoutObezitaObhajobaObilniceObjasnitObjektObklopitOblastOblekOblibaOblohaObludaObnosObohatitObojekOboutObrazecObrnaObrubaObrysObsahObsluhaObstaratObuvObvazObvinitObvodObvykleObyvatelObzorOcasOcelOcenitOchladitOchotaOchranaOcitnoutOdbojOdbytOdchodOdcizitOdebratOdeslatOdevzdatOdezvaOdhadceOdhoditOdjetOdjinudOdkazOdkoupitOdlivOdlukaOdmlkaOdolnostOdpadOdpisOdploutOdporOdpustitOdpykatOdrazkaOdsouditOdstupOdsunOdtokOdtudOdvahaOdvetaOdvolatOdvracetOdznakOfinaOfsajdOhlasOhniskoOhradaOhrozitOhryzekOkapOkeniceOklikaOknoOkouzlitOkovyOkrasaOkresOkrsekOkruhOkupantOkurkaOkusitOlejninaOlizovatOmakOmeletaOmezitOmladinaOmlouvatOmluvaOmylOnehdyOpakovatOpasekOperaceOpiceOpilostOpisovatOporaOpoziceOpravduOprotiOrbitalOrchestrOrgieOrliceOrlojOrtelOsadaOschnoutOsikaOsivoOslavaOslepitOslnitOslovitOsnovaOsobaOsolitOspalecOstenOstrahaOstudaOstychOsvojitOteplitOtiskOtopOtrhatOtrlostOtrokOtrubyOtvorOvanoutOvarOvesOvlivnitOvoceOxidOzdobaPachatelPacientPadouchPahorekPaktPalandaPalecPalivoPalubaPamfletPamlsekPanenkaPanikaPannaPanovatPanstvoPantoflePaprikaParketaParodiePartaParukaParybaPasekaPasivitaPastelkaPatentPatronaPavoukPaznehtPazourekPeckaPedagogPejsekPekloPelotonPenaltaPendrekPenzePeriskopPeroPestrostPetardaPeticePetrolejPevninaPexesoPianistaPihaPijavicePiklePiknikPilinaPilnostPilulkaPinzetaPipetaPisatelPistolePitevnaPivnicePivovarPlacentaPlakatPlamenPlanetaPlastikaPlatitPlavidloPlazPlechPlemenoPlentaPlesPletivoPlevelPlivatPlnitPlnoPlochaPlodinaPlombaPloutPlukPlynPobavitPobytPochodPocitPoctivecPodatPodcenitPodepsatPodhledPodivitPodkladPodmanitPodnikPodobaPodporaPodrazPodstataPodvodPodzimPoeziePohankaPohnutkaPohovorPohromaPohybPointaPojistkaPojmoutPokazitPoklesPokojPokrokPokutaPokynPolednePolibekPolknoutPolohaPolynomPomaluPominoutPomlkaPomocPomstaPomysletPonechatPonorkaPonurostPopadatPopelPopisekPoplachPoprositPopsatPopudPoradcePorcePorodPoruchaPoryvPosaditPosedPosilaPoskokPoslanecPosouditPospoluPostavaPosudekPosypPotahPotkanPotleskPotomekPotravaPotupaPotvoraPoukazPoutoPouzdroPovahaPovidlaPovlakPovozPovrchPovstatPovykPovzdechPozdravPozemekPoznatekPozorPozvatPracovatPrahoryPraktikaPralesPraotecPraporekPrasePravdaPrincipPrknoProbuditProcentoProdejProfeseProhraProjektProlomitPromilePronikatPropadProrokProsbaProtonProutekProvazPrskavkaPrstenPrudkostPrutPrvekPrvohoryPsanecPsovodPstruhPtactvoPubertaPuchPudlPukavecPuklinaPukrlePultPumpaPuncPupenPusaPusinkaPustinaPutovatPutykaPyramidaPyskPytelRacekRachotRadiaceRadniceRadonRaftRagbyRaketaRakovinaRamenoRampouchRandeRarachRaritaRasovnaRastrRatolestRazanceRazidloReagovatReakceReceptRedaktorReferentReflexRejnokReklamaRekordRekrutRektorReputaceRevizeRevmaRevolverRezervaRiskovatRizikoRobotikaRodokmenRohovkaRokleRokokoRomanetoRopovodRopuchaRorejsRosolRostlinaRotmistrRotopedRotundaRoubenkaRouchoRoupRouraRovinaRovniceRozborRozchodRozdatRozeznatRozhodceRozinkaRozjezdRozkazRozlohaRozmarRozpadRozruchRozsahRoztokRozumRozvodRubrikaRuchadloRukaviceRukopisRybaRybolovRychlostRydloRypadloRytinaRyzostSadistaSahatSakoSamecSamizdatSamotaSanitkaSardinkaSasankaSatelitSazbaSazeniceSborSchovatSebrankaSeceseSedadloSedimentSedloSehnatSejmoutSekeraSektaSekundaSekvojeSemenoSenoServisSesaditSeshoraSeskokSeslatSestraSesuvSesypatSetbaSetinaSetkatSetnoutSetrvatSeverSeznamShodaShrnoutSifonSilniceSirkaSirotekSirupSituaceSkafandrSkaliskoSkanzenSkautSkeptikSkicaSkladbaSkleniceSkloSkluzSkobaSkokanSkoroSkriptaSkrzSkupinaSkvostSkvrnaSlabikaSladidloSlaninaSlastSlavnostSledovatSlepecSlevaSlezinaSlibSlinaSlizniceSlonSloupekSlovoSluchSluhaSlunceSlupkaSlzaSmaragdSmetanaSmilstvoSmlouvaSmogSmradSmrkSmrtkaSmutekSmyslSnadSnahaSnobSobotaSochaSodovkaSokolSopkaSotvaSoubojSoucitSoudceSouhlasSouladSoumrakSoupravaSousedSoutokSouvisetSpalovnaSpasitelSpisSplavSpodekSpojenecSpoluSponzorSpornostSpoustaSprchaSpustitSrandaSrazSrdceSrnaSrnecSrovnatSrpenSrstSrubStaniceStarostaStatikaStavbaStehnoStezkaStodolaStolekStopaStornoStoupatStrachStresStrhnoutStromStrunaStudnaStupniceStvolStykSubjektSubtropySucharSudostSuknoSundatSunoutSurikataSurovinaSvahSvalstvoSvetrSvatbaSvazekSvisleSvitekSvobodaSvodidloSvorkaSvrabSykavkaSykotSynekSynovecSypatSypkostSyrovostSyselSytostTabletkaTabuleTahounTajemnoTajfunTajgaTajitTajnostTaktikaTamhleTamponTancovatTanecTankerTapetaTaveninaTazatelTechnikaTehdyTekutinaTelefonTemnotaTendenceTenistaTenorTeplotaTepnaTeprveTerapieTermoskaTextilTichoTiskopisTitulekTkadlecTkaninaTlapkaTleskatTlukotTlupaTmelToaletaTopinkaTopolTorzoTouhaToulecTradiceTraktorTrampTrasaTraverzaTrefitTrestTrezorTrhavinaTrhlinaTrochuTrojiceTroskaTroubaTrpceTrpitelTrpkostTrubecTruchlitTruhliceTrusTrvatTudyTuhnoutTuhostTundraTuristaTurnajTuzemskoTvarohTvorbaTvrdostTvrzTygrTykevUbohostUbozeUbratUbrousekUbrusUbytovnaUchoUctivostUdivitUhraditUjednatUjistitUjmoutUkazatelUklidnitUklonitUkotvitUkrojitUliceUlitaUlovitUmyvadloUnavitUniformaUniknoutUpadnoutUplatnitUplynoutUpoutatUpravitUranUrazitUsednoutUsilovatUsmrtitUsnadnitUsnoutUsouditUstlatUstrnoutUtahovatUtkatUtlumitUtonoutUtopenecUtrousitUvalitUvolnitUvozovkaUzdravitUzelUzeninaUzlinaUznatVagonValchaValounVanaVandalVanilkaVaranVarhanyVarovatVcelkuVchodVdovaVedroVegetaceVejceVelbloudVeletrhVelitelVelmocVelrybaVenkovVerandaVerzeVeselkaVeskrzeVesniceVespoduVestaVeterinaVeverkaVibraceVichrVideohraVidinaVidleVilaViniceVisetVitalitaVizeVizitkaVjezdVkladVkusVlajkaVlakVlasecVlevoVlhkostVlivVlnovkaVloupatVnucovatVnukVodaVodivostVodoznakVodstvoVojenskyVojnaVojskoVolantVolbaVolitVolnoVoskovkaVozidloVozovnaVpravoVrabecVracetVrahVrataVrbaVrcholekVrhatVrstvaVrtuleVsaditVstoupitVstupVtipVybavitVybratVychovatVydatVydraVyfotitVyhledatVyhnoutVyhoditVyhraditVyhubitVyjasnitVyjetVyjmoutVyklopitVykonatVylekatVymazatVymezitVymizetVymysletVynechatVynikatVynutitVypadatVyplatitVypravitVypustitVyrazitVyrovnatVyrvatVyslovitVysokoVystavitVysunoutVysypatVytasitVytesatVytratitVyvinoutVyvolatVyvrhelVyzdobitVyznatVzaduVzbuditVzchopitVzdorVzduchVzdychatVzestupVzhledemVzkazVzlykatVznikVzorekVzpouraVztahVztekXylofonZabratZabydletZachovatZadarmoZadusitZafoukatZahltitZahoditZahradaZahynoutZajatecZajetZajistitZaklepatZakoupitZalepitZamezitZamotatZamysletZanechatZanikatZaplatitZapojitZapsatZarazitZastavitZasunoutZatajitZatemnitZatknoutZaujmoutZavalitZaveletZavinitZavolatZavrtatZazvonitZbavitZbrusuZbudovatZbytekZdalekaZdarmaZdatnostZdivoZdobitZdrojZdvihZdymadloZeleninaZemanZeminaZeptatZezaduZezdolaZhatitZhltnoutZhlubokaZhotovitZhrubaZimaZimniceZjemnitZklamatZkoumatZkratkaZkumavkaZlatoZlehkaZlobaZlomZlostZlozvykZmapovatZmarZmatekZmijeZmizetZmocnitZmodratZmrzlinaZmutovatZnakZnalostZnamenatZnovuZobrazitZotavitZoubekZoufaleZploditZpomalitZpravaZprostitZprudkaZprvuZradaZranitZrcadloZrnitostZrnoZrovnaZrychlitZrzavostZtichaZtratitZubovinaZubrZvednoutZvenkuZveselaZvonZvratZvukovodZvyk",As=null;function a1(t){if(As==null&&(As=L7.replace(/([A-Z])/g," $1").toLowerCase().substring(1).split(" "),tl.Wordlist.check(t)!=="0x25f44555f4af25b51a711136e1c7d6e50ce9f8917d39d6b1f076b2bb4d2fac1a"))throw As=null,new Error("BIP39 Wordlist for en (English) FAILED")}var k7=function(t){F7(r,t);function r(){return t.call(this,"cz")||this}return r.prototype.getWord=function(e){return a1(this),As[e]},r.prototype.getWordIndex=function(e){return a1(this),As.indexOf(e)},r}(tl.Wordlist),o1=new k7;ho.langCz=o1;tl.Wordlist.register(o1)});var c1=L(bo=>{"use strict";var R7=bo&&bo.__extends||function(){var t=function(r,e){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,i){n.__proto__=i}||function(n,i){for(var a in i)Object.prototype.hasOwnProperty.call(i,a)&&(n[a]=i[a])},t(r,e)};return function(r,e){if(typeof e!="function"&&e!==null)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");t(r,e);function n(){this.constructor=r}r.prototype=e===null?Object.create(e):(n.prototype=e.prototype,new n)}}();Object.defineProperty(bo,"__esModule",{value:!0});bo.langEn=void 0;var nl=An(),N7="AbandonAbilityAbleAboutAboveAbsentAbsorbAbstractAbsurdAbuseAccessAccidentAccountAccuseAchieveAcidAcousticAcquireAcrossActActionActorActressActualAdaptAddAddictAddressAdjustAdmitAdultAdvanceAdviceAerobicAffairAffordAfraidAgainAgeAgentAgreeAheadAimAirAirportAisleAlarmAlbumAlcoholAlertAlienAllAlleyAllowAlmostAloneAlphaAlreadyAlsoAlterAlwaysAmateurAmazingAmongAmountAmusedAnalystAnchorAncientAngerAngleAngryAnimalAnkleAnnounceAnnualAnotherAnswerAntennaAntiqueAnxietyAnyApartApologyAppearAppleApproveAprilArchArcticAreaArenaArgueArmArmedArmorArmyAroundArrangeArrestArriveArrowArtArtefactArtistArtworkAskAspectAssaultAssetAssistAssumeAsthmaAthleteAtomAttackAttendAttitudeAttractAuctionAuditAugustAuntAuthorAutoAutumnAverageAvocadoAvoidAwakeAwareAwayAwesomeAwfulAwkwardAxisBabyBachelorBaconBadgeBagBalanceBalconyBallBambooBananaBannerBarBarelyBargainBarrelBaseBasicBasketBattleBeachBeanBeautyBecauseBecomeBeefBeforeBeginBehaveBehindBelieveBelowBeltBenchBenefitBestBetrayBetterBetweenBeyondBicycleBidBikeBindBiologyBirdBirthBitterBlackBladeBlameBlanketBlastBleakBlessBlindBloodBlossomBlouseBlueBlurBlushBoardBoatBodyBoilBombBoneBonusBookBoostBorderBoringBorrowBossBottomBounceBoxBoyBracketBrainBrandBrassBraveBreadBreezeBrickBridgeBriefBrightBringBriskBroccoliBrokenBronzeBroomBrotherBrownBrushBubbleBuddyBudgetBuffaloBuildBulbBulkBulletBundleBunkerBurdenBurgerBurstBusBusinessBusyButterBuyerBuzzCabbageCabinCableCactusCageCakeCallCalmCameraCampCanCanalCancelCandyCannonCanoeCanvasCanyonCapableCapitalCaptainCarCarbonCardCargoCarpetCarryCartCaseCashCasinoCastleCasualCatCatalogCatchCategoryCattleCaughtCauseCautionCaveCeilingCeleryCementCensusCenturyCerealCertainChairChalkChampionChangeChaosChapterChargeChaseChatCheapCheckCheeseChefCherryChestChickenChiefChildChimneyChoiceChooseChronicChuckleChunkChurnCigarCinnamonCircleCitizenCityCivilClaimClapClarifyClawClayCleanClerkCleverClickClientCliffClimbClinicClipClockClogCloseClothCloudClownClubClumpClusterClutchCoachCoastCoconutCodeCoffeeCoilCoinCollectColorColumnCombineComeComfortComicCommonCompanyConcertConductConfirmCongressConnectConsiderControlConvinceCookCoolCopperCopyCoralCoreCornCorrectCostCottonCouchCountryCoupleCourseCousinCoverCoyoteCrackCradleCraftCramCraneCrashCraterCrawlCrazyCreamCreditCreekCrewCricketCrimeCrispCriticCropCrossCrouchCrowdCrucialCruelCruiseCrumbleCrunchCrushCryCrystalCubeCultureCupCupboardCuriousCurrentCurtainCurveCushionCustomCuteCycleDadDamageDampDanceDangerDaringDashDaughterDawnDayDealDebateDebrisDecadeDecemberDecideDeclineDecorateDecreaseDeerDefenseDefineDefyDegreeDelayDeliverDemandDemiseDenialDentistDenyDepartDependDepositDepthDeputyDeriveDescribeDesertDesignDeskDespairDestroyDetailDetectDevelopDeviceDevoteDiagramDialDiamondDiaryDiceDieselDietDifferDigitalDignityDilemmaDinnerDinosaurDirectDirtDisagreeDiscoverDiseaseDishDismissDisorderDisplayDistanceDivertDivideDivorceDizzyDoctorDocumentDogDollDolphinDomainDonateDonkeyDonorDoorDoseDoubleDoveDraftDragonDramaDrasticDrawDreamDressDriftDrillDrinkDripDriveDropDrumDryDuckDumbDuneDuringDustDutchDutyDwarfDynamicEagerEagleEarlyEarnEarthEasilyEastEasyEchoEcologyEconomyEdgeEditEducateEffortEggEightEitherElbowElderElectricElegantElementElephantElevatorEliteElseEmbarkEmbodyEmbraceEmergeEmotionEmployEmpowerEmptyEnableEnactEndEndlessEndorseEnemyEnergyEnforceEngageEngineEnhanceEnjoyEnlistEnoughEnrichEnrollEnsureEnterEntireEntryEnvelopeEpisodeEqualEquipEraEraseErodeErosionErrorEruptEscapeEssayEssenceEstateEternalEthicsEvidenceEvilEvokeEvolveExactExampleExcessExchangeExciteExcludeExcuseExecuteExerciseExhaustExhibitExileExistExitExoticExpandExpectExpireExplainExposeExpressExtendExtraEyeEyebrowFabricFaceFacultyFadeFaintFaithFallFalseFameFamilyFamousFanFancyFantasyFarmFashionFatFatalFatherFatigueFaultFavoriteFeatureFebruaryFederalFeeFeedFeelFemaleFenceFestivalFetchFeverFewFiberFictionFieldFigureFileFilmFilterFinalFindFineFingerFinishFireFirmFirstFiscalFishFitFitnessFixFlagFlameFlashFlatFlavorFleeFlightFlipFloatFlockFloorFlowerFluidFlushFlyFoamFocusFogFoilFoldFollowFoodFootForceForestForgetForkFortuneForumForwardFossilFosterFoundFoxFragileFrameFrequentFreshFriendFringeFrogFrontFrostFrownFrozenFruitFuelFunFunnyFurnaceFuryFutureGadgetGainGalaxyGalleryGameGapGarageGarbageGardenGarlicGarmentGasGaspGateGatherGaugeGazeGeneralGeniusGenreGentleGenuineGestureGhostGiantGiftGiggleGingerGiraffeGirlGiveGladGlanceGlareGlassGlideGlimpseGlobeGloomGloryGloveGlowGlueGoatGoddessGoldGoodGooseGorillaGospelGossipGovernGownGrabGraceGrainGrantGrapeGrassGravityGreatGreenGridGriefGritGroceryGroupGrowGruntGuardGuessGuideGuiltGuitarGunGymHabitHairHalfHammerHamsterHandHappyHarborHardHarshHarvestHatHaveHawkHazardHeadHealthHeartHeavyHedgehogHeightHelloHelmetHelpHenHeroHiddenHighHillHintHipHireHistoryHobbyHockeyHoldHoleHolidayHollowHomeHoneyHoodHopeHornHorrorHorseHospitalHostHotelHourHoverHubHugeHumanHumbleHumorHundredHungryHuntHurdleHurryHurtHusbandHybridIceIconIdeaIdentifyIdleIgnoreIllIllegalIllnessImageImitateImmenseImmuneImpactImposeImproveImpulseInchIncludeIncomeIncreaseIndexIndicateIndoorIndustryInfantInflictInformInhaleInheritInitialInjectInjuryInmateInnerInnocentInputInquiryInsaneInsectInsideInspireInstallIntactInterestIntoInvestInviteInvolveIronIslandIsolateIssueItemIvoryJacketJaguarJarJazzJealousJeansJellyJewelJobJoinJokeJourneyJoyJudgeJuiceJumpJungleJuniorJunkJustKangarooKeenKeepKetchupKeyKickKidKidneyKindKingdomKissKitKitchenKiteKittenKiwiKneeKnifeKnockKnowLabLabelLaborLadderLadyLakeLampLanguageLaptopLargeLaterLatinLaughLaundryLavaLawLawnLawsuitLayerLazyLeaderLeafLearnLeaveLectureLeftLegLegalLegendLeisureLemonLendLengthLensLeopardLessonLetterLevelLiarLibertyLibraryLicenseLifeLiftLightLikeLimbLimitLinkLionLiquidListLittleLiveLizardLoadLoanLobsterLocalLockLogicLonelyLongLoopLotteryLoudLoungeLoveLoyalLuckyLuggageLumberLunarLunchLuxuryLyricsMachineMadMagicMagnetMaidMailMainMajorMakeMammalManManageMandateMangoMansionManualMapleMarbleMarchMarginMarineMarketMarriageMaskMassMasterMatchMaterialMathMatrixMatterMaximumMazeMeadowMeanMeasureMeatMechanicMedalMediaMelodyMeltMemberMemoryMentionMenuMercyMergeMeritMerryMeshMessageMetalMethodMiddleMidnightMilkMillionMimicMindMinimumMinorMinuteMiracleMirrorMiseryMissMistakeMixMixedMixtureMobileModelModifyMomMomentMonitorMonkeyMonsterMonthMoonMoralMoreMorningMosquitoMotherMotionMotorMountainMouseMoveMovieMuchMuffinMuleMultiplyMuscleMuseumMushroomMusicMustMutualMyselfMysteryMythNaiveNameNapkinNarrowNastyNationNatureNearNeckNeedNegativeNeglectNeitherNephewNerveNestNetNetworkNeutralNeverNewsNextNiceNightNobleNoiseNomineeNoodleNormalNorthNoseNotableNoteNothingNoticeNovelNowNuclearNumberNurseNutOakObeyObjectObligeObscureObserveObtainObviousOccurOceanOctoberOdorOffOfferOfficeOftenOilOkayOldOliveOlympicOmitOnceOneOnionOnlineOnlyOpenOperaOpinionOpposeOptionOrangeOrbitOrchardOrderOrdinaryOrganOrientOriginalOrphanOstrichOtherOutdoorOuterOutputOutsideOvalOvenOverOwnOwnerOxygenOysterOzonePactPaddlePagePairPalacePalmPandaPanelPanicPantherPaperParadeParentParkParrotPartyPassPatchPathPatientPatrolPatternPausePavePaymentPeacePeanutPearPeasantPelicanPenPenaltyPencilPeoplePepperPerfectPermitPersonPetPhonePhotoPhrasePhysicalPianoPicnicPicturePiecePigPigeonPillPilotPinkPioneerPipePistolPitchPizzaPlacePlanetPlasticPlatePlayPleasePledgePluckPlugPlungePoemPoetPointPolarPolePolicePondPonyPoolPopularPortionPositionPossiblePostPotatoPotteryPovertyPowderPowerPracticePraisePredictPreferPreparePresentPrettyPreventPricePridePrimaryPrintPriorityPrisonPrivatePrizeProblemProcessProduceProfitProgramProjectPromoteProofPropertyProsperProtectProudProvidePublicPuddingPullPulpPulsePumpkinPunchPupilPuppyPurchasePurityPurposePursePushPutPuzzlePyramidQualityQuantumQuarterQuestionQuickQuitQuizQuoteRabbitRaccoonRaceRackRadarRadioRailRainRaiseRallyRampRanchRandomRangeRapidRareRateRatherRavenRawRazorReadyRealReasonRebelRebuildRecallReceiveRecipeRecordRecycleReduceReflectReformRefuseRegionRegretRegularRejectRelaxReleaseReliefRelyRemainRememberRemindRemoveRenderRenewRentReopenRepairRepeatReplaceReportRequireRescueResembleResistResourceResponseResultRetireRetreatReturnReunionRevealReviewRewardRhythmRibRibbonRiceRichRideRidgeRifleRightRigidRingRiotRippleRiskRitualRivalRiverRoadRoastRobotRobustRocketRomanceRoofRookieRoomRoseRotateRoughRoundRouteRoyalRubberRudeRugRuleRunRunwayRuralSadSaddleSadnessSafeSailSaladSalmonSalonSaltSaluteSameSampleSandSatisfySatoshiSauceSausageSaveSayScaleScanScareScatterSceneSchemeSchoolScienceScissorsScorpionScoutScrapScreenScriptScrubSeaSearchSeasonSeatSecondSecretSectionSecuritySeedSeekSegmentSelectSellSeminarSeniorSenseSentenceSeriesServiceSessionSettleSetupSevenShadowShaftShallowShareShedShellSheriffShieldShiftShineShipShiverShockShoeShootShopShortShoulderShoveShrimpShrugShuffleShySiblingSickSideSiegeSightSignSilentSilkSillySilverSimilarSimpleSinceSingSirenSisterSituateSixSizeSkateSketchSkiSkillSkinSkirtSkullSlabSlamSleepSlenderSliceSlideSlightSlimSloganSlotSlowSlushSmallSmartSmileSmokeSmoothSnackSnakeSnapSniffSnowSoapSoccerSocialSockSodaSoftSolarSoldierSolidSolutionSolveSomeoneSongSoonSorrySortSoulSoundSoupSourceSouthSpaceSpareSpatialSpawnSpeakSpecialSpeedSpellSpendSphereSpiceSpiderSpikeSpinSpiritSplitSpoilSponsorSpoonSportSpotSpraySpreadSpringSpySquareSqueezeSquirrelStableStadiumStaffStageStairsStampStandStartStateStaySteakSteelStemStepStereoStickStillStingStockStomachStoneStoolStoryStoveStrategyStreetStrikeStrongStruggleStudentStuffStumbleStyleSubjectSubmitSubwaySuccessSuchSuddenSufferSugarSuggestSuitSummerSunSunnySunsetSuperSupplySupremeSureSurfaceSurgeSurpriseSurroundSurveySuspectSustainSwallowSwampSwapSwarmSwearSweetSwiftSwimSwingSwitchSwordSymbolSymptomSyrupSystemTableTackleTagTailTalentTalkTankTapeTargetTaskTasteTattooTaxiTeachTeamTellTenTenantTennisTentTermTestTextThankThatThemeThenTheoryThereTheyThingThisThoughtThreeThriveThrowThumbThunderTicketTideTigerTiltTimberTimeTinyTipTiredTissueTitleToastTobaccoTodayToddlerToeTogetherToiletTokenTomatoTomorrowToneTongueTonightToolToothTopTopicToppleTorchTornadoTortoiseTossTotalTouristTowardTowerTownToyTrackTradeTrafficTragicTrainTransferTrapTrashTravelTrayTreatTreeTrendTrialTribeTrickTriggerTrimTripTrophyTroubleTruckTrueTrulyTrumpetTrustTruthTryTubeTuitionTumbleTunaTunnelTurkeyTurnTurtleTwelveTwentyTwiceTwinTwistTwoTypeTypicalUglyUmbrellaUnableUnawareUncleUncoverUnderUndoUnfairUnfoldUnhappyUniformUniqueUnitUniverseUnknownUnlockUntilUnusualUnveilUpdateUpgradeUpholdUponUpperUpsetUrbanUrgeUsageUseUsedUsefulUselessUsualUtilityVacantVacuumVagueValidValleyValveVanVanishVaporVariousVastVaultVehicleVelvetVendorVentureVenueVerbVerifyVersionVeryVesselVeteranViableVibrantViciousVictoryVideoViewVillageVintageViolinVirtualVirusVisaVisitVisualVitalVividVocalVoiceVoidVolcanoVolumeVoteVoyageWageWagonWaitWalkWallWalnutWantWarfareWarmWarriorWashWaspWasteWaterWaveWayWealthWeaponWearWeaselWeatherWebWeddingWeekendWeirdWelcomeWestWetWhaleWhatWheatWheelWhenWhereWhipWhisperWideWidthWifeWildWillWinWindowWineWingWinkWinnerWinterWireWisdomWiseWishWitnessWolfWomanWonderWoodWoolWordWorkWorldWorryWorthWrapWreckWrestleWristWriteWrongYardYearYellowYouYoungYouthZebraZeroZoneZoo",ws=null;function f1(t){if(ws==null&&(ws=N7.replace(/([A-Z])/g," $1").toLowerCase().substring(1).split(" "),nl.Wordlist.check(t)!=="0x3c8acc1e7b08d8e76f9fda015ef48dc8c710a73cb7e0f77b2c18a9b5a7adde60"))throw ws=null,new Error("BIP39 Wordlist for en (English) FAILED")}var J7=function(t){R7(r,t);function r(){return t.call(this,"en")||this}return r.prototype.getWord=function(e){return f1(this),ws[e]},r.prototype.getWordIndex=function(e){return f1(this),ws.indexOf(e)},r}(nl.Wordlist),u1=new J7;bo.langEn=u1;nl.Wordlist.register(u1)});var p1=L(po=>{"use strict";var D7=po&&po.__extends||function(){var t=function(r,e){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,i){n.__proto__=i}||function(n,i){for(var a in i)Object.prototype.hasOwnProperty.call(i,a)&&(n[a]=i[a])},t(r,e)};return function(r,e){if(typeof e!="function"&&e!==null)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");t(r,e);function n(){this.constructor=r}r.prototype=e===null?Object.create(e):(n.prototype=e.prototype,new n)}}();Object.defineProperty(po,"__esModule",{value:!0});po.langEs=void 0;var Fu=pr(),Lu=An(),I7="A/bacoAbdomenAbejaAbiertoAbogadoAbonoAbortoAbrazoAbrirAbueloAbusoAcabarAcademiaAccesoAccio/nAceiteAcelgaAcentoAceptarA/cidoAclararAcne/AcogerAcosoActivoActoActrizActuarAcudirAcuerdoAcusarAdictoAdmitirAdoptarAdornoAduanaAdultoAe/reoAfectarAficio/nAfinarAfirmarA/gilAgitarAgoni/aAgostoAgotarAgregarAgrioAguaAgudoA/guilaAgujaAhogoAhorroAireAislarAjedrezAjenoAjusteAlacra/nAlambreAlarmaAlbaA/lbumAlcaldeAldeaAlegreAlejarAlertaAletaAlfilerAlgaAlgodo/nAliadoAlientoAlivioAlmaAlmejaAlmi/barAltarAltezaAltivoAltoAlturaAlumnoAlzarAmableAmanteAmapolaAmargoAmasarA/mbarA/mbitoAmenoAmigoAmistadAmorAmparoAmplioAnchoAncianoAnclaAndarAnde/nAnemiaA/nguloAnilloA/nimoAni/sAnotarAntenaAntiguoAntojoAnualAnularAnuncioA~adirA~ejoA~oApagarAparatoApetitoApioAplicarApodoAporteApoyoAprenderAprobarApuestaApuroAradoAra~aArarA/rbitroA/rbolArbustoArchivoArcoArderArdillaArduoA/reaA/ridoAriesArmoni/aArne/sAromaArpaArpo/nArregloArrozArrugaArteArtistaAsaAsadoAsaltoAscensoAsegurarAseoAsesorAsientoAsiloAsistirAsnoAsombroA/speroAstillaAstroAstutoAsumirAsuntoAtajoAtaqueAtarAtentoAteoA/ticoAtletaA/tomoAtraerAtrozAtu/nAudazAudioAugeAulaAumentoAusenteAutorAvalAvanceAvaroAveAvellanaAvenaAvestruzAvio/nAvisoAyerAyudaAyunoAzafra/nAzarAzoteAzu/carAzufreAzulBabaBaborBacheBahi/aBaileBajarBalanzaBalco/nBaldeBambu/BancoBandaBa~oBarbaBarcoBarnizBarroBa/sculaBasto/nBasuraBatallaBateri/aBatirBatutaBau/lBazarBebe/BebidaBelloBesarBesoBestiaBichoBienBingoBlancoBloqueBlusaBoaBobinaBoboBocaBocinaBodaBodegaBoinaBolaBoleroBolsaBombaBondadBonitoBonoBonsa/iBordeBorrarBosqueBoteBoti/nBo/vedaBozalBravoBrazoBrechaBreveBrilloBrincoBrisaBrocaBromaBronceBroteBrujaBruscoBrutoBuceoBucleBuenoBueyBufandaBufo/nBu/hoBuitreBultoBurbujaBurlaBurroBuscarButacaBuzo/nCaballoCabezaCabinaCabraCacaoCada/verCadenaCaerCafe/Cai/daCaima/nCajaCajo/nCalCalamarCalcioCaldoCalidadCalleCalmaCalorCalvoCamaCambioCamelloCaminoCampoCa/ncerCandilCanelaCanguroCanicaCantoCa~aCa~o/nCaobaCaosCapazCapita/nCapoteCaptarCapuchaCaraCarbo/nCa/rcelCaretaCargaCari~oCarneCarpetaCarroCartaCasaCascoCaseroCaspaCastorCatorceCatreCaudalCausaCazoCebollaCederCedroCeldaCe/lebreCelosoCe/lulaCementoCenizaCentroCercaCerdoCerezaCeroCerrarCertezaCe/spedCetroChacalChalecoChampu/ChanclaChapaCharlaChicoChisteChivoChoqueChozaChuletaChuparCiclo/nCiegoCieloCienCiertoCifraCigarroCimaCincoCineCintaCipre/sCircoCiruelaCisneCitaCiudadClamorClanClaroClaseClaveClienteClimaCli/nicaCobreCoccio/nCochinoCocinaCocoCo/digoCodoCofreCogerCoheteCoji/nCojoColaColchaColegioColgarColinaCollarColmoColumnaCombateComerComidaCo/modoCompraCondeConejoCongaConocerConsejoContarCopaCopiaCorazo/nCorbataCorchoCordo/nCoronaCorrerCoserCosmosCostaCra/neoCra/terCrearCrecerCrei/doCremaCri/aCrimenCriptaCrisisCromoCro/nicaCroquetaCrudoCruzCuadroCuartoCuatroCuboCubrirCucharaCuelloCuentoCuerdaCuestaCuevaCuidarCulebraCulpaCultoCumbreCumplirCunaCunetaCuotaCupo/nCu/pulaCurarCuriosoCursoCurvaCutisDamaDanzaDarDardoDa/tilDeberDe/bilDe/cadaDecirDedoDefensaDefinirDejarDelfi/nDelgadoDelitoDemoraDensoDentalDeporteDerechoDerrotaDesayunoDeseoDesfileDesnudoDestinoDesvi/oDetalleDetenerDeudaDi/aDiabloDiademaDiamanteDianaDiarioDibujoDictarDienteDietaDiezDifi/cilDignoDilemaDiluirDineroDirectoDirigirDiscoDise~oDisfrazDivaDivinoDobleDoceDolorDomingoDonDonarDoradoDormirDorsoDosDosisDrago/nDrogaDuchaDudaDueloDue~oDulceDu/oDuqueDurarDurezaDuroE/banoEbrioEcharEcoEcuadorEdadEdicio/nEdificioEditorEducarEfectoEficazEjeEjemploElefanteElegirElementoElevarElipseE/liteElixirElogioEludirEmbudoEmitirEmocio/nEmpateEmpe~oEmpleoEmpresaEnanoEncargoEnchufeEnci/aEnemigoEneroEnfadoEnfermoEnga~oEnigmaEnlaceEnormeEnredoEnsayoEnse~arEnteroEntrarEnvaseEnvi/oE/pocaEquipoErizoEscalaEscenaEscolarEscribirEscudoEsenciaEsferaEsfuerzoEspadaEspejoEspi/aEsposaEspumaEsqui/EstarEsteEstiloEstufaEtapaEternoE/ticaEtniaEvadirEvaluarEventoEvitarExactoExamenExcesoExcusaExentoExigirExilioExistirE/xitoExpertoExplicarExponerExtremoFa/bricaFa/bulaFachadaFa/cilFactorFaenaFajaFaldaFalloFalsoFaltarFamaFamiliaFamosoFarao/nFarmaciaFarolFarsaFaseFatigaFaunaFavorFaxFebreroFechaFelizFeoFeriaFerozFe/rtilFervorFesti/nFiableFianzaFiarFibraFiccio/nFichaFideoFiebreFielFieraFiestaFiguraFijarFijoFilaFileteFilialFiltroFinFincaFingirFinitoFirmaFlacoFlautaFlechaFlorFlotaFluirFlujoFlu/orFobiaFocaFogataFogo/nFolioFolletoFondoFormaForroFortunaForzarFosaFotoFracasoFra/gilFranjaFraseFraudeFrei/rFrenoFresaFri/oFritoFrutaFuegoFuenteFuerzaFugaFumarFuncio/nFundaFurgo/nFuriaFusilFu/tbolFuturoGacelaGafasGaitaGajoGalaGaleri/aGalloGambaGanarGanchoGangaGansoGarajeGarzaGasolinaGastarGatoGavila/nGemeloGemirGenGe/neroGenioGenteGeranioGerenteGermenGestoGiganteGimnasioGirarGiroGlaciarGloboGloriaGolGolfoGolosoGolpeGomaGordoGorilaGorraGotaGoteoGozarGradaGra/ficoGranoGrasaGratisGraveGrietaGrilloGripeGrisGritoGrosorGru/aGruesoGrumoGrupoGuanteGuapoGuardiaGuerraGui/aGui~oGuionGuisoGuitarraGusanoGustarHaberHa/bilHablarHacerHachaHadaHallarHamacaHarinaHazHaza~aHebillaHebraHechoHeladoHelioHembraHerirHermanoHe/roeHervirHieloHierroHi/gadoHigieneHijoHimnoHistoriaHocicoHogarHogueraHojaHombreHongoHonorHonraHoraHormigaHornoHostilHoyoHuecoHuelgaHuertaHuesoHuevoHuidaHuirHumanoHu/medoHumildeHumoHundirHuraca/nHurtoIconoIdealIdiomaI/doloIglesiaIglu/IgualIlegalIlusio/nImagenIma/nImitarImparImperioImponerImpulsoIncapazI/ndiceInerteInfielInformeIngenioInicioInmensoInmuneInnatoInsectoInstanteIntere/sI/ntimoIntuirInu/tilInviernoIraIrisIroni/aIslaIsloteJabali/Jabo/nJamo/nJarabeJardi/nJarraJaulaJazmi/nJefeJeringaJineteJornadaJorobaJovenJoyaJuergaJuevesJuezJugadorJugoJugueteJuicioJuncoJunglaJunioJuntarJu/piterJurarJustoJuvenilJuzgarKiloKoalaLabioLacioLacraLadoLadro/nLagartoLa/grimaLagunaLaicoLamerLa/minaLa/mparaLanaLanchaLangostaLanzaLa/pizLargoLarvaLa/stimaLataLa/texLatirLaurelLavarLazoLealLeccio/nLecheLectorLeerLegio/nLegumbreLejanoLenguaLentoLe~aLeo/nLeopardoLesio/nLetalLetraLeveLeyendaLibertadLibroLicorLi/derLidiarLienzoLigaLigeroLimaLi/miteLimo/nLimpioLinceLindoLi/neaLingoteLinoLinternaLi/quidoLisoListaLiteraLitioLitroLlagaLlamaLlantoLlaveLlegarLlenarLlevarLlorarLloverLluviaLoboLocio/nLocoLocuraLo/gicaLogroLombrizLomoLonjaLoteLuchaLucirLugarLujoLunaLunesLupaLustroLutoLuzMacetaMachoMaderaMadreMaduroMaestroMafiaMagiaMagoMai/zMaldadMaletaMallaMaloMama/MamboMamutMancoMandoManejarMangaManiqui/ManjarManoMansoMantaMa~anaMapaMa/quinaMarMarcoMareaMarfilMargenMaridoMa/rmolMarro/nMartesMarzoMasaMa/scaraMasivoMatarMateriaMatizMatrizMa/ximoMayorMazorcaMechaMedallaMedioMe/dulaMejillaMejorMelenaMelo/nMemoriaMenorMensajeMenteMenu/MercadoMerengueMe/ritoMesMeso/nMetaMeterMe/todoMetroMezclaMiedoMielMiembroMigaMilMilagroMilitarMillo/nMimoMinaMineroMi/nimoMinutoMiopeMirarMisaMiseriaMisilMismoMitadMitoMochilaMocio/nModaModeloMohoMojarMoldeMolerMolinoMomentoMomiaMonarcaMonedaMonjaMontoMo~oMoradaMorderMorenoMorirMorroMorsaMortalMoscaMostrarMotivoMoverMo/vilMozoMuchoMudarMuebleMuelaMuerteMuestraMugreMujerMulaMuletaMultaMundoMu~ecaMuralMuroMu/sculoMuseoMusgoMu/sicaMusloNa/carNacio/nNadarNaipeNaranjaNarizNarrarNasalNatalNativoNaturalNa/useaNavalNaveNavidadNecioNe/ctarNegarNegocioNegroNeo/nNervioNetoNeutroNevarNeveraNichoNidoNieblaNietoNi~ezNi~oNi/tidoNivelNoblezaNocheNo/minaNoriaNormaNorteNotaNoticiaNovatoNovelaNovioNubeNucaNu/cleoNudilloNudoNueraNueveNuezNuloNu/meroNutriaOasisObesoObispoObjetoObraObreroObservarObtenerObvioOcaOcasoOce/anoOchentaOchoOcioOcreOctavoOctubreOcultoOcuparOcurrirOdiarOdioOdiseaOesteOfensaOfertaOficioOfrecerOgroOi/doOi/rOjoOlaOleadaOlfatoOlivoOllaOlmoOlorOlvidoOmbligoOndaOnzaOpacoOpcio/nO/peraOpinarOponerOptarO/pticaOpuestoOracio/nOradorOralO/rbitaOrcaOrdenOrejaO/rganoOrgi/aOrgulloOrienteOrigenOrillaOroOrquestaOrugaOsadi/aOscuroOseznoOsoOstraOto~oOtroOvejaO/vuloO/xidoOxi/genoOyenteOzonoPactoPadrePaellaPa/ginaPagoPai/sPa/jaroPalabraPalcoPaletaPa/lidoPalmaPalomaPalparPanPanalPa/nicoPanteraPa~ueloPapa/PapelPapillaPaquetePararParcelaParedParirParoPa/rpadoParquePa/rrafoPartePasarPaseoPasio/nPasoPastaPataPatioPatriaPausaPautaPavoPayasoPeato/nPecadoPeceraPechoPedalPedirPegarPeinePelarPelda~oPeleaPeligroPellejoPeloPelucaPenaPensarPe~o/nPeo/nPeorPepinoPeque~oPeraPerchaPerderPerezaPerfilPericoPerlaPermisoPerroPersonaPesaPescaPe/simoPesta~aPe/taloPetro/leoPezPezu~aPicarPicho/nPiePiedraPiernaPiezaPijamaPilarPilotoPimientaPinoPintorPinzaPi~aPiojoPipaPirataPisarPiscinaPisoPistaPito/nPizcaPlacaPlanPlataPlayaPlazaPleitoPlenoPlomoPlumaPluralPobrePocoPoderPodioPoemaPoesi/aPoetaPolenPolici/aPolloPolvoPomadaPomeloPomoPompaPonerPorcio/nPortalPosadaPoseerPosiblePostePotenciaPotroPozoPradoPrecozPreguntaPremioPrensaPresoPrevioPrimoPri/ncipePrisio/nPrivarProaProbarProcesoProductoProezaProfesorProgramaProlePromesaProntoPropioPro/ximoPruebaPu/blicoPucheroPudorPuebloPuertaPuestoPulgaPulirPulmo/nPulpoPulsoPumaPuntoPu~alPu~oPupaPupilaPure/QuedarQuejaQuemarQuererQuesoQuietoQui/micaQuinceQuitarRa/banoRabiaRaboRacio/nRadicalRai/zRamaRampaRanchoRangoRapazRa/pidoRaptoRasgoRaspaRatoRayoRazaRazo/nReaccio/nRealidadReba~oReboteRecaerRecetaRechazoRecogerRecreoRectoRecursoRedRedondoReducirReflejoReformaRefra/nRefugioRegaloRegirReglaRegresoRehe/nReinoRei/rRejaRelatoRelevoRelieveRellenoRelojRemarRemedioRemoRencorRendirRentaRepartoRepetirReposoReptilResRescateResinaRespetoRestoResumenRetiroRetornoRetratoReunirReve/sRevistaReyRezarRicoRiegoRiendaRiesgoRifaRi/gidoRigorRinco/nRi~o/nRi/oRiquezaRisaRitmoRitoRizoRobleRoceRociarRodarRodeoRodillaRoerRojizoRojoRomeroRomperRonRoncoRondaRopaRoperoRosaRoscaRostroRotarRubi/RuborRudoRuedaRugirRuidoRuinaRuletaRuloRumboRumorRupturaRutaRutinaSa/badoSaberSabioSableSacarSagazSagradoSalaSaldoSaleroSalirSalmo/nSalo/nSalsaSaltoSaludSalvarSambaSancio/nSandi/aSanearSangreSanidadSanoSantoSapoSaqueSardinaSarte/nSastreSata/nSaunaSaxofo/nSeccio/nSecoSecretoSectaSedSeguirSeisSelloSelvaSemanaSemillaSendaSensorSe~alSe~orSepararSepiaSequi/aSerSerieSermo/nServirSesentaSesio/nSetaSetentaSeveroSexoSextoSidraSiestaSieteSigloSignoSi/labaSilbarSilencioSillaSi/mboloSimioSirenaSistemaSitioSituarSobreSocioSodioSolSolapaSoldadoSoledadSo/lidoSoltarSolucio/nSombraSondeoSonidoSonoroSonrisaSopaSoplarSoporteSordoSorpresaSorteoSoste/nSo/tanoSuaveSubirSucesoSudorSuegraSueloSue~oSuerteSufrirSujetoSulta/nSumarSuperarSuplirSuponerSupremoSurSurcoSure~oSurgirSustoSutilTabacoTabiqueTablaTabu/TacoTactoTajoTalarTalcoTalentoTallaTalo/nTama~oTamborTangoTanqueTapaTapeteTapiaTapo/nTaquillaTardeTareaTarifaTarjetaTarotTarroTartaTatuajeTauroTazaTazo/nTeatroTechoTeclaTe/cnicaTejadoTejerTejidoTelaTele/fonoTemaTemorTemploTenazTenderTenerTenisTensoTeori/aTerapiaTercoTe/rminoTernuraTerrorTesisTesoroTestigoTeteraTextoTezTibioTiburo/nTiempoTiendaTierraTiesoTigreTijeraTildeTimbreTi/midoTimoTintaTi/oTi/picoTipoTiraTiro/nTita/nTi/tereTi/tuloTizaToallaTobilloTocarTocinoTodoTogaToldoTomarTonoTontoToparTopeToqueTo/raxToreroTormentaTorneoToroTorpedoTorreTorsoTortugaTosToscoToserTo/xicoTrabajoTractorTraerTra/ficoTragoTrajeTramoTranceTratoTraumaTrazarTre/bolTreguaTreintaTrenTreparTresTribuTrigoTripaTristeTriunfoTrofeoTrompaTroncoTropaTroteTrozoTrucoTruenoTrufaTuberi/aTuboTuertoTumbaTumorTu/nelTu/nicaTurbinaTurismoTurnoTutorUbicarU/lceraUmbralUnidadUnirUniversoUnoUntarU~aUrbanoUrbeUrgenteUrnaUsarUsuarioU/tilUtopi/aUvaVacaVaci/oVacunaVagarVagoVainaVajillaValeVa/lidoValleValorVa/lvulaVampiroVaraVariarVaro/nVasoVecinoVectorVehi/culoVeinteVejezVelaVeleroVelozVenaVencerVendaVenenoVengarVenirVentaVenusVerVeranoVerboVerdeVeredaVerjaVersoVerterVi/aViajeVibrarVicioVi/ctimaVidaVi/deoVidrioViejoViernesVigorVilVillaVinagreVinoVi~edoVioli/nViralVirgoVirtudVisorVi/speraVistaVitaminaViudoVivazViveroVivirVivoVolca/nVolumenVolverVorazVotarVotoVozVueloVulgarYacerYateYeguaYemaYernoYesoYodoYogaYogurZafiroZanjaZapatoZarzaZonaZorroZumoZurdo",d1={},_s=null;function h1(t){return Lu.logger.checkNormalize(),(0,Fu.toUtf8String)(Array.prototype.filter.call((0,Fu.toUtf8Bytes)(t.normalize("NFD").toLowerCase()),function(r){return r>=65&&r<=90||r>=97&&r<=123}))}function U7(t){var r=[];return Array.prototype.forEach.call((0,Fu.toUtf8Bytes)(t),function(e){e===47?(r.push(204),r.push(129)):e===126?(r.push(110),r.push(204),r.push(131)):r.push(e)}),(0,Fu.toUtf8String)(r)}function l1(t){if(_s==null&&(_s=I7.replace(/([A-Z])/g," $1").toLowerCase().substring(1).split(" ").map(function(r){return U7(r)}),_s.forEach(function(r,e){d1[h1(r)]=e}),Lu.Wordlist.check(t)!=="0xf74fb7092aeacdfbf8959557de22098da512207fb9f109cb526994938cf40300"))throw _s=null,new Error("BIP39 Wordlist for es (Spanish) FAILED")}var H7=function(t){D7(r,t);function r(){return t.call(this,"es")||this}return r.prototype.getWord=function(e){return l1(this),_s[e]},r.prototype.getWordIndex=function(e){return l1(this),d1[h1(e)]},r}(Lu.Wordlist),b1=new H7;po.langEs=b1;Lu.Wordlist.register(b1)});var y1=L(vo=>{"use strict";var q7=vo&&vo.__extends||function(){var t=function(r,e){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,i){n.__proto__=i}||function(n,i){for(var a in i)Object.prototype.hasOwnProperty.call(i,a)&&(n[a]=i[a])},t(r,e)};return function(r,e){if(typeof e!="function"&&e!==null)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");t(r,e);function n(){this.constructor=r}r.prototype=e===null?Object.create(e):(n.prototype=e.prototype,new n)}}();Object.defineProperty(vo,"__esModule",{value:!0});vo.langFr=void 0;var ku=pr(),Ru=An(),X7="AbaisserAbandonAbdiquerAbeilleAbolirAborderAboutirAboyerAbrasifAbreuverAbriterAbrogerAbruptAbsenceAbsoluAbsurdeAbusifAbyssalAcade/mieAcajouAcarienAccablerAccepterAcclamerAccoladeAccrocheAccuserAcerbeAchatAcheterAcidulerAcierAcompteAcque/rirAcronymeActeurActifActuelAdepteAde/quatAdhe/sifAdjectifAdjugerAdmettreAdmirerAdopterAdorerAdoucirAdresseAdroitAdulteAdverbeAe/rerAe/ronefAffaireAffecterAfficheAffreuxAffublerAgacerAgencerAgileAgiterAgraferAgre/ableAgrumeAiderAiguilleAilierAimableAisanceAjouterAjusterAlarmerAlchimieAlerteAlge-breAlgueAlie/nerAlimentAlle/gerAlliageAllouerAllumerAlourdirAlpagaAltesseAlve/oleAmateurAmbiguAmbreAme/nagerAmertumeAmidonAmiralAmorcerAmourAmovibleAmphibieAmpleurAmusantAnalyseAnaphoreAnarchieAnatomieAncienAne/antirAngleAngoisseAnguleuxAnimalAnnexerAnnonceAnnuelAnodinAnomalieAnonymeAnormalAntenneAntidoteAnxieuxApaiserApe/ritifAplanirApologieAppareilAppelerApporterAppuyerAquariumAqueducArbitreArbusteArdeurArdoiseArgentArlequinArmatureArmementArmoireArmureArpenterArracherArriverArroserArsenicArte/rielArticleAspectAsphalteAspirerAssautAsservirAssietteAssocierAssurerAsticotAstreAstuceAtelierAtomeAtriumAtroceAttaqueAttentifAttirerAttraperAubaineAubergeAudaceAudibleAugurerAuroreAutomneAutrucheAvalerAvancerAvariceAvenirAverseAveugleAviateurAvideAvionAviserAvoineAvouerAvrilAxialAxiomeBadgeBafouerBagageBaguetteBaignadeBalancerBalconBaleineBalisageBambinBancaireBandageBanlieueBannie-reBanquierBarbierBarilBaronBarqueBarrageBassinBastionBatailleBateauBatterieBaudrierBavarderBeletteBe/lierBeloteBe/ne/ficeBerceauBergerBerlineBermudaBesaceBesogneBe/tailBeurreBiberonBicycleBiduleBijouBilanBilingueBillardBinaireBiologieBiopsieBiotypeBiscuitBisonBistouriBitumeBizarreBlafardBlagueBlanchirBlessantBlinderBlondBloquerBlousonBobardBobineBoireBoiserBolideBonbonBondirBonheurBonifierBonusBordureBorneBotteBoucleBoueuxBougieBoulonBouquinBourseBoussoleBoutiqueBoxeurBrancheBrasierBraveBrebisBre-cheBreuvageBricolerBrigadeBrillantBriocheBriqueBrochureBroderBronzerBrousseBroyeurBrumeBrusqueBrutalBruyantBuffleBuissonBulletinBureauBurinBustierButinerButoirBuvableBuvetteCabanonCabineCachetteCadeauCadreCafe/ineCaillouCaissonCalculerCalepinCalibreCalmerCalomnieCalvaireCamaradeCame/raCamionCampagneCanalCanetonCanonCantineCanularCapableCaporalCapriceCapsuleCapterCapucheCarabineCarboneCaresserCaribouCarnageCarotteCarreauCartonCascadeCasierCasqueCassureCauserCautionCavalierCaverneCaviarCe/dilleCeintureCe/lesteCelluleCendrierCensurerCentralCercleCe/re/bralCeriseCernerCerveauCesserChagrinChaiseChaleurChambreChanceChapitreCharbonChasseurChatonChaussonChavirerChemiseChenilleChe/quierChercherChevalChienChiffreChignonChime-reChiotChlorureChocolatChoisirChoseChouetteChromeChuteCigareCigogneCimenterCine/maCintrerCirculerCirerCirqueCiterneCitoyenCitronCivilClaironClameurClaquerClasseClavierClientClignerClimatClivageClocheClonageCloporteCobaltCobraCocasseCocotierCoderCodifierCoffreCognerCohe/sionCoifferCoincerCole-reColibriCollineColmaterColonelCombatCome/dieCommandeCompactConcertConduireConfierCongelerConnoterConsonneContactConvexeCopainCopieCorailCorbeauCordageCornicheCorpusCorrectCorte-geCosmiqueCostumeCotonCoudeCoupureCourageCouteauCouvrirCoyoteCrabeCrainteCravateCrayonCre/atureCre/diterCre/meuxCreuserCrevetteCriblerCrierCristalCrite-reCroireCroquerCrotaleCrucialCruelCrypterCubiqueCueillirCuille-reCuisineCuivreCulminerCultiverCumulerCupideCuratifCurseurCyanureCycleCylindreCyniqueDaignerDamierDangerDanseurDauphinDe/battreDe/biterDe/borderDe/briderDe/butantDe/calerDe/cembreDe/chirerDe/ciderDe/clarerDe/corerDe/crireDe/cuplerDe/daleDe/ductifDe/esseDe/fensifDe/filerDe/frayerDe/gagerDe/givrerDe/glutirDe/graferDe/jeunerDe/liceDe/logerDemanderDemeurerDe/molirDe/nicherDe/nouerDentelleDe/nuderDe/partDe/penserDe/phaserDe/placerDe/poserDe/rangerDe/roberDe/sastreDescenteDe/sertDe/signerDe/sobe/irDessinerDestrierDe/tacherDe/testerDe/tourerDe/tresseDevancerDevenirDevinerDevoirDiableDialogueDiamantDicterDiffe/rerDige/rerDigitalDigneDiluerDimancheDiminuerDioxydeDirectifDirigerDiscuterDisposerDissiperDistanceDivertirDiviserDocileDocteurDogmeDoigtDomaineDomicileDompterDonateurDonjonDonnerDopamineDortoirDorureDosageDoseurDossierDotationDouanierDoubleDouceurDouterDoyenDragonDraperDresserDribblerDroitureDuperieDuplexeDurableDurcirDynastieE/blouirE/carterE/charpeE/chelleE/clairerE/clipseE/cloreE/cluseE/coleE/conomieE/corceE/couterE/craserE/cre/merE/crivainE/crouE/cumeE/cureuilE/difierE/duquerEffacerEffectifEffigieEffortEffrayerEffusionE/galiserE/garerE/jecterE/laborerE/largirE/lectronE/le/gantE/le/phantE/le-veE/ligibleE/litismeE/logeE/luciderE/luderEmballerEmbellirEmbryonE/meraudeE/missionEmmenerE/motionE/mouvoirEmpereurEmployerEmporterEmpriseE/mulsionEncadrerEnche-reEnclaveEncocheEndiguerEndosserEndroitEnduireE/nergieEnfanceEnfermerEnfouirEngagerEnginEngloberE/nigmeEnjamberEnjeuEnleverEnnemiEnnuyeuxEnrichirEnrobageEnseigneEntasserEntendreEntierEntourerEntraverE/nume/rerEnvahirEnviableEnvoyerEnzymeE/olienE/paissirE/pargneE/patantE/pauleE/picerieE/pide/mieE/pierE/pilogueE/pineE/pisodeE/pitapheE/poqueE/preuveE/prouverE/puisantE/querreE/quipeE/rigerE/rosionErreurE/ruptionEscalierEspadonEspe-ceEspie-gleEspoirEspritEsquiverEssayerEssenceEssieuEssorerEstimeEstomacEstradeE/tage-reE/talerE/tancheE/tatiqueE/teindreE/tendoirE/ternelE/thanolE/thiqueEthnieE/tirerE/tofferE/toileE/tonnantE/tourdirE/trangeE/troitE/tudeEuphorieE/valuerE/vasionE/ventailE/videnceE/viterE/volutifE/voquerExactExage/rerExaucerExcellerExcitantExclusifExcuseExe/cuterExempleExercerExhalerExhorterExigenceExilerExisterExotiqueExpe/dierExplorerExposerExprimerExquisExtensifExtraireExulterFableFabuleuxFacetteFacileFactureFaiblirFalaiseFameuxFamilleFarceurFarfeluFarineFaroucheFascinerFatalFatigueFauconFautifFaveurFavoriFe/brileFe/conderFe/de/rerFe/linFemmeFe/murFendoirFe/odalFermerFe/roceFerveurFestivalFeuilleFeutreFe/vrierFiascoFicelerFictifFide-leFigureFilatureFiletageFilie-reFilleulFilmerFilouFiltrerFinancerFinirFioleFirmeFissureFixerFlairerFlammeFlasqueFlatteurFle/auFle-cheFleurFlexionFloconFloreFluctuerFluideFluvialFolieFonderieFongibleFontaineForcerForgeronFormulerFortuneFossileFoudreFouge-reFouillerFoulureFourmiFragileFraiseFranchirFrapperFrayeurFre/gateFreinerFrelonFre/mirFre/ne/sieFre-reFriableFrictionFrissonFrivoleFroidFromageFrontalFrotterFruitFugitifFuiteFureurFurieuxFurtifFusionFuturGagnerGalaxieGalerieGambaderGarantirGardienGarnirGarrigueGazelleGazonGe/antGe/latineGe/luleGendarmeGe/ne/ralGe/nieGenouGentilGe/ologieGe/ome-treGe/raniumGermeGestuelGeyserGibierGiclerGirafeGivreGlaceGlaiveGlisserGlobeGloireGlorieuxGolfeurGommeGonflerGorgeGorilleGoudronGouffreGoulotGoupilleGourmandGoutteGraduelGraffitiGraineGrandGrappinGratuitGravirGrenatGriffureGrillerGrimperGrognerGronderGrotteGroupeGrugerGrutierGruye-reGue/pardGuerrierGuideGuimauveGuitareGustatifGymnasteGyrostatHabitudeHachoirHalteHameauHangarHannetonHaricotHarmonieHarponHasardHe/liumHe/matomeHerbeHe/rissonHermineHe/ronHe/siterHeureuxHibernerHibouHilarantHistoireHiverHomardHommageHomoge-neHonneurHonorerHonteuxHordeHorizonHorlogeHormoneHorribleHouleuxHousseHublotHuileuxHumainHumbleHumideHumourHurlerHydromelHygie-neHymneHypnoseIdylleIgnorerIguaneIlliciteIllusionImageImbiberImiterImmenseImmobileImmuableImpactImpe/rialImplorerImposerImprimerImputerIncarnerIncendieIncidentInclinerIncoloreIndexerIndiceInductifIne/ditIneptieInexactInfiniInfligerInformerInfusionInge/rerInhalerInhiberInjecterInjureInnocentInoculerInonderInscrireInsecteInsigneInsoliteInspirerInstinctInsulterIntactIntenseIntimeIntrigueIntuitifInutileInvasionInventerInviterInvoquerIroniqueIrradierIrre/elIrriterIsolerIvoireIvresseJaguarJaillirJambeJanvierJardinJaugerJauneJavelotJetableJetonJeudiJeunesseJoindreJoncherJonglerJoueurJouissifJournalJovialJoyauJoyeuxJubilerJugementJuniorJuponJuristeJusticeJuteuxJuve/nileKayakKimonoKiosqueLabelLabialLabourerLace/rerLactoseLaguneLaineLaisserLaitierLambeauLamelleLampeLanceurLangageLanterneLapinLargeurLarmeLaurierLavaboLavoirLectureLe/galLe/gerLe/gumeLessiveLettreLevierLexiqueLe/zardLiasseLibe/rerLibreLicenceLicorneLie-geLie-vreLigatureLigoterLigueLimerLimiteLimonadeLimpideLine/aireLingotLionceauLiquideLisie-reListerLithiumLitigeLittoralLivreurLogiqueLointainLoisirLombricLoterieLouerLourdLoutreLouveLoyalLubieLucideLucratifLueurLugubreLuisantLumie-reLunaireLundiLuronLutterLuxueuxMachineMagasinMagentaMagiqueMaigreMaillonMaintienMairieMaisonMajorerMalaxerMale/ficeMalheurMaliceMalletteMammouthMandaterManiableManquantManteauManuelMarathonMarbreMarchandMardiMaritimeMarqueurMarronMartelerMascotteMassifMate/rielMatie-reMatraqueMaudireMaussadeMauveMaximalMe/chantMe/connuMe/dailleMe/decinMe/diterMe/duseMeilleurMe/langeMe/lodieMembreMe/moireMenacerMenerMenhirMensongeMentorMercrediMe/riteMerleMessagerMesureMe/talMe/te/oreMe/thodeMe/tierMeubleMiaulerMicrobeMietteMignonMigrerMilieuMillionMimiqueMinceMine/ralMinimalMinorerMinuteMiracleMiroiterMissileMixteMobileModerneMoelleuxMondialMoniteurMonnaieMonotoneMonstreMontagneMonumentMoqueurMorceauMorsureMortierMoteurMotifMoucheMoufleMoulinMoussonMoutonMouvantMultipleMunitionMurailleMure-neMurmureMuscleMuse/umMusicienMutationMuterMutuelMyriadeMyrtilleMyste-reMythiqueNageurNappeNarquoisNarrerNatationNationNatureNaufrageNautiqueNavireNe/buleuxNectarNe/fasteNe/gationNe/gligerNe/gocierNeigeNerveuxNettoyerNeuroneNeutronNeveuNicheNickelNitrateNiveauNobleNocifNocturneNoirceurNoisetteNomadeNombreuxNommerNormatifNotableNotifierNotoireNourrirNouveauNovateurNovembreNoviceNuageNuancerNuireNuisibleNume/roNuptialNuqueNutritifObe/irObjectifObligerObscurObserverObstacleObtenirObturerOccasionOccuperOce/anOctobreOctroyerOctuplerOculaireOdeurOdorantOffenserOfficierOffrirOgiveOiseauOisillonOlfactifOlivierOmbrageOmettreOnctueuxOndulerOne/reuxOniriqueOpaleOpaqueOpe/rerOpinionOpportunOpprimerOpterOptiqueOrageuxOrangeOrbiteOrdonnerOreilleOrganeOrgueilOrificeOrnementOrqueOrtieOscillerOsmoseOssatureOtarieOuraganOursonOutilOutragerOuvrageOvationOxydeOxyge-neOzonePaisiblePalacePalmare-sPalourdePalperPanachePandaPangolinPaniquerPanneauPanoramaPantalonPapayePapierPapoterPapyrusParadoxeParcelleParesseParfumerParlerParoleParrainParsemerPartagerParureParvenirPassionPaste-quePaternelPatiencePatronPavillonPavoiserPayerPaysagePeignePeintrePelagePe/licanPellePelousePeluchePendulePe/ne/trerPe/niblePensifPe/nuriePe/pitePe/plumPerdrixPerforerPe/riodePermuterPerplexePersilPertePeserPe/talePetitPe/trirPeuplePharaonPhobiePhoquePhotonPhrasePhysiquePianoPicturalPie-cePierrePieuvrePilotePinceauPipettePiquerPiroguePiscinePistonPivoterPixelPizzaPlacardPlafondPlaisirPlanerPlaquePlastronPlateauPleurerPlexusPliagePlombPlongerPluiePlumagePochettePoe/siePoe-tePointePoirierPoissonPoivrePolairePolicierPollenPolygonePommadePompierPonctuelPonde/rerPoneyPortiquePositionPosse/derPosturePotagerPoteauPotionPoucePoulainPoumonPourprePoussinPouvoirPrairiePratiquePre/cieuxPre/direPre/fixePre/ludePre/nomPre/sencePre/textePre/voirPrimitifPrincePrisonPriverProble-meProce/derProdigeProfondProgre-sProieProjeterProloguePromenerPropreProspe-reProte/gerProuesseProverbePrudencePruneauPsychosePublicPuceronPuiserPulpePulsarPunaisePunitifPupitrePurifierPuzzlePyramideQuasarQuerelleQuestionQuie/tudeQuitterQuotientRacineRaconterRadieuxRagondinRaideurRaisinRalentirRallongeRamasserRapideRasageRatisserRavagerRavinRayonnerRe/actifRe/agirRe/aliserRe/animerRecevoirRe/citerRe/clamerRe/colterRecruterReculerRecyclerRe/digerRedouterRefaireRe/flexeRe/formerRefrainRefugeRe/galienRe/gionRe/glageRe/gulierRe/ite/rerRejeterRejouerRelatifReleverReliefRemarqueReme-deRemiseRemonterRemplirRemuerRenardRenfortReniflerRenoncerRentrerRenvoiReplierReporterRepriseReptileRequinRe/serveRe/sineuxRe/soudreRespectResterRe/sultatRe/tablirRetenirRe/ticuleRetomberRetracerRe/unionRe/ussirRevancheRevivreRe/volteRe/vulsifRichesseRideauRieurRigideRigolerRincerRiposterRisibleRisqueRituelRivalRivie-reRocheuxRomanceRompreRonceRondinRoseauRosierRotatifRotorRotuleRougeRouilleRouleauRoutineRoyaumeRubanRubisRucheRuelleRugueuxRuinerRuisseauRuserRustiqueRythmeSablerSaboterSabreSacocheSafariSagesseSaisirSaladeSaliveSalonSaluerSamediSanctionSanglierSarcasmeSardineSaturerSaugrenuSaumonSauterSauvageSavantSavonnerScalpelScandaleSce/le/ratSce/narioSceptreSche/maScienceScinderScoreScrutinSculpterSe/anceSe/cableSe/cherSecouerSe/cre/terSe/datifSe/duireSeigneurSe/jourSe/lectifSemaineSemblerSemenceSe/minalSe/nateurSensibleSentenceSe/parerSe/quenceSereinSergentSe/rieuxSerrureSe/rumServiceSe/sameSe/virSevrageSextupleSide/ralSie-cleSie/gerSifflerSigleSignalSilenceSiliciumSimpleSince-reSinistreSiphonSiropSismiqueSituerSkierSocialSocleSodiumSoigneuxSoldatSoleilSolitudeSolubleSombreSommeilSomnolerSondeSongeurSonnetteSonoreSorcierSortirSosieSottiseSoucieuxSoudureSouffleSouleverSoupapeSourceSoutirerSouvenirSpacieuxSpatialSpe/cialSphe-reSpiralStableStationSternumStimulusStipulerStrictStudieuxStupeurStylisteSublimeSubstratSubtilSubvenirSucce-sSucreSuffixeSugge/rerSuiveurSulfateSuperbeSupplierSurfaceSuricateSurmenerSurpriseSursautSurvieSuspectSyllabeSymboleSyme/trieSynapseSyntaxeSyste-meTabacTablierTactileTaillerTalentTalismanTalonnerTambourTamiserTangibleTapisTaquinerTarderTarifTartineTasseTatamiTatouageTaupeTaureauTaxerTe/moinTemporelTenailleTendreTeneurTenirTensionTerminerTerneTerribleTe/tineTexteThe-meThe/orieThe/rapieThoraxTibiaTie-deTimideTirelireTiroirTissuTitaneTitreTituberTobogganTole/rantTomateToniqueTonneauToponymeTorcheTordreTornadeTorpilleTorrentTorseTortueTotemToucherTournageTousserToxineTractionTraficTragiqueTrahirTrainTrancherTravailTre-fleTremperTre/sorTreuilTriageTribunalTricoterTrilogieTriompheTriplerTriturerTrivialTromboneTroncTropicalTroupeauTuileTulipeTumulteTunnelTurbineTuteurTutoyerTuyauTympanTyphonTypiqueTyranUbuesqueUltimeUltrasonUnanimeUnifierUnionUniqueUnitaireUniversUraniumUrbainUrticantUsageUsineUsuelUsureUtileUtopieVacarmeVaccinVagabondVagueVaillantVaincreVaisseauValableValiseVallonValveVampireVanilleVapeurVarierVaseuxVassalVasteVecteurVedetteVe/ge/talVe/hiculeVeinardVe/loceVendrediVe/ne/rerVengerVenimeuxVentouseVerdureVe/rinVernirVerrouVerserVertuVestonVe/te/ranVe/tusteVexantVexerViaducViandeVictoireVidangeVide/oVignetteVigueurVilainVillageVinaigreViolonVipe-reVirementVirtuoseVirusVisageViseurVisionVisqueuxVisuelVitalVitesseViticoleVitrineVivaceVivipareVocationVoguerVoileVoisinVoitureVolailleVolcanVoltigerVolumeVoraceVortexVoterVouloirVoyageVoyelleWagonXe/nonYachtZe-breZe/nithZesteZoologie",Ss=null,g1={};function m1(t){return Ru.logger.checkNormalize(),(0,ku.toUtf8String)(Array.prototype.filter.call((0,ku.toUtf8Bytes)(t.normalize("NFD").toLowerCase()),function(r){return r>=65&&r<=90||r>=97&&r<=123}))}function G7(t){var r=[];return Array.prototype.forEach.call((0,ku.toUtf8Bytes)(t),function(e){e===47?(r.push(204),r.push(129)):e===45?(r.push(204),r.push(128)):r.push(e)}),(0,ku.toUtf8String)(r)}function v1(t){if(Ss==null&&(Ss=X7.replace(/([A-Z])/g," $1").toLowerCase().substring(1).split(" ").map(function(r){return G7(r)}),Ss.forEach(function(r,e){g1[m1(r)]=e}),Ru.Wordlist.check(t)!=="0x51deb7ae009149dc61a6bd18a918eb7ac78d2775726c68e598b92d002519b045"))throw Ss=null,new Error("BIP39 Wordlist for fr (French) FAILED")}var j7=function(t){q7(r,t);function r(){return t.call(this,"fr")||this}return r.prototype.getWord=function(e){return v1(this),Ss[e]},r.prototype.getWordIndex=function(e){return v1(this),g1[m1(e)]},r}(Ru.Wordlist),x1=new j7;vo.langFr=x1;Ru.Wordlist.register(x1)});var S1=L(go=>{"use strict";var z7=go&&go.__extends||function(){var t=function(r,e){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,i){n.__proto__=i}||function(n,i){for(var a in i)Object.prototype.hasOwnProperty.call(i,a)&&(n[a]=i[a])},t(r,e)};return function(r,e){if(typeof e!="function"&&e!==null)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");t(r,e);function n(){this.constructor=r}r.prototype=e===null?Object.create(e):(n.prototype=e.prototype,new n)}}();Object.defineProperty(go,"__esModule",{value:!0});go.langJa=void 0;var V7=De(),St=pr(),Nu=An(),Z7=["AQRASRAGBAGUAIRAHBAghAURAdBAdcAnoAMEAFBAFCBKFBQRBSFBCXBCDBCHBGFBEQBpBBpQBIkBHNBeOBgFBVCBhBBhNBmOBmRBiHBiFBUFBZDBvFBsXBkFBlcBjYBwDBMBBTBBTRBWBBWXXaQXaRXQWXSRXCFXYBXpHXOQXHRXhRXuRXmXXbRXlXXwDXTRXrCXWQXWGaBWaKcaYgasFadQalmaMBacAKaRKKBKKXKKjKQRKDRKCYKCRKIDKeVKHcKlXKjHKrYNAHNBWNaRNKcNIBNIONmXNsXNdXNnBNMBNRBNrXNWDNWMNFOQABQAHQBrQXBQXFQaRQKXQKDQKOQKFQNBQNDQQgQCXQCDQGBQGDQGdQYXQpBQpQQpHQLXQHuQgBQhBQhCQuFQmXQiDQUFQZDQsFQdRQkHQbRQlOQlmQPDQjDQwXQMBQMDQcFQTBQTHQrDDXQDNFDGBDGQDGRDpFDhFDmXDZXDbRDMYDRdDTRDrXSAhSBCSBrSGQSEQSHBSVRShYShkSyQSuFSiBSdcSoESocSlmSMBSFBSFKSFNSFdSFcCByCaRCKcCSBCSRCCrCGbCEHCYXCpBCpQCIBCIHCeNCgBCgFCVECVcCmkCmwCZXCZFCdRClOClmClFCjDCjdCnXCwBCwXCcRCFQCFjGXhGNhGDEGDMGCDGCHGIFGgBGVXGVEGVRGmXGsXGdYGoSGbRGnXGwXGwDGWRGFNGFLGFOGFdGFkEABEBDEBFEXOEaBEKSENBENDEYXEIgEIkEgBEgQEgHEhFEudEuFEiBEiHEiFEZDEvBEsXEsFEdXEdREkFEbBEbRElFEPCEfkEFNYAEYAhYBNYQdYDXYSRYCEYYoYgQYgRYuRYmCYZTYdBYbEYlXYjQYRbYWRpKXpQopQnpSFpCXpIBpISphNpdBpdRpbRpcZpFBpFNpFDpFopFrLADLBuLXQLXcLaFLCXLEhLpBLpFLHXLeVLhILdHLdRLoDLbRLrXIABIBQIBCIBsIBoIBMIBRIXaIaRIKYIKRINBINuICDIGBIIDIIkIgRIxFIyQIiHIdRIbYIbRIlHIwRIMYIcRIRVITRIFBIFNIFQOABOAFOBQOaFONBONMOQFOSFOCDOGBOEQOpBOLXOIBOIFOgQOgFOyQOycOmXOsXOdIOkHOMEOMkOWWHBNHXNHXWHNXHDuHDRHSuHSRHHoHhkHmRHdRHkQHlcHlRHwBHWcgAEgAggAkgBNgBQgBEgXOgYcgLXgHjgyQgiBgsFgdagMYgWSgFQgFEVBTVXEVKBVKNVKDVKYVKRVNBVNYVDBVDxVSBVSRVCjVGNVLXVIFVhBVhcVsXVdRVbRVlRhBYhKYhDYhGShxWhmNhdahdkhbRhjohMXhTRxAXxXSxKBxNBxEQxeNxeQxhXxsFxdbxlHxjcxFBxFNxFQxFOxFoyNYyYoybcyMYuBQuBRuBruDMuCouHBudQukkuoBulVuMXuFEmCYmCRmpRmeDmiMmjdmTFmFQiADiBOiaRiKRiNBiNRiSFiGkiGFiERipRiLFiIFihYibHijBijEiMXiWBiFBiFCUBQUXFUaRUNDUNcUNRUNFUDBUSHUCDUGBUGFUEqULNULoUIRUeEUeYUgBUhFUuRUiFUsXUdFUkHUbBUjSUjYUwXUMDUcHURdUTBUrBUrXUrQZAFZXZZaRZKFZNBZQFZCXZGBZYdZpBZLDZIFZHXZHNZeQZVRZVFZmXZiBZvFZdFZkFZbHZbFZwXZcCZcRZRBvBQvBGvBLvBWvCovMYsAFsBDsaRsKFsNFsDrsSHsSFsCXsCRsEBsEHsEfspBsLBsLDsIgsIRseGsbRsFBsFQsFSdNBdSRdCVdGHdYDdHcdVbdySduDdsXdlRdwXdWYdWcdWRkBMkXOkaRkNIkNFkSFkCFkYBkpRkeNkgBkhVkmXksFklVkMBkWDkFNoBNoaQoaFoNBoNXoNaoNEoSRoEroYXoYCoYbopRopFomXojkowXorFbBEbEIbdBbjYlaRlDElMXlFDjKjjSRjGBjYBjYkjpRjLXjIBjOFjeVjbRjwBnXQnSHnpFnLXnINnMBnTRwXBwXNwXYwNFwQFwSBwGFwLXwLDweNwgBwuHwjDwnXMBXMpFMIBMeNMTHcaQcNBcDHcSFcCXcpBcLXcLDcgFcuFcnXcwXccDcTQcrFTQErXNrCHrpFrgFrbFrTHrFcWNYWNbWEHWMXWTR","ABGHABIJAEAVAYJQALZJAIaRAHNXAHdcAHbRAZJMAZJRAZTRAdVJAklmAbcNAjdRAMnRAMWYAWpRAWgRAFgBAFhBAFdcBNJBBNJDBQKBBQhcBQlmBDEJBYJkBYJTBpNBBpJFBIJBBIJDBIcABOKXBOEJBOVJBOiJBOZJBepBBeLXBeIFBegBBgGJBVJXBuocBiJRBUJQBlXVBlITBwNFBMYVBcqXBTlmBWNFBWiJBWnRBFGHBFwXXKGJXNJBXNZJXDTTXSHSXSVRXSlHXCJDXGQJXEhXXYQJXYbRXOfXXeNcXVJFXhQJXhEJXdTRXjdXXMhBXcQTXRGBXTEBXTnQXFCXXFOFXFgFaBaFaBNJaBCJaBpBaBwXaNJKaNJDaQIBaDpRaEPDaHMFamDJalEJaMZJaFaFaFNBaFQJaFLDaFVHKBCYKBEBKBHDKXaFKXGdKXEJKXpHKXIBKXZDKXwXKKwLKNacKNYJKNJoKNWcKDGdKDTRKChXKGaRKGhBKGbRKEBTKEaRKEPTKLMDKLWRKOHDKVJcKdBcKlIBKlOPKFSBKFEPKFpFNBNJNJBQNBGHNBEPNBHXNBgFNBVXNBZDNBsXNBwXNNaRNNJDNNJENNJkNDCJNDVDNGJRNJiDNZJNNsCJNJFNNFSBNFCXNFEPNFLXNFIFQJBFQCaRQJEQQLJDQLJFQIaRQOqXQHaFQHHQQVJXQVJDQhNJQmEIQZJFQsJXQJrFQWbRDJABDBYJDXNFDXCXDXLXDXZDDXsJDQqXDSJFDJCXDEPkDEqXDYmQDpSJDOCkDOGQDHEIDVJDDuDuDWEBDJFgSBNDSBSFSBGHSBIBSBTQSKVYSJQNSJQiSJCXSEqXSJYVSIiJSOMYSHAHSHaQSeCFSepQSegBSHdHSHrFShSJSJuHSJUFSkNRSrSrSWEBSFaHSJFQSFCXSFGDSFYXSFODSFgBSFVXSFhBSFxFSFkFSFbBSFMFCADdCJXBCXaFCXKFCXNFCXCXCXGBCXEJCXYBCXLDCXIBCXOPCXHXCXgBCXhBCXiBCXlDCXcHCJNBCJNFCDCJCDGBCDVXCDhBCDiDCDJdCCmNCpJFCIaRCOqXCHCHCHZJCViJCuCuCmddCJiFCdNBCdHhClEJCnUJCreSCWlgCWTRCFBFCFNBCFYBCFVFCFhFCFdSCFTBCFWDGBNBGBQFGJBCGBEqGBpBGBgQGNBEGNJYGNkOGNJRGDUFGJpQGHaBGJeNGJeEGVBlGVKjGiJDGvJHGsVJGkEBGMIJGWjNGFBFGFCXGFGBGFYXGFpBGFMFEASJEAWpEJNFECJVEIXSEIQJEOqXEOcFEeNcEHEJEHlFEJgFEhlmEmDJEmZJEiMBEUqXEoSREPBFEPXFEPKFEPSFEPEFEPpFEPLXEPIBEJPdEPcFEPTBEJnXEqlHEMpREFCXEFODEFcFYASJYJAFYBaBYBVXYXpFYDhBYCJBYJGFYYbRYeNcYJeVYiIJYZJcYvJgYvJRYJsXYsJFYMYMYreVpBNHpBEJpBwXpQxFpYEJpeNDpJeDpeSFpeCHpHUJpHbBpHcHpmUJpiiJpUJrpsJuplITpFaBpFQqpFGBpFEfpFYBpFpBpFLJpFIDpFgBpFVXpFyQpFuFpFlFpFjDpFnXpFwXpJFMpFTBLXCJLXEFLXhFLXUJLXbFLalmLNJBLSJQLCLCLGJBLLDJLHaFLeNFLeSHLeCXLepFLhaRLZsJLsJDLsJrLocaLlLlLMdbLFNBLFSBLFEHLFkFIBBFIBXFIBaQIBKXIBSFIBpHIBLXIBgBIBhBIBuHIBmXIBiFIBZXIBvFIBbFIBjQIBwXIBWFIKTRIQUJIDGFICjQIYSRIINXIJeCIVaRImEkIZJFIvJRIsJXIdCJIJoRIbBQIjYBIcqXITFVIreVIFKFIFSFIFCJIFGFIFLDIFIBIJFOIFgBIFVXIJFhIFxFIFmXIFdHIFbBIJFrIJFWOBGBOQfXOOKjOUqXOfXBOqXEOcqXORVJOFIBOFlDHBIOHXiFHNTRHCJXHIaRHHJDHHEJHVbRHZJYHbIBHRsJHRkDHWlmgBKFgBSBgBCDgBGHgBpBgBIBgBVJgBuBgBvFgKDTgQVXgDUJgGSJgOqXgmUMgZIJgTUJgWIEgFBFgFNBgFDJgFSFgFGBgFYXgJFOgFgQgFVXgFhBgFbHgJFWVJABVQKcVDgFVOfXVeDFVhaRVmGdViJYVMaRVFNHhBNDhBCXhBEqhBpFhBLXhNJBhSJRheVXhhKEhxlmhZIJhdBQhkIJhbMNhMUJhMZJxNJgxQUJxDEkxDdFxSJRxplmxeSBxeCXxeGFxeYXxepQxegBxWVcxFEQxFLXxFIBxFgBxFxDxFZtxFdcxFbBxFwXyDJXyDlcuASJuDJpuDIBuCpJuGSJuIJFueEFuZIJusJXudWEuoIBuWGJuFBcuFKEuFNFuFQFuFDJuFGJuFVJuFUtuFdHuFTBmBYJmNJYmQhkmLJDmLJomIdXmiJYmvJRmsJRmklmmMBymMuCmclmmcnQiJABiJBNiJBDiBSFiBCJiBEFiBYBiBpFiBLXiBTHiJNciDEfiCZJiECJiJEqiOkHiHKFieNDiHJQieQcieDHieSFieCXieGFieEFieIHiegFihUJixNoioNXiFaBiFKFiFNDiFEPiFYXitFOitFHiFgBiFVEiFmXiFitiFbBiFMFiFrFUCXQUIoQUIJcUHQJUeCEUHwXUUJDUUqXUdWcUcqXUrnQUFNDUFSHUFCFUFEfUFLXUtFOZBXOZXSBZXpFZXVXZEQJZEJkZpDJZOqXZeNHZeCDZUqXZFBQZFEHZFLXvBAFvBKFvBCXvBEPvBpHvBIDvBgFvBuHvQNJvFNFvFGBvFIBvJFcsXCDsXLXsXsXsXlFsXcHsQqXsJQFsEqXseIFsFEHsFjDdBxOdNpRdNJRdEJbdpJRdhZJdnSJdrjNdFNJdFQHdFhNkNJDkYaRkHNRkHSRkVbRkuMRkjSJkcqDoSJFoEiJoYZJoOfXohEBoMGQocqXbBAFbBXFbBaFbBNDbBGBbBLXbBTBbBWDbGJYbIJHbFQqbFpQlDgQlOrFlVJRjGEBjZJRnXvJnXbBnEfHnOPDngJRnxfXnUJWwXEJwNpJwDpBwEfXwrEBMDCJMDGHMDIJMLJDcQGDcQpHcqXccqNFcqCXcFCJRBSBRBGBRBEJRBpQTBNFTBQJTBpBTBVXTFABTFSBTFCFTFGBTFMDrXCJrXLDrDNJrEfHrFQJrFitWNjdWNTR","AKLJMANOPFASNJIAEJWXAYJNRAIIbRAIcdaAeEfDAgidRAdjNYAMYEJAMIbRAFNJBAFpJFBBIJYBDZJFBSiJhBGdEBBEJfXBEJqXBEJWRBpaUJBLXrXBIYJMBOcfXBeEfFBestXBjNJRBcDJOBFEqXXNvJRXDMBhXCJNYXOAWpXONJWXHDEBXeIaRXhYJDXZJSJXMDJOXcASJXFVJXaBQqXaBZJFasXdQaFSJQaFEfXaFpJHaFOqXKBNSRKXvJBKQJhXKEJQJKEJGFKINJBKIJjNKgJNSKVElmKVhEBKiJGFKlBgJKjnUJKwsJYKMFIJKFNJDKFIJFKFOfXNJBSFNJBCXNBpJFNJBvQNJBMBNJLJXNJOqXNJeCXNJeGFNdsJCNbTKFNwXUJQNFEPQDiJcQDMSJQSFpBQGMQJQJeOcQyCJEQUJEBQJFBrQFEJqDXDJFDJXpBDJXIMDGiJhDIJGRDJeYcDHrDJDVXgFDkAWpDkIgRDjDEqDMvJRDJFNFDJFIBSKclmSJQOFSJQVHSJQjDSJGJBSJGJFSECJoSHEJqSJHTBSJVJDSViJYSZJNBSJsJDSFSJFSFEfXSJFLXCBUJVCJXSBCJXpBCXVJXCJXsXCJXdFCJNJHCLIJgCHiJFCVNJMChCJhCUHEJCsJTRCJdYcCoQJCCFEfXCFIJgCFUJxCFstFGJBaQGJBIDGQJqXGYJNRGJHKFGeQqDGHEJFGJeLXGHIiJGHdBlGUJEBGkIJTGFQPDGJFEqEAGegEJIJBEJVJXEhQJTEiJNcEJZJFEJoEqEjDEqEPDsXEPGJBEPOqXEPeQFEfDiDEJfEFEfepQEfMiJEqXNBEqDIDEqeSFEqVJXEMvJRYXNJDYXEJHYKVJcYYJEBYJeEcYJUqXYFpJFYFstXpAZJMpBSJFpNBNFpeQPDpHLJDpHIJFpHgJFpeitFpHZJFpJFADpFSJFpJFCJpFOqXpFitBpJFZJLXIJFLIJgRLVNJWLVHJMLwNpJLFGJBLFLJDLFOqXLJFUJIBDJXIBGJBIJBYQIJBIBIBOqXIBcqDIEGJFILNJTIIJEBIOiJhIJeNBIJeIBIhiJIIWoTRIJFAHIJFpBIJFuHIFUtFIJFTHOSBYJOEcqXOHEJqOvBpFOkVJrObBVJOncqDOcNJkHhNJRHuHJuHdMhBgBUqXgBsJXgONJBgHNJDgHHJQgJeitgHsJXgJyNagyDJBgZJDrgsVJQgkEJNgkjSJgJFAHgFCJDgFZtMVJXNFVXQfXVJXDJVXoQJVQVJQVDEfXVDvJHVEqNFVeQfXVHpJFVHxfXVVJSRVVmaRVlIJOhCXVJhHjYkhxCJVhWVUJhWiJcxBNJIxeEqDxfXBFxcFEPxFSJFxFYJXyBDQJydaUJyFOPDuYCJYuLvJRuHLJXuZJLDuFOPDuFZJHuFcqXmKHJdmCQJcmOsVJiJAGFitLCFieOfXiestXiZJMEikNJQirXzFiFQqXiFIJFiFZJFiFvtFUHpJFUteIcUteOcUVCJkUhdHcUbEJEUJqXQUMNJhURjYkUFitFZDGJHZJIxDZJVJXZJFDJZJFpQvBNJBvBSJFvJxBrseQqDsVFVJdFLJDkEJNBkmNJYkFLJDoQJOPoGsJRoEAHBoEJfFbBQqDbBZJHbFVJXlFIJBjYIrXjeitcjjCEBjWMNBwXQfXwXOaFwDsJXwCJTRwrCZJMDNJQcDDJFcqDOPRYiJFTBsJXTQIJBTFEfXTFLJDrXEJFrEJXMrFZJFWEJdEWYTlm","ABCDEFACNJTRAMBDJdAcNJVXBLNJEBXSIdWRXErNJkXYDJMBXZJCJaXMNJaYKKVJKcKDEJqXKDcNJhKVJrNYKbgJVXKFVJSBNBYBwDNJeQfXNJeEqXNhGJWENJFiJRQlIJbEQJfXxDQqXcfXQFNDEJQFwXUJDYcnUJDJIBgQDIUJTRDJFEqDSJQSJFSJQIJFSOPeZtSJFZJHCJXQfXCTDEqFGJBSJFGJBOfXGJBcqXGJHNJDGJRLiJEJfXEqEJFEJPEFpBEJYJBZJFYBwXUJYiJMEBYJZJyTYTONJXpQMFXFpeGIDdpJFstXpJFcPDLBVSJRLHQJqXLJFZJFIJBNJDIJBUqXIBkFDJIJEJPTIYJGWRIJeQPDIJeEfHIJFsJXOqGDSFHXEJqXgJCsJCgGQJqXgdQYJEgFMFNBgJFcqDVJwXUJVJFZJchIgJCCxOEJqXxOwXUJyDJBVRuscisciJBiJBieUtqXiJFDJkiFsJXQUGEZJcUJFsJXZtXIrXZDZJDrZJFNJDZJFstXvJFQqXvJFCJEsJXQJqkhkNGBbDJdTRbYJMEBlDwXUJMEFiJFcfXNJDRcNJWMTBLJXC","BraFUtHBFSJFdbNBLJXVJQoYJNEBSJBEJfHSJHwXUJCJdAZJMGjaFVJXEJPNJBlEJfFiJFpFbFEJqIJBVJCrIBdHiJhOPFChvJVJZJNJWxGFNIFLueIBQJqUHEJfUFstOZJDrlXEASJRlXVJXSFwVJNJWD","QJEJNNJDQJEJIBSFQJEJxegBQJEJfHEPSJBmXEJFSJCDEJqXLXNJFQqXIcQsFNJFIFEJqXUJgFsJXIJBUJEJfHNFvJxEqXNJnXUJFQqD","IJBEJqXZJ"],K7="~~AzB~X~a~KN~Q~D~S~C~G~E~Y~p~L~I~O~eH~g~V~hxyumi~~U~~Z~~v~~s~~dkoblPjfnqwMcRTr~W~~~F~~~~~Jt",at=null;function A1(t){return(0,V7.hexlify)((0,St.toUtf8Bytes)(t))}var Q7="0xe3818de38284e3818f",W7="0xe3818de38283e3818f";function w1(t){if(at!==null)return;at=[];var r={};r[(0,St.toUtf8String)([227,130,154])]=!1,r[(0,St.toUtf8String)([227,130,153])]=!1,r[(0,St.toUtf8String)([227,130,133])]=(0,St.toUtf8String)([227,130,134]),r[(0,St.toUtf8String)([227,129,163])]=(0,St.toUtf8String)([227,129,164]),r[(0,St.toUtf8String)([227,130,131])]=(0,St.toUtf8String)([227,130,132]),r[(0,St.toUtf8String)([227,130,135])]=(0,St.toUtf8String)([227,130,136]);function e(_){for(var E="",C=0;C<_.length;C++){var P=_[C],B=r[P];B!==!1&&(B&&(P=B),E+=P)}return E}function n(_,E){return _=e(_),E=e(E),_E?1:0}for(var i=3;i<=9;i++)for(var a=Z7[i-3],o=0;o{"use strict";var $7=mo&&mo.__extends||function(){var t=function(r,e){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,i){n.__proto__=i}||function(n,i){for(var a in i)Object.prototype.hasOwnProperty.call(i,a)&&(n[a]=i[a])},t(r,e)};return function(r,e){if(typeof e!="function"&&e!==null)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");t(r,e);function n(){this.constructor=r}r.prototype=e===null?Object.create(e):(n.prototype=e.prototype,new n)}}();Object.defineProperty(mo,"__esModule",{value:!0});mo.langKo=void 0;var e9=pr(),il=An(),r9=["OYAa","ATAZoATBl3ATCTrATCl8ATDloATGg3ATHT8ATJT8ATJl3ATLlvATLn4ATMT8ATMX8ATMboATMgoAToLbAToMTATrHgATvHnAT3AnAT3JbAT3MTAT8DbAT8JTAT8LmAT8MYAT8MbAT#LnAUHT8AUHZvAUJXrAUJX8AULnrAXJnvAXLUoAXLgvAXMn6AXRg3AXrMbAX3JTAX3QbAYLn3AZLgvAZrSUAZvAcAZ8AaAZ8AbAZ8AnAZ8HnAZ8LgAZ8MYAZ8MgAZ8OnAaAboAaDTrAaFTrAaJTrAaJboAaLVoAaMXvAaOl8AaSeoAbAUoAbAg8AbAl4AbGnrAbMT8AbMXrAbMn4AbQb8AbSV8AbvRlAb8AUAb8AnAb8HgAb8JTAb8NTAb8RbAcGboAcLnvAcMT8AcMX8AcSToAcrAaAcrFnAc8AbAc8MgAfGgrAfHboAfJnvAfLV8AfLkoAfMT8AfMnoAfQb8AfScrAfSgrAgAZ8AgFl3AgGX8AgHZvAgHgrAgJXoAgJX8AgJboAgLZoAgLn4AgOX8AgoATAgoAnAgoCUAgoJgAgoLXAgoMYAgoSeAgrDUAgrJTAhrFnAhrLjAhrQgAjAgoAjJnrAkMX8AkOnoAlCTvAlCV8AlClvAlFg4AlFl6AlFn3AloSnAlrAXAlrAfAlrFUAlrFbAlrGgAlrOXAlvKnAlvMTAl3AbAl3MnAnATrAnAcrAnCZ3AnCl8AnDg8AnFboAnFl3AnHX4AnHbrAnHgrAnIl3AnJgvAnLXoAnLX4AnLbrAnLgrAnLhrAnMXoAnMgrAnOn3AnSbrAnSeoAnvLnAn3OnCTGgvCTSlvCTvAUCTvKnCTvNTCT3CZCT3GUCT3MTCT8HnCUCZrCULf8CULnvCU3HnCU3JUCY6NUCbDb8CbFZoCbLnrCboOTCboScCbrFnCbvLnCb8AgCb8HgCb$LnCkLfoClBn3CloDUDTHT8DTLl3DTSU8DTrAaDTrLXDTrLjDTrOYDTrOgDTvFXDTvFnDT3HUDT3LfDUCT9DUDT4DUFVoDUFV8DUFkoDUGgrDUJnrDULl8DUMT8DUMXrDUMX4DUMg8DUOUoDUOgvDUOg8DUSToDUSZ8DbDXoDbDgoDbGT8DbJn3DbLg3DbLn4DbMXrDbMg8DbOToDboJXGTClvGTDT8GTFZrGTLVoGTLlvGTLl3GTMg8GTOTvGTSlrGToCUGTrDgGTrJYGTrScGTtLnGTvAnGTvQgGUCZrGUDTvGUFZoGUHXrGULnvGUMT8GUoMgGXoLnGXrMXGXrMnGXvFnGYLnvGZOnvGZvOnGZ8LaGZ8LmGbAl3GbDYvGbDlrGbHX3GbJl4GbLV8GbLn3GbMn4GboJTGboRfGbvFUGb3GUGb4JnGgDX3GgFl$GgJlrGgLX6GgLZoGgLf8GgOXoGgrAgGgrJXGgrMYGgrScGgvATGgvOYGnAgoGnJgvGnLZoGnLg3GnLnrGnQn8GnSbrGnrMgHTClvHTDToHTFT3HTQT8HToJTHToJgHTrDUHTrMnHTvFYHTvRfHT8MnHT8SUHUAZ8HUBb4HUDTvHUoMYHXFl6HXJX6HXQlrHXrAUHXrMnHXrSbHXvFYHXvKXHX3LjHX3MeHYvQlHZrScHZvDbHbAcrHbFT3HbFl3HbJT8HbLTrHbMT8HbMXrHbMbrHbQb8HbSX3HboDbHboJTHbrFUHbrHgHbrJTHb8JTHb8MnHb8QgHgAlrHgDT3HgGgrHgHgrHgJTrHgJT8HgLX@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!Ln$CTGXMnCToLZ4CTrHT8CT3JTrCT3RZrCT#GTvCU6GgvCU8Db8CU8GZrCU8HT8CboLl3CbrGgrCbrMU8Cb8DT3Cb8GnrCb8LX4Cb8MT8Cb8ObrCgrGgvCgrKX4Cl8FZoDTrAbvDTrDboDTrGT6DTrJgrDTrMX3DTrRZrDTrRg8DTvAVvDTvFZoDT3DT8DT3Ln3DT4HZrDT4MT8DT8AlrDT8MT8DUAkGbDUDbJnDYLnQlDbDUOYDbMTAnDbMXSnDboAT3DboFn4DboLnvDj6JTrGTCgFTGTGgFnGTJTMnGTLnPlGToJT8GTrCT3GTrLVoGTrLnvGTrMX3GTrMboGTvKl3GZClFnGZrDT3GZ8DTrGZ8FZ8GZ8MXvGZ8On8GZ8ST3GbCnQXGbMbFnGboFboGboJg3GboMXoGb3JTvGb3JboGb3Mn6Gb3Qb8GgDXLjGgMnAUGgrDloGgrHX4GgrSToGgvAXrGgvAZvGgvFbrGgvLl3GgvMnvGnDnLXGnrATrGnrMboGnuLl3HTATMnHTAgCnHTCTCTHTrGTvHTrHTvHTrJX8HTrLl8HTrMT8HTrMgoHTrOTrHTuOn3HTvAZrHTvDTvHTvGboHTvJU8HTvLl3HTvMXrHTvQb4HT4GT6HT4JT8HT4Jb#HT8Al3HT8GZrHT8GgrHT8HX4HT8Jb8HT8JnoHT8LTrHT8LgvHT8SToHT8SV8HUoJUoHUoJX8HUoLnrHXrLZoHXvAl3HX3LnrHX4FkvHX4LhrHX4MXoHX4OnoHZrAZ8HZrDb8HZrGZ8HZrJnrHZvGZ8HZvLnvHZ8JnvHZ8LhrHbCXJlHbMTAnHboJl4HbpLl3HbrJX8HbrLnrHbrMnvHbvRYrHgoSTrHgrFV8HgrGZ8HgrJXoHgrRnvHgvBb!HgvGTrHgvHX4HgvHn!HgvLTrHgvSU8HnDnLbHnFbJbHnvDn8Hn6GgvHn!BTvJTCTLnJTQgFnJTrAnvJTrLX4JTrOUoJTvFn3JTvLnrJTvNToJT3AgoJT3Jn4JT3LhvJT3ObrJT8AcrJT8Al3JT8JT8JT8JnoJT8LX4JT8LnrJT8MX3JT8Rg3JT8Sc8JUoBTvJU8AToJU8GZ8JU8GgvJU8JTrJU8JXrJU8JnrJU8LnvJU8ScvJXHnJlJXrGgvJXrJU8JXrLhrJXrMT8JXrMXrJXrQUoJXvCTvJXvGZ8JXvGgrJXvQT8JX8Ab8JX8DT8JX8GZ8JX8HZvJX8LnrJX8MT8JX8MXoJX8MnvJX8ST3JYGnCTJbAkGbJbCTAnJbLTAcJboDT3JboLb6JbrAnvJbrCn3JbrDl8JbrGboJbrIZoJbrJnvJbrMnvJbrQb4Jb8RZrJeAbAnJgJnFbJgScAnJgrATrJgvHZ8JgvMn4JlJlFbJlLiQXJlLjOnJlRbOlJlvNXoJlvRl3Jl4AcrJl8AUoJl8MnrJnFnMlJnHgGbJnoDT8JnoFV8JnoGgvJnoIT8JnoQToJnoRg3JnrCZ3JnrGgrJnrHTvJnrLf8JnrOX8JnvAT3JnvFZoJnvGT8JnvJl4JnvMT8JnvMX8JnvOXrJnvPX6JnvSX3JnvSZrJn3MT8Jn3MX8Jn3RTrLTATKnLTJnLTLTMXKnLTRTQlLToGb8LTrAZ8LTrCZ8LTrDb8LTrHT8LT3PX6LT4FZoLT$CTvLT$GgrLUvHX3LVoATrLVoAgoLVoJboLVoMX3LVoRg3LV8CZ3LV8FZoLV8GTvLXrDXoLXrFbrLXvAgvLXvFlrLXvLl3LXvRn6LX4Mb8LX8GT8LYCXMnLYrMnrLZoSTvLZrAZvLZrAloLZrFToLZrJXvLZrJboLZrJl4LZrLnrLZrMT8LZrOgvLZrRnvLZrST4LZvMX8LZvSlvLZ8AgoLZ8CT3LZ8JT8LZ8LV8LZ8LZoLZ8Lg8LZ8SV8LZ8SbrLZ$HT8LZ$Mn4La6CTvLbFbMnLbRYFTLbSnFZLboJT8LbrAT9LbrGb3LbrQb8LcrJX8LcrMXrLerHTvLerJbrLerNboLgrDb8LgrGZ8LgrHTrLgrMXrLgrSU8LgvJTrLgvLl3Lg6Ll3LhrLnrLhrMT8LhvAl4LiLnQXLkoAgrLkoJT8LkoJn4LlrSU8Ll3FZoLl3HTrLl3JX8Ll3JnoLl3LToLmLeFbLnDUFbLnLVAnLnrATrLnrAZoLnrAb8LnrAlrLnrGgvLnrJU8LnrLZrLnrLhrLnrMb8LnrOXrLnrSZ8LnvAb4LnvDTrLnvDl8LnvHTrLnvHbrLnvJT8LnvJU8LnvJbrLnvLhvLnvMX8LnvMb8LnvNnoLnvSU8Ln3Al3Ln4FZoLn4GT6Ln4JgvLn4LhrLn4MT8Ln4SToMToCZrMToJX8MToLX4MToLf8MToRg3MTrEloMTvGb6MT3BTrMT3Lb6MT8AcrMT8AgrMT8GZrMT8JnoMT8LnrMT8MX3MUOUAnMXAbFnMXoAloMXoJX8MXoLf8MXoLl8MXrAb8MXrDTvMXrGT8MXrGgrMXrHTrMXrLf8MXrMU8MXrOXvMXrQb8MXvGT8MXvHTrMXvLVoMX3AX3MX3Jn3MX3LhrMX3MX3MX4AlrMX4OboMX8GTvMX8GZrMX8GgrMX8JT8MX8JX8MX8LhrMX8MT8MYDUFbMYMgDbMbGnFfMbvLX4MbvLl3Mb8Mb8Mb8ST4MgGXCnMg8ATrMg8AgoMg8CZrMg8DTrMg8DboMg8HTrMg8JgrMg8LT8MloJXoMl8AhrMl8JT8MnLgAUMnoJXrMnoLX4MnoLhrMnoMT8MnrAl4MnrDb8MnrOTvMnrOgvMnrQb8MnrSU8MnvGgrMnvHZ8Mn3MToMn4DTrMn4LTrMn4Mg8NnBXAnOTFTFnOToAToOTrGgvOTrJX8OT3JXoOT6MTrOT8GgrOT8HTpOT8MToOUoHT8OUoJT8OUoLn3OXrAgoOXrDg8OXrMT8OXvSToOX6CTvOX8CZrOX8OgrOb6HgvOb8AToOb8MT8OcvLZ8OgvAlrOgvHTvOgvJTrOgvJnrOgvLZrOgvLn4OgvMT8OgvRTrOg8AZoOg8DbvOnrOXoOnvJn4OnvLhvOnvRTrOn3GgoOn3JnvOn6JbvOn8OTrPTGYFTPbBnFnPbGnDnPgDYQTPlrAnvPlrETvPlrLnvPlrMXvPlvFX4QTMTAnQTrJU8QYCnJlQYJlQlQbGTQbQb8JnrQb8LZoQb8LnvQb8MT8Qb8Ml8Qb8ST4QloAl4QloHZvQloJX8QloMn8QnJZOlRTrAZvRTrDTrRTvJn4RTvLhvRT4Jb8RZrAZrRZ8AkrRZ8JU8RZ8LV8RZ8LnvRbJlQXRg3GboRg3MnvRg8AZ8Rg8JboRg8Jl4RnLTCbRnvFl3RnvQb8SToAl4SToCZrSToFZoSToHXrSToJU8SToJgvSToJl4SToLhrSToMX3STrAlvSTrCT9STrCgrSTrGgrSTrHXrSTrHboSTrJnoSTrNboSTvLnrST4AZoST8Ab8ST8JT8SUoJn3SU6HZ#SU6JTvSU8Db8SU8HboSU8LgrSV8JT8SZrAcrSZrAl3SZrJT8SZrJnvSZrMT8SZvLUoSZ4FZoSZ8JnoSZ8RZrScoLnrScoMT8ScoMX8ScrAT4ScrAZ8ScrLZ8ScrLkvScvDb8ScvLf8ScvNToSgrFZrShvKnrSloHUoSloLnrSlrMXoSl8HgrSmrJUoSn3BX6","ATFlOn3ATLgrDYAT4MTAnAT8LTMnAYJnRTrAbGgJnrAbLV8LnAbvNTAnAeFbLg3AgOYMXoAlQbFboAnDboAfAnJgoJTBToDgAnBUJbAl3BboDUAnCTDlvLnCTFTrSnCYoQTLnDTwAbAnDUDTrSnDUHgHgrDX8LXFnDbJXAcrETvLTLnGTFTQbrGTMnGToGT3DUFbGUJlPX3GbQg8LnGboJbFnGb3GgAYGgAg8ScGgMbAXrGgvAbAnGnJTLnvGnvATFgHTDT6ATHTrDlJnHYLnMn8HZrSbJTHZ8LTFnHbFTJUoHgSeMT8HgrLjAnHgvAbAnHlFUrDlHnDgvAnHnHTFT3HnQTGnrJTAaMXvJTGbCn3JTOgrAnJXvAXMnJbMg8SnJbMnRg3Jb8LTMnJnAl3OnJnGYrQlJnJlQY3LTDlCn3LTJjLg3LTLgvFXLTMg3GTLV8HUOgLXFZLg3LXNXrMnLX8QXFnLX9AlMYLYLXPXrLZAbJU8LZDUJU8LZMXrSnLZ$AgFnLaPXrDULbFYrMnLbMn8LXLboJgJgLeFbLg3LgLZrSnLgOYAgoLhrRnJlLkCTrSnLkOnLhrLnFX%AYLnFZoJXLnHTvJbLnLloAbMTATLf8MTHgJn3MTMXrAXMT3MTFnMUITvFnMXFX%AYMXMXvFbMXrFTDbMYAcMX3MbLf8SnMb8JbFnMgMXrMTMgvAXFnMgvGgCmMnAloSnMnFnJTrOXvMXSnOX8HTMnObJT8ScObLZFl3ObMXCZoPTLgrQXPUFnoQXPU3RXJlPX3RkQXPbrJXQlPlrJbFnQUAhrDbQXGnCXvQYLnHlvQbLfLnvRTOgvJbRXJYrQlRYLnrQlRbLnrQlRlFT8JlRlFnrQXSTClCn3STHTrAnSTLZQlrSTMnGTrSToHgGbSTrGTDnSTvGXCnST3HgFbSU3HXAXSbAnJn3SbFT8LnScLfLnv","AT3JgJX8AT8FZoSnAT8JgFV8AT8LhrDbAZ8JT8DbAb8GgLhrAb8SkLnvAe8MT8SnAlMYJXLVAl3GYDTvAl3LfLnvBUDTvLl3CTOn3HTrCT3DUGgrCU8MT8AbCbFTrJUoCgrDb8MTDTLV8JX8DTLnLXQlDT8LZrSnDUQb8FZ8DUST4JnvDb8ScOUoDj6GbJl4GTLfCYMlGToAXvFnGboAXvLnGgAcrJn3GgvFnSToGnLf8JnvGn#HTDToHTLnFXJlHTvATFToHTvHTDToHTvMTAgoHT3STClvHT4AlFl6HT8HTDToHUoDgJTrHUoScMX3HbRZrMXoHboJg8LTHgDb8JTrHgMToLf8HgvLnLnoHnHn3HT4Hn6MgvAnJTJU8ScvJT3AaQT8JT8HTrAnJXrRg8AnJbAloMXoJbrATFToJbvMnoSnJgDb6GgvJgDb8MXoJgSX3JU8JguATFToJlPYLnQlJlQkDnLbJlQlFYJlJl8Lf8OTJnCTFnLbJnLTHXMnJnLXGXCnJnoFfRg3JnrMYRg3Jn3HgFl3KT8Dg8LnLTRlFnPTLTvPbLbvLVoSbrCZLXMY6HT3LXNU7DlrLXNXDTATLX8DX8LnLZDb8JU8LZMnoLhrLZSToJU8LZrLaLnrLZvJn3SnLZ8LhrSnLaJnoMT8LbFlrHTvLbrFTLnrLbvATLlvLb6OTFn3LcLnJZOlLeAT6Mn4LeJT3ObrLg6LXFlrLhrJg8LnLhvDlPX4LhvLfLnvLj6JTFT3LnFbrMXoLnQluCTvLnrQXCY6LnvLfLnvLnvMgLnvLnvSeLf8MTMbrJn3MT3JgST3MT8AnATrMT8LULnrMUMToCZrMUScvLf8MXoDT8SnMX6ATFToMX8AXMT8MX8FkMT8MX8HTrDUMX8ScoSnMYJT6CTvMgAcrMXoMg8SToAfMlvAXLg3MnFl3AnvOT3AnFl3OUoATHT8OU3RnLXrOXrOXrSnObPbvFn6Og8HgrSnOg8OX8DbPTvAgoJgPU3RYLnrPXrDnJZrPb8CTGgvPlrLTDlvPlvFUJnoQUvFXrQlQeMnoAl3QlrQlrSnRTFTrJUoSTDlLiLXSTFg6HT3STJgoMn4STrFTJTrSTrLZFl3ST4FnMXoSUrDlHUoScvHTvSnSfLkvMXo","AUoAcrMXoAZ8HboAg8AbOg6ATFgAg8AloMXoAl3AT8JTrAl8MX8MXoCT3SToJU8Cl8Db8MXoDT8HgrATrDboOT8MXoGTOTrATMnGT8LhrAZ8GnvFnGnQXHToGgvAcrHTvAXvLl3HbrAZoMXoHgBlFXLg3HgMnFXrSnHgrSb8JUoHn6HT8LgvITvATrJUoJUoLZrRnvJU8HT8Jb8JXvFX8QT8JXvLToJTrJYrQnGnQXJgrJnoATrJnoJU8ScvJnvMnvMXoLTCTLgrJXLTJlRTvQlLbRnJlQYvLbrMb8LnvLbvFn3RnoLdCVSTGZrLeSTvGXCnLg3MnoLn3MToLlrETvMT8SToAl3MbrDU6GTvMb8LX4LhrPlrLXGXCnSToLf8Rg3STrDb8LTrSTvLTHXMnSb3RYLnMnSgOg6ATFg","HUDlGnrQXrJTrHgLnrAcJYMb8DULc8LTvFgGnCk3Mg8JbAnLX4QYvFYHnMXrRUoJnGnvFnRlvFTJlQnoSTrBXHXrLYSUJgLfoMT8Se8DTrHbDb","AbDl8SToJU8An3RbAb8ST8DUSTrGnrAgoLbFU6Db8LTrMg8AaHT8Jb8ObDl8SToJU8Pb3RlvFYoJl"],t9="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789!@#$%^&*";function n9(t){return t>=40?t=t+168-40:t>=19&&(t=t+97-19),(0,e9.toUtf8String)([225,(t>>6)+132,(t&63)+128])}var ga=null;function M1(t){if(ga==null&&(ga=[],r9.forEach(function(r,e){e+=4;for(var n=0;n{"use strict";var a9=xo&&xo.__extends||function(){var t=function(r,e){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,i){n.__proto__=i}||function(n,i){for(var a in i)Object.prototype.hasOwnProperty.call(i,a)&&(n[a]=i[a])},t(r,e)};return function(r,e){if(typeof e!="function"&&e!==null)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");t(r,e);function n(){this.constructor=r}r.prototype=e===null?Object.create(e):(n.prototype=e.prototype,new n)}}();Object.defineProperty(xo,"__esModule",{value:!0});xo.langIt=void 0;var al=An(),o9="AbacoAbbaglioAbbinatoAbeteAbissoAbolireAbrasivoAbrogatoAccadereAccennoAccusatoAcetoneAchilleAcidoAcquaAcreAcrilicoAcrobataAcutoAdagioAddebitoAddomeAdeguatoAderireAdipeAdottareAdulareAffabileAffettoAffissoAffrantoAforismaAfosoAfricanoAgaveAgenteAgevoleAggancioAgireAgitareAgonismoAgricoloAgrumetoAguzzoAlabardaAlatoAlbatroAlberatoAlboAlbumeAlceAlcolicoAlettoneAlfaAlgebraAlianteAlibiAlimentoAllagatoAllegroAllievoAllodolaAllusivoAlmenoAlogenoAlpacaAlpestreAltalenaAlternoAlticcioAltroveAlunnoAlveoloAlzareAmalgamaAmanitaAmarenaAmbitoAmbratoAmebaAmericaAmetistaAmicoAmmassoAmmendaAmmirareAmmonitoAmoreAmpioAmpliareAmuletoAnacardoAnagrafeAnalistaAnarchiaAnatraAncaAncellaAncoraAndareAndreaAnelloAngeloAngolareAngustoAnimaAnnegareAnnidatoAnnoAnnuncioAnonimoAnticipoAnziApaticoAperturaApodeApparireAppetitoAppoggioApprodoAppuntoAprileArabicaArachideAragostaAraldicaArancioAraturaArazzoArbitroArchivioArditoArenileArgentoArgineArgutoAriaArmoniaArneseArredatoArringaArrostoArsenicoArsoArteficeArzilloAsciuttoAscoltoAsepsiAsetticoAsfaltoAsinoAsolaAspiratoAsproAssaggioAsseAssolutoAssurdoAstaAstenutoAsticeAstrattoAtavicoAteismoAtomicoAtonoAttesaAttivareAttornoAttritoAttualeAusilioAustriaAutistaAutonomoAutunnoAvanzatoAvereAvvenireAvvisoAvvolgereAzioneAzotoAzzimoAzzurroBabeleBaccanoBacinoBacoBadessaBadilataBagnatoBaitaBalconeBaldoBalenaBallataBalzanoBambinoBandireBaraondaBarbaroBarcaBaritonoBarlumeBaroccoBasilicoBassoBatostaBattutoBauleBavaBavosaBeccoBeffaBelgioBelvaBendaBenevoleBenignoBenzinaBereBerlinaBetaBibitaBiciBidoneBifidoBigaBilanciaBimboBinocoloBiologoBipedeBipolareBirbanteBirraBiscottoBisestoBisnonnoBisonteBisturiBizzarroBlandoBlattaBollitoBonificoBordoBoscoBotanicoBottinoBozzoloBraccioBradipoBramaBrancaBravuraBretellaBrevettoBrezzaBrigliaBrillanteBrindareBroccoloBrodoBronzinaBrulloBrunoBubboneBucaBudinoBuffoneBuioBulboBuonoBurloneBurrascaBussolaBustaCadettoCaducoCalamaroCalcoloCalesseCalibroCalmoCaloriaCambusaCamerataCamiciaCamminoCamolaCampaleCanapaCandelaCaneCaninoCanottoCantinaCapaceCapelloCapitoloCapogiroCapperoCapraCapsulaCarapaceCarcassaCardoCarismaCarovanaCarrettoCartolinaCasaccioCascataCasermaCasoCassoneCastelloCasualeCatastaCatenaCatrameCautoCavilloCedibileCedrataCefaloCelebreCellulareCenaCenoneCentesimoCeramicaCercareCertoCerumeCervelloCesoiaCespoCetoChelaChiaroChiccaChiedereChimeraChinaChirurgoChitarraCiaoCiclismoCifrareCignoCilindroCiottoloCircaCirrosiCitricoCittadinoCiuffoCivettaCivileClassicoClinicaCloroCoccoCodardoCodiceCoerenteCognomeCollareColmatoColoreColposoColtivatoColzaComaCometaCommandoComodoComputerComuneConcisoCondurreConfermaCongelareConiugeConnessoConoscereConsumoContinuoConvegnoCopertoCopioneCoppiaCopricapoCorazzaCordataCoricatoCorniceCorollaCorpoCorredoCorsiaCorteseCosmicoCostanteCotturaCovatoCratereCravattaCreatoCredereCremosoCrescitaCretaCricetoCrinaleCrisiCriticoCroceCronacaCrostataCrucialeCruscaCucireCuculoCuginoCullatoCupolaCuratoreCursoreCurvoCuscinoCustodeDadoDainoDalmataDamerinoDanielaDannosoDanzareDatatoDavantiDavveroDebuttoDecennioDecisoDeclinoDecolloDecretoDedicatoDefinitoDeformeDegnoDelegareDelfinoDelirioDeltaDemenzaDenotatoDentroDepositoDerapataDerivareDerogaDescrittoDesertoDesiderioDesumereDetersivoDevotoDiametroDicembreDiedroDifesoDiffusoDigerireDigitaleDiluvioDinamicoDinnanziDipintoDiplomaDipoloDiradareDireDirottoDirupoDisagioDiscretoDisfareDisgeloDispostoDistanzaDisumanoDitoDivanoDiveltoDividereDivoratoDobloneDocenteDoganaleDogmaDolceDomatoDomenicaDominareDondoloDonoDormireDoteDottoreDovutoDozzinaDragoDruidoDubbioDubitareDucaleDunaDuomoDupliceDuraturoEbanoEccessoEccoEclissiEconomiaEderaEdicolaEdileEditoriaEducareEgemoniaEgliEgoismoEgregioElaboratoElargireEleganteElencatoElettoElevareElficoElicaElmoElsaElusoEmanatoEmblemaEmessoEmiroEmotivoEmozioneEmpiricoEmuloEndemicoEnduroEnergiaEnfasiEnotecaEntrareEnzimaEpatiteEpilogoEpisodioEpocaleEppureEquatoreErarioErbaErbosoEredeEremitaErigereErmeticoEroeErosivoErranteEsagonoEsameEsanimeEsaudireEscaEsempioEsercitoEsibitoEsigenteEsistereEsitoEsofagoEsortatoEsosoEspansoEspressoEssenzaEssoEstesoEstimareEstoniaEstrosoEsultareEtilicoEtnicoEtruscoEttoEuclideoEuropaEvasoEvidenzaEvitatoEvolutoEvvivaFabbricaFaccendaFachiroFalcoFamigliaFanaleFanfaraFangoFantasmaFareFarfallaFarinosoFarmacoFasciaFastosoFasulloFaticareFatoFavolosoFebbreFecolaFedeFegatoFelpaFeltroFemminaFendereFenomenoFermentoFerroFertileFessuraFestivoFettaFeudoFiabaFiduciaFifaFiguratoFiloFinanzaFinestraFinireFioreFiscaleFisicoFiumeFlaconeFlamencoFleboFlemmaFloridoFluenteFluoroFobicoFocacciaFocosoFoderatoFoglioFolataFolcloreFolgoreFondenteFoneticoFoniaFontanaForbitoForchettaForestaFormicaFornaioForoFortezzaForzareFosfatoFossoFracassoFranaFrassinoFratelloFreccettaFrenataFrescoFrigoFrollinoFrondeFrugaleFruttaFucilataFucsiaFuggenteFulmineFulvoFumanteFumettoFumosoFuneFunzioneFuocoFurboFurgoneFuroreFusoFutileGabbianoGaffeGalateoGallinaGaloppoGamberoGammaGaranziaGarboGarofanoGarzoneGasdottoGasolioGastricoGattoGaudioGazeboGazzellaGecoGelatinaGelsoGemelloGemmatoGeneGenitoreGennaioGenotipoGergoGhepardoGhiaccioGhisaGialloGildaGineproGiocareGioielloGiornoGioveGiratoGironeGittataGiudizioGiuratoGiustoGlobuloGlutineGnomoGobbaGolfGomitoGommoneGonfioGonnaGovernoGracileGradoGraficoGrammoGrandeGrattareGravosoGraziaGrecaGreggeGrifoneGrigioGrinzaGrottaGruppoGuadagnoGuaioGuantoGuardareGufoGuidareIbernatoIconaIdenticoIdillioIdoloIdraIdricoIdrogenoIgieneIgnaroIgnoratoIlareIllesoIllogicoIlludereImballoImbevutoImboccoImbutoImmaneImmersoImmolatoImpaccoImpetoImpiegoImportoImprontaInalareInarcareInattivoIncantoIncendioInchinoIncisivoInclusoIncontroIncrocioIncuboIndagineIndiaIndoleIneditoInfattiInfilareInflittoIngaggioIngegnoIngleseIngordoIngrossoInnescoInodoreInoltrareInondatoInsanoInsettoInsiemeInsonniaInsulinaIntasatoInteroIntonacoIntuitoInumidireInvalidoInveceInvitoIperboleIpnoticoIpotesiIppicaIrideIrlandaIronicoIrrigatoIrrorareIsolatoIsotopoIstericoIstitutoIstriceItaliaIterareLabbroLabirintoLaccaLaceratoLacrimaLacunaLaddoveLagoLampoLancettaLanternaLardosoLargaLaringeLastraLatenzaLatinoLattugaLavagnaLavoroLegaleLeggeroLemboLentezzaLenzaLeoneLepreLesivoLessatoLestoLetteraleLevaLevigatoLiberoLidoLievitoLillaLimaturaLimitareLimpidoLineareLinguaLiquidoLiraLiricaLiscaLiteLitigioLivreaLocandaLodeLogicaLombareLondraLongevoLoquaceLorenzoLotoLotteriaLuceLucidatoLumacaLuminosoLungoLupoLuppoloLusingaLussoLuttoMacabroMacchinaMaceroMacinatoMadamaMagicoMagliaMagneteMagroMaiolicaMalafedeMalgradoMalintesoMalsanoMaltoMalumoreManaManciaMandorlaMangiareManifestoMannaroManovraMansardaMantideManubrioMappaMaratonaMarcireMarettaMarmoMarsupioMascheraMassaiaMastinoMaterassoMatricolaMattoneMaturoMazurcaMeandroMeccanicoMecenateMedesimoMeditareMegaMelassaMelisMelodiaMeningeMenoMensolaMercurioMerendaMerloMeschinoMeseMessereMestoloMetalloMetodoMettereMiagolareMicaMicelioMicheleMicroboMidolloMieleMiglioreMilanoMiliteMimosaMineraleMiniMinoreMirinoMirtilloMiscelaMissivaMistoMisurareMitezzaMitigareMitraMittenteMnemonicoModelloModificaModuloMoganoMogioMoleMolossoMonasteroMoncoMondinaMonetarioMonileMonotonoMonsoneMontatoMonvisoMoraMordereMorsicatoMostroMotivatoMotosegaMottoMovenzaMovimentoMozzoMuccaMucosaMuffaMughettoMugnaioMulattoMulinelloMultiploMummiaMuntoMuovereMuraleMusaMuscoloMusicaMutevoleMutoNababboNaftaNanometroNarcisoNariceNarratoNascereNastrareNaturaleNauticaNaviglioNebulosaNecrosiNegativoNegozioNemmenoNeofitaNerettoNervoNessunoNettunoNeutraleNeveNevroticoNicchiaNinfaNitidoNobileNocivoNodoNomeNominaNordicoNormaleNorvegeseNostranoNotareNotiziaNotturnoNovellaNucleoNullaNumeroNuovoNutrireNuvolaNuzialeOasiObbedireObbligoObeliscoOblioOboloObsoletoOccasioneOcchioOccidenteOccorrereOccultareOcraOculatoOdiernoOdorareOffertaOffrireOffuscatoOggettoOggiOgnunoOlandeseOlfattoOliatoOlivaOlogrammaOltreOmaggioOmbelicoOmbraOmegaOmissioneOndosoOnereOniceOnnivoroOnorevoleOntaOperatoOpinioneOppostoOracoloOrafoOrdineOrecchinoOreficeOrfanoOrganicoOrigineOrizzonteOrmaOrmeggioOrnativoOrologioOrrendoOrribileOrtensiaOrticaOrzataOrzoOsareOscurareOsmosiOspedaleOspiteOssaOssidareOstacoloOsteOtiteOtreOttagonoOttimoOttobreOvaleOvestOvinoOviparoOvocitoOvunqueOvviareOzioPacchettoPacePacificoPadellaPadronePaesePagaPaginaPalazzinaPalesarePallidoPaloPaludePandoroPannelloPaoloPaonazzoPapricaParabolaParcellaParerePargoloPariParlatoParolaPartireParvenzaParzialePassivoPasticcaPataccaPatologiaPattumePavonePeccatoPedalarePedonalePeggioPelosoPenarePendicePenisolaPennutoPenombraPensarePentolaPepePepitaPerbenePercorsoPerdonatoPerforarePergamenaPeriodoPermessoPernoPerplessoPersuasoPertugioPervasoPesatorePesistaPesoPestiferoPetaloPettinePetulantePezzoPiacerePiantaPiattinoPiccinoPicozzaPiegaPietraPifferoPigiamaPigolioPigroPilaPiliferoPillolaPilotaPimpantePinetaPinnaPinoloPioggiaPiomboPiramidePireticoPiritePirolisiPitonePizzicoPlaceboPlanarePlasmaPlatanoPlenarioPochezzaPoderosoPodismoPoesiaPoggiarePolentaPoligonoPollicePolmonitePolpettaPolsoPoltronaPolverePomicePomodoroPontePopolosoPorfidoPorosoPorporaPorrePortataPosaPositivoPossessoPostulatoPotassioPoterePranzoPrassiPraticaPreclusoPredicaPrefissoPregiatoPrelievoPremerePrenotarePreparatoPresenzaPretestoPrevalsoPrimaPrincipePrivatoProblemaProcuraProdurreProfumoProgettoProlungaPromessaPronomePropostaProrogaProtesoProvaPrudentePrugnaPruritoPsichePubblicoPudicaPugilatoPugnoPulcePulitoPulsantePuntarePupazzoPupillaPuroQuadroQualcosaQuasiQuerelaQuotaRaccoltoRaddoppioRadicaleRadunatoRafficaRagazzoRagioneRagnoRamarroRamingoRamoRandagioRantolareRapatoRapinaRappresoRasaturaRaschiatoRasenteRassegnaRastrelloRataRavvedutoRealeRecepireRecintoReclutaReconditoRecuperoRedditoRedimereRegalatoRegistroRegolaRegressoRelazioneRemareRemotoRennaReplicaReprimereReputareResaResidenteResponsoRestauroReteRetinaRetoricaRettificaRevocatoRiassuntoRibadireRibelleRibrezzoRicaricaRiccoRicevereRiciclatoRicordoRicredutoRidicoloRidurreRifasareRiflessoRiformaRifugioRigareRigettatoRighelloRilassatoRilevatoRimanereRimbalzoRimedioRimorchioRinascitaRincaroRinforzoRinnovoRinomatoRinsavitoRintoccoRinunciaRinvenireRiparatoRipetutoRipienoRiportareRipresaRipulireRisataRischioRiservaRisibileRisoRispettoRistoroRisultatoRisvoltoRitardoRitegnoRitmicoRitrovoRiunioneRivaRiversoRivincitaRivoltoRizomaRobaRoboticoRobustoRocciaRocoRodaggioRodereRoditoreRogitoRollioRomanticoRompereRonzioRosolareRospoRotanteRotondoRotulaRovescioRubizzoRubricaRugaRullinoRumineRumorosoRuoloRupeRussareRusticoSabatoSabbiareSabotatoSagomaSalassoSaldaturaSalgemmaSalivareSalmoneSaloneSaltareSalutoSalvoSapereSapidoSaporitoSaracenoSarcasmoSartoSassosoSatelliteSatiraSatolloSaturnoSavanaSavioSaziatoSbadiglioSbalzoSbancatoSbarraSbattereSbavareSbendareSbirciareSbloccatoSbocciatoSbrinareSbruffoneSbuffareScabrosoScadenzaScalaScambiareScandaloScapolaScarsoScatenareScavatoSceltoScenicoScettroSchedaSchienaSciarpaScienzaScindereScippoSciroppoScivoloSclerareScodellaScolpitoScompartoSconfortoScoprireScortaScossoneScozzeseScribaScrollareScrutinioScuderiaScultoreScuolaScuroScusareSdebitareSdoganareSeccaturaSecondoSedanoSeggiolaSegnalatoSegregatoSeguitoSelciatoSelettivoSellaSelvaggioSemaforoSembrareSemeSeminatoSempreSensoSentireSepoltoSequenzaSerataSerbatoSerenoSerioSerpenteSerraglioServireSestinaSetolaSettimanaSfaceloSfaldareSfamatoSfarzosoSfaticatoSferaSfidaSfilatoSfingeSfocatoSfoderareSfogoSfoltireSforzatoSfrattoSfruttatoSfuggitoSfumareSfusoSgabelloSgarbatoSgonfiareSgorbioSgrassatoSguardoSibiloSiccomeSierraSiglaSignoreSilenzioSillabaSimboloSimpaticoSimulatoSinfoniaSingoloSinistroSinoSintesiSinusoideSiparioSismaSistoleSituatoSlittaSlogaturaSlovenoSmarritoSmemoratoSmentitoSmeraldoSmilzoSmontareSmottatoSmussatoSnellireSnervatoSnodoSobbalzoSobrioSoccorsoSocialeSodaleSoffittoSognoSoldatoSolenneSolidoSollazzoSoloSolubileSolventeSomaticoSommaSondaSonettoSonniferoSopireSoppesoSopraSorgereSorpassoSorrisoSorsoSorteggioSorvolatoSospiroSostaSottileSpadaSpallaSpargereSpatolaSpaventoSpazzolaSpecieSpedireSpegnereSpelaturaSperanzaSpessoreSpettraleSpezzatoSpiaSpigolosoSpillatoSpinosoSpiraleSplendidoSportivoSposoSprangaSprecareSpronatoSpruzzoSpuntinoSquilloSradicareSrotolatoStabileStaccoStaffaStagnareStampatoStantioStarnutoStaseraStatutoSteloSteppaSterzoStilettoStimaStirpeStivaleStizzosoStonatoStoricoStrappoStregatoStriduloStrozzareStruttoStuccareStufoStupendoSubentroSuccosoSudoreSuggeritoSugoSultanoSuonareSuperboSupportoSurgelatoSurrogatoSussurroSuturaSvagareSvedeseSveglioSvelareSvenutoSveziaSviluppoSvistaSvizzeraSvoltaSvuotareTabaccoTabulatoTacciareTaciturnoTaleTalismanoTamponeTanninoTaraTardivoTargatoTariffaTarpareTartarugaTastoTatticoTavernaTavolataTazzaTecaTecnicoTelefonoTemerarioTempoTemutoTendoneTeneroTensioneTentacoloTeoremaTermeTerrazzoTerzettoTesiTesseratoTestatoTetroTettoiaTifareTigellaTimbroTintoTipicoTipografoTiraggioTiroTitanioTitoloTitubanteTizioTizzoneToccareTollerareToltoTombolaTomoTonfoTonsillaTopazioTopologiaToppaTorbaTornareTorroneTortoraToscanoTossireTostaturaTotanoTraboccoTracheaTrafilaTragediaTralcioTramontoTransitoTrapanoTrarreTraslocoTrattatoTraveTrecciaTremolioTrespoloTributoTrichecoTrifoglioTrilloTrinceaTrioTristezzaTrituratoTrivellaTrombaTronoTroppoTrottolaTrovareTruccatoTubaturaTuffatoTulipanoTumultoTunisiaTurbareTurchinoTutaTutelaUbicatoUccelloUccisoreUdireUditivoUffaUfficioUgualeUlisseUltimatoUmanoUmileUmorismoUncinettoUngereUnghereseUnicornoUnificatoUnisonoUnitarioUnteUovoUpupaUraganoUrgenzaUrloUsanzaUsatoUscitoUsignoloUsuraioUtensileUtilizzoUtopiaVacanteVaccinatoVagabondoVagliatoValangaValgoValicoVallettaValorosoValutareValvolaVampataVangareVanitosoVanoVantaggioVanveraVaporeVaranoVarcatoVarianteVascaVedettaVedovaVedutoVegetaleVeicoloVelcroVelinaVellutoVeloceVenatoVendemmiaVentoVeraceVerbaleVergognaVerificaVeroVerrucaVerticaleVescicaVessilloVestaleVeteranoVetrinaVetustoViandanteVibranteVicendaVichingoVicinanzaVidimareVigiliaVignetoVigoreVileVillanoViminiVincitoreViolaViperaVirgolaVirologoVirulentoViscosoVisioneVispoVissutoVisuraVitaVitelloVittimaVivandaVividoViziareVoceVogaVolatileVolereVolpeVoragineVulcanoZampognaZannaZappatoZatteraZavorraZefiroZelanteZeloZenzeroZerbinoZibettoZincoZirconeZittoZollaZoticoZuccheroZufoloZuluZuppa",Ms=null;function T1(t){if(Ms==null&&(Ms=o9.replace(/([A-Z])/g," $1").toLowerCase().substring(1).split(" "),al.Wordlist.check(t)!=="0x5c1362d88fd4cf614a96f3234941d29f7d37c08c5292fde03bf62c2db6ff7620"))throw Ms=null,new Error("BIP39 Wordlist for it (Italian) FAILED")}var s9=function(t){a9(r,t);function r(){return t.call(this,"it")||this}return r.prototype.getWord=function(e){return T1(this),Ms[e]},r.prototype.getWordIndex=function(e){return T1(this),Ms.indexOf(e)},r}(al.Wordlist),C1=new s9;xo.langIt=C1;al.Wordlist.register(C1)});var k1=L(_i=>{"use strict";var f9=_i&&_i.__extends||function(){var t=function(r,e){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,i){n.__proto__=i}||function(n,i){for(var a in i)Object.prototype.hasOwnProperty.call(i,a)&&(n[a]=i[a])},t(r,e)};return function(r,e){if(typeof e!="function"&&e!==null)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");t(r,e);function n(){this.constructor=r}r.prototype=e===null?Object.create(e):(n.prototype=e.prototype,new n)}}();Object.defineProperty(_i,"__esModule",{value:!0});_i.langZhTw=_i.langZhCn=void 0;var u9=pr(),Ps=An(),ol="}aE#4A=Yv&co#4N#6G=cJ&SM#66|/Z#4t&kn~46#4K~4q%b9=IR#7l,mB#7W_X2*dl}Uo~7s}Uf&Iw#9c&cw~6O&H6&wx&IG%v5=IQ~8a&Pv#47$PR&50%Ko&QM&3l#5f,D9#4L|/H&tQ;v0~6n]nN?";function O1(t){if(yo[t.locale]===null){yo[t.locale]=[];for(var r=0,e=0;e<2048;e++){var n=d9.indexOf(ol[e*3]),i=[228+(n>>2),128+sl.indexOf(ol[e*3+1]),128+sl.indexOf(ol[e*3+2])];if(t.locale==="zh_tw")for(var a=n%4,o=a;o<3;o++)i[o]=sl.indexOf(c9[r++])+(o==0?228:128);yo[t.locale].push((0,u9.toUtf8String)(i))}if(Ps.Wordlist.check(t)!==l9[t.locale])throw yo[t.locale]=null,new Error("BIP39 Wordlist for "+t.locale+" (Chinese) FAILED")}}var F1=function(t){f9(r,t);function r(e){return t.call(this,"zh_"+e)||this}return r.prototype.getWord=function(e){return O1(this),yo[this.locale][e]},r.prototype.getWordIndex=function(e){return O1(this),yo[this.locale].indexOf(e)},r.prototype.split=function(e){return e=e.replace(/(?:\u3000| )+/g,""),e.split("")},r}(Ps.Wordlist),fl=new F1("cn");_i.langZhCn=fl;Ps.Wordlist.register(fl);Ps.Wordlist.register(fl,"zh");var L1=new F1("tw");_i.langZhTw=L1;Ps.Wordlist.register(L1)});var R1=L(Ju=>{"use strict";Object.defineProperty(Ju,"__esModule",{value:!0});Ju.wordlists=void 0;var h9=s1(),b9=c1(),p9=p1(),v9=y1(),g9=S1(),m9=E1(),x9=B1(),ul=k1();Ju.wordlists={cz:h9.langCz,en:b9.langEn,es:p9.langEs,fr:v9.langFr,it:x9.langIt,ja:g9.langJa,ko:m9.langKo,zh:ul.langZhCn,zh_cn:ul.langZhCn,zh_tw:ul.langZhTw}});var cl=L(Si=>{"use strict";Object.defineProperty(Si,"__esModule",{value:!0});Si.wordlists=Si.Wordlist=Si.logger=void 0;var N1=An();Object.defineProperty(Si,"logger",{enumerable:!0,get:function(){return N1.logger}});Object.defineProperty(Si,"Wordlist",{enumerable:!0,get:function(){return N1.Wordlist}});var y9=R1();Object.defineProperty(Si,"wordlists",{enumerable:!0,get:function(){return y9.wordlists}})});var J1=L(Du=>{"use strict";Object.defineProperty(Du,"__esModule",{value:!0});Du.version=void 0;Du.version="hdnode/5.7.0"});var Uu=L(jr=>{"use strict";Object.defineProperty(jr,"__esModule",{value:!0});jr.getAccountPath=jr.isValidMnemonic=jr.entropyToMnemonic=jr.mnemonicToEntropy=jr.mnemonicToSeed=jr.HDNode=jr.defaultPath=void 0;var H1=Mu(),Ye=De(),q1=hr(),Es=pr(),A9=Tu(),Gr=Ve(),D1=bs(),wn=lo(),w9=zn(),I1=cl(),_9=re(),S9=J1(),Ts=new _9.Logger(S9.version),M9=q1.BigNumber.from("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),P9=(0,Es.toUtf8Bytes)("Bitcoin seed"),wo=2147483648;function X1(t){return(1<=256)throw new Error("Depth too large!");return U1((0,Ye.concat)([this.privateKey!=null?"0x0488ADE4":"0x0488B21E",(0,Ye.hexlify)(this.depth),this.parentFingerprint,(0,Ye.hexZeroPad)((0,Ye.hexlify)(this.index),4),this.chainCode,this.privateKey!=null?(0,Ye.concat)(["0x00",this.privateKey]):this.publicKey]))},enumerable:!1,configurable:!0}),t.prototype.neuter=function(){return new t(Ao,null,this.publicKey,this.parentFingerprint,this.chainCode,this.index,this.depth,this.path)},t.prototype._derive=function(r){if(r>4294967295)throw new Error("invalid index - "+String(r));var e=this.path;e&&(e+="/"+(r&~wo));var n=new Uint8Array(37);if(r&wo){if(!this.privateKey)throw new Error("cannot derive child of neutered node");n.set((0,Ye.arrayify)(this.privateKey),1),e&&(e+="'")}else n.set((0,Ye.arrayify)(this.publicKey));for(var i=24;i>=0;i-=8)n[33+(i>>3)]=r>>24-i&255;var a=(0,Ye.arrayify)((0,wn.computeHmac)(wn.SupportedAlgorithm.sha512,this.chainCode,n)),o=a.slice(0,32),u=a.slice(32),l=null,s=null;if(this.privateKey)l=Iu(q1.BigNumber.from(o).add(this.privateKey).mod(M9));else{var p=new D1.SigningKey((0,Ye.hexlify)(o));s=p._addPoint(this.publicKey)}var _=e,E=this.mnemonic;return E&&(_=Object.freeze({phrase:E.phrase,path:e,locale:E.locale||"en"})),new t(Ao,l,s,this.fingerprint,Iu(u),r,this.depth+1,_)},t.prototype.derivePath=function(r){var e=r.split("/");if(e.length===0||e[0]==="m"&&this.depth!==0)throw new Error("invalid path - "+r);e[0]==="m"&&e.shift();for(var n=this,i=0;i=wo)throw new Error("invalid path index - "+a);n=n._derive(wo+o)}else if(a.match(/^[0-9]+$/)){var o=parseInt(a);if(o>=wo)throw new Error("invalid path index - "+a);n=n._derive(o)}else throw new Error("invalid path component - "+a)}return n},t._fromSeed=function(r,e){var n=(0,Ye.arrayify)(r);if(n.length<16||n.length>64)throw new Error("invalid seed");var i=(0,Ye.arrayify)((0,wn.computeHmac)(wn.SupportedAlgorithm.sha512,P9,n));return new t(Ao,Iu(i.slice(0,32)),null,"0x00000000",Iu(i.slice(32)),0,0,e)},t.fromMnemonic=function(r,e,n){return n=ll(n),r=j1(dl(r,n),n),t._fromSeed(G1(r,e),{phrase:r,path:"m",locale:n.locale})},t.fromSeed=function(r){return t._fromSeed(r,null)},t.fromExtendedKey=function(r){var e=H1.Base58.decode(r);(e.length!==82||U1(e.slice(0,78))!==r)&&Ts.throwArgumentError("invalid extended key","extendedKey","[REDACTED]");var n=e[4],i=(0,Ye.hexlify)(e.slice(5,9)),a=parseInt((0,Ye.hexlify)(e.slice(9,13)).substring(2),16),o=(0,Ye.hexlify)(e.slice(13,45)),u=e.slice(45,78);switch((0,Ye.hexlify)(e.slice(0,4))){case"0x0488b21e":case"0x043587cf":return new t(Ao,null,(0,Ye.hexlify)(u),i,o,a,n,null);case"0x0488ade4":case"0x04358394 ":if(u[0]!==0)break;return new t(Ao,(0,Ye.hexlify)(u.slice(1)),null,i,o,a,n,null)}return Ts.throwArgumentError("invalid extended key","extendedKey","[REDACTED]")},t}();jr.HDNode=T9;function G1(t,r){r||(r="");var e=(0,Es.toUtf8Bytes)("mnemonic"+r,Es.UnicodeNormalizationForm.NFKD);return(0,A9.pbkdf2)((0,Es.toUtf8Bytes)(t,Es.UnicodeNormalizationForm.NFKD),e,2048,64,"sha512")}jr.mnemonicToSeed=G1;function dl(t,r){r=ll(r),Ts.checkNormalize();var e=r.split(t);if(e.length%3!==0)throw new Error("invalid mnemonic");for(var n=(0,Ye.arrayify)(new Uint8Array(Math.ceil(11*e.length/8))),i=0,a=0;a>3]|=1<<7-i%8),i++}var l=32*e.length/3,s=e.length/3,p=X1(s),_=(0,Ye.arrayify)((0,wn.sha256)(n.slice(0,l/8)))[0]&p;if(_!==(n[n.length-1]&p))throw new Error("invalid checksum");return(0,Ye.hexlify)(n.slice(0,l/8))}jr.mnemonicToEntropy=dl;function j1(t,r){if(r=ll(r),t=(0,Ye.arrayify)(t),t.length%4!==0||t.length<16||t.length>32)throw new Error("invalid entropy");for(var e=[0],n=11,i=0;i8?(e[e.length-1]<<=8,e[e.length-1]|=t[i],n-=8):(e[e.length-1]<<=n,e[e.length-1]|=t[i]>>8-n,e.push(t[i]&E9(8-n)),n+=3);var a=t.length/4,o=(0,Ye.arrayify)((0,wn.sha256)(t))[0]&X1(a);return e[e.length-1]<<=a,e[e.length-1]|=o>>8-a,r.join(e.map(function(u){return r.getWord(u)}))}jr.entropyToMnemonic=j1;function C9(t,r){try{return dl(t,r),!0}catch{}return!1}jr.isValidMnemonic=C9;function B9(t){return(typeof t!="number"||t<0||t>=wo||t%1)&&Ts.throwArgumentError("invalid account index","index",t),"m/44'/60'/"+t+"'/0/0"}jr.getAccountPath=B9});var z1=L(Hu=>{"use strict";Object.defineProperty(Hu,"__esModule",{value:!0});Hu.randomBytes=void 0;var O9=require("crypto"),F9=De();function L9(t){return(0,F9.arrayify)((0,O9.randomBytes)(t))}Hu.randomBytes=L9});var V1=L(qu=>{"use strict";Object.defineProperty(qu,"__esModule",{value:!0});qu.shuffled=void 0;function k9(t){t=t.slice();for(var r=t.length-1;r>0;r--){var e=Math.floor(Math.random()*(r+1)),n=t[r];t[r]=t[e],t[e]=n}return t}qu.shuffled=k9});var Cs=L(_o=>{"use strict";Object.defineProperty(_o,"__esModule",{value:!0});_o.shuffled=_o.randomBytes=void 0;var R9=z1();Object.defineProperty(_o,"randomBytes",{enumerable:!0,get:function(){return R9.randomBytes}});var N9=V1();Object.defineProperty(_o,"shuffled",{enumerable:!0,get:function(){return N9.shuffled}})});var bl=L((hl,Z1)=>{"use strict";(function(t){function r(c){return parseInt(c)===c}function e(c){if(!r(c.length))return!1;for(var x=0;x255)return!1;return!0}function n(c,x){if(c.buffer&&ArrayBuffer.isView(c)&&c.name==="Uint8Array")return x&&(c.slice?c=c.slice():c=Array.prototype.slice.call(c)),c;if(Array.isArray(c)){if(!e(c))throw new Error("Array contains invalid value: "+c);return new Uint8Array(c)}if(r(c.length)&&e(c))return new Uint8Array(c);throw new Error("unsupported array-like object")}function i(c){return new Uint8Array(c)}function a(c,x,M,h,S){(h!=null||S!=null)&&(c.slice?c=c.slice(h,S):c=Array.prototype.slice.call(c,h,S)),x.set(c,M)}var o=function(){function c(M){var h=[],S=0;for(M=encodeURI(M);S191&&N<224?(h.push(String.fromCharCode((N&31)<<6|M[S+1]&63)),S+=2):(h.push(String.fromCharCode((N&15)<<12|(M[S+1]&63)<<6|M[S+2]&63)),S+=3)}return h.join("")}return{toBytes:c,fromBytes:x}}(),u=function(){function c(h){for(var S=[],N=0;N>4]+x[w&15])}return S.join("")}return{toBytes:c,fromBytes:M}}(),l={16:10,24:12,32:14},s=[1,2,4,8,16,32,64,128,27,54,108,216,171,77,154,47,94,188,99,198,151,53,106,212,179,125,250,239,197,145],p=[99,124,119,123,242,107,111,197,48,1,103,43,254,215,171,118,202,130,201,125,250,89,71,240,173,212,162,175,156,164,114,192,183,253,147,38,54,63,247,204,52,165,229,241,113,216,49,21,4,199,35,195,24,150,5,154,7,18,128,226,235,39,178,117,9,131,44,26,27,110,90,160,82,59,214,179,41,227,47,132,83,209,0,237,32,252,177,91,106,203,190,57,74,76,88,207,208,239,170,251,67,77,51,133,69,249,2,127,80,60,159,168,81,163,64,143,146,157,56,245,188,182,218,33,16,255,243,210,205,12,19,236,95,151,68,23,196,167,126,61,100,93,25,115,96,129,79,220,34,42,144,136,70,238,184,20,222,94,11,219,224,50,58,10,73,6,36,92,194,211,172,98,145,149,228,121,231,200,55,109,141,213,78,169,108,86,244,234,101,122,174,8,186,120,37,46,28,166,180,198,232,221,116,31,75,189,139,138,112,62,181,102,72,3,246,14,97,53,87,185,134,193,29,158,225,248,152,17,105,217,142,148,155,30,135,233,206,85,40,223,140,161,137,13,191,230,66,104,65,153,45,15,176,84,187,22],_=[82,9,106,213,48,54,165,56,191,64,163,158,129,243,215,251,124,227,57,130,155,47,255,135,52,142,67,68,196,222,233,203,84,123,148,50,166,194,35,61,238,76,149,11,66,250,195,78,8,46,161,102,40,217,36,178,118,91,162,73,109,139,209,37,114,248,246,100,134,104,152,22,212,164,92,204,93,101,182,146,108,112,72,80,253,237,185,218,94,21,70,87,167,141,157,132,144,216,171,0,140,188,211,10,247,228,88,5,184,179,69,6,208,44,30,143,202,63,15,2,193,175,189,3,1,19,138,107,58,145,17,65,79,103,220,234,151,242,207,206,240,180,230,115,150,172,116,34,231,173,53,133,226,249,55,232,28,117,223,110,71,241,26,113,29,41,197,137,111,183,98,14,170,24,190,27,252,86,62,75,198,210,121,32,154,219,192,254,120,205,90,244,31,221,168,51,136,7,199,49,177,18,16,89,39,128,236,95,96,81,127,169,25,181,74,13,45,229,122,159,147,201,156,239,160,224,59,77,174,42,245,176,200,235,187,60,131,83,153,97,23,43,4,126,186,119,214,38,225,105,20,99,85,33,12,125],E=[3328402341,4168907908,4000806809,4135287693,4294111757,3597364157,3731845041,2445657428,1613770832,33620227,3462883241,1445669757,3892248089,3050821474,1303096294,3967186586,2412431941,528646813,2311702848,4202528135,4026202645,2992200171,2387036105,4226871307,1101901292,3017069671,1604494077,1169141738,597466303,1403299063,3832705686,2613100635,1974974402,3791519004,1033081774,1277568618,1815492186,2118074177,4126668546,2211236943,1748251740,1369810420,3521504564,4193382664,3799085459,2883115123,1647391059,706024767,134480908,2512897874,1176707941,2646852446,806885416,932615841,168101135,798661301,235341577,605164086,461406363,3756188221,3454790438,1311188841,2142417613,3933566367,302582043,495158174,1479289972,874125870,907746093,3698224818,3025820398,1537253627,2756858614,1983593293,3084310113,2108928974,1378429307,3722699582,1580150641,327451799,2790478837,3117535592,0,3253595436,1075847264,3825007647,2041688520,3059440621,3563743934,2378943302,1740553945,1916352843,2487896798,2555137236,2958579944,2244988746,3151024235,3320835882,1336584933,3992714006,2252555205,2588757463,1714631509,293963156,2319795663,3925473552,67240454,4269768577,2689618160,2017213508,631218106,1269344483,2723238387,1571005438,2151694528,93294474,1066570413,563977660,1882732616,4059428100,1673313503,2008463041,2950355573,1109467491,537923632,3858759450,4260623118,3218264685,2177748300,403442708,638784309,3287084079,3193921505,899127202,2286175436,773265209,2479146071,1437050866,4236148354,2050833735,3362022572,3126681063,840505643,3866325909,3227541664,427917720,2655997905,2749160575,1143087718,1412049534,999329963,193497219,2353415882,3354324521,1807268051,672404540,2816401017,3160301282,369822493,2916866934,3688947771,1681011286,1949973070,336202270,2454276571,201721354,1210328172,3093060836,2680341085,3184776046,1135389935,3294782118,965841320,831886756,3554993207,4068047243,3588745010,2345191491,1849112409,3664604599,26054028,2983581028,2622377682,1235855840,3630984372,2891339514,4092916743,3488279077,3395642799,4101667470,1202630377,268961816,1874508501,4034427016,1243948399,1546530418,941366308,1470539505,1941222599,2546386513,3421038627,2715671932,3899946140,1042226977,2521517021,1639824860,227249030,260737669,3765465232,2084453954,1907733956,3429263018,2420656344,100860677,4160157185,470683154,3261161891,1781871967,2924959737,1773779408,394692241,2579611992,974986535,664706745,3655459128,3958962195,731420851,571543859,3530123707,2849626480,126783113,865375399,765172662,1008606754,361203602,3387549984,2278477385,2857719295,1344809080,2782912378,59542671,1503764984,160008576,437062935,1707065306,3622233649,2218934982,3496503480,2185314755,697932208,1512910199,504303377,2075177163,2824099068,1841019862,739644986],C=[2781242211,2230877308,2582542199,2381740923,234877682,3184946027,2984144751,1418839493,1348481072,50462977,2848876391,2102799147,434634494,1656084439,3863849899,2599188086,1167051466,2636087938,1082771913,2281340285,368048890,3954334041,3381544775,201060592,3963727277,1739838676,4250903202,3930435503,3206782108,4149453988,2531553906,1536934080,3262494647,484572669,2923271059,1783375398,1517041206,1098792767,49674231,1334037708,1550332980,4098991525,886171109,150598129,2481090929,1940642008,1398944049,1059722517,201851908,1385547719,1699095331,1587397571,674240536,2704774806,252314885,3039795866,151914247,908333586,2602270848,1038082786,651029483,1766729511,3447698098,2682942837,454166793,2652734339,1951935532,775166490,758520603,3000790638,4004797018,4217086112,4137964114,1299594043,1639438038,3464344499,2068982057,1054729187,1901997871,2534638724,4121318227,1757008337,0,750906861,1614815264,535035132,3363418545,3988151131,3201591914,1183697867,3647454910,1265776953,3734260298,3566750796,3903871064,1250283471,1807470800,717615087,3847203498,384695291,3313910595,3617213773,1432761139,2484176261,3481945413,283769337,100925954,2180939647,4037038160,1148730428,3123027871,3813386408,4087501137,4267549603,3229630528,2315620239,2906624658,3156319645,1215313976,82966005,3747855548,3245848246,1974459098,1665278241,807407632,451280895,251524083,1841287890,1283575245,337120268,891687699,801369324,3787349855,2721421207,3431482436,959321879,1469301956,4065699751,2197585534,1199193405,2898814052,3887750493,724703513,2514908019,2696962144,2551808385,3516813135,2141445340,1715741218,2119445034,2872807568,2198571144,3398190662,700968686,3547052216,1009259540,2041044702,3803995742,487983883,1991105499,1004265696,1449407026,1316239930,504629770,3683797321,168560134,1816667172,3837287516,1570751170,1857934291,4014189740,2797888098,2822345105,2754712981,936633572,2347923833,852879335,1133234376,1500395319,3084545389,2348912013,1689376213,3533459022,3762923945,3034082412,4205598294,133428468,634383082,2949277029,2398386810,3913789102,403703816,3580869306,2297460856,1867130149,1918643758,607656988,4049053350,3346248884,1368901318,600565992,2090982877,2632479860,557719327,3717614411,3697393085,2249034635,2232388234,2430627952,1115438654,3295786421,2865522278,3633334344,84280067,33027830,303828494,2747425121,1600795957,4188952407,3496589753,2434238086,1486471617,658119965,3106381470,953803233,334231800,3005978776,857870609,3151128937,1890179545,2298973838,2805175444,3056442267,574365214,2450884487,550103529,1233637070,4289353045,2018519080,2057691103,2399374476,4166623649,2148108681,387583245,3664101311,836232934,3330556482,3100665960,3280093505,2955516313,2002398509,287182607,3413881008,4238890068,3597515707,975967766],P=[1671808611,2089089148,2006576759,2072901243,4061003762,1807603307,1873927791,3310653893,810573872,16974337,1739181671,729634347,4263110654,3613570519,2883997099,1989864566,3393556426,2191335298,3376449993,2106063485,4195741690,1508618841,1204391495,4027317232,2917941677,3563566036,2734514082,2951366063,2629772188,2767672228,1922491506,3227229120,3082974647,4246528509,2477669779,644500518,911895606,1061256767,4144166391,3427763148,878471220,2784252325,3845444069,4043897329,1905517169,3631459288,827548209,356461077,67897348,3344078279,593839651,3277757891,405286936,2527147926,84871685,2595565466,118033927,305538066,2157648768,3795705826,3945188843,661212711,2999812018,1973414517,152769033,2208177539,745822252,439235610,455947803,1857215598,1525593178,2700827552,1391895634,994932283,3596728278,3016654259,695947817,3812548067,795958831,2224493444,1408607827,3513301457,0,3979133421,543178784,4229948412,2982705585,1542305371,1790891114,3410398667,3201918910,961245753,1256100938,1289001036,1491644504,3477767631,3496721360,4012557807,2867154858,4212583931,1137018435,1305975373,861234739,2241073541,1171229253,4178635257,33948674,2139225727,1357946960,1011120188,2679776671,2833468328,1374921297,2751356323,1086357568,2408187279,2460827538,2646352285,944271416,4110742005,3168756668,3066132406,3665145818,560153121,271589392,4279952895,4077846003,3530407890,3444343245,202643468,322250259,3962553324,1608629855,2543990167,1154254916,389623319,3294073796,2817676711,2122513534,1028094525,1689045092,1575467613,422261273,1939203699,1621147744,2174228865,1339137615,3699352540,577127458,712922154,2427141008,2290289544,1187679302,3995715566,3100863416,339486740,3732514782,1591917662,186455563,3681988059,3762019296,844522546,978220090,169743370,1239126601,101321734,611076132,1558493276,3260915650,3547250131,2901361580,1655096418,2443721105,2510565781,3828863972,2039214713,3878868455,3359869896,928607799,1840765549,2374762893,3580146133,1322425422,2850048425,1823791212,1459268694,4094161908,3928346602,1706019429,2056189050,2934523822,135794696,3134549946,2022240376,628050469,779246638,472135708,2800834470,3032970164,3327236038,3894660072,3715932637,1956440180,522272287,1272813131,3185336765,2340818315,2323976074,1888542832,1044544574,3049550261,1722469478,1222152264,50660867,4127324150,236067854,1638122081,895445557,1475980887,3117443513,2257655686,3243809217,489110045,2662934430,3778599393,4162055160,2561878936,288563729,1773916777,3648039385,2391345038,2493985684,2612407707,505560094,2274497927,3911240169,3460925390,1442818645,678973480,3749357023,2358182796,2717407649,2306869641,219617805,3218761151,3862026214,1120306242,1756942440,1103331905,2578459033,762796589,252780047,2966125488,1425844308,3151392187,372911126],B=[1667474886,2088535288,2004326894,2071694838,4075949567,1802223062,1869591006,3318043793,808472672,16843522,1734846926,724270422,4278065639,3621216949,2880169549,1987484396,3402253711,2189597983,3385409673,2105378810,4210693615,1499065266,1195886990,4042263547,2913856577,3570689971,2728590687,2947541573,2627518243,2762274643,1920112356,3233831835,3082273397,4261223649,2475929149,640051788,909531756,1061110142,4160160501,3435941763,875846760,2779116625,3857003729,4059105529,1903268834,3638064043,825316194,353713962,67374088,3351728789,589522246,3284360861,404236336,2526454071,84217610,2593830191,117901582,303183396,2155911963,3806477791,3958056653,656894286,2998062463,1970642922,151591698,2206440989,741110872,437923380,454765878,1852748508,1515908788,2694904667,1381168804,993742198,3604373943,3014905469,690584402,3823320797,791638366,2223281939,1398011302,3520161977,0,3991743681,538992704,4244381667,2981218425,1532751286,1785380564,3419096717,3200178535,960056178,1246420628,1280103576,1482221744,3486468741,3503319995,4025428677,2863326543,4227536621,1128514950,1296947098,859002214,2240123921,1162203018,4193849577,33687044,2139062782,1347481760,1010582648,2678045221,2829640523,1364325282,2745433693,1077985408,2408548869,2459086143,2644360225,943212656,4126475505,3166494563,3065430391,3671750063,555836226,269496352,4294908645,4092792573,3537006015,3452783745,202118168,320025894,3974901699,1600119230,2543297077,1145359496,387397934,3301201811,2812801621,2122220284,1027426170,1684319432,1566435258,421079858,1936954854,1616945344,2172753945,1330631070,3705438115,572679748,707427924,2425400123,2290647819,1179044492,4008585671,3099120491,336870440,3739122087,1583276732,185277718,3688593069,3772791771,842159716,976899700,168435220,1229577106,101059084,606366792,1549591736,3267517855,3553849021,2897014595,1650632388,2442242105,2509612081,3840161747,2038008818,3890688725,3368567691,926374254,1835907034,2374863873,3587531953,1313788572,2846482505,1819063512,1448540844,4109633523,3941213647,1701162954,2054852340,2930698567,134748176,3132806511,2021165296,623210314,774795868,471606328,2795958615,3031746419,3334885783,3907527627,3722280097,1953799400,522133822,1263263126,3183336545,2341176845,2324333839,1886425312,1044267644,3048588401,1718004428,1212733584,50529542,4143317495,235803164,1633788866,892690282,1465383342,3115962473,2256965911,3250673817,488449850,2661202215,3789633753,4177007595,2560144171,286339874,1768537042,3654906025,2391705863,2492770099,2610673197,505291324,2273808917,3924369609,3469625735,1431699370,673740880,3755965093,2358021891,2711746649,2307489801,218961690,3217021541,3873845719,1111672452,1751693520,1094828930,2576986153,757954394,252645662,2964376443,1414855848,3149649517,370555436],J=[1374988112,2118214995,437757123,975658646,1001089995,530400753,2902087851,1273168787,540080725,2910219766,2295101073,4110568485,1340463100,3307916247,641025152,3043140495,3736164937,632953703,1172967064,1576976609,3274667266,2169303058,2370213795,1809054150,59727847,361929877,3211623147,2505202138,3569255213,1484005843,1239443753,2395588676,1975683434,4102977912,2572697195,666464733,3202437046,4035489047,3374361702,2110667444,1675577880,3843699074,2538681184,1649639237,2976151520,3144396420,4269907996,4178062228,1883793496,2403728665,2497604743,1383856311,2876494627,1917518562,3810496343,1716890410,3001755655,800440835,2261089178,3543599269,807962610,599762354,33778362,3977675356,2328828971,2809771154,4077384432,1315562145,1708848333,101039829,3509871135,3299278474,875451293,2733856160,92987698,2767645557,193195065,1080094634,1584504582,3178106961,1042385657,2531067453,3711829422,1306967366,2438237621,1908694277,67556463,1615861247,429456164,3602770327,2302690252,1742315127,2968011453,126454664,3877198648,2043211483,2709260871,2084704233,4169408201,0,159417987,841739592,504459436,1817866830,4245618683,260388950,1034867998,908933415,168810852,1750902305,2606453969,607530554,202008497,2472011535,3035535058,463180190,2160117071,1641816226,1517767529,470948374,3801332234,3231722213,1008918595,303765277,235474187,4069246893,766945465,337553864,1475418501,2943682380,4003061179,2743034109,4144047775,1551037884,1147550661,1543208500,2336434550,3408119516,3069049960,3102011747,3610369226,1113818384,328671808,2227573024,2236228733,3535486456,2935566865,3341394285,496906059,3702665459,226906860,2009195472,733156972,2842737049,294930682,1206477858,2835123396,2700099354,1451044056,573804783,2269728455,3644379585,2362090238,2564033334,2801107407,2776292904,3669462566,1068351396,742039012,1350078989,1784663195,1417561698,4136440770,2430122216,775550814,2193862645,2673705150,1775276924,1876241833,3475313331,3366754619,270040487,3902563182,3678124923,3441850377,1851332852,3969562369,2203032232,3868552805,2868897406,566021896,4011190502,3135740889,1248802510,3936291284,699432150,832877231,708780849,3332740144,899835584,1951317047,4236429990,3767586992,866637845,4043610186,1106041591,2144161806,395441711,1984812685,1139781709,3433712980,3835036895,2664543715,1282050075,3240894392,1181045119,2640243204,25965917,4203181171,4211818798,3009879386,2463879762,3910161971,1842759443,2597806476,933301370,1509430414,3943906441,3467192302,3076639029,3776767469,2051518780,2631065433,1441952575,404016761,1942435775,1408749034,1610459739,3745345300,2017778566,3400528769,3110650942,941896748,3265478751,371049330,3168937228,675039627,4279080257,967311729,135050206,3635733660,1683407248,2076935265,3576870512,1215061108,3501741890],R=[1347548327,1400783205,3273267108,2520393566,3409685355,4045380933,2880240216,2471224067,1428173050,4138563181,2441661558,636813900,4233094615,3620022987,2149987652,2411029155,1239331162,1730525723,2554718734,3781033664,46346101,310463728,2743944855,3328955385,3875770207,2501218972,3955191162,3667219033,768917123,3545789473,692707433,1150208456,1786102409,2029293177,1805211710,3710368113,3065962831,401639597,1724457132,3028143674,409198410,2196052529,1620529459,1164071807,3769721975,2226875310,486441376,2499348523,1483753576,428819965,2274680428,3075636216,598438867,3799141122,1474502543,711349675,129166120,53458370,2592523643,2782082824,4063242375,2988687269,3120694122,1559041666,730517276,2460449204,4042459122,2706270690,3446004468,3573941694,533804130,2328143614,2637442643,2695033685,839224033,1973745387,957055980,2856345839,106852767,1371368976,4181598602,1033297158,2933734917,1179510461,3046200461,91341917,1862534868,4284502037,605657339,2547432937,3431546947,2003294622,3182487618,2282195339,954669403,3682191598,1201765386,3917234703,3388507166,0,2198438022,1211247597,2887651696,1315723890,4227665663,1443857720,507358933,657861945,1678381017,560487590,3516619604,975451694,2970356327,261314535,3535072918,2652609425,1333838021,2724322336,1767536459,370938394,182621114,3854606378,1128014560,487725847,185469197,2918353863,3106780840,3356761769,2237133081,1286567175,3152976349,4255350624,2683765030,3160175349,3309594171,878443390,1988838185,3704300486,1756818940,1673061617,3403100636,272786309,1075025698,545572369,2105887268,4174560061,296679730,1841768865,1260232239,4091327024,3960309330,3497509347,1814803222,2578018489,4195456072,575138148,3299409036,446754879,3629546796,4011996048,3347532110,3252238545,4270639778,915985419,3483825537,681933534,651868046,2755636671,3828103837,223377554,2607439820,1649704518,3270937875,3901806776,1580087799,4118987695,3198115200,2087309459,2842678573,3016697106,1003007129,2802849917,1860738147,2077965243,164439672,4100872472,32283319,2827177882,1709610350,2125135846,136428751,3874428392,3652904859,3460984630,3572145929,3593056380,2939266226,824852259,818324884,3224740454,930369212,2801566410,2967507152,355706840,1257309336,4148292826,243256656,790073846,2373340630,1296297904,1422699085,3756299780,3818836405,457992840,3099667487,2135319889,77422314,1560382517,1945798516,788204353,1521706781,1385356242,870912086,325965383,2358957921,2050466060,2388260884,2313884476,4006521127,901210569,3990953189,1014646705,1503449823,1062597235,2031621326,3212035895,3931371469,1533017514,350174575,2256028891,2177544179,1052338372,741876788,1606591296,1914052035,213705253,2334669897,1107234197,1899603969,3725069491,2631447780,2422494913,1635502980,1893020342,1950903388,1120974935],q=[2807058932,1699970625,2764249623,1586903591,1808481195,1173430173,1487645946,59984867,4199882800,1844882806,1989249228,1277555970,3623636965,3419915562,1149249077,2744104290,1514790577,459744698,244860394,3235995134,1963115311,4027744588,2544078150,4190530515,1608975247,2627016082,2062270317,1507497298,2200818878,567498868,1764313568,3359936201,2305455554,2037970062,1047239e3,1910319033,1337376481,2904027272,2892417312,984907214,1243112415,830661914,861968209,2135253587,2011214180,2927934315,2686254721,731183368,1750626376,4246310725,1820824798,4172763771,3542330227,48394827,2404901663,2871682645,671593195,3254988725,2073724613,145085239,2280796200,2779915199,1790575107,2187128086,472615631,3029510009,4075877127,3802222185,4107101658,3201631749,1646252340,4270507174,1402811438,1436590835,3778151818,3950355702,3963161475,4020912224,2667994737,273792366,2331590177,104699613,95345982,3175501286,2377486676,1560637892,3564045318,369057872,4213447064,3919042237,1137477952,2658625497,1119727848,2340947849,1530455833,4007360968,172466556,266959938,516552836,0,2256734592,3980931627,1890328081,1917742170,4294704398,945164165,3575528878,958871085,3647212047,2787207260,1423022939,775562294,1739656202,3876557655,2530391278,2443058075,3310321856,547512796,1265195639,437656594,3121275539,719700128,3762502690,387781147,218828297,3350065803,2830708150,2848461854,428169201,122466165,3720081049,1627235199,648017665,4122762354,1002783846,2117360635,695634755,3336358691,4234721005,4049844452,3704280881,2232435299,574624663,287343814,612205898,1039717051,840019705,2708326185,793451934,821288114,1391201670,3822090177,376187827,3113855344,1224348052,1679968233,2361698556,1058709744,752375421,2431590963,1321699145,3519142200,2734591178,188127444,2177869557,3727205754,2384911031,3215212461,2648976442,2450346104,3432737375,1180849278,331544205,3102249176,4150144569,2952102595,2159976285,2474404304,766078933,313773861,2570832044,2108100632,1668212892,3145456443,2013908262,418672217,3070356634,2594734927,1852171925,3867060991,3473416636,3907448597,2614737639,919489135,164948639,2094410160,2997825956,590424639,2486224549,1723872674,3157750862,3399941250,3501252752,3625268135,2555048196,3673637356,1343127501,4130281361,3599595085,2957853679,1297403050,81781910,3051593425,2283490410,532201772,1367295589,3926170974,895287692,1953757831,1093597963,492483431,3528626907,1446242576,1192455638,1636604631,209336225,344873464,1015671571,669961897,3375740769,3857572124,2973530695,3747192018,1933530610,3464042516,935293895,3454686199,2858115069,1863638845,3683022916,4085369519,3292445032,875313188,1080017571,3279033885,621591778,1233856572,2504130317,24197544,3017672716,3835484340,3247465558,2220981195,3060847922,1551124588,1463996600],I=[4104605777,1097159550,396673818,660510266,2875968315,2638606623,4200115116,3808662347,821712160,1986918061,3430322568,38544885,3856137295,718002117,893681702,1654886325,2975484382,3122358053,3926825029,4274053469,796197571,1290801793,1184342925,3556361835,2405426947,2459735317,1836772287,1381620373,3196267988,1948373848,3764988233,3385345166,3263785589,2390325492,1480485785,3111247143,3780097726,2293045232,548169417,3459953789,3746175075,439452389,1362321559,1400849762,1685577905,1806599355,2174754046,137073913,1214797936,1174215055,3731654548,2079897426,1943217067,1258480242,529487843,1437280870,3945269170,3049390895,3313212038,923313619,679998e3,3215307299,57326082,377642221,3474729866,2041877159,133361907,1776460110,3673476453,96392454,878845905,2801699524,777231668,4082475170,2330014213,4142626212,2213296395,1626319424,1906247262,1846563261,562755902,3708173718,1040559837,3871163981,1418573201,3294430577,114585348,1343618912,2566595609,3186202582,1078185097,3651041127,3896688048,2307622919,425408743,3371096953,2081048481,1108339068,2216610296,0,2156299017,736970802,292596766,1517440620,251657213,2235061775,2933202493,758720310,265905162,1554391400,1532285339,908999204,174567692,1474760595,4002861748,2610011675,3234156416,3693126241,2001430874,303699484,2478443234,2687165888,585122620,454499602,151849742,2345119218,3064510765,514443284,4044981591,1963412655,2581445614,2137062819,19308535,1928707164,1715193156,4219352155,1126790795,600235211,3992742070,3841024952,836553431,1669664834,2535604243,3323011204,1243905413,3141400786,4180808110,698445255,2653899549,2989552604,2253581325,3252932727,3004591147,1891211689,2487810577,3915653703,4237083816,4030667424,2100090966,865136418,1229899655,953270745,3399679628,3557504664,4118925222,2061379749,3079546586,2915017791,983426092,2022837584,1607244650,2118541908,2366882550,3635996816,972512814,3283088770,1568718495,3499326569,3576539503,621982671,2895723464,410887952,2623762152,1002142683,645401037,1494807662,2595684844,1335535747,2507040230,4293295786,3167684641,367585007,3885750714,1865862730,2668221674,2960971305,2763173681,1059270954,2777952454,2724642869,1320957812,2194319100,2429595872,2815956275,77089521,3973773121,3444575871,2448830231,1305906550,4021308739,2857194700,2516901860,3518358430,1787304780,740276417,1699839814,1592394909,2352307457,2272556026,188821243,1729977011,3687994002,274084841,3594982253,3613494426,2701949495,4162096729,322734571,2837966542,1640576439,484830689,1202797690,3537852828,4067639125,349075736,3342319475,4157467219,4255800159,1030690015,1155237496,2951971274,1757691577,607398968,2738905026,499347990,3794078908,1011452712,227885567,2818666809,213114376,3034881240,1455525988,3414450555,850817237,1817998408,3092726480],j=[0,235474187,470948374,303765277,941896748,908933415,607530554,708780849,1883793496,2118214995,1817866830,1649639237,1215061108,1181045119,1417561698,1517767529,3767586992,4003061179,4236429990,4069246893,3635733660,3602770327,3299278474,3400528769,2430122216,2664543715,2362090238,2193862645,2835123396,2801107407,3035535058,3135740889,3678124923,3576870512,3341394285,3374361702,3810496343,3977675356,4279080257,4043610186,2876494627,2776292904,3076639029,3110650942,2472011535,2640243204,2403728665,2169303058,1001089995,899835584,666464733,699432150,59727847,226906860,530400753,294930682,1273168787,1172967064,1475418501,1509430414,1942435775,2110667444,1876241833,1641816226,2910219766,2743034109,2976151520,3211623147,2505202138,2606453969,2302690252,2269728455,3711829422,3543599269,3240894392,3475313331,3843699074,3943906441,4178062228,4144047775,1306967366,1139781709,1374988112,1610459739,1975683434,2076935265,1775276924,1742315127,1034867998,866637845,566021896,800440835,92987698,193195065,429456164,395441711,1984812685,2017778566,1784663195,1683407248,1315562145,1080094634,1383856311,1551037884,101039829,135050206,437757123,337553864,1042385657,807962610,573804783,742039012,2531067453,2564033334,2328828971,2227573024,2935566865,2700099354,3001755655,3168937228,3868552805,3902563182,4203181171,4102977912,3736164937,3501741890,3265478751,3433712980,1106041591,1340463100,1576976609,1408749034,2043211483,2009195472,1708848333,1809054150,832877231,1068351396,766945465,599762354,159417987,126454664,361929877,463180190,2709260871,2943682380,3178106961,3009879386,2572697195,2538681184,2236228733,2336434550,3509871135,3745345300,3441850377,3274667266,3910161971,3877198648,4110568485,4211818798,2597806476,2497604743,2261089178,2295101073,2733856160,2902087851,3202437046,2968011453,3936291284,3835036895,4136440770,4169408201,3535486456,3702665459,3467192302,3231722213,2051518780,1951317047,1716890410,1750902305,1113818384,1282050075,1584504582,1350078989,168810852,67556463,371049330,404016761,841739592,1008918595,775550814,540080725,3969562369,3801332234,4035489047,4269907996,3569255213,3669462566,3366754619,3332740144,2631065433,2463879762,2160117071,2395588676,2767645557,2868897406,3102011747,3069049960,202008497,33778362,270040487,504459436,875451293,975658646,675039627,641025152,2084704233,1917518562,1615861247,1851332852,1147550661,1248802510,1484005843,1451044056,933301370,967311729,733156972,632953703,260388950,25965917,328671808,496906059,1206477858,1239443753,1543208500,1441952575,2144161806,1908694277,1675577880,1842759443,3610369226,3644379585,3408119516,3307916247,4011190502,3776767469,4077384432,4245618683,2809771154,2842737049,3144396420,3043140495,2673705150,2438237621,2203032232,2370213795],V=[0,185469197,370938394,487725847,741876788,657861945,975451694,824852259,1483753576,1400783205,1315723890,1164071807,1950903388,2135319889,1649704518,1767536459,2967507152,3152976349,2801566410,2918353863,2631447780,2547432937,2328143614,2177544179,3901806776,3818836405,4270639778,4118987695,3299409036,3483825537,3535072918,3652904859,2077965243,1893020342,1841768865,1724457132,1474502543,1559041666,1107234197,1257309336,598438867,681933534,901210569,1052338372,261314535,77422314,428819965,310463728,3409685355,3224740454,3710368113,3593056380,3875770207,3960309330,4045380933,4195456072,2471224067,2554718734,2237133081,2388260884,3212035895,3028143674,2842678573,2724322336,4138563181,4255350624,3769721975,3955191162,3667219033,3516619604,3431546947,3347532110,2933734917,2782082824,3099667487,3016697106,2196052529,2313884476,2499348523,2683765030,1179510461,1296297904,1347548327,1533017514,1786102409,1635502980,2087309459,2003294622,507358933,355706840,136428751,53458370,839224033,957055980,605657339,790073846,2373340630,2256028891,2607439820,2422494913,2706270690,2856345839,3075636216,3160175349,3573941694,3725069491,3273267108,3356761769,4181598602,4063242375,4011996048,3828103837,1033297158,915985419,730517276,545572369,296679730,446754879,129166120,213705253,1709610350,1860738147,1945798516,2029293177,1239331162,1120974935,1606591296,1422699085,4148292826,4233094615,3781033664,3931371469,3682191598,3497509347,3446004468,3328955385,2939266226,2755636671,3106780840,2988687269,2198438022,2282195339,2501218972,2652609425,1201765386,1286567175,1371368976,1521706781,1805211710,1620529459,2105887268,1988838185,533804130,350174575,164439672,46346101,870912086,954669403,636813900,788204353,2358957921,2274680428,2592523643,2441661558,2695033685,2880240216,3065962831,3182487618,3572145929,3756299780,3270937875,3388507166,4174560061,4091327024,4006521127,3854606378,1014646705,930369212,711349675,560487590,272786309,457992840,106852767,223377554,1678381017,1862534868,1914052035,2031621326,1211247597,1128014560,1580087799,1428173050,32283319,182621114,401639597,486441376,768917123,651868046,1003007129,818324884,1503449823,1385356242,1333838021,1150208456,1973745387,2125135846,1673061617,1756818940,2970356327,3120694122,2802849917,2887651696,2637442643,2520393566,2334669897,2149987652,3917234703,3799141122,4284502037,4100872472,3309594171,3460984630,3545789473,3629546796,2050466060,1899603969,1814803222,1730525723,1443857720,1560382517,1075025698,1260232239,575138148,692707433,878443390,1062597235,243256656,91341917,409198410,325965383,3403100636,3252238545,3704300486,3620022987,3874428392,3990953189,4042459122,4227665663,2460449204,2578018489,2226875310,2411029155,3198115200,3046200461,2827177882,2743944855],X=[0,218828297,437656594,387781147,875313188,958871085,775562294,590424639,1750626376,1699970625,1917742170,2135253587,1551124588,1367295589,1180849278,1265195639,3501252752,3720081049,3399941250,3350065803,3835484340,3919042237,4270507174,4085369519,3102249176,3051593425,2734591178,2952102595,2361698556,2177869557,2530391278,2614737639,3145456443,3060847922,2708326185,2892417312,2404901663,2187128086,2504130317,2555048196,3542330227,3727205754,3375740769,3292445032,3876557655,3926170974,4246310725,4027744588,1808481195,1723872674,1910319033,2094410160,1608975247,1391201670,1173430173,1224348052,59984867,244860394,428169201,344873464,935293895,984907214,766078933,547512796,1844882806,1627235199,2011214180,2062270317,1507497298,1423022939,1137477952,1321699145,95345982,145085239,532201772,313773861,830661914,1015671571,731183368,648017665,3175501286,2957853679,2807058932,2858115069,2305455554,2220981195,2474404304,2658625497,3575528878,3625268135,3473416636,3254988725,3778151818,3963161475,4213447064,4130281361,3599595085,3683022916,3432737375,3247465558,3802222185,4020912224,4172763771,4122762354,3201631749,3017672716,2764249623,2848461854,2331590177,2280796200,2431590963,2648976442,104699613,188127444,472615631,287343814,840019705,1058709744,671593195,621591778,1852171925,1668212892,1953757831,2037970062,1514790577,1463996600,1080017571,1297403050,3673637356,3623636965,3235995134,3454686199,4007360968,3822090177,4107101658,4190530515,2997825956,3215212461,2830708150,2779915199,2256734592,2340947849,2627016082,2443058075,172466556,122466165,273792366,492483431,1047239e3,861968209,612205898,695634755,1646252340,1863638845,2013908262,1963115311,1446242576,1530455833,1277555970,1093597963,1636604631,1820824798,2073724613,1989249228,1436590835,1487645946,1337376481,1119727848,164948639,81781910,331544205,516552836,1039717051,821288114,669961897,719700128,2973530695,3157750862,2871682645,2787207260,2232435299,2283490410,2667994737,2450346104,3647212047,3564045318,3279033885,3464042516,3980931627,3762502690,4150144569,4199882800,3070356634,3121275539,2904027272,2686254721,2200818878,2384911031,2570832044,2486224549,3747192018,3528626907,3310321856,3359936201,3950355702,3867060991,4049844452,4234721005,1739656202,1790575107,2108100632,1890328081,1402811438,1586903591,1233856572,1149249077,266959938,48394827,369057872,418672217,1002783846,919489135,567498868,752375421,209336225,24197544,376187827,459744698,945164165,895287692,574624663,793451934,1679968233,1764313568,2117360635,1933530610,1343127501,1560637892,1243112415,1192455638,3704280881,3519142200,3336358691,3419915562,3907448597,3857572124,4075877127,4294704398,3029510009,3113855344,2927934315,2744104290,2159976285,2377486676,2594734927,2544078150],W=[0,151849742,303699484,454499602,607398968,758720310,908999204,1059270954,1214797936,1097159550,1517440620,1400849762,1817998408,1699839814,2118541908,2001430874,2429595872,2581445614,2194319100,2345119218,3034881240,3186202582,2801699524,2951971274,3635996816,3518358430,3399679628,3283088770,4237083816,4118925222,4002861748,3885750714,1002142683,850817237,698445255,548169417,529487843,377642221,227885567,77089521,1943217067,2061379749,1640576439,1757691577,1474760595,1592394909,1174215055,1290801793,2875968315,2724642869,3111247143,2960971305,2405426947,2253581325,2638606623,2487810577,3808662347,3926825029,4044981591,4162096729,3342319475,3459953789,3576539503,3693126241,1986918061,2137062819,1685577905,1836772287,1381620373,1532285339,1078185097,1229899655,1040559837,923313619,740276417,621982671,439452389,322734571,137073913,19308535,3871163981,4021308739,4104605777,4255800159,3263785589,3414450555,3499326569,3651041127,2933202493,2815956275,3167684641,3049390895,2330014213,2213296395,2566595609,2448830231,1305906550,1155237496,1607244650,1455525988,1776460110,1626319424,2079897426,1928707164,96392454,213114376,396673818,514443284,562755902,679998e3,865136418,983426092,3708173718,3557504664,3474729866,3323011204,4180808110,4030667424,3945269170,3794078908,2507040230,2623762152,2272556026,2390325492,2975484382,3092726480,2738905026,2857194700,3973773121,3856137295,4274053469,4157467219,3371096953,3252932727,3673476453,3556361835,2763173681,2915017791,3064510765,3215307299,2156299017,2307622919,2459735317,2610011675,2081048481,1963412655,1846563261,1729977011,1480485785,1362321559,1243905413,1126790795,878845905,1030690015,645401037,796197571,274084841,425408743,38544885,188821243,3613494426,3731654548,3313212038,3430322568,4082475170,4200115116,3780097726,3896688048,2668221674,2516901860,2366882550,2216610296,3141400786,2989552604,2837966542,2687165888,1202797690,1320957812,1437280870,1554391400,1669664834,1787304780,1906247262,2022837584,265905162,114585348,499347990,349075736,736970802,585122620,972512814,821712160,2595684844,2478443234,2293045232,2174754046,3196267988,3079546586,2895723464,2777952454,3537852828,3687994002,3234156416,3385345166,4142626212,4293295786,3841024952,3992742070,174567692,57326082,410887952,292596766,777231668,660510266,1011452712,893681702,1108339068,1258480242,1343618912,1494807662,1715193156,1865862730,1948373848,2100090966,2701949495,2818666809,3004591147,3122358053,2235061775,2352307457,2535604243,2653899549,3915653703,3764988233,4219352155,4067639125,3444575871,3294430577,3746175075,3594982253,836553431,953270745,600235211,718002117,367585007,484830689,133361907,251657213,2041877159,1891211689,1806599355,1654886325,1568718495,1418573201,1335535747,1184342925];function K(c){for(var x=[],M=0;M>2,this._Ke[N][x%4]=S[x],this._Kd[c-N][x%4]=S[x];for(var w=0,O=h,k;O>16&255]<<24^p[k>>8&255]<<16^p[k&255]<<8^p[k>>24&255]^s[w]<<24,w+=1,h!=8)for(var x=1;x>8&255]<<8^p[k>>16&255]<<16^p[k>>24&255]<<24;for(var x=h/2+1;x>2,U=O%4,this._Ke[D][U]=S[x],this._Kd[c-D][U]=S[x++],O++}for(var D=1;D>24&255]^V[k>>16&255]^X[k>>8&255]^W[k&255]},H.prototype.encrypt=function(c){if(c.length!=16)throw new Error("invalid plaintext size (must be 16 bytes)");for(var x=this._Ke.length-1,M=[0,0,0,0],h=K(c),S=0;S<4;S++)h[S]^=this._Ke[0][S];for(var N=1;N>24&255]^C[h[(S+1)%4]>>16&255]^P[h[(S+2)%4]>>8&255]^B[h[(S+3)%4]&255]^this._Ke[N][S];h=M.slice()}for(var w=i(16),O,S=0;S<4;S++)O=this._Ke[x][S],w[4*S]=(p[h[S]>>24&255]^O>>24)&255,w[4*S+1]=(p[h[(S+1)%4]>>16&255]^O>>16)&255,w[4*S+2]=(p[h[(S+2)%4]>>8&255]^O>>8)&255,w[4*S+3]=(p[h[(S+3)%4]&255]^O)&255;return w},H.prototype.decrypt=function(c){if(c.length!=16)throw new Error("invalid ciphertext size (must be 16 bytes)");for(var x=this._Kd.length-1,M=[0,0,0,0],h=K(c),S=0;S<4;S++)h[S]^=this._Kd[0][S];for(var N=1;N>24&255]^R[h[(S+3)%4]>>16&255]^q[h[(S+2)%4]>>8&255]^I[h[(S+1)%4]&255]^this._Kd[N][S];h=M.slice()}for(var w=i(16),O,S=0;S<4;S++)O=this._Kd[x][S],w[4*S]=(_[h[S]>>24&255]^O>>24)&255,w[4*S+1]=(_[h[(S+3)%4]>>16&255]^O>>16)&255,w[4*S+2]=(_[h[(S+2)%4]>>8&255]^O>>8)&255,w[4*S+3]=(_[h[(S+1)%4]&255]^O)&255;return w};var T=function(c){if(!(this instanceof T))throw Error("AES must be instanitated with `new`");this.description="Electronic Code Block",this.name="ecb",this._aes=new H(c)};T.prototype.encrypt=function(c){if(c=n(c),c.length%16!==0)throw new Error("invalid plaintext size (must be multiple of 16 bytes)");for(var x=i(c.length),M=i(16),h=0;h=0;--x)this._counter[x]=c%256,c=c>>8},f.prototype.setBytes=function(c){if(c=n(c,!0),c.length!=16)throw new Error("invalid counter bytes size (must be 16 bytes)");this._counter=c},f.prototype.increment=function(){for(var c=15;c>=0;c--)if(this._counter[c]===255)this._counter[c]=0;else{this._counter[c]++;break}};var d=function(c,x){if(!(this instanceof d))throw Error("AES must be instanitated with `new`");this.description="Counter",this.name="ctr",x instanceof f||(x=new f(x)),this._counter=x,this._remainingCounter=null,this._remainingCounterIndex=16,this._aes=new H(c)};d.prototype.encrypt=function(c){for(var x=n(c,!0),M=0;M16)throw new Error("PKCS#7 padding byte out of range");for(var M=c.length-x,h=0;h{"use strict";Object.defineProperty(Xu,"__esModule",{value:!0});Xu.version=void 0;Xu.version="json-wallets/5.7.0"});var vl=L(Mt=>{"use strict";Object.defineProperty(Mt,"__esModule",{value:!0});Mt.uuidV4=Mt.searchPath=Mt.getPassword=Mt.zpad=Mt.looseArrayify=void 0;var Gu=De(),K1=pr();function J9(t){return typeof t=="string"&&t.substring(0,2)!=="0x"&&(t="0x"+t),(0,Gu.arrayify)(t)}Mt.looseArrayify=J9;function D9(t,r){for(t=String(t);t.length{"use strict";var q9=_n&&_n.__extends||function(){var t=function(r,e){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,i){n.__proto__=i}||function(n,i){for(var a in i)Object.prototype.hasOwnProperty.call(i,a)&&(n[a]=i[a])},t(r,e)};return function(r,e){if(typeof e!="function"&&e!==null)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");t(r,e);function n(){this.constructor=r}r.prototype=e===null?Object.create(e):(n.prototype=e.prototype,new n)}}(),X9=_n&&_n.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(_n,"__esModule",{value:!0});_n.decrypt=_n.CrowdsaleAccount=void 0;var Q1=X9(bl()),G9=pt(),W1=De(),j9=tt(),z9=Tu(),V9=pr(),Z9=Ve(),K9=re(),Q9=pl(),W9=new K9.Logger(Q9.version),ju=vl(),Y1=function(t){q9(r,t);function r(){return t!==null&&t.apply(this,arguments)||this}return r.prototype.isCrowdsaleAccount=function(e){return!!(e&&e._isCrowdsaleAccount)},r}(Z9.Description);_n.CrowdsaleAccount=Y1;function Y9(t,r){var e=JSON.parse(t);r=(0,ju.getPassword)(r);var n=(0,G9.getAddress)((0,ju.searchPath)(e,"ethaddr")),i=(0,ju.looseArrayify)((0,ju.searchPath)(e,"encseed"));(!i||i.length%16!==0)&&W9.throwArgumentError("invalid encseed","json",t);for(var a=(0,W1.arrayify)((0,z9.pbkdf2)(r,r,2e3,32,"sha256")).slice(0,16),o=i.slice(0,16),u=i.slice(16),l=new Q1.default.ModeOfOperation.cbc(a,o),s=Q1.default.padding.pkcs7.strip((0,W1.arrayify)(l.decrypt(u))),p="",_=0;_{"use strict";Object.defineProperty(Mi,"__esModule",{value:!0});Mi.getJsonWalletAddress=Mi.isKeystoreWallet=Mi.isCrowdsaleWallet=void 0;var eg=pt();function rg(t){var r=null;try{r=JSON.parse(t)}catch{return!1}return r.encseed&&r.ethaddr}Mi.isCrowdsaleWallet=rg;function tg(t){var r=null;try{r=JSON.parse(t)}catch{return!1}return!(!r.version||parseInt(r.version)!==r.version||parseInt(r.version)!==3)}Mi.isKeystoreWallet=tg;function $9(t){if(rg(t))try{return(0,eg.getAddress)(JSON.parse(t).ethaddr)}catch{return null}if(tg(t))try{return(0,eg.getAddress)(JSON.parse(t).address)}catch{return null}return null}Mi.getJsonWalletAddress=$9});var ag=L((gl,ig)=>{"use strict";(function(t){function e(C){let P=new Uint32Array([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]),B=1779033703,J=3144134277,R=1013904242,q=2773480762,I=1359893119,j=2600822924,V=528734635,X=1541459225,W=new Uint32Array(64);function K(d){let g=0,y=d.length;for(;y>=64;){let m=B,c=J,x=R,M=q,h=I,S=j,N=V,w=X,O,k,D,U,Q;for(k=0;k<16;k++)D=g+k*4,W[k]=(d[D]&255)<<24|(d[D+1]&255)<<16|(d[D+2]&255)<<8|d[D+3]&255;for(k=16;k<64;k++)O=W[k-2],U=(O>>>17|O<<32-17)^(O>>>19|O<<32-19)^O>>>10,O=W[k-15],Q=(O>>>7|O<<32-7)^(O>>>18|O<<32-18)^O>>>3,W[k]=(U+W[k-7]|0)+(Q+W[k-16]|0)|0;for(k=0;k<64;k++)U=(((h>>>6|h<<32-6)^(h>>>11|h<<32-11)^(h>>>25|h<<32-25))+(h&S^~h&N)|0)+(w+(P[k]+W[k]|0)|0)|0,Q=((m>>>2|m<<32-2)^(m>>>13|m<<32-13)^(m>>>22|m<<32-22))+(m&c^m&x^c&x)|0,w=N,N=S,S=h,h=M+U|0,M=x,x=c,c=m,m=U+Q|0;B=B+m|0,J=J+c|0,R=R+x|0,q=q+M|0,I=I+h|0,j=j+S|0,V=V+N|0,X=X+w|0,g+=64,y-=64}}K(C);let H,T=C.length%64,b=C.length/536870912|0,A=C.length<<3,v=T<56?56:120,f=C.slice(C.length-T,C.length);for(f.push(128),H=T+1;H>>24&255),f.push(b>>>16&255),f.push(b>>>8&255),f.push(b>>>0&255),f.push(A>>>24&255),f.push(A>>>16&255),f.push(A>>>8&255),f.push(A>>>0&255),K(f),[B>>>24&255,B>>>16&255,B>>>8&255,B>>>0&255,J>>>24&255,J>>>16&255,J>>>8&255,J>>>0&255,R>>>24&255,R>>>16&255,R>>>8&255,R>>>0&255,q>>>24&255,q>>>16&255,q>>>8&255,q>>>0&255,I>>>24&255,I>>>16&255,I>>>8&255,I>>>0&255,j>>>24&255,j>>>16&255,j>>>8&255,j>>>0&255,V>>>24&255,V>>>16&255,V>>>8&255,V>>>0&255,X>>>24&255,X>>>16&255,X>>>8&255,X>>>0&255]}function n(C,P,B){C=C.length<=64?C:e(C);let J=64+P.length+4,R=new Array(J),q=new Array(64),I,j=[];for(I=0;I<64;I++)R[I]=54;for(I=0;I=J-4;X--){if(R[X]++,R[X]<=255)return;R[X]=0}}for(;B>=32;)V(),j=j.concat(e(q.concat(e(R)))),B-=32;return B>0&&(V(),j=j.concat(e(q.concat(e(R))).slice(0,B))),j}function i(C,P,B,J,R){let q;for(l(C,(2*B-1)*16,R,0,16),q=0;q<2*B;q++)u(C,q*16,R,16),o(R,J),l(R,0,C,P+q*16,16);for(q=0;q>>32-P}function o(C,P){l(C,0,P,0,16);for(let B=8;B>0;B-=2)P[4]^=a(P[0]+P[12],7),P[8]^=a(P[4]+P[0],9),P[12]^=a(P[8]+P[4],13),P[0]^=a(P[12]+P[8],18),P[9]^=a(P[5]+P[1],7),P[13]^=a(P[9]+P[5],9),P[1]^=a(P[13]+P[9],13),P[5]^=a(P[1]+P[13],18),P[14]^=a(P[10]+P[6],7),P[2]^=a(P[14]+P[10],9),P[6]^=a(P[2]+P[14],13),P[10]^=a(P[6]+P[2],18),P[3]^=a(P[15]+P[11],7),P[7]^=a(P[3]+P[15],9),P[11]^=a(P[7]+P[3],13),P[15]^=a(P[11]+P[7],18),P[1]^=a(P[0]+P[3],7),P[2]^=a(P[1]+P[0],9),P[3]^=a(P[2]+P[1],13),P[0]^=a(P[3]+P[2],18),P[6]^=a(P[5]+P[4],7),P[7]^=a(P[6]+P[5],9),P[4]^=a(P[7]+P[6],13),P[5]^=a(P[4]+P[7],18),P[11]^=a(P[10]+P[9],7),P[8]^=a(P[11]+P[10],9),P[9]^=a(P[8]+P[11],13),P[10]^=a(P[9]+P[8],18),P[12]^=a(P[15]+P[14],7),P[13]^=a(P[12]+P[15],9),P[14]^=a(P[13]+P[12],13),P[15]^=a(P[14]+P[13],18);for(let B=0;B<16;++B)C[B]+=P[B]}function u(C,P,B,J){for(let R=0;R=256)return!1}return!0}function p(C,P){if(typeof C!="number"||C%1)throw new Error("invalid "+P);return C}function _(C,P,B,J,R,q,I){if(B=p(B,"N"),J=p(J,"r"),R=p(R,"p"),q=p(q,"dkLen"),B===0||(B&B-1)!==0)throw new Error("N must be power of 2");if(B>2147483647/128/J)throw new Error("N too large");if(J>2147483647/128/R)throw new Error("r too large");if(!s(C))throw new Error("password must be an array or buffer");if(C=Array.prototype.slice.call(C),!s(P))throw new Error("salt must be an array or buffer");P=Array.prototype.slice.call(P);let j=n(C,P,R*128*J),V=new Uint32Array(R*32*J);for(let h=0;hc&&(h=c);for(let N=0;Nc&&(h=c);for(let N=0;N>0&255),j.push(V[N]>>8&255),j.push(V[N]>>16&255),j.push(V[N]>>24&255);let S=n(C,j,q);return I&&I(null,1,S),S}I&&x(M)};if(!I)for(;;){let h=M();if(h!=null)return h}M()}let E={scrypt:function(C,P,B,J,R,q,I){return new Promise(function(j,V){let X=0;I&&I(0),_(C,P,B,J,R,q,function(W,K,H){if(W)V(W);else if(H)I&&X!==1&&I(1),j(new Uint8Array(H));else if(I&&K!==X)return X=K,I(K)})})},syncScrypt:function(C,P,B,J,R,q){return new Uint8Array(_(C,P,B,J,R,q))}};typeof gl<"u"?ig.exports=E:typeof define=="function"&&define.amd?define(E):t&&(t.scrypt&&(t._scrypt=t.scrypt),t.scrypt=E)})(gl)});var pg=L(Cr=>{"use strict";var eA=Cr&&Cr.__extends||function(){var t=function(r,e){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,i){n.__proto__=i}||function(n,i){for(var a in i)Object.prototype.hasOwnProperty.call(i,a)&&(n[a]=i[a])},t(r,e)};return function(r,e){if(typeof e!="function"&&e!==null)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");t(r,e);function n(){this.constructor=r}r.prototype=e===null?Object.create(e):(n.prototype=e.prototype,new n)}}(),rA=Cr&&Cr.__awaiter||function(t,r,e,n){function i(a){return a instanceof e?a:new e(function(o){o(a)})}return new(e||(e=Promise))(function(a,o){function u(p){try{s(n.next(p))}catch(_){o(_)}}function l(p){try{s(n.throw(p))}catch(_){o(_)}}function s(p){p.done?a(p.value):i(p.value).then(u,l)}s((n=n.apply(t,r||[])).next())})},tA=Cr&&Cr.__generator||function(t,r){var e={label:0,sent:function(){if(a[0]&1)throw a[1];return a[1]},trys:[],ops:[]},n,i,a,o;return o={next:u(0),throw:u(1),return:u(2)},typeof Symbol=="function"&&(o[Symbol.iterator]=function(){return this}),o;function u(s){return function(p){return l([s,p])}}function l(s){if(n)throw new TypeError("Generator is already executing.");for(;e;)try{if(n=1,i&&(a=s[0]&2?i.return:s[0]?i.throw||((a=i.return)&&a.call(i),0):i.next)&&!(a=a.call(i,s[1])).done)return a;switch(i=0,a&&(s=[s[0]&2,a.value]),s[0]){case 0:case 1:a=s;break;case 4:return e.label++,{value:s[1],done:!1};case 5:e.label++,i=s[1],s=[0];continue;case 7:s=e.ops.pop(),e.trys.pop();continue;default:if(a=e.trys,!(a=a.length>0&&a[a.length-1])&&(s[0]===6||s[0]===2)){e=0;continue}if(s[0]===3&&(!a||s[1]>a[0]&&s[1]{"use strict";Object.defineProperty(mr,"__esModule",{value:!0});mr.decryptJsonWalletSync=mr.decryptJsonWallet=mr.getJsonWalletAddress=mr.isKeystoreWallet=mr.isCrowdsaleWallet=mr.encryptKeystore=mr.decryptKeystoreSync=mr.decryptKeystore=mr.decryptCrowdsale=void 0;var Al=$1();Object.defineProperty(mr,"decryptCrowdsale",{enumerable:!0,get:function(){return Al.decrypt}});var xa=ng();Object.defineProperty(mr,"getJsonWalletAddress",{enumerable:!0,get:function(){return xa.getJsonWalletAddress}});Object.defineProperty(mr,"isCrowdsaleWallet",{enumerable:!0,get:function(){return xa.isCrowdsaleWallet}});Object.defineProperty(mr,"isKeystoreWallet",{enumerable:!0,get:function(){return xa.isKeystoreWallet}});var Bs=pg();Object.defineProperty(mr,"decryptKeystore",{enumerable:!0,get:function(){return Bs.decrypt}});Object.defineProperty(mr,"decryptKeystoreSync",{enumerable:!0,get:function(){return Bs.decryptSync}});Object.defineProperty(mr,"encryptKeystore",{enumerable:!0,get:function(){return Bs.encrypt}});function lA(t,r,e){if((0,xa.isCrowdsaleWallet)(t)){e&&e(0);var n=(0,Al.decrypt)(t,r);return e&&e(1),Promise.resolve(n)}return(0,xa.isKeystoreWallet)(t)?(0,Bs.decrypt)(t,r,e):Promise.reject(new Error("invalid JSON wallet"))}mr.decryptJsonWallet=lA;function dA(t,r){if((0,xa.isCrowdsaleWallet)(t))return(0,Al.decrypt)(t,r);if((0,xa.isKeystoreWallet)(t))return(0,Bs.decryptSync)(t,r);throw new Error("invalid JSON wallet")}mr.decryptJsonWalletSync=dA});var vg=L(Vu=>{"use strict";Object.defineProperty(Vu,"__esModule",{value:!0});Vu.version=void 0;Vu.version="wallet/5.7.0"});var Ml=L($r=>{"use strict";var hA=$r&&$r.__extends||function(){var t=function(r,e){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,i){n.__proto__=i}||function(n,i){for(var a in i)Object.prototype.hasOwnProperty.call(i,a)&&(n[a]=i[a])},t(r,e)};return function(r,e){if(typeof e!="function"&&e!==null)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");t(r,e);function n(){this.constructor=r}r.prototype=e===null?Object.create(e):(n.prototype=e.prototype,new n)}}(),gg=$r&&$r.__awaiter||function(t,r,e,n){function i(a){return a instanceof e?a:new e(function(o){o(a)})}return new(e||(e=Promise))(function(a,o){function u(p){try{s(n.next(p))}catch(_){o(_)}}function l(p){try{s(n.throw(p))}catch(_){o(_)}}function s(p){p.done?a(p.value):i(p.value).then(u,l)}s((n=n.apply(t,r||[])).next())})},mg=$r&&$r.__generator||function(t,r){var e={label:0,sent:function(){if(a[0]&1)throw a[1];return a[1]},trys:[],ops:[]},n,i,a,o;return o={next:u(0),throw:u(1),return:u(2)},typeof Symbol=="function"&&(o[Symbol.iterator]=function(){return this}),o;function u(s){return function(p){return l([s,p])}}function l(s){if(n)throw new TypeError("Generator is already executing.");for(;e;)try{if(n=1,i&&(a=s[0]&2?i.return:s[0]?i.throw||((a=i.return)&&a.call(i),0):i.next)&&!(a=a.call(i,s[1])).done)return a;switch(i=0,a&&(s=[s[0]&2,a.value]),s[0]){case 0:case 1:a=s;break;case 4:return e.label++,{value:s[1],done:!1};case 5:e.label++,i=s[1],s=[0];continue;case 7:s=e.ops.pop(),e.trys.pop();continue;default:if(a=e.trys,!(a=a.length>0&&a[a.length-1])&&(s[0]===6||s[0]===2)){e=0;continue}if(s[0]===3&&(!a||s[1]>a[0]&&s[1]{"use strict";Object.defineProperty(Zu,"__esModule",{value:!0});Zu.version=void 0;Zu.version="networks/5.7.1"});var Pl=L(Wu=>{"use strict";Object.defineProperty(Wu,"__esModule",{value:!0});Wu.getNetwork=void 0;var _A=re(),SA=wg(),_g=new _A.Logger(SA.version);function MA(t){return t&&typeof t.renetwork=="function"}function Vn(t){var r=function(e,n){n==null&&(n={});var i=[];if(e.InfuraProvider&&n.infura!=="-")try{i.push(new e.InfuraProvider(t,n.infura))}catch{}if(e.EtherscanProvider&&n.etherscan!=="-")try{i.push(new e.EtherscanProvider(t,n.etherscan))}catch{}if(e.AlchemyProvider&&n.alchemy!=="-")try{i.push(new e.AlchemyProvider(t,n.alchemy))}catch{}if(e.PocketProvider&&n.pocket!=="-"){var a=["goerli","ropsten","rinkeby","sepolia"];try{var o=new e.PocketProvider(t,n.pocket);o.network&&a.indexOf(o.network.name)===-1&&i.push(o)}catch{}}if(e.CloudflareProvider&&n.cloudflare!=="-")try{i.push(new e.CloudflareProvider(t))}catch{}if(e.AnkrProvider&&n.ankr!=="-")try{var a=["ropsten"],o=new e.AnkrProvider(t,n.ankr);o.network&&a.indexOf(o.network.name)===-1&&i.push(o)}catch{}if(i.length===0)return null;if(e.FallbackProvider){var u=1;return n.quorum!=null?u=n.quorum:t==="homestead"&&(u=2),new e.FallbackProvider(i,u)}return i[0]};return r.renetwork=function(e){return Vn(e)},r}function Qu(t,r){var e=function(n,i){return n.JsonRpcProvider?new n.JsonRpcProvider(t,r):null};return e.renetwork=function(n){return Qu(t,n)},e}var Sg={chainId:1,ensAddress:"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e",name:"homestead",_defaultProvider:Vn("homestead")},Mg={chainId:3,ensAddress:"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e",name:"ropsten",_defaultProvider:Vn("ropsten")},Pg={chainId:63,name:"classicMordor",_defaultProvider:Qu("https://www.ethercluster.com/mordor","classicMordor")},Ku={unspecified:{chainId:0,name:"unspecified"},homestead:Sg,mainnet:Sg,morden:{chainId:2,name:"morden"},ropsten:Mg,testnet:Mg,rinkeby:{chainId:4,ensAddress:"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e",name:"rinkeby",_defaultProvider:Vn("rinkeby")},kovan:{chainId:42,name:"kovan",_defaultProvider:Vn("kovan")},goerli:{chainId:5,ensAddress:"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e",name:"goerli",_defaultProvider:Vn("goerli")},kintsugi:{chainId:1337702,name:"kintsugi"},sepolia:{chainId:11155111,name:"sepolia",_defaultProvider:Vn("sepolia")},classic:{chainId:61,name:"classic",_defaultProvider:Qu("https://www.ethercluster.com/etc","classic")},classicMorden:{chainId:62,name:"classicMorden"},classicMordor:Pg,classicTestnet:Pg,classicKotti:{chainId:6,name:"classicKotti",_defaultProvider:Qu("https://www.ethercluster.com/kotti","classicKotti")},xdai:{chainId:100,name:"xdai"},matic:{chainId:137,name:"matic",_defaultProvider:Vn("matic")},maticmum:{chainId:80001,name:"maticmum"},optimism:{chainId:10,name:"optimism",_defaultProvider:Vn("optimism")},"optimism-kovan":{chainId:69,name:"optimism-kovan"},"optimism-goerli":{chainId:420,name:"optimism-goerli"},arbitrum:{chainId:42161,name:"arbitrum"},"arbitrum-rinkeby":{chainId:421611,name:"arbitrum-rinkeby"},"arbitrum-goerli":{chainId:421613,name:"arbitrum-goerli"},bnb:{chainId:56,name:"bnb"},bnbt:{chainId:97,name:"bnbt"}};function PA(t){if(t==null)return null;if(typeof t=="number"){for(var r in Ku){var e=Ku[r];if(e.chainId===t)return{name:e.name,chainId:e.chainId,ensAddress:e.ensAddress||null,_defaultProvider:e._defaultProvider||null}}return{chainId:t,name:"unknown"}}if(typeof t=="string"){var n=Ku[t];return n==null?null:{name:n.name,chainId:n.chainId,ensAddress:n.ensAddress,_defaultProvider:n._defaultProvider||null}}var i=Ku[t.name];if(!i)return typeof t.chainId!="number"&&_g.throwArgumentError("invalid network chainId","network",t),t;t.chainId!==0&&t.chainId!==i.chainId&&_g.throwArgumentError("network chainId mismatch","network",t);var a=t._defaultProvider||null;return a==null&&i._defaultProvider&&(MA(i._defaultProvider)?a=i._defaultProvider.renetwork(t):a=i._defaultProvider),{name:t.name,chainId:i.chainId,ensAddress:t.ensAddress||i.ensAddress||null,_defaultProvider:a}}Wu.getNetwork=PA});var El=L(Yu=>{"use strict";Object.defineProperty(Yu,"__esModule",{value:!0});Yu.version=void 0;Yu.version="web/5.7.1"});var Bg=L(Mn=>{"use strict";var EA=Mn&&Mn.__awaiter||function(t,r,e,n){function i(a){return a instanceof e?a:new e(function(o){o(a)})}return new(e||(e=Promise))(function(a,o){function u(p){try{s(n.next(p))}catch(_){o(_)}}function l(p){try{s(n.throw(p))}catch(_){o(_)}}function s(p){p.done?a(p.value):i(p.value).then(u,l)}s((n=n.apply(t,r||[])).next())})},TA=Mn&&Mn.__generator||function(t,r){var e={label:0,sent:function(){if(a[0]&1)throw a[1];return a[1]},trys:[],ops:[]},n,i,a,o;return o={next:u(0),throw:u(1),return:u(2)},typeof Symbol=="function"&&(o[Symbol.iterator]=function(){return this}),o;function u(s){return function(p){return l([s,p])}}function l(s){if(n)throw new TypeError("Generator is already executing.");for(;e;)try{if(n=1,i&&(a=s[0]&2?i.return:s[0]?i.throw||((a=i.return)&&a.call(i),0):i.next)&&!(a=a.call(i,s[1])).done)return a;switch(i=0,a&&(s=[s[0]&2,a.value]),s[0]){case 0:case 1:a=s;break;case 4:return e.label++,{value:s[1],done:!1};case 5:e.label++,i=s[1],s=[0];continue;case 7:s=e.ops.pop(),e.trys.pop();continue;default:if(a=e.trys,!(a=a.length>0&&a[a.length-1])&&(s[0]===6||s[0]===2)){e=0;continue}if(s[0]===3&&(!a||s[1]>a[0]&&s[1]{"use strict";var DA=Pt&&Pt.__awaiter||function(t,r,e,n){function i(a){return a instanceof e?a:new e(function(o){o(a)})}return new(e||(e=Promise))(function(a,o){function u(p){try{s(n.next(p))}catch(_){o(_)}}function l(p){try{s(n.throw(p))}catch(_){o(_)}}function s(p){p.done?a(p.value):i(p.value).then(u,l)}s((n=n.apply(t,r||[])).next())})},IA=Pt&&Pt.__generator||function(t,r){var e={label:0,sent:function(){if(a[0]&1)throw a[1];return a[1]},trys:[],ops:[]},n,i,a,o;return o={next:u(0),throw:u(1),return:u(2)},typeof Symbol=="function"&&(o[Symbol.iterator]=function(){return this}),o;function u(s){return function(p){return l([s,p])}}function l(s){if(n)throw new TypeError("Generator is already executing.");for(;e;)try{if(n=1,i&&(a=s[0]&2?i.return:s[0]?i.throw||((a=i.return)&&a.call(i),0):i.next)&&!(a=a.call(i,s[1])).done)return a;switch(i=0,a&&(s=[s[0]&2,a.value]),s[0]){case 0:case 1:a=s;break;case 4:return e.label++,{value:s[1],done:!1};case 5:e.label++,i=s[1],s=[0];continue;case 7:s=e.ops.pop(),e.trys.pop();continue;default:if(a=e.trys,!(a=a.length>0&&a[a.length-1])&&(s[0]===6||s[0]===2)){e=0;continue}if(s[0]===3&&(!a||s[1]>a[0]&&s[1]0&&n%1===0,"invalid connection throttle limit","connection.throttleLimit",n);var i=typeof t=="object"?t.throttleCallback:null,a=typeof t=="object"&&typeof t.throttleSlotInterval=="number"?t.throttleSlotInterval:100;It.assertArgument(a>0&&a%1===0,"invalid connection throttle slot interval","connection.throttleSlotInterval",a);var o=typeof t=="object"?!!t.errorPassThrough:!1,u={},l=null,s={method:"GET"},p=!1,_=2*60*1e3;if(typeof t=="string")l=t;else if(typeof t=="object"){if((t==null||t.url==null)&&It.throwArgumentError("missing URL","connection.url",t),l=t.url,typeof t.timeout=="number"&&t.timeout>0&&(_=t.timeout),t.headers)for(var E in t.headers)u[E.toLowerCase()]={key:E,value:String(t.headers[E])},["if-none-match","if-modified-since"].indexOf(E.toLowerCase())>=0&&(p=!0);if(s.allowGzip=!!t.allowGzip,t.user!=null&&t.password!=null){l.substring(0,6)!=="https:"&&t.allowInsecureAuthentication!==!0&&It.throwError("basic authentication requires a secure https url",Zn.Logger.errors.INVALID_ARGUMENT,{argument:"url",url:l,user:t.user,password:"[REDACTED]"});var C=t.user+":"+t.password;u.authorization={key:"Authorization",value:"Basic "+(0,Og.encode)((0,Ls.toUtf8Bytes)(C))}}t.skipFetchSetup!=null&&(s.skipFetchSetup=!!t.skipFetchSetup),t.fetchOptions!=null&&(s.fetchOptions=(0,$u.shallowCopy)(t.fetchOptions))}var P=new RegExp("^data:([^;:]*)?(;base64)?,(.*)$","i"),B=l?l.match(P):null;if(B)try{var J={statusCode:200,statusMessage:"OK",headers:{"content-type":B[1]||"text/plain"},body:B[2]?(0,Og.decode)(B[3]):qA(B[3])},R=J.body;return e&&(R=e(J.body,J)),Promise.resolve(R)}catch(V){It.throwError("processing response error",Zn.Logger.errors.SERVER_ERROR,{body:Ei(B[1],B[2]),error:V,requestBody:null,requestMethod:"GET",url:l})}r&&(s.method="POST",s.body=r,u["content-type"]==null&&(u["content-type"]={key:"Content-Type",value:"application/octet-stream"}),u["content-length"]==null&&(u["content-length"]={key:"Content-Length",value:String(r.length)}));var q={};Object.keys(u).forEach(function(V){var X=u[V];q[X.key]=X.value}),s.headers=q;var I=function(){var V=null,X=new Promise(function(K,H){_&&(V=setTimeout(function(){V!=null&&(V=null,H(It.makeError("timeout",Zn.Logger.errors.TIMEOUT,{requestBody:Ei(s.body,q["content-type"]),requestMethod:s.method,timeout:_,url:l})))},_))}),W=function(){V!=null&&(clearTimeout(V),V=null)};return{promise:X,cancel:W}}(),j=function(){return DA(this,void 0,void 0,function(){var V,X,W,f,K,H,T,b,A,v,f,d;return IA(this,function(g){switch(g.label){case 0:V=0,g.label=1;case 1:if(!(V=300)&&(I.cancel(),It.throwError("bad response",Zn.Logger.errors.SERVER_ERROR,{status:X.statusCode,headers:X.headers,body:Ei(b,X.headers?X.headers["content-type"]:null),requestBody:Ei(s.body,q["content-type"]),requestMethod:s.method,url:l})),!e)return[3,18];g.label=11;case 11:return g.trys.push([11,13,,18]),[4,e(b,X)];case 12:return A=g.sent(),I.cancel(),[2,A];case 13:return v=g.sent(),v.throttleRetry&&Vu){o()&&n(new Error("retry limit reached"));return}var _=r.interval*parseInt(String(Math.random()*Math.pow(2,l)));_r.ceiling&&(_=r.ceiling),setTimeout(s,_)}return null},function(p){o()&&n(p)})}s()})}Pt.poll=GA});var Dg=L((UT,Jg)=>{"use strict";var rc="qpzry9x8gf2tvdw0s3jn54khce6mua7l",Tl={};for(ks=0;ks>25;return(t&33554431)<<5^-(r>>0&1)&996825010^-(r>>1&1)&642813549^-(r>>2&1)&513874426^-(r>>3&1)&1027748829^-(r>>4&1)&705979059}function Rg(t){for(var r=1,e=0;e126)return"Invalid prefix ("+t+")";r=Eo(r)^n>>5}for(r=Eo(r),e=0;ee)throw new TypeError("Exceeds length limit");t=t.toLowerCase();var n=Rg(t);if(typeof n=="string")throw new Error(n);for(var i=t+"1",a=0;a>5!==0)throw new Error("Non 5-bit word");n=Eo(n)^o,i+=rc.charAt(o)}for(a=0;a<6;++a)n=Eo(n);for(n^=1,a=0;a<6;++a){var u=n>>(5-a)*5&31;i+=rc.charAt(u)}return i}function Ng(t,r){if(r=r||90,t.length<8)return t+" too short";if(t.length>r)return"Exceeds length limit";var e=t.toLowerCase(),n=t.toUpperCase();if(t!==e&&t!==n)return"Mixed-case string "+t;t=e;var i=t.lastIndexOf("1");if(i===-1)return"No separator character for "+t;if(i===0)return"Missing prefix for "+t;var a=t.slice(0,i),o=t.slice(i+1);if(o.length<6)return"Data too short";var u=Rg(a);if(typeof u=="string")return u;for(var l=[],s=0;s=o.length)&&l.push(_)}return u!==1?"Invalid checksum for "+t:{prefix:a,words:l}}function zA(){var t=Ng.apply(null,arguments);if(typeof t=="object")return t}function VA(t){var r=Ng.apply(null,arguments);if(typeof r=="object")return r;throw new Error(r)}function tc(t,r,e,n){for(var i=0,a=0,o=(1<=e;)a-=e,u.push(i>>a&o);if(n)a>0&&u.push(i<=r)return"Excess padding";if(i<{"use strict";Object.defineProperty(nc,"__esModule",{value:!0});nc.version=void 0;nc.version="providers/5.7.2"});var Ti=L(En=>{"use strict";Object.defineProperty(En,"__esModule",{value:!0});En.showThrottleMessage=En.isCommunityResource=En.isCommunityResourcable=En.Formatter=void 0;var Cl=pt(),Kn=hr(),Pn=De(),YA=ra(),$A=Ve(),Ig=zn(),ew=re(),rw=Rr(),Rs=new ew.Logger(rw.version),tw=function(){function t(){this.formats=this.getDefaultFormats()}return t.prototype.getDefaultFormats=function(){var r=this,e={},n=this.address.bind(this),i=this.bigNumber.bind(this),a=this.blockTag.bind(this),o=this.data.bind(this),u=this.hash.bind(this),l=this.hex.bind(this),s=this.number.bind(this),p=this.type.bind(this),_=function(E){return r.data(E,!0)};return e.transaction={hash:u,type:p,accessList:t.allowNull(this.accessList.bind(this),null),blockHash:t.allowNull(u,null),blockNumber:t.allowNull(s,null),transactionIndex:t.allowNull(s,null),confirmations:t.allowNull(s,null),from:n,gasPrice:t.allowNull(i),maxPriorityFeePerGas:t.allowNull(i),maxFeePerGas:t.allowNull(i),gasLimit:i,to:t.allowNull(n,null),value:i,nonce:s,data:o,r:t.allowNull(this.uint256),s:t.allowNull(this.uint256),v:t.allowNull(s),creates:t.allowNull(n,null),raw:t.allowNull(o)},e.transactionRequest={from:t.allowNull(n),nonce:t.allowNull(s),gasLimit:t.allowNull(i),gasPrice:t.allowNull(i),maxPriorityFeePerGas:t.allowNull(i),maxFeePerGas:t.allowNull(i),to:t.allowNull(n),value:t.allowNull(i),data:t.allowNull(_),type:t.allowNull(s),accessList:t.allowNull(this.accessList.bind(this),null)},e.receiptLog={transactionIndex:s,blockNumber:s,transactionHash:u,address:n,topics:t.arrayOf(u),data:o,logIndex:s,blockHash:u},e.receipt={to:t.allowNull(this.address,null),from:t.allowNull(this.address,null),contractAddress:t.allowNull(n,null),transactionIndex:s,root:t.allowNull(l),gasUsed:i,logsBloom:t.allowNull(o),blockHash:u,transactionHash:u,logs:t.arrayOf(this.receiptLog.bind(this)),blockNumber:s,confirmations:t.allowNull(s,null),cumulativeGasUsed:i,effectiveGasPrice:t.allowNull(i),status:t.allowNull(s),type:p},e.block={hash:t.allowNull(u),parentHash:u,number:s,timestamp:s,nonce:t.allowNull(l),difficulty:this.difficulty.bind(this),gasLimit:i,gasUsed:i,miner:t.allowNull(n),extraData:o,transactions:t.allowNull(t.arrayOf(u)),baseFeePerGas:t.allowNull(i)},e.blockWithTransactions=(0,$A.shallowCopy)(e.block),e.blockWithTransactions.transactions=t.allowNull(t.arrayOf(this.transactionResponse.bind(this))),e.filter={fromBlock:t.allowNull(a,void 0),toBlock:t.allowNull(a,void 0),blockHash:t.allowNull(u,void 0),address:t.allowNull(n,void 0),topics:t.allowNull(this.topics.bind(this),void 0)},e.filterLog={blockNumber:t.allowNull(s),blockHash:t.allowNull(u),transactionIndex:s,removed:t.allowNull(this.boolean.bind(this)),address:n,data:t.allowFalsish(o,"0x"),topics:t.arrayOf(u),transactionHash:u,logIndex:s},e},t.prototype.accessList=function(r){return(0,Ig.accessListify)(r||[])},t.prototype.number=function(r){return r==="0x"?0:Kn.BigNumber.from(r).toNumber()},t.prototype.type=function(r){return r==="0x"||r==null?0:Kn.BigNumber.from(r).toNumber()},t.prototype.bigNumber=function(r){return Kn.BigNumber.from(r)},t.prototype.boolean=function(r){if(typeof r=="boolean")return r;if(typeof r=="string"){if(r=r.toLowerCase(),r==="true")return!0;if(r==="false")return!1}throw new Error("invalid boolean - "+r)},t.prototype.hex=function(r,e){return typeof r=="string"&&(!e&&r.substring(0,2)!=="0x"&&(r="0x"+r),(0,Pn.isHexString)(r))?r.toLowerCase():Rs.throwArgumentError("invalid hash","value",r)},t.prototype.data=function(r,e){var n=this.hex(r,e);if(n.length%2!==0)throw new Error("invalid data; odd-length - "+r);return n},t.prototype.address=function(r){return(0,Cl.getAddress)(r)},t.prototype.callAddress=function(r){if(!(0,Pn.isHexString)(r,32))return null;var e=(0,Cl.getAddress)((0,Pn.hexDataSlice)(r,12));return e===YA.AddressZero?null:e},t.prototype.contractAddress=function(r){return(0,Cl.getContractAddress)(r)},t.prototype.blockTag=function(r){if(r==null)return"latest";if(r==="earliest")return"0x0";switch(r){case"earliest":return"0x0";case"latest":case"pending":case"safe":case"finalized":return r}if(typeof r=="number"||(0,Pn.isHexString)(r))return(0,Pn.hexValue)(r);throw new Error("invalid blockTag")},t.prototype.hash=function(r,e){var n=this.hex(r,e);return(0,Pn.hexDataLength)(n)!==32?Rs.throwArgumentError("invalid hash","value",r):n},t.prototype.difficulty=function(r){if(r==null)return null;var e=Kn.BigNumber.from(r);try{return e.toNumber()}catch{}return null},t.prototype.uint256=function(r){if(!(0,Pn.isHexString)(r))throw new Error("invalid uint256");return(0,Pn.hexZeroPad)(r,32)},t.prototype._block=function(r,e){r.author!=null&&r.miner==null&&(r.miner=r.author);var n=r._difficulty!=null?r._difficulty:r.difficulty,i=t.check(e,r);return i._difficulty=n==null?null:Kn.BigNumber.from(n),i},t.prototype.block=function(r){return this._block(r,this.formats.block)},t.prototype.blockWithTransactions=function(r){return this._block(r,this.formats.blockWithTransactions)},t.prototype.transactionRequest=function(r){return t.check(this.formats.transactionRequest,r)},t.prototype.transactionResponse=function(r){r.gas!=null&&r.gasLimit==null&&(r.gasLimit=r.gas),r.to&&Kn.BigNumber.from(r.to).isZero()&&(r.to="0x0000000000000000000000000000000000000000"),r.input!=null&&r.data==null&&(r.data=r.input),r.to==null&&r.creates==null&&(r.creates=this.contractAddress(r)),(r.type===1||r.type===2)&&r.accessList==null&&(r.accessList=[]);var e=t.check(this.formats.transaction,r);if(r.chainId!=null){var n=r.chainId;(0,Pn.isHexString)(n)&&(n=Kn.BigNumber.from(n).toNumber()),e.chainId=n}else{var n=r.networkId;n==null&&e.v==null&&(n=r.chainId),(0,Pn.isHexString)(n)&&(n=Kn.BigNumber.from(n).toNumber()),typeof n!="number"&&e.v!=null&&(n=(e.v-35)/2,n<0&&(n=0),n=parseInt(n)),typeof n!="number"&&(n=0),e.chainId=n}return e.blockHash&&e.blockHash.replace(/0/g,"")==="x"&&(e.blockHash=null),e},t.prototype.transaction=function(r){return(0,Ig.parse)(r)},t.prototype.receiptLog=function(r){return t.check(this.formats.receiptLog,r)},t.prototype.receipt=function(r){var e=t.check(this.formats.receipt,r);if(e.root!=null)if(e.root.length<=4){var n=Kn.BigNumber.from(e.root).toNumber();n===0||n===1?(e.status!=null&&e.status!==n&&Rs.throwArgumentError("alt-root-status/status mismatch","value",{root:e.root,status:e.status}),e.status=n,delete e.root):Rs.throwArgumentError("invalid alt-root-status","value.root",e.root)}else e.root.length!==66&&Rs.throwArgumentError("invalid root hash","value.root",e.root);return e.status!=null&&(e.byzantium=!0),e},t.prototype.topics=function(r){var e=this;return Array.isArray(r)?r.map(function(n){return e.topics(n)}):r!=null?this.hash(r,!0):null},t.prototype.filter=function(r){return t.check(this.formats.filter,r)},t.prototype.filterLog=function(r){return t.check(this.formats.filterLog,r)},t.check=function(r,e){var n={};for(var i in r)try{var a=r[i](e[i]);a!==void 0&&(n[i]=a)}catch(o){throw o.checkKey=i,o.checkValue=e[i],o}return n},t.allowNull=function(r,e){return function(n){return n==null?e:r(n)}},t.allowFalsish=function(r,e){return function(n){return n?r(n):e}},t.arrayOf=function(r){return function(e){if(!Array.isArray(e))throw new Error("not an array");var n=[];return e.forEach(function(i){n.push(r(i))}),n}},t}();En.Formatter=tw;function Hg(t){return t&&typeof t.isCommunityResource=="function"}En.isCommunityResourcable=Hg;function nw(t){return Hg(t)&&t.isCommunityResource()}En.isCommunityResource=nw;var Ug=!1;function iw(){Ug||(Ug=!0,console.log("========= NOTICE ========="),console.log("Request-Rate Exceeded (this message will not be repeated)"),console.log(""),console.log("The default API keys for each service are provided as a highly-throttled,"),console.log("community resource for low-traffic projects and early prototyping."),console.log(""),console.log("While your application will continue to function, we highly recommended"),console.log("signing up for your own API keys to improve performance, increase your"),console.log("request rate/limit and enable other perks, such as metrics and advanced APIs."),console.log(""),console.log("For more details: https://docs.ethers.io/api-keys/"),console.log("=========================="))}En.showThrottleMessage=iw});var Is=L(Vr=>{"use strict";var aw=Vr&&Vr.__extends||function(){var t=function(r,e){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,i){n.__proto__=i}||function(n,i){for(var a in i)Object.prototype.hasOwnProperty.call(i,a)&&(n[a]=i[a])},t(r,e)};return function(r,e){if(typeof e!="function"&&e!==null)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");t(r,e);function n(){this.constructor=r}r.prototype=e===null?Object.create(e):(n.prototype=e.prototype,new n)}}(),ke=Vr&&Vr.__awaiter||function(t,r,e,n){function i(a){return a instanceof e?a:new e(function(o){o(a)})}return new(e||(e=Promise))(function(a,o){function u(p){try{s(n.next(p))}catch(_){o(_)}}function l(p){try{s(n.throw(p))}catch(_){o(_)}}function s(p){p.done?a(p.value):i(p.value).then(u,l)}s((n=n.apply(t,r||[])).next())})},Re=Vr&&Vr.__generator||function(t,r){var e={label:0,sent:function(){if(a[0]&1)throw a[1];return a[1]},trys:[],ops:[]},n,i,a,o;return o={next:u(0),throw:u(1),return:u(2)},typeof Symbol=="function"&&(o[Symbol.iterator]=function(){return this}),o;function u(s){return function(p){return l([s,p])}}function l(s){if(n)throw new TypeError("Generator is already executing.");for(;e;)try{if(n=1,i&&(a=s[0]&2?i.return:s[0]?i.throw||((a=i.return)&&a.call(i),0):i.next)&&!(a=a.call(i,s[1])).done)return a;switch(i=0,a&&(s=[s[0]&2,a.value]),s[0]){case 0:case 1:a=s;break;case 4:return e.label++,{value:s[1],done:!1};case 5:e.label++,i=s[1],s=[0];continue;case 7:s=e.ops.pop(),e.trys.pop();continue;default:if(a=e.trys,!(a=a.length>0&&a[a.length-1])&&(s[0]===6||s[0]===2)){e=0;continue}if(s[0]===3&&(!a||s[1]>a[0]&&s[1]0&&t[t.length-1]==null;)t.pop();return t.map(function(r){if(Array.isArray(r)){var e={};r.forEach(function(i){e[jg(i)]=!0});var n=Object.keys(e);return n.sort(),n.join("|")}else return jg(r)}).join("&")}function dw(t){return t===""?[]:t.split(/&/g).map(function(r){if(r==="")return[];var e=r.split("|").map(function(n){return n==="null"?null:n});return e.length===1?e[0]:e})}function To(t){if(typeof t=="string"){if(t=t.toLowerCase(),(0,Le.hexDataLength)(t)===32)return"tx:"+t;if(t.indexOf(":")===-1)return t}else{if(Array.isArray(t))return"filter:*:"+zg(t);if(Wg.ForkEvent.isForkEvent(t))throw Ie.warn("not implemented"),new Error("not implemented");if(t&&typeof t=="object")return"filter:"+(t.address||"*")+":"+zg(t.topics||[])}throw new Error("invalid event - "+t)}function Ns(){return new Date().getTime()}function Vg(t){return new Promise(function(r){setTimeout(r,t)})}var hw=["block","network","pending","poll"],Yg=function(){function t(r,e,n){(0,lr.defineReadOnly)(this,"tag",r),(0,lr.defineReadOnly)(this,"listener",e),(0,lr.defineReadOnly)(this,"once",n),this._lastBlockNumber=-2,this._inflight=!1}return Object.defineProperty(t.prototype,"event",{get:function(){switch(this.type){case"tx":return this.hash;case"filter":return this.filter}return this.tag},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"type",{get:function(){return this.tag.split(":")[0]},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"hash",{get:function(){var r=this.tag.split(":");return r[0]!=="tx"?null:r[1]},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"filter",{get:function(){var r=this.tag.split(":");if(r[0]!=="filter")return null;var e=r[1],n=dw(r[2]),i={};return n.length>0&&(i.topics=n),e&&e!=="*"&&(i.address=e),i},enumerable:!1,configurable:!0}),t.prototype.pollable=function(){return this.tag.indexOf(":")>=0||hw.indexOf(this.tag)>=0},t}();Vr.Event=Yg;var bw={0:{symbol:"btc",p2pkh:0,p2sh:5,prefix:"bc"},2:{symbol:"ltc",p2pkh:48,p2sh:50,prefix:"ltc"},3:{symbol:"doge",p2pkh:30,p2sh:22},60:{symbol:"eth",ilk:"eth"},61:{symbol:"etc",ilk:"eth"},700:{symbol:"xdai",ilk:"eth"}};function Bl(t){return(0,Le.hexZeroPad)(zr.BigNumber.from(t).toHexString(),32)}function Zg(t){return Ll.Base58.encode((0,Le.concat)([t,(0,Le.hexDataSlice)((0,qg.sha256)((0,qg.sha256)(t)),0,4)]))}var $g=new RegExp("^(ipfs)://(.*)$","i"),Kg=[new RegExp("^(https)://(.*)$","i"),new RegExp("^(data):(.*)$","i"),$g,new RegExp("^eip155:[0-9]+/(erc[0-9]+):(.*)$","i")];function ic(t,r){try{return(0,kl.toUtf8String)(Ds(t,r))}catch{}return null}function Ds(t,r){if(t==="0x")return null;var e=zr.BigNumber.from((0,Le.hexDataSlice)(t,r,r+32)).toNumber(),n=zr.BigNumber.from((0,Le.hexDataSlice)(t,e,e+32)).toNumber();return(0,Le.hexDataSlice)(t,e+32,e+32+n)}function Ol(t){return t.match(/^ipfs:\/\/ipfs\//i)?t=t.substring(12):t.match(/^ipfs:\/\//i)?t=t.substring(7):Ie.throwArgumentError("unsupported IPFS format","link",t),"https://gateway.ipfs.io/ipfs/"+t}function Qg(t){var r=(0,Le.arrayify)(t);if(r.length>32)throw new Error("internal; should not happen");var e=new Uint8Array(32);return e.set(r,32-r.length),e}function pw(t){if(t.length%32===0)return t;var r=new Uint8Array(Math.ceil(t.length/32)*32);return r.set(t),r}function em(t){for(var r=[],e=0,n=0;n=1&&o<=75)return Zg((0,Le.concat)([[n.p2pkh],"0x"+a[2]]))}}if(n.p2sh!=null){var u=e.match(/^0xa9([0-9a-f][0-9a-f])([0-9a-f]*)87$/);if(u){var l=parseInt(u[1],16);if(u[2].length===l*2&&l>=1&&l<=75)return Zg((0,Le.concat)([[n.p2sh],"0x"+u[2]]))}}if(n.prefix!=null){var s=i[1],p=i[0];if(p===0?s!==20&&s!==32&&(p=-1):p=-1,p>=0&&i.length===2+s&&s>=1&&s<=75){var _=Xg.default.toWords(i.slice(2));return _.unshift(p),Xg.default.encode(n.prefix,_)}}return null},t.prototype.getAddress=function(r){return ke(this,void 0,void 0,function(){var e,n,i,a;return Re(this,function(o){switch(o.label){case 0:if(r==null&&(r=60),r!==60)return[3,4];o.label=1;case 1:return o.trys.push([1,3,,4]),[4,this._fetch("0x3b3b57de")];case 2:return e=o.sent(),e==="0x"||e===fw.HashZero?[2,null]:[2,this.provider.formatter.callAddress(e)];case 3:if(n=o.sent(),n.code===Ue.Logger.errors.CALL_EXCEPTION)return[2,null];throw n;case 4:return[4,this._fetchBytes("0xf1cb7e06",Bl(r))];case 5:return i=o.sent(),i==null||i==="0x"?[2,null]:(a=this._getAddress(r,i),a==null&&Ie.throwError("invalid or unsupported coin data",Ue.Logger.errors.UNSUPPORTED_OPERATION,{operation:"getAddress("+r+")",coinType:r,data:i}),[2,a])}})})},t.prototype.getAvatar=function(){return ke(this,void 0,void 0,function(){var r,e,n,i,a,o,u,l,s,p,_,E,C,P,B,J,R,q,I,j,V,X,W,K,H;return Re(this,function(T){switch(T.label){case 0:r=[{type:"name",content:this.name}],T.label=1;case 1:return T.trys.push([1,19,,20]),[4,this.getText("avatar")];case 2:if(e=T.sent(),e==null)return[2,null];n=0,T.label=3;case 3:if(!(n=0?null:JSON.stringify({data:o,sender:a}),[4,(0,Co.fetchJson)({url:p,errorPassThrough:!0},_,function(B,J){return B.status=J.statusCode,B})]):[3,4];case 2:if(E=P.sent(),E.data)return[2,E.data];if(C=E.message||"unknown error",E.status>=400&&E.status<500)return[2,Ie.throwError("response not found during CCIP fetch: "+C,Ue.Logger.errors.SERVER_ERROR,{url:s,errorMessage:C})];u.push(C),P.label=3;case 3:return l++,[3,1];case 4:return[2,Ie.throwError("error encountered during CCIP fetch: "+u.map(function(B){return JSON.stringify(B)}).join(", "),Ue.Logger.errors.SERVER_ERROR,{urls:i,errorMessages:u})]}})})},r.prototype._getInternalBlockNumber=function(e){return ke(this,void 0,void 0,function(){var n,i,a,o,u,l=this;return Re(this,function(s){switch(s.label){case 0:return[4,this._ready()];case 1:if(s.sent(),!(e>0))return[3,7];s.label=2;case 2:if(!this._internalBlockNumber)return[3,7];n=this._internalBlockNumber,s.label=3;case 3:return s.trys.push([3,5,,6]),[4,n];case 4:return i=s.sent(),Ns()-i.respTime<=e?[2,i.blockNumber]:[3,7];case 5:return a=s.sent(),this._internalBlockNumber===n?[3,7]:[3,6];case 6:return[3,2];case 7:return o=Ns(),u=(0,lr.resolveProperties)({blockNumber:this.perform("getBlockNumber",{}),networkError:this.getNetwork().then(function(p){return null},function(p){return p})}).then(function(p){var _=p.blockNumber,E=p.networkError;if(E)throw l._internalBlockNumber===u&&(l._internalBlockNumber=null),E;var C=Ns();return _=zr.BigNumber.from(_).toNumber(),_1e3)Ie.warn("network block skew detected; skipping block events (emitted="+this._emitted.block+" blockNumber"+i+")"),this.emit("error",Ie.makeError("network block skew detected",Ue.Logger.errors.NETWORK_ERROR,{blockNumber:i,event:"blockSkew",previousBlockNumber:this._emitted.block})),this.emit("block",i);else for(o=this._emitted.block+1;o<=i;o++)this.emit("block",o);return this._emitted.block!==i&&(this._emitted.block=i,Object.keys(this._emitted).forEach(function(s){if(s!=="block"){var p=u._emitted[s];p!=="pending"&&i-p>12&&delete u._emitted[s]}})),this._lastBlockNumber===-2&&(this._lastBlockNumber=i-1),this._events.forEach(function(s){switch(s.type){case"tx":{var p=s.hash,_=u.getTransactionReceipt(p).then(function(P){return!P||P.blockNumber==null||(u._emitted["t:"+p]=P.blockNumber,u.emit(p,P)),null}).catch(function(P){u.emit("error",P)});n.push(_);break}case"filter":{if(!s._inflight){s._inflight=!0,s._lastBlockNumber===-2&&(s._lastBlockNumber=i-1);var E=s.filter;E.fromBlock=s._lastBlockNumber+1,E.toBlock=i;var C=E.toBlock-u._maxFilterBlockRange;C>E.fromBlock&&(E.fromBlock=C),E.fromBlock<0&&(E.fromBlock=0);var _=u.getLogs(E).then(function(B){s._inflight=!1,B.length!==0&&B.forEach(function(J){J.blockNumber>s._lastBlockNumber&&(s._lastBlockNumber=J.blockNumber),u._emitted["b:"+J.blockHash]=J.blockNumber,u._emitted["t:"+J.transactionHash]=J.blockNumber,u.emit(E,J)})}).catch(function(B){u.emit("error",B),s._inflight=!1});n.push(_)}break}}}),this._lastBlockNumber=i,Promise.all(n).then(function(){u.emit("didPoll",e)}).catch(function(s){u.emit("error",s)}),[2]}})})},r.prototype.resetEventsBlock=function(e){this._lastBlockNumber=e-1,this.polling&&this.poll()},Object.defineProperty(r.prototype,"network",{get:function(){return this._network},enumerable:!1,configurable:!0}),r.prototype.detectNetwork=function(){return ke(this,void 0,void 0,function(){return Re(this,function(e){return[2,Ie.throwError("provider does not support network detection",Ue.Logger.errors.UNSUPPORTED_OPERATION,{operation:"provider.detectNetwork"})]})})},r.prototype.getNetwork=function(){return ke(this,void 0,void 0,function(){var e,n,i;return Re(this,function(a){switch(a.label){case 0:return[4,this._ready()];case 1:return e=a.sent(),[4,this.detectNetwork()];case 2:return n=a.sent(),e.chainId===n.chainId?[3,5]:this.anyNetwork?(this._network=n,this._lastBlockNumber=-2,this._fastBlockNumber=null,this._fastBlockNumberPromise=null,this._fastQueryDate=0,this._emitted.block=-2,this._maxInternalBlockNumber=-1024,this._internalBlockNumber=null,this.emit("network",n,e),[4,Vg(0)]):[3,4];case 3:return a.sent(),[2,this._network];case 4:throw i=Ie.makeError("underlying network changed",Ue.Logger.errors.NETWORK_ERROR,{event:"changed",network:e,detectedNetwork:n}),this.emit("error",i),i;case 5:return[2,e]}})})},Object.defineProperty(r.prototype,"blockNumber",{get:function(){var e=this;return this._getInternalBlockNumber(100+this.pollingInterval/2).then(function(n){e._setFastBlockNumber(n)},function(n){}),this._fastBlockNumber!=null?this._fastBlockNumber:-1},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"polling",{get:function(){return this._poller!=null},set:function(e){var n=this;e&&!this._poller?(this._poller=setInterval(function(){n.poll()},this.pollingInterval),this._bootstrapPoll||(this._bootstrapPoll=setTimeout(function(){n.poll(),n._bootstrapPoll=setTimeout(function(){n._poller||n.poll(),n._bootstrapPoll=null},n.pollingInterval)},0))):!e&&this._poller&&(clearInterval(this._poller),this._poller=null)},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"pollingInterval",{get:function(){return this._pollingInterval},set:function(e){var n=this;if(typeof e!="number"||e<=0||parseInt(String(e))!=e)throw new Error("invalid polling interval");this._pollingInterval=e,this._poller&&(clearInterval(this._poller),this._poller=setInterval(function(){n.poll()},this._pollingInterval))},enumerable:!1,configurable:!0}),r.prototype._getFastBlockNumber=function(){var e=this,n=Ns();return n-this._fastQueryDate>2*this._pollingInterval&&(this._fastQueryDate=n,this._fastBlockNumberPromise=this.getBlockNumber().then(function(i){return(e._fastBlockNumber==null||i>e._fastBlockNumber)&&(e._fastBlockNumber=i),e._fastBlockNumber})),this._fastBlockNumberPromise},r.prototype._setFastBlockNumber=function(e){this._fastBlockNumber!=null&&ethis._fastBlockNumber)&&(this._fastBlockNumber=e,this._fastBlockNumberPromise=Promise.resolve(e)))},r.prototype.waitForTransaction=function(e,n,i){return ke(this,void 0,void 0,function(){return Re(this,function(a){return[2,this._waitForTransaction(e,n??1,i||0,null)]})})},r.prototype._waitForTransaction=function(e,n,i,a){return ke(this,void 0,void 0,function(){var o,u=this;return Re(this,function(l){switch(l.label){case 0:return[4,this.getTransactionReceipt(e)];case 1:return o=l.sent(),(o?o.confirmations:0)>=n?[2,o]:[2,new Promise(function(s,p){var _=[],E=!1,C=function(){return E?!0:(E=!0,_.forEach(function(I){I()}),!1)},P=function(I){I.confirmations0){var q=setTimeout(function(){C()||p(Ie.makeError("timeout exceeded",Ue.Logger.errors.TIMEOUT,{timeout:i}))},i);q.unref&&q.unref(),_.push(function(){clearTimeout(q)})}})]}})})},r.prototype.getBlockNumber=function(){return ke(this,void 0,void 0,function(){return Re(this,function(e){return[2,this._getInternalBlockNumber(0)]})})},r.prototype.getGasPrice=function(){return ke(this,void 0,void 0,function(){var e;return Re(this,function(n){switch(n.label){case 0:return[4,this.getNetwork()];case 1:return n.sent(),[4,this.perform("getGasPrice",{})];case 2:e=n.sent();try{return[2,zr.BigNumber.from(e)]}catch(i){return[2,Ie.throwError("bad result from backend",Ue.Logger.errors.SERVER_ERROR,{method:"getGasPrice",result:e,error:i})]}return[2]}})})},r.prototype.getBalance=function(e,n){return ke(this,void 0,void 0,function(){var i,a;return Re(this,function(o){switch(o.label){case 0:return[4,this.getNetwork()];case 1:return o.sent(),[4,(0,lr.resolveProperties)({address:this._getAddress(e),blockTag:this._getBlockTag(n)})];case 2:return i=o.sent(),[4,this.perform("getBalance",i)];case 3:a=o.sent();try{return[2,zr.BigNumber.from(a)]}catch(u){return[2,Ie.throwError("bad result from backend",Ue.Logger.errors.SERVER_ERROR,{method:"getBalance",params:i,result:a,error:u})]}return[2]}})})},r.prototype.getTransactionCount=function(e,n){return ke(this,void 0,void 0,function(){var i,a;return Re(this,function(o){switch(o.label){case 0:return[4,this.getNetwork()];case 1:return o.sent(),[4,(0,lr.resolveProperties)({address:this._getAddress(e),blockTag:this._getBlockTag(n)})];case 2:return i=o.sent(),[4,this.perform("getTransactionCount",i)];case 3:a=o.sent();try{return[2,zr.BigNumber.from(a).toNumber()]}catch(u){return[2,Ie.throwError("bad result from backend",Ue.Logger.errors.SERVER_ERROR,{method:"getTransactionCount",params:i,result:a,error:u})]}return[2]}})})},r.prototype.getCode=function(e,n){return ke(this,void 0,void 0,function(){var i,a;return Re(this,function(o){switch(o.label){case 0:return[4,this.getNetwork()];case 1:return o.sent(),[4,(0,lr.resolveProperties)({address:this._getAddress(e),blockTag:this._getBlockTag(n)})];case 2:return i=o.sent(),[4,this.perform("getCode",i)];case 3:a=o.sent();try{return[2,(0,Le.hexlify)(a)]}catch(u){return[2,Ie.throwError("bad result from backend",Ue.Logger.errors.SERVER_ERROR,{method:"getCode",params:i,result:a,error:u})]}return[2]}})})},r.prototype.getStorageAt=function(e,n,i){return ke(this,void 0,void 0,function(){var a,o;return Re(this,function(u){switch(u.label){case 0:return[4,this.getNetwork()];case 1:return u.sent(),[4,(0,lr.resolveProperties)({address:this._getAddress(e),blockTag:this._getBlockTag(i),position:Promise.resolve(n).then(function(l){return(0,Le.hexValue)(l)})})];case 2:return a=u.sent(),[4,this.perform("getStorageAt",a)];case 3:o=u.sent();try{return[2,(0,Le.hexlify)(o)]}catch(l){return[2,Ie.throwError("bad result from backend",Ue.Logger.errors.SERVER_ERROR,{method:"getStorageAt",params:a,result:o,error:l})]}return[2]}})})},r.prototype._wrapTransaction=function(e,n,i){var a=this;if(n!=null&&(0,Le.hexDataLength)(n)!==32)throw new Error("invalid response - sendTransaction");var o=e;return n!=null&&e.hash!==n&&Ie.throwError("Transaction hash mismatch from Provider.sendTransaction.",Ue.Logger.errors.UNKNOWN_ERROR,{expectedHash:e.hash,returnedHash:n}),o.wait=function(u,l){return ke(a,void 0,void 0,function(){var s,p;return Re(this,function(_){switch(_.label){case 0:return u==null&&(u=1),l==null&&(l=0),s=void 0,u!==0&&i!=null&&(s={data:e.data,from:e.from,nonce:e.nonce,to:e.to,value:e.value,startBlock:i}),[4,this._waitForTransaction(e.hash,u,l,s)];case 1:return p=_.sent(),p==null&&u===0?[2,null]:(this._emitted["t:"+e.hash]=p.blockNumber,p.status===0&&Ie.throwError("transaction failed",Ue.Logger.errors.CALL_EXCEPTION,{transactionHash:e.hash,transaction:e,receipt:p}),[2,p])}})})},o},r.prototype.sendTransaction=function(e){return ke(this,void 0,void 0,function(){var n,i,a,o,u;return Re(this,function(l){switch(l.label){case 0:return[4,this.getNetwork()];case 1:return l.sent(),[4,Promise.resolve(e).then(function(s){return(0,Le.hexlify)(s)})];case 2:return n=l.sent(),i=this.formatter.transaction(e),i.confirmations==null&&(i.confirmations=0),[4,this._getInternalBlockNumber(100+2*this.pollingInterval)];case 3:a=l.sent(),l.label=4;case 4:return l.trys.push([4,6,,7]),[4,this.perform("sendTransaction",{signedTransaction:n})];case 5:return o=l.sent(),[2,this._wrapTransaction(i,o,a)];case 6:throw u=l.sent(),u.transaction=i,u.transactionHash=i.hash,u;case 7:return[2]}})})},r.prototype._getTransactionRequest=function(e){return ke(this,void 0,void 0,function(){var n,i,a,o,u=this;return Re(this,function(l){switch(l.label){case 0:return[4,e];case 1:return n=l.sent(),i={},["from","to"].forEach(function(s){n[s]!=null&&(i[s]=Promise.resolve(n[s]).then(function(p){return p?u._getAddress(p):null}))}),["gasLimit","gasPrice","maxFeePerGas","maxPriorityFeePerGas","value"].forEach(function(s){n[s]!=null&&(i[s]=Promise.resolve(n[s]).then(function(p){return p?zr.BigNumber.from(p):null}))}),["type"].forEach(function(s){n[s]!=null&&(i[s]=Promise.resolve(n[s]).then(function(p){return p??null}))}),n.accessList&&(i.accessList=this.formatter.accessList(n.accessList)),["data"].forEach(function(s){n[s]!=null&&(i[s]=Promise.resolve(n[s]).then(function(p){return p?(0,Le.hexlify)(p):null}))}),o=(a=this.formatter).transactionRequest,[4,(0,lr.resolveProperties)(i)];case 2:return[2,o.apply(a,[l.sent()])]}})})},r.prototype._getFilter=function(e){return ke(this,void 0,void 0,function(){var n,i,a,o=this;return Re(this,function(u){switch(u.label){case 0:return[4,e];case 1:return e=u.sent(),n={},e.address!=null&&(n.address=this._getAddress(e.address)),["blockHash","topics"].forEach(function(l){e[l]!=null&&(n[l]=e[l])}),["fromBlock","toBlock"].forEach(function(l){e[l]!=null&&(n[l]=o._getBlockTag(e[l]))}),a=(i=this.formatter).filter,[4,(0,lr.resolveProperties)(n)];case 2:return[2,a.apply(i,[u.sent()])]}})})},r.prototype._call=function(e,n,i){return ke(this,void 0,void 0,function(){var a,o,u,l,s,p,_,E,C,P,B,J,R,q,I,j;return Re(this,function(V){switch(V.label){case 0:return i>=lw&&Ie.throwError("CCIP read exceeded maximum redirections",Ue.Logger.errors.SERVER_ERROR,{redirects:i,transaction:e}),a=e.to,[4,this.perform("call",{transaction:e,blockTag:n})];case 1:if(o=V.sent(),!(i>=0&&n==="latest"&&a!=null&&o.substring(0,10)==="0x556f1830"&&(0,Le.hexDataLength)(o)%32===4))return[3,5];V.label=2;case 2:for(V.trys.push([2,4,,5]),u=(0,Le.hexDataSlice)(o,4),l=(0,Le.hexDataSlice)(u,0,32),zr.BigNumber.from(l).eq(a)||Ie.throwError("CCIP Read sender did not match",Ue.Logger.errors.CALL_EXCEPTION,{name:"OffchainLookup",signature:"OffchainLookup(address,string[],bytes,bytes4,bytes)",transaction:e,data:o}),s=[],p=zr.BigNumber.from((0,Le.hexDataSlice)(u,32,64)).toNumber(),_=zr.BigNumber.from((0,Le.hexDataSlice)(u,p,p+32)).toNumber(),E=(0,Le.hexDataSlice)(u,p+32),C=0;C<_;C++)P=ic(E,C*32),P==null&&Ie.throwError("CCIP Read contained corrupt URL string",Ue.Logger.errors.CALL_EXCEPTION,{name:"OffchainLookup",signature:"OffchainLookup(address,string[],bytes,bytes4,bytes)",transaction:e,data:o}),s.push(P);return B=Ds(u,64),zr.BigNumber.from((0,Le.hexDataSlice)(u,100,128)).isZero()||Ie.throwError("CCIP Read callback selector included junk",Ue.Logger.errors.CALL_EXCEPTION,{name:"OffchainLookup",signature:"OffchainLookup(address,string[],bytes,bytes4,bytes)",transaction:e,data:o}),J=(0,Le.hexDataSlice)(u,96,100),R=Ds(u,128),[4,this.ccipReadFetch(e,B,s)];case 3:return q=V.sent(),q==null&&Ie.throwError("CCIP Read disabled or provided no URLs",Ue.Logger.errors.CALL_EXCEPTION,{name:"OffchainLookup",signature:"OffchainLookup(address,string[],bytes,bytes4,bytes)",transaction:e,data:o}),I={to:a,data:(0,Le.hexConcat)([J,em([q,R])])},[2,this._call(I,n,i+1)];case 4:if(j=V.sent(),j.code===Ue.Logger.errors.SERVER_ERROR)throw j;return[3,5];case 5:try{return[2,(0,Le.hexlify)(o)]}catch(X){return[2,Ie.throwError("bad result from backend",Ue.Logger.errors.SERVER_ERROR,{method:"call",params:{transaction:e,blockTag:n},result:o,error:X})]}return[2]}})})},r.prototype.call=function(e,n){return ke(this,void 0,void 0,function(){var i;return Re(this,function(a){switch(a.label){case 0:return[4,this.getNetwork()];case 1:return a.sent(),[4,(0,lr.resolveProperties)({transaction:this._getTransactionRequest(e),blockTag:this._getBlockTag(n),ccipReadEnabled:Promise.resolve(e.ccipReadEnabled)})];case 2:return i=a.sent(),[2,this._call(i.transaction,i.blockTag,i.ccipReadEnabled?0:-1)]}})})},r.prototype.estimateGas=function(e){return ke(this,void 0,void 0,function(){var n,i;return Re(this,function(a){switch(a.label){case 0:return[4,this.getNetwork()];case 1:return a.sent(),[4,(0,lr.resolveProperties)({transaction:this._getTransactionRequest(e)})];case 2:return n=a.sent(),[4,this.perform("estimateGas",n)];case 3:i=a.sent();try{return[2,zr.BigNumber.from(i)]}catch(o){return[2,Ie.throwError("bad result from backend",Ue.Logger.errors.SERVER_ERROR,{method:"estimateGas",params:n,result:i,error:o})]}return[2]}})})},r.prototype._getAddress=function(e){return ke(this,void 0,void 0,function(){var n;return Re(this,function(i){switch(i.label){case 0:return[4,e];case 1:return e=i.sent(),typeof e!="string"&&Ie.throwArgumentError("invalid address or ENS name","name",e),[4,this.resolveName(e)];case 2:return n=i.sent(),n==null&&Ie.throwError("ENS name not configured",Ue.Logger.errors.UNSUPPORTED_OPERATION,{operation:"resolveName("+JSON.stringify(e)+")"}),[2,n]}})})},r.prototype._getBlock=function(e,n){return ke(this,void 0,void 0,function(){var i,a,o,u,l=this;return Re(this,function(s){switch(s.label){case 0:return[4,this.getNetwork()];case 1:return s.sent(),[4,e];case 2:return e=s.sent(),i=-128,a={includeTransactions:!!n},(0,Le.isHexString)(e,32)?(a.blockHash=e,[3,6]):[3,3];case 3:return s.trys.push([3,5,,6]),o=a,[4,this._getBlockTag(e)];case 4:return o.blockTag=s.sent(),(0,Le.isHexString)(a.blockTag)&&(i=parseInt(a.blockTag.substring(2),16)),[3,6];case 5:return u=s.sent(),Ie.throwArgumentError("invalid block hash or block tag","blockHashOrBlockTag",e),[3,6];case 6:return[2,(0,Co.poll)(function(){return ke(l,void 0,void 0,function(){var p,_,E,C,P,B,J=this;return Re(this,function(R){switch(R.label){case 0:return[4,this.perform("getBlock",a)];case 1:if(p=R.sent(),p==null)return a.blockHash!=null&&this._emitted["b:"+a.blockHash]==null?[2,null]:a.blockTag!=null&&i>this._emitted.block?[2,null]:[2,void 0];if(!n)return[3,8];_=null,E=0,R.label=2;case 2:return E0},r.prototype._stopEvent=function(e){this.polling=this._events.filter(function(n){return n.pollable()}).length>0},r.prototype._addEventListener=function(e,n,i){var a=new Yg(To(e),n,i);return this._events.push(a),this._startEvent(a),this},r.prototype.on=function(e,n){return this._addEventListener(e,n,!1)},r.prototype.once=function(e,n){return this._addEventListener(e,n,!0)},r.prototype.emit=function(e){for(var n=this,i=[],a=1;a{"use strict";var Dl=Et&&Et.__extends||function(){var t=function(r,e){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,i){n.__proto__=i}||function(n,i){for(var a in i)Object.prototype.hasOwnProperty.call(i,a)&&(n[a]=i[a])},t(r,e)};return function(r,e){if(typeof e!="function"&&e!==null)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");t(r,e);function n(){this.constructor=r}r.prototype=e===null?Object.create(e):(n.prototype=e.prototype,new n)}}(),Qn=Et&&Et.__awaiter||function(t,r,e,n){function i(a){return a instanceof e?a:new e(function(o){o(a)})}return new(e||(e=Promise))(function(a,o){function u(p){try{s(n.next(p))}catch(_){o(_)}}function l(p){try{s(n.throw(p))}catch(_){o(_)}}function s(p){p.done?a(p.value):i(p.value).then(u,l)}s((n=n.apply(t,r||[])).next())})},Wn=Et&&Et.__generator||function(t,r){var e={label:0,sent:function(){if(a[0]&1)throw a[1];return a[1]},trys:[],ops:[]},n,i,a,o;return o={next:u(0),throw:u(1),return:u(2)},typeof Symbol=="function"&&(o[Symbol.iterator]=function(){return this}),o;function u(s){return function(p){return l([s,p])}}function l(s){if(n)throw new TypeError("Generator is already executing.");for(;e;)try{if(n=1,i&&(a=s[0]&2?i.return:s[0]?i.throw||((a=i.return)&&a.call(i),0):i.next)&&!(a=a.call(i,s[1])).done)return a;switch(i=0,a&&(s=[s[0]&2,a.value]),s[0]){case 0:case 1:a=s;break;case 4:return e.label++,{value:s[1],done:!1};case 5:e.label++,i=s[1],s=[0];continue;case 7:s=e.ops.pop(),e.trys.pop();continue;default:if(a=e.trys,!(a=a.length>0&&a[a.length-1])&&(s[0]===6||s[0]===2)){e=0;continue}if(s[0]===3&&(!a||s[1]>a[0]&&s[1]=0&&a.match(/gas required exceeds allowance|always failing transaction|execution reverted|revert/)&&xr.throwError("cannot estimate gas; transaction may fail or may require manual gas limit",yr.Logger.errors.UNPREDICTABLE_GAS_LIMIT,{error:r,method:t,transaction:n}),r}function nm(t){return new Promise(function(r){setTimeout(r,t)})}function _w(t){if(t.error){var r=new Error(t.error.message);throw r.code=t.error.code,r.data=t.error.data,r}return t.result}function Us(t){return t&&t.toLowerCase()}var Jl={},Il=function(t){Dl(r,t);function r(e,n,i){var a=t.call(this)||this;if(e!==Jl)throw new Error("do not call the JsonRpcSigner constructor directly; use provider.getSigner");return(0,dr.defineReadOnly)(a,"provider",n),i==null&&(i=0),typeof i=="string"?((0,dr.defineReadOnly)(a,"_address",a.provider.formatter.address(i)),(0,dr.defineReadOnly)(a,"_index",null)):typeof i=="number"?((0,dr.defineReadOnly)(a,"_index",i),(0,dr.defineReadOnly)(a,"_address",null)):xr.throwArgumentError("invalid address or index","addressOrIndex",i),a}return r.prototype.connect=function(e){return xr.throwError("cannot alter JSON-RPC Signer connection",yr.Logger.errors.UNSUPPORTED_OPERATION,{operation:"connect"})},r.prototype.connectUnchecked=function(){return new Sw(Jl,this.provider,this._address||this._index)},r.prototype.getAddress=function(){var e=this;return this._address?Promise.resolve(this._address):this.provider.send("eth_accounts",[]).then(function(n){return n.length<=e._index&&xr.throwError("unknown account #"+e._index,yr.Logger.errors.UNSUPPORTED_OPERATION,{operation:"getAddress"}),e.provider.formatter.address(n[e._index])})},r.prototype.sendUncheckedTransaction=function(e){var n=this;e=(0,dr.shallowCopy)(e);var i=this.getAddress().then(function(o){return o&&(o=o.toLowerCase()),o});if(e.gasLimit==null){var a=(0,dr.shallowCopy)(e);a.from=i,e.gasLimit=this.provider.estimateGas(a)}return e.to!=null&&(e.to=Promise.resolve(e.to).then(function(o){return Qn(n,void 0,void 0,function(){var u;return Wn(this,function(l){switch(l.label){case 0:return o==null?[2,null]:[4,this.provider.resolveName(o)];case 1:return u=l.sent(),u==null&&xr.throwArgumentError("provided ENS name resolves to null","tx.to",o),[2,u]}})})})),(0,dr.resolveProperties)({tx:(0,dr.resolveProperties)(e),sender:i}).then(function(o){var u=o.tx,l=o.sender;u.from!=null?u.from.toLowerCase()!==l&&xr.throwArgumentError("from address mismatch","transaction",e):u.from=l;var s=n.provider.constructor.hexlifyTransaction(u,{from:!0});return n.provider.send("eth_sendTransaction",[s]).then(function(p){return p},function(p){return typeof p.message=="string"&&p.message.match(/user denied/i)&&xr.throwError("user rejected transaction",yr.Logger.errors.ACTION_REJECTED,{action:"sendTransaction",transaction:u}),am("sendTransaction",p,s)})})},r.prototype.signTransaction=function(e){return xr.throwError("signing transactions is unsupported",yr.Logger.errors.UNSUPPORTED_OPERATION,{operation:"signTransaction"})},r.prototype.sendTransaction=function(e){return Qn(this,void 0,void 0,function(){var n,i,a,o=this;return Wn(this,function(u){switch(u.label){case 0:return[4,this.provider._getInternalBlockNumber(100+2*this.provider.pollingInterval)];case 1:return n=u.sent(),[4,this.sendUncheckedTransaction(e)];case 2:i=u.sent(),u.label=3;case 3:return u.trys.push([3,5,,6]),[4,(0,im.poll)(function(){return Qn(o,void 0,void 0,function(){var l;return Wn(this,function(s){switch(s.label){case 0:return[4,this.provider.getTransaction(i)];case 1:return l=s.sent(),l===null?[2,void 0]:[2,this.provider._wrapTransaction(l,i,n)]}})})},{oncePoll:this.provider})];case 4:return[2,u.sent()];case 5:throw a=u.sent(),a.transactionHash=i,a;case 6:return[2]}})})},r.prototype.signMessage=function(e){return Qn(this,void 0,void 0,function(){var n,i,a;return Wn(this,function(o){switch(o.label){case 0:return n=typeof e=="string"?(0,tm.toUtf8Bytes)(e):e,[4,this.getAddress()];case 1:i=o.sent(),o.label=2;case 2:return o.trys.push([2,4,,5]),[4,this.provider.send("personal_sign",[(0,Bo.hexlify)(n),i.toLowerCase()])];case 3:return[2,o.sent()];case 4:throw a=o.sent(),typeof a.message=="string"&&a.message.match(/user denied/i)&&xr.throwError("user rejected signing",yr.Logger.errors.ACTION_REJECTED,{action:"signMessage",from:i,messageData:e}),a;case 5:return[2]}})})},r.prototype._legacySignMessage=function(e){return Qn(this,void 0,void 0,function(){var n,i,a;return Wn(this,function(o){switch(o.label){case 0:return n=typeof e=="string"?(0,tm.toUtf8Bytes)(e):e,[4,this.getAddress()];case 1:i=o.sent(),o.label=2;case 2:return o.trys.push([2,4,,5]),[4,this.provider.send("eth_sign",[i.toLowerCase(),(0,Bo.hexlify)(n)])];case 3:return[2,o.sent()];case 4:throw a=o.sent(),typeof a.message=="string"&&a.message.match(/user denied/i)&&xr.throwError("user rejected signing",yr.Logger.errors.ACTION_REJECTED,{action:"_legacySignMessage",from:i,messageData:e}),a;case 5:return[2]}})})},r.prototype._signTypedData=function(e,n,i){return Qn(this,void 0,void 0,function(){var a,o,u,l=this;return Wn(this,function(s){switch(s.label){case 0:return[4,rm._TypedDataEncoder.resolveNames(e,n,i,function(p){return l.provider.resolveName(p)})];case 1:return a=s.sent(),[4,this.getAddress()];case 2:o=s.sent(),s.label=3;case 3:return s.trys.push([3,5,,6]),[4,this.provider.send("eth_signTypedData_v4",[o.toLowerCase(),JSON.stringify(rm._TypedDataEncoder.getPayload(a.domain,n,a.value))])];case 4:return[2,s.sent()];case 5:throw u=s.sent(),typeof u.message=="string"&&u.message.match(/user denied/i)&&xr.throwError("user rejected signing",yr.Logger.errors.ACTION_REJECTED,{action:"_signTypedData",from:o,messageData:{domain:a.domain,types:n,value:a.value}}),u;case 6:return[2]}})})},r.prototype.unlock=function(e){return Qn(this,void 0,void 0,function(){var n,i;return Wn(this,function(a){switch(a.label){case 0:return n=this.provider,[4,this.getAddress()];case 1:return i=a.sent(),[2,n.send("personal_unlockAccount",[i.toLowerCase(),e,null])]}})})},r}(mw.Signer);Et.JsonRpcSigner=Il;var Sw=function(t){Dl(r,t);function r(){return t!==null&&t.apply(this,arguments)||this}return r.prototype.sendTransaction=function(e){var n=this;return this.sendUncheckedTransaction(e).then(function(i){return{hash:i,nonce:null,gasLimit:null,gasPrice:null,data:null,value:null,chainId:null,confirmations:0,from:null,wait:function(a){return n.provider.waitForTransaction(i,a)}}})},r}(Il),Mw={chainId:!0,data:!0,gasLimit:!0,gasPrice:!0,nonce:!0,to:!0,value:!0,type:!0,accessList:!0,maxFeePerGas:!0,maxPriorityFeePerGas:!0},Pw=function(t){Dl(r,t);function r(e,n){var i=this,a=n;return a==null&&(a=new Promise(function(o,u){setTimeout(function(){i.detectNetwork().then(function(l){o(l)},function(l){u(l)})},0)})),i=t.call(this,a)||this,e||(e=(0,dr.getStatic)(i.constructor,"defaultUrl")()),typeof e=="string"?(0,dr.defineReadOnly)(i,"connection",Object.freeze({url:e})):(0,dr.defineReadOnly)(i,"connection",Object.freeze((0,dr.shallowCopy)(e))),i._nextId=42,i}return Object.defineProperty(r.prototype,"_cache",{get:function(){return this._eventLoopCache==null&&(this._eventLoopCache={}),this._eventLoopCache},enumerable:!1,configurable:!0}),r.defaultUrl=function(){return"http://localhost:8545"},r.prototype.detectNetwork=function(){var e=this;return this._cache.detectNetwork||(this._cache.detectNetwork=this._uncachedDetectNetwork(),setTimeout(function(){e._cache.detectNetwork=null},0)),this._cache.detectNetwork},r.prototype._uncachedDetectNetwork=function(){return Qn(this,void 0,void 0,function(){var e,n,i,a;return Wn(this,function(o){switch(o.label){case 0:return[4,nm(0)];case 1:o.sent(),e=null,o.label=2;case 2:return o.trys.push([2,4,,9]),[4,this.send("eth_chainId",[])];case 3:return e=o.sent(),[3,9];case 4:n=o.sent(),o.label=5;case 5:return o.trys.push([5,7,,8]),[4,this.send("net_version",[])];case 6:return e=o.sent(),[3,8];case 7:return i=o.sent(),[3,8];case 8:return[3,9];case 9:if(e!=null){a=(0,dr.getStatic)(this.constructor,"getNetwork");try{return[2,a(Nl.BigNumber.from(e).toNumber())]}catch(u){return[2,xr.throwError("could not detect network",yr.Logger.errors.NETWORK_ERROR,{chainId:e,event:"invalidNetwork",serverError:u})]}}return[2,xr.throwError("could not detect network",yr.Logger.errors.NETWORK_ERROR,{event:"noNetwork"})]}})})},r.prototype.getSigner=function(e){return new Il(Jl,this,e)},r.prototype.getUncheckedSigner=function(e){return this.getSigner(e).connectUnchecked()},r.prototype.listAccounts=function(){var e=this;return this.send("eth_accounts",[]).then(function(n){return n.map(function(i){return e.formatter.address(i)})})},r.prototype.send=function(e,n){var i=this,a={method:e,params:n,id:this._nextId++,jsonrpc:"2.0"};this.emit("debug",{action:"request",request:(0,dr.deepCopy)(a),provider:this});var o=["eth_chainId","eth_blockNumber"].indexOf(e)>=0;if(o&&this._cache[e])return this._cache[e];var u=(0,im.fetchJson)(this.connection,JSON.stringify(a),_w).then(function(l){return i.emit("debug",{action:"response",request:a,response:l,provider:i}),l},function(l){throw i.emit("debug",{action:"response",error:l,request:a,provider:i}),l});return o&&(this._cache[e]=u,setTimeout(function(){i._cache[e]=null},0)),u},r.prototype.prepareRequest=function(e,n){switch(e){case"getBlockNumber":return["eth_blockNumber",[]];case"getGasPrice":return["eth_gasPrice",[]];case"getBalance":return["eth_getBalance",[Us(n.address),n.blockTag]];case"getTransactionCount":return["eth_getTransactionCount",[Us(n.address),n.blockTag]];case"getCode":return["eth_getCode",[Us(n.address),n.blockTag]];case"getStorageAt":return["eth_getStorageAt",[Us(n.address),(0,Bo.hexZeroPad)(n.position,32),n.blockTag]];case"sendTransaction":return["eth_sendRawTransaction",[n.signedTransaction]];case"getBlock":return n.blockTag?["eth_getBlockByNumber",[n.blockTag,!!n.includeTransactions]]:n.blockHash?["eth_getBlockByHash",[n.blockHash,!!n.includeTransactions]]:null;case"getTransaction":return["eth_getTransactionByHash",[n.transactionHash]];case"getTransactionReceipt":return["eth_getTransactionReceipt",[n.transactionHash]];case"call":{var i=(0,dr.getStatic)(this.constructor,"hexlifyTransaction");return["eth_call",[i(n.transaction,{from:!0}),n.blockTag]]}case"estimateGas":{var i=(0,dr.getStatic)(this.constructor,"hexlifyTransaction");return["eth_estimateGas",[i(n.transaction,{from:!0})]]}case"getLogs":return n.filter&&n.filter.address!=null&&(n.filter.address=Us(n.filter.address)),["eth_getLogs",[n.filter]];default:break}return null},r.prototype.perform=function(e,n){return Qn(this,void 0,void 0,function(){var i,a,o,u;return Wn(this,function(l){switch(l.label){case 0:return e==="call"||e==="estimateGas"?(i=n.transaction,i&&i.type!=null&&Nl.BigNumber.from(i.type).isZero()?i.maxFeePerGas==null&&i.maxPriorityFeePerGas==null?[4,this.getFeeData()]:[3,2]:[3,2]):[3,2];case 1:a=l.sent(),a.maxFeePerGas==null&&a.maxPriorityFeePerGas==null&&(n=(0,dr.shallowCopy)(n),n.transaction=(0,dr.shallowCopy)(i),delete n.transaction.type),l.label=2;case 2:o=this.prepareRequest(e,n),o==null&&xr.throwError(e+" not implemented",yr.Logger.errors.NOT_IMPLEMENTED,{operation:e}),l.label=3;case 3:return l.trys.push([3,5,,6]),[4,this.send(o[0],o[1])];case 4:return[2,l.sent()];case 5:return u=l.sent(),[2,am(e,u,n)];case 6:return[2]}})})},r.prototype._startEvent=function(e){e.tag==="pending"&&this._startPending(),t.prototype._startEvent.call(this,e)},r.prototype._startPending=function(){if(this._pendingFilter==null){var e=this,n=this.send("eth_newPendingTransactionFilter",[]);this._pendingFilter=n,n.then(function(i){function a(){e.send("eth_getFilterChanges",[i]).then(function(o){if(e._pendingFilter!=n)return null;var u=Promise.resolve();return o.forEach(function(l){e._emitted["t:"+l.toLowerCase()]="pending",u=u.then(function(){return e.getTransaction(l).then(function(s){return e.emit("pending",s),null})})}),u.then(function(){return nm(1e3)})}).then(function(){if(e._pendingFilter!=n){e.send("eth_uninstallFilter",[i]);return}return setTimeout(function(){a()},0),null}).catch(function(o){})}return a(),i}).catch(function(i){})}},r.prototype._stopEvent=function(e){e.tag==="pending"&&this.listenerCount("pending")===0&&(this._pendingFilter=null),t.prototype._stopEvent.call(this,e)},r.hexlifyTransaction=function(e,n){var i=(0,dr.shallowCopy)(Mw);if(n)for(var a in n)n[a]&&(i[a]=!0);(0,dr.checkProperties)(e,i);var o={};return["chainId","gasLimit","gasPrice","type","maxFeePerGas","maxPriorityFeePerGas","nonce","value"].forEach(function(u){if(e[u]!=null){var l=(0,Bo.hexValue)(Nl.BigNumber.from(e[u]));u==="gasLimit"&&(u="gas"),o[u]=l}}),["from","to","data"].forEach(function(u){e[u]!=null&&(o[u]=(0,Bo.hexlify)(e[u]))}),e.accessList&&(o.accessList=(0,xw.accessListify)(e.accessList)),o},r}(Aw.BaseProvider);Et.JsonRpcProvider=Pw});var _a=L((jT,om)=>{"use strict";om.exports={BINARY_TYPES:["nodebuffer","arraybuffer","fragments"],GUID:"258EAFA5-E914-47DA-95CA-C5AB0DC85B11",kStatusCode:Symbol("status-code"),kWebSocket:Symbol("websocket"),EMPTY_BUFFER:Buffer.alloc(0),NOOP:()=>{}}});var jl=L((zT,Am)=>{var cm=require("fs"),Yn=require("path"),lm=require("os"),dm=typeof __webpack_require__=="function"?__non_webpack_require__:require,Ew=process.config&&process.config.variables||{},Tw=!!process.env.PREBUILDS_ONLY,sm=process.versions.modules,Ul=Bw()?"electron":"node",Hl=lm.arch(),ql=lm.platform(),hm=process.env.LIBC||(Ow(ql)?"musl":"glibc"),Xl=process.env.ARM_VERSION||(Hl==="arm64"?"8":Ew.arm_version)||"",bm=(process.versions.uv||"").split(".")[0];Am.exports=$n;function $n(t){return dm($n.path(t))}$n.path=function(t){t=Yn.resolve(t||".");try{var r=dm(Yn.join(t,"package.json")).name.toUpperCase().replace(/-/g,"_");process.env[r+"_PREBUILD"]&&(t=process.env[r+"_PREBUILD"])}catch{}if(!Tw){var e=fm(Yn.join(t,"build/Release"),um);if(e)return e;var n=fm(Yn.join(t,"build/Debug"),um);if(n)return n}var i=u(t);if(i)return i;var a=u(Yn.dirname(process.execPath));if(a)return a;var o=["platform="+ql,"arch="+Hl,"runtime="+Ul,"abi="+sm,"uv="+bm,Xl?"armv="+Xl:"","libc="+hm,"node="+process.versions.node,process.versions.electron?"electron="+process.versions.electron:"",typeof __webpack_require__=="function"?"webpack=true":""].filter(Boolean).join(" ");throw new Error("No native build was found for "+o+` + loaded from: `+t+` +`);function u(l){var s=Gl(Yn.join(l,"prebuilds")).map(pm),p=s.filter(vm(ql,Hl)).sort(gm)[0];if(!!p){var _=Yn.join(l,"prebuilds",p.name),E=Gl(_).map(mm),C=E.filter(xm(Ul,sm)),P=C.sort(ym(Ul))[0];if(P)return Yn.join(_,P.file)}}};function Gl(t){try{return cm.readdirSync(t)}catch{return[]}}function fm(t,r){var e=Gl(t).filter(r);return e[0]&&Yn.join(t,e[0])}function um(t){return/\.node$/.test(t)}function pm(t){var r=t.split("-");if(r.length===2){var e=r[0],n=r[1].split("+");if(!!e&&!!n.length&&!!n.every(Boolean))return{name:t,platform:e,architectures:n}}}function vm(t,r){return function(e){return e==null||e.platform!==t?!1:e.architectures.includes(r)}}function gm(t,r){return t.architectures.length-r.architectures.length}function mm(t){var r=t.split("."),e=r.pop(),n={file:t,specificity:0};if(e==="node"){for(var i=0;ie.specificity?-1:1:0}}function Bw(){return process.versions&&process.versions.electron||process.env.ELECTRON_RUN_AS_NODE?!0:typeof window<"u"&&window.process&&window.process.type==="renderer"}function Ow(t){return t==="linux"&&cm.existsSync("/etc/alpine-release")}$n.parseTags=mm;$n.matchTags=xm;$n.compareTags=ym;$n.parseTuple=pm;$n.matchTuple=vm;$n.compareTuples=gm});var _m=L((VT,wm)=>{"use strict";var Fw=(t,r,e,n,i)=>{for(var a=0;a{let e=t.length;for(var n=0;n{"use strict";try{zl.exports=jl()(__dirname)}catch{zl.exports=_m()}});var qs=L((KT,Vl)=>{"use strict";var{EMPTY_BUFFER:kw}=_a();function Mm(t,r){if(t.length===0)return kw;if(t.length===1)return t[0];let e=Buffer.allocUnsafe(r),n=0;for(let i=0;i{"use strict";var Cm=Symbol("kDone"),Zl=Symbol("kRun"),Kl=class{constructor(r){this[Cm]=()=>{this.pending--,this[Zl]()},this.concurrency=r||1/0,this.jobs=[],this.pending=0}add(r){this.jobs.push(r),this[Zl]()}[Zl](){if(this.pending!==this.concurrency&&this.jobs.length){let r=this.jobs.shift();this.pending++,r(this[Cm])}}};Bm.exports=Kl});var js=L((WT,Rm)=>{"use strict";var Xs=require("zlib"),Fm=qs(),Rw=Om(),{kStatusCode:Lm,NOOP:Nw}=_a(),Jw=Buffer.from([0,0,255,255]),sc=Symbol("permessage-deflate"),ei=Symbol("total-length"),Gs=Symbol("callback"),Ci=Symbol("buffers"),Ql=Symbol("error"),oc,Wl=class{constructor(r,e,n){if(this._maxPayload=n|0,this._options=r||{},this._threshold=this._options.threshold!==void 0?this._options.threshold:1024,this._isServer=!!e,this._deflate=null,this._inflate=null,this.params=null,!oc){let i=this._options.concurrencyLimit!==void 0?this._options.concurrencyLimit:10;oc=new Rw(i)}}static get extensionName(){return"permessage-deflate"}offer(){let r={};return this._options.serverNoContextTakeover&&(r.server_no_context_takeover=!0),this._options.clientNoContextTakeover&&(r.client_no_context_takeover=!0),this._options.serverMaxWindowBits&&(r.server_max_window_bits=this._options.serverMaxWindowBits),this._options.clientMaxWindowBits?r.client_max_window_bits=this._options.clientMaxWindowBits:this._options.clientMaxWindowBits==null&&(r.client_max_window_bits=!0),r}accept(r){return r=this.normalizeParams(r),this.params=this._isServer?this.acceptAsServer(r):this.acceptAsClient(r),this.params}cleanup(){if(this._inflate&&(this._inflate.close(),this._inflate=null),this._deflate){let r=this._deflate[Gs];this._deflate.close(),this._deflate=null,r&&r(new Error("The deflate stream was closed while data was being processed"))}}acceptAsServer(r){let e=this._options,n=r.find(i=>!(e.serverNoContextTakeover===!1&&i.server_no_context_takeover||i.server_max_window_bits&&(e.serverMaxWindowBits===!1||typeof e.serverMaxWindowBits=="number"&&e.serverMaxWindowBits>i.server_max_window_bits)||typeof e.clientMaxWindowBits=="number"&&!i.client_max_window_bits));if(!n)throw new Error("None of the extension offers can be accepted");return e.serverNoContextTakeover&&(n.server_no_context_takeover=!0),e.clientNoContextTakeover&&(n.client_no_context_takeover=!0),typeof e.serverMaxWindowBits=="number"&&(n.server_max_window_bits=e.serverMaxWindowBits),typeof e.clientMaxWindowBits=="number"?n.client_max_window_bits=e.clientMaxWindowBits:(n.client_max_window_bits===!0||e.clientMaxWindowBits===!1)&&delete n.client_max_window_bits,n}acceptAsClient(r){let e=r[0];if(this._options.clientNoContextTakeover===!1&&e.client_no_context_takeover)throw new Error('Unexpected parameter "client_no_context_takeover"');if(!e.client_max_window_bits)typeof this._options.clientMaxWindowBits=="number"&&(e.client_max_window_bits=this._options.clientMaxWindowBits);else if(this._options.clientMaxWindowBits===!1||typeof this._options.clientMaxWindowBits=="number"&&e.client_max_window_bits>this._options.clientMaxWindowBits)throw new Error('Unexpected or invalid parameter "client_max_window_bits"');return e}normalizeParams(r){return r.forEach(e=>{Object.keys(e).forEach(n=>{let i=e[n];if(i.length>1)throw new Error(`Parameter "${n}" must have only a single value`);if(i=i[0],n==="client_max_window_bits"){if(i!==!0){let a=+i;if(!Number.isInteger(a)||a<8||a>15)throw new TypeError(`Invalid value for parameter "${n}": ${i}`);i=a}else if(!this._isServer)throw new TypeError(`Invalid value for parameter "${n}": ${i}`)}else if(n==="server_max_window_bits"){let a=+i;if(!Number.isInteger(a)||a<8||a>15)throw new TypeError(`Invalid value for parameter "${n}": ${i}`);i=a}else if(n==="client_no_context_takeover"||n==="server_no_context_takeover"){if(i!==!0)throw new TypeError(`Invalid value for parameter "${n}": ${i}`)}else throw new Error(`Unknown parameter "${n}"`);e[n]=i})}),r}decompress(r,e,n){oc.add(i=>{this._decompress(r,e,(a,o)=>{i(),n(a,o)})})}compress(r,e,n){oc.add(i=>{this._compress(r,e,(a,o)=>{i(),n(a,o)})})}_decompress(r,e,n){let i=this._isServer?"client":"server";if(!this._inflate){let a=`${i}_max_window_bits`,o=typeof this.params[a]!="number"?Xs.Z_DEFAULT_WINDOWBITS:this.params[a];this._inflate=Xs.createInflateRaw({...this._options.zlibInflateOptions,windowBits:o}),this._inflate[sc]=this,this._inflate[ei]=0,this._inflate[Ci]=[],this._inflate.on("error",Iw),this._inflate.on("data",km)}this._inflate[Gs]=n,this._inflate.write(r),e&&this._inflate.write(Jw),this._inflate.flush(()=>{let a=this._inflate[Ql];if(a){this._inflate.close(),this._inflate=null,n(a);return}let o=Fm.concat(this._inflate[Ci],this._inflate[ei]);this._inflate._readableState.endEmitted?(this._inflate.close(),this._inflate=null):(this._inflate[ei]=0,this._inflate[Ci]=[],e&&this.params[`${i}_no_context_takeover`]&&this._inflate.reset()),n(null,o)})}_compress(r,e,n){let i=this._isServer?"server":"client";if(!this._deflate){let a=`${i}_max_window_bits`,o=typeof this.params[a]!="number"?Xs.Z_DEFAULT_WINDOWBITS:this.params[a];this._deflate=Xs.createDeflateRaw({...this._options.zlibDeflateOptions,windowBits:o}),this._deflate[ei]=0,this._deflate[Ci]=[],this._deflate.on("error",Nw),this._deflate.on("data",Dw)}this._deflate[Gs]=n,this._deflate.write(r),this._deflate.flush(Xs.Z_SYNC_FLUSH,()=>{if(!this._deflate)return;let a=Fm.concat(this._deflate[Ci],this._deflate[ei]);e&&(a=a.slice(0,a.length-4)),this._deflate[Gs]=null,this._deflate[ei]=0,this._deflate[Ci]=[],e&&this.params[`${i}_no_context_takeover`]&&this._deflate.reset(),n(null,a)})}};Rm.exports=Wl;function Dw(t){this[Ci].push(t),this[ei]+=t.length}function km(t){if(this[ei]+=t.length,this[sc]._maxPayload<1||this[ei]<=this[sc]._maxPayload){this[Ci].push(t);return}this[Ql]=new RangeError("Max payload size exceeded"),this[Ql][Lm]=1009,this.removeListener("data",km),this.reset()}function Iw(t){this[sc]._inflate=null,t[Lm]=1007,this[Gs](t)}});var Jm=L((YT,Nm)=>{"use strict";function Uw(t){let r=t.length,e=0;for(;e=r||(t[e+1]&192)!==128||(t[e+2]&192)!==128||t[e]===224&&(t[e+1]&224)===128||t[e]===237&&(t[e+1]&224)===160)return!1;e+=3}else if((t[e]&248)===240){if(e+3>=r||(t[e+1]&192)!==128||(t[e+2]&192)!==128||(t[e+3]&192)!==128||t[e]===240&&(t[e+1]&240)===128||t[e]===244&&t[e+1]>143||t[e]>244)return!1;e+=4}else return!1;return!0}Nm.exports=Uw});var Dm=L(($T,Yl)=>{"use strict";try{Yl.exports=jl()(__dirname)}catch{Yl.exports=Jm()}});var ed=L((eC,$l)=>{"use strict";function Im(t){return t>=1e3&&t<=1014&&t!==1004&&t!==1005&&t!==1006||t>=3e3&&t<=4999}function Um(t){let r=t.length,e=0;for(;e=r||(t[e+1]&192)!==128||(t[e+2]&192)!==128||t[e]===224&&(t[e+1]&224)===128||t[e]===237&&(t[e+1]&224)===160)return!1;e+=3}else if((t[e]&248)===240){if(e+3>=r||(t[e+1]&192)!==128||(t[e+2]&192)!==128||(t[e+3]&192)!==128||t[e]===240&&(t[e+1]&240)===128||t[e]===244&&t[e+1]>143||t[e]>244)return!1;e+=4}else return!1;return!0}try{let t=Dm();typeof t=="object"&&(t=t.Validation.isValidUTF8),$l.exports={isValidStatusCode:Im,isValidUTF8(r){return r.length<150?Um(r):t(r)}}}catch{$l.exports={isValidStatusCode:Im,isValidUTF8:Um}}});var id=L((rC,zm)=>{"use strict";var{Writable:Hw}=require("stream"),Hm=js(),{BINARY_TYPES:qw,EMPTY_BUFFER:Xw,kStatusCode:Gw,kWebSocket:jw}=_a(),{concat:rd,toArrayBuffer:zw,unmask:Vw}=qs(),{isValidStatusCode:Zw,isValidUTF8:qm}=ed(),zs=0,Xm=1,Gm=2,jm=3,td=4,Kw=5,nd=class extends Hw{constructor(r,e,n,i){super(),this._binaryType=r||qw[0],this[jw]=void 0,this._extensions=e||{},this._isServer=!!n,this._maxPayload=i|0,this._bufferedBytes=0,this._buffers=[],this._compressed=!1,this._payloadLength=0,this._mask=void 0,this._fragmented=0,this._masked=!1,this._fin=!1,this._opcode=0,this._totalPayloadLength=0,this._messageLength=0,this._fragments=[],this._state=zs,this._loop=!1}_write(r,e,n){if(this._opcode===8&&this._state==zs)return n();this._bufferedBytes+=r.length,this._buffers.push(r),this.startLoop(n)}consume(r){if(this._bufferedBytes-=r,r===this._buffers[0].length)return this._buffers.shift();if(r=n.length?e.set(this._buffers.shift(),i):(e.set(new Uint8Array(n.buffer,n.byteOffset,r),i),this._buffers[0]=n.slice(r)),r-=n.length}while(r>0);return e}startLoop(r){let e;this._loop=!0;do switch(this._state){case zs:e=this.getInfo();break;case Xm:e=this.getPayloadLength16();break;case Gm:e=this.getPayloadLength64();break;case jm:this.getMask();break;case td:e=this.getData(r);break;default:this._loop=!1;return}while(this._loop);r(e)}getInfo(){if(this._bufferedBytes<2){this._loop=!1;return}let r=this.consume(2);if((r[0]&48)!==0)return this._loop=!1,Ar(RangeError,"RSV2 and RSV3 must be clear",!0,1002);let e=(r[0]&64)===64;if(e&&!this._extensions[Hm.extensionName])return this._loop=!1,Ar(RangeError,"RSV1 must be clear",!0,1002);if(this._fin=(r[0]&128)===128,this._opcode=r[0]&15,this._payloadLength=r[1]&127,this._opcode===0){if(e)return this._loop=!1,Ar(RangeError,"RSV1 must be clear",!0,1002);if(!this._fragmented)return this._loop=!1,Ar(RangeError,"invalid opcode 0",!0,1002);this._opcode=this._fragmented}else if(this._opcode===1||this._opcode===2){if(this._fragmented)return this._loop=!1,Ar(RangeError,`invalid opcode ${this._opcode}`,!0,1002);this._compressed=e}else if(this._opcode>7&&this._opcode<11){if(!this._fin)return this._loop=!1,Ar(RangeError,"FIN must be set",!0,1002);if(e)return this._loop=!1,Ar(RangeError,"RSV1 must be clear",!0,1002);if(this._payloadLength>125)return this._loop=!1,Ar(RangeError,`invalid payload length ${this._payloadLength}`,!0,1002)}else return this._loop=!1,Ar(RangeError,`invalid opcode ${this._opcode}`,!0,1002);if(!this._fin&&!this._fragmented&&(this._fragmented=this._opcode),this._masked=(r[1]&128)===128,this._isServer){if(!this._masked)return this._loop=!1,Ar(RangeError,"MASK must be set",!0,1002)}else if(this._masked)return this._loop=!1,Ar(RangeError,"MASK must be clear",!0,1002);if(this._payloadLength===126)this._state=Xm;else if(this._payloadLength===127)this._state=Gm;else return this.haveLength()}getPayloadLength16(){if(this._bufferedBytes<2){this._loop=!1;return}return this._payloadLength=this.consume(2).readUInt16BE(0),this.haveLength()}getPayloadLength64(){if(this._bufferedBytes<8){this._loop=!1;return}let r=this.consume(8),e=r.readUInt32BE(0);return e>Math.pow(2,53-32)-1?(this._loop=!1,Ar(RangeError,"Unsupported WebSocket frame: payload length > 2^53 - 1",!1,1009)):(this._payloadLength=e*Math.pow(2,32)+r.readUInt32BE(4),this.haveLength())}haveLength(){if(this._payloadLength&&this._opcode<8&&(this._totalPayloadLength+=this._payloadLength,this._totalPayloadLength>this._maxPayload&&this._maxPayload>0))return this._loop=!1,Ar(RangeError,"Max payload size exceeded",!1,1009);this._masked?this._state=jm:this._state=td}getMask(){if(this._bufferedBytes<4){this._loop=!1;return}this._mask=this.consume(4),this._state=td}getData(r){let e=Xw;if(this._payloadLength){if(this._bufferedBytes7)return this.controlMessage(e);if(this._compressed){this._state=Kw,this.decompress(e,r);return}return e.length&&(this._messageLength=this._totalPayloadLength,this._fragments.push(e)),this.dataMessage()}decompress(r,e){this._extensions[Hm.extensionName].decompress(r,this._fin,(i,a)=>{if(i)return e(i);if(a.length){if(this._messageLength+=a.length,this._messageLength>this._maxPayload&&this._maxPayload>0)return e(Ar(RangeError,"Max payload size exceeded",!1,1009));this._fragments.push(a)}let o=this.dataMessage();if(o)return e(o);this.startLoop(e)})}dataMessage(){if(this._fin){let r=this._messageLength,e=this._fragments;if(this._totalPayloadLength=0,this._messageLength=0,this._fragmented=0,this._fragments=[],this._opcode===2){let n;this._binaryType==="nodebuffer"?n=rd(e,r):this._binaryType==="arraybuffer"?n=zw(rd(e,r)):n=e,this.emit("message",n)}else{let n=rd(e,r);if(!qm(n))return this._loop=!1,Ar(Error,"invalid UTF-8 sequence",!0,1007);this.emit("message",n.toString())}}this._state=zs}controlMessage(r){if(this._opcode===8)if(this._loop=!1,r.length===0)this.emit("conclude",1005,""),this.end();else{if(r.length===1)return Ar(RangeError,"invalid payload length 1",!0,1002);{let e=r.readUInt16BE(0);if(!Zw(e))return Ar(RangeError,`invalid status code ${e}`,!0,1002);let n=r.slice(2);if(!qm(n))return Ar(Error,"invalid UTF-8 sequence",!0,1007);this.emit("conclude",e,n.toString()),this.end()}}else this._opcode===9?this.emit("ping",r):this.emit("pong",r);this._state=zs}};zm.exports=nd;function Ar(t,r,e,n){let i=new t(e?`Invalid WebSocket frame: ${r}`:r);return Error.captureStackTrace(i,Ar),i[Gw]=n,i}});var ad=L((tC,Km)=>{"use strict";var{randomFillSync:Qw}=require("crypto"),Vm=js(),{EMPTY_BUFFER:Ww}=_a(),{isValidStatusCode:Yw}=ed(),{mask:Zm,toBuffer:ri}=qs(),Sa=Buffer.alloc(4),Tn=class{constructor(r,e){this._extensions=e||{},this._socket=r,this._firstFragment=!0,this._compress=!1,this._bufferedBytes=0,this._deflating=!1,this._queue=[]}static frame(r,e){let n=e.mask&&e.readOnly,i=e.mask?6:2,a=r.length;r.length>=65536?(i+=8,a=127):r.length>125&&(i+=2,a=126);let o=Buffer.allocUnsafe(n?r.length+i:i);return o[0]=e.fin?e.opcode|128:e.opcode,e.rsv1&&(o[0]|=64),o[1]=a,a===126?o.writeUInt16BE(r.length,2):a===127&&(o.writeUInt32BE(0,2),o.writeUInt32BE(r.length,6)),e.mask?(Qw(Sa,0,4),o[1]|=128,o[i-4]=Sa[0],o[i-3]=Sa[1],o[i-2]=Sa[2],o[i-1]=Sa[3],n?(Zm(r,Sa,o,i,r.length),[o]):(Zm(r,Sa,r,0,r.length),[o,r])):[o,r]}close(r,e,n,i){let a;if(r===void 0)a=Ww;else{if(typeof r!="number"||!Yw(r))throw new TypeError("First argument must be a valid error code number");if(e===void 0||e==="")a=Buffer.allocUnsafe(2),a.writeUInt16BE(r,0);else{let o=Buffer.byteLength(e);if(o>123)throw new RangeError("The message must not be greater than 123 bytes");a=Buffer.allocUnsafe(2+o),a.writeUInt16BE(r,0),a.write(e,2)}}this._deflating?this.enqueue([this.doClose,a,n,i]):this.doClose(a,n,i)}doClose(r,e,n){this.sendFrame(Tn.frame(r,{fin:!0,rsv1:!1,opcode:8,mask:e,readOnly:!1}),n)}ping(r,e,n){let i=ri(r);if(i.length>125)throw new RangeError("The data size must not be greater than 125 bytes");this._deflating?this.enqueue([this.doPing,i,e,ri.readOnly,n]):this.doPing(i,e,ri.readOnly,n)}doPing(r,e,n,i){this.sendFrame(Tn.frame(r,{fin:!0,rsv1:!1,opcode:9,mask:e,readOnly:n}),i)}pong(r,e,n){let i=ri(r);if(i.length>125)throw new RangeError("The data size must not be greater than 125 bytes");this._deflating?this.enqueue([this.doPong,i,e,ri.readOnly,n]):this.doPong(i,e,ri.readOnly,n)}doPong(r,e,n,i){this.sendFrame(Tn.frame(r,{fin:!0,rsv1:!1,opcode:10,mask:e,readOnly:n}),i)}send(r,e,n){let i=ri(r),a=this._extensions[Vm.extensionName],o=e.binary?2:1,u=e.compress;if(this._firstFragment?(this._firstFragment=!1,u&&a&&(u=i.length>=a._threshold),this._compress=u):(u=!1,o=0),e.fin&&(this._firstFragment=!0),a){let l={fin:e.fin,rsv1:u,opcode:o,mask:e.mask,readOnly:ri.readOnly};this._deflating?this.enqueue([this.dispatch,i,this._compress,l,n]):this.dispatch(i,this._compress,l,n)}else this.sendFrame(Tn.frame(i,{fin:e.fin,rsv1:!1,opcode:o,mask:e.mask,readOnly:ri.readOnly}),n)}dispatch(r,e,n,i){if(!e){this.sendFrame(Tn.frame(r,n),i);return}let a=this._extensions[Vm.extensionName];this._bufferedBytes+=r.length,this._deflating=!0,a.compress(r,n.fin,(o,u)=>{if(this._socket.destroyed){let l=new Error("The socket was closed while data was being compressed");typeof i=="function"&&i(l);for(let s=0;s{"use strict";var Oo=class{constructor(r,e){this.target=e,this.type=r}},od=class extends Oo{constructor(r,e){super("message",e),this.data=r}},sd=class extends Oo{constructor(r,e,n){super("close",n),this.wasClean=n._closeFrameReceived&&n._closeFrameSent,this.reason=e,this.code=r}},fd=class extends Oo{constructor(r){super("open",r)}},ud=class extends Oo{constructor(r,e){super("error",e),this.message=r.message,this.error=r}},$w={addEventListener(t,r,e){if(typeof r!="function")return;function n(l){r.call(this,new od(l,this))}function i(l,s){r.call(this,new sd(l,s,this))}function a(l){r.call(this,new ud(l,this))}function o(){r.call(this,new fd(this))}let u=e&&e.once?"once":"on";t==="message"?(n._listener=r,this[u](t,n)):t==="close"?(i._listener=r,this[u](t,i)):t==="error"?(a._listener=r,this[u](t,a)):t==="open"?(o._listener=r,this[u](t,o)):this[u](t,r)},removeEventListener(t,r){let e=this.listeners(t);for(let n=0;n{"use strict";var Vs=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,1,1,1,0,0,1,1,0,1,1,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,0,1,0];function Cn(t,r,e){t[r]===void 0?t[r]=[e]:t[r].push(e)}function e_(t){let r=Object.create(null);if(t===void 0||t==="")return r;let e=Object.create(null),n=!1,i=!1,a=!1,o,u,l=-1,s=-1,p=0;for(;p{let e=t[r];return Array.isArray(e)||(e=[e]),e.map(n=>[r].concat(Object.keys(n).map(i=>{let a=n[i];return Array.isArray(a)||(a=[a]),a.map(o=>o===!0?i:`${i}=${o}`).join("; ")})).join("; ")).join(", ")}).join(", ")}Ym.exports={format:r_,parse:e_}});var pd=L((aC,fx)=>{"use strict";var t_=require("events"),n_=require("https"),i_=require("http"),rx=require("net"),a_=require("tls"),{randomBytes:o_,createHash:s_}=require("crypto"),{URL:ld}=require("url"),Bi=js(),f_=id(),u_=ad(),{BINARY_TYPES:$m,EMPTY_BUFFER:dd,GUID:c_,kStatusCode:l_,kWebSocket:et,NOOP:tx}=_a(),{addEventListener:d_,removeEventListener:h_}=Wm(),{format:b_,parse:p_}=cd(),{toBuffer:v_}=qs(),nx=["CONNECTING","OPEN","CLOSING","CLOSED"],hd=[8,13],g_=30*1e3,je=class extends t_{constructor(r,e,n){super(),this._binaryType=$m[0],this._closeCode=1006,this._closeFrameReceived=!1,this._closeFrameSent=!1,this._closeMessage="",this._closeTimer=null,this._extensions={},this._protocol="",this._readyState=je.CONNECTING,this._receiver=null,this._sender=null,this._socket=null,r!==null?(this._bufferedAmount=0,this._isServer=!1,this._redirects=0,Array.isArray(e)?e=e.join(", "):typeof e=="object"&&e!==null&&(n=e,e=void 0),ix(this,r,e,n)):this._isServer=!0}get binaryType(){return this._binaryType}set binaryType(r){!$m.includes(r)||(this._binaryType=r,this._receiver&&(this._receiver._binaryType=r))}get bufferedAmount(){return this._socket?this._socket._writableState.length+this._sender._bufferedBytes:this._bufferedAmount}get extensions(){return Object.keys(this._extensions).join()}get protocol(){return this._protocol}get readyState(){return this._readyState}get url(){return this._url}setSocket(r,e,n){let i=new f_(this.binaryType,this._extensions,this._isServer,n);this._sender=new u_(r,this._extensions),this._receiver=i,this._socket=r,i[et]=this,r[et]=this,i.on("conclude",y_),i.on("drain",A_),i.on("error",w_),i.on("message",__),i.on("ping",S_),i.on("pong",M_),r.setTimeout(0),r.setNoDelay(),e.length>0&&r.unshift(e),r.on("close",ax),r.on("data",fc),r.on("end",ox),r.on("error",sx),this._readyState=je.OPEN,this.emit("open")}emitClose(){if(!this._socket){this._readyState=je.CLOSED,this.emit("close",this._closeCode,this._closeMessage);return}this._extensions[Bi.extensionName]&&this._extensions[Bi.extensionName].cleanup(),this._receiver.removeAllListeners(),this._readyState=je.CLOSED,this.emit("close",this._closeCode,this._closeMessage)}close(r,e){if(this.readyState!==je.CLOSED){if(this.readyState===je.CONNECTING){let n="WebSocket was closed before the connection was established";return ti(this,this._req,n)}if(this.readyState===je.CLOSING){this._closeFrameSent&&this._closeFrameReceived&&this._socket.end();return}this._readyState=je.CLOSING,this._sender.close(r,e,!this._isServer,n=>{n||(this._closeFrameSent=!0,this._closeFrameReceived&&this._socket.end())}),this._closeTimer=setTimeout(this._socket.destroy.bind(this._socket),g_)}}ping(r,e,n){if(this.readyState===je.CONNECTING)throw new Error("WebSocket is not open: readyState 0 (CONNECTING)");if(typeof r=="function"?(n=r,r=e=void 0):typeof e=="function"&&(n=e,e=void 0),typeof r=="number"&&(r=r.toString()),this.readyState!==je.OPEN){bd(this,r,n);return}e===void 0&&(e=!this._isServer),this._sender.ping(r||dd,e,n)}pong(r,e,n){if(this.readyState===je.CONNECTING)throw new Error("WebSocket is not open: readyState 0 (CONNECTING)");if(typeof r=="function"?(n=r,r=e=void 0):typeof e=="function"&&(n=e,e=void 0),typeof r=="number"&&(r=r.toString()),this.readyState!==je.OPEN){bd(this,r,n);return}e===void 0&&(e=!this._isServer),this._sender.pong(r||dd,e,n)}send(r,e,n){if(this.readyState===je.CONNECTING)throw new Error("WebSocket is not open: readyState 0 (CONNECTING)");if(typeof e=="function"&&(n=e,e={}),typeof r=="number"&&(r=r.toString()),this.readyState!==je.OPEN){bd(this,r,n);return}let i={binary:typeof r!="string",mask:!this._isServer,compress:!0,fin:!0,...e};this._extensions[Bi.extensionName]||(i.compress=!1),this._sender.send(r||dd,i,n)}terminate(){if(this.readyState!==je.CLOSED){if(this.readyState===je.CONNECTING){let r="WebSocket was closed before the connection was established";return ti(this,this._req,r)}this._socket&&(this._readyState=je.CLOSING,this._socket.destroy())}}};nx.forEach((t,r)=>{let e={enumerable:!0,value:r};Object.defineProperty(je.prototype,t,e),Object.defineProperty(je,t,e)});["binaryType","bufferedAmount","extensions","protocol","readyState","url"].forEach(t=>{Object.defineProperty(je.prototype,t,{enumerable:!0})});["open","error","close","message"].forEach(t=>{Object.defineProperty(je.prototype,`on${t}`,{configurable:!0,enumerable:!0,get(){let r=this.listeners(t);for(let e=0;e{ti(t,E,"Opening handshake has timed out")}),E.on("error",C=>{E===null||E.aborted||(E=t._req=null,t._readyState=je.CLOSING,t.emit("error",C),t.emitClose())}),E.on("response",C=>{let P=C.headers.location,B=C.statusCode;if(P&&i.followRedirects&&B>=300&&B<400){if(++t._redirects>i.maxRedirects){ti(t,E,"Maximum redirects exceeded");return}E.abort();let J=new ld(P,r);ix(t,J,e,n)}else t.emit("unexpected-response",E,C)||ti(t,E,`Unexpected server response: ${C.statusCode}`)}),E.on("upgrade",(C,P,B)=>{if(t.emit("upgrade",C),t.readyState!==je.CONNECTING)return;E=t._req=null;let J=s_("sha1").update(s+c_).digest("base64");if(C.headers["sec-websocket-accept"]!==J){ti(t,P,"Invalid Sec-WebSocket-Accept header");return}let R=C.headers["sec-websocket-protocol"],q=(e||"").split(/, */),I;if(!e&&R?I="Server sent a subprotocol but none was requested":e&&!R?I="Server sent no subprotocol":R&&!q.includes(R)&&(I="Server sent an invalid subprotocol"),I){ti(t,P,I);return}if(R&&(t._protocol=R),_)try{let j=p_(C.headers["sec-websocket-extensions"]);j[Bi.extensionName]&&(_.accept(j[Bi.extensionName]),t._extensions[Bi.extensionName]=_)}catch{ti(t,P,"Invalid Sec-WebSocket-Extensions header");return}t.setSocket(P,B,i.maxPayload)})}function m_(t){return t.path=t.socketPath,rx.connect(t)}function x_(t){return t.path=void 0,!t.servername&&t.servername!==""&&(t.servername=rx.isIP(t.host)?"":t.host),a_.connect(t)}function ti(t,r,e){t._readyState=je.CLOSING;let n=new Error(e);Error.captureStackTrace(n,ti),r.setHeader?(r.abort(),r.socket&&!r.socket.destroyed&&r.socket.destroy(),r.once("abort",t.emitClose.bind(t)),t.emit("error",n)):(r.destroy(n),r.once("error",t.emit.bind(t,"error")),r.once("close",t.emitClose.bind(t)))}function bd(t,r,e){if(r){let n=v_(r).length;t._socket?t._sender._bufferedBytes+=n:t._bufferedAmount+=n}if(e){let n=new Error(`WebSocket is not open: readyState ${t.readyState} (${nx[t.readyState]})`);e(n)}}function y_(t,r){let e=this[et];e._socket.removeListener("data",fc),e._socket.resume(),e._closeFrameReceived=!0,e._closeMessage=r,e._closeCode=t,t===1005?e.close():e.close(t,r)}function A_(){this[et]._socket.resume()}function w_(t){let r=this[et];r._socket.removeListener("data",fc),r._readyState=je.CLOSING,r._closeCode=t[l_],r.emit("error",t),r._socket.destroy()}function ex(){this[et].emitClose()}function __(t){this[et].emit("message",t)}function S_(t){let r=this[et];r.pong(t,!r._isServer,tx),r.emit("ping",t)}function M_(t){this[et].emit("pong",t)}function ax(){let t=this[et];this.removeListener("close",ax),this.removeListener("end",ox),t._readyState=je.CLOSING,t._socket.read(),t._receiver.end(),this.removeListener("data",fc),this[et]=void 0,clearTimeout(t._closeTimer),t._receiver._writableState.finished||t._receiver._writableState.errorEmitted?t.emitClose():(t._receiver.on("error",ex),t._receiver.on("finish",ex))}function fc(t){this[et]._receiver.write(t)||this.pause()}function ox(){let t=this[et];t._readyState=je.CLOSING,t._receiver.end(),this.end()}function sx(){let t=this[et];this.removeListener("error",sx),this.on("error",tx),t&&(t._readyState=je.CLOSING,this.destroy())}});var dx=L((oC,lx)=>{"use strict";var{Duplex:P_}=require("stream");function ux(t){t.emit("close")}function E_(){!this.destroyed&&this._writableState.finished&&this.destroy()}function cx(t){this.removeListener("error",cx),this.destroy(),this.listenerCount("error")===0&&this.emit("error",t)}function T_(t,r){let e=!0;function n(){e&&t._socket.resume()}t.readyState===t.CONNECTING?t.once("open",function(){t._receiver.removeAllListeners("drain"),t._receiver.on("drain",n)}):(t._receiver.removeAllListeners("drain"),t._receiver.on("drain",n));let i=new P_({...r,autoDestroy:!1,emitClose:!1,objectMode:!1,writableObjectMode:!1});return t.on("message",function(o){i.push(o)||(e=!1,t._socket.pause())}),t.once("error",function(o){i.destroyed||i.destroy(o)}),t.once("close",function(){i.destroyed||i.push(null)}),i._destroy=function(a,o){if(t.readyState===t.CLOSED){o(a),process.nextTick(ux,i);return}let u=!1;t.once("error",function(s){u=!0,o(s)}),t.once("close",function(){u||o(a),process.nextTick(ux,i)}),t.terminate()},i._final=function(a){if(t.readyState===t.CONNECTING){t.once("open",function(){i._final(a)});return}t._socket!==null&&(t._socket._writableState.finished?(a(),i._readableState.endEmitted&&i.destroy()):(t._socket.once("finish",function(){a()}),t.close()))},i._read=function(){t.readyState===t.OPEN&&!e&&(e=!0,t._receiver._writableState.needDrain||t._socket.resume())},i._write=function(a,o,u){if(t.readyState===t.CONNECTING){t.once("open",function(){i._write(a,o,u)});return}t.send(a,u)},i.on("end",E_),i.on("error",cx),i}lx.exports=T_});var bx=L((sC,hx)=>{"use strict";var C_=require("events"),{createHash:B_}=require("crypto"),{createServer:O_,STATUS_CODES:vd}=require("http"),Ma=js(),F_=pd(),{format:L_,parse:k_}=cd(),{GUID:R_,kWebSocket:N_}=_a(),J_=/^[+/0-9A-Za-z]{22}==$/,gd=class extends C_{constructor(r,e){if(super(),r={maxPayload:100*1024*1024,perMessageDeflate:!1,handleProtocols:null,clientTracking:!0,verifyClient:null,noServer:!1,backlog:null,server:null,host:null,path:null,port:null,...r},r.port==null&&!r.server&&!r.noServer)throw new TypeError('One of the "port", "server", or "noServer" options must be specified');if(r.port!=null?(this._server=O_((n,i)=>{let a=vd[426];i.writeHead(426,{"Content-Length":a.length,"Content-Type":"text/plain"}),i.end(a)}),this._server.listen(r.port,r.host,r.backlog,e)):r.server&&(this._server=r.server),this._server){let n=this.emit.bind(this,"connection");this._removeListeners=D_(this._server,{listening:this.emit.bind(this,"listening"),error:this.emit.bind(this,"error"),upgrade:(i,a,o)=>{this.handleUpgrade(i,a,o,n)}})}r.perMessageDeflate===!0&&(r.perMessageDeflate={}),r.clientTracking&&(this.clients=new Set),this.options=r}address(){if(this.options.noServer)throw new Error('The server is operating in "noServer" mode');return this._server?this._server.address():null}close(r){if(r&&this.once("close",r),this.clients)for(let n of this.clients)n.terminate();let e=this._server;if(e&&(this._removeListeners(),this._removeListeners=this._server=null,this.options.port!=null)){e.close(()=>this.emit("close"));return}process.nextTick(I_,this)}shouldHandle(r){if(this.options.path){let e=r.url.indexOf("?");if((e!==-1?r.url.slice(0,e):r.url)!==this.options.path)return!1}return!0}handleUpgrade(r,e,n,i){e.on("error",md);let a=r.headers["sec-websocket-key"]!==void 0?r.headers["sec-websocket-key"].trim():!1,o=+r.headers["sec-websocket-version"],u={};if(r.method!=="GET"||r.headers.upgrade.toLowerCase()!=="websocket"||!a||!J_.test(a)||o!==8&&o!==13||!this.shouldHandle(r))return uc(e,400);if(this.options.perMessageDeflate){let l=new Ma(this.options.perMessageDeflate,!0,this.options.maxPayload);try{let s=k_(r.headers["sec-websocket-extensions"]);s[Ma.extensionName]&&(l.accept(s[Ma.extensionName]),u[Ma.extensionName]=l)}catch{return uc(e,400)}}if(this.options.verifyClient){let l={origin:r.headers[`${o===8?"sec-websocket-origin":"origin"}`],secure:!!(r.socket.authorized||r.socket.encrypted),req:r};if(this.options.verifyClient.length===2){this.options.verifyClient(l,(s,p,_,E)=>{if(!s)return uc(e,p||401,_,E);this.completeUpgrade(a,u,r,e,n,i)});return}if(!this.options.verifyClient(l))return uc(e,401)}this.completeUpgrade(a,u,r,e,n,i)}completeUpgrade(r,e,n,i,a,o){if(!i.readable||!i.writable)return i.destroy();if(i[N_])throw new Error("server.handleUpgrade() was called more than once with the same socket, possibly due to a misconfiguration");let l=["HTTP/1.1 101 Switching Protocols","Upgrade: websocket","Connection: Upgrade",`Sec-WebSocket-Accept: ${B_("sha1").update(r+R_).digest("base64")}`],s=new F_(null),p=n.headers["sec-websocket-protocol"];if(p&&(p=p.split(",").map(U_),this.options.handleProtocols?p=this.options.handleProtocols(p,n):p=p[0],p&&(l.push(`Sec-WebSocket-Protocol: ${p}`),s._protocol=p)),e[Ma.extensionName]){let _=e[Ma.extensionName].params,E=L_({[Ma.extensionName]:[_]});l.push(`Sec-WebSocket-Extensions: ${E}`),s._extensions=e}this.emit("headers",l,n),i.write(l.concat(`\r +`).join(`\r +`)),i.removeListener("error",md),s.setSocket(i,a,this.options.maxPayload),this.clients&&(this.clients.add(s),s.on("close",()=>this.clients.delete(s))),o(s,n)}};hx.exports=gd;function D_(t,r){for(let e of Object.keys(r))t.on(e,r[e]);return function(){for(let n of Object.keys(r))t.removeListener(n,r[n])}}function I_(t){t.emit("close")}function md(){this.destroy()}function uc(t,r,e,n){t.writable&&(e=e||vd[r],n={Connection:"close","Content-Type":"text/html","Content-Length":Buffer.byteLength(e),...n},t.write(`HTTP/1.1 ${r} ${vd[r]}\r +`+Object.keys(n).map(i=>`${i}: ${n[i]}`).join(`\r +`)+`\r +\r +`+e)),t.removeListener("error",md),t.destroy()}function U_(t){return t.trim()}});var vx=L((fC,px)=>{"use strict";var Zs=pd();Zs.createWebSocketStream=dx();Zs.Server=bx();Zs.Receiver=id();Zs.Sender=ad();px.exports=Zs});var gx=L(Fo=>{"use strict";var H_=Fo&&Fo.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Fo,"__esModule",{value:!0});Fo.WebSocket=void 0;var q_=H_(vx());Fo.WebSocket=q_.default});var lc=L(Bn=>{"use strict";var X_=Bn&&Bn.__extends||function(){var t=function(r,e){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,i){n.__proto__=i}||function(n,i){for(var a in i)Object.prototype.hasOwnProperty.call(i,a)&&(n[a]=i[a])},t(r,e)};return function(r,e){if(typeof e!="function"&&e!==null)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");t(r,e);function n(){this.constructor=r}r.prototype=e===null?Object.create(e):(n.prototype=e.prototype,new n)}}(),xd=Bn&&Bn.__awaiter||function(t,r,e,n){function i(a){return a instanceof e?a:new e(function(o){o(a)})}return new(e||(e=Promise))(function(a,o){function u(p){try{s(n.next(p))}catch(_){o(_)}}function l(p){try{s(n.throw(p))}catch(_){o(_)}}function s(p){p.done?a(p.value):i(p.value).then(u,l)}s((n=n.apply(t,r||[])).next())})},yd=Bn&&Bn.__generator||function(t,r){var e={label:0,sent:function(){if(a[0]&1)throw a[1];return a[1]},trys:[],ops:[]},n,i,a,o;return o={next:u(0),throw:u(1),return:u(2)},typeof Symbol=="function"&&(o[Symbol.iterator]=function(){return this}),o;function u(s){return function(p){return l([s,p])}}function l(s){if(n)throw new TypeError("Generator is already executing.");for(;e;)try{if(n=1,i&&(a=s[0]&2?i.return:s[0]?i.throw||((a=i.return)&&a.call(i),0):i.next)&&!(a=a.call(i,s[1])).done)return a;switch(i=0,a&&(s=[s[0]&2,a.value]),s[0]){case 0:case 1:a=s;break;case 4:return e.label++,{value:s[1],done:!1};case 5:e.label++,i=s[1],s=[0];continue;case 7:s=e.ops.pop(),e.trys.pop();continue;default:if(a=e.trys,!(a=a.length>0&&a[a.length-1])&&(s[0]===6||s[0]===2)){e=0;continue}if(s[0]===3&&(!a||s[1]>a[0]&&s[1]{"use strict";var xx=Tt&&Tt.__extends||function(){var t=function(r,e){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,i){n.__proto__=i}||function(n,i){for(var a in i)Object.prototype.hasOwnProperty.call(i,a)&&(n[a]=i[a])},t(r,e)};return function(r,e){if(typeof e!="function"&&e!==null)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");t(r,e);function n(){this.constructor=r}r.prototype=e===null?Object.create(e):(n.prototype=e.prototype,new n)}}(),K_=Tt&&Tt.__awaiter||function(t,r,e,n){function i(a){return a instanceof e?a:new e(function(o){o(a)})}return new(e||(e=Promise))(function(a,o){function u(p){try{s(n.next(p))}catch(_){o(_)}}function l(p){try{s(n.throw(p))}catch(_){o(_)}}function s(p){p.done?a(p.value):i(p.value).then(u,l)}s((n=n.apply(t,r||[])).next())})},Q_=Tt&&Tt.__generator||function(t,r){var e={label:0,sent:function(){if(a[0]&1)throw a[1];return a[1]},trys:[],ops:[]},n,i,a,o;return o={next:u(0),throw:u(1),return:u(2)},typeof Symbol=="function"&&(o[Symbol.iterator]=function(){return this}),o;function u(s){return function(p){return l([s,p])}}function l(s){if(n)throw new TypeError("Generator is already executing.");for(;e;)try{if(n=1,i&&(a=s[0]&2?i.return:s[0]?i.throw||((a=i.return)&&a.call(i),0):i.next)&&!(a=a.call(i,s[1])).done)return a;switch(i=0,a&&(s=[s[0]&2,a.value]),s[0]){case 0:case 1:a=s;break;case 4:return e.label++,{value:s[1],done:!1};case 5:e.label++,i=s[1],s=[0];continue;case 7:s=e.ops.pop(),e.trys.pop();continue;default:if(a=e.trys,!(a=a.length>0&&a[a.length-1])&&(s[0]===6||s[0]===2)){e=0;continue}if(s[0]===3&&(!a||s[1]>a[0]&&s[1]{"use strict";var wx=Li&&Li.__extends||function(){var t=function(r,e){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,i){n.__proto__=i}||function(n,i){for(var a in i)Object.prototype.hasOwnProperty.call(i,a)&&(n[a]=i[a])},t(r,e)};return function(r,e){if(typeof e!="function"&&e!==null)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");t(r,e);function n(){this.constructor=r}r.prototype=e===null?Object.create(e):(n.prototype=e.prototype,new n)}}();Object.defineProperty(Li,"__esModule",{value:!0});Li.AlchemyProvider=Li.AlchemyWebSocketProvider=void 0;var eS=Ve(),rS=Ti(),tS=lc(),nS=re(),iS=Rr(),Ax=new nS.Logger(iS.version),aS=Fi(),hc="_gg7wSSi0KMBsdKnGVfHDueq6xMB9EkC",_x=function(t){wx(r,t);function r(e,n){var i=this,a=new Sx(e,n),o=a.connection.url.replace(/^http/i,"ws").replace(".alchemyapi.",".ws.alchemyapi.");return i=t.call(this,o,a.network)||this,(0,eS.defineReadOnly)(i,"apiKey",a.apiKey),i}return r.prototype.isCommunityResource=function(){return this.apiKey===hc},r}(tS.WebSocketProvider);Li.AlchemyWebSocketProvider=_x;var Sx=function(t){wx(r,t);function r(){return t!==null&&t.apply(this,arguments)||this}return r.getWebSocketProvider=function(e,n){return new _x(e,n)},r.getApiKey=function(e){return e==null?hc:(e&&typeof e!="string"&&Ax.throwArgumentError("invalid apiKey","apiKey",e),e)},r.getUrl=function(e,n){var i=null;switch(e.name){case"homestead":i="eth-mainnet.alchemyapi.io/v2/";break;case"goerli":i="eth-goerli.g.alchemy.com/v2/";break;case"matic":i="polygon-mainnet.g.alchemy.com/v2/";break;case"maticmum":i="polygon-mumbai.g.alchemy.com/v2/";break;case"arbitrum":i="arb-mainnet.g.alchemy.com/v2/";break;case"arbitrum-goerli":i="arb-goerli.g.alchemy.com/v2/";break;case"optimism":i="opt-mainnet.g.alchemy.com/v2/";break;case"optimism-goerli":i="opt-goerli.g.alchemy.com/v2/";break;default:Ax.throwArgumentError("unsupported network","network",arguments[0])}return{allowGzip:!0,url:"https://"+i+n,throttleCallback:function(a,o){return n===hc&&(0,rS.showThrottleMessage)(),Promise.resolve(!0)}}},r.prototype.isCommunityResource=function(){return this.apiKey===hc},r}(aS.UrlJsonRpcProvider);Li.AlchemyProvider=Sx});var Px=L(ko=>{"use strict";var oS=ko&&ko.__extends||function(){var t=function(r,e){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,i){n.__proto__=i}||function(n,i){for(var a in i)Object.prototype.hasOwnProperty.call(i,a)&&(n[a]=i[a])},t(r,e)};return function(r,e){if(typeof e!="function"&&e!==null)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");t(r,e);function n(){this.constructor=r}r.prototype=e===null?Object.create(e):(n.prototype=e.prototype,new n)}}();Object.defineProperty(ko,"__esModule",{value:!0});ko.AnkrProvider=void 0;var sS=Ti(),fS=Fi(),uS=re(),cS=Rr(),lS=new uS.Logger(cS.version),bc="9f7d929b018cdffb338517efa06f58359e86ff1ffd350bc889738523659e7972";function dS(t){switch(t){case"homestead":return"rpc.ankr.com/eth/";case"ropsten":return"rpc.ankr.com/eth_ropsten/";case"rinkeby":return"rpc.ankr.com/eth_rinkeby/";case"goerli":return"rpc.ankr.com/eth_goerli/";case"matic":return"rpc.ankr.com/polygon/";case"arbitrum":return"rpc.ankr.com/arbitrum/"}return lS.throwArgumentError("unsupported network","name",t)}var hS=function(t){oS(r,t);function r(){return t!==null&&t.apply(this,arguments)||this}return r.prototype.isCommunityResource=function(){return this.apiKey===bc},r.getApiKey=function(e){return e??bc},r.getUrl=function(e,n){n==null&&(n=bc);var i={allowGzip:!0,url:"https://"+dS(e.name)+n,throttleCallback:function(a,o){return n.apiKey===bc&&(0,sS.showThrottleMessage)(),Promise.resolve(!0)}};return n.projectSecret!=null&&(i.user="",i.password=n.projectSecret),i},r}(fS.UrlJsonRpcProvider);ko.AnkrProvider=hS});var Tx=L(On=>{"use strict";var bS=On&&On.__extends||function(){var t=function(r,e){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,i){n.__proto__=i}||function(n,i){for(var a in i)Object.prototype.hasOwnProperty.call(i,a)&&(n[a]=i[a])},t(r,e)};return function(r,e){if(typeof e!="function"&&e!==null)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");t(r,e);function n(){this.constructor=r}r.prototype=e===null?Object.create(e):(n.prototype=e.prototype,new n)}}(),pS=On&&On.__awaiter||function(t,r,e,n){function i(a){return a instanceof e?a:new e(function(o){o(a)})}return new(e||(e=Promise))(function(a,o){function u(p){try{s(n.next(p))}catch(_){o(_)}}function l(p){try{s(n.throw(p))}catch(_){o(_)}}function s(p){p.done?a(p.value):i(p.value).then(u,l)}s((n=n.apply(t,r||[])).next())})},vS=On&&On.__generator||function(t,r){var e={label:0,sent:function(){if(a[0]&1)throw a[1];return a[1]},trys:[],ops:[]},n,i,a,o;return o={next:u(0),throw:u(1),return:u(2)},typeof Symbol=="function"&&(o[Symbol.iterator]=function(){return this}),o;function u(s){return function(p){return l([s,p])}}function l(s){if(n)throw new TypeError("Generator is already executing.");for(;e;)try{if(n=1,i&&(a=s[0]&2?i.return:s[0]?i.throw||((a=i.return)&&a.call(i),0):i.next)&&!(a=a.call(i,s[1])).done)return a;switch(i=0,a&&(s=[s[0]&2,a.value]),s[0]){case 0:case 1:a=s;break;case 4:return e.label++,{value:s[1],done:!1};case 5:e.label++,i=s[1],s=[0];continue;case 7:s=e.ops.pop(),e.trys.pop();continue;default:if(a=e.trys,!(a=a.length>0&&a[a.length-1])&&(s[0]===6||s[0]===2)){e=0;continue}if(s[0]===3&&(!a||s[1]>a[0]&&s[1]{"use strict";var AS=Ln&&Ln.__extends||function(){var t=function(r,e){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,i){n.__proto__=i}||function(n,i){for(var a in i)Object.prototype.hasOwnProperty.call(i,a)&&(n[a]=i[a])},t(r,e)};return function(r,e){if(typeof e!="function"&&e!==null)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");t(r,e);function n(){this.constructor=r}r.prototype=e===null?Object.create(e):(n.prototype=e.prototype,new n)}}(),pc=Ln&&Ln.__awaiter||function(t,r,e,n){function i(a){return a instanceof e?a:new e(function(o){o(a)})}return new(e||(e=Promise))(function(a,o){function u(p){try{s(n.next(p))}catch(_){o(_)}}function l(p){try{s(n.throw(p))}catch(_){o(_)}}function s(p){p.done?a(p.value):i(p.value).then(u,l)}s((n=n.apply(t,r||[])).next())})},vc=Ln&&Ln.__generator||function(t,r){var e={label:0,sent:function(){if(a[0]&1)throw a[1];return a[1]},trys:[],ops:[]},n,i,a,o;return o={next:u(0),throw:u(1),return:u(2)},typeof Symbol=="function"&&(o[Symbol.iterator]=function(){return this}),o;function u(s){return function(p){return l([s,p])}}function l(s){if(n)throw new TypeError("Generator is already executing.");for(;e;)try{if(n=1,i&&(a=s[0]&2?i.return:s[0]?i.throw||((a=i.return)&&a.call(i),0):i.next)&&!(a=a.call(i,s[1])).done)return a;switch(i=0,a&&(s=[s[0]&2,a.value]),s[0]){case 0:case 1:a=s;break;case 4:return e.label++,{value:s[1],done:!1};case 5:e.label++,i=s[1],s=[0];continue;case 7:s=e.ops.pop(),e.trys.pop();continue;default:if(a=e.trys,!(a=a.length>0&&a[a.length-1])&&(s[0]===6||s[0]===2)){e=0;continue}if(s[0]===3&&(!a||s[1]>a[0]&&s[1]=0&&(r.throttleRetry=!0),r}return t.result}function Bx(t){if(t&&t.status==0&&t.message=="NOTOK"&&(t.result||"").toLowerCase().indexOf("rate limit")>=0){var r=new Error("throttled response");throw r.result=JSON.stringify(t),r.throttleRetry=!0,r}if(t.jsonrpc!="2.0"){var r=new Error("invalid response");throw r.result=JSON.stringify(t),r}if(t.error){var r=new Error(t.error.message||"unknown error");throw t.error.code&&(r.code=t.error.code),t.error.data&&(r.data=t.error.data),r}return t.result}function Ox(t){if(t==="pending")throw new Error("pending not supported");return t==="latest"?t:parseInt(t.substring(2),16)}function wd(t,r,e){if(t==="call"&&r.code===Fn.Logger.errors.SERVER_ERROR){var n=r.error;if(n&&(n.message.match(/reverted/i)||n.message.match(/VM execution error/i))){var i=n.data;if(i&&(i="0x"+i.replace(/^.*0x/i,"")),(0,gc.isHexString)(i))return i;ki.throwError("missing revert data in call exception",Fn.Logger.errors.CALL_EXCEPTION,{error:r,data:"0x"})}}var a=r.message;throw r.code===Fn.Logger.errors.SERVER_ERROR&&(r.error&&typeof r.error.message=="string"?a=r.error.message:typeof r.body=="string"?a=r.body:typeof r.responseText=="string"&&(a=r.responseText)),a=(a||"").toLowerCase(),a.match(/insufficient funds/)&&ki.throwError("insufficient funds for intrinsic transaction cost",Fn.Logger.errors.INSUFFICIENT_FUNDS,{error:r,method:t,transaction:e}),a.match(/same hash was already imported|transaction nonce is too low|nonce too low/)&&ki.throwError("nonce has already been used",Fn.Logger.errors.NONCE_EXPIRED,{error:r,method:t,transaction:e}),a.match(/another transaction with same nonce/)&&ki.throwError("replacement fee too low",Fn.Logger.errors.REPLACEMENT_UNDERPRICED,{error:r,method:t,transaction:e}),a.match(/execution failed due to an exception|execution reverted/)&&ki.throwError("cannot estimate gas; transaction may fail or may require manual gas limit",Fn.Logger.errors.UNPREDICTABLE_GAS_LIMIT,{error:r,method:t,transaction:e}),r}var TS=function(t){AS(r,t);function r(e,n){var i=t.call(this,e)||this;return(0,Ad.defineReadOnly)(i,"baseUrl",i.getBaseUrl()),(0,Ad.defineReadOnly)(i,"apiKey",n||null),i}return r.prototype.getBaseUrl=function(){switch(this.network?this.network.name:"invalid"){case"homestead":return"https://api.etherscan.io";case"goerli":return"https://api-goerli.etherscan.io";case"sepolia":return"https://api-sepolia.etherscan.io";case"matic":return"https://api.polygonscan.com";case"maticmum":return"https://api-testnet.polygonscan.com";case"arbitrum":return"https://api.arbiscan.io";case"arbitrum-goerli":return"https://api-goerli.arbiscan.io";case"optimism":return"https://api-optimistic.etherscan.io";case"optimism-goerli":return"https://api-goerli-optimistic.etherscan.io";default:}return ki.throwArgumentError("unsupported network","network",this.network.name)},r.prototype.getUrl=function(e,n){var i=Object.keys(n).reduce(function(o,u){var l=n[u];return l!=null&&(o+="&"+u+"="+l),o},""),a=this.apiKey?"&apikey="+this.apiKey:"";return this.baseUrl+"/api?module="+e+i+a},r.prototype.getPostUrl=function(){return this.baseUrl+"/api"},r.prototype.getPostData=function(e,n){return n.module=e,n.apikey=this.apiKey,n},r.prototype.fetch=function(e,n,i){return pc(this,void 0,void 0,function(){var a,o,u,l,s,p,_=this;return vc(this,function(E){switch(E.label){case 0:return a=i?this.getPostUrl():this.getUrl(e,n),o=i?this.getPostData(e,n):null,u=e==="proxy"?Bx:ES,this.emit("debug",{action:"request",request:a,provider:this}),l={url:a,throttleSlotInterval:1e3,throttleCallback:function(C,P){return _.isCommunityResource()&&(0,SS.showThrottleMessage)(),Promise.resolve(!0)}},s=null,o&&(l.headers={"content-type":"application/x-www-form-urlencoded; charset=UTF-8"},s=Object.keys(o).map(function(C){return C+"="+o[C]}).join("&")),[4,(0,_S.fetchJson)(l,s,u||Bx)];case 1:return p=E.sent(),this.emit("debug",{action:"response",request:a,response:(0,Ad.deepCopy)(p),provider:this}),[2,p]}})})},r.prototype.detectNetwork=function(){return pc(this,void 0,void 0,function(){return vc(this,function(e){return[2,this.network]})})},r.prototype.perform=function(e,n){return pc(this,void 0,void 0,function(){var i,o,a,o,u,l,s,p,_,E,C,P,B;return vc(this,function(J){switch(J.label){case 0:switch(i=e,i){case"getBlockNumber":return[3,1];case"getGasPrice":return[3,2];case"getBalance":return[3,3];case"getTransactionCount":return[3,4];case"getCode":return[3,5];case"getStorageAt":return[3,6];case"sendTransaction":return[3,7];case"getBlock":return[3,8];case"getTransaction":return[3,9];case"getTransactionReceipt":return[3,10];case"call":return[3,11];case"estimateGas":return[3,15];case"getLogs":return[3,19];case"getEtherPrice":return[3,26]}return[3,28];case 1:return[2,this.fetch("proxy",{action:"eth_blockNumber"})];case 2:return[2,this.fetch("proxy",{action:"eth_gasPrice"})];case 3:return[2,this.fetch("account",{action:"balance",address:n.address,tag:n.blockTag})];case 4:return[2,this.fetch("proxy",{action:"eth_getTransactionCount",address:n.address,tag:n.blockTag})];case 5:return[2,this.fetch("proxy",{action:"eth_getCode",address:n.address,tag:n.blockTag})];case 6:return[2,this.fetch("proxy",{action:"eth_getStorageAt",address:n.address,position:n.position,tag:n.blockTag})];case 7:return[2,this.fetch("proxy",{action:"eth_sendRawTransaction",hex:n.signedTransaction},!0).catch(function(R){return wd("sendTransaction",R,n.signedTransaction)})];case 8:if(n.blockTag)return[2,this.fetch("proxy",{action:"eth_getBlockByNumber",tag:n.blockTag,boolean:n.includeTransactions?"true":"false"})];throw new Error("getBlock by blockHash not implemented");case 9:return[2,this.fetch("proxy",{action:"eth_getTransactionByHash",txhash:n.transactionHash})];case 10:return[2,this.fetch("proxy",{action:"eth_getTransactionReceipt",txhash:n.transactionHash})];case 11:if(n.blockTag!=="latest")throw new Error("EtherscanProvider does not support blockTag for call");o=Cx(n.transaction),o.module="proxy",o.action="eth_call",J.label=12;case 12:return J.trys.push([12,14,,15]),[4,this.fetch("proxy",o,!0)];case 13:return[2,J.sent()];case 14:return a=J.sent(),[2,wd("call",a,n.transaction)];case 15:o=Cx(n.transaction),o.module="proxy",o.action="eth_estimateGas",J.label=16;case 16:return J.trys.push([16,18,,19]),[4,this.fetch("proxy",o,!0)];case 17:return[2,J.sent()];case 18:return u=J.sent(),[2,wd("estimateGas",u,n.transaction)];case 19:return l={action:"getLogs"},n.filter.fromBlock&&(l.fromBlock=Ox(n.filter.fromBlock)),n.filter.toBlock&&(l.toBlock=Ox(n.filter.toBlock)),n.filter.address&&(l.address=n.filter.address),n.filter.topics&&n.filter.topics.length>0&&(n.filter.topics.length>1&&ki.throwError("unsupported topic count",Fn.Logger.errors.UNSUPPORTED_OPERATION,{topics:n.filter.topics}),n.filter.topics.length===1&&(s=n.filter.topics[0],(typeof s!="string"||s.length!==66)&&ki.throwError("unsupported topic format",Fn.Logger.errors.UNSUPPORTED_OPERATION,{topic0:s}),l.topic0=s)),[4,this.fetch("logs",l)];case 20:p=J.sent(),_={},E=0,J.label=21;case 21:return E{"use strict";var CS=Rn&&Rn.__extends||function(){var t=function(r,e){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,i){n.__proto__=i}||function(n,i){for(var a in i)Object.prototype.hasOwnProperty.call(i,a)&&(n[a]=i[a])},t(r,e)};return function(r,e){if(typeof e!="function"&&e!==null)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");t(r,e);function n(){this.constructor=r}r.prototype=e===null?Object.create(e):(n.prototype=e.prototype,new n)}}(),yc=Rn&&Rn.__awaiter||function(t,r,e,n){function i(a){return a instanceof e?a:new e(function(o){o(a)})}return new(e||(e=Promise))(function(a,o){function u(p){try{s(n.next(p))}catch(_){o(_)}}function l(p){try{s(n.throw(p))}catch(_){o(_)}}function s(p){p.done?a(p.value):i(p.value).then(u,l)}s((n=n.apply(t,r||[])).next())})},Ys=Rn&&Rn.__generator||function(t,r){var e={label:0,sent:function(){if(a[0]&1)throw a[1];return a[1]},trys:[],ops:[]},n,i,a,o;return o={next:u(0),throw:u(1),return:u(2)},typeof Symbol=="function"&&(o[Symbol.iterator]=function(){return this}),o;function u(s){return function(p){return l([s,p])}}function l(s){if(n)throw new TypeError("Generator is already executing.");for(;e;)try{if(n=1,i&&(a=s[0]&2?i.return:s[0]?i.throw||((a=i.return)&&a.call(i),0):i.next)&&!(a=a.call(i,s[1])).done)return a;switch(i=0,a&&(s=[s[0]&2,a.value]),s[0]){case 0:case 1:a=s;break;case 4:return e.label++,{value:s[1],done:!1};case 5:e.label++,i=s[1],s=[0];continue;case 7:s=e.ops.pop(),e.trys.pop();continue;default:if(a=e.trys,!(a=a.length>0&&a[a.length-1])&&(s[0]===6||s[0]===2)){e=0;continue}if(s[0]===3&&(!a||s[1]>a[0]&&s[1]r?null:(n+i)/2}function No(t){if(t===null)return"null";if(typeof t=="number"||typeof t=="boolean")return JSON.stringify(t);if(typeof t=="string")return t;if(OS.BigNumber.isBigNumber(t))return t.toString();if(Array.isArray(t))return JSON.stringify(t.map(function(e){return No(e)}));if(typeof t=="object"){var r=Object.keys(t);return r.sort(),"{"+r.map(function(e){var n=t[e];return typeof n=="function"?n="[function]":n=No(n),JSON.stringify(e)+":"+n}).join(",")+"}"}throw new Error("unknown value type: "+typeof t)}var NS=1;function Nx(t){var r=null,e=null,n=new Promise(function(o){r=function(){e&&(clearTimeout(e),e=null),o()},e=setTimeout(r,t)}),i=function(o){return n=n.then(o),n};function a(){return n}return{cancel:r,getPromise:a,wait:i}}var JS=[Ri.Logger.errors.CALL_EXCEPTION,Ri.Logger.errors.INSUFFICIENT_FUNDS,Ri.Logger.errors.NONCE_EXPIRED,Ri.Logger.errors.REPLACEMENT_UNDERPRICED,Ri.Logger.errors.UNPREDICTABLE_GAS_LIMIT],DS=["address","args","errorArgs","errorSignature","method","transaction"];function xc(t,r){var e={weight:t.weight};return Object.defineProperty(e,"provider",{get:function(){return t.provider}}),t.start&&(e.start=t.start),r&&(e.duration=r-t.start),t.done&&(t.error?e.error=t.error:e.result=t.result||null),e}function IS(t,r){return function(e){var n={};e.forEach(function(u){var l=t(u.result);n[l]||(n[l]={count:0,result:u.result}),n[l].count++});for(var i=Object.keys(n),a=0;a=r)return o.result}}}function US(t,r,e){var n=No;switch(r){case"getBlockNumber":return function(i){var a=i.map(function(u){return u.result}),o=Rx(i.map(function(u){return u.result}),2);if(o!=null)return o=Math.ceil(o),a.indexOf(o+1)>=0&&o++,o>=t._highestBlockNumber&&(t._highestBlockNumber=o),t._highestBlockNumber};case"getGasPrice":return function(i){var a=i.map(function(o){return o.result});return a.sort(),a[Math.floor(a.length/2)]};case"getEtherPrice":return function(i){return Rx(i.map(function(a){return a.result}))};case"getBalance":case"getTransactionCount":case"getCode":case"getStorageAt":case"call":case"estimateGas":case"getLogs":break;case"getTransaction":case"getTransactionReceipt":n=function(i){return i==null?null:(i=(0,kn.shallowCopy)(i),i.confirmations=-1,No(i))};break;case"getBlock":e.includeTransactions?n=function(i){return i==null?null:(i=(0,kn.shallowCopy)(i),i.transactions=i.transactions.map(function(a){return a=(0,kn.shallowCopy)(a),a.confirmations=-1,a}),No(i))}:n=function(i){return i==null?null:No(i)};break;default:throw new Error("unknown method: "+r)}return IS(n,t.quorum)}function Ws(t,r){return yc(this,void 0,void 0,function(){var e;return Ys(this,function(n){return e=t.provider,e.blockNumber!=null&&e.blockNumber>=r||r===-1?[2,e]:[2,(0,LS.poll)(function(){return new Promise(function(i,a){setTimeout(function(){return e.blockNumber>=r?i(e):t.cancelled?i(null):i(void 0)},0)})},{oncePoll:e})]})})}function HS(t,r,e,n){return yc(this,void 0,void 0,function(){var i,a,o;return Ys(this,function(u){switch(u.label){case 0:switch(i=t.provider,a=e,a){case"getBlockNumber":return[3,1];case"getGasPrice":return[3,1];case"getEtherPrice":return[3,2];case"getBalance":return[3,3];case"getTransactionCount":return[3,3];case"getCode":return[3,3];case"getStorageAt":return[3,6];case"getBlock":return[3,9];case"call":return[3,12];case"estimateGas":return[3,12];case"getTransaction":return[3,15];case"getTransactionReceipt":return[3,15];case"getLogs":return[3,16]}return[3,19];case 1:return[2,i[e]()];case 2:return i.getEtherPrice?[2,i.getEtherPrice()]:[3,19];case 3:return n.blockTag&&(0,Ro.isHexString)(n.blockTag)?[4,Ws(t,r)]:[3,5];case 4:i=u.sent(),u.label=5;case 5:return[2,i[e](n.address,n.blockTag||"latest")];case 6:return n.blockTag&&(0,Ro.isHexString)(n.blockTag)?[4,Ws(t,r)]:[3,8];case 7:i=u.sent(),u.label=8;case 8:return[2,i.getStorageAt(n.address,n.position,n.blockTag||"latest")];case 9:return n.blockTag&&(0,Ro.isHexString)(n.blockTag)?[4,Ws(t,r)]:[3,11];case 10:i=u.sent(),u.label=11;case 11:return[2,i[n.includeTransactions?"getBlockWithTransactions":"getBlock"](n.blockTag||n.blockHash)];case 12:return n.blockTag&&(0,Ro.isHexString)(n.blockTag)?[4,Ws(t,r)]:[3,14];case 13:i=u.sent(),u.label=14;case 14:return e==="call"&&n.blockTag?[2,i[e](n.transaction,n.blockTag)]:[2,i[e](n.transaction)];case 15:return[2,i[e](n.transactionHash)];case 16:return o=n.filter,o.fromBlock&&(0,Ro.isHexString)(o.fromBlock)||o.toBlock&&(0,Ro.isHexString)(o.toBlock)?[4,Ws(t,r)]:[3,18];case 17:i=u.sent(),u.label=18;case 18:return[2,i.getLogs(o)];case 19:return[2,Pa.throwError("unknown method error",Ri.Logger.errors.UNKNOWN_ERROR,{method:e,params:n})]}})})}var qS=function(t){CS(r,t);function r(e,n){var i=this;e.length===0&&Pa.throwArgumentError("missing providers","providers",e);var a=e.map(function(l,s){if(BS.Provider.isProvider(l)){var p=(0,Lx.isCommunityResource)(l)?2e3:750,_=1;return Object.freeze({provider:l,weight:1,stallTimeout:p,priority:_})}var E=(0,kn.shallowCopy)(l);E.priority==null&&(E.priority=1),E.stallTimeout==null&&(E.stallTimeout=(0,Lx.isCommunityResource)(l)?2e3:750),E.weight==null&&(E.weight=1);var C=E.weight;return(C%1||C>512||C<1)&&Pa.throwArgumentError("invalid weight; must be integer in [1, 512]","providers["+s+"].weight",C),Object.freeze(E)}),o=a.reduce(function(l,s){return l+s.weight},0);n==null?n=o/2:n>o&&Pa.throwArgumentError("quorum will always fail; larger than total weight","quorum",n);var u=kx(a.map(function(l){return l.provider.network}));return u==null&&(u=new Promise(function(l,s){setTimeout(function(){i.detectNetwork().then(l,s)},0)})),i=t.call(this,u)||this,(0,kn.defineReadOnly)(i,"providerConfigs",Object.freeze(a)),(0,kn.defineReadOnly)(i,"quorum",n),i._highestBlockNumber=-1,i}return r.prototype.detectNetwork=function(){return yc(this,void 0,void 0,function(){var e;return Ys(this,function(n){switch(n.label){case 0:return[4,Promise.all(this.providerConfigs.map(function(i){return i.provider.getNetwork()}))];case 1:return e=n.sent(),[2,kx(e)]}})})},r.prototype.perform=function(e,n){return yc(this,void 0,void 0,function(){var i,a,o,u,l,s,p,_,E,C,P,B=this;return Ys(this,function(J){switch(J.label){case 0:return e!=="sendTransaction"?[3,2]:[4,Promise.all(this.providerConfigs.map(function(R){return R.provider.sendTransaction(n.signedTransaction).then(function(q){return q.hash},function(q){return q})}))];case 1:for(i=J.sent(),a=0;a=C.quorum?(X=u(V),X!==void 0?(l.forEach(function(H){H.staller&&H.staller.cancel(),H.cancelled=!0}),[2,{value:X}]):_?[3,4]:[4,Nx(100).getPromise()]):[3,5];case 3:K.sent(),K.label=4;case 4:_=!1,K.label=5;case 5:return W=l.reduce(function(H,T){if(!T.done||T.error==null)return H;var b=T.error.code;return JS.indexOf(b)>=0&&(H[b]||(H[b]={error:T.error,weight:0}),H[b].weight+=T.weight),H},{}),Object.keys(W).forEach(function(H){var T=W[H];if(!(T.weight{"use strict";var XS=Jo&&Jo.__extends||function(){var t=function(r,e){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,i){n.__proto__=i}||function(n,i){for(var a in i)Object.prototype.hasOwnProperty.call(i,a)&&(n[a]=i[a])},t(r,e)};return function(r,e){if(typeof e!="function"&&e!==null)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");t(r,e);function n(){this.constructor=r}r.prototype=e===null?Object.create(e):(n.prototype=e.prototype,new n)}}();Object.defineProperty(Jo,"__esModule",{value:!0});Jo.IpcProvider=void 0;var GS=require("net"),jS=Ve(),Dx=re(),zS=Rr(),VS=new Dx.Logger(zS.version),ZS=wa(),KS=function(t){XS(r,t);function r(e,n){var i=this;return e==null&&VS.throwError("missing path",Dx.Logger.errors.MISSING_ARGUMENT,{arg:"path"}),i=t.call(this,"ipc://"+e,n)||this,(0,jS.defineReadOnly)(i,"path",e),i}return r.prototype.send=function(e,n){var i=this,a=JSON.stringify({method:e,params:n,id:42,jsonrpc:"2.0"});return new Promise(function(o,u){var l=Buffer.alloc(0),s=(0,GS.connect)(i.path);s.on("data",function(p){l=Buffer.concat([l,p])}),s.on("end",function(){try{o(JSON.parse(l.toString()).result),s.destroy()}catch(p){u(p),s.destroy()}}),s.on("error",function(p){u(p),s.destroy()}),s.write(a),s.end()})},r}(ZS.JsonRpcProvider);Jo.IpcProvider=KS});var Xx=L(Ni=>{"use strict";var Ux=Ni&&Ni.__extends||function(){var t=function(r,e){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,i){n.__proto__=i}||function(n,i){for(var a in i)Object.prototype.hasOwnProperty.call(i,a)&&(n[a]=i[a])},t(r,e)};return function(r,e){if(typeof e!="function"&&e!==null)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");t(r,e);function n(){this.constructor=r}r.prototype=e===null?Object.create(e):(n.prototype=e.prototype,new n)}}();Object.defineProperty(Ni,"__esModule",{value:!0});Ni.InfuraProvider=Ni.InfuraWebSocketProvider=void 0;var _d=Ve(),QS=lc(),WS=Ti(),Sd=re(),YS=Rr(),Ac=new Sd.Logger(YS.version),$S=Fi(),$s="84842078b09946638c03157f83405213",Hx=function(t){Ux(r,t);function r(e,n){var i=this,a=new qx(e,n),o=a.connection;o.password&&Ac.throwError("INFURA WebSocket project secrets unsupported",Sd.Logger.errors.UNSUPPORTED_OPERATION,{operation:"InfuraProvider.getWebSocketProvider()"});var u=o.url.replace(/^http/i,"ws").replace("/v3/","/ws/v3/");return i=t.call(this,u,e)||this,(0,_d.defineReadOnly)(i,"apiKey",a.projectId),(0,_d.defineReadOnly)(i,"projectId",a.projectId),(0,_d.defineReadOnly)(i,"projectSecret",a.projectSecret),i}return r.prototype.isCommunityResource=function(){return this.projectId===$s},r}(QS.WebSocketProvider);Ni.InfuraWebSocketProvider=Hx;var qx=function(t){Ux(r,t);function r(){return t!==null&&t.apply(this,arguments)||this}return r.getWebSocketProvider=function(e,n){return new Hx(e,n)},r.getApiKey=function(e){var n={apiKey:$s,projectId:$s,projectSecret:null};return e==null||(typeof e=="string"?n.projectId=e:e.projectSecret!=null?(Ac.assertArgument(typeof e.projectId=="string","projectSecret requires a projectId","projectId",e.projectId),Ac.assertArgument(typeof e.projectSecret=="string","invalid projectSecret","projectSecret","[REDACTED]"),n.projectId=e.projectId,n.projectSecret=e.projectSecret):e.projectId&&(n.projectId=e.projectId),n.apiKey=n.projectId),n},r.getUrl=function(e,n){var i=null;switch(e?e.name:"unknown"){case"homestead":i="mainnet.infura.io";break;case"goerli":i="goerli.infura.io";break;case"sepolia":i="sepolia.infura.io";break;case"matic":i="polygon-mainnet.infura.io";break;case"maticmum":i="polygon-mumbai.infura.io";break;case"optimism":i="optimism-mainnet.infura.io";break;case"optimism-goerli":i="optimism-goerli.infura.io";break;case"arbitrum":i="arbitrum-mainnet.infura.io";break;case"arbitrum-goerli":i="arbitrum-goerli.infura.io";break;default:Ac.throwError("unsupported network",Sd.Logger.errors.INVALID_ARGUMENT,{argument:"network",value:e})}var a={allowGzip:!0,url:"https://"+i+"/v3/"+n.projectId,throttleCallback:function(o,u){return n.projectId===$s&&(0,WS.showThrottleMessage)(),Promise.resolve(!0)}};return n.projectSecret!=null&&(a.user="",a.password=n.projectSecret),a},r.prototype.isCommunityResource=function(){return this.projectId===$s},r}($S.UrlJsonRpcProvider);Ni.InfuraProvider=qx});var Gx=L(Do=>{"use strict";var eM=Do&&Do.__extends||function(){var t=function(r,e){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,i){n.__proto__=i}||function(n,i){for(var a in i)Object.prototype.hasOwnProperty.call(i,a)&&(n[a]=i[a])},t(r,e)};return function(r,e){if(typeof e!="function"&&e!==null)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");t(r,e);function n(){this.constructor=r}r.prototype=e===null?Object.create(e):(n.prototype=e.prototype,new n)}}();Object.defineProperty(Do,"__esModule",{value:!0});Do.JsonRpcBatchProvider=void 0;var rM=Ve(),tM=Aa(),nM=wa(),iM=function(t){eM(r,t);function r(){return t!==null&&t.apply(this,arguments)||this}return r.prototype.send=function(e,n){var i=this,a={method:e,params:n,id:this._nextId++,jsonrpc:"2.0"};this._pendingBatch==null&&(this._pendingBatch=[]);var o={request:a,resolve:null,reject:null},u=new Promise(function(l,s){o.resolve=l,o.reject=s});return this._pendingBatch.push(o),this._pendingBatchAggregator||(this._pendingBatchAggregator=setTimeout(function(){var l=i._pendingBatch;i._pendingBatch=null,i._pendingBatchAggregator=null;var s=l.map(function(p){return p.request});return i.emit("debug",{action:"requestBatch",request:(0,rM.deepCopy)(s),provider:i}),(0,tM.fetchJson)(i.connection,JSON.stringify(s)).then(function(p){i.emit("debug",{action:"response",request:s,response:p,provider:i}),l.forEach(function(_,E){var C=p[E];if(C.error){var P=new Error(C.error.message);P.code=C.error.code,P.data=C.error.data,_.reject(P)}else _.resolve(C.result)})},function(p){i.emit("debug",{action:"response",error:p,request:s,provider:i}),l.forEach(function(_){_.reject(p)})})},10)),u},r}(nM.JsonRpcProvider);Do.JsonRpcBatchProvider=iM});var jx=L(Io=>{"use strict";var aM=Io&&Io.__extends||function(){var t=function(r,e){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,i){n.__proto__=i}||function(n,i){for(var a in i)Object.prototype.hasOwnProperty.call(i,a)&&(n[a]=i[a])},t(r,e)};return function(r,e){if(typeof e!="function"&&e!==null)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");t(r,e);function n(){this.constructor=r}r.prototype=e===null?Object.create(e):(n.prototype=e.prototype,new n)}}();Object.defineProperty(Io,"__esModule",{value:!0});Io.NodesmithProvider=void 0;var oM=Fi(),sM=re(),fM=Rr(),Md=new sM.Logger(fM.version),uM="ETHERS_JS_SHARED",cM=function(t){aM(r,t);function r(){return t!==null&&t.apply(this,arguments)||this}return r.getApiKey=function(e){return e&&typeof e!="string"&&Md.throwArgumentError("invalid apiKey","apiKey",e),e||uM},r.getUrl=function(e,n){Md.warn("NodeSmith will be discontinued on 2019-12-20; please migrate to another platform.");var i=null;switch(e.name){case"homestead":i="https://ethereum.api.nodesmith.io/v1/mainnet/jsonrpc";break;case"ropsten":i="https://ethereum.api.nodesmith.io/v1/ropsten/jsonrpc";break;case"rinkeby":i="https://ethereum.api.nodesmith.io/v1/rinkeby/jsonrpc";break;case"goerli":i="https://ethereum.api.nodesmith.io/v1/goerli/jsonrpc";break;case"kovan":i="https://ethereum.api.nodesmith.io/v1/kovan/jsonrpc";break;default:Md.throwArgumentError("unsupported network","network",arguments[0])}return i+"?apiKey="+n},r}(oM.UrlJsonRpcProvider);Io.NodesmithProvider=cM});var Kx=L(Uo=>{"use strict";var lM=Uo&&Uo.__extends||function(){var t=function(r,e){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,i){n.__proto__=i}||function(n,i){for(var a in i)Object.prototype.hasOwnProperty.call(i,a)&&(n[a]=i[a])},t(r,e)};return function(r,e){if(typeof e!="function"&&e!==null)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");t(r,e);function n(){this.constructor=r}r.prototype=e===null?Object.create(e):(n.prototype=e.prototype,new n)}}();Object.defineProperty(Uo,"__esModule",{value:!0});Uo.PocketProvider=void 0;var Zx=re(),dM=Rr(),zx=new Zx.Logger(dM.version),hM=Fi(),Vx="62e1ad51b37b8e00394bda3b",bM=function(t){lM(r,t);function r(){return t!==null&&t.apply(this,arguments)||this}return r.getApiKey=function(e){var n={applicationId:null,loadBalancer:!0,applicationSecretKey:null};return e==null?n.applicationId=Vx:typeof e=="string"?n.applicationId=e:e.applicationSecretKey!=null?(n.applicationId=e.applicationId,n.applicationSecretKey=e.applicationSecretKey):e.applicationId?n.applicationId=e.applicationId:zx.throwArgumentError("unsupported PocketProvider apiKey","apiKey",e),n},r.getUrl=function(e,n){var i=null;switch(e?e.name:"unknown"){case"goerli":i="eth-goerli.gateway.pokt.network";break;case"homestead":i="eth-mainnet.gateway.pokt.network";break;case"kovan":i="poa-kovan.gateway.pokt.network";break;case"matic":i="poly-mainnet.gateway.pokt.network";break;case"maticmum":i="polygon-mumbai-rpc.gateway.pokt.network";break;case"rinkeby":i="eth-rinkeby.gateway.pokt.network";break;case"ropsten":i="eth-ropsten.gateway.pokt.network";break;default:zx.throwError("unsupported network",Zx.Logger.errors.INVALID_ARGUMENT,{argument:"network",value:e})}var a="https://"+i+"/v1/lb/"+n.applicationId,o={headers:{},url:a};return n.applicationSecretKey!=null&&(o.user="",o.password=n.applicationSecretKey),o},r.prototype.isCommunityResource=function(){return this.applicationId===Vx},r}(hM.UrlJsonRpcProvider);Uo.PocketProvider=bM});var Yx=L(Ho=>{"use strict";var pM=Ho&&Ho.__extends||function(){var t=function(r,e){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,i){n.__proto__=i}||function(n,i){for(var a in i)Object.prototype.hasOwnProperty.call(i,a)&&(n[a]=i[a])},t(r,e)};return function(r,e){if(typeof e!="function"&&e!==null)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");t(r,e);function n(){this.constructor=r}r.prototype=e===null?Object.create(e):(n.prototype=e.prototype,new n)}}();Object.defineProperty(Ho,"__esModule",{value:!0});Ho.Web3Provider=void 0;var wc=Ve(),vM=re(),gM=Rr(),Qx=new vM.Logger(gM.version),mM=wa(),xM=1;function Wx(t,r){var e="Web3LegacyFetcher";return function(n,i){var a=this,o={method:n,params:i,id:xM++,jsonrpc:"2.0"};return new Promise(function(u,l){a.emit("debug",{action:"request",fetcher:e,request:(0,wc.deepCopy)(o),provider:a}),r(o,function(s,p){if(s)return a.emit("debug",{action:"response",fetcher:e,error:s,request:o,provider:a}),l(s);if(a.emit("debug",{action:"response",fetcher:e,request:o,response:p,provider:a}),p.error){var _=new Error(p.error.message);return _.code=p.error.code,_.data=p.error.data,l(_)}u(p.result)})})}}function yM(t){return function(r,e){var n=this;e==null&&(e=[]);var i={method:r,params:e};return this.emit("debug",{action:"request",fetcher:"Eip1193Fetcher",request:(0,wc.deepCopy)(i),provider:this}),t.request(i).then(function(a){return n.emit("debug",{action:"response",fetcher:"Eip1193Fetcher",request:i,response:a,provider:n}),a},function(a){throw n.emit("debug",{action:"response",fetcher:"Eip1193Fetcher",request:i,error:a,provider:n}),a})}}var AM=function(t){pM(r,t);function r(e,n){var i=this;e==null&&Qx.throwArgumentError("missing provider","provider",e);var a=null,o=null,u=null;return typeof e=="function"?(a="unknown:",o=e):(a=e.host||e.path||"",!a&&e.isMetaMask&&(a="metamask"),u=e,e.request?(a===""&&(a="eip-1193:"),o=yM(e)):e.sendAsync?o=Wx(e,e.sendAsync.bind(e)):e.send?o=Wx(e,e.send.bind(e)):Qx.throwArgumentError("unsupported provider","provider",e),a||(a="unknown:")),i=t.call(this,a,n)||this,(0,wc.defineReadOnly)(i,"jsonRpcFetchFunc",o),(0,wc.defineReadOnly)(i,"provider",u),i}return r.prototype.send=function(e,n){return this.jsonRpcFetchFunc(e,n)},r}(mM.JsonRpcProvider);Ho.Web3Provider=AM});var Td=L(ee=>{"use strict";Object.defineProperty(ee,"__esModule",{value:!0});ee.Formatter=ee.showThrottleMessage=ee.isCommunityResourcable=ee.isCommunityResource=ee.getNetwork=ee.getDefaultProvider=ee.JsonRpcSigner=ee.IpcProvider=ee.WebSocketProvider=ee.Web3Provider=ee.StaticJsonRpcProvider=ee.PocketProvider=ee.NodesmithProvider=ee.JsonRpcBatchProvider=ee.JsonRpcProvider=ee.InfuraWebSocketProvider=ee.InfuraProvider=ee.EtherscanProvider=ee.CloudflareProvider=ee.AnkrProvider=ee.AlchemyWebSocketProvider=ee.AlchemyProvider=ee.FallbackProvider=ee.UrlJsonRpcProvider=ee.Resolver=ee.BaseProvider=ee.Provider=void 0;var wM=Wa();Object.defineProperty(ee,"Provider",{enumerable:!0,get:function(){return wM.Provider}});var e2=Pl();Object.defineProperty(ee,"getNetwork",{enumerable:!0,get:function(){return e2.getNetwork}});var r2=Is();Object.defineProperty(ee,"BaseProvider",{enumerable:!0,get:function(){return r2.BaseProvider}});Object.defineProperty(ee,"Resolver",{enumerable:!0,get:function(){return r2.Resolver}});var Pd=Mx();Object.defineProperty(ee,"AlchemyProvider",{enumerable:!0,get:function(){return Pd.AlchemyProvider}});Object.defineProperty(ee,"AlchemyWebSocketProvider",{enumerable:!0,get:function(){return Pd.AlchemyWebSocketProvider}});var t2=Px();Object.defineProperty(ee,"AnkrProvider",{enumerable:!0,get:function(){return t2.AnkrProvider}});var n2=Tx();Object.defineProperty(ee,"CloudflareProvider",{enumerable:!0,get:function(){return n2.CloudflareProvider}});var i2=Fx();Object.defineProperty(ee,"EtherscanProvider",{enumerable:!0,get:function(){return i2.EtherscanProvider}});var a2=Jx();Object.defineProperty(ee,"FallbackProvider",{enumerable:!0,get:function(){return a2.FallbackProvider}});var o2=Ix();Object.defineProperty(ee,"IpcProvider",{enumerable:!0,get:function(){return o2.IpcProvider}});var Ed=Xx();Object.defineProperty(ee,"InfuraProvider",{enumerable:!0,get:function(){return Ed.InfuraProvider}});Object.defineProperty(ee,"InfuraWebSocketProvider",{enumerable:!0,get:function(){return Ed.InfuraWebSocketProvider}});var _c=wa();Object.defineProperty(ee,"JsonRpcProvider",{enumerable:!0,get:function(){return _c.JsonRpcProvider}});Object.defineProperty(ee,"JsonRpcSigner",{enumerable:!0,get:function(){return _c.JsonRpcSigner}});var _M=Gx();Object.defineProperty(ee,"JsonRpcBatchProvider",{enumerable:!0,get:function(){return _M.JsonRpcBatchProvider}});var s2=jx();Object.defineProperty(ee,"NodesmithProvider",{enumerable:!0,get:function(){return s2.NodesmithProvider}});var f2=Kx();Object.defineProperty(ee,"PocketProvider",{enumerable:!0,get:function(){return f2.PocketProvider}});var u2=Fi();Object.defineProperty(ee,"StaticJsonRpcProvider",{enumerable:!0,get:function(){return u2.StaticJsonRpcProvider}});Object.defineProperty(ee,"UrlJsonRpcProvider",{enumerable:!0,get:function(){return u2.UrlJsonRpcProvider}});var c2=Yx();Object.defineProperty(ee,"Web3Provider",{enumerable:!0,get:function(){return c2.Web3Provider}});var l2=lc();Object.defineProperty(ee,"WebSocketProvider",{enumerable:!0,get:function(){return l2.WebSocketProvider}});var Sc=Ti();Object.defineProperty(ee,"Formatter",{enumerable:!0,get:function(){return Sc.Formatter}});Object.defineProperty(ee,"isCommunityResourcable",{enumerable:!0,get:function(){return Sc.isCommunityResourcable}});Object.defineProperty(ee,"isCommunityResource",{enumerable:!0,get:function(){return Sc.isCommunityResource}});Object.defineProperty(ee,"showThrottleMessage",{enumerable:!0,get:function(){return Sc.showThrottleMessage}});var d2=re(),SM=Rr(),$x=new d2.Logger(SM.version);function MM(t,r){if(t==null&&(t="homestead"),typeof t=="string"){var e=t.match(/^(ws|http)s?:/i);if(e)switch(e[1].toLowerCase()){case"http":case"https":return new _c.JsonRpcProvider(t);case"ws":case"wss":return new l2.WebSocketProvider(t);default:$x.throwArgumentError("unsupported URL scheme","network",t)}}var n=(0,e2.getNetwork)(t);return(!n||!n._defaultProvider)&&$x.throwError("unsupported getDefaultProvider network",d2.Logger.errors.NETWORK_ERROR,{operation:"getDefaultProvider",network:t}),n._defaultProvider({FallbackProvider:a2.FallbackProvider,AlchemyProvider:Pd.AlchemyProvider,AnkrProvider:t2.AnkrProvider,CloudflareProvider:n2.CloudflareProvider,EtherscanProvider:i2.EtherscanProvider,InfuraProvider:Ed.InfuraProvider,JsonRpcProvider:_c.JsonRpcProvider,NodesmithProvider:s2.NodesmithProvider,PocketProvider:f2.PocketProvider,Web3Provider:c2.Web3Provider,IpcProvider:o2.IpcProvider},r)}ee.getDefaultProvider=MM});var h2=L(Mc=>{"use strict";Object.defineProperty(Mc,"__esModule",{value:!0});Mc.version=void 0;Mc.version="solidity/5.7.0"});var p2=L(Ji=>{"use strict";Object.defineProperty(Ji,"__esModule",{value:!0});Ji.sha256=Ji.keccak256=Ji.pack=void 0;var PM=hr(),Ut=De(),EM=tt(),TM=lo(),CM=pr(),BM=new RegExp("^bytes([0-9]+)$"),OM=new RegExp("^(u?int)([0-9]*)$"),FM=new RegExp("^(.*)\\[([0-9]*)\\]$"),LM="0000000000000000000000000000000000000000000000000000000000000000",kM=re(),RM=h2(),qo=new kM.Logger(RM.version);function b2(t,r,e){switch(t){case"address":return e?(0,Ut.zeroPad)(r,32):(0,Ut.arrayify)(r);case"string":return(0,CM.toUtf8Bytes)(r);case"bytes":return(0,Ut.arrayify)(r);case"bool":return r=r?"0x01":"0x00",e?(0,Ut.zeroPad)(r,32):(0,Ut.arrayify)(r)}var n=t.match(OM);if(n){var i=parseInt(n[2]||"256");return(n[2]&&String(i)!==n[2]||i%8!==0||i===0||i>256)&&qo.throwArgumentError("invalid number type","type",t),e&&(i=256),r=PM.BigNumber.from(r).toTwos(i),(0,Ut.zeroPad)(r,i/8)}if(n=t.match(BM),n){var i=parseInt(n[1]);return(String(i)!==n[1]||i===0||i>32)&&qo.throwArgumentError("invalid bytes type","type",t),(0,Ut.arrayify)(r).byteLength!==i&&qo.throwArgumentError("invalid value for "+t,"value",r),e?(0,Ut.arrayify)((r+LM).substring(0,66)):r}if(n=t.match(FM),n&&Array.isArray(r)){var a=n[1],o=parseInt(n[2]||String(r.length));o!=r.length&&qo.throwArgumentError("invalid array length for "+t,"value",r);var u=[];return r.forEach(function(l){u.push(b2(a,l,!0))}),(0,Ut.concat)(u)}return qo.throwArgumentError("invalid type","type",t)}function Cd(t,r){t.length!=r.length&&qo.throwArgumentError("wrong number of values; expected ${ types.length }","values",r);var e=[];return t.forEach(function(n,i){e.push(b2(n,r[i]))}),(0,Ut.hexlify)((0,Ut.concat)(e))}Ji.pack=Cd;function NM(t,r){return(0,EM.keccak256)(Cd(t,r))}Ji.keccak256=NM;function JM(t,r){return(0,TM.sha256)(Cd(t,r))}Ji.sha256=JM});var v2=L(Pc=>{"use strict";Object.defineProperty(Pc,"__esModule",{value:!0});Pc.version=void 0;Pc.version="units/5.7.0"});var w2=L(Ct=>{"use strict";Object.defineProperty(Ct,"__esModule",{value:!0});Ct.parseEther=Ct.formatEther=Ct.parseUnits=Ct.formatUnits=Ct.commify=void 0;var g2=hr(),DM=re(),IM=v2(),m2=new DM.Logger(IM.version),x2=["wei","kwei","mwei","gwei","szabo","finney","ether"];function UM(t){var r=String(t).split(".");(r.length>2||!r[0].match(/^-?[0-9]*$/)||r[1]&&!r[1].match(/^[0-9]*$/)||t==="."||t==="-.")&&m2.throwArgumentError("invalid value","value",t);var e=r[0],n="";for(e.substring(0,1)==="-"&&(n="-",e=e.substring(1));e.substring(0,1)==="0";)e=e.substring(1);e===""&&(e="0");var i="";for(r.length===2&&(i="."+(r[1]||"0"));i.length>2&&i[i.length-1]==="0";)i=i.substring(0,i.length-1);for(var a=[];e.length;)if(e.length<=3){a.unshift(e);break}else{var o=e.length-3;a.unshift(e.substring(o)),e=e.substring(0,o)}return n+a.join(",")+i}Ct.commify=UM;function y2(t,r){if(typeof r=="string"){var e=x2.indexOf(r);e!==-1&&(r=3*e)}return(0,g2.formatFixed)(t,r??18)}Ct.formatUnits=y2;function A2(t,r){if(typeof t!="string"&&m2.throwArgumentError("value must be a string","value",t),typeof r=="string"){var e=x2.indexOf(r);e!==-1&&(r=3*e)}return(0,g2.parseFixed)(t,r??18)}Ct.parseUnits=A2;function HM(t){return y2(t,18)}Ct.formatEther=HM;function qM(t){return A2(t,18)}Ct.parseEther=qM});var E2=L(F=>{"use strict";var XM=F&&F.__createBinding||(Object.create?function(t,r,e,n){n===void 0&&(n=e),Object.defineProperty(t,n,{enumerable:!0,get:function(){return r[e]}})}:function(t,r,e,n){n===void 0&&(n=e),t[n]=r[e]}),GM=F&&F.__setModuleDefault||(Object.create?function(t,r){Object.defineProperty(t,"default",{enumerable:!0,value:r})}:function(t,r){t.default=r}),_2=F&&F.__importStar||function(t){if(t&&t.__esModule)return t;var r={};if(t!=null)for(var e in t)e!=="default"&&Object.prototype.hasOwnProperty.call(t,e)&&XM(r,t,e);return GM(r,t),r};Object.defineProperty(F,"__esModule",{value:!0});F.formatBytes32String=F.Utf8ErrorFuncs=F.toUtf8String=F.toUtf8CodePoints=F.toUtf8Bytes=F._toEscapedUtf8String=F.nameprep=F.hexDataSlice=F.hexDataLength=F.hexZeroPad=F.hexValue=F.hexStripZeros=F.hexConcat=F.isHexString=F.hexlify=F.base64=F.base58=F.TransactionDescription=F.LogDescription=F.Interface=F.SigningKey=F.HDNode=F.defaultPath=F.isBytesLike=F.isBytes=F.zeroPad=F.stripZeros=F.concat=F.arrayify=F.shallowCopy=F.resolveProperties=F.getStatic=F.defineReadOnly=F.deepCopy=F.checkProperties=F.poll=F.fetchJson=F._fetchData=F.RLP=F.Logger=F.checkResultErrors=F.FormatTypes=F.ParamType=F.FunctionFragment=F.EventFragment=F.ErrorFragment=F.ConstructorFragment=F.Fragment=F.defaultAbiCoder=F.AbiCoder=void 0;F.Indexed=F.Utf8ErrorReason=F.UnicodeNormalizationForm=F.SupportedAlgorithm=F.mnemonicToSeed=F.isValidMnemonic=F.entropyToMnemonic=F.mnemonicToEntropy=F.getAccountPath=F.verifyTypedData=F.verifyMessage=F.recoverPublicKey=F.computePublicKey=F.recoverAddress=F.computeAddress=F.getJsonWalletAddress=F.TransactionTypes=F.serializeTransaction=F.parseTransaction=F.accessListify=F.joinSignature=F.splitSignature=F.soliditySha256=F.solidityKeccak256=F.solidityPack=F.shuffled=F.randomBytes=F.sha512=F.sha256=F.ripemd160=F.keccak256=F.computeHmac=F.commify=F.parseUnits=F.formatUnits=F.parseEther=F.formatEther=F.isAddress=F.getCreate2Address=F.getContractAddress=F.getIcapAddress=F.getAddress=F._TypedDataEncoder=F.id=F.isValidName=F.namehash=F.hashMessage=F.dnsEncode=F.parseBytes32String=void 0;var rt=p0();Object.defineProperty(F,"AbiCoder",{enumerable:!0,get:function(){return rt.AbiCoder}});Object.defineProperty(F,"checkResultErrors",{enumerable:!0,get:function(){return rt.checkResultErrors}});Object.defineProperty(F,"ConstructorFragment",{enumerable:!0,get:function(){return rt.ConstructorFragment}});Object.defineProperty(F,"defaultAbiCoder",{enumerable:!0,get:function(){return rt.defaultAbiCoder}});Object.defineProperty(F,"ErrorFragment",{enumerable:!0,get:function(){return rt.ErrorFragment}});Object.defineProperty(F,"EventFragment",{enumerable:!0,get:function(){return rt.EventFragment}});Object.defineProperty(F,"FormatTypes",{enumerable:!0,get:function(){return rt.FormatTypes}});Object.defineProperty(F,"Fragment",{enumerable:!0,get:function(){return rt.Fragment}});Object.defineProperty(F,"FunctionFragment",{enumerable:!0,get:function(){return rt.FunctionFragment}});Object.defineProperty(F,"Indexed",{enumerable:!0,get:function(){return rt.Indexed}});Object.defineProperty(F,"Interface",{enumerable:!0,get:function(){return rt.Interface}});Object.defineProperty(F,"LogDescription",{enumerable:!0,get:function(){return rt.LogDescription}});Object.defineProperty(F,"ParamType",{enumerable:!0,get:function(){return rt.ParamType}});Object.defineProperty(F,"TransactionDescription",{enumerable:!0,get:function(){return rt.TransactionDescription}});var ef=pt();Object.defineProperty(F,"getAddress",{enumerable:!0,get:function(){return ef.getAddress}});Object.defineProperty(F,"getCreate2Address",{enumerable:!0,get:function(){return ef.getCreate2Address}});Object.defineProperty(F,"getContractAddress",{enumerable:!0,get:function(){return ef.getContractAddress}});Object.defineProperty(F,"getIcapAddress",{enumerable:!0,get:function(){return ef.getIcapAddress}});Object.defineProperty(F,"isAddress",{enumerable:!0,get:function(){return ef.isAddress}});var jM=_2(ts());F.base64=jM;var zM=Mu();Object.defineProperty(F,"base58",{enumerable:!0,get:function(){return zM.Base58}});var Zr=De();Object.defineProperty(F,"arrayify",{enumerable:!0,get:function(){return Zr.arrayify}});Object.defineProperty(F,"concat",{enumerable:!0,get:function(){return Zr.concat}});Object.defineProperty(F,"hexConcat",{enumerable:!0,get:function(){return Zr.hexConcat}});Object.defineProperty(F,"hexDataSlice",{enumerable:!0,get:function(){return Zr.hexDataSlice}});Object.defineProperty(F,"hexDataLength",{enumerable:!0,get:function(){return Zr.hexDataLength}});Object.defineProperty(F,"hexlify",{enumerable:!0,get:function(){return Zr.hexlify}});Object.defineProperty(F,"hexStripZeros",{enumerable:!0,get:function(){return Zr.hexStripZeros}});Object.defineProperty(F,"hexValue",{enumerable:!0,get:function(){return Zr.hexValue}});Object.defineProperty(F,"hexZeroPad",{enumerable:!0,get:function(){return Zr.hexZeroPad}});Object.defineProperty(F,"isBytes",{enumerable:!0,get:function(){return Zr.isBytes}});Object.defineProperty(F,"isBytesLike",{enumerable:!0,get:function(){return Zr.isBytesLike}});Object.defineProperty(F,"isHexString",{enumerable:!0,get:function(){return Zr.isHexString}});Object.defineProperty(F,"joinSignature",{enumerable:!0,get:function(){return Zr.joinSignature}});Object.defineProperty(F,"zeroPad",{enumerable:!0,get:function(){return Zr.zeroPad}});Object.defineProperty(F,"splitSignature",{enumerable:!0,get:function(){return Zr.splitSignature}});Object.defineProperty(F,"stripZeros",{enumerable:!0,get:function(){return Zr.stripZeros}});var Xo=oa();Object.defineProperty(F,"_TypedDataEncoder",{enumerable:!0,get:function(){return Xo._TypedDataEncoder}});Object.defineProperty(F,"dnsEncode",{enumerable:!0,get:function(){return Xo.dnsEncode}});Object.defineProperty(F,"hashMessage",{enumerable:!0,get:function(){return Xo.hashMessage}});Object.defineProperty(F,"id",{enumerable:!0,get:function(){return Xo.id}});Object.defineProperty(F,"isValidName",{enumerable:!0,get:function(){return Xo.isValidName}});Object.defineProperty(F,"namehash",{enumerable:!0,get:function(){return Xo.namehash}});var Ea=Uu();Object.defineProperty(F,"defaultPath",{enumerable:!0,get:function(){return Ea.defaultPath}});Object.defineProperty(F,"entropyToMnemonic",{enumerable:!0,get:function(){return Ea.entropyToMnemonic}});Object.defineProperty(F,"getAccountPath",{enumerable:!0,get:function(){return Ea.getAccountPath}});Object.defineProperty(F,"HDNode",{enumerable:!0,get:function(){return Ea.HDNode}});Object.defineProperty(F,"isValidMnemonic",{enumerable:!0,get:function(){return Ea.isValidMnemonic}});Object.defineProperty(F,"mnemonicToEntropy",{enumerable:!0,get:function(){return Ea.mnemonicToEntropy}});Object.defineProperty(F,"mnemonicToSeed",{enumerable:!0,get:function(){return Ea.mnemonicToSeed}});var VM=wl();Object.defineProperty(F,"getJsonWalletAddress",{enumerable:!0,get:function(){return VM.getJsonWalletAddress}});var ZM=tt();Object.defineProperty(F,"keccak256",{enumerable:!0,get:function(){return ZM.keccak256}});var KM=re();Object.defineProperty(F,"Logger",{enumerable:!0,get:function(){return KM.Logger}});var Ec=lo();Object.defineProperty(F,"computeHmac",{enumerable:!0,get:function(){return Ec.computeHmac}});Object.defineProperty(F,"ripemd160",{enumerable:!0,get:function(){return Ec.ripemd160}});Object.defineProperty(F,"sha256",{enumerable:!0,get:function(){return Ec.sha256}});Object.defineProperty(F,"sha512",{enumerable:!0,get:function(){return Ec.sha512}});var Bd=p2();Object.defineProperty(F,"solidityKeccak256",{enumerable:!0,get:function(){return Bd.keccak256}});Object.defineProperty(F,"solidityPack",{enumerable:!0,get:function(){return Bd.pack}});Object.defineProperty(F,"soliditySha256",{enumerable:!0,get:function(){return Bd.sha256}});var S2=Cs();Object.defineProperty(F,"randomBytes",{enumerable:!0,get:function(){return S2.randomBytes}});Object.defineProperty(F,"shuffled",{enumerable:!0,get:function(){return S2.shuffled}});var Go=Ve();Object.defineProperty(F,"checkProperties",{enumerable:!0,get:function(){return Go.checkProperties}});Object.defineProperty(F,"deepCopy",{enumerable:!0,get:function(){return Go.deepCopy}});Object.defineProperty(F,"defineReadOnly",{enumerable:!0,get:function(){return Go.defineReadOnly}});Object.defineProperty(F,"getStatic",{enumerable:!0,get:function(){return Go.getStatic}});Object.defineProperty(F,"resolveProperties",{enumerable:!0,get:function(){return Go.resolveProperties}});Object.defineProperty(F,"shallowCopy",{enumerable:!0,get:function(){return Go.shallowCopy}});var QM=_2(Cf());F.RLP=QM;var Od=bs();Object.defineProperty(F,"computePublicKey",{enumerable:!0,get:function(){return Od.computePublicKey}});Object.defineProperty(F,"recoverPublicKey",{enumerable:!0,get:function(){return Od.recoverPublicKey}});Object.defineProperty(F,"SigningKey",{enumerable:!0,get:function(){return Od.SigningKey}});var Di=pr();Object.defineProperty(F,"formatBytes32String",{enumerable:!0,get:function(){return Di.formatBytes32String}});Object.defineProperty(F,"nameprep",{enumerable:!0,get:function(){return Di.nameprep}});Object.defineProperty(F,"parseBytes32String",{enumerable:!0,get:function(){return Di.parseBytes32String}});Object.defineProperty(F,"_toEscapedUtf8String",{enumerable:!0,get:function(){return Di._toEscapedUtf8String}});Object.defineProperty(F,"toUtf8Bytes",{enumerable:!0,get:function(){return Di.toUtf8Bytes}});Object.defineProperty(F,"toUtf8CodePoints",{enumerable:!0,get:function(){return Di.toUtf8CodePoints}});Object.defineProperty(F,"toUtf8String",{enumerable:!0,get:function(){return Di.toUtf8String}});Object.defineProperty(F,"Utf8ErrorFuncs",{enumerable:!0,get:function(){return Di.Utf8ErrorFuncs}});var jo=zn();Object.defineProperty(F,"accessListify",{enumerable:!0,get:function(){return jo.accessListify}});Object.defineProperty(F,"computeAddress",{enumerable:!0,get:function(){return jo.computeAddress}});Object.defineProperty(F,"parseTransaction",{enumerable:!0,get:function(){return jo.parse}});Object.defineProperty(F,"recoverAddress",{enumerable:!0,get:function(){return jo.recoverAddress}});Object.defineProperty(F,"serializeTransaction",{enumerable:!0,get:function(){return jo.serialize}});Object.defineProperty(F,"TransactionTypes",{enumerable:!0,get:function(){return jo.TransactionTypes}});var rf=w2();Object.defineProperty(F,"commify",{enumerable:!0,get:function(){return rf.commify}});Object.defineProperty(F,"formatEther",{enumerable:!0,get:function(){return rf.formatEther}});Object.defineProperty(F,"parseEther",{enumerable:!0,get:function(){return rf.parseEther}});Object.defineProperty(F,"formatUnits",{enumerable:!0,get:function(){return rf.formatUnits}});Object.defineProperty(F,"parseUnits",{enumerable:!0,get:function(){return rf.parseUnits}});var M2=Ml();Object.defineProperty(F,"verifyMessage",{enumerable:!0,get:function(){return M2.verifyMessage}});Object.defineProperty(F,"verifyTypedData",{enumerable:!0,get:function(){return M2.verifyTypedData}});var Fd=Aa();Object.defineProperty(F,"_fetchData",{enumerable:!0,get:function(){return Fd._fetchData}});Object.defineProperty(F,"fetchJson",{enumerable:!0,get:function(){return Fd.fetchJson}});Object.defineProperty(F,"poll",{enumerable:!0,get:function(){return Fd.poll}});var WM=lo();Object.defineProperty(F,"SupportedAlgorithm",{enumerable:!0,get:function(){return WM.SupportedAlgorithm}});var P2=pr();Object.defineProperty(F,"UnicodeNormalizationForm",{enumerable:!0,get:function(){return P2.UnicodeNormalizationForm}});Object.defineProperty(F,"Utf8ErrorReason",{enumerable:!0,get:function(){return P2.Utf8ErrorReason}})});var T2=L(Tc=>{"use strict";Object.defineProperty(Tc,"__esModule",{value:!0});Tc.version=void 0;Tc.version="ethers/5.7.2"});var Rd=L(Je=>{"use strict";var YM=Je&&Je.__createBinding||(Object.create?function(t,r,e,n){n===void 0&&(n=e),Object.defineProperty(t,n,{enumerable:!0,get:function(){return r[e]}})}:function(t,r,e,n){n===void 0&&(n=e),t[n]=r[e]}),$M=Je&&Je.__setModuleDefault||(Object.create?function(t,r){Object.defineProperty(t,"default",{enumerable:!0,value:r})}:function(t,r){t.default=r}),Ld=Je&&Je.__importStar||function(t){if(t&&t.__esModule)return t;var r={};if(t!=null)for(var e in t)e!=="default"&&Object.prototype.hasOwnProperty.call(t,e)&&YM(r,t,e);return $M(r,t),r};Object.defineProperty(Je,"__esModule",{value:!0});Je.Wordlist=Je.version=Je.wordlists=Je.utils=Je.logger=Je.errors=Je.constants=Je.FixedNumber=Je.BigNumber=Je.ContractFactory=Je.Contract=Je.BaseContract=Je.providers=Je.getDefaultProvider=Je.VoidSigner=Je.Wallet=Je.Signer=void 0;var kd=Kv();Object.defineProperty(Je,"BaseContract",{enumerable:!0,get:function(){return kd.BaseContract}});Object.defineProperty(Je,"Contract",{enumerable:!0,get:function(){return kd.Contract}});Object.defineProperty(Je,"ContractFactory",{enumerable:!0,get:function(){return kd.ContractFactory}});var C2=hr();Object.defineProperty(Je,"BigNumber",{enumerable:!0,get:function(){return C2.BigNumber}});Object.defineProperty(Je,"FixedNumber",{enumerable:!0,get:function(){return C2.FixedNumber}});var B2=as();Object.defineProperty(Je,"Signer",{enumerable:!0,get:function(){return B2.Signer}});Object.defineProperty(Je,"VoidSigner",{enumerable:!0,get:function(){return B2.VoidSigner}});var eP=Ml();Object.defineProperty(Je,"Wallet",{enumerable:!0,get:function(){return eP.Wallet}});var rP=Ld(ra());Je.constants=rP;var tP=Ld(Td());Je.providers=tP;var nP=Td();Object.defineProperty(Je,"getDefaultProvider",{enumerable:!0,get:function(){return nP.getDefaultProvider}});var O2=cl();Object.defineProperty(Je,"Wordlist",{enumerable:!0,get:function(){return O2.Wordlist}});Object.defineProperty(Je,"wordlists",{enumerable:!0,get:function(){return O2.wordlists}});var iP=Ld(E2());Je.utils=iP;var F2=re();Object.defineProperty(Je,"errors",{enumerable:!0,get:function(){return F2.ErrorCode}});var L2=T2();Object.defineProperty(Je,"version",{enumerable:!0,get:function(){return L2.version}});var aP=new F2.Logger(L2.version);Je.logger=aP});var R2=L(Ne=>{"use strict";var oP=Ne&&Ne.__createBinding||(Object.create?function(t,r,e,n){n===void 0&&(n=e),Object.defineProperty(t,n,{enumerable:!0,get:function(){return r[e]}})}:function(t,r,e,n){n===void 0&&(n=e),t[n]=r[e]}),sP=Ne&&Ne.__setModuleDefault||(Object.create?function(t,r){Object.defineProperty(t,"default",{enumerable:!0,value:r})}:function(t,r){t.default=r}),fP=Ne&&Ne.__importStar||function(t){if(t&&t.__esModule)return t;var r={};if(t!=null)for(var e in t)e!=="default"&&Object.prototype.hasOwnProperty.call(t,e)&&oP(r,t,e);return sP(r,t),r};Object.defineProperty(Ne,"__esModule",{value:!0});Ne.Wordlist=Ne.version=Ne.wordlists=Ne.utils=Ne.logger=Ne.errors=Ne.constants=Ne.FixedNumber=Ne.BigNumber=Ne.ContractFactory=Ne.Contract=Ne.BaseContract=Ne.providers=Ne.getDefaultProvider=Ne.VoidSigner=Ne.Wallet=Ne.Signer=Ne.ethers=void 0;var k2=fP(Rd());Ne.ethers=k2;try{Nd=window,Nd._ethers==null&&(Nd._ethers=k2)}catch{}var Nd,Nr=Rd();Object.defineProperty(Ne,"Signer",{enumerable:!0,get:function(){return Nr.Signer}});Object.defineProperty(Ne,"Wallet",{enumerable:!0,get:function(){return Nr.Wallet}});Object.defineProperty(Ne,"VoidSigner",{enumerable:!0,get:function(){return Nr.VoidSigner}});Object.defineProperty(Ne,"getDefaultProvider",{enumerable:!0,get:function(){return Nr.getDefaultProvider}});Object.defineProperty(Ne,"providers",{enumerable:!0,get:function(){return Nr.providers}});Object.defineProperty(Ne,"BaseContract",{enumerable:!0,get:function(){return Nr.BaseContract}});Object.defineProperty(Ne,"Contract",{enumerable:!0,get:function(){return Nr.Contract}});Object.defineProperty(Ne,"ContractFactory",{enumerable:!0,get:function(){return Nr.ContractFactory}});Object.defineProperty(Ne,"BigNumber",{enumerable:!0,get:function(){return Nr.BigNumber}});Object.defineProperty(Ne,"FixedNumber",{enumerable:!0,get:function(){return Nr.FixedNumber}});Object.defineProperty(Ne,"constants",{enumerable:!0,get:function(){return Nr.constants}});Object.defineProperty(Ne,"errors",{enumerable:!0,get:function(){return Nr.errors}});Object.defineProperty(Ne,"logger",{enumerable:!0,get:function(){return Nr.logger}});Object.defineProperty(Ne,"utils",{enumerable:!0,get:function(){return Nr.utils}});Object.defineProperty(Ne,"wordlists",{enumerable:!0,get:function(){return Nr.wordlists}});Object.defineProperty(Ne,"version",{enumerable:!0,get:function(){return Nr.version}});Object.defineProperty(Ne,"Wordlist",{enumerable:!0,get:function(){return Nr.Wordlist}})});var lP={};H2(lP,{getAddress:()=>uP,getKeystore:()=>cP,getWallet:()=>Dd});module.exports=X2(lP);var Jd=q2(R2());async function uP(t){return Dd(t).address}async function cP(t){let e=await Dd(t).encrypt("");return JSON.parse(e)}function Dd(t){return t?Jd.ethers.Wallet.fromMnemonic(t):Jd.ethers.Wallet.createRandom()}0&&(module.exports={getAddress,getKeystore,getWallet}); +/** + * [js-sha3]{@link https://github.com/emn178/js-sha3} + * + * @version 0.8.0 + * @author Chen, Yi-Cyuan [emn178@gmail.com] + * @copyright Chen, Yi-Cyuan 2015-2018 + * @license MIT + */ +//# sourceMappingURL=index.js.map diff --git a/common/ethers-helpers/dist/index.js.map b/common/ethers-helpers/dist/index.js.map new file mode 100644 index 000000000..a4c0d77f2 --- /dev/null +++ b/common/ethers-helpers/dist/index.js.map @@ -0,0 +1,7 @@ +{ + "version": 3, + "sources": ["../../../node_modules/bn.js/lib/bn.js", "../../../node_modules/@ethersproject/logger/src.ts/_version.ts", "../../../node_modules/@ethersproject/logger/src.ts/index.ts", "../../../node_modules/@ethersproject/bytes/src.ts/_version.ts", "../../../node_modules/@ethersproject/bytes/src.ts/index.ts", "../../../node_modules/@ethersproject/bignumber/src.ts/_version.ts", "../../../node_modules/@ethersproject/bignumber/src.ts/bignumber.ts", "../../../node_modules/@ethersproject/bignumber/src.ts/fixednumber.ts", "../../../node_modules/@ethersproject/bignumber/src.ts/index.ts", "../../../node_modules/@ethersproject/properties/src.ts/_version.ts", "../../../node_modules/@ethersproject/properties/src.ts/index.ts", "../../../node_modules/@ethersproject/abi/src.ts/_version.ts", "../../../node_modules/@ethersproject/abi/src.ts/fragments.ts", "../../../node_modules/@ethersproject/abi/src.ts/coders/abstract-coder.ts", "../../../node_modules/js-sha3/src/sha3.js", "../../../node_modules/@ethersproject/keccak256/src.ts/index.ts", "../../../node_modules/@ethersproject/rlp/src.ts/_version.ts", "../../../node_modules/@ethersproject/rlp/src.ts/index.ts", "../../../node_modules/@ethersproject/address/src.ts/_version.ts", "../../../node_modules/@ethersproject/address/src.ts/index.ts", "../../../node_modules/@ethersproject/abi/src.ts/coders/address.ts", "../../../node_modules/@ethersproject/abi/src.ts/coders/anonymous.ts", "../../../node_modules/@ethersproject/abi/src.ts/coders/array.ts", "../../../node_modules/@ethersproject/abi/src.ts/coders/boolean.ts", "../../../node_modules/@ethersproject/abi/src.ts/coders/bytes.ts", "../../../node_modules/@ethersproject/abi/src.ts/coders/fixed-bytes.ts", "../../../node_modules/@ethersproject/abi/src.ts/coders/null.ts", "../../../node_modules/@ethersproject/constants/src.ts/addresses.ts", "../../../node_modules/@ethersproject/constants/src.ts/bignumbers.ts", "../../../node_modules/@ethersproject/constants/src.ts/hashes.ts", "../../../node_modules/@ethersproject/constants/src.ts/strings.ts", "../../../node_modules/@ethersproject/constants/src.ts/index.ts", "../../../node_modules/@ethersproject/abi/src.ts/coders/number.ts", "../../../node_modules/@ethersproject/strings/src.ts/_version.ts", "../../../node_modules/@ethersproject/strings/src.ts/utf8.ts", "../../../node_modules/@ethersproject/strings/src.ts/bytes32.ts", "../../../node_modules/@ethersproject/strings/src.ts/idna.ts", "../../../node_modules/@ethersproject/strings/src.ts/index.ts", "../../../node_modules/@ethersproject/abi/src.ts/coders/string.ts", "../../../node_modules/@ethersproject/abi/src.ts/coders/tuple.ts", "../../../node_modules/@ethersproject/abi/src.ts/abi-coder.ts", "../../../node_modules/@ethersproject/hash/src.ts/id.ts", "../../../node_modules/@ethersproject/hash/src.ts/_version.ts", "../../../node_modules/@ethersproject/base64/src.ts/base64.ts", "../../../node_modules/@ethersproject/base64/src.ts/index.ts", "../../../node_modules/@ethersproject/hash/src.ts/ens-normalize/decoder.ts", "../../../node_modules/@ethersproject/hash/src.ts/ens-normalize/include.ts", "../../../node_modules/@ethersproject/hash/src.ts/ens-normalize/lib.ts", "../../../node_modules/@ethersproject/hash/src.ts/namehash.ts", "../../../node_modules/@ethersproject/hash/src.ts/message.ts", "../../../node_modules/@ethersproject/hash/src.ts/typed-data.ts", "../../../node_modules/@ethersproject/hash/src.ts/index.ts", "../../../node_modules/@ethersproject/abi/src.ts/interface.ts", "../../../node_modules/@ethersproject/abi/src.ts/index.ts", "../../../node_modules/@ethersproject/abstract-provider/src.ts/_version.ts", "../../../node_modules/@ethersproject/abstract-provider/src.ts/index.ts", "../../../node_modules/@ethersproject/abstract-signer/src.ts/_version.ts", "../../../node_modules/@ethersproject/abstract-signer/src.ts/index.ts", "../../../node_modules/elliptic/node_modules/bn.js/lib/bn.js", "../../../node_modules/minimalistic-assert/index.js", "../../../node_modules/minimalistic-crypto-utils/lib/utils.js", "../../../node_modules/elliptic/lib/elliptic/utils.js", "../../../node_modules/brorand/index.js", "../../../node_modules/elliptic/lib/elliptic/curve/base.js", "../../../node_modules/inherits/inherits_browser.js", "../../../node_modules/inherits/inherits.js", "../../../node_modules/elliptic/lib/elliptic/curve/short.js", "../../../node_modules/elliptic/lib/elliptic/curve/mont.js", "../../../node_modules/elliptic/lib/elliptic/curve/edwards.js", "../../../node_modules/elliptic/lib/elliptic/curve/index.js", "../../../node_modules/hash.js/lib/hash/utils.js", "../../../node_modules/hash.js/lib/hash/common.js", "../../../node_modules/hash.js/lib/hash/sha/common.js", "../../../node_modules/hash.js/lib/hash/sha/1.js", "../../../node_modules/hash.js/lib/hash/sha/256.js", "../../../node_modules/hash.js/lib/hash/sha/224.js", "../../../node_modules/hash.js/lib/hash/sha/512.js", "../../../node_modules/hash.js/lib/hash/sha/384.js", "../../../node_modules/hash.js/lib/hash/sha.js", "../../../node_modules/hash.js/lib/hash/ripemd.js", "../../../node_modules/hash.js/lib/hash/hmac.js", "../../../node_modules/hash.js/lib/hash.js", "../../../node_modules/elliptic/lib/elliptic/precomputed/secp256k1.js", "../../../node_modules/elliptic/lib/elliptic/curves.js", "../../../node_modules/hmac-drbg/lib/hmac-drbg.js", "../../../node_modules/elliptic/lib/elliptic/ec/key.js", "../../../node_modules/elliptic/lib/elliptic/ec/signature.js", "../../../node_modules/elliptic/lib/elliptic/ec/index.js", "../../../node_modules/elliptic/lib/elliptic/eddsa/key.js", "../../../node_modules/elliptic/lib/elliptic/eddsa/signature.js", "../../../node_modules/elliptic/lib/elliptic/eddsa/index.js", "../../../node_modules/elliptic/lib/elliptic.js", "../../../node_modules/@ethersproject/signing-key/src.ts/elliptic.ts", "../../../node_modules/@ethersproject/signing-key/src.ts/_version.ts", "../../../node_modules/@ethersproject/signing-key/src.ts/index.ts", "../../../node_modules/@ethersproject/transactions/src.ts/_version.ts", "../../../node_modules/@ethersproject/transactions/src.ts/index.ts", "../../../node_modules/@ethersproject/contracts/src.ts/_version.ts", "../../../node_modules/@ethersproject/contracts/src.ts/index.ts", "../../../node_modules/@ethersproject/basex/src.ts/index.ts", "../../../node_modules/@ethersproject/pbkdf2/src.ts/pbkdf2.ts", "../../../node_modules/@ethersproject/pbkdf2/src.ts/index.ts", "../../../node_modules/@ethersproject/sha2/src.ts/types.ts", "../../../node_modules/@ethersproject/sha2/src.ts/_version.ts", "../../../node_modules/@ethersproject/sha2/src.ts/sha2.ts", "../../../node_modules/@ethersproject/sha2/src.ts/index.ts", "../../../node_modules/@ethersproject/wordlists/src.ts/_version.ts", "../../../node_modules/@ethersproject/wordlists/src.ts/wordlist.ts", "../../../node_modules/@ethersproject/wordlists/src.ts/lang-cz.ts", "../../../node_modules/@ethersproject/wordlists/src.ts/lang-en.ts", "../../../node_modules/@ethersproject/wordlists/src.ts/lang-es.ts", "../../../node_modules/@ethersproject/wordlists/src.ts/lang-fr.ts", "../../../node_modules/@ethersproject/wordlists/src.ts/lang-ja.ts", "../../../node_modules/@ethersproject/wordlists/src.ts/lang-ko.ts", "../../../node_modules/@ethersproject/wordlists/src.ts/lang-it.ts", "../../../node_modules/@ethersproject/wordlists/src.ts/lang-zh.ts", "../../../node_modules/@ethersproject/wordlists/src.ts/wordlists.ts", "../../../node_modules/@ethersproject/wordlists/src.ts/index.ts", "../../../node_modules/@ethersproject/hdnode/src.ts/_version.ts", "../../../node_modules/@ethersproject/hdnode/src.ts/index.ts", "../../../node_modules/@ethersproject/random/src.ts/random.ts", "../../../node_modules/@ethersproject/random/src.ts/shuffle.ts", "../../../node_modules/@ethersproject/random/src.ts/index.ts", "../../../node_modules/@ethersproject/json-wallets/node_modules/aes-js/index.js", "../../../node_modules/@ethersproject/json-wallets/src.ts/_version.ts", "../../../node_modules/@ethersproject/json-wallets/src.ts/utils.ts", "../../../node_modules/@ethersproject/json-wallets/src.ts/crowdsale.ts", "../../../node_modules/@ethersproject/json-wallets/src.ts/inspect.ts", "../../../node_modules/scrypt-js/scrypt.js", "../../../node_modules/@ethersproject/json-wallets/src.ts/keystore.ts", "../../../node_modules/@ethersproject/json-wallets/src.ts/index.ts", "../../../node_modules/@ethersproject/wallet/src.ts/_version.ts", "../../../node_modules/@ethersproject/wallet/src.ts/index.ts", "../../../node_modules/@ethersproject/networks/src.ts/_version.ts", "../../../node_modules/@ethersproject/networks/src.ts/index.ts", "../../../node_modules/@ethersproject/web/src.ts/_version.ts", "../../../node_modules/@ethersproject/web/src.ts/geturl.ts", "../../../node_modules/@ethersproject/web/src.ts/index.ts", "../../../node_modules/bech32/index.js", "../../../node_modules/@ethersproject/providers/src.ts/_version.ts", "../../../node_modules/@ethersproject/providers/src.ts/formatter.ts", "../../../node_modules/@ethersproject/providers/src.ts/base-provider.ts", "../../../node_modules/@ethersproject/providers/src.ts/json-rpc-provider.ts", "../../../node_modules/ws/lib/constants.js", "../../../node_modules/node-gyp-build/index.js", "../../../node_modules/bufferutil/fallback.js", "../../../node_modules/bufferutil/index.js", "../../../node_modules/ws/lib/buffer-util.js", "../../../node_modules/ws/lib/limiter.js", "../../../node_modules/ws/lib/permessage-deflate.js", "../../../node_modules/utf-8-validate/fallback.js", "../../../node_modules/utf-8-validate/index.js", "../../../node_modules/ws/lib/validation.js", "../../../node_modules/ws/lib/receiver.js", "../../../node_modules/ws/lib/sender.js", "../../../node_modules/ws/lib/event-target.js", "../../../node_modules/ws/lib/extension.js", "../../../node_modules/ws/lib/websocket.js", "../../../node_modules/ws/lib/stream.js", "../../../node_modules/ws/lib/websocket-server.js", "../../../node_modules/ws/index.js", "../../../node_modules/@ethersproject/providers/src.ts/ws.ts", "../../../node_modules/@ethersproject/providers/src.ts/websocket-provider.ts", "../../../node_modules/@ethersproject/providers/src.ts/url-json-rpc-provider.ts", "../../../node_modules/@ethersproject/providers/src.ts/alchemy-provider.ts", "../../../node_modules/@ethersproject/providers/src.ts/ankr-provider.ts", "../../../node_modules/@ethersproject/providers/src.ts/cloudflare-provider.ts", "../../../node_modules/@ethersproject/providers/src.ts/etherscan-provider.ts", "../../../node_modules/@ethersproject/providers/src.ts/fallback-provider.ts", "../../../node_modules/@ethersproject/providers/src.ts/ipc-provider.ts", "../../../node_modules/@ethersproject/providers/src.ts/infura-provider.ts", "../../../node_modules/@ethersproject/providers/src.ts/json-rpc-batch-provider.ts", "../../../node_modules/@ethersproject/providers/src.ts/nodesmith-provider.ts", "../../../node_modules/@ethersproject/providers/src.ts/pocket-provider.ts", "../../../node_modules/@ethersproject/providers/src.ts/web3-provider.ts", "../../../node_modules/@ethersproject/providers/src.ts/index.ts", "../../../node_modules/@ethersproject/solidity/src.ts/_version.ts", "../../../node_modules/@ethersproject/solidity/src.ts/index.ts", "../../../node_modules/@ethersproject/units/src.ts/_version.ts", "../../../node_modules/@ethersproject/units/src.ts/index.ts", "../../../node_modules/ethers/src.ts/utils.ts", "../../../node_modules/ethers/src.ts/_version.ts", "../../../node_modules/ethers/src.ts/ethers.ts", "../../../node_modules/ethers/src.ts/index.ts", "../src/index.ts"], + "sourcesContent": ["(function (module, exports) {\n 'use strict';\n\n // Utils\n function assert (val, msg) {\n if (!val) throw new Error(msg || 'Assertion failed');\n }\n\n // Could use `inherits` module, but don't want to move from single file\n // architecture yet.\n function inherits (ctor, superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function () {};\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n\n // BN\n\n function BN (number, base, endian) {\n if (BN.isBN(number)) {\n return number;\n }\n\n this.negative = 0;\n this.words = null;\n this.length = 0;\n\n // Reduction context\n this.red = null;\n\n if (number !== null) {\n if (base === 'le' || base === 'be') {\n endian = base;\n base = 10;\n }\n\n this._init(number || 0, base || 10, endian || 'be');\n }\n }\n if (typeof module === 'object') {\n module.exports = BN;\n } else {\n exports.BN = BN;\n }\n\n BN.BN = BN;\n BN.wordSize = 26;\n\n var Buffer;\n try {\n if (typeof window !== 'undefined' && typeof window.Buffer !== 'undefined') {\n Buffer = window.Buffer;\n } else {\n Buffer = require('buffer').Buffer;\n }\n } catch (e) {\n }\n\n BN.isBN = function isBN (num) {\n if (num instanceof BN) {\n return true;\n }\n\n return num !== null && typeof num === 'object' &&\n num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);\n };\n\n BN.max = function max (left, right) {\n if (left.cmp(right) > 0) return left;\n return right;\n };\n\n BN.min = function min (left, right) {\n if (left.cmp(right) < 0) return left;\n return right;\n };\n\n BN.prototype._init = function init (number, base, endian) {\n if (typeof number === 'number') {\n return this._initNumber(number, base, endian);\n }\n\n if (typeof number === 'object') {\n return this._initArray(number, base, endian);\n }\n\n if (base === 'hex') {\n base = 16;\n }\n assert(base === (base | 0) && base >= 2 && base <= 36);\n\n number = number.toString().replace(/\\s+/g, '');\n var start = 0;\n if (number[0] === '-') {\n start++;\n this.negative = 1;\n }\n\n if (start < number.length) {\n if (base === 16) {\n this._parseHex(number, start, endian);\n } else {\n this._parseBase(number, base, start);\n if (endian === 'le') {\n this._initArray(this.toArray(), base, endian);\n }\n }\n }\n };\n\n BN.prototype._initNumber = function _initNumber (number, base, endian) {\n if (number < 0) {\n this.negative = 1;\n number = -number;\n }\n if (number < 0x4000000) {\n this.words = [number & 0x3ffffff];\n this.length = 1;\n } else if (number < 0x10000000000000) {\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff\n ];\n this.length = 2;\n } else {\n assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff,\n 1\n ];\n this.length = 3;\n }\n\n if (endian !== 'le') return;\n\n // Reverse the bytes\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initArray = function _initArray (number, base, endian) {\n // Perhaps a Uint8Array\n assert(typeof number.length === 'number');\n if (number.length <= 0) {\n this.words = [0];\n this.length = 1;\n return this;\n }\n\n this.length = Math.ceil(number.length / 3);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n var off = 0;\n if (endian === 'be') {\n for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n } else if (endian === 'le') {\n for (i = 0, j = 0; i < number.length; i += 3) {\n w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n return this._strip();\n };\n\n function parseHex4Bits (string, index) {\n var c = string.charCodeAt(index);\n // '0' - '9'\n if (c >= 48 && c <= 57) {\n return c - 48;\n // 'A' - 'F'\n } else if (c >= 65 && c <= 70) {\n return c - 55;\n // 'a' - 'f'\n } else if (c >= 97 && c <= 102) {\n return c - 87;\n } else {\n assert(false, 'Invalid character in ' + string);\n }\n }\n\n function parseHexByte (string, lowerBound, index) {\n var r = parseHex4Bits(string, index);\n if (index - 1 >= lowerBound) {\n r |= parseHex4Bits(string, index - 1) << 4;\n }\n return r;\n }\n\n BN.prototype._parseHex = function _parseHex (number, start, endian) {\n // Create possibly bigger array to ensure that it fits the number\n this.length = Math.ceil((number.length - start) / 6);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n // 24-bits chunks\n var off = 0;\n var j = 0;\n\n var w;\n if (endian === 'be') {\n for (i = number.length - 1; i >= start; i -= 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n } else {\n var parseLength = number.length - start;\n for (i = parseLength % 2 === 0 ? start + 1 : start; i < number.length; i += 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n }\n\n this._strip();\n };\n\n function parseBase (str, start, end, mul) {\n var r = 0;\n var b = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r *= mul;\n\n // 'a'\n if (c >= 49) {\n b = c - 49 + 0xa;\n\n // 'A'\n } else if (c >= 17) {\n b = c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n b = c;\n }\n assert(c >= 0 && b < mul, 'Invalid character');\n r += b;\n }\n return r;\n }\n\n BN.prototype._parseBase = function _parseBase (number, base, start) {\n // Initialize as zero\n this.words = [0];\n this.length = 1;\n\n // Find length of limb in base\n for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n limbLen++;\n }\n limbLen--;\n limbPow = (limbPow / base) | 0;\n\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n\n var word = 0;\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n\n this.imuln(limbPow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n if (mod !== 0) {\n var pow = 1;\n word = parseBase(number, i, number.length, base);\n\n for (i = 0; i < mod; i++) {\n pow *= base;\n }\n\n this.imuln(pow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n this._strip();\n };\n\n BN.prototype.copy = function copy (dest) {\n dest.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n dest.words[i] = this.words[i];\n }\n dest.length = this.length;\n dest.negative = this.negative;\n dest.red = this.red;\n };\n\n function move (dest, src) {\n dest.words = src.words;\n dest.length = src.length;\n dest.negative = src.negative;\n dest.red = src.red;\n }\n\n BN.prototype._move = function _move (dest) {\n move(dest, this);\n };\n\n BN.prototype.clone = function clone () {\n var r = new BN(null);\n this.copy(r);\n return r;\n };\n\n BN.prototype._expand = function _expand (size) {\n while (this.length < size) {\n this.words[this.length++] = 0;\n }\n return this;\n };\n\n // Remove leading `0` from `this`\n BN.prototype._strip = function strip () {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\n return this._normSign();\n };\n\n BN.prototype._normSign = function _normSign () {\n // -0 = 0\n if (this.length === 1 && this.words[0] === 0) {\n this.negative = 0;\n }\n return this;\n };\n\n // Check Symbol.for because not everywhere where Symbol defined\n // See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol#Browser_compatibility\n if (typeof Symbol !== 'undefined' && typeof Symbol.for === 'function') {\n try {\n BN.prototype[Symbol.for('nodejs.util.inspect.custom')] = inspect;\n } catch (e) {\n BN.prototype.inspect = inspect;\n }\n } else {\n BN.prototype.inspect = inspect;\n }\n\n function inspect () {\n return (this.red ? '';\n }\n\n /*\n\n var zeros = [];\n var groupSizes = [];\n var groupBases = [];\n\n var s = '';\n var i = -1;\n while (++i < BN.wordSize) {\n zeros[i] = s;\n s += '0';\n }\n groupSizes[0] = 0;\n groupSizes[1] = 0;\n groupBases[0] = 0;\n groupBases[1] = 0;\n var base = 2 - 1;\n while (++base < 36 + 1) {\n var groupSize = 0;\n var groupBase = 1;\n while (groupBase < (1 << BN.wordSize) / base) {\n groupBase *= base;\n groupSize += 1;\n }\n groupSizes[base] = groupSize;\n groupBases[base] = groupBase;\n }\n\n */\n\n var zeros = [\n '',\n '0',\n '00',\n '000',\n '0000',\n '00000',\n '000000',\n '0000000',\n '00000000',\n '000000000',\n '0000000000',\n '00000000000',\n '000000000000',\n '0000000000000',\n '00000000000000',\n '000000000000000',\n '0000000000000000',\n '00000000000000000',\n '000000000000000000',\n '0000000000000000000',\n '00000000000000000000',\n '000000000000000000000',\n '0000000000000000000000',\n '00000000000000000000000',\n '000000000000000000000000',\n '0000000000000000000000000'\n ];\n\n var groupSizes = [\n 0, 0,\n 25, 16, 12, 11, 10, 9, 8,\n 8, 7, 7, 7, 7, 6, 6,\n 6, 6, 6, 6, 6, 5, 5,\n 5, 5, 5, 5, 5, 5, 5,\n 5, 5, 5, 5, 5, 5, 5\n ];\n\n var groupBases = [\n 0, 0,\n 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,\n 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,\n 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,\n 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,\n 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176\n ];\n\n BN.prototype.toString = function toString (base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n\n var out;\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = this.words[i];\n var word = (((w << off) | carry) & 0xffffff).toString(16);\n carry = (w >>> (24 - off)) & 0xffffff;\n off += 2;\n if (off >= 26) {\n off -= 26;\n i--;\n }\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n }\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n if (base === (base | 0) && base >= 2 && base <= 36) {\n // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n var groupSize = groupSizes[base];\n // var groupBase = Math.pow(base, groupSize);\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n while (!c.isZero()) {\n var r = c.modrn(groupBase).toString(base);\n c = c.idivn(groupBase);\n\n if (!c.isZero()) {\n out = zeros[groupSize - r.length] + r + out;\n } else {\n out = r + out;\n }\n }\n if (this.isZero()) {\n out = '0' + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n assert(false, 'Base should be between 2 and 36');\n };\n\n BN.prototype.toNumber = function toNumber () {\n var ret = this.words[0];\n if (this.length === 2) {\n ret += this.words[1] * 0x4000000;\n } else if (this.length === 3 && this.words[2] === 0x01) {\n // NOTE: at this stage it is known that the top bit is set\n ret += 0x10000000000000 + (this.words[1] * 0x4000000);\n } else if (this.length > 2) {\n assert(false, 'Number can only safely store up to 53 bits');\n }\n return (this.negative !== 0) ? -ret : ret;\n };\n\n BN.prototype.toJSON = function toJSON () {\n return this.toString(16, 2);\n };\n\n if (Buffer) {\n BN.prototype.toBuffer = function toBuffer (endian, length) {\n return this.toArrayLike(Buffer, endian, length);\n };\n }\n\n BN.prototype.toArray = function toArray (endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n var allocate = function allocate (ArrayType, size) {\n if (ArrayType.allocUnsafe) {\n return ArrayType.allocUnsafe(size);\n }\n return new ArrayType(size);\n };\n\n BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n this._strip();\n\n var byteLength = this.byteLength();\n var reqLength = length || Math.max(1, byteLength);\n assert(byteLength <= reqLength, 'byte array longer than desired length');\n assert(reqLength > 0, 'Requested array length <= 0');\n\n var res = allocate(ArrayType, reqLength);\n var postfix = endian === 'le' ? 'LE' : 'BE';\n this['_toArrayLike' + postfix](res, byteLength);\n return res;\n };\n\n BN.prototype._toArrayLikeLE = function _toArrayLikeLE (res, byteLength) {\n var position = 0;\n var carry = 0;\n\n for (var i = 0, shift = 0; i < this.length; i++) {\n var word = (this.words[i] << shift) | carry;\n\n res[position++] = word & 0xff;\n if (position < res.length) {\n res[position++] = (word >> 8) & 0xff;\n }\n if (position < res.length) {\n res[position++] = (word >> 16) & 0xff;\n }\n\n if (shift === 6) {\n if (position < res.length) {\n res[position++] = (word >> 24) & 0xff;\n }\n carry = 0;\n shift = 0;\n } else {\n carry = word >>> 24;\n shift += 2;\n }\n }\n\n if (position < res.length) {\n res[position++] = carry;\n\n while (position < res.length) {\n res[position++] = 0;\n }\n }\n };\n\n BN.prototype._toArrayLikeBE = function _toArrayLikeBE (res, byteLength) {\n var position = res.length - 1;\n var carry = 0;\n\n for (var i = 0, shift = 0; i < this.length; i++) {\n var word = (this.words[i] << shift) | carry;\n\n res[position--] = word & 0xff;\n if (position >= 0) {\n res[position--] = (word >> 8) & 0xff;\n }\n if (position >= 0) {\n res[position--] = (word >> 16) & 0xff;\n }\n\n if (shift === 6) {\n if (position >= 0) {\n res[position--] = (word >> 24) & 0xff;\n }\n carry = 0;\n shift = 0;\n } else {\n carry = word >>> 24;\n shift += 2;\n }\n }\n\n if (position >= 0) {\n res[position--] = carry;\n\n while (position >= 0) {\n res[position--] = 0;\n }\n }\n };\n\n if (Math.clz32) {\n BN.prototype._countBits = function _countBits (w) {\n return 32 - Math.clz32(w);\n };\n } else {\n BN.prototype._countBits = function _countBits (w) {\n var t = w;\n var r = 0;\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\n return r + t;\n };\n }\n\n BN.prototype._zeroBits = function _zeroBits (w) {\n // Short-cut\n if (w === 0) return 26;\n\n var t = w;\n var r = 0;\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n if ((t & 0x1) === 0) {\n r++;\n }\n return r;\n };\n\n // Return number of used bits in a BN\n BN.prototype.bitLength = function bitLength () {\n var w = this.words[this.length - 1];\n var hi = this._countBits(w);\n return (this.length - 1) * 26 + hi;\n };\n\n function toBitArray (num) {\n var w = new Array(num.bitLength());\n\n for (var bit = 0; bit < w.length; bit++) {\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n w[bit] = (num.words[off] >>> wbit) & 0x01;\n }\n\n return w;\n }\n\n // Number of trailing zero bits\n BN.prototype.zeroBits = function zeroBits () {\n if (this.isZero()) return 0;\n\n var r = 0;\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n r += b;\n if (b !== 26) break;\n }\n return r;\n };\n\n BN.prototype.byteLength = function byteLength () {\n return Math.ceil(this.bitLength() / 8);\n };\n\n BN.prototype.toTwos = function toTwos (width) {\n if (this.negative !== 0) {\n return this.abs().inotn(width).iaddn(1);\n }\n return this.clone();\n };\n\n BN.prototype.fromTwos = function fromTwos (width) {\n if (this.testn(width - 1)) {\n return this.notn(width).iaddn(1).ineg();\n }\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg () {\n return this.negative !== 0;\n };\n\n // Return negative clone of `this`\n BN.prototype.neg = function neg () {\n return this.clone().ineg();\n };\n\n BN.prototype.ineg = function ineg () {\n if (!this.isZero()) {\n this.negative ^= 1;\n }\n\n return this;\n };\n\n // Or `num` with `this` in-place\n BN.prototype.iuor = function iuor (num) {\n while (this.length < num.length) {\n this.words[this.length++] = 0;\n }\n\n for (var i = 0; i < num.length; i++) {\n this.words[i] = this.words[i] | num.words[i];\n }\n\n return this._strip();\n };\n\n BN.prototype.ior = function ior (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuor(num);\n };\n\n // Or `num` with `this`\n BN.prototype.or = function or (num) {\n if (this.length > num.length) return this.clone().ior(num);\n return num.clone().ior(this);\n };\n\n BN.prototype.uor = function uor (num) {\n if (this.length > num.length) return this.clone().iuor(num);\n return num.clone().iuor(this);\n };\n\n // And `num` with `this` in-place\n BN.prototype.iuand = function iuand (num) {\n // b = min-length(num, this)\n var b;\n if (this.length > num.length) {\n b = num;\n } else {\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = this.words[i] & num.words[i];\n }\n\n this.length = b.length;\n\n return this._strip();\n };\n\n BN.prototype.iand = function iand (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuand(num);\n };\n\n // And `num` with `this`\n BN.prototype.and = function and (num) {\n if (this.length > num.length) return this.clone().iand(num);\n return num.clone().iand(this);\n };\n\n BN.prototype.uand = function uand (num) {\n if (this.length > num.length) return this.clone().iuand(num);\n return num.clone().iuand(this);\n };\n\n // Xor `num` with `this` in-place\n BN.prototype.iuxor = function iuxor (num) {\n // a.length > b.length\n var a;\n var b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = a.words[i] ^ b.words[i];\n }\n\n if (this !== a) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = a.length;\n\n return this._strip();\n };\n\n BN.prototype.ixor = function ixor (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuxor(num);\n };\n\n // Xor `num` with `this`\n BN.prototype.xor = function xor (num) {\n if (this.length > num.length) return this.clone().ixor(num);\n return num.clone().ixor(this);\n };\n\n BN.prototype.uxor = function uxor (num) {\n if (this.length > num.length) return this.clone().iuxor(num);\n return num.clone().iuxor(this);\n };\n\n // Not ``this`` with ``width`` bitwidth\n BN.prototype.inotn = function inotn (width) {\n assert(typeof width === 'number' && width >= 0);\n\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26;\n\n // Extend the buffer with leading zeroes\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n }\n\n // Handle complete words\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n }\n\n // Handle the residue\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));\n }\n\n // And remove leading zeroes\n return this._strip();\n };\n\n BN.prototype.notn = function notn (width) {\n return this.clone().inotn(width);\n };\n\n // Set `bit` of `this`\n BN.prototype.setn = function setn (bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\n\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n this._expand(off + 1);\n\n if (val) {\n this.words[off] = this.words[off] | (1 << wbit);\n } else {\n this.words[off] = this.words[off] & ~(1 << wbit);\n }\n\n return this._strip();\n };\n\n // Add `num` to `this` in-place\n BN.prototype.iadd = function iadd (num) {\n var r;\n\n // negative + positive\n if (this.negative !== 0 && num.negative === 0) {\n this.negative = 0;\n r = this.isub(num);\n this.negative ^= 1;\n return this._normSign();\n\n // positive + negative\n } else if (this.negative === 0 && num.negative !== 0) {\n num.negative = 0;\n r = this.isub(num);\n num.negative = 1;\n return r._normSign();\n }\n\n // a.length > b.length\n var a, b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n this.length = a.length;\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++;\n // Copy the rest of the words\n } else if (a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n return this;\n };\n\n // Add `num` to `this`\n BN.prototype.add = function add (num) {\n var res;\n if (num.negative !== 0 && this.negative === 0) {\n num.negative = 0;\n res = this.sub(num);\n num.negative ^= 1;\n return res;\n } else if (num.negative === 0 && this.negative !== 0) {\n this.negative = 0;\n res = num.sub(this);\n this.negative = 1;\n return res;\n }\n\n if (this.length > num.length) return this.clone().iadd(num);\n\n return num.clone().iadd(this);\n };\n\n // Subtract `num` from `this` in-place\n BN.prototype.isub = function isub (num) {\n // this - (-num) = this + num\n if (num.negative !== 0) {\n num.negative = 0;\n var r = this.iadd(num);\n num.negative = 1;\n return r._normSign();\n\n // -this - num = -(this + num)\n } else if (this.negative !== 0) {\n this.negative = 0;\n this.iadd(num);\n this.negative = 1;\n return this._normSign();\n }\n\n // At this point both numbers are positive\n var cmp = this.cmp(num);\n\n // Optimization - zeroify\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n }\n\n // a > b\n var a, b;\n if (cmp > 0) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n\n // Copy rest of the words\n if (carry === 0 && i < a.length && a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = Math.max(this.length, i);\n\n if (a !== this) {\n this.negative = 1;\n }\n\n return this._strip();\n };\n\n // Subtract `num` from `this`\n BN.prototype.sub = function sub (num) {\n return this.clone().isub(num);\n };\n\n function smallMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n var len = (self.length + num.length) | 0;\n out.length = len;\n len = (len - 1) | 0;\n\n // Peel one iteration (compiler can't do it, because of code complexity)\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n var carry = (r / 0x4000000) | 0;\n out.words[0] = lo;\n\n for (var k = 1; k < len; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = carry >>> 26;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = (k - j) | 0;\n a = self.words[i] | 0;\n b = num.words[j] | 0;\n r = a * b + rword;\n ncarry += (r / 0x4000000) | 0;\n rword = r & 0x3ffffff;\n }\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out._strip();\n }\n\n // TODO(indutny): it may be reasonable to omit it for users who don't need\n // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n // multiplication (like elliptic secp256k1).\n var comb10MulTo = function comb10MulTo (self, num, out) {\n var a = self.words;\n var b = num.words;\n var o = out.words;\n var c = 0;\n var lo;\n var mid;\n var hi;\n var a0 = a[0] | 0;\n var al0 = a0 & 0x1fff;\n var ah0 = a0 >>> 13;\n var a1 = a[1] | 0;\n var al1 = a1 & 0x1fff;\n var ah1 = a1 >>> 13;\n var a2 = a[2] | 0;\n var al2 = a2 & 0x1fff;\n var ah2 = a2 >>> 13;\n var a3 = a[3] | 0;\n var al3 = a3 & 0x1fff;\n var ah3 = a3 >>> 13;\n var a4 = a[4] | 0;\n var al4 = a4 & 0x1fff;\n var ah4 = a4 >>> 13;\n var a5 = a[5] | 0;\n var al5 = a5 & 0x1fff;\n var ah5 = a5 >>> 13;\n var a6 = a[6] | 0;\n var al6 = a6 & 0x1fff;\n var ah6 = a6 >>> 13;\n var a7 = a[7] | 0;\n var al7 = a7 & 0x1fff;\n var ah7 = a7 >>> 13;\n var a8 = a[8] | 0;\n var al8 = a8 & 0x1fff;\n var ah8 = a8 >>> 13;\n var a9 = a[9] | 0;\n var al9 = a9 & 0x1fff;\n var ah9 = a9 >>> 13;\n var b0 = b[0] | 0;\n var bl0 = b0 & 0x1fff;\n var bh0 = b0 >>> 13;\n var b1 = b[1] | 0;\n var bl1 = b1 & 0x1fff;\n var bh1 = b1 >>> 13;\n var b2 = b[2] | 0;\n var bl2 = b2 & 0x1fff;\n var bh2 = b2 >>> 13;\n var b3 = b[3] | 0;\n var bl3 = b3 & 0x1fff;\n var bh3 = b3 >>> 13;\n var b4 = b[4] | 0;\n var bl4 = b4 & 0x1fff;\n var bh4 = b4 >>> 13;\n var b5 = b[5] | 0;\n var bl5 = b5 & 0x1fff;\n var bh5 = b5 >>> 13;\n var b6 = b[6] | 0;\n var bl6 = b6 & 0x1fff;\n var bh6 = b6 >>> 13;\n var b7 = b[7] | 0;\n var bl7 = b7 & 0x1fff;\n var bh7 = b7 >>> 13;\n var b8 = b[8] | 0;\n var bl8 = b8 & 0x1fff;\n var bh8 = b8 >>> 13;\n var b9 = b[9] | 0;\n var bl9 = b9 & 0x1fff;\n var bh9 = b9 >>> 13;\n\n out.negative = self.negative ^ num.negative;\n out.length = 19;\n /* k = 0 */\n lo = Math.imul(al0, bl0);\n mid = Math.imul(al0, bh0);\n mid = (mid + Math.imul(ah0, bl0)) | 0;\n hi = Math.imul(ah0, bh0);\n var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;\n w0 &= 0x3ffffff;\n /* k = 1 */\n lo = Math.imul(al1, bl0);\n mid = Math.imul(al1, bh0);\n mid = (mid + Math.imul(ah1, bl0)) | 0;\n hi = Math.imul(ah1, bh0);\n lo = (lo + Math.imul(al0, bl1)) | 0;\n mid = (mid + Math.imul(al0, bh1)) | 0;\n mid = (mid + Math.imul(ah0, bl1)) | 0;\n hi = (hi + Math.imul(ah0, bh1)) | 0;\n var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;\n w1 &= 0x3ffffff;\n /* k = 2 */\n lo = Math.imul(al2, bl0);\n mid = Math.imul(al2, bh0);\n mid = (mid + Math.imul(ah2, bl0)) | 0;\n hi = Math.imul(ah2, bh0);\n lo = (lo + Math.imul(al1, bl1)) | 0;\n mid = (mid + Math.imul(al1, bh1)) | 0;\n mid = (mid + Math.imul(ah1, bl1)) | 0;\n hi = (hi + Math.imul(ah1, bh1)) | 0;\n lo = (lo + Math.imul(al0, bl2)) | 0;\n mid = (mid + Math.imul(al0, bh2)) | 0;\n mid = (mid + Math.imul(ah0, bl2)) | 0;\n hi = (hi + Math.imul(ah0, bh2)) | 0;\n var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;\n w2 &= 0x3ffffff;\n /* k = 3 */\n lo = Math.imul(al3, bl0);\n mid = Math.imul(al3, bh0);\n mid = (mid + Math.imul(ah3, bl0)) | 0;\n hi = Math.imul(ah3, bh0);\n lo = (lo + Math.imul(al2, bl1)) | 0;\n mid = (mid + Math.imul(al2, bh1)) | 0;\n mid = (mid + Math.imul(ah2, bl1)) | 0;\n hi = (hi + Math.imul(ah2, bh1)) | 0;\n lo = (lo + Math.imul(al1, bl2)) | 0;\n mid = (mid + Math.imul(al1, bh2)) | 0;\n mid = (mid + Math.imul(ah1, bl2)) | 0;\n hi = (hi + Math.imul(ah1, bh2)) | 0;\n lo = (lo + Math.imul(al0, bl3)) | 0;\n mid = (mid + Math.imul(al0, bh3)) | 0;\n mid = (mid + Math.imul(ah0, bl3)) | 0;\n hi = (hi + Math.imul(ah0, bh3)) | 0;\n var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;\n w3 &= 0x3ffffff;\n /* k = 4 */\n lo = Math.imul(al4, bl0);\n mid = Math.imul(al4, bh0);\n mid = (mid + Math.imul(ah4, bl0)) | 0;\n hi = Math.imul(ah4, bh0);\n lo = (lo + Math.imul(al3, bl1)) | 0;\n mid = (mid + Math.imul(al3, bh1)) | 0;\n mid = (mid + Math.imul(ah3, bl1)) | 0;\n hi = (hi + Math.imul(ah3, bh1)) | 0;\n lo = (lo + Math.imul(al2, bl2)) | 0;\n mid = (mid + Math.imul(al2, bh2)) | 0;\n mid = (mid + Math.imul(ah2, bl2)) | 0;\n hi = (hi + Math.imul(ah2, bh2)) | 0;\n lo = (lo + Math.imul(al1, bl3)) | 0;\n mid = (mid + Math.imul(al1, bh3)) | 0;\n mid = (mid + Math.imul(ah1, bl3)) | 0;\n hi = (hi + Math.imul(ah1, bh3)) | 0;\n lo = (lo + Math.imul(al0, bl4)) | 0;\n mid = (mid + Math.imul(al0, bh4)) | 0;\n mid = (mid + Math.imul(ah0, bl4)) | 0;\n hi = (hi + Math.imul(ah0, bh4)) | 0;\n var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;\n w4 &= 0x3ffffff;\n /* k = 5 */\n lo = Math.imul(al5, bl0);\n mid = Math.imul(al5, bh0);\n mid = (mid + Math.imul(ah5, bl0)) | 0;\n hi = Math.imul(ah5, bh0);\n lo = (lo + Math.imul(al4, bl1)) | 0;\n mid = (mid + Math.imul(al4, bh1)) | 0;\n mid = (mid + Math.imul(ah4, bl1)) | 0;\n hi = (hi + Math.imul(ah4, bh1)) | 0;\n lo = (lo + Math.imul(al3, bl2)) | 0;\n mid = (mid + Math.imul(al3, bh2)) | 0;\n mid = (mid + Math.imul(ah3, bl2)) | 0;\n hi = (hi + Math.imul(ah3, bh2)) | 0;\n lo = (lo + Math.imul(al2, bl3)) | 0;\n mid = (mid + Math.imul(al2, bh3)) | 0;\n mid = (mid + Math.imul(ah2, bl3)) | 0;\n hi = (hi + Math.imul(ah2, bh3)) | 0;\n lo = (lo + Math.imul(al1, bl4)) | 0;\n mid = (mid + Math.imul(al1, bh4)) | 0;\n mid = (mid + Math.imul(ah1, bl4)) | 0;\n hi = (hi + Math.imul(ah1, bh4)) | 0;\n lo = (lo + Math.imul(al0, bl5)) | 0;\n mid = (mid + Math.imul(al0, bh5)) | 0;\n mid = (mid + Math.imul(ah0, bl5)) | 0;\n hi = (hi + Math.imul(ah0, bh5)) | 0;\n var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;\n w5 &= 0x3ffffff;\n /* k = 6 */\n lo = Math.imul(al6, bl0);\n mid = Math.imul(al6, bh0);\n mid = (mid + Math.imul(ah6, bl0)) | 0;\n hi = Math.imul(ah6, bh0);\n lo = (lo + Math.imul(al5, bl1)) | 0;\n mid = (mid + Math.imul(al5, bh1)) | 0;\n mid = (mid + Math.imul(ah5, bl1)) | 0;\n hi = (hi + Math.imul(ah5, bh1)) | 0;\n lo = (lo + Math.imul(al4, bl2)) | 0;\n mid = (mid + Math.imul(al4, bh2)) | 0;\n mid = (mid + Math.imul(ah4, bl2)) | 0;\n hi = (hi + Math.imul(ah4, bh2)) | 0;\n lo = (lo + Math.imul(al3, bl3)) | 0;\n mid = (mid + Math.imul(al3, bh3)) | 0;\n mid = (mid + Math.imul(ah3, bl3)) | 0;\n hi = (hi + Math.imul(ah3, bh3)) | 0;\n lo = (lo + Math.imul(al2, bl4)) | 0;\n mid = (mid + Math.imul(al2, bh4)) | 0;\n mid = (mid + Math.imul(ah2, bl4)) | 0;\n hi = (hi + Math.imul(ah2, bh4)) | 0;\n lo = (lo + Math.imul(al1, bl5)) | 0;\n mid = (mid + Math.imul(al1, bh5)) | 0;\n mid = (mid + Math.imul(ah1, bl5)) | 0;\n hi = (hi + Math.imul(ah1, bh5)) | 0;\n lo = (lo + Math.imul(al0, bl6)) | 0;\n mid = (mid + Math.imul(al0, bh6)) | 0;\n mid = (mid + Math.imul(ah0, bl6)) | 0;\n hi = (hi + Math.imul(ah0, bh6)) | 0;\n var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;\n w6 &= 0x3ffffff;\n /* k = 7 */\n lo = Math.imul(al7, bl0);\n mid = Math.imul(al7, bh0);\n mid = (mid + Math.imul(ah7, bl0)) | 0;\n hi = Math.imul(ah7, bh0);\n lo = (lo + Math.imul(al6, bl1)) | 0;\n mid = (mid + Math.imul(al6, bh1)) | 0;\n mid = (mid + Math.imul(ah6, bl1)) | 0;\n hi = (hi + Math.imul(ah6, bh1)) | 0;\n lo = (lo + Math.imul(al5, bl2)) | 0;\n mid = (mid + Math.imul(al5, bh2)) | 0;\n mid = (mid + Math.imul(ah5, bl2)) | 0;\n hi = (hi + Math.imul(ah5, bh2)) | 0;\n lo = (lo + Math.imul(al4, bl3)) | 0;\n mid = (mid + Math.imul(al4, bh3)) | 0;\n mid = (mid + Math.imul(ah4, bl3)) | 0;\n hi = (hi + Math.imul(ah4, bh3)) | 0;\n lo = (lo + Math.imul(al3, bl4)) | 0;\n mid = (mid + Math.imul(al3, bh4)) | 0;\n mid = (mid + Math.imul(ah3, bl4)) | 0;\n hi = (hi + Math.imul(ah3, bh4)) | 0;\n lo = (lo + Math.imul(al2, bl5)) | 0;\n mid = (mid + Math.imul(al2, bh5)) | 0;\n mid = (mid + Math.imul(ah2, bl5)) | 0;\n hi = (hi + Math.imul(ah2, bh5)) | 0;\n lo = (lo + Math.imul(al1, bl6)) | 0;\n mid = (mid + Math.imul(al1, bh6)) | 0;\n mid = (mid + Math.imul(ah1, bl6)) | 0;\n hi = (hi + Math.imul(ah1, bh6)) | 0;\n lo = (lo + Math.imul(al0, bl7)) | 0;\n mid = (mid + Math.imul(al0, bh7)) | 0;\n mid = (mid + Math.imul(ah0, bl7)) | 0;\n hi = (hi + Math.imul(ah0, bh7)) | 0;\n var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;\n w7 &= 0x3ffffff;\n /* k = 8 */\n lo = Math.imul(al8, bl0);\n mid = Math.imul(al8, bh0);\n mid = (mid + Math.imul(ah8, bl0)) | 0;\n hi = Math.imul(ah8, bh0);\n lo = (lo + Math.imul(al7, bl1)) | 0;\n mid = (mid + Math.imul(al7, bh1)) | 0;\n mid = (mid + Math.imul(ah7, bl1)) | 0;\n hi = (hi + Math.imul(ah7, bh1)) | 0;\n lo = (lo + Math.imul(al6, bl2)) | 0;\n mid = (mid + Math.imul(al6, bh2)) | 0;\n mid = (mid + Math.imul(ah6, bl2)) | 0;\n hi = (hi + Math.imul(ah6, bh2)) | 0;\n lo = (lo + Math.imul(al5, bl3)) | 0;\n mid = (mid + Math.imul(al5, bh3)) | 0;\n mid = (mid + Math.imul(ah5, bl3)) | 0;\n hi = (hi + Math.imul(ah5, bh3)) | 0;\n lo = (lo + Math.imul(al4, bl4)) | 0;\n mid = (mid + Math.imul(al4, bh4)) | 0;\n mid = (mid + Math.imul(ah4, bl4)) | 0;\n hi = (hi + Math.imul(ah4, bh4)) | 0;\n lo = (lo + Math.imul(al3, bl5)) | 0;\n mid = (mid + Math.imul(al3, bh5)) | 0;\n mid = (mid + Math.imul(ah3, bl5)) | 0;\n hi = (hi + Math.imul(ah3, bh5)) | 0;\n lo = (lo + Math.imul(al2, bl6)) | 0;\n mid = (mid + Math.imul(al2, bh6)) | 0;\n mid = (mid + Math.imul(ah2, bl6)) | 0;\n hi = (hi + Math.imul(ah2, bh6)) | 0;\n lo = (lo + Math.imul(al1, bl7)) | 0;\n mid = (mid + Math.imul(al1, bh7)) | 0;\n mid = (mid + Math.imul(ah1, bl7)) | 0;\n hi = (hi + Math.imul(ah1, bh7)) | 0;\n lo = (lo + Math.imul(al0, bl8)) | 0;\n mid = (mid + Math.imul(al0, bh8)) | 0;\n mid = (mid + Math.imul(ah0, bl8)) | 0;\n hi = (hi + Math.imul(ah0, bh8)) | 0;\n var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;\n w8 &= 0x3ffffff;\n /* k = 9 */\n lo = Math.imul(al9, bl0);\n mid = Math.imul(al9, bh0);\n mid = (mid + Math.imul(ah9, bl0)) | 0;\n hi = Math.imul(ah9, bh0);\n lo = (lo + Math.imul(al8, bl1)) | 0;\n mid = (mid + Math.imul(al8, bh1)) | 0;\n mid = (mid + Math.imul(ah8, bl1)) | 0;\n hi = (hi + Math.imul(ah8, bh1)) | 0;\n lo = (lo + Math.imul(al7, bl2)) | 0;\n mid = (mid + Math.imul(al7, bh2)) | 0;\n mid = (mid + Math.imul(ah7, bl2)) | 0;\n hi = (hi + Math.imul(ah7, bh2)) | 0;\n lo = (lo + Math.imul(al6, bl3)) | 0;\n mid = (mid + Math.imul(al6, bh3)) | 0;\n mid = (mid + Math.imul(ah6, bl3)) | 0;\n hi = (hi + Math.imul(ah6, bh3)) | 0;\n lo = (lo + Math.imul(al5, bl4)) | 0;\n mid = (mid + Math.imul(al5, bh4)) | 0;\n mid = (mid + Math.imul(ah5, bl4)) | 0;\n hi = (hi + Math.imul(ah5, bh4)) | 0;\n lo = (lo + Math.imul(al4, bl5)) | 0;\n mid = (mid + Math.imul(al4, bh5)) | 0;\n mid = (mid + Math.imul(ah4, bl5)) | 0;\n hi = (hi + Math.imul(ah4, bh5)) | 0;\n lo = (lo + Math.imul(al3, bl6)) | 0;\n mid = (mid + Math.imul(al3, bh6)) | 0;\n mid = (mid + Math.imul(ah3, bl6)) | 0;\n hi = (hi + Math.imul(ah3, bh6)) | 0;\n lo = (lo + Math.imul(al2, bl7)) | 0;\n mid = (mid + Math.imul(al2, bh7)) | 0;\n mid = (mid + Math.imul(ah2, bl7)) | 0;\n hi = (hi + Math.imul(ah2, bh7)) | 0;\n lo = (lo + Math.imul(al1, bl8)) | 0;\n mid = (mid + Math.imul(al1, bh8)) | 0;\n mid = (mid + Math.imul(ah1, bl8)) | 0;\n hi = (hi + Math.imul(ah1, bh8)) | 0;\n lo = (lo + Math.imul(al0, bl9)) | 0;\n mid = (mid + Math.imul(al0, bh9)) | 0;\n mid = (mid + Math.imul(ah0, bl9)) | 0;\n hi = (hi + Math.imul(ah0, bh9)) | 0;\n var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;\n w9 &= 0x3ffffff;\n /* k = 10 */\n lo = Math.imul(al9, bl1);\n mid = Math.imul(al9, bh1);\n mid = (mid + Math.imul(ah9, bl1)) | 0;\n hi = Math.imul(ah9, bh1);\n lo = (lo + Math.imul(al8, bl2)) | 0;\n mid = (mid + Math.imul(al8, bh2)) | 0;\n mid = (mid + Math.imul(ah8, bl2)) | 0;\n hi = (hi + Math.imul(ah8, bh2)) | 0;\n lo = (lo + Math.imul(al7, bl3)) | 0;\n mid = (mid + Math.imul(al7, bh3)) | 0;\n mid = (mid + Math.imul(ah7, bl3)) | 0;\n hi = (hi + Math.imul(ah7, bh3)) | 0;\n lo = (lo + Math.imul(al6, bl4)) | 0;\n mid = (mid + Math.imul(al6, bh4)) | 0;\n mid = (mid + Math.imul(ah6, bl4)) | 0;\n hi = (hi + Math.imul(ah6, bh4)) | 0;\n lo = (lo + Math.imul(al5, bl5)) | 0;\n mid = (mid + Math.imul(al5, bh5)) | 0;\n mid = (mid + Math.imul(ah5, bl5)) | 0;\n hi = (hi + Math.imul(ah5, bh5)) | 0;\n lo = (lo + Math.imul(al4, bl6)) | 0;\n mid = (mid + Math.imul(al4, bh6)) | 0;\n mid = (mid + Math.imul(ah4, bl6)) | 0;\n hi = (hi + Math.imul(ah4, bh6)) | 0;\n lo = (lo + Math.imul(al3, bl7)) | 0;\n mid = (mid + Math.imul(al3, bh7)) | 0;\n mid = (mid + Math.imul(ah3, bl7)) | 0;\n hi = (hi + Math.imul(ah3, bh7)) | 0;\n lo = (lo + Math.imul(al2, bl8)) | 0;\n mid = (mid + Math.imul(al2, bh8)) | 0;\n mid = (mid + Math.imul(ah2, bl8)) | 0;\n hi = (hi + Math.imul(ah2, bh8)) | 0;\n lo = (lo + Math.imul(al1, bl9)) | 0;\n mid = (mid + Math.imul(al1, bh9)) | 0;\n mid = (mid + Math.imul(ah1, bl9)) | 0;\n hi = (hi + Math.imul(ah1, bh9)) | 0;\n var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;\n w10 &= 0x3ffffff;\n /* k = 11 */\n lo = Math.imul(al9, bl2);\n mid = Math.imul(al9, bh2);\n mid = (mid + Math.imul(ah9, bl2)) | 0;\n hi = Math.imul(ah9, bh2);\n lo = (lo + Math.imul(al8, bl3)) | 0;\n mid = (mid + Math.imul(al8, bh3)) | 0;\n mid = (mid + Math.imul(ah8, bl3)) | 0;\n hi = (hi + Math.imul(ah8, bh3)) | 0;\n lo = (lo + Math.imul(al7, bl4)) | 0;\n mid = (mid + Math.imul(al7, bh4)) | 0;\n mid = (mid + Math.imul(ah7, bl4)) | 0;\n hi = (hi + Math.imul(ah7, bh4)) | 0;\n lo = (lo + Math.imul(al6, bl5)) | 0;\n mid = (mid + Math.imul(al6, bh5)) | 0;\n mid = (mid + Math.imul(ah6, bl5)) | 0;\n hi = (hi + Math.imul(ah6, bh5)) | 0;\n lo = (lo + Math.imul(al5, bl6)) | 0;\n mid = (mid + Math.imul(al5, bh6)) | 0;\n mid = (mid + Math.imul(ah5, bl6)) | 0;\n hi = (hi + Math.imul(ah5, bh6)) | 0;\n lo = (lo + Math.imul(al4, bl7)) | 0;\n mid = (mid + Math.imul(al4, bh7)) | 0;\n mid = (mid + Math.imul(ah4, bl7)) | 0;\n hi = (hi + Math.imul(ah4, bh7)) | 0;\n lo = (lo + Math.imul(al3, bl8)) | 0;\n mid = (mid + Math.imul(al3, bh8)) | 0;\n mid = (mid + Math.imul(ah3, bl8)) | 0;\n hi = (hi + Math.imul(ah3, bh8)) | 0;\n lo = (lo + Math.imul(al2, bl9)) | 0;\n mid = (mid + Math.imul(al2, bh9)) | 0;\n mid = (mid + Math.imul(ah2, bl9)) | 0;\n hi = (hi + Math.imul(ah2, bh9)) | 0;\n var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;\n w11 &= 0x3ffffff;\n /* k = 12 */\n lo = Math.imul(al9, bl3);\n mid = Math.imul(al9, bh3);\n mid = (mid + Math.imul(ah9, bl3)) | 0;\n hi = Math.imul(ah9, bh3);\n lo = (lo + Math.imul(al8, bl4)) | 0;\n mid = (mid + Math.imul(al8, bh4)) | 0;\n mid = (mid + Math.imul(ah8, bl4)) | 0;\n hi = (hi + Math.imul(ah8, bh4)) | 0;\n lo = (lo + Math.imul(al7, bl5)) | 0;\n mid = (mid + Math.imul(al7, bh5)) | 0;\n mid = (mid + Math.imul(ah7, bl5)) | 0;\n hi = (hi + Math.imul(ah7, bh5)) | 0;\n lo = (lo + Math.imul(al6, bl6)) | 0;\n mid = (mid + Math.imul(al6, bh6)) | 0;\n mid = (mid + Math.imul(ah6, bl6)) | 0;\n hi = (hi + Math.imul(ah6, bh6)) | 0;\n lo = (lo + Math.imul(al5, bl7)) | 0;\n mid = (mid + Math.imul(al5, bh7)) | 0;\n mid = (mid + Math.imul(ah5, bl7)) | 0;\n hi = (hi + Math.imul(ah5, bh7)) | 0;\n lo = (lo + Math.imul(al4, bl8)) | 0;\n mid = (mid + Math.imul(al4, bh8)) | 0;\n mid = (mid + Math.imul(ah4, bl8)) | 0;\n hi = (hi + Math.imul(ah4, bh8)) | 0;\n lo = (lo + Math.imul(al3, bl9)) | 0;\n mid = (mid + Math.imul(al3, bh9)) | 0;\n mid = (mid + Math.imul(ah3, bl9)) | 0;\n hi = (hi + Math.imul(ah3, bh9)) | 0;\n var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;\n w12 &= 0x3ffffff;\n /* k = 13 */\n lo = Math.imul(al9, bl4);\n mid = Math.imul(al9, bh4);\n mid = (mid + Math.imul(ah9, bl4)) | 0;\n hi = Math.imul(ah9, bh4);\n lo = (lo + Math.imul(al8, bl5)) | 0;\n mid = (mid + Math.imul(al8, bh5)) | 0;\n mid = (mid + Math.imul(ah8, bl5)) | 0;\n hi = (hi + Math.imul(ah8, bh5)) | 0;\n lo = (lo + Math.imul(al7, bl6)) | 0;\n mid = (mid + Math.imul(al7, bh6)) | 0;\n mid = (mid + Math.imul(ah7, bl6)) | 0;\n hi = (hi + Math.imul(ah7, bh6)) | 0;\n lo = (lo + Math.imul(al6, bl7)) | 0;\n mid = (mid + Math.imul(al6, bh7)) | 0;\n mid = (mid + Math.imul(ah6, bl7)) | 0;\n hi = (hi + Math.imul(ah6, bh7)) | 0;\n lo = (lo + Math.imul(al5, bl8)) | 0;\n mid = (mid + Math.imul(al5, bh8)) | 0;\n mid = (mid + Math.imul(ah5, bl8)) | 0;\n hi = (hi + Math.imul(ah5, bh8)) | 0;\n lo = (lo + Math.imul(al4, bl9)) | 0;\n mid = (mid + Math.imul(al4, bh9)) | 0;\n mid = (mid + Math.imul(ah4, bl9)) | 0;\n hi = (hi + Math.imul(ah4, bh9)) | 0;\n var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;\n w13 &= 0x3ffffff;\n /* k = 14 */\n lo = Math.imul(al9, bl5);\n mid = Math.imul(al9, bh5);\n mid = (mid + Math.imul(ah9, bl5)) | 0;\n hi = Math.imul(ah9, bh5);\n lo = (lo + Math.imul(al8, bl6)) | 0;\n mid = (mid + Math.imul(al8, bh6)) | 0;\n mid = (mid + Math.imul(ah8, bl6)) | 0;\n hi = (hi + Math.imul(ah8, bh6)) | 0;\n lo = (lo + Math.imul(al7, bl7)) | 0;\n mid = (mid + Math.imul(al7, bh7)) | 0;\n mid = (mid + Math.imul(ah7, bl7)) | 0;\n hi = (hi + Math.imul(ah7, bh7)) | 0;\n lo = (lo + Math.imul(al6, bl8)) | 0;\n mid = (mid + Math.imul(al6, bh8)) | 0;\n mid = (mid + Math.imul(ah6, bl8)) | 0;\n hi = (hi + Math.imul(ah6, bh8)) | 0;\n lo = (lo + Math.imul(al5, bl9)) | 0;\n mid = (mid + Math.imul(al5, bh9)) | 0;\n mid = (mid + Math.imul(ah5, bl9)) | 0;\n hi = (hi + Math.imul(ah5, bh9)) | 0;\n var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;\n w14 &= 0x3ffffff;\n /* k = 15 */\n lo = Math.imul(al9, bl6);\n mid = Math.imul(al9, bh6);\n mid = (mid + Math.imul(ah9, bl6)) | 0;\n hi = Math.imul(ah9, bh6);\n lo = (lo + Math.imul(al8, bl7)) | 0;\n mid = (mid + Math.imul(al8, bh7)) | 0;\n mid = (mid + Math.imul(ah8, bl7)) | 0;\n hi = (hi + Math.imul(ah8, bh7)) | 0;\n lo = (lo + Math.imul(al7, bl8)) | 0;\n mid = (mid + Math.imul(al7, bh8)) | 0;\n mid = (mid + Math.imul(ah7, bl8)) | 0;\n hi = (hi + Math.imul(ah7, bh8)) | 0;\n lo = (lo + Math.imul(al6, bl9)) | 0;\n mid = (mid + Math.imul(al6, bh9)) | 0;\n mid = (mid + Math.imul(ah6, bl9)) | 0;\n hi = (hi + Math.imul(ah6, bh9)) | 0;\n var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;\n w15 &= 0x3ffffff;\n /* k = 16 */\n lo = Math.imul(al9, bl7);\n mid = Math.imul(al9, bh7);\n mid = (mid + Math.imul(ah9, bl7)) | 0;\n hi = Math.imul(ah9, bh7);\n lo = (lo + Math.imul(al8, bl8)) | 0;\n mid = (mid + Math.imul(al8, bh8)) | 0;\n mid = (mid + Math.imul(ah8, bl8)) | 0;\n hi = (hi + Math.imul(ah8, bh8)) | 0;\n lo = (lo + Math.imul(al7, bl9)) | 0;\n mid = (mid + Math.imul(al7, bh9)) | 0;\n mid = (mid + Math.imul(ah7, bl9)) | 0;\n hi = (hi + Math.imul(ah7, bh9)) | 0;\n var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;\n w16 &= 0x3ffffff;\n /* k = 17 */\n lo = Math.imul(al9, bl8);\n mid = Math.imul(al9, bh8);\n mid = (mid + Math.imul(ah9, bl8)) | 0;\n hi = Math.imul(ah9, bh8);\n lo = (lo + Math.imul(al8, bl9)) | 0;\n mid = (mid + Math.imul(al8, bh9)) | 0;\n mid = (mid + Math.imul(ah8, bl9)) | 0;\n hi = (hi + Math.imul(ah8, bh9)) | 0;\n var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;\n w17 &= 0x3ffffff;\n /* k = 18 */\n lo = Math.imul(al9, bl9);\n mid = Math.imul(al9, bh9);\n mid = (mid + Math.imul(ah9, bl9)) | 0;\n hi = Math.imul(ah9, bh9);\n var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;\n w18 &= 0x3ffffff;\n o[0] = w0;\n o[1] = w1;\n o[2] = w2;\n o[3] = w3;\n o[4] = w4;\n o[5] = w5;\n o[6] = w6;\n o[7] = w7;\n o[8] = w8;\n o[9] = w9;\n o[10] = w10;\n o[11] = w11;\n o[12] = w12;\n o[13] = w13;\n o[14] = w14;\n o[15] = w15;\n o[16] = w16;\n o[17] = w17;\n o[18] = w18;\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n return out;\n };\n\n // Polyfill comb\n if (!Math.imul) {\n comb10MulTo = smallMulTo;\n }\n\n function bigMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n out.length = self.length + num.length;\n\n var carry = 0;\n var hncarry = 0;\n for (var k = 0; k < out.length - 1; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = hncarry;\n hncarry = 0;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j;\n var a = self.words[i] | 0;\n var b = num.words[j] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;\n lo = (lo + rword) | 0;\n rword = lo & 0x3ffffff;\n ncarry = (ncarry + (lo >>> 26)) | 0;\n\n hncarry += ncarry >>> 26;\n ncarry &= 0x3ffffff;\n }\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\n if (carry !== 0) {\n out.words[k] = carry;\n } else {\n out.length--;\n }\n\n return out._strip();\n }\n\n function jumboMulTo (self, num, out) {\n // Temporary disable, see https://github.com/indutny/bn.js/issues/211\n // var fftm = new FFTM();\n // return fftm.mulp(self, num, out);\n return bigMulTo(self, num, out);\n }\n\n BN.prototype.mulTo = function mulTo (num, out) {\n var res;\n var len = this.length + num.length;\n if (this.length === 10 && num.length === 10) {\n res = comb10MulTo(this, num, out);\n } else if (len < 63) {\n res = smallMulTo(this, num, out);\n } else if (len < 1024) {\n res = bigMulTo(this, num, out);\n } else {\n res = jumboMulTo(this, num, out);\n }\n\n return res;\n };\n\n // Cooley-Tukey algorithm for FFT\n // slightly revisited to rely on looping instead of recursion\n\n function FFTM (x, y) {\n this.x = x;\n this.y = y;\n }\n\n FFTM.prototype.makeRBT = function makeRBT (N) {\n var t = new Array(N);\n var l = BN.prototype._countBits(N) - 1;\n for (var i = 0; i < N; i++) {\n t[i] = this.revBin(i, l, N);\n }\n\n return t;\n };\n\n // Returns binary-reversed representation of `x`\n FFTM.prototype.revBin = function revBin (x, l, N) {\n if (x === 0 || x === N - 1) return x;\n\n var rb = 0;\n for (var i = 0; i < l; i++) {\n rb |= (x & 1) << (l - i - 1);\n x >>= 1;\n }\n\n return rb;\n };\n\n // Performs \"tweedling\" phase, therefore 'emulating'\n // behaviour of the recursive algorithm\n FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {\n for (var i = 0; i < N; i++) {\n rtws[i] = rws[rbt[i]];\n itws[i] = iws[rbt[i]];\n }\n };\n\n FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {\n this.permute(rbt, rws, iws, rtws, itws, N);\n\n for (var s = 1; s < N; s <<= 1) {\n var l = s << 1;\n\n var rtwdf = Math.cos(2 * Math.PI / l);\n var itwdf = Math.sin(2 * Math.PI / l);\n\n for (var p = 0; p < N; p += l) {\n var rtwdf_ = rtwdf;\n var itwdf_ = itwdf;\n\n for (var j = 0; j < s; j++) {\n var re = rtws[p + j];\n var ie = itws[p + j];\n\n var ro = rtws[p + j + s];\n var io = itws[p + j + s];\n\n var rx = rtwdf_ * ro - itwdf_ * io;\n\n io = rtwdf_ * io + itwdf_ * ro;\n ro = rx;\n\n rtws[p + j] = re + ro;\n itws[p + j] = ie + io;\n\n rtws[p + j + s] = re - ro;\n itws[p + j + s] = ie - io;\n\n /* jshint maxdepth : false */\n if (j !== l) {\n rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n\n itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n rtwdf_ = rx;\n }\n }\n }\n }\n };\n\n FFTM.prototype.guessLen13b = function guessLen13b (n, m) {\n var N = Math.max(m, n) | 1;\n var odd = N & 1;\n var i = 0;\n for (N = N / 2 | 0; N; N = N >>> 1) {\n i++;\n }\n\n return 1 << i + 1 + odd;\n };\n\n FFTM.prototype.conjugate = function conjugate (rws, iws, N) {\n if (N <= 1) return;\n\n for (var i = 0; i < N / 2; i++) {\n var t = rws[i];\n\n rws[i] = rws[N - i - 1];\n rws[N - i - 1] = t;\n\n t = iws[i];\n\n iws[i] = -iws[N - i - 1];\n iws[N - i - 1] = -t;\n }\n };\n\n FFTM.prototype.normalize13b = function normalize13b (ws, N) {\n var carry = 0;\n for (var i = 0; i < N / 2; i++) {\n var w = Math.round(ws[2 * i + 1] / N) * 0x2000 +\n Math.round(ws[2 * i] / N) +\n carry;\n\n ws[i] = w & 0x3ffffff;\n\n if (w < 0x4000000) {\n carry = 0;\n } else {\n carry = w / 0x4000000 | 0;\n }\n }\n\n return ws;\n };\n\n FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {\n var carry = 0;\n for (var i = 0; i < len; i++) {\n carry = carry + (ws[i] | 0);\n\n rws[2 * i] = carry & 0x1fff; carry = carry >>> 13;\n rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13;\n }\n\n // Pad with zeroes\n for (i = 2 * len; i < N; ++i) {\n rws[i] = 0;\n }\n\n assert(carry === 0);\n assert((carry & ~0x1fff) === 0);\n };\n\n FFTM.prototype.stub = function stub (N) {\n var ph = new Array(N);\n for (var i = 0; i < N; i++) {\n ph[i] = 0;\n }\n\n return ph;\n };\n\n FFTM.prototype.mulp = function mulp (x, y, out) {\n var N = 2 * this.guessLen13b(x.length, y.length);\n\n var rbt = this.makeRBT(N);\n\n var _ = this.stub(N);\n\n var rws = new Array(N);\n var rwst = new Array(N);\n var iwst = new Array(N);\n\n var nrws = new Array(N);\n var nrwst = new Array(N);\n var niwst = new Array(N);\n\n var rmws = out.words;\n rmws.length = N;\n\n this.convert13b(x.words, x.length, rws, N);\n this.convert13b(y.words, y.length, nrws, N);\n\n this.transform(rws, _, rwst, iwst, N, rbt);\n this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n for (var i = 0; i < N; i++) {\n var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n rwst[i] = rx;\n }\n\n this.conjugate(rwst, iwst, N);\n this.transform(rwst, iwst, rmws, _, N, rbt);\n this.conjugate(rmws, _, N);\n this.normalize13b(rmws, N);\n\n out.negative = x.negative ^ y.negative;\n out.length = x.length + y.length;\n return out._strip();\n };\n\n // Multiply `this` by `num`\n BN.prototype.mul = function mul (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return this.mulTo(num, out);\n };\n\n // Multiply employing FFT\n BN.prototype.mulf = function mulf (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return jumboMulTo(this, num, out);\n };\n\n // In-place Multiplication\n BN.prototype.imul = function imul (num) {\n return this.clone().mulTo(num, this);\n };\n\n BN.prototype.imuln = function imuln (num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n\n // Carry\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = (this.words[i] | 0) * num;\n var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n carry >>= 26;\n carry += (w / 0x4000000) | 0;\n // NOTE: lo is 27bit maximum\n carry += lo >>> 26;\n this.words[i] = lo & 0x3ffffff;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n\n return isNegNum ? this.ineg() : this;\n };\n\n BN.prototype.muln = function muln (num) {\n return this.clone().imuln(num);\n };\n\n // `this` * `this`\n BN.prototype.sqr = function sqr () {\n return this.mul(this);\n };\n\n // `this` * `this` in-place\n BN.prototype.isqr = function isqr () {\n return this.imul(this.clone());\n };\n\n // Math.pow(`this`, `num`)\n BN.prototype.pow = function pow (num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1);\n\n // Skip leading zeroes\n var res = this;\n for (var i = 0; i < w.length; i++, res = res.sqr()) {\n if (w[i] !== 0) break;\n }\n\n if (++i < w.length) {\n for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n if (w[i] === 0) continue;\n\n res = res.mul(q);\n }\n }\n\n return res;\n };\n\n // Shift-left in-place\n BN.prototype.iushln = function iushln (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);\n var i;\n\n if (r !== 0) {\n var carry = 0;\n\n for (i = 0; i < this.length; i++) {\n var newCarry = this.words[i] & carryMask;\n var c = ((this.words[i] | 0) - newCarry) << r;\n this.words[i] = c | carry;\n carry = newCarry >>> (26 - r);\n }\n\n if (carry) {\n this.words[i] = carry;\n this.length++;\n }\n }\n\n if (s !== 0) {\n for (i = this.length - 1; i >= 0; i--) {\n this.words[i + s] = this.words[i];\n }\n\n for (i = 0; i < s; i++) {\n this.words[i] = 0;\n }\n\n this.length += s;\n }\n\n return this._strip();\n };\n\n BN.prototype.ishln = function ishln (bits) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushln(bits);\n };\n\n // Shift-right in-place\n // NOTE: `hint` is a lowest bit before trailing zeroes\n // NOTE: if `extended` is present - it will be filled with destroyed bits\n BN.prototype.iushrn = function iushrn (bits, hint, extended) {\n assert(typeof bits === 'number' && bits >= 0);\n var h;\n if (hint) {\n h = (hint - (hint % 26)) / 26;\n } else {\n h = 0;\n }\n\n var r = bits % 26;\n var s = Math.min((bits - r) / 26, this.length);\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n var maskedWords = extended;\n\n h -= s;\n h = Math.max(0, h);\n\n // Extended mode, copy masked part\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n maskedWords.length = s;\n }\n\n if (s === 0) {\n // No-op, we should not move anything at all\n } else if (this.length > s) {\n this.length -= s;\n for (i = 0; i < this.length; i++) {\n this.words[i] = this.words[i + s];\n }\n } else {\n this.words[0] = 0;\n this.length = 1;\n }\n\n var carry = 0;\n for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n var word = this.words[i] | 0;\n this.words[i] = (carry << (26 - r)) | (word >>> r);\n carry = word & mask;\n }\n\n // Push carried bits as a mask\n if (maskedWords && carry !== 0) {\n maskedWords.words[maskedWords.length++] = carry;\n }\n\n if (this.length === 0) {\n this.words[0] = 0;\n this.length = 1;\n }\n\n return this._strip();\n };\n\n BN.prototype.ishrn = function ishrn (bits, hint, extended) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushrn(bits, hint, extended);\n };\n\n // Shift-left\n BN.prototype.shln = function shln (bits) {\n return this.clone().ishln(bits);\n };\n\n BN.prototype.ushln = function ushln (bits) {\n return this.clone().iushln(bits);\n };\n\n // Shift-right\n BN.prototype.shrn = function shrn (bits) {\n return this.clone().ishrn(bits);\n };\n\n BN.prototype.ushrn = function ushrn (bits) {\n return this.clone().iushrn(bits);\n };\n\n // Test if n bit is set\n BN.prototype.testn = function testn (bit) {\n assert(typeof bit === 'number' && bit >= 0);\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) return false;\n\n // Check bit and return\n var w = this.words[s];\n\n return !!(w & q);\n };\n\n // Return only lowers bits of number (in-place)\n BN.prototype.imaskn = function imaskn (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n\n assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n if (this.length <= s) {\n return this;\n }\n\n if (r !== 0) {\n s++;\n }\n this.length = Math.min(s, this.length);\n\n if (r !== 0) {\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n this.words[this.length - 1] &= mask;\n }\n\n return this._strip();\n };\n\n // Return only lowers bits of number\n BN.prototype.maskn = function maskn (bits) {\n return this.clone().imaskn(bits);\n };\n\n // Add plain number `num` to `this`\n BN.prototype.iaddn = function iaddn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.isubn(-num);\n\n // Possible sign change\n if (this.negative !== 0) {\n if (this.length === 1 && (this.words[0] | 0) <= num) {\n this.words[0] = num - (this.words[0] | 0);\n this.negative = 0;\n return this;\n }\n\n this.negative = 0;\n this.isubn(num);\n this.negative = 1;\n return this;\n }\n\n // Add without checks\n return this._iaddn(num);\n };\n\n BN.prototype._iaddn = function _iaddn (num) {\n this.words[0] += num;\n\n // Carry\n for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n this.words[i] -= 0x4000000;\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n this.length = Math.max(this.length, i + 1);\n\n return this;\n };\n\n // Subtract plain number `num` from `this`\n BN.prototype.isubn = function isubn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.iaddn(-num);\n\n if (this.negative !== 0) {\n this.negative = 0;\n this.iaddn(num);\n this.negative = 1;\n return this;\n }\n\n this.words[0] -= num;\n\n if (this.length === 1 && this.words[0] < 0) {\n this.words[0] = -this.words[0];\n this.negative = 1;\n } else {\n // Carry\n for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n this.words[i] += 0x4000000;\n this.words[i + 1] -= 1;\n }\n }\n\n return this._strip();\n };\n\n BN.prototype.addn = function addn (num) {\n return this.clone().iaddn(num);\n };\n\n BN.prototype.subn = function subn (num) {\n return this.clone().isubn(num);\n };\n\n BN.prototype.iabs = function iabs () {\n this.negative = 0;\n\n return this;\n };\n\n BN.prototype.abs = function abs () {\n return this.clone().iabs();\n };\n\n BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {\n var len = num.length + shift;\n var i;\n\n this._expand(len);\n\n var w;\n var carry = 0;\n for (i = 0; i < num.length; i++) {\n w = (this.words[i + shift] | 0) + carry;\n var right = (num.words[i] | 0) * mul;\n w -= right & 0x3ffffff;\n carry = (w >> 26) - ((right / 0x4000000) | 0);\n this.words[i + shift] = w & 0x3ffffff;\n }\n for (; i < this.length - shift; i++) {\n w = (this.words[i + shift] | 0) + carry;\n carry = w >> 26;\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n if (carry === 0) return this._strip();\n\n // Subtraction overflow\n assert(carry === -1);\n carry = 0;\n for (i = 0; i < this.length; i++) {\n w = -(this.words[i] | 0) + carry;\n carry = w >> 26;\n this.words[i] = w & 0x3ffffff;\n }\n this.negative = 1;\n\n return this._strip();\n };\n\n BN.prototype._wordDiv = function _wordDiv (num, mode) {\n var shift = this.length - num.length;\n\n var a = this.clone();\n var b = num;\n\n // Normalize\n var bhi = b.words[b.length - 1] | 0;\n var bhiBits = this._countBits(bhi);\n shift = 26 - bhiBits;\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n }\n\n // Initialize quotient\n var m = a.length - b.length;\n var q;\n\n if (mode !== 'mod') {\n q = new BN(null);\n q.length = m + 1;\n q.words = new Array(q.length);\n for (var i = 0; i < q.length; i++) {\n q.words[i] = 0;\n }\n }\n\n var diff = a.clone()._ishlnsubmul(b, 1, m);\n if (diff.negative === 0) {\n a = diff;\n if (q) {\n q.words[m] = 1;\n }\n }\n\n for (var j = m - 1; j >= 0; j--) {\n var qj = (a.words[b.length + j] | 0) * 0x4000000 +\n (a.words[b.length + j - 1] | 0);\n\n // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n // (0x7ffffff)\n qj = Math.min((qj / bhi) | 0, 0x3ffffff);\n\n a._ishlnsubmul(b, qj, j);\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n a._ishlnsubmul(b, 1, j);\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n if (q) {\n q.words[j] = qj;\n }\n }\n if (q) {\n q._strip();\n }\n a._strip();\n\n // Denormalize\n if (mode !== 'div' && shift !== 0) {\n a.iushrn(shift);\n }\n\n return {\n div: q || null,\n mod: a\n };\n };\n\n // NOTE: 1) `mode` can be set to `mod` to request mod only,\n // to `div` to request div only, or be absent to\n // request both div & mod\n // 2) `positive` is true if unsigned mod is requested\n BN.prototype.divmod = function divmod (num, mode, positive) {\n assert(!num.isZero());\n\n if (this.isZero()) {\n return {\n div: new BN(0),\n mod: new BN(0)\n };\n }\n\n var div, mod, res;\n if (this.negative !== 0 && num.negative === 0) {\n res = this.neg().divmod(num, mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.iadd(num);\n }\n }\n\n return {\n div: div,\n mod: mod\n };\n }\n\n if (this.negative === 0 && num.negative !== 0) {\n res = this.divmod(num.neg(), mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n return {\n div: div,\n mod: res.mod\n };\n }\n\n if ((this.negative & num.negative) !== 0) {\n res = this.neg().divmod(num.neg(), mode);\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n\n return {\n div: res.div,\n mod: mod\n };\n }\n\n // Both numbers are positive at this point\n\n // Strip both numbers to approximate shift value\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n }\n\n // Very short reduction\n if (num.length === 1) {\n if (mode === 'div') {\n return {\n div: this.divn(num.words[0]),\n mod: null\n };\n }\n\n if (mode === 'mod') {\n return {\n div: null,\n mod: new BN(this.modrn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modrn(num.words[0]))\n };\n }\n\n return this._wordDiv(num, mode);\n };\n\n // Find `this` / `num`\n BN.prototype.div = function div (num) {\n return this.divmod(num, 'div', false).div;\n };\n\n // Find `this` % `num`\n BN.prototype.mod = function mod (num) {\n return this.divmod(num, 'mod', false).mod;\n };\n\n BN.prototype.umod = function umod (num) {\n return this.divmod(num, 'mod', true).mod;\n };\n\n // Find Round(`this` / `num`)\n BN.prototype.divRound = function divRound (num) {\n var dm = this.divmod(num);\n\n // Fast case - exact division\n if (dm.mod.isZero()) return dm.div;\n\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half);\n\n // Round down\n if (cmp < 0 || (r2 === 1 && cmp === 0)) return dm.div;\n\n // Round up\n return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n };\n\n BN.prototype.modrn = function modrn (num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n\n assert(num <= 0x3ffffff);\n var p = (1 << 26) % num;\n\n var acc = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n acc = (p * acc + (this.words[i] | 0)) % num;\n }\n\n return isNegNum ? -acc : acc;\n };\n\n // WARNING: DEPRECATED\n BN.prototype.modn = function modn (num) {\n return this.modrn(num);\n };\n\n // In-place division by number\n BN.prototype.idivn = function idivn (num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n\n assert(num <= 0x3ffffff);\n\n var carry = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var w = (this.words[i] | 0) + carry * 0x4000000;\n this.words[i] = (w / num) | 0;\n carry = w % num;\n }\n\n this._strip();\n return isNegNum ? this.ineg() : this;\n };\n\n BN.prototype.divn = function divn (num) {\n return this.clone().idivn(num);\n };\n\n BN.prototype.egcd = function egcd (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var x = this;\n var y = p.clone();\n\n if (x.negative !== 0) {\n x = x.umod(p);\n } else {\n x = x.clone();\n }\n\n // A * x + B * y = x\n var A = new BN(1);\n var B = new BN(0);\n\n // C * x + D * y = y\n var C = new BN(0);\n var D = new BN(1);\n\n var g = 0;\n\n while (x.isEven() && y.isEven()) {\n x.iushrn(1);\n y.iushrn(1);\n ++g;\n }\n\n var yp = y.clone();\n var xp = x.clone();\n\n while (!x.isZero()) {\n for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n x.iushrn(i);\n while (i-- > 0) {\n if (A.isOdd() || B.isOdd()) {\n A.iadd(yp);\n B.isub(xp);\n }\n\n A.iushrn(1);\n B.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n y.iushrn(j);\n while (j-- > 0) {\n if (C.isOdd() || D.isOdd()) {\n C.iadd(yp);\n D.isub(xp);\n }\n\n C.iushrn(1);\n D.iushrn(1);\n }\n }\n\n if (x.cmp(y) >= 0) {\n x.isub(y);\n A.isub(C);\n B.isub(D);\n } else {\n y.isub(x);\n C.isub(A);\n D.isub(B);\n }\n }\n\n return {\n a: C,\n b: D,\n gcd: y.iushln(g)\n };\n };\n\n // This is reduced incarnation of the binary EEA\n // above, designated to invert members of the\n // _prime_ fields F(p) at a maximal speed\n BN.prototype._invmp = function _invmp (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var a = this;\n var b = p.clone();\n\n if (a.negative !== 0) {\n a = a.umod(p);\n } else {\n a = a.clone();\n }\n\n var x1 = new BN(1);\n var x2 = new BN(0);\n\n var delta = b.clone();\n\n while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n a.iushrn(i);\n while (i-- > 0) {\n if (x1.isOdd()) {\n x1.iadd(delta);\n }\n\n x1.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n b.iushrn(j);\n while (j-- > 0) {\n if (x2.isOdd()) {\n x2.iadd(delta);\n }\n\n x2.iushrn(1);\n }\n }\n\n if (a.cmp(b) >= 0) {\n a.isub(b);\n x1.isub(x2);\n } else {\n b.isub(a);\n x2.isub(x1);\n }\n }\n\n var res;\n if (a.cmpn(1) === 0) {\n res = x1;\n } else {\n res = x2;\n }\n\n if (res.cmpn(0) < 0) {\n res.iadd(p);\n }\n\n return res;\n };\n\n BN.prototype.gcd = function gcd (num) {\n if (this.isZero()) return num.abs();\n if (num.isZero()) return this.abs();\n\n var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0;\n\n // Remove common factor of two\n for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n a.iushrn(1);\n b.iushrn(1);\n }\n\n do {\n while (a.isEven()) {\n a.iushrn(1);\n }\n while (b.isEven()) {\n b.iushrn(1);\n }\n\n var r = a.cmp(b);\n if (r < 0) {\n // Swap `a` and `b` to make `a` always bigger than `b`\n var t = a;\n a = b;\n b = t;\n } else if (r === 0 || b.cmpn(1) === 0) {\n break;\n }\n\n a.isub(b);\n } while (true);\n\n return b.iushln(shift);\n };\n\n // Invert number in the field F(num)\n BN.prototype.invm = function invm (num) {\n return this.egcd(num).a.umod(num);\n };\n\n BN.prototype.isEven = function isEven () {\n return (this.words[0] & 1) === 0;\n };\n\n BN.prototype.isOdd = function isOdd () {\n return (this.words[0] & 1) === 1;\n };\n\n // And first word and num\n BN.prototype.andln = function andln (num) {\n return this.words[0] & num;\n };\n\n // Increment at the bit position in-line\n BN.prototype.bincn = function bincn (bit) {\n assert(typeof bit === 'number');\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) {\n this._expand(s + 1);\n this.words[s] |= q;\n return this;\n }\n\n // Add bit and propagate, if needed\n var carry = q;\n for (var i = s; carry !== 0 && i < this.length; i++) {\n var w = this.words[i] | 0;\n w += carry;\n carry = w >>> 26;\n w &= 0x3ffffff;\n this.words[i] = w;\n }\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n return this;\n };\n\n BN.prototype.isZero = function isZero () {\n return this.length === 1 && this.words[0] === 0;\n };\n\n BN.prototype.cmpn = function cmpn (num) {\n var negative = num < 0;\n\n if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n\n this._strip();\n\n var res;\n if (this.length > 1) {\n res = 1;\n } else {\n if (negative) {\n num = -num;\n }\n\n assert(num <= 0x3ffffff, 'Number is too big');\n\n var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Compare two numbers and return:\n // 1 - if `this` > `num`\n // 0 - if `this` == `num`\n // -1 - if `this` < `num`\n BN.prototype.cmp = function cmp (num) {\n if (this.negative !== 0 && num.negative === 0) return -1;\n if (this.negative === 0 && num.negative !== 0) return 1;\n\n var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Unsigned comparison\n BN.prototype.ucmp = function ucmp (num) {\n // At this point both numbers have the same sign\n if (this.length > num.length) return 1;\n if (this.length < num.length) return -1;\n\n var res = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var a = this.words[i] | 0;\n var b = num.words[i] | 0;\n\n if (a === b) continue;\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n break;\n }\n return res;\n };\n\n BN.prototype.gtn = function gtn (num) {\n return this.cmpn(num) === 1;\n };\n\n BN.prototype.gt = function gt (num) {\n return this.cmp(num) === 1;\n };\n\n BN.prototype.gten = function gten (num) {\n return this.cmpn(num) >= 0;\n };\n\n BN.prototype.gte = function gte (num) {\n return this.cmp(num) >= 0;\n };\n\n BN.prototype.ltn = function ltn (num) {\n return this.cmpn(num) === -1;\n };\n\n BN.prototype.lt = function lt (num) {\n return this.cmp(num) === -1;\n };\n\n BN.prototype.lten = function lten (num) {\n return this.cmpn(num) <= 0;\n };\n\n BN.prototype.lte = function lte (num) {\n return this.cmp(num) <= 0;\n };\n\n BN.prototype.eqn = function eqn (num) {\n return this.cmpn(num) === 0;\n };\n\n BN.prototype.eq = function eq (num) {\n return this.cmp(num) === 0;\n };\n\n //\n // A reduce context, could be using montgomery or something better, depending\n // on the `m` itself.\n //\n BN.red = function red (num) {\n return new Red(num);\n };\n\n BN.prototype.toRed = function toRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n assert(this.negative === 0, 'red works only with positives');\n return ctx.convertTo(this)._forceRed(ctx);\n };\n\n BN.prototype.fromRed = function fromRed () {\n assert(this.red, 'fromRed works only with numbers in reduction context');\n return this.red.convertFrom(this);\n };\n\n BN.prototype._forceRed = function _forceRed (ctx) {\n this.red = ctx;\n return this;\n };\n\n BN.prototype.forceRed = function forceRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n return this._forceRed(ctx);\n };\n\n BN.prototype.redAdd = function redAdd (num) {\n assert(this.red, 'redAdd works only with red numbers');\n return this.red.add(this, num);\n };\n\n BN.prototype.redIAdd = function redIAdd (num) {\n assert(this.red, 'redIAdd works only with red numbers');\n return this.red.iadd(this, num);\n };\n\n BN.prototype.redSub = function redSub (num) {\n assert(this.red, 'redSub works only with red numbers');\n return this.red.sub(this, num);\n };\n\n BN.prototype.redISub = function redISub (num) {\n assert(this.red, 'redISub works only with red numbers');\n return this.red.isub(this, num);\n };\n\n BN.prototype.redShl = function redShl (num) {\n assert(this.red, 'redShl works only with red numbers');\n return this.red.shl(this, num);\n };\n\n BN.prototype.redMul = function redMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.mul(this, num);\n };\n\n BN.prototype.redIMul = function redIMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.imul(this, num);\n };\n\n BN.prototype.redSqr = function redSqr () {\n assert(this.red, 'redSqr works only with red numbers');\n this.red._verify1(this);\n return this.red.sqr(this);\n };\n\n BN.prototype.redISqr = function redISqr () {\n assert(this.red, 'redISqr works only with red numbers');\n this.red._verify1(this);\n return this.red.isqr(this);\n };\n\n // Square root over p\n BN.prototype.redSqrt = function redSqrt () {\n assert(this.red, 'redSqrt works only with red numbers');\n this.red._verify1(this);\n return this.red.sqrt(this);\n };\n\n BN.prototype.redInvm = function redInvm () {\n assert(this.red, 'redInvm works only with red numbers');\n this.red._verify1(this);\n return this.red.invm(this);\n };\n\n // Return negative clone of `this` % `red modulo`\n BN.prototype.redNeg = function redNeg () {\n assert(this.red, 'redNeg works only with red numbers');\n this.red._verify1(this);\n return this.red.neg(this);\n };\n\n BN.prototype.redPow = function redPow (num) {\n assert(this.red && !num.red, 'redPow(normalNum)');\n this.red._verify1(this);\n return this.red.pow(this, num);\n };\n\n // Prime numbers with efficient reduction\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n };\n\n // Pseudo-Mersenne prime\n function MPrime (name, p) {\n // P = 2 ^ N - K\n this.name = name;\n this.p = new BN(p, 16);\n this.n = this.p.bitLength();\n this.k = new BN(1).iushln(this.n).isub(this.p);\n\n this.tmp = this._tmp();\n }\n\n MPrime.prototype._tmp = function _tmp () {\n var tmp = new BN(null);\n tmp.words = new Array(Math.ceil(this.n / 13));\n return tmp;\n };\n\n MPrime.prototype.ireduce = function ireduce (num) {\n // Assumes that `num` is less than `P^2`\n // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n var r = num;\n var rlen;\n\n do {\n this.split(r, this.tmp);\n r = this.imulK(r);\n r = r.iadd(this.tmp);\n rlen = r.bitLength();\n } while (rlen > this.n);\n\n var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n if (cmp === 0) {\n r.words[0] = 0;\n r.length = 1;\n } else if (cmp > 0) {\n r.isub(this.p);\n } else {\n if (r.strip !== undefined) {\n // r is a BN v4 instance\n r.strip();\n } else {\n // r is a BN v5 instance\n r._strip();\n }\n }\n\n return r;\n };\n\n MPrime.prototype.split = function split (input, out) {\n input.iushrn(this.n, 0, out);\n };\n\n MPrime.prototype.imulK = function imulK (num) {\n return num.imul(this.k);\n };\n\n function K256 () {\n MPrime.call(\n this,\n 'k256',\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n }\n inherits(K256, MPrime);\n\n K256.prototype.split = function split (input, output) {\n // 256 = 9 * 26 + 22\n var mask = 0x3fffff;\n\n var outLen = Math.min(input.length, 9);\n for (var i = 0; i < outLen; i++) {\n output.words[i] = input.words[i];\n }\n output.length = outLen;\n\n if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n }\n\n // Shift by 9 limbs\n var prev = input.words[9];\n output.words[output.length++] = prev & mask;\n\n for (i = 10; i < input.length; i++) {\n var next = input.words[i] | 0;\n input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22);\n prev = next;\n }\n prev >>>= 22;\n input.words[i - 10] = prev;\n if (prev === 0 && input.length > 10) {\n input.length -= 10;\n } else {\n input.length -= 9;\n }\n };\n\n K256.prototype.imulK = function imulK (num) {\n // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n num.words[num.length] = 0;\n num.words[num.length + 1] = 0;\n num.length += 2;\n\n // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n var lo = 0;\n for (var i = 0; i < num.length; i++) {\n var w = num.words[i] | 0;\n lo += w * 0x3d1;\n num.words[i] = lo & 0x3ffffff;\n lo = w * 0x40 + ((lo / 0x4000000) | 0);\n }\n\n // Fast length reduction\n if (num.words[num.length - 1] === 0) {\n num.length--;\n if (num.words[num.length - 1] === 0) {\n num.length--;\n }\n }\n return num;\n };\n\n function P224 () {\n MPrime.call(\n this,\n 'p224',\n 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n }\n inherits(P224, MPrime);\n\n function P192 () {\n MPrime.call(\n this,\n 'p192',\n 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n }\n inherits(P192, MPrime);\n\n function P25519 () {\n // 2 ^ 255 - 19\n MPrime.call(\n this,\n '25519',\n '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n }\n inherits(P25519, MPrime);\n\n P25519.prototype.imulK = function imulK (num) {\n // K = 0x13\n var carry = 0;\n for (var i = 0; i < num.length; i++) {\n var hi = (num.words[i] | 0) * 0x13 + carry;\n var lo = hi & 0x3ffffff;\n hi >>>= 26;\n\n num.words[i] = lo;\n carry = hi;\n }\n if (carry !== 0) {\n num.words[num.length++] = carry;\n }\n return num;\n };\n\n // Exported mostly for testing purposes, use plain name instead\n BN._prime = function prime (name) {\n // Cached version of prime\n if (primes[name]) return primes[name];\n\n var prime;\n if (name === 'k256') {\n prime = new K256();\n } else if (name === 'p224') {\n prime = new P224();\n } else if (name === 'p192') {\n prime = new P192();\n } else if (name === 'p25519') {\n prime = new P25519();\n } else {\n throw new Error('Unknown prime ' + name);\n }\n primes[name] = prime;\n\n return prime;\n };\n\n //\n // Base reduction engine\n //\n function Red (m) {\n if (typeof m === 'string') {\n var prime = BN._prime(m);\n this.m = prime.p;\n this.prime = prime;\n } else {\n assert(m.gtn(1), 'modulus must be greater than 1');\n this.m = m;\n this.prime = null;\n }\n }\n\n Red.prototype._verify1 = function _verify1 (a) {\n assert(a.negative === 0, 'red works only with positives');\n assert(a.red, 'red works only with red numbers');\n };\n\n Red.prototype._verify2 = function _verify2 (a, b) {\n assert((a.negative | b.negative) === 0, 'red works only with positives');\n assert(a.red && a.red === b.red,\n 'red works only with red numbers');\n };\n\n Red.prototype.imod = function imod (a) {\n if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n\n move(a, a.umod(this.m)._forceRed(this));\n return a;\n };\n\n Red.prototype.neg = function neg (a) {\n if (a.isZero()) {\n return a.clone();\n }\n\n return this.m.sub(a)._forceRed(this);\n };\n\n Red.prototype.add = function add (a, b) {\n this._verify2(a, b);\n\n var res = a.add(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.iadd = function iadd (a, b) {\n this._verify2(a, b);\n\n var res = a.iadd(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res;\n };\n\n Red.prototype.sub = function sub (a, b) {\n this._verify2(a, b);\n\n var res = a.sub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.isub = function isub (a, b) {\n this._verify2(a, b);\n\n var res = a.isub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res;\n };\n\n Red.prototype.shl = function shl (a, num) {\n this._verify1(a);\n return this.imod(a.ushln(num));\n };\n\n Red.prototype.imul = function imul (a, b) {\n this._verify2(a, b);\n return this.imod(a.imul(b));\n };\n\n Red.prototype.mul = function mul (a, b) {\n this._verify2(a, b);\n return this.imod(a.mul(b));\n };\n\n Red.prototype.isqr = function isqr (a) {\n return this.imul(a, a.clone());\n };\n\n Red.prototype.sqr = function sqr (a) {\n return this.mul(a, a);\n };\n\n Red.prototype.sqrt = function sqrt (a) {\n if (a.isZero()) return a.clone();\n\n var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1);\n\n // Fast case\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n }\n\n // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n //\n // Find Q and S, that Q * 2 ^ S = (P - 1)\n var q = this.m.subn(1);\n var s = 0;\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n assert(!q.isZero());\n\n var one = new BN(1).toRed(this);\n var nOne = one.redNeg();\n\n // Find quadratic non-residue\n // NOTE: Max is such because of generalized Riemann hypothesis.\n var lpow = this.m.subn(1).iushrn(1);\n var z = this.m.bitLength();\n z = new BN(2 * z * z).toRed(this);\n\n while (this.pow(z, lpow).cmp(nOne) !== 0) {\n z.redIAdd(nOne);\n }\n\n var c = this.pow(z, q);\n var r = this.pow(a, q.addn(1).iushrn(1));\n var t = this.pow(a, q);\n var m = s;\n while (t.cmp(one) !== 0) {\n var tmp = t;\n for (var i = 0; tmp.cmp(one) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\n\n r = r.redMul(b);\n c = b.redSqr();\n t = t.redMul(c);\n m = i;\n }\n\n return r;\n };\n\n Red.prototype.invm = function invm (a) {\n var inv = a._invmp(this.m);\n if (inv.negative !== 0) {\n inv.negative = 0;\n return this.imod(inv).redNeg();\n } else {\n return this.imod(inv);\n }\n };\n\n Red.prototype.pow = function pow (a, num) {\n if (num.isZero()) return new BN(1).toRed(this);\n if (num.cmpn(1) === 0) return a.clone();\n\n var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n for (var i = 2; i < wnd.length; i++) {\n wnd[i] = this.mul(wnd[i - 1], a);\n }\n\n var res = wnd[0];\n var current = 0;\n var currentLen = 0;\n var start = num.bitLength() % 26;\n if (start === 0) {\n start = 26;\n }\n\n for (i = num.length - 1; i >= 0; i--) {\n var word = num.words[i];\n for (var j = start - 1; j >= 0; j--) {\n var bit = (word >> j) & 1;\n if (res !== wnd[0]) {\n res = this.sqr(res);\n }\n\n if (bit === 0 && current === 0) {\n currentLen = 0;\n continue;\n }\n\n current <<= 1;\n current |= bit;\n currentLen++;\n if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n\n res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\n start = 26;\n }\n\n return res;\n };\n\n Red.prototype.convertTo = function convertTo (num) {\n var r = num.umod(this.m);\n\n return r === num ? r.clone() : r;\n };\n\n Red.prototype.convertFrom = function convertFrom (num) {\n var res = num.clone();\n res.red = null;\n return res;\n };\n\n //\n // Montgomery method engine\n //\n\n BN.mont = function mont (num) {\n return new Mont(num);\n };\n\n function Mont (m) {\n Red.call(this, m);\n\n this.shift = this.m.bitLength();\n if (this.shift % 26 !== 0) {\n this.shift += 26 - (this.shift % 26);\n }\n\n this.r = new BN(1).iushln(this.shift);\n this.r2 = this.imod(this.r.sqr());\n this.rinv = this.r._invmp(this.m);\n\n this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n this.minv = this.minv.umod(this.r);\n this.minv = this.r.sub(this.minv);\n }\n inherits(Mont, Red);\n\n Mont.prototype.convertTo = function convertTo (num) {\n return this.imod(num.ushln(this.shift));\n };\n\n Mont.prototype.convertFrom = function convertFrom (num) {\n var r = this.imod(num.mul(this.rinv));\n r.red = null;\n return r;\n };\n\n Mont.prototype.imul = function imul (a, b) {\n if (a.isZero() || b.isZero()) {\n a.words[0] = 0;\n a.length = 1;\n return a;\n }\n\n var t = a.imul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.mul = function mul (a, b) {\n if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n\n var t = a.mul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.invm = function invm (a) {\n // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n var res = this.imod(a._invmp(this.m).mul(this.r2));\n return res._forceRed(this);\n };\n})(typeof module === 'undefined' || module, this);\n", "export const version = \"logger/5.7.0\";\n", "\"use strict\";\n\nlet _permanentCensorErrors = false;\nlet _censorErrors = false;\n\nconst LogLevels: { [ name: string ]: number } = { debug: 1, \"default\": 2, info: 2, warning: 3, error: 4, off: 5 };\nlet _logLevel = LogLevels[\"default\"];\n\nimport { version } from \"./_version\";\n\nlet _globalLogger: Logger = null;\n\nfunction _checkNormalize(): string {\n try {\n const missing: Array = [ ];\n\n // Make sure all forms of normalization are supported\n [\"NFD\", \"NFC\", \"NFKD\", \"NFKC\"].forEach((form) => {\n try {\n if (\"test\".normalize(form) !== \"test\") {\n throw new Error(\"bad normalize\");\n };\n } catch(error) {\n missing.push(form);\n }\n });\n\n if (missing.length) {\n throw new Error(\"missing \" + missing.join(\", \"));\n }\n\n if (String.fromCharCode(0xe9).normalize(\"NFD\") !== String.fromCharCode(0x65, 0x0301)) {\n throw new Error(\"broken implementation\")\n }\n } catch (error) {\n return error.message;\n }\n\n return null;\n}\n\nconst _normalizeError = _checkNormalize();\n\nexport enum LogLevel {\n DEBUG = \"DEBUG\",\n INFO = \"INFO\",\n WARNING = \"WARNING\",\n ERROR = \"ERROR\",\n OFF = \"OFF\"\n}\n\n\nexport enum ErrorCode {\n\n ///////////////////\n // Generic Errors\n\n // Unknown Error\n UNKNOWN_ERROR = \"UNKNOWN_ERROR\",\n\n // Not Implemented\n NOT_IMPLEMENTED = \"NOT_IMPLEMENTED\",\n\n // Unsupported Operation\n // - operation\n UNSUPPORTED_OPERATION = \"UNSUPPORTED_OPERATION\",\n\n // Network Error (i.e. Ethereum Network, such as an invalid chain ID)\n // - event (\"noNetwork\" is not re-thrown in provider.ready; otherwise thrown)\n NETWORK_ERROR = \"NETWORK_ERROR\",\n\n // Some sort of bad response from the server\n SERVER_ERROR = \"SERVER_ERROR\",\n\n // Timeout\n TIMEOUT = \"TIMEOUT\",\n\n ///////////////////\n // Operational Errors\n\n // Buffer Overrun\n BUFFER_OVERRUN = \"BUFFER_OVERRUN\",\n\n // Numeric Fault\n // - operation: the operation being executed\n // - fault: the reason this faulted\n NUMERIC_FAULT = \"NUMERIC_FAULT\",\n\n\n ///////////////////\n // Argument Errors\n\n // Missing new operator to an object\n // - name: The name of the class\n MISSING_NEW = \"MISSING_NEW\",\n\n // Invalid argument (e.g. value is incompatible with type) to a function:\n // - argument: The argument name that was invalid\n // - value: The value of the argument\n INVALID_ARGUMENT = \"INVALID_ARGUMENT\",\n\n // Missing argument to a function:\n // - count: The number of arguments received\n // - expectedCount: The number of arguments expected\n MISSING_ARGUMENT = \"MISSING_ARGUMENT\",\n\n // Too many arguments\n // - count: The number of arguments received\n // - expectedCount: The number of arguments expected\n UNEXPECTED_ARGUMENT = \"UNEXPECTED_ARGUMENT\",\n\n\n ///////////////////\n // Blockchain Errors\n\n // Call exception\n // - transaction: the transaction\n // - address?: the contract address\n // - args?: The arguments passed into the function\n // - method?: The Solidity method signature\n // - errorSignature?: The EIP848 error signature\n // - errorArgs?: The EIP848 error parameters\n // - reason: The reason (only for EIP848 \"Error(string)\")\n CALL_EXCEPTION = \"CALL_EXCEPTION\",\n\n // Insufficient funds (< value + gasLimit * gasPrice)\n // - transaction: the transaction attempted\n INSUFFICIENT_FUNDS = \"INSUFFICIENT_FUNDS\",\n\n // Nonce has already been used\n // - transaction: the transaction attempted\n NONCE_EXPIRED = \"NONCE_EXPIRED\",\n\n // The replacement fee for the transaction is too low\n // - transaction: the transaction attempted\n REPLACEMENT_UNDERPRICED = \"REPLACEMENT_UNDERPRICED\",\n\n // The gas limit could not be estimated\n // - transaction: the transaction passed to estimateGas\n UNPREDICTABLE_GAS_LIMIT = \"UNPREDICTABLE_GAS_LIMIT\",\n\n // The transaction was replaced by one with a higher gas price\n // - reason: \"cancelled\", \"replaced\" or \"repriced\"\n // - cancelled: true if reason == \"cancelled\" or reason == \"replaced\")\n // - hash: original transaction hash\n // - replacement: the full TransactionsResponse for the replacement\n // - receipt: the receipt of the replacement\n TRANSACTION_REPLACED = \"TRANSACTION_REPLACED\",\n\n\n ///////////////////\n // Interaction Errors\n\n // The user rejected the action, such as signing a message or sending\n // a transaction\n ACTION_REJECTED = \"ACTION_REJECTED\",\n};\n\nconst HEX = \"0123456789abcdef\";\n\nexport class Logger {\n readonly version: string;\n\n static errors = ErrorCode;\n\n static levels = LogLevel;\n\n constructor(version: string) {\n Object.defineProperty(this, \"version\", {\n enumerable: true,\n value: version,\n writable: false\n });\n }\n\n _log(logLevel: LogLevel, args: Array): void {\n const level = logLevel.toLowerCase();\n if (LogLevels[level] == null) {\n this.throwArgumentError(\"invalid log level name\", \"logLevel\", logLevel);\n }\n if (_logLevel > LogLevels[level]) { return; }\n console.log.apply(console, args);\n }\n\n debug(...args: Array): void {\n this._log(Logger.levels.DEBUG, args);\n }\n\n info(...args: Array): void {\n this._log(Logger.levels.INFO, args);\n }\n\n warn(...args: Array): void {\n this._log(Logger.levels.WARNING, args);\n }\n\n makeError(message: string, code?: ErrorCode, params?: any): Error {\n // Errors are being censored\n if (_censorErrors) {\n return this.makeError(\"censored error\", code, { });\n }\n\n if (!code) { code = Logger.errors.UNKNOWN_ERROR; }\n if (!params) { params = {}; }\n\n const messageDetails: Array = [];\n Object.keys(params).forEach((key) => {\n const value = params[key];\n try {\n if (value instanceof Uint8Array) {\n let hex = \"\";\n for (let i = 0; i < value.length; i++) {\n hex += HEX[value[i] >> 4];\n hex += HEX[value[i] & 0x0f];\n }\n messageDetails.push(key + \"=Uint8Array(0x\" + hex + \")\");\n } else {\n messageDetails.push(key + \"=\" + JSON.stringify(value));\n }\n } catch (error) {\n messageDetails.push(key + \"=\" + JSON.stringify(params[key].toString()));\n }\n });\n messageDetails.push(`code=${ code }`);\n messageDetails.push(`version=${ this.version }`);\n\n const reason = message;\n\n let url = \"\";\n\n switch (code) {\n case ErrorCode.NUMERIC_FAULT: {\n url = \"NUMERIC_FAULT\";\n const fault = message;\n\n switch (fault) {\n case \"overflow\": case \"underflow\": case \"division-by-zero\":\n url += \"-\" + fault;\n break;\n case \"negative-power\": case \"negative-width\":\n url += \"-unsupported\";\n break;\n case \"unbound-bitwise-result\":\n url += \"-unbound-result\";\n break;\n }\n break;\n }\n case ErrorCode.CALL_EXCEPTION:\n case ErrorCode.INSUFFICIENT_FUNDS:\n case ErrorCode.MISSING_NEW:\n case ErrorCode.NONCE_EXPIRED:\n case ErrorCode.REPLACEMENT_UNDERPRICED:\n case ErrorCode.TRANSACTION_REPLACED:\n case ErrorCode.UNPREDICTABLE_GAS_LIMIT:\n url = code;\n break;\n }\n\n if (url) {\n message += \" [ See: https:/\\/links.ethers.org/v5-errors-\" + url + \" ]\";\n }\n\n if (messageDetails.length) {\n message += \" (\" + messageDetails.join(\", \") + \")\";\n }\n\n // @TODO: Any??\n const error: any = new Error(message);\n error.reason = reason;\n error.code = code\n\n Object.keys(params).forEach(function(key) {\n error[key] = params[key];\n });\n\n return error;\n }\n\n throwError(message: string, code?: ErrorCode, params?: any): never {\n throw this.makeError(message, code, params);\n }\n\n throwArgumentError(message: string, name: string, value: any): never {\n return this.throwError(message, Logger.errors.INVALID_ARGUMENT, {\n argument: name,\n value: value\n });\n }\n\n assert(condition: any, message: string, code?: ErrorCode, params?: any): void {\n if (!!condition) { return; }\n this.throwError(message, code, params);\n }\n\n assertArgument(condition: any, message: string, name: string, value: any): void {\n if (!!condition) { return; }\n this.throwArgumentError(message, name, value);\n }\n\n checkNormalize(message?: string): void {\n if (message == null) { message = \"platform missing String.prototype.normalize\"; }\n if (_normalizeError) {\n this.throwError(\"platform missing String.prototype.normalize\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"String.prototype.normalize\", form: _normalizeError\n });\n }\n }\n\n checkSafeUint53(value: number, message?: string): void {\n if (typeof(value) !== \"number\") { return; }\n\n if (message == null) { message = \"value not safe\"; }\n\n if (value < 0 || value >= 0x1fffffffffffff) {\n this.throwError(message, Logger.errors.NUMERIC_FAULT, {\n operation: \"checkSafeInteger\",\n fault: \"out-of-safe-range\",\n value: value\n });\n }\n\n if (value % 1) {\n this.throwError(message, Logger.errors.NUMERIC_FAULT, {\n operation: \"checkSafeInteger\",\n fault: \"non-integer\",\n value: value\n });\n }\n }\n\n checkArgumentCount(count: number, expectedCount: number, message?: string): void {\n if (message) {\n message = \": \" + message;\n } else {\n message = \"\";\n }\n\n if (count < expectedCount) {\n this.throwError(\"missing argument\" + message, Logger.errors.MISSING_ARGUMENT, {\n count: count,\n expectedCount: expectedCount\n });\n }\n\n if (count > expectedCount) {\n this.throwError(\"too many arguments\" + message, Logger.errors.UNEXPECTED_ARGUMENT, {\n count: count,\n expectedCount: expectedCount\n });\n }\n }\n\n checkNew(target: any, kind: any): void {\n if (target === Object || target == null) {\n this.throwError(\"missing new\", Logger.errors.MISSING_NEW, { name: kind.name });\n }\n }\n\n checkAbstract(target: any, kind: any): void {\n if (target === kind) {\n this.throwError(\n \"cannot instantiate abstract class \" + JSON.stringify(kind.name) + \" directly; use a sub-class\",\n Logger.errors.UNSUPPORTED_OPERATION,\n { name: target.name, operation: \"new\" }\n );\n } else if (target === Object || target == null) {\n this.throwError(\"missing new\", Logger.errors.MISSING_NEW, { name: kind.name });\n }\n }\n\n static globalLogger(): Logger {\n if (!_globalLogger) { _globalLogger = new Logger(version); }\n return _globalLogger;\n }\n\n static setCensorship(censorship: boolean, permanent?: boolean): void {\n if (!censorship && permanent) {\n this.globalLogger().throwError(\"cannot permanently disable censorship\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"setCensorship\"\n });\n }\n\n if (_permanentCensorErrors) {\n if (!censorship) { return; }\n this.globalLogger().throwError(\"error censorship permanent\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"setCensorship\"\n });\n }\n\n _censorErrors = !!censorship;\n _permanentCensorErrors = !!permanent;\n }\n\n static setLogLevel(logLevel: LogLevel): void {\n const level = LogLevels[logLevel.toLowerCase()];\n if (level == null) {\n Logger.globalLogger().warn(\"invalid log level - \" + logLevel);\n return;\n }\n _logLevel = level;\n }\n\n static from(version: string): Logger {\n return new Logger(version);\n }\n}\n", "export const version = \"bytes/5.7.0\";\n", "\"use strict\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\n///////////////////////////////\n// Exported Types\n\nexport type Bytes = ArrayLike;\n\nexport type BytesLike = Bytes | string;\n\nexport type DataOptions = {\n allowMissingPrefix?: boolean;\n hexPad?: \"left\" | \"right\" | null;\n};\n\nexport interface Hexable {\n toHexString(): string;\n}\n\n\n/*\nexport interface HexString {\n length: number;\n substring: (start: number, end?: number) => string;\n\n [index: number]: string;\n}\n*/\n\nexport type SignatureLike = {\n r: string;\n s?: string;\n _vs?: string,\n recoveryParam?: number;\n v?: number;\n} | BytesLike;\n\nexport interface Signature {\n r: string;\n\n s: string;\n _vs: string,\n\n recoveryParam: number;\n v: number;\n\n yParityAndS: string\n compact: string;\n}\n\n///////////////////////////////\n\n\nfunction isHexable(value: any): value is Hexable {\n return !!(value.toHexString);\n}\n\nfunction addSlice(array: Uint8Array): Uint8Array {\n if (array.slice) { return array; }\n\n array.slice = function() {\n const args = Array.prototype.slice.call(arguments);\n return addSlice(new Uint8Array(Array.prototype.slice.apply(array, args)));\n }\n\n return array;\n}\n\nexport function isBytesLike(value: any): value is BytesLike {\n return ((isHexString(value) && !(value.length % 2)) || isBytes(value));\n}\n\nfunction isInteger(value: number) {\n return (typeof(value) === \"number\" && value == value && (value % 1) === 0);\n}\n\nexport function isBytes(value: any): value is Bytes {\n if (value == null) { return false; }\n\n if (value.constructor === Uint8Array) { return true; }\n if (typeof(value) === \"string\") { return false; }\n if (!isInteger(value.length) || value.length < 0) { return false; }\n\n for (let i = 0; i < value.length; i++) {\n const v = value[i];\n if (!isInteger(v) || v < 0 || v >= 256) { return false; }\n }\n return true;\n}\n\n\nexport function arrayify(value: BytesLike | Hexable | number, options?: DataOptions): Uint8Array {\n if (!options) { options = { }; }\n\n if (typeof(value) === \"number\") {\n logger.checkSafeUint53(value, \"invalid arrayify value\");\n\n const result = [];\n while (value) {\n result.unshift(value & 0xff);\n value = parseInt(String(value / 256));\n }\n if (result.length === 0) { result.push(0); }\n\n return addSlice(new Uint8Array(result));\n }\n\n if (options.allowMissingPrefix && typeof(value) === \"string\" && value.substring(0, 2) !== \"0x\") {\n value = \"0x\" + value;\n }\n\n if (isHexable(value)) { value = value.toHexString(); }\n\n if (isHexString(value)) {\n let hex = (value).substring(2);\n if (hex.length % 2) {\n if (options.hexPad === \"left\") {\n hex = \"0\" + hex;\n } else if (options.hexPad === \"right\") {\n hex += \"0\";\n } else {\n logger.throwArgumentError(\"hex data is odd-length\", \"value\", value);\n }\n }\n\n const result = [];\n for (let i = 0; i < hex.length; i += 2) {\n result.push(parseInt(hex.substring(i, i + 2), 16));\n }\n\n return addSlice(new Uint8Array(result));\n }\n\n if (isBytes(value)) {\n return addSlice(new Uint8Array(value));\n }\n\n return logger.throwArgumentError(\"invalid arrayify value\", \"value\", value);\n}\n\nexport function concat(items: ReadonlyArray): Uint8Array {\n const objects = items.map(item => arrayify(item));\n const length = objects.reduce((accum, item) => (accum + item.length), 0);\n\n const result = new Uint8Array(length);\n\n objects.reduce((offset, object) => {\n result.set(object, offset);\n return offset + object.length;\n }, 0);\n\n return addSlice(result);\n}\n\nexport function stripZeros(value: BytesLike): Uint8Array {\n let result: Uint8Array = arrayify(value);\n\n if (result.length === 0) { return result; }\n\n // Find the first non-zero entry\n let start = 0;\n while (start < result.length && result[start] === 0) { start++ }\n\n // If we started with zeros, strip them\n if (start) {\n result = result.slice(start);\n }\n\n return result;\n}\n\nexport function zeroPad(value: BytesLike, length: number): Uint8Array {\n value = arrayify(value);\n\n if (value.length > length) {\n logger.throwArgumentError(\"value out of range\", \"value\", arguments[0]);\n }\n\n const result = new Uint8Array(length);\n result.set(value, length - value.length);\n return addSlice(result);\n}\n\n\nexport function isHexString(value: any, length?: number): boolean {\n if (typeof(value) !== \"string\" || !value.match(/^0x[0-9A-Fa-f]*$/)) {\n return false\n }\n if (length && value.length !== 2 + 2 * length) { return false; }\n return true;\n}\n\nconst HexCharacters: string = \"0123456789abcdef\";\n\nexport function hexlify(value: BytesLike | Hexable | number | bigint, options?: DataOptions): string {\n if (!options) { options = { }; }\n\n if (typeof(value) === \"number\") {\n logger.checkSafeUint53(value, \"invalid hexlify value\");\n\n let hex = \"\";\n while (value) {\n hex = HexCharacters[value & 0xf] + hex;\n value = Math.floor(value / 16);\n }\n\n if (hex.length) {\n if (hex.length % 2) { hex = \"0\" + hex; }\n return \"0x\" + hex;\n }\n\n return \"0x00\";\n }\n\n if (typeof(value) === \"bigint\") {\n value = value.toString(16);\n if (value.length % 2) { return (\"0x0\" + value); }\n return \"0x\" + value;\n }\n\n if (options.allowMissingPrefix && typeof(value) === \"string\" && value.substring(0, 2) !== \"0x\") {\n value = \"0x\" + value;\n }\n\n if (isHexable(value)) { return value.toHexString(); }\n\n if (isHexString(value)) {\n if ((value).length % 2) {\n if (options.hexPad === \"left\") {\n value = \"0x0\" + (value).substring(2);\n } else if (options.hexPad === \"right\") {\n value += \"0\";\n } else {\n logger.throwArgumentError(\"hex data is odd-length\", \"value\", value);\n }\n }\n return (value).toLowerCase();\n }\n\n if (isBytes(value)) {\n let result = \"0x\";\n for (let i = 0; i < value.length; i++) {\n let v = value[i];\n result += HexCharacters[(v & 0xf0) >> 4] + HexCharacters[v & 0x0f];\n }\n return result;\n }\n\n return logger.throwArgumentError(\"invalid hexlify value\", \"value\", value);\n}\n\n/*\nfunction unoddify(value: BytesLike | Hexable | number): BytesLike | Hexable | number {\n if (typeof(value) === \"string\" && value.length % 2 && value.substring(0, 2) === \"0x\") {\n return \"0x0\" + value.substring(2);\n }\n return value;\n}\n*/\nexport function hexDataLength(data: BytesLike) {\n if (typeof(data) !== \"string\") {\n data = hexlify(data);\n } else if (!isHexString(data) || (data.length % 2)) {\n return null;\n }\n\n return (data.length - 2) / 2;\n}\n\nexport function hexDataSlice(data: BytesLike, offset: number, endOffset?: number): string {\n if (typeof(data) !== \"string\") {\n data = hexlify(data);\n } else if (!isHexString(data) || (data.length % 2)) {\n logger.throwArgumentError(\"invalid hexData\", \"value\", data );\n }\n\n offset = 2 + 2 * offset;\n\n if (endOffset != null) {\n return \"0x\" + data.substring(offset, 2 + 2 * endOffset);\n }\n\n return \"0x\" + data.substring(offset);\n}\n\nexport function hexConcat(items: ReadonlyArray): string {\n let result = \"0x\";\n items.forEach((item) => {\n result += hexlify(item).substring(2);\n });\n return result;\n}\n\nexport function hexValue(value: BytesLike | Hexable | number | bigint): string {\n const trimmed = hexStripZeros(hexlify(value, { hexPad: \"left\" }));\n if (trimmed === \"0x\") { return \"0x0\"; }\n return trimmed;\n}\n\nexport function hexStripZeros(value: BytesLike): string {\n if (typeof(value) !== \"string\") { value = hexlify(value); }\n\n if (!isHexString(value)) {\n logger.throwArgumentError(\"invalid hex string\", \"value\", value);\n }\n value = value.substring(2);\n let offset = 0;\n while (offset < value.length && value[offset] === \"0\") { offset++; }\n return \"0x\" + value.substring(offset);\n}\n\nexport function hexZeroPad(value: BytesLike, length: number): string {\n if (typeof(value) !== \"string\") {\n value = hexlify(value);\n } else if (!isHexString(value)) {\n logger.throwArgumentError(\"invalid hex string\", \"value\", value);\n }\n\n if (value.length > 2 * length + 2) {\n logger.throwArgumentError(\"value out of range\", \"value\", arguments[1]);\n }\n\n while (value.length < 2 * length + 2) {\n value = \"0x0\" + value.substring(2);\n }\n\n return value;\n}\n\nexport function splitSignature(signature: SignatureLike): Signature {\n\n const result = {\n r: \"0x\",\n s: \"0x\",\n _vs: \"0x\",\n recoveryParam: 0,\n v: 0,\n yParityAndS: \"0x\",\n compact: \"0x\"\n };\n\n if (isBytesLike(signature)) {\n let bytes: Uint8Array = arrayify(signature);\n\n // Get the r, s and v\n if (bytes.length === 64) {\n // EIP-2098; pull the v from the top bit of s and clear it\n result.v = 27 + (bytes[32] >> 7);\n bytes[32] &= 0x7f;\n\n result.r = hexlify(bytes.slice(0, 32));\n result.s = hexlify(bytes.slice(32, 64));\n\n } else if (bytes.length === 65) {\n result.r = hexlify(bytes.slice(0, 32));\n result.s = hexlify(bytes.slice(32, 64));\n result.v = bytes[64];\n } else {\n\n logger.throwArgumentError(\"invalid signature string\", \"signature\", signature);\n }\n\n\n // Allow a recid to be used as the v\n if (result.v < 27) {\n if (result.v === 0 || result.v === 1) {\n result.v += 27;\n } else {\n logger.throwArgumentError(\"signature invalid v byte\", \"signature\", signature);\n }\n }\n\n // Compute recoveryParam from v\n result.recoveryParam = 1 - (result.v % 2);\n\n // Compute _vs from recoveryParam and s\n if (result.recoveryParam) { bytes[32] |= 0x80; }\n result._vs = hexlify(bytes.slice(32, 64))\n\n } else {\n result.r = signature.r;\n result.s = signature.s;\n result.v = signature.v;\n result.recoveryParam = signature.recoveryParam;\n result._vs = signature._vs;\n\n // If the _vs is available, use it to populate missing s, v and recoveryParam\n // and verify non-missing s, v and recoveryParam\n if (result._vs != null) {\n const vs = zeroPad(arrayify(result._vs), 32);\n result._vs = hexlify(vs);\n\n // Set or check the recid\n const recoveryParam = ((vs[0] >= 128) ? 1: 0);\n if (result.recoveryParam == null) {\n result.recoveryParam = recoveryParam;\n } else if (result.recoveryParam !== recoveryParam) {\n logger.throwArgumentError(\"signature recoveryParam mismatch _vs\", \"signature\", signature);\n }\n\n // Set or check the s\n vs[0] &= 0x7f;\n const s = hexlify(vs);\n if (result.s == null) {\n result.s = s;\n } else if (result.s !== s) {\n logger.throwArgumentError(\"signature v mismatch _vs\", \"signature\", signature);\n }\n }\n\n // Use recid and v to populate each other\n if (result.recoveryParam == null) {\n if (result.v == null) {\n logger.throwArgumentError(\"signature missing v and recoveryParam\", \"signature\", signature);\n } else if (result.v === 0 || result.v === 1) {\n result.recoveryParam = result.v;\n } else {\n result.recoveryParam = 1 - (result.v % 2);\n }\n } else {\n if (result.v == null) {\n result.v = 27 + result.recoveryParam;\n } else {\n const recId = (result.v === 0 || result.v === 1) ? result.v :(1 - (result.v % 2));\n if (result.recoveryParam !== recId) {\n logger.throwArgumentError(\"signature recoveryParam mismatch v\", \"signature\", signature);\n }\n }\n }\n\n if (result.r == null || !isHexString(result.r)) {\n logger.throwArgumentError(\"signature missing or invalid r\", \"signature\", signature);\n } else {\n result.r = hexZeroPad(result.r, 32);\n }\n\n if (result.s == null || !isHexString(result.s)) {\n logger.throwArgumentError(\"signature missing or invalid s\", \"signature\", signature);\n } else {\n result.s = hexZeroPad(result.s, 32);\n }\n\n const vs = arrayify(result.s);\n if (vs[0] >= 128) {\n logger.throwArgumentError(\"signature s out of range\", \"signature\", signature);\n }\n if (result.recoveryParam) { vs[0] |= 0x80; }\n const _vs = hexlify(vs);\n\n if (result._vs) {\n if (!isHexString(result._vs)) {\n logger.throwArgumentError(\"signature invalid _vs\", \"signature\", signature);\n }\n result._vs = hexZeroPad(result._vs, 32);\n }\n\n // Set or check the _vs\n if (result._vs == null) {\n result._vs = _vs;\n } else if (result._vs !== _vs) {\n logger.throwArgumentError(\"signature _vs mismatch v and s\", \"signature\", signature);\n }\n }\n\n result.yParityAndS = result._vs;\n result.compact = result.r + result.yParityAndS.substring(2);\n\n return result;\n}\n\nexport function joinSignature(signature: SignatureLike): string {\n signature = splitSignature(signature);\n\n return hexlify(concat([\n signature.r,\n signature.s,\n (signature.recoveryParam ? \"0x1c\": \"0x1b\")\n ]));\n}\n\n", "export const version = \"bignumber/5.7.0\";\n", "\"use strict\";\n\n/**\n * BigNumber\n *\n * A wrapper around the BN.js object. We use the BN.js library\n * because it is used by elliptic, so it is required regardless.\n *\n */\n\nimport _BN from \"bn.js\";\nimport BN = _BN.BN;\n\nimport { Bytes, Hexable, hexlify, isBytes, isHexString } from \"@ethersproject/bytes\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\nconst _constructorGuard = { };\n\nconst MAX_SAFE = 0x1fffffffffffff;\n\n\nexport type BigNumberish = BigNumber | Bytes | bigint | string | number;\n\nexport function isBigNumberish(value: any): value is BigNumberish {\n return (value != null) && (\n BigNumber.isBigNumber(value) ||\n (typeof(value) === \"number\" && (value % 1) === 0) ||\n (typeof(value) === \"string\" && !!value.match(/^-?[0-9]+$/)) ||\n isHexString(value) ||\n (typeof(value) === \"bigint\") ||\n isBytes(value)\n );\n}\n\n// Only warn about passing 10 into radix once\nlet _warnedToStringRadix = false;\n\nexport class BigNumber implements Hexable {\n readonly _hex: string;\n readonly _isBigNumber: boolean;\n\n constructor(constructorGuard: any, hex: string) {\n if (constructorGuard !== _constructorGuard) {\n logger.throwError(\"cannot call constructor directly; use BigNumber.from\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"new (BigNumber)\"\n });\n }\n\n this._hex = hex;\n this._isBigNumber = true;\n\n Object.freeze(this);\n }\n\n fromTwos(value: number): BigNumber {\n return toBigNumber(toBN(this).fromTwos(value));\n }\n\n toTwos(value: number): BigNumber {\n return toBigNumber(toBN(this).toTwos(value));\n }\n\n abs(): BigNumber {\n if (this._hex[0] === \"-\") {\n return BigNumber.from(this._hex.substring(1));\n }\n return this;\n }\n\n add(other: BigNumberish): BigNumber {\n return toBigNumber(toBN(this).add(toBN(other)));\n }\n\n sub(other: BigNumberish): BigNumber {\n return toBigNumber(toBN(this).sub(toBN(other)));\n }\n\n div(other: BigNumberish): BigNumber {\n const o = BigNumber.from(other);\n if (o.isZero()) {\n throwFault(\"division-by-zero\", \"div\");\n }\n return toBigNumber(toBN(this).div(toBN(other)));\n }\n\n mul(other: BigNumberish): BigNumber {\n return toBigNumber(toBN(this).mul(toBN(other)));\n }\n\n mod(other: BigNumberish): BigNumber {\n const value = toBN(other);\n if (value.isNeg()) {\n throwFault(\"division-by-zero\", \"mod\");\n }\n return toBigNumber(toBN(this).umod(value));\n }\n\n pow(other: BigNumberish): BigNumber {\n const value = toBN(other);\n if (value.isNeg()) {\n throwFault(\"negative-power\", \"pow\");\n }\n return toBigNumber(toBN(this).pow(value));\n }\n\n and(other: BigNumberish): BigNumber {\n const value = toBN(other);\n if (this.isNegative() || value.isNeg()) {\n throwFault(\"unbound-bitwise-result\", \"and\");\n }\n return toBigNumber(toBN(this).and(value));\n }\n\n or(other: BigNumberish): BigNumber {\n const value = toBN(other);\n if (this.isNegative() || value.isNeg()) {\n throwFault(\"unbound-bitwise-result\", \"or\");\n }\n return toBigNumber(toBN(this).or(value));\n }\n\n xor(other: BigNumberish): BigNumber {\n const value = toBN(other);\n if (this.isNegative() || value.isNeg()) {\n throwFault(\"unbound-bitwise-result\", \"xor\");\n }\n return toBigNumber(toBN(this).xor(value));\n }\n\n mask(value: number): BigNumber {\n if (this.isNegative() || value < 0) {\n throwFault(\"negative-width\", \"mask\");\n }\n return toBigNumber(toBN(this).maskn(value));\n }\n\n shl(value: number): BigNumber {\n if (this.isNegative() || value < 0) {\n throwFault(\"negative-width\", \"shl\");\n }\n return toBigNumber(toBN(this).shln(value));\n }\n\n shr(value: number): BigNumber {\n if (this.isNegative() || value < 0) {\n throwFault(\"negative-width\", \"shr\");\n }\n return toBigNumber(toBN(this).shrn(value));\n }\n\n eq(other: BigNumberish): boolean {\n return toBN(this).eq(toBN(other));\n }\n\n lt(other: BigNumberish): boolean {\n return toBN(this).lt(toBN(other));\n }\n\n lte(other: BigNumberish): boolean {\n return toBN(this).lte(toBN(other));\n }\n\n gt(other: BigNumberish): boolean {\n return toBN(this).gt(toBN(other));\n }\n\n gte(other: BigNumberish): boolean {\n return toBN(this).gte(toBN(other));\n }\n\n isNegative(): boolean {\n return (this._hex[0] === \"-\");\n }\n\n isZero(): boolean {\n return toBN(this).isZero();\n }\n\n toNumber(): number {\n try {\n return toBN(this).toNumber();\n } catch (error) {\n throwFault(\"overflow\", \"toNumber\", this.toString());\n }\n return null;\n }\n\n toBigInt(): bigint {\n try {\n return BigInt(this.toString());\n } catch (e) { }\n\n return logger.throwError(\"this platform does not support BigInt\", Logger.errors.UNSUPPORTED_OPERATION, {\n value: this.toString()\n });\n }\n\n toString(): string {\n // Lots of people expect this, which we do not support, so check (See: #889)\n if (arguments.length > 0) {\n if (arguments[0] === 10) {\n if (!_warnedToStringRadix) {\n _warnedToStringRadix = true;\n logger.warn(\"BigNumber.toString does not accept any parameters; base-10 is assumed\");\n }\n } else if (arguments[0] === 16) {\n logger.throwError(\"BigNumber.toString does not accept any parameters; use bigNumber.toHexString()\", Logger.errors.UNEXPECTED_ARGUMENT, { });\n } else {\n logger.throwError(\"BigNumber.toString does not accept parameters\", Logger.errors.UNEXPECTED_ARGUMENT, { });\n }\n }\n return toBN(this).toString(10);\n }\n\n toHexString(): string {\n return this._hex;\n }\n\n toJSON(key?: string): any {\n return { type: \"BigNumber\", hex: this.toHexString() };\n }\n\n static from(value: any): BigNumber {\n if (value instanceof BigNumber) { return value; }\n\n if (typeof(value) === \"string\") {\n if (value.match(/^-?0x[0-9a-f]+$/i)) {\n return new BigNumber(_constructorGuard, toHex(value));\n }\n\n if (value.match(/^-?[0-9]+$/)) {\n return new BigNumber(_constructorGuard, toHex(new BN(value)));\n }\n\n return logger.throwArgumentError(\"invalid BigNumber string\", \"value\", value);\n }\n\n if (typeof(value) === \"number\") {\n if (value % 1) {\n throwFault(\"underflow\", \"BigNumber.from\", value);\n }\n\n if (value >= MAX_SAFE || value <= -MAX_SAFE) {\n throwFault(\"overflow\", \"BigNumber.from\", value);\n }\n\n return BigNumber.from(String(value));\n }\n\n const anyValue = value;\n\n if (typeof(anyValue) === \"bigint\") {\n return BigNumber.from(anyValue.toString());\n }\n\n if (isBytes(anyValue)) {\n return BigNumber.from(hexlify(anyValue));\n }\n\n if (anyValue) {\n\n // Hexable interface (takes priority)\n if (anyValue.toHexString) {\n const hex = anyValue.toHexString();\n if (typeof(hex) === \"string\") {\n return BigNumber.from(hex);\n }\n\n } else {\n // For now, handle legacy JSON-ified values (goes away in v6)\n let hex = anyValue._hex;\n\n // New-form JSON\n if (hex == null && anyValue.type === \"BigNumber\") {\n hex = anyValue.hex;\n }\n\n if (typeof(hex) === \"string\") {\n if (isHexString(hex) || (hex[0] === \"-\" && isHexString(hex.substring(1)))) {\n return BigNumber.from(hex);\n }\n }\n }\n }\n\n return logger.throwArgumentError(\"invalid BigNumber value\", \"value\", value);\n }\n\n static isBigNumber(value: any): value is BigNumber {\n return !!(value && value._isBigNumber);\n }\n}\n\n// Normalize the hex string\nfunction toHex(value: string | BN): string {\n\n // For BN, call on the hex string\n if (typeof(value) !== \"string\") {\n return toHex(value.toString(16));\n }\n\n // If negative, prepend the negative sign to the normalized positive value\n if (value[0] === \"-\") {\n // Strip off the negative sign\n value = value.substring(1);\n\n // Cannot have multiple negative signs (e.g. \"--0x04\")\n if (value[0] === \"-\") { logger.throwArgumentError(\"invalid hex\", \"value\", value); }\n\n // Call toHex on the positive component\n value = toHex(value);\n\n // Do not allow \"-0x00\"\n if (value === \"0x00\") { return value; }\n\n // Negate the value\n return \"-\" + value;\n }\n\n // Add a \"0x\" prefix if missing\n if (value.substring(0, 2) !== \"0x\") { value = \"0x\" + value; }\n\n // Normalize zero\n if (value === \"0x\") { return \"0x00\"; }\n\n // Make the string even length\n if (value.length % 2) { value = \"0x0\" + value.substring(2); }\n\n // Trim to smallest even-length string\n while (value.length > 4 && value.substring(0, 4) === \"0x00\") {\n value = \"0x\" + value.substring(4);\n }\n\n return value;\n}\n\nfunction toBigNumber(value: BN): BigNumber {\n return BigNumber.from(toHex(value));\n}\n\nfunction toBN(value: BigNumberish): BN {\n const hex = BigNumber.from(value).toHexString();\n if (hex[0] === \"-\") {\n return (new BN(\"-\" + hex.substring(3), 16));\n }\n return new BN(hex.substring(2), 16);\n}\n\nfunction throwFault(fault: string, operation: string, value?: any): never {\n const params: any = { fault: fault, operation: operation };\n if (value != null) { params.value = value; }\n\n return logger.throwError(fault, Logger.errors.NUMERIC_FAULT, params);\n}\n\n// value should have no prefix\nexport function _base36To16(value: string): string {\n return (new BN(value, 36)).toString(16);\n}\n\n// value should have no prefix\nexport function _base16To36(value: string): string {\n return (new BN(value, 16)).toString(36);\n}\n", "\"use strict\";\n\nimport { arrayify, BytesLike, hexZeroPad, isBytes } from \"@ethersproject/bytes\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\nimport { BigNumber, BigNumberish, isBigNumberish } from \"./bignumber\";\n\nconst _constructorGuard = { };\n\nconst Zero = BigNumber.from(0);\nconst NegativeOne = BigNumber.from(-1);\n\nfunction throwFault(message: string, fault: string, operation: string, value?: any): never {\n const params: any = { fault: fault, operation: operation };\n if (value !== undefined) { params.value = value; }\n return logger.throwError(message, Logger.errors.NUMERIC_FAULT, params);\n}\n\n// Constant to pull zeros from for multipliers\nlet zeros = \"0\";\nwhile (zeros.length < 256) { zeros += zeros; }\n\n// Returns a string \"1\" followed by decimal \"0\"s\nfunction getMultiplier(decimals: BigNumberish): string {\n\n if (typeof(decimals) !== \"number\") {\n try {\n decimals = BigNumber.from(decimals).toNumber();\n } catch (e) { }\n }\n\n if (typeof(decimals) === \"number\" && decimals >= 0 && decimals <= 256 && !(decimals % 1)) {\n return (\"1\" + zeros.substring(0, decimals));\n }\n\n return logger.throwArgumentError(\"invalid decimal size\", \"decimals\", decimals);\n}\n\nexport function formatFixed(value: BigNumberish, decimals?: string | BigNumberish): string {\n if (decimals == null) { decimals = 0; }\n const multiplier = getMultiplier(decimals);\n\n // Make sure wei is a big number (convert as necessary)\n value = BigNumber.from(value);\n\n const negative = value.lt(Zero);\n if (negative) { value = value.mul(NegativeOne); }\n\n let fraction = value.mod(multiplier).toString();\n while (fraction.length < multiplier.length - 1) { fraction = \"0\" + fraction; }\n\n // Strip training 0\n fraction = fraction.match(/^([0-9]*[1-9]|0)(0*)/)[1];\n\n const whole = value.div(multiplier).toString();\n if (multiplier.length === 1) {\n value = whole;\n } else {\n value = whole + \".\" + fraction;\n }\n\n if (negative) { value = \"-\" + value; }\n\n return value;\n}\n\nexport function parseFixed(value: string, decimals?: BigNumberish): BigNumber {\n\n if (decimals == null) { decimals = 0; }\n const multiplier = getMultiplier(decimals);\n\n if (typeof(value) !== \"string\" || !value.match(/^-?[0-9.]+$/)) {\n logger.throwArgumentError(\"invalid decimal value\", \"value\", value);\n }\n\n // Is it negative?\n const negative = (value.substring(0, 1) === \"-\");\n if (negative) { value = value.substring(1); }\n\n if (value === \".\") {\n logger.throwArgumentError(\"missing value\", \"value\", value);\n }\n\n // Split it into a whole and fractional part\n const comps = value.split(\".\");\n if (comps.length > 2) {\n logger.throwArgumentError(\"too many decimal points\", \"value\", value);\n }\n\n let whole = comps[0], fraction = comps[1];\n if (!whole) { whole = \"0\"; }\n if (!fraction) { fraction = \"0\"; }\n\n // Trim trailing zeros\n while (fraction[fraction.length - 1] === \"0\") {\n fraction = fraction.substring(0, fraction.length - 1);\n }\n\n // Check the fraction doesn't exceed our decimals size\n if (fraction.length > multiplier.length - 1) {\n throwFault(\"fractional component exceeds decimals\", \"underflow\", \"parseFixed\");\n }\n\n // If decimals is 0, we have an empty string for fraction\n if (fraction === \"\") { fraction = \"0\"; }\n\n // Fully pad the string with zeros to get to wei\n while (fraction.length < multiplier.length - 1) { fraction += \"0\"; }\n\n const wholeValue = BigNumber.from(whole);\n const fractionValue = BigNumber.from(fraction);\n\n let wei = (wholeValue.mul(multiplier)).add(fractionValue);\n\n if (negative) { wei = wei.mul(NegativeOne); }\n\n return wei;\n}\n\n\nexport class FixedFormat {\n readonly signed: boolean;\n readonly width: number;\n readonly decimals: number;\n readonly name: string;\n readonly _multiplier: string;\n\n constructor(constructorGuard: any, signed: boolean, width: number, decimals: number) {\n if (constructorGuard !== _constructorGuard) {\n logger.throwError(\"cannot use FixedFormat constructor; use FixedFormat.from\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"new FixedFormat\"\n });\n }\n\n this.signed = signed;\n this.width = width;\n this.decimals = decimals;\n\n this.name = (signed ? \"\": \"u\") + \"fixed\" + String(width) + \"x\" + String(decimals);\n\n this._multiplier = getMultiplier(decimals);\n\n Object.freeze(this);\n }\n\n static from(value: any): FixedFormat {\n if (value instanceof FixedFormat) { return value; }\n\n if (typeof(value) === \"number\") {\n value = `fixed128x${value}`\n }\n\n let signed = true;\n let width = 128;\n let decimals = 18;\n\n if (typeof(value) === \"string\") {\n if (value === \"fixed\") {\n // defaults...\n } else if (value === \"ufixed\") {\n signed = false;\n } else {\n const match = value.match(/^(u?)fixed([0-9]+)x([0-9]+)$/);\n if (!match) { logger.throwArgumentError(\"invalid fixed format\", \"format\", value); }\n signed = (match[1] !== \"u\");\n width = parseInt(match[2]);\n decimals = parseInt(match[3]);\n }\n } else if (value) {\n const check = (key: string, type: string, defaultValue: any): any => {\n if (value[key] == null) { return defaultValue; }\n if (typeof(value[key]) !== type) {\n logger.throwArgumentError(\"invalid fixed format (\" + key + \" not \" + type +\")\", \"format.\" + key, value[key]);\n }\n return value[key];\n }\n signed = check(\"signed\", \"boolean\", signed);\n width = check(\"width\", \"number\", width);\n decimals = check(\"decimals\", \"number\", decimals);\n }\n\n if (width % 8) {\n logger.throwArgumentError(\"invalid fixed format width (not byte aligned)\", \"format.width\", width);\n }\n\n if (decimals > 80) {\n logger.throwArgumentError(\"invalid fixed format (decimals too large)\", \"format.decimals\", decimals);\n }\n\n return new FixedFormat(_constructorGuard, signed, width, decimals);\n }\n}\n\nexport class FixedNumber {\n readonly format: FixedFormat;\n readonly _hex: string;\n readonly _value: string;\n\n readonly _isFixedNumber: boolean;\n\n constructor(constructorGuard: any, hex: string, value: string, format?: FixedFormat) {\n if (constructorGuard !== _constructorGuard) {\n logger.throwError(\"cannot use FixedNumber constructor; use FixedNumber.from\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"new FixedFormat\"\n });\n }\n\n this.format = format;\n this._hex = hex;\n this._value = value;\n\n this._isFixedNumber = true;\n\n Object.freeze(this);\n }\n\n _checkFormat(other: FixedNumber): void {\n if (this.format.name !== other.format.name) {\n logger.throwArgumentError(\"incompatible format; use fixedNumber.toFormat\", \"other\", other);\n }\n }\n\n addUnsafe(other: FixedNumber): FixedNumber {\n this._checkFormat(other);\n const a = parseFixed(this._value, this.format.decimals);\n const b = parseFixed(other._value, other.format.decimals);\n return FixedNumber.fromValue(a.add(b), this.format.decimals, this.format);\n }\n\n subUnsafe(other: FixedNumber): FixedNumber {\n this._checkFormat(other);\n const a = parseFixed(this._value, this.format.decimals);\n const b = parseFixed(other._value, other.format.decimals);\n return FixedNumber.fromValue(a.sub(b), this.format.decimals, this.format);\n }\n\n mulUnsafe(other: FixedNumber): FixedNumber {\n this._checkFormat(other);\n const a = parseFixed(this._value, this.format.decimals);\n const b = parseFixed(other._value, other.format.decimals);\n return FixedNumber.fromValue(a.mul(b).div(this.format._multiplier), this.format.decimals, this.format);\n }\n\n divUnsafe(other: FixedNumber): FixedNumber {\n this._checkFormat(other);\n const a = parseFixed(this._value, this.format.decimals);\n const b = parseFixed(other._value, other.format.decimals);\n return FixedNumber.fromValue(a.mul(this.format._multiplier).div(b), this.format.decimals, this.format);\n }\n\n floor(): FixedNumber {\n const comps = this.toString().split(\".\");\n if (comps.length === 1) { comps.push(\"0\"); }\n\n let result = FixedNumber.from(comps[0], this.format);\n\n const hasFraction = !comps[1].match(/^(0*)$/);\n if (this.isNegative() && hasFraction) {\n result = result.subUnsafe(ONE.toFormat(result.format));\n }\n\n return result;\n }\n\n ceiling(): FixedNumber {\n const comps = this.toString().split(\".\");\n if (comps.length === 1) { comps.push(\"0\"); }\n\n let result = FixedNumber.from(comps[0], this.format);\n\n const hasFraction = !comps[1].match(/^(0*)$/);\n if (!this.isNegative() && hasFraction) {\n result = result.addUnsafe(ONE.toFormat(result.format));\n }\n\n return result;\n }\n\n // @TODO: Support other rounding algorithms\n round(decimals?: number): FixedNumber {\n if (decimals == null) { decimals = 0; }\n\n // If we are already in range, we're done\n const comps = this.toString().split(\".\");\n if (comps.length === 1) { comps.push(\"0\"); }\n\n if (decimals < 0 || decimals > 80 || (decimals % 1)) {\n logger.throwArgumentError(\"invalid decimal count\", \"decimals\", decimals);\n }\n\n if (comps[1].length <= decimals) { return this; }\n\n const factor = FixedNumber.from(\"1\" + zeros.substring(0, decimals), this.format);\n const bump = BUMP.toFormat(this.format);\n\n return this.mulUnsafe(factor).addUnsafe(bump).floor().divUnsafe(factor);\n }\n\n isZero(): boolean {\n return (this._value === \"0.0\" || this._value === \"0\");\n }\n\n isNegative(): boolean {\n return (this._value[0] === \"-\");\n }\n\n toString(): string { return this._value; }\n\n toHexString(width?: number): string {\n if (width == null) { return this._hex; }\n if (width % 8) { logger.throwArgumentError(\"invalid byte width\", \"width\", width); }\n const hex = BigNumber.from(this._hex).fromTwos(this.format.width).toTwos(width).toHexString();\n return hexZeroPad(hex, width / 8);\n }\n\n toUnsafeFloat(): number { return parseFloat(this.toString()); }\n\n toFormat(format: FixedFormat | string): FixedNumber {\n return FixedNumber.fromString(this._value, format);\n }\n\n\n static fromValue(value: BigNumber, decimals?: BigNumberish, format?: FixedFormat | string | number): FixedNumber {\n // If decimals looks more like a format, and there is no format, shift the parameters\n if (format == null && decimals != null && !isBigNumberish(decimals)) {\n format = decimals;\n decimals = null;\n }\n\n if (decimals == null) { decimals = 0; }\n if (format == null) { format = \"fixed\"; }\n\n return FixedNumber.fromString(formatFixed(value, decimals), FixedFormat.from(format));\n }\n\n\n static fromString(value: string, format?: FixedFormat | string | number): FixedNumber {\n if (format == null) { format = \"fixed\"; }\n\n const fixedFormat = FixedFormat.from(format);\n\n const numeric = parseFixed(value, fixedFormat.decimals);\n\n if (!fixedFormat.signed && numeric.lt(Zero)) {\n throwFault(\"unsigned value cannot be negative\", \"overflow\", \"value\", value);\n }\n\n let hex: string = null;\n if (fixedFormat.signed) {\n hex = numeric.toTwos(fixedFormat.width).toHexString();\n } else {\n hex = numeric.toHexString();\n hex = hexZeroPad(hex, fixedFormat.width / 8);\n }\n\n const decimal = formatFixed(numeric, fixedFormat.decimals);\n\n return new FixedNumber(_constructorGuard, hex, decimal, fixedFormat);\n }\n\n static fromBytes(value: BytesLike, format?: FixedFormat | string | number): FixedNumber {\n if (format == null) { format = \"fixed\"; }\n\n const fixedFormat = FixedFormat.from(format);\n\n if (arrayify(value).length > fixedFormat.width / 8) {\n throw new Error(\"overflow\");\n }\n\n let numeric = BigNumber.from(value);\n if (fixedFormat.signed) { numeric = numeric.fromTwos(fixedFormat.width); }\n\n const hex = numeric.toTwos((fixedFormat.signed ? 0: 1) + fixedFormat.width).toHexString();\n const decimal = formatFixed(numeric, fixedFormat.decimals);\n\n return new FixedNumber(_constructorGuard, hex, decimal, fixedFormat);\n }\n\n static from(value: any, format?: FixedFormat | string | number) {\n if (typeof(value) === \"string\") {\n return FixedNumber.fromString(value, format);\n }\n\n if (isBytes(value)) {\n return FixedNumber.fromBytes(value, format);\n }\n\n try {\n return FixedNumber.fromValue(value, 0, format);\n } catch (error) {\n // Allow NUMERIC_FAULT to bubble up\n if (error.code !== Logger.errors.INVALID_ARGUMENT) {\n throw error;\n }\n }\n\n return logger.throwArgumentError(\"invalid FixedNumber value\", \"value\", value);\n }\n\n static isFixedNumber(value: any): value is FixedNumber {\n return !!(value && value._isFixedNumber);\n }\n}\n\nconst ONE = FixedNumber.from(1);\nconst BUMP = FixedNumber.from(\"0.5\");\n", "export { BigNumber, BigNumberish } from \"./bignumber\";\nexport { formatFixed, FixedFormat, FixedNumber, parseFixed } from \"./fixednumber\";\n\n// Internal methods used by address\nexport { _base16To36, _base36To16 } from \"./bignumber\";\n", "export const version = \"properties/5.7.0\";\n", "\"use strict\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\nexport function defineReadOnly(object: T, name: K, value: T[K]): void {\n Object.defineProperty(object, name, {\n enumerable: true,\n value: value,\n writable: false,\n });\n}\n\n// Crawl up the constructor chain to find a static method\nexport function getStatic(ctor: any, key: string): T {\n for (let i = 0; i < 32; i++) {\n if (ctor[key]) { return ctor[key]; }\n if (!ctor.prototype || typeof(ctor.prototype) !== \"object\") { break; }\n ctor = Object.getPrototypeOf(ctor.prototype).constructor;\n }\n return null;\n}\n\nexport type Deferrable = {\n [ K in keyof T ]: T[K] | Promise;\n}\n\n\ntype Result = { key: string, value: any};\n\nexport async function resolveProperties(object: Readonly>): Promise {\n const promises: Array> = Object.keys(object).map((key) => {\n const value = object[>key];\n return Promise.resolve(value).then((v) => ({ key: key, value: v }));\n });\n\n const results = await Promise.all(promises);\n\n return results.reduce((accum, result) => {\n accum[(result.key)] = result.value;\n return accum;\n }, { });\n}\n\nexport function checkProperties(object: any, properties: { [ name: string ]: boolean }): void {\n if (!object || typeof(object) !== \"object\") {\n logger.throwArgumentError(\"invalid object\", \"object\", object);\n }\n\n Object.keys(object).forEach((key) => {\n if (!properties[key]) {\n logger.throwArgumentError(\"invalid object key - \" + key, \"transaction:\" + key, object);\n }\n });\n}\n\nexport function shallowCopy(object: T): T {\n const result: any = {};\n for (const key in object) { result[key] = object[key]; }\n return result;\n}\n\nconst opaque: { [key: string]: boolean } = { bigint: true, boolean: true, \"function\": true, number: true, string: true };\n\nfunction _isFrozen(object: any): boolean {\n\n // Opaque objects are not mutable, so safe to copy by assignment\n if (object === undefined || object === null || opaque[typeof(object)]) { return true; }\n\n if (Array.isArray(object) || typeof(object) === \"object\") {\n if (!Object.isFrozen(object)) { return false; }\n\n const keys = Object.keys(object);\n for (let i = 0; i < keys.length; i++) {\n let value: any = null;\n try {\n value = object[keys[i]];\n } catch (error) {\n // If accessing a value triggers an error, it is a getter\n // designed to do so (e.g. Result) and is therefore \"frozen\"\n continue;\n }\n\n if (!_isFrozen(value)) { return false; }\n }\n\n return true;\n }\n\n return logger.throwArgumentError(`Cannot deepCopy ${ typeof(object) }`, \"object\", object);\n}\n\n// Returns a new copy of object, such that no properties may be replaced.\n// New properties may be added only to objects.\nfunction _deepCopy(object: any): any {\n\n if (_isFrozen(object)) { return object; }\n\n // Arrays are mutable, so we need to create a copy\n if (Array.isArray(object)) {\n return Object.freeze(object.map((item) => deepCopy(item)));\n }\n\n if (typeof(object) === \"object\") {\n const result: { [ key: string ]: any } = {};\n for (const key in object) {\n const value = object[key];\n if (value === undefined) { continue; }\n defineReadOnly(result, key, deepCopy(value));\n }\n\n return result;\n }\n\n return logger.throwArgumentError(`Cannot deepCopy ${ typeof(object) }`, \"object\", object);\n}\n\nexport function deepCopy(object: T): T {\n return _deepCopy(object);\n}\n\nexport class Description {\n constructor(info: { [ K in keyof T ]: T[K] }) {\n for (const key in info) {\n (this)[key] = deepCopy(info[key]);\n }\n }\n}\n", "export const version = \"abi/5.7.0\";\n", "\"use strict\";\n\nimport { BigNumber } from \"@ethersproject/bignumber\";\nimport { defineReadOnly } from \"@ethersproject/properties\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\nexport interface JsonFragmentType {\n readonly name?: string;\n readonly indexed?: boolean;\n readonly type?: string;\n readonly internalType?: any; // @TODO: in v6 reduce type\n readonly components?: ReadonlyArray;\n}\n\nexport interface JsonFragment {\n readonly name?: string;\n readonly type?: string;\n\n readonly anonymous?: boolean;\n\n readonly payable?: boolean;\n readonly constant?: boolean;\n readonly stateMutability?: string;\n\n readonly inputs?: ReadonlyArray;\n readonly outputs?: ReadonlyArray;\n\n readonly gas?: string;\n};\n\nconst _constructorGuard = { };\n\n// AST Node parser state\ntype ParseState = {\n allowArray?: boolean,\n allowName?: boolean,\n allowParams?: boolean,\n allowType?: boolean,\n readArray?: boolean,\n};\n\n// AST Node\ntype ParseNode = {\n parent?: any,\n type?: string,\n name?: string,\n state?: ParseState,\n indexed?: boolean,\n components?: Array\n};\n\nlet ModifiersBytes: { [ name: string ]: boolean } = { calldata: true, memory: true, storage: true };\nlet ModifiersNest: { [ name: string ]: boolean } = { calldata: true, memory: true };\nfunction checkModifier(type: string, name: string): boolean {\n if (type === \"bytes\" || type === \"string\") {\n if (ModifiersBytes[name]) { return true; }\n } else if (type === \"address\") {\n if (name === \"payable\") { return true; }\n } else if (type.indexOf(\"[\") >= 0 || type === \"tuple\") {\n if (ModifiersNest[name]) { return true; }\n }\n if (ModifiersBytes[name] || name === \"payable\") {\n logger.throwArgumentError(\"invalid modifier\", \"name\", name);\n }\n return false;\n}\n\n// @TODO: Make sure that children of an indexed tuple are marked with a null indexed\nfunction parseParamType(param: string, allowIndexed: boolean): ParseNode {\n\n let originalParam = param;\n function throwError(i: number) {\n logger.throwArgumentError(`unexpected character at position ${ i }`, \"param\", param);\n }\n param = param.replace(/\\s/g, \" \");\n\n function newNode(parent: ParseNode): ParseNode {\n let node: ParseNode = { type: \"\", name: \"\", parent: parent, state: { allowType: true } };\n if (allowIndexed) { node.indexed = false; }\n return node\n }\n\n let parent: ParseNode = { type: \"\", name: \"\", state: { allowType: true } };\n let node = parent;\n\n for (let i = 0; i < param.length; i++) {\n let c = param[i];\n switch (c) {\n case \"(\":\n if (node.state.allowType && node.type === \"\") {\n node.type = \"tuple\";\n } else if (!node.state.allowParams) {\n throwError(i);\n }\n node.state.allowType = false;\n node.type = verifyType(node.type);\n node.components = [ newNode(node) ];\n node = node.components[0];\n break;\n\n case \")\":\n delete node.state;\n\n if (node.name === \"indexed\") {\n if (!allowIndexed) { throwError(i); }\n node.indexed = true;\n node.name = \"\";\n }\n\n if (checkModifier(node.type, node.name)) { node.name = \"\"; }\n\n node.type = verifyType(node.type);\n\n let child = node;\n node = node.parent;\n if (!node) { throwError(i); }\n delete child.parent;\n node.state.allowParams = false;\n node.state.allowName = true;\n node.state.allowArray = true;\n break;\n\n case \",\":\n delete node.state;\n\n if (node.name === \"indexed\") {\n if (!allowIndexed) { throwError(i); }\n node.indexed = true;\n node.name = \"\";\n }\n\n if (checkModifier(node.type, node.name)) { node.name = \"\"; }\n\n node.type = verifyType(node.type);\n\n let sibling: ParseNode = newNode(node.parent);\n //{ type: \"\", name: \"\", parent: node.parent, state: { allowType: true } };\n node.parent.components.push(sibling);\n delete node.parent;\n node = sibling;\n break;\n\n // Hit a space...\n case \" \":\n\n // If reading type, the type is done and may read a param or name\n if (node.state.allowType) {\n if (node.type !== \"\") {\n node.type = verifyType(node.type);\n delete node.state.allowType;\n node.state.allowName = true;\n node.state.allowParams = true;\n }\n }\n\n // If reading name, the name is done\n if (node.state.allowName) {\n if (node.name !== \"\") {\n if (node.name === \"indexed\") {\n if (!allowIndexed) { throwError(i); }\n if (node.indexed) { throwError(i); }\n node.indexed = true;\n node.name = \"\";\n } else if (checkModifier(node.type, node.name)) {\n node.name = \"\";\n } else {\n node.state.allowName = false;\n }\n }\n }\n\n break;\n\n case \"[\":\n if (!node.state.allowArray) { throwError(i); }\n\n node.type += c;\n\n node.state.allowArray = false;\n node.state.allowName = false;\n node.state.readArray = true;\n break;\n\n case \"]\":\n if (!node.state.readArray) { throwError(i); }\n\n node.type += c;\n\n node.state.readArray = false;\n node.state.allowArray = true;\n node.state.allowName = true;\n break;\n\n default:\n if (node.state.allowType) {\n node.type += c;\n node.state.allowParams = true;\n node.state.allowArray = true;\n } else if (node.state.allowName) {\n node.name += c;\n delete node.state.allowArray;\n } else if (node.state.readArray) {\n node.type += c;\n } else {\n throwError(i);\n }\n }\n }\n\n if (node.parent) { logger.throwArgumentError(\"unexpected eof\", \"param\", param); }\n\n delete parent.state;\n\n if (node.name === \"indexed\") {\n if (!allowIndexed) { throwError(originalParam.length - 7); }\n if (node.indexed) { throwError(originalParam.length - 7); }\n node.indexed = true;\n node.name = \"\";\n } else if (checkModifier(node.type, node.name)) {\n node.name = \"\";\n }\n\n parent.type = verifyType(parent.type);\n\n return parent;\n}\n\nfunction populate(object: any, params: any) {\n for (let key in params) { defineReadOnly(object, key, params[key]); }\n}\n\nexport const FormatTypes: { [ name: string ]: string } = Object.freeze({\n // Bare formatting, as is needed for computing a sighash of an event or function\n sighash: \"sighash\",\n\n // Human-Readable with Minimal spacing and without names (compact human-readable)\n minimal: \"minimal\",\n\n // Human-Readable with nice spacing, including all names\n full: \"full\",\n\n // JSON-format a la Solidity\n json: \"json\"\n});\n\nconst paramTypeArray = new RegExp(/^(.*)\\[([0-9]*)\\]$/);\n\nexport class ParamType {\n\n // The local name of the parameter (of null if unbound)\n readonly name: string;\n\n // The fully qualified type (e.g. \"address\", \"tuple(address)\", \"uint256[3][]\"\n readonly type: string;\n\n // The base type (e.g. \"address\", \"tuple\", \"array\")\n readonly baseType: string;\n\n // Indexable Paramters ONLY (otherwise null)\n readonly indexed: boolean;\n\n // Tuples ONLY: (otherwise null)\n // - sub-components\n readonly components: Array;\n\n // Arrays ONLY: (otherwise null)\n // - length of the array (-1 for dynamic length)\n // - child type\n readonly arrayLength: number;\n readonly arrayChildren: ParamType;\n\n readonly _isParamType: boolean;\n\n constructor(constructorGuard: any, params: any) {\n if (constructorGuard !== _constructorGuard) { logger.throwError(\"use fromString\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"new ParamType()\"\n }); }\n populate(this, params);\n\n let match = this.type.match(paramTypeArray);\n if (match) {\n populate(this, {\n arrayLength: parseInt(match[2] || \"-1\"),\n arrayChildren: ParamType.fromObject({\n type: match[1],\n components: this.components\n }),\n baseType: \"array\"\n });\n } else {\n populate(this, {\n arrayLength: null,\n arrayChildren: null,\n baseType: ((this.components != null) ? \"tuple\": this.type)\n });\n }\n\n this._isParamType = true;\n\n Object.freeze(this);\n }\n\n // Format the parameter fragment\n // - sighash: \"(uint256,address)\"\n // - minimal: \"tuple(uint256,address) indexed\"\n // - full: \"tuple(uint256 foo, address bar) indexed baz\"\n format(format?: string): string {\n if (!format) { format = FormatTypes.sighash; }\n if (!FormatTypes[format]) {\n logger.throwArgumentError(\"invalid format type\", \"format\", format);\n }\n\n if (format === FormatTypes.json) {\n let result: any = {\n type: ((this.baseType === \"tuple\") ? \"tuple\": this.type),\n name: (this.name || undefined)\n };\n if (typeof(this.indexed) === \"boolean\") { result.indexed = this.indexed; }\n if (this.components) {\n result.components = this.components.map((comp) => JSON.parse(comp.format(format)));\n }\n return JSON.stringify(result);\n }\n\n let result = \"\";\n\n // Array\n if (this.baseType === \"array\") {\n result += this.arrayChildren.format(format);\n result += \"[\" + (this.arrayLength < 0 ? \"\": String(this.arrayLength)) + \"]\";\n } else {\n if (this.baseType === \"tuple\") {\n if (format !== FormatTypes.sighash) {\n result += this.type;\n }\n result += \"(\" + this.components.map(\n (comp) => comp.format(format)\n ).join((format === FormatTypes.full) ? \", \": \",\") + \")\";\n } else {\n result += this.type;\n }\n }\n\n if (format !== FormatTypes.sighash) {\n if (this.indexed === true) { result += \" indexed\"; }\n if (format === FormatTypes.full && this.name) {\n result += \" \" + this.name;\n }\n }\n\n return result;\n }\n\n static from(value: string | JsonFragmentType | ParamType, allowIndexed?: boolean): ParamType {\n if (typeof(value) === \"string\") {\n return ParamType.fromString(value, allowIndexed);\n }\n return ParamType.fromObject(value);\n }\n\n static fromObject(value: JsonFragmentType | ParamType): ParamType {\n if (ParamType.isParamType(value)) { return value; }\n\n return new ParamType(_constructorGuard, {\n name: (value.name || null),\n type: verifyType(value.type),\n indexed: ((value.indexed == null) ? null: !!value.indexed),\n components: (value.components ? value.components.map(ParamType.fromObject): null)\n });\n }\n\n static fromString(value: string, allowIndexed?: boolean): ParamType {\n function ParamTypify(node: ParseNode): ParamType {\n return ParamType.fromObject({\n name: node.name,\n type: node.type,\n indexed: node.indexed,\n components: node.components\n });\n }\n\n return ParamTypify(parseParamType(value, !!allowIndexed));\n }\n\n static isParamType(value: any): value is ParamType {\n return !!(value != null && value._isParamType);\n }\n};\n\nfunction parseParams(value: string, allowIndex: boolean): Array {\n return splitNesting(value).map((param) => ParamType.fromString(param, allowIndex));\n}\n\ntype TypeCheck = { -readonly [ K in keyof T ]: T[K] };\n\ninterface _Fragment {\n readonly type: string;\n readonly name: string;\n readonly inputs: ReadonlyArray;\n}\n\nexport abstract class Fragment {\n\n readonly type: string;\n readonly name: string;\n readonly inputs: Array;\n\n readonly _isFragment: boolean;\n\n constructor(constructorGuard: any, params: any) {\n if (constructorGuard !== _constructorGuard) {\n logger.throwError(\"use a static from method\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"new Fragment()\"\n });\n }\n populate(this, params);\n\n this._isFragment = true;\n\n Object.freeze(this);\n }\n\n abstract format(format?: string): string;\n\n static from(value: Fragment | JsonFragment | string): Fragment {\n if (Fragment.isFragment(value)) { return value; }\n\n if (typeof(value) === \"string\") {\n return Fragment.fromString(value);\n }\n\n return Fragment.fromObject(value);\n }\n\n static fromObject(value: Fragment | JsonFragment): Fragment {\n if (Fragment.isFragment(value)) { return value; }\n\n switch (value.type) {\n case \"function\":\n return FunctionFragment.fromObject(value);\n case \"event\":\n return EventFragment.fromObject(value);\n case \"constructor\":\n return ConstructorFragment.fromObject(value);\n case \"error\":\n return ErrorFragment.fromObject(value);\n case \"fallback\":\n case \"receive\":\n // @TODO: Something? Maybe return a FunctionFragment? A custom DefaultFunctionFragment?\n return null;\n }\n\n return logger.throwArgumentError(\"invalid fragment object\", \"value\", value);\n }\n\n static fromString(value: string): Fragment {\n // Make sure the \"returns\" is surrounded by a space and all whitespace is exactly one space\n value = value.replace(/\\s/g, \" \");\n value = value.replace(/\\(/g, \" (\").replace(/\\)/g, \") \").replace(/\\s+/g, \" \");\n value = value.trim();\n\n if (value.split(\" \")[0] === \"event\") {\n return EventFragment.fromString(value.substring(5).trim());\n } else if (value.split(\" \")[0] === \"function\") {\n return FunctionFragment.fromString(value.substring(8).trim());\n } else if (value.split(\"(\")[0].trim() === \"constructor\") {\n return ConstructorFragment.fromString(value.trim());\n } else if (value.split(\" \")[0] === \"error\") {\n return ErrorFragment.fromString(value.substring(5).trim());\n }\n\n return logger.throwArgumentError(\"unsupported fragment\", \"value\", value);\n }\n\n static isFragment(value: any): value is Fragment {\n return !!(value && value._isFragment);\n }\n}\n\ninterface _EventFragment extends _Fragment {\n readonly anonymous: boolean;\n}\n\nexport class EventFragment extends Fragment {\n readonly anonymous: boolean;\n\n format(format?: string): string {\n if (!format) { format = FormatTypes.sighash; }\n if (!FormatTypes[format]) {\n logger.throwArgumentError(\"invalid format type\", \"format\", format);\n }\n\n if (format === FormatTypes.json) {\n return JSON.stringify({\n type: \"event\",\n anonymous: this.anonymous,\n name: this.name,\n inputs: this.inputs.map((input) => JSON.parse(input.format(format)))\n });\n }\n\n let result = \"\";\n\n if (format !== FormatTypes.sighash) {\n result += \"event \";\n }\n\n result += this.name + \"(\" + this.inputs.map(\n (input) => input.format(format)\n ).join((format === FormatTypes.full) ? \", \": \",\") + \") \";\n\n if (format !== FormatTypes.sighash) {\n if (this.anonymous) {\n result += \"anonymous \";\n }\n }\n\n return result.trim();\n }\n\n static from(value: EventFragment | JsonFragment | string): EventFragment {\n if (typeof(value) === \"string\") {\n return EventFragment.fromString(value);\n }\n return EventFragment.fromObject(value);\n }\n\n static fromObject(value: JsonFragment | EventFragment): EventFragment {\n if (EventFragment.isEventFragment(value)) { return value; }\n\n if (value.type !== \"event\") {\n logger.throwArgumentError(\"invalid event object\", \"value\", value);\n }\n\n const params: TypeCheck<_EventFragment> = {\n name: verifyIdentifier(value.name),\n anonymous: value.anonymous,\n inputs: (value.inputs ? value.inputs.map(ParamType.fromObject) : []),\n type: \"event\"\n };\n\n return new EventFragment(_constructorGuard, params);\n }\n\n static fromString(value: string): EventFragment {\n\n let match = value.match(regexParen);\n if (!match) {\n logger.throwArgumentError(\"invalid event string\", \"value\", value);\n }\n\n let anonymous = false;\n match[3].split(\" \").forEach((modifier) => {\n switch(modifier.trim()) {\n case \"anonymous\":\n anonymous = true;\n break;\n case \"\":\n break;\n default:\n logger.warn(\"unknown modifier: \" + modifier);\n }\n });\n\n return EventFragment.fromObject({\n name: match[1].trim(),\n anonymous: anonymous,\n inputs: parseParams(match[2], true),\n type: \"event\"\n });\n }\n\n static isEventFragment(value: any): value is EventFragment {\n return (value && value._isFragment && value.type === \"event\");\n }\n}\n\nfunction parseGas(value: string, params: any): string {\n params.gas = null;\n\n let comps = value.split(\"@\");\n if (comps.length !== 1) {\n if (comps.length > 2) {\n logger.throwArgumentError(\"invalid human-readable ABI signature\", \"value\", value);\n }\n if (!comps[1].match(/^[0-9]+$/)) {\n logger.throwArgumentError(\"invalid human-readable ABI signature gas\", \"value\", value);\n }\n params.gas = BigNumber.from(comps[1]);\n return comps[0];\n }\n\n return value;\n}\n\nfunction parseModifiers(value: string, params: any): void {\n params.constant = false;\n params.payable = false;\n params.stateMutability = \"nonpayable\";\n\n value.split(\" \").forEach((modifier) => {\n switch (modifier.trim()) {\n case \"constant\":\n params.constant = true;\n break;\n case \"payable\":\n params.payable = true;\n params.stateMutability = \"payable\";\n break;\n case \"nonpayable\":\n params.payable = false;\n params.stateMutability = \"nonpayable\";\n break;\n case \"pure\":\n params.constant = true;\n params.stateMutability = \"pure\";\n break;\n case \"view\":\n params.constant = true;\n params.stateMutability = \"view\";\n break;\n case \"external\":\n case \"public\":\n case \"\":\n break;\n default:\n console.log(\"unknown modifier: \" + modifier);\n }\n });\n}\n\ntype StateInputValue = {\n constant?: boolean;\n payable?: boolean;\n stateMutability?: string;\n type?: string;\n};\n\ntype StateOutputValue = {\n constant: boolean;\n payable: boolean;\n stateMutability: string;\n};\n\nfunction verifyState(value: StateInputValue): StateOutputValue {\n let result: any = {\n constant: false,\n payable: true,\n stateMutability: \"payable\"\n };\n\n if (value.stateMutability != null) {\n result.stateMutability = value.stateMutability;\n\n // Set (and check things are consistent) the constant property\n result.constant = (result.stateMutability === \"view\" || result.stateMutability === \"pure\");\n if (value.constant != null) {\n if ((!!value.constant) !== result.constant) {\n logger.throwArgumentError(\"cannot have constant function with mutability \" + result.stateMutability, \"value\", value);\n }\n }\n\n // Set (and check things are consistent) the payable property\n result.payable = (result.stateMutability === \"payable\");\n if (value.payable != null) {\n if ((!!value.payable) !== result.payable) {\n logger.throwArgumentError(\"cannot have payable function with mutability \" + result.stateMutability, \"value\", value);\n }\n }\n\n } else if (value.payable != null) {\n result.payable = !!value.payable;\n\n // If payable we can assume non-constant; otherwise we can't assume\n if (value.constant == null && !result.payable && value.type !== \"constructor\") {\n logger.throwArgumentError(\"unable to determine stateMutability\", \"value\", value);\n }\n\n result.constant = !!value.constant;\n\n if (result.constant) {\n result.stateMutability = \"view\";\n } else {\n result.stateMutability = (result.payable ? \"payable\": \"nonpayable\");\n }\n\n if (result.payable && result.constant) {\n logger.throwArgumentError(\"cannot have constant payable function\", \"value\", value);\n }\n\n } else if (value.constant != null) {\n result.constant = !!value.constant;\n result.payable = !result.constant;\n result.stateMutability = (result.constant ? \"view\": \"payable\");\n\n } else if (value.type !== \"constructor\") {\n logger.throwArgumentError(\"unable to determine stateMutability\", \"value\", value);\n }\n\n return result;\n}\n\ninterface _ConstructorFragment extends _Fragment {\n stateMutability: string;\n payable: boolean;\n gas?: BigNumber;\n}\n\nexport class ConstructorFragment extends Fragment {\n stateMutability: string;\n payable: boolean;\n gas?: BigNumber;\n\n format(format?: string): string {\n if (!format) { format = FormatTypes.sighash; }\n if (!FormatTypes[format]) {\n logger.throwArgumentError(\"invalid format type\", \"format\", format);\n }\n\n if (format === FormatTypes.json) {\n return JSON.stringify({\n type: \"constructor\",\n stateMutability: ((this.stateMutability !== \"nonpayable\") ? this.stateMutability: undefined),\n payable: this.payable,\n gas: (this.gas ? this.gas.toNumber(): undefined),\n inputs: this.inputs.map((input) => JSON.parse(input.format(format)))\n });\n }\n\n if (format === FormatTypes.sighash) {\n logger.throwError(\"cannot format a constructor for sighash\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"format(sighash)\"\n });\n }\n\n let result = \"constructor(\" + this.inputs.map(\n (input) => input.format(format)\n ).join((format === FormatTypes.full) ? \", \": \",\") + \") \";\n\n if (this.stateMutability && this.stateMutability !== \"nonpayable\") {\n result += this.stateMutability + \" \";\n }\n\n return result.trim();\n }\n\n static from(value: ConstructorFragment | JsonFragment | string): ConstructorFragment {\n if (typeof(value) === \"string\") {\n return ConstructorFragment.fromString(value);\n }\n return ConstructorFragment.fromObject(value);\n }\n\n static fromObject(value: ConstructorFragment | JsonFragment): ConstructorFragment {\n if (ConstructorFragment.isConstructorFragment(value)) { return value; }\n\n if (value.type !== \"constructor\") {\n logger.throwArgumentError(\"invalid constructor object\", \"value\", value);\n }\n\n let state = verifyState(value);\n if (state.constant) {\n logger.throwArgumentError(\"constructor cannot be constant\", \"value\", value);\n }\n\n const params: TypeCheck<_ConstructorFragment> = {\n name: null,\n type: value.type,\n inputs: (value.inputs ? value.inputs.map(ParamType.fromObject): []),\n payable: state.payable,\n stateMutability: state.stateMutability,\n gas: (value.gas ? BigNumber.from(value.gas): null)\n };\n\n return new ConstructorFragment(_constructorGuard, params);\n }\n\n static fromString(value: string): ConstructorFragment {\n let params: any = { type: \"constructor\" };\n\n value = parseGas(value, params);\n\n let parens = value.match(regexParen);\n if (!parens || parens[1].trim() !== \"constructor\") {\n logger.throwArgumentError(\"invalid constructor string\", \"value\", value);\n }\n\n params.inputs = parseParams(parens[2].trim(), false);\n\n parseModifiers(parens[3].trim(), params);\n\n return ConstructorFragment.fromObject(params);\n }\n\n static isConstructorFragment(value: any): value is ConstructorFragment {\n return (value && value._isFragment && value.type === \"constructor\");\n }\n}\n\ninterface _FunctionFragment extends _ConstructorFragment {\n constant: boolean;\n outputs?: Array;\n}\n\nexport class FunctionFragment extends ConstructorFragment {\n constant: boolean;\n outputs?: Array;\n\n format(format?: string): string {\n if (!format) { format = FormatTypes.sighash; }\n if (!FormatTypes[format]) {\n logger.throwArgumentError(\"invalid format type\", \"format\", format);\n }\n\n if (format === FormatTypes.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 ? this.gas.toNumber(): undefined),\n inputs: this.inputs.map((input) => JSON.parse(input.format(format))),\n outputs: this.outputs.map((output) => JSON.parse(output.format(format))),\n });\n }\n\n let result = \"\";\n\n if (format !== FormatTypes.sighash) {\n result += \"function \";\n }\n\n result += this.name + \"(\" + this.inputs.map(\n (input) => input.format(format)\n ).join((format === FormatTypes.full) ? \", \": \",\") + \") \";\n\n if (format !== FormatTypes.sighash) {\n if (this.stateMutability) {\n if (this.stateMutability !== \"nonpayable\") {\n result += (this.stateMutability + \" \");\n }\n } else if (this.constant) {\n result += \"view \";\n }\n\n if (this.outputs && this.outputs.length) {\n result += \"returns (\" + this.outputs.map(\n (output) => output.format(format)\n ).join(\", \") + \") \";\n }\n\n if (this.gas != null) {\n result += \"@\" + this.gas.toString() + \" \";\n }\n }\n\n return result.trim();\n }\n\n static from(value: FunctionFragment | JsonFragment | string): FunctionFragment {\n if (typeof(value) === \"string\") {\n return FunctionFragment.fromString(value);\n }\n return FunctionFragment.fromObject(value);\n }\n\n static fromObject(value: FunctionFragment | JsonFragment): FunctionFragment {\n if (FunctionFragment.isFunctionFragment(value)) { return value; }\n\n if (value.type !== \"function\") {\n logger.throwArgumentError(\"invalid function object\", \"value\", value);\n }\n\n let state = verifyState(value);\n\n const params: TypeCheck<_FunctionFragment> = {\n type: value.type,\n name: verifyIdentifier(value.name),\n constant: state.constant,\n inputs: (value.inputs ? value.inputs.map(ParamType.fromObject): []),\n outputs: (value.outputs ? value.outputs.map(ParamType.fromObject): [ ]),\n payable: state.payable,\n stateMutability: state.stateMutability,\n gas: (value.gas ? BigNumber.from(value.gas): null)\n };\n\n return new FunctionFragment(_constructorGuard, params);\n }\n\n static fromString(value: string): FunctionFragment {\n let params: any = { type: \"function\" };\n value = parseGas(value, params);\n\n let comps = value.split(\" returns \");\n if (comps.length > 2) {\n logger.throwArgumentError(\"invalid function string\", \"value\", value);\n }\n\n let parens = comps[0].match(regexParen);\n if (!parens) {\n logger.throwArgumentError(\"invalid function signature\", \"value\", value);\n }\n\n params.name = parens[1].trim();\n if (params.name) { verifyIdentifier(params.name); }\n\n params.inputs = parseParams(parens[2], false);\n\n parseModifiers(parens[3].trim(), params);\n\n // We have outputs\n if (comps.length > 1) {\n let returns = comps[1].match(regexParen);\n if (returns[1].trim() != \"\" || returns[3].trim() != \"\") {\n logger.throwArgumentError(\"unexpected tokens\", \"value\", value);\n }\n params.outputs = parseParams(returns[2], false);\n } else {\n params.outputs = [ ];\n }\n\n return FunctionFragment.fromObject(params);\n }\n\n static isFunctionFragment(value: any): value is FunctionFragment {\n return (value && value._isFragment && value.type === \"function\");\n }\n}\n\n//export class StructFragment extends Fragment {\n//}\n\nfunction checkForbidden(fragment: ErrorFragment): ErrorFragment {\n const sig = fragment.format();\n if (sig === \"Error(string)\" || sig === \"Panic(uint256)\") {\n logger.throwArgumentError(`cannot specify user defined ${ sig } error`, \"fragment\", fragment);\n }\n return fragment;\n}\n\nexport class ErrorFragment extends Fragment {\n\n format(format?: string): string {\n if (!format) { format = FormatTypes.sighash; }\n if (!FormatTypes[format]) {\n logger.throwArgumentError(\"invalid format type\", \"format\", format);\n }\n\n if (format === FormatTypes.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\n let result = \"\";\n\n if (format !== FormatTypes.sighash) {\n result += \"error \";\n }\n\n result += this.name + \"(\" + this.inputs.map(\n (input) => input.format(format)\n ).join((format === FormatTypes.full) ? \", \": \",\") + \") \";\n\n return result.trim();\n }\n\n static from(value: ErrorFragment | JsonFragment | string): ErrorFragment {\n if (typeof(value) === \"string\") {\n return ErrorFragment.fromString(value);\n }\n return ErrorFragment.fromObject(value);\n }\n\n static fromObject(value: ErrorFragment | JsonFragment): ErrorFragment {\n if (ErrorFragment.isErrorFragment(value)) { return value; }\n\n if (value.type !== \"error\") {\n logger.throwArgumentError(\"invalid error object\", \"value\", value);\n }\n\n const params: TypeCheck<_Fragment> = {\n type: value.type,\n name: verifyIdentifier(value.name),\n inputs: (value.inputs ? value.inputs.map(ParamType.fromObject): [])\n };\n\n return checkForbidden(new ErrorFragment(_constructorGuard, params));\n }\n\n static fromString(value: string): ErrorFragment {\n let params: any = { type: \"error\" };\n\n let parens = value.match(regexParen);\n if (!parens) {\n logger.throwArgumentError(\"invalid error signature\", \"value\", value);\n }\n\n params.name = parens[1].trim();\n if (params.name) { verifyIdentifier(params.name); }\n\n params.inputs = parseParams(parens[2], false);\n\n return checkForbidden(ErrorFragment.fromObject(params));\n }\n\n static isErrorFragment(value: any): value is ErrorFragment {\n return (value && value._isFragment && value.type === \"error\");\n }\n}\n\nfunction verifyType(type: string): string {\n\n // These need to be transformed to their full description\n if (type.match(/^uint($|[^1-9])/)) {\n type = \"uint256\" + type.substring(4);\n } else if (type.match(/^int($|[^1-9])/)) {\n type = \"int256\" + type.substring(3);\n }\n\n // @TODO: more verification\n\n return type;\n}\n\n// See: https://github.com/ethereum/solidity/blob/1f8f1a3db93a548d0555e3e14cfc55a10e25b60e/docs/grammar/SolidityLexer.g4#L234\nconst regexIdentifier = new RegExp(\"^[a-zA-Z$_][a-zA-Z0-9$_]*$\");\nfunction verifyIdentifier(value: string): string {\n if (!value || !value.match(regexIdentifier)) {\n logger.throwArgumentError(`invalid identifier \"${ value }\"`, \"value\", value);\n }\n return value;\n}\n\nconst regexParen = new RegExp(\"^([^)(]*)\\\\((.*)\\\\)([^)(]*)$\");\n\nfunction splitNesting(value: string): Array {\n value = value.trim();\n\n let result = [];\n let accum = \"\";\n let depth = 0;\n for (let offset = 0; offset < value.length; offset++) {\n let c = value[offset];\n if (c === \",\" && depth === 0) {\n result.push(accum);\n accum = \"\";\n } else {\n accum += c;\n if (c === \"(\") {\n depth++;\n } else if (c === \")\") {\n depth--;\n if (depth === -1) {\n logger.throwArgumentError(\"unbalanced parenthesis\", \"value\", value);\n }\n }\n }\n }\n if (accum) { result.push(accum); }\n\n return result;\n}\n\n", "\"use strict\";\n\nimport { arrayify, BytesLike, concat, hexConcat, hexlify } from \"@ethersproject/bytes\";\nimport { BigNumber, BigNumberish } from \"@ethersproject/bignumber\";\nimport { defineReadOnly } from \"@ethersproject/properties\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"../_version\";\nconst logger = new Logger(version);\n\nexport interface Result extends ReadonlyArray {\n readonly [key: string]: any;\n}\n\nexport function checkResultErrors(result: Result): Array<{ path: Array, error: Error }> {\n // Find the first error (if any)\n const errors: Array<{ path: Array, error: Error }> = [ ];\n\n const checkErrors = function(path: Array, object: any): void {\n if (!Array.isArray(object)) { return; }\n for (let key in object) {\n const childPath = path.slice();\n childPath.push(key);\n\n try {\n checkErrors(childPath, object[key]);\n } catch (error) {\n errors.push({ path: childPath, error: error });\n }\n }\n }\n checkErrors([ ], result);\n\n return errors;\n\n}\n\nexport type CoerceFunc = (type: string, value: any) => any;\n\nexport abstract class Coder {\n\n // The coder name:\n // - address, uint256, tuple, array, etc.\n readonly name: string;\n\n // The fully expanded type, including composite types:\n // - address, uint256, tuple(address,bytes), uint256[3][4][], etc.\n readonly type: string;\n\n // The localName bound in the signature, in this example it is \"baz\":\n // - tuple(address foo, uint bar) baz\n readonly localName: string;\n\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 readonly dynamic: boolean;\n\n constructor(name: string, type: string, localName: string, dynamic: boolean) {\n // @TODO: defineReadOnly these\n this.name = name;\n this.type = type;\n this.localName = localName;\n this.dynamic = dynamic;\n }\n\n _throwError(message: string, value: any): void {\n logger.throwArgumentError(message, this.localName, value);\n }\n\n abstract encode(writer: Writer, value: any): number;\n abstract decode(reader: Reader): any;\n\n abstract defaultValue(): any;\n}\n\nexport class Writer {\n readonly wordSize: number;\n\n _data: Array;\n _dataLength: number;\n _padding: Uint8Array;\n\n constructor(wordSize?: number) {\n defineReadOnly(this, \"wordSize\", wordSize || 32);\n this._data = [ ];\n this._dataLength = 0;\n this._padding = new Uint8Array(wordSize);\n }\n\n get data(): string {\n return hexConcat(this._data);\n }\n get length(): number { return this._dataLength; }\n\n _writeData(data: Uint8Array): number {\n this._data.push(data);\n this._dataLength += data.length;\n return data.length;\n }\n\n appendWriter(writer: Writer): number {\n return this._writeData(concat(writer._data));\n }\n\n // Arrayish items; padded on the right to wordSize\n writeBytes(value: BytesLike): number {\n let bytes = arrayify(value);\n const paddingOffset = bytes.length % this.wordSize;\n if (paddingOffset) {\n bytes = concat([ bytes, this._padding.slice(paddingOffset) ])\n }\n return this._writeData(bytes);\n }\n\n _getValue(value: BigNumberish): Uint8Array {\n let bytes = arrayify(BigNumber.from(value));\n if (bytes.length > this.wordSize) {\n logger.throwError(\"value out-of-bounds\", Logger.errors.BUFFER_OVERRUN, {\n length: this.wordSize,\n offset: bytes.length\n });\n }\n if (bytes.length % this.wordSize) {\n bytes = concat([ this._padding.slice(bytes.length % this.wordSize), bytes ]);\n }\n return bytes;\n }\n\n // BigNumberish items; padded on the left to wordSize\n writeValue(value: BigNumberish): number {\n return this._writeData(this._getValue(value));\n }\n\n writeUpdatableValue(): (value: BigNumberish) => void {\n const offset = this._data.length;\n this._data.push(this._padding);\n this._dataLength += this.wordSize;\n return (value: BigNumberish) => {\n this._data[offset] = this._getValue(value);\n };\n }\n}\n\nexport class Reader {\n readonly wordSize: number;\n readonly allowLoose: boolean;\n\n readonly _data: Uint8Array;\n readonly _coerceFunc: CoerceFunc;\n\n _offset: number;\n\n constructor(data: BytesLike, wordSize?: number, coerceFunc?: CoerceFunc, allowLoose?: boolean) {\n defineReadOnly(this, \"_data\", arrayify(data));\n defineReadOnly(this, \"wordSize\", wordSize || 32);\n defineReadOnly(this, \"_coerceFunc\", coerceFunc);\n defineReadOnly(this, \"allowLoose\", allowLoose);\n\n this._offset = 0;\n }\n\n get data(): string { return hexlify(this._data); }\n get consumed(): number { return this._offset; }\n\n // The default Coerce function\n static coerce(name: string, value: any): any {\n let match = name.match(\"^u?int([0-9]+)$\");\n if (match && parseInt(match[1]) <= 48) { value = value.toNumber(); }\n return value;\n }\n\n coerce(name: string, value: any): any {\n if (this._coerceFunc) { return this._coerceFunc(name, value); }\n return Reader.coerce(name, value);\n }\n\n _peekBytes(offset: number, length: number, loose?: boolean): Uint8Array {\n let alignedLength = Math.ceil(length / this.wordSize) * this.wordSize;\n if (this._offset + alignedLength > this._data.length) {\n if (this.allowLoose && loose && this._offset + length <= this._data.length) {\n alignedLength = length;\n } else {\n logger.throwError(\"data out-of-bounds\", Logger.errors.BUFFER_OVERRUN, {\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\n subReader(offset: number): Reader {\n return new Reader(this._data.slice(this._offset + offset), this.wordSize, this._coerceFunc, this.allowLoose);\n }\n\n readBytes(length: number, loose?: boolean): Uint8Array {\n let bytes = this._peekBytes(0, length, !!loose);\n this._offset += bytes.length;\n // @TODO: Make sure the length..end bytes are all 0?\n return bytes.slice(0, length);\n }\n\n readValue(): BigNumber {\n return BigNumber.from(this.readBytes(this.wordSize));\n }\n}\n", "/**\n * [js-sha3]{@link https://github.com/emn178/js-sha3}\n *\n * @version 0.8.0\n * @author Chen, Yi-Cyuan [emn178@gmail.com]\n * @copyright Chen, Yi-Cyuan 2015-2018\n * @license MIT\n */\n/*jslint bitwise: true */\n(function () {\n 'use strict';\n\n var INPUT_ERROR = 'input is invalid type';\n var FINALIZE_ERROR = 'finalize already called';\n var WINDOW = typeof window === 'object';\n var root = WINDOW ? window : {};\n if (root.JS_SHA3_NO_WINDOW) {\n WINDOW = false;\n }\n var WEB_WORKER = !WINDOW && typeof self === 'object';\n var NODE_JS = !root.JS_SHA3_NO_NODE_JS && typeof process === 'object' && process.versions && process.versions.node;\n if (NODE_JS) {\n root = global;\n } else if (WEB_WORKER) {\n root = self;\n }\n var COMMON_JS = !root.JS_SHA3_NO_COMMON_JS && typeof module === 'object' && module.exports;\n var AMD = typeof define === 'function' && define.amd;\n var ARRAY_BUFFER = !root.JS_SHA3_NO_ARRAY_BUFFER && typeof ArrayBuffer !== 'undefined';\n var HEX_CHARS = '0123456789abcdef'.split('');\n var SHAKE_PADDING = [31, 7936, 2031616, 520093696];\n var CSHAKE_PADDING = [4, 1024, 262144, 67108864];\n var KECCAK_PADDING = [1, 256, 65536, 16777216];\n var PADDING = [6, 1536, 393216, 100663296];\n var SHIFT = [0, 8, 16, 24];\n var RC = [1, 0, 32898, 0, 32906, 2147483648, 2147516416, 2147483648, 32907, 0, 2147483649,\n 0, 2147516545, 2147483648, 32777, 2147483648, 138, 0, 136, 0, 2147516425, 0,\n 2147483658, 0, 2147516555, 0, 139, 2147483648, 32905, 2147483648, 32771,\n 2147483648, 32770, 2147483648, 128, 2147483648, 32778, 0, 2147483658, 2147483648,\n 2147516545, 2147483648, 32896, 2147483648, 2147483649, 0, 2147516424, 2147483648];\n var BITS = [224, 256, 384, 512];\n var SHAKE_BITS = [128, 256];\n var OUTPUT_TYPES = ['hex', 'buffer', 'arrayBuffer', 'array', 'digest'];\n var CSHAKE_BYTEPAD = {\n '128': 168,\n '256': 136\n };\n\n if (root.JS_SHA3_NO_NODE_JS || !Array.isArray) {\n Array.isArray = function (obj) {\n return Object.prototype.toString.call(obj) === '[object Array]';\n };\n }\n\n if (ARRAY_BUFFER && (root.JS_SHA3_NO_ARRAY_BUFFER_IS_VIEW || !ArrayBuffer.isView)) {\n ArrayBuffer.isView = function (obj) {\n return typeof obj === 'object' && obj.buffer && obj.buffer.constructor === ArrayBuffer;\n };\n }\n\n var createOutputMethod = function (bits, padding, outputType) {\n return function (message) {\n return new Keccak(bits, padding, bits).update(message)[outputType]();\n };\n };\n\n var createShakeOutputMethod = function (bits, padding, outputType) {\n return function (message, outputBits) {\n return new Keccak(bits, padding, outputBits).update(message)[outputType]();\n };\n };\n\n var createCshakeOutputMethod = function (bits, padding, outputType) {\n return function (message, outputBits, n, s) {\n return methods['cshake' + bits].update(message, outputBits, n, s)[outputType]();\n };\n };\n\n var createKmacOutputMethod = function (bits, padding, outputType) {\n return function (key, message, outputBits, s) {\n return methods['kmac' + bits].update(key, message, outputBits, s)[outputType]();\n };\n };\n\n var createOutputMethods = function (method, createMethod, bits, padding) {\n for (var i = 0; i < OUTPUT_TYPES.length; ++i) {\n var type = OUTPUT_TYPES[i];\n method[type] = createMethod(bits, padding, type);\n }\n return method;\n };\n\n var createMethod = function (bits, padding) {\n var method = createOutputMethod(bits, padding, 'hex');\n method.create = function () {\n return new Keccak(bits, padding, bits);\n };\n method.update = function (message) {\n return method.create().update(message);\n };\n return createOutputMethods(method, createOutputMethod, bits, padding);\n };\n\n var createShakeMethod = function (bits, padding) {\n var method = createShakeOutputMethod(bits, padding, 'hex');\n method.create = function (outputBits) {\n return new Keccak(bits, padding, outputBits);\n };\n method.update = function (message, outputBits) {\n return method.create(outputBits).update(message);\n };\n return createOutputMethods(method, createShakeOutputMethod, bits, padding);\n };\n\n var createCshakeMethod = function (bits, padding) {\n var w = CSHAKE_BYTEPAD[bits];\n var method = createCshakeOutputMethod(bits, padding, 'hex');\n method.create = function (outputBits, n, s) {\n if (!n && !s) {\n return methods['shake' + bits].create(outputBits);\n } else {\n return new Keccak(bits, padding, outputBits).bytepad([n, s], w);\n }\n };\n method.update = function (message, outputBits, n, s) {\n return method.create(outputBits, n, s).update(message);\n };\n return createOutputMethods(method, createCshakeOutputMethod, bits, padding);\n };\n\n var createKmacMethod = function (bits, padding) {\n var w = CSHAKE_BYTEPAD[bits];\n var method = createKmacOutputMethod(bits, padding, 'hex');\n method.create = function (key, outputBits, s) {\n return new Kmac(bits, padding, outputBits).bytepad(['KMAC', s], w).bytepad([key], w);\n };\n method.update = function (key, message, outputBits, s) {\n return method.create(key, outputBits, s).update(message);\n };\n return createOutputMethods(method, createKmacOutputMethod, bits, padding);\n };\n\n var algorithms = [\n { name: 'keccak', padding: KECCAK_PADDING, bits: BITS, createMethod: createMethod },\n { name: 'sha3', padding: PADDING, bits: BITS, createMethod: createMethod },\n { name: 'shake', padding: SHAKE_PADDING, bits: SHAKE_BITS, createMethod: createShakeMethod },\n { name: 'cshake', padding: CSHAKE_PADDING, bits: SHAKE_BITS, createMethod: createCshakeMethod },\n { name: 'kmac', padding: CSHAKE_PADDING, bits: SHAKE_BITS, createMethod: createKmacMethod }\n ];\n\n var methods = {}, methodNames = [];\n\n for (var i = 0; i < algorithms.length; ++i) {\n var algorithm = algorithms[i];\n var bits = algorithm.bits;\n for (var j = 0; j < bits.length; ++j) {\n var methodName = algorithm.name + '_' + bits[j];\n methodNames.push(methodName);\n methods[methodName] = algorithm.createMethod(bits[j], algorithm.padding);\n if (algorithm.name !== 'sha3') {\n var newMethodName = algorithm.name + bits[j];\n methodNames.push(newMethodName);\n methods[newMethodName] = methods[methodName];\n }\n }\n }\n\n function Keccak(bits, padding, outputBits) {\n this.blocks = [];\n this.s = [];\n this.padding = padding;\n this.outputBits = outputBits;\n this.reset = true;\n this.finalized = false;\n this.block = 0;\n this.start = 0;\n this.blockCount = (1600 - (bits << 1)) >> 5;\n this.byteCount = this.blockCount << 2;\n this.outputBlocks = outputBits >> 5;\n this.extraBytes = (outputBits & 31) >> 3;\n\n for (var i = 0; i < 50; ++i) {\n this.s[i] = 0;\n }\n }\n\n Keccak.prototype.update = function (message) {\n if (this.finalized) {\n throw new Error(FINALIZE_ERROR);\n }\n var notString, type = typeof message;\n if (type !== 'string') {\n if (type === 'object') {\n if (message === null) {\n throw new Error(INPUT_ERROR);\n } else if (ARRAY_BUFFER && message.constructor === ArrayBuffer) {\n message = new Uint8Array(message);\n } else if (!Array.isArray(message)) {\n if (!ARRAY_BUFFER || !ArrayBuffer.isView(message)) {\n throw new Error(INPUT_ERROR);\n }\n }\n } else {\n throw new Error(INPUT_ERROR);\n }\n notString = true;\n }\n var blocks = this.blocks, byteCount = this.byteCount, length = message.length,\n blockCount = this.blockCount, index = 0, s = this.s, i, code;\n\n while (index < length) {\n if (this.reset) {\n this.reset = false;\n blocks[0] = this.block;\n for (i = 1; i < blockCount + 1; ++i) {\n blocks[i] = 0;\n }\n }\n if (notString) {\n for (i = this.start; index < length && i < byteCount; ++index) {\n blocks[i >> 2] |= message[index] << SHIFT[i++ & 3];\n }\n } else {\n for (i = this.start; index < length && i < byteCount; ++index) {\n code = message.charCodeAt(index);\n if (code < 0x80) {\n blocks[i >> 2] |= code << SHIFT[i++ & 3];\n } else if (code < 0x800) {\n blocks[i >> 2] |= (0xc0 | (code >> 6)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | (code & 0x3f)) << SHIFT[i++ & 3];\n } else if (code < 0xd800 || code >= 0xe000) {\n blocks[i >> 2] |= (0xe0 | (code >> 12)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | ((code >> 6) & 0x3f)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | (code & 0x3f)) << SHIFT[i++ & 3];\n } else {\n code = 0x10000 + (((code & 0x3ff) << 10) | (message.charCodeAt(++index) & 0x3ff));\n blocks[i >> 2] |= (0xf0 | (code >> 18)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | ((code >> 12) & 0x3f)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | ((code >> 6) & 0x3f)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | (code & 0x3f)) << SHIFT[i++ & 3];\n }\n }\n }\n this.lastByteIndex = i;\n if (i >= byteCount) {\n this.start = i - byteCount;\n this.block = blocks[blockCount];\n for (i = 0; i < blockCount; ++i) {\n s[i] ^= blocks[i];\n }\n f(s);\n this.reset = true;\n } else {\n this.start = i;\n }\n }\n return this;\n };\n\n Keccak.prototype.encode = function (x, right) {\n var o = x & 255, n = 1;\n var bytes = [o];\n x = x >> 8;\n o = x & 255;\n while (o > 0) {\n bytes.unshift(o);\n x = x >> 8;\n o = x & 255;\n ++n;\n }\n if (right) {\n bytes.push(n);\n } else {\n bytes.unshift(n);\n }\n this.update(bytes);\n return bytes.length;\n };\n\n Keccak.prototype.encodeString = function (str) {\n var notString, type = typeof str;\n if (type !== 'string') {\n if (type === 'object') {\n if (str === null) {\n throw new Error(INPUT_ERROR);\n } else if (ARRAY_BUFFER && str.constructor === ArrayBuffer) {\n str = new Uint8Array(str);\n } else if (!Array.isArray(str)) {\n if (!ARRAY_BUFFER || !ArrayBuffer.isView(str)) {\n throw new Error(INPUT_ERROR);\n }\n }\n } else {\n throw new Error(INPUT_ERROR);\n }\n notString = true;\n }\n var bytes = 0, length = str.length;\n if (notString) {\n bytes = length;\n } else {\n for (var i = 0; i < str.length; ++i) {\n var code = str.charCodeAt(i);\n if (code < 0x80) {\n bytes += 1;\n } else if (code < 0x800) {\n bytes += 2;\n } else if (code < 0xd800 || code >= 0xe000) {\n bytes += 3;\n } else {\n code = 0x10000 + (((code & 0x3ff) << 10) | (str.charCodeAt(++i) & 0x3ff));\n bytes += 4;\n }\n }\n }\n bytes += this.encode(bytes * 8);\n this.update(str);\n return bytes;\n };\n\n Keccak.prototype.bytepad = function (strs, w) {\n var bytes = this.encode(w);\n for (var i = 0; i < strs.length; ++i) {\n bytes += this.encodeString(strs[i]);\n }\n var paddingBytes = w - bytes % w;\n var zeros = [];\n zeros.length = paddingBytes;\n this.update(zeros);\n return this;\n };\n\n Keccak.prototype.finalize = function () {\n if (this.finalized) {\n return;\n }\n this.finalized = true;\n var blocks = this.blocks, i = this.lastByteIndex, blockCount = this.blockCount, s = this.s;\n blocks[i >> 2] |= this.padding[i & 3];\n if (this.lastByteIndex === this.byteCount) {\n blocks[0] = blocks[blockCount];\n for (i = 1; i < blockCount + 1; ++i) {\n blocks[i] = 0;\n }\n }\n blocks[blockCount - 1] |= 0x80000000;\n for (i = 0; i < blockCount; ++i) {\n s[i] ^= blocks[i];\n }\n f(s);\n };\n\n Keccak.prototype.toString = Keccak.prototype.hex = function () {\n this.finalize();\n\n var blockCount = this.blockCount, s = this.s, outputBlocks = this.outputBlocks,\n extraBytes = this.extraBytes, i = 0, j = 0;\n var hex = '', block;\n while (j < outputBlocks) {\n for (i = 0; i < blockCount && j < outputBlocks; ++i, ++j) {\n block = s[i];\n hex += HEX_CHARS[(block >> 4) & 0x0F] + HEX_CHARS[block & 0x0F] +\n HEX_CHARS[(block >> 12) & 0x0F] + HEX_CHARS[(block >> 8) & 0x0F] +\n HEX_CHARS[(block >> 20) & 0x0F] + HEX_CHARS[(block >> 16) & 0x0F] +\n HEX_CHARS[(block >> 28) & 0x0F] + HEX_CHARS[(block >> 24) & 0x0F];\n }\n if (j % blockCount === 0) {\n f(s);\n i = 0;\n }\n }\n if (extraBytes) {\n block = s[i];\n hex += HEX_CHARS[(block >> 4) & 0x0F] + HEX_CHARS[block & 0x0F];\n if (extraBytes > 1) {\n hex += HEX_CHARS[(block >> 12) & 0x0F] + HEX_CHARS[(block >> 8) & 0x0F];\n }\n if (extraBytes > 2) {\n hex += HEX_CHARS[(block >> 20) & 0x0F] + HEX_CHARS[(block >> 16) & 0x0F];\n }\n }\n return hex;\n };\n\n Keccak.prototype.arrayBuffer = function () {\n this.finalize();\n\n var blockCount = this.blockCount, s = this.s, outputBlocks = this.outputBlocks,\n extraBytes = this.extraBytes, i = 0, j = 0;\n var bytes = this.outputBits >> 3;\n var buffer;\n if (extraBytes) {\n buffer = new ArrayBuffer((outputBlocks + 1) << 2);\n } else {\n buffer = new ArrayBuffer(bytes);\n }\n var array = new Uint32Array(buffer);\n while (j < outputBlocks) {\n for (i = 0; i < blockCount && j < outputBlocks; ++i, ++j) {\n array[j] = s[i];\n }\n if (j % blockCount === 0) {\n f(s);\n }\n }\n if (extraBytes) {\n array[i] = s[i];\n buffer = buffer.slice(0, bytes);\n }\n return buffer;\n };\n\n Keccak.prototype.buffer = Keccak.prototype.arrayBuffer;\n\n Keccak.prototype.digest = Keccak.prototype.array = function () {\n this.finalize();\n\n var blockCount = this.blockCount, s = this.s, outputBlocks = this.outputBlocks,\n extraBytes = this.extraBytes, i = 0, j = 0;\n var array = [], offset, block;\n while (j < outputBlocks) {\n for (i = 0; i < blockCount && j < outputBlocks; ++i, ++j) {\n offset = j << 2;\n block = s[i];\n array[offset] = block & 0xFF;\n array[offset + 1] = (block >> 8) & 0xFF;\n array[offset + 2] = (block >> 16) & 0xFF;\n array[offset + 3] = (block >> 24) & 0xFF;\n }\n if (j % blockCount === 0) {\n f(s);\n }\n }\n if (extraBytes) {\n offset = j << 2;\n block = s[i];\n array[offset] = block & 0xFF;\n if (extraBytes > 1) {\n array[offset + 1] = (block >> 8) & 0xFF;\n }\n if (extraBytes > 2) {\n array[offset + 2] = (block >> 16) & 0xFF;\n }\n }\n return array;\n };\n\n function Kmac(bits, padding, outputBits) {\n Keccak.call(this, bits, padding, outputBits);\n }\n\n Kmac.prototype = new Keccak();\n\n Kmac.prototype.finalize = function () {\n this.encode(this.outputBits, true);\n return Keccak.prototype.finalize.call(this);\n };\n\n var f = function (s) {\n var h, l, n, c0, c1, c2, c3, c4, c5, c6, c7, c8, c9,\n b0, b1, b2, b3, b4, b5, b6, b7, b8, b9, b10, b11, b12, b13, b14, b15, b16, b17,\n b18, b19, b20, b21, b22, b23, b24, b25, b26, b27, b28, b29, b30, b31, b32, b33,\n b34, b35, b36, b37, b38, b39, b40, b41, b42, b43, b44, b45, b46, b47, b48, b49;\n for (n = 0; n < 48; n += 2) {\n c0 = s[0] ^ s[10] ^ s[20] ^ s[30] ^ s[40];\n c1 = s[1] ^ s[11] ^ s[21] ^ s[31] ^ s[41];\n c2 = s[2] ^ s[12] ^ s[22] ^ s[32] ^ s[42];\n c3 = s[3] ^ s[13] ^ s[23] ^ s[33] ^ s[43];\n c4 = s[4] ^ s[14] ^ s[24] ^ s[34] ^ s[44];\n c5 = s[5] ^ s[15] ^ s[25] ^ s[35] ^ s[45];\n c6 = s[6] ^ s[16] ^ s[26] ^ s[36] ^ s[46];\n c7 = s[7] ^ s[17] ^ s[27] ^ s[37] ^ s[47];\n c8 = s[8] ^ s[18] ^ s[28] ^ s[38] ^ s[48];\n c9 = s[9] ^ s[19] ^ s[29] ^ s[39] ^ s[49];\n\n h = c8 ^ ((c2 << 1) | (c3 >>> 31));\n l = c9 ^ ((c3 << 1) | (c2 >>> 31));\n s[0] ^= h;\n s[1] ^= l;\n s[10] ^= h;\n s[11] ^= l;\n s[20] ^= h;\n s[21] ^= l;\n s[30] ^= h;\n s[31] ^= l;\n s[40] ^= h;\n s[41] ^= l;\n h = c0 ^ ((c4 << 1) | (c5 >>> 31));\n l = c1 ^ ((c5 << 1) | (c4 >>> 31));\n s[2] ^= h;\n s[3] ^= l;\n s[12] ^= h;\n s[13] ^= l;\n s[22] ^= h;\n s[23] ^= l;\n s[32] ^= h;\n s[33] ^= l;\n s[42] ^= h;\n s[43] ^= l;\n h = c2 ^ ((c6 << 1) | (c7 >>> 31));\n l = c3 ^ ((c7 << 1) | (c6 >>> 31));\n s[4] ^= h;\n s[5] ^= l;\n s[14] ^= h;\n s[15] ^= l;\n s[24] ^= h;\n s[25] ^= l;\n s[34] ^= h;\n s[35] ^= l;\n s[44] ^= h;\n s[45] ^= l;\n h = c4 ^ ((c8 << 1) | (c9 >>> 31));\n l = c5 ^ ((c9 << 1) | (c8 >>> 31));\n s[6] ^= h;\n s[7] ^= l;\n s[16] ^= h;\n s[17] ^= l;\n s[26] ^= h;\n s[27] ^= l;\n s[36] ^= h;\n s[37] ^= l;\n s[46] ^= h;\n s[47] ^= l;\n h = c6 ^ ((c0 << 1) | (c1 >>> 31));\n l = c7 ^ ((c1 << 1) | (c0 >>> 31));\n s[8] ^= h;\n s[9] ^= l;\n s[18] ^= h;\n s[19] ^= l;\n s[28] ^= h;\n s[29] ^= l;\n s[38] ^= h;\n s[39] ^= l;\n s[48] ^= h;\n s[49] ^= l;\n\n b0 = s[0];\n b1 = s[1];\n b32 = (s[11] << 4) | (s[10] >>> 28);\n b33 = (s[10] << 4) | (s[11] >>> 28);\n b14 = (s[20] << 3) | (s[21] >>> 29);\n b15 = (s[21] << 3) | (s[20] >>> 29);\n b46 = (s[31] << 9) | (s[30] >>> 23);\n b47 = (s[30] << 9) | (s[31] >>> 23);\n b28 = (s[40] << 18) | (s[41] >>> 14);\n b29 = (s[41] << 18) | (s[40] >>> 14);\n b20 = (s[2] << 1) | (s[3] >>> 31);\n b21 = (s[3] << 1) | (s[2] >>> 31);\n b2 = (s[13] << 12) | (s[12] >>> 20);\n b3 = (s[12] << 12) | (s[13] >>> 20);\n b34 = (s[22] << 10) | (s[23] >>> 22);\n b35 = (s[23] << 10) | (s[22] >>> 22);\n b16 = (s[33] << 13) | (s[32] >>> 19);\n b17 = (s[32] << 13) | (s[33] >>> 19);\n b48 = (s[42] << 2) | (s[43] >>> 30);\n b49 = (s[43] << 2) | (s[42] >>> 30);\n b40 = (s[5] << 30) | (s[4] >>> 2);\n b41 = (s[4] << 30) | (s[5] >>> 2);\n b22 = (s[14] << 6) | (s[15] >>> 26);\n b23 = (s[15] << 6) | (s[14] >>> 26);\n b4 = (s[25] << 11) | (s[24] >>> 21);\n b5 = (s[24] << 11) | (s[25] >>> 21);\n b36 = (s[34] << 15) | (s[35] >>> 17);\n b37 = (s[35] << 15) | (s[34] >>> 17);\n b18 = (s[45] << 29) | (s[44] >>> 3);\n b19 = (s[44] << 29) | (s[45] >>> 3);\n b10 = (s[6] << 28) | (s[7] >>> 4);\n b11 = (s[7] << 28) | (s[6] >>> 4);\n b42 = (s[17] << 23) | (s[16] >>> 9);\n b43 = (s[16] << 23) | (s[17] >>> 9);\n b24 = (s[26] << 25) | (s[27] >>> 7);\n b25 = (s[27] << 25) | (s[26] >>> 7);\n b6 = (s[36] << 21) | (s[37] >>> 11);\n b7 = (s[37] << 21) | (s[36] >>> 11);\n b38 = (s[47] << 24) | (s[46] >>> 8);\n b39 = (s[46] << 24) | (s[47] >>> 8);\n b30 = (s[8] << 27) | (s[9] >>> 5);\n b31 = (s[9] << 27) | (s[8] >>> 5);\n b12 = (s[18] << 20) | (s[19] >>> 12);\n b13 = (s[19] << 20) | (s[18] >>> 12);\n b44 = (s[29] << 7) | (s[28] >>> 25);\n b45 = (s[28] << 7) | (s[29] >>> 25);\n b26 = (s[38] << 8) | (s[39] >>> 24);\n b27 = (s[39] << 8) | (s[38] >>> 24);\n b8 = (s[48] << 14) | (s[49] >>> 18);\n b9 = (s[49] << 14) | (s[48] >>> 18);\n\n s[0] = b0 ^ (~b2 & b4);\n s[1] = b1 ^ (~b3 & b5);\n s[10] = b10 ^ (~b12 & b14);\n s[11] = b11 ^ (~b13 & b15);\n s[20] = b20 ^ (~b22 & b24);\n s[21] = b21 ^ (~b23 & b25);\n s[30] = b30 ^ (~b32 & b34);\n s[31] = b31 ^ (~b33 & b35);\n s[40] = b40 ^ (~b42 & b44);\n s[41] = b41 ^ (~b43 & b45);\n s[2] = b2 ^ (~b4 & b6);\n s[3] = b3 ^ (~b5 & b7);\n s[12] = b12 ^ (~b14 & b16);\n s[13] = b13 ^ (~b15 & b17);\n s[22] = b22 ^ (~b24 & b26);\n s[23] = b23 ^ (~b25 & b27);\n s[32] = b32 ^ (~b34 & b36);\n s[33] = b33 ^ (~b35 & b37);\n s[42] = b42 ^ (~b44 & b46);\n s[43] = b43 ^ (~b45 & b47);\n s[4] = b4 ^ (~b6 & b8);\n s[5] = b5 ^ (~b7 & b9);\n s[14] = b14 ^ (~b16 & b18);\n s[15] = b15 ^ (~b17 & b19);\n s[24] = b24 ^ (~b26 & b28);\n s[25] = b25 ^ (~b27 & b29);\n s[34] = b34 ^ (~b36 & b38);\n s[35] = b35 ^ (~b37 & b39);\n s[44] = b44 ^ (~b46 & b48);\n s[45] = b45 ^ (~b47 & b49);\n s[6] = b6 ^ (~b8 & b0);\n s[7] = b7 ^ (~b9 & b1);\n s[16] = b16 ^ (~b18 & b10);\n s[17] = b17 ^ (~b19 & b11);\n s[26] = b26 ^ (~b28 & b20);\n s[27] = b27 ^ (~b29 & b21);\n s[36] = b36 ^ (~b38 & b30);\n s[37] = b37 ^ (~b39 & b31);\n s[46] = b46 ^ (~b48 & b40);\n s[47] = b47 ^ (~b49 & b41);\n s[8] = b8 ^ (~b0 & b2);\n s[9] = b9 ^ (~b1 & b3);\n s[18] = b18 ^ (~b10 & b12);\n s[19] = b19 ^ (~b11 & b13);\n s[28] = b28 ^ (~b20 & b22);\n s[29] = b29 ^ (~b21 & b23);\n s[38] = b38 ^ (~b30 & b32);\n s[39] = b39 ^ (~b31 & b33);\n s[48] = b48 ^ (~b40 & b42);\n s[49] = b49 ^ (~b41 & b43);\n\n s[0] ^= RC[n];\n s[1] ^= RC[n + 1];\n }\n };\n\n if (COMMON_JS) {\n module.exports = methods;\n } else {\n for (i = 0; i < methodNames.length; ++i) {\n root[methodNames[i]] = methods[methodNames[i]];\n }\n if (AMD) {\n define(function () {\n return methods;\n });\n }\n }\n})();\n", "\"use strict\";\n\nimport sha3 from \"js-sha3\";\n\nimport { arrayify, BytesLike } from \"@ethersproject/bytes\";\n\nexport function keccak256(data: BytesLike): string {\n return '0x' + sha3.keccak_256(arrayify(data));\n}\n", "export const version = \"rlp/5.7.0\";\n", "\"use strict\";\n\n//See: https://github.com/ethereum/wiki/wiki/RLP\n\nimport { arrayify, BytesLike, hexlify, isBytesLike } from \"@ethersproject/bytes\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\nfunction arrayifyInteger(value: number): Array {\n const result = [];\n while (value) {\n result.unshift(value & 0xff);\n value >>= 8;\n }\n return result;\n}\n\nfunction unarrayifyInteger(data: Uint8Array, offset: number, length: number): number {\n let result = 0;\n for (let i = 0; i < length; i++) {\n result = (result * 256) + data[offset + i];\n }\n return result;\n}\n\nfunction _encode(object: Array | string): Array {\n if (Array.isArray(object)) {\n let payload: Array = [];\n object.forEach(function(child) {\n payload = payload.concat(_encode(child));\n });\n\n if (payload.length <= 55) {\n payload.unshift(0xc0 + payload.length)\n return payload;\n }\n\n const length = arrayifyInteger(payload.length);\n length.unshift(0xf7 + length.length);\n\n return length.concat(payload);\n\n }\n\n if (!isBytesLike(object)) {\n logger.throwArgumentError(\"RLP object must be BytesLike\", \"object\", object);\n }\n\n const data: Array = Array.prototype.slice.call(arrayify(object));\n\n if (data.length === 1 && data[0] <= 0x7f) {\n return data;\n\n } else if (data.length <= 55) {\n data.unshift(0x80 + data.length);\n return data;\n }\n\n const length = arrayifyInteger(data.length);\n length.unshift(0xb7 + length.length);\n\n return length.concat(data);\n}\n\nexport function encode(object: any): string {\n return hexlify(_encode(object));\n}\n\ntype Decoded = {\n result: any;\n consumed: number;\n};\n\nfunction _decodeChildren(data: Uint8Array, offset: number, childOffset: number, length: number): Decoded {\n const result = [];\n\n while (childOffset < offset + 1 + length) {\n const decoded = _decode(data, childOffset);\n\n result.push(decoded.result);\n\n childOffset += decoded.consumed;\n if (childOffset > offset + 1 + length) {\n logger.throwError(\"child data too short\", Logger.errors.BUFFER_OVERRUN, { });\n }\n }\n\n return {consumed: (1 + length), result: result};\n}\n\n// returns { consumed: number, result: Object }\nfunction _decode(data: Uint8Array, offset: number): { consumed: number, result: any } {\n if (data.length === 0) {\n logger.throwError(\"data too short\", Logger.errors.BUFFER_OVERRUN, { });\n }\n\n // Array with extra length prefix\n if (data[offset] >= 0xf8) {\n const lengthLength = data[offset] - 0xf7;\n if (offset + 1 + lengthLength > data.length) {\n logger.throwError(\"data short segment too short\", Logger.errors.BUFFER_OVERRUN, { });\n }\n\n const length = unarrayifyInteger(data, offset + 1, lengthLength);\n if (offset + 1 + lengthLength + length > data.length) {\n logger.throwError(\"data long segment too short\", Logger.errors.BUFFER_OVERRUN, { });\n }\n\n return _decodeChildren(data, offset, offset + 1 + lengthLength, lengthLength + length);\n\n } else if (data[offset] >= 0xc0) {\n const length = data[offset] - 0xc0;\n if (offset + 1 + length > data.length) {\n logger.throwError(\"data array too short\", Logger.errors.BUFFER_OVERRUN, { });\n }\n\n return _decodeChildren(data, offset, offset + 1, length);\n\n } else if (data[offset] >= 0xb8) {\n const lengthLength = data[offset] - 0xb7;\n if (offset + 1 + lengthLength > data.length) {\n logger.throwError(\"data array too short\", Logger.errors.BUFFER_OVERRUN, { });\n }\n\n const length = unarrayifyInteger(data, offset + 1, lengthLength);\n if (offset + 1 + lengthLength + length > data.length) {\n logger.throwError(\"data array too short\", Logger.errors.BUFFER_OVERRUN, { });\n }\n\n const result = hexlify(data.slice(offset + 1 + lengthLength, offset + 1 + lengthLength + length));\n return { consumed: (1 + lengthLength + length), result: result }\n\n } else if (data[offset] >= 0x80) {\n const length = data[offset] - 0x80;\n if (offset + 1 + length > data.length) {\n logger.throwError(\"data too short\", Logger.errors.BUFFER_OVERRUN, { });\n }\n\n const result = hexlify(data.slice(offset + 1, offset + 1 + length));\n return { consumed: (1 + length), result: result }\n }\n return { consumed: 1, result: hexlify(data[offset]) };\n}\n\nexport function decode(data: BytesLike): any {\n const bytes = arrayify(data);\n const decoded = _decode(bytes, 0);\n if (decoded.consumed !== bytes.length) {\n logger.throwArgumentError(\"invalid rlp data\", \"data\", data);\n }\n return decoded.result;\n}\n\n", "export const version = \"address/5.7.0\";\n", "\"use strict\";\n\nimport { arrayify, BytesLike, concat, hexDataLength, hexDataSlice, isHexString, stripZeros } from \"@ethersproject/bytes\";\nimport { BigNumber, BigNumberish, _base16To36, _base36To16 } from \"@ethersproject/bignumber\";\nimport { keccak256 } from \"@ethersproject/keccak256\";\nimport { encode } from \"@ethersproject/rlp\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\nfunction getChecksumAddress(address: string): string {\n if (!isHexString(address, 20)) {\n logger.throwArgumentError(\"invalid address\", \"address\", address);\n }\n\n address = address.toLowerCase();\n\n const chars = address.substring(2).split(\"\");\n\n const expanded = new Uint8Array(40);\n for (let i = 0; i < 40; i++) {\n expanded[i] = chars[i].charCodeAt(0);\n }\n\n const hashed = arrayify(keccak256(expanded));\n\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\n return \"0x\" + chars.join(\"\");\n}\n\n// Shims for environments that are missing some required constants and functions\nconst MAX_SAFE_INTEGER: number = 0x1fffffffffffff;\n\nfunction log10(x: number): number {\n if (Math.log10) { return Math.log10(x); }\n return Math.log(x) / Math.LN10;\n}\n\n\n// See: https://en.wikipedia.org/wiki/International_Bank_Account_Number\n\n// Create lookup table\nconst ibanLookup: { [character: string]: string } = { };\nfor (let i = 0; i < 10; i++) { ibanLookup[String(i)] = String(i); }\nfor (let i = 0; i < 26; i++) { ibanLookup[String.fromCharCode(65 + i)] = String(10 + i); }\n\n// How many decimal digits can we process? (for 64-bit float, this is 15)\nconst safeDigits = Math.floor(log10(MAX_SAFE_INTEGER));\n\nfunction ibanChecksum(address: string): string {\n address = address.toUpperCase();\n address = address.substring(4) + address.substring(0, 2) + \"00\";\n\n let expanded = address.split(\"\").map((c) => { return ibanLookup[c]; }).join(\"\");\n\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\n let checksum = String(98 - (parseInt(expanded, 10) % 97));\n while (checksum.length < 2) { checksum = \"0\" + checksum; }\n\n return checksum;\n};\n\nexport function getAddress(address: string): string {\n let result = null;\n\n if (typeof(address) !== \"string\") {\n logger.throwArgumentError(\"invalid address\", \"address\", address);\n }\n\n if (address.match(/^(0x)?[0-9a-fA-F]{40}$/)) {\n\n // Missing the 0x prefix\n if (address.substring(0, 2) !== \"0x\") { address = \"0x\" + address; }\n\n result = getChecksumAddress(address);\n\n // It is a checksummed address with a bad checksum\n if (address.match(/([A-F].*[a-f])|([a-f].*[A-F])/) && result !== address) {\n logger.throwArgumentError(\"bad address checksum\", \"address\", address);\n }\n\n // Maybe ICAP? (we only support direct mode)\n } else if (address.match(/^XE[0-9]{2}[0-9A-Za-z]{30,31}$/)) {\n\n // It is an ICAP address with a bad checksum\n if (address.substring(2, 4) !== ibanChecksum(address)) {\n logger.throwArgumentError(\"bad icap checksum\", \"address\", address);\n }\n\n result = _base36To16(address.substring(4));\n while (result.length < 40) { result = \"0\" + result; }\n result = getChecksumAddress(\"0x\" + result);\n\n } else {\n logger.throwArgumentError(\"invalid address\", \"address\", address);\n }\n\n return result;\n}\n\nexport function isAddress(address: string): boolean {\n try {\n getAddress(address);\n return true;\n } catch (error) { }\n return false;\n}\n\nexport function getIcapAddress(address: string): string {\n let base36 = _base16To36(getAddress(address).substring(2)).toUpperCase();\n while (base36.length < 30) { base36 = \"0\" + base36; }\n return \"XE\" + ibanChecksum(\"XE00\" + base36) + base36;\n}\n\n// http://ethereum.stackexchange.com/questions/760/how-is-the-address-of-an-ethereum-contract-computed\nexport function getContractAddress(transaction: { from: string, nonce: BigNumberish }) {\n let from: string = null;\n try {\n from = getAddress(transaction.from);\n } catch (error) {\n logger.throwArgumentError(\"missing from address\", \"transaction\", transaction);\n }\n\n const nonce = stripZeros(arrayify(BigNumber.from(transaction.nonce).toHexString()));\n\n return getAddress(hexDataSlice(keccak256(encode([ from, nonce ])), 12));\n}\n\nexport function getCreate2Address(from: string, salt: BytesLike, initCodeHash: BytesLike): string {\n if (hexDataLength(salt) !== 32) {\n logger.throwArgumentError(\"salt must be 32 bytes\", \"salt\", salt);\n }\n if (hexDataLength(initCodeHash) !== 32) {\n logger.throwArgumentError(\"initCodeHash must be 32 bytes\", \"initCodeHash\", initCodeHash);\n }\n return getAddress(hexDataSlice(keccak256(concat([ \"0xff\", getAddress(from), salt, initCodeHash ])), 12))\n}\n", "\"use strict\";\n\nimport { getAddress } from \"@ethersproject/address\";\nimport { hexZeroPad } from \"@ethersproject/bytes\";\n\nimport { Coder, Reader, Writer } from \"./abstract-coder\";\n\nexport class AddressCoder extends Coder {\n\n constructor(localName: string) {\n super(\"address\", \"address\", localName, false);\n }\n\n defaultValue(): string {\n return \"0x0000000000000000000000000000000000000000\";\n }\n\n encode(writer: Writer, value: string): number {\n try {\n value = getAddress(value)\n } catch (error) {\n this._throwError(error.message, value);\n }\n return writer.writeValue(value);\n }\n\n decode(reader: Reader): any {\n return getAddress(hexZeroPad(reader.readValue().toHexString(), 20));\n }\n}\n\n", "\"use strict\";\n\nimport { Coder, Reader, Writer } from \"./abstract-coder\";\n\n// Clones the functionality of an existing Coder, but without a localName\nexport class AnonymousCoder extends Coder {\n private coder: Coder;\n\n constructor(coder: Coder) {\n super(coder.name, coder.type, undefined, coder.dynamic);\n this.coder = coder;\n }\n\n defaultValue(): any {\n return this.coder.defaultValue();\n }\n\n encode(writer: Writer, value: any): number {\n return this.coder.encode(writer, value);\n }\n\n decode(reader: Reader): any {\n return this.coder.decode(reader);\n }\n}\n", "\"use strict\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"../_version\";\nconst logger = new Logger(version);\n\nimport { Coder, Reader, Result, Writer } from \"./abstract-coder\";\nimport { AnonymousCoder } from \"./anonymous\";\n\nexport function pack(writer: Writer, coders: ReadonlyArray, values: Array | { [ name: string ]: any }): number {\n let arrayValues: Array = null;\n\n if (Array.isArray(values)) {\n arrayValues = values;\n\n } else if (values && typeof(values) === \"object\") {\n let unique: { [ name: string ]: boolean } = { };\n\n arrayValues = coders.map((coder) => {\n const name = coder.localName;\n if (!name) {\n logger.throwError(\"cannot encode object for signature with missing names\", Logger.errors.INVALID_ARGUMENT, {\n argument: \"values\",\n coder: coder,\n value: values\n });\n }\n\n if (unique[name]) {\n logger.throwError(\"cannot encode object for signature with duplicate names\", Logger.errors.INVALID_ARGUMENT, {\n argument: \"values\",\n coder: coder,\n value: values\n });\n }\n\n unique[name] = true;\n\n return values[name];\n });\n\n } else {\n logger.throwArgumentError(\"invalid tuple value\", \"tuple\", values);\n }\n\n if (coders.length !== arrayValues.length) {\n logger.throwArgumentError(\"types/value length mismatch\", \"tuple\", values);\n }\n\n let staticWriter = new Writer(writer.wordSize);\n let dynamicWriter = new Writer(writer.wordSize);\n\n let updateFuncs: Array<(baseOffset: number) => void> = [];\n coders.forEach((coder, index) => {\n let value = arrayValues[index];\n\n if (coder.dynamic) {\n // Get current dynamic offset (for the future pointer)\n let dynamicOffset = dynamicWriter.length;\n\n // Encode the dynamic value into the dynamicWriter\n coder.encode(dynamicWriter, value);\n\n // Prepare to populate the correct offset once we are done\n let updateFunc = staticWriter.writeUpdatableValue();\n updateFuncs.push((baseOffset: number) => {\n updateFunc(baseOffset + dynamicOffset);\n });\n\n } else {\n coder.encode(staticWriter, value);\n }\n });\n\n // Backfill all the dynamic offsets, now that we know the static length\n updateFuncs.forEach((func) => { func(staticWriter.length); });\n\n let length = writer.appendWriter(staticWriter);\n length += writer.appendWriter(dynamicWriter);\n return length;\n}\n\nexport function unpack(reader: Reader, coders: Array): Result {\n let values: any = [];\n\n // A reader anchored to this base\n let baseReader = reader.subReader(0);\n\n coders.forEach((coder) => {\n let value: any = null;\n\n if (coder.dynamic) {\n let offset = reader.readValue();\n let offsetReader = baseReader.subReader(offset.toNumber());\n try {\n value = coder.decode(offsetReader);\n } catch (error) {\n // Cannot recover from this\n if (error.code === Logger.errors.BUFFER_OVERRUN) { throw error; }\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 } catch (error) {\n // Cannot recover from this\n if (error.code === Logger.errors.BUFFER_OVERRUN) { throw error; }\n value = error;\n value.baseType = coder.name;\n value.name = coder.localName;\n value.type = coder.type;\n }\n }\n\n if (value != undefined) {\n values.push(value);\n }\n });\n\n // We only output named properties for uniquely named coders\n const uniqueNames = coders.reduce((accum, coder) => {\n const name = coder.localName;\n if (name) {\n if (!accum[name]) { accum[name] = 0; }\n accum[name]++;\n }\n return accum;\n }, <{ [ name: string ]: number }>{ });\n\n // Add any named parameters (i.e. tuples)\n coders.forEach((coder: Coder, index: number) => {\n let name = coder.localName;\n if (!name || uniqueNames[name] !== 1) { return; }\n\n if (name === \"length\") { name = \"_length\"; }\n\n if (values[name] != null) { return; }\n\n const value = values[index];\n\n if (value instanceof Error) {\n Object.defineProperty(values, name, {\n enumerable: true,\n get: () => { throw value; }\n });\n } else {\n values[name] = value;\n }\n });\n\n for (let i = 0; i < values.length; i++) {\n const value = values[i];\n if (value instanceof Error) {\n Object.defineProperty(values, i, {\n enumerable: true,\n get: () => { throw value; }\n });\n }\n }\n\n return Object.freeze(values);\n}\n\n\nexport class ArrayCoder extends Coder {\n readonly coder: Coder;\n readonly length: number;\n\n constructor(coder: Coder, length: number, localName: string) {\n const type = (coder.type + \"[\" + (length >= 0 ? length: \"\") + \"]\");\n const dynamic = (length === -1 || coder.dynamic);\n super(\"array\", type, localName, dynamic);\n\n this.coder = coder;\n this.length = length;\n }\n\n defaultValue(): Array {\n // Verifies the child coder is valid (even if the array is dynamic or 0-length)\n const defaultChild = this.coder.defaultValue();\n\n const result: Array = [];\n for (let i = 0; i < this.length; i++) {\n result.push(defaultChild);\n }\n return result;\n }\n\n encode(writer: Writer, value: Array): number {\n if (!Array.isArray(value)) {\n this._throwError(\"expected array value\", value);\n }\n\n let count = this.length;\n\n if (count === -1) {\n count = value.length;\n writer.writeValue(value.length);\n }\n\n logger.checkArgumentCount(value.length, count, \"coder array\" + (this.localName? (\" \"+ this.localName): \"\"));\n\n let coders = [];\n for (let i = 0; i < value.length; i++) { coders.push(this.coder); }\n\n return pack(writer, coders, value);\n }\n\n decode(reader: Reader): any {\n let count = this.length;\n if (count === -1) {\n count = reader.readValue().toNumber();\n\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 if (count * 32 > reader._data.length) {\n logger.throwError(\"insufficient data length\", Logger.errors.BUFFER_OVERRUN, {\n length: reader._data.length,\n count: count\n });\n }\n }\n let coders = [];\n for (let i = 0; i < count; i++) { coders.push(new AnonymousCoder(this.coder)); }\n\n return reader.coerce(this.name, unpack(reader, coders));\n }\n}\n\n", "\"use strict\";\n\nimport { Coder, Reader, Writer } from \"./abstract-coder\";\n\nexport class BooleanCoder extends Coder {\n\n constructor(localName: string) {\n super(\"bool\", \"bool\", localName, false);\n }\n\n defaultValue(): boolean {\n return false;\n }\n\n encode(writer: Writer, value: boolean): number {\n return writer.writeValue(value ? 1: 0);\n }\n\n decode(reader: Reader): any {\n return reader.coerce(this.type, !reader.readValue().isZero());\n }\n}\n\n", "\"use strict\";\n\nimport { arrayify, hexlify } from \"@ethersproject/bytes\";\n\nimport { Coder, Reader, Writer } from \"./abstract-coder\";\n\nexport class DynamicBytesCoder extends Coder {\n constructor(type: string, localName: string) {\n super(type, type, localName, true);\n }\n\n defaultValue(): string {\n return \"0x\";\n }\n\n encode(writer: Writer, value: any): number {\n value = arrayify(value);\n let length = writer.writeValue(value.length);\n length += writer.writeBytes(value);\n return length;\n }\n\n decode(reader: Reader): any {\n return reader.readBytes(reader.readValue().toNumber(), true);\n }\n}\n\nexport class BytesCoder extends DynamicBytesCoder {\n constructor(localName: string) {\n super(\"bytes\", localName);\n }\n\n decode(reader: Reader): any {\n return reader.coerce(this.name, hexlify(super.decode(reader)));\n }\n}\n\n\n", "\"use strict\";\n\nimport { arrayify, BytesLike, hexlify } from \"@ethersproject/bytes\";\n\nimport { Coder, Reader, Writer } from \"./abstract-coder\";\n\n// @TODO: Merge this with bytes\nexport class FixedBytesCoder extends Coder {\n readonly size: number;\n\n constructor(size: number, localName: string) {\n let name = \"bytes\" + String(size);\n super(name, name, localName, false);\n this.size = size;\n }\n\n defaultValue(): string {\n return (\"0x0000000000000000000000000000000000000000000000000000000000000000\").substring(0, 2 + this.size * 2);\n }\n\n encode(writer: Writer, value: BytesLike): number {\n let data = arrayify(value);\n if (data.length !== this.size) { this._throwError(\"incorrect data length\", value); }\n return writer.writeBytes(data);\n }\n\n decode(reader: Reader): any {\n return reader.coerce(this.name, hexlify(reader.readBytes(this.size)));\n }\n}\n", "\"use strict\";\n\nimport { Coder, Reader, Writer } from \"./abstract-coder\";\n\nexport class NullCoder extends Coder {\n\n constructor(localName: string) {\n super(\"null\", \"\", localName, false);\n }\n\n defaultValue(): null {\n return null;\n }\n\n encode(writer: Writer, value: any): number {\n if (value != null) { this._throwError(\"not null\", value); }\n return writer.writeBytes([ ]);\n }\n\n decode(reader: Reader): any {\n reader.readBytes(0);\n return reader.coerce(this.name, null);\n }\n}\n", "export const AddressZero = \"0x0000000000000000000000000000000000000000\";\n\n", "import { BigNumber } from \"@ethersproject/bignumber\";\n\nconst NegativeOne: BigNumber = (/*#__PURE__*/BigNumber.from(-1));\nconst Zero: BigNumber = (/*#__PURE__*/BigNumber.from(0));\nconst One: BigNumber = (/*#__PURE__*/BigNumber.from(1));\nconst Two: BigNumber = (/*#__PURE__*/BigNumber.from(2));\nconst WeiPerEther: BigNumber = (/*#__PURE__*/BigNumber.from(\"1000000000000000000\"));\nconst MaxUint256: BigNumber = (/*#__PURE__*/BigNumber.from(\"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"));\n\nconst MinInt256: BigNumber = (/*#__PURE__*/BigNumber.from(\"-0x8000000000000000000000000000000000000000000000000000000000000000\"));\nconst MaxInt256: BigNumber = (/*#__PURE__*/BigNumber.from(\"0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"));\n\nexport {\n NegativeOne,\n Zero,\n One,\n Two,\n WeiPerEther,\n MaxUint256,\n MinInt256,\n MaxInt256,\n};\n", "export const HashZero = \"0x0000000000000000000000000000000000000000000000000000000000000000\";\n\n", "// NFKC (composed) // (decomposed)\nexport const EtherSymbol = \"\\u039e\"; // \"\\uD835\\uDF63\";\n", "\"use strict\";\n\nexport { AddressZero } from \"./addresses\";\nexport {\n NegativeOne,\n Zero,\n One,\n Two,\n WeiPerEther,\n MaxUint256,\n MinInt256,\n MaxInt256\n} from \"./bignumbers\";\nexport { HashZero } from \"./hashes\";\nexport { EtherSymbol } from \"./strings\";\n\n", "\"use strict\";\n\nimport { BigNumber, BigNumberish } from \"@ethersproject/bignumber\";\nimport { MaxUint256, NegativeOne, One, Zero } from \"@ethersproject/constants\";\n\nimport { Coder, Reader, Writer } from \"./abstract-coder\";\n\nexport class NumberCoder extends Coder {\n readonly size: number;\n readonly signed: boolean;\n\n constructor(size: number, signed: boolean, localName: string) {\n const name = ((signed ? \"int\": \"uint\") + (size * 8));\n super(name, name, localName, false);\n\n this.size = size;\n this.signed = signed;\n }\n\n defaultValue(): number {\n return 0;\n }\n\n encode(writer: Writer, value: BigNumberish): number {\n let v = BigNumber.from(value);\n\n // Check bounds are safe for encoding\n let maxUintValue = MaxUint256.mask(writer.wordSize * 8);\n if (this.signed) {\n let bounds = maxUintValue.mask(this.size * 8 - 1);\n if (v.gt(bounds) || v.lt(bounds.add(One).mul(NegativeOne))) {\n this._throwError(\"value out-of-bounds\", value);\n }\n } else if (v.lt(Zero) || v.gt(maxUintValue.mask(this.size * 8))) {\n this._throwError(\"value out-of-bounds\", value);\n }\n\n v = v.toTwos(this.size * 8).mask(this.size * 8);\n\n if (this.signed) {\n v = v.fromTwos(this.size * 8).toTwos(8 * writer.wordSize);\n }\n\n return writer.writeValue(v);\n }\n\n decode(reader: Reader): any {\n let value = reader.readValue().mask(this.size * 8);\n\n if (this.signed) {\n value = value.fromTwos(this.size * 8);\n }\n\n return reader.coerce(this.name, value);\n }\n}\n\n", "export const version = \"strings/5.7.0\";\n", "\"use strict\";\n\nimport { arrayify, BytesLike } from \"@ethersproject/bytes\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\n///////////////////////////////\n\nexport enum UnicodeNormalizationForm {\n current = \"\",\n NFC = \"NFC\",\n NFD = \"NFD\",\n NFKC = \"NFKC\",\n NFKD = \"NFKD\"\n};\n\nexport enum Utf8ErrorReason {\n // A continuation byte was present where there was nothing to continue\n // - offset = the index the codepoint began in\n UNEXPECTED_CONTINUE = \"unexpected continuation byte\",\n\n // An invalid (non-continuation) byte to start a UTF-8 codepoint was found\n // - offset = the index the codepoint began in\n BAD_PREFIX = \"bad codepoint prefix\",\n\n // The string is too short to process the expected codepoint\n // - offset = the index the codepoint began in\n OVERRUN = \"string overrun\",\n\n // A missing continuation byte was expected but not found\n // - offset = the index the continuation byte was expected at\n MISSING_CONTINUE = \"missing continuation byte\",\n\n // The computed code point is outside the range for UTF-8\n // - offset = start of this codepoint\n // - badCodepoint = the computed codepoint; outside the UTF-8 range\n OUT_OF_RANGE = \"out of UTF-8 range\",\n\n // UTF-8 strings may not contain UTF-16 surrogate pairs\n // - offset = start of this codepoint\n // - badCodepoint = the computed codepoint; inside the UTF-16 surrogate range\n UTF16_SURROGATE = \"UTF-16 surrogate\",\n\n // The string is an overlong representation\n // - offset = start of this codepoint\n // - badCodepoint = the computed codepoint; already bounds checked\n OVERLONG = \"overlong representation\",\n};\n\n\nexport type Utf8ErrorFunc = (reason: Utf8ErrorReason, offset: number, bytes: ArrayLike, output: Array, badCodepoint?: number) => number;\n\nfunction errorFunc(reason: Utf8ErrorReason, offset: number, bytes: ArrayLike, output: Array, badCodepoint?: number): number {\n return logger.throwArgumentError(`invalid codepoint at offset ${ offset }; ${ reason }`, \"bytes\", bytes);\n}\n\nfunction ignoreFunc(reason: Utf8ErrorReason, offset: number, bytes: ArrayLike, output: Array, badCodepoint?: number): number {\n\n // If there is an invalid prefix (including stray continuation), skip any additional continuation bytes\n if (reason === Utf8ErrorReason.BAD_PREFIX || reason === Utf8ErrorReason.UNEXPECTED_CONTINUE) {\n let i = 0;\n for (let o = offset + 1; o < bytes.length; o++) {\n if (bytes[o] >> 6 !== 0x02) { break; }\n i++;\n }\n return i;\n }\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 === Utf8ErrorReason.OVERRUN) {\n return bytes.length - offset - 1;\n }\n\n // Nothing to skip\n return 0;\n}\n\nfunction replaceFunc(reason: Utf8ErrorReason, offset: number, bytes: ArrayLike, output: Array, badCodepoint?: number): number {\n\n // Overlong representations are otherwise \"valid\" code points; just non-deistingtished\n if (reason === Utf8ErrorReason.OVERLONG) {\n output.push(badCodepoint);\n return 0;\n }\n\n // Put the replacement character into the output\n output.push(0xfffd);\n\n // Otherwise, process as if ignoring errors\n return ignoreFunc(reason, offset, bytes, output, badCodepoint);\n}\n\n// Common error handing strategies\nexport const Utf8ErrorFuncs: { [ name: string ]: Utf8ErrorFunc } = Object.freeze({\n error: errorFunc,\n ignore: ignoreFunc,\n replace: replaceFunc\n});\n\n// http://stackoverflow.com/questions/13356493/decode-utf-8-with-javascript#13691499\nfunction getUtf8CodePoints(bytes: BytesLike, onError?: Utf8ErrorFunc): Array {\n if (onError == null) { onError = Utf8ErrorFuncs.error; }\n\n bytes = arrayify(bytes);\n\n const result: Array = [];\n let i = 0;\n\n // Invalid bytes are ignored\n while(i < bytes.length) {\n\n const c = bytes[i++];\n\n // 0xxx xxxx\n if (c >> 7 === 0) {\n result.push(c);\n continue;\n }\n\n // Multibyte; how many bytes left for this character?\n let extraLength = null;\n let overlongMask = null;\n\n // 110x xxxx 10xx xxxx\n if ((c & 0xe0) === 0xc0) {\n extraLength = 1;\n overlongMask = 0x7f;\n\n // 1110 xxxx 10xx xxxx 10xx xxxx\n } else if ((c & 0xf0) === 0xe0) {\n extraLength = 2;\n overlongMask = 0x7ff;\n\n // 1111 0xxx 10xx xxxx 10xx xxxx 10xx xxxx\n } else if ((c & 0xf8) === 0xf0) {\n extraLength = 3;\n overlongMask = 0xffff;\n\n } else {\n if ((c & 0xc0) === 0x80) {\n i += onError(Utf8ErrorReason.UNEXPECTED_CONTINUE, i - 1, bytes, result);\n } else {\n i += onError(Utf8ErrorReason.BAD_PREFIX, i - 1, bytes, result);\n }\n continue;\n }\n\n // Do we have enough bytes in our data?\n if (i - 1 + extraLength >= bytes.length) {\n i += onError(Utf8ErrorReason.OVERRUN, i - 1, bytes, result);\n continue;\n }\n\n // Remove the length prefix from the char\n let res = c & ((1 << (8 - extraLength - 1)) - 1);\n\n for (let j = 0; j < extraLength; j++) {\n let nextChar = bytes[i];\n\n // Invalid continuation byte\n if ((nextChar & 0xc0) != 0x80) {\n i += onError(Utf8ErrorReason.MISSING_CONTINUE, i, bytes, result);\n res = null;\n break;\n };\n\n res = (res << 6) | (nextChar & 0x3f);\n i++;\n }\n\n // See above loop for invalid continuation byte\n if (res === null) { continue; }\n\n // Maximum code point\n if (res > 0x10ffff) {\n i += onError(Utf8ErrorReason.OUT_OF_RANGE, i - 1 - extraLength, bytes, result, res);\n continue;\n }\n\n // Reserved for UTF-16 surrogate halves\n if (res >= 0xd800 && res <= 0xdfff) {\n i += onError(Utf8ErrorReason.UTF16_SURROGATE, i - 1 - extraLength, bytes, result, res);\n continue;\n }\n\n // Check for overlong sequences (more bytes than needed)\n if (res <= overlongMask) {\n i += onError(Utf8ErrorReason.OVERLONG, i - 1 - extraLength, bytes, result, res);\n continue;\n }\n\n result.push(res);\n }\n\n return result;\n}\n\n// http://stackoverflow.com/questions/18729405/how-to-convert-utf8-string-to-byte-array\nexport function toUtf8Bytes(str: string, form: UnicodeNormalizationForm = UnicodeNormalizationForm.current): Uint8Array {\n\n if (form != UnicodeNormalizationForm.current) {\n logger.checkNormalize();\n str = str.normalize(form);\n }\n\n let result = [];\n for (let i = 0; i < str.length; i++) {\n const c = str.charCodeAt(i);\n\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\n if (i >= str.length || (c2 & 0xfc00) !== 0xdc00) {\n throw new Error(\"invalid utf-8 string\");\n }\n\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\n return arrayify(result);\n};\n\nfunction escapeChar(value: number) {\n const hex = (\"0000\" + value.toString(16));\n return \"\\\\u\" + hex.substring(hex.length - 4);\n}\n\nexport function _toEscapedUtf8String(bytes: BytesLike, onError?: Utf8ErrorFunc): string {\n return '\"' + getUtf8CodePoints(bytes, onError).map((codePoint) => {\n if (codePoint < 256) {\n switch (codePoint) {\n case 8: return \"\\\\b\";\n case 9: return \"\\\\t\";\n case 10: return \"\\\\n\"\n case 13: return \"\\\\r\";\n case 34: return \"\\\\\\\"\";\n case 92: return \"\\\\\\\\\";\n }\n\n if (codePoint >= 32 && codePoint < 127) {\n return String.fromCharCode(codePoint);\n }\n }\n\n if (codePoint <= 0xffff) {\n return escapeChar(codePoint);\n }\n\n codePoint -= 0x10000;\n return escapeChar(((codePoint >> 10) & 0x3ff) + 0xd800) + escapeChar((codePoint & 0x3ff) + 0xdc00);\n }).join(\"\") + '\"';\n}\n\nexport function _toUtf8String(codePoints: Array): string {\n return codePoints.map((codePoint) => {\n if (codePoint <= 0xffff) {\n return String.fromCharCode(codePoint);\n }\n codePoint -= 0x10000;\n return String.fromCharCode(\n (((codePoint >> 10) & 0x3ff) + 0xd800),\n ((codePoint & 0x3ff) + 0xdc00)\n );\n }).join(\"\");\n}\n\nexport function toUtf8String(bytes: BytesLike, onError?: Utf8ErrorFunc): string {\n return _toUtf8String(getUtf8CodePoints(bytes, onError));\n}\n\nexport function toUtf8CodePoints(str: string, form: UnicodeNormalizationForm = UnicodeNormalizationForm.current): Array {\n return getUtf8CodePoints(toUtf8Bytes(str, form));\n}\n", "\"use strict\";\n\nimport { HashZero } from \"@ethersproject/constants\";\nimport { arrayify, BytesLike, concat, hexlify } from \"@ethersproject/bytes\";\n\nimport { toUtf8Bytes, toUtf8String } from \"./utf8\";\n\n\nexport function formatBytes32String(text: string): string {\n\n // Get the bytes\n const bytes = toUtf8Bytes(text);\n\n // Check we have room for null-termination\n if (bytes.length > 31) { throw new Error(\"bytes32 string must be less than 32 bytes\"); }\n\n // Zero-pad (implicitly null-terminates)\n return hexlify(concat([ bytes, HashZero ]).slice(0, 32));\n}\n\nexport function parseBytes32String(bytes: BytesLike): string {\n const data = arrayify(bytes);\n\n // Must be 32 bytes with a null-termination\n if (data.length !== 32) { throw new Error(\"invalid bytes32 - not 32 bytes long\"); }\n if (data[31] !== 0) { throw new Error(\"invalid bytes32 string - no null terminator\"); }\n\n // Find the null termination\n let length = 31;\n while (data[length - 1] === 0) { length--; }\n\n // Determine the string value\n return toUtf8String(data.slice(0, length));\n}\n\n", "\"use strict\";\n\nimport { toUtf8CodePoints, _toUtf8String, UnicodeNormalizationForm } from \"./utf8\";\n\ntype Ranged = {\n l: number, // Lo value\n h: number, // High value (less the lo)\n d?: number, // Delta/stride (default: 1)\n s?: number, // Shift (default: 1)\n e?: Array // Exceptions to skip\n};\n\ntype Table = { [ src: number ]: Array };\n\nfunction bytes2(data: string): Array {\n if ((data.length % 4) !== 0) { throw new Error(\"bad data\"); }\n let result = [];\n for (let i = 0; i < data.length; i += 4) {\n result.push(parseInt(data.substring(i, i + 4), 16));\n }\n return result;\n}\n\nfunction createTable(data: string, func?: (value: string) => Array): Table {\n if (!func) {\n func = function(value: string) { return [ parseInt(value, 16) ]; }\n }\n\n let lo = 0;\n\n let result: Table = { };\n data.split(\",\").forEach((pair) => {\n let comps = pair.split(\":\");\n lo += parseInt(comps[0], 16);\n result[lo] = func(comps[1]);\n });\n\n return result;\n}\n\nfunction createRangeTable(data: string): Array {\n let hi = 0;\n return data.split(\",\").map((v) => {\n let comps = v.split(\"-\");\n if (comps.length === 1) {\n comps[1] = \"0\";\n } else if (comps[1] === \"\") {\n comps[1] = \"1\";\n }\n\n let lo = hi + parseInt(comps[0], 16);\n hi = parseInt(comps[1], 16);\n return { l: lo, h: hi };\n });\n}\n\nfunction matchMap(value: number, ranges: Array): Ranged {\n let lo = 0;\n for (let i = 0; i < ranges.length; i++) {\n let range = ranges[i];\n lo += range.l;\n if (value >= lo && value <= lo + range.h && ((value - lo) % (range.d || 1)) === 0) {\n if (range.e && range.e.indexOf(value - lo) !== -1) { continue; }\n return range;\n }\n }\n return null;\n}\n\nconst Table_A_1_ranges = createRangeTable(\"221,13-1b,5f-,40-10,51-f,11-3,3-3,2-2,2-4,8,2,15,2d,28-8,88,48,27-,3-5,11-20,27-,8,28,3-5,12,18,b-a,1c-4,6-16,2-d,2-2,2,1b-4,17-9,8f-,10,f,1f-2,1c-34,33-14e,4,36-,13-,6-2,1a-f,4,9-,3-,17,8,2-2,5-,2,8-,3-,4-8,2-3,3,6-,16-6,2-,7-3,3-,17,8,3,3,3-,2,6-3,3-,4-a,5,2-6,10-b,4,8,2,4,17,8,3,6-,b,4,4-,2-e,2-4,b-10,4,9-,3-,17,8,3-,5-,9-2,3-,4-7,3-3,3,4-3,c-10,3,7-2,4,5-2,3,2,3-2,3-2,4-2,9,4-3,6-2,4,5-8,2-e,d-d,4,9,4,18,b,6-3,8,4,5-6,3-8,3-3,b-11,3,9,4,18,b,6-3,8,4,5-6,3-6,2,3-3,b-11,3,9,4,18,11-3,7-,4,5-8,2-7,3-3,b-11,3,13-2,19,a,2-,8-2,2-3,7,2,9-11,4-b,3b-3,1e-24,3,2-,3,2-,2-5,5,8,4,2,2-,3,e,4-,6,2,7-,b-,3-21,49,23-5,1c-3,9,25,10-,2-2f,23,6,3,8-2,5-5,1b-45,27-9,2a-,2-3,5b-4,45-4,53-5,8,40,2,5-,8,2,5-,28,2,5-,20,2,5-,8,2,5-,8,8,18,20,2,5-,8,28,14-5,1d-22,56-b,277-8,1e-2,52-e,e,8-a,18-8,15-b,e,4,3-b,5e-2,b-15,10,b-5,59-7,2b-555,9d-3,5b-5,17-,7-,27-,7-,9,2,2,2,20-,36,10,f-,7,14-,4,a,54-3,2-6,6-5,9-,1c-10,13-1d,1c-14,3c-,10-6,32-b,240-30,28-18,c-14,a0,115-,3,66-,b-76,5,5-,1d,24,2,5-2,2,8-,35-2,19,f-10,1d-3,311-37f,1b,5a-b,d7-19,d-3,41,57-,68-4,29-3,5f,29-37,2e-2,25-c,2c-2,4e-3,30,78-3,64-,20,19b7-49,51a7-59,48e-2,38-738,2ba5-5b,222f-,3c-94,8-b,6-4,1b,6,2,3,3,6d-20,16e-f,41-,37-7,2e-2,11-f,5-b,18-,b,14,5-3,6,88-,2,bf-2,7-,7-,7-,4-2,8,8-9,8-2ff,20,5-b,1c-b4,27-,27-cbb1,f7-9,28-2,b5-221,56,48,3-,2-,3-,5,d,2,5,3,42,5-,9,8,1d,5,6,2-2,8,153-3,123-3,33-27fd,a6da-5128,21f-5df,3-fffd,3-fffd,3-fffd,3-fffd,3-fffd,3-fffd,3-fffd,3-fffd,3-fffd,3-fffd,3-fffd,3,2-1d,61-ff7d\");\n\n// @TODO: Make this relative...\nconst Table_B_1_flags = \"ad,34f,1806,180b,180c,180d,200b,200c,200d,2060,feff\".split(\",\").map((v) => parseInt(v, 16));\n\nconst Table_B_2_ranges: Array = [\n { h: 25, s: 32, l: 65 },\n { h: 30, s: 32, e: [ 23 ], l: 127 },\n { h: 54, s: 1, e: [ 48 ], l: 64, d: 2 },\n { h: 14, s: 1, l: 57, d: 2 },\n { h: 44, s: 1, l: 17, d: 2 },\n { h: 10, s: 1, e: [ 2, 6, 8 ], l: 61, d: 2 },\n { h: 16, s: 1, l: 68, d: 2 },\n { h: 84, s: 1, e: [ 18, 24, 66 ], l: 19, d: 2 },\n { h: 26, s: 32, e: [ 17 ], l: 435 },\n { h: 22, s: 1, l: 71, d: 2 },\n { h: 15, s: 80, l: 40 },\n { h: 31, s: 32, l: 16 },\n { h: 32, s: 1, l: 80, d: 2 },\n { h: 52, s: 1, l: 42, d: 2 },\n { h: 12, s: 1, l: 55, d: 2 },\n { h: 40, s: 1, e: [ 38 ], l: 15, d: 2 },\n { h: 14, s: 1, l: 48, d: 2 },\n { h: 37, s: 48, l: 49 },\n { h: 148, s: 1, l: 6351, d: 2 },\n { h: 88, s: 1, l: 160, d: 2 },\n { h: 15, s: 16, l: 704 },\n { h: 25, s: 26, l: 854 },\n { h: 25, s: 32, l: 55915 },\n { h: 37, s: 40, l: 1247 },\n { h: 25, s: -119711, l: 53248 },\n { h: 25, s: -119763, l: 52 },\n { h: 25, s: -119815, l: 52 },\n { h: 25, s: -119867, e: [ 1, 4, 5, 7, 8, 11, 12, 17 ], l: 52 },\n { h: 25, s: -119919, l: 52 },\n { h: 24, s: -119971, e: [ 2, 7, 8, 17 ], l: 52 },\n { h: 24, s: -120023, e: [ 2, 7, 13, 15, 16, 17 ], l: 52 },\n { h: 25, s: -120075, l: 52 },\n { h: 25, s: -120127, l: 52 },\n { h: 25, s: -120179, l: 52 },\n { h: 25, s: -120231, l: 52 },\n { h: 25, s: -120283, l: 52 },\n { h: 25, s: -120335, l: 52 },\n { h: 24, s: -119543, e: [ 17 ], l: 56 },\n { h: 24, s: -119601, e: [ 17 ], l: 58 },\n { h: 24, s: -119659, e: [ 17 ], l: 58 },\n { h: 24, s: -119717, e: [ 17 ], l: 58 },\n { h: 24, s: -119775, e: [ 17 ], l: 58 }\n];\nconst Table_B_2_lut_abs = createTable(\"b5:3bc,c3:ff,7:73,2:253,5:254,3:256,1:257,5:259,1:25b,3:260,1:263,2:269,1:268,5:26f,1:272,2:275,7:280,3:283,5:288,3:28a,1:28b,5:292,3f:195,1:1bf,29:19e,125:3b9,8b:3b2,1:3b8,1:3c5,3:3c6,1:3c0,1a:3ba,1:3c1,1:3c3,2:3b8,1:3b5,1bc9:3b9,1c:1f76,1:1f77,f:1f7a,1:1f7b,d:1f78,1:1f79,1:1f7c,1:1f7d,107:63,5:25b,4:68,1:68,1:68,3:69,1:69,1:6c,3:6e,4:70,1:71,1:72,1:72,1:72,7:7a,2:3c9,2:7a,2:6b,1:e5,1:62,1:63,3:65,1:66,2:6d,b:3b3,1:3c0,6:64,1b574:3b8,1a:3c3,20:3b8,1a:3c3,20:3b8,1a:3c3,20:3b8,1a:3c3,20:3b8,1a:3c3\");\nconst Table_B_2_lut_rel = createTable(\"179:1,2:1,2:1,5:1,2:1,a:4f,a:1,8:1,2:1,2:1,3:1,5:1,3:1,4:1,2:1,3:1,4:1,8:2,1:1,2:2,1:1,2:2,27:2,195:26,2:25,1:25,1:25,2:40,2:3f,1:3f,33:1,11:-6,1:-9,1ac7:-3a,6d:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,9:-8,1:-8,1:-8,1:-8,1:-8,1:-8,b:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,9:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,9:-8,1:-8,1:-8,1:-8,1:-8,1:-8,c:-8,2:-8,2:-8,2:-8,9:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,49:-8,1:-8,1:-4a,1:-4a,d:-56,1:-56,1:-56,1:-56,d:-8,1:-8,f:-8,1:-8,3:-7\");\nconst Table_B_2_complex = createTable(\"df:00730073,51:00690307,19:02BC006E,a7:006A030C,18a:002003B9,16:03B903080301,20:03C503080301,1d7:05650582,190f:00680331,1:00740308,1:0077030A,1:0079030A,1:006102BE,b6:03C50313,2:03C503130300,2:03C503130301,2:03C503130342,2a:1F0003B9,1:1F0103B9,1:1F0203B9,1:1F0303B9,1:1F0403B9,1:1F0503B9,1:1F0603B9,1:1F0703B9,1:1F0003B9,1:1F0103B9,1:1F0203B9,1:1F0303B9,1:1F0403B9,1:1F0503B9,1:1F0603B9,1:1F0703B9,1:1F2003B9,1:1F2103B9,1:1F2203B9,1:1F2303B9,1:1F2403B9,1:1F2503B9,1:1F2603B9,1:1F2703B9,1:1F2003B9,1:1F2103B9,1:1F2203B9,1:1F2303B9,1:1F2403B9,1:1F2503B9,1:1F2603B9,1:1F2703B9,1:1F6003B9,1:1F6103B9,1:1F6203B9,1:1F6303B9,1:1F6403B9,1:1F6503B9,1:1F6603B9,1:1F6703B9,1:1F6003B9,1:1F6103B9,1:1F6203B9,1:1F6303B9,1:1F6403B9,1:1F6503B9,1:1F6603B9,1:1F6703B9,3:1F7003B9,1:03B103B9,1:03AC03B9,2:03B10342,1:03B1034203B9,5:03B103B9,6:1F7403B9,1:03B703B9,1:03AE03B9,2:03B70342,1:03B7034203B9,5:03B703B9,6:03B903080300,1:03B903080301,3:03B90342,1:03B903080342,b:03C503080300,1:03C503080301,1:03C10313,2:03C50342,1:03C503080342,b:1F7C03B9,1:03C903B9,1:03CE03B9,2:03C90342,1:03C9034203B9,5:03C903B9,ac:00720073,5b:00B00063,6:00B00066,d:006E006F,a:0073006D,1:00740065006C,1:0074006D,124f:006800700061,2:00610075,2:006F0076,b:00700061,1:006E0061,1:03BC0061,1:006D0061,1:006B0061,1:006B0062,1:006D0062,1:00670062,3:00700066,1:006E0066,1:03BC0066,4:0068007A,1:006B0068007A,1:006D0068007A,1:00670068007A,1:00740068007A,15:00700061,1:006B00700061,1:006D00700061,1:006700700061,8:00700076,1:006E0076,1:03BC0076,1:006D0076,1:006B0076,1:006D0076,1:00700077,1:006E0077,1:03BC0077,1:006D0077,1:006B0077,1:006D0077,1:006B03C9,1:006D03C9,2:00620071,3:00632215006B0067,1:0063006F002E,1:00640062,1:00670079,2:00680070,2:006B006B,1:006B006D,9:00700068,2:00700070006D,1:00700072,2:00730076,1:00770062,c723:00660066,1:00660069,1:0066006C,1:006600660069,1:00660066006C,1:00730074,1:00730074,d:05740576,1:05740565,1:0574056B,1:057E0576,1:0574056D\", bytes2);\n\nconst Table_C_ranges = createRangeTable(\"80-20,2a0-,39c,32,f71,18e,7f2-f,19-7,30-4,7-5,f81-b,5,a800-20ff,4d1-1f,110,fa-6,d174-7,2e84-,ffff-,ffff-,ffff-,ffff-,ffff-,ffff-,ffff-,ffff-,ffff-,ffff-,ffff-,ffff-,2,1f-5f,ff7f-20001\");\n\n\nfunction flatten(values: Array>): Array {\n return values.reduce((accum, value) => {\n value.forEach((value) => { accum.push(value); });\n return accum;\n }, [ ]);\n}\n\nexport function _nameprepTableA1(codepoint: number): boolean {\n return !!matchMap(codepoint, Table_A_1_ranges);\n}\n\nexport function _nameprepTableB2(codepoint: number): Array {\n let range = matchMap(codepoint, Table_B_2_ranges);\n if (range) { return [ codepoint + range.s ]; }\n\n let codes = Table_B_2_lut_abs[codepoint];\n if (codes) { return codes; }\n\n let shift = Table_B_2_lut_rel[codepoint];\n if (shift) { return [ codepoint + shift[0] ]; }\n\n let complex = Table_B_2_complex[codepoint];\n if (complex) { return complex; }\n\n return null;\n}\n\nexport function _nameprepTableC(codepoint: number): boolean {\n return !!matchMap(codepoint, Table_C_ranges);\n}\n\nexport function nameprep(value: string): string {\n\n // This allows platforms with incomplete normalize to bypass\n // it for very basic names which the built-in toLowerCase\n // will certainly handle correctly\n if (value.match(/^[a-z0-9-]*$/i) && value.length <= 59) { return value.toLowerCase(); }\n\n // Get the code points (keeping the current normalization)\n let codes = toUtf8CodePoints(value);\n\n codes = flatten(codes.map((code) => {\n // Substitute Table B.1 (Maps to Nothing)\n if (Table_B_1_flags.indexOf(code) >= 0) { return [ ]; }\n if (code >= 0xfe00 && code <= 0xfe0f) { return [ ]; }\n\n // Substitute Table B.2 (Case Folding)\n let codesTableB2 = _nameprepTableB2(code);\n if (codesTableB2) { return codesTableB2; }\n\n // No Substitution\n return [ code ];\n }));\n\n // Normalize using form KC\n codes = toUtf8CodePoints(_toUtf8String(codes), UnicodeNormalizationForm.NFKC);\n\n // Prohibit Tables C.1.2, C.2.2, C.3, C.4, C.5, C.6, C.7, C.8, C.9\n codes.forEach((code) => {\n if (_nameprepTableC(code)) {\n throw new Error(\"STRINGPREP_CONTAINS_PROHIBITED\");\n }\n });\n\n // Prohibit Unassigned Code Points (Table A.1)\n codes.forEach((code) => {\n if (_nameprepTableA1(code)) {\n throw new Error(\"STRINGPREP_CONTAINS_UNASSIGNED\");\n }\n });\n\n // IDNA extras\n let name = _toUtf8String(codes);\n\n // IDNA: 4.2.3.1\n if (name.substring(0, 1) === \"-\" || name.substring(2, 4) === \"--\" || name.substring(name.length - 1) === \"-\") {\n throw new Error(\"invalid hyphen\");\n }\n\n return name;\n}\n\n", "\"use strict\";\n\nimport { formatBytes32String, parseBytes32String } from \"./bytes32\";\nimport { nameprep } from \"./idna\";\nimport { _toEscapedUtf8String, toUtf8Bytes, toUtf8CodePoints, toUtf8String, UnicodeNormalizationForm, Utf8ErrorFunc, Utf8ErrorFuncs, Utf8ErrorReason } from \"./utf8\";\n\nexport {\n _toEscapedUtf8String,\n toUtf8Bytes,\n toUtf8CodePoints,\n toUtf8String,\n\n Utf8ErrorFunc,\n Utf8ErrorFuncs,\n Utf8ErrorReason,\n\n UnicodeNormalizationForm,\n\n formatBytes32String,\n parseBytes32String,\n\n nameprep\n}\n", "\"use strict\";\n\nimport { toUtf8Bytes, toUtf8String } from \"@ethersproject/strings\";\n\nimport { Reader, Writer } from \"./abstract-coder\";\nimport { DynamicBytesCoder } from \"./bytes\";\n\nexport class StringCoder extends DynamicBytesCoder {\n\n constructor(localName: string) {\n super(\"string\", localName);\n }\n\n defaultValue(): string {\n return \"\";\n }\n\n encode(writer: Writer, value: any): number {\n return super.encode(writer, toUtf8Bytes(value));\n }\n\n decode(reader: Reader): any {\n return toUtf8String(super.decode(reader));\n }\n}\n", "\"use strict\";\n\nimport { Coder, Reader, Writer } from \"./abstract-coder\";\nimport { pack, unpack } from \"./array\";\n\nexport class TupleCoder extends Coder {\n readonly coders: Array;\n\n constructor(coders: Array, localName: string) {\n let dynamic = false;\n const types: Array = [];\n coders.forEach((coder) => {\n if (coder.dynamic) { dynamic = true; }\n types.push(coder.type);\n });\n const type = (\"tuple(\" + types.join(\",\") + \")\");\n\n super(\"tuple\", type, localName, dynamic);\n this.coders = coders;\n }\n\n defaultValue(): any {\n const values: any = [ ];\n this.coders.forEach((coder) => {\n values.push(coder.defaultValue());\n });\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]) { accum[name] = 0; }\n accum[name]++;\n }\n return accum;\n }, <{ [ name: string ]: number }>{ });\n\n // Add named values\n this.coders.forEach((coder: Coder, index: number) => {\n let name = coder.localName;\n if (!name || uniqueNames[name] !== 1) { return; }\n\n if (name === \"length\") { name = \"_length\"; }\n\n if (values[name] != null) { return; }\n\n values[name] = values[index];\n });\n\n return Object.freeze(values);\n }\n\n encode(writer: Writer, value: Array | { [ name: string ]: any }): number {\n return pack(writer, this.coders, value);\n }\n\n decode(reader: Reader): any {\n return reader.coerce(this.name, unpack(reader, this.coders));\n }\n}\n\n", "\"use strict\";\n\n// See: https://github.com/ethereum/wiki/wiki/Ethereum-Contract-ABI\n\nimport { arrayify, BytesLike } from \"@ethersproject/bytes\";\nimport { defineReadOnly } from \"@ethersproject/properties\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\nimport { Coder, Reader, Result, Writer } from \"./coders/abstract-coder\";\nimport { AddressCoder } from \"./coders/address\";\nimport { ArrayCoder } from \"./coders/array\";\nimport { BooleanCoder } from \"./coders/boolean\";\nimport { BytesCoder } from \"./coders/bytes\";\nimport { FixedBytesCoder } from \"./coders/fixed-bytes\";\nimport { NullCoder } from \"./coders/null\";\nimport { NumberCoder } from \"./coders/number\";\nimport { StringCoder } from \"./coders/string\";\nimport { TupleCoder } from \"./coders/tuple\";\n\nimport { ParamType } from \"./fragments\";\n\n\nconst paramTypeBytes = new RegExp(/^bytes([0-9]*)$/);\nconst paramTypeNumber = new RegExp(/^(u?int)([0-9]*)$/);\n\n\nexport type CoerceFunc = (type: string, value: any) => any;\n\nexport class AbiCoder {\n readonly coerceFunc: CoerceFunc;\n\n constructor(coerceFunc?: CoerceFunc) {\n defineReadOnly(this, \"coerceFunc\", coerceFunc || null);\n }\n\n _getCoder(param: ParamType): Coder {\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 \"array\":\n return new ArrayCoder(this._getCoder(param.arrayChildren), param.arrayLength, param.name);\n case \"tuple\":\n return new TupleCoder((param.components || []).map((component) => {\n return this._getCoder(component);\n }), param.name);\n case \"\":\n return new NullCoder(param.name);\n }\n\n // u?int[0-9]*\n let match = param.type.match(paramTypeNumber);\n if (match) {\n let size = parseInt(match[2] || \"256\");\n if (size === 0 || size > 256 || (size % 8) !== 0) {\n logger.throwArgumentError(\"invalid \" + match[1] + \" bit length\", \"param\", param);\n }\n return new NumberCoder(size / 8, (match[1] === \"int\"), param.name);\n }\n\n // bytes[0-9]+\n match = param.type.match(paramTypeBytes);\n if (match) {\n let size = parseInt(match[1]);\n if (size === 0 || size > 32) {\n logger.throwArgumentError(\"invalid bytes length\", \"param\", param);\n }\n return new FixedBytesCoder(size, param.name);\n }\n\n return logger.throwArgumentError(\"invalid type\", \"type\", param.type);\n }\n\n _getWordSize(): number { return 32; }\n\n _getReader(data: Uint8Array, allowLoose?: boolean): Reader {\n return new Reader(data, this._getWordSize(), this.coerceFunc, allowLoose);\n }\n\n _getWriter(): Writer {\n return new Writer(this._getWordSize());\n }\n\n getDefaultValue(types: ReadonlyArray): Result {\n const coders: Array = types.map((type) => this._getCoder(ParamType.from(type)));\n const coder = new TupleCoder(coders, \"_\");\n return coder.defaultValue();\n }\n\n encode(types: ReadonlyArray, values: ReadonlyArray): string {\n if (types.length !== values.length) {\n logger.throwError(\"types/values length mismatch\", Logger.errors.INVALID_ARGUMENT, {\n count: { types: types.length, values: values.length },\n value: { types: types, values: values }\n });\n }\n\n const coders = types.map((type) => this._getCoder(ParamType.from(type)));\n const coder = (new TupleCoder(coders, \"_\"));\n\n const writer = this._getWriter();\n coder.encode(writer, values);\n return writer.data;\n }\n\n decode(types: ReadonlyArray, data: BytesLike, loose?: boolean): Result {\n const coders: Array = types.map((type) => this._getCoder(ParamType.from(type)));\n const coder = new TupleCoder(coders, \"_\");\n return coder.decode(this._getReader(arrayify(data), loose));\n }\n}\n\nexport const defaultAbiCoder: AbiCoder = new AbiCoder();\n\n", "import { keccak256 } from \"@ethersproject/keccak256\";\nimport { toUtf8Bytes } from \"@ethersproject/strings\";\n\nexport function id(text: string): string {\n return keccak256(toUtf8Bytes(text));\n}\n", "export const version = \"hash/5.7.0\";\n", "\"use strict\";\n\nimport { arrayify, BytesLike } from \"@ethersproject/bytes\";\n\n\nexport function decode(textData: string): Uint8Array {\n return arrayify(new Uint8Array(Buffer.from(textData, \"base64\")));\n};\n\nexport function encode(data: BytesLike): string {\n return Buffer.from(arrayify(data)).toString(\"base64\");\n}\n", "\"use strict\";\n\nexport { decode, encode } from \"./base64\";\n", "/**\n * MIT License\n *\n * Copyright (c) 2021 Andrew Raffensperger\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n *\n * This is a near carbon-copy of the original source (link below) with the\n * TypeScript typings added and a few tweaks to make it ES3-compatible.\n *\n * See: https://github.com/adraffy/ens-normalize.js\n */\n\nexport type Numbers = Uint8Array | Array;\nexport type NextFunc = (...args: Array) => number;\n\n// https://github.com/behnammodi/polyfill/blob/master/array.polyfill.js\nfunction flat(array: Array, depth?: number): Array {\n if (depth == null) { depth = 1; }\n const result: Array = [];\n\n const forEach = result.forEach;\n\n const flatDeep = function (arr: Array, depth: number) {\n forEach.call(arr, function (val: any) {\n if (depth > 0 && Array.isArray(val)) {\n flatDeep(val, depth - 1);\n } else {\n result.push(val);\n }\n });\n };\n\n flatDeep(array, depth);\n return result;\n}\n\nfunction fromEntries(array: Array<[T, U]>): Record {\n const result: Record = >{ };\n for (let i = 0; i < array.length; i++) {\n const value = array[i];\n result[value[0]] = value[1];\n }\n return result;\n}\n\nexport function decode_arithmetic(bytes: Numbers): Array {\n\tlet pos = 0;\n\tfunction u16() { return (bytes[pos++] << 8) | bytes[pos++]; }\n\t\n\t// decode the frequency table\n\tlet symbol_count = u16();\n\tlet total = 1;\n\tlet acc = [0, 1]; // first symbol has frequency 1\n\tfor (let i = 1; i < symbol_count; i++) {\n\t\tacc.push(total += u16());\n\t}\n\n\t// skip the sized-payload that the last 3 symbols index into\n\tlet skip = u16();\n\tlet pos_payload = pos;\n\tpos += skip;\n\n\tlet read_width = 0;\n\tlet read_buffer = 0; \n\tfunction read_bit() {\n\t\tif (read_width == 0) {\n\t\t\t// this will read beyond end of buffer\n\t\t\t// but (undefined|0) => zero pad\n\t\t\tread_buffer = (read_buffer << 8) | bytes[pos++];\n\t\t\tread_width = 8;\n\t\t}\n\t\treturn (read_buffer >> --read_width) & 1;\n\t}\n\n\tconst N = 31;\n\tconst FULL = 2**N;\n\tconst HALF = FULL >>> 1;\n\tconst QRTR = HALF >> 1;\n\tconst MASK = FULL - 1;\n\n\t// fill register\n\tlet register = 0;\n\tfor (let i = 0; i < N; i++) register = (register << 1) | read_bit();\n\n\tlet symbols = [];\n\tlet low = 0;\n\tlet range = FULL; // treat like a float\n\twhile (true) {\n\t\tlet value = Math.floor((((register - low + 1) * total) - 1) / range);\n\t\tlet start = 0;\n\t\tlet end = symbol_count;\n\t\twhile (end - start > 1) { // binary search\n\t\t\tlet mid = (start + end) >>> 1;\n\t\t\tif (value < acc[mid]) {\n\t\t\t\tend = mid;\n\t\t\t} else {\n\t\t\t\tstart = mid;\n\t\t\t}\n\t\t}\n\t\tif (start == 0) break; // first symbol is end mark\n\t\tsymbols.push(start);\n\t\tlet a = low + Math.floor(range * acc[start] / total);\n\t\tlet b = low + Math.floor(range * acc[start+1] / total) - 1\n\t\twhile (((a ^ b) & HALF) == 0) {\n\t\t\tregister = (register << 1) & MASK | read_bit();\n\t\t\ta = (a << 1) & MASK;\n\t\t\tb = (b << 1) & MASK | 1;\n\t\t}\n\t\twhile (a & ~b & QRTR) {\n\t\t\tregister = (register & HALF) | ((register << 1) & (MASK >>> 1)) | read_bit();\n\t\t\ta = (a << 1) ^ HALF;\n\t\t\tb = ((b ^ HALF) << 1) | HALF | 1;\n\t\t}\n\t\tlow = a;\n\t\trange = 1 + b - a;\n\t}\n\tlet offset = symbol_count - 4;\n\treturn symbols.map(x => { // index into payload\n\t\tswitch (x - offset) {\n\t\t\tcase 3: return offset + 0x10100 + ((bytes[pos_payload++] << 16) | (bytes[pos_payload++] << 8) | bytes[pos_payload++]);\n\t\t\tcase 2: return offset + 0x100 + ((bytes[pos_payload++] << 8) | bytes[pos_payload++]);\n\t\t\tcase 1: return offset + bytes[pos_payload++];\n\t\t\tdefault: return x - 1;\n\t\t}\n\t});\n}\t\n\n\n// returns an iterator which returns the next symbol\nexport function read_payload(v: Numbers): NextFunc {\n\tlet pos = 0;\n\treturn () => v[pos++];\n}\nexport function read_compressed_payload(bytes: Numbers): NextFunc {\n\treturn read_payload(decode_arithmetic(bytes));\n}\n\n// eg. [0,1,2,3...] => [0,-1,1,-2,...]\nexport function signed(i: number): number { \n\treturn (i & 1) ? (~i >> 1) : (i >> 1);\n}\n\nfunction read_counts(n: number, next: NextFunc): Array {\n\tlet v = Array(n);\n\tfor (let i = 0; i < n; i++) v[i] = 1 + next();\n\treturn v;\n}\n\nfunction read_ascending(n: number, next: NextFunc): Array {\n\tlet v = Array(n);\n\tfor (let i = 0, x = -1; i < n; i++) v[i] = x += 1 + next();\n\treturn v;\n}\n\nfunction read_deltas(n: number, next: NextFunc): Array {\n\tlet v = Array(n);\n\tfor (let i = 0, x = 0; i < n; i++) v[i] = x += signed(next());\n\treturn v;\n}\n\nexport function read_member_array(next: NextFunc, lookup?: Record) {\n let v = read_ascending(next(), next);\n let n = next();\n let vX = read_ascending(n, next);\n let vN = read_counts(n, next);\n for (let i = 0; i < n; i++) {\n for (let j = 0; j < vN[i]; j++) {\n v.push(vX[i] + j);\n }\n }\n return lookup ? v.map(x => lookup[x]) : v;\n}\n\n// returns array of \n// [x, ys] => single replacement rule\n// [x, ys, n, dx, dx] => linear map\nexport function read_mapped_map(next: NextFunc): Record> {\n\tlet ret = [];\n\twhile (true) {\n\t\tlet w = next();\n\t\tif (w == 0) break;\n\t\tret.push(read_linear_table(w, next));\n\t}\n\twhile (true) {\n\t\tlet w = next() - 1;\n\t\tif (w < 0) break;\n\t\tret.push(read_replacement_table(w, next));\n\t}\n\treturn fromEntries>(flat(ret));\n}\n\nexport function read_zero_terminated_array(next: NextFunc): Array {\n\tlet v = [];\n\twhile (true) {\n\t\tlet i = next();\n\t\tif (i == 0) break;\n\t\tv.push(i);\n\t}\n\treturn v;\n}\n\nfunction read_transposed(n: number, w: number, next: NextFunc): Array> {\n let m = Array(n).fill(undefined).map(() => []);\n for (let i = 0; i < w; i++) {\n read_deltas(n, next).forEach((x, j) => m[j].push(x));\n }\n return m;\n}\n\n\nfunction read_linear_table(w: number, next: NextFunc): Array>> {\n\tlet dx = 1 + next();\n\tlet dy = next();\n\tlet vN = read_zero_terminated_array(next);\n\tlet m = read_transposed(vN.length, 1+w, next);\n\treturn flat(m.map((v, i) => {\n\t const x = v[0], ys = v.slice(1);\n\t\t//let [x, ...ys] = v;\n\t\t//return Array(vN[i]).fill().map((_, j) => {\n\t\treturn Array(vN[i]).fill(undefined).map((_, j) => {\n\t\t\tlet j_dy = j * dy;\n\t\t\treturn [x + j * dx, ys.map(y => y + j_dy)];\n\t\t});\n\t}));\n}\n\nfunction read_replacement_table(w: number, next: NextFunc): Array<[ number, Array ]> {\n\tlet n = 1 + next();\n\tlet m = read_transposed(n, 1+w, next);\n\treturn m.map(v => [v[0], v.slice(1)]);\n}\n\nexport type Branch = {\n set: Set;\n node: Node;\n};\n\nexport type Node = {\n branches: Array;\n valid: number;\n fe0f: boolean;\n save: boolean;\n check: boolean;\n};\n\nexport function read_emoji_trie(next: NextFunc): Node {\n\tlet sorted = read_member_array(next).sort((a, b) => a - b);\n\treturn read();\n\tfunction read(): Node {\n\t\tlet branches = [];\n\t\twhile (true) {\n\t\t\tlet keys = read_member_array(next, sorted);\n\t\t\tif (keys.length == 0) break;\n\t\t\tbranches.push({set: new Set(keys), node: read()});\n\t\t}\n branches.sort((a, b) => b.set.size - a.set.size); // sort by likelihood\n \t\tlet temp = next();\n \t\tlet valid = temp % 3;\n \t\ttemp = (temp / 3)|0;\n \t\tlet fe0f = !!(temp & 1);\n \t\ttemp >>= 1;\n \t\tlet save = temp == 1;\n \t\tlet check = temp == 2;\n \t\treturn {branches, valid, fe0f, save, check};\n\t}\n}\n", "/**\n * MIT License\n *\n * Copyright (c) 2021 Andrew Raffensperger\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n *\n * This is a near carbon-copy of the original source (link below) with the\n * TypeScript typings added and a few tweaks to make it ES3-compatible.\n *\n * See: https://github.com/adraffy/ens-normalize.js\n */\n\nimport { decode } from \"@ethersproject/base64\";\n\nimport {read_compressed_payload} from './decoder.js';\n\nexport function getData(): () => number {\n return read_compressed_payload(decode('AEQF2AO2DEsA2wIrAGsBRABxAN8AZwCcAEwAqgA0AGwAUgByADcATAAVAFYAIQAyACEAKAAYAFgAGwAjABQAMAAmADIAFAAfABQAKwATACoADgAbAA8AHQAYABoAGQAxADgALAAoADwAEwA9ABMAGgARAA4ADwAWABMAFgAIAA8AHgQXBYMA5BHJAS8JtAYoAe4AExozi0UAH21tAaMnBT8CrnIyhrMDhRgDygIBUAEHcoFHUPe8AXBjAewCjgDQR8IICIcEcQLwATXCDgzvHwBmBoHNAqsBdBcUAykgDhAMShskMgo8AY8jqAQfAUAfHw8BDw87MioGlCIPBwZCa4ELatMAAMspJVgsDl8AIhckSg8XAHdvTwBcIQEiDT4OPhUqbyECAEoAS34Aej8Ybx83JgT/Xw8gHxZ/7w8RICxPHA9vBw+Pfw8PHwAPFv+fAsAvCc8vEr8ivwD/EQ8Bol8OEBa/A78hrwAPCU8vESNvvwWfHwNfAVoDHr+ZAAED34YaAdJPAK7PLwSEgDLHAGo1Pz8Pvx9fUwMrpb8O/58VTzAPIBoXIyQJNF8hpwIVAT8YGAUADDNBaX3RAMomJCg9EhUeA29MABsZBTMNJipjOhc19gcIDR8bBwQHEggCWi6DIgLuAQYA+BAFCha3A5XiAEsqM7UFFgFLhAMjFTMYE1Klnw74nRVBG/ASCm0BYRN/BrsU3VoWy+S0vV8LQx+vN8gF2AC2AK5EAWwApgYDKmAAroQ0NDQ0AT+OCg7wAAIHRAbpNgVcBV0APTA5BfbPFgMLzcYL/QqqA82eBALKCjQCjqYCht0/k2+OAsXQAoP3ASTKDgDw6ACKAUYCMpIKJpRaAE4A5womABzZvs0REEKiACIQAd5QdAECAj4Ywg/wGqY2AVgAYADYvAoCGAEubA0gvAY2ALAAbpbvqpyEAGAEpgQAJgAG7gAgAEACmghUFwCqAMpAINQIwC4DthRAAPcycKgApoIdABwBfCisABoATwBqASIAvhnSBP8aH/ECeAKXAq40NjgDBTwFYQU6AXs3oABgAD4XNgmcCY1eCl5tIFZeUqGgyoNHABgAEQAaABNwWQAmABMATPMa3T34ADldyprmM1M2XociUQgLzvwAXT3xABgAEQAaABNwIGFAnADD8AAgAD4BBJWzaCcIAIEBFMAWwKoAAdq9BWAF5wLQpALEtQAKUSGkahR4GnJM+gsAwCgeFAiUAECQ0BQuL8AAIAAAADKeIheclvFqQAAETr4iAMxIARMgAMIoHhQIAn0E0pDQFC4HhznoAAAAIAI2C0/4lvFqQAAETgBJJwYCAy4ABgYAFAA8MBKYEH4eRhTkAjYeFcgACAYAeABsOqyQ5gRwDayqugEgaIIAtgoACgDmEABmBAWGme5OBJJA2m4cDeoAmITWAXwrMgOgAGwBCh6CBXYF1Tzg1wKAAFdiuABRAFwAXQBsAG8AdgBrAHYAbwCEAHEwfxQBVE5TEQADVFhTBwBDANILAqcCzgLTApQCrQL6vAAMAL8APLhNBKkE6glGKTAU4Dr4N2EYEwBCkABKk8rHAbYBmwIoAiU4Ajf/Aq4CowCAANIChzgaNBsCsTgeODcFXrgClQKdAqQBiQGYAqsCsjTsNHsfNPA0ixsAWTWiOAMFPDQSNCk2BDZHNow2TTZUNhk28Jk9VzI3QkEoAoICoQKwAqcAQAAxBV4FXbS9BW47YkIXP1ciUqs05DS/FwABUwJW11e6nHuYZmSh/RAYA8oMKvZ8KASoUAJYWAJ6ILAsAZSoqjpgA0ocBIhmDgDWAAawRDQoAAcuAj5iAHABZiR2AIgiHgCaAU68ACxuHAG0ygM8MiZIAlgBdF4GagJqAPZOHAMuBgoATkYAsABiAHgAMLoGDPj0HpKEBAAOJgAuALggTAHWAeAMEDbd20Uege0ADwAWADkAQgA9OHd+2MUQZBBhBgNNDkxxPxUQArEPqwvqERoM1irQ090ANK4H8ANYB/ADWANYB/AH8ANYB/ADWANYA1gDWBwP8B/YxRBkD00EcgWTBZAE2wiIJk4RhgctCNdUEnQjHEwDSgEBIypJITuYMxAlR0wRTQgIATZHbKx9PQNMMbBU+pCnA9AyVDlxBgMedhKlAC8PeCE1uk6DekxxpQpQT7NX9wBFBgASqwAS5gBJDSgAUCwGPQBI4zTYABNGAE2bAE3KAExdGABKaAbgAFBXAFCOAFBJABI2SWdObALDOq0//QomCZhvwHdTBkIQHCemEPgMNAG2ATwN7kvZBPIGPATKH34ZGg/OlZ0Ipi3eDO4m5C6igFsj9iqEBe5L9TzeC05RaQ9aC2YJ5DpkgU8DIgEOIowK3g06CG4Q9ArKbA3mEUYHOgPWSZsApgcCCxIdNhW2JhFirQsKOXgG/Br3C5AmsBMqev0F1BoiBk4BKhsAANAu6IWxWjJcHU9gBgQLJiPIFKlQIQ0mQLh4SRocBxYlqgKSQ3FKiFE3HpQh9zw+DWcuFFF9B/Y8BhlQC4I8n0asRQ8R0z6OPUkiSkwtBDaALDAnjAnQD4YMunxzAVoJIgmyDHITMhEYN8YIOgcaLpclJxYIIkaWYJsE+KAD9BPSAwwFQAlCBxQDthwuEy8VKgUOgSXYAvQ21i60ApBWgQEYBcwPJh/gEFFH4Q7qCJwCZgOEJewALhUiABginAhEZABgj9lTBi7MCMhqbSN1A2gU6GIRdAeSDlgHqBw0FcAc4nDJXgyGCSiksAlcAXYJmgFgBOQICjVcjKEgQmdUi1kYnCBiQUBd/QIyDGYVoES+h3kCjA9sEhwBNgF0BzoNAgJ4Ee4RbBCWCOyGBTW2M/k6JgRQIYQgEgooA1BszwsoJvoM+WoBpBJjAw00PnfvZ6xgtyUX/gcaMsZBYSHyC5NPzgydGsIYQ1QvGeUHwAP0GvQn60FYBgADpAQUOk4z7wS+C2oIjAlAAEoOpBgH2BhrCnKM0QEyjAG4mgNYkoQCcJAGOAcMAGgMiAV65gAeAqgIpAAGANADWAA6Aq4HngAaAIZCAT4DKDABIuYCkAOUCDLMAZYwAfQqBBzEDBYA+DhuSwLDsgKAa2ajBd5ZAo8CSjYBTiYEBk9IUgOwcuIA3ABMBhTgSAEWrEvMG+REAeBwLADIAPwABjYHBkIBzgH0bgC4AWALMgmjtLYBTuoqAIQAFmwB2AKKAN4ANgCA8gFUAE4FWvoF1AJQSgESMhksWGIBvAMgATQBDgB6BsyOpsoIIARuB9QCEBwV4gLvLwe2AgMi4BPOQsYCvd9WADIXUu5eZwqoCqdeaAC0YTQHMnM9UQAPH6k+yAdy/BZIiQImSwBQ5gBQQzSaNTFWSTYBpwGqKQK38AFtqwBI/wK37gK3rQK3sAK6280C0gK33AK3zxAAUEIAUD9SklKDArekArw5AEQAzAHCO147WTteO1k7XjtZO147WTteO1kDmChYI03AVU0oJqkKbV9GYewMpw3VRMk6ShPcYFJgMxPJLbgUwhXPJVcZPhq9JwYl5VUKDwUt1GYxCC00dhe9AEApaYNCY4ceMQpMHOhTklT5LRwAskujM7ANrRsWREEFSHXuYisWDwojAmSCAmJDXE6wXDchAqH4AmiZAmYKAp+FOBwMAmY8AmYnBG8EgAN/FAN+kzkHOXgYOYM6JCQCbB4CMjc4CwJtyAJtr/CLADRoRiwBaADfAOIASwYHmQyOAP8MwwAOtgJ3MAJ2o0ACeUxEAni7Hl3cRa9G9AJ8QAJ6yQJ9CgJ88UgBSH5kJQAsFklZSlwWGErNAtECAtDNSygDiFADh+dExpEzAvKiXQQDA69Lz0wuJgTQTU1NsAKLQAKK2cIcCB5EaAa4Ao44Ao5dQZiCAo7aAo5deVG1UzYLUtVUhgKT/AKTDQDqAB1VH1WwVdEHLBwplocy4nhnRTw6ApegAu+zWCKpAFomApaQApZ9nQCqWa1aCoJOADwClrYClk9cRVzSApnMApllXMtdCBoCnJw5wzqeApwXAp+cAp65iwAeEDIrEAKd8gKekwC2PmE1YfACntQCoG8BqgKeoCACnk+mY8lkKCYsAiewAiZ/AqD8AqBN2AKmMAKlzwKoAAB+AqfzaH1osgAESmodatICrOQCrK8CrWgCrQMCVx4CVd0CseLYAx9PbJgCsr4OArLpGGzhbWRtSWADJc4Ctl08QG6RAylGArhfArlIFgK5K3hwN3DiAr0aAy2zAzISAr6JcgMDM3ICvhtzI3NQAsPMAsMFc4N0TDZGdOEDPKgDPJsDPcACxX0CxkgCxhGKAshqUgLIRQLJUALJLwJkngLd03h6YniveSZL0QMYpGcDAmH1GfSVJXsMXpNevBICz2wCz20wTFTT9BSgAMeuAs90ASrrA04TfkwGAtwoAtuLAtJQA1JdA1NgAQIDVY2AikABzBfuYUZ2AILPg44C2sgC2d+EEYRKpz0DhqYAMANkD4ZyWvoAVgLfZgLeuXR4AuIw7RUB8zEoAfScAfLTiALr9ALpcXoAAur6AurlAPpIAboC7ooC652Wq5cEAu5AA4XhmHpw4XGiAvMEAGoDjheZlAL3FAORbwOSiAL3mQL52gL4Z5odmqy8OJsfA52EAv77ARwAOp8dn7QDBY4DpmsDptoA0sYDBmuhiaIGCgMMSgFgASACtgNGAJwEgLpoBgC8BGzAEowcggCEDC6kdjoAJAM0C5IKRoABZCgiAIzw3AYBLACkfng9ogigkgNmWAN6AEQCvrkEVqTGAwCsBRbAA+4iQkMCHR072jI2PTbUNsk2RjY5NvA23TZKNiU3EDcZN5I+RTxDRTBCJkK5VBYKFhZfwQCWygU3AJBRHpu+OytgNxa61A40GMsYjsn7BVwFXQVcBV0FaAVdBVwFXQVcBV0FXAVdBVwFXUsaCNyKAK4AAQUHBwKU7oICoW1e7jAEzgPxA+YDwgCkBFDAwADABKzAAOxFLhitA1UFTDeyPkM+bj51QkRCuwTQWWQ8X+0AWBYzsACNA8xwzAGm7EZ/QisoCTAbLDs6fnLfb8H2GccsbgFw13M1HAVkBW/Jxsm9CNRO8E8FDD0FBQw9FkcClOYCoMFegpDfADgcMiA2AJQACB8AsigKAIzIEAJKeBIApY5yPZQIAKQiHb4fvj5BKSRPQrZCOz0oXyxgOywfKAnGbgMClQaCAkILXgdeCD9IIGUgQj5fPoY+dT52Ao5CM0dAX9BTVG9SDzFwWTQAbxBzJF/lOEIQQglCCkKJIAls5AcClQICoKPMODEFxhi6KSAbiyfIRrMjtCgdWCAkPlFBIitCsEJRzAbMAV/OEyQzDg0OAQQEJ36i328/Mk9AybDJsQlq3tDRApUKAkFzXf1d/j9uALYP6hCoFgCTGD8kPsFKQiobrm0+zj0KSD8kPnVCRBwMDyJRTHFgMTJa5rwXQiQ2YfI/JD7BMEJEHGINTw4TOFlIRzwJO0icMQpyPyQ+wzJCRBv6DVgnKB01NgUKj2bwYzMqCoBkznBgEF+zYDIocwRIX+NgHj4HICNfh2C4CwdwFWpTG/lgUhYGAwRfv2Ts8mAaXzVgml/XYIJfuWC4HI1gUF9pYJZgMR6ilQHMAOwLAlDRefC0in4AXAEJA6PjCwc0IamOANMMCAECRQDFNRTZBgd+CwQlRA+r6+gLBDEFBnwUBXgKATIArwAGRAAHA3cDdAN2A3kDdwN9A3oDdQN7A30DfAN4A3oDfQAYEAAlAtYASwMAUAFsAHcKAHcAmgB3AHUAdQB2AHVu8UgAygDAAHcAdQB1AHYAdQALCgB3AAsAmgB3AAsCOwB3AAtu8UgAygDAAHgKAJoAdwB3AHUAdQB2AHUAeAB1AHUAdgB1bvFIAMoAwAALCgCaAHcACwB3AAsCOwB3AAtu8UgAygDAAH4ACwGgALcBpwC6AahdAu0COwLtbvFIAMoAwAALCgCaAu0ACwLtAAsCOwLtAAtu8UgAygDAA24ACwNvAAu0VsQAAzsAABCkjUIpAAsAUIusOggWcgMeBxVsGwL67U/2HlzmWOEeOgALASvuAAseAfpKUpnpGgYJDCIZM6YyARUE9ThqAD5iXQgnAJYJPnOzw0ZAEZxEKsIAkA4DhAHnTAIDxxUDK0lxCQlPYgIvIQVYJQBVqE1GakUAKGYiDToSBA1EtAYAXQJYAIF8GgMHRyAAIAjOe9YncekRAA0KACUrjwE7Ayc6AAYWAqaiKG4McEcqANoN3+Mg9TwCBhIkuCny+JwUQ29L008JluRxu3K+oAdqiHOqFH0AG5SUIfUJ5SxCGfxdipRzqTmT4V5Zb+r1Uo4Vm+NqSSEl2mNvR2JhIa8SpYO6ntdwFXHCWTCK8f2+Hxo7uiG3drDycAuKIMP5bhi06ACnqArH1rz4Rqg//lm6SgJGEVbF9xJHISaR6HxqxSnkw6shDnelHKNEfGUXSJRJ1GcsmtJw25xrZMDK9gXSm1/YMkdX4/6NKYOdtk/NQ3/NnDASjTc3fPjIjW/5sVfVObX2oTDWkr1dF9f3kxBsD3/3aQO8hPfRz+e0uEiJqt1161griu7gz8hDDwtpy+F+BWtefnKHZPAxcZoWbnznhJpy0e842j36bcNzGnIEusgGX0a8ZxsnjcSsPDZ09yZ36fCQbriHeQ72JRMILNl6ePPf2HWoVwgWAm1fb3V2sAY0+B6rAXqSwPBgseVmoqsBTSrm91+XasMYYySI8eeRxH3ZvHkMz3BQ5aJ3iUVbYPNM3/7emRtjlsMgv/9VyTsyt/mK+8fgWeT6SoFaclXqn42dAIsvAarF5vNNWHzKSkKQ/8Hfk5ZWK7r9yliOsooyBjRhfkHP4Q2DkWXQi6FG/9r/IwbmkV5T7JSopHKn1pJwm9tb5Ot0oyN1Z2mPpKXHTxx2nlK08fKk1hEYA8WgVVWL5lgx0iTv+KdojJeU23ZDjmiubXOxVXJKKi2Wjuh2HLZOFLiSC7Tls5SMh4f+Pj6xUSrNjFqLGehRNB8lC0QSLNmkJJx/wSG3MnjE9T1CkPwJI0wH2lfzwETIiVqUxg0dfu5q39Gt+hwdcxkhhNvQ4TyrBceof3Mhs/IxFci1HmHr4FMZgXEEczPiGCx0HRwzAqDq2j9AVm1kwN0mRVLWLylgtoPNapF5cY4Y1wJh/e0BBwZj44YgZrDNqvD/9Hv7GFYdUQeDJuQ3EWI4HaKqavU1XjC/n41kT4L79kqGq0kLhdTZvgP3TA3fS0ozVz+5piZsoOtIvBUFoMKbNcmBL6YxxaUAusHB38XrS8dQMnQwJfUUkpRoGr5AUeWicvBTzyK9g77+yCkf5PAysL7r/JjcZgrbvRpMW9iyaxZvKO6ceZN2EwIxKwVFPuvFuiEPGCoagbMo+SpydLrXqBzNCDGFCrO/rkcwa2xhokQZ5CdZ0AsU3JfSqJ6n5I14YA+P/uAgfhPU84Tlw7cEFfp7AEE8ey4sP12PTt4Cods1GRgDOB5xvyiR5m+Bx8O5nBCNctU8BevfV5A08x6RHd5jcwPTMDSZJOedIZ1cGQ704lxbAzqZOP05ZxaOghzSdvFBHYqomATARyAADK4elP8Ly3IrUZKfWh23Xy20uBUmLS4Pfagu9+oyVa2iPgqRP3F2CTUsvJ7+RYnN8fFZbU/HVvxvcFFDKkiTqV5UBZ3Gz54JAKByi9hkKMZJvuGgcSYXFmw08UyoQyVdfTD1/dMkCHXcTGAKeROgArsvmRrQTLUOXioOHGK2QkjHuoYFgXciZoTJd6Fs5q1QX1G+p/e26hYsEf7QZD1nnIyl/SFkNtYYmmBhpBrxl9WbY0YpHWRuw2Ll/tj9mD8P4snVzJl4F9J+1arVeTb9E5r2ILH04qStjxQNwn3m4YNqxmaNbLAqW2TN6LidwuJRqS+NXbtqxoeDXpxeGWmxzSkWxjkyCkX4NQRme6q5SAcC+M7+9ETfA/EwrzQajKakCwYyeunP6ZFlxU2oMEn1Pz31zeStW74G406ZJFCl1wAXIoUKkWotYEpOuXB1uVNxJ63dpJEqfxBeptwIHNrPz8BllZoIcBoXwgfJ+8VAUnVPvRvexnw0Ma/WiGYuJO5y8QTvEYBigFmhUxY5RqzE8OcywN/8m4UYrlaniJO75XQ6KSo9+tWHlu+hMi0UVdiKQp7NelnoZUzNaIyBPVeOwK6GNp+FfHuPOoyhaWuNvTYFkvxscMQWDh+zeFCFkgwbXftiV23ywJ4+uwRqmg9k3KzwIQpzppt8DBBOMbrqwQM5Gb05sEwdKzMiAqOloaA/lr0KA+1pr0/+HiWoiIjHA/wir2nIuS3PeU/ji3O6ZwoxcR1SZ9FhtLC5S0FIzFhbBWcGVP/KpxOPSiUoAdWUpqKH++6Scz507iCcxYI6rdMBICPJZea7OcmeFw5mObJSiqpjg2UoWNIs+cFhyDSt6geV5qgi3FunmwwDoGSMgerFOZGX1m0dMCYo5XOruxO063dwENK9DbnVM9wYFREzh4vyU1WYYJ/LRRp6oxgjqP/X5a8/4Af6p6NWkQferzBmXme0zY/4nwMJm/wd1tIqSwGz+E3xPEAOoZlJit3XddD7/BT1pllzOx+8bmQtANQ/S6fZexc6qi3W+Q2xcmXTUhuS5mpHQRvcxZUN0S5+PL9lXWUAaRZhEH8hTdAcuNMMCuVNKTEGtSUKNi3O6KhSaTzck8csZ2vWRZ+d7mW8c4IKwXIYd25S/zIftPkwPzufjEvOHWVD1m+FjpDVUTV0DGDuHj6QnaEwLu/dEgdLQOg9E1Sro9XHJ8ykLAwtPu+pxqKDuFexqON1sKQm7rwbE1E68UCfA/erovrTCG+DBSNg0l4goDQvZN6uNlbyLpcZAwj2UclycvLpIZMgv4yRlpb3YuMftozorbcGVHt/VeDV3+Fdf1TP0iuaCsPi2G4XeGhsyF1ubVDxkoJhmniQ0/jSg/eYML9KLfnCFgISWkp91eauR3IQvED0nAPXK+6hPCYs+n3+hCZbiskmVMG2da+0EsZPonUeIY8EbfusQXjsK/eFDaosbPjEfQS0RKG7yj5GG69M7MeO1HmiUYocgygJHL6M1qzUDDwUSmr99V7Sdr2F3JjQAJY+F0yH33Iv3+C9M38eML7gTgmNu/r2bUMiPvpYbZ6v1/IaESirBHNa7mPKn4dEmYg7v/+HQgPN1G79jBQ1+soydfDC2r+h2Bl/KIc5KjMK7OH6nb1jLsNf0EHVe2KBiE51ox636uyG6Lho0t3J34L5QY/ilE3mikaF4HKXG1mG1rCevT1Vv6GavltxoQe/bMrpZvRggnBxSEPEeEzkEdOxTnPXHVjUYdw8JYvjB/o7Eegc3Ma+NUxLLnsK0kJlinPmUHzHGtrk5+CAbVzFOBqpyy3QVUnzTDfC/0XD94/okH+OB+i7g9lolhWIjSnfIb+Eq43ZXOWmwvjyV/qqD+t0e+7mTEM74qP/Ozt8nmC7mRpyu63OB4KnUzFc074SqoyPUAgM+/TJGFo6T44EHnQU4X4z6qannVqgw/U7zCpwcmXV1AubIrvOmkKHazJAR55ePjp5tLBsN8vAqs3NAHdcEHOR2xQ0lsNAFzSUuxFQCFYvXLZJdOj9p4fNq6p0HBGUik2YzaI4xySy91KzhQ0+q1hjxvImRwPRf76tChlRkhRCi74NXZ9qUNeIwP+s5p+3m5nwPdNOHgSLD79n7O9m1n1uDHiMntq4nkYwV5OZ1ENbXxFd4PgrlvavZsyUO4MqYlqqn1O8W/I1dEZq5dXhrbETLaZIbC2Kj/Aa/QM+fqUOHdf0tXAQ1huZ3cmWECWSXy/43j35+Mvq9xws7JKseriZ1pEWKc8qlzNrGPUGcVgOa9cPJYIJsGnJTAUsEcDOEVULO5x0rXBijc1lgXEzQQKhROf8zIV82w8eswc78YX11KYLWQRcgHNJElBxfXr72lS2RBSl07qTKorO2uUDZr3sFhYsvnhLZn0A94KRzJ/7DEGIAhW5ZWFpL8gEwu1aLA9MuWZzNwl8Oze9Y+bX+v9gywRVnoB5I/8kXTXU3141yRLYrIOOz6SOnyHNy4SieqzkBXharjfjqq1q6tklaEbA8Qfm2DaIPs7OTq/nvJBjKfO2H9bH2cCMh1+5gspfycu8f/cuuRmtDjyqZ7uCIMyjdV3a+p3fqmXsRx4C8lujezIFHnQiVTXLXuI1XrwN3+siYYj2HHTvESUx8DlOTXpak9qFRK+L3mgJ1WsD7F4cu1aJoFoYQnu+wGDMOjJM3kiBQWHCcvhJ/HRdxodOQp45YZaOTA22Nb4XKCVxqkbwMYFhzYQYIAnCW8FW14uf98jhUG2zrKhQQ0q0CEq0t5nXyvUyvR8DvD69LU+g3i+HFWQMQ8PqZuHD+sNKAV0+M6EJC0szq7rEr7B5bQ8BcNHzvDMc9eqB5ZCQdTf80Obn4uzjwpYU7SISdtV0QGa9D3Wrh2BDQtpBKxaNFV+/Cy2P/Sv+8s7Ud0Fd74X4+o/TNztWgETUapy+majNQ68Lq3ee0ZO48VEbTZYiH1Co4OlfWef82RWeyUXo7woM03PyapGfikTnQinoNq5z5veLpeMV3HCAMTaZmA1oGLAn7XS3XYsz+XK7VMQsc4XKrmDXOLU/pSXVNUq8dIqTba///3x6LiLS6xs1xuCAYSfcQ3+rQgmu7uvf3THKt5Ooo97TqcbRqxx7EASizaQCBQllG/rYxVapMLgtLbZS64w1MDBMXX+PQpBKNwqUKOf2DDRDUXQf9EhOS0Qj4nTmlA8dzSLz/G1d+Ud8MTy/6ghhdiLpeerGY/UlDOfiuqFsMUU5/UYlP+BAmgRLuNpvrUaLlVkrqDievNVEAwF+4CoM1MZTmjxjJMsKJq+u8Zd7tNCUFy6LiyYXRJQ4VyvEQFFaCGKsxIwQkk7EzZ6LTJq2hUuPhvAW+gQnSG6J+MszC+7QCRHcnqDdyNRJ6T9xyS87A6MDutbzKGvGktpbXqtzWtXb9HsfK2cBMomjN9a4y+TaJLnXxAeX/HWzmf4cR4vALt/P4w4qgKY04ml4ZdLOinFYS6cup3G/1ie4+t1eOnpBNlqGqs75ilzkT4+DsZQxNvaSKJ//6zIbbk/M7LOhFmRc/1R+kBtz7JFGdZm/COotIdvQoXpTqP/1uqEUmCb/QWoGLMwO5ANcHzxdY48IGP5+J+zKOTBFZ4Pid+GTM+Wq12MV/H86xEJptBa6T+p3kgpwLedManBHC2GgNrFpoN2xnrMz9WFWX/8/ygSBkavq2Uv7FdCsLEYLu9LLIvAU0bNRDtzYl+/vXmjpIvuJFYjmI0im6QEYqnIeMsNjXG4vIutIGHijeAG/9EDBozKV5cldkHbLxHh25vT+ZEzbhXlqvpzKJwcEgfNwLAKFeo0/pvEE10XDB+EXRTXtSzJozQKFFAJhMxYkVaCW+E9AL7tMeU8acxidHqzb6lX4691UsDpy/LLRmT+epgW56+5Cw8tB4kMUv6s9lh3eRKbyGs+H/4mQMaYzPTf2OOdokEn+zzgvoD3FqNKk8QqGAXVsqcGdXrT62fSPkR2vROFi68A6se86UxRUk4cajfPyCC4G5wDhD+zNq4jodQ4u4n/m37Lr36n4LIAAsVr02dFi9AiwA81MYs2rm4eDlDNmdMRvEKRHfBwW5DdMNp0jPFZMeARqF/wL4XBfd+EMLBfMzpH5GH6NaW+1vrvMdg+VxDzatk3MXgO3ro3P/DpcC6+Mo4MySJhKJhSR01SGGGp5hPWmrrUgrv3lDnP+HhcI3nt3YqBoVAVTBAQT5iuhTg8nvPtd8ZeYj6w1x6RqGUBrSku7+N1+BaasZvjTk64RoIDlL8brpEcJx3OmY7jLoZsswdtmhfC/G21llXhITOwmvRDDeTTPbyASOa16cF5/A1fZAidJpqju3wYAy9avPR1ya6eNp9K8XYrrtuxlqi+bDKwlfrYdR0RRiKRVTLOH85+ZY7XSmzRpfZBJjaTa81VDcJHpZnZnSQLASGYW9l51ZV/h7eVzTi3Hv6hUsgc/51AqJRTkpbFVLXXszoBL8nBX0u/0jBLT8nH+fJePbrwURT58OY+UieRjd1vs04w0VG5VN2U6MoGZkQzKN/ptz0Q366dxoTGmj7i1NQGHi9GgnquXFYdrCfZBmeb7s0T6yrdlZH5cZuwHFyIJ/kAtGsTg0xH5taAAq44BAk1CPk9KVVbqQzrCUiFdF/6gtlPQ8bHHc1G1W92MXGZ5HEHftyLYs8mbD/9xYRUWkHmlM0zC2ilJlnNgV4bfALpQghxOUoZL7VTqtCHIaQSXm+YUMnpkXybnV+A6xlm2CVy8fn0Xlm2XRa0+zzOa21JWWmixfiPMSCZ7qA4rS93VN3pkpF1s5TonQjisHf7iU9ZGvUPOAKZcR1pbeVf/Ul7OhepGCaId9wOtqo7pJ7yLcBZ0pFkOF28y4zEI/kcUNmutBHaQpBdNM8vjCS6HZRokkeo88TBAjGyG7SR+6vUgTcyK9Imalj0kuxz0wmK+byQU11AiJFk/ya5dNduRClcnU64yGu/ieWSeOos1t3ep+RPIWQ2pyTYVbZltTbsb7NiwSi3AV+8KLWk7LxCnfZUetEM8ThnsSoGH38/nyAwFguJp8FjvlHtcWZuU4hPva0rHfr0UhOOJ/F6vS62FW7KzkmRll2HEc7oUq4fyi5T70Vl7YVIfsPHUCdHesf9Lk7WNVWO75JDkYbMI8TOW8JKVtLY9d6UJRITO8oKo0xS+o99Yy04iniGHAaGj88kEWgwv0OrHdY/nr76DOGNS59hXCGXzTKUvDl9iKpLSWYN1lxIeyywdNpTkhay74w2jFT6NS8qkjo5CxA1yfSYwp6AJIZNKIeEK5PJAW7ORgWgwp0VgzYpqovMrWxbu+DGZ6Lhie1RAqpzm8VUzKJOH3mCzWuTOLsN3VT/dv2eeYe9UjbR8YTBsLz7q60VN1sU51k+um1f8JxD5pPhbhSC8rRaB454tmh6YUWrJI3+GWY0qeWioj/tbkYITOkJaeuGt4JrJvHA+l0Gu7kY7XOaa05alMnRWVCXqFgLIwSY4uF59Ue5SU4QKuc/HamDxbr0x6csCetXGoP7Qn1Bk/J9DsynO/UD6iZ1Hyrz+jit0hDCwi/E9OjgKTbB3ZQKQ/0ZOvevfNHG0NK4Aj3Cp7NpRk07RT1i/S0EL93Ag8GRgKI9CfpajKyK6+Jj/PI1KO5/85VAwz2AwzP8FTBb075IxCXv6T9RVvWT2tUaqxDS92zrGUbWzUYk9mSs82pECH+fkqsDt93VW++4YsR/dHCYcQSYTO/KaBMDj9LSD/J/+z20Kq8XvZUAIHtm9hRPP3ItbuAu2Hm5lkPs92pd7kCxgRs0xOVBnZ13ccdA0aunrwv9SdqElJRC3g+oCu+nXyCgmXUs9yMjTMAIHfxZV+aPKcZeUBWt057Xo85Ks1Ir5gzEHCWqZEhrLZMuF11ziGtFQUds/EESajhagzcKsxamcSZxGth4UII+adPhQkUnx2WyN+4YWR+r3f8MnkyGFuR4zjzxJS8WsQYR5PTyRaD9ixa6Mh741nBHbzfjXHskGDq179xaRNrCIB1z1xRfWfjqw2pHc1zk9xlPpL8sQWAIuETZZhbnmL54rceXVNRvUiKrrqIkeogsl0XXb17ylNb0f4GA9Wd44vffEG8FSZGHEL2fbaTGRcSiCeA8PmA/f6Hz8HCS76fXUHwgwkzSwlI71ekZ7Fapmlk/KC+Hs8hUcw3N2LN5LhkVYyizYFl/uPeVP5lsoJHhhfWvvSWruCUW1ZcJOeuTbrDgywJ/qG07gZJplnTvLcYdNaH0KMYOYMGX+rB4NGPFmQsNaIwlWrfCezxre8zXBrsMT+edVLbLqN1BqB76JH4BvZTqUIMfGwPGEn+EnmTV86fPBaYbFL3DFEhjB45CewkXEAtJxk4/Ms2pPXnaRqdky0HOYdcUcE2zcXq4vaIvW2/v0nHFJH2XXe22ueDmq/18XGtELSq85j9X8q0tcNSSKJIX8FTuJF/Pf8j5PhqG2u+osvsLxYrvvfeVJL+4tkcXcr9JV7v0ERmj/X6fM3NC4j6dS1+9Umr2oPavqiAydTZPLMNRGY23LO9zAVDly7jD+70G5TPPLdhRIl4WxcYjLnM+SNcJ26FOrkrISUtPObIz5Zb3AG612krnpy15RMW+1cQjlnWFI6538qky9axd2oJmHIHP08KyP0ubGO+TQNOYuv2uh17yCIvR8VcStw7o1g0NM60sk+8Tq7YfIBJrtp53GkvzXH7OA0p8/n/u1satf/VJhtR1l8Wa6Gmaug7haSpaCaYQax6ta0mkutlb+eAOSG1aobM81D9A4iS1RRlzBBoVX6tU1S6WE2N9ORY6DfeLRC4l9Rvr5h95XDWB2mR1d4WFudpsgVYwiTwT31ljskD8ZyDOlm5DkGh9N/UB/0AI5Xvb8ZBmai2hQ4BWMqFwYnzxwB26YHSOv9WgY3JXnvoN+2R4rqGVh/LLDMtpFP+SpMGJNWvbIl5SOodbCczW2RKleksPoUeGEzrjtKHVdtZA+kfqO+rVx/iclCqwoopepvJpSTDjT+b9GWylGRF8EDbGlw6eUzmJM95Ovoz+kwLX3c2fTjFeYEsE7vUZm3mqdGJuKh2w9/QGSaqRHs99aScGOdDqkFcACoqdbBoQqqjamhH6Q9ng39JCg3lrGJwd50Qk9ovnqBTr8MME7Ps2wiVfygUmPoUBJJfJWX5Nda0nuncbFkA=='));\n}\n\n", "/**\n * MIT License\n *\n * Copyright (c) 2021 Andrew Raffensperger\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n *\n * This is a near carbon-copy of the original source (link below) with the\n * TypeScript typings added and a few tweaks to make it ES3-compatible.\n *\n * See: https://github.com/adraffy/ens-normalize.js\n */\n\nimport { toUtf8CodePoints } from \"@ethersproject/strings\";\n\nimport { getData } from './include.js';\nconst r = getData();\n\nimport {read_member_array, read_mapped_map, read_emoji_trie} from './decoder.js';\n\n// @TODO: This should be lazily loaded\n\nconst VALID = new Set(read_member_array(r));\nconst IGNORED = new Set(read_member_array(r));\nconst MAPPED = read_mapped_map(r);\nconst EMOJI_ROOT = read_emoji_trie(r);\n//const NFC_CHECK = new Set(read_member_array(r, Array.from(VALID.values()).sort((a, b) => a - b)));\n\n//const STOP = 0x2E;\nconst HYPHEN = 0x2D;\nconst UNDERSCORE = 0x5F;\n\nfunction explode_cp(name: string): Array {\n return toUtf8CodePoints(name);\n}\n\nfunction filter_fe0f(cps: Array): Array {\n return cps.filter(cp => cp != 0xFE0F);\n}\n\nexport function ens_normalize_post_check(name: string): string {\n\tfor (let label of name.split('.')) {\n\t\tlet cps = explode_cp(label);\n\t\ttry {\n\t\t\tfor (let i = cps.lastIndexOf(UNDERSCORE) - 1; i >= 0; i--) {\n\t\t\t\tif (cps[i] !== UNDERSCORE) {\n\t\t\t\t\tthrow new Error(`underscore only allowed at start`);\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (cps.length >= 4 && cps.every(cp => cp < 0x80) && cps[2] === HYPHEN && cps[3] === HYPHEN) {\n\t\t\t\tthrow new Error(`invalid label extension`);\n\t\t\t}\n\t\t} catch (err) {\n\t\t\tthrow new Error(`Invalid label \"${label}\": ${err.message}`);\n\t\t}\n\t}\n\treturn name;\n}\n\nexport function ens_normalize(name: string): string {\n\treturn ens_normalize_post_check(normalize(name, filter_fe0f));\n}\n\nfunction normalize(name: string, emoji_filter: (a: Array) => Array): string {\n\tlet input = explode_cp(name).reverse(); // flip for pop\n\tlet output = [];\n\twhile (input.length) {\t\t\n\t\tlet emoji = consume_emoji_reversed(input);\n\t\tif (emoji) {\n\t\t\toutput.push(...emoji_filter(emoji));\n\t\t\tcontinue;\n\t\t}\n\t\tlet cp = input.pop();\n\t\tif (VALID.has(cp)) {\n\t\t\toutput.push(cp);\n\t\t\tcontinue;\n\t\t} \n\t\tif (IGNORED.has(cp)) {\n\t\t\tcontinue;\n\t\t}\n\t\tlet cps = MAPPED[cp];\n\t\tif (cps) {\n\t\t\toutput.push(...cps);\n\t\t\tcontinue;\n\t\t}\n\t\tthrow new Error(`Disallowed codepoint: 0x${cp.toString(16).toUpperCase()}`);\n\t}\n\treturn ens_normalize_post_check(nfc(String.fromCodePoint(...output)));\n}\n\nfunction nfc(s: string): string {\n return s.normalize('NFC');\n}\n\nfunction consume_emoji_reversed(cps: Array, eaten?: Array) {\n\tlet node = EMOJI_ROOT;\n\tlet emoji;\n\tlet saved;\n\tlet stack = [];\n\tlet pos = cps.length;\n\tif (eaten) eaten.length = 0; // clear input buffer (if needed)\n\twhile (pos) {\n\t\tlet cp = cps[--pos];\n\t\tnode = node.branches.find(x => x.set.has(cp))?.node;\n\t\tif (!node) break;\n\t\tif (node.save) { // remember\n\t\t\tsaved = cp;\n\t\t} else if (node.check) { // check exclusion\n\t\t\tif (cp === saved) break;\n\t\t}\n\t\tstack.push(cp);\n\t\tif (node.fe0f) {\n\t\t\tstack.push(0xFE0F);\n\t\t\tif (pos > 0 && cps[pos - 1] == 0xFE0F) pos--; // consume optional FE0F\n\t\t}\n\t\tif (node.valid) { // this is a valid emoji (so far)\n\t\t\temoji = stack.slice(); // copy stack\n\t\t\tif (node.valid == 2) emoji.splice(1, 1); // delete FE0F at position 1 (RGI ZWJ don't follow spec!)\n\t\t\tif (eaten) eaten.push(...cps.slice(pos).reverse()); // copy input (if needed)\n\t\t\tcps.length = pos; // truncate\n\t\t}\n\t}\n\treturn emoji;\n}\n", "import { concat, hexlify } from \"@ethersproject/bytes\";\nimport { toUtf8Bytes, toUtf8String } from \"@ethersproject/strings\";\nimport { keccak256 } from \"@ethersproject/keccak256\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\nimport { ens_normalize } from \"./ens-normalize/lib\";\n\nconst Zeros = new Uint8Array(32);\nZeros.fill(0);\n\nfunction checkComponent(comp: Uint8Array): Uint8Array {\n if (comp.length === 0) { throw new Error(\"invalid ENS name; empty component\"); }\n return comp;\n}\n\nfunction ensNameSplit(name: string): Array {\n const bytes = toUtf8Bytes(ens_normalize(name));\n const comps: Array = [ ];\n\n if (name.length === 0) { return comps; }\n\n let last = 0;\n for (let i = 0; i < bytes.length; i++) {\n const d = bytes[i];\n\n // A separator (i.e. \".\"); copy this component\n if (d === 0x2e) {\n comps.push(checkComponent(bytes.slice(last, i)));\n last = i + 1;\n }\n }\n\n // There was a stray separator at the end of the name\n if (last >= bytes.length) { throw new Error(\"invalid ENS name; empty component\"); }\n\n comps.push(checkComponent(bytes.slice(last)));\n return comps;\n}\n\nexport function ensNormalize(name: string): string {\n return ensNameSplit(name).map((comp) => toUtf8String(comp)).join(\".\");\n}\n\nexport function isValidName(name: string): boolean {\n try {\n return (ensNameSplit(name).length !== 0);\n } catch (error) { }\n return false;\n}\n\nexport function namehash(name: string): string {\n /* istanbul ignore if */\n if (typeof(name) !== \"string\") {\n logger.throwArgumentError(\"invalid ENS name; not a string\", \"name\", name);\n }\n\n let result: string | Uint8Array = Zeros;\n\n const comps = ensNameSplit(name);\n while (comps.length) {\n result = keccak256(concat([result, keccak256(comps.pop())]));\n }\n\n return hexlify(result);\n}\n\nexport function dnsEncode(name: string): string {\n return hexlify(concat(ensNameSplit(name).map((comp) => {\n // DNS does not allow components over 63 bytes in length\n if (comp.length > 63) {\n throw new Error(\"invalid DNS encoded entry; length exceeds 63 bytes\");\n }\n\n const bytes = new Uint8Array(comp.length + 1);\n bytes.set(comp, 1);\n bytes[0] = bytes.length - 1;\n return bytes;\n\n }))) + \"00\";\n}\n", "import { Bytes, concat } from \"@ethersproject/bytes\";\nimport { keccak256 } from \"@ethersproject/keccak256\";\nimport { toUtf8Bytes } from \"@ethersproject/strings\";\n\nexport const messagePrefix = \"\\x19Ethereum Signed Message:\\n\";\n\nexport function hashMessage(message: Bytes | string): string {\n if (typeof(message) === \"string\") { message = toUtf8Bytes(message); }\n return keccak256(concat([\n toUtf8Bytes(messagePrefix),\n toUtf8Bytes(String(message.length)),\n message\n ]));\n}\n\n", "import { TypedDataDomain, TypedDataField } from \"@ethersproject/abstract-signer\";\nimport { getAddress } from \"@ethersproject/address\";\nimport { BigNumber, BigNumberish } from \"@ethersproject/bignumber\";\nimport { arrayify, BytesLike, hexConcat, hexlify, hexZeroPad, isHexString } from \"@ethersproject/bytes\";\nimport { keccak256 } from \"@ethersproject/keccak256\";\nimport { deepCopy, defineReadOnly, shallowCopy } from \"@ethersproject/properties\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\nimport { id } from \"./id\";\n\nconst padding = new Uint8Array(32);\npadding.fill(0);\n\nconst NegativeOne: BigNumber = BigNumber.from(-1);\nconst Zero: BigNumber = BigNumber.from(0);\nconst One: BigNumber = BigNumber.from(1);\nconst MaxUint256: BigNumber = BigNumber.from(\"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\");\n\nfunction hexPadRight(value: BytesLike) {\n const bytes = arrayify(value);\n const padOffset = bytes.length % 32\n if (padOffset) {\n return hexConcat([ bytes, padding.slice(padOffset) ]);\n }\n return hexlify(bytes);\n}\n\nconst hexTrue = hexZeroPad(One.toHexString(), 32);\nconst hexFalse = hexZeroPad(Zero.toHexString(), 32);\n\nconst domainFieldTypes: Record = {\n name: \"string\",\n version: \"string\",\n chainId: \"uint256\",\n verifyingContract: \"address\",\n salt: \"bytes32\"\n};\n\nconst domainFieldNames: Array = [\n \"name\", \"version\", \"chainId\", \"verifyingContract\", \"salt\"\n];\n\nfunction checkString(key: string): (value: any) => string {\n return function (value: any){\n if (typeof(value) !== \"string\") {\n logger.throwArgumentError(`invalid domain value for ${ JSON.stringify(key) }`, `domain.${ key }`, value);\n }\n return value;\n }\n}\n\nconst domainChecks: Record any> = {\n name: checkString(\"name\"),\n version: checkString(\"version\"),\n chainId: function(value: any) {\n try {\n return BigNumber.from(value).toString()\n } catch (error) { }\n return logger.throwArgumentError(`invalid domain value for \"chainId\"`, \"domain.chainId\", value);\n },\n verifyingContract: function(value: any) {\n try {\n return getAddress(value).toLowerCase();\n } catch (error) { }\n return logger.throwArgumentError(`invalid domain value \"verifyingContract\"`, \"domain.verifyingContract\", value);\n },\n salt: function(value: any) {\n try {\n const bytes = arrayify(value);\n if (bytes.length !== 32) { throw new Error(\"bad length\"); }\n return hexlify(bytes);\n } catch (error) { }\n return logger.throwArgumentError(`invalid domain value \"salt\"`, \"domain.salt\", value);\n }\n}\n\nfunction getBaseEncoder(type: string): (value: any) => string {\n // intXX and uintXX\n {\n const match = type.match(/^(u?)int(\\d*)$/);\n if (match) {\n const signed = (match[1] === \"\");\n\n const width = parseInt(match[2] || \"256\");\n if (width % 8 !== 0 || width > 256 || (match[2] && match[2] !== String(width))) {\n logger.throwArgumentError(\"invalid numeric width\", \"type\", type);\n }\n\n const boundsUpper = MaxUint256.mask(signed ? (width - 1): width);\n const boundsLower = signed ? boundsUpper.add(One).mul(NegativeOne): Zero;\n\n return function(value: BigNumberish) {\n const v = BigNumber.from(value);\n\n if (v.lt(boundsLower) || v.gt(boundsUpper)) {\n logger.throwArgumentError(`value out-of-bounds for ${ type }`, \"value\", value);\n }\n\n return hexZeroPad(v.toTwos(256).toHexString(), 32);\n };\n }\n }\n\n // bytesXX\n {\n const match = type.match(/^bytes(\\d+)$/);\n if (match) {\n const width = parseInt(match[1]);\n if (width === 0 || width > 32 || match[1] !== String(width)) {\n logger.throwArgumentError(\"invalid bytes width\", \"type\", type);\n }\n\n return function(value: BytesLike) {\n const bytes = arrayify(value);\n if (bytes.length !== width) {\n logger.throwArgumentError(`invalid length for ${ type }`, \"value\", value);\n }\n return hexPadRight(value);\n };\n }\n }\n\n switch (type) {\n case \"address\": return function(value: string) {\n return hexZeroPad(getAddress(value), 32);\n };\n case \"bool\": return function(value: boolean) {\n return ((!value) ? hexFalse: hexTrue);\n };\n case \"bytes\": return function(value: BytesLike) {\n return keccak256(value);\n };\n case \"string\": return function(value: string) {\n return id(value);\n };\n }\n\n return null;\n}\n\nfunction encodeType(name: string, fields: Array): string {\n return `${ name }(${ fields.map(({ name, type }) => (type + \" \" + name)).join(\",\") })`;\n}\n\nexport class TypedDataEncoder {\n readonly primaryType: string;\n readonly types: Record>;\n\n readonly _encoderCache: Record string>;\n readonly _types: Record;\n\n constructor(types: Record>) {\n defineReadOnly(this, \"types\", Object.freeze(deepCopy(types)));\n\n defineReadOnly(this, \"_encoderCache\", { });\n defineReadOnly(this, \"_types\", { });\n\n // Link struct types to their direct child structs\n const links: Record> = { };\n\n // Link structs to structs which contain them as a child\n const parents: Record> = { };\n\n // Link all subtypes within a given struct\n const subtypes: Record> = { };\n\n Object.keys(types).forEach((type) => {\n links[type] = { };\n parents[type] = [ ];\n subtypes[type] = { }\n });\n\n for (const name in types) {\n\n const uniqueNames: Record = { };\n\n types[name].forEach((field) => {\n\n // Check each field has a unique name\n if (uniqueNames[field.name]) {\n logger.throwArgumentError(`duplicate variable name ${ JSON.stringify(field.name) } in ${ JSON.stringify(name) }`, \"types\", types);\n }\n uniqueNames[field.name] = true;\n\n // Get the base type (drop any array specifiers)\n const baseType = field.type.match(/^([^\\x5b]*)(\\x5b|$)/)[1];\n if (baseType === name) {\n logger.throwArgumentError(`circular type reference to ${ JSON.stringify(baseType) }`, \"types\", types);\n }\n\n // Is this a base encoding type?\n const encoder = getBaseEncoder(baseType);\n if (encoder) { return ;}\n\n if (!parents[baseType]) {\n logger.throwArgumentError(`unknown type ${ JSON.stringify(baseType) }`, \"types\", types);\n }\n\n // Add linkage\n parents[baseType].push(name);\n links[name][baseType] = true;\n });\n }\n\n // Deduce the primary type\n const primaryTypes = Object.keys(parents).filter((n) => (parents[n].length === 0));\n\n if (primaryTypes.length === 0) {\n logger.throwArgumentError(\"missing primary type\", \"types\", types);\n } else if (primaryTypes.length > 1) {\n logger.throwArgumentError(`ambiguous primary types or unused types: ${ primaryTypes.map((t) => (JSON.stringify(t))).join(\", \") }`, \"types\", types);\n }\n\n defineReadOnly(this, \"primaryType\", primaryTypes[0]);\n\n // Check for circular type references\n function checkCircular(type: string, found: Record) {\n if (found[type]) {\n logger.throwArgumentError(`circular type reference to ${ JSON.stringify(type) }`, \"types\", types);\n }\n\n found[type] = true;\n\n Object.keys(links[type]).forEach((child) => {\n if (!parents[child]) { return; }\n\n // Recursively check children\n checkCircular(child, found);\n\n // Mark all ancestors as having this decendant\n Object.keys(found).forEach((subtype) => {\n subtypes[subtype][child] = true;\n });\n });\n\n delete found[type];\n }\n checkCircular(this.primaryType, { });\n\n // Compute each fully describe type\n for (const name in subtypes) {\n const st = Object.keys(subtypes[name]);\n st.sort();\n this._types[name] = encodeType(name, types[name]) + st.map((t) => encodeType(t, types[t])).join(\"\");\n }\n }\n\n getEncoder(type: string): (value: any) => string {\n let encoder = this._encoderCache[type];\n if (!encoder) {\n encoder = this._encoderCache[type] = this._getEncoder(type);\n }\n return encoder;\n }\n\n _getEncoder(type: string): (value: any) => string {\n\n // Basic encoder type (address, bool, uint256, etc)\n {\n const encoder = getBaseEncoder(type);\n if (encoder) { return encoder; }\n }\n\n // Array\n const match = type.match(/^(.*)(\\x5b(\\d*)\\x5d)$/);\n if (match) {\n const subtype = match[1];\n const subEncoder = this.getEncoder(subtype);\n const length = parseInt(match[3]);\n return (value: Array) => {\n if (length >= 0 && value.length !== length) {\n logger.throwArgumentError(\"array length mismatch; expected length ${ arrayLength }\", \"value\", value);\n }\n\n let result = value.map(subEncoder);\n if (this._types[subtype]) {\n result = result.map(keccak256);\n }\n\n return keccak256(hexConcat(result));\n };\n }\n\n // Struct\n const fields = this.types[type];\n if (fields) {\n const encodedType = id(this._types[type]);\n return (value: Record) => {\n const values = fields.map(({ name, type }) => {\n const result = this.getEncoder(type)(value[name]);\n if (this._types[type]) { return keccak256(result); }\n return result;\n });\n values.unshift(encodedType);\n return hexConcat(values);\n }\n }\n\n return logger.throwArgumentError(`unknown type: ${ type }`, \"type\", type);\n }\n\n encodeType(name: string): string {\n const result = this._types[name];\n if (!result) {\n logger.throwArgumentError(`unknown type: ${ JSON.stringify(name) }`, \"name\", name);\n }\n return result;\n }\n\n encodeData(type: string, value: any): string {\n return this.getEncoder(type)(value);\n }\n\n hashStruct(name: string, value: Record): string {\n return keccak256(this.encodeData(name, value));\n }\n\n encode(value: Record): string {\n return this.encodeData(this.primaryType, value);\n }\n\n hash(value: Record): string {\n return this.hashStruct(this.primaryType, value);\n }\n\n _visit(type: string, value: any, callback: (type: string, data: any) => any): any {\n // Basic encoder type (address, bool, uint256, etc)\n {\n const encoder = getBaseEncoder(type);\n if (encoder) { return callback(type, value); }\n }\n\n // Array\n const match = type.match(/^(.*)(\\x5b(\\d*)\\x5d)$/);\n if (match) {\n const subtype = match[1];\n const length = parseInt(match[3]);\n if (length >= 0 && value.length !== length) {\n logger.throwArgumentError(\"array length mismatch; expected length ${ arrayLength }\", \"value\", value);\n }\n return value.map((v: any) => this._visit(subtype, v, callback));\n }\n\n // Struct\n const fields = this.types[type];\n if (fields) {\n return fields.reduce((accum, { name, type }) => {\n accum[name] = this._visit(type, value[name], callback);\n return accum;\n }, >{});\n }\n\n return logger.throwArgumentError(`unknown type: ${ type }`, \"type\", type);\n }\n\n visit(value: Record, callback: (type: string, data: any) => any): any {\n return this._visit(this.primaryType, value, callback);\n }\n\n static from(types: Record>): TypedDataEncoder {\n return new TypedDataEncoder(types);\n }\n\n static getPrimaryType(types: Record>): string {\n return TypedDataEncoder.from(types).primaryType;\n }\n\n static hashStruct(name: string, types: Record>, value: Record): string {\n return TypedDataEncoder.from(types).hashStruct(name, value);\n }\n\n static hashDomain(domain: TypedDataDomain): string {\n const domainFields: Array = [ ];\n for (const name in domain) {\n const type = domainFieldTypes[name];\n if (!type) {\n logger.throwArgumentError(`invalid typed-data domain key: ${ JSON.stringify(name) }`, \"domain\", domain);\n }\n domainFields.push({ name, type });\n }\n\n domainFields.sort((a, b) => {\n return domainFieldNames.indexOf(a.name) - domainFieldNames.indexOf(b.name);\n });\n\n return TypedDataEncoder.hashStruct(\"EIP712Domain\", { EIP712Domain: domainFields }, domain);\n }\n\n static encode(domain: TypedDataDomain, types: Record>, value: Record): string {\n return hexConcat([\n \"0x1901\",\n TypedDataEncoder.hashDomain(domain),\n TypedDataEncoder.from(types).hash(value)\n ]);\n }\n\n static hash(domain: TypedDataDomain, types: Record>, value: Record): string {\n return keccak256(TypedDataEncoder.encode(domain, types, value));\n }\n\n // Replaces all address types with ENS names with their looked up address\n static async resolveNames(domain: TypedDataDomain, types: Record>, value: Record, resolveName: (name: string) => Promise): Promise<{ domain: TypedDataDomain, value: any }> {\n // Make a copy to isolate it from the object passed in\n domain = shallowCopy(domain);\n\n // Look up all ENS names\n const ensCache: Record = { };\n\n // Do we need to look up the domain's verifyingContract?\n if (domain.verifyingContract && !isHexString(domain.verifyingContract, 20)) {\n ensCache[domain.verifyingContract] = \"0x\";\n }\n\n // We are going to use the encoder to visit all the base values\n const encoder = TypedDataEncoder.from(types);\n\n // Get a list of all the addresses\n encoder.visit(value, (type: string, value: any) => {\n if (type === \"address\" && !isHexString(value, 20)) {\n ensCache[value] = \"0x\";\n }\n return value;\n });\n\n // Lookup each name\n for (const name in ensCache) {\n ensCache[name] = await resolveName(name);\n }\n\n // Replace the domain verifyingContract if needed\n if (domain.verifyingContract && ensCache[domain.verifyingContract]) {\n domain.verifyingContract = ensCache[domain.verifyingContract];\n }\n\n // Replace all ENS names with their address\n value = encoder.visit(value, (type: string, value: any) => {\n if (type === \"address\" && ensCache[value]) { return ensCache[value]; }\n return value;\n });\n\n return { domain, value };\n }\n\n static getPayload(domain: TypedDataDomain, types: Record>, value: Record): any {\n // Validate the domain fields\n TypedDataEncoder.hashDomain(domain);\n\n // Derive the EIP712Domain Struct reference type\n const domainValues: Record = { };\n const domainTypes: Array<{ name: string, type:string }> = [ ];\n\n domainFieldNames.forEach((name) => {\n const value = (domain)[name];\n if (value == null) { return; }\n domainValues[name] = domainChecks[name](value);\n domainTypes.push({ name, type: domainFieldTypes[name] });\n });\n\n const encoder = TypedDataEncoder.from(types);\n\n const typesWithDomain = shallowCopy(types);\n if (typesWithDomain.EIP712Domain) {\n logger.throwArgumentError(\"types must not contain EIP712Domain type\", \"types.EIP712Domain\", types);\n } else {\n typesWithDomain.EIP712Domain = domainTypes;\n }\n\n // Validate the data structures and types\n encoder.encode(value);\n\n return {\n types: typesWithDomain,\n domain: domainValues,\n primaryType: encoder.primaryType,\n message: encoder.visit(value, (type: string, value: any) => {\n\n // bytes\n if (type.match(/^bytes(\\d*)/)) {\n return hexlify(arrayify(value));\n }\n\n // uint or int\n if (type.match(/^u?int/)) {\n return BigNumber.from(value).toString();\n }\n\n switch (type) {\n case \"address\":\n return value.toLowerCase();\n case \"bool\":\n return !!value;\n case \"string\":\n if (typeof(value) !== \"string\") {\n logger.throwArgumentError(`invalid string`, \"value\", value);\n }\n return value;\n }\n\n return logger.throwArgumentError(\"unsupported type\", \"type\", type);\n })\n };\n }\n}\n\n", "\"use strict\";\n\nimport { id } from \"./id\";\nimport { dnsEncode, isValidName, namehash } from \"./namehash\";\nimport { hashMessage, messagePrefix } from \"./message\";\n\nimport { ensNormalize } from \"./namehash\";\n\nimport { TypedDataEncoder as _TypedDataEncoder } from \"./typed-data\";\n\nexport {\n id,\n\n dnsEncode,\n namehash,\n isValidName,\n\n ensNormalize,\n\n messagePrefix,\n hashMessage,\n\n _TypedDataEncoder,\n}\n", "\"use strict\";\n\nimport { getAddress } from \"@ethersproject/address\";\nimport { BigNumber, BigNumberish } from \"@ethersproject/bignumber\";\nimport { arrayify, BytesLike, concat, hexDataSlice, hexlify, hexZeroPad, isHexString } from \"@ethersproject/bytes\";\nimport { id } from \"@ethersproject/hash\";\nimport { keccak256 } from \"@ethersproject/keccak256\"\nimport { defineReadOnly, Description, getStatic } from \"@ethersproject/properties\";\n\nimport { AbiCoder, defaultAbiCoder } from \"./abi-coder\";\nimport { checkResultErrors, Result } from \"./coders/abstract-coder\";\nimport { ConstructorFragment, ErrorFragment, EventFragment, FormatTypes, Fragment, FunctionFragment, JsonFragment, ParamType } from \"./fragments\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\nexport { checkResultErrors, Result };\n\nexport class LogDescription extends Description {\n readonly eventFragment: EventFragment;\n readonly name: string;\n readonly signature: string;\n readonly topic: string;\n readonly args: Result\n}\n\nexport class TransactionDescription extends Description {\n readonly functionFragment: FunctionFragment;\n readonly name: string;\n readonly args: Result;\n readonly signature: string;\n readonly sighash: string;\n readonly value: BigNumber;\n}\n\nexport class ErrorDescription extends Description {\n readonly errorFragment: ErrorFragment;\n readonly name: string;\n readonly args: Result;\n readonly signature: string;\n readonly sighash: string;\n}\n\nexport class Indexed extends Description {\n readonly hash: string;\n readonly _isIndexed: boolean;\n\n static isIndexed(value: any): value is Indexed {\n return !!(value && value._isIndexed);\n }\n}\n\nconst BuiltinErrors: Record, name: string, reason?: boolean }> = {\n \"0x08c379a0\": { signature: \"Error(string)\", name: \"Error\", inputs: [ \"string\" ], reason: true },\n \"0x4e487b71\": { signature: \"Panic(uint256)\", name: \"Panic\", inputs: [ \"uint256\" ] }\n}\n\nfunction wrapAccessError(property: string, error: Error): Error {\n const wrap = new Error(`deferred error during ABI decoding triggered accessing ${ property }`);\n (wrap).error = error;\n return wrap;\n}\n\n/*\nfunction checkNames(fragment: Fragment, type: \"input\" | \"output\", params: Array): void {\n params.reduce((accum, param) => {\n if (param.name) {\n if (accum[param.name]) {\n logger.throwArgumentError(`duplicate ${ type } parameter ${ JSON.stringify(param.name) } in ${ fragment.format(\"full\") }`, \"fragment\", fragment);\n }\n accum[param.name] = true;\n }\n return accum;\n }, <{ [ name: string ]: boolean }>{ });\n}\n*/\nexport class Interface {\n readonly fragments: ReadonlyArray;\n\n readonly errors: { [ name: string ]: ErrorFragment };\n readonly events: { [ name: string ]: EventFragment };\n readonly functions: { [ name: string ]: FunctionFragment };\n readonly structs: { [ name: string ]: any };\n\n readonly deploy: ConstructorFragment;\n\n readonly _abiCoder: AbiCoder;\n\n readonly _isInterface: boolean;\n\n constructor(fragments: string | ReadonlyArray) {\n let abi: ReadonlyArray = [ ];\n if (typeof(fragments) === \"string\") {\n abi = JSON.parse(fragments);\n } else {\n abi = fragments;\n }\n\n defineReadOnly(this, \"fragments\", abi.map((fragment) => {\n return Fragment.from(fragment);\n }).filter((fragment) => (fragment != null)));\n\n defineReadOnly(this, \"_abiCoder\", getStatic<() => AbiCoder>(new.target, \"getAbiCoder\")());\n\n defineReadOnly(this, \"functions\", { });\n defineReadOnly(this, \"errors\", { });\n defineReadOnly(this, \"events\", { });\n defineReadOnly(this, \"structs\", { });\n\n // Add all fragments by their signature\n this.fragments.forEach((fragment) => {\n let bucket: { [ name: string ]: Fragment } = null;\n switch (fragment.type) {\n case \"constructor\":\n if (this.deploy) {\n logger.warn(\"duplicate definition - constructor\");\n return;\n }\n //checkNames(fragment, \"input\", fragment.inputs);\n defineReadOnly(this, \"deploy\", fragment);\n return;\n case \"function\":\n //checkNames(fragment, \"input\", fragment.inputs);\n //checkNames(fragment, \"output\", (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\n let signature = fragment.format();\n if (bucket[signature]) {\n logger.warn(\"duplicate definition - \" + signature);\n return;\n }\n\n bucket[signature] = fragment;\n });\n\n // If we do not have a constructor add a default\n if (!this.deploy) {\n defineReadOnly(this, \"deploy\", ConstructorFragment.from({\n payable: false,\n type: \"constructor\"\n }));\n }\n\n defineReadOnly(this, \"_isInterface\", true);\n }\n\n format(format?: string): string | Array {\n if (!format) { format = FormatTypes.full; }\n if (format === FormatTypes.sighash) {\n logger.throwArgumentError(\"interface does not support formatting sighash\", \"format\", format);\n }\n\n const abi = this.fragments.map((fragment) => fragment.format(format));\n\n // We need to re-bundle the JSON fragments a bit\n if (format === FormatTypes.json) {\n return JSON.stringify(abi.map((j) => JSON.parse(j)));\n }\n\n return abi;\n }\n\n // Sub-classes can override these to handle other blockchains\n static getAbiCoder(): AbiCoder {\n return defaultAbiCoder;\n }\n\n static getAddress(address: string): string {\n return getAddress(address);\n }\n\n static getSighash(fragment: ErrorFragment | FunctionFragment): string {\n return hexDataSlice(id(fragment.format()), 0, 4);\n }\n\n static getEventTopic(eventFragment: EventFragment): string {\n return id(eventFragment.format());\n }\n\n // Find a function definition by any means necessary (unless it is ambiguous)\n getFunction(nameOrSignatureOrSighash: string): FunctionFragment {\n if (isHexString(nameOrSignatureOrSighash)) {\n for (const name in this.functions) {\n if (nameOrSignatureOrSighash === this.getSighash(name)) {\n return this.functions[name];\n }\n }\n logger.throwArgumentError(\"no matching function\", \"sighash\", nameOrSignatureOrSighash);\n }\n\n // It is a bare name, look up the function (will return null if ambiguous)\n if (nameOrSignatureOrSighash.indexOf(\"(\") === -1) {\n const name = nameOrSignatureOrSighash.trim();\n const matching = Object.keys(this.functions).filter((f) => (f.split(\"(\"/* fix:) */)[0] === name));\n if (matching.length === 0) {\n logger.throwArgumentError(\"no matching function\", \"name\", name);\n } else if (matching.length > 1) {\n logger.throwArgumentError(\"multiple matching functions\", \"name\", name);\n }\n\n return this.functions[matching[0]];\n }\n\n // Normalize the signature and lookup the function\n const result = this.functions[FunctionFragment.fromString(nameOrSignatureOrSighash).format()];\n if (!result) {\n logger.throwArgumentError(\"no matching function\", \"signature\", nameOrSignatureOrSighash);\n }\n return result;\n }\n\n // Find an event definition by any means necessary (unless it is ambiguous)\n getEvent(nameOrSignatureOrTopic: string): EventFragment {\n if (isHexString(nameOrSignatureOrTopic)) {\n const topichash = nameOrSignatureOrTopic.toLowerCase();\n for (const name in this.events) {\n if (topichash === this.getEventTopic(name)) {\n return this.events[name];\n }\n }\n logger.throwArgumentError(\"no matching event\", \"topichash\", topichash);\n }\n\n // It is a bare name, look up the function (will return null if ambiguous)\n if (nameOrSignatureOrTopic.indexOf(\"(\") === -1) {\n const name = nameOrSignatureOrTopic.trim();\n const matching = Object.keys(this.events).filter((f) => (f.split(\"(\"/* fix:) */)[0] === name));\n if (matching.length === 0) {\n logger.throwArgumentError(\"no matching event\", \"name\", name);\n } else if (matching.length > 1) {\n logger.throwArgumentError(\"multiple matching events\", \"name\", name);\n }\n\n return this.events[matching[0]];\n }\n\n // Normalize the signature and lookup the function\n const result = this.events[EventFragment.fromString(nameOrSignatureOrTopic).format()];\n if (!result) {\n logger.throwArgumentError(\"no matching event\", \"signature\", nameOrSignatureOrTopic);\n }\n return result;\n }\n\n // Find a function definition by any means necessary (unless it is ambiguous)\n getError(nameOrSignatureOrSighash: string): ErrorFragment {\n if (isHexString(nameOrSignatureOrSighash)) {\n const getSighash = getStatic<(f: ErrorFragment | FunctionFragment) => string>(this.constructor, \"getSighash\");\n for (const name in this.errors) {\n const error = this.errors[name];\n if (nameOrSignatureOrSighash === getSighash(error)) {\n return this.errors[name];\n }\n }\n logger.throwArgumentError(\"no matching error\", \"sighash\", nameOrSignatureOrSighash);\n }\n\n // It is a bare name, look up the function (will return null if ambiguous)\n if (nameOrSignatureOrSighash.indexOf(\"(\") === -1) {\n const name = nameOrSignatureOrSighash.trim();\n const matching = Object.keys(this.errors).filter((f) => (f.split(\"(\"/* fix:) */)[0] === name));\n if (matching.length === 0) {\n logger.throwArgumentError(\"no matching error\", \"name\", name);\n } else if (matching.length > 1) {\n logger.throwArgumentError(\"multiple matching errors\", \"name\", name);\n }\n\n return this.errors[matching[0]];\n }\n\n // Normalize the signature and lookup the function\n const result = this.errors[FunctionFragment.fromString(nameOrSignatureOrSighash).format()];\n if (!result) {\n logger.throwArgumentError(\"no matching error\", \"signature\", nameOrSignatureOrSighash);\n }\n return result;\n }\n\n // Get the sighash (the bytes4 selector) used by Solidity to identify a function\n getSighash(fragment: ErrorFragment | FunctionFragment | string): string {\n if (typeof(fragment) === \"string\") {\n try {\n fragment = this.getFunction(fragment);\n } catch (error) {\n try {\n fragment = this.getError(fragment);\n } catch (_) {\n throw error;\n }\n }\n }\n\n return getStatic<(f: ErrorFragment | FunctionFragment) => string>(this.constructor, \"getSighash\")(fragment);\n }\n\n // Get the topic (the bytes32 hash) used by Solidity to identify an event\n getEventTopic(eventFragment: EventFragment | string): string {\n if (typeof(eventFragment) === \"string\") {\n eventFragment = this.getEvent(eventFragment);\n }\n\n return getStatic<(e: EventFragment) => string>(this.constructor, \"getEventTopic\")(eventFragment);\n }\n\n\n _decodeParams(params: ReadonlyArray, data: BytesLike): Result {\n return this._abiCoder.decode(params, data)\n }\n\n _encodeParams(params: ReadonlyArray, values: ReadonlyArray): string {\n return this._abiCoder.encode(params, values)\n }\n\n encodeDeploy(values?: ReadonlyArray): string {\n return this._encodeParams(this.deploy.inputs, values || [ ]);\n }\n\n decodeErrorResult(fragment: ErrorFragment | string, data: BytesLike): Result {\n if (typeof(fragment) === \"string\") {\n fragment = this.getError(fragment);\n }\n\n const bytes = arrayify(data);\n\n if (hexlify(bytes.slice(0, 4)) !== this.getSighash(fragment)) {\n logger.throwArgumentError(`data signature does not match error ${ fragment.name }.`, \"data\", hexlify(bytes));\n }\n\n return this._decodeParams(fragment.inputs, bytes.slice(4));\n }\n\n encodeErrorResult(fragment: ErrorFragment | string, values?: ReadonlyArray): string {\n if (typeof(fragment) === \"string\") {\n fragment = this.getError(fragment);\n }\n\n return hexlify(concat([\n this.getSighash(fragment),\n this._encodeParams(fragment.inputs, values || [ ])\n ]));\n }\n\n // Decode the data for a function call (e.g. tx.data)\n decodeFunctionData(functionFragment: FunctionFragment | string, data: BytesLike): Result {\n if (typeof(functionFragment) === \"string\") {\n functionFragment = this.getFunction(functionFragment);\n }\n\n const bytes = arrayify(data);\n\n if (hexlify(bytes.slice(0, 4)) !== this.getSighash(functionFragment)) {\n logger.throwArgumentError(`data signature does not match function ${ functionFragment.name }.`, \"data\", hexlify(bytes));\n }\n\n return this._decodeParams(functionFragment.inputs, bytes.slice(4));\n }\n\n // Encode the data for a function call (e.g. tx.data)\n encodeFunctionData(functionFragment: FunctionFragment | string, values?: ReadonlyArray): string {\n if (typeof(functionFragment) === \"string\") {\n functionFragment = this.getFunction(functionFragment);\n }\n\n return hexlify(concat([\n this.getSighash(functionFragment),\n this._encodeParams(functionFragment.inputs, values || [ ])\n ]));\n }\n\n // Decode the result from a function call (e.g. from eth_call)\n decodeFunctionResult(functionFragment: FunctionFragment | string, data: BytesLike): Result {\n if (typeof(functionFragment) === \"string\") {\n functionFragment = this.getFunction(functionFragment);\n }\n\n let bytes = arrayify(data);\n\n let reason: string = null;\n let message = \"\";\n let errorArgs: Result = null;\n let errorName: string = null;\n let errorSignature: string = null;\n switch (bytes.length % this._abiCoder._getWordSize()) {\n case 0:\n try {\n return this._abiCoder.decode(functionFragment.outputs, bytes);\n } catch (error) { }\n break;\n\n case 4: {\n const selector = hexlify(bytes.slice(0, 4));\n const builtin = BuiltinErrors[selector];\n if (builtin) {\n errorArgs = this._abiCoder.decode(builtin.inputs, bytes.slice(4));\n errorName = builtin.name;\n errorSignature = builtin.signature;\n if (builtin.reason) { reason = errorArgs[0]; }\n if (errorName === \"Error\") {\n message = `; VM Exception while processing transaction: reverted with reason string ${ JSON.stringify(errorArgs[0]) }`;\n } else if (errorName === \"Panic\") {\n message = `; VM Exception while processing transaction: reverted with panic code ${ errorArgs[0] }`;\n }\n } else {\n try {\n const error = this.getError(selector);\n errorArgs = this._abiCoder.decode(error.inputs, bytes.slice(4));\n errorName = error.name;\n errorSignature = error.format();\n } catch (error) { }\n }\n break;\n }\n }\n\n return logger.throwError(\"call revert exception\" + message, Logger.errors.CALL_EXCEPTION, {\n method: functionFragment.format(),\n data: hexlify(data), errorArgs, errorName, errorSignature, reason\n });\n }\n\n // Encode the result for a function call (e.g. for eth_call)\n encodeFunctionResult(functionFragment: FunctionFragment | string, values?: ReadonlyArray): string {\n if (typeof(functionFragment) === \"string\") {\n functionFragment = this.getFunction(functionFragment);\n }\n\n return hexlify(this._abiCoder.encode(functionFragment.outputs, values || [ ]));\n }\n\n // Create the filter for the event with search criteria (e.g. for eth_filterLog)\n encodeFilterTopics(eventFragment: EventFragment | string, values: ReadonlyArray): Array> {\n if (typeof(eventFragment) === \"string\") {\n eventFragment = this.getEvent(eventFragment);\n }\n\n if (values.length > eventFragment.inputs.length) {\n logger.throwError(\"too many arguments for \" + eventFragment.format(), Logger.errors.UNEXPECTED_ARGUMENT, {\n argument: \"values\",\n value: values\n })\n }\n\n let topics: Array> = [];\n if (!eventFragment.anonymous) { topics.push(this.getEventTopic(eventFragment)); }\n\n const encodeTopic = (param: ParamType, value: any): string => {\n if (param.type === \"string\") {\n return id(value);\n } else if (param.type === \"bytes\") {\n return keccak256(hexlify(value));\n }\n\n if (param.type === \"bool\" && typeof(value) === \"boolean\") {\n value = (value ? \"0x01\": \"0x00\");\n }\n\n if (param.type.match(/^u?int/)) {\n value = BigNumber.from(value).toHexString();\n }\n\n // Check addresses are valid\n if (param.type === \"address\") { this._abiCoder.encode( [ \"address\" ], [ value ]); }\n return hexZeroPad(hexlify(value), 32);\n };\n\n values.forEach((value, index) => {\n\n let param = (eventFragment).inputs[index];\n\n if (!param.indexed) {\n if (value != null) {\n logger.throwArgumentError(\"cannot filter non-indexed parameters; must be null\", (\"contract.\" + param.name), value);\n }\n return;\n }\n\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 // Trim off trailing nulls\n while (topics.length && topics[topics.length - 1] === null) {\n topics.pop();\n }\n\n return topics;\n }\n\n encodeEventLog(eventFragment: EventFragment | string, values: ReadonlyArray): { data: string, topics: Array } {\n if (typeof(eventFragment) === \"string\") {\n eventFragment = this.getEvent(eventFragment);\n }\n\n const topics: Array = [ ];\n\n const dataTypes: Array = [ ];\n const dataValues: Array = [ ];\n\n if (!eventFragment.anonymous) {\n topics.push(this.getEventTopic(eventFragment));\n }\n\n if (values.length !== eventFragment.inputs.length) {\n logger.throwArgumentError(\"event arguments/values mismatch\", \"values\", values);\n }\n\n eventFragment.inputs.forEach((param, index) => {\n const value = values[index];\n if (param.indexed) {\n if (param.type === \"string\") {\n topics.push(id(value))\n } else if (param.type === \"bytes\") {\n topics.push(keccak256(value))\n } else if (param.baseType === \"tuple\" || param.baseType === \"array\") {\n // @TODO\n throw new Error(\"not implemented\");\n } else {\n topics.push(this._abiCoder.encode([ param.type] , [ value ]));\n }\n } else {\n dataTypes.push(param);\n dataValues.push(value);\n }\n });\n\n return {\n data: this._abiCoder.encode(dataTypes , dataValues),\n topics: topics\n };\n }\n\n // Decode a filter for the event and the search criteria\n decodeEventLog(eventFragment: EventFragment | string, data: BytesLike, topics?: ReadonlyArray): Result {\n if (typeof(eventFragment) === \"string\") {\n eventFragment = this.getEvent(eventFragment);\n }\n\n if (topics != null && !eventFragment.anonymous) {\n let topicHash = this.getEventTopic(eventFragment);\n if (!isHexString(topics[0], 32) || topics[0].toLowerCase() !== topicHash) {\n logger.throwError(\"fragment/topic mismatch\", Logger.errors.INVALID_ARGUMENT, { argument: \"topics[0]\", expected: topicHash, value: topics[0] });\n }\n topics = topics.slice(1);\n }\n\n let indexed: Array = [];\n let nonIndexed: Array = [];\n let dynamic: Array = [];\n\n eventFragment.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.fromObject({ type: \"bytes32\", name: param.name }));\n dynamic.push(true);\n } else {\n indexed.push(param);\n dynamic.push(false);\n }\n } else {\n nonIndexed.push(param);\n dynamic.push(false);\n }\n });\n\n let resultIndexed = (topics != null) ? this._abiCoder.decode(indexed, concat(topics)): null;\n let resultNonIndexed = this._abiCoder.decode(nonIndexed, data, true);\n\n let result: (Array & { [ key: string ]: any }) = [ ];\n let nonIndexedIndex = 0, indexedIndex = 0;\n eventFragment.inputs.forEach((param, index) => {\n if (param.indexed) {\n if (resultIndexed == null) {\n result[index] = new Indexed({ _isIndexed: true, hash: null });\n\n } else if (dynamic[index]) {\n result[index] = new Indexed({ _isIndexed: true, hash: resultIndexed[indexedIndex++] });\n\n } else {\n try {\n result[index] = resultIndexed[indexedIndex++];\n } catch (error) {\n result[index] = error;\n }\n }\n } else {\n try {\n result[index] = resultNonIndexed[nonIndexedIndex++];\n } catch (error) {\n result[index] = error;\n }\n }\n\n // Add the keyword argument if named and safe\n if (param.name && result[param.name] == null) {\n const value = result[index];\n\n // Make error named values throw on access\n if (value instanceof Error) {\n Object.defineProperty(result, param.name, {\n enumerable: true,\n get: () => { throw wrapAccessError(`property ${ JSON.stringify(param.name) }`, value); }\n });\n } else {\n result[param.name] = value;\n }\n }\n });\n\n // Make all error indexed values throw on access\n for (let i = 0; i < result.length; i++) {\n const value = result[i];\n if (value instanceof Error) {\n Object.defineProperty(result, i, {\n enumerable: true,\n get: () => { throw wrapAccessError(`index ${ i }`, value); }\n });\n }\n }\n\n return Object.freeze(result);\n }\n\n // Given a transaction, find the matching function fragment (if any) and\n // determine all its properties and call parameters\n parseTransaction(tx: { data: string, value?: BigNumberish }): TransactionDescription {\n let fragment = this.getFunction(tx.data.substring(0, 10).toLowerCase())\n\n if (!fragment) { return null; }\n\n return new TransactionDescription({\n args: this._abiCoder.decode(fragment.inputs, \"0x\" + tx.data.substring(10)),\n functionFragment: fragment,\n name: fragment.name,\n signature: fragment.format(),\n sighash: this.getSighash(fragment),\n value: BigNumber.from(tx.value || \"0\"),\n });\n }\n\n // @TODO\n //parseCallResult(data: BytesLike): ??\n\n // Given an event log, find the matching event fragment (if any) and\n // determine all its properties and values\n parseLog(log: { topics: Array, data: string}): LogDescription {\n let fragment = this.getEvent(log.topics[0]);\n\n if (!fragment || fragment.anonymous) { 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\n\n return new LogDescription({\n eventFragment: fragment,\n name: fragment.name,\n signature: fragment.format(),\n topic: this.getEventTopic(fragment),\n args: this.decodeEventLog(fragment, log.data, log.topics)\n });\n }\n\n parseError(data: BytesLike): ErrorDescription {\n const hexData = hexlify(data);\n let fragment = this.getError(hexData.substring(0, 10).toLowerCase())\n\n if (!fragment) { return null; }\n\n return new ErrorDescription({\n args: this._abiCoder.decode(fragment.inputs, \"0x\" + hexData.substring(10)),\n errorFragment: fragment,\n name: fragment.name,\n signature: fragment.format(),\n sighash: this.getSighash(fragment),\n });\n }\n\n\n /*\n static from(value: Array | string | Interface) {\n if (Interface.isInterface(value)) {\n return value;\n }\n if (typeof(value) === \"string\") {\n return new Interface(JSON.parse(value));\n }\n return new Interface(value);\n }\n */\n\n static isInterface(value: any): value is Interface {\n return !!(value && value._isInterface);\n }\n}\n\n", "\"use strict\";\n\nimport { ConstructorFragment, ErrorFragment, EventFragment, FormatTypes, Fragment, FunctionFragment, JsonFragment, JsonFragmentType, ParamType } from \"./fragments\";\nimport { AbiCoder, CoerceFunc, defaultAbiCoder } from \"./abi-coder\";\nimport { checkResultErrors, Indexed, Interface, LogDescription, Result, TransactionDescription } from \"./interface\";\n\nexport {\n ConstructorFragment,\n ErrorFragment,\n EventFragment,\n Fragment,\n FunctionFragment,\n ParamType,\n FormatTypes,\n\n AbiCoder,\n defaultAbiCoder,\n\n Interface,\n Indexed,\n\n /////////////////////////\n // Types\n\n CoerceFunc,\n JsonFragment,\n JsonFragmentType,\n\n Result,\n checkResultErrors,\n\n LogDescription,\n TransactionDescription\n};\n", "export const version = \"abstract-provider/5.7.0\";\n", "\"use strict\";\n\nimport { BigNumber, BigNumberish } from \"@ethersproject/bignumber\";\nimport { BytesLike, isHexString } from \"@ethersproject/bytes\";\nimport { Network } from \"@ethersproject/networks\";\nimport { Deferrable, Description, defineReadOnly, resolveProperties } from \"@ethersproject/properties\";\nimport { AccessListish, Transaction } from \"@ethersproject/transactions\";\nimport { OnceBlockable } from \"@ethersproject/web\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\n///////////////////////////////\n// Exported Types\n\n\nexport type TransactionRequest = {\n to?: string,\n from?: string,\n nonce?: BigNumberish,\n\n gasLimit?: BigNumberish,\n gasPrice?: BigNumberish,\n\n data?: BytesLike,\n value?: BigNumberish,\n chainId?: number\n\n type?: number;\n accessList?: AccessListish;\n\n maxPriorityFeePerGas?: BigNumberish;\n maxFeePerGas?: BigNumberish;\n\n customData?: Record;\n ccipReadEnabled?: boolean;\n}\n\nexport interface TransactionResponse extends Transaction {\n hash: string;\n\n // Only if a transaction has been mined\n blockNumber?: number,\n blockHash?: string,\n timestamp?: number,\n\n confirmations: number,\n\n // Not optional (as it is in Transaction)\n from: string;\n\n // The raw transaction\n raw?: string,\n\n // This function waits until the transaction has been mined\n wait: (confirmations?: number) => Promise\n};\n\nexport type BlockTag = string | number;\n\nexport interface _Block {\n hash: string;\n parentHash: string;\n number: number;\n\n timestamp: number;\n nonce: string;\n difficulty: number;\n _difficulty: BigNumber;\n\n gasLimit: BigNumber;\n gasUsed: BigNumber;\n\n miner: string;\n extraData: string;\n\n baseFeePerGas?: null | BigNumber;\n}\n\nexport interface Block extends _Block {\n transactions: Array;\n}\n\nexport interface BlockWithTransactions extends _Block {\n transactions: Array;\n}\n\n\nexport interface Log {\n blockNumber: number;\n blockHash: string;\n transactionIndex: number;\n\n removed: boolean;\n\n address: string;\n data: string;\n\n topics: Array;\n\n transactionHash: string;\n logIndex: number;\n}\n\nexport interface TransactionReceipt {\n to: string;\n from: string;\n contractAddress: string,\n transactionIndex: number,\n root?: string,\n gasUsed: BigNumber,\n logsBloom: string,\n blockHash: string,\n transactionHash: string,\n logs: Array,\n blockNumber: number,\n confirmations: number,\n cumulativeGasUsed: BigNumber,\n effectiveGasPrice: BigNumber,\n byzantium: boolean,\n type: number;\n status?: number\n};\n\nexport interface FeeData {\n lastBaseFeePerGas: null | BigNumber;\n maxFeePerGas: null | BigNumber;\n maxPriorityFeePerGas: null | BigNumber;\n gasPrice: null | BigNumber;\n}\n\nexport interface EventFilter {\n address?: string;\n topics?: Array | null>;\n}\n\nexport interface Filter extends EventFilter {\n fromBlock?: BlockTag,\n toBlock?: BlockTag,\n}\n\nexport interface FilterByBlockHash extends EventFilter {\n blockHash?: string;\n}\n\n//export type CallTransactionable = {\n// call(transaction: TransactionRequest): Promise;\n//};\n\nexport abstract class ForkEvent extends Description {\n readonly expiry: number;\n\n readonly _isForkEvent?: boolean;\n\n static isForkEvent(value: any): value is ForkEvent {\n return !!(value && value._isForkEvent);\n }\n}\n\nexport class BlockForkEvent extends ForkEvent {\n readonly blockHash: string;\n\n readonly _isBlockForkEvent?: boolean;\n\n constructor(blockHash: string, expiry?: number) {\n if (!isHexString(blockHash, 32)) {\n logger.throwArgumentError(\"invalid blockHash\", \"blockHash\", blockHash);\n }\n\n super({\n _isForkEvent: true,\n _isBlockForkEvent: true,\n expiry: (expiry || 0),\n blockHash: blockHash\n });\n }\n}\n\nexport class TransactionForkEvent extends ForkEvent {\n readonly hash: string;\n\n readonly _isTransactionOrderForkEvent?: boolean;\n\n constructor(hash: string, expiry?: number) {\n if (!isHexString(hash, 32)) {\n logger.throwArgumentError(\"invalid transaction hash\", \"hash\", hash);\n }\n\n super({\n _isForkEvent: true,\n _isTransactionForkEvent: true,\n expiry: (expiry || 0),\n hash: hash\n });\n }\n}\n\nexport class TransactionOrderForkEvent extends ForkEvent {\n readonly beforeHash: string;\n readonly afterHash: string;\n\n constructor(beforeHash: string, afterHash: string, expiry?: number) {\n if (!isHexString(beforeHash, 32)) {\n logger.throwArgumentError(\"invalid transaction hash\", \"beforeHash\", beforeHash);\n }\n if (!isHexString(afterHash, 32)) {\n logger.throwArgumentError(\"invalid transaction hash\", \"afterHash\", afterHash);\n }\n\n super({\n _isForkEvent: true,\n _isTransactionOrderForkEvent: true,\n expiry: (expiry || 0),\n beforeHash: beforeHash,\n afterHash: afterHash\n });\n }\n}\n\nexport type EventType = string | Array> | EventFilter | ForkEvent;\n\nexport type Listener = (...args: Array) => void;\n\n///////////////////////////////\n// Exported Abstracts\nexport abstract class Provider implements OnceBlockable {\n\n // Network\n abstract getNetwork(): Promise;\n\n // Latest State\n abstract getBlockNumber(): Promise;\n abstract getGasPrice(): Promise;\n async getFeeData(): Promise {\n const { block, gasPrice } = await resolveProperties({\n block: this.getBlock(\"latest\"),\n gasPrice: this.getGasPrice().catch((error) => {\n // @TODO: Why is this now failing on Calaveras?\n //console.log(error);\n return null;\n })\n });\n\n let lastBaseFeePerGas = null, maxFeePerGas = null, maxPriorityFeePerGas = null;\n\n if (block && block.baseFeePerGas) {\n // We may want to compute this more accurately in the future,\n // using the formula \"check if the base fee is correct\".\n // See: https://eips.ethereum.org/EIPS/eip-1559\n lastBaseFeePerGas = block.baseFeePerGas;\n maxPriorityFeePerGas = BigNumber.from(\"1500000000\");\n maxFeePerGas = block.baseFeePerGas.mul(2).add(maxPriorityFeePerGas);\n }\n\n return { lastBaseFeePerGas, maxFeePerGas, maxPriorityFeePerGas, gasPrice };\n }\n\n // Account\n abstract getBalance(addressOrName: string | Promise, blockTag?: BlockTag | Promise): Promise;\n abstract getTransactionCount(addressOrName: string | Promise, blockTag?: BlockTag | Promise): Promise;\n abstract getCode(addressOrName: string | Promise, blockTag?: BlockTag | Promise): Promise ;\n abstract getStorageAt(addressOrName: string | Promise, position: BigNumberish | Promise, blockTag?: BlockTag | Promise): Promise;\n\n // Execution\n abstract sendTransaction(signedTransaction: string | Promise): Promise;\n abstract call(transaction: Deferrable, blockTag?: BlockTag | Promise): Promise;\n abstract estimateGas(transaction: Deferrable): Promise;\n\n // Queries\n abstract getBlock(blockHashOrBlockTag: BlockTag | string | Promise): Promise;\n abstract getBlockWithTransactions(blockHashOrBlockTag: BlockTag | string | Promise): Promise;\n abstract getTransaction(transactionHash: string): Promise;\n abstract getTransactionReceipt(transactionHash: string): Promise;\n\n // Bloom-filter Queries\n abstract getLogs(filter: Filter): Promise>;\n\n // ENS\n abstract resolveName(name: string | Promise): Promise;\n abstract lookupAddress(address: string | Promise): Promise;\n\n // Event Emitter (ish)\n abstract on(eventName: EventType, listener: Listener): Provider;\n abstract once(eventName: EventType, listener: Listener): Provider;\n abstract emit(eventName: EventType, ...args: Array): boolean\n abstract listenerCount(eventName?: EventType): number;\n abstract listeners(eventName?: EventType): Array;\n abstract off(eventName: EventType, listener?: Listener): Provider;\n abstract removeAllListeners(eventName?: EventType): Provider;\n\n // Alias for \"on\"\n addListener(eventName: EventType, listener: Listener): Provider {\n return this.on(eventName, listener);\n }\n\n // Alias for \"off\"\n removeListener(eventName: EventType, listener: Listener): Provider {\n return this.off(eventName, listener);\n }\n\n // @TODO: This *could* be implemented here, but would pull in events...\n abstract waitForTransaction(transactionHash: string, confirmations?: number, timeout?: number): Promise;\n\n readonly _isProvider: boolean;\n\n constructor() {\n logger.checkAbstract(new.target, Provider);\n defineReadOnly(this, \"_isProvider\", true);\n }\n\n static isProvider(value: any): value is Provider {\n return !!(value && value._isProvider);\n }\n\n/*\n static getResolver(network: Network, callable: CallTransactionable, namehash: string): string {\n // No ENS...\n if (!network.ensAddress) {\n errors.throwError(\n \"network does support ENS\",\n errors.UNSUPPORTED_OPERATION,\n { operation: \"ENS\", network: network.name }\n );\n }\n\n // Not a namehash\n if (!isHexString(namehash, 32)) {\n errors.throwArgumentError(\"invalid name hash\", \"namehash\", namehash);\n }\n\n // keccak256(\"resolver(bytes32)\")\n let data = \"0x0178b8bf\" + namehash.substring(2);\n let transaction = { to: network.ensAddress, data: data };\n\n return provider.call(transaction).then((data) => {\n return provider.formatter.callAddress(data);\n });\n }\n\n static resolveNamehash(network: Network, callable: CallTransactionable, namehash: string): string {\n return this.getResolver(network, callable, namehash).then((resolverAddress) => {\n if (!resolverAddress) { return null; }\n\n // keccak256(\"addr(bytes32)\")\n let data = \"0x3b3b57de\" + namehash(name).substring(2);\n let transaction = { to: resolverAddress, data: data };\n return callable.call(transaction).then((data) => {\n return this.formatter.callAddress(data);\n });\n\n })\n }\n*/\n}\n", "export const version = \"abstract-signer/5.7.0\";\n", "\"use strict\";\n\nimport { BlockTag, FeeData, Provider, TransactionRequest, TransactionResponse } from \"@ethersproject/abstract-provider\";\nimport { BigNumber, BigNumberish } from \"@ethersproject/bignumber\";\nimport { Bytes, BytesLike } from \"@ethersproject/bytes\";\nimport { Deferrable, defineReadOnly, resolveProperties, shallowCopy } from \"@ethersproject/properties\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\nconst allowedTransactionKeys: Array = [\n \"accessList\", \"ccipReadEnabled\", \"chainId\", \"customData\", \"data\", \"from\", \"gasLimit\", \"gasPrice\", \"maxFeePerGas\", \"maxPriorityFeePerGas\", \"nonce\", \"to\", \"type\", \"value\"\n];\n\nconst forwardErrors = [\n Logger.errors.INSUFFICIENT_FUNDS,\n Logger.errors.NONCE_EXPIRED,\n Logger.errors.REPLACEMENT_UNDERPRICED,\n];\n\n// EIP-712 Typed Data\n// See: https://eips.ethereum.org/EIPS/eip-712\n\nexport interface TypedDataDomain {\n name?: string;\n version?: string;\n chainId?: BigNumberish;\n verifyingContract?: string;\n salt?: BytesLike;\n};\n\nexport interface TypedDataField {\n name: string;\n type: string;\n};\n\n// Sub-classes of Signer may optionally extend this interface to indicate\n// they have a private key available synchronously\nexport interface ExternallyOwnedAccount {\n readonly address: string;\n readonly privateKey: string;\n}\n\n// Sub-Class Notes:\n// - A Signer MUST always make sure, that if present, the \"from\" field\n// matches the Signer, before sending or signing a transaction\n// - A Signer SHOULD always wrap private information (such as a private\n// key or mnemonic) in a function, so that console.log does not leak\n// the data\n\n// @TODO: This is a temporary measure to preserve backwards compatibility\n// In v6, the method on TypedDataSigner will be added to Signer\nexport interface TypedDataSigner {\n _signTypedData(domain: TypedDataDomain, types: Record>, value: Record): Promise;\n}\n\nexport abstract class Signer {\n readonly provider?: Provider;\n\n ///////////////////\n // Sub-classes MUST implement these\n\n // Returns the checksum address\n abstract getAddress(): Promise\n\n // Returns the signed prefixed-message. This MUST treat:\n // - Bytes as a binary message\n // - string as a UTF8-message\n // i.e. \"0x1234\" is a SIX (6) byte string, NOT 2 bytes of data\n abstract signMessage(message: Bytes | string): Promise;\n\n // Signs a transaction and returns the fully serialized, signed transaction.\n // The EXACT transaction MUST be signed, and NO additional properties to be added.\n // - This MAY throw if signing transactions is not supports, but if\n // it does, sentTransaction MUST be overridden.\n abstract signTransaction(transaction: Deferrable): Promise;\n\n // Returns a new instance of the Signer, connected to provider.\n // This MAY throw if changing providers is not supported.\n abstract connect(provider: Provider): Signer;\n\n readonly _isSigner: boolean;\n\n\n ///////////////////\n // Sub-classes MUST call super\n constructor() {\n logger.checkAbstract(new.target, Signer);\n defineReadOnly(this, \"_isSigner\", true);\n }\n\n\n ///////////////////\n // Sub-classes MAY override these\n\n async getBalance(blockTag?: BlockTag): Promise {\n this._checkProvider(\"getBalance\");\n return await this.provider.getBalance(this.getAddress(), blockTag);\n }\n\n async getTransactionCount(blockTag?: BlockTag): Promise {\n this._checkProvider(\"getTransactionCount\");\n return await this.provider.getTransactionCount(this.getAddress(), blockTag);\n }\n\n // Populates \"from\" if unspecified, and estimates the gas for the transaction\n async estimateGas(transaction: Deferrable): Promise {\n this._checkProvider(\"estimateGas\");\n const tx = await resolveProperties(this.checkTransaction(transaction));\n return await this.provider.estimateGas(tx);\n }\n\n // Populates \"from\" if unspecified, and calls with the transaction\n async call(transaction: Deferrable, blockTag?: BlockTag): Promise {\n this._checkProvider(\"call\");\n const tx = await resolveProperties(this.checkTransaction(transaction));\n return await this.provider.call(tx, blockTag);\n }\n\n // Populates all fields in a transaction, signs it and sends it to the network\n async sendTransaction(transaction: Deferrable): Promise {\n this._checkProvider(\"sendTransaction\");\n const tx = await this.populateTransaction(transaction);\n const signedTx = await this.signTransaction(tx);\n return await this.provider.sendTransaction(signedTx);\n }\n\n async getChainId(): Promise {\n this._checkProvider(\"getChainId\");\n const network = await this.provider.getNetwork();\n return network.chainId;\n }\n\n async getGasPrice(): Promise {\n this._checkProvider(\"getGasPrice\");\n return await this.provider.getGasPrice();\n }\n\n async getFeeData(): Promise {\n this._checkProvider(\"getFeeData\");\n return await this.provider.getFeeData();\n }\n\n\n async resolveName(name: string): Promise {\n this._checkProvider(\"resolveName\");\n return await this.provider.resolveName(name);\n }\n\n\n\n // Checks a transaction does not contain invalid keys and if\n // no \"from\" is provided, populates it.\n // - does NOT require a provider\n // - adds \"from\" is not present\n // - returns a COPY (safe to mutate the result)\n // By default called from: (overriding these prevents it)\n // - call\n // - estimateGas\n // - populateTransaction (and therefor sendTransaction)\n checkTransaction(transaction: Deferrable): Deferrable {\n for (const key in transaction) {\n if (allowedTransactionKeys.indexOf(key) === -1) {\n logger.throwArgumentError(\"invalid transaction key: \" + key, \"transaction\", transaction);\n }\n }\n\n const tx = shallowCopy(transaction);\n\n if (tx.from == null) {\n tx.from = this.getAddress();\n\n } else {\n // Make sure any provided address matches this signer\n tx.from = Promise.all([\n Promise.resolve(tx.from),\n this.getAddress()\n ]).then((result) => {\n if (result[0].toLowerCase() !== result[1].toLowerCase()) {\n logger.throwArgumentError(\"from address mismatch\", \"transaction\", transaction);\n }\n return result[0];\n });\n }\n\n return tx;\n }\n\n // Populates ALL keys for a transaction and checks that \"from\" matches\n // this Signer. Should be used by sendTransaction but NOT by signTransaction.\n // By default called from: (overriding these prevents it)\n // - sendTransaction\n //\n // Notes:\n // - We allow gasPrice for EIP-1559 as long as it matches maxFeePerGas\n async populateTransaction(transaction: Deferrable): Promise {\n\n const tx: Deferrable = await resolveProperties(this.checkTransaction(transaction))\n\n if (tx.to != null) {\n tx.to = Promise.resolve(tx.to).then(async (to) => {\n if (to == null) { return null; }\n const address = await this.resolveName(to);\n if (address == null) {\n logger.throwArgumentError(\"provided ENS name resolves to null\", \"tx.to\", to);\n }\n return address;\n });\n\n // Prevent this error from causing an UnhandledPromiseException\n tx.to.catch((error) => { });\n }\n\n // Do not allow mixing pre-eip-1559 and eip-1559 properties\n const hasEip1559 = (tx.maxFeePerGas != null || tx.maxPriorityFeePerGas != null);\n if (tx.gasPrice != null && (tx.type === 2 || hasEip1559)) {\n logger.throwArgumentError(\"eip-1559 transaction do not support gasPrice\", \"transaction\", transaction);\n } else if ((tx.type === 0 || tx.type === 1) && hasEip1559) {\n logger.throwArgumentError(\"pre-eip-1559 transaction do not support maxFeePerGas/maxPriorityFeePerGas\", \"transaction\", transaction);\n }\n\n if ((tx.type === 2 || tx.type == null) && (tx.maxFeePerGas != null && tx.maxPriorityFeePerGas != null)) {\n // Fully-formed EIP-1559 transaction (skip getFeeData)\n tx.type = 2;\n\n } else if (tx.type === 0 || tx.type === 1) {\n // Explicit Legacy or EIP-2930 transaction\n\n // Populate missing gasPrice\n if (tx.gasPrice == null) { tx.gasPrice = this.getGasPrice(); }\n\n } else {\n\n // We need to get fee data to determine things\n const feeData = await this.getFeeData();\n\n if (tx.type == null) {\n // We need to auto-detect the intended type of this transaction...\n\n if (feeData.maxFeePerGas != null && feeData.maxPriorityFeePerGas != null) {\n // The network supports EIP-1559!\n\n // Upgrade transaction from null to eip-1559\n tx.type = 2;\n\n if (tx.gasPrice != null) {\n // Using legacy gasPrice property on an eip-1559 network,\n // so use gasPrice as both fee properties\n const gasPrice = tx.gasPrice;\n delete tx.gasPrice;\n tx.maxFeePerGas = gasPrice;\n tx.maxPriorityFeePerGas = gasPrice;\n\n } else {\n // Populate missing fee data\n if (tx.maxFeePerGas == null) { tx.maxFeePerGas = feeData.maxFeePerGas; }\n if (tx.maxPriorityFeePerGas == null) { tx.maxPriorityFeePerGas = feeData.maxPriorityFeePerGas; }\n }\n\n } else if (feeData.gasPrice != null) {\n // Network doesn't support EIP-1559...\n\n // ...but they are trying to use EIP-1559 properties\n if (hasEip1559) {\n logger.throwError(\"network does not support EIP-1559\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"populateTransaction\"\n });\n }\n\n // Populate missing fee data\n if (tx.gasPrice == null) { tx.gasPrice = feeData.gasPrice; }\n\n // Explicitly set untyped transaction to legacy\n tx.type = 0;\n\n } else {\n // getFeeData has failed us.\n logger.throwError(\"failed to get consistent fee data\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"signer.getFeeData\"\n });\n }\n\n } else if (tx.type === 2) {\n // Explicitly using EIP-1559\n\n // Populate missing fee data\n if (tx.maxFeePerGas == null) { tx.maxFeePerGas = feeData.maxFeePerGas; }\n if (tx.maxPriorityFeePerGas == null) { tx.maxPriorityFeePerGas = feeData.maxPriorityFeePerGas; }\n }\n }\n\n if (tx.nonce == null) { tx.nonce = this.getTransactionCount(\"pending\"); }\n\n if (tx.gasLimit == null) {\n tx.gasLimit = this.estimateGas(tx).catch((error) => {\n if (forwardErrors.indexOf(error.code) >= 0) {\n throw error;\n }\n\n return logger.throwError(\"cannot estimate gas; transaction may fail or may require manual gas limit\", Logger.errors.UNPREDICTABLE_GAS_LIMIT, {\n error: error,\n tx: tx\n });\n });\n }\n\n if (tx.chainId == null) {\n tx.chainId = this.getChainId();\n } else {\n tx.chainId = Promise.all([\n Promise.resolve(tx.chainId),\n this.getChainId()\n ]).then((results) => {\n if (results[1] !== 0 && results[0] !== results[1]) {\n logger.throwArgumentError(\"chainId address mismatch\", \"transaction\", transaction);\n }\n return results[0];\n });\n }\n\n return await resolveProperties(tx);\n }\n\n\n ///////////////////\n // Sub-classes SHOULD leave these alone\n\n _checkProvider(operation?: string): void {\n if (!this.provider) { logger.throwError(\"missing provider\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: (operation || \"_checkProvider\") });\n }\n }\n\n static isSigner(value: any): value is Signer {\n return !!(value && value._isSigner);\n }\n}\n\nexport class VoidSigner extends Signer implements TypedDataSigner {\n readonly address: string;\n\n constructor(address: string, provider?: Provider) {\n super();\n defineReadOnly(this, \"address\", address);\n defineReadOnly(this, \"provider\", provider || null);\n }\n\n getAddress(): Promise {\n return Promise.resolve(this.address);\n }\n\n _fail(message: string, operation: string): Promise {\n return Promise.resolve().then(() => {\n logger.throwError(message, Logger.errors.UNSUPPORTED_OPERATION, { operation: operation });\n });\n }\n\n signMessage(message: Bytes | string): Promise {\n return this._fail(\"VoidSigner cannot sign messages\", \"signMessage\");\n }\n\n signTransaction(transaction: Deferrable): Promise {\n return this._fail(\"VoidSigner cannot sign transactions\", \"signTransaction\");\n }\n\n _signTypedData(domain: TypedDataDomain, types: Record>, value: Record): Promise {\n return this._fail(\"VoidSigner cannot sign typed data\", \"signTypedData\");\n }\n\n connect(provider: Provider): VoidSigner {\n return new VoidSigner(this.address, provider);\n }\n}\n\n", "(function (module, exports) {\n 'use strict';\n\n // Utils\n function assert (val, msg) {\n if (!val) throw new Error(msg || 'Assertion failed');\n }\n\n // Could use `inherits` module, but don't want to move from single file\n // architecture yet.\n function inherits (ctor, superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function () {};\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n\n // BN\n\n function BN (number, base, endian) {\n if (BN.isBN(number)) {\n return number;\n }\n\n this.negative = 0;\n this.words = null;\n this.length = 0;\n\n // Reduction context\n this.red = null;\n\n if (number !== null) {\n if (base === 'le' || base === 'be') {\n endian = base;\n base = 10;\n }\n\n this._init(number || 0, base || 10, endian || 'be');\n }\n }\n if (typeof module === 'object') {\n module.exports = BN;\n } else {\n exports.BN = BN;\n }\n\n BN.BN = BN;\n BN.wordSize = 26;\n\n var Buffer;\n try {\n if (typeof window !== 'undefined' && typeof window.Buffer !== 'undefined') {\n Buffer = window.Buffer;\n } else {\n Buffer = require('buffer').Buffer;\n }\n } catch (e) {\n }\n\n BN.isBN = function isBN (num) {\n if (num instanceof BN) {\n return true;\n }\n\n return num !== null && typeof num === 'object' &&\n num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);\n };\n\n BN.max = function max (left, right) {\n if (left.cmp(right) > 0) return left;\n return right;\n };\n\n BN.min = function min (left, right) {\n if (left.cmp(right) < 0) return left;\n return right;\n };\n\n BN.prototype._init = function init (number, base, endian) {\n if (typeof number === 'number') {\n return this._initNumber(number, base, endian);\n }\n\n if (typeof number === 'object') {\n return this._initArray(number, base, endian);\n }\n\n if (base === 'hex') {\n base = 16;\n }\n assert(base === (base | 0) && base >= 2 && base <= 36);\n\n number = number.toString().replace(/\\s+/g, '');\n var start = 0;\n if (number[0] === '-') {\n start++;\n this.negative = 1;\n }\n\n if (start < number.length) {\n if (base === 16) {\n this._parseHex(number, start, endian);\n } else {\n this._parseBase(number, base, start);\n if (endian === 'le') {\n this._initArray(this.toArray(), base, endian);\n }\n }\n }\n };\n\n BN.prototype._initNumber = function _initNumber (number, base, endian) {\n if (number < 0) {\n this.negative = 1;\n number = -number;\n }\n if (number < 0x4000000) {\n this.words = [ number & 0x3ffffff ];\n this.length = 1;\n } else if (number < 0x10000000000000) {\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff\n ];\n this.length = 2;\n } else {\n assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff,\n 1\n ];\n this.length = 3;\n }\n\n if (endian !== 'le') return;\n\n // Reverse the bytes\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initArray = function _initArray (number, base, endian) {\n // Perhaps a Uint8Array\n assert(typeof number.length === 'number');\n if (number.length <= 0) {\n this.words = [ 0 ];\n this.length = 1;\n return this;\n }\n\n this.length = Math.ceil(number.length / 3);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n var off = 0;\n if (endian === 'be') {\n for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n } else if (endian === 'le') {\n for (i = 0, j = 0; i < number.length; i += 3) {\n w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n return this.strip();\n };\n\n function parseHex4Bits (string, index) {\n var c = string.charCodeAt(index);\n // 'A' - 'F'\n if (c >= 65 && c <= 70) {\n return c - 55;\n // 'a' - 'f'\n } else if (c >= 97 && c <= 102) {\n return c - 87;\n // '0' - '9'\n } else {\n return (c - 48) & 0xf;\n }\n }\n\n function parseHexByte (string, lowerBound, index) {\n var r = parseHex4Bits(string, index);\n if (index - 1 >= lowerBound) {\n r |= parseHex4Bits(string, index - 1) << 4;\n }\n return r;\n }\n\n BN.prototype._parseHex = function _parseHex (number, start, endian) {\n // Create possibly bigger array to ensure that it fits the number\n this.length = Math.ceil((number.length - start) / 6);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n // 24-bits chunks\n var off = 0;\n var j = 0;\n\n var w;\n if (endian === 'be') {\n for (i = number.length - 1; i >= start; i -= 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n } else {\n var parseLength = number.length - start;\n for (i = parseLength % 2 === 0 ? start + 1 : start; i < number.length; i += 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n }\n\n this.strip();\n };\n\n function parseBase (str, start, end, mul) {\n var r = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r *= mul;\n\n // 'a'\n if (c >= 49) {\n r += c - 49 + 0xa;\n\n // 'A'\n } else if (c >= 17) {\n r += c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n r += c;\n }\n }\n return r;\n }\n\n BN.prototype._parseBase = function _parseBase (number, base, start) {\n // Initialize as zero\n this.words = [ 0 ];\n this.length = 1;\n\n // Find length of limb in base\n for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n limbLen++;\n }\n limbLen--;\n limbPow = (limbPow / base) | 0;\n\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n\n var word = 0;\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n\n this.imuln(limbPow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n if (mod !== 0) {\n var pow = 1;\n word = parseBase(number, i, number.length, base);\n\n for (i = 0; i < mod; i++) {\n pow *= base;\n }\n\n this.imuln(pow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n this.strip();\n };\n\n BN.prototype.copy = function copy (dest) {\n dest.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n dest.words[i] = this.words[i];\n }\n dest.length = this.length;\n dest.negative = this.negative;\n dest.red = this.red;\n };\n\n BN.prototype.clone = function clone () {\n var r = new BN(null);\n this.copy(r);\n return r;\n };\n\n BN.prototype._expand = function _expand (size) {\n while (this.length < size) {\n this.words[this.length++] = 0;\n }\n return this;\n };\n\n // Remove leading `0` from `this`\n BN.prototype.strip = function strip () {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\n return this._normSign();\n };\n\n BN.prototype._normSign = function _normSign () {\n // -0 = 0\n if (this.length === 1 && this.words[0] === 0) {\n this.negative = 0;\n }\n return this;\n };\n\n BN.prototype.inspect = function inspect () {\n return (this.red ? '';\n };\n\n /*\n\n var zeros = [];\n var groupSizes = [];\n var groupBases = [];\n\n var s = '';\n var i = -1;\n while (++i < BN.wordSize) {\n zeros[i] = s;\n s += '0';\n }\n groupSizes[0] = 0;\n groupSizes[1] = 0;\n groupBases[0] = 0;\n groupBases[1] = 0;\n var base = 2 - 1;\n while (++base < 36 + 1) {\n var groupSize = 0;\n var groupBase = 1;\n while (groupBase < (1 << BN.wordSize) / base) {\n groupBase *= base;\n groupSize += 1;\n }\n groupSizes[base] = groupSize;\n groupBases[base] = groupBase;\n }\n\n */\n\n var zeros = [\n '',\n '0',\n '00',\n '000',\n '0000',\n '00000',\n '000000',\n '0000000',\n '00000000',\n '000000000',\n '0000000000',\n '00000000000',\n '000000000000',\n '0000000000000',\n '00000000000000',\n '000000000000000',\n '0000000000000000',\n '00000000000000000',\n '000000000000000000',\n '0000000000000000000',\n '00000000000000000000',\n '000000000000000000000',\n '0000000000000000000000',\n '00000000000000000000000',\n '000000000000000000000000',\n '0000000000000000000000000'\n ];\n\n var groupSizes = [\n 0, 0,\n 25, 16, 12, 11, 10, 9, 8,\n 8, 7, 7, 7, 7, 6, 6,\n 6, 6, 6, 6, 6, 5, 5,\n 5, 5, 5, 5, 5, 5, 5,\n 5, 5, 5, 5, 5, 5, 5\n ];\n\n var groupBases = [\n 0, 0,\n 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,\n 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,\n 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,\n 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,\n 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176\n ];\n\n BN.prototype.toString = function toString (base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n\n var out;\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = this.words[i];\n var word = (((w << off) | carry) & 0xffffff).toString(16);\n carry = (w >>> (24 - off)) & 0xffffff;\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n off += 2;\n if (off >= 26) {\n off -= 26;\n i--;\n }\n }\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n if (base === (base | 0) && base >= 2 && base <= 36) {\n // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n var groupSize = groupSizes[base];\n // var groupBase = Math.pow(base, groupSize);\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n while (!c.isZero()) {\n var r = c.modn(groupBase).toString(base);\n c = c.idivn(groupBase);\n\n if (!c.isZero()) {\n out = zeros[groupSize - r.length] + r + out;\n } else {\n out = r + out;\n }\n }\n if (this.isZero()) {\n out = '0' + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n assert(false, 'Base should be between 2 and 36');\n };\n\n BN.prototype.toNumber = function toNumber () {\n var ret = this.words[0];\n if (this.length === 2) {\n ret += this.words[1] * 0x4000000;\n } else if (this.length === 3 && this.words[2] === 0x01) {\n // NOTE: at this stage it is known that the top bit is set\n ret += 0x10000000000000 + (this.words[1] * 0x4000000);\n } else if (this.length > 2) {\n assert(false, 'Number can only safely store up to 53 bits');\n }\n return (this.negative !== 0) ? -ret : ret;\n };\n\n BN.prototype.toJSON = function toJSON () {\n return this.toString(16);\n };\n\n BN.prototype.toBuffer = function toBuffer (endian, length) {\n assert(typeof Buffer !== 'undefined');\n return this.toArrayLike(Buffer, endian, length);\n };\n\n BN.prototype.toArray = function toArray (endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n var byteLength = this.byteLength();\n var reqLength = length || Math.max(1, byteLength);\n assert(byteLength <= reqLength, 'byte array longer than desired length');\n assert(reqLength > 0, 'Requested array length <= 0');\n\n this.strip();\n var littleEndian = endian === 'le';\n var res = new ArrayType(reqLength);\n\n var b, i;\n var q = this.clone();\n if (!littleEndian) {\n // Assume big-endian\n for (i = 0; i < reqLength - byteLength; i++) {\n res[i] = 0;\n }\n\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[reqLength - i - 1] = b;\n }\n } else {\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[i] = b;\n }\n\n for (; i < reqLength; i++) {\n res[i] = 0;\n }\n }\n\n return res;\n };\n\n if (Math.clz32) {\n BN.prototype._countBits = function _countBits (w) {\n return 32 - Math.clz32(w);\n };\n } else {\n BN.prototype._countBits = function _countBits (w) {\n var t = w;\n var r = 0;\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\n return r + t;\n };\n }\n\n BN.prototype._zeroBits = function _zeroBits (w) {\n // Short-cut\n if (w === 0) return 26;\n\n var t = w;\n var r = 0;\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n if ((t & 0x1) === 0) {\n r++;\n }\n return r;\n };\n\n // Return number of used bits in a BN\n BN.prototype.bitLength = function bitLength () {\n var w = this.words[this.length - 1];\n var hi = this._countBits(w);\n return (this.length - 1) * 26 + hi;\n };\n\n function toBitArray (num) {\n var w = new Array(num.bitLength());\n\n for (var bit = 0; bit < w.length; bit++) {\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n w[bit] = (num.words[off] & (1 << wbit)) >>> wbit;\n }\n\n return w;\n }\n\n // Number of trailing zero bits\n BN.prototype.zeroBits = function zeroBits () {\n if (this.isZero()) return 0;\n\n var r = 0;\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n r += b;\n if (b !== 26) break;\n }\n return r;\n };\n\n BN.prototype.byteLength = function byteLength () {\n return Math.ceil(this.bitLength() / 8);\n };\n\n BN.prototype.toTwos = function toTwos (width) {\n if (this.negative !== 0) {\n return this.abs().inotn(width).iaddn(1);\n }\n return this.clone();\n };\n\n BN.prototype.fromTwos = function fromTwos (width) {\n if (this.testn(width - 1)) {\n return this.notn(width).iaddn(1).ineg();\n }\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg () {\n return this.negative !== 0;\n };\n\n // Return negative clone of `this`\n BN.prototype.neg = function neg () {\n return this.clone().ineg();\n };\n\n BN.prototype.ineg = function ineg () {\n if (!this.isZero()) {\n this.negative ^= 1;\n }\n\n return this;\n };\n\n // Or `num` with `this` in-place\n BN.prototype.iuor = function iuor (num) {\n while (this.length < num.length) {\n this.words[this.length++] = 0;\n }\n\n for (var i = 0; i < num.length; i++) {\n this.words[i] = this.words[i] | num.words[i];\n }\n\n return this.strip();\n };\n\n BN.prototype.ior = function ior (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuor(num);\n };\n\n // Or `num` with `this`\n BN.prototype.or = function or (num) {\n if (this.length > num.length) return this.clone().ior(num);\n return num.clone().ior(this);\n };\n\n BN.prototype.uor = function uor (num) {\n if (this.length > num.length) return this.clone().iuor(num);\n return num.clone().iuor(this);\n };\n\n // And `num` with `this` in-place\n BN.prototype.iuand = function iuand (num) {\n // b = min-length(num, this)\n var b;\n if (this.length > num.length) {\n b = num;\n } else {\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = this.words[i] & num.words[i];\n }\n\n this.length = b.length;\n\n return this.strip();\n };\n\n BN.prototype.iand = function iand (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuand(num);\n };\n\n // And `num` with `this`\n BN.prototype.and = function and (num) {\n if (this.length > num.length) return this.clone().iand(num);\n return num.clone().iand(this);\n };\n\n BN.prototype.uand = function uand (num) {\n if (this.length > num.length) return this.clone().iuand(num);\n return num.clone().iuand(this);\n };\n\n // Xor `num` with `this` in-place\n BN.prototype.iuxor = function iuxor (num) {\n // a.length > b.length\n var a;\n var b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = a.words[i] ^ b.words[i];\n }\n\n if (this !== a) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = a.length;\n\n return this.strip();\n };\n\n BN.prototype.ixor = function ixor (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuxor(num);\n };\n\n // Xor `num` with `this`\n BN.prototype.xor = function xor (num) {\n if (this.length > num.length) return this.clone().ixor(num);\n return num.clone().ixor(this);\n };\n\n BN.prototype.uxor = function uxor (num) {\n if (this.length > num.length) return this.clone().iuxor(num);\n return num.clone().iuxor(this);\n };\n\n // Not ``this`` with ``width`` bitwidth\n BN.prototype.inotn = function inotn (width) {\n assert(typeof width === 'number' && width >= 0);\n\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26;\n\n // Extend the buffer with leading zeroes\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n }\n\n // Handle complete words\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n }\n\n // Handle the residue\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));\n }\n\n // And remove leading zeroes\n return this.strip();\n };\n\n BN.prototype.notn = function notn (width) {\n return this.clone().inotn(width);\n };\n\n // Set `bit` of `this`\n BN.prototype.setn = function setn (bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\n\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n this._expand(off + 1);\n\n if (val) {\n this.words[off] = this.words[off] | (1 << wbit);\n } else {\n this.words[off] = this.words[off] & ~(1 << wbit);\n }\n\n return this.strip();\n };\n\n // Add `num` to `this` in-place\n BN.prototype.iadd = function iadd (num) {\n var r;\n\n // negative + positive\n if (this.negative !== 0 && num.negative === 0) {\n this.negative = 0;\n r = this.isub(num);\n this.negative ^= 1;\n return this._normSign();\n\n // positive + negative\n } else if (this.negative === 0 && num.negative !== 0) {\n num.negative = 0;\n r = this.isub(num);\n num.negative = 1;\n return r._normSign();\n }\n\n // a.length > b.length\n var a, b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n this.length = a.length;\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++;\n // Copy the rest of the words\n } else if (a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n return this;\n };\n\n // Add `num` to `this`\n BN.prototype.add = function add (num) {\n var res;\n if (num.negative !== 0 && this.negative === 0) {\n num.negative = 0;\n res = this.sub(num);\n num.negative ^= 1;\n return res;\n } else if (num.negative === 0 && this.negative !== 0) {\n this.negative = 0;\n res = num.sub(this);\n this.negative = 1;\n return res;\n }\n\n if (this.length > num.length) return this.clone().iadd(num);\n\n return num.clone().iadd(this);\n };\n\n // Subtract `num` from `this` in-place\n BN.prototype.isub = function isub (num) {\n // this - (-num) = this + num\n if (num.negative !== 0) {\n num.negative = 0;\n var r = this.iadd(num);\n num.negative = 1;\n return r._normSign();\n\n // -this - num = -(this + num)\n } else if (this.negative !== 0) {\n this.negative = 0;\n this.iadd(num);\n this.negative = 1;\n return this._normSign();\n }\n\n // At this point both numbers are positive\n var cmp = this.cmp(num);\n\n // Optimization - zeroify\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n }\n\n // a > b\n var a, b;\n if (cmp > 0) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n\n // Copy rest of the words\n if (carry === 0 && i < a.length && a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = Math.max(this.length, i);\n\n if (a !== this) {\n this.negative = 1;\n }\n\n return this.strip();\n };\n\n // Subtract `num` from `this`\n BN.prototype.sub = function sub (num) {\n return this.clone().isub(num);\n };\n\n function smallMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n var len = (self.length + num.length) | 0;\n out.length = len;\n len = (len - 1) | 0;\n\n // Peel one iteration (compiler can't do it, because of code complexity)\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n var carry = (r / 0x4000000) | 0;\n out.words[0] = lo;\n\n for (var k = 1; k < len; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = carry >>> 26;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = (k - j) | 0;\n a = self.words[i] | 0;\n b = num.words[j] | 0;\n r = a * b + rword;\n ncarry += (r / 0x4000000) | 0;\n rword = r & 0x3ffffff;\n }\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n // TODO(indutny): it may be reasonable to omit it for users who don't need\n // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n // multiplication (like elliptic secp256k1).\n var comb10MulTo = function comb10MulTo (self, num, out) {\n var a = self.words;\n var b = num.words;\n var o = out.words;\n var c = 0;\n var lo;\n var mid;\n var hi;\n var a0 = a[0] | 0;\n var al0 = a0 & 0x1fff;\n var ah0 = a0 >>> 13;\n var a1 = a[1] | 0;\n var al1 = a1 & 0x1fff;\n var ah1 = a1 >>> 13;\n var a2 = a[2] | 0;\n var al2 = a2 & 0x1fff;\n var ah2 = a2 >>> 13;\n var a3 = a[3] | 0;\n var al3 = a3 & 0x1fff;\n var ah3 = a3 >>> 13;\n var a4 = a[4] | 0;\n var al4 = a4 & 0x1fff;\n var ah4 = a4 >>> 13;\n var a5 = a[5] | 0;\n var al5 = a5 & 0x1fff;\n var ah5 = a5 >>> 13;\n var a6 = a[6] | 0;\n var al6 = a6 & 0x1fff;\n var ah6 = a6 >>> 13;\n var a7 = a[7] | 0;\n var al7 = a7 & 0x1fff;\n var ah7 = a7 >>> 13;\n var a8 = a[8] | 0;\n var al8 = a8 & 0x1fff;\n var ah8 = a8 >>> 13;\n var a9 = a[9] | 0;\n var al9 = a9 & 0x1fff;\n var ah9 = a9 >>> 13;\n var b0 = b[0] | 0;\n var bl0 = b0 & 0x1fff;\n var bh0 = b0 >>> 13;\n var b1 = b[1] | 0;\n var bl1 = b1 & 0x1fff;\n var bh1 = b1 >>> 13;\n var b2 = b[2] | 0;\n var bl2 = b2 & 0x1fff;\n var bh2 = b2 >>> 13;\n var b3 = b[3] | 0;\n var bl3 = b3 & 0x1fff;\n var bh3 = b3 >>> 13;\n var b4 = b[4] | 0;\n var bl4 = b4 & 0x1fff;\n var bh4 = b4 >>> 13;\n var b5 = b[5] | 0;\n var bl5 = b5 & 0x1fff;\n var bh5 = b5 >>> 13;\n var b6 = b[6] | 0;\n var bl6 = b6 & 0x1fff;\n var bh6 = b6 >>> 13;\n var b7 = b[7] | 0;\n var bl7 = b7 & 0x1fff;\n var bh7 = b7 >>> 13;\n var b8 = b[8] | 0;\n var bl8 = b8 & 0x1fff;\n var bh8 = b8 >>> 13;\n var b9 = b[9] | 0;\n var bl9 = b9 & 0x1fff;\n var bh9 = b9 >>> 13;\n\n out.negative = self.negative ^ num.negative;\n out.length = 19;\n /* k = 0 */\n lo = Math.imul(al0, bl0);\n mid = Math.imul(al0, bh0);\n mid = (mid + Math.imul(ah0, bl0)) | 0;\n hi = Math.imul(ah0, bh0);\n var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;\n w0 &= 0x3ffffff;\n /* k = 1 */\n lo = Math.imul(al1, bl0);\n mid = Math.imul(al1, bh0);\n mid = (mid + Math.imul(ah1, bl0)) | 0;\n hi = Math.imul(ah1, bh0);\n lo = (lo + Math.imul(al0, bl1)) | 0;\n mid = (mid + Math.imul(al0, bh1)) | 0;\n mid = (mid + Math.imul(ah0, bl1)) | 0;\n hi = (hi + Math.imul(ah0, bh1)) | 0;\n var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;\n w1 &= 0x3ffffff;\n /* k = 2 */\n lo = Math.imul(al2, bl0);\n mid = Math.imul(al2, bh0);\n mid = (mid + Math.imul(ah2, bl0)) | 0;\n hi = Math.imul(ah2, bh0);\n lo = (lo + Math.imul(al1, bl1)) | 0;\n mid = (mid + Math.imul(al1, bh1)) | 0;\n mid = (mid + Math.imul(ah1, bl1)) | 0;\n hi = (hi + Math.imul(ah1, bh1)) | 0;\n lo = (lo + Math.imul(al0, bl2)) | 0;\n mid = (mid + Math.imul(al0, bh2)) | 0;\n mid = (mid + Math.imul(ah0, bl2)) | 0;\n hi = (hi + Math.imul(ah0, bh2)) | 0;\n var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;\n w2 &= 0x3ffffff;\n /* k = 3 */\n lo = Math.imul(al3, bl0);\n mid = Math.imul(al3, bh0);\n mid = (mid + Math.imul(ah3, bl0)) | 0;\n hi = Math.imul(ah3, bh0);\n lo = (lo + Math.imul(al2, bl1)) | 0;\n mid = (mid + Math.imul(al2, bh1)) | 0;\n mid = (mid + Math.imul(ah2, bl1)) | 0;\n hi = (hi + Math.imul(ah2, bh1)) | 0;\n lo = (lo + Math.imul(al1, bl2)) | 0;\n mid = (mid + Math.imul(al1, bh2)) | 0;\n mid = (mid + Math.imul(ah1, bl2)) | 0;\n hi = (hi + Math.imul(ah1, bh2)) | 0;\n lo = (lo + Math.imul(al0, bl3)) | 0;\n mid = (mid + Math.imul(al0, bh3)) | 0;\n mid = (mid + Math.imul(ah0, bl3)) | 0;\n hi = (hi + Math.imul(ah0, bh3)) | 0;\n var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;\n w3 &= 0x3ffffff;\n /* k = 4 */\n lo = Math.imul(al4, bl0);\n mid = Math.imul(al4, bh0);\n mid = (mid + Math.imul(ah4, bl0)) | 0;\n hi = Math.imul(ah4, bh0);\n lo = (lo + Math.imul(al3, bl1)) | 0;\n mid = (mid + Math.imul(al3, bh1)) | 0;\n mid = (mid + Math.imul(ah3, bl1)) | 0;\n hi = (hi + Math.imul(ah3, bh1)) | 0;\n lo = (lo + Math.imul(al2, bl2)) | 0;\n mid = (mid + Math.imul(al2, bh2)) | 0;\n mid = (mid + Math.imul(ah2, bl2)) | 0;\n hi = (hi + Math.imul(ah2, bh2)) | 0;\n lo = (lo + Math.imul(al1, bl3)) | 0;\n mid = (mid + Math.imul(al1, bh3)) | 0;\n mid = (mid + Math.imul(ah1, bl3)) | 0;\n hi = (hi + Math.imul(ah1, bh3)) | 0;\n lo = (lo + Math.imul(al0, bl4)) | 0;\n mid = (mid + Math.imul(al0, bh4)) | 0;\n mid = (mid + Math.imul(ah0, bl4)) | 0;\n hi = (hi + Math.imul(ah0, bh4)) | 0;\n var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;\n w4 &= 0x3ffffff;\n /* k = 5 */\n lo = Math.imul(al5, bl0);\n mid = Math.imul(al5, bh0);\n mid = (mid + Math.imul(ah5, bl0)) | 0;\n hi = Math.imul(ah5, bh0);\n lo = (lo + Math.imul(al4, bl1)) | 0;\n mid = (mid + Math.imul(al4, bh1)) | 0;\n mid = (mid + Math.imul(ah4, bl1)) | 0;\n hi = (hi + Math.imul(ah4, bh1)) | 0;\n lo = (lo + Math.imul(al3, bl2)) | 0;\n mid = (mid + Math.imul(al3, bh2)) | 0;\n mid = (mid + Math.imul(ah3, bl2)) | 0;\n hi = (hi + Math.imul(ah3, bh2)) | 0;\n lo = (lo + Math.imul(al2, bl3)) | 0;\n mid = (mid + Math.imul(al2, bh3)) | 0;\n mid = (mid + Math.imul(ah2, bl3)) | 0;\n hi = (hi + Math.imul(ah2, bh3)) | 0;\n lo = (lo + Math.imul(al1, bl4)) | 0;\n mid = (mid + Math.imul(al1, bh4)) | 0;\n mid = (mid + Math.imul(ah1, bl4)) | 0;\n hi = (hi + Math.imul(ah1, bh4)) | 0;\n lo = (lo + Math.imul(al0, bl5)) | 0;\n mid = (mid + Math.imul(al0, bh5)) | 0;\n mid = (mid + Math.imul(ah0, bl5)) | 0;\n hi = (hi + Math.imul(ah0, bh5)) | 0;\n var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;\n w5 &= 0x3ffffff;\n /* k = 6 */\n lo = Math.imul(al6, bl0);\n mid = Math.imul(al6, bh0);\n mid = (mid + Math.imul(ah6, bl0)) | 0;\n hi = Math.imul(ah6, bh0);\n lo = (lo + Math.imul(al5, bl1)) | 0;\n mid = (mid + Math.imul(al5, bh1)) | 0;\n mid = (mid + Math.imul(ah5, bl1)) | 0;\n hi = (hi + Math.imul(ah5, bh1)) | 0;\n lo = (lo + Math.imul(al4, bl2)) | 0;\n mid = (mid + Math.imul(al4, bh2)) | 0;\n mid = (mid + Math.imul(ah4, bl2)) | 0;\n hi = (hi + Math.imul(ah4, bh2)) | 0;\n lo = (lo + Math.imul(al3, bl3)) | 0;\n mid = (mid + Math.imul(al3, bh3)) | 0;\n mid = (mid + Math.imul(ah3, bl3)) | 0;\n hi = (hi + Math.imul(ah3, bh3)) | 0;\n lo = (lo + Math.imul(al2, bl4)) | 0;\n mid = (mid + Math.imul(al2, bh4)) | 0;\n mid = (mid + Math.imul(ah2, bl4)) | 0;\n hi = (hi + Math.imul(ah2, bh4)) | 0;\n lo = (lo + Math.imul(al1, bl5)) | 0;\n mid = (mid + Math.imul(al1, bh5)) | 0;\n mid = (mid + Math.imul(ah1, bl5)) | 0;\n hi = (hi + Math.imul(ah1, bh5)) | 0;\n lo = (lo + Math.imul(al0, bl6)) | 0;\n mid = (mid + Math.imul(al0, bh6)) | 0;\n mid = (mid + Math.imul(ah0, bl6)) | 0;\n hi = (hi + Math.imul(ah0, bh6)) | 0;\n var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;\n w6 &= 0x3ffffff;\n /* k = 7 */\n lo = Math.imul(al7, bl0);\n mid = Math.imul(al7, bh0);\n mid = (mid + Math.imul(ah7, bl0)) | 0;\n hi = Math.imul(ah7, bh0);\n lo = (lo + Math.imul(al6, bl1)) | 0;\n mid = (mid + Math.imul(al6, bh1)) | 0;\n mid = (mid + Math.imul(ah6, bl1)) | 0;\n hi = (hi + Math.imul(ah6, bh1)) | 0;\n lo = (lo + Math.imul(al5, bl2)) | 0;\n mid = (mid + Math.imul(al5, bh2)) | 0;\n mid = (mid + Math.imul(ah5, bl2)) | 0;\n hi = (hi + Math.imul(ah5, bh2)) | 0;\n lo = (lo + Math.imul(al4, bl3)) | 0;\n mid = (mid + Math.imul(al4, bh3)) | 0;\n mid = (mid + Math.imul(ah4, bl3)) | 0;\n hi = (hi + Math.imul(ah4, bh3)) | 0;\n lo = (lo + Math.imul(al3, bl4)) | 0;\n mid = (mid + Math.imul(al3, bh4)) | 0;\n mid = (mid + Math.imul(ah3, bl4)) | 0;\n hi = (hi + Math.imul(ah3, bh4)) | 0;\n lo = (lo + Math.imul(al2, bl5)) | 0;\n mid = (mid + Math.imul(al2, bh5)) | 0;\n mid = (mid + Math.imul(ah2, bl5)) | 0;\n hi = (hi + Math.imul(ah2, bh5)) | 0;\n lo = (lo + Math.imul(al1, bl6)) | 0;\n mid = (mid + Math.imul(al1, bh6)) | 0;\n mid = (mid + Math.imul(ah1, bl6)) | 0;\n hi = (hi + Math.imul(ah1, bh6)) | 0;\n lo = (lo + Math.imul(al0, bl7)) | 0;\n mid = (mid + Math.imul(al0, bh7)) | 0;\n mid = (mid + Math.imul(ah0, bl7)) | 0;\n hi = (hi + Math.imul(ah0, bh7)) | 0;\n var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;\n w7 &= 0x3ffffff;\n /* k = 8 */\n lo = Math.imul(al8, bl0);\n mid = Math.imul(al8, bh0);\n mid = (mid + Math.imul(ah8, bl0)) | 0;\n hi = Math.imul(ah8, bh0);\n lo = (lo + Math.imul(al7, bl1)) | 0;\n mid = (mid + Math.imul(al7, bh1)) | 0;\n mid = (mid + Math.imul(ah7, bl1)) | 0;\n hi = (hi + Math.imul(ah7, bh1)) | 0;\n lo = (lo + Math.imul(al6, bl2)) | 0;\n mid = (mid + Math.imul(al6, bh2)) | 0;\n mid = (mid + Math.imul(ah6, bl2)) | 0;\n hi = (hi + Math.imul(ah6, bh2)) | 0;\n lo = (lo + Math.imul(al5, bl3)) | 0;\n mid = (mid + Math.imul(al5, bh3)) | 0;\n mid = (mid + Math.imul(ah5, bl3)) | 0;\n hi = (hi + Math.imul(ah5, bh3)) | 0;\n lo = (lo + Math.imul(al4, bl4)) | 0;\n mid = (mid + Math.imul(al4, bh4)) | 0;\n mid = (mid + Math.imul(ah4, bl4)) | 0;\n hi = (hi + Math.imul(ah4, bh4)) | 0;\n lo = (lo + Math.imul(al3, bl5)) | 0;\n mid = (mid + Math.imul(al3, bh5)) | 0;\n mid = (mid + Math.imul(ah3, bl5)) | 0;\n hi = (hi + Math.imul(ah3, bh5)) | 0;\n lo = (lo + Math.imul(al2, bl6)) | 0;\n mid = (mid + Math.imul(al2, bh6)) | 0;\n mid = (mid + Math.imul(ah2, bl6)) | 0;\n hi = (hi + Math.imul(ah2, bh6)) | 0;\n lo = (lo + Math.imul(al1, bl7)) | 0;\n mid = (mid + Math.imul(al1, bh7)) | 0;\n mid = (mid + Math.imul(ah1, bl7)) | 0;\n hi = (hi + Math.imul(ah1, bh7)) | 0;\n lo = (lo + Math.imul(al0, bl8)) | 0;\n mid = (mid + Math.imul(al0, bh8)) | 0;\n mid = (mid + Math.imul(ah0, bl8)) | 0;\n hi = (hi + Math.imul(ah0, bh8)) | 0;\n var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;\n w8 &= 0x3ffffff;\n /* k = 9 */\n lo = Math.imul(al9, bl0);\n mid = Math.imul(al9, bh0);\n mid = (mid + Math.imul(ah9, bl0)) | 0;\n hi = Math.imul(ah9, bh0);\n lo = (lo + Math.imul(al8, bl1)) | 0;\n mid = (mid + Math.imul(al8, bh1)) | 0;\n mid = (mid + Math.imul(ah8, bl1)) | 0;\n hi = (hi + Math.imul(ah8, bh1)) | 0;\n lo = (lo + Math.imul(al7, bl2)) | 0;\n mid = (mid + Math.imul(al7, bh2)) | 0;\n mid = (mid + Math.imul(ah7, bl2)) | 0;\n hi = (hi + Math.imul(ah7, bh2)) | 0;\n lo = (lo + Math.imul(al6, bl3)) | 0;\n mid = (mid + Math.imul(al6, bh3)) | 0;\n mid = (mid + Math.imul(ah6, bl3)) | 0;\n hi = (hi + Math.imul(ah6, bh3)) | 0;\n lo = (lo + Math.imul(al5, bl4)) | 0;\n mid = (mid + Math.imul(al5, bh4)) | 0;\n mid = (mid + Math.imul(ah5, bl4)) | 0;\n hi = (hi + Math.imul(ah5, bh4)) | 0;\n lo = (lo + Math.imul(al4, bl5)) | 0;\n mid = (mid + Math.imul(al4, bh5)) | 0;\n mid = (mid + Math.imul(ah4, bl5)) | 0;\n hi = (hi + Math.imul(ah4, bh5)) | 0;\n lo = (lo + Math.imul(al3, bl6)) | 0;\n mid = (mid + Math.imul(al3, bh6)) | 0;\n mid = (mid + Math.imul(ah3, bl6)) | 0;\n hi = (hi + Math.imul(ah3, bh6)) | 0;\n lo = (lo + Math.imul(al2, bl7)) | 0;\n mid = (mid + Math.imul(al2, bh7)) | 0;\n mid = (mid + Math.imul(ah2, bl7)) | 0;\n hi = (hi + Math.imul(ah2, bh7)) | 0;\n lo = (lo + Math.imul(al1, bl8)) | 0;\n mid = (mid + Math.imul(al1, bh8)) | 0;\n mid = (mid + Math.imul(ah1, bl8)) | 0;\n hi = (hi + Math.imul(ah1, bh8)) | 0;\n lo = (lo + Math.imul(al0, bl9)) | 0;\n mid = (mid + Math.imul(al0, bh9)) | 0;\n mid = (mid + Math.imul(ah0, bl9)) | 0;\n hi = (hi + Math.imul(ah0, bh9)) | 0;\n var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;\n w9 &= 0x3ffffff;\n /* k = 10 */\n lo = Math.imul(al9, bl1);\n mid = Math.imul(al9, bh1);\n mid = (mid + Math.imul(ah9, bl1)) | 0;\n hi = Math.imul(ah9, bh1);\n lo = (lo + Math.imul(al8, bl2)) | 0;\n mid = (mid + Math.imul(al8, bh2)) | 0;\n mid = (mid + Math.imul(ah8, bl2)) | 0;\n hi = (hi + Math.imul(ah8, bh2)) | 0;\n lo = (lo + Math.imul(al7, bl3)) | 0;\n mid = (mid + Math.imul(al7, bh3)) | 0;\n mid = (mid + Math.imul(ah7, bl3)) | 0;\n hi = (hi + Math.imul(ah7, bh3)) | 0;\n lo = (lo + Math.imul(al6, bl4)) | 0;\n mid = (mid + Math.imul(al6, bh4)) | 0;\n mid = (mid + Math.imul(ah6, bl4)) | 0;\n hi = (hi + Math.imul(ah6, bh4)) | 0;\n lo = (lo + Math.imul(al5, bl5)) | 0;\n mid = (mid + Math.imul(al5, bh5)) | 0;\n mid = (mid + Math.imul(ah5, bl5)) | 0;\n hi = (hi + Math.imul(ah5, bh5)) | 0;\n lo = (lo + Math.imul(al4, bl6)) | 0;\n mid = (mid + Math.imul(al4, bh6)) | 0;\n mid = (mid + Math.imul(ah4, bl6)) | 0;\n hi = (hi + Math.imul(ah4, bh6)) | 0;\n lo = (lo + Math.imul(al3, bl7)) | 0;\n mid = (mid + Math.imul(al3, bh7)) | 0;\n mid = (mid + Math.imul(ah3, bl7)) | 0;\n hi = (hi + Math.imul(ah3, bh7)) | 0;\n lo = (lo + Math.imul(al2, bl8)) | 0;\n mid = (mid + Math.imul(al2, bh8)) | 0;\n mid = (mid + Math.imul(ah2, bl8)) | 0;\n hi = (hi + Math.imul(ah2, bh8)) | 0;\n lo = (lo + Math.imul(al1, bl9)) | 0;\n mid = (mid + Math.imul(al1, bh9)) | 0;\n mid = (mid + Math.imul(ah1, bl9)) | 0;\n hi = (hi + Math.imul(ah1, bh9)) | 0;\n var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;\n w10 &= 0x3ffffff;\n /* k = 11 */\n lo = Math.imul(al9, bl2);\n mid = Math.imul(al9, bh2);\n mid = (mid + Math.imul(ah9, bl2)) | 0;\n hi = Math.imul(ah9, bh2);\n lo = (lo + Math.imul(al8, bl3)) | 0;\n mid = (mid + Math.imul(al8, bh3)) | 0;\n mid = (mid + Math.imul(ah8, bl3)) | 0;\n hi = (hi + Math.imul(ah8, bh3)) | 0;\n lo = (lo + Math.imul(al7, bl4)) | 0;\n mid = (mid + Math.imul(al7, bh4)) | 0;\n mid = (mid + Math.imul(ah7, bl4)) | 0;\n hi = (hi + Math.imul(ah7, bh4)) | 0;\n lo = (lo + Math.imul(al6, bl5)) | 0;\n mid = (mid + Math.imul(al6, bh5)) | 0;\n mid = (mid + Math.imul(ah6, bl5)) | 0;\n hi = (hi + Math.imul(ah6, bh5)) | 0;\n lo = (lo + Math.imul(al5, bl6)) | 0;\n mid = (mid + Math.imul(al5, bh6)) | 0;\n mid = (mid + Math.imul(ah5, bl6)) | 0;\n hi = (hi + Math.imul(ah5, bh6)) | 0;\n lo = (lo + Math.imul(al4, bl7)) | 0;\n mid = (mid + Math.imul(al4, bh7)) | 0;\n mid = (mid + Math.imul(ah4, bl7)) | 0;\n hi = (hi + Math.imul(ah4, bh7)) | 0;\n lo = (lo + Math.imul(al3, bl8)) | 0;\n mid = (mid + Math.imul(al3, bh8)) | 0;\n mid = (mid + Math.imul(ah3, bl8)) | 0;\n hi = (hi + Math.imul(ah3, bh8)) | 0;\n lo = (lo + Math.imul(al2, bl9)) | 0;\n mid = (mid + Math.imul(al2, bh9)) | 0;\n mid = (mid + Math.imul(ah2, bl9)) | 0;\n hi = (hi + Math.imul(ah2, bh9)) | 0;\n var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;\n w11 &= 0x3ffffff;\n /* k = 12 */\n lo = Math.imul(al9, bl3);\n mid = Math.imul(al9, bh3);\n mid = (mid + Math.imul(ah9, bl3)) | 0;\n hi = Math.imul(ah9, bh3);\n lo = (lo + Math.imul(al8, bl4)) | 0;\n mid = (mid + Math.imul(al8, bh4)) | 0;\n mid = (mid + Math.imul(ah8, bl4)) | 0;\n hi = (hi + Math.imul(ah8, bh4)) | 0;\n lo = (lo + Math.imul(al7, bl5)) | 0;\n mid = (mid + Math.imul(al7, bh5)) | 0;\n mid = (mid + Math.imul(ah7, bl5)) | 0;\n hi = (hi + Math.imul(ah7, bh5)) | 0;\n lo = (lo + Math.imul(al6, bl6)) | 0;\n mid = (mid + Math.imul(al6, bh6)) | 0;\n mid = (mid + Math.imul(ah6, bl6)) | 0;\n hi = (hi + Math.imul(ah6, bh6)) | 0;\n lo = (lo + Math.imul(al5, bl7)) | 0;\n mid = (mid + Math.imul(al5, bh7)) | 0;\n mid = (mid + Math.imul(ah5, bl7)) | 0;\n hi = (hi + Math.imul(ah5, bh7)) | 0;\n lo = (lo + Math.imul(al4, bl8)) | 0;\n mid = (mid + Math.imul(al4, bh8)) | 0;\n mid = (mid + Math.imul(ah4, bl8)) | 0;\n hi = (hi + Math.imul(ah4, bh8)) | 0;\n lo = (lo + Math.imul(al3, bl9)) | 0;\n mid = (mid + Math.imul(al3, bh9)) | 0;\n mid = (mid + Math.imul(ah3, bl9)) | 0;\n hi = (hi + Math.imul(ah3, bh9)) | 0;\n var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;\n w12 &= 0x3ffffff;\n /* k = 13 */\n lo = Math.imul(al9, bl4);\n mid = Math.imul(al9, bh4);\n mid = (mid + Math.imul(ah9, bl4)) | 0;\n hi = Math.imul(ah9, bh4);\n lo = (lo + Math.imul(al8, bl5)) | 0;\n mid = (mid + Math.imul(al8, bh5)) | 0;\n mid = (mid + Math.imul(ah8, bl5)) | 0;\n hi = (hi + Math.imul(ah8, bh5)) | 0;\n lo = (lo + Math.imul(al7, bl6)) | 0;\n mid = (mid + Math.imul(al7, bh6)) | 0;\n mid = (mid + Math.imul(ah7, bl6)) | 0;\n hi = (hi + Math.imul(ah7, bh6)) | 0;\n lo = (lo + Math.imul(al6, bl7)) | 0;\n mid = (mid + Math.imul(al6, bh7)) | 0;\n mid = (mid + Math.imul(ah6, bl7)) | 0;\n hi = (hi + Math.imul(ah6, bh7)) | 0;\n lo = (lo + Math.imul(al5, bl8)) | 0;\n mid = (mid + Math.imul(al5, bh8)) | 0;\n mid = (mid + Math.imul(ah5, bl8)) | 0;\n hi = (hi + Math.imul(ah5, bh8)) | 0;\n lo = (lo + Math.imul(al4, bl9)) | 0;\n mid = (mid + Math.imul(al4, bh9)) | 0;\n mid = (mid + Math.imul(ah4, bl9)) | 0;\n hi = (hi + Math.imul(ah4, bh9)) | 0;\n var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;\n w13 &= 0x3ffffff;\n /* k = 14 */\n lo = Math.imul(al9, bl5);\n mid = Math.imul(al9, bh5);\n mid = (mid + Math.imul(ah9, bl5)) | 0;\n hi = Math.imul(ah9, bh5);\n lo = (lo + Math.imul(al8, bl6)) | 0;\n mid = (mid + Math.imul(al8, bh6)) | 0;\n mid = (mid + Math.imul(ah8, bl6)) | 0;\n hi = (hi + Math.imul(ah8, bh6)) | 0;\n lo = (lo + Math.imul(al7, bl7)) | 0;\n mid = (mid + Math.imul(al7, bh7)) | 0;\n mid = (mid + Math.imul(ah7, bl7)) | 0;\n hi = (hi + Math.imul(ah7, bh7)) | 0;\n lo = (lo + Math.imul(al6, bl8)) | 0;\n mid = (mid + Math.imul(al6, bh8)) | 0;\n mid = (mid + Math.imul(ah6, bl8)) | 0;\n hi = (hi + Math.imul(ah6, bh8)) | 0;\n lo = (lo + Math.imul(al5, bl9)) | 0;\n mid = (mid + Math.imul(al5, bh9)) | 0;\n mid = (mid + Math.imul(ah5, bl9)) | 0;\n hi = (hi + Math.imul(ah5, bh9)) | 0;\n var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;\n w14 &= 0x3ffffff;\n /* k = 15 */\n lo = Math.imul(al9, bl6);\n mid = Math.imul(al9, bh6);\n mid = (mid + Math.imul(ah9, bl6)) | 0;\n hi = Math.imul(ah9, bh6);\n lo = (lo + Math.imul(al8, bl7)) | 0;\n mid = (mid + Math.imul(al8, bh7)) | 0;\n mid = (mid + Math.imul(ah8, bl7)) | 0;\n hi = (hi + Math.imul(ah8, bh7)) | 0;\n lo = (lo + Math.imul(al7, bl8)) | 0;\n mid = (mid + Math.imul(al7, bh8)) | 0;\n mid = (mid + Math.imul(ah7, bl8)) | 0;\n hi = (hi + Math.imul(ah7, bh8)) | 0;\n lo = (lo + Math.imul(al6, bl9)) | 0;\n mid = (mid + Math.imul(al6, bh9)) | 0;\n mid = (mid + Math.imul(ah6, bl9)) | 0;\n hi = (hi + Math.imul(ah6, bh9)) | 0;\n var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;\n w15 &= 0x3ffffff;\n /* k = 16 */\n lo = Math.imul(al9, bl7);\n mid = Math.imul(al9, bh7);\n mid = (mid + Math.imul(ah9, bl7)) | 0;\n hi = Math.imul(ah9, bh7);\n lo = (lo + Math.imul(al8, bl8)) | 0;\n mid = (mid + Math.imul(al8, bh8)) | 0;\n mid = (mid + Math.imul(ah8, bl8)) | 0;\n hi = (hi + Math.imul(ah8, bh8)) | 0;\n lo = (lo + Math.imul(al7, bl9)) | 0;\n mid = (mid + Math.imul(al7, bh9)) | 0;\n mid = (mid + Math.imul(ah7, bl9)) | 0;\n hi = (hi + Math.imul(ah7, bh9)) | 0;\n var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;\n w16 &= 0x3ffffff;\n /* k = 17 */\n lo = Math.imul(al9, bl8);\n mid = Math.imul(al9, bh8);\n mid = (mid + Math.imul(ah9, bl8)) | 0;\n hi = Math.imul(ah9, bh8);\n lo = (lo + Math.imul(al8, bl9)) | 0;\n mid = (mid + Math.imul(al8, bh9)) | 0;\n mid = (mid + Math.imul(ah8, bl9)) | 0;\n hi = (hi + Math.imul(ah8, bh9)) | 0;\n var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;\n w17 &= 0x3ffffff;\n /* k = 18 */\n lo = Math.imul(al9, bl9);\n mid = Math.imul(al9, bh9);\n mid = (mid + Math.imul(ah9, bl9)) | 0;\n hi = Math.imul(ah9, bh9);\n var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;\n w18 &= 0x3ffffff;\n o[0] = w0;\n o[1] = w1;\n o[2] = w2;\n o[3] = w3;\n o[4] = w4;\n o[5] = w5;\n o[6] = w6;\n o[7] = w7;\n o[8] = w8;\n o[9] = w9;\n o[10] = w10;\n o[11] = w11;\n o[12] = w12;\n o[13] = w13;\n o[14] = w14;\n o[15] = w15;\n o[16] = w16;\n o[17] = w17;\n o[18] = w18;\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n return out;\n };\n\n // Polyfill comb\n if (!Math.imul) {\n comb10MulTo = smallMulTo;\n }\n\n function bigMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n out.length = self.length + num.length;\n\n var carry = 0;\n var hncarry = 0;\n for (var k = 0; k < out.length - 1; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = hncarry;\n hncarry = 0;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j;\n var a = self.words[i] | 0;\n var b = num.words[j] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;\n lo = (lo + rword) | 0;\n rword = lo & 0x3ffffff;\n ncarry = (ncarry + (lo >>> 26)) | 0;\n\n hncarry += ncarry >>> 26;\n ncarry &= 0x3ffffff;\n }\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\n if (carry !== 0) {\n out.words[k] = carry;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n function jumboMulTo (self, num, out) {\n var fftm = new FFTM();\n return fftm.mulp(self, num, out);\n }\n\n BN.prototype.mulTo = function mulTo (num, out) {\n var res;\n var len = this.length + num.length;\n if (this.length === 10 && num.length === 10) {\n res = comb10MulTo(this, num, out);\n } else if (len < 63) {\n res = smallMulTo(this, num, out);\n } else if (len < 1024) {\n res = bigMulTo(this, num, out);\n } else {\n res = jumboMulTo(this, num, out);\n }\n\n return res;\n };\n\n // Cooley-Tukey algorithm for FFT\n // slightly revisited to rely on looping instead of recursion\n\n function FFTM (x, y) {\n this.x = x;\n this.y = y;\n }\n\n FFTM.prototype.makeRBT = function makeRBT (N) {\n var t = new Array(N);\n var l = BN.prototype._countBits(N) - 1;\n for (var i = 0; i < N; i++) {\n t[i] = this.revBin(i, l, N);\n }\n\n return t;\n };\n\n // Returns binary-reversed representation of `x`\n FFTM.prototype.revBin = function revBin (x, l, N) {\n if (x === 0 || x === N - 1) return x;\n\n var rb = 0;\n for (var i = 0; i < l; i++) {\n rb |= (x & 1) << (l - i - 1);\n x >>= 1;\n }\n\n return rb;\n };\n\n // Performs \"tweedling\" phase, therefore 'emulating'\n // behaviour of the recursive algorithm\n FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {\n for (var i = 0; i < N; i++) {\n rtws[i] = rws[rbt[i]];\n itws[i] = iws[rbt[i]];\n }\n };\n\n FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {\n this.permute(rbt, rws, iws, rtws, itws, N);\n\n for (var s = 1; s < N; s <<= 1) {\n var l = s << 1;\n\n var rtwdf = Math.cos(2 * Math.PI / l);\n var itwdf = Math.sin(2 * Math.PI / l);\n\n for (var p = 0; p < N; p += l) {\n var rtwdf_ = rtwdf;\n var itwdf_ = itwdf;\n\n for (var j = 0; j < s; j++) {\n var re = rtws[p + j];\n var ie = itws[p + j];\n\n var ro = rtws[p + j + s];\n var io = itws[p + j + s];\n\n var rx = rtwdf_ * ro - itwdf_ * io;\n\n io = rtwdf_ * io + itwdf_ * ro;\n ro = rx;\n\n rtws[p + j] = re + ro;\n itws[p + j] = ie + io;\n\n rtws[p + j + s] = re - ro;\n itws[p + j + s] = ie - io;\n\n /* jshint maxdepth : false */\n if (j !== l) {\n rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n\n itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n rtwdf_ = rx;\n }\n }\n }\n }\n };\n\n FFTM.prototype.guessLen13b = function guessLen13b (n, m) {\n var N = Math.max(m, n) | 1;\n var odd = N & 1;\n var i = 0;\n for (N = N / 2 | 0; N; N = N >>> 1) {\n i++;\n }\n\n return 1 << i + 1 + odd;\n };\n\n FFTM.prototype.conjugate = function conjugate (rws, iws, N) {\n if (N <= 1) return;\n\n for (var i = 0; i < N / 2; i++) {\n var t = rws[i];\n\n rws[i] = rws[N - i - 1];\n rws[N - i - 1] = t;\n\n t = iws[i];\n\n iws[i] = -iws[N - i - 1];\n iws[N - i - 1] = -t;\n }\n };\n\n FFTM.prototype.normalize13b = function normalize13b (ws, N) {\n var carry = 0;\n for (var i = 0; i < N / 2; i++) {\n var w = Math.round(ws[2 * i + 1] / N) * 0x2000 +\n Math.round(ws[2 * i] / N) +\n carry;\n\n ws[i] = w & 0x3ffffff;\n\n if (w < 0x4000000) {\n carry = 0;\n } else {\n carry = w / 0x4000000 | 0;\n }\n }\n\n return ws;\n };\n\n FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {\n var carry = 0;\n for (var i = 0; i < len; i++) {\n carry = carry + (ws[i] | 0);\n\n rws[2 * i] = carry & 0x1fff; carry = carry >>> 13;\n rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13;\n }\n\n // Pad with zeroes\n for (i = 2 * len; i < N; ++i) {\n rws[i] = 0;\n }\n\n assert(carry === 0);\n assert((carry & ~0x1fff) === 0);\n };\n\n FFTM.prototype.stub = function stub (N) {\n var ph = new Array(N);\n for (var i = 0; i < N; i++) {\n ph[i] = 0;\n }\n\n return ph;\n };\n\n FFTM.prototype.mulp = function mulp (x, y, out) {\n var N = 2 * this.guessLen13b(x.length, y.length);\n\n var rbt = this.makeRBT(N);\n\n var _ = this.stub(N);\n\n var rws = new Array(N);\n var rwst = new Array(N);\n var iwst = new Array(N);\n\n var nrws = new Array(N);\n var nrwst = new Array(N);\n var niwst = new Array(N);\n\n var rmws = out.words;\n rmws.length = N;\n\n this.convert13b(x.words, x.length, rws, N);\n this.convert13b(y.words, y.length, nrws, N);\n\n this.transform(rws, _, rwst, iwst, N, rbt);\n this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n for (var i = 0; i < N; i++) {\n var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n rwst[i] = rx;\n }\n\n this.conjugate(rwst, iwst, N);\n this.transform(rwst, iwst, rmws, _, N, rbt);\n this.conjugate(rmws, _, N);\n this.normalize13b(rmws, N);\n\n out.negative = x.negative ^ y.negative;\n out.length = x.length + y.length;\n return out.strip();\n };\n\n // Multiply `this` by `num`\n BN.prototype.mul = function mul (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return this.mulTo(num, out);\n };\n\n // Multiply employing FFT\n BN.prototype.mulf = function mulf (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return jumboMulTo(this, num, out);\n };\n\n // In-place Multiplication\n BN.prototype.imul = function imul (num) {\n return this.clone().mulTo(num, this);\n };\n\n BN.prototype.imuln = function imuln (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n\n // Carry\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = (this.words[i] | 0) * num;\n var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n carry >>= 26;\n carry += (w / 0x4000000) | 0;\n // NOTE: lo is 27bit maximum\n carry += lo >>> 26;\n this.words[i] = lo & 0x3ffffff;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n\n return this;\n };\n\n BN.prototype.muln = function muln (num) {\n return this.clone().imuln(num);\n };\n\n // `this` * `this`\n BN.prototype.sqr = function sqr () {\n return this.mul(this);\n };\n\n // `this` * `this` in-place\n BN.prototype.isqr = function isqr () {\n return this.imul(this.clone());\n };\n\n // Math.pow(`this`, `num`)\n BN.prototype.pow = function pow (num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1);\n\n // Skip leading zeroes\n var res = this;\n for (var i = 0; i < w.length; i++, res = res.sqr()) {\n if (w[i] !== 0) break;\n }\n\n if (++i < w.length) {\n for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n if (w[i] === 0) continue;\n\n res = res.mul(q);\n }\n }\n\n return res;\n };\n\n // Shift-left in-place\n BN.prototype.iushln = function iushln (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);\n var i;\n\n if (r !== 0) {\n var carry = 0;\n\n for (i = 0; i < this.length; i++) {\n var newCarry = this.words[i] & carryMask;\n var c = ((this.words[i] | 0) - newCarry) << r;\n this.words[i] = c | carry;\n carry = newCarry >>> (26 - r);\n }\n\n if (carry) {\n this.words[i] = carry;\n this.length++;\n }\n }\n\n if (s !== 0) {\n for (i = this.length - 1; i >= 0; i--) {\n this.words[i + s] = this.words[i];\n }\n\n for (i = 0; i < s; i++) {\n this.words[i] = 0;\n }\n\n this.length += s;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishln = function ishln (bits) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushln(bits);\n };\n\n // Shift-right in-place\n // NOTE: `hint` is a lowest bit before trailing zeroes\n // NOTE: if `extended` is present - it will be filled with destroyed bits\n BN.prototype.iushrn = function iushrn (bits, hint, extended) {\n assert(typeof bits === 'number' && bits >= 0);\n var h;\n if (hint) {\n h = (hint - (hint % 26)) / 26;\n } else {\n h = 0;\n }\n\n var r = bits % 26;\n var s = Math.min((bits - r) / 26, this.length);\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n var maskedWords = extended;\n\n h -= s;\n h = Math.max(0, h);\n\n // Extended mode, copy masked part\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n maskedWords.length = s;\n }\n\n if (s === 0) {\n // No-op, we should not move anything at all\n } else if (this.length > s) {\n this.length -= s;\n for (i = 0; i < this.length; i++) {\n this.words[i] = this.words[i + s];\n }\n } else {\n this.words[0] = 0;\n this.length = 1;\n }\n\n var carry = 0;\n for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n var word = this.words[i] | 0;\n this.words[i] = (carry << (26 - r)) | (word >>> r);\n carry = word & mask;\n }\n\n // Push carried bits as a mask\n if (maskedWords && carry !== 0) {\n maskedWords.words[maskedWords.length++] = carry;\n }\n\n if (this.length === 0) {\n this.words[0] = 0;\n this.length = 1;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishrn = function ishrn (bits, hint, extended) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushrn(bits, hint, extended);\n };\n\n // Shift-left\n BN.prototype.shln = function shln (bits) {\n return this.clone().ishln(bits);\n };\n\n BN.prototype.ushln = function ushln (bits) {\n return this.clone().iushln(bits);\n };\n\n // Shift-right\n BN.prototype.shrn = function shrn (bits) {\n return this.clone().ishrn(bits);\n };\n\n BN.prototype.ushrn = function ushrn (bits) {\n return this.clone().iushrn(bits);\n };\n\n // Test if n bit is set\n BN.prototype.testn = function testn (bit) {\n assert(typeof bit === 'number' && bit >= 0);\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) return false;\n\n // Check bit and return\n var w = this.words[s];\n\n return !!(w & q);\n };\n\n // Return only lowers bits of number (in-place)\n BN.prototype.imaskn = function imaskn (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n\n assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n if (this.length <= s) {\n return this;\n }\n\n if (r !== 0) {\n s++;\n }\n this.length = Math.min(s, this.length);\n\n if (r !== 0) {\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n this.words[this.length - 1] &= mask;\n }\n\n return this.strip();\n };\n\n // Return only lowers bits of number\n BN.prototype.maskn = function maskn (bits) {\n return this.clone().imaskn(bits);\n };\n\n // Add plain number `num` to `this`\n BN.prototype.iaddn = function iaddn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.isubn(-num);\n\n // Possible sign change\n if (this.negative !== 0) {\n if (this.length === 1 && (this.words[0] | 0) < num) {\n this.words[0] = num - (this.words[0] | 0);\n this.negative = 0;\n return this;\n }\n\n this.negative = 0;\n this.isubn(num);\n this.negative = 1;\n return this;\n }\n\n // Add without checks\n return this._iaddn(num);\n };\n\n BN.prototype._iaddn = function _iaddn (num) {\n this.words[0] += num;\n\n // Carry\n for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n this.words[i] -= 0x4000000;\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n this.length = Math.max(this.length, i + 1);\n\n return this;\n };\n\n // Subtract plain number `num` from `this`\n BN.prototype.isubn = function isubn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.iaddn(-num);\n\n if (this.negative !== 0) {\n this.negative = 0;\n this.iaddn(num);\n this.negative = 1;\n return this;\n }\n\n this.words[0] -= num;\n\n if (this.length === 1 && this.words[0] < 0) {\n this.words[0] = -this.words[0];\n this.negative = 1;\n } else {\n // Carry\n for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n this.words[i] += 0x4000000;\n this.words[i + 1] -= 1;\n }\n }\n\n return this.strip();\n };\n\n BN.prototype.addn = function addn (num) {\n return this.clone().iaddn(num);\n };\n\n BN.prototype.subn = function subn (num) {\n return this.clone().isubn(num);\n };\n\n BN.prototype.iabs = function iabs () {\n this.negative = 0;\n\n return this;\n };\n\n BN.prototype.abs = function abs () {\n return this.clone().iabs();\n };\n\n BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {\n var len = num.length + shift;\n var i;\n\n this._expand(len);\n\n var w;\n var carry = 0;\n for (i = 0; i < num.length; i++) {\n w = (this.words[i + shift] | 0) + carry;\n var right = (num.words[i] | 0) * mul;\n w -= right & 0x3ffffff;\n carry = (w >> 26) - ((right / 0x4000000) | 0);\n this.words[i + shift] = w & 0x3ffffff;\n }\n for (; i < this.length - shift; i++) {\n w = (this.words[i + shift] | 0) + carry;\n carry = w >> 26;\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n if (carry === 0) return this.strip();\n\n // Subtraction overflow\n assert(carry === -1);\n carry = 0;\n for (i = 0; i < this.length; i++) {\n w = -(this.words[i] | 0) + carry;\n carry = w >> 26;\n this.words[i] = w & 0x3ffffff;\n }\n this.negative = 1;\n\n return this.strip();\n };\n\n BN.prototype._wordDiv = function _wordDiv (num, mode) {\n var shift = this.length - num.length;\n\n var a = this.clone();\n var b = num;\n\n // Normalize\n var bhi = b.words[b.length - 1] | 0;\n var bhiBits = this._countBits(bhi);\n shift = 26 - bhiBits;\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n }\n\n // Initialize quotient\n var m = a.length - b.length;\n var q;\n\n if (mode !== 'mod') {\n q = new BN(null);\n q.length = m + 1;\n q.words = new Array(q.length);\n for (var i = 0; i < q.length; i++) {\n q.words[i] = 0;\n }\n }\n\n var diff = a.clone()._ishlnsubmul(b, 1, m);\n if (diff.negative === 0) {\n a = diff;\n if (q) {\n q.words[m] = 1;\n }\n }\n\n for (var j = m - 1; j >= 0; j--) {\n var qj = (a.words[b.length + j] | 0) * 0x4000000 +\n (a.words[b.length + j - 1] | 0);\n\n // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n // (0x7ffffff)\n qj = Math.min((qj / bhi) | 0, 0x3ffffff);\n\n a._ishlnsubmul(b, qj, j);\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n a._ishlnsubmul(b, 1, j);\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n if (q) {\n q.words[j] = qj;\n }\n }\n if (q) {\n q.strip();\n }\n a.strip();\n\n // Denormalize\n if (mode !== 'div' && shift !== 0) {\n a.iushrn(shift);\n }\n\n return {\n div: q || null,\n mod: a\n };\n };\n\n // NOTE: 1) `mode` can be set to `mod` to request mod only,\n // to `div` to request div only, or be absent to\n // request both div & mod\n // 2) `positive` is true if unsigned mod is requested\n BN.prototype.divmod = function divmod (num, mode, positive) {\n assert(!num.isZero());\n\n if (this.isZero()) {\n return {\n div: new BN(0),\n mod: new BN(0)\n };\n }\n\n var div, mod, res;\n if (this.negative !== 0 && num.negative === 0) {\n res = this.neg().divmod(num, mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.iadd(num);\n }\n }\n\n return {\n div: div,\n mod: mod\n };\n }\n\n if (this.negative === 0 && num.negative !== 0) {\n res = this.divmod(num.neg(), mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n return {\n div: div,\n mod: res.mod\n };\n }\n\n if ((this.negative & num.negative) !== 0) {\n res = this.neg().divmod(num.neg(), mode);\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n\n return {\n div: res.div,\n mod: mod\n };\n }\n\n // Both numbers are positive at this point\n\n // Strip both numbers to approximate shift value\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n }\n\n // Very short reduction\n if (num.length === 1) {\n if (mode === 'div') {\n return {\n div: this.divn(num.words[0]),\n mod: null\n };\n }\n\n if (mode === 'mod') {\n return {\n div: null,\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return this._wordDiv(num, mode);\n };\n\n // Find `this` / `num`\n BN.prototype.div = function div (num) {\n return this.divmod(num, 'div', false).div;\n };\n\n // Find `this` % `num`\n BN.prototype.mod = function mod (num) {\n return this.divmod(num, 'mod', false).mod;\n };\n\n BN.prototype.umod = function umod (num) {\n return this.divmod(num, 'mod', true).mod;\n };\n\n // Find Round(`this` / `num`)\n BN.prototype.divRound = function divRound (num) {\n var dm = this.divmod(num);\n\n // Fast case - exact division\n if (dm.mod.isZero()) return dm.div;\n\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half);\n\n // Round down\n if (cmp < 0 || r2 === 1 && cmp === 0) return dm.div;\n\n // Round up\n return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n };\n\n BN.prototype.modn = function modn (num) {\n assert(num <= 0x3ffffff);\n var p = (1 << 26) % num;\n\n var acc = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n acc = (p * acc + (this.words[i] | 0)) % num;\n }\n\n return acc;\n };\n\n // In-place division by number\n BN.prototype.idivn = function idivn (num) {\n assert(num <= 0x3ffffff);\n\n var carry = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var w = (this.words[i] | 0) + carry * 0x4000000;\n this.words[i] = (w / num) | 0;\n carry = w % num;\n }\n\n return this.strip();\n };\n\n BN.prototype.divn = function divn (num) {\n return this.clone().idivn(num);\n };\n\n BN.prototype.egcd = function egcd (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var x = this;\n var y = p.clone();\n\n if (x.negative !== 0) {\n x = x.umod(p);\n } else {\n x = x.clone();\n }\n\n // A * x + B * y = x\n var A = new BN(1);\n var B = new BN(0);\n\n // C * x + D * y = y\n var C = new BN(0);\n var D = new BN(1);\n\n var g = 0;\n\n while (x.isEven() && y.isEven()) {\n x.iushrn(1);\n y.iushrn(1);\n ++g;\n }\n\n var yp = y.clone();\n var xp = x.clone();\n\n while (!x.isZero()) {\n for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n x.iushrn(i);\n while (i-- > 0) {\n if (A.isOdd() || B.isOdd()) {\n A.iadd(yp);\n B.isub(xp);\n }\n\n A.iushrn(1);\n B.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n y.iushrn(j);\n while (j-- > 0) {\n if (C.isOdd() || D.isOdd()) {\n C.iadd(yp);\n D.isub(xp);\n }\n\n C.iushrn(1);\n D.iushrn(1);\n }\n }\n\n if (x.cmp(y) >= 0) {\n x.isub(y);\n A.isub(C);\n B.isub(D);\n } else {\n y.isub(x);\n C.isub(A);\n D.isub(B);\n }\n }\n\n return {\n a: C,\n b: D,\n gcd: y.iushln(g)\n };\n };\n\n // This is reduced incarnation of the binary EEA\n // above, designated to invert members of the\n // _prime_ fields F(p) at a maximal speed\n BN.prototype._invmp = function _invmp (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var a = this;\n var b = p.clone();\n\n if (a.negative !== 0) {\n a = a.umod(p);\n } else {\n a = a.clone();\n }\n\n var x1 = new BN(1);\n var x2 = new BN(0);\n\n var delta = b.clone();\n\n while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n a.iushrn(i);\n while (i-- > 0) {\n if (x1.isOdd()) {\n x1.iadd(delta);\n }\n\n x1.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n b.iushrn(j);\n while (j-- > 0) {\n if (x2.isOdd()) {\n x2.iadd(delta);\n }\n\n x2.iushrn(1);\n }\n }\n\n if (a.cmp(b) >= 0) {\n a.isub(b);\n x1.isub(x2);\n } else {\n b.isub(a);\n x2.isub(x1);\n }\n }\n\n var res;\n if (a.cmpn(1) === 0) {\n res = x1;\n } else {\n res = x2;\n }\n\n if (res.cmpn(0) < 0) {\n res.iadd(p);\n }\n\n return res;\n };\n\n BN.prototype.gcd = function gcd (num) {\n if (this.isZero()) return num.abs();\n if (num.isZero()) return this.abs();\n\n var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0;\n\n // Remove common factor of two\n for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n a.iushrn(1);\n b.iushrn(1);\n }\n\n do {\n while (a.isEven()) {\n a.iushrn(1);\n }\n while (b.isEven()) {\n b.iushrn(1);\n }\n\n var r = a.cmp(b);\n if (r < 0) {\n // Swap `a` and `b` to make `a` always bigger than `b`\n var t = a;\n a = b;\n b = t;\n } else if (r === 0 || b.cmpn(1) === 0) {\n break;\n }\n\n a.isub(b);\n } while (true);\n\n return b.iushln(shift);\n };\n\n // Invert number in the field F(num)\n BN.prototype.invm = function invm (num) {\n return this.egcd(num).a.umod(num);\n };\n\n BN.prototype.isEven = function isEven () {\n return (this.words[0] & 1) === 0;\n };\n\n BN.prototype.isOdd = function isOdd () {\n return (this.words[0] & 1) === 1;\n };\n\n // And first word and num\n BN.prototype.andln = function andln (num) {\n return this.words[0] & num;\n };\n\n // Increment at the bit position in-line\n BN.prototype.bincn = function bincn (bit) {\n assert(typeof bit === 'number');\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) {\n this._expand(s + 1);\n this.words[s] |= q;\n return this;\n }\n\n // Add bit and propagate, if needed\n var carry = q;\n for (var i = s; carry !== 0 && i < this.length; i++) {\n var w = this.words[i] | 0;\n w += carry;\n carry = w >>> 26;\n w &= 0x3ffffff;\n this.words[i] = w;\n }\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n return this;\n };\n\n BN.prototype.isZero = function isZero () {\n return this.length === 1 && this.words[0] === 0;\n };\n\n BN.prototype.cmpn = function cmpn (num) {\n var negative = num < 0;\n\n if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n\n this.strip();\n\n var res;\n if (this.length > 1) {\n res = 1;\n } else {\n if (negative) {\n num = -num;\n }\n\n assert(num <= 0x3ffffff, 'Number is too big');\n\n var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Compare two numbers and return:\n // 1 - if `this` > `num`\n // 0 - if `this` == `num`\n // -1 - if `this` < `num`\n BN.prototype.cmp = function cmp (num) {\n if (this.negative !== 0 && num.negative === 0) return -1;\n if (this.negative === 0 && num.negative !== 0) return 1;\n\n var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Unsigned comparison\n BN.prototype.ucmp = function ucmp (num) {\n // At this point both numbers have the same sign\n if (this.length > num.length) return 1;\n if (this.length < num.length) return -1;\n\n var res = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var a = this.words[i] | 0;\n var b = num.words[i] | 0;\n\n if (a === b) continue;\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n break;\n }\n return res;\n };\n\n BN.prototype.gtn = function gtn (num) {\n return this.cmpn(num) === 1;\n };\n\n BN.prototype.gt = function gt (num) {\n return this.cmp(num) === 1;\n };\n\n BN.prototype.gten = function gten (num) {\n return this.cmpn(num) >= 0;\n };\n\n BN.prototype.gte = function gte (num) {\n return this.cmp(num) >= 0;\n };\n\n BN.prototype.ltn = function ltn (num) {\n return this.cmpn(num) === -1;\n };\n\n BN.prototype.lt = function lt (num) {\n return this.cmp(num) === -1;\n };\n\n BN.prototype.lten = function lten (num) {\n return this.cmpn(num) <= 0;\n };\n\n BN.prototype.lte = function lte (num) {\n return this.cmp(num) <= 0;\n };\n\n BN.prototype.eqn = function eqn (num) {\n return this.cmpn(num) === 0;\n };\n\n BN.prototype.eq = function eq (num) {\n return this.cmp(num) === 0;\n };\n\n //\n // A reduce context, could be using montgomery or something better, depending\n // on the `m` itself.\n //\n BN.red = function red (num) {\n return new Red(num);\n };\n\n BN.prototype.toRed = function toRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n assert(this.negative === 0, 'red works only with positives');\n return ctx.convertTo(this)._forceRed(ctx);\n };\n\n BN.prototype.fromRed = function fromRed () {\n assert(this.red, 'fromRed works only with numbers in reduction context');\n return this.red.convertFrom(this);\n };\n\n BN.prototype._forceRed = function _forceRed (ctx) {\n this.red = ctx;\n return this;\n };\n\n BN.prototype.forceRed = function forceRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n return this._forceRed(ctx);\n };\n\n BN.prototype.redAdd = function redAdd (num) {\n assert(this.red, 'redAdd works only with red numbers');\n return this.red.add(this, num);\n };\n\n BN.prototype.redIAdd = function redIAdd (num) {\n assert(this.red, 'redIAdd works only with red numbers');\n return this.red.iadd(this, num);\n };\n\n BN.prototype.redSub = function redSub (num) {\n assert(this.red, 'redSub works only with red numbers');\n return this.red.sub(this, num);\n };\n\n BN.prototype.redISub = function redISub (num) {\n assert(this.red, 'redISub works only with red numbers');\n return this.red.isub(this, num);\n };\n\n BN.prototype.redShl = function redShl (num) {\n assert(this.red, 'redShl works only with red numbers');\n return this.red.shl(this, num);\n };\n\n BN.prototype.redMul = function redMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.mul(this, num);\n };\n\n BN.prototype.redIMul = function redIMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.imul(this, num);\n };\n\n BN.prototype.redSqr = function redSqr () {\n assert(this.red, 'redSqr works only with red numbers');\n this.red._verify1(this);\n return this.red.sqr(this);\n };\n\n BN.prototype.redISqr = function redISqr () {\n assert(this.red, 'redISqr works only with red numbers');\n this.red._verify1(this);\n return this.red.isqr(this);\n };\n\n // Square root over p\n BN.prototype.redSqrt = function redSqrt () {\n assert(this.red, 'redSqrt works only with red numbers');\n this.red._verify1(this);\n return this.red.sqrt(this);\n };\n\n BN.prototype.redInvm = function redInvm () {\n assert(this.red, 'redInvm works only with red numbers');\n this.red._verify1(this);\n return this.red.invm(this);\n };\n\n // Return negative clone of `this` % `red modulo`\n BN.prototype.redNeg = function redNeg () {\n assert(this.red, 'redNeg works only with red numbers');\n this.red._verify1(this);\n return this.red.neg(this);\n };\n\n BN.prototype.redPow = function redPow (num) {\n assert(this.red && !num.red, 'redPow(normalNum)');\n this.red._verify1(this);\n return this.red.pow(this, num);\n };\n\n // Prime numbers with efficient reduction\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n };\n\n // Pseudo-Mersenne prime\n function MPrime (name, p) {\n // P = 2 ^ N - K\n this.name = name;\n this.p = new BN(p, 16);\n this.n = this.p.bitLength();\n this.k = new BN(1).iushln(this.n).isub(this.p);\n\n this.tmp = this._tmp();\n }\n\n MPrime.prototype._tmp = function _tmp () {\n var tmp = new BN(null);\n tmp.words = new Array(Math.ceil(this.n / 13));\n return tmp;\n };\n\n MPrime.prototype.ireduce = function ireduce (num) {\n // Assumes that `num` is less than `P^2`\n // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n var r = num;\n var rlen;\n\n do {\n this.split(r, this.tmp);\n r = this.imulK(r);\n r = r.iadd(this.tmp);\n rlen = r.bitLength();\n } while (rlen > this.n);\n\n var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n if (cmp === 0) {\n r.words[0] = 0;\n r.length = 1;\n } else if (cmp > 0) {\n r.isub(this.p);\n } else {\n if (r.strip !== undefined) {\n // r is BN v4 instance\n r.strip();\n } else {\n // r is BN v5 instance\n r._strip();\n }\n }\n\n return r;\n };\n\n MPrime.prototype.split = function split (input, out) {\n input.iushrn(this.n, 0, out);\n };\n\n MPrime.prototype.imulK = function imulK (num) {\n return num.imul(this.k);\n };\n\n function K256 () {\n MPrime.call(\n this,\n 'k256',\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n }\n inherits(K256, MPrime);\n\n K256.prototype.split = function split (input, output) {\n // 256 = 9 * 26 + 22\n var mask = 0x3fffff;\n\n var outLen = Math.min(input.length, 9);\n for (var i = 0; i < outLen; i++) {\n output.words[i] = input.words[i];\n }\n output.length = outLen;\n\n if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n }\n\n // Shift by 9 limbs\n var prev = input.words[9];\n output.words[output.length++] = prev & mask;\n\n for (i = 10; i < input.length; i++) {\n var next = input.words[i] | 0;\n input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22);\n prev = next;\n }\n prev >>>= 22;\n input.words[i - 10] = prev;\n if (prev === 0 && input.length > 10) {\n input.length -= 10;\n } else {\n input.length -= 9;\n }\n };\n\n K256.prototype.imulK = function imulK (num) {\n // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n num.words[num.length] = 0;\n num.words[num.length + 1] = 0;\n num.length += 2;\n\n // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n var lo = 0;\n for (var i = 0; i < num.length; i++) {\n var w = num.words[i] | 0;\n lo += w * 0x3d1;\n num.words[i] = lo & 0x3ffffff;\n lo = w * 0x40 + ((lo / 0x4000000) | 0);\n }\n\n // Fast length reduction\n if (num.words[num.length - 1] === 0) {\n num.length--;\n if (num.words[num.length - 1] === 0) {\n num.length--;\n }\n }\n return num;\n };\n\n function P224 () {\n MPrime.call(\n this,\n 'p224',\n 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n }\n inherits(P224, MPrime);\n\n function P192 () {\n MPrime.call(\n this,\n 'p192',\n 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n }\n inherits(P192, MPrime);\n\n function P25519 () {\n // 2 ^ 255 - 19\n MPrime.call(\n this,\n '25519',\n '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n }\n inherits(P25519, MPrime);\n\n P25519.prototype.imulK = function imulK (num) {\n // K = 0x13\n var carry = 0;\n for (var i = 0; i < num.length; i++) {\n var hi = (num.words[i] | 0) * 0x13 + carry;\n var lo = hi & 0x3ffffff;\n hi >>>= 26;\n\n num.words[i] = lo;\n carry = hi;\n }\n if (carry !== 0) {\n num.words[num.length++] = carry;\n }\n return num;\n };\n\n // Exported mostly for testing purposes, use plain name instead\n BN._prime = function prime (name) {\n // Cached version of prime\n if (primes[name]) return primes[name];\n\n var prime;\n if (name === 'k256') {\n prime = new K256();\n } else if (name === 'p224') {\n prime = new P224();\n } else if (name === 'p192') {\n prime = new P192();\n } else if (name === 'p25519') {\n prime = new P25519();\n } else {\n throw new Error('Unknown prime ' + name);\n }\n primes[name] = prime;\n\n return prime;\n };\n\n //\n // Base reduction engine\n //\n function Red (m) {\n if (typeof m === 'string') {\n var prime = BN._prime(m);\n this.m = prime.p;\n this.prime = prime;\n } else {\n assert(m.gtn(1), 'modulus must be greater than 1');\n this.m = m;\n this.prime = null;\n }\n }\n\n Red.prototype._verify1 = function _verify1 (a) {\n assert(a.negative === 0, 'red works only with positives');\n assert(a.red, 'red works only with red numbers');\n };\n\n Red.prototype._verify2 = function _verify2 (a, b) {\n assert((a.negative | b.negative) === 0, 'red works only with positives');\n assert(a.red && a.red === b.red,\n 'red works only with red numbers');\n };\n\n Red.prototype.imod = function imod (a) {\n if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n return a.umod(this.m)._forceRed(this);\n };\n\n Red.prototype.neg = function neg (a) {\n if (a.isZero()) {\n return a.clone();\n }\n\n return this.m.sub(a)._forceRed(this);\n };\n\n Red.prototype.add = function add (a, b) {\n this._verify2(a, b);\n\n var res = a.add(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.iadd = function iadd (a, b) {\n this._verify2(a, b);\n\n var res = a.iadd(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res;\n };\n\n Red.prototype.sub = function sub (a, b) {\n this._verify2(a, b);\n\n var res = a.sub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.isub = function isub (a, b) {\n this._verify2(a, b);\n\n var res = a.isub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res;\n };\n\n Red.prototype.shl = function shl (a, num) {\n this._verify1(a);\n return this.imod(a.ushln(num));\n };\n\n Red.prototype.imul = function imul (a, b) {\n this._verify2(a, b);\n return this.imod(a.imul(b));\n };\n\n Red.prototype.mul = function mul (a, b) {\n this._verify2(a, b);\n return this.imod(a.mul(b));\n };\n\n Red.prototype.isqr = function isqr (a) {\n return this.imul(a, a.clone());\n };\n\n Red.prototype.sqr = function sqr (a) {\n return this.mul(a, a);\n };\n\n Red.prototype.sqrt = function sqrt (a) {\n if (a.isZero()) return a.clone();\n\n var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1);\n\n // Fast case\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n }\n\n // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n //\n // Find Q and S, that Q * 2 ^ S = (P - 1)\n var q = this.m.subn(1);\n var s = 0;\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n assert(!q.isZero());\n\n var one = new BN(1).toRed(this);\n var nOne = one.redNeg();\n\n // Find quadratic non-residue\n // NOTE: Max is such because of generalized Riemann hypothesis.\n var lpow = this.m.subn(1).iushrn(1);\n var z = this.m.bitLength();\n z = new BN(2 * z * z).toRed(this);\n\n while (this.pow(z, lpow).cmp(nOne) !== 0) {\n z.redIAdd(nOne);\n }\n\n var c = this.pow(z, q);\n var r = this.pow(a, q.addn(1).iushrn(1));\n var t = this.pow(a, q);\n var m = s;\n while (t.cmp(one) !== 0) {\n var tmp = t;\n for (var i = 0; tmp.cmp(one) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\n\n r = r.redMul(b);\n c = b.redSqr();\n t = t.redMul(c);\n m = i;\n }\n\n return r;\n };\n\n Red.prototype.invm = function invm (a) {\n var inv = a._invmp(this.m);\n if (inv.negative !== 0) {\n inv.negative = 0;\n return this.imod(inv).redNeg();\n } else {\n return this.imod(inv);\n }\n };\n\n Red.prototype.pow = function pow (a, num) {\n if (num.isZero()) return new BN(1).toRed(this);\n if (num.cmpn(1) === 0) return a.clone();\n\n var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n for (var i = 2; i < wnd.length; i++) {\n wnd[i] = this.mul(wnd[i - 1], a);\n }\n\n var res = wnd[0];\n var current = 0;\n var currentLen = 0;\n var start = num.bitLength() % 26;\n if (start === 0) {\n start = 26;\n }\n\n for (i = num.length - 1; i >= 0; i--) {\n var word = num.words[i];\n for (var j = start - 1; j >= 0; j--) {\n var bit = (word >> j) & 1;\n if (res !== wnd[0]) {\n res = this.sqr(res);\n }\n\n if (bit === 0 && current === 0) {\n currentLen = 0;\n continue;\n }\n\n current <<= 1;\n current |= bit;\n currentLen++;\n if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n\n res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\n start = 26;\n }\n\n return res;\n };\n\n Red.prototype.convertTo = function convertTo (num) {\n var r = num.umod(this.m);\n\n return r === num ? r.clone() : r;\n };\n\n Red.prototype.convertFrom = function convertFrom (num) {\n var res = num.clone();\n res.red = null;\n return res;\n };\n\n //\n // Montgomery method engine\n //\n\n BN.mont = function mont (num) {\n return new Mont(num);\n };\n\n function Mont (m) {\n Red.call(this, m);\n\n this.shift = this.m.bitLength();\n if (this.shift % 26 !== 0) {\n this.shift += 26 - (this.shift % 26);\n }\n\n this.r = new BN(1).iushln(this.shift);\n this.r2 = this.imod(this.r.sqr());\n this.rinv = this.r._invmp(this.m);\n\n this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n this.minv = this.minv.umod(this.r);\n this.minv = this.r.sub(this.minv);\n }\n inherits(Mont, Red);\n\n Mont.prototype.convertTo = function convertTo (num) {\n return this.imod(num.ushln(this.shift));\n };\n\n Mont.prototype.convertFrom = function convertFrom (num) {\n var r = this.imod(num.mul(this.rinv));\n r.red = null;\n return r;\n };\n\n Mont.prototype.imul = function imul (a, b) {\n if (a.isZero() || b.isZero()) {\n a.words[0] = 0;\n a.length = 1;\n return a;\n }\n\n var t = a.imul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.mul = function mul (a, b) {\n if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n\n var t = a.mul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.invm = function invm (a) {\n // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n var res = this.imod(a._invmp(this.m).mul(this.r2));\n return res._forceRed(this);\n };\n})(typeof module === 'undefined' || module, this);\n", "module.exports = assert;\n\nfunction assert(val, msg) {\n if (!val)\n throw new Error(msg || 'Assertion failed');\n}\n\nassert.equal = function assertEqual(l, r, msg) {\n if (l != r)\n throw new Error(msg || ('Assertion failed: ' + l + ' != ' + r));\n};\n", "'use strict';\n\nvar utils = exports;\n\nfunction toArray(msg, enc) {\n if (Array.isArray(msg))\n return msg.slice();\n if (!msg)\n return [];\n var res = [];\n if (typeof msg !== 'string') {\n for (var i = 0; i < msg.length; i++)\n res[i] = msg[i] | 0;\n return res;\n }\n if (enc === 'hex') {\n msg = msg.replace(/[^a-z0-9]+/ig, '');\n if (msg.length % 2 !== 0)\n msg = '0' + msg;\n for (var i = 0; i < msg.length; i += 2)\n res.push(parseInt(msg[i] + msg[i + 1], 16));\n } else {\n for (var i = 0; i < msg.length; i++) {\n var c = msg.charCodeAt(i);\n var hi = c >> 8;\n var lo = c & 0xff;\n if (hi)\n res.push(hi, lo);\n else\n res.push(lo);\n }\n }\n return res;\n}\nutils.toArray = toArray;\n\nfunction zero2(word) {\n if (word.length === 1)\n return '0' + word;\n else\n return word;\n}\nutils.zero2 = zero2;\n\nfunction toHex(msg) {\n var res = '';\n for (var i = 0; i < msg.length; i++)\n res += zero2(msg[i].toString(16));\n return res;\n}\nutils.toHex = toHex;\n\nutils.encode = function encode(arr, enc) {\n if (enc === 'hex')\n return toHex(arr);\n else\n return arr;\n};\n", "'use strict';\n\nvar utils = exports;\nvar BN = require('bn.js');\nvar minAssert = require('minimalistic-assert');\nvar minUtils = require('minimalistic-crypto-utils');\n\nutils.assert = minAssert;\nutils.toArray = minUtils.toArray;\nutils.zero2 = minUtils.zero2;\nutils.toHex = minUtils.toHex;\nutils.encode = minUtils.encode;\n\n// Represent num in a w-NAF form\nfunction getNAF(num, w, bits) {\n var naf = new Array(Math.max(num.bitLength(), bits) + 1);\n naf.fill(0);\n\n var ws = 1 << (w + 1);\n var k = num.clone();\n\n for (var i = 0; i < naf.length; i++) {\n var z;\n var mod = k.andln(ws - 1);\n if (k.isOdd()) {\n if (mod > (ws >> 1) - 1)\n z = (ws >> 1) - mod;\n else\n z = mod;\n k.isubn(z);\n } else {\n z = 0;\n }\n\n naf[i] = z;\n k.iushrn(1);\n }\n\n return naf;\n}\nutils.getNAF = getNAF;\n\n// Represent k1, k2 in a Joint Sparse Form\nfunction getJSF(k1, k2) {\n var jsf = [\n [],\n [],\n ];\n\n k1 = k1.clone();\n k2 = k2.clone();\n var d1 = 0;\n var d2 = 0;\n var m8;\n while (k1.cmpn(-d1) > 0 || k2.cmpn(-d2) > 0) {\n // First phase\n var m14 = (k1.andln(3) + d1) & 3;\n var m24 = (k2.andln(3) + d2) & 3;\n if (m14 === 3)\n m14 = -1;\n if (m24 === 3)\n m24 = -1;\n var u1;\n if ((m14 & 1) === 0) {\n u1 = 0;\n } else {\n m8 = (k1.andln(7) + d1) & 7;\n if ((m8 === 3 || m8 === 5) && m24 === 2)\n u1 = -m14;\n else\n u1 = m14;\n }\n jsf[0].push(u1);\n\n var u2;\n if ((m24 & 1) === 0) {\n u2 = 0;\n } else {\n m8 = (k2.andln(7) + d2) & 7;\n if ((m8 === 3 || m8 === 5) && m14 === 2)\n u2 = -m24;\n else\n u2 = m24;\n }\n jsf[1].push(u2);\n\n // Second phase\n if (2 * d1 === u1 + 1)\n d1 = 1 - d1;\n if (2 * d2 === u2 + 1)\n d2 = 1 - d2;\n k1.iushrn(1);\n k2.iushrn(1);\n }\n\n return jsf;\n}\nutils.getJSF = getJSF;\n\nfunction cachedProperty(obj, name, computer) {\n var key = '_' + name;\n obj.prototype[name] = function cachedProperty() {\n return this[key] !== undefined ? this[key] :\n this[key] = computer.call(this);\n };\n}\nutils.cachedProperty = cachedProperty;\n\nfunction parseBytes(bytes) {\n return typeof bytes === 'string' ? utils.toArray(bytes, 'hex') :\n bytes;\n}\nutils.parseBytes = parseBytes;\n\nfunction intFromLE(bytes) {\n return new BN(bytes, 'hex', 'le');\n}\nutils.intFromLE = intFromLE;\n\n", "var r;\n\nmodule.exports = function rand(len) {\n if (!r)\n r = new Rand(null);\n\n return r.generate(len);\n};\n\nfunction Rand(rand) {\n this.rand = rand;\n}\nmodule.exports.Rand = Rand;\n\nRand.prototype.generate = function generate(len) {\n return this._rand(len);\n};\n\n// Emulate crypto API using randy\nRand.prototype._rand = function _rand(n) {\n if (this.rand.getBytes)\n return this.rand.getBytes(n);\n\n var res = new Uint8Array(n);\n for (var i = 0; i < res.length; i++)\n res[i] = this.rand.getByte();\n return res;\n};\n\nif (typeof self === 'object') {\n if (self.crypto && self.crypto.getRandomValues) {\n // Modern browsers\n Rand.prototype._rand = function _rand(n) {\n var arr = new Uint8Array(n);\n self.crypto.getRandomValues(arr);\n return arr;\n };\n } else if (self.msCrypto && self.msCrypto.getRandomValues) {\n // IE\n Rand.prototype._rand = function _rand(n) {\n var arr = new Uint8Array(n);\n self.msCrypto.getRandomValues(arr);\n return arr;\n };\n\n // Safari's WebWorkers do not have `crypto`\n } else if (typeof window === 'object') {\n // Old junk\n Rand.prototype._rand = function() {\n throw new Error('Not implemented yet');\n };\n }\n} else {\n // Node.js or Web worker with no crypto support\n try {\n var crypto = require('crypto');\n if (typeof crypto.randomBytes !== 'function')\n throw new Error('Not supported');\n\n Rand.prototype._rand = function _rand(n) {\n return crypto.randomBytes(n);\n };\n } catch (e) {\n }\n}\n", "'use strict';\n\nvar BN = require('bn.js');\nvar utils = require('../utils');\nvar getNAF = utils.getNAF;\nvar getJSF = utils.getJSF;\nvar assert = utils.assert;\n\nfunction BaseCurve(type, conf) {\n this.type = type;\n this.p = new BN(conf.p, 16);\n\n // Use Montgomery, when there is no fast reduction for the prime\n this.red = conf.prime ? BN.red(conf.prime) : BN.mont(this.p);\n\n // Useful for many curves\n this.zero = new BN(0).toRed(this.red);\n this.one = new BN(1).toRed(this.red);\n this.two = new BN(2).toRed(this.red);\n\n // Curve configuration, optional\n this.n = conf.n && new BN(conf.n, 16);\n this.g = conf.g && this.pointFromJSON(conf.g, conf.gRed);\n\n // Temporary arrays\n this._wnafT1 = new Array(4);\n this._wnafT2 = new Array(4);\n this._wnafT3 = new Array(4);\n this._wnafT4 = new Array(4);\n\n this._bitLength = this.n ? this.n.bitLength() : 0;\n\n // Generalized Greg Maxwell's trick\n var adjustCount = this.n && this.p.div(this.n);\n if (!adjustCount || adjustCount.cmpn(100) > 0) {\n this.redN = null;\n } else {\n this._maxwellTrick = true;\n this.redN = this.n.toRed(this.red);\n }\n}\nmodule.exports = BaseCurve;\n\nBaseCurve.prototype.point = function point() {\n throw new Error('Not implemented');\n};\n\nBaseCurve.prototype.validate = function validate() {\n throw new Error('Not implemented');\n};\n\nBaseCurve.prototype._fixedNafMul = function _fixedNafMul(p, k) {\n assert(p.precomputed);\n var doubles = p._getDoubles();\n\n var naf = getNAF(k, 1, this._bitLength);\n var I = (1 << (doubles.step + 1)) - (doubles.step % 2 === 0 ? 2 : 1);\n I /= 3;\n\n // Translate into more windowed form\n var repr = [];\n var j;\n var nafW;\n for (j = 0; j < naf.length; j += doubles.step) {\n nafW = 0;\n for (var l = j + doubles.step - 1; l >= j; l--)\n nafW = (nafW << 1) + naf[l];\n repr.push(nafW);\n }\n\n var a = this.jpoint(null, null, null);\n var b = this.jpoint(null, null, null);\n for (var i = I; i > 0; i--) {\n for (j = 0; j < repr.length; j++) {\n nafW = repr[j];\n if (nafW === i)\n b = b.mixedAdd(doubles.points[j]);\n else if (nafW === -i)\n b = b.mixedAdd(doubles.points[j].neg());\n }\n a = a.add(b);\n }\n return a.toP();\n};\n\nBaseCurve.prototype._wnafMul = function _wnafMul(p, k) {\n var w = 4;\n\n // Precompute window\n var nafPoints = p._getNAFPoints(w);\n w = nafPoints.wnd;\n var wnd = nafPoints.points;\n\n // Get NAF form\n var naf = getNAF(k, w, this._bitLength);\n\n // Add `this`*(N+1) for every w-NAF index\n var acc = this.jpoint(null, null, null);\n for (var i = naf.length - 1; i >= 0; i--) {\n // Count zeroes\n for (var l = 0; i >= 0 && naf[i] === 0; i--)\n l++;\n if (i >= 0)\n l++;\n acc = acc.dblp(l);\n\n if (i < 0)\n break;\n var z = naf[i];\n assert(z !== 0);\n if (p.type === 'affine') {\n // J +- P\n if (z > 0)\n acc = acc.mixedAdd(wnd[(z - 1) >> 1]);\n else\n acc = acc.mixedAdd(wnd[(-z - 1) >> 1].neg());\n } else {\n // J +- J\n if (z > 0)\n acc = acc.add(wnd[(z - 1) >> 1]);\n else\n acc = acc.add(wnd[(-z - 1) >> 1].neg());\n }\n }\n return p.type === 'affine' ? acc.toP() : acc;\n};\n\nBaseCurve.prototype._wnafMulAdd = function _wnafMulAdd(defW,\n points,\n coeffs,\n len,\n jacobianResult) {\n var wndWidth = this._wnafT1;\n var wnd = this._wnafT2;\n var naf = this._wnafT3;\n\n // Fill all arrays\n var max = 0;\n var i;\n var j;\n var p;\n for (i = 0; i < len; i++) {\n p = points[i];\n var nafPoints = p._getNAFPoints(defW);\n wndWidth[i] = nafPoints.wnd;\n wnd[i] = nafPoints.points;\n }\n\n // Comb small window NAFs\n for (i = len - 1; i >= 1; i -= 2) {\n var a = i - 1;\n var b = i;\n if (wndWidth[a] !== 1 || wndWidth[b] !== 1) {\n naf[a] = getNAF(coeffs[a], wndWidth[a], this._bitLength);\n naf[b] = getNAF(coeffs[b], wndWidth[b], this._bitLength);\n max = Math.max(naf[a].length, max);\n max = Math.max(naf[b].length, max);\n continue;\n }\n\n var comb = [\n points[a], /* 1 */\n null, /* 3 */\n null, /* 5 */\n points[b], /* 7 */\n ];\n\n // Try to avoid Projective points, if possible\n if (points[a].y.cmp(points[b].y) === 0) {\n comb[1] = points[a].add(points[b]);\n comb[2] = points[a].toJ().mixedAdd(points[b].neg());\n } else if (points[a].y.cmp(points[b].y.redNeg()) === 0) {\n comb[1] = points[a].toJ().mixedAdd(points[b]);\n comb[2] = points[a].add(points[b].neg());\n } else {\n comb[1] = points[a].toJ().mixedAdd(points[b]);\n comb[2] = points[a].toJ().mixedAdd(points[b].neg());\n }\n\n var index = [\n -3, /* -1 -1 */\n -1, /* -1 0 */\n -5, /* -1 1 */\n -7, /* 0 -1 */\n 0, /* 0 0 */\n 7, /* 0 1 */\n 5, /* 1 -1 */\n 1, /* 1 0 */\n 3, /* 1 1 */\n ];\n\n var jsf = getJSF(coeffs[a], coeffs[b]);\n max = Math.max(jsf[0].length, max);\n naf[a] = new Array(max);\n naf[b] = new Array(max);\n for (j = 0; j < max; j++) {\n var ja = jsf[0][j] | 0;\n var jb = jsf[1][j] | 0;\n\n naf[a][j] = index[(ja + 1) * 3 + (jb + 1)];\n naf[b][j] = 0;\n wnd[a] = comb;\n }\n }\n\n var acc = this.jpoint(null, null, null);\n var tmp = this._wnafT4;\n for (i = max; i >= 0; i--) {\n var k = 0;\n\n while (i >= 0) {\n var zero = true;\n for (j = 0; j < len; j++) {\n tmp[j] = naf[j][i] | 0;\n if (tmp[j] !== 0)\n zero = false;\n }\n if (!zero)\n break;\n k++;\n i--;\n }\n if (i >= 0)\n k++;\n acc = acc.dblp(k);\n if (i < 0)\n break;\n\n for (j = 0; j < len; j++) {\n var z = tmp[j];\n p;\n if (z === 0)\n continue;\n else if (z > 0)\n p = wnd[j][(z - 1) >> 1];\n else if (z < 0)\n p = wnd[j][(-z - 1) >> 1].neg();\n\n if (p.type === 'affine')\n acc = acc.mixedAdd(p);\n else\n acc = acc.add(p);\n }\n }\n // Zeroify references\n for (i = 0; i < len; i++)\n wnd[i] = null;\n\n if (jacobianResult)\n return acc;\n else\n return acc.toP();\n};\n\nfunction BasePoint(curve, type) {\n this.curve = curve;\n this.type = type;\n this.precomputed = null;\n}\nBaseCurve.BasePoint = BasePoint;\n\nBasePoint.prototype.eq = function eq(/*other*/) {\n throw new Error('Not implemented');\n};\n\nBasePoint.prototype.validate = function validate() {\n return this.curve.validate(this);\n};\n\nBaseCurve.prototype.decodePoint = function decodePoint(bytes, enc) {\n bytes = utils.toArray(bytes, enc);\n\n var len = this.p.byteLength();\n\n // uncompressed, hybrid-odd, hybrid-even\n if ((bytes[0] === 0x04 || bytes[0] === 0x06 || bytes[0] === 0x07) &&\n bytes.length - 1 === 2 * len) {\n if (bytes[0] === 0x06)\n assert(bytes[bytes.length - 1] % 2 === 0);\n else if (bytes[0] === 0x07)\n assert(bytes[bytes.length - 1] % 2 === 1);\n\n var res = this.point(bytes.slice(1, 1 + len),\n bytes.slice(1 + len, 1 + 2 * len));\n\n return res;\n } else if ((bytes[0] === 0x02 || bytes[0] === 0x03) &&\n bytes.length - 1 === len) {\n return this.pointFromX(bytes.slice(1, 1 + len), bytes[0] === 0x03);\n }\n throw new Error('Unknown point format');\n};\n\nBasePoint.prototype.encodeCompressed = function encodeCompressed(enc) {\n return this.encode(enc, true);\n};\n\nBasePoint.prototype._encode = function _encode(compact) {\n var len = this.curve.p.byteLength();\n var x = this.getX().toArray('be', len);\n\n if (compact)\n return [ this.getY().isEven() ? 0x02 : 0x03 ].concat(x);\n\n return [ 0x04 ].concat(x, this.getY().toArray('be', len));\n};\n\nBasePoint.prototype.encode = function encode(enc, compact) {\n return utils.encode(this._encode(compact), enc);\n};\n\nBasePoint.prototype.precompute = function precompute(power) {\n if (this.precomputed)\n return this;\n\n var precomputed = {\n doubles: null,\n naf: null,\n beta: null,\n };\n precomputed.naf = this._getNAFPoints(8);\n precomputed.doubles = this._getDoubles(4, power);\n precomputed.beta = this._getBeta();\n this.precomputed = precomputed;\n\n return this;\n};\n\nBasePoint.prototype._hasDoubles = function _hasDoubles(k) {\n if (!this.precomputed)\n return false;\n\n var doubles = this.precomputed.doubles;\n if (!doubles)\n return false;\n\n return doubles.points.length >= Math.ceil((k.bitLength() + 1) / doubles.step);\n};\n\nBasePoint.prototype._getDoubles = function _getDoubles(step, power) {\n if (this.precomputed && this.precomputed.doubles)\n return this.precomputed.doubles;\n\n var doubles = [ this ];\n var acc = this;\n for (var i = 0; i < power; i += step) {\n for (var j = 0; j < step; j++)\n acc = acc.dbl();\n doubles.push(acc);\n }\n return {\n step: step,\n points: doubles,\n };\n};\n\nBasePoint.prototype._getNAFPoints = function _getNAFPoints(wnd) {\n if (this.precomputed && this.precomputed.naf)\n return this.precomputed.naf;\n\n var res = [ this ];\n var max = (1 << wnd) - 1;\n var dbl = max === 1 ? null : this.dbl();\n for (var i = 1; i < max; i++)\n res[i] = res[i - 1].add(dbl);\n return {\n wnd: wnd,\n points: res,\n };\n};\n\nBasePoint.prototype._getBeta = function _getBeta() {\n return null;\n};\n\nBasePoint.prototype.dblp = function dblp(k) {\n var r = this;\n for (var i = 0; i < k; i++)\n r = r.dbl();\n return r;\n};\n", "if (typeof Object.create === 'function') {\n // implementation from standard node.js 'util' module\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n })\n }\n };\n} else {\n // old school shim for old browsers\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor\n var TempCtor = function () {}\n TempCtor.prototype = superCtor.prototype\n ctor.prototype = new TempCtor()\n ctor.prototype.constructor = ctor\n }\n }\n}\n", "try {\n var util = require('util');\n /* istanbul ignore next */\n if (typeof util.inherits !== 'function') throw '';\n module.exports = util.inherits;\n} catch (e) {\n /* istanbul ignore next */\n module.exports = require('./inherits_browser.js');\n}\n", "'use strict';\n\nvar utils = require('../utils');\nvar BN = require('bn.js');\nvar inherits = require('inherits');\nvar Base = require('./base');\n\nvar assert = utils.assert;\n\nfunction ShortCurve(conf) {\n Base.call(this, 'short', conf);\n\n this.a = new BN(conf.a, 16).toRed(this.red);\n this.b = new BN(conf.b, 16).toRed(this.red);\n this.tinv = this.two.redInvm();\n\n this.zeroA = this.a.fromRed().cmpn(0) === 0;\n this.threeA = this.a.fromRed().sub(this.p).cmpn(-3) === 0;\n\n // If the curve is endomorphic, precalculate beta and lambda\n this.endo = this._getEndomorphism(conf);\n this._endoWnafT1 = new Array(4);\n this._endoWnafT2 = new Array(4);\n}\ninherits(ShortCurve, Base);\nmodule.exports = ShortCurve;\n\nShortCurve.prototype._getEndomorphism = function _getEndomorphism(conf) {\n // No efficient endomorphism\n if (!this.zeroA || !this.g || !this.n || this.p.modn(3) !== 1)\n return;\n\n // Compute beta and lambda, that lambda * P = (beta * Px; Py)\n var beta;\n var lambda;\n if (conf.beta) {\n beta = new BN(conf.beta, 16).toRed(this.red);\n } else {\n var betas = this._getEndoRoots(this.p);\n // Choose the smallest beta\n beta = betas[0].cmp(betas[1]) < 0 ? betas[0] : betas[1];\n beta = beta.toRed(this.red);\n }\n if (conf.lambda) {\n lambda = new BN(conf.lambda, 16);\n } else {\n // Choose the lambda that is matching selected beta\n var lambdas = this._getEndoRoots(this.n);\n if (this.g.mul(lambdas[0]).x.cmp(this.g.x.redMul(beta)) === 0) {\n lambda = lambdas[0];\n } else {\n lambda = lambdas[1];\n assert(this.g.mul(lambda).x.cmp(this.g.x.redMul(beta)) === 0);\n }\n }\n\n // Get basis vectors, used for balanced length-two representation\n var basis;\n if (conf.basis) {\n basis = conf.basis.map(function(vec) {\n return {\n a: new BN(vec.a, 16),\n b: new BN(vec.b, 16),\n };\n });\n } else {\n basis = this._getEndoBasis(lambda);\n }\n\n return {\n beta: beta,\n lambda: lambda,\n basis: basis,\n };\n};\n\nShortCurve.prototype._getEndoRoots = function _getEndoRoots(num) {\n // Find roots of for x^2 + x + 1 in F\n // Root = (-1 +- Sqrt(-3)) / 2\n //\n var red = num === this.p ? this.red : BN.mont(num);\n var tinv = new BN(2).toRed(red).redInvm();\n var ntinv = tinv.redNeg();\n\n var s = new BN(3).toRed(red).redNeg().redSqrt().redMul(tinv);\n\n var l1 = ntinv.redAdd(s).fromRed();\n var l2 = ntinv.redSub(s).fromRed();\n return [ l1, l2 ];\n};\n\nShortCurve.prototype._getEndoBasis = function _getEndoBasis(lambda) {\n // aprxSqrt >= sqrt(this.n)\n var aprxSqrt = this.n.ushrn(Math.floor(this.n.bitLength() / 2));\n\n // 3.74\n // Run EGCD, until r(L + 1) < aprxSqrt\n var u = lambda;\n var v = this.n.clone();\n var x1 = new BN(1);\n var y1 = new BN(0);\n var x2 = new BN(0);\n var y2 = new BN(1);\n\n // NOTE: all vectors are roots of: a + b * lambda = 0 (mod n)\n var a0;\n var b0;\n // First vector\n var a1;\n var b1;\n // Second vector\n var a2;\n var b2;\n\n var prevR;\n var i = 0;\n var r;\n var x;\n while (u.cmpn(0) !== 0) {\n var q = v.div(u);\n r = v.sub(q.mul(u));\n x = x2.sub(q.mul(x1));\n var y = y2.sub(q.mul(y1));\n\n if (!a1 && r.cmp(aprxSqrt) < 0) {\n a0 = prevR.neg();\n b0 = x1;\n a1 = r.neg();\n b1 = x;\n } else if (a1 && ++i === 2) {\n break;\n }\n prevR = r;\n\n v = u;\n u = r;\n x2 = x1;\n x1 = x;\n y2 = y1;\n y1 = y;\n }\n a2 = r.neg();\n b2 = x;\n\n var len1 = a1.sqr().add(b1.sqr());\n var len2 = a2.sqr().add(b2.sqr());\n if (len2.cmp(len1) >= 0) {\n a2 = a0;\n b2 = b0;\n }\n\n // Normalize signs\n if (a1.negative) {\n a1 = a1.neg();\n b1 = b1.neg();\n }\n if (a2.negative) {\n a2 = a2.neg();\n b2 = b2.neg();\n }\n\n return [\n { a: a1, b: b1 },\n { a: a2, b: b2 },\n ];\n};\n\nShortCurve.prototype._endoSplit = function _endoSplit(k) {\n var basis = this.endo.basis;\n var v1 = basis[0];\n var v2 = basis[1];\n\n var c1 = v2.b.mul(k).divRound(this.n);\n var c2 = v1.b.neg().mul(k).divRound(this.n);\n\n var p1 = c1.mul(v1.a);\n var p2 = c2.mul(v2.a);\n var q1 = c1.mul(v1.b);\n var q2 = c2.mul(v2.b);\n\n // Calculate answer\n var k1 = k.sub(p1).sub(p2);\n var k2 = q1.add(q2).neg();\n return { k1: k1, k2: k2 };\n};\n\nShortCurve.prototype.pointFromX = function pointFromX(x, odd) {\n x = new BN(x, 16);\n if (!x.red)\n x = x.toRed(this.red);\n\n var y2 = x.redSqr().redMul(x).redIAdd(x.redMul(this.a)).redIAdd(this.b);\n var y = y2.redSqrt();\n if (y.redSqr().redSub(y2).cmp(this.zero) !== 0)\n throw new Error('invalid point');\n\n // XXX Is there any way to tell if the number is odd without converting it\n // to non-red form?\n var isOdd = y.fromRed().isOdd();\n if (odd && !isOdd || !odd && isOdd)\n y = y.redNeg();\n\n return this.point(x, y);\n};\n\nShortCurve.prototype.validate = function validate(point) {\n if (point.inf)\n return true;\n\n var x = point.x;\n var y = point.y;\n\n var ax = this.a.redMul(x);\n var rhs = x.redSqr().redMul(x).redIAdd(ax).redIAdd(this.b);\n return y.redSqr().redISub(rhs).cmpn(0) === 0;\n};\n\nShortCurve.prototype._endoWnafMulAdd =\n function _endoWnafMulAdd(points, coeffs, jacobianResult) {\n var npoints = this._endoWnafT1;\n var ncoeffs = this._endoWnafT2;\n for (var i = 0; i < points.length; i++) {\n var split = this._endoSplit(coeffs[i]);\n var p = points[i];\n var beta = p._getBeta();\n\n if (split.k1.negative) {\n split.k1.ineg();\n p = p.neg(true);\n }\n if (split.k2.negative) {\n split.k2.ineg();\n beta = beta.neg(true);\n }\n\n npoints[i * 2] = p;\n npoints[i * 2 + 1] = beta;\n ncoeffs[i * 2] = split.k1;\n ncoeffs[i * 2 + 1] = split.k2;\n }\n var res = this._wnafMulAdd(1, npoints, ncoeffs, i * 2, jacobianResult);\n\n // Clean-up references to points and coefficients\n for (var j = 0; j < i * 2; j++) {\n npoints[j] = null;\n ncoeffs[j] = null;\n }\n return res;\n };\n\nfunction Point(curve, x, y, isRed) {\n Base.BasePoint.call(this, curve, 'affine');\n if (x === null && y === null) {\n this.x = null;\n this.y = null;\n this.inf = true;\n } else {\n this.x = new BN(x, 16);\n this.y = new BN(y, 16);\n // Force redgomery representation when loading from JSON\n if (isRed) {\n this.x.forceRed(this.curve.red);\n this.y.forceRed(this.curve.red);\n }\n if (!this.x.red)\n this.x = this.x.toRed(this.curve.red);\n if (!this.y.red)\n this.y = this.y.toRed(this.curve.red);\n this.inf = false;\n }\n}\ninherits(Point, Base.BasePoint);\n\nShortCurve.prototype.point = function point(x, y, isRed) {\n return new Point(this, x, y, isRed);\n};\n\nShortCurve.prototype.pointFromJSON = function pointFromJSON(obj, red) {\n return Point.fromJSON(this, obj, red);\n};\n\nPoint.prototype._getBeta = function _getBeta() {\n if (!this.curve.endo)\n return;\n\n var pre = this.precomputed;\n if (pre && pre.beta)\n return pre.beta;\n\n var beta = this.curve.point(this.x.redMul(this.curve.endo.beta), this.y);\n if (pre) {\n var curve = this.curve;\n var endoMul = function(p) {\n return curve.point(p.x.redMul(curve.endo.beta), p.y);\n };\n pre.beta = beta;\n beta.precomputed = {\n beta: null,\n naf: pre.naf && {\n wnd: pre.naf.wnd,\n points: pre.naf.points.map(endoMul),\n },\n doubles: pre.doubles && {\n step: pre.doubles.step,\n points: pre.doubles.points.map(endoMul),\n },\n };\n }\n return beta;\n};\n\nPoint.prototype.toJSON = function toJSON() {\n if (!this.precomputed)\n return [ this.x, this.y ];\n\n return [ this.x, this.y, this.precomputed && {\n doubles: this.precomputed.doubles && {\n step: this.precomputed.doubles.step,\n points: this.precomputed.doubles.points.slice(1),\n },\n naf: this.precomputed.naf && {\n wnd: this.precomputed.naf.wnd,\n points: this.precomputed.naf.points.slice(1),\n },\n } ];\n};\n\nPoint.fromJSON = function fromJSON(curve, obj, red) {\n if (typeof obj === 'string')\n obj = JSON.parse(obj);\n var res = curve.point(obj[0], obj[1], red);\n if (!obj[2])\n return res;\n\n function obj2point(obj) {\n return curve.point(obj[0], obj[1], red);\n }\n\n var pre = obj[2];\n res.precomputed = {\n beta: null,\n doubles: pre.doubles && {\n step: pre.doubles.step,\n points: [ res ].concat(pre.doubles.points.map(obj2point)),\n },\n naf: pre.naf && {\n wnd: pre.naf.wnd,\n points: [ res ].concat(pre.naf.points.map(obj2point)),\n },\n };\n return res;\n};\n\nPoint.prototype.inspect = function inspect() {\n if (this.isInfinity())\n return '';\n return '';\n};\n\nPoint.prototype.isInfinity = function isInfinity() {\n return this.inf;\n};\n\nPoint.prototype.add = function add(p) {\n // O + P = P\n if (this.inf)\n return p;\n\n // P + O = P\n if (p.inf)\n return this;\n\n // P + P = 2P\n if (this.eq(p))\n return this.dbl();\n\n // P + (-P) = O\n if (this.neg().eq(p))\n return this.curve.point(null, null);\n\n // P + Q = O\n if (this.x.cmp(p.x) === 0)\n return this.curve.point(null, null);\n\n var c = this.y.redSub(p.y);\n if (c.cmpn(0) !== 0)\n c = c.redMul(this.x.redSub(p.x).redInvm());\n var nx = c.redSqr().redISub(this.x).redISub(p.x);\n var ny = c.redMul(this.x.redSub(nx)).redISub(this.y);\n return this.curve.point(nx, ny);\n};\n\nPoint.prototype.dbl = function dbl() {\n if (this.inf)\n return this;\n\n // 2P = O\n var ys1 = this.y.redAdd(this.y);\n if (ys1.cmpn(0) === 0)\n return this.curve.point(null, null);\n\n var a = this.curve.a;\n\n var x2 = this.x.redSqr();\n var dyinv = ys1.redInvm();\n var c = x2.redAdd(x2).redIAdd(x2).redIAdd(a).redMul(dyinv);\n\n var nx = c.redSqr().redISub(this.x.redAdd(this.x));\n var ny = c.redMul(this.x.redSub(nx)).redISub(this.y);\n return this.curve.point(nx, ny);\n};\n\nPoint.prototype.getX = function getX() {\n return this.x.fromRed();\n};\n\nPoint.prototype.getY = function getY() {\n return this.y.fromRed();\n};\n\nPoint.prototype.mul = function mul(k) {\n k = new BN(k, 16);\n if (this.isInfinity())\n return this;\n else if (this._hasDoubles(k))\n return this.curve._fixedNafMul(this, k);\n else if (this.curve.endo)\n return this.curve._endoWnafMulAdd([ this ], [ k ]);\n else\n return this.curve._wnafMul(this, k);\n};\n\nPoint.prototype.mulAdd = function mulAdd(k1, p2, k2) {\n var points = [ this, p2 ];\n var coeffs = [ k1, k2 ];\n if (this.curve.endo)\n return this.curve._endoWnafMulAdd(points, coeffs);\n else\n return this.curve._wnafMulAdd(1, points, coeffs, 2);\n};\n\nPoint.prototype.jmulAdd = function jmulAdd(k1, p2, k2) {\n var points = [ this, p2 ];\n var coeffs = [ k1, k2 ];\n if (this.curve.endo)\n return this.curve._endoWnafMulAdd(points, coeffs, true);\n else\n return this.curve._wnafMulAdd(1, points, coeffs, 2, true);\n};\n\nPoint.prototype.eq = function eq(p) {\n return this === p ||\n this.inf === p.inf &&\n (this.inf || this.x.cmp(p.x) === 0 && this.y.cmp(p.y) === 0);\n};\n\nPoint.prototype.neg = function neg(_precompute) {\n if (this.inf)\n return this;\n\n var res = this.curve.point(this.x, this.y.redNeg());\n if (_precompute && this.precomputed) {\n var pre = this.precomputed;\n var negate = function(p) {\n return p.neg();\n };\n res.precomputed = {\n naf: pre.naf && {\n wnd: pre.naf.wnd,\n points: pre.naf.points.map(negate),\n },\n doubles: pre.doubles && {\n step: pre.doubles.step,\n points: pre.doubles.points.map(negate),\n },\n };\n }\n return res;\n};\n\nPoint.prototype.toJ = function toJ() {\n if (this.inf)\n return this.curve.jpoint(null, null, null);\n\n var res = this.curve.jpoint(this.x, this.y, this.curve.one);\n return res;\n};\n\nfunction JPoint(curve, x, y, z) {\n Base.BasePoint.call(this, curve, 'jacobian');\n if (x === null && y === null && z === null) {\n this.x = this.curve.one;\n this.y = this.curve.one;\n this.z = new BN(0);\n } else {\n this.x = new BN(x, 16);\n this.y = new BN(y, 16);\n this.z = new BN(z, 16);\n }\n if (!this.x.red)\n this.x = this.x.toRed(this.curve.red);\n if (!this.y.red)\n this.y = this.y.toRed(this.curve.red);\n if (!this.z.red)\n this.z = this.z.toRed(this.curve.red);\n\n this.zOne = this.z === this.curve.one;\n}\ninherits(JPoint, Base.BasePoint);\n\nShortCurve.prototype.jpoint = function jpoint(x, y, z) {\n return new JPoint(this, x, y, z);\n};\n\nJPoint.prototype.toP = function toP() {\n if (this.isInfinity())\n return this.curve.point(null, null);\n\n var zinv = this.z.redInvm();\n var zinv2 = zinv.redSqr();\n var ax = this.x.redMul(zinv2);\n var ay = this.y.redMul(zinv2).redMul(zinv);\n\n return this.curve.point(ax, ay);\n};\n\nJPoint.prototype.neg = function neg() {\n return this.curve.jpoint(this.x, this.y.redNeg(), this.z);\n};\n\nJPoint.prototype.add = function add(p) {\n // O + P = P\n if (this.isInfinity())\n return p;\n\n // P + O = P\n if (p.isInfinity())\n return this;\n\n // 12M + 4S + 7A\n var pz2 = p.z.redSqr();\n var z2 = this.z.redSqr();\n var u1 = this.x.redMul(pz2);\n var u2 = p.x.redMul(z2);\n var s1 = this.y.redMul(pz2.redMul(p.z));\n var s2 = p.y.redMul(z2.redMul(this.z));\n\n var h = u1.redSub(u2);\n var r = s1.redSub(s2);\n if (h.cmpn(0) === 0) {\n if (r.cmpn(0) !== 0)\n return this.curve.jpoint(null, null, null);\n else\n return this.dbl();\n }\n\n var h2 = h.redSqr();\n var h3 = h2.redMul(h);\n var v = u1.redMul(h2);\n\n var nx = r.redSqr().redIAdd(h3).redISub(v).redISub(v);\n var ny = r.redMul(v.redISub(nx)).redISub(s1.redMul(h3));\n var nz = this.z.redMul(p.z).redMul(h);\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.mixedAdd = function mixedAdd(p) {\n // O + P = P\n if (this.isInfinity())\n return p.toJ();\n\n // P + O = P\n if (p.isInfinity())\n return this;\n\n // 8M + 3S + 7A\n var z2 = this.z.redSqr();\n var u1 = this.x;\n var u2 = p.x.redMul(z2);\n var s1 = this.y;\n var s2 = p.y.redMul(z2).redMul(this.z);\n\n var h = u1.redSub(u2);\n var r = s1.redSub(s2);\n if (h.cmpn(0) === 0) {\n if (r.cmpn(0) !== 0)\n return this.curve.jpoint(null, null, null);\n else\n return this.dbl();\n }\n\n var h2 = h.redSqr();\n var h3 = h2.redMul(h);\n var v = u1.redMul(h2);\n\n var nx = r.redSqr().redIAdd(h3).redISub(v).redISub(v);\n var ny = r.redMul(v.redISub(nx)).redISub(s1.redMul(h3));\n var nz = this.z.redMul(h);\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.dblp = function dblp(pow) {\n if (pow === 0)\n return this;\n if (this.isInfinity())\n return this;\n if (!pow)\n return this.dbl();\n\n var i;\n if (this.curve.zeroA || this.curve.threeA) {\n var r = this;\n for (i = 0; i < pow; i++)\n r = r.dbl();\n return r;\n }\n\n // 1M + 2S + 1A + N * (4S + 5M + 8A)\n // N = 1 => 6M + 6S + 9A\n var a = this.curve.a;\n var tinv = this.curve.tinv;\n\n var jx = this.x;\n var jy = this.y;\n var jz = this.z;\n var jz4 = jz.redSqr().redSqr();\n\n // Reuse results\n var jyd = jy.redAdd(jy);\n for (i = 0; i < pow; i++) {\n var jx2 = jx.redSqr();\n var jyd2 = jyd.redSqr();\n var jyd4 = jyd2.redSqr();\n var c = jx2.redAdd(jx2).redIAdd(jx2).redIAdd(a.redMul(jz4));\n\n var t1 = jx.redMul(jyd2);\n var nx = c.redSqr().redISub(t1.redAdd(t1));\n var t2 = t1.redISub(nx);\n var dny = c.redMul(t2);\n dny = dny.redIAdd(dny).redISub(jyd4);\n var nz = jyd.redMul(jz);\n if (i + 1 < pow)\n jz4 = jz4.redMul(jyd4);\n\n jx = nx;\n jz = nz;\n jyd = dny;\n }\n\n return this.curve.jpoint(jx, jyd.redMul(tinv), jz);\n};\n\nJPoint.prototype.dbl = function dbl() {\n if (this.isInfinity())\n return this;\n\n if (this.curve.zeroA)\n return this._zeroDbl();\n else if (this.curve.threeA)\n return this._threeDbl();\n else\n return this._dbl();\n};\n\nJPoint.prototype._zeroDbl = function _zeroDbl() {\n var nx;\n var ny;\n var nz;\n // Z = 1\n if (this.zOne) {\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-0.html\n // #doubling-mdbl-2007-bl\n // 1M + 5S + 14A\n\n // XX = X1^2\n var xx = this.x.redSqr();\n // YY = Y1^2\n var yy = this.y.redSqr();\n // YYYY = YY^2\n var yyyy = yy.redSqr();\n // S = 2 * ((X1 + YY)^2 - XX - YYYY)\n var s = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);\n s = s.redIAdd(s);\n // M = 3 * XX + a; a = 0\n var m = xx.redAdd(xx).redIAdd(xx);\n // T = M ^ 2 - 2*S\n var t = m.redSqr().redISub(s).redISub(s);\n\n // 8 * YYYY\n var yyyy8 = yyyy.redIAdd(yyyy);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n\n // X3 = T\n nx = t;\n // Y3 = M * (S - T) - 8 * YYYY\n ny = m.redMul(s.redISub(t)).redISub(yyyy8);\n // Z3 = 2*Y1\n nz = this.y.redAdd(this.y);\n } else {\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-0.html\n // #doubling-dbl-2009-l\n // 2M + 5S + 13A\n\n // A = X1^2\n var a = this.x.redSqr();\n // B = Y1^2\n var b = this.y.redSqr();\n // C = B^2\n var c = b.redSqr();\n // D = 2 * ((X1 + B)^2 - A - C)\n var d = this.x.redAdd(b).redSqr().redISub(a).redISub(c);\n d = d.redIAdd(d);\n // E = 3 * A\n var e = a.redAdd(a).redIAdd(a);\n // F = E^2\n var f = e.redSqr();\n\n // 8 * C\n var c8 = c.redIAdd(c);\n c8 = c8.redIAdd(c8);\n c8 = c8.redIAdd(c8);\n\n // X3 = F - 2 * D\n nx = f.redISub(d).redISub(d);\n // Y3 = E * (D - X3) - 8 * C\n ny = e.redMul(d.redISub(nx)).redISub(c8);\n // Z3 = 2 * Y1 * Z1\n nz = this.y.redMul(this.z);\n nz = nz.redIAdd(nz);\n }\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype._threeDbl = function _threeDbl() {\n var nx;\n var ny;\n var nz;\n // Z = 1\n if (this.zOne) {\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-3.html\n // #doubling-mdbl-2007-bl\n // 1M + 5S + 15A\n\n // XX = X1^2\n var xx = this.x.redSqr();\n // YY = Y1^2\n var yy = this.y.redSqr();\n // YYYY = YY^2\n var yyyy = yy.redSqr();\n // S = 2 * ((X1 + YY)^2 - XX - YYYY)\n var s = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);\n s = s.redIAdd(s);\n // M = 3 * XX + a\n var m = xx.redAdd(xx).redIAdd(xx).redIAdd(this.curve.a);\n // T = M^2 - 2 * S\n var t = m.redSqr().redISub(s).redISub(s);\n // X3 = T\n nx = t;\n // Y3 = M * (S - T) - 8 * YYYY\n var yyyy8 = yyyy.redIAdd(yyyy);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n ny = m.redMul(s.redISub(t)).redISub(yyyy8);\n // Z3 = 2 * Y1\n nz = this.y.redAdd(this.y);\n } else {\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-3.html#doubling-dbl-2001-b\n // 3M + 5S\n\n // delta = Z1^2\n var delta = this.z.redSqr();\n // gamma = Y1^2\n var gamma = this.y.redSqr();\n // beta = X1 * gamma\n var beta = this.x.redMul(gamma);\n // alpha = 3 * (X1 - delta) * (X1 + delta)\n var alpha = this.x.redSub(delta).redMul(this.x.redAdd(delta));\n alpha = alpha.redAdd(alpha).redIAdd(alpha);\n // X3 = alpha^2 - 8 * beta\n var beta4 = beta.redIAdd(beta);\n beta4 = beta4.redIAdd(beta4);\n var beta8 = beta4.redAdd(beta4);\n nx = alpha.redSqr().redISub(beta8);\n // Z3 = (Y1 + Z1)^2 - gamma - delta\n nz = this.y.redAdd(this.z).redSqr().redISub(gamma).redISub(delta);\n // Y3 = alpha * (4 * beta - X3) - 8 * gamma^2\n var ggamma8 = gamma.redSqr();\n ggamma8 = ggamma8.redIAdd(ggamma8);\n ggamma8 = ggamma8.redIAdd(ggamma8);\n ggamma8 = ggamma8.redIAdd(ggamma8);\n ny = alpha.redMul(beta4.redISub(nx)).redISub(ggamma8);\n }\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype._dbl = function _dbl() {\n var a = this.curve.a;\n\n // 4M + 6S + 10A\n var jx = this.x;\n var jy = this.y;\n var jz = this.z;\n var jz4 = jz.redSqr().redSqr();\n\n var jx2 = jx.redSqr();\n var jy2 = jy.redSqr();\n\n var c = jx2.redAdd(jx2).redIAdd(jx2).redIAdd(a.redMul(jz4));\n\n var jxd4 = jx.redAdd(jx);\n jxd4 = jxd4.redIAdd(jxd4);\n var t1 = jxd4.redMul(jy2);\n var nx = c.redSqr().redISub(t1.redAdd(t1));\n var t2 = t1.redISub(nx);\n\n var jyd8 = jy2.redSqr();\n jyd8 = jyd8.redIAdd(jyd8);\n jyd8 = jyd8.redIAdd(jyd8);\n jyd8 = jyd8.redIAdd(jyd8);\n var ny = c.redMul(t2).redISub(jyd8);\n var nz = jy.redAdd(jy).redMul(jz);\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.trpl = function trpl() {\n if (!this.curve.zeroA)\n return this.dbl().add(this);\n\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-0.html#tripling-tpl-2007-bl\n // 5M + 10S + ...\n\n // XX = X1^2\n var xx = this.x.redSqr();\n // YY = Y1^2\n var yy = this.y.redSqr();\n // ZZ = Z1^2\n var zz = this.z.redSqr();\n // YYYY = YY^2\n var yyyy = yy.redSqr();\n // M = 3 * XX + a * ZZ2; a = 0\n var m = xx.redAdd(xx).redIAdd(xx);\n // MM = M^2\n var mm = m.redSqr();\n // E = 6 * ((X1 + YY)^2 - XX - YYYY) - MM\n var e = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);\n e = e.redIAdd(e);\n e = e.redAdd(e).redIAdd(e);\n e = e.redISub(mm);\n // EE = E^2\n var ee = e.redSqr();\n // T = 16*YYYY\n var t = yyyy.redIAdd(yyyy);\n t = t.redIAdd(t);\n t = t.redIAdd(t);\n t = t.redIAdd(t);\n // U = (M + E)^2 - MM - EE - T\n var u = m.redIAdd(e).redSqr().redISub(mm).redISub(ee).redISub(t);\n // X3 = 4 * (X1 * EE - 4 * YY * U)\n var yyu4 = yy.redMul(u);\n yyu4 = yyu4.redIAdd(yyu4);\n yyu4 = yyu4.redIAdd(yyu4);\n var nx = this.x.redMul(ee).redISub(yyu4);\n nx = nx.redIAdd(nx);\n nx = nx.redIAdd(nx);\n // Y3 = 8 * Y1 * (U * (T - U) - E * EE)\n var ny = this.y.redMul(u.redMul(t.redISub(u)).redISub(e.redMul(ee)));\n ny = ny.redIAdd(ny);\n ny = ny.redIAdd(ny);\n ny = ny.redIAdd(ny);\n // Z3 = (Z1 + E)^2 - ZZ - EE\n var nz = this.z.redAdd(e).redSqr().redISub(zz).redISub(ee);\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.mul = function mul(k, kbase) {\n k = new BN(k, kbase);\n\n return this.curve._wnafMul(this, k);\n};\n\nJPoint.prototype.eq = function eq(p) {\n if (p.type === 'affine')\n return this.eq(p.toJ());\n\n if (this === p)\n return true;\n\n // x1 * z2^2 == x2 * z1^2\n var z2 = this.z.redSqr();\n var pz2 = p.z.redSqr();\n if (this.x.redMul(pz2).redISub(p.x.redMul(z2)).cmpn(0) !== 0)\n return false;\n\n // y1 * z2^3 == y2 * z1^3\n var z3 = z2.redMul(this.z);\n var pz3 = pz2.redMul(p.z);\n return this.y.redMul(pz3).redISub(p.y.redMul(z3)).cmpn(0) === 0;\n};\n\nJPoint.prototype.eqXToP = function eqXToP(x) {\n var zs = this.z.redSqr();\n var rx = x.toRed(this.curve.red).redMul(zs);\n if (this.x.cmp(rx) === 0)\n return true;\n\n var xc = x.clone();\n var t = this.curve.redN.redMul(zs);\n for (;;) {\n xc.iadd(this.curve.n);\n if (xc.cmp(this.curve.p) >= 0)\n return false;\n\n rx.redIAdd(t);\n if (this.x.cmp(rx) === 0)\n return true;\n }\n};\n\nJPoint.prototype.inspect = function inspect() {\n if (this.isInfinity())\n return '';\n return '';\n};\n\nJPoint.prototype.isInfinity = function isInfinity() {\n // XXX This code assumes that zero is always zero in red\n return this.z.cmpn(0) === 0;\n};\n", "'use strict';\n\nvar BN = require('bn.js');\nvar inherits = require('inherits');\nvar Base = require('./base');\n\nvar utils = require('../utils');\n\nfunction MontCurve(conf) {\n Base.call(this, 'mont', conf);\n\n this.a = new BN(conf.a, 16).toRed(this.red);\n this.b = new BN(conf.b, 16).toRed(this.red);\n this.i4 = new BN(4).toRed(this.red).redInvm();\n this.two = new BN(2).toRed(this.red);\n this.a24 = this.i4.redMul(this.a.redAdd(this.two));\n}\ninherits(MontCurve, Base);\nmodule.exports = MontCurve;\n\nMontCurve.prototype.validate = function validate(point) {\n var x = point.normalize().x;\n var x2 = x.redSqr();\n var rhs = x2.redMul(x).redAdd(x2.redMul(this.a)).redAdd(x);\n var y = rhs.redSqrt();\n\n return y.redSqr().cmp(rhs) === 0;\n};\n\nfunction Point(curve, x, z) {\n Base.BasePoint.call(this, curve, 'projective');\n if (x === null && z === null) {\n this.x = this.curve.one;\n this.z = this.curve.zero;\n } else {\n this.x = new BN(x, 16);\n this.z = new BN(z, 16);\n if (!this.x.red)\n this.x = this.x.toRed(this.curve.red);\n if (!this.z.red)\n this.z = this.z.toRed(this.curve.red);\n }\n}\ninherits(Point, Base.BasePoint);\n\nMontCurve.prototype.decodePoint = function decodePoint(bytes, enc) {\n return this.point(utils.toArray(bytes, enc), 1);\n};\n\nMontCurve.prototype.point = function point(x, z) {\n return new Point(this, x, z);\n};\n\nMontCurve.prototype.pointFromJSON = function pointFromJSON(obj) {\n return Point.fromJSON(this, obj);\n};\n\nPoint.prototype.precompute = function precompute() {\n // No-op\n};\n\nPoint.prototype._encode = function _encode() {\n return this.getX().toArray('be', this.curve.p.byteLength());\n};\n\nPoint.fromJSON = function fromJSON(curve, obj) {\n return new Point(curve, obj[0], obj[1] || curve.one);\n};\n\nPoint.prototype.inspect = function inspect() {\n if (this.isInfinity())\n return '';\n return '';\n};\n\nPoint.prototype.isInfinity = function isInfinity() {\n // XXX This code assumes that zero is always zero in red\n return this.z.cmpn(0) === 0;\n};\n\nPoint.prototype.dbl = function dbl() {\n // http://hyperelliptic.org/EFD/g1p/auto-montgom-xz.html#doubling-dbl-1987-m-3\n // 2M + 2S + 4A\n\n // A = X1 + Z1\n var a = this.x.redAdd(this.z);\n // AA = A^2\n var aa = a.redSqr();\n // B = X1 - Z1\n var b = this.x.redSub(this.z);\n // BB = B^2\n var bb = b.redSqr();\n // C = AA - BB\n var c = aa.redSub(bb);\n // X3 = AA * BB\n var nx = aa.redMul(bb);\n // Z3 = C * (BB + A24 * C)\n var nz = c.redMul(bb.redAdd(this.curve.a24.redMul(c)));\n return this.curve.point(nx, nz);\n};\n\nPoint.prototype.add = function add() {\n throw new Error('Not supported on Montgomery curve');\n};\n\nPoint.prototype.diffAdd = function diffAdd(p, diff) {\n // http://hyperelliptic.org/EFD/g1p/auto-montgom-xz.html#diffadd-dadd-1987-m-3\n // 4M + 2S + 6A\n\n // A = X2 + Z2\n var a = this.x.redAdd(this.z);\n // B = X2 - Z2\n var b = this.x.redSub(this.z);\n // C = X3 + Z3\n var c = p.x.redAdd(p.z);\n // D = X3 - Z3\n var d = p.x.redSub(p.z);\n // DA = D * A\n var da = d.redMul(a);\n // CB = C * B\n var cb = c.redMul(b);\n // X5 = Z1 * (DA + CB)^2\n var nx = diff.z.redMul(da.redAdd(cb).redSqr());\n // Z5 = X1 * (DA - CB)^2\n var nz = diff.x.redMul(da.redISub(cb).redSqr());\n return this.curve.point(nx, nz);\n};\n\nPoint.prototype.mul = function mul(k) {\n var t = k.clone();\n var a = this; // (N / 2) * Q + Q\n var b = this.curve.point(null, null); // (N / 2) * Q\n var c = this; // Q\n\n for (var bits = []; t.cmpn(0) !== 0; t.iushrn(1))\n bits.push(t.andln(1));\n\n for (var i = bits.length - 1; i >= 0; i--) {\n if (bits[i] === 0) {\n // N * Q + Q = ((N / 2) * Q + Q)) + (N / 2) * Q\n a = a.diffAdd(b, c);\n // N * Q = 2 * ((N / 2) * Q + Q))\n b = b.dbl();\n } else {\n // N * Q = ((N / 2) * Q + Q) + ((N / 2) * Q)\n b = a.diffAdd(b, c);\n // N * Q + Q = 2 * ((N / 2) * Q + Q)\n a = a.dbl();\n }\n }\n return b;\n};\n\nPoint.prototype.mulAdd = function mulAdd() {\n throw new Error('Not supported on Montgomery curve');\n};\n\nPoint.prototype.jumlAdd = function jumlAdd() {\n throw new Error('Not supported on Montgomery curve');\n};\n\nPoint.prototype.eq = function eq(other) {\n return this.getX().cmp(other.getX()) === 0;\n};\n\nPoint.prototype.normalize = function normalize() {\n this.x = this.x.redMul(this.z.redInvm());\n this.z = this.curve.one;\n return this;\n};\n\nPoint.prototype.getX = function getX() {\n // Normalize coordinates\n this.normalize();\n\n return this.x.fromRed();\n};\n", "'use strict';\n\nvar utils = require('../utils');\nvar BN = require('bn.js');\nvar inherits = require('inherits');\nvar Base = require('./base');\n\nvar assert = utils.assert;\n\nfunction EdwardsCurve(conf) {\n // NOTE: Important as we are creating point in Base.call()\n this.twisted = (conf.a | 0) !== 1;\n this.mOneA = this.twisted && (conf.a | 0) === -1;\n this.extended = this.mOneA;\n\n Base.call(this, 'edwards', conf);\n\n this.a = new BN(conf.a, 16).umod(this.red.m);\n this.a = this.a.toRed(this.red);\n this.c = new BN(conf.c, 16).toRed(this.red);\n this.c2 = this.c.redSqr();\n this.d = new BN(conf.d, 16).toRed(this.red);\n this.dd = this.d.redAdd(this.d);\n\n assert(!this.twisted || this.c.fromRed().cmpn(1) === 0);\n this.oneC = (conf.c | 0) === 1;\n}\ninherits(EdwardsCurve, Base);\nmodule.exports = EdwardsCurve;\n\nEdwardsCurve.prototype._mulA = function _mulA(num) {\n if (this.mOneA)\n return num.redNeg();\n else\n return this.a.redMul(num);\n};\n\nEdwardsCurve.prototype._mulC = function _mulC(num) {\n if (this.oneC)\n return num;\n else\n return this.c.redMul(num);\n};\n\n// Just for compatibility with Short curve\nEdwardsCurve.prototype.jpoint = function jpoint(x, y, z, t) {\n return this.point(x, y, z, t);\n};\n\nEdwardsCurve.prototype.pointFromX = function pointFromX(x, odd) {\n x = new BN(x, 16);\n if (!x.red)\n x = x.toRed(this.red);\n\n var x2 = x.redSqr();\n var rhs = this.c2.redSub(this.a.redMul(x2));\n var lhs = this.one.redSub(this.c2.redMul(this.d).redMul(x2));\n\n var y2 = rhs.redMul(lhs.redInvm());\n var y = y2.redSqrt();\n if (y.redSqr().redSub(y2).cmp(this.zero) !== 0)\n throw new Error('invalid point');\n\n var isOdd = y.fromRed().isOdd();\n if (odd && !isOdd || !odd && isOdd)\n y = y.redNeg();\n\n return this.point(x, y);\n};\n\nEdwardsCurve.prototype.pointFromY = function pointFromY(y, odd) {\n y = new BN(y, 16);\n if (!y.red)\n y = y.toRed(this.red);\n\n // x^2 = (y^2 - c^2) / (c^2 d y^2 - a)\n var y2 = y.redSqr();\n var lhs = y2.redSub(this.c2);\n var rhs = y2.redMul(this.d).redMul(this.c2).redSub(this.a);\n var x2 = lhs.redMul(rhs.redInvm());\n\n if (x2.cmp(this.zero) === 0) {\n if (odd)\n throw new Error('invalid point');\n else\n return this.point(this.zero, y);\n }\n\n var x = x2.redSqrt();\n if (x.redSqr().redSub(x2).cmp(this.zero) !== 0)\n throw new Error('invalid point');\n\n if (x.fromRed().isOdd() !== odd)\n x = x.redNeg();\n\n return this.point(x, y);\n};\n\nEdwardsCurve.prototype.validate = function validate(point) {\n if (point.isInfinity())\n return true;\n\n // Curve: A * X^2 + Y^2 = C^2 * (1 + D * X^2 * Y^2)\n point.normalize();\n\n var x2 = point.x.redSqr();\n var y2 = point.y.redSqr();\n var lhs = x2.redMul(this.a).redAdd(y2);\n var rhs = this.c2.redMul(this.one.redAdd(this.d.redMul(x2).redMul(y2)));\n\n return lhs.cmp(rhs) === 0;\n};\n\nfunction Point(curve, x, y, z, t) {\n Base.BasePoint.call(this, curve, 'projective');\n if (x === null && y === null && z === null) {\n this.x = this.curve.zero;\n this.y = this.curve.one;\n this.z = this.curve.one;\n this.t = this.curve.zero;\n this.zOne = true;\n } else {\n this.x = new BN(x, 16);\n this.y = new BN(y, 16);\n this.z = z ? new BN(z, 16) : this.curve.one;\n this.t = t && new BN(t, 16);\n if (!this.x.red)\n this.x = this.x.toRed(this.curve.red);\n if (!this.y.red)\n this.y = this.y.toRed(this.curve.red);\n if (!this.z.red)\n this.z = this.z.toRed(this.curve.red);\n if (this.t && !this.t.red)\n this.t = this.t.toRed(this.curve.red);\n this.zOne = this.z === this.curve.one;\n\n // Use extended coordinates\n if (this.curve.extended && !this.t) {\n this.t = this.x.redMul(this.y);\n if (!this.zOne)\n this.t = this.t.redMul(this.z.redInvm());\n }\n }\n}\ninherits(Point, Base.BasePoint);\n\nEdwardsCurve.prototype.pointFromJSON = function pointFromJSON(obj) {\n return Point.fromJSON(this, obj);\n};\n\nEdwardsCurve.prototype.point = function point(x, y, z, t) {\n return new Point(this, x, y, z, t);\n};\n\nPoint.fromJSON = function fromJSON(curve, obj) {\n return new Point(curve, obj[0], obj[1], obj[2]);\n};\n\nPoint.prototype.inspect = function inspect() {\n if (this.isInfinity())\n return '';\n return '';\n};\n\nPoint.prototype.isInfinity = function isInfinity() {\n // XXX This code assumes that zero is always zero in red\n return this.x.cmpn(0) === 0 &&\n (this.y.cmp(this.z) === 0 ||\n (this.zOne && this.y.cmp(this.curve.c) === 0));\n};\n\nPoint.prototype._extDbl = function _extDbl() {\n // hyperelliptic.org/EFD/g1p/auto-twisted-extended-1.html\n // #doubling-dbl-2008-hwcd\n // 4M + 4S\n\n // A = X1^2\n var a = this.x.redSqr();\n // B = Y1^2\n var b = this.y.redSqr();\n // C = 2 * Z1^2\n var c = this.z.redSqr();\n c = c.redIAdd(c);\n // D = a * A\n var d = this.curve._mulA(a);\n // E = (X1 + Y1)^2 - A - B\n var e = this.x.redAdd(this.y).redSqr().redISub(a).redISub(b);\n // G = D + B\n var g = d.redAdd(b);\n // F = G - C\n var f = g.redSub(c);\n // H = D - B\n var h = d.redSub(b);\n // X3 = E * F\n var nx = e.redMul(f);\n // Y3 = G * H\n var ny = g.redMul(h);\n // T3 = E * H\n var nt = e.redMul(h);\n // Z3 = F * G\n var nz = f.redMul(g);\n return this.curve.point(nx, ny, nz, nt);\n};\n\nPoint.prototype._projDbl = function _projDbl() {\n // hyperelliptic.org/EFD/g1p/auto-twisted-projective.html\n // #doubling-dbl-2008-bbjlp\n // #doubling-dbl-2007-bl\n // and others\n // Generally 3M + 4S or 2M + 4S\n\n // B = (X1 + Y1)^2\n var b = this.x.redAdd(this.y).redSqr();\n // C = X1^2\n var c = this.x.redSqr();\n // D = Y1^2\n var d = this.y.redSqr();\n\n var nx;\n var ny;\n var nz;\n var e;\n var h;\n var j;\n if (this.curve.twisted) {\n // E = a * C\n e = this.curve._mulA(c);\n // F = E + D\n var f = e.redAdd(d);\n if (this.zOne) {\n // X3 = (B - C - D) * (F - 2)\n nx = b.redSub(c).redSub(d).redMul(f.redSub(this.curve.two));\n // Y3 = F * (E - D)\n ny = f.redMul(e.redSub(d));\n // Z3 = F^2 - 2 * F\n nz = f.redSqr().redSub(f).redSub(f);\n } else {\n // H = Z1^2\n h = this.z.redSqr();\n // J = F - 2 * H\n j = f.redSub(h).redISub(h);\n // X3 = (B-C-D)*J\n nx = b.redSub(c).redISub(d).redMul(j);\n // Y3 = F * (E - D)\n ny = f.redMul(e.redSub(d));\n // Z3 = F * J\n nz = f.redMul(j);\n }\n } else {\n // E = C + D\n e = c.redAdd(d);\n // H = (c * Z1)^2\n h = this.curve._mulC(this.z).redSqr();\n // J = E - 2 * H\n j = e.redSub(h).redSub(h);\n // X3 = c * (B - E) * J\n nx = this.curve._mulC(b.redISub(e)).redMul(j);\n // Y3 = c * E * (C - D)\n ny = this.curve._mulC(e).redMul(c.redISub(d));\n // Z3 = E * J\n nz = e.redMul(j);\n }\n return this.curve.point(nx, ny, nz);\n};\n\nPoint.prototype.dbl = function dbl() {\n if (this.isInfinity())\n return this;\n\n // Double in extended coordinates\n if (this.curve.extended)\n return this._extDbl();\n else\n return this._projDbl();\n};\n\nPoint.prototype._extAdd = function _extAdd(p) {\n // hyperelliptic.org/EFD/g1p/auto-twisted-extended-1.html\n // #addition-add-2008-hwcd-3\n // 8M\n\n // A = (Y1 - X1) * (Y2 - X2)\n var a = this.y.redSub(this.x).redMul(p.y.redSub(p.x));\n // B = (Y1 + X1) * (Y2 + X2)\n var b = this.y.redAdd(this.x).redMul(p.y.redAdd(p.x));\n // C = T1 * k * T2\n var c = this.t.redMul(this.curve.dd).redMul(p.t);\n // D = Z1 * 2 * Z2\n var d = this.z.redMul(p.z.redAdd(p.z));\n // E = B - A\n var e = b.redSub(a);\n // F = D - C\n var f = d.redSub(c);\n // G = D + C\n var g = d.redAdd(c);\n // H = B + A\n var h = b.redAdd(a);\n // X3 = E * F\n var nx = e.redMul(f);\n // Y3 = G * H\n var ny = g.redMul(h);\n // T3 = E * H\n var nt = e.redMul(h);\n // Z3 = F * G\n var nz = f.redMul(g);\n return this.curve.point(nx, ny, nz, nt);\n};\n\nPoint.prototype._projAdd = function _projAdd(p) {\n // hyperelliptic.org/EFD/g1p/auto-twisted-projective.html\n // #addition-add-2008-bbjlp\n // #addition-add-2007-bl\n // 10M + 1S\n\n // A = Z1 * Z2\n var a = this.z.redMul(p.z);\n // B = A^2\n var b = a.redSqr();\n // C = X1 * X2\n var c = this.x.redMul(p.x);\n // D = Y1 * Y2\n var d = this.y.redMul(p.y);\n // E = d * C * D\n var e = this.curve.d.redMul(c).redMul(d);\n // F = B - E\n var f = b.redSub(e);\n // G = B + E\n var g = b.redAdd(e);\n // X3 = A * F * ((X1 + Y1) * (X2 + Y2) - C - D)\n var tmp = this.x.redAdd(this.y).redMul(p.x.redAdd(p.y)).redISub(c).redISub(d);\n var nx = a.redMul(f).redMul(tmp);\n var ny;\n var nz;\n if (this.curve.twisted) {\n // Y3 = A * G * (D - a * C)\n ny = a.redMul(g).redMul(d.redSub(this.curve._mulA(c)));\n // Z3 = F * G\n nz = f.redMul(g);\n } else {\n // Y3 = A * G * (D - C)\n ny = a.redMul(g).redMul(d.redSub(c));\n // Z3 = c * F * G\n nz = this.curve._mulC(f).redMul(g);\n }\n return this.curve.point(nx, ny, nz);\n};\n\nPoint.prototype.add = function add(p) {\n if (this.isInfinity())\n return p;\n if (p.isInfinity())\n return this;\n\n if (this.curve.extended)\n return this._extAdd(p);\n else\n return this._projAdd(p);\n};\n\nPoint.prototype.mul = function mul(k) {\n if (this._hasDoubles(k))\n return this.curve._fixedNafMul(this, k);\n else\n return this.curve._wnafMul(this, k);\n};\n\nPoint.prototype.mulAdd = function mulAdd(k1, p, k2) {\n return this.curve._wnafMulAdd(1, [ this, p ], [ k1, k2 ], 2, false);\n};\n\nPoint.prototype.jmulAdd = function jmulAdd(k1, p, k2) {\n return this.curve._wnafMulAdd(1, [ this, p ], [ k1, k2 ], 2, true);\n};\n\nPoint.prototype.normalize = function normalize() {\n if (this.zOne)\n return this;\n\n // Normalize coordinates\n var zi = this.z.redInvm();\n this.x = this.x.redMul(zi);\n this.y = this.y.redMul(zi);\n if (this.t)\n this.t = this.t.redMul(zi);\n this.z = this.curve.one;\n this.zOne = true;\n return this;\n};\n\nPoint.prototype.neg = function neg() {\n return this.curve.point(this.x.redNeg(),\n this.y,\n this.z,\n this.t && this.t.redNeg());\n};\n\nPoint.prototype.getX = function getX() {\n this.normalize();\n return this.x.fromRed();\n};\n\nPoint.prototype.getY = function getY() {\n this.normalize();\n return this.y.fromRed();\n};\n\nPoint.prototype.eq = function eq(other) {\n return this === other ||\n this.getX().cmp(other.getX()) === 0 &&\n this.getY().cmp(other.getY()) === 0;\n};\n\nPoint.prototype.eqXToP = function eqXToP(x) {\n var rx = x.toRed(this.curve.red).redMul(this.z);\n if (this.x.cmp(rx) === 0)\n return true;\n\n var xc = x.clone();\n var t = this.curve.redN.redMul(this.z);\n for (;;) {\n xc.iadd(this.curve.n);\n if (xc.cmp(this.curve.p) >= 0)\n return false;\n\n rx.redIAdd(t);\n if (this.x.cmp(rx) === 0)\n return true;\n }\n};\n\n// Compatibility with BaseCurve\nPoint.prototype.toP = Point.prototype.normalize;\nPoint.prototype.mixedAdd = Point.prototype.add;\n", "'use strict';\n\nvar curve = exports;\n\ncurve.base = require('./base');\ncurve.short = require('./short');\ncurve.mont = require('./mont');\ncurve.edwards = require('./edwards');\n", "'use strict';\n\nvar assert = require('minimalistic-assert');\nvar inherits = require('inherits');\n\nexports.inherits = inherits;\n\nfunction isSurrogatePair(msg, i) {\n if ((msg.charCodeAt(i) & 0xFC00) !== 0xD800) {\n return false;\n }\n if (i < 0 || i + 1 >= msg.length) {\n return false;\n }\n return (msg.charCodeAt(i + 1) & 0xFC00) === 0xDC00;\n}\n\nfunction toArray(msg, enc) {\n if (Array.isArray(msg))\n return msg.slice();\n if (!msg)\n return [];\n var res = [];\n if (typeof msg === 'string') {\n if (!enc) {\n // Inspired by stringToUtf8ByteArray() in closure-library by Google\n // https://github.com/google/closure-library/blob/8598d87242af59aac233270742c8984e2b2bdbe0/closure/goog/crypt/crypt.js#L117-L143\n // Apache License 2.0\n // https://github.com/google/closure-library/blob/master/LICENSE\n var p = 0;\n for (var i = 0; i < msg.length; i++) {\n var c = msg.charCodeAt(i);\n if (c < 128) {\n res[p++] = c;\n } else if (c < 2048) {\n res[p++] = (c >> 6) | 192;\n res[p++] = (c & 63) | 128;\n } else if (isSurrogatePair(msg, i)) {\n c = 0x10000 + ((c & 0x03FF) << 10) + (msg.charCodeAt(++i) & 0x03FF);\n res[p++] = (c >> 18) | 240;\n res[p++] = ((c >> 12) & 63) | 128;\n res[p++] = ((c >> 6) & 63) | 128;\n res[p++] = (c & 63) | 128;\n } else {\n res[p++] = (c >> 12) | 224;\n res[p++] = ((c >> 6) & 63) | 128;\n res[p++] = (c & 63) | 128;\n }\n }\n } else if (enc === 'hex') {\n msg = msg.replace(/[^a-z0-9]+/ig, '');\n if (msg.length % 2 !== 0)\n msg = '0' + msg;\n for (i = 0; i < msg.length; i += 2)\n res.push(parseInt(msg[i] + msg[i + 1], 16));\n }\n } else {\n for (i = 0; i < msg.length; i++)\n res[i] = msg[i] | 0;\n }\n return res;\n}\nexports.toArray = toArray;\n\nfunction toHex(msg) {\n var res = '';\n for (var i = 0; i < msg.length; i++)\n res += zero2(msg[i].toString(16));\n return res;\n}\nexports.toHex = toHex;\n\nfunction htonl(w) {\n var res = (w >>> 24) |\n ((w >>> 8) & 0xff00) |\n ((w << 8) & 0xff0000) |\n ((w & 0xff) << 24);\n return res >>> 0;\n}\nexports.htonl = htonl;\n\nfunction toHex32(msg, endian) {\n var res = '';\n for (var i = 0; i < msg.length; i++) {\n var w = msg[i];\n if (endian === 'little')\n w = htonl(w);\n res += zero8(w.toString(16));\n }\n return res;\n}\nexports.toHex32 = toHex32;\n\nfunction zero2(word) {\n if (word.length === 1)\n return '0' + word;\n else\n return word;\n}\nexports.zero2 = zero2;\n\nfunction zero8(word) {\n if (word.length === 7)\n return '0' + word;\n else if (word.length === 6)\n return '00' + word;\n else if (word.length === 5)\n return '000' + word;\n else if (word.length === 4)\n return '0000' + word;\n else if (word.length === 3)\n return '00000' + word;\n else if (word.length === 2)\n return '000000' + word;\n else if (word.length === 1)\n return '0000000' + word;\n else\n return word;\n}\nexports.zero8 = zero8;\n\nfunction join32(msg, start, end, endian) {\n var len = end - start;\n assert(len % 4 === 0);\n var res = new Array(len / 4);\n for (var i = 0, k = start; i < res.length; i++, k += 4) {\n var w;\n if (endian === 'big')\n w = (msg[k] << 24) | (msg[k + 1] << 16) | (msg[k + 2] << 8) | msg[k + 3];\n else\n w = (msg[k + 3] << 24) | (msg[k + 2] << 16) | (msg[k + 1] << 8) | msg[k];\n res[i] = w >>> 0;\n }\n return res;\n}\nexports.join32 = join32;\n\nfunction split32(msg, endian) {\n var res = new Array(msg.length * 4);\n for (var i = 0, k = 0; i < msg.length; i++, k += 4) {\n var m = msg[i];\n if (endian === 'big') {\n res[k] = m >>> 24;\n res[k + 1] = (m >>> 16) & 0xff;\n res[k + 2] = (m >>> 8) & 0xff;\n res[k + 3] = m & 0xff;\n } else {\n res[k + 3] = m >>> 24;\n res[k + 2] = (m >>> 16) & 0xff;\n res[k + 1] = (m >>> 8) & 0xff;\n res[k] = m & 0xff;\n }\n }\n return res;\n}\nexports.split32 = split32;\n\nfunction rotr32(w, b) {\n return (w >>> b) | (w << (32 - b));\n}\nexports.rotr32 = rotr32;\n\nfunction rotl32(w, b) {\n return (w << b) | (w >>> (32 - b));\n}\nexports.rotl32 = rotl32;\n\nfunction sum32(a, b) {\n return (a + b) >>> 0;\n}\nexports.sum32 = sum32;\n\nfunction sum32_3(a, b, c) {\n return (a + b + c) >>> 0;\n}\nexports.sum32_3 = sum32_3;\n\nfunction sum32_4(a, b, c, d) {\n return (a + b + c + d) >>> 0;\n}\nexports.sum32_4 = sum32_4;\n\nfunction sum32_5(a, b, c, d, e) {\n return (a + b + c + d + e) >>> 0;\n}\nexports.sum32_5 = sum32_5;\n\nfunction sum64(buf, pos, ah, al) {\n var bh = buf[pos];\n var bl = buf[pos + 1];\n\n var lo = (al + bl) >>> 0;\n var hi = (lo < al ? 1 : 0) + ah + bh;\n buf[pos] = hi >>> 0;\n buf[pos + 1] = lo;\n}\nexports.sum64 = sum64;\n\nfunction sum64_hi(ah, al, bh, bl) {\n var lo = (al + bl) >>> 0;\n var hi = (lo < al ? 1 : 0) + ah + bh;\n return hi >>> 0;\n}\nexports.sum64_hi = sum64_hi;\n\nfunction sum64_lo(ah, al, bh, bl) {\n var lo = al + bl;\n return lo >>> 0;\n}\nexports.sum64_lo = sum64_lo;\n\nfunction sum64_4_hi(ah, al, bh, bl, ch, cl, dh, dl) {\n var carry = 0;\n var lo = al;\n lo = (lo + bl) >>> 0;\n carry += lo < al ? 1 : 0;\n lo = (lo + cl) >>> 0;\n carry += lo < cl ? 1 : 0;\n lo = (lo + dl) >>> 0;\n carry += lo < dl ? 1 : 0;\n\n var hi = ah + bh + ch + dh + carry;\n return hi >>> 0;\n}\nexports.sum64_4_hi = sum64_4_hi;\n\nfunction sum64_4_lo(ah, al, bh, bl, ch, cl, dh, dl) {\n var lo = al + bl + cl + dl;\n return lo >>> 0;\n}\nexports.sum64_4_lo = sum64_4_lo;\n\nfunction sum64_5_hi(ah, al, bh, bl, ch, cl, dh, dl, eh, el) {\n var carry = 0;\n var lo = al;\n lo = (lo + bl) >>> 0;\n carry += lo < al ? 1 : 0;\n lo = (lo + cl) >>> 0;\n carry += lo < cl ? 1 : 0;\n lo = (lo + dl) >>> 0;\n carry += lo < dl ? 1 : 0;\n lo = (lo + el) >>> 0;\n carry += lo < el ? 1 : 0;\n\n var hi = ah + bh + ch + dh + eh + carry;\n return hi >>> 0;\n}\nexports.sum64_5_hi = sum64_5_hi;\n\nfunction sum64_5_lo(ah, al, bh, bl, ch, cl, dh, dl, eh, el) {\n var lo = al + bl + cl + dl + el;\n\n return lo >>> 0;\n}\nexports.sum64_5_lo = sum64_5_lo;\n\nfunction rotr64_hi(ah, al, num) {\n var r = (al << (32 - num)) | (ah >>> num);\n return r >>> 0;\n}\nexports.rotr64_hi = rotr64_hi;\n\nfunction rotr64_lo(ah, al, num) {\n var r = (ah << (32 - num)) | (al >>> num);\n return r >>> 0;\n}\nexports.rotr64_lo = rotr64_lo;\n\nfunction shr64_hi(ah, al, num) {\n return ah >>> num;\n}\nexports.shr64_hi = shr64_hi;\n\nfunction shr64_lo(ah, al, num) {\n var r = (ah << (32 - num)) | (al >>> num);\n return r >>> 0;\n}\nexports.shr64_lo = shr64_lo;\n", "'use strict';\n\nvar utils = require('./utils');\nvar assert = require('minimalistic-assert');\n\nfunction BlockHash() {\n this.pending = null;\n this.pendingTotal = 0;\n this.blockSize = this.constructor.blockSize;\n this.outSize = this.constructor.outSize;\n this.hmacStrength = this.constructor.hmacStrength;\n this.padLength = this.constructor.padLength / 8;\n this.endian = 'big';\n\n this._delta8 = this.blockSize / 8;\n this._delta32 = this.blockSize / 32;\n}\nexports.BlockHash = BlockHash;\n\nBlockHash.prototype.update = function update(msg, enc) {\n // Convert message to array, pad it, and join into 32bit blocks\n msg = utils.toArray(msg, enc);\n if (!this.pending)\n this.pending = msg;\n else\n this.pending = this.pending.concat(msg);\n this.pendingTotal += msg.length;\n\n // Enough data, try updating\n if (this.pending.length >= this._delta8) {\n msg = this.pending;\n\n // Process pending data in blocks\n var r = msg.length % this._delta8;\n this.pending = msg.slice(msg.length - r, msg.length);\n if (this.pending.length === 0)\n this.pending = null;\n\n msg = utils.join32(msg, 0, msg.length - r, this.endian);\n for (var i = 0; i < msg.length; i += this._delta32)\n this._update(msg, i, i + this._delta32);\n }\n\n return this;\n};\n\nBlockHash.prototype.digest = function digest(enc) {\n this.update(this._pad());\n assert(this.pending === null);\n\n return this._digest(enc);\n};\n\nBlockHash.prototype._pad = function pad() {\n var len = this.pendingTotal;\n var bytes = this._delta8;\n var k = bytes - ((len + this.padLength) % bytes);\n var res = new Array(k + this.padLength);\n res[0] = 0x80;\n for (var i = 1; i < k; i++)\n res[i] = 0;\n\n // Append length\n len <<= 3;\n if (this.endian === 'big') {\n for (var t = 8; t < this.padLength; t++)\n res[i++] = 0;\n\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = (len >>> 24) & 0xff;\n res[i++] = (len >>> 16) & 0xff;\n res[i++] = (len >>> 8) & 0xff;\n res[i++] = len & 0xff;\n } else {\n res[i++] = len & 0xff;\n res[i++] = (len >>> 8) & 0xff;\n res[i++] = (len >>> 16) & 0xff;\n res[i++] = (len >>> 24) & 0xff;\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = 0;\n\n for (t = 8; t < this.padLength; t++)\n res[i++] = 0;\n }\n\n return res;\n};\n", "'use strict';\n\nvar utils = require('../utils');\nvar rotr32 = utils.rotr32;\n\nfunction ft_1(s, x, y, z) {\n if (s === 0)\n return ch32(x, y, z);\n if (s === 1 || s === 3)\n return p32(x, y, z);\n if (s === 2)\n return maj32(x, y, z);\n}\nexports.ft_1 = ft_1;\n\nfunction ch32(x, y, z) {\n return (x & y) ^ ((~x) & z);\n}\nexports.ch32 = ch32;\n\nfunction maj32(x, y, z) {\n return (x & y) ^ (x & z) ^ (y & z);\n}\nexports.maj32 = maj32;\n\nfunction p32(x, y, z) {\n return x ^ y ^ z;\n}\nexports.p32 = p32;\n\nfunction s0_256(x) {\n return rotr32(x, 2) ^ rotr32(x, 13) ^ rotr32(x, 22);\n}\nexports.s0_256 = s0_256;\n\nfunction s1_256(x) {\n return rotr32(x, 6) ^ rotr32(x, 11) ^ rotr32(x, 25);\n}\nexports.s1_256 = s1_256;\n\nfunction g0_256(x) {\n return rotr32(x, 7) ^ rotr32(x, 18) ^ (x >>> 3);\n}\nexports.g0_256 = g0_256;\n\nfunction g1_256(x) {\n return rotr32(x, 17) ^ rotr32(x, 19) ^ (x >>> 10);\n}\nexports.g1_256 = g1_256;\n", "'use strict';\n\nvar utils = require('../utils');\nvar common = require('../common');\nvar shaCommon = require('./common');\n\nvar rotl32 = utils.rotl32;\nvar sum32 = utils.sum32;\nvar sum32_5 = utils.sum32_5;\nvar ft_1 = shaCommon.ft_1;\nvar BlockHash = common.BlockHash;\n\nvar sha1_K = [\n 0x5A827999, 0x6ED9EBA1,\n 0x8F1BBCDC, 0xCA62C1D6\n];\n\nfunction SHA1() {\n if (!(this instanceof SHA1))\n return new SHA1();\n\n BlockHash.call(this);\n this.h = [\n 0x67452301, 0xefcdab89, 0x98badcfe,\n 0x10325476, 0xc3d2e1f0 ];\n this.W = new Array(80);\n}\n\nutils.inherits(SHA1, BlockHash);\nmodule.exports = SHA1;\n\nSHA1.blockSize = 512;\nSHA1.outSize = 160;\nSHA1.hmacStrength = 80;\nSHA1.padLength = 64;\n\nSHA1.prototype._update = function _update(msg, start) {\n var W = this.W;\n\n for (var i = 0; i < 16; i++)\n W[i] = msg[start + i];\n\n for(; i < W.length; i++)\n W[i] = rotl32(W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16], 1);\n\n var a = this.h[0];\n var b = this.h[1];\n var c = this.h[2];\n var d = this.h[3];\n var e = this.h[4];\n\n for (i = 0; i < W.length; i++) {\n var s = ~~(i / 20);\n var t = sum32_5(rotl32(a, 5), ft_1(s, b, c, d), e, W[i], sha1_K[s]);\n e = d;\n d = c;\n c = rotl32(b, 30);\n b = a;\n a = t;\n }\n\n this.h[0] = sum32(this.h[0], a);\n this.h[1] = sum32(this.h[1], b);\n this.h[2] = sum32(this.h[2], c);\n this.h[3] = sum32(this.h[3], d);\n this.h[4] = sum32(this.h[4], e);\n};\n\nSHA1.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h, 'big');\n else\n return utils.split32(this.h, 'big');\n};\n", "'use strict';\n\nvar utils = require('../utils');\nvar common = require('../common');\nvar shaCommon = require('./common');\nvar assert = require('minimalistic-assert');\n\nvar sum32 = utils.sum32;\nvar sum32_4 = utils.sum32_4;\nvar sum32_5 = utils.sum32_5;\nvar ch32 = shaCommon.ch32;\nvar maj32 = shaCommon.maj32;\nvar s0_256 = shaCommon.s0_256;\nvar s1_256 = shaCommon.s1_256;\nvar g0_256 = shaCommon.g0_256;\nvar g1_256 = shaCommon.g1_256;\n\nvar BlockHash = common.BlockHash;\n\nvar sha256_K = [\n 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5,\n 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5,\n 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3,\n 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174,\n 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc,\n 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,\n 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7,\n 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967,\n 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13,\n 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,\n 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3,\n 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,\n 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5,\n 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3,\n 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208,\n 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2\n];\n\nfunction SHA256() {\n if (!(this instanceof SHA256))\n return new SHA256();\n\n BlockHash.call(this);\n this.h = [\n 0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a,\n 0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19\n ];\n this.k = sha256_K;\n this.W = new Array(64);\n}\nutils.inherits(SHA256, BlockHash);\nmodule.exports = SHA256;\n\nSHA256.blockSize = 512;\nSHA256.outSize = 256;\nSHA256.hmacStrength = 192;\nSHA256.padLength = 64;\n\nSHA256.prototype._update = function _update(msg, start) {\n var W = this.W;\n\n for (var i = 0; i < 16; i++)\n W[i] = msg[start + i];\n for (; i < W.length; i++)\n W[i] = sum32_4(g1_256(W[i - 2]), W[i - 7], g0_256(W[i - 15]), W[i - 16]);\n\n var a = this.h[0];\n var b = this.h[1];\n var c = this.h[2];\n var d = this.h[3];\n var e = this.h[4];\n var f = this.h[5];\n var g = this.h[6];\n var h = this.h[7];\n\n assert(this.k.length === W.length);\n for (i = 0; i < W.length; i++) {\n var T1 = sum32_5(h, s1_256(e), ch32(e, f, g), this.k[i], W[i]);\n var T2 = sum32(s0_256(a), maj32(a, b, c));\n h = g;\n g = f;\n f = e;\n e = sum32(d, T1);\n d = c;\n c = b;\n b = a;\n a = sum32(T1, T2);\n }\n\n this.h[0] = sum32(this.h[0], a);\n this.h[1] = sum32(this.h[1], b);\n this.h[2] = sum32(this.h[2], c);\n this.h[3] = sum32(this.h[3], d);\n this.h[4] = sum32(this.h[4], e);\n this.h[5] = sum32(this.h[5], f);\n this.h[6] = sum32(this.h[6], g);\n this.h[7] = sum32(this.h[7], h);\n};\n\nSHA256.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h, 'big');\n else\n return utils.split32(this.h, 'big');\n};\n", "'use strict';\n\nvar utils = require('../utils');\nvar SHA256 = require('./256');\n\nfunction SHA224() {\n if (!(this instanceof SHA224))\n return new SHA224();\n\n SHA256.call(this);\n this.h = [\n 0xc1059ed8, 0x367cd507, 0x3070dd17, 0xf70e5939,\n 0xffc00b31, 0x68581511, 0x64f98fa7, 0xbefa4fa4 ];\n}\nutils.inherits(SHA224, SHA256);\nmodule.exports = SHA224;\n\nSHA224.blockSize = 512;\nSHA224.outSize = 224;\nSHA224.hmacStrength = 192;\nSHA224.padLength = 64;\n\nSHA224.prototype._digest = function digest(enc) {\n // Just truncate output\n if (enc === 'hex')\n return utils.toHex32(this.h.slice(0, 7), 'big');\n else\n return utils.split32(this.h.slice(0, 7), 'big');\n};\n\n", "'use strict';\n\nvar utils = require('../utils');\nvar common = require('../common');\nvar assert = require('minimalistic-assert');\n\nvar rotr64_hi = utils.rotr64_hi;\nvar rotr64_lo = utils.rotr64_lo;\nvar shr64_hi = utils.shr64_hi;\nvar shr64_lo = utils.shr64_lo;\nvar sum64 = utils.sum64;\nvar sum64_hi = utils.sum64_hi;\nvar sum64_lo = utils.sum64_lo;\nvar sum64_4_hi = utils.sum64_4_hi;\nvar sum64_4_lo = utils.sum64_4_lo;\nvar sum64_5_hi = utils.sum64_5_hi;\nvar sum64_5_lo = utils.sum64_5_lo;\n\nvar BlockHash = common.BlockHash;\n\nvar sha512_K = [\n 0x428a2f98, 0xd728ae22, 0x71374491, 0x23ef65cd,\n 0xb5c0fbcf, 0xec4d3b2f, 0xe9b5dba5, 0x8189dbbc,\n 0x3956c25b, 0xf348b538, 0x59f111f1, 0xb605d019,\n 0x923f82a4, 0xaf194f9b, 0xab1c5ed5, 0xda6d8118,\n 0xd807aa98, 0xa3030242, 0x12835b01, 0x45706fbe,\n 0x243185be, 0x4ee4b28c, 0x550c7dc3, 0xd5ffb4e2,\n 0x72be5d74, 0xf27b896f, 0x80deb1fe, 0x3b1696b1,\n 0x9bdc06a7, 0x25c71235, 0xc19bf174, 0xcf692694,\n 0xe49b69c1, 0x9ef14ad2, 0xefbe4786, 0x384f25e3,\n 0x0fc19dc6, 0x8b8cd5b5, 0x240ca1cc, 0x77ac9c65,\n 0x2de92c6f, 0x592b0275, 0x4a7484aa, 0x6ea6e483,\n 0x5cb0a9dc, 0xbd41fbd4, 0x76f988da, 0x831153b5,\n 0x983e5152, 0xee66dfab, 0xa831c66d, 0x2db43210,\n 0xb00327c8, 0x98fb213f, 0xbf597fc7, 0xbeef0ee4,\n 0xc6e00bf3, 0x3da88fc2, 0xd5a79147, 0x930aa725,\n 0x06ca6351, 0xe003826f, 0x14292967, 0x0a0e6e70,\n 0x27b70a85, 0x46d22ffc, 0x2e1b2138, 0x5c26c926,\n 0x4d2c6dfc, 0x5ac42aed, 0x53380d13, 0x9d95b3df,\n 0x650a7354, 0x8baf63de, 0x766a0abb, 0x3c77b2a8,\n 0x81c2c92e, 0x47edaee6, 0x92722c85, 0x1482353b,\n 0xa2bfe8a1, 0x4cf10364, 0xa81a664b, 0xbc423001,\n 0xc24b8b70, 0xd0f89791, 0xc76c51a3, 0x0654be30,\n 0xd192e819, 0xd6ef5218, 0xd6990624, 0x5565a910,\n 0xf40e3585, 0x5771202a, 0x106aa070, 0x32bbd1b8,\n 0x19a4c116, 0xb8d2d0c8, 0x1e376c08, 0x5141ab53,\n 0x2748774c, 0xdf8eeb99, 0x34b0bcb5, 0xe19b48a8,\n 0x391c0cb3, 0xc5c95a63, 0x4ed8aa4a, 0xe3418acb,\n 0x5b9cca4f, 0x7763e373, 0x682e6ff3, 0xd6b2b8a3,\n 0x748f82ee, 0x5defb2fc, 0x78a5636f, 0x43172f60,\n 0x84c87814, 0xa1f0ab72, 0x8cc70208, 0x1a6439ec,\n 0x90befffa, 0x23631e28, 0xa4506ceb, 0xde82bde9,\n 0xbef9a3f7, 0xb2c67915, 0xc67178f2, 0xe372532b,\n 0xca273ece, 0xea26619c, 0xd186b8c7, 0x21c0c207,\n 0xeada7dd6, 0xcde0eb1e, 0xf57d4f7f, 0xee6ed178,\n 0x06f067aa, 0x72176fba, 0x0a637dc5, 0xa2c898a6,\n 0x113f9804, 0xbef90dae, 0x1b710b35, 0x131c471b,\n 0x28db77f5, 0x23047d84, 0x32caab7b, 0x40c72493,\n 0x3c9ebe0a, 0x15c9bebc, 0x431d67c4, 0x9c100d4c,\n 0x4cc5d4be, 0xcb3e42b6, 0x597f299c, 0xfc657e2a,\n 0x5fcb6fab, 0x3ad6faec, 0x6c44198c, 0x4a475817\n];\n\nfunction SHA512() {\n if (!(this instanceof SHA512))\n return new SHA512();\n\n BlockHash.call(this);\n this.h = [\n 0x6a09e667, 0xf3bcc908,\n 0xbb67ae85, 0x84caa73b,\n 0x3c6ef372, 0xfe94f82b,\n 0xa54ff53a, 0x5f1d36f1,\n 0x510e527f, 0xade682d1,\n 0x9b05688c, 0x2b3e6c1f,\n 0x1f83d9ab, 0xfb41bd6b,\n 0x5be0cd19, 0x137e2179 ];\n this.k = sha512_K;\n this.W = new Array(160);\n}\nutils.inherits(SHA512, BlockHash);\nmodule.exports = SHA512;\n\nSHA512.blockSize = 1024;\nSHA512.outSize = 512;\nSHA512.hmacStrength = 192;\nSHA512.padLength = 128;\n\nSHA512.prototype._prepareBlock = function _prepareBlock(msg, start) {\n var W = this.W;\n\n // 32 x 32bit words\n for (var i = 0; i < 32; i++)\n W[i] = msg[start + i];\n for (; i < W.length; i += 2) {\n var c0_hi = g1_512_hi(W[i - 4], W[i - 3]); // i - 2\n var c0_lo = g1_512_lo(W[i - 4], W[i - 3]);\n var c1_hi = W[i - 14]; // i - 7\n var c1_lo = W[i - 13];\n var c2_hi = g0_512_hi(W[i - 30], W[i - 29]); // i - 15\n var c2_lo = g0_512_lo(W[i - 30], W[i - 29]);\n var c3_hi = W[i - 32]; // i - 16\n var c3_lo = W[i - 31];\n\n W[i] = sum64_4_hi(\n c0_hi, c0_lo,\n c1_hi, c1_lo,\n c2_hi, c2_lo,\n c3_hi, c3_lo);\n W[i + 1] = sum64_4_lo(\n c0_hi, c0_lo,\n c1_hi, c1_lo,\n c2_hi, c2_lo,\n c3_hi, c3_lo);\n }\n};\n\nSHA512.prototype._update = function _update(msg, start) {\n this._prepareBlock(msg, start);\n\n var W = this.W;\n\n var ah = this.h[0];\n var al = this.h[1];\n var bh = this.h[2];\n var bl = this.h[3];\n var ch = this.h[4];\n var cl = this.h[5];\n var dh = this.h[6];\n var dl = this.h[7];\n var eh = this.h[8];\n var el = this.h[9];\n var fh = this.h[10];\n var fl = this.h[11];\n var gh = this.h[12];\n var gl = this.h[13];\n var hh = this.h[14];\n var hl = this.h[15];\n\n assert(this.k.length === W.length);\n for (var i = 0; i < W.length; i += 2) {\n var c0_hi = hh;\n var c0_lo = hl;\n var c1_hi = s1_512_hi(eh, el);\n var c1_lo = s1_512_lo(eh, el);\n var c2_hi = ch64_hi(eh, el, fh, fl, gh, gl);\n var c2_lo = ch64_lo(eh, el, fh, fl, gh, gl);\n var c3_hi = this.k[i];\n var c3_lo = this.k[i + 1];\n var c4_hi = W[i];\n var c4_lo = W[i + 1];\n\n var T1_hi = sum64_5_hi(\n c0_hi, c0_lo,\n c1_hi, c1_lo,\n c2_hi, c2_lo,\n c3_hi, c3_lo,\n c4_hi, c4_lo);\n var T1_lo = sum64_5_lo(\n c0_hi, c0_lo,\n c1_hi, c1_lo,\n c2_hi, c2_lo,\n c3_hi, c3_lo,\n c4_hi, c4_lo);\n\n c0_hi = s0_512_hi(ah, al);\n c0_lo = s0_512_lo(ah, al);\n c1_hi = maj64_hi(ah, al, bh, bl, ch, cl);\n c1_lo = maj64_lo(ah, al, bh, bl, ch, cl);\n\n var T2_hi = sum64_hi(c0_hi, c0_lo, c1_hi, c1_lo);\n var T2_lo = sum64_lo(c0_hi, c0_lo, c1_hi, c1_lo);\n\n hh = gh;\n hl = gl;\n\n gh = fh;\n gl = fl;\n\n fh = eh;\n fl = el;\n\n eh = sum64_hi(dh, dl, T1_hi, T1_lo);\n el = sum64_lo(dl, dl, T1_hi, T1_lo);\n\n dh = ch;\n dl = cl;\n\n ch = bh;\n cl = bl;\n\n bh = ah;\n bl = al;\n\n ah = sum64_hi(T1_hi, T1_lo, T2_hi, T2_lo);\n al = sum64_lo(T1_hi, T1_lo, T2_hi, T2_lo);\n }\n\n sum64(this.h, 0, ah, al);\n sum64(this.h, 2, bh, bl);\n sum64(this.h, 4, ch, cl);\n sum64(this.h, 6, dh, dl);\n sum64(this.h, 8, eh, el);\n sum64(this.h, 10, fh, fl);\n sum64(this.h, 12, gh, gl);\n sum64(this.h, 14, hh, hl);\n};\n\nSHA512.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h, 'big');\n else\n return utils.split32(this.h, 'big');\n};\n\nfunction ch64_hi(xh, xl, yh, yl, zh) {\n var r = (xh & yh) ^ ((~xh) & zh);\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction ch64_lo(xh, xl, yh, yl, zh, zl) {\n var r = (xl & yl) ^ ((~xl) & zl);\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction maj64_hi(xh, xl, yh, yl, zh) {\n var r = (xh & yh) ^ (xh & zh) ^ (yh & zh);\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction maj64_lo(xh, xl, yh, yl, zh, zl) {\n var r = (xl & yl) ^ (xl & zl) ^ (yl & zl);\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction s0_512_hi(xh, xl) {\n var c0_hi = rotr64_hi(xh, xl, 28);\n var c1_hi = rotr64_hi(xl, xh, 2); // 34\n var c2_hi = rotr64_hi(xl, xh, 7); // 39\n\n var r = c0_hi ^ c1_hi ^ c2_hi;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction s0_512_lo(xh, xl) {\n var c0_lo = rotr64_lo(xh, xl, 28);\n var c1_lo = rotr64_lo(xl, xh, 2); // 34\n var c2_lo = rotr64_lo(xl, xh, 7); // 39\n\n var r = c0_lo ^ c1_lo ^ c2_lo;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction s1_512_hi(xh, xl) {\n var c0_hi = rotr64_hi(xh, xl, 14);\n var c1_hi = rotr64_hi(xh, xl, 18);\n var c2_hi = rotr64_hi(xl, xh, 9); // 41\n\n var r = c0_hi ^ c1_hi ^ c2_hi;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction s1_512_lo(xh, xl) {\n var c0_lo = rotr64_lo(xh, xl, 14);\n var c1_lo = rotr64_lo(xh, xl, 18);\n var c2_lo = rotr64_lo(xl, xh, 9); // 41\n\n var r = c0_lo ^ c1_lo ^ c2_lo;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction g0_512_hi(xh, xl) {\n var c0_hi = rotr64_hi(xh, xl, 1);\n var c1_hi = rotr64_hi(xh, xl, 8);\n var c2_hi = shr64_hi(xh, xl, 7);\n\n var r = c0_hi ^ c1_hi ^ c2_hi;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction g0_512_lo(xh, xl) {\n var c0_lo = rotr64_lo(xh, xl, 1);\n var c1_lo = rotr64_lo(xh, xl, 8);\n var c2_lo = shr64_lo(xh, xl, 7);\n\n var r = c0_lo ^ c1_lo ^ c2_lo;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction g1_512_hi(xh, xl) {\n var c0_hi = rotr64_hi(xh, xl, 19);\n var c1_hi = rotr64_hi(xl, xh, 29); // 61\n var c2_hi = shr64_hi(xh, xl, 6);\n\n var r = c0_hi ^ c1_hi ^ c2_hi;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction g1_512_lo(xh, xl) {\n var c0_lo = rotr64_lo(xh, xl, 19);\n var c1_lo = rotr64_lo(xl, xh, 29); // 61\n var c2_lo = shr64_lo(xh, xl, 6);\n\n var r = c0_lo ^ c1_lo ^ c2_lo;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n", "'use strict';\n\nvar utils = require('../utils');\n\nvar SHA512 = require('./512');\n\nfunction SHA384() {\n if (!(this instanceof SHA384))\n return new SHA384();\n\n SHA512.call(this);\n this.h = [\n 0xcbbb9d5d, 0xc1059ed8,\n 0x629a292a, 0x367cd507,\n 0x9159015a, 0x3070dd17,\n 0x152fecd8, 0xf70e5939,\n 0x67332667, 0xffc00b31,\n 0x8eb44a87, 0x68581511,\n 0xdb0c2e0d, 0x64f98fa7,\n 0x47b5481d, 0xbefa4fa4 ];\n}\nutils.inherits(SHA384, SHA512);\nmodule.exports = SHA384;\n\nSHA384.blockSize = 1024;\nSHA384.outSize = 384;\nSHA384.hmacStrength = 192;\nSHA384.padLength = 128;\n\nSHA384.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h.slice(0, 12), 'big');\n else\n return utils.split32(this.h.slice(0, 12), 'big');\n};\n", "'use strict';\n\nexports.sha1 = require('./sha/1');\nexports.sha224 = require('./sha/224');\nexports.sha256 = require('./sha/256');\nexports.sha384 = require('./sha/384');\nexports.sha512 = require('./sha/512');\n", "'use strict';\n\nvar utils = require('./utils');\nvar common = require('./common');\n\nvar rotl32 = utils.rotl32;\nvar sum32 = utils.sum32;\nvar sum32_3 = utils.sum32_3;\nvar sum32_4 = utils.sum32_4;\nvar BlockHash = common.BlockHash;\n\nfunction RIPEMD160() {\n if (!(this instanceof RIPEMD160))\n return new RIPEMD160();\n\n BlockHash.call(this);\n\n this.h = [ 0x67452301, 0xefcdab89, 0x98badcfe, 0x10325476, 0xc3d2e1f0 ];\n this.endian = 'little';\n}\nutils.inherits(RIPEMD160, BlockHash);\nexports.ripemd160 = RIPEMD160;\n\nRIPEMD160.blockSize = 512;\nRIPEMD160.outSize = 160;\nRIPEMD160.hmacStrength = 192;\nRIPEMD160.padLength = 64;\n\nRIPEMD160.prototype._update = function update(msg, start) {\n var A = this.h[0];\n var B = this.h[1];\n var C = this.h[2];\n var D = this.h[3];\n var E = this.h[4];\n var Ah = A;\n var Bh = B;\n var Ch = C;\n var Dh = D;\n var Eh = E;\n for (var j = 0; j < 80; j++) {\n var T = sum32(\n rotl32(\n sum32_4(A, f(j, B, C, D), msg[r[j] + start], K(j)),\n s[j]),\n E);\n A = E;\n E = D;\n D = rotl32(C, 10);\n C = B;\n B = T;\n T = sum32(\n rotl32(\n sum32_4(Ah, f(79 - j, Bh, Ch, Dh), msg[rh[j] + start], Kh(j)),\n sh[j]),\n Eh);\n Ah = Eh;\n Eh = Dh;\n Dh = rotl32(Ch, 10);\n Ch = Bh;\n Bh = T;\n }\n T = sum32_3(this.h[1], C, Dh);\n this.h[1] = sum32_3(this.h[2], D, Eh);\n this.h[2] = sum32_3(this.h[3], E, Ah);\n this.h[3] = sum32_3(this.h[4], A, Bh);\n this.h[4] = sum32_3(this.h[0], B, Ch);\n this.h[0] = T;\n};\n\nRIPEMD160.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h, 'little');\n else\n return utils.split32(this.h, 'little');\n};\n\nfunction f(j, x, y, z) {\n if (j <= 15)\n return x ^ y ^ z;\n else if (j <= 31)\n return (x & y) | ((~x) & z);\n else if (j <= 47)\n return (x | (~y)) ^ z;\n else if (j <= 63)\n return (x & z) | (y & (~z));\n else\n return x ^ (y | (~z));\n}\n\nfunction K(j) {\n if (j <= 15)\n return 0x00000000;\n else if (j <= 31)\n return 0x5a827999;\n else if (j <= 47)\n return 0x6ed9eba1;\n else if (j <= 63)\n return 0x8f1bbcdc;\n else\n return 0xa953fd4e;\n}\n\nfunction Kh(j) {\n if (j <= 15)\n return 0x50a28be6;\n else if (j <= 31)\n return 0x5c4dd124;\n else if (j <= 47)\n return 0x6d703ef3;\n else if (j <= 63)\n return 0x7a6d76e9;\n else\n return 0x00000000;\n}\n\nvar r = [\n 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,\n 7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8,\n 3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11, 5, 12,\n 1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2,\n 4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13\n];\n\nvar rh = [\n 5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12,\n 6, 11, 3, 7, 0, 13, 5, 10, 14, 15, 8, 12, 4, 9, 1, 2,\n 15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0, 4, 13,\n 8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14,\n 12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11\n];\n\nvar s = [\n 11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8,\n 7, 6, 8, 13, 11, 9, 7, 15, 7, 12, 15, 9, 11, 7, 13, 12,\n 11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5, 12, 7, 5,\n 11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12,\n 9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6\n];\n\nvar sh = [\n 8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6,\n 9, 13, 15, 7, 12, 8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11,\n 9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14, 13, 13, 7, 5,\n 15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8,\n 8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11\n];\n", "'use strict';\n\nvar utils = require('./utils');\nvar assert = require('minimalistic-assert');\n\nfunction Hmac(hash, key, enc) {\n if (!(this instanceof Hmac))\n return new Hmac(hash, key, enc);\n this.Hash = hash;\n this.blockSize = hash.blockSize / 8;\n this.outSize = hash.outSize / 8;\n this.inner = null;\n this.outer = null;\n\n this._init(utils.toArray(key, enc));\n}\nmodule.exports = Hmac;\n\nHmac.prototype._init = function init(key) {\n // Shorten key, if needed\n if (key.length > this.blockSize)\n key = new this.Hash().update(key).digest();\n assert(key.length <= this.blockSize);\n\n // Add padding to key\n for (var i = key.length; i < this.blockSize; i++)\n key.push(0);\n\n for (i = 0; i < key.length; i++)\n key[i] ^= 0x36;\n this.inner = new this.Hash().update(key);\n\n // 0x36 ^ 0x5c = 0x6a\n for (i = 0; i < key.length; i++)\n key[i] ^= 0x6a;\n this.outer = new this.Hash().update(key);\n};\n\nHmac.prototype.update = function update(msg, enc) {\n this.inner.update(msg, enc);\n return this;\n};\n\nHmac.prototype.digest = function digest(enc) {\n this.outer.update(this.inner.digest());\n return this.outer.digest(enc);\n};\n", "var hash = exports;\n\nhash.utils = require('./hash/utils');\nhash.common = require('./hash/common');\nhash.sha = require('./hash/sha');\nhash.ripemd = require('./hash/ripemd');\nhash.hmac = require('./hash/hmac');\n\n// Proxy hash functions to the main object\nhash.sha1 = hash.sha.sha1;\nhash.sha256 = hash.sha.sha256;\nhash.sha224 = hash.sha.sha224;\nhash.sha384 = hash.sha.sha384;\nhash.sha512 = hash.sha.sha512;\nhash.ripemd160 = hash.ripemd.ripemd160;\n", "module.exports = {\n doubles: {\n step: 4,\n points: [\n [\n 'e60fce93b59e9ec53011aabc21c23e97b2a31369b87a5ae9c44ee89e2a6dec0a',\n 'f7e3507399e595929db99f34f57937101296891e44d23f0be1f32cce69616821',\n ],\n [\n '8282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508',\n '11f8a8098557dfe45e8256e830b60ace62d613ac2f7b17bed31b6eaff6e26caf',\n ],\n [\n '175e159f728b865a72f99cc6c6fc846de0b93833fd2222ed73fce5b551e5b739',\n 'd3506e0d9e3c79eba4ef97a51ff71f5eacb5955add24345c6efa6ffee9fed695',\n ],\n [\n '363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff4640',\n '4e273adfc732221953b445397f3363145b9a89008199ecb62003c7f3bee9de9',\n ],\n [\n '8b4b5f165df3c2be8c6244b5b745638843e4a781a15bcd1b69f79a55dffdf80c',\n '4aad0a6f68d308b4b3fbd7813ab0da04f9e336546162ee56b3eff0c65fd4fd36',\n ],\n [\n '723cbaa6e5db996d6bf771c00bd548c7b700dbffa6c0e77bcb6115925232fcda',\n '96e867b5595cc498a921137488824d6e2660a0653779494801dc069d9eb39f5f',\n ],\n [\n 'eebfa4d493bebf98ba5feec812c2d3b50947961237a919839a533eca0e7dd7fa',\n '5d9a8ca3970ef0f269ee7edaf178089d9ae4cdc3a711f712ddfd4fdae1de8999',\n ],\n [\n '100f44da696e71672791d0a09b7bde459f1215a29b3c03bfefd7835b39a48db0',\n 'cdd9e13192a00b772ec8f3300c090666b7ff4a18ff5195ac0fbd5cd62bc65a09',\n ],\n [\n 'e1031be262c7ed1b1dc9227a4a04c017a77f8d4464f3b3852c8acde6e534fd2d',\n '9d7061928940405e6bb6a4176597535af292dd419e1ced79a44f18f29456a00d',\n ],\n [\n 'feea6cae46d55b530ac2839f143bd7ec5cf8b266a41d6af52d5e688d9094696d',\n 'e57c6b6c97dce1bab06e4e12bf3ecd5c981c8957cc41442d3155debf18090088',\n ],\n [\n 'da67a91d91049cdcb367be4be6ffca3cfeed657d808583de33fa978bc1ec6cb1',\n '9bacaa35481642bc41f463f7ec9780e5dec7adc508f740a17e9ea8e27a68be1d',\n ],\n [\n '53904faa0b334cdda6e000935ef22151ec08d0f7bb11069f57545ccc1a37b7c0',\n '5bc087d0bc80106d88c9eccac20d3c1c13999981e14434699dcb096b022771c8',\n ],\n [\n '8e7bcd0bd35983a7719cca7764ca906779b53a043a9b8bcaeff959f43ad86047',\n '10b7770b2a3da4b3940310420ca9514579e88e2e47fd68b3ea10047e8460372a',\n ],\n [\n '385eed34c1cdff21e6d0818689b81bde71a7f4f18397e6690a841e1599c43862',\n '283bebc3e8ea23f56701de19e9ebf4576b304eec2086dc8cc0458fe5542e5453',\n ],\n [\n '6f9d9b803ecf191637c73a4413dfa180fddf84a5947fbc9c606ed86c3fac3a7',\n '7c80c68e603059ba69b8e2a30e45c4d47ea4dd2f5c281002d86890603a842160',\n ],\n [\n '3322d401243c4e2582a2147c104d6ecbf774d163db0f5e5313b7e0e742d0e6bd',\n '56e70797e9664ef5bfb019bc4ddaf9b72805f63ea2873af624f3a2e96c28b2a0',\n ],\n [\n '85672c7d2de0b7da2bd1770d89665868741b3f9af7643397721d74d28134ab83',\n '7c481b9b5b43b2eb6374049bfa62c2e5e77f17fcc5298f44c8e3094f790313a6',\n ],\n [\n '948bf809b1988a46b06c9f1919413b10f9226c60f668832ffd959af60c82a0a',\n '53a562856dcb6646dc6b74c5d1c3418c6d4dff08c97cd2bed4cb7f88d8c8e589',\n ],\n [\n '6260ce7f461801c34f067ce0f02873a8f1b0e44dfc69752accecd819f38fd8e8',\n 'bc2da82b6fa5b571a7f09049776a1ef7ecd292238051c198c1a84e95b2b4ae17',\n ],\n [\n 'e5037de0afc1d8d43d8348414bbf4103043ec8f575bfdc432953cc8d2037fa2d',\n '4571534baa94d3b5f9f98d09fb990bddbd5f5b03ec481f10e0e5dc841d755bda',\n ],\n [\n 'e06372b0f4a207adf5ea905e8f1771b4e7e8dbd1c6a6c5b725866a0ae4fce725',\n '7a908974bce18cfe12a27bb2ad5a488cd7484a7787104870b27034f94eee31dd',\n ],\n [\n '213c7a715cd5d45358d0bbf9dc0ce02204b10bdde2a3f58540ad6908d0559754',\n '4b6dad0b5ae462507013ad06245ba190bb4850f5f36a7eeddff2c27534b458f2',\n ],\n [\n '4e7c272a7af4b34e8dbb9352a5419a87e2838c70adc62cddf0cc3a3b08fbd53c',\n '17749c766c9d0b18e16fd09f6def681b530b9614bff7dd33e0b3941817dcaae6',\n ],\n [\n 'fea74e3dbe778b1b10f238ad61686aa5c76e3db2be43057632427e2840fb27b6',\n '6e0568db9b0b13297cf674deccb6af93126b596b973f7b77701d3db7f23cb96f',\n ],\n [\n '76e64113f677cf0e10a2570d599968d31544e179b760432952c02a4417bdde39',\n 'c90ddf8dee4e95cf577066d70681f0d35e2a33d2b56d2032b4b1752d1901ac01',\n ],\n [\n 'c738c56b03b2abe1e8281baa743f8f9a8f7cc643df26cbee3ab150242bcbb891',\n '893fb578951ad2537f718f2eacbfbbbb82314eef7880cfe917e735d9699a84c3',\n ],\n [\n 'd895626548b65b81e264c7637c972877d1d72e5f3a925014372e9f6588f6c14b',\n 'febfaa38f2bc7eae728ec60818c340eb03428d632bb067e179363ed75d7d991f',\n ],\n [\n 'b8da94032a957518eb0f6433571e8761ceffc73693e84edd49150a564f676e03',\n '2804dfa44805a1e4d7c99cc9762808b092cc584d95ff3b511488e4e74efdf6e7',\n ],\n [\n 'e80fea14441fb33a7d8adab9475d7fab2019effb5156a792f1a11778e3c0df5d',\n 'eed1de7f638e00771e89768ca3ca94472d155e80af322ea9fcb4291b6ac9ec78',\n ],\n [\n 'a301697bdfcd704313ba48e51d567543f2a182031efd6915ddc07bbcc4e16070',\n '7370f91cfb67e4f5081809fa25d40f9b1735dbf7c0a11a130c0d1a041e177ea1',\n ],\n [\n '90ad85b389d6b936463f9d0512678de208cc330b11307fffab7ac63e3fb04ed4',\n 'e507a3620a38261affdcbd9427222b839aefabe1582894d991d4d48cb6ef150',\n ],\n [\n '8f68b9d2f63b5f339239c1ad981f162ee88c5678723ea3351b7b444c9ec4c0da',\n '662a9f2dba063986de1d90c2b6be215dbbea2cfe95510bfdf23cbf79501fff82',\n ],\n [\n 'e4f3fb0176af85d65ff99ff9198c36091f48e86503681e3e6686fd5053231e11',\n '1e63633ad0ef4f1c1661a6d0ea02b7286cc7e74ec951d1c9822c38576feb73bc',\n ],\n [\n '8c00fa9b18ebf331eb961537a45a4266c7034f2f0d4e1d0716fb6eae20eae29e',\n 'efa47267fea521a1a9dc343a3736c974c2fadafa81e36c54e7d2a4c66702414b',\n ],\n [\n 'e7a26ce69dd4829f3e10cec0a9e98ed3143d084f308b92c0997fddfc60cb3e41',\n '2a758e300fa7984b471b006a1aafbb18d0a6b2c0420e83e20e8a9421cf2cfd51',\n ],\n [\n 'b6459e0ee3662ec8d23540c223bcbdc571cbcb967d79424f3cf29eb3de6b80ef',\n '67c876d06f3e06de1dadf16e5661db3c4b3ae6d48e35b2ff30bf0b61a71ba45',\n ],\n [\n 'd68a80c8280bb840793234aa118f06231d6f1fc67e73c5a5deda0f5b496943e8',\n 'db8ba9fff4b586d00c4b1f9177b0e28b5b0e7b8f7845295a294c84266b133120',\n ],\n [\n '324aed7df65c804252dc0270907a30b09612aeb973449cea4095980fc28d3d5d',\n '648a365774b61f2ff130c0c35aec1f4f19213b0c7e332843967224af96ab7c84',\n ],\n [\n '4df9c14919cde61f6d51dfdbe5fee5dceec4143ba8d1ca888e8bd373fd054c96',\n '35ec51092d8728050974c23a1d85d4b5d506cdc288490192ebac06cad10d5d',\n ],\n [\n '9c3919a84a474870faed8a9c1cc66021523489054d7f0308cbfc99c8ac1f98cd',\n 'ddb84f0f4a4ddd57584f044bf260e641905326f76c64c8e6be7e5e03d4fc599d',\n ],\n [\n '6057170b1dd12fdf8de05f281d8e06bb91e1493a8b91d4cc5a21382120a959e5',\n '9a1af0b26a6a4807add9a2daf71df262465152bc3ee24c65e899be932385a2a8',\n ],\n [\n 'a576df8e23a08411421439a4518da31880cef0fba7d4df12b1a6973eecb94266',\n '40a6bf20e76640b2c92b97afe58cd82c432e10a7f514d9f3ee8be11ae1b28ec8',\n ],\n [\n '7778a78c28dec3e30a05fe9629de8c38bb30d1f5cf9a3a208f763889be58ad71',\n '34626d9ab5a5b22ff7098e12f2ff580087b38411ff24ac563b513fc1fd9f43ac',\n ],\n [\n '928955ee637a84463729fd30e7afd2ed5f96274e5ad7e5cb09eda9c06d903ac',\n 'c25621003d3f42a827b78a13093a95eeac3d26efa8a8d83fc5180e935bcd091f',\n ],\n [\n '85d0fef3ec6db109399064f3a0e3b2855645b4a907ad354527aae75163d82751',\n '1f03648413a38c0be29d496e582cf5663e8751e96877331582c237a24eb1f962',\n ],\n [\n 'ff2b0dce97eece97c1c9b6041798b85dfdfb6d8882da20308f5404824526087e',\n '493d13fef524ba188af4c4dc54d07936c7b7ed6fb90e2ceb2c951e01f0c29907',\n ],\n [\n '827fbbe4b1e880ea9ed2b2e6301b212b57f1ee148cd6dd28780e5e2cf856e241',\n 'c60f9c923c727b0b71bef2c67d1d12687ff7a63186903166d605b68baec293ec',\n ],\n [\n 'eaa649f21f51bdbae7be4ae34ce6e5217a58fdce7f47f9aa7f3b58fa2120e2b3',\n 'be3279ed5bbbb03ac69a80f89879aa5a01a6b965f13f7e59d47a5305ba5ad93d',\n ],\n [\n 'e4a42d43c5cf169d9391df6decf42ee541b6d8f0c9a137401e23632dda34d24f',\n '4d9f92e716d1c73526fc99ccfb8ad34ce886eedfa8d8e4f13a7f7131deba9414',\n ],\n [\n '1ec80fef360cbdd954160fadab352b6b92b53576a88fea4947173b9d4300bf19',\n 'aeefe93756b5340d2f3a4958a7abbf5e0146e77f6295a07b671cdc1cc107cefd',\n ],\n [\n '146a778c04670c2f91b00af4680dfa8bce3490717d58ba889ddb5928366642be',\n 'b318e0ec3354028add669827f9d4b2870aaa971d2f7e5ed1d0b297483d83efd0',\n ],\n [\n 'fa50c0f61d22e5f07e3acebb1aa07b128d0012209a28b9776d76a8793180eef9',\n '6b84c6922397eba9b72cd2872281a68a5e683293a57a213b38cd8d7d3f4f2811',\n ],\n [\n 'da1d61d0ca721a11b1a5bf6b7d88e8421a288ab5d5bba5220e53d32b5f067ec2',\n '8157f55a7c99306c79c0766161c91e2966a73899d279b48a655fba0f1ad836f1',\n ],\n [\n 'a8e282ff0c9706907215ff98e8fd416615311de0446f1e062a73b0610d064e13',\n '7f97355b8db81c09abfb7f3c5b2515888b679a3e50dd6bd6cef7c73111f4cc0c',\n ],\n [\n '174a53b9c9a285872d39e56e6913cab15d59b1fa512508c022f382de8319497c',\n 'ccc9dc37abfc9c1657b4155f2c47f9e6646b3a1d8cb9854383da13ac079afa73',\n ],\n [\n '959396981943785c3d3e57edf5018cdbe039e730e4918b3d884fdff09475b7ba',\n '2e7e552888c331dd8ba0386a4b9cd6849c653f64c8709385e9b8abf87524f2fd',\n ],\n [\n 'd2a63a50ae401e56d645a1153b109a8fcca0a43d561fba2dbb51340c9d82b151',\n 'e82d86fb6443fcb7565aee58b2948220a70f750af484ca52d4142174dcf89405',\n ],\n [\n '64587e2335471eb890ee7896d7cfdc866bacbdbd3839317b3436f9b45617e073',\n 'd99fcdd5bf6902e2ae96dd6447c299a185b90a39133aeab358299e5e9faf6589',\n ],\n [\n '8481bde0e4e4d885b3a546d3e549de042f0aa6cea250e7fd358d6c86dd45e458',\n '38ee7b8cba5404dd84a25bf39cecb2ca900a79c42b262e556d64b1b59779057e',\n ],\n [\n '13464a57a78102aa62b6979ae817f4637ffcfed3c4b1ce30bcd6303f6caf666b',\n '69be159004614580ef7e433453ccb0ca48f300a81d0942e13f495a907f6ecc27',\n ],\n [\n 'bc4a9df5b713fe2e9aef430bcc1dc97a0cd9ccede2f28588cada3a0d2d83f366',\n 'd3a81ca6e785c06383937adf4b798caa6e8a9fbfa547b16d758d666581f33c1',\n ],\n [\n '8c28a97bf8298bc0d23d8c749452a32e694b65e30a9472a3954ab30fe5324caa',\n '40a30463a3305193378fedf31f7cc0eb7ae784f0451cb9459e71dc73cbef9482',\n ],\n [\n '8ea9666139527a8c1dd94ce4f071fd23c8b350c5a4bb33748c4ba111faccae0',\n '620efabbc8ee2782e24e7c0cfb95c5d735b783be9cf0f8e955af34a30e62b945',\n ],\n [\n 'dd3625faef5ba06074669716bbd3788d89bdde815959968092f76cc4eb9a9787',\n '7a188fa3520e30d461da2501045731ca941461982883395937f68d00c644a573',\n ],\n [\n 'f710d79d9eb962297e4f6232b40e8f7feb2bc63814614d692c12de752408221e',\n 'ea98e67232d3b3295d3b535532115ccac8612c721851617526ae47a9c77bfc82',\n ],\n ],\n },\n naf: {\n wnd: 7,\n points: [\n [\n 'f9308a019258c31049344f85f89d5229b531c845836f99b08601f113bce036f9',\n '388f7b0f632de8140fe337e62a37f3566500a99934c2231b6cb9fd7584b8e672',\n ],\n [\n '2f8bde4d1a07209355b4a7250a5c5128e88b84bddc619ab7cba8d569b240efe4',\n 'd8ac222636e5e3d6d4dba9dda6c9c426f788271bab0d6840dca87d3aa6ac62d6',\n ],\n [\n '5cbdf0646e5db4eaa398f365f2ea7a0e3d419b7e0330e39ce92bddedcac4f9bc',\n '6aebca40ba255960a3178d6d861a54dba813d0b813fde7b5a5082628087264da',\n ],\n [\n 'acd484e2f0c7f65309ad178a9f559abde09796974c57e714c35f110dfc27ccbe',\n 'cc338921b0a7d9fd64380971763b61e9add888a4375f8e0f05cc262ac64f9c37',\n ],\n [\n '774ae7f858a9411e5ef4246b70c65aac5649980be5c17891bbec17895da008cb',\n 'd984a032eb6b5e190243dd56d7b7b365372db1e2dff9d6a8301d74c9c953c61b',\n ],\n [\n 'f28773c2d975288bc7d1d205c3748651b075fbc6610e58cddeeddf8f19405aa8',\n 'ab0902e8d880a89758212eb65cdaf473a1a06da521fa91f29b5cb52db03ed81',\n ],\n [\n 'd7924d4f7d43ea965a465ae3095ff41131e5946f3c85f79e44adbcf8e27e080e',\n '581e2872a86c72a683842ec228cc6defea40af2bd896d3a5c504dc9ff6a26b58',\n ],\n [\n 'defdea4cdb677750a420fee807eacf21eb9898ae79b9768766e4faa04a2d4a34',\n '4211ab0694635168e997b0ead2a93daeced1f4a04a95c0f6cfb199f69e56eb77',\n ],\n [\n '2b4ea0a797a443d293ef5cff444f4979f06acfebd7e86d277475656138385b6c',\n '85e89bc037945d93b343083b5a1c86131a01f60c50269763b570c854e5c09b7a',\n ],\n [\n '352bbf4a4cdd12564f93fa332ce333301d9ad40271f8107181340aef25be59d5',\n '321eb4075348f534d59c18259dda3e1f4a1b3b2e71b1039c67bd3d8bcf81998c',\n ],\n [\n '2fa2104d6b38d11b0230010559879124e42ab8dfeff5ff29dc9cdadd4ecacc3f',\n '2de1068295dd865b64569335bd5dd80181d70ecfc882648423ba76b532b7d67',\n ],\n [\n '9248279b09b4d68dab21a9b066edda83263c3d84e09572e269ca0cd7f5453714',\n '73016f7bf234aade5d1aa71bdea2b1ff3fc0de2a887912ffe54a32ce97cb3402',\n ],\n [\n 'daed4f2be3a8bf278e70132fb0beb7522f570e144bf615c07e996d443dee8729',\n 'a69dce4a7d6c98e8d4a1aca87ef8d7003f83c230f3afa726ab40e52290be1c55',\n ],\n [\n 'c44d12c7065d812e8acf28d7cbb19f9011ecd9e9fdf281b0e6a3b5e87d22e7db',\n '2119a460ce326cdc76c45926c982fdac0e106e861edf61c5a039063f0e0e6482',\n ],\n [\n '6a245bf6dc698504c89a20cfded60853152b695336c28063b61c65cbd269e6b4',\n 'e022cf42c2bd4a708b3f5126f16a24ad8b33ba48d0423b6efd5e6348100d8a82',\n ],\n [\n '1697ffa6fd9de627c077e3d2fe541084ce13300b0bec1146f95ae57f0d0bd6a5',\n 'b9c398f186806f5d27561506e4557433a2cf15009e498ae7adee9d63d01b2396',\n ],\n [\n '605bdb019981718b986d0f07e834cb0d9deb8360ffb7f61df982345ef27a7479',\n '2972d2de4f8d20681a78d93ec96fe23c26bfae84fb14db43b01e1e9056b8c49',\n ],\n [\n '62d14dab4150bf497402fdc45a215e10dcb01c354959b10cfe31c7e9d87ff33d',\n '80fc06bd8cc5b01098088a1950eed0db01aa132967ab472235f5642483b25eaf',\n ],\n [\n '80c60ad0040f27dade5b4b06c408e56b2c50e9f56b9b8b425e555c2f86308b6f',\n '1c38303f1cc5c30f26e66bad7fe72f70a65eed4cbe7024eb1aa01f56430bd57a',\n ],\n [\n '7a9375ad6167ad54aa74c6348cc54d344cc5dc9487d847049d5eabb0fa03c8fb',\n 'd0e3fa9eca8726909559e0d79269046bdc59ea10c70ce2b02d499ec224dc7f7',\n ],\n [\n 'd528ecd9b696b54c907a9ed045447a79bb408ec39b68df504bb51f459bc3ffc9',\n 'eecf41253136e5f99966f21881fd656ebc4345405c520dbc063465b521409933',\n ],\n [\n '49370a4b5f43412ea25f514e8ecdad05266115e4a7ecb1387231808f8b45963',\n '758f3f41afd6ed428b3081b0512fd62a54c3f3afbb5b6764b653052a12949c9a',\n ],\n [\n '77f230936ee88cbbd73df930d64702ef881d811e0e1498e2f1c13eb1fc345d74',\n '958ef42a7886b6400a08266e9ba1b37896c95330d97077cbbe8eb3c7671c60d6',\n ],\n [\n 'f2dac991cc4ce4b9ea44887e5c7c0bce58c80074ab9d4dbaeb28531b7739f530',\n 'e0dedc9b3b2f8dad4da1f32dec2531df9eb5fbeb0598e4fd1a117dba703a3c37',\n ],\n [\n '463b3d9f662621fb1b4be8fbbe2520125a216cdfc9dae3debcba4850c690d45b',\n '5ed430d78c296c3543114306dd8622d7c622e27c970a1de31cb377b01af7307e',\n ],\n [\n 'f16f804244e46e2a09232d4aff3b59976b98fac14328a2d1a32496b49998f247',\n 'cedabd9b82203f7e13d206fcdf4e33d92a6c53c26e5cce26d6579962c4e31df6',\n ],\n [\n 'caf754272dc84563b0352b7a14311af55d245315ace27c65369e15f7151d41d1',\n 'cb474660ef35f5f2a41b643fa5e460575f4fa9b7962232a5c32f908318a04476',\n ],\n [\n '2600ca4b282cb986f85d0f1709979d8b44a09c07cb86d7c124497bc86f082120',\n '4119b88753c15bd6a693b03fcddbb45d5ac6be74ab5f0ef44b0be9475a7e4b40',\n ],\n [\n '7635ca72d7e8432c338ec53cd12220bc01c48685e24f7dc8c602a7746998e435',\n '91b649609489d613d1d5e590f78e6d74ecfc061d57048bad9e76f302c5b9c61',\n ],\n [\n '754e3239f325570cdbbf4a87deee8a66b7f2b33479d468fbc1a50743bf56cc18',\n '673fb86e5bda30fb3cd0ed304ea49a023ee33d0197a695d0c5d98093c536683',\n ],\n [\n 'e3e6bd1071a1e96aff57859c82d570f0330800661d1c952f9fe2694691d9b9e8',\n '59c9e0bba394e76f40c0aa58379a3cb6a5a2283993e90c4167002af4920e37f5',\n ],\n [\n '186b483d056a033826ae73d88f732985c4ccb1f32ba35f4b4cc47fdcf04aa6eb',\n '3b952d32c67cf77e2e17446e204180ab21fb8090895138b4a4a797f86e80888b',\n ],\n [\n 'df9d70a6b9876ce544c98561f4be4f725442e6d2b737d9c91a8321724ce0963f',\n '55eb2dafd84d6ccd5f862b785dc39d4ab157222720ef9da217b8c45cf2ba2417',\n ],\n [\n '5edd5cc23c51e87a497ca815d5dce0f8ab52554f849ed8995de64c5f34ce7143',\n 'efae9c8dbc14130661e8cec030c89ad0c13c66c0d17a2905cdc706ab7399a868',\n ],\n [\n '290798c2b6476830da12fe02287e9e777aa3fba1c355b17a722d362f84614fba',\n 'e38da76dcd440621988d00bcf79af25d5b29c094db2a23146d003afd41943e7a',\n ],\n [\n 'af3c423a95d9f5b3054754efa150ac39cd29552fe360257362dfdecef4053b45',\n 'f98a3fd831eb2b749a93b0e6f35cfb40c8cd5aa667a15581bc2feded498fd9c6',\n ],\n [\n '766dbb24d134e745cccaa28c99bf274906bb66b26dcf98df8d2fed50d884249a',\n '744b1152eacbe5e38dcc887980da38b897584a65fa06cedd2c924f97cbac5996',\n ],\n [\n '59dbf46f8c94759ba21277c33784f41645f7b44f6c596a58ce92e666191abe3e',\n 'c534ad44175fbc300f4ea6ce648309a042ce739a7919798cd85e216c4a307f6e',\n ],\n [\n 'f13ada95103c4537305e691e74e9a4a8dd647e711a95e73cb62dc6018cfd87b8',\n 'e13817b44ee14de663bf4bc808341f326949e21a6a75c2570778419bdaf5733d',\n ],\n [\n '7754b4fa0e8aced06d4167a2c59cca4cda1869c06ebadfb6488550015a88522c',\n '30e93e864e669d82224b967c3020b8fa8d1e4e350b6cbcc537a48b57841163a2',\n ],\n [\n '948dcadf5990e048aa3874d46abef9d701858f95de8041d2a6828c99e2262519',\n 'e491a42537f6e597d5d28a3224b1bc25df9154efbd2ef1d2cbba2cae5347d57e',\n ],\n [\n '7962414450c76c1689c7b48f8202ec37fb224cf5ac0bfa1570328a8a3d7c77ab',\n '100b610ec4ffb4760d5c1fc133ef6f6b12507a051f04ac5760afa5b29db83437',\n ],\n [\n '3514087834964b54b15b160644d915485a16977225b8847bb0dd085137ec47ca',\n 'ef0afbb2056205448e1652c48e8127fc6039e77c15c2378b7e7d15a0de293311',\n ],\n [\n 'd3cc30ad6b483e4bc79ce2c9dd8bc54993e947eb8df787b442943d3f7b527eaf',\n '8b378a22d827278d89c5e9be8f9508ae3c2ad46290358630afb34db04eede0a4',\n ],\n [\n '1624d84780732860ce1c78fcbfefe08b2b29823db913f6493975ba0ff4847610',\n '68651cf9b6da903e0914448c6cd9d4ca896878f5282be4c8cc06e2a404078575',\n ],\n [\n '733ce80da955a8a26902c95633e62a985192474b5af207da6df7b4fd5fc61cd4',\n 'f5435a2bd2badf7d485a4d8b8db9fcce3e1ef8e0201e4578c54673bc1dc5ea1d',\n ],\n [\n '15d9441254945064cf1a1c33bbd3b49f8966c5092171e699ef258dfab81c045c',\n 'd56eb30b69463e7234f5137b73b84177434800bacebfc685fc37bbe9efe4070d',\n ],\n [\n 'a1d0fcf2ec9de675b612136e5ce70d271c21417c9d2b8aaaac138599d0717940',\n 'edd77f50bcb5a3cab2e90737309667f2641462a54070f3d519212d39c197a629',\n ],\n [\n 'e22fbe15c0af8ccc5780c0735f84dbe9a790badee8245c06c7ca37331cb36980',\n 'a855babad5cd60c88b430a69f53a1a7a38289154964799be43d06d77d31da06',\n ],\n [\n '311091dd9860e8e20ee13473c1155f5f69635e394704eaa74009452246cfa9b3',\n '66db656f87d1f04fffd1f04788c06830871ec5a64feee685bd80f0b1286d8374',\n ],\n [\n '34c1fd04d301be89b31c0442d3e6ac24883928b45a9340781867d4232ec2dbdf',\n '9414685e97b1b5954bd46f730174136d57f1ceeb487443dc5321857ba73abee',\n ],\n [\n 'f219ea5d6b54701c1c14de5b557eb42a8d13f3abbcd08affcc2a5e6b049b8d63',\n '4cb95957e83d40b0f73af4544cccf6b1f4b08d3c07b27fb8d8c2962a400766d1',\n ],\n [\n 'd7b8740f74a8fbaab1f683db8f45de26543a5490bca627087236912469a0b448',\n 'fa77968128d9c92ee1010f337ad4717eff15db5ed3c049b3411e0315eaa4593b',\n ],\n [\n '32d31c222f8f6f0ef86f7c98d3a3335ead5bcd32abdd94289fe4d3091aa824bf',\n '5f3032f5892156e39ccd3d7915b9e1da2e6dac9e6f26e961118d14b8462e1661',\n ],\n [\n '7461f371914ab32671045a155d9831ea8793d77cd59592c4340f86cbc18347b5',\n '8ec0ba238b96bec0cbdddcae0aa442542eee1ff50c986ea6b39847b3cc092ff6',\n ],\n [\n 'ee079adb1df1860074356a25aa38206a6d716b2c3e67453d287698bad7b2b2d6',\n '8dc2412aafe3be5c4c5f37e0ecc5f9f6a446989af04c4e25ebaac479ec1c8c1e',\n ],\n [\n '16ec93e447ec83f0467b18302ee620f7e65de331874c9dc72bfd8616ba9da6b5',\n '5e4631150e62fb40d0e8c2a7ca5804a39d58186a50e497139626778e25b0674d',\n ],\n [\n 'eaa5f980c245f6f038978290afa70b6bd8855897f98b6aa485b96065d537bd99',\n 'f65f5d3e292c2e0819a528391c994624d784869d7e6ea67fb18041024edc07dc',\n ],\n [\n '78c9407544ac132692ee1910a02439958ae04877151342ea96c4b6b35a49f51',\n 'f3e0319169eb9b85d5404795539a5e68fa1fbd583c064d2462b675f194a3ddb4',\n ],\n [\n '494f4be219a1a77016dcd838431aea0001cdc8ae7a6fc688726578d9702857a5',\n '42242a969283a5f339ba7f075e36ba2af925ce30d767ed6e55f4b031880d562c',\n ],\n [\n 'a598a8030da6d86c6bc7f2f5144ea549d28211ea58faa70ebf4c1e665c1fe9b5',\n '204b5d6f84822c307e4b4a7140737aec23fc63b65b35f86a10026dbd2d864e6b',\n ],\n [\n 'c41916365abb2b5d09192f5f2dbeafec208f020f12570a184dbadc3e58595997',\n '4f14351d0087efa49d245b328984989d5caf9450f34bfc0ed16e96b58fa9913',\n ],\n [\n '841d6063a586fa475a724604da03bc5b92a2e0d2e0a36acfe4c73a5514742881',\n '73867f59c0659e81904f9a1c7543698e62562d6744c169ce7a36de01a8d6154',\n ],\n [\n '5e95bb399a6971d376026947f89bde2f282b33810928be4ded112ac4d70e20d5',\n '39f23f366809085beebfc71181313775a99c9aed7d8ba38b161384c746012865',\n ],\n [\n '36e4641a53948fd476c39f8a99fd974e5ec07564b5315d8bf99471bca0ef2f66',\n 'd2424b1b1abe4eb8164227b085c9aa9456ea13493fd563e06fd51cf5694c78fc',\n ],\n [\n '336581ea7bfbbb290c191a2f507a41cf5643842170e914faeab27c2c579f726',\n 'ead12168595fe1be99252129b6e56b3391f7ab1410cd1e0ef3dcdcabd2fda224',\n ],\n [\n '8ab89816dadfd6b6a1f2634fcf00ec8403781025ed6890c4849742706bd43ede',\n '6fdcef09f2f6d0a044e654aef624136f503d459c3e89845858a47a9129cdd24e',\n ],\n [\n '1e33f1a746c9c5778133344d9299fcaa20b0938e8acff2544bb40284b8c5fb94',\n '60660257dd11b3aa9c8ed618d24edff2306d320f1d03010e33a7d2057f3b3b6',\n ],\n [\n '85b7c1dcb3cec1b7ee7f30ded79dd20a0ed1f4cc18cbcfcfa410361fd8f08f31',\n '3d98a9cdd026dd43f39048f25a8847f4fcafad1895d7a633c6fed3c35e999511',\n ],\n [\n '29df9fbd8d9e46509275f4b125d6d45d7fbe9a3b878a7af872a2800661ac5f51',\n 'b4c4fe99c775a606e2d8862179139ffda61dc861c019e55cd2876eb2a27d84b',\n ],\n [\n 'a0b1cae06b0a847a3fea6e671aaf8adfdfe58ca2f768105c8082b2e449fce252',\n 'ae434102edde0958ec4b19d917a6a28e6b72da1834aff0e650f049503a296cf2',\n ],\n [\n '4e8ceafb9b3e9a136dc7ff67e840295b499dfb3b2133e4ba113f2e4c0e121e5',\n 'cf2174118c8b6d7a4b48f6d534ce5c79422c086a63460502b827ce62a326683c',\n ],\n [\n 'd24a44e047e19b6f5afb81c7ca2f69080a5076689a010919f42725c2b789a33b',\n '6fb8d5591b466f8fc63db50f1c0f1c69013f996887b8244d2cdec417afea8fa3',\n ],\n [\n 'ea01606a7a6c9cdd249fdfcfacb99584001edd28abbab77b5104e98e8e3b35d4',\n '322af4908c7312b0cfbfe369f7a7b3cdb7d4494bc2823700cfd652188a3ea98d',\n ],\n [\n 'af8addbf2b661c8a6c6328655eb96651252007d8c5ea31be4ad196de8ce2131f',\n '6749e67c029b85f52a034eafd096836b2520818680e26ac8f3dfbcdb71749700',\n ],\n [\n 'e3ae1974566ca06cc516d47e0fb165a674a3dabcfca15e722f0e3450f45889',\n '2aeabe7e4531510116217f07bf4d07300de97e4874f81f533420a72eeb0bd6a4',\n ],\n [\n '591ee355313d99721cf6993ffed1e3e301993ff3ed258802075ea8ced397e246',\n 'b0ea558a113c30bea60fc4775460c7901ff0b053d25ca2bdeee98f1a4be5d196',\n ],\n [\n '11396d55fda54c49f19aa97318d8da61fa8584e47b084945077cf03255b52984',\n '998c74a8cd45ac01289d5833a7beb4744ff536b01b257be4c5767bea93ea57a4',\n ],\n [\n '3c5d2a1ba39c5a1790000738c9e0c40b8dcdfd5468754b6405540157e017aa7a',\n 'b2284279995a34e2f9d4de7396fc18b80f9b8b9fdd270f6661f79ca4c81bd257',\n ],\n [\n 'cc8704b8a60a0defa3a99a7299f2e9c3fbc395afb04ac078425ef8a1793cc030',\n 'bdd46039feed17881d1e0862db347f8cf395b74fc4bcdc4e940b74e3ac1f1b13',\n ],\n [\n 'c533e4f7ea8555aacd9777ac5cad29b97dd4defccc53ee7ea204119b2889b197',\n '6f0a256bc5efdf429a2fb6242f1a43a2d9b925bb4a4b3a26bb8e0f45eb596096',\n ],\n [\n 'c14f8f2ccb27d6f109f6d08d03cc96a69ba8c34eec07bbcf566d48e33da6593',\n 'c359d6923bb398f7fd4473e16fe1c28475b740dd098075e6c0e8649113dc3a38',\n ],\n [\n 'a6cbc3046bc6a450bac24789fa17115a4c9739ed75f8f21ce441f72e0b90e6ef',\n '21ae7f4680e889bb130619e2c0f95a360ceb573c70603139862afd617fa9b9f',\n ],\n [\n '347d6d9a02c48927ebfb86c1359b1caf130a3c0267d11ce6344b39f99d43cc38',\n '60ea7f61a353524d1c987f6ecec92f086d565ab687870cb12689ff1e31c74448',\n ],\n [\n 'da6545d2181db8d983f7dcb375ef5866d47c67b1bf31c8cf855ef7437b72656a',\n '49b96715ab6878a79e78f07ce5680c5d6673051b4935bd897fea824b77dc208a',\n ],\n [\n 'c40747cc9d012cb1a13b8148309c6de7ec25d6945d657146b9d5994b8feb1111',\n '5ca560753be2a12fc6de6caf2cb489565db936156b9514e1bb5e83037e0fa2d4',\n ],\n [\n '4e42c8ec82c99798ccf3a610be870e78338c7f713348bd34c8203ef4037f3502',\n '7571d74ee5e0fb92a7a8b33a07783341a5492144cc54bcc40a94473693606437',\n ],\n [\n '3775ab7089bc6af823aba2e1af70b236d251cadb0c86743287522a1b3b0dedea',\n 'be52d107bcfa09d8bcb9736a828cfa7fac8db17bf7a76a2c42ad961409018cf7',\n ],\n [\n 'cee31cbf7e34ec379d94fb814d3d775ad954595d1314ba8846959e3e82f74e26',\n '8fd64a14c06b589c26b947ae2bcf6bfa0149ef0be14ed4d80f448a01c43b1c6d',\n ],\n [\n 'b4f9eaea09b6917619f6ea6a4eb5464efddb58fd45b1ebefcdc1a01d08b47986',\n '39e5c9925b5a54b07433a4f18c61726f8bb131c012ca542eb24a8ac07200682a',\n ],\n [\n 'd4263dfc3d2df923a0179a48966d30ce84e2515afc3dccc1b77907792ebcc60e',\n '62dfaf07a0f78feb30e30d6295853ce189e127760ad6cf7fae164e122a208d54',\n ],\n [\n '48457524820fa65a4f8d35eb6930857c0032acc0a4a2de422233eeda897612c4',\n '25a748ab367979d98733c38a1fa1c2e7dc6cc07db2d60a9ae7a76aaa49bd0f77',\n ],\n [\n 'dfeeef1881101f2cb11644f3a2afdfc2045e19919152923f367a1767c11cceda',\n 'ecfb7056cf1de042f9420bab396793c0c390bde74b4bbdff16a83ae09a9a7517',\n ],\n [\n '6d7ef6b17543f8373c573f44e1f389835d89bcbc6062ced36c82df83b8fae859',\n 'cd450ec335438986dfefa10c57fea9bcc521a0959b2d80bbf74b190dca712d10',\n ],\n [\n 'e75605d59102a5a2684500d3b991f2e3f3c88b93225547035af25af66e04541f',\n 'f5c54754a8f71ee540b9b48728473e314f729ac5308b06938360990e2bfad125',\n ],\n [\n 'eb98660f4c4dfaa06a2be453d5020bc99a0c2e60abe388457dd43fefb1ed620c',\n '6cb9a8876d9cb8520609af3add26cd20a0a7cd8a9411131ce85f44100099223e',\n ],\n [\n '13e87b027d8514d35939f2e6892b19922154596941888336dc3563e3b8dba942',\n 'fef5a3c68059a6dec5d624114bf1e91aac2b9da568d6abeb2570d55646b8adf1',\n ],\n [\n 'ee163026e9fd6fe017c38f06a5be6fc125424b371ce2708e7bf4491691e5764a',\n '1acb250f255dd61c43d94ccc670d0f58f49ae3fa15b96623e5430da0ad6c62b2',\n ],\n [\n 'b268f5ef9ad51e4d78de3a750c2dc89b1e626d43505867999932e5db33af3d80',\n '5f310d4b3c99b9ebb19f77d41c1dee018cf0d34fd4191614003e945a1216e423',\n ],\n [\n 'ff07f3118a9df035e9fad85eb6c7bfe42b02f01ca99ceea3bf7ffdba93c4750d',\n '438136d603e858a3a5c440c38eccbaddc1d2942114e2eddd4740d098ced1f0d8',\n ],\n [\n '8d8b9855c7c052a34146fd20ffb658bea4b9f69e0d825ebec16e8c3ce2b526a1',\n 'cdb559eedc2d79f926baf44fb84ea4d44bcf50fee51d7ceb30e2e7f463036758',\n ],\n [\n '52db0b5384dfbf05bfa9d472d7ae26dfe4b851ceca91b1eba54263180da32b63',\n 'c3b997d050ee5d423ebaf66a6db9f57b3180c902875679de924b69d84a7b375',\n ],\n [\n 'e62f9490d3d51da6395efd24e80919cc7d0f29c3f3fa48c6fff543becbd43352',\n '6d89ad7ba4876b0b22c2ca280c682862f342c8591f1daf5170e07bfd9ccafa7d',\n ],\n [\n '7f30ea2476b399b4957509c88f77d0191afa2ff5cb7b14fd6d8e7d65aaab1193',\n 'ca5ef7d4b231c94c3b15389a5f6311e9daff7bb67b103e9880ef4bff637acaec',\n ],\n [\n '5098ff1e1d9f14fb46a210fada6c903fef0fb7b4a1dd1d9ac60a0361800b7a00',\n '9731141d81fc8f8084d37c6e7542006b3ee1b40d60dfe5362a5b132fd17ddc0',\n ],\n [\n '32b78c7de9ee512a72895be6b9cbefa6e2f3c4ccce445c96b9f2c81e2778ad58',\n 'ee1849f513df71e32efc3896ee28260c73bb80547ae2275ba497237794c8753c',\n ],\n [\n 'e2cb74fddc8e9fbcd076eef2a7c72b0ce37d50f08269dfc074b581550547a4f7',\n 'd3aa2ed71c9dd2247a62df062736eb0baddea9e36122d2be8641abcb005cc4a4',\n ],\n [\n '8438447566d4d7bedadc299496ab357426009a35f235cb141be0d99cd10ae3a8',\n 'c4e1020916980a4da5d01ac5e6ad330734ef0d7906631c4f2390426b2edd791f',\n ],\n [\n '4162d488b89402039b584c6fc6c308870587d9c46f660b878ab65c82c711d67e',\n '67163e903236289f776f22c25fb8a3afc1732f2b84b4e95dbda47ae5a0852649',\n ],\n [\n '3fad3fa84caf0f34f0f89bfd2dcf54fc175d767aec3e50684f3ba4a4bf5f683d',\n 'cd1bc7cb6cc407bb2f0ca647c718a730cf71872e7d0d2a53fa20efcdfe61826',\n ],\n [\n '674f2600a3007a00568c1a7ce05d0816c1fb84bf1370798f1c69532faeb1a86b',\n '299d21f9413f33b3edf43b257004580b70db57da0b182259e09eecc69e0d38a5',\n ],\n [\n 'd32f4da54ade74abb81b815ad1fb3b263d82d6c692714bcff87d29bd5ee9f08f',\n 'f9429e738b8e53b968e99016c059707782e14f4535359d582fc416910b3eea87',\n ],\n [\n '30e4e670435385556e593657135845d36fbb6931f72b08cb1ed954f1e3ce3ff6',\n '462f9bce619898638499350113bbc9b10a878d35da70740dc695a559eb88db7b',\n ],\n [\n 'be2062003c51cc3004682904330e4dee7f3dcd10b01e580bf1971b04d4cad297',\n '62188bc49d61e5428573d48a74e1c655b1c61090905682a0d5558ed72dccb9bc',\n ],\n [\n '93144423ace3451ed29e0fb9ac2af211cb6e84a601df5993c419859fff5df04a',\n '7c10dfb164c3425f5c71a3f9d7992038f1065224f72bb9d1d902a6d13037b47c',\n ],\n [\n 'b015f8044f5fcbdcf21ca26d6c34fb8197829205c7b7d2a7cb66418c157b112c',\n 'ab8c1e086d04e813744a655b2df8d5f83b3cdc6faa3088c1d3aea1454e3a1d5f',\n ],\n [\n 'd5e9e1da649d97d89e4868117a465a3a4f8a18de57a140d36b3f2af341a21b52',\n '4cb04437f391ed73111a13cc1d4dd0db1693465c2240480d8955e8592f27447a',\n ],\n [\n 'd3ae41047dd7ca065dbf8ed77b992439983005cd72e16d6f996a5316d36966bb',\n 'bd1aeb21ad22ebb22a10f0303417c6d964f8cdd7df0aca614b10dc14d125ac46',\n ],\n [\n '463e2763d885f958fc66cdd22800f0a487197d0a82e377b49f80af87c897b065',\n 'bfefacdb0e5d0fd7df3a311a94de062b26b80c61fbc97508b79992671ef7ca7f',\n ],\n [\n '7985fdfd127c0567c6f53ec1bb63ec3158e597c40bfe747c83cddfc910641917',\n '603c12daf3d9862ef2b25fe1de289aed24ed291e0ec6708703a5bd567f32ed03',\n ],\n [\n '74a1ad6b5f76e39db2dd249410eac7f99e74c59cb83d2d0ed5ff1543da7703e9',\n 'cc6157ef18c9c63cd6193d83631bbea0093e0968942e8c33d5737fd790e0db08',\n ],\n [\n '30682a50703375f602d416664ba19b7fc9bab42c72747463a71d0896b22f6da3',\n '553e04f6b018b4fa6c8f39e7f311d3176290d0e0f19ca73f17714d9977a22ff8',\n ],\n [\n '9e2158f0d7c0d5f26c3791efefa79597654e7a2b2464f52b1ee6c1347769ef57',\n '712fcdd1b9053f09003a3481fa7762e9ffd7c8ef35a38509e2fbf2629008373',\n ],\n [\n '176e26989a43c9cfeba4029c202538c28172e566e3c4fce7322857f3be327d66',\n 'ed8cc9d04b29eb877d270b4878dc43c19aefd31f4eee09ee7b47834c1fa4b1c3',\n ],\n [\n '75d46efea3771e6e68abb89a13ad747ecf1892393dfc4f1b7004788c50374da8',\n '9852390a99507679fd0b86fd2b39a868d7efc22151346e1a3ca4726586a6bed8',\n ],\n [\n '809a20c67d64900ffb698c4c825f6d5f2310fb0451c869345b7319f645605721',\n '9e994980d9917e22b76b061927fa04143d096ccc54963e6a5ebfa5f3f8e286c1',\n ],\n [\n '1b38903a43f7f114ed4500b4eac7083fdefece1cf29c63528d563446f972c180',\n '4036edc931a60ae889353f77fd53de4a2708b26b6f5da72ad3394119daf408f9',\n ],\n ],\n },\n};\n", "'use strict';\n\nvar curves = exports;\n\nvar hash = require('hash.js');\nvar curve = require('./curve');\nvar utils = require('./utils');\n\nvar assert = utils.assert;\n\nfunction PresetCurve(options) {\n if (options.type === 'short')\n this.curve = new curve.short(options);\n else if (options.type === 'edwards')\n this.curve = new curve.edwards(options);\n else\n this.curve = new curve.mont(options);\n this.g = this.curve.g;\n this.n = this.curve.n;\n this.hash = options.hash;\n\n assert(this.g.validate(), 'Invalid curve');\n assert(this.g.mul(this.n).isInfinity(), 'Invalid curve, G*N != O');\n}\ncurves.PresetCurve = PresetCurve;\n\nfunction defineCurve(name, options) {\n Object.defineProperty(curves, name, {\n configurable: true,\n enumerable: true,\n get: function() {\n var curve = new PresetCurve(options);\n Object.defineProperty(curves, name, {\n configurable: true,\n enumerable: true,\n value: curve,\n });\n return curve;\n },\n });\n}\n\ndefineCurve('p192', {\n type: 'short',\n prime: 'p192',\n p: 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff',\n a: 'ffffffff ffffffff ffffffff fffffffe ffffffff fffffffc',\n b: '64210519 e59c80e7 0fa7e9ab 72243049 feb8deec c146b9b1',\n n: 'ffffffff ffffffff ffffffff 99def836 146bc9b1 b4d22831',\n hash: hash.sha256,\n gRed: false,\n g: [\n '188da80e b03090f6 7cbf20eb 43a18800 f4ff0afd 82ff1012',\n '07192b95 ffc8da78 631011ed 6b24cdd5 73f977a1 1e794811',\n ],\n});\n\ndefineCurve('p224', {\n type: 'short',\n prime: 'p224',\n p: 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001',\n a: 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff fffffffe',\n b: 'b4050a85 0c04b3ab f5413256 5044b0b7 d7bfd8ba 270b3943 2355ffb4',\n n: 'ffffffff ffffffff ffffffff ffff16a2 e0b8f03e 13dd2945 5c5c2a3d',\n hash: hash.sha256,\n gRed: false,\n g: [\n 'b70e0cbd 6bb4bf7f 321390b9 4a03c1d3 56c21122 343280d6 115c1d21',\n 'bd376388 b5f723fb 4c22dfe6 cd4375a0 5a074764 44d58199 85007e34',\n ],\n});\n\ndefineCurve('p256', {\n type: 'short',\n prime: null,\n p: 'ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff ffffffff',\n a: 'ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff fffffffc',\n b: '5ac635d8 aa3a93e7 b3ebbd55 769886bc 651d06b0 cc53b0f6 3bce3c3e 27d2604b',\n n: 'ffffffff 00000000 ffffffff ffffffff bce6faad a7179e84 f3b9cac2 fc632551',\n hash: hash.sha256,\n gRed: false,\n g: [\n '6b17d1f2 e12c4247 f8bce6e5 63a440f2 77037d81 2deb33a0 f4a13945 d898c296',\n '4fe342e2 fe1a7f9b 8ee7eb4a 7c0f9e16 2bce3357 6b315ece cbb64068 37bf51f5',\n ],\n});\n\ndefineCurve('p384', {\n type: 'short',\n prime: null,\n p: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'fffffffe ffffffff 00000000 00000000 ffffffff',\n a: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'fffffffe ffffffff 00000000 00000000 fffffffc',\n b: 'b3312fa7 e23ee7e4 988e056b e3f82d19 181d9c6e fe814112 0314088f ' +\n '5013875a c656398d 8a2ed19d 2a85c8ed d3ec2aef',\n n: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff c7634d81 ' +\n 'f4372ddf 581a0db2 48b0a77a ecec196a ccc52973',\n hash: hash.sha384,\n gRed: false,\n g: [\n 'aa87ca22 be8b0537 8eb1c71e f320ad74 6e1d3b62 8ba79b98 59f741e0 82542a38 ' +\n '5502f25d bf55296c 3a545e38 72760ab7',\n '3617de4a 96262c6f 5d9e98bf 9292dc29 f8f41dbd 289a147c e9da3113 b5f0b8c0 ' +\n '0a60b1ce 1d7e819d 7a431d7c 90ea0e5f',\n ],\n});\n\ndefineCurve('p521', {\n type: 'short',\n prime: null,\n p: '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff ffffffff',\n a: '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff fffffffc',\n b: '00000051 953eb961 8e1c9a1f 929a21a0 b68540ee a2da725b ' +\n '99b315f3 b8b48991 8ef109e1 56193951 ec7e937b 1652c0bd ' +\n '3bb1bf07 3573df88 3d2c34f1 ef451fd4 6b503f00',\n n: '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff fffffffa 51868783 bf2f966b 7fcc0148 ' +\n 'f709a5d0 3bb5c9b8 899c47ae bb6fb71e 91386409',\n hash: hash.sha512,\n gRed: false,\n g: [\n '000000c6 858e06b7 0404e9cd 9e3ecb66 2395b442 9c648139 ' +\n '053fb521 f828af60 6b4d3dba a14b5e77 efe75928 fe1dc127 ' +\n 'a2ffa8de 3348b3c1 856a429b f97e7e31 c2e5bd66',\n '00000118 39296a78 9a3bc004 5c8a5fb4 2c7d1bd9 98f54449 ' +\n '579b4468 17afbd17 273e662c 97ee7299 5ef42640 c550b901 ' +\n '3fad0761 353c7086 a272c240 88be9476 9fd16650',\n ],\n});\n\ndefineCurve('curve25519', {\n type: 'mont',\n prime: 'p25519',\n p: '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed',\n a: '76d06',\n b: '1',\n n: '1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed',\n hash: hash.sha256,\n gRed: false,\n g: [\n '9',\n ],\n});\n\ndefineCurve('ed25519', {\n type: 'edwards',\n prime: 'p25519',\n p: '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed',\n a: '-1',\n c: '1',\n // -121665 * (121666^(-1)) (mod P)\n d: '52036cee2b6ffe73 8cc740797779e898 00700a4d4141d8ab 75eb4dca135978a3',\n n: '1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed',\n hash: hash.sha256,\n gRed: false,\n g: [\n '216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a',\n\n // 4/5\n '6666666666666666666666666666666666666666666666666666666666666658',\n ],\n});\n\nvar pre;\ntry {\n pre = require('./precomputed/secp256k1');\n} catch (e) {\n pre = undefined;\n}\n\ndefineCurve('secp256k1', {\n type: 'short',\n prime: 'k256',\n p: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f',\n a: '0',\n b: '7',\n n: 'ffffffff ffffffff ffffffff fffffffe baaedce6 af48a03b bfd25e8c d0364141',\n h: '1',\n hash: hash.sha256,\n\n // Precomputed endomorphism\n beta: '7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee',\n lambda: '5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72',\n basis: [\n {\n a: '3086d221a7d46bcde86c90e49284eb15',\n b: '-e4437ed6010e88286f547fa90abfe4c3',\n },\n {\n a: '114ca50f7a8e2f3f657c1108d9d44cfd8',\n b: '3086d221a7d46bcde86c90e49284eb15',\n },\n ],\n\n gRed: false,\n g: [\n '79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798',\n '483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8',\n pre,\n ],\n});\n", "'use strict';\n\nvar hash = require('hash.js');\nvar utils = require('minimalistic-crypto-utils');\nvar assert = require('minimalistic-assert');\n\nfunction HmacDRBG(options) {\n if (!(this instanceof HmacDRBG))\n return new HmacDRBG(options);\n this.hash = options.hash;\n this.predResist = !!options.predResist;\n\n this.outLen = this.hash.outSize;\n this.minEntropy = options.minEntropy || this.hash.hmacStrength;\n\n this._reseed = null;\n this.reseedInterval = null;\n this.K = null;\n this.V = null;\n\n var entropy = utils.toArray(options.entropy, options.entropyEnc || 'hex');\n var nonce = utils.toArray(options.nonce, options.nonceEnc || 'hex');\n var pers = utils.toArray(options.pers, options.persEnc || 'hex');\n assert(entropy.length >= (this.minEntropy / 8),\n 'Not enough entropy. Minimum is: ' + this.minEntropy + ' bits');\n this._init(entropy, nonce, pers);\n}\nmodule.exports = HmacDRBG;\n\nHmacDRBG.prototype._init = function init(entropy, nonce, pers) {\n var seed = entropy.concat(nonce).concat(pers);\n\n this.K = new Array(this.outLen / 8);\n this.V = new Array(this.outLen / 8);\n for (var i = 0; i < this.V.length; i++) {\n this.K[i] = 0x00;\n this.V[i] = 0x01;\n }\n\n this._update(seed);\n this._reseed = 1;\n this.reseedInterval = 0x1000000000000; // 2^48\n};\n\nHmacDRBG.prototype._hmac = function hmac() {\n return new hash.hmac(this.hash, this.K);\n};\n\nHmacDRBG.prototype._update = function update(seed) {\n var kmac = this._hmac()\n .update(this.V)\n .update([ 0x00 ]);\n if (seed)\n kmac = kmac.update(seed);\n this.K = kmac.digest();\n this.V = this._hmac().update(this.V).digest();\n if (!seed)\n return;\n\n this.K = this._hmac()\n .update(this.V)\n .update([ 0x01 ])\n .update(seed)\n .digest();\n this.V = this._hmac().update(this.V).digest();\n};\n\nHmacDRBG.prototype.reseed = function reseed(entropy, entropyEnc, add, addEnc) {\n // Optional entropy enc\n if (typeof entropyEnc !== 'string') {\n addEnc = add;\n add = entropyEnc;\n entropyEnc = null;\n }\n\n entropy = utils.toArray(entropy, entropyEnc);\n add = utils.toArray(add, addEnc);\n\n assert(entropy.length >= (this.minEntropy / 8),\n 'Not enough entropy. Minimum is: ' + this.minEntropy + ' bits');\n\n this._update(entropy.concat(add || []));\n this._reseed = 1;\n};\n\nHmacDRBG.prototype.generate = function generate(len, enc, add, addEnc) {\n if (this._reseed > this.reseedInterval)\n throw new Error('Reseed is required');\n\n // Optional encoding\n if (typeof enc !== 'string') {\n addEnc = add;\n add = enc;\n enc = null;\n }\n\n // Optional additional data\n if (add) {\n add = utils.toArray(add, addEnc || 'hex');\n this._update(add);\n }\n\n var temp = [];\n while (temp.length < len) {\n this.V = this._hmac().update(this.V).digest();\n temp = temp.concat(this.V);\n }\n\n var res = temp.slice(0, len);\n this._update(add);\n this._reseed++;\n return utils.encode(res, enc);\n};\n", "'use strict';\n\nvar BN = require('bn.js');\nvar utils = require('../utils');\nvar assert = utils.assert;\n\nfunction KeyPair(ec, options) {\n this.ec = ec;\n this.priv = null;\n this.pub = null;\n\n // KeyPair(ec, { priv: ..., pub: ... })\n if (options.priv)\n this._importPrivate(options.priv, options.privEnc);\n if (options.pub)\n this._importPublic(options.pub, options.pubEnc);\n}\nmodule.exports = KeyPair;\n\nKeyPair.fromPublic = function fromPublic(ec, pub, enc) {\n if (pub instanceof KeyPair)\n return pub;\n\n return new KeyPair(ec, {\n pub: pub,\n pubEnc: enc,\n });\n};\n\nKeyPair.fromPrivate = function fromPrivate(ec, priv, enc) {\n if (priv instanceof KeyPair)\n return priv;\n\n return new KeyPair(ec, {\n priv: priv,\n privEnc: enc,\n });\n};\n\nKeyPair.prototype.validate = function validate() {\n var pub = this.getPublic();\n\n if (pub.isInfinity())\n return { result: false, reason: 'Invalid public key' };\n if (!pub.validate())\n return { result: false, reason: 'Public key is not a point' };\n if (!pub.mul(this.ec.curve.n).isInfinity())\n return { result: false, reason: 'Public key * N != O' };\n\n return { result: true, reason: null };\n};\n\nKeyPair.prototype.getPublic = function getPublic(compact, enc) {\n // compact is optional argument\n if (typeof compact === 'string') {\n enc = compact;\n compact = null;\n }\n\n if (!this.pub)\n this.pub = this.ec.g.mul(this.priv);\n\n if (!enc)\n return this.pub;\n\n return this.pub.encode(enc, compact);\n};\n\nKeyPair.prototype.getPrivate = function getPrivate(enc) {\n if (enc === 'hex')\n return this.priv.toString(16, 2);\n else\n return this.priv;\n};\n\nKeyPair.prototype._importPrivate = function _importPrivate(key, enc) {\n this.priv = new BN(key, enc || 16);\n\n // Ensure that the priv won't be bigger than n, otherwise we may fail\n // in fixed multiplication method\n this.priv = this.priv.umod(this.ec.curve.n);\n};\n\nKeyPair.prototype._importPublic = function _importPublic(key, enc) {\n if (key.x || key.y) {\n // Montgomery points only have an `x` coordinate.\n // Weierstrass/Edwards points on the other hand have both `x` and\n // `y` coordinates.\n if (this.ec.curve.type === 'mont') {\n assert(key.x, 'Need x coordinate');\n } else if (this.ec.curve.type === 'short' ||\n this.ec.curve.type === 'edwards') {\n assert(key.x && key.y, 'Need both x and y coordinate');\n }\n this.pub = this.ec.curve.point(key.x, key.y);\n return;\n }\n this.pub = this.ec.curve.decodePoint(key, enc);\n};\n\n// ECDH\nKeyPair.prototype.derive = function derive(pub) {\n if(!pub.validate()) {\n assert(pub.validate(), 'public point not validated');\n }\n return pub.mul(this.priv).getX();\n};\n\n// ECDSA\nKeyPair.prototype.sign = function sign(msg, enc, options) {\n return this.ec.sign(msg, this, enc, options);\n};\n\nKeyPair.prototype.verify = function verify(msg, signature) {\n return this.ec.verify(msg, signature, this);\n};\n\nKeyPair.prototype.inspect = function inspect() {\n return '';\n};\n", "'use strict';\n\nvar BN = require('bn.js');\n\nvar utils = require('../utils');\nvar assert = utils.assert;\n\nfunction Signature(options, enc) {\n if (options instanceof Signature)\n return options;\n\n if (this._importDER(options, enc))\n return;\n\n assert(options.r && options.s, 'Signature without r or s');\n this.r = new BN(options.r, 16);\n this.s = new BN(options.s, 16);\n if (options.recoveryParam === undefined)\n this.recoveryParam = null;\n else\n this.recoveryParam = options.recoveryParam;\n}\nmodule.exports = Signature;\n\nfunction Position() {\n this.place = 0;\n}\n\nfunction getLength(buf, p) {\n var initial = buf[p.place++];\n if (!(initial & 0x80)) {\n return initial;\n }\n var octetLen = initial & 0xf;\n\n // Indefinite length or overflow\n if (octetLen === 0 || octetLen > 4) {\n return false;\n }\n\n var val = 0;\n for (var i = 0, off = p.place; i < octetLen; i++, off++) {\n val <<= 8;\n val |= buf[off];\n val >>>= 0;\n }\n\n // Leading zeroes\n if (val <= 0x7f) {\n return false;\n }\n\n p.place = off;\n return val;\n}\n\nfunction rmPadding(buf) {\n var i = 0;\n var len = buf.length - 1;\n while (!buf[i] && !(buf[i + 1] & 0x80) && i < len) {\n i++;\n }\n if (i === 0) {\n return buf;\n }\n return buf.slice(i);\n}\n\nSignature.prototype._importDER = function _importDER(data, enc) {\n data = utils.toArray(data, enc);\n var p = new Position();\n if (data[p.place++] !== 0x30) {\n return false;\n }\n var len = getLength(data, p);\n if (len === false) {\n return false;\n }\n if ((len + p.place) !== data.length) {\n return false;\n }\n if (data[p.place++] !== 0x02) {\n return false;\n }\n var rlen = getLength(data, p);\n if (rlen === false) {\n return false;\n }\n var r = data.slice(p.place, rlen + p.place);\n p.place += rlen;\n if (data[p.place++] !== 0x02) {\n return false;\n }\n var slen = getLength(data, p);\n if (slen === false) {\n return false;\n }\n if (data.length !== slen + p.place) {\n return false;\n }\n var s = data.slice(p.place, slen + p.place);\n if (r[0] === 0) {\n if (r[1] & 0x80) {\n r = r.slice(1);\n } else {\n // Leading zeroes\n return false;\n }\n }\n if (s[0] === 0) {\n if (s[1] & 0x80) {\n s = s.slice(1);\n } else {\n // Leading zeroes\n return false;\n }\n }\n\n this.r = new BN(r);\n this.s = new BN(s);\n this.recoveryParam = null;\n\n return true;\n};\n\nfunction constructLength(arr, len) {\n if (len < 0x80) {\n arr.push(len);\n return;\n }\n var octets = 1 + (Math.log(len) / Math.LN2 >>> 3);\n arr.push(octets | 0x80);\n while (--octets) {\n arr.push((len >>> (octets << 3)) & 0xff);\n }\n arr.push(len);\n}\n\nSignature.prototype.toDER = function toDER(enc) {\n var r = this.r.toArray();\n var s = this.s.toArray();\n\n // Pad values\n if (r[0] & 0x80)\n r = [ 0 ].concat(r);\n // Pad values\n if (s[0] & 0x80)\n s = [ 0 ].concat(s);\n\n r = rmPadding(r);\n s = rmPadding(s);\n\n while (!s[0] && !(s[1] & 0x80)) {\n s = s.slice(1);\n }\n var arr = [ 0x02 ];\n constructLength(arr, r.length);\n arr = arr.concat(r);\n arr.push(0x02);\n constructLength(arr, s.length);\n var backHalf = arr.concat(s);\n var res = [ 0x30 ];\n constructLength(res, backHalf.length);\n res = res.concat(backHalf);\n return utils.encode(res, enc);\n};\n", "'use strict';\n\nvar BN = require('bn.js');\nvar HmacDRBG = require('hmac-drbg');\nvar utils = require('../utils');\nvar curves = require('../curves');\nvar rand = require('brorand');\nvar assert = utils.assert;\n\nvar KeyPair = require('./key');\nvar Signature = require('./signature');\n\nfunction EC(options) {\n if (!(this instanceof EC))\n return new EC(options);\n\n // Shortcut `elliptic.ec(curve-name)`\n if (typeof options === 'string') {\n assert(Object.prototype.hasOwnProperty.call(curves, options),\n 'Unknown curve ' + options);\n\n options = curves[options];\n }\n\n // Shortcut for `elliptic.ec(elliptic.curves.curveName)`\n if (options instanceof curves.PresetCurve)\n options = { curve: options };\n\n this.curve = options.curve.curve;\n this.n = this.curve.n;\n this.nh = this.n.ushrn(1);\n this.g = this.curve.g;\n\n // Point on curve\n this.g = options.curve.g;\n this.g.precompute(options.curve.n.bitLength() + 1);\n\n // Hash for function for DRBG\n this.hash = options.hash || options.curve.hash;\n}\nmodule.exports = EC;\n\nEC.prototype.keyPair = function keyPair(options) {\n return new KeyPair(this, options);\n};\n\nEC.prototype.keyFromPrivate = function keyFromPrivate(priv, enc) {\n return KeyPair.fromPrivate(this, priv, enc);\n};\n\nEC.prototype.keyFromPublic = function keyFromPublic(pub, enc) {\n return KeyPair.fromPublic(this, pub, enc);\n};\n\nEC.prototype.genKeyPair = function genKeyPair(options) {\n if (!options)\n options = {};\n\n // Instantiate Hmac_DRBG\n var drbg = new HmacDRBG({\n hash: this.hash,\n pers: options.pers,\n persEnc: options.persEnc || 'utf8',\n entropy: options.entropy || rand(this.hash.hmacStrength),\n entropyEnc: options.entropy && options.entropyEnc || 'utf8',\n nonce: this.n.toArray(),\n });\n\n var bytes = this.n.byteLength();\n var ns2 = this.n.sub(new BN(2));\n for (;;) {\n var priv = new BN(drbg.generate(bytes));\n if (priv.cmp(ns2) > 0)\n continue;\n\n priv.iaddn(1);\n return this.keyFromPrivate(priv);\n }\n};\n\nEC.prototype._truncateToN = function _truncateToN(msg, truncOnly) {\n var delta = msg.byteLength() * 8 - this.n.bitLength();\n if (delta > 0)\n msg = msg.ushrn(delta);\n if (!truncOnly && msg.cmp(this.n) >= 0)\n return msg.sub(this.n);\n else\n return msg;\n};\n\nEC.prototype.sign = function sign(msg, key, enc, options) {\n if (typeof enc === 'object') {\n options = enc;\n enc = null;\n }\n if (!options)\n options = {};\n\n key = this.keyFromPrivate(key, enc);\n msg = this._truncateToN(new BN(msg, 16));\n\n // Zero-extend key to provide enough entropy\n var bytes = this.n.byteLength();\n var bkey = key.getPrivate().toArray('be', bytes);\n\n // Zero-extend nonce to have the same byte size as N\n var nonce = msg.toArray('be', bytes);\n\n // Instantiate Hmac_DRBG\n var drbg = new HmacDRBG({\n hash: this.hash,\n entropy: bkey,\n nonce: nonce,\n pers: options.pers,\n persEnc: options.persEnc || 'utf8',\n });\n\n // Number of bytes to generate\n var ns1 = this.n.sub(new BN(1));\n\n for (var iter = 0; ; iter++) {\n var k = options.k ?\n options.k(iter) :\n new BN(drbg.generate(this.n.byteLength()));\n k = this._truncateToN(k, true);\n if (k.cmpn(1) <= 0 || k.cmp(ns1) >= 0)\n continue;\n\n var kp = this.g.mul(k);\n if (kp.isInfinity())\n continue;\n\n var kpX = kp.getX();\n var r = kpX.umod(this.n);\n if (r.cmpn(0) === 0)\n continue;\n\n var s = k.invm(this.n).mul(r.mul(key.getPrivate()).iadd(msg));\n s = s.umod(this.n);\n if (s.cmpn(0) === 0)\n continue;\n\n var recoveryParam = (kp.getY().isOdd() ? 1 : 0) |\n (kpX.cmp(r) !== 0 ? 2 : 0);\n\n // Use complement of `s`, if it is > `n / 2`\n if (options.canonical && s.cmp(this.nh) > 0) {\n s = this.n.sub(s);\n recoveryParam ^= 1;\n }\n\n return new Signature({ r: r, s: s, recoveryParam: recoveryParam });\n }\n};\n\nEC.prototype.verify = function verify(msg, signature, key, enc) {\n msg = this._truncateToN(new BN(msg, 16));\n key = this.keyFromPublic(key, enc);\n signature = new Signature(signature, 'hex');\n\n // Perform primitive values validation\n var r = signature.r;\n var s = signature.s;\n if (r.cmpn(1) < 0 || r.cmp(this.n) >= 0)\n return false;\n if (s.cmpn(1) < 0 || s.cmp(this.n) >= 0)\n return false;\n\n // Validate signature\n var sinv = s.invm(this.n);\n var u1 = sinv.mul(msg).umod(this.n);\n var u2 = sinv.mul(r).umod(this.n);\n var p;\n\n if (!this.curve._maxwellTrick) {\n p = this.g.mulAdd(u1, key.getPublic(), u2);\n if (p.isInfinity())\n return false;\n\n return p.getX().umod(this.n).cmp(r) === 0;\n }\n\n // NOTE: Greg Maxwell's trick, inspired by:\n // https://git.io/vad3K\n\n p = this.g.jmulAdd(u1, key.getPublic(), u2);\n if (p.isInfinity())\n return false;\n\n // Compare `p.x` of Jacobian point with `r`,\n // this will do `p.x == r * p.z^2` instead of multiplying `p.x` by the\n // inverse of `p.z^2`\n return p.eqXToP(r);\n};\n\nEC.prototype.recoverPubKey = function(msg, signature, j, enc) {\n assert((3 & j) === j, 'The recovery param is more than two bits');\n signature = new Signature(signature, enc);\n\n var n = this.n;\n var e = new BN(msg);\n var r = signature.r;\n var s = signature.s;\n\n // A set LSB signifies that the y-coordinate is odd\n var isYOdd = j & 1;\n var isSecondKey = j >> 1;\n if (r.cmp(this.curve.p.umod(this.curve.n)) >= 0 && isSecondKey)\n throw new Error('Unable to find sencond key candinate');\n\n // 1.1. Let x = r + jn.\n if (isSecondKey)\n r = this.curve.pointFromX(r.add(this.curve.n), isYOdd);\n else\n r = this.curve.pointFromX(r, isYOdd);\n\n var rInv = signature.r.invm(n);\n var s1 = n.sub(e).mul(rInv).umod(n);\n var s2 = s.mul(rInv).umod(n);\n\n // 1.6.1 Compute Q = r^-1 (sR - eG)\n // Q = r^-1 (sR + -eG)\n return this.g.mulAdd(s1, r, s2);\n};\n\nEC.prototype.getKeyRecoveryParam = function(e, signature, Q, enc) {\n signature = new Signature(signature, enc);\n if (signature.recoveryParam !== null)\n return signature.recoveryParam;\n\n for (var i = 0; i < 4; i++) {\n var Qprime;\n try {\n Qprime = this.recoverPubKey(e, signature, i);\n } catch (e) {\n continue;\n }\n\n if (Qprime.eq(Q))\n return i;\n }\n throw new Error('Unable to find valid recovery factor');\n};\n", "'use strict';\n\nvar utils = require('../utils');\nvar assert = utils.assert;\nvar parseBytes = utils.parseBytes;\nvar cachedProperty = utils.cachedProperty;\n\n/**\n* @param {EDDSA} eddsa - instance\n* @param {Object} params - public/private key parameters\n*\n* @param {Array} [params.secret] - secret seed bytes\n* @param {Point} [params.pub] - public key point (aka `A` in eddsa terms)\n* @param {Array} [params.pub] - public key point encoded as bytes\n*\n*/\nfunction KeyPair(eddsa, params) {\n this.eddsa = eddsa;\n this._secret = parseBytes(params.secret);\n if (eddsa.isPoint(params.pub))\n this._pub = params.pub;\n else\n this._pubBytes = parseBytes(params.pub);\n}\n\nKeyPair.fromPublic = function fromPublic(eddsa, pub) {\n if (pub instanceof KeyPair)\n return pub;\n return new KeyPair(eddsa, { pub: pub });\n};\n\nKeyPair.fromSecret = function fromSecret(eddsa, secret) {\n if (secret instanceof KeyPair)\n return secret;\n return new KeyPair(eddsa, { secret: secret });\n};\n\nKeyPair.prototype.secret = function secret() {\n return this._secret;\n};\n\ncachedProperty(KeyPair, 'pubBytes', function pubBytes() {\n return this.eddsa.encodePoint(this.pub());\n});\n\ncachedProperty(KeyPair, 'pub', function pub() {\n if (this._pubBytes)\n return this.eddsa.decodePoint(this._pubBytes);\n return this.eddsa.g.mul(this.priv());\n});\n\ncachedProperty(KeyPair, 'privBytes', function privBytes() {\n var eddsa = this.eddsa;\n var hash = this.hash();\n var lastIx = eddsa.encodingLength - 1;\n\n var a = hash.slice(0, eddsa.encodingLength);\n a[0] &= 248;\n a[lastIx] &= 127;\n a[lastIx] |= 64;\n\n return a;\n});\n\ncachedProperty(KeyPair, 'priv', function priv() {\n return this.eddsa.decodeInt(this.privBytes());\n});\n\ncachedProperty(KeyPair, 'hash', function hash() {\n return this.eddsa.hash().update(this.secret()).digest();\n});\n\ncachedProperty(KeyPair, 'messagePrefix', function messagePrefix() {\n return this.hash().slice(this.eddsa.encodingLength);\n});\n\nKeyPair.prototype.sign = function sign(message) {\n assert(this._secret, 'KeyPair can only verify');\n return this.eddsa.sign(message, this);\n};\n\nKeyPair.prototype.verify = function verify(message, sig) {\n return this.eddsa.verify(message, sig, this);\n};\n\nKeyPair.prototype.getSecret = function getSecret(enc) {\n assert(this._secret, 'KeyPair is public only');\n return utils.encode(this.secret(), enc);\n};\n\nKeyPair.prototype.getPublic = function getPublic(enc) {\n return utils.encode(this.pubBytes(), enc);\n};\n\nmodule.exports = KeyPair;\n", "'use strict';\n\nvar BN = require('bn.js');\nvar utils = require('../utils');\nvar assert = utils.assert;\nvar cachedProperty = utils.cachedProperty;\nvar parseBytes = utils.parseBytes;\n\n/**\n* @param {EDDSA} eddsa - eddsa instance\n* @param {Array|Object} sig -\n* @param {Array|Point} [sig.R] - R point as Point or bytes\n* @param {Array|bn} [sig.S] - S scalar as bn or bytes\n* @param {Array} [sig.Rencoded] - R point encoded\n* @param {Array} [sig.Sencoded] - S scalar encoded\n*/\nfunction Signature(eddsa, sig) {\n this.eddsa = eddsa;\n\n if (typeof sig !== 'object')\n sig = parseBytes(sig);\n\n if (Array.isArray(sig)) {\n sig = {\n R: sig.slice(0, eddsa.encodingLength),\n S: sig.slice(eddsa.encodingLength),\n };\n }\n\n assert(sig.R && sig.S, 'Signature without R or S');\n\n if (eddsa.isPoint(sig.R))\n this._R = sig.R;\n if (sig.S instanceof BN)\n this._S = sig.S;\n\n this._Rencoded = Array.isArray(sig.R) ? sig.R : sig.Rencoded;\n this._Sencoded = Array.isArray(sig.S) ? sig.S : sig.Sencoded;\n}\n\ncachedProperty(Signature, 'S', function S() {\n return this.eddsa.decodeInt(this.Sencoded());\n});\n\ncachedProperty(Signature, 'R', function R() {\n return this.eddsa.decodePoint(this.Rencoded());\n});\n\ncachedProperty(Signature, 'Rencoded', function Rencoded() {\n return this.eddsa.encodePoint(this.R());\n});\n\ncachedProperty(Signature, 'Sencoded', function Sencoded() {\n return this.eddsa.encodeInt(this.S());\n});\n\nSignature.prototype.toBytes = function toBytes() {\n return this.Rencoded().concat(this.Sencoded());\n};\n\nSignature.prototype.toHex = function toHex() {\n return utils.encode(this.toBytes(), 'hex').toUpperCase();\n};\n\nmodule.exports = Signature;\n", "'use strict';\n\nvar hash = require('hash.js');\nvar curves = require('../curves');\nvar utils = require('../utils');\nvar assert = utils.assert;\nvar parseBytes = utils.parseBytes;\nvar KeyPair = require('./key');\nvar Signature = require('./signature');\n\nfunction EDDSA(curve) {\n assert(curve === 'ed25519', 'only tested with ed25519 so far');\n\n if (!(this instanceof EDDSA))\n return new EDDSA(curve);\n\n curve = curves[curve].curve;\n this.curve = curve;\n this.g = curve.g;\n this.g.precompute(curve.n.bitLength() + 1);\n\n this.pointClass = curve.point().constructor;\n this.encodingLength = Math.ceil(curve.n.bitLength() / 8);\n this.hash = hash.sha512;\n}\n\nmodule.exports = EDDSA;\n\n/**\n* @param {Array|String} message - message bytes\n* @param {Array|String|KeyPair} secret - secret bytes or a keypair\n* @returns {Signature} - signature\n*/\nEDDSA.prototype.sign = function sign(message, secret) {\n message = parseBytes(message);\n var key = this.keyFromSecret(secret);\n var r = this.hashInt(key.messagePrefix(), message);\n var R = this.g.mul(r);\n var Rencoded = this.encodePoint(R);\n var s_ = this.hashInt(Rencoded, key.pubBytes(), message)\n .mul(key.priv());\n var S = r.add(s_).umod(this.curve.n);\n return this.makeSignature({ R: R, S: S, Rencoded: Rencoded });\n};\n\n/**\n* @param {Array} message - message bytes\n* @param {Array|String|Signature} sig - sig bytes\n* @param {Array|String|Point|KeyPair} pub - public key\n* @returns {Boolean} - true if public key matches sig of message\n*/\nEDDSA.prototype.verify = function verify(message, sig, pub) {\n message = parseBytes(message);\n sig = this.makeSignature(sig);\n var key = this.keyFromPublic(pub);\n var h = this.hashInt(sig.Rencoded(), key.pubBytes(), message);\n var SG = this.g.mul(sig.S());\n var RplusAh = sig.R().add(key.pub().mul(h));\n return RplusAh.eq(SG);\n};\n\nEDDSA.prototype.hashInt = function hashInt() {\n var hash = this.hash();\n for (var i = 0; i < arguments.length; i++)\n hash.update(arguments[i]);\n return utils.intFromLE(hash.digest()).umod(this.curve.n);\n};\n\nEDDSA.prototype.keyFromPublic = function keyFromPublic(pub) {\n return KeyPair.fromPublic(this, pub);\n};\n\nEDDSA.prototype.keyFromSecret = function keyFromSecret(secret) {\n return KeyPair.fromSecret(this, secret);\n};\n\nEDDSA.prototype.makeSignature = function makeSignature(sig) {\n if (sig instanceof Signature)\n return sig;\n return new Signature(this, sig);\n};\n\n/**\n* * https://tools.ietf.org/html/draft-josefsson-eddsa-ed25519-03#section-5.2\n*\n* EDDSA defines methods for encoding and decoding points and integers. These are\n* helper convenience methods, that pass along to utility functions implied\n* parameters.\n*\n*/\nEDDSA.prototype.encodePoint = function encodePoint(point) {\n var enc = point.getY().toArray('le', this.encodingLength);\n enc[this.encodingLength - 1] |= point.getX().isOdd() ? 0x80 : 0;\n return enc;\n};\n\nEDDSA.prototype.decodePoint = function decodePoint(bytes) {\n bytes = utils.parseBytes(bytes);\n\n var lastIx = bytes.length - 1;\n var normed = bytes.slice(0, lastIx).concat(bytes[lastIx] & ~0x80);\n var xIsOdd = (bytes[lastIx] & 0x80) !== 0;\n\n var y = utils.intFromLE(normed);\n return this.curve.pointFromY(y, xIsOdd);\n};\n\nEDDSA.prototype.encodeInt = function encodeInt(num) {\n return num.toArray('le', this.encodingLength);\n};\n\nEDDSA.prototype.decodeInt = function decodeInt(bytes) {\n return utils.intFromLE(bytes);\n};\n\nEDDSA.prototype.isPoint = function isPoint(val) {\n return val instanceof this.pointClass;\n};\n", "'use strict';\n\nvar elliptic = exports;\n\nelliptic.version = require('../package.json').version;\nelliptic.utils = require('./elliptic/utils');\nelliptic.rand = require('brorand');\nelliptic.curve = require('./elliptic/curve');\nelliptic.curves = require('./elliptic/curves');\n\n// Protocols\nelliptic.ec = require('./elliptic/ec');\nelliptic.eddsa = require('./elliptic/eddsa');\n", "import _ec from \"elliptic\";\nimport EC = _ec.ec;\n\nexport { EC }\n", "export const version = \"signing-key/5.7.0\";\n", "\"use strict\";\n\nimport { EC } from \"./elliptic\";\n\nimport { arrayify, BytesLike, hexDataLength, hexlify, hexZeroPad, Signature, SignatureLike, splitSignature } from \"@ethersproject/bytes\";\nimport { defineReadOnly } from \"@ethersproject/properties\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\nlet _curve: EC = null\nfunction getCurve() {\n if (!_curve) {\n _curve = new EC(\"secp256k1\");\n }\n return _curve;\n}\n\nexport class SigningKey {\n\n readonly curve: string;\n\n readonly privateKey: string;\n readonly publicKey: string;\n readonly compressedPublicKey: string;\n\n //readonly address: string;\n\n readonly _isSigningKey: boolean;\n\n constructor(privateKey: BytesLike) {\n defineReadOnly(this, \"curve\", \"secp256k1\");\n\n defineReadOnly(this, \"privateKey\", hexlify(privateKey));\n if (hexDataLength(this.privateKey) !== 32) {\n logger.throwArgumentError(\"invalid private key\", \"privateKey\", \"[[ REDACTED ]]\");\n }\n\n const keyPair = getCurve().keyFromPrivate(arrayify(this.privateKey));\n\n defineReadOnly(this, \"publicKey\", \"0x\" + keyPair.getPublic(false, \"hex\"));\n defineReadOnly(this, \"compressedPublicKey\", \"0x\" + keyPair.getPublic(true, \"hex\"));\n\n defineReadOnly(this, \"_isSigningKey\", true);\n }\n\n _addPoint(other: BytesLike): string {\n const p0 = getCurve().keyFromPublic(arrayify(this.publicKey));\n const p1 = getCurve().keyFromPublic(arrayify(other));\n return \"0x\" + p0.pub.add(p1.pub).encodeCompressed(\"hex\");\n }\n\n signDigest(digest: BytesLike): Signature {\n const keyPair = getCurve().keyFromPrivate(arrayify(this.privateKey));\n const digestBytes = arrayify(digest);\n if (digestBytes.length !== 32) {\n logger.throwArgumentError(\"bad digest length\", \"digest\", digest);\n }\n const signature = keyPair.sign(digestBytes, { canonical: true });\n return splitSignature({\n recoveryParam: signature.recoveryParam,\n r: hexZeroPad(\"0x\" + signature.r.toString(16), 32),\n s: hexZeroPad(\"0x\" + signature.s.toString(16), 32),\n })\n }\n\n computeSharedSecret(otherKey: BytesLike): string {\n const keyPair = getCurve().keyFromPrivate(arrayify(this.privateKey));\n const otherKeyPair = getCurve().keyFromPublic(arrayify(computePublicKey(otherKey)));\n return hexZeroPad(\"0x\" + keyPair.derive(otherKeyPair.getPublic()).toString(16), 32);\n }\n\n static isSigningKey(value: any): value is SigningKey {\n return !!(value && value._isSigningKey);\n }\n}\n\nexport function recoverPublicKey(digest: BytesLike, signature: SignatureLike): string {\n const sig = splitSignature(signature);\n const rs = { r: arrayify(sig.r), s: arrayify(sig.s) };\n return \"0x\" + getCurve().recoverPubKey(arrayify(digest), rs, sig.recoveryParam).encode(\"hex\", false);\n}\n\nexport function computePublicKey(key: BytesLike, compressed?: boolean): string {\n const bytes = arrayify(key);\n\n if (bytes.length === 32) {\n const signingKey = new SigningKey(bytes);\n if (compressed) {\n return \"0x\" + getCurve().keyFromPrivate(bytes).getPublic(true, \"hex\");\n }\n return signingKey.publicKey;\n\n } else if (bytes.length === 33) {\n if (compressed) { return hexlify(bytes); }\n return \"0x\" + getCurve().keyFromPublic(bytes).getPublic(false, \"hex\");\n\n } else if (bytes.length === 65) {\n if (!compressed) { return hexlify(bytes); }\n return \"0x\" + getCurve().keyFromPublic(bytes).getPublic(true, \"hex\");\n }\n\n return logger.throwArgumentError(\"invalid public or private key\", \"key\", \"[REDACTED]\");\n}\n\n", "export const version = \"transactions/5.7.0\";\n", "\"use strict\";\n\nimport { getAddress } from \"@ethersproject/address\";\nimport { BigNumber, BigNumberish } from \"@ethersproject/bignumber\";\nimport { arrayify, BytesLike, DataOptions, hexConcat, hexDataLength, hexDataSlice, hexlify, hexZeroPad, isBytesLike, SignatureLike, splitSignature, stripZeros, } from \"@ethersproject/bytes\";\nimport { Zero } from \"@ethersproject/constants\";\nimport { keccak256 } from \"@ethersproject/keccak256\";\nimport { checkProperties } from \"@ethersproject/properties\";\nimport * as RLP from \"@ethersproject/rlp\";\nimport { computePublicKey, recoverPublicKey } from \"@ethersproject/signing-key\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\n///////////////////////////////\n// Exported Types\n\nexport type AccessList = Array<{ address: string, storageKeys: Array }>;\n\n// Input allows flexibility in describing an access list\nexport type AccessListish = AccessList |\n Array<[ string, Array ]> |\n Record>;\n\nexport enum TransactionTypes {\n legacy = 0,\n eip2930 = 1,\n eip1559 = 2,\n};\n\nexport type UnsignedTransaction = {\n to?: string;\n nonce?: number;\n\n gasLimit?: BigNumberish;\n gasPrice?: BigNumberish;\n\n data?: BytesLike;\n value?: BigNumberish;\n chainId?: number;\n\n // Typed-Transaction features\n type?: number | null;\n\n // EIP-2930; Type 1 & EIP-1559; Type 2\n accessList?: AccessListish;\n\n // EIP-1559; Type 2\n maxPriorityFeePerGas?: BigNumberish;\n maxFeePerGas?: BigNumberish;\n}\n\nexport interface Transaction {\n hash?: string;\n\n to?: string;\n from?: string;\n nonce: number;\n\n gasLimit: BigNumber;\n gasPrice?: BigNumber;\n\n data: string;\n value: BigNumber;\n chainId: number;\n\n r?: string;\n s?: string;\n v?: number;\n\n // Typed-Transaction features\n type?: number | null;\n\n // EIP-2930; Type 1 & EIP-1559; Type 2\n accessList?: AccessList;\n\n // EIP-1559; Type 2\n maxPriorityFeePerGas?: BigNumber;\n maxFeePerGas?: BigNumber;\n}\n\n///////////////////////////////\n\nfunction handleAddress(value: string): string {\n if (value === \"0x\") { return null; }\n return getAddress(value);\n}\n\nfunction handleNumber(value: string): BigNumber {\n if (value === \"0x\") { return Zero; }\n return BigNumber.from(value);\n}\n\n// Legacy Transaction Fields\nconst transactionFields = [\n { name: \"nonce\", maxLength: 32, numeric: true },\n { name: \"gasPrice\", maxLength: 32, numeric: true },\n { name: \"gasLimit\", maxLength: 32, numeric: true },\n { name: \"to\", length: 20 },\n { name: \"value\", maxLength: 32, numeric: true },\n { name: \"data\" },\n];\n\nconst allowedTransactionKeys: { [ key: string ]: boolean } = {\n chainId: true, data: true, gasLimit: true, gasPrice:true, nonce: true, to: true, type: true, value: true\n}\n\nexport function computeAddress(key: BytesLike | string): string {\n const publicKey = computePublicKey(key);\n return getAddress(hexDataSlice(keccak256(hexDataSlice(publicKey, 1)), 12));\n}\n\nexport function recoverAddress(digest: BytesLike, signature: SignatureLike): string {\n return computeAddress(recoverPublicKey(arrayify(digest), signature));\n}\n\nfunction formatNumber(value: BigNumberish, name: string): Uint8Array {\n const result = stripZeros(BigNumber.from(value).toHexString());\n if (result.length > 32) {\n logger.throwArgumentError(\"invalid length for \" + name, (\"transaction:\" + name), value);\n }\n return result;\n}\n\nfunction accessSetify(addr: string, storageKeys: Array): { address: string,storageKeys: Array } {\n return {\n address: getAddress(addr),\n storageKeys: (storageKeys || []).map((storageKey, index) => {\n if (hexDataLength(storageKey) !== 32) {\n logger.throwArgumentError(\"invalid access list storageKey\", `accessList[${ addr }:${ index }]`, storageKey)\n }\n return storageKey.toLowerCase();\n })\n };\n}\n\nexport function accessListify(value: AccessListish): AccessList {\n if (Array.isArray(value)) {\n return (] | { address: string, storageKeys: Array}>>value).map((set, index) => {\n if (Array.isArray(set)) {\n if (set.length > 2) {\n logger.throwArgumentError(\"access list expected to be [ address, storageKeys[] ]\", `value[${ index }]`, set);\n }\n return accessSetify(set[0], set[1])\n }\n return accessSetify(set.address, set.storageKeys);\n });\n }\n\n const result: Array<{ address: string, storageKeys: Array }> = Object.keys(value).map((addr) => {\n const storageKeys: Record = 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\nfunction formatAccessList(value: AccessListish): Array<[ string, Array ]> {\n return accessListify(value).map((set) => [ set.address, set.storageKeys ]);\n}\n\nfunction _serializeEip1559(transaction: UnsignedTransaction, signature?: SignatureLike): string {\n // If there is an explicit gasPrice, make sure it matches the\n // EIP-1559 fees; otherwise they may not understand what they\n // think they are setting in terms of fee.\n if (transaction.gasPrice != null) {\n const gasPrice = BigNumber.from(transaction.gasPrice);\n const maxFeePerGas = BigNumber.from(transaction.maxFeePerGas || 0);\n if (!gasPrice.eq(maxFeePerGas)) {\n logger.throwArgumentError(\"mismatch EIP-1559 gasPrice != maxFeePerGas\", \"tx\", {\n gasPrice, maxFeePerGas\n });\n }\n }\n\n const fields: any = [\n formatNumber(transaction.chainId || 0, \"chainId\"),\n formatNumber(transaction.nonce || 0, \"nonce\"),\n formatNumber(transaction.maxPriorityFeePerGas || 0, \"maxPriorityFeePerGas\"),\n formatNumber(transaction.maxFeePerGas || 0, \"maxFeePerGas\"),\n formatNumber(transaction.gasLimit || 0, \"gasLimit\"),\n ((transaction.to != null) ? getAddress(transaction.to): \"0x\"),\n formatNumber(transaction.value || 0, \"value\"),\n (transaction.data || \"0x\"),\n (formatAccessList(transaction.accessList || []))\n ];\n\n if (signature) {\n const sig = splitSignature(signature);\n fields.push(formatNumber(sig.recoveryParam, \"recoveryParam\"));\n fields.push(stripZeros(sig.r));\n fields.push(stripZeros(sig.s));\n }\n\n return hexConcat([ \"0x02\", RLP.encode(fields)]);\n}\n\nfunction _serializeEip2930(transaction: UnsignedTransaction, signature?: SignatureLike): string {\n const fields: any = [\n formatNumber(transaction.chainId || 0, \"chainId\"),\n formatNumber(transaction.nonce || 0, \"nonce\"),\n formatNumber(transaction.gasPrice || 0, \"gasPrice\"),\n formatNumber(transaction.gasLimit || 0, \"gasLimit\"),\n ((transaction.to != null) ? getAddress(transaction.to): \"0x\"),\n formatNumber(transaction.value || 0, \"value\"),\n (transaction.data || \"0x\"),\n (formatAccessList(transaction.accessList || []))\n ];\n\n if (signature) {\n const sig = splitSignature(signature);\n fields.push(formatNumber(sig.recoveryParam, \"recoveryParam\"));\n fields.push(stripZeros(sig.r));\n fields.push(stripZeros(sig.s));\n }\n\n return hexConcat([ \"0x01\", RLP.encode(fields)]);\n}\n\n// Legacy Transactions and EIP-155\nfunction _serialize(transaction: UnsignedTransaction, signature?: SignatureLike): string {\n checkProperties(transaction, allowedTransactionKeys);\n\n const raw: Array = [];\n\n transactionFields.forEach(function(fieldInfo) {\n let value = (transaction)[fieldInfo.name] || ([]);\n const options: DataOptions = { };\n if (fieldInfo.numeric) { options.hexPad = \"left\"; }\n value = arrayify(hexlify(value, options));\n\n // Fixed-width field\n if (fieldInfo.length && value.length !== fieldInfo.length && value.length > 0) {\n logger.throwArgumentError(\"invalid length for \" + fieldInfo.name, (\"transaction:\" + fieldInfo.name), value);\n }\n\n // Variable-width (with a maximum)\n if (fieldInfo.maxLength) {\n value = stripZeros(value);\n if (value.length > fieldInfo.maxLength) {\n logger.throwArgumentError(\"invalid length for \" + fieldInfo.name, (\"transaction:\" + fieldInfo.name), value );\n }\n }\n\n raw.push(hexlify(value));\n });\n\n let chainId = 0;\n if (transaction.chainId != null) {\n // A chainId was provided; if non-zero we'll use EIP-155\n chainId = transaction.chainId;\n\n if (typeof(chainId) !== \"number\") {\n logger.throwArgumentError(\"invalid transaction.chainId\", \"transaction\", transaction);\n }\n\n } else if (signature && !isBytesLike(signature) && signature.v > 28) {\n // No chainId provided, but the signature is signing with EIP-155; derive chainId\n chainId = Math.floor((signature.v - 35) / 2);\n }\n\n // We have an EIP-155 transaction (chainId was specified and non-zero)\n if (chainId !== 0) {\n raw.push(hexlify(chainId)); // @TODO: hexValue?\n raw.push(\"0x\");\n raw.push(\"0x\");\n }\n\n // Requesting an unsigned transaction\n if (!signature) {\n return RLP.encode(raw);\n }\n\n // The splitSignature will ensure the transaction has a recoveryParam in the\n // case that the signTransaction function only adds a v.\n const sig = splitSignature(signature);\n\n // We pushed a chainId and null r, s on for hashing only; remove those\n let v = 27 + sig.recoveryParam\n if (chainId !== 0) {\n raw.pop();\n raw.pop();\n raw.pop();\n v += chainId * 2 + 8;\n\n // If an EIP-155 v (directly or indirectly; maybe _vs) was provided, check it!\n if (sig.v > 28 && sig.v !== v) {\n logger.throwArgumentError(\"transaction.chainId/signature.v mismatch\", \"signature\", signature);\n }\n } else if (sig.v !== v) {\n logger.throwArgumentError(\"transaction.chainId/signature.v mismatch\", \"signature\", signature);\n }\n\n raw.push(hexlify(v));\n raw.push(stripZeros(arrayify(sig.r)));\n raw.push(stripZeros(arrayify(sig.s)));\n\n return RLP.encode(raw);\n}\n\nexport function serialize(transaction: UnsignedTransaction, signature?: SignatureLike): string {\n // Legacy and EIP-155 Transactions\n if (transaction.type == null || transaction.type === 0) {\n if (transaction.accessList != null) {\n logger.throwArgumentError(\"untyped transactions do not support accessList; include type: 1\", \"transaction\", transaction);\n }\n return _serialize(transaction, signature);\n }\n\n // Typed Transactions (EIP-2718)\n switch (transaction.type) {\n case 1:\n return _serializeEip2930(transaction, signature);\n case 2:\n return _serializeEip1559(transaction, signature);\n default:\n break;\n }\n\n return logger.throwError(`unsupported transaction type: ${ transaction.type }`, Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"serializeTransaction\",\n transactionType: transaction.type\n });\n}\n\nfunction _parseEipSignature(tx: Transaction, fields: Array, serialize: (tx: UnsignedTransaction) => string): void {\n try {\n const recid = handleNumber(fields[0]).toNumber();\n if (recid !== 0 && recid !== 1) { throw new Error(\"bad recid\"); }\n tx.v = recid;\n } catch (error) {\n logger.throwArgumentError(\"invalid v for transaction type: 1\", \"v\", fields[0]);\n }\n\n tx.r = hexZeroPad(fields[1], 32);\n tx.s = hexZeroPad(fields[2], 32);\n\n try {\n const digest = keccak256(serialize(tx));\n tx.from = recoverAddress(digest, { r: tx.r, s: tx.s, recoveryParam: tx.v });\n } catch (error) { }\n}\n\nfunction _parseEip1559(payload: Uint8Array): Transaction {\n const transaction = RLP.decode(payload.slice(1));\n\n if (transaction.length !== 9 && transaction.length !== 12) {\n logger.throwArgumentError(\"invalid component count for transaction type: 2\", \"payload\", hexlify(payload));\n }\n\n const maxPriorityFeePerGas = handleNumber(transaction[2]);\n const maxFeePerGas = handleNumber(transaction[3]);\n const tx: Transaction = {\n type: 2,\n chainId: handleNumber(transaction[0]).toNumber(),\n nonce: handleNumber(transaction[1]).toNumber(),\n maxPriorityFeePerGas: maxPriorityFeePerGas,\n maxFeePerGas: maxFeePerGas,\n gasPrice: null,\n gasLimit: handleNumber(transaction[4]),\n to: handleAddress(transaction[5]),\n value: handleNumber(transaction[6]),\n data: transaction[7],\n accessList: accessListify(transaction[8]),\n };\n\n // Unsigned EIP-1559 Transaction\n if (transaction.length === 9) { return tx; }\n\n tx.hash = keccak256(payload);\n\n _parseEipSignature(tx, transaction.slice(9), _serializeEip1559);\n\n return tx;\n}\n\nfunction _parseEip2930(payload: Uint8Array): Transaction {\n const transaction = RLP.decode(payload.slice(1));\n\n if (transaction.length !== 8 && transaction.length !== 11) {\n logger.throwArgumentError(\"invalid component count for transaction type: 1\", \"payload\", hexlify(payload));\n }\n\n const tx: Transaction = {\n type: 1,\n chainId: handleNumber(transaction[0]).toNumber(),\n nonce: handleNumber(transaction[1]).toNumber(),\n gasPrice: handleNumber(transaction[2]),\n gasLimit: handleNumber(transaction[3]),\n to: handleAddress(transaction[4]),\n value: handleNumber(transaction[5]),\n data: transaction[6],\n accessList: accessListify(transaction[7])\n };\n\n // Unsigned EIP-2930 Transaction\n if (transaction.length === 8) { return tx; }\n\n tx.hash = keccak256(payload);\n\n _parseEipSignature(tx, transaction.slice(8), _serializeEip2930);\n\n return tx;\n}\n\n// Legacy Transactions and EIP-155\nfunction _parse(rawTransaction: Uint8Array): Transaction {\n const transaction = RLP.decode(rawTransaction);\n\n if (transaction.length !== 9 && transaction.length !== 6) {\n logger.throwArgumentError(\"invalid raw transaction\", \"rawTransaction\", rawTransaction);\n }\n\n const tx: Transaction = {\n nonce: handleNumber(transaction[0]).toNumber(),\n gasPrice: handleNumber(transaction[1]),\n gasLimit: handleNumber(transaction[2]),\n to: handleAddress(transaction[3]),\n value: handleNumber(transaction[4]),\n data: transaction[5],\n chainId: 0\n };\n\n // Legacy unsigned transaction\n if (transaction.length === 6) { return tx; }\n\n try {\n tx.v = BigNumber.from(transaction[6]).toNumber();\n\n } catch (error) {\n // @TODO: What makes snese to do? The v is too big\n return tx;\n }\n\n tx.r = hexZeroPad(transaction[7], 32);\n tx.s = hexZeroPad(transaction[8], 32);\n\n if (BigNumber.from(tx.r).isZero() && BigNumber.from(tx.s).isZero()) {\n // EIP-155 unsigned transaction\n tx.chainId = tx.v;\n tx.v = 0;\n\n } else {\n // Signed Transaction\n\n tx.chainId = Math.floor((tx.v - 35) / 2);\n if (tx.chainId < 0) { tx.chainId = 0; }\n\n let recoveryParam = tx.v - 27;\n\n const raw = transaction.slice(0, 6);\n\n if (tx.chainId !== 0) {\n raw.push(hexlify(tx.chainId));\n raw.push(\"0x\");\n raw.push(\"0x\");\n recoveryParam -= tx.chainId * 2 + 8;\n }\n\n const digest = keccak256(RLP.encode(raw));\n try {\n tx.from = recoverAddress(digest, { r: hexlify(tx.r), s: hexlify(tx.s), recoveryParam: recoveryParam });\n } catch (error) { }\n\n tx.hash = keccak256(rawTransaction);\n }\n\n tx.type = null;\n\n return tx;\n}\n\n\nexport function parse(rawTransaction: BytesLike): Transaction {\n const payload = arrayify(rawTransaction);\n\n // Legacy and EIP-155 Transactions\n if (payload[0] > 0x7f) { return _parse(payload); }\n\n // Typed Transaction (EIP-2718)\n switch (payload[0]) {\n case 1:\n return _parseEip2930(payload);\n case 2:\n return _parseEip1559(payload);\n default:\n break;\n }\n\n return logger.throwError(`unsupported transaction type: ${ payload[0] }`, Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"parseTransaction\",\n transactionType: payload[0]\n });\n}\n\n", "export const version = \"contracts/5.7.0\";\n", "\"use strict\";\n\nimport { checkResultErrors, EventFragment, Fragment, FunctionFragment, Indexed, Interface, JsonFragment, LogDescription, ParamType, Result } from \"@ethersproject/abi\";\nimport { Block, BlockTag, Filter, FilterByBlockHash, Listener, Log, Provider, TransactionReceipt, TransactionRequest, TransactionResponse } from \"@ethersproject/abstract-provider\";\nimport { Signer, VoidSigner } from \"@ethersproject/abstract-signer\";\nimport { getAddress, getContractAddress } from \"@ethersproject/address\";\nimport { BigNumber, BigNumberish } from \"@ethersproject/bignumber\";\nimport { arrayify, BytesLike, concat, hexlify, isBytes, isHexString } from \"@ethersproject/bytes\";\nimport { Deferrable, defineReadOnly, deepCopy, getStatic, resolveProperties, shallowCopy } from \"@ethersproject/properties\";\nimport { AccessList, accessListify, AccessListish } from \"@ethersproject/transactions\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\n\nconst logger = new Logger(version);\n\nexport interface Overrides {\n gasLimit?: BigNumberish | Promise;\n gasPrice?: BigNumberish | Promise;\n maxFeePerGas?: BigNumberish | Promise;\n maxPriorityFeePerGas?: BigNumberish | Promise;\n nonce?: BigNumberish | Promise;\n type?: number;\n accessList?: AccessListish;\n customData?: Record;\n ccipReadEnabled?: boolean;\n};\n\nexport interface PayableOverrides extends Overrides {\n value?: BigNumberish | Promise;\n}\n\nexport interface CallOverrides extends PayableOverrides {\n blockTag?: BlockTag | Promise;\n from?: string | Promise;\n}\n\n// @TODO: Better hierarchy with: (in v6)\n// - abstract-provider:TransactionRequest\n// - transactions:Transaction\n// - transaction:UnsignedTransaction\n\nexport interface PopulatedTransaction {\n to?: string;\n from?: string;\n nonce?: number;\n\n gasLimit?: BigNumber;\n gasPrice?: BigNumber;\n\n data?: string;\n value?: BigNumber;\n chainId?: number;\n\n type?: number;\n accessList?: AccessList;\n\n maxFeePerGas?: BigNumber;\n maxPriorityFeePerGas?: BigNumber;\n\n customData?: Record;\n ccipReadEnabled?: boolean;\n};\n\nexport type EventFilter = {\n address?: string;\n topics?: Array>;\n};\n\n\nexport type ContractFunction = (...args: Array) => Promise;\n\n\n// The (n + 1)th parameter passed to contract event callbacks\nexport interface Event extends Log {\n\n // The event name\n event?: string;\n\n // The event signature\n eventSignature?: string;\n\n // The parsed arguments to the event\n args?: Result;\n\n // If parsing the arguments failed, this is the error\n decodeError?: Error;\n\n // A function that can be used to decode event data and topics\n decode?: (data: string, topics?: Array) => any;\n\n // A function that will remove the listener responsible for this event (if any)\n removeListener: () => void;\n\n // Get blockchain details about this event's block and transaction\n getBlock: () => Promise;\n getTransaction: () => Promise;\n getTransactionReceipt: () => Promise;\n}\n\nexport interface ContractReceipt extends TransactionReceipt {\n events?: Array;\n}\n\nexport interface ContractTransaction extends TransactionResponse {\n wait(confirmations?: number): Promise;\n}\n\n///////////////////////////////\n\nconst allowedTransactionKeys: { [ key: string ]: boolean } = {\n chainId: true, data: true, from: true, gasLimit: true, gasPrice:true, nonce: true, to: true, value: true,\n type: true, accessList: true,\n maxFeePerGas: true, maxPriorityFeePerGas: true,\n customData: true,\n ccipReadEnabled: true\n}\n\nasync function resolveName(resolver: Signer | Provider, nameOrPromise: string | Promise): Promise {\n const name = await nameOrPromise;\n\n if (typeof(name) !== \"string\") {\n logger.throwArgumentError(\"invalid address or ENS name\", \"name\", name);\n }\n\n // If it is already an address, just use it (after adding checksum)\n try {\n return getAddress(name);\n } catch (error) { }\n\n if (!resolver) {\n logger.throwError(\"a provider or signer is needed to resolve ENS names\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"resolveName\"\n });\n }\n\n const address = await resolver.resolveName(name);\n\n if (address == null) {\n logger.throwArgumentError(\"resolver or addr is not configured for ENS name\", \"name\", name);\n }\n\n return address;\n}\n\n// Recursively replaces ENS names with promises to resolve the name and resolves all properties\nasync function resolveAddresses(resolver: Signer | Provider, value: any, paramType: ParamType | Array): Promise {\n if (Array.isArray(paramType)) {\n return await Promise.all(paramType.map((paramType, index) => {\n return resolveAddresses(\n resolver,\n ((Array.isArray(value)) ? value[index]: value[paramType.name]),\n paramType\n );\n }));\n }\n\n if (paramType.type === \"address\") {\n return await resolveName(resolver, value);\n }\n\n if (paramType.type === \"tuple\") {\n return await resolveAddresses(resolver, value, paramType.components);\n }\n\n if (paramType.baseType === \"array\") {\n if (!Array.isArray(value)) {\n return Promise.reject(logger.makeError(\"invalid value for array\", Logger.errors.INVALID_ARGUMENT, {\n argument: \"value\",\n value\n }));\n }\n return await Promise.all(value.map((v) => resolveAddresses(resolver, v, paramType.arrayChildren)));\n }\n\n return value;\n}\n\nasync function populateTransaction(contract: Contract, fragment: FunctionFragment, args: Array): Promise {\n // If an extra argument is given, it is overrides\n let overrides: CallOverrides = { };\n if (args.length === fragment.inputs.length + 1 && typeof(args[args.length - 1]) === \"object\") {\n overrides = shallowCopy(args.pop());\n }\n\n // Make sure the parameter count matches\n logger.checkArgumentCount(args.length, fragment.inputs.length, \"passed to contract\");\n\n // Populate \"from\" override (allow promises)\n if (contract.signer) {\n if (overrides.from) {\n // Contracts with a Signer are from the Signer's frame-of-reference;\n // but we allow overriding \"from\" if it matches the signer\n overrides.from = resolveProperties({\n override: resolveName(contract.signer, overrides.from),\n signer: contract.signer.getAddress()\n }).then(async (check) => {\n if (getAddress(check.signer) !== check.override) {\n logger.throwError(\"Contract with a Signer cannot override from\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"overrides.from\"\n });\n }\n\n return check.override;\n });\n\n } else {\n overrides.from = contract.signer.getAddress();\n }\n\n } else if (overrides.from) {\n overrides.from = resolveName(contract.provider, overrides.from);\n\n //} else {\n // Contracts without a signer can override \"from\", and if\n // unspecified the zero address is used\n //overrides.from = AddressZero;\n }\n\n // Wait for all dependencies to be resolved (prefer the signer over the provider)\n const resolved = await resolveProperties({\n args: resolveAddresses(contract.signer || contract.provider, args, fragment.inputs),\n address: contract.resolvedAddress,\n overrides: (resolveProperties(overrides) || { })\n });\n\n // The ABI coded transaction\n const data = contract.interface.encodeFunctionData(fragment, resolved.args);\n const tx: PopulatedTransaction = {\n data: data,\n to: resolved.address\n };\n\n // Resolved Overrides\n const ro = resolved.overrides;\n\n // Populate simple overrides\n if (ro.nonce != null) { tx.nonce = BigNumber.from(ro.nonce).toNumber(); }\n if (ro.gasLimit != null) { tx.gasLimit = BigNumber.from(ro.gasLimit); }\n if (ro.gasPrice != null) { tx.gasPrice = BigNumber.from(ro.gasPrice); }\n if (ro.maxFeePerGas != null) { tx.maxFeePerGas = BigNumber.from(ro.maxFeePerGas); }\n if (ro.maxPriorityFeePerGas != null) { tx.maxPriorityFeePerGas = BigNumber.from(ro.maxPriorityFeePerGas); }\n if (ro.from != null) { tx.from = ro.from; }\n\n if (ro.type != null) { tx.type = ro.type; }\n if (ro.accessList != null) { tx.accessList = accessListify(ro.accessList); }\n\n // If there was no \"gasLimit\" override, but the ABI specifies a default, use it\n if (tx.gasLimit == null && fragment.gas != null) {\n // Compute the intrinsic gas cost for this transaction\n // @TODO: This is based on the yellow paper as of Petersburg; this is something\n // we may wish to parameterize in v6 as part of the Network object. Since this\n // is always a non-nil to address, we can ignore G_create, but may wish to add\n // similar logic to the ContractFactory.\n let intrinsic = 21000;\n const bytes = arrayify(data);\n for (let i = 0; i < bytes.length; i++) {\n intrinsic += 4;\n if (bytes[i]) { intrinsic += 64; }\n }\n tx.gasLimit = BigNumber.from(fragment.gas).add(intrinsic);\n }\n\n // Populate \"value\" override\n if (ro.value) {\n const roValue = BigNumber.from(ro.value);\n if (!roValue.isZero() && !fragment.payable) {\n logger.throwError(\"non-payable method cannot override value\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"overrides.value\",\n value: overrides.value\n });\n }\n tx.value = roValue;\n }\n\n if (ro.customData) {\n tx.customData = shallowCopy(ro.customData);\n }\n\n if (ro.ccipReadEnabled) {\n tx.ccipReadEnabled = !!ro.ccipReadEnabled;\n }\n\n // Remove the overrides\n delete overrides.nonce;\n delete overrides.gasLimit;\n delete overrides.gasPrice;\n delete overrides.from;\n delete overrides.value;\n\n delete overrides.type;\n delete overrides.accessList;\n\n delete overrides.maxFeePerGas;\n delete overrides.maxPriorityFeePerGas;\n\n delete overrides.customData;\n delete overrides.ccipReadEnabled;\n\n // Make sure there are no stray overrides, which may indicate a\n // typo or using an unsupported key.\n const leftovers = Object.keys(overrides).filter((key) => ((overrides)[key] != null));\n if (leftovers.length) {\n logger.throwError(`cannot override ${ leftovers.map((l) => JSON.stringify(l)).join(\",\") }`, Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"overrides\",\n overrides: leftovers\n });\n }\n\n return tx;\n}\n\n\nfunction buildPopulate(contract: Contract, fragment: FunctionFragment): ContractFunction {\n return function(...args: Array): Promise {\n return populateTransaction(contract, fragment, args);\n };\n}\n\nfunction buildEstimate(contract: Contract, fragment: FunctionFragment): ContractFunction {\n const signerOrProvider = (contract.signer || contract.provider);\n return async function(...args: Array): Promise {\n if (!signerOrProvider) {\n logger.throwError(\"estimate require a provider or signer\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"estimateGas\"\n })\n }\n\n const tx = await populateTransaction(contract, fragment, args);\n return await signerOrProvider.estimateGas(tx);\n };\n}\n\nfunction addContractWait(contract: Contract, tx: TransactionResponse) {\n const wait = tx.wait.bind(tx);\n tx.wait = (confirmations?: number) => {\n return wait(confirmations).then((receipt: ContractReceipt) => {\n receipt.events = receipt.logs.map((log) => {\n let event: Event = (deepCopy(log));\n let parsed: LogDescription = null;\n try {\n parsed = contract.interface.parseLog(log);\n } catch (e){ }\n\n // Successfully parsed the event log; include it\n if (parsed) {\n event.args = parsed.args;\n event.decode = (data: BytesLike, topics?: Array) => {\n return contract.interface.decodeEventLog(parsed.eventFragment, data, topics);\n };\n event.event = parsed.name;\n event.eventSignature = parsed.signature;\n }\n\n // Useful operations\n event.removeListener = () => { return contract.provider; }\n event.getBlock = () => {\n return contract.provider.getBlock(receipt.blockHash);\n }\n event.getTransaction = () => {\n return contract.provider.getTransaction(receipt.transactionHash);\n }\n event.getTransactionReceipt = () => {\n return Promise.resolve(receipt);\n }\n\n return event;\n });\n\n return receipt;\n });\n };\n}\n\nfunction buildCall(contract: Contract, fragment: FunctionFragment, collapseSimple: boolean): ContractFunction {\n const signerOrProvider = (contract.signer || contract.provider);\n\n return async function(...args: Array): Promise {\n // Extract the \"blockTag\" override if present\n let blockTag = undefined;\n if (args.length === fragment.inputs.length + 1 && typeof(args[args.length - 1]) === \"object\") {\n const overrides = shallowCopy(args.pop());\n if (overrides.blockTag != null) {\n blockTag = await overrides.blockTag;\n }\n delete overrides.blockTag;\n args.push(overrides);\n }\n\n // If the contract was just deployed, wait until it is mined\n if (contract.deployTransaction != null) {\n await contract._deployed(blockTag);\n }\n\n // Call a node and get the result\n const tx = await populateTransaction(contract, fragment, args);\n const result = await signerOrProvider.call(tx, blockTag);\n\n try {\n let value = contract.interface.decodeFunctionResult(fragment, result);\n if (collapseSimple && fragment.outputs.length === 1) {\n value = value[0];\n }\n return value;\n\n } catch (error) {\n if (error.code === Logger.errors.CALL_EXCEPTION) {\n error.address = contract.address;\n error.args = args;\n error.transaction = tx;\n }\n throw error;\n }\n };\n}\n\nfunction buildSend(contract: Contract, fragment: FunctionFragment): ContractFunction {\n return async function(...args: Array): Promise {\n if (!contract.signer) {\n logger.throwError(\"sending a transaction requires a signer\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"sendTransaction\"\n })\n }\n\n // If the contract was just deployed, wait until it is mined\n if (contract.deployTransaction != null) {\n await contract._deployed();\n }\n\n const txRequest = await populateTransaction(contract, fragment, args);\n\n const tx = await contract.signer.sendTransaction(txRequest);\n\n // Tweak the tx.wait so the receipt has extra properties\n addContractWait(contract, tx);\n\n return tx;\n };\n}\n\nfunction buildDefault(contract: Contract, fragment: FunctionFragment, collapseSimple: boolean): ContractFunction {\n if (fragment.constant) {\n return buildCall(contract, fragment, collapseSimple);\n }\n return buildSend(contract, fragment);\n}\n\nfunction getEventTag(filter: EventFilter): string {\n if (filter.address && (filter.topics == null || filter.topics.length === 0)) {\n return \"*\";\n }\n\n return (filter.address || \"*\") + \"@\" + (filter.topics ? filter.topics.map((topic) => {\n if (Array.isArray(topic)) {\n return topic.join(\"|\");\n }\n return topic;\n }).join(\":\"): \"\");\n}\n\nclass RunningEvent {\n readonly tag: string;\n readonly filter: EventFilter;\n private _listeners: Array<{ listener: Listener, once: boolean }>;\n\n constructor(tag: string, filter: EventFilter) {\n defineReadOnly(this, \"tag\", tag);\n defineReadOnly(this, \"filter\", filter);\n this._listeners = [ ];\n }\n\n addListener(listener: Listener, once: boolean): void {\n this._listeners.push({ listener: listener, once: once });\n }\n\n removeListener(listener: Listener): void {\n let done = false;\n this._listeners = this._listeners.filter((item) => {\n if (done || item.listener !== listener) { return true; }\n done = true;\n return false;\n });\n }\n\n removeAllListeners(): void {\n this._listeners = [];\n }\n\n listeners(): Array {\n return this._listeners.map((i) => i.listener);\n }\n\n listenerCount(): number {\n return this._listeners.length;\n }\n\n run(args: Array): number {\n const listenerCount = this.listenerCount();\n this._listeners = this._listeners.filter((item) => {\n\n const argsCopy = args.slice();\n\n // Call the callback in the next event loop\n setTimeout(() => {\n item.listener.apply(this, argsCopy);\n }, 0);\n\n // Reschedule it if it not \"once\"\n return !(item.once);\n });\n\n return listenerCount;\n }\n\n prepareEvent(event: Event): void {\n }\n\n // Returns the array that will be applied to an emit\n getEmit(event: Event): Array {\n return [ event ];\n }\n}\n\nclass ErrorRunningEvent extends RunningEvent {\n constructor() {\n super(\"error\", null);\n }\n}\n\n\n// @TODO Fragment should inherit Wildcard? and just override getEmit?\n// or have a common abstract super class, with enough constructor\n// options to configure both.\n\n// A Fragment Event will populate all the properties that Wildcard\n// will, and additionally dereference the arguments when emitting\nclass FragmentRunningEvent extends RunningEvent {\n readonly address: string;\n readonly interface: Interface;\n readonly fragment: EventFragment;\n\n constructor(address: string, contractInterface: Interface, fragment: EventFragment, topics?: Array>) {\n const filter: EventFilter = {\n address: address\n }\n\n let topic = contractInterface.getEventTopic(fragment);\n if (topics) {\n if (topic !== topics[0]) { logger.throwArgumentError(\"topic mismatch\", \"topics\", topics); }\n filter.topics = topics.slice();\n } else {\n filter.topics = [ topic ];\n }\n\n super(getEventTag(filter), filter);\n defineReadOnly(this, \"address\", address);\n defineReadOnly(this, \"interface\", contractInterface);\n defineReadOnly(this, \"fragment\", fragment);\n }\n\n\n prepareEvent(event: Event): void {\n super.prepareEvent(event);\n\n event.event = this.fragment.name;\n event.eventSignature = this.fragment.format();\n\n event.decode = (data: BytesLike, topics?: Array) => {\n return this.interface.decodeEventLog(this.fragment, data, topics);\n };\n\n try {\n event.args = this.interface.decodeEventLog(this.fragment, event.data, event.topics);\n } catch (error) {\n event.args = null;\n event.decodeError = error;\n }\n }\n\n getEmit(event: Event): Array {\n const errors = checkResultErrors(event.args);\n if (errors.length) { throw errors[0].error; }\n\n const args = (event.args || []).slice();\n args.push(event);\n return args;\n }\n}\n\n// A Wildcard Event will attempt to populate:\n// - event The name of the event name\n// - eventSignature The full signature of the event\n// - decode A function to decode data and topics\n// - args The decoded data and topics\nclass WildcardRunningEvent extends RunningEvent {\n readonly address: string;\n readonly interface: Interface;\n\n constructor(address: string, contractInterface: Interface) {\n super(\"*\", { address: address });\n defineReadOnly(this, \"address\", address);\n defineReadOnly(this, \"interface\", contractInterface);\n }\n\n prepareEvent(event: Event): void {\n super.prepareEvent(event);\n\n try {\n const parsed = this.interface.parseLog(event);\n event.event = parsed.name;\n event.eventSignature = parsed.signature;\n\n event.decode = (data: BytesLike, topics?: Array) => {\n return this.interface.decodeEventLog(parsed.eventFragment, data, topics);\n };\n\n event.args = parsed.args;\n } catch (error) {\n // No matching event\n }\n }\n}\n\nexport type ContractInterface = string | ReadonlyArray | Interface;\n\ntype InterfaceFunc = (contractInterface: ContractInterface) => Interface;\n\n\nexport class BaseContract {\n readonly address: string;\n readonly interface: Interface;\n\n readonly signer: Signer;\n readonly provider: Provider;\n\n readonly functions: { [ name: string ]: ContractFunction };\n\n readonly callStatic: { [ name: string ]: ContractFunction };\n readonly estimateGas: { [ name: string ]: ContractFunction };\n readonly populateTransaction: { [ name: string ]: ContractFunction };\n\n readonly filters: { [ name: string ]: (...args: Array) => EventFilter };\n\n // This will always be an address. This will only differ from\n // address if an ENS name was used in the constructor\n readonly resolvedAddress: Promise;\n\n // This is only set if the contract was created with a call to deploy\n readonly deployTransaction: TransactionResponse;\n\n _deployedPromise: Promise;\n\n // A list of RunningEvents to track listeners for each event tag\n _runningEvents: { [ eventTag: string ]: RunningEvent };\n\n // Wrapped functions to call emit and allow deregistration from the provider\n _wrappedEmits: { [ eventTag: string ]: (...args: Array) => void };\n\n constructor(addressOrName: string, contractInterface: ContractInterface, signerOrProvider?: Signer | Provider) {\n // @TODO: Maybe still check the addressOrName looks like a valid address or name?\n //address = getAddress(address);\n defineReadOnly(this, \"interface\", getStatic(new.target, \"getInterface\")(contractInterface));\n\n if (signerOrProvider == null) {\n defineReadOnly(this, \"provider\", null);\n defineReadOnly(this, \"signer\", null);\n } else if (Signer.isSigner(signerOrProvider)) {\n defineReadOnly(this, \"provider\", signerOrProvider.provider || null);\n defineReadOnly(this, \"signer\", signerOrProvider);\n } else if (Provider.isProvider(signerOrProvider)) {\n defineReadOnly(this, \"provider\", signerOrProvider);\n defineReadOnly(this, \"signer\", null);\n } else {\n logger.throwArgumentError(\"invalid signer or provider\", \"signerOrProvider\", signerOrProvider);\n }\n\n defineReadOnly(this, \"callStatic\", { });\n defineReadOnly(this, \"estimateGas\", { });\n defineReadOnly(this, \"functions\", { });\n defineReadOnly(this, \"populateTransaction\", { });\n\n defineReadOnly(this, \"filters\", { });\n\n {\n const uniqueFilters: { [ name: string ]: Array } = { };\n Object.keys(this.interface.events).forEach((eventSignature) => {\n const event = this.interface.events[eventSignature];\n defineReadOnly(this.filters, eventSignature, (...args: Array) => {\n return {\n address: this.address,\n topics: this.interface.encodeFilterTopics(event, args)\n }\n });\n if (!uniqueFilters[event.name]) { uniqueFilters[event.name] = [ ]; }\n uniqueFilters[event.name].push(eventSignature);\n });\n\n Object.keys(uniqueFilters).forEach((name) => {\n const filters = uniqueFilters[name];\n if (filters.length === 1) {\n defineReadOnly(this.filters, name, this.filters[filters[0]]);\n } else {\n logger.warn(`Duplicate definition of ${ name } (${ filters.join(\", \")})`);\n }\n });\n }\n\n defineReadOnly(this, \"_runningEvents\", { });\n defineReadOnly(this, \"_wrappedEmits\", { });\n\n if (addressOrName == null) {\n logger.throwArgumentError(\"invalid contract address or ENS name\", \"addressOrName\", addressOrName);\n }\n\n defineReadOnly(this, \"address\", addressOrName);\n if (this.provider) {\n defineReadOnly(this, \"resolvedAddress\", resolveName(this.provider, addressOrName));\n } else {\n try {\n defineReadOnly(this, \"resolvedAddress\", Promise.resolve(getAddress(addressOrName)));\n } catch (error) {\n // Without a provider, we cannot use ENS names\n logger.throwError(\"provider is required to use ENS name as contract address\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"new Contract\"\n });\n }\n }\n\n // Swallow bad ENS names to prevent Unhandled Exceptions\n this.resolvedAddress.catch((e) => { });\n\n const uniqueNames: { [ name: string ]: Array } = { };\n const uniqueSignatures: { [ signature: string ]: boolean } = { };\n Object.keys(this.interface.functions).forEach((signature) => {\n const fragment = this.interface.functions[signature];\n\n // Check that the signature is unique; if not the ABI generation has\n // not been cleaned or may be incorrectly generated\n if (uniqueSignatures[signature]) {\n logger.warn(`Duplicate ABI entry for ${ JSON.stringify(signature) }`);\n return;\n }\n uniqueSignatures[signature] = true;\n\n // Track unique names; we only expose bare named functions if they\n // are ambiguous\n {\n const name = fragment.name;\n if (!uniqueNames[`%${ name }`]) { uniqueNames[`%${ name }`] = [ ]; }\n uniqueNames[`%${ name }`].push(signature);\n }\n\n if ((this)[signature] == null) {\n defineReadOnly(this, signature, buildDefault(this, fragment, true));\n }\n\n // We do not collapse simple calls on this bucket, which allows\n // frameworks to safely use this without introspection as well as\n // allows decoding error recovery.\n if (this.functions[signature] == null) {\n defineReadOnly(this.functions, signature, buildDefault(this, fragment, false));\n }\n\n if (this.callStatic[signature] == null) {\n defineReadOnly(this.callStatic, signature, buildCall(this, fragment, true));\n }\n\n if (this.populateTransaction[signature] == null) {\n defineReadOnly(this.populateTransaction, signature, buildPopulate(this, fragment));\n }\n\n if (this.estimateGas[signature] == null) {\n defineReadOnly(this.estimateGas, signature, buildEstimate(this, fragment));\n }\n });\n\n Object.keys(uniqueNames).forEach((name) => {\n // Ambiguous names to not get attached as bare names\n const signatures = uniqueNames[name];\n if (signatures.length > 1) { return; }\n\n // Strip off the leading \"%\" used for prototype protection\n name = name.substring(1);\n\n const signature = signatures[0];\n\n // If overwriting a member property that is null, swallow the error\n try {\n if ((this)[name] == null) {\n defineReadOnly(this, name, (this)[signature]);\n }\n } catch (e) { }\n\n if (this.functions[name] == null) {\n defineReadOnly(this.functions, name, this.functions[signature]);\n }\n\n if (this.callStatic[name] == null) {\n defineReadOnly(this.callStatic, name, this.callStatic[signature]);\n }\n\n if (this.populateTransaction[name] == null) {\n defineReadOnly(this.populateTransaction, name, this.populateTransaction[signature]);\n }\n\n if (this.estimateGas[name] == null) {\n defineReadOnly(this.estimateGas, name, this.estimateGas[signature]);\n }\n });\n }\n\n static getContractAddress(transaction: { from: string, nonce: BigNumberish }): string {\n return getContractAddress(transaction);\n }\n\n static getInterface(contractInterface: ContractInterface): Interface {\n if (Interface.isInterface(contractInterface)) {\n return contractInterface;\n }\n return new Interface(contractInterface);\n }\n\n // @TODO: Allow timeout?\n deployed(): Promise {\n return this._deployed();\n }\n\n _deployed(blockTag?: BlockTag): Promise {\n if (!this._deployedPromise) {\n\n // If we were just deployed, we know the transaction we should occur in\n if (this.deployTransaction) {\n this._deployedPromise = this.deployTransaction.wait().then(() => {\n return this;\n });\n\n } else {\n // @TODO: Once we allow a timeout to be passed in, we will wait\n // up to that many blocks for getCode\n\n // Otherwise, poll for our code to be deployed\n this._deployedPromise = this.provider.getCode(this.address, blockTag).then((code) => {\n if (code === \"0x\") {\n logger.throwError(\"contract not deployed\", Logger.errors.UNSUPPORTED_OPERATION, {\n contractAddress: this.address,\n operation: \"getDeployed\"\n });\n }\n return this;\n });\n }\n }\n\n return this._deployedPromise;\n }\n\n // @TODO:\n // estimateFallback(overrides?: TransactionRequest): Promise\n\n // @TODO:\n // estimateDeploy(bytecode: string, ...args): Promise\n\n fallback(overrides?: TransactionRequest): Promise {\n if (!this.signer) {\n logger.throwError(\"sending a transactions require a signer\", Logger.errors.UNSUPPORTED_OPERATION, { operation: \"sendTransaction(fallback)\" })\n }\n\n const tx: Deferrable = shallowCopy(overrides || {});\n\n [\"from\", \"to\"].forEach(function(key) {\n if ((tx)[key] == null) { return; }\n logger.throwError(\"cannot override \" + key, Logger.errors.UNSUPPORTED_OPERATION, { operation: key })\n });\n\n tx.to = this.resolvedAddress;\n return this.deployed().then(() => {\n return this.signer.sendTransaction(tx);\n });\n }\n\n // Reconnect to a different signer or provider\n connect(signerOrProvider: Signer | Provider | string): Contract {\n if (typeof(signerOrProvider) === \"string\") {\n signerOrProvider = new VoidSigner(signerOrProvider, this.provider);\n }\n\n const contract = new (<{ new(...args: any[]): Contract }>(this.constructor))(this.address, this.interface, signerOrProvider);\n if (this.deployTransaction) {\n defineReadOnly(contract, \"deployTransaction\", this.deployTransaction);\n }\n\n return contract;\n }\n\n // Re-attach to a different on-chain instance of this contract\n attach(addressOrName: string): Contract {\n return new (<{ new(...args: any[]): Contract }>(this.constructor))(addressOrName, this.interface, this.signer || this.provider);\n }\n\n static isIndexed(value: any): value is Indexed {\n return Indexed.isIndexed(value);\n }\n\n private _normalizeRunningEvent(runningEvent: RunningEvent): RunningEvent {\n // Already have an instance of this event running; we can re-use it\n if (this._runningEvents[runningEvent.tag]) {\n return this._runningEvents[runningEvent.tag];\n }\n return runningEvent\n }\n\n private _getRunningEvent(eventName: EventFilter | string): RunningEvent {\n if (typeof(eventName) === \"string\") {\n\n // Listen for \"error\" events (if your contract has an error event, include\n // the full signature to bypass this special event keyword)\n if (eventName === \"error\") {\n return this._normalizeRunningEvent(new ErrorRunningEvent());\n }\n\n // Listen for any event that is registered\n if (eventName === \"event\") {\n return this._normalizeRunningEvent(new RunningEvent(\"event\", null));\n }\n\n // Listen for any event\n if (eventName === \"*\") {\n return this._normalizeRunningEvent(new WildcardRunningEvent(this.address, this.interface));\n }\n\n // Get the event Fragment (throws if ambiguous/unknown event)\n const fragment = this.interface.getEvent(eventName)\n return this._normalizeRunningEvent(new FragmentRunningEvent(this.address, this.interface, fragment));\n }\n\n // We have topics to filter by...\n if (eventName.topics && eventName.topics.length > 0) {\n\n // Is it a known topichash? (throws if no matching topichash)\n try {\n const topic = eventName.topics[0];\n if (typeof(topic) !== \"string\") {\n throw new Error(\"invalid topic\"); // @TODO: May happen for anonymous events\n }\n const fragment = this.interface.getEvent(topic);\n return this._normalizeRunningEvent(new FragmentRunningEvent(this.address, this.interface, fragment, eventName.topics));\n } catch (error) { }\n\n // Filter by the unknown topichash\n const filter: EventFilter = {\n address: this.address,\n topics: eventName.topics\n }\n\n return this._normalizeRunningEvent(new RunningEvent(getEventTag(filter), filter));\n }\n\n return this._normalizeRunningEvent(new WildcardRunningEvent(this.address, this.interface));\n }\n\n _checkRunningEvents(runningEvent: RunningEvent): void {\n if (runningEvent.listenerCount() === 0) {\n delete this._runningEvents[runningEvent.tag];\n\n // If we have a poller for this, remove it\n const emit = this._wrappedEmits[runningEvent.tag];\n if (emit && runningEvent.filter) {\n this.provider.off(runningEvent.filter, emit);\n delete this._wrappedEmits[runningEvent.tag];\n }\n }\n }\n\n // Subclasses can override this to gracefully recover\n // from parse errors if they wish\n _wrapEvent(runningEvent: RunningEvent, log: Log, listener: Listener): Event {\n const event = deepCopy(log);\n\n event.removeListener = () => {\n if (!listener) { return; }\n runningEvent.removeListener(listener);\n this._checkRunningEvents(runningEvent);\n };\n\n event.getBlock = () => { return this.provider.getBlock(log.blockHash); }\n event.getTransaction = () => { return this.provider.getTransaction(log.transactionHash); }\n event.getTransactionReceipt = () => { return this.provider.getTransactionReceipt(log.transactionHash); }\n\n // This may throw if the topics and data mismatch the signature\n runningEvent.prepareEvent(event);\n\n return event;\n }\n\n private _addEventListener(runningEvent: RunningEvent, listener: Listener, once: boolean): void {\n if (!this.provider) {\n logger.throwError(\"events require a provider or a signer with a provider\", Logger.errors.UNSUPPORTED_OPERATION, { operation: \"once\" })\n }\n\n runningEvent.addListener(listener, once);\n\n // Track this running event and its listeners (may already be there; but no hard in updating)\n this._runningEvents[runningEvent.tag] = runningEvent;\n\n // If we are not polling the provider, start polling\n if (!this._wrappedEmits[runningEvent.tag]) {\n const wrappedEmit = (log: Log) => {\n let event = this._wrapEvent(runningEvent, log, listener);\n\n // Try to emit the result for the parameterized event...\n if (event.decodeError == null) {\n try {\n const args = runningEvent.getEmit(event);\n this.emit(runningEvent.filter, ...args);\n } catch (error) {\n event.decodeError = error.error;\n }\n }\n\n // Always emit \"event\" for fragment-base events\n if (runningEvent.filter != null) {\n this.emit(\"event\", event);\n }\n\n // Emit \"error\" if there was an error\n if (event.decodeError != null) {\n this.emit(\"error\", event.decodeError, event);\n }\n };\n this._wrappedEmits[runningEvent.tag] = wrappedEmit;\n\n // Special events, like \"error\" do not have a filter\n if (runningEvent.filter != null) {\n this.provider.on(runningEvent.filter, wrappedEmit);\n }\n }\n }\n\n queryFilter(event: EventFilter | string, fromBlockOrBlockhash?: BlockTag | string, toBlock?: BlockTag): Promise> {\n const runningEvent = this._getRunningEvent(event);\n const filter = shallowCopy(runningEvent.filter);\n\n if (typeof(fromBlockOrBlockhash) === \"string\" && isHexString(fromBlockOrBlockhash, 32)) {\n if (toBlock != null) {\n logger.throwArgumentError(\"cannot specify toBlock with blockhash\", \"toBlock\", toBlock);\n }\n (filter).blockHash = fromBlockOrBlockhash;\n } else {\n (filter).fromBlock = ((fromBlockOrBlockhash != null) ? fromBlockOrBlockhash: 0);\n (filter).toBlock = ((toBlock != null) ? toBlock: \"latest\");\n }\n\n return this.provider.getLogs(filter).then((logs) => {\n return logs.map((log) => this._wrapEvent(runningEvent, log, null));\n });\n }\n\n on(event: EventFilter | string, listener: Listener): this {\n this._addEventListener(this._getRunningEvent(event), listener, false);\n return this;\n }\n\n once(event: EventFilter | string, listener: Listener): this {\n this._addEventListener(this._getRunningEvent(event), listener, true);\n return this;\n }\n\n emit(eventName: EventFilter | string, ...args: Array): boolean {\n if (!this.provider) { return false; }\n\n const runningEvent = this._getRunningEvent(eventName);\n const result = (runningEvent.run(args) > 0);\n\n // May have drained all the \"once\" events; check for living events\n this._checkRunningEvents(runningEvent);\n\n return result;\n }\n\n listenerCount(eventName?: EventFilter | string): number {\n if (!this.provider) { return 0; }\n if (eventName == null) {\n return Object.keys(this._runningEvents).reduce((accum, key) => {\n return accum + this._runningEvents[key].listenerCount();\n }, 0);\n }\n return this._getRunningEvent(eventName).listenerCount();\n }\n\n listeners(eventName?: EventFilter | string): Array {\n if (!this.provider) { return []; }\n\n if (eventName == null) {\n const result: Array = [ ];\n for (let tag in this._runningEvents) {\n this._runningEvents[tag].listeners().forEach((listener) => {\n result.push(listener)\n });\n }\n return result;\n }\n\n return this._getRunningEvent(eventName).listeners();\n }\n\n removeAllListeners(eventName?: EventFilter | string): this {\n if (!this.provider) { return this; }\n\n if (eventName == null) {\n for (const tag in this._runningEvents) {\n const runningEvent = this._runningEvents[tag];\n runningEvent.removeAllListeners();\n this._checkRunningEvents(runningEvent);\n }\n return this;\n }\n\n // Delete any listeners\n const runningEvent = this._getRunningEvent(eventName);\n runningEvent.removeAllListeners();\n this._checkRunningEvents(runningEvent);\n\n return this;\n }\n\n off(eventName: EventFilter | string, listener: Listener): this {\n if (!this.provider) { return this; }\n const runningEvent = this._getRunningEvent(eventName);\n runningEvent.removeListener(listener);\n this._checkRunningEvents(runningEvent);\n return this;\n }\n\n removeListener(eventName: EventFilter | string, listener: Listener): this {\n return this.off(eventName, listener);\n }\n\n}\n\nexport class Contract extends BaseContract {\n // The meta-class properties\n readonly [ key: string ]: ContractFunction | any;\n}\n\nexport class ContractFactory {\n\n readonly interface: Interface;\n readonly bytecode: string;\n readonly signer: Signer;\n\n constructor(contractInterface: ContractInterface, bytecode: BytesLike | { object: string }, signer?: Signer) {\n\n let bytecodeHex: string = null;\n\n if (typeof(bytecode) === \"string\") {\n bytecodeHex = bytecode;\n } else if (isBytes(bytecode)) {\n bytecodeHex = hexlify(bytecode);\n } else if (bytecode && typeof(bytecode.object) === \"string\") {\n // Allow the bytecode object from the Solidity compiler\n bytecodeHex = (bytecode).object;\n } else {\n // Crash in the next verification step\n bytecodeHex = \"!\";\n }\n\n // Make sure it is 0x prefixed\n if (bytecodeHex.substring(0, 2) !== \"0x\") { bytecodeHex = \"0x\" + bytecodeHex; }\n\n // Make sure the final result is valid bytecode\n if (!isHexString(bytecodeHex) || (bytecodeHex.length % 2)) {\n logger.throwArgumentError(\"invalid bytecode\", \"bytecode\", bytecode);\n }\n\n // If we have a signer, make sure it is valid\n if (signer && !Signer.isSigner(signer)) {\n logger.throwArgumentError(\"invalid signer\", \"signer\", signer);\n }\n\n defineReadOnly(this, \"bytecode\", bytecodeHex);\n defineReadOnly(this, \"interface\", getStatic(new.target, \"getInterface\")(contractInterface));\n defineReadOnly(this, \"signer\", signer || null);\n }\n\n // @TODO: Future; rename to populateTransaction?\n getDeployTransaction(...args: Array): TransactionRequest {\n let tx: TransactionRequest = { };\n\n // If we have 1 additional argument, we allow transaction overrides\n if (args.length === this.interface.deploy.inputs.length + 1 && typeof(args[args.length - 1]) === \"object\") {\n tx = shallowCopy(args.pop());\n for (const key in tx) {\n if (!allowedTransactionKeys[key]) {\n throw new Error(\"unknown transaction override \" + key);\n }\n }\n }\n\n // Do not allow these to be overridden in a deployment transaction\n [\"data\", \"from\", \"to\"].forEach((key) => {\n if ((tx)[key] == null) { return; }\n logger.throwError(\"cannot override \" + key, Logger.errors.UNSUPPORTED_OPERATION, { operation: key })\n });\n\n if (tx.value) {\n const value = BigNumber.from(tx.value);\n if (!value.isZero() && !this.interface.deploy.payable) {\n logger.throwError(\"non-payable constructor cannot override value\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"overrides.value\",\n value: tx.value\n });\n }\n }\n\n // Make sure the call matches the constructor signature\n logger.checkArgumentCount(args.length, this.interface.deploy.inputs.length, \" in Contract constructor\");\n\n // Set the data to the bytecode + the encoded constructor arguments\n tx.data = hexlify(concat([\n this.bytecode,\n this.interface.encodeDeploy(args)\n ]));\n\n return tx\n }\n\n async deploy(...args: Array): Promise {\n\n let overrides: any = { };\n\n // If 1 extra parameter was passed in, it contains overrides\n if (args.length === this.interface.deploy.inputs.length + 1) {\n overrides = args.pop();\n }\n\n // Make sure the call matches the constructor signature\n logger.checkArgumentCount(args.length, this.interface.deploy.inputs.length, \" in Contract constructor\");\n\n // Resolve ENS names and promises in the arguments\n const params = await resolveAddresses(this.signer, args, this.interface.deploy.inputs);\n params.push(overrides);\n\n // Get the deployment transaction (with optional overrides)\n const unsignedTx = this.getDeployTransaction(...params);\n\n // Send the deployment transaction\n const tx = await this.signer.sendTransaction(unsignedTx);\n\n const address = getStatic<(tx: TransactionResponse) => string>(this.constructor, \"getContractAddress\")(tx);\n const contract = getStatic<(address: string, contractInterface: ContractInterface, signer?: Signer) => Contract>(this.constructor, \"getContract\")(address, this.interface, this.signer);\n\n // Add the modified wait that wraps events\n addContractWait(contract, tx);\n\n defineReadOnly(contract, \"deployTransaction\", tx);\n return contract;\n }\n\n attach(address: string): Contract {\n return ((this.constructor)).getContract(address, this.interface, this.signer);\n }\n\n connect(signer: Signer) {\n return new (<{ new(...args: any[]): ContractFactory }>(this.constructor))(this.interface, this.bytecode, signer);\n }\n\n static fromSolidity(compilerOutput: any, signer?: Signer): ContractFactory {\n if (compilerOutput == null) {\n logger.throwError(\"missing compiler output\", Logger.errors.MISSING_ARGUMENT, { argument: \"compilerOutput\" });\n }\n\n if (typeof(compilerOutput) === \"string\") {\n compilerOutput = JSON.parse(compilerOutput);\n }\n\n const abi = compilerOutput.abi;\n\n let bytecode: any = null;\n if (compilerOutput.bytecode) {\n bytecode = compilerOutput.bytecode;\n } else if (compilerOutput.evm && compilerOutput.evm.bytecode) {\n bytecode = compilerOutput.evm.bytecode;\n }\n\n return new this(abi, bytecode, signer);\n }\n\n static getInterface(contractInterface: ContractInterface) {\n return Contract.getInterface(contractInterface);\n }\n\n static getContractAddress(tx: { from: string, nonce: BytesLike | BigNumber | number }): string {\n return getContractAddress(tx);\n }\n\n static getContract(address: string, contractInterface: ContractInterface, signer?: Signer): Contract {\n return new Contract(address, contractInterface, signer);\n }\n}\n", "/**\n * var basex = require(\"base-x\");\n *\n * This implementation is heavily based on base-x. The main reason to\n * deviate was to prevent the dependency of Buffer.\n *\n * Contributors:\n *\n * base-x encoding\n * Forked from https://github.com/cryptocoinjs/bs58\n * Originally written by Mike Hearn for BitcoinJ\n * Copyright (c) 2011 Google Inc\n * Ported to JavaScript by Stefan Thomas\n * Merged Buffer refactorings from base58-native by Stephen Pair\n * Copyright (c) 2013 BitPay Inc\n *\n * The MIT License (MIT)\n *\n * Copyright base-x contributors (c) 2016\n *\n * Permission is hereby granted, free of charge, to any person obtaining a\n * copy of this software and associated documentation files (the \"Software\"),\n * to deal in the Software without restriction, including without limitation\n * the rights to use, copy, modify, merge, publish, distribute, sublicense,\n * and/or sell copies of the Software, and to permit persons to whom the\n * Software is furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n *\n */\n\nimport { arrayify, BytesLike } from \"@ethersproject/bytes\";\nimport { defineReadOnly } from \"@ethersproject/properties\";\n\nexport class BaseX {\n readonly alphabet: string;\n readonly base: number;\n\n _alphabetMap: { [ character: string ]: number };\n _leader: string;\n\n constructor(alphabet: string) {\n defineReadOnly(this, \"alphabet\", alphabet);\n defineReadOnly(this, \"base\", alphabet.length);\n\n defineReadOnly(this, \"_alphabetMap\", { });\n defineReadOnly(this, \"_leader\", alphabet.charAt(0));\n\n // pre-compute lookup table\n for (let i = 0; i < alphabet.length; i++) {\n this._alphabetMap[alphabet.charAt(i)] = i;\n }\n }\n\n encode(value: BytesLike): string {\n let source = arrayify(value);\n\n if (source.length === 0) { return \"\"; }\n\n let digits = [ 0 ]\n for (let i = 0; i < source.length; ++i) {\n let carry = source[i];\n for (let j = 0; j < digits.length; ++j) {\n carry += digits[j] << 8;\n digits[j] = carry % this.base;\n carry = (carry / this.base) | 0;\n }\n\n while (carry > 0) {\n digits.push(carry % this.base);\n carry = (carry / this.base) | 0;\n }\n }\n\n let string = \"\"\n\n // deal with leading zeros\n for (let k = 0; source[k] === 0 && k < source.length - 1; ++k) {\n string += this._leader;\n }\n\n // convert digits to a string\n for (let q = digits.length - 1; q >= 0; --q) {\n string += this.alphabet[digits[q]];\n }\n\n return string;\n }\n\n decode(value: string): Uint8Array {\n if (typeof(value) !== \"string\") {\n throw new TypeError(\"Expected String\");\n }\n\n let bytes: Array = [];\n if (value.length === 0) { return new Uint8Array(bytes); }\n\n bytes.push(0);\n for (let i = 0; i < value.length; i++) {\n let byte = this._alphabetMap[value[i]];\n\n if (byte === undefined) {\n throw new Error(\"Non-base\" + this.base + \" character\");\n }\n\n let carry = byte;\n for (let j = 0; j < bytes.length; ++j) {\n carry += bytes[j] * this.base;\n bytes[j] = carry & 0xff;\n carry >>= 8;\n }\n\n while (carry > 0) {\n bytes.push(carry & 0xff);\n carry >>= 8;\n }\n }\n\n // deal with leading zeros\n for (let k = 0; value[k] === this._leader && k < value.length - 1; ++k) {\n bytes.push(0)\n }\n\n return arrayify(new Uint8Array(bytes.reverse()))\n }\n}\n\nconst Base32 = new BaseX(\"abcdefghijklmnopqrstuvwxyz234567\");\nconst Base58 = new BaseX(\"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz\");\n\nexport { Base32, Base58 };\n\n//console.log(Base58.decode(\"Qmd2V777o5XvJbYMeMb8k2nU5f8d3ciUQ5YpYuWhzv8iDj\"))\n//console.log(Base58.encode(Base58.decode(\"Qmd2V777o5XvJbYMeMb8k2nU5f8d3ciUQ5YpYuWhzv8iDj\")))\n", "\"use strict\";\n\nimport { pbkdf2Sync as _pbkdf2 } from \"crypto\";\n\nimport { arrayify, BytesLike, hexlify } from \"@ethersproject/bytes\";\n\n\nfunction bufferify(value: BytesLike): Buffer {\n return Buffer.from(arrayify(value));\n}\n\nexport function pbkdf2(password: BytesLike, salt: BytesLike, iterations: number, keylen: number, hashAlgorithm: string): string {\n return hexlify(_pbkdf2(bufferify(password), bufferify(salt), iterations, keylen, hashAlgorithm));\n}\n", "\nexport { pbkdf2 } from \"./pbkdf2\";\n", "export enum SupportedAlgorithm { sha256 = \"sha256\", sha512 = \"sha512\" };\n\n", "export const version = \"sha2/5.7.0\";\n", "\"use strict\";\n\nimport { createHash, createHmac } from \"crypto\";\n\nimport hash from \"hash.js\";\n\nimport { arrayify, BytesLike } from \"@ethersproject/bytes\";\n\nimport { SupportedAlgorithm } from \"./types\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\nexport function ripemd160(data: BytesLike): string {\n return \"0x\" + (hash.ripemd160().update(arrayify(data)).digest(\"hex\"));\n}\n\nexport function sha256(data: BytesLike): string {\n return \"0x\" + createHash(\"sha256\").update(Buffer.from(arrayify(data))).digest(\"hex\")\n}\n\nexport function sha512(data: BytesLike): string {\n return \"0x\" + createHash(\"sha512\").update(Buffer.from(arrayify(data))).digest(\"hex\")\n}\n\nexport function computeHmac(algorithm: SupportedAlgorithm, key: BytesLike, data: BytesLike): string {\n /* istanbul ignore if */\n if (!SupportedAlgorithm[algorithm]) {\n logger.throwError(\"unsupported algorithm - \" + algorithm, Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"computeHmac\",\n algorithm: algorithm\n });\n }\n\n return \"0x\" + createHmac(algorithm, Buffer.from(arrayify(key))).update(Buffer.from(arrayify(data))).digest(\"hex\");\n}\n\n", "import { computeHmac, ripemd160, sha256, sha512 } from \"./sha2\";\n\nimport { SupportedAlgorithm } from \"./types\";\n\nexport {\n computeHmac,\n\n ripemd160,\n\n sha256,\n sha512,\n\n SupportedAlgorithm\n}\n", "export const version = \"wordlists/5.7.0\";\n", "\"use strict\";\n\n// This gets overridden by rollup\nconst exportWordlist = false;\n\nimport { id } from \"@ethersproject/hash\";\nimport { defineReadOnly } from \"@ethersproject/properties\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nexport const logger = new Logger(version);\n\nexport abstract class Wordlist {\n readonly locale: string;\n\n constructor(locale: string) {\n logger.checkAbstract(new.target, Wordlist);\n defineReadOnly(this, \"locale\", locale);\n }\n\n abstract getWord(index: number): string;\n abstract getWordIndex(word: string): number;\n\n // Subclasses may override this\n split(mnemonic: string): Array {\n return mnemonic.toLowerCase().split(/ +/g)\n }\n\n // Subclasses may override this\n join(words: Array): string {\n return words.join(\" \");\n }\n\n static check(wordlist: Wordlist): string {\n const words = [];\n for (let i = 0; i < 2048; i++) {\n const word = wordlist.getWord(i);\n /* istanbul ignore if */\n if (i !== wordlist.getWordIndex(word)) { return \"0x\"; }\n words.push(word);\n }\n return id(words.join(\"\\n\") + \"\\n\");\n }\n\n static register(lang: Wordlist, name?: string): void {\n if (!name) { name = lang.locale; }\n\n /* istanbul ignore if */\n if (exportWordlist) {\n try {\n const anyGlobal = (window as any)\n if (anyGlobal._ethers && anyGlobal._ethers.wordlists) {\n if (!anyGlobal._ethers.wordlists[name]) {\n defineReadOnly(anyGlobal._ethers.wordlists, name, lang);\n }\n }\n } catch (error) { }\n }\n }\n\n}\n\n", "\"use strict\";\n\nimport { Wordlist } from \"./wordlist\";\n\nconst words = \"AbdikaceAbecedaAdresaAgreseAkceAktovkaAlejAlkoholAmputaceAnanasAndulkaAnekdotaAnketaAntikaAnulovatArchaAroganceAsfaltAsistentAspiraceAstmaAstronomAtlasAtletikaAtolAutobusAzylBabkaBachorBacilBaculkaBadatelBagetaBagrBahnoBakterieBaladaBaletkaBalkonBalonekBalvanBalzaBambusBankomatBarbarBaretBarmanBarokoBarvaBaterkaBatohBavlnaBazalkaBazilikaBazukaBednaBeranBesedaBestieBetonBezinkaBezmocBeztakBicyklBidloBiftekBikinyBilanceBiografBiologBitvaBizonBlahobytBlatouchBlechaBleduleBleskBlikatBliznaBlokovatBlouditBludBobekBobrBodlinaBodnoutBohatostBojkotBojovatBokorysBolestBorecBoroviceBotaBoubelBouchatBoudaBouleBouratBoxerBradavkaBramboraBrankaBratrBreptaBriketaBrkoBrlohBronzBroskevBrunetkaBrusinkaBrzdaBrzyBublinaBubnovatBuchtaBuditelBudkaBudovaBufetBujarostBukviceBuldokBulvaBundaBunkrBurzaButikBuvolBuzolaBydletBylinaBytovkaBzukotCapartCarevnaCedrCeduleCejchCejnCelaCelerCelkemCelniceCeninaCennostCenovkaCentrumCenzorCestopisCetkaChalupaChapadloCharitaChataChechtatChemieChichotChirurgChladChlebaChlubitChmelChmuraChobotChocholChodbaCholeraChomoutChopitChorobaChovChrapotChrlitChrtChrupChtivostChudinaChutnatChvatChvilkaChvostChybaChystatChytitCibuleCigaretaCihelnaCihlaCinkotCirkusCisternaCitaceCitrusCizinecCizostClonaCokolivCouvatCtitelCtnostCudnostCuketaCukrCupotCvaknoutCvalCvikCvrkotCyklistaDalekoDarebaDatelDatumDceraDebataDechovkaDecibelDeficitDeflaceDeklDekretDemokratDepreseDerbyDeskaDetektivDikobrazDiktovatDiodaDiplomDiskDisplejDivadloDivochDlahaDlouhoDluhopisDnesDobroDobytekDocentDochutitDodnesDohledDohodaDohraDojemDojniceDokladDokolaDoktorDokumentDolarDolevaDolinaDomaDominantDomluvitDomovDonutitDopadDopisDoplnitDoposudDoprovodDopustitDorazitDorostDortDosahDoslovDostatekDosudDosytaDotazDotekDotknoutDoufatDoutnatDovozceDozaduDoznatDozorceDrahotaDrakDramatikDravecDrazeDrdolDrobnostDrogerieDrozdDrsnostDrtitDrzostDubenDuchovnoDudekDuhaDuhovkaDusitDusnoDutostDvojiceDvorecDynamitEkologEkonomieElektronElipsaEmailEmiseEmoceEmpatieEpizodaEpochaEpopejEposEsejEsenceEskortaEskymoEtiketaEuforieEvoluceExekuceExkurzeExpediceExplozeExportExtraktFackaFajfkaFakultaFanatikFantazieFarmacieFavoritFazoleFederaceFejetonFenkaFialkaFigurantFilozofFiltrFinanceFintaFixaceFjordFlanelFlirtFlotilaFondFosforFotbalFotkaFotonFrakceFreskaFrontaFukarFunkceFyzikaGalejeGarantGenetikaGeologGilotinaGlazuraGlejtGolemGolfistaGotikaGrafGramofonGranuleGrepGrilGrogGroteskaGumaHadiceHadrHalaHalenkaHanbaHanopisHarfaHarpunaHavranHebkostHejkalHejnoHejtmanHektarHelmaHematomHerecHernaHesloHezkyHistorikHladovkaHlasivkyHlavaHledatHlenHlodavecHlohHloupostHltatHlubinaHluchotaHmatHmotaHmyzHnisHnojivoHnoutHoblinaHobojHochHodinyHodlatHodnotaHodovatHojnostHokejHolinkaHolkaHolubHomoleHonitbaHonoraceHoralHordaHorizontHorkoHorlivecHormonHorninaHoroskopHorstvoHospodaHostinaHotovostHoubaHoufHoupatHouskaHovorHradbaHraniceHravostHrazdaHrbolekHrdinaHrdloHrdostHrnekHrobkaHromadaHrotHroudaHrozenHrstkaHrubostHryzatHubenostHubnoutHudbaHukotHumrHusitaHustotaHvozdHybnostHydrantHygienaHymnaHysterikIdylkaIhnedIkonaIluzeImunitaInfekceInflaceInkasoInovaceInspekceInternetInvalidaInvestorInzerceIronieJablkoJachtaJahodaJakmileJakostJalovecJantarJarmarkJaroJasanJasnoJatkaJavorJazykJedinecJedleJednatelJehlanJekotJelenJelitoJemnostJenomJepiceJeseterJevitJezdecJezeroJinakJindyJinochJiskraJistotaJitrniceJizvaJmenovatJogurtJurtaKabaretKabelKabinetKachnaKadetKadidloKahanKajakKajutaKakaoKaktusKalamitaKalhotyKalibrKalnostKameraKamkolivKamnaKanibalKanoeKantorKapalinaKapelaKapitolaKapkaKapleKapotaKaprKapustaKapybaraKaramelKarotkaKartonKasaKatalogKatedraKauceKauzaKavalecKazajkaKazetaKazivostKdekolivKdesiKedlubenKempKeramikaKinoKlacekKladivoKlamKlapotKlasikaKlaunKlecKlenbaKlepatKlesnoutKlidKlimaKlisnaKloboukKlokanKlopaKloubKlubovnaKlusatKluzkostKmenKmitatKmotrKnihaKnotKoaliceKoberecKobkaKoblihaKobylaKocourKohoutKojenecKokosKoktejlKolapsKoledaKolizeKoloKomandoKometaKomikKomnataKomoraKompasKomunitaKonatKonceptKondiceKonecKonfeseKongresKoninaKonkursKontaktKonzervaKopanecKopieKopnoutKoprovkaKorbelKorektorKormidloKoroptevKorpusKorunaKorytoKorzetKosatecKostkaKotelKotletaKotoulKoukatKoupelnaKousekKouzloKovbojKozaKozorohKrabiceKrachKrajinaKralovatKrasopisKravataKreditKrejcarKresbaKrevetaKriketKritikKrizeKrkavecKrmelecKrmivoKrocanKrokKronikaKropitKroupaKrovkaKrtekKruhadloKrupiceKrutostKrvinkaKrychleKryptaKrystalKrytKudlankaKufrKujnostKuklaKulajdaKulichKulkaKulometKulturaKunaKupodivuKurtKurzorKutilKvalitaKvasinkaKvestorKynologKyselinaKytaraKyticeKytkaKytovecKyvadloLabradorLachtanLadnostLaikLakomecLamelaLampaLanovkaLasiceLasoLasturaLatinkaLavinaLebkaLeckdyLedenLedniceLedovkaLedvinaLegendaLegieLegraceLehceLehkostLehnoutLektvarLenochodLentilkaLepenkaLepidloLetadloLetecLetmoLetokruhLevhartLevitaceLevobokLibraLichotkaLidojedLidskostLihovinaLijavecLilekLimetkaLinieLinkaLinoleumListopadLitinaLitovatLobistaLodivodLogikaLogopedLokalitaLoketLomcovatLopataLopuchLordLososLotrLoudalLouhLoukaLouskatLovecLstivostLucernaLuciferLumpLuskLustraceLviceLyraLyrikaLysinaMadamMadloMagistrMahagonMajetekMajitelMajoritaMakakMakoviceMakrelaMalbaMalinaMalovatMalviceMaminkaMandleMankoMarnostMasakrMaskotMasopustMaticeMatrikaMaturitaMazanecMazivoMazlitMazurkaMdlobaMechanikMeditaceMedovinaMelasaMelounMentolkaMetlaMetodaMetrMezeraMigraceMihnoutMihuleMikinaMikrofonMilenecMilimetrMilostMimikaMincovnaMinibarMinometMinulostMiskaMistrMixovatMladostMlhaMlhovinaMlokMlsatMluvitMnichMnohemMobilMocnostModelkaModlitbaMohylaMokroMolekulaMomentkaMonarchaMonoklMonstrumMontovatMonzunMosazMoskytMostMotivaceMotorkaMotykaMouchaMoudrostMozaikaMozekMozolMramorMravenecMrkevMrtvolaMrzetMrzutostMstitelMudrcMuflonMulatMumieMuniceMusetMutaceMuzeumMuzikantMyslivecMzdaNabouratNachytatNadaceNadbytekNadhozNadobroNadpisNahlasNahnatNahodileNahraditNaivitaNajednouNajistoNajmoutNaklonitNakonecNakrmitNalevoNamazatNamluvitNanometrNaokoNaopakNaostroNapadatNapevnoNaplnitNapnoutNaposledNaprostoNaroditNarubyNarychloNasaditNasekatNaslepoNastatNatolikNavenekNavrchNavzdoryNazvatNebeNechatNeckyNedalekoNedbatNeduhNegaceNehetNehodaNejenNejprveNeklidNelibostNemilostNemocNeochotaNeonkaNepokojNerostNervNesmyslNesouladNetvorNeuronNevinaNezvykleNicotaNijakNikamNikdyNiklNikterakNitroNoclehNohaviceNominaceNoraNorekNositelNosnostNouzeNovinyNovotaNozdraNudaNudleNugetNutitNutnostNutrieNymfaObalObarvitObavaObdivObecObehnatObejmoutObezitaObhajobaObilniceObjasnitObjektObklopitOblastOblekOblibaOblohaObludaObnosObohatitObojekOboutObrazecObrnaObrubaObrysObsahObsluhaObstaratObuvObvazObvinitObvodObvykleObyvatelObzorOcasOcelOcenitOchladitOchotaOchranaOcitnoutOdbojOdbytOdchodOdcizitOdebratOdeslatOdevzdatOdezvaOdhadceOdhoditOdjetOdjinudOdkazOdkoupitOdlivOdlukaOdmlkaOdolnostOdpadOdpisOdploutOdporOdpustitOdpykatOdrazkaOdsouditOdstupOdsunOdtokOdtudOdvahaOdvetaOdvolatOdvracetOdznakOfinaOfsajdOhlasOhniskoOhradaOhrozitOhryzekOkapOkeniceOklikaOknoOkouzlitOkovyOkrasaOkresOkrsekOkruhOkupantOkurkaOkusitOlejninaOlizovatOmakOmeletaOmezitOmladinaOmlouvatOmluvaOmylOnehdyOpakovatOpasekOperaceOpiceOpilostOpisovatOporaOpoziceOpravduOprotiOrbitalOrchestrOrgieOrliceOrlojOrtelOsadaOschnoutOsikaOsivoOslavaOslepitOslnitOslovitOsnovaOsobaOsolitOspalecOstenOstrahaOstudaOstychOsvojitOteplitOtiskOtopOtrhatOtrlostOtrokOtrubyOtvorOvanoutOvarOvesOvlivnitOvoceOxidOzdobaPachatelPacientPadouchPahorekPaktPalandaPalecPalivoPalubaPamfletPamlsekPanenkaPanikaPannaPanovatPanstvoPantoflePaprikaParketaParodiePartaParukaParybaPasekaPasivitaPastelkaPatentPatronaPavoukPaznehtPazourekPeckaPedagogPejsekPekloPelotonPenaltaPendrekPenzePeriskopPeroPestrostPetardaPeticePetrolejPevninaPexesoPianistaPihaPijavicePiklePiknikPilinaPilnostPilulkaPinzetaPipetaPisatelPistolePitevnaPivnicePivovarPlacentaPlakatPlamenPlanetaPlastikaPlatitPlavidloPlazPlechPlemenoPlentaPlesPletivoPlevelPlivatPlnitPlnoPlochaPlodinaPlombaPloutPlukPlynPobavitPobytPochodPocitPoctivecPodatPodcenitPodepsatPodhledPodivitPodkladPodmanitPodnikPodobaPodporaPodrazPodstataPodvodPodzimPoeziePohankaPohnutkaPohovorPohromaPohybPointaPojistkaPojmoutPokazitPoklesPokojPokrokPokutaPokynPolednePolibekPolknoutPolohaPolynomPomaluPominoutPomlkaPomocPomstaPomysletPonechatPonorkaPonurostPopadatPopelPopisekPoplachPoprositPopsatPopudPoradcePorcePorodPoruchaPoryvPosaditPosedPosilaPoskokPoslanecPosouditPospoluPostavaPosudekPosypPotahPotkanPotleskPotomekPotravaPotupaPotvoraPoukazPoutoPouzdroPovahaPovidlaPovlakPovozPovrchPovstatPovykPovzdechPozdravPozemekPoznatekPozorPozvatPracovatPrahoryPraktikaPralesPraotecPraporekPrasePravdaPrincipPrknoProbuditProcentoProdejProfeseProhraProjektProlomitPromilePronikatPropadProrokProsbaProtonProutekProvazPrskavkaPrstenPrudkostPrutPrvekPrvohoryPsanecPsovodPstruhPtactvoPubertaPuchPudlPukavecPuklinaPukrlePultPumpaPuncPupenPusaPusinkaPustinaPutovatPutykaPyramidaPyskPytelRacekRachotRadiaceRadniceRadonRaftRagbyRaketaRakovinaRamenoRampouchRandeRarachRaritaRasovnaRastrRatolestRazanceRazidloReagovatReakceReceptRedaktorReferentReflexRejnokReklamaRekordRekrutRektorReputaceRevizeRevmaRevolverRezervaRiskovatRizikoRobotikaRodokmenRohovkaRokleRokokoRomanetoRopovodRopuchaRorejsRosolRostlinaRotmistrRotopedRotundaRoubenkaRouchoRoupRouraRovinaRovniceRozborRozchodRozdatRozeznatRozhodceRozinkaRozjezdRozkazRozlohaRozmarRozpadRozruchRozsahRoztokRozumRozvodRubrikaRuchadloRukaviceRukopisRybaRybolovRychlostRydloRypadloRytinaRyzostSadistaSahatSakoSamecSamizdatSamotaSanitkaSardinkaSasankaSatelitSazbaSazeniceSborSchovatSebrankaSeceseSedadloSedimentSedloSehnatSejmoutSekeraSektaSekundaSekvojeSemenoSenoServisSesaditSeshoraSeskokSeslatSestraSesuvSesypatSetbaSetinaSetkatSetnoutSetrvatSeverSeznamShodaShrnoutSifonSilniceSirkaSirotekSirupSituaceSkafandrSkaliskoSkanzenSkautSkeptikSkicaSkladbaSkleniceSkloSkluzSkobaSkokanSkoroSkriptaSkrzSkupinaSkvostSkvrnaSlabikaSladidloSlaninaSlastSlavnostSledovatSlepecSlevaSlezinaSlibSlinaSlizniceSlonSloupekSlovoSluchSluhaSlunceSlupkaSlzaSmaragdSmetanaSmilstvoSmlouvaSmogSmradSmrkSmrtkaSmutekSmyslSnadSnahaSnobSobotaSochaSodovkaSokolSopkaSotvaSoubojSoucitSoudceSouhlasSouladSoumrakSoupravaSousedSoutokSouvisetSpalovnaSpasitelSpisSplavSpodekSpojenecSpoluSponzorSpornostSpoustaSprchaSpustitSrandaSrazSrdceSrnaSrnecSrovnatSrpenSrstSrubStaniceStarostaStatikaStavbaStehnoStezkaStodolaStolekStopaStornoStoupatStrachStresStrhnoutStromStrunaStudnaStupniceStvolStykSubjektSubtropySucharSudostSuknoSundatSunoutSurikataSurovinaSvahSvalstvoSvetrSvatbaSvazekSvisleSvitekSvobodaSvodidloSvorkaSvrabSykavkaSykotSynekSynovecSypatSypkostSyrovostSyselSytostTabletkaTabuleTahounTajemnoTajfunTajgaTajitTajnostTaktikaTamhleTamponTancovatTanecTankerTapetaTaveninaTazatelTechnikaTehdyTekutinaTelefonTemnotaTendenceTenistaTenorTeplotaTepnaTeprveTerapieTermoskaTextilTichoTiskopisTitulekTkadlecTkaninaTlapkaTleskatTlukotTlupaTmelToaletaTopinkaTopolTorzoTouhaToulecTradiceTraktorTrampTrasaTraverzaTrefitTrestTrezorTrhavinaTrhlinaTrochuTrojiceTroskaTroubaTrpceTrpitelTrpkostTrubecTruchlitTruhliceTrusTrvatTudyTuhnoutTuhostTundraTuristaTurnajTuzemskoTvarohTvorbaTvrdostTvrzTygrTykevUbohostUbozeUbratUbrousekUbrusUbytovnaUchoUctivostUdivitUhraditUjednatUjistitUjmoutUkazatelUklidnitUklonitUkotvitUkrojitUliceUlitaUlovitUmyvadloUnavitUniformaUniknoutUpadnoutUplatnitUplynoutUpoutatUpravitUranUrazitUsednoutUsilovatUsmrtitUsnadnitUsnoutUsouditUstlatUstrnoutUtahovatUtkatUtlumitUtonoutUtopenecUtrousitUvalitUvolnitUvozovkaUzdravitUzelUzeninaUzlinaUznatVagonValchaValounVanaVandalVanilkaVaranVarhanyVarovatVcelkuVchodVdovaVedroVegetaceVejceVelbloudVeletrhVelitelVelmocVelrybaVenkovVerandaVerzeVeselkaVeskrzeVesniceVespoduVestaVeterinaVeverkaVibraceVichrVideohraVidinaVidleVilaViniceVisetVitalitaVizeVizitkaVjezdVkladVkusVlajkaVlakVlasecVlevoVlhkostVlivVlnovkaVloupatVnucovatVnukVodaVodivostVodoznakVodstvoVojenskyVojnaVojskoVolantVolbaVolitVolnoVoskovkaVozidloVozovnaVpravoVrabecVracetVrahVrataVrbaVrcholekVrhatVrstvaVrtuleVsaditVstoupitVstupVtipVybavitVybratVychovatVydatVydraVyfotitVyhledatVyhnoutVyhoditVyhraditVyhubitVyjasnitVyjetVyjmoutVyklopitVykonatVylekatVymazatVymezitVymizetVymysletVynechatVynikatVynutitVypadatVyplatitVypravitVypustitVyrazitVyrovnatVyrvatVyslovitVysokoVystavitVysunoutVysypatVytasitVytesatVytratitVyvinoutVyvolatVyvrhelVyzdobitVyznatVzaduVzbuditVzchopitVzdorVzduchVzdychatVzestupVzhledemVzkazVzlykatVznikVzorekVzpouraVztahVztekXylofonZabratZabydletZachovatZadarmoZadusitZafoukatZahltitZahoditZahradaZahynoutZajatecZajetZajistitZaklepatZakoupitZalepitZamezitZamotatZamysletZanechatZanikatZaplatitZapojitZapsatZarazitZastavitZasunoutZatajitZatemnitZatknoutZaujmoutZavalitZaveletZavinitZavolatZavrtatZazvonitZbavitZbrusuZbudovatZbytekZdalekaZdarmaZdatnostZdivoZdobitZdrojZdvihZdymadloZeleninaZemanZeminaZeptatZezaduZezdolaZhatitZhltnoutZhlubokaZhotovitZhrubaZimaZimniceZjemnitZklamatZkoumatZkratkaZkumavkaZlatoZlehkaZlobaZlomZlostZlozvykZmapovatZmarZmatekZmijeZmizetZmocnitZmodratZmrzlinaZmutovatZnakZnalostZnamenatZnovuZobrazitZotavitZoubekZoufaleZploditZpomalitZpravaZprostitZprudkaZprvuZradaZranitZrcadloZrnitostZrnoZrovnaZrychlitZrzavostZtichaZtratitZubovinaZubrZvednoutZvenkuZveselaZvonZvratZvukovodZvyk\";\n\nlet wordlist: Array = null;\n\nfunction loadWords(lang: Wordlist): void {\n if (wordlist != null) { return; }\n wordlist = words.replace(/([A-Z])/g, \" $1\").toLowerCase().substring(1).split(\" \");\n\n // Verify the computed list matches the official list\n /* istanbul ignore if */\n if (Wordlist.check(lang) !== \"0x25f44555f4af25b51a711136e1c7d6e50ce9f8917d39d6b1f076b2bb4d2fac1a\") {\n wordlist = null;\n throw new Error(\"BIP39 Wordlist for en (English) FAILED\");\n }\n}\n\nclass LangCz extends Wordlist {\n constructor() {\n super(\"cz\");\n }\n\n getWord(index: number): string {\n loadWords(this);\n return wordlist[index];\n }\n\n getWordIndex(word: string): number {\n loadWords(this);\n return wordlist.indexOf(word);\n }\n}\n\nconst langCz = new LangCz();\nWordlist.register(langCz);\n\nexport { langCz };\n\n", "\"use strict\";\n\nimport { Wordlist } from \"./wordlist\";\n\n\nconst words = \"AbandonAbilityAbleAboutAboveAbsentAbsorbAbstractAbsurdAbuseAccessAccidentAccountAccuseAchieveAcidAcousticAcquireAcrossActActionActorActressActualAdaptAddAddictAddressAdjustAdmitAdultAdvanceAdviceAerobicAffairAffordAfraidAgainAgeAgentAgreeAheadAimAirAirportAisleAlarmAlbumAlcoholAlertAlienAllAlleyAllowAlmostAloneAlphaAlreadyAlsoAlterAlwaysAmateurAmazingAmongAmountAmusedAnalystAnchorAncientAngerAngleAngryAnimalAnkleAnnounceAnnualAnotherAnswerAntennaAntiqueAnxietyAnyApartApologyAppearAppleApproveAprilArchArcticAreaArenaArgueArmArmedArmorArmyAroundArrangeArrestArriveArrowArtArtefactArtistArtworkAskAspectAssaultAssetAssistAssumeAsthmaAthleteAtomAttackAttendAttitudeAttractAuctionAuditAugustAuntAuthorAutoAutumnAverageAvocadoAvoidAwakeAwareAwayAwesomeAwfulAwkwardAxisBabyBachelorBaconBadgeBagBalanceBalconyBallBambooBananaBannerBarBarelyBargainBarrelBaseBasicBasketBattleBeachBeanBeautyBecauseBecomeBeefBeforeBeginBehaveBehindBelieveBelowBeltBenchBenefitBestBetrayBetterBetweenBeyondBicycleBidBikeBindBiologyBirdBirthBitterBlackBladeBlameBlanketBlastBleakBlessBlindBloodBlossomBlouseBlueBlurBlushBoardBoatBodyBoilBombBoneBonusBookBoostBorderBoringBorrowBossBottomBounceBoxBoyBracketBrainBrandBrassBraveBreadBreezeBrickBridgeBriefBrightBringBriskBroccoliBrokenBronzeBroomBrotherBrownBrushBubbleBuddyBudgetBuffaloBuildBulbBulkBulletBundleBunkerBurdenBurgerBurstBusBusinessBusyButterBuyerBuzzCabbageCabinCableCactusCageCakeCallCalmCameraCampCanCanalCancelCandyCannonCanoeCanvasCanyonCapableCapitalCaptainCarCarbonCardCargoCarpetCarryCartCaseCashCasinoCastleCasualCatCatalogCatchCategoryCattleCaughtCauseCautionCaveCeilingCeleryCementCensusCenturyCerealCertainChairChalkChampionChangeChaosChapterChargeChaseChatCheapCheckCheeseChefCherryChestChickenChiefChildChimneyChoiceChooseChronicChuckleChunkChurnCigarCinnamonCircleCitizenCityCivilClaimClapClarifyClawClayCleanClerkCleverClickClientCliffClimbClinicClipClockClogCloseClothCloudClownClubClumpClusterClutchCoachCoastCoconutCodeCoffeeCoilCoinCollectColorColumnCombineComeComfortComicCommonCompanyConcertConductConfirmCongressConnectConsiderControlConvinceCookCoolCopperCopyCoralCoreCornCorrectCostCottonCouchCountryCoupleCourseCousinCoverCoyoteCrackCradleCraftCramCraneCrashCraterCrawlCrazyCreamCreditCreekCrewCricketCrimeCrispCriticCropCrossCrouchCrowdCrucialCruelCruiseCrumbleCrunchCrushCryCrystalCubeCultureCupCupboardCuriousCurrentCurtainCurveCushionCustomCuteCycleDadDamageDampDanceDangerDaringDashDaughterDawnDayDealDebateDebrisDecadeDecemberDecideDeclineDecorateDecreaseDeerDefenseDefineDefyDegreeDelayDeliverDemandDemiseDenialDentistDenyDepartDependDepositDepthDeputyDeriveDescribeDesertDesignDeskDespairDestroyDetailDetectDevelopDeviceDevoteDiagramDialDiamondDiaryDiceDieselDietDifferDigitalDignityDilemmaDinnerDinosaurDirectDirtDisagreeDiscoverDiseaseDishDismissDisorderDisplayDistanceDivertDivideDivorceDizzyDoctorDocumentDogDollDolphinDomainDonateDonkeyDonorDoorDoseDoubleDoveDraftDragonDramaDrasticDrawDreamDressDriftDrillDrinkDripDriveDropDrumDryDuckDumbDuneDuringDustDutchDutyDwarfDynamicEagerEagleEarlyEarnEarthEasilyEastEasyEchoEcologyEconomyEdgeEditEducateEffortEggEightEitherElbowElderElectricElegantElementElephantElevatorEliteElseEmbarkEmbodyEmbraceEmergeEmotionEmployEmpowerEmptyEnableEnactEndEndlessEndorseEnemyEnergyEnforceEngageEngineEnhanceEnjoyEnlistEnoughEnrichEnrollEnsureEnterEntireEntryEnvelopeEpisodeEqualEquipEraEraseErodeErosionErrorEruptEscapeEssayEssenceEstateEternalEthicsEvidenceEvilEvokeEvolveExactExampleExcessExchangeExciteExcludeExcuseExecuteExerciseExhaustExhibitExileExistExitExoticExpandExpectExpireExplainExposeExpressExtendExtraEyeEyebrowFabricFaceFacultyFadeFaintFaithFallFalseFameFamilyFamousFanFancyFantasyFarmFashionFatFatalFatherFatigueFaultFavoriteFeatureFebruaryFederalFeeFeedFeelFemaleFenceFestivalFetchFeverFewFiberFictionFieldFigureFileFilmFilterFinalFindFineFingerFinishFireFirmFirstFiscalFishFitFitnessFixFlagFlameFlashFlatFlavorFleeFlightFlipFloatFlockFloorFlowerFluidFlushFlyFoamFocusFogFoilFoldFollowFoodFootForceForestForgetForkFortuneForumForwardFossilFosterFoundFoxFragileFrameFrequentFreshFriendFringeFrogFrontFrostFrownFrozenFruitFuelFunFunnyFurnaceFuryFutureGadgetGainGalaxyGalleryGameGapGarageGarbageGardenGarlicGarmentGasGaspGateGatherGaugeGazeGeneralGeniusGenreGentleGenuineGestureGhostGiantGiftGiggleGingerGiraffeGirlGiveGladGlanceGlareGlassGlideGlimpseGlobeGloomGloryGloveGlowGlueGoatGoddessGoldGoodGooseGorillaGospelGossipGovernGownGrabGraceGrainGrantGrapeGrassGravityGreatGreenGridGriefGritGroceryGroupGrowGruntGuardGuessGuideGuiltGuitarGunGymHabitHairHalfHammerHamsterHandHappyHarborHardHarshHarvestHatHaveHawkHazardHeadHealthHeartHeavyHedgehogHeightHelloHelmetHelpHenHeroHiddenHighHillHintHipHireHistoryHobbyHockeyHoldHoleHolidayHollowHomeHoneyHoodHopeHornHorrorHorseHospitalHostHotelHourHoverHubHugeHumanHumbleHumorHundredHungryHuntHurdleHurryHurtHusbandHybridIceIconIdeaIdentifyIdleIgnoreIllIllegalIllnessImageImitateImmenseImmuneImpactImposeImproveImpulseInchIncludeIncomeIncreaseIndexIndicateIndoorIndustryInfantInflictInformInhaleInheritInitialInjectInjuryInmateInnerInnocentInputInquiryInsaneInsectInsideInspireInstallIntactInterestIntoInvestInviteInvolveIronIslandIsolateIssueItemIvoryJacketJaguarJarJazzJealousJeansJellyJewelJobJoinJokeJourneyJoyJudgeJuiceJumpJungleJuniorJunkJustKangarooKeenKeepKetchupKeyKickKidKidneyKindKingdomKissKitKitchenKiteKittenKiwiKneeKnifeKnockKnowLabLabelLaborLadderLadyLakeLampLanguageLaptopLargeLaterLatinLaughLaundryLavaLawLawnLawsuitLayerLazyLeaderLeafLearnLeaveLectureLeftLegLegalLegendLeisureLemonLendLengthLensLeopardLessonLetterLevelLiarLibertyLibraryLicenseLifeLiftLightLikeLimbLimitLinkLionLiquidListLittleLiveLizardLoadLoanLobsterLocalLockLogicLonelyLongLoopLotteryLoudLoungeLoveLoyalLuckyLuggageLumberLunarLunchLuxuryLyricsMachineMadMagicMagnetMaidMailMainMajorMakeMammalManManageMandateMangoMansionManualMapleMarbleMarchMarginMarineMarketMarriageMaskMassMasterMatchMaterialMathMatrixMatterMaximumMazeMeadowMeanMeasureMeatMechanicMedalMediaMelodyMeltMemberMemoryMentionMenuMercyMergeMeritMerryMeshMessageMetalMethodMiddleMidnightMilkMillionMimicMindMinimumMinorMinuteMiracleMirrorMiseryMissMistakeMixMixedMixtureMobileModelModifyMomMomentMonitorMonkeyMonsterMonthMoonMoralMoreMorningMosquitoMotherMotionMotorMountainMouseMoveMovieMuchMuffinMuleMultiplyMuscleMuseumMushroomMusicMustMutualMyselfMysteryMythNaiveNameNapkinNarrowNastyNationNatureNearNeckNeedNegativeNeglectNeitherNephewNerveNestNetNetworkNeutralNeverNewsNextNiceNightNobleNoiseNomineeNoodleNormalNorthNoseNotableNoteNothingNoticeNovelNowNuclearNumberNurseNutOakObeyObjectObligeObscureObserveObtainObviousOccurOceanOctoberOdorOffOfferOfficeOftenOilOkayOldOliveOlympicOmitOnceOneOnionOnlineOnlyOpenOperaOpinionOpposeOptionOrangeOrbitOrchardOrderOrdinaryOrganOrientOriginalOrphanOstrichOtherOutdoorOuterOutputOutsideOvalOvenOverOwnOwnerOxygenOysterOzonePactPaddlePagePairPalacePalmPandaPanelPanicPantherPaperParadeParentParkParrotPartyPassPatchPathPatientPatrolPatternPausePavePaymentPeacePeanutPearPeasantPelicanPenPenaltyPencilPeoplePepperPerfectPermitPersonPetPhonePhotoPhrasePhysicalPianoPicnicPicturePiecePigPigeonPillPilotPinkPioneerPipePistolPitchPizzaPlacePlanetPlasticPlatePlayPleasePledgePluckPlugPlungePoemPoetPointPolarPolePolicePondPonyPoolPopularPortionPositionPossiblePostPotatoPotteryPovertyPowderPowerPracticePraisePredictPreferPreparePresentPrettyPreventPricePridePrimaryPrintPriorityPrisonPrivatePrizeProblemProcessProduceProfitProgramProjectPromoteProofPropertyProsperProtectProudProvidePublicPuddingPullPulpPulsePumpkinPunchPupilPuppyPurchasePurityPurposePursePushPutPuzzlePyramidQualityQuantumQuarterQuestionQuickQuitQuizQuoteRabbitRaccoonRaceRackRadarRadioRailRainRaiseRallyRampRanchRandomRangeRapidRareRateRatherRavenRawRazorReadyRealReasonRebelRebuildRecallReceiveRecipeRecordRecycleReduceReflectReformRefuseRegionRegretRegularRejectRelaxReleaseReliefRelyRemainRememberRemindRemoveRenderRenewRentReopenRepairRepeatReplaceReportRequireRescueResembleResistResourceResponseResultRetireRetreatReturnReunionRevealReviewRewardRhythmRibRibbonRiceRichRideRidgeRifleRightRigidRingRiotRippleRiskRitualRivalRiverRoadRoastRobotRobustRocketRomanceRoofRookieRoomRoseRotateRoughRoundRouteRoyalRubberRudeRugRuleRunRunwayRuralSadSaddleSadnessSafeSailSaladSalmonSalonSaltSaluteSameSampleSandSatisfySatoshiSauceSausageSaveSayScaleScanScareScatterSceneSchemeSchoolScienceScissorsScorpionScoutScrapScreenScriptScrubSeaSearchSeasonSeatSecondSecretSectionSecuritySeedSeekSegmentSelectSellSeminarSeniorSenseSentenceSeriesServiceSessionSettleSetupSevenShadowShaftShallowShareShedShellSheriffShieldShiftShineShipShiverShockShoeShootShopShortShoulderShoveShrimpShrugShuffleShySiblingSickSideSiegeSightSignSilentSilkSillySilverSimilarSimpleSinceSingSirenSisterSituateSixSizeSkateSketchSkiSkillSkinSkirtSkullSlabSlamSleepSlenderSliceSlideSlightSlimSloganSlotSlowSlushSmallSmartSmileSmokeSmoothSnackSnakeSnapSniffSnowSoapSoccerSocialSockSodaSoftSolarSoldierSolidSolutionSolveSomeoneSongSoonSorrySortSoulSoundSoupSourceSouthSpaceSpareSpatialSpawnSpeakSpecialSpeedSpellSpendSphereSpiceSpiderSpikeSpinSpiritSplitSpoilSponsorSpoonSportSpotSpraySpreadSpringSpySquareSqueezeSquirrelStableStadiumStaffStageStairsStampStandStartStateStaySteakSteelStemStepStereoStickStillStingStockStomachStoneStoolStoryStoveStrategyStreetStrikeStrongStruggleStudentStuffStumbleStyleSubjectSubmitSubwaySuccessSuchSuddenSufferSugarSuggestSuitSummerSunSunnySunsetSuperSupplySupremeSureSurfaceSurgeSurpriseSurroundSurveySuspectSustainSwallowSwampSwapSwarmSwearSweetSwiftSwimSwingSwitchSwordSymbolSymptomSyrupSystemTableTackleTagTailTalentTalkTankTapeTargetTaskTasteTattooTaxiTeachTeamTellTenTenantTennisTentTermTestTextThankThatThemeThenTheoryThereTheyThingThisThoughtThreeThriveThrowThumbThunderTicketTideTigerTiltTimberTimeTinyTipTiredTissueTitleToastTobaccoTodayToddlerToeTogetherToiletTokenTomatoTomorrowToneTongueTonightToolToothTopTopicToppleTorchTornadoTortoiseTossTotalTouristTowardTowerTownToyTrackTradeTrafficTragicTrainTransferTrapTrashTravelTrayTreatTreeTrendTrialTribeTrickTriggerTrimTripTrophyTroubleTruckTrueTrulyTrumpetTrustTruthTryTubeTuitionTumbleTunaTunnelTurkeyTurnTurtleTwelveTwentyTwiceTwinTwistTwoTypeTypicalUglyUmbrellaUnableUnawareUncleUncoverUnderUndoUnfairUnfoldUnhappyUniformUniqueUnitUniverseUnknownUnlockUntilUnusualUnveilUpdateUpgradeUpholdUponUpperUpsetUrbanUrgeUsageUseUsedUsefulUselessUsualUtilityVacantVacuumVagueValidValleyValveVanVanishVaporVariousVastVaultVehicleVelvetVendorVentureVenueVerbVerifyVersionVeryVesselVeteranViableVibrantViciousVictoryVideoViewVillageVintageViolinVirtualVirusVisaVisitVisualVitalVividVocalVoiceVoidVolcanoVolumeVoteVoyageWageWagonWaitWalkWallWalnutWantWarfareWarmWarriorWashWaspWasteWaterWaveWayWealthWeaponWearWeaselWeatherWebWeddingWeekendWeirdWelcomeWestWetWhaleWhatWheatWheelWhenWhereWhipWhisperWideWidthWifeWildWillWinWindowWineWingWinkWinnerWinterWireWisdomWiseWishWitnessWolfWomanWonderWoodWoolWordWorkWorldWorryWorthWrapWreckWrestleWristWriteWrongYardYearYellowYouYoungYouthZebraZeroZoneZoo\";\n\nlet wordlist: Array = null;\n\n\nfunction loadWords(lang: Wordlist): void {\n if (wordlist != null) { return; }\n wordlist = words.replace(/([A-Z])/g, \" $1\").toLowerCase().substring(1).split(\" \");\n\n // Verify the computed list matches the official list\n /* istanbul ignore if */\n if (Wordlist.check(lang) !== \"0x3c8acc1e7b08d8e76f9fda015ef48dc8c710a73cb7e0f77b2c18a9b5a7adde60\") {\n wordlist = null;\n throw new Error(\"BIP39 Wordlist for en (English) FAILED\");\n }\n}\n\nclass LangEn extends Wordlist {\n constructor() {\n super(\"en\");\n }\n\n getWord(index: number): string {\n loadWords(this);\n return wordlist[index];\n }\n\n getWordIndex(word: string): number {\n loadWords(this);\n return wordlist.indexOf(word);\n }\n}\n\nconst langEn = new LangEn();\nWordlist.register(langEn);\n\nexport { langEn };\n", "\"use strict\";\n\nimport { toUtf8Bytes, toUtf8String } from \"@ethersproject/strings\";\n\nimport { logger, Wordlist } from \"./wordlist\";\n\n\nconst words = \"A/bacoAbdomenAbejaAbiertoAbogadoAbonoAbortoAbrazoAbrirAbueloAbusoAcabarAcademiaAccesoAccio/nAceiteAcelgaAcentoAceptarA/cidoAclararAcne/AcogerAcosoActivoActoActrizActuarAcudirAcuerdoAcusarAdictoAdmitirAdoptarAdornoAduanaAdultoAe/reoAfectarAficio/nAfinarAfirmarA/gilAgitarAgoni/aAgostoAgotarAgregarAgrioAguaAgudoA/guilaAgujaAhogoAhorroAireAislarAjedrezAjenoAjusteAlacra/nAlambreAlarmaAlbaA/lbumAlcaldeAldeaAlegreAlejarAlertaAletaAlfilerAlgaAlgodo/nAliadoAlientoAlivioAlmaAlmejaAlmi/barAltarAltezaAltivoAltoAlturaAlumnoAlzarAmableAmanteAmapolaAmargoAmasarA/mbarA/mbitoAmenoAmigoAmistadAmorAmparoAmplioAnchoAncianoAnclaAndarAnde/nAnemiaA/nguloAnilloA/nimoAni/sAnotarAntenaAntiguoAntojoAnualAnularAnuncioA~adirA~ejoA~oApagarAparatoApetitoApioAplicarApodoAporteApoyoAprenderAprobarApuestaApuroAradoAra~aArarA/rbitroA/rbolArbustoArchivoArcoArderArdillaArduoA/reaA/ridoAriesArmoni/aArne/sAromaArpaArpo/nArregloArrozArrugaArteArtistaAsaAsadoAsaltoAscensoAsegurarAseoAsesorAsientoAsiloAsistirAsnoAsombroA/speroAstillaAstroAstutoAsumirAsuntoAtajoAtaqueAtarAtentoAteoA/ticoAtletaA/tomoAtraerAtrozAtu/nAudazAudioAugeAulaAumentoAusenteAutorAvalAvanceAvaroAveAvellanaAvenaAvestruzAvio/nAvisoAyerAyudaAyunoAzafra/nAzarAzoteAzu/carAzufreAzulBabaBaborBacheBahi/aBaileBajarBalanzaBalco/nBaldeBambu/BancoBandaBa~oBarbaBarcoBarnizBarroBa/sculaBasto/nBasuraBatallaBateri/aBatirBatutaBau/lBazarBebe/BebidaBelloBesarBesoBestiaBichoBienBingoBlancoBloqueBlusaBoaBobinaBoboBocaBocinaBodaBodegaBoinaBolaBoleroBolsaBombaBondadBonitoBonoBonsa/iBordeBorrarBosqueBoteBoti/nBo/vedaBozalBravoBrazoBrechaBreveBrilloBrincoBrisaBrocaBromaBronceBroteBrujaBruscoBrutoBuceoBucleBuenoBueyBufandaBufo/nBu/hoBuitreBultoBurbujaBurlaBurroBuscarButacaBuzo/nCaballoCabezaCabinaCabraCacaoCada/verCadenaCaerCafe/Cai/daCaima/nCajaCajo/nCalCalamarCalcioCaldoCalidadCalleCalmaCalorCalvoCamaCambioCamelloCaminoCampoCa/ncerCandilCanelaCanguroCanicaCantoCa~aCa~o/nCaobaCaosCapazCapita/nCapoteCaptarCapuchaCaraCarbo/nCa/rcelCaretaCargaCari~oCarneCarpetaCarroCartaCasaCascoCaseroCaspaCastorCatorceCatreCaudalCausaCazoCebollaCederCedroCeldaCe/lebreCelosoCe/lulaCementoCenizaCentroCercaCerdoCerezaCeroCerrarCertezaCe/spedCetroChacalChalecoChampu/ChanclaChapaCharlaChicoChisteChivoChoqueChozaChuletaChuparCiclo/nCiegoCieloCienCiertoCifraCigarroCimaCincoCineCintaCipre/sCircoCiruelaCisneCitaCiudadClamorClanClaroClaseClaveClienteClimaCli/nicaCobreCoccio/nCochinoCocinaCocoCo/digoCodoCofreCogerCoheteCoji/nCojoColaColchaColegioColgarColinaCollarColmoColumnaCombateComerComidaCo/modoCompraCondeConejoCongaConocerConsejoContarCopaCopiaCorazo/nCorbataCorchoCordo/nCoronaCorrerCoserCosmosCostaCra/neoCra/terCrearCrecerCrei/doCremaCri/aCrimenCriptaCrisisCromoCro/nicaCroquetaCrudoCruzCuadroCuartoCuatroCuboCubrirCucharaCuelloCuentoCuerdaCuestaCuevaCuidarCulebraCulpaCultoCumbreCumplirCunaCunetaCuotaCupo/nCu/pulaCurarCuriosoCursoCurvaCutisDamaDanzaDarDardoDa/tilDeberDe/bilDe/cadaDecirDedoDefensaDefinirDejarDelfi/nDelgadoDelitoDemoraDensoDentalDeporteDerechoDerrotaDesayunoDeseoDesfileDesnudoDestinoDesvi/oDetalleDetenerDeudaDi/aDiabloDiademaDiamanteDianaDiarioDibujoDictarDienteDietaDiezDifi/cilDignoDilemaDiluirDineroDirectoDirigirDiscoDise~oDisfrazDivaDivinoDobleDoceDolorDomingoDonDonarDoradoDormirDorsoDosDosisDrago/nDrogaDuchaDudaDueloDue~oDulceDu/oDuqueDurarDurezaDuroE/banoEbrioEcharEcoEcuadorEdadEdicio/nEdificioEditorEducarEfectoEficazEjeEjemploElefanteElegirElementoElevarElipseE/liteElixirElogioEludirEmbudoEmitirEmocio/nEmpateEmpe~oEmpleoEmpresaEnanoEncargoEnchufeEnci/aEnemigoEneroEnfadoEnfermoEnga~oEnigmaEnlaceEnormeEnredoEnsayoEnse~arEnteroEntrarEnvaseEnvi/oE/pocaEquipoErizoEscalaEscenaEscolarEscribirEscudoEsenciaEsferaEsfuerzoEspadaEspejoEspi/aEsposaEspumaEsqui/EstarEsteEstiloEstufaEtapaEternoE/ticaEtniaEvadirEvaluarEventoEvitarExactoExamenExcesoExcusaExentoExigirExilioExistirE/xitoExpertoExplicarExponerExtremoFa/bricaFa/bulaFachadaFa/cilFactorFaenaFajaFaldaFalloFalsoFaltarFamaFamiliaFamosoFarao/nFarmaciaFarolFarsaFaseFatigaFaunaFavorFaxFebreroFechaFelizFeoFeriaFerozFe/rtilFervorFesti/nFiableFianzaFiarFibraFiccio/nFichaFideoFiebreFielFieraFiestaFiguraFijarFijoFilaFileteFilialFiltroFinFincaFingirFinitoFirmaFlacoFlautaFlechaFlorFlotaFluirFlujoFlu/orFobiaFocaFogataFogo/nFolioFolletoFondoFormaForroFortunaForzarFosaFotoFracasoFra/gilFranjaFraseFraudeFrei/rFrenoFresaFri/oFritoFrutaFuegoFuenteFuerzaFugaFumarFuncio/nFundaFurgo/nFuriaFusilFu/tbolFuturoGacelaGafasGaitaGajoGalaGaleri/aGalloGambaGanarGanchoGangaGansoGarajeGarzaGasolinaGastarGatoGavila/nGemeloGemirGenGe/neroGenioGenteGeranioGerenteGermenGestoGiganteGimnasioGirarGiroGlaciarGloboGloriaGolGolfoGolosoGolpeGomaGordoGorilaGorraGotaGoteoGozarGradaGra/ficoGranoGrasaGratisGraveGrietaGrilloGripeGrisGritoGrosorGru/aGruesoGrumoGrupoGuanteGuapoGuardiaGuerraGui/aGui~oGuionGuisoGuitarraGusanoGustarHaberHa/bilHablarHacerHachaHadaHallarHamacaHarinaHazHaza~aHebillaHebraHechoHeladoHelioHembraHerirHermanoHe/roeHervirHieloHierroHi/gadoHigieneHijoHimnoHistoriaHocicoHogarHogueraHojaHombreHongoHonorHonraHoraHormigaHornoHostilHoyoHuecoHuelgaHuertaHuesoHuevoHuidaHuirHumanoHu/medoHumildeHumoHundirHuraca/nHurtoIconoIdealIdiomaI/doloIglesiaIglu/IgualIlegalIlusio/nImagenIma/nImitarImparImperioImponerImpulsoIncapazI/ndiceInerteInfielInformeIngenioInicioInmensoInmuneInnatoInsectoInstanteIntere/sI/ntimoIntuirInu/tilInviernoIraIrisIroni/aIslaIsloteJabali/Jabo/nJamo/nJarabeJardi/nJarraJaulaJazmi/nJefeJeringaJineteJornadaJorobaJovenJoyaJuergaJuevesJuezJugadorJugoJugueteJuicioJuncoJunglaJunioJuntarJu/piterJurarJustoJuvenilJuzgarKiloKoalaLabioLacioLacraLadoLadro/nLagartoLa/grimaLagunaLaicoLamerLa/minaLa/mparaLanaLanchaLangostaLanzaLa/pizLargoLarvaLa/stimaLataLa/texLatirLaurelLavarLazoLealLeccio/nLecheLectorLeerLegio/nLegumbreLejanoLenguaLentoLe~aLeo/nLeopardoLesio/nLetalLetraLeveLeyendaLibertadLibroLicorLi/derLidiarLienzoLigaLigeroLimaLi/miteLimo/nLimpioLinceLindoLi/neaLingoteLinoLinternaLi/quidoLisoListaLiteraLitioLitroLlagaLlamaLlantoLlaveLlegarLlenarLlevarLlorarLloverLluviaLoboLocio/nLocoLocuraLo/gicaLogroLombrizLomoLonjaLoteLuchaLucirLugarLujoLunaLunesLupaLustroLutoLuzMacetaMachoMaderaMadreMaduroMaestroMafiaMagiaMagoMai/zMaldadMaletaMallaMaloMama/MamboMamutMancoMandoManejarMangaManiqui/ManjarManoMansoMantaMa~anaMapaMa/quinaMarMarcoMareaMarfilMargenMaridoMa/rmolMarro/nMartesMarzoMasaMa/scaraMasivoMatarMateriaMatizMatrizMa/ximoMayorMazorcaMechaMedallaMedioMe/dulaMejillaMejorMelenaMelo/nMemoriaMenorMensajeMenteMenu/MercadoMerengueMe/ritoMesMeso/nMetaMeterMe/todoMetroMezclaMiedoMielMiembroMigaMilMilagroMilitarMillo/nMimoMinaMineroMi/nimoMinutoMiopeMirarMisaMiseriaMisilMismoMitadMitoMochilaMocio/nModaModeloMohoMojarMoldeMolerMolinoMomentoMomiaMonarcaMonedaMonjaMontoMo~oMoradaMorderMorenoMorirMorroMorsaMortalMoscaMostrarMotivoMoverMo/vilMozoMuchoMudarMuebleMuelaMuerteMuestraMugreMujerMulaMuletaMultaMundoMu~ecaMuralMuroMu/sculoMuseoMusgoMu/sicaMusloNa/carNacio/nNadarNaipeNaranjaNarizNarrarNasalNatalNativoNaturalNa/useaNavalNaveNavidadNecioNe/ctarNegarNegocioNegroNeo/nNervioNetoNeutroNevarNeveraNichoNidoNieblaNietoNi~ezNi~oNi/tidoNivelNoblezaNocheNo/minaNoriaNormaNorteNotaNoticiaNovatoNovelaNovioNubeNucaNu/cleoNudilloNudoNueraNueveNuezNuloNu/meroNutriaOasisObesoObispoObjetoObraObreroObservarObtenerObvioOcaOcasoOce/anoOchentaOchoOcioOcreOctavoOctubreOcultoOcuparOcurrirOdiarOdioOdiseaOesteOfensaOfertaOficioOfrecerOgroOi/doOi/rOjoOlaOleadaOlfatoOlivoOllaOlmoOlorOlvidoOmbligoOndaOnzaOpacoOpcio/nO/peraOpinarOponerOptarO/pticaOpuestoOracio/nOradorOralO/rbitaOrcaOrdenOrejaO/rganoOrgi/aOrgulloOrienteOrigenOrillaOroOrquestaOrugaOsadi/aOscuroOseznoOsoOstraOto~oOtroOvejaO/vuloO/xidoOxi/genoOyenteOzonoPactoPadrePaellaPa/ginaPagoPai/sPa/jaroPalabraPalcoPaletaPa/lidoPalmaPalomaPalparPanPanalPa/nicoPanteraPa~ueloPapa/PapelPapillaPaquetePararParcelaParedParirParoPa/rpadoParquePa/rrafoPartePasarPaseoPasio/nPasoPastaPataPatioPatriaPausaPautaPavoPayasoPeato/nPecadoPeceraPechoPedalPedirPegarPeinePelarPelda~oPeleaPeligroPellejoPeloPelucaPenaPensarPe~o/nPeo/nPeorPepinoPeque~oPeraPerchaPerderPerezaPerfilPericoPerlaPermisoPerroPersonaPesaPescaPe/simoPesta~aPe/taloPetro/leoPezPezu~aPicarPicho/nPiePiedraPiernaPiezaPijamaPilarPilotoPimientaPinoPintorPinzaPi~aPiojoPipaPirataPisarPiscinaPisoPistaPito/nPizcaPlacaPlanPlataPlayaPlazaPleitoPlenoPlomoPlumaPluralPobrePocoPoderPodioPoemaPoesi/aPoetaPolenPolici/aPolloPolvoPomadaPomeloPomoPompaPonerPorcio/nPortalPosadaPoseerPosiblePostePotenciaPotroPozoPradoPrecozPreguntaPremioPrensaPresoPrevioPrimoPri/ncipePrisio/nPrivarProaProbarProcesoProductoProezaProfesorProgramaProlePromesaProntoPropioPro/ximoPruebaPu/blicoPucheroPudorPuebloPuertaPuestoPulgaPulirPulmo/nPulpoPulsoPumaPuntoPu~alPu~oPupaPupilaPure/QuedarQuejaQuemarQuererQuesoQuietoQui/micaQuinceQuitarRa/banoRabiaRaboRacio/nRadicalRai/zRamaRampaRanchoRangoRapazRa/pidoRaptoRasgoRaspaRatoRayoRazaRazo/nReaccio/nRealidadReba~oReboteRecaerRecetaRechazoRecogerRecreoRectoRecursoRedRedondoReducirReflejoReformaRefra/nRefugioRegaloRegirReglaRegresoRehe/nReinoRei/rRejaRelatoRelevoRelieveRellenoRelojRemarRemedioRemoRencorRendirRentaRepartoRepetirReposoReptilResRescateResinaRespetoRestoResumenRetiroRetornoRetratoReunirReve/sRevistaReyRezarRicoRiegoRiendaRiesgoRifaRi/gidoRigorRinco/nRi~o/nRi/oRiquezaRisaRitmoRitoRizoRobleRoceRociarRodarRodeoRodillaRoerRojizoRojoRomeroRomperRonRoncoRondaRopaRoperoRosaRoscaRostroRotarRubi/RuborRudoRuedaRugirRuidoRuinaRuletaRuloRumboRumorRupturaRutaRutinaSa/badoSaberSabioSableSacarSagazSagradoSalaSaldoSaleroSalirSalmo/nSalo/nSalsaSaltoSaludSalvarSambaSancio/nSandi/aSanearSangreSanidadSanoSantoSapoSaqueSardinaSarte/nSastreSata/nSaunaSaxofo/nSeccio/nSecoSecretoSectaSedSeguirSeisSelloSelvaSemanaSemillaSendaSensorSe~alSe~orSepararSepiaSequi/aSerSerieSermo/nServirSesentaSesio/nSetaSetentaSeveroSexoSextoSidraSiestaSieteSigloSignoSi/labaSilbarSilencioSillaSi/mboloSimioSirenaSistemaSitioSituarSobreSocioSodioSolSolapaSoldadoSoledadSo/lidoSoltarSolucio/nSombraSondeoSonidoSonoroSonrisaSopaSoplarSoporteSordoSorpresaSorteoSoste/nSo/tanoSuaveSubirSucesoSudorSuegraSueloSue~oSuerteSufrirSujetoSulta/nSumarSuperarSuplirSuponerSupremoSurSurcoSure~oSurgirSustoSutilTabacoTabiqueTablaTabu/TacoTactoTajoTalarTalcoTalentoTallaTalo/nTama~oTamborTangoTanqueTapaTapeteTapiaTapo/nTaquillaTardeTareaTarifaTarjetaTarotTarroTartaTatuajeTauroTazaTazo/nTeatroTechoTeclaTe/cnicaTejadoTejerTejidoTelaTele/fonoTemaTemorTemploTenazTenderTenerTenisTensoTeori/aTerapiaTercoTe/rminoTernuraTerrorTesisTesoroTestigoTeteraTextoTezTibioTiburo/nTiempoTiendaTierraTiesoTigreTijeraTildeTimbreTi/midoTimoTintaTi/oTi/picoTipoTiraTiro/nTita/nTi/tereTi/tuloTizaToallaTobilloTocarTocinoTodoTogaToldoTomarTonoTontoToparTopeToqueTo/raxToreroTormentaTorneoToroTorpedoTorreTorsoTortugaTosToscoToserTo/xicoTrabajoTractorTraerTra/ficoTragoTrajeTramoTranceTratoTraumaTrazarTre/bolTreguaTreintaTrenTreparTresTribuTrigoTripaTristeTriunfoTrofeoTrompaTroncoTropaTroteTrozoTrucoTruenoTrufaTuberi/aTuboTuertoTumbaTumorTu/nelTu/nicaTurbinaTurismoTurnoTutorUbicarU/lceraUmbralUnidadUnirUniversoUnoUntarU~aUrbanoUrbeUrgenteUrnaUsarUsuarioU/tilUtopi/aUvaVacaVaci/oVacunaVagarVagoVainaVajillaValeVa/lidoValleValorVa/lvulaVampiroVaraVariarVaro/nVasoVecinoVectorVehi/culoVeinteVejezVelaVeleroVelozVenaVencerVendaVenenoVengarVenirVentaVenusVerVeranoVerboVerdeVeredaVerjaVersoVerterVi/aViajeVibrarVicioVi/ctimaVidaVi/deoVidrioViejoViernesVigorVilVillaVinagreVinoVi~edoVioli/nViralVirgoVirtudVisorVi/speraVistaVitaminaViudoVivazViveroVivirVivoVolca/nVolumenVolverVorazVotarVotoVozVueloVulgarYacerYateYeguaYemaYernoYesoYodoYogaYogurZafiroZanjaZapatoZarzaZonaZorroZumoZurdo\";\n\nconst lookup: { [word: string]: number } = {};\nlet wordlist: Array = null;\n\nfunction dropDiacritic(word: string): string {\n logger.checkNormalize();\n return toUtf8String(Array.prototype.filter.call(toUtf8Bytes(word.normalize(\"NFD\").toLowerCase()), (c: number) => {\n return ((c >= 65 && c <= 90) || (c >= 97 && c <= 123));\n }));\n}\n\nfunction expand(word: string): string {\n const output: Array = [];\n Array.prototype.forEach.call(toUtf8Bytes(word), (c: number) => {\n // Acute accent\n if (c === 47) {\n output.push(204);\n output.push(129);\n // n-tilde\n } else if (c === 126) {\n output.push(110);\n output.push(204);\n output.push(131);\n } else {\n output.push(c);\n }\n });\n\n return toUtf8String(output);\n}\n\nfunction loadWords(lang: Wordlist): void {\n if (wordlist != null) { return; }\n wordlist = words.replace(/([A-Z])/g, \" $1\").toLowerCase().substring(1).split(\" \").map((w) => expand(w));\n wordlist.forEach((word, index) => {\n lookup[dropDiacritic(word)] = index;\n });\n\n // Verify the computed list matches the official list\n /* istanbul ignore if */\n if (Wordlist.check(lang) !== \"0xf74fb7092aeacdfbf8959557de22098da512207fb9f109cb526994938cf40300\") {\n wordlist = null;\n throw new Error(\"BIP39 Wordlist for es (Spanish) FAILED\");\n }\n}\n\nclass LangEs extends Wordlist {\n constructor() {\n super(\"es\");\n }\n\n getWord(index: number): string {\n loadWords(this);\n return wordlist[index];\n }\n\n getWordIndex(word: string): number {\n loadWords(this);\n return lookup[dropDiacritic(word)];\n }\n}\n\nconst langEs = new LangEs();\nWordlist.register(langEs);\n\nexport { langEs };\n", "\"use strict\";\n\nimport { toUtf8Bytes, toUtf8String } from \"@ethersproject/strings\";\n\nimport { logger, Wordlist } from \"./wordlist\";\n\n\nconst words = \"AbaisserAbandonAbdiquerAbeilleAbolirAborderAboutirAboyerAbrasifAbreuverAbriterAbrogerAbruptAbsenceAbsoluAbsurdeAbusifAbyssalAcade/mieAcajouAcarienAccablerAccepterAcclamerAccoladeAccrocheAccuserAcerbeAchatAcheterAcidulerAcierAcompteAcque/rirAcronymeActeurActifActuelAdepteAde/quatAdhe/sifAdjectifAdjugerAdmettreAdmirerAdopterAdorerAdoucirAdresseAdroitAdulteAdverbeAe/rerAe/ronefAffaireAffecterAfficheAffreuxAffublerAgacerAgencerAgileAgiterAgraferAgre/ableAgrumeAiderAiguilleAilierAimableAisanceAjouterAjusterAlarmerAlchimieAlerteAlge-breAlgueAlie/nerAlimentAlle/gerAlliageAllouerAllumerAlourdirAlpagaAltesseAlve/oleAmateurAmbiguAmbreAme/nagerAmertumeAmidonAmiralAmorcerAmourAmovibleAmphibieAmpleurAmusantAnalyseAnaphoreAnarchieAnatomieAncienAne/antirAngleAngoisseAnguleuxAnimalAnnexerAnnonceAnnuelAnodinAnomalieAnonymeAnormalAntenneAntidoteAnxieuxApaiserApe/ritifAplanirApologieAppareilAppelerApporterAppuyerAquariumAqueducArbitreArbusteArdeurArdoiseArgentArlequinArmatureArmementArmoireArmureArpenterArracherArriverArroserArsenicArte/rielArticleAspectAsphalteAspirerAssautAsservirAssietteAssocierAssurerAsticotAstreAstuceAtelierAtomeAtriumAtroceAttaqueAttentifAttirerAttraperAubaineAubergeAudaceAudibleAugurerAuroreAutomneAutrucheAvalerAvancerAvariceAvenirAverseAveugleAviateurAvideAvionAviserAvoineAvouerAvrilAxialAxiomeBadgeBafouerBagageBaguetteBaignadeBalancerBalconBaleineBalisageBambinBancaireBandageBanlieueBannie-reBanquierBarbierBarilBaronBarqueBarrageBassinBastionBatailleBateauBatterieBaudrierBavarderBeletteBe/lierBeloteBe/ne/ficeBerceauBergerBerlineBermudaBesaceBesogneBe/tailBeurreBiberonBicycleBiduleBijouBilanBilingueBillardBinaireBiologieBiopsieBiotypeBiscuitBisonBistouriBitumeBizarreBlafardBlagueBlanchirBlessantBlinderBlondBloquerBlousonBobardBobineBoireBoiserBolideBonbonBondirBonheurBonifierBonusBordureBorneBotteBoucleBoueuxBougieBoulonBouquinBourseBoussoleBoutiqueBoxeurBrancheBrasierBraveBrebisBre-cheBreuvageBricolerBrigadeBrillantBriocheBriqueBrochureBroderBronzerBrousseBroyeurBrumeBrusqueBrutalBruyantBuffleBuissonBulletinBureauBurinBustierButinerButoirBuvableBuvetteCabanonCabineCachetteCadeauCadreCafe/ineCaillouCaissonCalculerCalepinCalibreCalmerCalomnieCalvaireCamaradeCame/raCamionCampagneCanalCanetonCanonCantineCanularCapableCaporalCapriceCapsuleCapterCapucheCarabineCarboneCaresserCaribouCarnageCarotteCarreauCartonCascadeCasierCasqueCassureCauserCautionCavalierCaverneCaviarCe/dilleCeintureCe/lesteCelluleCendrierCensurerCentralCercleCe/re/bralCeriseCernerCerveauCesserChagrinChaiseChaleurChambreChanceChapitreCharbonChasseurChatonChaussonChavirerChemiseChenilleChe/quierChercherChevalChienChiffreChignonChime-reChiotChlorureChocolatChoisirChoseChouetteChromeChuteCigareCigogneCimenterCine/maCintrerCirculerCirerCirqueCiterneCitoyenCitronCivilClaironClameurClaquerClasseClavierClientClignerClimatClivageClocheClonageCloporteCobaltCobraCocasseCocotierCoderCodifierCoffreCognerCohe/sionCoifferCoincerCole-reColibriCollineColmaterColonelCombatCome/dieCommandeCompactConcertConduireConfierCongelerConnoterConsonneContactConvexeCopainCopieCorailCorbeauCordageCornicheCorpusCorrectCorte-geCosmiqueCostumeCotonCoudeCoupureCourageCouteauCouvrirCoyoteCrabeCrainteCravateCrayonCre/atureCre/diterCre/meuxCreuserCrevetteCriblerCrierCristalCrite-reCroireCroquerCrotaleCrucialCruelCrypterCubiqueCueillirCuille-reCuisineCuivreCulminerCultiverCumulerCupideCuratifCurseurCyanureCycleCylindreCyniqueDaignerDamierDangerDanseurDauphinDe/battreDe/biterDe/borderDe/briderDe/butantDe/calerDe/cembreDe/chirerDe/ciderDe/clarerDe/corerDe/crireDe/cuplerDe/daleDe/ductifDe/esseDe/fensifDe/filerDe/frayerDe/gagerDe/givrerDe/glutirDe/graferDe/jeunerDe/liceDe/logerDemanderDemeurerDe/molirDe/nicherDe/nouerDentelleDe/nuderDe/partDe/penserDe/phaserDe/placerDe/poserDe/rangerDe/roberDe/sastreDescenteDe/sertDe/signerDe/sobe/irDessinerDestrierDe/tacherDe/testerDe/tourerDe/tresseDevancerDevenirDevinerDevoirDiableDialogueDiamantDicterDiffe/rerDige/rerDigitalDigneDiluerDimancheDiminuerDioxydeDirectifDirigerDiscuterDisposerDissiperDistanceDivertirDiviserDocileDocteurDogmeDoigtDomaineDomicileDompterDonateurDonjonDonnerDopamineDortoirDorureDosageDoseurDossierDotationDouanierDoubleDouceurDouterDoyenDragonDraperDresserDribblerDroitureDuperieDuplexeDurableDurcirDynastieE/blouirE/carterE/charpeE/chelleE/clairerE/clipseE/cloreE/cluseE/coleE/conomieE/corceE/couterE/craserE/cre/merE/crivainE/crouE/cumeE/cureuilE/difierE/duquerEffacerEffectifEffigieEffortEffrayerEffusionE/galiserE/garerE/jecterE/laborerE/largirE/lectronE/le/gantE/le/phantE/le-veE/ligibleE/litismeE/logeE/luciderE/luderEmballerEmbellirEmbryonE/meraudeE/missionEmmenerE/motionE/mouvoirEmpereurEmployerEmporterEmpriseE/mulsionEncadrerEnche-reEnclaveEncocheEndiguerEndosserEndroitEnduireE/nergieEnfanceEnfermerEnfouirEngagerEnginEngloberE/nigmeEnjamberEnjeuEnleverEnnemiEnnuyeuxEnrichirEnrobageEnseigneEntasserEntendreEntierEntourerEntraverE/nume/rerEnvahirEnviableEnvoyerEnzymeE/olienE/paissirE/pargneE/patantE/pauleE/picerieE/pide/mieE/pierE/pilogueE/pineE/pisodeE/pitapheE/poqueE/preuveE/prouverE/puisantE/querreE/quipeE/rigerE/rosionErreurE/ruptionEscalierEspadonEspe-ceEspie-gleEspoirEspritEsquiverEssayerEssenceEssieuEssorerEstimeEstomacEstradeE/tage-reE/talerE/tancheE/tatiqueE/teindreE/tendoirE/ternelE/thanolE/thiqueEthnieE/tirerE/tofferE/toileE/tonnantE/tourdirE/trangeE/troitE/tudeEuphorieE/valuerE/vasionE/ventailE/videnceE/viterE/volutifE/voquerExactExage/rerExaucerExcellerExcitantExclusifExcuseExe/cuterExempleExercerExhalerExhorterExigenceExilerExisterExotiqueExpe/dierExplorerExposerExprimerExquisExtensifExtraireExulterFableFabuleuxFacetteFacileFactureFaiblirFalaiseFameuxFamilleFarceurFarfeluFarineFaroucheFascinerFatalFatigueFauconFautifFaveurFavoriFe/brileFe/conderFe/de/rerFe/linFemmeFe/murFendoirFe/odalFermerFe/roceFerveurFestivalFeuilleFeutreFe/vrierFiascoFicelerFictifFide-leFigureFilatureFiletageFilie-reFilleulFilmerFilouFiltrerFinancerFinirFioleFirmeFissureFixerFlairerFlammeFlasqueFlatteurFle/auFle-cheFleurFlexionFloconFloreFluctuerFluideFluvialFolieFonderieFongibleFontaineForcerForgeronFormulerFortuneFossileFoudreFouge-reFouillerFoulureFourmiFragileFraiseFranchirFrapperFrayeurFre/gateFreinerFrelonFre/mirFre/ne/sieFre-reFriableFrictionFrissonFrivoleFroidFromageFrontalFrotterFruitFugitifFuiteFureurFurieuxFurtifFusionFuturGagnerGalaxieGalerieGambaderGarantirGardienGarnirGarrigueGazelleGazonGe/antGe/latineGe/luleGendarmeGe/ne/ralGe/nieGenouGentilGe/ologieGe/ome-treGe/raniumGermeGestuelGeyserGibierGiclerGirafeGivreGlaceGlaiveGlisserGlobeGloireGlorieuxGolfeurGommeGonflerGorgeGorilleGoudronGouffreGoulotGoupilleGourmandGoutteGraduelGraffitiGraineGrandGrappinGratuitGravirGrenatGriffureGrillerGrimperGrognerGronderGrotteGroupeGrugerGrutierGruye-reGue/pardGuerrierGuideGuimauveGuitareGustatifGymnasteGyrostatHabitudeHachoirHalteHameauHangarHannetonHaricotHarmonieHarponHasardHe/liumHe/matomeHerbeHe/rissonHermineHe/ronHe/siterHeureuxHibernerHibouHilarantHistoireHiverHomardHommageHomoge-neHonneurHonorerHonteuxHordeHorizonHorlogeHormoneHorribleHouleuxHousseHublotHuileuxHumainHumbleHumideHumourHurlerHydromelHygie-neHymneHypnoseIdylleIgnorerIguaneIlliciteIllusionImageImbiberImiterImmenseImmobileImmuableImpactImpe/rialImplorerImposerImprimerImputerIncarnerIncendieIncidentInclinerIncoloreIndexerIndiceInductifIne/ditIneptieInexactInfiniInfligerInformerInfusionInge/rerInhalerInhiberInjecterInjureInnocentInoculerInonderInscrireInsecteInsigneInsoliteInspirerInstinctInsulterIntactIntenseIntimeIntrigueIntuitifInutileInvasionInventerInviterInvoquerIroniqueIrradierIrre/elIrriterIsolerIvoireIvresseJaguarJaillirJambeJanvierJardinJaugerJauneJavelotJetableJetonJeudiJeunesseJoindreJoncherJonglerJoueurJouissifJournalJovialJoyauJoyeuxJubilerJugementJuniorJuponJuristeJusticeJuteuxJuve/nileKayakKimonoKiosqueLabelLabialLabourerLace/rerLactoseLaguneLaineLaisserLaitierLambeauLamelleLampeLanceurLangageLanterneLapinLargeurLarmeLaurierLavaboLavoirLectureLe/galLe/gerLe/gumeLessiveLettreLevierLexiqueLe/zardLiasseLibe/rerLibreLicenceLicorneLie-geLie-vreLigatureLigoterLigueLimerLimiteLimonadeLimpideLine/aireLingotLionceauLiquideLisie-reListerLithiumLitigeLittoralLivreurLogiqueLointainLoisirLombricLoterieLouerLourdLoutreLouveLoyalLubieLucideLucratifLueurLugubreLuisantLumie-reLunaireLundiLuronLutterLuxueuxMachineMagasinMagentaMagiqueMaigreMaillonMaintienMairieMaisonMajorerMalaxerMale/ficeMalheurMaliceMalletteMammouthMandaterManiableManquantManteauManuelMarathonMarbreMarchandMardiMaritimeMarqueurMarronMartelerMascotteMassifMate/rielMatie-reMatraqueMaudireMaussadeMauveMaximalMe/chantMe/connuMe/dailleMe/decinMe/diterMe/duseMeilleurMe/langeMe/lodieMembreMe/moireMenacerMenerMenhirMensongeMentorMercrediMe/riteMerleMessagerMesureMe/talMe/te/oreMe/thodeMe/tierMeubleMiaulerMicrobeMietteMignonMigrerMilieuMillionMimiqueMinceMine/ralMinimalMinorerMinuteMiracleMiroiterMissileMixteMobileModerneMoelleuxMondialMoniteurMonnaieMonotoneMonstreMontagneMonumentMoqueurMorceauMorsureMortierMoteurMotifMoucheMoufleMoulinMoussonMoutonMouvantMultipleMunitionMurailleMure-neMurmureMuscleMuse/umMusicienMutationMuterMutuelMyriadeMyrtilleMyste-reMythiqueNageurNappeNarquoisNarrerNatationNationNatureNaufrageNautiqueNavireNe/buleuxNectarNe/fasteNe/gationNe/gligerNe/gocierNeigeNerveuxNettoyerNeuroneNeutronNeveuNicheNickelNitrateNiveauNobleNocifNocturneNoirceurNoisetteNomadeNombreuxNommerNormatifNotableNotifierNotoireNourrirNouveauNovateurNovembreNoviceNuageNuancerNuireNuisibleNume/roNuptialNuqueNutritifObe/irObjectifObligerObscurObserverObstacleObtenirObturerOccasionOccuperOce/anOctobreOctroyerOctuplerOculaireOdeurOdorantOffenserOfficierOffrirOgiveOiseauOisillonOlfactifOlivierOmbrageOmettreOnctueuxOndulerOne/reuxOniriqueOpaleOpaqueOpe/rerOpinionOpportunOpprimerOpterOptiqueOrageuxOrangeOrbiteOrdonnerOreilleOrganeOrgueilOrificeOrnementOrqueOrtieOscillerOsmoseOssatureOtarieOuraganOursonOutilOutragerOuvrageOvationOxydeOxyge-neOzonePaisiblePalacePalmare-sPalourdePalperPanachePandaPangolinPaniquerPanneauPanoramaPantalonPapayePapierPapoterPapyrusParadoxeParcelleParesseParfumerParlerParoleParrainParsemerPartagerParureParvenirPassionPaste-quePaternelPatiencePatronPavillonPavoiserPayerPaysagePeignePeintrePelagePe/licanPellePelousePeluchePendulePe/ne/trerPe/niblePensifPe/nuriePe/pitePe/plumPerdrixPerforerPe/riodePermuterPerplexePersilPertePeserPe/talePetitPe/trirPeuplePharaonPhobiePhoquePhotonPhrasePhysiquePianoPicturalPie-cePierrePieuvrePilotePinceauPipettePiquerPiroguePiscinePistonPivoterPixelPizzaPlacardPlafondPlaisirPlanerPlaquePlastronPlateauPleurerPlexusPliagePlombPlongerPluiePlumagePochettePoe/siePoe-tePointePoirierPoissonPoivrePolairePolicierPollenPolygonePommadePompierPonctuelPonde/rerPoneyPortiquePositionPosse/derPosturePotagerPoteauPotionPoucePoulainPoumonPourprePoussinPouvoirPrairiePratiquePre/cieuxPre/direPre/fixePre/ludePre/nomPre/sencePre/textePre/voirPrimitifPrincePrisonPriverProble-meProce/derProdigeProfondProgre-sProieProjeterProloguePromenerPropreProspe-reProte/gerProuesseProverbePrudencePruneauPsychosePublicPuceronPuiserPulpePulsarPunaisePunitifPupitrePurifierPuzzlePyramideQuasarQuerelleQuestionQuie/tudeQuitterQuotientRacineRaconterRadieuxRagondinRaideurRaisinRalentirRallongeRamasserRapideRasageRatisserRavagerRavinRayonnerRe/actifRe/agirRe/aliserRe/animerRecevoirRe/citerRe/clamerRe/colterRecruterReculerRecyclerRe/digerRedouterRefaireRe/flexeRe/formerRefrainRefugeRe/galienRe/gionRe/glageRe/gulierRe/ite/rerRejeterRejouerRelatifReleverReliefRemarqueReme-deRemiseRemonterRemplirRemuerRenardRenfortReniflerRenoncerRentrerRenvoiReplierReporterRepriseReptileRequinRe/serveRe/sineuxRe/soudreRespectResterRe/sultatRe/tablirRetenirRe/ticuleRetomberRetracerRe/unionRe/ussirRevancheRevivreRe/volteRe/vulsifRichesseRideauRieurRigideRigolerRincerRiposterRisibleRisqueRituelRivalRivie-reRocheuxRomanceRompreRonceRondinRoseauRosierRotatifRotorRotuleRougeRouilleRouleauRoutineRoyaumeRubanRubisRucheRuelleRugueuxRuinerRuisseauRuserRustiqueRythmeSablerSaboterSabreSacocheSafariSagesseSaisirSaladeSaliveSalonSaluerSamediSanctionSanglierSarcasmeSardineSaturerSaugrenuSaumonSauterSauvageSavantSavonnerScalpelScandaleSce/le/ratSce/narioSceptreSche/maScienceScinderScoreScrutinSculpterSe/anceSe/cableSe/cherSecouerSe/cre/terSe/datifSe/duireSeigneurSe/jourSe/lectifSemaineSemblerSemenceSe/minalSe/nateurSensibleSentenceSe/parerSe/quenceSereinSergentSe/rieuxSerrureSe/rumServiceSe/sameSe/virSevrageSextupleSide/ralSie-cleSie/gerSifflerSigleSignalSilenceSiliciumSimpleSince-reSinistreSiphonSiropSismiqueSituerSkierSocialSocleSodiumSoigneuxSoldatSoleilSolitudeSolubleSombreSommeilSomnolerSondeSongeurSonnetteSonoreSorcierSortirSosieSottiseSoucieuxSoudureSouffleSouleverSoupapeSourceSoutirerSouvenirSpacieuxSpatialSpe/cialSphe-reSpiralStableStationSternumStimulusStipulerStrictStudieuxStupeurStylisteSublimeSubstratSubtilSubvenirSucce-sSucreSuffixeSugge/rerSuiveurSulfateSuperbeSupplierSurfaceSuricateSurmenerSurpriseSursautSurvieSuspectSyllabeSymboleSyme/trieSynapseSyntaxeSyste-meTabacTablierTactileTaillerTalentTalismanTalonnerTambourTamiserTangibleTapisTaquinerTarderTarifTartineTasseTatamiTatouageTaupeTaureauTaxerTe/moinTemporelTenailleTendreTeneurTenirTensionTerminerTerneTerribleTe/tineTexteThe-meThe/orieThe/rapieThoraxTibiaTie-deTimideTirelireTiroirTissuTitaneTitreTituberTobogganTole/rantTomateToniqueTonneauToponymeTorcheTordreTornadeTorpilleTorrentTorseTortueTotemToucherTournageTousserToxineTractionTraficTragiqueTrahirTrainTrancherTravailTre-fleTremperTre/sorTreuilTriageTribunalTricoterTrilogieTriompheTriplerTriturerTrivialTromboneTroncTropicalTroupeauTuileTulipeTumulteTunnelTurbineTuteurTutoyerTuyauTympanTyphonTypiqueTyranUbuesqueUltimeUltrasonUnanimeUnifierUnionUniqueUnitaireUniversUraniumUrbainUrticantUsageUsineUsuelUsureUtileUtopieVacarmeVaccinVagabondVagueVaillantVaincreVaisseauValableValiseVallonValveVampireVanilleVapeurVarierVaseuxVassalVasteVecteurVedetteVe/ge/talVe/hiculeVeinardVe/loceVendrediVe/ne/rerVengerVenimeuxVentouseVerdureVe/rinVernirVerrouVerserVertuVestonVe/te/ranVe/tusteVexantVexerViaducViandeVictoireVidangeVide/oVignetteVigueurVilainVillageVinaigreViolonVipe-reVirementVirtuoseVirusVisageViseurVisionVisqueuxVisuelVitalVitesseViticoleVitrineVivaceVivipareVocationVoguerVoileVoisinVoitureVolailleVolcanVoltigerVolumeVoraceVortexVoterVouloirVoyageVoyelleWagonXe/nonYachtZe-breZe/nithZesteZoologie\";\n\nlet wordlist: Array = null;\nconst lookup: { [word: string]: number } = { }\n\nfunction dropDiacritic(word: string): string {\n logger.checkNormalize();\n return toUtf8String(Array.prototype.filter.call(toUtf8Bytes(word.normalize(\"NFD\").toLowerCase()), (c: number) => {\n return ((c >= 65 && c <= 90) || (c >= 97 && c <= 123));\n }));\n}\n\nfunction expand(word: string): string {\n const output: Array = [];\n\n Array.prototype.forEach.call(toUtf8Bytes(word), (c: number) => {\n // Acute accent\n if (c === 47) {\n output.push(204);\n output.push(129);\n\n // Grave accent\n } else if (c === 45) {\n output.push(204);\n output.push(128);\n\n } else {\n output.push(c);\n }\n });\n\n return toUtf8String(output);\n}\n\nfunction loadWords(lang: Wordlist): void {\n if (wordlist != null) { return; }\n wordlist = words.replace(/([A-Z])/g, \" $1\").toLowerCase().substring(1).split(\" \").map((w) => expand(w));\n wordlist.forEach((word, index) => {\n lookup[dropDiacritic(word)] = index;\n });\n\n // Verify the computed list matches the official list\n /* istanbul ignore if */\n if (Wordlist.check(lang) !== \"0x51deb7ae009149dc61a6bd18a918eb7ac78d2775726c68e598b92d002519b045\") {\n wordlist = null;\n throw new Error(\"BIP39 Wordlist for fr (French) FAILED\");\n }\n}\n\nclass LangFr extends Wordlist {\n constructor() {\n super(\"fr\");\n }\n\n getWord(index: number): string {\n loadWords(this);\n return wordlist[index];\n }\n\n getWordIndex(word: string): number {\n loadWords(this);\n return lookup[dropDiacritic(word)];\n }\n}\n\nconst langFr = new LangFr();\nWordlist.register(langFr);\n\nexport { langFr };\n", "\"use strict\";\n\nimport { hexlify } from \"@ethersproject/bytes\";\nimport { toUtf8Bytes, toUtf8String } from \"@ethersproject/strings\";\n\nimport { logger, Wordlist } from \"./wordlist\";\n\n\nconst data = [\n\n // 4-kana words\n \"AQRASRAGBAGUAIRAHBAghAURAdBAdcAnoAMEAFBAFCBKFBQRBSFBCXBCDBCHBGFBEQBpBBpQBIkBHNBeOBgFBVCBhBBhNBmOBmRBiHBiFBUFBZDBvFBsXBkFBlcBjYBwDBMBBTBBTRBWBBWXXaQXaRXQWXSRXCFXYBXpHXOQXHRXhRXuRXmXXbRXlXXwDXTRXrCXWQXWGaBWaKcaYgasFadQalmaMBacAKaRKKBKKXKKjKQRKDRKCYKCRKIDKeVKHcKlXKjHKrYNAHNBWNaRNKcNIBNIONmXNsXNdXNnBNMBNRBNrXNWDNWMNFOQABQAHQBrQXBQXFQaRQKXQKDQKOQKFQNBQNDQQgQCXQCDQGBQGDQGdQYXQpBQpQQpHQLXQHuQgBQhBQhCQuFQmXQiDQUFQZDQsFQdRQkHQbRQlOQlmQPDQjDQwXQMBQMDQcFQTBQTHQrDDXQDNFDGBDGQDGRDpFDhFDmXDZXDbRDMYDRdDTRDrXSAhSBCSBrSGQSEQSHBSVRShYShkSyQSuFSiBSdcSoESocSlmSMBSFBSFKSFNSFdSFcCByCaRCKcCSBCSRCCrCGbCEHCYXCpBCpQCIBCIHCeNCgBCgFCVECVcCmkCmwCZXCZFCdRClOClmClFCjDCjdCnXCwBCwXCcRCFQCFjGXhGNhGDEGDMGCDGCHGIFGgBGVXGVEGVRGmXGsXGdYGoSGbRGnXGwXGwDGWRGFNGFLGFOGFdGFkEABEBDEBFEXOEaBEKSENBENDEYXEIgEIkEgBEgQEgHEhFEudEuFEiBEiHEiFEZDEvBEsXEsFEdXEdREkFEbBEbRElFEPCEfkEFNYAEYAhYBNYQdYDXYSRYCEYYoYgQYgRYuRYmCYZTYdBYbEYlXYjQYRbYWRpKXpQopQnpSFpCXpIBpISphNpdBpdRpbRpcZpFBpFNpFDpFopFrLADLBuLXQLXcLaFLCXLEhLpBLpFLHXLeVLhILdHLdRLoDLbRLrXIABIBQIBCIBsIBoIBMIBRIXaIaRIKYIKRINBINuICDIGBIIDIIkIgRIxFIyQIiHIdRIbYIbRIlHIwRIMYIcRIRVITRIFBIFNIFQOABOAFOBQOaFONBONMOQFOSFOCDOGBOEQOpBOLXOIBOIFOgQOgFOyQOycOmXOsXOdIOkHOMEOMkOWWHBNHXNHXWHNXHDuHDRHSuHSRHHoHhkHmRHdRHkQHlcHlRHwBHWcgAEgAggAkgBNgBQgBEgXOgYcgLXgHjgyQgiBgsFgdagMYgWSgFQgFEVBTVXEVKBVKNVKDVKYVKRVNBVNYVDBVDxVSBVSRVCjVGNVLXVIFVhBVhcVsXVdRVbRVlRhBYhKYhDYhGShxWhmNhdahdkhbRhjohMXhTRxAXxXSxKBxNBxEQxeNxeQxhXxsFxdbxlHxjcxFBxFNxFQxFOxFoyNYyYoybcyMYuBQuBRuBruDMuCouHBudQukkuoBulVuMXuFEmCYmCRmpRmeDmiMmjdmTFmFQiADiBOiaRiKRiNBiNRiSFiGkiGFiERipRiLFiIFihYibHijBijEiMXiWBiFBiFCUBQUXFUaRUNDUNcUNRUNFUDBUSHUCDUGBUGFUEqULNULoUIRUeEUeYUgBUhFUuRUiFUsXUdFUkHUbBUjSUjYUwXUMDUcHURdUTBUrBUrXUrQZAFZXZZaRZKFZNBZQFZCXZGBZYdZpBZLDZIFZHXZHNZeQZVRZVFZmXZiBZvFZdFZkFZbHZbFZwXZcCZcRZRBvBQvBGvBLvBWvCovMYsAFsBDsaRsKFsNFsDrsSHsSFsCXsCRsEBsEHsEfspBsLBsLDsIgsIRseGsbRsFBsFQsFSdNBdSRdCVdGHdYDdHcdVbdySduDdsXdlRdwXdWYdWcdWRkBMkXOkaRkNIkNFkSFkCFkYBkpRkeNkgBkhVkmXksFklVkMBkWDkFNoBNoaQoaFoNBoNXoNaoNEoSRoEroYXoYCoYbopRopFomXojkowXorFbBEbEIbdBbjYlaRlDElMXlFDjKjjSRjGBjYBjYkjpRjLXjIBjOFjeVjbRjwBnXQnSHnpFnLXnINnMBnTRwXBwXNwXYwNFwQFwSBwGFwLXwLDweNwgBwuHwjDwnXMBXMpFMIBMeNMTHcaQcNBcDHcSFcCXcpBcLXcLDcgFcuFcnXcwXccDcTQcrFTQErXNrCHrpFrgFrbFrTHrFcWNYWNbWEHWMXWTR\",\n\n // 5-kana words\n \"ABGHABIJAEAVAYJQALZJAIaRAHNXAHdcAHbRAZJMAZJRAZTRAdVJAklmAbcNAjdRAMnRAMWYAWpRAWgRAFgBAFhBAFdcBNJBBNJDBQKBBQhcBQlmBDEJBYJkBYJTBpNBBpJFBIJBBIJDBIcABOKXBOEJBOVJBOiJBOZJBepBBeLXBeIFBegBBgGJBVJXBuocBiJRBUJQBlXVBlITBwNFBMYVBcqXBTlmBWNFBWiJBWnRBFGHBFwXXKGJXNJBXNZJXDTTXSHSXSVRXSlHXCJDXGQJXEhXXYQJXYbRXOfXXeNcXVJFXhQJXhEJXdTRXjdXXMhBXcQTXRGBXTEBXTnQXFCXXFOFXFgFaBaFaBNJaBCJaBpBaBwXaNJKaNJDaQIBaDpRaEPDaHMFamDJalEJaMZJaFaFaFNBaFQJaFLDaFVHKBCYKBEBKBHDKXaFKXGdKXEJKXpHKXIBKXZDKXwXKKwLKNacKNYJKNJoKNWcKDGdKDTRKChXKGaRKGhBKGbRKEBTKEaRKEPTKLMDKLWRKOHDKVJcKdBcKlIBKlOPKFSBKFEPKFpFNBNJNJBQNBGHNBEPNBHXNBgFNBVXNBZDNBsXNBwXNNaRNNJDNNJENNJkNDCJNDVDNGJRNJiDNZJNNsCJNJFNNFSBNFCXNFEPNFLXNFIFQJBFQCaRQJEQQLJDQLJFQIaRQOqXQHaFQHHQQVJXQVJDQhNJQmEIQZJFQsJXQJrFQWbRDJABDBYJDXNFDXCXDXLXDXZDDXsJDQqXDSJFDJCXDEPkDEqXDYmQDpSJDOCkDOGQDHEIDVJDDuDuDWEBDJFgSBNDSBSFSBGHSBIBSBTQSKVYSJQNSJQiSJCXSEqXSJYVSIiJSOMYSHAHSHaQSeCFSepQSegBSHdHSHrFShSJSJuHSJUFSkNRSrSrSWEBSFaHSJFQSFCXSFGDSFYXSFODSFgBSFVXSFhBSFxFSFkFSFbBSFMFCADdCJXBCXaFCXKFCXNFCXCXCXGBCXEJCXYBCXLDCXIBCXOPCXHXCXgBCXhBCXiBCXlDCXcHCJNBCJNFCDCJCDGBCDVXCDhBCDiDCDJdCCmNCpJFCIaRCOqXCHCHCHZJCViJCuCuCmddCJiFCdNBCdHhClEJCnUJCreSCWlgCWTRCFBFCFNBCFYBCFVFCFhFCFdSCFTBCFWDGBNBGBQFGJBCGBEqGBpBGBgQGNBEGNJYGNkOGNJRGDUFGJpQGHaBGJeNGJeEGVBlGVKjGiJDGvJHGsVJGkEBGMIJGWjNGFBFGFCXGFGBGFYXGFpBGFMFEASJEAWpEJNFECJVEIXSEIQJEOqXEOcFEeNcEHEJEHlFEJgFEhlmEmDJEmZJEiMBEUqXEoSREPBFEPXFEPKFEPSFEPEFEPpFEPLXEPIBEJPdEPcFEPTBEJnXEqlHEMpREFCXEFODEFcFYASJYJAFYBaBYBVXYXpFYDhBYCJBYJGFYYbRYeNcYJeVYiIJYZJcYvJgYvJRYJsXYsJFYMYMYreVpBNHpBEJpBwXpQxFpYEJpeNDpJeDpeSFpeCHpHUJpHbBpHcHpmUJpiiJpUJrpsJuplITpFaBpFQqpFGBpFEfpFYBpFpBpFLJpFIDpFgBpFVXpFyQpFuFpFlFpFjDpFnXpFwXpJFMpFTBLXCJLXEFLXhFLXUJLXbFLalmLNJBLSJQLCLCLGJBLLDJLHaFLeNFLeSHLeCXLepFLhaRLZsJLsJDLsJrLocaLlLlLMdbLFNBLFSBLFEHLFkFIBBFIBXFIBaQIBKXIBSFIBpHIBLXIBgBIBhBIBuHIBmXIBiFIBZXIBvFIBbFIBjQIBwXIBWFIKTRIQUJIDGFICjQIYSRIINXIJeCIVaRImEkIZJFIvJRIsJXIdCJIJoRIbBQIjYBIcqXITFVIreVIFKFIFSFIFCJIFGFIFLDIFIBIJFOIFgBIFVXIJFhIFxFIFmXIFdHIFbBIJFrIJFWOBGBOQfXOOKjOUqXOfXBOqXEOcqXORVJOFIBOFlDHBIOHXiFHNTRHCJXHIaRHHJDHHEJHVbRHZJYHbIBHRsJHRkDHWlmgBKFgBSBgBCDgBGHgBpBgBIBgBVJgBuBgBvFgKDTgQVXgDUJgGSJgOqXgmUMgZIJgTUJgWIEgFBFgFNBgFDJgFSFgFGBgFYXgJFOgFgQgFVXgFhBgFbHgJFWVJABVQKcVDgFVOfXVeDFVhaRVmGdViJYVMaRVFNHhBNDhBCXhBEqhBpFhBLXhNJBhSJRheVXhhKEhxlmhZIJhdBQhkIJhbMNhMUJhMZJxNJgxQUJxDEkxDdFxSJRxplmxeSBxeCXxeGFxeYXxepQxegBxWVcxFEQxFLXxFIBxFgBxFxDxFZtxFdcxFbBxFwXyDJXyDlcuASJuDJpuDIBuCpJuGSJuIJFueEFuZIJusJXudWEuoIBuWGJuFBcuFKEuFNFuFQFuFDJuFGJuFVJuFUtuFdHuFTBmBYJmNJYmQhkmLJDmLJomIdXmiJYmvJRmsJRmklmmMBymMuCmclmmcnQiJABiJBNiJBDiBSFiBCJiBEFiBYBiBpFiBLXiBTHiJNciDEfiCZJiECJiJEqiOkHiHKFieNDiHJQieQcieDHieSFieCXieGFieEFieIHiegFihUJixNoioNXiFaBiFKFiFNDiFEPiFYXitFOitFHiFgBiFVEiFmXiFitiFbBiFMFiFrFUCXQUIoQUIJcUHQJUeCEUHwXUUJDUUqXUdWcUcqXUrnQUFNDUFSHUFCFUFEfUFLXUtFOZBXOZXSBZXpFZXVXZEQJZEJkZpDJZOqXZeNHZeCDZUqXZFBQZFEHZFLXvBAFvBKFvBCXvBEPvBpHvBIDvBgFvBuHvQNJvFNFvFGBvFIBvJFcsXCDsXLXsXsXsXlFsXcHsQqXsJQFsEqXseIFsFEHsFjDdBxOdNpRdNJRdEJbdpJRdhZJdnSJdrjNdFNJdFQHdFhNkNJDkYaRkHNRkHSRkVbRkuMRkjSJkcqDoSJFoEiJoYZJoOfXohEBoMGQocqXbBAFbBXFbBaFbBNDbBGBbBLXbBTBbBWDbGJYbIJHbFQqbFpQlDgQlOrFlVJRjGEBjZJRnXvJnXbBnEfHnOPDngJRnxfXnUJWwXEJwNpJwDpBwEfXwrEBMDCJMDGHMDIJMLJDcQGDcQpHcqXccqNFcqCXcFCJRBSBRBGBRBEJRBpQTBNFTBQJTBpBTBVXTFABTFSBTFCFTFGBTFMDrXCJrXLDrDNJrEfHrFQJrFitWNjdWNTR\",\n\n // 6-kana words\n \"AKLJMANOPFASNJIAEJWXAYJNRAIIbRAIcdaAeEfDAgidRAdjNYAMYEJAMIbRAFNJBAFpJFBBIJYBDZJFBSiJhBGdEBBEJfXBEJqXBEJWRBpaUJBLXrXBIYJMBOcfXBeEfFBestXBjNJRBcDJOBFEqXXNvJRXDMBhXCJNYXOAWpXONJWXHDEBXeIaRXhYJDXZJSJXMDJOXcASJXFVJXaBQqXaBZJFasXdQaFSJQaFEfXaFpJHaFOqXKBNSRKXvJBKQJhXKEJQJKEJGFKINJBKIJjNKgJNSKVElmKVhEBKiJGFKlBgJKjnUJKwsJYKMFIJKFNJDKFIJFKFOfXNJBSFNJBCXNBpJFNJBvQNJBMBNJLJXNJOqXNJeCXNJeGFNdsJCNbTKFNwXUJQNFEPQDiJcQDMSJQSFpBQGMQJQJeOcQyCJEQUJEBQJFBrQFEJqDXDJFDJXpBDJXIMDGiJhDIJGRDJeYcDHrDJDVXgFDkAWpDkIgRDjDEqDMvJRDJFNFDJFIBSKclmSJQOFSJQVHSJQjDSJGJBSJGJFSECJoSHEJqSJHTBSJVJDSViJYSZJNBSJsJDSFSJFSFEfXSJFLXCBUJVCJXSBCJXpBCXVJXCJXsXCJXdFCJNJHCLIJgCHiJFCVNJMChCJhCUHEJCsJTRCJdYcCoQJCCFEfXCFIJgCFUJxCFstFGJBaQGJBIDGQJqXGYJNRGJHKFGeQqDGHEJFGJeLXGHIiJGHdBlGUJEBGkIJTGFQPDGJFEqEAGegEJIJBEJVJXEhQJTEiJNcEJZJFEJoEqEjDEqEPDsXEPGJBEPOqXEPeQFEfDiDEJfEFEfepQEfMiJEqXNBEqDIDEqeSFEqVJXEMvJRYXNJDYXEJHYKVJcYYJEBYJeEcYJUqXYFpJFYFstXpAZJMpBSJFpNBNFpeQPDpHLJDpHIJFpHgJFpeitFpHZJFpJFADpFSJFpJFCJpFOqXpFitBpJFZJLXIJFLIJgRLVNJWLVHJMLwNpJLFGJBLFLJDLFOqXLJFUJIBDJXIBGJBIJBYQIJBIBIBOqXIBcqDIEGJFILNJTIIJEBIOiJhIJeNBIJeIBIhiJIIWoTRIJFAHIJFpBIJFuHIFUtFIJFTHOSBYJOEcqXOHEJqOvBpFOkVJrObBVJOncqDOcNJkHhNJRHuHJuHdMhBgBUqXgBsJXgONJBgHNJDgHHJQgJeitgHsJXgJyNagyDJBgZJDrgsVJQgkEJNgkjSJgJFAHgFCJDgFZtMVJXNFVXQfXVJXDJVXoQJVQVJQVDEfXVDvJHVEqNFVeQfXVHpJFVHxfXVVJSRVVmaRVlIJOhCXVJhHjYkhxCJVhWVUJhWiJcxBNJIxeEqDxfXBFxcFEPxFSJFxFYJXyBDQJydaUJyFOPDuYCJYuLvJRuHLJXuZJLDuFOPDuFZJHuFcqXmKHJdmCQJcmOsVJiJAGFitLCFieOfXiestXiZJMEikNJQirXzFiFQqXiFIJFiFZJFiFvtFUHpJFUteIcUteOcUVCJkUhdHcUbEJEUJqXQUMNJhURjYkUFitFZDGJHZJIxDZJVJXZJFDJZJFpQvBNJBvBSJFvJxBrseQqDsVFVJdFLJDkEJNBkmNJYkFLJDoQJOPoGsJRoEAHBoEJfFbBQqDbBZJHbFVJXlFIJBjYIrXjeitcjjCEBjWMNBwXQfXwXOaFwDsJXwCJTRwrCZJMDNJQcDDJFcqDOPRYiJFTBsJXTQIJBTFEfXTFLJDrXEJFrEJXMrFZJFWEJdEWYTlm\",\n\n // 7-kana words\n \"ABCDEFACNJTRAMBDJdAcNJVXBLNJEBXSIdWRXErNJkXYDJMBXZJCJaXMNJaYKKVJKcKDEJqXKDcNJhKVJrNYKbgJVXKFVJSBNBYBwDNJeQfXNJeEqXNhGJWENJFiJRQlIJbEQJfXxDQqXcfXQFNDEJQFwXUJDYcnUJDJIBgQDIUJTRDJFEqDSJQSJFSJQIJFSOPeZtSJFZJHCJXQfXCTDEqFGJBSJFGJBOfXGJBcqXGJHNJDGJRLiJEJfXEqEJFEJPEFpBEJYJBZJFYBwXUJYiJMEBYJZJyTYTONJXpQMFXFpeGIDdpJFstXpJFcPDLBVSJRLHQJqXLJFZJFIJBNJDIJBUqXIBkFDJIJEJPTIYJGWRIJeQPDIJeEfHIJFsJXOqGDSFHXEJqXgJCsJCgGQJqXgdQYJEgFMFNBgJFcqDVJwXUJVJFZJchIgJCCxOEJqXxOwXUJyDJBVRuscisciJBiJBieUtqXiJFDJkiFsJXQUGEZJcUJFsJXZtXIrXZDZJDrZJFNJDZJFstXvJFQqXvJFCJEsJXQJqkhkNGBbDJdTRbYJMEBlDwXUJMEFiJFcfXNJDRcNJWMTBLJXC\",\n\n // 8-kana words\n \"BraFUtHBFSJFdbNBLJXVJQoYJNEBSJBEJfHSJHwXUJCJdAZJMGjaFVJXEJPNJBlEJfFiJFpFbFEJqIJBVJCrIBdHiJhOPFChvJVJZJNJWxGFNIFLueIBQJqUHEJfUFstOZJDrlXEASJRlXVJXSFwVJNJWD\",\n\n // 9-kana words\n \"QJEJNNJDQJEJIBSFQJEJxegBQJEJfHEPSJBmXEJFSJCDEJqXLXNJFQqXIcQsFNJFIFEJqXUJgFsJXIJBUJEJfHNFvJxEqXNJnXUJFQqD\",\n\n // 10-kana words\n \"IJBEJqXZJ\"\n];\n\n// Maps each character into its kana value (the index)\nconst mapping = \"~~AzB~X~a~KN~Q~D~S~C~G~E~Y~p~L~I~O~eH~g~V~hxyumi~~U~~Z~~v~~s~~dkoblPjfnqwMcRTr~W~~~F~~~~~Jt\"\n\nlet wordlist: Array = null;\n\nfunction hex(word: string) {\n return hexlify(toUtf8Bytes(word));\n}\n\nconst KiYoKu = \"0xe3818de38284e3818f\";\nconst KyoKu = \"0xe3818de38283e3818f\"\n\nfunction loadWords(lang: Wordlist) {\n if (wordlist !== null) { return; }\n\n wordlist = [];\n\n // Transforms for normalizing (sort is a not quite UTF-8)\n const transform: { [key: string]: string | boolean } = {};\n\n // Delete the diacritic marks\n transform[toUtf8String([227, 130, 154])] = false;\n transform[toUtf8String([227, 130, 153])] = false;\n\n // Some simple transforms that sort out most of the order\n transform[toUtf8String([227, 130, 133])] = toUtf8String([227, 130, 134]);\n transform[toUtf8String([227, 129, 163])] = toUtf8String([227, 129, 164]);\n transform[toUtf8String([227, 130, 131])] = toUtf8String([227, 130, 132]);\n transform[toUtf8String([227, 130, 135])] = toUtf8String([227, 130, 136]);\n\n\n // Normalize words using the transform\n function normalize(word: string) {\n let result = \"\";\n for (let i = 0; i < word.length; i++) {\n let kana = word[i];\n const target = transform[kana];\n if (target === false) { continue; }\n if (target) { kana = target; }\n result += kana;\n }\n return result;\n }\n\n // Sort how the Japanese list is sorted\n function sortJapanese(a: string, b: string) {\n a = normalize(a);\n b = normalize(b);\n if (a < b) { return -1; }\n if (a > b) { return 1; }\n return 0;\n }\n\n // Load all the words\n for (let length = 3; length <= 9; length++) {\n const d = data[length - 3];\n for (let offset = 0; offset < d.length; offset += length) {\n const word = [];\n for (let i = 0; i < length; i++) {\n const k = mapping.indexOf(d[offset + i]);\n word.push(227);\n word.push((k & 0x40) ? 130: 129);\n word.push((k & 0x3f) + 128);\n }\n wordlist.push(toUtf8String(word));\n }\n }\n wordlist.sort(sortJapanese);\n\n // For some reason kyoku and kiyoku are flipped in node (!!).\n // The order SHOULD be:\n // - kyoku\n // - kiyoku\n\n // This should ignore \"if\", but that doesn't work here??\n /* istanbul ignore next */\n if (hex(wordlist[442]) === KiYoKu && hex(wordlist[443]) === KyoKu) {\n const tmp = wordlist[442];\n wordlist[442] = wordlist[443];\n wordlist[443] = tmp;\n }\n\n // Verify the computed list matches the official list\n /* istanbul ignore if */\n if (Wordlist.check(lang) !== \"0xcb36b09e6baa935787fd762ce65e80b0c6a8dabdfbc3a7f86ac0e2c4fd111600\") {\n wordlist = null;\n throw new Error(\"BIP39 Wordlist for ja (Japanese) FAILED\");\n }\n}\n\nclass LangJa extends Wordlist {\n constructor() {\n super(\"ja\");\n }\n\n getWord(index: number): string {\n loadWords(this);\n return wordlist[index];\n }\n\n getWordIndex(word: string): number {\n loadWords(this);\n return wordlist.indexOf(word);\n }\n\n split(mnemonic: string): Array {\n logger.checkNormalize();\n return mnemonic.split(/(?:\\u3000| )+/g);\n }\n\n join(words: Array): string {\n return words.join(\"\\u3000\");\n }\n}\n\nconst langJa = new LangJa();\nWordlist.register(langJa);\n\nexport { langJa };\n\n", "\"use strict\";\n\nimport { toUtf8String } from \"@ethersproject/strings\";\n\nimport { Wordlist } from \"./wordlist\";\n\n\nconst data = [\n \"OYAa\",\n \"ATAZoATBl3ATCTrATCl8ATDloATGg3ATHT8ATJT8ATJl3ATLlvATLn4ATMT8ATMX8ATMboATMgoAToLbAToMTATrHgATvHnAT3AnAT3JbAT3MTAT8DbAT8JTAT8LmAT8MYAT8MbAT#LnAUHT8AUHZvAUJXrAUJX8AULnrAXJnvAXLUoAXLgvAXMn6AXRg3AXrMbAX3JTAX3QbAYLn3AZLgvAZrSUAZvAcAZ8AaAZ8AbAZ8AnAZ8HnAZ8LgAZ8MYAZ8MgAZ8OnAaAboAaDTrAaFTrAaJTrAaJboAaLVoAaMXvAaOl8AaSeoAbAUoAbAg8AbAl4AbGnrAbMT8AbMXrAbMn4AbQb8AbSV8AbvRlAb8AUAb8AnAb8HgAb8JTAb8NTAb8RbAcGboAcLnvAcMT8AcMX8AcSToAcrAaAcrFnAc8AbAc8MgAfGgrAfHboAfJnvAfLV8AfLkoAfMT8AfMnoAfQb8AfScrAfSgrAgAZ8AgFl3AgGX8AgHZvAgHgrAgJXoAgJX8AgJboAgLZoAgLn4AgOX8AgoATAgoAnAgoCUAgoJgAgoLXAgoMYAgoSeAgrDUAgrJTAhrFnAhrLjAhrQgAjAgoAjJnrAkMX8AkOnoAlCTvAlCV8AlClvAlFg4AlFl6AlFn3AloSnAlrAXAlrAfAlrFUAlrFbAlrGgAlrOXAlvKnAlvMTAl3AbAl3MnAnATrAnAcrAnCZ3AnCl8AnDg8AnFboAnFl3AnHX4AnHbrAnHgrAnIl3AnJgvAnLXoAnLX4AnLbrAnLgrAnLhrAnMXoAnMgrAnOn3AnSbrAnSeoAnvLnAn3OnCTGgvCTSlvCTvAUCTvKnCTvNTCT3CZCT3GUCT3MTCT8HnCUCZrCULf8CULnvCU3HnCU3JUCY6NUCbDb8CbFZoCbLnrCboOTCboScCbrFnCbvLnCb8AgCb8HgCb$LnCkLfoClBn3CloDUDTHT8DTLl3DTSU8DTrAaDTrLXDTrLjDTrOYDTrOgDTvFXDTvFnDT3HUDT3LfDUCT9DUDT4DUFVoDUFV8DUFkoDUGgrDUJnrDULl8DUMT8DUMXrDUMX4DUMg8DUOUoDUOgvDUOg8DUSToDUSZ8DbDXoDbDgoDbGT8DbJn3DbLg3DbLn4DbMXrDbMg8DbOToDboJXGTClvGTDT8GTFZrGTLVoGTLlvGTLl3GTMg8GTOTvGTSlrGToCUGTrDgGTrJYGTrScGTtLnGTvAnGTvQgGUCZrGUDTvGUFZoGUHXrGULnvGUMT8GUoMgGXoLnGXrMXGXrMnGXvFnGYLnvGZOnvGZvOnGZ8LaGZ8LmGbAl3GbDYvGbDlrGbHX3GbJl4GbLV8GbLn3GbMn4GboJTGboRfGbvFUGb3GUGb4JnGgDX3GgFl$GgJlrGgLX6GgLZoGgLf8GgOXoGgrAgGgrJXGgrMYGgrScGgvATGgvOYGnAgoGnJgvGnLZoGnLg3GnLnrGnQn8GnSbrGnrMgHTClvHTDToHTFT3HTQT8HToJTHToJgHTrDUHTrMnHTvFYHTvRfHT8MnHT8SUHUAZ8HUBb4HUDTvHUoMYHXFl6HXJX6HXQlrHXrAUHXrMnHXrSbHXvFYHXvKXHX3LjHX3MeHYvQlHZrScHZvDbHbAcrHbFT3HbFl3HbJT8HbLTrHbMT8HbMXrHbMbrHbQb8HbSX3HboDbHboJTHbrFUHbrHgHbrJTHb8JTHb8MnHb8QgHgAlrHgDT3HgGgrHgHgrHgJTrHgJT8HgLX@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!Ln$CTGXMnCToLZ4CTrHT8CT3JTrCT3RZrCT#GTvCU6GgvCU8Db8CU8GZrCU8HT8CboLl3CbrGgrCbrMU8Cb8DT3Cb8GnrCb8LX4Cb8MT8Cb8ObrCgrGgvCgrKX4Cl8FZoDTrAbvDTrDboDTrGT6DTrJgrDTrMX3DTrRZrDTrRg8DTvAVvDTvFZoDT3DT8DT3Ln3DT4HZrDT4MT8DT8AlrDT8MT8DUAkGbDUDbJnDYLnQlDbDUOYDbMTAnDbMXSnDboAT3DboFn4DboLnvDj6JTrGTCgFTGTGgFnGTJTMnGTLnPlGToJT8GTrCT3GTrLVoGTrLnvGTrMX3GTrMboGTvKl3GZClFnGZrDT3GZ8DTrGZ8FZ8GZ8MXvGZ8On8GZ8ST3GbCnQXGbMbFnGboFboGboJg3GboMXoGb3JTvGb3JboGb3Mn6Gb3Qb8GgDXLjGgMnAUGgrDloGgrHX4GgrSToGgvAXrGgvAZvGgvFbrGgvLl3GgvMnvGnDnLXGnrATrGnrMboGnuLl3HTATMnHTAgCnHTCTCTHTrGTvHTrHTvHTrJX8HTrLl8HTrMT8HTrMgoHTrOTrHTuOn3HTvAZrHTvDTvHTvGboHTvJU8HTvLl3HTvMXrHTvQb4HT4GT6HT4JT8HT4Jb#HT8Al3HT8GZrHT8GgrHT8HX4HT8Jb8HT8JnoHT8LTrHT8LgvHT8SToHT8SV8HUoJUoHUoJX8HUoLnrHXrLZoHXvAl3HX3LnrHX4FkvHX4LhrHX4MXoHX4OnoHZrAZ8HZrDb8HZrGZ8HZrJnrHZvGZ8HZvLnvHZ8JnvHZ8LhrHbCXJlHbMTAnHboJl4HbpLl3HbrJX8HbrLnrHbrMnvHbvRYrHgoSTrHgrFV8HgrGZ8HgrJXoHgrRnvHgvBb!HgvGTrHgvHX4HgvHn!HgvLTrHgvSU8HnDnLbHnFbJbHnvDn8Hn6GgvHn!BTvJTCTLnJTQgFnJTrAnvJTrLX4JTrOUoJTvFn3JTvLnrJTvNToJT3AgoJT3Jn4JT3LhvJT3ObrJT8AcrJT8Al3JT8JT8JT8JnoJT8LX4JT8LnrJT8MX3JT8Rg3JT8Sc8JUoBTvJU8AToJU8GZ8JU8GgvJU8JTrJU8JXrJU8JnrJU8LnvJU8ScvJXHnJlJXrGgvJXrJU8JXrLhrJXrMT8JXrMXrJXrQUoJXvCTvJXvGZ8JXvGgrJXvQT8JX8Ab8JX8DT8JX8GZ8JX8HZvJX8LnrJX8MT8JX8MXoJX8MnvJX8ST3JYGnCTJbAkGbJbCTAnJbLTAcJboDT3JboLb6JbrAnvJbrCn3JbrDl8JbrGboJbrIZoJbrJnvJbrMnvJbrQb4Jb8RZrJeAbAnJgJnFbJgScAnJgrATrJgvHZ8JgvMn4JlJlFbJlLiQXJlLjOnJlRbOlJlvNXoJlvRl3Jl4AcrJl8AUoJl8MnrJnFnMlJnHgGbJnoDT8JnoFV8JnoGgvJnoIT8JnoQToJnoRg3JnrCZ3JnrGgrJnrHTvJnrLf8JnrOX8JnvAT3JnvFZoJnvGT8JnvJl4JnvMT8JnvMX8JnvOXrJnvPX6JnvSX3JnvSZrJn3MT8Jn3MX8Jn3RTrLTATKnLTJnLTLTMXKnLTRTQlLToGb8LTrAZ8LTrCZ8LTrDb8LTrHT8LT3PX6LT4FZoLT$CTvLT$GgrLUvHX3LVoATrLVoAgoLVoJboLVoMX3LVoRg3LV8CZ3LV8FZoLV8GTvLXrDXoLXrFbrLXvAgvLXvFlrLXvLl3LXvRn6LX4Mb8LX8GT8LYCXMnLYrMnrLZoSTvLZrAZvLZrAloLZrFToLZrJXvLZrJboLZrJl4LZrLnrLZrMT8LZrOgvLZrRnvLZrST4LZvMX8LZvSlvLZ8AgoLZ8CT3LZ8JT8LZ8LV8LZ8LZoLZ8Lg8LZ8SV8LZ8SbrLZ$HT8LZ$Mn4La6CTvLbFbMnLbRYFTLbSnFZLboJT8LbrAT9LbrGb3LbrQb8LcrJX8LcrMXrLerHTvLerJbrLerNboLgrDb8LgrGZ8LgrHTrLgrMXrLgrSU8LgvJTrLgvLl3Lg6Ll3LhrLnrLhrMT8LhvAl4LiLnQXLkoAgrLkoJT8LkoJn4LlrSU8Ll3FZoLl3HTrLl3JX8Ll3JnoLl3LToLmLeFbLnDUFbLnLVAnLnrATrLnrAZoLnrAb8LnrAlrLnrGgvLnrJU8LnrLZrLnrLhrLnrMb8LnrOXrLnrSZ8LnvAb4LnvDTrLnvDl8LnvHTrLnvHbrLnvJT8LnvJU8LnvJbrLnvLhvLnvMX8LnvMb8LnvNnoLnvSU8Ln3Al3Ln4FZoLn4GT6Ln4JgvLn4LhrLn4MT8Ln4SToMToCZrMToJX8MToLX4MToLf8MToRg3MTrEloMTvGb6MT3BTrMT3Lb6MT8AcrMT8AgrMT8GZrMT8JnoMT8LnrMT8MX3MUOUAnMXAbFnMXoAloMXoJX8MXoLf8MXoLl8MXrAb8MXrDTvMXrGT8MXrGgrMXrHTrMXrLf8MXrMU8MXrOXvMXrQb8MXvGT8MXvHTrMXvLVoMX3AX3MX3Jn3MX3LhrMX3MX3MX4AlrMX4OboMX8GTvMX8GZrMX8GgrMX8JT8MX8JX8MX8LhrMX8MT8MYDUFbMYMgDbMbGnFfMbvLX4MbvLl3Mb8Mb8Mb8ST4MgGXCnMg8ATrMg8AgoMg8CZrMg8DTrMg8DboMg8HTrMg8JgrMg8LT8MloJXoMl8AhrMl8JT8MnLgAUMnoJXrMnoLX4MnoLhrMnoMT8MnrAl4MnrDb8MnrOTvMnrOgvMnrQb8MnrSU8MnvGgrMnvHZ8Mn3MToMn4DTrMn4LTrMn4Mg8NnBXAnOTFTFnOToAToOTrGgvOTrJX8OT3JXoOT6MTrOT8GgrOT8HTpOT8MToOUoHT8OUoJT8OUoLn3OXrAgoOXrDg8OXrMT8OXvSToOX6CTvOX8CZrOX8OgrOb6HgvOb8AToOb8MT8OcvLZ8OgvAlrOgvHTvOgvJTrOgvJnrOgvLZrOgvLn4OgvMT8OgvRTrOg8AZoOg8DbvOnrOXoOnvJn4OnvLhvOnvRTrOn3GgoOn3JnvOn6JbvOn8OTrPTGYFTPbBnFnPbGnDnPgDYQTPlrAnvPlrETvPlrLnvPlrMXvPlvFX4QTMTAnQTrJU8QYCnJlQYJlQlQbGTQbQb8JnrQb8LZoQb8LnvQb8MT8Qb8Ml8Qb8ST4QloAl4QloHZvQloJX8QloMn8QnJZOlRTrAZvRTrDTrRTvJn4RTvLhvRT4Jb8RZrAZrRZ8AkrRZ8JU8RZ8LV8RZ8LnvRbJlQXRg3GboRg3MnvRg8AZ8Rg8JboRg8Jl4RnLTCbRnvFl3RnvQb8SToAl4SToCZrSToFZoSToHXrSToJU8SToJgvSToJl4SToLhrSToMX3STrAlvSTrCT9STrCgrSTrGgrSTrHXrSTrHboSTrJnoSTrNboSTvLnrST4AZoST8Ab8ST8JT8SUoJn3SU6HZ#SU6JTvSU8Db8SU8HboSU8LgrSV8JT8SZrAcrSZrAl3SZrJT8SZrJnvSZrMT8SZvLUoSZ4FZoSZ8JnoSZ8RZrScoLnrScoMT8ScoMX8ScrAT4ScrAZ8ScrLZ8ScrLkvScvDb8ScvLf8ScvNToSgrFZrShvKnrSloHUoSloLnrSlrMXoSl8HgrSmrJUoSn3BX6\",\n \"ATFlOn3ATLgrDYAT4MTAnAT8LTMnAYJnRTrAbGgJnrAbLV8LnAbvNTAnAeFbLg3AgOYMXoAlQbFboAnDboAfAnJgoJTBToDgAnBUJbAl3BboDUAnCTDlvLnCTFTrSnCYoQTLnDTwAbAnDUDTrSnDUHgHgrDX8LXFnDbJXAcrETvLTLnGTFTQbrGTMnGToGT3DUFbGUJlPX3GbQg8LnGboJbFnGb3GgAYGgAg8ScGgMbAXrGgvAbAnGnJTLnvGnvATFgHTDT6ATHTrDlJnHYLnMn8HZrSbJTHZ8LTFnHbFTJUoHgSeMT8HgrLjAnHgvAbAnHlFUrDlHnDgvAnHnHTFT3HnQTGnrJTAaMXvJTGbCn3JTOgrAnJXvAXMnJbMg8SnJbMnRg3Jb8LTMnJnAl3OnJnGYrQlJnJlQY3LTDlCn3LTJjLg3LTLgvFXLTMg3GTLV8HUOgLXFZLg3LXNXrMnLX8QXFnLX9AlMYLYLXPXrLZAbJU8LZDUJU8LZMXrSnLZ$AgFnLaPXrDULbFYrMnLbMn8LXLboJgJgLeFbLg3LgLZrSnLgOYAgoLhrRnJlLkCTrSnLkOnLhrLnFX%AYLnFZoJXLnHTvJbLnLloAbMTATLf8MTHgJn3MTMXrAXMT3MTFnMUITvFnMXFX%AYMXMXvFbMXrFTDbMYAcMX3MbLf8SnMb8JbFnMgMXrMTMgvAXFnMgvGgCmMnAloSnMnFnJTrOXvMXSnOX8HTMnObJT8ScObLZFl3ObMXCZoPTLgrQXPUFnoQXPU3RXJlPX3RkQXPbrJXQlPlrJbFnQUAhrDbQXGnCXvQYLnHlvQbLfLnvRTOgvJbRXJYrQlRYLnrQlRbLnrQlRlFT8JlRlFnrQXSTClCn3STHTrAnSTLZQlrSTMnGTrSToHgGbSTrGTDnSTvGXCnST3HgFbSU3HXAXSbAnJn3SbFT8LnScLfLnv\",\n \"AT3JgJX8AT8FZoSnAT8JgFV8AT8LhrDbAZ8JT8DbAb8GgLhrAb8SkLnvAe8MT8SnAlMYJXLVAl3GYDTvAl3LfLnvBUDTvLl3CTOn3HTrCT3DUGgrCU8MT8AbCbFTrJUoCgrDb8MTDTLV8JX8DTLnLXQlDT8LZrSnDUQb8FZ8DUST4JnvDb8ScOUoDj6GbJl4GTLfCYMlGToAXvFnGboAXvLnGgAcrJn3GgvFnSToGnLf8JnvGn#HTDToHTLnFXJlHTvATFToHTvHTDToHTvMTAgoHT3STClvHT4AlFl6HT8HTDToHUoDgJTrHUoScMX3HbRZrMXoHboJg8LTHgDb8JTrHgMToLf8HgvLnLnoHnHn3HT4Hn6MgvAnJTJU8ScvJT3AaQT8JT8HTrAnJXrRg8AnJbAloMXoJbrATFToJbvMnoSnJgDb6GgvJgDb8MXoJgSX3JU8JguATFToJlPYLnQlJlQkDnLbJlQlFYJlJl8Lf8OTJnCTFnLbJnLTHXMnJnLXGXCnJnoFfRg3JnrMYRg3Jn3HgFl3KT8Dg8LnLTRlFnPTLTvPbLbvLVoSbrCZLXMY6HT3LXNU7DlrLXNXDTATLX8DX8LnLZDb8JU8LZMnoLhrLZSToJU8LZrLaLnrLZvJn3SnLZ8LhrSnLaJnoMT8LbFlrHTvLbrFTLnrLbvATLlvLb6OTFn3LcLnJZOlLeAT6Mn4LeJT3ObrLg6LXFlrLhrJg8LnLhvDlPX4LhvLfLnvLj6JTFT3LnFbrMXoLnQluCTvLnrQXCY6LnvLfLnvLnvMgLnvLnvSeLf8MTMbrJn3MT3JgST3MT8AnATrMT8LULnrMUMToCZrMUScvLf8MXoDT8SnMX6ATFToMX8AXMT8MX8FkMT8MX8HTrDUMX8ScoSnMYJT6CTvMgAcrMXoMg8SToAfMlvAXLg3MnFl3AnvOT3AnFl3OUoATHT8OU3RnLXrOXrOXrSnObPbvFn6Og8HgrSnOg8OX8DbPTvAgoJgPU3RYLnrPXrDnJZrPb8CTGgvPlrLTDlvPlvFUJnoQUvFXrQlQeMnoAl3QlrQlrSnRTFTrJUoSTDlLiLXSTFg6HT3STJgoMn4STrFTJTrSTrLZFl3ST4FnMXoSUrDlHUoScvHTvSnSfLkvMXo\",\n \"AUoAcrMXoAZ8HboAg8AbOg6ATFgAg8AloMXoAl3AT8JTrAl8MX8MXoCT3SToJU8Cl8Db8MXoDT8HgrATrDboOT8MXoGTOTrATMnGT8LhrAZ8GnvFnGnQXHToGgvAcrHTvAXvLl3HbrAZoMXoHgBlFXLg3HgMnFXrSnHgrSb8JUoHn6HT8LgvITvATrJUoJUoLZrRnvJU8HT8Jb8JXvFX8QT8JXvLToJTrJYrQnGnQXJgrJnoATrJnoJU8ScvJnvMnvMXoLTCTLgrJXLTJlRTvQlLbRnJlQYvLbrMb8LnvLbvFn3RnoLdCVSTGZrLeSTvGXCnLg3MnoLn3MToLlrETvMT8SToAl3MbrDU6GTvMb8LX4LhrPlrLXGXCnSToLf8Rg3STrDb8LTrSTvLTHXMnSb3RYLnMnSgOg6ATFg\",\n \"HUDlGnrQXrJTrHgLnrAcJYMb8DULc8LTvFgGnCk3Mg8JbAnLX4QYvFYHnMXrRUoJnGnvFnRlvFTJlQnoSTrBXHXrLYSUJgLfoMT8Se8DTrHbDb\",\n \"AbDl8SToJU8An3RbAb8ST8DUSTrGnrAgoLbFU6Db8LTrMg8AaHT8Jb8ObDl8SToJU8Pb3RlvFYoJl\"\n]\n\nconst codes = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789!@#$%^&*\"\n\nfunction getHangul(code: number): string {\n if (code >= 40) {\n code = code + 168 - 40;\n } else if (code >= 19) {\n code = code + 97 - 19;\n }\n\n return toUtf8String([ 225, (code >> 6) + 132, (code & 0x3f) + 128]);\n}\n\nlet wordlist: Array = null;\n\nfunction loadWords(lang: Wordlist): void {\n if (wordlist != null) { return; }\n\n wordlist = [];\n\n data.forEach((data, length) => {\n length += 4;\n for (let i = 0; i < data.length; i += length) {\n let word = \"\";\n for (let j = 0; j < length; j++) {\n word += getHangul(codes.indexOf(data[i + j]));\n }\n wordlist.push(word)\n }\n });\n\n wordlist.sort();\n\n // Verify the computed list matches the official list\n /* istanbul ignore if */\n if (Wordlist.check(lang) !== \"0xf9eddeace9c5d3da9c93cf7d3cd38f6a13ed3affb933259ae865714e8a3ae71a\") {\n wordlist = null;\n throw new Error(\"BIP39 Wordlist for ko (Korean) FAILED\");\n }\n}\n\n\nclass LangKo extends Wordlist {\n constructor() {\n super(\"ko\");\n }\n\n getWord(index: number): string {\n loadWords(this);\n return wordlist[index];\n }\n\n getWordIndex(word: string): number {\n loadWords(this);\n return wordlist.indexOf(word);\n }\n}\n\nconst langKo = new LangKo();\nWordlist.register(langKo);\n\nexport { langKo }\n", "\"use strict\";\n\nimport { Wordlist } from \"./wordlist\";\n\nconst words = \"AbacoAbbaglioAbbinatoAbeteAbissoAbolireAbrasivoAbrogatoAccadereAccennoAccusatoAcetoneAchilleAcidoAcquaAcreAcrilicoAcrobataAcutoAdagioAddebitoAddomeAdeguatoAderireAdipeAdottareAdulareAffabileAffettoAffissoAffrantoAforismaAfosoAfricanoAgaveAgenteAgevoleAggancioAgireAgitareAgonismoAgricoloAgrumetoAguzzoAlabardaAlatoAlbatroAlberatoAlboAlbumeAlceAlcolicoAlettoneAlfaAlgebraAlianteAlibiAlimentoAllagatoAllegroAllievoAllodolaAllusivoAlmenoAlogenoAlpacaAlpestreAltalenaAlternoAlticcioAltroveAlunnoAlveoloAlzareAmalgamaAmanitaAmarenaAmbitoAmbratoAmebaAmericaAmetistaAmicoAmmassoAmmendaAmmirareAmmonitoAmoreAmpioAmpliareAmuletoAnacardoAnagrafeAnalistaAnarchiaAnatraAncaAncellaAncoraAndareAndreaAnelloAngeloAngolareAngustoAnimaAnnegareAnnidatoAnnoAnnuncioAnonimoAnticipoAnziApaticoAperturaApodeApparireAppetitoAppoggioApprodoAppuntoAprileArabicaArachideAragostaAraldicaArancioAraturaArazzoArbitroArchivioArditoArenileArgentoArgineArgutoAriaArmoniaArneseArredatoArringaArrostoArsenicoArsoArteficeArzilloAsciuttoAscoltoAsepsiAsetticoAsfaltoAsinoAsolaAspiratoAsproAssaggioAsseAssolutoAssurdoAstaAstenutoAsticeAstrattoAtavicoAteismoAtomicoAtonoAttesaAttivareAttornoAttritoAttualeAusilioAustriaAutistaAutonomoAutunnoAvanzatoAvereAvvenireAvvisoAvvolgereAzioneAzotoAzzimoAzzurroBabeleBaccanoBacinoBacoBadessaBadilataBagnatoBaitaBalconeBaldoBalenaBallataBalzanoBambinoBandireBaraondaBarbaroBarcaBaritonoBarlumeBaroccoBasilicoBassoBatostaBattutoBauleBavaBavosaBeccoBeffaBelgioBelvaBendaBenevoleBenignoBenzinaBereBerlinaBetaBibitaBiciBidoneBifidoBigaBilanciaBimboBinocoloBiologoBipedeBipolareBirbanteBirraBiscottoBisestoBisnonnoBisonteBisturiBizzarroBlandoBlattaBollitoBonificoBordoBoscoBotanicoBottinoBozzoloBraccioBradipoBramaBrancaBravuraBretellaBrevettoBrezzaBrigliaBrillanteBrindareBroccoloBrodoBronzinaBrulloBrunoBubboneBucaBudinoBuffoneBuioBulboBuonoBurloneBurrascaBussolaBustaCadettoCaducoCalamaroCalcoloCalesseCalibroCalmoCaloriaCambusaCamerataCamiciaCamminoCamolaCampaleCanapaCandelaCaneCaninoCanottoCantinaCapaceCapelloCapitoloCapogiroCapperoCapraCapsulaCarapaceCarcassaCardoCarismaCarovanaCarrettoCartolinaCasaccioCascataCasermaCasoCassoneCastelloCasualeCatastaCatenaCatrameCautoCavilloCedibileCedrataCefaloCelebreCellulareCenaCenoneCentesimoCeramicaCercareCertoCerumeCervelloCesoiaCespoCetoChelaChiaroChiccaChiedereChimeraChinaChirurgoChitarraCiaoCiclismoCifrareCignoCilindroCiottoloCircaCirrosiCitricoCittadinoCiuffoCivettaCivileClassicoClinicaCloroCoccoCodardoCodiceCoerenteCognomeCollareColmatoColoreColposoColtivatoColzaComaCometaCommandoComodoComputerComuneConcisoCondurreConfermaCongelareConiugeConnessoConoscereConsumoContinuoConvegnoCopertoCopioneCoppiaCopricapoCorazzaCordataCoricatoCorniceCorollaCorpoCorredoCorsiaCorteseCosmicoCostanteCotturaCovatoCratereCravattaCreatoCredereCremosoCrescitaCretaCricetoCrinaleCrisiCriticoCroceCronacaCrostataCrucialeCruscaCucireCuculoCuginoCullatoCupolaCuratoreCursoreCurvoCuscinoCustodeDadoDainoDalmataDamerinoDanielaDannosoDanzareDatatoDavantiDavveroDebuttoDecennioDecisoDeclinoDecolloDecretoDedicatoDefinitoDeformeDegnoDelegareDelfinoDelirioDeltaDemenzaDenotatoDentroDepositoDerapataDerivareDerogaDescrittoDesertoDesiderioDesumereDetersivoDevotoDiametroDicembreDiedroDifesoDiffusoDigerireDigitaleDiluvioDinamicoDinnanziDipintoDiplomaDipoloDiradareDireDirottoDirupoDisagioDiscretoDisfareDisgeloDispostoDistanzaDisumanoDitoDivanoDiveltoDividereDivoratoDobloneDocenteDoganaleDogmaDolceDomatoDomenicaDominareDondoloDonoDormireDoteDottoreDovutoDozzinaDragoDruidoDubbioDubitareDucaleDunaDuomoDupliceDuraturoEbanoEccessoEccoEclissiEconomiaEderaEdicolaEdileEditoriaEducareEgemoniaEgliEgoismoEgregioElaboratoElargireEleganteElencatoElettoElevareElficoElicaElmoElsaElusoEmanatoEmblemaEmessoEmiroEmotivoEmozioneEmpiricoEmuloEndemicoEnduroEnergiaEnfasiEnotecaEntrareEnzimaEpatiteEpilogoEpisodioEpocaleEppureEquatoreErarioErbaErbosoEredeEremitaErigereErmeticoEroeErosivoErranteEsagonoEsameEsanimeEsaudireEscaEsempioEsercitoEsibitoEsigenteEsistereEsitoEsofagoEsortatoEsosoEspansoEspressoEssenzaEssoEstesoEstimareEstoniaEstrosoEsultareEtilicoEtnicoEtruscoEttoEuclideoEuropaEvasoEvidenzaEvitatoEvolutoEvvivaFabbricaFaccendaFachiroFalcoFamigliaFanaleFanfaraFangoFantasmaFareFarfallaFarinosoFarmacoFasciaFastosoFasulloFaticareFatoFavolosoFebbreFecolaFedeFegatoFelpaFeltroFemminaFendereFenomenoFermentoFerroFertileFessuraFestivoFettaFeudoFiabaFiduciaFifaFiguratoFiloFinanzaFinestraFinireFioreFiscaleFisicoFiumeFlaconeFlamencoFleboFlemmaFloridoFluenteFluoroFobicoFocacciaFocosoFoderatoFoglioFolataFolcloreFolgoreFondenteFoneticoFoniaFontanaForbitoForchettaForestaFormicaFornaioForoFortezzaForzareFosfatoFossoFracassoFranaFrassinoFratelloFreccettaFrenataFrescoFrigoFrollinoFrondeFrugaleFruttaFucilataFucsiaFuggenteFulmineFulvoFumanteFumettoFumosoFuneFunzioneFuocoFurboFurgoneFuroreFusoFutileGabbianoGaffeGalateoGallinaGaloppoGamberoGammaGaranziaGarboGarofanoGarzoneGasdottoGasolioGastricoGattoGaudioGazeboGazzellaGecoGelatinaGelsoGemelloGemmatoGeneGenitoreGennaioGenotipoGergoGhepardoGhiaccioGhisaGialloGildaGineproGiocareGioielloGiornoGioveGiratoGironeGittataGiudizioGiuratoGiustoGlobuloGlutineGnomoGobbaGolfGomitoGommoneGonfioGonnaGovernoGracileGradoGraficoGrammoGrandeGrattareGravosoGraziaGrecaGreggeGrifoneGrigioGrinzaGrottaGruppoGuadagnoGuaioGuantoGuardareGufoGuidareIbernatoIconaIdenticoIdillioIdoloIdraIdricoIdrogenoIgieneIgnaroIgnoratoIlareIllesoIllogicoIlludereImballoImbevutoImboccoImbutoImmaneImmersoImmolatoImpaccoImpetoImpiegoImportoImprontaInalareInarcareInattivoIncantoIncendioInchinoIncisivoInclusoIncontroIncrocioIncuboIndagineIndiaIndoleIneditoInfattiInfilareInflittoIngaggioIngegnoIngleseIngordoIngrossoInnescoInodoreInoltrareInondatoInsanoInsettoInsiemeInsonniaInsulinaIntasatoInteroIntonacoIntuitoInumidireInvalidoInveceInvitoIperboleIpnoticoIpotesiIppicaIrideIrlandaIronicoIrrigatoIrrorareIsolatoIsotopoIstericoIstitutoIstriceItaliaIterareLabbroLabirintoLaccaLaceratoLacrimaLacunaLaddoveLagoLampoLancettaLanternaLardosoLargaLaringeLastraLatenzaLatinoLattugaLavagnaLavoroLegaleLeggeroLemboLentezzaLenzaLeoneLepreLesivoLessatoLestoLetteraleLevaLevigatoLiberoLidoLievitoLillaLimaturaLimitareLimpidoLineareLinguaLiquidoLiraLiricaLiscaLiteLitigioLivreaLocandaLodeLogicaLombareLondraLongevoLoquaceLorenzoLotoLotteriaLuceLucidatoLumacaLuminosoLungoLupoLuppoloLusingaLussoLuttoMacabroMacchinaMaceroMacinatoMadamaMagicoMagliaMagneteMagroMaiolicaMalafedeMalgradoMalintesoMalsanoMaltoMalumoreManaManciaMandorlaMangiareManifestoMannaroManovraMansardaMantideManubrioMappaMaratonaMarcireMarettaMarmoMarsupioMascheraMassaiaMastinoMaterassoMatricolaMattoneMaturoMazurcaMeandroMeccanicoMecenateMedesimoMeditareMegaMelassaMelisMelodiaMeningeMenoMensolaMercurioMerendaMerloMeschinoMeseMessereMestoloMetalloMetodoMettereMiagolareMicaMicelioMicheleMicroboMidolloMieleMiglioreMilanoMiliteMimosaMineraleMiniMinoreMirinoMirtilloMiscelaMissivaMistoMisurareMitezzaMitigareMitraMittenteMnemonicoModelloModificaModuloMoganoMogioMoleMolossoMonasteroMoncoMondinaMonetarioMonileMonotonoMonsoneMontatoMonvisoMoraMordereMorsicatoMostroMotivatoMotosegaMottoMovenzaMovimentoMozzoMuccaMucosaMuffaMughettoMugnaioMulattoMulinelloMultiploMummiaMuntoMuovereMuraleMusaMuscoloMusicaMutevoleMutoNababboNaftaNanometroNarcisoNariceNarratoNascereNastrareNaturaleNauticaNaviglioNebulosaNecrosiNegativoNegozioNemmenoNeofitaNerettoNervoNessunoNettunoNeutraleNeveNevroticoNicchiaNinfaNitidoNobileNocivoNodoNomeNominaNordicoNormaleNorvegeseNostranoNotareNotiziaNotturnoNovellaNucleoNullaNumeroNuovoNutrireNuvolaNuzialeOasiObbedireObbligoObeliscoOblioOboloObsoletoOccasioneOcchioOccidenteOccorrereOccultareOcraOculatoOdiernoOdorareOffertaOffrireOffuscatoOggettoOggiOgnunoOlandeseOlfattoOliatoOlivaOlogrammaOltreOmaggioOmbelicoOmbraOmegaOmissioneOndosoOnereOniceOnnivoroOnorevoleOntaOperatoOpinioneOppostoOracoloOrafoOrdineOrecchinoOreficeOrfanoOrganicoOrigineOrizzonteOrmaOrmeggioOrnativoOrologioOrrendoOrribileOrtensiaOrticaOrzataOrzoOsareOscurareOsmosiOspedaleOspiteOssaOssidareOstacoloOsteOtiteOtreOttagonoOttimoOttobreOvaleOvestOvinoOviparoOvocitoOvunqueOvviareOzioPacchettoPacePacificoPadellaPadronePaesePagaPaginaPalazzinaPalesarePallidoPaloPaludePandoroPannelloPaoloPaonazzoPapricaParabolaParcellaParerePargoloPariParlatoParolaPartireParvenzaParzialePassivoPasticcaPataccaPatologiaPattumePavonePeccatoPedalarePedonalePeggioPelosoPenarePendicePenisolaPennutoPenombraPensarePentolaPepePepitaPerbenePercorsoPerdonatoPerforarePergamenaPeriodoPermessoPernoPerplessoPersuasoPertugioPervasoPesatorePesistaPesoPestiferoPetaloPettinePetulantePezzoPiacerePiantaPiattinoPiccinoPicozzaPiegaPietraPifferoPigiamaPigolioPigroPilaPiliferoPillolaPilotaPimpantePinetaPinnaPinoloPioggiaPiomboPiramidePireticoPiritePirolisiPitonePizzicoPlaceboPlanarePlasmaPlatanoPlenarioPochezzaPoderosoPodismoPoesiaPoggiarePolentaPoligonoPollicePolmonitePolpettaPolsoPoltronaPolverePomicePomodoroPontePopolosoPorfidoPorosoPorporaPorrePortataPosaPositivoPossessoPostulatoPotassioPoterePranzoPrassiPraticaPreclusoPredicaPrefissoPregiatoPrelievoPremerePrenotarePreparatoPresenzaPretestoPrevalsoPrimaPrincipePrivatoProblemaProcuraProdurreProfumoProgettoProlungaPromessaPronomePropostaProrogaProtesoProvaPrudentePrugnaPruritoPsichePubblicoPudicaPugilatoPugnoPulcePulitoPulsantePuntarePupazzoPupillaPuroQuadroQualcosaQuasiQuerelaQuotaRaccoltoRaddoppioRadicaleRadunatoRafficaRagazzoRagioneRagnoRamarroRamingoRamoRandagioRantolareRapatoRapinaRappresoRasaturaRaschiatoRasenteRassegnaRastrelloRataRavvedutoRealeRecepireRecintoReclutaReconditoRecuperoRedditoRedimereRegalatoRegistroRegolaRegressoRelazioneRemareRemotoRennaReplicaReprimereReputareResaResidenteResponsoRestauroReteRetinaRetoricaRettificaRevocatoRiassuntoRibadireRibelleRibrezzoRicaricaRiccoRicevereRiciclatoRicordoRicredutoRidicoloRidurreRifasareRiflessoRiformaRifugioRigareRigettatoRighelloRilassatoRilevatoRimanereRimbalzoRimedioRimorchioRinascitaRincaroRinforzoRinnovoRinomatoRinsavitoRintoccoRinunciaRinvenireRiparatoRipetutoRipienoRiportareRipresaRipulireRisataRischioRiservaRisibileRisoRispettoRistoroRisultatoRisvoltoRitardoRitegnoRitmicoRitrovoRiunioneRivaRiversoRivincitaRivoltoRizomaRobaRoboticoRobustoRocciaRocoRodaggioRodereRoditoreRogitoRollioRomanticoRompereRonzioRosolareRospoRotanteRotondoRotulaRovescioRubizzoRubricaRugaRullinoRumineRumorosoRuoloRupeRussareRusticoSabatoSabbiareSabotatoSagomaSalassoSaldaturaSalgemmaSalivareSalmoneSaloneSaltareSalutoSalvoSapereSapidoSaporitoSaracenoSarcasmoSartoSassosoSatelliteSatiraSatolloSaturnoSavanaSavioSaziatoSbadiglioSbalzoSbancatoSbarraSbattereSbavareSbendareSbirciareSbloccatoSbocciatoSbrinareSbruffoneSbuffareScabrosoScadenzaScalaScambiareScandaloScapolaScarsoScatenareScavatoSceltoScenicoScettroSchedaSchienaSciarpaScienzaScindereScippoSciroppoScivoloSclerareScodellaScolpitoScompartoSconfortoScoprireScortaScossoneScozzeseScribaScrollareScrutinioScuderiaScultoreScuolaScuroScusareSdebitareSdoganareSeccaturaSecondoSedanoSeggiolaSegnalatoSegregatoSeguitoSelciatoSelettivoSellaSelvaggioSemaforoSembrareSemeSeminatoSempreSensoSentireSepoltoSequenzaSerataSerbatoSerenoSerioSerpenteSerraglioServireSestinaSetolaSettimanaSfaceloSfaldareSfamatoSfarzosoSfaticatoSferaSfidaSfilatoSfingeSfocatoSfoderareSfogoSfoltireSforzatoSfrattoSfruttatoSfuggitoSfumareSfusoSgabelloSgarbatoSgonfiareSgorbioSgrassatoSguardoSibiloSiccomeSierraSiglaSignoreSilenzioSillabaSimboloSimpaticoSimulatoSinfoniaSingoloSinistroSinoSintesiSinusoideSiparioSismaSistoleSituatoSlittaSlogaturaSlovenoSmarritoSmemoratoSmentitoSmeraldoSmilzoSmontareSmottatoSmussatoSnellireSnervatoSnodoSobbalzoSobrioSoccorsoSocialeSodaleSoffittoSognoSoldatoSolenneSolidoSollazzoSoloSolubileSolventeSomaticoSommaSondaSonettoSonniferoSopireSoppesoSopraSorgereSorpassoSorrisoSorsoSorteggioSorvolatoSospiroSostaSottileSpadaSpallaSpargereSpatolaSpaventoSpazzolaSpecieSpedireSpegnereSpelaturaSperanzaSpessoreSpettraleSpezzatoSpiaSpigolosoSpillatoSpinosoSpiraleSplendidoSportivoSposoSprangaSprecareSpronatoSpruzzoSpuntinoSquilloSradicareSrotolatoStabileStaccoStaffaStagnareStampatoStantioStarnutoStaseraStatutoSteloSteppaSterzoStilettoStimaStirpeStivaleStizzosoStonatoStoricoStrappoStregatoStriduloStrozzareStruttoStuccareStufoStupendoSubentroSuccosoSudoreSuggeritoSugoSultanoSuonareSuperboSupportoSurgelatoSurrogatoSussurroSuturaSvagareSvedeseSveglioSvelareSvenutoSveziaSviluppoSvistaSvizzeraSvoltaSvuotareTabaccoTabulatoTacciareTaciturnoTaleTalismanoTamponeTanninoTaraTardivoTargatoTariffaTarpareTartarugaTastoTatticoTavernaTavolataTazzaTecaTecnicoTelefonoTemerarioTempoTemutoTendoneTeneroTensioneTentacoloTeoremaTermeTerrazzoTerzettoTesiTesseratoTestatoTetroTettoiaTifareTigellaTimbroTintoTipicoTipografoTiraggioTiroTitanioTitoloTitubanteTizioTizzoneToccareTollerareToltoTombolaTomoTonfoTonsillaTopazioTopologiaToppaTorbaTornareTorroneTortoraToscanoTossireTostaturaTotanoTraboccoTracheaTrafilaTragediaTralcioTramontoTransitoTrapanoTrarreTraslocoTrattatoTraveTrecciaTremolioTrespoloTributoTrichecoTrifoglioTrilloTrinceaTrioTristezzaTrituratoTrivellaTrombaTronoTroppoTrottolaTrovareTruccatoTubaturaTuffatoTulipanoTumultoTunisiaTurbareTurchinoTutaTutelaUbicatoUccelloUccisoreUdireUditivoUffaUfficioUgualeUlisseUltimatoUmanoUmileUmorismoUncinettoUngereUnghereseUnicornoUnificatoUnisonoUnitarioUnteUovoUpupaUraganoUrgenzaUrloUsanzaUsatoUscitoUsignoloUsuraioUtensileUtilizzoUtopiaVacanteVaccinatoVagabondoVagliatoValangaValgoValicoVallettaValorosoValutareValvolaVampataVangareVanitosoVanoVantaggioVanveraVaporeVaranoVarcatoVarianteVascaVedettaVedovaVedutoVegetaleVeicoloVelcroVelinaVellutoVeloceVenatoVendemmiaVentoVeraceVerbaleVergognaVerificaVeroVerrucaVerticaleVescicaVessilloVestaleVeteranoVetrinaVetustoViandanteVibranteVicendaVichingoVicinanzaVidimareVigiliaVignetoVigoreVileVillanoViminiVincitoreViolaViperaVirgolaVirologoVirulentoViscosoVisioneVispoVissutoVisuraVitaVitelloVittimaVivandaVividoViziareVoceVogaVolatileVolereVolpeVoragineVulcanoZampognaZannaZappatoZatteraZavorraZefiroZelanteZeloZenzeroZerbinoZibettoZincoZirconeZittoZollaZoticoZuccheroZufoloZuluZuppa\";\n\nlet wordlist: Array = null;\n\nfunction loadWords(lang: Wordlist): void {\n if (wordlist != null) { return; }\n wordlist = words.replace(/([A-Z])/g, \" $1\").toLowerCase().substring(1).split(\" \");\n\n // Verify the computed list matches the official list\n /* istanbul ignore if */\n if (Wordlist.check(lang) !== \"0x5c1362d88fd4cf614a96f3234941d29f7d37c08c5292fde03bf62c2db6ff7620\") {\n wordlist = null;\n throw new Error(\"BIP39 Wordlist for it (Italian) FAILED\");\n }\n}\n\nclass LangIt extends Wordlist {\n constructor() {\n super(\"it\");\n }\n\n getWord(index: number): string {\n loadWords(this);\n return wordlist[index];\n }\n\n getWordIndex(word: string): number {\n loadWords(this);\n return wordlist.indexOf(word);\n }\n}\n\nconst langIt = new LangIt();\nWordlist.register(langIt);\n\nexport { langIt }\n", "\"use strict\";\n\nimport { toUtf8String } from \"@ethersproject/strings\";\n\nimport { Wordlist } from \"./wordlist\";\n\n\nconst data = \"}aE#4A=Yv&co#4N#6G=cJ&SM#66|/Z#4t&kn~46#4K~4q%b9=IR#7l,mB#7W_X2*dl}Uo~7s}Uf&Iw#9c&cw~6O&H6&wx&IG%v5=IQ~8a&Pv#47$PR&50%Ko&QM&3l#5f,D9#4L|/H&tQ;v0~6n]nN } = {\n zh_cn: null,\n zh_tw: null\n}\n\nconst Checks: { [key: string]: string } = {\n zh_cn: \"0x17bcc4d8547e5a7135e365d1ab443aaae95e76d8230c2782c67305d4f21497a1\",\n zh_tw: \"0x51e720e90c7b87bec1d70eb6e74a21a449bd3ec9c020b01d3a40ed991b60ce5d\"\n}\n\nconst codes = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\";\nconst style = \"~!@#$%^&*_-=[]{}|;:,.()<>?\"\n\nfunction loadWords(lang: Wordlist) {\n if (wordlist[lang.locale] !== null) { return; }\n\n wordlist[lang.locale] = [];\n\n let deltaOffset = 0;\n for (let i = 0; i < 2048; i++) {\n const s = style.indexOf(data[i * 3]);\n const bytes = [\n 228 + (s >> 2),\n 128 + codes.indexOf(data[i * 3 + 1]),\n 128 + codes.indexOf(data[i * 3 + 2]),\n ];\n\n if (lang.locale === \"zh_tw\") {\n const common = s % 4;\n for (let i = common; i < 3; i++) {\n bytes[i] = codes.indexOf(deltaData[deltaOffset++]) + ((i == 0) ? 228: 128);\n }\n }\n\n wordlist[lang.locale].push(toUtf8String(bytes));\n }\n\n // Verify the computed list matches the official list\n /* istanbul ignore if */\n if (Wordlist.check(lang) !== Checks[lang.locale]) {\n wordlist[lang.locale] = null;\n throw new Error(\"BIP39 Wordlist for \" + lang.locale + \" (Chinese) FAILED\");\n }\n}\n\nclass LangZh extends Wordlist {\n constructor(country: string) {\n super(\"zh_\" + country);\n }\n\n getWord(index: number): string {\n loadWords(this);\n return wordlist[this.locale][index];\n }\n\n getWordIndex(word: string): number {\n loadWords(this);\n return wordlist[this.locale].indexOf(word);\n }\n\n split(mnemonic: string): Array {\n mnemonic = mnemonic.replace(/(?:\\u3000| )+/g, \"\");\n return mnemonic.split(\"\");\n }\n}\n\nconst langZhCn = new LangZh(\"cn\");\nWordlist.register(langZhCn);\nWordlist.register(langZhCn, \"zh\");\n\nconst langZhTw = new LangZh(\"tw\");\nWordlist.register(langZhTw);\n\nexport { langZhCn, langZhTw };\n", "import { Wordlist } from \"./wordlist\";\n\nimport { langCz as cz } from \"./lang-cz\";\nimport { langEn as en } from \"./lang-en\";\nimport { langEs as es } from \"./lang-es\";\nimport { langFr as fr } from \"./lang-fr\";\nimport { langJa as ja } from \"./lang-ja\";\nimport { langKo as ko } from \"./lang-ko\";\nimport { langIt as it } from \"./lang-it\";\nimport { langZhCn as zh_cn, langZhTw as zh_tw } from \"./lang-zh\";\n\nexport const wordlists: { [ locale: string ]: Wordlist } = {\n cz: cz,\n en: en,\n es: es,\n fr: fr,\n it: it,\n ja: ja,\n ko: ko,\n zh: zh_cn,\n zh_cn: zh_cn,\n zh_tw: zh_tw\n};\n\n\n", "\"use strict\";\n\n// Wordlists\n// See: https://github.com/bitcoin/bips/blob/master/bip-0039/bip-0039-wordlists.md\n\nimport { logger, Wordlist } from \"./wordlist\";\n\nimport { wordlists } from \"./wordlists\";\n\nexport {\n logger,\n Wordlist,\n wordlists\n}\n", "export const version = \"hdnode/5.7.0\";\n", "\"use strict\";\n\n// See: https://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki\n// See: https://github.com/bitcoin/bips/blob/master/bip-0039.mediawiki\n\n\nimport { ExternallyOwnedAccount } from \"@ethersproject/abstract-signer\";\nimport { Base58 } from \"@ethersproject/basex\";\nimport { arrayify, BytesLike, concat, hexDataSlice, hexZeroPad, hexlify } from \"@ethersproject/bytes\";\nimport { BigNumber } from \"@ethersproject/bignumber\";\nimport { toUtf8Bytes, UnicodeNormalizationForm } from \"@ethersproject/strings\";\nimport { pbkdf2 } from \"@ethersproject/pbkdf2\";\nimport { defineReadOnly } from \"@ethersproject/properties\";\nimport { SigningKey } from \"@ethersproject/signing-key\";\nimport { computeHmac, ripemd160, sha256, SupportedAlgorithm } from \"@ethersproject/sha2\";\nimport { computeAddress } from \"@ethersproject/transactions\";\nimport { Wordlist, wordlists } from \"@ethersproject/wordlists\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\nconst N = BigNumber.from(\"0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141\");\n\n\n// \"Bitcoin seed\"\nconst MasterSecret = toUtf8Bytes(\"Bitcoin seed\");\n\nconst HardenedBit = 0x80000000;\n\n// Returns a byte with the MSB bits set\nfunction getUpperMask(bits: number): number {\n return ((1 << bits) - 1) << (8 - bits);\n}\n\n// Returns a byte with the LSB bits set\nfunction getLowerMask(bits: number): number {\n return (1 << bits) - 1;\n}\n\nfunction bytes32(value: BigNumber | Uint8Array): string {\n return hexZeroPad(hexlify(value), 32);\n}\n\nfunction base58check(data: Uint8Array): string {\n return Base58.encode(concat([ data, hexDataSlice(sha256(sha256(data)), 0, 4) ]));\n}\n\nfunction getWordlist(wordlist: string | Wordlist): Wordlist {\n if (wordlist == null) {\n return wordlists[\"en\"];\n }\n\n if (typeof(wordlist) === \"string\") {\n const words = wordlists[wordlist];\n if (words == null) {\n logger.throwArgumentError(\"unknown locale\", \"wordlist\", wordlist);\n }\n return words;\n }\n\n return wordlist;\n}\n\nconst _constructorGuard: any = {};\n\nexport const defaultPath = \"m/44'/60'/0'/0/0\";\n\nexport interface Mnemonic {\n readonly phrase: string;\n readonly path: string;\n readonly locale: string;\n};\n\nexport class HDNode implements ExternallyOwnedAccount {\n readonly privateKey: string;\n readonly publicKey: string;\n\n readonly fingerprint: string;\n readonly parentFingerprint: string;\n\n readonly address: string;\n\n readonly mnemonic?: Mnemonic;\n readonly path: string;\n\n readonly chainCode: string;\n\n readonly index: number;\n readonly depth: number;\n\n /**\n * This constructor should not be called directly.\n *\n * Please use:\n * - fromMnemonic\n * - fromSeed\n */\n constructor(constructorGuard: any, privateKey: string, publicKey: string, parentFingerprint: string, chainCode: string, index: number, depth: number, mnemonicOrPath: Mnemonic | string) {\n /* istanbul ignore if */\n if (constructorGuard !== _constructorGuard) {\n throw new Error(\"HDNode constructor cannot be called directly\");\n }\n\n if (privateKey) {\n const signingKey = new SigningKey(privateKey);\n defineReadOnly(this, \"privateKey\", signingKey.privateKey);\n defineReadOnly(this, \"publicKey\", signingKey.compressedPublicKey);\n } else {\n defineReadOnly(this, \"privateKey\", null);\n defineReadOnly(this, \"publicKey\", hexlify(publicKey));\n }\n\n defineReadOnly(this, \"parentFingerprint\", parentFingerprint);\n defineReadOnly(this, \"fingerprint\", hexDataSlice(ripemd160(sha256(this.publicKey)), 0, 4));\n\n defineReadOnly(this, \"address\", computeAddress(this.publicKey));\n\n defineReadOnly(this, \"chainCode\", chainCode);\n\n defineReadOnly(this, \"index\", index);\n defineReadOnly(this, \"depth\", depth);\n\n if (mnemonicOrPath == null) {\n // From a source that does not preserve the path (e.g. extended keys)\n defineReadOnly(this, \"mnemonic\", null);\n defineReadOnly(this, \"path\", null);\n\n } else if (typeof(mnemonicOrPath) === \"string\") {\n // From a source that does not preserve the mnemonic (e.g. neutered)\n defineReadOnly(this, \"mnemonic\", null);\n defineReadOnly(this, \"path\", mnemonicOrPath);\n\n } else {\n // From a fully qualified source\n defineReadOnly(this, \"mnemonic\", mnemonicOrPath);\n defineReadOnly(this, \"path\", mnemonicOrPath.path);\n }\n }\n\n get extendedKey(): string {\n // We only support the mainnet values for now, but if anyone needs\n // testnet values, let me know. I believe current sentiment is that\n // we should always use mainnet, and use BIP-44 to derive the network\n // - Mainnet: public=0x0488B21E, private=0x0488ADE4\n // - Testnet: public=0x043587CF, private=0x04358394\n\n if (this.depth >= 256) { throw new Error(\"Depth too large!\"); }\n\n return base58check(concat([\n ((this.privateKey != null) ? \"0x0488ADE4\": \"0x0488B21E\"),\n hexlify(this.depth),\n this.parentFingerprint,\n hexZeroPad(hexlify(this.index), 4),\n this.chainCode,\n ((this.privateKey != null) ? concat([ \"0x00\", this.privateKey ]): this.publicKey),\n ]));\n }\n\n neuter(): HDNode {\n return new HDNode(_constructorGuard, null, this.publicKey, this.parentFingerprint, this.chainCode, this.index, this.depth, this.path);\n }\n\n private _derive(index: number): HDNode {\n if (index > 0xffffffff) { throw new Error(\"invalid index - \" + String(index)); }\n\n // Base path\n let path = this.path;\n if (path) { path += \"/\" + (index & ~HardenedBit); }\n\n const data = new Uint8Array(37);\n\n if (index & HardenedBit) {\n if (!this.privateKey) {\n throw new Error(\"cannot derive child of neutered node\");\n }\n\n // Data = 0x00 || ser_256(k_par)\n data.set(arrayify(this.privateKey), 1);\n\n // Hardened path\n if (path) { path += \"'\"; }\n\n } else {\n // Data = ser_p(point(k_par))\n data.set(arrayify(this.publicKey));\n }\n\n // Data += ser_32(i)\n for (let i = 24; i >= 0; i -= 8) { data[33 + (i >> 3)] = ((index >> (24 - i)) & 0xff); }\n\n const I = arrayify(computeHmac(SupportedAlgorithm.sha512, this.chainCode, data));\n const IL = I.slice(0, 32);\n const IR = I.slice(32);\n\n // The private key\n let ki: string = null\n\n // The public key\n let Ki: string = null;\n\n if (this.privateKey) {\n ki = bytes32(BigNumber.from(IL).add(this.privateKey).mod(N));\n } else {\n const ek = new SigningKey(hexlify(IL));\n Ki = ek._addPoint(this.publicKey);\n }\n\n let mnemonicOrPath: Mnemonic | string = path;\n\n const srcMnemonic = this.mnemonic;\n if (srcMnemonic) {\n mnemonicOrPath = Object.freeze({\n phrase: srcMnemonic.phrase,\n path: path,\n locale: (srcMnemonic.locale || \"en\")\n });\n }\n\n return new HDNode(_constructorGuard, ki, Ki, this.fingerprint, bytes32(IR), index, this.depth + 1, mnemonicOrPath);\n }\n\n derivePath(path: string): HDNode {\n const components = path.split(\"/\");\n\n if (components.length === 0 || (components[0] === \"m\" && this.depth !== 0)) {\n throw new Error(\"invalid path - \" + path);\n }\n\n if (components[0] === \"m\") { components.shift(); }\n\n let result: HDNode = this;\n for (let i = 0; i < components.length; i++) {\n const component = components[i];\n if (component.match(/^[0-9]+'$/)) {\n const index = parseInt(component.substring(0, component.length - 1));\n if (index >= HardenedBit) { throw new Error(\"invalid path index - \" + component); }\n result = result._derive(HardenedBit + index);\n } else if (component.match(/^[0-9]+$/)) {\n const index = parseInt(component);\n if (index >= HardenedBit) { throw new Error(\"invalid path index - \" + component); }\n result = result._derive(index);\n } else {\n throw new Error(\"invalid path component - \" + component);\n }\n }\n\n return result;\n }\n\n\n static _fromSeed(seed: BytesLike, mnemonic: Mnemonic): HDNode {\n const seedArray: Uint8Array = arrayify(seed);\n if (seedArray.length < 16 || seedArray.length > 64) { throw new Error(\"invalid seed\"); }\n\n const I: Uint8Array = arrayify(computeHmac(SupportedAlgorithm.sha512, MasterSecret, seedArray));\n\n return new HDNode(_constructorGuard, bytes32(I.slice(0, 32)), null, \"0x00000000\", bytes32(I.slice(32)), 0, 0, mnemonic);\n }\n\n static fromMnemonic(mnemonic: string, password?: string, wordlist?: string | Wordlist): HDNode {\n\n // If a locale name was passed in, find the associated wordlist\n wordlist = getWordlist(wordlist);\n\n // Normalize the case and spacing in the mnemonic (throws if the mnemonic is invalid)\n mnemonic = entropyToMnemonic(mnemonicToEntropy(mnemonic, wordlist), wordlist);\n\n return HDNode._fromSeed(mnemonicToSeed(mnemonic, password), {\n phrase: mnemonic,\n path: \"m\",\n locale: wordlist.locale\n });\n }\n\n static fromSeed(seed: BytesLike): HDNode {\n return HDNode._fromSeed(seed, null);\n }\n\n static fromExtendedKey(extendedKey: string): HDNode {\n const bytes = Base58.decode(extendedKey);\n\n if (bytes.length !== 82 || base58check(bytes.slice(0, 78)) !== extendedKey) {\n logger.throwArgumentError(\"invalid extended key\", \"extendedKey\", \"[REDACTED]\");\n }\n\n const depth = bytes[4];\n const parentFingerprint = hexlify(bytes.slice(5, 9));\n const index = parseInt(hexlify(bytes.slice(9, 13)).substring(2), 16);\n const chainCode = hexlify(bytes.slice(13, 45));\n const key = bytes.slice(45, 78);\n\n switch (hexlify(bytes.slice(0, 4))) {\n // Public Key\n case \"0x0488b21e\": case \"0x043587cf\":\n return new HDNode(_constructorGuard, null, hexlify(key), parentFingerprint, chainCode, index, depth, null);\n\n // Private Key\n case \"0x0488ade4\": case \"0x04358394 \":\n if (key[0] !== 0) { break; }\n return new HDNode(_constructorGuard, hexlify(key.slice(1)), null, parentFingerprint, chainCode, index, depth, null);\n }\n\n return logger.throwArgumentError(\"invalid extended key\", \"extendedKey\", \"[REDACTED]\");\n }\n}\n\nexport function mnemonicToSeed(mnemonic: string, password?: string): string {\n if (!password) { password = \"\"; }\n\n const salt = toUtf8Bytes(\"mnemonic\" + password, UnicodeNormalizationForm.NFKD);\n\n return pbkdf2(toUtf8Bytes(mnemonic, UnicodeNormalizationForm.NFKD), salt, 2048, 64, \"sha512\");\n}\n\nexport function mnemonicToEntropy(mnemonic: string, wordlist?: string | Wordlist): string {\n wordlist = getWordlist(wordlist);\n\n logger.checkNormalize();\n\n const words = wordlist.split(mnemonic);\n if ((words.length % 3) !== 0) { throw new Error(\"invalid mnemonic\"); }\n\n const entropy = arrayify(new Uint8Array(Math.ceil(11 * words.length / 8)));\n\n let offset = 0;\n for (let i = 0; i < words.length; i++) {\n let index = wordlist.getWordIndex(words[i].normalize(\"NFKD\"));\n if (index === -1) { throw new Error(\"invalid mnemonic\"); }\n\n for (let bit = 0; bit < 11; bit++) {\n if (index & (1 << (10 - bit))) {\n entropy[offset >> 3] |= (1 << (7 - (offset % 8)));\n }\n offset++;\n }\n }\n\n const entropyBits = 32 * words.length / 3;\n\n const checksumBits = words.length / 3;\n const checksumMask = getUpperMask(checksumBits);\n\n const checksum = arrayify(sha256(entropy.slice(0, entropyBits / 8)))[0] & checksumMask;\n\n if (checksum !== (entropy[entropy.length - 1] & checksumMask)) {\n throw new Error(\"invalid checksum\");\n }\n\n return hexlify(entropy.slice(0, entropyBits / 8));\n}\n\nexport function entropyToMnemonic(entropy: BytesLike, wordlist?: string | Wordlist): string {\n wordlist = getWordlist(wordlist);\n\n entropy = arrayify(entropy);\n\n if ((entropy.length % 4) !== 0 || entropy.length < 16 || entropy.length > 32) {\n throw new Error(\"invalid entropy\");\n }\n\n const indices: Array = [ 0 ];\n\n let remainingBits = 11;\n for (let i = 0; i < entropy.length; i++) {\n\n // Consume the whole byte (with still more to go)\n if (remainingBits > 8) {\n indices[indices.length - 1] <<= 8;\n indices[indices.length - 1] |= entropy[i];\n\n remainingBits -= 8;\n\n // This byte will complete an 11-bit index\n } else {\n indices[indices.length - 1] <<= remainingBits;\n indices[indices.length - 1] |= entropy[i] >> (8 - remainingBits);\n\n // Start the next word\n indices.push(entropy[i] & getLowerMask(8 - remainingBits));\n\n remainingBits += 3;\n }\n }\n\n // Compute the checksum bits\n const checksumBits = entropy.length / 4;\n const checksum = arrayify(sha256(entropy))[0] & getUpperMask(checksumBits);\n\n // Shift the checksum into the word indices\n indices[indices.length - 1] <<= checksumBits;\n indices[indices.length - 1] |= (checksum >> (8 - checksumBits));\n\n return wordlist.join(indices.map((index) => (wordlist).getWord(index)));\n}\n\nexport function isValidMnemonic(mnemonic: string, wordlist?: Wordlist): boolean {\n try {\n mnemonicToEntropy(mnemonic, wordlist);\n return true;\n } catch (error) { }\n return false;\n}\n\nexport function getAccountPath(index: number): string {\n if (typeof(index) !== \"number\" || index < 0 || index >= HardenedBit || index % 1) {\n logger.throwArgumentError(\"invalid account index\", \"index\", index);\n }\n return `m/44'/60'/${ index }'/0/0`;\n}\n", "import { randomBytes as _randomBytes } from \"crypto\";\n\nimport { arrayify } from \"@ethersproject/bytes\";\n\nexport function randomBytes(length: number): Uint8Array {\n return arrayify(_randomBytes(length));\n}\n", "\"use strict\";\n\nexport function shuffled(array: Array): Array {\n array = array.slice();\n\n for (let i = array.length - 1; i > 0; i--) {\n const j = Math.floor(Math.random() * (i + 1));\n const tmp = array[i];\n array[i] = array[j];\n array[j] = tmp;\n }\n\n return array;\n}\n", "\"use strict\";\n\nexport { randomBytes } from \"./random\";\nexport { shuffled } from \"./shuffle\";\n", "\"use strict\";\n\n(function(root) {\n\n function checkInt(value) {\n return (parseInt(value) === value);\n }\n\n function checkInts(arrayish) {\n if (!checkInt(arrayish.length)) { return false; }\n\n for (var i = 0; i < arrayish.length; i++) {\n if (!checkInt(arrayish[i]) || arrayish[i] < 0 || arrayish[i] > 255) {\n return false;\n }\n }\n\n return true;\n }\n\n function coerceArray(arg, copy) {\n\n // ArrayBuffer view\n if (arg.buffer && ArrayBuffer.isView(arg) && arg.name === 'Uint8Array') {\n\n if (copy) {\n if (arg.slice) {\n arg = arg.slice();\n } else {\n arg = Array.prototype.slice.call(arg);\n }\n }\n\n return arg;\n }\n\n // It's an array; check it is a valid representation of a byte\n if (Array.isArray(arg)) {\n if (!checkInts(arg)) {\n throw new Error('Array contains invalid value: ' + arg);\n }\n\n return new Uint8Array(arg);\n }\n\n // Something else, but behaves like an array (maybe a Buffer? Arguments?)\n if (checkInt(arg.length) && checkInts(arg)) {\n return new Uint8Array(arg);\n }\n\n throw new Error('unsupported array-like object');\n }\n\n function createArray(length) {\n return new Uint8Array(length);\n }\n\n function copyArray(sourceArray, targetArray, targetStart, sourceStart, sourceEnd) {\n if (sourceStart != null || sourceEnd != null) {\n if (sourceArray.slice) {\n sourceArray = sourceArray.slice(sourceStart, sourceEnd);\n } else {\n sourceArray = Array.prototype.slice.call(sourceArray, sourceStart, sourceEnd);\n }\n }\n targetArray.set(sourceArray, targetStart);\n }\n\n\n\n var convertUtf8 = (function() {\n function toBytes(text) {\n var result = [], i = 0;\n text = encodeURI(text);\n while (i < text.length) {\n var c = text.charCodeAt(i++);\n\n // if it is a % sign, encode the following 2 bytes as a hex value\n if (c === 37) {\n result.push(parseInt(text.substr(i, 2), 16))\n i += 2;\n\n // otherwise, just the actual byte\n } else {\n result.push(c)\n }\n }\n\n return coerceArray(result);\n }\n\n function fromBytes(bytes) {\n var result = [], i = 0;\n\n while (i < bytes.length) {\n var c = bytes[i];\n\n if (c < 128) {\n result.push(String.fromCharCode(c));\n i++;\n } else if (c > 191 && c < 224) {\n result.push(String.fromCharCode(((c & 0x1f) << 6) | (bytes[i + 1] & 0x3f)));\n i += 2;\n } else {\n result.push(String.fromCharCode(((c & 0x0f) << 12) | ((bytes[i + 1] & 0x3f) << 6) | (bytes[i + 2] & 0x3f)));\n i += 3;\n }\n }\n\n return result.join('');\n }\n\n return {\n toBytes: toBytes,\n fromBytes: fromBytes,\n }\n })();\n\n var convertHex = (function() {\n function toBytes(text) {\n var result = [];\n for (var i = 0; i < text.length; i += 2) {\n result.push(parseInt(text.substr(i, 2), 16));\n }\n\n return result;\n }\n\n // http://ixti.net/development/javascript/2011/11/11/base64-encodedecode-of-utf8-in-browser-with-js.html\n var Hex = '0123456789abcdef';\n\n function fromBytes(bytes) {\n var result = [];\n for (var i = 0; i < bytes.length; i++) {\n var v = bytes[i];\n result.push(Hex[(v & 0xf0) >> 4] + Hex[v & 0x0f]);\n }\n return result.join('');\n }\n\n return {\n toBytes: toBytes,\n fromBytes: fromBytes,\n }\n })();\n\n\n // Number of rounds by keysize\n var numberOfRounds = {16: 10, 24: 12, 32: 14}\n\n // Round constant words\n var rcon = [0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36, 0x6c, 0xd8, 0xab, 0x4d, 0x9a, 0x2f, 0x5e, 0xbc, 0x63, 0xc6, 0x97, 0x35, 0x6a, 0xd4, 0xb3, 0x7d, 0xfa, 0xef, 0xc5, 0x91];\n\n // S-box and Inverse S-box (S is for Substitution)\n var S = [0x63, 0x7c, 0x77, 0x7b, 0xf2, 0x6b, 0x6f, 0xc5, 0x30, 0x01, 0x67, 0x2b, 0xfe, 0xd7, 0xab, 0x76, 0xca, 0x82, 0xc9, 0x7d, 0xfa, 0x59, 0x47, 0xf0, 0xad, 0xd4, 0xa2, 0xaf, 0x9c, 0xa4, 0x72, 0xc0, 0xb7, 0xfd, 0x93, 0x26, 0x36, 0x3f, 0xf7, 0xcc, 0x34, 0xa5, 0xe5, 0xf1, 0x71, 0xd8, 0x31, 0x15, 0x04, 0xc7, 0x23, 0xc3, 0x18, 0x96, 0x05, 0x9a, 0x07, 0x12, 0x80, 0xe2, 0xeb, 0x27, 0xb2, 0x75, 0x09, 0x83, 0x2c, 0x1a, 0x1b, 0x6e, 0x5a, 0xa0, 0x52, 0x3b, 0xd6, 0xb3, 0x29, 0xe3, 0x2f, 0x84, 0x53, 0xd1, 0x00, 0xed, 0x20, 0xfc, 0xb1, 0x5b, 0x6a, 0xcb, 0xbe, 0x39, 0x4a, 0x4c, 0x58, 0xcf, 0xd0, 0xef, 0xaa, 0xfb, 0x43, 0x4d, 0x33, 0x85, 0x45, 0xf9, 0x02, 0x7f, 0x50, 0x3c, 0x9f, 0xa8, 0x51, 0xa3, 0x40, 0x8f, 0x92, 0x9d, 0x38, 0xf5, 0xbc, 0xb6, 0xda, 0x21, 0x10, 0xff, 0xf3, 0xd2, 0xcd, 0x0c, 0x13, 0xec, 0x5f, 0x97, 0x44, 0x17, 0xc4, 0xa7, 0x7e, 0x3d, 0x64, 0x5d, 0x19, 0x73, 0x60, 0x81, 0x4f, 0xdc, 0x22, 0x2a, 0x90, 0x88, 0x46, 0xee, 0xb8, 0x14, 0xde, 0x5e, 0x0b, 0xdb, 0xe0, 0x32, 0x3a, 0x0a, 0x49, 0x06, 0x24, 0x5c, 0xc2, 0xd3, 0xac, 0x62, 0x91, 0x95, 0xe4, 0x79, 0xe7, 0xc8, 0x37, 0x6d, 0x8d, 0xd5, 0x4e, 0xa9, 0x6c, 0x56, 0xf4, 0xea, 0x65, 0x7a, 0xae, 0x08, 0xba, 0x78, 0x25, 0x2e, 0x1c, 0xa6, 0xb4, 0xc6, 0xe8, 0xdd, 0x74, 0x1f, 0x4b, 0xbd, 0x8b, 0x8a, 0x70, 0x3e, 0xb5, 0x66, 0x48, 0x03, 0xf6, 0x0e, 0x61, 0x35, 0x57, 0xb9, 0x86, 0xc1, 0x1d, 0x9e, 0xe1, 0xf8, 0x98, 0x11, 0x69, 0xd9, 0x8e, 0x94, 0x9b, 0x1e, 0x87, 0xe9, 0xce, 0x55, 0x28, 0xdf, 0x8c, 0xa1, 0x89, 0x0d, 0xbf, 0xe6, 0x42, 0x68, 0x41, 0x99, 0x2d, 0x0f, 0xb0, 0x54, 0xbb, 0x16];\n var Si =[0x52, 0x09, 0x6a, 0xd5, 0x30, 0x36, 0xa5, 0x38, 0xbf, 0x40, 0xa3, 0x9e, 0x81, 0xf3, 0xd7, 0xfb, 0x7c, 0xe3, 0x39, 0x82, 0x9b, 0x2f, 0xff, 0x87, 0x34, 0x8e, 0x43, 0x44, 0xc4, 0xde, 0xe9, 0xcb, 0x54, 0x7b, 0x94, 0x32, 0xa6, 0xc2, 0x23, 0x3d, 0xee, 0x4c, 0x95, 0x0b, 0x42, 0xfa, 0xc3, 0x4e, 0x08, 0x2e, 0xa1, 0x66, 0x28, 0xd9, 0x24, 0xb2, 0x76, 0x5b, 0xa2, 0x49, 0x6d, 0x8b, 0xd1, 0x25, 0x72, 0xf8, 0xf6, 0x64, 0x86, 0x68, 0x98, 0x16, 0xd4, 0xa4, 0x5c, 0xcc, 0x5d, 0x65, 0xb6, 0x92, 0x6c, 0x70, 0x48, 0x50, 0xfd, 0xed, 0xb9, 0xda, 0x5e, 0x15, 0x46, 0x57, 0xa7, 0x8d, 0x9d, 0x84, 0x90, 0xd8, 0xab, 0x00, 0x8c, 0xbc, 0xd3, 0x0a, 0xf7, 0xe4, 0x58, 0x05, 0xb8, 0xb3, 0x45, 0x06, 0xd0, 0x2c, 0x1e, 0x8f, 0xca, 0x3f, 0x0f, 0x02, 0xc1, 0xaf, 0xbd, 0x03, 0x01, 0x13, 0x8a, 0x6b, 0x3a, 0x91, 0x11, 0x41, 0x4f, 0x67, 0xdc, 0xea, 0x97, 0xf2, 0xcf, 0xce, 0xf0, 0xb4, 0xe6, 0x73, 0x96, 0xac, 0x74, 0x22, 0xe7, 0xad, 0x35, 0x85, 0xe2, 0xf9, 0x37, 0xe8, 0x1c, 0x75, 0xdf, 0x6e, 0x47, 0xf1, 0x1a, 0x71, 0x1d, 0x29, 0xc5, 0x89, 0x6f, 0xb7, 0x62, 0x0e, 0xaa, 0x18, 0xbe, 0x1b, 0xfc, 0x56, 0x3e, 0x4b, 0xc6, 0xd2, 0x79, 0x20, 0x9a, 0xdb, 0xc0, 0xfe, 0x78, 0xcd, 0x5a, 0xf4, 0x1f, 0xdd, 0xa8, 0x33, 0x88, 0x07, 0xc7, 0x31, 0xb1, 0x12, 0x10, 0x59, 0x27, 0x80, 0xec, 0x5f, 0x60, 0x51, 0x7f, 0xa9, 0x19, 0xb5, 0x4a, 0x0d, 0x2d, 0xe5, 0x7a, 0x9f, 0x93, 0xc9, 0x9c, 0xef, 0xa0, 0xe0, 0x3b, 0x4d, 0xae, 0x2a, 0xf5, 0xb0, 0xc8, 0xeb, 0xbb, 0x3c, 0x83, 0x53, 0x99, 0x61, 0x17, 0x2b, 0x04, 0x7e, 0xba, 0x77, 0xd6, 0x26, 0xe1, 0x69, 0x14, 0x63, 0x55, 0x21, 0x0c, 0x7d];\n\n // Transformations for encryption\n var T1 = [0xc66363a5, 0xf87c7c84, 0xee777799, 0xf67b7b8d, 0xfff2f20d, 0xd66b6bbd, 0xde6f6fb1, 0x91c5c554, 0x60303050, 0x02010103, 0xce6767a9, 0x562b2b7d, 0xe7fefe19, 0xb5d7d762, 0x4dababe6, 0xec76769a, 0x8fcaca45, 0x1f82829d, 0x89c9c940, 0xfa7d7d87, 0xeffafa15, 0xb25959eb, 0x8e4747c9, 0xfbf0f00b, 0x41adadec, 0xb3d4d467, 0x5fa2a2fd, 0x45afafea, 0x239c9cbf, 0x53a4a4f7, 0xe4727296, 0x9bc0c05b, 0x75b7b7c2, 0xe1fdfd1c, 0x3d9393ae, 0x4c26266a, 0x6c36365a, 0x7e3f3f41, 0xf5f7f702, 0x83cccc4f, 0x6834345c, 0x51a5a5f4, 0xd1e5e534, 0xf9f1f108, 0xe2717193, 0xabd8d873, 0x62313153, 0x2a15153f, 0x0804040c, 0x95c7c752, 0x46232365, 0x9dc3c35e, 0x30181828, 0x379696a1, 0x0a05050f, 0x2f9a9ab5, 0x0e070709, 0x24121236, 0x1b80809b, 0xdfe2e23d, 0xcdebeb26, 0x4e272769, 0x7fb2b2cd, 0xea75759f, 0x1209091b, 0x1d83839e, 0x582c2c74, 0x341a1a2e, 0x361b1b2d, 0xdc6e6eb2, 0xb45a5aee, 0x5ba0a0fb, 0xa45252f6, 0x763b3b4d, 0xb7d6d661, 0x7db3b3ce, 0x5229297b, 0xdde3e33e, 0x5e2f2f71, 0x13848497, 0xa65353f5, 0xb9d1d168, 0x00000000, 0xc1eded2c, 0x40202060, 0xe3fcfc1f, 0x79b1b1c8, 0xb65b5bed, 0xd46a6abe, 0x8dcbcb46, 0x67bebed9, 0x7239394b, 0x944a4ade, 0x984c4cd4, 0xb05858e8, 0x85cfcf4a, 0xbbd0d06b, 0xc5efef2a, 0x4faaaae5, 0xedfbfb16, 0x864343c5, 0x9a4d4dd7, 0x66333355, 0x11858594, 0x8a4545cf, 0xe9f9f910, 0x04020206, 0xfe7f7f81, 0xa05050f0, 0x783c3c44, 0x259f9fba, 0x4ba8a8e3, 0xa25151f3, 0x5da3a3fe, 0x804040c0, 0x058f8f8a, 0x3f9292ad, 0x219d9dbc, 0x70383848, 0xf1f5f504, 0x63bcbcdf, 0x77b6b6c1, 0xafdada75, 0x42212163, 0x20101030, 0xe5ffff1a, 0xfdf3f30e, 0xbfd2d26d, 0x81cdcd4c, 0x180c0c14, 0x26131335, 0xc3ecec2f, 0xbe5f5fe1, 0x359797a2, 0x884444cc, 0x2e171739, 0x93c4c457, 0x55a7a7f2, 0xfc7e7e82, 0x7a3d3d47, 0xc86464ac, 0xba5d5de7, 0x3219192b, 0xe6737395, 0xc06060a0, 0x19818198, 0x9e4f4fd1, 0xa3dcdc7f, 0x44222266, 0x542a2a7e, 0x3b9090ab, 0x0b888883, 0x8c4646ca, 0xc7eeee29, 0x6bb8b8d3, 0x2814143c, 0xa7dede79, 0xbc5e5ee2, 0x160b0b1d, 0xaddbdb76, 0xdbe0e03b, 0x64323256, 0x743a3a4e, 0x140a0a1e, 0x924949db, 0x0c06060a, 0x4824246c, 0xb85c5ce4, 0x9fc2c25d, 0xbdd3d36e, 0x43acacef, 0xc46262a6, 0x399191a8, 0x319595a4, 0xd3e4e437, 0xf279798b, 0xd5e7e732, 0x8bc8c843, 0x6e373759, 0xda6d6db7, 0x018d8d8c, 0xb1d5d564, 0x9c4e4ed2, 0x49a9a9e0, 0xd86c6cb4, 0xac5656fa, 0xf3f4f407, 0xcfeaea25, 0xca6565af, 0xf47a7a8e, 0x47aeaee9, 0x10080818, 0x6fbabad5, 0xf0787888, 0x4a25256f, 0x5c2e2e72, 0x381c1c24, 0x57a6a6f1, 0x73b4b4c7, 0x97c6c651, 0xcbe8e823, 0xa1dddd7c, 0xe874749c, 0x3e1f1f21, 0x964b4bdd, 0x61bdbddc, 0x0d8b8b86, 0x0f8a8a85, 0xe0707090, 0x7c3e3e42, 0x71b5b5c4, 0xcc6666aa, 0x904848d8, 0x06030305, 0xf7f6f601, 0x1c0e0e12, 0xc26161a3, 0x6a35355f, 0xae5757f9, 0x69b9b9d0, 0x17868691, 0x99c1c158, 0x3a1d1d27, 0x279e9eb9, 0xd9e1e138, 0xebf8f813, 0x2b9898b3, 0x22111133, 0xd26969bb, 0xa9d9d970, 0x078e8e89, 0x339494a7, 0x2d9b9bb6, 0x3c1e1e22, 0x15878792, 0xc9e9e920, 0x87cece49, 0xaa5555ff, 0x50282878, 0xa5dfdf7a, 0x038c8c8f, 0x59a1a1f8, 0x09898980, 0x1a0d0d17, 0x65bfbfda, 0xd7e6e631, 0x844242c6, 0xd06868b8, 0x824141c3, 0x299999b0, 0x5a2d2d77, 0x1e0f0f11, 0x7bb0b0cb, 0xa85454fc, 0x6dbbbbd6, 0x2c16163a];\n var T2 = [0xa5c66363, 0x84f87c7c, 0x99ee7777, 0x8df67b7b, 0x0dfff2f2, 0xbdd66b6b, 0xb1de6f6f, 0x5491c5c5, 0x50603030, 0x03020101, 0xa9ce6767, 0x7d562b2b, 0x19e7fefe, 0x62b5d7d7, 0xe64dabab, 0x9aec7676, 0x458fcaca, 0x9d1f8282, 0x4089c9c9, 0x87fa7d7d, 0x15effafa, 0xebb25959, 0xc98e4747, 0x0bfbf0f0, 0xec41adad, 0x67b3d4d4, 0xfd5fa2a2, 0xea45afaf, 0xbf239c9c, 0xf753a4a4, 0x96e47272, 0x5b9bc0c0, 0xc275b7b7, 0x1ce1fdfd, 0xae3d9393, 0x6a4c2626, 0x5a6c3636, 0x417e3f3f, 0x02f5f7f7, 0x4f83cccc, 0x5c683434, 0xf451a5a5, 0x34d1e5e5, 0x08f9f1f1, 0x93e27171, 0x73abd8d8, 0x53623131, 0x3f2a1515, 0x0c080404, 0x5295c7c7, 0x65462323, 0x5e9dc3c3, 0x28301818, 0xa1379696, 0x0f0a0505, 0xb52f9a9a, 0x090e0707, 0x36241212, 0x9b1b8080, 0x3ddfe2e2, 0x26cdebeb, 0x694e2727, 0xcd7fb2b2, 0x9fea7575, 0x1b120909, 0x9e1d8383, 0x74582c2c, 0x2e341a1a, 0x2d361b1b, 0xb2dc6e6e, 0xeeb45a5a, 0xfb5ba0a0, 0xf6a45252, 0x4d763b3b, 0x61b7d6d6, 0xce7db3b3, 0x7b522929, 0x3edde3e3, 0x715e2f2f, 0x97138484, 0xf5a65353, 0x68b9d1d1, 0x00000000, 0x2cc1eded, 0x60402020, 0x1fe3fcfc, 0xc879b1b1, 0xedb65b5b, 0xbed46a6a, 0x468dcbcb, 0xd967bebe, 0x4b723939, 0xde944a4a, 0xd4984c4c, 0xe8b05858, 0x4a85cfcf, 0x6bbbd0d0, 0x2ac5efef, 0xe54faaaa, 0x16edfbfb, 0xc5864343, 0xd79a4d4d, 0x55663333, 0x94118585, 0xcf8a4545, 0x10e9f9f9, 0x06040202, 0x81fe7f7f, 0xf0a05050, 0x44783c3c, 0xba259f9f, 0xe34ba8a8, 0xf3a25151, 0xfe5da3a3, 0xc0804040, 0x8a058f8f, 0xad3f9292, 0xbc219d9d, 0x48703838, 0x04f1f5f5, 0xdf63bcbc, 0xc177b6b6, 0x75afdada, 0x63422121, 0x30201010, 0x1ae5ffff, 0x0efdf3f3, 0x6dbfd2d2, 0x4c81cdcd, 0x14180c0c, 0x35261313, 0x2fc3ecec, 0xe1be5f5f, 0xa2359797, 0xcc884444, 0x392e1717, 0x5793c4c4, 0xf255a7a7, 0x82fc7e7e, 0x477a3d3d, 0xacc86464, 0xe7ba5d5d, 0x2b321919, 0x95e67373, 0xa0c06060, 0x98198181, 0xd19e4f4f, 0x7fa3dcdc, 0x66442222, 0x7e542a2a, 0xab3b9090, 0x830b8888, 0xca8c4646, 0x29c7eeee, 0xd36bb8b8, 0x3c281414, 0x79a7dede, 0xe2bc5e5e, 0x1d160b0b, 0x76addbdb, 0x3bdbe0e0, 0x56643232, 0x4e743a3a, 0x1e140a0a, 0xdb924949, 0x0a0c0606, 0x6c482424, 0xe4b85c5c, 0x5d9fc2c2, 0x6ebdd3d3, 0xef43acac, 0xa6c46262, 0xa8399191, 0xa4319595, 0x37d3e4e4, 0x8bf27979, 0x32d5e7e7, 0x438bc8c8, 0x596e3737, 0xb7da6d6d, 0x8c018d8d, 0x64b1d5d5, 0xd29c4e4e, 0xe049a9a9, 0xb4d86c6c, 0xfaac5656, 0x07f3f4f4, 0x25cfeaea, 0xafca6565, 0x8ef47a7a, 0xe947aeae, 0x18100808, 0xd56fbaba, 0x88f07878, 0x6f4a2525, 0x725c2e2e, 0x24381c1c, 0xf157a6a6, 0xc773b4b4, 0x5197c6c6, 0x23cbe8e8, 0x7ca1dddd, 0x9ce87474, 0x213e1f1f, 0xdd964b4b, 0xdc61bdbd, 0x860d8b8b, 0x850f8a8a, 0x90e07070, 0x427c3e3e, 0xc471b5b5, 0xaacc6666, 0xd8904848, 0x05060303, 0x01f7f6f6, 0x121c0e0e, 0xa3c26161, 0x5f6a3535, 0xf9ae5757, 0xd069b9b9, 0x91178686, 0x5899c1c1, 0x273a1d1d, 0xb9279e9e, 0x38d9e1e1, 0x13ebf8f8, 0xb32b9898, 0x33221111, 0xbbd26969, 0x70a9d9d9, 0x89078e8e, 0xa7339494, 0xb62d9b9b, 0x223c1e1e, 0x92158787, 0x20c9e9e9, 0x4987cece, 0xffaa5555, 0x78502828, 0x7aa5dfdf, 0x8f038c8c, 0xf859a1a1, 0x80098989, 0x171a0d0d, 0xda65bfbf, 0x31d7e6e6, 0xc6844242, 0xb8d06868, 0xc3824141, 0xb0299999, 0x775a2d2d, 0x111e0f0f, 0xcb7bb0b0, 0xfca85454, 0xd66dbbbb, 0x3a2c1616];\n var T3 = [0x63a5c663, 0x7c84f87c, 0x7799ee77, 0x7b8df67b, 0xf20dfff2, 0x6bbdd66b, 0x6fb1de6f, 0xc55491c5, 0x30506030, 0x01030201, 0x67a9ce67, 0x2b7d562b, 0xfe19e7fe, 0xd762b5d7, 0xabe64dab, 0x769aec76, 0xca458fca, 0x829d1f82, 0xc94089c9, 0x7d87fa7d, 0xfa15effa, 0x59ebb259, 0x47c98e47, 0xf00bfbf0, 0xadec41ad, 0xd467b3d4, 0xa2fd5fa2, 0xafea45af, 0x9cbf239c, 0xa4f753a4, 0x7296e472, 0xc05b9bc0, 0xb7c275b7, 0xfd1ce1fd, 0x93ae3d93, 0x266a4c26, 0x365a6c36, 0x3f417e3f, 0xf702f5f7, 0xcc4f83cc, 0x345c6834, 0xa5f451a5, 0xe534d1e5, 0xf108f9f1, 0x7193e271, 0xd873abd8, 0x31536231, 0x153f2a15, 0x040c0804, 0xc75295c7, 0x23654623, 0xc35e9dc3, 0x18283018, 0x96a13796, 0x050f0a05, 0x9ab52f9a, 0x07090e07, 0x12362412, 0x809b1b80, 0xe23ddfe2, 0xeb26cdeb, 0x27694e27, 0xb2cd7fb2, 0x759fea75, 0x091b1209, 0x839e1d83, 0x2c74582c, 0x1a2e341a, 0x1b2d361b, 0x6eb2dc6e, 0x5aeeb45a, 0xa0fb5ba0, 0x52f6a452, 0x3b4d763b, 0xd661b7d6, 0xb3ce7db3, 0x297b5229, 0xe33edde3, 0x2f715e2f, 0x84971384, 0x53f5a653, 0xd168b9d1, 0x00000000, 0xed2cc1ed, 0x20604020, 0xfc1fe3fc, 0xb1c879b1, 0x5bedb65b, 0x6abed46a, 0xcb468dcb, 0xbed967be, 0x394b7239, 0x4ade944a, 0x4cd4984c, 0x58e8b058, 0xcf4a85cf, 0xd06bbbd0, 0xef2ac5ef, 0xaae54faa, 0xfb16edfb, 0x43c58643, 0x4dd79a4d, 0x33556633, 0x85941185, 0x45cf8a45, 0xf910e9f9, 0x02060402, 0x7f81fe7f, 0x50f0a050, 0x3c44783c, 0x9fba259f, 0xa8e34ba8, 0x51f3a251, 0xa3fe5da3, 0x40c08040, 0x8f8a058f, 0x92ad3f92, 0x9dbc219d, 0x38487038, 0xf504f1f5, 0xbcdf63bc, 0xb6c177b6, 0xda75afda, 0x21634221, 0x10302010, 0xff1ae5ff, 0xf30efdf3, 0xd26dbfd2, 0xcd4c81cd, 0x0c14180c, 0x13352613, 0xec2fc3ec, 0x5fe1be5f, 0x97a23597, 0x44cc8844, 0x17392e17, 0xc45793c4, 0xa7f255a7, 0x7e82fc7e, 0x3d477a3d, 0x64acc864, 0x5de7ba5d, 0x192b3219, 0x7395e673, 0x60a0c060, 0x81981981, 0x4fd19e4f, 0xdc7fa3dc, 0x22664422, 0x2a7e542a, 0x90ab3b90, 0x88830b88, 0x46ca8c46, 0xee29c7ee, 0xb8d36bb8, 0x143c2814, 0xde79a7de, 0x5ee2bc5e, 0x0b1d160b, 0xdb76addb, 0xe03bdbe0, 0x32566432, 0x3a4e743a, 0x0a1e140a, 0x49db9249, 0x060a0c06, 0x246c4824, 0x5ce4b85c, 0xc25d9fc2, 0xd36ebdd3, 0xacef43ac, 0x62a6c462, 0x91a83991, 0x95a43195, 0xe437d3e4, 0x798bf279, 0xe732d5e7, 0xc8438bc8, 0x37596e37, 0x6db7da6d, 0x8d8c018d, 0xd564b1d5, 0x4ed29c4e, 0xa9e049a9, 0x6cb4d86c, 0x56faac56, 0xf407f3f4, 0xea25cfea, 0x65afca65, 0x7a8ef47a, 0xaee947ae, 0x08181008, 0xbad56fba, 0x7888f078, 0x256f4a25, 0x2e725c2e, 0x1c24381c, 0xa6f157a6, 0xb4c773b4, 0xc65197c6, 0xe823cbe8, 0xdd7ca1dd, 0x749ce874, 0x1f213e1f, 0x4bdd964b, 0xbddc61bd, 0x8b860d8b, 0x8a850f8a, 0x7090e070, 0x3e427c3e, 0xb5c471b5, 0x66aacc66, 0x48d89048, 0x03050603, 0xf601f7f6, 0x0e121c0e, 0x61a3c261, 0x355f6a35, 0x57f9ae57, 0xb9d069b9, 0x86911786, 0xc15899c1, 0x1d273a1d, 0x9eb9279e, 0xe138d9e1, 0xf813ebf8, 0x98b32b98, 0x11332211, 0x69bbd269, 0xd970a9d9, 0x8e89078e, 0x94a73394, 0x9bb62d9b, 0x1e223c1e, 0x87921587, 0xe920c9e9, 0xce4987ce, 0x55ffaa55, 0x28785028, 0xdf7aa5df, 0x8c8f038c, 0xa1f859a1, 0x89800989, 0x0d171a0d, 0xbfda65bf, 0xe631d7e6, 0x42c68442, 0x68b8d068, 0x41c38241, 0x99b02999, 0x2d775a2d, 0x0f111e0f, 0xb0cb7bb0, 0x54fca854, 0xbbd66dbb, 0x163a2c16];\n var T4 = [0x6363a5c6, 0x7c7c84f8, 0x777799ee, 0x7b7b8df6, 0xf2f20dff, 0x6b6bbdd6, 0x6f6fb1de, 0xc5c55491, 0x30305060, 0x01010302, 0x6767a9ce, 0x2b2b7d56, 0xfefe19e7, 0xd7d762b5, 0xababe64d, 0x76769aec, 0xcaca458f, 0x82829d1f, 0xc9c94089, 0x7d7d87fa, 0xfafa15ef, 0x5959ebb2, 0x4747c98e, 0xf0f00bfb, 0xadadec41, 0xd4d467b3, 0xa2a2fd5f, 0xafafea45, 0x9c9cbf23, 0xa4a4f753, 0x727296e4, 0xc0c05b9b, 0xb7b7c275, 0xfdfd1ce1, 0x9393ae3d, 0x26266a4c, 0x36365a6c, 0x3f3f417e, 0xf7f702f5, 0xcccc4f83, 0x34345c68, 0xa5a5f451, 0xe5e534d1, 0xf1f108f9, 0x717193e2, 0xd8d873ab, 0x31315362, 0x15153f2a, 0x04040c08, 0xc7c75295, 0x23236546, 0xc3c35e9d, 0x18182830, 0x9696a137, 0x05050f0a, 0x9a9ab52f, 0x0707090e, 0x12123624, 0x80809b1b, 0xe2e23ddf, 0xebeb26cd, 0x2727694e, 0xb2b2cd7f, 0x75759fea, 0x09091b12, 0x83839e1d, 0x2c2c7458, 0x1a1a2e34, 0x1b1b2d36, 0x6e6eb2dc, 0x5a5aeeb4, 0xa0a0fb5b, 0x5252f6a4, 0x3b3b4d76, 0xd6d661b7, 0xb3b3ce7d, 0x29297b52, 0xe3e33edd, 0x2f2f715e, 0x84849713, 0x5353f5a6, 0xd1d168b9, 0x00000000, 0xeded2cc1, 0x20206040, 0xfcfc1fe3, 0xb1b1c879, 0x5b5bedb6, 0x6a6abed4, 0xcbcb468d, 0xbebed967, 0x39394b72, 0x4a4ade94, 0x4c4cd498, 0x5858e8b0, 0xcfcf4a85, 0xd0d06bbb, 0xefef2ac5, 0xaaaae54f, 0xfbfb16ed, 0x4343c586, 0x4d4dd79a, 0x33335566, 0x85859411, 0x4545cf8a, 0xf9f910e9, 0x02020604, 0x7f7f81fe, 0x5050f0a0, 0x3c3c4478, 0x9f9fba25, 0xa8a8e34b, 0x5151f3a2, 0xa3a3fe5d, 0x4040c080, 0x8f8f8a05, 0x9292ad3f, 0x9d9dbc21, 0x38384870, 0xf5f504f1, 0xbcbcdf63, 0xb6b6c177, 0xdada75af, 0x21216342, 0x10103020, 0xffff1ae5, 0xf3f30efd, 0xd2d26dbf, 0xcdcd4c81, 0x0c0c1418, 0x13133526, 0xecec2fc3, 0x5f5fe1be, 0x9797a235, 0x4444cc88, 0x1717392e, 0xc4c45793, 0xa7a7f255, 0x7e7e82fc, 0x3d3d477a, 0x6464acc8, 0x5d5de7ba, 0x19192b32, 0x737395e6, 0x6060a0c0, 0x81819819, 0x4f4fd19e, 0xdcdc7fa3, 0x22226644, 0x2a2a7e54, 0x9090ab3b, 0x8888830b, 0x4646ca8c, 0xeeee29c7, 0xb8b8d36b, 0x14143c28, 0xdede79a7, 0x5e5ee2bc, 0x0b0b1d16, 0xdbdb76ad, 0xe0e03bdb, 0x32325664, 0x3a3a4e74, 0x0a0a1e14, 0x4949db92, 0x06060a0c, 0x24246c48, 0x5c5ce4b8, 0xc2c25d9f, 0xd3d36ebd, 0xacacef43, 0x6262a6c4, 0x9191a839, 0x9595a431, 0xe4e437d3, 0x79798bf2, 0xe7e732d5, 0xc8c8438b, 0x3737596e, 0x6d6db7da, 0x8d8d8c01, 0xd5d564b1, 0x4e4ed29c, 0xa9a9e049, 0x6c6cb4d8, 0x5656faac, 0xf4f407f3, 0xeaea25cf, 0x6565afca, 0x7a7a8ef4, 0xaeaee947, 0x08081810, 0xbabad56f, 0x787888f0, 0x25256f4a, 0x2e2e725c, 0x1c1c2438, 0xa6a6f157, 0xb4b4c773, 0xc6c65197, 0xe8e823cb, 0xdddd7ca1, 0x74749ce8, 0x1f1f213e, 0x4b4bdd96, 0xbdbddc61, 0x8b8b860d, 0x8a8a850f, 0x707090e0, 0x3e3e427c, 0xb5b5c471, 0x6666aacc, 0x4848d890, 0x03030506, 0xf6f601f7, 0x0e0e121c, 0x6161a3c2, 0x35355f6a, 0x5757f9ae, 0xb9b9d069, 0x86869117, 0xc1c15899, 0x1d1d273a, 0x9e9eb927, 0xe1e138d9, 0xf8f813eb, 0x9898b32b, 0x11113322, 0x6969bbd2, 0xd9d970a9, 0x8e8e8907, 0x9494a733, 0x9b9bb62d, 0x1e1e223c, 0x87879215, 0xe9e920c9, 0xcece4987, 0x5555ffaa, 0x28287850, 0xdfdf7aa5, 0x8c8c8f03, 0xa1a1f859, 0x89898009, 0x0d0d171a, 0xbfbfda65, 0xe6e631d7, 0x4242c684, 0x6868b8d0, 0x4141c382, 0x9999b029, 0x2d2d775a, 0x0f0f111e, 0xb0b0cb7b, 0x5454fca8, 0xbbbbd66d, 0x16163a2c];\n\n // Transformations for decryption\n var T5 = [0x51f4a750, 0x7e416553, 0x1a17a4c3, 0x3a275e96, 0x3bab6bcb, 0x1f9d45f1, 0xacfa58ab, 0x4be30393, 0x2030fa55, 0xad766df6, 0x88cc7691, 0xf5024c25, 0x4fe5d7fc, 0xc52acbd7, 0x26354480, 0xb562a38f, 0xdeb15a49, 0x25ba1b67, 0x45ea0e98, 0x5dfec0e1, 0xc32f7502, 0x814cf012, 0x8d4697a3, 0x6bd3f9c6, 0x038f5fe7, 0x15929c95, 0xbf6d7aeb, 0x955259da, 0xd4be832d, 0x587421d3, 0x49e06929, 0x8ec9c844, 0x75c2896a, 0xf48e7978, 0x99583e6b, 0x27b971dd, 0xbee14fb6, 0xf088ad17, 0xc920ac66, 0x7dce3ab4, 0x63df4a18, 0xe51a3182, 0x97513360, 0x62537f45, 0xb16477e0, 0xbb6bae84, 0xfe81a01c, 0xf9082b94, 0x70486858, 0x8f45fd19, 0x94de6c87, 0x527bf8b7, 0xab73d323, 0x724b02e2, 0xe31f8f57, 0x6655ab2a, 0xb2eb2807, 0x2fb5c203, 0x86c57b9a, 0xd33708a5, 0x302887f2, 0x23bfa5b2, 0x02036aba, 0xed16825c, 0x8acf1c2b, 0xa779b492, 0xf307f2f0, 0x4e69e2a1, 0x65daf4cd, 0x0605bed5, 0xd134621f, 0xc4a6fe8a, 0x342e539d, 0xa2f355a0, 0x058ae132, 0xa4f6eb75, 0x0b83ec39, 0x4060efaa, 0x5e719f06, 0xbd6e1051, 0x3e218af9, 0x96dd063d, 0xdd3e05ae, 0x4de6bd46, 0x91548db5, 0x71c45d05, 0x0406d46f, 0x605015ff, 0x1998fb24, 0xd6bde997, 0x894043cc, 0x67d99e77, 0xb0e842bd, 0x07898b88, 0xe7195b38, 0x79c8eedb, 0xa17c0a47, 0x7c420fe9, 0xf8841ec9, 0x00000000, 0x09808683, 0x322bed48, 0x1e1170ac, 0x6c5a724e, 0xfd0efffb, 0x0f853856, 0x3daed51e, 0x362d3927, 0x0a0fd964, 0x685ca621, 0x9b5b54d1, 0x24362e3a, 0x0c0a67b1, 0x9357e70f, 0xb4ee96d2, 0x1b9b919e, 0x80c0c54f, 0x61dc20a2, 0x5a774b69, 0x1c121a16, 0xe293ba0a, 0xc0a02ae5, 0x3c22e043, 0x121b171d, 0x0e090d0b, 0xf28bc7ad, 0x2db6a8b9, 0x141ea9c8, 0x57f11985, 0xaf75074c, 0xee99ddbb, 0xa37f60fd, 0xf701269f, 0x5c72f5bc, 0x44663bc5, 0x5bfb7e34, 0x8b432976, 0xcb23c6dc, 0xb6edfc68, 0xb8e4f163, 0xd731dcca, 0x42638510, 0x13972240, 0x84c61120, 0x854a247d, 0xd2bb3df8, 0xaef93211, 0xc729a16d, 0x1d9e2f4b, 0xdcb230f3, 0x0d8652ec, 0x77c1e3d0, 0x2bb3166c, 0xa970b999, 0x119448fa, 0x47e96422, 0xa8fc8cc4, 0xa0f03f1a, 0x567d2cd8, 0x223390ef, 0x87494ec7, 0xd938d1c1, 0x8ccaa2fe, 0x98d40b36, 0xa6f581cf, 0xa57ade28, 0xdab78e26, 0x3fadbfa4, 0x2c3a9de4, 0x5078920d, 0x6a5fcc9b, 0x547e4662, 0xf68d13c2, 0x90d8b8e8, 0x2e39f75e, 0x82c3aff5, 0x9f5d80be, 0x69d0937c, 0x6fd52da9, 0xcf2512b3, 0xc8ac993b, 0x10187da7, 0xe89c636e, 0xdb3bbb7b, 0xcd267809, 0x6e5918f4, 0xec9ab701, 0x834f9aa8, 0xe6956e65, 0xaaffe67e, 0x21bccf08, 0xef15e8e6, 0xbae79bd9, 0x4a6f36ce, 0xea9f09d4, 0x29b07cd6, 0x31a4b2af, 0x2a3f2331, 0xc6a59430, 0x35a266c0, 0x744ebc37, 0xfc82caa6, 0xe090d0b0, 0x33a7d815, 0xf104984a, 0x41ecdaf7, 0x7fcd500e, 0x1791f62f, 0x764dd68d, 0x43efb04d, 0xccaa4d54, 0xe49604df, 0x9ed1b5e3, 0x4c6a881b, 0xc12c1fb8, 0x4665517f, 0x9d5eea04, 0x018c355d, 0xfa877473, 0xfb0b412e, 0xb3671d5a, 0x92dbd252, 0xe9105633, 0x6dd64713, 0x9ad7618c, 0x37a10c7a, 0x59f8148e, 0xeb133c89, 0xcea927ee, 0xb761c935, 0xe11ce5ed, 0x7a47b13c, 0x9cd2df59, 0x55f2733f, 0x1814ce79, 0x73c737bf, 0x53f7cdea, 0x5ffdaa5b, 0xdf3d6f14, 0x7844db86, 0xcaaff381, 0xb968c43e, 0x3824342c, 0xc2a3405f, 0x161dc372, 0xbce2250c, 0x283c498b, 0xff0d9541, 0x39a80171, 0x080cb3de, 0xd8b4e49c, 0x6456c190, 0x7bcb8461, 0xd532b670, 0x486c5c74, 0xd0b85742];\n var T6 = [0x5051f4a7, 0x537e4165, 0xc31a17a4, 0x963a275e, 0xcb3bab6b, 0xf11f9d45, 0xabacfa58, 0x934be303, 0x552030fa, 0xf6ad766d, 0x9188cc76, 0x25f5024c, 0xfc4fe5d7, 0xd7c52acb, 0x80263544, 0x8fb562a3, 0x49deb15a, 0x6725ba1b, 0x9845ea0e, 0xe15dfec0, 0x02c32f75, 0x12814cf0, 0xa38d4697, 0xc66bd3f9, 0xe7038f5f, 0x9515929c, 0xebbf6d7a, 0xda955259, 0x2dd4be83, 0xd3587421, 0x2949e069, 0x448ec9c8, 0x6a75c289, 0x78f48e79, 0x6b99583e, 0xdd27b971, 0xb6bee14f, 0x17f088ad, 0x66c920ac, 0xb47dce3a, 0x1863df4a, 0x82e51a31, 0x60975133, 0x4562537f, 0xe0b16477, 0x84bb6bae, 0x1cfe81a0, 0x94f9082b, 0x58704868, 0x198f45fd, 0x8794de6c, 0xb7527bf8, 0x23ab73d3, 0xe2724b02, 0x57e31f8f, 0x2a6655ab, 0x07b2eb28, 0x032fb5c2, 0x9a86c57b, 0xa5d33708, 0xf2302887, 0xb223bfa5, 0xba02036a, 0x5ced1682, 0x2b8acf1c, 0x92a779b4, 0xf0f307f2, 0xa14e69e2, 0xcd65daf4, 0xd50605be, 0x1fd13462, 0x8ac4a6fe, 0x9d342e53, 0xa0a2f355, 0x32058ae1, 0x75a4f6eb, 0x390b83ec, 0xaa4060ef, 0x065e719f, 0x51bd6e10, 0xf93e218a, 0x3d96dd06, 0xaedd3e05, 0x464de6bd, 0xb591548d, 0x0571c45d, 0x6f0406d4, 0xff605015, 0x241998fb, 0x97d6bde9, 0xcc894043, 0x7767d99e, 0xbdb0e842, 0x8807898b, 0x38e7195b, 0xdb79c8ee, 0x47a17c0a, 0xe97c420f, 0xc9f8841e, 0x00000000, 0x83098086, 0x48322bed, 0xac1e1170, 0x4e6c5a72, 0xfbfd0eff, 0x560f8538, 0x1e3daed5, 0x27362d39, 0x640a0fd9, 0x21685ca6, 0xd19b5b54, 0x3a24362e, 0xb10c0a67, 0x0f9357e7, 0xd2b4ee96, 0x9e1b9b91, 0x4f80c0c5, 0xa261dc20, 0x695a774b, 0x161c121a, 0x0ae293ba, 0xe5c0a02a, 0x433c22e0, 0x1d121b17, 0x0b0e090d, 0xadf28bc7, 0xb92db6a8, 0xc8141ea9, 0x8557f119, 0x4caf7507, 0xbbee99dd, 0xfda37f60, 0x9ff70126, 0xbc5c72f5, 0xc544663b, 0x345bfb7e, 0x768b4329, 0xdccb23c6, 0x68b6edfc, 0x63b8e4f1, 0xcad731dc, 0x10426385, 0x40139722, 0x2084c611, 0x7d854a24, 0xf8d2bb3d, 0x11aef932, 0x6dc729a1, 0x4b1d9e2f, 0xf3dcb230, 0xec0d8652, 0xd077c1e3, 0x6c2bb316, 0x99a970b9, 0xfa119448, 0x2247e964, 0xc4a8fc8c, 0x1aa0f03f, 0xd8567d2c, 0xef223390, 0xc787494e, 0xc1d938d1, 0xfe8ccaa2, 0x3698d40b, 0xcfa6f581, 0x28a57ade, 0x26dab78e, 0xa43fadbf, 0xe42c3a9d, 0x0d507892, 0x9b6a5fcc, 0x62547e46, 0xc2f68d13, 0xe890d8b8, 0x5e2e39f7, 0xf582c3af, 0xbe9f5d80, 0x7c69d093, 0xa96fd52d, 0xb3cf2512, 0x3bc8ac99, 0xa710187d, 0x6ee89c63, 0x7bdb3bbb, 0x09cd2678, 0xf46e5918, 0x01ec9ab7, 0xa8834f9a, 0x65e6956e, 0x7eaaffe6, 0x0821bccf, 0xe6ef15e8, 0xd9bae79b, 0xce4a6f36, 0xd4ea9f09, 0xd629b07c, 0xaf31a4b2, 0x312a3f23, 0x30c6a594, 0xc035a266, 0x37744ebc, 0xa6fc82ca, 0xb0e090d0, 0x1533a7d8, 0x4af10498, 0xf741ecda, 0x0e7fcd50, 0x2f1791f6, 0x8d764dd6, 0x4d43efb0, 0x54ccaa4d, 0xdfe49604, 0xe39ed1b5, 0x1b4c6a88, 0xb8c12c1f, 0x7f466551, 0x049d5eea, 0x5d018c35, 0x73fa8774, 0x2efb0b41, 0x5ab3671d, 0x5292dbd2, 0x33e91056, 0x136dd647, 0x8c9ad761, 0x7a37a10c, 0x8e59f814, 0x89eb133c, 0xeecea927, 0x35b761c9, 0xede11ce5, 0x3c7a47b1, 0x599cd2df, 0x3f55f273, 0x791814ce, 0xbf73c737, 0xea53f7cd, 0x5b5ffdaa, 0x14df3d6f, 0x867844db, 0x81caaff3, 0x3eb968c4, 0x2c382434, 0x5fc2a340, 0x72161dc3, 0x0cbce225, 0x8b283c49, 0x41ff0d95, 0x7139a801, 0xde080cb3, 0x9cd8b4e4, 0x906456c1, 0x617bcb84, 0x70d532b6, 0x74486c5c, 0x42d0b857];\n var T7 = [0xa75051f4, 0x65537e41, 0xa4c31a17, 0x5e963a27, 0x6bcb3bab, 0x45f11f9d, 0x58abacfa, 0x03934be3, 0xfa552030, 0x6df6ad76, 0x769188cc, 0x4c25f502, 0xd7fc4fe5, 0xcbd7c52a, 0x44802635, 0xa38fb562, 0x5a49deb1, 0x1b6725ba, 0x0e9845ea, 0xc0e15dfe, 0x7502c32f, 0xf012814c, 0x97a38d46, 0xf9c66bd3, 0x5fe7038f, 0x9c951592, 0x7aebbf6d, 0x59da9552, 0x832dd4be, 0x21d35874, 0x692949e0, 0xc8448ec9, 0x896a75c2, 0x7978f48e, 0x3e6b9958, 0x71dd27b9, 0x4fb6bee1, 0xad17f088, 0xac66c920, 0x3ab47dce, 0x4a1863df, 0x3182e51a, 0x33609751, 0x7f456253, 0x77e0b164, 0xae84bb6b, 0xa01cfe81, 0x2b94f908, 0x68587048, 0xfd198f45, 0x6c8794de, 0xf8b7527b, 0xd323ab73, 0x02e2724b, 0x8f57e31f, 0xab2a6655, 0x2807b2eb, 0xc2032fb5, 0x7b9a86c5, 0x08a5d337, 0x87f23028, 0xa5b223bf, 0x6aba0203, 0x825ced16, 0x1c2b8acf, 0xb492a779, 0xf2f0f307, 0xe2a14e69, 0xf4cd65da, 0xbed50605, 0x621fd134, 0xfe8ac4a6, 0x539d342e, 0x55a0a2f3, 0xe132058a, 0xeb75a4f6, 0xec390b83, 0xefaa4060, 0x9f065e71, 0x1051bd6e, 0x8af93e21, 0x063d96dd, 0x05aedd3e, 0xbd464de6, 0x8db59154, 0x5d0571c4, 0xd46f0406, 0x15ff6050, 0xfb241998, 0xe997d6bd, 0x43cc8940, 0x9e7767d9, 0x42bdb0e8, 0x8b880789, 0x5b38e719, 0xeedb79c8, 0x0a47a17c, 0x0fe97c42, 0x1ec9f884, 0x00000000, 0x86830980, 0xed48322b, 0x70ac1e11, 0x724e6c5a, 0xfffbfd0e, 0x38560f85, 0xd51e3dae, 0x3927362d, 0xd9640a0f, 0xa621685c, 0x54d19b5b, 0x2e3a2436, 0x67b10c0a, 0xe70f9357, 0x96d2b4ee, 0x919e1b9b, 0xc54f80c0, 0x20a261dc, 0x4b695a77, 0x1a161c12, 0xba0ae293, 0x2ae5c0a0, 0xe0433c22, 0x171d121b, 0x0d0b0e09, 0xc7adf28b, 0xa8b92db6, 0xa9c8141e, 0x198557f1, 0x074caf75, 0xddbbee99, 0x60fda37f, 0x269ff701, 0xf5bc5c72, 0x3bc54466, 0x7e345bfb, 0x29768b43, 0xc6dccb23, 0xfc68b6ed, 0xf163b8e4, 0xdccad731, 0x85104263, 0x22401397, 0x112084c6, 0x247d854a, 0x3df8d2bb, 0x3211aef9, 0xa16dc729, 0x2f4b1d9e, 0x30f3dcb2, 0x52ec0d86, 0xe3d077c1, 0x166c2bb3, 0xb999a970, 0x48fa1194, 0x642247e9, 0x8cc4a8fc, 0x3f1aa0f0, 0x2cd8567d, 0x90ef2233, 0x4ec78749, 0xd1c1d938, 0xa2fe8cca, 0x0b3698d4, 0x81cfa6f5, 0xde28a57a, 0x8e26dab7, 0xbfa43fad, 0x9de42c3a, 0x920d5078, 0xcc9b6a5f, 0x4662547e, 0x13c2f68d, 0xb8e890d8, 0xf75e2e39, 0xaff582c3, 0x80be9f5d, 0x937c69d0, 0x2da96fd5, 0x12b3cf25, 0x993bc8ac, 0x7da71018, 0x636ee89c, 0xbb7bdb3b, 0x7809cd26, 0x18f46e59, 0xb701ec9a, 0x9aa8834f, 0x6e65e695, 0xe67eaaff, 0xcf0821bc, 0xe8e6ef15, 0x9bd9bae7, 0x36ce4a6f, 0x09d4ea9f, 0x7cd629b0, 0xb2af31a4, 0x23312a3f, 0x9430c6a5, 0x66c035a2, 0xbc37744e, 0xcaa6fc82, 0xd0b0e090, 0xd81533a7, 0x984af104, 0xdaf741ec, 0x500e7fcd, 0xf62f1791, 0xd68d764d, 0xb04d43ef, 0x4d54ccaa, 0x04dfe496, 0xb5e39ed1, 0x881b4c6a, 0x1fb8c12c, 0x517f4665, 0xea049d5e, 0x355d018c, 0x7473fa87, 0x412efb0b, 0x1d5ab367, 0xd25292db, 0x5633e910, 0x47136dd6, 0x618c9ad7, 0x0c7a37a1, 0x148e59f8, 0x3c89eb13, 0x27eecea9, 0xc935b761, 0xe5ede11c, 0xb13c7a47, 0xdf599cd2, 0x733f55f2, 0xce791814, 0x37bf73c7, 0xcdea53f7, 0xaa5b5ffd, 0x6f14df3d, 0xdb867844, 0xf381caaf, 0xc43eb968, 0x342c3824, 0x405fc2a3, 0xc372161d, 0x250cbce2, 0x498b283c, 0x9541ff0d, 0x017139a8, 0xb3de080c, 0xe49cd8b4, 0xc1906456, 0x84617bcb, 0xb670d532, 0x5c74486c, 0x5742d0b8];\n var T8 = [0xf4a75051, 0x4165537e, 0x17a4c31a, 0x275e963a, 0xab6bcb3b, 0x9d45f11f, 0xfa58abac, 0xe303934b, 0x30fa5520, 0x766df6ad, 0xcc769188, 0x024c25f5, 0xe5d7fc4f, 0x2acbd7c5, 0x35448026, 0x62a38fb5, 0xb15a49de, 0xba1b6725, 0xea0e9845, 0xfec0e15d, 0x2f7502c3, 0x4cf01281, 0x4697a38d, 0xd3f9c66b, 0x8f5fe703, 0x929c9515, 0x6d7aebbf, 0x5259da95, 0xbe832dd4, 0x7421d358, 0xe0692949, 0xc9c8448e, 0xc2896a75, 0x8e7978f4, 0x583e6b99, 0xb971dd27, 0xe14fb6be, 0x88ad17f0, 0x20ac66c9, 0xce3ab47d, 0xdf4a1863, 0x1a3182e5, 0x51336097, 0x537f4562, 0x6477e0b1, 0x6bae84bb, 0x81a01cfe, 0x082b94f9, 0x48685870, 0x45fd198f, 0xde6c8794, 0x7bf8b752, 0x73d323ab, 0x4b02e272, 0x1f8f57e3, 0x55ab2a66, 0xeb2807b2, 0xb5c2032f, 0xc57b9a86, 0x3708a5d3, 0x2887f230, 0xbfa5b223, 0x036aba02, 0x16825ced, 0xcf1c2b8a, 0x79b492a7, 0x07f2f0f3, 0x69e2a14e, 0xdaf4cd65, 0x05bed506, 0x34621fd1, 0xa6fe8ac4, 0x2e539d34, 0xf355a0a2, 0x8ae13205, 0xf6eb75a4, 0x83ec390b, 0x60efaa40, 0x719f065e, 0x6e1051bd, 0x218af93e, 0xdd063d96, 0x3e05aedd, 0xe6bd464d, 0x548db591, 0xc45d0571, 0x06d46f04, 0x5015ff60, 0x98fb2419, 0xbde997d6, 0x4043cc89, 0xd99e7767, 0xe842bdb0, 0x898b8807, 0x195b38e7, 0xc8eedb79, 0x7c0a47a1, 0x420fe97c, 0x841ec9f8, 0x00000000, 0x80868309, 0x2bed4832, 0x1170ac1e, 0x5a724e6c, 0x0efffbfd, 0x8538560f, 0xaed51e3d, 0x2d392736, 0x0fd9640a, 0x5ca62168, 0x5b54d19b, 0x362e3a24, 0x0a67b10c, 0x57e70f93, 0xee96d2b4, 0x9b919e1b, 0xc0c54f80, 0xdc20a261, 0x774b695a, 0x121a161c, 0x93ba0ae2, 0xa02ae5c0, 0x22e0433c, 0x1b171d12, 0x090d0b0e, 0x8bc7adf2, 0xb6a8b92d, 0x1ea9c814, 0xf1198557, 0x75074caf, 0x99ddbbee, 0x7f60fda3, 0x01269ff7, 0x72f5bc5c, 0x663bc544, 0xfb7e345b, 0x4329768b, 0x23c6dccb, 0xedfc68b6, 0xe4f163b8, 0x31dccad7, 0x63851042, 0x97224013, 0xc6112084, 0x4a247d85, 0xbb3df8d2, 0xf93211ae, 0x29a16dc7, 0x9e2f4b1d, 0xb230f3dc, 0x8652ec0d, 0xc1e3d077, 0xb3166c2b, 0x70b999a9, 0x9448fa11, 0xe9642247, 0xfc8cc4a8, 0xf03f1aa0, 0x7d2cd856, 0x3390ef22, 0x494ec787, 0x38d1c1d9, 0xcaa2fe8c, 0xd40b3698, 0xf581cfa6, 0x7ade28a5, 0xb78e26da, 0xadbfa43f, 0x3a9de42c, 0x78920d50, 0x5fcc9b6a, 0x7e466254, 0x8d13c2f6, 0xd8b8e890, 0x39f75e2e, 0xc3aff582, 0x5d80be9f, 0xd0937c69, 0xd52da96f, 0x2512b3cf, 0xac993bc8, 0x187da710, 0x9c636ee8, 0x3bbb7bdb, 0x267809cd, 0x5918f46e, 0x9ab701ec, 0x4f9aa883, 0x956e65e6, 0xffe67eaa, 0xbccf0821, 0x15e8e6ef, 0xe79bd9ba, 0x6f36ce4a, 0x9f09d4ea, 0xb07cd629, 0xa4b2af31, 0x3f23312a, 0xa59430c6, 0xa266c035, 0x4ebc3774, 0x82caa6fc, 0x90d0b0e0, 0xa7d81533, 0x04984af1, 0xecdaf741, 0xcd500e7f, 0x91f62f17, 0x4dd68d76, 0xefb04d43, 0xaa4d54cc, 0x9604dfe4, 0xd1b5e39e, 0x6a881b4c, 0x2c1fb8c1, 0x65517f46, 0x5eea049d, 0x8c355d01, 0x877473fa, 0x0b412efb, 0x671d5ab3, 0xdbd25292, 0x105633e9, 0xd647136d, 0xd7618c9a, 0xa10c7a37, 0xf8148e59, 0x133c89eb, 0xa927eece, 0x61c935b7, 0x1ce5ede1, 0x47b13c7a, 0xd2df599c, 0xf2733f55, 0x14ce7918, 0xc737bf73, 0xf7cdea53, 0xfdaa5b5f, 0x3d6f14df, 0x44db8678, 0xaff381ca, 0x68c43eb9, 0x24342c38, 0xa3405fc2, 0x1dc37216, 0xe2250cbc, 0x3c498b28, 0x0d9541ff, 0xa8017139, 0x0cb3de08, 0xb4e49cd8, 0x56c19064, 0xcb84617b, 0x32b670d5, 0x6c5c7448, 0xb85742d0];\n\n // Transformations for decryption key expansion\n var U1 = [0x00000000, 0x0e090d0b, 0x1c121a16, 0x121b171d, 0x3824342c, 0x362d3927, 0x24362e3a, 0x2a3f2331, 0x70486858, 0x7e416553, 0x6c5a724e, 0x62537f45, 0x486c5c74, 0x4665517f, 0x547e4662, 0x5a774b69, 0xe090d0b0, 0xee99ddbb, 0xfc82caa6, 0xf28bc7ad, 0xd8b4e49c, 0xd6bde997, 0xc4a6fe8a, 0xcaaff381, 0x90d8b8e8, 0x9ed1b5e3, 0x8ccaa2fe, 0x82c3aff5, 0xa8fc8cc4, 0xa6f581cf, 0xb4ee96d2, 0xbae79bd9, 0xdb3bbb7b, 0xd532b670, 0xc729a16d, 0xc920ac66, 0xe31f8f57, 0xed16825c, 0xff0d9541, 0xf104984a, 0xab73d323, 0xa57ade28, 0xb761c935, 0xb968c43e, 0x9357e70f, 0x9d5eea04, 0x8f45fd19, 0x814cf012, 0x3bab6bcb, 0x35a266c0, 0x27b971dd, 0x29b07cd6, 0x038f5fe7, 0x0d8652ec, 0x1f9d45f1, 0x119448fa, 0x4be30393, 0x45ea0e98, 0x57f11985, 0x59f8148e, 0x73c737bf, 0x7dce3ab4, 0x6fd52da9, 0x61dc20a2, 0xad766df6, 0xa37f60fd, 0xb16477e0, 0xbf6d7aeb, 0x955259da, 0x9b5b54d1, 0x894043cc, 0x87494ec7, 0xdd3e05ae, 0xd33708a5, 0xc12c1fb8, 0xcf2512b3, 0xe51a3182, 0xeb133c89, 0xf9082b94, 0xf701269f, 0x4de6bd46, 0x43efb04d, 0x51f4a750, 0x5ffdaa5b, 0x75c2896a, 0x7bcb8461, 0x69d0937c, 0x67d99e77, 0x3daed51e, 0x33a7d815, 0x21bccf08, 0x2fb5c203, 0x058ae132, 0x0b83ec39, 0x1998fb24, 0x1791f62f, 0x764dd68d, 0x7844db86, 0x6a5fcc9b, 0x6456c190, 0x4e69e2a1, 0x4060efaa, 0x527bf8b7, 0x5c72f5bc, 0x0605bed5, 0x080cb3de, 0x1a17a4c3, 0x141ea9c8, 0x3e218af9, 0x302887f2, 0x223390ef, 0x2c3a9de4, 0x96dd063d, 0x98d40b36, 0x8acf1c2b, 0x84c61120, 0xaef93211, 0xa0f03f1a, 0xb2eb2807, 0xbce2250c, 0xe6956e65, 0xe89c636e, 0xfa877473, 0xf48e7978, 0xdeb15a49, 0xd0b85742, 0xc2a3405f, 0xccaa4d54, 0x41ecdaf7, 0x4fe5d7fc, 0x5dfec0e1, 0x53f7cdea, 0x79c8eedb, 0x77c1e3d0, 0x65daf4cd, 0x6bd3f9c6, 0x31a4b2af, 0x3fadbfa4, 0x2db6a8b9, 0x23bfa5b2, 0x09808683, 0x07898b88, 0x15929c95, 0x1b9b919e, 0xa17c0a47, 0xaf75074c, 0xbd6e1051, 0xb3671d5a, 0x99583e6b, 0x97513360, 0x854a247d, 0x8b432976, 0xd134621f, 0xdf3d6f14, 0xcd267809, 0xc32f7502, 0xe9105633, 0xe7195b38, 0xf5024c25, 0xfb0b412e, 0x9ad7618c, 0x94de6c87, 0x86c57b9a, 0x88cc7691, 0xa2f355a0, 0xacfa58ab, 0xbee14fb6, 0xb0e842bd, 0xea9f09d4, 0xe49604df, 0xf68d13c2, 0xf8841ec9, 0xd2bb3df8, 0xdcb230f3, 0xcea927ee, 0xc0a02ae5, 0x7a47b13c, 0x744ebc37, 0x6655ab2a, 0x685ca621, 0x42638510, 0x4c6a881b, 0x5e719f06, 0x5078920d, 0x0a0fd964, 0x0406d46f, 0x161dc372, 0x1814ce79, 0x322bed48, 0x3c22e043, 0x2e39f75e, 0x2030fa55, 0xec9ab701, 0xe293ba0a, 0xf088ad17, 0xfe81a01c, 0xd4be832d, 0xdab78e26, 0xc8ac993b, 0xc6a59430, 0x9cd2df59, 0x92dbd252, 0x80c0c54f, 0x8ec9c844, 0xa4f6eb75, 0xaaffe67e, 0xb8e4f163, 0xb6edfc68, 0x0c0a67b1, 0x02036aba, 0x10187da7, 0x1e1170ac, 0x342e539d, 0x3a275e96, 0x283c498b, 0x26354480, 0x7c420fe9, 0x724b02e2, 0x605015ff, 0x6e5918f4, 0x44663bc5, 0x4a6f36ce, 0x587421d3, 0x567d2cd8, 0x37a10c7a, 0x39a80171, 0x2bb3166c, 0x25ba1b67, 0x0f853856, 0x018c355d, 0x13972240, 0x1d9e2f4b, 0x47e96422, 0x49e06929, 0x5bfb7e34, 0x55f2733f, 0x7fcd500e, 0x71c45d05, 0x63df4a18, 0x6dd64713, 0xd731dcca, 0xd938d1c1, 0xcb23c6dc, 0xc52acbd7, 0xef15e8e6, 0xe11ce5ed, 0xf307f2f0, 0xfd0efffb, 0xa779b492, 0xa970b999, 0xbb6bae84, 0xb562a38f, 0x9f5d80be, 0x91548db5, 0x834f9aa8, 0x8d4697a3];\n var U2 = [0x00000000, 0x0b0e090d, 0x161c121a, 0x1d121b17, 0x2c382434, 0x27362d39, 0x3a24362e, 0x312a3f23, 0x58704868, 0x537e4165, 0x4e6c5a72, 0x4562537f, 0x74486c5c, 0x7f466551, 0x62547e46, 0x695a774b, 0xb0e090d0, 0xbbee99dd, 0xa6fc82ca, 0xadf28bc7, 0x9cd8b4e4, 0x97d6bde9, 0x8ac4a6fe, 0x81caaff3, 0xe890d8b8, 0xe39ed1b5, 0xfe8ccaa2, 0xf582c3af, 0xc4a8fc8c, 0xcfa6f581, 0xd2b4ee96, 0xd9bae79b, 0x7bdb3bbb, 0x70d532b6, 0x6dc729a1, 0x66c920ac, 0x57e31f8f, 0x5ced1682, 0x41ff0d95, 0x4af10498, 0x23ab73d3, 0x28a57ade, 0x35b761c9, 0x3eb968c4, 0x0f9357e7, 0x049d5eea, 0x198f45fd, 0x12814cf0, 0xcb3bab6b, 0xc035a266, 0xdd27b971, 0xd629b07c, 0xe7038f5f, 0xec0d8652, 0xf11f9d45, 0xfa119448, 0x934be303, 0x9845ea0e, 0x8557f119, 0x8e59f814, 0xbf73c737, 0xb47dce3a, 0xa96fd52d, 0xa261dc20, 0xf6ad766d, 0xfda37f60, 0xe0b16477, 0xebbf6d7a, 0xda955259, 0xd19b5b54, 0xcc894043, 0xc787494e, 0xaedd3e05, 0xa5d33708, 0xb8c12c1f, 0xb3cf2512, 0x82e51a31, 0x89eb133c, 0x94f9082b, 0x9ff70126, 0x464de6bd, 0x4d43efb0, 0x5051f4a7, 0x5b5ffdaa, 0x6a75c289, 0x617bcb84, 0x7c69d093, 0x7767d99e, 0x1e3daed5, 0x1533a7d8, 0x0821bccf, 0x032fb5c2, 0x32058ae1, 0x390b83ec, 0x241998fb, 0x2f1791f6, 0x8d764dd6, 0x867844db, 0x9b6a5fcc, 0x906456c1, 0xa14e69e2, 0xaa4060ef, 0xb7527bf8, 0xbc5c72f5, 0xd50605be, 0xde080cb3, 0xc31a17a4, 0xc8141ea9, 0xf93e218a, 0xf2302887, 0xef223390, 0xe42c3a9d, 0x3d96dd06, 0x3698d40b, 0x2b8acf1c, 0x2084c611, 0x11aef932, 0x1aa0f03f, 0x07b2eb28, 0x0cbce225, 0x65e6956e, 0x6ee89c63, 0x73fa8774, 0x78f48e79, 0x49deb15a, 0x42d0b857, 0x5fc2a340, 0x54ccaa4d, 0xf741ecda, 0xfc4fe5d7, 0xe15dfec0, 0xea53f7cd, 0xdb79c8ee, 0xd077c1e3, 0xcd65daf4, 0xc66bd3f9, 0xaf31a4b2, 0xa43fadbf, 0xb92db6a8, 0xb223bfa5, 0x83098086, 0x8807898b, 0x9515929c, 0x9e1b9b91, 0x47a17c0a, 0x4caf7507, 0x51bd6e10, 0x5ab3671d, 0x6b99583e, 0x60975133, 0x7d854a24, 0x768b4329, 0x1fd13462, 0x14df3d6f, 0x09cd2678, 0x02c32f75, 0x33e91056, 0x38e7195b, 0x25f5024c, 0x2efb0b41, 0x8c9ad761, 0x8794de6c, 0x9a86c57b, 0x9188cc76, 0xa0a2f355, 0xabacfa58, 0xb6bee14f, 0xbdb0e842, 0xd4ea9f09, 0xdfe49604, 0xc2f68d13, 0xc9f8841e, 0xf8d2bb3d, 0xf3dcb230, 0xeecea927, 0xe5c0a02a, 0x3c7a47b1, 0x37744ebc, 0x2a6655ab, 0x21685ca6, 0x10426385, 0x1b4c6a88, 0x065e719f, 0x0d507892, 0x640a0fd9, 0x6f0406d4, 0x72161dc3, 0x791814ce, 0x48322bed, 0x433c22e0, 0x5e2e39f7, 0x552030fa, 0x01ec9ab7, 0x0ae293ba, 0x17f088ad, 0x1cfe81a0, 0x2dd4be83, 0x26dab78e, 0x3bc8ac99, 0x30c6a594, 0x599cd2df, 0x5292dbd2, 0x4f80c0c5, 0x448ec9c8, 0x75a4f6eb, 0x7eaaffe6, 0x63b8e4f1, 0x68b6edfc, 0xb10c0a67, 0xba02036a, 0xa710187d, 0xac1e1170, 0x9d342e53, 0x963a275e, 0x8b283c49, 0x80263544, 0xe97c420f, 0xe2724b02, 0xff605015, 0xf46e5918, 0xc544663b, 0xce4a6f36, 0xd3587421, 0xd8567d2c, 0x7a37a10c, 0x7139a801, 0x6c2bb316, 0x6725ba1b, 0x560f8538, 0x5d018c35, 0x40139722, 0x4b1d9e2f, 0x2247e964, 0x2949e069, 0x345bfb7e, 0x3f55f273, 0x0e7fcd50, 0x0571c45d, 0x1863df4a, 0x136dd647, 0xcad731dc, 0xc1d938d1, 0xdccb23c6, 0xd7c52acb, 0xe6ef15e8, 0xede11ce5, 0xf0f307f2, 0xfbfd0eff, 0x92a779b4, 0x99a970b9, 0x84bb6bae, 0x8fb562a3, 0xbe9f5d80, 0xb591548d, 0xa8834f9a, 0xa38d4697];\n var U3 = [0x00000000, 0x0d0b0e09, 0x1a161c12, 0x171d121b, 0x342c3824, 0x3927362d, 0x2e3a2436, 0x23312a3f, 0x68587048, 0x65537e41, 0x724e6c5a, 0x7f456253, 0x5c74486c, 0x517f4665, 0x4662547e, 0x4b695a77, 0xd0b0e090, 0xddbbee99, 0xcaa6fc82, 0xc7adf28b, 0xe49cd8b4, 0xe997d6bd, 0xfe8ac4a6, 0xf381caaf, 0xb8e890d8, 0xb5e39ed1, 0xa2fe8cca, 0xaff582c3, 0x8cc4a8fc, 0x81cfa6f5, 0x96d2b4ee, 0x9bd9bae7, 0xbb7bdb3b, 0xb670d532, 0xa16dc729, 0xac66c920, 0x8f57e31f, 0x825ced16, 0x9541ff0d, 0x984af104, 0xd323ab73, 0xde28a57a, 0xc935b761, 0xc43eb968, 0xe70f9357, 0xea049d5e, 0xfd198f45, 0xf012814c, 0x6bcb3bab, 0x66c035a2, 0x71dd27b9, 0x7cd629b0, 0x5fe7038f, 0x52ec0d86, 0x45f11f9d, 0x48fa1194, 0x03934be3, 0x0e9845ea, 0x198557f1, 0x148e59f8, 0x37bf73c7, 0x3ab47dce, 0x2da96fd5, 0x20a261dc, 0x6df6ad76, 0x60fda37f, 0x77e0b164, 0x7aebbf6d, 0x59da9552, 0x54d19b5b, 0x43cc8940, 0x4ec78749, 0x05aedd3e, 0x08a5d337, 0x1fb8c12c, 0x12b3cf25, 0x3182e51a, 0x3c89eb13, 0x2b94f908, 0x269ff701, 0xbd464de6, 0xb04d43ef, 0xa75051f4, 0xaa5b5ffd, 0x896a75c2, 0x84617bcb, 0x937c69d0, 0x9e7767d9, 0xd51e3dae, 0xd81533a7, 0xcf0821bc, 0xc2032fb5, 0xe132058a, 0xec390b83, 0xfb241998, 0xf62f1791, 0xd68d764d, 0xdb867844, 0xcc9b6a5f, 0xc1906456, 0xe2a14e69, 0xefaa4060, 0xf8b7527b, 0xf5bc5c72, 0xbed50605, 0xb3de080c, 0xa4c31a17, 0xa9c8141e, 0x8af93e21, 0x87f23028, 0x90ef2233, 0x9de42c3a, 0x063d96dd, 0x0b3698d4, 0x1c2b8acf, 0x112084c6, 0x3211aef9, 0x3f1aa0f0, 0x2807b2eb, 0x250cbce2, 0x6e65e695, 0x636ee89c, 0x7473fa87, 0x7978f48e, 0x5a49deb1, 0x5742d0b8, 0x405fc2a3, 0x4d54ccaa, 0xdaf741ec, 0xd7fc4fe5, 0xc0e15dfe, 0xcdea53f7, 0xeedb79c8, 0xe3d077c1, 0xf4cd65da, 0xf9c66bd3, 0xb2af31a4, 0xbfa43fad, 0xa8b92db6, 0xa5b223bf, 0x86830980, 0x8b880789, 0x9c951592, 0x919e1b9b, 0x0a47a17c, 0x074caf75, 0x1051bd6e, 0x1d5ab367, 0x3e6b9958, 0x33609751, 0x247d854a, 0x29768b43, 0x621fd134, 0x6f14df3d, 0x7809cd26, 0x7502c32f, 0x5633e910, 0x5b38e719, 0x4c25f502, 0x412efb0b, 0x618c9ad7, 0x6c8794de, 0x7b9a86c5, 0x769188cc, 0x55a0a2f3, 0x58abacfa, 0x4fb6bee1, 0x42bdb0e8, 0x09d4ea9f, 0x04dfe496, 0x13c2f68d, 0x1ec9f884, 0x3df8d2bb, 0x30f3dcb2, 0x27eecea9, 0x2ae5c0a0, 0xb13c7a47, 0xbc37744e, 0xab2a6655, 0xa621685c, 0x85104263, 0x881b4c6a, 0x9f065e71, 0x920d5078, 0xd9640a0f, 0xd46f0406, 0xc372161d, 0xce791814, 0xed48322b, 0xe0433c22, 0xf75e2e39, 0xfa552030, 0xb701ec9a, 0xba0ae293, 0xad17f088, 0xa01cfe81, 0x832dd4be, 0x8e26dab7, 0x993bc8ac, 0x9430c6a5, 0xdf599cd2, 0xd25292db, 0xc54f80c0, 0xc8448ec9, 0xeb75a4f6, 0xe67eaaff, 0xf163b8e4, 0xfc68b6ed, 0x67b10c0a, 0x6aba0203, 0x7da71018, 0x70ac1e11, 0x539d342e, 0x5e963a27, 0x498b283c, 0x44802635, 0x0fe97c42, 0x02e2724b, 0x15ff6050, 0x18f46e59, 0x3bc54466, 0x36ce4a6f, 0x21d35874, 0x2cd8567d, 0x0c7a37a1, 0x017139a8, 0x166c2bb3, 0x1b6725ba, 0x38560f85, 0x355d018c, 0x22401397, 0x2f4b1d9e, 0x642247e9, 0x692949e0, 0x7e345bfb, 0x733f55f2, 0x500e7fcd, 0x5d0571c4, 0x4a1863df, 0x47136dd6, 0xdccad731, 0xd1c1d938, 0xc6dccb23, 0xcbd7c52a, 0xe8e6ef15, 0xe5ede11c, 0xf2f0f307, 0xfffbfd0e, 0xb492a779, 0xb999a970, 0xae84bb6b, 0xa38fb562, 0x80be9f5d, 0x8db59154, 0x9aa8834f, 0x97a38d46];\n var U4 = [0x00000000, 0x090d0b0e, 0x121a161c, 0x1b171d12, 0x24342c38, 0x2d392736, 0x362e3a24, 0x3f23312a, 0x48685870, 0x4165537e, 0x5a724e6c, 0x537f4562, 0x6c5c7448, 0x65517f46, 0x7e466254, 0x774b695a, 0x90d0b0e0, 0x99ddbbee, 0x82caa6fc, 0x8bc7adf2, 0xb4e49cd8, 0xbde997d6, 0xa6fe8ac4, 0xaff381ca, 0xd8b8e890, 0xd1b5e39e, 0xcaa2fe8c, 0xc3aff582, 0xfc8cc4a8, 0xf581cfa6, 0xee96d2b4, 0xe79bd9ba, 0x3bbb7bdb, 0x32b670d5, 0x29a16dc7, 0x20ac66c9, 0x1f8f57e3, 0x16825ced, 0x0d9541ff, 0x04984af1, 0x73d323ab, 0x7ade28a5, 0x61c935b7, 0x68c43eb9, 0x57e70f93, 0x5eea049d, 0x45fd198f, 0x4cf01281, 0xab6bcb3b, 0xa266c035, 0xb971dd27, 0xb07cd629, 0x8f5fe703, 0x8652ec0d, 0x9d45f11f, 0x9448fa11, 0xe303934b, 0xea0e9845, 0xf1198557, 0xf8148e59, 0xc737bf73, 0xce3ab47d, 0xd52da96f, 0xdc20a261, 0x766df6ad, 0x7f60fda3, 0x6477e0b1, 0x6d7aebbf, 0x5259da95, 0x5b54d19b, 0x4043cc89, 0x494ec787, 0x3e05aedd, 0x3708a5d3, 0x2c1fb8c1, 0x2512b3cf, 0x1a3182e5, 0x133c89eb, 0x082b94f9, 0x01269ff7, 0xe6bd464d, 0xefb04d43, 0xf4a75051, 0xfdaa5b5f, 0xc2896a75, 0xcb84617b, 0xd0937c69, 0xd99e7767, 0xaed51e3d, 0xa7d81533, 0xbccf0821, 0xb5c2032f, 0x8ae13205, 0x83ec390b, 0x98fb2419, 0x91f62f17, 0x4dd68d76, 0x44db8678, 0x5fcc9b6a, 0x56c19064, 0x69e2a14e, 0x60efaa40, 0x7bf8b752, 0x72f5bc5c, 0x05bed506, 0x0cb3de08, 0x17a4c31a, 0x1ea9c814, 0x218af93e, 0x2887f230, 0x3390ef22, 0x3a9de42c, 0xdd063d96, 0xd40b3698, 0xcf1c2b8a, 0xc6112084, 0xf93211ae, 0xf03f1aa0, 0xeb2807b2, 0xe2250cbc, 0x956e65e6, 0x9c636ee8, 0x877473fa, 0x8e7978f4, 0xb15a49de, 0xb85742d0, 0xa3405fc2, 0xaa4d54cc, 0xecdaf741, 0xe5d7fc4f, 0xfec0e15d, 0xf7cdea53, 0xc8eedb79, 0xc1e3d077, 0xdaf4cd65, 0xd3f9c66b, 0xa4b2af31, 0xadbfa43f, 0xb6a8b92d, 0xbfa5b223, 0x80868309, 0x898b8807, 0x929c9515, 0x9b919e1b, 0x7c0a47a1, 0x75074caf, 0x6e1051bd, 0x671d5ab3, 0x583e6b99, 0x51336097, 0x4a247d85, 0x4329768b, 0x34621fd1, 0x3d6f14df, 0x267809cd, 0x2f7502c3, 0x105633e9, 0x195b38e7, 0x024c25f5, 0x0b412efb, 0xd7618c9a, 0xde6c8794, 0xc57b9a86, 0xcc769188, 0xf355a0a2, 0xfa58abac, 0xe14fb6be, 0xe842bdb0, 0x9f09d4ea, 0x9604dfe4, 0x8d13c2f6, 0x841ec9f8, 0xbb3df8d2, 0xb230f3dc, 0xa927eece, 0xa02ae5c0, 0x47b13c7a, 0x4ebc3774, 0x55ab2a66, 0x5ca62168, 0x63851042, 0x6a881b4c, 0x719f065e, 0x78920d50, 0x0fd9640a, 0x06d46f04, 0x1dc37216, 0x14ce7918, 0x2bed4832, 0x22e0433c, 0x39f75e2e, 0x30fa5520, 0x9ab701ec, 0x93ba0ae2, 0x88ad17f0, 0x81a01cfe, 0xbe832dd4, 0xb78e26da, 0xac993bc8, 0xa59430c6, 0xd2df599c, 0xdbd25292, 0xc0c54f80, 0xc9c8448e, 0xf6eb75a4, 0xffe67eaa, 0xe4f163b8, 0xedfc68b6, 0x0a67b10c, 0x036aba02, 0x187da710, 0x1170ac1e, 0x2e539d34, 0x275e963a, 0x3c498b28, 0x35448026, 0x420fe97c, 0x4b02e272, 0x5015ff60, 0x5918f46e, 0x663bc544, 0x6f36ce4a, 0x7421d358, 0x7d2cd856, 0xa10c7a37, 0xa8017139, 0xb3166c2b, 0xba1b6725, 0x8538560f, 0x8c355d01, 0x97224013, 0x9e2f4b1d, 0xe9642247, 0xe0692949, 0xfb7e345b, 0xf2733f55, 0xcd500e7f, 0xc45d0571, 0xdf4a1863, 0xd647136d, 0x31dccad7, 0x38d1c1d9, 0x23c6dccb, 0x2acbd7c5, 0x15e8e6ef, 0x1ce5ede1, 0x07f2f0f3, 0x0efffbfd, 0x79b492a7, 0x70b999a9, 0x6bae84bb, 0x62a38fb5, 0x5d80be9f, 0x548db591, 0x4f9aa883, 0x4697a38d];\n\n function convertToInt32(bytes) {\n var result = [];\n for (var i = 0; i < bytes.length; i += 4) {\n result.push(\n (bytes[i ] << 24) |\n (bytes[i + 1] << 16) |\n (bytes[i + 2] << 8) |\n bytes[i + 3]\n );\n }\n return result;\n }\n\n var AES = function(key) {\n if (!(this instanceof AES)) {\n throw Error('AES must be instanitated with `new`');\n }\n\n Object.defineProperty(this, 'key', {\n value: coerceArray(key, true)\n });\n\n this._prepare();\n }\n\n\n AES.prototype._prepare = function() {\n\n var rounds = numberOfRounds[this.key.length];\n if (rounds == null) {\n throw new Error('invalid key size (must be 16, 24 or 32 bytes)');\n }\n\n // encryption round keys\n this._Ke = [];\n\n // decryption round keys\n this._Kd = [];\n\n for (var i = 0; i <= rounds; i++) {\n this._Ke.push([0, 0, 0, 0]);\n this._Kd.push([0, 0, 0, 0]);\n }\n\n var roundKeyCount = (rounds + 1) * 4;\n var KC = this.key.length / 4;\n\n // convert the key into ints\n var tk = convertToInt32(this.key);\n\n // copy values into round key arrays\n var index;\n for (var i = 0; i < KC; i++) {\n index = i >> 2;\n this._Ke[index][i % 4] = tk[i];\n this._Kd[rounds - index][i % 4] = tk[i];\n }\n\n // key expansion (fips-197 section 5.2)\n var rconpointer = 0;\n var t = KC, tt;\n while (t < roundKeyCount) {\n tt = tk[KC - 1];\n tk[0] ^= ((S[(tt >> 16) & 0xFF] << 24) ^\n (S[(tt >> 8) & 0xFF] << 16) ^\n (S[ tt & 0xFF] << 8) ^\n S[(tt >> 24) & 0xFF] ^\n (rcon[rconpointer] << 24));\n rconpointer += 1;\n\n // key expansion (for non-256 bit)\n if (KC != 8) {\n for (var i = 1; i < KC; i++) {\n tk[i] ^= tk[i - 1];\n }\n\n // key expansion for 256-bit keys is \"slightly different\" (fips-197)\n } else {\n for (var i = 1; i < (KC / 2); i++) {\n tk[i] ^= tk[i - 1];\n }\n tt = tk[(KC / 2) - 1];\n\n tk[KC / 2] ^= (S[ tt & 0xFF] ^\n (S[(tt >> 8) & 0xFF] << 8) ^\n (S[(tt >> 16) & 0xFF] << 16) ^\n (S[(tt >> 24) & 0xFF] << 24));\n\n for (var i = (KC / 2) + 1; i < KC; i++) {\n tk[i] ^= tk[i - 1];\n }\n }\n\n // copy values into round key arrays\n var i = 0, r, c;\n while (i < KC && t < roundKeyCount) {\n r = t >> 2;\n c = t % 4;\n this._Ke[r][c] = tk[i];\n this._Kd[rounds - r][c] = tk[i++];\n t++;\n }\n }\n\n // inverse-cipher-ify the decryption round key (fips-197 section 5.3)\n for (var r = 1; r < rounds; r++) {\n for (var c = 0; c < 4; c++) {\n tt = this._Kd[r][c];\n this._Kd[r][c] = (U1[(tt >> 24) & 0xFF] ^\n U2[(tt >> 16) & 0xFF] ^\n U3[(tt >> 8) & 0xFF] ^\n U4[ tt & 0xFF]);\n }\n }\n }\n\n AES.prototype.encrypt = function(plaintext) {\n if (plaintext.length != 16) {\n throw new Error('invalid plaintext size (must be 16 bytes)');\n }\n\n var rounds = this._Ke.length - 1;\n var a = [0, 0, 0, 0];\n\n // convert plaintext to (ints ^ key)\n var t = convertToInt32(plaintext);\n for (var i = 0; i < 4; i++) {\n t[i] ^= this._Ke[0][i];\n }\n\n // apply round transforms\n for (var r = 1; r < rounds; r++) {\n for (var i = 0; i < 4; i++) {\n a[i] = (T1[(t[ i ] >> 24) & 0xff] ^\n T2[(t[(i + 1) % 4] >> 16) & 0xff] ^\n T3[(t[(i + 2) % 4] >> 8) & 0xff] ^\n T4[ t[(i + 3) % 4] & 0xff] ^\n this._Ke[r][i]);\n }\n t = a.slice();\n }\n\n // the last round is special\n var result = createArray(16), tt;\n for (var i = 0; i < 4; i++) {\n tt = this._Ke[rounds][i];\n result[4 * i ] = (S[(t[ i ] >> 24) & 0xff] ^ (tt >> 24)) & 0xff;\n result[4 * i + 1] = (S[(t[(i + 1) % 4] >> 16) & 0xff] ^ (tt >> 16)) & 0xff;\n result[4 * i + 2] = (S[(t[(i + 2) % 4] >> 8) & 0xff] ^ (tt >> 8)) & 0xff;\n result[4 * i + 3] = (S[ t[(i + 3) % 4] & 0xff] ^ tt ) & 0xff;\n }\n\n return result;\n }\n\n AES.prototype.decrypt = function(ciphertext) {\n if (ciphertext.length != 16) {\n throw new Error('invalid ciphertext size (must be 16 bytes)');\n }\n\n var rounds = this._Kd.length - 1;\n var a = [0, 0, 0, 0];\n\n // convert plaintext to (ints ^ key)\n var t = convertToInt32(ciphertext);\n for (var i = 0; i < 4; i++) {\n t[i] ^= this._Kd[0][i];\n }\n\n // apply round transforms\n for (var r = 1; r < rounds; r++) {\n for (var i = 0; i < 4; i++) {\n a[i] = (T5[(t[ i ] >> 24) & 0xff] ^\n T6[(t[(i + 3) % 4] >> 16) & 0xff] ^\n T7[(t[(i + 2) % 4] >> 8) & 0xff] ^\n T8[ t[(i + 1) % 4] & 0xff] ^\n this._Kd[r][i]);\n }\n t = a.slice();\n }\n\n // the last round is special\n var result = createArray(16), tt;\n for (var i = 0; i < 4; i++) {\n tt = this._Kd[rounds][i];\n result[4 * i ] = (Si[(t[ i ] >> 24) & 0xff] ^ (tt >> 24)) & 0xff;\n result[4 * i + 1] = (Si[(t[(i + 3) % 4] >> 16) & 0xff] ^ (tt >> 16)) & 0xff;\n result[4 * i + 2] = (Si[(t[(i + 2) % 4] >> 8) & 0xff] ^ (tt >> 8)) & 0xff;\n result[4 * i + 3] = (Si[ t[(i + 1) % 4] & 0xff] ^ tt ) & 0xff;\n }\n\n return result;\n }\n\n\n /**\n * Mode Of Operation - Electonic Codebook (ECB)\n */\n var ModeOfOperationECB = function(key) {\n if (!(this instanceof ModeOfOperationECB)) {\n throw Error('AES must be instanitated with `new`');\n }\n\n this.description = \"Electronic Code Block\";\n this.name = \"ecb\";\n\n this._aes = new AES(key);\n }\n\n ModeOfOperationECB.prototype.encrypt = function(plaintext) {\n plaintext = coerceArray(plaintext);\n\n if ((plaintext.length % 16) !== 0) {\n throw new Error('invalid plaintext size (must be multiple of 16 bytes)');\n }\n\n var ciphertext = createArray(plaintext.length);\n var block = createArray(16);\n\n for (var i = 0; i < plaintext.length; i += 16) {\n copyArray(plaintext, block, 0, i, i + 16);\n block = this._aes.encrypt(block);\n copyArray(block, ciphertext, i);\n }\n\n return ciphertext;\n }\n\n ModeOfOperationECB.prototype.decrypt = function(ciphertext) {\n ciphertext = coerceArray(ciphertext);\n\n if ((ciphertext.length % 16) !== 0) {\n throw new Error('invalid ciphertext size (must be multiple of 16 bytes)');\n }\n\n var plaintext = createArray(ciphertext.length);\n var block = createArray(16);\n\n for (var i = 0; i < ciphertext.length; i += 16) {\n copyArray(ciphertext, block, 0, i, i + 16);\n block = this._aes.decrypt(block);\n copyArray(block, plaintext, i);\n }\n\n return plaintext;\n }\n\n\n /**\n * Mode Of Operation - Cipher Block Chaining (CBC)\n */\n var ModeOfOperationCBC = function(key, iv) {\n if (!(this instanceof ModeOfOperationCBC)) {\n throw Error('AES must be instanitated with `new`');\n }\n\n this.description = \"Cipher Block Chaining\";\n this.name = \"cbc\";\n\n if (!iv) {\n iv = createArray(16);\n\n } else if (iv.length != 16) {\n throw new Error('invalid initialation vector size (must be 16 bytes)');\n }\n\n this._lastCipherblock = coerceArray(iv, true);\n\n this._aes = new AES(key);\n }\n\n ModeOfOperationCBC.prototype.encrypt = function(plaintext) {\n plaintext = coerceArray(plaintext);\n\n if ((plaintext.length % 16) !== 0) {\n throw new Error('invalid plaintext size (must be multiple of 16 bytes)');\n }\n\n var ciphertext = createArray(plaintext.length);\n var block = createArray(16);\n\n for (var i = 0; i < plaintext.length; i += 16) {\n copyArray(plaintext, block, 0, i, i + 16);\n\n for (var j = 0; j < 16; j++) {\n block[j] ^= this._lastCipherblock[j];\n }\n\n this._lastCipherblock = this._aes.encrypt(block);\n copyArray(this._lastCipherblock, ciphertext, i);\n }\n\n return ciphertext;\n }\n\n ModeOfOperationCBC.prototype.decrypt = function(ciphertext) {\n ciphertext = coerceArray(ciphertext);\n\n if ((ciphertext.length % 16) !== 0) {\n throw new Error('invalid ciphertext size (must be multiple of 16 bytes)');\n }\n\n var plaintext = createArray(ciphertext.length);\n var block = createArray(16);\n\n for (var i = 0; i < ciphertext.length; i += 16) {\n copyArray(ciphertext, block, 0, i, i + 16);\n block = this._aes.decrypt(block);\n\n for (var j = 0; j < 16; j++) {\n plaintext[i + j] = block[j] ^ this._lastCipherblock[j];\n }\n\n copyArray(ciphertext, this._lastCipherblock, 0, i, i + 16);\n }\n\n return plaintext;\n }\n\n\n /**\n * Mode Of Operation - Cipher Feedback (CFB)\n */\n var ModeOfOperationCFB = function(key, iv, segmentSize) {\n if (!(this instanceof ModeOfOperationCFB)) {\n throw Error('AES must be instanitated with `new`');\n }\n\n this.description = \"Cipher Feedback\";\n this.name = \"cfb\";\n\n if (!iv) {\n iv = createArray(16);\n\n } else if (iv.length != 16) {\n throw new Error('invalid initialation vector size (must be 16 size)');\n }\n\n if (!segmentSize) { segmentSize = 1; }\n\n this.segmentSize = segmentSize;\n\n this._shiftRegister = coerceArray(iv, true);\n\n this._aes = new AES(key);\n }\n\n ModeOfOperationCFB.prototype.encrypt = function(plaintext) {\n if ((plaintext.length % this.segmentSize) != 0) {\n throw new Error('invalid plaintext size (must be segmentSize bytes)');\n }\n\n var encrypted = coerceArray(plaintext, true);\n\n var xorSegment;\n for (var i = 0; i < encrypted.length; i += this.segmentSize) {\n xorSegment = this._aes.encrypt(this._shiftRegister);\n for (var j = 0; j < this.segmentSize; j++) {\n encrypted[i + j] ^= xorSegment[j];\n }\n\n // Shift the register\n copyArray(this._shiftRegister, this._shiftRegister, 0, this.segmentSize);\n copyArray(encrypted, this._shiftRegister, 16 - this.segmentSize, i, i + this.segmentSize);\n }\n\n return encrypted;\n }\n\n ModeOfOperationCFB.prototype.decrypt = function(ciphertext) {\n if ((ciphertext.length % this.segmentSize) != 0) {\n throw new Error('invalid ciphertext size (must be segmentSize bytes)');\n }\n\n var plaintext = coerceArray(ciphertext, true);\n\n var xorSegment;\n for (var i = 0; i < plaintext.length; i += this.segmentSize) {\n xorSegment = this._aes.encrypt(this._shiftRegister);\n\n for (var j = 0; j < this.segmentSize; j++) {\n plaintext[i + j] ^= xorSegment[j];\n }\n\n // Shift the register\n copyArray(this._shiftRegister, this._shiftRegister, 0, this.segmentSize);\n copyArray(ciphertext, this._shiftRegister, 16 - this.segmentSize, i, i + this.segmentSize);\n }\n\n return plaintext;\n }\n\n /**\n * Mode Of Operation - Output Feedback (OFB)\n */\n var ModeOfOperationOFB = function(key, iv) {\n if (!(this instanceof ModeOfOperationOFB)) {\n throw Error('AES must be instanitated with `new`');\n }\n\n this.description = \"Output Feedback\";\n this.name = \"ofb\";\n\n if (!iv) {\n iv = createArray(16);\n\n } else if (iv.length != 16) {\n throw new Error('invalid initialation vector size (must be 16 bytes)');\n }\n\n this._lastPrecipher = coerceArray(iv, true);\n this._lastPrecipherIndex = 16;\n\n this._aes = new AES(key);\n }\n\n ModeOfOperationOFB.prototype.encrypt = function(plaintext) {\n var encrypted = coerceArray(plaintext, true);\n\n for (var i = 0; i < encrypted.length; i++) {\n if (this._lastPrecipherIndex === 16) {\n this._lastPrecipher = this._aes.encrypt(this._lastPrecipher);\n this._lastPrecipherIndex = 0;\n }\n encrypted[i] ^= this._lastPrecipher[this._lastPrecipherIndex++];\n }\n\n return encrypted;\n }\n\n // Decryption is symetric\n ModeOfOperationOFB.prototype.decrypt = ModeOfOperationOFB.prototype.encrypt;\n\n\n /**\n * Counter object for CTR common mode of operation\n */\n var Counter = function(initialValue) {\n if (!(this instanceof Counter)) {\n throw Error('Counter must be instanitated with `new`');\n }\n\n // We allow 0, but anything false-ish uses the default 1\n if (initialValue !== 0 && !initialValue) { initialValue = 1; }\n\n if (typeof(initialValue) === 'number') {\n this._counter = createArray(16);\n this.setValue(initialValue);\n\n } else {\n this.setBytes(initialValue);\n }\n }\n\n Counter.prototype.setValue = function(value) {\n if (typeof(value) !== 'number' || parseInt(value) != value) {\n throw new Error('invalid counter value (must be an integer)');\n }\n\n for (var index = 15; index >= 0; --index) {\n this._counter[index] = value % 256;\n value = value >> 8;\n }\n }\n\n Counter.prototype.setBytes = function(bytes) {\n bytes = coerceArray(bytes, true);\n\n if (bytes.length != 16) {\n throw new Error('invalid counter bytes size (must be 16 bytes)');\n }\n\n this._counter = bytes;\n };\n\n Counter.prototype.increment = function() {\n for (var i = 15; i >= 0; i--) {\n if (this._counter[i] === 255) {\n this._counter[i] = 0;\n } else {\n this._counter[i]++;\n break;\n }\n }\n }\n\n\n /**\n * Mode Of Operation - Counter (CTR)\n */\n var ModeOfOperationCTR = function(key, counter) {\n if (!(this instanceof ModeOfOperationCTR)) {\n throw Error('AES must be instanitated with `new`');\n }\n\n this.description = \"Counter\";\n this.name = \"ctr\";\n\n if (!(counter instanceof Counter)) {\n counter = new Counter(counter)\n }\n\n this._counter = counter;\n\n this._remainingCounter = null;\n this._remainingCounterIndex = 16;\n\n this._aes = new AES(key);\n }\n\n ModeOfOperationCTR.prototype.encrypt = function(plaintext) {\n var encrypted = coerceArray(plaintext, true);\n\n for (var i = 0; i < encrypted.length; i++) {\n if (this._remainingCounterIndex === 16) {\n this._remainingCounter = this._aes.encrypt(this._counter._counter);\n this._remainingCounterIndex = 0;\n this._counter.increment();\n }\n encrypted[i] ^= this._remainingCounter[this._remainingCounterIndex++];\n }\n\n return encrypted;\n }\n\n // Decryption is symetric\n ModeOfOperationCTR.prototype.decrypt = ModeOfOperationCTR.prototype.encrypt;\n\n\n ///////////////////////\n // Padding\n\n // See:https://tools.ietf.org/html/rfc2315\n function pkcs7pad(data) {\n data = coerceArray(data, true);\n var padder = 16 - (data.length % 16);\n var result = createArray(data.length + padder);\n copyArray(data, result);\n for (var i = data.length; i < result.length; i++) {\n result[i] = padder;\n }\n return result;\n }\n\n function pkcs7strip(data) {\n data = coerceArray(data, true);\n if (data.length < 16) { throw new Error('PKCS#7 invalid length'); }\n\n var padder = data[data.length - 1];\n if (padder > 16) { throw new Error('PKCS#7 padding byte out of range'); }\n\n var length = data.length - padder;\n for (var i = 0; i < padder; i++) {\n if (data[length + i] !== padder) {\n throw new Error('PKCS#7 invalid padding byte');\n }\n }\n\n var result = createArray(length);\n copyArray(data, result, 0, 0, length);\n return result;\n }\n\n ///////////////////////\n // Exporting\n\n\n // The block cipher\n var aesjs = {\n AES: AES,\n Counter: Counter,\n\n ModeOfOperation: {\n ecb: ModeOfOperationECB,\n cbc: ModeOfOperationCBC,\n cfb: ModeOfOperationCFB,\n ofb: ModeOfOperationOFB,\n ctr: ModeOfOperationCTR\n },\n\n utils: {\n hex: convertHex,\n utf8: convertUtf8\n },\n\n padding: {\n pkcs7: {\n pad: pkcs7pad,\n strip: pkcs7strip\n }\n },\n\n _arrayTest: {\n coerceArray: coerceArray,\n createArray: createArray,\n copyArray: copyArray,\n }\n };\n\n\n // node.js\n if (typeof exports !== 'undefined') {\n module.exports = aesjs\n\n // RequireJS/AMD\n // http://www.requirejs.org/docs/api.html\n // https://github.com/amdjs/amdjs-api/wiki/AMD\n } else if (typeof(define) === 'function' && define.amd) {\n define(aesjs);\n\n // Web Browsers\n } else {\n\n // If there was an existing library at \"aesjs\" make sure it's still available\n if (root.aesjs) {\n aesjs._aesjs = root.aesjs;\n }\n\n root.aesjs = aesjs;\n }\n\n\n})(this);\n", "export const version = \"json-wallets/5.7.0\";\n", "\"use strict\";\n\nimport { arrayify, Bytes, BytesLike, hexlify } from \"@ethersproject/bytes\";\nimport { toUtf8Bytes, UnicodeNormalizationForm } from '@ethersproject/strings';\n\nexport function looseArrayify(hexString: string): Uint8Array {\n if (typeof(hexString) === 'string' && hexString.substring(0, 2) !== '0x') {\n hexString = '0x' + hexString;\n }\n return arrayify(hexString);\n}\n\nexport function zpad(value: String | number, length: number): String {\n value = String(value);\n while (value.length < length) { value = '0' + value; }\n return value;\n}\n\nexport function getPassword(password: Bytes | string): Uint8Array {\n if (typeof(password) === 'string') {\n return toUtf8Bytes(password, UnicodeNormalizationForm.NFKC);\n }\n return arrayify(password);\n}\n\nexport function searchPath(object: any, path: string): string {\n let currentChild = object;\n\n const comps = path.toLowerCase().split('/');\n for (let i = 0; i < comps.length; i++) {\n\n // Search for a child object with a case-insensitive matching key\n let matchingChild = null;\n for (const key in currentChild) {\n if (key.toLowerCase() === comps[i]) {\n matchingChild = currentChild[key];\n break;\n }\n }\n\n // Didn't find one. :'(\n if (matchingChild === null) {\n return null;\n }\n\n // Now check this child...\n currentChild = matchingChild;\n }\n\n return currentChild;\n}\n\n// See: https://www.ietf.org/rfc/rfc4122.txt (Section 4.4)\nexport function uuidV4(randomBytes: BytesLike): string {\n const bytes = arrayify(randomBytes);\n\n // Section: 4.1.3:\n // - time_hi_and_version[12:16] = 0b0100\n bytes[6] = (bytes[6] & 0x0f) | 0x40;\n\n // Section 4.4\n // - clock_seq_hi_and_reserved[6] = 0b0\n // - clock_seq_hi_and_reserved[7] = 0b1\n bytes[8] = (bytes[8] & 0x3f) | 0x80;\n\n const value = hexlify(bytes);\n\n return [\n value.substring(2, 10),\n value.substring(10, 14),\n value.substring(14, 18),\n value.substring(18, 22),\n value.substring(22, 34),\n ].join(\"-\");\n}\n\n", "\"use strict\";\n\nimport aes from \"aes-js\";\n\nimport { ExternallyOwnedAccount } from \"@ethersproject/abstract-signer\";\nimport { getAddress } from \"@ethersproject/address\";\nimport { arrayify, Bytes } from \"@ethersproject/bytes\";\nimport { keccak256 } from \"@ethersproject/keccak256\";\nimport { pbkdf2 } from \"@ethersproject/pbkdf2\";\nimport { toUtf8Bytes } from \"@ethersproject/strings\";\nimport { Description } from \"@ethersproject/properties\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\nimport { getPassword, looseArrayify, searchPath } from \"./utils\";\n\nexport interface _CrowdsaleAccount {\n address: string;\n privateKey: string;\n\n _isCrowdsaleAccount: boolean;\n}\n\nexport class CrowdsaleAccount extends Description<_CrowdsaleAccount> implements ExternallyOwnedAccount {\n readonly address: string;\n readonly privateKey: string;\n readonly mnemonic?: string;\n readonly path?: string;\n\n readonly _isCrowdsaleAccount: boolean;\n\n isCrowdsaleAccount(value: any): value is CrowdsaleAccount {\n return !!(value && value._isCrowdsaleAccount);\n }\n}\n\n// See: https://github.com/ethereum/pyethsaletool\nexport function decrypt(json: string, password: Bytes | string): ExternallyOwnedAccount {\n const data = JSON.parse(json);\n\n password = getPassword(password);\n\n // Ethereum Address\n const ethaddr = getAddress(searchPath(data, \"ethaddr\"));\n\n // Encrypted Seed\n const encseed = looseArrayify(searchPath(data, \"encseed\"));\n if (!encseed || (encseed.length % 16) !== 0) {\n logger.throwArgumentError(\"invalid encseed\", \"json\", json);\n }\n\n const key = arrayify(pbkdf2(password, password, 2000, 32, \"sha256\")).slice(0, 16);\n\n const iv = encseed.slice(0, 16);\n const encryptedSeed = encseed.slice(16);\n\n // Decrypt the seed\n const aesCbc = new aes.ModeOfOperation.cbc(key, iv);\n const seed = aes.padding.pkcs7.strip(arrayify(aesCbc.decrypt(encryptedSeed)));\n\n // This wallet format is weird... Convert the binary encoded hex to a string.\n let seedHex = \"\";\n for (let i = 0; i < seed.length; i++) {\n seedHex += String.fromCharCode(seed[i]);\n }\n\n const seedHexBytes = toUtf8Bytes(seedHex);\n\n const privateKey = keccak256(seedHexBytes);\n\n return new CrowdsaleAccount ({\n _isCrowdsaleAccount: true,\n address: ethaddr,\n privateKey: privateKey\n });\n}\n\n", "\"use strict\";\n\nimport { getAddress } from \"@ethersproject/address\";\n\n\nexport function isCrowdsaleWallet(json: string): boolean {\n let data: any = null;\n try {\n data = JSON.parse(json);\n } catch (error) { return false; }\n\n return (data.encseed && data.ethaddr);\n}\n\nexport function isKeystoreWallet(json: string): boolean {\n let data: any = null;\n try {\n data = JSON.parse(json);\n } catch (error) { return false; }\n\n if (!data.version || parseInt(data.version) !== data.version || parseInt(data.version) !== 3) {\n return false;\n }\n\n // @TODO: Put more checks to make sure it has kdf, iv and all that good stuff\n return true;\n}\n\n//export function isJsonWallet(json: string): boolean {\n// return (isSecretStorageWallet(json) || isCrowdsaleWallet(json));\n//}\n\nexport function getJsonWalletAddress(json: string): string {\n if (isCrowdsaleWallet(json)) {\n try {\n return getAddress(JSON.parse(json).ethaddr);\n } catch (error) { return null; }\n }\n\n if (isKeystoreWallet(json)) {\n try {\n return getAddress(JSON.parse(json).address);\n } catch (error) { return null; }\n }\n\n return null;\n}\n\n", "\"use strict\";\n\n(function(root) {\n const MAX_VALUE = 0x7fffffff;\n\n // The SHA256 and PBKDF2 implementation are from scrypt-async-js:\n // See: https://github.com/dchest/scrypt-async-js\n function SHA256(m) {\n const K = new Uint32Array([\n 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b,\n 0x59f111f1, 0x923f82a4, 0xab1c5ed5, 0xd807aa98, 0x12835b01,\n 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7,\n 0xc19bf174, 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc,\n 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da, 0x983e5152,\n 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147,\n 0x06ca6351, 0x14292967, 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc,\n 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,\n 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819,\n 0xd6990624, 0xf40e3585, 0x106aa070, 0x19a4c116, 0x1e376c08,\n 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f,\n 0x682e6ff3, 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208,\n 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2\n ]);\n\n let h0 = 0x6a09e667, h1 = 0xbb67ae85, h2 = 0x3c6ef372, h3 = 0xa54ff53a;\n let h4 = 0x510e527f, h5 = 0x9b05688c, h6 = 0x1f83d9ab, h7 = 0x5be0cd19;\n const w = new Uint32Array(64);\n\n function blocks(p) {\n let off = 0, len = p.length;\n while (len >= 64) {\n let a = h0, b = h1, c = h2, d = h3, e = h4, f = h5, g = h6, h = h7, u, i, j, t1, t2;\n\n for (i = 0; i < 16; i++) {\n j = off + i*4;\n w[i] = ((p[j] & 0xff)<<24) | ((p[j+1] & 0xff)<<16) |\n ((p[j+2] & 0xff)<<8) | (p[j+3] & 0xff);\n }\n\n for (i = 16; i < 64; i++) {\n u = w[i-2];\n t1 = ((u>>>17) | (u<<(32-17))) ^ ((u>>>19) | (u<<(32-19))) ^ (u>>>10);\n\n u = w[i-15];\n t2 = ((u>>>7) | (u<<(32-7))) ^ ((u>>>18) | (u<<(32-18))) ^ (u>>>3);\n\n w[i] = (((t1 + w[i-7]) | 0) + ((t2 + w[i-16]) | 0)) | 0;\n }\n\n for (i = 0; i < 64; i++) {\n t1 = ((((((e>>>6) | (e<<(32-6))) ^ ((e>>>11) | (e<<(32-11))) ^\n ((e>>>25) | (e<<(32-25)))) + ((e & f) ^ (~e & g))) | 0) +\n ((h + ((K[i] + w[i]) | 0)) | 0)) | 0;\n\n t2 = ((((a>>>2) | (a<<(32-2))) ^ ((a>>>13) | (a<<(32-13))) ^\n ((a>>>22) | (a<<(32-22)))) + ((a & b) ^ (a & c) ^ (b & c))) | 0;\n\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\n h0 = (h0 + a) | 0;\n h1 = (h1 + b) | 0;\n h2 = (h2 + c) | 0;\n h3 = (h3 + d) | 0;\n h4 = (h4 + e) | 0;\n h5 = (h5 + f) | 0;\n h6 = (h6 + g) | 0;\n h7 = (h7 + h) | 0;\n\n off += 64;\n len -= 64;\n }\n }\n\n blocks(m);\n\n let i, bytesLeft = m.length % 64,\n bitLenHi = (m.length / 0x20000000) | 0,\n bitLenLo = m.length << 3,\n numZeros = (bytesLeft < 56) ? 56 : 120,\n p = m.slice(m.length - bytesLeft, m.length);\n\n p.push(0x80);\n for (i = bytesLeft + 1; i < numZeros; i++) { p.push(0); }\n p.push((bitLenHi >>> 24) & 0xff);\n p.push((bitLenHi >>> 16) & 0xff);\n p.push((bitLenHi >>> 8) & 0xff);\n p.push((bitLenHi >>> 0) & 0xff);\n p.push((bitLenLo >>> 24) & 0xff);\n p.push((bitLenLo >>> 16) & 0xff);\n p.push((bitLenLo >>> 8) & 0xff);\n p.push((bitLenLo >>> 0) & 0xff);\n\n blocks(p);\n\n return [\n (h0 >>> 24) & 0xff, (h0 >>> 16) & 0xff, (h0 >>> 8) & 0xff, (h0 >>> 0) & 0xff,\n (h1 >>> 24) & 0xff, (h1 >>> 16) & 0xff, (h1 >>> 8) & 0xff, (h1 >>> 0) & 0xff,\n (h2 >>> 24) & 0xff, (h2 >>> 16) & 0xff, (h2 >>> 8) & 0xff, (h2 >>> 0) & 0xff,\n (h3 >>> 24) & 0xff, (h3 >>> 16) & 0xff, (h3 >>> 8) & 0xff, (h3 >>> 0) & 0xff,\n (h4 >>> 24) & 0xff, (h4 >>> 16) & 0xff, (h4 >>> 8) & 0xff, (h4 >>> 0) & 0xff,\n (h5 >>> 24) & 0xff, (h5 >>> 16) & 0xff, (h5 >>> 8) & 0xff, (h5 >>> 0) & 0xff,\n (h6 >>> 24) & 0xff, (h6 >>> 16) & 0xff, (h6 >>> 8) & 0xff, (h6 >>> 0) & 0xff,\n (h7 >>> 24) & 0xff, (h7 >>> 16) & 0xff, (h7 >>> 8) & 0xff, (h7 >>> 0) & 0xff\n ];\n }\n\n function PBKDF2_HMAC_SHA256_OneIter(password, salt, dkLen) {\n // compress password if it's longer than hash block length\n password = (password.length <= 64) ? password : SHA256(password);\n\n const innerLen = 64 + salt.length + 4;\n const inner = new Array(innerLen);\n const outerKey = new Array(64);\n\n let i;\n let dk = [];\n\n // inner = (password ^ ipad) || salt || counter\n for (i = 0; i < 64; i++) { inner[i] = 0x36; }\n for (i = 0; i < password.length; i++) { inner[i] ^= password[i]; }\n for (i = 0; i < salt.length; i++) { inner[64 + i] = salt[i]; }\n for (i = innerLen - 4; i < innerLen; i++) { inner[i] = 0; }\n\n // outerKey = password ^ opad\n for (i = 0; i < 64; i++) outerKey[i] = 0x5c;\n for (i = 0; i < password.length; i++) outerKey[i] ^= password[i];\n\n // increments counter inside inner\n function incrementCounter() {\n for (let i = innerLen - 1; i >= innerLen - 4; i--) {\n inner[i]++;\n if (inner[i] <= 0xff) return;\n inner[i] = 0;\n }\n }\n\n // output blocks = SHA256(outerKey || SHA256(inner)) ...\n while (dkLen >= 32) {\n incrementCounter();\n dk = dk.concat(SHA256(outerKey.concat(SHA256(inner))));\n dkLen -= 32;\n }\n if (dkLen > 0) {\n incrementCounter();\n dk = dk.concat(SHA256(outerKey.concat(SHA256(inner))).slice(0, dkLen));\n }\n\n return dk;\n }\n\n // The following is an adaptation of scryptsy\n // See: https://www.npmjs.com/package/scryptsy\n function blockmix_salsa8(BY, Yi, r, x, _X) {\n let i;\n\n arraycopy(BY, (2 * r - 1) * 16, _X, 0, 16);\n for (i = 0; i < 2 * r; i++) {\n blockxor(BY, i * 16, _X, 16);\n salsa20_8(_X, x);\n arraycopy(_X, 0, BY, Yi + (i * 16), 16);\n }\n\n for (i = 0; i < r; i++) {\n arraycopy(BY, Yi + (i * 2) * 16, BY, (i * 16), 16);\n }\n\n for (i = 0; i < r; i++) {\n arraycopy(BY, Yi + (i * 2 + 1) * 16, BY, (i + r) * 16, 16);\n }\n }\n\n function R(a, b) {\n return (a << b) | (a >>> (32 - b));\n }\n\n function salsa20_8(B, x) {\n arraycopy(B, 0, x, 0, 16);\n\n for (let i = 8; i > 0; i -= 2) {\n x[ 4] ^= R(x[ 0] + x[12], 7);\n x[ 8] ^= R(x[ 4] + x[ 0], 9);\n x[12] ^= R(x[ 8] + x[ 4], 13);\n x[ 0] ^= R(x[12] + x[ 8], 18);\n x[ 9] ^= R(x[ 5] + x[ 1], 7);\n x[13] ^= R(x[ 9] + x[ 5], 9);\n x[ 1] ^= R(x[13] + x[ 9], 13);\n x[ 5] ^= R(x[ 1] + x[13], 18);\n x[14] ^= R(x[10] + x[ 6], 7);\n x[ 2] ^= R(x[14] + x[10], 9);\n x[ 6] ^= R(x[ 2] + x[14], 13);\n x[10] ^= R(x[ 6] + x[ 2], 18);\n x[ 3] ^= R(x[15] + x[11], 7);\n x[ 7] ^= R(x[ 3] + x[15], 9);\n x[11] ^= R(x[ 7] + x[ 3], 13);\n x[15] ^= R(x[11] + x[ 7], 18);\n x[ 1] ^= R(x[ 0] + x[ 3], 7);\n x[ 2] ^= R(x[ 1] + x[ 0], 9);\n x[ 3] ^= R(x[ 2] + x[ 1], 13);\n x[ 0] ^= R(x[ 3] + x[ 2], 18);\n x[ 6] ^= R(x[ 5] + x[ 4], 7);\n x[ 7] ^= R(x[ 6] + x[ 5], 9);\n x[ 4] ^= R(x[ 7] + x[ 6], 13);\n x[ 5] ^= R(x[ 4] + x[ 7], 18);\n x[11] ^= R(x[10] + x[ 9], 7);\n x[ 8] ^= R(x[11] + x[10], 9);\n x[ 9] ^= R(x[ 8] + x[11], 13);\n x[10] ^= R(x[ 9] + x[ 8], 18);\n x[12] ^= R(x[15] + x[14], 7);\n x[13] ^= R(x[12] + x[15], 9);\n x[14] ^= R(x[13] + x[12], 13);\n x[15] ^= R(x[14] + x[13], 18);\n }\n\n for (let i = 0; i < 16; ++i) {\n B[i] += x[i];\n }\n }\n\n // naive approach... going back to loop unrolling may yield additional performance\n function blockxor(S, Si, D, len) {\n for (let i = 0; i < len; i++) {\n D[i] ^= S[Si + i]\n }\n }\n\n function arraycopy(src, srcPos, dest, destPos, length) {\n while (length--) {\n dest[destPos++] = src[srcPos++];\n }\n }\n\n function checkBufferish(o) {\n if (!o || typeof(o.length) !== 'number') { return false; }\n\n for (let i = 0; i < o.length; i++) {\n const v = o[i];\n if (typeof(v) !== 'number' || v % 1 || v < 0 || v >= 256) {\n return false;\n }\n }\n\n return true;\n }\n\n function ensureInteger(value, name) {\n if (typeof(value) !== \"number\" || (value % 1)) { throw new Error('invalid ' + name); }\n return value;\n }\n\n // N = Cpu cost, r = Memory cost, p = parallelization cost\n // callback(error, progress, key)\n function _scrypt(password, salt, N, r, p, dkLen, callback) {\n\n N = ensureInteger(N, 'N');\n r = ensureInteger(r, 'r');\n p = ensureInteger(p, 'p');\n\n dkLen = ensureInteger(dkLen, 'dkLen');\n\n if (N === 0 || (N & (N - 1)) !== 0) { throw new Error('N must be power of 2'); }\n\n if (N > MAX_VALUE / 128 / r) { throw new Error('N too large'); }\n if (r > MAX_VALUE / 128 / p) { throw new Error('r too large'); }\n\n if (!checkBufferish(password)) {\n throw new Error('password must be an array or buffer');\n }\n password = Array.prototype.slice.call(password);\n\n if (!checkBufferish(salt)) {\n throw new Error('salt must be an array or buffer');\n }\n salt = Array.prototype.slice.call(salt);\n\n let b = PBKDF2_HMAC_SHA256_OneIter(password, salt, p * 128 * r);\n const B = new Uint32Array(p * 32 * r)\n for (let i = 0; i < B.length; i++) {\n const j = i * 4;\n B[i] = ((b[j + 3] & 0xff) << 24) |\n ((b[j + 2] & 0xff) << 16) |\n ((b[j + 1] & 0xff) << 8) |\n ((b[j + 0] & 0xff) << 0);\n }\n\n const XY = new Uint32Array(64 * r);\n const V = new Uint32Array(32 * r * N);\n\n const Yi = 32 * r;\n\n // scratch space\n const x = new Uint32Array(16); // salsa20_8\n const _X = new Uint32Array(16); // blockmix_salsa8\n\n const totalOps = p * N * 2;\n let currentOp = 0;\n let lastPercent10 = null;\n\n // Set this to true to abandon the scrypt on the next step\n let stop = false;\n\n // State information\n let state = 0;\n let i0 = 0, i1;\n let Bi;\n\n // How many blockmix_salsa8 can we do per step?\n const limit = callback ? parseInt(1000 / r): 0xffffffff;\n\n // Trick from scrypt-async; if there is a setImmediate shim in place, use it\n const nextTick = (typeof(setImmediate) !== 'undefined') ? setImmediate : setTimeout;\n\n // This is really all I changed; making scryptsy a state machine so we occasionally\n // stop and give other evnts on the evnt loop a chance to run. ~RicMoo\n const incrementalSMix = function() {\n if (stop) {\n return callback(new Error('cancelled'), currentOp / totalOps);\n }\n\n let steps;\n\n switch (state) {\n case 0:\n // for (var i = 0; i < p; i++)...\n Bi = i0 * 32 * r;\n\n arraycopy(B, Bi, XY, 0, Yi); // ROMix - 1\n\n state = 1; // Move to ROMix 2\n i1 = 0;\n\n // Fall through\n\n case 1:\n\n // Run up to 1000 steps of the first inner smix loop\n steps = N - i1;\n if (steps > limit) { steps = limit; }\n for (let i = 0; i < steps; i++) { // ROMix - 2\n arraycopy(XY, 0, V, (i1 + i) * Yi, Yi) // ROMix - 3\n blockmix_salsa8(XY, Yi, r, x, _X); // ROMix - 4\n }\n\n // for (var i = 0; i < N; i++)\n i1 += steps;\n currentOp += steps;\n\n if (callback) {\n // Call the callback with the progress (optionally stopping us)\n const percent10 = parseInt(1000 * currentOp / totalOps);\n if (percent10 !== lastPercent10) {\n stop = callback(null, currentOp / totalOps);\n if (stop) { break; }\n lastPercent10 = percent10;\n }\n }\n\n if (i1 < N) { break; }\n\n i1 = 0; // Move to ROMix 6\n state = 2;\n\n // Fall through\n\n case 2:\n\n // Run up to 1000 steps of the second inner smix loop\n steps = N - i1;\n if (steps > limit) { steps = limit; }\n for (let i = 0; i < steps; i++) { // ROMix - 6\n const offset = (2 * r - 1) * 16; // ROMix - 7\n const j = XY[offset] & (N - 1);\n blockxor(V, j * Yi, XY, Yi); // ROMix - 8 (inner)\n blockmix_salsa8(XY, Yi, r, x, _X); // ROMix - 9 (outer)\n }\n\n // for (var i = 0; i < N; i++)...\n i1 += steps;\n currentOp += steps;\n\n // Call the callback with the progress (optionally stopping us)\n if (callback) {\n const percent10 = parseInt(1000 * currentOp / totalOps);\n if (percent10 !== lastPercent10) {\n stop = callback(null, currentOp / totalOps);\n if (stop) { break; }\n lastPercent10 = percent10;\n }\n }\n\n if (i1 < N) { break; }\n\n arraycopy(XY, 0, B, Bi, Yi); // ROMix - 10\n\n // for (var i = 0; i < p; i++)...\n i0++;\n if (i0 < p) {\n state = 0;\n break;\n }\n\n b = [];\n for (let i = 0; i < B.length; i++) {\n b.push((B[i] >> 0) & 0xff);\n b.push((B[i] >> 8) & 0xff);\n b.push((B[i] >> 16) & 0xff);\n b.push((B[i] >> 24) & 0xff);\n }\n\n const derivedKey = PBKDF2_HMAC_SHA256_OneIter(password, b, dkLen);\n\n // Send the result to the callback\n if (callback) { callback(null, 1.0, derivedKey); }\n\n // Done; don't break (which would reschedule)\n return derivedKey;\n }\n\n // Schedule the next steps\n if (callback) { nextTick(incrementalSMix); }\n }\n\n // Run the smix state machine until completion\n if (!callback) {\n while (true) {\n const derivedKey = incrementalSMix();\n if (derivedKey != undefined) { return derivedKey; }\n }\n }\n\n // Bootstrap the async incremental smix\n incrementalSMix();\n }\n\n const lib = {\n scrypt: function(password, salt, N, r, p, dkLen, progressCallback) {\n return new Promise(function(resolve, reject) {\n let lastProgress = 0;\n if (progressCallback) { progressCallback(0); }\n _scrypt(password, salt, N, r, p, dkLen, function(error, progress, key) {\n if (error) {\n reject(error);\n } else if (key) {\n if (progressCallback && lastProgress !== 1) {\n progressCallback(1);\n }\n resolve(new Uint8Array(key));\n } else if (progressCallback && progress !== lastProgress) {\n lastProgress = progress;\n return progressCallback(progress);\n }\n });\n });\n },\n syncScrypt: function(password, salt, N, r, p, dkLen) {\n return new Uint8Array(_scrypt(password, salt, N, r, p, dkLen));\n }\n };\n\n // node.js\n if (typeof(exports) !== 'undefined') {\n module.exports = lib;\n\n // RequireJS/AMD\n // http://www.requirejs.org/docs/api.html\n // https://github.com/amdjs/amdjs-api/wiki/AMD\n } else if (typeof(define) === 'function' && define.amd) {\n define(lib);\n\n // Web Browsers\n } else if (root) {\n\n // If there was an existing library \"scrypt\", make sure it is still available\n if (root.scrypt) {\n root._scrypt = root.scrypt;\n }\n\n root.scrypt = lib;\n }\n\n})(this);\n", "\"use strict\";\n\nimport aes from \"aes-js\";\nimport scrypt from \"scrypt-js\";\n\nimport { ExternallyOwnedAccount } from \"@ethersproject/abstract-signer\";\nimport { getAddress } from \"@ethersproject/address\";\nimport { arrayify, Bytes, BytesLike, concat, hexlify } from \"@ethersproject/bytes\";\nimport { defaultPath, entropyToMnemonic, HDNode, Mnemonic, mnemonicToEntropy } from \"@ethersproject/hdnode\";\nimport { keccak256 } from \"@ethersproject/keccak256\";\nimport { pbkdf2 as _pbkdf2 } from \"@ethersproject/pbkdf2\";\nimport { randomBytes } from \"@ethersproject/random\";\nimport { Description } from \"@ethersproject/properties\";\nimport { computeAddress } from \"@ethersproject/transactions\";\n\nimport { getPassword, looseArrayify, searchPath, uuidV4, zpad } from \"./utils\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\n// Exported Types\n\nfunction hasMnemonic(value: any): value is { mnemonic: Mnemonic } {\n return (value != null && value.mnemonic && value.mnemonic.phrase);\n}\n\nexport interface _KeystoreAccount {\n address: string;\n privateKey: string;\n mnemonic?: Mnemonic;\n\n _isKeystoreAccount: boolean;\n}\n\nexport class KeystoreAccount extends Description<_KeystoreAccount> implements ExternallyOwnedAccount {\n readonly address: string;\n readonly privateKey: string;\n readonly mnemonic?: Mnemonic;\n\n readonly _isKeystoreAccount: boolean;\n\n isKeystoreAccount(value: any): value is KeystoreAccount {\n return !!(value && value._isKeystoreAccount);\n }\n}\n\nexport type ProgressCallback = (percent: number) => void;\n\nexport type EncryptOptions = {\n iv?: BytesLike;\n entropy?: BytesLike;\n client?: string;\n salt?: BytesLike;\n uuid?: string;\n scrypt?: {\n N?: number;\n r?: number;\n p?: number;\n }\n}\n\nfunction _decrypt(data: any, key: Uint8Array, ciphertext: Uint8Array): Uint8Array {\n const cipher = searchPath(data, \"crypto/cipher\");\n if (cipher === \"aes-128-ctr\") {\n const iv = looseArrayify(searchPath(data, \"crypto/cipherparams/iv\"))\n const counter = new aes.Counter(iv);\n\n const aesCtr = new aes.ModeOfOperation.ctr(key, counter);\n\n return arrayify(aesCtr.decrypt(ciphertext));\n }\n\n return null;\n}\n\nfunction _getAccount(data: any, key: Uint8Array): KeystoreAccount {\n const ciphertext = looseArrayify(searchPath(data, \"crypto/ciphertext\"));\n\n const computedMAC = hexlify(keccak256(concat([ key.slice(16, 32), ciphertext ]))).substring(2);\n if (computedMAC !== searchPath(data, \"crypto/mac\").toLowerCase()) {\n throw new Error(\"invalid password\");\n }\n\n const privateKey = _decrypt(data, key.slice(0, 16), ciphertext);\n\n if (!privateKey) {\n logger.throwError(\"unsupported cipher\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"decrypt\"\n });\n }\n\n const mnemonicKey = key.slice(32, 64);\n\n const address = computeAddress(privateKey);\n if (data.address) {\n let check = data.address.toLowerCase();\n if (check.substring(0, 2) !== \"0x\") { check = \"0x\" + check; }\n\n if (getAddress(check) !== address) {\n throw new Error(\"address mismatch\");\n }\n }\n\n const account: _KeystoreAccount = {\n _isKeystoreAccount: true,\n address: address,\n privateKey: hexlify(privateKey)\n };\n\n // Version 0.1 x-ethers metadata must contain an encrypted mnemonic phrase\n if (searchPath(data, \"x-ethers/version\") === \"0.1\") {\n const mnemonicCiphertext = looseArrayify(searchPath(data, \"x-ethers/mnemonicCiphertext\"));\n const mnemonicIv = looseArrayify(searchPath(data, \"x-ethers/mnemonicCounter\"));\n\n const mnemonicCounter = new aes.Counter(mnemonicIv);\n const mnemonicAesCtr = new aes.ModeOfOperation.ctr(mnemonicKey, mnemonicCounter);\n\n const path = searchPath(data, \"x-ethers/path\") || defaultPath;\n const locale = searchPath(data, \"x-ethers/locale\") || \"en\";\n\n const entropy = arrayify(mnemonicAesCtr.decrypt(mnemonicCiphertext));\n\n try {\n const mnemonic = entropyToMnemonic(entropy, locale);\n const node = HDNode.fromMnemonic(mnemonic, null, locale).derivePath(path);\n\n if (node.privateKey != account.privateKey) {\n throw new Error(\"mnemonic mismatch\");\n }\n\n account.mnemonic = node.mnemonic;\n\n } catch (error) {\n // If we don't have the locale wordlist installed to\n // read this mnemonic, just bail and don't set the\n // mnemonic\n if (error.code !== Logger.errors.INVALID_ARGUMENT || error.argument !== \"wordlist\") {\n throw error;\n }\n }\n }\n\n return new KeystoreAccount(account);\n}\n\ntype ScryptFunc = (pw: Uint8Array, salt: Uint8Array, n: number, r: number, p: number, dkLen: number, callback?: ProgressCallback) => T;\ntype Pbkdf2Func = (pw: Uint8Array, salt: Uint8Array, c: number, dkLen: number, prfFunc: string) => T;\n\nfunction pbkdf2Sync(passwordBytes: Uint8Array, salt: Uint8Array, count: number, dkLen: number, prfFunc: string): Uint8Array {\n return arrayify(_pbkdf2(passwordBytes, salt, count, dkLen, prfFunc));\n}\n\nfunction pbkdf2(passwordBytes: Uint8Array, salt: Uint8Array, count: number, dkLen: number, prfFunc: string): Promise {\n return Promise.resolve(pbkdf2Sync(passwordBytes, salt, count, dkLen, prfFunc));\n}\n\nfunction _computeKdfKey(data: any, password: Bytes | string, pbkdf2Func: Pbkdf2Func, scryptFunc: ScryptFunc, progressCallback?: ProgressCallback): T {\n const passwordBytes = getPassword(password);\n\n const kdf = searchPath(data, \"crypto/kdf\");\n\n if (kdf && typeof(kdf) === \"string\") {\n const throwError = function(name: string, value: any): never {\n return logger.throwArgumentError(\"invalid key-derivation function parameters\", name, value);\n }\n\n if (kdf.toLowerCase() === \"scrypt\") {\n const salt = looseArrayify(searchPath(data, \"crypto/kdfparams/salt\"));\n const N = parseInt(searchPath(data, \"crypto/kdfparams/n\"));\n const r = parseInt(searchPath(data, \"crypto/kdfparams/r\"));\n const p = parseInt(searchPath(data, \"crypto/kdfparams/p\"));\n\n // Check for all required parameters\n if (!N || !r || !p) { throwError(\"kdf\", kdf); }\n\n // Make sure N is a power of 2\n if ((N & (N - 1)) !== 0) { throwError(\"N\", N); }\n\n const dkLen = parseInt(searchPath(data, \"crypto/kdfparams/dklen\"));\n if (dkLen !== 32) { throwError(\"dklen\", dkLen); }\n\n return scryptFunc(passwordBytes, salt, N, r, p, 64, progressCallback);\n\n } else if (kdf.toLowerCase() === \"pbkdf2\") {\n\n const salt = looseArrayify(searchPath(data, \"crypto/kdfparams/salt\"));\n\n let prfFunc: string = null;\n const prf = searchPath(data, \"crypto/kdfparams/prf\");\n if (prf === \"hmac-sha256\") {\n prfFunc = \"sha256\";\n } else if (prf === \"hmac-sha512\") {\n prfFunc = \"sha512\";\n } else {\n throwError(\"prf\", prf);\n }\n\n const count = parseInt(searchPath(data, \"crypto/kdfparams/c\"));\n\n const dkLen = parseInt(searchPath(data, \"crypto/kdfparams/dklen\"));\n if (dkLen !== 32) { throwError(\"dklen\", dkLen); }\n\n return pbkdf2Func(passwordBytes, salt, count, dkLen, prfFunc);\n }\n }\n\n return logger.throwArgumentError(\"unsupported key-derivation function\", \"kdf\", kdf);\n}\n\n\nexport function decryptSync(json: string, password: Bytes | string): KeystoreAccount {\n const data = JSON.parse(json);\n\n const key = _computeKdfKey(data, password, pbkdf2Sync, scrypt.syncScrypt);\n return _getAccount(data, key);\n}\n\nexport async function decrypt(json: string, password: Bytes | string, progressCallback?: ProgressCallback): Promise {\n const data = JSON.parse(json);\n\n const key = await _computeKdfKey(data, password, pbkdf2, scrypt.scrypt, progressCallback);\n return _getAccount(data, key);\n}\n\n\nexport function encrypt(account: ExternallyOwnedAccount, password: Bytes | string, options?: EncryptOptions, progressCallback?: ProgressCallback): Promise {\n\n try {\n // Check the address matches the private key\n if (getAddress(account.address) !== computeAddress(account.privateKey)) {\n throw new Error(\"address/privateKey mismatch\");\n }\n\n // Check the mnemonic (if any) matches the private key\n if (hasMnemonic(account)) {\n const mnemonic = account.mnemonic;\n const node = HDNode.fromMnemonic(mnemonic.phrase, null, mnemonic.locale).derivePath(mnemonic.path || defaultPath);\n\n if (node.privateKey != account.privateKey) {\n throw new Error(\"mnemonic mismatch\");\n }\n }\n\n } catch (e) {\n return Promise.reject(e);\n }\n\n // The options are optional, so adjust the call as needed\n if (typeof(options) === \"function\" && !progressCallback) {\n progressCallback = options;\n options = {};\n }\n if (!options) { options = {}; }\n\n const privateKey: Uint8Array = arrayify(account.privateKey);\n const passwordBytes = getPassword(password);\n\n let entropy: Uint8Array = null\n let path: string = null;\n let locale: string = null;\n if (hasMnemonic(account)) {\n const srcMnemonic = account.mnemonic;\n entropy = arrayify(mnemonicToEntropy(srcMnemonic.phrase, srcMnemonic.locale || \"en\"));\n path = srcMnemonic.path || defaultPath;\n locale = srcMnemonic.locale || \"en\";\n }\n\n let client = options.client;\n if (!client) { client = \"ethers.js\"; }\n\n // Check/generate the salt\n let salt: Uint8Array = null;\n if (options.salt) {\n salt = arrayify(options.salt);\n } else {\n salt = randomBytes(32);;\n }\n\n // Override initialization vector\n let iv: Uint8Array = null;\n if (options.iv) {\n iv = arrayify(options.iv);\n if (iv.length !== 16) { throw new Error(\"invalid iv\"); }\n } else {\n iv = randomBytes(16);\n }\n\n // Override the uuid\n let uuidRandom: Uint8Array = null;\n if (options.uuid) {\n uuidRandom = arrayify(options.uuid);\n if (uuidRandom.length !== 16) { throw new Error(\"invalid uuid\"); }\n } else {\n uuidRandom = randomBytes(16);\n }\n\n // Override the scrypt password-based key derivation function parameters\n let N = (1 << 17), r = 8, p = 1;\n if (options.scrypt) {\n if (options.scrypt.N) { N = options.scrypt.N; }\n if (options.scrypt.r) { r = options.scrypt.r; }\n if (options.scrypt.p) { p = options.scrypt.p; }\n }\n\n // We take 64 bytes:\n // - 32 bytes As normal for the Web3 secret storage (derivedKey, macPrefix)\n // - 32 bytes AES key to encrypt mnemonic with (required here to be Ethers Wallet)\n return scrypt.scrypt(passwordBytes, salt, N, r, p, 64, progressCallback).then((key) => {\n key = arrayify(key);\n\n // This will be used to encrypt the wallet (as per Web3 secret storage)\n const derivedKey = key.slice(0, 16);\n const macPrefix = key.slice(16, 32);\n\n // This will be used to encrypt the mnemonic phrase (if any)\n const mnemonicKey = key.slice(32, 64);\n\n // Encrypt the private key\n const counter = new aes.Counter(iv);\n const aesCtr = new aes.ModeOfOperation.ctr(derivedKey, counter);\n const ciphertext = arrayify(aesCtr.encrypt(privateKey));\n\n // Compute the message authentication code, used to check the password\n const mac = keccak256(concat([macPrefix, ciphertext]))\n\n // See: https://github.com/ethereum/wiki/wiki/Web3-Secret-Storage-Definition\n const data: { [key: string]: any } = {\n address: account.address.substring(2).toLowerCase(),\n id: uuidV4(uuidRandom),\n version: 3,\n crypto: {\n cipher: \"aes-128-ctr\",\n cipherparams: {\n iv: hexlify(iv).substring(2),\n },\n ciphertext: hexlify(ciphertext).substring(2),\n kdf: \"scrypt\",\n kdfparams: {\n salt: hexlify(salt).substring(2),\n n: N,\n dklen: 32,\n p: p,\n r: r\n },\n mac: mac.substring(2)\n }\n };\n\n // If we have a mnemonic, encrypt it into the JSON wallet\n if (entropy) {\n const mnemonicIv = randomBytes(16);\n const mnemonicCounter = new aes.Counter(mnemonicIv);\n const mnemonicAesCtr = new aes.ModeOfOperation.ctr(mnemonicKey, mnemonicCounter);\n const mnemonicCiphertext = arrayify(mnemonicAesCtr.encrypt(entropy));\n const now = new Date();\n const timestamp = (now.getUTCFullYear() + \"-\" +\n zpad(now.getUTCMonth() + 1, 2) + \"-\" +\n zpad(now.getUTCDate(), 2) + \"T\" +\n zpad(now.getUTCHours(), 2) + \"-\" +\n zpad(now.getUTCMinutes(), 2) + \"-\" +\n zpad(now.getUTCSeconds(), 2) + \".0Z\"\n );\n data[\"x-ethers\"] = {\n client: client,\n gethFilename: (\"UTC--\" + timestamp + \"--\" + data.address),\n mnemonicCounter: hexlify(mnemonicIv).substring(2),\n mnemonicCiphertext: hexlify(mnemonicCiphertext).substring(2),\n path: path,\n locale: locale,\n version: \"0.1\"\n };\n }\n\n return JSON.stringify(data);\n });\n}\n", "\"use strict\";\n\nimport { Bytes } from \"@ethersproject/bytes\";\nimport { ExternallyOwnedAccount } from \"@ethersproject/abstract-signer\";\n\nimport { decrypt as decryptCrowdsale } from \"./crowdsale\";\nimport { getJsonWalletAddress, isCrowdsaleWallet, isKeystoreWallet } from \"./inspect\";\nimport { decrypt as decryptKeystore, decryptSync as decryptKeystoreSync, encrypt as encryptKeystore, EncryptOptions, ProgressCallback } from \"./keystore\";\n\nfunction decryptJsonWallet(json: string, password: Bytes | string, progressCallback?: ProgressCallback): Promise {\n if (isCrowdsaleWallet(json)) {\n if (progressCallback) { progressCallback(0); }\n const account = decryptCrowdsale(json, password)\n if (progressCallback) { progressCallback(1); }\n return Promise.resolve(account);\n }\n\n if (isKeystoreWallet(json)) {\n return decryptKeystore(json, password, progressCallback);\n }\n\n return Promise.reject(new Error(\"invalid JSON wallet\"));\n}\n\nfunction decryptJsonWalletSync(json: string, password: Bytes | string): ExternallyOwnedAccount {\n if (isCrowdsaleWallet(json)) {\n return decryptCrowdsale(json, password)\n }\n\n if (isKeystoreWallet(json)) {\n return decryptKeystoreSync(json, password);\n }\n\n throw new Error(\"invalid JSON wallet\");\n}\n\nexport {\n decryptCrowdsale,\n\n decryptKeystore,\n decryptKeystoreSync,\n encryptKeystore,\n\n isCrowdsaleWallet,\n isKeystoreWallet,\n getJsonWalletAddress,\n\n decryptJsonWallet,\n decryptJsonWalletSync,\n\n ProgressCallback,\n EncryptOptions,\n};\n", "export const version = \"wallet/5.7.0\";\n", "\"use strict\";\n\nimport { getAddress } from \"@ethersproject/address\";\nimport { Provider, TransactionRequest } from \"@ethersproject/abstract-provider\";\nimport { ExternallyOwnedAccount, Signer, TypedDataDomain, TypedDataField, TypedDataSigner } from \"@ethersproject/abstract-signer\";\nimport { arrayify, Bytes, BytesLike, concat, hexDataSlice, isHexString, joinSignature, SignatureLike } from \"@ethersproject/bytes\";\nimport { hashMessage, _TypedDataEncoder } from \"@ethersproject/hash\";\nimport { defaultPath, HDNode, entropyToMnemonic, Mnemonic } from \"@ethersproject/hdnode\";\nimport { keccak256 } from \"@ethersproject/keccak256\";\nimport { defineReadOnly, resolveProperties } from \"@ethersproject/properties\";\nimport { randomBytes } from \"@ethersproject/random\";\nimport { SigningKey } from \"@ethersproject/signing-key\";\nimport { decryptJsonWallet, decryptJsonWalletSync, encryptKeystore, ProgressCallback } from \"@ethersproject/json-wallets\";\nimport { computeAddress, recoverAddress, serialize, UnsignedTransaction } from \"@ethersproject/transactions\";\nimport { Wordlist } from \"@ethersproject/wordlists\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\nfunction isAccount(value: any): value is ExternallyOwnedAccount {\n return (value != null && isHexString(value.privateKey, 32) && value.address != null);\n}\n\nfunction hasMnemonic(value: any): value is { mnemonic: Mnemonic } {\n const mnemonic = value.mnemonic;\n return (mnemonic && mnemonic.phrase);\n}\n\nexport class Wallet extends Signer implements ExternallyOwnedAccount, TypedDataSigner {\n\n readonly address: string;\n readonly provider: Provider;\n\n // Wrapping the _signingKey and _mnemonic in a getter function prevents\n // leaking the private key in console.log; still, be careful! :)\n readonly _signingKey: () => SigningKey;\n readonly _mnemonic: () => Mnemonic;\n\n constructor(privateKey: BytesLike | ExternallyOwnedAccount | SigningKey, provider?: Provider) {\n super();\n\n if (isAccount(privateKey)) {\n const signingKey = new SigningKey(privateKey.privateKey);\n defineReadOnly(this, \"_signingKey\", () => signingKey);\n defineReadOnly(this, \"address\", computeAddress(this.publicKey));\n\n if (this.address !== getAddress(privateKey.address)) {\n logger.throwArgumentError(\"privateKey/address mismatch\", \"privateKey\", \"[REDACTED]\");\n }\n\n if (hasMnemonic(privateKey)) {\n const srcMnemonic = privateKey.mnemonic;\n defineReadOnly(this, \"_mnemonic\", () => (\n {\n phrase: srcMnemonic.phrase,\n path: srcMnemonic.path || defaultPath,\n locale: srcMnemonic.locale || \"en\"\n }\n ));\n const mnemonic = this.mnemonic;\n const node = HDNode.fromMnemonic(mnemonic.phrase, null, mnemonic.locale).derivePath(mnemonic.path);\n if (computeAddress(node.privateKey) !== this.address) {\n logger.throwArgumentError(\"mnemonic/address mismatch\", \"privateKey\", \"[REDACTED]\");\n }\n } else {\n defineReadOnly(this, \"_mnemonic\", (): Mnemonic => null);\n }\n\n\n } else {\n if (SigningKey.isSigningKey(privateKey)) {\n /* istanbul ignore if */\n if (privateKey.curve !== \"secp256k1\") {\n logger.throwArgumentError(\"unsupported curve; must be secp256k1\", \"privateKey\", \"[REDACTED]\");\n }\n defineReadOnly(this, \"_signingKey\", () => (privateKey));\n\n } else {\n // A lot of common tools do not prefix private keys with a 0x (see: #1166)\n if (typeof(privateKey) === \"string\") {\n if (privateKey.match(/^[0-9a-f]*$/i) && privateKey.length === 64) {\n privateKey = \"0x\" + privateKey;\n }\n }\n\n const signingKey = new SigningKey(privateKey);\n defineReadOnly(this, \"_signingKey\", () => signingKey);\n }\n\n defineReadOnly(this, \"_mnemonic\", (): Mnemonic => null);\n defineReadOnly(this, \"address\", computeAddress(this.publicKey));\n }\n\n /* istanbul ignore if */\n if (provider && !Provider.isProvider(provider)) {\n logger.throwArgumentError(\"invalid provider\", \"provider\", provider);\n }\n\n defineReadOnly(this, \"provider\", provider || null);\n }\n\n get mnemonic(): Mnemonic { return this._mnemonic(); }\n get privateKey(): string { return this._signingKey().privateKey; }\n get publicKey(): string { return this._signingKey().publicKey; }\n\n getAddress(): Promise {\n return Promise.resolve(this.address);\n }\n\n connect(provider: Provider): Wallet {\n return new Wallet(this, provider);\n }\n\n signTransaction(transaction: TransactionRequest): Promise {\n return resolveProperties(transaction).then((tx) => {\n if (tx.from != null) {\n if (getAddress(tx.from) !== this.address) {\n logger.throwArgumentError(\"transaction from address mismatch\", \"transaction.from\", transaction.from);\n }\n delete tx.from;\n }\n\n const signature = this._signingKey().signDigest(keccak256(serialize(tx)));\n return serialize(tx, signature);\n });\n }\n\n async signMessage(message: Bytes | string): Promise {\n return joinSignature(this._signingKey().signDigest(hashMessage(message)));\n }\n\n async _signTypedData(domain: TypedDataDomain, types: Record>, value: Record): Promise {\n // Populate any ENS names\n const populated = await _TypedDataEncoder.resolveNames(domain, types, value, (name: string) => {\n if (this.provider == null) {\n logger.throwError(\"cannot resolve ENS names without a provider\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"resolveName\",\n value: name\n });\n }\n return this.provider.resolveName(name);\n });\n\n return joinSignature(this._signingKey().signDigest(_TypedDataEncoder.hash(populated.domain, types, populated.value)));\n }\n\n encrypt(password: Bytes | string, options?: any, progressCallback?: ProgressCallback): Promise {\n if (typeof(options) === \"function\" && !progressCallback) {\n progressCallback = options;\n options = {};\n }\n\n if (progressCallback && typeof(progressCallback) !== \"function\") {\n throw new Error(\"invalid callback\");\n }\n\n if (!options) { options = {}; }\n\n return encryptKeystore(this, password, options, progressCallback);\n }\n\n\n /**\n * Static methods to create Wallet instances.\n */\n static createRandom(options?: any): Wallet {\n let entropy: Uint8Array = randomBytes(16);\n\n if (!options) { options = { }; }\n\n if (options.extraEntropy) {\n entropy = arrayify(hexDataSlice(keccak256(concat([ entropy, options.extraEntropy ])), 0, 16));\n }\n\n const mnemonic = entropyToMnemonic(entropy, options.locale);\n return Wallet.fromMnemonic(mnemonic, options.path, options.locale);\n }\n\n static fromEncryptedJson(json: string, password: Bytes | string, progressCallback?: ProgressCallback): Promise {\n return decryptJsonWallet(json, password, progressCallback).then((account) => {\n return new Wallet(account);\n });\n }\n\n static fromEncryptedJsonSync(json: string, password: Bytes | string): Wallet {\n return new Wallet(decryptJsonWalletSync(json, password));\n }\n\n static fromMnemonic(mnemonic: string, path?: string, wordlist?: Wordlist): Wallet {\n if (!path) { path = defaultPath; }\n return new Wallet(HDNode.fromMnemonic(mnemonic, null, wordlist).derivePath(path));\n }\n}\n\nexport function verifyMessage(message: Bytes | string, signature: SignatureLike): string {\n return recoverAddress(hashMessage(message), signature);\n}\n\nexport function verifyTypedData(domain: TypedDataDomain, types: Record>, value: Record, signature: SignatureLike): string {\n return recoverAddress(_TypedDataEncoder.hash(domain, types, value), signature);\n}\n", "export const version = \"networks/5.7.1\";\n", "\"use strict\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\nimport { Network, Networkish } from \"./types\";\n\nexport {\n Network,\n Networkish\n};\n\ntype DefaultProviderFunc = (providers: any, options?: any) => any;\n\ninterface Renetworkable extends DefaultProviderFunc {\n renetwork: (network: Network) => DefaultProviderFunc;\n};\n\nfunction isRenetworkable(value: any): value is Renetworkable {\n return (value && typeof(value.renetwork) === \"function\");\n}\n\nfunction ethDefaultProvider(network: string | Network): Renetworkable {\n const func = function(providers: any, options?: any): any {\n if (options == null) { options = { }; }\n const providerList: Array = [];\n\n if (providers.InfuraProvider && options.infura !== \"-\") {\n try {\n providerList.push(new providers.InfuraProvider(network, options.infura));\n } catch(error) { }\n }\n\n if (providers.EtherscanProvider && options.etherscan !== \"-\") {\n try {\n providerList.push(new providers.EtherscanProvider(network, options.etherscan));\n } catch(error) { }\n }\n\n if (providers.AlchemyProvider && options.alchemy !== \"-\") {\n try {\n providerList.push(new providers.AlchemyProvider(network, options.alchemy));\n } catch(error) { }\n }\n\n if (providers.PocketProvider && options.pocket !== \"-\") {\n // These networks are currently faulty on Pocket as their\n // network does not handle the Berlin hardfork, which is\n // live on these ones.\n // @TODO: This goes away once Pocket has upgraded their nodes\n const skip = [ \"goerli\", \"ropsten\", \"rinkeby\", \"sepolia\" ];\n try {\n const provider = new providers.PocketProvider(network, options.pocket);\n if (provider.network && skip.indexOf(provider.network.name) === -1) {\n providerList.push(provider);\n }\n } catch(error) { }\n }\n\n if (providers.CloudflareProvider && options.cloudflare !== \"-\") {\n try {\n providerList.push(new providers.CloudflareProvider(network));\n } catch(error) { }\n }\n\n if (providers.AnkrProvider && options.ankr !== \"-\") {\n try {\n const skip = [ \"ropsten\" ];\n const provider = new providers.AnkrProvider(network, options.ankr);\n if (provider.network && skip.indexOf(provider.network.name) === -1) {\n providerList.push(provider);\n }\n } catch(error) { }\n }\n\n if (providerList.length === 0) { return null; }\n\n if (providers.FallbackProvider) {\n let quorum = 1;\n if (options.quorum != null) {\n quorum = options.quorum;\n } else if (network === \"homestead\") {\n quorum = 2;\n }\n return new providers.FallbackProvider(providerList, quorum);\n }\n\n return providerList[0];\n };\n\n func.renetwork = function(network: Network) {\n return ethDefaultProvider(network);\n };\n\n return func;\n}\n\nfunction etcDefaultProvider(url: string, network: string | Network): Renetworkable {\n const func = function(providers: any, options?: any): any {\n if (providers.JsonRpcProvider) {\n return new providers.JsonRpcProvider(url, network);\n }\n\n return null;\n };\n\n func.renetwork = function(network: Network) {\n return etcDefaultProvider(url, network);\n };\n\n return func;\n}\n\nconst homestead: Network = {\n chainId: 1,\n ensAddress: \"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e\",\n name: \"homestead\",\n _defaultProvider: ethDefaultProvider(\"homestead\")\n};\n\nconst ropsten: Network = {\n chainId: 3,\n ensAddress: \"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e\",\n name: \"ropsten\",\n _defaultProvider: ethDefaultProvider(\"ropsten\")\n};\n\nconst classicMordor: Network = {\n chainId: 63,\n name: \"classicMordor\",\n _defaultProvider: etcDefaultProvider(\"https://www.ethercluster.com/mordor\", \"classicMordor\")\n};\n\n// See: https://chainlist.org\nconst networks: { [name: string]: Network } = {\n unspecified: { chainId: 0, name: \"unspecified\" },\n\n homestead: homestead,\n mainnet: homestead,\n\n morden: { chainId: 2, name: \"morden\" },\n\n ropsten: ropsten,\n testnet: ropsten,\n\n rinkeby: {\n chainId: 4,\n ensAddress: \"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e\",\n name: \"rinkeby\",\n _defaultProvider: ethDefaultProvider(\"rinkeby\")\n },\n\n kovan: {\n chainId: 42,\n name: \"kovan\",\n _defaultProvider: ethDefaultProvider(\"kovan\")\n },\n\n goerli: {\n chainId: 5,\n ensAddress: \"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e\",\n name: \"goerli\",\n _defaultProvider: ethDefaultProvider(\"goerli\")\n },\n\n kintsugi: { chainId: 1337702, name: \"kintsugi\" },\n\n sepolia: {\n chainId: 11155111,\n name: \"sepolia\",\n _defaultProvider: ethDefaultProvider(\"sepolia\")\n },\n\n\n // ETC (See: #351)\n classic: {\n chainId: 61,\n name: \"classic\",\n _defaultProvider: etcDefaultProvider(\"https:/\\/www.ethercluster.com/etc\", \"classic\")\n },\n\n classicMorden: { chainId: 62, name: \"classicMorden\" },\n\n classicMordor: classicMordor,\n classicTestnet: classicMordor,\n\n classicKotti: {\n chainId: 6,\n name: \"classicKotti\",\n _defaultProvider: etcDefaultProvider(\"https:/\\/www.ethercluster.com/kotti\", \"classicKotti\")\n },\n\n xdai: { chainId: 100, name: \"xdai\" },\n\n matic: {\n chainId: 137,\n name: \"matic\",\n _defaultProvider: ethDefaultProvider(\"matic\")\n },\n maticmum: { chainId: 80001, name: \"maticmum\" },\n\n optimism: {\n chainId: 10,\n name: \"optimism\",\n _defaultProvider: ethDefaultProvider(\"optimism\")\n },\n \"optimism-kovan\": { chainId: 69, name: \"optimism-kovan\" },\n \"optimism-goerli\": { chainId: 420, name: \"optimism-goerli\" },\n\n arbitrum: { chainId: 42161, name: \"arbitrum\" },\n \"arbitrum-rinkeby\": { chainId: 421611, name: \"arbitrum-rinkeby\" },\n \"arbitrum-goerli\": { chainId: 421613, name: \"arbitrum-goerli\" },\n\n bnb: { chainId: 56, name: \"bnb\" },\n bnbt: { chainId: 97, name: \"bnbt\" },\n}\n\n/**\n * getNetwork\n *\n * Converts a named common networks or chain ID (network ID) to a Network\n * and verifies a network is a valid Network..\n */\nexport function getNetwork(network: Networkish): Network {\n // No network (null)\n if (network == null) { return null; }\n\n if (typeof(network) === \"number\") {\n for (const name in networks) {\n const standard = networks[name];\n if (standard.chainId === network) {\n return {\n name: standard.name,\n chainId: standard.chainId,\n ensAddress: (standard.ensAddress || null),\n _defaultProvider: (standard._defaultProvider || null)\n };\n }\n }\n\n return {\n chainId: network,\n name: \"unknown\"\n };\n }\n\n if (typeof(network) === \"string\") {\n const standard = networks[network];\n if (standard == null) { return null; }\n return {\n name: standard.name,\n chainId: standard.chainId,\n ensAddress: standard.ensAddress,\n _defaultProvider: (standard._defaultProvider || null)\n };\n }\n\n const standard = networks[network.name];\n\n // Not a standard network; check that it is a valid network in general\n if (!standard) {\n if (typeof(network.chainId) !== \"number\") {\n logger.throwArgumentError(\"invalid network chainId\", \"network\", network);\n }\n return network;\n }\n\n // Make sure the chainId matches the expected network chainId (or is 0; disable EIP-155)\n if (network.chainId !== 0 && network.chainId !== standard.chainId) {\n logger.throwArgumentError(\"network chainId mismatch\", \"network\", network);\n }\n\n // @TODO: In the next major version add an attach function to a defaultProvider\n // class and move the _defaultProvider internal to this file (extend Network)\n let defaultProvider: DefaultProviderFunc = network._defaultProvider || null;\n if (defaultProvider == null && standard._defaultProvider) {\n if (isRenetworkable(standard._defaultProvider)) {\n defaultProvider = standard._defaultProvider.renetwork(network);\n } else {\n defaultProvider = standard._defaultProvider;\n }\n }\n\n // Standard Network (allow overriding the ENS address)\n return {\n name: network.name,\n chainId: standard.chainId,\n ensAddress: (network.ensAddress || standard.ensAddress || null),\n _defaultProvider: defaultProvider\n };\n}\n", "export const version = \"web/5.7.1\";\n", "\"use strict\";\n\nimport http from \"http\";\nimport https from \"https\";\nimport { gunzipSync } from \"zlib\";\nimport { parse } from \"url\"\n\nimport { arrayify, concat } from \"@ethersproject/bytes\";\nimport { shallowCopy } from \"@ethersproject/properties\";\n\nimport type { GetUrlResponse, Options } from \"./types\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\nexport { GetUrlResponse, Options };\n\nfunction getResponse(request: http.ClientRequest): Promise {\n return new Promise((resolve, reject) => {\n request.once(\"response\", (resp: http.IncomingMessage) => {\n const response: GetUrlResponse = {\n statusCode: resp.statusCode,\n statusMessage: resp.statusMessage,\n headers: Object.keys(resp.headers).reduce((accum, name) => {\n let value = resp.headers[name];\n if (Array.isArray(value)) {\n value = value.join(\", \");\n }\n accum[name] = value;\n return accum;\n }, <{ [ name: string ]: string }>{ }),\n body: null\n };\n //resp.setEncoding(\"utf8\");\n\n resp.on(\"data\", (chunk: Uint8Array) => {\n if (response.body == null) { response.body = new Uint8Array(0); }\n response.body = concat([ response.body, chunk ]);\n });\n\n resp.on(\"end\", () => {\n if (response.headers[\"content-encoding\"] === \"gzip\") {\n //const size = response.body.length;\n response.body = arrayify(gunzipSync(response.body));\n //console.log(\"Delta:\", response.body.length - size, Buffer.from(response.body).toString());\n }\n resolve(response);\n });\n\n resp.on(\"error\", (error) => {\n /* istanbul ignore next */\n (error).response = response;\n reject(error);\n });\n });\n\n request.on(\"error\", (error) => { reject(error); });\n });\n}\n\n// The URL.parse uses null instead of the empty string\nfunction nonnull(value: string): string {\n if (value == null) { return \"\"; }\n return value;\n}\n\nexport async function getUrl(href: string, options?: Options): Promise {\n if (options == null) { options = { }; }\n\n // @TODO: Once we drop support for node 8, we can pass the href\n // directly into request and skip adding the components\n // to this request object\n const url = parse(href);\n\n const request = {\n protocol: nonnull(url.protocol),\n hostname: nonnull(url.hostname),\n port: nonnull(url.port),\n path: (nonnull(url.pathname) + nonnull(url.search)),\n\n method: (options.method || \"GET\"),\n headers: shallowCopy(options.headers || { }),\n };\n\n if (options.allowGzip) {\n request.headers[\"accept-encoding\"] = \"gzip\";\n }\n\n let req: http.ClientRequest = null;\n switch (nonnull(url.protocol)) {\n case \"http:\":\n req = http.request(request);\n break;\n case \"https:\":\n req = https.request(request);\n break;\n default:\n /* istanbul ignore next */\n logger.throwError(`unsupported protocol ${ url.protocol }`, Logger.errors.UNSUPPORTED_OPERATION, {\n protocol: url.protocol,\n operation: \"request\"\n });\n }\n\n if (options.body) {\n req.write(Buffer.from(options.body));\n }\n req.end();\n\n const response = await getResponse(req);\n return response;\n}\n\n", "\"use strict\";\n\nimport { decode as base64Decode, encode as base64Encode } from \"@ethersproject/base64\";\nimport { hexlify, isBytesLike } from \"@ethersproject/bytes\";\nimport { shallowCopy } from \"@ethersproject/properties\";\nimport { toUtf8Bytes, toUtf8String } from \"@ethersproject/strings\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\nimport { getUrl, GetUrlResponse, Options } from \"./geturl\";\n\nfunction staller(duration: number): Promise {\n return new Promise((resolve) => {\n setTimeout(resolve, duration);\n });\n}\n\nfunction bodyify(value: any, type: string): string {\n if (value == null) { return null; }\n\n if (typeof(value) === \"string\") { return value; }\n\n if (isBytesLike(value)) {\n if (type && (type.split(\"/\")[0] === \"text\" || type.split(\";\")[0].trim() === \"application/json\")) {\n try {\n return toUtf8String(value);\n } catch (error) { };\n }\n return hexlify(value);\n }\n\n return value;\n}\n\n// Exported Types\nexport type ConnectionInfo = {\n url: string,\n headers?: { [key: string]: string | number }\n\n user?: string,\n password?: string,\n\n allowInsecureAuthentication?: boolean,\n allowGzip?: boolean,\n\n throttleLimit?: number,\n throttleSlotInterval?: number;\n throttleCallback?: (attempt: number, url: string) => Promise,\n\n skipFetchSetup?: boolean;\n fetchOptions?: Record;\n errorPassThrough?: boolean;\n\n timeout?: number,\n};\n\nexport interface OnceBlockable {\n once(eventName: \"block\", handler: () => void): void;\n}\n\nexport interface OncePollable {\n once(eventName: \"poll\", handler: () => void): void;\n}\n\nexport type PollOptions = {\n timeout?: number,\n floor?: number,\n ceiling?: number,\n interval?: number,\n retryLimit?: number,\n onceBlock?: OnceBlockable\n oncePoll?: OncePollable\n};\n\nexport type FetchJsonResponse = {\n statusCode: number;\n headers: { [ header: string ]: string };\n};\n\n\ntype Header = { key: string, value: string };\n\nfunction unpercent(value: string): Uint8Array {\n return toUtf8Bytes(value.replace(/%([0-9a-f][0-9a-f])/gi, (all, code) => {\n return String.fromCharCode(parseInt(code, 16));\n }));\n}\n\n// This API is still a work in progress; the future changes will likely be:\n// - ConnectionInfo => FetchDataRequest\n// - FetchDataRequest.body? = string | Uint8Array | { contentType: string, data: string | Uint8Array }\n// - If string => text/plain, Uint8Array => application/octet-stream (if content-type unspecified)\n// - FetchDataRequest.processFunc = (body: Uint8Array, response: FetchDataResponse) => T\n// For this reason, it should be considered internal until the API is finalized\nexport function _fetchData(connection: string | ConnectionInfo, body?: Uint8Array, processFunc?: (value: Uint8Array, response: FetchJsonResponse) => T): Promise {\n\n // How many times to retry in the event of a throttle\n const attemptLimit = (typeof(connection) === \"object\" && connection.throttleLimit != null) ? connection.throttleLimit: 12;\n logger.assertArgument((attemptLimit > 0 && (attemptLimit % 1) === 0),\n \"invalid connection throttle limit\", \"connection.throttleLimit\", attemptLimit);\n\n const throttleCallback = ((typeof(connection) === \"object\") ? connection.throttleCallback: null);\n const throttleSlotInterval = ((typeof(connection) === \"object\" && typeof(connection.throttleSlotInterval) === \"number\") ? connection.throttleSlotInterval: 100);\n logger.assertArgument((throttleSlotInterval > 0 && (throttleSlotInterval % 1) === 0),\n \"invalid connection throttle slot interval\", \"connection.throttleSlotInterval\", throttleSlotInterval);\n\n const errorPassThrough = ((typeof(connection) === \"object\") ? !!(connection.errorPassThrough): false);\n\n const headers: { [key: string]: Header } = { };\n\n let url: string = null;\n\n // @TODO: Allow ConnectionInfo to override some of these values\n const options: Options = {\n method: \"GET\",\n };\n\n let allow304 = false;\n\n let timeout = 2 * 60 * 1000;\n\n if (typeof(connection) === \"string\") {\n url = connection;\n\n } else if (typeof(connection) === \"object\") {\n if (connection == null || connection.url == null) {\n logger.throwArgumentError(\"missing URL\", \"connection.url\", connection);\n }\n\n url = connection.url;\n\n if (typeof(connection.timeout) === \"number\" && connection.timeout > 0) {\n timeout = connection.timeout;\n }\n\n if (connection.headers) {\n for (const key in connection.headers) {\n headers[key.toLowerCase()] = { key: key, value: String(connection.headers[key]) };\n if ([\"if-none-match\", \"if-modified-since\"].indexOf(key.toLowerCase()) >= 0) {\n allow304 = true;\n }\n }\n }\n\n options.allowGzip = !!connection.allowGzip;\n\n if (connection.user != null && connection.password != null) {\n if (url.substring(0, 6) !== \"https:\" && connection.allowInsecureAuthentication !== true) {\n logger.throwError(\n \"basic authentication requires a secure https url\",\n Logger.errors.INVALID_ARGUMENT,\n { argument: \"url\", url: url, user: connection.user, password: \"[REDACTED]\" }\n );\n }\n\n const authorization = connection.user + \":\" + connection.password;\n headers[\"authorization\"] = {\n key: \"Authorization\",\n value: \"Basic \" + base64Encode(toUtf8Bytes(authorization))\n };\n }\n\n if (connection.skipFetchSetup != null) {\n options.skipFetchSetup = !!connection.skipFetchSetup;\n }\n\n if (connection.fetchOptions != null) {\n options.fetchOptions = shallowCopy(connection.fetchOptions);\n }\n }\n\n const reData = new RegExp(\"^data:([^;:]*)?(;base64)?,(.*)$\", \"i\");\n const dataMatch = ((url) ? url.match(reData): null);\n if (dataMatch) {\n try {\n const response = {\n statusCode: 200,\n statusMessage: \"OK\",\n headers: { \"content-type\": (dataMatch[1] || \"text/plain\")},\n body: (dataMatch[2] ? base64Decode(dataMatch[3]): unpercent(dataMatch[3]))\n };\n\n let result: T = response.body;\n if (processFunc) {\n result = processFunc(response.body, response);\n }\n return Promise.resolve(result);\n\n } catch (error) {\n logger.throwError(\"processing response error\", Logger.errors.SERVER_ERROR, {\n body: bodyify(dataMatch[1], dataMatch[2]),\n error: error,\n requestBody: null,\n requestMethod: \"GET\",\n url: url\n });\n }\n }\n\n if (body) {\n options.method = \"POST\";\n options.body = body;\n if (headers[\"content-type\"] == null) {\n headers[\"content-type\"] = { key: \"Content-Type\", value: \"application/octet-stream\" };\n }\n if (headers[\"content-length\"] == null) {\n headers[\"content-length\"] = { key: \"Content-Length\", value: String(body.length) };\n }\n }\n\n const flatHeaders: { [ key: string ]: string } = { };\n Object.keys(headers).forEach((key) => {\n const header = headers[key];\n flatHeaders[header.key] = header.value;\n });\n options.headers = flatHeaders;\n\n const runningTimeout = (function() {\n let timer: NodeJS.Timer = null;\n const promise: Promise = new Promise(function(resolve, reject) {\n if (timeout) {\n timer = setTimeout(() => {\n if (timer == null) { return; }\n timer = null;\n\n reject(logger.makeError(\"timeout\", Logger.errors.TIMEOUT, {\n requestBody: bodyify(options.body, flatHeaders[\"content-type\"]),\n requestMethod: options.method,\n timeout: timeout,\n url: url\n }));\n }, timeout);\n }\n });\n\n const cancel = function() {\n if (timer == null) { return; }\n clearTimeout(timer);\n timer = null;\n }\n\n return { promise, cancel };\n })();\n\n const runningFetch = (async function() {\n\n for (let attempt = 0; attempt < attemptLimit; attempt++) {\n let response: GetUrlResponse = null;\n\n try {\n response = await getUrl(url, options);\n\n if (attempt < attemptLimit) {\n if (response.statusCode === 301 || response.statusCode === 302) {\n // Redirection; for now we only support absolute locataions\n const location = response.headers.location || \"\";\n if (options.method === \"GET\" && location.match(/^https:/)) {\n url = response.headers.location;\n continue;\n }\n\n } else if (response.statusCode === 429) {\n // Exponential back-off throttling\n let tryAgain = true;\n if (throttleCallback) {\n tryAgain = await throttleCallback(attempt, url);\n }\n\n if (tryAgain) {\n let stall = 0;\n\n const retryAfter = response.headers[\"retry-after\"];\n if (typeof(retryAfter) === \"string\" && retryAfter.match(/^[1-9][0-9]*$/)) {\n stall = parseInt(retryAfter) * 1000;\n } else {\n stall = throttleSlotInterval * parseInt(String(Math.random() * Math.pow(2, attempt)));\n }\n\n //console.log(\"Stalling 429\");\n await staller(stall);\n continue;\n }\n }\n }\n\n } catch (error) {\n response = (error).response;\n if (response == null) {\n runningTimeout.cancel();\n logger.throwError(\"missing response\", Logger.errors.SERVER_ERROR, {\n requestBody: bodyify(options.body, flatHeaders[\"content-type\"]),\n requestMethod: options.method,\n serverError: error,\n url: url\n });\n }\n }\n\n\n let body = response.body;\n\n if (allow304 && response.statusCode === 304) {\n body = null;\n } else if (!errorPassThrough && (response.statusCode < 200 || response.statusCode >= 300)) {\n runningTimeout.cancel();\n logger.throwError(\"bad response\", Logger.errors.SERVER_ERROR, {\n status: response.statusCode,\n headers: response.headers,\n body: bodyify(body, ((response.headers) ? response.headers[\"content-type\"]: null)),\n requestBody: bodyify(options.body, flatHeaders[\"content-type\"]),\n requestMethod: options.method,\n url: url\n });\n }\n\n if (processFunc) {\n try {\n const result = await processFunc(body, response);\n runningTimeout.cancel();\n return result;\n\n } catch (error) {\n // Allow the processFunc to trigger a throttle\n if (error.throttleRetry && attempt < attemptLimit) {\n let tryAgain = true;\n if (throttleCallback) {\n tryAgain = await throttleCallback(attempt, url);\n }\n\n if (tryAgain) {\n const timeout = throttleSlotInterval * parseInt(String(Math.random() * Math.pow(2, attempt)));\n //console.log(\"Stalling callback\");\n await staller(timeout);\n continue;\n }\n }\n\n runningTimeout.cancel();\n logger.throwError(\"processing response error\", Logger.errors.SERVER_ERROR, {\n body: bodyify(body, ((response.headers) ? response.headers[\"content-type\"]: null)),\n error: error,\n requestBody: bodyify(options.body, flatHeaders[\"content-type\"]),\n requestMethod: options.method,\n url: url\n });\n }\n }\n\n runningTimeout.cancel();\n\n // If we had a processFunc, it either returned a T or threw above.\n // The \"body\" is now a Uint8Array.\n return (body);\n }\n\n return logger.throwError(\"failed response\", Logger.errors.SERVER_ERROR, {\n requestBody: bodyify(options.body, flatHeaders[\"content-type\"]),\n requestMethod: options.method,\n url: url\n });\n })();\n\n return Promise.race([ runningTimeout.promise, runningFetch ]);\n}\n\nexport function fetchJson(connection: string | ConnectionInfo, json?: string, processFunc?: (value: any, response: FetchJsonResponse) => any): Promise {\n let processJsonFunc = (value: Uint8Array, response: FetchJsonResponse) => {\n let result: any = null;\n if (value != null) {\n try {\n result = JSON.parse(toUtf8String(value));\n } catch (error) {\n logger.throwError(\"invalid JSON\", Logger.errors.SERVER_ERROR, {\n body: value,\n error: error\n });\n }\n }\n\n if (processFunc) {\n result = processFunc(result, response);\n }\n\n return result;\n }\n\n // If we have json to send, we must\n // - add content-type of application/json (unless already overridden)\n // - convert the json to bytes\n let body: Uint8Array = null;\n if (json != null) {\n body = toUtf8Bytes(json);\n\n // Create a connection with the content-type set for JSON\n const updated: ConnectionInfo = (typeof(connection) === \"string\") ? ({ url: connection }): shallowCopy(connection);\n if (updated.headers) {\n const hasContentType = (Object.keys(updated.headers).filter((k) => (k.toLowerCase() === \"content-type\")).length) !== 0;\n if (!hasContentType) {\n updated.headers = shallowCopy(updated.headers);\n updated.headers[\"content-type\"] = \"application/json\";\n }\n } else {\n updated.headers = { \"content-type\": \"application/json\" };\n }\n connection = updated;\n }\n\n return _fetchData(connection, body, processJsonFunc);\n}\n\nexport function poll(func: () => Promise, options?: PollOptions): Promise {\n if (!options) { options = {}; }\n options = shallowCopy(options);\n if (options.floor == null) { options.floor = 0; }\n if (options.ceiling == null) { options.ceiling = 10000; }\n if (options.interval == null) { options.interval = 250; }\n\n return new Promise(function(resolve, reject) {\n\n let timer: NodeJS.Timer = null;\n let done: boolean = false;\n\n // Returns true if cancel was successful. Unsuccessful cancel means we're already done.\n const cancel = (): boolean => {\n if (done) { return false; }\n done = true;\n if (timer) { clearTimeout(timer); }\n return true;\n };\n\n if (options.timeout) {\n timer = setTimeout(() => {\n if (cancel()) { reject(new Error(\"timeout\")); }\n }, options.timeout)\n }\n\n const retryLimit = options.retryLimit;\n\n let attempt = 0;\n function check() {\n return func().then(function(result) {\n\n // If we have a result, or are allowed null then we're done\n if (result !== undefined) {\n if (cancel()) { resolve(result); }\n\n } else if (options.oncePoll) {\n options.oncePoll.once(\"poll\", check);\n\n } else if (options.onceBlock) {\n options.onceBlock.once(\"block\", check);\n\n // Otherwise, exponential back-off (up to 10s) our next request\n } else if (!done) {\n attempt++;\n if (attempt > retryLimit) {\n if (cancel()) { reject(new Error(\"retry limit reached\")); }\n return;\n }\n\n let timeout = options.interval * parseInt(String(Math.random() * Math.pow(2, attempt)));\n if (timeout < options.floor) { timeout = options.floor; }\n if (timeout > options.ceiling) { timeout = options.ceiling; }\n\n setTimeout(check, timeout);\n }\n\n return null;\n }, function(error) {\n if (cancel()) { reject(error); }\n });\n }\n check();\n });\n}\n\n", "'use strict'\nvar ALPHABET = 'qpzry9x8gf2tvdw0s3jn54khce6mua7l'\n\n// pre-compute lookup table\nvar ALPHABET_MAP = {}\nfor (var z = 0; z < ALPHABET.length; z++) {\n var x = ALPHABET.charAt(z)\n\n if (ALPHABET_MAP[x] !== undefined) throw new TypeError(x + ' is ambiguous')\n ALPHABET_MAP[x] = z\n}\n\nfunction polymodStep (pre) {\n var b = pre >> 25\n return ((pre & 0x1FFFFFF) << 5) ^\n (-((b >> 0) & 1) & 0x3b6a57b2) ^\n (-((b >> 1) & 1) & 0x26508e6d) ^\n (-((b >> 2) & 1) & 0x1ea119fa) ^\n (-((b >> 3) & 1) & 0x3d4233dd) ^\n (-((b >> 4) & 1) & 0x2a1462b3)\n}\n\nfunction prefixChk (prefix) {\n var chk = 1\n for (var i = 0; i < prefix.length; ++i) {\n var c = prefix.charCodeAt(i)\n if (c < 33 || c > 126) return 'Invalid prefix (' + prefix + ')'\n\n chk = polymodStep(chk) ^ (c >> 5)\n }\n chk = polymodStep(chk)\n\n for (i = 0; i < prefix.length; ++i) {\n var v = prefix.charCodeAt(i)\n chk = polymodStep(chk) ^ (v & 0x1f)\n }\n return chk\n}\n\nfunction encode (prefix, words, LIMIT) {\n LIMIT = LIMIT || 90\n if ((prefix.length + 7 + words.length) > LIMIT) throw new TypeError('Exceeds length limit')\n\n prefix = prefix.toLowerCase()\n\n // determine chk mod\n var chk = prefixChk(prefix)\n if (typeof chk === 'string') throw new Error(chk)\n\n var result = prefix + '1'\n for (var i = 0; i < words.length; ++i) {\n var x = words[i]\n if ((x >> 5) !== 0) throw new Error('Non 5-bit word')\n\n chk = polymodStep(chk) ^ x\n result += ALPHABET.charAt(x)\n }\n\n for (i = 0; i < 6; ++i) {\n chk = polymodStep(chk)\n }\n chk ^= 1\n\n for (i = 0; i < 6; ++i) {\n var v = (chk >> ((5 - i) * 5)) & 0x1f\n result += ALPHABET.charAt(v)\n }\n\n return result\n}\n\nfunction __decode (str, LIMIT) {\n LIMIT = LIMIT || 90\n if (str.length < 8) return str + ' too short'\n if (str.length > LIMIT) return 'Exceeds length limit'\n\n // don't allow mixed case\n var lowered = str.toLowerCase()\n var uppered = str.toUpperCase()\n if (str !== lowered && str !== uppered) return 'Mixed-case string ' + str\n str = lowered\n\n var split = str.lastIndexOf('1')\n if (split === -1) return 'No separator character for ' + str\n if (split === 0) return 'Missing prefix for ' + str\n\n var prefix = str.slice(0, split)\n var wordChars = str.slice(split + 1)\n if (wordChars.length < 6) return 'Data too short'\n\n var chk = prefixChk(prefix)\n if (typeof chk === 'string') return chk\n\n var words = []\n for (var i = 0; i < wordChars.length; ++i) {\n var c = wordChars.charAt(i)\n var v = ALPHABET_MAP[c]\n if (v === undefined) return 'Unknown character ' + c\n chk = polymodStep(chk) ^ v\n\n // not in the checksum?\n if (i + 6 >= wordChars.length) continue\n words.push(v)\n }\n\n if (chk !== 1) return 'Invalid checksum for ' + str\n return { prefix: prefix, words: words }\n}\n\nfunction decodeUnsafe () {\n var res = __decode.apply(null, arguments)\n if (typeof res === 'object') return res\n}\n\nfunction decode (str) {\n var res = __decode.apply(null, arguments)\n if (typeof res === 'object') return res\n\n throw new Error(res)\n}\n\nfunction convert (data, inBits, outBits, pad) {\n var value = 0\n var bits = 0\n var maxV = (1 << outBits) - 1\n\n var result = []\n for (var i = 0; i < data.length; ++i) {\n value = (value << inBits) | data[i]\n bits += inBits\n\n while (bits >= outBits) {\n bits -= outBits\n result.push((value >> bits) & maxV)\n }\n }\n\n if (pad) {\n if (bits > 0) {\n result.push((value << (outBits - bits)) & maxV)\n }\n } else {\n if (bits >= inBits) return 'Excess padding'\n if ((value << (outBits - bits)) & maxV) return 'Non-zero padding'\n }\n\n return result\n}\n\nfunction toWordsUnsafe (bytes) {\n var res = convert(bytes, 8, 5, true)\n if (Array.isArray(res)) return res\n}\n\nfunction toWords (bytes) {\n var res = convert(bytes, 8, 5, true)\n if (Array.isArray(res)) return res\n\n throw new Error(res)\n}\n\nfunction fromWordsUnsafe (words) {\n var res = convert(words, 5, 8, false)\n if (Array.isArray(res)) return res\n}\n\nfunction fromWords (words) {\n var res = convert(words, 5, 8, false)\n if (Array.isArray(res)) return res\n\n throw new Error(res)\n}\n\nmodule.exports = {\n decodeUnsafe: decodeUnsafe,\n decode: decode,\n encode: encode,\n toWordsUnsafe: toWordsUnsafe,\n toWords: toWords,\n fromWordsUnsafe: fromWordsUnsafe,\n fromWords: fromWords\n}\n", "export const version = \"providers/5.7.2\";\n", "\"use strict\";\n\nimport { Block, TransactionReceipt, TransactionResponse } from \"@ethersproject/abstract-provider\";\nimport { getAddress, getContractAddress } from \"@ethersproject/address\";\nimport { BigNumber } from \"@ethersproject/bignumber\";\nimport { hexDataLength, hexDataSlice, hexValue, hexZeroPad, isHexString } from \"@ethersproject/bytes\";\nimport { AddressZero } from \"@ethersproject/constants\";\nimport { shallowCopy } from \"@ethersproject/properties\";\nimport { AccessList, accessListify, parse as parseTransaction } from \"@ethersproject/transactions\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\nexport type FormatFunc = (value: any) => any;\n\nexport type FormatFuncs = { [ key: string ]: FormatFunc };\n\nexport type Formats = {\n transaction: FormatFuncs,\n transactionRequest: FormatFuncs,\n receipt: FormatFuncs,\n receiptLog: FormatFuncs,\n block: FormatFuncs,\n blockWithTransactions: FormatFuncs,\n filter: FormatFuncs,\n filterLog: FormatFuncs,\n};\n\nexport class Formatter {\n readonly formats: Formats;\n\n constructor() {\n this.formats = this.getDefaultFormats();\n }\n\n getDefaultFormats(): Formats {\n const formats: Formats = ({ });\n\n const address = this.address.bind(this);\n const bigNumber = this.bigNumber.bind(this);\n const blockTag = this.blockTag.bind(this);\n const data = this.data.bind(this);\n const hash = this.hash.bind(this);\n const hex = this.hex.bind(this);\n const number = this.number.bind(this);\n const type = this.type.bind(this);\n\n const strictData = (v: any) => { return this.data(v, true); };\n\n formats.transaction = {\n hash: hash,\n\n type: type,\n accessList: Formatter.allowNull(this.accessList.bind(this), null),\n\n blockHash: Formatter.allowNull(hash, null),\n blockNumber: Formatter.allowNull(number, null),\n transactionIndex: Formatter.allowNull(number, null),\n\n confirmations: Formatter.allowNull(number, null),\n\n from: address,\n\n // either (gasPrice) or (maxPriorityFeePerGas + maxFeePerGas)\n // must be set\n gasPrice: Formatter.allowNull(bigNumber),\n maxPriorityFeePerGas: Formatter.allowNull(bigNumber),\n maxFeePerGas: Formatter.allowNull(bigNumber),\n\n gasLimit: bigNumber,\n to: Formatter.allowNull(address, null),\n value: bigNumber,\n nonce: number,\n data: data,\n\n r: Formatter.allowNull(this.uint256),\n s: Formatter.allowNull(this.uint256),\n v: Formatter.allowNull(number),\n\n creates: Formatter.allowNull(address, null),\n\n raw: Formatter.allowNull(data),\n };\n\n formats.transactionRequest = {\n from: Formatter.allowNull(address),\n nonce: Formatter.allowNull(number),\n gasLimit: Formatter.allowNull(bigNumber),\n gasPrice: Formatter.allowNull(bigNumber),\n maxPriorityFeePerGas: Formatter.allowNull(bigNumber),\n maxFeePerGas: Formatter.allowNull(bigNumber),\n to: Formatter.allowNull(address),\n value: Formatter.allowNull(bigNumber),\n data: Formatter.allowNull(strictData),\n type: Formatter.allowNull(number),\n accessList: Formatter.allowNull(this.accessList.bind(this), null),\n };\n\n formats.receiptLog = {\n transactionIndex: number,\n blockNumber: number,\n transactionHash: hash,\n address: address,\n topics: Formatter.arrayOf(hash),\n data: data,\n logIndex: number,\n blockHash: hash,\n };\n\n formats.receipt = {\n to: Formatter.allowNull(this.address, null),\n from: Formatter.allowNull(this.address, null),\n contractAddress: Formatter.allowNull(address, null),\n transactionIndex: number,\n // should be allowNull(hash), but broken-EIP-658 support is handled in receipt\n root: Formatter.allowNull(hex),\n gasUsed: bigNumber,\n logsBloom: Formatter.allowNull(data),// @TODO: should this be data?\n blockHash: hash,\n transactionHash: hash,\n logs: Formatter.arrayOf(this.receiptLog.bind(this)),\n blockNumber: number,\n confirmations: Formatter.allowNull(number, null),\n cumulativeGasUsed: bigNumber,\n effectiveGasPrice: Formatter.allowNull(bigNumber),\n status: Formatter.allowNull(number),\n type: type\n };\n\n formats.block = {\n hash: Formatter.allowNull(hash),\n parentHash: hash,\n number: number,\n\n timestamp: number,\n nonce: Formatter.allowNull(hex),\n difficulty: this.difficulty.bind(this),\n\n gasLimit: bigNumber,\n gasUsed: bigNumber,\n\n miner: Formatter.allowNull(address),\n extraData: data,\n\n transactions: Formatter.allowNull(Formatter.arrayOf(hash)),\n\n baseFeePerGas: Formatter.allowNull(bigNumber)\n };\n\n formats.blockWithTransactions = shallowCopy(formats.block);\n formats.blockWithTransactions.transactions = Formatter.allowNull(Formatter.arrayOf(this.transactionResponse.bind(this)));\n\n formats.filter = {\n fromBlock: Formatter.allowNull(blockTag, undefined),\n toBlock: Formatter.allowNull(blockTag, undefined),\n blockHash: Formatter.allowNull(hash, undefined),\n address: Formatter.allowNull(address, undefined),\n topics: Formatter.allowNull(this.topics.bind(this), undefined),\n };\n\n formats.filterLog = {\n blockNumber: Formatter.allowNull(number),\n blockHash: Formatter.allowNull(hash),\n transactionIndex: number,\n\n removed: Formatter.allowNull(this.boolean.bind(this)),\n\n address: address,\n data: Formatter.allowFalsish(data, \"0x\"),\n\n topics: Formatter.arrayOf(hash),\n\n transactionHash: hash,\n logIndex: number,\n };\n\n return formats;\n }\n\n accessList(accessList: Array): AccessList {\n return accessListify(accessList || []);\n }\n\n // Requires a BigNumberish that is within the IEEE754 safe integer range; returns a number\n // Strict! Used on input.\n number(number: any): number {\n if (number === \"0x\") { return 0; }\n return BigNumber.from(number).toNumber();\n }\n\n type(number: any): number {\n if (number === \"0x\" || number == null) { return 0; }\n return BigNumber.from(number).toNumber();\n }\n\n // Strict! Used on input.\n bigNumber(value: any): BigNumber {\n return BigNumber.from(value);\n }\n\n // Requires a boolean, \"true\" or \"false\"; returns a boolean\n boolean(value: any): boolean {\n if (typeof(value) === \"boolean\") { return value; }\n if (typeof(value) === \"string\") {\n value = value.toLowerCase();\n if (value === \"true\") { return true; }\n if (value === \"false\") { return false; }\n }\n throw new Error(\"invalid boolean - \" + value);\n }\n\n hex(value: any, strict?: boolean): string {\n if (typeof(value) === \"string\") {\n if (!strict && value.substring(0, 2) !== \"0x\") { value = \"0x\" + value; }\n if (isHexString(value)) {\n return value.toLowerCase();\n }\n }\n return logger.throwArgumentError(\"invalid hash\", \"value\", value);\n }\n\n data(value: any, strict?: boolean): string {\n const result = this.hex(value, strict);\n if ((result.length % 2) !== 0) {\n throw new Error(\"invalid data; odd-length - \" + value);\n }\n return result;\n }\n\n // Requires an address\n // Strict! Used on input.\n address(value: any): string {\n return getAddress(value);\n }\n\n callAddress(value: any): string {\n if (!isHexString(value, 32)) { return null; }\n const address = getAddress(hexDataSlice(value, 12));\n return (address === AddressZero) ? null: address;\n }\n\n contractAddress(value: any): string {\n return getContractAddress(value);\n }\n\n // Strict! Used on input.\n blockTag(blockTag: any): string {\n if (blockTag == null) { return \"latest\"; }\n\n if (blockTag === \"earliest\") { return \"0x0\"; }\n\n switch (blockTag) {\n case \"earliest\": return \"0x0\";\n case \"latest\": case \"pending\": case \"safe\": case \"finalized\":\n return blockTag;\n }\n\n if (typeof(blockTag) === \"number\" || isHexString(blockTag)) {\n return hexValue(blockTag);\n }\n\n throw new Error(\"invalid blockTag\");\n }\n\n // Requires a hash, optionally requires 0x prefix; returns prefixed lowercase hash.\n hash(value: any, strict?: boolean): string {\n const result = this.hex(value, strict);\n if (hexDataLength(result) !== 32) {\n return logger.throwArgumentError(\"invalid hash\", \"value\", value);\n }\n return result;\n }\n\n // Returns the difficulty as a number, or if too large (i.e. PoA network) null\n difficulty(value: any): number {\n if (value == null) { return null; }\n\n const v = BigNumber.from(value);\n\n try {\n return v.toNumber();\n } catch (error) { }\n\n return null;\n }\n\n uint256(value: any): string {\n if (!isHexString(value)) {\n throw new Error(\"invalid uint256\");\n }\n return hexZeroPad(value, 32);\n }\n\n _block(value: any, format: any): Block {\n if (value.author != null && value.miner == null) {\n value.miner = value.author;\n }\n // The difficulty may need to come from _difficulty in recursed blocks\n const difficulty = (value._difficulty != null) ? value._difficulty: value.difficulty;\n const result = Formatter.check(format, value);\n result._difficulty = ((difficulty == null) ? null: BigNumber.from(difficulty));\n return result;\n }\n\n block(value: any): Block {\n return this._block(value, this.formats.block);\n }\n\n blockWithTransactions(value: any): Block {\n return this._block(value, this.formats.blockWithTransactions);\n }\n\n // Strict! Used on input.\n transactionRequest(value: any): any {\n return Formatter.check(this.formats.transactionRequest, value);\n }\n\n transactionResponse(transaction: any): TransactionResponse {\n\n // Rename gas to gasLimit\n if (transaction.gas != null && transaction.gasLimit == null) {\n transaction.gasLimit = transaction.gas;\n }\n\n // Some clients (TestRPC) do strange things like return 0x0 for the\n // 0 address; correct this to be a real address\n if (transaction.to && BigNumber.from(transaction.to).isZero()) {\n transaction.to = \"0x0000000000000000000000000000000000000000\";\n }\n\n // Rename input to data\n if (transaction.input != null && transaction.data == null) {\n transaction.data = transaction.input;\n }\n\n // If to and creates are empty, populate the creates from the transaction\n if (transaction.to == null && transaction.creates == null) {\n transaction.creates = this.contractAddress(transaction);\n }\n\n if ((transaction.type === 1 || transaction.type === 2)&& transaction.accessList == null) {\n transaction.accessList = [ ];\n }\n\n const result: TransactionResponse = Formatter.check(this.formats.transaction, transaction);\n\n if (transaction.chainId != null) {\n let chainId = transaction.chainId;\n\n if (isHexString(chainId)) {\n chainId = BigNumber.from(chainId).toNumber();\n }\n\n result.chainId = chainId;\n\n } else {\n let chainId = transaction.networkId;\n\n // geth-etc returns chainId\n if (chainId == null && result.v == null) {\n chainId = transaction.chainId;\n }\n\n if (isHexString(chainId)) {\n chainId = BigNumber.from(chainId).toNumber();\n }\n\n if (typeof(chainId) !== \"number\" && result.v != null) {\n chainId = (result.v - 35) / 2;\n if (chainId < 0) { chainId = 0; }\n chainId = parseInt(chainId);\n }\n\n if (typeof(chainId) !== \"number\") { chainId = 0; }\n\n result.chainId = chainId;\n }\n\n // 0x0000... should actually be null\n if (result.blockHash && result.blockHash.replace(/0/g, \"\") === \"x\") {\n result.blockHash = null;\n }\n\n return result;\n }\n\n transaction(value: any): any {\n return parseTransaction(value);\n }\n\n receiptLog(value: any): any {\n return Formatter.check(this.formats.receiptLog, value);\n }\n\n receipt(value: any): TransactionReceipt {\n const result: TransactionReceipt = Formatter.check(this.formats.receipt, value);\n\n // RSK incorrectly implemented EIP-658, so we munge things a bit here for it\n if (result.root != null) {\n if (result.root.length <= 4) {\n // Could be 0x00, 0x0, 0x01 or 0x1\n const value = BigNumber.from(result.root).toNumber();\n if (value === 0 || value === 1) {\n // Make sure if both are specified, they match\n if (result.status != null && (result.status !== value)) {\n logger.throwArgumentError(\"alt-root-status/status mismatch\", \"value\", { root: result.root, status: result.status });\n }\n result.status = value;\n delete result.root;\n } else {\n logger.throwArgumentError(\"invalid alt-root-status\", \"value.root\", result.root);\n }\n } else if (result.root.length !== 66) {\n // Must be a valid bytes32\n logger.throwArgumentError(\"invalid root hash\", \"value.root\", result.root);\n }\n }\n\n if (result.status != null) {\n result.byzantium = true;\n }\n\n return result;\n }\n\n topics(value: any): any {\n if (Array.isArray(value)) {\n return value.map((v) => this.topics(v));\n\n } else if (value != null) {\n return this.hash(value, true);\n }\n\n return null;\n }\n\n filter(value: any): any {\n return Formatter.check(this.formats.filter, value);\n }\n\n filterLog(value: any): any {\n return Formatter.check(this.formats.filterLog, value);\n }\n\n static check(format: { [ name: string ]: FormatFunc }, object: any): any {\n const result: any = {};\n for (const key in format) {\n try {\n const value = format[key](object[key]);\n if (value !== undefined) { result[key] = value; }\n } catch (error) {\n error.checkKey = key;\n error.checkValue = object[key];\n throw error;\n }\n }\n return result;\n }\n\n // if value is null-ish, nullValue is returned\n static allowNull(format: FormatFunc, nullValue?: any): FormatFunc {\n return (function(value: any) {\n if (value == null) { return nullValue; }\n return format(value);\n });\n }\n\n // If value is false-ish, replaceValue is returned\n static allowFalsish(format: FormatFunc, replaceValue: any): FormatFunc {\n return (function(value: any) {\n if (!value) { return replaceValue; }\n return format(value);\n });\n }\n\n // Requires an Array satisfying check\n static arrayOf(format: FormatFunc): FormatFunc {\n return (function(array: any): Array {\n if (!Array.isArray(array)) { throw new Error(\"not an array\"); }\n\n const result: any = [];\n\n array.forEach(function(value) {\n result.push(format(value));\n });\n\n return result;\n });\n }\n}\n\nexport interface CommunityResourcable {\n isCommunityResource(): boolean;\n}\n\nexport function isCommunityResourcable(value: any): value is CommunityResourcable {\n return (value && typeof(value.isCommunityResource) === \"function\");\n}\n\nexport function isCommunityResource(value: any): boolean {\n return (isCommunityResourcable(value) && value.isCommunityResource());\n}\n\n// Show the throttle message only once\nlet throttleMessage = false;\nexport function showThrottleMessage() {\n if (throttleMessage) { return; }\n throttleMessage = true;\n\n console.log(\"========= NOTICE =========\")\n console.log(\"Request-Rate Exceeded (this message will not be repeated)\");\n console.log(\"\");\n console.log(\"The default API keys for each service are provided as a highly-throttled,\");\n console.log(\"community resource for low-traffic projects and early prototyping.\");\n console.log(\"\");\n console.log(\"While your application will continue to function, we highly recommended\");\n console.log(\"signing up for your own API keys to improve performance, increase your\");\n console.log(\"request rate/limit and enable other perks, such as metrics and advanced APIs.\");\n console.log(\"\");\n console.log(\"For more details: https:/\\/docs.ethers.io/api-keys/\");\n console.log(\"==========================\");\n}\n\n", "\"use strict\";\n\nimport {\n Block, BlockTag, BlockWithTransactions, EventType, Filter, FilterByBlockHash, ForkEvent,\n Listener, Log, Provider, TransactionReceipt, TransactionRequest, TransactionResponse\n} from \"@ethersproject/abstract-provider\";\nimport { encode as base64Encode } from \"@ethersproject/base64\";\nimport { Base58 } from \"@ethersproject/basex\";\nimport { BigNumber, BigNumberish } from \"@ethersproject/bignumber\";\nimport { arrayify, BytesLike, concat, hexConcat, hexDataLength, hexDataSlice, hexlify, hexValue, hexZeroPad, isHexString } from \"@ethersproject/bytes\";\nimport { HashZero } from \"@ethersproject/constants\";\nimport { dnsEncode, namehash } from \"@ethersproject/hash\";\nimport { getNetwork, Network, Networkish } from \"@ethersproject/networks\";\nimport { Deferrable, defineReadOnly, getStatic, resolveProperties } from \"@ethersproject/properties\";\nimport { Transaction } from \"@ethersproject/transactions\";\nimport { sha256 } from \"@ethersproject/sha2\";\nimport { toUtf8Bytes, toUtf8String } from \"@ethersproject/strings\";\nimport { fetchJson, poll } from \"@ethersproject/web\";\n\nimport bech32 from \"bech32\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\nimport { Formatter } from \"./formatter\";\n\nconst MAX_CCIP_REDIRECTS = 10;\n\n//////////////////////////////\n// Event Serializeing\n\nfunction checkTopic(topic: string): string {\n if (topic == null) { return \"null\"; }\n if (hexDataLength(topic) !== 32) {\n logger.throwArgumentError(\"invalid topic\", \"topic\", topic);\n }\n return topic.toLowerCase();\n}\n\nfunction serializeTopics(topics: Array>): string {\n // Remove trailing null AND-topics; they are redundant\n topics = topics.slice();\n while (topics.length > 0 && topics[topics.length - 1] == null) { topics.pop(); }\n\n return topics.map((topic) => {\n if (Array.isArray(topic)) {\n\n // Only track unique OR-topics\n const unique: { [ topic: string ]: boolean } = { }\n topic.forEach((topic) => {\n unique[checkTopic(topic)] = true;\n });\n\n // The order of OR-topics does not matter\n const sorted = Object.keys(unique);\n sorted.sort();\n\n return sorted.join(\"|\");\n\n } else {\n return checkTopic(topic);\n }\n }).join(\"&\");\n}\n\nfunction deserializeTopics(data: string): Array> {\n if (data === \"\") { return [ ]; }\n\n return data.split(/&/g).map((topic) => {\n if (topic === \"\") { return [ ]; }\n\n const comps = topic.split(\"|\").map((topic) => {\n return ((topic === \"null\") ? null: topic);\n });\n\n return ((comps.length === 1) ? comps[0]: comps);\n });\n}\n\nfunction getEventTag(eventName: EventType): string {\n if (typeof(eventName) === \"string\") {\n eventName = eventName.toLowerCase();\n\n if (hexDataLength(eventName) === 32) {\n return \"tx:\" + eventName;\n }\n\n if (eventName.indexOf(\":\") === -1) {\n return eventName;\n }\n\n } else if (Array.isArray(eventName)) {\n return \"filter:*:\" + serializeTopics(eventName);\n\n } else if (ForkEvent.isForkEvent(eventName)) {\n logger.warn(\"not implemented\");\n throw new Error(\"not implemented\");\n\n } else if (eventName && typeof(eventName) === \"object\") {\n return \"filter:\" + (eventName.address || \"*\") + \":\" + serializeTopics(eventName.topics || []);\n }\n\n throw new Error(\"invalid event - \" + eventName);\n}\n\n//////////////////////////////\n// Helper Object\n\nfunction getTime() {\n return (new Date()).getTime();\n}\n\nfunction stall(duration: number): Promise {\n return new Promise((resolve) => {\n setTimeout(resolve, duration);\n });\n}\n\n//////////////////////////////\n// Provider Object\n\n\n/**\n * EventType\n * - \"block\"\n * - \"poll\"\n * - \"didPoll\"\n * - \"pending\"\n * - \"error\"\n * - \"network\"\n * - filter\n * - topics array\n * - transaction hash\n */\n\nconst PollableEvents = [ \"block\", \"network\", \"pending\", \"poll\" ];\n\nexport class Event {\n readonly listener: Listener;\n readonly once: boolean;\n readonly tag: string;\n\n _lastBlockNumber: number\n _inflight: boolean;\n\n constructor(tag: string, listener: Listener, once: boolean) {\n defineReadOnly(this, \"tag\", tag);\n defineReadOnly(this, \"listener\", listener);\n defineReadOnly(this, \"once\", once);\n\n this._lastBlockNumber = -2;\n this._inflight = false;\n }\n\n get event(): EventType {\n switch (this.type) {\n case \"tx\":\n return this.hash;\n case \"filter\":\n return this.filter;\n }\n return this.tag;\n }\n\n get type(): string {\n return this.tag.split(\":\")[0]\n }\n\n get hash(): string {\n const comps = this.tag.split(\":\");\n if (comps[0] !== \"tx\") { return null; }\n return comps[1];\n }\n\n get filter(): Filter {\n const comps = this.tag.split(\":\");\n if (comps[0] !== \"filter\") { return null; }\n const address = comps[1];\n\n const topics = deserializeTopics(comps[2]);\n const filter: Filter = { };\n\n if (topics.length > 0) { filter.topics = topics; }\n if (address && address !== \"*\") { filter.address = address; }\n\n return filter;\n }\n\n pollable(): boolean {\n return (this.tag.indexOf(\":\") >= 0 || PollableEvents.indexOf(this.tag) >= 0);\n }\n}\n\nexport interface EnsResolver {\n\n // Name this Resolver is associated with\n readonly name: string;\n\n // The address of the resolver\n readonly address: string;\n\n // Multichain address resolution (also normal address resolution)\n // See: https://eips.ethereum.org/EIPS/eip-2304\n getAddress(coinType?: 60): Promise\n\n // Contenthash field\n // See: https://eips.ethereum.org/EIPS/eip-1577\n getContentHash(): Promise;\n\n // Storage of text records\n // See: https://eips.ethereum.org/EIPS/eip-634\n getText(key: string): Promise;\n};\n\nexport interface EnsProvider {\n resolveName(name: string): Promise;\n lookupAddress(address: string): Promise;\n getResolver(name: string): Promise;\n}\n\ntype CoinInfo = {\n symbol: string,\n ilk?: string, // General family\n prefix?: string, // Bech32 prefix\n p2pkh?: number, // Pay-to-Public-Key-Hash Version\n p2sh?: number, // Pay-to-Script-Hash Version\n};\n\n// https://github.com/satoshilabs/slips/blob/master/slip-0044.md\nconst coinInfos: { [ coinType: string ]: CoinInfo } = {\n \"0\": { symbol: \"btc\", p2pkh: 0x00, p2sh: 0x05, prefix: \"bc\" },\n \"2\": { symbol: \"ltc\", p2pkh: 0x30, p2sh: 0x32, prefix: \"ltc\" },\n \"3\": { symbol: \"doge\", p2pkh: 0x1e, p2sh: 0x16 },\n \"60\": { symbol: \"eth\", ilk: \"eth\" },\n \"61\": { symbol: \"etc\", ilk: \"eth\" },\n \"700\": { symbol: \"xdai\", ilk: \"eth\" },\n};\n\nfunction bytes32ify(value: number): string {\n return hexZeroPad(BigNumber.from(value).toHexString(), 32);\n}\n\n// Compute the Base58Check encoded data (checksum is first 4 bytes of sha256d)\nfunction base58Encode(data: Uint8Array): string {\n return Base58.encode(concat([ data, hexDataSlice(sha256(sha256(data)), 0, 4) ]));\n}\n\nexport interface Avatar {\n url: string;\n linkage: Array<{ type: string, content: string }>;\n}\n\nconst matcherIpfs = new RegExp(\"^(ipfs):/\\/(.*)$\", \"i\");\nconst matchers = [\n new RegExp(\"^(https):/\\/(.*)$\", \"i\"),\n new RegExp(\"^(data):(.*)$\", \"i\"),\n matcherIpfs,\n new RegExp(\"^eip155:[0-9]+/(erc[0-9]+):(.*)$\", \"i\"),\n];\n\nfunction _parseString(result: string, start: number): null | string {\n try {\n return toUtf8String(_parseBytes(result, start));\n } catch(error) { }\n return null;\n}\n\nfunction _parseBytes(result: string, start: number): null | string {\n if (result === \"0x\") { return null; }\n\n const offset = BigNumber.from(hexDataSlice(result, start, start + 32)).toNumber();\n const length = BigNumber.from(hexDataSlice(result, offset, offset + 32)).toNumber();\n\n return hexDataSlice(result, offset + 32, offset + 32 + length);\n}\n\n// Trim off the ipfs:// prefix and return the default gateway URL\nfunction getIpfsLink(link: string): string {\n if (link.match(/^ipfs:\\/\\/ipfs\\//i)) {\n link = link.substring(12);\n } else if (link.match(/^ipfs:\\/\\//i)) {\n link = link.substring(7);\n } else {\n logger.throwArgumentError(\"unsupported IPFS format\", \"link\", link);\n }\n\n return `https:/\\/gateway.ipfs.io/ipfs/${ link }`;\n}\n\nfunction numPad(value: number): Uint8Array {\n const result = arrayify(value);\n if (result.length > 32) { throw new Error(\"internal; should not happen\"); }\n\n const padded = new Uint8Array(32);\n padded.set(result, 32 - result.length);\n return padded;\n}\n\nfunction bytesPad(value: Uint8Array): Uint8Array {\n if ((value.length % 32) === 0) { return value; }\n\n const result = new Uint8Array(Math.ceil(value.length / 32) * 32);\n result.set(value);\n return result;\n}\n\n// ABI Encodes a series of (bytes, bytes, ...)\nfunction encodeBytes(datas: Array) {\n const result: Array = [ ];\n\n let byteCount = 0;\n\n // Add place-holders for pointers as we add items\n for (let i = 0; i < datas.length; i++) {\n result.push(null);\n byteCount += 32;\n }\n\n for (let i = 0; i < datas.length; i++) {\n const data = arrayify(datas[i]);\n\n // Update the bytes offset\n result[i] = numPad(byteCount);\n\n // The length and padded value of data\n result.push(numPad(data.length));\n result.push(bytesPad(data));\n byteCount += 32 + Math.ceil(data.length / 32) * 32;\n }\n\n return hexConcat(result);\n}\n\nexport class Resolver implements EnsResolver {\n readonly provider: BaseProvider;\n\n readonly name: string;\n readonly address: string;\n\n readonly _resolvedAddress: null | string;\n\n // For EIP-2544 names, the ancestor that provided the resolver\n _supportsEip2544: null | Promise;\n\n // The resolvedAddress is only for creating a ReverseLookup resolver\n constructor(provider: BaseProvider, address: string, name: string, resolvedAddress?: string) {\n defineReadOnly(this, \"provider\", provider);\n defineReadOnly(this, \"name\", name);\n defineReadOnly(this, \"address\", provider.formatter.address(address));\n defineReadOnly(this, \"_resolvedAddress\", resolvedAddress);\n }\n\n supportsWildcard(): Promise {\n if (!this._supportsEip2544) {\n // supportsInterface(bytes4 = selector(\"resolve(bytes,bytes)\"))\n this._supportsEip2544 = this.provider.call({\n to: this.address,\n data: \"0x01ffc9a79061b92300000000000000000000000000000000000000000000000000000000\"\n }).then((result) => {\n return BigNumber.from(result).eq(1);\n }).catch((error) => {\n if (error.code === Logger.errors.CALL_EXCEPTION) { return false; }\n // Rethrow the error: link is down, etc. Let future attempts retry.\n this._supportsEip2544 = null;\n throw error;\n });\n }\n\n return this._supportsEip2544;\n }\n\n async _fetch(selector: string, parameters?: string): Promise {\n\n // e.g. keccak256(\"addr(bytes32,uint256)\")\n const tx = {\n to: this.address,\n ccipReadEnabled: true,\n data: hexConcat([ selector, namehash(this.name), (parameters || \"0x\") ])\n };\n\n // Wildcard support; use EIP-2544 to resolve the request\n let parseBytes = false;\n if (await this.supportsWildcard()) {\n parseBytes = true;\n\n // selector(\"resolve(bytes,bytes)\")\n tx.data = hexConcat([ \"0x9061b923\", encodeBytes([ dnsEncode(this.name), tx.data ]) ]);\n }\n\n try {\n let result = await this.provider.call(tx);\n if ((arrayify(result).length % 32) === 4) {\n logger.throwError(\"resolver threw error\", Logger.errors.CALL_EXCEPTION, {\n transaction: tx, data: result\n });\n }\n if (parseBytes) { result = _parseBytes(result, 0); }\n return result;\n } catch (error) {\n if (error.code === Logger.errors.CALL_EXCEPTION) { return null; }\n throw error;\n }\n }\n\n async _fetchBytes(selector: string, parameters?: string): Promise {\n const result = await this._fetch(selector, parameters);\n if (result != null) { return _parseBytes(result, 0); }\n return null;\n }\n\n _getAddress(coinType: number, hexBytes: string): string {\n const coinInfo = coinInfos[String(coinType)];\n\n if (coinInfo == null) {\n logger.throwError(`unsupported coin type: ${ coinType }`, Logger.errors.UNSUPPORTED_OPERATION, {\n operation: `getAddress(${ coinType })`\n });\n }\n\n if (coinInfo.ilk === \"eth\") {\n return this.provider.formatter.address(hexBytes);\n }\n\n const bytes = arrayify(hexBytes);\n\n // P2PKH: OP_DUP OP_HASH160 OP_EQUALVERIFY OP_CHECKSIG\n if (coinInfo.p2pkh != null) {\n const p2pkh = hexBytes.match(/^0x76a9([0-9a-f][0-9a-f])([0-9a-f]*)88ac$/);\n if (p2pkh) {\n const length = parseInt(p2pkh[1], 16);\n if (p2pkh[2].length === length * 2 && length >= 1 && length <= 75) {\n return base58Encode(concat([ [ coinInfo.p2pkh ], (\"0x\" + p2pkh[2]) ]));\n }\n }\n }\n\n // P2SH: OP_HASH160 OP_EQUAL\n if (coinInfo.p2sh != null) {\n const p2sh = hexBytes.match(/^0xa9([0-9a-f][0-9a-f])([0-9a-f]*)87$/);\n if (p2sh) {\n const length = parseInt(p2sh[1], 16);\n if (p2sh[2].length === length * 2 && length >= 1 && length <= 75) {\n return base58Encode(concat([ [ coinInfo.p2sh ], (\"0x\" + p2sh[2]) ]));\n }\n }\n }\n\n // Bech32\n if (coinInfo.prefix != null) {\n const length = bytes[1];\n\n // https://github.com/bitcoin/bips/blob/master/bip-0141.mediawiki#witness-program\n let version = bytes[0];\n if (version === 0x00) {\n if (length !== 20 && length !== 32) {\n version = -1;\n }\n } else {\n version = -1;\n }\n\n if (version >= 0 && bytes.length === 2 + length && length >= 1 && length <= 75) {\n const words = bech32.toWords(bytes.slice(2));\n words.unshift(version);\n return bech32.encode(coinInfo.prefix, words);\n }\n }\n\n return null;\n }\n\n\n async getAddress(coinType?: number): Promise {\n if (coinType == null) { coinType = 60; }\n\n // If Ethereum, use the standard `addr(bytes32)`\n if (coinType === 60) {\n try {\n // keccak256(\"addr(bytes32)\")\n const result = await this._fetch(\"0x3b3b57de\");\n\n // No address\n if (result === \"0x\" || result === HashZero) { return null; }\n\n return this.provider.formatter.callAddress(result);\n } catch (error) {\n if (error.code === Logger.errors.CALL_EXCEPTION) { return null; }\n throw error;\n }\n }\n\n // keccak256(\"addr(bytes32,uint256\")\n const hexBytes = await this._fetchBytes(\"0xf1cb7e06\", bytes32ify(coinType));\n\n // No address\n if (hexBytes == null || hexBytes === \"0x\") { return null; }\n\n // Compute the address\n const address = this._getAddress(coinType, hexBytes);\n\n if (address == null) {\n logger.throwError(`invalid or unsupported coin data`, Logger.errors.UNSUPPORTED_OPERATION, {\n operation: `getAddress(${ coinType })`,\n coinType: coinType,\n data: hexBytes\n });\n }\n\n return address;\n }\n\n async getAvatar(): Promise {\n const linkage: Array<{ type: string, content: string }> = [ { type: \"name\", content: this.name } ];\n try {\n // test data for ricmoo.eth\n //const avatar = \"eip155:1/erc721:0x265385c7f4132228A0d54EB1A9e7460b91c0cC68/29233\";\n const avatar = await this.getText(\"avatar\");\n if (avatar == null) { return null; }\n\n for (let i = 0; i < matchers.length; i++) {\n const match = avatar.match(matchers[i]);\n if (match == null) { continue; }\n\n const scheme = match[1].toLowerCase();\n\n switch (scheme) {\n case \"https\":\n linkage.push({ type: \"url\", content: avatar });\n return { linkage, url: avatar };\n\n case \"data\":\n linkage.push({ type: \"data\", content: avatar });\n return { linkage, url: avatar };\n\n case \"ipfs\":\n linkage.push({ type: \"ipfs\", content: avatar });\n return { linkage, url: getIpfsLink(avatar) };\n\n case \"erc721\":\n case \"erc1155\": {\n // Depending on the ERC type, use tokenURI(uint256) or url(uint256)\n const selector = (scheme === \"erc721\") ? \"0xc87b56dd\": \"0x0e89341c\";\n linkage.push({ type: scheme, content: avatar });\n\n // The owner of this name\n const owner = (this._resolvedAddress || await this.getAddress());\n\n const comps = (match[2] || \"\").split(\"/\");\n if (comps.length !== 2) { return null; }\n\n const addr = await this.provider.formatter.address(comps[0]);\n const tokenId = hexZeroPad(BigNumber.from(comps[1]).toHexString(), 32);\n\n // Check that this account owns the token\n if (scheme === \"erc721\") {\n // ownerOf(uint256 tokenId)\n const tokenOwner = this.provider.formatter.callAddress(await this.provider.call({\n to: addr, data: hexConcat([ \"0x6352211e\", tokenId ])\n }));\n if (owner !== tokenOwner) { return null; }\n linkage.push({ type: \"owner\", content: tokenOwner });\n\n } else if (scheme === \"erc1155\") {\n // balanceOf(address owner, uint256 tokenId)\n const balance = BigNumber.from(await this.provider.call({\n to: addr, data: hexConcat([ \"0x00fdd58e\", hexZeroPad(owner, 32), tokenId ])\n }));\n if (balance.isZero()) { return null; }\n linkage.push({ type: \"balance\", content: balance.toString() });\n }\n\n // Call the token contract for the metadata URL\n const tx = {\n to: this.provider.formatter.address(comps[0]),\n data: hexConcat([ selector, tokenId ])\n };\n\n let metadataUrl = _parseString(await this.provider.call(tx), 0);\n if (metadataUrl == null) { return null; }\n linkage.push({ type: \"metadata-url-base\", content: metadataUrl });\n\n // ERC-1155 allows a generic {id} in the URL\n if (scheme === \"erc1155\") {\n metadataUrl = metadataUrl.replace(\"{id}\", tokenId.substring(2));\n linkage.push({ type: \"metadata-url-expanded\", content: metadataUrl });\n }\n\n // Transform IPFS metadata links\n if (metadataUrl.match(/^ipfs:/i)) {\n metadataUrl = getIpfsLink(metadataUrl);\n }\n\n linkage.push({ type: \"metadata-url\", content: metadataUrl });\n\n // Get the token metadata\n const metadata = await fetchJson(metadataUrl);\n if (!metadata) { return null; }\n linkage.push({ type: \"metadata\", content: JSON.stringify(metadata) });\n\n // Pull the image URL out\n let imageUrl = metadata.image;\n if (typeof(imageUrl) !== \"string\") { return null; }\n\n if (imageUrl.match(/^(https:\\/\\/|data:)/i)) {\n // Allow\n } else {\n // Transform IPFS link to gateway\n const ipfs = imageUrl.match(matcherIpfs);\n if (ipfs == null) { return null; }\n\n linkage.push({ type: \"url-ipfs\", content: imageUrl });\n imageUrl = getIpfsLink(imageUrl);\n }\n\n linkage.push({ type: \"url\", content: imageUrl });\n\n return { linkage, url: imageUrl };\n }\n }\n }\n } catch (error) { }\n\n return null;\n }\n\n async getContentHash(): Promise {\n\n // keccak256(\"contenthash()\")\n const hexBytes = await this._fetchBytes(\"0xbc1c58d1\");\n\n // No contenthash\n if (hexBytes == null || hexBytes === \"0x\") { return null; }\n\n // IPFS (CID: 1, Type: DAG-PB)\n const ipfs = hexBytes.match(/^0xe3010170(([0-9a-f][0-9a-f])([0-9a-f][0-9a-f])([0-9a-f]*))$/);\n if (ipfs) {\n const length = parseInt(ipfs[3], 16);\n if (ipfs[4].length === length * 2) {\n return \"ipfs:/\\/\" + Base58.encode(\"0x\" + ipfs[1]);\n }\n }\n\n // IPNS (CID: 1, Type: libp2p-key)\n const ipns = hexBytes.match(/^0xe5010172(([0-9a-f][0-9a-f])([0-9a-f][0-9a-f])([0-9a-f]*))$/);\n if (ipns) {\n const length = parseInt(ipns[3], 16);\n if (ipns[4].length === length * 2) {\n return \"ipns:/\\/\" + Base58.encode(\"0x\" + ipns[1]);\n }\n }\n\n // Swarm (CID: 1, Type: swarm-manifest; hash/length hard-coded to keccak256/32)\n const swarm = hexBytes.match(/^0xe40101fa011b20([0-9a-f]*)$/)\n if (swarm) {\n if (swarm[1].length === (32 * 2)) {\n return \"bzz:/\\/\" + swarm[1]\n }\n }\n\n const skynet = hexBytes.match(/^0x90b2c605([0-9a-f]*)$/);\n if (skynet) {\n if (skynet[1].length === (34 * 2)) {\n // URL Safe base64; https://datatracker.ietf.org/doc/html/rfc4648#section-5\n const urlSafe: Record = { \"=\": \"\", \"+\": \"-\", \"/\": \"_\" };\n const hash = base64Encode(\"0x\" + skynet[1]).replace(/[=+\\/]/g, (a) => (urlSafe[a]));\n return \"sia:/\\/\" + hash;\n }\n }\n\n return logger.throwError(`invalid or unsupported content hash data`, Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"getContentHash()\",\n data: hexBytes\n });\n }\n\n async getText(key: string): Promise {\n\n // The key encoded as parameter to fetchBytes\n let keyBytes = toUtf8Bytes(key);\n\n // The nodehash consumes the first slot, so the string pointer targets\n // offset 64, with the length at offset 64 and data starting at offset 96\n keyBytes = concat([ bytes32ify(64), bytes32ify(keyBytes.length), keyBytes ]);\n\n // Pad to word-size (32 bytes)\n if ((keyBytes.length % 32) !== 0) {\n keyBytes = concat([ keyBytes, hexZeroPad(\"0x\", 32 - (key.length % 32)) ])\n }\n\n const hexBytes = await this._fetchBytes(\"0x59d1d43c\", hexlify(keyBytes));\n if (hexBytes == null || hexBytes === \"0x\") { return null; }\n\n return toUtf8String(hexBytes);\n }\n}\n\nlet defaultFormatter: Formatter = null;\n\nlet nextPollId = 1;\n\nexport class BaseProvider extends Provider implements EnsProvider {\n _networkPromise: Promise;\n _network: Network;\n\n _events: Array;\n\n formatter: Formatter;\n\n // To help mitigate the eventually consistent nature of the blockchain\n // we keep a mapping of events we emit. If we emit an event X, we expect\n // that a user should be able to query for that event in the callback,\n // if the node returns null, we stall the response until we get back a\n // meaningful value, since we may be hitting a re-org, or a node that\n // has not indexed the event yet.\n // Events:\n // - t:{hash} - Transaction hash\n // - b:{hash} - BlockHash\n // - block - The most recent emitted block\n _emitted: { [ eventName: string ]: number | \"pending\" };\n\n _pollingInterval: number;\n _poller: NodeJS.Timer;\n _bootstrapPoll: NodeJS.Timer;\n\n _lastBlockNumber: number;\n _maxFilterBlockRange: number;\n\n _fastBlockNumber: number;\n _fastBlockNumberPromise: Promise;\n _fastQueryDate: number;\n\n _maxInternalBlockNumber: number;\n _internalBlockNumber: Promise<{ blockNumber: number, reqTime: number, respTime: number }>;\n\n readonly anyNetwork: boolean;\n\n disableCcipRead: boolean;\n\n\n /**\n * ready\n *\n * A Promise that resolves only once the provider is ready.\n *\n * Sub-classes that call the super with a network without a chainId\n * MUST set this. Standard named networks have a known chainId.\n *\n */\n\n constructor(network: Networkish | Promise) {\n super();\n\n // Events being listened to\n this._events = [];\n\n this._emitted = { block: -2 };\n\n this.disableCcipRead = false;\n\n this.formatter = new.target.getFormatter();\n\n // If network is any, this Provider allows the underlying\n // network to change dynamically, and we auto-detect the\n // current network\n defineReadOnly(this, \"anyNetwork\", (network === \"any\"));\n if (this.anyNetwork) { network = this.detectNetwork(); }\n\n if (network instanceof Promise) {\n this._networkPromise = network;\n\n // Squash any \"unhandled promise\" errors; that do not need to be handled\n network.catch((error) => { });\n\n // Trigger initial network setting (async)\n this._ready().catch((error) => { });\n\n } else {\n const knownNetwork = getStatic<(network: Networkish) => Network>(new.target, \"getNetwork\")(network);\n if (knownNetwork) {\n defineReadOnly(this, \"_network\", knownNetwork);\n this.emit(\"network\", knownNetwork, null);\n\n } else {\n logger.throwArgumentError(\"invalid network\", \"network\", network);\n }\n }\n\n this._maxInternalBlockNumber = -1024;\n\n this._lastBlockNumber = -2;\n this._maxFilterBlockRange = 10;\n\n this._pollingInterval = 4000;\n\n this._fastQueryDate = 0;\n }\n\n async _ready(): Promise {\n if (this._network == null) {\n let network: Network = null;\n if (this._networkPromise) {\n try {\n network = await this._networkPromise;\n } catch (error) { }\n }\n\n // Try the Provider's network detection (this MUST throw if it cannot)\n if (network == null) {\n network = await this.detectNetwork();\n }\n\n // This should never happen; every Provider sub-class should have\n // suggested a network by here (or have thrown).\n if (!network) {\n logger.throwError(\"no network detected\", Logger.errors.UNKNOWN_ERROR, { });\n }\n\n // Possible this call stacked so do not call defineReadOnly again\n if (this._network == null) {\n if (this.anyNetwork) {\n this._network = network;\n } else {\n defineReadOnly(this, \"_network\", network);\n }\n this.emit(\"network\", network, null);\n }\n }\n\n return this._network;\n }\n\n // This will always return the most recently established network.\n // For \"any\", this can change (a \"network\" event is emitted before\n // any change is reflected); otherwise this cannot change\n get ready(): Promise {\n return poll(() => {\n return this._ready().then((network) => {\n return network;\n }, (error) => {\n // If the network isn't running yet, we will wait\n if (error.code === Logger.errors.NETWORK_ERROR && error.event === \"noNetwork\") {\n return undefined;\n }\n throw error;\n });\n });\n }\n\n // @TODO: Remove this and just create a singleton formatter\n static getFormatter(): Formatter {\n if (defaultFormatter == null) {\n defaultFormatter = new Formatter();\n }\n return defaultFormatter;\n }\n\n // @TODO: Remove this and just use getNetwork\n static getNetwork(network: Networkish): Network {\n return getNetwork((network == null) ? \"homestead\": network);\n }\n\n async ccipReadFetch(tx: Transaction, calldata: string, urls: Array): Promise {\n if (this.disableCcipRead || urls.length === 0) { return null; }\n\n const sender = tx.to.toLowerCase();\n const data = calldata.toLowerCase();\n\n const errorMessages: Array = [ ];\n\n for (let i = 0; i < urls.length; i++) {\n const url = urls[i];\n\n // URL expansion\n const href = url.replace(\"{sender}\", sender).replace(\"{data}\", data);\n\n // If no {data} is present, use POST; otherwise GET\n const json: string | null = (url.indexOf(\"{data}\") >= 0) ? null: JSON.stringify({ data, sender });\n\n const result = await fetchJson({ url: href, errorPassThrough: true }, json, (value, response) => {\n value.status = response.statusCode;\n return value;\n });\n\n if (result.data) { return result.data; }\n\n const errorMessage = (result.message || \"unknown error\");\n\n // 4xx indicates the result is not present; stop\n if (result.status >= 400 && result.status < 500) {\n return logger.throwError(`response not found during CCIP fetch: ${ errorMessage }`, Logger.errors.SERVER_ERROR, { url, errorMessage });\n }\n\n // 5xx indicates server issue; try the next url\n errorMessages.push(errorMessage);\n }\n\n return logger.throwError(`error encountered during CCIP fetch: ${ errorMessages.map((m) => JSON.stringify(m)).join(\", \") }`, Logger.errors.SERVER_ERROR, {\n urls, errorMessages\n });\n }\n\n // Fetches the blockNumber, but will reuse any result that is less\n // than maxAge old or has been requested since the last request\n async _getInternalBlockNumber(maxAge: number): Promise {\n await this._ready();\n\n // Allowing stale data up to maxAge old\n if (maxAge > 0) {\n\n // While there are pending internal block requests...\n while (this._internalBlockNumber) {\n\n // ...\"remember\" which fetch we started with\n const internalBlockNumber = this._internalBlockNumber;\n\n try {\n // Check the result is not too stale\n const result = await internalBlockNumber;\n if ((getTime() - result.respTime) <= maxAge) {\n return result.blockNumber;\n }\n\n // Too old; fetch a new value\n break;\n\n } catch(error) {\n\n // The fetch rejected; if we are the first to get the\n // rejection, drop through so we replace it with a new\n // fetch; all others blocked will then get that fetch\n // which won't match the one they \"remembered\" and loop\n if (this._internalBlockNumber === internalBlockNumber) {\n break;\n }\n }\n }\n }\n\n const reqTime = getTime();\n\n const checkInternalBlockNumber = resolveProperties({\n blockNumber: this.perform(\"getBlockNumber\", { }),\n networkError: this.getNetwork().then((network) => (null), (error) => (error))\n }).then(({ blockNumber, networkError }) => {\n if (networkError) {\n // Unremember this bad internal block number\n if (this._internalBlockNumber === checkInternalBlockNumber) {\n this._internalBlockNumber = null;\n }\n throw networkError;\n }\n\n const respTime = getTime();\n\n blockNumber = BigNumber.from(blockNumber).toNumber();\n if (blockNumber < this._maxInternalBlockNumber) { blockNumber = this._maxInternalBlockNumber; }\n\n this._maxInternalBlockNumber = blockNumber;\n this._setFastBlockNumber(blockNumber); // @TODO: Still need this?\n return { blockNumber, reqTime, respTime };\n });\n\n this._internalBlockNumber = checkInternalBlockNumber;\n\n // Swallow unhandled exceptions; if needed they are handled else where\n checkInternalBlockNumber.catch((error) => {\n // Don't null the dead (rejected) fetch, if it has already been updated\n if (this._internalBlockNumber === checkInternalBlockNumber) {\n this._internalBlockNumber = null;\n }\n });\n\n return (await checkInternalBlockNumber).blockNumber;\n }\n\n async poll(): Promise {\n const pollId = nextPollId++;\n\n // Track all running promises, so we can trigger a post-poll once they are complete\n const runners: Array> = [];\n\n let blockNumber: number = null;\n try {\n blockNumber = await this._getInternalBlockNumber(100 + this.pollingInterval / 2);\n } catch (error) {\n this.emit(\"error\", error);\n return;\n }\n this._setFastBlockNumber(blockNumber);\n\n // Emit a poll event after we have the latest (fast) block number\n this.emit(\"poll\", pollId, blockNumber);\n\n // If the block has not changed, meh.\n if (blockNumber === this._lastBlockNumber) {\n this.emit(\"didPoll\", pollId);\n return;\n }\n\n // First polling cycle, trigger a \"block\" events\n if (this._emitted.block === -2) {\n this._emitted.block = blockNumber - 1;\n }\n\n if (Math.abs(((this._emitted.block)) - blockNumber) > 1000) {\n logger.warn(`network block skew detected; skipping block events (emitted=${ this._emitted.block } blockNumber${ blockNumber })`);\n this.emit(\"error\", logger.makeError(\"network block skew detected\", Logger.errors.NETWORK_ERROR, {\n blockNumber: blockNumber,\n event: \"blockSkew\",\n previousBlockNumber: this._emitted.block\n }));\n this.emit(\"block\", blockNumber);\n\n } else {\n // Notify all listener for each block that has passed\n for (let i = (this._emitted.block) + 1; i <= blockNumber; i++) {\n this.emit(\"block\", i);\n }\n }\n\n // The emitted block was updated, check for obsolete events\n if ((this._emitted.block) !== blockNumber) {\n this._emitted.block = blockNumber;\n\n Object.keys(this._emitted).forEach((key) => {\n // The block event does not expire\n if (key === \"block\") { return; }\n\n // The block we were at when we emitted this event\n const eventBlockNumber = this._emitted[key];\n\n // We cannot garbage collect pending transactions or blocks here\n // They should be garbage collected by the Provider when setting\n // \"pending\" events\n if (eventBlockNumber === \"pending\") { return; }\n\n // Evict any transaction hashes or block hashes over 12 blocks\n // old, since they should not return null anyways\n if (blockNumber - eventBlockNumber > 12) {\n delete this._emitted[key];\n }\n });\n }\n\n // First polling cycle\n if (this._lastBlockNumber === -2) {\n this._lastBlockNumber = blockNumber - 1;\n }\n // Find all transaction hashes we are waiting on\n this._events.forEach((event) => {\n switch (event.type) {\n case \"tx\": {\n const hash = event.hash;\n let runner = this.getTransactionReceipt(hash).then((receipt) => {\n if (!receipt || receipt.blockNumber == null) { return null; }\n this._emitted[\"t:\" + hash] = receipt.blockNumber;\n this.emit(hash, receipt);\n return null;\n }).catch((error: Error) => { this.emit(\"error\", error); });\n\n runners.push(runner);\n\n break;\n }\n\n case \"filter\": {\n // We only allow a single getLogs to be in-flight at a time\n if (!event._inflight) {\n event._inflight = true;\n\n // This is the first filter for this event, so we want to\n // restrict events to events that happened no earlier than now\n if (event._lastBlockNumber === -2) {\n event._lastBlockNumber = blockNumber - 1;\n }\n\n // Filter from the last *known* event; due to load-balancing\n // and some nodes returning updated block numbers before\n // indexing events, a logs result with 0 entries cannot be\n // trusted and we must retry a range which includes it again\n const filter = event.filter;\n filter.fromBlock = event._lastBlockNumber + 1;\n filter.toBlock = blockNumber;\n\n // Prevent fitler ranges from growing too wild, since it is quite\n // likely there just haven't been any events to move the lastBlockNumber.\n const minFromBlock = filter.toBlock - this._maxFilterBlockRange;\n if (minFromBlock > filter.fromBlock) { filter.fromBlock = minFromBlock; }\n\n if (filter.fromBlock < 0) { filter.fromBlock = 0; }\n\n const runner = this.getLogs(filter).then((logs) => {\n // Allow the next getLogs\n event._inflight = false;\n\n if (logs.length === 0) { return; }\n\n logs.forEach((log: Log) => {\n // Only when we get an event for a given block number\n // can we trust the events are indexed\n if (log.blockNumber > event._lastBlockNumber) {\n event._lastBlockNumber = log.blockNumber;\n }\n\n // Make sure we stall requests to fetch blocks and txs\n this._emitted[\"b:\" + log.blockHash] = log.blockNumber;\n this._emitted[\"t:\" + log.transactionHash] = log.blockNumber;\n\n this.emit(filter, log);\n });\n }).catch((error: Error) => {\n this.emit(\"error\", error);\n\n // Allow another getLogs (the range was not updated)\n event._inflight = false;\n });\n runners.push(runner);\n }\n\n break;\n }\n }\n });\n\n this._lastBlockNumber = blockNumber;\n\n // Once all events for this loop have been processed, emit \"didPoll\"\n Promise.all(runners).then(() => {\n this.emit(\"didPoll\", pollId);\n }).catch((error) => { this.emit(\"error\", error); });\n\n return;\n }\n\n // Deprecated; do not use this\n resetEventsBlock(blockNumber: number): void {\n this._lastBlockNumber = blockNumber - 1;\n if (this.polling) { this.poll(); }\n }\n\n get network(): Network {\n return this._network;\n }\n\n // This method should query the network if the underlying network\n // can change, such as when connected to a JSON-RPC backend\n async detectNetwork(): Promise {\n return logger.throwError(\"provider does not support network detection\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"provider.detectNetwork\"\n });\n }\n\n async getNetwork(): Promise {\n const network = await this._ready();\n\n // Make sure we are still connected to the same network; this is\n // only an external call for backends which can have the underlying\n // network change spontaneously\n const currentNetwork = await this.detectNetwork();\n if (network.chainId !== currentNetwork.chainId) {\n\n // We are allowing network changes, things can get complex fast;\n // make sure you know what you are doing if you use \"any\"\n if (this.anyNetwork) {\n this._network = currentNetwork;\n\n // Reset all internal block number guards and caches\n this._lastBlockNumber = -2;\n this._fastBlockNumber = null;\n this._fastBlockNumberPromise = null;\n this._fastQueryDate = 0;\n this._emitted.block = -2;\n this._maxInternalBlockNumber = -1024;\n this._internalBlockNumber = null;\n\n // The \"network\" event MUST happen before this method resolves\n // so any events have a chance to unregister, so we stall an\n // additional event loop before returning from /this/ call\n this.emit(\"network\", currentNetwork, network);\n await stall(0);\n\n return this._network;\n }\n\n const error = logger.makeError(\"underlying network changed\", Logger.errors.NETWORK_ERROR, {\n event: \"changed\",\n network: network,\n detectedNetwork: currentNetwork\n });\n\n this.emit(\"error\", error);\n throw error;\n }\n\n return network;\n }\n\n get blockNumber(): number {\n this._getInternalBlockNumber(100 + this.pollingInterval / 2).then((blockNumber) => {\n this._setFastBlockNumber(blockNumber);\n }, (error) => { });\n\n return (this._fastBlockNumber != null) ? this._fastBlockNumber: -1;\n }\n\n get polling(): boolean {\n return (this._poller != null);\n }\n\n set polling(value: boolean) {\n if (value && !this._poller) {\n this._poller = setInterval(() => { this.poll(); }, this.pollingInterval);\n\n if (!this._bootstrapPoll) {\n this._bootstrapPoll = setTimeout(() => {\n this.poll();\n\n // We block additional polls until the polling interval\n // is done, to prevent overwhelming the poll function\n this._bootstrapPoll = setTimeout(() => {\n // If polling was disabled, something may require a poke\n // since starting the bootstrap poll and it was disabled\n if (!this._poller) { this.poll(); }\n\n // Clear out the bootstrap so we can do another\n this._bootstrapPoll = null;\n }, this.pollingInterval);\n }, 0);\n }\n\n } else if (!value && this._poller) {\n clearInterval(this._poller);\n this._poller = null;\n }\n }\n\n get pollingInterval(): number {\n return this._pollingInterval;\n }\n\n set pollingInterval(value: number) {\n if (typeof(value) !== \"number\" || value <= 0 || parseInt(String(value)) != value) {\n throw new Error(\"invalid polling interval\");\n }\n\n this._pollingInterval = value;\n\n if (this._poller) {\n clearInterval(this._poller);\n this._poller = setInterval(() => { this.poll(); }, this._pollingInterval);\n }\n }\n\n _getFastBlockNumber(): Promise {\n const now = getTime();\n\n // Stale block number, request a newer value\n if ((now - this._fastQueryDate) > 2 * this._pollingInterval) {\n this._fastQueryDate = now;\n this._fastBlockNumberPromise = this.getBlockNumber().then((blockNumber) => {\n if (this._fastBlockNumber == null || blockNumber > this._fastBlockNumber) {\n this._fastBlockNumber = blockNumber;\n }\n return this._fastBlockNumber;\n });\n }\n\n return this._fastBlockNumberPromise;\n }\n\n _setFastBlockNumber(blockNumber: number): void {\n // Older block, maybe a stale request\n if (this._fastBlockNumber != null && blockNumber < this._fastBlockNumber) { return; }\n\n // Update the time we updated the blocknumber\n this._fastQueryDate = getTime();\n\n // Newer block number, use it\n if (this._fastBlockNumber == null || blockNumber > this._fastBlockNumber) {\n this._fastBlockNumber = blockNumber;\n this._fastBlockNumberPromise = Promise.resolve(blockNumber);\n }\n }\n\n async waitForTransaction(transactionHash: string, confirmations?: number, timeout?: number): Promise {\n return this._waitForTransaction(transactionHash, (confirmations == null) ? 1: confirmations, timeout || 0, null);\n }\n\n async _waitForTransaction(transactionHash: string, confirmations: number, timeout: number, replaceable: { data: string, from: string, nonce: number, to: string, value: BigNumber, startBlock: number }): Promise {\n const receipt = await this.getTransactionReceipt(transactionHash);\n\n // Receipt is already good\n if ((receipt ? receipt.confirmations: 0) >= confirmations) { return receipt; }\n\n // Poll until the receipt is good...\n return new Promise((resolve, reject) => {\n const cancelFuncs: Array<() => void> = [];\n\n let done = false;\n const alreadyDone = function() {\n if (done) { return true; }\n done = true;\n cancelFuncs.forEach((func) => { func(); });\n return false;\n };\n\n const minedHandler = (receipt: TransactionReceipt) => {\n if (receipt.confirmations < confirmations) { return; }\n if (alreadyDone()) { return; }\n resolve(receipt);\n }\n this.on(transactionHash, minedHandler);\n cancelFuncs.push(() => { this.removeListener(transactionHash, minedHandler); });\n\n if (replaceable) {\n let lastBlockNumber = replaceable.startBlock;\n let scannedBlock: number = null;\n const replaceHandler = async (blockNumber: number) => {\n if (done) { return; }\n\n // Wait 1 second; this is only used in the case of a fault, so\n // we will trade off a little bit of latency for more consistent\n // results and fewer JSON-RPC calls\n await stall(1000);\n\n this.getTransactionCount(replaceable.from).then(async (nonce) => {\n if (done) { return; }\n\n if (nonce <= replaceable.nonce) {\n lastBlockNumber = blockNumber;\n\n } else {\n // First check if the transaction was mined\n {\n const mined = await this.getTransaction(transactionHash);\n if (mined && mined.blockNumber != null) { return; }\n }\n\n // First time scanning. We start a little earlier for some\n // wiggle room here to handle the eventually consistent nature\n // of blockchain (e.g. the getTransactionCount was for a\n // different block)\n if (scannedBlock == null) {\n scannedBlock = lastBlockNumber - 3;\n if (scannedBlock < replaceable.startBlock) {\n scannedBlock = replaceable.startBlock;\n }\n }\n\n while (scannedBlock <= blockNumber) {\n if (done) { return; }\n\n const block = await this.getBlockWithTransactions(scannedBlock);\n for (let ti = 0; ti < block.transactions.length; ti++) {\n const tx = block.transactions[ti];\n\n // Successfully mined!\n if (tx.hash === transactionHash) { return; }\n\n // Matches our transaction from and nonce; its a replacement\n if (tx.from === replaceable.from && tx.nonce === replaceable.nonce) {\n if (done) { return; }\n\n // Get the receipt of the replacement\n const receipt = await this.waitForTransaction(tx.hash, confirmations);\n\n // Already resolved or rejected (prolly a timeout)\n if (alreadyDone()) { return; }\n\n // The reason we were replaced\n let reason = \"replaced\";\n if (tx.data === replaceable.data && tx.to === replaceable.to && tx.value.eq(replaceable.value)) {\n reason = \"repriced\";\n } else if (tx.data === \"0x\" && tx.from === tx.to && tx.value.isZero()) {\n reason = \"cancelled\"\n }\n\n // Explain why we were replaced\n reject(logger.makeError(\"transaction was replaced\", Logger.errors.TRANSACTION_REPLACED, {\n cancelled: (reason === \"replaced\" || reason === \"cancelled\"),\n reason,\n replacement: this._wrapTransaction(tx),\n hash: transactionHash,\n receipt\n }));\n\n return;\n }\n }\n scannedBlock++;\n }\n }\n\n if (done) { return; }\n this.once(\"block\", replaceHandler);\n\n }, (error) => {\n if (done) { return; }\n this.once(\"block\", replaceHandler);\n });\n };\n\n if (done) { return; }\n this.once(\"block\", replaceHandler);\n\n cancelFuncs.push(() => {\n this.removeListener(\"block\", replaceHandler);\n });\n }\n\n if (typeof(timeout) === \"number\" && timeout > 0) {\n const timer = setTimeout(() => {\n if (alreadyDone()) { return; }\n reject(logger.makeError(\"timeout exceeded\", Logger.errors.TIMEOUT, { timeout: timeout }));\n }, timeout);\n if (timer.unref) { timer.unref(); }\n\n cancelFuncs.push(() => { clearTimeout(timer); });\n }\n });\n }\n\n async getBlockNumber(): Promise {\n return this._getInternalBlockNumber(0);\n }\n\n async getGasPrice(): Promise {\n await this.getNetwork();\n\n const result = await this.perform(\"getGasPrice\", { });\n try {\n return BigNumber.from(result);\n } catch (error) {\n return logger.throwError(\"bad result from backend\", Logger.errors.SERVER_ERROR, {\n method: \"getGasPrice\",\n result, error\n });\n }\n }\n\n async getBalance(addressOrName: string | Promise, blockTag?: BlockTag | Promise): Promise {\n await this.getNetwork();\n const params = await resolveProperties({\n address: this._getAddress(addressOrName),\n blockTag: this._getBlockTag(blockTag)\n });\n\n const result = await this.perform(\"getBalance\", params);\n try {\n return BigNumber.from(result);\n } catch (error) {\n return logger.throwError(\"bad result from backend\", Logger.errors.SERVER_ERROR, {\n method: \"getBalance\",\n params, result, error\n });\n }\n }\n\n async getTransactionCount(addressOrName: string | Promise, blockTag?: BlockTag | Promise): Promise {\n await this.getNetwork();\n const params = await resolveProperties({\n address: this._getAddress(addressOrName),\n blockTag: this._getBlockTag(blockTag)\n });\n\n const result = await this.perform(\"getTransactionCount\", params);\n try {\n return BigNumber.from(result).toNumber();\n } catch (error) {\n return logger.throwError(\"bad result from backend\", Logger.errors.SERVER_ERROR, {\n method: \"getTransactionCount\",\n params, result, error\n });\n }\n }\n\n async getCode(addressOrName: string | Promise, blockTag?: BlockTag | Promise): Promise {\n await this.getNetwork();\n const params = await resolveProperties({\n address: this._getAddress(addressOrName),\n blockTag: this._getBlockTag(blockTag)\n });\n\n const result = await this.perform(\"getCode\", params);\n try {\n return hexlify(result);\n } catch (error) {\n return logger.throwError(\"bad result from backend\", Logger.errors.SERVER_ERROR, {\n method: \"getCode\",\n params, result, error\n });\n }\n }\n\n async getStorageAt(addressOrName: string | Promise, position: BigNumberish | Promise, blockTag?: BlockTag | Promise): Promise {\n await this.getNetwork();\n const params = await resolveProperties({\n address: this._getAddress(addressOrName),\n blockTag: this._getBlockTag(blockTag),\n position: Promise.resolve(position).then((p) => hexValue(p))\n });\n const result = await this.perform(\"getStorageAt\", params);\n try {\n return hexlify(result);\n } catch (error) {\n return logger.throwError(\"bad result from backend\", Logger.errors.SERVER_ERROR, {\n method: \"getStorageAt\",\n params, result, error\n });\n }\n }\n\n // This should be called by any subclass wrapping a TransactionResponse\n _wrapTransaction(tx: Transaction, hash?: string, startBlock?: number): TransactionResponse {\n if (hash != null && hexDataLength(hash) !== 32) { throw new Error(\"invalid response - sendTransaction\"); }\n\n const result = tx;\n\n // Check the hash we expect is the same as the hash the server reported\n if (hash != null && tx.hash !== hash) {\n logger.throwError(\"Transaction hash mismatch from Provider.sendTransaction.\", Logger.errors.UNKNOWN_ERROR, { expectedHash: tx.hash, returnedHash: hash });\n }\n\n result.wait = async (confirms?: number, timeout?: number) => {\n if (confirms == null) { confirms = 1; }\n if (timeout == null) { timeout = 0; }\n\n // Get the details to detect replacement\n let replacement = undefined;\n if (confirms !== 0 && startBlock != null) {\n replacement = {\n data: tx.data,\n from: tx.from,\n nonce: tx.nonce,\n to: tx.to,\n value: tx.value,\n startBlock\n };\n }\n\n const receipt = await this._waitForTransaction(tx.hash, confirms, timeout, replacement);\n if (receipt == null && confirms === 0) { return null; }\n\n // No longer pending, allow the polling loop to garbage collect this\n this._emitted[\"t:\" + tx.hash] = receipt.blockNumber;\n\n if (receipt.status === 0) {\n logger.throwError(\"transaction failed\", Logger.errors.CALL_EXCEPTION, {\n transactionHash: tx.hash,\n transaction: tx,\n receipt: receipt\n });\n }\n return receipt;\n };\n\n return result;\n }\n\n async sendTransaction(signedTransaction: string | Promise): Promise {\n await this.getNetwork();\n const hexTx = await Promise.resolve(signedTransaction).then(t => hexlify(t));\n const tx = this.formatter.transaction(signedTransaction);\n if (tx.confirmations == null) { tx.confirmations = 0; }\n const blockNumber = await this._getInternalBlockNumber(100 + 2 * this.pollingInterval);\n try {\n const hash = await this.perform(\"sendTransaction\", { signedTransaction: hexTx });\n return this._wrapTransaction(tx, hash, blockNumber);\n } catch (error) {\n (error).transaction = tx;\n (error).transactionHash = tx.hash;\n throw error;\n }\n }\n\n async _getTransactionRequest(transaction: Deferrable): Promise {\n const values: any = await transaction;\n\n const tx: any = { };\n\n [\"from\", \"to\"].forEach((key) => {\n if (values[key] == null) { return; }\n tx[key] = Promise.resolve(values[key]).then((v) => (v ? this._getAddress(v): null))\n });\n\n [\"gasLimit\", \"gasPrice\", \"maxFeePerGas\", \"maxPriorityFeePerGas\", \"value\"].forEach((key) => {\n if (values[key] == null) { return; }\n tx[key] = Promise.resolve(values[key]).then((v) => (v ? BigNumber.from(v): null));\n });\n\n [\"type\"].forEach((key) => {\n if (values[key] == null) { return; }\n tx[key] = Promise.resolve(values[key]).then((v) => ((v != null) ? v: null));\n });\n\n if (values.accessList) {\n tx.accessList = this.formatter.accessList(values.accessList);\n }\n\n [\"data\"].forEach((key) => {\n if (values[key] == null) { return; }\n tx[key] = Promise.resolve(values[key]).then((v) => (v ? hexlify(v): null));\n });\n\n return this.formatter.transactionRequest(await resolveProperties(tx));\n }\n\n async _getFilter(filter: Filter | FilterByBlockHash | Promise): Promise {\n filter = await filter;\n\n const result: any = { };\n\n if (filter.address != null) {\n result.address = this._getAddress(filter.address);\n }\n\n [\"blockHash\", \"topics\"].forEach((key) => {\n if ((filter)[key] == null) { return; }\n result[key] = (filter)[key];\n });\n\n [\"fromBlock\", \"toBlock\"].forEach((key) => {\n if ((filter)[key] == null) { return; }\n result[key] = this._getBlockTag((filter)[key]);\n });\n\n return this.formatter.filter(await resolveProperties(result));\n }\n\n async _call(transaction: TransactionRequest, blockTag: BlockTag, attempt: number): Promise {\n if (attempt >= MAX_CCIP_REDIRECTS) {\n logger.throwError(\"CCIP read exceeded maximum redirections\", Logger.errors.SERVER_ERROR, {\n redirects: attempt, transaction\n });\n }\n\n const txSender = transaction.to;\n\n const result = await this.perform(\"call\", { transaction, blockTag });\n\n // CCIP Read request via OffchainLookup(address,string[],bytes,bytes4,bytes)\n if (attempt >= 0 && blockTag === \"latest\" && txSender != null && result.substring(0, 10) === \"0x556f1830\" && (hexDataLength(result) % 32 === 4)) {\n try {\n const data = hexDataSlice(result, 4);\n\n // Check the sender of the OffchainLookup matches the transaction\n const sender = hexDataSlice(data, 0, 32);\n if (!BigNumber.from(sender).eq(txSender)) {\n logger.throwError(\"CCIP Read sender did not match\", Logger.errors.CALL_EXCEPTION, {\n name: \"OffchainLookup\",\n signature: \"OffchainLookup(address,string[],bytes,bytes4,bytes)\",\n transaction, data: result\n });\n }\n\n // Read the URLs from the response\n const urls: Array = [];\n const urlsOffset = BigNumber.from(hexDataSlice(data, 32, 64)).toNumber();\n const urlsLength = BigNumber.from(hexDataSlice(data, urlsOffset, urlsOffset + 32)).toNumber();\n const urlsData = hexDataSlice(data, urlsOffset + 32);\n for (let u = 0; u < urlsLength; u++) {\n const url = _parseString(urlsData, u * 32);\n if (url == null) {\n logger.throwError(\"CCIP Read contained corrupt URL string\", Logger.errors.CALL_EXCEPTION, {\n name: \"OffchainLookup\",\n signature: \"OffchainLookup(address,string[],bytes,bytes4,bytes)\",\n transaction, data: result\n });\n }\n urls.push(url);\n }\n\n // Get the CCIP calldata to forward\n const calldata = _parseBytes(data, 64);\n\n // Get the callbackSelector (bytes4)\n if (!BigNumber.from(hexDataSlice(data, 100, 128)).isZero()) {\n logger.throwError(\"CCIP Read callback selector included junk\", Logger.errors.CALL_EXCEPTION, {\n name: \"OffchainLookup\",\n signature: \"OffchainLookup(address,string[],bytes,bytes4,bytes)\",\n transaction, data: result\n });\n }\n const callbackSelector = hexDataSlice(data, 96, 100);\n\n // Get the extra data to send back to the contract as context\n const extraData = _parseBytes(data, 128);\n\n const ccipResult = await this.ccipReadFetch(transaction, calldata, urls);\n if (ccipResult == null) {\n logger.throwError(\"CCIP Read disabled or provided no URLs\", Logger.errors.CALL_EXCEPTION, {\n name: \"OffchainLookup\",\n signature: \"OffchainLookup(address,string[],bytes,bytes4,bytes)\",\n transaction, data: result\n });\n }\n\n const tx = {\n to: txSender,\n data: hexConcat([ callbackSelector, encodeBytes([ ccipResult, extraData ]) ])\n };\n\n return this._call(tx, blockTag, attempt + 1);\n\n } catch (error) {\n if (error.code === Logger.errors.SERVER_ERROR) { throw error; }\n }\n }\n\n try {\n return hexlify(result);\n } catch (error) {\n return logger.throwError(\"bad result from backend\", Logger.errors.SERVER_ERROR, {\n method: \"call\",\n params: { transaction, blockTag }, result, error\n });\n }\n\n }\n\n async call(transaction: Deferrable, blockTag?: BlockTag | Promise): Promise {\n await this.getNetwork();\n const resolved = await resolveProperties({\n transaction: this._getTransactionRequest(transaction),\n blockTag: this._getBlockTag(blockTag),\n ccipReadEnabled: Promise.resolve(transaction.ccipReadEnabled)\n });\n return this._call(resolved.transaction, resolved.blockTag, resolved.ccipReadEnabled ? 0: -1);\n }\n\n async estimateGas(transaction: Deferrable): Promise {\n await this.getNetwork();\n const params = await resolveProperties({\n transaction: this._getTransactionRequest(transaction)\n });\n\n const result = await this.perform(\"estimateGas\", params);\n try {\n return BigNumber.from(result);\n } catch (error) {\n return logger.throwError(\"bad result from backend\", Logger.errors.SERVER_ERROR, {\n method: \"estimateGas\",\n params, result, error\n });\n }\n }\n\n async _getAddress(addressOrName: string | Promise): Promise {\n addressOrName = await addressOrName;\n if (typeof(addressOrName) !== \"string\") {\n logger.throwArgumentError(\"invalid address or ENS name\", \"name\", addressOrName);\n }\n\n const address = await this.resolveName(addressOrName);\n if (address == null) {\n logger.throwError(\"ENS name not configured\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: `resolveName(${ JSON.stringify(addressOrName) })`\n });\n }\n return address;\n }\n\n async _getBlock(blockHashOrBlockTag: BlockTag | string | Promise, includeTransactions?: boolean): Promise {\n await this.getNetwork();\n\n blockHashOrBlockTag = await blockHashOrBlockTag;\n\n // If blockTag is a number (not \"latest\", etc), this is the block number\n let blockNumber = -128;\n\n const params: { [key: string]: any } = {\n includeTransactions: !!includeTransactions\n };\n\n if (isHexString(blockHashOrBlockTag, 32)) {\n params.blockHash = blockHashOrBlockTag;\n } else {\n try {\n params.blockTag = await this._getBlockTag(blockHashOrBlockTag);\n if (isHexString(params.blockTag)) {\n blockNumber = parseInt(params.blockTag.substring(2), 16);\n }\n } catch (error) {\n logger.throwArgumentError(\"invalid block hash or block tag\", \"blockHashOrBlockTag\", blockHashOrBlockTag);\n }\n }\n\n return poll(async () => {\n const block = await this.perform(\"getBlock\", params);\n\n // Block was not found\n if (block == null) {\n\n // For blockhashes, if we didn't say it existed, that blockhash may\n // not exist. If we did see it though, perhaps from a log, we know\n // it exists, and this node is just not caught up yet.\n if (params.blockHash != null) {\n if (this._emitted[\"b:\" + params.blockHash] == null) { return null; }\n }\n\n // For block tags, if we are asking for a future block, we return null\n if (params.blockTag != null) {\n if (blockNumber > this._emitted.block) { return null; }\n }\n\n // Retry on the next block\n return undefined;\n }\n\n // Add transactions\n if (includeTransactions) {\n let blockNumber: number = null;\n for (let i = 0; i < block.transactions.length; i++) {\n const tx = block.transactions[i];\n if (tx.blockNumber == null) {\n tx.confirmations = 0;\n\n } else if (tx.confirmations == null) {\n if (blockNumber == null) {\n blockNumber = await this._getInternalBlockNumber(100 + 2 * this.pollingInterval);\n }\n\n // Add the confirmations using the fast block number (pessimistic)\n let confirmations = (blockNumber - tx.blockNumber) + 1;\n if (confirmations <= 0) { confirmations = 1; }\n tx.confirmations = confirmations;\n }\n }\n\n const blockWithTxs: any = this.formatter.blockWithTransactions(block);\n blockWithTxs.transactions = blockWithTxs.transactions.map((tx: TransactionResponse) => this._wrapTransaction(tx));\n return blockWithTxs;\n }\n\n return this.formatter.block(block);\n\n }, { oncePoll: this });\n }\n\n getBlock(blockHashOrBlockTag: BlockTag | string | Promise): Promise {\n return >(this._getBlock(blockHashOrBlockTag, false));\n }\n\n getBlockWithTransactions(blockHashOrBlockTag: BlockTag | string | Promise): Promise {\n return >(this._getBlock(blockHashOrBlockTag, true));\n }\n\n async getTransaction(transactionHash: string | Promise): Promise {\n await this.getNetwork();\n transactionHash = await transactionHash;\n\n const params = { transactionHash: this.formatter.hash(transactionHash, true) };\n\n return poll(async () => {\n const result = await this.perform(\"getTransaction\", params);\n\n if (result == null) {\n if (this._emitted[\"t:\" + transactionHash] == null) {\n return null;\n }\n return undefined;\n }\n\n const tx = this.formatter.transactionResponse(result);\n\n if (tx.blockNumber == null) {\n tx.confirmations = 0;\n\n } else if (tx.confirmations == null) {\n const blockNumber = await this._getInternalBlockNumber(100 + 2 * this.pollingInterval);\n\n // Add the confirmations using the fast block number (pessimistic)\n let confirmations = (blockNumber - tx.blockNumber) + 1;\n if (confirmations <= 0) { confirmations = 1; }\n tx.confirmations = confirmations;\n }\n\n return this._wrapTransaction(tx);\n }, { oncePoll: this });\n }\n\n async getTransactionReceipt(transactionHash: string | Promise): Promise {\n await this.getNetwork();\n\n transactionHash = await transactionHash;\n\n const params = { transactionHash: this.formatter.hash(transactionHash, true) };\n\n return poll(async () => {\n const result = await this.perform(\"getTransactionReceipt\", params);\n\n if (result == null) {\n if (this._emitted[\"t:\" + transactionHash] == null) {\n return null;\n }\n return undefined;\n }\n\n // \"geth-etc\" returns receipts before they are ready\n if (result.blockHash == null) { return undefined; }\n\n const receipt = this.formatter.receipt(result);\n\n if (receipt.blockNumber == null) {\n receipt.confirmations = 0;\n\n } else if (receipt.confirmations == null) {\n const blockNumber = await this._getInternalBlockNumber(100 + 2 * this.pollingInterval);\n\n // Add the confirmations using the fast block number (pessimistic)\n let confirmations = (blockNumber - receipt.blockNumber) + 1;\n if (confirmations <= 0) { confirmations = 1; }\n receipt.confirmations = confirmations;\n }\n\n return receipt;\n }, { oncePoll: this });\n }\n\n async getLogs(filter: Filter | FilterByBlockHash | Promise): Promise> {\n await this.getNetwork();\n const params = await resolveProperties({ filter: this._getFilter(filter) });\n const logs: Array = await this.perform(\"getLogs\", params);\n logs.forEach((log) => {\n if (log.removed == null) { log.removed = false; }\n });\n return Formatter.arrayOf(this.formatter.filterLog.bind(this.formatter))(logs);\n }\n\n async getEtherPrice(): Promise {\n await this.getNetwork();\n return this.perform(\"getEtherPrice\", { });\n }\n\n async _getBlockTag(blockTag: BlockTag | Promise): Promise {\n blockTag = await blockTag;\n\n if (typeof(blockTag) === \"number\" && blockTag < 0) {\n if (blockTag % 1) {\n logger.throwArgumentError(\"invalid BlockTag\", \"blockTag\", blockTag);\n }\n\n let blockNumber = await this._getInternalBlockNumber(100 + 2 * this.pollingInterval);\n blockNumber += blockTag;\n if (blockNumber < 0) { blockNumber = 0; }\n return this.formatter.blockTag(blockNumber)\n }\n\n return this.formatter.blockTag(blockTag);\n }\n\n\n async getResolver(name: string): Promise {\n let currentName = name;\n while (true) {\n if (currentName === \"\" || currentName === \".\") { return null; }\n\n // Optimization since the eth node cannot change and does\n // not have a wildcard resolver\n if (name !== \"eth\" && currentName === \"eth\") { return null; }\n\n // Check the current node for a resolver\n const addr = await this._getResolver(currentName, \"getResolver\");\n\n // Found a resolver!\n if (addr != null) {\n const resolver = new Resolver(this, addr, name);\n\n // Legacy resolver found, using EIP-2544 so it isn't safe to use\n if (currentName !== name && !(await resolver.supportsWildcard())) { return null; }\n\n return resolver;\n }\n\n // Get the parent node\n currentName = currentName.split(\".\").slice(1).join(\".\");\n }\n\n }\n\n async _getResolver(name: string, operation?: string): Promise {\n if (operation == null) { operation = \"ENS\"; }\n\n const network = await this.getNetwork();\n\n // No ENS...\n if (!network.ensAddress) {\n logger.throwError(\n \"network does not support ENS\",\n Logger.errors.UNSUPPORTED_OPERATION,\n { operation, network: network.name }\n );\n }\n\n try {\n // keccak256(\"resolver(bytes32)\")\n const addrData = await this.call({\n to: network.ensAddress,\n data: (\"0x0178b8bf\" + namehash(name).substring(2))\n });\n return this.formatter.callAddress(addrData);\n } catch (error) {\n // ENS registry cannot throw errors on resolver(bytes32)\n }\n\n return null;\n }\n\n async resolveName(name: string | Promise): Promise {\n name = await name;\n\n // If it is already an address, nothing to resolve\n try {\n return Promise.resolve(this.formatter.address(name));\n } catch (error) {\n // If is is a hexstring, the address is bad (See #694)\n if (isHexString(name)) { throw error; }\n }\n\n if (typeof(name) !== \"string\") {\n logger.throwArgumentError(\"invalid ENS name\", \"name\", name);\n }\n\n // Get the addr from the resolver\n const resolver = await this.getResolver(name);\n if (!resolver) { return null; }\n\n return await resolver.getAddress();\n }\n\n async lookupAddress(address: string | Promise): Promise {\n address = await address;\n address = this.formatter.address(address);\n\n const node = address.substring(2).toLowerCase() + \".addr.reverse\";\n\n const resolverAddr = await this._getResolver(node, \"lookupAddress\");\n if (resolverAddr == null) { return null; }\n\n // keccak(\"name(bytes32)\")\n const name = _parseString(await this.call({\n to: resolverAddr,\n data: (\"0x691f3431\" + namehash(node).substring(2))\n }), 0);\n\n const addr = await this.resolveName(name);\n if (addr != address) { return null; }\n\n return name;\n }\n\n async getAvatar(nameOrAddress: string): Promise {\n let resolver: Resolver = null;\n if (isHexString(nameOrAddress)) {\n // Address; reverse lookup\n const address = this.formatter.address(nameOrAddress);\n\n const node = address.substring(2).toLowerCase() + \".addr.reverse\";\n\n const resolverAddress = await this._getResolver(node, \"getAvatar\");\n if (!resolverAddress) { return null; }\n\n // Try resolving the avatar against the addr.reverse resolver\n resolver = new Resolver(this, resolverAddress, node);\n try {\n const avatar = await resolver.getAvatar();\n if (avatar) { return avatar.url; }\n } catch (error) {\n if (error.code !== Logger.errors.CALL_EXCEPTION) { throw error; }\n }\n\n // Try getting the name and performing forward lookup; allowing wildcards\n try {\n // keccak(\"name(bytes32)\")\n const name = _parseString(await this.call({\n to: resolverAddress,\n data: (\"0x691f3431\" + namehash(node).substring(2))\n }), 0);\n resolver = await this.getResolver(name);\n } catch (error) {\n if (error.code !== Logger.errors.CALL_EXCEPTION) { throw error; }\n return null;\n }\n\n } else {\n // ENS name; forward lookup with wildcard\n resolver = await this.getResolver(nameOrAddress);\n if (!resolver) { return null; }\n }\n\n const avatar = await resolver.getAvatar();\n if (avatar == null) { return null; }\n\n return avatar.url;\n }\n\n perform(method: string, params: any): Promise {\n return logger.throwError(method + \" not implemented\", Logger.errors.NOT_IMPLEMENTED, { operation: method });\n }\n\n _startEvent(event: Event): void {\n this.polling = (this._events.filter((e) => e.pollable()).length > 0);\n }\n\n _stopEvent(event: Event): void {\n this.polling = (this._events.filter((e) => e.pollable()).length > 0);\n }\n\n _addEventListener(eventName: EventType, listener: Listener, once: boolean): this {\n const event = new Event(getEventTag(eventName), listener, once)\n this._events.push(event);\n this._startEvent(event);\n\n return this;\n }\n\n on(eventName: EventType, listener: Listener): this {\n return this._addEventListener(eventName, listener, false);\n }\n\n once(eventName: EventType, listener: Listener): this {\n return this._addEventListener(eventName, listener, true);\n }\n\n\n emit(eventName: EventType, ...args: Array): boolean {\n let result = false;\n\n let stopped: Array = [ ];\n\n let eventTag = getEventTag(eventName);\n this._events = this._events.filter((event) => {\n if (event.tag !== eventTag) { return true; }\n\n setTimeout(() => {\n event.listener.apply(this, args);\n }, 0);\n\n result = true;\n\n if (event.once) {\n stopped.push(event);\n return false;\n }\n\n return true;\n });\n\n stopped.forEach((event) => { this._stopEvent(event); });\n\n return result;\n }\n\n listenerCount(eventName?: EventType): number {\n if (!eventName) { return this._events.length; }\n\n let eventTag = getEventTag(eventName);\n return this._events.filter((event) => {\n return (event.tag === eventTag);\n }).length;\n }\n\n listeners(eventName?: EventType): Array {\n if (eventName == null) {\n return this._events.map((event) => event.listener);\n }\n\n let eventTag = getEventTag(eventName);\n return this._events\n .filter((event) => (event.tag === eventTag))\n .map((event) => event.listener);\n }\n\n off(eventName: EventType, listener?: Listener): this {\n if (listener == null) {\n return this.removeAllListeners(eventName);\n }\n\n const stopped: Array = [ ];\n\n let found = false;\n\n let eventTag = getEventTag(eventName);\n this._events = this._events.filter((event) => {\n if (event.tag !== eventTag || event.listener != listener) { return true; }\n if (found) { return true; }\n found = true;\n stopped.push(event);\n return false;\n });\n\n stopped.forEach((event) => { this._stopEvent(event); });\n\n return this;\n }\n\n removeAllListeners(eventName?: EventType): this {\n let stopped: Array = [ ];\n if (eventName == null) {\n stopped = this._events;\n\n this._events = [ ];\n } else {\n const eventTag = getEventTag(eventName);\n this._events = this._events.filter((event) => {\n if (event.tag !== eventTag) { return true; }\n stopped.push(event);\n return false;\n });\n }\n\n stopped.forEach((event) => { this._stopEvent(event); });\n\n return this;\n }\n}\n", "\"use strict\";\n\n// See: https://github.com/ethereum/wiki/wiki/JSON-RPC\n\nimport { Provider, TransactionRequest, TransactionResponse } from \"@ethersproject/abstract-provider\";\nimport { Signer, TypedDataDomain, TypedDataField, TypedDataSigner } from \"@ethersproject/abstract-signer\";\nimport { BigNumber } from \"@ethersproject/bignumber\";\nimport { Bytes, hexlify, hexValue, hexZeroPad, isHexString } from \"@ethersproject/bytes\";\nimport { _TypedDataEncoder } from \"@ethersproject/hash\";\nimport { Network, Networkish } from \"@ethersproject/networks\";\nimport { checkProperties, deepCopy, Deferrable, defineReadOnly, getStatic, resolveProperties, shallowCopy } from \"@ethersproject/properties\";\nimport { toUtf8Bytes } from \"@ethersproject/strings\";\nimport { AccessList, accessListify } from \"@ethersproject/transactions\";\nimport { ConnectionInfo, fetchJson, poll } from \"@ethersproject/web\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\nimport { BaseProvider, Event } from \"./base-provider\";\n\n\nconst errorGas = [ \"call\", \"estimateGas\" ];\n\nfunction spelunk(value: any, requireData: boolean): null | { message: string, data: null | string } {\n if (value == null) { return null; }\n\n // These *are* the droids we're looking for.\n if (typeof(value.message) === \"string\" && value.message.match(\"reverted\")) {\n const data = isHexString(value.data) ? value.data: null;\n if (!requireData || data) {\n return { message: value.message, data };\n }\n }\n\n // Spelunk further...\n if (typeof(value) === \"object\") {\n for (const key in value) {\n const result = spelunk(value[key], requireData);\n if (result) { return result; }\n }\n return null;\n }\n\n // Might be a JSON string we can further descend...\n if (typeof(value) === \"string\") {\n try {\n return spelunk(JSON.parse(value), requireData);\n } catch (error) { }\n }\n\n return null;\n}\n\nfunction checkError(method: string, error: any, params: any): any {\n\n const transaction = params.transaction || params.signedTransaction;\n\n // Undo the \"convenience\" some nodes are attempting to prevent backwards\n // incompatibility; maybe for v6 consider forwarding reverts as errors\n if (method === \"call\") {\n const result = spelunk(error, true);\n if (result) { return result.data; }\n\n // Nothing descriptive..\n logger.throwError(\"missing revert data in call exception; Transaction reverted without a reason string\", Logger.errors.CALL_EXCEPTION, {\n data: \"0x\", transaction, error\n });\n }\n\n if (method === \"estimateGas\") {\n // Try to find something, with a preference on SERVER_ERROR body\n let result = spelunk(error.body, false);\n if (result == null) { result = spelunk(error, false); }\n\n // Found \"reverted\", this is a CALL_EXCEPTION\n if (result) {\n logger.throwError(\"cannot estimate gas; transaction may fail or may require manual gas limit\", Logger.errors.UNPREDICTABLE_GAS_LIMIT, {\n reason: result.message, method, transaction, error\n });\n }\n }\n\n // @TODO: Should we spelunk for message too?\n\n let message = error.message;\n if (error.code === Logger.errors.SERVER_ERROR && error.error && typeof(error.error.message) === \"string\") {\n message = error.error.message;\n } else if (typeof(error.body) === \"string\") {\n message = error.body;\n } else if (typeof(error.responseText) === \"string\") {\n message = error.responseText;\n }\n message = (message || \"\").toLowerCase();\n\n // \"insufficient funds for gas * price + value + cost(data)\"\n if (message.match(/insufficient funds|base fee exceeds gas limit|InsufficientFunds/i)) {\n logger.throwError(\"insufficient funds for intrinsic transaction cost\", Logger.errors.INSUFFICIENT_FUNDS, {\n error, method, transaction\n });\n }\n\n // \"nonce too low\"\n if (message.match(/nonce (is )?too low/i)) {\n logger.throwError(\"nonce has already been used\", Logger.errors.NONCE_EXPIRED, {\n error, method, transaction\n });\n }\n\n // \"replacement transaction underpriced\"\n if (message.match(/replacement transaction underpriced|transaction gas price.*too low/i)) {\n logger.throwError(\"replacement fee too low\", Logger.errors.REPLACEMENT_UNDERPRICED, {\n error, method, transaction\n });\n }\n\n // \"replacement transaction underpriced\"\n if (message.match(/only replay-protected/i)) {\n logger.throwError(\"legacy pre-eip-155 transactions not supported\", Logger.errors.UNSUPPORTED_OPERATION, {\n error, method, transaction\n });\n }\n\n if (errorGas.indexOf(method) >= 0 && message.match(/gas required exceeds allowance|always failing transaction|execution reverted|revert/)) {\n logger.throwError(\"cannot estimate gas; transaction may fail or may require manual gas limit\", Logger.errors.UNPREDICTABLE_GAS_LIMIT, {\n error, method, transaction\n });\n }\n\n throw error;\n}\n\nfunction timer(timeout: number): Promise {\n return new Promise(function(resolve) {\n setTimeout(resolve, timeout);\n });\n}\n\nfunction getResult(payload: { error?: { code?: number, data?: any, message?: string }, result?: any }): any {\n if (payload.error) {\n // @TODO: not any\n const error: any = new Error(payload.error.message);\n error.code = payload.error.code;\n error.data = payload.error.data;\n throw error;\n }\n\n return payload.result;\n}\n\nfunction getLowerCase(value: string): string {\n if (value) { return value.toLowerCase(); }\n return value;\n}\n\nconst _constructorGuard = {};\n\nexport class JsonRpcSigner extends Signer implements TypedDataSigner {\n readonly provider: JsonRpcProvider;\n _index: number;\n _address: string;\n\n constructor(constructorGuard: any, provider: JsonRpcProvider, addressOrIndex?: string | number) {\n super();\n\n if (constructorGuard !== _constructorGuard) {\n throw new Error(\"do not call the JsonRpcSigner constructor directly; use provider.getSigner\");\n }\n\n defineReadOnly(this, \"provider\", provider);\n\n if (addressOrIndex == null) { addressOrIndex = 0; }\n\n if (typeof(addressOrIndex) === \"string\") {\n defineReadOnly(this, \"_address\", this.provider.formatter.address(addressOrIndex));\n defineReadOnly(this, \"_index\", null);\n\n } else if (typeof(addressOrIndex) === \"number\") {\n defineReadOnly(this, \"_index\", addressOrIndex);\n defineReadOnly(this, \"_address\", null);\n\n } else {\n logger.throwArgumentError(\"invalid address or index\", \"addressOrIndex\", addressOrIndex);\n }\n }\n\n connect(provider: Provider): JsonRpcSigner {\n return logger.throwError(\"cannot alter JSON-RPC Signer connection\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"connect\"\n });\n }\n\n connectUnchecked(): JsonRpcSigner {\n return new UncheckedJsonRpcSigner(_constructorGuard, this.provider, this._address || this._index);\n }\n\n getAddress(): Promise {\n if (this._address) {\n return Promise.resolve(this._address);\n }\n\n return this.provider.send(\"eth_accounts\", []).then((accounts) => {\n if (accounts.length <= this._index) {\n logger.throwError(\"unknown account #\" + this._index, Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"getAddress\"\n });\n }\n return this.provider.formatter.address(accounts[this._index])\n });\n }\n\n sendUncheckedTransaction(transaction: Deferrable): Promise {\n transaction = shallowCopy(transaction);\n\n const fromAddress = this.getAddress().then((address) => {\n if (address) { address = address.toLowerCase(); }\n return address;\n });\n\n // The JSON-RPC for eth_sendTransaction uses 90000 gas; if the user\n // wishes to use this, it is easy to specify explicitly, otherwise\n // we look it up for them.\n if (transaction.gasLimit == null) {\n const estimate = shallowCopy(transaction);\n estimate.from = fromAddress;\n transaction.gasLimit = this.provider.estimateGas(estimate);\n }\n\n if (transaction.to != null) {\n transaction.to = Promise.resolve(transaction.to).then(async (to) => {\n if (to == null) { return null; }\n const address = await this.provider.resolveName(to);\n if (address == null) {\n logger.throwArgumentError(\"provided ENS name resolves to null\", \"tx.to\", to);\n }\n return address;\n });\n }\n\n return resolveProperties({\n tx: resolveProperties(transaction),\n sender: fromAddress\n }).then(({ tx, sender }) => {\n\n if (tx.from != null) {\n if (tx.from.toLowerCase() !== sender) {\n logger.throwArgumentError(\"from address mismatch\", \"transaction\", transaction);\n }\n } else {\n tx.from = sender;\n }\n\n const hexTx = (this.provider.constructor).hexlifyTransaction(tx, { from: true });\n\n return this.provider.send(\"eth_sendTransaction\", [ hexTx ]).then((hash) => {\n return hash;\n }, (error) => {\n if (typeof(error.message) === \"string\" && error.message.match(/user denied/i)) {\n logger.throwError(\"user rejected transaction\", Logger.errors.ACTION_REJECTED, {\n action: \"sendTransaction\",\n transaction: tx\n });\n }\n\n return checkError(\"sendTransaction\", error, hexTx);\n });\n });\n }\n\n signTransaction(transaction: Deferrable): Promise {\n return logger.throwError(\"signing transactions is unsupported\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"signTransaction\"\n });\n }\n\n async sendTransaction(transaction: Deferrable): Promise {\n // This cannot be mined any earlier than any recent block\n const blockNumber = await this.provider._getInternalBlockNumber(100 + 2 * this.provider.pollingInterval);\n\n // Send the transaction\n const hash = await this.sendUncheckedTransaction(transaction);\n\n try {\n // Unfortunately, JSON-RPC only provides and opaque transaction hash\n // for a response, and we need the actual transaction, so we poll\n // for it; it should show up very quickly\n return await poll(async () => {\n const tx = await this.provider.getTransaction(hash);\n if (tx === null) { return undefined; }\n return this.provider._wrapTransaction(tx, hash, blockNumber);\n }, { oncePoll: this.provider });\n } catch (error) {\n (error).transactionHash = hash;\n throw error;\n }\n }\n\n async signMessage(message: Bytes | string): Promise {\n const data = ((typeof(message) === \"string\") ? toUtf8Bytes(message): message);\n const address = await this.getAddress();\n try {\n return await this.provider.send(\"personal_sign\", [ hexlify(data), address.toLowerCase() ]);\n } catch (error) {\n if (typeof(error.message) === \"string\" && error.message.match(/user denied/i)) {\n logger.throwError(\"user rejected signing\", Logger.errors.ACTION_REJECTED, {\n action: \"signMessage\",\n from: address,\n messageData: message\n });\n }\n throw error;\n }\n }\n\n async _legacySignMessage(message: Bytes | string): Promise {\n const data = ((typeof(message) === \"string\") ? toUtf8Bytes(message): message);\n const address = await this.getAddress();\n\n try {\n // https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_sign\n return await this.provider.send(\"eth_sign\", [ address.toLowerCase(), hexlify(data) ]);\n } catch (error) {\n if (typeof(error.message) === \"string\" && error.message.match(/user denied/i)) {\n logger.throwError(\"user rejected signing\", Logger.errors.ACTION_REJECTED, {\n action: \"_legacySignMessage\",\n from: address,\n messageData: message\n });\n }\n throw error;\n }\n }\n\n async _signTypedData(domain: TypedDataDomain, types: Record>, value: Record): Promise {\n // Populate any ENS names (in-place)\n const populated = await _TypedDataEncoder.resolveNames(domain, types, value, (name: string) => {\n return this.provider.resolveName(name);\n });\n\n const address = await this.getAddress();\n\n try {\n return await this.provider.send(\"eth_signTypedData_v4\", [\n address.toLowerCase(),\n JSON.stringify(_TypedDataEncoder.getPayload(populated.domain, types, populated.value))\n ]);\n } catch (error) {\n if (typeof(error.message) === \"string\" && error.message.match(/user denied/i)) {\n logger.throwError(\"user rejected signing\", Logger.errors.ACTION_REJECTED, {\n action: \"_signTypedData\",\n from: address,\n messageData: { domain: populated.domain, types, value: populated.value }\n });\n }\n throw error;\n }\n }\n\n async unlock(password: string): Promise {\n const provider = this.provider;\n\n const address = await this.getAddress();\n\n return provider.send(\"personal_unlockAccount\", [ address.toLowerCase(), password, null ]);\n }\n}\n\nclass UncheckedJsonRpcSigner extends JsonRpcSigner {\n sendTransaction(transaction: Deferrable): Promise {\n return this.sendUncheckedTransaction(transaction).then((hash) => {\n return {\n hash: hash,\n nonce: null,\n gasLimit: null,\n gasPrice: null,\n data: null,\n value: null,\n chainId: null,\n confirmations: 0,\n from: null,\n wait: (confirmations?: number) => { return this.provider.waitForTransaction(hash, confirmations); }\n };\n });\n }\n}\n\nconst allowedTransactionKeys: { [ key: string ]: boolean } = {\n chainId: true, data: true, gasLimit: true, gasPrice:true, nonce: true, to: true, value: true,\n type: true, accessList: true,\n maxFeePerGas: true, maxPriorityFeePerGas: true\n}\n\nexport class JsonRpcProvider extends BaseProvider {\n readonly connection: ConnectionInfo;\n\n _pendingFilter: Promise;\n _nextId: number;\n\n // During any given event loop, the results for a given call will\n // all be the same, so we can dedup the calls to save requests and\n // bandwidth. @TODO: Try out generalizing this against send?\n _eventLoopCache: Record>;\n get _cache(): Record> {\n if (this._eventLoopCache == null) {\n this._eventLoopCache = { };\n }\n return this._eventLoopCache;\n }\n\n constructor(url?: ConnectionInfo | string, network?: Networkish) {\n let networkOrReady: Networkish | Promise = network;\n\n // The network is unknown, query the JSON-RPC for it\n if (networkOrReady == null) {\n networkOrReady = new Promise((resolve, reject) => {\n setTimeout(() => {\n this.detectNetwork().then((network) => {\n resolve(network);\n }, (error) => {\n reject(error);\n });\n }, 0);\n });\n }\n\n super(networkOrReady);\n\n // Default URL\n if (!url) { url = getStatic<() => string>(this.constructor, \"defaultUrl\")(); }\n\n if (typeof(url) === \"string\") {\n defineReadOnly(this, \"connection\",Object.freeze({\n url: url\n }));\n } else {\n defineReadOnly(this, \"connection\", Object.freeze(shallowCopy(url)));\n }\n\n this._nextId = 42;\n }\n\n static defaultUrl(): string {\n return \"http:/\\/localhost:8545\";\n }\n\n detectNetwork(): Promise {\n if (!this._cache[\"detectNetwork\"]) {\n this._cache[\"detectNetwork\"] = this._uncachedDetectNetwork();\n\n // Clear this cache at the beginning of the next event loop\n setTimeout(() => {\n this._cache[\"detectNetwork\"] = null;\n }, 0);\n }\n return this._cache[\"detectNetwork\"];\n }\n\n async _uncachedDetectNetwork(): Promise {\n await timer(0);\n\n let chainId = null;\n try {\n chainId = await this.send(\"eth_chainId\", [ ]);\n } catch (error) {\n try {\n chainId = await this.send(\"net_version\", [ ]);\n } catch (error) { }\n }\n\n if (chainId != null) {\n const getNetwork = getStatic<(network: Networkish) => Network>(this.constructor, \"getNetwork\");\n try {\n return getNetwork(BigNumber.from(chainId).toNumber());\n } catch (error) {\n return logger.throwError(\"could not detect network\", Logger.errors.NETWORK_ERROR, {\n chainId: chainId,\n event: \"invalidNetwork\",\n serverError: error\n });\n }\n }\n\n return logger.throwError(\"could not detect network\", Logger.errors.NETWORK_ERROR, {\n event: \"noNetwork\"\n });\n }\n\n getSigner(addressOrIndex?: string | number): JsonRpcSigner {\n return new JsonRpcSigner(_constructorGuard, this, addressOrIndex);\n }\n\n getUncheckedSigner(addressOrIndex?: string | number): UncheckedJsonRpcSigner {\n return this.getSigner(addressOrIndex).connectUnchecked();\n }\n\n listAccounts(): Promise> {\n return this.send(\"eth_accounts\", []).then((accounts: Array) => {\n return accounts.map((a) => this.formatter.address(a));\n });\n }\n\n send(method: string, params: Array): Promise {\n const request = {\n method: method,\n params: params,\n id: (this._nextId++),\n jsonrpc: \"2.0\"\n };\n\n this.emit(\"debug\", {\n action: \"request\",\n request: deepCopy(request),\n provider: this\n });\n\n // We can expand this in the future to any call, but for now these\n // are the biggest wins and do not require any serializing parameters.\n const cache = ([ \"eth_chainId\", \"eth_blockNumber\" ].indexOf(method) >= 0);\n if (cache && this._cache[method]) {\n return this._cache[method];\n }\n\n const result = fetchJson(this.connection, JSON.stringify(request), getResult).then((result) => {\n this.emit(\"debug\", {\n action: \"response\",\n request: request,\n response: result,\n provider: this\n });\n\n return result;\n\n }, (error) => {\n this.emit(\"debug\", {\n action: \"response\",\n error: error,\n request: request,\n provider: this\n });\n\n throw error;\n });\n\n // Cache the fetch, but clear it on the next event loop\n if (cache) {\n this._cache[method] = result;\n setTimeout(() => {\n this._cache[method] = null;\n }, 0);\n }\n\n return result;\n }\n\n prepareRequest(method: string, params: any): [ string, Array ] {\n switch (method) {\n case \"getBlockNumber\":\n return [ \"eth_blockNumber\", [] ];\n\n case \"getGasPrice\":\n return [ \"eth_gasPrice\", [] ];\n\n case \"getBalance\":\n return [ \"eth_getBalance\", [ getLowerCase(params.address), params.blockTag ] ];\n\n case \"getTransactionCount\":\n return [ \"eth_getTransactionCount\", [ getLowerCase(params.address), params.blockTag ] ];\n\n case \"getCode\":\n return [ \"eth_getCode\", [ getLowerCase(params.address), params.blockTag ] ];\n\n case \"getStorageAt\":\n return [ \"eth_getStorageAt\", [ getLowerCase(params.address), hexZeroPad(params.position, 32), params.blockTag ] ];\n\n case \"sendTransaction\":\n return [ \"eth_sendRawTransaction\", [ params.signedTransaction ] ]\n\n case \"getBlock\":\n if (params.blockTag) {\n return [ \"eth_getBlockByNumber\", [ params.blockTag, !!params.includeTransactions ] ];\n } else if (params.blockHash) {\n return [ \"eth_getBlockByHash\", [ params.blockHash, !!params.includeTransactions ] ];\n }\n return null;\n\n case \"getTransaction\":\n return [ \"eth_getTransactionByHash\", [ params.transactionHash ] ];\n\n case \"getTransactionReceipt\":\n return [ \"eth_getTransactionReceipt\", [ params.transactionHash ] ];\n\n case \"call\": {\n const hexlifyTransaction = getStatic<(t: TransactionRequest, a?: { [key: string]: boolean }) => { [key: string]: string }>(this.constructor, \"hexlifyTransaction\");\n return [ \"eth_call\", [ hexlifyTransaction(params.transaction, { from: true }), params.blockTag ] ];\n }\n\n case \"estimateGas\": {\n const hexlifyTransaction = getStatic<(t: TransactionRequest, a?: { [key: string]: boolean }) => { [key: string]: string }>(this.constructor, \"hexlifyTransaction\");\n return [ \"eth_estimateGas\", [ hexlifyTransaction(params.transaction, { from: true }) ] ];\n }\n\n case \"getLogs\":\n if (params.filter && params.filter.address != null) {\n params.filter.address = getLowerCase(params.filter.address);\n }\n return [ \"eth_getLogs\", [ params.filter ] ];\n\n default:\n break;\n }\n\n return null;\n }\n\n async perform(method: string, params: any): Promise {\n // Legacy networks do not like the type field being passed along (which\n // is fair), so we delete type if it is 0 and a non-EIP-1559 network\n if (method === \"call\" || method === \"estimateGas\") {\n const tx = params.transaction;\n if (tx && tx.type != null && BigNumber.from(tx.type).isZero()) {\n // If there are no EIP-1559 properties, it might be non-EIP-1559\n if (tx.maxFeePerGas == null && tx.maxPriorityFeePerGas == null) {\n const feeData = await this.getFeeData();\n if (feeData.maxFeePerGas == null && feeData.maxPriorityFeePerGas == null) {\n // Network doesn't know about EIP-1559 (and hence type)\n params = shallowCopy(params);\n params.transaction = shallowCopy(tx);\n delete params.transaction.type;\n }\n }\n }\n }\n\n const args = this.prepareRequest(method, params);\n\n if (args == null) {\n logger.throwError(method + \" not implemented\", Logger.errors.NOT_IMPLEMENTED, { operation: method });\n }\n try {\n return await this.send(args[0], args[1])\n } catch (error) {\n return checkError(method, error, params);\n }\n }\n\n _startEvent(event: Event): void {\n if (event.tag === \"pending\") { this._startPending(); }\n super._startEvent(event);\n }\n\n _startPending(): void {\n if (this._pendingFilter != null) { return; }\n const self = this;\n\n const pendingFilter: Promise = this.send(\"eth_newPendingTransactionFilter\", []);\n this._pendingFilter = pendingFilter;\n\n pendingFilter.then(function(filterId) {\n function poll() {\n self.send(\"eth_getFilterChanges\", [ filterId ]).then(function(hashes: Array) {\n if (self._pendingFilter != pendingFilter) { return null; }\n\n let seq = Promise.resolve();\n hashes.forEach(function(hash) {\n // @TODO: This should be garbage collected at some point... How? When?\n self._emitted[\"t:\" + hash.toLowerCase()] = \"pending\";\n seq = seq.then(function() {\n return self.getTransaction(hash).then(function(tx) {\n self.emit(\"pending\", tx);\n return null;\n });\n });\n });\n\n return seq.then(function() {\n return timer(1000);\n });\n }).then(function() {\n if (self._pendingFilter != pendingFilter) {\n self.send(\"eth_uninstallFilter\", [ filterId ]);\n return;\n }\n setTimeout(function() { poll(); }, 0);\n\n return null;\n }).catch((error: Error) => { });\n }\n poll();\n\n return filterId;\n }).catch((error: Error) => { });\n }\n\n _stopEvent(event: Event): void {\n if (event.tag === \"pending\" && this.listenerCount(\"pending\") === 0) {\n this._pendingFilter = null;\n }\n super._stopEvent(event);\n }\n\n // Convert an ethers.js transaction into a JSON-RPC transaction\n // - gasLimit => gas\n // - All values hexlified\n // - All numeric values zero-striped\n // - All addresses are lowercased\n // NOTE: This allows a TransactionRequest, but all values should be resolved\n // before this is called\n // @TODO: This will likely be removed in future versions and prepareRequest\n // will be the preferred method for this.\n static hexlifyTransaction(transaction: TransactionRequest, allowExtra?: { [key: string]: boolean }): { [key: string]: string | AccessList } {\n // Check only allowed properties are given\n const allowed = shallowCopy(allowedTransactionKeys);\n if (allowExtra) {\n for (const key in allowExtra) {\n if (allowExtra[key]) { allowed[key] = true; }\n }\n }\n\n checkProperties(transaction, allowed);\n\n const result: { [key: string]: string | AccessList } = {};\n\n // JSON-RPC now requires numeric values to be \"quantity\" values\n [\"chainId\", \"gasLimit\", \"gasPrice\", \"type\", \"maxFeePerGas\", \"maxPriorityFeePerGas\", \"nonce\", \"value\"].forEach(function(key) {\n if ((transaction)[key] == null) { return; }\n const value = hexValue(BigNumber.from((transaction)[key]));\n if (key === \"gasLimit\") { key = \"gas\"; }\n result[key] = value;\n });\n\n [\"from\", \"to\", \"data\"].forEach(function(key) {\n if ((transaction)[key] == null) { return; }\n result[key] = hexlify((transaction)[key]);\n });\n\n if ((transaction).accessList) {\n result[\"accessList\"] = accessListify((transaction).accessList);\n }\n\n return result;\n }\n}\n", "'use strict';\n\nmodule.exports = {\n BINARY_TYPES: ['nodebuffer', 'arraybuffer', 'fragments'],\n GUID: '258EAFA5-E914-47DA-95CA-C5AB0DC85B11',\n kStatusCode: Symbol('status-code'),\n kWebSocket: Symbol('websocket'),\n EMPTY_BUFFER: Buffer.alloc(0),\n NOOP: () => {}\n};\n", "var fs = require('fs')\nvar path = require('path')\nvar os = require('os')\n\n// Workaround to fix webpack's build warnings: 'the request of a dependency is an expression'\nvar runtimeRequire = typeof __webpack_require__ === 'function' ? __non_webpack_require__ : require // eslint-disable-line\n\nvar vars = (process.config && process.config.variables) || {}\nvar prebuildsOnly = !!process.env.PREBUILDS_ONLY\nvar abi = process.versions.modules // TODO: support old node where this is undef\nvar runtime = isElectron() ? 'electron' : 'node'\nvar arch = os.arch()\nvar platform = os.platform()\nvar libc = process.env.LIBC || (isAlpine(platform) ? 'musl' : 'glibc')\nvar armv = process.env.ARM_VERSION || (arch === 'arm64' ? '8' : vars.arm_version) || ''\nvar uv = (process.versions.uv || '').split('.')[0]\n\nmodule.exports = load\n\nfunction load (dir) {\n return runtimeRequire(load.path(dir))\n}\n\nload.path = function (dir) {\n dir = path.resolve(dir || '.')\n\n try {\n var name = runtimeRequire(path.join(dir, 'package.json')).name.toUpperCase().replace(/-/g, '_')\n if (process.env[name + '_PREBUILD']) dir = process.env[name + '_PREBUILD']\n } catch (err) {}\n\n if (!prebuildsOnly) {\n var release = getFirst(path.join(dir, 'build/Release'), matchBuild)\n if (release) return release\n\n var debug = getFirst(path.join(dir, 'build/Debug'), matchBuild)\n if (debug) return debug\n }\n\n var prebuild = resolve(dir)\n if (prebuild) return prebuild\n\n var nearby = resolve(path.dirname(process.execPath))\n if (nearby) return nearby\n\n var target = [\n 'platform=' + platform,\n 'arch=' + arch,\n 'runtime=' + runtime,\n 'abi=' + abi,\n 'uv=' + uv,\n armv ? 'armv=' + armv : '',\n 'libc=' + libc,\n 'node=' + process.versions.node,\n process.versions.electron ? 'electron=' + process.versions.electron : '',\n typeof __webpack_require__ === 'function' ? 'webpack=true' : '' // eslint-disable-line\n ].filter(Boolean).join(' ')\n\n throw new Error('No native build was found for ' + target + '\\n loaded from: ' + dir + '\\n')\n\n function resolve (dir) {\n // Find matching \"prebuilds/-\" directory\n var tuples = readdirSync(path.join(dir, 'prebuilds')).map(parseTuple)\n var tuple = tuples.filter(matchTuple(platform, arch)).sort(compareTuples)[0]\n if (!tuple) return\n\n // Find most specific flavor first\n var prebuilds = path.join(dir, 'prebuilds', tuple.name)\n var parsed = readdirSync(prebuilds).map(parseTags)\n var candidates = parsed.filter(matchTags(runtime, abi))\n var winner = candidates.sort(compareTags(runtime))[0]\n if (winner) return path.join(prebuilds, winner.file)\n }\n}\n\nfunction readdirSync (dir) {\n try {\n return fs.readdirSync(dir)\n } catch (err) {\n return []\n }\n}\n\nfunction getFirst (dir, filter) {\n var files = readdirSync(dir).filter(filter)\n return files[0] && path.join(dir, files[0])\n}\n\nfunction matchBuild (name) {\n return /\\.node$/.test(name)\n}\n\nfunction parseTuple (name) {\n // Example: darwin-x64+arm64\n var arr = name.split('-')\n if (arr.length !== 2) return\n\n var platform = arr[0]\n var architectures = arr[1].split('+')\n\n if (!platform) return\n if (!architectures.length) return\n if (!architectures.every(Boolean)) return\n\n return { name, platform, architectures }\n}\n\nfunction matchTuple (platform, arch) {\n return function (tuple) {\n if (tuple == null) return false\n if (tuple.platform !== platform) return false\n return tuple.architectures.includes(arch)\n }\n}\n\nfunction compareTuples (a, b) {\n // Prefer single-arch prebuilds over multi-arch\n return a.architectures.length - b.architectures.length\n}\n\nfunction parseTags (file) {\n var arr = file.split('.')\n var extension = arr.pop()\n var tags = { file: file, specificity: 0 }\n\n if (extension !== 'node') return\n\n for (var i = 0; i < arr.length; i++) {\n var tag = arr[i]\n\n if (tag === 'node' || tag === 'electron' || tag === 'node-webkit') {\n tags.runtime = tag\n } else if (tag === 'napi') {\n tags.napi = true\n } else if (tag.slice(0, 3) === 'abi') {\n tags.abi = tag.slice(3)\n } else if (tag.slice(0, 2) === 'uv') {\n tags.uv = tag.slice(2)\n } else if (tag.slice(0, 4) === 'armv') {\n tags.armv = tag.slice(4)\n } else if (tag === 'glibc' || tag === 'musl') {\n tags.libc = tag\n } else {\n continue\n }\n\n tags.specificity++\n }\n\n return tags\n}\n\nfunction matchTags (runtime, abi) {\n return function (tags) {\n if (tags == null) return false\n if (tags.runtime !== runtime && !runtimeAgnostic(tags)) return false\n if (tags.abi !== abi && !tags.napi) return false\n if (tags.uv && tags.uv !== uv) return false\n if (tags.armv && tags.armv !== armv) return false\n if (tags.libc && tags.libc !== libc) return false\n\n return true\n }\n}\n\nfunction runtimeAgnostic (tags) {\n return tags.runtime === 'node' && tags.napi\n}\n\nfunction compareTags (runtime) {\n // Precedence: non-agnostic runtime, abi over napi, then by specificity.\n return function (a, b) {\n if (a.runtime !== b.runtime) {\n return a.runtime === runtime ? -1 : 1\n } else if (a.abi !== b.abi) {\n return a.abi ? -1 : 1\n } else if (a.specificity !== b.specificity) {\n return a.specificity > b.specificity ? -1 : 1\n } else {\n return 0\n }\n }\n}\n\nfunction isElectron () {\n if (process.versions && process.versions.electron) return true\n if (process.env.ELECTRON_RUN_AS_NODE) return true\n return typeof window !== 'undefined' && window.process && window.process.type === 'renderer'\n}\n\nfunction isAlpine (platform) {\n return platform === 'linux' && fs.existsSync('/etc/alpine-release')\n}\n\n// Exposed for unit tests\n// TODO: move to lib\nload.parseTags = parseTags\nload.matchTags = matchTags\nload.compareTags = compareTags\nload.parseTuple = parseTuple\nload.matchTuple = matchTuple\nload.compareTuples = compareTuples\n", "'use strict';\n\n/**\n * Masks a buffer using the given mask.\n *\n * @param {Buffer} source The buffer to mask\n * @param {Buffer} mask The mask to use\n * @param {Buffer} output The buffer where to store the result\n * @param {Number} offset The offset at which to start writing\n * @param {Number} length The number of bytes to mask.\n * @public\n */\nconst mask = (source, mask, output, offset, length) => {\n for (var i = 0; i < length; i++) {\n output[offset + i] = source[i] ^ mask[i & 3];\n }\n};\n\n/**\n * Unmasks a buffer using the given mask.\n *\n * @param {Buffer} buffer The buffer to unmask\n * @param {Buffer} mask The mask to use\n * @public\n */\nconst unmask = (buffer, mask) => {\n // Required until https://github.com/nodejs/node/issues/9006 is resolved.\n const length = buffer.length;\n for (var i = 0; i < length; i++) {\n buffer[i] ^= mask[i & 3];\n }\n};\n\nmodule.exports = { mask, unmask };\n", "'use strict';\n\ntry {\n module.exports = require('node-gyp-build')(__dirname);\n} catch (e) {\n module.exports = require('./fallback');\n}\n", "'use strict';\n\nconst { EMPTY_BUFFER } = require('./constants');\n\n/**\n * Merges an array of buffers into a new buffer.\n *\n * @param {Buffer[]} list The array of buffers to concat\n * @param {Number} totalLength The total length of buffers in the list\n * @return {Buffer} The resulting buffer\n * @public\n */\nfunction concat(list, totalLength) {\n if (list.length === 0) return EMPTY_BUFFER;\n if (list.length === 1) return list[0];\n\n const target = Buffer.allocUnsafe(totalLength);\n let offset = 0;\n\n for (let i = 0; i < list.length; i++) {\n const buf = list[i];\n target.set(buf, offset);\n offset += buf.length;\n }\n\n if (offset < totalLength) return target.slice(0, offset);\n\n return target;\n}\n\n/**\n * Masks a buffer using the given mask.\n *\n * @param {Buffer} source The buffer to mask\n * @param {Buffer} mask The mask to use\n * @param {Buffer} output The buffer where to store the result\n * @param {Number} offset The offset at which to start writing\n * @param {Number} length The number of bytes to mask.\n * @public\n */\nfunction _mask(source, mask, output, offset, length) {\n for (let i = 0; i < length; i++) {\n output[offset + i] = source[i] ^ mask[i & 3];\n }\n}\n\n/**\n * Unmasks a buffer using the given mask.\n *\n * @param {Buffer} buffer The buffer to unmask\n * @param {Buffer} mask The mask to use\n * @public\n */\nfunction _unmask(buffer, mask) {\n // Required until https://github.com/nodejs/node/issues/9006 is resolved.\n const length = buffer.length;\n for (let i = 0; i < length; i++) {\n buffer[i] ^= mask[i & 3];\n }\n}\n\n/**\n * Converts a buffer to an `ArrayBuffer`.\n *\n * @param {Buffer} buf The buffer to convert\n * @return {ArrayBuffer} Converted buffer\n * @public\n */\nfunction toArrayBuffer(buf) {\n if (buf.byteLength === buf.buffer.byteLength) {\n return buf.buffer;\n }\n\n return buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength);\n}\n\n/**\n * Converts `data` to a `Buffer`.\n *\n * @param {*} data The data to convert\n * @return {Buffer} The buffer\n * @throws {TypeError}\n * @public\n */\nfunction toBuffer(data) {\n toBuffer.readOnly = true;\n\n if (Buffer.isBuffer(data)) return data;\n\n let buf;\n\n if (data instanceof ArrayBuffer) {\n buf = Buffer.from(data);\n } else if (ArrayBuffer.isView(data)) {\n buf = Buffer.from(data.buffer, data.byteOffset, data.byteLength);\n } else {\n buf = Buffer.from(data);\n toBuffer.readOnly = false;\n }\n\n return buf;\n}\n\ntry {\n const bufferUtil = require('bufferutil');\n const bu = bufferUtil.BufferUtil || bufferUtil;\n\n module.exports = {\n concat,\n mask(source, mask, output, offset, length) {\n if (length < 48) _mask(source, mask, output, offset, length);\n else bu.mask(source, mask, output, offset, length);\n },\n toArrayBuffer,\n toBuffer,\n unmask(buffer, mask) {\n if (buffer.length < 32) _unmask(buffer, mask);\n else bu.unmask(buffer, mask);\n }\n };\n} catch (e) /* istanbul ignore next */ {\n module.exports = {\n concat,\n mask: _mask,\n toArrayBuffer,\n toBuffer,\n unmask: _unmask\n };\n}\n", "'use strict';\n\nconst kDone = Symbol('kDone');\nconst kRun = Symbol('kRun');\n\n/**\n * A very simple job queue with adjustable concurrency. Adapted from\n * https://github.com/STRML/async-limiter\n */\nclass Limiter {\n /**\n * Creates a new `Limiter`.\n *\n * @param {Number} [concurrency=Infinity] The maximum number of jobs allowed\n * to run concurrently\n */\n constructor(concurrency) {\n this[kDone] = () => {\n this.pending--;\n this[kRun]();\n };\n this.concurrency = concurrency || Infinity;\n this.jobs = [];\n this.pending = 0;\n }\n\n /**\n * Adds a job to the queue.\n *\n * @param {Function} job The job to run\n * @public\n */\n add(job) {\n this.jobs.push(job);\n this[kRun]();\n }\n\n /**\n * Removes a job from the queue and runs it if possible.\n *\n * @private\n */\n [kRun]() {\n if (this.pending === this.concurrency) return;\n\n if (this.jobs.length) {\n const job = this.jobs.shift();\n\n this.pending++;\n job(this[kDone]);\n }\n }\n}\n\nmodule.exports = Limiter;\n", "'use strict';\n\nconst zlib = require('zlib');\n\nconst bufferUtil = require('./buffer-util');\nconst Limiter = require('./limiter');\nconst { kStatusCode, NOOP } = require('./constants');\n\nconst TRAILER = Buffer.from([0x00, 0x00, 0xff, 0xff]);\nconst kPerMessageDeflate = Symbol('permessage-deflate');\nconst kTotalLength = Symbol('total-length');\nconst kCallback = Symbol('callback');\nconst kBuffers = Symbol('buffers');\nconst kError = Symbol('error');\n\n//\n// We limit zlib concurrency, which prevents severe memory fragmentation\n// as documented in https://github.com/nodejs/node/issues/8871#issuecomment-250915913\n// and https://github.com/websockets/ws/issues/1202\n//\n// Intentionally global; it's the global thread pool that's an issue.\n//\nlet zlibLimiter;\n\n/**\n * permessage-deflate implementation.\n */\nclass PerMessageDeflate {\n /**\n * Creates a PerMessageDeflate instance.\n *\n * @param {Object} [options] Configuration options\n * @param {Boolean} [options.serverNoContextTakeover=false] Request/accept\n * disabling of server context takeover\n * @param {Boolean} [options.clientNoContextTakeover=false] Advertise/\n * acknowledge disabling of client context takeover\n * @param {(Boolean|Number)} [options.serverMaxWindowBits] Request/confirm the\n * use of a custom server window size\n * @param {(Boolean|Number)} [options.clientMaxWindowBits] Advertise support\n * for, or request, a custom client window size\n * @param {Object} [options.zlibDeflateOptions] Options to pass to zlib on\n * deflate\n * @param {Object} [options.zlibInflateOptions] Options to pass to zlib on\n * inflate\n * @param {Number} [options.threshold=1024] Size (in bytes) below which\n * messages should not be compressed\n * @param {Number} [options.concurrencyLimit=10] The number of concurrent\n * calls to zlib\n * @param {Boolean} [isServer=false] Create the instance in either server or\n * client mode\n * @param {Number} [maxPayload=0] The maximum allowed message length\n */\n constructor(options, isServer, maxPayload) {\n this._maxPayload = maxPayload | 0;\n this._options = options || {};\n this._threshold =\n this._options.threshold !== undefined ? this._options.threshold : 1024;\n this._isServer = !!isServer;\n this._deflate = null;\n this._inflate = null;\n\n this.params = null;\n\n if (!zlibLimiter) {\n const concurrency =\n this._options.concurrencyLimit !== undefined\n ? this._options.concurrencyLimit\n : 10;\n zlibLimiter = new Limiter(concurrency);\n }\n }\n\n /**\n * @type {String}\n */\n static get extensionName() {\n return 'permessage-deflate';\n }\n\n /**\n * Create an extension negotiation offer.\n *\n * @return {Object} Extension parameters\n * @public\n */\n offer() {\n const params = {};\n\n if (this._options.serverNoContextTakeover) {\n params.server_no_context_takeover = true;\n }\n if (this._options.clientNoContextTakeover) {\n params.client_no_context_takeover = true;\n }\n if (this._options.serverMaxWindowBits) {\n params.server_max_window_bits = this._options.serverMaxWindowBits;\n }\n if (this._options.clientMaxWindowBits) {\n params.client_max_window_bits = this._options.clientMaxWindowBits;\n } else if (this._options.clientMaxWindowBits == null) {\n params.client_max_window_bits = true;\n }\n\n return params;\n }\n\n /**\n * Accept an extension negotiation offer/response.\n *\n * @param {Array} configurations The extension negotiation offers/reponse\n * @return {Object} Accepted configuration\n * @public\n */\n accept(configurations) {\n configurations = this.normalizeParams(configurations);\n\n this.params = this._isServer\n ? this.acceptAsServer(configurations)\n : this.acceptAsClient(configurations);\n\n return this.params;\n }\n\n /**\n * Releases all resources used by the extension.\n *\n * @public\n */\n cleanup() {\n if (this._inflate) {\n this._inflate.close();\n this._inflate = null;\n }\n\n if (this._deflate) {\n const callback = this._deflate[kCallback];\n\n this._deflate.close();\n this._deflate = null;\n\n if (callback) {\n callback(\n new Error(\n 'The deflate stream was closed while data was being processed'\n )\n );\n }\n }\n }\n\n /**\n * Accept an extension negotiation offer.\n *\n * @param {Array} offers The extension negotiation offers\n * @return {Object} Accepted configuration\n * @private\n */\n acceptAsServer(offers) {\n const opts = this._options;\n const accepted = offers.find((params) => {\n if (\n (opts.serverNoContextTakeover === false &&\n params.server_no_context_takeover) ||\n (params.server_max_window_bits &&\n (opts.serverMaxWindowBits === false ||\n (typeof opts.serverMaxWindowBits === 'number' &&\n opts.serverMaxWindowBits > params.server_max_window_bits))) ||\n (typeof opts.clientMaxWindowBits === 'number' &&\n !params.client_max_window_bits)\n ) {\n return false;\n }\n\n return true;\n });\n\n if (!accepted) {\n throw new Error('None of the extension offers can be accepted');\n }\n\n if (opts.serverNoContextTakeover) {\n accepted.server_no_context_takeover = true;\n }\n if (opts.clientNoContextTakeover) {\n accepted.client_no_context_takeover = true;\n }\n if (typeof opts.serverMaxWindowBits === 'number') {\n accepted.server_max_window_bits = opts.serverMaxWindowBits;\n }\n if (typeof opts.clientMaxWindowBits === 'number') {\n accepted.client_max_window_bits = opts.clientMaxWindowBits;\n } else if (\n accepted.client_max_window_bits === true ||\n opts.clientMaxWindowBits === false\n ) {\n delete accepted.client_max_window_bits;\n }\n\n return accepted;\n }\n\n /**\n * Accept the extension negotiation response.\n *\n * @param {Array} response The extension negotiation response\n * @return {Object} Accepted configuration\n * @private\n */\n acceptAsClient(response) {\n const params = response[0];\n\n if (\n this._options.clientNoContextTakeover === false &&\n params.client_no_context_takeover\n ) {\n throw new Error('Unexpected parameter \"client_no_context_takeover\"');\n }\n\n if (!params.client_max_window_bits) {\n if (typeof this._options.clientMaxWindowBits === 'number') {\n params.client_max_window_bits = this._options.clientMaxWindowBits;\n }\n } else if (\n this._options.clientMaxWindowBits === false ||\n (typeof this._options.clientMaxWindowBits === 'number' &&\n params.client_max_window_bits > this._options.clientMaxWindowBits)\n ) {\n throw new Error(\n 'Unexpected or invalid parameter \"client_max_window_bits\"'\n );\n }\n\n return params;\n }\n\n /**\n * Normalize parameters.\n *\n * @param {Array} configurations The extension negotiation offers/reponse\n * @return {Array} The offers/response with normalized parameters\n * @private\n */\n normalizeParams(configurations) {\n configurations.forEach((params) => {\n Object.keys(params).forEach((key) => {\n let value = params[key];\n\n if (value.length > 1) {\n throw new Error(`Parameter \"${key}\" must have only a single value`);\n }\n\n value = value[0];\n\n if (key === 'client_max_window_bits') {\n if (value !== true) {\n const num = +value;\n if (!Number.isInteger(num) || num < 8 || num > 15) {\n throw new TypeError(\n `Invalid value for parameter \"${key}\": ${value}`\n );\n }\n value = num;\n } else if (!this._isServer) {\n throw new TypeError(\n `Invalid value for parameter \"${key}\": ${value}`\n );\n }\n } else if (key === 'server_max_window_bits') {\n const num = +value;\n if (!Number.isInteger(num) || num < 8 || num > 15) {\n throw new TypeError(\n `Invalid value for parameter \"${key}\": ${value}`\n );\n }\n value = num;\n } else if (\n key === 'client_no_context_takeover' ||\n key === 'server_no_context_takeover'\n ) {\n if (value !== true) {\n throw new TypeError(\n `Invalid value for parameter \"${key}\": ${value}`\n );\n }\n } else {\n throw new Error(`Unknown parameter \"${key}\"`);\n }\n\n params[key] = value;\n });\n });\n\n return configurations;\n }\n\n /**\n * Decompress data. Concurrency limited.\n *\n * @param {Buffer} data Compressed data\n * @param {Boolean} fin Specifies whether or not this is the last fragment\n * @param {Function} callback Callback\n * @public\n */\n decompress(data, fin, callback) {\n zlibLimiter.add((done) => {\n this._decompress(data, fin, (err, result) => {\n done();\n callback(err, result);\n });\n });\n }\n\n /**\n * Compress data. Concurrency limited.\n *\n * @param {Buffer} data Data to compress\n * @param {Boolean} fin Specifies whether or not this is the last fragment\n * @param {Function} callback Callback\n * @public\n */\n compress(data, fin, callback) {\n zlibLimiter.add((done) => {\n this._compress(data, fin, (err, result) => {\n done();\n callback(err, result);\n });\n });\n }\n\n /**\n * Decompress data.\n *\n * @param {Buffer} data Compressed data\n * @param {Boolean} fin Specifies whether or not this is the last fragment\n * @param {Function} callback Callback\n * @private\n */\n _decompress(data, fin, callback) {\n const endpoint = this._isServer ? 'client' : 'server';\n\n if (!this._inflate) {\n const key = `${endpoint}_max_window_bits`;\n const windowBits =\n typeof this.params[key] !== 'number'\n ? zlib.Z_DEFAULT_WINDOWBITS\n : this.params[key];\n\n this._inflate = zlib.createInflateRaw({\n ...this._options.zlibInflateOptions,\n windowBits\n });\n this._inflate[kPerMessageDeflate] = this;\n this._inflate[kTotalLength] = 0;\n this._inflate[kBuffers] = [];\n this._inflate.on('error', inflateOnError);\n this._inflate.on('data', inflateOnData);\n }\n\n this._inflate[kCallback] = callback;\n\n this._inflate.write(data);\n if (fin) this._inflate.write(TRAILER);\n\n this._inflate.flush(() => {\n const err = this._inflate[kError];\n\n if (err) {\n this._inflate.close();\n this._inflate = null;\n callback(err);\n return;\n }\n\n const data = bufferUtil.concat(\n this._inflate[kBuffers],\n this._inflate[kTotalLength]\n );\n\n if (this._inflate._readableState.endEmitted) {\n this._inflate.close();\n this._inflate = null;\n } else {\n this._inflate[kTotalLength] = 0;\n this._inflate[kBuffers] = [];\n\n if (fin && this.params[`${endpoint}_no_context_takeover`]) {\n this._inflate.reset();\n }\n }\n\n callback(null, data);\n });\n }\n\n /**\n * Compress data.\n *\n * @param {Buffer} data Data to compress\n * @param {Boolean} fin Specifies whether or not this is the last fragment\n * @param {Function} callback Callback\n * @private\n */\n _compress(data, fin, callback) {\n const endpoint = this._isServer ? 'server' : 'client';\n\n if (!this._deflate) {\n const key = `${endpoint}_max_window_bits`;\n const windowBits =\n typeof this.params[key] !== 'number'\n ? zlib.Z_DEFAULT_WINDOWBITS\n : this.params[key];\n\n this._deflate = zlib.createDeflateRaw({\n ...this._options.zlibDeflateOptions,\n windowBits\n });\n\n this._deflate[kTotalLength] = 0;\n this._deflate[kBuffers] = [];\n\n //\n // An `'error'` event is emitted, only on Node.js < 10.0.0, if the\n // `zlib.DeflateRaw` instance is closed while data is being processed.\n // This can happen if `PerMessageDeflate#cleanup()` is called at the wrong\n // time due to an abnormal WebSocket closure.\n //\n this._deflate.on('error', NOOP);\n this._deflate.on('data', deflateOnData);\n }\n\n this._deflate[kCallback] = callback;\n\n this._deflate.write(data);\n this._deflate.flush(zlib.Z_SYNC_FLUSH, () => {\n if (!this._deflate) {\n //\n // The deflate stream was closed while data was being processed.\n //\n return;\n }\n\n let data = bufferUtil.concat(\n this._deflate[kBuffers],\n this._deflate[kTotalLength]\n );\n\n if (fin) data = data.slice(0, data.length - 4);\n\n //\n // Ensure that the callback will not be called again in\n // `PerMessageDeflate#cleanup()`.\n //\n this._deflate[kCallback] = null;\n\n this._deflate[kTotalLength] = 0;\n this._deflate[kBuffers] = [];\n\n if (fin && this.params[`${endpoint}_no_context_takeover`]) {\n this._deflate.reset();\n }\n\n callback(null, data);\n });\n }\n}\n\nmodule.exports = PerMessageDeflate;\n\n/**\n * The listener of the `zlib.DeflateRaw` stream `'data'` event.\n *\n * @param {Buffer} chunk A chunk of data\n * @private\n */\nfunction deflateOnData(chunk) {\n this[kBuffers].push(chunk);\n this[kTotalLength] += chunk.length;\n}\n\n/**\n * The listener of the `zlib.InflateRaw` stream `'data'` event.\n *\n * @param {Buffer} chunk A chunk of data\n * @private\n */\nfunction inflateOnData(chunk) {\n this[kTotalLength] += chunk.length;\n\n if (\n this[kPerMessageDeflate]._maxPayload < 1 ||\n this[kTotalLength] <= this[kPerMessageDeflate]._maxPayload\n ) {\n this[kBuffers].push(chunk);\n return;\n }\n\n this[kError] = new RangeError('Max payload size exceeded');\n this[kError][kStatusCode] = 1009;\n this.removeListener('data', inflateOnData);\n this.reset();\n}\n\n/**\n * The listener of the `zlib.InflateRaw` stream `'error'` event.\n *\n * @param {Error} err The emitted error\n * @private\n */\nfunction inflateOnError(err) {\n //\n // There is no need to call `Zlib#close()` as the handle is automatically\n // closed when an error is emitted.\n //\n this[kPerMessageDeflate]._inflate = null;\n err[kStatusCode] = 1007;\n this[kCallback](err);\n}\n", "'use strict';\n\n/**\n * Checks if a given buffer contains only correct UTF-8.\n * Ported from https://www.cl.cam.ac.uk/%7Emgk25/ucs/utf8_check.c by\n * Markus Kuhn.\n *\n * @param {Buffer} buf The buffer to check\n * @return {Boolean} `true` if `buf` contains only correct UTF-8, else `false`\n * @public\n */\nfunction isValidUTF8(buf) {\n const len = buf.length;\n let i = 0;\n\n while (i < len) {\n if ((buf[i] & 0x80) === 0x00) { // 0xxxxxxx\n i++;\n } else if ((buf[i] & 0xe0) === 0xc0) { // 110xxxxx 10xxxxxx\n if (\n i + 1 === len ||\n (buf[i + 1] & 0xc0) !== 0x80 ||\n (buf[i] & 0xfe) === 0xc0 // overlong\n ) {\n return false;\n }\n\n i += 2;\n } else if ((buf[i] & 0xf0) === 0xe0) { // 1110xxxx 10xxxxxx 10xxxxxx\n if (\n i + 2 >= len ||\n (buf[i + 1] & 0xc0) !== 0x80 ||\n (buf[i + 2] & 0xc0) !== 0x80 ||\n buf[i] === 0xe0 && (buf[i + 1] & 0xe0) === 0x80 || // overlong\n buf[i] === 0xed && (buf[i + 1] & 0xe0) === 0xa0 // surrogate (U+D800 - U+DFFF)\n ) {\n return false;\n }\n\n i += 3;\n } else if ((buf[i] & 0xf8) === 0xf0) { // 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx\n if (\n i + 3 >= len ||\n (buf[i + 1] & 0xc0) !== 0x80 ||\n (buf[i + 2] & 0xc0) !== 0x80 ||\n (buf[i + 3] & 0xc0) !== 0x80 ||\n buf[i] === 0xf0 && (buf[i + 1] & 0xf0) === 0x80 || // overlong\n buf[i] === 0xf4 && buf[i + 1] > 0x8f || buf[i] > 0xf4 // > U+10FFFF\n ) {\n return false;\n }\n\n i += 4;\n } else {\n return false;\n }\n }\n\n return true;\n}\n\nmodule.exports = isValidUTF8;\n", "'use strict';\n\ntry {\n module.exports = require('node-gyp-build')(__dirname);\n} catch (e) {\n module.exports = require('./fallback');\n}\n", "'use strict';\n\n/**\n * Checks if a status code is allowed in a close frame.\n *\n * @param {Number} code The status code\n * @return {Boolean} `true` if the status code is valid, else `false`\n * @public\n */\nfunction isValidStatusCode(code) {\n return (\n (code >= 1000 &&\n code <= 1014 &&\n code !== 1004 &&\n code !== 1005 &&\n code !== 1006) ||\n (code >= 3000 && code <= 4999)\n );\n}\n\n/**\n * Checks if a given buffer contains only correct UTF-8.\n * Ported from https://www.cl.cam.ac.uk/%7Emgk25/ucs/utf8_check.c by\n * Markus Kuhn.\n *\n * @param {Buffer} buf The buffer to check\n * @return {Boolean} `true` if `buf` contains only correct UTF-8, else `false`\n * @public\n */\nfunction _isValidUTF8(buf) {\n const len = buf.length;\n let i = 0;\n\n while (i < len) {\n if ((buf[i] & 0x80) === 0) {\n // 0xxxxxxx\n i++;\n } else if ((buf[i] & 0xe0) === 0xc0) {\n // 110xxxxx 10xxxxxx\n if (\n i + 1 === len ||\n (buf[i + 1] & 0xc0) !== 0x80 ||\n (buf[i] & 0xfe) === 0xc0 // Overlong\n ) {\n return false;\n }\n\n i += 2;\n } else if ((buf[i] & 0xf0) === 0xe0) {\n // 1110xxxx 10xxxxxx 10xxxxxx\n if (\n i + 2 >= len ||\n (buf[i + 1] & 0xc0) !== 0x80 ||\n (buf[i + 2] & 0xc0) !== 0x80 ||\n (buf[i] === 0xe0 && (buf[i + 1] & 0xe0) === 0x80) || // Overlong\n (buf[i] === 0xed && (buf[i + 1] & 0xe0) === 0xa0) // Surrogate (U+D800 - U+DFFF)\n ) {\n return false;\n }\n\n i += 3;\n } else if ((buf[i] & 0xf8) === 0xf0) {\n // 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx\n if (\n i + 3 >= len ||\n (buf[i + 1] & 0xc0) !== 0x80 ||\n (buf[i + 2] & 0xc0) !== 0x80 ||\n (buf[i + 3] & 0xc0) !== 0x80 ||\n (buf[i] === 0xf0 && (buf[i + 1] & 0xf0) === 0x80) || // Overlong\n (buf[i] === 0xf4 && buf[i + 1] > 0x8f) ||\n buf[i] > 0xf4 // > U+10FFFF\n ) {\n return false;\n }\n\n i += 4;\n } else {\n return false;\n }\n }\n\n return true;\n}\n\ntry {\n let isValidUTF8 = require('utf-8-validate');\n\n /* istanbul ignore if */\n if (typeof isValidUTF8 === 'object') {\n isValidUTF8 = isValidUTF8.Validation.isValidUTF8; // utf-8-validate@<3.0.0\n }\n\n module.exports = {\n isValidStatusCode,\n isValidUTF8(buf) {\n return buf.length < 150 ? _isValidUTF8(buf) : isValidUTF8(buf);\n }\n };\n} catch (e) /* istanbul ignore next */ {\n module.exports = {\n isValidStatusCode,\n isValidUTF8: _isValidUTF8\n };\n}\n", "'use strict';\n\nconst { Writable } = require('stream');\n\nconst PerMessageDeflate = require('./permessage-deflate');\nconst {\n BINARY_TYPES,\n EMPTY_BUFFER,\n kStatusCode,\n kWebSocket\n} = require('./constants');\nconst { concat, toArrayBuffer, unmask } = require('./buffer-util');\nconst { isValidStatusCode, isValidUTF8 } = require('./validation');\n\nconst GET_INFO = 0;\nconst GET_PAYLOAD_LENGTH_16 = 1;\nconst GET_PAYLOAD_LENGTH_64 = 2;\nconst GET_MASK = 3;\nconst GET_DATA = 4;\nconst INFLATING = 5;\n\n/**\n * HyBi Receiver implementation.\n *\n * @extends stream.Writable\n */\nclass Receiver extends Writable {\n /**\n * Creates a Receiver instance.\n *\n * @param {String} [binaryType=nodebuffer] The type for binary data\n * @param {Object} [extensions] An object containing the negotiated extensions\n * @param {Boolean} [isServer=false] Specifies whether to operate in client or\n * server mode\n * @param {Number} [maxPayload=0] The maximum allowed message length\n */\n constructor(binaryType, extensions, isServer, maxPayload) {\n super();\n\n this._binaryType = binaryType || BINARY_TYPES[0];\n this[kWebSocket] = undefined;\n this._extensions = extensions || {};\n this._isServer = !!isServer;\n this._maxPayload = maxPayload | 0;\n\n this._bufferedBytes = 0;\n this._buffers = [];\n\n this._compressed = false;\n this._payloadLength = 0;\n this._mask = undefined;\n this._fragmented = 0;\n this._masked = false;\n this._fin = false;\n this._opcode = 0;\n\n this._totalPayloadLength = 0;\n this._messageLength = 0;\n this._fragments = [];\n\n this._state = GET_INFO;\n this._loop = false;\n }\n\n /**\n * Implements `Writable.prototype._write()`.\n *\n * @param {Buffer} chunk The chunk of data to write\n * @param {String} encoding The character encoding of `chunk`\n * @param {Function} cb Callback\n * @private\n */\n _write(chunk, encoding, cb) {\n if (this._opcode === 0x08 && this._state == GET_INFO) return cb();\n\n this._bufferedBytes += chunk.length;\n this._buffers.push(chunk);\n this.startLoop(cb);\n }\n\n /**\n * Consumes `n` bytes from the buffered data.\n *\n * @param {Number} n The number of bytes to consume\n * @return {Buffer} The consumed bytes\n * @private\n */\n consume(n) {\n this._bufferedBytes -= n;\n\n if (n === this._buffers[0].length) return this._buffers.shift();\n\n if (n < this._buffers[0].length) {\n const buf = this._buffers[0];\n this._buffers[0] = buf.slice(n);\n return buf.slice(0, n);\n }\n\n const dst = Buffer.allocUnsafe(n);\n\n do {\n const buf = this._buffers[0];\n const offset = dst.length - n;\n\n if (n >= buf.length) {\n dst.set(this._buffers.shift(), offset);\n } else {\n dst.set(new Uint8Array(buf.buffer, buf.byteOffset, n), offset);\n this._buffers[0] = buf.slice(n);\n }\n\n n -= buf.length;\n } while (n > 0);\n\n return dst;\n }\n\n /**\n * Starts the parsing loop.\n *\n * @param {Function} cb Callback\n * @private\n */\n startLoop(cb) {\n let err;\n this._loop = true;\n\n do {\n switch (this._state) {\n case GET_INFO:\n err = this.getInfo();\n break;\n case GET_PAYLOAD_LENGTH_16:\n err = this.getPayloadLength16();\n break;\n case GET_PAYLOAD_LENGTH_64:\n err = this.getPayloadLength64();\n break;\n case GET_MASK:\n this.getMask();\n break;\n case GET_DATA:\n err = this.getData(cb);\n break;\n default:\n // `INFLATING`\n this._loop = false;\n return;\n }\n } while (this._loop);\n\n cb(err);\n }\n\n /**\n * Reads the first two bytes of a frame.\n *\n * @return {(RangeError|undefined)} A possible error\n * @private\n */\n getInfo() {\n if (this._bufferedBytes < 2) {\n this._loop = false;\n return;\n }\n\n const buf = this.consume(2);\n\n if ((buf[0] & 0x30) !== 0x00) {\n this._loop = false;\n return error(RangeError, 'RSV2 and RSV3 must be clear', true, 1002);\n }\n\n const compressed = (buf[0] & 0x40) === 0x40;\n\n if (compressed && !this._extensions[PerMessageDeflate.extensionName]) {\n this._loop = false;\n return error(RangeError, 'RSV1 must be clear', true, 1002);\n }\n\n this._fin = (buf[0] & 0x80) === 0x80;\n this._opcode = buf[0] & 0x0f;\n this._payloadLength = buf[1] & 0x7f;\n\n if (this._opcode === 0x00) {\n if (compressed) {\n this._loop = false;\n return error(RangeError, 'RSV1 must be clear', true, 1002);\n }\n\n if (!this._fragmented) {\n this._loop = false;\n return error(RangeError, 'invalid opcode 0', true, 1002);\n }\n\n this._opcode = this._fragmented;\n } else if (this._opcode === 0x01 || this._opcode === 0x02) {\n if (this._fragmented) {\n this._loop = false;\n return error(RangeError, `invalid opcode ${this._opcode}`, true, 1002);\n }\n\n this._compressed = compressed;\n } else if (this._opcode > 0x07 && this._opcode < 0x0b) {\n if (!this._fin) {\n this._loop = false;\n return error(RangeError, 'FIN must be set', true, 1002);\n }\n\n if (compressed) {\n this._loop = false;\n return error(RangeError, 'RSV1 must be clear', true, 1002);\n }\n\n if (this._payloadLength > 0x7d) {\n this._loop = false;\n return error(\n RangeError,\n `invalid payload length ${this._payloadLength}`,\n true,\n 1002\n );\n }\n } else {\n this._loop = false;\n return error(RangeError, `invalid opcode ${this._opcode}`, true, 1002);\n }\n\n if (!this._fin && !this._fragmented) this._fragmented = this._opcode;\n this._masked = (buf[1] & 0x80) === 0x80;\n\n if (this._isServer) {\n if (!this._masked) {\n this._loop = false;\n return error(RangeError, 'MASK must be set', true, 1002);\n }\n } else if (this._masked) {\n this._loop = false;\n return error(RangeError, 'MASK must be clear', true, 1002);\n }\n\n if (this._payloadLength === 126) this._state = GET_PAYLOAD_LENGTH_16;\n else if (this._payloadLength === 127) this._state = GET_PAYLOAD_LENGTH_64;\n else return this.haveLength();\n }\n\n /**\n * Gets extended payload length (7+16).\n *\n * @return {(RangeError|undefined)} A possible error\n * @private\n */\n getPayloadLength16() {\n if (this._bufferedBytes < 2) {\n this._loop = false;\n return;\n }\n\n this._payloadLength = this.consume(2).readUInt16BE(0);\n return this.haveLength();\n }\n\n /**\n * Gets extended payload length (7+64).\n *\n * @return {(RangeError|undefined)} A possible error\n * @private\n */\n getPayloadLength64() {\n if (this._bufferedBytes < 8) {\n this._loop = false;\n return;\n }\n\n const buf = this.consume(8);\n const num = buf.readUInt32BE(0);\n\n //\n // The maximum safe integer in JavaScript is 2^53 - 1. An error is returned\n // if payload length is greater than this number.\n //\n if (num > Math.pow(2, 53 - 32) - 1) {\n this._loop = false;\n return error(\n RangeError,\n 'Unsupported WebSocket frame: payload length > 2^53 - 1',\n false,\n 1009\n );\n }\n\n this._payloadLength = num * Math.pow(2, 32) + buf.readUInt32BE(4);\n return this.haveLength();\n }\n\n /**\n * Payload length has been read.\n *\n * @return {(RangeError|undefined)} A possible error\n * @private\n */\n haveLength() {\n if (this._payloadLength && this._opcode < 0x08) {\n this._totalPayloadLength += this._payloadLength;\n if (this._totalPayloadLength > this._maxPayload && this._maxPayload > 0) {\n this._loop = false;\n return error(RangeError, 'Max payload size exceeded', false, 1009);\n }\n }\n\n if (this._masked) this._state = GET_MASK;\n else this._state = GET_DATA;\n }\n\n /**\n * Reads mask bytes.\n *\n * @private\n */\n getMask() {\n if (this._bufferedBytes < 4) {\n this._loop = false;\n return;\n }\n\n this._mask = this.consume(4);\n this._state = GET_DATA;\n }\n\n /**\n * Reads data bytes.\n *\n * @param {Function} cb Callback\n * @return {(Error|RangeError|undefined)} A possible error\n * @private\n */\n getData(cb) {\n let data = EMPTY_BUFFER;\n\n if (this._payloadLength) {\n if (this._bufferedBytes < this._payloadLength) {\n this._loop = false;\n return;\n }\n\n data = this.consume(this._payloadLength);\n if (this._masked) unmask(data, this._mask);\n }\n\n if (this._opcode > 0x07) return this.controlMessage(data);\n\n if (this._compressed) {\n this._state = INFLATING;\n this.decompress(data, cb);\n return;\n }\n\n if (data.length) {\n //\n // This message is not compressed so its lenght is the sum of the payload\n // length of all fragments.\n //\n this._messageLength = this._totalPayloadLength;\n this._fragments.push(data);\n }\n\n return this.dataMessage();\n }\n\n /**\n * Decompresses data.\n *\n * @param {Buffer} data Compressed data\n * @param {Function} cb Callback\n * @private\n */\n decompress(data, cb) {\n const perMessageDeflate = this._extensions[PerMessageDeflate.extensionName];\n\n perMessageDeflate.decompress(data, this._fin, (err, buf) => {\n if (err) return cb(err);\n\n if (buf.length) {\n this._messageLength += buf.length;\n if (this._messageLength > this._maxPayload && this._maxPayload > 0) {\n return cb(\n error(RangeError, 'Max payload size exceeded', false, 1009)\n );\n }\n\n this._fragments.push(buf);\n }\n\n const er = this.dataMessage();\n if (er) return cb(er);\n\n this.startLoop(cb);\n });\n }\n\n /**\n * Handles a data message.\n *\n * @return {(Error|undefined)} A possible error\n * @private\n */\n dataMessage() {\n if (this._fin) {\n const messageLength = this._messageLength;\n const fragments = this._fragments;\n\n this._totalPayloadLength = 0;\n this._messageLength = 0;\n this._fragmented = 0;\n this._fragments = [];\n\n if (this._opcode === 2) {\n let data;\n\n if (this._binaryType === 'nodebuffer') {\n data = concat(fragments, messageLength);\n } else if (this._binaryType === 'arraybuffer') {\n data = toArrayBuffer(concat(fragments, messageLength));\n } else {\n data = fragments;\n }\n\n this.emit('message', data);\n } else {\n const buf = concat(fragments, messageLength);\n\n if (!isValidUTF8(buf)) {\n this._loop = false;\n return error(Error, 'invalid UTF-8 sequence', true, 1007);\n }\n\n this.emit('message', buf.toString());\n }\n }\n\n this._state = GET_INFO;\n }\n\n /**\n * Handles a control message.\n *\n * @param {Buffer} data Data to handle\n * @return {(Error|RangeError|undefined)} A possible error\n * @private\n */\n controlMessage(data) {\n if (this._opcode === 0x08) {\n this._loop = false;\n\n if (data.length === 0) {\n this.emit('conclude', 1005, '');\n this.end();\n } else if (data.length === 1) {\n return error(RangeError, 'invalid payload length 1', true, 1002);\n } else {\n const code = data.readUInt16BE(0);\n\n if (!isValidStatusCode(code)) {\n return error(RangeError, `invalid status code ${code}`, true, 1002);\n }\n\n const buf = data.slice(2);\n\n if (!isValidUTF8(buf)) {\n return error(Error, 'invalid UTF-8 sequence', true, 1007);\n }\n\n this.emit('conclude', code, buf.toString());\n this.end();\n }\n } else if (this._opcode === 0x09) {\n this.emit('ping', data);\n } else {\n this.emit('pong', data);\n }\n\n this._state = GET_INFO;\n }\n}\n\nmodule.exports = Receiver;\n\n/**\n * Builds an error object.\n *\n * @param {(Error|RangeError)} ErrorCtor The error constructor\n * @param {String} message The error message\n * @param {Boolean} prefix Specifies whether or not to add a default prefix to\n * `message`\n * @param {Number} statusCode The status code\n * @return {(Error|RangeError)} The error\n * @private\n */\nfunction error(ErrorCtor, message, prefix, statusCode) {\n const err = new ErrorCtor(\n prefix ? `Invalid WebSocket frame: ${message}` : message\n );\n\n Error.captureStackTrace(err, error);\n err[kStatusCode] = statusCode;\n return err;\n}\n", "'use strict';\n\nconst { randomFillSync } = require('crypto');\n\nconst PerMessageDeflate = require('./permessage-deflate');\nconst { EMPTY_BUFFER } = require('./constants');\nconst { isValidStatusCode } = require('./validation');\nconst { mask: applyMask, toBuffer } = require('./buffer-util');\n\nconst mask = Buffer.alloc(4);\n\n/**\n * HyBi Sender implementation.\n */\nclass Sender {\n /**\n * Creates a Sender instance.\n *\n * @param {net.Socket} socket The connection socket\n * @param {Object} [extensions] An object containing the negotiated extensions\n */\n constructor(socket, extensions) {\n this._extensions = extensions || {};\n this._socket = socket;\n\n this._firstFragment = true;\n this._compress = false;\n\n this._bufferedBytes = 0;\n this._deflating = false;\n this._queue = [];\n }\n\n /**\n * Frames a piece of data according to the HyBi WebSocket protocol.\n *\n * @param {Buffer} data The data to frame\n * @param {Object} options Options object\n * @param {Number} options.opcode The opcode\n * @param {Boolean} [options.readOnly=false] Specifies whether `data` can be\n * modified\n * @param {Boolean} [options.fin=false] Specifies whether or not to set the\n * FIN bit\n * @param {Boolean} [options.mask=false] Specifies whether or not to mask\n * `data`\n * @param {Boolean} [options.rsv1=false] Specifies whether or not to set the\n * RSV1 bit\n * @return {Buffer[]} The framed data as a list of `Buffer` instances\n * @public\n */\n static frame(data, options) {\n const merge = options.mask && options.readOnly;\n let offset = options.mask ? 6 : 2;\n let payloadLength = data.length;\n\n if (data.length >= 65536) {\n offset += 8;\n payloadLength = 127;\n } else if (data.length > 125) {\n offset += 2;\n payloadLength = 126;\n }\n\n const target = Buffer.allocUnsafe(merge ? data.length + offset : offset);\n\n target[0] = options.fin ? options.opcode | 0x80 : options.opcode;\n if (options.rsv1) target[0] |= 0x40;\n\n target[1] = payloadLength;\n\n if (payloadLength === 126) {\n target.writeUInt16BE(data.length, 2);\n } else if (payloadLength === 127) {\n target.writeUInt32BE(0, 2);\n target.writeUInt32BE(data.length, 6);\n }\n\n if (!options.mask) return [target, data];\n\n randomFillSync(mask, 0, 4);\n\n target[1] |= 0x80;\n target[offset - 4] = mask[0];\n target[offset - 3] = mask[1];\n target[offset - 2] = mask[2];\n target[offset - 1] = mask[3];\n\n if (merge) {\n applyMask(data, mask, target, offset, data.length);\n return [target];\n }\n\n applyMask(data, mask, data, 0, data.length);\n return [target, data];\n }\n\n /**\n * Sends a close message to the other peer.\n *\n * @param {Number} [code] The status code component of the body\n * @param {String} [data] The message component of the body\n * @param {Boolean} [mask=false] Specifies whether or not to mask the message\n * @param {Function} [cb] Callback\n * @public\n */\n close(code, data, mask, cb) {\n let buf;\n\n if (code === undefined) {\n buf = EMPTY_BUFFER;\n } else if (typeof code !== 'number' || !isValidStatusCode(code)) {\n throw new TypeError('First argument must be a valid error code number');\n } else if (data === undefined || data === '') {\n buf = Buffer.allocUnsafe(2);\n buf.writeUInt16BE(code, 0);\n } else {\n const length = Buffer.byteLength(data);\n\n if (length > 123) {\n throw new RangeError('The message must not be greater than 123 bytes');\n }\n\n buf = Buffer.allocUnsafe(2 + length);\n buf.writeUInt16BE(code, 0);\n buf.write(data, 2);\n }\n\n if (this._deflating) {\n this.enqueue([this.doClose, buf, mask, cb]);\n } else {\n this.doClose(buf, mask, cb);\n }\n }\n\n /**\n * Frames and sends a close message.\n *\n * @param {Buffer} data The message to send\n * @param {Boolean} [mask=false] Specifies whether or not to mask `data`\n * @param {Function} [cb] Callback\n * @private\n */\n doClose(data, mask, cb) {\n this.sendFrame(\n Sender.frame(data, {\n fin: true,\n rsv1: false,\n opcode: 0x08,\n mask,\n readOnly: false\n }),\n cb\n );\n }\n\n /**\n * Sends a ping message to the other peer.\n *\n * @param {*} data The message to send\n * @param {Boolean} [mask=false] Specifies whether or not to mask `data`\n * @param {Function} [cb] Callback\n * @public\n */\n ping(data, mask, cb) {\n const buf = toBuffer(data);\n\n if (buf.length > 125) {\n throw new RangeError('The data size must not be greater than 125 bytes');\n }\n\n if (this._deflating) {\n this.enqueue([this.doPing, buf, mask, toBuffer.readOnly, cb]);\n } else {\n this.doPing(buf, mask, toBuffer.readOnly, cb);\n }\n }\n\n /**\n * Frames and sends a ping message.\n *\n * @param {Buffer} data The message to send\n * @param {Boolean} [mask=false] Specifies whether or not to mask `data`\n * @param {Boolean} [readOnly=false] Specifies whether `data` can be modified\n * @param {Function} [cb] Callback\n * @private\n */\n doPing(data, mask, readOnly, cb) {\n this.sendFrame(\n Sender.frame(data, {\n fin: true,\n rsv1: false,\n opcode: 0x09,\n mask,\n readOnly\n }),\n cb\n );\n }\n\n /**\n * Sends a pong message to the other peer.\n *\n * @param {*} data The message to send\n * @param {Boolean} [mask=false] Specifies whether or not to mask `data`\n * @param {Function} [cb] Callback\n * @public\n */\n pong(data, mask, cb) {\n const buf = toBuffer(data);\n\n if (buf.length > 125) {\n throw new RangeError('The data size must not be greater than 125 bytes');\n }\n\n if (this._deflating) {\n this.enqueue([this.doPong, buf, mask, toBuffer.readOnly, cb]);\n } else {\n this.doPong(buf, mask, toBuffer.readOnly, cb);\n }\n }\n\n /**\n * Frames and sends a pong message.\n *\n * @param {Buffer} data The message to send\n * @param {Boolean} [mask=false] Specifies whether or not to mask `data`\n * @param {Boolean} [readOnly=false] Specifies whether `data` can be modified\n * @param {Function} [cb] Callback\n * @private\n */\n doPong(data, mask, readOnly, cb) {\n this.sendFrame(\n Sender.frame(data, {\n fin: true,\n rsv1: false,\n opcode: 0x0a,\n mask,\n readOnly\n }),\n cb\n );\n }\n\n /**\n * Sends a data message to the other peer.\n *\n * @param {*} data The message to send\n * @param {Object} options Options object\n * @param {Boolean} [options.compress=false] Specifies whether or not to\n * compress `data`\n * @param {Boolean} [options.binary=false] Specifies whether `data` is binary\n * or text\n * @param {Boolean} [options.fin=false] Specifies whether the fragment is the\n * last one\n * @param {Boolean} [options.mask=false] Specifies whether or not to mask\n * `data`\n * @param {Function} [cb] Callback\n * @public\n */\n send(data, options, cb) {\n const buf = toBuffer(data);\n const perMessageDeflate = this._extensions[PerMessageDeflate.extensionName];\n let opcode = options.binary ? 2 : 1;\n let rsv1 = options.compress;\n\n if (this._firstFragment) {\n this._firstFragment = false;\n if (rsv1 && perMessageDeflate) {\n rsv1 = buf.length >= perMessageDeflate._threshold;\n }\n this._compress = rsv1;\n } else {\n rsv1 = false;\n opcode = 0;\n }\n\n if (options.fin) this._firstFragment = true;\n\n if (perMessageDeflate) {\n const opts = {\n fin: options.fin,\n rsv1,\n opcode,\n mask: options.mask,\n readOnly: toBuffer.readOnly\n };\n\n if (this._deflating) {\n this.enqueue([this.dispatch, buf, this._compress, opts, cb]);\n } else {\n this.dispatch(buf, this._compress, opts, cb);\n }\n } else {\n this.sendFrame(\n Sender.frame(buf, {\n fin: options.fin,\n rsv1: false,\n opcode,\n mask: options.mask,\n readOnly: toBuffer.readOnly\n }),\n cb\n );\n }\n }\n\n /**\n * Dispatches a data message.\n *\n * @param {Buffer} data The message to send\n * @param {Boolean} [compress=false] Specifies whether or not to compress\n * `data`\n * @param {Object} options Options object\n * @param {Number} options.opcode The opcode\n * @param {Boolean} [options.readOnly=false] Specifies whether `data` can be\n * modified\n * @param {Boolean} [options.fin=false] Specifies whether or not to set the\n * FIN bit\n * @param {Boolean} [options.mask=false] Specifies whether or not to mask\n * `data`\n * @param {Boolean} [options.rsv1=false] Specifies whether or not to set the\n * RSV1 bit\n * @param {Function} [cb] Callback\n * @private\n */\n dispatch(data, compress, options, cb) {\n if (!compress) {\n this.sendFrame(Sender.frame(data, options), cb);\n return;\n }\n\n const perMessageDeflate = this._extensions[PerMessageDeflate.extensionName];\n\n this._bufferedBytes += data.length;\n this._deflating = true;\n perMessageDeflate.compress(data, options.fin, (_, buf) => {\n if (this._socket.destroyed) {\n const err = new Error(\n 'The socket was closed while data was being compressed'\n );\n\n if (typeof cb === 'function') cb(err);\n\n for (let i = 0; i < this._queue.length; i++) {\n const callback = this._queue[i][4];\n\n if (typeof callback === 'function') callback(err);\n }\n\n return;\n }\n\n this._bufferedBytes -= data.length;\n this._deflating = false;\n options.readOnly = false;\n this.sendFrame(Sender.frame(buf, options), cb);\n this.dequeue();\n });\n }\n\n /**\n * Executes queued send operations.\n *\n * @private\n */\n dequeue() {\n while (!this._deflating && this._queue.length) {\n const params = this._queue.shift();\n\n this._bufferedBytes -= params[1].length;\n Reflect.apply(params[0], this, params.slice(1));\n }\n }\n\n /**\n * Enqueues a send operation.\n *\n * @param {Array} params Send operation parameters.\n * @private\n */\n enqueue(params) {\n this._bufferedBytes += params[1].length;\n this._queue.push(params);\n }\n\n /**\n * Sends a frame.\n *\n * @param {Buffer[]} list The frame to send\n * @param {Function} [cb] Callback\n * @private\n */\n sendFrame(list, cb) {\n if (list.length === 2) {\n this._socket.cork();\n this._socket.write(list[0]);\n this._socket.write(list[1], cb);\n this._socket.uncork();\n } else {\n this._socket.write(list[0], cb);\n }\n }\n}\n\nmodule.exports = Sender;\n", "'use strict';\n\n/**\n * Class representing an event.\n *\n * @private\n */\nclass Event {\n /**\n * Create a new `Event`.\n *\n * @param {String} type The name of the event\n * @param {Object} target A reference to the target to which the event was\n * dispatched\n */\n constructor(type, target) {\n this.target = target;\n this.type = type;\n }\n}\n\n/**\n * Class representing a message event.\n *\n * @extends Event\n * @private\n */\nclass MessageEvent extends Event {\n /**\n * Create a new `MessageEvent`.\n *\n * @param {(String|Buffer|ArrayBuffer|Buffer[])} data The received data\n * @param {WebSocket} target A reference to the target to which the event was\n * dispatched\n */\n constructor(data, target) {\n super('message', target);\n\n this.data = data;\n }\n}\n\n/**\n * Class representing a close event.\n *\n * @extends Event\n * @private\n */\nclass CloseEvent extends Event {\n /**\n * Create a new `CloseEvent`.\n *\n * @param {Number} code The status code explaining why the connection is being\n * closed\n * @param {String} reason A human-readable string explaining why the\n * connection is closing\n * @param {WebSocket} target A reference to the target to which the event was\n * dispatched\n */\n constructor(code, reason, target) {\n super('close', target);\n\n this.wasClean = target._closeFrameReceived && target._closeFrameSent;\n this.reason = reason;\n this.code = code;\n }\n}\n\n/**\n * Class representing an open event.\n *\n * @extends Event\n * @private\n */\nclass OpenEvent extends Event {\n /**\n * Create a new `OpenEvent`.\n *\n * @param {WebSocket} target A reference to the target to which the event was\n * dispatched\n */\n constructor(target) {\n super('open', target);\n }\n}\n\n/**\n * Class representing an error event.\n *\n * @extends Event\n * @private\n */\nclass ErrorEvent extends Event {\n /**\n * Create a new `ErrorEvent`.\n *\n * @param {Object} error The error that generated this event\n * @param {WebSocket} target A reference to the target to which the event was\n * dispatched\n */\n constructor(error, target) {\n super('error', target);\n\n this.message = error.message;\n this.error = error;\n }\n}\n\n/**\n * This provides methods for emulating the `EventTarget` interface. It's not\n * meant to be used directly.\n *\n * @mixin\n */\nconst EventTarget = {\n /**\n * Register an event listener.\n *\n * @param {String} type A string representing the event type to listen for\n * @param {Function} listener The listener to add\n * @param {Object} [options] An options object specifies characteristics about\n * the event listener\n * @param {Boolean} [options.once=false] A `Boolean`` indicating that the\n * listener should be invoked at most once after being added. If `true`,\n * the listener would be automatically removed when invoked.\n * @public\n */\n addEventListener(type, listener, options) {\n if (typeof listener !== 'function') return;\n\n function onMessage(data) {\n listener.call(this, new MessageEvent(data, this));\n }\n\n function onClose(code, message) {\n listener.call(this, new CloseEvent(code, message, this));\n }\n\n function onError(error) {\n listener.call(this, new ErrorEvent(error, this));\n }\n\n function onOpen() {\n listener.call(this, new OpenEvent(this));\n }\n\n const method = options && options.once ? 'once' : 'on';\n\n if (type === 'message') {\n onMessage._listener = listener;\n this[method](type, onMessage);\n } else if (type === 'close') {\n onClose._listener = listener;\n this[method](type, onClose);\n } else if (type === 'error') {\n onError._listener = listener;\n this[method](type, onError);\n } else if (type === 'open') {\n onOpen._listener = listener;\n this[method](type, onOpen);\n } else {\n this[method](type, listener);\n }\n },\n\n /**\n * Remove an event listener.\n *\n * @param {String} type A string representing the event type to remove\n * @param {Function} listener The listener to remove\n * @public\n */\n removeEventListener(type, listener) {\n const listeners = this.listeners(type);\n\n for (let i = 0; i < listeners.length; i++) {\n if (listeners[i] === listener || listeners[i]._listener === listener) {\n this.removeListener(type, listeners[i]);\n }\n }\n }\n};\n\nmodule.exports = EventTarget;\n", "'use strict';\n\n//\n// Allowed token characters:\n//\n// '!', '#', '$', '%', '&', ''', '*', '+', '-',\n// '.', 0-9, A-Z, '^', '_', '`', a-z, '|', '~'\n//\n// tokenChars[32] === 0 // ' '\n// tokenChars[33] === 1 // '!'\n// tokenChars[34] === 0 // '\"'\n// ...\n//\n// prettier-ignore\nconst tokenChars = [\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 0 - 15\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 16 - 31\n 0, 1, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, // 32 - 47\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, // 48 - 63\n 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 64 - 79\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, // 80 - 95\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 96 - 111\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0 // 112 - 127\n];\n\n/**\n * Adds an offer to the map of extension offers or a parameter to the map of\n * parameters.\n *\n * @param {Object} dest The map of extension offers or parameters\n * @param {String} name The extension or parameter name\n * @param {(Object|Boolean|String)} elem The extension parameters or the\n * parameter value\n * @private\n */\nfunction push(dest, name, elem) {\n if (dest[name] === undefined) dest[name] = [elem];\n else dest[name].push(elem);\n}\n\n/**\n * Parses the `Sec-WebSocket-Extensions` header into an object.\n *\n * @param {String} header The field value of the header\n * @return {Object} The parsed object\n * @public\n */\nfunction parse(header) {\n const offers = Object.create(null);\n\n if (header === undefined || header === '') return offers;\n\n let params = Object.create(null);\n let mustUnescape = false;\n let isEscaping = false;\n let inQuotes = false;\n let extensionName;\n let paramName;\n let start = -1;\n let end = -1;\n let i = 0;\n\n for (; i < header.length; i++) {\n const code = header.charCodeAt(i);\n\n if (extensionName === undefined) {\n if (end === -1 && tokenChars[code] === 1) {\n if (start === -1) start = i;\n } else if (code === 0x20 /* ' ' */ || code === 0x09 /* '\\t' */) {\n if (end === -1 && start !== -1) end = i;\n } else if (code === 0x3b /* ';' */ || code === 0x2c /* ',' */) {\n if (start === -1) {\n throw new SyntaxError(`Unexpected character at index ${i}`);\n }\n\n if (end === -1) end = i;\n const name = header.slice(start, end);\n if (code === 0x2c) {\n push(offers, name, params);\n params = Object.create(null);\n } else {\n extensionName = name;\n }\n\n start = end = -1;\n } else {\n throw new SyntaxError(`Unexpected character at index ${i}`);\n }\n } else if (paramName === undefined) {\n if (end === -1 && tokenChars[code] === 1) {\n if (start === -1) start = i;\n } else if (code === 0x20 || code === 0x09) {\n if (end === -1 && start !== -1) end = i;\n } else if (code === 0x3b || code === 0x2c) {\n if (start === -1) {\n throw new SyntaxError(`Unexpected character at index ${i}`);\n }\n\n if (end === -1) end = i;\n push(params, header.slice(start, end), true);\n if (code === 0x2c) {\n push(offers, extensionName, params);\n params = Object.create(null);\n extensionName = undefined;\n }\n\n start = end = -1;\n } else if (code === 0x3d /* '=' */ && start !== -1 && end === -1) {\n paramName = header.slice(start, i);\n start = end = -1;\n } else {\n throw new SyntaxError(`Unexpected character at index ${i}`);\n }\n } else {\n //\n // The value of a quoted-string after unescaping must conform to the\n // token ABNF, so only token characters are valid.\n // Ref: https://tools.ietf.org/html/rfc6455#section-9.1\n //\n if (isEscaping) {\n if (tokenChars[code] !== 1) {\n throw new SyntaxError(`Unexpected character at index ${i}`);\n }\n if (start === -1) start = i;\n else if (!mustUnescape) mustUnescape = true;\n isEscaping = false;\n } else if (inQuotes) {\n if (tokenChars[code] === 1) {\n if (start === -1) start = i;\n } else if (code === 0x22 /* '\"' */ && start !== -1) {\n inQuotes = false;\n end = i;\n } else if (code === 0x5c /* '\\' */) {\n isEscaping = true;\n } else {\n throw new SyntaxError(`Unexpected character at index ${i}`);\n }\n } else if (code === 0x22 && header.charCodeAt(i - 1) === 0x3d) {\n inQuotes = true;\n } else if (end === -1 && tokenChars[code] === 1) {\n if (start === -1) start = i;\n } else if (start !== -1 && (code === 0x20 || code === 0x09)) {\n if (end === -1) end = i;\n } else if (code === 0x3b || code === 0x2c) {\n if (start === -1) {\n throw new SyntaxError(`Unexpected character at index ${i}`);\n }\n\n if (end === -1) end = i;\n let value = header.slice(start, end);\n if (mustUnescape) {\n value = value.replace(/\\\\/g, '');\n mustUnescape = false;\n }\n push(params, paramName, value);\n if (code === 0x2c) {\n push(offers, extensionName, params);\n params = Object.create(null);\n extensionName = undefined;\n }\n\n paramName = undefined;\n start = end = -1;\n } else {\n throw new SyntaxError(`Unexpected character at index ${i}`);\n }\n }\n }\n\n if (start === -1 || inQuotes) {\n throw new SyntaxError('Unexpected end of input');\n }\n\n if (end === -1) end = i;\n const token = header.slice(start, end);\n if (extensionName === undefined) {\n push(offers, token, params);\n } else {\n if (paramName === undefined) {\n push(params, token, true);\n } else if (mustUnescape) {\n push(params, paramName, token.replace(/\\\\/g, ''));\n } else {\n push(params, paramName, token);\n }\n push(offers, extensionName, params);\n }\n\n return offers;\n}\n\n/**\n * Builds the `Sec-WebSocket-Extensions` header field value.\n *\n * @param {Object} extensions The map of extensions and parameters to format\n * @return {String} A string representing the given object\n * @public\n */\nfunction format(extensions) {\n return Object.keys(extensions)\n .map((extension) => {\n let configurations = extensions[extension];\n if (!Array.isArray(configurations)) configurations = [configurations];\n return configurations\n .map((params) => {\n return [extension]\n .concat(\n Object.keys(params).map((k) => {\n let values = params[k];\n if (!Array.isArray(values)) values = [values];\n return values\n .map((v) => (v === true ? k : `${k}=${v}`))\n .join('; ');\n })\n )\n .join('; ');\n })\n .join(', ');\n })\n .join(', ');\n}\n\nmodule.exports = { format, parse };\n", "'use strict';\n\nconst EventEmitter = require('events');\nconst https = require('https');\nconst http = require('http');\nconst net = require('net');\nconst tls = require('tls');\nconst { randomBytes, createHash } = require('crypto');\nconst { URL } = require('url');\n\nconst PerMessageDeflate = require('./permessage-deflate');\nconst Receiver = require('./receiver');\nconst Sender = require('./sender');\nconst {\n BINARY_TYPES,\n EMPTY_BUFFER,\n GUID,\n kStatusCode,\n kWebSocket,\n NOOP\n} = require('./constants');\nconst { addEventListener, removeEventListener } = require('./event-target');\nconst { format, parse } = require('./extension');\nconst { toBuffer } = require('./buffer-util');\n\nconst readyStates = ['CONNECTING', 'OPEN', 'CLOSING', 'CLOSED'];\nconst protocolVersions = [8, 13];\nconst closeTimeout = 30 * 1000;\n\n/**\n * Class representing a WebSocket.\n *\n * @extends EventEmitter\n */\nclass WebSocket extends EventEmitter {\n /**\n * Create a new `WebSocket`.\n *\n * @param {(String|url.URL)} address The URL to which to connect\n * @param {(String|String[])} [protocols] The subprotocols\n * @param {Object} [options] Connection options\n */\n constructor(address, protocols, options) {\n super();\n\n this._binaryType = BINARY_TYPES[0];\n this._closeCode = 1006;\n this._closeFrameReceived = false;\n this._closeFrameSent = false;\n this._closeMessage = '';\n this._closeTimer = null;\n this._extensions = {};\n this._protocol = '';\n this._readyState = WebSocket.CONNECTING;\n this._receiver = null;\n this._sender = null;\n this._socket = null;\n\n if (address !== null) {\n this._bufferedAmount = 0;\n this._isServer = false;\n this._redirects = 0;\n\n if (Array.isArray(protocols)) {\n protocols = protocols.join(', ');\n } else if (typeof protocols === 'object' && protocols !== null) {\n options = protocols;\n protocols = undefined;\n }\n\n initAsClient(this, address, protocols, options);\n } else {\n this._isServer = true;\n }\n }\n\n /**\n * This deviates from the WHATWG interface since ws doesn't support the\n * required default \"blob\" type (instead we define a custom \"nodebuffer\"\n * type).\n *\n * @type {String}\n */\n get binaryType() {\n return this._binaryType;\n }\n\n set binaryType(type) {\n if (!BINARY_TYPES.includes(type)) return;\n\n this._binaryType = type;\n\n //\n // Allow to change `binaryType` on the fly.\n //\n if (this._receiver) this._receiver._binaryType = type;\n }\n\n /**\n * @type {Number}\n */\n get bufferedAmount() {\n if (!this._socket) return this._bufferedAmount;\n\n return this._socket._writableState.length + this._sender._bufferedBytes;\n }\n\n /**\n * @type {String}\n */\n get extensions() {\n return Object.keys(this._extensions).join();\n }\n\n /**\n * @type {String}\n */\n get protocol() {\n return this._protocol;\n }\n\n /**\n * @type {Number}\n */\n get readyState() {\n return this._readyState;\n }\n\n /**\n * @type {String}\n */\n get url() {\n return this._url;\n }\n\n /**\n * Set up the socket and the internal resources.\n *\n * @param {net.Socket} socket The network socket between the server and client\n * @param {Buffer} head The first packet of the upgraded stream\n * @param {Number} [maxPayload=0] The maximum allowed message size\n * @private\n */\n setSocket(socket, head, maxPayload) {\n const receiver = new Receiver(\n this.binaryType,\n this._extensions,\n this._isServer,\n maxPayload\n );\n\n this._sender = new Sender(socket, this._extensions);\n this._receiver = receiver;\n this._socket = socket;\n\n receiver[kWebSocket] = this;\n socket[kWebSocket] = this;\n\n receiver.on('conclude', receiverOnConclude);\n receiver.on('drain', receiverOnDrain);\n receiver.on('error', receiverOnError);\n receiver.on('message', receiverOnMessage);\n receiver.on('ping', receiverOnPing);\n receiver.on('pong', receiverOnPong);\n\n socket.setTimeout(0);\n socket.setNoDelay();\n\n if (head.length > 0) socket.unshift(head);\n\n socket.on('close', socketOnClose);\n socket.on('data', socketOnData);\n socket.on('end', socketOnEnd);\n socket.on('error', socketOnError);\n\n this._readyState = WebSocket.OPEN;\n this.emit('open');\n }\n\n /**\n * Emit the `'close'` event.\n *\n * @private\n */\n emitClose() {\n if (!this._socket) {\n this._readyState = WebSocket.CLOSED;\n this.emit('close', this._closeCode, this._closeMessage);\n return;\n }\n\n if (this._extensions[PerMessageDeflate.extensionName]) {\n this._extensions[PerMessageDeflate.extensionName].cleanup();\n }\n\n this._receiver.removeAllListeners();\n this._readyState = WebSocket.CLOSED;\n this.emit('close', this._closeCode, this._closeMessage);\n }\n\n /**\n * Start a closing handshake.\n *\n * +----------+ +-----------+ +----------+\n * - - -|ws.close()|-->|close frame|-->|ws.close()|- - -\n * | +----------+ +-----------+ +----------+ |\n * +----------+ +-----------+ |\n * CLOSING |ws.close()|<--|close frame|<--+-----+ CLOSING\n * +----------+ +-----------+ |\n * | | | +---+ |\n * +------------------------+-->|fin| - - - -\n * | +---+ | +---+\n * - - - - -|fin|<---------------------+\n * +---+\n *\n * @param {Number} [code] Status code explaining why the connection is closing\n * @param {String} [data] A string explaining why the connection is closing\n * @public\n */\n close(code, data) {\n if (this.readyState === WebSocket.CLOSED) return;\n if (this.readyState === WebSocket.CONNECTING) {\n const msg = 'WebSocket was closed before the connection was established';\n return abortHandshake(this, this._req, msg);\n }\n\n if (this.readyState === WebSocket.CLOSING) {\n if (this._closeFrameSent && this._closeFrameReceived) this._socket.end();\n return;\n }\n\n this._readyState = WebSocket.CLOSING;\n this._sender.close(code, data, !this._isServer, (err) => {\n //\n // This error is handled by the `'error'` listener on the socket. We only\n // want to know if the close frame has been sent here.\n //\n if (err) return;\n\n this._closeFrameSent = true;\n if (this._closeFrameReceived) this._socket.end();\n });\n\n //\n // Specify a timeout for the closing handshake to complete.\n //\n this._closeTimer = setTimeout(\n this._socket.destroy.bind(this._socket),\n closeTimeout\n );\n }\n\n /**\n * Send a ping.\n *\n * @param {*} [data] The data to send\n * @param {Boolean} [mask] Indicates whether or not to mask `data`\n * @param {Function} [cb] Callback which is executed when the ping is sent\n * @public\n */\n ping(data, mask, cb) {\n if (this.readyState === WebSocket.CONNECTING) {\n throw new Error('WebSocket is not open: readyState 0 (CONNECTING)');\n }\n\n if (typeof data === 'function') {\n cb = data;\n data = mask = undefined;\n } else if (typeof mask === 'function') {\n cb = mask;\n mask = undefined;\n }\n\n if (typeof data === 'number') data = data.toString();\n\n if (this.readyState !== WebSocket.OPEN) {\n sendAfterClose(this, data, cb);\n return;\n }\n\n if (mask === undefined) mask = !this._isServer;\n this._sender.ping(data || EMPTY_BUFFER, mask, cb);\n }\n\n /**\n * Send a pong.\n *\n * @param {*} [data] The data to send\n * @param {Boolean} [mask] Indicates whether or not to mask `data`\n * @param {Function} [cb] Callback which is executed when the pong is sent\n * @public\n */\n pong(data, mask, cb) {\n if (this.readyState === WebSocket.CONNECTING) {\n throw new Error('WebSocket is not open: readyState 0 (CONNECTING)');\n }\n\n if (typeof data === 'function') {\n cb = data;\n data = mask = undefined;\n } else if (typeof mask === 'function') {\n cb = mask;\n mask = undefined;\n }\n\n if (typeof data === 'number') data = data.toString();\n\n if (this.readyState !== WebSocket.OPEN) {\n sendAfterClose(this, data, cb);\n return;\n }\n\n if (mask === undefined) mask = !this._isServer;\n this._sender.pong(data || EMPTY_BUFFER, mask, cb);\n }\n\n /**\n * Send a data message.\n *\n * @param {*} data The message to send\n * @param {Object} [options] Options object\n * @param {Boolean} [options.compress] Specifies whether or not to compress\n * `data`\n * @param {Boolean} [options.binary] Specifies whether `data` is binary or\n * text\n * @param {Boolean} [options.fin=true] Specifies whether the fragment is the\n * last one\n * @param {Boolean} [options.mask] Specifies whether or not to mask `data`\n * @param {Function} [cb] Callback which is executed when data is written out\n * @public\n */\n send(data, options, cb) {\n if (this.readyState === WebSocket.CONNECTING) {\n throw new Error('WebSocket is not open: readyState 0 (CONNECTING)');\n }\n\n if (typeof options === 'function') {\n cb = options;\n options = {};\n }\n\n if (typeof data === 'number') data = data.toString();\n\n if (this.readyState !== WebSocket.OPEN) {\n sendAfterClose(this, data, cb);\n return;\n }\n\n const opts = {\n binary: typeof data !== 'string',\n mask: !this._isServer,\n compress: true,\n fin: true,\n ...options\n };\n\n if (!this._extensions[PerMessageDeflate.extensionName]) {\n opts.compress = false;\n }\n\n this._sender.send(data || EMPTY_BUFFER, opts, cb);\n }\n\n /**\n * Forcibly close the connection.\n *\n * @public\n */\n terminate() {\n if (this.readyState === WebSocket.CLOSED) return;\n if (this.readyState === WebSocket.CONNECTING) {\n const msg = 'WebSocket was closed before the connection was established';\n return abortHandshake(this, this._req, msg);\n }\n\n if (this._socket) {\n this._readyState = WebSocket.CLOSING;\n this._socket.destroy();\n }\n }\n}\n\nreadyStates.forEach((readyState, i) => {\n const descriptor = { enumerable: true, value: i };\n\n Object.defineProperty(WebSocket.prototype, readyState, descriptor);\n Object.defineProperty(WebSocket, readyState, descriptor);\n});\n\n[\n 'binaryType',\n 'bufferedAmount',\n 'extensions',\n 'protocol',\n 'readyState',\n 'url'\n].forEach((property) => {\n Object.defineProperty(WebSocket.prototype, property, { enumerable: true });\n});\n\n//\n// Add the `onopen`, `onerror`, `onclose`, and `onmessage` attributes.\n// See https://html.spec.whatwg.org/multipage/comms.html#the-websocket-interface\n//\n['open', 'error', 'close', 'message'].forEach((method) => {\n Object.defineProperty(WebSocket.prototype, `on${method}`, {\n configurable: true,\n enumerable: true,\n /**\n * Return the listener of the event.\n *\n * @return {(Function|undefined)} The event listener or `undefined`\n * @public\n */\n get() {\n const listeners = this.listeners(method);\n for (let i = 0; i < listeners.length; i++) {\n if (listeners[i]._listener) return listeners[i]._listener;\n }\n\n return undefined;\n },\n /**\n * Add a listener for the event.\n *\n * @param {Function} listener The listener to add\n * @public\n */\n set(listener) {\n const listeners = this.listeners(method);\n for (let i = 0; i < listeners.length; i++) {\n //\n // Remove only the listeners added via `addEventListener`.\n //\n if (listeners[i]._listener) this.removeListener(method, listeners[i]);\n }\n this.addEventListener(method, listener);\n }\n });\n});\n\nWebSocket.prototype.addEventListener = addEventListener;\nWebSocket.prototype.removeEventListener = removeEventListener;\n\nmodule.exports = WebSocket;\n\n/**\n * Initialize a WebSocket client.\n *\n * @param {WebSocket} websocket The client to initialize\n * @param {(String|url.URL)} address The URL to which to connect\n * @param {String} [protocols] The subprotocols\n * @param {Object} [options] Connection options\n * @param {(Boolean|Object)} [options.perMessageDeflate=true] Enable/disable\n * permessage-deflate\n * @param {Number} [options.handshakeTimeout] Timeout in milliseconds for the\n * handshake request\n * @param {Number} [options.protocolVersion=13] Value of the\n * `Sec-WebSocket-Version` header\n * @param {String} [options.origin] Value of the `Origin` or\n * `Sec-WebSocket-Origin` header\n * @param {Number} [options.maxPayload=104857600] The maximum allowed message\n * size\n * @param {Boolean} [options.followRedirects=false] Whether or not to follow\n * redirects\n * @param {Number} [options.maxRedirects=10] The maximum number of redirects\n * allowed\n * @private\n */\nfunction initAsClient(websocket, address, protocols, options) {\n const opts = {\n protocolVersion: protocolVersions[1],\n maxPayload: 100 * 1024 * 1024,\n perMessageDeflate: true,\n followRedirects: false,\n maxRedirects: 10,\n ...options,\n createConnection: undefined,\n socketPath: undefined,\n hostname: undefined,\n protocol: undefined,\n timeout: undefined,\n method: undefined,\n host: undefined,\n path: undefined,\n port: undefined\n };\n\n if (!protocolVersions.includes(opts.protocolVersion)) {\n throw new RangeError(\n `Unsupported protocol version: ${opts.protocolVersion} ` +\n `(supported versions: ${protocolVersions.join(', ')})`\n );\n }\n\n let parsedUrl;\n\n if (address instanceof URL) {\n parsedUrl = address;\n websocket._url = address.href;\n } else {\n parsedUrl = new URL(address);\n websocket._url = address;\n }\n\n const isUnixSocket = parsedUrl.protocol === 'ws+unix:';\n\n if (!parsedUrl.host && (!isUnixSocket || !parsedUrl.pathname)) {\n throw new Error(`Invalid URL: ${websocket.url}`);\n }\n\n const isSecure =\n parsedUrl.protocol === 'wss:' || parsedUrl.protocol === 'https:';\n const defaultPort = isSecure ? 443 : 80;\n const key = randomBytes(16).toString('base64');\n const get = isSecure ? https.get : http.get;\n let perMessageDeflate;\n\n opts.createConnection = isSecure ? tlsConnect : netConnect;\n opts.defaultPort = opts.defaultPort || defaultPort;\n opts.port = parsedUrl.port || defaultPort;\n opts.host = parsedUrl.hostname.startsWith('[')\n ? parsedUrl.hostname.slice(1, -1)\n : parsedUrl.hostname;\n opts.headers = {\n 'Sec-WebSocket-Version': opts.protocolVersion,\n 'Sec-WebSocket-Key': key,\n Connection: 'Upgrade',\n Upgrade: 'websocket',\n ...opts.headers\n };\n opts.path = parsedUrl.pathname + parsedUrl.search;\n opts.timeout = opts.handshakeTimeout;\n\n if (opts.perMessageDeflate) {\n perMessageDeflate = new PerMessageDeflate(\n opts.perMessageDeflate !== true ? opts.perMessageDeflate : {},\n false,\n opts.maxPayload\n );\n opts.headers['Sec-WebSocket-Extensions'] = format({\n [PerMessageDeflate.extensionName]: perMessageDeflate.offer()\n });\n }\n if (protocols) {\n opts.headers['Sec-WebSocket-Protocol'] = protocols;\n }\n if (opts.origin) {\n if (opts.protocolVersion < 13) {\n opts.headers['Sec-WebSocket-Origin'] = opts.origin;\n } else {\n opts.headers.Origin = opts.origin;\n }\n }\n if (parsedUrl.username || parsedUrl.password) {\n opts.auth = `${parsedUrl.username}:${parsedUrl.password}`;\n }\n\n if (isUnixSocket) {\n const parts = opts.path.split(':');\n\n opts.socketPath = parts[0];\n opts.path = parts[1];\n }\n\n let req = (websocket._req = get(opts));\n\n if (opts.timeout) {\n req.on('timeout', () => {\n abortHandshake(websocket, req, 'Opening handshake has timed out');\n });\n }\n\n req.on('error', (err) => {\n if (req === null || req.aborted) return;\n\n req = websocket._req = null;\n websocket._readyState = WebSocket.CLOSING;\n websocket.emit('error', err);\n websocket.emitClose();\n });\n\n req.on('response', (res) => {\n const location = res.headers.location;\n const statusCode = res.statusCode;\n\n if (\n location &&\n opts.followRedirects &&\n statusCode >= 300 &&\n statusCode < 400\n ) {\n if (++websocket._redirects > opts.maxRedirects) {\n abortHandshake(websocket, req, 'Maximum redirects exceeded');\n return;\n }\n\n req.abort();\n\n const addr = new URL(location, address);\n\n initAsClient(websocket, addr, protocols, options);\n } else if (!websocket.emit('unexpected-response', req, res)) {\n abortHandshake(\n websocket,\n req,\n `Unexpected server response: ${res.statusCode}`\n );\n }\n });\n\n req.on('upgrade', (res, socket, head) => {\n websocket.emit('upgrade', res);\n\n //\n // The user may have closed the connection from a listener of the `upgrade`\n // event.\n //\n if (websocket.readyState !== WebSocket.CONNECTING) return;\n\n req = websocket._req = null;\n\n const digest = createHash('sha1')\n .update(key + GUID)\n .digest('base64');\n\n if (res.headers['sec-websocket-accept'] !== digest) {\n abortHandshake(websocket, socket, 'Invalid Sec-WebSocket-Accept header');\n return;\n }\n\n const serverProt = res.headers['sec-websocket-protocol'];\n const protList = (protocols || '').split(/, */);\n let protError;\n\n if (!protocols && serverProt) {\n protError = 'Server sent a subprotocol but none was requested';\n } else if (protocols && !serverProt) {\n protError = 'Server sent no subprotocol';\n } else if (serverProt && !protList.includes(serverProt)) {\n protError = 'Server sent an invalid subprotocol';\n }\n\n if (protError) {\n abortHandshake(websocket, socket, protError);\n return;\n }\n\n if (serverProt) websocket._protocol = serverProt;\n\n if (perMessageDeflate) {\n try {\n const extensions = parse(res.headers['sec-websocket-extensions']);\n\n if (extensions[PerMessageDeflate.extensionName]) {\n perMessageDeflate.accept(extensions[PerMessageDeflate.extensionName]);\n websocket._extensions[PerMessageDeflate.extensionName] =\n perMessageDeflate;\n }\n } catch (err) {\n abortHandshake(\n websocket,\n socket,\n 'Invalid Sec-WebSocket-Extensions header'\n );\n return;\n }\n }\n\n websocket.setSocket(socket, head, opts.maxPayload);\n });\n}\n\n/**\n * Create a `net.Socket` and initiate a connection.\n *\n * @param {Object} options Connection options\n * @return {net.Socket} The newly created socket used to start the connection\n * @private\n */\nfunction netConnect(options) {\n options.path = options.socketPath;\n return net.connect(options);\n}\n\n/**\n * Create a `tls.TLSSocket` and initiate a connection.\n *\n * @param {Object} options Connection options\n * @return {tls.TLSSocket} The newly created socket used to start the connection\n * @private\n */\nfunction tlsConnect(options) {\n options.path = undefined;\n\n if (!options.servername && options.servername !== '') {\n options.servername = net.isIP(options.host) ? '' : options.host;\n }\n\n return tls.connect(options);\n}\n\n/**\n * Abort the handshake and emit an error.\n *\n * @param {WebSocket} websocket The WebSocket instance\n * @param {(http.ClientRequest|net.Socket)} stream The request to abort or the\n * socket to destroy\n * @param {String} message The error message\n * @private\n */\nfunction abortHandshake(websocket, stream, message) {\n websocket._readyState = WebSocket.CLOSING;\n\n const err = new Error(message);\n Error.captureStackTrace(err, abortHandshake);\n\n if (stream.setHeader) {\n stream.abort();\n\n if (stream.socket && !stream.socket.destroyed) {\n //\n // On Node.js >= 14.3.0 `request.abort()` does not destroy the socket if\n // called after the request completed. See\n // https://github.com/websockets/ws/issues/1869.\n //\n stream.socket.destroy();\n }\n\n stream.once('abort', websocket.emitClose.bind(websocket));\n websocket.emit('error', err);\n } else {\n stream.destroy(err);\n stream.once('error', websocket.emit.bind(websocket, 'error'));\n stream.once('close', websocket.emitClose.bind(websocket));\n }\n}\n\n/**\n * Handle cases where the `ping()`, `pong()`, or `send()` methods are called\n * when the `readyState` attribute is `CLOSING` or `CLOSED`.\n *\n * @param {WebSocket} websocket The WebSocket instance\n * @param {*} [data] The data to send\n * @param {Function} [cb] Callback\n * @private\n */\nfunction sendAfterClose(websocket, data, cb) {\n if (data) {\n const length = toBuffer(data).length;\n\n //\n // The `_bufferedAmount` property is used only when the peer is a client and\n // the opening handshake fails. Under these circumstances, in fact, the\n // `setSocket()` method is not called, so the `_socket` and `_sender`\n // properties are set to `null`.\n //\n if (websocket._socket) websocket._sender._bufferedBytes += length;\n else websocket._bufferedAmount += length;\n }\n\n if (cb) {\n const err = new Error(\n `WebSocket is not open: readyState ${websocket.readyState} ` +\n `(${readyStates[websocket.readyState]})`\n );\n cb(err);\n }\n}\n\n/**\n * The listener of the `Receiver` `'conclude'` event.\n *\n * @param {Number} code The status code\n * @param {String} reason The reason for closing\n * @private\n */\nfunction receiverOnConclude(code, reason) {\n const websocket = this[kWebSocket];\n\n websocket._socket.removeListener('data', socketOnData);\n websocket._socket.resume();\n\n websocket._closeFrameReceived = true;\n websocket._closeMessage = reason;\n websocket._closeCode = code;\n\n if (code === 1005) websocket.close();\n else websocket.close(code, reason);\n}\n\n/**\n * The listener of the `Receiver` `'drain'` event.\n *\n * @private\n */\nfunction receiverOnDrain() {\n this[kWebSocket]._socket.resume();\n}\n\n/**\n * The listener of the `Receiver` `'error'` event.\n *\n * @param {(RangeError|Error)} err The emitted error\n * @private\n */\nfunction receiverOnError(err) {\n const websocket = this[kWebSocket];\n\n websocket._socket.removeListener('data', socketOnData);\n\n websocket._readyState = WebSocket.CLOSING;\n websocket._closeCode = err[kStatusCode];\n websocket.emit('error', err);\n websocket._socket.destroy();\n}\n\n/**\n * The listener of the `Receiver` `'finish'` event.\n *\n * @private\n */\nfunction receiverOnFinish() {\n this[kWebSocket].emitClose();\n}\n\n/**\n * The listener of the `Receiver` `'message'` event.\n *\n * @param {(String|Buffer|ArrayBuffer|Buffer[])} data The message\n * @private\n */\nfunction receiverOnMessage(data) {\n this[kWebSocket].emit('message', data);\n}\n\n/**\n * The listener of the `Receiver` `'ping'` event.\n *\n * @param {Buffer} data The data included in the ping frame\n * @private\n */\nfunction receiverOnPing(data) {\n const websocket = this[kWebSocket];\n\n websocket.pong(data, !websocket._isServer, NOOP);\n websocket.emit('ping', data);\n}\n\n/**\n * The listener of the `Receiver` `'pong'` event.\n *\n * @param {Buffer} data The data included in the pong frame\n * @private\n */\nfunction receiverOnPong(data) {\n this[kWebSocket].emit('pong', data);\n}\n\n/**\n * The listener of the `net.Socket` `'close'` event.\n *\n * @private\n */\nfunction socketOnClose() {\n const websocket = this[kWebSocket];\n\n this.removeListener('close', socketOnClose);\n this.removeListener('end', socketOnEnd);\n\n websocket._readyState = WebSocket.CLOSING;\n\n //\n // The close frame might not have been received or the `'end'` event emitted,\n // for example, if the socket was destroyed due to an error. Ensure that the\n // `receiver` stream is closed after writing any remaining buffered data to\n // it. If the readable side of the socket is in flowing mode then there is no\n // buffered data as everything has been already written and `readable.read()`\n // will return `null`. If instead, the socket is paused, any possible buffered\n // data will be read as a single chunk and emitted synchronously in a single\n // `'data'` event.\n //\n websocket._socket.read();\n websocket._receiver.end();\n\n this.removeListener('data', socketOnData);\n this[kWebSocket] = undefined;\n\n clearTimeout(websocket._closeTimer);\n\n if (\n websocket._receiver._writableState.finished ||\n websocket._receiver._writableState.errorEmitted\n ) {\n websocket.emitClose();\n } else {\n websocket._receiver.on('error', receiverOnFinish);\n websocket._receiver.on('finish', receiverOnFinish);\n }\n}\n\n/**\n * The listener of the `net.Socket` `'data'` event.\n *\n * @param {Buffer} chunk A chunk of data\n * @private\n */\nfunction socketOnData(chunk) {\n if (!this[kWebSocket]._receiver.write(chunk)) {\n this.pause();\n }\n}\n\n/**\n * The listener of the `net.Socket` `'end'` event.\n *\n * @private\n */\nfunction socketOnEnd() {\n const websocket = this[kWebSocket];\n\n websocket._readyState = WebSocket.CLOSING;\n websocket._receiver.end();\n this.end();\n}\n\n/**\n * The listener of the `net.Socket` `'error'` event.\n *\n * @private\n */\nfunction socketOnError() {\n const websocket = this[kWebSocket];\n\n this.removeListener('error', socketOnError);\n this.on('error', NOOP);\n\n if (websocket) {\n websocket._readyState = WebSocket.CLOSING;\n this.destroy();\n }\n}\n", "'use strict';\n\nconst { Duplex } = require('stream');\n\n/**\n * Emits the `'close'` event on a stream.\n *\n * @param {stream.Duplex} The stream.\n * @private\n */\nfunction emitClose(stream) {\n stream.emit('close');\n}\n\n/**\n * The listener of the `'end'` event.\n *\n * @private\n */\nfunction duplexOnEnd() {\n if (!this.destroyed && this._writableState.finished) {\n this.destroy();\n }\n}\n\n/**\n * The listener of the `'error'` event.\n *\n * @param {Error} err The error\n * @private\n */\nfunction duplexOnError(err) {\n this.removeListener('error', duplexOnError);\n this.destroy();\n if (this.listenerCount('error') === 0) {\n // Do not suppress the throwing behavior.\n this.emit('error', err);\n }\n}\n\n/**\n * Wraps a `WebSocket` in a duplex stream.\n *\n * @param {WebSocket} ws The `WebSocket` to wrap\n * @param {Object} [options] The options for the `Duplex` constructor\n * @return {stream.Duplex} The duplex stream\n * @public\n */\nfunction createWebSocketStream(ws, options) {\n let resumeOnReceiverDrain = true;\n\n function receiverOnDrain() {\n if (resumeOnReceiverDrain) ws._socket.resume();\n }\n\n if (ws.readyState === ws.CONNECTING) {\n ws.once('open', function open() {\n ws._receiver.removeAllListeners('drain');\n ws._receiver.on('drain', receiverOnDrain);\n });\n } else {\n ws._receiver.removeAllListeners('drain');\n ws._receiver.on('drain', receiverOnDrain);\n }\n\n const duplex = new Duplex({\n ...options,\n autoDestroy: false,\n emitClose: false,\n objectMode: false,\n writableObjectMode: false\n });\n\n ws.on('message', function message(msg) {\n if (!duplex.push(msg)) {\n resumeOnReceiverDrain = false;\n ws._socket.pause();\n }\n });\n\n ws.once('error', function error(err) {\n if (duplex.destroyed) return;\n\n duplex.destroy(err);\n });\n\n ws.once('close', function close() {\n if (duplex.destroyed) return;\n\n duplex.push(null);\n });\n\n duplex._destroy = function (err, callback) {\n if (ws.readyState === ws.CLOSED) {\n callback(err);\n process.nextTick(emitClose, duplex);\n return;\n }\n\n let called = false;\n\n ws.once('error', function error(err) {\n called = true;\n callback(err);\n });\n\n ws.once('close', function close() {\n if (!called) callback(err);\n process.nextTick(emitClose, duplex);\n });\n ws.terminate();\n };\n\n duplex._final = function (callback) {\n if (ws.readyState === ws.CONNECTING) {\n ws.once('open', function open() {\n duplex._final(callback);\n });\n return;\n }\n\n // If the value of the `_socket` property is `null` it means that `ws` is a\n // client websocket and the handshake failed. In fact, when this happens, a\n // socket is never assigned to the websocket. Wait for the `'error'` event\n // that will be emitted by the websocket.\n if (ws._socket === null) return;\n\n if (ws._socket._writableState.finished) {\n callback();\n if (duplex._readableState.endEmitted) duplex.destroy();\n } else {\n ws._socket.once('finish', function finish() {\n // `duplex` is not destroyed here because the `'end'` event will be\n // emitted on `duplex` after this `'finish'` event. The EOF signaling\n // `null` chunk is, in fact, pushed when the websocket emits `'close'`.\n callback();\n });\n ws.close();\n }\n };\n\n duplex._read = function () {\n if (ws.readyState === ws.OPEN && !resumeOnReceiverDrain) {\n resumeOnReceiverDrain = true;\n if (!ws._receiver._writableState.needDrain) ws._socket.resume();\n }\n };\n\n duplex._write = function (chunk, encoding, callback) {\n if (ws.readyState === ws.CONNECTING) {\n ws.once('open', function open() {\n duplex._write(chunk, encoding, callback);\n });\n return;\n }\n\n ws.send(chunk, callback);\n };\n\n duplex.on('end', duplexOnEnd);\n duplex.on('error', duplexOnError);\n return duplex;\n}\n\nmodule.exports = createWebSocketStream;\n", "'use strict';\n\nconst EventEmitter = require('events');\nconst { createHash } = require('crypto');\nconst { createServer, STATUS_CODES } = require('http');\n\nconst PerMessageDeflate = require('./permessage-deflate');\nconst WebSocket = require('./websocket');\nconst { format, parse } = require('./extension');\nconst { GUID, kWebSocket } = require('./constants');\n\nconst keyRegex = /^[+/0-9A-Za-z]{22}==$/;\n\n/**\n * Class representing a WebSocket server.\n *\n * @extends EventEmitter\n */\nclass WebSocketServer extends EventEmitter {\n /**\n * Create a `WebSocketServer` instance.\n *\n * @param {Object} options Configuration options\n * @param {Number} [options.backlog=511] The maximum length of the queue of\n * pending connections\n * @param {Boolean} [options.clientTracking=true] Specifies whether or not to\n * track clients\n * @param {Function} [options.handleProtocols] A hook to handle protocols\n * @param {String} [options.host] The hostname where to bind the server\n * @param {Number} [options.maxPayload=104857600] The maximum allowed message\n * size\n * @param {Boolean} [options.noServer=false] Enable no server mode\n * @param {String} [options.path] Accept only connections matching this path\n * @param {(Boolean|Object)} [options.perMessageDeflate=false] Enable/disable\n * permessage-deflate\n * @param {Number} [options.port] The port where to bind the server\n * @param {http.Server} [options.server] A pre-created HTTP/S server to use\n * @param {Function} [options.verifyClient] A hook to reject connections\n * @param {Function} [callback] A listener for the `listening` event\n */\n constructor(options, callback) {\n super();\n\n options = {\n maxPayload: 100 * 1024 * 1024,\n perMessageDeflate: false,\n handleProtocols: null,\n clientTracking: true,\n verifyClient: null,\n noServer: false,\n backlog: null, // use default (511 as implemented in net.js)\n server: null,\n host: null,\n path: null,\n port: null,\n ...options\n };\n\n if (options.port == null && !options.server && !options.noServer) {\n throw new TypeError(\n 'One of the \"port\", \"server\", or \"noServer\" options must be specified'\n );\n }\n\n if (options.port != null) {\n this._server = createServer((req, res) => {\n const body = STATUS_CODES[426];\n\n res.writeHead(426, {\n 'Content-Length': body.length,\n 'Content-Type': 'text/plain'\n });\n res.end(body);\n });\n this._server.listen(\n options.port,\n options.host,\n options.backlog,\n callback\n );\n } else if (options.server) {\n this._server = options.server;\n }\n\n if (this._server) {\n const emitConnection = this.emit.bind(this, 'connection');\n\n this._removeListeners = addListeners(this._server, {\n listening: this.emit.bind(this, 'listening'),\n error: this.emit.bind(this, 'error'),\n upgrade: (req, socket, head) => {\n this.handleUpgrade(req, socket, head, emitConnection);\n }\n });\n }\n\n if (options.perMessageDeflate === true) options.perMessageDeflate = {};\n if (options.clientTracking) this.clients = new Set();\n this.options = options;\n }\n\n /**\n * Returns the bound address, the address family name, and port of the server\n * as reported by the operating system if listening on an IP socket.\n * If the server is listening on a pipe or UNIX domain socket, the name is\n * returned as a string.\n *\n * @return {(Object|String|null)} The address of the server\n * @public\n */\n address() {\n if (this.options.noServer) {\n throw new Error('The server is operating in \"noServer\" mode');\n }\n\n if (!this._server) return null;\n return this._server.address();\n }\n\n /**\n * Close the server.\n *\n * @param {Function} [cb] Callback\n * @public\n */\n close(cb) {\n if (cb) this.once('close', cb);\n\n //\n // Terminate all associated clients.\n //\n if (this.clients) {\n for (const client of this.clients) client.terminate();\n }\n\n const server = this._server;\n\n if (server) {\n this._removeListeners();\n this._removeListeners = this._server = null;\n\n //\n // Close the http server if it was internally created.\n //\n if (this.options.port != null) {\n server.close(() => this.emit('close'));\n return;\n }\n }\n\n process.nextTick(emitClose, this);\n }\n\n /**\n * See if a given request should be handled by this server instance.\n *\n * @param {http.IncomingMessage} req Request object to inspect\n * @return {Boolean} `true` if the request is valid, else `false`\n * @public\n */\n shouldHandle(req) {\n if (this.options.path) {\n const index = req.url.indexOf('?');\n const pathname = index !== -1 ? req.url.slice(0, index) : req.url;\n\n if (pathname !== this.options.path) return false;\n }\n\n return true;\n }\n\n /**\n * Handle a HTTP Upgrade request.\n *\n * @param {http.IncomingMessage} req The request object\n * @param {net.Socket} socket The network socket between the server and client\n * @param {Buffer} head The first packet of the upgraded stream\n * @param {Function} cb Callback\n * @public\n */\n handleUpgrade(req, socket, head, cb) {\n socket.on('error', socketOnError);\n\n const key =\n req.headers['sec-websocket-key'] !== undefined\n ? req.headers['sec-websocket-key'].trim()\n : false;\n const version = +req.headers['sec-websocket-version'];\n const extensions = {};\n\n if (\n req.method !== 'GET' ||\n req.headers.upgrade.toLowerCase() !== 'websocket' ||\n !key ||\n !keyRegex.test(key) ||\n (version !== 8 && version !== 13) ||\n !this.shouldHandle(req)\n ) {\n return abortHandshake(socket, 400);\n }\n\n if (this.options.perMessageDeflate) {\n const perMessageDeflate = new PerMessageDeflate(\n this.options.perMessageDeflate,\n true,\n this.options.maxPayload\n );\n\n try {\n const offers = parse(req.headers['sec-websocket-extensions']);\n\n if (offers[PerMessageDeflate.extensionName]) {\n perMessageDeflate.accept(offers[PerMessageDeflate.extensionName]);\n extensions[PerMessageDeflate.extensionName] = perMessageDeflate;\n }\n } catch (err) {\n return abortHandshake(socket, 400);\n }\n }\n\n //\n // Optionally call external client verification handler.\n //\n if (this.options.verifyClient) {\n const info = {\n origin:\n req.headers[`${version === 8 ? 'sec-websocket-origin' : 'origin'}`],\n secure: !!(req.socket.authorized || req.socket.encrypted),\n req\n };\n\n if (this.options.verifyClient.length === 2) {\n this.options.verifyClient(info, (verified, code, message, headers) => {\n if (!verified) {\n return abortHandshake(socket, code || 401, message, headers);\n }\n\n this.completeUpgrade(key, extensions, req, socket, head, cb);\n });\n return;\n }\n\n if (!this.options.verifyClient(info)) return abortHandshake(socket, 401);\n }\n\n this.completeUpgrade(key, extensions, req, socket, head, cb);\n }\n\n /**\n * Upgrade the connection to WebSocket.\n *\n * @param {String} key The value of the `Sec-WebSocket-Key` header\n * @param {Object} extensions The accepted extensions\n * @param {http.IncomingMessage} req The request object\n * @param {net.Socket} socket The network socket between the server and client\n * @param {Buffer} head The first packet of the upgraded stream\n * @param {Function} cb Callback\n * @throws {Error} If called more than once with the same socket\n * @private\n */\n completeUpgrade(key, extensions, req, socket, head, cb) {\n //\n // Destroy the socket if the client has already sent a FIN packet.\n //\n if (!socket.readable || !socket.writable) return socket.destroy();\n\n if (socket[kWebSocket]) {\n throw new Error(\n 'server.handleUpgrade() was called more than once with the same ' +\n 'socket, possibly due to a misconfiguration'\n );\n }\n\n const digest = createHash('sha1')\n .update(key + GUID)\n .digest('base64');\n\n const headers = [\n 'HTTP/1.1 101 Switching Protocols',\n 'Upgrade: websocket',\n 'Connection: Upgrade',\n `Sec-WebSocket-Accept: ${digest}`\n ];\n\n const ws = new WebSocket(null);\n let protocol = req.headers['sec-websocket-protocol'];\n\n if (protocol) {\n protocol = protocol.split(',').map(trim);\n\n //\n // Optionally call external protocol selection handler.\n //\n if (this.options.handleProtocols) {\n protocol = this.options.handleProtocols(protocol, req);\n } else {\n protocol = protocol[0];\n }\n\n if (protocol) {\n headers.push(`Sec-WebSocket-Protocol: ${protocol}`);\n ws._protocol = protocol;\n }\n }\n\n if (extensions[PerMessageDeflate.extensionName]) {\n const params = extensions[PerMessageDeflate.extensionName].params;\n const value = format({\n [PerMessageDeflate.extensionName]: [params]\n });\n headers.push(`Sec-WebSocket-Extensions: ${value}`);\n ws._extensions = extensions;\n }\n\n //\n // Allow external modification/inspection of handshake headers.\n //\n this.emit('headers', headers, req);\n\n socket.write(headers.concat('\\r\\n').join('\\r\\n'));\n socket.removeListener('error', socketOnError);\n\n ws.setSocket(socket, head, this.options.maxPayload);\n\n if (this.clients) {\n this.clients.add(ws);\n ws.on('close', () => this.clients.delete(ws));\n }\n\n cb(ws, req);\n }\n}\n\nmodule.exports = WebSocketServer;\n\n/**\n * Add event listeners on an `EventEmitter` using a map of \n * pairs.\n *\n * @param {EventEmitter} server The event emitter\n * @param {Object.} map The listeners to add\n * @return {Function} A function that will remove the added listeners when\n * called\n * @private\n */\nfunction addListeners(server, map) {\n for (const event of Object.keys(map)) server.on(event, map[event]);\n\n return function removeListeners() {\n for (const event of Object.keys(map)) {\n server.removeListener(event, map[event]);\n }\n };\n}\n\n/**\n * Emit a `'close'` event on an `EventEmitter`.\n *\n * @param {EventEmitter} server The event emitter\n * @private\n */\nfunction emitClose(server) {\n server.emit('close');\n}\n\n/**\n * Handle premature socket errors.\n *\n * @private\n */\nfunction socketOnError() {\n this.destroy();\n}\n\n/**\n * Close the connection when preconditions are not fulfilled.\n *\n * @param {net.Socket} socket The socket of the upgrade request\n * @param {Number} code The HTTP response status code\n * @param {String} [message] The HTTP response body\n * @param {Object} [headers] Additional HTTP response headers\n * @private\n */\nfunction abortHandshake(socket, code, message, headers) {\n if (socket.writable) {\n message = message || STATUS_CODES[code];\n headers = {\n Connection: 'close',\n 'Content-Type': 'text/html',\n 'Content-Length': Buffer.byteLength(message),\n ...headers\n };\n\n socket.write(\n `HTTP/1.1 ${code} ${STATUS_CODES[code]}\\r\\n` +\n Object.keys(headers)\n .map((h) => `${h}: ${headers[h]}`)\n .join('\\r\\n') +\n '\\r\\n\\r\\n' +\n message\n );\n }\n\n socket.removeListener('error', socketOnError);\n socket.destroy();\n}\n\n/**\n * Remove whitespace characters from both ends of a string.\n *\n * @param {String} str The string\n * @return {String} A new string representing `str` stripped of whitespace\n * characters from both its beginning and end\n * @private\n */\nfunction trim(str) {\n return str.trim();\n}\n", "'use strict';\n\nconst WebSocket = require('./lib/websocket');\n\nWebSocket.createWebSocketStream = require('./lib/stream');\nWebSocket.Server = require('./lib/websocket-server');\nWebSocket.Receiver = require('./lib/receiver');\nWebSocket.Sender = require('./lib/sender');\n\nmodule.exports = WebSocket;\n", "import WebSocket from \"ws\";\n\nexport { WebSocket }\n", "\"use strict\";\n\nimport { BigNumber } from \"@ethersproject/bignumber\";\nimport { Network, Networkish } from \"@ethersproject/networks\";\nimport { defineReadOnly } from \"@ethersproject/properties\";\n\nimport { Event } from \"./base-provider\";\nimport { JsonRpcProvider } from \"./json-rpc-provider\";\nimport { WebSocket } from \"./ws\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\n/**\n * Notes:\n *\n * This provider differs a bit from the polling providers. One main\n * difference is how it handles consistency. The polling providers\n * will stall responses to ensure a consistent state, while this\n * WebSocket provider assumes the connected backend will manage this.\n *\n * For example, if a polling provider emits an event which indicates\n * the event occurred in blockhash XXX, a call to fetch that block by\n * its hash XXX, if not present will retry until it is present. This\n * can occur when querying a pool of nodes that are mildly out of sync\n * with each other.\n */\n\nlet NextId = 1;\n\nexport type InflightRequest = {\n callback: (error: Error, result: any) => void;\n payload: string;\n};\n\nexport type Subscription = {\n tag: string;\n processFunc: (payload: any) => void;\n};\n\nexport interface WebSocketLike {\n onopen: ((...args: Array) => any) | null;\n onmessage: ((...args: Array) => any) | null;\n onerror: ((...args: Array) => any) | null;\n\n readyState: number;\n\n send(payload: any): void;\n close(code?: number, reason?: string): void;\n}\n\n// For more info about the Real-time Event API see:\n// https://geth.ethereum.org/docs/rpc/pubsub\n\nexport class WebSocketProvider extends JsonRpcProvider {\n readonly _websocket: any;\n readonly _requests: { [ name: string ]: InflightRequest };\n readonly _detectNetwork: Promise;\n\n // Maps event tag to subscription ID (we dedupe identical events)\n readonly _subIds: { [ tag: string ]: Promise };\n\n // Maps Subscription ID to Subscription\n readonly _subs: { [ name: string ]: Subscription };\n\n _wsReady: boolean;\n\n constructor(url: string | WebSocketLike, network?: Networkish) {\n\n // This will be added in the future; please open an issue to expedite\n if (network === \"any\") {\n logger.throwError(\"WebSocketProvider does not support 'any' network yet\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"network:any\"\n });\n }\n\n if (typeof(url) === \"string\") {\n super(url, network);\n } else {\n super(\"_websocket\", network);\n }\n\n this._pollingInterval = -1;\n\n this._wsReady = false;\n\n if (typeof(url) === \"string\") {\n defineReadOnly(this, \"_websocket\", new WebSocket(this.connection.url));\n } else {\n defineReadOnly(this, \"_websocket\", url);\n }\n\n defineReadOnly(this, \"_requests\", { });\n defineReadOnly(this, \"_subs\", { });\n defineReadOnly(this, \"_subIds\", { });\n defineReadOnly(this, \"_detectNetwork\", super.detectNetwork());\n\n // Stall sending requests until the socket is open...\n this.websocket.onopen = () => {\n this._wsReady = true;\n Object.keys(this._requests).forEach((id) => {\n this.websocket.send(this._requests[id].payload);\n });\n };\n\n this.websocket.onmessage = (messageEvent: { data: string }) => {\n const data = messageEvent.data;\n const result = JSON.parse(data);\n if (result.id != null) {\n const id = String(result.id);\n const request = this._requests[id];\n delete this._requests[id];\n\n if (result.result !== undefined) {\n request.callback(null, result.result);\n\n this.emit(\"debug\", {\n action: \"response\",\n request: JSON.parse(request.payload),\n response: result.result,\n provider: this\n });\n\n } else {\n let error: Error = null;\n if (result.error) {\n error = new Error(result.error.message || \"unknown error\");\n defineReadOnly(error, \"code\", result.error.code || null);\n defineReadOnly(error, \"response\", data);\n } else {\n error = new Error(\"unknown error\");\n }\n\n request.callback(error, undefined);\n\n this.emit(\"debug\", {\n action: \"response\",\n error: error,\n request: JSON.parse(request.payload),\n provider: this\n });\n\n }\n\n } else if (result.method === \"eth_subscription\") {\n // Subscription...\n const sub = this._subs[result.params.subscription];\n if (sub) {\n //this.emit.apply(this, );\n sub.processFunc(result.params.result)\n }\n\n } else {\n console.warn(\"this should not happen\");\n }\n };\n\n // This Provider does not actually poll, but we want to trigger\n // poll events for things that depend on them (like stalling for\n // block and transaction lookups)\n const fauxPoll = setInterval(() => {\n this.emit(\"poll\");\n }, 1000);\n if (fauxPoll.unref) { fauxPoll.unref(); }\n }\n\n // Cannot narrow the type of _websocket, as that is not backwards compatible\n // so we add a getter and let the WebSocket be a public API.\n get websocket(): WebSocketLike { return this._websocket; }\n\n detectNetwork(): Promise {\n return this._detectNetwork;\n }\n\n get pollingInterval(): number {\n return 0;\n }\n\n resetEventsBlock(blockNumber: number): void {\n logger.throwError(\"cannot reset events block on WebSocketProvider\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"resetEventBlock\"\n });\n }\n\n set pollingInterval(value: number) {\n logger.throwError(\"cannot set polling interval on WebSocketProvider\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"setPollingInterval\"\n });\n }\n\n async poll(): Promise {\n return null;\n }\n\n set polling(value: boolean) {\n if (!value) { return; }\n\n logger.throwError(\"cannot set polling on WebSocketProvider\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"setPolling\"\n });\n }\n\n send(method: string, params?: Array): Promise {\n const rid = NextId++;\n\n return new Promise((resolve, reject) => {\n function callback(error: Error, result: any) {\n if (error) { return reject(error); }\n return resolve(result);\n }\n\n const payload = JSON.stringify({\n method: method,\n params: params,\n id: rid,\n jsonrpc: \"2.0\"\n });\n\n this.emit(\"debug\", {\n action: \"request\",\n request: JSON.parse(payload),\n provider: this\n });\n\n this._requests[String(rid)] = { callback, payload };\n\n if (this._wsReady) { this.websocket.send(payload); }\n });\n }\n\n static defaultUrl(): string {\n return \"ws:/\\/localhost:8546\";\n }\n\n async _subscribe(tag: string, param: Array, processFunc: (result: any) => void): Promise {\n let subIdPromise = this._subIds[tag];\n if (subIdPromise == null) {\n subIdPromise = Promise.all(param).then((param) => {\n return this.send(\"eth_subscribe\", param);\n });\n this._subIds[tag] = subIdPromise;\n }\n const subId = await subIdPromise;\n this._subs[subId] = { tag, processFunc };\n }\n\n _startEvent(event: Event): void {\n switch (event.type) {\n case \"block\":\n this._subscribe(\"block\", [ \"newHeads\" ], (result: any) => {\n const blockNumber = BigNumber.from(result.number).toNumber();\n this._emitted.block = blockNumber;\n this.emit(\"block\", blockNumber);\n });\n break;\n\n case \"pending\":\n this._subscribe(\"pending\", [ \"newPendingTransactions\" ], (result: any) => {\n this.emit(\"pending\", result);\n });\n break;\n\n case \"filter\":\n this._subscribe(event.tag, [ \"logs\", this._getFilter(event.filter) ], (result: any) => {\n if (result.removed == null) { result.removed = false; }\n this.emit(event.filter, this.formatter.filterLog(result));\n });\n break;\n\n case \"tx\": {\n const emitReceipt = (event: Event) => {\n const hash = event.hash;\n this.getTransactionReceipt(hash).then((receipt) => {\n if (!receipt) { return; }\n this.emit(hash, receipt);\n });\n };\n\n // In case it is already mined\n emitReceipt(event);\n\n // To keep things simple, we start up a single newHeads subscription\n // to keep an eye out for transactions we are watching for.\n // Starting a subscription for an event (i.e. \"tx\") that is already\n // running is (basically) a nop.\n this._subscribe(\"tx\", [ \"newHeads\" ], (result: any) => {\n this._events.filter((e) => (e.type === \"tx\")).forEach(emitReceipt);\n });\n break;\n }\n\n // Nothing is needed\n case \"debug\":\n case \"poll\":\n case \"willPoll\":\n case \"didPoll\":\n case \"error\":\n break;\n\n default:\n console.log(\"unhandled:\", event);\n break;\n }\n }\n\n _stopEvent(event: Event): void {\n let tag = event.tag;\n\n if (event.type === \"tx\") {\n // There are remaining transaction event listeners\n if (this._events.filter((e) => (e.type === \"tx\")).length) {\n return;\n }\n tag = \"tx\";\n } else if (this.listenerCount(event.event)) {\n // There are remaining event listeners\n return;\n }\n\n const subId = this._subIds[tag];\n if (!subId) { return; }\n\n delete this._subIds[tag];\n subId.then((subId) => {\n if (!this._subs[subId]) { return; }\n delete this._subs[subId];\n this.send(\"eth_unsubscribe\", [ subId ]);\n });\n }\n\n async destroy(): Promise {\n // Wait until we have connected before trying to disconnect\n if (this.websocket.readyState === WebSocket.CONNECTING) {\n await (new Promise((resolve) => {\n this.websocket.onopen = function() {\n resolve(true);\n };\n\n this.websocket.onerror = function() {\n resolve(false);\n };\n }));\n }\n\n // Hangup\n // See: https://developer.mozilla.org/en-US/docs/Web/API/CloseEvent#Status_codes\n this.websocket.close(1000);\n }\n}\n", "\n\"use strict\";\n\nimport { Network, Networkish } from \"@ethersproject/networks\";\nimport { defineReadOnly, getStatic } from \"@ethersproject/properties\";\nimport { ConnectionInfo } from \"@ethersproject/web\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\nimport { CommunityResourcable } from \"./formatter\";\nimport { JsonRpcProvider, JsonRpcSigner } from \"./json-rpc-provider\";\n\ntype getUrlFunc = (network: Network, apiKey: string) => string | ConnectionInfo;\n\n// A StaticJsonRpcProvider is useful when you *know* for certain that\n// the backend will never change, as it never calls eth_chainId to\n// verify its backend. However, if the backend does change, the effects\n// are undefined and may include:\n// - inconsistent results\n// - locking up the UI\n// - block skew warnings\n// - wrong results\n// If the network is not explicit (i.e. auto-detection is expected), the\n// node MUST be running and available to respond to requests BEFORE this\n// is instantiated.\nexport class StaticJsonRpcProvider extends JsonRpcProvider {\n async detectNetwork(): Promise {\n let network = this.network;\n if (network == null) {\n network = await super.detectNetwork();\n\n if (!network) {\n logger.throwError(\"no network detected\", Logger.errors.UNKNOWN_ERROR, { });\n }\n\n // If still not set, set it\n if (this._network == null) {\n // A static network does not support \"any\"\n defineReadOnly(this, \"_network\", network);\n\n this.emit(\"network\", network, null);\n }\n }\n return network;\n }\n}\n\nexport abstract class UrlJsonRpcProvider extends StaticJsonRpcProvider implements CommunityResourcable {\n readonly apiKey: any;\n\n constructor(network?: Networkish, apiKey?: any) {\n logger.checkAbstract(new.target, UrlJsonRpcProvider);\n\n // Normalize the Network and API Key\n network = getStatic<(network: Networkish) => Network>(new.target, \"getNetwork\")(network);\n apiKey = getStatic<(apiKey: string) => string>(new.target, \"getApiKey\")(apiKey);\n\n const connection = getStatic(new.target, \"getUrl\")(network, apiKey);\n\n super(connection, network);\n\n if (typeof(apiKey) === \"string\") {\n defineReadOnly(this, \"apiKey\", apiKey);\n } else if (apiKey != null) {\n Object.keys(apiKey).forEach((key) => {\n defineReadOnly(this, key, apiKey[key]);\n });\n }\n }\n\n _startPending(): void {\n logger.warn(\"WARNING: API provider does not support pending filters\");\n }\n\n isCommunityResource(): boolean {\n return false;\n }\n\n getSigner(address?: string): JsonRpcSigner {\n return logger.throwError(\n \"API provider does not support signing\",\n Logger.errors.UNSUPPORTED_OPERATION,\n { operation: \"getSigner\" }\n );\n }\n\n listAccounts(): Promise> {\n return Promise.resolve([]);\n }\n\n // Return a defaultApiKey if null, otherwise validate the API key\n static getApiKey(apiKey: any): any {\n return apiKey;\n }\n\n // Returns the url or connection for the given network and API key. The\n // API key will have been sanitized by the getApiKey first, so any validation\n // or transformations can be done there.\n static getUrl(network: Network, apiKey: any): string | ConnectionInfo {\n return logger.throwError(\"not implemented; sub-classes must override getUrl\", Logger.errors.NOT_IMPLEMENTED, {\n operation: \"getUrl\"\n });\n }\n}\n", "\"use strict\";\n\nimport { Network, Networkish } from \"@ethersproject/networks\";\nimport { defineReadOnly } from \"@ethersproject/properties\";\nimport { ConnectionInfo } from \"@ethersproject/web\";\n\nimport { CommunityResourcable, showThrottleMessage } from \"./formatter\";\nimport { WebSocketProvider } from \"./websocket-provider\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\nimport { UrlJsonRpcProvider } from \"./url-json-rpc-provider\";\n\n// This key was provided to ethers.js by Alchemy to be used by the\n// default provider, but it is recommended that for your own\n// production environments, that you acquire your own API key at:\n// https://dashboard.alchemyapi.io\n\nconst defaultApiKey = \"_gg7wSSi0KMBsdKnGVfHDueq6xMB9EkC\"\n\nexport class AlchemyWebSocketProvider extends WebSocketProvider implements CommunityResourcable {\n readonly apiKey: string;\n\n constructor(network?: Networkish, apiKey?: any) {\n const provider = new AlchemyProvider(network, apiKey);\n\n const url = provider.connection.url.replace(/^http/i, \"ws\")\n .replace(\".alchemyapi.\", \".ws.alchemyapi.\");\n\n super(url, provider.network);\n defineReadOnly(this, \"apiKey\", provider.apiKey);\n }\n\n isCommunityResource(): boolean {\n return (this.apiKey === defaultApiKey);\n }\n}\n\nexport class AlchemyProvider extends UrlJsonRpcProvider {\n\n static getWebSocketProvider(network?: Networkish, apiKey?: any): AlchemyWebSocketProvider {\n return new AlchemyWebSocketProvider(network, apiKey);\n }\n\n static getApiKey(apiKey: any): any {\n if (apiKey == null) { return defaultApiKey; }\n if (apiKey && typeof(apiKey) !== \"string\") {\n logger.throwArgumentError(\"invalid apiKey\", \"apiKey\", apiKey);\n }\n return apiKey;\n }\n\n static getUrl(network: Network, apiKey: string): ConnectionInfo {\n let host = null;\n switch (network.name) {\n case \"homestead\":\n host = \"eth-mainnet.alchemyapi.io/v2/\";\n break;\n case \"goerli\":\n host = \"eth-goerli.g.alchemy.com/v2/\";\n break;\n case \"matic\":\n host = \"polygon-mainnet.g.alchemy.com/v2/\";\n break;\n case \"maticmum\":\n host = \"polygon-mumbai.g.alchemy.com/v2/\";\n break;\n case \"arbitrum\":\n host = \"arb-mainnet.g.alchemy.com/v2/\";\n break;\n case \"arbitrum-goerli\":\n host = \"arb-goerli.g.alchemy.com/v2/\";\n break;\n case \"optimism\":\n host = \"opt-mainnet.g.alchemy.com/v2/\";\n break;\n case \"optimism-goerli\":\n host = \"opt-goerli.g.alchemy.com/v2/\"\n break;\n default:\n logger.throwArgumentError(\"unsupported network\", \"network\", arguments[0]);\n }\n\n return {\n allowGzip: true,\n url: (\"https:/\" + \"/\" + host + apiKey),\n throttleCallback: (attempt: number, url: string) => {\n if (apiKey === defaultApiKey) {\n showThrottleMessage();\n }\n return Promise.resolve(true);\n }\n };\n }\n\n isCommunityResource(): boolean {\n return (this.apiKey === defaultApiKey);\n }\n}\n", "\nimport { Network } from \"@ethersproject/networks\";\n\nimport { showThrottleMessage } from \"./formatter\";\nimport { UrlJsonRpcProvider } from \"./url-json-rpc-provider\";\n\nimport type { ConnectionInfo } from \"@ethersproject/web\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\n\nconst defaultApiKey = \"9f7d929b018cdffb338517efa06f58359e86ff1ffd350bc889738523659e7972\";\n\nfunction getHost(name: string): string {\n switch (name) {\n case \"homestead\":\n return \"rpc.ankr.com/eth/\";\n case \"ropsten\":\n return \"rpc.ankr.com/eth_ropsten/\";\n case \"rinkeby\":\n return \"rpc.ankr.com/eth_rinkeby/\";\n case \"goerli\":\n return \"rpc.ankr.com/eth_goerli/\";\n\n case \"matic\":\n return \"rpc.ankr.com/polygon/\";\n\n case \"arbitrum\":\n return \"rpc.ankr.com/arbitrum/\";\n }\n return logger.throwArgumentError(\"unsupported network\", \"name\", name);\n}\n\nexport class AnkrProvider extends UrlJsonRpcProvider {\n readonly apiKey: string;\n\n isCommunityResource(): boolean {\n return (this.apiKey === defaultApiKey);\n }\n\n static getApiKey(apiKey: any): any {\n if (apiKey == null) { return defaultApiKey; }\n return apiKey;\n }\n\n static getUrl(network: Network, apiKey: any): ConnectionInfo {\n if (apiKey == null) { apiKey = defaultApiKey; }\n const connection: ConnectionInfo = {\n allowGzip: true,\n url: (\"https:/\\/\" + getHost(network.name) + apiKey),\n throttleCallback: (attempt: number, url: string) => {\n if (apiKey.apiKey === defaultApiKey) {\n showThrottleMessage();\n }\n return Promise.resolve(true);\n }\n };\n\n if (apiKey.projectSecret != null) {\n connection.user = \"\";\n connection.password = apiKey.projectSecret\n }\n\n return connection;\n }\n}\n", "\"use strict\";\n\nimport { Network } from \"@ethersproject/networks\";\nimport { UrlJsonRpcProvider } from \"./url-json-rpc-provider\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\nexport class CloudflareProvider extends UrlJsonRpcProvider {\n\n static getApiKey(apiKey: any): any {\n if (apiKey != null) {\n logger.throwArgumentError(\"apiKey not supported for cloudflare\", \"apiKey\", apiKey);\n }\n return null;\n }\n\n static getUrl(network: Network, apiKey?: any): string {\n let host = null;\n switch (network.name) {\n case \"homestead\":\n host = \"https://cloudflare-eth.com/\";\n break;\n default:\n logger.throwArgumentError(\"unsupported network\", \"network\", arguments[0]);\n }\n\n return host;\n }\n\n async perform(method: string, params: any): Promise {\n // The Cloudflare provider does not support eth_blockNumber,\n // so we get the latest block and pull it from that\n if (method === \"getBlockNumber\") {\n const block = await super.perform(\"getBlock\", { blockTag: \"latest\" });\n return block.number;\n }\n\n return super.perform(method, params);\n }\n}\n", "\"use strict\";\n\nimport { BlockTag, TransactionRequest, TransactionResponse } from \"@ethersproject/abstract-provider\";\nimport { hexlify, hexValue, isHexString } from \"@ethersproject/bytes\";\nimport { Network, Networkish } from \"@ethersproject/networks\";\nimport { deepCopy, defineReadOnly } from \"@ethersproject/properties\";\nimport { accessListify } from \"@ethersproject/transactions\";\nimport { ConnectionInfo, fetchJson } from \"@ethersproject/web\";\n\nimport { showThrottleMessage } from \"./formatter\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\nimport { BaseProvider } from \"./base-provider\";\n\n\n// The transaction has already been sanitized by the calls in Provider\nfunction getTransactionPostData(transaction: TransactionRequest): Record {\n const result: Record = { };\n for (let key in transaction) {\n if ((transaction)[key] == null) { continue; }\n let value = (transaction)[key];\n if (key === \"type\" && value === 0) { continue; }\n\n // Quantity-types require no leading zero, unless 0\n if (({ type: true, gasLimit: true, gasPrice: true, maxFeePerGs: true, maxPriorityFeePerGas: true, nonce: true, value: true })[key]) {\n value = hexValue(hexlify(value));\n } else if (key === \"accessList\") {\n value = \"[\" + accessListify(value).map((set) => {\n return `{address:\"${ set.address }\",storageKeys:[\"${ set.storageKeys.join('\",\"') }\"]}`;\n }).join(\",\") + \"]\";\n } else {\n value = hexlify(value);\n }\n result[key] = value;\n }\n return result;\n}\n\nfunction getResult(result: { status?: number, message?: string, result?: any }): any {\n // getLogs, getHistory have weird success responses\n if (result.status == 0 && (result.message === \"No records found\" || result.message === \"No transactions found\")) {\n return result.result;\n }\n\n if (result.status != 1 || typeof(result.message) !== \"string\" || !result.message.match(/^OK/)) {\n const error: any = new Error(\"invalid response\");\n error.result = JSON.stringify(result);\n if ((result.result || \"\").toLowerCase().indexOf(\"rate limit\") >= 0) {\n error.throttleRetry = true;\n }\n throw error;\n }\n\n return result.result;\n}\n\nfunction getJsonResult(result: { jsonrpc: string, result?: any, error?: { code?: number, data?: any, message?: string} } ): any {\n // This response indicates we are being throttled\n if (result && (result).status == 0 && (result).message == \"NOTOK\" && (result.result || \"\").toLowerCase().indexOf(\"rate limit\") >= 0) {\n const error: any = new Error(\"throttled response\");\n error.result = JSON.stringify(result);\n error.throttleRetry = true;\n throw error;\n }\n\n if (result.jsonrpc != \"2.0\") {\n // @TODO: not any\n const error: any = new Error(\"invalid response\");\n error.result = JSON.stringify(result);\n throw error;\n }\n\n if (result.error) {\n // @TODO: not any\n const error: any = new Error(result.error.message || \"unknown error\");\n if (result.error.code) { error.code = result.error.code; }\n if (result.error.data) { error.data = result.error.data; }\n throw error;\n }\n\n return result.result;\n}\n\n// The blockTag was normalized as a string by the Provider pre-perform operations\nfunction checkLogTag(blockTag: string): number | \"latest\" {\n if (blockTag === \"pending\") { throw new Error(\"pending not supported\"); }\n if (blockTag === \"latest\") { return blockTag; }\n\n return parseInt(blockTag.substring(2), 16);\n}\n\n\nfunction checkError(method: string, error: any, transaction: any): any {\n // Undo the \"convenience\" some nodes are attempting to prevent backwards\n // incompatibility; maybe for v6 consider forwarding reverts as errors\n if (method === \"call\" && error.code === Logger.errors.SERVER_ERROR) {\n const e = error.error;\n\n // Etherscan keeps changing their string\n if (e && (e.message.match(/reverted/i) || e.message.match(/VM execution error/i))) {\n // Etherscan prefixes the data like \"Reverted 0x1234\"\n let data = e.data;\n if (data) { data = \"0x\" + data.replace(/^.*0x/i, \"\"); }\n\n if (isHexString(data)) { return data; }\n\n logger.throwError(\"missing revert data in call exception\", Logger.errors.CALL_EXCEPTION, {\n error, data: \"0x\"\n });\n }\n }\n\n // Get the message from any nested error structure\n let message = error.message;\n if (error.code === Logger.errors.SERVER_ERROR) {\n if (error.error && typeof(error.error.message) === \"string\") {\n message = error.error.message;\n } else if (typeof(error.body) === \"string\") {\n message = error.body;\n } else if (typeof(error.responseText) === \"string\") {\n message = error.responseText;\n }\n }\n message = (message || \"\").toLowerCase();\n\n // \"Insufficient funds. The account you tried to send transaction from does not have enough funds. Required 21464000000000 and got: 0\"\n if (message.match(/insufficient funds/)) {\n logger.throwError(\"insufficient funds for intrinsic transaction cost\", Logger.errors.INSUFFICIENT_FUNDS, {\n error, method, transaction\n });\n }\n\n // \"Transaction with the same hash was already imported.\"\n if (message.match(/same hash was already imported|transaction nonce is too low|nonce too low/)) {\n logger.throwError(\"nonce has already been used\", Logger.errors.NONCE_EXPIRED, {\n error, method, transaction\n });\n }\n\n // \"Transaction gas price is too low. There is another transaction with same nonce in the queue. Try increasing the gas price or incrementing the nonce.\"\n if (message.match(/another transaction with same nonce/)) {\n logger.throwError(\"replacement fee too low\", Logger.errors.REPLACEMENT_UNDERPRICED, {\n error, method, transaction\n });\n }\n\n if (message.match(/execution failed due to an exception|execution reverted/)) {\n logger.throwError(\"cannot estimate gas; transaction may fail or may require manual gas limit\", Logger.errors.UNPREDICTABLE_GAS_LIMIT, {\n error, method, transaction\n });\n }\n\n throw error;\n}\n\nexport class EtherscanProvider extends BaseProvider{\n readonly baseUrl: string;\n readonly apiKey: string | null;\n\n constructor(network?: Networkish, apiKey?: string) {\n super(network);\n\n defineReadOnly(this, \"baseUrl\", this.getBaseUrl());\n defineReadOnly(this, \"apiKey\", apiKey || null);\n }\n\n getBaseUrl(): string {\n switch(this.network ? this.network.name: \"invalid\") {\n case \"homestead\":\n return \"https:/\\/api.etherscan.io\";\n case \"goerli\":\n return \"https:/\\/api-goerli.etherscan.io\";\n case \"sepolia\":\n return \"https:/\\/api-sepolia.etherscan.io\";\n case \"matic\":\n return \"https:/\\/api.polygonscan.com\";\n case \"maticmum\":\n return \"https:/\\/api-testnet.polygonscan.com\";\n case \"arbitrum\":\n return \"https:/\\/api.arbiscan.io\";\n case \"arbitrum-goerli\":\n return \"https:/\\/api-goerli.arbiscan.io\";\n case \"optimism\":\n return \"https:/\\/api-optimistic.etherscan.io\";\n case \"optimism-goerli\":\n return \"https:/\\/api-goerli-optimistic.etherscan.io\";\n default:\n }\n\n return logger.throwArgumentError(\"unsupported network\", \"network\", this.network.name);\n }\n\n getUrl(module: string, params: Record): string {\n const query = Object.keys(params).reduce((accum, key) => {\n const value = params[key];\n if (value != null) {\n accum += `&${ key }=${ value }`\n }\n return accum\n }, \"\");\n const apiKey = ((this.apiKey) ? `&apikey=${ this.apiKey }`: \"\");\n return `${ this.baseUrl }/api?module=${ module }${ query }${ apiKey }`;\n }\n\n getPostUrl(): string {\n return `${ this.baseUrl }/api`;\n }\n\n getPostData(module: string, params: Record): Record {\n params.module = module;\n params.apikey = this.apiKey;\n return params;\n }\n\n async fetch(module: string, params: Record, post?: boolean): Promise {\n const url = (post ? this.getPostUrl(): this.getUrl(module, params));\n const payload = (post ? this.getPostData(module, params): null);\n const procFunc = (module === \"proxy\") ? getJsonResult: getResult;\n\n this.emit(\"debug\", {\n action: \"request\",\n request: url,\n provider: this\n });\n\n const connection: ConnectionInfo = {\n url: url,\n throttleSlotInterval: 1000,\n throttleCallback: (attempt: number, url: string) => {\n if (this.isCommunityResource()) {\n showThrottleMessage();\n }\n return Promise.resolve(true);\n }\n };\n\n let payloadStr: string = null;\n if (payload) {\n connection.headers = { \"content-type\": \"application/x-www-form-urlencoded; charset=UTF-8\" };\n payloadStr = Object.keys(payload).map((key) => {\n return `${ key }=${ payload[key] }`\n }).join(\"&\");\n }\n\n const result = await fetchJson(connection, payloadStr, procFunc || getJsonResult);\n\n this.emit(\"debug\", {\n action: \"response\",\n request: url,\n response: deepCopy(result),\n provider: this\n });\n\n return result;\n }\n\n async detectNetwork(): Promise {\n return this.network;\n }\n\n async perform(method: string, params: any): Promise {\n\n switch (method) {\n case \"getBlockNumber\":\n return this.fetch(\"proxy\", { action: \"eth_blockNumber\" });\n\n case \"getGasPrice\":\n return this.fetch(\"proxy\", { action: \"eth_gasPrice\" });\n\n case \"getBalance\":\n // Returns base-10 result\n return this.fetch(\"account\", {\n action: \"balance\",\n address: params.address,\n tag: params.blockTag\n });\n\n case \"getTransactionCount\":\n return this.fetch(\"proxy\", {\n action: \"eth_getTransactionCount\",\n address: params.address,\n tag: params.blockTag\n });\n\n case \"getCode\":\n return this.fetch(\"proxy\", {\n action: \"eth_getCode\",\n address: params.address,\n tag: params.blockTag\n });\n\n case \"getStorageAt\":\n return this.fetch(\"proxy\", {\n action: \"eth_getStorageAt\",\n address: params.address,\n position: params.position,\n tag: params.blockTag\n });\n\n case \"sendTransaction\":\n return this.fetch(\"proxy\", {\n action: \"eth_sendRawTransaction\",\n hex: params.signedTransaction\n }, true).catch((error) => {\n return checkError(\"sendTransaction\", error, params.signedTransaction);\n });\n\n case \"getBlock\":\n if (params.blockTag) {\n return this.fetch(\"proxy\", {\n action: \"eth_getBlockByNumber\",\n tag: params.blockTag,\n boolean: (params.includeTransactions ? \"true\": \"false\")\n });\n }\n throw new Error(\"getBlock by blockHash not implemented\");\n\n case \"getTransaction\":\n return this.fetch(\"proxy\", {\n action: \"eth_getTransactionByHash\",\n txhash: params.transactionHash\n });\n\n case \"getTransactionReceipt\":\n return this.fetch(\"proxy\", {\n action: \"eth_getTransactionReceipt\",\n txhash: params.transactionHash\n });\n\n case \"call\": {\n if (params.blockTag !== \"latest\") {\n throw new Error(\"EtherscanProvider does not support blockTag for call\");\n }\n\n const postData = getTransactionPostData(params.transaction);\n postData.module = \"proxy\";\n postData.action = \"eth_call\";\n\n try {\n return await this.fetch(\"proxy\", postData, true);\n } catch (error) {\n return checkError(\"call\", error, params.transaction);\n }\n }\n\n case \"estimateGas\": {\n const postData = getTransactionPostData(params.transaction);\n postData.module = \"proxy\";\n postData.action = \"eth_estimateGas\";\n\n try {\n return await this.fetch(\"proxy\", postData, true);\n } catch (error) {\n return checkError(\"estimateGas\", error, params.transaction);\n }\n }\n\n case \"getLogs\": {\n const args: Record = { action: \"getLogs\" }\n\n if (params.filter.fromBlock) {\n args.fromBlock = checkLogTag(params.filter.fromBlock);\n }\n\n if (params.filter.toBlock) {\n args.toBlock = checkLogTag(params.filter.toBlock);\n }\n\n if (params.filter.address) {\n args.address = params.filter.address;\n }\n\n // @TODO: We can handle slightly more complicated logs using the logs API\n if (params.filter.topics && params.filter.topics.length > 0) {\n if (params.filter.topics.length > 1) {\n logger.throwError(\"unsupported topic count\", Logger.errors.UNSUPPORTED_OPERATION, { topics: params.filter.topics });\n }\n\n if (params.filter.topics.length === 1) {\n const topic0 = params.filter.topics[0];\n if (typeof(topic0) !== \"string\" || topic0.length !== 66) {\n logger.throwError(\"unsupported topic format\", Logger.errors.UNSUPPORTED_OPERATION, { topic0: topic0 });\n }\n args.topic0 = topic0;\n }\n }\n\n const logs: Array = await this.fetch(\"logs\", args);\n\n // Cache txHash => blockHash\n let blocks: { [tag: string]: string } = {};\n\n // Add any missing blockHash to the logs\n for (let i = 0; i < logs.length; i++) {\n const log = logs[i];\n if (log.blockHash != null) { continue; }\n if (blocks[log.blockNumber] == null) {\n const block = await this.getBlock(log.blockNumber);\n if (block) {\n blocks[log.blockNumber] = block.hash;\n }\n }\n log.blockHash = blocks[log.blockNumber];\n }\n\n return logs;\n }\n\n case \"getEtherPrice\":\n if (this.network.name !== \"homestead\") { return 0.0; }\n return parseFloat((await this.fetch(\"stats\", { action: \"ethprice\" })).ethusd);\n\n default:\n break;\n }\n\n return super.perform(method, params);\n }\n\n // Note: The `page` page parameter only allows pagination within the\n // 10,000 window available without a page and offset parameter\n // Error: Result window is too large, PageNo x Offset size must\n // be less than or equal to 10000\n async getHistory(addressOrName: string | Promise, startBlock?: BlockTag, endBlock?: BlockTag): Promise> {\n const params = {\n action: \"txlist\",\n address: (await this.resolveName(addressOrName)),\n startblock: ((startBlock == null) ? 0: startBlock),\n endblock: ((endBlock == null) ? 99999999: endBlock),\n sort: \"asc\"\n };\n\n const result = await this.fetch(\"account\", params);\n\n return result.map((tx: any) => {\n [\"contractAddress\", \"to\"].forEach(function(key) {\n if (tx[key] == \"\") { delete tx[key]; }\n });\n if (tx.creates == null && tx.contractAddress != null) {\n tx.creates = tx.contractAddress;\n }\n const item = this.formatter.transactionResponse(tx);\n if (tx.timeStamp) { item.timestamp = parseInt(tx.timeStamp); }\n return item;\n });\n }\n\n isCommunityResource(): boolean {\n return (this.apiKey == null);\n }\n}\n", "\"use strict\";\n\nimport { Block, BlockWithTransactions, Provider } from \"@ethersproject/abstract-provider\";\nimport { BigNumber } from \"@ethersproject/bignumber\";\nimport { isHexString } from \"@ethersproject/bytes\";\nimport { Network } from \"@ethersproject/networks\";\nimport { deepCopy, defineReadOnly, shallowCopy } from \"@ethersproject/properties\";\nimport { shuffled } from \"@ethersproject/random\";\nimport { poll } from \"@ethersproject/web\";\n\nimport { BaseProvider } from \"./base-provider\";\nimport { isCommunityResource } from \"./formatter\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\nfunction now() { return (new Date()).getTime(); }\n\n// Returns to network as long as all agree, or null if any is null.\n// Throws an error if any two networks do not match.\nfunction checkNetworks(networks: Array): Network {\n let result = null;\n\n for (let i = 0; i < networks.length; i++) {\n const network = networks[i];\n\n // Null! We do not know our network; bail.\n if (network == null) { return null; }\n\n if (result) {\n // Make sure the network matches the previous networks\n if (!(result.name === network.name && result.chainId === network.chainId &&\n ((result.ensAddress === network.ensAddress) || (result.ensAddress == null && network.ensAddress == null)))) {\n\n logger.throwArgumentError(\"provider mismatch\", \"networks\", networks);\n }\n } else {\n result = network;\n }\n }\n\n return result;\n}\n\nfunction median(values: Array, maxDelta?: number): number {\n values = values.slice().sort();\n const middle = Math.floor(values.length / 2);\n\n // Odd length; take the middle\n if (values.length % 2) {\n return values[middle];\n }\n\n // Even length; take the average of the two middle\n const a = values[middle - 1], b = values[middle];\n\n if (maxDelta != null && Math.abs(a - b) > maxDelta) {\n return null;\n }\n\n return (a + b) / 2;\n}\n\nfunction serialize(value: any): string {\n if (value === null) {\n return \"null\";\n } else if (typeof(value) === \"number\" || typeof(value) === \"boolean\") {\n return JSON.stringify(value);\n } else if (typeof(value) === \"string\") {\n return value;\n } else if (BigNumber.isBigNumber(value)) {\n return value.toString();\n } else if (Array.isArray(value)) {\n return JSON.stringify(value.map((i) => serialize(i)));\n } else if (typeof(value) === \"object\") {\n const keys = Object.keys(value);\n keys.sort();\n return \"{\" + keys.map((key) => {\n let v = value[key];\n if (typeof(v) === \"function\") {\n v = \"[function]\";\n } else {\n v = serialize(v);\n }\n return JSON.stringify(key) + \":\" + v;\n }).join(\",\") + \"}\";\n }\n\n throw new Error(\"unknown value type: \" + typeof(value));\n}\n\n// Next request ID to use for emitting debug info\nlet nextRid = 1;\n\n\nexport interface FallbackProviderConfig {\n // The Provider\n provider: Provider;\n\n // The priority to favour this Provider; lower values are used first (higher priority)\n priority?: number;\n\n // Timeout before also triggering the next provider; this does not stop\n // this provider and if its result comes back before a quorum is reached\n // it will be incorporated into the vote\n // - lower values will cause more network traffic but may result in a\n // faster result.\n stallTimeout?: number;\n\n // How much this provider contributes to the quorum; sometimes a specific\n // provider may be more reliable or trustworthy than others, but usually\n // this should be left as the default\n weight?: number;\n};\n\n// A Staller is used to provide a delay to give a Provider a chance to response\n// before asking the next Provider to try.\ntype Staller = {\n wait: (func: () => void) => Promise\n getPromise: () => Promise,\n cancel: () => void\n};\n\nfunction stall(duration: number): Staller {\n let cancel: () => void = null;\n\n let timer: NodeJS.Timer = null;\n let promise = >(new Promise((resolve) => {\n cancel = function() {\n if (timer) {\n clearTimeout(timer);\n timer = null;\n }\n resolve();\n }\n timer = setTimeout(cancel, duration);\n }));\n\n const wait = (func: () => void) => {\n promise = promise.then(func);\n return promise;\n }\n\n function getPromise(): Promise {\n return promise;\n }\n\n return { cancel, getPromise, wait };\n}\n\nconst ForwardErrors = [\n Logger.errors.CALL_EXCEPTION,\n Logger.errors.INSUFFICIENT_FUNDS,\n Logger.errors.NONCE_EXPIRED,\n Logger.errors.REPLACEMENT_UNDERPRICED,\n Logger.errors.UNPREDICTABLE_GAS_LIMIT\n];\n\nconst ForwardProperties = [\n \"address\",\n \"args\",\n \"errorArgs\",\n \"errorSignature\",\n \"method\",\n \"transaction\",\n];\n\n\n// @TODO: Make this an object with staller and cancel built-in\ninterface RunningConfig extends FallbackProviderConfig {\n start?: number;\n done?: boolean;\n cancelled?: boolean;\n runner?: Promise;\n staller?: Staller;\n result?: any;\n error?: Error;\n};\n\nfunction exposeDebugConfig(config: RunningConfig, now?: number): any {\n const result: any = {\n weight: config.weight\n };\n Object.defineProperty(result, \"provider\", { get: () => config.provider });\n if (config.start) { result.start = config.start; }\n if (now) { result.duration = (now - config.start); }\n if (config.done) {\n if (config.error) {\n result.error = config.error;\n } else {\n result.result = config.result || null;\n }\n }\n return result;\n}\n\nfunction normalizedTally(normalize: (value: any) => string, quorum: number): (configs: Array) => any {\n return function(configs: Array): any {\n\n // Count the votes for each result\n const tally: { [ key: string]: { count: number, result: any } } = { };\n configs.forEach((c) => {\n const value = normalize(c.result);\n if (!tally[value]) { tally[value] = { count: 0, result: c.result }; }\n tally[value].count++;\n });\n\n // Check for a quorum on any given result\n const keys = Object.keys(tally);\n for (let i = 0; i < keys.length; i++) {\n const check = tally[keys[i]];\n if (check.count >= quorum) {\n return check.result;\n }\n }\n\n // No quroum\n return undefined;\n }\n}\nfunction getProcessFunc(provider: FallbackProvider, method: string, params: { [ key: string ]: any }): (configs: Array) => any {\n\n let normalize = serialize;\n\n switch (method) {\n case \"getBlockNumber\":\n // Return the median value, unless there is (median + 1) is also\n // present, in which case that is probably true and the median\n // is going to be stale soon. In the event of a malicious node,\n // the lie will be true soon enough.\n return function(configs: Array): number {\n const values = configs.map((c) => c.result);\n\n // Get the median block number\n let blockNumber = median(configs.map((c) => c.result), 2);\n if (blockNumber == null) { return undefined; }\n\n blockNumber = Math.ceil(blockNumber);\n\n // If the next block height is present, its prolly safe to use\n if (values.indexOf(blockNumber + 1) >= 0) { blockNumber++; }\n\n // Don't ever roll back the blockNumber\n if (blockNumber >= provider._highestBlockNumber) {\n provider._highestBlockNumber = blockNumber;\n }\n\n return provider._highestBlockNumber;\n };\n\n case \"getGasPrice\":\n // Return the middle (round index up) value, similar to median\n // but do not average even entries and choose the higher.\n // Malicious actors must compromise 50% of the nodes to lie.\n return function(configs: Array): BigNumber {\n const values = configs.map((c) => c.result);\n values.sort();\n return values[Math.floor(values.length / 2)];\n }\n\n case \"getEtherPrice\":\n // Returns the median price. Malicious actors must compromise at\n // least 50% of the nodes to lie (in a meaningful way).\n return function(configs: Array): number {\n return median(configs.map((c) => c.result));\n }\n\n // No additional normalizing required; serialize is enough\n case \"getBalance\":\n case \"getTransactionCount\":\n case \"getCode\":\n case \"getStorageAt\":\n case \"call\":\n case \"estimateGas\":\n case \"getLogs\":\n break;\n\n // We drop the confirmations from transactions as it is approximate\n case \"getTransaction\":\n case \"getTransactionReceipt\":\n normalize = function(tx: any): string {\n if (tx == null) { return null; }\n\n tx = shallowCopy(tx);\n tx.confirmations = -1;\n return serialize(tx);\n }\n break;\n\n // We drop the confirmations from transactions as it is approximate\n case \"getBlock\":\n // We drop the confirmations from transactions as it is approximate\n if (params.includeTransactions) {\n normalize = function(block: BlockWithTransactions): string {\n if (block == null) { return null; }\n\n block = shallowCopy(block);\n block.transactions = block.transactions.map((tx) => {\n tx = shallowCopy(tx);\n tx.confirmations = -1;\n return tx;\n });\n return serialize(block);\n };\n } else {\n normalize = function(block: Block): string {\n if (block == null) { return null; }\n return serialize(block);\n }\n }\n break;\n\n default:\n throw new Error(\"unknown method: \" + method);\n }\n\n // Return the result if and only if the expected quorum is\n // satisfied and agreed upon for the final result.\n return normalizedTally(normalize, provider.quorum);\n\n}\n\n// If we are doing a blockTag query, we need to make sure the backend is\n// caught up to the FallbackProvider, before sending a request to it.\nasync function waitForSync(config: RunningConfig, blockNumber: number): Promise {\n const provider = (config.provider);\n\n if ((provider.blockNumber != null && provider.blockNumber >= blockNumber) || blockNumber === -1) {\n return provider;\n }\n\n return poll(() => {\n return new Promise((resolve, reject) => {\n setTimeout(function() {\n\n // We are synced\n if (provider.blockNumber >= blockNumber) { return resolve(provider); }\n\n // We're done; just quit\n if (config.cancelled) { return resolve(null); }\n\n // Try again, next block\n return resolve(undefined);\n }, 0);\n });\n }, { oncePoll: provider });\n}\n\nasync function getRunner(config: RunningConfig, currentBlockNumber: number, method: string, params: { [ key: string]: any }): Promise {\n let provider = config.provider;\n\n switch (method) {\n case \"getBlockNumber\":\n case \"getGasPrice\":\n return provider[method]();\n case \"getEtherPrice\":\n if ((provider).getEtherPrice) {\n return (provider).getEtherPrice();\n }\n break;\n case \"getBalance\":\n case \"getTransactionCount\":\n case \"getCode\":\n if (params.blockTag && isHexString(params.blockTag)) {\n provider = await waitForSync(config, currentBlockNumber)\n }\n return provider[method](params.address, params.blockTag || \"latest\");\n case \"getStorageAt\":\n if (params.blockTag && isHexString(params.blockTag)) {\n provider = await waitForSync(config, currentBlockNumber)\n }\n return provider.getStorageAt(params.address, params.position, params.blockTag || \"latest\");\n case \"getBlock\":\n if (params.blockTag && isHexString(params.blockTag)) {\n provider = await waitForSync(config, currentBlockNumber)\n }\n return provider[(params.includeTransactions ? \"getBlockWithTransactions\": \"getBlock\")](params.blockTag || params.blockHash);\n case \"call\":\n case \"estimateGas\":\n if (params.blockTag && isHexString(params.blockTag)) {\n provider = await waitForSync(config, currentBlockNumber)\n }\n if (method === \"call\" && params.blockTag) {\n return provider[method](params.transaction, params.blockTag);\n }\n return provider[method](params.transaction);\n case \"getTransaction\":\n case \"getTransactionReceipt\":\n return provider[method](params.transactionHash);\n case \"getLogs\": {\n let filter = params.filter;\n if ((filter.fromBlock && isHexString(filter.fromBlock)) || (filter.toBlock && isHexString(filter.toBlock))) {\n provider = await waitForSync(config, currentBlockNumber)\n }\n return provider.getLogs(filter);\n }\n }\n\n return logger.throwError(\"unknown method error\", Logger.errors.UNKNOWN_ERROR, {\n method: method,\n params: params\n });\n}\n\nexport class FallbackProvider extends BaseProvider {\n readonly providerConfigs: ReadonlyArray;\n readonly quorum: number;\n\n // Due to the highly asyncronous nature of the blockchain, we need\n // to make sure we never unroll the blockNumber due to our random\n // sample of backends\n _highestBlockNumber: number;\n\n constructor(providers: Array, quorum?: number) {\n if (providers.length === 0) {\n logger.throwArgumentError(\"missing providers\", \"providers\", providers);\n }\n\n const providerConfigs: Array = providers.map((configOrProvider, index) => {\n if (Provider.isProvider(configOrProvider)) {\n const stallTimeout = isCommunityResource(configOrProvider) ? 2000: 750;\n const priority = 1;\n return Object.freeze({ provider: configOrProvider, weight: 1, stallTimeout, priority });\n }\n\n const config: FallbackProviderConfig = shallowCopy(configOrProvider);\n\n if (config.priority == null) { config.priority = 1; }\n if (config.stallTimeout == null) {\n config.stallTimeout = isCommunityResource(configOrProvider) ? 2000: 750;\n }\n if (config.weight == null) { config.weight = 1; }\n\n const weight = config.weight;\n if (weight % 1 || weight > 512 || weight < 1) {\n logger.throwArgumentError(\"invalid weight; must be integer in [1, 512]\", `providers[${ index }].weight`, weight);\n }\n\n return Object.freeze(config);\n });\n\n const total = providerConfigs.reduce((accum, c) => (accum + c.weight), 0);\n\n if (quorum == null) {\n quorum = total / 2;\n } else if (quorum > total) {\n logger.throwArgumentError(\"quorum will always fail; larger than total weight\", \"quorum\", quorum);\n }\n\n // Are all providers' networks are known\n let networkOrReady: Network | Promise = checkNetworks(providerConfigs.map((c) => ((c.provider)).network));\n\n // Not all networks are known; we must stall\n if (networkOrReady == null) {\n networkOrReady = new Promise((resolve, reject) => {\n setTimeout(() => {\n this.detectNetwork().then(resolve, reject);\n }, 0);\n });\n }\n\n super(networkOrReady);\n\n // Preserve a copy, so we do not get mutated\n defineReadOnly(this, \"providerConfigs\", Object.freeze(providerConfigs));\n defineReadOnly(this, \"quorum\", quorum);\n\n this._highestBlockNumber = -1;\n }\n\n async detectNetwork(): Promise {\n const networks = await Promise.all(this.providerConfigs.map((c) => c.provider.getNetwork()));\n return checkNetworks(networks);\n }\n\n async perform(method: string, params: { [name: string]: any }): Promise {\n // Sending transactions is special; always broadcast it to all backends\n if (method === \"sendTransaction\") {\n const results: Array = await Promise.all(this.providerConfigs.map((c) => {\n return c.provider.sendTransaction(params.signedTransaction).then((result) => {\n return result.hash;\n }, (error) => {\n return error;\n });\n }));\n\n // Any success is good enough (other errors are likely \"already seen\" errors\n for (let i = 0; i < results.length; i++) {\n const result = results[i];\n if (typeof(result) === \"string\") { return result; }\n }\n\n // They were all an error; pick the first error\n throw results[0];\n }\n\n // We need to make sure we are in sync with our backends, so we need\n // to know this before we can make a lot of calls\n if (this._highestBlockNumber === -1 && method !== \"getBlockNumber\") {\n await this.getBlockNumber();\n }\n\n const processFunc = getProcessFunc(this, method, params);\n\n // Shuffle the providers and then sort them by their priority; we\n // shallowCopy them since we will store the result in them too\n const configs: Array = shuffled(this.providerConfigs.map(shallowCopy));\n configs.sort((a, b) => (a.priority - b.priority));\n\n const currentBlockNumber = this._highestBlockNumber;\n\n let i = 0;\n let first = true;\n while (true) {\n const t0 = now();\n\n // Compute the inflight weight (exclude anything past)\n let inflightWeight = configs.filter((c) => (c.runner && ((t0 - c.start) < c.stallTimeout)))\n .reduce((accum, c) => (accum + c.weight), 0);\n\n // Start running enough to meet quorum\n while (inflightWeight < this.quorum && i < configs.length) {\n const config = configs[i++];\n\n const rid = nextRid++;\n\n config.start = now();\n config.staller = stall(config.stallTimeout);\n config.staller.wait(() => { config.staller = null; });\n\n config.runner = getRunner(config, currentBlockNumber, method, params).then((result) => {\n config.done = true;\n config.result = result;\n\n if (this.listenerCount(\"debug\")) {\n this.emit(\"debug\", {\n action: \"request\",\n rid: rid,\n backend: exposeDebugConfig(config, now()),\n request: { method: method, params: deepCopy(params) },\n provider: this\n });\n }\n\n }, (error) => {\n config.done = true;\n config.error = error;\n\n if (this.listenerCount(\"debug\")) {\n this.emit(\"debug\", {\n action: \"request\",\n rid: rid,\n backend: exposeDebugConfig(config, now()),\n request: { method: method, params: deepCopy(params) },\n provider: this\n });\n }\n });\n\n if (this.listenerCount(\"debug\")) {\n this.emit(\"debug\", {\n action: \"request\",\n rid: rid,\n backend: exposeDebugConfig(config, null),\n request: { method: method, params: deepCopy(params) },\n provider: this\n });\n }\n\n inflightWeight += config.weight;\n }\n\n // Wait for anything meaningful to finish or stall out\n const waiting: Array> = [ ];\n configs.forEach((c) => {\n if (c.done || !c.runner) { return; }\n waiting.push(c.runner);\n if (c.staller) { waiting.push(c.staller.getPromise()); }\n });\n\n if (waiting.length) { await Promise.race(waiting); }\n\n // Check the quorum and process the results; the process function\n // may additionally decide the quorum is not met\n const results = configs.filter((c) => (c.done && c.error == null));\n if (results.length >= this.quorum) {\n const result = processFunc(results);\n if (result !== undefined) {\n // Shut down any stallers\n configs.forEach(c => {\n if (c.staller) { c.staller.cancel(); }\n c.cancelled = true;\n });\n return result;\n }\n if (!first) { await stall(100).getPromise(); }\n first = false;\n }\n\n // No result, check for errors that should be forwarded\n const errors = configs.reduce((accum, c) => {\n if (!c.done || c.error == null) { return accum; }\n\n const code = ((c.error)).code;\n if (ForwardErrors.indexOf(code) >= 0) {\n if (!accum[code]) { accum[code] = { error: c.error, weight: 0 }; }\n accum[code].weight += c.weight;\n }\n\n return accum;\n }, <{ [ code: string ]: { error: Error, weight: number } }>({ }));\n\n Object.keys(errors).forEach((errorCode: string) => {\n const tally = errors[errorCode];\n if (tally.weight < this.quorum) { return; }\n\n // Shut down any stallers\n configs.forEach(c => {\n if (c.staller) { c.staller.cancel(); }\n c.cancelled = true;\n });\n\n const e = (tally.error);\n\n const props: { [ name: string ]: any } = { };\n ForwardProperties.forEach((name) => {\n if (e[name] == null) { return; }\n props[name] = e[name];\n });\n\n logger.throwError(e.reason || e.message, errorCode, props);\n });\n\n // All configs have run to completion; we will never get more data\n if (configs.filter((c) => !c.done).length === 0) { break; }\n }\n\n // Shut down any stallers; shouldn't be any\n configs.forEach(c => {\n if (c.staller) { c.staller.cancel(); }\n c.cancelled = true;\n });\n\n return logger.throwError(\"failed to meet quorum\", Logger.errors.SERVER_ERROR, {\n method: method,\n params: params,\n //results: configs.map((c) => c.result),\n //errors: configs.map((c) => c.error),\n results: configs.map((c) => exposeDebugConfig(c)),\n provider: this\n });\n }\n}\n", "\"use strict\";\n\nimport { connect } from \"net\";\n\nimport { defineReadOnly } from \"@ethersproject/properties\";\nimport { Networkish } from \"@ethersproject/networks\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\nimport { JsonRpcProvider } from \"./json-rpc-provider\";\n\n\nexport class IpcProvider extends JsonRpcProvider {\n readonly path: string;\n\n constructor(path: string, network?: Networkish) {\n if (path == null) {\n logger.throwError(\"missing path\", Logger.errors.MISSING_ARGUMENT, { arg: \"path\" });\n }\n\n super(\"ipc://\" + path, network);\n\n defineReadOnly(this, \"path\", path);\n }\n\n // @TODO: Create a connection to the IPC path and use filters instead of polling for block\n\n send(method: string, params: Array): Promise {\n // This method is very simple right now. We create a new socket\n // connection each time, which may be slower, but the main\n // advantage we are aiming for now is security. This simplifies\n // multiplexing requests (since we do not need to multiplex).\n\n let payload = JSON.stringify({\n method: method,\n params: params,\n id: 42,\n jsonrpc: \"2.0\"\n });\n\n return new Promise((resolve, reject) => {\n let response = Buffer.alloc(0);\n\n let stream = connect(this.path);\n\n stream.on(\"data\", (data) => {\n response = Buffer.concat([ response, data ]);\n });\n\n stream.on(\"end\", () => {\n try {\n resolve(JSON.parse(response.toString()).result);\n // @TODO: Better pull apart the error\n stream.destroy();\n } catch (error) {\n reject(error);\n stream.destroy();\n }\n });\n\n stream.on(\"error\", (error) => {\n reject(error);\n stream.destroy();\n });\n\n stream.write(payload);\n stream.end();\n });\n }\n}\n", "\"use strict\";\n\nimport { Network, Networkish } from \"@ethersproject/networks\";\nimport { defineReadOnly } from \"@ethersproject/properties\";\nimport { ConnectionInfo } from \"@ethersproject/web\";\n\nimport { WebSocketProvider } from \"./websocket-provider\";\nimport { CommunityResourcable, showThrottleMessage } from \"./formatter\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\nimport { UrlJsonRpcProvider } from \"./url-json-rpc-provider\";\n\n\nconst defaultProjectId = \"84842078b09946638c03157f83405213\"\n\nexport class InfuraWebSocketProvider extends WebSocketProvider implements CommunityResourcable {\n readonly apiKey: string;\n readonly projectId: string;\n readonly projectSecret: string;\n\n constructor(network?: Networkish, apiKey?: any) {\n const provider = new InfuraProvider(network, apiKey);\n const connection = provider.connection;\n if (connection.password) {\n logger.throwError(\"INFURA WebSocket project secrets unsupported\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"InfuraProvider.getWebSocketProvider()\"\n });\n }\n\n const url = connection.url.replace(/^http/i, \"ws\").replace(\"/v3/\", \"/ws/v3/\");\n super(url, network);\n\n defineReadOnly(this, \"apiKey\", provider.projectId);\n defineReadOnly(this, \"projectId\", provider.projectId);\n defineReadOnly(this, \"projectSecret\", provider.projectSecret);\n }\n\n isCommunityResource(): boolean {\n return (this.projectId === defaultProjectId);\n }\n}\n\nexport class InfuraProvider extends UrlJsonRpcProvider {\n readonly projectId: string;\n readonly projectSecret: string;\n\n static getWebSocketProvider(network?: Networkish, apiKey?: any): InfuraWebSocketProvider {\n return new InfuraWebSocketProvider(network, apiKey);\n }\n\n static getApiKey(apiKey: any): any {\n const apiKeyObj: { apiKey: string, projectId: string, projectSecret: string } = {\n apiKey: defaultProjectId,\n projectId: defaultProjectId,\n projectSecret: null\n };\n\n if (apiKey == null) { return apiKeyObj; }\n\n if (typeof(apiKey) === \"string\") {\n apiKeyObj.projectId = apiKey;\n\n } else if (apiKey.projectSecret != null) {\n logger.assertArgument((typeof(apiKey.projectId) === \"string\"),\n \"projectSecret requires a projectId\", \"projectId\", apiKey.projectId);\n logger.assertArgument((typeof(apiKey.projectSecret) === \"string\"),\n \"invalid projectSecret\", \"projectSecret\", \"[REDACTED]\");\n\n apiKeyObj.projectId = apiKey.projectId;\n apiKeyObj.projectSecret = apiKey.projectSecret;\n\n } else if (apiKey.projectId) {\n apiKeyObj.projectId = apiKey.projectId;\n }\n\n apiKeyObj.apiKey = apiKeyObj.projectId;\n\n return apiKeyObj;\n }\n\n static getUrl(network: Network, apiKey: any): ConnectionInfo {\n let host: string = null;\n switch(network ? network.name: \"unknown\") {\n case \"homestead\":\n host = \"mainnet.infura.io\";\n break;\n case \"goerli\":\n host = \"goerli.infura.io\";\n break;\n case \"sepolia\":\n host = \"sepolia.infura.io\";\n break;\n case \"matic\":\n host = \"polygon-mainnet.infura.io\";\n break;\n case \"maticmum\":\n host = \"polygon-mumbai.infura.io\";\n break;\n case \"optimism\":\n host = \"optimism-mainnet.infura.io\";\n break;\n case \"optimism-goerli\":\n host = \"optimism-goerli.infura.io\";\n break;\n case \"arbitrum\":\n host = \"arbitrum-mainnet.infura.io\";\n break;\n case \"arbitrum-goerli\":\n host = \"arbitrum-goerli.infura.io\";\n break;\n default:\n logger.throwError(\"unsupported network\", Logger.errors.INVALID_ARGUMENT, {\n argument: \"network\",\n value: network\n });\n }\n\n const connection: ConnectionInfo = {\n allowGzip: true,\n url: (\"https:/\" + \"/\" + host + \"/v3/\" + apiKey.projectId),\n throttleCallback: (attempt: number, url: string) => {\n if (apiKey.projectId === defaultProjectId) {\n showThrottleMessage();\n }\n return Promise.resolve(true);\n }\n };\n\n if (apiKey.projectSecret != null) {\n connection.user = \"\";\n connection.password = apiKey.projectSecret\n }\n\n return connection;\n }\n\n isCommunityResource(): boolean {\n return (this.projectId === defaultProjectId);\n }\n}\n", "\nimport { deepCopy } from \"@ethersproject/properties\";\nimport { fetchJson } from \"@ethersproject/web\";\n\nimport { JsonRpcProvider } from \"./json-rpc-provider\";\n\n// Experimental\n\nexport class JsonRpcBatchProvider extends JsonRpcProvider {\n _pendingBatchAggregator: NodeJS.Timer;\n _pendingBatch: Array<{\n request: { method: string, params: Array, id: number, jsonrpc: \"2.0\" },\n resolve: (result: any) => void,\n reject: (error: Error) => void\n }>;\n\n send(method: string, params: Array): Promise {\n const request = {\n method: method,\n params: params,\n id: (this._nextId++),\n jsonrpc: \"2.0\"\n };\n\n if (this._pendingBatch == null) {\n this._pendingBatch = [ ];\n }\n\n const inflightRequest: any = { request, resolve: null, reject: null };\n\n const promise = new Promise((resolve, reject) => {\n inflightRequest.resolve = resolve;\n inflightRequest.reject = reject;\n });\n\n this._pendingBatch.push(inflightRequest);\n\n if (!this._pendingBatchAggregator) {\n // Schedule batch for next event loop + short duration\n this._pendingBatchAggregator = setTimeout(() => {\n\n // Get teh current batch and clear it, so new requests\n // go into the next batch\n const batch = this._pendingBatch;\n this._pendingBatch = null;\n this._pendingBatchAggregator = null;\n\n // Get the request as an array of requests\n const request = batch.map((inflight) => inflight.request);\n\n this.emit(\"debug\", {\n action: \"requestBatch\",\n request: deepCopy(request),\n provider: this\n });\n\n return fetchJson(this.connection, JSON.stringify(request)).then((result) => {\n this.emit(\"debug\", {\n action: \"response\",\n request: request,\n response: result,\n provider: this\n });\n\n // For each result, feed it to the correct Promise, depending\n // on whether it was a success or error\n batch.forEach((inflightRequest, index) => {\n const payload = result[index];\n if (payload.error) {\n const error = new Error(payload.error.message);\n (error).code = payload.error.code;\n (error).data = payload.error.data;\n inflightRequest.reject(error);\n } else {\n inflightRequest.resolve(payload.result);\n }\n });\n\n }, (error) => {\n this.emit(\"debug\", {\n action: \"response\",\n error: error,\n request: request,\n provider: this\n });\n\n batch.forEach((inflightRequest) => {\n inflightRequest.reject(error);\n });\n });\n\n }, 10);\n }\n\n return promise;\n }\n}\n", "/* istanbul ignore file */\n\n\"use strict\";\n\nimport { Network } from \"@ethersproject/networks\";\nimport { UrlJsonRpcProvider } from \"./url-json-rpc-provider\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\n// Special API key provided by Nodesmith for ethers.js\nconst defaultApiKey = \"ETHERS_JS_SHARED\";\n\nexport class NodesmithProvider extends UrlJsonRpcProvider {\n\n static getApiKey(apiKey: any): any {\n if (apiKey && typeof(apiKey) !== \"string\") {\n logger.throwArgumentError(\"invalid apiKey\", \"apiKey\", apiKey);\n }\n return apiKey || defaultApiKey;\n }\n\n static getUrl(network: Network, apiKey?: any): string {\n logger.warn(\"NodeSmith will be discontinued on 2019-12-20; please migrate to another platform.\");\n\n let host = null;\n switch (network.name) {\n case \"homestead\":\n host = \"https://ethereum.api.nodesmith.io/v1/mainnet/jsonrpc\";\n break;\n case \"ropsten\":\n host = \"https://ethereum.api.nodesmith.io/v1/ropsten/jsonrpc\";\n break;\n case \"rinkeby\":\n host = \"https://ethereum.api.nodesmith.io/v1/rinkeby/jsonrpc\";\n break;\n case \"goerli\":\n host = \"https://ethereum.api.nodesmith.io/v1/goerli/jsonrpc\";\n break;\n case \"kovan\":\n host = \"https://ethereum.api.nodesmith.io/v1/kovan/jsonrpc\";\n break;\n default:\n logger.throwArgumentError(\"unsupported network\", \"network\", arguments[0]);\n }\n\n return (host + \"?apiKey=\" + apiKey);\n }\n}\n", "\"use strict\";\n\nimport { Network } from \"@ethersproject/networks\";\nimport { ConnectionInfo } from \"@ethersproject/web\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\nimport { UrlJsonRpcProvider } from \"./url-json-rpc-provider\";\n\nconst defaultApplicationId = \"62e1ad51b37b8e00394bda3b\";\n\n\nexport class PocketProvider extends UrlJsonRpcProvider {\n readonly applicationId: string;\n readonly applicationSecretKey: string;\n readonly loadBalancer: boolean;\n\n static getApiKey(apiKey: any): any {\n const apiKeyObj: { applicationId: string, applicationSecretKey: string, loadBalancer: boolean } = {\n applicationId: null,\n loadBalancer: true,\n applicationSecretKey: null\n };\n\n // Parse applicationId and applicationSecretKey\n if (apiKey == null) {\n apiKeyObj.applicationId = defaultApplicationId;\n\n } else if (typeof (apiKey) === \"string\") {\n apiKeyObj.applicationId = apiKey;\n\n } else if (apiKey.applicationSecretKey != null) {\n apiKeyObj.applicationId = apiKey.applicationId;\n apiKeyObj.applicationSecretKey = apiKey.applicationSecretKey;\n\n } else if (apiKey.applicationId) {\n apiKeyObj.applicationId = apiKey.applicationId;\n\n } else {\n logger.throwArgumentError(\"unsupported PocketProvider apiKey\", \"apiKey\", apiKey);\n }\n\n return apiKeyObj;\n }\n\n static getUrl(network: Network, apiKey: any): ConnectionInfo {\n let host: string = null;\n switch (network ? network.name : \"unknown\") {\n case \"goerli\":\n host = \"eth-goerli.gateway.pokt.network\";\n break;\n case \"homestead\":\n host = \"eth-mainnet.gateway.pokt.network\";\n break;\n case \"kovan\":\n host = \"poa-kovan.gateway.pokt.network\";\n break;\n case \"matic\":\n host = \"poly-mainnet.gateway.pokt.network\";\n break;\n case \"maticmum\":\n host = \"polygon-mumbai-rpc.gateway.pokt.network\";\n break;\n case \"rinkeby\":\n host = \"eth-rinkeby.gateway.pokt.network\";\n break;\n case \"ropsten\":\n host = \"eth-ropsten.gateway.pokt.network\";\n break;\n default:\n logger.throwError(\"unsupported network\", Logger.errors.INVALID_ARGUMENT, {\n argument: \"network\",\n value: network\n });\n }\n\n const url = `https:/\\/${ host }/v1/lb/${ apiKey.applicationId }`\n\n const connection: ConnectionInfo = { headers: { }, url };\n if (apiKey.applicationSecretKey != null) {\n connection.user = \"\";\n connection.password = apiKey.applicationSecretKey\n }\n\n return connection;\n }\n\n isCommunityResource(): boolean {\n return (this.applicationId === defaultApplicationId);\n }\n}\n", "\"use strict\";\n\nimport { Networkish } from \"@ethersproject/networks\";\nimport { deepCopy, defineReadOnly } from \"@ethersproject/properties\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\nimport { JsonRpcProvider } from \"./json-rpc-provider\";\n\n// Exported Types\nexport type ExternalProvider = {\n isMetaMask?: boolean;\n isStatus?: boolean;\n host?: string;\n path?: string;\n sendAsync?: (request: { method: string, params?: Array }, callback: (error: any, response: any) => void) => void\n send?: (request: { method: string, params?: Array }, callback: (error: any, response: any) => void) => void\n request?: (request: { method: string, params?: Array }) => Promise\n}\n\nlet _nextId = 1;\n\nexport type JsonRpcFetchFunc = (method: string, params?: Array) => Promise;\n\ntype Web3LegacySend = (request: any, callback: (error: Error, response: any) => void) => void;\n\nfunction buildWeb3LegacyFetcher(provider: ExternalProvider, sendFunc: Web3LegacySend) : JsonRpcFetchFunc {\n const fetcher = \"Web3LegacyFetcher\";\n\n return function(method: string, params: Array): Promise {\n const request = {\n method: method,\n params: params,\n id: (_nextId++),\n jsonrpc: \"2.0\"\n };\n\n return new Promise((resolve, reject) => {\n this.emit(\"debug\", {\n action: \"request\",\n fetcher,\n request: deepCopy(request),\n provider: this\n });\n\n sendFunc(request, (error, response) => {\n\n if (error) {\n this.emit(\"debug\", {\n action: \"response\",\n fetcher,\n error,\n request,\n provider: this\n });\n\n return reject(error);\n }\n\n this.emit(\"debug\", {\n action: \"response\",\n fetcher,\n request,\n response,\n provider: this\n });\n\n if (response.error) {\n const error = new Error(response.error.message);\n (error).code = response.error.code;\n (error).data = response.error.data;\n return reject(error);\n }\n\n resolve(response.result);\n });\n });\n }\n}\n\nfunction buildEip1193Fetcher(provider: ExternalProvider): JsonRpcFetchFunc {\n return function(method: string, params: Array): Promise {\n if (params == null) { params = [ ]; }\n\n const request = { method, params };\n\n this.emit(\"debug\", {\n action: \"request\",\n fetcher: \"Eip1193Fetcher\",\n request: deepCopy(request),\n provider: this\n });\n\n return provider.request(request).then((response) => {\n this.emit(\"debug\", {\n action: \"response\",\n fetcher: \"Eip1193Fetcher\",\n request,\n response,\n provider: this\n });\n\n return response;\n\n }, (error) => {\n this.emit(\"debug\", {\n action: \"response\",\n fetcher: \"Eip1193Fetcher\",\n request,\n error,\n provider: this\n });\n\n throw error;\n });\n }\n}\n\nexport class Web3Provider extends JsonRpcProvider {\n readonly provider: ExternalProvider;\n readonly jsonRpcFetchFunc: JsonRpcFetchFunc;\n\n constructor(provider: ExternalProvider | JsonRpcFetchFunc, network?: Networkish) {\n if (provider == null) {\n logger.throwArgumentError(\"missing provider\", \"provider\", provider);\n }\n\n let path: string = null;\n let jsonRpcFetchFunc: JsonRpcFetchFunc = null;\n let subprovider: ExternalProvider = null;\n\n if (typeof(provider) === \"function\") {\n path = \"unknown:\";\n jsonRpcFetchFunc = provider;\n\n } else {\n path = provider.host || provider.path || \"\";\n if (!path && provider.isMetaMask) {\n path = \"metamask\";\n }\n\n subprovider = provider;\n\n if (provider.request) {\n if (path === \"\") { path = \"eip-1193:\"; }\n jsonRpcFetchFunc = buildEip1193Fetcher(provider);\n } else if (provider.sendAsync) {\n jsonRpcFetchFunc = buildWeb3LegacyFetcher(provider, provider.sendAsync.bind(provider));\n } else if (provider.send) {\n jsonRpcFetchFunc = buildWeb3LegacyFetcher(provider, provider.send.bind(provider));\n } else {\n logger.throwArgumentError(\"unsupported provider\", \"provider\", provider);\n }\n\n if (!path) { path = \"unknown:\"; }\n }\n\n super(path, network);\n\n defineReadOnly(this, \"jsonRpcFetchFunc\", jsonRpcFetchFunc);\n defineReadOnly(this, \"provider\", subprovider);\n }\n\n send(method: string, params: Array): Promise {\n return this.jsonRpcFetchFunc(method, params);\n }\n}\n", "\"use strict\";\n\nimport {\n Block,\n BlockTag,\n EventType,\n FeeData,\n Filter,\n Log,\n Listener,\n Provider,\n TransactionReceipt,\n TransactionRequest,\n TransactionResponse\n} from \"@ethersproject/abstract-provider\";\n\nimport { getNetwork } from \"@ethersproject/networks\";\nimport { Network, Networkish } from \"@ethersproject/networks\";\n\nimport { BaseProvider, EnsProvider, EnsResolver, Resolver } from \"./base-provider\";\n\nimport { AlchemyProvider, AlchemyWebSocketProvider } from \"./alchemy-provider\";\nimport { AnkrProvider } from \"./ankr-provider\";\nimport { CloudflareProvider } from \"./cloudflare-provider\";\nimport { EtherscanProvider } from \"./etherscan-provider\";\nimport { FallbackProvider, FallbackProviderConfig } from \"./fallback-provider\";\nimport { IpcProvider } from \"./ipc-provider\";\nimport { InfuraProvider, InfuraWebSocketProvider } from \"./infura-provider\";\nimport { JsonRpcProvider, JsonRpcSigner } from \"./json-rpc-provider\";\nimport { JsonRpcBatchProvider } from \"./json-rpc-batch-provider\";\nimport { NodesmithProvider } from \"./nodesmith-provider\";\nimport { PocketProvider } from \"./pocket-provider\";\nimport { StaticJsonRpcProvider, UrlJsonRpcProvider } from \"./url-json-rpc-provider\";\nimport { Web3Provider } from \"./web3-provider\";\nimport { WebSocketProvider } from \"./websocket-provider\";\nimport { ExternalProvider, JsonRpcFetchFunc } from \"./web3-provider\";\n\nimport { CommunityResourcable, Formatter, isCommunityResourcable, isCommunityResource, showThrottleMessage } from \"./formatter\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\n////////////////////////\n// Helper Functions\n\nfunction getDefaultProvider(network?: Networkish, options?: any): BaseProvider {\n if (network == null) { network = \"homestead\"; }\n\n // If passed a URL, figure out the right type of provider based on the scheme\n if (typeof(network) === \"string\") {\n // @TODO: Add support for IpcProvider; maybe if it ends in \".ipc\"?\n\n // Handle http and ws (and their secure variants)\n const match = network.match(/^(ws|http)s?:/i);\n if (match) {\n switch (match[1].toLowerCase()) {\n case \"http\": case \"https\":\n return new JsonRpcProvider(network);\n case \"ws\": case \"wss\":\n return new WebSocketProvider(network);\n default:\n logger.throwArgumentError(\"unsupported URL scheme\", \"network\", network);\n }\n }\n }\n\n const n = getNetwork(network);\n if (!n || !n._defaultProvider) {\n logger.throwError(\"unsupported getDefaultProvider network\", Logger.errors.NETWORK_ERROR, {\n operation: \"getDefaultProvider\",\n network: network\n });\n }\n\n return n._defaultProvider({\n FallbackProvider,\n\n AlchemyProvider,\n AnkrProvider,\n CloudflareProvider,\n EtherscanProvider,\n InfuraProvider,\n JsonRpcProvider,\n NodesmithProvider,\n PocketProvider,\n Web3Provider,\n\n IpcProvider,\n }, options);\n}\n\n////////////////////////\n// Exports\n\nexport {\n\n // Abstract Providers (or Abstract-ish)\n Provider,\n BaseProvider,\n\n Resolver,\n\n UrlJsonRpcProvider,\n\n ///////////////////////\n // Concrete Providers\n\n FallbackProvider,\n\n AlchemyProvider,\n AlchemyWebSocketProvider,\n AnkrProvider,\n CloudflareProvider,\n EtherscanProvider,\n InfuraProvider,\n InfuraWebSocketProvider,\n JsonRpcProvider,\n JsonRpcBatchProvider,\n NodesmithProvider,\n PocketProvider,\n StaticJsonRpcProvider,\n Web3Provider,\n WebSocketProvider,\n\n IpcProvider,\n\n\n ///////////////////////\n // Signer\n\n JsonRpcSigner,\n\n\n ///////////////////////\n // Functions\n\n getDefaultProvider,\n getNetwork,\n isCommunityResource,\n isCommunityResourcable,\n showThrottleMessage,\n\n\n ///////////////////////\n // Objects\n\n Formatter,\n\n\n ///////////////////////\n // Types\n\n Block,\n BlockTag,\n EventType,\n FeeData,\n Filter,\n Log,\n Listener,\n TransactionReceipt,\n TransactionRequest,\n TransactionResponse,\n\n ExternalProvider,\n JsonRpcFetchFunc,\n\n FallbackProviderConfig,\n\n Network,\n Networkish,\n\n EnsProvider,\n EnsResolver,\n\n CommunityResourcable\n};\n\n", "export const version = \"solidity/5.7.0\";\n", "\"use strict\";\n\nimport { BigNumber } from \"@ethersproject/bignumber\";\nimport { arrayify, concat, hexlify, zeroPad } from \"@ethersproject/bytes\";\nimport { keccak256 as hashKeccak256 } from \"@ethersproject/keccak256\";\nimport { sha256 as hashSha256 } from \"@ethersproject/sha2\";\nimport { toUtf8Bytes } from \"@ethersproject/strings\";\n\nconst regexBytes = new RegExp(\"^bytes([0-9]+)$\");\nconst regexNumber = new RegExp(\"^(u?int)([0-9]*)$\");\nconst regexArray = new RegExp(\"^(.*)\\\\[([0-9]*)\\\\]$\");\n\nconst Zeros = \"0000000000000000000000000000000000000000000000000000000000000000\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\n\nfunction _pack(type: string, value: any, isArray?: boolean): Uint8Array {\n switch(type) {\n case \"address\":\n if (isArray) { return zeroPad(value, 32); }\n return arrayify(value);\n case \"string\":\n return toUtf8Bytes(value);\n case \"bytes\":\n return arrayify(value);\n case \"bool\":\n value = (value ? \"0x01\": \"0x00\");\n if (isArray) { return zeroPad(value, 32); }\n return arrayify(value);\n }\n\n let match = type.match(regexNumber);\n if (match) {\n //let signed = (match[1] === \"int\")\n let size = parseInt(match[2] || \"256\")\n\n if ((match[2] && String(size) !== match[2]) || (size % 8 !== 0) || size === 0 || size > 256) {\n logger.throwArgumentError(\"invalid number type\", \"type\", type)\n }\n\n if (isArray) { size = 256; }\n\n value = BigNumber.from(value).toTwos(size);\n\n return zeroPad(value, size / 8);\n }\n\n match = type.match(regexBytes);\n if (match) {\n const size = parseInt(match[1]);\n\n if (String(size) !== match[1] || size === 0 || size > 32) {\n logger.throwArgumentError(\"invalid bytes type\", \"type\", type)\n }\n if (arrayify(value).byteLength !== size) {\n logger.throwArgumentError(`invalid value for ${ type }`, \"value\", value)\n }\n if (isArray) { return arrayify((value + Zeros).substring(0, 66)); }\n return value;\n }\n\n match = type.match(regexArray);\n if (match && Array.isArray(value)) {\n const baseType = match[1];\n const count = parseInt(match[2] || String(value.length));\n if (count != value.length) {\n logger.throwArgumentError(`invalid array length for ${ type }`, \"value\", value)\n }\n const result: Array = [];\n value.forEach(function(value) {\n result.push(_pack(baseType, value, true));\n });\n return concat(result);\n }\n\n return logger.throwArgumentError(\"invalid type\", \"type\", type)\n}\n\n// @TODO: Array Enum\n\nexport function pack(types: ReadonlyArray, values: ReadonlyArray) {\n if (types.length != values.length) {\n logger.throwArgumentError(\"wrong number of values; expected ${ types.length }\", \"values\", values)\n }\n const tight: Array = [];\n types.forEach(function(type, index) {\n tight.push(_pack(type, values[index]));\n });\n return hexlify(concat(tight));\n}\n\nexport function keccak256(types: ReadonlyArray, values: ReadonlyArray) {\n return hashKeccak256(pack(types, values));\n}\n\nexport function sha256(types: ReadonlyArray, values: ReadonlyArray) {\n return hashSha256(pack(types, values));\n}\n", "export const version = \"units/5.7.0\";\n", "\"use strict\";\n\nimport { BigNumber, BigNumberish } from \"@ethersproject/bignumber\";\nimport { formatFixed, parseFixed } from \"@ethersproject/bignumber\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\nconst names = [\n \"wei\",\n \"kwei\",\n \"mwei\",\n \"gwei\",\n \"szabo\",\n \"finney\",\n \"ether\",\n];\n\n\n// Some environments have issues with RegEx that contain back-tracking, so we cannot\n// use them.\nexport function commify(value: string | number): string {\n const comps = String(value).split(\".\");\n\n if (comps.length > 2 || !comps[0].match(/^-?[0-9]*$/) || (comps[1] && !comps[1].match(/^[0-9]*$/)) || value === \".\" || value === \"-.\") {\n logger.throwArgumentError(\"invalid value\", \"value\", value);\n }\n\n // Make sure we have at least one whole digit (0 if none)\n let whole = comps[0];\n\n let negative = \"\";\n if (whole.substring(0, 1) === \"-\") {\n negative = \"-\";\n whole = whole.substring(1);\n }\n\n // Make sure we have at least 1 whole digit with no leading zeros\n while (whole.substring(0, 1) === \"0\") { whole = whole.substring(1); }\n if (whole === \"\") { whole = \"0\"; }\n\n let suffix = \"\";\n if (comps.length === 2) { suffix = \".\" + (comps[1] || \"0\"); }\n while (suffix.length > 2 && suffix[suffix.length - 1] === \"0\") {\n suffix = suffix.substring(0, suffix.length - 1);\n }\n\n const formatted = [];\n while (whole.length) {\n if (whole.length <= 3) {\n formatted.unshift(whole);\n break;\n } else {\n const index = whole.length - 3;\n formatted.unshift(whole.substring(index));\n whole = whole.substring(0, index);\n }\n }\n\n return negative + formatted.join(\",\") + suffix;\n}\n\nexport function formatUnits(value: BigNumberish, unitName?: string | BigNumberish): string {\n if (typeof(unitName) === \"string\") {\n const index = names.indexOf(unitName);\n if (index !== -1) { unitName = 3 * index; }\n }\n return formatFixed(value, (unitName != null) ? unitName: 18);\n}\n\nexport function parseUnits(value: string, unitName?: BigNumberish): BigNumber {\n if (typeof(value) !== \"string\") {\n logger.throwArgumentError(\"value must be a string\", \"value\", value);\n }\n if (typeof(unitName) === \"string\") {\n const index = names.indexOf(unitName);\n if (index !== -1) { unitName = 3 * index; }\n }\n return parseFixed(value, (unitName != null) ? unitName: 18);\n}\n\nexport function formatEther(wei: BigNumberish): string {\n return formatUnits(wei, 18);\n}\n\nexport function parseEther(ether: string): BigNumber {\n return parseUnits(ether, 18);\n}\n\n", "\"use strict\";\n\nimport { AbiCoder, checkResultErrors, ConstructorFragment, defaultAbiCoder, ErrorFragment, EventFragment, FormatTypes, Fragment, FunctionFragment, Indexed, Interface, LogDescription, ParamType, Result, TransactionDescription }from \"@ethersproject/abi\";\nimport { getAddress, getCreate2Address, getContractAddress, getIcapAddress, isAddress } from \"@ethersproject/address\";\nimport * as base64 from \"@ethersproject/base64\";\nimport { Base58 as base58 } from \"@ethersproject/basex\";\nimport { arrayify, concat, hexConcat, hexDataSlice, hexDataLength, hexlify, hexStripZeros, hexValue, hexZeroPad, isBytes, isBytesLike, isHexString, joinSignature, zeroPad, splitSignature, stripZeros } from \"@ethersproject/bytes\";\nimport { _TypedDataEncoder, dnsEncode, hashMessage, id, isValidName, namehash } from \"@ethersproject/hash\";\nimport { defaultPath, entropyToMnemonic, getAccountPath, HDNode, isValidMnemonic, mnemonicToEntropy, mnemonicToSeed } from \"@ethersproject/hdnode\";\nimport { getJsonWalletAddress } from \"@ethersproject/json-wallets\";\nimport { keccak256 } from \"@ethersproject/keccak256\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { computeHmac, ripemd160, sha256, sha512 } from \"@ethersproject/sha2\";\nimport { keccak256 as solidityKeccak256, pack as solidityPack, sha256 as soliditySha256 } from \"@ethersproject/solidity\";\nimport { randomBytes, shuffled } from \"@ethersproject/random\";\nimport { checkProperties, deepCopy, defineReadOnly, getStatic, resolveProperties, shallowCopy } from \"@ethersproject/properties\";\nimport * as RLP from \"@ethersproject/rlp\";\nimport { computePublicKey, recoverPublicKey, SigningKey } from \"@ethersproject/signing-key\";\nimport { formatBytes32String, nameprep, parseBytes32String, _toEscapedUtf8String, toUtf8Bytes, toUtf8CodePoints, toUtf8String, Utf8ErrorFuncs } from \"@ethersproject/strings\";\nimport { accessListify, computeAddress, parse as parseTransaction, recoverAddress, serialize as serializeTransaction, TransactionTypes } from \"@ethersproject/transactions\";\nimport { commify, formatEther, parseEther, formatUnits, parseUnits } from \"@ethersproject/units\";\nimport { verifyMessage, verifyTypedData } from \"@ethersproject/wallet\";\nimport { _fetchData, fetchJson, poll } from \"@ethersproject/web\";\n\n////////////////////////\n// Enums\n\nimport { SupportedAlgorithm } from \"@ethersproject/sha2\";\nimport { UnicodeNormalizationForm, Utf8ErrorReason } from \"@ethersproject/strings\";\nimport { UnsignedTransaction } from \"@ethersproject/transactions\";\n\n////////////////////////\n// Types and Interfaces\n\nimport { CoerceFunc } from \"@ethersproject/abi\";\nimport { Bytes, BytesLike, Hexable } from \"@ethersproject/bytes\"\nimport { Mnemonic } from \"@ethersproject/hdnode\";\nimport { EncryptOptions, ProgressCallback } from \"@ethersproject/json-wallets\";\nimport { Deferrable } from \"@ethersproject/properties\";\nimport { Utf8ErrorFunc } from \"@ethersproject/strings\";\nimport { AccessList, AccessListish } from \"@ethersproject/transactions\";\nimport { ConnectionInfo, FetchJsonResponse, OnceBlockable, OncePollable, PollOptions } from \"@ethersproject/web\";\n\n////////////////////////\n// Exports\n\nexport {\n AbiCoder,\n defaultAbiCoder,\n\n Fragment,\n ConstructorFragment,\n ErrorFragment,\n EventFragment,\n FunctionFragment,\n ParamType,\n FormatTypes,\n\n checkResultErrors,\n Result,\n\n Logger,\n\n RLP,\n\n _fetchData,\n fetchJson,\n poll,\n\n checkProperties,\n deepCopy,\n defineReadOnly,\n getStatic,\n resolveProperties,\n shallowCopy,\n\n arrayify,\n\n concat,\n stripZeros,\n zeroPad,\n\n isBytes,\n isBytesLike,\n\n defaultPath,\n HDNode,\n SigningKey,\n\n Interface,\n\n LogDescription,\n TransactionDescription,\n\n base58,\n base64,\n\n hexlify,\n isHexString,\n hexConcat,\n hexStripZeros,\n hexValue,\n hexZeroPad,\n hexDataLength,\n hexDataSlice,\n\n nameprep,\n _toEscapedUtf8String,\n toUtf8Bytes,\n toUtf8CodePoints,\n toUtf8String,\n Utf8ErrorFuncs,\n\n formatBytes32String,\n parseBytes32String,\n\n dnsEncode,\n hashMessage,\n namehash,\n isValidName,\n id,\n\n _TypedDataEncoder,\n\n getAddress,\n getIcapAddress,\n getContractAddress,\n getCreate2Address,\n isAddress,\n\n formatEther,\n parseEther,\n\n formatUnits,\n parseUnits,\n\n commify,\n\n computeHmac,\n keccak256,\n ripemd160,\n sha256,\n sha512,\n\n randomBytes,\n shuffled,\n\n solidityPack,\n solidityKeccak256,\n soliditySha256,\n\n splitSignature,\n joinSignature,\n\n accessListify,\n parseTransaction,\n serializeTransaction,\n TransactionTypes,\n\n getJsonWalletAddress,\n\n computeAddress,\n recoverAddress,\n\n computePublicKey,\n recoverPublicKey,\n\n verifyMessage,\n verifyTypedData,\n\n getAccountPath,\n mnemonicToEntropy,\n entropyToMnemonic,\n isValidMnemonic,\n mnemonicToSeed,\n\n\n ////////////////////////\n // Enums\n\n SupportedAlgorithm,\n\n UnicodeNormalizationForm,\n Utf8ErrorReason,\n\n ////////////////////////\n // Types\n\n Bytes,\n BytesLike,\n Hexable,\n\n AccessList,\n AccessListish,\n UnsignedTransaction,\n\n CoerceFunc,\n\n Indexed,\n\n Mnemonic,\n\n Deferrable,\n\n Utf8ErrorFunc,\n\n ConnectionInfo,\n OnceBlockable,\n OncePollable,\n PollOptions,\n FetchJsonResponse,\n\n EncryptOptions,\n ProgressCallback\n}\n\n", "export const version = \"ethers/5.7.2\";\n", "\"use strict\";\n\nimport { BaseContract, Contract, ContractFactory } from \"@ethersproject/contracts\";\n\nimport { BigNumber, FixedNumber } from \"@ethersproject/bignumber\";\n\nimport { Signer, VoidSigner } from \"@ethersproject/abstract-signer\";\nimport { Wallet } from \"@ethersproject/wallet\";\n\nimport * as constants from \"@ethersproject/constants\";\n\nimport * as providers from \"@ethersproject/providers\";\nimport { getDefaultProvider } from \"@ethersproject/providers\";\n\nimport { Wordlist, wordlists} from \"@ethersproject/wordlists\";\n\nimport * as utils from \"./utils\";\n\nimport { ErrorCode as errors, Logger } from \"@ethersproject/logger\";\n\n////////////////////////\n// Types\n\nimport type { TypedDataDomain, TypedDataField } from \"@ethersproject/abstract-signer\";\nimport { BigNumberish } from \"@ethersproject/bignumber\";\nimport { Bytes, BytesLike, Signature } from \"@ethersproject/bytes\";\nimport { Transaction, UnsignedTransaction } from \"@ethersproject/transactions\";\n\n\n////////////////////////\n// Compile-Time Constants\n\n// This is generated by \"npm run dist\"\nimport { version } from \"./_version\";\n\nconst logger = new Logger(version);\n\n////////////////////////\n// Types\n\nimport {\n ContractFunction,\n ContractReceipt,\n ContractTransaction,\n\n Event,\n EventFilter,\n\n Overrides,\n PayableOverrides,\n CallOverrides,\n\n PopulatedTransaction,\n\n ContractInterface\n} from \"@ethersproject/contracts\";\n\n\n////////////////////////\n// Exports\n\nexport {\n Signer,\n\n Wallet,\n VoidSigner,\n\n getDefaultProvider,\n providers,\n\n BaseContract,\n Contract,\n ContractFactory,\n\n BigNumber,\n FixedNumber,\n\n constants,\n errors,\n\n logger,\n\n utils,\n\n wordlists,\n\n\n ////////////////////////\n // Compile-Time Constants\n\n version,\n\n\n ////////////////////////\n // Types\n\n ContractFunction,\n ContractReceipt,\n ContractTransaction,\n Event,\n EventFilter,\n\n Overrides,\n PayableOverrides,\n CallOverrides,\n\n PopulatedTransaction,\n\n ContractInterface,\n\n TypedDataDomain,\n TypedDataField,\n\n BigNumberish,\n\n Bytes,\n BytesLike,\n\n Signature,\n\n Transaction,\n UnsignedTransaction,\n\n Wordlist\n};\n\n", "\"use strict\";\n\n// To modify this file, you must update ./misc/admin/lib/cmds/update-exports.js\n\nimport * as ethers from \"./ethers\";\n\ntry {\n const anyGlobal = (window as any);\n\n if (anyGlobal._ethers == null) {\n anyGlobal._ethers = ethers;\n }\n} catch (error) { }\n\nexport { ethers };\n\nexport {\n Signer,\n\n Wallet,\n VoidSigner,\n\n getDefaultProvider,\n providers,\n\n BaseContract,\n Contract,\n ContractFactory,\n\n BigNumber,\n FixedNumber,\n\n constants,\n errors,\n\n logger,\n\n utils,\n\n wordlists,\n\n\n ////////////////////////\n // Compile-Time Constants\n\n version,\n\n\n ////////////////////////\n // Types\n\n ContractFunction,\n ContractReceipt,\n ContractTransaction,\n Event,\n EventFilter,\n\n Overrides,\n PayableOverrides,\n CallOverrides,\n\n PopulatedTransaction,\n\n ContractInterface,\n\n TypedDataDomain,\n TypedDataField,\n\n BigNumberish,\n\n Bytes,\n BytesLike,\n\n Signature,\n\n Transaction,\n UnsignedTransaction,\n\n Wordlist\n} from \"./ethers\";\n", "import { ethers } from 'ethers'\n\nasync function getAddress(mnemonic?: string) {\n const wallet = getWallet(mnemonic)\n return wallet.address\n}\n\nasync function getKeystore(mnemonic?: string) {\n const wallet = getWallet(mnemonic)\n const keystoreString = await wallet.encrypt('')\n return JSON.parse(keystoreString)\n}\n\nfunction getWallet(mnemonic?: string) {\n if (mnemonic) {\n return ethers.Wallet.fromMnemonic(mnemonic)\n }\n return ethers.Wallet.createRandom()\n}\n\nexport { getAddress, getKeystore, getWallet }\n"], + "mappings": "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ACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,iEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,kEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,kEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,iEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,iEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,gEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,kEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,iEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,kEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,CACF,CACF,EACA,IAAK,CACH,IAAK,EACL,OAAQ,CACN,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,iEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,iEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,iEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,iEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,kEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,iEACF,EACA,CACE,mEACA,iEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,iEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,iEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,kEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,iEACF,EACA,CACE,mEACA,iEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,kEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,iEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,iEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,kEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,iEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,kEACA,kEACF,EACA,CACE,mEACA,iEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,iEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,iEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,iEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,iEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,CACF,CACF,CACF,IC3wBA,IAAAC,GAAAC,EAAAC,IAAA,cAEA,IAAIC,GAASD,GAETE,GAAO,KACPC,GAAQ,KACRC,GAAQ,KAERC,GAASD,GAAM,OAEnB,SAASE,GAAYC,EAAS,CACxBA,EAAQ,OAAS,QACnB,KAAK,MAAQ,IAAIJ,GAAM,MAAMI,CAAO,EAC7BA,EAAQ,OAAS,UACxB,KAAK,MAAQ,IAAIJ,GAAM,QAAQI,CAAO,EAEtC,KAAK,MAAQ,IAAIJ,GAAM,KAAKI,CAAO,EACrC,KAAK,EAAI,KAAK,MAAM,EACpB,KAAK,EAAI,KAAK,MAAM,EACpB,KAAK,KAAOA,EAAQ,KAEpBF,GAAO,KAAK,EAAE,SAAS,EAAG,eAAe,EACzCA,GAAO,KAAK,EAAE,IAAI,KAAK,CAAC,EAAE,WAAW,EAAG,yBAAyB,CACnE,CACAJ,GAAO,YAAcK,GAErB,SAASE,GAAYC,EAAMF,EAAS,CAClC,OAAO,eAAeN,GAAQQ,EAAM,CAClC,aAAc,GACd,WAAY,GACZ,IAAK,UAAW,CACd,IA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,IAAM,IAAM,GAAM,IAAM,GAAM,GAAM,IAAM,GAAM,IAAM,GAAM,IAAM,GAAM,GAAM,IAAM,IAAM,GAAM,IAAM,IAAM,GAAM,IAAM,GAAM,GAAM,IAAM,IAAM,GAAM,GAAM,GAAM,GAAM,EAAM,GAAM,GAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,GAAM,IAAM,IAAM,IAAM,IAAM,IAAM,EAAM,IAAM,IAAM,GAAM,GAAM,GAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,GAAM,GAAM,IAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,GAAM,EAAM,IAAM,GAAM,GAAM,GAAM,GAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,IAAM,GAAM,GAAM,IAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,GAAM,IAAM,GAAM,IAAM,GAAM,GAAM,IAAM,GAAM,IAAM,EAAI,EACngDC,EAAI,CAAC,GAAM,EAAM,IAAM,IAAM,GAAM,GAAM,IAAM,GAAM,IAAM,GAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,GAAM,IAAM,IAAM,GAAM,IAAM,GAAM,GAAM,IAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,GAAM,IAAM,IAAM,GAAM,GAAM,IAAM,GAAM,IAAM,GAAM,GAAM,IAAM,IAAM,GAAM,EAAM,GAAM,IAAM,IAAM,GAAM,IAAM,GAAM,IAAM,IAAM,GAAM,IAAM,GAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,GAAM,IAAM,GAAM,IAAM,IAAM,IAAM,IAAM,IAAM,GAAM,GAAM,IAAM,IAAM,IAAM,IAAM,GAAM,GAAM,GAAM,GAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,EAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,GAAM,EAAM,IAAM,IAAM,GAAM,EAAM,IAAM,GAAM,GAAM,IAAM,IAAM,GAAM,GAAM,EAAM,IAAM,IAAM,IAAM,EAAM,EAAM,GAAM,IAAM,IAAM,GAAM,IAAM,GAAM,GAAM,GAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,GAAM,IAAM,IAAM,IAAM,GAAM,IAAM,GAAM,IAAM,IAAM,IAAM,GAAM,IAAM,GAAM,IAAM,GAAM,GAAM,IAAM,IAAM,IAAM,IAAM,GAAM,GAAM,IAAM,GAAM,IAAM,GAAM,IAAM,GAAM,GAAM,GAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,GAAM,IAAM,GAAM,IAAM,IAAM,GAAM,IAAM,EAAM,IAAM,GAAM,IAAM,GAAM,GAAM,GAAM,GAAM,IAAM,IAAM,GAAM,GAAM,GAAM,IAAM,IAAM,GAAM,IAAM,GAAM,GAAM,GAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,GAAM,GAAM,IAAM,GAAM,IAAM,IAAM,IAAM,IAAM,IAAM,GAAM,IAAM,GAAM,IAAM,GAAM,GAAM,GAAM,EAAM,IAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,GAAM,GAAM,GAAM,GAAM,GAAM,GAAI,EAGngDC,EAAK,CAAC,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,SAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,EAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,SAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,SAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,SAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,UAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,UAAY,UAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,SAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,SAAU,EACpgGC,EAAK,CAAC,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,SAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,SAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,UAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,EAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,SAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,UAAY,WAAY,WAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,SAAY,SAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,SAAU,EACpgGC,EAAK,CAAC,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,SAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,SAAY,WAAY,UAAY,WAAY,UAAY,WAAY,SAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,EAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,SAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,UAAY,UAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,SAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,SAAU,EACpgGC,EAAK,CAAC,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,SAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,SAAY,WAAY,UAAY,WAAY,UAAY,WAAY,SAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,EAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,SAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,UAAY,UAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,SAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,SAAU,EAGpgGC,EAAK,CAAC,WAAY,WAAY,UAAY,UAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,SAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,UAAY,SAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,SAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,SAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,EAAY,UAAY,UAAY,UAAY,WAAY,WAAY,UAAY,WAAY,UAAY,UAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,SAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,UAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAU,EACpgGC,EAAK,CAAC,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,SAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,UAAY,SAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,SAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,EAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,UAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,SAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,SAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAU,EACpgGC,EAAK,CAAC,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,SAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,SAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,SAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,UAAY,EAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,UAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,UAAY,WAAY,UAAY,WAAY,UAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,SAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,SAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAU,EACpgGC,EAAK,CAAC,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,SAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,SAAY,WAAY,SAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,SAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,EAAY,WAAY,UAAY,UAAY,WAAY,UAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,UAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,SAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,SAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAU,EAGpgGC,EAAK,CAAC,EAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,UAAY,SAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,UAAY,SAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,UAAY,UAAY,WAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,SAAY,UAAY,UAAY,UAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,SAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,UAAY,UAAY,UAAY,SAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAU,EACpgGC,EAAK,CAAC,EAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,UAAY,WAAY,UAAY,SAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,UAAY,SAAY,UAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,UAAY,SAAY,UAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,SAAY,UAAY,UAAY,UAAY,UAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,UAAY,WAAY,UAAY,SAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAU,EACpgGC,EAAK,CAAC,EAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,SAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,SAAY,UAAY,UAAY,UAAY,UAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,UAAY,UAAY,UAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,SAAY,UAAY,UAAY,WAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,SAAY,UAAY,UAAY,WAAY,UAAY,UAAY,UAAY,UAAY,SAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAU,EACpgGC,EAAK,CAAC,EAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,SAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,SAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,SAAY,UAAY,UAAY,UAAY,UAAY,SAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,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", + "names": ["require_bn", "__commonJSMin", "exports", "module", "assert", "val", "msg", "inherits", "ctor", "superCtor", "TempCtor", "BN", "number", "base", "endian", "Buffer", "num", "left", "right", "start", "i", "j", "w", "off", "parseHex4Bits", "string", "index", "c", "parseHexByte", "lowerBound", "r", "parseLength", "parseBase", "str", "end", "mul", "b", "len", "limbLen", "limbPow", "total", "mod", "word", "pow", "dest", "move", "src", "size", "inspect", "zeros", "groupSizes", "groupBases", "padding", "out", "carry", "groupSize", "groupBase", "ret", "length", "allocate", "ArrayType", "byteLength", "reqLength", "res", "postfix", "position", "shift", "t", "hi", "toBitArray", "bit", "wbit", "width", "a", "bytesNeeded", "bitsLeft", "cmp", "smallMulTo", "self", "lo", "k", "ncarry", "rword", "maxJ", "comb10MulTo", "o", "mid", "a0", "al0", "ah0", "a1", "al1", "ah1", "a2", "al2", "ah2", "a3", "al3", "ah3", "a4", "al4", "ah4", "a5", "al5", "ah5", "a6", "al6", "ah6", "a7", "al7", "ah7", "a8", "al8", "ah8", "a9", "al9", "ah9", "b0", "bl0", "bh0", "b1", "bl1", "bh1", "b2", "bl2", "bh2", "b3", "bl3", "bh3", "b4", "bl4", "bh4", "b5", "bl5", "bh5", "b6", "bl6", "bh6", "b7", "bl7", "bh7", "b8", "bl8", "bh8", "b9", "bl9", "bh9", "w0", "w1", "w2", "w3", "w4", "w5", "w6", "w7", "w8", "w9", "w10", "w11", "w12", "w13", "w14", "w15", "w16", "w17", "w18", "bigMulTo", "hncarry", "jumboMulTo", "FFTM", "x", "y", "N", "l", "rb", "rbt", "rws", "iws", "rtws", "itws", "s", "rtwdf", "itwdf", "p", "rtwdf_", "itwdf_", "re", "ie", "ro", "io", "rx", "n", "m", "odd", "ws", "ph", "_", "rwst", "iwst", "nrws", "nrwst", "niwst", "rmws", "isNegNum", "q", "bits", "carryMask", "newCarry", "hint", "extended", "h", "mask", "maskedWords", "mode", "bhi", "bhiBits", "diff", "qj", "positive", "div", "dm", "half", "r2", "acc", "A", "B", "C", "D", "g", "yp", "xp", "im", "jm", "x1", "x2", "delta", "negative", "Red", "ctx", "primes", "MPrime", "name", "tmp", "rlen", "input", "K256", "output", "outLen", "prev", "next", "P224", "P192", "P25519", "prime", "mod3", "one", "nOne", "lpow", "z", "inv", "windowSize", "wnd", "current", "currentLen", "Mont", "u", "exports", "require_lib", "__commonJSMin", "exports", "_permanentCensorErrors", "_censorErrors", "LogLevels", "_logLevel", "_version_1", "_globalLogger", "_checkNormalize", "missing_1", "form", "error", "_normalizeError", "LogLevel", "ErrorCode", "HEX", "Logger", "version", "logLevel", "args", "level", "_i", "message", "code", "params", "messageDetails", "key", "value", "hex", "i", "reason", "url", "fault", "name", "condition", "count", "expectedCount", "target", "kind", "censorship", "permanent", "exports", "require_lib", "__commonJSMin", "exports", "logger_1", "_version_1", "logger", "isHexable", "value", "addSlice", "array", "args", "isBytesLike", "isHexString", "isBytes", "isInteger", "i", "v", "arrayify", "options", "result", "hex", "concat", "items", "objects", "item", "length", "accum", "offset", "object", "stripZeros", "start", "zeroPad", "HexCharacters", "hexlify", "hexDataLength", "data", "hexDataSlice", "endOffset", "hexConcat", "hexValue", "trimmed", "hexStripZeros", "hexZeroPad", "splitSignature", "signature", "bytes", "vs_1", "recoveryParam", "s", "recId", "vs", "_vs", "joinSignature", "exports", "require_bignumber", "__commonJSMin", "exports", "bn_js_1", "__importDefault", "BN", "bytes_1", "logger_1", "_version_1", "logger", "_constructorGuard", "MAX_SAFE", "isBigNumberish", "value", "BigNumber", "_warnedToStringRadix", "constructorGuard", "hex", "toBigNumber", "toBN", "other", "o", "throwFault", "key", "toHex", "anyValue", "fault", "operation", "params", "_base36To16", "_base16To36", "require_fixednumber", "__commonJSMin", "exports", "bytes_1", "logger_1", "_version_1", "logger", "bignumber_1", "_constructorGuard", "Zero", "NegativeOne", "throwFault", "message", "fault", "operation", "value", "params", "zeros", "getMultiplier", "decimals", "formatFixed", "multiplier", "negative", "fraction", "whole", "parseFixed", "comps", "wholeValue", "fractionValue", "wei", "FixedFormat", "constructorGuard", "signed", "width", "match", "check", "key", "type", "defaultValue", "FixedNumber", "hex", "format", "other", "a", "b", "result", "hasFraction", "ONE", "factor", "bump", "BUMP", "fixedFormat", "numeric", "decimal", "error", "bignumber_1", "exports", "fixednumber_1", "bignumber_2", "exports", "require_lib", "__commonJSMin", "exports", "logger_1", "_version_1", "logger", "defineReadOnly", "object", "name", "value", "getStatic", "ctor", "key", "i", "resolveProperties", "promises", "v", "results", "_a", "accum", "result", "checkProperties", "properties", "shallowCopy", "opaque", "_isFrozen", "keys", "_deepCopy", "item", "deepCopy", "Description", "info", "exports", "require_fragments", "__commonJSMin", "exports", "bignumber_1", "properties_1", "logger_1", "_version_1", "logger", "_constructorGuard", "ModifiersBytes", "ModifiersNest", "checkModifier", "type", "name", "parseParamType", "param", "allowIndexed", "originalParam", "throwError", "i", "newNode", "parent", "node", "c", "verifyType", "child", "sibling", "populate", "object", "params", "key", "paramTypeArray", "ParamType", "constructorGuard", "match", "format", "result_1", "comp", "result", "value", "ParamTypify", "parseParams", "allowIndex", "splitNesting", "Fragment", "FunctionFragment", "EventFragment", "ConstructorFragment", "ErrorFragment", "_super", "__extends", "input", "verifyIdentifier", "regexParen", "anonymous", "modifier", "parseGas", "comps", "parseModifiers", "verifyState", "state", "parens", "output", "returns", "checkForbidden", "fragment", "sig", "regexIdentifier", "accum", "depth", "offset", "require_abstract_coder", "__commonJSMin", "exports", "bytes_1", "bignumber_1", "properties_1", "logger_1", "_version_1", "logger", "checkResultErrors", "result", "errors", "checkErrors", "path", "object", "key", "childPath", "error", "Coder", "name", "type", "localName", "dynamic", "message", "value", "Writer", "wordSize", "data", "writer", "bytes", "paddingOffset", "_this", "offset", "Reader", "coerceFunc", "allowLoose", "match", "length", "loose", "alignedLength", "require_sha3", "__commonJSMin", "exports", "module", "INPUT_ERROR", "FINALIZE_ERROR", "WINDOW", "root", "WEB_WORKER", "NODE_JS", "COMMON_JS", "AMD", "ARRAY_BUFFER", "HEX_CHARS", "SHAKE_PADDING", "CSHAKE_PADDING", "KECCAK_PADDING", "PADDING", "SHIFT", "RC", "BITS", "SHAKE_BITS", "OUTPUT_TYPES", "CSHAKE_BYTEPAD", "obj", "createOutputMethod", "bits", "padding", "outputType", "message", "Keccak", "createShakeOutputMethod", "outputBits", "createCshakeOutputMethod", "n", "s", "methods", "createKmacOutputMethod", "key", "createOutputMethods", "method", "createMethod", "i", "type", "createShakeMethod", "createCshakeMethod", "w", "createKmacMethod", "Kmac", "algorithms", "methodNames", "algorithm", "j", "methodName", "newMethodName", "notString", "blocks", "byteCount", "length", "blockCount", "index", "code", "f", "x", "right", "o", "bytes", "str", "strs", "paddingBytes", "zeros", "outputBlocks", "extraBytes", "hex", "block", "buffer", "array", "offset", "h", "l", "c0", "c1", "c2", "c3", "c4", "c5", "c6", "c7", "c8", "c9", "b0", "b1", "b2", "b3", "b4", "b5", "b6", "b7", "b8", "b9", "b10", "b11", "b12", "b13", "b14", "b15", "b16", "b17", "b18", "b19", "b20", "b21", "b22", "b23", "b24", "b25", "b26", "b27", "b28", "b29", "b30", "b31", "b32", "b33", "b34", "b35", "b36", "b37", "b38", "b39", "b40", "b41", "b42", "b43", "b44", "b45", "b46", "b47", "b48", "b49", "require_lib", "__commonJSMin", "exports", "js_sha3_1", "__importDefault", "bytes_1", "keccak256", "data", "exports", "require_lib", "__commonJSMin", "exports", "bytes_1", "logger_1", "_version_1", "logger", "arrayifyInteger", "value", "result", "unarrayifyInteger", "data", "offset", "length", "_encode", "object", "payload_1", "child", "length_1", "encode", "_decodeChildren", "childOffset", "decoded", "_decode", "lengthLength", "length_2", "length_3", "length_4", "length_5", "decode", "bytes", "exports", "require_lib", "__commonJSMin", "exports", "bytes_1", "bignumber_1", "keccak256_1", "rlp_1", "logger_1", "_version_1", "logger", "getChecksumAddress", "address", "chars", "expanded", "i", "hashed", "MAX_SAFE_INTEGER", "log10", "x", "ibanLookup", "safeDigits", "ibanChecksum", "c", "block", "checksum", "getAddress", "result", "isAddress", "getIcapAddress", "base36", "getContractAddress", "transaction", "from", "nonce", "getCreate2Address", "salt", "initCodeHash", "require_address", "__commonJSMin", "exports", "address_1", "bytes_1", "abstract_coder_1", "AddressCoder", "_super", "__extends", "localName", "writer", "value", "error", "reader", "require_anonymous", "__commonJSMin", "exports", "abstract_coder_1", "AnonymousCoder", "_super", "__extends", "coder", "_this", "writer", "value", "reader", "require_array", "__commonJSMin", "exports", "logger_1", "_version_1", "logger", "abstract_coder_1", "anonymous_1", "pack", "writer", "coders", "values", "arrayValues", "unique_1", "coder", "name", "staticWriter", "dynamicWriter", "updateFuncs", "index", "value", "dynamicOffset_1", "updateFunc_1", "baseOffset", "func", "length", "unpack", "reader", "baseReader", "offset", "offsetReader", "error", "uniqueNames", "accum", "i", "ArrayCoder", "_super", "__extends", "localName", "_this", "type", "dynamic", "defaultChild", "result", "count", "require_boolean", "__commonJSMin", "exports", "abstract_coder_1", "BooleanCoder", "_super", "__extends", "localName", "writer", "value", "reader", "require_bytes", "__commonJSMin", "exports", "bytes_1", "abstract_coder_1", "DynamicBytesCoder", "_super", "__extends", "type", "localName", "writer", "value", "length", "reader", "BytesCoder", "require_fixed_bytes", "__commonJSMin", "exports", "bytes_1", "abstract_coder_1", "FixedBytesCoder", "_super", "__extends", "size", "localName", "_this", "name", "writer", "value", "data", "reader", "require_null", "__commonJSMin", "exports", "abstract_coder_1", "NullCoder", "_super", "__extends", "localName", "writer", "value", "reader", "exports", "bignumber_1", "NegativeOne", "exports", "Zero", "One", "Two", "WeiPerEther", "MaxUint256", "MinInt256", "MaxInt256", "exports", "exports", "require_lib", "__commonJSMin", "exports", "addresses_1", "bignumbers_1", "hashes_1", "strings_1", "require_number", "__commonJSMin", "exports", "bignumber_1", "constants_1", "abstract_coder_1", "NumberCoder", "_super", "__extends", "size", "signed", "localName", "_this", "name", "writer", "value", "v", "maxUintValue", "bounds", "reader", "exports", "require_utf8", "__commonJSMin", "exports", "bytes_1", "logger_1", "_version_1", "logger", "UnicodeNormalizationForm", "Utf8ErrorReason", "errorFunc", "reason", "offset", "bytes", "output", "badCodepoint", "ignoreFunc", "i", "replaceFunc", "getUtf8CodePoints", "onError", "result", "c", "extraLength", "overlongMask", "res", "j", "nextChar", "toUtf8Bytes", "str", "form", "c2", "pair", "escapeChar", "value", "hex", "_toEscapedUtf8String", "codePoint", "_toUtf8String", "codePoints", "toUtf8String", "toUtf8CodePoints", "require_bytes32", "__commonJSMin", "exports", "constants_1", "bytes_1", "utf8_1", "formatBytes32String", "text", "bytes", "parseBytes32String", "data", "length", "require_idna", "__commonJSMin", "exports", "utf8_1", "bytes2", "data", "result", "i", "createTable", "func", "value", "lo", "pair", "comps", "createRangeTable", "hi", "v", "matchMap", "ranges", "range", "Table_A_1_ranges", "Table_B_1_flags", "Table_B_2_ranges", "Table_B_2_lut_abs", "Table_B_2_lut_rel", "Table_B_2_complex", "Table_C_ranges", "flatten", "values", "accum", "_nameprepTableA1", "codepoint", "_nameprepTableB2", "codes", "shift", "complex", "_nameprepTableC", "nameprep", "code", "codesTableB2", "name", "require_lib", "__commonJSMin", "exports", "bytes32_1", "idna_1", "utf8_1", "require_string", "__commonJSMin", "exports", "strings_1", "bytes_1", "StringCoder", "_super", "__extends", "localName", "writer", "value", "reader", "require_tuple", "__commonJSMin", "exports", "abstract_coder_1", "array_1", "TupleCoder", "_super", "__extends", "coders", "localName", "_this", "dynamic", "types", "coder", "type", "values", "uniqueNames", "accum", "name", "index", "writer", "value", "reader", "require_abi_coder", "__commonJSMin", "exports", "bytes_1", "properties_1", "logger_1", "_version_1", "logger", "abstract_coder_1", "address_1", "array_1", "boolean_1", "bytes_2", "fixed_bytes_1", "null_1", "number_1", "string_1", "tuple_1", "fragments_1", "paramTypeBytes", "paramTypeNumber", "AbiCoder", "coerceFunc", "param", "_this", "component", "match", "size", "data", "allowLoose", "types", "coders", "type", "coder", "values", "writer", "loose", "keccak256_1", "strings_1", "id", "text", "exports", "exports", "require_base64", "__commonJSMin", "exports", "bytes_1", "decode", "textData", "encode", "data", "require_lib", "__commonJSMin", "exports", "base64_1", "flat", "array", "depth", "result", "forEach", "flatDeep", "arr", "val", "fromEntries", "i", "value", "decode_arithmetic", "bytes", "pos", "u16", "symbol_count", "total", "acc", "skip", "pos_payload", "read_width", "read_buffer", "read_bit", "N", "FULL", "HALF", "QRTR", "MASK", "register", "symbols", "low", "range", "start", "end", "mid", "a", "b", "offset", "x", "exports", "read_payload", "v", "read_compressed_payload", "signed", "read_counts", "n", "next", "read_ascending", "read_deltas", "read_member_array", "lookup", "vX", "vN", "j", "read_mapped_map", "ret", "w", "read_linear_table", "read_replacement_table", "read_zero_terminated_array", "read_transposed", "m", "dx", "dy", "ys", "_", "j_dy", "y", "read_emoji_trie", "sorted", "read", "branches", "keys", "temp", "valid", "fe0f", "save", "check", "base64_1", "decoder_js_1", "getData", "exports", "strings_1", "include_js_1", "r", "decoder_js_1", "VALID", "IGNORED", "MAPPED", "EMOJI_ROOT", "HYPHEN", "UNDERSCORE", "explode_cp", "name", "filter_fe0f", "cps", "cp", "ens_normalize_post_check", "_i", "_a", "label", "i", "err", "exports", "ens_normalize", "normalize", "emoji_filter", "input", "output", "emoji", "consume_emoji_reversed", "nfc", "s", "eaten", "node", "saved", "stack", "pos", "x", "bytes_1", "strings_1", "keccak256_1", "logger_1", "_version_1", "logger", "lib_1", "Zeros", "checkComponent", "comp", "ensNameSplit", "name", "bytes", "comps", "last", "d", "ensNormalize", "exports", "isValidName", "namehash", "result", "dnsEncode", "bytes_1", "keccak256_1", "strings_1", "exports", "hashMessage", "message", "address_1", "bignumber_1", "bytes_1", "keccak256_1", "properties_1", "logger_1", "_version_1", "logger", "id_1", "padding", "NegativeOne", "Zero", "One", "MaxUint256", "hexPadRight", "value", "bytes", "padOffset", "hexTrue", "hexFalse", "domainFieldTypes", "domainFieldNames", "checkString", "key", "domainChecks", "getBaseEncoder", "type", "match", "signed", "width", "boundsUpper_1", "boundsLower_1", "v", "width_1", "encodeType", "name", "fields", "_a", "TypedDataEncoder", "types", "links", "parents", "subtypes", "name_1", "uniqueNames", "field", "baseType", "encoder", "primaryTypes", "n", "t", "checkCircular", "found", "child", "subtype", "name_2", "st", "_this", "subtype_1", "subEncoder_1", "length_1", "result", "encodedType_1", "values", "callback", "subtype_2", "length_2", "accum", "domain", "domainFields", "name_3", "b", "resolveName", "ensCache", "_c", "_d", "name_4", "_e", "domainValues", "domainTypes", "typesWithDomain", "exports", "require_lib", "__commonJSMin", "exports", "id_1", "namehash_1", "message_1", "namehash_2", "typed_data_1", "require_interface", "__commonJSMin", "exports", "address_1", "bignumber_1", "bytes_1", "hash_1", "keccak256_1", "properties_1", "abi_coder_1", "abstract_coder_1", "fragments_1", "logger_1", "_version_1", "logger", "LogDescription", "_super", "__extends", "TransactionDescription", "ErrorDescription", "Indexed", "value", "BuiltinErrors", "wrapAccessError", "property", "error", "wrap", "Interface", "fragments", "_this", "abi", "fragment", "_newTarget", "bucket", "signature", "format", "j", "address", "eventFragment", "nameOrSignatureOrSighash", "name_1", "name_2", "matching", "f", "result", "nameOrSignatureOrTopic", "topichash", "name_3", "name_4", "getSighash", "name_5", "name_6", "params", "data", "values", "bytes", "functionFragment", "reason", "message", "errorArgs", "errorName", "errorSignature", "selector", "builtin", "topics", "encodeTopic", "param", "index", "dataTypes", "dataValues", "topicHash", "indexed", "nonIndexed", "dynamic", "resultIndexed", "resultNonIndexed", "nonIndexedIndex", "indexedIndex", "value_1", "i", "tx", "log", "hexData", "require_lib", "__commonJSMin", "exports", "fragments_1", "abi_coder_1", "interface_1", "exports", "require_lib", "__commonJSMin", "exports", "bignumber_1", "bytes_1", "properties_1", "logger_1", "_version_1", "logger", "ForkEvent", "_super", "__extends", "value", "BlockForkEvent", "blockHash", "expiry", "_this", "TransactionForkEvent", "hash", "TransactionOrderForkEvent", "beforeHash", "afterHash", "Provider", "_newTarget", "error", "_a", "_b", "block", "gasPrice", "lastBaseFeePerGas", "maxFeePerGas", "maxPriorityFeePerGas", "eventName", "listener", "exports", "require_lib", "__commonJSMin", "exports", "properties_1", "logger_1", "_version_1", "logger", "allowedTransactionKeys", "forwardErrors", "Signer", "_newTarget", "blockTag", "_a", "transaction", "tx", "signedTx", "network", "name", "key", "result", "to", "__awaiter", "_this", "address", "error", "hasEip1559", "feeData", "gasPrice", "results", "operation", "value", "VoidSigner", "_super", "__extends", "provider", "message", "domain", "types", "require_bn", "__commonJSMin", "exports", "module", "assert", "val", "msg", "inherits", "ctor", "superCtor", "TempCtor", "BN", "number", "base", "endian", "Buffer", "num", "left", "right", "start", "i", "j", "w", "off", "parseHex4Bits", "string", "index", "c", "parseHexByte", "lowerBound", "r", "parseLength", "parseBase", "str", "end", "mul", "len", "limbLen", "limbPow", "total", "mod", "word", "pow", "dest", "size", "zeros", "groupSizes", "groupBases", "padding", "out", "carry", "groupSize", "groupBase", "ret", "length", "ArrayType", "byteLength", "reqLength", "littleEndian", "res", "b", "q", "t", "hi", "toBitArray", "bit", "wbit", "width", "a", "bytesNeeded", "bitsLeft", "cmp", "smallMulTo", "self", "lo", "k", "ncarry", "rword", "maxJ", "comb10MulTo", "o", "mid", "a0", "al0", "ah0", "a1", "al1", "ah1", "a2", "al2", "ah2", "a3", "al3", "ah3", "a4", "al4", "ah4", "a5", "al5", "ah5", "a6", "al6", "ah6", "a7", "al7", "ah7", "a8", "al8", "ah8", "a9", "al9", "ah9", "b0", "bl0", "bh0", "b1", "bl1", "bh1", "b2", "bl2", "bh2", "b3", "bl3", "bh3", "b4", "bl4", "bh4", "b5", "bl5", "bh5", "b6", "bl6", "bh6", "b7", "bl7", "bh7", "b8", "bl8", "bh8", "b9", "bl9", "bh9", "w0", "w1", "w2", "w3", "w4", "w5", "w6", "w7", "w8", "w9", "w10", "w11", "w12", "w13", "w14", "w15", "w16", "w17", "w18", "bigMulTo", "hncarry", "jumboMulTo", "fftm", "FFTM", "x", "y", "N", "l", "rb", "rbt", "rws", "iws", "rtws", "itws", "s", "rtwdf", "itwdf", "p", "rtwdf_", "itwdf_", "re", "ie", "ro", "io", "rx", "n", "m", "odd", "ws", "ph", "_", "rwst", "iwst", "nrws", "nrwst", "niwst", "rmws", "bits", "carryMask", "newCarry", "hint", "extended", "h", "mask", "maskedWords", "shift", "mode", "bhi", "bhiBits", "diff", "qj", "positive", "div", "dm", "half", "r2", "acc", "A", "B", "C", "D", "g", "yp", "xp", "im", "jm", "x1", "x2", "delta", "negative", "Red", "ctx", "primes", "MPrime", "name", "tmp", "rlen", "input", "K256", "output", "outLen", "prev", "next", "P224", "P192", "P25519", "prime", "mod3", "one", "nOne", "lpow", "z", "inv", "windowSize", "wnd", "current", "currentLen", "Mont", "u", "require_minimalistic_assert", "__commonJSMin", "exports", "module", "assert", "val", "msg", "l", "r", "require_utils", "__commonJSMin", "exports", "utils", "toArray", "msg", "enc", "res", "i", "c", "hi", "lo", "zero2", "word", "toHex", "arr", "require_utils", "__commonJSMin", "exports", "utils", "BN", "minAssert", "minUtils", "getNAF", "num", "w", "bits", "naf", "ws", "k", "i", "z", "mod", "getJSF", "k1", "k2", "jsf", "d1", "d2", "m8", "m14", "m24", "u1", "u2", "cachedProperty", "obj", "name", "computer", "key", "parseBytes", "bytes", "intFromLE", "require_brorand", "__commonJSMin", "exports", "module", "r", "len", "Rand", "rand", "n", "res", "i", "arr", "crypto", "require_base", "__commonJSMin", "exports", "module", "BN", "utils", "getNAF", "getJSF", "assert", "BaseCurve", "type", "conf", "adjustCount", "p", "k", "doubles", "naf", "I", "repr", "j", "nafW", "l", "a", "b", "i", "w", "nafPoints", "wnd", "acc", "z", "defW", "points", "coeffs", "len", "jacobianResult", "wndWidth", "max", "comb", "index", "jsf", "ja", "jb", "tmp", "zero", "BasePoint", "curve", "bytes", "enc", "res", "compact", "x", "power", "precomputed", "step", "dbl", "r", "require_inherits_browser", "__commonJSMin", "exports", "module", "ctor", "superCtor", "TempCtor", "require_inherits", "__commonJSMin", "exports", "module", "util", "require_short", "__commonJSMin", "exports", "module", "utils", "BN", "inherits", "Base", "assert", "ShortCurve", "conf", "beta", "lambda", "betas", "lambdas", "basis", "vec", "num", "red", "tinv", "ntinv", "s", "l1", "l2", "aprxSqrt", "u", "v", "x1", "y1", "x2", "y2", "a0", "b0", "a1", "b1", "a2", "b2", "prevR", "i", "r", "x", "q", "y", "len1", "len2", "k", "v1", "v2", "c1", "c2", "p1", "p2", "q1", "q2", "k1", "k2", "odd", "isOdd", "point", "ax", "rhs", "points", "coeffs", "jacobianResult", "npoints", "ncoeffs", "split", "p", "res", "j", "Point", "curve", "isRed", "obj", "pre", "endoMul", "obj2point", "c", "nx", "ny", "ys1", "a", "dyinv", "_precompute", "negate", "JPoint", "z", "zinv", "zinv2", "ay", "pz2", "z2", "u1", "u2", "s1", "s2", "h", "h2", "h3", "nz", "pow", "jx", "jy", "jz", "jz4", "jyd", "jx2", "jyd2", "jyd4", "t1", "t2", "dny", "xx", "yy", "yyyy", "m", "t", "yyyy8", "b", "d", "e", "f", "c8", "delta", "gamma", "alpha", "beta4", "beta8", "ggamma8", "jy2", "jxd4", "jyd8", "zz", "mm", "ee", "yyu4", "kbase", "z3", "pz3", "zs", "rx", "xc", "require_mont", "__commonJSMin", "exports", "module", "BN", "inherits", "Base", "utils", "MontCurve", "conf", "point", "x", "x2", "rhs", "y", "Point", "curve", "z", "bytes", "enc", "obj", "a", "aa", "b", "bb", "c", "nx", "nz", "p", "diff", "d", "da", "cb", "k", "t", "bits", "i", "other", "require_edwards", "__commonJSMin", "exports", "module", "utils", "BN", "inherits", "Base", "assert", "EdwardsCurve", "conf", "num", "x", "y", "z", "t", "odd", "x2", "rhs", "lhs", "y2", "isOdd", "point", "Point", "curve", "obj", "a", "b", "c", "d", "e", "g", "f", "h", "nx", "ny", "nt", "nz", "j", "p", "tmp", "k", "k1", "k2", "zi", "other", "rx", "xc", "require_curve", "__commonJSMin", "exports", "curve", "require_utils", "__commonJSMin", "exports", "assert", "inherits", "isSurrogatePair", "msg", "i", "toArray", "enc", "res", "p", "c", "toHex", "zero2", "htonl", "w", "toHex32", "endian", "zero8", "word", "join32", "start", "end", "len", "k", "split32", "m", "rotr32", "b", "rotl32", "sum32", "a", "sum32_3", "sum32_4", "d", "sum32_5", "e", "sum64", "buf", "pos", "ah", "al", "bh", "bl", "lo", "hi", "sum64_hi", "sum64_lo", "sum64_4_hi", "ch", "cl", "dh", "dl", "carry", "sum64_4_lo", "sum64_5_hi", "eh", "el", "sum64_5_lo", "rotr64_hi", "num", "r", "rotr64_lo", "shr64_hi", "shr64_lo", "require_common", "__commonJSMin", "exports", "utils", "assert", "BlockHash", "msg", "enc", "r", "len", "bytes", "k", "res", "i", "t", "require_common", "__commonJSMin", "exports", "utils", "rotr32", "ft_1", "s", "x", "y", "z", "ch32", "p32", "maj32", "s0_256", "s1_256", "g0_256", "g1_256", "require__", "__commonJSMin", "exports", "module", "utils", "common", "shaCommon", "rotl32", "sum32", "sum32_5", "ft_1", "BlockHash", "sha1_K", "SHA1", "msg", "start", "W", "b", "c", "d", "e", "s", "t", "enc", "require__", "__commonJSMin", "exports", "module", "utils", "common", "shaCommon", "assert", "sum32", "sum32_4", "sum32_5", "ch32", "maj32", "s0_256", "s1_256", "g0_256", "g1_256", "BlockHash", "sha256_K", "SHA256", "msg", "start", "W", "b", "c", "d", "e", "f", "g", "h", "T1", "T2", "enc", "require__", "__commonJSMin", "exports", "module", "utils", "SHA256", "SHA224", "enc", "require__", "__commonJSMin", "exports", "module", "utils", "common", "assert", "rotr64_hi", "rotr64_lo", "shr64_hi", "shr64_lo", "sum64", "sum64_hi", "sum64_lo", "sum64_4_hi", "sum64_4_lo", "sum64_5_hi", "sum64_5_lo", "BlockHash", "sha512_K", "SHA512", "msg", "start", "W", "c0_hi", "g1_512_hi", "c0_lo", "g1_512_lo", "c1_hi", "c1_lo", "c2_hi", "g0_512_hi", "c2_lo", "g0_512_lo", "c3_hi", "c3_lo", "ah", "al", "bh", "bl", "ch", "cl", "dh", "dl", "eh", "el", "fh", "fl", "gh", "gl", "hh", "hl", "i", "s1_512_hi", "s1_512_lo", "ch64_hi", "ch64_lo", "c4_hi", "c4_lo", "T1_hi", "T1_lo", "s0_512_hi", "s0_512_lo", "maj64_hi", "maj64_lo", "T2_hi", "T2_lo", "enc", "xh", "xl", "yh", "yl", "zh", "r", "zl", "require__", "__commonJSMin", "exports", "module", "utils", "SHA512", "SHA384", "enc", "require_sha", "__commonJSMin", "exports", "require_ripemd", "__commonJSMin", "exports", "utils", "common", "rotl32", "sum32", "sum32_3", "sum32_4", "BlockHash", "RIPEMD160", "msg", "start", "A", "B", "C", "D", "E", "Ah", "Bh", "Ch", "Dh", "Eh", "j", "T", "f", "r", "K", "s", "rh", "Kh", "sh", "enc", "x", "y", "z", "require_hmac", "__commonJSMin", "exports", "module", "utils", "assert", "Hmac", "hash", "key", "enc", "i", "msg", "require_hash", "__commonJSMin", "exports", "hash", "require_secp256k1", "__commonJSMin", "exports", "module", "require_curves", "__commonJSMin", "exports", "curves", "hash", "curve", "utils", "assert", "PresetCurve", "options", "defineCurve", "name", "pre", "require_hmac_drbg", "__commonJSMin", "exports", "module", "hash", "utils", "assert", "HmacDRBG", "options", "entropy", "nonce", "pers", "seed", "i", "kmac", "entropyEnc", "add", "addEnc", "len", "enc", "temp", "res", "require_key", "__commonJSMin", "exports", "module", "BN", "utils", "assert", "KeyPair", "ec", "options", "pub", "enc", "priv", "compact", "key", "msg", "signature", "require_signature", "__commonJSMin", "exports", "module", "BN", "utils", "assert", "Signature", "options", "enc", "Position", "getLength", "buf", "p", "initial", "octetLen", "val", "i", "off", "rmPadding", "len", "data", "rlen", "r", "slen", "s", "constructLength", "arr", "octets", "backHalf", "res", "require_ec", "__commonJSMin", "exports", "module", "BN", "HmacDRBG", "utils", "curves", "rand", "assert", "KeyPair", "Signature", "EC", "options", "priv", "enc", "pub", "drbg", "bytes", "ns2", "msg", "truncOnly", "delta", "key", "bkey", "nonce", "ns1", "iter", "k", "kp", "kpX", "r", "s", "recoveryParam", "signature", "sinv", "u1", "u2", "j", "n", "e", "isYOdd", "isSecondKey", "rInv", "s1", "s2", "Q", "Qprime", "require_key", "__commonJSMin", "exports", "module", "utils", "assert", "parseBytes", "cachedProperty", "KeyPair", "eddsa", "params", "pub", "secret", "hash", "lastIx", "a", "message", "sig", "enc", "require_signature", "__commonJSMin", "exports", "module", "BN", "utils", "assert", "cachedProperty", "parseBytes", "Signature", "eddsa", "sig", "require_eddsa", "__commonJSMin", "exports", "module", "hash", "curves", "utils", "assert", "parseBytes", "KeyPair", "Signature", "EDDSA", "curve", "message", "secret", "key", "r", "R", "Rencoded", "s_", "S", "sig", "pub", "h", "SG", "RplusAh", "i", "point", "enc", "bytes", "lastIx", "normed", "xIsOdd", "y", "num", "val", "require_elliptic", "__commonJSMin", "exports", "elliptic", "elliptic_1", "__importDefault", "EC", "exports", "exports", "require_lib", "__commonJSMin", "exports", "elliptic_1", "bytes_1", "properties_1", "logger_1", "_version_1", "logger", "_curve", "getCurve", "SigningKey", "privateKey", "keyPair", "other", "p0", "p1", "digest", "digestBytes", "signature", "otherKey", "otherKeyPair", "computePublicKey", "value", "recoverPublicKey", "sig", "rs", "key", "compressed", "bytes", "signingKey", "exports", "require_lib", "__commonJSMin", "exports", "address_1", "bignumber_1", "bytes_1", "constants_1", "keccak256_1", "properties_1", "RLP", "__importStar", "signing_key_1", "logger_1", "_version_1", "logger", "TransactionTypes", "handleAddress", "value", "handleNumber", "transactionFields", "allowedTransactionKeys", "computeAddress", "key", "publicKey", "recoverAddress", "digest", "signature", "formatNumber", "name", "result", "accessSetify", "addr", "storageKeys", "storageKey", "index", "accessListify", "set", "accum", "a", "b", "formatAccessList", "_serializeEip1559", "transaction", "gasPrice", "maxFeePerGas", "fields", "sig", "_serializeEip2930", "_serialize", "raw", "fieldInfo", "options", "chainId", "v", "serialize", "_parseEipSignature", "tx", "recid", "_parseEip1559", "payload", "maxPriorityFeePerGas", "_parseEip2930", "_parse", "rawTransaction", "recoveryParam", "parse", "exports", "require_lib", "__commonJSMin", "exports", "abi_1", "abstract_provider_1", "abstract_signer_1", "address_1", "bignumber_1", "bytes_1", "properties_1", "transactions_1", "logger_1", "_version_1", "logger", "allowedTransactionKeys", "resolveName", "resolver", "nameOrPromise", "name", "_a", "address", "resolveAddresses", "value", "paramType", "index", "v", "populateTransaction", "contract", "fragment", "args", "overrides", "check", "__awaiter", "_this", "resolved", "data", "tx", "ro", "intrinsic", "bytes", "i", "roValue", "leftovers", "key", "l", "buildPopulate", "_i", "buildEstimate", "signerOrProvider", "addContractWait", "wait", "confirmations", "receipt", "log", "event", "parsed", "topics", "buildCall", "collapseSimple", "blockTag", "result", "error", "buildSend", "txRequest", "buildDefault", "getEventTag", "filter", "topic", "RunningEvent", "tag", "listener", "once", "done", "item", "listenerCount", "argsCopy", "ErrorRunningEvent", "_super", "__extends", "FragmentRunningEvent", "contractInterface", "errors", "WildcardRunningEvent", "parsed_1", "BaseContract", "addressOrName", "_newTarget", "uniqueFilters_1", "eventSignature", "filters", "e", "uniqueNames", "uniqueSignatures", "signature", "name_1", "signatures", "transaction", "code", "runningEvent", "eventName", "emit", "wrappedEmit", "__spreadArray", "fromBlockOrBlockhash", "toBlock", "logs", "accum", "result_1", "runningEvent_1", "Contract", "ContractFactory", "bytecode", "signer", "bytecodeHex", "params", "unsignedTx", "compilerOutput", "abi", "bytes_1", "properties_1", "BaseX", "alphabet", "i", "value", "source", "digits", "carry", "j", "string", "k", "q", "bytes", "byte", "exports", "Base32", "Base58", "require_pbkdf2", "__commonJSMin", "exports", "crypto_1", "bytes_1", "bufferify", "value", "pbkdf2", "password", "salt", "iterations", "keylen", "hashAlgorithm", "pbkdf2_1", "exports", "SupportedAlgorithm", "exports", "exports", "require_sha2", "__commonJSMin", "exports", "crypto_1", "hash_js_1", "__importDefault", "bytes_1", "types_1", "logger_1", "_version_1", "logger", "ripemd160", "data", "sha256", "sha512", "computeHmac", "algorithm", "key", "sha2_1", "exports", "types_1", "exports", "require_wordlist", "__commonJSMin", "exports", "exportWordlist", "hash_1", "properties_1", "logger_1", "_version_1", "Wordlist", "locale", "_newTarget", "mnemonic", "words", "wordlist", "i", "word", "lang", "name", "anyGlobal", "require_lang_cz", "__commonJSMin", "exports", "wordlist_1", "words", "wordlist", "loadWords", "lang", "LangCz", "_super", "__extends", "index", "word", "langCz", "require_lang_en", "__commonJSMin", "exports", "wordlist_1", "words", "wordlist", "loadWords", "lang", "LangEn", "_super", "__extends", "index", "word", "langEn", "require_lang_es", "__commonJSMin", "exports", "strings_1", "wordlist_1", "words", "lookup", "wordlist", "dropDiacritic", "word", "c", "expand", "output", "loadWords", "lang", "w", "index", "LangEs", "_super", "__extends", "langEs", "require_lang_fr", "__commonJSMin", "exports", "strings_1", "wordlist_1", "words", "wordlist", "lookup", "dropDiacritic", "word", "c", "expand", "output", "loadWords", "lang", "w", "index", "LangFr", "_super", "__extends", "langFr", "require_lang_ja", "__commonJSMin", "exports", "bytes_1", "strings_1", "wordlist_1", "data", "mapping", "wordlist", "hex", "word", "KiYoKu", "KyoKu", "loadWords", "lang", "transform", "normalize", "result", "i", "kana", "target", "sortJapanese", "a", "b", "length_1", "d", "offset", "k", "tmp", "LangJa", "_super", "__extends", "index", "mnemonic", "words", "langJa", "require_lang_ko", "__commonJSMin", "exports", "strings_1", "wordlist_1", "data", "codes", "getHangul", "code", "wordlist", "loadWords", "lang", "length", "i", "word", "j", "LangKo", "_super", "__extends", "index", "langKo", "require_lang_it", "__commonJSMin", "exports", "wordlist_1", "words", "wordlist", "loadWords", "lang", "LangIt", "_super", "__extends", "index", "word", "langIt", "require_lang_zh", "__commonJSMin", "exports", "strings_1", "wordlist_1", "data", "deltaData", "wordlist", "Checks", "codes", "style", "loadWords", "lang", "deltaOffset", "i", "s", "bytes", "common", "i_1", "LangZh", "_super", "__extends", "country", "index", "word", "mnemonic", "langZhCn", "langZhTw", "lang_cz_1", "lang_en_1", "lang_es_1", "lang_fr_1", "lang_ja_1", "lang_ko_1", "lang_it_1", "lang_zh_1", "exports", "require_lib", "__commonJSMin", "exports", "wordlist_1", "wordlists_1", "exports", "require_lib", "__commonJSMin", "exports", "basex_1", "bytes_1", "bignumber_1", "strings_1", "pbkdf2_1", "properties_1", "signing_key_1", "sha2_1", "transactions_1", "wordlists_1", "logger_1", "_version_1", "logger", "N", "MasterSecret", "HardenedBit", "getUpperMask", "bits", "getLowerMask", "bytes32", "value", "base58check", "data", "getWordlist", "wordlist", "words", "_constructorGuard", "HDNode", "constructorGuard", "privateKey", "publicKey", "parentFingerprint", "chainCode", "index", "depth", "mnemonicOrPath", "signingKey", "path", "I", "IL", "IR", "ki", "Ki", "ek", "srcMnemonic", "components", "result", "component", "seed", "mnemonic", "seedArray", "password", "entropyToMnemonic", "mnemonicToEntropy", "mnemonicToSeed", "extendedKey", "bytes", "key", "salt", "entropy", "offset", "i", "bit", "entropyBits", "checksumBits", "checksumMask", "checksum", "indices", "remainingBits", "isValidMnemonic", "getAccountPath", "crypto_1", "bytes_1", "randomBytes", "length", "exports", "require_shuffle", "__commonJSMin", "exports", "shuffled", "array", "i", "j", "tmp", "require_lib", "__commonJSMin", "exports", "random_1", "shuffle_1", "require_aes_js", "__commonJSMin", "exports", "module", "root", "checkInt", "value", "checkInts", "arrayish", "i", "coerceArray", "arg", "copy", "createArray", "length", "copyArray", "sourceArray", "targetArray", "targetStart", "sourceStart", "sourceEnd", "convertUtf8", "toBytes", "text", "result", "c", "fromBytes", "bytes", "convertHex", "Hex", "v", "numberOfRounds", "rcon", "S", "Si", "T1", "T2", "T3", "T4", "T5", "T6", "T7", "T8", "U1", "U2", "U3", "U4", "convertToInt32", "AES", "key", "rounds", "roundKeyCount", "KC", "tk", "index", "rconpointer", "t", "tt", "r", "plaintext", "a", "ciphertext", "ModeOfOperationECB", "block", "ModeOfOperationCBC", "iv", "j", "ModeOfOperationCFB", "segmentSize", "encrypted", "xorSegment", "ModeOfOperationOFB", "Counter", "initialValue", "ModeOfOperationCTR", "counter", "pkcs7pad", "data", "padder", "pkcs7strip", "aesjs", "exports", "require_utils", "__commonJSMin", "exports", "bytes_1", "strings_1", "looseArrayify", "hexString", "zpad", "value", "length", "getPassword", "password", "searchPath", "object", "path", "currentChild", "comps", "matchingChild", "key", "uuidV4", "randomBytes", "bytes", "require_crowdsale", "__commonJSMin", "exports", "aes_js_1", "__importDefault", "address_1", "bytes_1", "keccak256_1", "pbkdf2_1", "strings_1", "properties_1", "logger_1", "_version_1", "logger", "utils_1", "CrowdsaleAccount", "_super", "__extends", "value", "decrypt", "json", "password", "data", "ethaddr", "encseed", "key", "iv", "encryptedSeed", "aesCbc", "seed", "seedHex", "i", "seedHexBytes", "privateKey", "require_inspect", "__commonJSMin", "exports", "address_1", "isCrowdsaleWallet", "json", "data", "isKeystoreWallet", "getJsonWalletAddress", "require_scrypt", "__commonJSMin", "exports", "module", "root", "SHA256", "m", "K", "h0", "h1", "h2", "h3", "h4", "h5", "h6", "h7", "w", "blocks", "p", "off", "len", "a", "b", "c", "d", "e", "f", "g", "h", "u", "i", "j", "t1", "t2", "bytesLeft", "bitLenHi", "bitLenLo", "numZeros", "PBKDF2_HMAC_SHA256_OneIter", "password", "salt", "dkLen", "innerLen", "inner", "outerKey", "dk", "incrementCounter", "blockmix_salsa8", "BY", "Yi", "r", "x", "_X", "arraycopy", "blockxor", "salsa20_8", "R", "B", "S", "Si", "D", "src", "srcPos", "dest", "destPos", "length", "checkBufferish", "o", "v", "ensureInteger", "value", "name", "_scrypt", "N", "callback", "XY", "V", "totalOps", "currentOp", "lastPercent10", "stop", "state", "i0", "i1", "Bi", "limit", "nextTick", "incrementalSMix", "steps", "percent10", "offset", "derivedKey", "lib", "progressCallback", "resolve", "reject", "lastProgress", "error", "progress", "key", "require_keystore", "__commonJSMin", "exports", "aes_js_1", "__importDefault", "scrypt_js_1", "address_1", "bytes_1", "hdnode_1", "keccak256_1", "pbkdf2_1", "random_1", "properties_1", "transactions_1", "utils_1", "logger_1", "_version_1", "logger", "hasMnemonic", "value", "KeystoreAccount", "_super", "__extends", "_decrypt", "data", "key", "ciphertext", "cipher", "iv", "counter", "aesCtr", "_getAccount", "computedMAC", "privateKey", "mnemonicKey", "address", "check", "account", "mnemonicCiphertext", "mnemonicIv", "mnemonicCounter", "mnemonicAesCtr", "path", "locale", "entropy", "mnemonic", "node", "error", "pbkdf2Sync", "passwordBytes", "salt", "count", "dkLen", "prfFunc", "pbkdf2", "_computeKdfKey", "password", "pbkdf2Func", "scryptFunc", "progressCallback", "kdf", "throwError", "name", "N", "r", "p", "prf", "decryptSync", "json", "decrypt", "_a", "encrypt", "options", "e", "srcMnemonic", "client", "uuidRandom", "derivedKey", "macPrefix", "mac", "now", "timestamp", "require_lib", "__commonJSMin", "exports", "crowdsale_1", "inspect_1", "keystore_1", "decryptJsonWallet", "json", "password", "progressCallback", "account", "decryptJsonWalletSync", "exports", "require_lib", "__commonJSMin", "exports", "address_1", "abstract_provider_1", "abstract_signer_1", "bytes_1", "hash_1", "hdnode_1", "keccak256_1", "properties_1", "random_1", "signing_key_1", "json_wallets_1", "transactions_1", "logger_1", "_version_1", "logger", "isAccount", "value", "hasMnemonic", "mnemonic", "Wallet", "_super", "__extends", "privateKey", "provider", "_this", "signingKey_1", "srcMnemonic_1", "node", "signingKey_2", "transaction", "tx", "signature", "message", "domain", "types", "name", "populated", "_a", "password", "options", "progressCallback", "entropy", "json", "account", "path", "wordlist", "verifyMessage", "verifyTypedData", "exports", "require_lib", "__commonJSMin", "exports", "logger_1", "_version_1", "logger", "isRenetworkable", "value", "ethDefaultProvider", "network", "func", "providers", "options", "providerList", "skip", "provider", "quorum", "etcDefaultProvider", "url", "homestead", "ropsten", "classicMordor", "networks", "getNetwork", "name_1", "standard_1", "standard_2", "standard", "defaultProvider", "exports", "require_geturl", "__commonJSMin", "exports", "http_1", "__importDefault", "https_1", "zlib_1", "url_1", "bytes_1", "properties_1", "logger_1", "_version_1", "logger", "getResponse", "request", "resolve", "reject", "resp", "response", "accum", "name", "value", "chunk", "error", "nonnull", "getUrl", "href", "options", "url", "req", "_a", "require_lib", "__commonJSMin", "exports", "base64_1", "bytes_1", "properties_1", "strings_1", "logger_1", "_version_1", "logger", "geturl_1", "staller", "duration", "resolve", "bodyify", "value", "type", "unpercent", "all", "code", "_fetchData", "connection", "body", "processFunc", "attemptLimit", "throttleCallback", "throttleSlotInterval", "errorPassThrough", "headers", "url", "options", "allow304", "timeout", "key", "authorization", "reData", "dataMatch", "response", "result", "error", "flatHeaders", "header", "runningTimeout", "timer", "promise", "reject", "cancel", "runningFetch", "attempt", "_a", "location_1", "tryAgain", "stall", "retryAfter", "error_1", "body_1", "error_2", "timeout_1", "fetchJson", "json", "processJsonFunc", "updated", "hasContentType", "k", "poll", "func", "done", "retryLimit", "check", "require_bech32", "__commonJSMin", "exports", "module", "ALPHABET", "ALPHABET_MAP", "z", "x", "polymodStep", "pre", "b", "prefixChk", "prefix", "chk", "i", "c", "v", "encode", "words", "LIMIT", "result", "__decode", "str", "lowered", "uppered", "split", "wordChars", "decodeUnsafe", "res", "decode", "convert", "data", "inBits", "outBits", "pad", "value", "bits", "maxV", "toWordsUnsafe", "bytes", "toWords", "fromWordsUnsafe", "fromWords", "exports", "require_formatter", "__commonJSMin", "exports", "address_1", "bignumber_1", "bytes_1", "constants_1", "properties_1", "transactions_1", "logger_1", "_version_1", "logger", "Formatter", "_this", "formats", "address", "bigNumber", "blockTag", "data", "hash", "hex", "number", "type", "strictData", "v", "accessList", "value", "strict", "result", "format", "difficulty", "transaction", "chainId", "value_1", "object", "key", "error", "nullValue", "replaceValue", "array", "isCommunityResourcable", "isCommunityResource", "throttleMessage", "showThrottleMessage", "require_base_provider", "__commonJSMin", "exports", "abstract_provider_1", "base64_1", "basex_1", "bignumber_1", "bytes_1", "constants_1", "hash_1", "networks_1", "properties_1", "sha2_1", "strings_1", "web_1", "bech32_1", "__importDefault", "logger_1", "_version_1", "logger", "formatter_1", "MAX_CCIP_REDIRECTS", "checkTopic", "topic", "serializeTopics", "topics", "unique_1", "sorted", "deserializeTopics", "data", "comps", "getEventTag", "eventName", "getTime", "stall", "duration", "resolve", "PollableEvents", "Event", "tag", "listener", "once", "address", "filter", "coinInfos", "bytes32ify", "value", "base58Encode", "matcherIpfs", "matchers", "_parseString", "result", "start", "_parseBytes", "offset", "length", "getIpfsLink", "link", "numPad", "padded", "bytesPad", "encodeBytes", "datas", "byteCount", "i", "Resolver", "provider", "name", "resolvedAddress", "_this", "error", "selector", "parameters", "tx", "parseBytes", "_a", "error_1", "coinType", "hexBytes", "coinInfo", "bytes", "p2pkh", "length_1", "p2sh", "length_2", "length_3", "version_1", "words", "error_2", "linkage", "avatar", "_h", "match", "scheme", "_b", "owner", "addr", "tokenId", "_d", "_c", "tokenOwner", "_f", "_e", "balance", "_g", "metadataUrl", "metadata", "imageUrl", "ipfs", "length_4", "ipns", "length_5", "swarm", "skynet", "urlSafe_1", "hash", "a", "key", "keyBytes", "defaultFormatter", "nextPollId", "BaseProvider", "_super", "__extends", "network", "_newTarget", "knownNetwork", "calldata", "urls", "sender", "errorMessages", "url", "href", "json", "response", "errorMessage", "m", "maxAge", "internalBlockNumber", "reqTime", "checkInternalBlockNumber", "blockNumber", "networkError", "respTime", "pollId", "runners", "error_6", "eventBlockNumber", "event", "hash_2", "runner", "receipt", "filter_1", "minFromBlock", "logs", "log", "currentNetwork", "now", "transactionHash", "confirmations", "timeout", "replaceable", "reject", "cancelFuncs", "done", "alreadyDone", "func", "minedHandler", "lastBlockNumber_1", "scannedBlock_1", "replaceHandler_1", "__awaiter", "nonce", "mined", "block", "ti", "receipt_1", "reason", "timer_1", "addressOrName", "blockTag", "params", "position", "p", "startBlock", "confirms", "replacement", "signedTransaction", "t", "hexTx", "error_7", "transaction", "values", "v", "attempt", "txSender", "urlsOffset", "urlsLength", "urlsData", "u", "callbackSelector", "extraData", "ccipResult", "error_8", "resolved", "blockHashOrBlockTag", "includeTransactions", "blockNumber_1", "blockWithTxs", "currentName", "resolver", "operation", "addrData", "node", "resolverAddr", "nameOrAddress", "resolverAddress", "avatar_1", "error_11", "name_1", "error_12", "method", "e", "args", "_i", "stopped", "eventTag", "found", "eventTag_1", "require_json_rpc_provider", "__commonJSMin", "exports", "abstract_signer_1", "bignumber_1", "bytes_1", "hash_1", "properties_1", "strings_1", "transactions_1", "web_1", "logger_1", "_version_1", "logger", "base_provider_1", "errorGas", "spelunk", "value", "requireData", "data", "key", "result", "checkError", "method", "error", "params", "transaction", "message", "timer", "timeout", "resolve", "getResult", "payload", "getLowerCase", "_constructorGuard", "JsonRpcSigner", "_super", "__extends", "constructorGuard", "provider", "addressOrIndex", "_this", "UncheckedJsonRpcSigner", "accounts", "fromAddress", "address", "estimate", "to", "__awaiter", "_a", "tx", "sender", "hexTx", "hash", "blockNumber", "error_1", "error_2", "error_3", "domain", "types", "name", "populated", "error_4", "password", "confirmations", "allowedTransactionKeys", "JsonRpcProvider", "url", "network", "networkOrReady", "reject", "chainId", "getNetwork", "a", "request", "cache", "hexlifyTransaction", "feeData", "args", "error_7", "event", "self", "pendingFilter", "filterId", "poll", "hashes", "seq", "allowExtra", "allowed", "require_constants", "__commonJSMin", "exports", "module", "require_node_gyp_build", "__commonJSMin", "exports", "module", "fs", "path", "os", "runtimeRequire", "vars", "prebuildsOnly", "abi", "runtime", "isElectron", "arch", "platform", "libc", "isAlpine", "armv", "uv", "load", "dir", "name", "release", "getFirst", "matchBuild", "debug", "prebuild", "resolve", "nearby", "target", "tuples", "readdirSync", "parseTuple", "tuple", "matchTuple", "compareTuples", "prebuilds", "parsed", "parseTags", "candidates", "matchTags", "winner", "compareTags", "filter", "files", "arr", "architectures", "a", "b", "file", "extension", "tags", "tag", "runtimeAgnostic", "require_fallback", "__commonJSMin", "exports", "module", "mask", "source", "output", "offset", "length", "i", "unmask", "buffer", "require_bufferutil", "__commonJSMin", "exports", "module", "require_buffer_util", "__commonJSMin", "exports", "module", "EMPTY_BUFFER", "concat", "list", "totalLength", "target", "offset", "buf", "_mask", "source", "mask", "output", "length", "i", "_unmask", "buffer", "toArrayBuffer", "toBuffer", "data", "bufferUtil", "bu", "require_limiter", "__commonJSMin", "exports", "module", "kDone", "kRun", "Limiter", "concurrency", "job", "require_permessage_deflate", "__commonJSMin", "exports", "module", "zlib", "bufferUtil", "Limiter", "kStatusCode", "NOOP", "TRAILER", "kPerMessageDeflate", "kTotalLength", "kCallback", "kBuffers", "kError", "zlibLimiter", "PerMessageDeflate", "options", "isServer", "maxPayload", "concurrency", "params", "configurations", "callback", "offers", "opts", "accepted", "response", "key", "value", "num", "data", "fin", "done", "err", "result", "endpoint", "windowBits", "inflateOnError", "inflateOnData", "deflateOnData", "chunk", "require_fallback", "__commonJSMin", "exports", "module", "isValidUTF8", "buf", "len", "i", "require_utf_8_validate", "__commonJSMin", "exports", "module", "require_validation", "__commonJSMin", "exports", "module", "isValidStatusCode", "code", "_isValidUTF8", "buf", "len", "i", "isValidUTF8", "require_receiver", "__commonJSMin", "exports", "module", "Writable", "PerMessageDeflate", "BINARY_TYPES", "EMPTY_BUFFER", "kStatusCode", "kWebSocket", "concat", "toArrayBuffer", "unmask", "isValidStatusCode", "isValidUTF8", "GET_INFO", "GET_PAYLOAD_LENGTH_16", "GET_PAYLOAD_LENGTH_64", "GET_MASK", "GET_DATA", "INFLATING", "Receiver", "binaryType", "extensions", "isServer", "maxPayload", "chunk", "encoding", "cb", "n", "buf", "dst", "offset", "err", "error", "compressed", "num", "data", "er", "messageLength", "fragments", "code", "ErrorCtor", "message", "prefix", "statusCode", "require_sender", "__commonJSMin", "exports", "module", "randomFillSync", "PerMessageDeflate", "EMPTY_BUFFER", "isValidStatusCode", "applyMask", "toBuffer", "mask", "Sender", "socket", "extensions", "data", "options", "merge", "offset", "payloadLength", "target", "code", "cb", "buf", "length", "readOnly", "perMessageDeflate", "opcode", "rsv1", "opts", "compress", "_", "err", "i", "callback", "params", "list", "require_event_target", "__commonJSMin", "exports", "module", "Event", "type", "target", "MessageEvent", "data", "CloseEvent", "code", "reason", "OpenEvent", "ErrorEvent", "error", "EventTarget", "listener", "options", "onMessage", "onClose", "message", "onError", "onOpen", "method", "listeners", "i", "require_extension", "__commonJSMin", "exports", "module", "tokenChars", "push", "dest", "name", "elem", "parse", "header", "offers", "params", "mustUnescape", "isEscaping", "inQuotes", "extensionName", "paramName", "start", "end", "i", "code", "value", "token", "format", "extensions", "extension", "configurations", "k", "values", "v", "require_websocket", "__commonJSMin", "exports", "module", "EventEmitter", "https", "http", "net", "tls", "randomBytes", "createHash", "URL", "PerMessageDeflate", "Receiver", "Sender", "BINARY_TYPES", "EMPTY_BUFFER", "GUID", "kStatusCode", "kWebSocket", "NOOP", "addEventListener", "removeEventListener", "format", "parse", "toBuffer", "readyStates", "protocolVersions", "closeTimeout", "WebSocket", "address", "protocols", "options", "initAsClient", "type", "socket", "head", "maxPayload", "receiver", "receiverOnConclude", "receiverOnDrain", "receiverOnError", "receiverOnMessage", "receiverOnPing", "receiverOnPong", "socketOnClose", "socketOnData", "socketOnEnd", "socketOnError", "code", "data", "msg", "abortHandshake", "err", "mask", "cb", "sendAfterClose", "opts", "readyState", "i", "descriptor", "property", "method", "listeners", "listener", "websocket", "parsedUrl", "isUnixSocket", "isSecure", "defaultPort", "key", "get", "perMessageDeflate", "tlsConnect", "netConnect", "parts", "req", "res", "location", "statusCode", "addr", "digest", "serverProt", "protList", "protError", "extensions", "stream", "message", "length", "reason", "receiverOnFinish", "chunk", "require_stream", "__commonJSMin", "exports", "module", "Duplex", "emitClose", "stream", "duplexOnEnd", "duplexOnError", "err", "createWebSocketStream", "ws", "options", "resumeOnReceiverDrain", "receiverOnDrain", "duplex", "msg", "callback", "called", "chunk", "encoding", "require_websocket_server", "__commonJSMin", "exports", "module", "EventEmitter", "createHash", "createServer", "STATUS_CODES", "PerMessageDeflate", "WebSocket", "format", "parse", "GUID", "kWebSocket", "keyRegex", "WebSocketServer", "options", "callback", "req", "res", "body", "emitConnection", "addListeners", "socket", "head", "cb", "client", "server", "emitClose", "index", "socketOnError", "key", "version", "extensions", "abortHandshake", "perMessageDeflate", "offers", "info", "verified", "code", "message", "headers", "ws", "protocol", "trim", "params", "value", "map", "event", "h", "str", "require_ws", "__commonJSMin", "exports", "module", "WebSocket", "ws_1", "__importDefault", "exports", "require_websocket_provider", "__commonJSMin", "exports", "bignumber_1", "properties_1", "json_rpc_provider_1", "ws_1", "logger_1", "_version_1", "logger", "NextId", "WebSocketProvider", "_super", "__extends", "url", "network", "_this", "id", "messageEvent", "data", "result", "request", "error", "sub", "fauxPoll", "value", "blockNumber", "method", "params", "rid", "resolve", "reject", "callback", "payload", "tag", "param", "processFunc", "subIdPromise", "subId", "_a", "event", "emitReceipt_1", "hash", "receipt", "e", "require_url_json_rpc_provider", "__commonJSMin", "exports", "properties_1", "logger_1", "_version_1", "logger", "json_rpc_provider_1", "StaticJsonRpcProvider", "_super", "__extends", "network", "_a", "UrlJsonRpcProvider", "apiKey", "_this", "_newTarget", "connection", "key", "address", "require_alchemy_provider", "__commonJSMin", "exports", "properties_1", "formatter_1", "websocket_provider_1", "logger_1", "_version_1", "logger", "url_json_rpc_provider_1", "defaultApiKey", "AlchemyWebSocketProvider", "_super", "__extends", "network", "apiKey", "_this", "provider", "AlchemyProvider", "url", "host", "attempt", "formatter_1", "url_json_rpc_provider_1", "logger_1", "_version_1", "logger", "defaultApiKey", "getHost", "name", "AnkrProvider", "_super", "__extends", "apiKey", "network", "connection", "attempt", "url", "exports", "require_cloudflare_provider", "__commonJSMin", "exports", "url_json_rpc_provider_1", "logger_1", "_version_1", "logger", "CloudflareProvider", "_super", "__extends", "apiKey", "network", "host", "method", "params", "block", "_a", "require_etherscan_provider", "__commonJSMin", "exports", "bytes_1", "properties_1", "transactions_1", "web_1", "formatter_1", "logger_1", "_version_1", "logger", "base_provider_1", "getTransactionPostData", "transaction", "result", "key", "value", "set", "getResult", "error", "getJsonResult", "checkLogTag", "blockTag", "checkError", "method", "e", "data", "message", "EtherscanProvider", "_super", "__extends", "network", "apiKey", "_this", "module", "params", "query", "accum", "post", "url", "payload", "procFunc", "connection", "attempt", "payloadStr", "_a", "postData", "_c", "error_1", "error_2", "args", "topic0", "logs", "blocks", "i", "log", "block", "_b", "addressOrName", "startBlock", "endBlock", "tx", "item", "require_fallback_provider", "__commonJSMin", "exports", "abstract_provider_1", "bignumber_1", "bytes_1", "properties_1", "random_1", "web_1", "base_provider_1", "formatter_1", "logger_1", "_version_1", "logger", "now", "checkNetworks", "networks", "result", "i", "network", "median", "values", "maxDelta", "middle", "a", "b", "serialize", "value", "keys", "key", "v", "nextRid", "stall", "duration", "cancel", "timer", "promise", "resolve", "wait", "func", "getPromise", "ForwardErrors", "ForwardProperties", "exposeDebugConfig", "config", "normalizedTally", "normalize", "quorum", "configs", "tally", "c", "check", "getProcessFunc", "provider", "method", "params", "blockNumber", "tx", "block", "waitForSync", "reject", "getRunner", "currentBlockNumber", "_a", "_b", "filter", "FallbackProvider", "_super", "__extends", "providers", "_this", "providerConfigs", "configOrProvider", "index", "stallTimeout", "priority", "weight", "total", "accum", "networkOrReady", "error", "results", "i_1", "processFunc", "first", "t0", "inflightWeight", "rid", "this_1", "waiting", "errors", "code", "errorCode", "e", "props", "name", "require_ipc_provider", "__commonJSMin", "exports", "net_1", "properties_1", "logger_1", "_version_1", "logger", "json_rpc_provider_1", "IpcProvider", "_super", "__extends", "path", "network", "_this", "method", "params", "payload", "resolve", "reject", "response", "stream", "data", "error", "require_infura_provider", "__commonJSMin", "exports", "properties_1", "websocket_provider_1", "formatter_1", "logger_1", "_version_1", "logger", "url_json_rpc_provider_1", "defaultProjectId", "InfuraWebSocketProvider", "_super", "__extends", "network", "apiKey", "_this", "provider", "InfuraProvider", "connection", "url", "apiKeyObj", "host", "attempt", "properties_1", "web_1", "json_rpc_provider_1", "JsonRpcBatchProvider", "_super", "__extends", "method", "params", "_this", "request", "inflightRequest", "promise", "resolve", "reject", "batch", "inflight", "result", "index", "payload", "error", "exports", "require_nodesmith_provider", "__commonJSMin", "exports", "url_json_rpc_provider_1", "logger_1", "_version_1", "logger", "defaultApiKey", "NodesmithProvider", "_super", "__extends", "apiKey", "network", "host", "require_pocket_provider", "__commonJSMin", "exports", "logger_1", "_version_1", "logger", "url_json_rpc_provider_1", "defaultApplicationId", "PocketProvider", "_super", "__extends", "apiKey", "apiKeyObj", "network", "host", "url", "connection", "require_web3_provider", "__commonJSMin", "exports", "properties_1", "logger_1", "_version_1", "logger", "json_rpc_provider_1", "_nextId", "buildWeb3LegacyFetcher", "provider", "sendFunc", "fetcher", "method", "params", "_this", "request", "resolve", "reject", "error", "response", "error_1", "buildEip1193Fetcher", "Web3Provider", "_super", "__extends", "network", "path", "jsonRpcFetchFunc", "subprovider", "require_lib", "__commonJSMin", "exports", "abstract_provider_1", "networks_1", "base_provider_1", "alchemy_provider_1", "ankr_provider_1", "cloudflare_provider_1", "etherscan_provider_1", "fallback_provider_1", "ipc_provider_1", "infura_provider_1", "json_rpc_provider_1", "json_rpc_batch_provider_1", "nodesmith_provider_1", "pocket_provider_1", "url_json_rpc_provider_1", "web3_provider_1", "websocket_provider_1", "formatter_1", "logger_1", "_version_1", "logger", "getDefaultProvider", "network", "options", "match", "exports", "require_lib", "__commonJSMin", "exports", "bignumber_1", "bytes_1", "keccak256_1", "sha2_1", "strings_1", "regexBytes", "regexNumber", "regexArray", "Zeros", "logger_1", "_version_1", "logger", "_pack", "type", "value", "isArray", "match", "size", "baseType_1", "count", "result_1", "pack", "types", "values", "tight", "index", "keccak256", "sha256", "exports", "require_lib", "__commonJSMin", "exports", "bignumber_1", "logger_1", "_version_1", "logger", "names", "commify", "value", "comps", "whole", "negative", "suffix", "formatted", "index", "formatUnits", "unitName", "parseUnits", "formatEther", "wei", "parseEther", "ether", "require_utils", "__commonJSMin", "exports", "abi_1", "address_1", "base64", "__importStar", "basex_1", "bytes_1", "hash_1", "hdnode_1", "json_wallets_1", "keccak256_1", "logger_1", "sha2_1", "solidity_1", "random_1", "properties_1", "RLP", "signing_key_1", "strings_1", "transactions_1", "units_1", "wallet_1", "web_1", "sha2_2", "strings_2", "exports", "require_ethers", "__commonJSMin", "exports", "contracts_1", "bignumber_1", "abstract_signer_1", "wallet_1", "constants", "__importStar", "providers", "providers_1", "wordlists_1", "utils", "logger_1", "_version_1", "logger", "require_lib", "__commonJSMin", "exports", "ethers", "__importStar", "anyGlobal", "ethers_1", "src_exports", "__export", "getAddress", "getKeystore", "getWallet", "__toCommonJS", "import_ethers", "mnemonic", "keystoreString"] +} diff --git a/common/ethers-ledger-signer/dist/index.js b/common/ethers-ledger-signer/dist/index.js new file mode 100644 index 000000000..4671667ba --- /dev/null +++ b/common/ethers-ledger-signer/dist/index.js @@ -0,0 +1,29 @@ +"use strict";var uD=Object.create;var xc=Object.defineProperty;var iD=Object.getOwnPropertyDescriptor;var oD=Object.getOwnPropertyNames;var sD=Object.getPrototypeOf,ED=Object.prototype.hasOwnProperty;var BD=(A,a,e)=>a in A?xc(A,a,{enumerable:!0,configurable:!0,writable:!0,value:e}):A[a]=e;var U=(A,a)=>()=>(a||A((a={exports:{}}).exports,a),a.exports),hD=(A,a)=>{for(var e in a)xc(A,e,{get:a[e],enumerable:!0})},ql=(A,a,e,f)=>{if(a&&typeof a=="object"||typeof a=="function")for(let c of oD(a))!ED.call(A,c)&&c!==e&&xc(A,c,{get:()=>a[c],enumerable:!(f=iD(a,c))||f.enumerable});return A};var l8=(A,a,e)=>(e=A!=null?uD(sD(A)):{},ql(a||!A||!A.__esModule?xc(e,"default",{value:A,enumerable:!0}):e,A)),CD=A=>ql(xc({},"__esModule",{value:!0}),A);var pc=(A,a,e)=>(BD(A,typeof a!="symbol"?a+"":a,e),e);var jl=U((zl,O6)=>{(function(A,a){"use strict";function e(h,u){if(!h)throw new Error(u||"Assertion failed")}function f(h,u){h.super_=u;var o=function(){};o.prototype=u.prototype,h.prototype=new o,h.prototype.constructor=h}function c(h,u,o){if(c.isBN(h))return h;this.negative=0,this.words=null,this.length=0,this.red=null,h!==null&&((u==="le"||u==="be")&&(o=u,u=10),this._init(h||0,u||10,o||"be"))}typeof A=="object"?A.exports=c:a.BN=c,c.BN=c,c.wordSize=26;var d;try{typeof window<"u"&&typeof window.Buffer<"u"?d=window.Buffer:d=require("buffer").Buffer}catch{}c.isBN=function(u){return u instanceof c?!0:u!==null&&typeof u=="object"&&u.constructor.wordSize===c.wordSize&&Array.isArray(u.words)},c.max=function(u,o){return u.cmp(o)>0?u:o},c.min=function(u,o){return u.cmp(o)<0?u:o},c.prototype._init=function(u,o,C){if(typeof u=="number")return this._initNumber(u,o,C);if(typeof u=="object")return this._initArray(u,o,C);o==="hex"&&(o=16),e(o===(o|0)&&o>=2&&o<=36),u=u.toString().replace(/\s+/g,"");var m=0;u[0]==="-"&&(m++,this.negative=1),m=0;m-=3)i=u[m]|u[m-1]<<8|u[m-2]<<16,this.words[g]|=i<>>26-I&67108863,I+=24,I>=26&&(I-=26,g++);else if(C==="le")for(m=0,g=0;m>>26-I&67108863,I+=24,I>=26&&(I-=26,g++);return this._strip()};function b(h,u){var o=h.charCodeAt(u);if(o>=48&&o<=57)return o-48;if(o>=65&&o<=70)return o-55;if(o>=97&&o<=102)return o-87;e(!1,"Invalid character in "+h)}function r(h,u,o){var C=b(h,o);return o-1>=u&&(C|=b(h,o-1)<<4),C}c.prototype._parseHex=function(u,o,C){this.length=Math.ceil((u.length-o)/6),this.words=new Array(this.length);for(var m=0;m=o;m-=2)I=r(u,o,m)<=18?(g-=18,i+=1,this.words[i]|=I>>>26):g+=8;else{var R=u.length-o;for(m=R%2===0?o+1:o;m=18?(g-=18,i+=1,this.words[i]|=I>>>26):g+=8}this._strip()};function n(h,u,o,C){for(var m=0,g=0,i=Math.min(h.length,o),I=u;I=49?g=R-49+10:R>=17?g=R-17+10:g=R,e(R>=0&&g1&&this.words[this.length-1]===0;)this.length--;return this._normSign()},c.prototype._normSign=function(){return this.length===1&&this.words[0]===0&&(this.negative=0),this},typeof Symbol<"u"&&typeof Symbol.for=="function")try{c.prototype[Symbol.for("nodejs.util.inspect.custom")]=t}catch{c.prototype.inspect=t}else c.prototype.inspect=t;function t(){return(this.red?""}var B=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],x=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],p=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];c.prototype.toString=function(u,o){u=u||10,o=o|0||1;var C;if(u===16||u==="hex"){C="";for(var m=0,g=0,i=0;i>>24-m&16777215,m+=2,m>=26&&(m-=26,i--),g!==0||i!==this.length-1?C=B[6-R.length]+R+C:C=R+C}for(g!==0&&(C=g.toString(16)+C);C.length%o!==0;)C="0"+C;return this.negative!==0&&(C="-"+C),C}if(u===(u|0)&&u>=2&&u<=36){var s=x[u],F=p[u];C="";var ee=this.clone();for(ee.negative=0;!ee.isZero();){var T=ee.modrn(F).toString(u);ee=ee.idivn(F),ee.isZero()?C=T+C:C=B[s-T.length]+T+C}for(this.isZero()&&(C="0"+C);C.length%o!==0;)C="0"+C;return this.negative!==0&&(C="-"+C),C}e(!1,"Base should be between 2 and 36")},c.prototype.toNumber=function(){var u=this.words[0];return this.length===2?u+=this.words[1]*67108864:this.length===3&&this.words[2]===1?u+=4503599627370496+this.words[1]*67108864:this.length>2&&e(!1,"Number can only safely store up to 53 bits"),this.negative!==0?-u:u},c.prototype.toJSON=function(){return this.toString(16,2)},d&&(c.prototype.toBuffer=function(u,o){return this.toArrayLike(d,u,o)}),c.prototype.toArray=function(u,o){return this.toArrayLike(Array,u,o)};var w=function(u,o){return u.allocUnsafe?u.allocUnsafe(o):new u(o)};c.prototype.toArrayLike=function(u,o,C){this._strip();var m=this.byteLength(),g=C||Math.max(1,m);e(m<=g,"byte array longer than desired length"),e(g>0,"Requested array length <= 0");var i=w(u,g),I=o==="le"?"LE":"BE";return this["_toArrayLike"+I](i,m),i},c.prototype._toArrayLikeLE=function(u,o){for(var C=0,m=0,g=0,i=0;g>8&255),C>16&255),i===6?(C>24&255),m=0,i=0):(m=I>>>24,i+=2)}if(C=0&&(u[C--]=I>>8&255),C>=0&&(u[C--]=I>>16&255),i===6?(C>=0&&(u[C--]=I>>24&255),m=0,i=0):(m=I>>>24,i+=2)}if(C>=0)for(u[C--]=m;C>=0;)u[C--]=0},Math.clz32?c.prototype._countBits=function(u){return 32-Math.clz32(u)}:c.prototype._countBits=function(u){var o=u,C=0;return o>=4096&&(C+=13,o>>>=13),o>=64&&(C+=7,o>>>=7),o>=8&&(C+=4,o>>>=4),o>=2&&(C+=2,o>>>=2),C+o},c.prototype._zeroBits=function(u){if(u===0)return 26;var o=u,C=0;return(o&8191)===0&&(C+=13,o>>>=13),(o&127)===0&&(C+=7,o>>>=7),(o&15)===0&&(C+=4,o>>>=4),(o&3)===0&&(C+=2,o>>>=2),(o&1)===0&&C++,C},c.prototype.bitLength=function(){var u=this.words[this.length-1],o=this._countBits(u);return(this.length-1)*26+o};function y(h){for(var u=new Array(h.bitLength()),o=0;o>>m&1}return u}c.prototype.zeroBits=function(){if(this.isZero())return 0;for(var u=0,o=0;ou.length?this.clone().ior(u):u.clone().ior(this)},c.prototype.uor=function(u){return this.length>u.length?this.clone().iuor(u):u.clone().iuor(this)},c.prototype.iuand=function(u){var o;this.length>u.length?o=u:o=this;for(var C=0;Cu.length?this.clone().iand(u):u.clone().iand(this)},c.prototype.uand=function(u){return this.length>u.length?this.clone().iuand(u):u.clone().iuand(this)},c.prototype.iuxor=function(u){var o,C;this.length>u.length?(o=this,C=u):(o=u,C=this);for(var m=0;mu.length?this.clone().ixor(u):u.clone().ixor(this)},c.prototype.uxor=function(u){return this.length>u.length?this.clone().iuxor(u):u.clone().iuxor(this)},c.prototype.inotn=function(u){e(typeof u=="number"&&u>=0);var o=Math.ceil(u/26)|0,C=u%26;this._expand(o),C>0&&o--;for(var m=0;m0&&(this.words[m]=~this.words[m]&67108863>>26-C),this._strip()},c.prototype.notn=function(u){return this.clone().inotn(u)},c.prototype.setn=function(u,o){e(typeof u=="number"&&u>=0);var C=u/26|0,m=u%26;return this._expand(C+1),o?this.words[C]=this.words[C]|1<u.length?(C=this,m=u):(C=u,m=this);for(var g=0,i=0;i>>26;for(;g!==0&&i>>26;if(this.length=C.length,g!==0)this.words[this.length]=g,this.length++;else if(C!==this)for(;iu.length?this.clone().iadd(u):u.clone().iadd(this)},c.prototype.isub=function(u){if(u.negative!==0){u.negative=0;var o=this.iadd(u);return u.negative=1,o._normSign()}else if(this.negative!==0)return this.negative=0,this.iadd(u),this.negative=1,this._normSign();var C=this.cmp(u);if(C===0)return this.negative=0,this.length=1,this.words[0]=0,this;var m,g;C>0?(m=this,g=u):(m=u,g=this);for(var i=0,I=0;I>26,this.words[I]=o&67108863;for(;i!==0&&I>26,this.words[I]=o&67108863;if(i===0&&I>>26,ee=R&67108863,T=Math.min(s,u.length-1),J=Math.max(0,s-h.length+1);J<=T;J++){var W=s-J|0;m=h.words[W]|0,g=u.words[J]|0,i=m*g+ee,F+=i/67108864|0,ee=i&67108863}o.words[s]=ee|0,R=F|0}return R!==0?o.words[s]=R|0:o.length--,o._strip()}var Q=function(u,o,C){var m=u.words,g=o.words,i=C.words,I=0,R,s,F,ee=m[0]|0,T=ee&8191,J=ee>>>13,W=m[1]|0,Ae=W&8191,S=W>>>13,M=m[2]|0,v=M&8191,O=M>>>13,K=m[3]|0,G=K&8191,X=K>>>13,j=m[4]|0,Y=j&8191,$=j>>>13,fe=m[5]|0,ae=fe&8191,be=fe>>>13,oe=m[6]|0,re=oe&8191,ue=oe>>>13,l0=m[7]|0,ne=l0&8191,te=l0>>>13,s0=m[8]|0,Fe=s0&8191,De=s0>>>13,wa=m[9]|0,he=wa&8191,Ie=wa>>>13,I0=g[0]|0,Be=I0&8191,ie=I0>>>13,G2=g[1]|0,pe=G2&8191,Te=G2>>>13,P2=g[2]|0,we=P2&8191,Re=P2>>>13,V2=g[3]|0,Se=V2&8191,ve=V2>>>13,L2=g[4]|0,ke=L2&8191,Qe=L2>>>13,J2=g[5]|0,ye=J2&8191,Me=J2>>>13,H2=g[6]|0,Ue=H2&8191,Ne=H2>>>13,Z2=g[7]|0,Oe=Z2&8191,Ge=Z2>>>13,Y2=g[8]|0,Pe=Y2&8191,Ve=Y2>>>13,m2=g[9]|0,n0=m2&8191,t0=m2>>>13;C.negative=u.negative^o.negative,C.length=19,R=Math.imul(T,Be),s=Math.imul(T,ie),s=s+Math.imul(J,Be)|0,F=Math.imul(J,ie);var Xa=(I+R|0)+((s&8191)<<13)|0;I=(F+(s>>>13)|0)+(Xa>>>26)|0,Xa&=67108863,R=Math.imul(Ae,Be),s=Math.imul(Ae,ie),s=s+Math.imul(S,Be)|0,F=Math.imul(S,ie),R=R+Math.imul(T,pe)|0,s=s+Math.imul(T,Te)|0,s=s+Math.imul(J,pe)|0,F=F+Math.imul(J,Te)|0;var Wa=(I+R|0)+((s&8191)<<13)|0;I=(F+(s>>>13)|0)+(Wa>>>26)|0,Wa&=67108863,R=Math.imul(v,Be),s=Math.imul(v,ie),s=s+Math.imul(O,Be)|0,F=Math.imul(O,ie),R=R+Math.imul(Ae,pe)|0,s=s+Math.imul(Ae,Te)|0,s=s+Math.imul(S,pe)|0,F=F+Math.imul(S,Te)|0,R=R+Math.imul(T,we)|0,s=s+Math.imul(T,Re)|0,s=s+Math.imul(J,we)|0,F=F+Math.imul(J,Re)|0;var Ka=(I+R|0)+((s&8191)<<13)|0;I=(F+(s>>>13)|0)+(Ka>>>26)|0,Ka&=67108863,R=Math.imul(G,Be),s=Math.imul(G,ie),s=s+Math.imul(X,Be)|0,F=Math.imul(X,ie),R=R+Math.imul(v,pe)|0,s=s+Math.imul(v,Te)|0,s=s+Math.imul(O,pe)|0,F=F+Math.imul(O,Te)|0,R=R+Math.imul(Ae,we)|0,s=s+Math.imul(Ae,Re)|0,s=s+Math.imul(S,we)|0,F=F+Math.imul(S,Re)|0,R=R+Math.imul(T,Se)|0,s=s+Math.imul(T,ve)|0,s=s+Math.imul(J,Se)|0,F=F+Math.imul(J,ve)|0;var qa=(I+R|0)+((s&8191)<<13)|0;I=(F+(s>>>13)|0)+(qa>>>26)|0,qa&=67108863,R=Math.imul(Y,Be),s=Math.imul(Y,ie),s=s+Math.imul($,Be)|0,F=Math.imul($,ie),R=R+Math.imul(G,pe)|0,s=s+Math.imul(G,Te)|0,s=s+Math.imul(X,pe)|0,F=F+Math.imul(X,Te)|0,R=R+Math.imul(v,we)|0,s=s+Math.imul(v,Re)|0,s=s+Math.imul(O,we)|0,F=F+Math.imul(O,Re)|0,R=R+Math.imul(Ae,Se)|0,s=s+Math.imul(Ae,ve)|0,s=s+Math.imul(S,Se)|0,F=F+Math.imul(S,ve)|0,R=R+Math.imul(T,ke)|0,s=s+Math.imul(T,Qe)|0,s=s+Math.imul(J,ke)|0,F=F+Math.imul(J,Qe)|0;var za=(I+R|0)+((s&8191)<<13)|0;I=(F+(s>>>13)|0)+(za>>>26)|0,za&=67108863,R=Math.imul(ae,Be),s=Math.imul(ae,ie),s=s+Math.imul(be,Be)|0,F=Math.imul(be,ie),R=R+Math.imul(Y,pe)|0,s=s+Math.imul(Y,Te)|0,s=s+Math.imul($,pe)|0,F=F+Math.imul($,Te)|0,R=R+Math.imul(G,we)|0,s=s+Math.imul(G,Re)|0,s=s+Math.imul(X,we)|0,F=F+Math.imul(X,Re)|0,R=R+Math.imul(v,Se)|0,s=s+Math.imul(v,ve)|0,s=s+Math.imul(O,Se)|0,F=F+Math.imul(O,ve)|0,R=R+Math.imul(Ae,ke)|0,s=s+Math.imul(Ae,Qe)|0,s=s+Math.imul(S,ke)|0,F=F+Math.imul(S,Qe)|0,R=R+Math.imul(T,ye)|0,s=s+Math.imul(T,Me)|0,s=s+Math.imul(J,ye)|0,F=F+Math.imul(J,Me)|0;var Vf=(I+R|0)+((s&8191)<<13)|0;I=(F+(s>>>13)|0)+(Vf>>>26)|0,Vf&=67108863,R=Math.imul(re,Be),s=Math.imul(re,ie),s=s+Math.imul(ue,Be)|0,F=Math.imul(ue,ie),R=R+Math.imul(ae,pe)|0,s=s+Math.imul(ae,Te)|0,s=s+Math.imul(be,pe)|0,F=F+Math.imul(be,Te)|0,R=R+Math.imul(Y,we)|0,s=s+Math.imul(Y,Re)|0,s=s+Math.imul($,we)|0,F=F+Math.imul($,Re)|0,R=R+Math.imul(G,Se)|0,s=s+Math.imul(G,ve)|0,s=s+Math.imul(X,Se)|0,F=F+Math.imul(X,ve)|0,R=R+Math.imul(v,ke)|0,s=s+Math.imul(v,Qe)|0,s=s+Math.imul(O,ke)|0,F=F+Math.imul(O,Qe)|0,R=R+Math.imul(Ae,ye)|0,s=s+Math.imul(Ae,Me)|0,s=s+Math.imul(S,ye)|0,F=F+Math.imul(S,Me)|0,R=R+Math.imul(T,Ue)|0,s=s+Math.imul(T,Ne)|0,s=s+Math.imul(J,Ue)|0,F=F+Math.imul(J,Ne)|0;var Lf=(I+R|0)+((s&8191)<<13)|0;I=(F+(s>>>13)|0)+(Lf>>>26)|0,Lf&=67108863,R=Math.imul(ne,Be),s=Math.imul(ne,ie),s=s+Math.imul(te,Be)|0,F=Math.imul(te,ie),R=R+Math.imul(re,pe)|0,s=s+Math.imul(re,Te)|0,s=s+Math.imul(ue,pe)|0,F=F+Math.imul(ue,Te)|0,R=R+Math.imul(ae,we)|0,s=s+Math.imul(ae,Re)|0,s=s+Math.imul(be,we)|0,F=F+Math.imul(be,Re)|0,R=R+Math.imul(Y,Se)|0,s=s+Math.imul(Y,ve)|0,s=s+Math.imul($,Se)|0,F=F+Math.imul($,ve)|0,R=R+Math.imul(G,ke)|0,s=s+Math.imul(G,Qe)|0,s=s+Math.imul(X,ke)|0,F=F+Math.imul(X,Qe)|0,R=R+Math.imul(v,ye)|0,s=s+Math.imul(v,Me)|0,s=s+Math.imul(O,ye)|0,F=F+Math.imul(O,Me)|0,R=R+Math.imul(Ae,Ue)|0,s=s+Math.imul(Ae,Ne)|0,s=s+Math.imul(S,Ue)|0,F=F+Math.imul(S,Ne)|0,R=R+Math.imul(T,Oe)|0,s=s+Math.imul(T,Ge)|0,s=s+Math.imul(J,Oe)|0,F=F+Math.imul(J,Ge)|0;var Jf=(I+R|0)+((s&8191)<<13)|0;I=(F+(s>>>13)|0)+(Jf>>>26)|0,Jf&=67108863,R=Math.imul(Fe,Be),s=Math.imul(Fe,ie),s=s+Math.imul(De,Be)|0,F=Math.imul(De,ie),R=R+Math.imul(ne,pe)|0,s=s+Math.imul(ne,Te)|0,s=s+Math.imul(te,pe)|0,F=F+Math.imul(te,Te)|0,R=R+Math.imul(re,we)|0,s=s+Math.imul(re,Re)|0,s=s+Math.imul(ue,we)|0,F=F+Math.imul(ue,Re)|0,R=R+Math.imul(ae,Se)|0,s=s+Math.imul(ae,ve)|0,s=s+Math.imul(be,Se)|0,F=F+Math.imul(be,ve)|0,R=R+Math.imul(Y,ke)|0,s=s+Math.imul(Y,Qe)|0,s=s+Math.imul($,ke)|0,F=F+Math.imul($,Qe)|0,R=R+Math.imul(G,ye)|0,s=s+Math.imul(G,Me)|0,s=s+Math.imul(X,ye)|0,F=F+Math.imul(X,Me)|0,R=R+Math.imul(v,Ue)|0,s=s+Math.imul(v,Ne)|0,s=s+Math.imul(O,Ue)|0,F=F+Math.imul(O,Ne)|0,R=R+Math.imul(Ae,Oe)|0,s=s+Math.imul(Ae,Ge)|0,s=s+Math.imul(S,Oe)|0,F=F+Math.imul(S,Ge)|0,R=R+Math.imul(T,Pe)|0,s=s+Math.imul(T,Ve)|0,s=s+Math.imul(J,Pe)|0,F=F+Math.imul(J,Ve)|0;var Hf=(I+R|0)+((s&8191)<<13)|0;I=(F+(s>>>13)|0)+(Hf>>>26)|0,Hf&=67108863,R=Math.imul(he,Be),s=Math.imul(he,ie),s=s+Math.imul(Ie,Be)|0,F=Math.imul(Ie,ie),R=R+Math.imul(Fe,pe)|0,s=s+Math.imul(Fe,Te)|0,s=s+Math.imul(De,pe)|0,F=F+Math.imul(De,Te)|0,R=R+Math.imul(ne,we)|0,s=s+Math.imul(ne,Re)|0,s=s+Math.imul(te,we)|0,F=F+Math.imul(te,Re)|0,R=R+Math.imul(re,Se)|0,s=s+Math.imul(re,ve)|0,s=s+Math.imul(ue,Se)|0,F=F+Math.imul(ue,ve)|0,R=R+Math.imul(ae,ke)|0,s=s+Math.imul(ae,Qe)|0,s=s+Math.imul(be,ke)|0,F=F+Math.imul(be,Qe)|0,R=R+Math.imul(Y,ye)|0,s=s+Math.imul(Y,Me)|0,s=s+Math.imul($,ye)|0,F=F+Math.imul($,Me)|0,R=R+Math.imul(G,Ue)|0,s=s+Math.imul(G,Ne)|0,s=s+Math.imul(X,Ue)|0,F=F+Math.imul(X,Ne)|0,R=R+Math.imul(v,Oe)|0,s=s+Math.imul(v,Ge)|0,s=s+Math.imul(O,Oe)|0,F=F+Math.imul(O,Ge)|0,R=R+Math.imul(Ae,Pe)|0,s=s+Math.imul(Ae,Ve)|0,s=s+Math.imul(S,Pe)|0,F=F+Math.imul(S,Ve)|0,R=R+Math.imul(T,n0)|0,s=s+Math.imul(T,t0)|0,s=s+Math.imul(J,n0)|0,F=F+Math.imul(J,t0)|0;var Zf=(I+R|0)+((s&8191)<<13)|0;I=(F+(s>>>13)|0)+(Zf>>>26)|0,Zf&=67108863,R=Math.imul(he,pe),s=Math.imul(he,Te),s=s+Math.imul(Ie,pe)|0,F=Math.imul(Ie,Te),R=R+Math.imul(Fe,we)|0,s=s+Math.imul(Fe,Re)|0,s=s+Math.imul(De,we)|0,F=F+Math.imul(De,Re)|0,R=R+Math.imul(ne,Se)|0,s=s+Math.imul(ne,ve)|0,s=s+Math.imul(te,Se)|0,F=F+Math.imul(te,ve)|0,R=R+Math.imul(re,ke)|0,s=s+Math.imul(re,Qe)|0,s=s+Math.imul(ue,ke)|0,F=F+Math.imul(ue,Qe)|0,R=R+Math.imul(ae,ye)|0,s=s+Math.imul(ae,Me)|0,s=s+Math.imul(be,ye)|0,F=F+Math.imul(be,Me)|0,R=R+Math.imul(Y,Ue)|0,s=s+Math.imul(Y,Ne)|0,s=s+Math.imul($,Ue)|0,F=F+Math.imul($,Ne)|0,R=R+Math.imul(G,Oe)|0,s=s+Math.imul(G,Ge)|0,s=s+Math.imul(X,Oe)|0,F=F+Math.imul(X,Ge)|0,R=R+Math.imul(v,Pe)|0,s=s+Math.imul(v,Ve)|0,s=s+Math.imul(O,Pe)|0,F=F+Math.imul(O,Ve)|0,R=R+Math.imul(Ae,n0)|0,s=s+Math.imul(Ae,t0)|0,s=s+Math.imul(S,n0)|0,F=F+Math.imul(S,t0)|0;var Yf=(I+R|0)+((s&8191)<<13)|0;I=(F+(s>>>13)|0)+(Yf>>>26)|0,Yf&=67108863,R=Math.imul(he,we),s=Math.imul(he,Re),s=s+Math.imul(Ie,we)|0,F=Math.imul(Ie,Re),R=R+Math.imul(Fe,Se)|0,s=s+Math.imul(Fe,ve)|0,s=s+Math.imul(De,Se)|0,F=F+Math.imul(De,ve)|0,R=R+Math.imul(ne,ke)|0,s=s+Math.imul(ne,Qe)|0,s=s+Math.imul(te,ke)|0,F=F+Math.imul(te,Qe)|0,R=R+Math.imul(re,ye)|0,s=s+Math.imul(re,Me)|0,s=s+Math.imul(ue,ye)|0,F=F+Math.imul(ue,Me)|0,R=R+Math.imul(ae,Ue)|0,s=s+Math.imul(ae,Ne)|0,s=s+Math.imul(be,Ue)|0,F=F+Math.imul(be,Ne)|0,R=R+Math.imul(Y,Oe)|0,s=s+Math.imul(Y,Ge)|0,s=s+Math.imul($,Oe)|0,F=F+Math.imul($,Ge)|0,R=R+Math.imul(G,Pe)|0,s=s+Math.imul(G,Ve)|0,s=s+Math.imul(X,Pe)|0,F=F+Math.imul(X,Ve)|0,R=R+Math.imul(v,n0)|0,s=s+Math.imul(v,t0)|0,s=s+Math.imul(O,n0)|0,F=F+Math.imul(O,t0)|0;var Xf=(I+R|0)+((s&8191)<<13)|0;I=(F+(s>>>13)|0)+(Xf>>>26)|0,Xf&=67108863,R=Math.imul(he,Se),s=Math.imul(he,ve),s=s+Math.imul(Ie,Se)|0,F=Math.imul(Ie,ve),R=R+Math.imul(Fe,ke)|0,s=s+Math.imul(Fe,Qe)|0,s=s+Math.imul(De,ke)|0,F=F+Math.imul(De,Qe)|0,R=R+Math.imul(ne,ye)|0,s=s+Math.imul(ne,Me)|0,s=s+Math.imul(te,ye)|0,F=F+Math.imul(te,Me)|0,R=R+Math.imul(re,Ue)|0,s=s+Math.imul(re,Ne)|0,s=s+Math.imul(ue,Ue)|0,F=F+Math.imul(ue,Ne)|0,R=R+Math.imul(ae,Oe)|0,s=s+Math.imul(ae,Ge)|0,s=s+Math.imul(be,Oe)|0,F=F+Math.imul(be,Ge)|0,R=R+Math.imul(Y,Pe)|0,s=s+Math.imul(Y,Ve)|0,s=s+Math.imul($,Pe)|0,F=F+Math.imul($,Ve)|0,R=R+Math.imul(G,n0)|0,s=s+Math.imul(G,t0)|0,s=s+Math.imul(X,n0)|0,F=F+Math.imul(X,t0)|0;var Wf=(I+R|0)+((s&8191)<<13)|0;I=(F+(s>>>13)|0)+(Wf>>>26)|0,Wf&=67108863,R=Math.imul(he,ke),s=Math.imul(he,Qe),s=s+Math.imul(Ie,ke)|0,F=Math.imul(Ie,Qe),R=R+Math.imul(Fe,ye)|0,s=s+Math.imul(Fe,Me)|0,s=s+Math.imul(De,ye)|0,F=F+Math.imul(De,Me)|0,R=R+Math.imul(ne,Ue)|0,s=s+Math.imul(ne,Ne)|0,s=s+Math.imul(te,Ue)|0,F=F+Math.imul(te,Ne)|0,R=R+Math.imul(re,Oe)|0,s=s+Math.imul(re,Ge)|0,s=s+Math.imul(ue,Oe)|0,F=F+Math.imul(ue,Ge)|0,R=R+Math.imul(ae,Pe)|0,s=s+Math.imul(ae,Ve)|0,s=s+Math.imul(be,Pe)|0,F=F+Math.imul(be,Ve)|0,R=R+Math.imul(Y,n0)|0,s=s+Math.imul(Y,t0)|0,s=s+Math.imul($,n0)|0,F=F+Math.imul($,t0)|0;var Kf=(I+R|0)+((s&8191)<<13)|0;I=(F+(s>>>13)|0)+(Kf>>>26)|0,Kf&=67108863,R=Math.imul(he,ye),s=Math.imul(he,Me),s=s+Math.imul(Ie,ye)|0,F=Math.imul(Ie,Me),R=R+Math.imul(Fe,Ue)|0,s=s+Math.imul(Fe,Ne)|0,s=s+Math.imul(De,Ue)|0,F=F+Math.imul(De,Ne)|0,R=R+Math.imul(ne,Oe)|0,s=s+Math.imul(ne,Ge)|0,s=s+Math.imul(te,Oe)|0,F=F+Math.imul(te,Ge)|0,R=R+Math.imul(re,Pe)|0,s=s+Math.imul(re,Ve)|0,s=s+Math.imul(ue,Pe)|0,F=F+Math.imul(ue,Ve)|0,R=R+Math.imul(ae,n0)|0,s=s+Math.imul(ae,t0)|0,s=s+Math.imul(be,n0)|0,F=F+Math.imul(be,t0)|0;var qf=(I+R|0)+((s&8191)<<13)|0;I=(F+(s>>>13)|0)+(qf>>>26)|0,qf&=67108863,R=Math.imul(he,Ue),s=Math.imul(he,Ne),s=s+Math.imul(Ie,Ue)|0,F=Math.imul(Ie,Ne),R=R+Math.imul(Fe,Oe)|0,s=s+Math.imul(Fe,Ge)|0,s=s+Math.imul(De,Oe)|0,F=F+Math.imul(De,Ge)|0,R=R+Math.imul(ne,Pe)|0,s=s+Math.imul(ne,Ve)|0,s=s+Math.imul(te,Pe)|0,F=F+Math.imul(te,Ve)|0,R=R+Math.imul(re,n0)|0,s=s+Math.imul(re,t0)|0,s=s+Math.imul(ue,n0)|0,F=F+Math.imul(ue,t0)|0;var zf=(I+R|0)+((s&8191)<<13)|0;I=(F+(s>>>13)|0)+(zf>>>26)|0,zf&=67108863,R=Math.imul(he,Oe),s=Math.imul(he,Ge),s=s+Math.imul(Ie,Oe)|0,F=Math.imul(Ie,Ge),R=R+Math.imul(Fe,Pe)|0,s=s+Math.imul(Fe,Ve)|0,s=s+Math.imul(De,Pe)|0,F=F+Math.imul(De,Ve)|0,R=R+Math.imul(ne,n0)|0,s=s+Math.imul(ne,t0)|0,s=s+Math.imul(te,n0)|0,F=F+Math.imul(te,t0)|0;var M6=(I+R|0)+((s&8191)<<13)|0;I=(F+(s>>>13)|0)+(M6>>>26)|0,M6&=67108863,R=Math.imul(he,Pe),s=Math.imul(he,Ve),s=s+Math.imul(Ie,Pe)|0,F=Math.imul(Ie,Ve),R=R+Math.imul(Fe,n0)|0,s=s+Math.imul(Fe,t0)|0,s=s+Math.imul(De,n0)|0,F=F+Math.imul(De,t0)|0;var U6=(I+R|0)+((s&8191)<<13)|0;I=(F+(s>>>13)|0)+(U6>>>26)|0,U6&=67108863,R=Math.imul(he,n0),s=Math.imul(he,t0),s=s+Math.imul(Ie,n0)|0,F=Math.imul(Ie,t0);var N6=(I+R|0)+((s&8191)<<13)|0;return I=(F+(s>>>13)|0)+(N6>>>26)|0,N6&=67108863,i[0]=Xa,i[1]=Wa,i[2]=Ka,i[3]=qa,i[4]=za,i[5]=Vf,i[6]=Lf,i[7]=Jf,i[8]=Hf,i[9]=Zf,i[10]=Yf,i[11]=Xf,i[12]=Wf,i[13]=Kf,i[14]=qf,i[15]=zf,i[16]=M6,i[17]=U6,i[18]=N6,I!==0&&(i[19]=I,C.length++),C};Math.imul||(Q=N);function P(h,u,o){o.negative=u.negative^h.negative,o.length=h.length+u.length;for(var C=0,m=0,g=0;g>>26)|0,m+=i>>>26,i&=67108863}o.words[g]=I,C=i,i=m}return C!==0?o.words[g]=C:o.length--,o._strip()}function V(h,u,o){return P(h,u,o)}c.prototype.mulTo=function(u,o){var C,m=this.length+u.length;return this.length===10&&u.length===10?C=Q(this,u,o):m<63?C=N(this,u,o):m<1024?C=P(this,u,o):C=V(this,u,o),C};function q(h,u){this.x=h,this.y=u}q.prototype.makeRBT=function(u){for(var o=new Array(u),C=c.prototype._countBits(u)-1,m=0;m>=1;return m},q.prototype.permute=function(u,o,C,m,g,i){for(var I=0;I>>1)g++;return 1<>>13,C[2*i+1]=g&8191,g=g>>>13;for(i=2*o;i>=26,C+=g/67108864|0,C+=i>>>26,this.words[m]=i&67108863}return C!==0&&(this.words[m]=C,this.length++),o?this.ineg():this},c.prototype.muln=function(u){return this.clone().imuln(u)},c.prototype.sqr=function(){return this.mul(this)},c.prototype.isqr=function(){return this.imul(this.clone())},c.prototype.pow=function(u){var o=y(u);if(o.length===0)return new c(1);for(var C=this,m=0;m=0);var o=u%26,C=(u-o)/26,m=67108863>>>26-o<<26-o,g;if(o!==0){var i=0;for(g=0;g>>26-o}i&&(this.words[g]=i,this.length++)}if(C!==0){for(g=this.length-1;g>=0;g--)this.words[g+C]=this.words[g];for(g=0;g=0);var m;o?m=(o-o%26)/26:m=0;var g=u%26,i=Math.min((u-g)/26,this.length),I=67108863^67108863>>>g<i)for(this.length-=i,s=0;s=0&&(F!==0||s>=m);s--){var ee=this.words[s]|0;this.words[s]=F<<26-g|ee>>>g,F=ee&I}return R&&F!==0&&(R.words[R.length++]=F),this.length===0&&(this.words[0]=0,this.length=1),this._strip()},c.prototype.ishrn=function(u,o,C){return e(this.negative===0),this.iushrn(u,o,C)},c.prototype.shln=function(u){return this.clone().ishln(u)},c.prototype.ushln=function(u){return this.clone().iushln(u)},c.prototype.shrn=function(u){return this.clone().ishrn(u)},c.prototype.ushrn=function(u){return this.clone().iushrn(u)},c.prototype.testn=function(u){e(typeof u=="number"&&u>=0);var o=u%26,C=(u-o)/26,m=1<=0);var o=u%26,C=(u-o)/26;if(e(this.negative===0,"imaskn works only with positive numbers"),this.length<=C)return this;if(o!==0&&C++,this.length=Math.min(C,this.length),o!==0){var m=67108863^67108863>>>o<=67108864;o++)this.words[o]-=67108864,o===this.length-1?this.words[o+1]=1:this.words[o+1]++;return this.length=Math.max(this.length,o+1),this},c.prototype.isubn=function(u){if(e(typeof u=="number"),e(u<67108864),u<0)return this.iaddn(-u);if(this.negative!==0)return this.negative=0,this.iaddn(u),this.negative=1,this;if(this.words[0]-=u,this.length===1&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var o=0;o>26)-(R/67108864|0),this.words[g+C]=i&67108863}for(;g>26,this.words[g+C]=i&67108863;if(I===0)return this._strip();for(e(I===-1),I=0,g=0;g>26,this.words[g]=i&67108863;return this.negative=1,this._strip()},c.prototype._wordDiv=function(u,o){var C=this.length-u.length,m=this.clone(),g=u,i=g.words[g.length-1]|0,I=this._countBits(i);C=26-I,C!==0&&(g=g.ushln(C),m.iushln(C),i=g.words[g.length-1]|0);var R=m.length-g.length,s;if(o!=="mod"){s=new c(null),s.length=R+1,s.words=new Array(s.length);for(var F=0;F=0;T--){var J=(m.words[g.length+T]|0)*67108864+(m.words[g.length+T-1]|0);for(J=Math.min(J/i|0,67108863),m._ishlnsubmul(g,J,T);m.negative!==0;)J--,m.negative=0,m._ishlnsubmul(g,1,T),m.isZero()||(m.negative^=1);s&&(s.words[T]=J)}return s&&s._strip(),m._strip(),o!=="div"&&C!==0&&m.iushrn(C),{div:s||null,mod:m}},c.prototype.divmod=function(u,o,C){if(e(!u.isZero()),this.isZero())return{div:new c(0),mod:new c(0)};var m,g,i;return this.negative!==0&&u.negative===0?(i=this.neg().divmod(u,o),o!=="mod"&&(m=i.div.neg()),o!=="div"&&(g=i.mod.neg(),C&&g.negative!==0&&g.iadd(u)),{div:m,mod:g}):this.negative===0&&u.negative!==0?(i=this.divmod(u.neg(),o),o!=="mod"&&(m=i.div.neg()),{div:m,mod:i.mod}):(this.negative&u.negative)!==0?(i=this.neg().divmod(u.neg(),o),o!=="div"&&(g=i.mod.neg(),C&&g.negative!==0&&g.isub(u)),{div:i.div,mod:g}):u.length>this.length||this.cmp(u)<0?{div:new c(0),mod:this}:u.length===1?o==="div"?{div:this.divn(u.words[0]),mod:null}:o==="mod"?{div:null,mod:new c(this.modrn(u.words[0]))}:{div:this.divn(u.words[0]),mod:new c(this.modrn(u.words[0]))}:this._wordDiv(u,o)},c.prototype.div=function(u){return this.divmod(u,"div",!1).div},c.prototype.mod=function(u){return this.divmod(u,"mod",!1).mod},c.prototype.umod=function(u){return this.divmod(u,"mod",!0).mod},c.prototype.divRound=function(u){var o=this.divmod(u);if(o.mod.isZero())return o.div;var C=o.div.negative!==0?o.mod.isub(u):o.mod,m=u.ushrn(1),g=u.andln(1),i=C.cmp(m);return i<0||g===1&&i===0?o.div:o.div.negative!==0?o.div.isubn(1):o.div.iaddn(1)},c.prototype.modrn=function(u){var o=u<0;o&&(u=-u),e(u<=67108863);for(var C=(1<<26)%u,m=0,g=this.length-1;g>=0;g--)m=(C*m+(this.words[g]|0))%u;return o?-m:m},c.prototype.modn=function(u){return this.modrn(u)},c.prototype.idivn=function(u){var o=u<0;o&&(u=-u),e(u<=67108863);for(var C=0,m=this.length-1;m>=0;m--){var g=(this.words[m]|0)+C*67108864;this.words[m]=g/u|0,C=g%u}return this._strip(),o?this.ineg():this},c.prototype.divn=function(u){return this.clone().idivn(u)},c.prototype.egcd=function(u){e(u.negative===0),e(!u.isZero());var o=this,C=u.clone();o.negative!==0?o=o.umod(u):o=o.clone();for(var m=new c(1),g=new c(0),i=new c(0),I=new c(1),R=0;o.isEven()&&C.isEven();)o.iushrn(1),C.iushrn(1),++R;for(var s=C.clone(),F=o.clone();!o.isZero();){for(var ee=0,T=1;(o.words[0]&T)===0&&ee<26;++ee,T<<=1);if(ee>0)for(o.iushrn(ee);ee-- >0;)(m.isOdd()||g.isOdd())&&(m.iadd(s),g.isub(F)),m.iushrn(1),g.iushrn(1);for(var J=0,W=1;(C.words[0]&W)===0&&J<26;++J,W<<=1);if(J>0)for(C.iushrn(J);J-- >0;)(i.isOdd()||I.isOdd())&&(i.iadd(s),I.isub(F)),i.iushrn(1),I.iushrn(1);o.cmp(C)>=0?(o.isub(C),m.isub(i),g.isub(I)):(C.isub(o),i.isub(m),I.isub(g))}return{a:i,b:I,gcd:C.iushln(R)}},c.prototype._invmp=function(u){e(u.negative===0),e(!u.isZero());var o=this,C=u.clone();o.negative!==0?o=o.umod(u):o=o.clone();for(var m=new c(1),g=new c(0),i=C.clone();o.cmpn(1)>0&&C.cmpn(1)>0;){for(var I=0,R=1;(o.words[0]&R)===0&&I<26;++I,R<<=1);if(I>0)for(o.iushrn(I);I-- >0;)m.isOdd()&&m.iadd(i),m.iushrn(1);for(var s=0,F=1;(C.words[0]&F)===0&&s<26;++s,F<<=1);if(s>0)for(C.iushrn(s);s-- >0;)g.isOdd()&&g.iadd(i),g.iushrn(1);o.cmp(C)>=0?(o.isub(C),m.isub(g)):(C.isub(o),g.isub(m))}var ee;return o.cmpn(1)===0?ee=m:ee=g,ee.cmpn(0)<0&&ee.iadd(u),ee},c.prototype.gcd=function(u){if(this.isZero())return u.abs();if(u.isZero())return this.abs();var o=this.clone(),C=u.clone();o.negative=0,C.negative=0;for(var m=0;o.isEven()&&C.isEven();m++)o.iushrn(1),C.iushrn(1);do{for(;o.isEven();)o.iushrn(1);for(;C.isEven();)C.iushrn(1);var g=o.cmp(C);if(g<0){var i=o;o=C,C=i}else if(g===0||C.cmpn(1)===0)break;o.isub(C)}while(!0);return C.iushln(m)},c.prototype.invm=function(u){return this.egcd(u).a.umod(u)},c.prototype.isEven=function(){return(this.words[0]&1)===0},c.prototype.isOdd=function(){return(this.words[0]&1)===1},c.prototype.andln=function(u){return this.words[0]&u},c.prototype.bincn=function(u){e(typeof u=="number");var o=u%26,C=(u-o)/26,m=1<>>26,I&=67108863,this.words[i]=I}return g!==0&&(this.words[i]=g,this.length++),this},c.prototype.isZero=function(){return this.length===1&&this.words[0]===0},c.prototype.cmpn=function(u){var o=u<0;if(this.negative!==0&&!o)return-1;if(this.negative===0&&o)return 1;this._strip();var C;if(this.length>1)C=1;else{o&&(u=-u),e(u<=67108863,"Number is too big");var m=this.words[0]|0;C=m===u?0:mu.length)return 1;if(this.length=0;C--){var m=this.words[C]|0,g=u.words[C]|0;if(m!==g){mg&&(o=1);break}}return o},c.prototype.gtn=function(u){return this.cmpn(u)===1},c.prototype.gt=function(u){return this.cmp(u)===1},c.prototype.gten=function(u){return this.cmpn(u)>=0},c.prototype.gte=function(u){return this.cmp(u)>=0},c.prototype.ltn=function(u){return this.cmpn(u)===-1},c.prototype.lt=function(u){return this.cmp(u)===-1},c.prototype.lten=function(u){return this.cmpn(u)<=0},c.prototype.lte=function(u){return this.cmp(u)<=0},c.prototype.eqn=function(u){return this.cmpn(u)===0},c.prototype.eq=function(u){return this.cmp(u)===0},c.red=function(u){return new E(u)},c.prototype.toRed=function(u){return e(!this.red,"Already a number in reduction context"),e(this.negative===0,"red works only with positives"),u.convertTo(this)._forceRed(u)},c.prototype.fromRed=function(){return e(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},c.prototype._forceRed=function(u){return this.red=u,this},c.prototype.forceRed=function(u){return e(!this.red,"Already a number in reduction context"),this._forceRed(u)},c.prototype.redAdd=function(u){return e(this.red,"redAdd works only with red numbers"),this.red.add(this,u)},c.prototype.redIAdd=function(u){return e(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,u)},c.prototype.redSub=function(u){return e(this.red,"redSub works only with red numbers"),this.red.sub(this,u)},c.prototype.redISub=function(u){return e(this.red,"redISub works only with red numbers"),this.red.isub(this,u)},c.prototype.redShl=function(u){return e(this.red,"redShl works only with red numbers"),this.red.shl(this,u)},c.prototype.redMul=function(u){return e(this.red,"redMul works only with red numbers"),this.red._verify2(this,u),this.red.mul(this,u)},c.prototype.redIMul=function(u){return e(this.red,"redMul works only with red numbers"),this.red._verify2(this,u),this.red.imul(this,u)},c.prototype.redSqr=function(){return e(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},c.prototype.redISqr=function(){return e(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},c.prototype.redSqrt=function(){return e(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},c.prototype.redInvm=function(){return e(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},c.prototype.redNeg=function(){return e(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},c.prototype.redPow=function(u){return e(this.red&&!u.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,u)};var _={k256:null,p224:null,p192:null,p25519:null};function Z(h,u){this.name=h,this.p=new c(u,16),this.n=this.p.bitLength(),this.k=new c(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}Z.prototype._tmp=function(){var u=new c(null);return u.words=new Array(Math.ceil(this.n/13)),u},Z.prototype.ireduce=function(u){var o=u,C;do this.split(o,this.tmp),o=this.imulK(o),o=o.iadd(this.tmp),C=o.bitLength();while(C>this.n);var m=C0?o.isub(this.p):o.strip!==void 0?o.strip():o._strip(),o},Z.prototype.split=function(u,o){u.iushrn(this.n,0,o)},Z.prototype.imulK=function(u){return u.imul(this.k)};function de(){Z.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}f(de,Z),de.prototype.split=function(u,o){for(var C=4194303,m=Math.min(u.length,9),g=0;g>>22,i=I}i>>>=22,u.words[g-10]=i,i===0&&u.length>10?u.length-=10:u.length-=9},de.prototype.imulK=function(u){u.words[u.length]=0,u.words[u.length+1]=0,u.length+=2;for(var o=0,C=0;C>>=26,u.words[C]=g,o=m}return o!==0&&(u.words[u.length++]=o),u},c._prime=function(u){if(_[u])return _[u];var o;if(u==="k256")o=new de;else if(u==="p224")o=new ce;else if(u==="p192")o=new H;else if(u==="p25519")o=new k;else throw new Error("Unknown prime "+u);return _[u]=o,o};function E(h){if(typeof h=="string"){var u=c._prime(h);this.m=u.p,this.prime=u}else e(h.gtn(1),"modulus must be greater than 1"),this.m=h,this.prime=null}E.prototype._verify1=function(u){e(u.negative===0,"red works only with positives"),e(u.red,"red works only with red numbers")},E.prototype._verify2=function(u,o){e((u.negative|o.negative)===0,"red works only with positives"),e(u.red&&u.red===o.red,"red works only with red numbers")},E.prototype.imod=function(u){return this.prime?this.prime.ireduce(u)._forceRed(this):(l(u,u.umod(this.m)._forceRed(this)),u)},E.prototype.neg=function(u){return u.isZero()?u.clone():this.m.sub(u)._forceRed(this)},E.prototype.add=function(u,o){this._verify2(u,o);var C=u.add(o);return C.cmp(this.m)>=0&&C.isub(this.m),C._forceRed(this)},E.prototype.iadd=function(u,o){this._verify2(u,o);var C=u.iadd(o);return C.cmp(this.m)>=0&&C.isub(this.m),C},E.prototype.sub=function(u,o){this._verify2(u,o);var C=u.sub(o);return C.cmpn(0)<0&&C.iadd(this.m),C._forceRed(this)},E.prototype.isub=function(u,o){this._verify2(u,o);var C=u.isub(o);return C.cmpn(0)<0&&C.iadd(this.m),C},E.prototype.shl=function(u,o){return this._verify1(u),this.imod(u.ushln(o))},E.prototype.imul=function(u,o){return this._verify2(u,o),this.imod(u.imul(o))},E.prototype.mul=function(u,o){return this._verify2(u,o),this.imod(u.mul(o))},E.prototype.isqr=function(u){return this.imul(u,u.clone())},E.prototype.sqr=function(u){return this.mul(u,u)},E.prototype.sqrt=function(u){if(u.isZero())return u.clone();var o=this.m.andln(3);if(e(o%2===1),o===3){var C=this.m.add(new c(1)).iushrn(2);return this.pow(u,C)}for(var m=this.m.subn(1),g=0;!m.isZero()&&m.andln(1)===0;)g++,m.iushrn(1);e(!m.isZero());var i=new c(1).toRed(this),I=i.redNeg(),R=this.m.subn(1).iushrn(1),s=this.m.bitLength();for(s=new c(2*s*s).toRed(this);this.pow(s,R).cmp(I)!==0;)s.redIAdd(I);for(var F=this.pow(s,m),ee=this.pow(u,m.addn(1).iushrn(1)),T=this.pow(u,m),J=g;T.cmp(i)!==0;){for(var W=T,Ae=0;W.cmp(i)!==0;Ae++)W=W.redSqr();e(Ae=0;g--){for(var F=o.words[g],ee=s-1;ee>=0;ee--){var T=F>>ee&1;if(i!==m[0]&&(i=this.sqr(i)),T===0&&I===0){R=0;continue}I<<=1,I|=T,R++,!(R!==C&&(g!==0||ee!==0))&&(i=this.mul(i,m[I]),R=0,I=0)}s=26}return i},E.prototype.convertTo=function(u){var o=u.umod(this.m);return o===u?o.clone():o},E.prototype.convertFrom=function(u){var o=u.clone();return o.red=null,o},c.mont=function(u){return new D(u)};function D(h){E.call(this,h),this.shift=this.m.bitLength(),this.shift%26!==0&&(this.shift+=26-this.shift%26),this.r=new c(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}f(D,E),D.prototype.convertTo=function(u){return this.imod(u.ushln(this.shift))},D.prototype.convertFrom=function(u){var o=this.imod(u.mul(this.rinv));return o.red=null,o},D.prototype.imul=function(u,o){if(u.isZero()||o.isZero())return u.words[0]=0,u.length=1,u;var C=u.imul(o),m=C.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),g=C.isub(m).iushrn(this.shift),i=g;return g.cmp(this.m)>=0?i=g.isub(this.m):g.cmpn(0)<0&&(i=g.iadd(this.m)),i._forceRed(this)},D.prototype.mul=function(u,o){if(u.isZero()||o.isZero())return new c(0)._forceRed(this);var C=u.mul(o),m=C.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),g=C.isub(m).iushrn(this.shift),i=g;return g.cmp(this.m)>=0?i=g.isub(this.m):g.cmpn(0)<0&&(i=g.iadd(this.m)),i._forceRed(this)},D.prototype.invm=function(u){var o=this.imod(u._invmp(this.m).mul(this.r2));return o._forceRed(this)}})(typeof O6>"u"||O6,zl)});var _l=U(r8=>{"use strict";Object.defineProperty(r8,"__esModule",{value:!0});r8.version=void 0;r8.version="logger/5.7.0"});var me=U(W2=>{"use strict";Object.defineProperty(W2,"__esModule",{value:!0});W2.Logger=W2.ErrorCode=W2.LogLevel=void 0;var $l=!1,er=!1,n8={debug:1,default:2,info:2,warning:3,error:4,off:5},ar=n8.default,gD=_l(),G6=null;function ID(){try{var A=[];if(["NFD","NFC","NFKD","NFKC"].forEach(function(a){try{if("test".normalize(a)!=="test")throw new Error("bad normalize")}catch{A.push(a)}}),A.length)throw new Error("missing "+A.join(", "));if(String.fromCharCode(233).normalize("NFD")!==String.fromCharCode(101,769))throw new Error("broken implementation")}catch(a){return a.message}return null}var Ar=ID(),cr;(function(A){A.DEBUG="DEBUG",A.INFO="INFO",A.WARNING="WARNING",A.ERROR="ERROR",A.OFF="OFF"})(cr=W2.LogLevel||(W2.LogLevel={}));var X2;(function(A){A.UNKNOWN_ERROR="UNKNOWN_ERROR",A.NOT_IMPLEMENTED="NOT_IMPLEMENTED",A.UNSUPPORTED_OPERATION="UNSUPPORTED_OPERATION",A.NETWORK_ERROR="NETWORK_ERROR",A.SERVER_ERROR="SERVER_ERROR",A.TIMEOUT="TIMEOUT",A.BUFFER_OVERRUN="BUFFER_OVERRUN",A.NUMERIC_FAULT="NUMERIC_FAULT",A.MISSING_NEW="MISSING_NEW",A.INVALID_ARGUMENT="INVALID_ARGUMENT",A.MISSING_ARGUMENT="MISSING_ARGUMENT",A.UNEXPECTED_ARGUMENT="UNEXPECTED_ARGUMENT",A.CALL_EXCEPTION="CALL_EXCEPTION",A.INSUFFICIENT_FUNDS="INSUFFICIENT_FUNDS",A.NONCE_EXPIRED="NONCE_EXPIRED",A.REPLACEMENT_UNDERPRICED="REPLACEMENT_UNDERPRICED",A.UNPREDICTABLE_GAS_LIMIT="UNPREDICTABLE_GAS_LIMIT",A.TRANSACTION_REPLACED="TRANSACTION_REPLACED",A.ACTION_REJECTED="ACTION_REJECTED"})(X2=W2.ErrorCode||(W2.ErrorCode={}));var fr="0123456789abcdef",FD=function(){function A(a){Object.defineProperty(this,"version",{enumerable:!0,value:a,writable:!1})}return A.prototype._log=function(a,e){var f=a.toLowerCase();n8[f]==null&&this.throwArgumentError("invalid log level name","logLevel",a),!(ar>n8[f])&&console.log.apply(console,e)},A.prototype.debug=function(){for(var a=[],e=0;e>4],B+=fr[t[x]&15];c.push(l+"=Uint8Array(0x"+B+")")}else c.push(l+"="+JSON.stringify(t))}catch{c.push(l+"="+JSON.stringify(f[l].toString()))}}),c.push("code="+e),c.push("version="+this.version);var d=a,b="";switch(e){case X2.NUMERIC_FAULT:{b="NUMERIC_FAULT";var r=a;switch(r){case"overflow":case"underflow":case"division-by-zero":b+="-"+r;break;case"negative-power":case"negative-width":b+="-unsupported";break;case"unbound-bitwise-result":b+="-unbound-result";break}break}case X2.CALL_EXCEPTION:case X2.INSUFFICIENT_FUNDS:case X2.MISSING_NEW:case X2.NONCE_EXPIRED:case X2.REPLACEMENT_UNDERPRICED:case X2.TRANSACTION_REPLACED:case X2.UNPREDICTABLE_GAS_LIMIT:b=e;break}b&&(a+=" [ See: https://links.ethers.org/v5-errors-"+b+" ]"),c.length&&(a+=" ("+c.join(", ")+")");var n=new Error(a);return n.reason=d,n.code=e,Object.keys(f).forEach(function(l){n[l]=f[l]}),n},A.prototype.throwError=function(a,e,f){throw this.makeError(a,e,f)},A.prototype.throwArgumentError=function(a,e,f){return this.throwError(a,A.errors.INVALID_ARGUMENT,{argument:e,value:f})},A.prototype.assert=function(a,e,f,c){a||this.throwError(e,f,c)},A.prototype.assertArgument=function(a,e,f,c){a||this.throwArgumentError(e,f,c)},A.prototype.checkNormalize=function(a){a==null&&(a="platform missing String.prototype.normalize"),Ar&&this.throwError("platform missing String.prototype.normalize",A.errors.UNSUPPORTED_OPERATION,{operation:"String.prototype.normalize",form:Ar})},A.prototype.checkSafeUint53=function(a,e){typeof a=="number"&&(e==null&&(e="value not safe"),(a<0||a>=9007199254740991)&&this.throwError(e,A.errors.NUMERIC_FAULT,{operation:"checkSafeInteger",fault:"out-of-safe-range",value:a}),a%1&&this.throwError(e,A.errors.NUMERIC_FAULT,{operation:"checkSafeInteger",fault:"non-integer",value:a}))},A.prototype.checkArgumentCount=function(a,e,f){f?f=": "+f:f="",ae&&this.throwError("too many arguments"+f,A.errors.UNEXPECTED_ARGUMENT,{count:a,expectedCount:e})},A.prototype.checkNew=function(a,e){(a===Object||a==null)&&this.throwError("missing new",A.errors.MISSING_NEW,{name:e.name})},A.prototype.checkAbstract=function(a,e){a===e?this.throwError("cannot instantiate abstract class "+JSON.stringify(e.name)+" directly; use a sub-class",A.errors.UNSUPPORTED_OPERATION,{name:a.name,operation:"new"}):(a===Object||a==null)&&this.throwError("missing new",A.errors.MISSING_NEW,{name:e.name})},A.globalLogger=function(){return G6||(G6=new A(gD.version)),G6},A.setCensorship=function(a,e){if(!a&&e&&this.globalLogger().throwError("cannot permanently disable censorship",A.errors.UNSUPPORTED_OPERATION,{operation:"setCensorship"}),$l){if(!a)return;this.globalLogger().throwError("error censorship permanent",A.errors.UNSUPPORTED_OPERATION,{operation:"setCensorship"})}er=!!a,$l=!!e},A.setLogLevel=function(a){var e=n8[a.toLowerCase()];if(e==null){A.globalLogger().warn("invalid log level - "+a);return}ar=e},A.from=function(a){return new A(a)},A.errors=X2,A.levels=cr,A}();W2.Logger=FD});var dr=U(t8=>{"use strict";Object.defineProperty(t8,"__esModule",{value:!0});t8.version=void 0;t8.version="bytes/5.7.0"});var Xe=U(e0=>{"use strict";Object.defineProperty(e0,"__esModule",{value:!0});e0.joinSignature=e0.splitSignature=e0.hexZeroPad=e0.hexStripZeros=e0.hexValue=e0.hexConcat=e0.hexDataSlice=e0.hexDataLength=e0.hexlify=e0.isHexString=e0.zeroPad=e0.stripZeros=e0.concat=e0.arrayify=e0.isBytes=e0.isBytesLike=void 0;var DD=me(),mD=dr(),p0=new DD.Logger(mD.version);function lr(A){return!!A.toHexString}function Z1(A){return A.slice||(A.slice=function(){var a=Array.prototype.slice.call(arguments);return Z1(new Uint8Array(Array.prototype.slice.apply(A,a)))}),A}function rr(A){return x2(A)&&!(A.length%2)||i8(A)}e0.isBytesLike=rr;function br(A){return typeof A=="number"&&A==A&&A%1===0}function i8(A){if(A==null)return!1;if(A.constructor===Uint8Array)return!0;if(typeof A=="string"||!br(A.length)||A.length<0)return!1;for(var a=0;a=256)return!1}return!0}e0.isBytes=i8;function jf(A,a){if(a||(a={}),typeof A=="number"){p0.checkSafeUint53(A,"invalid arrayify value");for(var e=[];A;)e.unshift(A&255),A=parseInt(String(A/256));return e.length===0&&e.push(0),Z1(new Uint8Array(e))}if(a.allowMissingPrefix&&typeof A=="string"&&A.substring(0,2)!=="0x"&&(A="0x"+A),lr(A)&&(A=A.toHexString()),x2(A)){var f=A.substring(2);f.length%2&&(a.hexPad==="left"?f="0"+f:a.hexPad==="right"?f+="0":p0.throwArgumentError("hex data is odd-length","value",A));for(var e=[],c=0;ca&&p0.throwArgumentError("value out of range","value",arguments[0]);var e=new Uint8Array(a);return e.set(A,a-A.length),Z1(e)}e0.zeroPad=tr;function x2(A,a){return!(typeof A!="string"||!A.match(/^0x[0-9A-Fa-f]*$/)||a&&A.length!==2+2*a)}e0.isHexString=x2;var P6="0123456789abcdef";function ra(A,a){if(a||(a={}),typeof A=="number"){p0.checkSafeUint53(A,"invalid hexlify value");for(var e="";A;)e=P6[A&15]+e,A=Math.floor(A/16);return e.length?(e.length%2&&(e="0"+e),"0x"+e):"0x00"}if(typeof A=="bigint")return A=A.toString(16),A.length%2?"0x0"+A:"0x"+A;if(a.allowMissingPrefix&&typeof A=="string"&&A.substring(0,2)!=="0x"&&(A="0x"+A),lr(A))return A.toHexString();if(x2(A))return A.length%2&&(a.hexPad==="left"?A="0x0"+A.substring(2):a.hexPad==="right"?A+="0":p0.throwArgumentError("hex data is odd-length","value",A)),A.toLowerCase();if(i8(A)){for(var f="0x",c=0;c>4]+P6[d&15]}return f}return p0.throwArgumentError("invalid hexlify value","value",A)}e0.hexlify=ra;function pD(A){if(typeof A!="string")A=ra(A);else if(!x2(A)||A.length%2)return null;return(A.length-2)/2}e0.hexDataLength=pD;function TD(A,a,e){return typeof A!="string"?A=ra(A):(!x2(A)||A.length%2)&&p0.throwArgumentError("invalid hexData","value",A),a=2+2*a,e!=null?"0x"+A.substring(a,2+2*e):"0x"+A.substring(a)}e0.hexDataSlice=TD;function wD(A){var a="0x";return A.forEach(function(e){a+=ra(e).substring(2)}),a}e0.hexConcat=wD;function RD(A){var a=ur(ra(A,{hexPad:"left"}));return a==="0x"?"0x0":a}e0.hexValue=RD;function ur(A){typeof A!="string"&&(A=ra(A)),x2(A)||p0.throwArgumentError("invalid hex string","value",A),A=A.substring(2);for(var a=0;a2*a+2&&p0.throwArgumentError("value out of range","value",arguments[1]);A.length<2*a+2;)A="0x0"+A.substring(2);return A}e0.hexZeroPad=u8;function ir(A){var a={r:"0x",s:"0x",_vs:"0x",recoveryParam:0,v:0,yParityAndS:"0x",compact:"0x"};if(rr(A)){var e=jf(A);e.length===64?(a.v=27+(e[32]>>7),e[32]&=127,a.r=ra(e.slice(0,32)),a.s=ra(e.slice(32,64))):e.length===65?(a.r=ra(e.slice(0,32)),a.s=ra(e.slice(32,64)),a.v=e[64]):p0.throwArgumentError("invalid signature string","signature",A),a.v<27&&(a.v===0||a.v===1?a.v+=27:p0.throwArgumentError("signature invalid v byte","signature",A)),a.recoveryParam=1-a.v%2,a.recoveryParam&&(e[32]|=128),a._vs=ra(e.slice(32,64))}else{if(a.r=A.r,a.s=A.s,a.v=A.v,a.recoveryParam=A.recoveryParam,a._vs=A._vs,a._vs!=null){var f=tr(jf(a._vs),32);a._vs=ra(f);var c=f[0]>=128?1:0;a.recoveryParam==null?a.recoveryParam=c:a.recoveryParam!==c&&p0.throwArgumentError("signature recoveryParam mismatch _vs","signature",A),f[0]&=127;var d=ra(f);a.s==null?a.s=d:a.s!==d&&p0.throwArgumentError("signature v mismatch _vs","signature",A)}if(a.recoveryParam==null)a.v==null?p0.throwArgumentError("signature missing v and recoveryParam","signature",A):a.v===0||a.v===1?a.recoveryParam=a.v:a.recoveryParam=1-a.v%2;else if(a.v==null)a.v=27+a.recoveryParam;else{var b=a.v===0||a.v===1?a.v:1-a.v%2;a.recoveryParam!==b&&p0.throwArgumentError("signature recoveryParam mismatch v","signature",A)}a.r==null||!x2(a.r)?p0.throwArgumentError("signature missing or invalid r","signature",A):a.r=u8(a.r,32),a.s==null||!x2(a.s)?p0.throwArgumentError("signature missing or invalid s","signature",A):a.s=u8(a.s,32);var r=jf(a.s);r[0]>=128&&p0.throwArgumentError("signature s out of range","signature",A),a.recoveryParam&&(r[0]|=128);var n=ra(r);a._vs&&(x2(a._vs)||p0.throwArgumentError("signature invalid _vs","signature",A),a._vs=u8(a._vs,32)),a._vs==null?a._vs=n:a._vs!==n&&p0.throwArgumentError("signature _vs mismatch v and s","signature",A)}return a.yParityAndS=a._vs,a.compact=a.r+a.yParityAndS.substring(2),a}e0.splitSignature=ir;function SD(A){return A=ir(A),ra(nr([A.r,A.s,A.recoveryParam?"0x1c":"0x1b"]))}e0.joinSignature=SD});var V6=U(o8=>{"use strict";Object.defineProperty(o8,"__esModule",{value:!0});o8.version=void 0;o8.version="bignumber/5.7.0"});var E8=U(_a=>{"use strict";var vD=_a&&_a.__importDefault||function(A){return A&&A.__esModule?A:{default:A}};Object.defineProperty(_a,"__esModule",{value:!0});_a._base16To36=_a._base36To16=_a.BigNumber=_a.isBigNumberish=void 0;var kD=vD(jl()),Tc=kD.default.BN,Y1=Xe(),X1=me(),QD=V6(),TA=new X1.Logger(QD.version),L6={},or=9007199254740991;function yD(A){return A!=null&&(s8.isBigNumber(A)||typeof A=="number"&&A%1===0||typeof A=="string"&&!!A.match(/^-?[0-9]+$/)||(0,Y1.isHexString)(A)||typeof A=="bigint"||(0,Y1.isBytes)(A))}_a.isBigNumberish=yD;var sr=!1,s8=function(){function A(a,e){a!==L6&&TA.throwError("cannot call constructor directly; use BigNumber.from",X1.Logger.errors.UNSUPPORTED_OPERATION,{operation:"new (BigNumber)"}),this._hex=e,this._isBigNumber=!0,Object.freeze(this)}return A.prototype.fromTwos=function(a){return Ra(je(this).fromTwos(a))},A.prototype.toTwos=function(a){return Ra(je(this).toTwos(a))},A.prototype.abs=function(){return this._hex[0]==="-"?A.from(this._hex.substring(1)):this},A.prototype.add=function(a){return Ra(je(this).add(je(a)))},A.prototype.sub=function(a){return Ra(je(this).sub(je(a)))},A.prototype.div=function(a){var e=A.from(a);return e.isZero()&&ja("division-by-zero","div"),Ra(je(this).div(je(a)))},A.prototype.mul=function(a){return Ra(je(this).mul(je(a)))},A.prototype.mod=function(a){var e=je(a);return e.isNeg()&&ja("division-by-zero","mod"),Ra(je(this).umod(e))},A.prototype.pow=function(a){var e=je(a);return e.isNeg()&&ja("negative-power","pow"),Ra(je(this).pow(e))},A.prototype.and=function(a){var e=je(a);return(this.isNegative()||e.isNeg())&&ja("unbound-bitwise-result","and"),Ra(je(this).and(e))},A.prototype.or=function(a){var e=je(a);return(this.isNegative()||e.isNeg())&&ja("unbound-bitwise-result","or"),Ra(je(this).or(e))},A.prototype.xor=function(a){var e=je(a);return(this.isNegative()||e.isNeg())&&ja("unbound-bitwise-result","xor"),Ra(je(this).xor(e))},A.prototype.mask=function(a){return(this.isNegative()||a<0)&&ja("negative-width","mask"),Ra(je(this).maskn(a))},A.prototype.shl=function(a){return(this.isNegative()||a<0)&&ja("negative-width","shl"),Ra(je(this).shln(a))},A.prototype.shr=function(a){return(this.isNegative()||a<0)&&ja("negative-width","shr"),Ra(je(this).shrn(a))},A.prototype.eq=function(a){return je(this).eq(je(a))},A.prototype.lt=function(a){return je(this).lt(je(a))},A.prototype.lte=function(a){return je(this).lte(je(a))},A.prototype.gt=function(a){return je(this).gt(je(a))},A.prototype.gte=function(a){return je(this).gte(je(a))},A.prototype.isNegative=function(){return this._hex[0]==="-"},A.prototype.isZero=function(){return je(this).isZero()},A.prototype.toNumber=function(){try{return je(this).toNumber()}catch{ja("overflow","toNumber",this.toString())}return null},A.prototype.toBigInt=function(){try{return BigInt(this.toString())}catch{}return TA.throwError("this platform does not support BigInt",X1.Logger.errors.UNSUPPORTED_OPERATION,{value:this.toString()})},A.prototype.toString=function(){return arguments.length>0&&(arguments[0]===10?sr||(sr=!0,TA.warn("BigNumber.toString does not accept any parameters; base-10 is assumed")):arguments[0]===16?TA.throwError("BigNumber.toString does not accept any parameters; use bigNumber.toHexString()",X1.Logger.errors.UNEXPECTED_ARGUMENT,{}):TA.throwError("BigNumber.toString does not accept parameters",X1.Logger.errors.UNEXPECTED_ARGUMENT,{})),je(this).toString(10)},A.prototype.toHexString=function(){return this._hex},A.prototype.toJSON=function(a){return{type:"BigNumber",hex:this.toHexString()}},A.from=function(a){if(a instanceof A)return a;if(typeof a=="string")return a.match(/^-?0x[0-9a-f]+$/i)?new A(L6,wc(a)):a.match(/^-?[0-9]+$/)?new A(L6,wc(new Tc(a))):TA.throwArgumentError("invalid BigNumber string","value",a);if(typeof a=="number")return a%1&&ja("underflow","BigNumber.from",a),(a>=or||a<=-or)&&ja("overflow","BigNumber.from",a),A.from(String(a));var e=a;if(typeof e=="bigint")return A.from(e.toString());if((0,Y1.isBytes)(e))return A.from((0,Y1.hexlify)(e));if(e)if(e.toHexString){var f=e.toHexString();if(typeof f=="string")return A.from(f)}else{var f=e._hex;if(f==null&&e.type==="BigNumber"&&(f=e.hex),typeof f=="string"&&((0,Y1.isHexString)(f)||f[0]==="-"&&(0,Y1.isHexString)(f.substring(1))))return A.from(f)}return TA.throwArgumentError("invalid BigNumber value","value",a)},A.isBigNumber=function(a){return!!(a&&a._isBigNumber)},A}();_a.BigNumber=s8;function wc(A){if(typeof A!="string")return wc(A.toString(16));if(A[0]==="-")return A=A.substring(1),A[0]==="-"&&TA.throwArgumentError("invalid hex","value",A),A=wc(A),A==="0x00"?A:"-"+A;if(A.substring(0,2)!=="0x"&&(A="0x"+A),A==="0x")return"0x00";for(A.length%2&&(A="0x0"+A.substring(2));A.length>4&&A.substring(0,4)==="0x00";)A="0x"+A.substring(4);return A}function Ra(A){return s8.from(wc(A))}function je(A){var a=s8.from(A).toHexString();return a[0]==="-"?new Tc("-"+a.substring(3),16):new Tc(a.substring(2),16)}function ja(A,a,e){var f={fault:A,operation:a};return e!=null&&(f.value=e),TA.throwError(A,X1.Logger.errors.NUMERIC_FAULT,f)}function MD(A){return new Tc(A,36).toString(16)}_a._base36To16=MD;function UD(A){return new Tc(A,16).toString(36)}_a._base16To36=UD});var gr=U(q2=>{"use strict";Object.defineProperty(q2,"__esModule",{value:!0});q2.FixedNumber=q2.FixedFormat=q2.parseFixed=q2.formatFixed=void 0;var B8=Xe(),vc=me(),ND=V6(),xa=new vc.Logger(ND.version),wA=E8(),Rc={},Br=wA.BigNumber.from(0),hr=wA.BigNumber.from(-1);function Cr(A,a,e,f){var c={fault:a,operation:e};return f!==void 0&&(c.value=f),xa.throwError(A,vc.Logger.errors.NUMERIC_FAULT,c)}var Sc="0";for(;Sc.length<256;)Sc+=Sc;function J6(A){if(typeof A!="number")try{A=wA.BigNumber.from(A).toNumber()}catch{}return typeof A=="number"&&A>=0&&A<=256&&!(A%1)?"1"+Sc.substring(0,A):xa.throwArgumentError("invalid decimal size","decimals",A)}function h8(A,a){a==null&&(a=0);var e=J6(a);A=wA.BigNumber.from(A);var f=A.lt(Br);f&&(A=A.mul(hr));for(var c=A.mod(e).toString();c.length2&&xa.throwArgumentError("too many decimal points","value",A);var d=c[0],b=c[1];for(d||(d="0"),b||(b="0");b[b.length-1]==="0";)b=b.substring(0,b.length-1);for(b.length>e.length-1&&Cr("fractional component exceeds decimals","underflow","parseFixed"),b===""&&(b="0");b.length80&&xa.throwArgumentError("invalid fixed format (decimals too large)","format.decimals",c),new A(Rc,e,f,c)},A}();q2.FixedFormat=C8;var H6=function(){function A(a,e,f,c){a!==Rc&&xa.throwError("cannot use FixedNumber constructor; use FixedNumber.from",vc.Logger.errors.UNSUPPORTED_OPERATION,{operation:"new FixedFormat"}),this.format=c,this._hex=e,this._value=f,this._isFixedNumber=!0,Object.freeze(this)}return A.prototype._checkFormat=function(a){this.format.name!==a.format.name&&xa.throwArgumentError("incompatible format; use fixedNumber.toFormat","other",a)},A.prototype.addUnsafe=function(a){this._checkFormat(a);var e=K2(this._value,this.format.decimals),f=K2(a._value,a.format.decimals);return A.fromValue(e.add(f),this.format.decimals,this.format)},A.prototype.subUnsafe=function(a){this._checkFormat(a);var e=K2(this._value,this.format.decimals),f=K2(a._value,a.format.decimals);return A.fromValue(e.sub(f),this.format.decimals,this.format)},A.prototype.mulUnsafe=function(a){this._checkFormat(a);var e=K2(this._value,this.format.decimals),f=K2(a._value,a.format.decimals);return A.fromValue(e.mul(f).div(this.format._multiplier),this.format.decimals,this.format)},A.prototype.divUnsafe=function(a){this._checkFormat(a);var e=K2(this._value,this.format.decimals),f=K2(a._value,a.format.decimals);return A.fromValue(e.mul(this.format._multiplier).div(f),this.format.decimals,this.format)},A.prototype.floor=function(){var a=this.toString().split(".");a.length===1&&a.push("0");var e=A.from(a[0],this.format),f=!a[1].match(/^(0*)$/);return this.isNegative()&&f&&(e=e.subUnsafe(Er.toFormat(e.format))),e},A.prototype.ceiling=function(){var a=this.toString().split(".");a.length===1&&a.push("0");var e=A.from(a[0],this.format),f=!a[1].match(/^(0*)$/);return!this.isNegative()&&f&&(e=e.addUnsafe(Er.toFormat(e.format))),e},A.prototype.round=function(a){a==null&&(a=0);var e=this.toString().split(".");if(e.length===1&&e.push("0"),(a<0||a>80||a%1)&&xa.throwArgumentError("invalid decimal count","decimals",a),e[1].length<=a)return this;var f=A.from("1"+Sc.substring(0,a),this.format),c=OD.toFormat(this.format);return this.mulUnsafe(f).addUnsafe(c).floor().divUnsafe(f)},A.prototype.isZero=function(){return this._value==="0.0"||this._value==="0"},A.prototype.isNegative=function(){return this._value[0]==="-"},A.prototype.toString=function(){return this._value},A.prototype.toHexString=function(a){if(a==null)return this._hex;a%8&&xa.throwArgumentError("invalid byte width","width",a);var e=wA.BigNumber.from(this._hex).fromTwos(this.format.width).toTwos(a).toHexString();return(0,B8.hexZeroPad)(e,a/8)},A.prototype.toUnsafeFloat=function(){return parseFloat(this.toString())},A.prototype.toFormat=function(a){return A.fromString(this._value,a)},A.fromValue=function(a,e,f){return f==null&&e!=null&&!(0,wA.isBigNumberish)(e)&&(f=e,e=null),e==null&&(e=0),f==null&&(f="fixed"),A.fromString(h8(a,e),C8.from(f))},A.fromString=function(a,e){e==null&&(e="fixed");var f=C8.from(e),c=K2(a,f.decimals);!f.signed&&c.lt(Br)&&Cr("unsigned value cannot be negative","overflow","value",a);var d=null;f.signed?d=c.toTwos(f.width).toHexString():(d=c.toHexString(),d=(0,B8.hexZeroPad)(d,f.width/8));var b=h8(c,f.decimals);return new A(Rc,d,b,f)},A.fromBytes=function(a,e){e==null&&(e="fixed");var f=C8.from(e);if((0,B8.arrayify)(a).length>f.width/8)throw new Error("overflow");var c=wA.BigNumber.from(a);f.signed&&(c=c.fromTwos(f.width));var d=c.toTwos((f.signed?0:1)+f.width).toHexString(),b=h8(c,f.decimals);return new A(Rc,d,b,f)},A.from=function(a,e){if(typeof a=="string")return A.fromString(a,e);if((0,B8.isBytes)(a))return A.fromBytes(a,e);try{return A.fromValue(a,0,e)}catch(f){if(f.code!==vc.Logger.errors.INVALID_ARGUMENT)throw f}return xa.throwArgumentError("invalid FixedNumber value","value",a)},A.isFixedNumber=function(a){return!!(a&&a._isFixedNumber)},A}();q2.FixedNumber=H6;var Er=H6.from(1),OD=H6.from("0.5")});var y0=U(na=>{"use strict";Object.defineProperty(na,"__esModule",{value:!0});na._base36To16=na._base16To36=na.parseFixed=na.FixedNumber=na.FixedFormat=na.formatFixed=na.BigNumber=void 0;var GD=E8();Object.defineProperty(na,"BigNumber",{enumerable:!0,get:function(){return GD.BigNumber}});var g8=gr();Object.defineProperty(na,"formatFixed",{enumerable:!0,get:function(){return g8.formatFixed}});Object.defineProperty(na,"FixedFormat",{enumerable:!0,get:function(){return g8.FixedFormat}});Object.defineProperty(na,"FixedNumber",{enumerable:!0,get:function(){return g8.FixedNumber}});Object.defineProperty(na,"parseFixed",{enumerable:!0,get:function(){return g8.parseFixed}});var Ir=E8();Object.defineProperty(na,"_base16To36",{enumerable:!0,get:function(){return Ir._base16To36}});Object.defineProperty(na,"_base36To16",{enumerable:!0,get:function(){return Ir._base36To16}})});var Fr=U(I8=>{"use strict";Object.defineProperty(I8,"__esModule",{value:!0});I8.version=void 0;I8.version="properties/5.7.0"});var c0=U(M0=>{"use strict";var PD=M0&&M0.__awaiter||function(A,a,e,f){function c(d){return d instanceof e?d:new e(function(b){b(d)})}return new(e||(e=Promise))(function(d,b){function r(t){try{l(f.next(t))}catch(B){b(B)}}function n(t){try{l(f.throw(t))}catch(B){b(B)}}function l(t){t.done?d(t.value):c(t.value).then(r,n)}l((f=f.apply(A,a||[])).next())})},VD=M0&&M0.__generator||function(A,a){var e={label:0,sent:function(){if(d[0]&1)throw d[1];return d[1]},trys:[],ops:[]},f,c,d,b;return b={next:r(0),throw:r(1),return:r(2)},typeof Symbol=="function"&&(b[Symbol.iterator]=function(){return this}),b;function r(l){return function(t){return n([l,t])}}function n(l){if(f)throw new TypeError("Generator is already executing.");for(;e;)try{if(f=1,c&&(d=l[0]&2?c.return:l[0]?c.throw||((d=c.return)&&d.call(c),0):c.next)&&!(d=d.call(c,l[1])).done)return d;switch(c=0,d&&(l=[l[0]&2,d.value]),l[0]){case 0:case 1:d=l;break;case 4:return e.label++,{value:l[1],done:!1};case 5:e.label++,c=l[1],l=[0];continue;case 7:l=e.ops.pop(),e.trys.pop();continue;default:if(d=e.trys,!(d=d.length>0&&d[d.length-1])&&(l[0]===6||l[0]===2)){e=0;continue}if(l[0]===3&&(!d||l[1]>d[0]&&l[1]{"use strict";Object.defineProperty(m8,"__esModule",{value:!0});m8.version=void 0;m8.version="abi/5.7.0"});var v8=U(xe=>{"use strict";var w8=xe&&xe.__extends||function(){var A=function(a,e){return A=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(f,c){f.__proto__=c}||function(f,c){for(var d in c)Object.prototype.hasOwnProperty.call(c,d)&&(f[d]=c[d])},A(a,e)};return function(a,e){if(typeof e!="function"&&e!==null)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");A(a,e);function f(){this.constructor=a}a.prototype=e===null?Object.create(e):(f.prototype=e.prototype,new f)}}();Object.defineProperty(xe,"__esModule",{value:!0});xe.ErrorFragment=xe.FunctionFragment=xe.ConstructorFragment=xe.EventFragment=xe.Fragment=xe.ParamType=xe.FormatTypes=void 0;var W6=y0(),zD=c0(),R8=me(),jD=W1(),_e=new R8.Logger(jD.version),_f={},xr={calldata:!0,memory:!0,storage:!0},_D={calldata:!0,memory:!0};function x8(A,a){if(A==="bytes"||A==="string"){if(xr[a])return!0}else if(A==="address"){if(a==="payable")return!0}else if((A.indexOf("[")>=0||A==="tuple")&&_D[a])return!0;return(xr[a]||a==="payable")&&_e.throwArgumentError("invalid modifier","name",a),!1}function $D(A,a){var e=A;function f(B){_e.throwArgumentError("unexpected character at position "+B,"param",A)}A=A.replace(/\s/g," ");function c(B){var x={type:"",name:"",parent:B,state:{allowType:!0}};return a&&(x.indexed=!1),x}for(var d={type:"",name:"",state:{allowType:!0}},b=d,r=0;r2&&_e.throwArgumentError("invalid human-readable ABI signature","value",A),e[1].match(/^[0-9]+$/)||_e.throwArgumentError("invalid human-readable ABI signature gas","value",A),a.gas=W6.BigNumber.from(e[1]),e[0]):A}function wr(A,a){a.constant=!1,a.payable=!1,a.stateMutability="nonpayable",A.split(" ").forEach(function(e){switch(e.trim()){case"constant":a.constant=!0;break;case"payable":a.payable=!0,a.stateMutability="payable";break;case"nonpayable":a.payable=!1,a.stateMutability="nonpayable";break;case"pure":a.constant=!0,a.stateMutability="pure";break;case"view":a.constant=!0,a.stateMutability="view";break;case"external":case"public":case"":break;default:console.log("unknown modifier: "+e)}})}function Rr(A){var a={constant:!1,payable:!0,stateMutability:"payable"};return A.stateMutability!=null?(a.stateMutability=A.stateMutability,a.constant=a.stateMutability==="view"||a.stateMutability==="pure",A.constant!=null&&!!A.constant!==a.constant&&_e.throwArgumentError("cannot have constant function with mutability "+a.stateMutability,"value",A),a.payable=a.stateMutability==="payable",A.payable!=null&&!!A.payable!==a.payable&&_e.throwArgumentError("cannot have payable function with mutability "+a.stateMutability,"value",A)):A.payable!=null?(a.payable=!!A.payable,A.constant==null&&!a.payable&&A.type!=="constructor"&&_e.throwArgumentError("unable to determine stateMutability","value",A),a.constant=!!A.constant,a.constant?a.stateMutability="view":a.stateMutability=a.payable?"payable":"nonpayable",a.payable&&a.constant&&_e.throwArgumentError("cannot have constant payable function","value",A)):A.constant!=null?(a.constant=!!A.constant,a.payable=!a.constant,a.stateMutability=a.constant?"view":"payable"):A.type!=="constructor"&&_e.throwArgumentError("unable to determine stateMutability","value",A),a}var T8=function(A){w8(a,A);function a(){return A!==null&&A.apply(this,arguments)||this}return a.prototype.format=function(e){if(e||(e=xe.FormatTypes.sighash),xe.FormatTypes[e]||_e.throwArgumentError("invalid format type","format",e),e===xe.FormatTypes.json)return JSON.stringify({type:"constructor",stateMutability:this.stateMutability!=="nonpayable"?this.stateMutability:void 0,payable:this.payable,gas:this.gas?this.gas.toNumber():void 0,inputs:this.inputs.map(function(c){return JSON.parse(c.format(e))})});e===xe.FormatTypes.sighash&&_e.throwError("cannot format a constructor for sighash",R8.Logger.errors.UNSUPPORTED_OPERATION,{operation:"format(sighash)"});var f="constructor("+this.inputs.map(function(c){return c.format(e)}).join(e===xe.FormatTypes.full?", ":",")+") ";return this.stateMutability&&this.stateMutability!=="nonpayable"&&(f+=this.stateMutability+" "),f.trim()},a.from=function(e){return typeof e=="string"?a.fromString(e):a.fromObject(e)},a.fromObject=function(e){if(a.isConstructorFragment(e))return e;e.type!=="constructor"&&_e.throwArgumentError("invalid constructor object","value",e);var f=Rr(e);f.constant&&_e.throwArgumentError("constructor cannot be constant","value",e);var c={name:null,type:e.type,inputs:e.inputs?e.inputs.map($f.fromObject):[],payable:f.payable,stateMutability:f.stateMutability,gas:e.gas?W6.BigNumber.from(e.gas):null};return new a(_f,c)},a.fromString=function(e){var f={type:"constructor"};e=Tr(e,f);var c=e.match(yc);return(!c||c[1].trim()!=="constructor")&&_e.throwArgumentError("invalid constructor string","value",e),f.inputs=kc(c[2].trim(),!1),wr(c[3].trim(),f),a.fromObject(f)},a.isConstructorFragment=function(e){return e&&e._isFragment&&e.type==="constructor"},a}(S8);xe.ConstructorFragment=T8;var Y6=function(A){w8(a,A);function a(){return A!==null&&A.apply(this,arguments)||this}return a.prototype.format=function(e){if(e||(e=xe.FormatTypes.sighash),xe.FormatTypes[e]||_e.throwArgumentError("invalid format type","format",e),e===xe.FormatTypes.json)return JSON.stringify({type:"function",name:this.name,constant:this.constant,stateMutability:this.stateMutability!=="nonpayable"?this.stateMutability:void 0,payable:this.payable,gas:this.gas?this.gas.toNumber():void 0,inputs:this.inputs.map(function(c){return JSON.parse(c.format(e))}),outputs:this.outputs.map(function(c){return JSON.parse(c.format(e))})});var f="";return e!==xe.FormatTypes.sighash&&(f+="function "),f+=this.name+"("+this.inputs.map(function(c){return c.format(e)}).join(e===xe.FormatTypes.full?", ":",")+") ",e!==xe.FormatTypes.sighash&&(this.stateMutability?this.stateMutability!=="nonpayable"&&(f+=this.stateMutability+" "):this.constant&&(f+="view "),this.outputs&&this.outputs.length&&(f+="returns ("+this.outputs.map(function(c){return c.format(e)}).join(", ")+") "),this.gas!=null&&(f+="@"+this.gas.toString()+" ")),f.trim()},a.from=function(e){return typeof e=="string"?a.fromString(e):a.fromObject(e)},a.fromObject=function(e){if(a.isFunctionFragment(e))return e;e.type!=="function"&&_e.throwArgumentError("invalid function object","value",e);var f=Rr(e),c={type:e.type,name:Qc(e.name),constant:f.constant,inputs:e.inputs?e.inputs.map($f.fromObject):[],outputs:e.outputs?e.outputs.map($f.fromObject):[],payable:f.payable,stateMutability:f.stateMutability,gas:e.gas?W6.BigNumber.from(e.gas):null};return new a(_f,c)},a.fromString=function(e){var f={type:"function"};e=Tr(e,f);var c=e.split(" returns ");c.length>2&&_e.throwArgumentError("invalid function string","value",e);var d=c[0].match(yc);if(d||_e.throwArgumentError("invalid function signature","value",e),f.name=d[1].trim(),f.name&&Qc(f.name),f.inputs=kc(d[2],!1),wr(d[3].trim(),f),c.length>1){var b=c[1].match(yc);(b[1].trim()!=""||b[3].trim()!="")&&_e.throwArgumentError("unexpected tokens","value",e),f.outputs=kc(b[2],!1)}else f.outputs=[];return a.fromObject(f)},a.isFunctionFragment=function(e){return e&&e._isFragment&&e.type==="function"},a}(T8);xe.FunctionFragment=Y6;function pr(A){var a=A.format();return(a==="Error(string)"||a==="Panic(uint256)")&&_e.throwArgumentError("cannot specify user defined "+a+" error","fragment",A),A}var X6=function(A){w8(a,A);function a(){return A!==null&&A.apply(this,arguments)||this}return a.prototype.format=function(e){if(e||(e=xe.FormatTypes.sighash),xe.FormatTypes[e]||_e.throwArgumentError("invalid format type","format",e),e===xe.FormatTypes.json)return JSON.stringify({type:"error",name:this.name,inputs:this.inputs.map(function(c){return JSON.parse(c.format(e))})});var f="";return e!==xe.FormatTypes.sighash&&(f+="error "),f+=this.name+"("+this.inputs.map(function(c){return c.format(e)}).join(e===xe.FormatTypes.full?", ":",")+") ",f.trim()},a.from=function(e){return typeof e=="string"?a.fromString(e):a.fromObject(e)},a.fromObject=function(e){if(a.isErrorFragment(e))return e;e.type!=="error"&&_e.throwArgumentError("invalid error object","value",e);var f={type:e.type,name:Qc(e.name),inputs:e.inputs?e.inputs.map($f.fromObject):[]};return pr(new a(_f,f))},a.fromString=function(e){var f={type:"error"},c=e.match(yc);return c||_e.throwArgumentError("invalid error signature","value",e),f.name=c[1].trim(),f.name&&Qc(f.name),f.inputs=kc(c[2],!1),pr(a.fromObject(f))},a.isErrorFragment=function(e){return e&&e._isFragment&&e.type==="error"},a}(S8);xe.ErrorFragment=X6;function K1(A){return A.match(/^uint($|[^1-9])/)?A="uint256"+A.substring(4):A.match(/^int($|[^1-9])/)&&(A="int256"+A.substring(3)),A}var am=new RegExp("^[a-zA-Z$_][a-zA-Z0-9$_]*$");function Qc(A){return(!A||!A.match(am))&&_e.throwArgumentError('invalid identifier "'+A+'"',"value",A),A}var yc=new RegExp("^([^)(]*)\\((.*)\\)([^)(]*)$");function Am(A){A=A.trim();for(var a=[],e="",f=0,c=0;c{"use strict";Object.defineProperty(z2,"__esModule",{value:!0});z2.Reader=z2.Writer=z2.Coder=z2.checkResultErrors=void 0;var _A=Xe(),Sr=y0(),Mc=c0(),K6=me(),fm=W1(),q6=new K6.Logger(fm.version);function cm(A){var a=[],e=function(f,c){if(!!Array.isArray(c))for(var d in c){var b=f.slice();b.push(d);try{e(b,c[d])}catch(r){a.push({path:b,error:r})}}};return e([],A),a}z2.checkResultErrors=cm;var dm=function(){function A(a,e,f,c){this.name=a,this.type=e,this.localName=f,this.dynamic=c}return A.prototype._throwError=function(a,e){q6.throwArgumentError(a,this.localName,e)},A}();z2.Coder=dm;var bm=function(){function A(a){(0,Mc.defineReadOnly)(this,"wordSize",a||32),this._data=[],this._dataLength=0,this._padding=new Uint8Array(a)}return Object.defineProperty(A.prototype,"data",{get:function(){return(0,_A.hexConcat)(this._data)},enumerable:!1,configurable:!0}),Object.defineProperty(A.prototype,"length",{get:function(){return this._dataLength},enumerable:!1,configurable:!0}),A.prototype._writeData=function(a){return this._data.push(a),this._dataLength+=a.length,a.length},A.prototype.appendWriter=function(a){return this._writeData((0,_A.concat)(a._data))},A.prototype.writeBytes=function(a){var e=(0,_A.arrayify)(a),f=e.length%this.wordSize;return f&&(e=(0,_A.concat)([e,this._padding.slice(f)])),this._writeData(e)},A.prototype._getValue=function(a){var e=(0,_A.arrayify)(Sr.BigNumber.from(a));return e.length>this.wordSize&&q6.throwError("value out-of-bounds",K6.Logger.errors.BUFFER_OVERRUN,{length:this.wordSize,offset:e.length}),e.length%this.wordSize&&(e=(0,_A.concat)([this._padding.slice(e.length%this.wordSize),e])),e},A.prototype.writeValue=function(a){return this._writeData(this._getValue(a))},A.prototype.writeUpdatableValue=function(){var a=this,e=this._data.length;return this._data.push(this._padding),this._dataLength+=this.wordSize,function(f){a._data[e]=a._getValue(f)}},A}();z2.Writer=bm;var lm=function(){function A(a,e,f,c){(0,Mc.defineReadOnly)(this,"_data",(0,_A.arrayify)(a)),(0,Mc.defineReadOnly)(this,"wordSize",e||32),(0,Mc.defineReadOnly)(this,"_coerceFunc",f),(0,Mc.defineReadOnly)(this,"allowLoose",c),this._offset=0}return Object.defineProperty(A.prototype,"data",{get:function(){return(0,_A.hexlify)(this._data)},enumerable:!1,configurable:!0}),Object.defineProperty(A.prototype,"consumed",{get:function(){return this._offset},enumerable:!1,configurable:!0}),A.coerce=function(a,e){var f=a.match("^u?int([0-9]+)$");return f&&parseInt(f[1])<=48&&(e=e.toNumber()),e},A.prototype.coerce=function(a,e){return this._coerceFunc?this._coerceFunc(a,e):A.coerce(a,e)},A.prototype._peekBytes=function(a,e,f){var c=Math.ceil(e/this.wordSize)*this.wordSize;return this._offset+c>this._data.length&&(this.allowLoose&&f&&this._offset+e<=this._data.length?c=e:q6.throwError("data out-of-bounds",K6.Logger.errors.BUFFER_OVERRUN,{length:this._data.length,offset:this._offset+c})),this._data.slice(this._offset,this._offset+c)},A.prototype.subReader=function(a){return new A(this._data.slice(this._offset+a),this.wordSize,this._coerceFunc,this.allowLoose)},A.prototype.readBytes=function(a,e){var f=this._peekBytes(0,a,!!e);return this._offset+=f.length,f.slice(0,a)},A.prototype.readValue=function(){return Sr.BigNumber.from(this.readBytes(this.wordSize))},A}();z2.Reader=lm});var vr=U((iH,k8)=>{(function(){"use strict";var A="input is invalid type",a="finalize already called",e=typeof window=="object",f=e?window:{};f.JS_SHA3_NO_WINDOW&&(e=!1);var c=!e&&typeof self=="object",d=!f.JS_SHA3_NO_NODE_JS&&typeof process=="object"&&process.versions&&process.versions.node;d?f=global:c&&(f=self);var b=!f.JS_SHA3_NO_COMMON_JS&&typeof k8=="object"&&k8.exports,r=typeof define=="function"&&define.amd,n=!f.JS_SHA3_NO_ARRAY_BUFFER&&typeof ArrayBuffer<"u",l="0123456789abcdef".split(""),t=[31,7936,2031616,520093696],B=[4,1024,262144,67108864],x=[1,256,65536,16777216],p=[6,1536,393216,100663296],w=[0,8,16,24],y=[1,0,32898,0,32906,2147483648,2147516416,2147483648,32907,0,2147483649,0,2147516545,2147483648,32777,2147483648,138,0,136,0,2147516425,0,2147483658,0,2147516555,0,139,2147483648,32905,2147483648,32771,2147483648,32770,2147483648,128,2147483648,32778,0,2147483658,2147483648,2147516545,2147483648,32896,2147483648,2147483649,0,2147516424,2147483648],N=[224,256,384,512],Q=[128,256],P=["hex","buffer","arrayBuffer","array","digest"],V={128:168,256:136};(f.JS_SHA3_NO_NODE_JS||!Array.isArray)&&(Array.isArray=function(T){return Object.prototype.toString.call(T)==="[object Array]"}),n&&(f.JS_SHA3_NO_ARRAY_BUFFER_IS_VIEW||!ArrayBuffer.isView)&&(ArrayBuffer.isView=function(T){return typeof T=="object"&&T.buffer&&T.buffer.constructor===ArrayBuffer});for(var q=function(T,J,W){return function(Ae){return new s(T,J,T).update(Ae)[W]()}},_=function(T,J,W){return function(Ae,S){return new s(T,J,S).update(Ae)[W]()}},Z=function(T,J,W){return function(Ae,S,M,v){return u["cshake"+T].update(Ae,S,M,v)[W]()}},de=function(T,J,W){return function(Ae,S,M,v){return u["kmac"+T].update(Ae,S,M,v)[W]()}},ce=function(T,J,W,Ae){for(var S=0;S>5,this.byteCount=this.blockCount<<2,this.outputBlocks=W>>5,this.extraBytes=(W&31)>>3;for(var Ae=0;Ae<50;++Ae)this.s[Ae]=0}s.prototype.update=function(T){if(this.finalized)throw new Error(a);var J,W=typeof T;if(W!=="string"){if(W==="object"){if(T===null)throw new Error(A);if(n&&T.constructor===ArrayBuffer)T=new Uint8Array(T);else if(!Array.isArray(T)&&(!n||!ArrayBuffer.isView(T)))throw new Error(A)}else throw new Error(A);J=!0}for(var Ae=this.blocks,S=this.byteCount,M=T.length,v=this.blockCount,O=0,K=this.s,G,X;O>2]|=T[O]<>2]|=X<>2]|=(192|X>>6)<>2]|=(128|X&63)<=57344?(Ae[G>>2]|=(224|X>>12)<>2]|=(128|X>>6&63)<>2]|=(128|X&63)<>2]|=(240|X>>18)<>2]|=(128|X>>12&63)<>2]|=(128|X>>6&63)<>2]|=(128|X&63)<=S){for(this.start=G-S,this.block=Ae[v],G=0;G>8,W=T&255;W>0;)S.unshift(W),T=T>>8,W=T&255,++Ae;return J?S.push(Ae):S.unshift(Ae),this.update(S),S.length},s.prototype.encodeString=function(T){var J,W=typeof T;if(W!=="string"){if(W==="object"){if(T===null)throw new Error(A);if(n&&T.constructor===ArrayBuffer)T=new Uint8Array(T);else if(!Array.isArray(T)&&(!n||!ArrayBuffer.isView(T)))throw new Error(A)}else throw new Error(A);J=!0}var Ae=0,S=T.length;if(J)Ae=S;else for(var M=0;M=57344?Ae+=3:(v=65536+((v&1023)<<10|T.charCodeAt(++M)&1023),Ae+=4)}return Ae+=this.encode(Ae*8),this.update(T),Ae},s.prototype.bytepad=function(T,J){for(var W=this.encode(J),Ae=0;Ae>2]|=this.padding[J&3],this.lastByteIndex===this.byteCount)for(T[0]=T[W],J=1;J>4&15]+l[O&15]+l[O>>12&15]+l[O>>8&15]+l[O>>20&15]+l[O>>16&15]+l[O>>28&15]+l[O>>24&15];M%T===0&&(ee(J),S=0)}return Ae&&(O=J[S],v+=l[O>>4&15]+l[O&15],Ae>1&&(v+=l[O>>12&15]+l[O>>8&15]),Ae>2&&(v+=l[O>>20&15]+l[O>>16&15])),v},s.prototype.arrayBuffer=function(){this.finalize();var T=this.blockCount,J=this.s,W=this.outputBlocks,Ae=this.extraBytes,S=0,M=0,v=this.outputBits>>3,O;Ae?O=new ArrayBuffer(W+1<<2):O=new ArrayBuffer(v);for(var K=new Uint32Array(O);M>8&255,v[O+2]=K>>16&255,v[O+3]=K>>24&255;M%T===0&&ee(J)}return Ae&&(O=M<<2,K=J[S],v[O]=K&255,Ae>1&&(v[O+1]=K>>8&255),Ae>2&&(v[O+2]=K>>16&255)),v};function F(T,J,W){s.call(this,T,J,W)}F.prototype=new s,F.prototype.finalize=function(){return this.encode(this.outputBits,!0),s.prototype.finalize.call(this)};var ee=function(T){var J,W,Ae,S,M,v,O,K,G,X,j,Y,$,fe,ae,be,oe,re,ue,l0,ne,te,s0,Fe,De,wa,he,Ie,I0,Be,ie,G2,pe,Te,P2,we,Re,V2,Se,ve,L2,ke,Qe,J2,ye,Me,H2,Ue,Ne,Z2,Oe,Ge,Y2,Pe,Ve,m2,n0,t0,Xa,Wa,Ka,qa,za;for(Ae=0;Ae<48;Ae+=2)S=T[0]^T[10]^T[20]^T[30]^T[40],M=T[1]^T[11]^T[21]^T[31]^T[41],v=T[2]^T[12]^T[22]^T[32]^T[42],O=T[3]^T[13]^T[23]^T[33]^T[43],K=T[4]^T[14]^T[24]^T[34]^T[44],G=T[5]^T[15]^T[25]^T[35]^T[45],X=T[6]^T[16]^T[26]^T[36]^T[46],j=T[7]^T[17]^T[27]^T[37]^T[47],Y=T[8]^T[18]^T[28]^T[38]^T[48],$=T[9]^T[19]^T[29]^T[39]^T[49],J=Y^(v<<1|O>>>31),W=$^(O<<1|v>>>31),T[0]^=J,T[1]^=W,T[10]^=J,T[11]^=W,T[20]^=J,T[21]^=W,T[30]^=J,T[31]^=W,T[40]^=J,T[41]^=W,J=S^(K<<1|G>>>31),W=M^(G<<1|K>>>31),T[2]^=J,T[3]^=W,T[12]^=J,T[13]^=W,T[22]^=J,T[23]^=W,T[32]^=J,T[33]^=W,T[42]^=J,T[43]^=W,J=v^(X<<1|j>>>31),W=O^(j<<1|X>>>31),T[4]^=J,T[5]^=W,T[14]^=J,T[15]^=W,T[24]^=J,T[25]^=W,T[34]^=J,T[35]^=W,T[44]^=J,T[45]^=W,J=K^(Y<<1|$>>>31),W=G^($<<1|Y>>>31),T[6]^=J,T[7]^=W,T[16]^=J,T[17]^=W,T[26]^=J,T[27]^=W,T[36]^=J,T[37]^=W,T[46]^=J,T[47]^=W,J=X^(S<<1|M>>>31),W=j^(M<<1|S>>>31),T[8]^=J,T[9]^=W,T[18]^=J,T[19]^=W,T[28]^=J,T[29]^=W,T[38]^=J,T[39]^=W,T[48]^=J,T[49]^=W,fe=T[0],ae=T[1],Me=T[11]<<4|T[10]>>>28,H2=T[10]<<4|T[11]>>>28,Ie=T[20]<<3|T[21]>>>29,I0=T[21]<<3|T[20]>>>29,Wa=T[31]<<9|T[30]>>>23,Ka=T[30]<<9|T[31]>>>23,ke=T[40]<<18|T[41]>>>14,Qe=T[41]<<18|T[40]>>>14,Te=T[2]<<1|T[3]>>>31,P2=T[3]<<1|T[2]>>>31,be=T[13]<<12|T[12]>>>20,oe=T[12]<<12|T[13]>>>20,Ue=T[22]<<10|T[23]>>>22,Ne=T[23]<<10|T[22]>>>22,Be=T[33]<<13|T[32]>>>19,ie=T[32]<<13|T[33]>>>19,qa=T[42]<<2|T[43]>>>30,za=T[43]<<2|T[42]>>>30,Pe=T[5]<<30|T[4]>>>2,Ve=T[4]<<30|T[5]>>>2,we=T[14]<<6|T[15]>>>26,Re=T[15]<<6|T[14]>>>26,re=T[25]<<11|T[24]>>>21,ue=T[24]<<11|T[25]>>>21,Z2=T[34]<<15|T[35]>>>17,Oe=T[35]<<15|T[34]>>>17,G2=T[45]<<29|T[44]>>>3,pe=T[44]<<29|T[45]>>>3,Fe=T[6]<<28|T[7]>>>4,De=T[7]<<28|T[6]>>>4,m2=T[17]<<23|T[16]>>>9,n0=T[16]<<23|T[17]>>>9,V2=T[26]<<25|T[27]>>>7,Se=T[27]<<25|T[26]>>>7,l0=T[36]<<21|T[37]>>>11,ne=T[37]<<21|T[36]>>>11,Ge=T[47]<<24|T[46]>>>8,Y2=T[46]<<24|T[47]>>>8,J2=T[8]<<27|T[9]>>>5,ye=T[9]<<27|T[8]>>>5,wa=T[18]<<20|T[19]>>>12,he=T[19]<<20|T[18]>>>12,t0=T[29]<<7|T[28]>>>25,Xa=T[28]<<7|T[29]>>>25,ve=T[38]<<8|T[39]>>>24,L2=T[39]<<8|T[38]>>>24,te=T[48]<<14|T[49]>>>18,s0=T[49]<<14|T[48]>>>18,T[0]=fe^~be&re,T[1]=ae^~oe&ue,T[10]=Fe^~wa&Ie,T[11]=De^~he&I0,T[20]=Te^~we&V2,T[21]=P2^~Re&Se,T[30]=J2^~Me&Ue,T[31]=ye^~H2&Ne,T[40]=Pe^~m2&t0,T[41]=Ve^~n0&Xa,T[2]=be^~re&l0,T[3]=oe^~ue&ne,T[12]=wa^~Ie&Be,T[13]=he^~I0&ie,T[22]=we^~V2&ve,T[23]=Re^~Se&L2,T[32]=Me^~Ue&Z2,T[33]=H2^~Ne&Oe,T[42]=m2^~t0&Wa,T[43]=n0^~Xa&Ka,T[4]=re^~l0&te,T[5]=ue^~ne&s0,T[14]=Ie^~Be&G2,T[15]=I0^~ie&pe,T[24]=V2^~ve&ke,T[25]=Se^~L2&Qe,T[34]=Ue^~Z2&Ge,T[35]=Ne^~Oe&Y2,T[44]=t0^~Wa&qa,T[45]=Xa^~Ka&za,T[6]=l0^~te&fe,T[7]=ne^~s0&ae,T[16]=Be^~G2&Fe,T[17]=ie^~pe&De,T[26]=ve^~ke&Te,T[27]=L2^~Qe&P2,T[36]=Z2^~Ge&J2,T[37]=Oe^~Y2&ye,T[46]=Wa^~qa&Pe,T[47]=Ka^~za&Ve,T[8]=te^~fe&be,T[9]=s0^~ae&oe,T[18]=G2^~Fe&wa,T[19]=pe^~De&he,T[28]=ke^~Te&we,T[29]=Qe^~P2&Re,T[38]=Ge^~J2&Me,T[39]=Y2^~ye&H2,T[48]=qa^~Pe&m2,T[49]=za^~Ve&n0,T[0]^=y[Ae],T[1]^=y[Ae+1]};if(b)k8.exports=u;else{for(C=0;C{"use strict";var rm=q1&&q1.__importDefault||function(A){return A&&A.__esModule?A:{default:A}};Object.defineProperty(q1,"__esModule",{value:!0});q1.keccak256=void 0;var nm=rm(vr()),tm=Xe();function um(A){return"0x"+nm.default.keccak_256((0,tm.arrayify)(A))}q1.keccak256=um});var kr=U(Q8=>{"use strict";Object.defineProperty(Q8,"__esModule",{value:!0});Q8.version=void 0;Q8.version="rlp/5.7.0"});var Uc=U(z1=>{"use strict";Object.defineProperty(z1,"__esModule",{value:!0});z1.decode=z1.encode=void 0;var e1=Xe(),RA=me(),im=kr(),j2=new RA.Logger(im.version);function Qr(A){for(var a=[];A;)a.unshift(A&255),A>>=8;return a}function yr(A,a,e){for(var f=0,c=0;ca+1+f&&j2.throwError("child data too short",RA.Logger.errors.BUFFER_OVERRUN,{})}return{consumed:1+f,result:c}}function Nr(A,a){if(A.length===0&&j2.throwError("data too short",RA.Logger.errors.BUFFER_OVERRUN,{}),A[a]>=248){var e=A[a]-247;a+1+e>A.length&&j2.throwError("data short segment too short",RA.Logger.errors.BUFFER_OVERRUN,{});var f=yr(A,a+1,e);return a+1+e+f>A.length&&j2.throwError("data long segment too short",RA.Logger.errors.BUFFER_OVERRUN,{}),Mr(A,a,a+1+e,e+f)}else if(A[a]>=192){var c=A[a]-192;return a+1+c>A.length&&j2.throwError("data array too short",RA.Logger.errors.BUFFER_OVERRUN,{}),Mr(A,a,a+1,c)}else if(A[a]>=184){var e=A[a]-183;a+1+e>A.length&&j2.throwError("data array too short",RA.Logger.errors.BUFFER_OVERRUN,{});var d=yr(A,a+1,e);a+1+e+d>A.length&&j2.throwError("data array too short",RA.Logger.errors.BUFFER_OVERRUN,{});var b=(0,e1.hexlify)(A.slice(a+1+e,a+1+e+d));return{consumed:1+e+d,result:b}}else if(A[a]>=128){var r=A[a]-128;a+1+r>A.length&&j2.throwError("data too short",RA.Logger.errors.BUFFER_OVERRUN,{});var b=(0,e1.hexlify)(A.slice(a+1,a+1+r));return{consumed:1+r,result:b}}return{consumed:1,result:(0,e1.hexlify)(A[a])}}function sm(A){var a=(0,e1.arrayify)(A),e=Nr(a,0);return e.consumed!==a.length&&j2.throwArgumentError("invalid rlp data","data",A),e.result}z1.decode=sm});var Or=U(y8=>{"use strict";Object.defineProperty(y8,"__esModule",{value:!0});y8.version=void 0;y8.version="address/5.7.0"});var a2=U(e2=>{"use strict";Object.defineProperty(e2,"__esModule",{value:!0});e2.getCreate2Address=e2.getContractAddress=e2.getIcapAddress=e2.isAddress=e2.getAddress=void 0;var SA=Xe(),z6=y0(),j6=Na(),Em=Uc(),Bm=me(),hm=Or(),$A=new Bm.Logger(hm.version);function Gr(A){(0,SA.isHexString)(A,20)||$A.throwArgumentError("invalid address","address",A),A=A.toLowerCase();for(var a=A.substring(2).split(""),e=new Uint8Array(40),f=0;f<40;f++)e[f]=a[f].charCodeAt(0);for(var c=(0,SA.arrayify)((0,j6.keccak256)(e)),f=0;f<40;f+=2)c[f>>1]>>4>=8&&(a[f]=a[f].toUpperCase()),(c[f>>1]&15)>=8&&(a[f+1]=a[f+1].toUpperCase());return"0x"+a.join("")}var Cm=9007199254740991;function gm(A){return Math.log10?Math.log10(A):Math.log(A)/Math.LN10}var _6={};for(p2=0;p2<10;p2++)_6[String(p2)]=String(p2);var p2;for(p2=0;p2<26;p2++)_6[String.fromCharCode(65+p2)]=String(10+p2);var p2,Pr=Math.floor(gm(Cm));function Vr(A){A=A.toUpperCase(),A=A.substring(4)+A.substring(0,2)+"00";for(var a=A.split("").map(function(c){return _6[c]}).join("");a.length>=Pr;){var e=a.substring(0,Pr);a=parseInt(e,10)%97+a.substring(e.length)}for(var f=String(98-parseInt(a,10)%97);f.length<2;)f="0"+f;return f}function a1(A){var a=null;if(typeof A!="string"&&$A.throwArgumentError("invalid address","address",A),A.match(/^(0x)?[0-9a-fA-F]{40}$/))A.substring(0,2)!=="0x"&&(A="0x"+A),a=Gr(A),A.match(/([A-F].*[a-f])|([a-f].*[A-F])/)&&a!==A&&$A.throwArgumentError("bad address checksum","address",A);else if(A.match(/^XE[0-9]{2}[0-9A-Za-z]{30,31}$/)){for(A.substring(2,4)!==Vr(A)&&$A.throwArgumentError("bad icap checksum","address",A),a=(0,z6._base36To16)(A.substring(4));a.length<40;)a="0"+a;a=Gr("0x"+a)}else $A.throwArgumentError("invalid address","address",A);return a}e2.getAddress=a1;function Im(A){try{return a1(A),!0}catch{}return!1}e2.isAddress=Im;function Fm(A){for(var a=(0,z6._base16To36)(a1(A).substring(2)).toUpperCase();a.length<30;)a="0"+a;return"XE"+Vr("XE00"+a)+a}e2.getIcapAddress=Fm;function Dm(A){var a=null;try{a=a1(A.from)}catch{$A.throwArgumentError("missing from address","transaction",A)}var e=(0,SA.stripZeros)((0,SA.arrayify)(z6.BigNumber.from(A.nonce).toHexString()));return a1((0,SA.hexDataSlice)((0,j6.keccak256)((0,Em.encode)([a,e])),12))}e2.getContractAddress=Dm;function mm(A,a,e){return(0,SA.hexDataLength)(a)!==32&&$A.throwArgumentError("salt must be 32 bytes","salt",a),(0,SA.hexDataLength)(e)!==32&&$A.throwArgumentError("initCodeHash must be 32 bytes","initCodeHash",e),a1((0,SA.hexDataSlice)((0,j6.keccak256)((0,SA.concat)(["0xff",a1(A),a,e])),12))}e2.getCreate2Address=mm});var Jr=U(j1=>{"use strict";var xm=j1&&j1.__extends||function(){var A=function(a,e){return A=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(f,c){f.__proto__=c}||function(f,c){for(var d in c)Object.prototype.hasOwnProperty.call(c,d)&&(f[d]=c[d])},A(a,e)};return function(a,e){if(typeof e!="function"&&e!==null)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");A(a,e);function f(){this.constructor=a}a.prototype=e===null?Object.create(e):(f.prototype=e.prototype,new f)}}();Object.defineProperty(j1,"__esModule",{value:!0});j1.AddressCoder=void 0;var Lr=a2(),pm=Xe(),Tm=$a(),wm=function(A){xm(a,A);function a(e){return A.call(this,"address","address",e,!1)||this}return a.prototype.defaultValue=function(){return"0x0000000000000000000000000000000000000000"},a.prototype.encode=function(e,f){try{f=(0,Lr.getAddress)(f)}catch(c){this._throwError(c.message,f)}return e.writeValue(f)},a.prototype.decode=function(e){return(0,Lr.getAddress)((0,pm.hexZeroPad)(e.readValue().toHexString(),20))},a}(Tm.Coder);j1.AddressCoder=wm});var Hr=U(_1=>{"use strict";var Rm=_1&&_1.__extends||function(){var A=function(a,e){return A=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(f,c){f.__proto__=c}||function(f,c){for(var d in c)Object.prototype.hasOwnProperty.call(c,d)&&(f[d]=c[d])},A(a,e)};return function(a,e){if(typeof e!="function"&&e!==null)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");A(a,e);function f(){this.constructor=a}a.prototype=e===null?Object.create(e):(f.prototype=e.prototype,new f)}}();Object.defineProperty(_1,"__esModule",{value:!0});_1.AnonymousCoder=void 0;var Sm=$a(),vm=function(A){Rm(a,A);function a(e){var f=A.call(this,e.name,e.type,void 0,e.dynamic)||this;return f.coder=e,f}return a.prototype.defaultValue=function(){return this.coder.defaultValue()},a.prototype.encode=function(e,f){return this.coder.encode(e,f)},a.prototype.decode=function(e){return this.coder.decode(e)},a}(Sm.Coder);_1.AnonymousCoder=vm});var e9=U(_2=>{"use strict";var km=_2&&_2.__extends||function(){var A=function(a,e){return A=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(f,c){f.__proto__=c}||function(f,c){for(var d in c)Object.prototype.hasOwnProperty.call(c,d)&&(f[d]=c[d])},A(a,e)};return function(a,e){if(typeof e!="function"&&e!==null)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");A(a,e);function f(){this.constructor=a}a.prototype=e===null?Object.create(e):(f.prototype=e.prototype,new f)}}();Object.defineProperty(_2,"__esModule",{value:!0});_2.ArrayCoder=_2.unpack=_2.pack=void 0;var e4=me(),Qm=W1(),$1=new e4.Logger(Qm.version),$6=$a(),ym=Hr();function Zr(A,a,e){var f=null;if(Array.isArray(e))f=e;else if(e&&typeof e=="object"){var c={};f=a.map(function(l){var t=l.localName;return t||$1.throwError("cannot encode object for signature with missing names",e4.Logger.errors.INVALID_ARGUMENT,{argument:"values",coder:l,value:e}),c[t]&&$1.throwError("cannot encode object for signature with duplicate names",e4.Logger.errors.INVALID_ARGUMENT,{argument:"values",coder:l,value:e}),c[t]=!0,e[t]})}else $1.throwArgumentError("invalid tuple value","tuple",e);a.length!==f.length&&$1.throwArgumentError("types/value length mismatch","tuple",e);var d=new $6.Writer(A.wordSize),b=new $6.Writer(A.wordSize),r=[];a.forEach(function(l,t){var B=f[t];if(l.dynamic){var x=b.length;l.encode(b,B);var p=d.writeUpdatableValue();r.push(function(w){p(w+x)})}else l.encode(d,B)}),r.forEach(function(l){l(d.length)});var n=A.appendWriter(d);return n+=A.appendWriter(b),n}_2.pack=Zr;function Yr(A,a){var e=[],f=A.subReader(0);a.forEach(function(r){var n=null;if(r.dynamic){var l=A.readValue(),t=f.subReader(l.toNumber());try{n=r.decode(t)}catch(B){if(B.code===e4.Logger.errors.BUFFER_OVERRUN)throw B;n=B,n.baseType=r.name,n.name=r.localName,n.type=r.type}}else try{n=r.decode(A)}catch(B){if(B.code===e4.Logger.errors.BUFFER_OVERRUN)throw B;n=B,n.baseType=r.name,n.name=r.localName,n.type=r.type}n!=null&&e.push(n)});var c=a.reduce(function(r,n){var l=n.localName;return l&&(r[l]||(r[l]=0),r[l]++),r},{});a.forEach(function(r,n){var l=r.localName;if(!(!l||c[l]!==1)&&(l==="length"&&(l="_length"),e[l]==null)){var t=e[n];t instanceof Error?Object.defineProperty(e,l,{enumerable:!0,get:function(){throw t}}):e[l]=t}});for(var d=function(r){var n=e[r];n instanceof Error&&Object.defineProperty(e,r,{enumerable:!0,get:function(){throw n}})},b=0;b=0?f:"")+"]",r=f===-1||e.dynamic;return d=A.call(this,"array",b,c,r)||this,d.coder=e,d.length=f,d}return a.prototype.defaultValue=function(){for(var e=this.coder.defaultValue(),f=[],c=0;ce._data.length&&$1.throwError("insufficient data length",e4.Logger.errors.BUFFER_OVERRUN,{length:e._data.length,count:f}));for(var c=[],d=0;d{"use strict";var Um=a4&&a4.__extends||function(){var A=function(a,e){return A=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(f,c){f.__proto__=c}||function(f,c){for(var d in c)Object.prototype.hasOwnProperty.call(c,d)&&(f[d]=c[d])},A(a,e)};return function(a,e){if(typeof e!="function"&&e!==null)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");A(a,e);function f(){this.constructor=a}a.prototype=e===null?Object.create(e):(f.prototype=e.prototype,new f)}}();Object.defineProperty(a4,"__esModule",{value:!0});a4.BooleanCoder=void 0;var Nm=$a(),Om=function(A){Um(a,A);function a(e){return A.call(this,"bool","bool",e,!1)||this}return a.prototype.defaultValue=function(){return!1},a.prototype.encode=function(e,f){return e.writeValue(f?1:0)},a.prototype.decode=function(e){return e.coerce(this.type,!e.readValue().isZero())},a}(Nm.Coder);a4.BooleanCoder=Om});var a9=U(ef=>{"use strict";var Wr=ef&&ef.__extends||function(){var A=function(a,e){return A=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(f,c){f.__proto__=c}||function(f,c){for(var d in c)Object.prototype.hasOwnProperty.call(c,d)&&(f[d]=c[d])},A(a,e)};return function(a,e){if(typeof e!="function"&&e!==null)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");A(a,e);function f(){this.constructor=a}a.prototype=e===null?Object.create(e):(f.prototype=e.prototype,new f)}}();Object.defineProperty(ef,"__esModule",{value:!0});ef.BytesCoder=ef.DynamicBytesCoder=void 0;var Kr=Xe(),Gm=$a(),qr=function(A){Wr(a,A);function a(e,f){return A.call(this,e,e,f,!0)||this}return a.prototype.defaultValue=function(){return"0x"},a.prototype.encode=function(e,f){f=(0,Kr.arrayify)(f);var c=e.writeValue(f.length);return c+=e.writeBytes(f),c},a.prototype.decode=function(e){return e.readBytes(e.readValue().toNumber(),!0)},a}(Gm.Coder);ef.DynamicBytesCoder=qr;var Pm=function(A){Wr(a,A);function a(e){return A.call(this,"bytes",e)||this}return a.prototype.decode=function(e){return e.coerce(this.name,(0,Kr.hexlify)(A.prototype.decode.call(this,e)))},a}(qr);ef.BytesCoder=Pm});var jr=U(A4=>{"use strict";var Vm=A4&&A4.__extends||function(){var A=function(a,e){return A=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(f,c){f.__proto__=c}||function(f,c){for(var d in c)Object.prototype.hasOwnProperty.call(c,d)&&(f[d]=c[d])},A(a,e)};return function(a,e){if(typeof e!="function"&&e!==null)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");A(a,e);function f(){this.constructor=a}a.prototype=e===null?Object.create(e):(f.prototype=e.prototype,new f)}}();Object.defineProperty(A4,"__esModule",{value:!0});A4.FixedBytesCoder=void 0;var zr=Xe(),Lm=$a(),Jm=function(A){Vm(a,A);function a(e,f){var c=this,d="bytes"+String(e);return c=A.call(this,d,d,f,!1)||this,c.size=e,c}return a.prototype.defaultValue=function(){return"0x0000000000000000000000000000000000000000000000000000000000000000".substring(0,2+this.size*2)},a.prototype.encode=function(e,f){var c=(0,zr.arrayify)(f);return c.length!==this.size&&this._throwError("incorrect data length",f),e.writeBytes(c)},a.prototype.decode=function(e){return e.coerce(this.name,(0,zr.hexlify)(e.readBytes(this.size)))},a}(Lm.Coder);A4.FixedBytesCoder=Jm});var _r=U(f4=>{"use strict";var Hm=f4&&f4.__extends||function(){var A=function(a,e){return A=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(f,c){f.__proto__=c}||function(f,c){for(var d in c)Object.prototype.hasOwnProperty.call(c,d)&&(f[d]=c[d])},A(a,e)};return function(a,e){if(typeof e!="function"&&e!==null)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");A(a,e);function f(){this.constructor=a}a.prototype=e===null?Object.create(e):(f.prototype=e.prototype,new f)}}();Object.defineProperty(f4,"__esModule",{value:!0});f4.NullCoder=void 0;var Zm=$a(),Ym=function(A){Hm(a,A);function a(e){return A.call(this,"null","",e,!1)||this}return a.prototype.defaultValue=function(){return null},a.prototype.encode=function(e,f){return f!=null&&this._throwError("not null",f),e.writeBytes([])},a.prototype.decode=function(e){return e.readBytes(0),e.coerce(this.name,null)},a}(Zm.Coder);f4.NullCoder=Ym});var $r=U(M8=>{"use strict";Object.defineProperty(M8,"__esModule",{value:!0});M8.AddressZero=void 0;M8.AddressZero="0x0000000000000000000000000000000000000000"});var en=U(J0=>{"use strict";Object.defineProperty(J0,"__esModule",{value:!0});J0.MaxInt256=J0.MinInt256=J0.MaxUint256=J0.WeiPerEther=J0.Two=J0.One=J0.Zero=J0.NegativeOne=void 0;var af=y0(),Xm=af.BigNumber.from(-1);J0.NegativeOne=Xm;var Wm=af.BigNumber.from(0);J0.Zero=Wm;var Km=af.BigNumber.from(1);J0.One=Km;var qm=af.BigNumber.from(2);J0.Two=qm;var zm=af.BigNumber.from("1000000000000000000");J0.WeiPerEther=zm;var jm=af.BigNumber.from("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");J0.MaxUint256=jm;var _m=af.BigNumber.from("-0x8000000000000000000000000000000000000000000000000000000000000000");J0.MinInt256=_m;var $m=af.BigNumber.from("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");J0.MaxInt256=$m});var an=U(U8=>{"use strict";Object.defineProperty(U8,"__esModule",{value:!0});U8.HashZero=void 0;U8.HashZero="0x0000000000000000000000000000000000000000000000000000000000000000"});var An=U(N8=>{"use strict";Object.defineProperty(N8,"__esModule",{value:!0});N8.EtherSymbol=void 0;N8.EtherSymbol="\u039E"});var A1=U(C0=>{"use strict";Object.defineProperty(C0,"__esModule",{value:!0});C0.EtherSymbol=C0.HashZero=C0.MaxInt256=C0.MinInt256=C0.MaxUint256=C0.WeiPerEther=C0.Two=C0.One=C0.Zero=C0.NegativeOne=C0.AddressZero=void 0;var ex=$r();Object.defineProperty(C0,"AddressZero",{enumerable:!0,get:function(){return ex.AddressZero}});var Af=en();Object.defineProperty(C0,"NegativeOne",{enumerable:!0,get:function(){return Af.NegativeOne}});Object.defineProperty(C0,"Zero",{enumerable:!0,get:function(){return Af.Zero}});Object.defineProperty(C0,"One",{enumerable:!0,get:function(){return Af.One}});Object.defineProperty(C0,"Two",{enumerable:!0,get:function(){return Af.Two}});Object.defineProperty(C0,"WeiPerEther",{enumerable:!0,get:function(){return Af.WeiPerEther}});Object.defineProperty(C0,"MaxUint256",{enumerable:!0,get:function(){return Af.MaxUint256}});Object.defineProperty(C0,"MinInt256",{enumerable:!0,get:function(){return Af.MinInt256}});Object.defineProperty(C0,"MaxInt256",{enumerable:!0,get:function(){return Af.MaxInt256}});var ax=an();Object.defineProperty(C0,"HashZero",{enumerable:!0,get:function(){return ax.HashZero}});var Ax=An();Object.defineProperty(C0,"EtherSymbol",{enumerable:!0,get:function(){return Ax.EtherSymbol}})});var fn=U(c4=>{"use strict";var fx=c4&&c4.__extends||function(){var A=function(a,e){return A=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(f,c){f.__proto__=c}||function(f,c){for(var d in c)Object.prototype.hasOwnProperty.call(c,d)&&(f[d]=c[d])},A(a,e)};return function(a,e){if(typeof e!="function"&&e!==null)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");A(a,e);function f(){this.constructor=a}a.prototype=e===null?Object.create(e):(f.prototype=e.prototype,new f)}}();Object.defineProperty(c4,"__esModule",{value:!0});c4.NumberCoder=void 0;var cx=y0(),O8=A1(),dx=$a(),bx=function(A){fx(a,A);function a(e,f,c){var d=this,b=(f?"int":"uint")+e*8;return d=A.call(this,b,b,c,!1)||this,d.size=e,d.signed=f,d}return a.prototype.defaultValue=function(){return 0},a.prototype.encode=function(e,f){var c=cx.BigNumber.from(f),d=O8.MaxUint256.mask(e.wordSize*8);if(this.signed){var b=d.mask(this.size*8-1);(c.gt(b)||c.lt(b.add(O8.One).mul(O8.NegativeOne)))&&this._throwError("value out-of-bounds",f)}else(c.lt(O8.Zero)||c.gt(d.mask(this.size*8)))&&this._throwError("value out-of-bounds",f);return c=c.toTwos(this.size*8).mask(this.size*8),this.signed&&(c=c.fromTwos(this.size*8).toTwos(8*e.wordSize)),e.writeValue(c)},a.prototype.decode=function(e){var f=e.readValue().mask(this.size*8);return this.signed&&(f=f.fromTwos(this.size*8)),e.coerce(this.name,f)},a}(dx.Coder);c4.NumberCoder=bx});var cn=U(G8=>{"use strict";Object.defineProperty(G8,"__esModule",{value:!0});G8.version=void 0;G8.version="strings/5.7.0"});var V8=U(S0=>{"use strict";Object.defineProperty(S0,"__esModule",{value:!0});S0.toUtf8CodePoints=S0.toUtf8String=S0._toUtf8String=S0._toEscapedUtf8String=S0.toUtf8Bytes=S0.Utf8ErrorFuncs=S0.Utf8ErrorReason=S0.UnicodeNormalizationForm=void 0;var dn=Xe(),lx=me(),rx=cn(),bn=new lx.Logger(rx.version),P8;(function(A){A.current="",A.NFC="NFC",A.NFD="NFD",A.NFKC="NFKC",A.NFKD="NFKD"})(P8=S0.UnicodeNormalizationForm||(S0.UnicodeNormalizationForm={}));var A2;(function(A){A.UNEXPECTED_CONTINUE="unexpected continuation byte",A.BAD_PREFIX="bad codepoint prefix",A.OVERRUN="string overrun",A.MISSING_CONTINUE="missing continuation byte",A.OUT_OF_RANGE="out of UTF-8 range",A.UTF16_SURROGATE="UTF-16 surrogate",A.OVERLONG="overlong representation"})(A2=S0.Utf8ErrorReason||(S0.Utf8ErrorReason={}));function nx(A,a,e,f,c){return bn.throwArgumentError("invalid codepoint at offset "+a+"; "+A,"bytes",e)}function ln(A,a,e,f,c){if(A===A2.BAD_PREFIX||A===A2.UNEXPECTED_CONTINUE){for(var d=0,b=a+1;b>6===2;b++)d++;return d}return A===A2.OVERRUN?e.length-a-1:0}function tx(A,a,e,f,c){return A===A2.OVERLONG?(f.push(c),0):(f.push(65533),ln(A,a,e,f,c))}S0.Utf8ErrorFuncs=Object.freeze({error:nx,ignore:ln,replace:tx});function f9(A,a){a==null&&(a=S0.Utf8ErrorFuncs.error),A=(0,dn.arrayify)(A);for(var e=[],f=0;f>7===0){e.push(c);continue}var d=null,b=null;if((c&224)===192)d=1,b=127;else if((c&240)===224)d=2,b=2047;else if((c&248)===240)d=3,b=65535;else{(c&192)===128?f+=a(A2.UNEXPECTED_CONTINUE,f-1,A,e):f+=a(A2.BAD_PREFIX,f-1,A,e);continue}if(f-1+d>=A.length){f+=a(A2.OVERRUN,f-1,A,e);continue}for(var r=c&(1<<8-d-1)-1,n=0;n1114111){f+=a(A2.OUT_OF_RANGE,f-1-d,A,e,r);continue}if(r>=55296&&r<=57343){f+=a(A2.UTF16_SURROGATE,f-1-d,A,e,r);continue}if(r<=b){f+=a(A2.OVERLONG,f-1-d,A,e,r);continue}e.push(r)}}return e}function rn(A,a){a===void 0&&(a=P8.current),a!=P8.current&&(bn.checkNormalize(),A=A.normalize(a));for(var e=[],f=0;f>6|192),e.push(c&63|128);else if((c&64512)==55296){f++;var d=A.charCodeAt(f);if(f>=A.length||(d&64512)!==56320)throw new Error("invalid utf-8 string");var b=65536+((c&1023)<<10)+(d&1023);e.push(b>>18|240),e.push(b>>12&63|128),e.push(b>>6&63|128),e.push(b&63|128)}else e.push(c>>12|224),e.push(c>>6&63|128),e.push(c&63|128)}return(0,dn.arrayify)(e)}S0.toUtf8Bytes=rn;function A9(A){var a="0000"+A.toString(16);return"\\u"+a.substring(a.length-4)}function ux(A,a){return'"'+f9(A,a).map(function(e){if(e<256){switch(e){case 8:return"\\b";case 9:return"\\t";case 10:return"\\n";case 13:return"\\r";case 34:return'\\"';case 92:return"\\\\"}if(e>=32&&e<127)return String.fromCharCode(e)}return e<=65535?A9(e):(e-=65536,A9((e>>10&1023)+55296)+A9((e&1023)+56320))}).join("")+'"'}S0._toEscapedUtf8String=ux;function nn(A){return A.map(function(a){return a<=65535?String.fromCharCode(a):(a-=65536,String.fromCharCode((a>>10&1023)+55296,(a&1023)+56320))}).join("")}S0._toUtf8String=nn;function ix(A,a){return nn(f9(A,a))}S0.toUtf8String=ix;function ox(A,a){return a===void 0&&(a=P8.current),f9(rn(A,a))}S0.toUtf8CodePoints=ox});var un=U(d4=>{"use strict";Object.defineProperty(d4,"__esModule",{value:!0});d4.parseBytes32String=d4.formatBytes32String=void 0;var sx=A1(),c9=Xe(),tn=V8();function Ex(A){var a=(0,tn.toUtf8Bytes)(A);if(a.length>31)throw new Error("bytes32 string must be less than 32 bytes");return(0,c9.hexlify)((0,c9.concat)([a,sx.HashZero]).slice(0,32))}d4.formatBytes32String=Ex;function Bx(A){var a=(0,c9.arrayify)(A);if(a.length!==32)throw new Error("invalid bytes32 - not 32 bytes long");if(a[31]!==0)throw new Error("invalid bytes32 string - no null terminator");for(var e=31;a[e-1]===0;)e--;return(0,tn.toUtf8String)(a.slice(0,e))}d4.parseBytes32String=Bx});var hn=U($2=>{"use strict";Object.defineProperty($2,"__esModule",{value:!0});$2.nameprep=$2._nameprepTableC=$2._nameprepTableB2=$2._nameprepTableA1=void 0;var Nc=V8();function hx(A){if(A.length%4!==0)throw new Error("bad data");for(var a=[],e=0;e=e&&A<=e+c.h&&(A-e)%(c.d||1)===0){if(c.e&&c.e.indexOf(A-e)!==-1)continue;return c}}return null}var Cx=on("221,13-1b,5f-,40-10,51-f,11-3,3-3,2-2,2-4,8,2,15,2d,28-8,88,48,27-,3-5,11-20,27-,8,28,3-5,12,18,b-a,1c-4,6-16,2-d,2-2,2,1b-4,17-9,8f-,10,f,1f-2,1c-34,33-14e,4,36-,13-,6-2,1a-f,4,9-,3-,17,8,2-2,5-,2,8-,3-,4-8,2-3,3,6-,16-6,2-,7-3,3-,17,8,3,3,3-,2,6-3,3-,4-a,5,2-6,10-b,4,8,2,4,17,8,3,6-,b,4,4-,2-e,2-4,b-10,4,9-,3-,17,8,3-,5-,9-2,3-,4-7,3-3,3,4-3,c-10,3,7-2,4,5-2,3,2,3-2,3-2,4-2,9,4-3,6-2,4,5-8,2-e,d-d,4,9,4,18,b,6-3,8,4,5-6,3-8,3-3,b-11,3,9,4,18,b,6-3,8,4,5-6,3-6,2,3-3,b-11,3,9,4,18,11-3,7-,4,5-8,2-7,3-3,b-11,3,13-2,19,a,2-,8-2,2-3,7,2,9-11,4-b,3b-3,1e-24,3,2-,3,2-,2-5,5,8,4,2,2-,3,e,4-,6,2,7-,b-,3-21,49,23-5,1c-3,9,25,10-,2-2f,23,6,3,8-2,5-5,1b-45,27-9,2a-,2-3,5b-4,45-4,53-5,8,40,2,5-,8,2,5-,28,2,5-,20,2,5-,8,2,5-,8,8,18,20,2,5-,8,28,14-5,1d-22,56-b,277-8,1e-2,52-e,e,8-a,18-8,15-b,e,4,3-b,5e-2,b-15,10,b-5,59-7,2b-555,9d-3,5b-5,17-,7-,27-,7-,9,2,2,2,20-,36,10,f-,7,14-,4,a,54-3,2-6,6-5,9-,1c-10,13-1d,1c-14,3c-,10-6,32-b,240-30,28-18,c-14,a0,115-,3,66-,b-76,5,5-,1d,24,2,5-2,2,8-,35-2,19,f-10,1d-3,311-37f,1b,5a-b,d7-19,d-3,41,57-,68-4,29-3,5f,29-37,2e-2,25-c,2c-2,4e-3,30,78-3,64-,20,19b7-49,51a7-59,48e-2,38-738,2ba5-5b,222f-,3c-94,8-b,6-4,1b,6,2,3,3,6d-20,16e-f,41-,37-7,2e-2,11-f,5-b,18-,b,14,5-3,6,88-,2,bf-2,7-,7-,7-,4-2,8,8-9,8-2ff,20,5-b,1c-b4,27-,27-cbb1,f7-9,28-2,b5-221,56,48,3-,2-,3-,5,d,2,5,3,42,5-,9,8,1d,5,6,2-2,8,153-3,123-3,33-27fd,a6da-5128,21f-5df,3-fffd,3-fffd,3-fffd,3-fffd,3-fffd,3-fffd,3-fffd,3-fffd,3-fffd,3-fffd,3-fffd,3,2-1d,61-ff7d"),gx="ad,34f,1806,180b,180c,180d,200b,200c,200d,2060,feff".split(",").map(function(A){return parseInt(A,16)}),Ix=[{h:25,s:32,l:65},{h:30,s:32,e:[23],l:127},{h:54,s:1,e:[48],l:64,d:2},{h:14,s:1,l:57,d:2},{h:44,s:1,l:17,d:2},{h:10,s:1,e:[2,6,8],l:61,d:2},{h:16,s:1,l:68,d:2},{h:84,s:1,e:[18,24,66],l:19,d:2},{h:26,s:32,e:[17],l:435},{h:22,s:1,l:71,d:2},{h:15,s:80,l:40},{h:31,s:32,l:16},{h:32,s:1,l:80,d:2},{h:52,s:1,l:42,d:2},{h:12,s:1,l:55,d:2},{h:40,s:1,e:[38],l:15,d:2},{h:14,s:1,l:48,d:2},{h:37,s:48,l:49},{h:148,s:1,l:6351,d:2},{h:88,s:1,l:160,d:2},{h:15,s:16,l:704},{h:25,s:26,l:854},{h:25,s:32,l:55915},{h:37,s:40,l:1247},{h:25,s:-119711,l:53248},{h:25,s:-119763,l:52},{h:25,s:-119815,l:52},{h:25,s:-119867,e:[1,4,5,7,8,11,12,17],l:52},{h:25,s:-119919,l:52},{h:24,s:-119971,e:[2,7,8,17],l:52},{h:24,s:-120023,e:[2,7,13,15,16,17],l:52},{h:25,s:-120075,l:52},{h:25,s:-120127,l:52},{h:25,s:-120179,l:52},{h:25,s:-120231,l:52},{h:25,s:-120283,l:52},{h:25,s:-120335,l:52},{h:24,s:-119543,e:[17],l:56},{h:24,s:-119601,e:[17],l:58},{h:24,s:-119659,e:[17],l:58},{h:24,s:-119717,e:[17],l:58},{h:24,s:-119775,e:[17],l:58}],Fx=d9("b5:3bc,c3:ff,7:73,2:253,5:254,3:256,1:257,5:259,1:25b,3:260,1:263,2:269,1:268,5:26f,1:272,2:275,7:280,3:283,5:288,3:28a,1:28b,5:292,3f:195,1:1bf,29:19e,125:3b9,8b:3b2,1:3b8,1:3c5,3:3c6,1:3c0,1a:3ba,1:3c1,1:3c3,2:3b8,1:3b5,1bc9:3b9,1c:1f76,1:1f77,f:1f7a,1:1f7b,d:1f78,1:1f79,1:1f7c,1:1f7d,107:63,5:25b,4:68,1:68,1:68,3:69,1:69,1:6c,3:6e,4:70,1:71,1:72,1:72,1:72,7:7a,2:3c9,2:7a,2:6b,1:e5,1:62,1:63,3:65,1:66,2:6d,b:3b3,1:3c0,6:64,1b574:3b8,1a:3c3,20:3b8,1a:3c3,20:3b8,1a:3c3,20:3b8,1a:3c3,20:3b8,1a:3c3"),Dx=d9("179:1,2:1,2:1,5:1,2:1,a:4f,a:1,8:1,2:1,2:1,3:1,5:1,3:1,4:1,2:1,3:1,4:1,8:2,1:1,2:2,1:1,2:2,27:2,195:26,2:25,1:25,1:25,2:40,2:3f,1:3f,33:1,11:-6,1:-9,1ac7:-3a,6d:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,9:-8,1:-8,1:-8,1:-8,1:-8,1:-8,b:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,9:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,9:-8,1:-8,1:-8,1:-8,1:-8,1:-8,c:-8,2:-8,2:-8,2:-8,9:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,49:-8,1:-8,1:-4a,1:-4a,d:-56,1:-56,1:-56,1:-56,d:-8,1:-8,f:-8,1:-8,3:-7"),mx=d9("df:00730073,51:00690307,19:02BC006E,a7:006A030C,18a:002003B9,16:03B903080301,20:03C503080301,1d7:05650582,190f:00680331,1:00740308,1:0077030A,1:0079030A,1:006102BE,b6:03C50313,2:03C503130300,2:03C503130301,2:03C503130342,2a:1F0003B9,1:1F0103B9,1:1F0203B9,1:1F0303B9,1:1F0403B9,1:1F0503B9,1:1F0603B9,1:1F0703B9,1:1F0003B9,1:1F0103B9,1:1F0203B9,1:1F0303B9,1:1F0403B9,1:1F0503B9,1:1F0603B9,1:1F0703B9,1:1F2003B9,1:1F2103B9,1:1F2203B9,1:1F2303B9,1:1F2403B9,1:1F2503B9,1:1F2603B9,1:1F2703B9,1:1F2003B9,1:1F2103B9,1:1F2203B9,1:1F2303B9,1:1F2403B9,1:1F2503B9,1:1F2603B9,1:1F2703B9,1:1F6003B9,1:1F6103B9,1:1F6203B9,1:1F6303B9,1:1F6403B9,1:1F6503B9,1:1F6603B9,1:1F6703B9,1:1F6003B9,1:1F6103B9,1:1F6203B9,1:1F6303B9,1:1F6403B9,1:1F6503B9,1:1F6603B9,1:1F6703B9,3:1F7003B9,1:03B103B9,1:03AC03B9,2:03B10342,1:03B1034203B9,5:03B103B9,6:1F7403B9,1:03B703B9,1:03AE03B9,2:03B70342,1:03B7034203B9,5:03B703B9,6:03B903080300,1:03B903080301,3:03B90342,1:03B903080342,b:03C503080300,1:03C503080301,1:03C10313,2:03C50342,1:03C503080342,b:1F7C03B9,1:03C903B9,1:03CE03B9,2:03C90342,1:03C9034203B9,5:03C903B9,ac:00720073,5b:00B00063,6:00B00066,d:006E006F,a:0073006D,1:00740065006C,1:0074006D,124f:006800700061,2:00610075,2:006F0076,b:00700061,1:006E0061,1:03BC0061,1:006D0061,1:006B0061,1:006B0062,1:006D0062,1:00670062,3:00700066,1:006E0066,1:03BC0066,4:0068007A,1:006B0068007A,1:006D0068007A,1:00670068007A,1:00740068007A,15:00700061,1:006B00700061,1:006D00700061,1:006700700061,8:00700076,1:006E0076,1:03BC0076,1:006D0076,1:006B0076,1:006D0076,1:00700077,1:006E0077,1:03BC0077,1:006D0077,1:006B0077,1:006D0077,1:006B03C9,1:006D03C9,2:00620071,3:00632215006B0067,1:0063006F002E,1:00640062,1:00670079,2:00680070,2:006B006B,1:006B006D,9:00700068,2:00700070006D,1:00700072,2:00730076,1:00770062,c723:00660066,1:00660069,1:0066006C,1:006600660069,1:00660066006C,1:00730074,1:00730074,d:05740576,1:05740565,1:0574056B,1:057E0576,1:0574056D",hx),xx=on("80-20,2a0-,39c,32,f71,18e,7f2-f,19-7,30-4,7-5,f81-b,5,a800-20ff,4d1-1f,110,fa-6,d174-7,2e84-,ffff-,ffff-,ffff-,ffff-,ffff-,ffff-,ffff-,ffff-,ffff-,ffff-,ffff-,ffff-,2,1f-5f,ff7f-20001");function px(A){return A.reduce(function(a,e){return e.forEach(function(f){a.push(f)}),a},[])}function sn(A){return!!b9(A,Cx)}$2._nameprepTableA1=sn;function En(A){var a=b9(A,Ix);if(a)return[A+a.s];var e=Fx[A];if(e)return e;var f=Dx[A];if(f)return[A+f[0]];var c=mx[A];return c||null}$2._nameprepTableB2=En;function Bn(A){return!!b9(A,xx)}$2._nameprepTableC=Bn;function Tx(A){if(A.match(/^[a-z0-9-]*$/i)&&A.length<=59)return A.toLowerCase();var a=(0,Nc.toUtf8CodePoints)(A);a=px(a.map(function(f){if(gx.indexOf(f)>=0)return[];if(f>=65024&&f<=65039)return[];var c=En(f);return c||[f]})),a=(0,Nc.toUtf8CodePoints)((0,Nc._toUtf8String)(a),Nc.UnicodeNormalizationForm.NFKC),a.forEach(function(f){if(Bn(f))throw new Error("STRINGPREP_CONTAINS_PROHIBITED")}),a.forEach(function(f){if(sn(f))throw new Error("STRINGPREP_CONTAINS_UNASSIGNED")});var e=(0,Nc._toUtf8String)(a);if(e.substring(0,1)==="-"||e.substring(2,4)==="--"||e.substring(e.length-1)==="-")throw new Error("invalid hyphen");return e}$2.nameprep=Tx});var U0=U(T0=>{"use strict";Object.defineProperty(T0,"__esModule",{value:!0});T0.nameprep=T0.parseBytes32String=T0.formatBytes32String=T0.UnicodeNormalizationForm=T0.Utf8ErrorReason=T0.Utf8ErrorFuncs=T0.toUtf8String=T0.toUtf8CodePoints=T0.toUtf8Bytes=T0._toEscapedUtf8String=void 0;var Cn=un();Object.defineProperty(T0,"formatBytes32String",{enumerable:!0,get:function(){return Cn.formatBytes32String}});Object.defineProperty(T0,"parseBytes32String",{enumerable:!0,get:function(){return Cn.parseBytes32String}});var wx=hn();Object.defineProperty(T0,"nameprep",{enumerable:!0,get:function(){return wx.nameprep}});var f1=V8();Object.defineProperty(T0,"_toEscapedUtf8String",{enumerable:!0,get:function(){return f1._toEscapedUtf8String}});Object.defineProperty(T0,"toUtf8Bytes",{enumerable:!0,get:function(){return f1.toUtf8Bytes}});Object.defineProperty(T0,"toUtf8CodePoints",{enumerable:!0,get:function(){return f1.toUtf8CodePoints}});Object.defineProperty(T0,"toUtf8String",{enumerable:!0,get:function(){return f1.toUtf8String}});Object.defineProperty(T0,"UnicodeNormalizationForm",{enumerable:!0,get:function(){return f1.UnicodeNormalizationForm}});Object.defineProperty(T0,"Utf8ErrorFuncs",{enumerable:!0,get:function(){return f1.Utf8ErrorFuncs}});Object.defineProperty(T0,"Utf8ErrorReason",{enumerable:!0,get:function(){return f1.Utf8ErrorReason}})});var In=U(b4=>{"use strict";var Rx=b4&&b4.__extends||function(){var A=function(a,e){return A=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(f,c){f.__proto__=c}||function(f,c){for(var d in c)Object.prototype.hasOwnProperty.call(c,d)&&(f[d]=c[d])},A(a,e)};return function(a,e){if(typeof e!="function"&&e!==null)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");A(a,e);function f(){this.constructor=a}a.prototype=e===null?Object.create(e):(f.prototype=e.prototype,new f)}}();Object.defineProperty(b4,"__esModule",{value:!0});b4.StringCoder=void 0;var gn=U0(),Sx=a9(),vx=function(A){Rx(a,A);function a(e){return A.call(this,"string",e)||this}return a.prototype.defaultValue=function(){return""},a.prototype.encode=function(e,f){return A.prototype.encode.call(this,e,(0,gn.toUtf8Bytes)(f))},a.prototype.decode=function(e){return(0,gn.toUtf8String)(A.prototype.decode.call(this,e))},a}(Sx.DynamicBytesCoder);b4.StringCoder=vx});var Dn=U(l4=>{"use strict";var kx=l4&&l4.__extends||function(){var A=function(a,e){return A=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(f,c){f.__proto__=c}||function(f,c){for(var d in c)Object.prototype.hasOwnProperty.call(c,d)&&(f[d]=c[d])},A(a,e)};return function(a,e){if(typeof e!="function"&&e!==null)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");A(a,e);function f(){this.constructor=a}a.prototype=e===null?Object.create(e):(f.prototype=e.prototype,new f)}}();Object.defineProperty(l4,"__esModule",{value:!0});l4.TupleCoder=void 0;var Qx=$a(),Fn=e9(),yx=function(A){kx(a,A);function a(e,f){var c=this,d=!1,b=[];e.forEach(function(n){n.dynamic&&(d=!0),b.push(n.type)});var r="tuple("+b.join(",")+")";return c=A.call(this,"tuple",r,f,d)||this,c.coders=e,c}return a.prototype.defaultValue=function(){var e=[];this.coders.forEach(function(c){e.push(c.defaultValue())});var f=this.coders.reduce(function(c,d){var b=d.localName;return b&&(c[b]||(c[b]=0),c[b]++),c},{});return this.coders.forEach(function(c,d){var b=c.localName;!b||f[b]!==1||(b==="length"&&(b="_length"),e[b]==null&&(e[b]=e[d]))}),Object.freeze(e)},a.prototype.encode=function(e,f){return(0,Fn.pack)(e,this.coders,f)},a.prototype.decode=function(e){return e.coerce(this.name,(0,Fn.unpack)(e,this.coders))},a}(Qx.Coder);l4.TupleCoder=yx});var r9=U(r4=>{"use strict";Object.defineProperty(r4,"__esModule",{value:!0});r4.defaultAbiCoder=r4.AbiCoder=void 0;var Mx=Xe(),Ux=c0(),xn=me(),Nx=W1(),L8=new xn.Logger(Nx.version),mn=$a(),Ox=Jr(),Gx=e9(),Px=Xr(),Vx=a9(),Lx=jr(),Jx=_r(),Hx=fn(),Zx=In(),J8=Dn(),l9=v8(),Yx=new RegExp(/^bytes([0-9]*)$/),Xx=new RegExp(/^(u?int)([0-9]*)$/),pn=function(){function A(a){(0,Ux.defineReadOnly)(this,"coerceFunc",a||null)}return A.prototype._getCoder=function(a){var e=this;switch(a.baseType){case"address":return new Ox.AddressCoder(a.name);case"bool":return new Px.BooleanCoder(a.name);case"string":return new Zx.StringCoder(a.name);case"bytes":return new Vx.BytesCoder(a.name);case"array":return new Gx.ArrayCoder(this._getCoder(a.arrayChildren),a.arrayLength,a.name);case"tuple":return new J8.TupleCoder((a.components||[]).map(function(d){return e._getCoder(d)}),a.name);case"":return new Jx.NullCoder(a.name)}var f=a.type.match(Xx);if(f){var c=parseInt(f[2]||"256");return(c===0||c>256||c%8!==0)&&L8.throwArgumentError("invalid "+f[1]+" bit length","param",a),new Hx.NumberCoder(c/8,f[1]==="int",a.name)}if(f=a.type.match(Yx),f){var c=parseInt(f[1]);return(c===0||c>32)&&L8.throwArgumentError("invalid bytes length","param",a),new Lx.FixedBytesCoder(c,a.name)}return L8.throwArgumentError("invalid type","type",a.type)},A.prototype._getWordSize=function(){return 32},A.prototype._getReader=function(a,e){return new mn.Reader(a,this._getWordSize(),this.coerceFunc,e)},A.prototype._getWriter=function(){return new mn.Writer(this._getWordSize())},A.prototype.getDefaultValue=function(a){var e=this,f=a.map(function(d){return e._getCoder(l9.ParamType.from(d))}),c=new J8.TupleCoder(f,"_");return c.defaultValue()},A.prototype.encode=function(a,e){var f=this;a.length!==e.length&&L8.throwError("types/values length mismatch",xn.Logger.errors.INVALID_ARGUMENT,{count:{types:a.length,values:e.length},value:{types:a,values:e}});var c=a.map(function(r){return f._getCoder(l9.ParamType.from(r))}),d=new J8.TupleCoder(c,"_"),b=this._getWriter();return d.encode(b,e),b.data},A.prototype.decode=function(a,e,f){var c=this,d=a.map(function(r){return c._getCoder(l9.ParamType.from(r))}),b=new J8.TupleCoder(d,"_");return b.decode(this._getReader((0,Mx.arrayify)(e),f))},A}();r4.AbiCoder=pn;r4.defaultAbiCoder=new pn});var n9=U(H8=>{"use strict";Object.defineProperty(H8,"__esModule",{value:!0});H8.id=void 0;var Wx=Na(),Kx=U0();function qx(A){return(0,Wx.keccak256)((0,Kx.toUtf8Bytes)(A))}H8.id=qx});var t9=U(Z8=>{"use strict";Object.defineProperty(Z8,"__esModule",{value:!0});Z8.version=void 0;Z8.version="hash/5.7.0"});var wn=U(n4=>{"use strict";Object.defineProperty(n4,"__esModule",{value:!0});n4.encode=n4.decode=void 0;var Tn=Xe();function zx(A){return(0,Tn.arrayify)(new Uint8Array(Buffer.from(A,"base64")))}n4.decode=zx;function jx(A){return Buffer.from((0,Tn.arrayify)(A)).toString("base64")}n4.encode=jx});var Oc=U(t4=>{"use strict";Object.defineProperty(t4,"__esModule",{value:!0});t4.encode=t4.decode=void 0;var Rn=wn();Object.defineProperty(t4,"decode",{enumerable:!0,get:function(){return Rn.decode}});Object.defineProperty(t4,"encode",{enumerable:!0,get:function(){return Rn.encode}})});var i9=U(H0=>{"use strict";Object.defineProperty(H0,"__esModule",{value:!0});H0.read_emoji_trie=H0.read_zero_terminated_array=H0.read_mapped_map=H0.read_member_array=H0.signed=H0.read_compressed_payload=H0.read_payload=H0.decode_arithmetic=void 0;function vn(A,a){a==null&&(a=1);var e=[],f=e.forEach,c=function(d,b){f.call(d,function(r){b>0&&Array.isArray(r)?c(r,b-1):e.push(r)})};return c(A,a),e}function _x(A){for(var a={},e=0;e>--l&1}for(var x=31,p=Math.pow(2,x),w=p>>>1,y=w>>1,N=p-1,Q=0,b=0;b1;){var ce=Z+de>>>1;_>>1|B(),H=H<<1^w,k=(k^w)<<1|w|1;V=H,q=1+k-H}var E=f-4;return P.map(function(D){switch(D-E){case 3:return E+65792+(A[n++]<<16|A[n++]<<8|A[n++]);case 2:return E+256+(A[n++]<<8|A[n++]);case 1:return E+A[n++];default:return D-1}})}H0.decode_arithmetic=kn;function Qn(A){var a=0;return function(){return A[a++]}}H0.read_payload=Qn;function $x(A){return Qn(kn(A))}H0.read_compressed_payload=$x;function yn(A){return A&1?~A>>1:A>>1}H0.signed=yn;function ep(A,a){for(var e=Array(A),f=0;f>=1;var n=d==1,l=d==2;return{branches:f,valid:b,fe0f:r,save:n,check:l}}}H0.read_emoji_trie=dp});var Nn=U(Y8=>{"use strict";Object.defineProperty(Y8,"__esModule",{value:!0});Y8.getData=void 0;var bp=Oc(),lp=i9();function rp(){return(0,lp.read_compressed_payload)((0,bp.decode)("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"))}Y8.getData=rp});var Vn=U(u4=>{"use strict";Object.defineProperty(u4,"__esModule",{value:!0});u4.ens_normalize=u4.ens_normalize_post_check=void 0;var np=U0(),tp=Nn(),X8=(0,tp.getData)(),W8=i9(),up=new Set((0,W8.read_member_array)(X8)),ip=new Set((0,W8.read_member_array)(X8)),op=(0,W8.read_mapped_map)(X8),sp=(0,W8.read_emoji_trie)(X8),On=45,Gn=95;function Pn(A){return(0,np.toUtf8CodePoints)(A)}function Ep(A){return A.filter(function(a){return a!=65039})}function o9(A){for(var a=0,e=A.split(".");a=0;d--)if(c[d]!==Gn)throw new Error("underscore only allowed at start");if(c.length>=4&&c.every(function(b){return b<128})&&c[2]===On&&c[3]===On)throw new Error("invalid label extension")}catch(b){throw new Error('Invalid label "'+f+'": '+b.message)}}return A}u4.ens_normalize_post_check=o9;function Bp(A){return o9(hp(A,Ep))}u4.ens_normalize=Bp;function hp(A,a){for(var e=Pn(A).reverse(),f=[];e.length;){var c=gp(e);if(c){f.push.apply(f,a(c));continue}var d=e.pop();if(up.has(d)){f.push(d);continue}if(!ip.has(d)){var b=op[d];if(b){f.push.apply(f,b);continue}throw new Error("Disallowed codepoint: 0x"+d.toString(16).toUpperCase())}}return o9(Cp(String.fromCodePoint.apply(String,f)))}function Cp(A){return A.normalize("NFC")}function gp(A,a){var e,f=sp,c,d,b=[],r=A.length;a&&(a.length=0);for(var n=function(){var t=A[--r];if(f=(e=f.branches.find(function(B){return B.set.has(t)}))===null||e===void 0?void 0:e.node,!f)return"break";if(f.save)d=t;else if(f.check&&t===d)return"break";b.push(t),f.fe0f&&(b.push(65039),r>0&&A[r-1]==65039&&r--),f.valid&&(c=b.slice(),f.valid==2&&c.splice(1,1),a&&a.push.apply(a,A.slice(r).reverse()),A.length=r)};r;){var l=n();if(l==="break")break}return c}});var s9=U(eA=>{"use strict";Object.defineProperty(eA,"__esModule",{value:!0});eA.dnsEncode=eA.namehash=eA.isValidName=eA.ensNormalize=void 0;var K8=Xe(),Hn=U0(),Ln=Na(),Ip=me(),Fp=t9(),Dp=new Ip.Logger(Fp.version),mp=Vn(),Zn=new Uint8Array(32);Zn.fill(0);function Jn(A){if(A.length===0)throw new Error("invalid ENS name; empty component");return A}function q8(A){var a=(0,Hn.toUtf8Bytes)((0,mp.ens_normalize)(A)),e=[];if(A.length===0)return e;for(var f=0,c=0;c=a.length)throw new Error("invalid ENS name; empty component");return e.push(Jn(a.slice(f))),e}function xp(A){return q8(A).map(function(a){return(0,Hn.toUtf8String)(a)}).join(".")}eA.ensNormalize=xp;function pp(A){try{return q8(A).length!==0}catch{}return!1}eA.isValidName=pp;function Tp(A){typeof A!="string"&&Dp.throwArgumentError("invalid ENS name; not a string","name",A);for(var a=Zn,e=q8(A);e.length;)a=(0,Ln.keccak256)((0,K8.concat)([a,(0,Ln.keccak256)(e.pop())]));return(0,K8.hexlify)(a)}eA.namehash=Tp;function wp(A){return(0,K8.hexlify)((0,K8.concat)(q8(A).map(function(a){if(a.length>63)throw new Error("invalid DNS encoded entry; length exceeds 63 bytes");var e=new Uint8Array(a.length+1);return e.set(a,1),e[0]=e.length-1,e})))+"00"}eA.dnsEncode=wp});var Yn=U(c1=>{"use strict";Object.defineProperty(c1,"__esModule",{value:!0});c1.hashMessage=c1.messagePrefix=void 0;var Rp=Xe(),Sp=Na(),E9=U0();c1.messagePrefix=`Ethereum Signed Message: +`;function vp(A){return typeof A=="string"&&(A=(0,E9.toUtf8Bytes)(A)),(0,Sp.keccak256)((0,Rp.concat)([(0,E9.toUtf8Bytes)(c1.messagePrefix),(0,E9.toUtf8Bytes)(String(A.length)),A]))}c1.hashMessage=vp});var et=U(ff=>{"use strict";var kp=ff&&ff.__awaiter||function(A,a,e,f){function c(d){return d instanceof e?d:new e(function(b){b(d)})}return new(e||(e=Promise))(function(d,b){function r(t){try{l(f.next(t))}catch(B){b(B)}}function n(t){try{l(f.throw(t))}catch(B){b(B)}}function l(t){t.done?d(t.value):c(t.value).then(r,n)}l((f=f.apply(A,a||[])).next())})},Qp=ff&&ff.__generator||function(A,a){var e={label:0,sent:function(){if(d[0]&1)throw d[1];return d[1]},trys:[],ops:[]},f,c,d,b;return b={next:r(0),throw:r(1),return:r(2)},typeof Symbol=="function"&&(b[Symbol.iterator]=function(){return this}),b;function r(l){return function(t){return n([l,t])}}function n(l){if(f)throw new TypeError("Generator is already executing.");for(;e;)try{if(f=1,c&&(d=l[0]&2?c.return:l[0]?c.throw||((d=c.return)&&d.call(c),0):c.next)&&!(d=d.call(c,l[1])).done)return d;switch(c=0,d&&(l=[l[0]&2,d.value]),l[0]){case 0:case 1:d=l;break;case 4:return e.label++,{value:l[1],done:!1};case 5:e.label++,c=l[1],l=[0];continue;case 7:l=e.ops.pop(),e.trys.pop();continue;default:if(d=e.trys,!(d=d.length>0&&d[d.length-1])&&(l[0]===6||l[0]===2)){e=0;continue}if(l[0]===3&&(!d||l[1]>d[0]&&l[1]256||a[2]&&a[2]!==String(f))&&F0.throwArgumentError("invalid numeric width","type",A);var c=Np.mask(e?f-1:f),d=e?c.add($n).mul(Up):_n;return function(r){var n=b1.BigNumber.from(r);return(n.lt(d)||n.gt(c))&&F0.throwArgumentError("value out-of-bounds for "+A,"value",r),(0,_0.hexZeroPad)(n.toTwos(256).toHexString(),32)}}}{var a=A.match(/^bytes(\d+)$/);if(a){var b=parseInt(a[1]);return(b===0||b>32||a[1]!==String(b))&&F0.throwArgumentError("invalid bytes width","type",A),function(n){var l=(0,_0.arrayify)(n);return l.length!==b&&F0.throwArgumentError("invalid length for "+A,"value",n),Op(n)}}}switch(A){case"address":return function(r){return(0,_0.hexZeroPad)((0,qn.getAddress)(r),32)};case"bool":return function(r){return r?Gp:Pp};case"bytes":return function(r){return(0,i4.keccak256)(r)};case"string":return function(r){return(0,zn.id)(r)}}return null}function Kn(A,a){return A+"("+a.map(function(e){var f=e.name,c=e.type;return c+" "+f}).join(",")+")"}var Lp=function(){function A(a){(0,d1.defineReadOnly)(this,"types",Object.freeze((0,d1.deepCopy)(a))),(0,d1.defineReadOnly)(this,"_encoderCache",{}),(0,d1.defineReadOnly)(this,"_types",{});var e={},f={},c={};Object.keys(a).forEach(function(B){e[B]={},f[B]=[],c[B]={}});var d=function(B){var x={};a[B].forEach(function(p){x[p.name]&&F0.throwArgumentError("duplicate variable name "+JSON.stringify(p.name)+" in "+JSON.stringify(B),"types",a),x[p.name]=!0;var w=p.type.match(/^([^\x5b]*)(\x5b|$)/)[1];w===B&&F0.throwArgumentError("circular type reference to "+JSON.stringify(w),"types",a);var y=h9(w);y||(f[w]||F0.throwArgumentError("unknown type "+JSON.stringify(w),"types",a),f[w].push(B),e[B][w]=!0)})};for(var b in a)d(b);var r=Object.keys(f).filter(function(B){return f[B].length===0});r.length===0?F0.throwArgumentError("missing primary type","types",a):r.length>1&&F0.throwArgumentError("ambiguous primary types or unused types: "+r.map(function(B){return JSON.stringify(B)}).join(", "),"types",a),(0,d1.defineReadOnly)(this,"primaryType",r[0]);function n(B,x){x[B]&&F0.throwArgumentError("circular type reference to "+JSON.stringify(B),"types",a),x[B]=!0,Object.keys(e[B]).forEach(function(p){!f[p]||(n(p,x),Object.keys(x).forEach(function(w){c[w][p]=!0}))}),delete x[B]}n(this.primaryType,{});for(var l in c){var t=Object.keys(c[l]);t.sort(),this._types[l]=Kn(l,a[l])+t.map(function(B){return Kn(B,a[B])}).join("")}}return A.prototype.getEncoder=function(a){var e=this._encoderCache[a];return e||(e=this._encoderCache[a]=this._getEncoder(a)),e},A.prototype._getEncoder=function(a){var e=this;{var f=h9(a);if(f)return f}var c=a.match(/^(.*)(\x5b(\d*)\x5d)$/);if(c){var d=c[1],b=this.getEncoder(d),r=parseInt(c[3]);return function(t){r>=0&&t.length!==r&&F0.throwArgumentError("array length mismatch; expected length ${ arrayLength }","value",t);var B=t.map(b);return e._types[d]&&(B=B.map(i4.keccak256)),(0,i4.keccak256)((0,_0.hexConcat)(B))}}var n=this.types[a];if(n){var l=(0,zn.id)(this._types[a]);return function(t){var B=n.map(function(x){var p=x.name,w=x.type,y=e.getEncoder(w)(t[p]);return e._types[w]?(0,i4.keccak256)(y):y});return B.unshift(l),(0,_0.hexConcat)(B)}}return F0.throwArgumentError("unknown type: "+a,"type",a)},A.prototype.encodeType=function(a){var e=this._types[a];return e||F0.throwArgumentError("unknown type: "+JSON.stringify(a),"name",a),e},A.prototype.encodeData=function(a,e){return this.getEncoder(a)(e)},A.prototype.hashStruct=function(a,e){return(0,i4.keccak256)(this.encodeData(a,e))},A.prototype.encode=function(a){return this.encodeData(this.primaryType,a)},A.prototype.hash=function(a){return this.hashStruct(this.primaryType,a)},A.prototype._visit=function(a,e,f){var c=this;{var d=h9(a);if(d)return f(a,e)}var b=a.match(/^(.*)(\x5b(\d*)\x5d)$/);if(b){var r=b[1],n=parseInt(b[3]);return n>=0&&e.length!==n&&F0.throwArgumentError("array length mismatch; expected length ${ arrayLength }","value",e),e.map(function(t){return c._visit(r,t,f)})}var l=this.types[a];return l?l.reduce(function(t,B){var x=B.name,p=B.type;return t[x]=c._visit(p,e[x],f),t},{}):F0.throwArgumentError("unknown type: "+a,"type",a)},A.prototype.visit=function(a,e){return this._visit(this.primaryType,a,e)},A.from=function(a){return new A(a)},A.getPrimaryType=function(a){return A.from(a).primaryType},A.hashStruct=function(a,e,f){return A.from(e).hashStruct(a,f)},A.hashDomain=function(a){var e=[];for(var f in a){var c=Xn[f];c||F0.throwArgumentError("invalid typed-data domain key: "+JSON.stringify(f),"domain",a),e.push({name:f,type:c})}return e.sort(function(d,b){return B9.indexOf(d.name)-B9.indexOf(b.name)}),A.hashStruct("EIP712Domain",{EIP712Domain:e},a)},A.encode=function(a,e,f){return(0,_0.hexConcat)(["0x1901",A.hashDomain(a),A.from(e).hash(f)])},A.hash=function(a,e,f){return(0,i4.keccak256)(A.encode(a,e,f))},A.resolveNames=function(a,e,f,c){return kp(this,void 0,void 0,function(){var d,b,r,n,l,t,B,x;return Qp(this,function(p){switch(p.label){case 0:a=(0,d1.shallowCopy)(a),d={},a.verifyingContract&&!(0,_0.isHexString)(a.verifyingContract,20)&&(d[a.verifyingContract]="0x"),b=A.from(e),b.visit(f,function(w,y){return w==="address"&&!(0,_0.isHexString)(y,20)&&(d[y]="0x"),y}),r=[];for(n in d)r.push(n);l=0,p.label=1;case 1:return l{"use strict";Object.defineProperty(Z0,"__esModule",{value:!0});Z0._TypedDataEncoder=Z0.hashMessage=Z0.messagePrefix=Z0.ensNormalize=Z0.isValidName=Z0.namehash=Z0.dnsEncode=Z0.id=void 0;var Jp=n9();Object.defineProperty(Z0,"id",{enumerable:!0,get:function(){return Jp.id}});var C9=s9();Object.defineProperty(Z0,"dnsEncode",{enumerable:!0,get:function(){return C9.dnsEncode}});Object.defineProperty(Z0,"isValidName",{enumerable:!0,get:function(){return C9.isValidName}});Object.defineProperty(Z0,"namehash",{enumerable:!0,get:function(){return C9.namehash}});var at=Yn();Object.defineProperty(Z0,"hashMessage",{enumerable:!0,get:function(){return at.hashMessage}});Object.defineProperty(Z0,"messagePrefix",{enumerable:!0,get:function(){return at.messagePrefix}});var Hp=s9();Object.defineProperty(Z0,"ensNormalize",{enumerable:!0,get:function(){return Hp.ensNormalize}});var Zp=et();Object.defineProperty(Z0,"_TypedDataEncoder",{enumerable:!0,get:function(){return Zp.TypedDataEncoder}})});var rt=U(ta=>{"use strict";var _8=ta&&ta.__extends||function(){var A=function(a,e){return A=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(f,c){f.__proto__=c}||function(f,c){for(var d in c)Object.prototype.hasOwnProperty.call(c,d)&&(f[d]=c[d])},A(a,e)};return function(a,e){if(typeof e!="function"&&e!==null)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");A(a,e);function f(){this.constructor=a}a.prototype=e===null?Object.create(e):(f.prototype=e.prototype,new f)}}();Object.defineProperty(ta,"__esModule",{value:!0});ta.Interface=ta.Indexed=ta.ErrorDescription=ta.TransactionDescription=ta.LogDescription=ta.checkResultErrors=void 0;var Yp=a2(),At=y0(),g0=Xe(),z8=l1(),ft=Na(),$0=c0(),Xp=r9(),Wp=$a();Object.defineProperty(ta,"checkResultErrors",{enumerable:!0,get:function(){return Wp.checkResultErrors}});var vA=v8(),j8=me(),Kp=W1(),D0=new j8.Logger(Kp.version),dt=function(A){_8(a,A);function a(){return A!==null&&A.apply(this,arguments)||this}return a}($0.Description);ta.LogDescription=dt;var bt=function(A){_8(a,A);function a(){return A!==null&&A.apply(this,arguments)||this}return a}($0.Description);ta.TransactionDescription=bt;var lt=function(A){_8(a,A);function a(){return A!==null&&A.apply(this,arguments)||this}return a}($0.Description);ta.ErrorDescription=lt;var g9=function(A){_8(a,A);function a(){return A!==null&&A.apply(this,arguments)||this}return a.isIndexed=function(e){return!!(e&&e._isIndexed)},a}($0.Description);ta.Indexed=g9;var qp={"0x08c379a0":{signature:"Error(string)",name:"Error",inputs:["string"],reason:!0},"0x4e487b71":{signature:"Panic(uint256)",name:"Panic",inputs:["uint256"]}};function ct(A,a){var e=new Error("deferred error during ABI decoding triggered accessing "+A);return e.error=a,e}var zp=function(){function A(a){var e=this.constructor,f=this,c=[];typeof a=="string"?c=JSON.parse(a):c=a,(0,$0.defineReadOnly)(this,"fragments",c.map(function(d){return vA.Fragment.from(d)}).filter(function(d){return d!=null})),(0,$0.defineReadOnly)(this,"_abiCoder",(0,$0.getStatic)(e,"getAbiCoder")()),(0,$0.defineReadOnly)(this,"functions",{}),(0,$0.defineReadOnly)(this,"errors",{}),(0,$0.defineReadOnly)(this,"events",{}),(0,$0.defineReadOnly)(this,"structs",{}),this.fragments.forEach(function(d){var b=null;switch(d.type){case"constructor":if(f.deploy){D0.warn("duplicate definition - constructor");return}(0,$0.defineReadOnly)(f,"deploy",d);return;case"function":b=f.functions;break;case"event":b=f.events;break;case"error":b=f.errors;break;default:return}var r=d.format();if(b[r]){D0.warn("duplicate definition - "+r);return}b[r]=d}),this.deploy||(0,$0.defineReadOnly)(this,"deploy",vA.ConstructorFragment.from({payable:!1,type:"constructor"})),(0,$0.defineReadOnly)(this,"_isInterface",!0)}return A.prototype.format=function(a){a||(a=vA.FormatTypes.full),a===vA.FormatTypes.sighash&&D0.throwArgumentError("interface does not support formatting sighash","format",a);var e=this.fragments.map(function(f){return f.format(a)});return a===vA.FormatTypes.json?JSON.stringify(e.map(function(f){return JSON.parse(f)})):e},A.getAbiCoder=function(){return Xp.defaultAbiCoder},A.getAddress=function(a){return(0,Yp.getAddress)(a)},A.getSighash=function(a){return(0,g0.hexDataSlice)((0,z8.id)(a.format()),0,4)},A.getEventTopic=function(a){return(0,z8.id)(a.format())},A.prototype.getFunction=function(a){if((0,g0.isHexString)(a)){for(var e in this.functions)if(a===this.getSighash(e))return this.functions[e];D0.throwArgumentError("no matching function","sighash",a)}if(a.indexOf("(")===-1){var f=a.trim(),c=Object.keys(this.functions).filter(function(b){return b.split("(")[0]===f});return c.length===0?D0.throwArgumentError("no matching function","name",f):c.length>1&&D0.throwArgumentError("multiple matching functions","name",f),this.functions[c[0]]}var d=this.functions[vA.FunctionFragment.fromString(a).format()];return d||D0.throwArgumentError("no matching function","signature",a),d},A.prototype.getEvent=function(a){if((0,g0.isHexString)(a)){var e=a.toLowerCase();for(var f in this.events)if(e===this.getEventTopic(f))return this.events[f];D0.throwArgumentError("no matching event","topichash",e)}if(a.indexOf("(")===-1){var c=a.trim(),d=Object.keys(this.events).filter(function(r){return r.split("(")[0]===c});return d.length===0?D0.throwArgumentError("no matching event","name",c):d.length>1&&D0.throwArgumentError("multiple matching events","name",c),this.events[d[0]]}var b=this.events[vA.EventFragment.fromString(a).format()];return b||D0.throwArgumentError("no matching event","signature",a),b},A.prototype.getError=function(a){if((0,g0.isHexString)(a)){var e=(0,$0.getStatic)(this.constructor,"getSighash");for(var f in this.errors){var c=this.errors[f];if(a===e(c))return this.errors[f]}D0.throwArgumentError("no matching error","sighash",a)}if(a.indexOf("(")===-1){var d=a.trim(),b=Object.keys(this.errors).filter(function(n){return n.split("(")[0]===d});return b.length===0?D0.throwArgumentError("no matching error","name",d):b.length>1&&D0.throwArgumentError("multiple matching errors","name",d),this.errors[b[0]]}var r=this.errors[vA.FunctionFragment.fromString(a).format()];return r||D0.throwArgumentError("no matching error","signature",a),r},A.prototype.getSighash=function(a){if(typeof a=="string")try{a=this.getFunction(a)}catch(e){try{a=this.getError(a)}catch{throw e}}return(0,$0.getStatic)(this.constructor,"getSighash")(a)},A.prototype.getEventTopic=function(a){return typeof a=="string"&&(a=this.getEvent(a)),(0,$0.getStatic)(this.constructor,"getEventTopic")(a)},A.prototype._decodeParams=function(a,e){return this._abiCoder.decode(a,e)},A.prototype._encodeParams=function(a,e){return this._abiCoder.encode(a,e)},A.prototype.encodeDeploy=function(a){return this._encodeParams(this.deploy.inputs,a||[])},A.prototype.decodeErrorResult=function(a,e){typeof a=="string"&&(a=this.getError(a));var f=(0,g0.arrayify)(e);return(0,g0.hexlify)(f.slice(0,4))!==this.getSighash(a)&&D0.throwArgumentError("data signature does not match error "+a.name+".","data",(0,g0.hexlify)(f)),this._decodeParams(a.inputs,f.slice(4))},A.prototype.encodeErrorResult=function(a,e){return typeof a=="string"&&(a=this.getError(a)),(0,g0.hexlify)((0,g0.concat)([this.getSighash(a),this._encodeParams(a.inputs,e||[])]))},A.prototype.decodeFunctionData=function(a,e){typeof a=="string"&&(a=this.getFunction(a));var f=(0,g0.arrayify)(e);return(0,g0.hexlify)(f.slice(0,4))!==this.getSighash(a)&&D0.throwArgumentError("data signature does not match function "+a.name+".","data",(0,g0.hexlify)(f)),this._decodeParams(a.inputs,f.slice(4))},A.prototype.encodeFunctionData=function(a,e){return typeof a=="string"&&(a=this.getFunction(a)),(0,g0.hexlify)((0,g0.concat)([this.getSighash(a),this._encodeParams(a.inputs,e||[])]))},A.prototype.decodeFunctionResult=function(a,e){typeof a=="string"&&(a=this.getFunction(a));var f=(0,g0.arrayify)(e),c=null,d="",b=null,r=null,n=null;switch(f.length%this._abiCoder._getWordSize()){case 0:try{return this._abiCoder.decode(a.outputs,f)}catch{}break;case 4:{var l=(0,g0.hexlify)(f.slice(0,4)),t=qp[l];if(t)b=this._abiCoder.decode(t.inputs,f.slice(4)),r=t.name,n=t.signature,t.reason&&(c=b[0]),r==="Error"?d="; VM Exception while processing transaction: reverted with reason string "+JSON.stringify(b[0]):r==="Panic"&&(d="; VM Exception while processing transaction: reverted with panic code "+b[0]);else try{var B=this.getError(l);b=this._abiCoder.decode(B.inputs,f.slice(4)),r=B.name,n=B.format()}catch{}break}}return D0.throwError("call revert exception"+d,j8.Logger.errors.CALL_EXCEPTION,{method:a.format(),data:(0,g0.hexlify)(e),errorArgs:b,errorName:r,errorSignature:n,reason:c})},A.prototype.encodeFunctionResult=function(a,e){return typeof a=="string"&&(a=this.getFunction(a)),(0,g0.hexlify)(this._abiCoder.encode(a.outputs,e||[]))},A.prototype.encodeFilterTopics=function(a,e){var f=this;typeof a=="string"&&(a=this.getEvent(a)),e.length>a.inputs.length&&D0.throwError("too many arguments for "+a.format(),j8.Logger.errors.UNEXPECTED_ARGUMENT,{argument:"values",value:e});var c=[];a.anonymous||c.push(this.getEventTopic(a));var d=function(b,r){return b.type==="string"?(0,z8.id)(r):b.type==="bytes"?(0,ft.keccak256)((0,g0.hexlify)(r)):(b.type==="bool"&&typeof r=="boolean"&&(r=r?"0x01":"0x00"),b.type.match(/^u?int/)&&(r=At.BigNumber.from(r).toHexString()),b.type==="address"&&f._abiCoder.encode(["address"],[r]),(0,g0.hexZeroPad)((0,g0.hexlify)(r),32))};for(e.forEach(function(b,r){var n=a.inputs[r];if(!n.indexed){b!=null&&D0.throwArgumentError("cannot filter non-indexed parameters; must be null","contract."+n.name,b);return}b==null?c.push(null):n.baseType==="array"||n.baseType==="tuple"?D0.throwArgumentError("filtering with tuples or arrays not supported","contract."+n.name,b):Array.isArray(b)?c.push(b.map(function(l){return d(n,l)})):c.push(d(n,b))});c.length&&c[c.length-1]===null;)c.pop();return c},A.prototype.encodeEventLog=function(a,e){var f=this;typeof a=="string"&&(a=this.getEvent(a));var c=[],d=[],b=[];return a.anonymous||c.push(this.getEventTopic(a)),e.length!==a.inputs.length&&D0.throwArgumentError("event arguments/values mismatch","values",e),a.inputs.forEach(function(r,n){var l=e[n];if(r.indexed)if(r.type==="string")c.push((0,z8.id)(l));else if(r.type==="bytes")c.push((0,ft.keccak256)(l));else{if(r.baseType==="tuple"||r.baseType==="array")throw new Error("not implemented");c.push(f._abiCoder.encode([r.type],[l]))}else d.push(r),b.push(l)}),{data:this._abiCoder.encode(d,b),topics:c}},A.prototype.decodeEventLog=function(a,e,f){if(typeof a=="string"&&(a=this.getEvent(a)),f!=null&&!a.anonymous){var c=this.getEventTopic(a);(!(0,g0.isHexString)(f[0],32)||f[0].toLowerCase()!==c)&&D0.throwError("fragment/topic mismatch",j8.Logger.errors.INVALID_ARGUMENT,{argument:"topics[0]",expected:c,value:f[0]}),f=f.slice(1)}var d=[],b=[],r=[];a.inputs.forEach(function(y,N){y.indexed?y.type==="string"||y.type==="bytes"||y.baseType==="tuple"||y.baseType==="array"?(d.push(vA.ParamType.fromObject({type:"bytes32",name:y.name})),r.push(!0)):(d.push(y),r.push(!1)):(b.push(y),r.push(!1))});var n=f!=null?this._abiCoder.decode(d,(0,g0.concat)(f)):null,l=this._abiCoder.decode(b,e,!0),t=[],B=0,x=0;a.inputs.forEach(function(y,N){if(y.indexed)if(n==null)t[N]=new g9({_isIndexed:!0,hash:null});else if(r[N])t[N]=new g9({_isIndexed:!0,hash:n[x++]});else try{t[N]=n[x++]}catch(P){t[N]=P}else try{t[N]=l[B++]}catch(P){t[N]=P}if(y.name&&t[y.name]==null){var Q=t[N];Q instanceof Error?Object.defineProperty(t,y.name,{enumerable:!0,get:function(){throw ct("property "+JSON.stringify(y.name),Q)}}):t[y.name]=Q}});for(var p=function(y){var N=t[y];N instanceof Error&&Object.defineProperty(t,y,{enumerable:!0,get:function(){throw ct("index "+y,N)}})},w=0;w{"use strict";Object.defineProperty(r0,"__esModule",{value:!0});r0.TransactionDescription=r0.LogDescription=r0.checkResultErrors=r0.Indexed=r0.Interface=r0.defaultAbiCoder=r0.AbiCoder=r0.FormatTypes=r0.ParamType=r0.FunctionFragment=r0.Fragment=r0.EventFragment=r0.ErrorFragment=r0.ConstructorFragment=void 0;var r1=v8();Object.defineProperty(r0,"ConstructorFragment",{enumerable:!0,get:function(){return r1.ConstructorFragment}});Object.defineProperty(r0,"ErrorFragment",{enumerable:!0,get:function(){return r1.ErrorFragment}});Object.defineProperty(r0,"EventFragment",{enumerable:!0,get:function(){return r1.EventFragment}});Object.defineProperty(r0,"FormatTypes",{enumerable:!0,get:function(){return r1.FormatTypes}});Object.defineProperty(r0,"Fragment",{enumerable:!0,get:function(){return r1.Fragment}});Object.defineProperty(r0,"FunctionFragment",{enumerable:!0,get:function(){return r1.FunctionFragment}});Object.defineProperty(r0,"ParamType",{enumerable:!0,get:function(){return r1.ParamType}});var nt=r9();Object.defineProperty(r0,"AbiCoder",{enumerable:!0,get:function(){return nt.AbiCoder}});Object.defineProperty(r0,"defaultAbiCoder",{enumerable:!0,get:function(){return nt.defaultAbiCoder}});var Gc=rt();Object.defineProperty(r0,"checkResultErrors",{enumerable:!0,get:function(){return Gc.checkResultErrors}});Object.defineProperty(r0,"Indexed",{enumerable:!0,get:function(){return Gc.Indexed}});Object.defineProperty(r0,"Interface",{enumerable:!0,get:function(){return Gc.Interface}});Object.defineProperty(r0,"LogDescription",{enumerable:!0,get:function(){return Gc.LogDescription}});Object.defineProperty(r0,"TransactionDescription",{enumerable:!0,get:function(){return Gc.TransactionDescription}})});var tt=U(ed=>{"use strict";Object.defineProperty(ed,"__esModule",{value:!0});ed.version=void 0;ed.version="abstract-provider/5.7.0"});var o4=U(Y0=>{"use strict";var Ad=Y0&&Y0.__extends||function(){var A=function(a,e){return A=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(f,c){f.__proto__=c}||function(f,c){for(var d in c)Object.prototype.hasOwnProperty.call(c,d)&&(f[d]=c[d])},A(a,e)};return function(a,e){if(typeof e!="function"&&e!==null)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");A(a,e);function f(){this.constructor=a}a.prototype=e===null?Object.create(e):(f.prototype=e.prototype,new f)}}(),jp=Y0&&Y0.__awaiter||function(A,a,e,f){function c(d){return d instanceof e?d:new e(function(b){b(d)})}return new(e||(e=Promise))(function(d,b){function r(t){try{l(f.next(t))}catch(B){b(B)}}function n(t){try{l(f.throw(t))}catch(B){b(B)}}function l(t){t.done?d(t.value):c(t.value).then(r,n)}l((f=f.apply(A,a||[])).next())})},_p=Y0&&Y0.__generator||function(A,a){var e={label:0,sent:function(){if(d[0]&1)throw d[1];return d[1]},trys:[],ops:[]},f,c,d,b;return b={next:r(0),throw:r(1),return:r(2)},typeof Symbol=="function"&&(b[Symbol.iterator]=function(){return this}),b;function r(l){return function(t){return n([l,t])}}function n(l){if(f)throw new TypeError("Generator is already executing.");for(;e;)try{if(f=1,c&&(d=l[0]&2?c.return:l[0]?c.throw||((d=c.return)&&d.call(c),0):c.next)&&!(d=d.call(c,l[1])).done)return d;switch(c=0,d&&(l=[l[0]&2,d.value]),l[0]){case 0:case 1:d=l;break;case 4:return e.label++,{value:l[1],done:!1};case 5:e.label++,c=l[1],l=[0];continue;case 7:l=e.ops.pop(),e.trys.pop();continue;default:if(d=e.trys,!(d=d.length>0&&d[d.length-1])&&(l[0]===6||l[0]===2)){e=0;continue}if(l[0]===3&&(!d||l[1]>d[0]&&l[1]{"use strict";Object.defineProperty(cd,"__esModule",{value:!0});cd.version=void 0;cd.version="abstract-signer/5.7.0"});var Vc=U(c2=>{"use strict";var bT=c2&&c2.__extends||function(){var A=function(a,e){return A=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(f,c){f.__proto__=c}||function(f,c){for(var d in c)Object.prototype.hasOwnProperty.call(c,d)&&(f[d]=c[d])},A(a,e)};return function(a,e){if(typeof e!="function"&&e!==null)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");A(a,e);function f(){this.constructor=a}a.prototype=e===null?Object.create(e):(f.prototype=e.prototype,new f)}}(),T2=c2&&c2.__awaiter||function(A,a,e,f){function c(d){return d instanceof e?d:new e(function(b){b(d)})}return new(e||(e=Promise))(function(d,b){function r(t){try{l(f.next(t))}catch(B){b(B)}}function n(t){try{l(f.throw(t))}catch(B){b(B)}}function l(t){t.done?d(t.value):c(t.value).then(r,n)}l((f=f.apply(A,a||[])).next())})},w2=c2&&c2.__generator||function(A,a){var e={label:0,sent:function(){if(d[0]&1)throw d[1];return d[1]},trys:[],ops:[]},f,c,d,b;return b={next:r(0),throw:r(1),return:r(2)},typeof Symbol=="function"&&(b[Symbol.iterator]=function(){return this}),b;function r(l){return function(t){return n([l,t])}}function n(l){if(f)throw new TypeError("Generator is already executing.");for(;e;)try{if(f=1,c&&(d=l[0]&2?c.return:l[0]?c.throw||((d=c.return)&&d.call(c),0):c.next)&&!(d=d.call(c,l[1])).done)return d;switch(c=0,d&&(l=[l[0]&2,d.value]),l[0]){case 0:case 1:d=l;break;case 4:return e.label++,{value:l[1],done:!1};case 5:e.label++,c=l[1],l=[0];continue;case 7:l=e.ops.pop(),e.trys.pop();continue;default:if(d=e.trys,!(d=d.length>0&&d[d.length-1])&&(l[0]===6||l[0]===2)){e=0;continue}if(l[0]===3&&(!d||l[1]>d[0]&&l[1]=0)throw n;return f2.throwError("cannot estimate gas; transaction may fail or may require manual gas limit",kA.Logger.errors.UNPREDICTABLE_GAS_LIMIT,{error:n,tx:e})})),e.chainId==null?e.chainId=this.getChainId():e.chainId=Promise.all([Promise.resolve(e.chainId),this.getChainId()]).then(function(n){return n[1]!==0&&n[0]!==n[1]&&f2.throwArgumentError("chainId address mismatch","transaction",a),n[0]}),[4,(0,cf.resolveProperties)(e)];case 6:return[2,r.sent()]}})})},A.prototype._checkProvider=function(a){this.provider||f2.throwError("missing provider",kA.Logger.errors.UNSUPPORTED_OPERATION,{operation:a||"_checkProvider"})},A.isSigner=function(a){return!!(a&&a._isSigner)},A}();c2.Signer=it;var tT=function(A){bT(a,A);function a(e,f){var c=A.call(this)||this;return(0,cf.defineReadOnly)(c,"address",e),(0,cf.defineReadOnly)(c,"provider",f||null),c}return a.prototype.getAddress=function(){return Promise.resolve(this.address)},a.prototype._fail=function(e,f){return Promise.resolve().then(function(){f2.throwError(e,kA.Logger.errors.UNSUPPORTED_OPERATION,{operation:f})})},a.prototype.signMessage=function(e){return this._fail("VoidSigner cannot sign messages","signMessage")},a.prototype.signTransaction=function(e){return this._fail("VoidSigner cannot sign transactions","signTransaction")},a.prototype._signTypedData=function(e,f,c){return this._fail("VoidSigner cannot sign typed data","signTypedData")},a.prototype.connect=function(e){return new a(this.address,e)},a}(it);c2.VoidSigner=tT});var ot=U((AZ,uT)=>{uT.exports={name:"elliptic",version:"6.5.4",description:"EC cryptography",main:"lib/elliptic.js",files:["lib"],scripts:{lint:"eslint lib test","lint:fix":"npm run lint -- --fix",unit:"istanbul test _mocha --reporter=spec test/index.js",test:"npm run lint && npm run unit",version:"grunt dist && git add dist/"},repository:{type:"git",url:"git@github.com:indutny/elliptic"},keywords:["EC","Elliptic","curve","Cryptography"],author:"Fedor Indutny ",license:"MIT",bugs:{url:"https://github.com/indutny/elliptic/issues"},homepage:"https://github.com/indutny/elliptic",devDependencies:{brfs:"^2.0.2",coveralls:"^3.1.0",eslint:"^7.6.0",grunt:"^1.2.1","grunt-browserify":"^5.3.0","grunt-cli":"^1.3.2","grunt-contrib-connect":"^3.0.0","grunt-contrib-copy":"^1.0.0","grunt-contrib-uglify":"^5.0.0","grunt-mocha-istanbul":"^5.0.2","grunt-saucelabs":"^9.0.1",istanbul:"^0.4.5",mocha:"^8.0.1"},dependencies:{"bn.js":"^4.11.9",brorand:"^1.1.0","hash.js":"^1.0.0","hmac-drbg":"^1.0.1",inherits:"^2.0.4","minimalistic-assert":"^1.0.1","minimalistic-crypto-utils":"^1.0.1"}}});var aA=U((st,F9)=>{(function(A,a){"use strict";function e(k,E){if(!k)throw new Error(E||"Assertion failed")}function f(k,E){k.super_=E;var D=function(){};D.prototype=E.prototype,k.prototype=new D,k.prototype.constructor=k}function c(k,E,D){if(c.isBN(k))return k;this.negative=0,this.words=null,this.length=0,this.red=null,k!==null&&((E==="le"||E==="be")&&(D=E,E=10),this._init(k||0,E||10,D||"be"))}typeof A=="object"?A.exports=c:a.BN=c,c.BN=c,c.wordSize=26;var d;try{typeof window<"u"&&typeof window.Buffer<"u"?d=window.Buffer:d=require("buffer").Buffer}catch{}c.isBN=function(E){return E instanceof c?!0:E!==null&&typeof E=="object"&&E.constructor.wordSize===c.wordSize&&Array.isArray(E.words)},c.max=function(E,D){return E.cmp(D)>0?E:D},c.min=function(E,D){return E.cmp(D)<0?E:D},c.prototype._init=function(E,D,h){if(typeof E=="number")return this._initNumber(E,D,h);if(typeof E=="object")return this._initArray(E,D,h);D==="hex"&&(D=16),e(D===(D|0)&&D>=2&&D<=36),E=E.toString().replace(/\s+/g,"");var u=0;E[0]==="-"&&(u++,this.negative=1),u=0;u-=3)C=E[u]|E[u-1]<<8|E[u-2]<<16,this.words[o]|=C<>>26-m&67108863,m+=24,m>=26&&(m-=26,o++);else if(h==="le")for(u=0,o=0;u>>26-m&67108863,m+=24,m>=26&&(m-=26,o++);return this.strip()};function b(k,E){var D=k.charCodeAt(E);return D>=65&&D<=70?D-55:D>=97&&D<=102?D-87:D-48&15}function r(k,E,D){var h=b(k,D);return D-1>=E&&(h|=b(k,D-1)<<4),h}c.prototype._parseHex=function(E,D,h){this.length=Math.ceil((E.length-D)/6),this.words=new Array(this.length);for(var u=0;u=D;u-=2)m=r(E,D,u)<=18?(o-=18,C+=1,this.words[C]|=m>>>26):o+=8;else{var g=E.length-D;for(u=g%2===0?D+1:D;u=18?(o-=18,C+=1,this.words[C]|=m>>>26):o+=8}this.strip()};function n(k,E,D,h){for(var u=0,o=Math.min(k.length,D),C=E;C=49?u+=m-49+10:m>=17?u+=m-17+10:u+=m}return u}c.prototype._parseBase=function(E,D,h){this.words=[0],this.length=1;for(var u=0,o=1;o<=67108863;o*=D)u++;u--,o=o/D|0;for(var C=E.length-h,m=C%u,g=Math.min(C,C-m)+h,i=0,I=h;I1&&this.words[this.length-1]===0;)this.length--;return this._normSign()},c.prototype._normSign=function(){return this.length===1&&this.words[0]===0&&(this.negative=0),this},c.prototype.inspect=function(){return(this.red?""};var l=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],t=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],B=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];c.prototype.toString=function(E,D){E=E||10,D=D|0||1;var h;if(E===16||E==="hex"){h="";for(var u=0,o=0,C=0;C>>24-u&16777215,o!==0||C!==this.length-1?h=l[6-g.length]+g+h:h=g+h,u+=2,u>=26&&(u-=26,C--)}for(o!==0&&(h=o.toString(16)+h);h.length%D!==0;)h="0"+h;return this.negative!==0&&(h="-"+h),h}if(E===(E|0)&&E>=2&&E<=36){var i=t[E],I=B[E];h="";var R=this.clone();for(R.negative=0;!R.isZero();){var s=R.modn(I).toString(E);R=R.idivn(I),R.isZero()?h=s+h:h=l[i-s.length]+s+h}for(this.isZero()&&(h="0"+h);h.length%D!==0;)h="0"+h;return this.negative!==0&&(h="-"+h),h}e(!1,"Base should be between 2 and 36")},c.prototype.toNumber=function(){var E=this.words[0];return this.length===2?E+=this.words[1]*67108864:this.length===3&&this.words[2]===1?E+=4503599627370496+this.words[1]*67108864:this.length>2&&e(!1,"Number can only safely store up to 53 bits"),this.negative!==0?-E:E},c.prototype.toJSON=function(){return this.toString(16)},c.prototype.toBuffer=function(E,D){return e(typeof d<"u"),this.toArrayLike(d,E,D)},c.prototype.toArray=function(E,D){return this.toArrayLike(Array,E,D)},c.prototype.toArrayLike=function(E,D,h){var u=this.byteLength(),o=h||Math.max(1,u);e(u<=o,"byte array longer than desired length"),e(o>0,"Requested array length <= 0"),this.strip();var C=D==="le",m=new E(o),g,i,I=this.clone();if(C){for(i=0;!I.isZero();i++)g=I.andln(255),I.iushrn(8),m[i]=g;for(;i=4096&&(h+=13,D>>>=13),D>=64&&(h+=7,D>>>=7),D>=8&&(h+=4,D>>>=4),D>=2&&(h+=2,D>>>=2),h+D},c.prototype._zeroBits=function(E){if(E===0)return 26;var D=E,h=0;return(D&8191)===0&&(h+=13,D>>>=13),(D&127)===0&&(h+=7,D>>>=7),(D&15)===0&&(h+=4,D>>>=4),(D&3)===0&&(h+=2,D>>>=2),(D&1)===0&&h++,h},c.prototype.bitLength=function(){var E=this.words[this.length-1],D=this._countBits(E);return(this.length-1)*26+D};function x(k){for(var E=new Array(k.bitLength()),D=0;D>>u}return E}c.prototype.zeroBits=function(){if(this.isZero())return 0;for(var E=0,D=0;DE.length?this.clone().ior(E):E.clone().ior(this)},c.prototype.uor=function(E){return this.length>E.length?this.clone().iuor(E):E.clone().iuor(this)},c.prototype.iuand=function(E){var D;this.length>E.length?D=E:D=this;for(var h=0;hE.length?this.clone().iand(E):E.clone().iand(this)},c.prototype.uand=function(E){return this.length>E.length?this.clone().iuand(E):E.clone().iuand(this)},c.prototype.iuxor=function(E){var D,h;this.length>E.length?(D=this,h=E):(D=E,h=this);for(var u=0;uE.length?this.clone().ixor(E):E.clone().ixor(this)},c.prototype.uxor=function(E){return this.length>E.length?this.clone().iuxor(E):E.clone().iuxor(this)},c.prototype.inotn=function(E){e(typeof E=="number"&&E>=0);var D=Math.ceil(E/26)|0,h=E%26;this._expand(D),h>0&&D--;for(var u=0;u0&&(this.words[u]=~this.words[u]&67108863>>26-h),this.strip()},c.prototype.notn=function(E){return this.clone().inotn(E)},c.prototype.setn=function(E,D){e(typeof E=="number"&&E>=0);var h=E/26|0,u=E%26;return this._expand(h+1),D?this.words[h]=this.words[h]|1<E.length?(h=this,u=E):(h=E,u=this);for(var o=0,C=0;C>>26;for(;o!==0&&C>>26;if(this.length=h.length,o!==0)this.words[this.length]=o,this.length++;else if(h!==this)for(;CE.length?this.clone().iadd(E):E.clone().iadd(this)},c.prototype.isub=function(E){if(E.negative!==0){E.negative=0;var D=this.iadd(E);return E.negative=1,D._normSign()}else if(this.negative!==0)return this.negative=0,this.iadd(E),this.negative=1,this._normSign();var h=this.cmp(E);if(h===0)return this.negative=0,this.length=1,this.words[0]=0,this;var u,o;h>0?(u=this,o=E):(u=E,o=this);for(var C=0,m=0;m>26,this.words[m]=D&67108863;for(;C!==0&&m>26,this.words[m]=D&67108863;if(C===0&&m>>26,R=g&67108863,s=Math.min(i,E.length-1),F=Math.max(0,i-k.length+1);F<=s;F++){var ee=i-F|0;u=k.words[ee]|0,o=E.words[F]|0,C=u*o+R,I+=C/67108864|0,R=C&67108863}D.words[i]=R|0,g=I|0}return g!==0?D.words[i]=g|0:D.length--,D.strip()}var w=function(E,D,h){var u=E.words,o=D.words,C=h.words,m=0,g,i,I,R=u[0]|0,s=R&8191,F=R>>>13,ee=u[1]|0,T=ee&8191,J=ee>>>13,W=u[2]|0,Ae=W&8191,S=W>>>13,M=u[3]|0,v=M&8191,O=M>>>13,K=u[4]|0,G=K&8191,X=K>>>13,j=u[5]|0,Y=j&8191,$=j>>>13,fe=u[6]|0,ae=fe&8191,be=fe>>>13,oe=u[7]|0,re=oe&8191,ue=oe>>>13,l0=u[8]|0,ne=l0&8191,te=l0>>>13,s0=u[9]|0,Fe=s0&8191,De=s0>>>13,wa=o[0]|0,he=wa&8191,Ie=wa>>>13,I0=o[1]|0,Be=I0&8191,ie=I0>>>13,G2=o[2]|0,pe=G2&8191,Te=G2>>>13,P2=o[3]|0,we=P2&8191,Re=P2>>>13,V2=o[4]|0,Se=V2&8191,ve=V2>>>13,L2=o[5]|0,ke=L2&8191,Qe=L2>>>13,J2=o[6]|0,ye=J2&8191,Me=J2>>>13,H2=o[7]|0,Ue=H2&8191,Ne=H2>>>13,Z2=o[8]|0,Oe=Z2&8191,Ge=Z2>>>13,Y2=o[9]|0,Pe=Y2&8191,Ve=Y2>>>13;h.negative=E.negative^D.negative,h.length=19,g=Math.imul(s,he),i=Math.imul(s,Ie),i=i+Math.imul(F,he)|0,I=Math.imul(F,Ie);var m2=(m+g|0)+((i&8191)<<13)|0;m=(I+(i>>>13)|0)+(m2>>>26)|0,m2&=67108863,g=Math.imul(T,he),i=Math.imul(T,Ie),i=i+Math.imul(J,he)|0,I=Math.imul(J,Ie),g=g+Math.imul(s,Be)|0,i=i+Math.imul(s,ie)|0,i=i+Math.imul(F,Be)|0,I=I+Math.imul(F,ie)|0;var n0=(m+g|0)+((i&8191)<<13)|0;m=(I+(i>>>13)|0)+(n0>>>26)|0,n0&=67108863,g=Math.imul(Ae,he),i=Math.imul(Ae,Ie),i=i+Math.imul(S,he)|0,I=Math.imul(S,Ie),g=g+Math.imul(T,Be)|0,i=i+Math.imul(T,ie)|0,i=i+Math.imul(J,Be)|0,I=I+Math.imul(J,ie)|0,g=g+Math.imul(s,pe)|0,i=i+Math.imul(s,Te)|0,i=i+Math.imul(F,pe)|0,I=I+Math.imul(F,Te)|0;var t0=(m+g|0)+((i&8191)<<13)|0;m=(I+(i>>>13)|0)+(t0>>>26)|0,t0&=67108863,g=Math.imul(v,he),i=Math.imul(v,Ie),i=i+Math.imul(O,he)|0,I=Math.imul(O,Ie),g=g+Math.imul(Ae,Be)|0,i=i+Math.imul(Ae,ie)|0,i=i+Math.imul(S,Be)|0,I=I+Math.imul(S,ie)|0,g=g+Math.imul(T,pe)|0,i=i+Math.imul(T,Te)|0,i=i+Math.imul(J,pe)|0,I=I+Math.imul(J,Te)|0,g=g+Math.imul(s,we)|0,i=i+Math.imul(s,Re)|0,i=i+Math.imul(F,we)|0,I=I+Math.imul(F,Re)|0;var Xa=(m+g|0)+((i&8191)<<13)|0;m=(I+(i>>>13)|0)+(Xa>>>26)|0,Xa&=67108863,g=Math.imul(G,he),i=Math.imul(G,Ie),i=i+Math.imul(X,he)|0,I=Math.imul(X,Ie),g=g+Math.imul(v,Be)|0,i=i+Math.imul(v,ie)|0,i=i+Math.imul(O,Be)|0,I=I+Math.imul(O,ie)|0,g=g+Math.imul(Ae,pe)|0,i=i+Math.imul(Ae,Te)|0,i=i+Math.imul(S,pe)|0,I=I+Math.imul(S,Te)|0,g=g+Math.imul(T,we)|0,i=i+Math.imul(T,Re)|0,i=i+Math.imul(J,we)|0,I=I+Math.imul(J,Re)|0,g=g+Math.imul(s,Se)|0,i=i+Math.imul(s,ve)|0,i=i+Math.imul(F,Se)|0,I=I+Math.imul(F,ve)|0;var Wa=(m+g|0)+((i&8191)<<13)|0;m=(I+(i>>>13)|0)+(Wa>>>26)|0,Wa&=67108863,g=Math.imul(Y,he),i=Math.imul(Y,Ie),i=i+Math.imul($,he)|0,I=Math.imul($,Ie),g=g+Math.imul(G,Be)|0,i=i+Math.imul(G,ie)|0,i=i+Math.imul(X,Be)|0,I=I+Math.imul(X,ie)|0,g=g+Math.imul(v,pe)|0,i=i+Math.imul(v,Te)|0,i=i+Math.imul(O,pe)|0,I=I+Math.imul(O,Te)|0,g=g+Math.imul(Ae,we)|0,i=i+Math.imul(Ae,Re)|0,i=i+Math.imul(S,we)|0,I=I+Math.imul(S,Re)|0,g=g+Math.imul(T,Se)|0,i=i+Math.imul(T,ve)|0,i=i+Math.imul(J,Se)|0,I=I+Math.imul(J,ve)|0,g=g+Math.imul(s,ke)|0,i=i+Math.imul(s,Qe)|0,i=i+Math.imul(F,ke)|0,I=I+Math.imul(F,Qe)|0;var Ka=(m+g|0)+((i&8191)<<13)|0;m=(I+(i>>>13)|0)+(Ka>>>26)|0,Ka&=67108863,g=Math.imul(ae,he),i=Math.imul(ae,Ie),i=i+Math.imul(be,he)|0,I=Math.imul(be,Ie),g=g+Math.imul(Y,Be)|0,i=i+Math.imul(Y,ie)|0,i=i+Math.imul($,Be)|0,I=I+Math.imul($,ie)|0,g=g+Math.imul(G,pe)|0,i=i+Math.imul(G,Te)|0,i=i+Math.imul(X,pe)|0,I=I+Math.imul(X,Te)|0,g=g+Math.imul(v,we)|0,i=i+Math.imul(v,Re)|0,i=i+Math.imul(O,we)|0,I=I+Math.imul(O,Re)|0,g=g+Math.imul(Ae,Se)|0,i=i+Math.imul(Ae,ve)|0,i=i+Math.imul(S,Se)|0,I=I+Math.imul(S,ve)|0,g=g+Math.imul(T,ke)|0,i=i+Math.imul(T,Qe)|0,i=i+Math.imul(J,ke)|0,I=I+Math.imul(J,Qe)|0,g=g+Math.imul(s,ye)|0,i=i+Math.imul(s,Me)|0,i=i+Math.imul(F,ye)|0,I=I+Math.imul(F,Me)|0;var qa=(m+g|0)+((i&8191)<<13)|0;m=(I+(i>>>13)|0)+(qa>>>26)|0,qa&=67108863,g=Math.imul(re,he),i=Math.imul(re,Ie),i=i+Math.imul(ue,he)|0,I=Math.imul(ue,Ie),g=g+Math.imul(ae,Be)|0,i=i+Math.imul(ae,ie)|0,i=i+Math.imul(be,Be)|0,I=I+Math.imul(be,ie)|0,g=g+Math.imul(Y,pe)|0,i=i+Math.imul(Y,Te)|0,i=i+Math.imul($,pe)|0,I=I+Math.imul($,Te)|0,g=g+Math.imul(G,we)|0,i=i+Math.imul(G,Re)|0,i=i+Math.imul(X,we)|0,I=I+Math.imul(X,Re)|0,g=g+Math.imul(v,Se)|0,i=i+Math.imul(v,ve)|0,i=i+Math.imul(O,Se)|0,I=I+Math.imul(O,ve)|0,g=g+Math.imul(Ae,ke)|0,i=i+Math.imul(Ae,Qe)|0,i=i+Math.imul(S,ke)|0,I=I+Math.imul(S,Qe)|0,g=g+Math.imul(T,ye)|0,i=i+Math.imul(T,Me)|0,i=i+Math.imul(J,ye)|0,I=I+Math.imul(J,Me)|0,g=g+Math.imul(s,Ue)|0,i=i+Math.imul(s,Ne)|0,i=i+Math.imul(F,Ue)|0,I=I+Math.imul(F,Ne)|0;var za=(m+g|0)+((i&8191)<<13)|0;m=(I+(i>>>13)|0)+(za>>>26)|0,za&=67108863,g=Math.imul(ne,he),i=Math.imul(ne,Ie),i=i+Math.imul(te,he)|0,I=Math.imul(te,Ie),g=g+Math.imul(re,Be)|0,i=i+Math.imul(re,ie)|0,i=i+Math.imul(ue,Be)|0,I=I+Math.imul(ue,ie)|0,g=g+Math.imul(ae,pe)|0,i=i+Math.imul(ae,Te)|0,i=i+Math.imul(be,pe)|0,I=I+Math.imul(be,Te)|0,g=g+Math.imul(Y,we)|0,i=i+Math.imul(Y,Re)|0,i=i+Math.imul($,we)|0,I=I+Math.imul($,Re)|0,g=g+Math.imul(G,Se)|0,i=i+Math.imul(G,ve)|0,i=i+Math.imul(X,Se)|0,I=I+Math.imul(X,ve)|0,g=g+Math.imul(v,ke)|0,i=i+Math.imul(v,Qe)|0,i=i+Math.imul(O,ke)|0,I=I+Math.imul(O,Qe)|0,g=g+Math.imul(Ae,ye)|0,i=i+Math.imul(Ae,Me)|0,i=i+Math.imul(S,ye)|0,I=I+Math.imul(S,Me)|0,g=g+Math.imul(T,Ue)|0,i=i+Math.imul(T,Ne)|0,i=i+Math.imul(J,Ue)|0,I=I+Math.imul(J,Ne)|0,g=g+Math.imul(s,Oe)|0,i=i+Math.imul(s,Ge)|0,i=i+Math.imul(F,Oe)|0,I=I+Math.imul(F,Ge)|0;var Vf=(m+g|0)+((i&8191)<<13)|0;m=(I+(i>>>13)|0)+(Vf>>>26)|0,Vf&=67108863,g=Math.imul(Fe,he),i=Math.imul(Fe,Ie),i=i+Math.imul(De,he)|0,I=Math.imul(De,Ie),g=g+Math.imul(ne,Be)|0,i=i+Math.imul(ne,ie)|0,i=i+Math.imul(te,Be)|0,I=I+Math.imul(te,ie)|0,g=g+Math.imul(re,pe)|0,i=i+Math.imul(re,Te)|0,i=i+Math.imul(ue,pe)|0,I=I+Math.imul(ue,Te)|0,g=g+Math.imul(ae,we)|0,i=i+Math.imul(ae,Re)|0,i=i+Math.imul(be,we)|0,I=I+Math.imul(be,Re)|0,g=g+Math.imul(Y,Se)|0,i=i+Math.imul(Y,ve)|0,i=i+Math.imul($,Se)|0,I=I+Math.imul($,ve)|0,g=g+Math.imul(G,ke)|0,i=i+Math.imul(G,Qe)|0,i=i+Math.imul(X,ke)|0,I=I+Math.imul(X,Qe)|0,g=g+Math.imul(v,ye)|0,i=i+Math.imul(v,Me)|0,i=i+Math.imul(O,ye)|0,I=I+Math.imul(O,Me)|0,g=g+Math.imul(Ae,Ue)|0,i=i+Math.imul(Ae,Ne)|0,i=i+Math.imul(S,Ue)|0,I=I+Math.imul(S,Ne)|0,g=g+Math.imul(T,Oe)|0,i=i+Math.imul(T,Ge)|0,i=i+Math.imul(J,Oe)|0,I=I+Math.imul(J,Ge)|0,g=g+Math.imul(s,Pe)|0,i=i+Math.imul(s,Ve)|0,i=i+Math.imul(F,Pe)|0,I=I+Math.imul(F,Ve)|0;var Lf=(m+g|0)+((i&8191)<<13)|0;m=(I+(i>>>13)|0)+(Lf>>>26)|0,Lf&=67108863,g=Math.imul(Fe,Be),i=Math.imul(Fe,ie),i=i+Math.imul(De,Be)|0,I=Math.imul(De,ie),g=g+Math.imul(ne,pe)|0,i=i+Math.imul(ne,Te)|0,i=i+Math.imul(te,pe)|0,I=I+Math.imul(te,Te)|0,g=g+Math.imul(re,we)|0,i=i+Math.imul(re,Re)|0,i=i+Math.imul(ue,we)|0,I=I+Math.imul(ue,Re)|0,g=g+Math.imul(ae,Se)|0,i=i+Math.imul(ae,ve)|0,i=i+Math.imul(be,Se)|0,I=I+Math.imul(be,ve)|0,g=g+Math.imul(Y,ke)|0,i=i+Math.imul(Y,Qe)|0,i=i+Math.imul($,ke)|0,I=I+Math.imul($,Qe)|0,g=g+Math.imul(G,ye)|0,i=i+Math.imul(G,Me)|0,i=i+Math.imul(X,ye)|0,I=I+Math.imul(X,Me)|0,g=g+Math.imul(v,Ue)|0,i=i+Math.imul(v,Ne)|0,i=i+Math.imul(O,Ue)|0,I=I+Math.imul(O,Ne)|0,g=g+Math.imul(Ae,Oe)|0,i=i+Math.imul(Ae,Ge)|0,i=i+Math.imul(S,Oe)|0,I=I+Math.imul(S,Ge)|0,g=g+Math.imul(T,Pe)|0,i=i+Math.imul(T,Ve)|0,i=i+Math.imul(J,Pe)|0,I=I+Math.imul(J,Ve)|0;var Jf=(m+g|0)+((i&8191)<<13)|0;m=(I+(i>>>13)|0)+(Jf>>>26)|0,Jf&=67108863,g=Math.imul(Fe,pe),i=Math.imul(Fe,Te),i=i+Math.imul(De,pe)|0,I=Math.imul(De,Te),g=g+Math.imul(ne,we)|0,i=i+Math.imul(ne,Re)|0,i=i+Math.imul(te,we)|0,I=I+Math.imul(te,Re)|0,g=g+Math.imul(re,Se)|0,i=i+Math.imul(re,ve)|0,i=i+Math.imul(ue,Se)|0,I=I+Math.imul(ue,ve)|0,g=g+Math.imul(ae,ke)|0,i=i+Math.imul(ae,Qe)|0,i=i+Math.imul(be,ke)|0,I=I+Math.imul(be,Qe)|0,g=g+Math.imul(Y,ye)|0,i=i+Math.imul(Y,Me)|0,i=i+Math.imul($,ye)|0,I=I+Math.imul($,Me)|0,g=g+Math.imul(G,Ue)|0,i=i+Math.imul(G,Ne)|0,i=i+Math.imul(X,Ue)|0,I=I+Math.imul(X,Ne)|0,g=g+Math.imul(v,Oe)|0,i=i+Math.imul(v,Ge)|0,i=i+Math.imul(O,Oe)|0,I=I+Math.imul(O,Ge)|0,g=g+Math.imul(Ae,Pe)|0,i=i+Math.imul(Ae,Ve)|0,i=i+Math.imul(S,Pe)|0,I=I+Math.imul(S,Ve)|0;var Hf=(m+g|0)+((i&8191)<<13)|0;m=(I+(i>>>13)|0)+(Hf>>>26)|0,Hf&=67108863,g=Math.imul(Fe,we),i=Math.imul(Fe,Re),i=i+Math.imul(De,we)|0,I=Math.imul(De,Re),g=g+Math.imul(ne,Se)|0,i=i+Math.imul(ne,ve)|0,i=i+Math.imul(te,Se)|0,I=I+Math.imul(te,ve)|0,g=g+Math.imul(re,ke)|0,i=i+Math.imul(re,Qe)|0,i=i+Math.imul(ue,ke)|0,I=I+Math.imul(ue,Qe)|0,g=g+Math.imul(ae,ye)|0,i=i+Math.imul(ae,Me)|0,i=i+Math.imul(be,ye)|0,I=I+Math.imul(be,Me)|0,g=g+Math.imul(Y,Ue)|0,i=i+Math.imul(Y,Ne)|0,i=i+Math.imul($,Ue)|0,I=I+Math.imul($,Ne)|0,g=g+Math.imul(G,Oe)|0,i=i+Math.imul(G,Ge)|0,i=i+Math.imul(X,Oe)|0,I=I+Math.imul(X,Ge)|0,g=g+Math.imul(v,Pe)|0,i=i+Math.imul(v,Ve)|0,i=i+Math.imul(O,Pe)|0,I=I+Math.imul(O,Ve)|0;var Zf=(m+g|0)+((i&8191)<<13)|0;m=(I+(i>>>13)|0)+(Zf>>>26)|0,Zf&=67108863,g=Math.imul(Fe,Se),i=Math.imul(Fe,ve),i=i+Math.imul(De,Se)|0,I=Math.imul(De,ve),g=g+Math.imul(ne,ke)|0,i=i+Math.imul(ne,Qe)|0,i=i+Math.imul(te,ke)|0,I=I+Math.imul(te,Qe)|0,g=g+Math.imul(re,ye)|0,i=i+Math.imul(re,Me)|0,i=i+Math.imul(ue,ye)|0,I=I+Math.imul(ue,Me)|0,g=g+Math.imul(ae,Ue)|0,i=i+Math.imul(ae,Ne)|0,i=i+Math.imul(be,Ue)|0,I=I+Math.imul(be,Ne)|0,g=g+Math.imul(Y,Oe)|0,i=i+Math.imul(Y,Ge)|0,i=i+Math.imul($,Oe)|0,I=I+Math.imul($,Ge)|0,g=g+Math.imul(G,Pe)|0,i=i+Math.imul(G,Ve)|0,i=i+Math.imul(X,Pe)|0,I=I+Math.imul(X,Ve)|0;var Yf=(m+g|0)+((i&8191)<<13)|0;m=(I+(i>>>13)|0)+(Yf>>>26)|0,Yf&=67108863,g=Math.imul(Fe,ke),i=Math.imul(Fe,Qe),i=i+Math.imul(De,ke)|0,I=Math.imul(De,Qe),g=g+Math.imul(ne,ye)|0,i=i+Math.imul(ne,Me)|0,i=i+Math.imul(te,ye)|0,I=I+Math.imul(te,Me)|0,g=g+Math.imul(re,Ue)|0,i=i+Math.imul(re,Ne)|0,i=i+Math.imul(ue,Ue)|0,I=I+Math.imul(ue,Ne)|0,g=g+Math.imul(ae,Oe)|0,i=i+Math.imul(ae,Ge)|0,i=i+Math.imul(be,Oe)|0,I=I+Math.imul(be,Ge)|0,g=g+Math.imul(Y,Pe)|0,i=i+Math.imul(Y,Ve)|0,i=i+Math.imul($,Pe)|0,I=I+Math.imul($,Ve)|0;var Xf=(m+g|0)+((i&8191)<<13)|0;m=(I+(i>>>13)|0)+(Xf>>>26)|0,Xf&=67108863,g=Math.imul(Fe,ye),i=Math.imul(Fe,Me),i=i+Math.imul(De,ye)|0,I=Math.imul(De,Me),g=g+Math.imul(ne,Ue)|0,i=i+Math.imul(ne,Ne)|0,i=i+Math.imul(te,Ue)|0,I=I+Math.imul(te,Ne)|0,g=g+Math.imul(re,Oe)|0,i=i+Math.imul(re,Ge)|0,i=i+Math.imul(ue,Oe)|0,I=I+Math.imul(ue,Ge)|0,g=g+Math.imul(ae,Pe)|0,i=i+Math.imul(ae,Ve)|0,i=i+Math.imul(be,Pe)|0,I=I+Math.imul(be,Ve)|0;var Wf=(m+g|0)+((i&8191)<<13)|0;m=(I+(i>>>13)|0)+(Wf>>>26)|0,Wf&=67108863,g=Math.imul(Fe,Ue),i=Math.imul(Fe,Ne),i=i+Math.imul(De,Ue)|0,I=Math.imul(De,Ne),g=g+Math.imul(ne,Oe)|0,i=i+Math.imul(ne,Ge)|0,i=i+Math.imul(te,Oe)|0,I=I+Math.imul(te,Ge)|0,g=g+Math.imul(re,Pe)|0,i=i+Math.imul(re,Ve)|0,i=i+Math.imul(ue,Pe)|0,I=I+Math.imul(ue,Ve)|0;var Kf=(m+g|0)+((i&8191)<<13)|0;m=(I+(i>>>13)|0)+(Kf>>>26)|0,Kf&=67108863,g=Math.imul(Fe,Oe),i=Math.imul(Fe,Ge),i=i+Math.imul(De,Oe)|0,I=Math.imul(De,Ge),g=g+Math.imul(ne,Pe)|0,i=i+Math.imul(ne,Ve)|0,i=i+Math.imul(te,Pe)|0,I=I+Math.imul(te,Ve)|0;var qf=(m+g|0)+((i&8191)<<13)|0;m=(I+(i>>>13)|0)+(qf>>>26)|0,qf&=67108863,g=Math.imul(Fe,Pe),i=Math.imul(Fe,Ve),i=i+Math.imul(De,Pe)|0,I=Math.imul(De,Ve);var zf=(m+g|0)+((i&8191)<<13)|0;return m=(I+(i>>>13)|0)+(zf>>>26)|0,zf&=67108863,C[0]=m2,C[1]=n0,C[2]=t0,C[3]=Xa,C[4]=Wa,C[5]=Ka,C[6]=qa,C[7]=za,C[8]=Vf,C[9]=Lf,C[10]=Jf,C[11]=Hf,C[12]=Zf,C[13]=Yf,C[14]=Xf,C[15]=Wf,C[16]=Kf,C[17]=qf,C[18]=zf,m!==0&&(C[19]=m,h.length++),h};Math.imul||(w=p);function y(k,E,D){D.negative=E.negative^k.negative,D.length=k.length+E.length;for(var h=0,u=0,o=0;o>>26)|0,u+=C>>>26,C&=67108863}D.words[o]=m,h=C,C=u}return h!==0?D.words[o]=h:D.length--,D.strip()}function N(k,E,D){var h=new Q;return h.mulp(k,E,D)}c.prototype.mulTo=function(E,D){var h,u=this.length+E.length;return this.length===10&&E.length===10?h=w(this,E,D):u<63?h=p(this,E,D):u<1024?h=y(this,E,D):h=N(this,E,D),h};function Q(k,E){this.x=k,this.y=E}Q.prototype.makeRBT=function(E){for(var D=new Array(E),h=c.prototype._countBits(E)-1,u=0;u>=1;return u},Q.prototype.permute=function(E,D,h,u,o,C){for(var m=0;m>>1)o++;return 1<>>13,h[2*C+1]=o&8191,o=o>>>13;for(C=2*D;C>=26,D+=u/67108864|0,D+=o>>>26,this.words[h]=o&67108863}return D!==0&&(this.words[h]=D,this.length++),this},c.prototype.muln=function(E){return this.clone().imuln(E)},c.prototype.sqr=function(){return this.mul(this)},c.prototype.isqr=function(){return this.imul(this.clone())},c.prototype.pow=function(E){var D=x(E);if(D.length===0)return new c(1);for(var h=this,u=0;u=0);var D=E%26,h=(E-D)/26,u=67108863>>>26-D<<26-D,o;if(D!==0){var C=0;for(o=0;o>>26-D}C&&(this.words[o]=C,this.length++)}if(h!==0){for(o=this.length-1;o>=0;o--)this.words[o+h]=this.words[o];for(o=0;o=0);var u;D?u=(D-D%26)/26:u=0;var o=E%26,C=Math.min((E-o)/26,this.length),m=67108863^67108863>>>o<C)for(this.length-=C,i=0;i=0&&(I!==0||i>=u);i--){var R=this.words[i]|0;this.words[i]=I<<26-o|R>>>o,I=R&m}return g&&I!==0&&(g.words[g.length++]=I),this.length===0&&(this.words[0]=0,this.length=1),this.strip()},c.prototype.ishrn=function(E,D,h){return e(this.negative===0),this.iushrn(E,D,h)},c.prototype.shln=function(E){return this.clone().ishln(E)},c.prototype.ushln=function(E){return this.clone().iushln(E)},c.prototype.shrn=function(E){return this.clone().ishrn(E)},c.prototype.ushrn=function(E){return this.clone().iushrn(E)},c.prototype.testn=function(E){e(typeof E=="number"&&E>=0);var D=E%26,h=(E-D)/26,u=1<=0);var D=E%26,h=(E-D)/26;if(e(this.negative===0,"imaskn works only with positive numbers"),this.length<=h)return this;if(D!==0&&h++,this.length=Math.min(h,this.length),D!==0){var u=67108863^67108863>>>D<=67108864;D++)this.words[D]-=67108864,D===this.length-1?this.words[D+1]=1:this.words[D+1]++;return this.length=Math.max(this.length,D+1),this},c.prototype.isubn=function(E){if(e(typeof E=="number"),e(E<67108864),E<0)return this.iaddn(-E);if(this.negative!==0)return this.negative=0,this.iaddn(E),this.negative=1,this;if(this.words[0]-=E,this.length===1&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var D=0;D>26)-(g/67108864|0),this.words[o+h]=C&67108863}for(;o>26,this.words[o+h]=C&67108863;if(m===0)return this.strip();for(e(m===-1),m=0,o=0;o>26,this.words[o]=C&67108863;return this.negative=1,this.strip()},c.prototype._wordDiv=function(E,D){var h=this.length-E.length,u=this.clone(),o=E,C=o.words[o.length-1]|0,m=this._countBits(C);h=26-m,h!==0&&(o=o.ushln(h),u.iushln(h),C=o.words[o.length-1]|0);var g=u.length-o.length,i;if(D!=="mod"){i=new c(null),i.length=g+1,i.words=new Array(i.length);for(var I=0;I=0;s--){var F=(u.words[o.length+s]|0)*67108864+(u.words[o.length+s-1]|0);for(F=Math.min(F/C|0,67108863),u._ishlnsubmul(o,F,s);u.negative!==0;)F--,u.negative=0,u._ishlnsubmul(o,1,s),u.isZero()||(u.negative^=1);i&&(i.words[s]=F)}return i&&i.strip(),u.strip(),D!=="div"&&h!==0&&u.iushrn(h),{div:i||null,mod:u}},c.prototype.divmod=function(E,D,h){if(e(!E.isZero()),this.isZero())return{div:new c(0),mod:new c(0)};var u,o,C;return this.negative!==0&&E.negative===0?(C=this.neg().divmod(E,D),D!=="mod"&&(u=C.div.neg()),D!=="div"&&(o=C.mod.neg(),h&&o.negative!==0&&o.iadd(E)),{div:u,mod:o}):this.negative===0&&E.negative!==0?(C=this.divmod(E.neg(),D),D!=="mod"&&(u=C.div.neg()),{div:u,mod:C.mod}):(this.negative&E.negative)!==0?(C=this.neg().divmod(E.neg(),D),D!=="div"&&(o=C.mod.neg(),h&&o.negative!==0&&o.isub(E)),{div:C.div,mod:o}):E.length>this.length||this.cmp(E)<0?{div:new c(0),mod:this}:E.length===1?D==="div"?{div:this.divn(E.words[0]),mod:null}:D==="mod"?{div:null,mod:new c(this.modn(E.words[0]))}:{div:this.divn(E.words[0]),mod:new c(this.modn(E.words[0]))}:this._wordDiv(E,D)},c.prototype.div=function(E){return this.divmod(E,"div",!1).div},c.prototype.mod=function(E){return this.divmod(E,"mod",!1).mod},c.prototype.umod=function(E){return this.divmod(E,"mod",!0).mod},c.prototype.divRound=function(E){var D=this.divmod(E);if(D.mod.isZero())return D.div;var h=D.div.negative!==0?D.mod.isub(E):D.mod,u=E.ushrn(1),o=E.andln(1),C=h.cmp(u);return C<0||o===1&&C===0?D.div:D.div.negative!==0?D.div.isubn(1):D.div.iaddn(1)},c.prototype.modn=function(E){e(E<=67108863);for(var D=(1<<26)%E,h=0,u=this.length-1;u>=0;u--)h=(D*h+(this.words[u]|0))%E;return h},c.prototype.idivn=function(E){e(E<=67108863);for(var D=0,h=this.length-1;h>=0;h--){var u=(this.words[h]|0)+D*67108864;this.words[h]=u/E|0,D=u%E}return this.strip()},c.prototype.divn=function(E){return this.clone().idivn(E)},c.prototype.egcd=function(E){e(E.negative===0),e(!E.isZero());var D=this,h=E.clone();D.negative!==0?D=D.umod(E):D=D.clone();for(var u=new c(1),o=new c(0),C=new c(0),m=new c(1),g=0;D.isEven()&&h.isEven();)D.iushrn(1),h.iushrn(1),++g;for(var i=h.clone(),I=D.clone();!D.isZero();){for(var R=0,s=1;(D.words[0]&s)===0&&R<26;++R,s<<=1);if(R>0)for(D.iushrn(R);R-- >0;)(u.isOdd()||o.isOdd())&&(u.iadd(i),o.isub(I)),u.iushrn(1),o.iushrn(1);for(var F=0,ee=1;(h.words[0]&ee)===0&&F<26;++F,ee<<=1);if(F>0)for(h.iushrn(F);F-- >0;)(C.isOdd()||m.isOdd())&&(C.iadd(i),m.isub(I)),C.iushrn(1),m.iushrn(1);D.cmp(h)>=0?(D.isub(h),u.isub(C),o.isub(m)):(h.isub(D),C.isub(u),m.isub(o))}return{a:C,b:m,gcd:h.iushln(g)}},c.prototype._invmp=function(E){e(E.negative===0),e(!E.isZero());var D=this,h=E.clone();D.negative!==0?D=D.umod(E):D=D.clone();for(var u=new c(1),o=new c(0),C=h.clone();D.cmpn(1)>0&&h.cmpn(1)>0;){for(var m=0,g=1;(D.words[0]&g)===0&&m<26;++m,g<<=1);if(m>0)for(D.iushrn(m);m-- >0;)u.isOdd()&&u.iadd(C),u.iushrn(1);for(var i=0,I=1;(h.words[0]&I)===0&&i<26;++i,I<<=1);if(i>0)for(h.iushrn(i);i-- >0;)o.isOdd()&&o.iadd(C),o.iushrn(1);D.cmp(h)>=0?(D.isub(h),u.isub(o)):(h.isub(D),o.isub(u))}var R;return D.cmpn(1)===0?R=u:R=o,R.cmpn(0)<0&&R.iadd(E),R},c.prototype.gcd=function(E){if(this.isZero())return E.abs();if(E.isZero())return this.abs();var D=this.clone(),h=E.clone();D.negative=0,h.negative=0;for(var u=0;D.isEven()&&h.isEven();u++)D.iushrn(1),h.iushrn(1);do{for(;D.isEven();)D.iushrn(1);for(;h.isEven();)h.iushrn(1);var o=D.cmp(h);if(o<0){var C=D;D=h,h=C}else if(o===0||h.cmpn(1)===0)break;D.isub(h)}while(!0);return h.iushln(u)},c.prototype.invm=function(E){return this.egcd(E).a.umod(E)},c.prototype.isEven=function(){return(this.words[0]&1)===0},c.prototype.isOdd=function(){return(this.words[0]&1)===1},c.prototype.andln=function(E){return this.words[0]&E},c.prototype.bincn=function(E){e(typeof E=="number");var D=E%26,h=(E-D)/26,u=1<>>26,m&=67108863,this.words[C]=m}return o!==0&&(this.words[C]=o,this.length++),this},c.prototype.isZero=function(){return this.length===1&&this.words[0]===0},c.prototype.cmpn=function(E){var D=E<0;if(this.negative!==0&&!D)return-1;if(this.negative===0&&D)return 1;this.strip();var h;if(this.length>1)h=1;else{D&&(E=-E),e(E<=67108863,"Number is too big");var u=this.words[0]|0;h=u===E?0:uE.length)return 1;if(this.length=0;h--){var u=this.words[h]|0,o=E.words[h]|0;if(u!==o){uo&&(D=1);break}}return D},c.prototype.gtn=function(E){return this.cmpn(E)===1},c.prototype.gt=function(E){return this.cmp(E)===1},c.prototype.gten=function(E){return this.cmpn(E)>=0},c.prototype.gte=function(E){return this.cmp(E)>=0},c.prototype.ltn=function(E){return this.cmpn(E)===-1},c.prototype.lt=function(E){return this.cmp(E)===-1},c.prototype.lten=function(E){return this.cmpn(E)<=0},c.prototype.lte=function(E){return this.cmp(E)<=0},c.prototype.eqn=function(E){return this.cmpn(E)===0},c.prototype.eq=function(E){return this.cmp(E)===0},c.red=function(E){return new ce(E)},c.prototype.toRed=function(E){return e(!this.red,"Already a number in reduction context"),e(this.negative===0,"red works only with positives"),E.convertTo(this)._forceRed(E)},c.prototype.fromRed=function(){return e(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},c.prototype._forceRed=function(E){return this.red=E,this},c.prototype.forceRed=function(E){return e(!this.red,"Already a number in reduction context"),this._forceRed(E)},c.prototype.redAdd=function(E){return e(this.red,"redAdd works only with red numbers"),this.red.add(this,E)},c.prototype.redIAdd=function(E){return e(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,E)},c.prototype.redSub=function(E){return e(this.red,"redSub works only with red numbers"),this.red.sub(this,E)},c.prototype.redISub=function(E){return e(this.red,"redISub works only with red numbers"),this.red.isub(this,E)},c.prototype.redShl=function(E){return e(this.red,"redShl works only with red numbers"),this.red.shl(this,E)},c.prototype.redMul=function(E){return e(this.red,"redMul works only with red numbers"),this.red._verify2(this,E),this.red.mul(this,E)},c.prototype.redIMul=function(E){return e(this.red,"redMul works only with red numbers"),this.red._verify2(this,E),this.red.imul(this,E)},c.prototype.redSqr=function(){return e(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},c.prototype.redISqr=function(){return e(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},c.prototype.redSqrt=function(){return e(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},c.prototype.redInvm=function(){return e(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},c.prototype.redNeg=function(){return e(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},c.prototype.redPow=function(E){return e(this.red&&!E.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,E)};var P={k256:null,p224:null,p192:null,p25519:null};function V(k,E){this.name=k,this.p=new c(E,16),this.n=this.p.bitLength(),this.k=new c(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}V.prototype._tmp=function(){var E=new c(null);return E.words=new Array(Math.ceil(this.n/13)),E},V.prototype.ireduce=function(E){var D=E,h;do this.split(D,this.tmp),D=this.imulK(D),D=D.iadd(this.tmp),h=D.bitLength();while(h>this.n);var u=h0?D.isub(this.p):D.strip!==void 0?D.strip():D._strip(),D},V.prototype.split=function(E,D){E.iushrn(this.n,0,D)},V.prototype.imulK=function(E){return E.imul(this.k)};function q(){V.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}f(q,V),q.prototype.split=function(E,D){for(var h=4194303,u=Math.min(E.length,9),o=0;o>>22,C=m}C>>>=22,E.words[o-10]=C,C===0&&E.length>10?E.length-=10:E.length-=9},q.prototype.imulK=function(E){E.words[E.length]=0,E.words[E.length+1]=0,E.length+=2;for(var D=0,h=0;h>>=26,E.words[h]=o,D=u}return D!==0&&(E.words[E.length++]=D),E},c._prime=function(E){if(P[E])return P[E];var D;if(E==="k256")D=new q;else if(E==="p224")D=new _;else if(E==="p192")D=new Z;else if(E==="p25519")D=new de;else throw new Error("Unknown prime "+E);return P[E]=D,D};function ce(k){if(typeof k=="string"){var E=c._prime(k);this.m=E.p,this.prime=E}else e(k.gtn(1),"modulus must be greater than 1"),this.m=k,this.prime=null}ce.prototype._verify1=function(E){e(E.negative===0,"red works only with positives"),e(E.red,"red works only with red numbers")},ce.prototype._verify2=function(E,D){e((E.negative|D.negative)===0,"red works only with positives"),e(E.red&&E.red===D.red,"red works only with red numbers")},ce.prototype.imod=function(E){return this.prime?this.prime.ireduce(E)._forceRed(this):E.umod(this.m)._forceRed(this)},ce.prototype.neg=function(E){return E.isZero()?E.clone():this.m.sub(E)._forceRed(this)},ce.prototype.add=function(E,D){this._verify2(E,D);var h=E.add(D);return h.cmp(this.m)>=0&&h.isub(this.m),h._forceRed(this)},ce.prototype.iadd=function(E,D){this._verify2(E,D);var h=E.iadd(D);return h.cmp(this.m)>=0&&h.isub(this.m),h},ce.prototype.sub=function(E,D){this._verify2(E,D);var h=E.sub(D);return h.cmpn(0)<0&&h.iadd(this.m),h._forceRed(this)},ce.prototype.isub=function(E,D){this._verify2(E,D);var h=E.isub(D);return h.cmpn(0)<0&&h.iadd(this.m),h},ce.prototype.shl=function(E,D){return this._verify1(E),this.imod(E.ushln(D))},ce.prototype.imul=function(E,D){return this._verify2(E,D),this.imod(E.imul(D))},ce.prototype.mul=function(E,D){return this._verify2(E,D),this.imod(E.mul(D))},ce.prototype.isqr=function(E){return this.imul(E,E.clone())},ce.prototype.sqr=function(E){return this.mul(E,E)},ce.prototype.sqrt=function(E){if(E.isZero())return E.clone();var D=this.m.andln(3);if(e(D%2===1),D===3){var h=this.m.add(new c(1)).iushrn(2);return this.pow(E,h)}for(var u=this.m.subn(1),o=0;!u.isZero()&&u.andln(1)===0;)o++,u.iushrn(1);e(!u.isZero());var C=new c(1).toRed(this),m=C.redNeg(),g=this.m.subn(1).iushrn(1),i=this.m.bitLength();for(i=new c(2*i*i).toRed(this);this.pow(i,g).cmp(m)!==0;)i.redIAdd(m);for(var I=this.pow(i,u),R=this.pow(E,u.addn(1).iushrn(1)),s=this.pow(E,u),F=o;s.cmp(C)!==0;){for(var ee=s,T=0;ee.cmp(C)!==0;T++)ee=ee.redSqr();e(T=0;o--){for(var I=D.words[o],R=i-1;R>=0;R--){var s=I>>R&1;if(C!==u[0]&&(C=this.sqr(C)),s===0&&m===0){g=0;continue}m<<=1,m|=s,g++,!(g!==h&&(o!==0||R!==0))&&(C=this.mul(C,u[m]),g=0,m=0)}i=26}return C},ce.prototype.convertTo=function(E){var D=E.umod(this.m);return D===E?D.clone():D},ce.prototype.convertFrom=function(E){var D=E.clone();return D.red=null,D},c.mont=function(E){return new H(E)};function H(k){ce.call(this,k),this.shift=this.m.bitLength(),this.shift%26!==0&&(this.shift+=26-this.shift%26),this.r=new c(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}f(H,ce),H.prototype.convertTo=function(E){return this.imod(E.ushln(this.shift))},H.prototype.convertFrom=function(E){var D=this.imod(E.mul(this.rinv));return D.red=null,D},H.prototype.imul=function(E,D){if(E.isZero()||D.isZero())return E.words[0]=0,E.length=1,E;var h=E.imul(D),u=h.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),o=h.isub(u).iushrn(this.shift),C=o;return o.cmp(this.m)>=0?C=o.isub(this.m):o.cmpn(0)<0&&(C=o.iadd(this.m)),C._forceRed(this)},H.prototype.mul=function(E,D){if(E.isZero()||D.isZero())return new c(0)._forceRed(this);var h=E.mul(D),u=h.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),o=h.isub(u).iushrn(this.shift),C=o;return o.cmp(this.m)>=0?C=o.isub(this.m):o.cmpn(0)<0&&(C=o.iadd(this.m)),C._forceRed(this)},H.prototype.invm=function(E){var D=this.imod(E._invmp(this.m).mul(this.r2));return D._forceRed(this)}})(typeof F9>"u"||F9,st)});var df=U((fZ,Bt)=>{Bt.exports=Et;function Et(A,a){if(!A)throw new Error(a||"Assertion failed")}Et.equal=function(a,e,f){if(a!=e)throw new Error(f||"Assertion failed: "+a+" != "+e)}});var D9=U(gt=>{"use strict";var dd=gt;function iT(A,a){if(Array.isArray(A))return A.slice();if(!A)return[];var e=[];if(typeof A!="string"){for(var f=0;f>8,b=c&255;d?e.push(d,b):e.push(b)}return e}dd.toArray=iT;function ht(A){return A.length===1?"0"+A:A}dd.zero2=ht;function Ct(A){for(var a="",e=0;e{"use strict";var R2=It,oT=aA(),sT=df(),bd=D9();R2.assert=sT;R2.toArray=bd.toArray;R2.zero2=bd.zero2;R2.toHex=bd.toHex;R2.encode=bd.encode;function ET(A,a,e){var f=new Array(Math.max(A.bitLength(),e)+1);f.fill(0);for(var c=1<(c>>1)-1?r=(c>>1)-n:r=n,d.isubn(r)):r=0,f[b]=r,d.iushrn(1)}return f}R2.getNAF=ET;function BT(A,a){var e=[[],[]];A=A.clone(),a=a.clone();for(var f=0,c=0,d;A.cmpn(-f)>0||a.cmpn(-c)>0;){var b=A.andln(3)+f&3,r=a.andln(3)+c&3;b===3&&(b=-1),r===3&&(r=-1);var n;(b&1)===0?n=0:(d=A.andln(7)+f&7,(d===3||d===5)&&r===2?n=-b:n=b),e[0].push(n);var l;(r&1)===0?l=0:(d=a.andln(7)+c&7,(d===3||d===5)&&b===2?l=-r:l=r),e[1].push(l),2*f===n+1&&(f=1-f),2*c===l+1&&(c=1-c),A.iushrn(1),a.iushrn(1)}return e}R2.getJSF=BT;function hT(A,a,e){var f="_"+a;A.prototype[a]=function(){return this[f]!==void 0?this[f]:this[f]=e.call(this)}}R2.cachedProperty=hT;function CT(A){return typeof A=="string"?R2.toArray(A,"hex"):A}R2.parseBytes=CT;function gT(A){return new oT(A,"hex","le")}R2.intFromLE=gT});var T9=U((bZ,p9)=>{var m9;p9.exports=function(a){return m9||(m9=new bf(null)),m9.generate(a)};function bf(A){this.rand=A}p9.exports.Rand=bf;bf.prototype.generate=function(a){return this._rand(a)};bf.prototype._rand=function(a){if(this.rand.getBytes)return this.rand.getBytes(a);for(var e=new Uint8Array(a),f=0;f{"use strict";var n1=aA(),Lc=Oa(),ld=Lc.getNAF,IT=Lc.getJSF,rd=Lc.assert;function lf(A,a){this.type=A,this.p=new n1(a.p,16),this.red=a.prime?n1.red(a.prime):n1.mont(this.p),this.zero=new n1(0).toRed(this.red),this.one=new n1(1).toRed(this.red),this.two=new n1(2).toRed(this.red),this.n=a.n&&new n1(a.n,16),this.g=a.g&&this.pointFromJSON(a.g,a.gRed),this._wnafT1=new Array(4),this._wnafT2=new Array(4),this._wnafT3=new Array(4),this._wnafT4=new Array(4),this._bitLength=this.n?this.n.bitLength():0;var e=this.n&&this.p.div(this.n);!e||e.cmpn(100)>0?this.redN=null:(this._maxwellTrick=!0,this.redN=this.n.toRed(this.red))}Ft.exports=lf;lf.prototype.point=function(){throw new Error("Not implemented")};lf.prototype.validate=function(){throw new Error("Not implemented")};lf.prototype._fixedNafMul=function(a,e){rd(a.precomputed);var f=a._getDoubles(),c=ld(e,1,this._bitLength),d=(1<=r;l--)n=(n<<1)+c[l];b.push(n)}for(var t=this.jpoint(null,null,null),B=this.jpoint(null,null,null),x=d;x>0;x--){for(r=0;r=0;n--){for(var l=0;n>=0&&b[n]===0;n--)l++;if(n>=0&&l++,r=r.dblp(l),n<0)break;var t=b[n];rd(t!==0),a.type==="affine"?t>0?r=r.mixedAdd(d[t-1>>1]):r=r.mixedAdd(d[-t-1>>1].neg()):t>0?r=r.add(d[t-1>>1]):r=r.add(d[-t-1>>1].neg())}return a.type==="affine"?r.toP():r};lf.prototype._wnafMulAdd=function(a,e,f,c,d){var b=this._wnafT1,r=this._wnafT2,n=this._wnafT3,l=0,t,B,x;for(t=0;t=1;t-=2){var w=t-1,y=t;if(b[w]!==1||b[y]!==1){n[w]=ld(f[w],b[w],this._bitLength),n[y]=ld(f[y],b[y],this._bitLength),l=Math.max(n[w].length,l),l=Math.max(n[y].length,l);continue}var N=[e[w],null,null,e[y]];e[w].y.cmp(e[y].y)===0?(N[1]=e[w].add(e[y]),N[2]=e[w].toJ().mixedAdd(e[y].neg())):e[w].y.cmp(e[y].y.redNeg())===0?(N[1]=e[w].toJ().mixedAdd(e[y]),N[2]=e[w].add(e[y].neg())):(N[1]=e[w].toJ().mixedAdd(e[y]),N[2]=e[w].toJ().mixedAdd(e[y].neg()));var Q=[-3,-1,-5,-7,0,7,5,1,3],P=IT(f[w],f[y]);for(l=Math.max(P[0].length,l),n[w]=new Array(l),n[y]=new Array(l),B=0;B=0;t--){for(var de=0;t>=0;){var ce=!0;for(B=0;B=0&&de++,_=_.dblp(de),t<0)break;for(B=0;B0?x=r[B][H-1>>1]:H<0&&(x=r[B][-H-1>>1].neg()),x.type==="affine"?_=_.mixedAdd(x):_=_.add(x))}}for(t=0;t=Math.ceil((a.bitLength()+1)/e.step):!1};d2.prototype._getDoubles=function(a,e){if(this.precomputed&&this.precomputed.doubles)return this.precomputed.doubles;for(var f=[this],c=this,d=0;d{typeof Object.create=="function"?w9.exports=function(a,e){e&&(a.super_=e,a.prototype=Object.create(e.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}))}:w9.exports=function(a,e){if(e){a.super_=e;var f=function(){};f.prototype=e.prototype,a.prototype=new f,a.prototype.constructor=a}}});var Hc=U((nZ,S9)=>{try{if(R9=require("util"),typeof R9.inherits!="function")throw"";S9.exports=R9.inherits}catch{S9.exports=Dt()}var R9});var xt=U((tZ,mt)=>{"use strict";var FT=Oa(),w0=aA(),v9=Hc(),s4=Jc(),DT=FT.assert;function b2(A){s4.call(this,"short",A),this.a=new w0(A.a,16).toRed(this.red),this.b=new w0(A.b,16).toRed(this.red),this.tinv=this.two.redInvm(),this.zeroA=this.a.fromRed().cmpn(0)===0,this.threeA=this.a.fromRed().sub(this.p).cmpn(-3)===0,this.endo=this._getEndomorphism(A),this._endoWnafT1=new Array(4),this._endoWnafT2=new Array(4)}v9(b2,s4);mt.exports=b2;b2.prototype._getEndomorphism=function(a){if(!(!this.zeroA||!this.g||!this.n||this.p.modn(3)!==1)){var e,f;if(a.beta)e=new w0(a.beta,16).toRed(this.red);else{var c=this._getEndoRoots(this.p);e=c[0].cmp(c[1])<0?c[0]:c[1],e=e.toRed(this.red)}if(a.lambda)f=new w0(a.lambda,16);else{var d=this._getEndoRoots(this.n);this.g.mul(d[0]).x.cmp(this.g.x.redMul(e))===0?f=d[0]:(f=d[1],DT(this.g.mul(f).x.cmp(this.g.x.redMul(e))===0))}var b;return a.basis?b=a.basis.map(function(r){return{a:new w0(r.a,16),b:new w0(r.b,16)}}):b=this._getEndoBasis(f),{beta:e,lambda:f,basis:b}}};b2.prototype._getEndoRoots=function(a){var e=a===this.p?this.red:w0.mont(a),f=new w0(2).toRed(e).redInvm(),c=f.redNeg(),d=new w0(3).toRed(e).redNeg().redSqrt().redMul(f),b=c.redAdd(d).fromRed(),r=c.redSub(d).fromRed();return[b,r]};b2.prototype._getEndoBasis=function(a){for(var e=this.n.ushrn(Math.floor(this.n.bitLength()/2)),f=a,c=this.n.clone(),d=new w0(1),b=new w0(0),r=new w0(0),n=new w0(1),l,t,B,x,p,w,y,N=0,Q,P;f.cmpn(0)!==0;){var V=c.div(f);Q=c.sub(V.mul(f)),P=r.sub(V.mul(d));var q=n.sub(V.mul(b));if(!B&&Q.cmp(e)<0)l=y.neg(),t=d,B=Q.neg(),x=P;else if(B&&++N===2)break;y=Q,c=f,f=Q,r=d,d=P,n=b,b=q}p=Q.neg(),w=P;var _=B.sqr().add(x.sqr()),Z=p.sqr().add(w.sqr());return Z.cmp(_)>=0&&(p=l,w=t),B.negative&&(B=B.neg(),x=x.neg()),p.negative&&(p=p.neg(),w=w.neg()),[{a:B,b:x},{a:p,b:w}]};b2.prototype._endoSplit=function(a){var e=this.endo.basis,f=e[0],c=e[1],d=c.b.mul(a).divRound(this.n),b=f.b.neg().mul(a).divRound(this.n),r=d.mul(f.a),n=b.mul(c.a),l=d.mul(f.b),t=b.mul(c.b),B=a.sub(r).sub(n),x=l.add(t).neg();return{k1:B,k2:x}};b2.prototype.pointFromX=function(a,e){a=new w0(a,16),a.red||(a=a.toRed(this.red));var f=a.redSqr().redMul(a).redIAdd(a.redMul(this.a)).redIAdd(this.b),c=f.redSqrt();if(c.redSqr().redSub(f).cmp(this.zero)!==0)throw new Error("invalid point");var d=c.fromRed().isOdd();return(e&&!d||!e&&d)&&(c=c.redNeg()),this.point(a,c)};b2.prototype.validate=function(a){if(a.inf)return!0;var e=a.x,f=a.y,c=this.a.redMul(e),d=e.redSqr().redMul(e).redIAdd(c).redIAdd(this.b);return f.redSqr().redISub(d).cmpn(0)===0};b2.prototype._endoWnafMulAdd=function(a,e,f){for(var c=this._endoWnafT1,d=this._endoWnafT2,b=0;b":""};X0.prototype.isInfinity=function(){return this.inf};X0.prototype.add=function(a){if(this.inf)return a;if(a.inf)return this;if(this.eq(a))return this.dbl();if(this.neg().eq(a))return this.curve.point(null,null);if(this.x.cmp(a.x)===0)return this.curve.point(null,null);var e=this.y.redSub(a.y);e.cmpn(0)!==0&&(e=e.redMul(this.x.redSub(a.x).redInvm()));var f=e.redSqr().redISub(this.x).redISub(a.x),c=e.redMul(this.x.redSub(f)).redISub(this.y);return this.curve.point(f,c)};X0.prototype.dbl=function(){if(this.inf)return this;var a=this.y.redAdd(this.y);if(a.cmpn(0)===0)return this.curve.point(null,null);var e=this.curve.a,f=this.x.redSqr(),c=a.redInvm(),d=f.redAdd(f).redIAdd(f).redIAdd(e).redMul(c),b=d.redSqr().redISub(this.x.redAdd(this.x)),r=d.redMul(this.x.redSub(b)).redISub(this.y);return this.curve.point(b,r)};X0.prototype.getX=function(){return this.x.fromRed()};X0.prototype.getY=function(){return this.y.fromRed()};X0.prototype.mul=function(a){return a=new w0(a,16),this.isInfinity()?this:this._hasDoubles(a)?this.curve._fixedNafMul(this,a):this.curve.endo?this.curve._endoWnafMulAdd([this],[a]):this.curve._wnafMul(this,a)};X0.prototype.mulAdd=function(a,e,f){var c=[this,e],d=[a,f];return this.curve.endo?this.curve._endoWnafMulAdd(c,d):this.curve._wnafMulAdd(1,c,d,2)};X0.prototype.jmulAdd=function(a,e,f){var c=[this,e],d=[a,f];return this.curve.endo?this.curve._endoWnafMulAdd(c,d,!0):this.curve._wnafMulAdd(1,c,d,2,!0)};X0.prototype.eq=function(a){return this===a||this.inf===a.inf&&(this.inf||this.x.cmp(a.x)===0&&this.y.cmp(a.y)===0)};X0.prototype.neg=function(a){if(this.inf)return this;var e=this.curve.point(this.x,this.y.redNeg());if(a&&this.precomputed){var f=this.precomputed,c=function(d){return d.neg()};e.precomputed={naf:f.naf&&{wnd:f.naf.wnd,points:f.naf.points.map(c)},doubles:f.doubles&&{step:f.doubles.step,points:f.doubles.points.map(c)}}}return e};X0.prototype.toJ=function(){if(this.inf)return this.curve.jpoint(null,null,null);var a=this.curve.jpoint(this.x,this.y,this.curve.one);return a};function ea(A,a,e,f){s4.BasePoint.call(this,A,"jacobian"),a===null&&e===null&&f===null?(this.x=this.curve.one,this.y=this.curve.one,this.z=new w0(0)):(this.x=new w0(a,16),this.y=new w0(e,16),this.z=new w0(f,16)),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)),this.zOne=this.z===this.curve.one}v9(ea,s4.BasePoint);b2.prototype.jpoint=function(a,e,f){return new ea(this,a,e,f)};ea.prototype.toP=function(){if(this.isInfinity())return this.curve.point(null,null);var a=this.z.redInvm(),e=a.redSqr(),f=this.x.redMul(e),c=this.y.redMul(e).redMul(a);return this.curve.point(f,c)};ea.prototype.neg=function(){return this.curve.jpoint(this.x,this.y.redNeg(),this.z)};ea.prototype.add=function(a){if(this.isInfinity())return a;if(a.isInfinity())return this;var e=a.z.redSqr(),f=this.z.redSqr(),c=this.x.redMul(e),d=a.x.redMul(f),b=this.y.redMul(e.redMul(a.z)),r=a.y.redMul(f.redMul(this.z)),n=c.redSub(d),l=b.redSub(r);if(n.cmpn(0)===0)return l.cmpn(0)!==0?this.curve.jpoint(null,null,null):this.dbl();var t=n.redSqr(),B=t.redMul(n),x=c.redMul(t),p=l.redSqr().redIAdd(B).redISub(x).redISub(x),w=l.redMul(x.redISub(p)).redISub(b.redMul(B)),y=this.z.redMul(a.z).redMul(n);return this.curve.jpoint(p,w,y)};ea.prototype.mixedAdd=function(a){if(this.isInfinity())return a.toJ();if(a.isInfinity())return this;var e=this.z.redSqr(),f=this.x,c=a.x.redMul(e),d=this.y,b=a.y.redMul(e).redMul(this.z),r=f.redSub(c),n=d.redSub(b);if(r.cmpn(0)===0)return n.cmpn(0)!==0?this.curve.jpoint(null,null,null):this.dbl();var l=r.redSqr(),t=l.redMul(r),B=f.redMul(l),x=n.redSqr().redIAdd(t).redISub(B).redISub(B),p=n.redMul(B.redISub(x)).redISub(d.redMul(t)),w=this.z.redMul(r);return this.curve.jpoint(x,p,w)};ea.prototype.dblp=function(a){if(a===0)return this;if(this.isInfinity())return this;if(!a)return this.dbl();var e;if(this.curve.zeroA||this.curve.threeA){var f=this;for(e=0;e=0)return!1;if(f.redIAdd(d),this.x.cmp(f)===0)return!0}};ea.prototype.inspect=function(){return this.isInfinity()?"":""};ea.prototype.isInfinity=function(){return this.z.cmpn(0)===0}});var wt=U((uZ,Tt)=>{"use strict";var E4=aA(),pt=Hc(),nd=Jc(),mT=Oa();function B4(A){nd.call(this,"mont",A),this.a=new E4(A.a,16).toRed(this.red),this.b=new E4(A.b,16).toRed(this.red),this.i4=new E4(4).toRed(this.red).redInvm(),this.two=new E4(2).toRed(this.red),this.a24=this.i4.redMul(this.a.redAdd(this.two))}pt(B4,nd);Tt.exports=B4;B4.prototype.validate=function(a){var e=a.normalize().x,f=e.redSqr(),c=f.redMul(e).redAdd(f.redMul(this.a)).redAdd(e),d=c.redSqrt();return d.redSqr().cmp(c)===0};function W0(A,a,e){nd.BasePoint.call(this,A,"projective"),a===null&&e===null?(this.x=this.curve.one,this.z=this.curve.zero):(this.x=new E4(a,16),this.z=new E4(e,16),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)))}pt(W0,nd.BasePoint);B4.prototype.decodePoint=function(a,e){return this.point(mT.toArray(a,e),1)};B4.prototype.point=function(a,e){return new W0(this,a,e)};B4.prototype.pointFromJSON=function(a){return W0.fromJSON(this,a)};W0.prototype.precompute=function(){};W0.prototype._encode=function(){return this.getX().toArray("be",this.curve.p.byteLength())};W0.fromJSON=function(a,e){return new W0(a,e[0],e[1]||a.one)};W0.prototype.inspect=function(){return this.isInfinity()?"":""};W0.prototype.isInfinity=function(){return this.z.cmpn(0)===0};W0.prototype.dbl=function(){var a=this.x.redAdd(this.z),e=a.redSqr(),f=this.x.redSub(this.z),c=f.redSqr(),d=e.redSub(c),b=e.redMul(c),r=d.redMul(c.redAdd(this.curve.a24.redMul(d)));return this.curve.point(b,r)};W0.prototype.add=function(){throw new Error("Not supported on Montgomery curve")};W0.prototype.diffAdd=function(a,e){var f=this.x.redAdd(this.z),c=this.x.redSub(this.z),d=a.x.redAdd(a.z),b=a.x.redSub(a.z),r=b.redMul(f),n=d.redMul(c),l=e.z.redMul(r.redAdd(n).redSqr()),t=e.x.redMul(r.redISub(n).redSqr());return this.curve.point(l,t)};W0.prototype.mul=function(a){for(var e=a.clone(),f=this,c=this.curve.point(null,null),d=this,b=[];e.cmpn(0)!==0;e.iushrn(1))b.push(e.andln(1));for(var r=b.length-1;r>=0;r--)b[r]===0?(f=f.diffAdd(c,d),c=c.dbl()):(c=f.diffAdd(c,d),f=f.dbl());return c};W0.prototype.mulAdd=function(){throw new Error("Not supported on Montgomery curve")};W0.prototype.jumlAdd=function(){throw new Error("Not supported on Montgomery curve")};W0.prototype.eq=function(a){return this.getX().cmp(a.getX())===0};W0.prototype.normalize=function(){return this.x=this.x.redMul(this.z.redInvm()),this.z=this.curve.one,this};W0.prototype.getX=function(){return this.normalize(),this.x.fromRed()}});var vt=U((iZ,St)=>{"use strict";var xT=Oa(),QA=aA(),Rt=Hc(),td=Jc(),pT=xT.assert;function AA(A){this.twisted=(A.a|0)!==1,this.mOneA=this.twisted&&(A.a|0)===-1,this.extended=this.mOneA,td.call(this,"edwards",A),this.a=new QA(A.a,16).umod(this.red.m),this.a=this.a.toRed(this.red),this.c=new QA(A.c,16).toRed(this.red),this.c2=this.c.redSqr(),this.d=new QA(A.d,16).toRed(this.red),this.dd=this.d.redAdd(this.d),pT(!this.twisted||this.c.fromRed().cmpn(1)===0),this.oneC=(A.c|0)===1}Rt(AA,td);St.exports=AA;AA.prototype._mulA=function(a){return this.mOneA?a.redNeg():this.a.redMul(a)};AA.prototype._mulC=function(a){return this.oneC?a:this.c.redMul(a)};AA.prototype.jpoint=function(a,e,f,c){return this.point(a,e,f,c)};AA.prototype.pointFromX=function(a,e){a=new QA(a,16),a.red||(a=a.toRed(this.red));var f=a.redSqr(),c=this.c2.redSub(this.a.redMul(f)),d=this.one.redSub(this.c2.redMul(this.d).redMul(f)),b=c.redMul(d.redInvm()),r=b.redSqrt();if(r.redSqr().redSub(b).cmp(this.zero)!==0)throw new Error("invalid point");var n=r.fromRed().isOdd();return(e&&!n||!e&&n)&&(r=r.redNeg()),this.point(a,r)};AA.prototype.pointFromY=function(a,e){a=new QA(a,16),a.red||(a=a.toRed(this.red));var f=a.redSqr(),c=f.redSub(this.c2),d=f.redMul(this.d).redMul(this.c2).redSub(this.a),b=c.redMul(d.redInvm());if(b.cmp(this.zero)===0){if(e)throw new Error("invalid point");return this.point(this.zero,a)}var r=b.redSqrt();if(r.redSqr().redSub(b).cmp(this.zero)!==0)throw new Error("invalid point");return r.fromRed().isOdd()!==e&&(r=r.redNeg()),this.point(r,a)};AA.prototype.validate=function(a){if(a.isInfinity())return!0;a.normalize();var e=a.x.redSqr(),f=a.y.redSqr(),c=e.redMul(this.a).redAdd(f),d=this.c2.redMul(this.one.redAdd(this.d.redMul(e).redMul(f)));return c.cmp(d)===0};function B0(A,a,e,f,c){td.BasePoint.call(this,A,"projective"),a===null&&e===null&&f===null?(this.x=this.curve.zero,this.y=this.curve.one,this.z=this.curve.one,this.t=this.curve.zero,this.zOne=!0):(this.x=new QA(a,16),this.y=new QA(e,16),this.z=f?new QA(f,16):this.curve.one,this.t=c&&new QA(c,16),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)),this.t&&!this.t.red&&(this.t=this.t.toRed(this.curve.red)),this.zOne=this.z===this.curve.one,this.curve.extended&&!this.t&&(this.t=this.x.redMul(this.y),this.zOne||(this.t=this.t.redMul(this.z.redInvm()))))}Rt(B0,td.BasePoint);AA.prototype.pointFromJSON=function(a){return B0.fromJSON(this,a)};AA.prototype.point=function(a,e,f,c){return new B0(this,a,e,f,c)};B0.fromJSON=function(a,e){return new B0(a,e[0],e[1],e[2])};B0.prototype.inspect=function(){return this.isInfinity()?"":""};B0.prototype.isInfinity=function(){return this.x.cmpn(0)===0&&(this.y.cmp(this.z)===0||this.zOne&&this.y.cmp(this.curve.c)===0)};B0.prototype._extDbl=function(){var a=this.x.redSqr(),e=this.y.redSqr(),f=this.z.redSqr();f=f.redIAdd(f);var c=this.curve._mulA(a),d=this.x.redAdd(this.y).redSqr().redISub(a).redISub(e),b=c.redAdd(e),r=b.redSub(f),n=c.redSub(e),l=d.redMul(r),t=b.redMul(n),B=d.redMul(n),x=r.redMul(b);return this.curve.point(l,t,x,B)};B0.prototype._projDbl=function(){var a=this.x.redAdd(this.y).redSqr(),e=this.x.redSqr(),f=this.y.redSqr(),c,d,b,r,n,l;if(this.curve.twisted){r=this.curve._mulA(e);var t=r.redAdd(f);this.zOne?(c=a.redSub(e).redSub(f).redMul(t.redSub(this.curve.two)),d=t.redMul(r.redSub(f)),b=t.redSqr().redSub(t).redSub(t)):(n=this.z.redSqr(),l=t.redSub(n).redISub(n),c=a.redSub(e).redISub(f).redMul(l),d=t.redMul(r.redSub(f)),b=t.redMul(l))}else r=e.redAdd(f),n=this.curve._mulC(this.z).redSqr(),l=r.redSub(n).redSub(n),c=this.curve._mulC(a.redISub(r)).redMul(l),d=this.curve._mulC(r).redMul(e.redISub(f)),b=r.redMul(l);return this.curve.point(c,d,b)};B0.prototype.dbl=function(){return this.isInfinity()?this:this.curve.extended?this._extDbl():this._projDbl()};B0.prototype._extAdd=function(a){var e=this.y.redSub(this.x).redMul(a.y.redSub(a.x)),f=this.y.redAdd(this.x).redMul(a.y.redAdd(a.x)),c=this.t.redMul(this.curve.dd).redMul(a.t),d=this.z.redMul(a.z.redAdd(a.z)),b=f.redSub(e),r=d.redSub(c),n=d.redAdd(c),l=f.redAdd(e),t=b.redMul(r),B=n.redMul(l),x=b.redMul(l),p=r.redMul(n);return this.curve.point(t,B,p,x)};B0.prototype._projAdd=function(a){var e=this.z.redMul(a.z),f=e.redSqr(),c=this.x.redMul(a.x),d=this.y.redMul(a.y),b=this.curve.d.redMul(c).redMul(d),r=f.redSub(b),n=f.redAdd(b),l=this.x.redAdd(this.y).redMul(a.x.redAdd(a.y)).redISub(c).redISub(d),t=e.redMul(r).redMul(l),B,x;return this.curve.twisted?(B=e.redMul(n).redMul(d.redSub(this.curve._mulA(c))),x=r.redMul(n)):(B=e.redMul(n).redMul(d.redSub(c)),x=this.curve._mulC(r).redMul(n)),this.curve.point(t,B,x)};B0.prototype.add=function(a){return this.isInfinity()?a:a.isInfinity()?this:this.curve.extended?this._extAdd(a):this._projAdd(a)};B0.prototype.mul=function(a){return this._hasDoubles(a)?this.curve._fixedNafMul(this,a):this.curve._wnafMul(this,a)};B0.prototype.mulAdd=function(a,e,f){return this.curve._wnafMulAdd(1,[this,e],[a,f],2,!1)};B0.prototype.jmulAdd=function(a,e,f){return this.curve._wnafMulAdd(1,[this,e],[a,f],2,!0)};B0.prototype.normalize=function(){if(this.zOne)return this;var a=this.z.redInvm();return this.x=this.x.redMul(a),this.y=this.y.redMul(a),this.t&&(this.t=this.t.redMul(a)),this.z=this.curve.one,this.zOne=!0,this};B0.prototype.neg=function(){return this.curve.point(this.x.redNeg(),this.y,this.z,this.t&&this.t.redNeg())};B0.prototype.getX=function(){return this.normalize(),this.x.fromRed()};B0.prototype.getY=function(){return this.normalize(),this.y.fromRed()};B0.prototype.eq=function(a){return this===a||this.getX().cmp(a.getX())===0&&this.getY().cmp(a.getY())===0};B0.prototype.eqXToP=function(a){var e=a.toRed(this.curve.red).redMul(this.z);if(this.x.cmp(e)===0)return!0;for(var f=a.clone(),c=this.curve.redN.redMul(this.z);;){if(f.iadd(this.curve.n),f.cmp(this.curve.p)>=0)return!1;if(e.redIAdd(c),this.x.cmp(e)===0)return!0}};B0.prototype.toP=B0.prototype.normalize;B0.prototype.mixedAdd=B0.prototype.add});var k9=U(kt=>{"use strict";var ud=kt;ud.base=Jc();ud.short=xt();ud.mont=wt();ud.edwards=vt()});var S2=U(E0=>{"use strict";var TT=df(),wT=Hc();E0.inherits=wT;function RT(A,a){return(A.charCodeAt(a)&64512)!==55296||a<0||a+1>=A.length?!1:(A.charCodeAt(a+1)&64512)===56320}function ST(A,a){if(Array.isArray(A))return A.slice();if(!A)return[];var e=[];if(typeof A=="string")if(a){if(a==="hex")for(A=A.replace(/[^a-z0-9]+/ig,""),A.length%2!==0&&(A="0"+A),c=0;c>6|192,e[f++]=d&63|128):RT(A,c)?(d=65536+((d&1023)<<10)+(A.charCodeAt(++c)&1023),e[f++]=d>>18|240,e[f++]=d>>12&63|128,e[f++]=d>>6&63|128,e[f++]=d&63|128):(e[f++]=d>>12|224,e[f++]=d>>6&63|128,e[f++]=d&63|128)}else for(c=0;c>>24|A>>>8&65280|A<<8&16711680|(A&255)<<24;return a>>>0}E0.htonl=Qt;function kT(A,a){for(var e="",f=0;f>>0}return d}E0.join32=QT;function yT(A,a){for(var e=new Array(A.length*4),f=0,c=0;f>>24,e[c+1]=d>>>16&255,e[c+2]=d>>>8&255,e[c+3]=d&255):(e[c+3]=d>>>24,e[c+2]=d>>>16&255,e[c+1]=d>>>8&255,e[c]=d&255)}return e}E0.split32=yT;function MT(A,a){return A>>>a|A<<32-a}E0.rotr32=MT;function UT(A,a){return A<>>32-a}E0.rotl32=UT;function NT(A,a){return A+a>>>0}E0.sum32=NT;function OT(A,a,e){return A+a+e>>>0}E0.sum32_3=OT;function GT(A,a,e,f){return A+a+e+f>>>0}E0.sum32_4=GT;function PT(A,a,e,f,c){return A+a+e+f+c>>>0}E0.sum32_5=PT;function VT(A,a,e,f){var c=A[a],d=A[a+1],b=f+d>>>0,r=(b>>0,A[a+1]=b}E0.sum64=VT;function LT(A,a,e,f){var c=a+f>>>0,d=(c>>0}E0.sum64_hi=LT;function JT(A,a,e,f){var c=a+f;return c>>>0}E0.sum64_lo=JT;function HT(A,a,e,f,c,d,b,r){var n=0,l=a;l=l+f>>>0,n+=l>>0,n+=l>>0,n+=l>>0}E0.sum64_4_hi=HT;function ZT(A,a,e,f,c,d,b,r){var n=a+f+d+r;return n>>>0}E0.sum64_4_lo=ZT;function YT(A,a,e,f,c,d,b,r,n,l){var t=0,B=a;B=B+f>>>0,t+=B>>0,t+=B>>0,t+=B>>0,t+=B>>0}E0.sum64_5_hi=YT;function XT(A,a,e,f,c,d,b,r,n,l){var t=a+f+d+r+l;return t>>>0}E0.sum64_5_lo=XT;function WT(A,a,e){var f=a<<32-e|A>>>e;return f>>>0}E0.rotr64_hi=WT;function KT(A,a,e){var f=A<<32-e|a>>>e;return f>>>0}E0.rotr64_lo=KT;function qT(A,a,e){return A>>>e}E0.shr64_hi=qT;function zT(A,a,e){var f=A<<32-e|a>>>e;return f>>>0}E0.shr64_lo=zT});var h4=U(Nt=>{"use strict";var Ut=S2(),jT=df();function id(){this.pending=null,this.pendingTotal=0,this.blockSize=this.constructor.blockSize,this.outSize=this.constructor.outSize,this.hmacStrength=this.constructor.hmacStrength,this.padLength=this.constructor.padLength/8,this.endian="big",this._delta8=this.blockSize/8,this._delta32=this.blockSize/32}Nt.BlockHash=id;id.prototype.update=function(a,e){if(a=Ut.toArray(a,e),this.pending?this.pending=this.pending.concat(a):this.pending=a,this.pendingTotal+=a.length,this.pending.length>=this._delta8){a=this.pending;var f=a.length%this._delta8;this.pending=a.slice(a.length-f,a.length),this.pending.length===0&&(this.pending=null),a=Ut.join32(a,0,a.length-f,this.endian);for(var c=0;c>>24&255,c[d++]=a>>>16&255,c[d++]=a>>>8&255,c[d++]=a&255}else for(c[d++]=a&255,c[d++]=a>>>8&255,c[d++]=a>>>16&255,c[d++]=a>>>24&255,c[d++]=0,c[d++]=0,c[d++]=0,c[d++]=0,b=8;b{"use strict";var _T=S2(),fA=_T.rotr32;function $T(A,a,e,f){if(A===0)return Ot(a,e,f);if(A===1||A===3)return Pt(a,e,f);if(A===2)return Gt(a,e,f)}yA.ft_1=$T;function Ot(A,a,e){return A&a^~A&e}yA.ch32=Ot;function Gt(A,a,e){return A&a^A&e^a&e}yA.maj32=Gt;function Pt(A,a,e){return A^a^e}yA.p32=Pt;function ew(A){return fA(A,2)^fA(A,13)^fA(A,22)}yA.s0_256=ew;function aw(A){return fA(A,6)^fA(A,11)^fA(A,25)}yA.s1_256=aw;function Aw(A){return fA(A,7)^fA(A,18)^A>>>3}yA.g0_256=Aw;function fw(A){return fA(A,17)^fA(A,19)^A>>>10}yA.g1_256=fw});var Jt=U((hZ,Lt)=>{"use strict";var C4=S2(),cw=h4(),dw=Q9(),y9=C4.rotl32,Zc=C4.sum32,bw=C4.sum32_5,lw=dw.ft_1,Vt=cw.BlockHash,rw=[1518500249,1859775393,2400959708,3395469782];function cA(){if(!(this instanceof cA))return new cA;Vt.call(this),this.h=[1732584193,4023233417,2562383102,271733878,3285377520],this.W=new Array(80)}C4.inherits(cA,Vt);Lt.exports=cA;cA.blockSize=512;cA.outSize=160;cA.hmacStrength=80;cA.padLength=64;cA.prototype._update=function(a,e){for(var f=this.W,c=0;c<16;c++)f[c]=a[e+c];for(;c{"use strict";var g4=S2(),nw=h4(),I4=Q9(),tw=df(),v2=g4.sum32,uw=g4.sum32_4,iw=g4.sum32_5,ow=I4.ch32,sw=I4.maj32,Ew=I4.s0_256,Bw=I4.s1_256,hw=I4.g0_256,Cw=I4.g1_256,Ht=nw.BlockHash,gw=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298];function dA(){if(!(this instanceof dA))return new dA;Ht.call(this),this.h=[1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225],this.k=gw,this.W=new Array(64)}g4.inherits(dA,Ht);Zt.exports=dA;dA.blockSize=512;dA.outSize=256;dA.hmacStrength=192;dA.padLength=64;dA.prototype._update=function(a,e){for(var f=this.W,c=0;c<16;c++)f[c]=a[e+c];for(;c{"use strict";var U9=S2(),Yt=M9();function MA(){if(!(this instanceof MA))return new MA;Yt.call(this),this.h=[3238371032,914150663,812702999,4144912697,4290775857,1750603025,1694076839,3204075428]}U9.inherits(MA,Yt);Xt.exports=MA;MA.blockSize=512;MA.outSize=224;MA.hmacStrength=192;MA.padLength=64;MA.prototype._digest=function(a){return a==="hex"?U9.toHex32(this.h.slice(0,7),"big"):U9.split32(this.h.slice(0,7),"big")}});var G9=U((IZ,jt)=>{"use strict";var Sa=S2(),Iw=h4(),Fw=df(),bA=Sa.rotr64_hi,lA=Sa.rotr64_lo,Kt=Sa.shr64_hi,qt=Sa.shr64_lo,rf=Sa.sum64,N9=Sa.sum64_hi,O9=Sa.sum64_lo,Dw=Sa.sum64_4_hi,mw=Sa.sum64_4_lo,xw=Sa.sum64_5_hi,pw=Sa.sum64_5_lo,zt=Iw.BlockHash,Tw=[1116352408,3609767458,1899447441,602891725,3049323471,3964484399,3921009573,2173295548,961987163,4081628472,1508970993,3053834265,2453635748,2937671579,2870763221,3664609560,3624381080,2734883394,310598401,1164996542,607225278,1323610764,1426881987,3590304994,1925078388,4068182383,2162078206,991336113,2614888103,633803317,3248222580,3479774868,3835390401,2666613458,4022224774,944711139,264347078,2341262773,604807628,2007800933,770255983,1495990901,1249150122,1856431235,1555081692,3175218132,1996064986,2198950837,2554220882,3999719339,2821834349,766784016,2952996808,2566594879,3210313671,3203337956,3336571891,1034457026,3584528711,2466948901,113926993,3758326383,338241895,168717936,666307205,1188179964,773529912,1546045734,1294757372,1522805485,1396182291,2643833823,1695183700,2343527390,1986661051,1014477480,2177026350,1206759142,2456956037,344077627,2730485921,1290863460,2820302411,3158454273,3259730800,3505952657,3345764771,106217008,3516065817,3606008344,3600352804,1432725776,4094571909,1467031594,275423344,851169720,430227734,3100823752,506948616,1363258195,659060556,3750685593,883997877,3785050280,958139571,3318307427,1322822218,3812723403,1537002063,2003034995,1747873779,3602036899,1955562222,1575990012,2024104815,1125592928,2227730452,2716904306,2361852424,442776044,2428436474,593698344,2756734187,3733110249,3204031479,2999351573,3329325298,3815920427,3391569614,3928383900,3515267271,566280711,3940187606,3454069534,4118630271,4000239992,116418474,1914138554,174292421,2731055270,289380356,3203993006,460393269,320620315,685471733,587496836,852142971,1086792851,1017036298,365543100,1126000580,2618297676,1288033470,3409855158,1501505948,4234509866,1607167915,987167468,1816402316,1246189591];function k2(){if(!(this instanceof k2))return new k2;zt.call(this),this.h=[1779033703,4089235720,3144134277,2227873595,1013904242,4271175723,2773480762,1595750129,1359893119,2917565137,2600822924,725511199,528734635,4215389547,1541459225,327033209],this.k=Tw,this.W=new Array(160)}Sa.inherits(k2,zt);jt.exports=k2;k2.blockSize=1024;k2.outSize=512;k2.hmacStrength=192;k2.padLength=128;k2.prototype._prepareBlock=function(a,e){for(var f=this.W,c=0;c<32;c++)f[c]=a[e+c];for(;c{"use strict";var P9=S2(),_t=G9();function UA(){if(!(this instanceof UA))return new UA;_t.call(this),this.h=[3418070365,3238371032,1654270250,914150663,2438529370,812702999,355462360,4144912697,1731405415,4290775857,2394180231,1750603025,3675008525,1694076839,1203062813,3204075428]}P9.inherits(UA,_t);$t.exports=UA;UA.blockSize=1024;UA.outSize=384;UA.hmacStrength=192;UA.padLength=128;UA.prototype._digest=function(a){return a==="hex"?P9.toHex32(this.h.slice(0,12),"big"):P9.split32(this.h.slice(0,12),"big")}});var au=U(F4=>{"use strict";F4.sha1=Jt();F4.sha224=Wt();F4.sha256=M9();F4.sha384=eu();F4.sha512=G9()});var lu=U(bu=>{"use strict";var t1=S2(),Pw=h4(),od=t1.rotl32,Au=t1.sum32,Yc=t1.sum32_3,fu=t1.sum32_4,du=Pw.BlockHash;function rA(){if(!(this instanceof rA))return new rA;du.call(this),this.h=[1732584193,4023233417,2562383102,271733878,3285377520],this.endian="little"}t1.inherits(rA,du);bu.ripemd160=rA;rA.blockSize=512;rA.outSize=160;rA.hmacStrength=192;rA.padLength=64;rA.prototype._update=function(a,e){for(var f=this.h[0],c=this.h[1],d=this.h[2],b=this.h[3],r=this.h[4],n=f,l=c,t=d,B=b,x=r,p=0;p<80;p++){var w=Au(od(fu(f,cu(p,c,d,b),a[Jw[p]+e],Vw(p)),Zw[p]),r);f=r,r=b,b=od(d,10),d=c,c=w,w=Au(od(fu(n,cu(79-p,l,t,B),a[Hw[p]+e],Lw(p)),Yw[p]),x),n=x,x=B,B=od(t,10),t=l,l=w}w=Yc(this.h[1],d,B),this.h[1]=Yc(this.h[2],b,x),this.h[2]=Yc(this.h[3],r,n),this.h[3]=Yc(this.h[4],f,l),this.h[4]=Yc(this.h[0],c,t),this.h[0]=w};rA.prototype._digest=function(a){return a==="hex"?t1.toHex32(this.h,"little"):t1.split32(this.h,"little")};function cu(A,a,e,f){return A<=15?a^e^f:A<=31?a&e|~a&f:A<=47?(a|~e)^f:A<=63?a&f|e&~f:a^(e|~f)}function Vw(A){return A<=15?0:A<=31?1518500249:A<=47?1859775393:A<=63?2400959708:2840853838}function Lw(A){return A<=15?1352829926:A<=31?1548603684:A<=47?1836072691:A<=63?2053994217:0}var Jw=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13],Hw=[5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11],Zw=[11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6],Yw=[8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11]});var nu=U((xZ,ru)=>{"use strict";var Xw=S2(),Ww=df();function D4(A,a,e){if(!(this instanceof D4))return new D4(A,a,e);this.Hash=A,this.blockSize=A.blockSize/8,this.outSize=A.outSize/8,this.inner=null,this.outer=null,this._init(Xw.toArray(a,e))}ru.exports=D4;D4.prototype._init=function(a){a.length>this.blockSize&&(a=new this.Hash().update(a).digest()),Ww(a.length<=this.blockSize);for(var e=a.length;e{var aa=tu;aa.utils=S2();aa.common=h4();aa.sha=au();aa.ripemd=lu();aa.hmac=nu();aa.sha1=aa.sha.sha1;aa.sha256=aa.sha.sha256;aa.sha224=aa.sha.sha224;aa.sha384=aa.sha.sha384;aa.sha512=aa.sha.sha512;aa.ripemd160=aa.ripemd.ripemd160});var iu=U((TZ,uu)=>{uu.exports={doubles:{step:4,points:[["e60fce93b59e9ec53011aabc21c23e97b2a31369b87a5ae9c44ee89e2a6dec0a","f7e3507399e595929db99f34f57937101296891e44d23f0be1f32cce69616821"],["8282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508","11f8a8098557dfe45e8256e830b60ace62d613ac2f7b17bed31b6eaff6e26caf"],["175e159f728b865a72f99cc6c6fc846de0b93833fd2222ed73fce5b551e5b739","d3506e0d9e3c79eba4ef97a51ff71f5eacb5955add24345c6efa6ffee9fed695"],["363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff4640","4e273adfc732221953b445397f3363145b9a89008199ecb62003c7f3bee9de9"],["8b4b5f165df3c2be8c6244b5b745638843e4a781a15bcd1b69f79a55dffdf80c","4aad0a6f68d308b4b3fbd7813ab0da04f9e336546162ee56b3eff0c65fd4fd36"],["723cbaa6e5db996d6bf771c00bd548c7b700dbffa6c0e77bcb6115925232fcda","96e867b5595cc498a921137488824d6e2660a0653779494801dc069d9eb39f5f"],["eebfa4d493bebf98ba5feec812c2d3b50947961237a919839a533eca0e7dd7fa","5d9a8ca3970ef0f269ee7edaf178089d9ae4cdc3a711f712ddfd4fdae1de8999"],["100f44da696e71672791d0a09b7bde459f1215a29b3c03bfefd7835b39a48db0","cdd9e13192a00b772ec8f3300c090666b7ff4a18ff5195ac0fbd5cd62bc65a09"],["e1031be262c7ed1b1dc9227a4a04c017a77f8d4464f3b3852c8acde6e534fd2d","9d7061928940405e6bb6a4176597535af292dd419e1ced79a44f18f29456a00d"],["feea6cae46d55b530ac2839f143bd7ec5cf8b266a41d6af52d5e688d9094696d","e57c6b6c97dce1bab06e4e12bf3ecd5c981c8957cc41442d3155debf18090088"],["da67a91d91049cdcb367be4be6ffca3cfeed657d808583de33fa978bc1ec6cb1","9bacaa35481642bc41f463f7ec9780e5dec7adc508f740a17e9ea8e27a68be1d"],["53904faa0b334cdda6e000935ef22151ec08d0f7bb11069f57545ccc1a37b7c0","5bc087d0bc80106d88c9eccac20d3c1c13999981e14434699dcb096b022771c8"],["8e7bcd0bd35983a7719cca7764ca906779b53a043a9b8bcaeff959f43ad86047","10b7770b2a3da4b3940310420ca9514579e88e2e47fd68b3ea10047e8460372a"],["385eed34c1cdff21e6d0818689b81bde71a7f4f18397e6690a841e1599c43862","283bebc3e8ea23f56701de19e9ebf4576b304eec2086dc8cc0458fe5542e5453"],["6f9d9b803ecf191637c73a4413dfa180fddf84a5947fbc9c606ed86c3fac3a7","7c80c68e603059ba69b8e2a30e45c4d47ea4dd2f5c281002d86890603a842160"],["3322d401243c4e2582a2147c104d6ecbf774d163db0f5e5313b7e0e742d0e6bd","56e70797e9664ef5bfb019bc4ddaf9b72805f63ea2873af624f3a2e96c28b2a0"],["85672c7d2de0b7da2bd1770d89665868741b3f9af7643397721d74d28134ab83","7c481b9b5b43b2eb6374049bfa62c2e5e77f17fcc5298f44c8e3094f790313a6"],["948bf809b1988a46b06c9f1919413b10f9226c60f668832ffd959af60c82a0a","53a562856dcb6646dc6b74c5d1c3418c6d4dff08c97cd2bed4cb7f88d8c8e589"],["6260ce7f461801c34f067ce0f02873a8f1b0e44dfc69752accecd819f38fd8e8","bc2da82b6fa5b571a7f09049776a1ef7ecd292238051c198c1a84e95b2b4ae17"],["e5037de0afc1d8d43d8348414bbf4103043ec8f575bfdc432953cc8d2037fa2d","4571534baa94d3b5f9f98d09fb990bddbd5f5b03ec481f10e0e5dc841d755bda"],["e06372b0f4a207adf5ea905e8f1771b4e7e8dbd1c6a6c5b725866a0ae4fce725","7a908974bce18cfe12a27bb2ad5a488cd7484a7787104870b27034f94eee31dd"],["213c7a715cd5d45358d0bbf9dc0ce02204b10bdde2a3f58540ad6908d0559754","4b6dad0b5ae462507013ad06245ba190bb4850f5f36a7eeddff2c27534b458f2"],["4e7c272a7af4b34e8dbb9352a5419a87e2838c70adc62cddf0cc3a3b08fbd53c","17749c766c9d0b18e16fd09f6def681b530b9614bff7dd33e0b3941817dcaae6"],["fea74e3dbe778b1b10f238ad61686aa5c76e3db2be43057632427e2840fb27b6","6e0568db9b0b13297cf674deccb6af93126b596b973f7b77701d3db7f23cb96f"],["76e64113f677cf0e10a2570d599968d31544e179b760432952c02a4417bdde39","c90ddf8dee4e95cf577066d70681f0d35e2a33d2b56d2032b4b1752d1901ac01"],["c738c56b03b2abe1e8281baa743f8f9a8f7cc643df26cbee3ab150242bcbb891","893fb578951ad2537f718f2eacbfbbbb82314eef7880cfe917e735d9699a84c3"],["d895626548b65b81e264c7637c972877d1d72e5f3a925014372e9f6588f6c14b","febfaa38f2bc7eae728ec60818c340eb03428d632bb067e179363ed75d7d991f"],["b8da94032a957518eb0f6433571e8761ceffc73693e84edd49150a564f676e03","2804dfa44805a1e4d7c99cc9762808b092cc584d95ff3b511488e4e74efdf6e7"],["e80fea14441fb33a7d8adab9475d7fab2019effb5156a792f1a11778e3c0df5d","eed1de7f638e00771e89768ca3ca94472d155e80af322ea9fcb4291b6ac9ec78"],["a301697bdfcd704313ba48e51d567543f2a182031efd6915ddc07bbcc4e16070","7370f91cfb67e4f5081809fa25d40f9b1735dbf7c0a11a130c0d1a041e177ea1"],["90ad85b389d6b936463f9d0512678de208cc330b11307fffab7ac63e3fb04ed4","e507a3620a38261affdcbd9427222b839aefabe1582894d991d4d48cb6ef150"],["8f68b9d2f63b5f339239c1ad981f162ee88c5678723ea3351b7b444c9ec4c0da","662a9f2dba063986de1d90c2b6be215dbbea2cfe95510bfdf23cbf79501fff82"],["e4f3fb0176af85d65ff99ff9198c36091f48e86503681e3e6686fd5053231e11","1e63633ad0ef4f1c1661a6d0ea02b7286cc7e74ec951d1c9822c38576feb73bc"],["8c00fa9b18ebf331eb961537a45a4266c7034f2f0d4e1d0716fb6eae20eae29e","efa47267fea521a1a9dc343a3736c974c2fadafa81e36c54e7d2a4c66702414b"],["e7a26ce69dd4829f3e10cec0a9e98ed3143d084f308b92c0997fddfc60cb3e41","2a758e300fa7984b471b006a1aafbb18d0a6b2c0420e83e20e8a9421cf2cfd51"],["b6459e0ee3662ec8d23540c223bcbdc571cbcb967d79424f3cf29eb3de6b80ef","67c876d06f3e06de1dadf16e5661db3c4b3ae6d48e35b2ff30bf0b61a71ba45"],["d68a80c8280bb840793234aa118f06231d6f1fc67e73c5a5deda0f5b496943e8","db8ba9fff4b586d00c4b1f9177b0e28b5b0e7b8f7845295a294c84266b133120"],["324aed7df65c804252dc0270907a30b09612aeb973449cea4095980fc28d3d5d","648a365774b61f2ff130c0c35aec1f4f19213b0c7e332843967224af96ab7c84"],["4df9c14919cde61f6d51dfdbe5fee5dceec4143ba8d1ca888e8bd373fd054c96","35ec51092d8728050974c23a1d85d4b5d506cdc288490192ebac06cad10d5d"],["9c3919a84a474870faed8a9c1cc66021523489054d7f0308cbfc99c8ac1f98cd","ddb84f0f4a4ddd57584f044bf260e641905326f76c64c8e6be7e5e03d4fc599d"],["6057170b1dd12fdf8de05f281d8e06bb91e1493a8b91d4cc5a21382120a959e5","9a1af0b26a6a4807add9a2daf71df262465152bc3ee24c65e899be932385a2a8"],["a576df8e23a08411421439a4518da31880cef0fba7d4df12b1a6973eecb94266","40a6bf20e76640b2c92b97afe58cd82c432e10a7f514d9f3ee8be11ae1b28ec8"],["7778a78c28dec3e30a05fe9629de8c38bb30d1f5cf9a3a208f763889be58ad71","34626d9ab5a5b22ff7098e12f2ff580087b38411ff24ac563b513fc1fd9f43ac"],["928955ee637a84463729fd30e7afd2ed5f96274e5ad7e5cb09eda9c06d903ac","c25621003d3f42a827b78a13093a95eeac3d26efa8a8d83fc5180e935bcd091f"],["85d0fef3ec6db109399064f3a0e3b2855645b4a907ad354527aae75163d82751","1f03648413a38c0be29d496e582cf5663e8751e96877331582c237a24eb1f962"],["ff2b0dce97eece97c1c9b6041798b85dfdfb6d8882da20308f5404824526087e","493d13fef524ba188af4c4dc54d07936c7b7ed6fb90e2ceb2c951e01f0c29907"],["827fbbe4b1e880ea9ed2b2e6301b212b57f1ee148cd6dd28780e5e2cf856e241","c60f9c923c727b0b71bef2c67d1d12687ff7a63186903166d605b68baec293ec"],["eaa649f21f51bdbae7be4ae34ce6e5217a58fdce7f47f9aa7f3b58fa2120e2b3","be3279ed5bbbb03ac69a80f89879aa5a01a6b965f13f7e59d47a5305ba5ad93d"],["e4a42d43c5cf169d9391df6decf42ee541b6d8f0c9a137401e23632dda34d24f","4d9f92e716d1c73526fc99ccfb8ad34ce886eedfa8d8e4f13a7f7131deba9414"],["1ec80fef360cbdd954160fadab352b6b92b53576a88fea4947173b9d4300bf19","aeefe93756b5340d2f3a4958a7abbf5e0146e77f6295a07b671cdc1cc107cefd"],["146a778c04670c2f91b00af4680dfa8bce3490717d58ba889ddb5928366642be","b318e0ec3354028add669827f9d4b2870aaa971d2f7e5ed1d0b297483d83efd0"],["fa50c0f61d22e5f07e3acebb1aa07b128d0012209a28b9776d76a8793180eef9","6b84c6922397eba9b72cd2872281a68a5e683293a57a213b38cd8d7d3f4f2811"],["da1d61d0ca721a11b1a5bf6b7d88e8421a288ab5d5bba5220e53d32b5f067ec2","8157f55a7c99306c79c0766161c91e2966a73899d279b48a655fba0f1ad836f1"],["a8e282ff0c9706907215ff98e8fd416615311de0446f1e062a73b0610d064e13","7f97355b8db81c09abfb7f3c5b2515888b679a3e50dd6bd6cef7c73111f4cc0c"],["174a53b9c9a285872d39e56e6913cab15d59b1fa512508c022f382de8319497c","ccc9dc37abfc9c1657b4155f2c47f9e6646b3a1d8cb9854383da13ac079afa73"],["959396981943785c3d3e57edf5018cdbe039e730e4918b3d884fdff09475b7ba","2e7e552888c331dd8ba0386a4b9cd6849c653f64c8709385e9b8abf87524f2fd"],["d2a63a50ae401e56d645a1153b109a8fcca0a43d561fba2dbb51340c9d82b151","e82d86fb6443fcb7565aee58b2948220a70f750af484ca52d4142174dcf89405"],["64587e2335471eb890ee7896d7cfdc866bacbdbd3839317b3436f9b45617e073","d99fcdd5bf6902e2ae96dd6447c299a185b90a39133aeab358299e5e9faf6589"],["8481bde0e4e4d885b3a546d3e549de042f0aa6cea250e7fd358d6c86dd45e458","38ee7b8cba5404dd84a25bf39cecb2ca900a79c42b262e556d64b1b59779057e"],["13464a57a78102aa62b6979ae817f4637ffcfed3c4b1ce30bcd6303f6caf666b","69be159004614580ef7e433453ccb0ca48f300a81d0942e13f495a907f6ecc27"],["bc4a9df5b713fe2e9aef430bcc1dc97a0cd9ccede2f28588cada3a0d2d83f366","d3a81ca6e785c06383937adf4b798caa6e8a9fbfa547b16d758d666581f33c1"],["8c28a97bf8298bc0d23d8c749452a32e694b65e30a9472a3954ab30fe5324caa","40a30463a3305193378fedf31f7cc0eb7ae784f0451cb9459e71dc73cbef9482"],["8ea9666139527a8c1dd94ce4f071fd23c8b350c5a4bb33748c4ba111faccae0","620efabbc8ee2782e24e7c0cfb95c5d735b783be9cf0f8e955af34a30e62b945"],["dd3625faef5ba06074669716bbd3788d89bdde815959968092f76cc4eb9a9787","7a188fa3520e30d461da2501045731ca941461982883395937f68d00c644a573"],["f710d79d9eb962297e4f6232b40e8f7feb2bc63814614d692c12de752408221e","ea98e67232d3b3295d3b535532115ccac8612c721851617526ae47a9c77bfc82"]]},naf:{wnd:7,points:[["f9308a019258c31049344f85f89d5229b531c845836f99b08601f113bce036f9","388f7b0f632de8140fe337e62a37f3566500a99934c2231b6cb9fd7584b8e672"],["2f8bde4d1a07209355b4a7250a5c5128e88b84bddc619ab7cba8d569b240efe4","d8ac222636e5e3d6d4dba9dda6c9c426f788271bab0d6840dca87d3aa6ac62d6"],["5cbdf0646e5db4eaa398f365f2ea7a0e3d419b7e0330e39ce92bddedcac4f9bc","6aebca40ba255960a3178d6d861a54dba813d0b813fde7b5a5082628087264da"],["acd484e2f0c7f65309ad178a9f559abde09796974c57e714c35f110dfc27ccbe","cc338921b0a7d9fd64380971763b61e9add888a4375f8e0f05cc262ac64f9c37"],["774ae7f858a9411e5ef4246b70c65aac5649980be5c17891bbec17895da008cb","d984a032eb6b5e190243dd56d7b7b365372db1e2dff9d6a8301d74c9c953c61b"],["f28773c2d975288bc7d1d205c3748651b075fbc6610e58cddeeddf8f19405aa8","ab0902e8d880a89758212eb65cdaf473a1a06da521fa91f29b5cb52db03ed81"],["d7924d4f7d43ea965a465ae3095ff41131e5946f3c85f79e44adbcf8e27e080e","581e2872a86c72a683842ec228cc6defea40af2bd896d3a5c504dc9ff6a26b58"],["defdea4cdb677750a420fee807eacf21eb9898ae79b9768766e4faa04a2d4a34","4211ab0694635168e997b0ead2a93daeced1f4a04a95c0f6cfb199f69e56eb77"],["2b4ea0a797a443d293ef5cff444f4979f06acfebd7e86d277475656138385b6c","85e89bc037945d93b343083b5a1c86131a01f60c50269763b570c854e5c09b7a"],["352bbf4a4cdd12564f93fa332ce333301d9ad40271f8107181340aef25be59d5","321eb4075348f534d59c18259dda3e1f4a1b3b2e71b1039c67bd3d8bcf81998c"],["2fa2104d6b38d11b0230010559879124e42ab8dfeff5ff29dc9cdadd4ecacc3f","2de1068295dd865b64569335bd5dd80181d70ecfc882648423ba76b532b7d67"],["9248279b09b4d68dab21a9b066edda83263c3d84e09572e269ca0cd7f5453714","73016f7bf234aade5d1aa71bdea2b1ff3fc0de2a887912ffe54a32ce97cb3402"],["daed4f2be3a8bf278e70132fb0beb7522f570e144bf615c07e996d443dee8729","a69dce4a7d6c98e8d4a1aca87ef8d7003f83c230f3afa726ab40e52290be1c55"],["c44d12c7065d812e8acf28d7cbb19f9011ecd9e9fdf281b0e6a3b5e87d22e7db","2119a460ce326cdc76c45926c982fdac0e106e861edf61c5a039063f0e0e6482"],["6a245bf6dc698504c89a20cfded60853152b695336c28063b61c65cbd269e6b4","e022cf42c2bd4a708b3f5126f16a24ad8b33ba48d0423b6efd5e6348100d8a82"],["1697ffa6fd9de627c077e3d2fe541084ce13300b0bec1146f95ae57f0d0bd6a5","b9c398f186806f5d27561506e4557433a2cf15009e498ae7adee9d63d01b2396"],["605bdb019981718b986d0f07e834cb0d9deb8360ffb7f61df982345ef27a7479","2972d2de4f8d20681a78d93ec96fe23c26bfae84fb14db43b01e1e9056b8c49"],["62d14dab4150bf497402fdc45a215e10dcb01c354959b10cfe31c7e9d87ff33d","80fc06bd8cc5b01098088a1950eed0db01aa132967ab472235f5642483b25eaf"],["80c60ad0040f27dade5b4b06c408e56b2c50e9f56b9b8b425e555c2f86308b6f","1c38303f1cc5c30f26e66bad7fe72f70a65eed4cbe7024eb1aa01f56430bd57a"],["7a9375ad6167ad54aa74c6348cc54d344cc5dc9487d847049d5eabb0fa03c8fb","d0e3fa9eca8726909559e0d79269046bdc59ea10c70ce2b02d499ec224dc7f7"],["d528ecd9b696b54c907a9ed045447a79bb408ec39b68df504bb51f459bc3ffc9","eecf41253136e5f99966f21881fd656ebc4345405c520dbc063465b521409933"],["49370a4b5f43412ea25f514e8ecdad05266115e4a7ecb1387231808f8b45963","758f3f41afd6ed428b3081b0512fd62a54c3f3afbb5b6764b653052a12949c9a"],["77f230936ee88cbbd73df930d64702ef881d811e0e1498e2f1c13eb1fc345d74","958ef42a7886b6400a08266e9ba1b37896c95330d97077cbbe8eb3c7671c60d6"],["f2dac991cc4ce4b9ea44887e5c7c0bce58c80074ab9d4dbaeb28531b7739f530","e0dedc9b3b2f8dad4da1f32dec2531df9eb5fbeb0598e4fd1a117dba703a3c37"],["463b3d9f662621fb1b4be8fbbe2520125a216cdfc9dae3debcba4850c690d45b","5ed430d78c296c3543114306dd8622d7c622e27c970a1de31cb377b01af7307e"],["f16f804244e46e2a09232d4aff3b59976b98fac14328a2d1a32496b49998f247","cedabd9b82203f7e13d206fcdf4e33d92a6c53c26e5cce26d6579962c4e31df6"],["caf754272dc84563b0352b7a14311af55d245315ace27c65369e15f7151d41d1","cb474660ef35f5f2a41b643fa5e460575f4fa9b7962232a5c32f908318a04476"],["2600ca4b282cb986f85d0f1709979d8b44a09c07cb86d7c124497bc86f082120","4119b88753c15bd6a693b03fcddbb45d5ac6be74ab5f0ef44b0be9475a7e4b40"],["7635ca72d7e8432c338ec53cd12220bc01c48685e24f7dc8c602a7746998e435","91b649609489d613d1d5e590f78e6d74ecfc061d57048bad9e76f302c5b9c61"],["754e3239f325570cdbbf4a87deee8a66b7f2b33479d468fbc1a50743bf56cc18","673fb86e5bda30fb3cd0ed304ea49a023ee33d0197a695d0c5d98093c536683"],["e3e6bd1071a1e96aff57859c82d570f0330800661d1c952f9fe2694691d9b9e8","59c9e0bba394e76f40c0aa58379a3cb6a5a2283993e90c4167002af4920e37f5"],["186b483d056a033826ae73d88f732985c4ccb1f32ba35f4b4cc47fdcf04aa6eb","3b952d32c67cf77e2e17446e204180ab21fb8090895138b4a4a797f86e80888b"],["df9d70a6b9876ce544c98561f4be4f725442e6d2b737d9c91a8321724ce0963f","55eb2dafd84d6ccd5f862b785dc39d4ab157222720ef9da217b8c45cf2ba2417"],["5edd5cc23c51e87a497ca815d5dce0f8ab52554f849ed8995de64c5f34ce7143","efae9c8dbc14130661e8cec030c89ad0c13c66c0d17a2905cdc706ab7399a868"],["290798c2b6476830da12fe02287e9e777aa3fba1c355b17a722d362f84614fba","e38da76dcd440621988d00bcf79af25d5b29c094db2a23146d003afd41943e7a"],["af3c423a95d9f5b3054754efa150ac39cd29552fe360257362dfdecef4053b45","f98a3fd831eb2b749a93b0e6f35cfb40c8cd5aa667a15581bc2feded498fd9c6"],["766dbb24d134e745cccaa28c99bf274906bb66b26dcf98df8d2fed50d884249a","744b1152eacbe5e38dcc887980da38b897584a65fa06cedd2c924f97cbac5996"],["59dbf46f8c94759ba21277c33784f41645f7b44f6c596a58ce92e666191abe3e","c534ad44175fbc300f4ea6ce648309a042ce739a7919798cd85e216c4a307f6e"],["f13ada95103c4537305e691e74e9a4a8dd647e711a95e73cb62dc6018cfd87b8","e13817b44ee14de663bf4bc808341f326949e21a6a75c2570778419bdaf5733d"],["7754b4fa0e8aced06d4167a2c59cca4cda1869c06ebadfb6488550015a88522c","30e93e864e669d82224b967c3020b8fa8d1e4e350b6cbcc537a48b57841163a2"],["948dcadf5990e048aa3874d46abef9d701858f95de8041d2a6828c99e2262519","e491a42537f6e597d5d28a3224b1bc25df9154efbd2ef1d2cbba2cae5347d57e"],["7962414450c76c1689c7b48f8202ec37fb224cf5ac0bfa1570328a8a3d7c77ab","100b610ec4ffb4760d5c1fc133ef6f6b12507a051f04ac5760afa5b29db83437"],["3514087834964b54b15b160644d915485a16977225b8847bb0dd085137ec47ca","ef0afbb2056205448e1652c48e8127fc6039e77c15c2378b7e7d15a0de293311"],["d3cc30ad6b483e4bc79ce2c9dd8bc54993e947eb8df787b442943d3f7b527eaf","8b378a22d827278d89c5e9be8f9508ae3c2ad46290358630afb34db04eede0a4"],["1624d84780732860ce1c78fcbfefe08b2b29823db913f6493975ba0ff4847610","68651cf9b6da903e0914448c6cd9d4ca896878f5282be4c8cc06e2a404078575"],["733ce80da955a8a26902c95633e62a985192474b5af207da6df7b4fd5fc61cd4","f5435a2bd2badf7d485a4d8b8db9fcce3e1ef8e0201e4578c54673bc1dc5ea1d"],["15d9441254945064cf1a1c33bbd3b49f8966c5092171e699ef258dfab81c045c","d56eb30b69463e7234f5137b73b84177434800bacebfc685fc37bbe9efe4070d"],["a1d0fcf2ec9de675b612136e5ce70d271c21417c9d2b8aaaac138599d0717940","edd77f50bcb5a3cab2e90737309667f2641462a54070f3d519212d39c197a629"],["e22fbe15c0af8ccc5780c0735f84dbe9a790badee8245c06c7ca37331cb36980","a855babad5cd60c88b430a69f53a1a7a38289154964799be43d06d77d31da06"],["311091dd9860e8e20ee13473c1155f5f69635e394704eaa74009452246cfa9b3","66db656f87d1f04fffd1f04788c06830871ec5a64feee685bd80f0b1286d8374"],["34c1fd04d301be89b31c0442d3e6ac24883928b45a9340781867d4232ec2dbdf","9414685e97b1b5954bd46f730174136d57f1ceeb487443dc5321857ba73abee"],["f219ea5d6b54701c1c14de5b557eb42a8d13f3abbcd08affcc2a5e6b049b8d63","4cb95957e83d40b0f73af4544cccf6b1f4b08d3c07b27fb8d8c2962a400766d1"],["d7b8740f74a8fbaab1f683db8f45de26543a5490bca627087236912469a0b448","fa77968128d9c92ee1010f337ad4717eff15db5ed3c049b3411e0315eaa4593b"],["32d31c222f8f6f0ef86f7c98d3a3335ead5bcd32abdd94289fe4d3091aa824bf","5f3032f5892156e39ccd3d7915b9e1da2e6dac9e6f26e961118d14b8462e1661"],["7461f371914ab32671045a155d9831ea8793d77cd59592c4340f86cbc18347b5","8ec0ba238b96bec0cbdddcae0aa442542eee1ff50c986ea6b39847b3cc092ff6"],["ee079adb1df1860074356a25aa38206a6d716b2c3e67453d287698bad7b2b2d6","8dc2412aafe3be5c4c5f37e0ecc5f9f6a446989af04c4e25ebaac479ec1c8c1e"],["16ec93e447ec83f0467b18302ee620f7e65de331874c9dc72bfd8616ba9da6b5","5e4631150e62fb40d0e8c2a7ca5804a39d58186a50e497139626778e25b0674d"],["eaa5f980c245f6f038978290afa70b6bd8855897f98b6aa485b96065d537bd99","f65f5d3e292c2e0819a528391c994624d784869d7e6ea67fb18041024edc07dc"],["78c9407544ac132692ee1910a02439958ae04877151342ea96c4b6b35a49f51","f3e0319169eb9b85d5404795539a5e68fa1fbd583c064d2462b675f194a3ddb4"],["494f4be219a1a77016dcd838431aea0001cdc8ae7a6fc688726578d9702857a5","42242a969283a5f339ba7f075e36ba2af925ce30d767ed6e55f4b031880d562c"],["a598a8030da6d86c6bc7f2f5144ea549d28211ea58faa70ebf4c1e665c1fe9b5","204b5d6f84822c307e4b4a7140737aec23fc63b65b35f86a10026dbd2d864e6b"],["c41916365abb2b5d09192f5f2dbeafec208f020f12570a184dbadc3e58595997","4f14351d0087efa49d245b328984989d5caf9450f34bfc0ed16e96b58fa9913"],["841d6063a586fa475a724604da03bc5b92a2e0d2e0a36acfe4c73a5514742881","73867f59c0659e81904f9a1c7543698e62562d6744c169ce7a36de01a8d6154"],["5e95bb399a6971d376026947f89bde2f282b33810928be4ded112ac4d70e20d5","39f23f366809085beebfc71181313775a99c9aed7d8ba38b161384c746012865"],["36e4641a53948fd476c39f8a99fd974e5ec07564b5315d8bf99471bca0ef2f66","d2424b1b1abe4eb8164227b085c9aa9456ea13493fd563e06fd51cf5694c78fc"],["336581ea7bfbbb290c191a2f507a41cf5643842170e914faeab27c2c579f726","ead12168595fe1be99252129b6e56b3391f7ab1410cd1e0ef3dcdcabd2fda224"],["8ab89816dadfd6b6a1f2634fcf00ec8403781025ed6890c4849742706bd43ede","6fdcef09f2f6d0a044e654aef624136f503d459c3e89845858a47a9129cdd24e"],["1e33f1a746c9c5778133344d9299fcaa20b0938e8acff2544bb40284b8c5fb94","60660257dd11b3aa9c8ed618d24edff2306d320f1d03010e33a7d2057f3b3b6"],["85b7c1dcb3cec1b7ee7f30ded79dd20a0ed1f4cc18cbcfcfa410361fd8f08f31","3d98a9cdd026dd43f39048f25a8847f4fcafad1895d7a633c6fed3c35e999511"],["29df9fbd8d9e46509275f4b125d6d45d7fbe9a3b878a7af872a2800661ac5f51","b4c4fe99c775a606e2d8862179139ffda61dc861c019e55cd2876eb2a27d84b"],["a0b1cae06b0a847a3fea6e671aaf8adfdfe58ca2f768105c8082b2e449fce252","ae434102edde0958ec4b19d917a6a28e6b72da1834aff0e650f049503a296cf2"],["4e8ceafb9b3e9a136dc7ff67e840295b499dfb3b2133e4ba113f2e4c0e121e5","cf2174118c8b6d7a4b48f6d534ce5c79422c086a63460502b827ce62a326683c"],["d24a44e047e19b6f5afb81c7ca2f69080a5076689a010919f42725c2b789a33b","6fb8d5591b466f8fc63db50f1c0f1c69013f996887b8244d2cdec417afea8fa3"],["ea01606a7a6c9cdd249fdfcfacb99584001edd28abbab77b5104e98e8e3b35d4","322af4908c7312b0cfbfe369f7a7b3cdb7d4494bc2823700cfd652188a3ea98d"],["af8addbf2b661c8a6c6328655eb96651252007d8c5ea31be4ad196de8ce2131f","6749e67c029b85f52a034eafd096836b2520818680e26ac8f3dfbcdb71749700"],["e3ae1974566ca06cc516d47e0fb165a674a3dabcfca15e722f0e3450f45889","2aeabe7e4531510116217f07bf4d07300de97e4874f81f533420a72eeb0bd6a4"],["591ee355313d99721cf6993ffed1e3e301993ff3ed258802075ea8ced397e246","b0ea558a113c30bea60fc4775460c7901ff0b053d25ca2bdeee98f1a4be5d196"],["11396d55fda54c49f19aa97318d8da61fa8584e47b084945077cf03255b52984","998c74a8cd45ac01289d5833a7beb4744ff536b01b257be4c5767bea93ea57a4"],["3c5d2a1ba39c5a1790000738c9e0c40b8dcdfd5468754b6405540157e017aa7a","b2284279995a34e2f9d4de7396fc18b80f9b8b9fdd270f6661f79ca4c81bd257"],["cc8704b8a60a0defa3a99a7299f2e9c3fbc395afb04ac078425ef8a1793cc030","bdd46039feed17881d1e0862db347f8cf395b74fc4bcdc4e940b74e3ac1f1b13"],["c533e4f7ea8555aacd9777ac5cad29b97dd4defccc53ee7ea204119b2889b197","6f0a256bc5efdf429a2fb6242f1a43a2d9b925bb4a4b3a26bb8e0f45eb596096"],["c14f8f2ccb27d6f109f6d08d03cc96a69ba8c34eec07bbcf566d48e33da6593","c359d6923bb398f7fd4473e16fe1c28475b740dd098075e6c0e8649113dc3a38"],["a6cbc3046bc6a450bac24789fa17115a4c9739ed75f8f21ce441f72e0b90e6ef","21ae7f4680e889bb130619e2c0f95a360ceb573c70603139862afd617fa9b9f"],["347d6d9a02c48927ebfb86c1359b1caf130a3c0267d11ce6344b39f99d43cc38","60ea7f61a353524d1c987f6ecec92f086d565ab687870cb12689ff1e31c74448"],["da6545d2181db8d983f7dcb375ef5866d47c67b1bf31c8cf855ef7437b72656a","49b96715ab6878a79e78f07ce5680c5d6673051b4935bd897fea824b77dc208a"],["c40747cc9d012cb1a13b8148309c6de7ec25d6945d657146b9d5994b8feb1111","5ca560753be2a12fc6de6caf2cb489565db936156b9514e1bb5e83037e0fa2d4"],["4e42c8ec82c99798ccf3a610be870e78338c7f713348bd34c8203ef4037f3502","7571d74ee5e0fb92a7a8b33a07783341a5492144cc54bcc40a94473693606437"],["3775ab7089bc6af823aba2e1af70b236d251cadb0c86743287522a1b3b0dedea","be52d107bcfa09d8bcb9736a828cfa7fac8db17bf7a76a2c42ad961409018cf7"],["cee31cbf7e34ec379d94fb814d3d775ad954595d1314ba8846959e3e82f74e26","8fd64a14c06b589c26b947ae2bcf6bfa0149ef0be14ed4d80f448a01c43b1c6d"],["b4f9eaea09b6917619f6ea6a4eb5464efddb58fd45b1ebefcdc1a01d08b47986","39e5c9925b5a54b07433a4f18c61726f8bb131c012ca542eb24a8ac07200682a"],["d4263dfc3d2df923a0179a48966d30ce84e2515afc3dccc1b77907792ebcc60e","62dfaf07a0f78feb30e30d6295853ce189e127760ad6cf7fae164e122a208d54"],["48457524820fa65a4f8d35eb6930857c0032acc0a4a2de422233eeda897612c4","25a748ab367979d98733c38a1fa1c2e7dc6cc07db2d60a9ae7a76aaa49bd0f77"],["dfeeef1881101f2cb11644f3a2afdfc2045e19919152923f367a1767c11cceda","ecfb7056cf1de042f9420bab396793c0c390bde74b4bbdff16a83ae09a9a7517"],["6d7ef6b17543f8373c573f44e1f389835d89bcbc6062ced36c82df83b8fae859","cd450ec335438986dfefa10c57fea9bcc521a0959b2d80bbf74b190dca712d10"],["e75605d59102a5a2684500d3b991f2e3f3c88b93225547035af25af66e04541f","f5c54754a8f71ee540b9b48728473e314f729ac5308b06938360990e2bfad125"],["eb98660f4c4dfaa06a2be453d5020bc99a0c2e60abe388457dd43fefb1ed620c","6cb9a8876d9cb8520609af3add26cd20a0a7cd8a9411131ce85f44100099223e"],["13e87b027d8514d35939f2e6892b19922154596941888336dc3563e3b8dba942","fef5a3c68059a6dec5d624114bf1e91aac2b9da568d6abeb2570d55646b8adf1"],["ee163026e9fd6fe017c38f06a5be6fc125424b371ce2708e7bf4491691e5764a","1acb250f255dd61c43d94ccc670d0f58f49ae3fa15b96623e5430da0ad6c62b2"],["b268f5ef9ad51e4d78de3a750c2dc89b1e626d43505867999932e5db33af3d80","5f310d4b3c99b9ebb19f77d41c1dee018cf0d34fd4191614003e945a1216e423"],["ff07f3118a9df035e9fad85eb6c7bfe42b02f01ca99ceea3bf7ffdba93c4750d","438136d603e858a3a5c440c38eccbaddc1d2942114e2eddd4740d098ced1f0d8"],["8d8b9855c7c052a34146fd20ffb658bea4b9f69e0d825ebec16e8c3ce2b526a1","cdb559eedc2d79f926baf44fb84ea4d44bcf50fee51d7ceb30e2e7f463036758"],["52db0b5384dfbf05bfa9d472d7ae26dfe4b851ceca91b1eba54263180da32b63","c3b997d050ee5d423ebaf66a6db9f57b3180c902875679de924b69d84a7b375"],["e62f9490d3d51da6395efd24e80919cc7d0f29c3f3fa48c6fff543becbd43352","6d89ad7ba4876b0b22c2ca280c682862f342c8591f1daf5170e07bfd9ccafa7d"],["7f30ea2476b399b4957509c88f77d0191afa2ff5cb7b14fd6d8e7d65aaab1193","ca5ef7d4b231c94c3b15389a5f6311e9daff7bb67b103e9880ef4bff637acaec"],["5098ff1e1d9f14fb46a210fada6c903fef0fb7b4a1dd1d9ac60a0361800b7a00","9731141d81fc8f8084d37c6e7542006b3ee1b40d60dfe5362a5b132fd17ddc0"],["32b78c7de9ee512a72895be6b9cbefa6e2f3c4ccce445c96b9f2c81e2778ad58","ee1849f513df71e32efc3896ee28260c73bb80547ae2275ba497237794c8753c"],["e2cb74fddc8e9fbcd076eef2a7c72b0ce37d50f08269dfc074b581550547a4f7","d3aa2ed71c9dd2247a62df062736eb0baddea9e36122d2be8641abcb005cc4a4"],["8438447566d4d7bedadc299496ab357426009a35f235cb141be0d99cd10ae3a8","c4e1020916980a4da5d01ac5e6ad330734ef0d7906631c4f2390426b2edd791f"],["4162d488b89402039b584c6fc6c308870587d9c46f660b878ab65c82c711d67e","67163e903236289f776f22c25fb8a3afc1732f2b84b4e95dbda47ae5a0852649"],["3fad3fa84caf0f34f0f89bfd2dcf54fc175d767aec3e50684f3ba4a4bf5f683d","cd1bc7cb6cc407bb2f0ca647c718a730cf71872e7d0d2a53fa20efcdfe61826"],["674f2600a3007a00568c1a7ce05d0816c1fb84bf1370798f1c69532faeb1a86b","299d21f9413f33b3edf43b257004580b70db57da0b182259e09eecc69e0d38a5"],["d32f4da54ade74abb81b815ad1fb3b263d82d6c692714bcff87d29bd5ee9f08f","f9429e738b8e53b968e99016c059707782e14f4535359d582fc416910b3eea87"],["30e4e670435385556e593657135845d36fbb6931f72b08cb1ed954f1e3ce3ff6","462f9bce619898638499350113bbc9b10a878d35da70740dc695a559eb88db7b"],["be2062003c51cc3004682904330e4dee7f3dcd10b01e580bf1971b04d4cad297","62188bc49d61e5428573d48a74e1c655b1c61090905682a0d5558ed72dccb9bc"],["93144423ace3451ed29e0fb9ac2af211cb6e84a601df5993c419859fff5df04a","7c10dfb164c3425f5c71a3f9d7992038f1065224f72bb9d1d902a6d13037b47c"],["b015f8044f5fcbdcf21ca26d6c34fb8197829205c7b7d2a7cb66418c157b112c","ab8c1e086d04e813744a655b2df8d5f83b3cdc6faa3088c1d3aea1454e3a1d5f"],["d5e9e1da649d97d89e4868117a465a3a4f8a18de57a140d36b3f2af341a21b52","4cb04437f391ed73111a13cc1d4dd0db1693465c2240480d8955e8592f27447a"],["d3ae41047dd7ca065dbf8ed77b992439983005cd72e16d6f996a5316d36966bb","bd1aeb21ad22ebb22a10f0303417c6d964f8cdd7df0aca614b10dc14d125ac46"],["463e2763d885f958fc66cdd22800f0a487197d0a82e377b49f80af87c897b065","bfefacdb0e5d0fd7df3a311a94de062b26b80c61fbc97508b79992671ef7ca7f"],["7985fdfd127c0567c6f53ec1bb63ec3158e597c40bfe747c83cddfc910641917","603c12daf3d9862ef2b25fe1de289aed24ed291e0ec6708703a5bd567f32ed03"],["74a1ad6b5f76e39db2dd249410eac7f99e74c59cb83d2d0ed5ff1543da7703e9","cc6157ef18c9c63cd6193d83631bbea0093e0968942e8c33d5737fd790e0db08"],["30682a50703375f602d416664ba19b7fc9bab42c72747463a71d0896b22f6da3","553e04f6b018b4fa6c8f39e7f311d3176290d0e0f19ca73f17714d9977a22ff8"],["9e2158f0d7c0d5f26c3791efefa79597654e7a2b2464f52b1ee6c1347769ef57","712fcdd1b9053f09003a3481fa7762e9ffd7c8ef35a38509e2fbf2629008373"],["176e26989a43c9cfeba4029c202538c28172e566e3c4fce7322857f3be327d66","ed8cc9d04b29eb877d270b4878dc43c19aefd31f4eee09ee7b47834c1fa4b1c3"],["75d46efea3771e6e68abb89a13ad747ecf1892393dfc4f1b7004788c50374da8","9852390a99507679fd0b86fd2b39a868d7efc22151346e1a3ca4726586a6bed8"],["809a20c67d64900ffb698c4c825f6d5f2310fb0451c869345b7319f645605721","9e994980d9917e22b76b061927fa04143d096ccc54963e6a5ebfa5f3f8e286c1"],["1b38903a43f7f114ed4500b4eac7083fdefece1cf29c63528d563446f972c180","4036edc931a60ae889353f77fd53de4a2708b26b6f5da72ad3394119daf408f9"]]}}});var sd=U(Eu=>{"use strict";var L9=Eu,nf=Xc(),V9=k9(),Kw=Oa(),ou=Kw.assert;function su(A){A.type==="short"?this.curve=new V9.short(A):A.type==="edwards"?this.curve=new V9.edwards(A):this.curve=new V9.mont(A),this.g=this.curve.g,this.n=this.curve.n,this.hash=A.hash,ou(this.g.validate(),"Invalid curve"),ou(this.g.mul(this.n).isInfinity(),"Invalid curve, G*N != O")}L9.PresetCurve=su;function tf(A,a){Object.defineProperty(L9,A,{configurable:!0,enumerable:!0,get:function(){var e=new su(a);return Object.defineProperty(L9,A,{configurable:!0,enumerable:!0,value:e}),e}})}tf("p192",{type:"short",prime:"p192",p:"ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff",a:"ffffffff ffffffff ffffffff fffffffe ffffffff fffffffc",b:"64210519 e59c80e7 0fa7e9ab 72243049 feb8deec c146b9b1",n:"ffffffff ffffffff ffffffff 99def836 146bc9b1 b4d22831",hash:nf.sha256,gRed:!1,g:["188da80e b03090f6 7cbf20eb 43a18800 f4ff0afd 82ff1012","07192b95 ffc8da78 631011ed 6b24cdd5 73f977a1 1e794811"]});tf("p224",{type:"short",prime:"p224",p:"ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001",a:"ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff fffffffe",b:"b4050a85 0c04b3ab f5413256 5044b0b7 d7bfd8ba 270b3943 2355ffb4",n:"ffffffff ffffffff ffffffff ffff16a2 e0b8f03e 13dd2945 5c5c2a3d",hash:nf.sha256,gRed:!1,g:["b70e0cbd 6bb4bf7f 321390b9 4a03c1d3 56c21122 343280d6 115c1d21","bd376388 b5f723fb 4c22dfe6 cd4375a0 5a074764 44d58199 85007e34"]});tf("p256",{type:"short",prime:null,p:"ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff ffffffff",a:"ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff fffffffc",b:"5ac635d8 aa3a93e7 b3ebbd55 769886bc 651d06b0 cc53b0f6 3bce3c3e 27d2604b",n:"ffffffff 00000000 ffffffff ffffffff bce6faad a7179e84 f3b9cac2 fc632551",hash:nf.sha256,gRed:!1,g:["6b17d1f2 e12c4247 f8bce6e5 63a440f2 77037d81 2deb33a0 f4a13945 d898c296","4fe342e2 fe1a7f9b 8ee7eb4a 7c0f9e16 2bce3357 6b315ece cbb64068 37bf51f5"]});tf("p384",{type:"short",prime:null,p:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe ffffffff 00000000 00000000 ffffffff",a:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe ffffffff 00000000 00000000 fffffffc",b:"b3312fa7 e23ee7e4 988e056b e3f82d19 181d9c6e fe814112 0314088f 5013875a c656398d 8a2ed19d 2a85c8ed d3ec2aef",n:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff c7634d81 f4372ddf 581a0db2 48b0a77a ecec196a ccc52973",hash:nf.sha384,gRed:!1,g:["aa87ca22 be8b0537 8eb1c71e f320ad74 6e1d3b62 8ba79b98 59f741e0 82542a38 5502f25d bf55296c 3a545e38 72760ab7","3617de4a 96262c6f 5d9e98bf 9292dc29 f8f41dbd 289a147c e9da3113 b5f0b8c0 0a60b1ce 1d7e819d 7a431d7c 90ea0e5f"]});tf("p521",{type:"short",prime:null,p:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff",a:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffc",b:"00000051 953eb961 8e1c9a1f 929a21a0 b68540ee a2da725b 99b315f3 b8b48991 8ef109e1 56193951 ec7e937b 1652c0bd 3bb1bf07 3573df88 3d2c34f1 ef451fd4 6b503f00",n:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffa 51868783 bf2f966b 7fcc0148 f709a5d0 3bb5c9b8 899c47ae bb6fb71e 91386409",hash:nf.sha512,gRed:!1,g:["000000c6 858e06b7 0404e9cd 9e3ecb66 2395b442 9c648139 053fb521 f828af60 6b4d3dba a14b5e77 efe75928 fe1dc127 a2ffa8de 3348b3c1 856a429b f97e7e31 c2e5bd66","00000118 39296a78 9a3bc004 5c8a5fb4 2c7d1bd9 98f54449 579b4468 17afbd17 273e662c 97ee7299 5ef42640 c550b901 3fad0761 353c7086 a272c240 88be9476 9fd16650"]});tf("curve25519",{type:"mont",prime:"p25519",p:"7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed",a:"76d06",b:"1",n:"1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed",hash:nf.sha256,gRed:!1,g:["9"]});tf("ed25519",{type:"edwards",prime:"p25519",p:"7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed",a:"-1",c:"1",d:"52036cee2b6ffe73 8cc740797779e898 00700a4d4141d8ab 75eb4dca135978a3",n:"1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed",hash:nf.sha256,gRed:!1,g:["216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a","6666666666666666666666666666666666666666666666666666666666666658"]});var J9;try{J9=iu()}catch{J9=void 0}tf("secp256k1",{type:"short",prime:"k256",p:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f",a:"0",b:"7",n:"ffffffff ffffffff ffffffff fffffffe baaedce6 af48a03b bfd25e8c d0364141",h:"1",hash:nf.sha256,beta:"7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee",lambda:"5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72",basis:[{a:"3086d221a7d46bcde86c90e49284eb15",b:"-e4437ed6010e88286f547fa90abfe4c3"},{a:"114ca50f7a8e2f3f657c1108d9d44cfd8",b:"3086d221a7d46bcde86c90e49284eb15"}],gRed:!1,g:["79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798","483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8",J9]})});var Cu=U((RZ,hu)=>{"use strict";var qw=Xc(),u1=D9(),Bu=df();function uf(A){if(!(this instanceof uf))return new uf(A);this.hash=A.hash,this.predResist=!!A.predResist,this.outLen=this.hash.outSize,this.minEntropy=A.minEntropy||this.hash.hmacStrength,this._reseed=null,this.reseedInterval=null,this.K=null,this.V=null;var a=u1.toArray(A.entropy,A.entropyEnc||"hex"),e=u1.toArray(A.nonce,A.nonceEnc||"hex"),f=u1.toArray(A.pers,A.persEnc||"hex");Bu(a.length>=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits"),this._init(a,e,f)}hu.exports=uf;uf.prototype._init=function(a,e,f){var c=a.concat(e).concat(f);this.K=new Array(this.outLen/8),this.V=new Array(this.outLen/8);for(var d=0;d=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits"),this._update(a.concat(f||[])),this._reseed=1};uf.prototype.generate=function(a,e,f,c){if(this._reseed>this.reseedInterval)throw new Error("Reseed is required");typeof e!="string"&&(c=f,f=e,e=null),f&&(f=u1.toArray(f,c||"hex"),this._update(f));for(var d=[];d.length{"use strict";var zw=aA(),jw=Oa(),H9=jw.assert;function ua(A,a){this.ec=A,this.priv=null,this.pub=null,a.priv&&this._importPrivate(a.priv,a.privEnc),a.pub&&this._importPublic(a.pub,a.pubEnc)}gu.exports=ua;ua.fromPublic=function(a,e,f){return e instanceof ua?e:new ua(a,{pub:e,pubEnc:f})};ua.fromPrivate=function(a,e,f){return e instanceof ua?e:new ua(a,{priv:e,privEnc:f})};ua.prototype.validate=function(){var a=this.getPublic();return a.isInfinity()?{result:!1,reason:"Invalid public key"}:a.validate()?a.mul(this.ec.curve.n).isInfinity()?{result:!0,reason:null}:{result:!1,reason:"Public key * N != O"}:{result:!1,reason:"Public key is not a point"}};ua.prototype.getPublic=function(a,e){return typeof a=="string"&&(e=a,a=null),this.pub||(this.pub=this.ec.g.mul(this.priv)),e?this.pub.encode(e,a):this.pub};ua.prototype.getPrivate=function(a){return a==="hex"?this.priv.toString(16,2):this.priv};ua.prototype._importPrivate=function(a,e){this.priv=new zw(a,e||16),this.priv=this.priv.umod(this.ec.curve.n)};ua.prototype._importPublic=function(a,e){if(a.x||a.y){this.ec.curve.type==="mont"?H9(a.x,"Need x coordinate"):(this.ec.curve.type==="short"||this.ec.curve.type==="edwards")&&H9(a.x&&a.y,"Need both x and y coordinate"),this.pub=this.ec.curve.point(a.x,a.y);return}this.pub=this.ec.curve.decodePoint(a,e)};ua.prototype.derive=function(a){return a.validate()||H9(a.validate(),"public point not validated"),a.mul(this.priv).getX()};ua.prototype.sign=function(a,e,f){return this.ec.sign(a,this,e,f)};ua.prototype.verify=function(a,e){return this.ec.verify(a,e,this)};ua.prototype.inspect=function(){return""}});var mu=U((vZ,Du)=>{"use strict";var Ed=aA(),X9=Oa(),_w=X9.assert;function Bd(A,a){if(A instanceof Bd)return A;this._importDER(A,a)||(_w(A.r&&A.s,"Signature without r or s"),this.r=new Ed(A.r,16),this.s=new Ed(A.s,16),A.recoveryParam===void 0?this.recoveryParam=null:this.recoveryParam=A.recoveryParam)}Du.exports=Bd;function $w(){this.place=0}function Z9(A,a){var e=A[a.place++];if(!(e&128))return e;var f=e&15;if(f===0||f>4)return!1;for(var c=0,d=0,b=a.place;d>>=0;return c<=127?!1:(a.place=b,c)}function Fu(A){for(var a=0,e=A.length-1;!A[a]&&!(A[a+1]&128)&&a>>3);for(A.push(e|128);--e;)A.push(a>>>(e<<3)&255);A.push(a)}Bd.prototype.toDER=function(a){var e=this.r.toArray(),f=this.s.toArray();for(e[0]&128&&(e=[0].concat(e)),f[0]&128&&(f=[0].concat(f)),e=Fu(e),f=Fu(f);!f[0]&&!(f[1]&128);)f=f.slice(1);var c=[2];Y9(c,e.length),c=c.concat(e),c.push(2),Y9(c,f.length);var d=c.concat(f),b=[48];return Y9(b,d.length),b=b.concat(d),X9.encode(b,a)}});var wu=U((kZ,Tu)=>{"use strict";var i1=aA(),xu=Cu(),eR=Oa(),W9=sd(),aR=T9(),pu=eR.assert,K9=Iu(),hd=mu();function l2(A){if(!(this instanceof l2))return new l2(A);typeof A=="string"&&(pu(Object.prototype.hasOwnProperty.call(W9,A),"Unknown curve "+A),A=W9[A]),A instanceof W9.PresetCurve&&(A={curve:A}),this.curve=A.curve.curve,this.n=this.curve.n,this.nh=this.n.ushrn(1),this.g=this.curve.g,this.g=A.curve.g,this.g.precompute(A.curve.n.bitLength()+1),this.hash=A.hash||A.curve.hash}Tu.exports=l2;l2.prototype.keyPair=function(a){return new K9(this,a)};l2.prototype.keyFromPrivate=function(a,e){return K9.fromPrivate(this,a,e)};l2.prototype.keyFromPublic=function(a,e){return K9.fromPublic(this,a,e)};l2.prototype.genKeyPair=function(a){a||(a={});for(var e=new xu({hash:this.hash,pers:a.pers,persEnc:a.persEnc||"utf8",entropy:a.entropy||aR(this.hash.hmacStrength),entropyEnc:a.entropy&&a.entropyEnc||"utf8",nonce:this.n.toArray()}),f=this.n.byteLength(),c=this.n.sub(new i1(2));;){var d=new i1(e.generate(f));if(!(d.cmp(c)>0))return d.iaddn(1),this.keyFromPrivate(d)}};l2.prototype._truncateToN=function(a,e){var f=a.byteLength()*8-this.n.bitLength();return f>0&&(a=a.ushrn(f)),!e&&a.cmp(this.n)>=0?a.sub(this.n):a};l2.prototype.sign=function(a,e,f,c){typeof f=="object"&&(c=f,f=null),c||(c={}),e=this.keyFromPrivate(e,f),a=this._truncateToN(new i1(a,16));for(var d=this.n.byteLength(),b=e.getPrivate().toArray("be",d),r=a.toArray("be",d),n=new xu({hash:this.hash,entropy:b,nonce:r,pers:c.pers,persEnc:c.persEnc||"utf8"}),l=this.n.sub(new i1(1)),t=0;;t++){var B=c.k?c.k(t):new i1(n.generate(this.n.byteLength()));if(B=this._truncateToN(B,!0),!(B.cmpn(1)<=0||B.cmp(l)>=0)){var x=this.g.mul(B);if(!x.isInfinity()){var p=x.getX(),w=p.umod(this.n);if(w.cmpn(0)!==0){var y=B.invm(this.n).mul(w.mul(e.getPrivate()).iadd(a));if(y=y.umod(this.n),y.cmpn(0)!==0){var N=(x.getY().isOdd()?1:0)|(p.cmp(w)!==0?2:0);return c.canonical&&y.cmp(this.nh)>0&&(y=this.n.sub(y),N^=1),new hd({r:w,s:y,recoveryParam:N})}}}}}};l2.prototype.verify=function(a,e,f,c){a=this._truncateToN(new i1(a,16)),f=this.keyFromPublic(f,c),e=new hd(e,"hex");var d=e.r,b=e.s;if(d.cmpn(1)<0||d.cmp(this.n)>=0||b.cmpn(1)<0||b.cmp(this.n)>=0)return!1;var r=b.invm(this.n),n=r.mul(a).umod(this.n),l=r.mul(d).umod(this.n),t;return this.curve._maxwellTrick?(t=this.g.jmulAdd(n,f.getPublic(),l),t.isInfinity()?!1:t.eqXToP(d)):(t=this.g.mulAdd(n,f.getPublic(),l),t.isInfinity()?!1:t.getX().umod(this.n).cmp(d)===0)};l2.prototype.recoverPubKey=function(A,a,e,f){pu((3&e)===e,"The recovery param is more than two bits"),a=new hd(a,f);var c=this.n,d=new i1(A),b=a.r,r=a.s,n=e&1,l=e>>1;if(b.cmp(this.curve.p.umod(this.curve.n))>=0&&l)throw new Error("Unable to find sencond key candinate");l?b=this.curve.pointFromX(b.add(this.curve.n),n):b=this.curve.pointFromX(b,n);var t=a.r.invm(c),B=c.sub(d).mul(t).umod(c),x=r.mul(t).umod(c);return this.g.mulAdd(B,b,x)};l2.prototype.getKeyRecoveryParam=function(A,a,e,f){if(a=new hd(a,f),a.recoveryParam!==null)return a.recoveryParam;for(var c=0;c<4;c++){var d;try{d=this.recoverPubKey(A,a,c)}catch{continue}if(d.eq(e))return c}throw new Error("Unable to find valid recovery factor")}});var ku=U((QZ,vu)=>{"use strict";var Wc=Oa(),Su=Wc.assert,Ru=Wc.parseBytes,m4=Wc.cachedProperty;function K0(A,a){this.eddsa=A,this._secret=Ru(a.secret),A.isPoint(a.pub)?this._pub=a.pub:this._pubBytes=Ru(a.pub)}K0.fromPublic=function(a,e){return e instanceof K0?e:new K0(a,{pub:e})};K0.fromSecret=function(a,e){return e instanceof K0?e:new K0(a,{secret:e})};K0.prototype.secret=function(){return this._secret};m4(K0,"pubBytes",function(){return this.eddsa.encodePoint(this.pub())});m4(K0,"pub",function(){return this._pubBytes?this.eddsa.decodePoint(this._pubBytes):this.eddsa.g.mul(this.priv())});m4(K0,"privBytes",function(){var a=this.eddsa,e=this.hash(),f=a.encodingLength-1,c=e.slice(0,a.encodingLength);return c[0]&=248,c[f]&=127,c[f]|=64,c});m4(K0,"priv",function(){return this.eddsa.decodeInt(this.privBytes())});m4(K0,"hash",function(){return this.eddsa.hash().update(this.secret()).digest()});m4(K0,"messagePrefix",function(){return this.hash().slice(this.eddsa.encodingLength)});K0.prototype.sign=function(a){return Su(this._secret,"KeyPair can only verify"),this.eddsa.sign(a,this)};K0.prototype.verify=function(a,e){return this.eddsa.verify(a,e,this)};K0.prototype.getSecret=function(a){return Su(this._secret,"KeyPair is public only"),Wc.encode(this.secret(),a)};K0.prototype.getPublic=function(a){return Wc.encode(this.pubBytes(),a)};vu.exports=K0});var yu=U((yZ,Qu)=>{"use strict";var AR=aA(),Cd=Oa(),fR=Cd.assert,gd=Cd.cachedProperty,cR=Cd.parseBytes;function o1(A,a){this.eddsa=A,typeof a!="object"&&(a=cR(a)),Array.isArray(a)&&(a={R:a.slice(0,A.encodingLength),S:a.slice(A.encodingLength)}),fR(a.R&&a.S,"Signature without R or S"),A.isPoint(a.R)&&(this._R=a.R),a.S instanceof AR&&(this._S=a.S),this._Rencoded=Array.isArray(a.R)?a.R:a.Rencoded,this._Sencoded=Array.isArray(a.S)?a.S:a.Sencoded}gd(o1,"S",function(){return this.eddsa.decodeInt(this.Sencoded())});gd(o1,"R",function(){return this.eddsa.decodePoint(this.Rencoded())});gd(o1,"Rencoded",function(){return this.eddsa.encodePoint(this.R())});gd(o1,"Sencoded",function(){return this.eddsa.encodeInt(this.S())});o1.prototype.toBytes=function(){return this.Rencoded().concat(this.Sencoded())};o1.prototype.toHex=function(){return Cd.encode(this.toBytes(),"hex").toUpperCase()};Qu.exports=o1});var Gu=U((MZ,Ou)=>{"use strict";var dR=Xc(),bR=sd(),x4=Oa(),lR=x4.assert,Uu=x4.parseBytes,Nu=ku(),Mu=yu();function va(A){if(lR(A==="ed25519","only tested with ed25519 so far"),!(this instanceof va))return new va(A);A=bR[A].curve,this.curve=A,this.g=A.g,this.g.precompute(A.n.bitLength()+1),this.pointClass=A.point().constructor,this.encodingLength=Math.ceil(A.n.bitLength()/8),this.hash=dR.sha512}Ou.exports=va;va.prototype.sign=function(a,e){a=Uu(a);var f=this.keyFromSecret(e),c=this.hashInt(f.messagePrefix(),a),d=this.g.mul(c),b=this.encodePoint(d),r=this.hashInt(b,f.pubBytes(),a).mul(f.priv()),n=c.add(r).umod(this.curve.n);return this.makeSignature({R:d,S:n,Rencoded:b})};va.prototype.verify=function(a,e,f){a=Uu(a),e=this.makeSignature(e);var c=this.keyFromPublic(f),d=this.hashInt(e.Rencoded(),c.pubBytes(),a),b=this.g.mul(e.S()),r=e.R().add(c.pub().mul(d));return r.eq(b)};va.prototype.hashInt=function(){for(var a=this.hash(),e=0;e{"use strict";var s1=Pu;s1.version=ot().version;s1.utils=Oa();s1.rand=T9();s1.curve=k9();s1.curves=sd();s1.ec=wu();s1.eddsa=Gu()});var Lu=U(p4=>{"use strict";var rR=p4&&p4.__importDefault||function(A){return A&&A.__esModule?A:{default:A}};Object.defineProperty(p4,"__esModule",{value:!0});p4.EC=void 0;var nR=rR(Vu()),tR=nR.default.ec;p4.EC=tR});var Ju=U(Id=>{"use strict";Object.defineProperty(Id,"__esModule",{value:!0});Id.version=void 0;Id.version="signing-key/5.7.0"});var qc=U(of=>{"use strict";Object.defineProperty(of,"__esModule",{value:!0});of.computePublicKey=of.recoverPublicKey=of.SigningKey=void 0;var uR=Lu(),N0=Xe(),Kc=c0(),iR=me(),oR=Ju(),z9=new iR.Logger(oR.version),q9=null;function nA(){return q9||(q9=new uR.EC("secp256k1")),q9}var Hu=function(){function A(a){(0,Kc.defineReadOnly)(this,"curve","secp256k1"),(0,Kc.defineReadOnly)(this,"privateKey",(0,N0.hexlify)(a)),(0,N0.hexDataLength)(this.privateKey)!==32&&z9.throwArgumentError("invalid private key","privateKey","[[ REDACTED ]]");var e=nA().keyFromPrivate((0,N0.arrayify)(this.privateKey));(0,Kc.defineReadOnly)(this,"publicKey","0x"+e.getPublic(!1,"hex")),(0,Kc.defineReadOnly)(this,"compressedPublicKey","0x"+e.getPublic(!0,"hex")),(0,Kc.defineReadOnly)(this,"_isSigningKey",!0)}return A.prototype._addPoint=function(a){var e=nA().keyFromPublic((0,N0.arrayify)(this.publicKey)),f=nA().keyFromPublic((0,N0.arrayify)(a));return"0x"+e.pub.add(f.pub).encodeCompressed("hex")},A.prototype.signDigest=function(a){var e=nA().keyFromPrivate((0,N0.arrayify)(this.privateKey)),f=(0,N0.arrayify)(a);f.length!==32&&z9.throwArgumentError("bad digest length","digest",a);var c=e.sign(f,{canonical:!0});return(0,N0.splitSignature)({recoveryParam:c.recoveryParam,r:(0,N0.hexZeroPad)("0x"+c.r.toString(16),32),s:(0,N0.hexZeroPad)("0x"+c.s.toString(16),32)})},A.prototype.computeSharedSecret=function(a){var e=nA().keyFromPrivate((0,N0.arrayify)(this.privateKey)),f=nA().keyFromPublic((0,N0.arrayify)(Zu(a)));return(0,N0.hexZeroPad)("0x"+e.derive(f.getPublic()).toString(16),32)},A.isSigningKey=function(a){return!!(a&&a._isSigningKey)},A}();of.SigningKey=Hu;function sR(A,a){var e=(0,N0.splitSignature)(a),f={r:(0,N0.arrayify)(e.r),s:(0,N0.arrayify)(e.s)};return"0x"+nA().recoverPubKey((0,N0.arrayify)(A),f,e.recoveryParam).encode("hex",!1)}of.recoverPublicKey=sR;function Zu(A,a){var e=(0,N0.arrayify)(A);if(e.length===32){var f=new Hu(e);return a?"0x"+nA().keyFromPrivate(e).getPublic(!0,"hex"):f.publicKey}else{if(e.length===33)return a?(0,N0.hexlify)(e):"0x"+nA().keyFromPublic(e).getPublic(!1,"hex");if(e.length===65)return a?"0x"+nA().keyFromPublic(e).getPublic(!0,"hex"):(0,N0.hexlify)(e)}return z9.throwArgumentError("invalid public or private key","key","[REDACTED]")}of.computePublicKey=Zu});var Yu=U(Fd=>{"use strict";Object.defineProperty(Fd,"__esModule",{value:!0});Fd.version=void 0;Fd.version="transactions/5.7.0"});var NA=U(v0=>{"use strict";var ER=v0&&v0.__createBinding||(Object.create?function(A,a,e,f){f===void 0&&(f=e),Object.defineProperty(A,f,{enumerable:!0,get:function(){return a[e]}})}:function(A,a,e,f){f===void 0&&(f=e),A[f]=a[e]}),BR=v0&&v0.__setModuleDefault||(Object.create?function(A,a){Object.defineProperty(A,"default",{enumerable:!0,value:a})}:function(A,a){A.default=a}),hR=v0&&v0.__importStar||function(A){if(A&&A.__esModule)return A;var a={};if(A!=null)for(var e in A)e!=="default"&&Object.prototype.hasOwnProperty.call(A,e)&&ER(a,A,e);return BR(a,A),a};Object.defineProperty(v0,"__esModule",{value:!0});v0.parse=v0.serialize=v0.accessListify=v0.recoverAddress=v0.computeAddress=v0.TransactionTypes=void 0;var zc=a2(),E1=y0(),$e=Xe(),CR=A1(),T4=Na(),gR=c0(),sf=hR(Uc()),Xu=qc(),_9=me(),IR=Yu(),oa=new _9.Logger(IR.version),FR;(function(A){A[A.legacy=0]="legacy",A[A.eip2930=1]="eip2930",A[A.eip1559=2]="eip1559"})(FR=v0.TransactionTypes||(v0.TransactionTypes={}));function $9(A){return A==="0x"?null:(0,zc.getAddress)(A)}function ia(A){return A==="0x"?CR.Zero:E1.BigNumber.from(A)}var DR=[{name:"nonce",maxLength:32,numeric:!0},{name:"gasPrice",maxLength:32,numeric:!0},{name:"gasLimit",maxLength:32,numeric:!0},{name:"to",length:20},{name:"value",maxLength:32,numeric:!0},{name:"data"}],mR={chainId:!0,data:!0,gasLimit:!0,gasPrice:!0,nonce:!0,to:!0,type:!0,value:!0};function Wu(A){var a=(0,Xu.computePublicKey)(A);return(0,zc.getAddress)((0,$e.hexDataSlice)((0,T4.keccak256)((0,$e.hexDataSlice)(a,1)),12))}v0.computeAddress=Wu;function e7(A,a){return Wu((0,Xu.recoverPublicKey)((0,$e.arrayify)(A),a))}v0.recoverAddress=e7;function Ga(A,a){var e=(0,$e.stripZeros)(E1.BigNumber.from(A).toHexString());return e.length>32&&oa.throwArgumentError("invalid length for "+a,"transaction:"+a,A),e}function j9(A,a){return{address:(0,zc.getAddress)(A),storageKeys:(a||[]).map(function(e,f){return(0,$e.hexDataLength)(e)!==32&&oa.throwArgumentError("invalid access list storageKey","accessList["+A+":"+f+"]",e),e.toLowerCase()})}}function Dd(A){if(Array.isArray(A))return A.map(function(e,f){return Array.isArray(e)?(e.length>2&&oa.throwArgumentError("access list expected to be [ address, storageKeys[] ]","value["+f+"]",e),j9(e[0],e[1])):j9(e.address,e.storageKeys)});var a=Object.keys(A).map(function(e){var f=A[e].reduce(function(c,d){return c[d]=!0,c},{});return j9(e,Object.keys(f).sort())});return a.sort(function(e,f){return e.address.localeCompare(f.address)}),a}v0.accessListify=Dd;function Ku(A){return Dd(A).map(function(a){return[a.address,a.storageKeys]})}function qu(A,a){if(A.gasPrice!=null){var e=E1.BigNumber.from(A.gasPrice),f=E1.BigNumber.from(A.maxFeePerGas||0);e.eq(f)||oa.throwArgumentError("mismatch EIP-1559 gasPrice != maxFeePerGas","tx",{gasPrice:e,maxFeePerGas:f})}var c=[Ga(A.chainId||0,"chainId"),Ga(A.nonce||0,"nonce"),Ga(A.maxPriorityFeePerGas||0,"maxPriorityFeePerGas"),Ga(A.maxFeePerGas||0,"maxFeePerGas"),Ga(A.gasLimit||0,"gasLimit"),A.to!=null?(0,zc.getAddress)(A.to):"0x",Ga(A.value||0,"value"),A.data||"0x",Ku(A.accessList||[])];if(a){var d=(0,$e.splitSignature)(a);c.push(Ga(d.recoveryParam,"recoveryParam")),c.push((0,$e.stripZeros)(d.r)),c.push((0,$e.stripZeros)(d.s))}return(0,$e.hexConcat)(["0x02",sf.encode(c)])}function zu(A,a){var e=[Ga(A.chainId||0,"chainId"),Ga(A.nonce||0,"nonce"),Ga(A.gasPrice||0,"gasPrice"),Ga(A.gasLimit||0,"gasLimit"),A.to!=null?(0,zc.getAddress)(A.to):"0x",Ga(A.value||0,"value"),A.data||"0x",Ku(A.accessList||[])];if(a){var f=(0,$e.splitSignature)(a);e.push(Ga(f.recoveryParam,"recoveryParam")),e.push((0,$e.stripZeros)(f.r)),e.push((0,$e.stripZeros)(f.s))}return(0,$e.hexConcat)(["0x01",sf.encode(e)])}function xR(A,a){(0,gR.checkProperties)(A,mR);var e=[];DR.forEach(function(b){var r=A[b.name]||[],n={};b.numeric&&(n.hexPad="left"),r=(0,$e.arrayify)((0,$e.hexlify)(r,n)),b.length&&r.length!==b.length&&r.length>0&&oa.throwArgumentError("invalid length for "+b.name,"transaction:"+b.name,r),b.maxLength&&(r=(0,$e.stripZeros)(r),r.length>b.maxLength&&oa.throwArgumentError("invalid length for "+b.name,"transaction:"+b.name,r)),e.push((0,$e.hexlify)(r))});var f=0;if(A.chainId!=null?(f=A.chainId,typeof f!="number"&&oa.throwArgumentError("invalid transaction.chainId","transaction",A)):a&&!(0,$e.isBytesLike)(a)&&a.v>28&&(f=Math.floor((a.v-35)/2)),f!==0&&(e.push((0,$e.hexlify)(f)),e.push("0x"),e.push("0x")),!a)return sf.encode(e);var c=(0,$e.splitSignature)(a),d=27+c.recoveryParam;return f!==0?(e.pop(),e.pop(),e.pop(),d+=f*2+8,c.v>28&&c.v!==d&&oa.throwArgumentError("transaction.chainId/signature.v mismatch","signature",a)):c.v!==d&&oa.throwArgumentError("transaction.chainId/signature.v mismatch","signature",a),e.push((0,$e.hexlify)(d)),e.push((0,$e.stripZeros)((0,$e.arrayify)(c.r))),e.push((0,$e.stripZeros)((0,$e.arrayify)(c.s))),sf.encode(e)}function pR(A,a){if(A.type==null||A.type===0)return A.accessList!=null&&oa.throwArgumentError("untyped transactions do not support accessList; include type: 1","transaction",A),xR(A,a);switch(A.type){case 1:return zu(A,a);case 2:return qu(A,a);default:break}return oa.throwError("unsupported transaction type: "+A.type,_9.Logger.errors.UNSUPPORTED_OPERATION,{operation:"serializeTransaction",transactionType:A.type})}v0.serialize=pR;function ju(A,a,e){try{var f=ia(a[0]).toNumber();if(f!==0&&f!==1)throw new Error("bad recid");A.v=f}catch{oa.throwArgumentError("invalid v for transaction type: 1","v",a[0])}A.r=(0,$e.hexZeroPad)(a[1],32),A.s=(0,$e.hexZeroPad)(a[2],32);try{var c=(0,T4.keccak256)(e(A));A.from=e7(c,{r:A.r,s:A.s,recoveryParam:A.v})}catch{}}function TR(A){var a=sf.decode(A.slice(1));a.length!==9&&a.length!==12&&oa.throwArgumentError("invalid component count for transaction type: 2","payload",(0,$e.hexlify)(A));var e=ia(a[2]),f=ia(a[3]),c={type:2,chainId:ia(a[0]).toNumber(),nonce:ia(a[1]).toNumber(),maxPriorityFeePerGas:e,maxFeePerGas:f,gasPrice:null,gasLimit:ia(a[4]),to:$9(a[5]),value:ia(a[6]),data:a[7],accessList:Dd(a[8])};return a.length===9||(c.hash=(0,T4.keccak256)(A),ju(c,a.slice(9),qu)),c}function wR(A){var a=sf.decode(A.slice(1));a.length!==8&&a.length!==11&&oa.throwArgumentError("invalid component count for transaction type: 1","payload",(0,$e.hexlify)(A));var e={type:1,chainId:ia(a[0]).toNumber(),nonce:ia(a[1]).toNumber(),gasPrice:ia(a[2]),gasLimit:ia(a[3]),to:$9(a[4]),value:ia(a[5]),data:a[6],accessList:Dd(a[7])};return a.length===8||(e.hash=(0,T4.keccak256)(A),ju(e,a.slice(8),zu)),e}function RR(A){var a=sf.decode(A);a.length!==9&&a.length!==6&&oa.throwArgumentError("invalid raw transaction","rawTransaction",A);var e={nonce:ia(a[0]).toNumber(),gasPrice:ia(a[1]),gasLimit:ia(a[2]),to:$9(a[3]),value:ia(a[4]),data:a[5],chainId:0};if(a.length===6)return e;try{e.v=E1.BigNumber.from(a[6]).toNumber()}catch{return e}if(e.r=(0,$e.hexZeroPad)(a[7],32),e.s=(0,$e.hexZeroPad)(a[8],32),E1.BigNumber.from(e.r).isZero()&&E1.BigNumber.from(e.s).isZero())e.chainId=e.v,e.v=0;else{e.chainId=Math.floor((e.v-35)/2),e.chainId<0&&(e.chainId=0);var f=e.v-27,c=a.slice(0,6);e.chainId!==0&&(c.push((0,$e.hexlify)(e.chainId)),c.push("0x"),c.push("0x"),f-=e.chainId*2+8);var d=(0,T4.keccak256)(sf.encode(c));try{e.from=e7(d,{r:(0,$e.hexlify)(e.r),s:(0,$e.hexlify)(e.s),recoveryParam:f})}catch{}e.hash=(0,T4.keccak256)(A)}return e.type=null,e}function SR(A){var a=(0,$e.arrayify)(A);if(a[0]>127)return RR(a);switch(a[0]){case 1:return wR(a);case 2:return TR(a);default:break}return oa.throwError("unsupported transaction type: "+a[0],_9.Logger.errors.UNSUPPORTED_OPERATION,{operation:"parseTransaction",transactionType:a[0]})}v0.parse=SR});var _u=U(md=>{"use strict";Object.defineProperty(md,"__esModule",{value:!0});md.version=void 0;md.version="contracts/5.7.0"});var bi=U(sa=>{"use strict";var Td=sa&&sa.__extends||function(){var A=function(a,e){return A=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(f,c){f.__proto__=c}||function(f,c){for(var d in c)Object.prototype.hasOwnProperty.call(c,d)&&(f[d]=c[d])},A(a,e)};return function(a,e){if(typeof e!="function"&&e!==null)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");A(a,e);function f(){this.constructor=a}a.prototype=e===null?Object.create(e):(f.prototype=e.prototype,new f)}}(),Bf=sa&&sa.__awaiter||function(A,a,e,f){function c(d){return d instanceof e?d:new e(function(b){b(d)})}return new(e||(e=Promise))(function(d,b){function r(t){try{l(f.next(t))}catch(B){b(B)}}function n(t){try{l(f.throw(t))}catch(B){b(B)}}function l(t){t.done?d(t.value):c(t.value).then(r,n)}l((f=f.apply(A,a||[])).next())})},hf=sa&&sa.__generator||function(A,a){var e={label:0,sent:function(){if(d[0]&1)throw d[1];return d[1]},trys:[],ops:[]},f,c,d,b;return b={next:r(0),throw:r(1),return:r(2)},typeof Symbol=="function"&&(b[Symbol.iterator]=function(){return this}),b;function r(l){return function(t){return n([l,t])}}function n(l){if(f)throw new TypeError("Generator is already executing.");for(;e;)try{if(f=1,c&&(d=l[0]&2?c.return:l[0]?c.throw||((d=c.return)&&d.call(c),0):c.next)&&!(d=d.call(c,l[1])).done)return d;switch(c=0,d&&(l=[l[0]&2,d.value]),l[0]){case 0:case 1:d=l;break;case 4:return e.label++,{value:l[1],done:!1};case 5:e.label++,c=l[1],l=[0];continue;case 7:l=e.ops.pop(),e.trys.pop();continue;default:if(d=e.trys,!(d=d.length>0&&d[d.length-1])&&(l[0]===6||l[0]===2)){e=0;continue}if(l[0]===3&&(!d||l[1]>d[0]&&l[1]1)){l=l.substring(1);var B=t[0];try{d[l]==null&&(0,Ce.defineReadOnly)(d,l,d[B])}catch{}d.functions[l]==null&&(0,Ce.defineReadOnly)(d.functions,l,d.functions[B]),d.callStatic[l]==null&&(0,Ce.defineReadOnly)(d.callStatic,l,d.callStatic[B]),d.populateTransaction[l]==null&&(0,Ce.defineReadOnly)(d.populateTransaction,l,d.populateTransaction[B]),d.estimateGas[l]==null&&(0,Ce.defineReadOnly)(d.estimateGas,l,d.estimateGas[B])}})}return A.getContractAddress=function(a){return(0,_c.getContractAddress)(a)},A.getInterface=function(a){return xd.Interface.isInterface(a)?a:new xd.Interface(a)},A.prototype.deployed=function(){return this._deployed()},A.prototype._deployed=function(a){var e=this;return this._deployedPromise||(this.deployTransaction?this._deployedPromise=this.deployTransaction.wait().then(function(){return e}):this._deployedPromise=this.provider.getCode(this.address,a).then(function(f){return f==="0x"&&u0.throwError("contract not deployed",Aa.Logger.errors.UNSUPPORTED_OPERATION,{contractAddress:e.address,operation:"getDeployed"}),e})),this._deployedPromise},A.prototype.fallback=function(a){var e=this;this.signer||u0.throwError("sending a transactions require a signer",Aa.Logger.errors.UNSUPPORTED_OPERATION,{operation:"sendTransaction(fallback)"});var f=(0,Ce.shallowCopy)(a||{});return["from","to"].forEach(function(c){f[c]!=null&&u0.throwError("cannot override "+c,Aa.Logger.errors.UNSUPPORTED_OPERATION,{operation:c})}),f.to=this.resolvedAddress,this.deployed().then(function(){return e.signer.sendTransaction(f)})},A.prototype.connect=function(a){typeof a=="string"&&(a=new a7.VoidSigner(a,this.provider));var e=new this.constructor(this.address,this.interface,a);return this.deployTransaction&&(0,Ce.defineReadOnly)(e,"deployTransaction",this.deployTransaction),e},A.prototype.attach=function(a){return new this.constructor(a,this.interface,this.signer||this.provider)},A.isIndexed=function(a){return xd.Indexed.isIndexed(a)},A.prototype._normalizeRunningEvent=function(a){return this._runningEvents[a.tag]?this._runningEvents[a.tag]:a},A.prototype._getRunningEvent=function(a){if(typeof a=="string"){if(a==="error")return this._normalizeRunningEvent(new GR);if(a==="event")return this._normalizeRunningEvent(new $c("event",null));if(a==="*")return this._normalizeRunningEvent(new ai(this.address,this.interface));var e=this.interface.getEvent(a);return this._normalizeRunningEvent(new ei(this.address,this.interface,e))}if(a.topics&&a.topics.length>0){try{var f=a.topics[0];if(typeof f!="string")throw new Error("invalid topic");var e=this.interface.getEvent(f);return this._normalizeRunningEvent(new ei(this.address,this.interface,e,a.topics))}catch{}var c={address:this.address,topics:a.topics};return this._normalizeRunningEvent(new $c(ci(c),c))}return this._normalizeRunningEvent(new ai(this.address,this.interface))},A.prototype._checkRunningEvents=function(a){if(a.listenerCount()===0){delete this._runningEvents[a.tag];var e=this._wrappedEmits[a.tag];e&&a.filter&&(this.provider.off(a.filter,e),delete this._wrappedEmits[a.tag])}},A.prototype._wrapEvent=function(a,e,f){var c=this,d=(0,Ce.deepCopy)(e);return d.removeListener=function(){!f||(a.removeListener(f),c._checkRunningEvents(a))},d.getBlock=function(){return c.provider.getBlock(e.blockHash)},d.getTransaction=function(){return c.provider.getTransaction(e.transactionHash)},d.getTransactionReceipt=function(){return c.provider.getTransactionReceipt(e.transactionHash)},a.prepareEvent(d),d},A.prototype._addEventListener=function(a,e,f){var c=this;if(this.provider||u0.throwError("events require a provider or a signer with a provider",Aa.Logger.errors.UNSUPPORTED_OPERATION,{operation:"once"}),a.addListener(e,f),this._runningEvents[a.tag]=a,!this._wrappedEmits[a.tag]){var d=function(b){var r=c._wrapEvent(a,b,e);if(r.decodeError==null)try{var n=a.getEmit(r);c.emit.apply(c,vR([a.filter],n,!1))}catch(l){r.decodeError=l.error}a.filter!=null&&c.emit("event",r),r.decodeError!=null&&c.emit("error",r.decodeError,r)};this._wrappedEmits[a.tag]=d,a.filter!=null&&this.provider.on(a.filter,d)}},A.prototype.queryFilter=function(a,e,f){var c=this,d=this._getRunningEvent(a),b=(0,Ce.shallowCopy)(d.filter);return typeof e=="string"&&(0,B1.isHexString)(e,32)?(f!=null&&u0.throwArgumentError("cannot specify toBlock with blockhash","toBlock",f),b.blockHash=e):(b.fromBlock=e??0,b.toBlock=f??"latest"),this.provider.getLogs(b).then(function(r){return r.map(function(n){return c._wrapEvent(d,n,null)})})},A.prototype.on=function(a,e){return this._addEventListener(this._getRunningEvent(a),e,!1),this},A.prototype.once=function(a,e){return this._addEventListener(this._getRunningEvent(a),e,!0),this},A.prototype.emit=function(a){for(var e=[],f=1;f0;return this._checkRunningEvents(c),d},A.prototype.listenerCount=function(a){var e=this;return this.provider?a==null?Object.keys(this._runningEvents).reduce(function(f,c){return f+e._runningEvents[c].listenerCount()},0):this._getRunningEvent(a).listenerCount():0},A.prototype.listeners=function(a){if(!this.provider)return[];if(a==null){var e=[];for(var f in this._runningEvents)this._runningEvents[f].listeners().forEach(function(c){e.push(c)});return e}return this._getRunningEvent(a).listeners()},A.prototype.removeAllListeners=function(a){if(!this.provider)return this;if(a==null){for(var e in this._runningEvents){var f=this._runningEvents[e];f.removeAllListeners(),this._checkRunningEvents(f)}return this}var c=this._getRunningEvent(a);return c.removeAllListeners(),this._checkRunningEvents(c),this},A.prototype.off=function(a,e){if(!this.provider)return this;var f=this._getRunningEvent(a);return f.removeListener(e),this._checkRunningEvents(f),this},A.prototype.removeListener=function(a,e){return this.off(a,e)},A}();sa.BaseContract=di;var A7=function(A){Td(a,A);function a(){return A!==null&&A.apply(this,arguments)||this}return a}(di);sa.Contract=A7;var PR=function(){function A(a,e,f){var c=this.constructor,d=null;typeof e=="string"?d=e:(0,B1.isBytes)(e)?d=(0,B1.hexlify)(e):e&&typeof e.object=="string"?d=e.object:d="!",d.substring(0,2)!=="0x"&&(d="0x"+d),(!(0,B1.isHexString)(d)||d.length%2)&&u0.throwArgumentError("invalid bytecode","bytecode",e),f&&!a7.Signer.isSigner(f)&&u0.throwArgumentError("invalid signer","signer",f),(0,Ce.defineReadOnly)(this,"bytecode",d),(0,Ce.defineReadOnly)(this,"interface",(0,Ce.getStatic)(c,"getInterface")(a)),(0,Ce.defineReadOnly)(this,"signer",f||null)}return A.prototype.getDeployTransaction=function(){for(var a=[],e=0;e{"use strict";Object.defineProperty(Cf,"__esModule",{value:!0});Cf.Base58=Cf.Base32=Cf.BaseX=void 0;var li=Xe(),Rd=c0(),f7=function(){function A(a){(0,Rd.defineReadOnly)(this,"alphabet",a),(0,Rd.defineReadOnly)(this,"base",a.length),(0,Rd.defineReadOnly)(this,"_alphabetMap",{}),(0,Rd.defineReadOnly)(this,"_leader",a.charAt(0));for(var e=0;e0;)f.push(d%this.base),d=d/this.base|0}for(var r="",n=0;e[n]===0&&n=0;--l)r+=this.alphabet[f[l]];return r},A.prototype.decode=function(a){if(typeof a!="string")throw new TypeError("Expected String");var e=[];if(a.length===0)return new Uint8Array(e);e.push(0);for(var f=0;f>=8;for(;d>0;)e.push(d&255),d>>=8}for(var r=0;a[r]===this._leader&&r{"use strict";Object.defineProperty(vd,"__esModule",{value:!0});vd.pbkdf2=void 0;var JR=require("crypto"),ni=Xe();function ri(A){return Buffer.from((0,ni.arrayify)(A))}function HR(A,a,e,f,c){return(0,ni.hexlify)((0,JR.pbkdf2Sync)(ri(A),ri(a),e,f,c))}vd.pbkdf2=HR});var Qd=U(kd=>{"use strict";Object.defineProperty(kd,"__esModule",{value:!0});kd.pbkdf2=void 0;var ZR=ti();Object.defineProperty(kd,"pbkdf2",{enumerable:!0,get:function(){return ZR.pbkdf2}})});var c7=U(e3=>{"use strict";Object.defineProperty(e3,"__esModule",{value:!0});e3.SupportedAlgorithm=void 0;var YR;(function(A){A.sha256="sha256",A.sha512="sha512"})(YR=e3.SupportedAlgorithm||(e3.SupportedAlgorithm={}))});var ui=U(yd=>{"use strict";Object.defineProperty(yd,"__esModule",{value:!0});yd.version=void 0;yd.version="sha2/5.7.0"});var oi=U(r2=>{"use strict";var XR=r2&&r2.__importDefault||function(A){return A&&A.__esModule?A:{default:A}};Object.defineProperty(r2,"__esModule",{value:!0});r2.computeHmac=r2.sha512=r2.sha256=r2.ripemd160=void 0;var d7=require("crypto"),WR=XR(Xc()),a3=Xe(),KR=c7(),ii=me(),qR=ui(),zR=new ii.Logger(qR.version);function jR(A){return"0x"+WR.default.ripemd160().update((0,a3.arrayify)(A)).digest("hex")}r2.ripemd160=jR;function _R(A){return"0x"+(0,d7.createHash)("sha256").update(Buffer.from((0,a3.arrayify)(A))).digest("hex")}r2.sha256=_R;function $R(A){return"0x"+(0,d7.createHash)("sha512").update(Buffer.from((0,a3.arrayify)(A))).digest("hex")}r2.sha512=$R;function eS(A,a,e){return KR.SupportedAlgorithm[A]||zR.throwError("unsupported algorithm - "+A,ii.Logger.errors.UNSUPPORTED_OPERATION,{operation:"computeHmac",algorithm:A}),"0x"+(0,d7.createHmac)(A,Buffer.from((0,a3.arrayify)(a))).update(Buffer.from((0,a3.arrayify)(e))).digest("hex")}r2.computeHmac=eS});var w4=U(n2=>{"use strict";Object.defineProperty(n2,"__esModule",{value:!0});n2.SupportedAlgorithm=n2.sha512=n2.sha256=n2.ripemd160=n2.computeHmac=void 0;var Md=oi();Object.defineProperty(n2,"computeHmac",{enumerable:!0,get:function(){return Md.computeHmac}});Object.defineProperty(n2,"ripemd160",{enumerable:!0,get:function(){return Md.ripemd160}});Object.defineProperty(n2,"sha256",{enumerable:!0,get:function(){return Md.sha256}});Object.defineProperty(n2,"sha512",{enumerable:!0,get:function(){return Md.sha512}});var aS=c7();Object.defineProperty(n2,"SupportedAlgorithm",{enumerable:!0,get:function(){return aS.SupportedAlgorithm}})});var si=U(Ud=>{"use strict";Object.defineProperty(Ud,"__esModule",{value:!0});Ud.version=void 0;Ud.version="wordlists/5.7.0"});var tA=U(h1=>{"use strict";Object.defineProperty(h1,"__esModule",{value:!0});h1.Wordlist=h1.logger=void 0;var AS=!1,fS=l1(),Ei=c0(),cS=me(),dS=si();h1.logger=new cS.Logger(dS.version);var bS=function(){function A(a){var e=this.constructor;h1.logger.checkAbstract(e,A),(0,Ei.defineReadOnly)(this,"locale",a)}return A.prototype.split=function(a){return a.toLowerCase().split(/ +/g)},A.prototype.join=function(a){return a.join(" ")},A.check=function(a){for(var e=[],f=0;f<2048;f++){var c=a.getWord(f);if(f!==a.getWordIndex(c))return"0x";e.push(c)}return(0,fS.id)(e.join(` +`)+` +`)},A.register=function(a,e){if(e||(e=a.locale),AS)try{var f=window;f._ethers&&f._ethers.wordlists&&(f._ethers.wordlists[e]||(0,Ei.defineReadOnly)(f._ethers.wordlists,e,a))}catch{}},A}();h1.Wordlist=bS});var Ci=U(R4=>{"use strict";var lS=R4&&R4.__extends||function(){var A=function(a,e){return A=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(f,c){f.__proto__=c}||function(f,c){for(var d in c)Object.prototype.hasOwnProperty.call(c,d)&&(f[d]=c[d])},A(a,e)};return function(a,e){if(typeof e!="function"&&e!==null)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");A(a,e);function f(){this.constructor=a}a.prototype=e===null?Object.create(e):(f.prototype=e.prototype,new f)}}();Object.defineProperty(R4,"__esModule",{value:!0});R4.langCz=void 0;var b7=tA(),rS="AbdikaceAbecedaAdresaAgreseAkceAktovkaAlejAlkoholAmputaceAnanasAndulkaAnekdotaAnketaAntikaAnulovatArchaAroganceAsfaltAsistentAspiraceAstmaAstronomAtlasAtletikaAtolAutobusAzylBabkaBachorBacilBaculkaBadatelBagetaBagrBahnoBakterieBaladaBaletkaBalkonBalonekBalvanBalzaBambusBankomatBarbarBaretBarmanBarokoBarvaBaterkaBatohBavlnaBazalkaBazilikaBazukaBednaBeranBesedaBestieBetonBezinkaBezmocBeztakBicyklBidloBiftekBikinyBilanceBiografBiologBitvaBizonBlahobytBlatouchBlechaBleduleBleskBlikatBliznaBlokovatBlouditBludBobekBobrBodlinaBodnoutBohatostBojkotBojovatBokorysBolestBorecBoroviceBotaBoubelBouchatBoudaBouleBouratBoxerBradavkaBramboraBrankaBratrBreptaBriketaBrkoBrlohBronzBroskevBrunetkaBrusinkaBrzdaBrzyBublinaBubnovatBuchtaBuditelBudkaBudovaBufetBujarostBukviceBuldokBulvaBundaBunkrBurzaButikBuvolBuzolaBydletBylinaBytovkaBzukotCapartCarevnaCedrCeduleCejchCejnCelaCelerCelkemCelniceCeninaCennostCenovkaCentrumCenzorCestopisCetkaChalupaChapadloCharitaChataChechtatChemieChichotChirurgChladChlebaChlubitChmelChmuraChobotChocholChodbaCholeraChomoutChopitChorobaChovChrapotChrlitChrtChrupChtivostChudinaChutnatChvatChvilkaChvostChybaChystatChytitCibuleCigaretaCihelnaCihlaCinkotCirkusCisternaCitaceCitrusCizinecCizostClonaCokolivCouvatCtitelCtnostCudnostCuketaCukrCupotCvaknoutCvalCvikCvrkotCyklistaDalekoDarebaDatelDatumDceraDebataDechovkaDecibelDeficitDeflaceDeklDekretDemokratDepreseDerbyDeskaDetektivDikobrazDiktovatDiodaDiplomDiskDisplejDivadloDivochDlahaDlouhoDluhopisDnesDobroDobytekDocentDochutitDodnesDohledDohodaDohraDojemDojniceDokladDokolaDoktorDokumentDolarDolevaDolinaDomaDominantDomluvitDomovDonutitDopadDopisDoplnitDoposudDoprovodDopustitDorazitDorostDortDosahDoslovDostatekDosudDosytaDotazDotekDotknoutDoufatDoutnatDovozceDozaduDoznatDozorceDrahotaDrakDramatikDravecDrazeDrdolDrobnostDrogerieDrozdDrsnostDrtitDrzostDubenDuchovnoDudekDuhaDuhovkaDusitDusnoDutostDvojiceDvorecDynamitEkologEkonomieElektronElipsaEmailEmiseEmoceEmpatieEpizodaEpochaEpopejEposEsejEsenceEskortaEskymoEtiketaEuforieEvoluceExekuceExkurzeExpediceExplozeExportExtraktFackaFajfkaFakultaFanatikFantazieFarmacieFavoritFazoleFederaceFejetonFenkaFialkaFigurantFilozofFiltrFinanceFintaFixaceFjordFlanelFlirtFlotilaFondFosforFotbalFotkaFotonFrakceFreskaFrontaFukarFunkceFyzikaGalejeGarantGenetikaGeologGilotinaGlazuraGlejtGolemGolfistaGotikaGrafGramofonGranuleGrepGrilGrogGroteskaGumaHadiceHadrHalaHalenkaHanbaHanopisHarfaHarpunaHavranHebkostHejkalHejnoHejtmanHektarHelmaHematomHerecHernaHesloHezkyHistorikHladovkaHlasivkyHlavaHledatHlenHlodavecHlohHloupostHltatHlubinaHluchotaHmatHmotaHmyzHnisHnojivoHnoutHoblinaHobojHochHodinyHodlatHodnotaHodovatHojnostHokejHolinkaHolkaHolubHomoleHonitbaHonoraceHoralHordaHorizontHorkoHorlivecHormonHorninaHoroskopHorstvoHospodaHostinaHotovostHoubaHoufHoupatHouskaHovorHradbaHraniceHravostHrazdaHrbolekHrdinaHrdloHrdostHrnekHrobkaHromadaHrotHroudaHrozenHrstkaHrubostHryzatHubenostHubnoutHudbaHukotHumrHusitaHustotaHvozdHybnostHydrantHygienaHymnaHysterikIdylkaIhnedIkonaIluzeImunitaInfekceInflaceInkasoInovaceInspekceInternetInvalidaInvestorInzerceIronieJablkoJachtaJahodaJakmileJakostJalovecJantarJarmarkJaroJasanJasnoJatkaJavorJazykJedinecJedleJednatelJehlanJekotJelenJelitoJemnostJenomJepiceJeseterJevitJezdecJezeroJinakJindyJinochJiskraJistotaJitrniceJizvaJmenovatJogurtJurtaKabaretKabelKabinetKachnaKadetKadidloKahanKajakKajutaKakaoKaktusKalamitaKalhotyKalibrKalnostKameraKamkolivKamnaKanibalKanoeKantorKapalinaKapelaKapitolaKapkaKapleKapotaKaprKapustaKapybaraKaramelKarotkaKartonKasaKatalogKatedraKauceKauzaKavalecKazajkaKazetaKazivostKdekolivKdesiKedlubenKempKeramikaKinoKlacekKladivoKlamKlapotKlasikaKlaunKlecKlenbaKlepatKlesnoutKlidKlimaKlisnaKloboukKlokanKlopaKloubKlubovnaKlusatKluzkostKmenKmitatKmotrKnihaKnotKoaliceKoberecKobkaKoblihaKobylaKocourKohoutKojenecKokosKoktejlKolapsKoledaKolizeKoloKomandoKometaKomikKomnataKomoraKompasKomunitaKonatKonceptKondiceKonecKonfeseKongresKoninaKonkursKontaktKonzervaKopanecKopieKopnoutKoprovkaKorbelKorektorKormidloKoroptevKorpusKorunaKorytoKorzetKosatecKostkaKotelKotletaKotoulKoukatKoupelnaKousekKouzloKovbojKozaKozorohKrabiceKrachKrajinaKralovatKrasopisKravataKreditKrejcarKresbaKrevetaKriketKritikKrizeKrkavecKrmelecKrmivoKrocanKrokKronikaKropitKroupaKrovkaKrtekKruhadloKrupiceKrutostKrvinkaKrychleKryptaKrystalKrytKudlankaKufrKujnostKuklaKulajdaKulichKulkaKulometKulturaKunaKupodivuKurtKurzorKutilKvalitaKvasinkaKvestorKynologKyselinaKytaraKyticeKytkaKytovecKyvadloLabradorLachtanLadnostLaikLakomecLamelaLampaLanovkaLasiceLasoLasturaLatinkaLavinaLebkaLeckdyLedenLedniceLedovkaLedvinaLegendaLegieLegraceLehceLehkostLehnoutLektvarLenochodLentilkaLepenkaLepidloLetadloLetecLetmoLetokruhLevhartLevitaceLevobokLibraLichotkaLidojedLidskostLihovinaLijavecLilekLimetkaLinieLinkaLinoleumListopadLitinaLitovatLobistaLodivodLogikaLogopedLokalitaLoketLomcovatLopataLopuchLordLososLotrLoudalLouhLoukaLouskatLovecLstivostLucernaLuciferLumpLuskLustraceLviceLyraLyrikaLysinaMadamMadloMagistrMahagonMajetekMajitelMajoritaMakakMakoviceMakrelaMalbaMalinaMalovatMalviceMaminkaMandleMankoMarnostMasakrMaskotMasopustMaticeMatrikaMaturitaMazanecMazivoMazlitMazurkaMdlobaMechanikMeditaceMedovinaMelasaMelounMentolkaMetlaMetodaMetrMezeraMigraceMihnoutMihuleMikinaMikrofonMilenecMilimetrMilostMimikaMincovnaMinibarMinometMinulostMiskaMistrMixovatMladostMlhaMlhovinaMlokMlsatMluvitMnichMnohemMobilMocnostModelkaModlitbaMohylaMokroMolekulaMomentkaMonarchaMonoklMonstrumMontovatMonzunMosazMoskytMostMotivaceMotorkaMotykaMouchaMoudrostMozaikaMozekMozolMramorMravenecMrkevMrtvolaMrzetMrzutostMstitelMudrcMuflonMulatMumieMuniceMusetMutaceMuzeumMuzikantMyslivecMzdaNabouratNachytatNadaceNadbytekNadhozNadobroNadpisNahlasNahnatNahodileNahraditNaivitaNajednouNajistoNajmoutNaklonitNakonecNakrmitNalevoNamazatNamluvitNanometrNaokoNaopakNaostroNapadatNapevnoNaplnitNapnoutNaposledNaprostoNaroditNarubyNarychloNasaditNasekatNaslepoNastatNatolikNavenekNavrchNavzdoryNazvatNebeNechatNeckyNedalekoNedbatNeduhNegaceNehetNehodaNejenNejprveNeklidNelibostNemilostNemocNeochotaNeonkaNepokojNerostNervNesmyslNesouladNetvorNeuronNevinaNezvykleNicotaNijakNikamNikdyNiklNikterakNitroNoclehNohaviceNominaceNoraNorekNositelNosnostNouzeNovinyNovotaNozdraNudaNudleNugetNutitNutnostNutrieNymfaObalObarvitObavaObdivObecObehnatObejmoutObezitaObhajobaObilniceObjasnitObjektObklopitOblastOblekOblibaOblohaObludaObnosObohatitObojekOboutObrazecObrnaObrubaObrysObsahObsluhaObstaratObuvObvazObvinitObvodObvykleObyvatelObzorOcasOcelOcenitOchladitOchotaOchranaOcitnoutOdbojOdbytOdchodOdcizitOdebratOdeslatOdevzdatOdezvaOdhadceOdhoditOdjetOdjinudOdkazOdkoupitOdlivOdlukaOdmlkaOdolnostOdpadOdpisOdploutOdporOdpustitOdpykatOdrazkaOdsouditOdstupOdsunOdtokOdtudOdvahaOdvetaOdvolatOdvracetOdznakOfinaOfsajdOhlasOhniskoOhradaOhrozitOhryzekOkapOkeniceOklikaOknoOkouzlitOkovyOkrasaOkresOkrsekOkruhOkupantOkurkaOkusitOlejninaOlizovatOmakOmeletaOmezitOmladinaOmlouvatOmluvaOmylOnehdyOpakovatOpasekOperaceOpiceOpilostOpisovatOporaOpoziceOpravduOprotiOrbitalOrchestrOrgieOrliceOrlojOrtelOsadaOschnoutOsikaOsivoOslavaOslepitOslnitOslovitOsnovaOsobaOsolitOspalecOstenOstrahaOstudaOstychOsvojitOteplitOtiskOtopOtrhatOtrlostOtrokOtrubyOtvorOvanoutOvarOvesOvlivnitOvoceOxidOzdobaPachatelPacientPadouchPahorekPaktPalandaPalecPalivoPalubaPamfletPamlsekPanenkaPanikaPannaPanovatPanstvoPantoflePaprikaParketaParodiePartaParukaParybaPasekaPasivitaPastelkaPatentPatronaPavoukPaznehtPazourekPeckaPedagogPejsekPekloPelotonPenaltaPendrekPenzePeriskopPeroPestrostPetardaPeticePetrolejPevninaPexesoPianistaPihaPijavicePiklePiknikPilinaPilnostPilulkaPinzetaPipetaPisatelPistolePitevnaPivnicePivovarPlacentaPlakatPlamenPlanetaPlastikaPlatitPlavidloPlazPlechPlemenoPlentaPlesPletivoPlevelPlivatPlnitPlnoPlochaPlodinaPlombaPloutPlukPlynPobavitPobytPochodPocitPoctivecPodatPodcenitPodepsatPodhledPodivitPodkladPodmanitPodnikPodobaPodporaPodrazPodstataPodvodPodzimPoeziePohankaPohnutkaPohovorPohromaPohybPointaPojistkaPojmoutPokazitPoklesPokojPokrokPokutaPokynPolednePolibekPolknoutPolohaPolynomPomaluPominoutPomlkaPomocPomstaPomysletPonechatPonorkaPonurostPopadatPopelPopisekPoplachPoprositPopsatPopudPoradcePorcePorodPoruchaPoryvPosaditPosedPosilaPoskokPoslanecPosouditPospoluPostavaPosudekPosypPotahPotkanPotleskPotomekPotravaPotupaPotvoraPoukazPoutoPouzdroPovahaPovidlaPovlakPovozPovrchPovstatPovykPovzdechPozdravPozemekPoznatekPozorPozvatPracovatPrahoryPraktikaPralesPraotecPraporekPrasePravdaPrincipPrknoProbuditProcentoProdejProfeseProhraProjektProlomitPromilePronikatPropadProrokProsbaProtonProutekProvazPrskavkaPrstenPrudkostPrutPrvekPrvohoryPsanecPsovodPstruhPtactvoPubertaPuchPudlPukavecPuklinaPukrlePultPumpaPuncPupenPusaPusinkaPustinaPutovatPutykaPyramidaPyskPytelRacekRachotRadiaceRadniceRadonRaftRagbyRaketaRakovinaRamenoRampouchRandeRarachRaritaRasovnaRastrRatolestRazanceRazidloReagovatReakceReceptRedaktorReferentReflexRejnokReklamaRekordRekrutRektorReputaceRevizeRevmaRevolverRezervaRiskovatRizikoRobotikaRodokmenRohovkaRokleRokokoRomanetoRopovodRopuchaRorejsRosolRostlinaRotmistrRotopedRotundaRoubenkaRouchoRoupRouraRovinaRovniceRozborRozchodRozdatRozeznatRozhodceRozinkaRozjezdRozkazRozlohaRozmarRozpadRozruchRozsahRoztokRozumRozvodRubrikaRuchadloRukaviceRukopisRybaRybolovRychlostRydloRypadloRytinaRyzostSadistaSahatSakoSamecSamizdatSamotaSanitkaSardinkaSasankaSatelitSazbaSazeniceSborSchovatSebrankaSeceseSedadloSedimentSedloSehnatSejmoutSekeraSektaSekundaSekvojeSemenoSenoServisSesaditSeshoraSeskokSeslatSestraSesuvSesypatSetbaSetinaSetkatSetnoutSetrvatSeverSeznamShodaShrnoutSifonSilniceSirkaSirotekSirupSituaceSkafandrSkaliskoSkanzenSkautSkeptikSkicaSkladbaSkleniceSkloSkluzSkobaSkokanSkoroSkriptaSkrzSkupinaSkvostSkvrnaSlabikaSladidloSlaninaSlastSlavnostSledovatSlepecSlevaSlezinaSlibSlinaSlizniceSlonSloupekSlovoSluchSluhaSlunceSlupkaSlzaSmaragdSmetanaSmilstvoSmlouvaSmogSmradSmrkSmrtkaSmutekSmyslSnadSnahaSnobSobotaSochaSodovkaSokolSopkaSotvaSoubojSoucitSoudceSouhlasSouladSoumrakSoupravaSousedSoutokSouvisetSpalovnaSpasitelSpisSplavSpodekSpojenecSpoluSponzorSpornostSpoustaSprchaSpustitSrandaSrazSrdceSrnaSrnecSrovnatSrpenSrstSrubStaniceStarostaStatikaStavbaStehnoStezkaStodolaStolekStopaStornoStoupatStrachStresStrhnoutStromStrunaStudnaStupniceStvolStykSubjektSubtropySucharSudostSuknoSundatSunoutSurikataSurovinaSvahSvalstvoSvetrSvatbaSvazekSvisleSvitekSvobodaSvodidloSvorkaSvrabSykavkaSykotSynekSynovecSypatSypkostSyrovostSyselSytostTabletkaTabuleTahounTajemnoTajfunTajgaTajitTajnostTaktikaTamhleTamponTancovatTanecTankerTapetaTaveninaTazatelTechnikaTehdyTekutinaTelefonTemnotaTendenceTenistaTenorTeplotaTepnaTeprveTerapieTermoskaTextilTichoTiskopisTitulekTkadlecTkaninaTlapkaTleskatTlukotTlupaTmelToaletaTopinkaTopolTorzoTouhaToulecTradiceTraktorTrampTrasaTraverzaTrefitTrestTrezorTrhavinaTrhlinaTrochuTrojiceTroskaTroubaTrpceTrpitelTrpkostTrubecTruchlitTruhliceTrusTrvatTudyTuhnoutTuhostTundraTuristaTurnajTuzemskoTvarohTvorbaTvrdostTvrzTygrTykevUbohostUbozeUbratUbrousekUbrusUbytovnaUchoUctivostUdivitUhraditUjednatUjistitUjmoutUkazatelUklidnitUklonitUkotvitUkrojitUliceUlitaUlovitUmyvadloUnavitUniformaUniknoutUpadnoutUplatnitUplynoutUpoutatUpravitUranUrazitUsednoutUsilovatUsmrtitUsnadnitUsnoutUsouditUstlatUstrnoutUtahovatUtkatUtlumitUtonoutUtopenecUtrousitUvalitUvolnitUvozovkaUzdravitUzelUzeninaUzlinaUznatVagonValchaValounVanaVandalVanilkaVaranVarhanyVarovatVcelkuVchodVdovaVedroVegetaceVejceVelbloudVeletrhVelitelVelmocVelrybaVenkovVerandaVerzeVeselkaVeskrzeVesniceVespoduVestaVeterinaVeverkaVibraceVichrVideohraVidinaVidleVilaViniceVisetVitalitaVizeVizitkaVjezdVkladVkusVlajkaVlakVlasecVlevoVlhkostVlivVlnovkaVloupatVnucovatVnukVodaVodivostVodoznakVodstvoVojenskyVojnaVojskoVolantVolbaVolitVolnoVoskovkaVozidloVozovnaVpravoVrabecVracetVrahVrataVrbaVrcholekVrhatVrstvaVrtuleVsaditVstoupitVstupVtipVybavitVybratVychovatVydatVydraVyfotitVyhledatVyhnoutVyhoditVyhraditVyhubitVyjasnitVyjetVyjmoutVyklopitVykonatVylekatVymazatVymezitVymizetVymysletVynechatVynikatVynutitVypadatVyplatitVypravitVypustitVyrazitVyrovnatVyrvatVyslovitVysokoVystavitVysunoutVysypatVytasitVytesatVytratitVyvinoutVyvolatVyvrhelVyzdobitVyznatVzaduVzbuditVzchopitVzdorVzduchVzdychatVzestupVzhledemVzkazVzlykatVznikVzorekVzpouraVztahVztekXylofonZabratZabydletZachovatZadarmoZadusitZafoukatZahltitZahoditZahradaZahynoutZajatecZajetZajistitZaklepatZakoupitZalepitZamezitZamotatZamysletZanechatZanikatZaplatitZapojitZapsatZarazitZastavitZasunoutZatajitZatemnitZatknoutZaujmoutZavalitZaveletZavinitZavolatZavrtatZazvonitZbavitZbrusuZbudovatZbytekZdalekaZdarmaZdatnostZdivoZdobitZdrojZdvihZdymadloZeleninaZemanZeminaZeptatZezaduZezdolaZhatitZhltnoutZhlubokaZhotovitZhrubaZimaZimniceZjemnitZklamatZkoumatZkratkaZkumavkaZlatoZlehkaZlobaZlomZlostZlozvykZmapovatZmarZmatekZmijeZmizetZmocnitZmodratZmrzlinaZmutovatZnakZnalostZnamenatZnovuZobrazitZotavitZoubekZoufaleZploditZpomalitZpravaZprostitZprudkaZprvuZradaZranitZrcadloZrnitostZrnoZrovnaZrychlitZrzavostZtichaZtratitZubovinaZubrZvednoutZvenkuZveselaZvonZvratZvukovodZvyk",A3=null;function Bi(A){if(A3==null&&(A3=rS.replace(/([A-Z])/g," $1").toLowerCase().substring(1).split(" "),b7.Wordlist.check(A)!=="0x25f44555f4af25b51a711136e1c7d6e50ce9f8917d39d6b1f076b2bb4d2fac1a"))throw A3=null,new Error("BIP39 Wordlist for en (English) FAILED")}var nS=function(A){lS(a,A);function a(){return A.call(this,"cz")||this}return a.prototype.getWord=function(e){return Bi(this),A3[e]},a.prototype.getWordIndex=function(e){return Bi(this),A3.indexOf(e)},a}(b7.Wordlist),hi=new nS;R4.langCz=hi;b7.Wordlist.register(hi)});var Fi=U(S4=>{"use strict";var tS=S4&&S4.__extends||function(){var A=function(a,e){return A=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(f,c){f.__proto__=c}||function(f,c){for(var d in c)Object.prototype.hasOwnProperty.call(c,d)&&(f[d]=c[d])},A(a,e)};return function(a,e){if(typeof e!="function"&&e!==null)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");A(a,e);function f(){this.constructor=a}a.prototype=e===null?Object.create(e):(f.prototype=e.prototype,new f)}}();Object.defineProperty(S4,"__esModule",{value:!0});S4.langEn=void 0;var l7=tA(),uS="AbandonAbilityAbleAboutAboveAbsentAbsorbAbstractAbsurdAbuseAccessAccidentAccountAccuseAchieveAcidAcousticAcquireAcrossActActionActorActressActualAdaptAddAddictAddressAdjustAdmitAdultAdvanceAdviceAerobicAffairAffordAfraidAgainAgeAgentAgreeAheadAimAirAirportAisleAlarmAlbumAlcoholAlertAlienAllAlleyAllowAlmostAloneAlphaAlreadyAlsoAlterAlwaysAmateurAmazingAmongAmountAmusedAnalystAnchorAncientAngerAngleAngryAnimalAnkleAnnounceAnnualAnotherAnswerAntennaAntiqueAnxietyAnyApartApologyAppearAppleApproveAprilArchArcticAreaArenaArgueArmArmedArmorArmyAroundArrangeArrestArriveArrowArtArtefactArtistArtworkAskAspectAssaultAssetAssistAssumeAsthmaAthleteAtomAttackAttendAttitudeAttractAuctionAuditAugustAuntAuthorAutoAutumnAverageAvocadoAvoidAwakeAwareAwayAwesomeAwfulAwkwardAxisBabyBachelorBaconBadgeBagBalanceBalconyBallBambooBananaBannerBarBarelyBargainBarrelBaseBasicBasketBattleBeachBeanBeautyBecauseBecomeBeefBeforeBeginBehaveBehindBelieveBelowBeltBenchBenefitBestBetrayBetterBetweenBeyondBicycleBidBikeBindBiologyBirdBirthBitterBlackBladeBlameBlanketBlastBleakBlessBlindBloodBlossomBlouseBlueBlurBlushBoardBoatBodyBoilBombBoneBonusBookBoostBorderBoringBorrowBossBottomBounceBoxBoyBracketBrainBrandBrassBraveBreadBreezeBrickBridgeBriefBrightBringBriskBroccoliBrokenBronzeBroomBrotherBrownBrushBubbleBuddyBudgetBuffaloBuildBulbBulkBulletBundleBunkerBurdenBurgerBurstBusBusinessBusyButterBuyerBuzzCabbageCabinCableCactusCageCakeCallCalmCameraCampCanCanalCancelCandyCannonCanoeCanvasCanyonCapableCapitalCaptainCarCarbonCardCargoCarpetCarryCartCaseCashCasinoCastleCasualCatCatalogCatchCategoryCattleCaughtCauseCautionCaveCeilingCeleryCementCensusCenturyCerealCertainChairChalkChampionChangeChaosChapterChargeChaseChatCheapCheckCheeseChefCherryChestChickenChiefChildChimneyChoiceChooseChronicChuckleChunkChurnCigarCinnamonCircleCitizenCityCivilClaimClapClarifyClawClayCleanClerkCleverClickClientCliffClimbClinicClipClockClogCloseClothCloudClownClubClumpClusterClutchCoachCoastCoconutCodeCoffeeCoilCoinCollectColorColumnCombineComeComfortComicCommonCompanyConcertConductConfirmCongressConnectConsiderControlConvinceCookCoolCopperCopyCoralCoreCornCorrectCostCottonCouchCountryCoupleCourseCousinCoverCoyoteCrackCradleCraftCramCraneCrashCraterCrawlCrazyCreamCreditCreekCrewCricketCrimeCrispCriticCropCrossCrouchCrowdCrucialCruelCruiseCrumbleCrunchCrushCryCrystalCubeCultureCupCupboardCuriousCurrentCurtainCurveCushionCustomCuteCycleDadDamageDampDanceDangerDaringDashDaughterDawnDayDealDebateDebrisDecadeDecemberDecideDeclineDecorateDecreaseDeerDefenseDefineDefyDegreeDelayDeliverDemandDemiseDenialDentistDenyDepartDependDepositDepthDeputyDeriveDescribeDesertDesignDeskDespairDestroyDetailDetectDevelopDeviceDevoteDiagramDialDiamondDiaryDiceDieselDietDifferDigitalDignityDilemmaDinnerDinosaurDirectDirtDisagreeDiscoverDiseaseDishDismissDisorderDisplayDistanceDivertDivideDivorceDizzyDoctorDocumentDogDollDolphinDomainDonateDonkeyDonorDoorDoseDoubleDoveDraftDragonDramaDrasticDrawDreamDressDriftDrillDrinkDripDriveDropDrumDryDuckDumbDuneDuringDustDutchDutyDwarfDynamicEagerEagleEarlyEarnEarthEasilyEastEasyEchoEcologyEconomyEdgeEditEducateEffortEggEightEitherElbowElderElectricElegantElementElephantElevatorEliteElseEmbarkEmbodyEmbraceEmergeEmotionEmployEmpowerEmptyEnableEnactEndEndlessEndorseEnemyEnergyEnforceEngageEngineEnhanceEnjoyEnlistEnoughEnrichEnrollEnsureEnterEntireEntryEnvelopeEpisodeEqualEquipEraEraseErodeErosionErrorEruptEscapeEssayEssenceEstateEternalEthicsEvidenceEvilEvokeEvolveExactExampleExcessExchangeExciteExcludeExcuseExecuteExerciseExhaustExhibitExileExistExitExoticExpandExpectExpireExplainExposeExpressExtendExtraEyeEyebrowFabricFaceFacultyFadeFaintFaithFallFalseFameFamilyFamousFanFancyFantasyFarmFashionFatFatalFatherFatigueFaultFavoriteFeatureFebruaryFederalFeeFeedFeelFemaleFenceFestivalFetchFeverFewFiberFictionFieldFigureFileFilmFilterFinalFindFineFingerFinishFireFirmFirstFiscalFishFitFitnessFixFlagFlameFlashFlatFlavorFleeFlightFlipFloatFlockFloorFlowerFluidFlushFlyFoamFocusFogFoilFoldFollowFoodFootForceForestForgetForkFortuneForumForwardFossilFosterFoundFoxFragileFrameFrequentFreshFriendFringeFrogFrontFrostFrownFrozenFruitFuelFunFunnyFurnaceFuryFutureGadgetGainGalaxyGalleryGameGapGarageGarbageGardenGarlicGarmentGasGaspGateGatherGaugeGazeGeneralGeniusGenreGentleGenuineGestureGhostGiantGiftGiggleGingerGiraffeGirlGiveGladGlanceGlareGlassGlideGlimpseGlobeGloomGloryGloveGlowGlueGoatGoddessGoldGoodGooseGorillaGospelGossipGovernGownGrabGraceGrainGrantGrapeGrassGravityGreatGreenGridGriefGritGroceryGroupGrowGruntGuardGuessGuideGuiltGuitarGunGymHabitHairHalfHammerHamsterHandHappyHarborHardHarshHarvestHatHaveHawkHazardHeadHealthHeartHeavyHedgehogHeightHelloHelmetHelpHenHeroHiddenHighHillHintHipHireHistoryHobbyHockeyHoldHoleHolidayHollowHomeHoneyHoodHopeHornHorrorHorseHospitalHostHotelHourHoverHubHugeHumanHumbleHumorHundredHungryHuntHurdleHurryHurtHusbandHybridIceIconIdeaIdentifyIdleIgnoreIllIllegalIllnessImageImitateImmenseImmuneImpactImposeImproveImpulseInchIncludeIncomeIncreaseIndexIndicateIndoorIndustryInfantInflictInformInhaleInheritInitialInjectInjuryInmateInnerInnocentInputInquiryInsaneInsectInsideInspireInstallIntactInterestIntoInvestInviteInvolveIronIslandIsolateIssueItemIvoryJacketJaguarJarJazzJealousJeansJellyJewelJobJoinJokeJourneyJoyJudgeJuiceJumpJungleJuniorJunkJustKangarooKeenKeepKetchupKeyKickKidKidneyKindKingdomKissKitKitchenKiteKittenKiwiKneeKnifeKnockKnowLabLabelLaborLadderLadyLakeLampLanguageLaptopLargeLaterLatinLaughLaundryLavaLawLawnLawsuitLayerLazyLeaderLeafLearnLeaveLectureLeftLegLegalLegendLeisureLemonLendLengthLensLeopardLessonLetterLevelLiarLibertyLibraryLicenseLifeLiftLightLikeLimbLimitLinkLionLiquidListLittleLiveLizardLoadLoanLobsterLocalLockLogicLonelyLongLoopLotteryLoudLoungeLoveLoyalLuckyLuggageLumberLunarLunchLuxuryLyricsMachineMadMagicMagnetMaidMailMainMajorMakeMammalManManageMandateMangoMansionManualMapleMarbleMarchMarginMarineMarketMarriageMaskMassMasterMatchMaterialMathMatrixMatterMaximumMazeMeadowMeanMeasureMeatMechanicMedalMediaMelodyMeltMemberMemoryMentionMenuMercyMergeMeritMerryMeshMessageMetalMethodMiddleMidnightMilkMillionMimicMindMinimumMinorMinuteMiracleMirrorMiseryMissMistakeMixMixedMixtureMobileModelModifyMomMomentMonitorMonkeyMonsterMonthMoonMoralMoreMorningMosquitoMotherMotionMotorMountainMouseMoveMovieMuchMuffinMuleMultiplyMuscleMuseumMushroomMusicMustMutualMyselfMysteryMythNaiveNameNapkinNarrowNastyNationNatureNearNeckNeedNegativeNeglectNeitherNephewNerveNestNetNetworkNeutralNeverNewsNextNiceNightNobleNoiseNomineeNoodleNormalNorthNoseNotableNoteNothingNoticeNovelNowNuclearNumberNurseNutOakObeyObjectObligeObscureObserveObtainObviousOccurOceanOctoberOdorOffOfferOfficeOftenOilOkayOldOliveOlympicOmitOnceOneOnionOnlineOnlyOpenOperaOpinionOpposeOptionOrangeOrbitOrchardOrderOrdinaryOrganOrientOriginalOrphanOstrichOtherOutdoorOuterOutputOutsideOvalOvenOverOwnOwnerOxygenOysterOzonePactPaddlePagePairPalacePalmPandaPanelPanicPantherPaperParadeParentParkParrotPartyPassPatchPathPatientPatrolPatternPausePavePaymentPeacePeanutPearPeasantPelicanPenPenaltyPencilPeoplePepperPerfectPermitPersonPetPhonePhotoPhrasePhysicalPianoPicnicPicturePiecePigPigeonPillPilotPinkPioneerPipePistolPitchPizzaPlacePlanetPlasticPlatePlayPleasePledgePluckPlugPlungePoemPoetPointPolarPolePolicePondPonyPoolPopularPortionPositionPossiblePostPotatoPotteryPovertyPowderPowerPracticePraisePredictPreferPreparePresentPrettyPreventPricePridePrimaryPrintPriorityPrisonPrivatePrizeProblemProcessProduceProfitProgramProjectPromoteProofPropertyProsperProtectProudProvidePublicPuddingPullPulpPulsePumpkinPunchPupilPuppyPurchasePurityPurposePursePushPutPuzzlePyramidQualityQuantumQuarterQuestionQuickQuitQuizQuoteRabbitRaccoonRaceRackRadarRadioRailRainRaiseRallyRampRanchRandomRangeRapidRareRateRatherRavenRawRazorReadyRealReasonRebelRebuildRecallReceiveRecipeRecordRecycleReduceReflectReformRefuseRegionRegretRegularRejectRelaxReleaseReliefRelyRemainRememberRemindRemoveRenderRenewRentReopenRepairRepeatReplaceReportRequireRescueResembleResistResourceResponseResultRetireRetreatReturnReunionRevealReviewRewardRhythmRibRibbonRiceRichRideRidgeRifleRightRigidRingRiotRippleRiskRitualRivalRiverRoadRoastRobotRobustRocketRomanceRoofRookieRoomRoseRotateRoughRoundRouteRoyalRubberRudeRugRuleRunRunwayRuralSadSaddleSadnessSafeSailSaladSalmonSalonSaltSaluteSameSampleSandSatisfySatoshiSauceSausageSaveSayScaleScanScareScatterSceneSchemeSchoolScienceScissorsScorpionScoutScrapScreenScriptScrubSeaSearchSeasonSeatSecondSecretSectionSecuritySeedSeekSegmentSelectSellSeminarSeniorSenseSentenceSeriesServiceSessionSettleSetupSevenShadowShaftShallowShareShedShellSheriffShieldShiftShineShipShiverShockShoeShootShopShortShoulderShoveShrimpShrugShuffleShySiblingSickSideSiegeSightSignSilentSilkSillySilverSimilarSimpleSinceSingSirenSisterSituateSixSizeSkateSketchSkiSkillSkinSkirtSkullSlabSlamSleepSlenderSliceSlideSlightSlimSloganSlotSlowSlushSmallSmartSmileSmokeSmoothSnackSnakeSnapSniffSnowSoapSoccerSocialSockSodaSoftSolarSoldierSolidSolutionSolveSomeoneSongSoonSorrySortSoulSoundSoupSourceSouthSpaceSpareSpatialSpawnSpeakSpecialSpeedSpellSpendSphereSpiceSpiderSpikeSpinSpiritSplitSpoilSponsorSpoonSportSpotSpraySpreadSpringSpySquareSqueezeSquirrelStableStadiumStaffStageStairsStampStandStartStateStaySteakSteelStemStepStereoStickStillStingStockStomachStoneStoolStoryStoveStrategyStreetStrikeStrongStruggleStudentStuffStumbleStyleSubjectSubmitSubwaySuccessSuchSuddenSufferSugarSuggestSuitSummerSunSunnySunsetSuperSupplySupremeSureSurfaceSurgeSurpriseSurroundSurveySuspectSustainSwallowSwampSwapSwarmSwearSweetSwiftSwimSwingSwitchSwordSymbolSymptomSyrupSystemTableTackleTagTailTalentTalkTankTapeTargetTaskTasteTattooTaxiTeachTeamTellTenTenantTennisTentTermTestTextThankThatThemeThenTheoryThereTheyThingThisThoughtThreeThriveThrowThumbThunderTicketTideTigerTiltTimberTimeTinyTipTiredTissueTitleToastTobaccoTodayToddlerToeTogetherToiletTokenTomatoTomorrowToneTongueTonightToolToothTopTopicToppleTorchTornadoTortoiseTossTotalTouristTowardTowerTownToyTrackTradeTrafficTragicTrainTransferTrapTrashTravelTrayTreatTreeTrendTrialTribeTrickTriggerTrimTripTrophyTroubleTruckTrueTrulyTrumpetTrustTruthTryTubeTuitionTumbleTunaTunnelTurkeyTurnTurtleTwelveTwentyTwiceTwinTwistTwoTypeTypicalUglyUmbrellaUnableUnawareUncleUncoverUnderUndoUnfairUnfoldUnhappyUniformUniqueUnitUniverseUnknownUnlockUntilUnusualUnveilUpdateUpgradeUpholdUponUpperUpsetUrbanUrgeUsageUseUsedUsefulUselessUsualUtilityVacantVacuumVagueValidValleyValveVanVanishVaporVariousVastVaultVehicleVelvetVendorVentureVenueVerbVerifyVersionVeryVesselVeteranViableVibrantViciousVictoryVideoViewVillageVintageViolinVirtualVirusVisaVisitVisualVitalVividVocalVoiceVoidVolcanoVolumeVoteVoyageWageWagonWaitWalkWallWalnutWantWarfareWarmWarriorWashWaspWasteWaterWaveWayWealthWeaponWearWeaselWeatherWebWeddingWeekendWeirdWelcomeWestWetWhaleWhatWheatWheelWhenWhereWhipWhisperWideWidthWifeWildWillWinWindowWineWingWinkWinnerWinterWireWisdomWiseWishWitnessWolfWomanWonderWoodWoolWordWorkWorldWorryWorthWrapWreckWrestleWristWriteWrongYardYearYellowYouYoungYouthZebraZeroZoneZoo",f3=null;function gi(A){if(f3==null&&(f3=uS.replace(/([A-Z])/g," $1").toLowerCase().substring(1).split(" "),l7.Wordlist.check(A)!=="0x3c8acc1e7b08d8e76f9fda015ef48dc8c710a73cb7e0f77b2c18a9b5a7adde60"))throw f3=null,new Error("BIP39 Wordlist for en (English) FAILED")}var iS=function(A){tS(a,A);function a(){return A.call(this,"en")||this}return a.prototype.getWord=function(e){return gi(this),f3[e]},a.prototype.getWordIndex=function(e){return gi(this),f3.indexOf(e)},a}(l7.Wordlist),Ii=new iS;S4.langEn=Ii;l7.Wordlist.register(Ii)});var Ti=U(v4=>{"use strict";var oS=v4&&v4.__extends||function(){var A=function(a,e){return A=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(f,c){f.__proto__=c}||function(f,c){for(var d in c)Object.prototype.hasOwnProperty.call(c,d)&&(f[d]=c[d])},A(a,e)};return function(a,e){if(typeof e!="function"&&e!==null)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");A(a,e);function f(){this.constructor=a}a.prototype=e===null?Object.create(e):(f.prototype=e.prototype,new f)}}();Object.defineProperty(v4,"__esModule",{value:!0});v4.langEs=void 0;var Nd=U0(),Od=tA(),sS="A/bacoAbdomenAbejaAbiertoAbogadoAbonoAbortoAbrazoAbrirAbueloAbusoAcabarAcademiaAccesoAccio/nAceiteAcelgaAcentoAceptarA/cidoAclararAcne/AcogerAcosoActivoActoActrizActuarAcudirAcuerdoAcusarAdictoAdmitirAdoptarAdornoAduanaAdultoAe/reoAfectarAficio/nAfinarAfirmarA/gilAgitarAgoni/aAgostoAgotarAgregarAgrioAguaAgudoA/guilaAgujaAhogoAhorroAireAislarAjedrezAjenoAjusteAlacra/nAlambreAlarmaAlbaA/lbumAlcaldeAldeaAlegreAlejarAlertaAletaAlfilerAlgaAlgodo/nAliadoAlientoAlivioAlmaAlmejaAlmi/barAltarAltezaAltivoAltoAlturaAlumnoAlzarAmableAmanteAmapolaAmargoAmasarA/mbarA/mbitoAmenoAmigoAmistadAmorAmparoAmplioAnchoAncianoAnclaAndarAnde/nAnemiaA/nguloAnilloA/nimoAni/sAnotarAntenaAntiguoAntojoAnualAnularAnuncioA~adirA~ejoA~oApagarAparatoApetitoApioAplicarApodoAporteApoyoAprenderAprobarApuestaApuroAradoAra~aArarA/rbitroA/rbolArbustoArchivoArcoArderArdillaArduoA/reaA/ridoAriesArmoni/aArne/sAromaArpaArpo/nArregloArrozArrugaArteArtistaAsaAsadoAsaltoAscensoAsegurarAseoAsesorAsientoAsiloAsistirAsnoAsombroA/speroAstillaAstroAstutoAsumirAsuntoAtajoAtaqueAtarAtentoAteoA/ticoAtletaA/tomoAtraerAtrozAtu/nAudazAudioAugeAulaAumentoAusenteAutorAvalAvanceAvaroAveAvellanaAvenaAvestruzAvio/nAvisoAyerAyudaAyunoAzafra/nAzarAzoteAzu/carAzufreAzulBabaBaborBacheBahi/aBaileBajarBalanzaBalco/nBaldeBambu/BancoBandaBa~oBarbaBarcoBarnizBarroBa/sculaBasto/nBasuraBatallaBateri/aBatirBatutaBau/lBazarBebe/BebidaBelloBesarBesoBestiaBichoBienBingoBlancoBloqueBlusaBoaBobinaBoboBocaBocinaBodaBodegaBoinaBolaBoleroBolsaBombaBondadBonitoBonoBonsa/iBordeBorrarBosqueBoteBoti/nBo/vedaBozalBravoBrazoBrechaBreveBrilloBrincoBrisaBrocaBromaBronceBroteBrujaBruscoBrutoBuceoBucleBuenoBueyBufandaBufo/nBu/hoBuitreBultoBurbujaBurlaBurroBuscarButacaBuzo/nCaballoCabezaCabinaCabraCacaoCada/verCadenaCaerCafe/Cai/daCaima/nCajaCajo/nCalCalamarCalcioCaldoCalidadCalleCalmaCalorCalvoCamaCambioCamelloCaminoCampoCa/ncerCandilCanelaCanguroCanicaCantoCa~aCa~o/nCaobaCaosCapazCapita/nCapoteCaptarCapuchaCaraCarbo/nCa/rcelCaretaCargaCari~oCarneCarpetaCarroCartaCasaCascoCaseroCaspaCastorCatorceCatreCaudalCausaCazoCebollaCederCedroCeldaCe/lebreCelosoCe/lulaCementoCenizaCentroCercaCerdoCerezaCeroCerrarCertezaCe/spedCetroChacalChalecoChampu/ChanclaChapaCharlaChicoChisteChivoChoqueChozaChuletaChuparCiclo/nCiegoCieloCienCiertoCifraCigarroCimaCincoCineCintaCipre/sCircoCiruelaCisneCitaCiudadClamorClanClaroClaseClaveClienteClimaCli/nicaCobreCoccio/nCochinoCocinaCocoCo/digoCodoCofreCogerCoheteCoji/nCojoColaColchaColegioColgarColinaCollarColmoColumnaCombateComerComidaCo/modoCompraCondeConejoCongaConocerConsejoContarCopaCopiaCorazo/nCorbataCorchoCordo/nCoronaCorrerCoserCosmosCostaCra/neoCra/terCrearCrecerCrei/doCremaCri/aCrimenCriptaCrisisCromoCro/nicaCroquetaCrudoCruzCuadroCuartoCuatroCuboCubrirCucharaCuelloCuentoCuerdaCuestaCuevaCuidarCulebraCulpaCultoCumbreCumplirCunaCunetaCuotaCupo/nCu/pulaCurarCuriosoCursoCurvaCutisDamaDanzaDarDardoDa/tilDeberDe/bilDe/cadaDecirDedoDefensaDefinirDejarDelfi/nDelgadoDelitoDemoraDensoDentalDeporteDerechoDerrotaDesayunoDeseoDesfileDesnudoDestinoDesvi/oDetalleDetenerDeudaDi/aDiabloDiademaDiamanteDianaDiarioDibujoDictarDienteDietaDiezDifi/cilDignoDilemaDiluirDineroDirectoDirigirDiscoDise~oDisfrazDivaDivinoDobleDoceDolorDomingoDonDonarDoradoDormirDorsoDosDosisDrago/nDrogaDuchaDudaDueloDue~oDulceDu/oDuqueDurarDurezaDuroE/banoEbrioEcharEcoEcuadorEdadEdicio/nEdificioEditorEducarEfectoEficazEjeEjemploElefanteElegirElementoElevarElipseE/liteElixirElogioEludirEmbudoEmitirEmocio/nEmpateEmpe~oEmpleoEmpresaEnanoEncargoEnchufeEnci/aEnemigoEneroEnfadoEnfermoEnga~oEnigmaEnlaceEnormeEnredoEnsayoEnse~arEnteroEntrarEnvaseEnvi/oE/pocaEquipoErizoEscalaEscenaEscolarEscribirEscudoEsenciaEsferaEsfuerzoEspadaEspejoEspi/aEsposaEspumaEsqui/EstarEsteEstiloEstufaEtapaEternoE/ticaEtniaEvadirEvaluarEventoEvitarExactoExamenExcesoExcusaExentoExigirExilioExistirE/xitoExpertoExplicarExponerExtremoFa/bricaFa/bulaFachadaFa/cilFactorFaenaFajaFaldaFalloFalsoFaltarFamaFamiliaFamosoFarao/nFarmaciaFarolFarsaFaseFatigaFaunaFavorFaxFebreroFechaFelizFeoFeriaFerozFe/rtilFervorFesti/nFiableFianzaFiarFibraFiccio/nFichaFideoFiebreFielFieraFiestaFiguraFijarFijoFilaFileteFilialFiltroFinFincaFingirFinitoFirmaFlacoFlautaFlechaFlorFlotaFluirFlujoFlu/orFobiaFocaFogataFogo/nFolioFolletoFondoFormaForroFortunaForzarFosaFotoFracasoFra/gilFranjaFraseFraudeFrei/rFrenoFresaFri/oFritoFrutaFuegoFuenteFuerzaFugaFumarFuncio/nFundaFurgo/nFuriaFusilFu/tbolFuturoGacelaGafasGaitaGajoGalaGaleri/aGalloGambaGanarGanchoGangaGansoGarajeGarzaGasolinaGastarGatoGavila/nGemeloGemirGenGe/neroGenioGenteGeranioGerenteGermenGestoGiganteGimnasioGirarGiroGlaciarGloboGloriaGolGolfoGolosoGolpeGomaGordoGorilaGorraGotaGoteoGozarGradaGra/ficoGranoGrasaGratisGraveGrietaGrilloGripeGrisGritoGrosorGru/aGruesoGrumoGrupoGuanteGuapoGuardiaGuerraGui/aGui~oGuionGuisoGuitarraGusanoGustarHaberHa/bilHablarHacerHachaHadaHallarHamacaHarinaHazHaza~aHebillaHebraHechoHeladoHelioHembraHerirHermanoHe/roeHervirHieloHierroHi/gadoHigieneHijoHimnoHistoriaHocicoHogarHogueraHojaHombreHongoHonorHonraHoraHormigaHornoHostilHoyoHuecoHuelgaHuertaHuesoHuevoHuidaHuirHumanoHu/medoHumildeHumoHundirHuraca/nHurtoIconoIdealIdiomaI/doloIglesiaIglu/IgualIlegalIlusio/nImagenIma/nImitarImparImperioImponerImpulsoIncapazI/ndiceInerteInfielInformeIngenioInicioInmensoInmuneInnatoInsectoInstanteIntere/sI/ntimoIntuirInu/tilInviernoIraIrisIroni/aIslaIsloteJabali/Jabo/nJamo/nJarabeJardi/nJarraJaulaJazmi/nJefeJeringaJineteJornadaJorobaJovenJoyaJuergaJuevesJuezJugadorJugoJugueteJuicioJuncoJunglaJunioJuntarJu/piterJurarJustoJuvenilJuzgarKiloKoalaLabioLacioLacraLadoLadro/nLagartoLa/grimaLagunaLaicoLamerLa/minaLa/mparaLanaLanchaLangostaLanzaLa/pizLargoLarvaLa/stimaLataLa/texLatirLaurelLavarLazoLealLeccio/nLecheLectorLeerLegio/nLegumbreLejanoLenguaLentoLe~aLeo/nLeopardoLesio/nLetalLetraLeveLeyendaLibertadLibroLicorLi/derLidiarLienzoLigaLigeroLimaLi/miteLimo/nLimpioLinceLindoLi/neaLingoteLinoLinternaLi/quidoLisoListaLiteraLitioLitroLlagaLlamaLlantoLlaveLlegarLlenarLlevarLlorarLloverLluviaLoboLocio/nLocoLocuraLo/gicaLogroLombrizLomoLonjaLoteLuchaLucirLugarLujoLunaLunesLupaLustroLutoLuzMacetaMachoMaderaMadreMaduroMaestroMafiaMagiaMagoMai/zMaldadMaletaMallaMaloMama/MamboMamutMancoMandoManejarMangaManiqui/ManjarManoMansoMantaMa~anaMapaMa/quinaMarMarcoMareaMarfilMargenMaridoMa/rmolMarro/nMartesMarzoMasaMa/scaraMasivoMatarMateriaMatizMatrizMa/ximoMayorMazorcaMechaMedallaMedioMe/dulaMejillaMejorMelenaMelo/nMemoriaMenorMensajeMenteMenu/MercadoMerengueMe/ritoMesMeso/nMetaMeterMe/todoMetroMezclaMiedoMielMiembroMigaMilMilagroMilitarMillo/nMimoMinaMineroMi/nimoMinutoMiopeMirarMisaMiseriaMisilMismoMitadMitoMochilaMocio/nModaModeloMohoMojarMoldeMolerMolinoMomentoMomiaMonarcaMonedaMonjaMontoMo~oMoradaMorderMorenoMorirMorroMorsaMortalMoscaMostrarMotivoMoverMo/vilMozoMuchoMudarMuebleMuelaMuerteMuestraMugreMujerMulaMuletaMultaMundoMu~ecaMuralMuroMu/sculoMuseoMusgoMu/sicaMusloNa/carNacio/nNadarNaipeNaranjaNarizNarrarNasalNatalNativoNaturalNa/useaNavalNaveNavidadNecioNe/ctarNegarNegocioNegroNeo/nNervioNetoNeutroNevarNeveraNichoNidoNieblaNietoNi~ezNi~oNi/tidoNivelNoblezaNocheNo/minaNoriaNormaNorteNotaNoticiaNovatoNovelaNovioNubeNucaNu/cleoNudilloNudoNueraNueveNuezNuloNu/meroNutriaOasisObesoObispoObjetoObraObreroObservarObtenerObvioOcaOcasoOce/anoOchentaOchoOcioOcreOctavoOctubreOcultoOcuparOcurrirOdiarOdioOdiseaOesteOfensaOfertaOficioOfrecerOgroOi/doOi/rOjoOlaOleadaOlfatoOlivoOllaOlmoOlorOlvidoOmbligoOndaOnzaOpacoOpcio/nO/peraOpinarOponerOptarO/pticaOpuestoOracio/nOradorOralO/rbitaOrcaOrdenOrejaO/rganoOrgi/aOrgulloOrienteOrigenOrillaOroOrquestaOrugaOsadi/aOscuroOseznoOsoOstraOto~oOtroOvejaO/vuloO/xidoOxi/genoOyenteOzonoPactoPadrePaellaPa/ginaPagoPai/sPa/jaroPalabraPalcoPaletaPa/lidoPalmaPalomaPalparPanPanalPa/nicoPanteraPa~ueloPapa/PapelPapillaPaquetePararParcelaParedParirParoPa/rpadoParquePa/rrafoPartePasarPaseoPasio/nPasoPastaPataPatioPatriaPausaPautaPavoPayasoPeato/nPecadoPeceraPechoPedalPedirPegarPeinePelarPelda~oPeleaPeligroPellejoPeloPelucaPenaPensarPe~o/nPeo/nPeorPepinoPeque~oPeraPerchaPerderPerezaPerfilPericoPerlaPermisoPerroPersonaPesaPescaPe/simoPesta~aPe/taloPetro/leoPezPezu~aPicarPicho/nPiePiedraPiernaPiezaPijamaPilarPilotoPimientaPinoPintorPinzaPi~aPiojoPipaPirataPisarPiscinaPisoPistaPito/nPizcaPlacaPlanPlataPlayaPlazaPleitoPlenoPlomoPlumaPluralPobrePocoPoderPodioPoemaPoesi/aPoetaPolenPolici/aPolloPolvoPomadaPomeloPomoPompaPonerPorcio/nPortalPosadaPoseerPosiblePostePotenciaPotroPozoPradoPrecozPreguntaPremioPrensaPresoPrevioPrimoPri/ncipePrisio/nPrivarProaProbarProcesoProductoProezaProfesorProgramaProlePromesaProntoPropioPro/ximoPruebaPu/blicoPucheroPudorPuebloPuertaPuestoPulgaPulirPulmo/nPulpoPulsoPumaPuntoPu~alPu~oPupaPupilaPure/QuedarQuejaQuemarQuererQuesoQuietoQui/micaQuinceQuitarRa/banoRabiaRaboRacio/nRadicalRai/zRamaRampaRanchoRangoRapazRa/pidoRaptoRasgoRaspaRatoRayoRazaRazo/nReaccio/nRealidadReba~oReboteRecaerRecetaRechazoRecogerRecreoRectoRecursoRedRedondoReducirReflejoReformaRefra/nRefugioRegaloRegirReglaRegresoRehe/nReinoRei/rRejaRelatoRelevoRelieveRellenoRelojRemarRemedioRemoRencorRendirRentaRepartoRepetirReposoReptilResRescateResinaRespetoRestoResumenRetiroRetornoRetratoReunirReve/sRevistaReyRezarRicoRiegoRiendaRiesgoRifaRi/gidoRigorRinco/nRi~o/nRi/oRiquezaRisaRitmoRitoRizoRobleRoceRociarRodarRodeoRodillaRoerRojizoRojoRomeroRomperRonRoncoRondaRopaRoperoRosaRoscaRostroRotarRubi/RuborRudoRuedaRugirRuidoRuinaRuletaRuloRumboRumorRupturaRutaRutinaSa/badoSaberSabioSableSacarSagazSagradoSalaSaldoSaleroSalirSalmo/nSalo/nSalsaSaltoSaludSalvarSambaSancio/nSandi/aSanearSangreSanidadSanoSantoSapoSaqueSardinaSarte/nSastreSata/nSaunaSaxofo/nSeccio/nSecoSecretoSectaSedSeguirSeisSelloSelvaSemanaSemillaSendaSensorSe~alSe~orSepararSepiaSequi/aSerSerieSermo/nServirSesentaSesio/nSetaSetentaSeveroSexoSextoSidraSiestaSieteSigloSignoSi/labaSilbarSilencioSillaSi/mboloSimioSirenaSistemaSitioSituarSobreSocioSodioSolSolapaSoldadoSoledadSo/lidoSoltarSolucio/nSombraSondeoSonidoSonoroSonrisaSopaSoplarSoporteSordoSorpresaSorteoSoste/nSo/tanoSuaveSubirSucesoSudorSuegraSueloSue~oSuerteSufrirSujetoSulta/nSumarSuperarSuplirSuponerSupremoSurSurcoSure~oSurgirSustoSutilTabacoTabiqueTablaTabu/TacoTactoTajoTalarTalcoTalentoTallaTalo/nTama~oTamborTangoTanqueTapaTapeteTapiaTapo/nTaquillaTardeTareaTarifaTarjetaTarotTarroTartaTatuajeTauroTazaTazo/nTeatroTechoTeclaTe/cnicaTejadoTejerTejidoTelaTele/fonoTemaTemorTemploTenazTenderTenerTenisTensoTeori/aTerapiaTercoTe/rminoTernuraTerrorTesisTesoroTestigoTeteraTextoTezTibioTiburo/nTiempoTiendaTierraTiesoTigreTijeraTildeTimbreTi/midoTimoTintaTi/oTi/picoTipoTiraTiro/nTita/nTi/tereTi/tuloTizaToallaTobilloTocarTocinoTodoTogaToldoTomarTonoTontoToparTopeToqueTo/raxToreroTormentaTorneoToroTorpedoTorreTorsoTortugaTosToscoToserTo/xicoTrabajoTractorTraerTra/ficoTragoTrajeTramoTranceTratoTraumaTrazarTre/bolTreguaTreintaTrenTreparTresTribuTrigoTripaTristeTriunfoTrofeoTrompaTroncoTropaTroteTrozoTrucoTruenoTrufaTuberi/aTuboTuertoTumbaTumorTu/nelTu/nicaTurbinaTurismoTurnoTutorUbicarU/lceraUmbralUnidadUnirUniversoUnoUntarU~aUrbanoUrbeUrgenteUrnaUsarUsuarioU/tilUtopi/aUvaVacaVaci/oVacunaVagarVagoVainaVajillaValeVa/lidoValleValorVa/lvulaVampiroVaraVariarVaro/nVasoVecinoVectorVehi/culoVeinteVejezVelaVeleroVelozVenaVencerVendaVenenoVengarVenirVentaVenusVerVeranoVerboVerdeVeredaVerjaVersoVerterVi/aViajeVibrarVicioVi/ctimaVidaVi/deoVidrioViejoViernesVigorVilVillaVinagreVinoVi~edoVioli/nViralVirgoVirtudVisorVi/speraVistaVitaminaViudoVivazViveroVivirVivoVolca/nVolumenVolverVorazVotarVotoVozVueloVulgarYacerYateYeguaYemaYernoYesoYodoYogaYogurZafiroZanjaZapatoZarzaZonaZorroZumoZurdo",mi={},c3=null;function xi(A){return Od.logger.checkNormalize(),(0,Nd.toUtf8String)(Array.prototype.filter.call((0,Nd.toUtf8Bytes)(A.normalize("NFD").toLowerCase()),function(a){return a>=65&&a<=90||a>=97&&a<=123}))}function ES(A){var a=[];return Array.prototype.forEach.call((0,Nd.toUtf8Bytes)(A),function(e){e===47?(a.push(204),a.push(129)):e===126?(a.push(110),a.push(204),a.push(131)):a.push(e)}),(0,Nd.toUtf8String)(a)}function Di(A){if(c3==null&&(c3=sS.replace(/([A-Z])/g," $1").toLowerCase().substring(1).split(" ").map(function(a){return ES(a)}),c3.forEach(function(a,e){mi[xi(a)]=e}),Od.Wordlist.check(A)!=="0xf74fb7092aeacdfbf8959557de22098da512207fb9f109cb526994938cf40300"))throw c3=null,new Error("BIP39 Wordlist for es (Spanish) FAILED")}var BS=function(A){oS(a,A);function a(){return A.call(this,"es")||this}return a.prototype.getWord=function(e){return Di(this),c3[e]},a.prototype.getWordIndex=function(e){return Di(this),mi[xi(e)]},a}(Od.Wordlist),pi=new BS;v4.langEs=pi;Od.Wordlist.register(pi)});var ki=U(k4=>{"use strict";var hS=k4&&k4.__extends||function(){var A=function(a,e){return A=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(f,c){f.__proto__=c}||function(f,c){for(var d in c)Object.prototype.hasOwnProperty.call(c,d)&&(f[d]=c[d])},A(a,e)};return function(a,e){if(typeof e!="function"&&e!==null)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");A(a,e);function f(){this.constructor=a}a.prototype=e===null?Object.create(e):(f.prototype=e.prototype,new f)}}();Object.defineProperty(k4,"__esModule",{value:!0});k4.langFr=void 0;var Gd=U0(),Pd=tA(),CS="AbaisserAbandonAbdiquerAbeilleAbolirAborderAboutirAboyerAbrasifAbreuverAbriterAbrogerAbruptAbsenceAbsoluAbsurdeAbusifAbyssalAcade/mieAcajouAcarienAccablerAccepterAcclamerAccoladeAccrocheAccuserAcerbeAchatAcheterAcidulerAcierAcompteAcque/rirAcronymeActeurActifActuelAdepteAde/quatAdhe/sifAdjectifAdjugerAdmettreAdmirerAdopterAdorerAdoucirAdresseAdroitAdulteAdverbeAe/rerAe/ronefAffaireAffecterAfficheAffreuxAffublerAgacerAgencerAgileAgiterAgraferAgre/ableAgrumeAiderAiguilleAilierAimableAisanceAjouterAjusterAlarmerAlchimieAlerteAlge-breAlgueAlie/nerAlimentAlle/gerAlliageAllouerAllumerAlourdirAlpagaAltesseAlve/oleAmateurAmbiguAmbreAme/nagerAmertumeAmidonAmiralAmorcerAmourAmovibleAmphibieAmpleurAmusantAnalyseAnaphoreAnarchieAnatomieAncienAne/antirAngleAngoisseAnguleuxAnimalAnnexerAnnonceAnnuelAnodinAnomalieAnonymeAnormalAntenneAntidoteAnxieuxApaiserApe/ritifAplanirApologieAppareilAppelerApporterAppuyerAquariumAqueducArbitreArbusteArdeurArdoiseArgentArlequinArmatureArmementArmoireArmureArpenterArracherArriverArroserArsenicArte/rielArticleAspectAsphalteAspirerAssautAsservirAssietteAssocierAssurerAsticotAstreAstuceAtelierAtomeAtriumAtroceAttaqueAttentifAttirerAttraperAubaineAubergeAudaceAudibleAugurerAuroreAutomneAutrucheAvalerAvancerAvariceAvenirAverseAveugleAviateurAvideAvionAviserAvoineAvouerAvrilAxialAxiomeBadgeBafouerBagageBaguetteBaignadeBalancerBalconBaleineBalisageBambinBancaireBandageBanlieueBannie-reBanquierBarbierBarilBaronBarqueBarrageBassinBastionBatailleBateauBatterieBaudrierBavarderBeletteBe/lierBeloteBe/ne/ficeBerceauBergerBerlineBermudaBesaceBesogneBe/tailBeurreBiberonBicycleBiduleBijouBilanBilingueBillardBinaireBiologieBiopsieBiotypeBiscuitBisonBistouriBitumeBizarreBlafardBlagueBlanchirBlessantBlinderBlondBloquerBlousonBobardBobineBoireBoiserBolideBonbonBondirBonheurBonifierBonusBordureBorneBotteBoucleBoueuxBougieBoulonBouquinBourseBoussoleBoutiqueBoxeurBrancheBrasierBraveBrebisBre-cheBreuvageBricolerBrigadeBrillantBriocheBriqueBrochureBroderBronzerBrousseBroyeurBrumeBrusqueBrutalBruyantBuffleBuissonBulletinBureauBurinBustierButinerButoirBuvableBuvetteCabanonCabineCachetteCadeauCadreCafe/ineCaillouCaissonCalculerCalepinCalibreCalmerCalomnieCalvaireCamaradeCame/raCamionCampagneCanalCanetonCanonCantineCanularCapableCaporalCapriceCapsuleCapterCapucheCarabineCarboneCaresserCaribouCarnageCarotteCarreauCartonCascadeCasierCasqueCassureCauserCautionCavalierCaverneCaviarCe/dilleCeintureCe/lesteCelluleCendrierCensurerCentralCercleCe/re/bralCeriseCernerCerveauCesserChagrinChaiseChaleurChambreChanceChapitreCharbonChasseurChatonChaussonChavirerChemiseChenilleChe/quierChercherChevalChienChiffreChignonChime-reChiotChlorureChocolatChoisirChoseChouetteChromeChuteCigareCigogneCimenterCine/maCintrerCirculerCirerCirqueCiterneCitoyenCitronCivilClaironClameurClaquerClasseClavierClientClignerClimatClivageClocheClonageCloporteCobaltCobraCocasseCocotierCoderCodifierCoffreCognerCohe/sionCoifferCoincerCole-reColibriCollineColmaterColonelCombatCome/dieCommandeCompactConcertConduireConfierCongelerConnoterConsonneContactConvexeCopainCopieCorailCorbeauCordageCornicheCorpusCorrectCorte-geCosmiqueCostumeCotonCoudeCoupureCourageCouteauCouvrirCoyoteCrabeCrainteCravateCrayonCre/atureCre/diterCre/meuxCreuserCrevetteCriblerCrierCristalCrite-reCroireCroquerCrotaleCrucialCruelCrypterCubiqueCueillirCuille-reCuisineCuivreCulminerCultiverCumulerCupideCuratifCurseurCyanureCycleCylindreCyniqueDaignerDamierDangerDanseurDauphinDe/battreDe/biterDe/borderDe/briderDe/butantDe/calerDe/cembreDe/chirerDe/ciderDe/clarerDe/corerDe/crireDe/cuplerDe/daleDe/ductifDe/esseDe/fensifDe/filerDe/frayerDe/gagerDe/givrerDe/glutirDe/graferDe/jeunerDe/liceDe/logerDemanderDemeurerDe/molirDe/nicherDe/nouerDentelleDe/nuderDe/partDe/penserDe/phaserDe/placerDe/poserDe/rangerDe/roberDe/sastreDescenteDe/sertDe/signerDe/sobe/irDessinerDestrierDe/tacherDe/testerDe/tourerDe/tresseDevancerDevenirDevinerDevoirDiableDialogueDiamantDicterDiffe/rerDige/rerDigitalDigneDiluerDimancheDiminuerDioxydeDirectifDirigerDiscuterDisposerDissiperDistanceDivertirDiviserDocileDocteurDogmeDoigtDomaineDomicileDompterDonateurDonjonDonnerDopamineDortoirDorureDosageDoseurDossierDotationDouanierDoubleDouceurDouterDoyenDragonDraperDresserDribblerDroitureDuperieDuplexeDurableDurcirDynastieE/blouirE/carterE/charpeE/chelleE/clairerE/clipseE/cloreE/cluseE/coleE/conomieE/corceE/couterE/craserE/cre/merE/crivainE/crouE/cumeE/cureuilE/difierE/duquerEffacerEffectifEffigieEffortEffrayerEffusionE/galiserE/garerE/jecterE/laborerE/largirE/lectronE/le/gantE/le/phantE/le-veE/ligibleE/litismeE/logeE/luciderE/luderEmballerEmbellirEmbryonE/meraudeE/missionEmmenerE/motionE/mouvoirEmpereurEmployerEmporterEmpriseE/mulsionEncadrerEnche-reEnclaveEncocheEndiguerEndosserEndroitEnduireE/nergieEnfanceEnfermerEnfouirEngagerEnginEngloberE/nigmeEnjamberEnjeuEnleverEnnemiEnnuyeuxEnrichirEnrobageEnseigneEntasserEntendreEntierEntourerEntraverE/nume/rerEnvahirEnviableEnvoyerEnzymeE/olienE/paissirE/pargneE/patantE/pauleE/picerieE/pide/mieE/pierE/pilogueE/pineE/pisodeE/pitapheE/poqueE/preuveE/prouverE/puisantE/querreE/quipeE/rigerE/rosionErreurE/ruptionEscalierEspadonEspe-ceEspie-gleEspoirEspritEsquiverEssayerEssenceEssieuEssorerEstimeEstomacEstradeE/tage-reE/talerE/tancheE/tatiqueE/teindreE/tendoirE/ternelE/thanolE/thiqueEthnieE/tirerE/tofferE/toileE/tonnantE/tourdirE/trangeE/troitE/tudeEuphorieE/valuerE/vasionE/ventailE/videnceE/viterE/volutifE/voquerExactExage/rerExaucerExcellerExcitantExclusifExcuseExe/cuterExempleExercerExhalerExhorterExigenceExilerExisterExotiqueExpe/dierExplorerExposerExprimerExquisExtensifExtraireExulterFableFabuleuxFacetteFacileFactureFaiblirFalaiseFameuxFamilleFarceurFarfeluFarineFaroucheFascinerFatalFatigueFauconFautifFaveurFavoriFe/brileFe/conderFe/de/rerFe/linFemmeFe/murFendoirFe/odalFermerFe/roceFerveurFestivalFeuilleFeutreFe/vrierFiascoFicelerFictifFide-leFigureFilatureFiletageFilie-reFilleulFilmerFilouFiltrerFinancerFinirFioleFirmeFissureFixerFlairerFlammeFlasqueFlatteurFle/auFle-cheFleurFlexionFloconFloreFluctuerFluideFluvialFolieFonderieFongibleFontaineForcerForgeronFormulerFortuneFossileFoudreFouge-reFouillerFoulureFourmiFragileFraiseFranchirFrapperFrayeurFre/gateFreinerFrelonFre/mirFre/ne/sieFre-reFriableFrictionFrissonFrivoleFroidFromageFrontalFrotterFruitFugitifFuiteFureurFurieuxFurtifFusionFuturGagnerGalaxieGalerieGambaderGarantirGardienGarnirGarrigueGazelleGazonGe/antGe/latineGe/luleGendarmeGe/ne/ralGe/nieGenouGentilGe/ologieGe/ome-treGe/raniumGermeGestuelGeyserGibierGiclerGirafeGivreGlaceGlaiveGlisserGlobeGloireGlorieuxGolfeurGommeGonflerGorgeGorilleGoudronGouffreGoulotGoupilleGourmandGoutteGraduelGraffitiGraineGrandGrappinGratuitGravirGrenatGriffureGrillerGrimperGrognerGronderGrotteGroupeGrugerGrutierGruye-reGue/pardGuerrierGuideGuimauveGuitareGustatifGymnasteGyrostatHabitudeHachoirHalteHameauHangarHannetonHaricotHarmonieHarponHasardHe/liumHe/matomeHerbeHe/rissonHermineHe/ronHe/siterHeureuxHibernerHibouHilarantHistoireHiverHomardHommageHomoge-neHonneurHonorerHonteuxHordeHorizonHorlogeHormoneHorribleHouleuxHousseHublotHuileuxHumainHumbleHumideHumourHurlerHydromelHygie-neHymneHypnoseIdylleIgnorerIguaneIlliciteIllusionImageImbiberImiterImmenseImmobileImmuableImpactImpe/rialImplorerImposerImprimerImputerIncarnerIncendieIncidentInclinerIncoloreIndexerIndiceInductifIne/ditIneptieInexactInfiniInfligerInformerInfusionInge/rerInhalerInhiberInjecterInjureInnocentInoculerInonderInscrireInsecteInsigneInsoliteInspirerInstinctInsulterIntactIntenseIntimeIntrigueIntuitifInutileInvasionInventerInviterInvoquerIroniqueIrradierIrre/elIrriterIsolerIvoireIvresseJaguarJaillirJambeJanvierJardinJaugerJauneJavelotJetableJetonJeudiJeunesseJoindreJoncherJonglerJoueurJouissifJournalJovialJoyauJoyeuxJubilerJugementJuniorJuponJuristeJusticeJuteuxJuve/nileKayakKimonoKiosqueLabelLabialLabourerLace/rerLactoseLaguneLaineLaisserLaitierLambeauLamelleLampeLanceurLangageLanterneLapinLargeurLarmeLaurierLavaboLavoirLectureLe/galLe/gerLe/gumeLessiveLettreLevierLexiqueLe/zardLiasseLibe/rerLibreLicenceLicorneLie-geLie-vreLigatureLigoterLigueLimerLimiteLimonadeLimpideLine/aireLingotLionceauLiquideLisie-reListerLithiumLitigeLittoralLivreurLogiqueLointainLoisirLombricLoterieLouerLourdLoutreLouveLoyalLubieLucideLucratifLueurLugubreLuisantLumie-reLunaireLundiLuronLutterLuxueuxMachineMagasinMagentaMagiqueMaigreMaillonMaintienMairieMaisonMajorerMalaxerMale/ficeMalheurMaliceMalletteMammouthMandaterManiableManquantManteauManuelMarathonMarbreMarchandMardiMaritimeMarqueurMarronMartelerMascotteMassifMate/rielMatie-reMatraqueMaudireMaussadeMauveMaximalMe/chantMe/connuMe/dailleMe/decinMe/diterMe/duseMeilleurMe/langeMe/lodieMembreMe/moireMenacerMenerMenhirMensongeMentorMercrediMe/riteMerleMessagerMesureMe/talMe/te/oreMe/thodeMe/tierMeubleMiaulerMicrobeMietteMignonMigrerMilieuMillionMimiqueMinceMine/ralMinimalMinorerMinuteMiracleMiroiterMissileMixteMobileModerneMoelleuxMondialMoniteurMonnaieMonotoneMonstreMontagneMonumentMoqueurMorceauMorsureMortierMoteurMotifMoucheMoufleMoulinMoussonMoutonMouvantMultipleMunitionMurailleMure-neMurmureMuscleMuse/umMusicienMutationMuterMutuelMyriadeMyrtilleMyste-reMythiqueNageurNappeNarquoisNarrerNatationNationNatureNaufrageNautiqueNavireNe/buleuxNectarNe/fasteNe/gationNe/gligerNe/gocierNeigeNerveuxNettoyerNeuroneNeutronNeveuNicheNickelNitrateNiveauNobleNocifNocturneNoirceurNoisetteNomadeNombreuxNommerNormatifNotableNotifierNotoireNourrirNouveauNovateurNovembreNoviceNuageNuancerNuireNuisibleNume/roNuptialNuqueNutritifObe/irObjectifObligerObscurObserverObstacleObtenirObturerOccasionOccuperOce/anOctobreOctroyerOctuplerOculaireOdeurOdorantOffenserOfficierOffrirOgiveOiseauOisillonOlfactifOlivierOmbrageOmettreOnctueuxOndulerOne/reuxOniriqueOpaleOpaqueOpe/rerOpinionOpportunOpprimerOpterOptiqueOrageuxOrangeOrbiteOrdonnerOreilleOrganeOrgueilOrificeOrnementOrqueOrtieOscillerOsmoseOssatureOtarieOuraganOursonOutilOutragerOuvrageOvationOxydeOxyge-neOzonePaisiblePalacePalmare-sPalourdePalperPanachePandaPangolinPaniquerPanneauPanoramaPantalonPapayePapierPapoterPapyrusParadoxeParcelleParesseParfumerParlerParoleParrainParsemerPartagerParureParvenirPassionPaste-quePaternelPatiencePatronPavillonPavoiserPayerPaysagePeignePeintrePelagePe/licanPellePelousePeluchePendulePe/ne/trerPe/niblePensifPe/nuriePe/pitePe/plumPerdrixPerforerPe/riodePermuterPerplexePersilPertePeserPe/talePetitPe/trirPeuplePharaonPhobiePhoquePhotonPhrasePhysiquePianoPicturalPie-cePierrePieuvrePilotePinceauPipettePiquerPiroguePiscinePistonPivoterPixelPizzaPlacardPlafondPlaisirPlanerPlaquePlastronPlateauPleurerPlexusPliagePlombPlongerPluiePlumagePochettePoe/siePoe-tePointePoirierPoissonPoivrePolairePolicierPollenPolygonePommadePompierPonctuelPonde/rerPoneyPortiquePositionPosse/derPosturePotagerPoteauPotionPoucePoulainPoumonPourprePoussinPouvoirPrairiePratiquePre/cieuxPre/direPre/fixePre/ludePre/nomPre/sencePre/textePre/voirPrimitifPrincePrisonPriverProble-meProce/derProdigeProfondProgre-sProieProjeterProloguePromenerPropreProspe-reProte/gerProuesseProverbePrudencePruneauPsychosePublicPuceronPuiserPulpePulsarPunaisePunitifPupitrePurifierPuzzlePyramideQuasarQuerelleQuestionQuie/tudeQuitterQuotientRacineRaconterRadieuxRagondinRaideurRaisinRalentirRallongeRamasserRapideRasageRatisserRavagerRavinRayonnerRe/actifRe/agirRe/aliserRe/animerRecevoirRe/citerRe/clamerRe/colterRecruterReculerRecyclerRe/digerRedouterRefaireRe/flexeRe/formerRefrainRefugeRe/galienRe/gionRe/glageRe/gulierRe/ite/rerRejeterRejouerRelatifReleverReliefRemarqueReme-deRemiseRemonterRemplirRemuerRenardRenfortReniflerRenoncerRentrerRenvoiReplierReporterRepriseReptileRequinRe/serveRe/sineuxRe/soudreRespectResterRe/sultatRe/tablirRetenirRe/ticuleRetomberRetracerRe/unionRe/ussirRevancheRevivreRe/volteRe/vulsifRichesseRideauRieurRigideRigolerRincerRiposterRisibleRisqueRituelRivalRivie-reRocheuxRomanceRompreRonceRondinRoseauRosierRotatifRotorRotuleRougeRouilleRouleauRoutineRoyaumeRubanRubisRucheRuelleRugueuxRuinerRuisseauRuserRustiqueRythmeSablerSaboterSabreSacocheSafariSagesseSaisirSaladeSaliveSalonSaluerSamediSanctionSanglierSarcasmeSardineSaturerSaugrenuSaumonSauterSauvageSavantSavonnerScalpelScandaleSce/le/ratSce/narioSceptreSche/maScienceScinderScoreScrutinSculpterSe/anceSe/cableSe/cherSecouerSe/cre/terSe/datifSe/duireSeigneurSe/jourSe/lectifSemaineSemblerSemenceSe/minalSe/nateurSensibleSentenceSe/parerSe/quenceSereinSergentSe/rieuxSerrureSe/rumServiceSe/sameSe/virSevrageSextupleSide/ralSie-cleSie/gerSifflerSigleSignalSilenceSiliciumSimpleSince-reSinistreSiphonSiropSismiqueSituerSkierSocialSocleSodiumSoigneuxSoldatSoleilSolitudeSolubleSombreSommeilSomnolerSondeSongeurSonnetteSonoreSorcierSortirSosieSottiseSoucieuxSoudureSouffleSouleverSoupapeSourceSoutirerSouvenirSpacieuxSpatialSpe/cialSphe-reSpiralStableStationSternumStimulusStipulerStrictStudieuxStupeurStylisteSublimeSubstratSubtilSubvenirSucce-sSucreSuffixeSugge/rerSuiveurSulfateSuperbeSupplierSurfaceSuricateSurmenerSurpriseSursautSurvieSuspectSyllabeSymboleSyme/trieSynapseSyntaxeSyste-meTabacTablierTactileTaillerTalentTalismanTalonnerTambourTamiserTangibleTapisTaquinerTarderTarifTartineTasseTatamiTatouageTaupeTaureauTaxerTe/moinTemporelTenailleTendreTeneurTenirTensionTerminerTerneTerribleTe/tineTexteThe-meThe/orieThe/rapieThoraxTibiaTie-deTimideTirelireTiroirTissuTitaneTitreTituberTobogganTole/rantTomateToniqueTonneauToponymeTorcheTordreTornadeTorpilleTorrentTorseTortueTotemToucherTournageTousserToxineTractionTraficTragiqueTrahirTrainTrancherTravailTre-fleTremperTre/sorTreuilTriageTribunalTricoterTrilogieTriompheTriplerTriturerTrivialTromboneTroncTropicalTroupeauTuileTulipeTumulteTunnelTurbineTuteurTutoyerTuyauTympanTyphonTypiqueTyranUbuesqueUltimeUltrasonUnanimeUnifierUnionUniqueUnitaireUniversUraniumUrbainUrticantUsageUsineUsuelUsureUtileUtopieVacarmeVaccinVagabondVagueVaillantVaincreVaisseauValableValiseVallonValveVampireVanilleVapeurVarierVaseuxVassalVasteVecteurVedetteVe/ge/talVe/hiculeVeinardVe/loceVendrediVe/ne/rerVengerVenimeuxVentouseVerdureVe/rinVernirVerrouVerserVertuVestonVe/te/ranVe/tusteVexantVexerViaducViandeVictoireVidangeVide/oVignetteVigueurVilainVillageVinaigreViolonVipe-reVirementVirtuoseVirusVisageViseurVisionVisqueuxVisuelVitalVitesseViticoleVitrineVivaceVivipareVocationVoguerVoileVoisinVoitureVolailleVolcanVoltigerVolumeVoraceVortexVoterVouloirVoyageVoyelleWagonXe/nonYachtZe-breZe/nithZesteZoologie",d3=null,Ri={};function Si(A){return Pd.logger.checkNormalize(),(0,Gd.toUtf8String)(Array.prototype.filter.call((0,Gd.toUtf8Bytes)(A.normalize("NFD").toLowerCase()),function(a){return a>=65&&a<=90||a>=97&&a<=123}))}function gS(A){var a=[];return Array.prototype.forEach.call((0,Gd.toUtf8Bytes)(A),function(e){e===47?(a.push(204),a.push(129)):e===45?(a.push(204),a.push(128)):a.push(e)}),(0,Gd.toUtf8String)(a)}function wi(A){if(d3==null&&(d3=CS.replace(/([A-Z])/g," $1").toLowerCase().substring(1).split(" ").map(function(a){return gS(a)}),d3.forEach(function(a,e){Ri[Si(a)]=e}),Pd.Wordlist.check(A)!=="0x51deb7ae009149dc61a6bd18a918eb7ac78d2775726c68e598b92d002519b045"))throw d3=null,new Error("BIP39 Wordlist for fr (French) FAILED")}var IS=function(A){hS(a,A);function a(){return A.call(this,"fr")||this}return a.prototype.getWord=function(e){return wi(this),d3[e]},a.prototype.getWordIndex=function(e){return wi(this),Ri[Si(e)]},a}(Pd.Wordlist),vi=new IS;k4.langFr=vi;Pd.Wordlist.register(vi)});var Ui=U(Q4=>{"use strict";var FS=Q4&&Q4.__extends||function(){var A=function(a,e){return A=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(f,c){f.__proto__=c}||function(f,c){for(var d in c)Object.prototype.hasOwnProperty.call(c,d)&&(f[d]=c[d])},A(a,e)};return function(a,e){if(typeof e!="function"&&e!==null)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");A(a,e);function f(){this.constructor=a}a.prototype=e===null?Object.create(e):(f.prototype=e.prototype,new f)}}();Object.defineProperty(Q4,"__esModule",{value:!0});Q4.langJa=void 0;var DS=Xe(),t2=U0(),Vd=tA(),mS=["AQRASRAGBAGUAIRAHBAghAURAdBAdcAnoAMEAFBAFCBKFBQRBSFBCXBCDBCHBGFBEQBpBBpQBIkBHNBeOBgFBVCBhBBhNBmOBmRBiHBiFBUFBZDBvFBsXBkFBlcBjYBwDBMBBTBBTRBWBBWXXaQXaRXQWXSRXCFXYBXpHXOQXHRXhRXuRXmXXbRXlXXwDXTRXrCXWQXWGaBWaKcaYgasFadQalmaMBacAKaRKKBKKXKKjKQRKDRKCYKCRKIDKeVKHcKlXKjHKrYNAHNBWNaRNKcNIBNIONmXNsXNdXNnBNMBNRBNrXNWDNWMNFOQABQAHQBrQXBQXFQaRQKXQKDQKOQKFQNBQNDQQgQCXQCDQGBQGDQGdQYXQpBQpQQpHQLXQHuQgBQhBQhCQuFQmXQiDQUFQZDQsFQdRQkHQbRQlOQlmQPDQjDQwXQMBQMDQcFQTBQTHQrDDXQDNFDGBDGQDGRDpFDhFDmXDZXDbRDMYDRdDTRDrXSAhSBCSBrSGQSEQSHBSVRShYShkSyQSuFSiBSdcSoESocSlmSMBSFBSFKSFNSFdSFcCByCaRCKcCSBCSRCCrCGbCEHCYXCpBCpQCIBCIHCeNCgBCgFCVECVcCmkCmwCZXCZFCdRClOClmClFCjDCjdCnXCwBCwXCcRCFQCFjGXhGNhGDEGDMGCDGCHGIFGgBGVXGVEGVRGmXGsXGdYGoSGbRGnXGwXGwDGWRGFNGFLGFOGFdGFkEABEBDEBFEXOEaBEKSENBENDEYXEIgEIkEgBEgQEgHEhFEudEuFEiBEiHEiFEZDEvBEsXEsFEdXEdREkFEbBEbRElFEPCEfkEFNYAEYAhYBNYQdYDXYSRYCEYYoYgQYgRYuRYmCYZTYdBYbEYlXYjQYRbYWRpKXpQopQnpSFpCXpIBpISphNpdBpdRpbRpcZpFBpFNpFDpFopFrLADLBuLXQLXcLaFLCXLEhLpBLpFLHXLeVLhILdHLdRLoDLbRLrXIABIBQIBCIBsIBoIBMIBRIXaIaRIKYIKRINBINuICDIGBIIDIIkIgRIxFIyQIiHIdRIbYIbRIlHIwRIMYIcRIRVITRIFBIFNIFQOABOAFOBQOaFONBONMOQFOSFOCDOGBOEQOpBOLXOIBOIFOgQOgFOyQOycOmXOsXOdIOkHOMEOMkOWWHBNHXNHXWHNXHDuHDRHSuHSRHHoHhkHmRHdRHkQHlcHlRHwBHWcgAEgAggAkgBNgBQgBEgXOgYcgLXgHjgyQgiBgsFgdagMYgWSgFQgFEVBTVXEVKBVKNVKDVKYVKRVNBVNYVDBVDxVSBVSRVCjVGNVLXVIFVhBVhcVsXVdRVbRVlRhBYhKYhDYhGShxWhmNhdahdkhbRhjohMXhTRxAXxXSxKBxNBxEQxeNxeQxhXxsFxdbxlHxjcxFBxFNxFQxFOxFoyNYyYoybcyMYuBQuBRuBruDMuCouHBudQukkuoBulVuMXuFEmCYmCRmpRmeDmiMmjdmTFmFQiADiBOiaRiKRiNBiNRiSFiGkiGFiERipRiLFiIFihYibHijBijEiMXiWBiFBiFCUBQUXFUaRUNDUNcUNRUNFUDBUSHUCDUGBUGFUEqULNULoUIRUeEUeYUgBUhFUuRUiFUsXUdFUkHUbBUjSUjYUwXUMDUcHURdUTBUrBUrXUrQZAFZXZZaRZKFZNBZQFZCXZGBZYdZpBZLDZIFZHXZHNZeQZVRZVFZmXZiBZvFZdFZkFZbHZbFZwXZcCZcRZRBvBQvBGvBLvBWvCovMYsAFsBDsaRsKFsNFsDrsSHsSFsCXsCRsEBsEHsEfspBsLBsLDsIgsIRseGsbRsFBsFQsFSdNBdSRdCVdGHdYDdHcdVbdySduDdsXdlRdwXdWYdWcdWRkBMkXOkaRkNIkNFkSFkCFkYBkpRkeNkgBkhVkmXksFklVkMBkWDkFNoBNoaQoaFoNBoNXoNaoNEoSRoEroYXoYCoYbopRopFomXojkowXorFbBEbEIbdBbjYlaRlDElMXlFDjKjjSRjGBjYBjYkjpRjLXjIBjOFjeVjbRjwBnXQnSHnpFnLXnINnMBnTRwXBwXNwXYwNFwQFwSBwGFwLXwLDweNwgBwuHwjDwnXMBXMpFMIBMeNMTHcaQcNBcDHcSFcCXcpBcLXcLDcgFcuFcnXcwXccDcTQcrFTQErXNrCHrpFrgFrbFrTHrFcWNYWNbWEHWMXWTR","ABGHABIJAEAVAYJQALZJAIaRAHNXAHdcAHbRAZJMAZJRAZTRAdVJAklmAbcNAjdRAMnRAMWYAWpRAWgRAFgBAFhBAFdcBNJBBNJDBQKBBQhcBQlmBDEJBYJkBYJTBpNBBpJFBIJBBIJDBIcABOKXBOEJBOVJBOiJBOZJBepBBeLXBeIFBegBBgGJBVJXBuocBiJRBUJQBlXVBlITBwNFBMYVBcqXBTlmBWNFBWiJBWnRBFGHBFwXXKGJXNJBXNZJXDTTXSHSXSVRXSlHXCJDXGQJXEhXXYQJXYbRXOfXXeNcXVJFXhQJXhEJXdTRXjdXXMhBXcQTXRGBXTEBXTnQXFCXXFOFXFgFaBaFaBNJaBCJaBpBaBwXaNJKaNJDaQIBaDpRaEPDaHMFamDJalEJaMZJaFaFaFNBaFQJaFLDaFVHKBCYKBEBKBHDKXaFKXGdKXEJKXpHKXIBKXZDKXwXKKwLKNacKNYJKNJoKNWcKDGdKDTRKChXKGaRKGhBKGbRKEBTKEaRKEPTKLMDKLWRKOHDKVJcKdBcKlIBKlOPKFSBKFEPKFpFNBNJNJBQNBGHNBEPNBHXNBgFNBVXNBZDNBsXNBwXNNaRNNJDNNJENNJkNDCJNDVDNGJRNJiDNZJNNsCJNJFNNFSBNFCXNFEPNFLXNFIFQJBFQCaRQJEQQLJDQLJFQIaRQOqXQHaFQHHQQVJXQVJDQhNJQmEIQZJFQsJXQJrFQWbRDJABDBYJDXNFDXCXDXLXDXZDDXsJDQqXDSJFDJCXDEPkDEqXDYmQDpSJDOCkDOGQDHEIDVJDDuDuDWEBDJFgSBNDSBSFSBGHSBIBSBTQSKVYSJQNSJQiSJCXSEqXSJYVSIiJSOMYSHAHSHaQSeCFSepQSegBSHdHSHrFShSJSJuHSJUFSkNRSrSrSWEBSFaHSJFQSFCXSFGDSFYXSFODSFgBSFVXSFhBSFxFSFkFSFbBSFMFCADdCJXBCXaFCXKFCXNFCXCXCXGBCXEJCXYBCXLDCXIBCXOPCXHXCXgBCXhBCXiBCXlDCXcHCJNBCJNFCDCJCDGBCDVXCDhBCDiDCDJdCCmNCpJFCIaRCOqXCHCHCHZJCViJCuCuCmddCJiFCdNBCdHhClEJCnUJCreSCWlgCWTRCFBFCFNBCFYBCFVFCFhFCFdSCFTBCFWDGBNBGBQFGJBCGBEqGBpBGBgQGNBEGNJYGNkOGNJRGDUFGJpQGHaBGJeNGJeEGVBlGVKjGiJDGvJHGsVJGkEBGMIJGWjNGFBFGFCXGFGBGFYXGFpBGFMFEASJEAWpEJNFECJVEIXSEIQJEOqXEOcFEeNcEHEJEHlFEJgFEhlmEmDJEmZJEiMBEUqXEoSREPBFEPXFEPKFEPSFEPEFEPpFEPLXEPIBEJPdEPcFEPTBEJnXEqlHEMpREFCXEFODEFcFYASJYJAFYBaBYBVXYXpFYDhBYCJBYJGFYYbRYeNcYJeVYiIJYZJcYvJgYvJRYJsXYsJFYMYMYreVpBNHpBEJpBwXpQxFpYEJpeNDpJeDpeSFpeCHpHUJpHbBpHcHpmUJpiiJpUJrpsJuplITpFaBpFQqpFGBpFEfpFYBpFpBpFLJpFIDpFgBpFVXpFyQpFuFpFlFpFjDpFnXpFwXpJFMpFTBLXCJLXEFLXhFLXUJLXbFLalmLNJBLSJQLCLCLGJBLLDJLHaFLeNFLeSHLeCXLepFLhaRLZsJLsJDLsJrLocaLlLlLMdbLFNBLFSBLFEHLFkFIBBFIBXFIBaQIBKXIBSFIBpHIBLXIBgBIBhBIBuHIBmXIBiFIBZXIBvFIBbFIBjQIBwXIBWFIKTRIQUJIDGFICjQIYSRIINXIJeCIVaRImEkIZJFIvJRIsJXIdCJIJoRIbBQIjYBIcqXITFVIreVIFKFIFSFIFCJIFGFIFLDIFIBIJFOIFgBIFVXIJFhIFxFIFmXIFdHIFbBIJFrIJFWOBGBOQfXOOKjOUqXOfXBOqXEOcqXORVJOFIBOFlDHBIOHXiFHNTRHCJXHIaRHHJDHHEJHVbRHZJYHbIBHRsJHRkDHWlmgBKFgBSBgBCDgBGHgBpBgBIBgBVJgBuBgBvFgKDTgQVXgDUJgGSJgOqXgmUMgZIJgTUJgWIEgFBFgFNBgFDJgFSFgFGBgFYXgJFOgFgQgFVXgFhBgFbHgJFWVJABVQKcVDgFVOfXVeDFVhaRVmGdViJYVMaRVFNHhBNDhBCXhBEqhBpFhBLXhNJBhSJRheVXhhKEhxlmhZIJhdBQhkIJhbMNhMUJhMZJxNJgxQUJxDEkxDdFxSJRxplmxeSBxeCXxeGFxeYXxepQxegBxWVcxFEQxFLXxFIBxFgBxFxDxFZtxFdcxFbBxFwXyDJXyDlcuASJuDJpuDIBuCpJuGSJuIJFueEFuZIJusJXudWEuoIBuWGJuFBcuFKEuFNFuFQFuFDJuFGJuFVJuFUtuFdHuFTBmBYJmNJYmQhkmLJDmLJomIdXmiJYmvJRmsJRmklmmMBymMuCmclmmcnQiJABiJBNiJBDiBSFiBCJiBEFiBYBiBpFiBLXiBTHiJNciDEfiCZJiECJiJEqiOkHiHKFieNDiHJQieQcieDHieSFieCXieGFieEFieIHiegFihUJixNoioNXiFaBiFKFiFNDiFEPiFYXitFOitFHiFgBiFVEiFmXiFitiFbBiFMFiFrFUCXQUIoQUIJcUHQJUeCEUHwXUUJDUUqXUdWcUcqXUrnQUFNDUFSHUFCFUFEfUFLXUtFOZBXOZXSBZXpFZXVXZEQJZEJkZpDJZOqXZeNHZeCDZUqXZFBQZFEHZFLXvBAFvBKFvBCXvBEPvBpHvBIDvBgFvBuHvQNJvFNFvFGBvFIBvJFcsXCDsXLXsXsXsXlFsXcHsQqXsJQFsEqXseIFsFEHsFjDdBxOdNpRdNJRdEJbdpJRdhZJdnSJdrjNdFNJdFQHdFhNkNJDkYaRkHNRkHSRkVbRkuMRkjSJkcqDoSJFoEiJoYZJoOfXohEBoMGQocqXbBAFbBXFbBaFbBNDbBGBbBLXbBTBbBWDbGJYbIJHbFQqbFpQlDgQlOrFlVJRjGEBjZJRnXvJnXbBnEfHnOPDngJRnxfXnUJWwXEJwNpJwDpBwEfXwrEBMDCJMDGHMDIJMLJDcQGDcQpHcqXccqNFcqCXcFCJRBSBRBGBRBEJRBpQTBNFTBQJTBpBTBVXTFABTFSBTFCFTFGBTFMDrXCJrXLDrDNJrEfHrFQJrFitWNjdWNTR","AKLJMANOPFASNJIAEJWXAYJNRAIIbRAIcdaAeEfDAgidRAdjNYAMYEJAMIbRAFNJBAFpJFBBIJYBDZJFBSiJhBGdEBBEJfXBEJqXBEJWRBpaUJBLXrXBIYJMBOcfXBeEfFBestXBjNJRBcDJOBFEqXXNvJRXDMBhXCJNYXOAWpXONJWXHDEBXeIaRXhYJDXZJSJXMDJOXcASJXFVJXaBQqXaBZJFasXdQaFSJQaFEfXaFpJHaFOqXKBNSRKXvJBKQJhXKEJQJKEJGFKINJBKIJjNKgJNSKVElmKVhEBKiJGFKlBgJKjnUJKwsJYKMFIJKFNJDKFIJFKFOfXNJBSFNJBCXNBpJFNJBvQNJBMBNJLJXNJOqXNJeCXNJeGFNdsJCNbTKFNwXUJQNFEPQDiJcQDMSJQSFpBQGMQJQJeOcQyCJEQUJEBQJFBrQFEJqDXDJFDJXpBDJXIMDGiJhDIJGRDJeYcDHrDJDVXgFDkAWpDkIgRDjDEqDMvJRDJFNFDJFIBSKclmSJQOFSJQVHSJQjDSJGJBSJGJFSECJoSHEJqSJHTBSJVJDSViJYSZJNBSJsJDSFSJFSFEfXSJFLXCBUJVCJXSBCJXpBCXVJXCJXsXCJXdFCJNJHCLIJgCHiJFCVNJMChCJhCUHEJCsJTRCJdYcCoQJCCFEfXCFIJgCFUJxCFstFGJBaQGJBIDGQJqXGYJNRGJHKFGeQqDGHEJFGJeLXGHIiJGHdBlGUJEBGkIJTGFQPDGJFEqEAGegEJIJBEJVJXEhQJTEiJNcEJZJFEJoEqEjDEqEPDsXEPGJBEPOqXEPeQFEfDiDEJfEFEfepQEfMiJEqXNBEqDIDEqeSFEqVJXEMvJRYXNJDYXEJHYKVJcYYJEBYJeEcYJUqXYFpJFYFstXpAZJMpBSJFpNBNFpeQPDpHLJDpHIJFpHgJFpeitFpHZJFpJFADpFSJFpJFCJpFOqXpFitBpJFZJLXIJFLIJgRLVNJWLVHJMLwNpJLFGJBLFLJDLFOqXLJFUJIBDJXIBGJBIJBYQIJBIBIBOqXIBcqDIEGJFILNJTIIJEBIOiJhIJeNBIJeIBIhiJIIWoTRIJFAHIJFpBIJFuHIFUtFIJFTHOSBYJOEcqXOHEJqOvBpFOkVJrObBVJOncqDOcNJkHhNJRHuHJuHdMhBgBUqXgBsJXgONJBgHNJDgHHJQgJeitgHsJXgJyNagyDJBgZJDrgsVJQgkEJNgkjSJgJFAHgFCJDgFZtMVJXNFVXQfXVJXDJVXoQJVQVJQVDEfXVDvJHVEqNFVeQfXVHpJFVHxfXVVJSRVVmaRVlIJOhCXVJhHjYkhxCJVhWVUJhWiJcxBNJIxeEqDxfXBFxcFEPxFSJFxFYJXyBDQJydaUJyFOPDuYCJYuLvJRuHLJXuZJLDuFOPDuFZJHuFcqXmKHJdmCQJcmOsVJiJAGFitLCFieOfXiestXiZJMEikNJQirXzFiFQqXiFIJFiFZJFiFvtFUHpJFUteIcUteOcUVCJkUhdHcUbEJEUJqXQUMNJhURjYkUFitFZDGJHZJIxDZJVJXZJFDJZJFpQvBNJBvBSJFvJxBrseQqDsVFVJdFLJDkEJNBkmNJYkFLJDoQJOPoGsJRoEAHBoEJfFbBQqDbBZJHbFVJXlFIJBjYIrXjeitcjjCEBjWMNBwXQfXwXOaFwDsJXwCJTRwrCZJMDNJQcDDJFcqDOPRYiJFTBsJXTQIJBTFEfXTFLJDrXEJFrEJXMrFZJFWEJdEWYTlm","ABCDEFACNJTRAMBDJdAcNJVXBLNJEBXSIdWRXErNJkXYDJMBXZJCJaXMNJaYKKVJKcKDEJqXKDcNJhKVJrNYKbgJVXKFVJSBNBYBwDNJeQfXNJeEqXNhGJWENJFiJRQlIJbEQJfXxDQqXcfXQFNDEJQFwXUJDYcnUJDJIBgQDIUJTRDJFEqDSJQSJFSJQIJFSOPeZtSJFZJHCJXQfXCTDEqFGJBSJFGJBOfXGJBcqXGJHNJDGJRLiJEJfXEqEJFEJPEFpBEJYJBZJFYBwXUJYiJMEBYJZJyTYTONJXpQMFXFpeGIDdpJFstXpJFcPDLBVSJRLHQJqXLJFZJFIJBNJDIJBUqXIBkFDJIJEJPTIYJGWRIJeQPDIJeEfHIJFsJXOqGDSFHXEJqXgJCsJCgGQJqXgdQYJEgFMFNBgJFcqDVJwXUJVJFZJchIgJCCxOEJqXxOwXUJyDJBVRuscisciJBiJBieUtqXiJFDJkiFsJXQUGEZJcUJFsJXZtXIrXZDZJDrZJFNJDZJFstXvJFQqXvJFCJEsJXQJqkhkNGBbDJdTRbYJMEBlDwXUJMEFiJFcfXNJDRcNJWMTBLJXC","BraFUtHBFSJFdbNBLJXVJQoYJNEBSJBEJfHSJHwXUJCJdAZJMGjaFVJXEJPNJBlEJfFiJFpFbFEJqIJBVJCrIBdHiJhOPFChvJVJZJNJWxGFNIFLueIBQJqUHEJfUFstOZJDrlXEASJRlXVJXSFwVJNJWD","QJEJNNJDQJEJIBSFQJEJxegBQJEJfHEPSJBmXEJFSJCDEJqXLXNJFQqXIcQsFNJFIFEJqXUJgFsJXIJBUJEJfHNFvJxEqXNJnXUJFQqD","IJBEJqXZJ"],xS="~~AzB~X~a~KN~Q~D~S~C~G~E~Y~p~L~I~O~eH~g~V~hxyumi~~U~~Z~~v~~s~~dkoblPjfnqwMcRTr~W~~~F~~~~~Jt",Pa=null;function Qi(A){return(0,DS.hexlify)((0,t2.toUtf8Bytes)(A))}var pS="0xe3818de38284e3818f",TS="0xe3818de38283e3818f";function yi(A){if(Pa!==null)return;Pa=[];var a={};a[(0,t2.toUtf8String)([227,130,154])]=!1,a[(0,t2.toUtf8String)([227,130,153])]=!1,a[(0,t2.toUtf8String)([227,130,133])]=(0,t2.toUtf8String)([227,130,134]),a[(0,t2.toUtf8String)([227,129,163])]=(0,t2.toUtf8String)([227,129,164]),a[(0,t2.toUtf8String)([227,130,131])]=(0,t2.toUtf8String)([227,130,132]),a[(0,t2.toUtf8String)([227,130,135])]=(0,t2.toUtf8String)([227,130,136]);function e(B){for(var x="",p=0;px?1:0}for(var c=3;c<=9;c++)for(var d=mS[c-3],b=0;b{"use strict";var RS=y4&&y4.__extends||function(){var A=function(a,e){return A=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(f,c){f.__proto__=c}||function(f,c){for(var d in c)Object.prototype.hasOwnProperty.call(c,d)&&(f[d]=c[d])},A(a,e)};return function(a,e){if(typeof e!="function"&&e!==null)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");A(a,e);function f(){this.constructor=a}a.prototype=e===null?Object.create(e):(f.prototype=e.prototype,new f)}}();Object.defineProperty(y4,"__esModule",{value:!0});y4.langKo=void 0;var SS=U0(),r7=tA(),vS=["OYAa","ATAZoATBl3ATCTrATCl8ATDloATGg3ATHT8ATJT8ATJl3ATLlvATLn4ATMT8ATMX8ATMboATMgoAToLbAToMTATrHgATvHnAT3AnAT3JbAT3MTAT8DbAT8JTAT8LmAT8MYAT8MbAT#LnAUHT8AUHZvAUJXrAUJX8AULnrAXJnvAXLUoAXLgvAXMn6AXRg3AXrMbAX3JTAX3QbAYLn3AZLgvAZrSUAZvAcAZ8AaAZ8AbAZ8AnAZ8HnAZ8LgAZ8MYAZ8MgAZ8OnAaAboAaDTrAaFTrAaJTrAaJboAaLVoAaMXvAaOl8AaSeoAbAUoAbAg8AbAl4AbGnrAbMT8AbMXrAbMn4AbQb8AbSV8AbvRlAb8AUAb8AnAb8HgAb8JTAb8NTAb8RbAcGboAcLnvAcMT8AcMX8AcSToAcrAaAcrFnAc8AbAc8MgAfGgrAfHboAfJnvAfLV8AfLkoAfMT8AfMnoAfQb8AfScrAfSgrAgAZ8AgFl3AgGX8AgHZvAgHgrAgJXoAgJX8AgJboAgLZoAgLn4AgOX8AgoATAgoAnAgoCUAgoJgAgoLXAgoMYAgoSeAgrDUAgrJTAhrFnAhrLjAhrQgAjAgoAjJnrAkMX8AkOnoAlCTvAlCV8AlClvAlFg4AlFl6AlFn3AloSnAlrAXAlrAfAlrFUAlrFbAlrGgAlrOXAlvKnAlvMTAl3AbAl3MnAnATrAnAcrAnCZ3AnCl8AnDg8AnFboAnFl3AnHX4AnHbrAnHgrAnIl3AnJgvAnLXoAnLX4AnLbrAnLgrAnLhrAnMXoAnMgrAnOn3AnSbrAnSeoAnvLnAn3OnCTGgvCTSlvCTvAUCTvKnCTvNTCT3CZCT3GUCT3MTCT8HnCUCZrCULf8CULnvCU3HnCU3JUCY6NUCbDb8CbFZoCbLnrCboOTCboScCbrFnCbvLnCb8AgCb8HgCb$LnCkLfoClBn3CloDUDTHT8DTLl3DTSU8DTrAaDTrLXDTrLjDTrOYDTrOgDTvFXDTvFnDT3HUDT3LfDUCT9DUDT4DUFVoDUFV8DUFkoDUGgrDUJnrDULl8DUMT8DUMXrDUMX4DUMg8DUOUoDUOgvDUOg8DUSToDUSZ8DbDXoDbDgoDbGT8DbJn3DbLg3DbLn4DbMXrDbMg8DbOToDboJXGTClvGTDT8GTFZrGTLVoGTLlvGTLl3GTMg8GTOTvGTSlrGToCUGTrDgGTrJYGTrScGTtLnGTvAnGTvQgGUCZrGUDTvGUFZoGUHXrGULnvGUMT8GUoMgGXoLnGXrMXGXrMnGXvFnGYLnvGZOnvGZvOnGZ8LaGZ8LmGbAl3GbDYvGbDlrGbHX3GbJl4GbLV8GbLn3GbMn4GboJTGboRfGbvFUGb3GUGb4JnGgDX3GgFl$GgJlrGgLX6GgLZoGgLf8GgOXoGgrAgGgrJXGgrMYGgrScGgvATGgvOYGnAgoGnJgvGnLZoGnLg3GnLnrGnQn8GnSbrGnrMgHTClvHTDToHTFT3HTQT8HToJTHToJgHTrDUHTrMnHTvFYHTvRfHT8MnHT8SUHUAZ8HUBb4HUDTvHUoMYHXFl6HXJX6HXQlrHXrAUHXrMnHXrSbHXvFYHXvKXHX3LjHX3MeHYvQlHZrScHZvDbHbAcrHbFT3HbFl3HbJT8HbLTrHbMT8HbMXrHbMbrHbQb8HbSX3HboDbHboJTHbrFUHbrHgHbrJTHb8JTHb8MnHb8QgHgAlrHgDT3HgGgrHgHgrHgJTrHgJT8HgLX@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!Ln$CTGXMnCToLZ4CTrHT8CT3JTrCT3RZrCT#GTvCU6GgvCU8Db8CU8GZrCU8HT8CboLl3CbrGgrCbrMU8Cb8DT3Cb8GnrCb8LX4Cb8MT8Cb8ObrCgrGgvCgrKX4Cl8FZoDTrAbvDTrDboDTrGT6DTrJgrDTrMX3DTrRZrDTrRg8DTvAVvDTvFZoDT3DT8DT3Ln3DT4HZrDT4MT8DT8AlrDT8MT8DUAkGbDUDbJnDYLnQlDbDUOYDbMTAnDbMXSnDboAT3DboFn4DboLnvDj6JTrGTCgFTGTGgFnGTJTMnGTLnPlGToJT8GTrCT3GTrLVoGTrLnvGTrMX3GTrMboGTvKl3GZClFnGZrDT3GZ8DTrGZ8FZ8GZ8MXvGZ8On8GZ8ST3GbCnQXGbMbFnGboFboGboJg3GboMXoGb3JTvGb3JboGb3Mn6Gb3Qb8GgDXLjGgMnAUGgrDloGgrHX4GgrSToGgvAXrGgvAZvGgvFbrGgvLl3GgvMnvGnDnLXGnrATrGnrMboGnuLl3HTATMnHTAgCnHTCTCTHTrGTvHTrHTvHTrJX8HTrLl8HTrMT8HTrMgoHTrOTrHTuOn3HTvAZrHTvDTvHTvGboHTvJU8HTvLl3HTvMXrHTvQb4HT4GT6HT4JT8HT4Jb#HT8Al3HT8GZrHT8GgrHT8HX4HT8Jb8HT8JnoHT8LTrHT8LgvHT8SToHT8SV8HUoJUoHUoJX8HUoLnrHXrLZoHXvAl3HX3LnrHX4FkvHX4LhrHX4MXoHX4OnoHZrAZ8HZrDb8HZrGZ8HZrJnrHZvGZ8HZvLnvHZ8JnvHZ8LhrHbCXJlHbMTAnHboJl4HbpLl3HbrJX8HbrLnrHbrMnvHbvRYrHgoSTrHgrFV8HgrGZ8HgrJXoHgrRnvHgvBb!HgvGTrHgvHX4HgvHn!HgvLTrHgvSU8HnDnLbHnFbJbHnvDn8Hn6GgvHn!BTvJTCTLnJTQgFnJTrAnvJTrLX4JTrOUoJTvFn3JTvLnrJTvNToJT3AgoJT3Jn4JT3LhvJT3ObrJT8AcrJT8Al3JT8JT8JT8JnoJT8LX4JT8LnrJT8MX3JT8Rg3JT8Sc8JUoBTvJU8AToJU8GZ8JU8GgvJU8JTrJU8JXrJU8JnrJU8LnvJU8ScvJXHnJlJXrGgvJXrJU8JXrLhrJXrMT8JXrMXrJXrQUoJXvCTvJXvGZ8JXvGgrJXvQT8JX8Ab8JX8DT8JX8GZ8JX8HZvJX8LnrJX8MT8JX8MXoJX8MnvJX8ST3JYGnCTJbAkGbJbCTAnJbLTAcJboDT3JboLb6JbrAnvJbrCn3JbrDl8JbrGboJbrIZoJbrJnvJbrMnvJbrQb4Jb8RZrJeAbAnJgJnFbJgScAnJgrATrJgvHZ8JgvMn4JlJlFbJlLiQXJlLjOnJlRbOlJlvNXoJlvRl3Jl4AcrJl8AUoJl8MnrJnFnMlJnHgGbJnoDT8JnoFV8JnoGgvJnoIT8JnoQToJnoRg3JnrCZ3JnrGgrJnrHTvJnrLf8JnrOX8JnvAT3JnvFZoJnvGT8JnvJl4JnvMT8JnvMX8JnvOXrJnvPX6JnvSX3JnvSZrJn3MT8Jn3MX8Jn3RTrLTATKnLTJnLTLTMXKnLTRTQlLToGb8LTrAZ8LTrCZ8LTrDb8LTrHT8LT3PX6LT4FZoLT$CTvLT$GgrLUvHX3LVoATrLVoAgoLVoJboLVoMX3LVoRg3LV8CZ3LV8FZoLV8GTvLXrDXoLXrFbrLXvAgvLXvFlrLXvLl3LXvRn6LX4Mb8LX8GT8LYCXMnLYrMnrLZoSTvLZrAZvLZrAloLZrFToLZrJXvLZrJboLZrJl4LZrLnrLZrMT8LZrOgvLZrRnvLZrST4LZvMX8LZvSlvLZ8AgoLZ8CT3LZ8JT8LZ8LV8LZ8LZoLZ8Lg8LZ8SV8LZ8SbrLZ$HT8LZ$Mn4La6CTvLbFbMnLbRYFTLbSnFZLboJT8LbrAT9LbrGb3LbrQb8LcrJX8LcrMXrLerHTvLerJbrLerNboLgrDb8LgrGZ8LgrHTrLgrMXrLgrSU8LgvJTrLgvLl3Lg6Ll3LhrLnrLhrMT8LhvAl4LiLnQXLkoAgrLkoJT8LkoJn4LlrSU8Ll3FZoLl3HTrLl3JX8Ll3JnoLl3LToLmLeFbLnDUFbLnLVAnLnrATrLnrAZoLnrAb8LnrAlrLnrGgvLnrJU8LnrLZrLnrLhrLnrMb8LnrOXrLnrSZ8LnvAb4LnvDTrLnvDl8LnvHTrLnvHbrLnvJT8LnvJU8LnvJbrLnvLhvLnvMX8LnvMb8LnvNnoLnvSU8Ln3Al3Ln4FZoLn4GT6Ln4JgvLn4LhrLn4MT8Ln4SToMToCZrMToJX8MToLX4MToLf8MToRg3MTrEloMTvGb6MT3BTrMT3Lb6MT8AcrMT8AgrMT8GZrMT8JnoMT8LnrMT8MX3MUOUAnMXAbFnMXoAloMXoJX8MXoLf8MXoLl8MXrAb8MXrDTvMXrGT8MXrGgrMXrHTrMXrLf8MXrMU8MXrOXvMXrQb8MXvGT8MXvHTrMXvLVoMX3AX3MX3Jn3MX3LhrMX3MX3MX4AlrMX4OboMX8GTvMX8GZrMX8GgrMX8JT8MX8JX8MX8LhrMX8MT8MYDUFbMYMgDbMbGnFfMbvLX4MbvLl3Mb8Mb8Mb8ST4MgGXCnMg8ATrMg8AgoMg8CZrMg8DTrMg8DboMg8HTrMg8JgrMg8LT8MloJXoMl8AhrMl8JT8MnLgAUMnoJXrMnoLX4MnoLhrMnoMT8MnrAl4MnrDb8MnrOTvMnrOgvMnrQb8MnrSU8MnvGgrMnvHZ8Mn3MToMn4DTrMn4LTrMn4Mg8NnBXAnOTFTFnOToAToOTrGgvOTrJX8OT3JXoOT6MTrOT8GgrOT8HTpOT8MToOUoHT8OUoJT8OUoLn3OXrAgoOXrDg8OXrMT8OXvSToOX6CTvOX8CZrOX8OgrOb6HgvOb8AToOb8MT8OcvLZ8OgvAlrOgvHTvOgvJTrOgvJnrOgvLZrOgvLn4OgvMT8OgvRTrOg8AZoOg8DbvOnrOXoOnvJn4OnvLhvOnvRTrOn3GgoOn3JnvOn6JbvOn8OTrPTGYFTPbBnFnPbGnDnPgDYQTPlrAnvPlrETvPlrLnvPlrMXvPlvFX4QTMTAnQTrJU8QYCnJlQYJlQlQbGTQbQb8JnrQb8LZoQb8LnvQb8MT8Qb8Ml8Qb8ST4QloAl4QloHZvQloJX8QloMn8QnJZOlRTrAZvRTrDTrRTvJn4RTvLhvRT4Jb8RZrAZrRZ8AkrRZ8JU8RZ8LV8RZ8LnvRbJlQXRg3GboRg3MnvRg8AZ8Rg8JboRg8Jl4RnLTCbRnvFl3RnvQb8SToAl4SToCZrSToFZoSToHXrSToJU8SToJgvSToJl4SToLhrSToMX3STrAlvSTrCT9STrCgrSTrGgrSTrHXrSTrHboSTrJnoSTrNboSTvLnrST4AZoST8Ab8ST8JT8SUoJn3SU6HZ#SU6JTvSU8Db8SU8HboSU8LgrSV8JT8SZrAcrSZrAl3SZrJT8SZrJnvSZrMT8SZvLUoSZ4FZoSZ8JnoSZ8RZrScoLnrScoMT8ScoMX8ScrAT4ScrAZ8ScrLZ8ScrLkvScvDb8ScvLf8ScvNToSgrFZrShvKnrSloHUoSloLnrSlrMXoSl8HgrSmrJUoSn3BX6","ATFlOn3ATLgrDYAT4MTAnAT8LTMnAYJnRTrAbGgJnrAbLV8LnAbvNTAnAeFbLg3AgOYMXoAlQbFboAnDboAfAnJgoJTBToDgAnBUJbAl3BboDUAnCTDlvLnCTFTrSnCYoQTLnDTwAbAnDUDTrSnDUHgHgrDX8LXFnDbJXAcrETvLTLnGTFTQbrGTMnGToGT3DUFbGUJlPX3GbQg8LnGboJbFnGb3GgAYGgAg8ScGgMbAXrGgvAbAnGnJTLnvGnvATFgHTDT6ATHTrDlJnHYLnMn8HZrSbJTHZ8LTFnHbFTJUoHgSeMT8HgrLjAnHgvAbAnHlFUrDlHnDgvAnHnHTFT3HnQTGnrJTAaMXvJTGbCn3JTOgrAnJXvAXMnJbMg8SnJbMnRg3Jb8LTMnJnAl3OnJnGYrQlJnJlQY3LTDlCn3LTJjLg3LTLgvFXLTMg3GTLV8HUOgLXFZLg3LXNXrMnLX8QXFnLX9AlMYLYLXPXrLZAbJU8LZDUJU8LZMXrSnLZ$AgFnLaPXrDULbFYrMnLbMn8LXLboJgJgLeFbLg3LgLZrSnLgOYAgoLhrRnJlLkCTrSnLkOnLhrLnFX%AYLnFZoJXLnHTvJbLnLloAbMTATLf8MTHgJn3MTMXrAXMT3MTFnMUITvFnMXFX%AYMXMXvFbMXrFTDbMYAcMX3MbLf8SnMb8JbFnMgMXrMTMgvAXFnMgvGgCmMnAloSnMnFnJTrOXvMXSnOX8HTMnObJT8ScObLZFl3ObMXCZoPTLgrQXPUFnoQXPU3RXJlPX3RkQXPbrJXQlPlrJbFnQUAhrDbQXGnCXvQYLnHlvQbLfLnvRTOgvJbRXJYrQlRYLnrQlRbLnrQlRlFT8JlRlFnrQXSTClCn3STHTrAnSTLZQlrSTMnGTrSToHgGbSTrGTDnSTvGXCnST3HgFbSU3HXAXSbAnJn3SbFT8LnScLfLnv","AT3JgJX8AT8FZoSnAT8JgFV8AT8LhrDbAZ8JT8DbAb8GgLhrAb8SkLnvAe8MT8SnAlMYJXLVAl3GYDTvAl3LfLnvBUDTvLl3CTOn3HTrCT3DUGgrCU8MT8AbCbFTrJUoCgrDb8MTDTLV8JX8DTLnLXQlDT8LZrSnDUQb8FZ8DUST4JnvDb8ScOUoDj6GbJl4GTLfCYMlGToAXvFnGboAXvLnGgAcrJn3GgvFnSToGnLf8JnvGn#HTDToHTLnFXJlHTvATFToHTvHTDToHTvMTAgoHT3STClvHT4AlFl6HT8HTDToHUoDgJTrHUoScMX3HbRZrMXoHboJg8LTHgDb8JTrHgMToLf8HgvLnLnoHnHn3HT4Hn6MgvAnJTJU8ScvJT3AaQT8JT8HTrAnJXrRg8AnJbAloMXoJbrATFToJbvMnoSnJgDb6GgvJgDb8MXoJgSX3JU8JguATFToJlPYLnQlJlQkDnLbJlQlFYJlJl8Lf8OTJnCTFnLbJnLTHXMnJnLXGXCnJnoFfRg3JnrMYRg3Jn3HgFl3KT8Dg8LnLTRlFnPTLTvPbLbvLVoSbrCZLXMY6HT3LXNU7DlrLXNXDTATLX8DX8LnLZDb8JU8LZMnoLhrLZSToJU8LZrLaLnrLZvJn3SnLZ8LhrSnLaJnoMT8LbFlrHTvLbrFTLnrLbvATLlvLb6OTFn3LcLnJZOlLeAT6Mn4LeJT3ObrLg6LXFlrLhrJg8LnLhvDlPX4LhvLfLnvLj6JTFT3LnFbrMXoLnQluCTvLnrQXCY6LnvLfLnvLnvMgLnvLnvSeLf8MTMbrJn3MT3JgST3MT8AnATrMT8LULnrMUMToCZrMUScvLf8MXoDT8SnMX6ATFToMX8AXMT8MX8FkMT8MX8HTrDUMX8ScoSnMYJT6CTvMgAcrMXoMg8SToAfMlvAXLg3MnFl3AnvOT3AnFl3OUoATHT8OU3RnLXrOXrOXrSnObPbvFn6Og8HgrSnOg8OX8DbPTvAgoJgPU3RYLnrPXrDnJZrPb8CTGgvPlrLTDlvPlvFUJnoQUvFXrQlQeMnoAl3QlrQlrSnRTFTrJUoSTDlLiLXSTFg6HT3STJgoMn4STrFTJTrSTrLZFl3ST4FnMXoSUrDlHUoScvHTvSnSfLkvMXo","AUoAcrMXoAZ8HboAg8AbOg6ATFgAg8AloMXoAl3AT8JTrAl8MX8MXoCT3SToJU8Cl8Db8MXoDT8HgrATrDboOT8MXoGTOTrATMnGT8LhrAZ8GnvFnGnQXHToGgvAcrHTvAXvLl3HbrAZoMXoHgBlFXLg3HgMnFXrSnHgrSb8JUoHn6HT8LgvITvATrJUoJUoLZrRnvJU8HT8Jb8JXvFX8QT8JXvLToJTrJYrQnGnQXJgrJnoATrJnoJU8ScvJnvMnvMXoLTCTLgrJXLTJlRTvQlLbRnJlQYvLbrMb8LnvLbvFn3RnoLdCVSTGZrLeSTvGXCnLg3MnoLn3MToLlrETvMT8SToAl3MbrDU6GTvMb8LX4LhrPlrLXGXCnSToLf8Rg3STrDb8LTrSTvLTHXMnSb3RYLnMnSgOg6ATFg","HUDlGnrQXrJTrHgLnrAcJYMb8DULc8LTvFgGnCk3Mg8JbAnLX4QYvFYHnMXrRUoJnGnvFnRlvFTJlQnoSTrBXHXrLYSUJgLfoMT8Se8DTrHbDb","AbDl8SToJU8An3RbAb8ST8DUSTrGnrAgoLbFU6Db8LTrMg8AaHT8Jb8ObDl8SToJU8Pb3RlvFYoJl"],kS="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789!@#$%^&*";function QS(A){return A>=40?A=A+168-40:A>=19&&(A=A+97-19),(0,SS.toUtf8String)([225,(A>>6)+132,(A&63)+128])}var C1=null;function Ni(A){if(C1==null&&(C1=[],vS.forEach(function(a,e){e+=4;for(var f=0;f{"use strict";var MS=M4&&M4.__extends||function(){var A=function(a,e){return A=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(f,c){f.__proto__=c}||function(f,c){for(var d in c)Object.prototype.hasOwnProperty.call(c,d)&&(f[d]=c[d])},A(a,e)};return function(a,e){if(typeof e!="function"&&e!==null)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");A(a,e);function f(){this.constructor=a}a.prototype=e===null?Object.create(e):(f.prototype=e.prototype,new f)}}();Object.defineProperty(M4,"__esModule",{value:!0});M4.langIt=void 0;var n7=tA(),US="AbacoAbbaglioAbbinatoAbeteAbissoAbolireAbrasivoAbrogatoAccadereAccennoAccusatoAcetoneAchilleAcidoAcquaAcreAcrilicoAcrobataAcutoAdagioAddebitoAddomeAdeguatoAderireAdipeAdottareAdulareAffabileAffettoAffissoAffrantoAforismaAfosoAfricanoAgaveAgenteAgevoleAggancioAgireAgitareAgonismoAgricoloAgrumetoAguzzoAlabardaAlatoAlbatroAlberatoAlboAlbumeAlceAlcolicoAlettoneAlfaAlgebraAlianteAlibiAlimentoAllagatoAllegroAllievoAllodolaAllusivoAlmenoAlogenoAlpacaAlpestreAltalenaAlternoAlticcioAltroveAlunnoAlveoloAlzareAmalgamaAmanitaAmarenaAmbitoAmbratoAmebaAmericaAmetistaAmicoAmmassoAmmendaAmmirareAmmonitoAmoreAmpioAmpliareAmuletoAnacardoAnagrafeAnalistaAnarchiaAnatraAncaAncellaAncoraAndareAndreaAnelloAngeloAngolareAngustoAnimaAnnegareAnnidatoAnnoAnnuncioAnonimoAnticipoAnziApaticoAperturaApodeApparireAppetitoAppoggioApprodoAppuntoAprileArabicaArachideAragostaAraldicaArancioAraturaArazzoArbitroArchivioArditoArenileArgentoArgineArgutoAriaArmoniaArneseArredatoArringaArrostoArsenicoArsoArteficeArzilloAsciuttoAscoltoAsepsiAsetticoAsfaltoAsinoAsolaAspiratoAsproAssaggioAsseAssolutoAssurdoAstaAstenutoAsticeAstrattoAtavicoAteismoAtomicoAtonoAttesaAttivareAttornoAttritoAttualeAusilioAustriaAutistaAutonomoAutunnoAvanzatoAvereAvvenireAvvisoAvvolgereAzioneAzotoAzzimoAzzurroBabeleBaccanoBacinoBacoBadessaBadilataBagnatoBaitaBalconeBaldoBalenaBallataBalzanoBambinoBandireBaraondaBarbaroBarcaBaritonoBarlumeBaroccoBasilicoBassoBatostaBattutoBauleBavaBavosaBeccoBeffaBelgioBelvaBendaBenevoleBenignoBenzinaBereBerlinaBetaBibitaBiciBidoneBifidoBigaBilanciaBimboBinocoloBiologoBipedeBipolareBirbanteBirraBiscottoBisestoBisnonnoBisonteBisturiBizzarroBlandoBlattaBollitoBonificoBordoBoscoBotanicoBottinoBozzoloBraccioBradipoBramaBrancaBravuraBretellaBrevettoBrezzaBrigliaBrillanteBrindareBroccoloBrodoBronzinaBrulloBrunoBubboneBucaBudinoBuffoneBuioBulboBuonoBurloneBurrascaBussolaBustaCadettoCaducoCalamaroCalcoloCalesseCalibroCalmoCaloriaCambusaCamerataCamiciaCamminoCamolaCampaleCanapaCandelaCaneCaninoCanottoCantinaCapaceCapelloCapitoloCapogiroCapperoCapraCapsulaCarapaceCarcassaCardoCarismaCarovanaCarrettoCartolinaCasaccioCascataCasermaCasoCassoneCastelloCasualeCatastaCatenaCatrameCautoCavilloCedibileCedrataCefaloCelebreCellulareCenaCenoneCentesimoCeramicaCercareCertoCerumeCervelloCesoiaCespoCetoChelaChiaroChiccaChiedereChimeraChinaChirurgoChitarraCiaoCiclismoCifrareCignoCilindroCiottoloCircaCirrosiCitricoCittadinoCiuffoCivettaCivileClassicoClinicaCloroCoccoCodardoCodiceCoerenteCognomeCollareColmatoColoreColposoColtivatoColzaComaCometaCommandoComodoComputerComuneConcisoCondurreConfermaCongelareConiugeConnessoConoscereConsumoContinuoConvegnoCopertoCopioneCoppiaCopricapoCorazzaCordataCoricatoCorniceCorollaCorpoCorredoCorsiaCorteseCosmicoCostanteCotturaCovatoCratereCravattaCreatoCredereCremosoCrescitaCretaCricetoCrinaleCrisiCriticoCroceCronacaCrostataCrucialeCruscaCucireCuculoCuginoCullatoCupolaCuratoreCursoreCurvoCuscinoCustodeDadoDainoDalmataDamerinoDanielaDannosoDanzareDatatoDavantiDavveroDebuttoDecennioDecisoDeclinoDecolloDecretoDedicatoDefinitoDeformeDegnoDelegareDelfinoDelirioDeltaDemenzaDenotatoDentroDepositoDerapataDerivareDerogaDescrittoDesertoDesiderioDesumereDetersivoDevotoDiametroDicembreDiedroDifesoDiffusoDigerireDigitaleDiluvioDinamicoDinnanziDipintoDiplomaDipoloDiradareDireDirottoDirupoDisagioDiscretoDisfareDisgeloDispostoDistanzaDisumanoDitoDivanoDiveltoDividereDivoratoDobloneDocenteDoganaleDogmaDolceDomatoDomenicaDominareDondoloDonoDormireDoteDottoreDovutoDozzinaDragoDruidoDubbioDubitareDucaleDunaDuomoDupliceDuraturoEbanoEccessoEccoEclissiEconomiaEderaEdicolaEdileEditoriaEducareEgemoniaEgliEgoismoEgregioElaboratoElargireEleganteElencatoElettoElevareElficoElicaElmoElsaElusoEmanatoEmblemaEmessoEmiroEmotivoEmozioneEmpiricoEmuloEndemicoEnduroEnergiaEnfasiEnotecaEntrareEnzimaEpatiteEpilogoEpisodioEpocaleEppureEquatoreErarioErbaErbosoEredeEremitaErigereErmeticoEroeErosivoErranteEsagonoEsameEsanimeEsaudireEscaEsempioEsercitoEsibitoEsigenteEsistereEsitoEsofagoEsortatoEsosoEspansoEspressoEssenzaEssoEstesoEstimareEstoniaEstrosoEsultareEtilicoEtnicoEtruscoEttoEuclideoEuropaEvasoEvidenzaEvitatoEvolutoEvvivaFabbricaFaccendaFachiroFalcoFamigliaFanaleFanfaraFangoFantasmaFareFarfallaFarinosoFarmacoFasciaFastosoFasulloFaticareFatoFavolosoFebbreFecolaFedeFegatoFelpaFeltroFemminaFendereFenomenoFermentoFerroFertileFessuraFestivoFettaFeudoFiabaFiduciaFifaFiguratoFiloFinanzaFinestraFinireFioreFiscaleFisicoFiumeFlaconeFlamencoFleboFlemmaFloridoFluenteFluoroFobicoFocacciaFocosoFoderatoFoglioFolataFolcloreFolgoreFondenteFoneticoFoniaFontanaForbitoForchettaForestaFormicaFornaioForoFortezzaForzareFosfatoFossoFracassoFranaFrassinoFratelloFreccettaFrenataFrescoFrigoFrollinoFrondeFrugaleFruttaFucilataFucsiaFuggenteFulmineFulvoFumanteFumettoFumosoFuneFunzioneFuocoFurboFurgoneFuroreFusoFutileGabbianoGaffeGalateoGallinaGaloppoGamberoGammaGaranziaGarboGarofanoGarzoneGasdottoGasolioGastricoGattoGaudioGazeboGazzellaGecoGelatinaGelsoGemelloGemmatoGeneGenitoreGennaioGenotipoGergoGhepardoGhiaccioGhisaGialloGildaGineproGiocareGioielloGiornoGioveGiratoGironeGittataGiudizioGiuratoGiustoGlobuloGlutineGnomoGobbaGolfGomitoGommoneGonfioGonnaGovernoGracileGradoGraficoGrammoGrandeGrattareGravosoGraziaGrecaGreggeGrifoneGrigioGrinzaGrottaGruppoGuadagnoGuaioGuantoGuardareGufoGuidareIbernatoIconaIdenticoIdillioIdoloIdraIdricoIdrogenoIgieneIgnaroIgnoratoIlareIllesoIllogicoIlludereImballoImbevutoImboccoImbutoImmaneImmersoImmolatoImpaccoImpetoImpiegoImportoImprontaInalareInarcareInattivoIncantoIncendioInchinoIncisivoInclusoIncontroIncrocioIncuboIndagineIndiaIndoleIneditoInfattiInfilareInflittoIngaggioIngegnoIngleseIngordoIngrossoInnescoInodoreInoltrareInondatoInsanoInsettoInsiemeInsonniaInsulinaIntasatoInteroIntonacoIntuitoInumidireInvalidoInveceInvitoIperboleIpnoticoIpotesiIppicaIrideIrlandaIronicoIrrigatoIrrorareIsolatoIsotopoIstericoIstitutoIstriceItaliaIterareLabbroLabirintoLaccaLaceratoLacrimaLacunaLaddoveLagoLampoLancettaLanternaLardosoLargaLaringeLastraLatenzaLatinoLattugaLavagnaLavoroLegaleLeggeroLemboLentezzaLenzaLeoneLepreLesivoLessatoLestoLetteraleLevaLevigatoLiberoLidoLievitoLillaLimaturaLimitareLimpidoLineareLinguaLiquidoLiraLiricaLiscaLiteLitigioLivreaLocandaLodeLogicaLombareLondraLongevoLoquaceLorenzoLotoLotteriaLuceLucidatoLumacaLuminosoLungoLupoLuppoloLusingaLussoLuttoMacabroMacchinaMaceroMacinatoMadamaMagicoMagliaMagneteMagroMaiolicaMalafedeMalgradoMalintesoMalsanoMaltoMalumoreManaManciaMandorlaMangiareManifestoMannaroManovraMansardaMantideManubrioMappaMaratonaMarcireMarettaMarmoMarsupioMascheraMassaiaMastinoMaterassoMatricolaMattoneMaturoMazurcaMeandroMeccanicoMecenateMedesimoMeditareMegaMelassaMelisMelodiaMeningeMenoMensolaMercurioMerendaMerloMeschinoMeseMessereMestoloMetalloMetodoMettereMiagolareMicaMicelioMicheleMicroboMidolloMieleMiglioreMilanoMiliteMimosaMineraleMiniMinoreMirinoMirtilloMiscelaMissivaMistoMisurareMitezzaMitigareMitraMittenteMnemonicoModelloModificaModuloMoganoMogioMoleMolossoMonasteroMoncoMondinaMonetarioMonileMonotonoMonsoneMontatoMonvisoMoraMordereMorsicatoMostroMotivatoMotosegaMottoMovenzaMovimentoMozzoMuccaMucosaMuffaMughettoMugnaioMulattoMulinelloMultiploMummiaMuntoMuovereMuraleMusaMuscoloMusicaMutevoleMutoNababboNaftaNanometroNarcisoNariceNarratoNascereNastrareNaturaleNauticaNaviglioNebulosaNecrosiNegativoNegozioNemmenoNeofitaNerettoNervoNessunoNettunoNeutraleNeveNevroticoNicchiaNinfaNitidoNobileNocivoNodoNomeNominaNordicoNormaleNorvegeseNostranoNotareNotiziaNotturnoNovellaNucleoNullaNumeroNuovoNutrireNuvolaNuzialeOasiObbedireObbligoObeliscoOblioOboloObsoletoOccasioneOcchioOccidenteOccorrereOccultareOcraOculatoOdiernoOdorareOffertaOffrireOffuscatoOggettoOggiOgnunoOlandeseOlfattoOliatoOlivaOlogrammaOltreOmaggioOmbelicoOmbraOmegaOmissioneOndosoOnereOniceOnnivoroOnorevoleOntaOperatoOpinioneOppostoOracoloOrafoOrdineOrecchinoOreficeOrfanoOrganicoOrigineOrizzonteOrmaOrmeggioOrnativoOrologioOrrendoOrribileOrtensiaOrticaOrzataOrzoOsareOscurareOsmosiOspedaleOspiteOssaOssidareOstacoloOsteOtiteOtreOttagonoOttimoOttobreOvaleOvestOvinoOviparoOvocitoOvunqueOvviareOzioPacchettoPacePacificoPadellaPadronePaesePagaPaginaPalazzinaPalesarePallidoPaloPaludePandoroPannelloPaoloPaonazzoPapricaParabolaParcellaParerePargoloPariParlatoParolaPartireParvenzaParzialePassivoPasticcaPataccaPatologiaPattumePavonePeccatoPedalarePedonalePeggioPelosoPenarePendicePenisolaPennutoPenombraPensarePentolaPepePepitaPerbenePercorsoPerdonatoPerforarePergamenaPeriodoPermessoPernoPerplessoPersuasoPertugioPervasoPesatorePesistaPesoPestiferoPetaloPettinePetulantePezzoPiacerePiantaPiattinoPiccinoPicozzaPiegaPietraPifferoPigiamaPigolioPigroPilaPiliferoPillolaPilotaPimpantePinetaPinnaPinoloPioggiaPiomboPiramidePireticoPiritePirolisiPitonePizzicoPlaceboPlanarePlasmaPlatanoPlenarioPochezzaPoderosoPodismoPoesiaPoggiarePolentaPoligonoPollicePolmonitePolpettaPolsoPoltronaPolverePomicePomodoroPontePopolosoPorfidoPorosoPorporaPorrePortataPosaPositivoPossessoPostulatoPotassioPoterePranzoPrassiPraticaPreclusoPredicaPrefissoPregiatoPrelievoPremerePrenotarePreparatoPresenzaPretestoPrevalsoPrimaPrincipePrivatoProblemaProcuraProdurreProfumoProgettoProlungaPromessaPronomePropostaProrogaProtesoProvaPrudentePrugnaPruritoPsichePubblicoPudicaPugilatoPugnoPulcePulitoPulsantePuntarePupazzoPupillaPuroQuadroQualcosaQuasiQuerelaQuotaRaccoltoRaddoppioRadicaleRadunatoRafficaRagazzoRagioneRagnoRamarroRamingoRamoRandagioRantolareRapatoRapinaRappresoRasaturaRaschiatoRasenteRassegnaRastrelloRataRavvedutoRealeRecepireRecintoReclutaReconditoRecuperoRedditoRedimereRegalatoRegistroRegolaRegressoRelazioneRemareRemotoRennaReplicaReprimereReputareResaResidenteResponsoRestauroReteRetinaRetoricaRettificaRevocatoRiassuntoRibadireRibelleRibrezzoRicaricaRiccoRicevereRiciclatoRicordoRicredutoRidicoloRidurreRifasareRiflessoRiformaRifugioRigareRigettatoRighelloRilassatoRilevatoRimanereRimbalzoRimedioRimorchioRinascitaRincaroRinforzoRinnovoRinomatoRinsavitoRintoccoRinunciaRinvenireRiparatoRipetutoRipienoRiportareRipresaRipulireRisataRischioRiservaRisibileRisoRispettoRistoroRisultatoRisvoltoRitardoRitegnoRitmicoRitrovoRiunioneRivaRiversoRivincitaRivoltoRizomaRobaRoboticoRobustoRocciaRocoRodaggioRodereRoditoreRogitoRollioRomanticoRompereRonzioRosolareRospoRotanteRotondoRotulaRovescioRubizzoRubricaRugaRullinoRumineRumorosoRuoloRupeRussareRusticoSabatoSabbiareSabotatoSagomaSalassoSaldaturaSalgemmaSalivareSalmoneSaloneSaltareSalutoSalvoSapereSapidoSaporitoSaracenoSarcasmoSartoSassosoSatelliteSatiraSatolloSaturnoSavanaSavioSaziatoSbadiglioSbalzoSbancatoSbarraSbattereSbavareSbendareSbirciareSbloccatoSbocciatoSbrinareSbruffoneSbuffareScabrosoScadenzaScalaScambiareScandaloScapolaScarsoScatenareScavatoSceltoScenicoScettroSchedaSchienaSciarpaScienzaScindereScippoSciroppoScivoloSclerareScodellaScolpitoScompartoSconfortoScoprireScortaScossoneScozzeseScribaScrollareScrutinioScuderiaScultoreScuolaScuroScusareSdebitareSdoganareSeccaturaSecondoSedanoSeggiolaSegnalatoSegregatoSeguitoSelciatoSelettivoSellaSelvaggioSemaforoSembrareSemeSeminatoSempreSensoSentireSepoltoSequenzaSerataSerbatoSerenoSerioSerpenteSerraglioServireSestinaSetolaSettimanaSfaceloSfaldareSfamatoSfarzosoSfaticatoSferaSfidaSfilatoSfingeSfocatoSfoderareSfogoSfoltireSforzatoSfrattoSfruttatoSfuggitoSfumareSfusoSgabelloSgarbatoSgonfiareSgorbioSgrassatoSguardoSibiloSiccomeSierraSiglaSignoreSilenzioSillabaSimboloSimpaticoSimulatoSinfoniaSingoloSinistroSinoSintesiSinusoideSiparioSismaSistoleSituatoSlittaSlogaturaSlovenoSmarritoSmemoratoSmentitoSmeraldoSmilzoSmontareSmottatoSmussatoSnellireSnervatoSnodoSobbalzoSobrioSoccorsoSocialeSodaleSoffittoSognoSoldatoSolenneSolidoSollazzoSoloSolubileSolventeSomaticoSommaSondaSonettoSonniferoSopireSoppesoSopraSorgereSorpassoSorrisoSorsoSorteggioSorvolatoSospiroSostaSottileSpadaSpallaSpargereSpatolaSpaventoSpazzolaSpecieSpedireSpegnereSpelaturaSperanzaSpessoreSpettraleSpezzatoSpiaSpigolosoSpillatoSpinosoSpiraleSplendidoSportivoSposoSprangaSprecareSpronatoSpruzzoSpuntinoSquilloSradicareSrotolatoStabileStaccoStaffaStagnareStampatoStantioStarnutoStaseraStatutoSteloSteppaSterzoStilettoStimaStirpeStivaleStizzosoStonatoStoricoStrappoStregatoStriduloStrozzareStruttoStuccareStufoStupendoSubentroSuccosoSudoreSuggeritoSugoSultanoSuonareSuperboSupportoSurgelatoSurrogatoSussurroSuturaSvagareSvedeseSveglioSvelareSvenutoSveziaSviluppoSvistaSvizzeraSvoltaSvuotareTabaccoTabulatoTacciareTaciturnoTaleTalismanoTamponeTanninoTaraTardivoTargatoTariffaTarpareTartarugaTastoTatticoTavernaTavolataTazzaTecaTecnicoTelefonoTemerarioTempoTemutoTendoneTeneroTensioneTentacoloTeoremaTermeTerrazzoTerzettoTesiTesseratoTestatoTetroTettoiaTifareTigellaTimbroTintoTipicoTipografoTiraggioTiroTitanioTitoloTitubanteTizioTizzoneToccareTollerareToltoTombolaTomoTonfoTonsillaTopazioTopologiaToppaTorbaTornareTorroneTortoraToscanoTossireTostaturaTotanoTraboccoTracheaTrafilaTragediaTralcioTramontoTransitoTrapanoTrarreTraslocoTrattatoTraveTrecciaTremolioTrespoloTributoTrichecoTrifoglioTrilloTrinceaTrioTristezzaTrituratoTrivellaTrombaTronoTroppoTrottolaTrovareTruccatoTubaturaTuffatoTulipanoTumultoTunisiaTurbareTurchinoTutaTutelaUbicatoUccelloUccisoreUdireUditivoUffaUfficioUgualeUlisseUltimatoUmanoUmileUmorismoUncinettoUngereUnghereseUnicornoUnificatoUnisonoUnitarioUnteUovoUpupaUraganoUrgenzaUrloUsanzaUsatoUscitoUsignoloUsuraioUtensileUtilizzoUtopiaVacanteVaccinatoVagabondoVagliatoValangaValgoValicoVallettaValorosoValutareValvolaVampataVangareVanitosoVanoVantaggioVanveraVaporeVaranoVarcatoVarianteVascaVedettaVedovaVedutoVegetaleVeicoloVelcroVelinaVellutoVeloceVenatoVendemmiaVentoVeraceVerbaleVergognaVerificaVeroVerrucaVerticaleVescicaVessilloVestaleVeteranoVetrinaVetustoViandanteVibranteVicendaVichingoVicinanzaVidimareVigiliaVignetoVigoreVileVillanoViminiVincitoreViolaViperaVirgolaVirologoVirulentoViscosoVisioneVispoVissutoVisuraVitaVitelloVittimaVivandaVividoViziareVoceVogaVolatileVolereVolpeVoragineVulcanoZampognaZannaZappatoZatteraZavorraZefiroZelanteZeloZenzeroZerbinoZibettoZincoZirconeZittoZollaZoticoZuccheroZufoloZuluZuppa",b3=null;function Pi(A){if(b3==null&&(b3=US.replace(/([A-Z])/g," $1").toLowerCase().substring(1).split(" "),n7.Wordlist.check(A)!=="0x5c1362d88fd4cf614a96f3234941d29f7d37c08c5292fde03bf62c2db6ff7620"))throw b3=null,new Error("BIP39 Wordlist for it (Italian) FAILED")}var NS=function(A){MS(a,A);function a(){return A.call(this,"it")||this}return a.prototype.getWord=function(e){return Pi(this),b3[e]},a.prototype.getWordIndex=function(e){return Pi(this),b3.indexOf(e)},a}(n7.Wordlist),Vi=new NS;M4.langIt=Vi;n7.Wordlist.register(Vi)});var Yi=U(gf=>{"use strict";var OS=gf&&gf.__extends||function(){var A=function(a,e){return A=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(f,c){f.__proto__=c}||function(f,c){for(var d in c)Object.prototype.hasOwnProperty.call(c,d)&&(f[d]=c[d])},A(a,e)};return function(a,e){if(typeof e!="function"&&e!==null)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");A(a,e);function f(){this.constructor=a}a.prototype=e===null?Object.create(e):(f.prototype=e.prototype,new f)}}();Object.defineProperty(gf,"__esModule",{value:!0});gf.langZhTw=gf.langZhCn=void 0;var GS=U0(),l3=tA(),t7="}aE#4A=Yv&co#4N#6G=cJ&SM#66|/Z#4t&kn~46#4K~4q%b9=IR#7l,mB#7W_X2*dl}Uo~7s}Uf&Iw#9c&cw~6O&H6&wx&IG%v5=IQ~8a&Pv#47$PR&50%Ko&QM&3l#5f,D9#4L|/H&tQ;v0~6n]nN?";function Ji(A){if(U4[A.locale]===null){U4[A.locale]=[];for(var a=0,e=0;e<2048;e++){var f=LS.indexOf(t7[e*3]),c=[228+(f>>2),128+u7.indexOf(t7[e*3+1]),128+u7.indexOf(t7[e*3+2])];if(A.locale==="zh_tw")for(var d=f%4,b=d;b<3;b++)c[b]=u7.indexOf(PS[a++])+(b==0?228:128);U4[A.locale].push((0,GS.toUtf8String)(c))}if(l3.Wordlist.check(A)!==VS[A.locale])throw U4[A.locale]=null,new Error("BIP39 Wordlist for "+A.locale+" (Chinese) FAILED")}}var Hi=function(A){OS(a,A);function a(e){return A.call(this,"zh_"+e)||this}return a.prototype.getWord=function(e){return Ji(this),U4[this.locale][e]},a.prototype.getWordIndex=function(e){return Ji(this),U4[this.locale].indexOf(e)},a.prototype.split=function(e){return e=e.replace(/(?:\u3000| )+/g,""),e.split("")},a}(l3.Wordlist),i7=new Hi("cn");gf.langZhCn=i7;l3.Wordlist.register(i7);l3.Wordlist.register(i7,"zh");var Zi=new Hi("tw");gf.langZhTw=Zi;l3.Wordlist.register(Zi)});var Xi=U(Ld=>{"use strict";Object.defineProperty(Ld,"__esModule",{value:!0});Ld.wordlists=void 0;var JS=Ci(),HS=Fi(),ZS=Ti(),YS=ki(),XS=Ui(),WS=Gi(),KS=Li(),o7=Yi();Ld.wordlists={cz:JS.langCz,en:HS.langEn,es:ZS.langEs,fr:YS.langFr,it:KS.langIt,ja:XS.langJa,ko:WS.langKo,zh:o7.langZhCn,zh_cn:o7.langZhCn,zh_tw:o7.langZhTw}});var s7=U(If=>{"use strict";Object.defineProperty(If,"__esModule",{value:!0});If.wordlists=If.Wordlist=If.logger=void 0;var Wi=tA();Object.defineProperty(If,"logger",{enumerable:!0,get:function(){return Wi.logger}});Object.defineProperty(If,"Wordlist",{enumerable:!0,get:function(){return Wi.Wordlist}});var qS=Xi();Object.defineProperty(If,"wordlists",{enumerable:!0,get:function(){return qS.wordlists}})});var Ki=U(Jd=>{"use strict";Object.defineProperty(Jd,"__esModule",{value:!0});Jd.version=void 0;Jd.version="hdnode/5.7.0"});var Zd=U(Ba=>{"use strict";Object.defineProperty(Ba,"__esModule",{value:!0});Ba.getAccountPath=Ba.isValidMnemonic=Ba.entropyToMnemonic=Ba.mnemonicToEntropy=Ba.mnemonicToSeed=Ba.HDNode=Ba.defaultPath=void 0;var _i=Sd(),i0=Xe(),$i=y0(),r3=U0(),zS=Qd(),Ea=c0(),qi=qc(),uA=w4(),jS=NA(),zi=s7(),_S=me(),$S=Ki(),n3=new _S.Logger($S.version),ev=$i.BigNumber.from("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),av=(0,r3.toUtf8Bytes)("Bitcoin seed"),O4=2147483648;function eo(A){return(1<=256)throw new Error("Depth too large!");return ji((0,i0.concat)([this.privateKey!=null?"0x0488ADE4":"0x0488B21E",(0,i0.hexlify)(this.depth),this.parentFingerprint,(0,i0.hexZeroPad)((0,i0.hexlify)(this.index),4),this.chainCode,this.privateKey!=null?(0,i0.concat)(["0x00",this.privateKey]):this.publicKey]))},enumerable:!1,configurable:!0}),A.prototype.neuter=function(){return new A(N4,null,this.publicKey,this.parentFingerprint,this.chainCode,this.index,this.depth,this.path)},A.prototype._derive=function(a){if(a>4294967295)throw new Error("invalid index - "+String(a));var e=this.path;e&&(e+="/"+(a&~O4));var f=new Uint8Array(37);if(a&O4){if(!this.privateKey)throw new Error("cannot derive child of neutered node");f.set((0,i0.arrayify)(this.privateKey),1),e&&(e+="'")}else f.set((0,i0.arrayify)(this.publicKey));for(var c=24;c>=0;c-=8)f[33+(c>>3)]=a>>24-c&255;var d=(0,i0.arrayify)((0,uA.computeHmac)(uA.SupportedAlgorithm.sha512,this.chainCode,f)),b=d.slice(0,32),r=d.slice(32),n=null,l=null;if(this.privateKey)n=Hd($i.BigNumber.from(b).add(this.privateKey).mod(ev));else{var t=new qi.SigningKey((0,i0.hexlify)(b));l=t._addPoint(this.publicKey)}var B=e,x=this.mnemonic;return x&&(B=Object.freeze({phrase:x.phrase,path:e,locale:x.locale||"en"})),new A(N4,n,l,this.fingerprint,Hd(r),a,this.depth+1,B)},A.prototype.derivePath=function(a){var e=a.split("/");if(e.length===0||e[0]==="m"&&this.depth!==0)throw new Error("invalid path - "+a);e[0]==="m"&&e.shift();for(var f=this,c=0;c=O4)throw new Error("invalid path index - "+d);f=f._derive(O4+b)}else if(d.match(/^[0-9]+$/)){var b=parseInt(d);if(b>=O4)throw new Error("invalid path index - "+d);f=f._derive(b)}else throw new Error("invalid path component - "+d)}return f},A._fromSeed=function(a,e){var f=(0,i0.arrayify)(a);if(f.length<16||f.length>64)throw new Error("invalid seed");var c=(0,i0.arrayify)((0,uA.computeHmac)(uA.SupportedAlgorithm.sha512,av,f));return new A(N4,Hd(c.slice(0,32)),null,"0x00000000",Hd(c.slice(32)),0,0,e)},A.fromMnemonic=function(a,e,f){return f=E7(f),a=Ao(B7(a,f),f),A._fromSeed(ao(a,e),{phrase:a,path:"m",locale:f.locale})},A.fromSeed=function(a){return A._fromSeed(a,null)},A.fromExtendedKey=function(a){var e=_i.Base58.decode(a);(e.length!==82||ji(e.slice(0,78))!==a)&&n3.throwArgumentError("invalid extended key","extendedKey","[REDACTED]");var f=e[4],c=(0,i0.hexlify)(e.slice(5,9)),d=parseInt((0,i0.hexlify)(e.slice(9,13)).substring(2),16),b=(0,i0.hexlify)(e.slice(13,45)),r=e.slice(45,78);switch((0,i0.hexlify)(e.slice(0,4))){case"0x0488b21e":case"0x043587cf":return new A(N4,null,(0,i0.hexlify)(r),c,b,d,f,null);case"0x0488ade4":case"0x04358394 ":if(r[0]!==0)break;return new A(N4,(0,i0.hexlify)(r.slice(1)),null,c,b,d,f,null)}return n3.throwArgumentError("invalid extended key","extendedKey","[REDACTED]")},A}();Ba.HDNode=fv;function ao(A,a){a||(a="");var e=(0,r3.toUtf8Bytes)("mnemonic"+a,r3.UnicodeNormalizationForm.NFKD);return(0,zS.pbkdf2)((0,r3.toUtf8Bytes)(A,r3.UnicodeNormalizationForm.NFKD),e,2048,64,"sha512")}Ba.mnemonicToSeed=ao;function B7(A,a){a=E7(a),n3.checkNormalize();var e=a.split(A);if(e.length%3!==0)throw new Error("invalid mnemonic");for(var f=(0,i0.arrayify)(new Uint8Array(Math.ceil(11*e.length/8))),c=0,d=0;d>3]|=1<<7-c%8),c++}var n=32*e.length/3,l=e.length/3,t=eo(l),B=(0,i0.arrayify)((0,uA.sha256)(f.slice(0,n/8)))[0]&t;if(B!==(f[f.length-1]&t))throw new Error("invalid checksum");return(0,i0.hexlify)(f.slice(0,n/8))}Ba.mnemonicToEntropy=B7;function Ao(A,a){if(a=E7(a),A=(0,i0.arrayify)(A),A.length%4!==0||A.length<16||A.length>32)throw new Error("invalid entropy");for(var e=[0],f=11,c=0;c8?(e[e.length-1]<<=8,e[e.length-1]|=A[c],f-=8):(e[e.length-1]<<=f,e[e.length-1]|=A[c]>>8-f,e.push(A[c]&Av(8-f)),f+=3);var d=A.length/4,b=(0,i0.arrayify)((0,uA.sha256)(A))[0]&eo(d);return e[e.length-1]<<=d,e[e.length-1]|=b>>8-d,a.join(e.map(function(r){return a.getWord(r)}))}Ba.entropyToMnemonic=Ao;function cv(A,a){try{return B7(A,a),!0}catch{}return!1}Ba.isValidMnemonic=cv;function dv(A){return(typeof A!="number"||A<0||A>=O4||A%1)&&n3.throwArgumentError("invalid account index","index",A),"m/44'/60'/"+A+"'/0/0"}Ba.getAccountPath=dv});var fo=U(Yd=>{"use strict";Object.defineProperty(Yd,"__esModule",{value:!0});Yd.randomBytes=void 0;var bv=require("crypto"),lv=Xe();function rv(A){return(0,lv.arrayify)((0,bv.randomBytes)(A))}Yd.randomBytes=rv});var co=U(Xd=>{"use strict";Object.defineProperty(Xd,"__esModule",{value:!0});Xd.shuffled=void 0;function nv(A){A=A.slice();for(var a=A.length-1;a>0;a--){var e=Math.floor(Math.random()*(a+1)),f=A[a];A[a]=A[e],A[e]=f}return A}Xd.shuffled=nv});var t3=U(G4=>{"use strict";Object.defineProperty(G4,"__esModule",{value:!0});G4.shuffled=G4.randomBytes=void 0;var tv=fo();Object.defineProperty(G4,"randomBytes",{enumerable:!0,get:function(){return tv.randomBytes}});var uv=co();Object.defineProperty(G4,"shuffled",{enumerable:!0,get:function(){return uv.shuffled}})});var C7=U((h7,bo)=>{"use strict";(function(A){function a(i){return parseInt(i)===i}function e(i){if(!a(i.length))return!1;for(var I=0;I255)return!1;return!0}function f(i,I){if(i.buffer&&ArrayBuffer.isView(i)&&i.name==="Uint8Array")return I&&(i.slice?i=i.slice():i=Array.prototype.slice.call(i)),i;if(Array.isArray(i)){if(!e(i))throw new Error("Array contains invalid value: "+i);return new Uint8Array(i)}if(a(i.length)&&e(i))return new Uint8Array(i);throw new Error("unsupported array-like object")}function c(i){return new Uint8Array(i)}function d(i,I,R,s,F){(s!=null||F!=null)&&(i.slice?i=i.slice(s,F):i=Array.prototype.slice.call(i,s,F)),I.set(i,R)}var b=function(){function i(R){var s=[],F=0;for(R=encodeURI(R);F191&&ee<224?(s.push(String.fromCharCode((ee&31)<<6|R[F+1]&63)),F+=2):(s.push(String.fromCharCode((ee&15)<<12|(R[F+1]&63)<<6|R[F+2]&63)),F+=3)}return s.join("")}return{toBytes:i,fromBytes:I}}(),r=function(){function i(s){for(var F=[],ee=0;ee>4]+I[T&15])}return F.join("")}return{toBytes:i,fromBytes:R}}(),n={16:10,24:12,32:14},l=[1,2,4,8,16,32,64,128,27,54,108,216,171,77,154,47,94,188,99,198,151,53,106,212,179,125,250,239,197,145],t=[99,124,119,123,242,107,111,197,48,1,103,43,254,215,171,118,202,130,201,125,250,89,71,240,173,212,162,175,156,164,114,192,183,253,147,38,54,63,247,204,52,165,229,241,113,216,49,21,4,199,35,195,24,150,5,154,7,18,128,226,235,39,178,117,9,131,44,26,27,110,90,160,82,59,214,179,41,227,47,132,83,209,0,237,32,252,177,91,106,203,190,57,74,76,88,207,208,239,170,251,67,77,51,133,69,249,2,127,80,60,159,168,81,163,64,143,146,157,56,245,188,182,218,33,16,255,243,210,205,12,19,236,95,151,68,23,196,167,126,61,100,93,25,115,96,129,79,220,34,42,144,136,70,238,184,20,222,94,11,219,224,50,58,10,73,6,36,92,194,211,172,98,145,149,228,121,231,200,55,109,141,213,78,169,108,86,244,234,101,122,174,8,186,120,37,46,28,166,180,198,232,221,116,31,75,189,139,138,112,62,181,102,72,3,246,14,97,53,87,185,134,193,29,158,225,248,152,17,105,217,142,148,155,30,135,233,206,85,40,223,140,161,137,13,191,230,66,104,65,153,45,15,176,84,187,22],B=[82,9,106,213,48,54,165,56,191,64,163,158,129,243,215,251,124,227,57,130,155,47,255,135,52,142,67,68,196,222,233,203,84,123,148,50,166,194,35,61,238,76,149,11,66,250,195,78,8,46,161,102,40,217,36,178,118,91,162,73,109,139,209,37,114,248,246,100,134,104,152,22,212,164,92,204,93,101,182,146,108,112,72,80,253,237,185,218,94,21,70,87,167,141,157,132,144,216,171,0,140,188,211,10,247,228,88,5,184,179,69,6,208,44,30,143,202,63,15,2,193,175,189,3,1,19,138,107,58,145,17,65,79,103,220,234,151,242,207,206,240,180,230,115,150,172,116,34,231,173,53,133,226,249,55,232,28,117,223,110,71,241,26,113,29,41,197,137,111,183,98,14,170,24,190,27,252,86,62,75,198,210,121,32,154,219,192,254,120,205,90,244,31,221,168,51,136,7,199,49,177,18,16,89,39,128,236,95,96,81,127,169,25,181,74,13,45,229,122,159,147,201,156,239,160,224,59,77,174,42,245,176,200,235,187,60,131,83,153,97,23,43,4,126,186,119,214,38,225,105,20,99,85,33,12,125],x=[3328402341,4168907908,4000806809,4135287693,4294111757,3597364157,3731845041,2445657428,1613770832,33620227,3462883241,1445669757,3892248089,3050821474,1303096294,3967186586,2412431941,528646813,2311702848,4202528135,4026202645,2992200171,2387036105,4226871307,1101901292,3017069671,1604494077,1169141738,597466303,1403299063,3832705686,2613100635,1974974402,3791519004,1033081774,1277568618,1815492186,2118074177,4126668546,2211236943,1748251740,1369810420,3521504564,4193382664,3799085459,2883115123,1647391059,706024767,134480908,2512897874,1176707941,2646852446,806885416,932615841,168101135,798661301,235341577,605164086,461406363,3756188221,3454790438,1311188841,2142417613,3933566367,302582043,495158174,1479289972,874125870,907746093,3698224818,3025820398,1537253627,2756858614,1983593293,3084310113,2108928974,1378429307,3722699582,1580150641,327451799,2790478837,3117535592,0,3253595436,1075847264,3825007647,2041688520,3059440621,3563743934,2378943302,1740553945,1916352843,2487896798,2555137236,2958579944,2244988746,3151024235,3320835882,1336584933,3992714006,2252555205,2588757463,1714631509,293963156,2319795663,3925473552,67240454,4269768577,2689618160,2017213508,631218106,1269344483,2723238387,1571005438,2151694528,93294474,1066570413,563977660,1882732616,4059428100,1673313503,2008463041,2950355573,1109467491,537923632,3858759450,4260623118,3218264685,2177748300,403442708,638784309,3287084079,3193921505,899127202,2286175436,773265209,2479146071,1437050866,4236148354,2050833735,3362022572,3126681063,840505643,3866325909,3227541664,427917720,2655997905,2749160575,1143087718,1412049534,999329963,193497219,2353415882,3354324521,1807268051,672404540,2816401017,3160301282,369822493,2916866934,3688947771,1681011286,1949973070,336202270,2454276571,201721354,1210328172,3093060836,2680341085,3184776046,1135389935,3294782118,965841320,831886756,3554993207,4068047243,3588745010,2345191491,1849112409,3664604599,26054028,2983581028,2622377682,1235855840,3630984372,2891339514,4092916743,3488279077,3395642799,4101667470,1202630377,268961816,1874508501,4034427016,1243948399,1546530418,941366308,1470539505,1941222599,2546386513,3421038627,2715671932,3899946140,1042226977,2521517021,1639824860,227249030,260737669,3765465232,2084453954,1907733956,3429263018,2420656344,100860677,4160157185,470683154,3261161891,1781871967,2924959737,1773779408,394692241,2579611992,974986535,664706745,3655459128,3958962195,731420851,571543859,3530123707,2849626480,126783113,865375399,765172662,1008606754,361203602,3387549984,2278477385,2857719295,1344809080,2782912378,59542671,1503764984,160008576,437062935,1707065306,3622233649,2218934982,3496503480,2185314755,697932208,1512910199,504303377,2075177163,2824099068,1841019862,739644986],p=[2781242211,2230877308,2582542199,2381740923,234877682,3184946027,2984144751,1418839493,1348481072,50462977,2848876391,2102799147,434634494,1656084439,3863849899,2599188086,1167051466,2636087938,1082771913,2281340285,368048890,3954334041,3381544775,201060592,3963727277,1739838676,4250903202,3930435503,3206782108,4149453988,2531553906,1536934080,3262494647,484572669,2923271059,1783375398,1517041206,1098792767,49674231,1334037708,1550332980,4098991525,886171109,150598129,2481090929,1940642008,1398944049,1059722517,201851908,1385547719,1699095331,1587397571,674240536,2704774806,252314885,3039795866,151914247,908333586,2602270848,1038082786,651029483,1766729511,3447698098,2682942837,454166793,2652734339,1951935532,775166490,758520603,3000790638,4004797018,4217086112,4137964114,1299594043,1639438038,3464344499,2068982057,1054729187,1901997871,2534638724,4121318227,1757008337,0,750906861,1614815264,535035132,3363418545,3988151131,3201591914,1183697867,3647454910,1265776953,3734260298,3566750796,3903871064,1250283471,1807470800,717615087,3847203498,384695291,3313910595,3617213773,1432761139,2484176261,3481945413,283769337,100925954,2180939647,4037038160,1148730428,3123027871,3813386408,4087501137,4267549603,3229630528,2315620239,2906624658,3156319645,1215313976,82966005,3747855548,3245848246,1974459098,1665278241,807407632,451280895,251524083,1841287890,1283575245,337120268,891687699,801369324,3787349855,2721421207,3431482436,959321879,1469301956,4065699751,2197585534,1199193405,2898814052,3887750493,724703513,2514908019,2696962144,2551808385,3516813135,2141445340,1715741218,2119445034,2872807568,2198571144,3398190662,700968686,3547052216,1009259540,2041044702,3803995742,487983883,1991105499,1004265696,1449407026,1316239930,504629770,3683797321,168560134,1816667172,3837287516,1570751170,1857934291,4014189740,2797888098,2822345105,2754712981,936633572,2347923833,852879335,1133234376,1500395319,3084545389,2348912013,1689376213,3533459022,3762923945,3034082412,4205598294,133428468,634383082,2949277029,2398386810,3913789102,403703816,3580869306,2297460856,1867130149,1918643758,607656988,4049053350,3346248884,1368901318,600565992,2090982877,2632479860,557719327,3717614411,3697393085,2249034635,2232388234,2430627952,1115438654,3295786421,2865522278,3633334344,84280067,33027830,303828494,2747425121,1600795957,4188952407,3496589753,2434238086,1486471617,658119965,3106381470,953803233,334231800,3005978776,857870609,3151128937,1890179545,2298973838,2805175444,3056442267,574365214,2450884487,550103529,1233637070,4289353045,2018519080,2057691103,2399374476,4166623649,2148108681,387583245,3664101311,836232934,3330556482,3100665960,3280093505,2955516313,2002398509,287182607,3413881008,4238890068,3597515707,975967766],w=[1671808611,2089089148,2006576759,2072901243,4061003762,1807603307,1873927791,3310653893,810573872,16974337,1739181671,729634347,4263110654,3613570519,2883997099,1989864566,3393556426,2191335298,3376449993,2106063485,4195741690,1508618841,1204391495,4027317232,2917941677,3563566036,2734514082,2951366063,2629772188,2767672228,1922491506,3227229120,3082974647,4246528509,2477669779,644500518,911895606,1061256767,4144166391,3427763148,878471220,2784252325,3845444069,4043897329,1905517169,3631459288,827548209,356461077,67897348,3344078279,593839651,3277757891,405286936,2527147926,84871685,2595565466,118033927,305538066,2157648768,3795705826,3945188843,661212711,2999812018,1973414517,152769033,2208177539,745822252,439235610,455947803,1857215598,1525593178,2700827552,1391895634,994932283,3596728278,3016654259,695947817,3812548067,795958831,2224493444,1408607827,3513301457,0,3979133421,543178784,4229948412,2982705585,1542305371,1790891114,3410398667,3201918910,961245753,1256100938,1289001036,1491644504,3477767631,3496721360,4012557807,2867154858,4212583931,1137018435,1305975373,861234739,2241073541,1171229253,4178635257,33948674,2139225727,1357946960,1011120188,2679776671,2833468328,1374921297,2751356323,1086357568,2408187279,2460827538,2646352285,944271416,4110742005,3168756668,3066132406,3665145818,560153121,271589392,4279952895,4077846003,3530407890,3444343245,202643468,322250259,3962553324,1608629855,2543990167,1154254916,389623319,3294073796,2817676711,2122513534,1028094525,1689045092,1575467613,422261273,1939203699,1621147744,2174228865,1339137615,3699352540,577127458,712922154,2427141008,2290289544,1187679302,3995715566,3100863416,339486740,3732514782,1591917662,186455563,3681988059,3762019296,844522546,978220090,169743370,1239126601,101321734,611076132,1558493276,3260915650,3547250131,2901361580,1655096418,2443721105,2510565781,3828863972,2039214713,3878868455,3359869896,928607799,1840765549,2374762893,3580146133,1322425422,2850048425,1823791212,1459268694,4094161908,3928346602,1706019429,2056189050,2934523822,135794696,3134549946,2022240376,628050469,779246638,472135708,2800834470,3032970164,3327236038,3894660072,3715932637,1956440180,522272287,1272813131,3185336765,2340818315,2323976074,1888542832,1044544574,3049550261,1722469478,1222152264,50660867,4127324150,236067854,1638122081,895445557,1475980887,3117443513,2257655686,3243809217,489110045,2662934430,3778599393,4162055160,2561878936,288563729,1773916777,3648039385,2391345038,2493985684,2612407707,505560094,2274497927,3911240169,3460925390,1442818645,678973480,3749357023,2358182796,2717407649,2306869641,219617805,3218761151,3862026214,1120306242,1756942440,1103331905,2578459033,762796589,252780047,2966125488,1425844308,3151392187,372911126],y=[1667474886,2088535288,2004326894,2071694838,4075949567,1802223062,1869591006,3318043793,808472672,16843522,1734846926,724270422,4278065639,3621216949,2880169549,1987484396,3402253711,2189597983,3385409673,2105378810,4210693615,1499065266,1195886990,4042263547,2913856577,3570689971,2728590687,2947541573,2627518243,2762274643,1920112356,3233831835,3082273397,4261223649,2475929149,640051788,909531756,1061110142,4160160501,3435941763,875846760,2779116625,3857003729,4059105529,1903268834,3638064043,825316194,353713962,67374088,3351728789,589522246,3284360861,404236336,2526454071,84217610,2593830191,117901582,303183396,2155911963,3806477791,3958056653,656894286,2998062463,1970642922,151591698,2206440989,741110872,437923380,454765878,1852748508,1515908788,2694904667,1381168804,993742198,3604373943,3014905469,690584402,3823320797,791638366,2223281939,1398011302,3520161977,0,3991743681,538992704,4244381667,2981218425,1532751286,1785380564,3419096717,3200178535,960056178,1246420628,1280103576,1482221744,3486468741,3503319995,4025428677,2863326543,4227536621,1128514950,1296947098,859002214,2240123921,1162203018,4193849577,33687044,2139062782,1347481760,1010582648,2678045221,2829640523,1364325282,2745433693,1077985408,2408548869,2459086143,2644360225,943212656,4126475505,3166494563,3065430391,3671750063,555836226,269496352,4294908645,4092792573,3537006015,3452783745,202118168,320025894,3974901699,1600119230,2543297077,1145359496,387397934,3301201811,2812801621,2122220284,1027426170,1684319432,1566435258,421079858,1936954854,1616945344,2172753945,1330631070,3705438115,572679748,707427924,2425400123,2290647819,1179044492,4008585671,3099120491,336870440,3739122087,1583276732,185277718,3688593069,3772791771,842159716,976899700,168435220,1229577106,101059084,606366792,1549591736,3267517855,3553849021,2897014595,1650632388,2442242105,2509612081,3840161747,2038008818,3890688725,3368567691,926374254,1835907034,2374863873,3587531953,1313788572,2846482505,1819063512,1448540844,4109633523,3941213647,1701162954,2054852340,2930698567,134748176,3132806511,2021165296,623210314,774795868,471606328,2795958615,3031746419,3334885783,3907527627,3722280097,1953799400,522133822,1263263126,3183336545,2341176845,2324333839,1886425312,1044267644,3048588401,1718004428,1212733584,50529542,4143317495,235803164,1633788866,892690282,1465383342,3115962473,2256965911,3250673817,488449850,2661202215,3789633753,4177007595,2560144171,286339874,1768537042,3654906025,2391705863,2492770099,2610673197,505291324,2273808917,3924369609,3469625735,1431699370,673740880,3755965093,2358021891,2711746649,2307489801,218961690,3217021541,3873845719,1111672452,1751693520,1094828930,2576986153,757954394,252645662,2964376443,1414855848,3149649517,370555436],N=[1374988112,2118214995,437757123,975658646,1001089995,530400753,2902087851,1273168787,540080725,2910219766,2295101073,4110568485,1340463100,3307916247,641025152,3043140495,3736164937,632953703,1172967064,1576976609,3274667266,2169303058,2370213795,1809054150,59727847,361929877,3211623147,2505202138,3569255213,1484005843,1239443753,2395588676,1975683434,4102977912,2572697195,666464733,3202437046,4035489047,3374361702,2110667444,1675577880,3843699074,2538681184,1649639237,2976151520,3144396420,4269907996,4178062228,1883793496,2403728665,2497604743,1383856311,2876494627,1917518562,3810496343,1716890410,3001755655,800440835,2261089178,3543599269,807962610,599762354,33778362,3977675356,2328828971,2809771154,4077384432,1315562145,1708848333,101039829,3509871135,3299278474,875451293,2733856160,92987698,2767645557,193195065,1080094634,1584504582,3178106961,1042385657,2531067453,3711829422,1306967366,2438237621,1908694277,67556463,1615861247,429456164,3602770327,2302690252,1742315127,2968011453,126454664,3877198648,2043211483,2709260871,2084704233,4169408201,0,159417987,841739592,504459436,1817866830,4245618683,260388950,1034867998,908933415,168810852,1750902305,2606453969,607530554,202008497,2472011535,3035535058,463180190,2160117071,1641816226,1517767529,470948374,3801332234,3231722213,1008918595,303765277,235474187,4069246893,766945465,337553864,1475418501,2943682380,4003061179,2743034109,4144047775,1551037884,1147550661,1543208500,2336434550,3408119516,3069049960,3102011747,3610369226,1113818384,328671808,2227573024,2236228733,3535486456,2935566865,3341394285,496906059,3702665459,226906860,2009195472,733156972,2842737049,294930682,1206477858,2835123396,2700099354,1451044056,573804783,2269728455,3644379585,2362090238,2564033334,2801107407,2776292904,3669462566,1068351396,742039012,1350078989,1784663195,1417561698,4136440770,2430122216,775550814,2193862645,2673705150,1775276924,1876241833,3475313331,3366754619,270040487,3902563182,3678124923,3441850377,1851332852,3969562369,2203032232,3868552805,2868897406,566021896,4011190502,3135740889,1248802510,3936291284,699432150,832877231,708780849,3332740144,899835584,1951317047,4236429990,3767586992,866637845,4043610186,1106041591,2144161806,395441711,1984812685,1139781709,3433712980,3835036895,2664543715,1282050075,3240894392,1181045119,2640243204,25965917,4203181171,4211818798,3009879386,2463879762,3910161971,1842759443,2597806476,933301370,1509430414,3943906441,3467192302,3076639029,3776767469,2051518780,2631065433,1441952575,404016761,1942435775,1408749034,1610459739,3745345300,2017778566,3400528769,3110650942,941896748,3265478751,371049330,3168937228,675039627,4279080257,967311729,135050206,3635733660,1683407248,2076935265,3576870512,1215061108,3501741890],Q=[1347548327,1400783205,3273267108,2520393566,3409685355,4045380933,2880240216,2471224067,1428173050,4138563181,2441661558,636813900,4233094615,3620022987,2149987652,2411029155,1239331162,1730525723,2554718734,3781033664,46346101,310463728,2743944855,3328955385,3875770207,2501218972,3955191162,3667219033,768917123,3545789473,692707433,1150208456,1786102409,2029293177,1805211710,3710368113,3065962831,401639597,1724457132,3028143674,409198410,2196052529,1620529459,1164071807,3769721975,2226875310,486441376,2499348523,1483753576,428819965,2274680428,3075636216,598438867,3799141122,1474502543,711349675,129166120,53458370,2592523643,2782082824,4063242375,2988687269,3120694122,1559041666,730517276,2460449204,4042459122,2706270690,3446004468,3573941694,533804130,2328143614,2637442643,2695033685,839224033,1973745387,957055980,2856345839,106852767,1371368976,4181598602,1033297158,2933734917,1179510461,3046200461,91341917,1862534868,4284502037,605657339,2547432937,3431546947,2003294622,3182487618,2282195339,954669403,3682191598,1201765386,3917234703,3388507166,0,2198438022,1211247597,2887651696,1315723890,4227665663,1443857720,507358933,657861945,1678381017,560487590,3516619604,975451694,2970356327,261314535,3535072918,2652609425,1333838021,2724322336,1767536459,370938394,182621114,3854606378,1128014560,487725847,185469197,2918353863,3106780840,3356761769,2237133081,1286567175,3152976349,4255350624,2683765030,3160175349,3309594171,878443390,1988838185,3704300486,1756818940,1673061617,3403100636,272786309,1075025698,545572369,2105887268,4174560061,296679730,1841768865,1260232239,4091327024,3960309330,3497509347,1814803222,2578018489,4195456072,575138148,3299409036,446754879,3629546796,4011996048,3347532110,3252238545,4270639778,915985419,3483825537,681933534,651868046,2755636671,3828103837,223377554,2607439820,1649704518,3270937875,3901806776,1580087799,4118987695,3198115200,2087309459,2842678573,3016697106,1003007129,2802849917,1860738147,2077965243,164439672,4100872472,32283319,2827177882,1709610350,2125135846,136428751,3874428392,3652904859,3460984630,3572145929,3593056380,2939266226,824852259,818324884,3224740454,930369212,2801566410,2967507152,355706840,1257309336,4148292826,243256656,790073846,2373340630,1296297904,1422699085,3756299780,3818836405,457992840,3099667487,2135319889,77422314,1560382517,1945798516,788204353,1521706781,1385356242,870912086,325965383,2358957921,2050466060,2388260884,2313884476,4006521127,901210569,3990953189,1014646705,1503449823,1062597235,2031621326,3212035895,3931371469,1533017514,350174575,2256028891,2177544179,1052338372,741876788,1606591296,1914052035,213705253,2334669897,1107234197,1899603969,3725069491,2631447780,2422494913,1635502980,1893020342,1950903388,1120974935],P=[2807058932,1699970625,2764249623,1586903591,1808481195,1173430173,1487645946,59984867,4199882800,1844882806,1989249228,1277555970,3623636965,3419915562,1149249077,2744104290,1514790577,459744698,244860394,3235995134,1963115311,4027744588,2544078150,4190530515,1608975247,2627016082,2062270317,1507497298,2200818878,567498868,1764313568,3359936201,2305455554,2037970062,1047239e3,1910319033,1337376481,2904027272,2892417312,984907214,1243112415,830661914,861968209,2135253587,2011214180,2927934315,2686254721,731183368,1750626376,4246310725,1820824798,4172763771,3542330227,48394827,2404901663,2871682645,671593195,3254988725,2073724613,145085239,2280796200,2779915199,1790575107,2187128086,472615631,3029510009,4075877127,3802222185,4107101658,3201631749,1646252340,4270507174,1402811438,1436590835,3778151818,3950355702,3963161475,4020912224,2667994737,273792366,2331590177,104699613,95345982,3175501286,2377486676,1560637892,3564045318,369057872,4213447064,3919042237,1137477952,2658625497,1119727848,2340947849,1530455833,4007360968,172466556,266959938,516552836,0,2256734592,3980931627,1890328081,1917742170,4294704398,945164165,3575528878,958871085,3647212047,2787207260,1423022939,775562294,1739656202,3876557655,2530391278,2443058075,3310321856,547512796,1265195639,437656594,3121275539,719700128,3762502690,387781147,218828297,3350065803,2830708150,2848461854,428169201,122466165,3720081049,1627235199,648017665,4122762354,1002783846,2117360635,695634755,3336358691,4234721005,4049844452,3704280881,2232435299,574624663,287343814,612205898,1039717051,840019705,2708326185,793451934,821288114,1391201670,3822090177,376187827,3113855344,1224348052,1679968233,2361698556,1058709744,752375421,2431590963,1321699145,3519142200,2734591178,188127444,2177869557,3727205754,2384911031,3215212461,2648976442,2450346104,3432737375,1180849278,331544205,3102249176,4150144569,2952102595,2159976285,2474404304,766078933,313773861,2570832044,2108100632,1668212892,3145456443,2013908262,418672217,3070356634,2594734927,1852171925,3867060991,3473416636,3907448597,2614737639,919489135,164948639,2094410160,2997825956,590424639,2486224549,1723872674,3157750862,3399941250,3501252752,3625268135,2555048196,3673637356,1343127501,4130281361,3599595085,2957853679,1297403050,81781910,3051593425,2283490410,532201772,1367295589,3926170974,895287692,1953757831,1093597963,492483431,3528626907,1446242576,1192455638,1636604631,209336225,344873464,1015671571,669961897,3375740769,3857572124,2973530695,3747192018,1933530610,3464042516,935293895,3454686199,2858115069,1863638845,3683022916,4085369519,3292445032,875313188,1080017571,3279033885,621591778,1233856572,2504130317,24197544,3017672716,3835484340,3247465558,2220981195,3060847922,1551124588,1463996600],V=[4104605777,1097159550,396673818,660510266,2875968315,2638606623,4200115116,3808662347,821712160,1986918061,3430322568,38544885,3856137295,718002117,893681702,1654886325,2975484382,3122358053,3926825029,4274053469,796197571,1290801793,1184342925,3556361835,2405426947,2459735317,1836772287,1381620373,3196267988,1948373848,3764988233,3385345166,3263785589,2390325492,1480485785,3111247143,3780097726,2293045232,548169417,3459953789,3746175075,439452389,1362321559,1400849762,1685577905,1806599355,2174754046,137073913,1214797936,1174215055,3731654548,2079897426,1943217067,1258480242,529487843,1437280870,3945269170,3049390895,3313212038,923313619,679998e3,3215307299,57326082,377642221,3474729866,2041877159,133361907,1776460110,3673476453,96392454,878845905,2801699524,777231668,4082475170,2330014213,4142626212,2213296395,1626319424,1906247262,1846563261,562755902,3708173718,1040559837,3871163981,1418573201,3294430577,114585348,1343618912,2566595609,3186202582,1078185097,3651041127,3896688048,2307622919,425408743,3371096953,2081048481,1108339068,2216610296,0,2156299017,736970802,292596766,1517440620,251657213,2235061775,2933202493,758720310,265905162,1554391400,1532285339,908999204,174567692,1474760595,4002861748,2610011675,3234156416,3693126241,2001430874,303699484,2478443234,2687165888,585122620,454499602,151849742,2345119218,3064510765,514443284,4044981591,1963412655,2581445614,2137062819,19308535,1928707164,1715193156,4219352155,1126790795,600235211,3992742070,3841024952,836553431,1669664834,2535604243,3323011204,1243905413,3141400786,4180808110,698445255,2653899549,2989552604,2253581325,3252932727,3004591147,1891211689,2487810577,3915653703,4237083816,4030667424,2100090966,865136418,1229899655,953270745,3399679628,3557504664,4118925222,2061379749,3079546586,2915017791,983426092,2022837584,1607244650,2118541908,2366882550,3635996816,972512814,3283088770,1568718495,3499326569,3576539503,621982671,2895723464,410887952,2623762152,1002142683,645401037,1494807662,2595684844,1335535747,2507040230,4293295786,3167684641,367585007,3885750714,1865862730,2668221674,2960971305,2763173681,1059270954,2777952454,2724642869,1320957812,2194319100,2429595872,2815956275,77089521,3973773121,3444575871,2448830231,1305906550,4021308739,2857194700,2516901860,3518358430,1787304780,740276417,1699839814,1592394909,2352307457,2272556026,188821243,1729977011,3687994002,274084841,3594982253,3613494426,2701949495,4162096729,322734571,2837966542,1640576439,484830689,1202797690,3537852828,4067639125,349075736,3342319475,4157467219,4255800159,1030690015,1155237496,2951971274,1757691577,607398968,2738905026,499347990,3794078908,1011452712,227885567,2818666809,213114376,3034881240,1455525988,3414450555,850817237,1817998408,3092726480],q=[0,235474187,470948374,303765277,941896748,908933415,607530554,708780849,1883793496,2118214995,1817866830,1649639237,1215061108,1181045119,1417561698,1517767529,3767586992,4003061179,4236429990,4069246893,3635733660,3602770327,3299278474,3400528769,2430122216,2664543715,2362090238,2193862645,2835123396,2801107407,3035535058,3135740889,3678124923,3576870512,3341394285,3374361702,3810496343,3977675356,4279080257,4043610186,2876494627,2776292904,3076639029,3110650942,2472011535,2640243204,2403728665,2169303058,1001089995,899835584,666464733,699432150,59727847,226906860,530400753,294930682,1273168787,1172967064,1475418501,1509430414,1942435775,2110667444,1876241833,1641816226,2910219766,2743034109,2976151520,3211623147,2505202138,2606453969,2302690252,2269728455,3711829422,3543599269,3240894392,3475313331,3843699074,3943906441,4178062228,4144047775,1306967366,1139781709,1374988112,1610459739,1975683434,2076935265,1775276924,1742315127,1034867998,866637845,566021896,800440835,92987698,193195065,429456164,395441711,1984812685,2017778566,1784663195,1683407248,1315562145,1080094634,1383856311,1551037884,101039829,135050206,437757123,337553864,1042385657,807962610,573804783,742039012,2531067453,2564033334,2328828971,2227573024,2935566865,2700099354,3001755655,3168937228,3868552805,3902563182,4203181171,4102977912,3736164937,3501741890,3265478751,3433712980,1106041591,1340463100,1576976609,1408749034,2043211483,2009195472,1708848333,1809054150,832877231,1068351396,766945465,599762354,159417987,126454664,361929877,463180190,2709260871,2943682380,3178106961,3009879386,2572697195,2538681184,2236228733,2336434550,3509871135,3745345300,3441850377,3274667266,3910161971,3877198648,4110568485,4211818798,2597806476,2497604743,2261089178,2295101073,2733856160,2902087851,3202437046,2968011453,3936291284,3835036895,4136440770,4169408201,3535486456,3702665459,3467192302,3231722213,2051518780,1951317047,1716890410,1750902305,1113818384,1282050075,1584504582,1350078989,168810852,67556463,371049330,404016761,841739592,1008918595,775550814,540080725,3969562369,3801332234,4035489047,4269907996,3569255213,3669462566,3366754619,3332740144,2631065433,2463879762,2160117071,2395588676,2767645557,2868897406,3102011747,3069049960,202008497,33778362,270040487,504459436,875451293,975658646,675039627,641025152,2084704233,1917518562,1615861247,1851332852,1147550661,1248802510,1484005843,1451044056,933301370,967311729,733156972,632953703,260388950,25965917,328671808,496906059,1206477858,1239443753,1543208500,1441952575,2144161806,1908694277,1675577880,1842759443,3610369226,3644379585,3408119516,3307916247,4011190502,3776767469,4077384432,4245618683,2809771154,2842737049,3144396420,3043140495,2673705150,2438237621,2203032232,2370213795],_=[0,185469197,370938394,487725847,741876788,657861945,975451694,824852259,1483753576,1400783205,1315723890,1164071807,1950903388,2135319889,1649704518,1767536459,2967507152,3152976349,2801566410,2918353863,2631447780,2547432937,2328143614,2177544179,3901806776,3818836405,4270639778,4118987695,3299409036,3483825537,3535072918,3652904859,2077965243,1893020342,1841768865,1724457132,1474502543,1559041666,1107234197,1257309336,598438867,681933534,901210569,1052338372,261314535,77422314,428819965,310463728,3409685355,3224740454,3710368113,3593056380,3875770207,3960309330,4045380933,4195456072,2471224067,2554718734,2237133081,2388260884,3212035895,3028143674,2842678573,2724322336,4138563181,4255350624,3769721975,3955191162,3667219033,3516619604,3431546947,3347532110,2933734917,2782082824,3099667487,3016697106,2196052529,2313884476,2499348523,2683765030,1179510461,1296297904,1347548327,1533017514,1786102409,1635502980,2087309459,2003294622,507358933,355706840,136428751,53458370,839224033,957055980,605657339,790073846,2373340630,2256028891,2607439820,2422494913,2706270690,2856345839,3075636216,3160175349,3573941694,3725069491,3273267108,3356761769,4181598602,4063242375,4011996048,3828103837,1033297158,915985419,730517276,545572369,296679730,446754879,129166120,213705253,1709610350,1860738147,1945798516,2029293177,1239331162,1120974935,1606591296,1422699085,4148292826,4233094615,3781033664,3931371469,3682191598,3497509347,3446004468,3328955385,2939266226,2755636671,3106780840,2988687269,2198438022,2282195339,2501218972,2652609425,1201765386,1286567175,1371368976,1521706781,1805211710,1620529459,2105887268,1988838185,533804130,350174575,164439672,46346101,870912086,954669403,636813900,788204353,2358957921,2274680428,2592523643,2441661558,2695033685,2880240216,3065962831,3182487618,3572145929,3756299780,3270937875,3388507166,4174560061,4091327024,4006521127,3854606378,1014646705,930369212,711349675,560487590,272786309,457992840,106852767,223377554,1678381017,1862534868,1914052035,2031621326,1211247597,1128014560,1580087799,1428173050,32283319,182621114,401639597,486441376,768917123,651868046,1003007129,818324884,1503449823,1385356242,1333838021,1150208456,1973745387,2125135846,1673061617,1756818940,2970356327,3120694122,2802849917,2887651696,2637442643,2520393566,2334669897,2149987652,3917234703,3799141122,4284502037,4100872472,3309594171,3460984630,3545789473,3629546796,2050466060,1899603969,1814803222,1730525723,1443857720,1560382517,1075025698,1260232239,575138148,692707433,878443390,1062597235,243256656,91341917,409198410,325965383,3403100636,3252238545,3704300486,3620022987,3874428392,3990953189,4042459122,4227665663,2460449204,2578018489,2226875310,2411029155,3198115200,3046200461,2827177882,2743944855],Z=[0,218828297,437656594,387781147,875313188,958871085,775562294,590424639,1750626376,1699970625,1917742170,2135253587,1551124588,1367295589,1180849278,1265195639,3501252752,3720081049,3399941250,3350065803,3835484340,3919042237,4270507174,4085369519,3102249176,3051593425,2734591178,2952102595,2361698556,2177869557,2530391278,2614737639,3145456443,3060847922,2708326185,2892417312,2404901663,2187128086,2504130317,2555048196,3542330227,3727205754,3375740769,3292445032,3876557655,3926170974,4246310725,4027744588,1808481195,1723872674,1910319033,2094410160,1608975247,1391201670,1173430173,1224348052,59984867,244860394,428169201,344873464,935293895,984907214,766078933,547512796,1844882806,1627235199,2011214180,2062270317,1507497298,1423022939,1137477952,1321699145,95345982,145085239,532201772,313773861,830661914,1015671571,731183368,648017665,3175501286,2957853679,2807058932,2858115069,2305455554,2220981195,2474404304,2658625497,3575528878,3625268135,3473416636,3254988725,3778151818,3963161475,4213447064,4130281361,3599595085,3683022916,3432737375,3247465558,3802222185,4020912224,4172763771,4122762354,3201631749,3017672716,2764249623,2848461854,2331590177,2280796200,2431590963,2648976442,104699613,188127444,472615631,287343814,840019705,1058709744,671593195,621591778,1852171925,1668212892,1953757831,2037970062,1514790577,1463996600,1080017571,1297403050,3673637356,3623636965,3235995134,3454686199,4007360968,3822090177,4107101658,4190530515,2997825956,3215212461,2830708150,2779915199,2256734592,2340947849,2627016082,2443058075,172466556,122466165,273792366,492483431,1047239e3,861968209,612205898,695634755,1646252340,1863638845,2013908262,1963115311,1446242576,1530455833,1277555970,1093597963,1636604631,1820824798,2073724613,1989249228,1436590835,1487645946,1337376481,1119727848,164948639,81781910,331544205,516552836,1039717051,821288114,669961897,719700128,2973530695,3157750862,2871682645,2787207260,2232435299,2283490410,2667994737,2450346104,3647212047,3564045318,3279033885,3464042516,3980931627,3762502690,4150144569,4199882800,3070356634,3121275539,2904027272,2686254721,2200818878,2384911031,2570832044,2486224549,3747192018,3528626907,3310321856,3359936201,3950355702,3867060991,4049844452,4234721005,1739656202,1790575107,2108100632,1890328081,1402811438,1586903591,1233856572,1149249077,266959938,48394827,369057872,418672217,1002783846,919489135,567498868,752375421,209336225,24197544,376187827,459744698,945164165,895287692,574624663,793451934,1679968233,1764313568,2117360635,1933530610,1343127501,1560637892,1243112415,1192455638,3704280881,3519142200,3336358691,3419915562,3907448597,3857572124,4075877127,4294704398,3029510009,3113855344,2927934315,2744104290,2159976285,2377486676,2594734927,2544078150],de=[0,151849742,303699484,454499602,607398968,758720310,908999204,1059270954,1214797936,1097159550,1517440620,1400849762,1817998408,1699839814,2118541908,2001430874,2429595872,2581445614,2194319100,2345119218,3034881240,3186202582,2801699524,2951971274,3635996816,3518358430,3399679628,3283088770,4237083816,4118925222,4002861748,3885750714,1002142683,850817237,698445255,548169417,529487843,377642221,227885567,77089521,1943217067,2061379749,1640576439,1757691577,1474760595,1592394909,1174215055,1290801793,2875968315,2724642869,3111247143,2960971305,2405426947,2253581325,2638606623,2487810577,3808662347,3926825029,4044981591,4162096729,3342319475,3459953789,3576539503,3693126241,1986918061,2137062819,1685577905,1836772287,1381620373,1532285339,1078185097,1229899655,1040559837,923313619,740276417,621982671,439452389,322734571,137073913,19308535,3871163981,4021308739,4104605777,4255800159,3263785589,3414450555,3499326569,3651041127,2933202493,2815956275,3167684641,3049390895,2330014213,2213296395,2566595609,2448830231,1305906550,1155237496,1607244650,1455525988,1776460110,1626319424,2079897426,1928707164,96392454,213114376,396673818,514443284,562755902,679998e3,865136418,983426092,3708173718,3557504664,3474729866,3323011204,4180808110,4030667424,3945269170,3794078908,2507040230,2623762152,2272556026,2390325492,2975484382,3092726480,2738905026,2857194700,3973773121,3856137295,4274053469,4157467219,3371096953,3252932727,3673476453,3556361835,2763173681,2915017791,3064510765,3215307299,2156299017,2307622919,2459735317,2610011675,2081048481,1963412655,1846563261,1729977011,1480485785,1362321559,1243905413,1126790795,878845905,1030690015,645401037,796197571,274084841,425408743,38544885,188821243,3613494426,3731654548,3313212038,3430322568,4082475170,4200115116,3780097726,3896688048,2668221674,2516901860,2366882550,2216610296,3141400786,2989552604,2837966542,2687165888,1202797690,1320957812,1437280870,1554391400,1669664834,1787304780,1906247262,2022837584,265905162,114585348,499347990,349075736,736970802,585122620,972512814,821712160,2595684844,2478443234,2293045232,2174754046,3196267988,3079546586,2895723464,2777952454,3537852828,3687994002,3234156416,3385345166,4142626212,4293295786,3841024952,3992742070,174567692,57326082,410887952,292596766,777231668,660510266,1011452712,893681702,1108339068,1258480242,1343618912,1494807662,1715193156,1865862730,1948373848,2100090966,2701949495,2818666809,3004591147,3122358053,2235061775,2352307457,2535604243,2653899549,3915653703,3764988233,4219352155,4067639125,3444575871,3294430577,3746175075,3594982253,836553431,953270745,600235211,718002117,367585007,484830689,133361907,251657213,2041877159,1891211689,1806599355,1654886325,1568718495,1418573201,1335535747,1184342925];function ce(i){for(var I=[],R=0;R>2,this._Ke[ee][I%4]=F[I],this._Kd[i-ee][I%4]=F[I];for(var T=0,J=s,W;J>16&255]<<24^t[W>>8&255]<<16^t[W&255]<<8^t[W>>24&255]^l[T]<<24,T+=1,s!=8)for(var I=1;I>8&255]<<8^t[W>>16&255]<<16^t[W>>24&255]<<24;for(var I=s/2+1;I>2,S=J%4,this._Ke[Ae][S]=F[I],this._Kd[i-Ae][S]=F[I++],J++}for(var Ae=1;Ae>24&255]^_[W>>16&255]^Z[W>>8&255]^de[W&255]},H.prototype.encrypt=function(i){if(i.length!=16)throw new Error("invalid plaintext size (must be 16 bytes)");for(var I=this._Ke.length-1,R=[0,0,0,0],s=ce(i),F=0;F<4;F++)s[F]^=this._Ke[0][F];for(var ee=1;ee>24&255]^p[s[(F+1)%4]>>16&255]^w[s[(F+2)%4]>>8&255]^y[s[(F+3)%4]&255]^this._Ke[ee][F];s=R.slice()}for(var T=c(16),J,F=0;F<4;F++)J=this._Ke[I][F],T[4*F]=(t[s[F]>>24&255]^J>>24)&255,T[4*F+1]=(t[s[(F+1)%4]>>16&255]^J>>16)&255,T[4*F+2]=(t[s[(F+2)%4]>>8&255]^J>>8)&255,T[4*F+3]=(t[s[(F+3)%4]&255]^J)&255;return T},H.prototype.decrypt=function(i){if(i.length!=16)throw new Error("invalid ciphertext size (must be 16 bytes)");for(var I=this._Kd.length-1,R=[0,0,0,0],s=ce(i),F=0;F<4;F++)s[F]^=this._Kd[0][F];for(var ee=1;ee>24&255]^Q[s[(F+3)%4]>>16&255]^P[s[(F+2)%4]>>8&255]^V[s[(F+1)%4]&255]^this._Kd[ee][F];s=R.slice()}for(var T=c(16),J,F=0;F<4;F++)J=this._Kd[I][F],T[4*F]=(B[s[F]>>24&255]^J>>24)&255,T[4*F+1]=(B[s[(F+3)%4]>>16&255]^J>>16)&255,T[4*F+2]=(B[s[(F+2)%4]>>8&255]^J>>8)&255,T[4*F+3]=(B[s[(F+1)%4]&255]^J)&255;return T};var k=function(i){if(!(this instanceof k))throw Error("AES must be instanitated with `new`");this.description="Electronic Code Block",this.name="ecb",this._aes=new H(i)};k.prototype.encrypt=function(i){if(i=f(i),i.length%16!==0)throw new Error("invalid plaintext size (must be multiple of 16 bytes)");for(var I=c(i.length),R=c(16),s=0;s=0;--I)this._counter[I]=i%256,i=i>>8},u.prototype.setBytes=function(i){if(i=f(i,!0),i.length!=16)throw new Error("invalid counter bytes size (must be 16 bytes)");this._counter=i},u.prototype.increment=function(){for(var i=15;i>=0;i--)if(this._counter[i]===255)this._counter[i]=0;else{this._counter[i]++;break}};var o=function(i,I){if(!(this instanceof o))throw Error("AES must be instanitated with `new`");this.description="Counter",this.name="ctr",I instanceof u||(I=new u(I)),this._counter=I,this._remainingCounter=null,this._remainingCounterIndex=16,this._aes=new H(i)};o.prototype.encrypt=function(i){for(var I=f(i,!0),R=0;R16)throw new Error("PKCS#7 padding byte out of range");for(var R=i.length-I,s=0;s{"use strict";Object.defineProperty(Wd,"__esModule",{value:!0});Wd.version=void 0;Wd.version="json-wallets/5.7.0"});var I7=U(u2=>{"use strict";Object.defineProperty(u2,"__esModule",{value:!0});u2.uuidV4=u2.searchPath=u2.getPassword=u2.zpad=u2.looseArrayify=void 0;var Kd=Xe(),lo=U0();function iv(A){return typeof A=="string"&&A.substring(0,2)!=="0x"&&(A="0x"+A),(0,Kd.arrayify)(A)}u2.looseArrayify=iv;function ov(A,a){for(A=String(A);A.length{"use strict";var hv=iA&&iA.__extends||function(){var A=function(a,e){return A=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(f,c){f.__proto__=c}||function(f,c){for(var d in c)Object.prototype.hasOwnProperty.call(c,d)&&(f[d]=c[d])},A(a,e)};return function(a,e){if(typeof e!="function"&&e!==null)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");A(a,e);function f(){this.constructor=a}a.prototype=e===null?Object.create(e):(f.prototype=e.prototype,new f)}}(),Cv=iA&&iA.__importDefault||function(A){return A&&A.__esModule?A:{default:A}};Object.defineProperty(iA,"__esModule",{value:!0});iA.decrypt=iA.CrowdsaleAccount=void 0;var ro=Cv(C7()),gv=a2(),no=Xe(),Iv=Na(),Fv=Qd(),Dv=U0(),mv=c0(),xv=me(),pv=g7(),Tv=new xv.Logger(pv.version),qd=I7(),to=function(A){hv(a,A);function a(){return A!==null&&A.apply(this,arguments)||this}return a.prototype.isCrowdsaleAccount=function(e){return!!(e&&e._isCrowdsaleAccount)},a}(mv.Description);iA.CrowdsaleAccount=to;function wv(A,a){var e=JSON.parse(A);a=(0,qd.getPassword)(a);var f=(0,gv.getAddress)((0,qd.searchPath)(e,"ethaddr")),c=(0,qd.looseArrayify)((0,qd.searchPath)(e,"encseed"));(!c||c.length%16!==0)&&Tv.throwArgumentError("invalid encseed","json",A);for(var d=(0,no.arrayify)((0,Fv.pbkdf2)(a,a,2e3,32,"sha256")).slice(0,16),b=c.slice(0,16),r=c.slice(16),n=new ro.default.ModeOfOperation.cbc(d,b),l=ro.default.padding.pkcs7.strip((0,no.arrayify)(n.decrypt(r))),t="",B=0;B{"use strict";Object.defineProperty(Ff,"__esModule",{value:!0});Ff.getJsonWalletAddress=Ff.isKeystoreWallet=Ff.isCrowdsaleWallet=void 0;var io=a2();function oo(A){var a=null;try{a=JSON.parse(A)}catch{return!1}return a.encseed&&a.ethaddr}Ff.isCrowdsaleWallet=oo;function so(A){var a=null;try{a=JSON.parse(A)}catch{return!1}return!(!a.version||parseInt(a.version)!==a.version||parseInt(a.version)!==3)}Ff.isKeystoreWallet=so;function Rv(A){if(oo(A))try{return(0,io.getAddress)(JSON.parse(A).ethaddr)}catch{return null}if(so(A))try{return(0,io.getAddress)(JSON.parse(A).address)}catch{return null}return null}Ff.getJsonWalletAddress=Rv});var ho=U((F7,Bo)=>{"use strict";(function(A){function e(p){let w=new Uint32Array([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]),y=1779033703,N=3144134277,Q=1013904242,P=2773480762,V=1359893119,q=2600822924,_=528734635,Z=1541459225,de=new Uint32Array(64);function ce(o){let C=0,m=o.length;for(;m>=64;){let g=y,i=N,I=Q,R=P,s=V,F=q,ee=_,T=Z,J,W,Ae,S,M;for(W=0;W<16;W++)Ae=C+W*4,de[W]=(o[Ae]&255)<<24|(o[Ae+1]&255)<<16|(o[Ae+2]&255)<<8|o[Ae+3]&255;for(W=16;W<64;W++)J=de[W-2],S=(J>>>17|J<<32-17)^(J>>>19|J<<32-19)^J>>>10,J=de[W-15],M=(J>>>7|J<<32-7)^(J>>>18|J<<32-18)^J>>>3,de[W]=(S+de[W-7]|0)+(M+de[W-16]|0)|0;for(W=0;W<64;W++)S=(((s>>>6|s<<32-6)^(s>>>11|s<<32-11)^(s>>>25|s<<32-25))+(s&F^~s&ee)|0)+(T+(w[W]+de[W]|0)|0)|0,M=((g>>>2|g<<32-2)^(g>>>13|g<<32-13)^(g>>>22|g<<32-22))+(g&i^g&I^i&I)|0,T=ee,ee=F,F=s,s=R+S|0,R=I,I=i,i=g,g=S+M|0;y=y+g|0,N=N+i|0,Q=Q+I|0,P=P+R|0,V=V+s|0,q=q+F|0,_=_+ee|0,Z=Z+T|0,C+=64,m-=64}}ce(p);let H,k=p.length%64,E=p.length/536870912|0,D=p.length<<3,h=k<56?56:120,u=p.slice(p.length-k,p.length);for(u.push(128),H=k+1;H>>24&255),u.push(E>>>16&255),u.push(E>>>8&255),u.push(E>>>0&255),u.push(D>>>24&255),u.push(D>>>16&255),u.push(D>>>8&255),u.push(D>>>0&255),ce(u),[y>>>24&255,y>>>16&255,y>>>8&255,y>>>0&255,N>>>24&255,N>>>16&255,N>>>8&255,N>>>0&255,Q>>>24&255,Q>>>16&255,Q>>>8&255,Q>>>0&255,P>>>24&255,P>>>16&255,P>>>8&255,P>>>0&255,V>>>24&255,V>>>16&255,V>>>8&255,V>>>0&255,q>>>24&255,q>>>16&255,q>>>8&255,q>>>0&255,_>>>24&255,_>>>16&255,_>>>8&255,_>>>0&255,Z>>>24&255,Z>>>16&255,Z>>>8&255,Z>>>0&255]}function f(p,w,y){p=p.length<=64?p:e(p);let N=64+w.length+4,Q=new Array(N),P=new Array(64),V,q=[];for(V=0;V<64;V++)Q[V]=54;for(V=0;V=N-4;Z--){if(Q[Z]++,Q[Z]<=255)return;Q[Z]=0}}for(;y>=32;)_(),q=q.concat(e(P.concat(e(Q)))),y-=32;return y>0&&(_(),q=q.concat(e(P.concat(e(Q))).slice(0,y))),q}function c(p,w,y,N,Q){let P;for(n(p,(2*y-1)*16,Q,0,16),P=0;P<2*y;P++)r(p,P*16,Q,16),b(Q,N),n(Q,0,p,w+P*16,16);for(P=0;P>>32-w}function b(p,w){n(p,0,w,0,16);for(let y=8;y>0;y-=2)w[4]^=d(w[0]+w[12],7),w[8]^=d(w[4]+w[0],9),w[12]^=d(w[8]+w[4],13),w[0]^=d(w[12]+w[8],18),w[9]^=d(w[5]+w[1],7),w[13]^=d(w[9]+w[5],9),w[1]^=d(w[13]+w[9],13),w[5]^=d(w[1]+w[13],18),w[14]^=d(w[10]+w[6],7),w[2]^=d(w[14]+w[10],9),w[6]^=d(w[2]+w[14],13),w[10]^=d(w[6]+w[2],18),w[3]^=d(w[15]+w[11],7),w[7]^=d(w[3]+w[15],9),w[11]^=d(w[7]+w[3],13),w[15]^=d(w[11]+w[7],18),w[1]^=d(w[0]+w[3],7),w[2]^=d(w[1]+w[0],9),w[3]^=d(w[2]+w[1],13),w[0]^=d(w[3]+w[2],18),w[6]^=d(w[5]+w[4],7),w[7]^=d(w[6]+w[5],9),w[4]^=d(w[7]+w[6],13),w[5]^=d(w[4]+w[7],18),w[11]^=d(w[10]+w[9],7),w[8]^=d(w[11]+w[10],9),w[9]^=d(w[8]+w[11],13),w[10]^=d(w[9]+w[8],18),w[12]^=d(w[15]+w[14],7),w[13]^=d(w[12]+w[15],9),w[14]^=d(w[13]+w[12],13),w[15]^=d(w[14]+w[13],18);for(let y=0;y<16;++y)p[y]+=w[y]}function r(p,w,y,N){for(let Q=0;Q=256)return!1}return!0}function t(p,w){if(typeof p!="number"||p%1)throw new Error("invalid "+w);return p}function B(p,w,y,N,Q,P,V){if(y=t(y,"N"),N=t(N,"r"),Q=t(Q,"p"),P=t(P,"dkLen"),y===0||(y&y-1)!==0)throw new Error("N must be power of 2");if(y>2147483647/128/N)throw new Error("N too large");if(N>2147483647/128/Q)throw new Error("r too large");if(!l(p))throw new Error("password must be an array or buffer");if(p=Array.prototype.slice.call(p),!l(w))throw new Error("salt must be an array or buffer");w=Array.prototype.slice.call(w);let q=f(p,w,Q*128*N),_=new Uint32Array(Q*32*N);for(let s=0;s<_.length;s++){let F=s*4;_[s]=(q[F+3]&255)<<24|(q[F+2]&255)<<16|(q[F+1]&255)<<8|(q[F+0]&255)<<0}let Z=new Uint32Array(64*N),de=new Uint32Array(32*N*y),ce=32*N,H=new Uint32Array(16),k=new Uint32Array(16),E=Q*y*2,D=0,h=null,u=!1,o=0,C=0,m,g,i=V?parseInt(1e3/N):4294967295,I=typeof setImmediate<"u"?setImmediate:setTimeout,R=function(){if(u)return V(new Error("cancelled"),D/E);let s;switch(o){case 0:g=C*32*N,n(_,g,Z,0,ce),o=1,m=0;case 1:s=y-m,s>i&&(s=i);for(let ee=0;eei&&(s=i);for(let ee=0;ee>0&255),q.push(_[ee]>>8&255),q.push(_[ee]>>16&255),q.push(_[ee]>>24&255);let F=f(p,q,P);return V&&V(null,1,F),F}V&&I(R)};if(!V)for(;;){let s=R();if(s!=null)return s}R()}let x={scrypt:function(p,w,y,N,Q,P,V){return new Promise(function(q,_){let Z=0;V&&V(0),B(p,w,y,N,Q,P,function(de,ce,H){if(de)_(de);else if(H)V&&Z!==1&&V(1),q(new Uint8Array(H));else if(V&&ce!==Z)return Z=ce,V(ce)})})},syncScrypt:function(p,w,y,N,Q,P){return new Uint8Array(B(p,w,y,N,Q,P))}};typeof F7<"u"?Bo.exports=x:typeof define=="function"&&define.amd?define(x):A&&(A.scrypt&&(A._scrypt=A.scrypt),A.scrypt=x)})(F7)});var wo=U(q0=>{"use strict";var Sv=q0&&q0.__extends||function(){var A=function(a,e){return A=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(f,c){f.__proto__=c}||function(f,c){for(var d in c)Object.prototype.hasOwnProperty.call(c,d)&&(f[d]=c[d])},A(a,e)};return function(a,e){if(typeof e!="function"&&e!==null)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");A(a,e);function f(){this.constructor=a}a.prototype=e===null?Object.create(e):(f.prototype=e.prototype,new f)}}(),vv=q0&&q0.__awaiter||function(A,a,e,f){function c(d){return d instanceof e?d:new e(function(b){b(d)})}return new(e||(e=Promise))(function(d,b){function r(t){try{l(f.next(t))}catch(B){b(B)}}function n(t){try{l(f.throw(t))}catch(B){b(B)}}function l(t){t.done?d(t.value):c(t.value).then(r,n)}l((f=f.apply(A,a||[])).next())})},kv=q0&&q0.__generator||function(A,a){var e={label:0,sent:function(){if(d[0]&1)throw d[1];return d[1]},trys:[],ops:[]},f,c,d,b;return b={next:r(0),throw:r(1),return:r(2)},typeof Symbol=="function"&&(b[Symbol.iterator]=function(){return this}),b;function r(l){return function(t){return n([l,t])}}function n(l){if(f)throw new TypeError("Generator is already executing.");for(;e;)try{if(f=1,c&&(d=l[0]&2?c.return:l[0]?c.throw||((d=c.return)&&d.call(c),0):c.next)&&!(d=d.call(c,l[1])).done)return d;switch(c=0,d&&(l=[l[0]&2,d.value]),l[0]){case 0:case 1:d=l;break;case 4:return e.label++,{value:l[1],done:!1};case 5:e.label++,c=l[1],l=[0];continue;case 7:l=e.ops.pop(),e.trys.pop();continue;default:if(d=e.trys,!(d=d.length>0&&d[d.length-1])&&(l[0]===6||l[0]===2)){e=0;continue}if(l[0]===3&&(!d||l[1]>d[0]&&l[1]{"use strict";Object.defineProperty(G0,"__esModule",{value:!0});G0.decryptJsonWalletSync=G0.decryptJsonWallet=G0.getJsonWalletAddress=G0.isKeystoreWallet=G0.isCrowdsaleWallet=G0.encryptKeystore=G0.decryptKeystoreSync=G0.decryptKeystore=G0.decryptCrowdsale=void 0;var p7=uo();Object.defineProperty(G0,"decryptCrowdsale",{enumerable:!0,get:function(){return p7.decrypt}});var I1=Eo();Object.defineProperty(G0,"getJsonWalletAddress",{enumerable:!0,get:function(){return I1.getJsonWalletAddress}});Object.defineProperty(G0,"isCrowdsaleWallet",{enumerable:!0,get:function(){return I1.isCrowdsaleWallet}});Object.defineProperty(G0,"isKeystoreWallet",{enumerable:!0,get:function(){return I1.isKeystoreWallet}});var u3=wo();Object.defineProperty(G0,"decryptKeystore",{enumerable:!0,get:function(){return u3.decrypt}});Object.defineProperty(G0,"decryptKeystoreSync",{enumerable:!0,get:function(){return u3.decryptSync}});Object.defineProperty(G0,"encryptKeystore",{enumerable:!0,get:function(){return u3.encrypt}});function Vv(A,a,e){if((0,I1.isCrowdsaleWallet)(A)){e&&e(0);var f=(0,p7.decrypt)(A,a);return e&&e(1),Promise.resolve(f)}return(0,I1.isKeystoreWallet)(A)?(0,u3.decrypt)(A,a,e):Promise.reject(new Error("invalid JSON wallet"))}G0.decryptJsonWallet=Vv;function Lv(A,a){if((0,I1.isCrowdsaleWallet)(A))return(0,p7.decrypt)(A,a);if((0,I1.isKeystoreWallet)(A))return(0,u3.decryptSync)(A,a);throw new Error("invalid JSON wallet")}G0.decryptJsonWalletSync=Lv});var Ro=U(jd=>{"use strict";Object.defineProperty(jd,"__esModule",{value:!0});jd.version=void 0;jd.version="wallet/5.7.0"});var S7=U(ka=>{"use strict";var Jv=ka&&ka.__extends||function(){var A=function(a,e){return A=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(f,c){f.__proto__=c}||function(f,c){for(var d in c)Object.prototype.hasOwnProperty.call(c,d)&&(f[d]=c[d])},A(a,e)};return function(a,e){if(typeof e!="function"&&e!==null)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");A(a,e);function f(){this.constructor=a}a.prototype=e===null?Object.create(e):(f.prototype=e.prototype,new f)}}(),So=ka&&ka.__awaiter||function(A,a,e,f){function c(d){return d instanceof e?d:new e(function(b){b(d)})}return new(e||(e=Promise))(function(d,b){function r(t){try{l(f.next(t))}catch(B){b(B)}}function n(t){try{l(f.throw(t))}catch(B){b(B)}}function l(t){t.done?d(t.value):c(t.value).then(r,n)}l((f=f.apply(A,a||[])).next())})},vo=ka&&ka.__generator||function(A,a){var e={label:0,sent:function(){if(d[0]&1)throw d[1];return d[1]},trys:[],ops:[]},f,c,d,b;return b={next:r(0),throw:r(1),return:r(2)},typeof Symbol=="function"&&(b[Symbol.iterator]=function(){return this}),b;function r(l){return function(t){return n([l,t])}}function n(l){if(f)throw new TypeError("Generator is already executing.");for(;e;)try{if(f=1,c&&(d=l[0]&2?c.return:l[0]?c.throw||((d=c.return)&&d.call(c),0):c.next)&&!(d=d.call(c,l[1])).done)return d;switch(c=0,d&&(l=[l[0]&2,d.value]),l[0]){case 0:case 1:d=l;break;case 4:return e.label++,{value:l[1],done:!1};case 5:e.label++,c=l[1],l=[0];continue;case 7:l=e.ops.pop(),e.trys.pop();continue;default:if(d=e.trys,!(d=d.length>0&&d[d.length-1])&&(l[0]===6||l[0]===2)){e=0;continue}if(l[0]===3&&(!d||l[1]>d[0]&&l[1]{"use strict";Object.defineProperty(_d,"__esModule",{value:!0});_d.version=void 0;_d.version="networks/5.7.1"});var v7=U(a5=>{"use strict";Object.defineProperty(a5,"__esModule",{value:!0});a5.getNetwork=void 0;var _v=me(),$v=Mo(),Uo=new _v.Logger($v.version);function ek(A){return A&&typeof A.renetwork=="function"}function OA(A){var a=function(e,f){f==null&&(f={});var c=[];if(e.InfuraProvider&&f.infura!=="-")try{c.push(new e.InfuraProvider(A,f.infura))}catch{}if(e.EtherscanProvider&&f.etherscan!=="-")try{c.push(new e.EtherscanProvider(A,f.etherscan))}catch{}if(e.AlchemyProvider&&f.alchemy!=="-")try{c.push(new e.AlchemyProvider(A,f.alchemy))}catch{}if(e.PocketProvider&&f.pocket!=="-"){var d=["goerli","ropsten","rinkeby","sepolia"];try{var b=new e.PocketProvider(A,f.pocket);b.network&&d.indexOf(b.network.name)===-1&&c.push(b)}catch{}}if(e.CloudflareProvider&&f.cloudflare!=="-")try{c.push(new e.CloudflareProvider(A))}catch{}if(e.AnkrProvider&&f.ankr!=="-")try{var d=["ropsten"],b=new e.AnkrProvider(A,f.ankr);b.network&&d.indexOf(b.network.name)===-1&&c.push(b)}catch{}if(c.length===0)return null;if(e.FallbackProvider){var r=1;return f.quorum!=null?r=f.quorum:A==="homestead"&&(r=2),new e.FallbackProvider(c,r)}return c[0]};return a.renetwork=function(e){return OA(e)},a}function e5(A,a){var e=function(f,c){return f.JsonRpcProvider?new f.JsonRpcProvider(A,a):null};return e.renetwork=function(f){return e5(A,f)},e}var No={chainId:1,ensAddress:"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e",name:"homestead",_defaultProvider:OA("homestead")},Oo={chainId:3,ensAddress:"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e",name:"ropsten",_defaultProvider:OA("ropsten")},Go={chainId:63,name:"classicMordor",_defaultProvider:e5("https://www.ethercluster.com/mordor","classicMordor")},$d={unspecified:{chainId:0,name:"unspecified"},homestead:No,mainnet:No,morden:{chainId:2,name:"morden"},ropsten:Oo,testnet:Oo,rinkeby:{chainId:4,ensAddress:"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e",name:"rinkeby",_defaultProvider:OA("rinkeby")},kovan:{chainId:42,name:"kovan",_defaultProvider:OA("kovan")},goerli:{chainId:5,ensAddress:"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e",name:"goerli",_defaultProvider:OA("goerli")},kintsugi:{chainId:1337702,name:"kintsugi"},sepolia:{chainId:11155111,name:"sepolia",_defaultProvider:OA("sepolia")},classic:{chainId:61,name:"classic",_defaultProvider:e5("https://www.ethercluster.com/etc","classic")},classicMorden:{chainId:62,name:"classicMorden"},classicMordor:Go,classicTestnet:Go,classicKotti:{chainId:6,name:"classicKotti",_defaultProvider:e5("https://www.ethercluster.com/kotti","classicKotti")},xdai:{chainId:100,name:"xdai"},matic:{chainId:137,name:"matic",_defaultProvider:OA("matic")},maticmum:{chainId:80001,name:"maticmum"},optimism:{chainId:10,name:"optimism",_defaultProvider:OA("optimism")},"optimism-kovan":{chainId:69,name:"optimism-kovan"},"optimism-goerli":{chainId:420,name:"optimism-goerli"},arbitrum:{chainId:42161,name:"arbitrum"},"arbitrum-rinkeby":{chainId:421611,name:"arbitrum-rinkeby"},"arbitrum-goerli":{chainId:421613,name:"arbitrum-goerli"},bnb:{chainId:56,name:"bnb"},bnbt:{chainId:97,name:"bnbt"}};function ak(A){if(A==null)return null;if(typeof A=="number"){for(var a in $d){var e=$d[a];if(e.chainId===A)return{name:e.name,chainId:e.chainId,ensAddress:e.ensAddress||null,_defaultProvider:e._defaultProvider||null}}return{chainId:A,name:"unknown"}}if(typeof A=="string"){var f=$d[A];return f==null?null:{name:f.name,chainId:f.chainId,ensAddress:f.ensAddress,_defaultProvider:f._defaultProvider||null}}var c=$d[A.name];if(!c)return typeof A.chainId!="number"&&Uo.throwArgumentError("invalid network chainId","network",A),A;A.chainId!==0&&A.chainId!==c.chainId&&Uo.throwArgumentError("network chainId mismatch","network",A);var d=A._defaultProvider||null;return d==null&&c._defaultProvider&&(ek(c._defaultProvider)?d=c._defaultProvider.renetwork(A):d=c._defaultProvider),{name:A.name,chainId:c.chainId,ensAddress:A.ensAddress||c.ensAddress||null,_defaultProvider:d}}a5.getNetwork=ak});var k7=U(A5=>{"use strict";Object.defineProperty(A5,"__esModule",{value:!0});A5.version=void 0;A5.version="web/5.7.1"});var Jo=U(sA=>{"use strict";var Ak=sA&&sA.__awaiter||function(A,a,e,f){function c(d){return d instanceof e?d:new e(function(b){b(d)})}return new(e||(e=Promise))(function(d,b){function r(t){try{l(f.next(t))}catch(B){b(B)}}function n(t){try{l(f.throw(t))}catch(B){b(B)}}function l(t){t.done?d(t.value):c(t.value).then(r,n)}l((f=f.apply(A,a||[])).next())})},fk=sA&&sA.__generator||function(A,a){var e={label:0,sent:function(){if(d[0]&1)throw d[1];return d[1]},trys:[],ops:[]},f,c,d,b;return b={next:r(0),throw:r(1),return:r(2)},typeof Symbol=="function"&&(b[Symbol.iterator]=function(){return this}),b;function r(l){return function(t){return n([l,t])}}function n(l){if(f)throw new TypeError("Generator is already executing.");for(;e;)try{if(f=1,c&&(d=l[0]&2?c.return:l[0]?c.throw||((d=c.return)&&d.call(c),0):c.next)&&!(d=d.call(c,l[1])).done)return d;switch(c=0,d&&(l=[l[0]&2,d.value]),l[0]){case 0:case 1:d=l;break;case 4:return e.label++,{value:l[1],done:!1};case 5:e.label++,c=l[1],l=[0];continue;case 7:l=e.ops.pop(),e.trys.pop();continue;default:if(d=e.trys,!(d=d.length>0&&d[d.length-1])&&(l[0]===6||l[0]===2)){e=0;continue}if(l[0]===3&&(!d||l[1]>d[0]&&l[1]{"use strict";var ok=i2&&i2.__awaiter||function(A,a,e,f){function c(d){return d instanceof e?d:new e(function(b){b(d)})}return new(e||(e=Promise))(function(d,b){function r(t){try{l(f.next(t))}catch(B){b(B)}}function n(t){try{l(f.throw(t))}catch(B){b(B)}}function l(t){t.done?d(t.value):c(t.value).then(r,n)}l((f=f.apply(A,a||[])).next())})},sk=i2&&i2.__generator||function(A,a){var e={label:0,sent:function(){if(d[0]&1)throw d[1];return d[1]},trys:[],ops:[]},f,c,d,b;return b={next:r(0),throw:r(1),return:r(2)},typeof Symbol=="function"&&(b[Symbol.iterator]=function(){return this}),b;function r(l){return function(t){return n([l,t])}}function n(l){if(f)throw new TypeError("Generator is already executing.");for(;e;)try{if(f=1,c&&(d=l[0]&2?c.return:l[0]?c.throw||((d=c.return)&&d.call(c),0):c.next)&&!(d=d.call(c,l[1])).done)return d;switch(c=0,d&&(l=[l[0]&2,d.value]),l[0]){case 0:case 1:d=l;break;case 4:return e.label++,{value:l[1],done:!1};case 5:e.label++,c=l[1],l=[0];continue;case 7:l=e.ops.pop(),e.trys.pop();continue;default:if(d=e.trys,!(d=d.length>0&&d[d.length-1])&&(l[0]===6||l[0]===2)){e=0;continue}if(l[0]===3&&(!d||l[1]>d[0]&&l[1]0&&f%1===0,"invalid connection throttle limit","connection.throttleLimit",f);var c=typeof A=="object"?A.throttleCallback:null,d=typeof A=="object"&&typeof A.throttleSlotInterval=="number"?A.throttleSlotInterval:100;Q2.assertArgument(d>0&&d%1===0,"invalid connection throttle slot interval","connection.throttleSlotInterval",d);var b=typeof A=="object"?!!A.errorPassThrough:!1,r={},n=null,l={method:"GET"},t=!1,B=2*60*1e3;if(typeof A=="string")n=A;else if(typeof A=="object"){if((A==null||A.url==null)&&Q2.throwArgumentError("missing URL","connection.url",A),n=A.url,typeof A.timeout=="number"&&A.timeout>0&&(B=A.timeout),A.headers)for(var x in A.headers)r[x.toLowerCase()]={key:x,value:String(A.headers[x])},["if-none-match","if-modified-since"].indexOf(x.toLowerCase())>=0&&(t=!0);if(l.allowGzip=!!A.allowGzip,A.user!=null&&A.password!=null){n.substring(0,6)!=="https:"&&A.allowInsecureAuthentication!==!0&&Q2.throwError("basic authentication requires a secure https url",GA.Logger.errors.INVALID_ARGUMENT,{argument:"url",url:n,user:A.user,password:"[REDACTED]"});var p=A.user+":"+A.password;r.authorization={key:"Authorization",value:"Basic "+(0,Ho.encode)((0,s3.toUtf8Bytes)(p))}}A.skipFetchSetup!=null&&(l.skipFetchSetup=!!A.skipFetchSetup),A.fetchOptions!=null&&(l.fetchOptions=(0,f5.shallowCopy)(A.fetchOptions))}var w=new RegExp("^data:([^;:]*)?(;base64)?,(.*)$","i"),y=n?n.match(w):null;if(y)try{var N={statusCode:200,statusMessage:"OK",headers:{"content-type":y[1]||"text/plain"},body:y[2]?(0,Ho.decode)(y[3]):hk(y[3])},Q=N.body;return e&&(Q=e(N.body,N)),Promise.resolve(Q)}catch(_){Q2.throwError("processing response error",GA.Logger.errors.SERVER_ERROR,{body:mf(y[1],y[2]),error:_,requestBody:null,requestMethod:"GET",url:n})}a&&(l.method="POST",l.body=a,r["content-type"]==null&&(r["content-type"]={key:"Content-Type",value:"application/octet-stream"}),r["content-length"]==null&&(r["content-length"]={key:"Content-Length",value:String(a.length)}));var P={};Object.keys(r).forEach(function(_){var Z=r[_];P[Z.key]=Z.value}),l.headers=P;var V=function(){var _=null,Z=new Promise(function(ce,H){B&&(_=setTimeout(function(){_!=null&&(_=null,H(Q2.makeError("timeout",GA.Logger.errors.TIMEOUT,{requestBody:mf(l.body,P["content-type"]),requestMethod:l.method,timeout:B,url:n})))},B))}),de=function(){_!=null&&(clearTimeout(_),_=null)};return{promise:Z,cancel:de}}(),q=function(){return ok(this,void 0,void 0,function(){var _,Z,de,u,ce,H,k,E,D,h,u,o;return sk(this,function(C){switch(C.label){case 0:_=0,C.label=1;case 1:if(!(_=300)&&(V.cancel(),Q2.throwError("bad response",GA.Logger.errors.SERVER_ERROR,{status:Z.statusCode,headers:Z.headers,body:mf(E,Z.headers?Z.headers["content-type"]:null),requestBody:mf(l.body,P["content-type"]),requestMethod:l.method,url:n})),!e)return[3,18];C.label=11;case 11:return C.trys.push([11,13,,18]),[4,e(E,Z)];case 12:return D=C.sent(),V.cancel(),[2,D];case 13:return h=C.sent(),h.throttleRetry&&_r){b()&&f(new Error("retry limit reached"));return}var B=a.interval*parseInt(String(Math.random()*Math.pow(2,n)));Ba.ceiling&&(B=a.ceiling),setTimeout(l,B)}return null},function(t){b()&&f(t)})}l()})}i2.poll=gk});var zo=U((TY,qo)=>{"use strict";var d5="qpzry9x8gf2tvdw0s3jn54khce6mua7l",Q7={};for(E3=0;E3>25;return(A&33554431)<<5^-(a>>0&1)&996825010^-(a>>1&1)&642813549^-(a>>2&1)&513874426^-(a>>3&1)&1027748829^-(a>>4&1)&705979059}function Wo(A){for(var a=1,e=0;e126)return"Invalid prefix ("+A+")";a=J4(a)^f>>5}for(a=J4(a),e=0;ee)throw new TypeError("Exceeds length limit");A=A.toLowerCase();var f=Wo(A);if(typeof f=="string")throw new Error(f);for(var c=A+"1",d=0;d>5!==0)throw new Error("Non 5-bit word");f=J4(f)^b,c+=d5.charAt(b)}for(d=0;d<6;++d)f=J4(f);for(f^=1,d=0;d<6;++d){var r=f>>(5-d)*5&31;c+=d5.charAt(r)}return c}function Ko(A,a){if(a=a||90,A.length<8)return A+" too short";if(A.length>a)return"Exceeds length limit";var e=A.toLowerCase(),f=A.toUpperCase();if(A!==e&&A!==f)return"Mixed-case string "+A;A=e;var c=A.lastIndexOf("1");if(c===-1)return"No separator character for "+A;if(c===0)return"Missing prefix for "+A;var d=A.slice(0,c),b=A.slice(c+1);if(b.length<6)return"Data too short";var r=Wo(d);if(typeof r=="string")return r;for(var n=[],l=0;l=b.length)&&n.push(B)}return r!==1?"Invalid checksum for "+A:{prefix:d,words:n}}function Fk(){var A=Ko.apply(null,arguments);if(typeof A=="object")return A}function Dk(A){var a=Ko.apply(null,arguments);if(typeof a=="object")return a;throw new Error(a)}function b5(A,a,e,f){for(var c=0,d=0,b=(1<=e;)d-=e,r.push(c>>d&b);if(f)d>0&&r.push(c<=a)return"Excess padding";if(c<{"use strict";Object.defineProperty(l5,"__esModule",{value:!0});l5.version=void 0;l5.version="providers/5.7.2"});var xf=U(BA=>{"use strict";Object.defineProperty(BA,"__esModule",{value:!0});BA.showThrottleMessage=BA.isCommunityResource=BA.isCommunityResourcable=BA.Formatter=void 0;var y7=a2(),PA=y0(),EA=Xe(),wk=A1(),Rk=c0(),jo=NA(),Sk=me(),vk=fa(),B3=new Sk.Logger(vk.version),kk=function(){function A(){this.formats=this.getDefaultFormats()}return A.prototype.getDefaultFormats=function(){var a=this,e={},f=this.address.bind(this),c=this.bigNumber.bind(this),d=this.blockTag.bind(this),b=this.data.bind(this),r=this.hash.bind(this),n=this.hex.bind(this),l=this.number.bind(this),t=this.type.bind(this),B=function(x){return a.data(x,!0)};return e.transaction={hash:r,type:t,accessList:A.allowNull(this.accessList.bind(this),null),blockHash:A.allowNull(r,null),blockNumber:A.allowNull(l,null),transactionIndex:A.allowNull(l,null),confirmations:A.allowNull(l,null),from:f,gasPrice:A.allowNull(c),maxPriorityFeePerGas:A.allowNull(c),maxFeePerGas:A.allowNull(c),gasLimit:c,to:A.allowNull(f,null),value:c,nonce:l,data:b,r:A.allowNull(this.uint256),s:A.allowNull(this.uint256),v:A.allowNull(l),creates:A.allowNull(f,null),raw:A.allowNull(b)},e.transactionRequest={from:A.allowNull(f),nonce:A.allowNull(l),gasLimit:A.allowNull(c),gasPrice:A.allowNull(c),maxPriorityFeePerGas:A.allowNull(c),maxFeePerGas:A.allowNull(c),to:A.allowNull(f),value:A.allowNull(c),data:A.allowNull(B),type:A.allowNull(l),accessList:A.allowNull(this.accessList.bind(this),null)},e.receiptLog={transactionIndex:l,blockNumber:l,transactionHash:r,address:f,topics:A.arrayOf(r),data:b,logIndex:l,blockHash:r},e.receipt={to:A.allowNull(this.address,null),from:A.allowNull(this.address,null),contractAddress:A.allowNull(f,null),transactionIndex:l,root:A.allowNull(n),gasUsed:c,logsBloom:A.allowNull(b),blockHash:r,transactionHash:r,logs:A.arrayOf(this.receiptLog.bind(this)),blockNumber:l,confirmations:A.allowNull(l,null),cumulativeGasUsed:c,effectiveGasPrice:A.allowNull(c),status:A.allowNull(l),type:t},e.block={hash:A.allowNull(r),parentHash:r,number:l,timestamp:l,nonce:A.allowNull(n),difficulty:this.difficulty.bind(this),gasLimit:c,gasUsed:c,miner:A.allowNull(f),extraData:b,transactions:A.allowNull(A.arrayOf(r)),baseFeePerGas:A.allowNull(c)},e.blockWithTransactions=(0,Rk.shallowCopy)(e.block),e.blockWithTransactions.transactions=A.allowNull(A.arrayOf(this.transactionResponse.bind(this))),e.filter={fromBlock:A.allowNull(d,void 0),toBlock:A.allowNull(d,void 0),blockHash:A.allowNull(r,void 0),address:A.allowNull(f,void 0),topics:A.allowNull(this.topics.bind(this),void 0)},e.filterLog={blockNumber:A.allowNull(l),blockHash:A.allowNull(r),transactionIndex:l,removed:A.allowNull(this.boolean.bind(this)),address:f,data:A.allowFalsish(b,"0x"),topics:A.arrayOf(r),transactionHash:r,logIndex:l},e},A.prototype.accessList=function(a){return(0,jo.accessListify)(a||[])},A.prototype.number=function(a){return a==="0x"?0:PA.BigNumber.from(a).toNumber()},A.prototype.type=function(a){return a==="0x"||a==null?0:PA.BigNumber.from(a).toNumber()},A.prototype.bigNumber=function(a){return PA.BigNumber.from(a)},A.prototype.boolean=function(a){if(typeof a=="boolean")return a;if(typeof a=="string"){if(a=a.toLowerCase(),a==="true")return!0;if(a==="false")return!1}throw new Error("invalid boolean - "+a)},A.prototype.hex=function(a,e){return typeof a=="string"&&(!e&&a.substring(0,2)!=="0x"&&(a="0x"+a),(0,EA.isHexString)(a))?a.toLowerCase():B3.throwArgumentError("invalid hash","value",a)},A.prototype.data=function(a,e){var f=this.hex(a,e);if(f.length%2!==0)throw new Error("invalid data; odd-length - "+a);return f},A.prototype.address=function(a){return(0,y7.getAddress)(a)},A.prototype.callAddress=function(a){if(!(0,EA.isHexString)(a,32))return null;var e=(0,y7.getAddress)((0,EA.hexDataSlice)(a,12));return e===wk.AddressZero?null:e},A.prototype.contractAddress=function(a){return(0,y7.getContractAddress)(a)},A.prototype.blockTag=function(a){if(a==null)return"latest";if(a==="earliest")return"0x0";switch(a){case"earliest":return"0x0";case"latest":case"pending":case"safe":case"finalized":return a}if(typeof a=="number"||(0,EA.isHexString)(a))return(0,EA.hexValue)(a);throw new Error("invalid blockTag")},A.prototype.hash=function(a,e){var f=this.hex(a,e);return(0,EA.hexDataLength)(f)!==32?B3.throwArgumentError("invalid hash","value",a):f},A.prototype.difficulty=function(a){if(a==null)return null;var e=PA.BigNumber.from(a);try{return e.toNumber()}catch{}return null},A.prototype.uint256=function(a){if(!(0,EA.isHexString)(a))throw new Error("invalid uint256");return(0,EA.hexZeroPad)(a,32)},A.prototype._block=function(a,e){a.author!=null&&a.miner==null&&(a.miner=a.author);var f=a._difficulty!=null?a._difficulty:a.difficulty,c=A.check(e,a);return c._difficulty=f==null?null:PA.BigNumber.from(f),c},A.prototype.block=function(a){return this._block(a,this.formats.block)},A.prototype.blockWithTransactions=function(a){return this._block(a,this.formats.blockWithTransactions)},A.prototype.transactionRequest=function(a){return A.check(this.formats.transactionRequest,a)},A.prototype.transactionResponse=function(a){a.gas!=null&&a.gasLimit==null&&(a.gasLimit=a.gas),a.to&&PA.BigNumber.from(a.to).isZero()&&(a.to="0x0000000000000000000000000000000000000000"),a.input!=null&&a.data==null&&(a.data=a.input),a.to==null&&a.creates==null&&(a.creates=this.contractAddress(a)),(a.type===1||a.type===2)&&a.accessList==null&&(a.accessList=[]);var e=A.check(this.formats.transaction,a);if(a.chainId!=null){var f=a.chainId;(0,EA.isHexString)(f)&&(f=PA.BigNumber.from(f).toNumber()),e.chainId=f}else{var f=a.networkId;f==null&&e.v==null&&(f=a.chainId),(0,EA.isHexString)(f)&&(f=PA.BigNumber.from(f).toNumber()),typeof f!="number"&&e.v!=null&&(f=(e.v-35)/2,f<0&&(f=0),f=parseInt(f)),typeof f!="number"&&(f=0),e.chainId=f}return e.blockHash&&e.blockHash.replace(/0/g,"")==="x"&&(e.blockHash=null),e},A.prototype.transaction=function(a){return(0,jo.parse)(a)},A.prototype.receiptLog=function(a){return A.check(this.formats.receiptLog,a)},A.prototype.receipt=function(a){var e=A.check(this.formats.receipt,a);if(e.root!=null)if(e.root.length<=4){var f=PA.BigNumber.from(e.root).toNumber();f===0||f===1?(e.status!=null&&e.status!==f&&B3.throwArgumentError("alt-root-status/status mismatch","value",{root:e.root,status:e.status}),e.status=f,delete e.root):B3.throwArgumentError("invalid alt-root-status","value.root",e.root)}else e.root.length!==66&&B3.throwArgumentError("invalid root hash","value.root",e.root);return e.status!=null&&(e.byzantium=!0),e},A.prototype.topics=function(a){var e=this;return Array.isArray(a)?a.map(function(f){return e.topics(f)}):a!=null?this.hash(a,!0):null},A.prototype.filter=function(a){return A.check(this.formats.filter,a)},A.prototype.filterLog=function(a){return A.check(this.formats.filterLog,a)},A.check=function(a,e){var f={};for(var c in a)try{var d=a[c](e[c]);d!==void 0&&(f[c]=d)}catch(b){throw b.checkKey=c,b.checkValue=e[c],b}return f},A.allowNull=function(a,e){return function(f){return f==null?e:a(f)}},A.allowFalsish=function(a,e){return function(f){return f?a(f):e}},A.arrayOf=function(a){return function(e){if(!Array.isArray(e))throw new Error("not an array");var f=[];return e.forEach(function(c){f.push(a(c))}),f}},A}();BA.Formatter=kk;function $o(A){return A&&typeof A.isCommunityResource=="function"}BA.isCommunityResourcable=$o;function Qk(A){return $o(A)&&A.isCommunityResource()}BA.isCommunityResource=Qk;var _o=!1;function yk(){_o||(_o=!0,console.log("========= NOTICE ========="),console.log("Request-Rate Exceeded (this message will not be repeated)"),console.log(""),console.log("The default API keys for each service are provided as a highly-throttled,"),console.log("community resource for low-traffic projects and early prototyping."),console.log(""),console.log("While your application will continue to function, we highly recommended"),console.log("signing up for your own API keys to improve performance, increase your"),console.log("request rate/limit and enable other perks, such as metrics and advanced APIs."),console.log(""),console.log("For more details: https://docs.ethers.io/api-keys/"),console.log("=========================="))}BA.showThrottleMessage=yk});var I3=U(Ca=>{"use strict";var Mk=Ca&&Ca.__extends||function(){var A=function(a,e){return A=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(f,c){f.__proto__=c}||function(f,c){for(var d in c)Object.prototype.hasOwnProperty.call(c,d)&&(f[d]=c[d])},A(a,e)};return function(a,e){if(typeof e!="function"&&e!==null)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");A(a,e);function f(){this.constructor=a}a.prototype=e===null?Object.create(e):(f.prototype=e.prototype,new f)}}(),Je=Ca&&Ca.__awaiter||function(A,a,e,f){function c(d){return d instanceof e?d:new e(function(b){b(d)})}return new(e||(e=Promise))(function(d,b){function r(t){try{l(f.next(t))}catch(B){b(B)}}function n(t){try{l(f.throw(t))}catch(B){b(B)}}function l(t){t.done?d(t.value):c(t.value).then(r,n)}l((f=f.apply(A,a||[])).next())})},He=Ca&&Ca.__generator||function(A,a){var e={label:0,sent:function(){if(d[0]&1)throw d[1];return d[1]},trys:[],ops:[]},f,c,d,b;return b={next:r(0),throw:r(1),return:r(2)},typeof Symbol=="function"&&(b[Symbol.iterator]=function(){return this}),b;function r(l){return function(t){return n([l,t])}}function n(l){if(f)throw new TypeError("Generator is already executing.");for(;e;)try{if(f=1,c&&(d=l[0]&2?c.return:l[0]?c.throw||((d=c.return)&&d.call(c),0):c.next)&&!(d=d.call(c,l[1])).done)return d;switch(c=0,d&&(l=[l[0]&2,d.value]),l[0]){case 0:case 1:d=l;break;case 4:return e.label++,{value:l[1],done:!1};case 5:e.label++,c=l[1],l=[0];continue;case 7:l=e.ops.pop(),e.trys.pop();continue;default:if(d=e.trys,!(d=d.length>0&&d[d.length-1])&&(l[0]===6||l[0]===2)){e=0;continue}if(l[0]===3&&(!d||l[1]>d[0]&&l[1]0&&A[A.length-1]==null;)A.pop();return A.map(function(a){if(Array.isArray(a)){var e={};a.forEach(function(c){e[fs(c)]=!0});var f=Object.keys(e);return f.sort(),f.join("|")}else return fs(a)}).join("&")}function Lk(A){return A===""?[]:A.split(/&/g).map(function(a){if(a==="")return[];var e=a.split("|").map(function(f){return f==="null"?null:f});return e.length===1?e[0]:e})}function H4(A){if(typeof A=="string"){if(A=A.toLowerCase(),(0,Le.hexDataLength)(A)===32)return"tx:"+A;if(A.indexOf(":")===-1)return A}else{if(Array.isArray(A))return"filter:*:"+cs(A);if(ns.ForkEvent.isForkEvent(A))throw Ke.warn("not implemented"),new Error("not implemented");if(A&&typeof A=="object")return"filter:"+(A.address||"*")+":"+cs(A.topics||[])}throw new Error("invalid event - "+A)}function h3(){return new Date().getTime()}function ds(A){return new Promise(function(a){setTimeout(a,A)})}var Jk=["block","network","pending","poll"],ts=function(){function A(a,e,f){(0,k0.defineReadOnly)(this,"tag",a),(0,k0.defineReadOnly)(this,"listener",e),(0,k0.defineReadOnly)(this,"once",f),this._lastBlockNumber=-2,this._inflight=!1}return Object.defineProperty(A.prototype,"event",{get:function(){switch(this.type){case"tx":return this.hash;case"filter":return this.filter}return this.tag},enumerable:!1,configurable:!0}),Object.defineProperty(A.prototype,"type",{get:function(){return this.tag.split(":")[0]},enumerable:!1,configurable:!0}),Object.defineProperty(A.prototype,"hash",{get:function(){var a=this.tag.split(":");return a[0]!=="tx"?null:a[1]},enumerable:!1,configurable:!0}),Object.defineProperty(A.prototype,"filter",{get:function(){var a=this.tag.split(":");if(a[0]!=="filter")return null;var e=a[1],f=Lk(a[2]),c={};return f.length>0&&(c.topics=f),e&&e!=="*"&&(c.address=e),c},enumerable:!1,configurable:!0}),A.prototype.pollable=function(){return this.tag.indexOf(":")>=0||Jk.indexOf(this.tag)>=0},A}();Ca.Event=ts;var Hk={0:{symbol:"btc",p2pkh:0,p2sh:5,prefix:"bc"},2:{symbol:"ltc",p2pkh:48,p2sh:50,prefix:"ltc"},3:{symbol:"doge",p2pkh:30,p2sh:22},60:{symbol:"eth",ilk:"eth"},61:{symbol:"etc",ilk:"eth"},700:{symbol:"xdai",ilk:"eth"}};function M7(A){return(0,Le.hexZeroPad)(ha.BigNumber.from(A).toHexString(),32)}function bs(A){return O7.Base58.encode((0,Le.concat)([A,(0,Le.hexDataSlice)((0,es.sha256)((0,es.sha256)(A)),0,4)]))}var us=new RegExp("^(ipfs)://(.*)$","i"),ls=[new RegExp("^(https)://(.*)$","i"),new RegExp("^(data):(.*)$","i"),us,new RegExp("^eip155:[0-9]+/(erc[0-9]+):(.*)$","i")];function r5(A,a){try{return(0,G7.toUtf8String)(g3(A,a))}catch{}return null}function g3(A,a){if(A==="0x")return null;var e=ha.BigNumber.from((0,Le.hexDataSlice)(A,a,a+32)).toNumber(),f=ha.BigNumber.from((0,Le.hexDataSlice)(A,e,e+32)).toNumber();return(0,Le.hexDataSlice)(A,e+32,e+32+f)}function U7(A){return A.match(/^ipfs:\/\/ipfs\//i)?A=A.substring(12):A.match(/^ipfs:\/\//i)?A=A.substring(7):Ke.throwArgumentError("unsupported IPFS format","link",A),"https://gateway.ipfs.io/ipfs/"+A}function rs(A){var a=(0,Le.arrayify)(A);if(a.length>32)throw new Error("internal; should not happen");var e=new Uint8Array(32);return e.set(a,32-a.length),e}function Zk(A){if(A.length%32===0)return A;var a=new Uint8Array(Math.ceil(A.length/32)*32);return a.set(A),a}function is(A){for(var a=[],e=0,f=0;f=1&&b<=75)return bs((0,Le.concat)([[f.p2pkh],"0x"+d[2]]))}}if(f.p2sh!=null){var r=e.match(/^0xa9([0-9a-f][0-9a-f])([0-9a-f]*)87$/);if(r){var n=parseInt(r[1],16);if(r[2].length===n*2&&n>=1&&n<=75)return bs((0,Le.concat)([[f.p2sh],"0x"+r[2]]))}}if(f.prefix!=null){var l=c[1],t=c[0];if(t===0?l!==20&&l!==32&&(t=-1):t=-1,t>=0&&c.length===2+l&&l>=1&&l<=75){var B=as.default.toWords(c.slice(2));return B.unshift(t),as.default.encode(f.prefix,B)}}return null},A.prototype.getAddress=function(a){return Je(this,void 0,void 0,function(){var e,f,c,d;return He(this,function(b){switch(b.label){case 0:if(a==null&&(a=60),a!==60)return[3,4];b.label=1;case 1:return b.trys.push([1,3,,4]),[4,this._fetch("0x3b3b57de")];case 2:return e=b.sent(),e==="0x"||e===Ok.HashZero?[2,null]:[2,this.provider.formatter.callAddress(e)];case 3:if(f=b.sent(),f.code===ze.Logger.errors.CALL_EXCEPTION)return[2,null];throw f;case 4:return[4,this._fetchBytes("0xf1cb7e06",M7(a))];case 5:return c=b.sent(),c==null||c==="0x"?[2,null]:(d=this._getAddress(a,c),d==null&&Ke.throwError("invalid or unsupported coin data",ze.Logger.errors.UNSUPPORTED_OPERATION,{operation:"getAddress("+a+")",coinType:a,data:c}),[2,d])}})})},A.prototype.getAvatar=function(){return Je(this,void 0,void 0,function(){var a,e,f,c,d,b,r,n,l,t,B,x,p,w,y,N,Q,P,V,q,_,Z,de,ce,H;return He(this,function(k){switch(k.label){case 0:a=[{type:"name",content:this.name}],k.label=1;case 1:return k.trys.push([1,19,,20]),[4,this.getText("avatar")];case 2:if(e=k.sent(),e==null)return[2,null];f=0,k.label=3;case 3:if(!(f=0?null:JSON.stringify({data:b,sender:d}),[4,(0,Z4.fetchJson)({url:t,errorPassThrough:!0},B,function(y,N){return y.status=N.statusCode,y})]):[3,4];case 2:if(x=w.sent(),x.data)return[2,x.data];if(p=x.message||"unknown error",x.status>=400&&x.status<500)return[2,Ke.throwError("response not found during CCIP fetch: "+p,ze.Logger.errors.SERVER_ERROR,{url:l,errorMessage:p})];r.push(p),w.label=3;case 3:return n++,[3,1];case 4:return[2,Ke.throwError("error encountered during CCIP fetch: "+r.map(function(y){return JSON.stringify(y)}).join(", "),ze.Logger.errors.SERVER_ERROR,{urls:c,errorMessages:r})]}})})},a.prototype._getInternalBlockNumber=function(e){return Je(this,void 0,void 0,function(){var f,c,d,b,r,n=this;return He(this,function(l){switch(l.label){case 0:return[4,this._ready()];case 1:if(l.sent(),!(e>0))return[3,7];l.label=2;case 2:if(!this._internalBlockNumber)return[3,7];f=this._internalBlockNumber,l.label=3;case 3:return l.trys.push([3,5,,6]),[4,f];case 4:return c=l.sent(),h3()-c.respTime<=e?[2,c.blockNumber]:[3,7];case 5:return d=l.sent(),this._internalBlockNumber===f?[3,7]:[3,6];case 6:return[3,2];case 7:return b=h3(),r=(0,k0.resolveProperties)({blockNumber:this.perform("getBlockNumber",{}),networkError:this.getNetwork().then(function(t){return null},function(t){return t})}).then(function(t){var B=t.blockNumber,x=t.networkError;if(x)throw n._internalBlockNumber===r&&(n._internalBlockNumber=null),x;var p=h3();return B=ha.BigNumber.from(B).toNumber(),B1e3)Ke.warn("network block skew detected; skipping block events (emitted="+this._emitted.block+" blockNumber"+c+")"),this.emit("error",Ke.makeError("network block skew detected",ze.Logger.errors.NETWORK_ERROR,{blockNumber:c,event:"blockSkew",previousBlockNumber:this._emitted.block})),this.emit("block",c);else for(b=this._emitted.block+1;b<=c;b++)this.emit("block",b);return this._emitted.block!==c&&(this._emitted.block=c,Object.keys(this._emitted).forEach(function(l){if(l!=="block"){var t=r._emitted[l];t!=="pending"&&c-t>12&&delete r._emitted[l]}})),this._lastBlockNumber===-2&&(this._lastBlockNumber=c-1),this._events.forEach(function(l){switch(l.type){case"tx":{var t=l.hash,B=r.getTransactionReceipt(t).then(function(w){return!w||w.blockNumber==null||(r._emitted["t:"+t]=w.blockNumber,r.emit(t,w)),null}).catch(function(w){r.emit("error",w)});f.push(B);break}case"filter":{if(!l._inflight){l._inflight=!0,l._lastBlockNumber===-2&&(l._lastBlockNumber=c-1);var x=l.filter;x.fromBlock=l._lastBlockNumber+1,x.toBlock=c;var p=x.toBlock-r._maxFilterBlockRange;p>x.fromBlock&&(x.fromBlock=p),x.fromBlock<0&&(x.fromBlock=0);var B=r.getLogs(x).then(function(y){l._inflight=!1,y.length!==0&&y.forEach(function(N){N.blockNumber>l._lastBlockNumber&&(l._lastBlockNumber=N.blockNumber),r._emitted["b:"+N.blockHash]=N.blockNumber,r._emitted["t:"+N.transactionHash]=N.blockNumber,r.emit(x,N)})}).catch(function(y){r.emit("error",y),l._inflight=!1});f.push(B)}break}}}),this._lastBlockNumber=c,Promise.all(f).then(function(){r.emit("didPoll",e)}).catch(function(l){r.emit("error",l)}),[2]}})})},a.prototype.resetEventsBlock=function(e){this._lastBlockNumber=e-1,this.polling&&this.poll()},Object.defineProperty(a.prototype,"network",{get:function(){return this._network},enumerable:!1,configurable:!0}),a.prototype.detectNetwork=function(){return Je(this,void 0,void 0,function(){return He(this,function(e){return[2,Ke.throwError("provider does not support network detection",ze.Logger.errors.UNSUPPORTED_OPERATION,{operation:"provider.detectNetwork"})]})})},a.prototype.getNetwork=function(){return Je(this,void 0,void 0,function(){var e,f,c;return He(this,function(d){switch(d.label){case 0:return[4,this._ready()];case 1:return e=d.sent(),[4,this.detectNetwork()];case 2:return f=d.sent(),e.chainId===f.chainId?[3,5]:this.anyNetwork?(this._network=f,this._lastBlockNumber=-2,this._fastBlockNumber=null,this._fastBlockNumberPromise=null,this._fastQueryDate=0,this._emitted.block=-2,this._maxInternalBlockNumber=-1024,this._internalBlockNumber=null,this.emit("network",f,e),[4,ds(0)]):[3,4];case 3:return d.sent(),[2,this._network];case 4:throw c=Ke.makeError("underlying network changed",ze.Logger.errors.NETWORK_ERROR,{event:"changed",network:e,detectedNetwork:f}),this.emit("error",c),c;case 5:return[2,e]}})})},Object.defineProperty(a.prototype,"blockNumber",{get:function(){var e=this;return this._getInternalBlockNumber(100+this.pollingInterval/2).then(function(f){e._setFastBlockNumber(f)},function(f){}),this._fastBlockNumber!=null?this._fastBlockNumber:-1},enumerable:!1,configurable:!0}),Object.defineProperty(a.prototype,"polling",{get:function(){return this._poller!=null},set:function(e){var f=this;e&&!this._poller?(this._poller=setInterval(function(){f.poll()},this.pollingInterval),this._bootstrapPoll||(this._bootstrapPoll=setTimeout(function(){f.poll(),f._bootstrapPoll=setTimeout(function(){f._poller||f.poll(),f._bootstrapPoll=null},f.pollingInterval)},0))):!e&&this._poller&&(clearInterval(this._poller),this._poller=null)},enumerable:!1,configurable:!0}),Object.defineProperty(a.prototype,"pollingInterval",{get:function(){return this._pollingInterval},set:function(e){var f=this;if(typeof e!="number"||e<=0||parseInt(String(e))!=e)throw new Error("invalid polling interval");this._pollingInterval=e,this._poller&&(clearInterval(this._poller),this._poller=setInterval(function(){f.poll()},this._pollingInterval))},enumerable:!1,configurable:!0}),a.prototype._getFastBlockNumber=function(){var e=this,f=h3();return f-this._fastQueryDate>2*this._pollingInterval&&(this._fastQueryDate=f,this._fastBlockNumberPromise=this.getBlockNumber().then(function(c){return(e._fastBlockNumber==null||c>e._fastBlockNumber)&&(e._fastBlockNumber=c),e._fastBlockNumber})),this._fastBlockNumberPromise},a.prototype._setFastBlockNumber=function(e){this._fastBlockNumber!=null&&ethis._fastBlockNumber)&&(this._fastBlockNumber=e,this._fastBlockNumberPromise=Promise.resolve(e)))},a.prototype.waitForTransaction=function(e,f,c){return Je(this,void 0,void 0,function(){return He(this,function(d){return[2,this._waitForTransaction(e,f??1,c||0,null)]})})},a.prototype._waitForTransaction=function(e,f,c,d){return Je(this,void 0,void 0,function(){var b,r=this;return He(this,function(n){switch(n.label){case 0:return[4,this.getTransactionReceipt(e)];case 1:return b=n.sent(),(b?b.confirmations:0)>=f?[2,b]:[2,new Promise(function(l,t){var B=[],x=!1,p=function(){return x?!0:(x=!0,B.forEach(function(V){V()}),!1)},w=function(V){V.confirmations0){var P=setTimeout(function(){p()||t(Ke.makeError("timeout exceeded",ze.Logger.errors.TIMEOUT,{timeout:c}))},c);P.unref&&P.unref(),B.push(function(){clearTimeout(P)})}})]}})})},a.prototype.getBlockNumber=function(){return Je(this,void 0,void 0,function(){return He(this,function(e){return[2,this._getInternalBlockNumber(0)]})})},a.prototype.getGasPrice=function(){return Je(this,void 0,void 0,function(){var e;return He(this,function(f){switch(f.label){case 0:return[4,this.getNetwork()];case 1:return f.sent(),[4,this.perform("getGasPrice",{})];case 2:e=f.sent();try{return[2,ha.BigNumber.from(e)]}catch(c){return[2,Ke.throwError("bad result from backend",ze.Logger.errors.SERVER_ERROR,{method:"getGasPrice",result:e,error:c})]}return[2]}})})},a.prototype.getBalance=function(e,f){return Je(this,void 0,void 0,function(){var c,d;return He(this,function(b){switch(b.label){case 0:return[4,this.getNetwork()];case 1:return b.sent(),[4,(0,k0.resolveProperties)({address:this._getAddress(e),blockTag:this._getBlockTag(f)})];case 2:return c=b.sent(),[4,this.perform("getBalance",c)];case 3:d=b.sent();try{return[2,ha.BigNumber.from(d)]}catch(r){return[2,Ke.throwError("bad result from backend",ze.Logger.errors.SERVER_ERROR,{method:"getBalance",params:c,result:d,error:r})]}return[2]}})})},a.prototype.getTransactionCount=function(e,f){return Je(this,void 0,void 0,function(){var c,d;return He(this,function(b){switch(b.label){case 0:return[4,this.getNetwork()];case 1:return b.sent(),[4,(0,k0.resolveProperties)({address:this._getAddress(e),blockTag:this._getBlockTag(f)})];case 2:return c=b.sent(),[4,this.perform("getTransactionCount",c)];case 3:d=b.sent();try{return[2,ha.BigNumber.from(d).toNumber()]}catch(r){return[2,Ke.throwError("bad result from backend",ze.Logger.errors.SERVER_ERROR,{method:"getTransactionCount",params:c,result:d,error:r})]}return[2]}})})},a.prototype.getCode=function(e,f){return Je(this,void 0,void 0,function(){var c,d;return He(this,function(b){switch(b.label){case 0:return[4,this.getNetwork()];case 1:return b.sent(),[4,(0,k0.resolveProperties)({address:this._getAddress(e),blockTag:this._getBlockTag(f)})];case 2:return c=b.sent(),[4,this.perform("getCode",c)];case 3:d=b.sent();try{return[2,(0,Le.hexlify)(d)]}catch(r){return[2,Ke.throwError("bad result from backend",ze.Logger.errors.SERVER_ERROR,{method:"getCode",params:c,result:d,error:r})]}return[2]}})})},a.prototype.getStorageAt=function(e,f,c){return Je(this,void 0,void 0,function(){var d,b;return He(this,function(r){switch(r.label){case 0:return[4,this.getNetwork()];case 1:return r.sent(),[4,(0,k0.resolveProperties)({address:this._getAddress(e),blockTag:this._getBlockTag(c),position:Promise.resolve(f).then(function(n){return(0,Le.hexValue)(n)})})];case 2:return d=r.sent(),[4,this.perform("getStorageAt",d)];case 3:b=r.sent();try{return[2,(0,Le.hexlify)(b)]}catch(n){return[2,Ke.throwError("bad result from backend",ze.Logger.errors.SERVER_ERROR,{method:"getStorageAt",params:d,result:b,error:n})]}return[2]}})})},a.prototype._wrapTransaction=function(e,f,c){var d=this;if(f!=null&&(0,Le.hexDataLength)(f)!==32)throw new Error("invalid response - sendTransaction");var b=e;return f!=null&&e.hash!==f&&Ke.throwError("Transaction hash mismatch from Provider.sendTransaction.",ze.Logger.errors.UNKNOWN_ERROR,{expectedHash:e.hash,returnedHash:f}),b.wait=function(r,n){return Je(d,void 0,void 0,function(){var l,t;return He(this,function(B){switch(B.label){case 0:return r==null&&(r=1),n==null&&(n=0),l=void 0,r!==0&&c!=null&&(l={data:e.data,from:e.from,nonce:e.nonce,to:e.to,value:e.value,startBlock:c}),[4,this._waitForTransaction(e.hash,r,n,l)];case 1:return t=B.sent(),t==null&&r===0?[2,null]:(this._emitted["t:"+e.hash]=t.blockNumber,t.status===0&&Ke.throwError("transaction failed",ze.Logger.errors.CALL_EXCEPTION,{transactionHash:e.hash,transaction:e,receipt:t}),[2,t])}})})},b},a.prototype.sendTransaction=function(e){return Je(this,void 0,void 0,function(){var f,c,d,b,r;return He(this,function(n){switch(n.label){case 0:return[4,this.getNetwork()];case 1:return n.sent(),[4,Promise.resolve(e).then(function(l){return(0,Le.hexlify)(l)})];case 2:return f=n.sent(),c=this.formatter.transaction(e),c.confirmations==null&&(c.confirmations=0),[4,this._getInternalBlockNumber(100+2*this.pollingInterval)];case 3:d=n.sent(),n.label=4;case 4:return n.trys.push([4,6,,7]),[4,this.perform("sendTransaction",{signedTransaction:f})];case 5:return b=n.sent(),[2,this._wrapTransaction(c,b,d)];case 6:throw r=n.sent(),r.transaction=c,r.transactionHash=c.hash,r;case 7:return[2]}})})},a.prototype._getTransactionRequest=function(e){return Je(this,void 0,void 0,function(){var f,c,d,b,r=this;return He(this,function(n){switch(n.label){case 0:return[4,e];case 1:return f=n.sent(),c={},["from","to"].forEach(function(l){f[l]!=null&&(c[l]=Promise.resolve(f[l]).then(function(t){return t?r._getAddress(t):null}))}),["gasLimit","gasPrice","maxFeePerGas","maxPriorityFeePerGas","value"].forEach(function(l){f[l]!=null&&(c[l]=Promise.resolve(f[l]).then(function(t){return t?ha.BigNumber.from(t):null}))}),["type"].forEach(function(l){f[l]!=null&&(c[l]=Promise.resolve(f[l]).then(function(t){return t??null}))}),f.accessList&&(c.accessList=this.formatter.accessList(f.accessList)),["data"].forEach(function(l){f[l]!=null&&(c[l]=Promise.resolve(f[l]).then(function(t){return t?(0,Le.hexlify)(t):null}))}),b=(d=this.formatter).transactionRequest,[4,(0,k0.resolveProperties)(c)];case 2:return[2,b.apply(d,[n.sent()])]}})})},a.prototype._getFilter=function(e){return Je(this,void 0,void 0,function(){var f,c,d,b=this;return He(this,function(r){switch(r.label){case 0:return[4,e];case 1:return e=r.sent(),f={},e.address!=null&&(f.address=this._getAddress(e.address)),["blockHash","topics"].forEach(function(n){e[n]!=null&&(f[n]=e[n])}),["fromBlock","toBlock"].forEach(function(n){e[n]!=null&&(f[n]=b._getBlockTag(e[n]))}),d=(c=this.formatter).filter,[4,(0,k0.resolveProperties)(f)];case 2:return[2,d.apply(c,[r.sent()])]}})})},a.prototype._call=function(e,f,c){return Je(this,void 0,void 0,function(){var d,b,r,n,l,t,B,x,p,w,y,N,Q,P,V,q;return He(this,function(_){switch(_.label){case 0:return c>=Vk&&Ke.throwError("CCIP read exceeded maximum redirections",ze.Logger.errors.SERVER_ERROR,{redirects:c,transaction:e}),d=e.to,[4,this.perform("call",{transaction:e,blockTag:f})];case 1:if(b=_.sent(),!(c>=0&&f==="latest"&&d!=null&&b.substring(0,10)==="0x556f1830"&&(0,Le.hexDataLength)(b)%32===4))return[3,5];_.label=2;case 2:for(_.trys.push([2,4,,5]),r=(0,Le.hexDataSlice)(b,4),n=(0,Le.hexDataSlice)(r,0,32),ha.BigNumber.from(n).eq(d)||Ke.throwError("CCIP Read sender did not match",ze.Logger.errors.CALL_EXCEPTION,{name:"OffchainLookup",signature:"OffchainLookup(address,string[],bytes,bytes4,bytes)",transaction:e,data:b}),l=[],t=ha.BigNumber.from((0,Le.hexDataSlice)(r,32,64)).toNumber(),B=ha.BigNumber.from((0,Le.hexDataSlice)(r,t,t+32)).toNumber(),x=(0,Le.hexDataSlice)(r,t+32),p=0;pthis._emitted.block?[2,null]:[2,void 0];if(!f)return[3,8];B=null,x=0,Q.label=2;case 2:return x0},a.prototype._stopEvent=function(e){this.polling=this._events.filter(function(f){return f.pollable()}).length>0},a.prototype._addEventListener=function(e,f,c){var d=new ts(H4(e),f,c);return this._events.push(d),this._startEvent(d),this},a.prototype.on=function(e,f){return this._addEventListener(e,f,!1)},a.prototype.once=function(e,f){return this._addEventListener(e,f,!0)},a.prototype.emit=function(e){for(var f=this,c=[],d=1;d{"use strict";var J7=o2&&o2.__extends||function(){var A=function(a,e){return A=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(f,c){f.__proto__=c}||function(f,c){for(var d in c)Object.prototype.hasOwnProperty.call(c,d)&&(f[d]=c[d])},A(a,e)};return function(a,e){if(typeof e!="function"&&e!==null)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");A(a,e);function f(){this.constructor=a}a.prototype=e===null?Object.create(e):(f.prototype=e.prototype,new f)}}(),VA=o2&&o2.__awaiter||function(A,a,e,f){function c(d){return d instanceof e?d:new e(function(b){b(d)})}return new(e||(e=Promise))(function(d,b){function r(t){try{l(f.next(t))}catch(B){b(B)}}function n(t){try{l(f.throw(t))}catch(B){b(B)}}function l(t){t.done?d(t.value):c(t.value).then(r,n)}l((f=f.apply(A,a||[])).next())})},LA=o2&&o2.__generator||function(A,a){var e={label:0,sent:function(){if(d[0]&1)throw d[1];return d[1]},trys:[],ops:[]},f,c,d,b;return b={next:r(0),throw:r(1),return:r(2)},typeof Symbol=="function"&&(b[Symbol.iterator]=function(){return this}),b;function r(l){return function(t){return n([l,t])}}function n(l){if(f)throw new TypeError("Generator is already executing.");for(;e;)try{if(f=1,c&&(d=l[0]&2?c.return:l[0]?c.throw||((d=c.return)&&d.call(c),0):c.next)&&!(d=d.call(c,l[1])).done)return d;switch(c=0,d&&(l=[l[0]&2,d.value]),l[0]){case 0:case 1:d=l;break;case 4:return e.label++,{value:l[1],done:!1};case 5:e.label++,c=l[1],l=[0];continue;case 7:l=e.ops.pop(),e.trys.pop();continue;default:if(d=e.trys,!(d=d.length>0&&d[d.length-1])&&(l[0]===6||l[0]===2)){e=0;continue}if(l[0]===3&&(!d||l[1]>d[0]&&l[1]=0&&d.match(/gas required exceeds allowance|always failing transaction|execution reverted|revert/)&&P0.throwError("cannot estimate gas; transaction may fail or may require manual gas limit",V0.Logger.errors.UNPREDICTABLE_GAS_LIMIT,{error:a,method:A,transaction:f}),a}function Es(A){return new Promise(function(a){setTimeout(a,A)})}function _k(A){if(A.error){var a=new Error(A.error.message);throw a.code=A.error.code,a.data=A.error.data,a}return A.result}function F3(A){return A&&A.toLowerCase()}var L7={},H7=function(A){J7(a,A);function a(e,f,c){var d=A.call(this)||this;if(e!==L7)throw new Error("do not call the JsonRpcSigner constructor directly; use provider.getSigner");return(0,Q0.defineReadOnly)(d,"provider",f),c==null&&(c=0),typeof c=="string"?((0,Q0.defineReadOnly)(d,"_address",d.provider.formatter.address(c)),(0,Q0.defineReadOnly)(d,"_index",null)):typeof c=="number"?((0,Q0.defineReadOnly)(d,"_index",c),(0,Q0.defineReadOnly)(d,"_address",null)):P0.throwArgumentError("invalid address or index","addressOrIndex",c),d}return a.prototype.connect=function(e){return P0.throwError("cannot alter JSON-RPC Signer connection",V0.Logger.errors.UNSUPPORTED_OPERATION,{operation:"connect"})},a.prototype.connectUnchecked=function(){return new $k(L7,this.provider,this._address||this._index)},a.prototype.getAddress=function(){var e=this;return this._address?Promise.resolve(this._address):this.provider.send("eth_accounts",[]).then(function(f){return f.length<=e._index&&P0.throwError("unknown account #"+e._index,V0.Logger.errors.UNSUPPORTED_OPERATION,{operation:"getAddress"}),e.provider.formatter.address(f[e._index])})},a.prototype.sendUncheckedTransaction=function(e){var f=this;e=(0,Q0.shallowCopy)(e);var c=this.getAddress().then(function(b){return b&&(b=b.toLowerCase()),b});if(e.gasLimit==null){var d=(0,Q0.shallowCopy)(e);d.from=c,e.gasLimit=this.provider.estimateGas(d)}return e.to!=null&&(e.to=Promise.resolve(e.to).then(function(b){return VA(f,void 0,void 0,function(){var r;return LA(this,function(n){switch(n.label){case 0:return b==null?[2,null]:[4,this.provider.resolveName(b)];case 1:return r=n.sent(),r==null&&P0.throwArgumentError("provided ENS name resolves to null","tx.to",b),[2,r]}})})})),(0,Q0.resolveProperties)({tx:(0,Q0.resolveProperties)(e),sender:c}).then(function(b){var r=b.tx,n=b.sender;r.from!=null?r.from.toLowerCase()!==n&&P0.throwArgumentError("from address mismatch","transaction",e):r.from=n;var l=f.provider.constructor.hexlifyTransaction(r,{from:!0});return f.provider.send("eth_sendTransaction",[l]).then(function(t){return t},function(t){return typeof t.message=="string"&&t.message.match(/user denied/i)&&P0.throwError("user rejected transaction",V0.Logger.errors.ACTION_REJECTED,{action:"sendTransaction",transaction:r}),hs("sendTransaction",t,l)})})},a.prototype.signTransaction=function(e){return P0.throwError("signing transactions is unsupported",V0.Logger.errors.UNSUPPORTED_OPERATION,{operation:"signTransaction"})},a.prototype.sendTransaction=function(e){return VA(this,void 0,void 0,function(){var f,c,d,b=this;return LA(this,function(r){switch(r.label){case 0:return[4,this.provider._getInternalBlockNumber(100+2*this.provider.pollingInterval)];case 1:return f=r.sent(),[4,this.sendUncheckedTransaction(e)];case 2:c=r.sent(),r.label=3;case 3:return r.trys.push([3,5,,6]),[4,(0,Bs.poll)(function(){return VA(b,void 0,void 0,function(){var n;return LA(this,function(l){switch(l.label){case 0:return[4,this.provider.getTransaction(c)];case 1:return n=l.sent(),n===null?[2,void 0]:[2,this.provider._wrapTransaction(n,c,f)]}})})},{oncePoll:this.provider})];case 4:return[2,r.sent()];case 5:throw d=r.sent(),d.transactionHash=c,d;case 6:return[2]}})})},a.prototype.signMessage=function(e){return VA(this,void 0,void 0,function(){var f,c,d;return LA(this,function(b){switch(b.label){case 0:return f=typeof e=="string"?(0,ss.toUtf8Bytes)(e):e,[4,this.getAddress()];case 1:c=b.sent(),b.label=2;case 2:return b.trys.push([2,4,,5]),[4,this.provider.send("personal_sign",[(0,Y4.hexlify)(f),c.toLowerCase()])];case 3:return[2,b.sent()];case 4:throw d=b.sent(),typeof d.message=="string"&&d.message.match(/user denied/i)&&P0.throwError("user rejected signing",V0.Logger.errors.ACTION_REJECTED,{action:"signMessage",from:c,messageData:e}),d;case 5:return[2]}})})},a.prototype._legacySignMessage=function(e){return VA(this,void 0,void 0,function(){var f,c,d;return LA(this,function(b){switch(b.label){case 0:return f=typeof e=="string"?(0,ss.toUtf8Bytes)(e):e,[4,this.getAddress()];case 1:c=b.sent(),b.label=2;case 2:return b.trys.push([2,4,,5]),[4,this.provider.send("eth_sign",[c.toLowerCase(),(0,Y4.hexlify)(f)])];case 3:return[2,b.sent()];case 4:throw d=b.sent(),typeof d.message=="string"&&d.message.match(/user denied/i)&&P0.throwError("user rejected signing",V0.Logger.errors.ACTION_REJECTED,{action:"_legacySignMessage",from:c,messageData:e}),d;case 5:return[2]}})})},a.prototype._signTypedData=function(e,f,c){return VA(this,void 0,void 0,function(){var d,b,r,n=this;return LA(this,function(l){switch(l.label){case 0:return[4,os._TypedDataEncoder.resolveNames(e,f,c,function(t){return n.provider.resolveName(t)})];case 1:return d=l.sent(),[4,this.getAddress()];case 2:b=l.sent(),l.label=3;case 3:return l.trys.push([3,5,,6]),[4,this.provider.send("eth_signTypedData_v4",[b.toLowerCase(),JSON.stringify(os._TypedDataEncoder.getPayload(d.domain,f,d.value))])];case 4:return[2,l.sent()];case 5:throw r=l.sent(),typeof r.message=="string"&&r.message.match(/user denied/i)&&P0.throwError("user rejected signing",V0.Logger.errors.ACTION_REJECTED,{action:"_signTypedData",from:b,messageData:{domain:d.domain,types:f,value:d.value}}),r;case 6:return[2]}})})},a.prototype.unlock=function(e){return VA(this,void 0,void 0,function(){var f,c;return LA(this,function(d){switch(d.label){case 0:return f=this.provider,[4,this.getAddress()];case 1:return c=d.sent(),[2,f.send("personal_unlockAccount",[c.toLowerCase(),e,null])]}})})},a}(Wk.Signer);o2.JsonRpcSigner=H7;var $k=function(A){J7(a,A);function a(){return A!==null&&A.apply(this,arguments)||this}return a.prototype.sendTransaction=function(e){var f=this;return this.sendUncheckedTransaction(e).then(function(c){return{hash:c,nonce:null,gasLimit:null,gasPrice:null,data:null,value:null,chainId:null,confirmations:0,from:null,wait:function(d){return f.provider.waitForTransaction(c,d)}}})},a}(H7),eQ={chainId:!0,data:!0,gasLimit:!0,gasPrice:!0,nonce:!0,to:!0,value:!0,type:!0,accessList:!0,maxFeePerGas:!0,maxPriorityFeePerGas:!0},aQ=function(A){J7(a,A);function a(e,f){var c=this,d=f;return d==null&&(d=new Promise(function(b,r){setTimeout(function(){c.detectNetwork().then(function(n){b(n)},function(n){r(n)})},0)})),c=A.call(this,d)||this,e||(e=(0,Q0.getStatic)(c.constructor,"defaultUrl")()),typeof e=="string"?(0,Q0.defineReadOnly)(c,"connection",Object.freeze({url:e})):(0,Q0.defineReadOnly)(c,"connection",Object.freeze((0,Q0.shallowCopy)(e))),c._nextId=42,c}return Object.defineProperty(a.prototype,"_cache",{get:function(){return this._eventLoopCache==null&&(this._eventLoopCache={}),this._eventLoopCache},enumerable:!1,configurable:!0}),a.defaultUrl=function(){return"http://localhost:8545"},a.prototype.detectNetwork=function(){var e=this;return this._cache.detectNetwork||(this._cache.detectNetwork=this._uncachedDetectNetwork(),setTimeout(function(){e._cache.detectNetwork=null},0)),this._cache.detectNetwork},a.prototype._uncachedDetectNetwork=function(){return VA(this,void 0,void 0,function(){var e,f,c,d;return LA(this,function(b){switch(b.label){case 0:return[4,Es(0)];case 1:b.sent(),e=null,b.label=2;case 2:return b.trys.push([2,4,,9]),[4,this.send("eth_chainId",[])];case 3:return e=b.sent(),[3,9];case 4:f=b.sent(),b.label=5;case 5:return b.trys.push([5,7,,8]),[4,this.send("net_version",[])];case 6:return e=b.sent(),[3,8];case 7:return c=b.sent(),[3,8];case 8:return[3,9];case 9:if(e!=null){d=(0,Q0.getStatic)(this.constructor,"getNetwork");try{return[2,d(V7.BigNumber.from(e).toNumber())]}catch(r){return[2,P0.throwError("could not detect network",V0.Logger.errors.NETWORK_ERROR,{chainId:e,event:"invalidNetwork",serverError:r})]}}return[2,P0.throwError("could not detect network",V0.Logger.errors.NETWORK_ERROR,{event:"noNetwork"})]}})})},a.prototype.getSigner=function(e){return new H7(L7,this,e)},a.prototype.getUncheckedSigner=function(e){return this.getSigner(e).connectUnchecked()},a.prototype.listAccounts=function(){var e=this;return this.send("eth_accounts",[]).then(function(f){return f.map(function(c){return e.formatter.address(c)})})},a.prototype.send=function(e,f){var c=this,d={method:e,params:f,id:this._nextId++,jsonrpc:"2.0"};this.emit("debug",{action:"request",request:(0,Q0.deepCopy)(d),provider:this});var b=["eth_chainId","eth_blockNumber"].indexOf(e)>=0;if(b&&this._cache[e])return this._cache[e];var r=(0,Bs.fetchJson)(this.connection,JSON.stringify(d),_k).then(function(n){return c.emit("debug",{action:"response",request:d,response:n,provider:c}),n},function(n){throw c.emit("debug",{action:"response",error:n,request:d,provider:c}),n});return b&&(this._cache[e]=r,setTimeout(function(){c._cache[e]=null},0)),r},a.prototype.prepareRequest=function(e,f){switch(e){case"getBlockNumber":return["eth_blockNumber",[]];case"getGasPrice":return["eth_gasPrice",[]];case"getBalance":return["eth_getBalance",[F3(f.address),f.blockTag]];case"getTransactionCount":return["eth_getTransactionCount",[F3(f.address),f.blockTag]];case"getCode":return["eth_getCode",[F3(f.address),f.blockTag]];case"getStorageAt":return["eth_getStorageAt",[F3(f.address),(0,Y4.hexZeroPad)(f.position,32),f.blockTag]];case"sendTransaction":return["eth_sendRawTransaction",[f.signedTransaction]];case"getBlock":return f.blockTag?["eth_getBlockByNumber",[f.blockTag,!!f.includeTransactions]]:f.blockHash?["eth_getBlockByHash",[f.blockHash,!!f.includeTransactions]]:null;case"getTransaction":return["eth_getTransactionByHash",[f.transactionHash]];case"getTransactionReceipt":return["eth_getTransactionReceipt",[f.transactionHash]];case"call":{var c=(0,Q0.getStatic)(this.constructor,"hexlifyTransaction");return["eth_call",[c(f.transaction,{from:!0}),f.blockTag]]}case"estimateGas":{var c=(0,Q0.getStatic)(this.constructor,"hexlifyTransaction");return["eth_estimateGas",[c(f.transaction,{from:!0})]]}case"getLogs":return f.filter&&f.filter.address!=null&&(f.filter.address=F3(f.filter.address)),["eth_getLogs",[f.filter]];default:break}return null},a.prototype.perform=function(e,f){return VA(this,void 0,void 0,function(){var c,d,b,r;return LA(this,function(n){switch(n.label){case 0:return e==="call"||e==="estimateGas"?(c=f.transaction,c&&c.type!=null&&V7.BigNumber.from(c.type).isZero()?c.maxFeePerGas==null&&c.maxPriorityFeePerGas==null?[4,this.getFeeData()]:[3,2]:[3,2]):[3,2];case 1:d=n.sent(),d.maxFeePerGas==null&&d.maxPriorityFeePerGas==null&&(f=(0,Q0.shallowCopy)(f),f.transaction=(0,Q0.shallowCopy)(c),delete f.transaction.type),n.label=2;case 2:b=this.prepareRequest(e,f),b==null&&P0.throwError(e+" not implemented",V0.Logger.errors.NOT_IMPLEMENTED,{operation:e}),n.label=3;case 3:return n.trys.push([3,5,,6]),[4,this.send(b[0],b[1])];case 4:return[2,n.sent()];case 5:return r=n.sent(),[2,hs(e,r,f)];case 6:return[2]}})})},a.prototype._startEvent=function(e){e.tag==="pending"&&this._startPending(),A.prototype._startEvent.call(this,e)},a.prototype._startPending=function(){if(this._pendingFilter==null){var e=this,f=this.send("eth_newPendingTransactionFilter",[]);this._pendingFilter=f,f.then(function(c){function d(){e.send("eth_getFilterChanges",[c]).then(function(b){if(e._pendingFilter!=f)return null;var r=Promise.resolve();return b.forEach(function(n){e._emitted["t:"+n.toLowerCase()]="pending",r=r.then(function(){return e.getTransaction(n).then(function(l){return e.emit("pending",l),null})})}),r.then(function(){return Es(1e3)})}).then(function(){if(e._pendingFilter!=f){e.send("eth_uninstallFilter",[c]);return}return setTimeout(function(){d()},0),null}).catch(function(b){})}return d(),c}).catch(function(c){})}},a.prototype._stopEvent=function(e){e.tag==="pending"&&this.listenerCount("pending")===0&&(this._pendingFilter=null),A.prototype._stopEvent.call(this,e)},a.hexlifyTransaction=function(e,f){var c=(0,Q0.shallowCopy)(eQ);if(f)for(var d in f)f[d]&&(c[d]=!0);(0,Q0.checkProperties)(e,c);var b={};return["chainId","gasLimit","gasPrice","type","maxFeePerGas","maxPriorityFeePerGas","nonce","value"].forEach(function(r){if(e[r]!=null){var n=(0,Y4.hexValue)(V7.BigNumber.from(e[r]));r==="gasLimit"&&(r="gas"),b[r]=n}}),["from","to","data"].forEach(function(r){e[r]!=null&&(b[r]=(0,Y4.hexlify)(e[r]))}),e.accessList&&(b.accessList=(0,Kk.accessListify)(e.accessList)),b},a}(zk.BaseProvider);o2.JsonRpcProvider=aQ});var x1=U((kY,Cs)=>{"use strict";Cs.exports={BINARY_TYPES:["nodebuffer","arraybuffer","fragments"],GUID:"258EAFA5-E914-47DA-95CA-C5AB0DC85B11",kStatusCode:Symbol("status-code"),kWebSocket:Symbol("websocket"),EMPTY_BUFFER:Buffer.alloc(0),NOOP:()=>{}}});var q7=U((QY,ys)=>{var Ds=require("fs"),JA=require("path"),ms=require("os"),xs=typeof __webpack_require__=="function"?__non_webpack_require__:require,AQ=process.config&&process.config.variables||{},fQ=!!process.env.PREBUILDS_ONLY,gs=process.versions.modules,Z7=dQ()?"electron":"node",Y7=ms.arch(),X7=ms.platform(),ps=process.env.LIBC||(bQ(X7)?"musl":"glibc"),W7=process.env.ARM_VERSION||(Y7==="arm64"?"8":AQ.arm_version)||"",Ts=(process.versions.uv||"").split(".")[0];ys.exports=HA;function HA(A){return xs(HA.path(A))}HA.path=function(A){A=JA.resolve(A||".");try{var a=xs(JA.join(A,"package.json")).name.toUpperCase().replace(/-/g,"_");process.env[a+"_PREBUILD"]&&(A=process.env[a+"_PREBUILD"])}catch{}if(!fQ){var e=Is(JA.join(A,"build/Release"),Fs);if(e)return e;var f=Is(JA.join(A,"build/Debug"),Fs);if(f)return f}var c=r(A);if(c)return c;var d=r(JA.dirname(process.execPath));if(d)return d;var b=["platform="+X7,"arch="+Y7,"runtime="+Z7,"abi="+gs,"uv="+Ts,W7?"armv="+W7:"","libc="+ps,"node="+process.versions.node,process.versions.electron?"electron="+process.versions.electron:"",typeof __webpack_require__=="function"?"webpack=true":""].filter(Boolean).join(" ");throw new Error("No native build was found for "+b+` + loaded from: `+A+` +`);function r(n){var l=K7(JA.join(n,"prebuilds")).map(ws),t=l.filter(Rs(X7,Y7)).sort(Ss)[0];if(!!t){var B=JA.join(n,"prebuilds",t.name),x=K7(B).map(vs),p=x.filter(ks(Z7,gs)),w=p.sort(Qs(Z7))[0];if(w)return JA.join(B,w.file)}}};function K7(A){try{return Ds.readdirSync(A)}catch{return[]}}function Is(A,a){var e=K7(A).filter(a);return e[0]&&JA.join(A,e[0])}function Fs(A){return/\.node$/.test(A)}function ws(A){var a=A.split("-");if(a.length===2){var e=a[0],f=a[1].split("+");if(!!e&&!!f.length&&!!f.every(Boolean))return{name:A,platform:e,architectures:f}}}function Rs(A,a){return function(e){return e==null||e.platform!==A?!1:e.architectures.includes(a)}}function Ss(A,a){return A.architectures.length-a.architectures.length}function vs(A){var a=A.split("."),e=a.pop(),f={file:A,specificity:0};if(e==="node"){for(var c=0;ce.specificity?-1:1:0}}function dQ(){return process.versions&&process.versions.electron||process.env.ELECTRON_RUN_AS_NODE?!0:typeof window<"u"&&window.process&&window.process.type==="renderer"}function bQ(A){return A==="linux"&&Ds.existsSync("/etc/alpine-release")}HA.parseTags=vs;HA.matchTags=ks;HA.compareTags=Qs;HA.parseTuple=ws;HA.matchTuple=Rs;HA.compareTuples=Ss});var Us=U((yY,Ms)=>{"use strict";var lQ=(A,a,e,f,c)=>{for(var d=0;d{let e=A.length;for(var f=0;f{"use strict";try{z7.exports=q7()(__dirname)}catch{z7.exports=Us()}});var m3=U((UY,j7)=>{"use strict";var{EMPTY_BUFFER:nQ}=x1();function Os(A,a){if(A.length===0)return nQ;if(A.length===1)return A[0];let e=Buffer.allocUnsafe(a),f=0;for(let c=0;c{"use strict";var Ls=Symbol("kDone"),_7=Symbol("kRun"),$7=class{constructor(a){this[Ls]=()=>{this.pending--,this[_7]()},this.concurrency=a||1/0,this.jobs=[],this.pending=0}add(a){this.jobs.push(a),this[_7]()}[_7](){if(this.pending!==this.concurrency&&this.jobs.length){let a=this.jobs.shift();this.pending++,a(this[Ls])}}};Js.exports=$7});var T3=U((OY,Ws)=>{"use strict";var x3=require("zlib"),Zs=m3(),tQ=Hs(),{kStatusCode:Ys,NOOP:uQ}=x1(),iQ=Buffer.from([0,0,255,255]),u5=Symbol("permessage-deflate"),ZA=Symbol("total-length"),p3=Symbol("callback"),pf=Symbol("buffers"),eb=Symbol("error"),t5,ab=class{constructor(a,e,f){if(this._maxPayload=f|0,this._options=a||{},this._threshold=this._options.threshold!==void 0?this._options.threshold:1024,this._isServer=!!e,this._deflate=null,this._inflate=null,this.params=null,!t5){let c=this._options.concurrencyLimit!==void 0?this._options.concurrencyLimit:10;t5=new tQ(c)}}static get extensionName(){return"permessage-deflate"}offer(){let a={};return this._options.serverNoContextTakeover&&(a.server_no_context_takeover=!0),this._options.clientNoContextTakeover&&(a.client_no_context_takeover=!0),this._options.serverMaxWindowBits&&(a.server_max_window_bits=this._options.serverMaxWindowBits),this._options.clientMaxWindowBits?a.client_max_window_bits=this._options.clientMaxWindowBits:this._options.clientMaxWindowBits==null&&(a.client_max_window_bits=!0),a}accept(a){return a=this.normalizeParams(a),this.params=this._isServer?this.acceptAsServer(a):this.acceptAsClient(a),this.params}cleanup(){if(this._inflate&&(this._inflate.close(),this._inflate=null),this._deflate){let a=this._deflate[p3];this._deflate.close(),this._deflate=null,a&&a(new Error("The deflate stream was closed while data was being processed"))}}acceptAsServer(a){let e=this._options,f=a.find(c=>!(e.serverNoContextTakeover===!1&&c.server_no_context_takeover||c.server_max_window_bits&&(e.serverMaxWindowBits===!1||typeof e.serverMaxWindowBits=="number"&&e.serverMaxWindowBits>c.server_max_window_bits)||typeof e.clientMaxWindowBits=="number"&&!c.client_max_window_bits));if(!f)throw new Error("None of the extension offers can be accepted");return e.serverNoContextTakeover&&(f.server_no_context_takeover=!0),e.clientNoContextTakeover&&(f.client_no_context_takeover=!0),typeof e.serverMaxWindowBits=="number"&&(f.server_max_window_bits=e.serverMaxWindowBits),typeof e.clientMaxWindowBits=="number"?f.client_max_window_bits=e.clientMaxWindowBits:(f.client_max_window_bits===!0||e.clientMaxWindowBits===!1)&&delete f.client_max_window_bits,f}acceptAsClient(a){let e=a[0];if(this._options.clientNoContextTakeover===!1&&e.client_no_context_takeover)throw new Error('Unexpected parameter "client_no_context_takeover"');if(!e.client_max_window_bits)typeof this._options.clientMaxWindowBits=="number"&&(e.client_max_window_bits=this._options.clientMaxWindowBits);else if(this._options.clientMaxWindowBits===!1||typeof this._options.clientMaxWindowBits=="number"&&e.client_max_window_bits>this._options.clientMaxWindowBits)throw new Error('Unexpected or invalid parameter "client_max_window_bits"');return e}normalizeParams(a){return a.forEach(e=>{Object.keys(e).forEach(f=>{let c=e[f];if(c.length>1)throw new Error(`Parameter "${f}" must have only a single value`);if(c=c[0],f==="client_max_window_bits"){if(c!==!0){let d=+c;if(!Number.isInteger(d)||d<8||d>15)throw new TypeError(`Invalid value for parameter "${f}": ${c}`);c=d}else if(!this._isServer)throw new TypeError(`Invalid value for parameter "${f}": ${c}`)}else if(f==="server_max_window_bits"){let d=+c;if(!Number.isInteger(d)||d<8||d>15)throw new TypeError(`Invalid value for parameter "${f}": ${c}`);c=d}else if(f==="client_no_context_takeover"||f==="server_no_context_takeover"){if(c!==!0)throw new TypeError(`Invalid value for parameter "${f}": ${c}`)}else throw new Error(`Unknown parameter "${f}"`);e[f]=c})}),a}decompress(a,e,f){t5.add(c=>{this._decompress(a,e,(d,b)=>{c(),f(d,b)})})}compress(a,e,f){t5.add(c=>{this._compress(a,e,(d,b)=>{c(),f(d,b)})})}_decompress(a,e,f){let c=this._isServer?"client":"server";if(!this._inflate){let d=`${c}_max_window_bits`,b=typeof this.params[d]!="number"?x3.Z_DEFAULT_WINDOWBITS:this.params[d];this._inflate=x3.createInflateRaw({...this._options.zlibInflateOptions,windowBits:b}),this._inflate[u5]=this,this._inflate[ZA]=0,this._inflate[pf]=[],this._inflate.on("error",sQ),this._inflate.on("data",Xs)}this._inflate[p3]=f,this._inflate.write(a),e&&this._inflate.write(iQ),this._inflate.flush(()=>{let d=this._inflate[eb];if(d){this._inflate.close(),this._inflate=null,f(d);return}let b=Zs.concat(this._inflate[pf],this._inflate[ZA]);this._inflate._readableState.endEmitted?(this._inflate.close(),this._inflate=null):(this._inflate[ZA]=0,this._inflate[pf]=[],e&&this.params[`${c}_no_context_takeover`]&&this._inflate.reset()),f(null,b)})}_compress(a,e,f){let c=this._isServer?"server":"client";if(!this._deflate){let d=`${c}_max_window_bits`,b=typeof this.params[d]!="number"?x3.Z_DEFAULT_WINDOWBITS:this.params[d];this._deflate=x3.createDeflateRaw({...this._options.zlibDeflateOptions,windowBits:b}),this._deflate[ZA]=0,this._deflate[pf]=[],this._deflate.on("error",uQ),this._deflate.on("data",oQ)}this._deflate[p3]=f,this._deflate.write(a),this._deflate.flush(x3.Z_SYNC_FLUSH,()=>{if(!this._deflate)return;let d=Zs.concat(this._deflate[pf],this._deflate[ZA]);e&&(d=d.slice(0,d.length-4)),this._deflate[p3]=null,this._deflate[ZA]=0,this._deflate[pf]=[],e&&this.params[`${c}_no_context_takeover`]&&this._deflate.reset(),f(null,d)})}};Ws.exports=ab;function oQ(A){this[pf].push(A),this[ZA]+=A.length}function Xs(A){if(this[ZA]+=A.length,this[u5]._maxPayload<1||this[ZA]<=this[u5]._maxPayload){this[pf].push(A);return}this[eb]=new RangeError("Max payload size exceeded"),this[eb][Ys]=1009,this.removeListener("data",Xs),this.reset()}function sQ(A){this[u5]._inflate=null,A[Ys]=1007,this[p3](A)}});var qs=U((GY,Ks)=>{"use strict";function EQ(A){let a=A.length,e=0;for(;e=a||(A[e+1]&192)!==128||(A[e+2]&192)!==128||A[e]===224&&(A[e+1]&224)===128||A[e]===237&&(A[e+1]&224)===160)return!1;e+=3}else if((A[e]&248)===240){if(e+3>=a||(A[e+1]&192)!==128||(A[e+2]&192)!==128||(A[e+3]&192)!==128||A[e]===240&&(A[e+1]&240)===128||A[e]===244&&A[e+1]>143||A[e]>244)return!1;e+=4}else return!1;return!0}Ks.exports=EQ});var zs=U((PY,Ab)=>{"use strict";try{Ab.exports=q7()(__dirname)}catch{Ab.exports=qs()}});var cb=U((VY,fb)=>{"use strict";function js(A){return A>=1e3&&A<=1014&&A!==1004&&A!==1005&&A!==1006||A>=3e3&&A<=4999}function _s(A){let a=A.length,e=0;for(;e=a||(A[e+1]&192)!==128||(A[e+2]&192)!==128||A[e]===224&&(A[e+1]&224)===128||A[e]===237&&(A[e+1]&224)===160)return!1;e+=3}else if((A[e]&248)===240){if(e+3>=a||(A[e+1]&192)!==128||(A[e+2]&192)!==128||(A[e+3]&192)!==128||A[e]===240&&(A[e+1]&240)===128||A[e]===244&&A[e+1]>143||A[e]>244)return!1;e+=4}else return!1;return!0}try{let A=zs();typeof A=="object"&&(A=A.Validation.isValidUTF8),fb.exports={isValidStatusCode:js,isValidUTF8(a){return a.length<150?_s(a):A(a)}}}catch{fb.exports={isValidStatusCode:js,isValidUTF8:_s}}});var rb=U((LY,cE)=>{"use strict";var{Writable:BQ}=require("stream"),$s=T3(),{BINARY_TYPES:hQ,EMPTY_BUFFER:CQ,kStatusCode:gQ,kWebSocket:IQ}=x1(),{concat:db,toArrayBuffer:FQ,unmask:DQ}=m3(),{isValidStatusCode:mQ,isValidUTF8:eE}=cb(),w3=0,aE=1,AE=2,fE=3,bb=4,xQ=5,lb=class extends BQ{constructor(a,e,f,c){super(),this._binaryType=a||hQ[0],this[IQ]=void 0,this._extensions=e||{},this._isServer=!!f,this._maxPayload=c|0,this._bufferedBytes=0,this._buffers=[],this._compressed=!1,this._payloadLength=0,this._mask=void 0,this._fragmented=0,this._masked=!1,this._fin=!1,this._opcode=0,this._totalPayloadLength=0,this._messageLength=0,this._fragments=[],this._state=w3,this._loop=!1}_write(a,e,f){if(this._opcode===8&&this._state==w3)return f();this._bufferedBytes+=a.length,this._buffers.push(a),this.startLoop(f)}consume(a){if(this._bufferedBytes-=a,a===this._buffers[0].length)return this._buffers.shift();if(a=f.length?e.set(this._buffers.shift(),c):(e.set(new Uint8Array(f.buffer,f.byteOffset,a),c),this._buffers[0]=f.slice(a)),a-=f.length}while(a>0);return e}startLoop(a){let e;this._loop=!0;do switch(this._state){case w3:e=this.getInfo();break;case aE:e=this.getPayloadLength16();break;case AE:e=this.getPayloadLength64();break;case fE:this.getMask();break;case bb:e=this.getData(a);break;default:this._loop=!1;return}while(this._loop);a(e)}getInfo(){if(this._bufferedBytes<2){this._loop=!1;return}let a=this.consume(2);if((a[0]&48)!==0)return this._loop=!1,L0(RangeError,"RSV2 and RSV3 must be clear",!0,1002);let e=(a[0]&64)===64;if(e&&!this._extensions[$s.extensionName])return this._loop=!1,L0(RangeError,"RSV1 must be clear",!0,1002);if(this._fin=(a[0]&128)===128,this._opcode=a[0]&15,this._payloadLength=a[1]&127,this._opcode===0){if(e)return this._loop=!1,L0(RangeError,"RSV1 must be clear",!0,1002);if(!this._fragmented)return this._loop=!1,L0(RangeError,"invalid opcode 0",!0,1002);this._opcode=this._fragmented}else if(this._opcode===1||this._opcode===2){if(this._fragmented)return this._loop=!1,L0(RangeError,`invalid opcode ${this._opcode}`,!0,1002);this._compressed=e}else if(this._opcode>7&&this._opcode<11){if(!this._fin)return this._loop=!1,L0(RangeError,"FIN must be set",!0,1002);if(e)return this._loop=!1,L0(RangeError,"RSV1 must be clear",!0,1002);if(this._payloadLength>125)return this._loop=!1,L0(RangeError,`invalid payload length ${this._payloadLength}`,!0,1002)}else return this._loop=!1,L0(RangeError,`invalid opcode ${this._opcode}`,!0,1002);if(!this._fin&&!this._fragmented&&(this._fragmented=this._opcode),this._masked=(a[1]&128)===128,this._isServer){if(!this._masked)return this._loop=!1,L0(RangeError,"MASK must be set",!0,1002)}else if(this._masked)return this._loop=!1,L0(RangeError,"MASK must be clear",!0,1002);if(this._payloadLength===126)this._state=aE;else if(this._payloadLength===127)this._state=AE;else return this.haveLength()}getPayloadLength16(){if(this._bufferedBytes<2){this._loop=!1;return}return this._payloadLength=this.consume(2).readUInt16BE(0),this.haveLength()}getPayloadLength64(){if(this._bufferedBytes<8){this._loop=!1;return}let a=this.consume(8),e=a.readUInt32BE(0);return e>Math.pow(2,53-32)-1?(this._loop=!1,L0(RangeError,"Unsupported WebSocket frame: payload length > 2^53 - 1",!1,1009)):(this._payloadLength=e*Math.pow(2,32)+a.readUInt32BE(4),this.haveLength())}haveLength(){if(this._payloadLength&&this._opcode<8&&(this._totalPayloadLength+=this._payloadLength,this._totalPayloadLength>this._maxPayload&&this._maxPayload>0))return this._loop=!1,L0(RangeError,"Max payload size exceeded",!1,1009);this._masked?this._state=fE:this._state=bb}getMask(){if(this._bufferedBytes<4){this._loop=!1;return}this._mask=this.consume(4),this._state=bb}getData(a){let e=CQ;if(this._payloadLength){if(this._bufferedBytes7)return this.controlMessage(e);if(this._compressed){this._state=xQ,this.decompress(e,a);return}return e.length&&(this._messageLength=this._totalPayloadLength,this._fragments.push(e)),this.dataMessage()}decompress(a,e){this._extensions[$s.extensionName].decompress(a,this._fin,(c,d)=>{if(c)return e(c);if(d.length){if(this._messageLength+=d.length,this._messageLength>this._maxPayload&&this._maxPayload>0)return e(L0(RangeError,"Max payload size exceeded",!1,1009));this._fragments.push(d)}let b=this.dataMessage();if(b)return e(b);this.startLoop(e)})}dataMessage(){if(this._fin){let a=this._messageLength,e=this._fragments;if(this._totalPayloadLength=0,this._messageLength=0,this._fragmented=0,this._fragments=[],this._opcode===2){let f;this._binaryType==="nodebuffer"?f=db(e,a):this._binaryType==="arraybuffer"?f=FQ(db(e,a)):f=e,this.emit("message",f)}else{let f=db(e,a);if(!eE(f))return this._loop=!1,L0(Error,"invalid UTF-8 sequence",!0,1007);this.emit("message",f.toString())}}this._state=w3}controlMessage(a){if(this._opcode===8)if(this._loop=!1,a.length===0)this.emit("conclude",1005,""),this.end();else{if(a.length===1)return L0(RangeError,"invalid payload length 1",!0,1002);{let e=a.readUInt16BE(0);if(!mQ(e))return L0(RangeError,`invalid status code ${e}`,!0,1002);let f=a.slice(2);if(!eE(f))return L0(Error,"invalid UTF-8 sequence",!0,1007);this.emit("conclude",e,f.toString()),this.end()}}else this._opcode===9?this.emit("ping",a):this.emit("pong",a);this._state=w3}};cE.exports=lb;function L0(A,a,e,f){let c=new A(e?`Invalid WebSocket frame: ${a}`:a);return Error.captureStackTrace(c,L0),c[gQ]=f,c}});var nb=U((JY,lE)=>{"use strict";var{randomFillSync:pQ}=require("crypto"),dE=T3(),{EMPTY_BUFFER:TQ}=x1(),{isValidStatusCode:wQ}=cb(),{mask:bE,toBuffer:YA}=m3(),p1=Buffer.alloc(4),hA=class{constructor(a,e){this._extensions=e||{},this._socket=a,this._firstFragment=!0,this._compress=!1,this._bufferedBytes=0,this._deflating=!1,this._queue=[]}static frame(a,e){let f=e.mask&&e.readOnly,c=e.mask?6:2,d=a.length;a.length>=65536?(c+=8,d=127):a.length>125&&(c+=2,d=126);let b=Buffer.allocUnsafe(f?a.length+c:c);return b[0]=e.fin?e.opcode|128:e.opcode,e.rsv1&&(b[0]|=64),b[1]=d,d===126?b.writeUInt16BE(a.length,2):d===127&&(b.writeUInt32BE(0,2),b.writeUInt32BE(a.length,6)),e.mask?(pQ(p1,0,4),b[1]|=128,b[c-4]=p1[0],b[c-3]=p1[1],b[c-2]=p1[2],b[c-1]=p1[3],f?(bE(a,p1,b,c,a.length),[b]):(bE(a,p1,a,0,a.length),[b,a])):[b,a]}close(a,e,f,c){let d;if(a===void 0)d=TQ;else{if(typeof a!="number"||!wQ(a))throw new TypeError("First argument must be a valid error code number");if(e===void 0||e==="")d=Buffer.allocUnsafe(2),d.writeUInt16BE(a,0);else{let b=Buffer.byteLength(e);if(b>123)throw new RangeError("The message must not be greater than 123 bytes");d=Buffer.allocUnsafe(2+b),d.writeUInt16BE(a,0),d.write(e,2)}}this._deflating?this.enqueue([this.doClose,d,f,c]):this.doClose(d,f,c)}doClose(a,e,f){this.sendFrame(hA.frame(a,{fin:!0,rsv1:!1,opcode:8,mask:e,readOnly:!1}),f)}ping(a,e,f){let c=YA(a);if(c.length>125)throw new RangeError("The data size must not be greater than 125 bytes");this._deflating?this.enqueue([this.doPing,c,e,YA.readOnly,f]):this.doPing(c,e,YA.readOnly,f)}doPing(a,e,f,c){this.sendFrame(hA.frame(a,{fin:!0,rsv1:!1,opcode:9,mask:e,readOnly:f}),c)}pong(a,e,f){let c=YA(a);if(c.length>125)throw new RangeError("The data size must not be greater than 125 bytes");this._deflating?this.enqueue([this.doPong,c,e,YA.readOnly,f]):this.doPong(c,e,YA.readOnly,f)}doPong(a,e,f,c){this.sendFrame(hA.frame(a,{fin:!0,rsv1:!1,opcode:10,mask:e,readOnly:f}),c)}send(a,e,f){let c=YA(a),d=this._extensions[dE.extensionName],b=e.binary?2:1,r=e.compress;if(this._firstFragment?(this._firstFragment=!1,r&&d&&(r=c.length>=d._threshold),this._compress=r):(r=!1,b=0),e.fin&&(this._firstFragment=!0),d){let n={fin:e.fin,rsv1:r,opcode:b,mask:e.mask,readOnly:YA.readOnly};this._deflating?this.enqueue([this.dispatch,c,this._compress,n,f]):this.dispatch(c,this._compress,n,f)}else this.sendFrame(hA.frame(c,{fin:e.fin,rsv1:!1,opcode:b,mask:e.mask,readOnly:YA.readOnly}),f)}dispatch(a,e,f,c){if(!e){this.sendFrame(hA.frame(a,f),c);return}let d=this._extensions[dE.extensionName];this._bufferedBytes+=a.length,this._deflating=!0,d.compress(a,f.fin,(b,r)=>{if(this._socket.destroyed){let n=new Error("The socket was closed while data was being compressed");typeof c=="function"&&c(n);for(let l=0;l{"use strict";var X4=class{constructor(a,e){this.target=e,this.type=a}},tb=class extends X4{constructor(a,e){super("message",e),this.data=a}},ub=class extends X4{constructor(a,e,f){super("close",f),this.wasClean=f._closeFrameReceived&&f._closeFrameSent,this.reason=e,this.code=a}},ib=class extends X4{constructor(a){super("open",a)}},ob=class extends X4{constructor(a,e){super("error",e),this.message=a.message,this.error=a}},RQ={addEventListener(A,a,e){if(typeof a!="function")return;function f(n){a.call(this,new tb(n,this))}function c(n,l){a.call(this,new ub(n,l,this))}function d(n){a.call(this,new ob(n,this))}function b(){a.call(this,new ib(this))}let r=e&&e.once?"once":"on";A==="message"?(f._listener=a,this[r](A,f)):A==="close"?(c._listener=a,this[r](A,c)):A==="error"?(d._listener=a,this[r](A,d)):A==="open"?(b._listener=a,this[r](A,b)):this[r](A,a)},removeEventListener(A,a){let e=this.listeners(A);for(let f=0;f{"use strict";var R3=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,1,1,1,0,0,1,1,0,1,1,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,0,1,0];function CA(A,a,e){A[a]===void 0?A[a]=[e]:A[a].push(e)}function SQ(A){let a=Object.create(null);if(A===void 0||A==="")return a;let e=Object.create(null),f=!1,c=!1,d=!1,b,r,n=-1,l=-1,t=0;for(;t{let e=A[a];return Array.isArray(e)||(e=[e]),e.map(f=>[a].concat(Object.keys(f).map(c=>{let d=f[c];return Array.isArray(d)||(d=[d]),d.map(b=>b===!0?c:`${c}=${b}`).join("; ")})).join("; ")).join(", ")}).join(", ")}tE.exports={format:vQ,parse:SQ}});var gb=U((YY,IE)=>{"use strict";var kQ=require("events"),QQ=require("https"),yQ=require("http"),oE=require("net"),MQ=require("tls"),{randomBytes:UQ,createHash:NQ}=require("crypto"),{URL:Eb}=require("url"),Tf=T3(),OQ=rb(),GQ=nb(),{BINARY_TYPES:uE,EMPTY_BUFFER:Bb,GUID:PQ,kStatusCode:VQ,kWebSocket:Qa,NOOP:sE}=x1(),{addEventListener:LQ,removeEventListener:JQ}=nE(),{format:HQ,parse:ZQ}=sb(),{toBuffer:YQ}=m3(),EE=["CONNECTING","OPEN","CLOSING","CLOSED"],hb=[8,13],XQ=30*1e3,a0=class extends kQ{constructor(a,e,f){super(),this._binaryType=uE[0],this._closeCode=1006,this._closeFrameReceived=!1,this._closeFrameSent=!1,this._closeMessage="",this._closeTimer=null,this._extensions={},this._protocol="",this._readyState=a0.CONNECTING,this._receiver=null,this._sender=null,this._socket=null,a!==null?(this._bufferedAmount=0,this._isServer=!1,this._redirects=0,Array.isArray(e)?e=e.join(", "):typeof e=="object"&&e!==null&&(f=e,e=void 0),BE(this,a,e,f)):this._isServer=!0}get binaryType(){return this._binaryType}set binaryType(a){!uE.includes(a)||(this._binaryType=a,this._receiver&&(this._receiver._binaryType=a))}get bufferedAmount(){return this._socket?this._socket._writableState.length+this._sender._bufferedBytes:this._bufferedAmount}get extensions(){return Object.keys(this._extensions).join()}get protocol(){return this._protocol}get readyState(){return this._readyState}get url(){return this._url}setSocket(a,e,f){let c=new OQ(this.binaryType,this._extensions,this._isServer,f);this._sender=new GQ(a,this._extensions),this._receiver=c,this._socket=a,c[Qa]=this,a[Qa]=this,c.on("conclude",qQ),c.on("drain",zQ),c.on("error",jQ),c.on("message",_Q),c.on("ping",$Q),c.on("pong",ey),a.setTimeout(0),a.setNoDelay(),e.length>0&&a.unshift(e),a.on("close",hE),a.on("data",i5),a.on("end",CE),a.on("error",gE),this._readyState=a0.OPEN,this.emit("open")}emitClose(){if(!this._socket){this._readyState=a0.CLOSED,this.emit("close",this._closeCode,this._closeMessage);return}this._extensions[Tf.extensionName]&&this._extensions[Tf.extensionName].cleanup(),this._receiver.removeAllListeners(),this._readyState=a0.CLOSED,this.emit("close",this._closeCode,this._closeMessage)}close(a,e){if(this.readyState!==a0.CLOSED){if(this.readyState===a0.CONNECTING){let f="WebSocket was closed before the connection was established";return XA(this,this._req,f)}if(this.readyState===a0.CLOSING){this._closeFrameSent&&this._closeFrameReceived&&this._socket.end();return}this._readyState=a0.CLOSING,this._sender.close(a,e,!this._isServer,f=>{f||(this._closeFrameSent=!0,this._closeFrameReceived&&this._socket.end())}),this._closeTimer=setTimeout(this._socket.destroy.bind(this._socket),XQ)}}ping(a,e,f){if(this.readyState===a0.CONNECTING)throw new Error("WebSocket is not open: readyState 0 (CONNECTING)");if(typeof a=="function"?(f=a,a=e=void 0):typeof e=="function"&&(f=e,e=void 0),typeof a=="number"&&(a=a.toString()),this.readyState!==a0.OPEN){Cb(this,a,f);return}e===void 0&&(e=!this._isServer),this._sender.ping(a||Bb,e,f)}pong(a,e,f){if(this.readyState===a0.CONNECTING)throw new Error("WebSocket is not open: readyState 0 (CONNECTING)");if(typeof a=="function"?(f=a,a=e=void 0):typeof e=="function"&&(f=e,e=void 0),typeof a=="number"&&(a=a.toString()),this.readyState!==a0.OPEN){Cb(this,a,f);return}e===void 0&&(e=!this._isServer),this._sender.pong(a||Bb,e,f)}send(a,e,f){if(this.readyState===a0.CONNECTING)throw new Error("WebSocket is not open: readyState 0 (CONNECTING)");if(typeof e=="function"&&(f=e,e={}),typeof a=="number"&&(a=a.toString()),this.readyState!==a0.OPEN){Cb(this,a,f);return}let c={binary:typeof a!="string",mask:!this._isServer,compress:!0,fin:!0,...e};this._extensions[Tf.extensionName]||(c.compress=!1),this._sender.send(a||Bb,c,f)}terminate(){if(this.readyState!==a0.CLOSED){if(this.readyState===a0.CONNECTING){let a="WebSocket was closed before the connection was established";return XA(this,this._req,a)}this._socket&&(this._readyState=a0.CLOSING,this._socket.destroy())}}};EE.forEach((A,a)=>{let e={enumerable:!0,value:a};Object.defineProperty(a0.prototype,A,e),Object.defineProperty(a0,A,e)});["binaryType","bufferedAmount","extensions","protocol","readyState","url"].forEach(A=>{Object.defineProperty(a0.prototype,A,{enumerable:!0})});["open","error","close","message"].forEach(A=>{Object.defineProperty(a0.prototype,`on${A}`,{configurable:!0,enumerable:!0,get(){let a=this.listeners(A);for(let e=0;e{XA(A,x,"Opening handshake has timed out")}),x.on("error",p=>{x===null||x.aborted||(x=A._req=null,A._readyState=a0.CLOSING,A.emit("error",p),A.emitClose())}),x.on("response",p=>{let w=p.headers.location,y=p.statusCode;if(w&&c.followRedirects&&y>=300&&y<400){if(++A._redirects>c.maxRedirects){XA(A,x,"Maximum redirects exceeded");return}x.abort();let N=new Eb(w,a);BE(A,N,e,f)}else A.emit("unexpected-response",x,p)||XA(A,x,`Unexpected server response: ${p.statusCode}`)}),x.on("upgrade",(p,w,y)=>{if(A.emit("upgrade",p),A.readyState!==a0.CONNECTING)return;x=A._req=null;let N=NQ("sha1").update(l+PQ).digest("base64");if(p.headers["sec-websocket-accept"]!==N){XA(A,w,"Invalid Sec-WebSocket-Accept header");return}let Q=p.headers["sec-websocket-protocol"],P=(e||"").split(/, */),V;if(!e&&Q?V="Server sent a subprotocol but none was requested":e&&!Q?V="Server sent no subprotocol":Q&&!P.includes(Q)&&(V="Server sent an invalid subprotocol"),V){XA(A,w,V);return}if(Q&&(A._protocol=Q),B)try{let q=ZQ(p.headers["sec-websocket-extensions"]);q[Tf.extensionName]&&(B.accept(q[Tf.extensionName]),A._extensions[Tf.extensionName]=B)}catch{XA(A,w,"Invalid Sec-WebSocket-Extensions header");return}A.setSocket(w,y,c.maxPayload)})}function WQ(A){return A.path=A.socketPath,oE.connect(A)}function KQ(A){return A.path=void 0,!A.servername&&A.servername!==""&&(A.servername=oE.isIP(A.host)?"":A.host),MQ.connect(A)}function XA(A,a,e){A._readyState=a0.CLOSING;let f=new Error(e);Error.captureStackTrace(f,XA),a.setHeader?(a.abort(),a.socket&&!a.socket.destroyed&&a.socket.destroy(),a.once("abort",A.emitClose.bind(A)),A.emit("error",f)):(a.destroy(f),a.once("error",A.emit.bind(A,"error")),a.once("close",A.emitClose.bind(A)))}function Cb(A,a,e){if(a){let f=YQ(a).length;A._socket?A._sender._bufferedBytes+=f:A._bufferedAmount+=f}if(e){let f=new Error(`WebSocket is not open: readyState ${A.readyState} (${EE[A.readyState]})`);e(f)}}function qQ(A,a){let e=this[Qa];e._socket.removeListener("data",i5),e._socket.resume(),e._closeFrameReceived=!0,e._closeMessage=a,e._closeCode=A,A===1005?e.close():e.close(A,a)}function zQ(){this[Qa]._socket.resume()}function jQ(A){let a=this[Qa];a._socket.removeListener("data",i5),a._readyState=a0.CLOSING,a._closeCode=A[VQ],a.emit("error",A),a._socket.destroy()}function iE(){this[Qa].emitClose()}function _Q(A){this[Qa].emit("message",A)}function $Q(A){let a=this[Qa];a.pong(A,!a._isServer,sE),a.emit("ping",A)}function ey(A){this[Qa].emit("pong",A)}function hE(){let A=this[Qa];this.removeListener("close",hE),this.removeListener("end",CE),A._readyState=a0.CLOSING,A._socket.read(),A._receiver.end(),this.removeListener("data",i5),this[Qa]=void 0,clearTimeout(A._closeTimer),A._receiver._writableState.finished||A._receiver._writableState.errorEmitted?A.emitClose():(A._receiver.on("error",iE),A._receiver.on("finish",iE))}function i5(A){this[Qa]._receiver.write(A)||this.pause()}function CE(){let A=this[Qa];A._readyState=a0.CLOSING,A._receiver.end(),this.end()}function gE(){let A=this[Qa];this.removeListener("error",gE),this.on("error",sE),A&&(A._readyState=a0.CLOSING,this.destroy())}});var xE=U((XY,mE)=>{"use strict";var{Duplex:ay}=require("stream");function FE(A){A.emit("close")}function Ay(){!this.destroyed&&this._writableState.finished&&this.destroy()}function DE(A){this.removeListener("error",DE),this.destroy(),this.listenerCount("error")===0&&this.emit("error",A)}function fy(A,a){let e=!0;function f(){e&&A._socket.resume()}A.readyState===A.CONNECTING?A.once("open",function(){A._receiver.removeAllListeners("drain"),A._receiver.on("drain",f)}):(A._receiver.removeAllListeners("drain"),A._receiver.on("drain",f));let c=new ay({...a,autoDestroy:!1,emitClose:!1,objectMode:!1,writableObjectMode:!1});return A.on("message",function(b){c.push(b)||(e=!1,A._socket.pause())}),A.once("error",function(b){c.destroyed||c.destroy(b)}),A.once("close",function(){c.destroyed||c.push(null)}),c._destroy=function(d,b){if(A.readyState===A.CLOSED){b(d),process.nextTick(FE,c);return}let r=!1;A.once("error",function(l){r=!0,b(l)}),A.once("close",function(){r||b(d),process.nextTick(FE,c)}),A.terminate()},c._final=function(d){if(A.readyState===A.CONNECTING){A.once("open",function(){c._final(d)});return}A._socket!==null&&(A._socket._writableState.finished?(d(),c._readableState.endEmitted&&c.destroy()):(A._socket.once("finish",function(){d()}),A.close()))},c._read=function(){A.readyState===A.OPEN&&!e&&(e=!0,A._receiver._writableState.needDrain||A._socket.resume())},c._write=function(d,b,r){if(A.readyState===A.CONNECTING){A.once("open",function(){c._write(d,b,r)});return}A.send(d,r)},c.on("end",Ay),c.on("error",DE),c}mE.exports=fy});var TE=U((WY,pE)=>{"use strict";var cy=require("events"),{createHash:dy}=require("crypto"),{createServer:by,STATUS_CODES:Ib}=require("http"),T1=T3(),ly=gb(),{format:ry,parse:ny}=sb(),{GUID:ty,kWebSocket:uy}=x1(),iy=/^[+/0-9A-Za-z]{22}==$/,Fb=class extends cy{constructor(a,e){if(super(),a={maxPayload:100*1024*1024,perMessageDeflate:!1,handleProtocols:null,clientTracking:!0,verifyClient:null,noServer:!1,backlog:null,server:null,host:null,path:null,port:null,...a},a.port==null&&!a.server&&!a.noServer)throw new TypeError('One of the "port", "server", or "noServer" options must be specified');if(a.port!=null?(this._server=by((f,c)=>{let d=Ib[426];c.writeHead(426,{"Content-Length":d.length,"Content-Type":"text/plain"}),c.end(d)}),this._server.listen(a.port,a.host,a.backlog,e)):a.server&&(this._server=a.server),this._server){let f=this.emit.bind(this,"connection");this._removeListeners=oy(this._server,{listening:this.emit.bind(this,"listening"),error:this.emit.bind(this,"error"),upgrade:(c,d,b)=>{this.handleUpgrade(c,d,b,f)}})}a.perMessageDeflate===!0&&(a.perMessageDeflate={}),a.clientTracking&&(this.clients=new Set),this.options=a}address(){if(this.options.noServer)throw new Error('The server is operating in "noServer" mode');return this._server?this._server.address():null}close(a){if(a&&this.once("close",a),this.clients)for(let f of this.clients)f.terminate();let e=this._server;if(e&&(this._removeListeners(),this._removeListeners=this._server=null,this.options.port!=null)){e.close(()=>this.emit("close"));return}process.nextTick(sy,this)}shouldHandle(a){if(this.options.path){let e=a.url.indexOf("?");if((e!==-1?a.url.slice(0,e):a.url)!==this.options.path)return!1}return!0}handleUpgrade(a,e,f,c){e.on("error",Db);let d=a.headers["sec-websocket-key"]!==void 0?a.headers["sec-websocket-key"].trim():!1,b=+a.headers["sec-websocket-version"],r={};if(a.method!=="GET"||a.headers.upgrade.toLowerCase()!=="websocket"||!d||!iy.test(d)||b!==8&&b!==13||!this.shouldHandle(a))return o5(e,400);if(this.options.perMessageDeflate){let n=new T1(this.options.perMessageDeflate,!0,this.options.maxPayload);try{let l=ny(a.headers["sec-websocket-extensions"]);l[T1.extensionName]&&(n.accept(l[T1.extensionName]),r[T1.extensionName]=n)}catch{return o5(e,400)}}if(this.options.verifyClient){let n={origin:a.headers[`${b===8?"sec-websocket-origin":"origin"}`],secure:!!(a.socket.authorized||a.socket.encrypted),req:a};if(this.options.verifyClient.length===2){this.options.verifyClient(n,(l,t,B,x)=>{if(!l)return o5(e,t||401,B,x);this.completeUpgrade(d,r,a,e,f,c)});return}if(!this.options.verifyClient(n))return o5(e,401)}this.completeUpgrade(d,r,a,e,f,c)}completeUpgrade(a,e,f,c,d,b){if(!c.readable||!c.writable)return c.destroy();if(c[uy])throw new Error("server.handleUpgrade() was called more than once with the same socket, possibly due to a misconfiguration");let n=["HTTP/1.1 101 Switching Protocols","Upgrade: websocket","Connection: Upgrade",`Sec-WebSocket-Accept: ${dy("sha1").update(a+ty).digest("base64")}`],l=new ly(null),t=f.headers["sec-websocket-protocol"];if(t&&(t=t.split(",").map(Ey),this.options.handleProtocols?t=this.options.handleProtocols(t,f):t=t[0],t&&(n.push(`Sec-WebSocket-Protocol: ${t}`),l._protocol=t)),e[T1.extensionName]){let B=e[T1.extensionName].params,x=ry({[T1.extensionName]:[B]});n.push(`Sec-WebSocket-Extensions: ${x}`),l._extensions=e}this.emit("headers",n,f),c.write(n.concat(`\r +`).join(`\r +`)),c.removeListener("error",Db),l.setSocket(c,d,this.options.maxPayload),this.clients&&(this.clients.add(l),l.on("close",()=>this.clients.delete(l))),b(l,f)}};pE.exports=Fb;function oy(A,a){for(let e of Object.keys(a))A.on(e,a[e]);return function(){for(let f of Object.keys(a))A.removeListener(f,a[f])}}function sy(A){A.emit("close")}function Db(){this.destroy()}function o5(A,a,e,f){A.writable&&(e=e||Ib[a],f={Connection:"close","Content-Type":"text/html","Content-Length":Buffer.byteLength(e),...f},A.write(`HTTP/1.1 ${a} ${Ib[a]}\r +`+Object.keys(f).map(c=>`${c}: ${f[c]}`).join(`\r +`)+`\r +\r +`+e)),A.removeListener("error",Db),A.destroy()}function Ey(A){return A.trim()}});var RE=U((KY,wE)=>{"use strict";var S3=gb();S3.createWebSocketStream=xE();S3.Server=TE();S3.Receiver=rb();S3.Sender=nb();wE.exports=S3});var SE=U(W4=>{"use strict";var By=W4&&W4.__importDefault||function(A){return A&&A.__esModule?A:{default:A}};Object.defineProperty(W4,"__esModule",{value:!0});W4.WebSocket=void 0;var hy=By(RE());W4.WebSocket=hy.default});var E5=U(gA=>{"use strict";var Cy=gA&&gA.__extends||function(){var A=function(a,e){return A=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(f,c){f.__proto__=c}||function(f,c){for(var d in c)Object.prototype.hasOwnProperty.call(c,d)&&(f[d]=c[d])},A(a,e)};return function(a,e){if(typeof e!="function"&&e!==null)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");A(a,e);function f(){this.constructor=a}a.prototype=e===null?Object.create(e):(f.prototype=e.prototype,new f)}}(),mb=gA&&gA.__awaiter||function(A,a,e,f){function c(d){return d instanceof e?d:new e(function(b){b(d)})}return new(e||(e=Promise))(function(d,b){function r(t){try{l(f.next(t))}catch(B){b(B)}}function n(t){try{l(f.throw(t))}catch(B){b(B)}}function l(t){t.done?d(t.value):c(t.value).then(r,n)}l((f=f.apply(A,a||[])).next())})},xb=gA&&gA.__generator||function(A,a){var e={label:0,sent:function(){if(d[0]&1)throw d[1];return d[1]},trys:[],ops:[]},f,c,d,b;return b={next:r(0),throw:r(1),return:r(2)},typeof Symbol=="function"&&(b[Symbol.iterator]=function(){return this}),b;function r(l){return function(t){return n([l,t])}}function n(l){if(f)throw new TypeError("Generator is already executing.");for(;e;)try{if(f=1,c&&(d=l[0]&2?c.return:l[0]?c.throw||((d=c.return)&&d.call(c),0):c.next)&&!(d=d.call(c,l[1])).done)return d;switch(c=0,d&&(l=[l[0]&2,d.value]),l[0]){case 0:case 1:d=l;break;case 4:return e.label++,{value:l[1],done:!1};case 5:e.label++,c=l[1],l=[0];continue;case 7:l=e.ops.pop(),e.trys.pop();continue;default:if(d=e.trys,!(d=d.length>0&&d[d.length-1])&&(l[0]===6||l[0]===2)){e=0;continue}if(l[0]===3&&(!d||l[1]>d[0]&&l[1]{"use strict";var kE=s2&&s2.__extends||function(){var A=function(a,e){return A=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(f,c){f.__proto__=c}||function(f,c){for(var d in c)Object.prototype.hasOwnProperty.call(c,d)&&(f[d]=c[d])},A(a,e)};return function(a,e){if(typeof e!="function"&&e!==null)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");A(a,e);function f(){this.constructor=a}a.prototype=e===null?Object.create(e):(f.prototype=e.prototype,new f)}}(),xy=s2&&s2.__awaiter||function(A,a,e,f){function c(d){return d instanceof e?d:new e(function(b){b(d)})}return new(e||(e=Promise))(function(d,b){function r(t){try{l(f.next(t))}catch(B){b(B)}}function n(t){try{l(f.throw(t))}catch(B){b(B)}}function l(t){t.done?d(t.value):c(t.value).then(r,n)}l((f=f.apply(A,a||[])).next())})},py=s2&&s2.__generator||function(A,a){var e={label:0,sent:function(){if(d[0]&1)throw d[1];return d[1]},trys:[],ops:[]},f,c,d,b;return b={next:r(0),throw:r(1),return:r(2)},typeof Symbol=="function"&&(b[Symbol.iterator]=function(){return this}),b;function r(l){return function(t){return n([l,t])}}function n(l){if(f)throw new TypeError("Generator is already executing.");for(;e;)try{if(f=1,c&&(d=l[0]&2?c.return:l[0]?c.throw||((d=c.return)&&d.call(c),0):c.next)&&!(d=d.call(c,l[1])).done)return d;switch(c=0,d&&(l=[l[0]&2,d.value]),l[0]){case 0:case 1:d=l;break;case 4:return e.label++,{value:l[1],done:!1};case 5:e.label++,c=l[1],l=[0];continue;case 7:l=e.ops.pop(),e.trys.pop();continue;default:if(d=e.trys,!(d=d.length>0&&d[d.length-1])&&(l[0]===6||l[0]===2)){e=0;continue}if(l[0]===3&&(!d||l[1]>d[0]&&l[1]{"use strict";var ME=Sf&&Sf.__extends||function(){var A=function(a,e){return A=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(f,c){f.__proto__=c}||function(f,c){for(var d in c)Object.prototype.hasOwnProperty.call(c,d)&&(f[d]=c[d])},A(a,e)};return function(a,e){if(typeof e!="function"&&e!==null)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");A(a,e);function f(){this.constructor=a}a.prototype=e===null?Object.create(e):(f.prototype=e.prototype,new f)}}();Object.defineProperty(Sf,"__esModule",{value:!0});Sf.AlchemyProvider=Sf.AlchemyWebSocketProvider=void 0;var Sy=c0(),vy=xf(),ky=E5(),Qy=me(),yy=fa(),yE=new Qy.Logger(yy.version),My=Rf(),h5="_gg7wSSi0KMBsdKnGVfHDueq6xMB9EkC",UE=function(A){ME(a,A);function a(e,f){var c=this,d=new NE(e,f),b=d.connection.url.replace(/^http/i,"ws").replace(".alchemyapi.",".ws.alchemyapi.");return c=A.call(this,b,d.network)||this,(0,Sy.defineReadOnly)(c,"apiKey",d.apiKey),c}return a.prototype.isCommunityResource=function(){return this.apiKey===h5},a}(ky.WebSocketProvider);Sf.AlchemyWebSocketProvider=UE;var NE=function(A){ME(a,A);function a(){return A!==null&&A.apply(this,arguments)||this}return a.getWebSocketProvider=function(e,f){return new UE(e,f)},a.getApiKey=function(e){return e==null?h5:(e&&typeof e!="string"&&yE.throwArgumentError("invalid apiKey","apiKey",e),e)},a.getUrl=function(e,f){var c=null;switch(e.name){case"homestead":c="eth-mainnet.alchemyapi.io/v2/";break;case"goerli":c="eth-goerli.g.alchemy.com/v2/";break;case"matic":c="polygon-mainnet.g.alchemy.com/v2/";break;case"maticmum":c="polygon-mumbai.g.alchemy.com/v2/";break;case"arbitrum":c="arb-mainnet.g.alchemy.com/v2/";break;case"arbitrum-goerli":c="arb-goerli.g.alchemy.com/v2/";break;case"optimism":c="opt-mainnet.g.alchemy.com/v2/";break;case"optimism-goerli":c="opt-goerli.g.alchemy.com/v2/";break;default:yE.throwArgumentError("unsupported network","network",arguments[0])}return{allowGzip:!0,url:"https://"+c+f,throttleCallback:function(d,b){return f===h5&&(0,vy.showThrottleMessage)(),Promise.resolve(!0)}}},a.prototype.isCommunityResource=function(){return this.apiKey===h5},a}(My.UrlJsonRpcProvider);Sf.AlchemyProvider=NE});var GE=U(q4=>{"use strict";var Uy=q4&&q4.__extends||function(){var A=function(a,e){return A=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(f,c){f.__proto__=c}||function(f,c){for(var d in c)Object.prototype.hasOwnProperty.call(c,d)&&(f[d]=c[d])},A(a,e)};return function(a,e){if(typeof e!="function"&&e!==null)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");A(a,e);function f(){this.constructor=a}a.prototype=e===null?Object.create(e):(f.prototype=e.prototype,new f)}}();Object.defineProperty(q4,"__esModule",{value:!0});q4.AnkrProvider=void 0;var Ny=xf(),Oy=Rf(),Gy=me(),Py=fa(),Vy=new Gy.Logger(Py.version),C5="9f7d929b018cdffb338517efa06f58359e86ff1ffd350bc889738523659e7972";function Ly(A){switch(A){case"homestead":return"rpc.ankr.com/eth/";case"ropsten":return"rpc.ankr.com/eth_ropsten/";case"rinkeby":return"rpc.ankr.com/eth_rinkeby/";case"goerli":return"rpc.ankr.com/eth_goerli/";case"matic":return"rpc.ankr.com/polygon/";case"arbitrum":return"rpc.ankr.com/arbitrum/"}return Vy.throwArgumentError("unsupported network","name",A)}var Jy=function(A){Uy(a,A);function a(){return A!==null&&A.apply(this,arguments)||this}return a.prototype.isCommunityResource=function(){return this.apiKey===C5},a.getApiKey=function(e){return e??C5},a.getUrl=function(e,f){f==null&&(f=C5);var c={allowGzip:!0,url:"https://"+Ly(e.name)+f,throttleCallback:function(d,b){return f.apiKey===C5&&(0,Ny.showThrottleMessage)(),Promise.resolve(!0)}};return f.projectSecret!=null&&(c.user="",c.password=f.projectSecret),c},a}(Oy.UrlJsonRpcProvider);q4.AnkrProvider=Jy});var VE=U(IA=>{"use strict";var Hy=IA&&IA.__extends||function(){var A=function(a,e){return A=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(f,c){f.__proto__=c}||function(f,c){for(var d in c)Object.prototype.hasOwnProperty.call(c,d)&&(f[d]=c[d])},A(a,e)};return function(a,e){if(typeof e!="function"&&e!==null)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");A(a,e);function f(){this.constructor=a}a.prototype=e===null?Object.create(e):(f.prototype=e.prototype,new f)}}(),Zy=IA&&IA.__awaiter||function(A,a,e,f){function c(d){return d instanceof e?d:new e(function(b){b(d)})}return new(e||(e=Promise))(function(d,b){function r(t){try{l(f.next(t))}catch(B){b(B)}}function n(t){try{l(f.throw(t))}catch(B){b(B)}}function l(t){t.done?d(t.value):c(t.value).then(r,n)}l((f=f.apply(A,a||[])).next())})},Yy=IA&&IA.__generator||function(A,a){var e={label:0,sent:function(){if(d[0]&1)throw d[1];return d[1]},trys:[],ops:[]},f,c,d,b;return b={next:r(0),throw:r(1),return:r(2)},typeof Symbol=="function"&&(b[Symbol.iterator]=function(){return this}),b;function r(l){return function(t){return n([l,t])}}function n(l){if(f)throw new TypeError("Generator is already executing.");for(;e;)try{if(f=1,c&&(d=l[0]&2?c.return:l[0]?c.throw||((d=c.return)&&d.call(c),0):c.next)&&!(d=d.call(c,l[1])).done)return d;switch(c=0,d&&(l=[l[0]&2,d.value]),l[0]){case 0:case 1:d=l;break;case 4:return e.label++,{value:l[1],done:!1};case 5:e.label++,c=l[1],l=[0];continue;case 7:l=e.ops.pop(),e.trys.pop();continue;default:if(d=e.trys,!(d=d.length>0&&d[d.length-1])&&(l[0]===6||l[0]===2)){e=0;continue}if(l[0]===3&&(!d||l[1]>d[0]&&l[1]{"use strict";var zy=DA&&DA.__extends||function(){var A=function(a,e){return A=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(f,c){f.__proto__=c}||function(f,c){for(var d in c)Object.prototype.hasOwnProperty.call(c,d)&&(f[d]=c[d])},A(a,e)};return function(a,e){if(typeof e!="function"&&e!==null)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");A(a,e);function f(){this.constructor=a}a.prototype=e===null?Object.create(e):(f.prototype=e.prototype,new f)}}(),g5=DA&&DA.__awaiter||function(A,a,e,f){function c(d){return d instanceof e?d:new e(function(b){b(d)})}return new(e||(e=Promise))(function(d,b){function r(t){try{l(f.next(t))}catch(B){b(B)}}function n(t){try{l(f.throw(t))}catch(B){b(B)}}function l(t){t.done?d(t.value):c(t.value).then(r,n)}l((f=f.apply(A,a||[])).next())})},I5=DA&&DA.__generator||function(A,a){var e={label:0,sent:function(){if(d[0]&1)throw d[1];return d[1]},trys:[],ops:[]},f,c,d,b;return b={next:r(0),throw:r(1),return:r(2)},typeof Symbol=="function"&&(b[Symbol.iterator]=function(){return this}),b;function r(l){return function(t){return n([l,t])}}function n(l){if(f)throw new TypeError("Generator is already executing.");for(;e;)try{if(f=1,c&&(d=l[0]&2?c.return:l[0]?c.throw||((d=c.return)&&d.call(c),0):c.next)&&!(d=d.call(c,l[1])).done)return d;switch(c=0,d&&(l=[l[0]&2,d.value]),l[0]){case 0:case 1:d=l;break;case 4:return e.label++,{value:l[1],done:!1};case 5:e.label++,c=l[1],l=[0];continue;case 7:l=e.ops.pop(),e.trys.pop();continue;default:if(d=e.trys,!(d=d.length>0&&d[d.length-1])&&(l[0]===6||l[0]===2)){e=0;continue}if(l[0]===3&&(!d||l[1]>d[0]&&l[1]=0&&(a.throttleRetry=!0),a}return A.result}function JE(A){if(A&&A.status==0&&A.message=="NOTOK"&&(A.result||"").toLowerCase().indexOf("rate limit")>=0){var a=new Error("throttled response");throw a.result=JSON.stringify(A),a.throttleRetry=!0,a}if(A.jsonrpc!="2.0"){var a=new Error("invalid response");throw a.result=JSON.stringify(A),a}if(A.error){var a=new Error(A.error.message||"unknown error");throw A.error.code&&(a.code=A.error.code),A.error.data&&(a.data=A.error.data),a}return A.result}function HE(A){if(A==="pending")throw new Error("pending not supported");return A==="latest"?A:parseInt(A.substring(2),16)}function Tb(A,a,e){if(A==="call"&&a.code===FA.Logger.errors.SERVER_ERROR){var f=a.error;if(f&&(f.message.match(/reverted/i)||f.message.match(/VM execution error/i))){var c=f.data;if(c&&(c="0x"+c.replace(/^.*0x/i,"")),(0,F5.isHexString)(c))return c;vf.throwError("missing revert data in call exception",FA.Logger.errors.CALL_EXCEPTION,{error:a,data:"0x"})}}var d=a.message;throw a.code===FA.Logger.errors.SERVER_ERROR&&(a.error&&typeof a.error.message=="string"?d=a.error.message:typeof a.body=="string"?d=a.body:typeof a.responseText=="string"&&(d=a.responseText)),d=(d||"").toLowerCase(),d.match(/insufficient funds/)&&vf.throwError("insufficient funds for intrinsic transaction cost",FA.Logger.errors.INSUFFICIENT_FUNDS,{error:a,method:A,transaction:e}),d.match(/same hash was already imported|transaction nonce is too low|nonce too low/)&&vf.throwError("nonce has already been used",FA.Logger.errors.NONCE_EXPIRED,{error:a,method:A,transaction:e}),d.match(/another transaction with same nonce/)&&vf.throwError("replacement fee too low",FA.Logger.errors.REPLACEMENT_UNDERPRICED,{error:a,method:A,transaction:e}),d.match(/execution failed due to an exception|execution reverted/)&&vf.throwError("cannot estimate gas; transaction may fail or may require manual gas limit",FA.Logger.errors.UNPREDICTABLE_GAS_LIMIT,{error:a,method:A,transaction:e}),a}var fM=function(A){zy(a,A);function a(e,f){var c=A.call(this,e)||this;return(0,pb.defineReadOnly)(c,"baseUrl",c.getBaseUrl()),(0,pb.defineReadOnly)(c,"apiKey",f||null),c}return a.prototype.getBaseUrl=function(){switch(this.network?this.network.name:"invalid"){case"homestead":return"https://api.etherscan.io";case"goerli":return"https://api-goerli.etherscan.io";case"sepolia":return"https://api-sepolia.etherscan.io";case"matic":return"https://api.polygonscan.com";case"maticmum":return"https://api-testnet.polygonscan.com";case"arbitrum":return"https://api.arbiscan.io";case"arbitrum-goerli":return"https://api-goerli.arbiscan.io";case"optimism":return"https://api-optimistic.etherscan.io";case"optimism-goerli":return"https://api-goerli-optimistic.etherscan.io";default:}return vf.throwArgumentError("unsupported network","network",this.network.name)},a.prototype.getUrl=function(e,f){var c=Object.keys(f).reduce(function(b,r){var n=f[r];return n!=null&&(b+="&"+r+"="+n),b},""),d=this.apiKey?"&apikey="+this.apiKey:"";return this.baseUrl+"/api?module="+e+c+d},a.prototype.getPostUrl=function(){return this.baseUrl+"/api"},a.prototype.getPostData=function(e,f){return f.module=e,f.apikey=this.apiKey,f},a.prototype.fetch=function(e,f,c){return g5(this,void 0,void 0,function(){var d,b,r,n,l,t,B=this;return I5(this,function(x){switch(x.label){case 0:return d=c?this.getPostUrl():this.getUrl(e,f),b=c?this.getPostData(e,f):null,r=e==="proxy"?JE:AM,this.emit("debug",{action:"request",request:d,provider:this}),n={url:d,throttleSlotInterval:1e3,throttleCallback:function(p,w){return B.isCommunityResource()&&(0,$y.showThrottleMessage)(),Promise.resolve(!0)}},l=null,b&&(n.headers={"content-type":"application/x-www-form-urlencoded; charset=UTF-8"},l=Object.keys(b).map(function(p){return p+"="+b[p]}).join("&")),[4,(0,_y.fetchJson)(n,l,r||JE)];case 1:return t=x.sent(),this.emit("debug",{action:"response",request:d,response:(0,pb.deepCopy)(t),provider:this}),[2,t]}})})},a.prototype.detectNetwork=function(){return g5(this,void 0,void 0,function(){return I5(this,function(e){return[2,this.network]})})},a.prototype.perform=function(e,f){return g5(this,void 0,void 0,function(){var c,b,d,b,r,n,l,t,B,x,p,w,y;return I5(this,function(N){switch(N.label){case 0:switch(c=e,c){case"getBlockNumber":return[3,1];case"getGasPrice":return[3,2];case"getBalance":return[3,3];case"getTransactionCount":return[3,4];case"getCode":return[3,5];case"getStorageAt":return[3,6];case"sendTransaction":return[3,7];case"getBlock":return[3,8];case"getTransaction":return[3,9];case"getTransactionReceipt":return[3,10];case"call":return[3,11];case"estimateGas":return[3,15];case"getLogs":return[3,19];case"getEtherPrice":return[3,26]}return[3,28];case 1:return[2,this.fetch("proxy",{action:"eth_blockNumber"})];case 2:return[2,this.fetch("proxy",{action:"eth_gasPrice"})];case 3:return[2,this.fetch("account",{action:"balance",address:f.address,tag:f.blockTag})];case 4:return[2,this.fetch("proxy",{action:"eth_getTransactionCount",address:f.address,tag:f.blockTag})];case 5:return[2,this.fetch("proxy",{action:"eth_getCode",address:f.address,tag:f.blockTag})];case 6:return[2,this.fetch("proxy",{action:"eth_getStorageAt",address:f.address,position:f.position,tag:f.blockTag})];case 7:return[2,this.fetch("proxy",{action:"eth_sendRawTransaction",hex:f.signedTransaction},!0).catch(function(Q){return Tb("sendTransaction",Q,f.signedTransaction)})];case 8:if(f.blockTag)return[2,this.fetch("proxy",{action:"eth_getBlockByNumber",tag:f.blockTag,boolean:f.includeTransactions?"true":"false"})];throw new Error("getBlock by blockHash not implemented");case 9:return[2,this.fetch("proxy",{action:"eth_getTransactionByHash",txhash:f.transactionHash})];case 10:return[2,this.fetch("proxy",{action:"eth_getTransactionReceipt",txhash:f.transactionHash})];case 11:if(f.blockTag!=="latest")throw new Error("EtherscanProvider does not support blockTag for call");b=LE(f.transaction),b.module="proxy",b.action="eth_call",N.label=12;case 12:return N.trys.push([12,14,,15]),[4,this.fetch("proxy",b,!0)];case 13:return[2,N.sent()];case 14:return d=N.sent(),[2,Tb("call",d,f.transaction)];case 15:b=LE(f.transaction),b.module="proxy",b.action="eth_estimateGas",N.label=16;case 16:return N.trys.push([16,18,,19]),[4,this.fetch("proxy",b,!0)];case 17:return[2,N.sent()];case 18:return r=N.sent(),[2,Tb("estimateGas",r,f.transaction)];case 19:return n={action:"getLogs"},f.filter.fromBlock&&(n.fromBlock=HE(f.filter.fromBlock)),f.filter.toBlock&&(n.toBlock=HE(f.filter.toBlock)),f.filter.address&&(n.address=f.filter.address),f.filter.topics&&f.filter.topics.length>0&&(f.filter.topics.length>1&&vf.throwError("unsupported topic count",FA.Logger.errors.UNSUPPORTED_OPERATION,{topics:f.filter.topics}),f.filter.topics.length===1&&(l=f.filter.topics[0],(typeof l!="string"||l.length!==66)&&vf.throwError("unsupported topic format",FA.Logger.errors.UNSUPPORTED_OPERATION,{topic0:l}),n.topic0=l)),[4,this.fetch("logs",n)];case 20:t=N.sent(),B={},x=0,N.label=21;case 21:return x{"use strict";var cM=xA&&xA.__extends||function(){var A=function(a,e){return A=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(f,c){f.__proto__=c}||function(f,c){for(var d in c)Object.prototype.hasOwnProperty.call(c,d)&&(f[d]=c[d])},A(a,e)};return function(a,e){if(typeof e!="function"&&e!==null)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");A(a,e);function f(){this.constructor=a}a.prototype=e===null?Object.create(e):(f.prototype=e.prototype,new f)}}(),x5=xA&&xA.__awaiter||function(A,a,e,f){function c(d){return d instanceof e?d:new e(function(b){b(d)})}return new(e||(e=Promise))(function(d,b){function r(t){try{l(f.next(t))}catch(B){b(B)}}function n(t){try{l(f.throw(t))}catch(B){b(B)}}function l(t){t.done?d(t.value):c(t.value).then(r,n)}l((f=f.apply(A,a||[])).next())})},y3=xA&&xA.__generator||function(A,a){var e={label:0,sent:function(){if(d[0]&1)throw d[1];return d[1]},trys:[],ops:[]},f,c,d,b;return b={next:r(0),throw:r(1),return:r(2)},typeof Symbol=="function"&&(b[Symbol.iterator]=function(){return this}),b;function r(l){return function(t){return n([l,t])}}function n(l){if(f)throw new TypeError("Generator is already executing.");for(;e;)try{if(f=1,c&&(d=l[0]&2?c.return:l[0]?c.throw||((d=c.return)&&d.call(c),0):c.next)&&!(d=d.call(c,l[1])).done)return d;switch(c=0,d&&(l=[l[0]&2,d.value]),l[0]){case 0:case 1:d=l;break;case 4:return e.label++,{value:l[1],done:!1};case 5:e.label++,c=l[1],l=[0];continue;case 7:l=e.ops.pop(),e.trys.pop();continue;default:if(d=e.trys,!(d=d.length>0&&d[d.length-1])&&(l[0]===6||l[0]===2)){e=0;continue}if(l[0]===3&&(!d||l[1]>d[0]&&l[1]a?null:(f+c)/2}function j4(A){if(A===null)return"null";if(typeof A=="number"||typeof A=="boolean")return JSON.stringify(A);if(typeof A=="string")return A;if(bM.BigNumber.isBigNumber(A))return A.toString();if(Array.isArray(A))return JSON.stringify(A.map(function(e){return j4(e)}));if(typeof A=="object"){var a=Object.keys(A);return a.sort(),"{"+a.map(function(e){var f=A[e];return typeof f=="function"?f="[function]":f=j4(f),JSON.stringify(e)+":"+f}).join(",")+"}"}throw new Error("unknown value type: "+typeof A)}var uM=1;function KE(A){var a=null,e=null,f=new Promise(function(b){a=function(){e&&(clearTimeout(e),e=null),b()},e=setTimeout(a,A)}),c=function(b){return f=f.then(b),f};function d(){return f}return{cancel:a,getPromise:d,wait:c}}var iM=[kf.Logger.errors.CALL_EXCEPTION,kf.Logger.errors.INSUFFICIENT_FUNDS,kf.Logger.errors.NONCE_EXPIRED,kf.Logger.errors.REPLACEMENT_UNDERPRICED,kf.Logger.errors.UNPREDICTABLE_GAS_LIMIT],oM=["address","args","errorArgs","errorSignature","method","transaction"];function m5(A,a){var e={weight:A.weight};return Object.defineProperty(e,"provider",{get:function(){return A.provider}}),A.start&&(e.start=A.start),a&&(e.duration=a-A.start),A.done&&(A.error?e.error=A.error:e.result=A.result||null),e}function sM(A,a){return function(e){var f={};e.forEach(function(r){var n=A(r.result);f[n]||(f[n]={count:0,result:r.result}),f[n].count++});for(var c=Object.keys(f),d=0;d=a)return b.result}}}function EM(A,a,e){var f=j4;switch(a){case"getBlockNumber":return function(c){var d=c.map(function(r){return r.result}),b=WE(c.map(function(r){return r.result}),2);if(b!=null)return b=Math.ceil(b),d.indexOf(b+1)>=0&&b++,b>=A._highestBlockNumber&&(A._highestBlockNumber=b),A._highestBlockNumber};case"getGasPrice":return function(c){var d=c.map(function(b){return b.result});return d.sort(),d[Math.floor(d.length/2)]};case"getEtherPrice":return function(c){return WE(c.map(function(d){return d.result}))};case"getBalance":case"getTransactionCount":case"getCode":case"getStorageAt":case"call":case"estimateGas":case"getLogs":break;case"getTransaction":case"getTransactionReceipt":f=function(c){return c==null?null:(c=(0,mA.shallowCopy)(c),c.confirmations=-1,j4(c))};break;case"getBlock":e.includeTransactions?f=function(c){return c==null?null:(c=(0,mA.shallowCopy)(c),c.transactions=c.transactions.map(function(d){return d=(0,mA.shallowCopy)(d),d.confirmations=-1,d}),j4(c))}:f=function(c){return c==null?null:j4(c)};break;default:throw new Error("unknown method: "+a)}return sM(f,A.quorum)}function Q3(A,a){return x5(this,void 0,void 0,function(){var e;return y3(this,function(f){return e=A.provider,e.blockNumber!=null&&e.blockNumber>=a||a===-1?[2,e]:[2,(0,rM.poll)(function(){return new Promise(function(c,d){setTimeout(function(){return e.blockNumber>=a?c(e):A.cancelled?c(null):c(void 0)},0)})},{oncePoll:e})]})})}function BM(A,a,e,f){return x5(this,void 0,void 0,function(){var c,d,b;return y3(this,function(r){switch(r.label){case 0:switch(c=A.provider,d=e,d){case"getBlockNumber":return[3,1];case"getGasPrice":return[3,1];case"getEtherPrice":return[3,2];case"getBalance":return[3,3];case"getTransactionCount":return[3,3];case"getCode":return[3,3];case"getStorageAt":return[3,6];case"getBlock":return[3,9];case"call":return[3,12];case"estimateGas":return[3,12];case"getTransaction":return[3,15];case"getTransactionReceipt":return[3,15];case"getLogs":return[3,16]}return[3,19];case 1:return[2,c[e]()];case 2:return c.getEtherPrice?[2,c.getEtherPrice()]:[3,19];case 3:return f.blockTag&&(0,z4.isHexString)(f.blockTag)?[4,Q3(A,a)]:[3,5];case 4:c=r.sent(),r.label=5;case 5:return[2,c[e](f.address,f.blockTag||"latest")];case 6:return f.blockTag&&(0,z4.isHexString)(f.blockTag)?[4,Q3(A,a)]:[3,8];case 7:c=r.sent(),r.label=8;case 8:return[2,c.getStorageAt(f.address,f.position,f.blockTag||"latest")];case 9:return f.blockTag&&(0,z4.isHexString)(f.blockTag)?[4,Q3(A,a)]:[3,11];case 10:c=r.sent(),r.label=11;case 11:return[2,c[f.includeTransactions?"getBlockWithTransactions":"getBlock"](f.blockTag||f.blockHash)];case 12:return f.blockTag&&(0,z4.isHexString)(f.blockTag)?[4,Q3(A,a)]:[3,14];case 13:c=r.sent(),r.label=14;case 14:return e==="call"&&f.blockTag?[2,c[e](f.transaction,f.blockTag)]:[2,c[e](f.transaction)];case 15:return[2,c[e](f.transactionHash)];case 16:return b=f.filter,b.fromBlock&&(0,z4.isHexString)(b.fromBlock)||b.toBlock&&(0,z4.isHexString)(b.toBlock)?[4,Q3(A,a)]:[3,18];case 17:c=r.sent(),r.label=18;case 18:return[2,c.getLogs(b)];case 19:return[2,w1.throwError("unknown method error",kf.Logger.errors.UNKNOWN_ERROR,{method:e,params:f})]}})})}var hM=function(A){cM(a,A);function a(e,f){var c=this;e.length===0&&w1.throwArgumentError("missing providers","providers",e);var d=e.map(function(n,l){if(dM.Provider.isProvider(n)){var t=(0,YE.isCommunityResource)(n)?2e3:750,B=1;return Object.freeze({provider:n,weight:1,stallTimeout:t,priority:B})}var x=(0,mA.shallowCopy)(n);x.priority==null&&(x.priority=1),x.stallTimeout==null&&(x.stallTimeout=(0,YE.isCommunityResource)(n)?2e3:750),x.weight==null&&(x.weight=1);var p=x.weight;return(p%1||p>512||p<1)&&w1.throwArgumentError("invalid weight; must be integer in [1, 512]","providers["+l+"].weight",p),Object.freeze(x)}),b=d.reduce(function(n,l){return n+l.weight},0);f==null?f=b/2:f>b&&w1.throwArgumentError("quorum will always fail; larger than total weight","quorum",f);var r=XE(d.map(function(n){return n.provider.network}));return r==null&&(r=new Promise(function(n,l){setTimeout(function(){c.detectNetwork().then(n,l)},0)})),c=A.call(this,r)||this,(0,mA.defineReadOnly)(c,"providerConfigs",Object.freeze(d)),(0,mA.defineReadOnly)(c,"quorum",f),c._highestBlockNumber=-1,c}return a.prototype.detectNetwork=function(){return x5(this,void 0,void 0,function(){var e;return y3(this,function(f){switch(f.label){case 0:return[4,Promise.all(this.providerConfigs.map(function(c){return c.provider.getNetwork()}))];case 1:return e=f.sent(),[2,XE(e)]}})})},a.prototype.perform=function(e,f){return x5(this,void 0,void 0,function(){var c,d,b,r,n,l,t,B,x,p,w,y=this;return y3(this,function(N){switch(N.label){case 0:return e!=="sendTransaction"?[3,2]:[4,Promise.all(this.providerConfigs.map(function(Q){return Q.provider.sendTransaction(f.signedTransaction).then(function(P){return P.hash},function(P){return P})}))];case 1:for(c=N.sent(),d=0;d=p.quorum?(Z=r(_),Z!==void 0?(n.forEach(function(H){H.staller&&H.staller.cancel(),H.cancelled=!0}),[2,{value:Z}]):B?[3,4]:[4,KE(100).getPromise()]):[3,5];case 3:ce.sent(),ce.label=4;case 4:B=!1,ce.label=5;case 5:return de=n.reduce(function(H,k){if(!k.done||k.error==null)return H;var E=k.error.code;return iM.indexOf(E)>=0&&(H[E]||(H[E]={error:k.error,weight:0}),H[E].weight+=k.weight),H},{}),Object.keys(de).forEach(function(H){var k=de[H];if(!(k.weight{"use strict";var CM=_4&&_4.__extends||function(){var A=function(a,e){return A=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(f,c){f.__proto__=c}||function(f,c){for(var d in c)Object.prototype.hasOwnProperty.call(c,d)&&(f[d]=c[d])},A(a,e)};return function(a,e){if(typeof e!="function"&&e!==null)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");A(a,e);function f(){this.constructor=a}a.prototype=e===null?Object.create(e):(f.prototype=e.prototype,new f)}}();Object.defineProperty(_4,"__esModule",{value:!0});_4.IpcProvider=void 0;var gM=require("net"),IM=c0(),zE=me(),FM=fa(),DM=new zE.Logger(FM.version),mM=m1(),xM=function(A){CM(a,A);function a(e,f){var c=this;return e==null&&DM.throwError("missing path",zE.Logger.errors.MISSING_ARGUMENT,{arg:"path"}),c=A.call(this,"ipc://"+e,f)||this,(0,IM.defineReadOnly)(c,"path",e),c}return a.prototype.send=function(e,f){var c=this,d=JSON.stringify({method:e,params:f,id:42,jsonrpc:"2.0"});return new Promise(function(b,r){var n=Buffer.alloc(0),l=(0,gM.connect)(c.path);l.on("data",function(t){n=Buffer.concat([n,t])}),l.on("end",function(){try{b(JSON.parse(n.toString()).result),l.destroy()}catch(t){r(t),l.destroy()}}),l.on("error",function(t){r(t),l.destroy()}),l.write(d),l.end()})},a}(mM.JsonRpcProvider);_4.IpcProvider=xM});var aB=U(Qf=>{"use strict";var _E=Qf&&Qf.__extends||function(){var A=function(a,e){return A=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(f,c){f.__proto__=c}||function(f,c){for(var d in c)Object.prototype.hasOwnProperty.call(c,d)&&(f[d]=c[d])},A(a,e)};return function(a,e){if(typeof e!="function"&&e!==null)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");A(a,e);function f(){this.constructor=a}a.prototype=e===null?Object.create(e):(f.prototype=e.prototype,new f)}}();Object.defineProperty(Qf,"__esModule",{value:!0});Qf.InfuraProvider=Qf.InfuraWebSocketProvider=void 0;var wb=c0(),pM=E5(),TM=xf(),Rb=me(),wM=fa(),p5=new Rb.Logger(wM.version),RM=Rf(),M3="84842078b09946638c03157f83405213",$E=function(A){_E(a,A);function a(e,f){var c=this,d=new eB(e,f),b=d.connection;b.password&&p5.throwError("INFURA WebSocket project secrets unsupported",Rb.Logger.errors.UNSUPPORTED_OPERATION,{operation:"InfuraProvider.getWebSocketProvider()"});var r=b.url.replace(/^http/i,"ws").replace("/v3/","/ws/v3/");return c=A.call(this,r,e)||this,(0,wb.defineReadOnly)(c,"apiKey",d.projectId),(0,wb.defineReadOnly)(c,"projectId",d.projectId),(0,wb.defineReadOnly)(c,"projectSecret",d.projectSecret),c}return a.prototype.isCommunityResource=function(){return this.projectId===M3},a}(pM.WebSocketProvider);Qf.InfuraWebSocketProvider=$E;var eB=function(A){_E(a,A);function a(){return A!==null&&A.apply(this,arguments)||this}return a.getWebSocketProvider=function(e,f){return new $E(e,f)},a.getApiKey=function(e){var f={apiKey:M3,projectId:M3,projectSecret:null};return e==null||(typeof e=="string"?f.projectId=e:e.projectSecret!=null?(p5.assertArgument(typeof e.projectId=="string","projectSecret requires a projectId","projectId",e.projectId),p5.assertArgument(typeof e.projectSecret=="string","invalid projectSecret","projectSecret","[REDACTED]"),f.projectId=e.projectId,f.projectSecret=e.projectSecret):e.projectId&&(f.projectId=e.projectId),f.apiKey=f.projectId),f},a.getUrl=function(e,f){var c=null;switch(e?e.name:"unknown"){case"homestead":c="mainnet.infura.io";break;case"goerli":c="goerli.infura.io";break;case"sepolia":c="sepolia.infura.io";break;case"matic":c="polygon-mainnet.infura.io";break;case"maticmum":c="polygon-mumbai.infura.io";break;case"optimism":c="optimism-mainnet.infura.io";break;case"optimism-goerli":c="optimism-goerli.infura.io";break;case"arbitrum":c="arbitrum-mainnet.infura.io";break;case"arbitrum-goerli":c="arbitrum-goerli.infura.io";break;default:p5.throwError("unsupported network",Rb.Logger.errors.INVALID_ARGUMENT,{argument:"network",value:e})}var d={allowGzip:!0,url:"https://"+c+"/v3/"+f.projectId,throttleCallback:function(b,r){return f.projectId===M3&&(0,TM.showThrottleMessage)(),Promise.resolve(!0)}};return f.projectSecret!=null&&(d.user="",d.password=f.projectSecret),d},a.prototype.isCommunityResource=function(){return this.projectId===M3},a}(RM.UrlJsonRpcProvider);Qf.InfuraProvider=eB});var AB=U($4=>{"use strict";var SM=$4&&$4.__extends||function(){var A=function(a,e){return A=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(f,c){f.__proto__=c}||function(f,c){for(var d in c)Object.prototype.hasOwnProperty.call(c,d)&&(f[d]=c[d])},A(a,e)};return function(a,e){if(typeof e!="function"&&e!==null)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");A(a,e);function f(){this.constructor=a}a.prototype=e===null?Object.create(e):(f.prototype=e.prototype,new f)}}();Object.defineProperty($4,"__esModule",{value:!0});$4.JsonRpcBatchProvider=void 0;var vM=c0(),kM=D1(),QM=m1(),yM=function(A){SM(a,A);function a(){return A!==null&&A.apply(this,arguments)||this}return a.prototype.send=function(e,f){var c=this,d={method:e,params:f,id:this._nextId++,jsonrpc:"2.0"};this._pendingBatch==null&&(this._pendingBatch=[]);var b={request:d,resolve:null,reject:null},r=new Promise(function(n,l){b.resolve=n,b.reject=l});return this._pendingBatch.push(b),this._pendingBatchAggregator||(this._pendingBatchAggregator=setTimeout(function(){var n=c._pendingBatch;c._pendingBatch=null,c._pendingBatchAggregator=null;var l=n.map(function(t){return t.request});return c.emit("debug",{action:"requestBatch",request:(0,vM.deepCopy)(l),provider:c}),(0,kM.fetchJson)(c.connection,JSON.stringify(l)).then(function(t){c.emit("debug",{action:"response",request:l,response:t,provider:c}),n.forEach(function(B,x){var p=t[x];if(p.error){var w=new Error(p.error.message);w.code=p.error.code,w.data=p.error.data,B.reject(w)}else B.resolve(p.result)})},function(t){c.emit("debug",{action:"response",error:t,request:l,provider:c}),n.forEach(function(B){B.reject(t)})})},10)),r},a}(QM.JsonRpcProvider);$4.JsonRpcBatchProvider=yM});var fB=U(ec=>{"use strict";var MM=ec&&ec.__extends||function(){var A=function(a,e){return A=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(f,c){f.__proto__=c}||function(f,c){for(var d in c)Object.prototype.hasOwnProperty.call(c,d)&&(f[d]=c[d])},A(a,e)};return function(a,e){if(typeof e!="function"&&e!==null)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");A(a,e);function f(){this.constructor=a}a.prototype=e===null?Object.create(e):(f.prototype=e.prototype,new f)}}();Object.defineProperty(ec,"__esModule",{value:!0});ec.NodesmithProvider=void 0;var UM=Rf(),NM=me(),OM=fa(),Sb=new NM.Logger(OM.version),GM="ETHERS_JS_SHARED",PM=function(A){MM(a,A);function a(){return A!==null&&A.apply(this,arguments)||this}return a.getApiKey=function(e){return e&&typeof e!="string"&&Sb.throwArgumentError("invalid apiKey","apiKey",e),e||GM},a.getUrl=function(e,f){Sb.warn("NodeSmith will be discontinued on 2019-12-20; please migrate to another platform.");var c=null;switch(e.name){case"homestead":c="https://ethereum.api.nodesmith.io/v1/mainnet/jsonrpc";break;case"ropsten":c="https://ethereum.api.nodesmith.io/v1/ropsten/jsonrpc";break;case"rinkeby":c="https://ethereum.api.nodesmith.io/v1/rinkeby/jsonrpc";break;case"goerli":c="https://ethereum.api.nodesmith.io/v1/goerli/jsonrpc";break;case"kovan":c="https://ethereum.api.nodesmith.io/v1/kovan/jsonrpc";break;default:Sb.throwArgumentError("unsupported network","network",arguments[0])}return c+"?apiKey="+f},a}(UM.UrlJsonRpcProvider);ec.NodesmithProvider=PM});var lB=U(ac=>{"use strict";var VM=ac&&ac.__extends||function(){var A=function(a,e){return A=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(f,c){f.__proto__=c}||function(f,c){for(var d in c)Object.prototype.hasOwnProperty.call(c,d)&&(f[d]=c[d])},A(a,e)};return function(a,e){if(typeof e!="function"&&e!==null)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");A(a,e);function f(){this.constructor=a}a.prototype=e===null?Object.create(e):(f.prototype=e.prototype,new f)}}();Object.defineProperty(ac,"__esModule",{value:!0});ac.PocketProvider=void 0;var bB=me(),LM=fa(),cB=new bB.Logger(LM.version),JM=Rf(),dB="62e1ad51b37b8e00394bda3b",HM=function(A){VM(a,A);function a(){return A!==null&&A.apply(this,arguments)||this}return a.getApiKey=function(e){var f={applicationId:null,loadBalancer:!0,applicationSecretKey:null};return e==null?f.applicationId=dB:typeof e=="string"?f.applicationId=e:e.applicationSecretKey!=null?(f.applicationId=e.applicationId,f.applicationSecretKey=e.applicationSecretKey):e.applicationId?f.applicationId=e.applicationId:cB.throwArgumentError("unsupported PocketProvider apiKey","apiKey",e),f},a.getUrl=function(e,f){var c=null;switch(e?e.name:"unknown"){case"goerli":c="eth-goerli.gateway.pokt.network";break;case"homestead":c="eth-mainnet.gateway.pokt.network";break;case"kovan":c="poa-kovan.gateway.pokt.network";break;case"matic":c="poly-mainnet.gateway.pokt.network";break;case"maticmum":c="polygon-mumbai-rpc.gateway.pokt.network";break;case"rinkeby":c="eth-rinkeby.gateway.pokt.network";break;case"ropsten":c="eth-ropsten.gateway.pokt.network";break;default:cB.throwError("unsupported network",bB.Logger.errors.INVALID_ARGUMENT,{argument:"network",value:e})}var d="https://"+c+"/v1/lb/"+f.applicationId,b={headers:{},url:d};return f.applicationSecretKey!=null&&(b.user="",b.password=f.applicationSecretKey),b},a.prototype.isCommunityResource=function(){return this.applicationId===dB},a}(JM.UrlJsonRpcProvider);ac.PocketProvider=HM});var tB=U(Ac=>{"use strict";var ZM=Ac&&Ac.__extends||function(){var A=function(a,e){return A=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(f,c){f.__proto__=c}||function(f,c){for(var d in c)Object.prototype.hasOwnProperty.call(c,d)&&(f[d]=c[d])},A(a,e)};return function(a,e){if(typeof e!="function"&&e!==null)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");A(a,e);function f(){this.constructor=a}a.prototype=e===null?Object.create(e):(f.prototype=e.prototype,new f)}}();Object.defineProperty(Ac,"__esModule",{value:!0});Ac.Web3Provider=void 0;var T5=c0(),YM=me(),XM=fa(),rB=new YM.Logger(XM.version),WM=m1(),KM=1;function nB(A,a){var e="Web3LegacyFetcher";return function(f,c){var d=this,b={method:f,params:c,id:KM++,jsonrpc:"2.0"};return new Promise(function(r,n){d.emit("debug",{action:"request",fetcher:e,request:(0,T5.deepCopy)(b),provider:d}),a(b,function(l,t){if(l)return d.emit("debug",{action:"response",fetcher:e,error:l,request:b,provider:d}),n(l);if(d.emit("debug",{action:"response",fetcher:e,request:b,response:t,provider:d}),t.error){var B=new Error(t.error.message);return B.code=t.error.code,B.data=t.error.data,n(B)}r(t.result)})})}}function qM(A){return function(a,e){var f=this;e==null&&(e=[]);var c={method:a,params:e};return this.emit("debug",{action:"request",fetcher:"Eip1193Fetcher",request:(0,T5.deepCopy)(c),provider:this}),A.request(c).then(function(d){return f.emit("debug",{action:"response",fetcher:"Eip1193Fetcher",request:c,response:d,provider:f}),d},function(d){throw f.emit("debug",{action:"response",fetcher:"Eip1193Fetcher",request:c,error:d,provider:f}),d})}}var zM=function(A){ZM(a,A);function a(e,f){var c=this;e==null&&rB.throwArgumentError("missing provider","provider",e);var d=null,b=null,r=null;return typeof e=="function"?(d="unknown:",b=e):(d=e.host||e.path||"",!d&&e.isMetaMask&&(d="metamask"),r=e,e.request?(d===""&&(d="eip-1193:"),b=qM(e)):e.sendAsync?b=nB(e,e.sendAsync.bind(e)):e.send?b=nB(e,e.send.bind(e)):rB.throwArgumentError("unsupported provider","provider",e),d||(d="unknown:")),c=A.call(this,d,f)||this,(0,T5.defineReadOnly)(c,"jsonRpcFetchFunc",b),(0,T5.defineReadOnly)(c,"provider",r),c}return a.prototype.send=function(e,f){return this.jsonRpcFetchFunc(e,f)},a}(WM.JsonRpcProvider);Ac.Web3Provider=zM});var Qb=U(ge=>{"use strict";Object.defineProperty(ge,"__esModule",{value:!0});ge.Formatter=ge.showThrottleMessage=ge.isCommunityResourcable=ge.isCommunityResource=ge.getNetwork=ge.getDefaultProvider=ge.JsonRpcSigner=ge.IpcProvider=ge.WebSocketProvider=ge.Web3Provider=ge.StaticJsonRpcProvider=ge.PocketProvider=ge.NodesmithProvider=ge.JsonRpcBatchProvider=ge.JsonRpcProvider=ge.InfuraWebSocketProvider=ge.InfuraProvider=ge.EtherscanProvider=ge.CloudflareProvider=ge.AnkrProvider=ge.AlchemyWebSocketProvider=ge.AlchemyProvider=ge.FallbackProvider=ge.UrlJsonRpcProvider=ge.Resolver=ge.BaseProvider=ge.Provider=void 0;var jM=o4();Object.defineProperty(ge,"Provider",{enumerable:!0,get:function(){return jM.Provider}});var iB=v7();Object.defineProperty(ge,"getNetwork",{enumerable:!0,get:function(){return iB.getNetwork}});var oB=I3();Object.defineProperty(ge,"BaseProvider",{enumerable:!0,get:function(){return oB.BaseProvider}});Object.defineProperty(ge,"Resolver",{enumerable:!0,get:function(){return oB.Resolver}});var vb=OE();Object.defineProperty(ge,"AlchemyProvider",{enumerable:!0,get:function(){return vb.AlchemyProvider}});Object.defineProperty(ge,"AlchemyWebSocketProvider",{enumerable:!0,get:function(){return vb.AlchemyWebSocketProvider}});var sB=GE();Object.defineProperty(ge,"AnkrProvider",{enumerable:!0,get:function(){return sB.AnkrProvider}});var EB=VE();Object.defineProperty(ge,"CloudflareProvider",{enumerable:!0,get:function(){return EB.CloudflareProvider}});var BB=ZE();Object.defineProperty(ge,"EtherscanProvider",{enumerable:!0,get:function(){return BB.EtherscanProvider}});var hB=qE();Object.defineProperty(ge,"FallbackProvider",{enumerable:!0,get:function(){return hB.FallbackProvider}});var CB=jE();Object.defineProperty(ge,"IpcProvider",{enumerable:!0,get:function(){return CB.IpcProvider}});var kb=aB();Object.defineProperty(ge,"InfuraProvider",{enumerable:!0,get:function(){return kb.InfuraProvider}});Object.defineProperty(ge,"InfuraWebSocketProvider",{enumerable:!0,get:function(){return kb.InfuraWebSocketProvider}});var w5=m1();Object.defineProperty(ge,"JsonRpcProvider",{enumerable:!0,get:function(){return w5.JsonRpcProvider}});Object.defineProperty(ge,"JsonRpcSigner",{enumerable:!0,get:function(){return w5.JsonRpcSigner}});var _M=AB();Object.defineProperty(ge,"JsonRpcBatchProvider",{enumerable:!0,get:function(){return _M.JsonRpcBatchProvider}});var gB=fB();Object.defineProperty(ge,"NodesmithProvider",{enumerable:!0,get:function(){return gB.NodesmithProvider}});var IB=lB();Object.defineProperty(ge,"PocketProvider",{enumerable:!0,get:function(){return IB.PocketProvider}});var FB=Rf();Object.defineProperty(ge,"StaticJsonRpcProvider",{enumerable:!0,get:function(){return FB.StaticJsonRpcProvider}});Object.defineProperty(ge,"UrlJsonRpcProvider",{enumerable:!0,get:function(){return FB.UrlJsonRpcProvider}});var DB=tB();Object.defineProperty(ge,"Web3Provider",{enumerable:!0,get:function(){return DB.Web3Provider}});var mB=E5();Object.defineProperty(ge,"WebSocketProvider",{enumerable:!0,get:function(){return mB.WebSocketProvider}});var R5=xf();Object.defineProperty(ge,"Formatter",{enumerable:!0,get:function(){return R5.Formatter}});Object.defineProperty(ge,"isCommunityResourcable",{enumerable:!0,get:function(){return R5.isCommunityResourcable}});Object.defineProperty(ge,"isCommunityResource",{enumerable:!0,get:function(){return R5.isCommunityResource}});Object.defineProperty(ge,"showThrottleMessage",{enumerable:!0,get:function(){return R5.showThrottleMessage}});var xB=me(),$M=fa(),uB=new xB.Logger($M.version);function eU(A,a){if(A==null&&(A="homestead"),typeof A=="string"){var e=A.match(/^(ws|http)s?:/i);if(e)switch(e[1].toLowerCase()){case"http":case"https":return new w5.JsonRpcProvider(A);case"ws":case"wss":return new mB.WebSocketProvider(A);default:uB.throwArgumentError("unsupported URL scheme","network",A)}}var f=(0,iB.getNetwork)(A);return(!f||!f._defaultProvider)&&uB.throwError("unsupported getDefaultProvider network",xB.Logger.errors.NETWORK_ERROR,{operation:"getDefaultProvider",network:A}),f._defaultProvider({FallbackProvider:hB.FallbackProvider,AlchemyProvider:vb.AlchemyProvider,AnkrProvider:sB.AnkrProvider,CloudflareProvider:EB.CloudflareProvider,EtherscanProvider:BB.EtherscanProvider,InfuraProvider:kb.InfuraProvider,JsonRpcProvider:w5.JsonRpcProvider,NodesmithProvider:gB.NodesmithProvider,PocketProvider:IB.PocketProvider,Web3Provider:DB.Web3Provider,IpcProvider:CB.IpcProvider},a)}ge.getDefaultProvider=eU});var pB=U(S5=>{"use strict";Object.defineProperty(S5,"__esModule",{value:!0});S5.version=void 0;S5.version="solidity/5.7.0"});var wB=U(yf=>{"use strict";Object.defineProperty(yf,"__esModule",{value:!0});yf.sha256=yf.keccak256=yf.pack=void 0;var aU=y0(),y2=Xe(),AU=Na(),fU=w4(),cU=U0(),dU=new RegExp("^bytes([0-9]+)$"),bU=new RegExp("^(u?int)([0-9]*)$"),lU=new RegExp("^(.*)\\[([0-9]*)\\]$"),rU="0000000000000000000000000000000000000000000000000000000000000000",nU=me(),tU=pB(),fc=new nU.Logger(tU.version);function TB(A,a,e){switch(A){case"address":return e?(0,y2.zeroPad)(a,32):(0,y2.arrayify)(a);case"string":return(0,cU.toUtf8Bytes)(a);case"bytes":return(0,y2.arrayify)(a);case"bool":return a=a?"0x01":"0x00",e?(0,y2.zeroPad)(a,32):(0,y2.arrayify)(a)}var f=A.match(bU);if(f){var c=parseInt(f[2]||"256");return(f[2]&&String(c)!==f[2]||c%8!==0||c===0||c>256)&&fc.throwArgumentError("invalid number type","type",A),e&&(c=256),a=aU.BigNumber.from(a).toTwos(c),(0,y2.zeroPad)(a,c/8)}if(f=A.match(dU),f){var c=parseInt(f[1]);return(String(c)!==f[1]||c===0||c>32)&&fc.throwArgumentError("invalid bytes type","type",A),(0,y2.arrayify)(a).byteLength!==c&&fc.throwArgumentError("invalid value for "+A,"value",a),e?(0,y2.arrayify)((a+rU).substring(0,66)):a}if(f=A.match(lU),f&&Array.isArray(a)){var d=f[1],b=parseInt(f[2]||String(a.length));b!=a.length&&fc.throwArgumentError("invalid array length for "+A,"value",a);var r=[];return a.forEach(function(n){r.push(TB(d,n,!0))}),(0,y2.concat)(r)}return fc.throwArgumentError("invalid type","type",A)}function yb(A,a){A.length!=a.length&&fc.throwArgumentError("wrong number of values; expected ${ types.length }","values",a);var e=[];return A.forEach(function(f,c){e.push(TB(f,a[c]))}),(0,y2.hexlify)((0,y2.concat)(e))}yf.pack=yb;function uU(A,a){return(0,AU.keccak256)(yb(A,a))}yf.keccak256=uU;function iU(A,a){return(0,fU.sha256)(yb(A,a))}yf.sha256=iU});var RB=U(v5=>{"use strict";Object.defineProperty(v5,"__esModule",{value:!0});v5.version=void 0;v5.version="units/5.7.0"});var MB=U(E2=>{"use strict";Object.defineProperty(E2,"__esModule",{value:!0});E2.parseEther=E2.formatEther=E2.parseUnits=E2.formatUnits=E2.commify=void 0;var SB=y0(),oU=me(),sU=RB(),vB=new oU.Logger(sU.version),kB=["wei","kwei","mwei","gwei","szabo","finney","ether"];function EU(A){var a=String(A).split(".");(a.length>2||!a[0].match(/^-?[0-9]*$/)||a[1]&&!a[1].match(/^[0-9]*$/)||A==="."||A==="-.")&&vB.throwArgumentError("invalid value","value",A);var e=a[0],f="";for(e.substring(0,1)==="-"&&(f="-",e=e.substring(1));e.substring(0,1)==="0";)e=e.substring(1);e===""&&(e="0");var c="";for(a.length===2&&(c="."+(a[1]||"0"));c.length>2&&c[c.length-1]==="0";)c=c.substring(0,c.length-1);for(var d=[];e.length;)if(e.length<=3){d.unshift(e);break}else{var b=e.length-3;d.unshift(e.substring(b)),e=e.substring(0,b)}return f+d.join(",")+c}E2.commify=EU;function QB(A,a){if(typeof a=="string"){var e=kB.indexOf(a);e!==-1&&(a=3*e)}return(0,SB.formatFixed)(A,a??18)}E2.formatUnits=QB;function yB(A,a){if(typeof A!="string"&&vB.throwArgumentError("value must be a string","value",A),typeof a=="string"){var e=kB.indexOf(a);e!==-1&&(a=3*e)}return(0,SB.parseFixed)(A,a??18)}E2.parseUnits=yB;function BU(A){return QB(A,18)}E2.formatEther=BU;function hU(A){return yB(A,18)}E2.parseEther=hU});var PB=U(z=>{"use strict";var CU=z&&z.__createBinding||(Object.create?function(A,a,e,f){f===void 0&&(f=e),Object.defineProperty(A,f,{enumerable:!0,get:function(){return a[e]}})}:function(A,a,e,f){f===void 0&&(f=e),A[f]=a[e]}),gU=z&&z.__setModuleDefault||(Object.create?function(A,a){Object.defineProperty(A,"default",{enumerable:!0,value:a})}:function(A,a){A.default=a}),UB=z&&z.__importStar||function(A){if(A&&A.__esModule)return A;var a={};if(A!=null)for(var e in A)e!=="default"&&Object.prototype.hasOwnProperty.call(A,e)&&CU(a,A,e);return gU(a,A),a};Object.defineProperty(z,"__esModule",{value:!0});z.formatBytes32String=z.Utf8ErrorFuncs=z.toUtf8String=z.toUtf8CodePoints=z.toUtf8Bytes=z._toEscapedUtf8String=z.nameprep=z.hexDataSlice=z.hexDataLength=z.hexZeroPad=z.hexValue=z.hexStripZeros=z.hexConcat=z.isHexString=z.hexlify=z.base64=z.base58=z.TransactionDescription=z.LogDescription=z.Interface=z.SigningKey=z.HDNode=z.defaultPath=z.isBytesLike=z.isBytes=z.zeroPad=z.stripZeros=z.concat=z.arrayify=z.shallowCopy=z.resolveProperties=z.getStatic=z.defineReadOnly=z.deepCopy=z.checkProperties=z.poll=z.fetchJson=z._fetchData=z.RLP=z.Logger=z.checkResultErrors=z.FormatTypes=z.ParamType=z.FunctionFragment=z.EventFragment=z.ErrorFragment=z.ConstructorFragment=z.Fragment=z.defaultAbiCoder=z.AbiCoder=void 0;z.Indexed=z.Utf8ErrorReason=z.UnicodeNormalizationForm=z.SupportedAlgorithm=z.mnemonicToSeed=z.isValidMnemonic=z.entropyToMnemonic=z.mnemonicToEntropy=z.getAccountPath=z.verifyTypedData=z.verifyMessage=z.recoverPublicKey=z.computePublicKey=z.recoverAddress=z.computeAddress=z.getJsonWalletAddress=z.TransactionTypes=z.serializeTransaction=z.parseTransaction=z.accessListify=z.joinSignature=z.splitSignature=z.soliditySha256=z.solidityKeccak256=z.solidityPack=z.shuffled=z.randomBytes=z.sha512=z.sha256=z.ripemd160=z.keccak256=z.computeHmac=z.commify=z.parseUnits=z.formatUnits=z.parseEther=z.formatEther=z.isAddress=z.getCreate2Address=z.getContractAddress=z.getIcapAddress=z.getAddress=z._TypedDataEncoder=z.id=z.isValidName=z.namehash=z.hashMessage=z.dnsEncode=z.parseBytes32String=void 0;var ya=$8();Object.defineProperty(z,"AbiCoder",{enumerable:!0,get:function(){return ya.AbiCoder}});Object.defineProperty(z,"checkResultErrors",{enumerable:!0,get:function(){return ya.checkResultErrors}});Object.defineProperty(z,"ConstructorFragment",{enumerable:!0,get:function(){return ya.ConstructorFragment}});Object.defineProperty(z,"defaultAbiCoder",{enumerable:!0,get:function(){return ya.defaultAbiCoder}});Object.defineProperty(z,"ErrorFragment",{enumerable:!0,get:function(){return ya.ErrorFragment}});Object.defineProperty(z,"EventFragment",{enumerable:!0,get:function(){return ya.EventFragment}});Object.defineProperty(z,"FormatTypes",{enumerable:!0,get:function(){return ya.FormatTypes}});Object.defineProperty(z,"Fragment",{enumerable:!0,get:function(){return ya.Fragment}});Object.defineProperty(z,"FunctionFragment",{enumerable:!0,get:function(){return ya.FunctionFragment}});Object.defineProperty(z,"Indexed",{enumerable:!0,get:function(){return ya.Indexed}});Object.defineProperty(z,"Interface",{enumerable:!0,get:function(){return ya.Interface}});Object.defineProperty(z,"LogDescription",{enumerable:!0,get:function(){return ya.LogDescription}});Object.defineProperty(z,"ParamType",{enumerable:!0,get:function(){return ya.ParamType}});Object.defineProperty(z,"TransactionDescription",{enumerable:!0,get:function(){return ya.TransactionDescription}});var U3=a2();Object.defineProperty(z,"getAddress",{enumerable:!0,get:function(){return U3.getAddress}});Object.defineProperty(z,"getCreate2Address",{enumerable:!0,get:function(){return U3.getCreate2Address}});Object.defineProperty(z,"getContractAddress",{enumerable:!0,get:function(){return U3.getContractAddress}});Object.defineProperty(z,"getIcapAddress",{enumerable:!0,get:function(){return U3.getIcapAddress}});Object.defineProperty(z,"isAddress",{enumerable:!0,get:function(){return U3.isAddress}});var IU=UB(Oc());z.base64=IU;var FU=Sd();Object.defineProperty(z,"base58",{enumerable:!0,get:function(){return FU.Base58}});var ga=Xe();Object.defineProperty(z,"arrayify",{enumerable:!0,get:function(){return ga.arrayify}});Object.defineProperty(z,"concat",{enumerable:!0,get:function(){return ga.concat}});Object.defineProperty(z,"hexConcat",{enumerable:!0,get:function(){return ga.hexConcat}});Object.defineProperty(z,"hexDataSlice",{enumerable:!0,get:function(){return ga.hexDataSlice}});Object.defineProperty(z,"hexDataLength",{enumerable:!0,get:function(){return ga.hexDataLength}});Object.defineProperty(z,"hexlify",{enumerable:!0,get:function(){return ga.hexlify}});Object.defineProperty(z,"hexStripZeros",{enumerable:!0,get:function(){return ga.hexStripZeros}});Object.defineProperty(z,"hexValue",{enumerable:!0,get:function(){return ga.hexValue}});Object.defineProperty(z,"hexZeroPad",{enumerable:!0,get:function(){return ga.hexZeroPad}});Object.defineProperty(z,"isBytes",{enumerable:!0,get:function(){return ga.isBytes}});Object.defineProperty(z,"isBytesLike",{enumerable:!0,get:function(){return ga.isBytesLike}});Object.defineProperty(z,"isHexString",{enumerable:!0,get:function(){return ga.isHexString}});Object.defineProperty(z,"joinSignature",{enumerable:!0,get:function(){return ga.joinSignature}});Object.defineProperty(z,"zeroPad",{enumerable:!0,get:function(){return ga.zeroPad}});Object.defineProperty(z,"splitSignature",{enumerable:!0,get:function(){return ga.splitSignature}});Object.defineProperty(z,"stripZeros",{enumerable:!0,get:function(){return ga.stripZeros}});var cc=l1();Object.defineProperty(z,"_TypedDataEncoder",{enumerable:!0,get:function(){return cc._TypedDataEncoder}});Object.defineProperty(z,"dnsEncode",{enumerable:!0,get:function(){return cc.dnsEncode}});Object.defineProperty(z,"hashMessage",{enumerable:!0,get:function(){return cc.hashMessage}});Object.defineProperty(z,"id",{enumerable:!0,get:function(){return cc.id}});Object.defineProperty(z,"isValidName",{enumerable:!0,get:function(){return cc.isValidName}});Object.defineProperty(z,"namehash",{enumerable:!0,get:function(){return cc.namehash}});var R1=Zd();Object.defineProperty(z,"defaultPath",{enumerable:!0,get:function(){return R1.defaultPath}});Object.defineProperty(z,"entropyToMnemonic",{enumerable:!0,get:function(){return R1.entropyToMnemonic}});Object.defineProperty(z,"getAccountPath",{enumerable:!0,get:function(){return R1.getAccountPath}});Object.defineProperty(z,"HDNode",{enumerable:!0,get:function(){return R1.HDNode}});Object.defineProperty(z,"isValidMnemonic",{enumerable:!0,get:function(){return R1.isValidMnemonic}});Object.defineProperty(z,"mnemonicToEntropy",{enumerable:!0,get:function(){return R1.mnemonicToEntropy}});Object.defineProperty(z,"mnemonicToSeed",{enumerable:!0,get:function(){return R1.mnemonicToSeed}});var DU=T7();Object.defineProperty(z,"getJsonWalletAddress",{enumerable:!0,get:function(){return DU.getJsonWalletAddress}});var mU=Na();Object.defineProperty(z,"keccak256",{enumerable:!0,get:function(){return mU.keccak256}});var xU=me();Object.defineProperty(z,"Logger",{enumerable:!0,get:function(){return xU.Logger}});var k5=w4();Object.defineProperty(z,"computeHmac",{enumerable:!0,get:function(){return k5.computeHmac}});Object.defineProperty(z,"ripemd160",{enumerable:!0,get:function(){return k5.ripemd160}});Object.defineProperty(z,"sha256",{enumerable:!0,get:function(){return k5.sha256}});Object.defineProperty(z,"sha512",{enumerable:!0,get:function(){return k5.sha512}});var Mb=wB();Object.defineProperty(z,"solidityKeccak256",{enumerable:!0,get:function(){return Mb.keccak256}});Object.defineProperty(z,"solidityPack",{enumerable:!0,get:function(){return Mb.pack}});Object.defineProperty(z,"soliditySha256",{enumerable:!0,get:function(){return Mb.sha256}});var NB=t3();Object.defineProperty(z,"randomBytes",{enumerable:!0,get:function(){return NB.randomBytes}});Object.defineProperty(z,"shuffled",{enumerable:!0,get:function(){return NB.shuffled}});var dc=c0();Object.defineProperty(z,"checkProperties",{enumerable:!0,get:function(){return dc.checkProperties}});Object.defineProperty(z,"deepCopy",{enumerable:!0,get:function(){return dc.deepCopy}});Object.defineProperty(z,"defineReadOnly",{enumerable:!0,get:function(){return dc.defineReadOnly}});Object.defineProperty(z,"getStatic",{enumerable:!0,get:function(){return dc.getStatic}});Object.defineProperty(z,"resolveProperties",{enumerable:!0,get:function(){return dc.resolveProperties}});Object.defineProperty(z,"shallowCopy",{enumerable:!0,get:function(){return dc.shallowCopy}});var pU=UB(Uc());z.RLP=pU;var Ub=qc();Object.defineProperty(z,"computePublicKey",{enumerable:!0,get:function(){return Ub.computePublicKey}});Object.defineProperty(z,"recoverPublicKey",{enumerable:!0,get:function(){return Ub.recoverPublicKey}});Object.defineProperty(z,"SigningKey",{enumerable:!0,get:function(){return Ub.SigningKey}});var Mf=U0();Object.defineProperty(z,"formatBytes32String",{enumerable:!0,get:function(){return Mf.formatBytes32String}});Object.defineProperty(z,"nameprep",{enumerable:!0,get:function(){return Mf.nameprep}});Object.defineProperty(z,"parseBytes32String",{enumerable:!0,get:function(){return Mf.parseBytes32String}});Object.defineProperty(z,"_toEscapedUtf8String",{enumerable:!0,get:function(){return Mf._toEscapedUtf8String}});Object.defineProperty(z,"toUtf8Bytes",{enumerable:!0,get:function(){return Mf.toUtf8Bytes}});Object.defineProperty(z,"toUtf8CodePoints",{enumerable:!0,get:function(){return Mf.toUtf8CodePoints}});Object.defineProperty(z,"toUtf8String",{enumerable:!0,get:function(){return Mf.toUtf8String}});Object.defineProperty(z,"Utf8ErrorFuncs",{enumerable:!0,get:function(){return Mf.Utf8ErrorFuncs}});var bc=NA();Object.defineProperty(z,"accessListify",{enumerable:!0,get:function(){return bc.accessListify}});Object.defineProperty(z,"computeAddress",{enumerable:!0,get:function(){return bc.computeAddress}});Object.defineProperty(z,"parseTransaction",{enumerable:!0,get:function(){return bc.parse}});Object.defineProperty(z,"recoverAddress",{enumerable:!0,get:function(){return bc.recoverAddress}});Object.defineProperty(z,"serializeTransaction",{enumerable:!0,get:function(){return bc.serialize}});Object.defineProperty(z,"TransactionTypes",{enumerable:!0,get:function(){return bc.TransactionTypes}});var N3=MB();Object.defineProperty(z,"commify",{enumerable:!0,get:function(){return N3.commify}});Object.defineProperty(z,"formatEther",{enumerable:!0,get:function(){return N3.formatEther}});Object.defineProperty(z,"parseEther",{enumerable:!0,get:function(){return N3.parseEther}});Object.defineProperty(z,"formatUnits",{enumerable:!0,get:function(){return N3.formatUnits}});Object.defineProperty(z,"parseUnits",{enumerable:!0,get:function(){return N3.parseUnits}});var OB=S7();Object.defineProperty(z,"verifyMessage",{enumerable:!0,get:function(){return OB.verifyMessage}});Object.defineProperty(z,"verifyTypedData",{enumerable:!0,get:function(){return OB.verifyTypedData}});var Nb=D1();Object.defineProperty(z,"_fetchData",{enumerable:!0,get:function(){return Nb._fetchData}});Object.defineProperty(z,"fetchJson",{enumerable:!0,get:function(){return Nb.fetchJson}});Object.defineProperty(z,"poll",{enumerable:!0,get:function(){return Nb.poll}});var TU=w4();Object.defineProperty(z,"SupportedAlgorithm",{enumerable:!0,get:function(){return TU.SupportedAlgorithm}});var GB=U0();Object.defineProperty(z,"UnicodeNormalizationForm",{enumerable:!0,get:function(){return GB.UnicodeNormalizationForm}});Object.defineProperty(z,"Utf8ErrorReason",{enumerable:!0,get:function(){return GB.Utf8ErrorReason}})});var VB=U(Q5=>{"use strict";Object.defineProperty(Q5,"__esModule",{value:!0});Q5.version=void 0;Q5.version="ethers/5.7.2"});var Pb=U(Ye=>{"use strict";var wU=Ye&&Ye.__createBinding||(Object.create?function(A,a,e,f){f===void 0&&(f=e),Object.defineProperty(A,f,{enumerable:!0,get:function(){return a[e]}})}:function(A,a,e,f){f===void 0&&(f=e),A[f]=a[e]}),RU=Ye&&Ye.__setModuleDefault||(Object.create?function(A,a){Object.defineProperty(A,"default",{enumerable:!0,value:a})}:function(A,a){A.default=a}),Ob=Ye&&Ye.__importStar||function(A){if(A&&A.__esModule)return A;var a={};if(A!=null)for(var e in A)e!=="default"&&Object.prototype.hasOwnProperty.call(A,e)&&wU(a,A,e);return RU(a,A),a};Object.defineProperty(Ye,"__esModule",{value:!0});Ye.Wordlist=Ye.version=Ye.wordlists=Ye.utils=Ye.logger=Ye.errors=Ye.constants=Ye.FixedNumber=Ye.BigNumber=Ye.ContractFactory=Ye.Contract=Ye.BaseContract=Ye.providers=Ye.getDefaultProvider=Ye.VoidSigner=Ye.Wallet=Ye.Signer=void 0;var Gb=bi();Object.defineProperty(Ye,"BaseContract",{enumerable:!0,get:function(){return Gb.BaseContract}});Object.defineProperty(Ye,"Contract",{enumerable:!0,get:function(){return Gb.Contract}});Object.defineProperty(Ye,"ContractFactory",{enumerable:!0,get:function(){return Gb.ContractFactory}});var LB=y0();Object.defineProperty(Ye,"BigNumber",{enumerable:!0,get:function(){return LB.BigNumber}});Object.defineProperty(Ye,"FixedNumber",{enumerable:!0,get:function(){return LB.FixedNumber}});var JB=Vc();Object.defineProperty(Ye,"Signer",{enumerable:!0,get:function(){return JB.Signer}});Object.defineProperty(Ye,"VoidSigner",{enumerable:!0,get:function(){return JB.VoidSigner}});var SU=S7();Object.defineProperty(Ye,"Wallet",{enumerable:!0,get:function(){return SU.Wallet}});var vU=Ob(A1());Ye.constants=vU;var kU=Ob(Qb());Ye.providers=kU;var QU=Qb();Object.defineProperty(Ye,"getDefaultProvider",{enumerable:!0,get:function(){return QU.getDefaultProvider}});var HB=s7();Object.defineProperty(Ye,"Wordlist",{enumerable:!0,get:function(){return HB.Wordlist}});Object.defineProperty(Ye,"wordlists",{enumerable:!0,get:function(){return HB.wordlists}});var yU=Ob(PB());Ye.utils=yU;var ZB=me();Object.defineProperty(Ye,"errors",{enumerable:!0,get:function(){return ZB.ErrorCode}});var YB=VB();Object.defineProperty(Ye,"version",{enumerable:!0,get:function(){return YB.version}});var MU=new ZB.Logger(YB.version);Ye.logger=MU});var WB=U(Ze=>{"use strict";var UU=Ze&&Ze.__createBinding||(Object.create?function(A,a,e,f){f===void 0&&(f=e),Object.defineProperty(A,f,{enumerable:!0,get:function(){return a[e]}})}:function(A,a,e,f){f===void 0&&(f=e),A[f]=a[e]}),NU=Ze&&Ze.__setModuleDefault||(Object.create?function(A,a){Object.defineProperty(A,"default",{enumerable:!0,value:a})}:function(A,a){A.default=a}),OU=Ze&&Ze.__importStar||function(A){if(A&&A.__esModule)return A;var a={};if(A!=null)for(var e in A)e!=="default"&&Object.prototype.hasOwnProperty.call(A,e)&&UU(a,A,e);return NU(a,A),a};Object.defineProperty(Ze,"__esModule",{value:!0});Ze.Wordlist=Ze.version=Ze.wordlists=Ze.utils=Ze.logger=Ze.errors=Ze.constants=Ze.FixedNumber=Ze.BigNumber=Ze.ContractFactory=Ze.Contract=Ze.BaseContract=Ze.providers=Ze.getDefaultProvider=Ze.VoidSigner=Ze.Wallet=Ze.Signer=Ze.ethers=void 0;var XB=OU(Pb());Ze.ethers=XB;try{Vb=window,Vb._ethers==null&&(Vb._ethers=XB)}catch{}var Vb,ca=Pb();Object.defineProperty(Ze,"Signer",{enumerable:!0,get:function(){return ca.Signer}});Object.defineProperty(Ze,"Wallet",{enumerable:!0,get:function(){return ca.Wallet}});Object.defineProperty(Ze,"VoidSigner",{enumerable:!0,get:function(){return ca.VoidSigner}});Object.defineProperty(Ze,"getDefaultProvider",{enumerable:!0,get:function(){return ca.getDefaultProvider}});Object.defineProperty(Ze,"providers",{enumerable:!0,get:function(){return ca.providers}});Object.defineProperty(Ze,"BaseContract",{enumerable:!0,get:function(){return ca.BaseContract}});Object.defineProperty(Ze,"Contract",{enumerable:!0,get:function(){return ca.Contract}});Object.defineProperty(Ze,"ContractFactory",{enumerable:!0,get:function(){return ca.ContractFactory}});Object.defineProperty(Ze,"BigNumber",{enumerable:!0,get:function(){return ca.BigNumber}});Object.defineProperty(Ze,"FixedNumber",{enumerable:!0,get:function(){return ca.FixedNumber}});Object.defineProperty(Ze,"constants",{enumerable:!0,get:function(){return ca.constants}});Object.defineProperty(Ze,"errors",{enumerable:!0,get:function(){return ca.errors}});Object.defineProperty(Ze,"logger",{enumerable:!0,get:function(){return ca.logger}});Object.defineProperty(Ze,"utils",{enumerable:!0,get:function(){return ca.utils}});Object.defineProperty(Ze,"wordlists",{enumerable:!0,get:function(){return ca.wordlists}});Object.defineProperty(Ze,"version",{enumerable:!0,get:function(){return ca.version}});Object.defineProperty(Ze,"Wordlist",{enumerable:!0,get:function(){return ca.Wordlist}})});var Lb=U((KB,y5)=>{(function(A){"use strict";var a,e=/^-?(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?$/i,f=Math.ceil,c=Math.floor,d="[BigNumber Error] ",b=d+"Number primitive has more than 15 significant digits: ",r=1e14,n=14,l=9007199254740991,t=[1,10,100,1e3,1e4,1e5,1e6,1e7,1e8,1e9,1e10,1e11,1e12,1e13],B=1e7,x=1e9;function p(_){var Z,de,ce,H=F.prototype={constructor:F,toString:null,valueOf:null},k=new F(1),E=20,D=4,h=-7,u=21,o=-1e7,C=1e7,m=!1,g=1,i=0,I={prefix:"",groupSize:3,secondaryGroupSize:0,groupSeparator:",",decimalSeparator:".",fractionGroupSize:0,fractionGroupSeparator:"\xA0",suffix:""},R="0123456789abcdefghijklmnopqrstuvwxyz",s=!0;function F(S,M){var v,O,K,G,X,j,Y,$,fe=this;if(!(fe instanceof F))return new F(S,M);if(M==null){if(S&&S._isBigNumber===!0){fe.s=S.s,!S.c||S.e>C?fe.c=fe.e=null:S.e=10;X/=10,G++);G>C?fe.c=fe.e=null:(fe.e=G,fe.c=[S]);return}$=String(S)}else{if(!e.test($=String(S)))return ce(fe,$,j);fe.s=$.charCodeAt(0)==45?($=$.slice(1),-1):1}(G=$.indexOf("."))>-1&&($=$.replace(".","")),(X=$.search(/e/i))>0?(G<0&&(G=X),G+=+$.slice(X+1),$=$.substring(0,X)):G<0&&(G=$.length)}else{if(Q(M,2,R.length,"Base"),M==10&&s)return fe=new F(S),W(fe,E+fe.e+1,D);if($=String(S),j=typeof S=="number"){if(S*0!=0)return ce(fe,$,j,M);if(fe.s=1/S<0?($=$.slice(1),-1):1,F.DEBUG&&$.replace(/^0\.0*|\./,"").length>15)throw Error(b+S)}else fe.s=$.charCodeAt(0)===45?($=$.slice(1),-1):1;for(v=R.slice(0,M),G=X=0,Y=$.length;XG){G=Y;continue}}else if(!K&&($==$.toUpperCase()&&($=$.toLowerCase())||$==$.toLowerCase()&&($=$.toUpperCase()))){K=!0,X=-1,G=0;continue}return ce(fe,String(S),j,M)}j=!1,$=de($,M,10,fe.s),(G=$.indexOf("."))>-1?$=$.replace(".",""):G=$.length}for(X=0;$.charCodeAt(X)===48;X++);for(Y=$.length;$.charCodeAt(--Y)===48;);if($=$.slice(X,++Y)){if(Y-=X,j&&F.DEBUG&&Y>15&&(S>l||S!==c(S)))throw Error(b+fe.s*S);if((G=G-X-1)>C)fe.c=fe.e=null;else if(G=-x&&K<=x&&K===c(K)){if(O[0]===0){if(K===0&&O.length===1)return!0;break e}if(M=(K+1)%n,M<1&&(M+=n),String(O[0]).length==M){for(M=0;M=r||v!==c(v))break e;if(v!==0)return!0}}}else if(O===null&&K===null&&(G===null||G===1||G===-1))return!0;throw Error(d+"Invalid BigNumber: "+S)},F.maximum=F.max=function(){return T(arguments,H.lt)},F.minimum=F.min=function(){return T(arguments,H.gt)},F.random=function(){var S=9007199254740992,M=Math.random()*S&2097151?function(){return c(Math.random()*S)}:function(){return(Math.random()*1073741824|0)*8388608+(Math.random()*8388608|0)};return function(v){var O,K,G,X,j,Y=0,$=[],fe=new F(k);if(v==null?v=E:Q(v,0,x),X=f(v/n),m)if(crypto.getRandomValues){for(O=crypto.getRandomValues(new Uint32Array(X*=2));Y>>11),j>=9e15?(K=crypto.getRandomValues(new Uint32Array(2)),O[Y]=K[0],O[Y+1]=K[1]):($.push(j%1e14),Y+=2);Y=X/2}else if(crypto.randomBytes){for(O=crypto.randomBytes(X*=7);Y=9e15?crypto.randomBytes(7).copy(O,Y):($.push(j%1e14),Y+=7);Y=X/7}else throw m=!1,Error(d+"crypto unavailable");if(!m)for(;Y=10;j/=10,Y++);YK-1&&(j[X+1]==null&&(j[X+1]=0),j[X+1]+=j[X]/K|0,j[X]%=K)}return j.reverse()}return function(v,O,K,G,X){var j,Y,$,fe,ae,be,oe,re,ue=v.indexOf("."),l0=E,ne=D;for(ue>=0&&(fe=i,i=0,v=v.replace(".",""),re=new F(O),be=re.pow(v.length-ue),i=fe,re.c=M(q(y(be.c),be.e,"0"),10,K,S),re.e=re.c.length),oe=M(v,O,K,X?(j=R,S):(j=S,R)),$=fe=oe.length;oe[--fe]==0;oe.pop());if(!oe[0])return j.charAt(0);if(ue<0?--$:(be.c=oe,be.e=$,be.s=G,be=Z(be,re,l0,ne,K),oe=be.c,ae=be.r,$=be.e),Y=$+l0+1,ue=oe[Y],fe=K/2,ae=ae||Y<0||oe[Y+1]!=null,ae=ne<4?(ue!=null||ae)&&(ne==0||ne==(be.s<0?3:2)):ue>fe||ue==fe&&(ne==4||ae||ne==6&&oe[Y-1]&1||ne==(be.s<0?8:7)),Y<1||!oe[0])v=ae?q(j.charAt(1),-l0,j.charAt(0)):j.charAt(0);else{if(oe.length=Y,ae)for(--K;++oe[--Y]>K;)oe[Y]=0,Y||(++$,oe=[1].concat(oe));for(fe=oe.length;!oe[--fe];);for(ue=0,v="";ue<=fe;v+=j.charAt(oe[ue++]));v=q(v,$,j.charAt(0))}return v}}(),Z=function(){function S(O,K,G){var X,j,Y,$,fe=0,ae=O.length,be=K%B,oe=K/B|0;for(O=O.slice();ae--;)Y=O[ae]%B,$=O[ae]/B|0,X=oe*Y+$*be,j=be*Y+X%B*B+fe,fe=(j/G|0)+(X/B|0)+oe*$,O[ae]=j%G;return fe&&(O=[fe].concat(O)),O}function M(O,K,G,X){var j,Y;if(G!=X)Y=G>X?1:-1;else for(j=Y=0;jK[j]?1:-1;break}return Y}function v(O,K,G,X){for(var j=0;G--;)O[G]-=j,j=O[G]1;O.splice(0,1));}return function(O,K,G,X,j){var Y,$,fe,ae,be,oe,re,ue,l0,ne,te,s0,Fe,De,wa,he,Ie,I0=O.s==K.s?1:-1,Be=O.c,ie=K.c;if(!Be||!Be[0]||!ie||!ie[0])return new F(!O.s||!K.s||(Be?ie&&Be[0]==ie[0]:!ie)?NaN:Be&&Be[0]==0||!ie?I0*0:I0/0);for(ue=new F(I0),l0=ue.c=[],$=O.e-K.e,I0=G+$+1,j||(j=r,$=w(O.e/n)-w(K.e/n),I0=I0/n|0),fe=0;ie[fe]==(Be[fe]||0);fe++);if(ie[fe]>(Be[fe]||0)&&$--,I0<0)l0.push(1),ae=!0;else{for(De=Be.length,he=ie.length,fe=0,I0+=2,be=c(j/(ie[0]+1)),be>1&&(ie=S(ie,be,j),Be=S(Be,be,j),he=ie.length,De=Be.length),Fe=he,ne=Be.slice(0,he),te=ne.length;te=j/2&&wa++;do{if(be=0,Y=M(ie,ne,he,te),Y<0){if(s0=ne[0],he!=te&&(s0=s0*j+(ne[1]||0)),be=c(s0/wa),be>1)for(be>=j&&(be=j-1),oe=S(ie,be,j),re=oe.length,te=ne.length;M(oe,ne,re,te)==1;)be--,v(oe,he=10;I0/=10,fe++);W(ue,G+(ue.e=fe+$*n-1)+1,X,ae)}else ue.e=$,ue.r=+ae;return ue}}();function ee(S,M,v,O){var K,G,X,j,Y;if(v==null?v=D:Q(v,0,8),!S.c)return S.toString();if(K=S.c[0],X=S.e,M==null)Y=y(S.c),Y=O==1||O==2&&(X<=h||X>=u)?V(Y,X):q(Y,X,"0");else if(S=W(new F(S),M,v),G=S.e,Y=y(S.c),j=Y.length,O==1||O==2&&(M<=G||G<=h)){for(;jj){if(--M>0)for(Y+=".";M--;Y+="0");}else if(M+=G-j,M>0)for(G+1==j&&(Y+=".");M--;Y+="0");return S.s<0&&K?"-"+Y:Y}function T(S,M){for(var v,O=1,K=new F(S[0]);O=10;K/=10,O++);return(v=O+v*n-1)>C?S.c=S.e=null:v=10;j/=10,K++);if(G=M-K,G<0)G+=n,X=M,Y=ae[$=0],fe=Y/be[K-X-1]%10|0;else if($=f((G+1)/n),$>=ae.length)if(O){for(;ae.length<=$;ae.push(0));Y=fe=0,K=1,G%=n,X=G-n+1}else break e;else{for(Y=j=ae[$],K=1;j>=10;j/=10,K++);G%=n,X=G-n+K,fe=X<0?0:Y/be[K-X-1]%10|0}if(O=O||M<0||ae[$+1]!=null||(X<0?Y:Y%be[K-X-1]),O=v<4?(fe||O)&&(v==0||v==(S.s<0?3:2)):fe>5||fe==5&&(v==4||O||v==6&&(G>0?X>0?Y/be[K-X]:0:ae[$-1])%10&1||v==(S.s<0?8:7)),M<1||!ae[0])return ae.length=0,O?(M-=S.e+1,ae[0]=be[(n-M%n)%n],S.e=-M||0):ae[0]=S.e=0,S;if(G==0?(ae.length=$,j=1,$--):(ae.length=$+1,j=be[n-G],ae[$]=X>0?c(Y/be[K-X]%be[X])*j:0),O)for(;;)if($==0){for(G=1,X=ae[0];X>=10;X/=10,G++);for(X=ae[0]+=j,j=1;X>=10;X/=10,j++);G!=j&&(S.e++,ae[0]==r&&(ae[0]=1));break}else{if(ae[$]+=j,ae[$]!=r)break;ae[$--]=0,j=1}for(G=ae.length;ae[--G]===0;ae.pop());}S.e>C?S.c=S.e=null:S.e=u?V(M,v):q(M,v,"0"),S.s<0?"-"+M:M)}return H.absoluteValue=H.abs=function(){var S=new F(this);return S.s<0&&(S.s=1),S},H.comparedTo=function(S,M){return N(this,new F(S,M))},H.decimalPlaces=H.dp=function(S,M){var v,O,K,G=this;if(S!=null)return Q(S,0,x),M==null?M=D:Q(M,0,8),W(new F(G),S+G.e+1,M);if(!(v=G.c))return null;if(O=((K=v.length-1)-w(this.e/n))*n,K=v[K])for(;K%10==0;K/=10,O--);return O<0&&(O=0),O},H.dividedBy=H.div=function(S,M){return Z(this,new F(S,M),E,D)},H.dividedToIntegerBy=H.idiv=function(S,M){return Z(this,new F(S,M),0,1)},H.exponentiatedBy=H.pow=function(S,M){var v,O,K,G,X,j,Y,$,fe,ae=this;if(S=new F(S),S.c&&!S.isInteger())throw Error(d+"Exponent not an integer: "+Ae(S));if(M!=null&&(M=new F(M)),j=S.e>14,!ae.c||!ae.c[0]||ae.c[0]==1&&!ae.e&&ae.c.length==1||!S.c||!S.c[0])return fe=new F(Math.pow(+Ae(ae),j?S.s*(2-P(S)):+Ae(S))),M?fe.mod(M):fe;if(Y=S.s<0,M){if(M.c?!M.c[0]:!M.s)return new F(NaN);O=!Y&&ae.isInteger()&&M.isInteger(),O&&(ae=ae.mod(M))}else{if(S.e>9&&(ae.e>0||ae.e<-1||(ae.e==0?ae.c[0]>1||j&&ae.c[1]>=24e7:ae.c[0]<8e13||j&&ae.c[0]<=9999975e7)))return G=ae.s<0&&P(S)?-0:0,ae.e>-1&&(G=1/G),new F(Y?1/G:G);i&&(G=f(i/n+2))}for(j?(v=new F(.5),Y&&(S.s=1),$=P(S)):(K=Math.abs(+Ae(S)),$=K%2),fe=new F(k);;){if($){if(fe=fe.times(ae),!fe.c)break;G?fe.c.length>G&&(fe.c.length=G):O&&(fe=fe.mod(M))}if(K){if(K=c(K/2),K===0)break;$=K%2}else if(S=S.times(v),W(S,S.e+1,1),S.e>14)$=P(S);else{if(K=+Ae(S),K===0)break;$=K%2}ae=ae.times(ae),G?ae.c&&ae.c.length>G&&(ae.c.length=G):O&&(ae=ae.mod(M))}return O?fe:(Y&&(fe=k.div(fe)),M?fe.mod(M):G?W(fe,i,D,X):fe)},H.integerValue=function(S){var M=new F(this);return S==null?S=D:Q(S,0,8),W(M,M.e+1,S)},H.isEqualTo=H.eq=function(S,M){return N(this,new F(S,M))===0},H.isFinite=function(){return!!this.c},H.isGreaterThan=H.gt=function(S,M){return N(this,new F(S,M))>0},H.isGreaterThanOrEqualTo=H.gte=function(S,M){return(M=N(this,new F(S,M)))===1||M===0},H.isInteger=function(){return!!this.c&&w(this.e/n)>this.c.length-2},H.isLessThan=H.lt=function(S,M){return N(this,new F(S,M))<0},H.isLessThanOrEqualTo=H.lte=function(S,M){return(M=N(this,new F(S,M)))===-1||M===0},H.isNaN=function(){return!this.s},H.isNegative=function(){return this.s<0},H.isPositive=function(){return this.s>0},H.isZero=function(){return!!this.c&&this.c[0]==0},H.minus=function(S,M){var v,O,K,G,X=this,j=X.s;if(S=new F(S,M),M=S.s,!j||!M)return new F(NaN);if(j!=M)return S.s=-M,X.plus(S);var Y=X.e/n,$=S.e/n,fe=X.c,ae=S.c;if(!Y||!$){if(!fe||!ae)return fe?(S.s=-M,S):new F(ae?X:NaN);if(!fe[0]||!ae[0])return ae[0]?(S.s=-M,S):new F(fe[0]?X:D==3?-0:0)}if(Y=w(Y),$=w($),fe=fe.slice(),j=Y-$){for((G=j<0)?(j=-j,K=fe):($=Y,K=ae),K.reverse(),M=j;M--;K.push(0));K.reverse()}else for(O=(G=(j=fe.length)<(M=ae.length))?j:M,j=M=0;M0)for(;M--;fe[v++]=0);for(M=r-1;O>j;){if(fe[--O]=0;){for(v=0,be=s0[K]%l0,oe=s0[K]/l0|0,X=Y,G=K+X;G>K;)$=te[--X]%l0,fe=te[X]/l0|0,j=oe*$+fe*be,$=be*$+j%l0*l0+re[G]+v,v=($/ue|0)+(j/l0|0)+oe*fe,re[G--]=$%ue;re[G]=v}return v?++O:re.splice(0,1),J(S,re,O)},H.negated=function(){var S=new F(this);return S.s=-S.s||null,S},H.plus=function(S,M){var v,O=this,K=O.s;if(S=new F(S,M),M=S.s,!K||!M)return new F(NaN);if(K!=M)return S.s=-M,O.minus(S);var G=O.e/n,X=S.e/n,j=O.c,Y=S.c;if(!G||!X){if(!j||!Y)return new F(K/0);if(!j[0]||!Y[0])return Y[0]?S:new F(j[0]?O:K*0)}if(G=w(G),X=w(X),j=j.slice(),K=G-X){for(K>0?(X=G,v=Y):(K=-K,v=j),v.reverse();K--;v.push(0));v.reverse()}for(K=j.length,M=Y.length,K-M<0&&(v=Y,Y=j,j=v,M=K),K=0;M;)K=(j[--M]=j[M]+Y[M]+K)/r|0,j[M]=r===j[M]?0:j[M]%r;return K&&(j=[K].concat(j),++X),J(S,j,X)},H.precision=H.sd=function(S,M){var v,O,K,G=this;if(S!=null&&S!==!!S)return Q(S,1,x),M==null?M=D:Q(M,0,8),W(new F(G),S,M);if(!(v=G.c))return null;if(K=v.length-1,O=K*n+1,K=v[K]){for(;K%10==0;K/=10,O--);for(K=v[0];K>=10;K/=10,O++);}return S&&G.e+1>O&&(O=G.e+1),O},H.shiftedBy=function(S){return Q(S,-l,l),this.times("1e"+S)},H.squareRoot=H.sqrt=function(){var S,M,v,O,K,G=this,X=G.c,j=G.s,Y=G.e,$=E+4,fe=new F("0.5");if(j!==1||!X||!X[0])return new F(!j||j<0&&(!X||X[0])?NaN:X?G:1/0);if(j=Math.sqrt(+Ae(G)),j==0||j==1/0?(M=y(X),(M.length+Y)%2==0&&(M+="0"),j=Math.sqrt(+M),Y=w((Y+1)/2)-(Y<0||Y%2),j==1/0?M="5e"+Y:(M=j.toExponential(),M=M.slice(0,M.indexOf("e")+1)+Y),v=new F(M)):v=new F(j+""),v.c[0]){for(Y=v.e,j=Y+$,j<3&&(j=0);;)if(K=v,v=fe.times(K.plus(Z(G,K,$,1))),y(K.c).slice(0,j)===(M=y(v.c)).slice(0,j))if(v.e0&&re>0){for(G=re%j||j,fe=oe.substr(0,G);G0&&(fe+=$+oe.slice(G)),be&&(fe="-"+fe)}O=ae?fe+(v.decimalSeparator||"")+((Y=+v.fractionGroupSize)?ae.replace(new RegExp("\\d{"+Y+"}\\B","g"),"$&"+(v.fractionGroupSeparator||"")):ae):fe}return(v.prefix||"")+O+(v.suffix||"")},H.toFraction=function(S){var M,v,O,K,G,X,j,Y,$,fe,ae,be,oe=this,re=oe.c;if(S!=null&&(j=new F(S),!j.isInteger()&&(j.c||j.s!==1)||j.lt(k)))throw Error(d+"Argument "+(j.isInteger()?"out of range: ":"not an integer: ")+Ae(j));if(!re)return new F(oe);for(M=new F(k),$=v=new F(k),O=Y=new F(k),be=y(re),G=M.e=be.length-oe.e-1,M.c[0]=t[(X=G%n)<0?n+X:X],S=!S||j.comparedTo(M)>0?G>0?M:$:j,X=C,C=1/0,j=new F(be),Y.c[0]=0;fe=Z(j,M,0,1),K=v.plus(fe.times(O)),K.comparedTo(S)!=1;)v=O,O=K,$=Y.plus(fe.times(K=$)),Y=K,M=j.minus(fe.times(K=M)),j=K;return K=Z(S.minus(v),O,0,1),Y=Y.plus(K.times($)),v=v.plus(K.times(O)),Y.s=$.s=oe.s,G=G*2,ae=Z($,O,G,D).minus(oe).abs().comparedTo(Z(Y,v,G,D).minus(oe).abs())<1?[$,O]:[Y,v],C=X,ae},H.toNumber=function(){return+Ae(this)},H.toPrecision=function(S,M){return S!=null&&Q(S,1,x),ee(this,S,M,2)},H.toString=function(S){var M,v=this,O=v.s,K=v.e;return K===null?O?(M="Infinity",O<0&&(M="-"+M)):M="NaN":(S==null?M=K<=h||K>=u?V(y(v.c),K):q(y(v.c),K,"0"):S===10&&s?(v=W(new F(v),E+K+1,D),M=q(y(v.c),v.e,"0")):(Q(S,2,R.length,"Base"),M=de(q(y(v.c),K,"0"),10,S,O,!0)),O<0&&v.c[0]&&(M="-"+M)),M},H.valueOf=H.toJSON=function(){return Ae(this)},H._isBigNumber=!0,_!=null&&F.set(_),F}function w(_){var Z=_|0;return _>0||_===Z?Z:Z-1}function y(_){for(var Z,de,ce=1,H=_.length,k=_[0]+"";ceu^de?1:-1;for(D=(h=H.length)<(u=k.length)?h:u,E=0;Ek[E]^de?1:-1;return h==u?0:h>u^de?1:-1}function Q(_,Z,de,ce){if(_de||_!==c(_))throw Error(d+(ce||"Argument")+(typeof _=="number"?_de?" out of range: ":" not an integer: ":" not a primitive number: ")+String(_))}function P(_){var Z=_.c.length-1;return w(_.e/n)==Z&&_.c[Z]%2!=0}function V(_,Z){return(_.length>1?_.charAt(0)+"."+_.slice(1):_)+(Z<0?"e":"e+")+Z}function q(_,Z,de){var ce,H;if(Z<0){for(H=de+".";++Z;H+=de);_=H+_}else if(ce=_.length,++Z>ce){for(H=de,Z-=ce;--Z;H+=de);_+=H}else Z{"use strict";var M5=b0&&b0.__read||function(A,a){var e=typeof Symbol=="function"&&A[Symbol.iterator];if(!e)return A;var f=e.call(A),c,d=[],b;try{for(;(a===void 0||a-- >0)&&!(c=f.next()).done;)d.push(c.value)}catch(r){b={error:r}}finally{try{c&&!c.done&&(e=f.return)&&e.call(f)}finally{if(b)throw b.error}}return d},U5=b0&&b0.__spreadArray||function(A,a,e){if(e||arguments.length===2)for(var f=0,c=a.length,d;f1&&f[f.length-1]==="'"&&(c+=2147483648),a.push(c))}),a}b0.splitPath=GU;function zB(A){return Buffer.from(A.startsWith("0x")?A.slice(2):A,"hex")}b0.hexBuffer=zB;function PU(A){return A?zB(A):null}b0.maybeHexBuffer=PU;var VU=function(A){var a=[1,2],e=a.includes(A[0])?A[0]:null,f=e===null?A:A.slice(1),c=(0,Jb.decode)(f).map(function(w){return Buffer.from(w.slice(2),"hex")}),d=0,b=(0,Jb.decode)(f),r;e===2?r={data:b[7],to:b[5],chainId:c[0]}:e===1?r={data:b[6],to:b[4],chainId:c[0]}:r={data:b[5],to:b[3],chainId:c.length>6?c[6]:Buffer.from("0x01","hex")};var n=r.chainId,l=new qB.BigNumber(0);if(n){l=new qB.BigNumber(n.toString("hex"),16);var t=Buffer.alloc(4);n.length>4?n.copy(t):n.copy(t,4-n.length),d=t.readUInt32BE(0)}var B=0;if(e===null&&c.length>6){var x=Buffer.from((0,Jb.encode)(c.slice(-3)).slice(2),"hex");if(B=A.length-(x.length-1),x[0]>247){B++;var p=x[0]-247;B+=p-1}}return{decodedTx:r,txType:e,chainId:l,chainIdTruncated:d,vrsOffset:B}};b0.decodeTxInfo=VU;var LU=function(A,a){return A.toString(16).padStart(2*a,"0")};b0.intAsHexBytes=LU;var jB;(function(A){A.APPROVE="0x095ea7b3",A.TRANSFER="0xa9059cbb"})(jB=b0.ERC20_CLEAR_SIGNED_SELECTORS||(b0.ERC20_CLEAR_SIGNED_SELECTORS={}));var _B;(function(A){A.APPROVE="0x095ea7b3",A.SET_APPROVAL_FOR_ALL="0xa22cb465",A.TRANSFER_FROM="0x23b872dd",A.SAFE_TRANSFER_FROM="0x42842e0e",A.SAFE_TRANSFER_FROM_WITH_DATA="0xb88d4fde"})(_B=b0.ERC721_CLEAR_SIGNED_SELECTORS||(b0.ERC721_CLEAR_SIGNED_SELECTORS={}));var $B;(function(A){A.SET_APPROVAL_FOR_ALL="0xa22cb465",A.SAFE_TRANSFER_FROM="0xf242432a",A.SAFE_BATCH_TRANSFER_FROM="0x2eb2c2d6"})($B=b0.ERC1155_CLEAR_SIGNED_SELECTORS||(b0.ERC1155_CLEAR_SIGNED_SELECTORS={}));b0.tokenSelectors=Object.values(jB);b0.nftSelectors=U5(U5([],M5(Object.values(_B)),!1),M5(Object.values($B)),!1);var JU=function(A,a){var e,f,c={nfts:[],erc20Tokens:[],externalPlugin:[],plugin:[]};for(var d in A)(e=c[d]).push.apply(e,U5([],M5(A[d]),!1));for(var d in a)(f=c[d]).push.apply(f,U5([],M5(a[d]),!1));return c};b0.mergeResolutions=JU});var lc=U(S1=>{"use strict";S1.__esModule=!0;S1.listen=S1.log=void 0;var HU=0,Uf=[],ZU=function(A,a,e){var f={type:A,id:String(++HU),date:new Date};a&&(f.message=a),e&&(f.data=e),XU(f)};S1.log=ZU;var YU=function(A){return Uf.push(A),function(){var a=Uf.indexOf(A);a!==-1&&(Uf[a]=Uf[Uf.length-1],Uf.pop())}};S1.listen=YU;function XU(A){for(var a=0;a{"use strict";eh.exports=function(a,e){return function(){for(var c=new Array(arguments.length),d=0;d{"use strict";var WU=Hb(),Nf=Object.prototype.toString;function Xb(A){return Array.isArray(A)}function Zb(A){return typeof A>"u"}function KU(A){return A!==null&&!Zb(A)&&A.constructor!==null&&!Zb(A.constructor)&&typeof A.constructor.isBuffer=="function"&&A.constructor.isBuffer(A)}function ah(A){return Nf.call(A)==="[object ArrayBuffer]"}function qU(A){return Nf.call(A)==="[object FormData]"}function zU(A){var a;return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?a=ArrayBuffer.isView(A):a=A&&A.buffer&&ah(A.buffer),a}function jU(A){return typeof A=="string"}function _U(A){return typeof A=="number"}function Ah(A){return A!==null&&typeof A=="object"}function N5(A){if(Nf.call(A)!=="[object Object]")return!1;var a=Object.getPrototypeOf(A);return a===null||a===Object.prototype}function $U(A){return Nf.call(A)==="[object Date]"}function eN(A){return Nf.call(A)==="[object File]"}function aN(A){return Nf.call(A)==="[object Blob]"}function fh(A){return Nf.call(A)==="[object Function]"}function AN(A){return Ah(A)&&fh(A.pipe)}function fN(A){return Nf.call(A)==="[object URLSearchParams]"}function cN(A){return A.trim?A.trim():A.replace(/^\s+|\s+$/g,"")}function dN(){return typeof navigator<"u"&&(navigator.product==="ReactNative"||navigator.product==="NativeScript"||navigator.product==="NS")?!1:typeof window<"u"&&typeof document<"u"}function Wb(A,a){if(!(A===null||typeof A>"u"))if(typeof A!="object"&&(A=[A]),Xb(A))for(var e=0,f=A.length;e{"use strict";var rc=Ia();function dh(A){return encodeURIComponent(A).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}bh.exports=function(a,e,f){if(!e)return a;var c;if(f)c=f(e);else if(rc.isURLSearchParams(e))c=e.toString();else{var d=[];rc.forEach(e,function(n,l){n===null||typeof n>"u"||(rc.isArray(n)?l=l+"[]":n=[n],rc.forEach(n,function(B){rc.isDate(B)?B=B.toISOString():rc.isObject(B)&&(B=JSON.stringify(B)),d.push(dh(l)+"="+dh(B))}))}),c=d.join("&")}if(c){var b=a.indexOf("#");b!==-1&&(a=a.slice(0,b)),a+=(a.indexOf("?")===-1?"?":"&")+c}return a}});var rh=U((mX,lh)=>{"use strict";var rN=Ia();function G5(){this.handlers=[]}G5.prototype.use=function(a,e,f){return this.handlers.push({fulfilled:a,rejected:e,synchronous:f?f.synchronous:!1,runWhen:f?f.runWhen:null}),this.handlers.length-1};G5.prototype.eject=function(a){this.handlers[a]&&(this.handlers[a]=null)};G5.prototype.forEach=function(a){rN.forEach(this.handlers,function(f){f!==null&&a(f)})};lh.exports=G5});var th=U((xX,nh)=>{"use strict";var nN=Ia();nh.exports=function(a,e){nN.forEach(a,function(c,d){d!==e&&d.toUpperCase()===e.toUpperCase()&&(a[e]=c,delete a[d])})}});var P5=U((pX,uh)=>{"use strict";uh.exports=function(a,e,f,c,d){return a.config=e,f&&(a.code=f),a.request=c,a.response=d,a.isAxiosError=!0,a.toJSON=function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:this.config,code:this.code,status:this.response&&this.response.status?this.response.status:null}},a}});var V5=U((TX,ih)=>{"use strict";ih.exports={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1}});var L5=U((wX,oh)=>{"use strict";var tN=P5();oh.exports=function(a,e,f,c,d){var b=new Error(a);return tN(b,e,f,c,d)}});var Kb=U((RX,sh)=>{"use strict";var uN=L5();sh.exports=function(a,e,f){var c=f.config.validateStatus;!f.status||!c||c(f.status)?a(f):e(uN("Request failed with status code "+f.status,f.config,null,f.request,f))}});var Bh=U((SX,Eh)=>{"use strict";var J5=Ia();Eh.exports=J5.isStandardBrowserEnv()?function(){return{write:function(e,f,c,d,b,r){var n=[];n.push(e+"="+encodeURIComponent(f)),J5.isNumber(c)&&n.push("expires="+new Date(c).toGMTString()),J5.isString(d)&&n.push("path="+d),J5.isString(b)&&n.push("domain="+b),r===!0&&n.push("secure"),document.cookie=n.join("; ")},read:function(e){var f=document.cookie.match(new RegExp("(^|;\\s*)("+e+")=([^;]*)"));return f?decodeURIComponent(f[3]):null},remove:function(e){this.write(e,"",Date.now()-864e5)}}}():function(){return{write:function(){},read:function(){return null},remove:function(){}}}()});var Ch=U((vX,hh)=>{"use strict";hh.exports=function(a){return/^([a-z][a-z\d+\-.]*:)?\/\//i.test(a)}});var Ih=U((kX,gh)=>{"use strict";gh.exports=function(a,e){return e?a.replace(/\/+$/,"")+"/"+e.replace(/^\/+/,""):a}});var qb=U((QX,Fh)=>{"use strict";var iN=Ch(),oN=Ih();Fh.exports=function(a,e){return a&&!iN(e)?oN(a,e):e}});var mh=U((yX,Dh)=>{"use strict";var zb=Ia(),sN=["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"];Dh.exports=function(a){var e={},f,c,d;return a&&zb.forEach(a.split(` +`),function(r){if(d=r.indexOf(":"),f=zb.trim(r.substr(0,d)).toLowerCase(),c=zb.trim(r.substr(d+1)),f){if(e[f]&&sN.indexOf(f)>=0)return;f==="set-cookie"?e[f]=(e[f]?e[f]:[]).concat([c]):e[f]=e[f]?e[f]+", "+c:c}}),e}});var Th=U((MX,ph)=>{"use strict";var xh=Ia();ph.exports=xh.isStandardBrowserEnv()?function(){var a=/(msie|trident)/i.test(navigator.userAgent),e=document.createElement("a"),f;function c(d){var b=d;return a&&(e.setAttribute("href",b),b=e.href),e.setAttribute("href",b),{href:e.href,protocol:e.protocol?e.protocol.replace(/:$/,""):"",host:e.host,search:e.search?e.search.replace(/^\?/,""):"",hash:e.hash?e.hash.replace(/^#/,""):"",hostname:e.hostname,port:e.port,pathname:e.pathname.charAt(0)==="/"?e.pathname:"/"+e.pathname}}return f=c(window.location.href),function(b){var r=xh.isString(b)?c(b):b;return r.protocol===f.protocol&&r.host===f.host}}():function(){return function(){return!0}}()});var nc=U((UX,wh)=>{"use strict";function jb(A){this.message=A}jb.prototype.toString=function(){return"Cancel"+(this.message?": "+this.message:"")};jb.prototype.__CANCEL__=!0;wh.exports=jb});var Sh=U((NX,Rh)=>{"use strict";var H5=Ia(),EN=Kb(),BN=Bh(),hN=O5(),CN=qb(),gN=mh(),IN=Th(),_b=L5(),FN=V5(),DN=nc();Rh.exports=function(a){return new Promise(function(f,c){var d=a.data,b=a.headers,r=a.responseType,n;function l(){a.cancelToken&&a.cancelToken.unsubscribe(n),a.signal&&a.signal.removeEventListener("abort",n)}H5.isFormData(d)&&delete b["Content-Type"];var t=new XMLHttpRequest;if(a.auth){var B=a.auth.username||"",x=a.auth.password?unescape(encodeURIComponent(a.auth.password)):"";b.Authorization="Basic "+btoa(B+":"+x)}var p=CN(a.baseURL,a.url);t.open(a.method.toUpperCase(),hN(p,a.params,a.paramsSerializer),!0),t.timeout=a.timeout;function w(){if(!!t){var N="getAllResponseHeaders"in t?gN(t.getAllResponseHeaders()):null,Q=!r||r==="text"||r==="json"?t.responseText:t.response,P={data:Q,status:t.status,statusText:t.statusText,headers:N,config:a,request:t};EN(function(q){f(q),l()},function(q){c(q),l()},P),t=null}}if("onloadend"in t?t.onloadend=w:t.onreadystatechange=function(){!t||t.readyState!==4||t.status===0&&!(t.responseURL&&t.responseURL.indexOf("file:")===0)||setTimeout(w)},t.onabort=function(){!t||(c(_b("Request aborted",a,"ECONNABORTED",t)),t=null)},t.onerror=function(){c(_b("Network Error",a,null,t)),t=null},t.ontimeout=function(){var Q=a.timeout?"timeout of "+a.timeout+"ms exceeded":"timeout exceeded",P=a.transitional||FN;a.timeoutErrorMessage&&(Q=a.timeoutErrorMessage),c(_b(Q,a,P.clarifyTimeoutError?"ETIMEDOUT":"ECONNABORTED",t)),t=null},H5.isStandardBrowserEnv()){var y=(a.withCredentials||IN(p))&&a.xsrfCookieName?BN.read(a.xsrfCookieName):void 0;y&&(b[a.xsrfHeaderName]=y)}"setRequestHeader"in t&&H5.forEach(b,function(Q,P){typeof d>"u"&&P.toLowerCase()==="content-type"?delete b[P]:t.setRequestHeader(P,Q)}),H5.isUndefined(a.withCredentials)||(t.withCredentials=!!a.withCredentials),r&&r!=="json"&&(t.responseType=a.responseType),typeof a.onDownloadProgress=="function"&&t.addEventListener("progress",a.onDownloadProgress),typeof a.onUploadProgress=="function"&&t.upload&&t.upload.addEventListener("progress",a.onUploadProgress),(a.cancelToken||a.signal)&&(n=function(N){!t||(c(!N||N&&N.type?new DN("canceled"):N),t.abort(),t=null)},a.cancelToken&&a.cancelToken.subscribe(n),a.signal&&(a.signal.aborted?n():a.signal.addEventListener("abort",n))),d||(d=null),t.send(d)})}});var kh=U((OX,vh)=>{var tc=1e3,uc=tc*60,ic=uc*60,v1=ic*24,mN=v1*7,xN=v1*365.25;vh.exports=function(A,a){a=a||{};var e=typeof A;if(e==="string"&&A.length>0)return pN(A);if(e==="number"&&isFinite(A))return a.long?wN(A):TN(A);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(A))};function pN(A){if(A=String(A),!(A.length>100)){var a=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(A);if(!!a){var e=parseFloat(a[1]),f=(a[2]||"ms").toLowerCase();switch(f){case"years":case"year":case"yrs":case"yr":case"y":return e*xN;case"weeks":case"week":case"w":return e*mN;case"days":case"day":case"d":return e*v1;case"hours":case"hour":case"hrs":case"hr":case"h":return e*ic;case"minutes":case"minute":case"mins":case"min":case"m":return e*uc;case"seconds":case"second":case"secs":case"sec":case"s":return e*tc;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return e;default:return}}}}function TN(A){var a=Math.abs(A);return a>=v1?Math.round(A/v1)+"d":a>=ic?Math.round(A/ic)+"h":a>=uc?Math.round(A/uc)+"m":a>=tc?Math.round(A/tc)+"s":A+"ms"}function wN(A){var a=Math.abs(A);return a>=v1?Z5(A,a,v1,"day"):a>=ic?Z5(A,a,ic,"hour"):a>=uc?Z5(A,a,uc,"minute"):a>=tc?Z5(A,a,tc,"second"):A+" ms"}function Z5(A,a,e,f){var c=a>=e*1.5;return Math.round(A/e)+" "+f+(c?"s":"")}});var $b=U((GX,Qh)=>{function RN(A){e.debug=e,e.default=e,e.coerce=n,e.disable=d,e.enable=c,e.enabled=b,e.humanize=kh(),e.destroy=l,Object.keys(A).forEach(t=>{e[t]=A[t]}),e.names=[],e.skips=[],e.formatters={};function a(t){let B=0;for(let x=0;x{if(Z==="%%")return"%";q++;let ce=e.formatters[de];if(typeof ce=="function"){let H=N[q];Z=ce.call(Q,H),N.splice(q,1),q--}return Z}),e.formatArgs.call(Q,N),(Q.log||e.log).apply(Q,N)}return y.namespace=t,y.useColors=e.useColors(),y.color=e.selectColor(t),y.extend=f,y.destroy=e.destroy,Object.defineProperty(y,"enabled",{enumerable:!0,configurable:!1,get:()=>x!==null?x:(p!==e.namespaces&&(p=e.namespaces,w=e.enabled(t)),w),set:N=>{x=N}}),typeof e.init=="function"&&e.init(y),y}function f(t,B){let x=e(this.namespace+(typeof B>"u"?":":B)+t);return x.log=this.log,x}function c(t){e.save(t),e.namespaces=t,e.names=[],e.skips=[];let B,x=(typeof t=="string"?t:"").split(/[\s,]+/),p=x.length;for(B=0;B"-"+B)].join(",");return e.enable(""),t}function b(t){if(t[t.length-1]==="*")return!0;let B,x;for(B=0,x=e.skips.length;B{Va.formatArgs=vN;Va.save=kN;Va.load=QN;Va.useColors=SN;Va.storage=yN();Va.destroy=(()=>{let A=!1;return()=>{A||(A=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."))}})();Va.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"];function SN(){return typeof window<"u"&&window.process&&(window.process.type==="renderer"||window.process.__nwjs)?!0:typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/)?!1:typeof document<"u"&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||typeof window<"u"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)&&parseInt(RegExp.$1,10)>=31||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)}function vN(A){if(A[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+A[0]+(this.useColors?"%c ":" ")+"+"+Y5.exports.humanize(this.diff),!this.useColors)return;let a="color: "+this.color;A.splice(1,0,a,"color: inherit");let e=0,f=0;A[0].replace(/%[a-zA-Z%]/g,c=>{c!=="%%"&&(e++,c==="%c"&&(f=e))}),A.splice(f,0,a)}Va.log=console.debug||console.log||(()=>{});function kN(A){try{A?Va.storage.setItem("debug",A):Va.storage.removeItem("debug")}catch{}}function QN(){let A;try{A=Va.storage.getItem("debug")}catch{}return!A&&typeof process<"u"&&"env"in process&&(A=process.env.DEBUG),A}function yN(){try{return localStorage}catch{}}Y5.exports=$b()(Va);var{formatters:MN}=Y5.exports;MN.j=function(A){try{return JSON.stringify(A)}catch(a){return"[UnexpectedJSONParseError]: "+a.message}}});var Uh=U((PX,Mh)=>{"use strict";Mh.exports=(A,a=process.argv)=>{let e=A.startsWith("-")?"":A.length===1?"-":"--",f=a.indexOf(e+A),c=a.indexOf("--");return f!==-1&&(c===-1||f{"use strict";var UN=require("os"),Nh=require("tty"),B2=Uh(),{env:z0}=process,Of;B2("no-color")||B2("no-colors")||B2("color=false")||B2("color=never")?Of=0:(B2("color")||B2("colors")||B2("color=true")||B2("color=always"))&&(Of=1);"FORCE_COLOR"in z0&&(z0.FORCE_COLOR==="true"?Of=1:z0.FORCE_COLOR==="false"?Of=0:Of=z0.FORCE_COLOR.length===0?1:Math.min(parseInt(z0.FORCE_COLOR,10),3));function el(A){return A===0?!1:{level:A,hasBasic:!0,has256:A>=2,has16m:A>=3}}function al(A,a){if(Of===0)return 0;if(B2("color=16m")||B2("color=full")||B2("color=truecolor"))return 3;if(B2("color=256"))return 2;if(A&&!a&&Of===void 0)return 0;let e=Of||0;if(z0.TERM==="dumb")return e;if(process.platform==="win32"){let f=UN.release().split(".");return Number(f[0])>=10&&Number(f[2])>=10586?Number(f[2])>=14931?3:2:1}if("CI"in z0)return["TRAVIS","CIRCLECI","APPVEYOR","GITLAB_CI","GITHUB_ACTIONS","BUILDKITE"].some(f=>f in z0)||z0.CI_NAME==="codeship"?1:e;if("TEAMCITY_VERSION"in z0)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(z0.TEAMCITY_VERSION)?1:0;if(z0.COLORTERM==="truecolor")return 3;if("TERM_PROGRAM"in z0){let f=parseInt((z0.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(z0.TERM_PROGRAM){case"iTerm.app":return f>=3?3:2;case"Apple_Terminal":return 2}}return/-256(color)?$/i.test(z0.TERM)?2:/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(z0.TERM)||"COLORTERM"in z0?1:e}function NN(A){let a=al(A,A&&A.isTTY);return el(a)}Oh.exports={supportsColor:NN,stdout:el(al(!0,Nh.isatty(1))),stderr:el(al(!0,Nh.isatty(2)))}});var Vh=U((da,W5)=>{var ON=require("tty"),X5=require("util");da.init=ZN;da.log=LN;da.formatArgs=PN;da.save=JN;da.load=HN;da.useColors=GN;da.destroy=X5.deprecate(()=>{},"Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.");da.colors=[6,2,3,4,5,1];try{let A=Gh();A&&(A.stderr||A).level>=2&&(da.colors=[20,21,26,27,32,33,38,39,40,41,42,43,44,45,56,57,62,63,68,69,74,75,76,77,78,79,80,81,92,93,98,99,112,113,128,129,134,135,148,149,160,161,162,163,164,165,166,167,168,169,170,171,172,173,178,179,184,185,196,197,198,199,200,201,202,203,204,205,206,207,208,209,214,215,220,221])}catch{}da.inspectOpts=Object.keys(process.env).filter(A=>/^debug_/i.test(A)).reduce((A,a)=>{let e=a.substring(6).toLowerCase().replace(/_([a-z])/g,(c,d)=>d.toUpperCase()),f=process.env[a];return/^(yes|on|true|enabled)$/i.test(f)?f=!0:/^(no|off|false|disabled)$/i.test(f)?f=!1:f==="null"?f=null:f=Number(f),A[e]=f,A},{});function GN(){return"colors"in da.inspectOpts?Boolean(da.inspectOpts.colors):ON.isatty(process.stderr.fd)}function PN(A){let{namespace:a,useColors:e}=this;if(e){let f=this.color,c="\x1B[3"+(f<8?f:"8;5;"+f),d=` ${c};1m${a} \x1B[0m`;A[0]=d+A[0].split(` +`).join(` +`+d),A.push(c+"m+"+W5.exports.humanize(this.diff)+"\x1B[0m")}else A[0]=VN()+a+" "+A[0]}function VN(){return da.inspectOpts.hideDate?"":new Date().toISOString()+" "}function LN(...A){return process.stderr.write(X5.format(...A)+` +`)}function JN(A){A?process.env.DEBUG=A:delete process.env.DEBUG}function HN(){return process.env.DEBUG}function ZN(A){A.inspectOpts={};let a=Object.keys(da.inspectOpts);for(let e=0;ea.trim()).join(" ")};Ph.O=function(A){return this.inspectOpts.colors=this.useColors,X5.inspect(A,this.inspectOpts)}});var Lh=U((LX,Al)=>{typeof process>"u"||process.type==="renderer"||process.browser===!0||process.__nwjs?Al.exports=yh():Al.exports=Vh()});var Hh=U((JX,Jh)=>{var G3;Jh.exports=function(){if(!G3){try{G3=Lh()("follow-redirects")}catch{}typeof G3!="function"&&(G3=function(){})}G3.apply(null,arguments)}});var rl=U((HX,ll)=>{var k1=require("url"),fl=k1.URL,YN=require("http"),XN=require("https"),Xh=require("stream").Writable,Wh=require("assert"),Kh=Hh(),dl=["abort","aborted","connect","error","socket","timeout"],bl=Object.create(null);dl.forEach(function(A){bl[A]=function(a,e,f){this._redirectable.emit(A,a,e,f)}});var WN=V3("ERR_INVALID_URL","Invalid URL",TypeError),Zh=V3("ERR_FR_REDIRECTION_FAILURE","Redirected request failed"),KN=V3("ERR_FR_TOO_MANY_REDIRECTS","Maximum number of redirects exceeded"),qN=V3("ERR_FR_MAX_BODY_LENGTH_EXCEEDED","Request body larger than maxBodyLength limit"),zN=V3("ERR_STREAM_WRITE_AFTER_END","write after end");function La(A,a){Xh.call(this),this._sanitizeOptions(A),this._options=A,this._ended=!1,this._ending=!1,this._redirectCount=0,this._redirects=[],this._requestBodyLength=0,this._requestBodyBuffers=[],a&&this.on("response",a);var e=this;this._onNativeResponse=function(f){e._processResponse(f)},this._performRequest()}La.prototype=Object.create(Xh.prototype);La.prototype.abort=function(){zh(this._currentRequest),this.emit("abort")};La.prototype.write=function(A,a,e){if(this._ending)throw new zN;if(!Q1(A)&&!$N(A))throw new TypeError("data should be a string, Buffer or Uint8Array");if(P3(a)&&(e=a,a=null),A.length===0){e&&e();return}this._requestBodyLength+A.length<=this._options.maxBodyLength?(this._requestBodyLength+=A.length,this._requestBodyBuffers.push({data:A,encoding:a}),this._currentRequest.write(A,a,e)):(this.emit("error",new qN),this.abort())};La.prototype.end=function(A,a,e){if(P3(A)?(e=A,A=a=null):P3(a)&&(e=a,a=null),!A)this._ended=this._ending=!0,this._currentRequest.end(null,null,e);else{var f=this,c=this._currentRequest;this.write(A,a,function(){f._ended=!0,c.end(null,null,e)}),this._ending=!0}};La.prototype.setHeader=function(A,a){this._options.headers[A]=a,this._currentRequest.setHeader(A,a)};La.prototype.removeHeader=function(A){delete this._options.headers[A],this._currentRequest.removeHeader(A)};La.prototype.setTimeout=function(A,a){var e=this;function f(b){b.setTimeout(A),b.removeListener("timeout",b.destroy),b.addListener("timeout",b.destroy)}function c(b){e._timeout&&clearTimeout(e._timeout),e._timeout=setTimeout(function(){e.emit("timeout"),d()},A),f(b)}function d(){e._timeout&&(clearTimeout(e._timeout),e._timeout=null),e.removeListener("abort",d),e.removeListener("error",d),e.removeListener("response",d),a&&e.removeListener("timeout",a),e.socket||e._currentRequest.removeListener("socket",c)}return a&&this.on("timeout",a),this.socket?c(this.socket):this._currentRequest.once("socket",c),this.on("socket",f),this.on("abort",d),this.on("error",d),this.on("response",d),this};["flushHeaders","getHeader","setNoDelay","setSocketKeepAlive"].forEach(function(A){La.prototype[A]=function(a,e){return this._currentRequest[A](a,e)}});["aborted","connection","socket"].forEach(function(A){Object.defineProperty(La.prototype,A,{get:function(){return this._currentRequest[A]}})});La.prototype._sanitizeOptions=function(A){if(A.headers||(A.headers={}),A.host&&(A.hostname||(A.hostname=A.host),delete A.host),!A.pathname&&A.path){var a=A.path.indexOf("?");a<0?A.pathname=A.path:(A.pathname=A.path.substring(0,a),A.search=A.path.substring(a))}};La.prototype._performRequest=function(){var A=this._options.protocol,a=this._options.nativeProtocols[A];if(!a){this.emit("error",new TypeError("Unsupported protocol "+A));return}if(this._options.agents){var e=A.slice(0,-1);this._options.agent=this._options.agents[e]}var f=this._currentRequest=a.request(this._options,this._onNativeResponse);f._redirectable=this;for(var c of dl)f.on(c,bl[c]);if(this._currentUrl=/^\//.test(this._options.path)?k1.format(this._options):this._options.path,this._isRedirect){var d=0,b=this,r=this._requestBodyBuffers;(function n(l){if(f===b._currentRequest)if(l)b.emit("error",l);else if(d=400){A.responseUrl=this._currentUrl,A.redirects=this._redirects,this.emit("response",A),this._requestBodyBuffers=[];return}if(zh(this._currentRequest),A.destroy(),++this._redirectCount>this._options.maxRedirects){this.emit("error",new KN);return}var f,c=this._options.beforeRedirect;c&&(f=Object.assign({Host:A.req.getHeader("host")},this._options.headers));var d=this._options.method;((a===301||a===302)&&this._options.method==="POST"||a===303&&!/^(?:GET|HEAD)$/.test(this._options.method))&&(this._options.method="GET",this._requestBodyBuffers=[],cl(/^content-/i,this._options.headers));var b=cl(/^host$/i,this._options.headers),r=k1.parse(this._currentUrl),n=b||r.host,l=/^\w+:/.test(e)?this._currentUrl:k1.format(Object.assign(r,{host:n})),t;try{t=k1.resolve(l,e)}catch(w){this.emit("error",new Zh({cause:w}));return}Kh("redirecting to",t),this._isRedirect=!0;var B=k1.parse(t);if(Object.assign(this._options,B),(B.protocol!==r.protocol&&B.protocol!=="https:"||B.host!==n&&!_N(B.host,n))&&cl(/^(?:authorization|cookie)$/i,this._options.headers),P3(c)){var x={headers:A.headers,statusCode:a},p={url:l,method:d,headers:f};try{c(this._options,x,p)}catch(w){this.emit("error",w);return}this._sanitizeOptions(this._options)}try{this._performRequest()}catch(w){this.emit("error",new Zh({cause:w}))}};function qh(A){var a={maxRedirects:21,maxBodyLength:10485760},e={};return Object.keys(A).forEach(function(f){var c=f+":",d=e[c]=A[f],b=a[f]=Object.create(d);function r(l,t,B){if(Q1(l)){var x;try{x=Yh(new fl(l))}catch{x=k1.parse(l)}if(!Q1(x.protocol))throw new WN({input:l});l=x}else fl&&l instanceof fl?l=Yh(l):(B=t,t=l,l={protocol:c});return P3(t)&&(B=t,t=null),t=Object.assign({maxRedirects:a.maxRedirects,maxBodyLength:a.maxBodyLength},l,t),t.nativeProtocols=e,!Q1(t.host)&&!Q1(t.hostname)&&(t.hostname="::1"),Wh.equal(t.protocol,c,"protocol mismatch"),Kh("options",t),new La(t,B)}function n(l,t,B){var x=b.request(l,t,B);return x.end(),x}Object.defineProperties(b,{request:{value:r,configurable:!0,enumerable:!0,writable:!0},get:{value:n,configurable:!0,enumerable:!0,writable:!0}})}),a}function jN(){}function Yh(A){var a={protocol:A.protocol,hostname:A.hostname.startsWith("[")?A.hostname.slice(1,-1):A.hostname,hash:A.hash,search:A.search,pathname:A.pathname,path:A.pathname+A.search,href:A.href};return A.port!==""&&(a.port=Number(A.port)),a}function cl(A,a){var e;for(var f in a)A.test(f)&&(e=a[f],delete a[f]);return e===null||typeof e>"u"?void 0:String(e).trim()}function V3(A,a,e){function f(c){Error.captureStackTrace(this,this.constructor),Object.assign(this,c||{}),this.code=A,this.message=this.cause?a+": "+this.cause.message:a}return f.prototype=new(e||Error),f.prototype.constructor=f,f.prototype.name="Error ["+A+"]",f}function zh(A){for(var a of dl)A.removeListener(a,bl[a]);A.on("error",jN),A.abort()}function _N(A,a){Wh(Q1(A)&&Q1(a));var e=A.length-a.length-1;return e>0&&A[e]==="."&&A.endsWith(a)}function Q1(A){return typeof A=="string"||A instanceof String}function P3(A){return typeof A=="function"}function $N(A){return typeof A=="object"&&"length"in A}ll.exports=qh({http:YN,https:XN});ll.exports.wrap=qh});var K5=U((ZX,jh)=>{jh.exports={version:"0.26.1"}});var cC=U((YX,fC)=>{"use strict";var L3=Ia(),_h=Kb(),eO=qb(),$h=O5(),aO=require("http"),AO=require("https"),fO=rl().http,cO=rl().https,eC=require("url"),dO=require("zlib"),bO=K5().version,oc=L5(),q5=P5(),lO=V5(),rO=nc(),aC=/https:?/;function AC(A,a,e){if(A.hostname=a.host,A.host=a.host,A.port=a.port,A.path=e,a.auth){var f=Buffer.from(a.auth.username+":"+a.auth.password,"utf8").toString("base64");A.headers["Proxy-Authorization"]="Basic "+f}A.beforeRedirect=function(d){d.headers.host=d.host,AC(d,a,d.href)}}fC.exports=function(a){return new Promise(function(f,c){var d;function b(){a.cancelToken&&a.cancelToken.unsubscribe(d),a.signal&&a.signal.removeEventListener("abort",d)}var r=function(F){b(),f(F)},n=!1,l=function(F){b(),n=!0,c(F)},t=a.data,B=a.headers,x={};if(Object.keys(B).forEach(function(F){x[F.toLowerCase()]=F}),"user-agent"in x?B[x["user-agent"]]||delete B[x["user-agent"]]:B["User-Agent"]="axios/"+bO,t&&!L3.isStream(t)){if(!Buffer.isBuffer(t))if(L3.isArrayBuffer(t))t=Buffer.from(new Uint8Array(t));else if(L3.isString(t))t=Buffer.from(t,"utf-8");else return l(oc("Data after transformation must be a string, an ArrayBuffer, a Buffer, or a Stream",a));if(a.maxBodyLength>-1&&t.length>a.maxBodyLength)return l(oc("Request body larger than maxBodyLength limit",a));x["content-length"]||(B["Content-Length"]=t.length)}var p=void 0;if(a.auth){var w=a.auth.username||"",y=a.auth.password||"";p=w+":"+y}var N=eO(a.baseURL,a.url),Q=eC.parse(N),P=Q.protocol||"http:";if(!p&&Q.auth){var V=Q.auth.split(":"),q=V[0]||"",_=V[1]||"";p=q+":"+_}p&&x.authorization&&delete B[x.authorization];var Z=aC.test(P),de=Z?a.httpsAgent:a.httpAgent;try{$h(Q.path,a.params,a.paramsSerializer).replace(/^\?/,"")}catch(s){var ce=new Error(s.message);ce.config=a,ce.url=a.url,ce.exists=!0,l(ce)}var H={path:$h(Q.path,a.params,a.paramsSerializer).replace(/^\?/,""),method:a.method.toUpperCase(),headers:B,agent:de,agents:{http:a.httpAgent,https:a.httpsAgent},auth:p};a.socketPath?H.socketPath=a.socketPath:(H.hostname=Q.hostname,H.port=Q.port);var k=a.proxy;if(!k&&k!==!1){var E=P.slice(0,-1)+"_proxy",D=process.env[E]||process.env[E.toUpperCase()];if(D){var h=eC.parse(D),u=process.env.no_proxy||process.env.NO_PROXY,o=!0;if(u){var C=u.split(",").map(function(F){return F.trim()});o=!C.some(function(F){return F?F==="*"||F[0]==="."&&Q.hostname.substr(Q.hostname.length-F.length)===F?!0:Q.hostname===F:!1})}if(o&&(k={host:h.hostname,port:h.port,protocol:h.protocol},h.auth)){var m=h.auth.split(":");k.auth={username:m[0],password:m[1]}}}}k&&(H.headers.host=Q.hostname+(Q.port?":"+Q.port:""),AC(H,k,P+"//"+Q.hostname+(Q.port?":"+Q.port:"")+H.path));var g,i=Z&&(k?aC.test(k.protocol):!0);a.transport?g=a.transport:a.maxRedirects===0?g=i?AO:aO:(a.maxRedirects&&(H.maxRedirects=a.maxRedirects),g=i?cO:fO),a.maxBodyLength>-1&&(H.maxBodyLength=a.maxBodyLength),a.insecureHTTPParser&&(H.insecureHTTPParser=a.insecureHTTPParser);var I=g.request(H,function(F){if(!I.aborted){var ee=F,T=F.req||I;if(F.statusCode!==204&&T.method!=="HEAD"&&a.decompress!==!1)switch(F.headers["content-encoding"]){case"gzip":case"compress":case"deflate":ee=ee.pipe(dO.createUnzip()),delete F.headers["content-encoding"];break}var J={status:F.statusCode,statusText:F.statusMessage,headers:F.headers,config:a,request:T};if(a.responseType==="stream")J.data=ee,_h(r,l,J);else{var W=[],Ae=0;ee.on("data",function(M){W.push(M),Ae+=M.length,a.maxContentLength>-1&&Ae>a.maxContentLength&&(n=!0,ee.destroy(),l(oc("maxContentLength size of "+a.maxContentLength+" exceeded",a,null,T)))}),ee.on("aborted",function(){n||(ee.destroy(),l(oc("error request aborted",a,"ERR_REQUEST_ABORTED",T)))}),ee.on("error",function(M){I.aborted||l(q5(M,a,null,T))}),ee.on("end",function(){try{var M=W.length===1?W[0]:Buffer.concat(W);a.responseType!=="arraybuffer"&&(M=M.toString(a.responseEncoding),(!a.responseEncoding||a.responseEncoding==="utf8")&&(M=L3.stripBOM(M))),J.data=M}catch(v){l(q5(v,a,v.code,J.request,J))}_h(r,l,J)})}}});if(I.on("error",function(F){I.aborted&&F.code!=="ERR_FR_TOO_MANY_REDIRECTS"||l(q5(F,a,null,I))}),I.on("socket",function(F){F.setKeepAlive(!0,1e3*60)}),a.timeout){var R=parseInt(a.timeout,10);if(isNaN(R)){l(oc("error trying to parse `config.timeout` to int",a,"ERR_PARSE_TIMEOUT",I));return}I.setTimeout(R,function(){I.abort();var F="";a.timeoutErrorMessage?F=a.timeoutErrorMessage:F="timeout of "+a.timeout+"ms exceeded";var ee=a.transitional||lO;l(oc(F,a,ee.clarifyTimeoutError?"ETIMEDOUT":"ECONNABORTED",I))})}(a.cancelToken||a.signal)&&(d=function(s){I.aborted||(I.abort(),l(!s||s&&s.type?new rO("canceled"):s))},a.cancelToken&&a.cancelToken.subscribe(d),a.signal&&(a.signal.aborted?d():a.signal.addEventListener("abort",d))),L3.isStream(t)?t.on("error",function(F){l(q5(F,a,null,I))}).pipe(I):I.end(t)})}});var j5=U((XX,lC)=>{"use strict";var ba=Ia(),dC=th(),nO=P5(),tO=V5(),uO={"Content-Type":"application/x-www-form-urlencoded"};function bC(A,a){!ba.isUndefined(A)&&ba.isUndefined(A["Content-Type"])&&(A["Content-Type"]=a)}function iO(){var A;return typeof XMLHttpRequest<"u"?A=Sh():typeof process<"u"&&Object.prototype.toString.call(process)==="[object process]"&&(A=cC()),A}function oO(A,a,e){if(ba.isString(A))try{return(a||JSON.parse)(A),ba.trim(A)}catch(f){if(f.name!=="SyntaxError")throw f}return(e||JSON.stringify)(A)}var z5={transitional:tO,adapter:iO(),transformRequest:[function(a,e){return dC(e,"Accept"),dC(e,"Content-Type"),ba.isFormData(a)||ba.isArrayBuffer(a)||ba.isBuffer(a)||ba.isStream(a)||ba.isFile(a)||ba.isBlob(a)?a:ba.isArrayBufferView(a)?a.buffer:ba.isURLSearchParams(a)?(bC(e,"application/x-www-form-urlencoded;charset=utf-8"),a.toString()):ba.isObject(a)||e&&e["Content-Type"]==="application/json"?(bC(e,"application/json"),oO(a)):a}],transformResponse:[function(a){var e=this.transitional||z5.transitional,f=e&&e.silentJSONParsing,c=e&&e.forcedJSONParsing,d=!f&&this.responseType==="json";if(d||c&&ba.isString(a)&&a.length)try{return JSON.parse(a)}catch(b){if(d)throw b.name==="SyntaxError"?nO(b,this,"E_JSON_PARSE"):b}return a}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,validateStatus:function(a){return a>=200&&a<300},headers:{common:{Accept:"application/json, text/plain, */*"}}};ba.forEach(["delete","get","head"],function(a){z5.headers[a]={}});ba.forEach(["post","put","patch"],function(a){z5.headers[a]=ba.merge(uO)});lC.exports=z5});var nC=U((WX,rC)=>{"use strict";var sO=Ia(),EO=j5();rC.exports=function(a,e,f){var c=this||EO;return sO.forEach(f,function(b){a=b.call(c,a,e)}),a}});var nl=U((KX,tC)=>{"use strict";tC.exports=function(a){return!!(a&&a.__CANCEL__)}});var oC=U((qX,iC)=>{"use strict";var uC=Ia(),tl=nC(),BO=nl(),hO=j5(),CO=nc();function ul(A){if(A.cancelToken&&A.cancelToken.throwIfRequested(),A.signal&&A.signal.aborted)throw new CO("canceled")}iC.exports=function(a){ul(a),a.headers=a.headers||{},a.data=tl.call(a,a.data,a.headers,a.transformRequest),a.headers=uC.merge(a.headers.common||{},a.headers[a.method]||{},a.headers),uC.forEach(["delete","get","head","post","put","patch","common"],function(c){delete a.headers[c]});var e=a.adapter||hO.adapter;return e(a).then(function(c){return ul(a),c.data=tl.call(a,c.data,c.headers,a.transformResponse),c},function(c){return BO(c)||(ul(a),c&&c.response&&(c.response.data=tl.call(a,c.response.data,c.response.headers,a.transformResponse))),Promise.reject(c)})}});var il=U((zX,sC)=>{"use strict";var Ja=Ia();sC.exports=function(a,e){e=e||{};var f={};function c(t,B){return Ja.isPlainObject(t)&&Ja.isPlainObject(B)?Ja.merge(t,B):Ja.isPlainObject(B)?Ja.merge({},B):Ja.isArray(B)?B.slice():B}function d(t){if(Ja.isUndefined(e[t])){if(!Ja.isUndefined(a[t]))return c(void 0,a[t])}else return c(a[t],e[t])}function b(t){if(!Ja.isUndefined(e[t]))return c(void 0,e[t])}function r(t){if(Ja.isUndefined(e[t])){if(!Ja.isUndefined(a[t]))return c(void 0,a[t])}else return c(void 0,e[t])}function n(t){if(t in e)return c(a[t],e[t]);if(t in a)return c(void 0,a[t])}var l={url:b,method:b,data:b,baseURL:r,transformRequest:r,transformResponse:r,paramsSerializer:r,timeout:r,timeoutMessage:r,withCredentials:r,adapter:r,responseType:r,xsrfCookieName:r,xsrfHeaderName:r,onUploadProgress:r,onDownloadProgress:r,decompress:r,maxContentLength:r,maxBodyLength:r,transport:r,httpAgent:r,httpsAgent:r,cancelToken:r,socketPath:r,responseEncoding:r,validateStatus:n};return Ja.forEach(Object.keys(a).concat(Object.keys(e)),function(B){var x=l[B]||d,p=x(B);Ja.isUndefined(p)&&x!==n||(f[B]=p)}),f}});var hC=U((jX,BC)=>{"use strict";var gO=K5().version,ol={};["object","boolean","number","function","string","symbol"].forEach(function(A,a){ol[A]=function(f){return typeof f===A||"a"+(a<1?"n ":" ")+A}});var EC={};ol.transitional=function(a,e,f){function c(d,b){return"[Axios v"+gO+"] Transitional option '"+d+"'"+b+(f?". "+f:"")}return function(d,b,r){if(a===!1)throw new Error(c(b," has been removed"+(e?" in "+e:"")));return e&&!EC[b]&&(EC[b]=!0,console.warn(c(b," has been deprecated since v"+e+" and will be removed in the near future"))),a?a(d,b,r):!0}};function IO(A,a,e){if(typeof A!="object")throw new TypeError("options must be an object");for(var f=Object.keys(A),c=f.length;c-- >0;){var d=f[c],b=a[d];if(b){var r=A[d],n=r===void 0||b(r,d,A);if(n!==!0)throw new TypeError("option "+d+" must be "+n);continue}if(e!==!0)throw Error("Unknown option "+d)}}BC.exports={assertOptions:IO,validators:ol}});var mC=U((_X,DC)=>{"use strict";var IC=Ia(),FO=O5(),CC=rh(),gC=oC(),_5=il(),FC=hC(),sc=FC.validators;function J3(A){this.defaults=A,this.interceptors={request:new CC,response:new CC}}J3.prototype.request=function(a,e){typeof a=="string"?(e=e||{},e.url=a):e=a||{},e=_5(this.defaults,e),e.method?e.method=e.method.toLowerCase():this.defaults.method?e.method=this.defaults.method.toLowerCase():e.method="get";var f=e.transitional;f!==void 0&&FC.assertOptions(f,{silentJSONParsing:sc.transitional(sc.boolean),forcedJSONParsing:sc.transitional(sc.boolean),clarifyTimeoutError:sc.transitional(sc.boolean)},!1);var c=[],d=!0;this.interceptors.request.forEach(function(p){typeof p.runWhen=="function"&&p.runWhen(e)===!1||(d=d&&p.synchronous,c.unshift(p.fulfilled,p.rejected))});var b=[];this.interceptors.response.forEach(function(p){b.push(p.fulfilled,p.rejected)});var r;if(!d){var n=[gC,void 0];for(Array.prototype.unshift.apply(n,c),n=n.concat(b),r=Promise.resolve(e);n.length;)r=r.then(n.shift(),n.shift());return r}for(var l=e;c.length;){var t=c.shift(),B=c.shift();try{l=t(l)}catch(x){B(x);break}}try{r=gC(l)}catch(x){return Promise.reject(x)}for(;b.length;)r=r.then(b.shift(),b.shift());return r};J3.prototype.getUri=function(a){return a=_5(this.defaults,a),FO(a.url,a.params,a.paramsSerializer).replace(/^\?/,"")};IC.forEach(["delete","get","head","options"],function(a){J3.prototype[a]=function(e,f){return this.request(_5(f||{},{method:a,url:e,data:(f||{}).data}))}});IC.forEach(["post","put","patch"],function(a){J3.prototype[a]=function(e,f,c){return this.request(_5(c||{},{method:a,url:e,data:f}))}});DC.exports=J3});var pC=U(($X,xC)=>{"use strict";var DO=nc();function Ec(A){if(typeof A!="function")throw new TypeError("executor must be a function.");var a;this.promise=new Promise(function(c){a=c});var e=this;this.promise.then(function(f){if(!!e._listeners){var c,d=e._listeners.length;for(c=0;c{"use strict";TC.exports=function(a){return function(f){return a.apply(null,f)}}});var SC=U((aW,RC)=>{"use strict";var mO=Ia();RC.exports=function(a){return mO.isObject(a)&&a.isAxiosError===!0}});var QC=U((AW,sl)=>{"use strict";var vC=Ia(),xO=Hb(),$5=mC(),pO=il(),TO=j5();function kC(A){var a=new $5(A),e=xO($5.prototype.request,a);return vC.extend(e,$5.prototype,a),vC.extend(e,a),e.create=function(c){return kC(pO(A,c))},e}var pA=kC(TO);pA.Axios=$5;pA.Cancel=nc();pA.CancelToken=pC();pA.isCancel=nl();pA.VERSION=K5().version;pA.all=function(a){return Promise.all(a)};pA.spread=wC();pA.isAxiosError=SC();sl.exports=pA;sl.exports.default=pA});var H3=U((fW,yC)=>{yC.exports=QC()});var Z3=U(Bc=>{"use strict";var e6=Bc&&Bc.__assign||function(){return e6=Object.assign||function(A){for(var a,e=1,f=arguments.length;e{"use strict";var a6=h2&&h2.__assign||function(){return a6=Object.assign||function(A){for(var a,e=1,f=arguments.length;e0&&d[d.length-1])&&(l[0]===6||l[0]===2)){e=0;continue}if(l[0]===3&&(!d||l[1]>d[0]&&l[1]{NO.exports=[["arbitrum","0xbitcoin_token","0XBTC",8,"0xBitcoin Token","3045022100d890d94d333e953fd31badd5992226928ee7ff2a05173d934d90bbbd9894e69c022079173f6cebf39828708d4a3ed066e4084c70d2d3114b320211469599ce5240f7","0x7cb16cb78ea464aD35c8a50ABF95dff3c9e09d5d",!1,!1,null,null],["arbitrum","aave_arbitrum_dai","AARBDAI",18,"Aave Arbitrum DAI","304402207c1355119018cd86e0c22db32355f49875f6711cf366da49ea2186c1a89ff01702207ce1c415450ca045292d77b2f74ae427738213d733c9cfb0eceea616decc1485","0x82E64f49Ed5EC1bC6e43DAD4FC8Af9bb3A2312EE",!1,!1,null,null],["arbitrum","aave_arbitrum_link","AARBLINK",18,"Aave Arbitrum LINK","3045022100f0eb497820729d644b95e895c17ff027341ee47fd0879791efad817de7c0ee080220455204303b7e59a0003d10ee69df86b1c0c0a0a04bd7d3d807c7ba388594bbc9","0x191c10Aa4AF7C30e871E70C95dB0E4eb77237530",!1,!1,null,null],["arbitrum","aave_arbitrum_usdc","AARBUSDC",6,"Aave Arbitrum USDC","304402207342353490b871d177de5bdf10a8df5561e19b01461ed9dfd1897540e978eea2022045f847f01112188e2bb4b4c9342997641366606267fef823851704b102e0be1b","0x625E7708f30cA75bfd92586e17077590C60eb4cD",!1,!1,null,null],["arbitrum","aave_arbitrum_usdt","AARBUSDT",6,"Aave Arbitrum USDT","304502210090947fc63f4e8a08bd0b2aaad6931c40cc9695e93e2d55ea1ce1205a27be20910220032e0c0d6bc7cd390b7801364fb551bc4f71f3dbb907317170f6ba0211d66b03","0x6ab707Aca953eDAeFBc4fD23bA73294241490620",!1,!1,null,null],["arbitrum","aave_arbitrum_wbtc","AARBWBTC",8,"Aave Arbitrum WBTC","3045022100d45d74b0d947bd806ccdd51a6ea623306ec15aeaa38e0dc87e29213a8195d9d5022047bb55ec345f7da2afcf8719e8b2bbc3db94f3e7d543e083a7d5e603ba2d3463","0x078f358208685046a11C85e8ad32895DED33A249",!1,!1,null,null],["arbitrum","agave","AGVE",18,"Agave","3044022070dd24f4cfcfc233141d3d399da41d9b82efb64411a7238c4b694eb46b29575502201fa8e29d41e33946ba76a2b73af207f97752a911c6e15855217df33d55dd7d3f","0x848e0BA28B637e8490D88BaE51fA99C87116409B",!1,!1,null,null],["arbitrum","ageur","AGEUR",18,"agEUR","304402205375af7e27e7517c96375be197f3ca01db3912862793e83a407f1b0049ff1f960220203bf949a5e504a2e560f74afda1c8e87ebe5ebc24f97a66a8c327561e719052","0xFA5Ed56A203466CbBC2430a43c66b9D8723528E7",!1,!1,null,null],["arbitrum","alchemy","ALCH",18,"Alchemy","3045022100a9e0db24d04c2a07aece29855e044ed497893ea52adaca5a95e1428cd46db1d102207f6876900c31c27c69e974c9c6757a81b4d271ed0a841f71011d8f9e379535da","0x0e15258734300290a651FdBAe8dEb039a8E7a2FA",!1,!1,null,null],["arbitrum","aluna","ALN",18,"Aluna","3045022100bf2d5f6af51be4730a99dc88a81c2202550ce83f9fe41a7c2f75f374c8755f89022079b2e51774ae7e4609c8c8c788f96921964b61c8129cc1c9148ee090aa589f31","0x9b3fa2A7C3EB36d048A5d38d81E7fAFC6bc47B25",!1,!1,null,null],["arbitrum","antimatter.finance_governance_token","MATTER",18,"Antimatter.Finance Governance Token","3045022100c68c3ed3dce66f0765baefebcfffe6bc18b724e2642f39912d3a496373e4e4ee02203c43b08cbc7dc8b832e3403ba506fc86577a50b8f36f8a5c506bd34fe2271321","0xaaA62D9584Cbe8e4D68A43ec91BfF4fF1fAdB202",!1,!1,null,null],["arbitrum","auctus_token","AUC",18,"Auctus Token","3045022100b61429b246f26574d4f3162d05d63d45f78ab24f3b61a80b9b91abf60a0a98a90220149057d9913f297d5fdd0e9f6c2bad51b0d4c1baeff38964cafd0f443ed658b8","0xea986d33eF8a20A96120ecc44dBdD49830192043",!1,!1,null,null],["arbitrum","automata","ATA",18,"Automata","3044022017173d4e2e2747c7216ec77666017f2031dcb2819072825085834f98839a1d660220554c5a750e769b9f0d89cbbca448dec590b1a879ade92b439c674efe638ed673","0xAC9Ac2C17cdFED4AbC80A53c5553388575714d03",!1,!1,null,null],["arbitrum","bac","BAC",18,"BAC","3045022100b0f3f1de1f00a913bc115df9ac66504dd7e24a67a824c3c516fef516bf57a46402201134efd450a7ecb502e19d7506bef78072baae1502d4f4366bc7fc3a099dd76b","0x6F67043201C903bbCBC129750CB3b328Dd56a0a5",!1,!1,null,null],["arbitrum","badger","BADGER",18,"Badger","3045022100fa9d3949f075b217de5a0b454fe358e04faff405b609533787f7d4294d967cbe02207bf603c2309c2b0e53e5d6081d8016e8c16de45a4a7f69cab91aa3ab56a59404","0xBfa641051Ba0a0Ad1b0AcF549a89536A0D76472E",!1,!1,null,null],["arbitrum","balancer","BAL",18,"Balancer","304402201710c13f11e099e071b7a2e03e322f45420ffc2987b222dc74e876bed6fe557b02201cce25671ab7a3e1765e7f670e71e2e031bddbc3e7e829dec74378b64c1563f3","0x040d1EdC9569d4Bab2D15287Dc5A4F10F56a56B8",!1,!1,null,null],["arbitrum","barnbridge_governance_token","BOND",18,"BarnBridge Governance Token","304402206ca3488c9158fb38f75983aa759d06cb48927c1011f518660ecbbb5615d8b646022059541493bb605c9f88aedd1a7fa9df07d25d98e751147616591dbb39c2c6a106","0x0D81E50bC677fa67341c44D7eaA9228DEE64A4e1",!1,!1,null,null],["arbitrum","buffer_token","BFR",18,"Buffer Token","304402204e69812bbff37accb0a3fabb362e13613717410ca707c0566201f0eaa060e10a0220554e1a907c26cb9dd55c741643f550fec361932af029c482560d90b1ad3ad34c","0x1A5B0aaF478bf1FDA7b934c76E7692D722982a6D",!1,!1,null,null],["arbitrum","cap","CAP",18,"Cap","304402201e761c87e92703cdae696f625b92f74c48802c8efcc0feb4309484417df99eb6022022d7585df2e1db1ad64198ad5bf3f4fb05e5313e6e0cb227890f8bd5eb93ecc6","0x031d35296154279DC1984dCD93E392b1f946737b",!1,!1,null,null],["arbitrum","cartesi_token","CTSI",18,"Cartesi Token","304402204850e5fff676403e2611ef9037b74c0013bb40311347fb87c5e0ebd649c72f9f022031594053e787c7082d54eb3758bf5e2adcd355ded840dcb33ee64b26e9f3bdcc","0x319f865b287fCC10b30d8cE6144e8b6D1b476999",!1,!1,null,null],["arbitrum","celertoken","CELR",18,"CelerToken","30450221009d932fc160883e2240967e3b65b821bc20120407bab5617123fa6758f45f80670220169e61d74e4efe10bc334730d82fbf766f33411035a9827e7fe6f06d5eb4d3a3","0x3a8B787f78D775AECFEEa15706D4221B40F345AB",!1,!1,null,null],["arbitrum","chainlink_token","LINK",18,"ChainLink Token","304402203281b0e971bee77e0e6ce0f8a03ffb9453b2bc793c3d13e7e713328e1a50f1fa02203e128f1ff4dbff6941ef1a78d06cd6e821f7610bef619835c21b71893e1dc0c7","0xf97f4df75117a78c1A5a0DBb814Af92458539FB4",!1,!1,null,null],["arbitrum","compound","COMP",18,"Compound","304402204902db631f8bb7a4e570eeb33536aa7a7e86b1fbd2ab6b1cd9931dfbe39cd4bd022035220220331337bae50f14e997a8918fd8b95600d0102d736ea189f002e4ba69","0x354A6dA3fcde098F8389cad84b0182725c6C91dE",!1,!1,null,null],["arbitrum","connect_financial","CNFI",18,"Connect Financial","304402204fcd873c4debd4fb87afcf46b28917f906a83e4964a4d8183bbe80bea181c4630220014a5303ce3c7f27b7395c803351a48cabd4552085b0a597a75abf7379d6b6a4","0x6F5401c53e2769c858665621d22DDBF53D8d27c5",!1,!1,null,null],["arbitrum","coti_token","COTI",18,"COTI Token","3045022100cf55c40b3bd462fdfb4e873bf56a6e64256750c54d5a070d9fde3104638fc29e02204cdc402dcb2e323e390f104b2c2fd9b619e6c13a5cce6fc01d35f40051580284","0x6FE14d3CC2f7bDdffBa5CdB3BBE7467dd81ea101",!1,!1,null,null],["arbitrum","cream","CREAM",18,"Cream","304402205b117709ccaef0aaf958d6d20d2a1e7bb2175574444b26c9140f7aa1aa9a996f0220275ea0162f757098a625239bd8c7ab7690c61f75a3faa51da6a7f527e80bd7bc","0xf4D48Ce3ee1Ac3651998971541bAdbb9A14D7234",!1,!1,null,null],["arbitrum","curve_dao_token","CRV",18,"Curve DAO Token","304402200c9a085e6df1e8daf16cd5a95501ba8d53f0e3db818420e07e0b1c49846d851d022069ebaa1c324454f80adfa3312abf399bc8f482d512e240e0f6a87a573a6385e0","0x11cDb42B0EB46D95f990BeDD4695A6e3fA034978",!1,!1,null,null],["arbitrum","dai_stablecoin","DAI",18,"Dai Stablecoin","3045022100b1df298841ea77641c6e42b96cd5545c41b8a2ea4f0ec1c14b1faedfbb30dae702204659aa24f4471f48801afd0a74d60c25361f4c4e348c2e78c6aae6871e3f18bb","0xDA10009cBd5D07dd0CeCc66161FC93D7c9000da1",!1,!1,null,null],["arbitrum","decentralized_usd","USDD",18,"Decentralized USD","3045022100e8fd9195606c989f9470e6209a5380c62b786c6444d6eb787d841ccc3ea7408e02206e94568f19b1d729a5a2bbbee3f86af8bfeb34421b318bf3cea334cc35929c9d","0x680447595e8b7b3Aa1B43beB9f6098C79ac2Ab3f",!1,!1,null,null],["arbitrum","deri","DERI",18,"Deri","30450221009d93401d1f88b8d1520ce8db96a4b9d371da0b87a4a2452c4185eb7efbd620a702207b8b3a236fbaedaf09ac82e2042aca560934976e313faf08b1be966bef0c6c99","0x21E60EE73F17AC0A411ae5D690f908c3ED66Fe12",!1,!1,null,null],["arbitrum","deversifi_token","DVF",18,"DeversiFi Token","30440220673b1aa9c9b16b9f93da89925b64eecc6bfe5b895fca3ec18a34bf84ae42aed2022007167ad941acb99cbe2bb3e55d1b35b6d37dd2d712a7e1b9e4db1c5c69f49c8d","0xA7Aa2921618e3D63dA433829d448b58C9445A4c3",!1,!1,null,null],["arbitrum","dforce","DF",18,"dForce","304402203331ffe2c02a881a1fe1fb151ee3b911526687a676cc63cf65a3dea78df5f29202205082e09d0548cb1c7117b8bdfe0c8eb725a9ed07aa58bb3c9c11c45bb5cbf51c","0xaE6aab43C4f3E0cea4Ab83752C278f8dEbabA689",!1,!1,null,null],["arbitrum","dfyn_token","DFYN",18,"DFYN Token","3044022048de9a04d2295cb4ba05e5bd0d90be3f6573c6ec7880aff36234d490f36a76f402204fa8c26a48076667f4b2f32494253ed3525081662504d890f78b65b0ed67f1fb","0x1D54Aa7E322e02A0453c0F2fA21505cE7F2E9E93",!1,!1,null,null],["arbitrum","diatoken","DIA",18,"DIAToken","3045022100f00e5323e68a319af5ceda62a35163662c8e314849166062ba54f767637489d802207d291aa9dc02397ee252d6005b2e317f67fcb33c4bcf268b48a9be3c8dd4082e","0x39f91452a6E9994762876e1EDd87Be28a46d5c99",!1,!1,null,null],["arbitrum","digitaldollar","DUSD",6,"DigitalDollar","3045022100f405fe9896683e8943b290ea7fc844f5fe7bf640b7594a8033de4fb595145820022075112a128c7227fa971d271df4e7a9b0cafc7169edd444029290f13cc03c220f","0xF0B5cEeFc89684889e5F7e0A7775Bd100FcD3709",!1,!1,null,null],["arbitrum","dodo_bird","DODO",18,"DODO bird","3045022100fc4d6bfe36015f05188f4e3967d04c066ac81488b3d489bbdf55d95c2da183ea022064474eb80a3902d548a3551ff53ab4ce8e40a7bc4e1fbecfbe0b614aa21d66e7","0x69Eb4FA4a2fbd498C257C57Ea8b7655a2559A581",!1,!1,null,null],["arbitrum","dopex_governance_token","DPX",18,"Dopex Governance Token","3045022100ca87173cb092feec5564834fd368fdaeab3720ca415cb3fad85bdc93dcd46e2b02202a41a19239c03eddb0a88f976b22c5afd3545098b363f1e713180cf0fd220db2","0x6C2C06790b3E3E3c38e12Ee22F8183b37a13EE55",!1,!1,null,null],["arbitrum","dopex_rebate_token","RDPX",18,"Dopex Rebate Token","304402207c7304cc0751acbb83bf687642a4c2235832772267b62ccafa9ff41a9d68abf9022011d9b2e8fcc2893640aa4481aab274c5bcefa756c5162788ed2cae27ffa0b08c","0x32Eb7902D4134bf98A28b963D26de779AF92A212",!1,!1,null,null],["arbitrum","doubloon_token","DBL",18,"Doubloon Token","3045022100eda19bbd7dfcc477cd3151b5e0ba75561dee7aeb6501dbf90b05cb42b62f4447022007373eff12f7995d3fed298a2bd0366e51b345bf6b3d356d112b3b434792fde6","0xd3f1Da62CAFB7E7BC6531FF1ceF6F414291F03D3",!1,!1,null,null],["arbitrum","flux","FLUX",18,"Flux","3045022100c241ea2c23d3f029a1e8ff3f6bd3c526ed73ee084868acb80a93f5d5099dc259022071b27e08d29c39e3656e678d9973909fc6c7aae11af4a985699e0852205b3eb5","0xF80D589b3Dbe130c270a69F1a69D050f268786Df",!1,!1,null,null],["arbitrum","frax","FRAX",18,"Frax","304402206186b9d44bff1aa192f71f9215471cf746f4125bcc8814762b6ad93791bb223602207041932e31838b03a60548a69b6055564265f3007062aecab82b5768b20e21c3","0x17FC002b466eEc40DaE837Fc4bE5c67993ddBd6F",!1,!1,null,null],["arbitrum","frax_share","FXS",18,"Frax Share","304402201bee9606fa632b34f5272021a86d7e818b017efdd25cee3aea0353a018489e44022077f013b0165cb9c3987258e197c074930fbc529ddf22483f22f37178e369df5d","0x9d2F299715D94d8A7E6F5eaa8E654E8c74a988A7",!1,!1,null,null],["arbitrum","fuse_token","FUSE",18,"Fuse Token","3045022100c4b0bb53bc8e9d4ca34cf17ac2c113c6eeadc7a9859993912595e6dd351ca6f7022022f94c3005825cf43ff8057835f98c6ac0a806a10dab2d26c48ef3265e1da60e","0xBDeF0E9ef12E689F366fe494A7A7D0dad25D9286",!1,!1,null,null],["arbitrum","gmx","GMX",18,"GMX","3045022100da3e49d3b3ba279d6770887945b07164384b3fb4cb202f3ba6659a37b23eba8602200ee70de31f76a99b55ad61c2ef21d51ba5298dda28a2cfd0958363f647ba8c90","0xfc5A1A6EB076a2C7aD06eD22C90d7E710E35ad0a",!1,!1,null,null],["arbitrum","gnosis_token","GNO",18,"Gnosis Token","3045022100a91c8a0e187285542269308ef917f02a3966fcafc4956412557887221c3d491b022022955fdd9854b80ed1688268cfb776f5dbc937337f52be8c81a825e12bbfd64e","0xa0b862F60edEf4452F25B4160F177db44DeB6Cf1",!1,!1,null,null],["arbitrum","goblank_token","BLANK",18,"GoBlank Token","3045022100eb8990e8a3083e537cf8ce35068c3c42f1039d9518dabd815f62bd9dad9df01f02201224d30574ec2ee6c3194fb1873afa7da6401d08a51310f695085e32b0afb1c0","0xA5eC9d64b64b8B9E94FEaA7538c084b38117E7Ba",!1,!1,null,null],["arbitrum","governance_ohm","GOHM",18,"Governance OHM","3045022100bc9b0ab6e412a8d8c2cbe1ea861b886cf7b6a1e3281f1553a7aeb4786a9771d502202b11ee03e31c69a345ea725470a31580a2bceeba7c1b31c381611fc042228f7c","0x8D9bA570D6cb60C7e3e0F31343Efe75AB8E65FB1",!1,!1,null,null],["arbitrum","govi","GOVI",18,"GOVI","304402204a89e7ca9990e762e2641f3d87aafdbe059b9eb89d57ed5a2e429f2bb14b2d60022073a09ec27db49990103360035ae4c8f7bae41754bd0dbdf162f3ba3fe8c2fe25","0x07E49d5dE43DDA6162Fa28D24d5935C151875283",!1,!1,null,null],["arbitrum","graph_token","GRT",18,"Graph Token","3045022100f27a5b5d68ceb1f2d3b709b58dd52394ca621a30e5e5670a134bd4da0554b46102203b9e92b985deb0b6573620479df5b6923e5c2091ae06cba5bd429d9a7567aef3","0x23A941036Ae778Ac51Ab04CEa08Ed6e2FE103614",!1,!1,null,null],["arbitrum","handleforex","FOREX",18,"handleFOREX","3044022006130f1aae85b27b53435d3107b99755ff008fdc2d41a27cd30b4176e8cd04f102207e8dee57d7fac97c8f4228b110d806a91a8e8ed025a678c86ef8a61b39d6d9bc","0xDb298285FE4C5410B05390cA80e8Fbe9DE1F259B",!1,!1,null,null],["arbitrum","hop","HOP",18,"Hop","304402201029d33108e95d9462ceb49825f67556be3edc418483b7618b50f1e7084943b102200faaa53d002f77ea4679be245d723cf5ea042bebbbbf24accf3a5c5af9342fa5","0xc5102fE9359FD9a28f877a67E36B0F050d81a3CC",!1,!1,null,null],["arbitrum","hundred_finance","HND",18,"Hundred Finance","304402203e36cd8ffde04b13f9d7ca36459d80f761af6d666350fbfd96e1d945f8bff5df0220546f0827628614529f7e1dd7e24d018b57738062371db947f598b882a5c7ea93","0x10010078a54396F62c96dF8532dc2B4847d47ED3",!1,!1,null,null],["arbitrum","indexed","NDX",18,"Indexed","3045022100cb2b2cf073758fbecdcbe517956c423a13c82cf5b3803a45ac4181615557c4b6022056dc07dba4fe2fc6965a7d6f2aa147006a9b812d077818e1e4f5ed8f4114452a","0xB965029343D55189c25a7f3e0c9394DC0F5D41b1",!1,!1,null,null],["arbitrum","kyber_network_crystal_v2","KNC",18,"Kyber Network Crystal v2","3045022100a3833dcb9cff6fa568dc5725b377181b8606769a81de68d1db93903f15fc55ed022070bb1c90991786620f556ffeb8413e860a8fe270c17946303b932699bb2669ea","0xe4DDDfe67E7164b0FE14E218d80dC4C08eDC01cB",!1,!1,null,null],["arbitrum","lido_dao_token","LDO",18,"Lido DAO Token","30440220049019c0ede4a37074adb2680c24a6204807f1e3e96a43a7f7871d7ad204db210220799afb5adabfbfb6ee9bd4ec2aeac04b0d03f29f99dedbd317b799da7bf97933","0x13Ad51ed4F1B7e9Dc168d8a00cB3f4dDD85EfA60",!1,!1,null,null],["arbitrum","livepeer_token","LPT",18,"Livepeer Token","3044022072e1dbbf5f43c199ce458338cd3d4068c04feac4e3c5c8a612b41e4b7d31b2ef02205dcdddee09dd84229684d54f3e1ee3e95b6564a8d4298c44570707caabb70381","0x289ba1701C2F088cf0faf8B3705246331cB8A839",!1,!1,null,null],["arbitrum","loopringcoin_v2","LRC",18,"LoopringCoin V2","3045022100db687befd606c10cb26a55b522dcfd351e1e4fc821caf05f9508d5e9726d765202200c5c4954bdafceade1a4552f601e4229467bbf321eb3f0efc62f6d5a8219ed6a","0x46d0cE7de6247b0A95f67b43B589b4041BaE7fbE",!1,!1,null,null],["arbitrum","lunc","LUNC",6,"LUNC","3045022100db41b695c87d3299a7e5e794b70f11f7efaf7c0ccacc3efadbdd06d35705a87402201aab40cb9aab4f5941558c191ffbb66957adc87574e321fce531c5c0acfe36b8","0x1A4dA80967373fd929961e976b4b53ceeC063a15",!1,!1,null,null],["arbitrum","lys","LYS",18,"LYS","304402206554feca0ebdd804f85f6279a123d79cb428ac8f95d96bdf7819ffb02477250102200dde358a797d33b4d424f87e0d97f3a20105f32b28e2c02d0fa6f98030046cb4","0xa4f595Ba35161c9fFE3db8c03991B9C2CBB26C6b",!1,!1,null,null],["arbitrum","magic_internet_money","MIM",18,"Magic Internet Money","3045022100e37377e1bd24a918a9d4d400f71a0858374bb349e15e07e4638ad0e1212905ec02204782a822958803cc93caa8ce8de2f8df7057e075bac34992a5f4662ba50f61ce","0xFEa7a6a0B346362BF88A9e4A88416B77a57D6c2A",!1,!1,null,null],["arbitrum","mai_stablecoin","MAI",18,"Mai Stablecoin","3044022001c1ee119f2239001db6cfbb62eecf20ebca8d26f647e84053bcf16f204e37b302204ea53396e1117fd0b87df16f168c9bd13ed2d62d7d3584f08c6d321183735d8f","0x3F56e0c36d275367b8C502090EDF38289b3dEa0d",!1,!1,null,null],["arbitrum","math_token","MATH",18,"MATH Token","304402202c14d8dca6605139e6d892f358b5d408a405d9a9f6f515ff6520234946572da202205296ce4ee746e6890b1780e704476a38a3580ce0b772ae81d4ecaedc4a8906fc","0x99F40b01BA9C469193B360f72740E416B17Ac332",!1,!1,null,null],["arbitrum","mcdex_token","MCB",18,"MCDEX Token","3044022056aac8809e082bcbb3603443ef5c039e3aae4b949cfd11bc95453d57077064c00220035b3206384c725d8f43bc1e3f3ff095892e5dd48a505598bfd37483845dc20d","0x4e352cF164E64ADCBad318C3a1e222E9EBa4Ce42",!1,!1,null,null],["arbitrum","meta","MTA",18,"Meta","304402201188bae809382b6fcf751ab35e7a71c65eb99ead4eb087d28eaf6a91b7335559022032c240ee99eb331361243ec78a5312e53107cc84b7483d4b79d3359c9ab5089e","0x5298Ee77A8f9E226898403eBAC33e68a62F770A0",!1,!1,null,null],["arbitrum","minato","MNTO",18,"Minato","3045022100d3f7cb2f63d3e463a46cc89d28e75c4d5ffbb3f0db15eab738436304c047b72302207b5587b8b0587813900e25de979dfdfe469b9e7b52cc7dccbf58fd443fb3143e","0xF0DFAD1817b5ba73726B02Ab34dd4B4B00bcD392",!1,!1,null,null],["arbitrum","multichain","MULTI",18,"Multichain","3044022032c0ec3cd65c246f48c0b6fc49c74f39a3705c485bf206923afaa9264eb6d1fb02206fa1bcb6da4a137b78c5c093a3ef784c7f727197047b0480054d88716f88be60","0x9Fb9a33956351cf4fa040f65A13b835A3C8764E3",!1,!1,null,null],["arbitrum","o3_swap_token","O3",18,"O3 Swap Token","3045022100e3546414e1a86d0fc275a86ee81c5d41b502aebc09b9745f7f97532bc77161cb022066770231e819af9b2256949f78238a2e526d52c5a62042202bc6bb9c67e8ef58","0xEe9801669C6138E84bD50dEB500827b776777d28",!1,!1,null,null],["arbitrum","olympus","OHM",9,"Olympus","304402202fd8edecb87a3e5bed696bcdecea8c162542dbf9657435d9d7b928ae30f4e5bb02204bdc4e8cd34ea64d415cbdbac760409d0143048fc28f266c6a831fe4c9d459fc","0x6E6a3D8F1AfFAc703B1aEF1F43B8D2321bE40043",!1,!1,null,null],["arbitrum","omicron","OMIC",9,"Omicron","304402203a957e99dbc7dd265bef91c15375d5cb7c6380ca4a313f904dca0bf729ae5b85022071d389aa3b25da552b5ac009865b07a15e8a20d84182210c012bdd0a78fabf9b","0x86b3353387F560295a8Fa7902679735E5f076Bd5",!1,!1,null,null],["arbitrum","ovr","OVR",18,"OVR","3045022100e99cfc8476a36df2d1e0686d296c2499f6d11d15f052cd40e8b277e22474d1a40220396b3cca789f72c1ba2548a2450b9458803f5de0ebe47a338fca065a58277ad5","0x55704A0e9E2eb59E176C5b69655DbD3DCDCFc0F0",!1,!1,null,null],["arbitrum","perpetual","PERP",18,"Perpetual","30440220615f185b947a877419fa9a4563a991358b405010636af79a51f12ef8d8f2dd890220748c8299ec6432ae9d2210d8c6c353c9ad453fedeb51c220222a0a5a45758e3c","0x753D224bCf9AAFaCD81558c32341416df61D3DAC",!1,!1,null,null],["arbitrum","pickletoken","PICKLE",18,"PickleToken","3045022100c5ff544f04715c3986d60fa2bf5a882edbb545695b0e1d52dce53e3e51ae997302205a23da4cafb79b0cceebb6c6ab4c48de28eb35450e0720457b300ba5cbb20021","0x965772e0E9c84b6f359c8597C891108DcF1c5B1A",!1,!1,null,null],["arbitrum","plutus","PLS",18,"Plutus","3045022100b2252e332a8c8acd3f0fcb85e8e507e03a5fc6aea001a2c1cb844e95273fde14022011592dc70ef2156c994921109dae3f6a090a82db5473c7d20914d5b5e4adfe94","0x51318B7D00db7ACc4026C88c3952B66278B6A67F",!1,!1,null,null],["arbitrum","popcorn","POP",18,"Popcorn","304502210098da921d78f40864c40f8a2b36e29b7f70fd6b2621d49de5d42da03e38d453c70220576ac86b26d6280eaac9555eff782fc711d5c6ce6d528752a1dd7cf5fe5c537d","0x68eAd55C258d6fa5e46D67fc90f53211Eab885BE",!1,!1,null,null],["arbitrum","ptokens_btc","PBTC",18,"pTokens BTC","30450221009a53d8768fb6c81d4861e83ef72bb5742477974bc0d52b5520d38014096cea9602201af139e75f7c9962a16cee968b6cb1af36eadc698235596fe708bfee3afef4a3","0x115D8bF0a53e751f8A472F88D587944EC1C8CA6D",!1,!1,null,null],["arbitrum","radiant","RDNT",18,"Radiant","30440220473ecc21a91f78c76799f4260c98a53aa72044a32289f649027c7cf01eac434e02201884669d4ca332918f20514b95701fc71f11dd68be2b37cd75caf130500b5119","0x0C4681e6C0235179ec3D4F4fc4DF3d14FDD96017",!1,!1,null,null],["arbitrum","rari_governance_token","RGT",18,"Rari Governance Token","304402203ed2ff1c0fb5032b72f7f73508a9c763e752d52d1f1196003217bd13ba640691022075589a528d6ab817b5b44b30bb1a41426efbd717fcd17178dd5df9cb1994aa27","0xef888bcA6AB6B1d26dbeC977C455388ecd794794",!1,!1,null,null],["arbitrum","roobee","ROOBEE",18,"ROOBEE","3045022100cd8b73a53cbeba9bcf6ca8ce66add8c26b2aa3b1c4ebcb2aea4bee2d5b1ccc7902207b3e8cc42a0ff4a90bc16c3012d6090bf7348e679b943191141c2d0c08ad682b","0x3BD2dFd03BC7c3011ed7fb8c4d0949B382726cee",!1,!1,null,null],["arbitrum","route","ROUTE",18,"Route","3044022026aa75b7b3e67ed05edfb42b8d1de9105e162af76a4ed827fab06b5fc7466c7602205991c1c78853f41ab8910f027f5c1e86b08ae1e210ea024de448ce271d774bc2","0x5298060A95205BE6Dd4aBc21910A4bB23D6DCD8b",!1,!1,null,null],["arbitrum","spell_token","SPELL",18,"Spell Token","3044022027d61ea6a63c01256fe82b0e1653045f25321f756fe25ec9b492896f9620baab022002785e8e0ae247362ffac3a7e3a29a108dcae28c6a3cb8f2b08ff9b32b1ae488","0x3E6648C5a70A150A88bCE65F4aD4d506Fe15d2AF",!1,!1,null,null],["arbitrum","stake_dao_token","SDT",18,"Stake DAO Token","3045022100c81ded49ae883ad076a3d7d770f6fd0091b081e04bf3e654fb2bd7ca0f59e01c02200b0edacd2adedef9dd13d968e7bc712913e3899c09804983d4b0dc9427a61d3e","0x7bA4a00d54A07461D9DB2aEF539e91409943AdC9",!1,!1,null,null],["arbitrum","stargatetoken","STG",18,"StargateToken","304402200a9fad9e077609de292580a191b8e2adfc85494231511e1d68ea34040ef4722f02203173b94d974093815c741b17daffbfc582732d459fbf47bd0e4e7aafce421489","0x6694340fc020c5E6B96567843da2df01b2CE1eb6",!1,!1,null,null],["arbitrum","strips_token","STRP",18,"Strips Token","3044022024d08368a08d75bf32fb46cf98adf82c3e53601d98ca44e5c8cb8a6de7542a5e02206e98a0cd85e0615f0754a9e8a70fda2f9d1463c7f3e067a35ba0391e3afeb29c","0x326c33FD1113c1F29B35B4407F3d6312a8518431",!1,!1,null,null],["arbitrum","sushitoken","SUSHI",18,"SushiToken","3045022100f706ff2e0eb44ee304385306835b7805e4ed07e2a7d6ea9b91a14e9b8329f0d80220206ea2f1a76535fcb6101d4a21fb7926433beba61e9b93fe744b41b209875472","0xd4d42F0b6DEF4CE0383636770eF773390d85c61A",!1,!1,null,null],["arbitrum","synapse","SYN",18,"Synapse","304402207f458b419f1f96da996206ad41ec11408c4db680ae61b685513635073fdae8ce022056e607dc078052568900c2134b36b927d8a80ad580e17b5074f1370d5df07fe6","0x080F6AEd32Fc474DD5717105Dba5ea57268F46eb",!1,!1,null,null],["arbitrum","synth_susd","SUSD",18,"Synth sUSD","3045022100d1011131aa05c7187abc9f61537b8377ead95a0da4428a577b7d790ce8c939590220131311fdec582512a9f7e31b6d77f52cc438717087a73c7a47fa250b61e587f6","0xA970AF1a584579B618be4d69aD6F73459D112F95",!1,!1,null,null],["arbitrum","terrausd","USTC",6,"TerraUSD","3044022078608a986fdfc909a86c40fabf0f65b5b70e883c0607279bdf25618213674a500220199d85e872661a29bf7df891a187e01c7a45741150686c01f484ef4d00cdb629","0x13780E6d5696DD91454F6d3BbC2616687fEa43d0",!1,!1,null,null],["arbitrum","tether_usd","USDT",6,"Tether USD","3045022100d5638d26cd46b06a42ad3f80bae4108ea2a87fb254bcaef7b013701c95cd989a02202f0dd3ac4bc2b5a3500b559f75742e650961cb1fc47aea2b079ca6e62796c336","0xFd086bC7CD5C481DCC9C85ebE478A1C0b69FCbb9",!1,!1,null,null],["arbitrum","tokenlon","LON",18,"Tokenlon","3045022100cc3b5afe20bdf552a9b447ea7b12b8a6bc85e0f8343cec380fff1959372dc7df0220596f48ece9fc1cbddeb93567ad83fab4fcb6f4b6e56b0499785888c8685f92f3","0x55678cd083fcDC2947a0Df635c93C838C89454A3",!1,!1,null,null],["arbitrum","trueusd","TUSD",18,"TrueUSD","304402204985ecf1083353e34ce179911351c6b226087c4660ff6c1c6c3aa5b88aece4020220345a42efeacdd57bbfa7efdbf615051a28dfddd142bd947ad41ce42733f43595","0x4D15a3A2286D883AF0AA1B3f21367843FAc63E07",!1,!1,null,null],["arbitrum","uma_voting_token_v1","UMA",18,"UMA Voting Token v1","30440220013fdcbd451bde26244004443d0fd7ee4c1538c3192902166629ee8695662e64022007f7e6d4d29b65af2f33203d91319797a634cf0f17b9cb2e04379926472b1721","0xd693Ec944A85eeca4247eC1c3b130DCa9B0C3b22",!1,!1,null,null],["arbitrum","unibright","UBT",8,"UniBright","3045022100b284a89930d173f39f9d7c69cc4780050c40b3b2f9a584c66bc2c33c8869be83022077f82080e2a8a309b0767055a461f021278c27b3547309d96cfee8855c231d7a","0x2aD62674A64E698C24831Faf824973C360430140",!1,!1,null,null],["arbitrum","uniswap","UNI",18,"Uniswap","304402201df92820021fbfb822a2f47816aa424d1e267c06952c5d5fab5d70bb9ba57b2902202345732f3fe479ed5d847a38fe20b9d431fc34b17e540cde2b1bb10691039bdc","0xFa7F8980b0f1E64A2062791cc3b0871572f1F7f0",!1,!1,null,null],["arbitrum","usd_coin_(arb1)","USDC",6,"USD Coin (Arb1)","304402205376478894c6aa5a69ae1a4468be9b2f692c932cc8db0e81a3e0e474b354a52a022078c3f92682896dac4ff3fac10557ee7a6358e3e8874bc9f144956cccd7a6516d","0xFF970A61A04b1cA14834A43f5dE4533eBDDB5CC8",!1,!1,null,null],["arbitrum","vesta","VSTA",18,"Vesta","3044022036533ca1a423442eea4f457155ff01216224d7896838378bb783fdf2b4782ea702205946c33ee0eb249278ee21992edf7c5e4b560eb30f0c385f844c803bcc21a2b8","0xa684cd057951541187f288294a1e1C2646aA2d24",!1,!1,null,null],["arbitrum","vox.finance","VOX",18,"Vox.Finance","304402207c138865d12481eb64082f6146873d15454cf0890d05bd4ff44b96e353d5653e02200f7081d3a536a868a46aea0d43fb7e6356631a54bf0934559c97f8f7f35a4734","0x2eD14d1788dfB780fD216706096AeD018514ECcd",!1,!1,null,null],["arbitrum","wrapped_btc","WBTC",8,"Wrapped BTC","3045022100849bfa49d4a67d85c36f9a628d0fb0a5faff869da00caa58f563d8859420850102201c27dbbbac2f602b6f9f9e34ec629823ed151cd26cee6ec26cdf05bfd09c146c","0x2f2a2543B76A4166549F7aaB2e75Bef0aefC5B0f",!1,!1,null,null],["arbitrum","wrapped_ether","WETH",18,"Wrapped Ether","30450221008f9b6557d2c481eb97cf2e34779a3e0ba5cee142b92ce259e80709d7f2c3c59c022035573a9bb0a202d047dbe09b9816328f86b8d97dc319b3bc61f3470d6bf857a6","0x82aF49447D8a07e3bd95BD0d56f35241523fBab1",!1,!1,null,null],["arbitrum","xdollar_stablecoin","XUSD",18,"xDollar Stablecoin","3045022100947c4e01830bce52cab0400f3e1f667cdd514c54689429c79335b84da1c646a402207c0276cff91b06a6cbb74714bd690492e7815d08562ad37aef557792f1f2dd8c","0x3509f19581aFEDEff07c53592bc0Ca84e4855475",!1,!1,null,null],["arbitrum","yearn.finance","YFI",18,"yearn.finance","304402205e5ad6b14059a9a238365631854e1f673cad4cc48d0c0b6448b7926185e538790220472ed7e2f861d4ef53c061079d93f03ba164d350c40b30b0ab9cd63f3725db02","0x82e3A8F066a6989666b031d916c43672085b1582",!1,!1,null,null]]});var NC=U((lW,OO)=>{OO.exports=[["bsc","(del)","DEL",18,"(DEL)","3044022038f007514ce614688380b7b26d73cebe03238aa5cfe6fc20500e912790605d0202203fde1ce3f25acbcf0c2f397da73281a247fd5a6a2364f5e95adaf927de9b8654","0xec6432B90e7fD4d9f872cc5C781f05B617DB861E",!1,!1,null,null],["bsc","10set_token","10SET",18,"10Set Token","304402204ca3fe2be747bf1bcd646555407e72887f6cf5fddaa94bb3fd360b17ebf04d5f022006f0379f6da6453cbea131d7ab9ed74268841625fe3143fa47a33be99c4baca5","0x1F64fdAD335ED784898EFFb5ce22D54d8f432523",!1,!1,null,null],["bsc","10set_token_","10SET",18,"10Set Token","3045022100f9e5f2228abe90784708db5f06d5b32156db9448f49e5bb84201f07804b80e4d02201182823dedf4ae112b1329ffee6a1246c8fd13532c86da7c58ceaf29b8afbe5c","0x1AE369A6AB222aFF166325B7b87Eb9aF06C86E57",!0,!0,null,null],["bsc","1inch_token","1INCH",18,"1INCH Token","3045022100f458aefa96e25e6cb5a94844e2ed97b44423e8ffcc9a7d5c58b4c3c06940363602206f0abd560f43bb48a34c65d3bb405ef0dcaaae6ad1929d3944188cd884968a75","0x111111111117dC0aa78b770fA6A738034120C302",!0,!1,null,null],["bsc","2030floki","2030FLOKI",4,"2030Floki","304402203386107b2e6df4c2990e8b7ab14c2007e367f3adab828b53905e2b80c6fafd5a02202eaefe459911f8ddea5d2b509dd79662dc75ca0f1713a5a68656e54edebe13fc","0xa35d95872d8EB056Eb2cbD67d25124a6ADD7455E",!1,!1,null,null],["bsc","99starz","STZ",18,"99Starz","3044022003c8daab80248f8f6edb5fcc4870723727f4a90f95881371ecd00e1db9a480ce02203b9c0f5de616465cb3b60f7ddbcf8b6949d0bf3d08b317f4073713d454e76461","0x7FE378c5e0B5C32AF2ecc8829beDF02245A0E4eF",!1,!1,null,null],["bsc","abettameta","BETTA",18,"ABettaMeta","3045022100823baf1ef489c5eebe35edde0ed3745af73047ee131fcbba1bdfa2eb869fe0220220623680665ca4ed2dad84768a05b9ebf6461f9957bf3bd1b10aa73877a10d3500","0x337625f6063b61365354456f66e3Fd0436F74a52",!0,!0,null,null],["bsc","accel_bnb_pre_sale","ABPS",18,"ACCEL BNB Pre Sale","304402200d5a316c7d00e41dfb34fb55d8ddabc919c1975404398deb00db35cdbbb8fc5502200541076307d50200e93beee541e9bd29fca71b4f52c3f964c4f2e9379f42d90b","0xBaCc6021b4Bf2839B479b1624B50fe53175ea3C9",!1,!1,null,null],["bsc","acria_infinity_token","AINF",18,"Acria Infinity Token","3045022100d8e4750e9795ebcb7f6b7dc852837d011daefcc18399eaf3c0036b24dde07a93022026749318a21d876a13913f6a39737e1e95824d915b2d939ba685bc308198f948","0x8017f45B5DD52EdaFb1050798dAD3C7B852E6978",!1,!1,null,null],["bsc","acryptos","ACS",18,"ACryptoS","30450221009db57aa43958ff0a161ad57cd06de88bcb8ee706902111cce327b6b94c8888b002206b93c192bdafb37ef509752fd49e69f2cdc18d433f35e2e3142fa14226f15aa8","0x4197C6EF3879a08cD51e5560da5064B773aa1d29",!0,!1,null,null],["bsc","acts_token","ACTS",9,"ACTs Token","3045022100a3a5f9ae16a638ee39e7d462858880c271c4a7a204207e0b3f9c04cda4eca0eb022039ad33c7a6bec8c187cdb492bd3290565c6b747f206d08d524c558b6837152b8","0xD8d07788facC1CA19De4646Ac78d8c74baBd3108",!1,!1,null,null],["bsc","adex_network","ADX",18,"AdEx Network","30440220038d0609e07fc7bd49bd7eac1346c4f47e2c9e66eea1d706a41d2c35a9591b15022013db6d0678ab538a656189606013df31be8a34b31a146e51eee888e6abfa9ba4","0x6bfF4Fb161347ad7de4A625AE5aa3A1CA7077819",!1,!1,null,null],["bsc","ae_cash","AECASH",18,"Ae Cash","304402200afe426629e3ce512035ce7a67fa8be1bac01f76b3e67262af6614f35f1c05d402202f3b01d88e015ff1179a262a1e1b1aaf029153be21c542c965921c2a6d5dbed3","0xE9004eb3F35b18660E197aD7C5239eB0DEa688EF",!1,!1,null,null],["bsc","aioz_network","AIOZ",18,"AIOZ Network","304402203ef491e424e2c0d67c7b6e2661f3965f0565a293b1c4aea5695cfdf783f240d602205ff9d92af605f47db183155fc2f7c378340de3a26a8b8ae237ee08bf0bc68511","0x33d08D8C7a168333a85285a68C0042b39fC3741D",!1,!1,null,null],["bsc","alchemy","ACH",8,"Alchemy","3044022019ddeafb0c65816618234aae23a5d5e1366f3802cb7b6ef69f0da2e38a85ac2702204ac531db7ba4eaec291f4cb6df887289b02756eed59648ee72508078266f22f0","0xBc7d6B50616989655AfD682fb42743507003056D",!1,!1,null,null],["bsc","aleph.im_v2","ALEPH",18,"aleph.im v2","304402205bb71dff2af470a017a95e74c2b899ea93b97c38ebc96be9926f689c578510f302205639049579d2414e8d40658cad383b07e04e4506917f6484d4c5edda61b5ea24","0x82D2f8E02Afb160Dd5A480a617692e62de9038C4",!1,!1,null,null],["bsc","alice","ALICE",6,"ALICE","3045022100cdc2fcac9243455589263f391ad602313e14042dfc09f49296a85c17689d248902203742a633d9492b9751f794aec20a3ee933f97b393f6ccdd94804f86310eeb47a","0xAC51066d7bEC65Dc4589368da368b212745d63E8",!1,!1,null,null],["bsc","alien_worlds_trilium","TLM",4,"Alien Worlds Trilium","3045022100f2cdbd413d3730b20cf202388b90361c8eabc8efa7425b82ad66d773c36788640220248321f8e722496587a7ee020ff8c6125519c376084bbf72331ed705d6220dcd","0x2222227E22102Fe3322098e4CBfE18cFebD57c95",!0,!1,null,null],["bsc","alinx","ALIX",18,"AlinX","304402207c2748fec4a398471e490c8b86e22274f796f884a06c598636e0ff12fc732d3602204418194f7fad146beea1985d80ab67bc5e825ac4a8a94f0e61891085b8ff3d4b","0xaF6Bd11A6F8f9c44b9D18f5FA116E403db599f8E",!1,!1,null,null],["bsc","alliance_token","ALTO",18,"ALLIANCE Token","3044022052c5ddce165f22b30e546de5b5f83a24952a82f657a486a35f1d43668c3d0a21022001c8db715ed81c54856298722e5b421022b62a80156042713eab6667c10979d2","0xEf783D3Af83A1f6841200Fc9adcFFc4C5f968Ab2",!1,!1,null,null],["bsc","allianceblock_token","BALBT",18,"AllianceBlock Token","304402201484d548d250d6474d38ca346157fe6822677ecc2c7e7278160b7e938fe73c0202202df4d2ab14ea0b364d54a219983f4eb610ae842f83aa30d98ecd4f04a3df8f8f","0x72fAa679E1008Ad8382959FF48E392042A8b06f7",!1,!1,null,null],["bsc","alpacatoken","ALPACA",18,"AlpacaToken","304402202d18a43ad7cfb5e0d28f863eaa497fd4d943a1fb532d2fd8c53f51c19e679b05022066ead1024d13184fde7ecad18de6bd71ab7c5f72041f973e43b763f0ccf10061","0x8F0528cE5eF7B51152A59745bEfDD91D97091d2F",!0,!1,null,null],["bsc","alpatoken","ALPA",18,"AlpaToken","30450221008c2cac65098b9a821cd4ea52b6c46d1f9a3780c665b1cea955fb941ad1a64a1502201fe087f6fa40c704746ff89419550590908857bbd99a19befdaef25f7a8bb090","0xc5E6689C9c8B02be7C49912Ef19e79cF24977f03",!1,!1,null,null],["bsc","alphatoken","ALPHA",18,"AlphaToken","304302207a2126615316bded163a00be992254e05cbd91ffcf6b9e6658fa0db29f00e9d7021f05715d1add0fd77d649701196434e53640d758c9a93ac2d4c49fb5c47cb3ae","0xa1faa113cbE53436Df28FF0aEe54275c13B40975",!1,!1,null,null],["bsc","alpine_fan_token","ALPINE",8,"ALPINE Fan Token","3045022100cb82efcc1319089ba3fb5e83472e65dcb3d061a4d8a4c047428937f0365da5e202207f03c20610947118d47a6c1a042e5000518eeca25184972415e96ab33bf85a78","0x287880Ea252b52b63Cc5f40a2d3E5A44aa665a76",!1,!1,null,null],["bsc","altura","ALU",18,"Altura","3044022060daf4feddc30398c794e20eb78a46ea30b5d4d0d8f0f5b010ff85c6aab0dd3b0220717168e3e78d18fe02eada538f4538b83c3653a544e273fe9a88bfb8b8b58d90","0x8263CD1601FE73C066bf49cc09841f35348e3be0",!1,!1,null,null],["bsc","amc_fight_night","AMC",18,"AMC FIGHT NIGHT","3045022100d82751a86f7c1a9ece49336727f4b0553d5a1dfd3dc66b18a3dbc2211a0c739602202c108e682dd1f8d4f0f02356064ff85376a9fd8f1ec6cf18238c749e20fd8114","0x1496fB27D8cF1887d21cAc161987821859CA56Ba",!1,!1,null,null],["bsc","ampl_secured_by_meter_passport","AMPL",9,"AMPL secured by Meter Passport","3045022100a79fac1e35ca7704737e2553047f93f81c98db83e70205d1de7a7ac8275dbb24022013e27384c5accba40810bebfe298ca2d8cdf5e7b94becc82b1b30c141cf56d3c","0xDB021b1B247fe2F1fa57e0A87C748Cc1E321F07F",!1,!1,null,null],["bsc","anji","ANJI",9,"Anji","3044022044b2da9655155ba3ae0fc0f1908ecb04ee00e57d633437e188eda5e8c28e143a0220320637fc6ed5f3168c484facb63ba4baee0f71fa2e59e8d32a6cb816cac21611","0xfc619FfCc0e0F30427BF938f9A1B2BfAE15bDf84",!1,!1,null,null],["bsc","ankr","ANKR",18,"Ankr","304402202add7916acffae47b8f0759f4d63be12af634a2f5bcc1d39813a4b82ee41044702206ff71760a3d9221872239f1c47b657ee49b8b0a6e74cceca3ffb079c9ab8f886","0xf307910A4c7bbc79691fD374889b36d8531B08e3",!0,!1,null,null],["bsc","anontoken","ANT",9,"ANONTOKEN","3045022100aecedf9306e1d20d117431c493a467ddd21ee404fb2d41f943a47a3636f919e402202bbe78eb8e62d497be6ffa77dffe4beee7be64ffb8c59b31674595b4aa93e5c0","0xD283cE7Acd177f7cf6caBB7ce5B11fDA3605659e",!0,!1,null,null],["bsc","antimatter.finance_mapping_token","MATTER",18,"Antimatter.Finance Mapping Token","304502210098c9cfd045b70a041c7ef86010c925dafec6e268f9cdf8c2dcd7b063b6bedc3f022058f65872d4eed5e5c828b5ec84fb5f62bc78cccde1287e11260cbdd8622107ba","0x1C9491865a1DE77C5b6e19d2E6a5F1D7a6F2b25F",!0,!1,null,null],["bsc","anyswap-bep20","ANY",18,"Anyswap-BEP20","30440220735b8a50c59469e10a4ebb47b53bf2dce2f729eb969d2090e7a64b5e00d8c12f02207ea78aa34999644c682c11a5ba1da681075e95b52ab6e5ef870ecfa4d1607307","0xF68C9Df95a18B2A5a5fa1124d79EEEffBaD0B6Fa",!0,!1,null,null],["bsc","apeswapfinance_banana","BANANA",18,"ApeSwapFinance Banana","3045022100815163c98e170a4040276777988c30a57efedc3eac7765597405804d2378fd6b022074ddb0fbf6ba84a103a18f3038c94fadb2dcab43103328d2da7a8a956eee0dfa","0x603c7f932ED1fc6575303D8Fb018fDCBb0f39a95",!1,!1,null,null],["bsc","apyswap","APYS",18,"APYSwap","3045022100ce6a94159a39d8133162df62c3bf14df055ef86a233c1dd6588487a10516a582022046ca53550997dde57c95f5d1e50c9653ed27dd03e7e1f081c4b6c22fe8e96768","0x37dfACfaeDA801437Ff648A1559d73f4C40aAcb7",!1,!1,null,null],["bsc","arenaplay","APC",18,"ArenaPlay","30440220191c078c668fd4b100b49e0077b3ecd8bd23ef86ab849dd6848efbe058c4f7400220448a512ac53d7246ac8ea68a345b8806971a6ef32da9282c70828bac04a1cbf3","0x2AA504586d6CaB3C59Fa629f74c586d78b93A025",!1,!1,null,null],["bsc","argontoken","ARGON",18,"ArgonToken","3045022100ed3d4dbc957f6552fad6a1816775b35c372f8814c4c9f0a2fdc98cd9d0a66aa30220228f89b65fec25416045d1f17b2f63c110f329dfd41c6b3fc3301b76842012c8","0x851F7a700c5d67DB59612b871338a85526752c25",!0,!1,null,null],["bsc","ariva","ARV",8,"ARIVA","304402206658baedaed45bd0817c375c1834782e48413e4eff91d185393b24531b8e51920220270d41be4cc4b60291a6f8f2139b34cb01a77fd851ee05e9a563f5c7b89c9b13","0x6679eB24F59dFe111864AEc72B443d1Da666B360",!1,!1,null,null],["bsc","arpa_token","ARPA",18,"ARPA Token","3045022100e8baadd41acfaccdbad905fd9e848bd7626c89726b14901b6205ad0e6e8e7ad502201d8fe7a40960f99b4ddf8b6ca81bf67504f3a9cb466e5ab1e73927630a472638","0x6F769E65c14Ebd1f68817F5f1DcDb61Cfa2D6f7e",!1,!1,null,null],["bsc","arrano","ANDX",5,"ARRANO","304402204f839dd862ab8dc58d2eed1bcdfed8b74d39670030cc835f412afa852a47f6a502203db98be602bcf875ef6a5227c746290e9b078df0a8a61f7238ac301822195d58","0xb63A911AE7Dc40510E7Bb552b7Fcb94c198bBE2D",!0,!1,null,null],["bsc","artrade_token","ATR",9,"Artrade Token","3045022100c7da690031cbbe81183fd73a4a464cac4d5b7d319370260ae479893e06bb66e802204fbd57788c7e8c8d47e9b6455b2dd6c4f435cd6feec7cbafafd0848113584ac4","0x7559C49c3Aec50E763A486bB232fA8d0d76078e4",!1,!1,null,null],["bsc","atem","ATEM",4,"AtEM","30450221008b4661b67eda7a64cc4c39354edee94a49171ccdb26c25ad53b7627cff8c43a2022062f05f581042766f5d796d6cf15cf5fd51170457be47855d4525b13cc1e0447e","0xB1678Cc5Ab33C7089Abf2d417c57DE7ff0135025",!0,!0,null,null],["bsc","aurox_token","URUS",18,"Aurox Token","304402201acefc925f36f62e50e851239a273a78c17427a2282fe5e69fa22a882fa7ac2b022040c4ebab6f67138568079317aed14948adc0e5604622da4857e4898ee010d254","0xc6DdDB5bc6E61e0841C54f3e723Ae1f3A807260b",!1,!1,null,null],["bsc","ausmt_v2","AUSMTV2",18,"AUSMT V2","304402204899eb9cf4a7efeb428b8cad5ca2734715b77486f3d54a5a291903a77df19959022001a10dc525ad0c55d7d84273cfcc6335e3fea04a0f70c514081976c4ffd79709","0x0cb794B6d241086A03A548D6d2c05c0C6b2952b2",!1,!1,null,null],["bsc","autocrypto","AU",18,"AutoCrypto","3045022100fa89f199a007b7c311b934828fb401db0096804aeea4581a0101b744f9769f53022027f89e912c6912d066382dc6b501a2911c9d1d7009977520b7f76adec7e47efe","0x8Ea2f890CB86DFb0E376137451c6fD982AFefc15",!1,!1,null,null],["bsc","automata","ATA",18,"Automata","3044022062c9174c8883a589f4baca24f411c2d540d36dd03bf3b4a7516b81743ffc0e5f02202e3b88d614101d579eaaceb95ff7258652d82a662c65ea7b5e0995e73b209a0d","0xA2120b9e674d3fC3875f415A7DF52e382F141225",!0,!1,null,null],["bsc","autov2","AUTO",18,"AUTOv2","3045022100d6e8db850af803d2ca8518018c679290c9c4ebda1828165ce1d384158d31943b0220092463c0307ca34df503c38623c5643250791bf0be490433fa8fafbcfc3f6a5c","0xa184088a740c695E156F91f5cC086a06bb78b827",!0,!1,null,null],["bsc","baby_cake","BABYCAKE",18,"BABY CAKE","304402205aee7cc15d1cab508266ea97438c6f9951718716d9a01293e647ba6dc333a9900220782122970b8e1db1258c44068c79a3cc2336009a53896568084f60c358907721","0xdB8D30b74bf098aF214e862C90E647bbB1fcC58c",!1,!1,null,null],["bsc","baby_doge_coin","BABYDOGE",9,"Baby Doge Coin","3045022100d976a6ff1b1d7542d53329d0e1a9bf64d86c5db6df704dc829db10ed0a03c0c002205e0c9b4cb87e700f9b4be7d292cc8f1c0a41b03fe7cde92ed33eedc67dec56a8","0xc748673057861a797275CD8A068AbB95A902e8de",!1,!1,null,null],["bsc","baby_shiba_inu","BABYSHIB",9,"Baby Shiba Inu","304402200c8a5be6b7872874b554b430a768e0a94d9b9fa984abae1461e41138d2d78f2602201477dd2e7b8efe34fbf7d8b3540391af9a142ab128e38c291f8f7ccd188e9393","0xAECf6d1afF214feF70042740054f0f6D0Caa98Ab",!0,!0,null,null],["bsc","babyflokidoge","BABYFD",9,"BabyFlokiDoge","30440220314c9990ab8d6563949d36659aeadefa4682161da19f013d37717538f0c34240022070b29118dbeff415ec103a555c239c527d5e9bedf876a378167f194c92b44239","0xe24F6Bc7635501d5684a963f7e75C8062b9c0eA4",!1,!1,null,null],["bsc","badger_sett_badger","BBADGER",18,"Badger Sett Badger","3044022015d0950a161b1c1015a8d610ee1ed37bcbd3148b0245611677d4a2fa97ed4459022024258f2f79bcad1a09be1f08e3bd239c0dddea0dfb6d71874267cd2862edcfa8","0x1F7216fdB338247512Ec99715587bb97BBf96eae",!1,!1,null,null],["bsc","badger_sett_digg","BDIGG",18,"Badger Sett Digg","3045022100ad8c95042810ee02d328d04baee99f22242cdedd0c164317bdd91e7fdb5a96480220540989095ce8c772e8bfe3a8e4aeb21846e4efe8cf48880cdb02f09a5ef64d4b","0x5986D5c77c65e5801a5cAa4fAE80089f870A71dA",!1,!1,null,null],["bsc","bakerytoken","BAKE",18,"BakeryToken","304402200920cfe3227750f1284f8eb3cc7d02d3f78bc6c7d286f318e96009b2b17093ec022048f40792fc07accb1cbe6a9820f0b7712b93a7262fccbf4d7483b7e27cf65624","0xE02dF9e3e622DeBdD69fb838bB799E3F168902c5",!0,!1,null,null],["bsc","bat_true_dollar","BTD",18,"Bat True Dollar","304402203e81e9a342161898ef32ae7e1c0e239b3bf2f96e2f91db465b4711628d4ce7420220662a846d816cf5d260050c8b019427d3b3b307cf28e3b6029d31958180189b94","0xD1102332a213E21faF78B69C03572031F3552c33",!0,!1,null,null],["bsc","bat_true_share","BTS",18,"Bat True Share","3044022049ab4464b5eb403fd61d323465b2eb07a46b4fe41102937ff016ee5182d1b62c02205710e789443b9d40bd4ac64a9f0682f33fbf2b1a2bd1520e1de4fdfcc0cca6e6","0xc2e1acef50aE55661855E8dcB72adB182A3cC259",!0,!1,null,null],["bsc","battleinfinity","IBAT",9,"BattleInfinity","3045022100b8fff3203339ad29a267a8f7c714900d1735302285f9973fee103e76d09c142402203e22e5358faea6af713328cb5285571485b14f440274307cdcd724b0a3c92cbd","0x19cd9B8e42d4EF62c3EA124110D5Cfd283CEaC43",!1,!1,null,null],["bsc","bb_verse","BB",18,"BB Verse","3045022100e2191ae4b74c7fda6d6d90e89f62c7f0a0fa6a78f8b9d523033b9412229573e202205e331562303a8a6927bd9a4b22a3d4e95eea6c61c75c45a497d7367d26fa9c90","0x43520512AEdb98f463a129EC75db30F7C33EA222",!1,!1,null,null],["bsc","bdollar","BDO",18,"bDollar","304502210083c83b95375cf923e699e96c26976da3e482ca2612e996eca92dba8ad6853a0602202619a70e00e95d011ba3163c4d01902a4db50f8baa515f85df2119cf6fc2462c","0x190b589cf9Fb8DDEabBFeae36a813FFb2A702454",!1,!1,null,null],["bsc","bdollar_share","SBDO",18,"bDollar Share","3045022100dfa10eebc2e9f6daa9236fd1b8718e05d2c147f63179b4112e83c2c97577584502202c05c9b403b22cbc37c1a840497b1147fb2b81cdca0eefd1f10e785b31ece901","0x0d9319565be7f53CeFE84Ad201Be3f40feAE2740",!1,!1,null,null],["bsc","be_meta_famous","BMF",18,"BE META FAMOUS","304402205b0f386d2344584c73486981eb9d23b2282b80f4d08a9edcfedf6fe65c56bafc0220663e2928059b441e5fb849722ff00825a07971ca4a5075cf7ce29f561ea26f51","0x54c159b71262878Bf096b45a3c6A8FD0a3250B10",!1,!1,null,null],["bsc","bear","BEAR",18,"Bear","3045022100a25917a158032d5cd8e93d36ee00bcdff85097d3a28a9c0736e2fc141910748a02205b9672e52202d2c93037d74e482070be1012ba5f54e5216522eb3b1f39ce00d9","0xc3EAE9b061Aa0e1B9BD3436080Dc57D2d63FEdc1",!1,!1,null,null],["bsc","bearn.fi","BFI",18,"bearn.fi","304402204f7ed49718aac3dbaae58d8319a31206621d9d65b3a635f1925e9509d41d842a0220314bc8026232c8deecc261357f920d0ed2a10714e850b67c78c907b3bac56222","0x81859801b01764D4f0Fa5E64729f5a6C3b91435b",!1,!1,null,null],["bsc","beefy.finance","BIFI",18,"beefy.finance","3045022100ac554cb95ff98b8f187500fe37767d5a80843a7a9bf1d53f531eb7da9e65e0a2022069ba439a0d51d2adf380dfa03e6e49aeac4d8e39642591984b16fce1c89f9118","0xCa3F508B8e4Dd382eE878A314789373D80A5190A",!0,!1,null,null],["bsc","bella_protocol","BEL",18,"Bella Protocol","304402200a3b085899b2d4c752afb1850b7b6d8d4c11bc63829c4ff2ebf03676658eb0910220582235f28974d4b1a299967f036b2dca6aa538af1eae75f78a598a3e5bc53588","0x8443f091997f06a61670B735ED92734F5628692F",!1,!1,null,null],["bsc","belt_token","BELT",18,"BELT Token","304402205c57da4cf8775a880920fa8a2560dd215eb83156e72e2fe81c61d69b08495cbf022031e09cd7a519d2d0b56073ef84240916bf78769ffe461fc5f9fcdb80d27a94ef","0xE0e514c71282b6f4e823703a39374Cf58dc3eA4f",!0,!1,null,null],["bsc","bemil","BEM",18,"Bemil","3044022040592cba4cd3db822d7d0e615c1742c6e9203e2b1d816b2526b51168b676244302200fbb5169eba444a86ff905c8be6551673eb92784272a8b01e4866e3e8c778f1d","0x7B86b0836f3454e50C6F6a190cd692bB17da1928",!1,!1,null,null],["bsc","berry_tributes","BRY",18,"Berry Tributes","3045022100af07d19d5f0e1d58bc15e9164270413f4ae521c70b50236521a0e6ee3b68aa1602207c5c6b23d24f5fc9d79d2df1f35378589dde1da32d3dc602fa0e7cab85baf4dd","0xf859Bf77cBe8699013d6Dbc7C2b926Aaf307F830",!0,!1,null,null],["bsc","beta_token","BETA",18,"Beta Token","3044022005d9961efec6f1ab580207a6a5a53b5ff12e462d5fe336f697e1c75ae2bbb5e7022069543b6760af9ef5d84a7869791d55027cb51a3aeb4682c1310ac00a34d467c0","0xBe1a001FE942f96Eea22bA08783140B9Dcc09D28",!1,!1,null,null],["bsc","bgov_token","BGOV",18,"BGOV Token","3045022100cf79ba48dfb2c445fde5690218b0002f80e1a125a9d122610e80dc805d8388cb02200d03f6cabd29425b14bde330dd544615c28d506dc70381f389d2fa106d9b406d","0xf8E026dC4C0860771f691EcFFBbdfe2fa51c77CF",!0,!1,null,null],["bsc","biconomy_token_(wormhole)","BICO",18,"Biconomy Token (Wormhole)","304502210088061c63e13c031f70ca7c5e60c29ee6a1884b980f9e978b6ba461375f776a46022073868ebc4d2b1f517994cd126aedde4da9d611138855e370526b9b2d9f3af51c","0x06250a4962558F0F3E69FC07F4c67BB9c9eAc739",!1,!1,null,null],["bsc","bidr_bep20","BIDR",18,"BIDR BEP20","304502210088c768f6e9986c7d33825bd32764a1fa450da0703070eb05f234a63d28ee93fe02203341dd1e296a55a2db521be17bd30567783b19b766091c9143bee8face1ee2c7","0x9A2f5556e9A637e8fBcE886d8e3cf8b316a1D8a2",!0,!1,null,null],["bsc","billion_happiness","BHC",18,"Billion Happiness","30440220267b139031d4f08fc190ae6847ea6d5a02d910446e287687dce6cf59e08de0df022055516400d6f26b4c6bfc712f3a4069d10fc04af4fce554488e9731e96335989f","0x6fd7c98458a943f469E1Cf4eA85B173f5Cd342F4",!0,!1,null,null],["bsc","binamon","BMON",18,"Binamon","3044022024fc1ba1d2bc77213204645c178e68b14d0d77fdfb634761c799720247933f62022074b6aaeaa50cb9ba30443e08972109425f38abdfeb4512a497bb8563ce3025b0","0x08ba0619b1e7A582E0BCe5BBE9843322C954C340",!1,!1,null,null],["bsc","binance-peg_aave_token","AAVE",18,"Binance-Peg Aave Token","30440220303425ecff9a9fdf0f121ba6bf42444e2c208a709bd7ca7130af5791c7e9184602205abdc84522afd1c948f910344264c701bf638d99d65338b8d7f822c54c6d3622","0xfb6115445Bff7b52FeB98650C87f44907E58f802",!0,!0,null,null],["bsc","binance-peg_apenft_token","NFT",6,"Binance-Peg APENFT Token","3045022100fd1a905a42079ab7ba5aca84d94e0811ad9d8f4b00bf2c00bd29f086293c3944022047941c9f777ed3ab2d95c6c380e3082eab21d5767d553d383e2af3527d11dc49","0x1fC9004eC7E5722891f5f38baE7678efCB11d34D",!1,!1,null,null],["bsc","binance-peg_as_roma_token","ASR",2,"Binance-Peg AS Roma Token","3045022100ec035f727b79416b26f719dc43520b8ffe97b263314ba614f6ebf7d22bdb69d602202447bf01cfd0591e7cb351145535ec6e22da69d89a76e25aaeb21e8d6483fc57","0x80D5f92C2c8C682070C95495313dDB680B267320",!1,!1,null,null],["bsc","binance-peg_atletico_de_madrid_token","ATM",2,"Binance-Peg Atletico de Madrid Token","3045022100e758cfcbc3660212f49519f0c6dfb3d1e61bc8adb79fbdfcaa0980142b579f6102202525563a7821c93e8088ca2e0f6848e3fc12dad083aae4ef2cab3d5bb61d2f35","0x25E9d05365c867E59C1904E7463Af9F312296f9E",!1,!1,null,null],["bsc","binance-peg_avalanche_token","AVAX",18,"Binance-Peg Avalanche Token","304502210081cd44b06c38fad03c997995c6a5505b1f320f8c4069c8de6112643d83a9c1ab022040b4fa94f74c0dc116b1b665a1d3f7daa131ccc361485c922dbeb4138b29bbe1","0x1CE0c2827e2eF14D5C4f29a091d735A204794041",!1,!1,null,null],["bsc","binance-peg_axie_infinity_shard_token","AXS",18,"Binance-Peg Axie Infinity Shard Token","30440220691a3f644df94eec922082948417fb14d9e53ea4739cde2606f4234d3f9fc04302203709295b811f3270a16cdf05f190f3687df9c4b12314547c7e85ca3992ff18bd","0x715D400F88C167884bbCc41C5FeA407ed4D2f8A0",!1,!1,null,null],["bsc","binance-peg_band_protocol_token","BAND",18,"Binance-Peg Band Protocol Token","30440220541e7015f2438030d38e8bde19e1e3115bb690c1783aedb168b1d58cc8751a2f02204d33e627417bac5a7080879950d7e6cf4edcb654918ead0f46c2315e01dcb8e6","0xAD6cAEb32CD2c308980a548bD0Bc5AA4306c6c18",!0,!1,null,null],["bsc","binance-peg_basic_attention_token","BAT",18,"Binance-Peg Basic Attention Token","30450221009bce750c593485069075887224100edd1ddb1c1c19cbec73b83a73228e3567d302202708bd7e5821ac2f7990de1912ac978efc09cf0ac59cab3118a21cd5dec39bd0","0x101d82428437127bF1608F699CD651e6Abf9766E",!0,!1,null,null],["bsc","binance-peg_bitcoin_cash_abc","BCHA",18,"Binance-Peg Bitcoin Cash ABC","3045022100d48bbd491db608f0947b3564160302affcfbbcca33b8c2bfc591c59f8d4402490220404696d386357fe5cdd11c0f354a49be4c3f2cf011578f2c28cf86041321da75","0xD475c9c934DCD6d5f1cAC530585aa5ba14185b92",!0,!1,null,null],["bsc","binance-peg_bitcoin_cash_token","BCH",18,"Binance-Peg Bitcoin Cash Token","30440220233969c3747ec78543eb1d94bd7f0cf20cbffffe84ec6135de77a909baaf2f0b022071d8918e188de7cf0805bb1382d7fefdb604aacad7c5867f0737289499670525","0x8fF795a6F4D97E7887C79beA79aba5cc76444aDf",!0,!1,null,null],["bsc","binance-peg_bittorrent","BTT",18,"BitTorrent","304402204d6885b398474d27210a28843c025c9de2b46454a1aa3f76018290b89ffddefa02203dfcbbb646bd20f610bfb2a908e53ef647108e0be30d81873967be6b7ee8f989","0x8595F9dA7b868b1822194fAEd312235E43007b49",!0,!1,null,null],["bsc","binance-peg_bsc-usd","BSC-USD",18,"Binance-Peg BSC-USD","3045022100993a05cf5f51ffc13a81fadb447b786554878b86a6f90de134f20801b19eb69c02205d96974ec1d6d273cbebab802b2a865e07aab7453dc1040b045bc7b4df827e3f","0x55d398326f99059fF775485246999027B3197955",!1,!1,null,null],["bsc","binance-peg_btcb_token","BTCB",18,"Binance-Peg BTCB Token","304502210096f3bcb3258c81fecd1bd4719dcb76a16702ba3bf6e868cf39b6329527ea747a0220130660724fe448a9cd5d82ac7739012af01ddd27c287a0dcc2d7cf8e88b1e5dd","0x7130d2A12B9BCbFAe4f2634d864A1Ee1Ce3Ead9c",!1,!1,null,null],["bsc","binance-peg_busd_token","BUSD",18,"Binance-Peg BUSD Token","304502210083b2c0ea8e139a888102c27c92cc72122ccceb1d6d0c3b8fa0dd4ae812ef5f8e022006a81899fee9303289661835a214b4a3075800c399bbcefd9b82164e6d9bd2d6","0xe9e7CEA3DedcA5984780Bafc599bD69ADd087D56",!1,!1,null,null],["bsc","binance-peg_cardano_token","ADA",18,"Binance-Peg Cardano Token","304402204aef1d3138897d64f744f9079da345f16ab1d6c87e73f6d13ae31519f2f8b789022010113193f7a20c5711d86053a5ff2917ee1e8f3dba62a087cd9ddb1d40c15122","0x3EE2200Efb3400fAbB9AacF31297cBdD1d435D47",!0,!1,null,null],["bsc","binance-peg_celer_token","CELR",18,"Binance-Peg Celer Token","30440220322f50dcaad786a24d8a2aae394ba4e923fb2d7253bc89a7bb08a56bbe9ceb5402201123873fa6f6b9c2511ab97eae832a06344772d237a9de4e95896022c23e3dd7","0x1f9f6a696C6Fd109cD3956F45dC709d2b3902163",!1,!1,null,null],["bsc","binance-peg_chainlink_token","LINK",18,"Binance-Peg ChainLink Token","304402205431e59f9522a8c01000362fa46ce3a89581755d2cad6c6754bded24fa9cc2e602201094d4d25697370f6975a856240638b2f0be30ae843354428853baa5d0637c7b","0xF8A0BF9cF54Bb92F17374d9e9A321E6a111a51bD",!1,!1,null,null],["bsc","binance-peg_compound_coin","COMP",18,"Binance-Peg Compound Coin","30450221008df86e4ee8e9eaaf159eb83789b755c9d649f0ad82a537602190309d41812ebe02203b4f46fe6758c149ed129129a5b27d88e2ba71f58395d01ba40bf4e895db153d","0x52CE071Bd9b1C4B00A0b92D298c512478CaD67e8",!0,!1,null,null],["bsc","binance-peg_cosmos_token","ATOM",18,"Binance-Peg Cosmos Token","304402200265f641211f4c7e1664b12cd7f279f0706182fefba819250324e95bcec22ba8022029ccd6cc80cb62ef900eaa793c6b3717aa01ee9728fe6e0473e487123aca7d6c","0x0Eb3a705fc54725037CC9e008bDede697f62F335",!0,!1,null,null],["bsc","binance-peg_dai_token","DAI",18,"Binance-Peg Dai Token","3044022032f0a880722af8c9e2196b5c0fc5273e2088f23692bdd2b35f6cf41c4001213f02205226e2023e409c73b031c790c64ae24db67c04b0aefd0d979b8c5002ca969b7b","0x1AF3F329e8BE154074D8769D1FFa4eE058B1DBc3",!0,!1,null,null],["bsc","binance-peg_dogecoin","DOGE",8,"Binance-Peg Dogecoin","3045022100d602d79c48bfd25c7557e77acf44fa8232d985ac9170cc4f2db1bcda4911a63a022021bced9bf580c60a8d704ecbb1077f33b7d82a0ea0319d1857e38758d9c02840","0xbA2aE424d960c26247Dd6c32edC70B295c744C43",!0,!1,null,null],["bsc","binance-peg_elf_token","ELF",18,"Binance-Peg ELF Token","3045022100a9c2e713f2cb904296141ac797b34b2eddae36f36b251bd724b126416bded24402207bfae23672e959106ed750ebc279e11fa8c9e56754008953942a062caf7db7eb","0xa3f020a5C92e15be13CAF0Ee5C95cF79585EeCC9",!0,!1,null,null],["bsc","binance-peg_elrond_token","EGLD",18,"Binance-Peg Elrond Token","30440220647de155e8219c377998b4973d7dea1c2ccd5e56676d0e408b3ae6347d09db8602203ff9be2beb490222c40580737e6cde604f826fc893582d4f12a2c2e020990b45","0xbF7c81FFF98BbE61B40Ed186e4AfD6DDd01337fe",!1,!1,null,null],["bsc","binance-peg_eos_token","EOS",18,"Binance-Peg EOS Token","3045022100e417b8c4ce7e76014bb7fcc6f6510656b0731e4b2868c840f034137b38ae9d4e022026c0a0e29d81f25d686617748a91fd8bd1511677a689318c7a9f5cb5772f3960","0x56b6fB708fC5732DEC1Afc8D8556423A2EDcCbD6",!0,!1,null,null],["bsc","binance-peg_ethereum_classic","ETC",18,"Binance-Peg Ethereum Classic","3044022019d614d743530878e1cbb2c1fea75dae3f88a4c8c585b36dc266f628aedb443002204c83516c9a3c57d1f1b25c62fc9a25caf7dec17dd0fa3c2cbafebc3751281f8c","0x3d6545b08693daE087E957cb1180ee38B9e3c25E",!0,!1,null,null],["bsc","binance-peg_ethereum_token","ETH",18,"Binance-Peg Ethereum Token","3045022100878f1594ddcc979473abdf4766c0d3fedcad37f82723402e7be382fb8042d40b022021e1c0c4bf00e22e277b43aab7017fb2150992071a81e2c38bdf2f3e6252d7a1","0x2170Ed0880ac9A755fd29B2688956BD959F933F8",!1,!1,null,null],["bsc","binance-peg_filecoin","FIL",18,"Binance-Peg Filecoin","3045022100c0d73d3db2fca55676a87244eb5b3c24cf5e8b9fec3db0421ef88a34e7732b8702206ca6243b6652b279041fb710dfa3aed7bcd8d9c5ca01c945d989096356b56fb4","0x0D8Ce2A99Bb6e3B7Db580eD848240e4a0F9aE153",!1,!1,null,null],["bsc","binance-peg_flow_token","FLOW",18,"Binance-Peg FLOW Token","3044022014b0e5360d1212344546ecf48d915092e151eaa06cd0c51a26e3411be3e8e3c6022043b07b8b04d1adb1c80ce4cab877033fb3557ee5e003dee3b155bfca85097499","0xC943c5320B9c18C153d1e2d12cC3074bebfb31A2",!0,!0,null,null],["bsc","binance-peg_iotex_network","IOTX",18,"Binance-Peg IoTeX Network","3044022056acbdcb27811703724a7db8633489b23f7d140aaa0fb2e05a0f74654fdfbf2a02205e5aef8ec78652a8bf5e3ccd16c7ebabd3dd09016b9a51cb3352fa1e1de3f291","0x9678E42ceBEb63F23197D726B29b1CB20d0064E5",!0,!1,null,null],["bsc","binance-peg_juventus_token","JUV",2,"Binance-Peg Juventus Token","3044022050d3671d19c8b74f77eef13df1bdbf2a3b1ad46eee6e1cb1f0fc443ea699c9d902201b833869d05bbc295af0a0cc965b970ebd5bc14c7cf238547026083d0f8c3f0d","0xC40C9A843E1c6D01b7578284a9028854f6683b1B",!1,!1,null,null],["bsc","binance-peg_litecoin_token","LTC",18,"Binance-Peg Litecoin Token","304402204c3f04dd82e5e0bdc2dba057b33110bb1639dc351f6fe4c288f1f0465fa06191022068bc63c2a0afb33bc684a6c04f3622c4538b6c160abb47e06eb298a26ed0faa4","0x4338665CBB7B2485A8855A139b75D5e34AB0DB94",!0,!1,null,null],["bsc","binance-peg_maker","MKR",18,"Binance-Peg Maker","3045022100f2646fd21db7873ab60ab660d3e6743faffda8a0d31b9430c2c0feacaec3f589022011f0d99965303a6c4be7d37f5ea6ecbd59d24b53319c2598b865f2f82bceea88","0x5f0Da599BB2ccCfcf6Fdfd7D81743B6020864350",!0,!1,null,null],["bsc","binance-peg_near_protocol","NEAR",18,"Binance-Peg NEAR Protocol","30450221009b575a5e68b3b1ebef9c87dc37c3ca204b9e710317b1c4ff22c38c6fc957d85e02203105546e8cfe49a3bdc3ac7991f95bc7e898426343718d7270a316376f3d597b","0x1Fa4a73a3F0133f0025378af00236f3aBDEE5D63",!1,!1,null,null],["bsc","binance-peg_og_token","OG",2,"Binance-Peg OG Token","3045022100faff7630ea7ca1955a56432e17f7c0fe4b4ef28f9161e856356369e33f705929022049522ec4d3775dd01471303a155fa7fd99f73c7110298de00754ed4488cf1f85","0xf05E45aD22150677a017Fbd94b84fBB63dc9b44c",!1,!1,null,null],["bsc","binance-peg_ontology_token","ONT",18,"Binance-Peg Ontology Token","3045022100e255c684cff078713c2b06500a2f64de6521a75350965a4ec309be877e3a537802203827b03bcd63075da4e66b67432270da8b4896b4a04d5b28fbfa5d1ce72541bc","0xFd7B3A77848f1C2D67E05E54d78d174a0C850335",!0,!1,null,null],["bsc","binance-peg_paris_saint-germain_token","PSG",2,"Binance-Peg Paris Saint-Germain Token","3045022100957438dbfbcc9f813eb22b19aedaaa71fd69688757f89d297144be10cf5dfe6502206bda87f9ca9a98fe9e8ee90b8ab8c56c2f6b8faf198e9858c902a7a857ab5d80","0xBc5609612b7C44BEf426De600B5fd1379DB2EcF1",!1,!1,null,null],["bsc","binance-peg_pax_gold","PAXG",18,"Binance-Peg PAX Gold","3045022100d574787460d598e2850d13ff878c044760de596638dcf8e74d45d4ef8e7ee460022032bf9fa0c79daaf1b7014f351d7ee5d7b70acc82631c90a2306b3bd07c806ef4","0x7950865a9140cB519342433146Ed5b40c6F210f7",!0,!1,null,null],["bsc","binance-peg_paxos_standard","PAX",18,"Binance-Peg Paxos Standard","3045022100838e97908f67b324513e26a0b1a5e95ffb4870b47ff148aaebc64ab8703e06f10220701bc29b881dc98d71164cd5f0d1eec940de963555fa91d9114b5a995ba55d27","0xb7F8Cd00C5A06c0537E2aBfF0b58033d02e5E094",!0,!1,null,null],["bsc","binance-peg_phala_network_token","PHA",18,"Binance-Peg Phala Network Token","3045022100babb917993009e57a01f97f36e042c782604f79ee01a606a4bd40f1474c130c802203de0869f3f71d4561944cede9c6046d057cc4fa84f763d45224417b3ddaeef04","0x0112e557d400474717056C4e6D40eDD846F38351",!1,!1,null,null],["bsc","binance-peg_polkadot_token","DOT",18,"Binance-Peg Polkadot Token","3045022100cabec243c94be137588d34ddd414930656db44b7a7e639beefa0ba602b65866302206a3c6d7f869a02247d4441c111382468e8be5154ec39dddedda94f1ca7a6cad5","0x7083609fCE4d1d8Dc0C979AAb8c869Ea2C873402",!0,!1,null,null],["bsc","binance-peg_smooth_love_potion","SLP",18,"Binance-Peg Smooth Love Potion","3044022078826d7e891788673ba7fc76f6f08cacbad293a7232163bb8f8725966bbd0b2302200b7614a8a15833c5a7f551acdb4fa84dce253073f457e736f6de94825c4662e6","0x070a08BeEF8d36734dD67A491202fF35a6A16d97",!1,!1,null,null],["bsc","binance-peg_sushitoken","SUSHI",18,"Binance-Peg SushiToken","304402201ff768e7ccd4ea57c495bc84647cd34464e513278721d2a17f0ea996157a394a0220241f7131d9e22c64a793188a863c52017a0ba33a35d5580974676e242daf5f36","0x947950BcC74888a40Ffa2593C5798F11Fc9124C4",!1,!1,null,null],["bsc","binance-peg_synthetix_network_token","SNX",18,"Binance-Peg Synthetix Network Token","304402206842b6147fb84cf4777b4dc46b3c545afc09e2769973db6cc343582b486deaeb02201cec631b2cd68064d09ab96b79f8f44568c20f9b7d156cfb827bcc9f8fbfc9b7","0x9Ac983826058b8a9C7Aa1C9171441191232E8404",!0,!1,null,null],["bsc","binance-peg_tezos_token","XTZ",18,"Binance-Peg Tezos Token","30440220125118a2ffeba944c149d96c49357341df6ad69f3068a9a804211a05f6c98d3802200eab3af7855afe4c3e3f6a8c1275227bd9d78b67617c6ec8a6801baea375f8c7","0x16939ef78684453bfDFb47825F8a5F714f12623a",!0,!1,null,null],["bsc","binance-peg_token_club","TCT",18,"Binance-Peg Token Club","304402206eb0f6a0882dac690dd31ba1a9aa820e4b17edcfe15af5410b74dc647219990d022048b8ae77ce5b995fd646fa25fbbaab510858a7fbeb033dba596e0faa9eecc191","0xCA0a9Df6a8cAD800046C1DDc5755810718b65C44",!0,!1,null,null],["bsc","binance-peg_tornadocash_token","TORN",18,"Binance-Peg TornadoCash Token","304502210090682fe144ea267049e08b3e7f7484d69da8d531a587d3f8013d97e196e3b8ba02207e70901fc38ac7e6caa542f5907bb9a52b9f0e210e96bcdae68efd700e31b169","0x1bA8D3C4c219B124d351F603060663BD1bcd9bbF",!1,!1,null,null],["bsc","binance-peg_trueusd_token","TUSD",18,"Binance-Peg TrueUSD Token","3045022100f0e3223e33b59b779c28e5a16000f4d036f99a100bae7f6204beec799c7c73c302206a34d91b67dce72f423ba2437c52343ea882e0732a89c1f06ee662c224943def","0x14016E85a25aeb13065688cAFB43044C2ef86784",!1,!1,null,null],["bsc","binance-peg_uniswap","UNI",18,"Binance-Peg Uniswap","304402205673c99c2f001e6ec6203d3cd91d41dc56f6bc4defc30f193b44897600dc82bc022008717e1b72a6f3c572200cc7367994dce2ecedf2f1edbe1c3aee7487d9004a1a","0xBf5140A22578168FD562DCcF235E5D43A02ce9B1",!0,!1,null,null],["bsc","binance-peg_usd_coin","USDC",18,"Binance-Peg USD Coin","304402207f3646c152858f149b2f42ddd0494029943f978141d6b8738d2c374cb6a226260220381e2b61a56fc4935ac31c9bd9069c102deb3f4f642593c2d4b40931d28f7fc2","0x8AC76a51cc950d9822D68b83fE1Ad97B32Cd580d",!1,!1,null,null],["bsc","binance-peg_xrp_token","XRP",18,"Binance-Peg XRP Token","3045022100e537a0735a23d60464f2c4d7b70ca37664dd469db3e63890f965baaac7484fd8022005659afd4fe81bd2f300f33f1c365040da3644d470fb239c1f5daecfe34de4b4","0x1D2F0da169ceB9fC7B3144628dB156f3F6c60dBE",!0,!1,null,null],["bsc","binance-peg_yearn.finance","YFI",18,"Binance-Peg yearn.finance","3045022100a00526482764a6c459805cf5db1de35c37bd0aabda01f8440f5d277fd581881a02200268bf6e923c6db5b50dc45432347c1f49aad0ff6b456c539c4df4145bafeb72","0x88f1A5ae2A3BF98AEAF342D26B30a79438c9142e",!0,!1,null,null],["bsc","binance-peg_yfii.finance_token","YFII",18,"Binance-Peg YFII.finance Token","30450221008c40710f4a82233333c3606839233a07d1b224ff0968974845e5fd652ab6067c022067d2f35a5c35a66ecb5893c0994ec072e7a0e675f78ac3feab9ea5a02375e7b9","0x7F70642d88cf1C4a3a7abb072B53B929b653edA5",!0,!1,null,null],["bsc","binance-peg_zcash_token","ZEC",18,"Binance-Peg Zcash Token","30440220515edc881d64df6cf2801a350d67fa12f346334a673cc1d1c1ebe43ffa3acdb50220069c4dcbfde448d7ac378abe5c4a0603cbb6efad0a03d4ad214803ac1a3851d1","0x1Ba42e5193dfA8B03D15dd1B86a3113bbBEF8Eeb",!0,!1,null,null],["bsc","binance_beacon_eth","BETH",18,"Binance Beacon ETH","304402200e45fbcbe33ecc8168633464545d98fbf96b76ad6e4bb8e38c01cc5a5958aa9702202603b107e3cd9045d71e2586de8fcd0e97cb0e9f5e55fc92d53f4cbf5800bd8d","0x250632378E573c6Be1AC2f97Fcdf00515d0Aa91B",!0,!1,null,null],["bsc","binaryx","BNX",18,"BinaryX","3045022100d327feb400d6fc3a3b0d1ed3b7f0542812705619fa463f044a07ec98eff851ba022067ddcad06d896642c4788dd3056ba0a7c1fee82743b7930994656b3f07bcdca6","0x8C851d1a123Ff703BD1f9dabe631b69902Df5f97",!1,!1,null,null],["bsc","binemon","BIN",18,"Binemon","30450221009c054cdb9c34d496f2500f78baa221eb1e9a1051679fcc50281be803cb593fc002204e2175189709a956236b671ae47d9c631ce0f8783059840dddf44ee7b3bb898e","0xe56842Ed550Ff2794F010738554db45E60730371",!1,!1,null,null],["bsc","binstarter","BSR",18,"BinStarter","304402205d29db9187255e3e773af60441826d4732f40bfd81fc2e3c6ed9aa67cd7a1ff6022033d46d9fd8ed84d6e6fe371d02b2467c557359ded8af8abc20065dc54252b09f","0xab287e6D370C61f105630e656B5468ACB4D00423",!1,!1,null,null],["bsc","biswap","BSW",18,"Biswap","3045022100f15dd5ad9470e73eb59016b504478ea12607133734ab469a01280f0498c62b4702202f985d208c888680ac1482cf099708862ba205edf1c8b399caf769e04d202b39","0x965F527D9159dCe6288a2219DB51fc6Eef120dD1",!1,!1,null,null],["bsc","bitbase","BTBS",18,"BitBase","3045022100c40fb6d1a20e0bb6bb129291d8d6260780be8ff99271fb89baf5c09ef485cc420220263f5b01cf4bc4e05f6071353183a54428ad5f138f70c23c8cef76deeac31bfb","0x6feFd97F328342a8A840546A55FDcfEe7542F9A8",!1,!1,null,null],["bsc","bitrise_token","BRISE",9,"Bitgert","30440220778181837eeda71bb8fc0eb4339a3c6a1ebcacef69ccbe950d6f35033655c59e022026ecb218e4acc6a9c7ce75986726631aa2ede3e5e305b49bd21cd3aa7906b9f2","0x8FFf93E810a2eDaaFc326eDEE51071DA9d398E83",!1,!1,null,null],["bsc","bitrue_token","BTR",18,"Bitrue Token","3045022100c1983ebdc81688427a60a82fe2b793c0d2570c66f82cdc2dc6a1b6c18e8a679e022062c62fbc61ca4b1e3ff09b29251cc8fec5f104213f25e7a9c5a64f458efae892","0x5a16E8cE8cA316407c6E6307095dc9540a8D62B3",!1,!1,null,null],["bsc","bittorrent","BTT",18,"BitTorrent","3045022100947c1461a3356f0a775ceb36292ca2d0fd5af067e73fb2f3e9217707621283a102207058927da014f65e436f4808ed489bb0bd659c0f2abc89b265a791dfd1c6862c","0x352Cb5E19b12FC216548a2677bD0fce83BaE434B",!1,!1,null,null],["bsc","bitwell_token","WELL",18,"BitWell Token","30450221008f214e16f490a8df9028bde6effcebb3dfb6660531d3a15fcd544c3b173af1170220224f343f110100516873390912b3cc04e73e9984c4d10d18588eaf8af32d5f23","0xf07a32Eb035b786898c00bB1C64d8c6F8E7a46D5",!1,!1,null,null],["bsc","blinktoken","BLINK",6,"BLinkToken","3045022100e5b6cb9f2c9c5bb17d8199d46b090c5b224e41b9414acf14e7d27b6f87e541090220562f7c89fe6aec5a6b78632ba4d6af3ef4b1d5c7c67cbe74a90f0d79328a4485","0x63870A18B6e42b01Ef1Ad8A2302ef50B7132054F",!1,!1,null,null],["bsc","blockapescissors","BAS",18,"BlockApeScissors","30450221009c6003f4572fc06c0bb53011b0f107309783c4ed0ce4ad8b21505ea1a83579a9022022045f0cf65fbe49f13d0a6728c86e842c51ded1af585e81b69a1a8c6a1e4554","0x8ddEEc6b677c7c552C9f3563B99e4fF90B862EBc",!1,!1,null,null],["bsc","blok","BLOK",18,"BLOK","3045022100dbeeaf5ae42d87111ab4843b506ef9806c77002cf355bbf4e292182c26f53c9d02207f29ea3ac629574f805bf5c85db42716dd087f09384cc8ea1dda4fcdc769eaf5","0xA0d96fD642156FC7E964949642257b3572f10cD6",!1,!1,null,null],["bsc","bnb48_club_token","KOGE",18,"BNB48 Club Token","3044022014630f3a3ef2ba7601e1ae129a115c3416090fb89be5d51497eb23e9c21b08ab02203be093d1958a316019a50696238276b61f2a4df7542b9c7b7dce85e293684a07","0xe6DF05CE8C8301223373CF5B969AFCb1498c5528",!0,!1,null,null],["bsc","bnb_network","BNBNET",18,"BNB Network","3045022100f08475f3eae0f1918fb837c084a6ccae3e3d1842ef68fde4473b70fbe08997d2022004bd1c4d665c00d36939edc5a262b9aee157911afa82476667b94f52fca34f43","0xF8047d81B1F1d2f11603710ae32a723c1016f584",!1,!1,null,null],["bsc","bobc","BOBC",18,"BOBC","3045022100cb260b3a6b944d14d069699d6c1394756508d3aa73d51774099ae92bb601146e022045e3b39e9287a52025def2c0890d151d335994e28ecb3cc31af0c6e869c34000","0xCE6bD1833BD077f62B2c1F9a777bB829801d6811",!1,!1,null,null],["bsc","boletoken","BOLE",18,"BoleToken","30450221008f6c77a8865ba79c0f9cd6f108f7026c2ccf157910651f085bfc5328c2ba230502204e1b64e8399995d81fa3c5810ab584dee5e4445d0cd861db18638416a9b24a27","0x3375AfA606F5836154C95F1Df5830EA2e4F41DF2",!1,!1,null,null],["bsc","bondly","BONDLY",18,"Bondly","3045022100cc0c803c21cead73ef72bd679aa8a6c656670b4e8274cbe2e6aded34bca87e8002203d74137ad5eca3f2584ae7cbddb3337ffaa9ed771556f9e270713e582a4fd8a1","0x5D0158A5c3ddF47d4Ea4517d8DB0D76aA2e87563",!1,!1,null,null],["bsc","boringdao","BORING",18,"BoringDAO","3045022100b4cbf7a49be3eb7b492853d97b8a27ed3d95764d45bf78381634c1f870413b190220336b7f2a4f587f1e3f00b407c2a32e6b7ec2113c0ef9ab97212744e49249149e","0xffEecbf8D7267757c2dc3d13D730E97E15BfdF7F",!1,!1,null,null],["bsc","bpad","BPAD",18,"BPAD","3045022100f87ffbfd4f62957fe52fee194c89e48a8afaf29d92e7c87b420958dd2dc5049602206f645fba2f3f4b8b5ac14eff4c51d5958573905b6584d3fdd2455a7a55f32446","0x29132062319AA375e764Ef8ef756F2B28c77a9C9",!1,!1,null,null],["bsc","brank","BRANK",18,"BRANK","3045022100a502515bc160d95e291ca4248f2c63dce126fcef1208f42e6f1933fd6f4dc97a022049d4d69f578e63d6295439cf152d642bf66d8350d8e84c1876d91fde25c443ce","0x39aE9A782b1f9C60d0F1839EF4C2d0174c5Edae4",!1,!1,null,null],["bsc","bricks","BRICKS",9,"BRICKS","3045022100e65018f29e207bf957388c85b223ea8d50b441596aabd8baed101419617c359402205e6f27bc06df197c83cf9332ddb1e660da777a55fe9e36524a8b93e98f466653","0x13E1070E3a388e53Ec35480Ff494538f9FFc5b8D",!0,!0,null,null],["bsc","bridge","BRG",18,"Bridge","304502210087949ce9920ac5b943f27119f7d07dcd458588fd804fcb07a862e42f50c2f960022073a57ad57d29f6b25641974bba43e9688a21b9d386aa84a5e6a47f4b74376732","0x6e4a971B81CA58045a2AA982EaA3d50C4Ac38F42",!1,!1,null,null],["bsc","brn_metaverse","BRN",18,"BRN Metaverse","3045022100fd4ae4cf1862ab6b5c0c2e65191e62e09644968f6844cf863f66f2a19ae7b93c02202987031290723d786d81cb079c49e0f7f1735c891c0de9961796efb1f49426a8","0x926ecC7687fCFB296E97a2b4501F41A6f5F8C214",!1,!1,null,null],["bsc","bsc_conflux","BCFX",18,"BSC Conflux","3044022014762ec68c892c94a81061e6ced27689e5da8670709d74aec7907ce08f552a88022017a6f80b8f484aad37009a8cc7c9f2753ab854a78227488a2c5d57dcbd152966","0x045c4324039dA91c52C55DF5D785385Aab073DcF",!0,!1,null,null],["bsc","bsc_ecosystem_defi_blue_chips","BSCDEFI",18,"BSC Ecosystem Defi blue chips","3044022002092c06d4fc6b059f650e39e96d7aa0f8d2dd0cc8ffa07f764f6b0c5627a18e022063d058bf797a741b99578776b1fff39ab842bfd3f39f5932c65e46f6ec4e355c","0x40E46dE174dfB776BB89E04dF1C47d8a66855EB3",!1,!1,null,null],["bsc","bsc_wrapped_jupiter","BWJUP",18,"BSC Wrapped Jupiter","304402206f723a3e2bfe0817782303b34600617140411a47963e85b45eeb9438f06cc6cb0220380013211e71afa161e12145f4bad042f16b2f92def53cebc7745f1ced9a3928","0x0231f91e02DebD20345Ae8AB7D71A41f8E140cE7",!1,!1,null,null],["bsc","bscpad.com","BSCPAD",18,"BSCPAD.com","304402205cf2757550c9c988f08d1fdc67bcfbd94f9482150d2c3f474695fb60fe9d739102204b60c28823252b90802493d74d9a474de39ebec935dd5b827e49d162845edfe7","0x5A3010d4d8D3B5fB49f8B6E57FB9E48063f16700",!1,!1,null,null],["bsc","bscx","BSCX",18,"BSCX","3044022054c406b214a513de399dc7500c8dd4300e2c43f49f787ae8e3d95f6c9217944a0220226d1fdd7bcb540d5458597bcf7e33b70bf59af297bbd8fcdb8d6c189028470e","0x5Ac52EE5b2a633895292Ff6d8A89bB9190451587",!0,!1,null,null],["bsc","btaf","BTAF",18,"BTAF","304402200e67344f84a791612dbd4e04ab21ebf14bef02ba287a5873a9b9c5b256063ec702203c5cbf8fcec52d78d54f029e3ac7e92e2cb20ee44da911aa3c5ef63417f327a0","0xcAE3d82D63e2b0094bc959752993D3D3743B5D08",!1,!1,null,null],["bsc","bunny_token","BUNNY",18,"Bunny Token","3045022100bc091edd6d362ba5221672f54b32fc1071b700ff62f4c1cf32a74a05e552ed440220697afa1eaf46e1e06ce22a4f73534bd0e420563ee3e225ddaf73552c743ec506","0xC9849E6fdB743d08fAeE3E34dd2D1bc69EA11a51",!0,!1,null,null],["bsc","bunnypark","BP",18,"BunnyPark","304402201c774b2c3ef5e0e3bab2defde18c744aed467cb28e5ece439b37678c7994e26c02204095cd48ddffdc6916634dbfa13d91dd0e39c82727ac347958c34e3f9794bd62","0xACB8f52DC63BB752a51186D1c55868ADbFfEe9C1",!1,!1,null,null],["bsc","burger_swap","BURGER",18,"Burger Swap","304402203dda247ee5532d68ff684ba828e0c0e38c39534baafa192a71d75b92dcfaf2d402205248d5ca6e1088ce927ef7b115758aeffc82f1224e2e0650e0dd43f953e63cdb","0xAe9269f27437f0fcBC232d39Ec814844a51d6b8f",!0,!1,null,null],["bsc","busd-bd1","BUSD",18,"BUSD-BD1","3045022100c1df5030d681aa888b22a2de9c77b3b51790ec23b5a08f7434ec466d2b057cc702202158cd99f2b697861f0b624cbb1c80950c642297dfb0cbdf81cb0eefb0b7c999","0x04132bF45511d03a58AFD4f1D36A29D229Ccc574",!0,!1,null,null],["bsc","busdprinter","BPR",9,"BusdPrinter","3044022003458309266e0d15a578ac2d1a3f14a9bbff65d389c3a806d08a8ab30b0f41e502206c4930c3c2a1f2ace97bdeaecbe859192e3f25426c7500e0cabf5c4b839dc159","0x55E8d5ba6A859a4ff46F175bB3e7F003e16Db821",!1,!1,null,null],["bsc","bux_token","BUX",18,"BUX Token","304402204a4294c3549c44b178cbed7a77004d8e4c9e5fa395607b3b6a371bfc732123a9022052e96935592620f6dd0e3d470c286bedb8a353311c2e6e5ebb8d9ea18d52be78","0x211FfbE424b90e25a15531ca322adF1559779E45",!0,!1,null,null],["bsc","canyacoin","CAN",18,"CanYaCoin","304402201465b74d27d5ca317f48ecab132ad19cb4d71a22f4a47a5f42e7818a766595bb0220723412c2ac92daec0bec560e41c9711ca917bc238cee98049783f88a672afcf4","0x007EA5C0Ea75a8DF45D288a4debdD5bb633F9e56",!0,!1,null,null],["bsc","car","CAR",18,"CAR","3043021f30dc7f42d1ddcd8564c2ef2efd27218ae23f3bd1a45bea38b950a68d056c4f022002c22e7856df71f8cd9806f2f5f145e60440c3e307ab4e97a0a2bf88d590f6c6","0x176a25637e5078519230A4d80A7A47350940264a",!0,!1,null,null],["bsc","cartesi_token","CTSI",18,"Cartesi Token","30440220303d3c1acdf562ad31ab9e49be30e614240ef12847fd657149ef5c265fece9c102201001b2d86245521f514998ca204c2e96c1e589994e8140ed3778ada7b9da8b50","0x8dA443F84fEA710266C8eB6bC34B71702d033EF2",!0,!1,null,null],["bsc","cat","CAT",18,"Cat","3045022100c5f3438afd2cad9f49c81ad72e95189d50a9793bebefde1a74f1c1dbdea761bb0220354d56bc8321a547d2915b6b0395bccffe5dc1ecc10afbaa520994a25727feb9","0x0173295183685F27C84db046B5F0bea3e683c24b",!1,!1,null,null],["bsc","catcoin","CATS",0,"Catcoin","30450221009ae957e0120ffacf2cc70012a3228dc88ede7d95777ccd5597ed50f6af7abdde02203077282729bbf3edd0a9a6dd60e2de863b97ae811e3aae840db565c321bf99c0","0x2f0c6e147974BfbF7Da557b88643D74C324053A2",!1,!1,null,null],["bsc","catecoin","CATE",9,"CateCoin","3044022047edb3713c957bc926dd5023b3d015c2bf3d9dc0221c5a9b261616e74be87e45022054b3faddf45eb7a9479a75925150b7cd8507629ffb0143cc49c92ce1e6558c91","0x451329F2FCb88C398A4cDD4A8a98780B4D62873C",!1,!1,null,null],["bsc","catecoin_old","CATE_",9,"CateCoin (old)","304402207ceb41f2da0fe1e48168fc84156f657d194edc279b8923a2f1c37a0a8833ca02022079ec8a2de891310d4eba7320673859bfcf642e4ac395191a91aa53e3110c9f95","0xE4FAE3Faa8300810C835970b9187c268f55D998F",!0,!1,null,null],["bsc","catgirl","CATGIRL",9,"CatGirl","30440220707ae5f1699752e6cd5b4935177867a0c04a4bcfb8f84baf883b061bde8a83b80220201735068b537b128e3517716597e9553b9de499b7f8d0a1c0601397c223d0a3","0x79eBC9A2ce02277A4b5b3A768b1C0A4ed75Bd936",!1,!1,null,null],["bsc","ceek","CEEK",18,"CEEK","3045022100bfe33683a7ee7fb41101f19da0d3ef9b008193f0c7529702b80286bb1dcb4f28022003312c1737010c0bd9ee50c0821ede3c9e8130db2eddd3035a6edb533c45edc3","0xe0F94Ac5462997D2BC57287Ac3a3aE4C31345D66",!1,!1,null,null],["bsc","cellframe_token","CELL",18,"Cellframe Token","3044022059900e1f80bce60ce6af3b0191accffc094b08ad54d548ba0bf80df0e4e9d0c702205b43963d2c5f694808d072ebe0b40ff2cc66172e6f860aea40f59b98c83a4b1d","0xf3E1449DDB6b218dA2C9463D4594CEccC8934346",!1,!1,null,null],["bsc","cerby_token","CERBY",18,"Cerby Token","304402202b266c38f7601d293418051b0a6e0bc967e41f328d48f14eb353396a3915d19c022026c596bd49e68bd2732a908a6e16de7ea13bf3561f3421804a7622c2803bc69d","0xdef1fac7Bf08f173D286BbBDcBeeADe695129840",!1,!1,null,null],["bsc","certik_token","CTK",6,"CertiK Token","3045022100b73459cf8dffcf1912a2b7310578f9451d99d1b79bf2425cef9a0a24ff8a8d35022034587e93beb93ba86b2d6c3e7e37b246650927bd575986c38ede791eb597e21e","0xA8c2B8eec3d368C0253ad3dae65a5F2BBB89c929",!0,!1,null,null],["bsc","chainport.io-peg_xcad_token","XCAD",18,"Chainport.io-Peg XCAD Token","3045022100956895044cb0e43f54916aaeed4e5f4547e9193b977f07a2818cc7507417d8e8022002349342407702431688e3ba833cd1789a4df712e6a96fe61c39cd4107aa7583","0x431e0cD023a32532BF3969CddFc002c00E98429d",!1,!1,null,null],["bsc","checkdot","CDT",18,"CheckDot","304402200140d453d125ade4151d86d060cc4c37e57e1a9b215df616a7513b1c53475b71022006c81106e9bf7177f26002a1b8a9b02000c77f7f657f74d9008c91892251b74a","0x0cBD6fAdcF8096cC9A43d90B45F65826102e3eCE",!1,!1,null,null],["bsc","cheers","CHEERS",18,"CHEERS","3045022100f84ae25a3c2f92e419cdd8b781884142e3ba12b491d9dcf3ad3770c5bdb49dd0022076eeebf167be18aa2033fe3e1882f5de8945d7f9009bdb85ecce3bd3a516e538","0xbBBcB350C64Fe974e5C42A55c7070644191823f3",!1,!1,null,null],["bsc","cheesemaker.farm","CHS",18,"cheesemaker.farm","304402201f497b725dd23ed2c45bc25599191c48eb79269338a9c6042368f082a5c02d7202207ca6c3b48fc2f8a34d9eb1d977966082b555ff1b9442e3c28a7749f06a65d1c2","0xaDD8A06fd58761A5047426e160B2B88AD3B9D464",!0,!1,null,null],["bsc","chess","CHESS",18,"Chess","30440220757e7784e7c4c823cb694c94fcfda3c820468bef0e338b3640e53b0a752988dc02201c55c59c6b94fb89157929ccd3be816d33bb433a06d0f7ec461a9bb132241367","0x20de22029ab63cf9A7Cf5fEB2b737Ca1eE4c82A6",!1,!1,null,null],["bsc","chi_gastoken_by_1inch","CHI",0,"Chi Gastoken by 1inch","304402207d6b1f7e65de18daa24d4b261483dab364b2c8a8bf0c93d68117521e33ce807a02203ef93cc34077b6847c982e39ba7fde49ea710964f0af9de181aa44c9a4663adf","0x0000000000004946c0e9F43F4Dee607b0eF1fA1c",!0,!1,null,null],["bsc","chroma","CHR",6,"Chroma","304402200096c5821aae62c22a5db8ec83f803b323fbfbb0d2449dcf5dec89b815980fb70220478381cbe5cb4dd42142189c099e1ce1e0bdd56e3a94d4d9920ce73ca1ff90db","0xf9CeC8d50f6c8ad3Fb6dcCEC577e05aA32B224FE",!1,!1,null,null],["bsc","chumbi_valley","CHMB",18,"Chumbi Valley","3045022100fd5338364131243fc9eabc02b970f6ecf2bc5ef5cc91f937109ffe03b7726dca0220095f0b0bdb235bd39827c6627bdf685f0d45150803fa6d9aafe85a64b68508b3","0x5492Ef6aEebA1A3896357359eF039a8B11621b45",!1,!1,null,null],["bsc","clear_water","CLEAR",18,"Clear Water","30450221008ca2f2319a0884b729451b81d0b11b7434a0b140ced8ea6854d99089e94962610220540ee8c300fca3497aba4c53ba11eea315ac2104bd1eed0231a029361b138390","0x09Faf80c7Df27d0Fb8A717324963cB871f6814f7",!1,!1,null,null],["bsc","clintex","CTI",18,"ClinTex","3044022044d73f048d35b43bb28e3ec2eb0e0c140ff1ad1b7c8b2073039fea5fca617073022003afce36492d3fc6898d71130318499d154bb3c6c2ea8f5d454bc3e8d55cb37f","0x3f670f65B9Ce89b82e82121fD68c340ac22C08D6",!0,!1,null,null],["bsc","cloudname","CNAME",18,"Cloudname","3045022100c1dc8e52dc8e93199fcd29ab2a28986fff5ecdf34a2a104c772e4636221d6aaf02206bd4691c4dfbcea0a606ac10cee68e3f0775f84bc497cdf9f1bedc88a843060b","0xFC3514474306e2D4aa8350fD8FA9c46c165fe8cD",!0,!0,null,null],["bsc","clucoin","CLU",9,"CluCoin","3044022001c63b9180e3a17298c1f1151aa333702fe558094c10a1ff5e4d61abcb338e2f02202f0a43c6940ac859584a6bd8067a2879c324096b29aa142da433834d7a841513","0x1162E2EfCE13f99Ed259fFc24d99108aAA0ce935",!0,!0,null,null],["bsc","coalphoenix","COAX",18,"CoalPhoenix","3045022100ce9125888411b0c6b1ea6e344c76cce67cab35d25ca5e7ff7d4aeda795f3e55202204bf7ed96c32d8e981c51fabf9cf6cb38d5fa176e64c168a6abec0b3b19dddde9","0x9b4898ADA204A77BA3e837245A210AE3759F4153",!1,!1,null,null],["bsc","coin98","C98",18,"Coin98","3045022100880b312c5ece768a40a08b1ff91a036634490f56aa529e6b3aca81127d81a62e0220593983f52ff03068187764f1c9e19d1585f4d77db8eab9a9317a14bb5b3a4144","0xaEC945e04baF28b135Fa7c640f624f8D90F1C3a6",!1,!1,null,null],["bsc","coin_merge","CMERGE",9,"Coin Merge","3044022034f70d1a045a5c53c8efeb3e0b0461f7621ec6762474735ee020dc2927fdbbac02203669720216819e4768c07f5e2ecbbfdf4bd3d8ae16e962f64251683711bb35f9","0x8D3E3A57c5F140B5f9Feb0d43D37A347ee01c851",!1,!1,null,null],["bsc","compound_","COMP",18,"Compound ","3044022050bcef83c8c255e55735acffc6b3a63b031b177d0cdac1d63cd09807a116aa95022030aad1dd1f4c96c47b5c1fd2d9dea049b8efd2e00d05982d7f5fd0fbdbab1826","0xc00e94Cb662C3520282E6f5717214004A7f26888",!0,!0,null,null],["bsc","concentrated_voting_power","CVP",18,"Concentrated Voting Power","30440220567b41ad19aa3a533994db18f5bf646f59c1d54279deaef4e3748855f01c600a0220570a13d041b6e994e849f7772c149ac12b94ef2b32d8f569ec130f541905c18d","0x5Ec3AdBDae549Dce842e24480Eb2434769e22B2E",!1,!1,null,null],["bsc","contentos","COS",18,"Contentos","3045022100d0187dd53cb74d75b8345a88afc87e93871cc9db40b312142d162e15764fdce802201ea8e6ac11c36855ce497f7c29a930f1eb02d97f1a6c3d854ca9643dd674ad9b","0x96Dd399F9c3AFda1F194182F71600F1B65946501",!0,!1,null,null],["bsc","contracto","LOCK",18,"Contracto","30440220777569763e8f486dc519a7a16fd4d7fae59e969a3951183b710842151d7768d302206280f4a387982bc219dfe684e7ecf9ad465654bc1ba2536b420a728b23e4a0c0","0x559100c4C697Ad514340943625bCeeFF8605cDC3",!0,!0,null,null],["bsc","copiosa_coin","COP",18,"Copiosa Coin","304402200679d67bae219c85cb8f985e6b58717401208d9851d4d196e53be61a1861ff18022017c87f5a260f5da267d0cd97091cd201cd9b7479e1d99be5fdc0f7769a2e040c","0x8789337a176e6e7223Ff115F1CD85C993D42C25c",!1,!1,null,null],["bsc","cornucopias_[via_chainport.io]","COPI",18,"Cornucopias [via ChainPort.io]","304402203fd16b19d59b065277495abd81ea995e2c942e75472f1ebabed85a77f279e9fc022004eaf8704f621bb43ca66666a4d3604a123059765ba9a98d947d1f285cfddd27","0xFeA292e5ea4510881bDB840E3CeC63aBd43f936f",!1,!1,null,null],["bsc","cosmik_finance","COSMIK",5,"Cosmik Finance","304402207f9c3972a6271389867a3f8d3714bf08982c66b80a6adf03dd723130f2194fd702201b3724b0a2ebd66dd0d27a0cb1bede630a655bf39d40b7a40e6a9776857ee0ff","0x7509DB061C45e8EcEb01739D104f78F85eF22Dbf",!0,!0,null,null],["bsc","cp","CP",18,"CP","3045022100a24d81f95026c88a78d08ea4ef1ca65e792a6720414928b751da030c4da253190220102d175297cf14ebbb48e05c7a9587e8d013fcbd5324ca1739881dd11bc92ce9","0x82C19905B036bf4E329740989DCF6aE441AE26c1",!1,!1,null,null],["bsc","cream","CREAM",18,"Cream","304402202fe372550187051a0a37f1dae513e12baf269abccc07aabbff620bfb473ec76d02204cf05b571e735c1e2be464c1e220caf6ef528ade5e3cb934dcb62425e26402ac","0xd4CB328A82bDf5f03eB737f37Fa6B370aef3e888",!0,!1,null,null],["bsc","cream_cardano_token","CRADA",8,"Cream Cardano Token","3045022100d7852e7403ba94eb4a3378bc1c4087f7b562b0c8c1d8e6e7ba58b6fa6c184161022067ec2716945fa21c6c2f16abf5a02039c5d33dc681c3b045ac26b3fd3c3962b3","0x81C15D3E956e55e77E1f3F257f0A65Bd2725fC55",!0,!1,null,null],["bsc","crir_msh","MSH",18,"CRIR MSH","3045022100bb703f57eccb62094668b8499ec98219bd27d9bca7787ea0f33ce48ddc055ebe02204252bde1c056add6126dfb72b2f46bdea1070f3d527c6fecc759ace876d69c1f","0xEae2BBBC0000F605bD37A02c7fE346a3b68B03eb",!1,!1,null,null],["bsc","cross_finance","CRP",18,"Cross Finance","30450221008c0491521a6e3b9fd3b56b278bbf593adf55e20b997c4d94586be286778a4a4e02201ba23a375108b02021aa531351a60a66302948e2fdbaca933a62237d1240d89f","0x1Ad8D89074AFA789A027B9a31d0bd14e254711D0",!0,!1,null,null],["bsc","crosswallet","CWT",18,"CROSSWALLET","3045022100e5943920696fa8f674aa11bd2511c87b749e1f492832ce1eef8fd93282317c7902201d25fb98cd946d8fd3ebc3e7477d9fd205ba335d8a739a11743762e93e1f72d3","0x5A726a26eDB0Df8Fd55f03cc30aF8A7cEa81e78D",!1,!1,null,null],["bsc","crypto_development_services","CDS",8,"Crypto Development Services","3045022100b8a386747af5fe799bdbb03b288f4d80940305547db97709cc1c109760b930770220791e5f0ebb51635a570a9fe11a671e48999cad2dc00fa4be3c25dd6ae35ecb3b","0x23f07a1C03e7C6D0C88e0E05E79B6E3511073fD5",!1,!1,null,null],["bsc","crypto_inu","ABCD",9,"Crypto Inu","3045022100a1b0215b66934f9314b8cb19c56343a71580999614e06f9e9f25b5142d9eb27d022033a671db35416889a8ff0f3a6d3246abbf133e63da9e41b9e9ec7831a0170eb2","0xa0CC3A881AEf241d6cB3B7Db3168BD26094560BE",!0,!0,null,null],["bsc","crypto_jackpot","CJP",18,"Crypto Jackpot","30440220605dbdd3aed2800e14dd78987fe8592dc391e85852d489ff04cd5fc414946c9d022041b51abb5e33a0b1f584b0d380f3942814cc574d116242413889615da0df7ec8","0xEB78DfD268cEE4d50cFA3228b4d112aBa7C105BC",!1,!1,null,null],["bsc","cryptoart.ai","CART",18,"CryptoArt.Ai","3045022100dc063f9170ac4269acaeab0f3821dae144b5d82506ea007ae9cf09b05d10180102201b648a1ad189a01a22a6c0c149533b2babca85bc050b5cb7b30d06f2e0dfd73e","0x5C8C8D560048F34E5f7f8ad71f2f81a89DBd273e",!1,!1,null,null],["bsc","cryptoblades_skill_token","SKILL",18,"CryptoBlades Skill Token","30440220780bcd833f616720518087cab49634af6dc88c5bc2b49ed0dc0bed624338810d022072f7e1bd8f6a1afd19ef8898b493b5ae1546499621fb657d92bb0fa33201f799","0x154A9F9cbd3449AD22FDaE23044319D6eF2a1Fab",!1,!1,null,null],["bsc","cryptocars","CCAR",18,"CryptoCars","304502210092ccf2aba0d9a9a6085ba90f551aeea21f0905ee0e61df32f10f7e4bb49330f402203b00f9d360ccc107f2f56315480ad3ca1addd26d463ba7bf1ae8020854ceaa6e","0x50332bdca94673F33401776365b66CC4e81aC81d",!1,!1,null,null],["bsc","cryptolic","CPTLC",18,"Cryptolic","3045022100aecb06a6f1b3ba869a2351d149be9b712613df37fa6e78dae8e359f4abeea24802205394918366f71fb6c578a2d8342ecd432b401d267f60603587590165b51c4544","0x2F3a64922E82d23cEd259545D4D13BdaD97209ED",!1,!1,null,null],["bsc","cryptonovae","YAE",18,"Cryptonovae","3045022100d8ff5e21c2cb38af5ba43ae900df8578a95ef9eb6c35b56597f8e34f75b6313502203dff6fc5e9ac3f49b4f1de0960fe6287e147b31bd748ed0857b7ec03ef223262","0x4eE438be38F8682ABB089F2BFeA48851C5E71EAF",!1,!1,null,null],["bsc","cryptoswaptoken","CST",18,"CryptoSwapToken","30440220461ed2d082e908b654facd79100830a96754f54082259a76ae1f1dea9ee3a6f4022034b448f1f2912164961a5bca589c19519e68b0e3872ccb57ff594f90fc7d1316","0xcC4b3EA1F25c8772D390dA1DB507832aBE4a9740",!0,!0,null,null],["bsc","csx$","CSX$",18,"CSX$","30440220108c71161ecfefe93d980e754e349f88084154de73e747afa891f116282e8bb5022035951e53097e31a745b9a98fc50c0f2577c477e0023ca2bc40d4cc6205dbaaeb","0x945F59700aAdb28638e544a228a88953bba0Fdee",!1,!1,null,null],["bsc","cubiex","CBIX",18,"Cubiex","3045022100e7c5cd240c362ed368b757f2593b4425b3e0203b96935139d4995dabaaf2ac8f0220300640d1e6083b20fd46bdbefba8196e9e50d52ccd61a2eb1431bb99d2822f0e","0x34681C1035F97E1eDcccec5f142e02FF81a3A230",!0,!1,null,null],["bsc","cultecoin","CULTE",18,"Cultecoin","30440220796bfc389f950df2865cf2ccbb9a07446e83c456e4cfab2adace06d5334a5b6d0220728bad55c4f66a002c06d212ab7099828a9e32debd3c72e009e6b0e3a81a02e4","0x9f0B91e4ee5aAF23f257782dEdec19DC5CDBd11b",!1,!1,null,null],["bsc","cumrocket","CUMMIES",18,"CumRocket","304402206ffc180b02a25ae782015e23a391cefc6fcc80c6436fc85830cdd0da7f6cbff802200308d7cbfaa6d60c57794cd90f298a414967dca28f9a3c23f7469dda773a0db5","0x27Ae27110350B98d564b9A3eeD31bAeBc82d878d",!0,!0,null,null],["bsc","curate","XCUR",8,"Curate","3045022100c0890bb2a18e816637cce30afec0c6ae125622509c3427b4e2636d2821dc4ff0022050a3f9a02ad80968eb7eca7d618ba81d3aa808cfe3d1a5334b5f783f97f1fb4f","0xd52669712f253CD6b2Fe8A8638F66ed726cb770C",!1,!1,null,null],["bsc","curate_on_bsc_","XCUR_",8,"Curate on BSC (old)","304502210092d5276814f486cabd3303b36ead0841eeeebe552a77e2acfe2b5ffdd041a5f7022007d5df667370f02447d366df3e19850b9df0b0fc264798115c1693e8b45a9466","0x708C671Aa997da536869B50B6C67FA0C32Ce80B2",!0,!0,null,null],["bsc","cyberdragon_gold","GOLD",18,"CyberDragon Gold","3045022100cacd1e8aff8fcf95ff47690da626f937bbc0fb3e7f70f989ba381eb59e33ab1902203a2fade0169fe85d4f8818ee5d0497141646e8cf5e046bd922a3c9ec257413e6","0xb3a6381070B1a15169DEA646166EC0699fDAeA79",!1,!1,null,null],["bsc","cyclone_protocol","CYC",18,"Cyclone Protocol","304402204ec203a6755e5c5035e4284124b89af413652bd75585c2672015e8d5d34e6e3502206773a9a73b3a383f55801b45e3869381a28bb0f921c234529f9344f318abd164","0x810EE35443639348aDbbC467b33310d2AB43c168",!1,!1,null,null],["bsc","dalarnia","DAR",6,"Dalarnia","304402205ff06f09af062fc71e88730aa879a934a408f999bb3493d42a14b7e5af0539010220307b01d058d3f238d432b1ad53c1f5f922f2847d12f93274195f882fb2a6c699","0x23CE9e926048273eF83be0A3A8Ba9Cb6D45cd978",!1,!1,null,null],["bsc","dappsy","APP",8,"DAPPSY","30440220547bbb8c42c0cf9ba67e3b97e70dcb2ed848ca717f99806ea1c1cb669a509d56022020a64ec81cf54fdca81511fd4847ea87094a59ea28daa5d1a51dc8b0d16f2cbb","0x81e07CfF8a9331eF2A837B15a3560fb186bF5E8D",!0,!0,null,null],["bsc","dar_utilities_token","DUT",18,"DAR UTILITIES TOKEN","3045022100d449c5583afcd2f6dc3c3972a3d9b00fa3c3758b12d8e547f6d2b2180c09000c022009425157695738d7e239d193baff17dd987ab6eceb2c39406eeff1d59486baa3","0xbccf768576eb4d28Fe3dD21f9EBCf9784E4e092c",!1,!1,null,null],["bsc","dcoreum","DCO",18,"DCOREUM","3045022100a658d66e0fa0bc83f0d9178fb49c241757fadab694da20e6e7eaa8f71123aa2402202fd8d9e7a2e686951c56e1303a0a49548569c695a2bc262c87a30e13a6bc1608","0x25102C5aF2D4FAA83DDBd36d9f6AF5d9c2b84093",!1,!1,null,null],["bsc","deathroad_token","DRACE",18,"DeathRoad Token","3045022100da7926cf0619113f247e7084d8085b3cb402ecabb16f9fa48d3835697fce342102205ad23ca8cceaccd8da9c635c924b3a67fe7842ae427e84cc063e6e7f2c97a9c0","0xA6c897CaaCA3Db7fD6e2D2cE1a00744f40aB87Bb",!1,!1,null,null],["bsc","decentral.games_on_xdai_from_xdai","$DG",18,"decentral.games on xDai from xDai","304402204e3db731aa44ebc9b7777cecb9c73d8653483aa2ea0ef8e7388cd304cadd54a00220523b1003692f98350f314b38a84730dd2eece96e35380a2a197c74a5b2413c2a","0x9Fdc3ae5c814b79dcA2556564047C5e7e5449C19",!1,!1,null,null],["bsc","decentraland","MANA",18,"Decentraland","304502210088af16a28880f8a611681e6bb6963560de017be13162693b33c2f01b96460c360220732b24f97f95d6941c580b9f395ff986b0848e63615808911619e669b47032f0","0x26433c8127d9b4e9B71Eaa15111DF99Ea2EeB2f8",!1,!1,null,null],["bsc","decentralized_community_investment_protocol","DCIP",9,"Decentralized Community Investment Protocol","3045022100b08381b77b31dad0f945b48dafc76d7c087fea4db12740f3f9c173dd65af871502200884251f657dd55a60a43eddd1e152197b75e4dbb5067e506300919a408548a4","0x308FC5CdD559Be5cB62B08A26a4699bBef4a888f",!1,!1,null,null],["bsc","deeper_network","DPR",18,"Deeper Network","3045022100de06d1b9f602caa0815d30fea97197d8084fecaf124a8a86eb24c8bfb05171c202200d24392171187b255d375716402ce8c6cf9e5d2638ac14c4fd37c8d011a5933b","0xA0A2eE912CAF7921eaAbC866c6ef6FEc8f7E90A4",!0,!0,null,null],["bsc","deepspace","DPS",9,"DEEPSPACE","3045022100d230a5e414986eb3d7c6d2ec0b92a2f4ace5c66200404da4b1283c015a4bad4302206282911ffda7c30eb28e652bac204a4f89b8c38c5aeca98b51ffb9972d02f5e0","0xf275e1AC303a4C9D987a2c48b8E555A77FeC3F1C",!1,!1,null,null],["bsc","defi_100","D100",9,"DEFI 100","3045022100e9eb12fbc3a1fa2cc1475e3269b2bdbcef561a3742badc245e4713df5162e2d20220146ee90974f6e7f1f44aef789b5514cd98f8fe43bf947ab2233ce2658e5ccd49","0x9d8AAC497A4b8fe697dd63101d793F0C6A6EEbB6",!0,!1,null,null],["bsc","defi_bank_tycoon","DBTYCOON",18,"DeFi Bank Tycoon","304402201718a4c43b008ce64e8373ecaa0fa067edf74c80dfd721c373ea0f1b9a9eb23302202318cdcd42776f759f0b85b871b45a4375d314db062fc1093d25eea808ceb45e","0x4f5580dD96D8e9f361955001ce47b862b02C52f7",!0,!0,null,null],["bsc","defi_coin","DEFC",9,"DeFi Coin","304402203331076a6792c885fdf3929b4cc0cb03d3a96e53922736f919c8c2cbbad155b7022060745526a52cd29855987cee694e79b2be84dfd6c5d564e1b113e353c0395452","0xeB33cbBe6F1e699574f10606Ed9A495A196476DF",!0,!0,null,null],["bsc","defi_for_you","DFY",18,"DeFi For You.","304402200c6f4b8f4318ee2f5c63dfc3dcb495df0acc16aa2215ae035b0fb4a35de736a702206b8714a50e47d8d038836213aad397b6000636449621e9f366d1477d57c19f46","0xD98560689C6e748DC37bc410B4d3096B1aA3D8C2",!0,!1,null,null],["bsc","defidollar_dao","DFD",18,"DefiDollar DAO","3044022022fb3deeae1611b5ae696d18b78683d50c0c526216d42de2dddf411eaf9c8ff402204f6a582c9c98e3f02d92dd101608f3285c0e19def2e70a4779b0a8268d783b07","0x9899a98b222fCb2f3dbee7dF45d943093a4ff9ff",!1,!1,null,null],["bsc","defina_token","FINA",18,"DEFINA TOKEN","3045022100f9820b848683c4d88453f9e3b4ef2d03f2c7f046c8432b92b811a5e930d8b9c10220691010859ef1738963af0a8e828b8c1a2166894fa4613562f3f711800370339a","0x426c72701833fdDBdFc06c944737C6031645c708",!1,!1,null,null],["bsc","degen.trade","DGN",18,"degen.trade","304402201499c3628498193761ec02741ec7dc54467c040cd62f41f124f4f6b354cbc64a022054ca68b3930ddb1e2caab462dac83313c1fd00e168658735617afbb0bc664a9f","0x72f28c09be1342447fa01Ebc76eF508473d08c5c",!0,!1,null,null],["bsc","dego.finance","DEGO",18,"dego.finance","3045022100a5391c12223d3bf6515d0c1fc5dd5957814bf228c96adfd6cdb22e7751e32c8902206625f28482ff51d2220bbc18d95a146c4473536b788021600f80f69a55981a9b","0x3FdA9383A84C05eC8f7630Fe10AdF1fAC13241CC",!1,!1,null,null],["bsc","delot.io","DELOT",18,"DELOT.IO","3045022100e4f99a4f44f98ff54381d222811ab5bfb2555d5d79f86e55a39b3e57f134b2b802202cea92d3dd65f5a90dea07e91e4f660eb6bd1fe76e6c3a1aa3deea03683af208","0x3e24BBb2c9a0f2fAEcFDBDCa20BBa6F35b73C4CB",!1,!1,null,null],["bsc","derace_token","DERC",18,"DeRace Token","30450221008a24359007c2bf85485001786b8aea505add7892c227bf40b405c85f0263842b02203b4b8286e934d10222e5ce56c8e68a4cf860690877d352d655bafd18ca6466be","0x373E768f79c820aA441540d254dCA6d045c6d25b",!1,!1,null,null],["bsc","deri","DERI",18,"Deri","3045022100f46153554aee2c0e8033a4d3517a1df1b657eb897d53acb0943112a40605d523022046afa2b695461549b71d7fce70ffc7a7b43d1f563cbb71b9a9bcb68493813fe5","0xe60eaf5A997DFAe83739e035b005A33AfdCc6df5",!1,!1,null,null],["bsc","dexe","DEXE",18,"DeXe","304402207a271e0f93a9f96b120b3f78e47ffe0e0df81e754c06852417652ae31788accd0220231669bf9bc97983351806f2057b18dff13db49195fba9ecee9e84b01f00119a","0x039cB485212f996A9DBb85A9a75d898F94d38dA6",!1,!1,null,null],["bsc","dextools","DEXT",18,"DEXTools","30450221009664e3788d8cea3e0f17df29d9865f2ce45daf8b62f864af67e5b574f449cec7022070eb6dbf07daaf0daf16c09aa5d09d2b88a0b2e666de624bda9214c2c09e7639","0xe91a8D2c584Ca93C7405F15c22CdFE53C29896E3",!1,!1,null,null],["bsc","dforce","DF",18,"dForce","3045022100d301264e9eb6317d5a9c2cf71f9e3decb2d91953cb5bfed7db429522007f64d8022052a509904ff19a4d8c2ad7f1c4e10db2cf0d561c0a09f021c496c9e9f28ff95d","0x4A9A2b2b04549C3927dd2c9668A5eF3fCA473623",!0,!1,null,null],["bsc","dfuture_token","DFT",18,"DFuture Token","304402206bd33cfce64fecbca5fc30c14463c050d2326468c50c1f66b1b51de26b5ef0340220498edb81b571d66e28c5957e51be39e9a880f74a484bfa1c0934b75c164dd7b3","0x42712dF5009c20fee340B245b510c0395896cF6e",!1,!1,null,null],["bsc","diamonds_are_forever","DAF",6,"Diamonds Are Forever","3045022100af27c4cfbe80670de9b342f026e96f8ba4e38a88651488cbac0392da8afa801d022013e939f50ade2ee0f4d5c13b9e7e10b114dac34c3a8a13e8006516ddb8b5e6f5","0x8Fb1a59cA2d57B51e5971A85277EFe72c4492983",!1,!1,null,null],["bsc","diatoken","DIA",18,"DIAToken","30440220093e55a475edd37503669a4796a43bea3399d66bb44ac60c890c3b40aaedc33c02204de63ed8d20d6d3e5b0edd66d5ed478d92c0429f9a2b5643aca184e8fb431981","0x99956D38059cf7bEDA96Ec91Aa7BB2477E0901DD",!1,!1,null,null],["bsc","dinoland_metaverse","DNL",18,"Dinoland Metaverse","3044022005838db88878054818e14df4088d28706d0e587aa9a40bd2338fa3fa3ecf45e1022064ac2d7a4dd4ec6645b29f9aaff50f118186283f54c2ab7ade8dc5f9fd1483f9","0x6B9481FB5465ef9Ab9347b332058D894aB09B2f6",!1,!1,null,null],["bsc","ditto","DITTO",9,"Ditto","3044022019256550198ed0560b5c2e37a07acc13e6a5a8d00a6f16e54758c8fcf2120f81022017d29ba87003e9a3b7ef5a4840d427fc4918f412798ba333bea3116916ea688b","0x233d91A0713155003fc4DcE0AFa871b508B3B715",!0,!1,null,null],["bsc","dodo_bird","DODO",18,"DODO bird","304402204657878d9768482532e679ada519997694096eea6e8b7090fa9adf4b66acc36602207bae567df4dd8882a1f9ae7978bcf4a393c5d977cba5e367b99e2a125e41e380","0x67ee3Cb086F8a16f34beE3ca72FAD36F7Db929e2",!0,!1,null,null],["bsc","doge_ipa","DIPA",18,"Doge Ipa","3044022061e83e89d7d70a57b064c9416a795cb0d2b8fa179a363768ba35bea13387b98d022019c4bfc2261dea730b79b9887d826924c811df2f5afca06b0b94fd0141590215","0x7a45d24aFfE81e98a03eE68D10cB2Dc1f857676b",!1,!1,null,null],["bsc","doge_trend_token","DOGETREND",9,"Doge Trend Token","304502210098f0b9a69ab9292209c081b1bc7c988e668ed95ae1d03d555a835267ca6d898202205284b3bac16e444146738baa33355893cd12d5c2c8d13611c9f55ea1f8d2da50","0xE5f30eFA4526D86c4DC020fd8087aDF1D3AFFf2A",!1,!1,null,null],["bsc","dogebonk.com","DOBO",9,"DogeBonk.com","3045022100ffe997128fdf660472da1e93b9cf8dd6f7884b86cfee8dc0ad89a9639e8c1ac2022069e63d6d1b4b1a04394e26331a10df5065eb58bbc0b23a7a2ed10401e14f493b","0xAe2DF9F730c54400934c06a17462c41C08a06ED8",!1,!1,null,null],["bsc","dogedash","DOGEDASH",18,"DogeDash","304402203f465d025557ae19dab1e755c1f32c29a040e62a18b9a9b91cc4463257caa0cb022027345d82db485ff7800a9600007ee3d307dfc52f7bc440e51451557009162f91","0x7AE5709c585cCFB3e61fF312EC632C21A5F03F70",!1,!1,null,null],["bsc","dogelon_mars","ELON",18,"Dogelon Mars","3044022038559a1e06cc253e804c84c4b238fe1572fd04a9e9e4da943b695970bc9db0b6022043db8f3eb908b8ac0580ea4d069a009217643a6a967be557a6061726d5eab36f","0x7bd6FaBD64813c48545C9c0e312A0099d9be2540",!1,!1,null,null],["bsc","doggy","DOGGY",18,"DOGGY","3044022036c0983feef9de590b6e12b78dbc74974654aac747fb6f406c6eb79dfae44946022078541a0643fb86da8bc83a88e6911fb8bf7815a0882f704d0cd1c9f7617b51c4","0x74926B3d118a63F6958922d3DC05eB9C6E6E00c6",!0,!1,null,null],["bsc","dopple_token","DOP",18,"Dopple Token","3045022100d3cb3d9c2b50bed3545e75002979a0cc59cf3ae1577477e1c5d44edc7cc8f30402206688311f8ebaf88df6dbd0f784209cf784c1cf32eef490a7562dd633061988ec","0x844FA82f1E54824655470970F7004Dd90546bB28",!1,!1,null,null],["bsc","dor_token","DOR",18,"Dor Token","30450221009fcf9a7ad01df764f31565edcf2417022c50871d4659e5d82be99b1c6b03f0d20220222aeec9aa995acbcdece241772cae54b2d5a23cfbfb1ada0cc0c3e2c638a158","0x3465fD2D9f900e34280aBab60E8d9987B5b5bb47",!1,!1,null,null],["bsc","dos_network_token_bep20","DOS",18,"DOS Network Token BEP20","3045022100fa48339cf113ebdb8f177c5056808086086ad7c8619b4d60a590a72be010963a022008ca9ec6796286fed096fd7a10a8a82de377e20e4267d3930717da9ba155236b","0xDc0f0a5719c39764b011eDd02811BD228296887C",!0,!1,null,null],["bsc","dose","DOSE",18,"DOSE","3045022100de650589b427c5be6bda55ff72f1dc8e7349027f8bfb0ebe6b0679dfe5fe688102203aa1e07de4f966f7bd4c3dde55473e20a9aedaf96ca5edb425fc22b32446c86b","0x7837fd820bA38f95c54D6dAC4ca3751b81511357",!1,!1,null,null],["bsc","dragonslayer","DRS",9,"DragonSlayer","3045022100e55da1d9a4f6f41f19bb6630b0c511d2d1a5b4b1d9675aa6034be7cbdc6dc6b402207f1164df57482136c5fc0eb6fc284903dd523849de2b1ac3d0794cc8c28f4148","0xc8E8ecB2A5B5d1eCFf007BF74d15A86434aA0c5C",!1,!1,null,null],["bsc","drip_token","DRIP",18,"DRIP Token","304402206d1576bdc761ef3856bee0eae12cf4475c7a8dedad893f2e71bf64ea409118e2022057408b3ea00d90e9349fad49cd3d2fa8a557745c288701ccd30a0b9634693e17","0x20f663CEa80FaCE82ACDFA3aAE6862d246cE0333",!1,!1,null,null],["bsc","duckdaodime","DDIM",18,"DuckDaoDime","3044022022a5444e4e5c0951c533d1a08eca10d878048197dece3460a82b9e2123dff848022051fe2068e13df2d845f8eff64e85cac683d5e706e91c6636ba2b54bf1ca652e5","0xc9132C76060F6b319764Ea075973a650A1a53bC9",!0,!1,null,null],["bsc","dusk_network","DUSK",18,"Dusk Network","3045022100dbea4dc673954f4b44ee55b6b12d3d88515cd532da19db0218ee7405bce4142202204b93390de28ba11504daebfd2996aaeed4b8b5e6922a153301176e92b9eb4a84","0xB2BD0749DBE21f623d9BABa856D3B0f0e1BFEc9C",!1,!1,null,null],["bsc","dvision","DVI",18,"Dvision","30440220627616a7cb5323e7981328247b1d9197d8ccf7d0453c8e2942f09ea686cee8e3022026e4d1e349dfe9fefc1ba454785f896b320fe7003ba8fc234190240f70201ace","0x758FB037A375F17c7e195CC634D77dA4F554255B",!1,!1,null,null],["bsc","dvx","DRIVENX",18,"DVX","30450221008d0cf0aaed5a445aab90a55073e608125ead6da5e7bdc192fd97b86d57ebfeea0220694eca71d5cd846beef66d83e5a9984ae805eda41a295bccbf0e6963352e3cd7","0x6db3972c6a5535708e7A4F7Ad52F24d178D9A93e",!1,!1,null,null],["bsc","earthbyt","EBYT",18,"EarthByt","3044022052d8b6dc98c517963edeae9d03618a852c111de057c41caf0072f691e655b84a0220602516d8bb8fcbe74a394e1fd401db8d4e691dbfbd642535806046bbe91b6283","0x0D1AfEcE252fF513C5D210AEAE88f6C7D37e6ab2",!1,!1,null,null],["bsc","easy_v2","EZ",18,"Easy V2","3044022068fc512fcccea22dbc546dd7449013edcb7519e04f7300f34fa96204f8984d7e022065a5ac55526d5a75e32f0b10eec2a426f5fa08026f506fd59fff0fb9950000bf","0x5512014efa6Cd57764Fa743756F7a6Ce3358cC83",!0,!1,null,null],["bsc","ecoin_finance","ECOIN",18,"Ecoin Finance","3045022100e14d55e6f5a35cc6193cb22153afdd806823f85f4443e86796d8bdaa2df3c4f802201461e0d2a9a83ab300bee2eaa163b3db4568f5fcc08dd6988ac3f9eace7411c4","0x7d38315b92d0E7A85B35B2b7FE969B25935619D7",!0,!0,null,null],["bsc","eifi","EIFI",8,"Eifi","30440220751197b47f655d8aab7f789613bc46ea97c1949603adb2d41429abaeecbb09ba022005d5ea4c9348a6a3e6334e48c0d589aa93e52b2c1fa1634890d4da776d86bd5a","0xbbf33a3c83Cf86D0965A66E108669D272DFE4214",!1,!1,null,null],["bsc","elemon_token","ELMON",18,"Elemon Token","3045022100c72bd21bf33d3334210fce5b7c8ae7a36dd3d2d16482c417451b50f04d21be96022068ead300c998a465c7945936002c6c39d4b39ca004a10137fd8a18ea4d5d7f07","0xE3233fdb23F1c27aB37Bd66A19a1f1762fCf5f3F",!1,!1,null,null],["bsc","elephant_money","ELEPHANT",9,"Elephant Money","3045022100ee2891bb1355cf4aaf7bec732869b54c030774ba464dd0b6504f9d1efaeb78b102206b61a823d3651223a4efabc205a3f849e58b08cb2572ede008d4458739dc3d96","0xE283D0e3B8c102BAdF5E8166B73E02D96d92F688",!1,!1,null,null],["bsc","elephant_money_stable","TRUNK",18,"Elephant Money Stable","304402200180906f69f31b45914209d5aa43398184124d339a6d17704e54c21d6e1ed9e90220561d886d65204f5e23af7f8de6036a1d1ecf55199671800de33b52ff52b97ca3","0xdd325C38b12903B727D16961e61333f4871A70E0",!0,!1,null,null],["bsc","elite_swap_binance_token","ELTB",18,"Elite Swap Binance Token","304402202cf48e5f972403924dbf9da53fd4f84c006b4246f194a2318cbf56ca4ce00615022014e7c6ba0efed452ef3bc6e7df2784c3b596af044be363158ce0481ceb1d88d1","0x380291A9A8593B39f123cF39cc1cc47463330b1F",!0,!1,null,null],["bsc","ellipsis","EPS",18,"Ellipsis","3044022072900611f433e5f0cdb5160cc8a839fe41c10e39107f67b0c2a5538042bd99150220233255b823b9ecd5ad3b43efcede0059f6400760c079ebb495c40e59c783e3e0","0xA7f552078dcC247C2684336020c03648500C6d9F",!0,!1,null,null],["bsc","ellipsis_x","EPX",18,"Ellipsis X","304502210098ea0b08e56980c99dfb400a52866c1f3dd613d7fa86ba72ac349ba4dcf7e41702203c9e5083fa904cd605616eee39d9b60e5800cb27a31d869fde4f2d941742c812","0xAf41054C1487b0e5E2B9250C0332eCBCe6CE9d71",!1,!1,null,null],["bsc","elon_buys_twitter","EBT",18,"ELON BUYS TWITTER","304402204cffd0ec8dd85138314e45ccf8afa4bb4349eed751902023c8889ac82e9632de022078c7b394acb9f01555ae5642bf9c5920f52dd2b2ed82768c3c27683835bb824a","0x9953c06De9be121D987c374Ea34deB37943ca326",!0,!0,null,null],["bsc","elongrow","ELON",9,"ElonGrow","30440220530ce45a3e26c6e8c7e52ac5b0b68a79030729e785e80af5ee54f0bd02fb68e202206618f5278a5a9149f1f29a8e917b1686f0aba06e45b5e482103b00b3fc1e9243","0x17f66419b649266c8b24eaF8CDa078b9A761Ceda",!0,!0,null,null],["bsc","ember","EMBER",18,"Ember","3044022040fdab8faf8e2b50c799112fa49edeb6c2c06b42e963f3453fe4394a63d1d3e602200559d7455895cada5811b5a2532bac8abd21ad2f438c4c185c5ec1d6f0e1e821","0x36A8fCb1F8BcA02dc74eB34281DE3B9143eAE8E3",!1,!1,null,null],["bsc","embr","EMBR",18,"EMBR","30440220015bef3e1963b599e6a57a05884977c4344c9f884dc5666815de2e1e82eef16302206ed00983924c37743e42b14663d3d3d880978c19eff12a232d0d335527f4ccb2","0x6CB8065F96d63630425fd95A408A0D6cD697C662",!1,!1,null,null],["bsc","empire_token","EMPIRE",9,"Empire Token","3044022009b58e4ddbb7106dd14dba64adb4d8a54f499d958bce04099b32c04be4af48b002202d2cbb3419a9c644737d656ff1b0e9ed43e209227a55241c38212cebd0b9ed33","0x293C3Ee9ABaCb08BB8ceD107987F00EfD1539288",!1,!1,null,null],["bsc","empiricus_token","EMP",9,"Empiricus Token","3045022100fa699f51a9422059dac2af0618a0dddccddfe2c6cb1ba98b4f9a35be377d54ae022018ed4e8376e9b322ac6848a991ef0c06ae991901f395f01429ceef76359d0d88","0x86A45b508a375ac8f0FD387e7532B70f71291152",!0,!1,null,null],["bsc","energyfi_token","EFT",18,"Energyfi Token","30430220643fc33402afcd41adedf82c8f641d661a08fbca25b1950253568d6a2b8858e6021f26317493556f315dbe50de389c28392f2bb12a045e14eb13a585add93d2e2e","0xAe98E63dB1c4646BF5b40B29c664Bc922f71Bc65",!1,!1,null,null],["bsc","epichain","EPI",18,"EpiChain","30440220219b3b004f7e1ac7f944267ee3a8fbc51ca3c925120ae8f4912c204205c17abf022000844fa33076f5cc9de11ae8224f33457e4fce885766515596259b360a19ce8b","0xEF15ec1CaC3D6a48f917ec1861e7b7d9565758D1",!1,!1,null,null],["bsc","epik_prime_[via_chainport.io]","EPIK",18,"Epik Prime [via ChainPort.io]","3044022031ba3954a037a23ef31304af72529a8b9562815f374bd42f1df3e78ef91fd9a8022074f7ea8d6631919f483dd4230020046396f348c98dc1d772ede966320af2cd0b","0x368ce786Ea190f32439074e8d22e12ecb718B44c",!0,!0,null,null],["bsc","eron","ERON",9,"ERON","30440220750c2f6735a8c51167f93d443164ce96fe8d15b9e3de13aaabd6cd12f9d99748022007bfe9c16837d9273adc3fddaa4cf164777d9508d946be7815129581f28be1ca","0xB9f32A64ba104F22f34b7eA4FCA712E507CE1B99",!1,!1,null,null],["bsc","ertha_token","ERTHA",18,"ERTHA Token","304402203f019759c6b722b9a33ecc24cef91ca1da676f3f8005faf54852b9553123cdde022031cc74a0be63e73a39e96fec406b2d07eb2c1db812cd9755390045ddf82b5aea","0x62823659d09F9F9D2222058878f89437425eB261",!1,!1,null,null],["bsc","etherconnect_coin","ECC",8,"Etherconnect Coin","3045022100ea79455b72573029fc0cc58777982433877d6fdffa7350e2a3af70c8ea4fda7702200a0599a2968177cfa97c31b7a7cdfbc1698abd3e9250146a26aab2adcc9e705b","0x8D047F4F57A190C96c8b9704B39A1379E999D82B",!1,!1,null,null],["bsc","ev_direct_currency","EVDC",9,"EV Direct Currency","304402204a22624e7e2e28ebdb2b00ef1f956db18d6738dc1b5f77320e24d42cd4b6966002203a56bfeafe0c447576bc208b035eeeaffbd6e938ebddaf60ff27e6e70d67fa90","0xC3B4C4eF3fE02aD91cB57efda593ed07A9278cc0",!1,!1,null,null],["bsc","everdome","DOME",18,"Everdome","3045022100fa9b9460a5e68dfe3eba9a74697c3d58f1994f4c5c4691a1352a924623a7dbc702206ddc4b1ae605b772584843d03dce569ba29603b5148d92f1a8e1e326f4f62f93","0x475bFaa1848591ae0E6aB69600f48d828f61a80E",!1,!1,null,null],["bsc","evereth","EVERETH",9,"EverETH","3045022100edd12429759de94e1388e06a7913558752576ddd2518f5b709eb037b8d8d1fe302203034d4bdefa691caa477ab555a48cfb89e245e6f905bcf4d92ecdd386d2d4170","0x16dCc0eC78E91e868DCa64bE86aeC62bf7C61037",!1,!1,null,null],["bsc","evergrow_coin","EGC",9,"EverGrow Coin","304402202c94f30a3524063628acdca6e4810adff6d2f796fd9497444623090adb39bbc3022029469635f0dbe1cc3a7bdafdd6a18056928fa7b6a3327c7fde3f4b2a76d749d5","0xC001BBe2B87079294C63EcE98BdD0a88D761434e",!0,!0,null,null],["bsc","everrise","RISE",18,"EverRise","304402205ec16bd2b64fcff48b57dfb0e52e29364e6624d3f6074fb7eb3aba3630ad8f7602202f434000f4f6d91fa6df890848b3af661fb38c09f3cecc8e339259d04c42f53b","0xC17c30e98541188614dF99239cABD40280810cA3",!1,!1,null,null],["bsc","exeedme","XED",18,"Exeedme","30440220220c93452c230dec64ac0eb7f63f42c525c8ff165d408fd47dccafedeff26cea02206cf46af266d9c25499788cf591c0b828beeaef20bfc353da266472991abf6097","0x5621b5A3f4a8008c4CCDd1b942B121c8B1944F1f",!1,!1,null,null],["bsc","exonova","NOVA",9,"Exonova","3044022011074e5fa3237352bb85c2ff9f729f63e45ef834569a4556bf7aa238064ffb7702207fd1b57aef278809626d2eb77890b8dd1539b4edc663fae50642d737055e2690","0xf6ED243538EB71acb278C001Fefb5775e100ec3D",!1,!1,null,null],["bsc","extend_finance","EXF",9,"Extend Finance","3045022100d56cfa58513fda0db2167ea711b5337d8568ef2e116af3abe6d414255af66bd9022053345ff4bceb15af6daca9ba178b1c3759b59e38a8a1f66c54b1032a6271951b","0x6306e883493824Ccf606D90E25F68a28e47b98a3",!0,!1,null,null],["bsc","fame_mma","FAME",18,"FAME MMA","304402203d90b0ebd9a7f0a359ce2e6ba7cba3dd6545dd8510178d85ae3d6d1a41be3eb3022041f752a2055d892841f5079bf8c1714f78f91031fae3f25afa63229d0ec12012","0x28cE223853D123b52C74439B10b43366d73Fd3B5",!0,!0,null,null],["bsc","fantom","FTM",18,"Fantom","30450221008a11bfa0c69cd5c5b5146bfbed88b13a2e8d15e611b68f86a70e4d1b22294d4702206ebcd89a1aec8d654aee95f03a6c62d5261c29070c7a657405eef0de41e95463","0xAD29AbB318791D579433D831ed122aFeAf29dcfe",!1,!1,null,null],["bsc","faracrystal","FARA",18,"FaraCrystal","3045022100e8fcfc5e16e8e9b510017577d22dca27e96e9f083ff16b4fc6a1a27cd62ba61802207eecf2fe1ea932173e3504e7a582847409f9e822f9bf9c1670a4d4782401eb86","0xF4Ed363144981D3A65f42e7D0DC54FF9EEf559A1",!1,!1,null,null],["bsc","fc_lazio_fan_token","LAZIO",8,"FC Lazio Fan Token","3045022100dcab53b18a1251d2a75802c4f86f8f794359da8fe8a7a576688e8091c9aa4a87022065e1ba9526261ff23b12a926fb875a890e2168e48a52c428e70d6f887d7f6194","0x77d547256A2cD95F32F67aE0313E450Ac200648d",!0,!0,null,null],["bsc","fc_santos_fan_token","SANTOS",8,"FC Santos Fan Token","304402204ce23e66d4b6608502f8b4301fc18214357ce5d492d933593b5aa81ccae67f3c022032eee0e852f241a392a891937e954a34e25b47271aa0658cf01c2e28d1f3703d","0xA64455a4553C9034236734FadDAddbb64aCE4Cc7",!1,!1,null,null],["bsc","fegtoken","FEG",9,"FEGtoken","3045022100ace7eb2c5b5d950d6b9a5ffad303cc6f3250a9fe63692bda25100e8ed59a2460022068a3694b1470f8ff282032d4e7a60dd0601efe9f3ea9f9b5e281b7df3a3ce75a","0xacFC95585D80Ab62f67A14C566C1b7a49Fe91167",!1,!1,null,null],["bsc","ferrum_network_token","FRM",18,"Ferrum Network Token","3044022067f8636f54ef65f12dcd510ede0c3f890ff1b19f12ba8871efdcd7cdceaf44fd022025e2c8e64b37e667b203d9df9c9292ca00de97129f5c65bd8e6b32b8003c6ddc","0xA719b8aB7EA7AF0DDb4358719a34631bb79d15Dc",!1,!1,null,null],["bsc","fetch","FET",18,"Fetch","3044022057b0661ee9217fb149bcf52d42998f2a66b454b9c0e4f671e162115ff08ab297022007cf834f066212f7ce79c8168226791fa2b741ad9758c0ba624e5d26d416d5a3","0x031b41e504677879370e9DBcF937283A8691Fa7f",!1,!1,null,null],["bsc","fevrtoken","FEVR",18,"FevrToken","3045022100b1773ee6bea9697c9149616b6ba875d9e14b33e8dfe4b7f8e71e69b0ffd5761f02206e65506238ac37c9bb4c9ba239c4f26e4e3ebdaca811906d1b011ba61439f3ce","0x82030CDBD9e4B7c5bb0b811A61DA6360D69449cc",!0,!0,null,null],["bsc","fibo_token_","FIBO_",9,"Fibo Token (old)","3045022100a3be3e4b55e6422c60b5df28cea8cec991064f58ddba839b9188ed6edfeb5eba022034f3c309f67cccb9e57d97a52acbdd0b4cd8623915c2470b684df65a44887111","0x5067c6e9E6c443372f2E62946273ABbF3Cc2f2B3",!0,!0,null,null],["bsc","finnexus","FNX",18,"FinNexus","3045022100ab2bd495880e55db55102c505b5fff2f627dba88bbf6b171a3be67c5db7436df022056a394d737ebb774322db9a1fee380fc657c85eb69b1c498eb5a68a1d6a1c761","0xdFd9e2A17596caD6295EcFfDa42D9B6F63F7B5d5",!0,!1,null,null],["bsc","firepin","FRPN",12,"Firepin","304402204961e79d63eeec20aeb718b0249fb481e0b32b569ac33a28b645edb6e19c9f2f0220105202dd58c1e34665d2a4a35ca57075dea7d8b346ad795dfe38946f25b6f998","0x2F1F71377e5C1070c6694171CFBde0eb6daf8023",!1,!1,null,null],["bsc","firo","FIRO",8,"Firo","3045022100f19b1cb8088a3e2aa438f571027651ef5673780d642e07a67e26fc10cffe8d6002200f4c291af2e27e5a697b3eccd43b6678f29d76013a7b2071ca34e3aa365efc28","0xd5d0322b6bAb6a762C79f8c81A0B674778E13aeD",!0,!1,null,null],["bsc","flash_token","FLASH",18,"Flash Token","3045022100d2212e310220c518a0e1d747ba3d8054c195f9aaddee1553174126d63944f68002202f80f947f027f0c14807e5b3b42e0ace34b92679a39b86d4e5c536feb7e02245","0x311E015E2e255Dd14edDc4a2107e39649dc81c5D",!1,!1,null,null],["bsc","flashx_ultra","FSXU",8,"FlashX Ultra","304402206a0edd0b79bace11aad26defb29588342dbcb013106890be37b0e503cf6116ab02207817775325b94882d778067fe7402d40b42eea0469d47e0f6d574a2cde5226fd","0xa94b7a842aADB617a0B08fA744e033C6De2f7595",!0,!1,null,null],["bsc","floki","FLOKI",9,"FLOKI","3044022010e3423e62145123f21c5d8e4915634d4c1e0cd949c008014a50132fec849abe0220156f345545564c842bd28a1faa6c712632740178011cac3f3366aac7ee98c3be","0xfb5B838b6cfEEdC2873aB27866079AC55363D37E",!1,!1,null,null],["bsc","floki_","FLOKI_",9,"FLOKI","304402207c7f1fb8014265eb73f3a0f84ac73d47eb93eeefbcd1a33410764331fba11096022062d327bb2b0030e38172fc3246391b7ea7cbafc67d0bbafe2f5fbde919de9537","0x2B3F34e9D4b127797CE6244Ea341a83733ddd6E4",!0,!0,null,null],["bsc","floki_rocket","RLOKI",18,"Floki Rocket","304402202326927447b1426db2fc511bbf1c0bae8d67b69eb3bef2f31779b42d194f8ae1022072c839b999acd492cd014e34e59ce618836e5f1d37f1bbb4fbf89db05a5a21d9","0x1476e96FAdb37668d7680921297e2ab98Ec36c2F",!1,!1,null,null],["bsc","flokimooni","FLOKIM",18,"Flokimooni","304402204788921c1c720a2a6ed1e5bbdcf6a3d10bd4f983015d9416fc5e917ffc7d1025022006907c98926f042660b017bf7bf0f9e04b8f2cf70c7bfbcafcd03bf5d41139e8","0x0f5351B9EAefd6687dfF143DE6eA5d01cB9c1205",!1,!1,null,null],["bsc","florkinomics","FLORKIN",4,"Florkinomics","3044022029ed4dc50da279c8e24de25e911a91a67737851ca3d790279ef1c6925c5723ce02207d8c39b406e77b8564920e1e271d0ce573e3a0ab771b8d10e7977216a5e9fd46","0x9e54e3E995DD99174bF436CD36CAA75756c6CeAb",!1,!1,null,null],["bsc","flux","FLUX",8,"Flux","3045022100d07324c6d08d6cbef2e50b329e3fb3d5ac6f4d5418ba302bbe81b632517ac744022015f4fee4d116d99eab709a7ab2f9b2a4350168e8f68bed2c0e7c51ec614ec6a3","0xaFF9084f2374585879e8B434C399E29E80ccE635",!1,!1,null,null],["bsc","formation_finance","FORM",18,"Formation Finance","30450221008ef1d3e2daeb314ce068b5b77b8bfd7ba0ad1e6d1f3462412b354029453d64f7022008302b958ba1d391a31317db57a527f2381a2822aebb44b6acb0d697d01599bf","0x25A528af62e56512A19ce8c3cAB427807c28CC19",!1,!1,null,null],["bsc","foxfinancev2","FOXV2",9,"FoxFinanceV2","3045022100c34998b4f176aa17a05fb47d2c2b859f2b862e4dfdc701c56ad0c7f06f1b375602204fa895f7930fb18323ba821b75bba6164f59d6efde83ca00e067447c9543c88a","0x16a7460B9246AE508f18e87bDa4e5B4C1AE8F112",!1,!1,null,null],["bsc","free_coin_bsc","FREE",18,"FREE coin BSC","30450221009e4c965c94ca9c99685c9c7e16887ed055c7db2412bf7b37da17e1cce8f8c9f40220397903a6cf8241e3cc1b16386f029930d86e239b5560ab8a3ff01b56d78863ed","0x12e34cDf6A031a10FE241864c32fB03a4FDaD739",!0,!1,null,null],["bsc","frmx_token","FRMX",18,"FRMx Token","30450221008997e7549bf498775a27d8fce7938723f11899ddd185aa590ee7fe86dca5f9a50220589f0dfbf75935426b40cdd67a13a58a7927cebd7c5dd4157e5ae07b13416fa7","0x8523518001ad5d24b2A04e8729743C0643A316c0",!1,!1,null,null],["bsc","frog_inu","FGI",9,"Frog Inu","30440220713f6230e803697e533c3c62ba5e632e925d58f9041ddc2311948510c90bf96d02206c64c1d9a2f59502228b6a392d8162b815af18cc5631225f532dbee22decc966","0xE5c355c993dE69C06b5DD1A0c9a2c39b4Cde5511",!1,!1,null,null],["bsc","frontier_token","FRONT",18,"Frontier Token","3045022100ec1c015b91493527aee541cbbd675568c89f0f904958b93ca5693bc1bfd7c7d702204026f3c04badf9d5ccc945d411d43336bb7b9e533ec05f36fdae1b98c0bf38e8","0x928e55daB735aa8260AF3cEDadA18B5f70C72f1b",!0,!1,null,null],["bsc","fry.ketchupv2","KHP",18,"fry.KetchupV2","3044022028f4e11187edc1cadc1743dd8adbd9120233efbe6659c17abc0afc2ab58baf5602207994f34cd9838ab9d0c59b3f56bafa5bd7973e129b78bec70103deda9816ba73","0x15B3d410fCd0d695E1bbe4F717F8E1B6D0Fb2D0C",!0,!1,null,null],["bsc","fry.world","FRIES",18,"fry.world","3045022100b09318518adbc6e19f1bd1a2b25864b0a35b12d88f14c8ac7cfbc0bc1def3b120220227ee735e1d708ce7eba46ed79b5fe57a4cbc9134a380667263fb8453cfb017c","0x393B312C01048b3ed2720bF1B090084C09e408A1",!0,!1,null,null],["bsc","fuel_token","FUEL",18,"Fuel Token","3044022015d989fbe30df797e62fbb0a2b38b2fce61735ff2d3ed4f72ce648b563dc1f0c0220361bc794d5e47ab350498df617b313becabaed2a65e6375574be667a67db4c23","0x2090c8295769791ab7A3CF1CC6e0AA19F35e441A",!0,!1,null,null],["bsc","furio","FUR",18,"Furio","3043021f1325a85de9ea7fb430f6f1033c0aab4fb5b6d701220c16956024cd3651431302202f2be2159fddfe5c73206e9034c21331968b2818df510ec36bf4b087fc207373","0x48378891d6E459ca9a56B88b406E8F4eAB2e39bF",!1,!1,null,null],["bsc","fuse_token_on_bsc","FUSE",18,"Fuse Token on BSC","3044022025cf22af71dd5d2ffb1754b939aed3083b6a47617ee8a5197c17f3e4408db87102200f865602febf0ca591e90decf05ceec473e9a6875701f463b8e4e87b97489b1a","0x5857c96DaE9cF8511B08Cb07f85753C472D36Ea3",!0,!1,null,null],["bsc","fusible_-_fusible.io","FUSII",18,"Fusible - Fusible.io","304402204d1567cceb85b623d2018468c1c09d827cbe817b9f3262b1e96810ec4a60322f0220425bedfc9418a601bc454d995d6732672c97f8aabe22055cacaa187c55ef4984","0x3A50d6daacc82f17A2434184fE904fC45542A734",!0,!1,null,null],["bsc","galaxy_heroes_coin","GHC",9,"Galaxy Heroes Coin","3045022100f1c089884d115ed613afc7f4729d27be0bae453bf798ae89e7b9c6365a080a55022022c19f7f5e6b74d4891f9a7fcfe23e5c923d34bfe5881ca8c52071d7d857b519","0x683fae4411249Ca05243dfb919c20920f3f5bfE0",!0,!0,null,null],["bsc","galeon","GALEON",18,"Galeon","304402200aaaf72e4636abb5bd4cab399aecd37a5669036f69c11e4c614841162278bf39022055616dc463669c42630c7b078d5a18827cbbb858ff242b4af4abcbee2015176e","0x1d0Ac23F03870f768ca005c84cBb6FB82aa884fD",!1,!1,null,null],["bsc","gamee","GMEE",18,"GAMEE","304402207438290e16e890b6470067cb3eec5da4db470c6ca849d6753cd952e77e3e204f0220798a1a47c1f4ac3b75563034493ab31b2077a273663336020d322849f534bff0","0x84e9a6F9D240FdD33801f7135908BfA16866939A",!1,!1,null,null],["bsc","gamefi","GAFI",18,"GameFi","3045022100e6a2295981f168533ab212cb89356a4e2347a0371e3db464cfc82bfaa59221cf022000a59a9637bd9ae12696492ca9567b628302902b9d5f60fb5c2d17acb1151db5","0x89Af13A10b32F1b2f8d1588f93027F69B6F4E27e",!1,!1,null,null],["bsc","gamer","GMR",18,"GAMER","3044022066d51fb0988a1a33e6f9213cd83666e26d2985ed1f1bf268ebf09ea16b0d488502202b520f529790f79d80678e0082ce8109202d8f303677c87f7dc7ae59ece553e5","0xADCa52302e0a6c2d5D68EDCdB4Ac75DeB5466884",!1,!1,null,null],["bsc","gamezone.io","GZONE",18,"GAMEZONE.io","3044022028017af6f910789e3e6423453949a7ca65b90f0f482618668bc42c0f3f9d075102203136d15739bb4a9d89fdee31a99776a2f13e810b436ce112ee3cc2a85b96829a","0xb6ADB74efb5801160Ff749b1985Fd3bD5000e938",!1,!1,null,null],["bsc","gamium","GMM",18,"Gamium","30450221009faefe450a61a147fb9ccbae61d5b4f91e2289d2148112afab11da643a566de8022070069308a228a715779264f657536671cb763260b756239d3f061eb3fcc0de8a","0x5B6bf0c7f989dE824677cFBD507D9635965e9cD3",!0,!0,null,null],["bsc","gamyfi","GFX",18,"GamyFi","3045022100911be36f33bd2e33ca3fa1fb5bfef36d1ff5bca28a67e3aa2046b06d52fb80cb02200cb50a72a1a6130f17ae0aa9d68204668ad2e7696f99e7662ce850776293ba43","0xE4fA3C576c31696322e8d7165C5965d5a1F6A1A5",!0,!1,null,null],["bsc","gemlink","GLINK",8,"Gemlink","3045022100b85609ac20f4d9a01b950fa98d7722f9a347ff567a341291eabeeba454c1eb1402203fbc508e42ba52368b10c0e7434895ece3200ee42bd6f8b5784025728c69eed7","0x0eE7292BD28F4A490F849Fb30C28CAbAB9440f9E",!1,!1,null,null],["bsc","genta","GENA",18,"Genta","304402203b8a675c82137f0444b97982c15810fa4a0812a6997ba4afce9e33f3fc07f02b022017cc7f80899cc1ed57340788834580f130e0a60f74ebee42239950db4fd4bf12","0x7f4959528D4C9c7379b3437C7Eea40376fD96B8a",!0,!1,null,null],["bsc","gforce","GFCE",9,"GFORCE","304402202928c0c8a14c142d25f0ae8a81c4fd9db4b6e906fee852064922791bd64bbd2a02202115ac360e2f2d1d2cfb3c990528f727dd83ea6f01bc3bdbdc86605574821817","0x94BaBBE728D9411612Ee41b20241a6FA251b26Ce",!0,!1,null,null],["bsc","gg_token","GGTKN",18,"GG TOKEN","3045022100bf2f189ce31e1df528fdc6949fa0c263b3aed8df28944c3d49d62621f5f6cf510220794148a408d070cbc66c783e0fbd945cc9dc18af3f1471360de35763cae3770d","0x1F7e8fe01AEbA6fDAEA85161746f4D53DC9bdA4F",!1,!1,null,null],["bsc","glitch","GLCH",18,"Glitch","3045022100d8627ced0c8b591860aee753de84d000a796e14fa90100587592159fc4b14acc0220079ec0f64164d76be580cb0e7fae4c377dc89b7ed6a482a9852fdf80d9c5ae2f","0xF0902eB0049A4003793BAb33F3566A22D2834442",!1,!1,null,null],["bsc","gnox","GNOX",9,"Gnox","3045022100df18dc9388c8274928b7e26b38b31738dcf32505b892bd80109d3ede23ce6b0702207838f8ef94a1337f29a400d18c40e503b5faef620be1de0a88fa15311aaa8e2d","0x132f6f1743e45880aF91D25257e02DB1839bb5Ed",!1,!1,null,null],["bsc","gomining_token","GMT",18,"GMT Token","3044022068c3207fb4458ace11a20d5c88ea26073b1a54350f4dcbfdb6853cf32a2ebcbd022052a2574a6213d0dc4169a7ba09ebe50107bd1269b190979aef9b7872380bed62","0x7Ddc52c4De30e94Be3A6A0A2b259b2850f421989",!1,!1,null,null],["bsc","good_games_guild","GGG",18,"Good Games Guild","304402202a28c1d100752232eeb7305a6e27327f7be8a7550a4591812300de4787944040022075d034d47da1cafd80f1f6da1676f53e7c21bbf45b6ae3f4c4a5444882f7667d","0xD8047AFECB86e44eFf3aDd991B9F063eD4ca716B",!1,!1,null,null],["bsc","goose_coin","GOOSE",2,"Goose Coin","30440220214fc31a56c6e7eaba0bc75d8d08fc151bbb1455c12848736268bed695e41f93022057548eba800655f599ed8b46da4e8c418f358e99fbefc42d551a1032af4aa32d","0xfb11D7ffdE8D643F5368C62fA9943BceaBcB0c36",!1,!1,null,null],["bsc","goose_golden_egg","EGG",18,"Goose Golden Egg","304402203747d64d38c1ca3ac9ad1f66d5103df88d970783a830472c8c55a8819397df2b0220520983ab13ece942d0bfc1522535def817b1620d36aae09095870c5e2f4c2eb1","0xF952Fc3ca7325Cc27D15885d37117676d25BfdA6",!0,!1,null,null],["bsc","gorilladiamond","GDT",9,"GorillaDiamond","304402203272002f03632a17d4164f2ec1282b2ed7e3a7b70291bf63f4164bc26345788202201147705ad2f9c35ce6fc22c37c2481db6c4b2c6a5e1404e52cdc61a3215f1b90","0xb7F2bca9b034f8cc143339Dd12bb31D3D50Cf27a",!1,!1,null,null],["bsc","goswapp","GOFI",18,"GoSwapp","304402204e122eef6a48fc629fc42ff5dde9923a0ccc173ec4d28e5fd6817b1732b32bc60220124631fec63573ad37d70013fcdeec89a470ccf769b6dd97a7ce91ef7b95f10b","0x6B8227A0E18bd35A10849601dB194B24aAB2C8ea",!0,!1,null,null],["bsc","gourmetgalaxy","GUM",18,"GourmetGalaxy","3044022014dc4711e4019de63916db801016936874cf64577b75d78c3f387b10dc30f8e2022037922196d4acf2b46c7006d65df9772d71321a7f051fe194a6d1f3613368604e","0xc53708664b99DF348dd27C3Ac0759d2DA9c40462",!0,!1,null,null],["bsc","green_climate_world","WGC",16,"Green Climate World","304402203fe03bc7be443ad935bc61d6df81f7fd6ee91b132c0971e626a94af94eb1c4810220299daeecbd86c6c8f0556b45ec1f2bf04192bd5e78a0714e00d64845bf2d0769","0x1e4fFa373d94c95717Fb83eC026b2e0e2F443bB0",!0,!0,null,null],["bsc","green_life_energy","GLE",18,"Green Life Energy","3045022100d4795efab1aab1370ac67ec70d24cb70c2955ffb1004a8575f39f71e13c6b3f30220340f7669ceedc17dd9da882e7c9c8b881c5b759afef9101d93e96310256fe158","0x405Ef490862AD5fB2D80995b35459594290A7AA9",!0,!0,null,null],["bsc","green_metaverse_token","GREENMT",8,"Green Metaverse Token","3045022100beb502ee0347d15b7e706a5154b45fc71f95b5fb66df0eccfee2c2bad659ef090220490bf7af0ede5306a1bb252eaeb95181b8563c1a47b1cbf1c081954661919da5","0x3019BF2a2eF8040C242C9a4c5c4BD4C81678b2A1",!1,!1,null,null],["bsc","greentrust","GNT",18,"GreenTrust","3045022100e743e02ad704b2a0adcd9cf9900e4e701fb5d59f445fdd4092ea22591c56c7d60220523dfea31acea18a31347ef9c3e24d231e458122215c98b03f0a6403a74721fc","0xF750A26EB0aCf95556e8529E72eD530f3b60f348",!1,!1,null,null],["bsc","grizzly_honey","GHNY",18,"Grizzly Honey","3045022100caa0919946ff58e6e5162555b50e3eee03cec2904a683fdb16250e306ed77e62022034656c49921aa5c4ad0371b2c1da0bc655b561ffc42d668dd45716e5356631d3","0xa045E37a0D1dd3A45fefb8803D22457abc0A728a",!1,!1,null,null],["bsc","grove_token","GVR",18,"Grove Token","3045022100b78a211b9baca7d2e336214c2e3d486d993b72dd33ddad15559b8c5582473e630220548925f6e8add8de142db5469fda70407e78aabc2dec4e79ce2618732df509c0","0xaFb64E73dEf6fAa8B6Ef9a6fb7312d5C4C15ebDB",!1,!1,null,null],["bsc","gummy_bull_token","GUMMY",18,"Gummy Bull Token","3045022100a16c409e76086156db5b7e6683117298d1f6e55d1641a86e2e6f80610f71f03f022071ab0c4d2ee760b6766009e513a3b979443eaa8816ee6a6ed5444325a595d217","0x10D3e0C38c286a04aee44d9B01CaC916B56Ee05A",!1,!1,null,null],["bsc","hachiro_inu","HINU",18,"Hachiro Inu","3044022045162498bc9fd6129a13f675deb3233df653ac58e7ceeb6d55de5f01a20e3ac702207d77fe49fdb80dbdeff04d74f399cd58c72d909f625a189024eef6dde2fb5142","0x0054917ABa1f5C0257c49BF28267fE22a245FABB",!1,!1,null,null],["bsc","hacken_token","HAI",8,"Hacken Token","3045022100e16342a9b6680c726852b7bfaa615726f0d4ebe72c8926f2d2e09563226684d602207a4ce548fec7b9c94b62847a77818606993f89cedbc9da0c39fcd6d09217841b","0xaA9E582e5751d703F85912903bacADdFed26484C",!1,!1,null,null],["bsc","hakka_finance_on_xdai_on_bsc","HAKKA",18,"Hakka Finance on xDai on BSC","3045022100cfd02275c79d1eb56de118834231f49e296cef7506999bddfe4d8869673b36dd022075bb2ebbf46007345dcf876da018f9d8e1986518b25326b5ebe629c511f148e9","0x1D1eb8E8293222e1a29d2C0E4cE6C0Acfd89AaaC",!0,!1,null,null],["bsc","happinesstoken","HPS",18,"HappinessToken","30440220199608887bdcb2e36a7014c20f11cf834bdb0255b8e924c1ebce021897403cca02203d8b44b1f24750d091d288af0f090362ec521601d3ef63a99cadc275e436b236","0xeDa21B525Ac789EaB1a08ef2404dd8505FfB973D",!0,!1,null,null],["bsc","happy_4th_of_july","4THJULY",9,"Happy 4th of July","304502210093d715d9c26d2e5c700bd08c1984c1467b5e9343927cbdfd418608b159c56cb102203f3198207750a33594056b23cfa9115480ab8f896bf9d19f298cd970be0195ab","0xD3E371dB6977eEeAa338bA86c90Df2Fb3b5993d6",!1,!1,null,null],["bsc","happyfans","HAPPY",18,"HappyFans","3044022019f5c48257a70f014219d1fc13fec7cf4875c9941e5133baa8d98db561b76c5e02207fd302ecc756b61c54c18e495b82c2bd6bf1cccfb7bd5ea94648bff8b584da44","0xF5d8A096CcCb31b9D7bcE5afE812BE23e3D4690d",!1,!1,null,null],["bsc","hard","HARD",6,"HARD","3045022100968ededfe57ab7a6480399c45ab6e3191257469f8dbf6607e44d4b9636cb5e5f022045f4bb6d38993ef053935d55e69139060e10a3d8922e49c4d0d9d57a3e680c63","0xf79037F6f6bE66832DE4E7516be52826BC3cBcc4",!1,!1,null,null],["bsc","harmony_one","ONE",18,"Harmony ONE","304402205d97bcc2c5073985441edc97672aaf4474a24c5b05f24bba88e62d9bd382bec302201d68078f876210e8078371d9b1c0a21ad343f5e03e38ad1fa22d2a0d48462fe1","0x03fF0ff224f904be3118461335064bB48Df47938",!1,!1,null,null],["bsc","hashflow","HFT",18,"Hashflow","30450221008fe2bb4380e276cd67390008a7fa0227279495ffcdcede06944bf9b50edbb56f022017c475200638b06fc40606e810d8aeaf3033806b8009c58f6b8613923ea695d3","0x44Ec807ce2F4a6F2737A92e985f318d035883e47",!0,!1,null,null],["bsc","hedge_token","HEDGE",18,"Hedge Token","3044022030c886cf15e3b60a6279614df4073d175b73e9a3ba4113a794cbee02dac44cb202207bec94539a0409aaf6e661aae45fc7503f52222135707f434cf97b83b029cedc","0xE7784072FC769D8b7f8C0a3Fa008722eEF5dDDD5",!0,!1,null,null],["bsc","hedget","HGET",6,"Hedget","30440220665426b3c7d0d1a58a5df9e40840b65476e1f0d04b433a55dd41672eb711a75e02207f3a0ae1dcaeca74ef13c4ceef5b0dc7a8d0a994f3b55cd50677de4ace6a70ff","0xC7d8D35EBA58a0935ff2D5a33Df105DD9f071731",!1,!1,null,null],["bsc","hello","HELLO",18,"HELLO","304402201e6abaebb5b406f08238b6ded76ea729ec34fca8cc5b92098e1810b99618e803022011d3f986c577b89c2f642557007f75cd7efa43511f2511eea84383b7b98ab292","0x0F1cBEd8EFa0E012AdbCCB1638D0aB0147D5Ac00",!1,!1,null,null],["bsc","helmet.insure_governance_token","HELMET",18,"Helmet.insure Governance Token","3045022100d23a294060d70aac65256c251981e402ecf106e6f944978c5860fecccdfe66f9022072781271597eccdcc18434514a8ff7cd3c1a88d1b8c8e565190f13188aa111da","0x948d2a81086A075b3130BAc19e4c6DEe1D2E3fE8",!0,!1,null,null],["bsc","heritynetwork","HER",9,"HerityNetwork","30440220090ad6975f7d21075498b51c66854fad983731d0d0247352f618cfe4ca85016102207eae3788dec508eca35d6275be94d7f9c781a345837800d6d342482b2dba5f28","0x8c18ffD66d943C9B0AD3DC40E2D64638F1e6e1ab",!1,!1,null,null],["bsc","highstreet_token","HIGH",18,"Highstreet Token","304402201e430ef024ac2df776710b8c9247f33d51bebd4b70b996e60315f0f1a1149265022009e2f16fe3ca8994bcfadca717ffd020a71cc6d12c6a278c8284d5c893fa6bf3","0x5f4Bde007Dc06b867f86EBFE4802e34A1fFEEd63",!1,!1,null,null],["bsc","hmmm","HMMM",9,"Hmmm","3045022100fd6667b6d93b869b016642ccfff94f791a8980ae4d7f4acf729a4c52b21eef68022075149799339307a36a524a9e3d01106e3400d8ad422d5a6369c24906b9da027b","0x88Cf50037f8069071Cd56f641a81b369a5Fd3a42",!0,!0,null,null],["bsc","hodl_finance","HFT",9,"Hodl Finance","3045022100856a0b27b4fd222358ea6b4a1f079e426f2ecfbd2e435dd25f9e76ebca0a2cde02205f38d8931f44f165db53f6278f7b47677143a3312c3e38a61e8678b7823500c4","0x186866858aEf38c05829166A7711b37563e15994",!1,!0,null,null],["bsc","hodl_games","HODL",9,"HODL Games","3045022100ff4f3404e5ea8990987596a8b54adad7ccab6dc112870ff252b2b7f9a750be1a022070f14a9b52559a54af632470dd2370574c0174455dc41e55451f7d64e2127722","0xcfE416e7fcB3e193c34BBDD2D0642dBE57b73Cee",!0,!0,null,null],["bsc","honey_token","HONEY",18,"Honey token","3045022100d091979961683e03a1d0e8758d35c13819016e3f90cee01b256b48a586b2e84902200747e0ff02c920f6d0ebcbe0d685c628a97813a5c6d95f5f80d393d6190ea168","0xFa363022816aBf82f18a9C2809dCd2BB393F6AC5",!1,!1,null,null],["bsc","hootoken","HOO",8,"HooToken","3045022100f7e98e11baec5bd6cdcf6c08e28cbacfdcda21fb64995b8451047d757331145302200d4f96c4e645e3c85fe95a6e8646167bbafb9b82dc43a1b09180d23ab52cc955","0xE1d1F66215998786110Ba0102ef558b22224C016",!1,!1,null,null],["bsc","horde","HORDE",18,"Horde","3044022004f43da708cf850520815ad400a4428c130110d74c527e2ac54788faa079387102207e4aed93bba6c4a651132ceeaaae4b5a49c2c5bc1fe07c9d09ed7a9c3903934b","0x0069FF45ea9F7c28E0A2dEDb9BEf8144af8131BC",!1,!1,null,null],["bsc","horizon_protocol","HZN",18,"Horizon Protocol","3045022100eb1b810d69476400902e5410303f907d4e50c2098be0cd5b03ab579982693dfd022029dd9211a1727aca613bfe1251c6cf804bc478af6ebd3241572089dd2f3b402b","0xC0eFf7749b125444953ef89682201Fb8c6A917CD",!1,!1,null,null],["bsc","hot_cross_token","HOTCROSS",18,"Hot Cross Token","3045022100cd7d821bc37e678bfea137ae9752322f0d2be691a5cf0cca17914f69290848780220074f2cc020cae1729e808b7194485fbcf8eef15132507ecb3e1f3d8cfe9f4b1f","0x4FA7163E153419E0E1064e418dd7A99314Ed27b6",!0,!1,null,null],["bsc","hotbit_token","HTB",18,"Hotbit Token","304402206da737df0072829225c0c715d936df010a85603918135afd1f345645b25bc57002207124820b225027a0ef951e78c2b7b582bd083c777ec8e3062832b266f423995b","0x4e840AADD28DA189B9906674B4Afcb77C128d9ea",!0,!1,null,null],["bsc","hunny_token","HUNNY",18,"Hunny Token","3045022100d103c897ee82ee0afb71a2628b7117e50e6f330c32f13b0adf3b63b0d775813f02207e952652c11de8d4f5a4c96f7b0b52623ddd953dacb5a3252ebdcdd366cd6521","0x565b72163f17849832A692A3c5928cc502f46D69",!1,!1,null,null],["bsc","hydrolink","HLINK",10,"HydroLink","3044022022aa7cfc77a3b0170bce6046807f683b508b2e7c522c4ff5ef9fc03a973ab5500220723dbfc7e9b83388e30103bf1b4e6b480e61409a346098cefffcb064eca42f21","0x5523636a2aE324000eB0F239c474Bb04346Fec31",!0,!0,null,null],["bsc","hyfi","HYFI",18,"HYFI","3045022100d3fa72874498f397ab28741cdb8b76b15307fc8157008a691c00367835b40fe202207c278c1296a66f2f386e714a74d2f56e2f687f3b2f5ece52c64b2945c4f05423","0x9a319b959e33369C5eaA494a770117eE3e585318",!1,!1,null,null],["bsc","iassets","ASSET",18,"iAssets","304502210094a3daf04795c128f9890fef119c492d05ab18bb52badb7ca4af68019d0737cf0220020e1623c432374d0774c6f6f747ea272dcec817ee05fa74e346d99a494e426a","0x6b471d5Ab9f3d92A600e7d49A0b135BF6D4c6A5b",!1,!1,null,null],["bsc","imminentverse","IMV",18,"ImminentVerse","3045022100da0ea3b227f5b2fb6487bd2e9a3edc0e14d1aec7b0c4374d85f0c248ad2255f302207c188e901e919cf0fa984cc229565eab4bbbda70042c20414e0abb983428d070","0x64c5F47e530841684a4EeF408e9a4366585B88F9",!0,!0,null,null],["bsc","immutable","DARA",18,"Immutable","3045022100fad9b3a9349e70ea9eedfb84b064bb791ac21f67b3520e709598fc089e884e370220506aad37ed5c5232ca20b0ce253404d1b4aa6d344ee904f2ba2df485afa11318","0x0255af6c9f86F6B0543357baCefA262A2664f80F",!1,!1,null,null],["bsc","impossible_finance","IF",18,"Impossible Finance","3045022100e659e5b8fefed59e23e27ece1c13e538ce304a7529ad0fbd725b52f4f680e471022002049f65ae76bed081f57969a6b687ea62f554ce0d91c5f571cfebd2f8d416a1","0xB0e1fc65C1a741b4662B813eB787d369b8614Af1",!1,!1,null,null],["bsc","infiblue_world","MONIE",18,"INFIBLUE WORLD","3045022100b67a85036be2e702fd4a20f6d3d2dc4375fdb4238fc9de58f404bde6693b035d02203c32d9cca3cc8d05aaef17e43db089eff0180df190a502bf2d018d2f572a50b3","0x7E60C74b9096f8FA6fb5a9FD88405dED8B7D44f3",!1,!1,null,null],["bsc","infinity_rocket_token","IRT",18,"Infinity Rocket Token","304502210081d8f7a492571bf7a34be5d6ddec4c5bb9f28aa8269e130ef6eaa20fabb4a7e3022079f8e1baec2bb09dd7d3ff4f45dd9a6a72afa6bb8b347752d12b174e645b2671","0xCBE5BcA571628894A38836b0baE833ff012f71D8",!1,!1,null,null],["bsc","injective_protocol","INJ",18,"Injective Protocol","30450221008539e722919ca42b78d7a6f309a6e217cd1574cf2ad0a7fce4c6b877294369630220443bc94530e6dac4ea931892594a67c489b7d4698bb0a9e11eb98771f18c89fa","0xa2B726B1145A4773F68593CF171187d8EBe4d495",!1,!1,null,null],["bsc","innovativebioresearchcoin","INNBC",6,"InnovativeBioresearchCoin","3045022100b4975fb7b3a1ce319c88c31231e1962c8503aa5bbbb14519f2d7133a2fc7872802207881f4075ae6f85dc1293cb7b1a053954d5112f1a85032894c8893d10c0848d5","0xdF1F0026374d4BCc490BE5E316963Cf6Df2FfF19",!0,!1,null,null],["bsc","insure","SURE",18,"inSure","304402207d0a8421a7352fe83c3198cff6a76e8f855d977e3f93dcf3709917bc17c840ad02204c6f751bd5ac434670793d67827d9fc58c2b6eaadf0b7b5778f716fc4fc2fdab","0x9b17bAADf0f21F03e35249e0e59723F34994F806",!0,!0,null,null],["bsc","internet_money","IM",18,"Internet Money","3045022100bf9b445278bd348a4dd5de4af02dfb35c9b82be589789ae5f0f50f6ac18b113d022062078559387d8d7cb571cf4700321d2e5b3572f0bf5e946e3cc1df4d82c8749c","0xac5D23cE5e4a5eB11A5407a5FBeE201a75E8C8aD",!1,!1,null,null],["bsc","itam","ITAM",18,"ITAM","3045022100fce241e1f8a5cbb6d56a642d07114356fd332e10d06583da4a0c50b84961693502204a729a1ec3f4ed4c091a405d27eeb2e2ac06f84f7291cb7ee905e1394af28b9c","0x04C747b40Be4D535fC83D09939fb0f626F32800B",!1,!1,null,null],["bsc","jarvis_synthetic_british_pound","JGBP",18,"Jarvis Synthetic British Pound","304402206eac022fd62a74086828313ba6c23df4d9cf2a15b2b1183911372b2ab6daa5ab02206d97f40a73bf244db9554dac8056469bc51f5606c9d54ed0efdd914ffc0088b1","0x048E9b1ddF9EBbb224812372280e94Ccac443f9e",!1,!1,null,null],["bsc","jedstar","JED",9,"JEDSTAR","304402203c1f534efba2e2f5176a0748cadc662ebfd2ee64e1ed307a5dfd2bea639bd92602202d4e71f0a3ca8ef5b521a3f5a2bc20c3f62fac019a4171a7665648a39c43b6a8","0x058a7Af19BdB63411d0a84e79E3312610D7fa90c",!1,!1,null,null],["bsc","jefe","JEFE",9,"JEFE","3045022100b5253356f696931d4f84e40160143538c50d6d50f6d16155935bbdb4b15491810220440dc6a3c3a8b82086959137ecde62ba99864199b1c4e24f3481fc29f7b239ec","0x80fa6d5384BDde296a28A321f73aB70977575129",!1,!1,null,null],["bsc","jimizz","JMZ",18,"Jimizz","304402207d11cd8ab7d27330552308620e85291c4a5c65280ecbfc3176d5a6dab31d0d9b02203922dfe17391852a39272771d50b4d6d252676c1d4c85c271ab9a820a78f4d7d","0x9A442C0F0c6618388F1fa0E2565D365aeF520e7a",!1,!1,null,null],["bsc","jointer","JNTR",18,"Jointer","304402204fef9aa7e23abf7bbab100489f1c8fbee2b19391da9529899596dd575f2c524a02202f6a7353ee5f319df20ef5e24e3b9182972ffcb3b839a5abf27f5b00adf37705","0x5f2Caa99Fc378248Ac02CbbAaC27e3Fa155Ed2C4",!0,!1,null,null],["bsc","joke.community","JOKE",9,"JOKE.COMMUNITY","3045022100c0a9a6c7ce94522238f76b47d7514011bb1a4eb47b1c319cee575c1bc8b4ef0e02203438b8c191ef4980e7d6ffbb040ca831590a74b51865f9183ab04162d45a3a9b","0x2Df0c13487Efdf4Eb7f6C042273b7AcA781b29A0",!0,!0,null,null],["bsc","juggernaut_defi","JGN",18,"Juggernaut DeFi","3045022100d45041e34d3fff3272d2437f464a4d3f3a3f24e5dbfb52bb7093f6d9460c0a9f0220033e2d9ae1e74d5b25e3bbf69b94cc69e50ff62c896317dafc2d050c05e805d2","0xC13B7a43223BB9Bf4B69BD68Ab20ca1B79d81C75",!1,!1,null,null],["bsc","julswap","JULD",18,"JulSwap","3044022030e408f4faf8d3509b952233a8c60123ba3ee89fb2e188967f14f050dd34e12a02205573e724ce0d83d658b555818e068e74e694897a1ab0296e1481aa8b73ca6980","0x5A41F637C3f7553dBa6dDC2D3cA92641096577ea",!0,!1,null,null],["bsc","jumptoken","JMPT",18,"JumpToken","3044022025bf02fd132ba9f3fed9a4593290581c45c4b3a477af0462c609f30fcce881ec0220642d36d69cbfc0b92fe83cfa54160ac5abe76dba83c70b118e619b59fd4ed279","0x88D7e9B65dC24Cf54f5eDEF929225FC3E1580C25",!1,!1,null,null],["bsc","jupyter","IOM",18,"Jupyter","3045022100f142400ab4aae9a72eecf9cd02a4680b59b9f585fba48abde03ec883da4cf16802207a2e1c1753a45bae7131be5f5370cfe75b64bcc5832f2fa7fa9a4e03e5d796fd","0xD6ea4ec77fB7e0d5c331F9109f00CcEdE255b9C8",!1,!1,null,null],["bsc","jurassic_token","JRSC",18,"Jurassic Token","3045022100907e68771f952f0e31f9c5f5da79f6d12d99ea4ff5aa36431f175d7056c9098d02204e06b180fe3b7595bfa54ced52cf5ec00c216e1b5ad99c4df45acc8b24de1b2f","0xae97ce3856AE2FdD790A073e0080Fbc4031d0CaD",!1,!1,null,null],["bsc","kaby_arena","KABY",18,"Kaby Arena","30440220575f919525bf000cd40121287f5148fd356a3f544ff77b5a3d6c08880d4b8a58022046107ba72b2d6c5e9b39e04df5519fdce59ad7f7ee6e13e7fe4e9a81019eb5bc","0x02A40C048eE2607B5f5606e445CFc3633Fb20b58",!1,!1,null,null],["bsc","kalissa","KALI",18,"KALISSA","3045022100c95d2b9291d6dc314554420a5a9359eadb0947c2e9041abe56ca6ef372165b7e02207fc05607772116b9537af57a3cad3a35f35c117433ff16a53ecabf22d94de199","0x950481789959cd6D77F1b88C2e1F61e30608c4E2",!1,!1,null,null],["bsc","kalmar_token","KALM",18,"Kalmar Token","3045022100a9aa9dd384eb3beae7ee0c6c08d5be88750cc24871893f4d6ccf55b1848f65660220556aa45eecda3018ff84bde697d0cac3504a96182b35f68c3e537cd5c23661c5","0x4BA0057f784858a48fe351445C672FF2a3d43515",!1,!1,null,null],["bsc","kattana","KTN",18,"Kattana","3045022100b58eabefa4bf883835b4d6761c45ce6f54634385055e94ed8f260c261eb1c9f90220686121c93a37e058197a8144d0c4947edc15feb6c709e7f0e75f7450c9375c1d","0xDAe6c2A48BFAA66b43815c5548b10800919c993E",!1,!1,null,null],["bsc","kava","KAVA",6,"KAVA","304502210080e5f75e398aa4e40f460414fd87813862c9e8d9e6a278e7dd3c2ad69efcbbdf02204f78fecb6a9473e227981d83d7469ff7ea17681f8d411a72aa874e23e751a052","0x5F88AB06e8dfe89DF127B2430Bba4Af600866035",!0,!1,null,null],["bsc","keep3r_bsc_network","KP3RB",18,"Keep3r BSC Network","3045022100f37334bc75c34bfe9dd9f7c172e26774fc2d1d25b6a52adcf19d9092741cd29d022042baee2ddb47e221ed181dc8078ff3d8cc8ee9f6fc5506ca5f560e9e86e2c703","0x5EA29eEe799aA7cC379FdE5cf370BC24f2Ea7c81",!0,!1,null,null],["bsc","kiba_inu","KIBA",18,"Kiba Inu","304502210080ca9c3c799abd328764501afd5cb83340652c6e450238235ce2596688e116a902204d42c622499b0fc8805809a66f971d3511c63e4e60a213e0d9f766e8912f4cda","0xC3afDe95B6Eb9ba8553cDAea6645D45fB3a7FAF5",!1,!1,null,null],["bsc","kindcow_finance","KIND",8,"Kindcow Finance","3044022029cf9fd5615d252590bda6f9c83f6ed94b3af114ee0a6cbacf4bdb722743c91a02207f17402ce46ab2aeb9bbe6a07a23ac1471a171fd9277aee887bab24b1525df5f","0xE3Ba88c38D2789FE58465020CC0FB60b70c10d32",!0,!1,null,null],["bsc","kiwi_token","KIWI",18,"Kiwi Token","30450221008e5598df7ca914fa11c5e636ca139cdfb2e6a495734740ac2cccf5cef9a13fe5022072183ffcc362a860a8ae0a4368c4147c557980502224d5ad2286d4027ee1ca60","0xCfDf8A80fECAeeCC144fa74c0Df8691BFd0e26e3",!0,!1,null,null],["bsc","kmoncoin","KMON",18,"KmonCoin","304402201355c43fe23820c6e1a4ac505b66387927881141016a55d8a1006cf48f8a4aa5022023736ab2c84f3a2f47719ffe2785a4c3593fe31e3caa53fe457087deda21dd6f","0xc732B6586A93b6B7CF5FeD3470808Bc74998224D",!1,!1,null,null],["bsc","ksos_token_2","KSOS",9,"KSOS Token 2","30440220133f5442105f185ebfb298f95ff4e7ef2a08f273714e4bced3c741a413eda67d022067c794a11eb3e22d4f0cbe2db2d3a8411cf255fff12a98941103f1a509974f39","0x090006ee9E12b646Ce1ECE6B18096c023Ed38751",!1,!1,null,null],["bsc","kunci_coin","KUNCI",6,"Kunci Coin","3045022100fba87e6d319c46232a44c1bb62d5c57828201446fbcd66454146a2dd5a4b43320220626c96896565bb4668aadcb0dff3a8372e94a7333ec073644e70dc47ccf8dabe","0x6cf271270662be1C4fc1b7BB7D7D7Fc60Cc19125",!1,!1,null,null],["bsc","kusama","KSM",18,"Kusama","3044022047227dafc02d9a70778f00b4b87ba5c5a15659618aaf20d23d2bca54809020d2022037ce5c5310a9cd138d964fa5439a656e407509fa1bcdb156c10fcb7b390c7460","0x2aa69E8D25C045B659787BC1f03ce47a388DB6E8",!1,!1,null,null],["bsc","kyotoprotocol","KYOTO",5,"Kyotoprotocol","304402206eb809a2baabc22267ee9289ea4d824f81c995dc5765eed6bd981d3803b5d75f02204ba4ed2ccde0a75dc94be669323267a6d042dc0d213762d797940c89ea1ceb6f","0x69104fb28f4BB9f6efc899bd1d94f386CDF1b9dA",!1,!1,null,null],["bsc","lamden","TAU",18,"Lamden","304402206cbbd86fd5fa60f7a473f336211803d85f0f0a19b740d7f493a0f8ec1dda8b4d022028b3de8a83f941fda3920f8db2d04bc8a560ddc47c19fe6eae7d33de3568c2ba","0x70d7109D3AfE13EE8f9015566272838519578c6b",!1,!1,null,null],["bsc","legion_token","LGX",18,"Legion Token","304402205966cb6f8910a599daa6decfba12a5fb7a041e81566b4379d81808a1a5adcac1022044688f19dfd1f6292594674c15fdf5567ebb7392d98d4fd7f009560f36707de8","0x9096B4309224d751FCB43d7eB178dcFFc122aD15",!1,!1,null,null],["bsc","lenda","LENDA",18,"Lenda","3044022074df78a6076dd954a06ede8039bacddefff5530552fe106ef13c51eaf691739a02203c841455510536542843437fa0161a8c2a2632f75478d4001d5565fd10e6484e","0x2D7A47908d817dd359f9aBA7FEaA89c92a289c7E",!1,!1,null,null],["bsc","libero_financial_freedom","LIBERO",18,"Libero Financial Freedom","304402203a9cbc53ce1a315b2ba3bb06fd9a35841a112f10614a2eec5c9ab245e51e423402205ef0ed824aa1c6651b954cc6f1d7c086b3bc24137fea9c560efc25ac22000e69","0x0DFCb45EAE071B3b846E220560Bbcdd958414d78",!0,!0,null,null],["bsc","lien_on_xdai_from_xdai","LIEN",8,"lien on xDai from xDai","30450221009c5e398d5c6a14c5d46f10b73d5e25b1a98ff491139df900288611c3f25390b1022030fa27e49dd23add95904e12b0afe1f10bd9e2b02b14e49874a555774064b24c","0x5d684ADaf3FcFe9CFb5ceDe3abf02F0Cdd1012E3",!1,!1,null,null],["bsc","life_crypto","LIFE",18,"Life Crypto","3045022100a8d8e05aaad94a1f8d65dc41d9d5caf86acfa3e5ffbef6e339ef200ad04c9e300220647bc0dda01fc47363c0b94d5b26c5746be523bbac99c959c3b5df3e55cdfc34","0x82190d28E710ea9C029D009FaD951c6F1d803BB3",!1,!1,null,null],["bsc","lightning","LIGHT",18,"Lightning","3045022100b2754061eb5b6c30e9c0a6b1bff5d9eabd1ccca5ba219bde83d87950c3c7279c022019903cd9e5226ec97529634726509e35624493a48a8fc7fb08a526a41c736eac","0x037838b556d9c9d654148a284682C55bB5f56eF4",!1,!1,null,null],["bsc","linear_token","LINA",18,"Linear Token","3045022100eafa75e11d7e601fb5ce4e240a8287326e03b1ae2f3cc23351543ab976d52c7002202ef874c7243383e353fbacf6ad4e3133b126950953db6aaba836d9b999b5a919","0x762539b45A1dCcE3D36d080F74d1AED37844b878",!1,!1,null,null],["bsc","liquid_staking_bnb","BNBX",18,"Liquid Staking BNB","3045022100ef824271eb6c759ea884fa65561805a26c509266d99594fe2aebc9707f8d8e9a022022c2e5185c4e12b3cd67ea7cca5bd940998e7dac68bd027e6c24498b0fd46e52","0x1bdd3Cf7F79cfB8EdbB955f20ad99211551BA275",!1,!1,null,null],["bsc","litentry","LIT",18,"Litentry","3045022100c2e714548bd1cbbde9e7e8dce7b64a3bd2f3e3f35febe3c3e3f90cc02e578a960220589a273ce81856bf2fe7aea227ff980947324657c4fb30b32367bf0d9ac9897c","0xb59490aB09A0f526Cc7305822aC65f2Ab12f9723",!1,!1,null,null],["bsc","littlemoose","LMOOSE",9,"LittleMoose","3045022100b1b4b85936fa66d30c3046459ccaa3600e076b0a913c1e581ec9468ab0d9d14902200537df39333e55df23d1054f680c12a0d5457b680c2eada9365f13f30e5d3831","0x17d8C396a55D6c1c2130EfC23f4936b56860Df9C",!1,!1,null,null],["bsc","littlesquidgrow","LSGROW",9,"LittleSquidGrow","3045022100a64f3a6f00184b47c3c54d5582688c5f3afe143540e9ee821a678e798bd9fc2f02205a67b867acb3512b8d320d3dded463f24319618cfc78c98b46ca79009a1955c3","0xdB9D1A8d922986F7edfDb26deC5576c207570dBd",!0,!0,null,null],["bsc","loopnetwork","LOOP",18,"LoopNetwork","30440220544345f2021687fe598aa59b8869c2210d9d616f3f83f86c0ab74347dd0c19bd02206c77a64ba9163a6de66fde96330198c9f9847a845ea16e4f18b9ed3938890569","0xcE186ad6430E2Fe494a22C9eDbD4c68794a28B35",!1,!1,null,null],["bsc","lovelace","LACE",18,"Lovelace","3044022042912aacdf37e3fae6798400c4f4386a264885caff2b24eb89b4274ffc31d2d002202d4d4b59f92867e73baa0d7422d0c1f245fc0a282b6daf3ecb5edfec4ea06106","0xA3499dd7dBBBD93CB0f8303f8a8AcE8D02508E73",!1,!1,null,null],["bsc","lovely_inu_finance","LOVELY",8,"Lovely Inu Finance","3045022100d8fe9abcea3ad5416276ad2e406c39a6911b2408985c60f996addb5a1130e9580220114bfb8e72df6e813f064e451e3bd2e75327be9bd27e640fca6f3ca92bb255a2","0x9E24415d1e549EBc626a13a482Bb117a2B43e9CF",!1,!1,null,null],["bsc","lto_network","LTO",18,"LTO Network","3045022100f09f346b4ef00fe0be0019a1ddd21bd1ff5a545235d392e64fbf715bbb22318602203af9a65412f8f0c44072afe00ee2121e351b85b7cf9a9ec26b44cc1b9e9a59f6","0x857B222Fc79e1cBBf8Ca5f78CB133d1b7CF34BBd",!0,!1,null,null],["bsc","luckyblock","LBLOCK",9,"LuckyBlock","3045022100cf9986a21048c17b9a0fc02b6fdbe090ad0348ebd413c3d6cc78484218876d8302206fdb45cbe62d940d56f315bb5db149c7929d7558985a41f8eebafee1ff0a1c8a","0x2cD96e8C3FF6b5E01169F6E3b61D28204E7810Bb",!1,!1,null,null],["bsc","lucro","LCR",9,"LUCRO","3045022100fcdb09a68fbc236c28cc6eb2914514f57cb40ba40c212a680551943f6b8c2ee102202d8afae21467173ecaf02b4508627cd03eaf30d12f54fe9e29c1fbdda7b57f4b","0x988F7c894e4001EEB7B570CDE80dffE21CF7B6B9",!1,!1,null,null],["bsc","luna_inu","LUNAINU",9,"Luna Inu","304402207bd7a28ae28d6f16b5283728494d55aa615278350eef4297d058336a6c41e5bc02201e9c7e82d41e41db632bfb2913a045803e750e252a3db4943f0ca00d7537c273","0xEc9493312FB6bdFE2d27079732FE8Cc8E9744B64",!0,!0,null,null],["bsc","luna_rush_token","LUS",18,"Luna Rush Token","3045022100909bc0ed598e9c6ee9798943cf4878027e9ebadd985659294831f3889d7c4586022045c39379026892520830bc3708047000e77387ef381d28841efd7c1b408f619a","0xde301D6a2569aEfcFe271B9d98f318BAee1D30a4",!1,!1,null,null],["bsc","lunachow_on_xdai_from_xdai","LUCHOW",18,"LunaChow on xDai from xDai","304402206ec341098393e381e7d1e870596f2251b34811a12555333295e437ec64f41d2802205ed320efe8d758d012c98459c0e705b77a88a27fda5faa8bab564331e7a9f638","0xe4e8e6878718bfe533702D4a6571Eb74D79b0915",!1,!1,null,null],["bsc","lunaone","XLN",9,"LunaOne","30440220324b789eb16e8b26413b9d070936b6cd156a856b0133d4fbcd37320c47ef588a022078ddf571dc399b90450d758fce0f5e765dd739370f220e9912c725300342bd6f","0x2e2EA48C9412E0ABb2D6accCeC571C6b6411725a",!1,!1,null,null],["bsc","lunaone_","XLN_",9,"LunaOne (old)","304402207f4065ba9a47d5446182c3787ebed55e5300ae603ceef68569531d75951df83b0220757fe85ea5b5d8258dc034206ca3bccbec27dac04d8cbf4ee0dc912b82d9221e","0xcd1c4964595701B8c129c334169CC21376bE9f47",!0,!1,null,null],["bsc","lunar","LNR",18,"Lunar","3045022100d5d8be0894157430b5c04c618b171c80c1efa7c6de9094c19eeceba3778e427e022061691cd68189ffb98739a2f287474fc7c27f3544d8a9a851a33cc6d68db8ec44","0xc1A59a17F87ba6651Eb8E8F707db7672647c45bD",!1,!1,null,null],["bsc","lunar_","LNR_",9,"Lunar (old)","30440220629d5c4c925a32a57932cc08e2a39db017f67f566c0f3309956c849a8788584202203fe7d4ce716c620a703e67be9912bb689dc432428b0b5f40868f87739baf53fe","0x9D4451151A8dE5B545a1bC6c8fdEB9d94a2868e1",!0,!0,null,null],["bsc","lure","LURE",9,"LURE","3044022019d45f6a5949a72209a42c3abdff38f04da85c2e3f50358b428811084bebe8a202207ee5cdfea969e4eb38fac1ce344ada3a8757c02b162306d8cd08cb6a4cb6ffd2","0xEDCE88aa6DD78d5CE2a247E49C32f549F6DD6b6B",!1,!1,null,null],["bsc","lusd","LUSD",18,"lUSD","3044022050532f1c989e16da5474373dca7264cc3d84b6add6175580a0bb184931b59fe302203e46f653c7c4f9990f2dad6a2552b2c72dc8fc8855c4c06aa1d96c5c4e67bfde","0x23e8a70534308a4AAF76fb8C32ec13d17a3BD89e",!1,!1,null,null],["bsc","lympo_market_token","LMT",18,"Lympo Market Token","3044022052d3cea4b3dbc51e55eb01ffc95023afb37dab78774700d85fdd482f09929c160220612ca478cb2f986f1417775cec31d0acb4eee326d749ed1fb1f255e42d2bec5e","0x9617857E191354dbEA0b714d78Bc59e57C411087",!1,!1,null,null],["bsc","macaronswap_token","MCRN",18,"MacaronSwap Token","304402207aae112f32848d805b16cc044fca0b12588ae6e7fe8f47469bbc9c2accfe44eb02202e5e7efc35bef94473ad70e6553d76a49d6a32fc79d0e297be8e021a612ef629","0xacb2d47827C9813AE26De80965845D80935afd0B",!1,!1,null,null],["bsc","madara_inu_bsc","MADARA",9,"Madara Inu BSC","3044022017fe06ebbdcca5ea1d72aa46f93a2e68d8a70ba43408afd835afde43e1fe33d5022034f8a8bcb253b1ffe00bc5651356f12ab12aead534c52157a1b76a4eeeb88070","0x89a1adA7324C1C1BD2F006230fc165903F2c1AAd",!0,!0,null,null],["bsc","madghost","MGF",18,"Madghost","3045022100db5961d1b63d5059fd54d77954c9c4205368ad4d6681cb5fcb271fe5abd29d140220783cc5a79226e338bd60cc836cbc5b67a4d0886e204a9a64083880d33c18858a","0xC8231AB1695CAEFd7940099E5406816F3975E59b",!1,!1,null,null],["bsc","mafacoin","MAFA",18,"MafaCoin","3045022100d079464e7b00f02452adc18a1a0b4fd6076728b99ff977cd347f38d3c875212b02206d0f35b672d7ac210d3f9dec1971c5fcc7e176b76e0f2179c15262ade9dd39c5","0x6Dd60AFB2586D31Bf390450aDf5E6A9659d48c4A",!1,!1,null,null],["bsc","magiccraft","MCRT",9,"MagicCraft","3045022100b9bf596ae325d3d349b72523aec03b22fb757e5b0f38477782dc477eb17057ea02201f4582ed2b8feafb1294355894ba3bd1c237cd5aa1a9912f434b0f1ffa4eb7d7","0x4b8285aB433D8f69CB48d5Ad62b415ed1a221e4f",!1,!1,null,null],["bsc","many_worlds","MANY",9,"Many Worlds","3045022100cfb53eca1cdef9855b3d6338e75b71815a3f5c9f9e563b4eda6026a1ffbd1840022019c76b2a61c7f59c3552ce051b879b2db21de724a7b56b036c183b55a10c8812","0x3E2ed75F718251Fd011312b9E33Bf10A4dbfda54",!0,!0,null,null],["bsc","marketmove","MOVE",9,"MarketMove","30440220168ea32ec256ed34e960f65984c3267f0eb161b44642afe71e42a0c18dcc02ab022028ea8d8919da414816877ecd1bcd239f0cc6e195175ce3f52ac681e64c9a7468","0x231cF6F78620e42Fe00D0c5C3088b427F355d01c",!1,!1,null,null],["bsc","marshall_rogan_inu","MRI",18,"Marshall Rogan Inu","304402202070476e8e4390b1a71420db760b1d387372e9d42ca43c40a1284bd7ea6275290220654d82b9bd203592942fc4008d8940f99d84a0b960c8bbf0f445408f12233dbd","0xaf63D8032311FEF82c111c060420020f35E78111",!1,!1,null,null],["bsc","mask_network","MASK",18,"Mask Network","3045022100f233d78076eefd948bd4e074b8a998bd469593293e61981211af60de9930419e0220782eb26e09be0ca775014fc2added450e218f35441864e0fbf2dd9e44b0df1a7","0x2eD9a5C8C13b93955103B9a7C167B67Ef4d568a3",!1,!1,null,null],["bsc","math_token","MATH",18,"MATH Token","304402203a94510559473632e69bdb75fc574f0b895eceff7a673f6cb333eebb148c52850220417ba14ee52515956af022b3200f6f94c70f150ed1b54b8ca0674ec35de9fb55","0xF218184Af829Cf2b0019F8E6F0b2423498a36983",!0,!1,null,null],["bsc","matic_token","MATIC",18,"Matic Token","304402205df236f3ad785468995572b13cf4afbecd99f3f6bed9825bae846c9977ae521102204ef3cb49ab531c095b2d6bd97d5353cf911f98b3238405c5c880ce46b4917d94","0xCC42724C6683B7E57334c4E856f4c9965ED682bD",!1,!1,null,null],["bsc","mcdex_token","MCB",18,"MCDEX Token","3045022100a59f92d39ceae9b25d10e70ce9145b77cf6a3e8baef4f03c3f412b38e3bbadad02204816ad9d299c98de18c1b3333c9e9995286efcd1ff827bf63cbe540356964352","0x5fE80d2CD054645b9419657d3d10d26391780A7B",!1,!1,null,null],["bsc","mcontent","MCONTENT",6,"MContent","3045022100fc005dff0868ec708141ae37bf1d9b35c8f63ac04998e01d8ff74265ac045238022031e4606397cefd104d58dad4b47ff444cc5c70fcfd8d2ee63ad7e6a77eb2ab8c","0x799e1Cf88A236e42b4A87c544A22A94aE95A6910",!1,!1,null,null],["bsc","measurable_data_token","MDT",18,"Measurable Data Token","30440220310cc29e1adffb4c28f6c59052550b5d89a82d3bb7dc330ee5617a07ab84ae600220443ff06bd664e215fc8056fe2dbc73367bcad5a54152e6141499406115466800","0x668DB7aa38eaC6B40c9D13dBE61361DC4c4611d1",!0,!1,null,null],["bsc","meme_lordz","$LORDZ",9,"Meme Lordz","3044022043ab1307e1ba7a1738be92d187b949bc0305d592a92e626e5dda1d4b55d5547e02202b51e31ef322fc2d7909191f32a1610d17f4b314a67bb776872db40b431e3843","0x2541Be91fE0D220fFCbe65f11d88217a87A43bDA",!1,!1,null,null],["bsc","mercor_token","MRCR",18,"Mercor Token","304402207354cc3f8078fb949ba666c06f73bbc0019d4b1b5f9a1434eebda13335adf1630220158f09ea0b4e86cf1664727d0e99c4f5931b121d366476b843788331a171b7d6","0x155dab50F1DdeD25c099E209E7b375456a70e504",!1,!1,null,null],["bsc","merit_circle","MC",18,"Merit Circle","304402200f6ec2cc2ef25f03676c654f2259db624e489c558a23430617263bd41b8e8b74022072e67d1d518cc968df9a57a4a68f794b39a508ba42e90816a6408d47834848dc","0x949D48EcA67b17269629c7194F4b727d4Ef9E5d6",!1,!1,null,null],["bsc","metafluence","METO",18,"Metafluence","304402200bcf4d6aa2c3b1d0c3484e702417ac008b5b83db93912c28ddc1db1fffbadcb302203d023b2fbed9405b784b8776cceb6871ea84c0c1a151c401f707c2c8b17867ab","0xa78775bba7a542F291e5ef7f13C6204E704A90Ba",!1,!1,null,null],["bsc","metagame_arena","MGA",18,"Metagame Arena","3045022100894e17fee83d8cf2a6322980a53fe8ff80f10fc7c703e9481fead32b93140d9f0220536aef8fac3409f8b2914065da97a933f1fb4d387134a166d4793d02bfef617a","0x03aC6AB6A9a91a0fcdec7D85b38bDFBb719ec02f",!1,!1,null,null],["bsc","metahero","HERO",18,"Metahero","3045022100feb3f951420d71e47a27fb3337ef523b57af839f277b2cd569adbfd79a0ea99302202974b2c09cc07d79058189b8599da6ace3b636da31e005e82ce1edabe2c7a5c1","0xD40bEDb44C081D2935eebA6eF5a3c8A31A1bBE13",!1,!1,null,null],["bsc","metaloop_tech","MLT",9,"Metaloop Tech","3044022029170de1256817b4800f63319e732b5a1ce650a0688d1f62c1b8b554c40a5f6902201a9ff0f011b936e664fa119f88657439b4d4221eb06788492baf35490975cee0","0x90BB4c7824182e6F37c97cAD683f46bC68894907",!1,!1,null,null],["bsc","metamate","MTM",18,"MetaMate","3045022100cb7234bca84c7f5ad7c58818e64859a70dde41e23588a155a5017f232e69253f022043dc35b654e605cc68c3845f1ea6e0ea9f944d3979a474e4b1a4e480dfc34e6c","0x3244478Da3F518B33b99D5929Dd0bC3396C56981",!1,!1,null,null],["bsc","metis_token","METIS",18,"Metis Token","3045022100d44fc780cfeb3a61e14bd89c8923aae9c4732cadfea45b52e2067519dfcffe6c02202039b91727ac63c63f14efa5772f241bbb911557bc01e1819e35a4265b65f6e6","0xe552Fb52a4F19e44ef5A967632DBc320B0820639",!1,!1,null,null],["bsc","micropets","PETS",18,"MicroPets","30450221008ae63fadd61126c864896de88a7c87c59479bc5e7691b16cfea3628c174d71dd02206576e21122d920306fd93cf29fc1028e81f0fa61b8e21e2a53008965568f98f2","0xA77346760341460B42C230ca6D21d4c8E743Fa9c",!1,!1,null,null],["bsc","milk_protocol","MILK",18,"Milk Protocol","304402200bd1cf26f9bd0ec88a3fbb09eabffd402421d86f0ded8050d8d9c776097756f6022006c67120418a9fdf8081e36d9cd6a775b6724b9dc82b644288c384eebe57833b","0x8E9f5173e16Ff93F81579d73A7f9723324d6B6aF",!0,!1,null,null],["bsc","milliondollarbaby","MDB",18,"MillionDollarBaby","3045022100be859b56321e1f80f44e0917d46101bda4822a16fce3ad1857ed5d07c9d260890220702949c552e0c5760eea2de0b9dd8d25cdc1b7d12550d9ed31ecf75bd8788a57","0x0557a288A93ed0DF218785F2787dac1cd077F8f3",!0,!0,null,null],["bsc","minto_bitcoin_hashrate_token","BTCMT",18,"Minto Bitcoin Hashrate Token","3045022100f25fca76591896fe317c8bafbe99dc8609f12d11f9cfd5c342893adc711ea76c02202917b503d8bb051cbc5d0429b77bb602d5e23be94bdba6e6e05d41e2a9ba12a9","0x410a56541bD912F9B60943fcB344f1E3D6F09567",!1,!1,null,null],["bsc","miotac","IOTA",6,"MIOTAC","304402201e430d525b39f086b168f605156e5e8a1289788eb82a05163f34c57b72276185022050fc464b04c5717224c155b7761e86fa79197d375346a65c93707c9d67086683","0xd944f1D1e9d5f9Bb90b62f9D45e447D989580782",!1,!1,null,null],["bsc","mist","MIST",18,"Mist","3045022100dd157ac534fcba2cf67a83453321c030bc6e3e3d9e19cb33156bb52aaa6e784d02201debdffe4be944a60e5393e48c284b39a0fac953b1938c8acb784ee38733754d","0x68E374F856bF25468D365E539b700b648Bf94B67",!0,!1,null,null],["bsc","mix","MIX",18,"Mix","3045022100f2886cc5a2a9c5a170cd526dc492e56a8ff2461a072dea97a5693f1497f624110220027016d2c76d0636b65b13fa0115e25a05e704c6bb4a3880cbab3d96d650e539","0xB67754f5b4C704A24d2db68e661b2875a4dDD197",!1,!1,null,null],["bsc","mmpro_token","MMPRO",18,"MMPRO Token","3045022100e6d81cf286c9d007e3cb2868739449496915fd5c873590eb8a565379c6e4f00302202c18f1e8accbc98a44398d9a83e1807524df45e35dcec115c8c144584fde5ae6","0x6067490d05F3cF2fdFFC0e353b1f5Fd6E5CCDF70",!1,!1,null,null],["bsc","mobox","MBOX",18,"Mobox","3045022100e096b677293334047919a62bb84b3330d5098b31288c6e229e399d682845808202207c7f42288e6e3cee8568717d1a16f71799a1d59f0e3863b443c23e4b45bf5956","0x3203c9E46cA618C8C1cE5dC67e7e9D75f5da2377",!1,!1,null,null],["bsc","mobydick","MOBY",18,"MobyDick","3045022100960c969e6501c0dfea0a11a4f443b539e3734cd016a3796806dcdd891498022e022005618e6adae5183d1d6722eca35ee51243514b6c797cb0f8d2d94677705e6d0d","0x47a57a9174Fd8E4228e31735238A3059CFE6eCd2",!0,!0,null,null],["bsc","moeda_loyalty_points","MDA",18,"Moeda Loyalty Points","30450221008866298f91a5da47ed6df5191b9131b5e8f06562c9d908665eee6719097790bf02202bfca2ce83a5d9470f9f36348cc3de6312fd4b196693b626ed9d28c299984da5","0xd72aA9e1cDDC2F6D6e0444580002170fbA1f8eED",!0,!1,null,null],["bsc","moeda_seeds","SEEDS",18,"Moeda SEEDS","304402203acc6bfa67b8e9e4c2a6880936808aabae0915faf4970b5131b8955387d34f7102203a9a24b4711a9952bc5ea5100123a37a1c34f41e040b93714f9cf751304bba9b","0xeFb94d158206dfa5CB8c30950001713106440928",!0,!1,null,null],["bsc","moneu_token","MONEU",18,"Moneu Token","3045022100a562e754f85d77653e37f49cefbf309c08135aa05a4d869f5f20c6f59af3071c022022bfacbb5a74697d566691b3a79566228453d4cb5316339b5a81184b1758fc4b","0x16E5bff7DAFDBD119ca5F2B1F49Be99062934c3B",!1,!1,null,null],["bsc","monsta_infinite_token","MONI",18,"Monsta Infinite Token","3044022047c024bb3848483d013fdd65f97e1af80b51c6c0cd59be827f14f778f0f908e4022065cca6e98a5548d91e14453295ba022f86d1915f907a9cb3738605ab18a2e1eb","0x9573c88aE3e37508f87649f87c4dd5373C9F31e0",!1,!1,null,null],["bsc","moomonster_token","MOO",18,"MooMonster Token","304402200e378f3c78613309e3fd813c815f667dd350f4da8e15fbaa5d8ce9a273f39ade0220157ff84c8a507ccba1109ab973f8f87c2e3ad560cf7f195236491848c32d9d4c","0xA29b6f4E762874846c081E20ed1142FF83faaFEF",!1,!1,null,null],["bsc","moonbeam","GLMR",18,"Moonbeam","3045022100d4434fa12aa1246e93fd2ee2e437687aeda2d224657eb463581ffa7a488d7b610220531f74abfbb71a30bc2e5259f2423bc87dc8ed20024626cfe32b1b53098df8b5","0x76F3CE6aF26de7A9854dBD153ACd8f46a2Cf5133",!0,!0,null,null],["bsc","moonienft_token","MNY",18,"MoonieNFT Token","304402201b4d484c5196998159528635236eec69dc28e17a9b11686d3b344633fc9f7d3902202b72337b6eee0a0325625979ac58f0bbd65ae00de5c5c278f4e45817ee3f8566","0xA6F7645ed967FAF708A614a2fcA8D4790138586f",!1,!1,null,null],["bsc","moonpot","POTS",18,"Moonpot","3045022100fce5fc69e5be24400ac6f52411cf41cd7d67c15fb69bf32e77b8eacc51bf4c3d0220414aaee8795223eb30c5a9289e696f8706fb577ff5451fd111af757c5f262920","0x3Fcca8648651E5b974DD6d3e50F61567779772A8",!1,!1,null,null],["bsc","moonscape","MSCP",18,"Moonscape","3045022100893a8633a5d065416844ba76c8704733cf7905e927d4b774e96671e2f00734270220563c7351c077ecdb755e55a7e6a6c64469e36811db75b73484404261b2777c4e","0x27d72484f1910F5d0226aFA4E03742c9cd2B297a",!1,!1,null,null],["bsc","morphie","MRFI",18,"Morphie","3045022100bad2ed8f0804b908d3f311f7e6a6a8dd16e2c363c3ceea4ecd743fde1a5a5f7002202ec75a4b94ed2f1df5dc29d3befa0dcbfe530b809ee67135c0b0338cd17208b8","0xaF1167b1f90E4F27d9F520A4cD3a1e452e011Cea",!1,!1,null,null],["bsc","mound_token","MND",18,"Mound Token","30440220516600b0627ebf813d1caa5686896b61edf4743960bc376689b701279f341c4702204b570aebdb62407375bdebf4393d50ce47feacfab7ccb24eaca6adadf74767e1","0x4c97c901B5147F8C1C7Ce3c5cF3eB83B44F244fE",!1,!1,null,null],["bsc","movez.me","MOVEZ",18,"MOVEZ.me","304402206a03210003a506eecec02ea8b8e5e5789dbba33fbbe4c99a5a10a62cdb9639d302202cbfed81f46d0b0ae9aacce9528376021cfa31a353cb77f77634b123b5c69713","0x039cD22cb49084142d55FCD4B6096A4F51ffb3B4",!1,!1,null,null],["bsc","mstation_token","MST",18,"MStation Token","304402204e4c26ea1648548f01bf4277901d5163a84522998e0ab2165067348672c6c0270220203cd243ebafbdb37171e8936cd8aae59e4ce4c38023ba2aff8d1fc30cfa2463","0xe7Af3fcC9cB79243f76947402117D98918Bd88Ea",!1,!1,null,null],["bsc","mtlx-erc20","ANYMTLX",18,"MTLX-ERC20","3045022100c9bde0f4994d1326df4d7fa075ace351afd469c541640b2bc82f4967949ab4c302207c8072aade834fa277a91b88cf92f290b4879584d099691e48947ee094a2cbf6","0x5921DEE8556c4593EeFCFad3CA5e2f618606483b",!1,!1,null,null],["bsc","multichain","MULTI",18,"Multichain","3045022100c86244b47dc10ba36a1d8494f2ce404acf1148d73fa483d5adbe26cd0138767102207c0f88a98f2bf9b9715dddb9599bb36cc2438e17ddcdb70882a22e323b8edb6c","0x9Fb9a33956351cf4fa040f65A13b835A3C8764E3",!1,!1,null,null],["bsc","multiplier","BMXX",18,"Multiplier","3044022022a50bd48f41776a197e4cc54073a232ba51b98d1020094de4ff660a9ecda528022024221f47a90ff4f9f3c6ac8a01e8d16cd26dd395ede01d001c21d22d9270ed08","0x4131b87F74415190425ccD873048C708F8005823",!0,!1,null,null],["bsc","multivac","MTV",18,"MultiVAC","3045022100a7c49ad7ac9291c075808a7429652a2edf2aaf4668381ca6a118dc262bf75edb022065dccbf9080e7b9b5c84c3b9e7dc59893a8ff0c2eebcae42616439bca1b124a5","0x8aa688AB789d1848d131C65D98CEAA8875D97eF1",!1,!1,null,null],["bsc","musicverse","MV",18,"MusicVerse","3045022100902f23c164c0d3dd15190e4c40ca19c7922ef7a62278118b4a9c94867da63f0902204858ed11b7c7c244124adbdeadf7fc5c799bab6c2755d295ae41a01890f7881b","0xebCD1CABB7B1Ff137b74303771C9076ca37583aE",!1,!1,null,null],["bsc","muuinu","MINU",9,"MuuInu","3045022100bca8a755909b1f3abf58e09b2a1271c9799b8fba39320a230ac5ebda7fc5f66302201525433b2f89edfd5e05816a6092dd3beb4d63946379c315690576d17ca25590","0xEA5E9F39F4B4Bc2684e49A0E43127F7f6F6be3b8",!1,!1,null,null],["bsc","mx_token","MX",18,"MX Token","3045022100f6de4e23a250b96c58a147c85fcd4ecbae78b42270540ad90383a00b732673c902203bf4d977d3c5ecc185a330c60792c8c14889d52ae86d86a8a282b3afbca99a6d","0x9F882567A62a5560d147d64871776EeA72Df41D3",!1,!1,null,null],["bsc","my_defi_pet_token","DPET",18,"My DeFi Pet Token","304402204d897aa22c96257c97837aeb9a1d56158ff2d8f5f60f993be995435fb27a788d02201bf14dad4e624763c2e8ab4fe593c0f10da25daf58e20d15e2ba53f5f5a1b684","0xfb62AE373acA027177D1c18Ee0862817f9080d08",!1,!1,null,null],["bsc","nafter","NAFT",18,"Nafter","304402207d47d45e781fc56d4e85f56abd0d881aa0c7cc10cd2803f6af5c7ff9b021d7c102200308429fe4cdd4b820827e8eda0dfd02d828e6b6e0e3a722fa119dc707445d6b","0xD7730681B1DC8f6F969166B29D8A5EA8568616a3",!1,!1,null,null],["bsc","naostoken","NAOS",18,"NAOSToken","3044022068c4403fdb9c76020781e61603fec042f11eb1e2c991f1801e094914ca5d22750220053dea8c3a0628e6614e42a0514feedb69b780da2a4da2c11b6112e6183c76e5","0x758d08864fB6cCE3062667225ca10b8F00496cc2",!1,!1,null,null],["bsc","nar_token","NAR",18,"NAR Token","304402203dc0331f5aaac244fc5e7cdf78ffd8867d07ceb1cfb3f38dfe4c98a9e4e54f4802204b4321e0c6f0518bbfc139a41b22b7fb3c0c6e70ef40d414bbfbae4a85669e73","0xA1303E6199b319a891b79685F0537D289af1FC83",!1,!1,null,null],["bsc","ndb","NDB",12,"NDB","304402203a4a0986aa10c752f0f508b619cbee74a59dfebfbfa34b59dba0d21689123e4b022014399cbe1066313d99ffdd3534082e5d4fde030f7e5e7cb5c16bb7b8a9488d76","0xf8028b65005B0B45f76988d2A77910186E7af4eF",!1,!1,null,null],["bsc","nekocoin","NEKOS",0,"Nekocoin","30450221009525b250b32e01c07125390f9185932756f84121dda7cc293b427b239cae828c022030f0ce89cdb45302aaec3845480c9902c2ca84794fa5c4347ffc9aa9020c66c7","0x43ce64A4FBa3c30C0164E935B0095862a67dc0c9",!0,!0,null,null],["bsc","nerve","NRV",18,"Nerve","3044022011c0ccb048c422b0ef6c7bc1255b3e3c6da7e49d754a8c238bb63925ece0ffc902203f3242e505ad072cc830c3b9dc0df2df300c1feb9173b16bc786f75e019065fb","0x42F6f551ae042cBe50C739158b4f0CAC0Edb9096",!1,!1,null,null],["bsc","nervenetwork","NVT",8,"NerveNetwork","3045022100dc8152ba0e65397a1afb6227a0051693d974cc14d04024b89e834f80e344882602206620f3d7fbc1d327ab9a6ab0a1fa8f791e7cdc90c7a98aeabfa4584c66973d71","0xf0E406c49C63AbF358030A299C0E00118C4C6BA5",!1,!1,null,null],["bsc","new_bitcoin","NEWBTC",18,"New Bitcoin","3044022033a0185db22870896a3f24dea7775134ad4a9a01f3b20cb60d1c3e46ba7e78a4022071e42df9846b9d2917d976cf89f10a765019f69aa3ad14428c06aca503fd7c69","0x27F159e00FE3C651bD7AeD8aaC9a08f3cCB8e7EF",!1,!1,null,null],["bsc","newscrypto","NWC",18,"Newscrypto","3045022100ab33c10c6ea591b2dd327cfefa23e30d4c9931349372fb8301a4c2b6ccdc1dac0220600bd20faacfed550838ec1f72881d908a3b610a15f4b7c1405eb5363d85b1d6","0x968F6f898a6Df937fC1859b323aC2F14643e3fED",!0,!1,null,null],["bsc","nextep","NEXTEP",18,"NEXTEP","30450221008712f2d682b894dd5608ac38a2502c4a843287da8a5f51d0ed30b38f095b676c022040552639105f0ce51e298ea63c2d7bd6e501a0a26adbfc70fc55d52dc05d5d1e","0xF10770649b0b8f62BB5E87ad0da7729888A7F5C3",!1,!1,null,null],["bsc","nftart.finance","NFTART",9,"NFTArt.Finance","304402207ce1fde7f047db674dcb5a879c1e00ebed94bbc9ff573faea0583063f07bfe9b02207e8e48a8e53cbf5a5feaeadc5d4f2bd85d5118ad504bd6d13b53305d1816e595","0xF7844CB890F4C339c497aeAb599aBDc3c874B67A",!1,!1,null,null],["bsc","nftb","NFTB",18,"NFTB","30450221009687152f9a108775f295b3a711a393d9da204234d353837146a49d6cd7b9aa900220591cfe6716db9a9719a5f9eb22e922813d65c990e179bde690dfa3e3ef380bcd","0xde3dbBE30cfa9F437b293294d1fD64B26045C71A",!1,!1,null,null],["bsc","nftbooks","NFTBS",9,"NFTBOOKS","3044022074e9fff8e66c7cc5ef8338fac9d7d57c7ef7547bcfe8ab5b6bdf45f13acad9500220053bd6f171835f3a6f166fe480215a054bdfacc88b9ccb1d681e89cc5cafaba9","0x3279510E89600ee1767a037DBD0aD49c974063AE",!1,!1,null,null],["bsc","ninjafloki","NJF",18,"NinjaFloki","304402202baed032974b8ac9d835fff8125c373abf131317ee134c036c0e29d64d0684c6022056ef7085bdb5171ff6c4a41f4f96490f2d6ac6625a249800023f237d0966de49","0xF1968d4113e87e88CF50E6f0e1820dcbd29C4A90",!0,!0,null,null],["bsc","nitro","NITRO",18,"Nitro","3044022045ed41be2668072a5a0cb8b0e9827ce690da1e8d05cb12fac897c598f0d2d24c022055e0ba7f049d34c49468b4e478017842b384c38275003bdcea3fd4cbbea27660","0x8a1cB5289eE4C5A0F0D9Dc83225619B11d24E031",!1,!1,null,null],["bsc","nobility","NBL",18,"Nobility","304402206b5a172a984a4032af3fefd81e186e69bc8b0b8d99ab6ea7e9b179b89539876702203984a205f69a857e7d07688bd4f1052b637f4c1484f19a197f6f71dbb06b7a19","0xA67a13c9283Da5AABB199Da54a9Cb4cD8B9b16bA",!1,!1,null,null],["bsc","noe_crypto_bank","NOE",9,"NOE CRYPTO BANK","3045022100e1b76d4583698048dc48e84900d0b256c4488f002d27bb6bb99cb27f58115e9d02203f680f1fafa337341a77577adc4185d016509d3c8a341883cfa28fafca490a37","0x1a38F34dF3E4E480BFc57b789F605ce87B807848",!1,!1,null,null],["bsc","nominex","NMX",18,"Nominex","3045022100a2c7a2fd6c47f25a7bf8207231813933d6a682ca15ff84cbaab8c09ebf4c8c57022051c1afdcc60d0a0e9408036c67b524a122eec1ff3b01188c3ca3d456bf7c8461","0xd32d01A43c869EdcD1117C640fBDcfCFD97d9d65",!0,!1,null,null],["bsc","nuls","NULS",8,"Nuls","30440220596ab7a783f83e723e22a3eee89e4680614df12710adfdbfc60af9594e4cee91022000aea09849f1f44e227a5d954b1a353d19605b80aa3381ffccf8a7597a75ce8c","0x8CD6e29d3686d24d3C2018CEe54621eA0f89313B",!1,!1,null,null],["bsc","num_token_[via_chainport.io]","NUM",18,"NUM Token [via ChainPort.io]","304402205f4de520ad3146601bd4bbc9837fcaf796138183f0105b51d71f2074fab3608102207057f124399b36b9d2c07fff5d3ae4bd531986a04fb6a673f1f5548e639b8d70","0xeCEB87cF00DCBf2D4E2880223743Ff087a995aD9",!1,!1,null,null],["bsc","nyanswop_token","NYA",18,"Nyanswop Token","304402202da712e87e323fab053a7a92c5cb14933895521c7a692ae7236e5ef18c9dc76502207102aac41f97b95adc73451807bf22b968955c787b79163e0d7e49493f0e6025","0xbFa0841F7a90c4CE6643f651756EE340991F99D5",!1,!1,null,null],["bsc","nyuku","NYUKU",18,"Nyuku","30450221008aa9868a91f1495f911ccf5dd8c1123102986c1f9af5a9a66115e9301b2bef1a022029a3c6790c9ab716564820bf743d4abae672e6be5cd7bccb8abb381d6e227618","0xD40feEF0198955F696817418348758aC6B68F90a",!1,!1,null,null],["bsc","o3_swap_token","O3",18,"O3 Swap Token","3044022031fe86d28b28ddb8ddb23f0446e111a709d6101cdcadb136434709f1ff1d090e02201a5b1257f80d7f0495bbf2c8d1663c02bde7317fe1adfa253bfc22179a6c4fd2","0xEe9801669C6138E84bD50dEB500827b776777d28",!1,!1,null,null],["bsc","ocean_protocol","OCEAN",18,"Ocean Protocol","3045022100a582fc8f481db845856dc3a39e8d852e59715fd1946314635b5a9f60c8c8db6602201e1563d006467fc9abae7506c8f79643242e6f18e9398716c4e5e805a2e0d1df","0xDCe07662CA8EbC241316a15B611c89711414Dd1a",!0,!0,null,null],["bsc","octree_finance","OCT",8,"Octree Finance","3044022041e69e36de1fffd57de22b4e06ee9b32a89aaf431b78a4b3301883c505248dc9022059ad61d96bc0c51379bcf3a0356f8f0528f06dbd4324d364c86b73366130510b","0x49277cC5be56b519901E561096bfD416277b4F6d",!0,!1,null,null],["bsc","oddztoken","ODDZ",18,"OddzToken","3045022100f76a4a548a149d5e5ebeb71a06e3f1710a8c3ebb92173efbca4dd5f72a5790ec02206d58cfcc1973f5887a7b02906e14b0b5f2e13dff568388f38854946e618db44c","0xCD40F2670CF58720b694968698A5514e924F742d",!1,!1,null,null],["bsc","oinfinance","OIN",8,"oinfinance","30450221008e8a424f46562cb1258ce401586b7312c402420c8ad00be108794f77e1a9a6f002203d8cde0c3dfdadcbd2b6cd78fb88b5bb77c04d213eff9c1ca491f75075fb2cc9","0x658E64FFcF40D240A43D52CA9342140316Ae44fA",!1,!1,null,null],["bsc","onlycam","$ONLY",18,"OnlyCam","3044022050c1ec261b081773f2145fdd8f900b55075220a2cc6d291da2d1b648a768c2c102207320a5bd3e1a17fe98a2fc83486cced4e3fad314fea94ed19832819b1af1ca95","0x639928999f491A21858Bb38adE14eAA19210a38F",!1,!1,null,null],["bsc","open_governance_token","POPEN",18,"OPEN Governance Token","30440220351dfa8595187f89113403a7f8b0190a2a7b1c894ebe25920991204bb5378c84022046916774c319522582881aac885fe6f5dedb70e6f8bcf73c8840ef184c07056c","0xaBaE871B7E3b67aEeC6B46AE9FE1A91660AadAC5",!1,!1,null,null],["bsc","opuloustoken_[via_chainport.io]","OPUL",18,"OpulousToken [via ChainPort.io]","3045022100ff85b61fdafa8e14e8f4a9615fba28a0f5b613b8fc093b2f7a259d65cc6ee8840220748c4f0e2515f6ca91b26ef190806f110ccdccb6e4dd75040fa9d7845b20e9b7","0x686318000d982bc8dCC1cdCF8fFd22322F0960Ed",!0,!0,null,null],["bsc","orbital_lps","ORB-LP",18,"Orbital LPs","3045022100cad4055864da8b484e1e86f9b4add0174371555cd970d1aeb4f8c93d233260d90220441979b879b8b6a32f1d0a7fe15aa8ca6306b85e000b120341fb1ba533284075","0x71125dfF884402eFFF470476440946eF04b56180",!1,!1,null,null],["bsc","orbs","ORBS",18,"Orbs","304402206e9bc02471042b25f803b9bd5668eed166cb8bcf72fdb4eb8a1125733138df560220765be43b826dd72c9c1bc2f3689f47ab81a2b0f9f039531f7c32b8519fb4dc97","0xeBd49b26169e1b52c04cFd19FCf289405dF55F80",!1,!1,null,null],["bsc","oreo","ORE",10,"OREO","3045022100aaf8ae2b05bb6810516f1b770d92c6f6ff254d7bd38893230153e5dada0d491002203b875a40e76f76ca32d1e1426fdb173106dccf98d59d937b25949fcda28f148f","0x93d5a19a993D195cfC75AcdD736A994428290a59",!0,!1,null,null],["bsc","orica","ORI",18,"Orica","3045022100ee3b9bf64db44a81debd9ae5e308120bbe102ca278ebcebd1bb72b6570a8e9870220624fb9d8f67a7c03d7e31680b2657c4c9466df3183c5f4e49ba142c01f90878b","0x3045d1A840364c3657b8Df6c6F86a4359c23472B",!1,!1,null,null],["bsc","orion_protocol","ORN",8,"Orion Protocol","3045022100d4bbea35c319a7c90b0a02629a00f3a8728a2104150e40d04065c331274c93ba0220684296c1e3ed62c6195f784e007bb518f626d94cbe0a7a3489dd72f9a6bb4f00","0xe4CA1F75ECA6214393fCE1C1b316C237664EaA8e",!1,!1,null,null],["bsc","ovr","OVR",18,"OVR","3045022100ba0edaab9e0415ba5d7afe07d4e2d395473f928d22d1a4aedf9c78c66b4620e60220380ddbd75920333b3395ec3feec52aa61b88fddabfbe1c0e87aca1eca0362311","0x7E35D0e9180bF3A1fc47b0d110bE7a21A10B41Fe",!0,!1,null,null],["bsc","paid_network","PAID",18,"PAID Network","3045022100aba674f9a01f1ca697e240f5d68bc3bcc91445335a28c8688e7fed89c0bf5299022048816219801e9f3952ff8cc32f0b09e060508721fc648307f735335789ef2fe4","0xAD86d0E9764ba90DDD68747D64BFfBd79879a238",!1,!1,null,null],["bsc","pancakeswap_token","CAKE",18,"PancakeSwap Token","30440220568070fa3a4c88d54d6383fa4c1e2f3f16d69446ae5baf4b712c8d8931118f0502203cd35a099046b325a5bd2698a55a36feeb1e1fd392d47053205c0d31b13a94f7","0x0E09FaBB73Bd3Ade0a17ECC321fD13a19e81cE82",!1,!1,null,null],["bsc","panda_girl","PGIRL",6,"Panda Girl","30440220224779f04813c2cc69d91a616ba12e85a07f1740c92347c2be701c8888ee55460220618f44c98c928378ab17b8be136434731676e8fe3203d65576859317ca5d4072","0x4c4da68D45F23E38ec8407272ee4f38F280263c0",!1,!1,null,null],["bsc","pandainu_wallet_token","PWT",8,"PandaInu Wallet Token","3044022006d28ef81b4903d664b7f57ca846ced93c87bc580163e83776d629c883e073b002200333c27d15d6418952bc7fba2ce1b1dcf2c8491746412d456ab27e3056f2b4cb","0xf3eDD4f14a018df4b6f02Bf1b2cF17A8120519A2",!1,!1,null,null],["bsc","pasta_token","PASTA",18,"Pasta Token","30450221008cc82931d047310eed53da5d1970c0c81c506bb91d3f4dcefafe5e6f6788570d0220799f234458811a83591a0610c883eb20f258020ad9499861dfdd43ff6bde21bf","0xAB9D0Fae6eB062F2698C2D429a1BE9185A5D4F6E",!0,!1,null,null],["bsc","perlin","PERL",18,"Perlin","304502210087884b1e25dc6fb3ea89c18f699db1de2f30cd6a80329bb435bd8b6b15823ea30220024091929d1e4de87e4af6f5d34cc271878a991942e34e7b501e33a83dacc4ea","0x0F9E4D49f25de22c2202aF916B681FBB3790497B",!0,!1,null,null],["bsc","pet_games","PETG",18,"PET GAMES","30440220184a1b899a7e4ef4b9651ca4f6105742d4fb83a50a50e581c229d2137c92c0610220659c7acbd006fcac8253c4182659e5da33a95d9b09f21de037fae902e3514b9b","0x09607078980CbB0665ABa9c6D1B84b8eAD246aA0",!1,!1,null,null],["bsc","phoswap","PHO",8,"Phoswap","30440220452be4152869f47f771debfa8a1db077ad65f1167aa407534788641f1a40d10e02206629d45a7621f2f7e72a10323a4bd6609b689821dc7298c9122347335ee80596","0xb9784C1633ef3b839563B988c323798634714368",!0,!1,null,null],["bsc","pigcoin","PIG",0,"PigCoin","304402205fedd2c617b28f63e88593c67082b95c4d116ed73f91b52be23b3b3dd4a7abd90220121885e2c60c077fa704e0c63213f5157cf2458b2fe2a24084fe949c6b50c793","0x4a8E8077611ce60F3A2Bc08BC6E0C2258138e3C3",!1,!1,null,null],["bsc","pige_inu","PINU",9,"Pige Inu","3044022068a430a8d1d1a2c48339ba297ffaa0d1748fa83e56f7b3a30222bc00e3af29dd02207c8b0232e5a8cccbd295484960ebb7c29422567124ee1ce4e679cecacd9cdaee","0x1FDB2c3851D067502Ce2122bE80a41ea212949E2",!0,!1,null,null],["bsc","piinu","PINU",18,"piinu","3045022100d89911238dcdf710129906d19ac481bb671c3d716ba239ac71ef25b7bca3196e02200da77edbf0f1c1383d1034b809f705286e97094bf3c3f16550bcf828c69f04b8","0xF03E02AcbC5eb22de027eA4F59235966F5810D4f",!0,!1,null,null],["bsc","ping","PING",9,"PING","3045022100e0db80bbb9fadbc779b563d92a1a3909d2d20be5920f848243fd1e801e2279a002207fe51199bd955f17af099edb4fcdd22afbf46ab3dcd113489b5c1c5e46853b46","0x5546600f77EdA1DCF2e8817eF4D617382E7f71F5",!1,!1,null,null],["bsc","pink_token","PINK",18,"Pink Token","304402202e54139a66ba997cc846099d81548a03510af0551c49a2cebc1db84f8b8612550220396fc0efbb452f4af6370caeedcb67d9b2226bb1afa37a8e642838415ebecf7c","0x9133049Fb1FdDC110c92BF5b7Df635abB70C89DC",!1,!1,null,null],["bsc","piston","PSTN",18,"PISTON","3045022100ae82364a16dec74d5da7e56da0e3dc1d71d0959a146b0fad3a4ee0d07b2c53e502206c182250771d2b769bb3eb00fc22ab5e747da71a84d3856fb5a85a5fee61b511","0xBfACD29427fF376FF3BC22dfFB29866277cA5Fb4",!1,!1,null,null],["bsc","pitbull","PIT",9,"Pitbull","30450221009d2996441aa3fbbc2f7307b5dafee3a4415eb774c7e7a5bcf150bfcb6882b53a02201c6247e2268bd10a2886d96e08d55c95e3d843b32945272ee8f4107f27450308","0xA57ac35CE91Ee92CaEfAA8dc04140C8e232c2E50",!1,!1,null,null],["bsc","pizzaswap","PIZZA",18,"PizzaSwap","30440220406198fa86c916884d6cdc3233b9914287ddb6f16fa28a36338da6fd126ef3420220370bdf4eac0b0d4be7e4d5ac106c1d23b10976688cf5ce2e3bffc08616824b68","0x2cc26dd730F548dc4ac291ae7D84a0C96980d2cB",!0,!1,null,null],["bsc","pkg_binance_smart_chain","PKGB",18,"PKG Binance Smart Chain","3044022024ccfdba9faad97a95feb968fb18c9a35eac3f63b60e1ce140d8e4827bf5e5cd022041a2fceab0f7b44492ea1c147d68e1fc8074c2e85eda47448adfc747dd56da58","0x89A851764A427f48c21c1557d94458267FE3d372",!1,!1,null,null],["bsc","placewar_governance_token","PLACE",18,"PlaceWar Governance Token","304402207b822120a353b31e927bfe4312158f609ad0bbe1d5cbd0fb0435f4fd5dadb5890220289cbb252581a60d9767a15a88c48429f3bb50880ff1de7215712fb13963864e","0x07728696eE70A28c9C032926577AF1D524Df30f9",!1,!1,null,null],["bsc","plant_vs_undead_token","PVU",18,"Plant vs Undead Token","3045022100cabd487c2ff590e326e00888192e3bfe91b14fe48a712518d3a6c6b7ec9fe6d002202e5a4031d4eb2d60bdc51a97090c883a5e98600c314fcdf99222fb1fdc748be3","0x31471E0791fCdbE82fbF4C44943255e923F1b794",!1,!1,null,null],["bsc","plastik_token","PLASTIK",9,"PLASTIK Token","304402207f20c51efb3591dea71913828ad65c83d62bf7cb67a0e19c10a972db1ecb86a8022057f863e790f3bef336e3c6ba3604586e370bafd06048024655eba6449c53f7f2","0x2764be4756fEc8De911D8D37efE4AE8AFF178254",!1,!1,null,null],["bsc","pnetwork_token","PNT",18,"pNetwork Token","3044022013e5dcda140a3acc2d44e632102a90fc75f1a1ad557a7b8910eb597027fc7c2a0220492eb254dc115fe630577c968dc838419ec71de038f8c3321a19075f009a768d","0xdaacB0Ab6Fb34d24E8a67BfA14BF4D95D4C7aF92",!1,!1,null,null],["bsc","poco_token","POCO",18,"Poco Token","3044022041e4858110e76e9ef11429be64a4cd87c6cf2e5290f3e3ff7dfb06d23c9b6d4e0220588ef5f447f8a36ae77fd9426ff2a0767c0211ebd828d6b8d02031fb6929b23a","0x394bBA8F309f3462b31238B3fd04b83F71A98848",!1,!1,null,null],["bsc","poken","PKN",18,"Poken","304402200ee244a781f51be9c2e912443cc581b8b87b6b48e1532b67d48e3ee63925077702200ddc33ce2c93aab03c65c3fbc734a0df74a84b43d8f1992b50bc2cfe19304e01","0x4B5DeCb9327B4D511A58137A1aDE61434AacdD43",!1,!1,null,null],["bsc","pokerfi.finance","POKERFI",9,"PokerFI.Finance","304502210088715a16fe20bbdc7bf62de9f9f0b790fd9a246fd20f7d196edc68c8bea0acb50220787cc6c30b19d558f1c37fb5be22d5c77ef4123da5f2ee9a3619fad8aad057d6","0xfE073C3B891325AE8686d9Cf2C8b3586674f7BE2",!1,!1,null,null],["bsc","polka_city","POLC",18,"Polka City","3045022100d84e6d4a7352b66f3dcdaf60e132466e5356d4b4ac40e8346f1c3dc7004e9041022075f7fc82c545285d6580647355b574f13ee293f3f9e398ac5fb11b576cd9e728","0x6Ae9701B9c423F40d54556C9a443409D79cE170a",!1,!1,null,null],["bsc","polkamon","PMON",18,"Polkamon","3045022100a89d20606d742cb7ccb9c3b88c554a637fca1b5defdf210f6c1631eb93ab90cd022002065b00fa07ad409405bf9a82d891b1b1fc3c28e46146ecb7cce2cb9b2441cf","0x1796ae0b0fa4862485106a0de9b654eFE301D0b2",!1,!1,null,null],["bsc","polkastartertoken","POLS",18,"PolkastarterToken","3045022100a5c159f28e399f6dba8e137363f43ab4fef166802498a33690973f0f2d87af6602206f1d68ff8c3eb1feedf3dc0ff7e82517b22975c205878202b7e82aa546cbc8b6","0x7e624FA0E1c4AbFD309cC15719b7E2580887f570",!0,!1,null,null],["bsc","polycrowns","PCWS",18,"PolyCrowns","30440220332d221af912e191984b6555bc107827eaf11512d81cd9c569a53c45370d4e2b02200e9d0b7220d7c0ed2fe58c54be1a47eeb9f72dae9cdab642cc56e8b504b3913c","0xbcf39F0EDDa668C58371E519AF37CA705f2bFcbd",!1,!1,null,null],["bsc","poodl","POODL",9,"Poodl","304402200f36060e2e33b04e1d1540d52f28689cedccfef22dc25b8142ba4e89beefdc6402204f0c2cfff5371871c228a84c1301dd6289c557d8f4de6619b92fae19a63504dc","0x4a68C250486a116DC8D6A0C5B0677dE07cc09C5D",!0,!0,null,null],["bsc","pornrocket","PROCKET",9,"PORNROCKET","30440220386880d76b4bd4617eb961846bebeae5ac980704e7ca43b959da492b8e2945730220136208dc0939196a32b96f1fc16b61d7722afaf35b061f47279e1ef9d1e9e0d1","0xCF9f991b14620f5ad144Eec11f9bc7Bf08987622",!0,!0,null,null],["bsc","position_token","POSI",18,"Position Token","304402204548dc9ae9b562cc7ff3a3e1420f497cdff9541668fb4707ebb82fe3cb19fe49022057476f5242cc2c51e0ce1e188871d4350066d8c19320a58e270bf2c1772bdecc","0x5CA42204cDaa70d5c773946e69dE942b85CA6706",!1,!1,null,null],["bsc","posschain","POSS",18,"Posschain","3045022100d8ff5709ec1f1ab3b423cf134c6e6cb6c554c857f9d6bab78e2894b7faffa26f022054af636fd165a1f98812968eb4c090f8f6a20cbc44e89ed4afd30edfa809585b","0x230f6e7904FFc156Abd8aDfd7556e56E2A358cB1",!1,!1,null,null],["bsc","potfolio","PTF",9,"Potfolio","3045022100addbc8298a625a5f8732d3b5acc73ce351392c254220776099073cf858513b4b022011a74da8dbd4c3358934a663b550bfb364065b6245749eeaf84c1f1f57b548ad","0x2Bb06b3F1953F3579DDa3bC6CbBd9c78d7Ff1340",!1,!1,null,null],["bsc","pptoken","PPTK",9,"PPToken","3045022100ce7f87a0c73dd8b63fa7d4057c33684e4bb5b4f4cb20102ae37766fa21130a1b02201115efc0f0ea2148031cee507c0869c29a636af3144541f65aeb3fbbd758f029","0xF12c5e08C2032D16ec14C0dF50548ADe9f40B17a",!1,!1,null,null],["bsc","primate","PRIMATE",18,"PRIMATE","3045022100b8701ea21e9b97976a8e826cc660a0579e0a66c94a75a78b2b87c9dbed28433b0220072892dd34b8353581d4c2a46f34e09587c7deddb93f95e22a82780ed8803278","0xA19863E302FD1B41276fCe5A48D9C511DBeEf34c",!1,!1,null,null],["bsc","prismvio","PRISM",18,"PRISMVIO","304402200269f9ac89e7c864b826a803a20ac54cd6043659cfca3dd4be8a8f71b524cc0b0220465fa8a66462e2982830a7b433f42fd699f2ceafefe31145e39c6500b9d2b5ac","0x66160c18096d7C3e0F8423b78A99Ed7c8d85C435",!0,!1,null,null],["bsc","project_galaxy","GAL",18,"Project Galaxy","304502210081946e4d74e0bf38c6f8d3e08bca6d34d0d2b51ab26a97792def860c78a05f6e022061ada32bc65a121f02327fb1181c784f8b1f72d6698a39784ffb0b60d5017442","0xe4Cc45Bb5DBDA06dB6183E8bf016569f40497Aa5",!1,!1,null,null],["bsc","prometeus","PROM",18,"Prometeus","3044022050f1ff6bf73307b640ded608f149616f4c568a81500fcb3c16d8c52d990bbe9f02203acb4b61c7bd19dc0daeadde0ee389ed07f50b462fcd2766fe5921458771f921","0xaF53d56ff99f1322515E54FdDE93FF8b3b7DAFd5",!0,!1,null,null],["bsc","proof_of_degen","BNB20",9,"Proof Of Degen","3045022100a959a005bd8b437fc3896d36810cc6b6700946d14e9f5dcd8863ac213ae0acfb0220217f7dcd6b547567a41cf1d5e859982f599dfed494eca0961481c8a1a541d386","0x3D01755E06FD11a08Cd2995Abd183Cd8990256DF",!1,!1,null,null],["bsc","propel","PROPEL",18,"Propel","304502210091e3f137cd689803b728d1ef762720a3d938c8d5ab059262649b9ed38d1475ed02204a47be797e565f5c2571cfd378a9bdb0dc2f3aa23cb8cfc5708f5e64b44b71b3","0x9B44Df3318972bE845d83f961735609137C4C23c",!0,!1,null,null],["bsc","prosper","PROS",18,"Prosper","304402201732983221029eced85d03893d79d423d2a66341cf97e1378a17c527a32fd170022016059b33142e42756b47c661934165a2c2a0c0aad0ee2f4d037ec3d3ba0f1d67","0xEd8c8Aa8299C10f067496BB66f8cC7Fb338A3405",!1,!1,null,null],["bsc","ptokens_btc","PBTC",18,"pTokens BTC","304402203d2279de030970aa6c80af3af956a471aaf1b34fdd4adf70865c23e7c9c3719702204a93264fb98ba7a7f8e4dfbcbced0ffdfe048aae054a2f12f93429bef923ed73","0xeD28A457A5A76596ac48d87C0f577020F6Ea1c4C",!1,!1,null,null],["bsc","ptokens_cgg","CGG",18,"pTokens CGG","3045022100c69ac697e0a1469840d2de8ea5652e440ee29c0e2faaa89e84f48e9dc7a0b723022004d3580488ae53e6b9722b7f1dfdc3da8fd6ff6f541e07064dcfa6b0d2561bd8","0x1613957159E9B0ac6c80e824F7Eea748a32a0AE2",!1,!1,null,null],["bsc","ptokens_gala","GALA",18,"pTokens GALA","3044022034da982be48f96e86ed3a1fddd5e8c18f05252cda5dec8c686a327c5971e2b1b022064f0801fc2a3204d9d50f2c2341911ed4771da781abd74f51f067262c0cd97bd","0x7dDEE176F665cD201F93eEDE625770E2fD911990",!1,!1,null,null],["bsc","ptokens_tlos","TLOS",18,"pTokens TLOS","30450221009166629584783c9421e9e7877c5a9e652572756280b46c7261438b746452f6000220526028898074134e886934cc066ff3ed04e5abeef059ce57e440ddf9a6297218","0xb6C53431608E626AC81a9776ac3e999c5556717c",!1,!1,null,null],["bsc","puli_inu","PULI",9,"PULI INU","3044022045fbffb5129bd4bbe787722a27deec53e2aa3cf06fe828c591e35349fe15cfe702201bb00ac6986800199dbabf029d42da335df56b596c1fb5933acbc0fcf77d0959","0xAEf0a177c8c329CBC8508292Bb7E06c00786BBfC",!1,!1,null,null],["bsc","pulsedoge","PULSEDOGE",18,"PulseDoge","304402201b47fa96cdd1e83de14464d824e7281f716259c5681e0061b48638c1fe90f85e02205bf4893bbaeb9f34f31fa042a0ec5b43445ef70fe0a4853076e08b58df6c4542","0xD4d55B811d9eDe2aDce61a98d67d7f91bFfcE495",!1,!1,null,null],["bsc","qanx_token","QANX",18,"QANX Token","304502210099c04d143a29f79601f3d9c163bb57674f642823d73634a8d2f2d90b6132ec2902204a2386452d4f02d62d72bb8cad1dcbb88f53a2a72f8128d9135cfc4901508af5","0xAAA7A10a8ee237ea61E8AC46C50A8Db8bCC1baaa",!0,!0,null,null],["bsc","qian_governance_token","KUN",18,"QIAN governance token","3044022008de1e23a6bbdd63f6fbee56be579a130fbcb1f42ae61b49c778237dd4db35c202204194f681de7a4be620489d793e494d0ee436170137af757aaa89168aeab31eee","0x1A2fb0Af670D0234c2857FaD35b789F8Cb725584",!1,!1,null,null],["bsc","qian_second_generation_dollar","QSD",18,"QIAN second generation dollar","30440220624faaff8b29ebae7eb410d669301041a9bc6dc90e36d1f12d99e9027da72a550220607f2a9613dcc0748324330fef5ba8c5077d068431ddb0f2a5678c40cb3105c3","0x07AaA29E63FFEB2EBf59B33eE61437E1a91A3bb2",!1,!1,null,null],["bsc","qmall_token","QMALL",18,"Qmall Token","304402206bfe596ac2ef5e2f0e12123fd959ce135da20ef2b40fcd7a3f1bca732b59811702203ac78bcf4870cf4eebc6988eff5bda43e34f20a30622a839d27960fdd63dfa9d","0x07e551E31A793E20dc18494ff6b03095A8F8Ee36",!1,!1,null,null],["bsc","quantic","QUANTIC",18,"Quantic","304402203094f30e41b6607c2892ee3d42a7f9230706457c2ecfcb05d42d46cf49d8b70402204640db8ff3777fcc984c4840810124daa7442fe5f83ba1fc45c686803323f895","0x7700Edc3DBb30cBB7603212E061c804220c3cA54",!0,!0,null,null],["bsc","quarashi","QUA",18,"Quarashi","3045022100faba32aec9ccbc9a52d127790374a98703e9dbfdbc82aa650e74d7b38f25f758022047ef7820a5e99b3cd947584805aeab6a585c9e9061ac0178219bc0011872761b","0xfD0fD32A20532ad690731c2685d77c351015ebBa",!1,!1,null,null],["bsc","quarkchain_token","QKC",18,"QuarkChain Token","3044022077fed0018d553e0c74e0e02f2d54430df2c1542f4d2db51489f9f75cdca41d4f022013c57a2668aee48cb5010324ec0a77f2ee8ee658c316615883b1bc7d773cf0c9","0xA1434F1FC3F437fa33F7a781E041961C0205B5Da",!1,!1,null,null],["bsc","qubit_token","QBT",18,"Qubit Token","3045022100d7db436136398173da01ff3655c41f6ad2322a63eb82d802898be3480a530fb102200c241b47788e5ad7a8a1e0f7da4dca2c5bdcdfaa316f77f97ad0f86e01e936a6","0x17B7163cf1Dbd286E262ddc68b553D899B93f526",!1,!1,null,null],["bsc","questdm","QSTD_",18,"QuestDM (Old)","3045022100b84a0c41f5a307e4adfc0a487ffd80724c93c15c9f30deaad57ec4646c7e162f022036db1ae2e8bbb588372a14622a02e8a62a20609918df29ecfb732fc221e89aca","0xdC16c500FB569965b56A1902FeF495f883b57Ff2",!0,!0,null,null],["bsc","questdm_","QSTD__",18,"QuestDM (Old)","3045022100c79f0e4ed1cbe4cc780c42eef915f37b873a95de14c7451cd2fa777ff37c2e55022053421444de83a9c8140c82dfc8e3d5902258be1a34e613bcdc90304e34043996","0xCe152A893d9407193B2478ddA922D4018ac4C7C3",!0,!0,null,null],["bsc","questdm__","QSTD",18,"QuestDM","304402204b0623ee67d09ebd8c424a3a02edd5c47c8c63db9c7297fa3d1c9112ed6de5330220278406268d21f087349d7802e40b3b734228ef80c1a4ce1da1718b1abecf90ce","0xb395d5d00900c2323fE9CbCB3FE47BDaB94593A5",!0,!0,null,null],["bsc","quidd","QUIDD",18,"QUIDD","3045022100e2b14b5a0f9e3cfb0b36d3e3d75ce48e68b6ef2aeddb8f46e0993a51a11c711a022026357fa43b9cf7a1ec05abb2c82120dab6bfc12755f7d21a605d2564bf12988c","0x7961Ade0a767c0E5B67Dd1a1F78ba44F727642Ed",!1,!1,null,null],["bsc","quint","QUINT",18,"QUINT","3045022100bcff417f7244d7c133c430da00b30ccb2661f1c11d2b8d88c5f7da39f315ced902204ff426d6f586305c9d343b5b8488b9283e6f839beb3bf8e3d080f4f4953d788d","0x64619f611248256F7F4b72fE83872F89d5d60d64",!0,!0,null,null],["bsc","qusd_stablecoin","QUSD",18,"QUSD Stablecoin","304402206c223cda5a48b0105ebaae032f32fd79d46cbeaf549417cf3b41fae13ddf26e702207457700cfef13e27e04ea0d6527962c23ce71a830949b3a264fe43e3e7f03ee6","0xb8C540d00dd0Bf76ea12E4B4B95eFC90804f924E",!1,!1,null,null],["bsc","rabbit_coin","RABBIT",18,"Rabbit Coin","30450221008a7d2b94f004ca33c76627a1e3d3536327e3069972dc689f6a4b823336ac01bc022021f2f49d5038a3d0459e7ccdb1333b7538c8873220ef68eb4ef273fa2dcaf422","0x95a1199EBA84ac5f19546519e287d43D2F0E1b41",!1,!1,null,null],["bsc","radio_caca_v2","RACA",18,"Radio Caca V2","3045022100d3c3a51dbf3602e5dde8792b585aa666268faab2e22d20735c3365ed53b93cf6022072b9ce1a1ce1473617d4ea07fea453024309c4eba5cab55ebdd3dfcaf2b7af45","0x12BB890508c125661E03b09EC06E404bc9289040",!1,!1,null,null],["bsc","ramen_token","RAMEN",18,"Ramen Token","3045022100baa34c0b49d8228fff2d414bc27aa2ec25a41de8bcff05ecff037245e757efff022030cdb073d3ec059b89f1865f7b1e10cacfed74ff7ab7507178bdb7f71f65aafe","0x4F47A0d15c1E53F3d94c069C7D16977c29F9CB6B",!0,!1,null,null],["bsc","ramp_defi","RAMP",18,"RAMP DEFI","3045022100b31bdc9219ffd3a73442818a0c2074178f824ca7674861a24fd097862d9227d8022071b82e60ed532d896c0a18a0f871f90ba03aea6573039ef596984e3fd80f1ff3","0x8519EA49c997f50cefFa444d240fB655e89248Aa",!1,!1,null,null],["bsc","rangers_protocol_gas","RPG",18,"Rangers Protocol Gas","3045022100dbd42ba4881fbfc93b587a99729b04d09b68fa3289b1bd806056ca1eb245e339022033c4b19a6add29b23f81237de30a0f589d8d47e295aa3df445b20473bf4a9588","0xc2098a8938119A52B1F7661893c0153A6CB116d5",!1,!1,null,null],["bsc","raptor_v3","RPTR",18,"Raptor v3","304402207cebcb6a95865430e163b029aafe7d3af5bcc3d6a123b4801a6f0fa0d04f561f022012d108007f11f047473aa15a82357c05613a89bbabcb9045d777c14f3a6bde33","0x44C99Ca267C2b2646cEEc72e898273085aB87ca5",!1,!1,null,null],["bsc","raven_protocol","RAVEN",18,"Raven Protocol","304402206f687c2c9f70fda8fce6acb68f79ac85be03e537f6e4a8f051d00283699b9df00220614e165cae90221407ceee2c430a5d79397911ac5096d725e5e3a7ba89023c61","0xcD7C5025753a49f1881B31C48caA7C517Bb46308",!0,!1,null,null],["bsc","rbx","RBX",18,"RBX","30440220591e3afdea32c520a0d0a38b7f29e317f2d1ecf2f88e240cc88864c4f898448902201eb4ebd037202c7b0e3cb8d05dd27a2d7b6bec2ba8d2c306bac3e6c5727103a7","0xaCE3574B8b054E074473a9Bd002e5dC6dd3dfF1B",!1,!1,null,null],["bsc","real_estate_coins","REAL",18,"Real Estate Coins","3045022100f2482eec1a2bb93195aa298ff3fbfa5fcb5ed260a0ace351069758fff3f85f2d02205019edd6355870000191c2e9f9bd4fc70647caa72a783e2c922803d6d4a0b2b2","0x4381Ff8F117C19D7113bcb793e5cA0D6c92232B4",!1,!1,null,null],["bsc","reef.finance","REEF",18,"Reef.finance","3045022100b4333ce9f802e0d407e9a3f2f1776e98aa4b53d03508c73c1607356504f455f902207f8c11d08c0fee829c3f568f58e2a83ec84ac94eb45dbfda225216ad62e7b8a2","0xF21768cCBC73Ea5B6fd3C687208a7c2def2d966e",!0,!1,null,null],["bsc","refinable","FINE",18,"Refinable","304402203fbcb4317dbb365b036b394844f33a31fa62f1e21fe50aea2b7d4ee78e54b1c702202eb3744ba4f829310987b3c88e20c4898f9579eafcfb5acd8ec2b64d4cf87a6d","0x4e6415a5727ea08aAE4580057187923aeC331227",!0,!1,null,null],["bsc","reflex","RFX",9,"Reflex","3045022100e83070193c0ebcb4531133d0113ef400325e145ff12620748b97cca797985645022046b20cc4edb25861331e3dd56826e34c3ab1a97068267ad9a55772081771a7e6","0xB44c63a09adF51f5E62CC7B63628b1B789941FA0",!0,!0,null,null],["bsc","refugees_token","$RFG",9,"Refugees Token","30440220227e65fa9684ebdcce28c1374ba96f03d881e5f0526c07d16630d0eced80d1e302206c0648b6d98fc009c282467611675ff2c2df9349f440cb9036295dc8c4a26ad4","0x4477b28E8b797eBaebd2539bb24290Fdfcc27807",!1,!1,null,null],["bsc","renbtc","RENBTC",8,"renBTC","304402203568db2b2f30b26a8073ae07289081fbbc4ecdb05c7b7b4ecd7ce0048c5ce24f0220697196ced9af384b39b14593c7524146b0e1497cf5936f0e716f0d69e64a70d8","0xfCe146bF3146100cfe5dB4129cf6C82b0eF4Ad8c",!1,!1,null,null],["bsc","rendoge","RENDOGE",8,"renDOGE","3044022047e2bb00fe0cf3e062d623bdac228c45ede193e697105ff349fd103ea92794ee0220551831432e69cf0c8828c701eb9b177eb882ae2a0463f95a864f6d02504cfd9f","0xc3fEd6eB39178A541D274e6Fc748d48f0Ca01CC3",!1,!1,null,null],["bsc","renzec","RENZEC",8,"renZEC","3045022100a8af6329eba39766f4e89feba6ca64701c8a9ce862bd3e7dc6b5f021ecbcfd82022074397a7ac1a5720f9e0973b311218d84f24ae48bab26f301250bb1e44151f36a","0x695FD30aF473F2960e81Dc9bA7cB67679d35EDb7",!1,!1,null,null],["bsc","revv","REVV",18,"REVV","304402205a7930b9450d6a46af7d1b94dd1bc6a19ba84852702272563dc53efd776e65d8022014a9ee97a2a8059f7665ee9f874a0b9f5bf03db31d712aa1b0facf8b458f0f84","0x833F307aC507D47309fD8CDD1F835BeF8D702a93",!1,!1,null,null],["bsc","rex","XRX",18,"REX","3045022100ab657631441bacd2416656cd15c075640c0b240d6c5a36069b9e56aa1550dfc302203fa20ea3d68176ee7ff2097851491e5b8f0cd0a99d7963be31218cab1b4b6ef2","0xb25583E5e2dB32b7FCbffe3f5e8E305C36157E54",!1,!1,null,null],["bsc","rfox","RFOX",18,"RFOX","3045022100cdb676ff099d6c06fcb2c8d6f4d1e1c4b722c6c5b574940507437bda3d9202850220353aa3d64f0650e626c9de987c2a22f28b2ea7780810f8fbd57f8561ef3524b0","0x0a3A21356793B49154Fd3BbE91CBc2A16c0457f5",!0,!1,null,null],["bsc","richquack","QUACK",9,"RichQUACK","304402202ef4ac6d09daf23457b7d9287ecbde30f845dd5e09a9c761d16a5fc53746f2e902201ee651587d423a2408296ddec0283230dfaed48968733055d6cfd7bb85c64f9e","0xD74b782E05AA25c50e7330Af541d46E18f36661C",!1,!1,null,null],["bsc","rigeltoken","RGP",18,"RigelToken","304402207c689f23188969d8b14fb210032cccb769651201fbe1318d547f5e21c9d7ba1502205c5876f1b1e66b15b8fe93d1338eb164697371d16762912e339701719e7906d5","0xFA262F303Aa244f9CC66f312F0755d89C3793192",!0,!1,null,null],["bsc","right_side","RTSD",9,"Right Side","3045022100d242251e12bf3b390206e4fb3476c6e18a3e3ad21ac2a295d3bfed0111d3af0c022059a8a381a6e9dd6dd4e3ab5f07ae847dccd54e40731b2da1c9f1d3596cfc50d5","0x00F5960F7Bf0f2a5978e3617c170CB6FB2ef4d0c",!1,!1,null,null],["bsc","roboc","ROBOC",9,"ROBOC","304402204d4fe58aff30c6aa7dbd1185dc20d7ade05fb45739491e0162dfe02f76f65af1022066bac7a31d9190343317f450a6622ea1a7c5b7a9a57028879cbb0e5d70910f6d","0x4e48166A1775957870173379f3B115b84C4f292F",!1,!1,null,null],["bsc","roobee","BROOBEE",18,"ROOBEE","30450221008e9a8c0cdffe44092fc27ba99fb59efb88a6350e285a46bab7d96e9a38b69cff02205a1346e5565cf15b1441df5613d4518a51b2d37bccd980e99a3bcd9e9e6ce8f0","0xE64F5Cb844946C1F102Bd25bBD87a5aB4aE89Fbe",!0,!1,null,null],["bsc","rubic","BRBC",18,"Rubic","304402200d8eb41f8c1ebe5752925cdafdfa9f8ba55d1923a030704abd21c5468bd4e4c302202f0d88d378f55b43c92d97c077642b7135f432677ea4ccc892ed4c2220d2e508","0x8E3BCC334657560253B83f08331d85267316e08a",!1,!1,null,null],["bsc","rusd","RUSD",18,"rUSD","3045022100c0bf47d183e3a3d03836b0669d6677c77a2913af4f349f4eca4118e7fe27c4130220385a23baf9448649e1033e37117d003247ca903c465e6b7a3e1ecf24a38e18cc","0x07663837218A003e66310a01596af4bf4e44623D",!1,!1,null,null],["bsc","safemoon","SFM",9,"SafeMoon","304402206a302699568ea5f8802b656f6ee05372f2201129fab3e29e609e3ce168c3589102204e5feb2837d81f419c5e46f1b518628879114298817ecffdd0eaf5d029710871","0x42981d0bfbAf196529376EE702F2a9Eb9092fcB5",!1,!1,null,null],["bsc","safemoon_","SAFEMOON_",9,"SafeMoon_","3045022100f0371aee4795e7cafafc65cebb6d49e0f520d7e113c9e1ee4a456ac11537ae1d02203c4f249d38ec68e5ce13bbea50147d8fbf9b03b481f9fec4562d52e30b2a49c7","0x8076C74C5e3F5852037F31Ff0093Eeb8c8ADd8D3",!0,!1,null,null],["bsc","safepal_token","SFP",18,"SafePal Token","304402204d09c51605ad031bfab07940c16db49c1a777b97a900e0f92940c80a1d00ec9c022077d16a53e75c781a0bec2a8376b095a520391b6a5b74149fdee59c651db7cb3f","0xD41FDb03Ba84762dD66a0af1a6C8540FF1ba5dfb",!0,!1,null,null],["bsc","safuu","SAFUU",5,"Safuu","304402203f8f7fa364367a7289dc174807dc27b77ca17d9cf55a9c543d064d0ea8ca42b902203d8846270d8a6c3ef76d091405e34bb6279bbe9fffb874183f05990464f95caf","0xE5bA47fD94CB645ba4119222e34fB33F59C7CD90",!1,!1,null,null],["bsc","saketoken","SAKE",18,"SakeToken","3044022056d44124553b4b1cab714beeeb011488820f4f65fbbdc490892e72389ce0c3c002206625488b56e16662616ee1a2adb1e1a4d2859c0c40d8f4ada364cb2bfdf0373c","0x8BD778B12b15416359A227F0533Ce2D91844e1eD",!0,!1,null,null],["bsc","satoshi_island_coin","STC",18,"Satoshi Island Coin","3045022100933efe031170e70ef9cda55523dce2193d79ac6c51ca73b7e468a25dcee6877b02207623f0756c2eccd771f2e3e8ce24dfc9af37e5a9f80d3e4d94926bdb62ace426","0x340724464cf51a551106cC6657606Ee7d87B28b9",!0,!1,null,null],["bsc","saudi_shiba_inu","SAUDISHIB",8,"SAUDI SHIBA INU","3044022054998d470164ef7ec0f3e9ae1cb8e8b0186750f36610f2cf9df345d5d6d359d702207368159742bc9d0b6a2b26dded913f31edac8ff3f09ede53d7e19d4a16428fb5","0x2d6F3Dc5b202ccd91Db114B592872BCA32a7e292",!1,!1,null,null],["bsc","saveyourassets","SYA",9,"SaveYourAssets","3045022100cd3737bcfcee9dab0640c212adaba755556a1ba17fbbd4506c2f6aaabca5af0a022045a66632126dfcaad161af300ccdd1e30b13b9b62e89400d58b69d91760de99a","0x83A86adf1a7c56e77d36d585B808052e0a2aAD0e",!0,!0,null,null],["bsc","scallop","SCLP",18,"Scallop","304402203d3c3b2a64e88817135c5a77a935b711bfa2ed0edbb66c772aad83596b2df571022052b4bdf2e683291639b6e65b1707e6188692bd0dea70690da75be8b3be37e58f","0xF2c96E402c9199682d5dED26D3771c6B192c01af",!1,!1,null,null],["bsc","scrooge","SCROOGE",18,"SCROOGE","3044022009c58b989891d70623b4bacb931a21aa39815f64ca201d614d920e98fd2fc684022026f0ee67bc32797a39ff4b863a98a8be0eb58dd86f8f023b1b8c2c50ebd6f1ad","0xfA1BA18067aC6884fB26e329e60273488a247FC3",!0,!0,null,null],["bsc","sector","STX",18,"Sector","3045022100829c2c98af01efd08f322db64c59ecbbd9c5f101535191dbdc295caa7e56e02f02202b5b52ac26cb65d4a03e555cd821778589a32104a7a0d64c3fb6be135ab271c0","0x585d3dFfD59b5201979363cC5432020D910DC40C",!0,!1,null,null],["bsc","seedifyfund","SFUND",18,"SeedifyFund","3045022100d050e19a0c1f291ac7aee469ac92b11e3d97c39037fe5fd874db59bf25042e2d02200973ce3ff2ba7a1d5957e99a39ab74c12a3bef3de86785d2c89cde5752451041","0x477bC8d23c634C154061869478bce96BE6045D12",!1,!1,null,null],["bsc","seven_up_token","7UP",18,"Seven Up Token","3045022100ecb68fd9d0ed81e93e7aeb83e8c95e5a8d5c3fb5507bce95e08c8fc31ce0994a02200e28e9a7ae79b656d8284fcb3333ead64990c9ff07028f2b7384461e9c6204d4","0x29f350B3822F51dc29619C583AdBC9628646E315",!0,!1,null,null],["bsc","shakita_inu","SHAK",18,"Shakita Inu","304502210084cf605b6d13a807625fd9bbc084df57604b852f2cceefd460df3e2d2a3ab8c50220628525c87eae0d0c9a4a95f411560d4cf264bbca123787f7b2955fef8a3d3cb5","0x76E08e1c693D42551dd6ba7C2A659F74ff5Ba261",!0,!0,null,null],["bsc","shambala","BALA",18,"SHAMBALA","3045022100c67269447a1ea9935a7322e5face984604f9cd2cc89ce3d7ecb1c8426562b00b02204fdc950ebb2315ac56bf6389358e2eadeba525170170994f478961d60c5acfdc","0x34bA3af693d6c776d73C7fa67e2B2e79be8ef4ED",!1,!1,null,null],["bsc","shard","SHARD",18,"Shard","3045022100dbd3fd2f38aece56fe207884d548c8fb3f7cde522760135781672c5094d9fa3f02201cb17e1258c659ff3c89d08d21dc21e3073cb6ef817a4197a6f2ac1ccfb9ce95","0xD8a1734945b9Ba38eB19a291b475E31F49e59877",!0,!1,null,null],["bsc","shiba_inu","SHIB",18,"SHIBA INU","304402206308e1894f1762aa1132d27ce02fcf0ec5e75a6d262de438ae5bd67b869ac5d502207dad2132fcdd4a2684933c9c19350b0d469863f05b7bf2f983e5fb7a3b88d749","0x2859e4544C4bB03966803b044A93563Bd2D0DD4D",!1,!1,null,null],["bsc","shibatrust","SHIBAT",9,"ShibaTrust","304402206136126a2c32478f649ed3716ea364dfa6b55dea62b461e3300305912645e7db022001837457956077dde711f43af278948f007d8d3b1a011037af9bf61651775be9","0x13EB3FD33F52c94C3CB0a5943786694EE8E508ab",!1,!1,null,null],["bsc","shibnobi","SHINJA",9,"Shibnobi","3045022100c7274b602b8a1f32e6d173bcedf016f77b09bd24506c5c1de5d0fb34a9c1f3e102200bf262dccae2c6d66d7d6da17bf131934ced959b9d11c9022988d87ba9563bdd","0x7DAc25b1A665e1c70F25F1fC37d88C99274984ed",!1,!1,null,null],["bsc","shibnobi_old","SHINJA_",9,"Shibnobi (old)","304402203b6628e368def7c8834af86e9edc9091dad5c34a34f2074b3534e172b4fdae7f02207f51b3fd0f83ed655afa8f40cf1a2bcc52953d7d028f45f5d60bd3824a36a79b","0xab167E816E4d76089119900e941BEfdfA37d6b32",!0,!1,null,null],["bsc","shido_inu","SHIDO",9,"Shido Inu","3045022100a28bff2484502bfe63ae1f7162d2d6118773af5e1003393c1d9c1e343e656b4502200f9e3e0e81b8a19de54754bdc6b70a9a5f76b2f79851ed4df5a1a3cbb747990c","0x733Af324146DCfe743515D8D77DC25140a07F9e0",!1,!1,null,null],["bsc","shield_protocol","SHIELD",18,"Shield Protocol","3045022100b09c75a458f7962a83cff9cae4a31dcf921ff9defb539c7d0ea53b8b04e1d8d402201d8117979eb8d29cc9d9c18ec2569008012eb1a893da86d44423e447b7103282","0x60b3BC37593853c04410c4F07fE4D6748245BF77",!0,!1,null,null],["bsc","shill","SHILL",18,"Shill","304402204101dc9dd3789552fc4e735cd74b8da8723d4001d02c704b6e538e1ef081f6c802205040d451ea4953a634822afeb12eb11bebe8ed5a260504a41a2ab505a583aef6","0xfb9C339b4BacE4Fe63ccc1dd9a3c3C531441D5fE",!1,!1,null,null],["bsc","shirtum","SHI",18,"Shirtum","3044022039ce2bd36da48dad789279c435ae9cc378a371a4fc3ba3c3940a4f0753c0cfc90220181f785606d0b0bd62535c5c7e2e814091901aac6a08fee3a2b3b516c60ffab0","0x7269d98Af4aA705e0B1A5D8512FadB4d45817d5a",!1,!1,null,null],["bsc","shopperoo","SRO",18,"Shopperoo","3045022100a41cbe27d2aedcebd0b54593bfd303f10ec6e8548a80aed895477fc2a9ca0c9a0220579df6a73e0775f7d4733aaf4c640bf4e0d01e9270be373af3cad0d111f75e91","0x8d98a4e36Ca048b8e4616564e5a8eBB78895ddFF",!1,!1,null,null],["bsc","sincity_token","SIN",18,"SinCity Token","3045022100fb637f2fe558ac909b3a5e3768f9e9a21ef9fd7b2592dc559ee2f5ec1264b62c02206fcb052c0b20c7d8469b270b0cd95a78a1c47bc345a2fc7f7c07d577f7c09fb9","0x6397de0F9aEDc0F7A8Fa8B438DDE883B9c201010",!0,!0,null,null],["bsc","singularity_dao","SDAO",18,"Singularity Dao","3045022100ba9daffa0a11ad6f42885916fba101fca7aeaba123e2dbea87cdb49ec2cca172022027c86b068848bb8b3b0e99f1f389a9d3d1074e1c3ae59c1ff49032b7c361ef58","0x90Ed8F1dc86388f14b64ba8fb4bbd23099f18240",!1,!1,null,null],["bsc","skynet","SKYNET",18,"Skynet","30450221008500878f30c5754c973008e7f8303a44b3a34b398ab52b1213841e50dd75cc570220362d17b7ab04222db1eda588cba4b29a5ed55c160a650caebc0369fdd8b8c34e","0x78819cc8e56B2508e2028ED4050826789FFb2dbb",!1,!1,null,null],["bsc","sleep_future","SLEEPEE",18,"Sleep Future","3045022100da8cb63eee91d716d6367debb1593f1f0c570a5299f59f03ffe23667e3eb192402203929fd928dd2d7f3317517ead0d7b2bc3e40344160b23f17d30ed95b485e8d91","0x80CD73baDb406eA36B9a7CDeb8df06AeFa7E12d9",!0,!0,null,null],["bsc","smart_advertising_transaction_token","SATT",18,"Smart Advertising Transaction Token","3045022100ee85772e04f546f3f5bf2934f995a712b110dffa4795c619814652a305f4e5e0022037ff525a70bbd38142b6c85c1014a410d5fba5127b272870cbebb56a318e5dbf","0x448BEE2d93Be708b54eE6353A7CC35C4933F1156",!0,!1,null,null],["bsc","snappy_doge","SNAPPY",18,"Snappy Doge","3045022100ecf766c3b74e3a6b0b605daa5d7061bf726e343086c4b563fa239a5b5fc79489022018dbb5f389d4257bd8e53a1e13186397f090faa87f6f27296c3b0c86f300c456","0x808E87630c34a58607F7C1865A980Cac48420A28",!1,!1,null,null],["bsc","snufflesinu","SINU",9,"SnufflesInu","304402201263bd99cdc4a8b4988f677df068f76d7b95c31e3d99292f951c15a90239548d02202c518dd100663222acdea63562845f16ff9af9b74bc44fb827150109e0c071d6","0xe57692d4558fd6f779CB0B600213b73CA6eA213f",!1,!1,null,null],["bsc","socialdefi","SDF",9,"SocialDefi","30440220771fa549f5fae8cf8da06d8e1bdbf67ad474ffc11e58ea26f6e04eb36eed2a0102207a2d9891a1ebb6842f2a5b5edaf5aaa947f3b6dc259044885e82ab3388982e81","0x9a7e6791D7b23de3597463ae1D1bCC05f76E93A5",!1,!1,null,null],["bsc","soku","SOKU",18,"Soku","30440220080a722814d4a04cc39a114c81c38d0db9a9895d13c3dfaeaae2aa30511c584002202e23c3c089b4f156dcbd589dd9dc92490fc361af8ff697e3fb574b7535f22c00","0x0e4B5Ea0259eB3D66E6FCB7Cc8785817F8490a53",!1,!1,null,null],["bsc","solana","SOL",18,"SOLANA","3045022100b345698b250b926cc2096da2f313d00971b73ecc48d9f117b913682cbe1a774502203af5da4a2d171878c007b8a7abbdbaa457e8cf122d6f97d8d071cb6f0a02163c","0x570A5D26f7765Ecb712C0924E4De545B89fD43dF",!0,!0,null,null],["bsc","solana_farm","SOLF",18,"Solana Farm","3045022100c147871e38cad84cc788ad74ad5b0c871ce24dbefd4d00d2cb62e20dee416f5f022013a0bbcd5ca46b483991744d14f356d9791902de674e4e35b8ca6b7aa10f38d5","0xFEa6aB80cd850c3e63374Bc737479aeEC0E8b9a1",!1,!1,null,null],["bsc","sologenic","SOLO",15,"Sologenic","304402200749db27f77350dabbe25c282715aee44454b45236e12486601647b87a5dcd6f022064f499562c18887c7f785800b9774d027bd3fbd89538384157f3f6366f8238d3","0xc2c28b58db223DA89b567A0A98197Fc17C115148",!1,!1,null,null],["bsc","space_crown","SMCW",18,"Space Crown","3045022100a5dcde5ee20317d544f3da79ed9967d93d0d88b69e2d1d1fa7e725714c063d4d0220638540b39b76d2d5fedbcc5c7f2f981761c597b9822e8bb8686010778c107df9","0xb2ea51BAa12C461327d12A2069d47b30e680b69D",!1,!1,null,null],["bsc","spartan_protocol_token_v2","SPARTA",18,"Spartan Protocol Token V2","304402207f77ea4589c408404ca3e8b56d4df83092344d2c8ab0a92c605d5fb7d4d17cb20220750dea5c2a10b57e01efd95c0e185ce835a3e8b2c1b7cf3d921985a14bf9b478","0x3910db0600eA925F63C36DdB1351aB6E2c6eb102",!0,!1,null,null],["bsc","spintop","SPIN",18,"Spintop","3044022007543abdc2b68a57c0db9f6cfc0d938a84f89de002a5108b3c0fb28501322997022020e1b486c011822da49e32b402f987630916050d7cc3b214d050ec8ae5c6a770","0x6AA217312960A21aDbde1478DC8cBCf828110A67",!1,!1,null,null],["bsc","splintershards","SPS",18,"Splintershards","3044022074e7b0a91523d9acb6f06267104d9243aea64ff5d350369a2e70944a99542d5702202b8f45ea17d3b2882d769a9bb91a6f9d9f21a8dc2655a7d14071ea0fcf8c5c19","0x1633b7157e7638C4d6593436111Bf125Ee74703F",!1,!1,null,null],["bsc","spore","SPORE",9,"Spore","304402202ea47b296ef87dec815f5cca12e9b346d50335e260f8770c1435166a8f4390e302205d3abc9e685a9ea6bfb9a661591cbaa7e972fa5c485c2354cbc0612ae7a0d5d3","0x33A3d962955A3862C8093D1273344719f03cA17C",!0,!1,null,null],["bsc","spore_token","SPORE",18,"Spore Token","3045022100a65a50a6120122cdc45daae89647f61c3a219a5cdbb8cb00834c3482100d453302206a27bb4d8a7160a5ad07d91e1093a9d6af96a74d076dc75b7895d848fcb171b7","0x77f6A5f1B7a2b6D6C322Af8581317D6Bb0a52689",!0,!1,null,null],["bsc","sports_2k75","S2K",9,"Sports 2K75","304402204aec954a62d2963eee564b72c572b89f01391474d12a370729266e97a934b3ea022053499153f9b9c6cc8527285f09e23d4e8ae2f17c96cc48043bdf0d1d0d68a4b0","0x42bfa18f3f7D82BD7240d8Ce5935d51679C5115d",!1,!1,null,null],["bsc","squidgrow","SQUIDGROW",19,"SquidGrow","3045022100ad5805643220f287de8e4d85c0c3427e3e4e3ee158411c1eb6c42f9858daf174022025e136b87336622d9efc9aaff1c0347c147848e769a69d574cfeb84e11cf6c62","0x88479186BAC914E4313389a64881F5ed0153C765",!1,!1,null,null],["bsc","squirrel_finance","NUTS",18,"Squirrel Finance","3045022100c79f347707a9692c22325b4bd07c6a0ddd76bb7ccb2dad834209ce91dc01ae0c0220297185ef888b8870b1292ce2568a6875272a046461f1028358abad84cb1d48fd","0x8893D5fA71389673C5c4b9b3cb4EE1ba71207556",!0,!1,null,null],["bsc","stablex_token","STAX",18,"StableX Token","3045022100fce872775cc6e3cb5f8344763a9c69387781db457ada53c35a2f93309f2871bb02201d057f329bb89857fbeabe5fae89439739a6ac9d5490748f13f383627983b236","0x0Da6Ed8B13214Ff28e9Ca979Dd37439e8a88F6c4",!0,!1,null,null],["bsc","stackos","STACK",18,"StackOS","304402203107b2e3077b2d20e1fa36e2022756a5420efddb0dfe2524ed142700829bfa77022018124256a2a4e97c62db28ed443753a877e06af14677a2f45856ac81e439652f","0x6855f7bb6287F94ddcC8915E37e73a3c9fEe5CF3",!1,!1,null,null],["bsc","standard_on_xdai_on_bsc","XMARK",9,"Standard on xDai on BSC","304402203122951984277baeebe42e438006f792a2f98be7bef7816fe5883f65259d03fc02207e4da4410f8d175567ce59d397532c549d1cec1cdc9cbdf5ebdec4b5aef84616","0x26A5dFab467d4f58fB266648CAe769503CEC9580",!0,!1,null,null],["bsc","standardbtchashratetoken","BTCST",17,"StandardBTCHashrateToken","3045022100922a1d61057b68afdda8827398c31b9b752df0835aad06bb6ae803eba9372bc002204085ede69f7f3d083d25acdeafd26a5a8aa5394f75500c2aafbf588b2a0836d7","0x78650B139471520656b9E7aA7A5e9276814a38e9",!0,!1,null,null],["bsc","starmon","SMON",18,"StarMon","3044022052bef08fe1d873c79728c9a5ce2871bb441d8f3caec927236efda601cc3dc805022001a8750b7ff3533a88e7819982d2925534e98096055ddaac919258ad8aabe92d","0xAB15B79880f11cFfb58dB25eC2bc39d28c4d80d2",!1,!1,null,null],["bsc","staysbase","SBS",9,"StaysBASE","3045022100af86f06e122de0d33cbab250231fd8d55009869e6851ee197085ffc9ad3494db02201d9a426f9396370ed38a44cefc3845fa48bf071dbc6e909465e1c981cca26059","0xc1D99537392084Cc02D3F52386729b79d01035ce",!0,!1,null,null],["bsc","stellar","XLM",18,"Stellar","3045022100a188a8c981f143e4edca6f2934b1e7246532d8c82b522025cbc3eaa79049203502201ed9107b27bbdec2c160148ba428608f2d2c7d7fb4838553476b3cb1c0520167","0x43C934A845205F0b514417d757d7235B8f53f1B9",!0,!0,null,null],["bsc","step","STEP",18,"Step","3045022100a19ff6fcaac9df6c2a591a5f21758e4600a4fb531625eaa143414794df30ac7202205032216cf32155060f1864ac5a21588338d080fb9375df44a9ed5abadac52064","0x465707181ACba42Ed01268A33f0507e320a154bD",!1,!1,null,null],["bsc","stratosphere_defi","STRATO",9,"Stratosphere DeFi","3045022100959326617f664e218afe2b9312bc0a41a2f9df8774ff52ad7385ca7c95c9c177022073c73559c463b7fdecea77cb90dd29f5bdbb4c762d80ae584923700d06fdb44f","0x037A36e09FA2C2A2775C67b864C55EEa1db755cA",!0,!0,null,null],["bsc","streamity","STM",18,"Streamity","304402203a54a51d63cec3751b45908711d7388302472a819cd5f887a2466fbed6695cd802205e64de38a1ac2b5c7a0df148ecb9c0b8a14650063e12727b160faf3805c3b712","0x90DF11a8ccE420675e73922419e3f4f3Fe13CCCb",!0,!1,null,null],["bsc","strikex","STRX",18,"StrikeX","3045022100da3a3d90bd17b96200ed890e0e472d0752339b418e2e7112191d2ee637810bbe0220522a251f615fe8a3f4754ff0638fbeeef395ebc5d9e7dc2a605fab154eeaf158","0xd6fDDe76B8C1C45B33790cc8751D5b88984c44ec",!0,!0,null,null],["bsc","super-erc20","SUPER",18,"SUPER-ERC20","3045022100abd6084fc2ec25e9e53f65daf5bd1cf0a39fd5c6c50dad1c8742de5a1742ea6c022074a19f767c099ad0bdfd21b5cf4f8373912cbbaf03472fb623c2f24eca660f81","0x51BA0b044d96C3aBfcA52B64D733603CCC4F0d4D",!1,!1,null,null],["bsc","super_launcher","LAUNCH",18,"Super Launcher","30440220524deac6ab1dcb1f230bf0170333ffeefa00997f78eb289eb9b0543df631b0cc022060c668e8bbba4ac932413a2919ee931007e40b38ef90e47981a6fd5a1f636f19","0xb5389A679151C4b8621b1098C6E0961A3CFEe8d4",!0,!1,null,null],["bsc","suterusu","SUTER",18,"Suterusu","3044022046fd4b9cd1a4e92bdd2cf9727f62b21ff9db45225e4606f72e428ab468c5cb6102204b9e40014ddc499cc3151189f4798bfd88ccff8c5173f439458cb13f7b1013fe","0x4CfbBdfBd5BF0814472fF35C72717Bd095ADa055",!1,!1,null,null],["bsc","swampy","SWAMP",18,"Swampy","3045022100e8bfb628bd98bf280725ee0f6a93de0d4b89e7958900a8ab58602e7f8c289b090220438a768a92ddc9848bb1b5ced75f7f9a4cbc18f189d6efd9ba48a219769c24fc","0xc5A49b4CBe004b6FD55B30Ba1dE6AC360FF9765d",!1,!1,null,null],["bsc","swftcoin","SWFTC",18,"SwftCoin","3045022100a161083d2210f2ff6a54c7dc11568be59851e860de8205a8e4c0c39c3056209a0220664fece9304c5855d6d583bcef1a6dd606dec1536e80509ad5c41406d0c05632","0xE64E30276C2F826FEbd3784958d6Da7B55DfbaD3",!0,!1,null,null],["bsc","swgtoken","SWG",18,"SWGToken","304402206e1f5be0e02640e1e616d7157e22af4c90df816f83d9567296022f6d068b2e59022073bacd164a75ce9b75547f44eede39aa9f5eac6096c1933d0838f69ea6e4f67b","0xe792f64C582698b8572AAF765bDC426AC3aEfb6B",!1,!1,null,null],["bsc","swingby_token","SWINGBY",18,"SWINGBY token","3045022100c7c62c9b3cd9c73a26b1a50763fd4629fb997068b36607f0685bd14d1c30e2fe02204ac726c98cb53a12f43e996b68d521d24e70390d42c3cd82203a3df4b0a0cd5f","0x71DE20e0C4616E7fcBfDD3f875d568492cBE4739",!1,!1,null,null],["bsc","swipe","SXP",18,"Swipe","30440220348a4b1edd0089a9b050d1599e44c7bf72c9077f648b7847c553d73987e4ce1e02205c94f1c2daaf9d96f9f04d3e0244c200a2ca70c5691019a7fd18fc693c91d9ff","0x47BEAd2563dCBf3bF2c9407fEa4dC236fAbA485A",!0,!1,null,null],["bsc","switcheo_token","SWTH",8,"Switcheo Token","30450221009d6d7c351898a87f5bcda078ed541288251c660d01a22a4953492287f3f6aaab022033b5e48afdf384c174e118e69b85b4aee047ee9f26733ce06654584308ef43ee","0x250b211EE44459dAd5Cd3bCa803dD6a7EcB5d46C",!1,!1,null,null],["bsc","syl","SYL",6,"SYL","3045022100be734b2d30de8915db2ff85f7a067deacdf0b4dda236631e33d9364d8b1b523902204909a3de410e1b40fbdb3e453eb07802871fc4a2c7ec3d3c9e97a409b9e0abdd","0x7e52a123Ed6DB6Ac872A875552935fBbD2544c86",!0,!0,null,null],["bsc","synapse","SYN",18,"Synapse","3045022100fabc616ca42e61e3ea3c38b4c95424d27dad091386269da6613cdae2991805fb0220498035901a9b2383e87e027dd8257d0885fe3df278a11498ccfbf095d798da51","0xa4080f1778e69467E905B8d6F72f6e441f9e9484",!1,!1,null,null],["bsc","taco","TACO",18,"Taco","304402207de66b5412459db76124d1fdc43d6ba53b80ff019edccf4dd031bd98ed56f4b8022006c2dc60a4804637dac41cd6edb94557352247cf242cfc5f147a51b9b673cf1e","0x9066e87Bac891409D690cfEfA41379b34af06391",!0,!1,null,null],["bsc","talkado","TALK",9,"Talkado","304402201111ba405745c37287a43e4a70dbd0e1c93a8c134f82015dd7eeaf002287b9a20220363a06536911d6c8e5a1767933c296e57b2ec5793009be1f02ac29c60529bbbc","0x7606267A4bfff2c5010c92924348C3e4221955f2",!1,!1,null,null],["bsc","tanzanite","TZN",18,"TANZANITE","30440220707b67370cd9ac4318eb241ad1805c870d8eaa7fad1982856d090fc78c9cd52b02204ba900211753fa93340adaf6bbb26736e5c594aaa383d45d55eaff8ffd9a7114","0x1B014B9B81f2450f31eA0C342A4A899Ff706BF3E",!1,!1,null,null],["bsc","tbitcoin","TBTC",9,"tBitcoin","30440220580861c0676ac258ebe5dfd26313b75751d558caec962b868ae58024478e4f6e0220410abe3ecebfa7f23d73e2365cb6dd640aea3bff5dd301b01756722a89b3a23a","0x2cD1075682b0FCCaADd0Ca629e138E64015Ba11c",!1,!1,null,null],["bsc","tcgcoin_2","TCG2",9,"TCGCoin 2","3045022100af304f807d2f8a265402d80e7ec9e337fce04f28eaccfc1efecfb55895e4bf65022026bad6a35efc40c3abf91d495b5b4ec0f329a588096300c6c131f318cfe3095e","0xF73d8276C15Ce56b2f4AeE5920e62F767A7f3aEA",!0,!0,null,null],["bsc","tdogecoin","TDOGE",8,"tDogecoin","3045022100e5965a5dbbb06d203aa8ebc79a8569c16f5bb615b4e319a938ca5bce07febde5022034cefd4535687203af614bdebc31ff975ef9884f676be71d29dc35283e604a07","0xe550a593d09FBC8DCD557b5C88Cea6946A8b404A",!1,!1,null,null],["bsc","tech_trees_coin","TTC",18,"Tech Trees Coin","3045022100ffd7e8386e2b6576aa4f7c2da40e8f1fa91f5d0cdc58452780cec91987637c280220330d78dbc82fdccb76ff9369c31562d2119300a16999e6facbfb6c5e71831706","0x6A684b3578f5B07c0Aa02fAFc33ED248AE0c2dB2",!1,!1,null,null],["bsc","tegro","TGR",18,"Tegro","3045022100c8b992b6b3fa33c41aabe17639789c4a337d04775bcf0d180002022f0f7740b802206b42a3658d2383f4d9908e2955ba2101d91b0e55919cfbfd533c468b465e679a","0xd9780513292477C4039dFdA1cfCD89Ff111e9DA5",!1,!1,null,null],["bsc","tenet","TEN",18,"Tenet","3044022079ab845323e9224b993eb3a443dd9d9f7a560938bd90ba268282083c3c0754670220714793e384d89595d450c1c955de93d270ae5b7058ede1484f6da0fd5395797b","0xdFF8cb622790b7F92686c722b02CaB55592f152C",!1,!1,null,null],["bsc","tft_on_bsc","TFT",7,"TFT on BSC","304402206d8fa8bd3bb46780710491b989eda7da1f508f22ea23f4721b20244377378444022056791a60a35379aac6c873f3b507fc841dd6d60fe39cd48b8114343b26df9358","0x8f0FB159380176D324542b3a7933F0C2Fd0c2bbf",!1,!1,null,null],["bsc","the_force_token","FOR",18,"The Force Token","30440220398f96e5a530e6eb449b08b35c3a0aefd994149382df41e0b1e1fd0ea1322eb802205c7802b1c71a5c4059be6979ec358af154a961f957206b1fe8e88ef8bd4ca28a","0x658A109C5900BC6d2357c87549B651670E5b0539",!0,!1,null,null],["bsc","the_sandbox","SAND",18,"The Sandbox","30440220443c2346e3b4815c4c0fd7ffa628f3e9d3bf8753349311601f19e42222567e79022002df751c4d8102f418f886efe8bff64aaa3063abbfef21e0cca0ca46351de6a6","0x67b725d7e342d7B611fa85e859Df9697D9378B2e",!1,!1,null,null],["bsc","thetan_gem","THG",18,"Thetan Gem","304402206aca1e90418e745d2bc564252ada4a09acba6f0efd44321d20c01ddfb320f70602206527a8ad79b29e8ae7169a5494f38771dbc0729a5bd1021829622ff9a2d167df","0x9fD87aEfe02441B123c3c32466cD9dB4c578618f",!1,!1,null,null],["bsc","thugs","THUGS",18,"THUGS","3045022100d3179592e9f76aef9e2a103f9a80997c8c4bd6b1f7d022a832a751cbe749737502200a80a9129c0e5d330fde9246276d7e8efa503022831025c19d443712560476cf","0xE10e9822A5de22F8761919310DDA35CD997d63c0",!0,!1,null,null],["bsc","tidex_token","TDX",18,"Tidex Token","3045022100bd44c70a112932e39f194bbea65ff1c6765e87fecadc3032d896ae11e6bafe5a022001f3edb7d288d25a835b0092c5daa8cc0fbbd260022e451f8bacf87249d62000","0x317eb4ad9cfaC6232f0046831322E895507bcBeb",!1,!1,null,null],["bsc","tifi_token","TIFI",18,"TiFi Token","3045022100fcb495364dce8edb3b8305e4b6a57ab43692f33b9b072752ef08512c0b7bff5e0220794483acd62f54447ce0d66027623633ff62f3eb3648aa1719cc66bbc4d943a7","0x17E65E6b9B166Fb8e7c59432F0db126711246BC0",!1,!1,null,null],["bsc","tiki","TIKI",18,"TIKI","304402200cf2dfe9903efe1416a97d771b459df4b660befbfaf39d22156666857409b825022028169556d93ec85dbe0545b17559fe023eeb2cec6d4735a97c12d039672e4dd0","0x9b76D1B12Ff738c113200EB043350022EBf12Ff0",!1,!1,null,null],["bsc","titano","TITANO",18,"Titano","304402206cf83f9b74b24ec7b9c417764be9e761c3cd05a2c49895e553e9939b99ed971002202cc737dc654c0c1d3224a4411a6b11899c0cbb2d30ab0374febebb9d00c5e35e","0x4e3cABD3AD77420FF9031d19899594041C420aeE",!0,!1,null,null],["bsc","titano_old","TITANO_",18,"Titano (Old)","304402205d21819dcf7e76975ad52f6725e1595bdc0234b3f6072fcdc363b3661dd7d97d022066e2806b1695188d4d68baedff6cb4a55b45ea1048040b17b3a4d5957d7c55d9","0xBA96731324dE188ebC1eD87ca74544dDEbC07D7f",!0,!0,null,null],["bsc","titanswap","TITAN",18,"TitanSwap","30440220490368f646860a60c8f3abb25ac9377453a4d62a04a6c71a8594bc4235ad9ae3022032d99abc3b901da8b049fe73c2fa365e12abb55b31761aaaadce4e0c1903e7ce","0xe898EDc43920F357A93083F1d4460437dE6dAeC2",!1,!1,null,null],["bsc","tixl_token","TXL",18,"Tixl Token","3044022074673bfd10aca228f7a0266882050ceb755d67e6f3adc2654a3f4d6c499b569002203d80c62f65ba208e1e2b30dcc8a7c6d6b15c711f92d992744135342e5ed3af2f","0x1FFD0b47127fdd4097E54521C9E2c7f0D66AafC5",!1,!1,null,null],["bsc","tokenpocket_token","TPT",4,"TokenPocket Token","3044022068100d73456fecab404a179dddb3ab456a0caee8cdf89d83ec7c51bfdf6085e0022039f7d4cd728667a5c296d5b0a23b3929bf838aff9aae1535fca25e9d13839afd","0xECa41281c24451168a37211F0bc2b8645AF45092",!1,!1,null,null],["bsc","tokocrypto_token","TKO",18,"Tokocrypto Token","304402206af721adfefebceafc554b28a9f05d7cee364fbf548a0e7465ad06267364a21802201634ebb03605e859a69ae6141f27b3506610160ed00d2cb976a3f81743322c9a","0x9f589e3eabe42ebC94A44727b3f3531C0c877809",!1,!1,null,null],["bsc","torekko","TRK",18,"Torekko","30440220127bd76a022668f3554958f4780ce31b84eca2f151b9ae4f564d30c9a68a1abe022031811e0569afee382a51991d34749088a1281baf1ca4ea95b28596d30095ed3c","0xA2E3e2817F00822F3c1E71A604eCa4196Af923d6",!1,!1,null,null],["bsc","torum","XTM",18,"Torum","3045022100c45820c58af621c6574cf8524151cf62a682ce305cac8eb576730cf99d9aae9202200c18e56a244b1f75ed5d7b17fe87bd00e36d68609d1e469611002c8f988185a5","0xCd1fAFf6e578Fa5cAC469d2418C95671bA1a62Fe",!1,!1,null,null],["bsc","torum_finance","XTF",18,"Torum Finance","3045022100dd1eb29240f8840084348b7c7463158cd78a831939ba2b1f3985ee435c4a68e802207c1967c5d07a65a7b890c18f3978161252646f7a6406262c01e51c4b6a8e17fb","0x0377FACbDDbeE59d40869808bb67fa741038bC67",!0,!1,null,null],["bsc","torum_old","XTM_",18,"Torum (old)","30440220062ae6a59191f0aa6416111769e90467a1915d5cf6defa6608f067a61423d009022059f15e0b729272f085df6841e2304d5ef1af811b279157d7bc7ea58afed04ba6","0x3f526A5A8811cC1812d923D5dbb20E4B1c6028Db",!0,!1,null,null],["bsc","totally_a_rug_pull","TARP",9,"Totally A Rug Pull","3045022100ff6eb6db6971653cbe6d1455525dd9f7485be3b50edbca219b531883ba55e49302203fffe3636834b719ff21f95de0bd788f4fee4de4376929fe5651eb0f94c805c9","0x6C0A568a3fFb61957812fb3e300e4C10B708d336",!1,!1,null,null],["bsc","tower","TOWER",18,"TOWER","3044022000b962416468a6e750f35e3df0dc7ef774c75361e2e877d40bb1a9af7c79760d022029633ef53cc279a39844b50b8d5d77f8416bfe78e47844fce0462d1c5fa62353","0xe7c9C6bc87B86f9E5b57072F907EE6460B593924",!1,!1,null,null],["bsc","tozex","TOZ",18,"TOZEX","304402204c865a30dc462e4152bd47071bcb5966009dba9e69ba447183714af202d58d7b02204f03a1ff311145821b0778bf614a4a36eb4acee3c425deac46d153003def31ac","0xcF0Bea8B08fd28E339EFF49F717A828f79F7F5eC",!0,!1,null,null],["bsc","tree_token","TREE",2,"Tree Token","304402200e400345cd2f0802373d84b9a31152a41a86eaabb1d6620f4442ee13c6c7bcbe02202dadb237ae3ae40bdeb55976adb2d80c6eaf6c87f8943e8ba605bf0ffdef7026","0x9BD547446Ea13C0c13Df2c1885e1f5B019a77441",!0,!1,null,null],["bsc","trias_token","TRIAS",18,"Trias Token","30440220623cec6ce73a5f8a7db0584efa6a04bd2b7d6a30d1828f00b0a13da171e25e7a02201e04ca76a59af1447f9045ffd6771945bb29363b6a1124d3c1ce5169a8e321ba","0xa4838122c683f732289805FC3C207Febd55BabDD",!1,!1,null,null],["bsc","tron","TRX",18,"TRON","30450221009e098fdb92b93eafabe62d3d7eb70939d646fd32dbf1e8ae71fbbcb8ceaade6802205c64907deb7013fb43dd14f8ddc8548ca827e65183fd08d0d2893a1c93ac185c","0x85EAC5Ac2F758618dFa09bDbe0cf174e7d574D5B",!0,!1,null,null],["bsc","tronpad.network","TRONPAD",18,"TRONPAD.network","30440220282472564de845975d4548a9dabd224a33f111eb4e506a706cc9d78df19344230220562ed05914677e5e32568270f4bba603b6207d64451652adb51be60e9f9142b1","0x1Bf7AedeC439D6BFE38f8f9b20CF3dc99e3571C4",!1,!1,null,null],["bsc","trust_wallet","TWT",18,"Trust Wallet","3045022100b7c67bb307b75574d8a8f3825f58b30fd635379f1a8f24c8209cd9c720dbb778022053ab485d6a2c8bd561e447e148955d3e84d521710e6457555847345ff12a70b2","0x4B0F1812e5Df2A09796481Ff14017e6005508003",!1,!1,null,null],["bsc","trustercoin","TSC",9,"TrusterCoin","3045022100dfdff34cfee25ff9b2289e4acf1cb9b303b1a98d280015df64a2e3107ba1bf4602204eb74d9f3278544299ffc30efd767c27c2016c2ee389a94ad6b06c102d08492c","0xA2a26349448ddAfAe34949a6Cc2cEcF78c0497aC",!1,!1,null,null],["bsc","trustnft","TRUSTNFT",18,"TrustNFT","304402205d105f4212a888520a99917ac0619607b0ff56959792a05fdcd327d24970f51e022063d78609a4b99cd206d59879baf0fe74a57d5aa8e80fad6ff46dcb1b744ba760","0x08F725D2809FdA409Bc23493F3615a4c85a22d7d",!1,!1,null,null],["bsc","trvl","TRVL",18,"TRVL","3045022100fc30abdb28db7ab3310e02326dbcb5953d60409b958b14dbc965b3c591c4c1f70220647863e3647c56c1d0d71a0870dc66fa9b62450a8bee0c90db330fc39221b816","0x6a8Fd46F88dBD7bdC2D536C604f811C63052ce0F",!1,!1,null,null],["bsc","twinci","TWIN",18,"Twinci","304402202ab4306f0da054866fe5342c19391a6b3b7a754daaa8b062690288332c55d22d022062514605ba5be4fa8e02f08688d00cd2110f98f3fbd858bd2d1ca2f1d9967d18","0xAF83F292fcED83032f52ced45ef7DBDdb586441a",!0,!1,null,null],["bsc","tylt","TYLT",18,"TYLT","304402204ba78e66e5341978d3fcfb023b4d3fa7cf1f2fd6eb2f13cfa81be51196ce4d13022075c76f811693256a137eac8aefed514654610ec0b23e201903a1535755eda92a","0x7d8156d75495Def6181Ca6FFCF7631C1965dCa2E",!1,!1,null,null],["bsc","tytan","TYTAN",5,"Tytan","304402203a1b1ac8bc348265763df81fb8842f97532f00521f642c3b7744aca7c9a48d1602200e9b7b7dbef1a7f72e83d64af61bcf8ed533d9b3f75dab3e85ab3ba7b179d66e","0x912F594Fd096E67e0c0A18D496A9f70E3171c330",!1,!1,null,null],["bsc","ubutoken","UBU",18,"UBUToken","304402205af3e3492656a3d9143ccb590a58208f6377b8624ec9efb5a8775606bd8677f3022034f11ca2bb5651d75ba19227258df531f6a330222cbf4cbccfe781f10f9d9cab","0xd2DdFba7bb12f6e70c2AAB6B6bf9EdaEf42ed22F",!0,!1,null,null],["bsc","ubxs_token","UBXS",6,"UBXS Token","3044022052e640a1e8166a6d327adf9978f7589109d44f5b99601470bdb2e0f4a5a115ab02207066554bb6d08bff4467485332f3cf5a8801b8a91de9cf0d3c32751a47655c40","0x4f1960E29b2cA581a38c5c474e123f420F8092db",!0,!0,null,null],["bsc","ukraine_solidarity","UKRSOLID",14,"Ukraine Solidarity","3045022100d707d0152952f6da4a2d84077e832d901b48424ff7db11951bb02088628baaa802207979f1671f98cec2cdad9e9fda219a29d161efc53089d69dd350881cad4c45f9","0xA8DFB37e74d7037999D6B5cA1a2515f3F41c7455",!1,!1,null,null],["bsc","uncl_on_xdai_on_bsc","UNCL",18,"UNCL on xDai on BSC","30450221008682764019dcc87541887968b1a6d12dc58384a63ddbd3d9d29964f65d4eee7d022034339684f7e4e3d504bb624ed1163f98e732c139f9817e4d07f34f00e502e3d4","0x0E8D5504bF54D9E44260f8d153EcD5412130CaBb",!1,!1,null,null],["bsc","unfi","UNFI",18,"UNFI","304402207994c0929a550a738260f6bfe2de9f2bec60188c1844481b370b2c6734c22dab022052c61698b944672a6bcedc42b7bc78eae7497ff68eb1d77a4d3ea689c4abfb5b","0x728C5baC3C3e370E372Fc4671f9ef6916b814d8B",!1,!1,null,null],["bsc","unicrypt_on_xdai_on_bsc","UNCX",18,"UniCrypt on xDai on BSC","30440220226f7f8c4cb5bcecea170f4ccdbbcb4549c3bc0ec297d01ac2e0e1f1dee7966a02201eebc3abaf2a88ac521f89a6955db586d1a643e5186337094c880734bd29c4f1","0x09a6c44c3947B69E2B45F4D51b67E6a39ACfB506",!1,!1,null,null],["bsc","unilend_finance_token","UFT",18,"UniLend Finance Token","304402207d85328b863f51fefb54f26478fe479c50d2b24615cbcb80dbe10ba5f3ac30a10220201e5660e779a4183bbd206baca604c1b6ab605561e67543faea86b768ad5ab3","0x2645d5f59D952ef2317C8e0AaA5A61c392cCd44d",!1,!1,null,null],["bsc","uniristoken","UCO",18,"UnirisToken","3044022030b529cf31d3e79d14efba154b4284f68400ce44a44134e80e834e5e1c4de43202205d5464cc51980248807a5b1685904a36b7afc36b749119bf547bc8876fcdffec","0xb001f1E7c8bda414aC7Cf7Ecba5469fE8d24B6de",!1,!1,null,null],["bsc","unitrade","TRADE",18,"UniTrade","3044022038bb7a7620fd4cab0066b1cd86e579714ff5f03b10a7676d93ef5cacdf1c47b0022061490256f2d0c6b5b21a99ef148ad0cad2aa86526285ca9d8dd147c358a475e7","0x7af173F350D916358AF3e218Bdf2178494Beb748",!1,!1,null,null],["bsc","unmarshaltoken","MARSH",18,"UnmarshalToken","3044022022cbabdd652a08795aeb59b7906c3ded7d26c8bf8ae3b81a0576850631859d3c02206cce382a8aeecf446be257356c376397f5eb3e034fce5db6911356fd32da63f1","0x2FA5dAF6Fe0708fBD63b1A7D1592577284f52256",!1,!1,null,null],["bsc","upbots","UBXT",18,"UpBots","3045022100c0e839897f52d285b83ef74d4033bb71bf79726557cea01381aae6e177495312022018db5bc3d39bc8114097c755c97f534d37cb493a51164986fa94d30d9ea06090","0xBbEB90cFb6FAFa1F69AA130B7341089AbeEF5811",!1,!1,null,null],["bsc","usdp_stablecoin","USDP",18,"USDP Stablecoin","3045022100ede896b66708d6f11f70ca5069bb7e30e7bf563caeaa66dbc3b0f5bcf082b62602205bb658000264a783f870279dec714886e67faaf015d8edd98d49247418ffc8ff","0x1456688345527bE1f37E9e627DA0837D6f08C925",!1,!1,null,null],["bsc","usdtatsu","USDTATSU",18,"USDTATSU","30450221009a48c824f92c7a296f21c35aa02a3b294bc33b97f015c36d637a7ec6fafad92f02205574c392dab95137de10e6cd6b4ec6724b170f201cce7c8c9f2b3809ecd5b14d","0xa0655B2cb50cff2D3f4A01fFA969b114F5689048",!1,!1,null,null],["bsc","usdx","USDX",6,"USDX","304402206db6804aa8551c18943dafc594c7724cfeb27000a5b13c40759317da795aa36502200576b5a1488e846b98ee39bcd0ae3ce3c183f0a5dacc1d1afeaa44e17c5851ef","0x1203355742e76875154C0D13eB81DCD7711dC7d9",!1,!1,null,null],["bsc","vagabond","VGO",18,"Vagabond","3044022033a32f2122884388ed14ff847aa18eaf68f8a2e657e3043ec73be19fb88e9944022066355e6c02df2cb8e1748798918bc4a1b7d52bd52b42689ac9a735e606f182f4","0xF365920c476491F855891dc67B23BD2D0c4c7a72",!1,!1,null,null],["bsc","vai_stablecoin","VAI",18,"VAI Stablecoin","3044022071e73027e08de75e77fc3e720e69fd16478ca6a30cdec78857a2203dee07364202205095ff5429be358c2b34cefacf34f6ce550bcc31ba5271c2039e937d666df985","0x4BD17003473389A42DAF6a0a729f6Fdb328BbBd7",!0,!1,null,null],["bsc","vallhund_inu","VHIN",9,"Vallhund Inu","3045022100cd21f0dd2d620fe55a4b665a49ba8425a69f1cfc52cdcb59163c3394db262ae202202bc1adac48c271ca1c859887ef072cdee5a6b54890dfa472557e5fe607b45074","0x5D96919A7837a6Ec6D0a62Db537208E29D8E514B",!1,!1,null,null],["bsc","vanci.finance","VANCII",18,"VANCI.FINANCE","3045022100b384e87a18b10da41fa069125c1b29f06746d9c535981b56cb83daf6f2d63c4402202695bbf99ce74204e39a368e0af1a5180fda942346ff4ff369ed9b166d147ea7","0x8F9b482b74Afc0B7E8AEfc704f1f04DF208EE332",!0,!1,null,null],["bsc","veed","VEED",18,"VEED","304402206e11d239f14249276426a64e73868c8515483aba19b607226328ee625258e7ae02201b32898fab8ab770d70cf359310040165e90bfb3e7e794ae258c6273c1f549a0","0x16fdd1edb14ac4012395A0617a682D81595dB486",!1,!1,null,null],["bsc","vegasino","VEGAS",18,"Vegasino","30440220146a18b23b33869e7007e0ec278dfc88f4ec47de9cde62cce24573daf8fb395d022033f3ec6f7c6a6ad56af7a437c2528d4005bb5a3788a27771fc3344db5bd9975a","0xE6884e29ffE5C6F68F4958cf201B0e308f982AC9",!1,!1,null,null],["bsc","velas","VLX",18,"Velas","3045022100b4e6e13dcdec20b98a2d7a38bae49068ea5319e8171f2e461d4af3751cf5249102200b1e4feb85dfb11c4cd96930a1f32c277c45df5998f3e485bdcff26423686a02","0xE9C803F48dFFE50180Bd5B01dC04DA939E3445Fc",!1,!1,null,null],["bsc","velorex","VEX",9,"Velorex","3045022100a3033d1189a3410237ad933a7a70ba302d7575f3e395a735f0ee45156687a8580220656cdd5c78fef00faabbb6a4f44c3212debd789cde5d1e97545140079633385f","0xc029A12e4A002c6858878FD9D3cc74E227cc2DDa",!1,!1,null,null],["bsc","venus","XVS",18,"Venus","3045022100f12e1bd8445053d9fe45ebe93b9a3220f7fbefa5971315a98745ebf2f4581ccb022064ef5a26998de58fba194b253f3f84a1c65934f9bca921a222f6cf6262a63d2c","0xcF6BB5389c92Bdda8a3747Ddb454cB7a64626C63",!0,!1,null,null],["bsc","venus_ada","VADA",8,"Venus ADA","3045022100f773cff2b283769cf993888f0a7a99fe32d99b26bf655e0d69b4a37f68ab9c7c02203b38b35f4393c1e957ed7dd935b48be9134e54e100c8bc4fb9ba6d11b60f2073","0x9A0AF7FDb2065Ce470D72664DE73cAE409dA28Ec",!0,!1,null,null],["bsc","venus_bch","VBCH",8,"Venus BCH","30440220507bda1743bb2c21c53839391bec0d1cb552104435e2315d5a2c5da0b1a833970220642b91735a89f021cc28fac264847367015255df18d18c3c9bad05c60ef60aae","0x5F0388EBc2B94FA8E123F404b79cCF5f40b29176",!0,!1,null,null],["bsc","venus_beth","VBETH",8,"Venus BETH","304402202670d1ce954344288b343ba90323591483385d98968124f7a19907504301b6c002202da268537a9fe6f5953057c1f50fcd12c755fb10ced8d4adfce03c68931da446","0x972207A639CC1B374B893cc33Fa251b55CEB7c07",!0,!1,null,null],["bsc","venus_btc","VBTC",8,"Venus BTC","3045022100a8352632950cd6791ee7eadcaa786d3d07c316026793dc25f4f66bb543e4c827022070acc439b004ce6f4667f8be1384afc1f311f8492d92405fc3321921cf6825b4","0x882C173bC7Ff3b7786CA16dfeD3DFFfb9Ee7847B",!0,!1,null,null],["bsc","venus_busd","VBUSD",8,"Venus BUSD","30450221008268d3fb0e0ca071947e622d2519c99aa0de514cc5b351645a244ec7dc10811202207770a8192e5aa09f956c9027adc520337c54371075fb2f526fa0da1cf6af77eb","0x95c78222B3D6e262426483D42CfA53685A67Ab9D",!0,!1,null,null],["bsc","venus_dai","VDAI",8,"Venus DAI","3044022013e7b7882e5108a084f745fd3487a1a0fba15c73c4007de1f0a077a3ddaacc5f022015dc2d37a19e8df80393987e911a73b9bf396c75bbc664d35eff15dde559f6d8","0x334b3eCB4DCa3593BCCC3c7EBD1A1C1d1780FBF1",!0,!1,null,null],["bsc","venus_doge","VDOGE",8,"Venus DOGE","304502210086e9099d869244182da03b432fd49ce4a4fd78fa573dc8a791dcfd4f2892a8ac022069557485bb1615087e9f52fb9bbd9b0a28d4c6bb42856ad48f6dbc2c30c69c76","0xec3422Ef92B2fb59e84c8B02Ba73F1fE84Ed8D71",!0,!1,null,null],["bsc","venus_dot","VDOT",8,"Venus DOT","3044022073c40d616a886ad677aedebb3520b764de4f4fb41f5310108a5573db08bca6f602207a91b0c8279ec2b2132e8ced0fb61557d8b61ba6315e0cc2fa408d700c311ec4","0x1610bc33319e9398de5f57B33a5b184c806aD217",!0,!1,null,null],["bsc","venus_eth","VETH",8,"Venus ETH","3044022001ee0d90f0052df2083b34916ccb954d02d5fdf9dfc36d93ec950295da803fc502203bafe876371b06e0e5a323fc3f9d5f06e51f9e15d574b3701340ecf5782029ef","0xf508fCD89b8bd15579dc79A6827cB4686A3592c8",!0,!1,null,null],["bsc","venus_fil","VFIL",8,"Venus FIL","30450221009e6d1586e4920cf908c6e5c2924dd07f727e3f3629dd81bd6fd1631d30462ab902202a38e8488cd3deb3f7a62ee86d269b6b460e9de247181a7a98ca3980608861ca","0xf91d58b5aE142DAcC749f58A49FCBac340Cb0343",!0,!1,null,null],["bsc","venus_link","VLINK",8,"Venus LINK","3045022100a71cfd395e1a7512fc5dcb2bb17eb76f9fd60d6b3d5dc44feca49d22f46b84fd02205978981b2a85fa347f3519d37ddd3d852ad412a19d88bfb5d89d253f58fb3270","0x650b940a1033B8A1b1873f78730FcFC73ec11f1f",!0,!1,null,null],["bsc","venus_ltc","VLTC",8,"Venus LTC","304402200ed52a92457d0b5361ea690920be92e794f8bafb26776d2556c537a097a12f40022074cea03ac869a7229398808db7adf8976bd3f3f9a824b0bea09d932a27c2838d","0x57A5297F2cB2c0AaC9D554660acd6D385Ab50c6B",!0,!1,null,null],["bsc","venus_reward_token","VRT",18,"Venus Reward Token","3045022100ca2029e6335e6a6a903e0ed639352d8725da38788f773462735177a4e37070ed0220711af4bea6f3f0532c3d3adfa457a8970b7c1f0b9c8178aad060d91aa53d5a4f","0x5F84ce30DC3cF7909101C69086c50De191895883",!0,!1,null,null],["bsc","venus_sxp","VSXP",8,"Venus SXP","304402201fb0bf574976936e183545a9487a625670bf4e10ab42982d0bdd2ccc6803698702202e4127de822298b0de906be0073592b07209bc188373ef2a89a92e55d004aa38","0x2fF3d0F6990a40261c66E1ff2017aCBc282EB6d0",!0,!1,null,null],["bsc","venus_usdc","VUSDC",8,"Venus USDC","3045022100f3cc3e8d328124ab12de9fa9e8d8247624e8fa1b8b491ea4cc75ef47204112b202202972958bcf3cc552ba9fef59304b731d218c100f1258582c8e4a499b5002a360","0xecA88125a5ADbe82614ffC12D0DB554E2e2867C8",!0,!1,null,null],["bsc","venus_usdt","VUSDT",8,"Venus USDT","3045022100f12ae67d908b6dacaf18522d7bec66e77147040da0896eec64d14284112821f002201d85add411715a0771894dec579ebe702de952044967a66c67fa0502b13b0489","0xfD5840Cd36d94D7229439859C0112a4185BC0255",!0,!1,null,null],["bsc","venus_xrp","VXRP",8,"Venus XRP","304402205a06c1d9959650725fd8ef382c6895d4c1b4dd38b723e0abeebd7242bd409f1702207308e19c7e31b69932ec33f28cff521e6e74edb78c76e09279e12911d691abc3","0xB248a295732e0225acd3337607cc01068e3b9c10",!0,!1,null,null],["bsc","venus_xvs","VXVS",8,"Venus XVS","3045022100b575c24c6430cfd9b30d6e980b824e52944a3321efc56ef7b028c1e82129851e022043565587625052e931fd7f483a52dc83b593abf2a27162e7184d8069781e789a","0x151B1e2635A717bcDc836ECd6FbB62B674FE3E1D",!0,!1,null,null],["bsc","vfox","VFOX",18,"VFOX","3045022100f04e8403e45b5e5e64d0b081925045f0fcef6d279c58dfba1fe06ef39834f837022052b90710e40ddb79b313f9fbc6dd50b63d9d7c03c0d2dfdc0cb0b9c6a9c0c4bb","0x4D61577d8Fd2208A0afb814ea089fDeAe19ed202",!0,!1,null,null],["bsc","victory_gem","VTG",18,"Victory Gem","3045022100d77c4a50254f86a6423d589795b5f9901d2599744fa1295c551e1091ab9743b7022059359b8183c5ff2f08f942a19cf1ce8e04b3bd2a237039035c64bc95b469736e","0x8de5aA37a7C40A53062EAD382b8EEAD3B08a7A46",!1,!1,null,null],["bsc","visametafi","VISA",18,"VisaMetaFi","3044022010b22a4d0fee255e90b762674eeb56adbe2243ac23f3f22d7eb7933601b267490220420220dfb4d22dddc1cd3cb33cc3fe4b3482ebb23f3ef32604522c4e0de8995a","0x4a84009ef248a72f7B0710D16EA0Fc272EEbFbCb",!1,!1,null,null],["bsc","vita_inu","VINU",18,"Vita Inu","30440220663181866b0a2f5b997b669774e35619830023afc6979d721550ab479933fccc0220522d295fe2834e043c682e0d93b1e9f3165ab381019e464392ac787ee3c7add2","0xfEbe8C1eD424DbF688551D4E2267e7A53698F0aa",!1,!1,null,null],["bsc","vitalik_bigdick_inu","VDICK",9,"Vitalik BigDick inu","3044022006fa8f33e70d5e5fdccbfa005b0bdb99d70744d80bb9a19e1d717d2a6056b05d022023f18800e83db69d0e5ce846fe538b65b284b170ea4f2514126cfeb3c8566db3","0x642E62208fbFFaA94378a7Fca61E78D7F4cC7aaF",!1,!1,null,null],["bsc","volt_inu","VOLT",9,"Volt Inu","30440220789fb6219ba01689cee942d5f4f65a31b758997fa02401e0b511f998f8ea708402205e06fe58a4e26ebcfe82540b98ac402b3ca30aaa55c86946ad3cfa02dda4c643","0x7db5af2B9624e1b3B4Bb69D6DeBd9aD1016A58Ac",!1,!1,null,null],["bsc","volt_inu_","VOLT_",9,"Volt Inu (old)","3045022100b8e0a90040f63e7e5ab5687335be32cd6dff1d26fad4d094764530b4bbe88c9202204b498d5530ac0117e630381f843a2bab52b674b5a21af6945f4cb148a01dc6d6","0x07EC61Ae90860641972E9B41A706325a1E928BF8",!0,!1,null,null],["bsc","vswap.fi","VBSWAP",18,"vSWAP.fi","30440220358ded81de598430a12217a6435ba9935c39f70d39bc1069a374305a4436ad0a0220633a645dbb1e35ff4bca81b6356688795ec9c6ff9297b748e0b48fa180ecda95","0x4f0ed527e8A95ecAA132Af214dFd41F30b361600",!0,!1,null,null],["bsc","waifu","WAIFU",18,"Waifu","3044022070bf624a375ed26ad693a63bd8ec03e43382d2b8fe36df4dbee0864ef4817e5d0220597a40a6a5fda78ab4fc43cac1c44e201598bad7bf4bb062a8403b3b8984ba95","0xd0aa796e2160ED260c668E90aC5f237b4eBd4b0d",!1,!1,null,null],["bsc","wakanda_inu_token","WKD",9,"Wakanda Inu Token","3045022100c52ca213e2f41c240316ac9490bf12c2661b180cd1984d6f1fde4316c0b47cb90220437835572d97153c94ede8f33dd18157627ac3c1b27bf09417b120dbf364cdd1","0x5344C20FD242545F31723689662AC12b9556fC3d",!1,!1,null,null],["bsc","wall_street_games","WSG",18,"Wall Street Games","3044022028be2835e99c6630f45ff6eee76e76d296818ea0e9c8a1bb91d636954ec1b40e0220641f6f277b63f1a6493fdac17078729d38ccdb81e06f167aa20611df99461f64","0xA58950F05FeA2277d2608748412bf9F802eA4901",!1,!1,null,null],["bsc","wanaka_farm","WANA",18,"Wanaka Farm","3045022100a9a6e8c05139157798de24a292e9a0cdd9ca74630dcc4eee31e5852bece453a302207367af5c47e4238da0c2e1ad9a0842f2e936bb46edddade1f7206eb76ec80025","0x339C72829AB7DD45C3C52f965E7ABe358dd8761E",!1,!1,null,null],["bsc","wault","WAULTX",18,"Wault","304402202e9a50842a76d362c753b0f13b2c9b160161a158cc3d8938973cb279c9b05a5802206a71e86fa6f9ad53c939fad64a930d567ef1a02368a3f27f74e84d427a9d7d96","0xB64E638E60D154B43f660a6BF8fD8a3b249a6a21",!1,!1,null,null],["bsc","waultswap","WEX",18,"WaultSwap","3045022100a9a98be7bcf62e02619a8502899d1fa4654c38d1c80f7cc85d97b6a6bb66419802206404845a206ea9efc080af6f64643fca38a124b5e1540d6d058ef949d6f2be0c","0xa9c41A46a6B3531d28d5c32F6633dd2fF05dFB90",!1,!1,null,null],["bsc","wazirx_token","WRX",8,"wazirx token","3045022100e908f7fe3fb4e91df4e46d609056c978e9aa63a29998c8f7f0a9e133960bb5c3022046c448abbcfb75a547687658b1d7637813e436235dfa9fb57ce81aa0c6beb8a7","0x8e17ed70334C87eCE574C9d537BC153d8609e2a3",!0,!1,null,null],["bsc","wdo","WATCHDO",18,"WDO","3044022060c18e82c8d6f25c3861eb26931ccd8a79170b8488fc45b46beea341f400969e02204be64f8bee08deb5c4fa8cb1f03187b3583d6791f03215144dac5f38bca620d5","0xfE8E0e9a7a5Ae744AAebeac38E3B9b1dA7B17af3",!1,!1,null,null],["bsc","weather","WEATHER",18,"Weather","3044022043fcd482a2c055b8084c6ee764df5602cd2bdb3826d4976a3a737066a2b5c77a022017ff8356f8106eb78539ab069646e0c2bc15d893aba55e909d599d9e9c43eb06","0xbe3E4CFD929156F612DF36042D79201Ecf5344D7",!0,!1,null,null],["bsc","weed_inu","WEED_INU",9,"Weed Inu","3045022100b5c7849118b9097e4520ac54d64c11c30f65dc4149a68521aaae9a3b2fde4ca30220483bb7349b2e9dcf5e7dfd0abfb68ee113d847e04189f1fe9d696de2868b680a","0xc39fe1f599F7785a8513d92cDfb7FCFAE71c6842",!1,!1,null,null],["bsc","weetwo","WEETWO",9,"Weetwo","30450221009f627797e09199c8dc69f4fd85160ba749003b2ada8c1d92e410bea744619d5a02201b5b3b6d5d9585a81a0899cb39881932700e2c945c360025d9c7a7a250215e28","0x4Ec5780DB9afcf9f9A5c007a309cC832AC556d7e",!1,!1,null,null],["bsc","wesendit","WSI",18,"WeSendit","3044022023a638028d0012269522bc50a96d9f0b730ee00170fac5641f26e6b5a76b99a902204eaff3a813948a0e3cc30dff1679e58e4e8f620ec4450c3242dd5355afb1f91c","0x837A130aED114300Bab4f9f1F4f500682f7efd48",!1,!1,null,null],["bsc","wesendit_","WSI_",18,"WeSendit (old)","30440220691c28beee2872f45f8633d9f4e27be42ab6b5834c8a540c8d5e9cfa14b696060220141847708083da7dcbbf4395ac9a7378125ec08240f7345309ca813fc408e56b","0xcBD1C8823FB8010938A717aF6f9263b8a0104901",!0,!1,null,null],["bsc","weyu","WEYU",18,"WEYU","3045022100a03493e7eeb0bc9e9c209c2a389dca6752d4a265c4e4b2f081de9073b1fef20202202f8fc7af42b6b2f893f942c7604813ee8f9f95d69d10acbd1750f0d50a61a162","0xFAfD4CB703B25CB22f43D017e7e0d75FEBc26743",!1,!1,null,null],["bsc","wink","WIN",18,"WINk","3045022100905bbf768fbebd4be0bc30170111e874139b3dd6efc1539e6817d5b6cf7a7da402207373124bb8faf3f11664b8c9f66648a388bf2bbcaf17d2529f2f30595c0c9d5e","0xaeF0d72a118ce24feE3cD1d43d383897D05B4e99",!0,!1,null,null],["bsc","winkies","WNK",18,"Winkies","304402206b3eb8c6e566fc0fbfd510e5ff2f7ee6c3d6c05d86c4c202716bcfc2ebda1699022029260acbb1a64d9cc685db37b148ee38e359288e58b27fcc33b16f642e74c42e","0xb160A5F19ebccd8E0549549327e43DDd1D023526",!1,!1,null,null],["bsc","winnerblock","WBLOCK",9,"WinnerBlock","304502210089fa9d4b04b6832a56f88e84fbf1e6ac5fdce251c9461e4b6a034cdb8e9a0ef102207a6efa1140adef373d417d058822c92036d9c506be375b95ab05ede106e54bff","0xBFA80412dd0ff30eD23fe9B4cAE9aC3DDc483d9b",!1,!1,null,null],["bsc","wombat_token","WOM",18,"Wombat Token","30440220370f8499926538fe896203e5ede44bccaa6c96467f102512a928272a23002e02022031cffa07a2e215adbe0bd213d9d993a031f3c439f988f650d717113dc9816eb3","0xAD6742A35fB341A9Cc6ad674738Dd8da98b94Fb1",!1,!1,null,null],["bsc","wootrade_network","WOO",18,"Wootrade Network","30440220724870491e6538a8a31d736107e51c825ad230c82f8e4824c8009fd1a86db71502202077cbc773b1b555dae6b3e6f1df0a28c27e484e90015a1ca6822585e27e7479","0x4691937a7508860F876c9c0a2a617E7d9E945D4B",!1,!1,null,null],["bsc","world_of_defish","WOD",18,"World of Defish","3045022100a935ba144ef2038c50ebe94d32eeac7a224d2bfca7acc77dca6d916af654c64a022054cfd68e2397554454457d66a5c81d4f09a5dc882d913e8c2f3f954b6e1bb06c","0x298632D8EA20d321fAB1C9B473df5dBDA249B2b6",!1,!1,null,null],["bsc","wrapped_banano","WBAN",18,"Wrapped Banano","304402207b1fda1663e2d01171de9aae9c4cf415744bcf6a29c90c610a5808f4eb159bb002203cc8a27bd35e2a3eeb1e571ea83bf92e2fe51c36b61dff4bdf58fcc40604304d","0xe20B9e246db5a0d21BF9209E4858Bc9A3ff7A034",!1,!1,null,null],["bsc","wrapped_bitcoinz","WBTCZ",8,"Wrapped BitcoinZ","30440220379a7a36acca628bf7e033224f44025600050d17cd02b6b0f3a771ccafbf020202207fa2d45f383cbac39b1e67f049d290c4adfad56c5c10c7ceae0dc7325901c30b","0xcBBB3e5099F769F6d4E2b8b92DC0e268f7E099D8",!1,!1,null,null],["bsc","wrapped_blackcoin","WBLK",18,"Wrapped Blackcoin","304402204db4e831807ca8b0bd182f0a1124f44522c92fcf387253debd4f71f79639383302203cc5f20b1a4bfea415d7723639bbf8e2ee4504bd1d076a772739a0d0c6a3aa53","0xd2cDfD5d26dfA1D11116B9ED7DBd7C6B88C6e1D3",!1,!1,null,null],["bsc","wrapped_bnb","WBNB",18,"Wrapped BNB","3045022100833764594d07df7412279ae381beb0290dcc3111a8ed09263e7cf347bff9d1bc022060924b6531989108d016f3398184119dab014ef9e802e5018bdb15c74a14dfac","0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c",!0,!1,null,null],["bsc","wrapped_idena","IDNA",18,"Wrapped Idena","304402202a4116240c71b8b654d71c31aaa6db52a064a1ca1a58bd1c387079145bbd5dc80220549954191c7907b08f34ca659409df97f050317effec1eb9b3741f1ffd0671bc","0x0De08C1AbE5fB86Dd7FD2ac90400AcE305138d5B",!1,!1,null,null],["bsc","wrapped_mass","WMASS",8,"Wrapped MASS","3045022100e1ecb0c24b0ce278e82637b50ed654d6143bb0978497bfda082ae1da25d14d12022031ed2cf75159cac2b5af522af44cee41f72b8a72ad2280ab9541f913380f6e8e","0x7e396BfC8a2f84748701167c2d622F041A1D7a17",!1,!1,null,null],["bsc","wrapped_mir_token","MIR",18,"Wrapped MIR Token","3045022100fa918e540eb462df087557e24afc6a690b9ff1e13089bd1c68dedc1ab6d3396d022056552d08caf31a549d8ad849b7653b189854e0dd3b0219f6196c14379e9fa193","0x5B6DcF557E2aBE2323c48445E8CC948910d8c2c9",!0,!1,null,null],["bsc","wrapped_mirror_amzn_token","MAMZN",18,"Wrapped Mirror AMZN Token","30440220241de43069ba4c3e95db11dc2db0292276f7b792c0b0fbdb072228cbf56350cf02203e836ba5b23a4fa74e9164912eef021c60e739d8cd6bd196df9a17a5e585b097","0x3947B992DC0147D2D89dF0392213781b04B25075",!1,!1,null,null],["bsc","wrapped_mirror_coin_token","MCOIN",18,"Wrapped Mirror COIN Token","3045022100b958ecdfff2e9e7088dd3bea1546a6f0e6e7953ae81d99f71935aa3035a27b470220549c6499d29c5fd57ed8a277984ebb309ea2dc038347c0a50c227ae292a92d03","0x49022089e78a8D46Ec87A3AF86a1Db6c189aFA6f",!1,!1,null,null],["bsc","wrapped_mirror_googl_token","MGOOGL",18,"Wrapped Mirror GOOGL Token","3045022100b7617806d6b8972a9d712df365a136bb47939bf16134c0cf5dad7ada636ba9870220163828dedbb3ea6d360c393763ab56d654cb0bf5d1ec9dfcc7e0f46e9b709062","0x62D71B23bF15218C7d2D7E48DBbD9e9c650B173f",!1,!1,null,null],["bsc","wrapped_mirror_nflx_token","MNFLX",18,"Wrapped Mirror NFLX Token","3045022100fec7aafd74c3ab812110204c5a755576cbe017d6c907134c074e9db2b7e39af70220427ca59e1404161ba76ea1a939b8275f1fe7c96b945d2c9908deeb34950b33a2","0xa04F060077D90Fe2647B61e4dA4aD1F97d6649dc",!1,!1,null,null],["bsc","wrapped_mirror_tsla_token","MTSLA",18,"Wrapped Mirror TSLA Token","304402201cd945cb66d28596bcfc9382439fced7b8da66d03d857f00fdf273a7a7d7c7180220118e77c2272e175091523f518e1f56c9233d97746e04723e28ba66913af54384","0xF215A127A196e3988C09d052e16BcFD365Cd7AA3",!1,!1,null,null],["bsc","wrapped_mtrg_on_bsc_by_meter.io","MTRG",18,"Wrapped MTRG on BSC by Meter.io","3045022100b29743525a40ed1efee7504a47121919b07d6792ab25f3fcba5d9b573072e23d02205905970ec0547a83aa22059521db09cdaca8b78f3f144eb64ce588f1bf663ca1","0xBd2949F67DcdC549c6Ebe98696449Fa79D988A9F",!1,!1,null,null],["bsc","wrapped_sote","WSOTE",18,"Wrapped SOTE","3045022100e145981c9fbbaffc1c599047932a305c294042e67028fd32cb2dc119cf48f8d202203d6695ce0f7237be313c7ddbfa8686d9ed9b2db5cf35aee325fe78f7a621b68c","0x541E619858737031A1244A5d0Cd47E5ef480342c",!1,!1,null,null],["bsc","wrapped_ton_coin","TONCOIN",9,"Wrapped TON Coin","3045022100d6a6272390347fd9b6ccf80f5bbc8adb413e7d67cbe1c0ebeee9d1bbad9b05e6022017245ea2a22ee9df17bcc1f3a4c41bfd3ad17cdac59a772393d58ade27d548cc","0x76A797A59Ba2C17726896976B7B3747BfD1d220f",!1,!1,null,null],["bsc","wrapped_unido","WUDO",18,"Wrapped Unido","304402206b3682c21cb6fe32d135d7271a9a71249d7ddaa85a5c81d54ef2b5e5355b438c0220156bf0bd777ec02c21a5d3136713044572fc2727b85e48be5e67ab532c2a7523","0x70802Af0Ba10Dd5bB33276B5b37574b6451Db3D9",!1,!1,null,null],["bsc","wrapped_ust_token","UST",18,"Wrapped UST Token","304402204acd85764548290fbfa945abc4290b53c6497aeffdf08140c4758d457482503802203451ad30df072e2dba51bd9bb0e7e57df189605c862fd22e940862b7c625c079","0x23396cF899Ca06c4472205fC903bDB4de249D6fC",!0,!1,null,null],["bsc","xen_crypto","BXEN",18,"XEN Crypto","30450221008a03375bcb2376da23b43a7dc3bd53b3e0bbe990358199bdcabcba066f89f1b70220697bd1616cb7383a73ae0d9c6a15c0908ea64808421138a313879a2d5dd7a765","0x2AB0e9e4eE70FFf1fB9D67031E44F6410170d00e",!1,!1,null,null],["bsc","xend","XEND",18,"XEND","3045022100b4aa69007e4ac6d0c89953e9c78e741b78ac2f3dc052b4f6d902ae48ed9a0ff802203a6a026a85fd81f39cacd772cb288e9fcc54640df897d798fabfa5e728c9435f","0x4a080377f83D669D7bB83B3184a8A5E61B500608",!1,!1,null,null],["bsc","xwg","XWG",18,"XWG","30450221009d8d2aa08231c0c1d259d8c4e5925cf2a7e07a7d25791c50f2d694cd291ce58902204fa5275096f4005e6d755eea55cffa07dea7fe2d4ffe980595115f8dffe8e76b","0x6b23C89196DeB721e6Fd9726E6C76E4810a464bc",!1,!1,null,null],["bsc","yay_games","YAY",18,"YAY Games","3045022100ebe33152f447989bb43b3a4cf2168e3095be399e20650c8172702c0fa4181abf022077141a37fb43ed2496a0b2fe554f74b0f2fe0120b08f1e6dc9a4b79ae2dee01e","0x524dF384BFFB18C0C8f3f43d012011F8F9795579",!1,!1,null,null],["bsc","yesno","YON",18,"YESNO","3044022079302b91f5fcc06abcaf33c42c83fc7db345652293cbed35598ef42015babc5b022024bfe02151c87e62a743b82f0ee481986005a13772cd524c87fb72f582c11854","0xb8C3e8Ff71513AfC8cfb2dDDc5A994A501Db1916",!0,!0,null,null],["bsc","yield_guild_games_token","YGG",18,"Yield Guild Games Token","304402203d5a5892ddbfd896d8c238d2aeb87358fc4d41337b91454c61185d772c23923602206db44178683ab7fa1f54d087a1a69f2b5c5602771eb0f48f88b7695f2118eb7f","0x13Ab6739368a4e4abf24695bf52959224367391f",!1,!1,null,null],["bsc","yieldwatch","WATCH",18,"yieldwatch","30450221009ad3557be6be1aa95938e2dda4493d9e024a1f8531e820004834ddc9936ddbf402203342bbed1ab7bcc15338f721248109f23294ac3c16754b0bbf8b36a3ddd12804","0x7A9f28EB62C791422Aa23CeAE1dA9C847cBeC9b0",!1,!1,null,null],["bsc","yieldzilla","YDZ",5,"YieldZilla","30450221008793ce931728b4e897aa44f9a372f6462d7dd12660331fa84234e652e28882f9022006531f5e02061b30ca83401b61e571ad4d8e4d95932114369813a64225f201ed","0x22Ffa75b746602427203d7Aa3f9Dc2b8af6dFc8A",!0,!0,null,null],["bsc","yooshi","YOOSHI",9,"YOOSHI","304402203a277702e0fb03a69d8df49ab88ae5dc6b72c2b9ba228607b72961b9424889ea022061766b9dd6b68268476fc0cdff081838579e018f7f1ea57f69cdfc09d4d42b6f","0x02fF5065692783374947393723dbA9599e59F591",!0,!0,null,null],["bsc","yourkiss","YKS",9,"YourKiss","304402206a2c5a289ae7b5b69db144d5cbc6d6fcaaec59de3098af63d9d1139e6f3cbbeb022078805630505d0351f1250ac0db65093b4e24d437134b07dfcece8fd6d1164446","0x00855c21754FE85fD4E38Ac23D2B3E091B04a042",!1,!1,null,null],["bsc","yummy","YUMMY",9,"YUMMY","3045022100f83d3791e7dbdd451cb20e2a5c8812cecdc3844a7dd4198552fc8053d4166d360220792b8dbff9a93eecb262a45e46afbc0618ca33c13d20abfb9d208292782917a2","0xB003C68917BaB76812797d1b8056822f48E2e4fe",!1,!1,null,null],["bsc","zeedex","ZDEX",18,"Zeedex","304402200cf3d6319a38cc89df956cb14b3e4ebbfc4613a4af5d98284c171043bb8ee33c02204fc6ba89cf8812b20f6834c0937e136d2002e9f242e6982575ef64f54b6496ef","0x6e6beD1409E7c1EebEC4b0dF0419B32e0c6314bA",!1,!1,null,null],["bsc","zeroswaptoken","ZEE",18,"ZeroSwapToken","3045022100c44ff8c97030279f65b74420e5ab98e9e826c6165bcb400f0ae00f3924ea5ae70220700b43ffa3e052d56afed580cc3555e2695cd158e1c8380c29aec6485378289d","0x44754455564474A89358B2C2265883DF993b12F0",!1,!1,null,null],["bsc","zilliqa","ZIL",12,"Zilliqa","3045022100fd2edf3cbcfeecca704328ea37ff8f9a769aad6d630b3c54cb948651d0eab32a0220701e203cb421839ba4665d1332fd54b7f21cc51559b78cfb0e1f9f6263dc6f8a","0xb86AbCb37C3A4B64f74f59301AFF131a1BEcC787",!0,!1,null,null],["bsc","zmine_token","ZMN",18,"ZMINE Token","304402204b817f8f01709cd3c1ece3813650c9c213afe3ee1de7f3660d724ef6db8ff68c022032d830eb9626ed7cb94342fdaaf195afdb98d069198c01dfb42e35d3ea27c6da","0xFCb8a4B1a0B645e08064e05B98E9cc6f48D2aa57",!0,!1,null,null],["bsc","zoa","ZOA",18,"ZOA","30440220384becc7eab3895215a5a6a22cc137d7d7aa0b055da1b307955df0852a251bc702200e09a346e79f487d51dd953ea31e187caa560ba2996bfedc2943a678fbaadfd4","0xB2e841894b1C3d638948517F6234c6e06D3B8e1C",!1,!1,null,null],["bsc","zomainfinity","ZIN",18,"ZomaInfinity","3045022100c3e4ab99c5863308ad8d7942c5cd916d7e2078547369791d7c93fc050c8f9bbf02200afb92da228024eaa9a0d057ee5d8e0ba73187103fc53eaadd8411182eca612a","0xFbe0b4aE6E5a200c36A341299604D5f71A5F0a48",!0,!1,null,null],["bsc","zombie_inu","ZINU",9,"Zombie Inu","30450221009fb3b099e37b3d56ce14c7960aef5b216d5f72a7fdc1ab4210cc829cc4f102cd02204c078ad1029af9affbd64afb6f847f0bc7be48e6f9fe9cf18421225f9dd0eaf9","0x21F9B5b2626603e3F40bfc13d01AfB8c431D382F",!1,!1,null,null],["bsc","zuna","ZUNA",9,"Zuna","3045022100d798f390547d0fc243bae6428e226e567fe6fa252c3b6c5a48be21aece408b3d022005fb925e9c810516c3c9a0d1b52dadf607063bf58df747e533b49757e09e10d9","0x5D07eDAbA2151a3C6802B28636eCC23082398EdB",!1,!1,null,null]]});var OC=U((rW,GO)=>{GO.exports=[["cronos","ada","ADA",6,"ADA","3044022100822093adbba5ed5ae787b4de3fc3bde28a01c6bc36fb4dd5125d59489ca17929021f176c15ec099bd66e76a9a64e8c7e73f09446eb18a6fde34494f4e35325d571","0x0e517979C2c1c1522ddB0c73905e0D39b3F990c0",!1,!1,null,null],["cronos","annex","ANN",18,"Annex","3044022037379466ed5f23a5f3220b6c035223d6fd08af13509a055aa5eee6019aa00f0e022068afe79766df143d88cdd82dafb689460941d17c5e15327b3d9500a2896420d6","0x98936Bde1CF1BFf1e7a8012Cee5e2583851f2067",!1,!1,null,null],["cronos","atom","ATOM",6,"ATOM","304402204c2b07c7a69cfe9d84c8040361bb141250cc035cb6a9eb11cd6609753c840d96022000fb51ff099b47b1308ac499cad6520f8ddf41817603b8af551a73c18414836b","0xB888d8Dd1733d72681b30c00ee76BDE93ae7aa93",!1,!1,null,null],["cronos","chainlink_token","LINK",18,"ChainLink Token","304402202ff713ab2869e57c44d21ed90d46f6b82d2deeed8312684a1b70ba0fff6e0ebf02207f29e559f648351d3583c9c0bf9271b27ef939a7400063136627ce6e86d0f924","0xBc6f24649CCd67eC42342AccdCECCB2eFA27c9d9",!1,!1,null,null],["cronos","cougar_token","CGS",18,"Cougar Token","304402205a1c143ccc42dc2e3260b6a0bdeac6dc4e08ccd59bb83583a8404167bc2c70a902207ad6cbc20209c7e4ff8557c63803ccd83a83ccac809d519c0fd67adc8130bbe6","0x4e57e27e4166275Eb7f4966b42A201d76e481B03",!1,!1,null,null],["cronos","cro_predict","CRP",18,"CRO Predict","3045022100d25590045a3fff64ee74b75c232939c6a66960a3bebc9efe9e33dd997245484a0220792ebcd815736dd118a4cb4ba80ce01bd80a1995dadecfbb0d10825f8d1a0335","0x7b8aD6d7560FAcd1959cfb4b4163D7d297c4bFc0",!1,!1,null,null],["cronos","croblanc_token","CROBLANC",18,"Croblanc Token","304402200dbf8c3ef4771f1aa7842be5cec1cd59e9b92c33027c6a32b4e8d99f7d68c757022031a0f7ccd0dbe3f8ac6194c870d9dddc19741dd750b20df0c4f6df9e325b7393","0xD3ceCBE5639D05Aed446Da11F08D495CA6bF359F",!1,!1,null,null],["cronos","crodex_token","CRX",18,"Crodex Token","3044022071ffa21ae1c5007d8ba1167cb87491a456d4fc8c7ca744cabd53fb7690714244022077e50161204c37a801f61c94c9e52100f5e9255c66a17b07b81e9cd6edcc22df","0xe243CCab9E66E6cF1215376980811ddf1eb7F689",!1,!1,null,null],["cronos","croissant_games","CROISSANT",18,"Croissant Games","304502210087c0eeb4c0d22beb60d6027e150694d42de3b6f57e774667cc885d3e985b79db02206f6ecd37353303a3b05e25d37679163491b161f62cb87bdc2e05044973dc640b","0xa0C3c184493f2Fae7d2f2Bd83F195a1c300FA353",!1,!1,null,null],["cronos","croking","CRK",9,"CroKing","304402202a1f9086b7ef6da325dacd019bd4a06b9b134de50c668cd7fea6d80c82326751022007020618fbfff745d67d6e887326586d381c0342f618f1aeef47ed68f37446ae","0x065DE42E28E42d90c2052a1B49e7f83806Af0e1F",!1,!1,null,null],["cronos","cromoon","MOON",9,"CroMoon","3045022100832496bd87dc0fe6791c2e3687066002150b3aba49ce8370e17fe365a316089402206a72076e816759d92f95e680f341fb7ca08a6c0de1ff2d70046c9ec6ac6d32f3","0x7D30c36f845d1dEe79f852abF3A8A402fAdF3b53",!1,!1,null,null],["cronos","cronaswap_token","CRONA",18,"CronaSwap Token","3045022100deb8b79e14f9e7b05124c1818e603d867a10d46dcaf98cd52bc205bf946c216a02206f366b7f26c27f0017248d2a75490049aca915d495331bacf96fcf8a1ccf6673","0xadbd1231fb360047525BEdF962581F3eee7b49fe",!1,!1,null,null],["cronos","cronode","CRN",18,"CroNode","3044022007fffe07154f95b0b92b2ed7165d1368f80117cc4a40eef383e7f3a1c6775c8a0220291bad42efd37d7a0319ec1e872e8e58e731dfec3d382c608ecb8424bd34d478","0x8174BaC1453c3AC7CaED909c20ceaDeb5E1CDA00",!1,!1,null,null],["cronos","cronofi_finance_token","CRONO",18,"Cronofi Finance Token","304402204f7fba39ea4ea30192d77262de28f54ba18b97681909c561361d619a697fb462022061f4784b1bc34760427f885df258650e2106203ba493adde9edecf992a06bdb2","0x3Df064069Ba2c8B395592E7834934dBC48BbB955",!1,!1,null,null],["cronos","cronosphere","SPHERE",18,"Cronosphere","3044022038c03c664cc95c19ac128afe5e4a87770b4db8403160432d56c40582c3efdd4202201400aa1f244fc58e6dac787ae28527dabf4a8388dfd2bbdabb952d9c10384d8b","0xc9FDE867a14376829Ab759F4C4871F67e2d3E441",!1,!1,null,null],["cronos","cross","CROSS",18,"CROSS","30450221008cdbd0c8fd309ccd7e17e388dfa3306cb0be94fb75a7e2c353f9eb9fe8a3e1f102204c783f91b0f4400386249d174cc82e9527fe1be13c4f98b75d8fdee37f43cedc","0x6ef20cA7E493c52095e892DAB78a7FD0e7e2a279",!1,!1,null,null],["cronos","dai_stablecoin","DAI",18,"Dai Stablecoin","3044022035fa287118eb8e90d487ee98592b6290eb580b610e99991486df93f008887ac502205b93afb0335f565e12d14fe40ddb3c607a8f7235326f9fdc5e90235bebb356f1","0xF2001B145b43032AAF5Ee2884e456CCd805F677D",!1,!1,null,null],["cronos","dappradar","RADAR",18,"DappRadar","30440220209a501f6fa2dd573fd46d0f67844df22d65fc09fa28f6403a9f8bca70d57c2b02205144d5ed4264eeca03be287a2fe4132b7cc2c5465ec87d85ad8ec430b038466f","0xa58e3AeAeA3292c3E260378e55E9684C59E7A27a",!1,!1,null,null],["cronos","darkcrypto","DARK",18,"DarkCrypto","30440220272789410259ec3d6b51e39df2b85be45fd73a858caaf72654e32fa439ef28bf02205d194f4ba012b0ca28295d91d21e4dc789a8f997b76b9b949138da7d6e29a744","0x83b2AC8642aE46FC2823Bc959fFEB3c1742c48B5",!1,!1,null,null],["cronos","darkcrypto_share","SKY",18,"DarkCrypto Share","30440220152d5eb4b24d0d952384ef9992495ac89dbf6061e44219ee274c4404a11a27c402201e388294a3ce85d16cba78e2b7f483d02fc32c6af6c1403422eacc3137cb9ee9","0x9D3BBb0e988D9Fb2d55d07Fe471Be2266AD9c81c",!1,!1,null,null],["cronos","darkness_dollar","DUSD",18,"Darkness Dollar","30440220174e5eb2dfeea8a822667e0855a751ab9983dee72482197510d447888151960502202e2c93111c4759f6b9551df853c2d2095d0fcd80a43c9f5cdbae85d48a905c90","0x6582C738660bf0701f05b04DcE3c4E5Fcfcda47a",!1,!1,null,null],["cronos","darkness_share","NESS",18,"Darkness Share","30450221008e3ed4cac65162e30cbacc87ede11434209717918173914ce02ae4fd8af3efa202200a4629d4d3db3601e07d10a7f5f770cff2f66120cecc03595b87d6ad88d86d0c","0xE727240728C1a5f95437b8b50AFDd0EA4AE5F0c8",!1,!1,null,null],["cronos","degen_protocol","SH33P",18,"Degen Protocol","3045022100b4c2f549be78da5397d24def75ce94857773a6e8fde5969de777e23a187a71610220580a9f160cd2347ae92f5bd63e27ea17f6552c8a02b07a8e95b2c95ec6cb973e","0x0694c9bf930b7456712cEde98bE770e110212B38",!1,!1,null,null],["cronos","dexpad","DXP",18,"DexPad","30450221008ea055f4f6c094dc8fa59c1ca4346ccef7d45e4d0df197a787bf3d63fa7b2c8c022067b962e4a119e830cfa3e45924c1e77c4d1af111994c0f13106a2379dc848493","0xe0c41FF9a7032de445771E12C14868CbE061C993",!1,!1,null,null],["cronos","dna_dollar","DNA",18,"DNA Dollar","3045022100e98fc25027414ac2d2c0b7bf3127a4df51dd6fc6e95834bd6b247a7d6f6f49a602206a98a8a765d62e8e6fa83e450f408e24511e65c341e5a57b4b6f594d11bb933d","0xCc57F84637B441127f2f74905b9d99821b47b20c",!1,!1,null,null],["cronos","dna_share","DSHARE",18,"DNA Share","3045022100e739f9b170c25d0f630a2de3364d8235a0c30a7518328fcd142c41faffbcdb3102202a881096962895af67366f63ae13ab42aed60378597cd7ee6456f4469c5aea6f","0x0e98DC462fF438b802FaD0D68fF7F111a0674BB5",!1,!1,null,null],["cronos","dogecoin","DOGE",8,"Dogecoin","304402205c3623640dd610875371b270fc55ddbb4a6e8c8dafc582c0744bd49785347833022011a9ed9998bb0790f4338f0ecffd4b7dcdf5f2eb3a99202eac55f1de46ddd72c","0x1a8E39ae59e5556B56b76fCBA98d22c9ae557396",!1,!1,null,null],["cronos","dogelon","ELON",18,"Dogelon","304402203d1798dd5e3aa5147a14f914aa419dcc43cd1e778c6ed1f38473aa061ecc8f6d022043905b999f073f301e15eb3cce833dafe1694745364942ebbbd11754fa25a13d","0x02DCcaf514C98451320a9365C5b46C61d3246ff3",!1,!1,null,null],["cronos","dot","DOT",10,"DOT","304402206d8a4bcd7289f4ddd9fd73e40f5af0522d4f9946c4140c3af3858c2bb1cddfa3022016c4a605a952abddce023edb4f52bf159e8a9811aa48f8d358c73674bad2a6cc","0x994047FE66406CbD646cd85B990E11D7F5dB8fC7",!1,!1,null,null],["cronos","enjin_coin","ENJ",18,"Enjin Coin","304402201e5c4868079e71e8bbcde59433e2b9e2ebe882780c0023e5aeddd426e8330f0b022024f28c03ed7185e474c70ecbc1bff04f3478c46b1824fbc58f8c4b1805bde6f2","0x0A92ea8a197919aCb9BC26660Ed0D43D01ed26b7",!1,!1,null,null],["cronos","eos","EOS",4,"EOS","304402201a9a74339232f3b0ada5872d08ba15eb3de9954b2e566b66e7e16222080f1654022004e768c680be65e0ca5ce4bda8e4c89a86e065f6f7e85053c6a3deff5149958a","0xA37caA841072a305a0799718aFA16cd504C52118",!1,!1,null,null],["cronos","ferrotoken","FER",18,"FerroToken","30450221009e5b346336aa25611ed5fb2e571487c3456efa1112a882adeded35eaed6b51e30220422afc291efaa625745e10f26a3784ad80545127f054110e6cedb254de48f96b","0x39bC1e38c842C60775Ce37566D03B41A7A66C782",!1,!1,null,null],["cronos","frens","FRENS",9,"Frens","304402202b587ca17b7a8ca8dbb6865ec7d5afe97669874bdc202f8b345b799ef5ddd05a02206664363e02cf99ce79e9688cf1ce7745e7227489c8ab3453d5adb2617d8351f2","0x0EdeC4bE261B22be6096Ec4960247697891A2045",!1,!1,null,null],["cronos","gaur.money","GAUR",18,"gaur.money","3044022018a972db4ba168a4d2f56625d2ba9d0d88675be23aa7428e28fdae4c2b3b5eec02206a17f116cb4e350b2c193b9ed425b9a1ade1053b1e06006523e71bbd4f3d4fe3","0x046cb616d7a52173e4Da9efF1BFd590550aa3228",!1,!1,null,null],["cronos","gdrtoken","GDRT",18,"GDRTOKEN","3045022100da81e42e0842319887b5ed1b706da37a6a2bcda5fe2f2732b48265f9f70ce1b5022079b5bca24f4f9d7899b63c9aa19e6bfb35f98cabc2db4732f4d0fa2746ed766e","0xeC0d0f2D7dDF5e6F1Ed18711fE5DD5C790E1C4d6",!1,!1,null,null],["cronos","lazy_horse_race_club","LHRC",18,"Lazy Horse Race Club","3044022003c7a452e1fec10d417745b20bdaa472b759f2d14457319652d635035c152ce702205909611cba0d0021dcadbebfe11f43934673359b5ef31e476d3ef13ca9e1c3ea","0xEfD450027bD0EE84AfaFbC75f5A80C367eFBF651",!1,!1,null,null],["cronos","loot_network","LOOT",18,"Loot Network","304502210087c1798a4bce0a794260edc54dce539647371966e934485e62af99a8abcf60ad022067b97632b7d75f4be24f8039f0ee68ece05bbcd7770642a980687c87fee03555","0xEd34211cDD2cf76C3cceE162761A72d7b6601E2B",!1,!1,null,null],["cronos","luna(classic)","LUNC",6,"LUNA(classic)","3045022100e537b61c05cdf23f600a12adb49ae1acd07ce4afcec9d6a8c73ec3145dbebc11022065dfb631250dc0c69c8f89f39d4a8a28ba4be2b4d3c202354f88ebb9371df4af","0x9278C8693e7328bef49804BacbFb63253565dffD",!1,!1,null,null],["cronos","mad_meerkat_etf","METF",18,"Mad Meerkat ETF","3045022100d355b092b3bb701bf45594f44be8c518388407ef0810dab7e26a237d4fa4657902207acb813aaa464ee0d4674f44b3b1df4e8394d58c0a135e7e2bec1b9b67010ab7","0xB8Df27c687c6af9aFE845A2aFAD2D01e199f4878",!1,!1,null,null],["cronos","mad_meerkat_finance","MMF",18,"Mad Meerkat Finance","3045022100890e81973389215c2a1c6b1378fdbb80e745d5c691d0a39a9b6d9e32a43417450220483348770cf019b606d856d35ba142668d814ff5da9619fdcf98254e9d715a8f","0x97749c9B61F878a880DfE312d2594AE07AEd7656",!1,!1,null,null],["cronos","mad_meerkat_optimizer","MMO",18,"Mad Meerkat Optimizer","304402207770439181dd92ffb96ec392cd929cacd6f589bf31183d0dfe9a1660c696285b02202a6ebfe33ec7423b1b2f7a32c426deb779da9e1e1c5d68e1e646fea16cb0d0f4","0x50c0C5bda591bc7e89A342A3eD672FB59b3C46a7",!1,!1,null,null],["cronos","matic_token","MATIC",18,"Matic Token","3045022100f560788f7225f7a9225a1af4b28f09cc1c609e52760a6ea5a0585a773e585c650220342632f050c8785a1d431ac4f98963b4fd3b382c3e33cf9dfb3f8200f8f35c73","0xf78a326ACd53651F8dF5D8b137295e434B7c8ba5",!1,!1,null,null],["cronos","mimas","MIMAS",18,"Mimas","30440220446500410b50d65ec7cc7fe15435c61a074558ca64b838c0d83a6510cb8b30d502202e60ce2e03500cfe68681d248f75588d216ef550cf5c111713d641936be22faa","0x10C9284E6094b71D3CE4E38B8bFfc668199da677",!1,!1,null,null],["cronos","mino","MINO",9,"MINO","3045022100e0ebccf4a2b9de99b35a7f32631124a811e32651476aaba92adb74d24f81678202201291bd2789332026062971a9aaf986ffce57f11a36895c71b8e75c01637cc1ca","0x3A1138075bd97a33F23A87824b811146FA44288E",!1,!1,null,null],["cronos","pegasus","SUS",9,"Pegasus","304402201ede936c77951f8973fd14aef021fa445b2b6a03c8e78436ca8904f68553c1150220611bc721d783518460f18ca0c0250842a4320d544caf12165ab1c4ce7200af16","0x5b5Fe1238aca91C65683aCd7f9D9Bf922e271EAA",!1,!1,null,null],["cronos","pendle","PENDLE",18,"Pendle","3045022100be6d66ba71e0fce7ea2cadc7edd84fe1ca34f98fe463cfe11019d4e13c67b0d50220308cf3adaba2c8b6ba67f49030d188e62c2c190f719e0cfce09ff1e7463812e8","0x49c3bBB239f4FB44327073510f4bA72D207a81D6",!1,!1,null,null],["cronos","photonswap","PHOTON",18,"Photonswap","3044022100d2cf8d6a918c4e0a35a7ea413646bc2fdcffe744c8680428ba73b29e2b48d08c021f4620611613bcc432db34a8ed8cdba958609e2068539a54af36b418e6cb6378","0xbdd4e5660839a088573191A9889A262c0Efc0983",!1,!1,null,null],["cronos","rollium","RLM",18,"Rollium","304402200dd2b7c732f23a7ead98edf45c774f14d67a794176b6b71b78639a3cfbe3870c022054341fbf2cc735cbcf565dda5942384b430ac83212f26fb47447949873eb340a","0x19258a1df9E929D02b34621CF52797998aE1Aa27",!1,!1,null,null],["cronos","savanna_share","MSHARE",18,"Savanna Share","30440220533cbab577e063738033f9b60244dd252531a720e6ae432e4f8bfa8439decbb4022047d07509361984e5da89746752e5a620844c6531abaeb541f3297675e13c2e27","0xf8b9facB7B4410F5703Eb29093302f2933D6E1Aa",!1,!1,null,null],["cronos","savanna_token","SVN",18,"Savanna Token","3044022026f4e194630f5f7166b06c1c030f6ba269c9e49801903e9aa321181b8017b30c0220592c90dcf6a0d274b63d627d9fef21e65cfe717efafa65ffb131e9692d6245d7","0x654bAc3eC77d6dB497892478f854cF6e8245DcA9",!1,!1,null,null],["cronos","shiba_inu","SHIB",18,"SHIBA INU","30450221008a3062f013332ae78fed110b62e8ccc39cd20f82f00494d1162766ac8e67cbf2022012941651aca9fe5644e129f00f5685c88db31af5cbc5fbbdf2cb7c622b7a12a8","0xbED48612BC69fA1CaB67052b42a95FB30C1bcFee",!1,!1,null,null],["cronos","single_token","SINGLE",18,"SINGLE Token","3045022100dc1d8b3a66082d20ba61c6948e81856142ef07ba780c1946080ea0c0daa0ffdd02207a30e8430da8b84f4a74a8b9efe126c4683fefe37e3c6d2cf55c5f67f63d19ba","0x0804702a4E749d39A35FDe73d1DF0B1f1D6b8347",!1,!1,null,null],["cronos","tectonic_governance_token","ERROR",18,"Tectonic Governance Token","3045022100b958bce157e3e8a0f26675816a1cbc376151314e5ce5f9af9d1144176534ce440220111bb252f8f80c026e2a1239b80007bde9d37305a8c09d1811a5cbfc7e751fee","0xDD73dEa10ABC2Bff99c60882EC5b2B81Bb1Dc5B2",!1,!1,null,null],["cronos","tether_usd","USDT",6,"Tether USD","3045022100d9a9adb3d21a4c9cda7be98d67e278060be879c68b3de0777922ed1ebd0074b1022049ba2a8c82abdc699a47718031cb788d61add42fdd7464d36cdd7bf231cfbf1a","0x66e428c3f67a68878562e79A0234c1F83c208770",!1,!1,null,null],["cronos","trueusd","TUSD",18,"TrueUSD","3044022042d638a42dd5801fe2074352c2f44770860cd142c0b8c2c45e2ef857325345cc02204077b147b366a4c2574b0c49705a8fa3aa6f48f8b5576a1be31896544b4d5208","0x87EFB3ec1576Dec8ED47e58B832bEdCd86eE186e",!1,!1,null,null],["cronos","usd_coin","USDC",6,"USD Coin","3044022077803133e8de6cae713b2f275bb345090e3c2224c0cc0e4c32af40b03c99e33b0220797584f5c557e0fc867ec0b30fda4fd58dcdc59e032d3d3a4eec383ab1e9540f","0xc21223249CA28397B4B6541dfFaEcC539BfF0c59",!1,!1,null,null],["cronos","vvstoken","VVS",18,"VVSToken","3045022100f393853cb4255da032c9da524302f9148ff5f78157e7c77b8335c22aea56648c022027c13ada4d8fabd03c19e8d5d3281c93df6969ab66ff24ed2ca97edd9bc3509e","0x2D03bECE6747ADC00E1a131BBA1469C15fD11e03",!1,!1,null,null],["cronos","wrapped_btc","WBTC",8,"Wrapped BTC","30440220721f64658281ef31fe89c43cf77fbe9f6b4d5596f9d4b282f2d63ca34854b589022041461c3f36710af47bf22cf375aa59d6706320255bd2312be387fb51650cef50","0x062E66477Faf219F25D27dCED647BF57C3107d52",!1,!1,null,null],["cronos","wrapped_cro","WCRO",18,"Wrapped CRO","304402201cf19537941c4f3011ed0179ce8b8924a5456a66769da2a45812499be03338270220616ea9a1471d1159b7168cfad9f0edb0773d2718a81be2797b825ddfece329d7","0x5C7F8A570d578ED84E63fdFA7b1eE72dEae1AE23",!1,!1,null,null],["cronos","wrapped_ether","WETH",18,"Wrapped Ether","3045022100adb76a168f8365696ec266028335e6033fe1592d3f91de30ba4ceecb363b015a02202683d4a3caa70863f94d141ae36a4dbf72c7fecbd6ffc21baf0d10b3b611b010","0xe44Fd7fCb2b1581822D0c862B68222998a0c299a",!1,!1,null,null],["cronos","xlm","XLM",7,"XLM","3044022062b85fab8d76aaaf8ecc537ba455941cf6f01dad89311480921c84f0fc0c83ac02200577bc6e28d5ab499b7c2428011d6ef21fec049964f592c6533d25b6f3d9010f","0x747d6C858168B8cD6e537160320b5dE58FD3367C",!1,!1,null,null]]});var GC=U((nW,PO)=>{PO.exports=[["ethereum","$aapl","$AAPL",18,"$AAPL","3045022100a1e0859e2ad886121b0c5bb374622dcee83b6b0b26a5552559b56a328e4d50ad02202efc09d46a0770a40c6a650a9eec00ba9d8a6727a369398a5f8e3f1d698ccc71","0x41eFc0253ee7Ea44400abB5F907FDbfdEbc82bec",!0,!1,null,null],["ethereum","$based","$BASED",18,"$BASED","304402207e5be628591465b9ee45b62d5d067beb99ead27485874371b213037137b60a9702205339b3d713d990b5c614a98c20b113978ae36ff72324183d35673a40b71493fc","0x68A118Ef45063051Eac49c7e647CE5Ace48a68a5",!0,!1,null,null],["ethereum","$die","$DIE",18,"$DIE","3045022100c46f9777ba0b47cd415316d6601528a908e42f31fdd539b638a8fffca969263e02201cc29375ef59ab65598968ac83a1682e0ffc7b200f1b7c89cb1275f15f934d2b","0x15F5f5F29a819BF7B4B80BF55352E1e42707c94e",!1,!1,null,null],["ethereum","$poolz_finance","POOLZ",18,"$Poolz Finance","304402204c4a20f44405f514a44cf86149a4bce6bb2ac32d98d08ed509fe8c24045241f702207e2b94ffcc063a91eb231f6319dc61229e389f5142dcb92e7bb30a07e77fee1f","0x69A95185ee2a045CDC4bCd1b1Df10710395e4e23",!1,!1,null,null],["ethereum","$rope","$ROPE",18,"$ROPE","3045022100f21834e0e49b314794bdd5df34cbf70432992a089078b41382c38db85cc4e0f502202e779712bc89d03c9fb5990623828f7b1274df10c0b14b2df12f86d9a9a54774","0x9D47894f8BECB68B9cF3428d256311Affe8B068B",!0,!1,null,null],["ethereum","(del)","DEL",18,"(DEL)","3045022100e9e98928a28e6b8650ff91a5569cb98f477c04916244367117833b4d8fbe1ae5022078d7945132e1538bb6a76ab54531a88256ebdebdba1d1bf34c53a3cd54123586","0xec6432B90e7fD4d9f872cc5C781f05B617DB861E",!0,!0,null,null],["ethereum","(payx)","PAYX",2,"(PAYX)","3044022008245c0fb8423737a8767bdcc0df41cff37fd650fa53dc31bd087f2488e6fd460220414f27833e0582ef0eeb73dcd0636058bc05662977a429756a2efe19a84f292a","0x62a56a4A2Ef4D355D34D10fBF837e747504d38d4",!1,!1,null,null],["ethereum","(rkn)","RKN",12,"(RKN)","3044022058c6019b49830bbd61cd41d213687c6a4bb23e5f3650c01428581aec577b039302202f809249c8a8eb042e3f9ab83a43cae5182c8dfbcdb00c6275cdbed6040d33d4","0x6E5a43DB10b04701385A34afb670E404bC7Ea597",!1,!1,null,null],["ethereum","0chain","ZCN",10,"0chain","30440220597706f051fcdf0de4eae36542d10ead0feabfe042e38177d5d319f83974574b02202b6889ae61797d8a74e2a8d1faa03d720e34cd68a78da2d908e0b0ba226c6144","0xb9EF770B6A5e12E45983C5D80545258aA38F3B78",!1,!1,null,null],["ethereum","0x_project","ZRX",18,"0x Project","304402200ae8634c22762a8ba41d2acb1e068dcce947337c6dd984f13b820d396176952302203306a49d8a6c35b11a61088e1570b3928ca3a0db6bd36f577b5ef87628561ff7","0xE41d2489571d322189246DaFA5ebDe1F4699F498",!1,!1,null,null],["ethereum","0xbitcoin","0XBTC",8,"0xBitcoin","3045022100d949220b51cc2b98bcefb01b9abd4e9bf684bd45e222ca97b865f48dcacf3f5302205b2984ac1c2c35cec627cdea4a88ba36b30f7c092c3c59738c04c2ebf76538bc","0xB6eD7644C69416d67B522e20bC294A9a9B405B31",!1,!1,null,null],["ethereum","0xcert_protocol_token","ZXC",18,"0xcert Protocol Token","3044022011c332f756df9a0198484981e0bfa3120a232ae3787dbf3f5acbb329b47ee5b402204c40da9e1119811a22e7cb45ae09775325a57fd6a506ff152e8f27064720e050","0x83e2BE8d114F9661221384B3a50d24B96a5653F5",!1,!1,null,null],["ethereum","0xmonero","0XMR",18,"0xMonero","30440220544ecf38d2906770446f52557f2dd42b6aa274bc960c808c4dcee42c44e8412202206fab6769ebe15fbfb7245b0156d17e432a1acd9920f1ecbf25729f8d8594af6c","0x035dF12E0F3ac6671126525f1015E47D79dFEDDF",!1,!0,null,null],["ethereum","1-up","1UP",18,"1-UP","3045022100cd4a92ad879d38af50d440612fd1cc7ae05991592bd970801e80b46895487a8602202bc117cab1043b3986e52728a852d420759f227781ef5b9bac0579a7a6990b13","0xC86817249634ac209bc73fCa1712bBd75E37407d",!0,!0,null,null],["ethereum","10set_token","10SET",18,"10Set Token","3045022100c00bbaa95e1420fb4e7a81af51690ea7c8e300c1403bc80d4c3c6205820f965c0220369e0c28b00b40ad86cfffdcaf788a0e0e2cbae823df10e93ba73b7dd2e1b4ef","0x7FF4169a6B5122b664c51c95727d87750eC07c84",!1,!1,null,null],["ethereum","10x_gg","XGG",18,"10x.gg","3044022078654782d8957e00d1c34924b496eb0a13f0873ab799036ed1818793e09b0f970220307101e456cbdf27462a700cfd8816b51340eaeeef1cd7ad38599f3a326d3c0c","0x06B179e292f080871825beD5D722162fD96B4c95",!0,!0,null,null],["ethereum","12ships","TSHP",18,"12Ships","3044022062153e330fe044478e25851e341cf024dcbed2a9d884121cec948b1cf9caec360220386512c361dc73cb91ccfa04e48dc3b70b17148fa4a8cffeb69890de279a6457","0x525794473F7ab5715C81d06d10f52d11cC052804",!0,!1,null,null],["ethereum","14_small_electric_chairs_reversal_series","WRHL1",18,"14 Small Electric Chairs Reversal Series","30440220726ff9f41d4b2c20511cb91109330fcdb4f5c630c03d52fec3ef68c642a8837b022029778899ae572edebf0095d51b100051f6acfce43ed6119f1b29c1acb160cf11","0x4fBc1EdA20Cd8D1f39FCA41f646c317bcE0e13Af",!0,!1,null,null],["ethereum","19","WT",0,"19","3045022100f9fd1071e0ef780008c50c2385d046a167a9150a13d39c1db08ddbf79362201302201145d4b3506323380d1d05869413a35bb55561d05f587782f4b871d9678cbc2b","0xADc2BA7d69DBbf2DA3Fa998321dbD3edc1B60CF5",!1,!1,null,null],["ethereum","1inch_token","1INCH",18,"1INCH Token","304402204623e5f1375c54a446157ae8a739204284cf053634b7abd083dc5f5d2675c4e702206ff94b4c84ba9e93f44065c38d7c92506621fa69ba04f767aa58221de8afbf17","0x111111111117dC0aa78b770fA6A738034120C302",!1,!1,null,null],["ethereum","1inch_token_(vested)","V1INCH",18,"1INCH Token (Vested)","3045022100eb334057c8c628927c6fef2b4efb6c5b63b12ab1d9571e77cfc67a43be01e59d02203d5726a9450610dc3ab9c15ecfb89c8d2c22d6556a6f42fcf72b3152adc93686","0x03d1B1A56708FA298198DD5e23651a29B76a16d2",!1,!1,null,null],["ethereum","1irst","FST",6,"1irst","304402202e2c1788729182a680d9f1ca5fcc00a7dd176155701e9ac4055f80b71e4bfa5a02206cbcd1634796277f852cda36271259d2d89c13f60e15402b1f4e68a6cbd8e381","0x310c93dfc1C5E34CDF51678103f63C41762089CD",!0,!0,null,null],["ethereum","1million_token","1MT",7,"1Million Token","3044022056b40e8cca7e340b97796da621684476fd28d5ac51164b9fb6074389af6f9167022064423c28da975e582a8bfbe04b3929d6407b36fd909f05f0f65522bceb02fc39","0xf0Bc1ae4eF7ffb126A8347D06Ac6f8AdD770e1CE",!1,!1,null,null],["ethereum","1milnft","1MIL",18,"1MILNFT","3045022100e0b51086994255c0d718b72eaf867350efe233815612c9a54be5e9daf1be89b6022029cdcefb7d6dc0893a90acd5bead58331efa8e865a9864e3428a74c137370137","0xa4eF4b0B23C1fc81d3f9ecF93510e64f58A4A016",!1,!1,null,null],["ethereum","1sg","1SG",18,"1SG","3045022100c5efac022fcc17b8ecf41e8b3a243891fa33f69545f3abaff4bcf32a23af69060220599b3f6ac537ba50f357ad398dcf61f3e8c8855ced21bdf953fe517b9ebeb396","0x0F72714B35a366285Df85886A2eE174601292A17",!1,!1,null,null],["ethereum","1stdigital-com-art-ab1","T-AB1",5,"1stDigital-com-art-ab1","3044022035b7dbde2320286b3fafd1f961fb588d748e240526495d017a7a5c79fd0de27f02202a433129b7bf0a9602f75406a85b1ab74bd0ff347f084ea3b8a422dd2a309b19","0x6161f01C3E833c192504840582e935c1632d1B9d",!1,!1,null,null],["ethereum","1wo","1WO",8,"1WO","304402201bcade344900c5fd1b4fcb22731e6a23bf01933a31327abacc1a6c9fe380c13f022004bf0f38380fc448c801490c76ac266a8b356c59ef7fd9727689ef395e2b8fb6","0xfDBc1aDc26F0F8f8606a5d63b7D3a3CD21c22B23",!1,!1,null,null],["ethereum","22x_fund","22X",8,"22x Fund","3044022066ad8629bce43b5aad32c60a5a6ff94fcdf03aa7be6875df6656e6555213d99e022069ca5ff888baa19b4883b363e249fd22f35a9a7c13ced51c6a0bf6d9f4d2ef75","0x0073e5E52E2B4fE218D75d994eE2B3c82f9C87EA",!1,!1,null,null],["ethereum","2based_finance","2BASED",9,"2based.finance","304402202da78f33c41d47bb5868b024f101a2689a6c27726a8b368164fe8ab540569b9d02207fb82dad32637b64cd20e359c4e6db877a4f8c7ed98833a5469d5ecdf227b434","0x168E39f96A653Ce0A456560687241b0B2936E5Ff",!1,!1,null,null],["ethereum","2crazytoken","2CRZ",18,"2CrazyToken","3045022100e4d379a323fbb16fa766bb16e695251019a8933dffb53c29c2406569ac7387b7022056b0c5721bccbff97ad6f1e2c1f071ccd3d00b81d75a04057effcbedd0f556a0","0x2C9C19cE3b15ae77C6d80aEc3C1194Cfd6F7F3fA",!1,!1,null,null],["ethereum","2gt_token","2GT",18,"2GT_token","304402204116cad437eab5078c08e08f0ff2cdae123e70dbaf0a12262b330424448673390220716570860515792e409b7475717b9efb3149040a74e2e4e3589816d4f60a6eb9","0xC96c1609A1a45CcC667B2b7FA6508e29617f7b69",!1,!1,null,null],["ethereum","300_token_sparta","300",18,"300 Token Sparta","30440220233ebfb2ec6a51c2bbe79808d533d8e73ed8d26dac6a019c67e215333ee4f1af02204aa68aed66ac9979b109ed06f810ac7b78a74207ef660eb30612d44508ac2c6f","0xaEc98A708810414878c3BCDF46Aad31dEd4a4557",!0,!1,null,null],["ethereum","300fit_network","FIT",18,"300FIT Network","304402205ef498d1845594a2daaf164859d1a367040056b4dbc118dc7fad42919d78669c02200690b43908210d3cf3709fb8c27960ce10b581676a9c8578b48cf19e5f3829a3","0x3c72fca8523686fd9e5740b0826FA4bB376E0241",!1,!1,null,null],["ethereum","3x_long_stellar_token","XLMBULL",18,"3X Long Stellar Token","3044022002e9f0442bfa4c7885692037098b543087f0e610a6ba06115e386a90c5afbfd50220171e22d81187d089dd53569b693d87a5b8af65377dc04614a5aa1f7d1393af82","0x3a43a04D80F9881d88080bf9fA8bB720AFb6c966",!1,!1,null,null],["ethereum","3x_long_tether_gold_token","XAUTBULL",18,"3X Long Tether Gold Token","304402200cf9f2e55bf2abe2f4e8308ed523248df1010efc2849f85d344720f6d500487c0220649b76b2ae816bcef17d00905a4d3c87d04d8ca0dc715d82ec9b57dde84e89f5","0xc9287623832668432099CEF2FfDEF3CeD14f4315",!1,!1,null,null],["ethereum","3x_long_zcash_token","ZECBULL",18,"3X Long Zcash Token","3044022059d0a5ea1b17a7251a21c78472507b46f7c46989515d2fc02020767323d8428702203f922b31f95c5e783510e6845a54ac5f286cda708c36c6500ac936e2317ced0b","0xD437d88153daEF4784CAcd2084b1d8Cc2D3312B8",!1,!1,null,null],["ethereum","3x_short_stellar_token","XLMBEAR",18,"3X Short Stellar Token","304402202af5b0868d31a66ce0fe939dc7b0fcf7b216ea5779e28839325efddcd476e313022009153c45ad09cf49b52f20e3aeea60c63808c204ea85b436c1cb980fd9d561e0","0x960Efd63aE895F165d874E6cc62501fd0e7Dc50a",!1,!1,null,null],["ethereum","3x_short_tether_gold_token","XAUTBEAR",18,"3X Short Tether Gold Token","304502210083ffad79140e649c3e622c205adec385d2f06eaca905b58d4fc45d8ea625202e02201445ef3d45574f6198b0d61596b16615217ee79bb47d0977d77a9bca5de1e342","0x31CbF205e26Ba63296FdBD254a6b1bE3ED28CE47",!1,!1,null,null],["ethereum","3x_short_zcash_token","ZECBEAR",18,"3X Short Zcash Token","3044022074bcf73d56242543c24f5100e776372a51eef3f49354012cd7d2d75eb97b47980220441a0ef22d86e851577f53d235663cba7ea0fa52f100ce883d74690bbf5233c1","0x78a8c84b4c23563bE4518e7045016D3170130823",!1,!1,null,null],["ethereum","420doge","420DOGE",18,"420DOGE","3045022100af3d0d7b341b914e3e838c87acd0e1b757596069db3fbf38270814d83051399e02202f3b99a722ab7a17639ff931bc6dd4c3fbc720f458a237d51819cc14146ea381","0x0e685b78279D58109e1F6b428caB3fa37Aea8285",!0,!1,null,null],["ethereum","4artcoin","4ART",18,"4ArtCoin","304402207c77e731371d57f0e2f64054495b5011c7abcc31b7d609520fe6af23128c1bd202203d355408bf2688cded1a5cba75dcc0aad6c610230bab12efd9c5dd65b6f42d40","0xFF44b5719f0B77A9951636fc5e69d3a1fc9E7d73",!1,!1,null,null],["ethereum","4artcoin_old","4ART_",18,"4ArtCoin (Old)","3045022100a0de7dafaac42f139a2ed4f4f68abd643b4c1ccbe342eee180f3137ba700feac022011842f9683eba0aa03780e6e9b57226227fc46cbbc329b2efbcb00c4a9ee83a0","0x0944393ABCFc9879cEdc19E070C056F70703f9b8",!0,!0,null,null],["ethereum","4new","KWATT",18,"4NEW","3045022100be1e3708b31a308064d170c82875511f3104736f17d7fbb6e6a9b13697cebecb022073d7a434d5545f1762fd22b1a56865a6a45a10b6cfea7c435f2e79a6348fd398","0x241bA672574A78a3A604CDd0a94429A73a84a324",!1,!1,null,null],["ethereum","502_bad_gateway_token","Z502",0,"502 Bad Gateway Token","3045022100e0e19b9b4ce3954f63f393de4f790c2d227ba21592b26cea9c45013b1e22fb0102206eeff5632866c8ec71507a71eb8a063e39e1277447f8e5dd83057008ebae0c97","0x2cd9324bA13b77554592d453e6364086FbBa446a",!1,!1,null,null],["ethereum","520_token","520T",18,"520 Token","30440220709ac552917b38e7f2dde0ce8117e80a4258c32cf167ecf1f68bf59010ff31a402202951d127369b2c3466978de1f73093c24fc9401a5ab85166c9f636b31c857c29","0x62d75A2a10f755104bd1024d997141ce793Cf585",!1,!1,null,null],["ethereum","6ix9ine_chain","69C",18,"6ix9ine Chain","30440220316a9f22dda762cd492ebf03b23082f063d56260ef9e7522c4f8c6a54db982ec0220029460a7e0fc1d79dc5fc13bb1447679fcf699182e3b845c674cbbc81e954a82","0x02FdD6866333D8Cd8B1ca022d382080698060BC2",!1,!1,null,null],["ethereum","720_minutes","MINUTE",18,"720 Minutes","30440220044189f22c90ad355908ca0b26bbd02b1ee419d873f9535ab4667c5e8661685a022048a02e6fbedb372bd07c6ab703a6081f51feb08e4ab654b682ece272bde4c4ff","0xcDa16f62A8d3127EA0aebfacB221C1CC41b8e488",!1,!1,null,null],["ethereum","7eleven","7E",8,"7ELEVEN","30440220776d4f14365178e17531617d11c04723180d374ac7b3f73c4414e045370a6a0602207ed89c12adb65df4818d2a02aa144c254e5f2d41ae0ec69c029320ac10e49133","0x186a33d4dBcd700086A26188DcB74E69bE463665",!1,!1,null,null],["ethereum","7plus_coin","SV7",18,"7Plus Coin","304402205f5018027f598a9a7b6c168ca7602d4e599dbd024cbea89c9aecedef196007dd02202842acdc0bbca41f9804eeeca91c4c14c54cd01868def85571e5ba2e16c50fde","0x676a32B50e58924eFfad343F1d4d3C8dD0128889",!1,!1,null,null],["ethereum","808ta","808TA",18,"808TA","3045022100b5b96f58abc29bb28e10f360502368ce50a2932ab719f7813628615f48ca633f022045d4f24021bee94419cacef9197e719eed7c37443eac8db7b2d161b8c0c55072","0x5b535EDfA75d7CB706044Da0171204E1c48D00e8",!0,!1,null,null],["ethereum","88mph_app","MPH",18,"88mph.app","30440220144da97ff30e3c6476f5f2e2533958f0b703d6a3d0e439705f21c23c78541c43022035b05f22080fe743030f6008e8f35d0f49283d0fdbcb2f4fad095a96ae3a74a9","0x8888801aF4d980682e47f1A9036e589479e835C5",!1,!1,null,null],["ethereum","8pay_network","8PAY",18,"8PAY Network","3045022100bef1b527b608922c6bf0bda2ab32cac1aba4dc67793c83b8a92bbe6a6657087d0220583dbcac010fb86e69e9617761c4600b0448cea84138f4fc03d46a0efb552ac1","0xFeea0bDd3D07eb6FE305938878C0caDBFa169042",!1,!1,null,null],["ethereum","8x8_protocol","EXE",18,"8X8 Protocol","304502210083236853fc55eb92d925afca38990772926c341e57ee3b0d3df7cc6ea7057b6c02200f02a8b87339969dd909851a7341a07f66286a3e75a99fcbafcee1d84427e8cc","0x412D397DDCa07D753E3E0C61e367fb1b474B3E7D",!0,!1,null,null],["ethereum","90d-lido-steth","90DSTETH",18,"90D-Lido-stETH","304402201733cba53eb18416cb62f7101afe98c25f7c3283cacf2ce114aba76479f522b202207d93ddaee9bb35cf9dfaa26c44d865ce74c969f1ee684278aba59343dbf6ce8f","0x137189D1342AaBE7Cd75B42B265E4647596aaa01",!0,!0,null,null],["ethereum","99starz","STZ",18,"99Starz","3045022100b60d73d1063f476884a9db1ebd456cf681eda49355e0a3e771a5c2cf5b011a67022048cf69904f7b4ecb0bfabef3761020813068bb01a393c2cf77ae474897c8a0c5","0x3f5294DF68F871241c4B18fcF78ebD8Ac18aB654",!1,!1,null,null],["ethereum","[fct]_firmachain_token","FCT",18,"[FCT] FirmaChain Token","3045022100f8b26da9132472bd46771cd72fa5fe6dbe83e0aeafa45cf63d8f0655a296ea2702204fab0454df019023fd9cc7c540090589ddbadfcfe0f7146b85d0eada004cdad0","0xE1bAD922F84b198A08292FB600319300ae32471b",!1,!1,null,null],["ethereum","_injective_protocol","INJ",18," Injective Protocol","304402207879a33e92e7824b26fb27eb39347efa66dce11cd067305e373926fd26c2d79e022069ffbce6e03fb71a28edae59a744cbd67bd92e7061406883d7858d3e87ac3ea4","0x84bFFfFD702d924C6d9b25F87151bf0FB1A8913E",!0,!1,null,null],["ethereum","a2dao_token","ATD",18,"A2DAO Token","3044022053f197ba72f725eeb31237ac90c4ed35876329bd14e43a10eaf5de4dd14a5459022074d80d62b6cea36fb5c2edb4be8ab6daf6968e3cf305f9df28d1f1d3fc140508","0x8052327F1BAF94A9DC8B26b9100f211eE3774f54",!1,!1,null,null],["ethereum","a_hunters_dream","CAW",18,"A Hunters Dream","30440220567bef9edf8d3c4794ffc193e6a4a59eeea06bbda8977b28d4d142250cfde728022067236106faa3d01b77f134477137e3e5f82a9ec6f6c63040e36d8d250507343f","0xf3b9569F82B18aEf890De263B84189bd33EBe452",!1,!1,null,null],["ethereum","aave","AAVE",18,"Aave","304402204245fb63f748566f94a8edab39e33ed27d247ce2becaf77f5b994b25280d469b02202edb2751a47402df19d3e3f37cc2da10045698977f76f8aece49957233ff57f4","0x7Fc66500c84A76Ad7e9c93437bFc5Ac33E2DDaE9",!1,!1,null,null],["ethereum","aave_","LEND",18,"Aave (old)","3045022100892371ef6319d9bd29c325ed903b72e0d11921314823b7cbe517e63ba610cd280220064be727097b50cf2ea14dd36d42d3eff1e0a834ed2e2769eaaa8fc25bbce870","0x80fB784B7eD66730e8b1DBd9820aFD29931aab03",!1,!1,null,null],["ethereum","aave_amm_market_bptbalweth","ABALWETH",18,"Aave AMM Market BptBALWETH","3044022049bf33767ef9caa080c9cc13b86e99bd12e63d9ab204cca52d4656d257b645f302200e27e939e0ced1377947a8dfd86af837ce2f18a9487215356786084048b17e47","0xd109b2A304587569c84308c55465cd9fF0317bFB",!1,!0,null,null],["ethereum","aave_amm_market_bptwbtcweth","AWBTCWETH",18,"Aave AMM Market BptWBTCWETH","30450221008b58d220ce6a9d486c3548c8693206bda8fea67f04825d5c27c07ea9e98ec3a402204f2623f95021772f4fb451eccdb3c598d719297e9e5403a0dbc822283703b7fc","0x358bD0d980E031E23ebA9AA793926857703783BD",!1,!0,null,null],["ethereum","aave_amm_market_dai","AAMMDAI",18,"Aave AMM Market DAI","3045022100a5e1adefaf0a6093a8d4d10bb34fac3e060e000ca3c9fce283a8c8ec6083f74002205db507ad754d119b8a574ffa48d8c550035a8ee73f6c1acd945058702e7d1728","0x79bE75FFC64DD58e66787E4Eae470c8a1FD08ba4",!1,!1,null,null],["ethereum","aave_amm_market_uniaaveweth","AAAVEWETH",18,"Aave AMM Market UniAAVEWETH","3045022100a57e3999f836f1bf6d008dd810c903cf50f049b80ec391d8023fc9246c90d55702207c74947832d14955c727a60778d2a1ee9667bf1f17fbc83227d45c8ec3d73d7d","0xe59d2FF6995a926A574390824a657eEd36801E55",!1,!0,null,null],["ethereum","aave_amm_market_unibatweth","ABATWETH",18,"Aave AMM Market UniBATWETH","30440220788283dadfa2b2d6e5edee710bed10027e545c6240667afb0e144336dbfe4ab502207ef3fc8f22e7d43c8b097bf01eb857f3d7a27f6113ff2342021c57c3e8c436e4","0xA1B0edF4460CC4d8bFAA18Ed871bFF15E5b57Eb4",!1,!0,null,null],["ethereum","aave_amm_market_unicrvweth","ACRVWETH",18,"Aave AMM Market UniCRVWETH","3044022070d078a04f21187e2698ac4ea3279d60445912c2bb1f036f17059496d534b947022053bfb2fcac3fdb2fce8e826a9a28b81f0b4abdad42f814f62a7135c38ce7aa70","0x0ea20e7fFB006d4Cfe84df2F72d8c7bD89247DB0",!1,!0,null,null],["ethereum","aave_amm_market_unidaiusdc","ADAIUSDC",18,"Aave AMM Market UniDAIUSDC","3045022100869096939e1ef11b6be3a08c60b7e0ff04e4742df36a14e2a210ba49f0ba446b02200399fa1ab9c8b578eae8681277e9a1136ba10e8b9b120e0bb5a4a94f7e2aaaae","0xE340B25fE32B1011616bb8EC495A4d503e322177",!1,!0,null,null],["ethereum","aave_amm_market_unidaiweth","ADAIWETH",18,"Aave AMM Market UniDAIWETH","30440220671004ae4495851b6a467b9fb53f3df47bd9ededd2a839a56c2031766edace8c02203ea5783fbe1b5103c379cbacf1490512ce28a77e8299595bec320ff110c84e34","0x9303EabC860a743aABcc3A1629014CaBcc3F8D36",!1,!0,null,null],["ethereum","aave_amm_market_unilinkweth","ALINKWETH",18,"Aave AMM Market UniLINKWETH","30450221008dc106e010f7b2f2491f3193da84551a8f738b3289057413440b514c78d7d75b02203bfdf540bd3eb71d161c4f7600d216fda5e4a654e148c2d45abd1ead2f2f04a1","0xb8db81B84d30E2387de0FF330420A4AAA6688134",!1,!0,null,null],["ethereum","aave_amm_market_unimkrweth","AMKRWETH",18,"Aave AMM Market UniMKRWETH","30440220486fb76022a3b2f2d24efb014ea7938cd99a5eadfa61bfbf66ff2397c857322f0220528666691337764bd0af6cf4826ad0ba2711fae9933bbd1603e0c3e9587982b5","0x370adc71f67f581158Dc56f539dF5F399128Ddf9",!1,!0,null,null],["ethereum","aave_amm_market_unirenweth","ARENWETH",18,"Aave AMM Market UniRENWETH","3044022023c6dfb3424ece10755dd348e6d911971cb62be0dff6f7993b15dd621c8b43ca02206fa70da2c90fe4d1a8f39d99fe9fff116f9cd657d1aa4ab0290bfe555018cbf4","0xA9e201A4e269d6cd5E9F0FcbcB78520cf815878B",!1,!0,null,null],["ethereum","aave_amm_market_unisnxweth","ASNXWETH",18,"Aave AMM Market UniSNXWETH","30440220364e471e87efc33f2bad2eef714dbe50e0c942d07c923bb780190631617d0a7a0220445be40575f110e03139180c3b30869122e4f6b533fd65ac8bd4330a04091fa9","0x38E491A71291CD43E8DE63b7253E482622184894",!1,!0,null,null],["ethereum","aave_amm_market_uniuniweth","AUNIWETH",18,"Aave AMM Market UniUNIWETH","304402202a974f0d7e86b395cf1bd0de7e612531020230ad11cd7ef2d0cd261c293264b802204857c80308e903105010a8d81e1c30bdb5ded7b050fc32ab0fbcd78ef9071394","0x3D26dcd840fCC8e4B2193AcE8A092e4a65832F9f",!1,!0,null,null],["ethereum","aave_amm_market_uniusdcweth","AUSDCWETH",18,"Aave AMM Market UniUSDCWETH","304402200a9c0a89e53425027ed19b91354ee7475e073d4ea7a4b088bc6274cd0cbb45c5022045e4e4fc22aadecfa00c6f927a8c35edbab415a429ac00f381f2bd10be7c18c7","0x391E86e2C002C70dEe155eAceB88F7A3c38f5976",!1,!0,null,null],["ethereum","aave_amm_market_uniwbtcusdc","AWBTCUSDC",18,"Aave AMM Market UniWBTCUSDC","3044022059456b9a9445b40fa2b56654c8ffcd1db7ef0a812a289fe5990b67304ab165e902207ad395931b3621717e7d3a06c2335e515a9830b067674b2d653b104f699b4cc9","0x2365a4890eD8965E564B7E2D27C38Ba67Fec4C6F",!1,!0,null,null],["ethereum","aave_amm_market_uniwbtcweth","AWBTCWETH",18,"Aave AMM Market UniWBTCWETH","3045022100be5ac1a765d4b7f4db02c3ef7fd056e2753edc6ea167494fb6b846c89cd3619302203afb83d7391a3b2cb91bdc24f494a77b6faf42822c2ba94c6e245955de8e7282","0xc58F53A8adff2fB4eb16ED56635772075E2EE123",!1,!0,null,null],["ethereum","aave_amm_market_uniyfiweth","AYFIWETH",18,"Aave AMM Market UniYFIWETH","3045022100d9df36de0460f91c83f56b88d66d291dd1b66e4fafd49da466f91869a25be22c0220781ae0137cecdf3aa0f53b2beb10cb062841899052072806793ecb2b5632750b","0x5394794Be8b6eD5572FCd6b27103F46b5F390E8f",!1,!0,null,null],["ethereum","aave_amm_market_usdc","AAMMUSDC",6,"Aave AMM Market USDC","3045022100e79808b86d6faff60f4bc873ef6b5a7d5116d81d2a9ece56d38662eb36a2b7640220062648e3e8104be3d8f5771bc26fe6886cb39d4a559ced62295e6c6f64b94f91","0xd24946147829DEaA935bE2aD85A3291dbf109c80",!1,!1,null,null],["ethereum","aave_amm_market_usdt","AAMMUSDT",6,"Aave AMM Market USDT","304402207a748e92f6ea5b16872ec33bb1b25a9d558e49bb1ded99f4cb956637051e0fef022011efee057763ba051c84b539b9b5fd08465ef2599d9567dc9970001a76159016","0x17a79792Fe6fE5C95dFE95Fe3fCEE3CAf4fE4Cb7",!1,!1,null,null],["ethereum","aave_amm_market_wbtc","AAMMWBTC",8,"Aave AMM Market WBTC","3045022100bb4a52b2e15e52a4282579acd2998141b88650b1cd22d75ec880d41cd4e5b21f022011f463bdc06627be185f46ebf50233862e5091c7615700a68bb4fcdb099c7657","0x13B2f6928D7204328b0E8E4BCd0379aA06EA21FA",!1,!1,null,null],["ethereum","aave_amm_market_weth","AAMMWETH",18,"Aave AMM Market WETH","304402202d266b4c2aff8054d8d9b3943b4ead5fa481ea1bd0ea5ecc246e8686df99341902202aa344731159ca74bac15a89d1954b186bba050fead5f9997e7e9360eef03e45","0xf9Fb4AD91812b704Ba883B11d2B576E890a6730A",!1,!1,null,null],["ethereum","aave_balance_pool_token","ABPT",18,"Aave Balance Pool Token","30440220412724d1c9b0758d4700476d027b2191c5eeac07c09042259bc969bcb1ac410d022032b0f860bc3010b0f28686c62d82b1200a05a563419db83555e2159450e213ea","0x41A08648C3766F9F9d85598fF102a08f4ef84F84",!1,!1,null,null],["ethereum","aave_interest_bearing_aave_token","AAAVE",18,"Aave Interest bearing Aave Token (old)","3045022100e2c826bd92855d9c3329e525bca7bc4a499fc27f59fed0ef253458d86fa0097e02204e16e02a1aff02b2661ce208074aac90b46355f8375962544786e94ba93d3af2","0xba3D9687Cf50fE253cd2e1cFeEdE1d6787344Ed5",!0,!0,null,null],["ethereum","aave_interest_bearing_aave_v2","AAAVE",18,"Aave interest bearing AAVE v2","304402205bf4a60cf5798a4ac908711d3e40822bdca89436eb7ef6fcf020ac157933f6b102206937df63245959dbf78a40b274dd836537ab78939df5954d2791830b87667c64","0xFFC97d72E13E01096502Cb8Eb52dEe56f74DAD7B",!1,!1,null,null],["ethereum","aave_interest_bearing_bal_v2","ABAL",18,"Aave interest bearing BAL v2","30450221009e103d3307dca38f7ba59aab828142001e39b6a3d0c608cdba3b3d3af1603afb022061b18c03d954f11194c5de4178099b14d74d0bc6ce347e1c2c93af5700b32847","0x272F97b7a56a387aE942350bBC7Df5700f8a4576",!1,!1,null,null],["ethereum","aave_interest_bearing_bat","ABAT",18,"Aave Interest bearing BAT","3045022100ec6da0b3208f2025012ccf036d736ae1625e67a36a99b8a36f532bc30c6aa15c02206585a550dc9221b5f565d429a3b0bdc181e1cacc95fc60c994cee5129028fe05","0xE1BA0FB44CCb0D11b80F92f4f8Ed94CA3fF51D00",!0,!0,null,null],["ethereum","aave_interest_bearing_bat_v2","ABAT",18,"Aave interest bearing BAT v2","30440220149d8576de4d9b395bf88d06b7bc8caefca7bb56ecb9a7b6d1e5707db2f64d1402206595c5de7c19e6be6e169269c34c090dbb88093fe2613b03f242ce8a5313e12f","0x05Ec93c0365baAeAbF7AefFb0972ea7ECdD39CF1",!1,!1,null,null],["ethereum","aave_interest_bearing_binance_usd","ABUSD",18,"Aave Interest bearing Binance USD","304402202ef2ea1c5bec563c630c9ce3c5000363e1aae37f948ef0f85bdaaca80692fb7d0220046c1f573d73e5ce1c597d6a4312bac6266f0563057f8509aba06ad80a817777","0x6Ee0f7BB50a54AB5253dA0667B0Dc2ee526C30a8",!0,!0,null,null],["ethereum","aave_interest_bearing_busd_v2","ABUSD",18,"Aave interest bearing BUSD v2","30440220496b7d3d6f45bb53ccf89738d4bbee1a740662b1b44822390b817e0a68e7a93202200f32d231f63c0ec1093fd8a957b02201f93eee7635d58fe98f29a985567b6aa5","0xA361718326c15715591c299427c62086F69923D9",!1,!1,null,null],["ethereum","aave_interest_bearing_crv_v2","ACRV",18,"Aave interest bearing CRV v2","3045022100e7e4feac536f936721cd258653bcec235cd83e207d4235b7617e0cc1cf66de2c02202dfe1671d77cf81629af90cab7e05e0b8151bd85c4c941755863b1bc7a845a52","0x8dAE6Cb04688C62d939ed9B68d32Bc62e49970b1",!0,!1,null,null],["ethereum","aave_interest_bearing_dai","ADAI",18,"Aave Interest bearing DAI","304402200fb343c62d978f02a71316a4d4845a72e5c6c874fd7fe550ada79ba08825e9d1022018e2f14333d04aa57d0d4eec44ab96c61e2fffc73937c3d538406a437a9dcf37","0xfC1E690f61EFd961294b3e1Ce3313fBD8aa4f85d",!0,!0,null,null],["ethereum","aave_interest_bearing_dai_v2","ADAI",18,"Aave interest bearing DAI v2","304402207923cdb4b9aba434bd43269425157a2650f8722f6568ecd85de402583257a42c02200fb9169ee981f0a950b0d0548bb00e52010642119cb26f3295b1d9f698e676ff","0x028171bCA77440897B824Ca71D1c56caC55b68A3",!1,!1,null,null],["ethereum","aave_interest_bearing_enj","AENJ",18,"Aave Interest bearing ENJ","3045022100ae6d308bc788ac0e0c75feb2cacee7c49e7cacd2669ea6b4b51081980075a7aa022073996a69a0c9945e9f64158f58e9b81c357248c29ef2709efd7ad907000b2cd7","0x712DB54daA836B53Ef1EcBb9c6ba3b9Efb073F40",!0,!0,null,null],["ethereum","aave_interest_bearing_enj_v2","AENJ",18,"Aave interest bearing ENJ v2","3045022100cc39c8f179555ab29cf7d744f700c22a116f996e1c039ab8b3f6ce81043d3aff0220081428134f35a625d621fd06bdb1f018983a0305c059d3712c77e98ece282c33","0xaC6Df26a590F08dcC95D5a4705ae8abbc88509Ef",!1,!1,null,null],["ethereum","aave_interest_bearing_eth","AETH",18,"Aave Interest bearing ETH","3045022100fc447fa8f14fb94ea11aeea52c748999649ae2b9d714694c8b917d84a5219efe022003a85e99de0e26421039071dd9d57f9eb8aa9abe4fa33a59956aa0e0ea53e6fd","0x3a3A65aAb0dd2A17E3F1947bA16138cd37d08c04",!0,!0,null,null],["ethereum","aave_interest_bearing_gusd_v2","AGUSD",2,"Aave interest bearing GUSD v2","304402206dc22f9d5048a24d99d25ff4fd4be2313c7d6654ba196273e18931beccbe294a0220653ed58f8c61d7ba07d2468be4fcdbc0989997e8e34e14d207f84588ba93f59c","0xD37EE7e4f452C6638c96536e68090De8cBcdb583",!1,!1,null,null],["ethereum","aave_interest_bearing_knc","AKNC",18,"Aave Interest bearing KNC","3045022100879f8bb282768382db96973394a855fff84cc028690d04da700c9eb379b5f08b02207ad9db4984f7cec599b3fab3f04cea780eee6376632d232863d84aada58ed16f","0x9D91BE44C06d373a8a226E1f3b146956083803eB",!0,!1,null,null],["ethereum","aave_interest_bearing_knc_v2","AKNC",18,"Aave interest bearing KNC v2","3045022100c5394e64e75dc9a8d038fe68c28dda37d5ed0556b782822f316162f417a61d32022044df938dc8123997120e1547b935ab8868c3cb7496ba4fb01fd53f86502c5525","0x39C6b3e42d6A679d7D776778Fe880BC9487C2EDA",!0,!1,null,null],["ethereum","aave_interest_bearing_lend","ALEND",18,"Aave Interest bearing LEND","304402203b296f3a5f716fe0857b5e8d71bc5030d4a82643c927c687cd15264671e4a055022000b0ae40a29b10a821c16317c45b19ec6a0380dda1070c76c7a4d8957c205ba8","0x7D2D3688Df45Ce7C552E19c27e007673da9204B8",!0,!0,null,null],["ethereum","aave_interest_bearing_link","ALINK",18,"Aave Interest bearing LINK","3044022048093028116fad6820ca0d5770e8e2671adbe4588fb5740b3a837a86fe168efb0220191d8f04446662d2a11ce9a0f39cb97b0c2b69f4349018fd36dbcfd2eb6c176c","0xA64BD6C70Cb9051F6A9ba1F163Fdc07E0DfB5F84",!0,!0,null,null],["ethereum","aave_interest_bearing_link_v2","ALINK",18,"Aave interest bearing LINK v2","3045022100bc66ece6bcf547aaa70d79cc2fbe959bec583fb53378ea23568014ab98c1de79022021fb18456e5077f908e99f0264e8164391e58f27bfb7b23d23cd3ba086fbd3c5","0xa06bC25B5805d5F8d82847D191Cb4Af5A3e873E0",!1,!1,null,null],["ethereum","aave_interest_bearing_mana","AMANA",18,"Aave Interest bearing MANA","3045022100894d3cadc9ee658b374203056831ad6997f943ef5816a10deff253497b04877702204ea3193345270ab42f7ff941b37ef277f49af966bbe30f853d79b3407640cbec","0x6FCE4A401B6B80ACe52baAefE4421Bd188e76F6f",!0,!0,null,null],["ethereum","aave_interest_bearing_mana_v2","AMANA",18,"Aave interest bearing MANA v2","3045022100b23792e0246f4cd32e079bb94d9c0f2920c05ad4b84bd5c5aa94791dc16ab8c702206c56eb0f994f8da7b1bc4d2aac1bb8d8c6ce85808e94c86f2bee15af5333ffac","0xa685a61171bb30d4072B338c80Cb7b2c865c873E",!1,!1,null,null],["ethereum","aave_interest_bearing_mkr","AMKR",18,"Aave Interest bearing MKR","3044022026c184c812ef0c8d6322d2c846d6e33d70b7a0ae672952928145b7872d5f2aa5022056e88beba409495f6df6247b2e367e1006a2e76ca7991889083e0e07ca96a858","0x7deB5e830be29F91E298ba5FF1356BB7f8146998",!0,!0,null,null],["ethereum","aave_interest_bearing_mkr_v2","AMKR",18,"Aave interest bearing MKR v2","3044022032c64070e710707fd3f804b9fccf94a7ef1c60f70a3f563225a2ea95450607de022028a09e9da9a899136f1d097c84b39b62f837cdcb2ebf1bb756f7927faa4ee211","0xc713e5E149D5D0715DcD1c156a020976e7E56B88",!1,!1,null,null],["ethereum","aave_interest_bearing_rai","ARAI",18,"Aave interest bearing RAI","3045022100b4ec33688e87b71ac58188b27c69b8bb1221e0b51c7a6982fe756016eeda078b02203da45fef4246dda0cdcc8e0f2f36cbdc1befced948a23f8899b3b8cc3dd958e6","0xc9BC48c72154ef3e5425641a3c747242112a46AF",!1,!1,null,null],["ethereum","aave_interest_bearing_ren","AREN",18,"Aave Interest bearing REN","30450221008c92e950d70c5d11fa6c5f80a80b8e628370153cadd249ebcf910e82e18b79ab02203e13408fbeb2d9f48e35e9b2710dc0e5d2c5942cc2dac8bfb56f51a506aa0a6b","0x69948cC03f478B95283F7dbf1CE764d0fc7EC54C",!0,!0,null,null],["ethereum","aave_interest_bearing_ren_v2","AREN",18,"Aave interest bearing REN v2","3045022100f4af216850e6e22adbac29d59463d52bb07426e4492d6194c5d543f00d0cfc920220452f388c6fa8ae6ac9558f5104cb3853ccb6479e5c57f9a242e14ada54191807","0xCC12AbE4ff81c9378D670De1b57F8e0Dd228D77a",!1,!1,null,null],["ethereum","aave_interest_bearing_rep","AREP",18,"Aave Interest bearing REP","3044022016bc58ec1739c4f1c195166466c248668f5a97afb63b2c5be921120d9f16b5ba02206f0a26bdd60c87b24dd4acba9fd2970d4bfdc2b2d0abff24e012de9a36df9fe7","0x71010A9D003445aC60C4e6A7017c1E89A477B438",!0,!1,null,null],["ethereum","aave_interest_bearing_snx","ASNX",18,"Aave Interest bearing SNX","3044022024eb5033e8340c20491bcf6c10ea87b4a0f1ffda7a4b71543e20bbc68beee6500220346686bfeede4fd23bbfa9312df0227120383e31c26bb13f8dbe154ca2392935","0x328C4c80BC7aCa0834Db37e6600A6c49E12Da4DE",!0,!0,null,null],["ethereum","aave_interest_bearing_snx_v2","ASNX",18,"Aave interest bearing SNX v2","304402207edbd24a89cf816c487b741d175be1cc22c6beb5e9ce8a32f3d6f319c1802ed402201073072d6080085e08b8b00ab5dd1b5b397a6967de9c464bfedbaaf9f3dc4895","0x35f6B052C598d933D69A4EEC4D04c73A191fE6c2",!1,!1,null,null],["ethereum","aave_interest_bearing_susd","ASUSD",18,"Aave Interest bearing SUSD","304402204b2a37ee78523d1dcb0043a442eb5f27474cfc7554bdd26f4e4015f14b4f0fc90220392e990cba50003b092d659ccd166724d33caa77da82d26519921111ad479e24","0x625aE63000f46200499120B906716420bd059240",!0,!0,null,null],["ethereum","aave_interest_bearing_susd_v2","ASUSD",18,"Aave interest bearing SUSD v2","304402201de8767a97c0a6ba7460dbb8cf4ceb57df077ad804030f52163790d6b11d714b02202da7e7d0b82e81292a7a7611b535ddaff2e328990e5802e44a2982b9743b7024","0x6C5024Cd4F8A59110119C56f8933403A539555EB",!1,!1,null,null],["ethereum","aave_interest_bearing_tusd","ATUSD",18,"Aave Interest bearing TUSD","304402200b60a15c85b0bf8a565eef5ad0fee4171986086129c0a7921fec49e73e6b6e2e02200303559fec4ae69461517750f3fa0d897719c6dd0b14e18c6b7ffa62d3de866f","0x4DA9b813057D04BAef4e5800E36083717b4a0341",!0,!0,null,null],["ethereum","aave_interest_bearing_tusd_v2","ATUSD",18,"Aave interest bearing TUSD v2","3045022100997f4ce53d5e5fd3d9e36b425b1c90569b1ea2d0c0f3ae05be9fde266fb500e802204c7289d65704be3f52d7e1ca648f72cbd26fcfdc8342a4b66c1a560372ce24f5","0x101cc05f4A51C0319f570d5E146a8C625198e636",!1,!1,null,null],["ethereum","aave_interest_bearing_uni_v2","AUNI",18,"Aave interest bearing UNI v2","3045022100c7968bff920da884990fb93d859ab1a9104887a208e75447b96635494417164302202d8b77188b0b58ec0fbe270c92197a0924df8c593d042a997c3582141ebc8962","0xB9D7CB55f463405CDfBe4E90a6D2Df01C2B92BF1",!1,!1,null,null],["ethereum","aave_interest_bearing_unidai","AUNIDAI",18,"Aave Interest bearing UniDAI","3044022056e968b693973b07cca18e7f9063c99db650be391550153c0bea6a63b8db7de902203eb1c1e943aeca73f207bcb39a0c3d18e5985118c3a652effefa290dc9b488f9","0x048930eec73c91B44b0844aEACdEBADC2F2b6efb",!1,!1,null,null],["ethereum","aave_interest_bearing_unidaieth","UDAIETH",18,"Aave Interest bearing UniDAIETH","3045022100d5fab4af182a60efa44f993cab91c204a1ff0049f9c9088819c876be4bf6be6b02204dfc48e04fd0810926af748806c5d55bed6fd6de8d706920526ef2f3a69385b3","0xBbBb7F2aC04484F7F04A2C2C16f20479791BbB44",!1,!0,null,null],["ethereum","aave_interest_bearing_unieth","AUNIETH",18,"Aave Interest bearing UniETH","3045022100d526cf9852ec8db2929e5862999c1d8fb294c1f81ed9a04f60a21e205a29e0da022067d9414560a063b9c7387e2233d6006387ed9fcdbac8c9d6365f9069410b5bb5","0x6179078872605396Ee62960917128F9477a5DdbB",!1,!1,null,null],["ethereum","aave_interest_bearing_unilendeth","ULENDETH",18,"Aave Interest bearing UniLENDETH","304402206549e01a6759c03616ea91b8f074356c13441fc9bca00c05c1dafbef59ecbf32022078ec400988bec07c3131b94fd1d0b01293d489eedb51168486dbb934a4e28190","0xc88ebbf7C523f38Ef3eB8A151273C0F0dA421e63",!1,!0,null,null],["ethereum","aave_interest_bearing_unilinketh","ULINKETH",18,"Aave Interest bearing UniLINKETH","3045022100e93a791e43d971376485c211244defa2ebbb4f77f24b32813b5ce5fd504d0e9a02205c1ddfc28bffefa4ff9e1530ec5355efa396182e969de1254ffa3fca98650c54","0x9548DB8b1cA9b6c757485e7861918b640390169c",!1,!0,null,null],["ethereum","aave_interest_bearing_unimkreth","UMKRETH",18,"Aave Interest bearing UniMKRETH","3045022100f6d2e3b1387015f5e10264f388d5003efdd1a4a3a3e075a5436226fa66fd2e5002206ce49981f4b48b21672e653ad0b4e4f2b49c98870a349c715485e5dfd7f39e94","0x8c69f7A4C9B38F1b48005D216c398Efb2F1Ce3e4",!1,!0,null,null],["ethereum","aave_interest_bearing_unisetheth","USETHETH",18,"Aave Interest bearing UniSETHETH","3045022100d68f3688abdf8bda46b1ed9d2f3f3d52be37e7e9d64f7c3b6e699088ff3297f302202fb82d5a166c41ddf16ecfc4df25888a5e3f110f7c342d71496d293d38e2059f","0x84BBcaB430717ff832c3904fa6515f97fc63C76F",!1,!0,null,null],["ethereum","aave_interest_bearing_uniswap","AUNI",18,"Aave Interest bearing Uniswap","3045022100f960dc6172691254f956013153c1d97bc88af6613f4d0f93f4c12ebdcb07c64202206902205984c8bd90e1b225234a70d14fc2a5aec472ef144e5baf2994e34d9e33","0xB124541127A0A657f056D9Dd06188c4F1b0e5aab",!0,!1,null,null],["ethereum","aave_interest_bearing_uniusdc","AUNIUSDC",6,"Aave Interest bearing UniUSDC","3045022100e29e86de1f4ccfd4acd441d40b1b22add8b9362ca7a1a9a87b34d28fd9392dc602204a62df5a9c87313d7fa6423b7d0f19364008315f4c2baa7bd4da9a4de45b71b8","0xe02b2Ad63eFF3Ac1D5827cBd7AB9DD3DaC4f4AD0",!1,!1,null,null],["ethereum","aave_interest_bearing_uniusdceth","UUSDCETH",18,"Aave Interest bearing UniUSDCETH","3044022038dee7b002dfb51ab07a5e23cc7277732bd16bdc59459e25f875379ff5e4f04802200d781a4844eb8267eca2add2f886c7989acbc96a0ab296f34ed96ce3e725e9b3","0x1D0e53A0e524E3CC92C1f0f33Ae268FfF8D7E7a5",!1,!0,null,null],["ethereum","aave_interest_bearing_uniusdt","AUNIUSDT",6,"Aave Interest bearing UniUSDT","3045022100d27fc24f4abeee497f09b29cf5b6424194c1b3cc28b3aece841a9fdb767942d1022056367c35ad8b362dc404d3fe9841064ac7801ea88e27fbc3fae57435cef22e70","0xb977ee318010A5252774171494a1bCB98E7fab65",!1,!1,null,null],["ethereum","aave_interest_bearing_usdc","AUSDC",6,"Aave Interest bearing USDC","304402205f03a36084f4280a8c29596747a77ffa4263be5edb442114c3b311400733d60f02200fd7a00c5fc48082ed1d4046428c6a9c9254b95746c8a1a7fd0887d19cda480c","0x9bA00D6856a4eDF4665BcA2C2309936572473B7E",!0,!0,null,null],["ethereum","aave_interest_bearing_usdc_v2","AUSDC",6,"Aave interest bearing USDC v2","3045022100b69adc8032d9b2f883b201102e73f7d800ba0e77be2e3fe069d2e4934e93799702206c9e12ce4fae4273015a1ec548b36fe525238b84e4ecae8c01dbb221709bcfda","0xBcca60bB61934080951369a648Fb03DF4F96263C",!1,!1,null,null],["ethereum","aave_interest_bearing_usdt","AUSDT",6,"Aave Interest bearing USDT","304402205a7e6daa5b0e122307ce011208e1e0cd193890c08fdef5f44b98dcd5b5af4b5002204beec7f4de8e7a468731ac3f588da355aeb239fbebc8a2f42d78629e037db1d8","0x71fc860F7D3A592A4a98740e39dB31d25db65ae8",!0,!0,null,null],["ethereum","aave_interest_bearing_usdt_v2","AUSDT",6,"Aave interest bearing USDT v2","3045022100fcba7a047a8391811b8ef21be093e15ce8f6b854b5dbb243e58933b00e180e59022014bc4616cf2bd43f05a049cf50b4df109b231a17a9bff9b6977971e240119d63","0x3Ed3B47Dd13EC9a98b44e6204A523E766B225811",!1,!1,null,null],["ethereum","aave_interest_bearing_wbtc","AWBTC",8,"Aave Interest bearing WBTC","3045022100866a3fd6dbbbfc61c9e53d830aaa73a197198defa06ecd8510e0697cb378927102202c2069bcb01637f0c46094cc4ebe767e92eb375dd3ee922267d016977ad983a9","0xFC4B8ED459e00e5400be803A9BB3954234FD50e3",!0,!0,null,null],["ethereum","aave_interest_bearing_wbtc_v2","AWBTC",8,"Aave interest bearing WBTC v2","304402204dae41cc77377f18e0390fbb9679ff4b0926e64adc65efb8511bf404c44552f8022043fd78130f08557f8e802973d9d840ad318ee817661be27b0e88479edf9f6a6b","0x9ff58f4fFB29fA2266Ab25e75e2A8b3503311656",!1,!1,null,null],["ethereum","aave_interest_bearing_weth_v2","AWETH",18,"Aave interest bearing WETH v2","30450221008f7ea67543019e9247f6f684e9c7ca8977bd349775000e4604cd6a7dd60249f7022037c5743bb935b4f1d45f8c68e571eada2b469a622c058ce32849cd05c81485d4","0x030bA81f1c18d280636F32af80b9AAd02Cf0854e",!1,!1,null,null],["ethereum","aave_interest_bearing_xsushi_v2","AXSUSHI",18,"Aave interest bearing XSUSHI v2","304402206b9b0615f11f2329f726c94f2fe0164d966fb56e49826d2f4a71b7ea1d1bc88f022018cce1f20bacfc9ad3449279aa58131cda8d776911cbcadea550d6dcb89e0457","0xF256CC7847E919FAc9B808cC216cAc87CCF2f47a",!1,!1,null,null],["ethereum","aave_interest_bearing_yfi","AYFI",18,"Aave Interest bearing YFI","3045022100da5a5903bc03a4d8a99e8cccf744ff6c16ae54c109fd8bee1e249d722b38705d02206f28c270805358f1c1eb0c1b4fd255fbc8febb23dc356ffd318b428e95bcdc8a","0x12e51E77DAAA58aA0E9247db7510Ea4B46F9bEAd",!0,!0,null,null],["ethereum","aave_interest_bearing_yfi_v2","AYFI",18,"Aave interest bearing YFI v2","30440220288529411d2b5fdd830f4ec363aad2c66f01c83faa7b78ed9971fb3e23b4b34e022072c8792d2c3d4a4042296b75e93e03c2b17145aa3c1d31f6c7adfaa894b0876e","0x5165d24277cD063F5ac44Efd447B27025e888f37",!1,!1,null,null],["ethereum","aave_interest_bearing_zrx","AZRX",18,"Aave Interest bearing ZRX","304402205139c33245c237d80c3eb5cb52a6b02b3a127cf8d6769fd93805561fa5a9f3a902201f5c3a3da6ab47f6962da77a834725919143e5d8eaa6cc3d963dbdde7c431e8d","0x6Fb0855c404E09c47C3fBCA25f08d4E41f9F062f",!1,!1,null,null],["ethereum","aave_interest_bearing_zrx_v2","AZRX",18,"Aave interest bearing ZRX v2","3045022100d70a712e1039f6c5640f942a2c90f51db55870c4a4195fd6cd851db5514860b90220795fef9d6b6d53de31f879971a0ad63952e664599aba0b0044d1bcf20e5c4b9e","0xDf7FF54aAcAcbFf42dfe29DD6144A69b629f8C9e",!0,!1,null,null],["ethereum","aavegotchi_aastronauts","UGOTCHI",18,"Aavegotchi Aastronauts","3045022100e1eea29d07ea4a27ead71b0afd02ee492ca0e2a8426ce021a1c92986bb03816b022069d62edecf1fd3d6edf4683f70122fa23dab5d4f6cdaa6aebc9f2f9ba91c73ee","0x30C2a84AeD6Db30E31cf4d7059b1836c12c68068",!1,!1,null,null],["ethereum","aavegotchi_ghst_token","GHST",18,"Aavegotchi GHST Token","3044022004965e07609f662eda2f76b11e64cc19d24f3ede3a5168f0e18cb7fc357b8d7e022046cb9fe9e7f5cbeea84705234ccd5994c40f0e772ce17b95a93ede60d8a51a3e","0x3F382DbD960E3a9bbCeaE22651E88158d2791550",!0,!0,null,null],["ethereum","aax_token","AAB",18,"AAX Token","3045022100e77cf0989493eaab1ddb9b7ce297a95f29f86a41ac256494862f47e4edb0708502201930e7fb11e7cf814a379b31ef4de819fee5d07bd83e8dffc6a4ee35301e9eed","0x686C650dbcFEaa75D09B883621Ad810F5952bD5d",!1,!1,null,null],["ethereum","ab_chain_rtb_token","RTB",18,"AB-CHAIN RTB Token","304402206807836ede2112eb1eb06d41958e126a910c53de0c2e03879d13a3ea00aa236c022003aee6c6e54495d5758b126c6b89399b15f321fa3ed9b36d1d0d39b9bf87b11e","0xEC491c1088Eae992B7A214efB0a266AD0927A72A",!1,!1,null,null],["ethereum","abbc_cash","ABCH",18,"ABBC Cash","304402204138dd524ff42d073c974858d8cb33771577dd75d1d50b57acb335cfacf016250220025cfba200e8c19d5e6c9b9846a608ced274eba70bc06e05c2160290ef4583d2","0xcc7d26D8eA6281BB363C8448515F2C61F7BC19F0",!1,!1,null,null],["ethereum","abcc_token","AT",18,"ABCC Token","3045022100d8485a47a04d5631185a07f92c4dc95cc0a1a3e56c20f36bce1544285bcd4c83022036ee23f49fb6e846527e417831450b356cc12d626b26a07cc39200a0e51e9f67","0xbf8fB919A8bbF28e590852AeF2D284494eBC0657",!0,!0,null,null],["ethereum","abitshadow_token","ABST",8,"abitshadow Token","3045022100e13a3f6ea02a1f0cd46b0798d39487b463a81caa2ace2d40e8eb3c3780e1049d0220562c6a36ebde103286e464aef702b3b4207bb55541f24c6ab5ab590097413625","0xa0B207103F764A920b4AF9e691F5bd956DE14DED",!1,!1,null,null],["ethereum","abx_token","ABX",18,"ABX Token","304402205fcd5f258afd5a93c8ee38b960d5c5d04a4711b220714e5d8c7ba5cde3684f84022002222fe4061c409ac4864fa5eaf22f063a623060c236689847cabbe0d1740796","0x9a794Dc1939F1d78fa48613b89B8f9d0A20dA00E",!1,!1,null,null],["ethereum","abyss","ABYSS",18,"ABYSS","3045022100c23c55afb9f3dc88d9f60d16c4a82d42a0dbfe58e71c7ef63afe4c9e4b74dc2a02204855187b1068aacb5da3e5db1f2dd62c17c09acef9dec20e5ea7a8624952a6ca","0x0E8d6b471e332F140e7d9dbB99E5E3822F728DA6",!1,!1,null,null],["ethereum","ac_exchange_token","ACXT",18,"AC eXchange Token","3045022100d3d495336fe9d267cb46e34d995c8feef4715c260ea9cdc4041eaa5447cd3f8f022002055657f3eee53f570dd7e982cc2ab3d31c2577b81b2f69b5b93e0fc236bd83","0x7bE00ed6796B21656732E8f739Fc1b8F1C53DA0D",!1,!1,null,null],["ethereum","acab_token","ACAB",9,"ACAB Token","3043021f762b04279d68fb58a776eee30f3f623afb9d3d6089a9ad2f3d535aa68a6a4b02204f5f047b492ff3c04ba4dbbc1440249ff2f8b6c7f01020dc5c2b410df3d37477","0xF754620784E797f3681F9f295b2528455D2fC0d0",!0,!1,null,null],["ethereum","acash_coin","ACA",8,"Acash Coin","30440220636944b3c6cc26a022a38ef17f17f96b93f79dcb225773f2f8bee659102ac4140220424a354fe4f7c34a3d8cda96358d9fd804a5520372bf10b8183af492a2988b0b","0x63d958D765F5bd88efDbD8Afd32445393b24907f",!1,!1,null,null],["ethereum","accel","ACCEL",18,"ACCEL","304402207925e4280bb602e5eef1baa728e54dd99a285706319c57440000b25bc0c5a19d022039e8402dd2d0fcafcd8bbefaa89cc3ca60c29be6d32a07d37a66e1492a707dba","0x7475C42f8BF2c19F4EAF12fEaabaBA859fdC8914",!1,!1,null,null],["ethereum","accelerator_network","ACC",18,"Accelerator Network","30440220729e044d129b7f73f639eafe402dd6ce0c9ac07281e299f69c890ec35f16885402206e56cc21abba1b637c73096fbbd53218da6e0fecadee9bc7f4d00424cf4b4c5d","0x13F1b7FDFbE1fc66676D56483e21B1ecb40b58E2",!1,!1,null,null],["ethereum","accord","ARD",18,"Accord","3045022100fe1c9c878e7f32bde1e29467e642f61a620fdce5a9d1b7f014ad92e8a634bd0102202cf1db37c90138a2699b40f04ca9e1e69e15e0c03ec06eb968a5fb472746b420","0x75Aa7B0d02532f3833b66c7f0Ad35376d373ddF8",!1,!1,null,null],["ethereum","acd","ACD",18,"ACD","30440220300d28e0e796c96e3453a10be27b118034ce4d27fb9489661d73861e64f3db10022071b6a62d12f1c02407f5b634d5244ab2c4256919d91c1d0421f942460b60d539","0xe45Fc4290fd3159588f532058592Ea327d2e97D4",!1,!1,null,null],["ethereum","ace","ACE",0,"ACE","304402202596f8d00dd4da2651b8857de22038f532308f4c9a995da74214688408553d410220506bcf4c94923c6b6808215a004f184de7903d82856422f395741f8ccc89b056","0x06147110022B768BA8F99A8f385df11a151A9cc8",!0,!1,null,null],["ethereum","ace_entertainment_token","ACE",6,"ACE Entertainment Token","304402207a902ef507e3fb8baf21765c73079e8f73cdf0abb7401ec6ce72c97b9ce2a72e0220248604b7d687c5511eeb5d5f64d28694f00f80c62401b0d76892c7cbe7aab8a8","0xe17e41ACD4caa3CeC048837bfd1918b3c4141767",!0,!0,null,null],["ethereum","acent","ACE",18,"ACENT","3045022100b707803f65596999a6ad2e9caca199cea5214fbb23e39517f0edc8d4196be97702204393f7a07550f776d0705b999a5e9ee79ef8151ec4f23a7a6ea53978434e9b1c","0xeC5483804e637D45cDe22Fa0869656B64b5AB1ab",!1,!1,null,null],["ethereum","acoconut","AC",18,"ACoconut","3044022066e049969a4c8c75586634765270ad2bb6d81e4e5e4145f82fd967cebf0fb49e022060f29d090c1fe6106d1edbf36bfeffd8c0a01e888dd0bf998fb78cb6f6af5cc7","0x9A0aBA393aac4dFbFf4333B06c407458002C6183",!1,!1,null,null],["ethereum","acquirefi","ACQ",18,"AcquireFi","3045022100ae6e0c571732f0b4f40429816f4a9c0356af7d95ee2b8f8b7269ff436987ebc8022032f72a8598bf950857489d29d1efd5688bd489fbe8c488bee6cefb7392fe71f8","0x4BDCb66B968060D9390C1D12bd29734496205581",!1,!1,null,null],["ethereum","acreage","ACR",18,"Acreage","3045022100d19968a686d65a1b3b4e43e74649ec00e4d41992b96d788f905b19acbf26be0a022075bfc5650343d51bfb49673b28ce3b9b8c6dd8a1404ec0f7acd9bccead1d5fd9","0x76306F029f8F99EFFE509534037Ba7030999E3CF",!1,!1,null,null],["ethereum","acria_token","ACRIA",18,"Acria Token","3045022100da4ef94c58de30ded9676b3302d1e4aaeaa94ce3ead01902a23b1c04cb8f5b62022016137509a3b696f02e0868092a76f053cbe811c130e9d8b0ae6bef77fe7901c3","0x44F5909E97E1CBf5FBbDF0FC92FD83cde5d5c58A",!1,!1,null,null],["ethereum","acuteanglecoin","AAC",5,"AcuteAngleCoin","30440220424b3a016e8ec52a184297dab5cafb89003cb0d0512d46d72bf4509eddabf0a802202849fae36902c619f7e9bb86bb3c29f8466fef2a779ec1577714006259028e98","0xe75ad3aAB14E4B0dF8c5da4286608DaBb21Bd864",!1,!1,null,null],["ethereum","ad_flex","ADF",18,"Ad Flex","30450221009b3c208eb8fc96053fc2fbee4068c51f0c4540b42f672d73267e4faa211b2393022013aeda26b658cd1418c7a089820173b5e6c90eaab9b35f46dbc5b95239700b92","0x7220e92D418E2EB59D0C25d195FA004bfD3aFC42",!1,!1,null,null],["ethereum","adabear","ADABEAR",18,"ADABEAR","304402200e0fece520c14e2efbfa2981c35a9a3966a89fd724a386d830bf740daf67e0f902203d466448f4f31e73e4dcc9f287cb2acd627d89e3ff6f436b0f0f4bf6eb4992f9","0xb3299d4BaB93Bf04d5b11bc49CD6DFAD1f77d23f",!0,!0,null,null],["ethereum","adabull","ADABULL",18,"ADABULL","3045022100c014d4f9eb0eb908c240e9ae05b5d51f8bd225b49fc90a1ff5c3d046061714a902201024929637189a8f99ea5537a2ba7f51bfd1382de91a8c4edbacde15314aea2d","0x43dE1145Cd22f0a9Cc99e51c205e6e81161Df6B9",!0,!0,null,null],["ethereum","adappter_token","ADP",18,"Adappter Token","304402201d1188a466eafff48fee62c1fa86c1eb6ebaa143a796621fbcd5a277135bfb050220770d7a9320b8462a29f93a72817529f10a4b7ab58ec573eeb9c6f0832552e99a","0xc314b0E758D5FF74f63e307A86EbfE183C95767b",!1,!1,null,null],["ethereum","adbank","ADB",18,"AdBank","304402203c703f814f35b62b3f3fb1aa1746b66f179dac87827d53c2f8b149da24485b5502201059730910fd7b070f68b2a525dda8f680ab5a252dec1b206b0511a999e5bf26","0x2baac9330Cf9aC479D819195794d79AD0c7616e3",!1,!1,null,null],["ethereum","add","ADD",18,"ADD","304502210099228ce74e24c3cdadf65a69f530ccd3bd23399b7bc2e9ef0f8412be4432eff102201b3290ecdef88d72887d8a8434ac19ceb93645458828e41fcdaabeeb3384202a","0x635d081fD8F6670135D8a3640E2cF78220787d56",!1,!1,null,null],["ethereum","adelphoi","ADL",18,"Adelphoi","3045022100c31649628fe3f7ee61b8241afeceaecb0ccaed7ef8e274fc3153851b219f786a022029f3e125108b51dd9922aeca9fc1f1c02b68b29d7cd9c7792115a2ee376748fd","0x660e71483785f66133548B10f6926dC332b06e61",!1,!1,null,null],["ethereum","adex_network","ADX",18,"AdEx Network","3045022100a5b46c1dd5aeb398198c390e7908d1c6433b3a740b1646d9fbbbc6f312059a9f02201ea61a08d523b3b8f918cf90df9196e58593edb0915987ee5086c9f26b80f255","0xADE00C28244d5CE17D72E40330B1c318cD12B7c3",!1,!1,null,null],["ethereum","adex_network_","ADX",4,"AdEx Network (Old)","3044022014d4c6073eef85d9703d1871e70fb2013e6c74024d94a67fcfb2c06ecafedcfb022048224ae351302b922180b7186a8f23563a15c68f44e3d47ab838ee8f79c7f5f6","0x4470BB87d77b963A013DB939BE332f927f2b992e",!0,!0,null,null],["ethereum","adhive_token","ADH",18,"AdHive Token","3045022100bbf05039fc844a6ba6877f654fbbadd82991f6e3d25d9b2b81923ee2567566d50220788a7f74b695b38c742509c7d7e07418a272575b2e40a5c1a550555184e9a8a3","0xE69a353b3152Dd7b706ff7dD40fe1d18b7802d31",!1,!1,null,null],["ethereum","aditus","ADI",18,"Aditus","3045022100c7c4c6604c7f5ae9d50eb86d6f70eabaab17cc99e41916fddc22c3d025f27eb00220494c36500ccc27576b5f2d94efb6c27a019d8751812eeef7724060051d646249","0x8810C63470d38639954c6B41AaC545848C46484a",!1,!1,null,null],["ethereum","adora","ARA",18,"Adora","304502210082ad10ac811bdedc7e9410f1e4effed53c3e42cfd99ddf4891d172b0b21f9c2802203f2fd1e4d19ba08ab393197be0984ba81caec39832e6776ea053a13a7658be8c","0x9Ac5C63dDcb93612E316ab31dFc8192bC8961988",!0,!0,null,null],["ethereum","adshares","ADST",0,"AdShares","3044022054e809c4e3d28934e76fb1970d377813b3ae0934264529c82a31bcd9e5af7d25022045b1f412833a135a725d767d7e32180f4df3475f7028957e5f14ee4df59b33c7","0x422866a8F0b032c5cf1DfBDEf31A20F4509562b0",!1,!1,null,null],["ethereum","adshares_","ADS",11,"Adshares","3045022100af648cb8f799afa1aa663e29a83dcaaa01a445b302513165e4f6e98852a19e7702200ac91572f5f87300fe0a02ed9e440e4d0fa4a5bab08105a2470a400985d4fbdb","0xcfcEcFe2bD2FED07A9145222E8a7ad9Cf1Ccd22A",!0,!0,null,null],["ethereum","adtoken","ADT",9,"AdToken","30440220770c11c06e9cc4c2c0942f9696959daf0a70d6529655f2b5e5cd07306ab9801902200c66f942309947fc2ee163beab246573e974549bc01603bba0b3a72ab04e379d","0xD0D6D6C5Fe4a677D343cC433536BB717bAe167dD",!1,!1,null,null],["ethereum","adventure","TWA",18,"Adventure","30450221009d544715cf9505ef36c980e7eee53653dd9a72c8753fa0c663dca64464688b8602202af36d52b607b38f47a1e7e7e832c26009befe89cff1868685da9f57fbca3ea9","0xa2EF2757D2eD560c9e3758D1946d7bcccBD5A7fe",!1,!1,null,null],["ethereum","adventure_gold","AGLD",18,"Adventure Gold","3044022008561049999b70b3c04fc7f0f55ddcbc2462beb926defd14fdd9169fd75c7bbf022035c7fa45cf9eee1c8198b847e95cedb1f8506e96cd3726b8a7c236294c5998c7","0x32353A6C91143bfd6C7d363B546e62a9A2489A20",!1,!1,null,null],["ethereum","advertise_coin","ADCO",6,"Advertise Coin","3045022100f293d87da54c96290d37e9e31d68febd0bcd93f0b413cf5f5ee46eb26bf36f2f022046a7e313060faa86006a9588ca0e34a2b954aa583e87c01daeffd378710c4f66","0xB6c3DC857845a713d3531cea5ac546F6767992F4",!1,!1,null,null],["ethereum","aegis","AGS",8,"Aegis","3044022001bf793f402b212a6a6995bc73744241ee079f84bb2c6e8ed8197da09c46197b022003a093a482d8829a07c1b65eb9d3d008f65dcf826819bfeec31ecb5b89205630","0xdB2F2bCCe3efa95EDA95a233aF45F3e0d4f00e2A",!0,!1,null,null],["ethereum","aelysir","AEL",18,"Aelysir","30440220731b1002820d389a0ec39ce7a9d074e779a7b44bbaa77f12a5f704ee4044674a022023977e714628f806ef9c1faaa681ab8bfb4f3dba97b3b6e218cc1d5f5f245176","0xd337382da15d12Bb6e56498e91DF64f86c8f1EA8",!1,!1,null,null],["ethereum","aen_smart_token","AENS",8,"AEN Smart Token","3045022100cbc5b84ec80cafadf241aca72092295a0bc6a501923ece42e97dab5eec06541c02205b8b691f7b87450846a7e4b28d1e79a8ec54f22c1ee44228f0b050aebcbf2bff","0xD38dE88687172BDE440755b5237987e4A87c23A7",!1,!1,null,null],["ethereum","aergo","AERGO",18,"Aergo","3045022100c82004097c26f6a9737db1a0260560a62978d23704688fa46d43dfd8e739ea1302207576f5b5441202ad343d6536d4e9dd13740c54df81f2b4fc919e9740dda6b7d2","0x91Af0fBB28ABA7E31403Cb457106Ce79397FD4E6",!1,!1,null,null],["ethereum","aergo_","AERGO",18,"Aergo (old)","3045022100dc14bf3a6a52d8c966d814f3564a472d392647f789820400b9ca65210d6b08cb02203d2c0ae0a768589366aba3bdb48c6922ddb503ed296b80f6677bfe7e1c6bebfb","0xAE31b85Bfe62747d0836B82608B4830361a3d37a",!0,!0,null,null],["ethereum","aeron","ARNX",18,"Aeron","304402203c14eff72f80a2e47a470edc9cba5244dbc57e722fa26740d6fe9b62b34885850220214a2b7b11a0bf714fdf90eac24f95b06fe021aba94e8e016fa40284789e13f8","0x0C37Bcf456bC661C14D596683325623076D7e283",!1,!1,null,null],["ethereum","aeron_token","ARN",8,"Aeron Token","304402203b5edb3339b0a2cdf45048f3f0978c91460e6e742db77ed647c7b409aa9cd0e50220706d746e408c5e658ad79ef5718da0110b9542889bb7347a942aaadbb5624578","0xBA5F11b16B155792Cf3B2E6880E8706859A8AEB6",!1,!1,null,null],["ethereum","aerotoken","AET",18,"AeroToken","304402202f0b88bc42ad4237a47d56ae1a7208d8815665e57478b4fe1e55b4b552b563bf02206e2a18bf156ec3cb66cb825a7ec875397fa970ff7c9fbbc84796f1fcf0c1bbb4","0x8c9E4CF756b9d01D791b95bc2D0913EF2Bf03784",!1,!1,null,null],["ethereum","aeternity","AE",18,"aeternity","3045022100976d5634477b79571ecdcae0b1a3b0ef45a5d5b649c919e3016db26fbc26810102207cfc389576ed84d389e1965033a8a2d8285c6b83598621688b2b152d9195df12","0x5CA9a71B1d01849C0a95490Cc00559717fCF0D1d",!0,!0,null,null],["ethereum","afc","AFC",18,"AFC","3044022061ea0d5c3949e86d3a545732f5bb7eb6aa43c49ea5cef537d07d957f134fe08102204eff4990e3d9125511a32ee36ca39fe06cbe3cd43485dec7729e2cb1d6d72669","0x14dfFD4F515d4c43493C6c512c78fbC59a8aF254",!0,!1,null,null],["ethereum","africa_to_mars","ATM",18,"Africa To Mars","3045022100b00ae1482241e57eb0213c9f18b4a1e5bcc6d2a1f31d41017f3402ed39e9849702202292458a149a31a7638fd0d4ec2cb42f37389f8d01991eab30343b461d711d6c","0x9B91Ef0d78488C5eF4C509eb7A73F7d8Ca650cE4",!1,!1,null,null],["ethereum","afrodex","AFROX",4,"AfroDex","3045022100a26a66f03779c111830f5e5f386e45e54ba94f8d15abbf87432beff0f67ebd8a0220244fb14a6757b607477b33cfb228786f40e1a518d002f9c783cd80059e130e50","0x08130635368AA28b217a4dfb68E1bF8dC525621C",!1,!1,null,null],["ethereum","afrodex_labs_token","AFDLT",4,"AfroDex Labs Token","3044022056cb511cbb1e7b5af68b15bdc7f49f8e816e6a351a678f6c642ce252b34cdfbb022012c26b5d27ee5d424b59ac2674a48cc6cf24dc75749e4ef829a61a37db45c404","0xD8a8843b0a5aba6B030E92B3F4d669FaD8A5BE50",!1,!1,null,null],["ethereum","afterbacktoken_com","AFTRBCK",18,"AfterBackToken.Com","304402201d35324a601c7c28b4c892dc30b7ce046ea441eae292a2c7969fe322be0e507002203355cbb7aadc7eb567dde9512205b84c614a8081d2934b2c081083ccedffe6ae","0x0eACa6eC24e461F76C4Da385571336f954c9652A",!1,!0,null,null],["ethereum","afterburntoken_com","AFTRBRN",9,"AfterBurnToken.Com","3044022026015079af5fb1198aed0a7f2afceeeb6297bcf28cccfd041c64aa5696fb430b02201c6203b4b34e9707e9654c9be5cd622a2733b63301535f51307cabcf16e9e667","0xD63A82EefbDC21ED0Da37922d61178A05E026109",!1,!0,null,null],["ethereum","aga_rewards","AGAR",8,"AGA Rewards","30440220324eb80a338105e11499a4737e215518eaf75d8924b35ea8696efebb5381df55022017cd52c3e45ba6ea1356fda9a439f3023a4ad3101932a9f19e75bc836887ebbe","0xb453f1f2EE776dAF2586501361c457dB70e1ca0F",!1,!1,null,null],["ethereum","aga_token","AGA",4,"AGA Token","3045022100c7b9702c90cb07733eca0f0be444a7305bba44a70ec1a8cf52a09cd8202e4bae02206be739695619c7c0e47b0513570b4b58c2f8272360c6da13eb93de4d22bed467","0x2D80f5F5328FdcB6ECeb7Cacf5DD8AEDaEC94e20",!1,!1,null,null],["ethereum","agavecoin","AGVC",18,"AgaveCoin","304402205e06feb179dafc5d52682dcf112497717e32fc43a4a04d93c32f6dfa9740799f022076695a5df1200f8e8c9974709302b6a03f15b300c94a2bc699a853046e812359","0x8b79656FC38a04044E495e22fAD747126ca305C4",!1,!1,null,null],["ethereum","ageur","AGEUR",18,"agEUR","3045022100b201cf268e1ace29ebabd54f440f00dcfed86880bbd40f90bbd88a85854b79f30220221530e77f650812a3bda9b1e46cd1afd31a44e58008e2460f78356ef04d7957","0x1a7e4e63778B4f12a199C062f3eFdD288afCBce8",!1,!1,null,null],["ethereum","aggregator","AGGT",18,"Aggregator","3045022100e29706d3ef000eb1b12ee873c675f87f796f654870462d57308620dadd9c1f9a02201686971170fa82b0352d1200b304f4fafd9d0d781eab680fb06098da4d09ebd8","0x8028a34ec63678bCB64325F805449beba98C28a8",!1,!1,null,null],["ethereum","agoras_token","AGRS",8,"Agoras Token","30440220222db4290914c1334f601f42cbe568766eaf5c5a8aeb690369baa133b7220b1e02204928a79e2e94637fae3d6d7d0c0ba2e19511f61956fc16e72ccdccd725b6bd02","0x738865301A9b7Dd80Dc3666dD48cF034ec42bdDa",!1,!1,null,null],["ethereum","agpc","AGPC",18,"AGPC","30450221008c496528cde38516e8e591a1e6ccd5dd70a4567f7c2cd32566d944735c45a53e022054e67ec16d273fbfc1a3cc862babd3d464fa8945beae63e948d7f2de3134e47e","0x19fdC290974B574065Ff8db4303a0b76AECf223E",!1,!1,null,null],["ethereum","agrello","DLT",18,"Agrello","30440220366ffaf6e75df4b7356327c0f6371f71e457f5416431c599c1ae84ea1a93396e022020fd9ab862ef225896aeb636113f5c3dbbdf40caeab14e0ac1a8cbd1e6babb5c","0x07e3c70653548B04f0A75970C1F81B4CBbFB606f",!1,!1,null,null],["ethereum","agrolot_token","AGLT",18,"Agrolot Token","304402205343f633d01bac8615347c80ecab48625fa6179ecb842965fca54c4742ffd1f3022035980ba800016c8c92385c9452ba3041b721d3dabd2ece17c09964218741b689","0x72c9Fb7ED19D3ce51cea5C56B3e023cd918baaDf",!1,!1,null,null],["ethereum","agtechtoken","AGT",8,"AgTechToken","3045022100f7465965b0fc0cb5fdac850bc35490dd67f012a65069cc2b7d8414b4522c8878022014e89fa9c0969a04072ce719ad9f3d46e1c3e932dc04f6f1ddbf462e877577ed","0x8D2FAb1ff34f1c545673a816f1438B02D0a2E32D",!1,!1,null,null],["ethereum","ai_doctor","AIDOC",18,"AI Doctor","3044022051b866ea6aceadc1bd979a86be6cc1b3785d85ebb7acf3f06dc93763168d9bec0220531614c671adf318126e73e17cf43f5a852f650cbdf004ce59d1f7d56093bc12","0x584B44853680ee34a0F337B712a8f66d816dF151",!1,!1,null,null],["ethereum","ai_network","AIN",18,"AI Network","3044022058059705f8ca7a63d3d32b273ca0ea615f1d69f16589819bb246ff1a3a9c2f0a022060be9c07c7598b206720a4df48726eaa72862394c2de8344d9960969107b065b","0x3A810ff7211b40c4fA76205a14efe161615d0385",!1,!1,null,null],["ethereum","aicoin","XAI",8,"AICoin","3044022032ec8e8297b85d942bce6df33f4ba5934851807db9dcb060c132431a8a53ba8402203c9df394c9bcc2a79c52a040f13610b1995bd0237249e7f58ce4fd7053997c57","0x268b7976e94e84a48bf8B2B57Ba34b59eD836A74",!0,!0,null,null],["ethereum","aicon","AICO",8,"AICON","3044022018ab81dd8b1f23cb45324f5425b2cbcd8e492b01f110ed66a13fc15b9119eb660220362eada1172a77596c43a7e0b063dea80480a8b2d2b7951608cc91d34367af8a","0xE7FB3559358A99df54466d0350e4aD6DC7093da3",!1,!1,null,null],["ethereum","aidcoin","AID",18,"AidCoin","3045022100e68b59b8935e0c6dd1ed266b75cbf73fba6adb7109678e1e1e80bfe04473db3002207034d7973f2c7f9838b08560e40e4a81929d80b2e02144d13297f52399af7594","0x37E8789bB9996CaC9156cD5F5Fd32599E6b91289",!1,!1,null,null],["ethereum","aidi_inu","AIDI",9,"Aidi Inu","3045022100d54c64e7a44ebe7b2bc4b021627d4c12e0abb7acbc874c6826ea693a0ba7b4ac0220758ea2d28a938b9662228604faf64518de913b8cb066fcd1217db32997771993","0xdA1E53E088023Fe4D1DC5a418581748f52CBd1b8",!1,!1,null,null],["ethereum","aidus","AID",8,"Aidus","3045022100b2a27cbe69c78c6e782c0d3e06536f9d12528c232401a3bb317ef63792dcc2ce0220146910fb0dd043b6ec16ef8cffc97b00bc7075e53826166354d4a6f6617a5860","0xD178b20c6007572bD1FD01D205cC20D32B4A6015",!0,!1,null,null],["ethereum","aidus_token","AIDUS",18,"AIDUS TOKEN","30440220023a5c7dc8ab20f4ead2349295077001eb82f41a69820ef4fcbe58de90c3975f02201bf1c66510c8cefb3d6f4fae71d040b243d9b84afc09ec92e3b0887f4726e72d","0xa957045A12D270e2eE0dcA9A3340c340e05d4670",!1,!1,null,null],["ethereum","aigang","AIX",18,"Aigang","30450221009b5f35c695749847adf7653f20395b3fa090602a5572efc1053be3e9f19d487802207c577406cd97aef3e6cbcbcab87bd93d34dd44151073eb846b648544cc84fbfb","0x1063ce524265d5a3A624f4914acd573dD89ce988",!1,!1,null,null],["ethereum","aigang_","APT",18,"AIGang","3045022100840d68bc5d6e1f636e6a3c5d4a5e87ae4da47b04a922de0a7def6dfd0fcd1b3e022050e9dfde697fdd0471ed7adb74a0ebb0532f41e4bb26bbe999a6026f9d6f2c99","0x23aE3C5B39B12f0693e05435EeaA1e51d8c61530",!1,!0,null,null],["ethereum","aigatha_token","ATH",18,"AIgatha Token","3045022100b5672b83df0bbebdb0e7d36e6c5d3b378b078067b58738ed8493458ed070ac6e02200b1a74950a4ef4faae1fc51ee990cd182188c363db4e59f4f3a1970d839ddb75","0x1543d0F83489e82A1344DF6827B23d541F235A50",!0,!1,null,null],["ethereum","ailink_token","ALI",18,"AiLink Token","304402204bddbaa6eb0fa5f80082bb1a5d22e6206aa6f0a13fbaf1650bb03c6bfda379c402202f40410cc87552c8ad48160e1cb6ec7f6cb24e06edf13803bcc77c6b30041aaa","0x4289c043A12392F1027307fB58272D8EBd853912",!1,!1,null,null],["ethereum","aim","AIM",18,"AIM","3045022100d3b4084f58792f7ac665a7db73ce920fde5938f411ace3f84017a120cbe367db02201e70a571d3d47f672fc05cf3d298cdc4a5ec365b5e9191663c7bd5399baeba70","0x53352e7d6620cc931c0C9318166ae2a92c1A4666",!1,!1,null,null],["ethereum","aion","AION",8,"Aion","304402207e846f684a980dde7aa92b2ce861923e070c32c3745b7f90ed6fd0ccb18d97ee0220206032bca7c0ef8dc5d8d6880646edc98d1efde62587089e5a3bc36918bb9d10","0x4CEdA7906a5Ed2179785Cd3A40A69ee8bc99C466",!0,!0,null,null],["ethereum","aioz_network","AIOZ",18,"AIOZ Network","3044022063261cc99495490da0caee3b9a3352f120e01c828f6b45a02642f0d8717dc7fc0220538379598165d7af784d6ad2e771b6c9d7f5a8481062ad3938c69fc45ee0c2fb","0x626E8036dEB333b408Be468F951bdB42433cBF18",!1,!1,null,null],["ethereum","air_jordan_1st_drop_collection","UJORDAN",18,"Air Jordan 1st Drop Collection","3045022100f2a4f20b0968e5c0b99cb5b8f9d67c5f9f340be3d7c1e848200d2471466de7bd02201f81a48cf733509c1b96f00854c8d7778bd2de12a70d45055f62fb5041934ce0","0xAFFdb768e5f909b9a6Ed110ad724B5E454670c08",!1,!1,null,null],["ethereum","airbloc","ABL",18,"Airbloc","304402201a9960b547ae70b4f1cec43ef0e71924dc26f7f02740cc584e7822b4734e15c702203aa75d99de71e1d8a84bb704ce20abb1caff8a8c79e0fdd95a782656179a5b16","0xf8b358b3397a8ea5464f8cc753645d42e14b79EA",!1,!1,null,null],["ethereum","aircoins","AIRX",8,"Aircoins","304402207c3a707c09500b74ee0f646d5c4899542979d2d021ecf84762b8ec0a86f859030220747d50c38c04f0d37a328c4c0861325e458859229b16d7a8fe5c2b1bdbfbddcc","0x8cb1d155a5a1d5d667611b7710920fD9D1CD727F",!1,!1,null,null],["ethereum","airraid_org","ARAID",18,"AirRaid.org","3044022033fcfa60c1e2e1e6d2bee7c30935c6bf27f7f894f8ea5e4dfdcc02452719d15802203d84931224063b1dc10fc1ef361f72a35ac36dfbb6bcd5ac0d5b909c95f03261","0x387c291Bc3274389054E82CE81Dd318a0113caf5",!1,!1,null,null],["ethereum","airswap","AST",4,"Airswap","3045022100ddafa5cde9af4a4f3841081bedf2e798ef86c33d44e9d92de877367863ccff7502204635892616be637c719ec2cae2d61e463e5bbd73a8aa8ef96c9da476feada766","0x27054b13b1B798B345b591a4d22e6562d47eA75a",!1,!1,null,null],["ethereum","airtoken","AIR",8,"AirToken","3045022100f4b3cff287a6d05a783b487f6e43d5cf48e93992d301634f24c68816b3c399ac02202ad1e8b10a7a8fe2759f0b0b31852e57a74fe5496f9740b0afc1c89f691b1e4c","0x27Dce1eC4d3f72C3E457Cc50354f1F975dDEf488",!1,!1,null,null],["ethereum","ait","AIT",18,"AIT","304402200523db09a972d87b14b6ca0925ced9d7eafc167ff15750f5a177e72439102cd202201a498c6a8ac81edfea2a2c7d56ed88834bc65f16632013e01e8f081d7c46f26e","0x79650799e7899A802cB96C0Bc33a6a8d4CE4936C",!1,!1,null,null],["ethereum","aitheon","ACU",18,"Aitheon","304402204a3d5a78710b57499be71b5b0791040a852e3e380e3fd1acfc87a7df3d0c04a5022051226e952e3a049000cb0346de8491cbcabda47f6b4d584d181fa8545674b836","0xD536bBd5414A8C2beEd82a63737B9327D2FA35a6",!1,!1,null,null],["ethereum","aiwork","AWO",18,"AIWORK","30440220703e7da0fabb851e4994b79beb506149790544163d6500a6219201d42efeaa46022061830761c2e92cb3e3c4dc4307e036dd6d90ef70b4915f2391423030e2d87962","0x68C85B9f78F30A0df5aC5723e4e700037f185415",!1,!1,null,null],["ethereum","akita_inu","AKITA",18,"Akita Inu","3044022026016a21a57c83002b84debcc6b84616993494ac6856804f2865a149f1676c7702206abfee1f12414751e6654c675da32e2a777fbecfbfd3eee5d039af7fbde1e510","0x3301Ee63Fb29F863f2333Bd4466acb46CD8323E6",!1,!1,null,null],["ethereum","akropolis","AKRO",18,"Akropolis","3045022100a0c959aad2f8912da43998643c91fd5f693f23436943b13d759e45b04931809502206dec87de95bd89e9374bcaf402bb29aa01887e38e9ed4f9d464073e2948b3b37","0x8Ab7404063Ec4DBcfd4598215992DC3F8EC853d7",!1,!1,null,null],["ethereum","akropolis_delphi","ADEL",18,"Akropolis Delphi","30440220543e49cac9f5ee2afb9c0c76dd434c0a4c0425490f8e899cb6cbad7d4ddaa4fd02202f93c93b3971dfa93910ea620a680ed23259a1a4ce6b8bb5232325bcdc261b91","0x94d863173EE77439E4292284fF13fAD54b3BA182",!1,!1,null,null],["ethereum","aktio_coin","AKTIO",18,"Aktio Coin","3045022100a1b488ecc5e9a2a8e8f93290284b99569be51a92c6f79f596613e2bb38534a6402204a336e7fafe1a46f5bd416c8bce419e44ec834d1ef0799f56f9037b01d660802","0xe65d37F18A770643CB14c8611ACa7A67244BA480",!1,!1,null,null],["ethereum","aladin","ALA",8,"ALADIN","3045022100a8aac1fc5a0d7289a2ff607c5b4ea7d67161fc2551c8fa889d6c5e38676aaf8402204e950cb980bbd6459304f215000df4b85a1118ade396f86e521658e84b483460","0x564F45b6bb68ADEd8b660a0d8a0A948DD6d6e4E8",!1,!1,null,null],["ethereum","alcazar","ALCAZAR",18,"Alcazar","3044022020fc599d719bcc73f8669f1d0dcbba33aa56a86775df06783d6344ec4cbb51dc0220587904f72a2de3c301ba139e7696378c4dc62f0e9b8749cce4f011f1333e3004","0x10f44a834097469AC340592d28c479c442E99bFe",!1,!1,null,null],["ethereum","alchemist","ALCHEMIST",18,"Alchemist","3045022100a949e1d483f0c2e7d742667f552c6a650accc5a6cc0a0c788431ec46448b5ab002202b3877def83f2267fa60b9974a9ced913452a74cb22a848d79d1b1c87d9b9fca","0x88ACDd2a6425c3FaAE4Bc9650Fd7E27e0Bebb7aB",!0,!1,null,null],["ethereum","alchemix","ALCX",18,"Alchemix","3045022100a5d1e3341d8ccb42b957aa7008b69ab8377768e0178286cbd1706e493910499602207d27eb9c0619ed68078a8d6dd145c48e010356c075b03d2a57b51f1a7f16dca0","0xdBdb4d16EdA451D0503b854CF79D55697F90c8DF",!1,!1,null,null],["ethereum","alchemix_eth","ALETH",18,"Alchemix ETH","3045022100d67a3e6b522a00c041a88226505e9b25a0a0f480466a8587ce488b3b814c718e02200d4fc479b31936cefe4065a9b5bd6b4d548819a6b2bbae8e9664fa18ad7b079d","0x0100546F2cD4C9D97f798fFC9755E47865FF7Ee6",!1,!1,null,null],["ethereum","alchemix_usd","ALUSD",18,"Alchemix USD","3045022100c41c9ba298c8a9d3fc55bac7bae638122fdefe7d13b15dad470e0ecc78b207c60220223579940428d0c301387b1c2aeacf5862c44f41a741abdefe1c6ef461d523e9","0xBC6DA0FE9aD5f3b0d58160288917AA56653660E9",!1,!1,null,null],["ethereum","alchemy","ACH",8,"Alchemy","304402203190686fdf74beabdd4fa3eac168bc8fd615d3a2784fc97729a5d8e623b381b802207907c70f5943837035015cce7fa290ff1119bf2e81557a267352804b2eec25ee","0xEd04915c23f00A313a544955524EB7DBD823143d",!1,!1,null,null],["ethereum","alco","ALCO",8,"ALCO","3045022100ae7167e0342a1a2b64eeb73498626d44d3eada241ff8e73c571de0ad937422f40220144a2f26b88230fdea19acbc014ae5c139c33084270a5f92c6e2525a1fb0e26a","0x181a63746d3Adcf356CBc73aCE22832FFBB1EE5A",!1,!1,null,null],["ethereum","aleph_im_v2","ALEPH",18,"aleph.im v2","30440220748cf572f3167001ddf71dd5e6ee7102de031b87ae8e66aa9b1fda2082802a7a02205580a6f8a59a59d56690684c3381c305a2e3e75745113eb145eaa0ee3b73a3d9","0x27702a26126e0B3702af63Ee09aC4d1A084EF628",!1,!1,null,null],["ethereum","alexmasmej","ALEX",4,"AlexMasmej","3045022100faebc3334f8b1d0b1057d1c51b76c83c40525c04b679058887829ca18f5bd88702203a354a972e3219b250ed71f7c0fbb04be9b5ff2e1a3f7dfd8b65fd49fd8e1424","0x8BA6DcC667d3FF64C1A2123cE72FF5F0199E5315",!1,!1,null,null],["ethereum","algobear","ALGOBEAR",18,"ALGOBEAR","304402204ef551b775b8b5574d167dca6b27e774ffaa6ff5cc16ee83841d5a17de767a6b02201576ee343fd7ff85218342afb9ee99f52951dd4822ca3cef438aae0ef28c0447","0x057FB10e3fec001a40e6B75D3a30B99e23e54107",!0,!0,null,null],["ethereum","algobull","ALGOBULL",18,"ALGOBULL","304502210089b8c19fad0b5ffcb206fbb91852aeac8e84c1dea6e036ac36ad7b995aaf9d540220764b2994753b27900f0f0228ea68213892028e310419d67a2743f6904c9007fd","0x584936357D68f5143F12e2e64F0089dB93814dAd",!0,!0,null,null],["ethereum","algohedge","ALGOHEDGE",18,"ALGOHEDGE","3044022012a061ae50268f02cc6aa571fcc9cfc8ccc612417b092b67a46ae6a8bc992336022079a2adb4e1f62960bf592a98bd95bdf6ff2d935b0ca92af5b789d19337193f66","0xfdc3D57eB7839ca68A2fAD7A93799c8e8aFA61B7",!0,!0,null,null],["ethereum","algoiltoken","AGOL",18,"AlgOilToken","304402200a61241ab72b5541dbf6faaf78caa0268305bb4116a6e83a2a36b3555b6a65860220747bcb00b3bb0d78b8bf63f0b7b125194757776a14af5542fb2d114605bf43b4","0x2fcEE080CeB4ff95fCdc8a03052Cd85e51ecC69c",!1,!1,null,null],["ethereum","algory","ALG",18,"Algory","3045022100fdc0d461b84744ca5c4a90bbde777c40095fd15241309bed3c0bc5b9841b20e1022017f4037adb21a2e8ab814f5a72b88e298d6997d02e45fb65f6d662273c1df78c","0x16B0a1a87ae8aF5C792faBC429C4FE248834842B",!1,!1,null,null],["ethereum","algovest","AVS",18,"AlgoVest","3045022100aeec5ee71cdb0ea217728fdebd6740fb42dccd8d79d2b79e5fbb4b0d9c672cb5022005fe84e17692a89828f43c8fc6a864f50532f216b6ac2d26938d19d43bbf6149","0x94d916873B22C9C1b53695f1c002F78537B9b3b2",!1,!1,null,null],["ethereum","alice","ALICE",6,"ALICE","304402204277af5b65439e638bd62731a6c9cc293d4e9543f455dcb36a56b5ebcf296a5802201c43904b06d5f555233e83900a9fd0265dfdbab251bad9da8e40ee7e38adfb60","0xAC51066d7bEC65Dc4589368da368b212745d63E8",!1,!1,null,null],["ethereum","alien_worlds_trilium","TLM",4,"Alien Worlds Trilium","3045022100b52eab4aaa3ae1e899ffa42a34de6c7bc8930f65c39fa3a085030b125ad4199902201e1ec59a8ab91d3c22909a867669c9e7800ef84699d02193045c5b69a410ca76","0x888888848B652B3E3a0f34c96E00EEC0F3a23F72",!1,!1,null,null],["ethereum","alis_token","ALIS",18,"ALIS Token","3045022100f4b463a7b543ea78567dcd4063194163f66b38e07a31309661e21f9e661e6c2502205a1f4a39d8ac035d3c2deb77abaf5c6763d4d81983c3defef4f00cfd4af470b0","0xEA610B1153477720748DC13ED378003941d84fAB",!1,!1,null,null],["ethereum","alita_network","ALITA",18,"Alita Network","3045022100c80add07bb9a55edddb36fd565b434216c01a66bf2a60220c8695a314439260c022076c52b32053b79d5de5d1f2ebdf1c875d6e30583b3ef7d3d0339a88765a3625d","0x9c659CB48c4406Cd2857aEcEfF1609b2dB280d0E",!1,!1,null,null],["ethereum","alkemi_network_dao_token","ALK",18,"Alkemi_Network_DAO_Token","30440220672d4df048ba89496cf703111a487835729f62f30a76e7abc14db8be22662ef0022079a08c0e775650af42fb7ccfbc34bf0c853829134fc9941416d2402d1b4df634","0x6C16119B20fa52600230F074b349dA3cb861a7e3",!1,!1,null,null],["ethereum","alkemi_wrapped_ether_1","ALKWETH1",18,"Alkemi Wrapped Ether 1","3045022100b046ce6fcd1c794f3c749f158db3de8fb8e4e586d605489d3f36cfb291bfcbec0220257446fdaacc52ff1c1390f4ab18a975be4dfc9ad946b90feb45867d62696b25","0x8125afd067094cD573255f82795339b9fe2A40ab",!1,!1,null,null],["ethereum","alkemi_wrapped_ether_2","ALKWETH2",18,"Alkemi Wrapped Ether 2","304402201e0e1712c894b98081caad5cfe839a317de0320db57d31682a25d5f8a5a70a0e0220739ea4f0d7dcd846164f864214fa9f7883d498d01f2b8194a22fcef42ea4048d","0x1f52453B32BFab737247114D56d756A6c37dd9Ef",!1,!1,null,null],["ethereum","alkimi_exchange","$ADS",18,"Alkimi Exchange","3045022100b1b6b3d8953a6f06ad0e276c5293f9fc0997dd31f0dea65a71b8bfc7ffa666cc022031178f1053130257550668749a3fbf643fd557bb6085747837c14bb49fd11ab6","0x3106a0a076BeDAE847652F42ef07FD58589E001f",!1,!1,null,null],["ethereum","all_best_ico_defi","ALLBI",18,"ALL BEST ICO DeFi","304402205a965a5cc7cec26cc43bffee8f39956fef37ade9606cd482123d37fc749be48d022024671f3a2f292f2d38c6b9859d75d6dd5bd01bface36e85543c31e30c2959e12","0xF4e447C390167E5A17a95AB2475b71d4eA785200",!1,!1,null,null],["ethereum","all_sports_coin","SOC",18,"All Sports Coin","304402201b571ea8430cfe28a3214bed985916bc355570d8c9cc55c27cd4bab034b7b6e602205828f210fe9f1352a2e259bc98c0bb8e1425745f0617c28f10dd03c15c6296b0","0x2d0E95bd4795D7aCe0da3C0Ff7b706a5970eb9D3",!1,!1,null,null],["ethereum","all_the_smoke","ATS",4,"All The Smoke","304402207ce692fd278b34572a1ec72b644ccae4fbd3c911ec4f6fa95629051dda5abd1f02204f95fe9c2caf1ba8dd7e13faa56fc08136e9e54c2105500e523ef4897ecac251","0xE5f55a3b74874531a99359b833b92866A6609f6B",!0,!1,null,null],["ethereum","allcoinsyieldcapital","ACYC",18,"AllCoinsYieldCapital","3044022000abaee8fa209dfe9d3b76c6a16a4791d5275a75087b6da205549e7eb783c87402206991624ada26f55c2efd9d83a10197ee27efccf67be739bd56170b9b3265010d","0xB56A1f3310578f23120182Fb2e58c087EFE6e147",!1,!1,null,null],["ethereum","alldex_alliance","AXA",18,"ALLDEX Alliance","304402207a3a85656baf455496e3322cf206d4c7b947974ce5ac76753fa2724adf775268022034496cf653c80d366455053365af1b2595d5e8578f7b1abd679a502c18505bd2","0xF8Ed6c51762208FF26F8f3E4EFd4e06AF2da649C",!1,!1,null,null],["ethereum","allianceblock_token","ALBT",18,"AllianceBlock Token","304402201c1b8d97b9063eab19b0612efe3b7b7443b51b3a8d9fbf1d7577cf6913b532d6022003f0590872b559188b353df4e4df2f7a8e63ee2e8bead2a65df3261c1d681dd7","0x00a8b738E453fFd858a7edf03bcCfe20412f0Eb0",!1,!1,null,null],["ethereum","alligator_fractal_set","GATOR",18,"Alligator Fractal Set","3044022001662c43d330438e8eb93c04be6f7ff6f95c70c09608f5b734cad6595bf719160220361dc220bba0b74b2349e16e0e052baae7f7cf98d609802306eba2709d3dbbb8","0xF5c0E24ACA5217BcBAe662871caE1A86873F02db",!1,!1,null,null],["ethereum","allohash","ALH",18,"AlloHash","304402205e756c60618636713ee58d841918d2c6d4b4a77ee4f18af6095b1117a60a138202200ff83a1316a17f40b41d6ff5ddfd6dccab3cafaa4b5c21ce0dcad2ed91bc10b1","0x4c6719bF85903d18C295dA44216f862b01b36f43",!1,!1,null,null],["ethereum","alluva","ALV",18,"Alluva","30440220680c2dc39809d5e371d3cfb655c9902296253104293806067ff6a549cc5a90b8022062b7409d7f91fa107b222c2cb4009dee42b9442b2600a1c843f45f89abf62bd3","0x744c9c36D1Cc3268a4b9b2e28c60B1752C85E97d",!0,!1,null,null],["ethereum","ally","ALY",2,"ALLY","30450221009be9eaf4c54bcd6df920e5df5255be07478f3f4ed9ba0adcae04e24d5309819302204dfc33508299dbdf3fd5afd2bd335f7128d6f9a4bffe4291949c2949fbef4c65","0xf2CDF38e24738bA379ffa38D47bc88a941dF5627",!1,!1,null,null],["ethereum","aloha","ALOHA",18,"ALOHA","3044022038dd52121f689d3e8cc10dbe4410168312531ea607fd0f01b1309b6adaced979022033d0dc426ff1f1b9e36c8530ad127984abd59bd276cf5fc18d65fe68f614c975","0x455F7Ef6D8BCfc35f9337e85aEe1B0600a59FabE",!1,!1,null,null],["ethereum","alp_coin","ALP",8,"ALP Coin","304402207759d2586ee22e42324344a4db7e672e6143fce8d8eb969fa2cabdb2fc85ac1002200e206c3025dc05c04059a50f8531168cde4471c39e2373f0b96d8f20de8392e8","0x37D6E7F287200C740012747d2A79295cAeD2DB35",!0,!0,null,null],["ethereum","alpaca_city","ALPACA",18,"Alpaca City","304402200ea1132a61208b4c31bd2d434c523ee794600bc28a010edd6e1329de9d6d60c302203e05b9b1af53b9b429b2d96e34ed6fd01e60f5bafd68361e2316f29fa33034b0","0x413f6A89DdB823974F24F2E3cD3B4f467D3BBB38",!1,!1,null,null],["ethereum","alpatoken","ALPA",18,"AlpaToken","3044022049aa77a5e788b78991b7abe7064f315f0bad9bd7e803232731a5b3c252e58814022022ff1fe09a47e96f0d50179714c2f5a78ab05fcf0f5e6f621aade0f263758698","0x7cA4408137eb639570F8E647d9bD7B7E8717514A",!1,!1,null,null],["ethereum","alpha","ALPHA",18,"Alpha","304502210091751921009e1bf2236366e71f6c97558830ee73e2dd11821b36714e407b2acc0220374af8ea71f262709f88908c7d4c55a5032d7509cd7e75a5dd69db8bbc3706d3","0x138C2F1123cF3f82E4596d097c118eAc6684940B",!1,!1,null,null],["ethereum","alpha5token","A5T",18,"Alpha5Token","3045022100a9e8d988252ba7641027030cad5bd25f7e3cf37088af6df66093df133a51b26702207d9bfbad27493fc5d9b0791b9c4736eb1ab17745da00c8ed6d2495b389e569b2","0xe8272210954eA85DE6D2Ae739806Ab593B5d9c51",!1,!1,null,null],["ethereum","alpha_coin","APC",6,"Alpha Coin","30450221008e71256bf1e9bcfd357ed177aa6db89a90e01e9b700ee0ea8166084fb482d2d5022058d4ecd578caa600d29925e98ae32991f99d78b8c238ba33cbc02a9dcc44dd18","0x15bdA08c3afbf5955D6e9B235Fd55a1FD0DbC829",!1,!1,null,null],["ethereum","alpha_impact","IMPACT",18,"Alpha Impact","304402203bd6a9cb0bdbe941cf3d55179a1891d5c47fc5204192a51ebd4a19c9068fc56b02203dfd8c4728b9ba042c710c0a1d40231b2521c78e5813006cca547932b7b3bad4","0xFAc3f6391C86004289A186Ae0198180fCB4D49Ab",!1,!1,null,null],["ethereum","alpha_olympus","ALPHAOHM",9,"Alpha Olympus","3043022050aaa944b8d5fcd07544d6b5144d76f0901d49a7b205e1aaea2b73fdfd6b8ff3021f21852ee7964b2c9173bd7e1384b5bfe6d76c89f979e1fc4d66f9e99871b913","0x24eCfd535675f36BA1Ab9C5d39b50dC097b0792e",!0,!1,null,null],["ethereum","alpha_protocol","A",18,"Alpha","304402200a23677483a0e0bce6ef52142280f3d56dcd1f1c3c6517cc1fbc00a50aad3e910220671b45017a37e721f0d59fdea8948779efee1099302a928792935f745b78403d","0xFFc63b9146967A1ba33066fB057EE3722221aCf0",!1,!1,null,null],["ethereum","alpha_quark_token","AQT",18,"Alpha Quark Token","3045022100bae1cb2652a7fdcc665b1b9fb36e1a39a148747d39264c076dc1232f5ab9890202207e4ab3108b65e953316aa1dcf9f48586ed6badeb8906fbaaeb1164568ec2328a","0x2a9bDCFF37aB68B95A53435ADFd8892e86084F93",!1,!1,null,null],["ethereum","alpha_wolf","AWF",18,"Alpha Wolf","304402207b8dd17dc371f39d5257533409c7f676eed20b8b66dd13aeade82358bc7b25f402207ab02b70ed60801bebdd67ea0a96285cb8d73f513370bf2f917037678816662b","0x0342ac5dfaD866985Dde477caa85027A3C01a334",!1,!1,null,null],["ethereum","alphacon","ALP",18,"Alphacon","30450221009279283fc1758b906b693c27648c79ccdc687f20ac062b8c7e61919a1652189e022029a62f470ce132b643014642ceaa5e05ccc3a1d7df597dc67876b8cce06ab5af","0x454B9f249bC1492eE995793Bbc3e57b830F1A5e9",!1,!1,null,null],["ethereum","alphadex","DEX",18,"AlphaDex","3045022100fb91c97bac57b977437f8ca04e72c8575f49c2bc0abe017ee7385d4db707f716022055e8c3a97d376ef4a3b7d3d72fba31fe638877dbe94c262c7448d829342aabd5","0x3516415161C478DF10ADBb8bb884Cc83FbD5F11a",!1,!1,null,null],["ethereum","alphatoken","ALPHA",18,"AlphaToken","3045022100cdbddcbfaf0fb42f505a382f2eae7b7a5941c9dae92e84103e626584612767fe022025e349d5060f2929fa24f056fcab174444d6b0f55c918f6230f64a26cc7c7a8d","0xa1faa113cbE53436Df28FF0aEe54275c13B40975",!1,!1,null,null],["ethereum","alphr","ALPHR",18,"ALPHR","304402204dae0a339c9794745c768967bf1c9e0aea8a894f939b5fa3fe76d3054a6e5e930220097d8d8970a00742dac5f1f3b2b4313126c2338e75c7d53966a22a594476a4d7","0xaa99199d1e9644b588796F3215089878440D58e0",!1,!1,null,null],["ethereum","alrightcoin","ALC",18,"AlrightCoin","3044022046f8f8ad3c72494ee17108119181aecb4fdac7b7611ebda220c335773f2ea4f0022031bb76c3052ea7b60bbe1bf51aca916c8da5ea7efa53d12c10d32911004c60f1","0x95D82bA91256DB995C80BEd690D0A779191aF62b",!1,!1,null,null],["ethereum","alta_finance","ALTA",18,"Alta Finance","304502210095bab2ec0e10136ac5aa992631d81fe820c0588c97b7ceb33cf6f94770e74e4b0220611482315955df18f61ec6c04a3c725e1a92424be62479c0a82d990d7d2b7d28","0xe0cCa86B254005889aC3a81e737f56a14f4A38F5",!0,!1,null,null],["ethereum","altbear","ALTBEAR",18,"ALTBEAR","3045022100d37c8018534571ab5d189c19ceb420c1d1a8ec70ae4db0802ea22c4b7cde38ae022073e4dd7a36db7770817a0712bcdd5ebc79824ee21e4db0261ac8123cad7c0003","0x90B417Ab462440Cf59767BCf72D0d91CA42F21ED",!0,!0,null,null],["ethereum","altbull","ALTBULL",18,"ALTBULL","304402200bcb2edd05d22f8999b4b0d209749cf5bec611083b02e5a93ae9190c6c8eafbb02205aeb0c7ff665484d3412afb91a7f4308220a073895e85d6a5235d27573693690","0xd829664CDbF3195b2cE76047A65de29e7ED0a9A8",!0,!0,null,null],["ethereum","altestate_token","ALT",18,"AltEstate token","3045022100d2057aff5181edcf210913bd3da78a6c499cfb5ba4dfc08f5cf02dba76950f3602207ba6ef12a91482e477b956fcbb4014cf3a534be80492481d5f9efa458246e1db","0x419B8ED155180A8c9C64145e76DaD49c0A4Efb97",!1,!1,null,null],["ethereum","althedge","ALTHEDGE",18,"ALTHEDGE","3045022100a733d3908880c33a72336e554e035feec8df6bed8facfe5a5e9efc6c3d537f320220154fe2bd2918e766bdbd97df568e86a22495e995a218d2578727b666abf4e75e","0x258FEc90B7788E60dA3bc6f81d5839Dc5B36a110",!0,!0,null,null],["ethereum","alts_token","ALTS",18,"ALTS Token","304402203e71f60d496e91a198ed5ffe119063e9bc6b7a57ec55c52fd84aebcbe569921f02201a96612da2ebcb15211e24babab9bd463ea13e405bdd3965f390c95637bd50b8","0x638AC149eA8EF9a1286C41B977017AA7359E6Cfa",!1,!1,null,null],["ethereum","aludra_network","ALD",18,"Aludra Network","3045022100b57f74da5ec716fec9362b92d7baf21307e90269cd4e284d59cc15457098657a022062648915a28e29896e0de88c6ff0b31558fae0c62bd23f31417fbf92b7341b9f","0xb339FcA531367067e98d7c4f9303Ffeadff7B881",!1,!1,null,null],["ethereum","aluna","ALN",18,"Aluna","3045022100b19f9d0b8727fdb53f91cdee3033d7072fd76c9df0ac7252617169cbadb458d7022062e1eeb5a8db72e7d605438d6eaa83a898e6edb2ff461763d19d969ce21370cc","0x8185Bc4757572Da2a610f887561c32298f1A5748",!0,!1,null,null],["ethereum","alvado","ALV",8,"Alvado","3045022100edbd13a558d30107cf69785da001773e576fca7be93d7582d06bfef3198aa50e022063be9166b06cdc99188462419fd40773d95aa30da90861c089573793b1ba67ef","0xfC17986Eec07b49348D24238755FF3bA7F7Fd282",!0,!1,null,null],["ethereum","alx","ALX",18,"ALX","304402206a4b3688b23a32b8d7d137001d1d56344cf0265211102d217d161a6096a8b8f8022026b45291fa18efedf7fbc69cb9bd65914000349d35f2b74b2706e560d6bd5f3d","0x49b127Bc33ce7E1586EC28CEC6a65b112596C822",!1,!1,null,null],["ethereum","alxocity","ALXO",4,"Alxocity","3044022018b45d150a574c24a82ce7d8c34c8607f00b6541e85143c9ef6ed06e1102858502207eb5197ebd06b698d2ed920c2a08fd137ee37fd4d74e3464f9632d4b28ddd88f","0x4317Ea4820F8D9ea6A103553A89Cb261B6Ea7F2a",!0,!1,null,null],["ethereum","amaten","AMA",18,"Amaten","304402204d55b6bb8d10ed0cfc723d4d488f13a781fe677f2ef6a3665aa06e0fb3d1326a02205e52da2b30662dcf6f059e3cdfad560f7471e1368b63b31888e4e6abe6f5b717","0x2509eE05b8df07EC75046E24BBf1CfCdB8b2A183",!1,!1,null,null],["ethereum","amber_token","AMB",18,"Amber Token","30450221008268a63b87ef7fdba912b11b57ac12383d373e5f85c5476bb15e435c7b13c461022060919d7a90126271b040e0c70455bc33f2cd7c3d80d0432e8d5ebfce925a076e","0x4DC3643DbC642b72C158E7F3d2ff232df61cb6CE",!1,!1,null,null],["ethereum","ambertime_coin","AMTC",8,"AmberTime Coin","304402207d3ebaa0e4f4363115004baeb2b14a581f0fb02f202dee55028baed552ba205602200cb29ff41231570fdce4a36e6573807fdd122e3d17ea2ce33022cebb9ec3b91c","0x84936cF7630AA3e27Dd9AfF968b140d5AEE49F5a",!1,!1,null,null],["ethereum","amc_fight_night","AMC",18,"AMC FIGHT NIGHT","304402205a875408f0e9d4191e1fb1424c6df0c538dbc0868ade98c55bcb7a80b7d3d0ec02204fcf1be398cc5c504df73dfad2b00885ebc42ab305c36b33150d16355a1c7ed3","0x7603de2eA4cbceB0250118De03Fcb70Fe1e8e935",!1,!1,null,null],["ethereum","ame_token","AME",18,"AME Token","3045022100fc589b1556906b6787f5e15767148e43671635b11dd3da8709f9145f624984b0022034f70bce980bc20dc6a537a8a4ffd27a91711c2ad295e3281c4158b27bd92571","0x12513335ffD5DAfc2334e98625d27c1CA84bff86",!1,!1,null,null],["ethereum","american_akita","USKITA",9,"American Akita","3045022100dbf8f18600e0707c438c83826f829493cb111cc4cb64d44fa898ade8c5cb999d02205e105a500af12dcf88eef74eea81e172edede25354c8427fbca688c5ec43ef52","0xC18e7a03f8986798323658dD8645f93aa79Ac5C9",!1,!1,null,null],["ethereum","american_shiba","USHIBA",9,"American Shiba","3045022100b0f635205c2a4e874859958e4843bbac3fb77324c710f2070a164cd1ff6ded540220794677c8a16b44d549af547612cc4dbdebcab3e802bd53e297f1383d101675f9","0xB893A8049f250b57eFA8C62D51527a22404D7c9A",!1,!1,null,null],["ethereum","amino_network_infrastructure","AMIX",18,"Amino Network Infrastructure","30440220724afc2aa11ad7db8acd9026eb52c892fdc4eeb8eb18788e81407d9f89821e00022052b7af8b8ce83836eae7c570976462bbe2886677ac09099741e15917c1d90bd4","0x564393b8D6dEAeA8f3D739a3f6D9B441D8Ee6198",!1,!1,null,null],["ethereum","amis","AMIS",9,"AMIS","30440220101ae21b228ec2de2e2c70c3ac071e8bca1aa9a5609a16358adc53bf4552bb7a02200b8ff1ad99a1d5adb4707cf8a80f7471e2a0c61a27b5b6c487c575562a1c14e8","0x949bEd886c739f1A3273629b3320db0C5024c719",!1,!1,null,null],["ethereum","amlt","AMLT",18,"AMLT","3044022034aa6183574c231111baa25c47313422de059ef6283c192c31865dc36237190102201062c1a574fd5f11541ee3abf90c29a05edb702b9705b6ae10efbfc84463500e","0xCA0e7269600d353F70b14Ad118A49575455C0f2f",!1,!1,null,null],["ethereum","ammbr","AMR",16,"AMMBR","3045022100dbe9f510b29b362943d06a4bb01f76b9d719eda6fe53a5a140725e0b90e1adce02203c2bd196c2b113fa2d0e99158715901391eaf743d12b3c7738d0a6441104d6b9","0xd3Fb5cAbd07c85395667f83D20b080642BdE66C7",!1,!1,null,null],["ethereum","amo_coin","AMO",18,"AMO Coin","3045022100ff78cf26c20516a69b32ec35de314924403ecfeef6e68e103149ebf5c9e0b008022054c9ee4267ebef67a0ef31333007f3795314a064daf39970926c3f87bd10420e","0x38c87AA89B2B8cD9B95b736e1Fa7b612EA972169",!1,!1,null,null],["ethereum","amon","AMN",18,"Amon","30450221009dccd03318049e038edbb71b12558835215bb2c2b06e2ac98e341f5f34d699ed022044c3dc6b6d64658fa66f5760ab3b38b0efa3223ea8a62b61dd301a87e4bb5360","0x737F98AC8cA59f2C68aD658E3C3d8C8963E40a4c",!1,!1,null,null],["ethereum","amond","AMON",18,"AmonD","3044022004863110b0e587171e21358c94641a0584036d1b1207c87340286a8fd10502c502201e1010b2ab61a4337f7073bce56e4550608b17bee40d19f2830fcedfdb8d0918","0x00059AE69c1622A7542EdC15E8d17b060fE307b6",!1,!1,null,null],["ethereum","amp","AMP",18,"AMP","3045022100dfd643b169ff761b7908b2c25444337e0d3c9d663fdce22fe5ac8fe34b3921c802206214721f00684b3a20660807f94f715f029543f295d744acb4df891d4d4facfc","0xfF20817765cB7f73d4bde2e66e067E58D11095C2",!1,!1,null,null],["ethereum","ampleforth","AMPL",9,"Ampleforth","30440220682be221e5546fec4cf8123bc3cd7c690aa1b6207216b58ad7f7e6a1fa2c4f910220379206bcccbb803705c7a1d18ce10c9f2a61062da94ae0834d17d0c77d7e1824","0xD46bA6D942050d489DBd938a2C909A5d5039A161",!1,!1,null,null],["ethereum","ampleforth_governance","FORTH",18,"Ampleforth Governance","3045022100f866860c3766518248a17bfbc167f81bdb314d17496bef6e472909fb658066ac022025662c680f389122e45952a23b61034097481e30be0349a194ab5adbd39f5468","0x77FbA179C79De5B7653F68b5039Af940AdA60ce0",!1,!1,null,null],["ethereum","amplify_token","AMPT",18,"Amplify Token","3044022004f656a5f1ef249a862ec10ed2443c67b3336b586bb177fb3d9b0a16ccdb3d00022017195b0412b428f1c6fcf241352582caa98fdf33c912fe1fe7857a1c71177087","0x3F17cfAd23C2014C5a32722557Df87DFF46819dA",!1,!1,null,null],["ethereum","ampnet_apx_token","AAPX",18,"AMPnet APX Token","3044022023f2311931e5109b7aae7d7c87d42fa6f2c0f865407052b5ee1cc9610422fef602201d2581b87d23cbf820cebe7b9fca9e34a80d7eb0bb4d77ff7780b4a84d749c9b","0xbfD815347d024F449886c171f78Fa5B8E6790811",!1,!1,null,null],["ethereum","amun_defi_index","DFI",18,"Amun DeFi Index","30440220110f911b93b769a01efae7fef151b98479ae41990e0dd24870fee62348478b0102206c0ce2a64fe0da0b1648b9358302673ee0f2b904423415530c1aafee7624c4c0","0xA9536B9c75A9E0faE3B56a96AC8EdF76AbC91978",!0,!1,null,null],["ethereum","amun_defi_momentum_index","DMX",18,"Amun DeFi Momentum Index","3045022100b735d3c3a59b548a150a9480c369a94be09a4b3445b08132c4e7b02a184d685802207378530205062dd7f436279f075f305a74086201a8619fd1b8290ff67116e135","0x1660F10B4D610cF482194356eCe8eFD65B15bA83",!0,!1,null,null],["ethereum","anchor","ANCT",8,"Anchor","3045022100b98cae855e7007288b9da0b4b8ede7fc156614b8610c453134cfc1c4e4967245022072e3683b27b851e206d24ac34cf65ddb3ccc463726ee90226774bbe147c41e00","0x5456BC77Dd275c45c3C15f0cF936b763cF57c3B5",!1,!1,null,null],["ethereum","anchor_neural_world_token","ANW",18,"Anchor Neural World Token","3045022100eb3cef6c9b54f7f9db79140e646e889424b641d87676c501c171330e441a9d96022039704377f5607639df79a41bde646771104798bd14fd1f611d55a164a2790c6d","0x7DbDD9DaFdC4c1c03D67925a4f85daA398aF32B0",!1,!1,null,null],["ethereum","android_chain","ADC",18,"Android chain","3045022100c95c806692e510082a8a68fdd44ca514111c5a46c7b9148ba9bccece37244f1502207b6c24af447b70770040b5dd2d66c56f9a4f094106ae0b5153e9b1c30fb43d93","0x1e41a55030E0d0794AbfB6dCEd22e6C7d18d8247",!1,!1,null,null],["ethereum","androttweiler","ANDROT",9,"ANDROTTWEILER","304402200f9eb0765158ea755ec1e3b9c2789913a07974be52689468f57f7a7175b40ef202203919f2b06cd3af94a9ce88b35f26e541777560a81755d4d771434976ba685699","0xa8C16FbeCF1AE1BC1DCc87e6892F18F777E92C69",!1,!1,null,null],["ethereum","angel","ANGEL",18,"Angel","3045022100defa17b5bf4cfbec765eccf3c2b7ada15fe504a190c6200b24a3e5e3093c67ec0220429232220f286bb9a87a8b49373e357197160551ed19f7ed566117030ee1add3","0x6C7B97c7e09E790D161769a52F155125FAc6d5A1",!1,!1,null,null],["ethereum","angle","ANGLE",18,"ANGLE","3044022069edcd616cd4a3adbeae003a20dccf11751ccf3d1d1e991b9c620f421d6410f802207844b0435f20fba4702a3eb8f01a318cd17274f415bcc79b08b3beb84528c7d1","0x31429d1856aD1377A8A0079410B297e1a9e214c2",!1,!1,null,null],["ethereum","angry_token","ANB",18,"Angry Token","3045022100a0be1a90503816d8dba804cdd1321a218caf8625f0a4414932b086a43a0fb53c022035ad19668b68d805077e6444b843478e6d764884991573717873e6ebca27f799","0x2c9acEb63181cd08a093d052ec041e191f229692",!1,!1,null,null],["ethereum","animal_token","ANML",18,"Animal Token","3044022015b5b24e7300fb63d38ff14440cc4acc98592e41595681a8154d71ac75c820a702207e05215cf8fdec977bba34d3f980a3e73a76d7c49e6a2deec1de38a5c9bcc177","0x2b0C9a3bAD0351b98fa240Ec46CA62970AA38618",!1,!1,null,null],["ethereum","animalhouse","AHOUSE",9,"AnimalHouse","30440220307c2156fab7d7c04f2cfbd5776ea77152f6553dcba57b5f9535c90002980a17022065bc9f68e54e1f66e49786c0ce21e21344cbeea880d722962cdf157c0bcda53c","0xB125CcEb9C6e349217d09B069a8d88DBEAcF06E5",!1,!1,null,null],["ethereum","aniverse","ANV",18,"ANIVERSE","3045022100c98432a26a5adb413a14f77922ccbb7b4867dfc1ebf6a0b9e6553199f48817d60220608f4da670032dabb48fe5e2270797d18ccc8532db297c26b5d2d5c517c41414","0x3D382228C54736d831FAC2748F4734D9177c7332",!1,!1,null,null],["ethereum","ankr_eth2_reward_bearing_bond","AETH",18,"Ankr Eth2 Reward Bearing Bond","30440220235f67709cfb7e047c94533ef2900d384a34f9ea8725f106bba854f4fd62b8f6022053d3d3dc480f920dda9ff99bac52b32b0a28f44cb0e84ca462de814b9931ba2a","0xE95A203B1a91a908F9B9CE46459d101078c2c3cb",!0,!1,null,null],["ethereum","ankr_network","ANKR",18,"Ankr Network","30440220114825d3e55a086551c8d960ab322c13a3d18ce7ff5803e511e503c8aa511d0802204fe1d83304615e985216795c5ac64b94080afcc3d065d5c382ecceb5eb7e1823","0x8290333ceF9e6D528dD5618Fb97a76f268f3EDD4",!1,!1,null,null],["ethereum","anonymous_coin","AMC",18,"Anonymous Coin","3044022062a552042e57c258abdb01057e810b018ecffbbfbac6c063cbf50208fdc5333702203d066e7b2fec86d9bc78b54e0a98b280dca97c5596e865b2692bcc30c84d38e3","0x9e5A64943f9F48463f07cC0578bBF9E2e67F0F61",!0,!1,null,null],["ethereum","anrkey_x","$ANRX",18,"AnRKey X","3044022100e9b7ef887d49c033829a5dad6283c8b0a51ed2de73c6d7bc7e10f3ad4cfeab37021f043d91248dad354c2d145575cda405731494b60a07a2a5b51eabe76907ea2c","0xCae72A7A0Fd9046cf6b165CA54c9e3a3872109E0",!1,!1,null,null],["ethereum","anti-lockdown","FREE",18,"Anti-Lockdown","3044022022e2119a8dee7f74baeb6968eb5b1abaa3250373216186c21bc70d2262dc619502202ba635a3c506a0cb15699bc72d33f766d29196ced01adbdf4a03a58ebd3503ef","0xC2Bd7a597391f31D2E36c2cb769fcE0E5bd6d482",!0,!1,null,null],["ethereum","antiample","XAMP",9,"Antiample","30450221008bb0f8ae27d1d58bbed0b2ca828717949afb5cd401d3149d41b861fffa14725002203d03a129910ce7db446fea1626a0f1b8092ca47b829b66cfe773ee9ca9cfcaf8","0xf911a7ec46a2c6fa49193212fe4a2a9B95851c27",!0,!0,null,null],["ethereum","antimatter_finance_governance_token","MATTER",18,"Antimatter.Finance Governance Token","30440220316cdff81d074bf2fd092650f2e1a902d953e59af73e24837a94f6258faf65c002205cc692eeea0728ae69988ea3d8951b7f83ba725936b3e217bf9f1c3386840c7f","0x9B99CcA871Be05119B2012fd4474731dd653FEBe",!1,!1,null,null],["ethereum","antique_zombie_shards","ZOMB",18,"Antique Zombie Shards","30440220540c11351e503b0495daafc67c270c57b90e5f68c8b87ed2235902172da57e2c0220584d992ab62e027593fed675aae16276b071d321aa9eb7cb128e82104de7b8fb","0x78175901e9B04090Bf3B3D3cB7f91CA986fb1aF6",!1,!1,null,null],["ethereum","anxtrom","ANX",18,"Anxtrom","304402205e960863139090a92c6e2465c239772511189cb0ab3f1e2f46af1c7075dbd53a02205c0055963612336e9fb29baace9cb75b378b9102825cf1ce4f763f1a439f0ddf","0x977ed44adf34B3c8515F9fcd690541453D064e78",!1,!1,null,null],["ethereum","any_blocknet","ABLOCK",8,"ANY Blocknet","30450221008e2186e94dc2ee275055a7ce58ce988cf0e8bfde345a486ab2a6013ac4898d3602205b863a0e7c0bdd1f0d384fec17a8252a63db98de4a495f97f295fada9236c774","0xE692c8D72bd4aC7764090d54842a305546dd1dE5",!1,!1,null,null],["ethereum","anyswap","ANY",18,"Anyswap","3045022100b05528fc388ad61abc07d40a71933f1768f604e84db7f5427fdeda99dfb86b5b02207debbbb929e733b55cb7058611f4a59c237cc5377b1be794bc2924e98286a051","0xf99d58e463A2E07e5692127302C20A191861b4D6",!0,!1,null,null],["ethereum","aog","AOG",18,"AOG","3045022100e0efab72d17608a534364c244db61ce8b0ec31edecf7953e9e049cdc89849bc8022052a2d0313abfca3710733680287a962e85c017cad820d0dfe56b2ada5a166f20","0x8578530205CEcbe5DB83F7F29EcfEEC860C297C2",!1,!1,null,null],["ethereum","ape_punk","APE$",18,"APE Punk","30440220139f7d920874619e07dc241d69c49f7e73cfc00458ab8e57ee2f60571c7a0b320220639e8c5f93902335de2cc673ba944d37af2b10f3fcb9f81677611cf3c54f1657","0x26EA1f595f6567b7050fBbA24F6A66e19Db4D560",!1,!1,null,null],["ethereum","ape_stax","ASTAX1294",9,"APE STAX","3045022100aaed5c5646089862417835eacbb0b9c450bf1ec7920c3864b601640abdeeb15c02200f4776c5033ffeef13a24aec471f057d1ad7155e192cef9dbc16e426fa7cad67","0x0f8C793DbC30A185138d5Da00f106290B26E36C5",!1,!1,null,null],["ethereum","apebullinu","ABI",9,"ApeBullInu","304502210088a70668a63fd2a744c45cef85adbcc3a67e19171a8a246e0afde0456699c0e802201d0fd01779f7ede65b33893c6d3badfb836bc9102674436e036d0d156f819f85","0xB4EaF48bD7f72356e1019C157e91b81A1C541073",!0,!1,null,null],["ethereum","apecoin","APE",18,"ApeCoin","3045022100f245da6a5b212fe9b49c1a7cd23bb75ddfb06d7295ab95fb66841451e9a1e5b30220714fe14b9f47d50bf54f208de6fadb7719bf13094330b290b41e31a982281afc","0x4d224452801ACEd8B2F0aebE155379bb5D594381",!1,!1,null,null],["ethereum","apecoin_dev","APED",18,"APEcoindev","304402201af80dbaa866b9bc984372d8a5fbc5d9b7199681c602935a4743f1ea6794037102201ca9463f1b763c62bdf2787f8e6385eb01eb32fcc7ecc21f00fbec9eb252d4b8","0x209C1808FeBf6c1aB7C65764bb61AD67d3923fcc",!1,!1,null,null],["ethereum","apehaven","APES",18,"ApeHaven","304402203d740c274c9b9cff9cd033836e9adc63a1d755e7db3688fa0c0b6054698ff09002207666fbea0e3a2bcade050faceafe1b7dbbc2c0f8db4dfc3721108189cdf64fd7","0x14Dd7EBE6CB084Cb73EF377e115554D47dc9D61E",!1,!1,null,null],["ethereum","apenft","NFT",6,"APENFT","3045022100f2491d14ec2c4f10648cad2a5ef3d19a8b93fdc7a1bb78d4e1447d0c9942220702206f8b32072b77c1968fa3beb19dd6373843afada10d9886dfa88fc46416695a67","0xEF40B859D21e4d566a3d713e756197c021BffaAa",!0,!1,null,null],["ethereum","apenftio","NFT",6,"APENFTIO","304402201925ef7751a9f146010e43a9786055c8f8d7cf714983b379bc4d1fcd166d0a610220559a7e991669d6df124426eaa19e34c0528655eb89956faa0d95301faac35cc2","0x198d14F2Ad9CE69E76ea330B374DE4957C3F850a",!0,!1,null,null],["ethereum","apeusd-aave_synthetic_usd_(dec_2021)","AUSDAAVE",18,"apeUSD-AAVE Synthetic USD (Dec 2021)","304402203584a13f6dca75de4f04ef0ad1fcebb52a3c9a16cc9693a4009074f15d9352be02202a9885acbc0ed9145dbe654d6da1c170b1314fd9cf36b9efd0b2f97193c1be20","0xEC6a5D88bF56Fd3F96957AE65916C69F29DB35c5",!1,!0,null,null],["ethereum","apeusd-link_synthetic_usd_(dec_2021)","AUSDLINK",18,"apeUSD-LINK Synthetic USD (Dec 2021)","3045022100814aaa44848ad66409fa8d1fd79f2d0c4b258c48cbe6295c188773ac1011e7d502206bfebbdd67ce1cd3606f1c07e802b466f0b2b6fb5710600646784a630fca1b89","0x0f775aD69e3c93D599D3315A130Bd82A0cDda397",!1,!0,null,null],["ethereum","apeusd-snx_synthetic_usd_(dec_2021)","AUSDSNX",18,"apeUSD-SNX Synthetic USD (Dec 2021)","3045022100bdc65556469c7609c8e2b181544ee20227d0f999e4fafb3aa9d3697846a4644a02200ec2c3618cef74c3c02966c48645805685c98deb704a6828832036d57bf65e74","0x5C6Af72cBd740b90528C8Fe226125413b6bd7E5A",!1,!0,null,null],["ethereum","apeusd-uma_synthetic_usd_(dec_2021)","AUSDUMA",18,"apeUSD-UMA Synthetic USD (Dec 2021)","30440220267605e8a7d72e4a66d11eecd72dba1a97bb55f26fd8029661061ede95f65e2d02206828dd17aea8d8624317f2de61ec8b24580d6f2b970fd0ef58d0f7efa6677bda","0xfA5e27893aee4805283D86e4283Da64F8c72dd56",!1,!0,null,null],["ethereum","apeusd-uni_synthetic_usd_(dec_2021)","AUSDUNI",18,"apeUSD-UNI Synthetic USD (Dec 2021)","3045022100cd25af3416bfb44f5d7d0ba41bed9f14110904d27c83e506b46ee648b1a4b49302201f4cae66946d46d5d0fb1113dd6abd4a3d0626c75deb31a6d2d7df51614fe9e5","0xFbB6B34DD77274a06EA2E5462a5e0B9E23ce478e",!1,!0,null,null],["ethereum","api3","API3",18,"API3","30440220355d7c21511acf22cdaf4ca8ac03c8853f58bd0f8bb8bf5d815d1847b0a007b202207f8787ae8100285e562338594269836b0216327cfb3302c08ce40182b44f16bb","0x0b38210ea11411557c13457D4dA7dC6ea731B88a",!1,!1,null,null],["ethereum","apiary_fund_coin","AFC",18,"Apiary Fund Coin","3045022100c9cbd63a9fd96af6c85bcd6b543326393f13f70dcd5e5255e3334b004a55c5d3022006caf659f31a209d26e917bb85d1b461e955e39231a0baddb2b085d33fbf6e83","0xF576ff0d7e4C1e8F27DbD50321E95E36a965985F",!0,!1,null,null],["ethereum","apis","APIS",18,"APIS","304402207a96b934b9137cc480de0726c82b49b0ba905837cf9d7e2d973548d934eea85e022071e7b81514a2b443219c152d289d167ac0b1ba9c64f52183b64ba1ae34deea48","0x4C0fBE1BB46612915E7967d2C3213cd4d87257AD",!1,!1,null,null],["ethereum","apix","APIX",18,"APIX","3044022007c8de79d151495d93da1b757603c048abc5d853df694ef5d2e4b90dad8d678d022029afc2ac44d0c730dbea141ec338bc5832b7c54b8caece671f359c1737434183","0xf51EBf9a26DbC02B13F8B3a9110dac47a4d62D78",!0,!0,null,null],["ethereum","apm_coin","APM",18,"APM Coin","3044022047bacbee8dbf195e41097f10f25f9965ed4c437f4e37e6771f8a1f784fa8941f02203bdc953cce93958bdcb71cbb6ccb5213d123456aaffaaf21558171d436115fa2","0xC8C424B91D8ce0137bAB4B832B7F7D154156BA6c",!1,!1,null,null],["ethereum","apollo","APO",18,"Apollo","304402203472de085e3c18fa2e7f724038d6b8bfa72fbe34ba2e7dc1950dd80923d52bc102207cbf5cb75b07f8b8893cfa59f958da0a02c940765587c183218dad80d78c5656","0xaEb0472bc3b158DC1690c7979Ee45B76243b4dA5",!1,!1,null,null],["ethereum","apollo18","A18",18,"Apollo18","3045022100b2a1f0acf908a79934d26a2866bcf494266d9082162b3c6037ddb3aedaed23870220082eb776e1c26ac24a7957266d548016c3f654645938e8e2cd164541123102d8","0xBa7DCBa2Ade319Bc772DB4df75A76BA00dFb31b0",!1,!1,null,null],["ethereum","apollo_inu","APOLLO",9,"Apollo Inu","3045022100ecfe005d9ba5b63a95fbc04e95213af1be427e4d57a973bf88c8290cfbb0033402201d6401db7b7010b7cb7600858276b407b19ca8c1e2479cd75d3ec544faa7f757","0xADf86E75d8f0F57e0288D0970E7407eaA49b3CAb",!1,!1,null,null],["ethereum","apot","APOT",18,"Apot","304402207252dde2a05e37f7422b812ffde8c7c870f44872134ee762a6d5af525ecea3ff022046284fcc1f89e2490c29d8af5b54222804d5bd84d900ff3ba4c93f35b03fef44","0x16c1E5BAF21b9Fa4BC9f2C374E4dC19fAB5Ac5Dc",!1,!1,null,null],["ethereum","app_alliance_association","AAA",10,"App Alliance Association","3044022047dc57450088b3e0c0ec8ce4028e4a356e697a2d66c31d56115e0d256b4fba3102202160a19085cb2fcfd37775fe3a39d30ee4ed03697eb8ea49897058b98ebc2517","0x6AbA1623ea906D1164Cbb007E764eBde2514A2Ba",!0,!1,null,null],["ethereum","appcoins","APPC",18,"AppCoins","3045022100d9dfaa592f583c1856d8ca9fd38c9b4aa3fa42f3a72885876e6549e180d4b466022013dccca0000386036f2961daa566c9938a940fc289dd61c569e2e08327ba495a","0x1a7a8BD9106F2B8D977E08582DC7d24c723ab0DB",!1,!1,null,null],["ethereum","apple_network","ANK",18,"Apple Network","30440220626f6e35e9fce3188537c0ca7b02940381c8edbd2c686bc4d5a47d2d9f66f13802201fa1dad0aa23c1be7ac72baede1b32782f04ce7a0901f99522979903d8d0006e","0x3C45B24359fB0E107a4eAA56Bd0F2cE66C99A0E5",!1,!1,null,null],["ethereum","apple_protocol_token","AAPL",18,"APPLE PROTOCOL TOKEN","3045022100a6fe0e379daca91a494dbb543ce37afa45f276c2d71b3abb46ab8e85591aa5bf02202d623bfad42cd29453c358ee8551edd6219cb83c57fb76e670b1a56ea206d568","0xd059c8a4c7f53C4352d933b059349Ba492294ac9",!1,!1,null,null],["ethereum","applepie","APLP",18,"ApplePie","3044022052278e5093591f44ab456871ccd25dde336678fed186338db5a7c297ebbfd7fe022040b02f177bb78a7ac982b56c3e54e016ae1e585f38a5c2102e09181aefb44fea","0x69275aC5477F3A9DC051180BC559140Bc647F8E9",!1,!1,null,null],["ethereum","apron","APN",18,"Apron","304402203211fe9f121a0219a541e225877478a9676d721e75f70dde5b1b2ab1017d490f022024ec551e13319ff9553753e6ef5386eceff308ed7312f42af7d7852df47ec6fb","0xd4342a57eCf2Fe7ffA37c33cb8f63b1500e575E6",!1,!1,null,null],["ethereum","apwine_token","APW",18,"APWine Token","304402201ac3daec840b5e5af8de8fee45f96fe80f9155ef68332946558c309e037546eb02205b9040b35097ed652db24995fb7289e228726116152bf0ea2d72bd87e66e7672","0x4104b135DBC9609Fc1A9490E61369036497660c8",!1,!1,null,null],["ethereum","apy_governance_token","APY",18,"APY Governance Token","3045022100e94d831984125b718db18a8252cd34ac16738572a6fd211bafaeb067c802d5360220511a8e39e51f1ea7370489704dc9438f79a00c75cf037f834586c1ba22b2e1ef","0x95a4492F028aa1fd432Ea71146b433E7B4446611",!0,!0,null,null],["ethereum","apyswap","APYS",18,"APYSwap","3044022015bddbfa3e78afbf7dae2d9af4dcc07c846552546b60d9906546b83cb88a21a402204067e208b0cf74a6042cad9bb256c17f4fe822d5d1b771a15e40add2ae86845c","0xf7413489c474ca4399eeE604716c72879Eea3615",!0,!1,null,null],["ethereum","aqua_token","AQUA",9,"Aqua Token","3044022003ff7635ec9812231256fb6f94a0232c71d222feb8224ece4ac878e60b018d780220733950e8fa92336fa61786a0d3a9d612a356f5c58b46c2cc9612cd039c4baff4","0x7e32c8727Cc19DD59a7a4d01b95Ae1cBFC8f4c77",!1,!1,null,null],["ethereum","ara_token","ARA",18,"Ara Token","3045022100ce4689aada2d1812f82ee2016d4e5fa49e6f8eaa7f27a2e5f8d2446d8b5af64902205b9cb4cbb029259596dd7caa1fef5d3f38c7de29da221f1c8c0478e58e085800","0xa92E7c82B11d10716aB534051B271D2f6aEf7Df5",!1,!1,null,null],["ethereum","aragon_","ANT",18,"Aragon (old)","3044022021c0186e10ecc325deb4941e6edbe5d36638cf96cda4b08469dea57b508a126f02200f035d3d049ff87fbc3b09dccb897675b6f49c17e856bad092418f78484bfd5b","0x960b236A07cf122663c4303350609A66A7B288C0",!0,!0,null,null],["ethereum","aragon_china_token","ANC",18,"Aragon China Token","3044022041e62673641a093aed142bc17135b9912d35aa07787e4521d8f2df99072be992022053021ada52af4aa131ccb0ca6e0f45c3c78a7598dbe6bb571b8adb1757ee13a8","0xbBe319b73744dB9d54F5D29df7D8256B7e43995C",!0,!1,null,null],["ethereum","aragon_network_juror","ANJ",18,"Aragon Network Juror","304502210093dff6a4e886a4c6421758d988bd3d5eb59e093ab1f02f3d0edda24b33daefe002203f5c13f7c6dde410b1575096561d1fdbfa6cb9bb35582e7541a1459874c8a58c","0xcD62b1C403fa761BAadFC74C525ce2B51780b184",!0,!1,null,null],["ethereum","aragon_network_token","ANT",18,"Aragon Network Token","3045022100fcf9f69e77485d1551e6cf37674dfabff1a9be52b947eb14426a44684773cf2502201a398a38ef8df93a73ad05bf77f302aa3351178d7ba367850e5f3e29228ca572","0xa117000000f279D81A1D3cc75430fAA017FA5A2e",!1,!1,null,null],["ethereum","araw","ARAW",18,"ARAW","304402205118171e800284da70e7c933a1e20e361b35b78a167d839ef067992f2d3619b4022075c7283238fb24e0db578d84b7673381106a1c644f1dd8afb16f94725f5a0f7b","0x30680AC0a8A993088223925265fD7a76bEb87E7F",!1,!1,null,null],["ethereum","arbi_token","ARBI",18,"ARBI Token","3044022040814b316ded8d6c753301f488424ef4963936ecf071749777b8e8f4fdef7bdf0220141dc0acb0cdccdc44697768ed1aa91ab6892be8cdba29907b2fbb8bfe594c63","0x5bffc45D740C213e19B68B40e9ed89705f495E44",!1,!1,null,null],["ethereum","arbismart_token","RBIS",18,"Arbismart Token","3045022100a461a53ca2e7710bcf056e118cfb0f9adfc2d2931049501546de2e615d3eb91c022028fb373fbfe9fe5bba8fc8055247b59954dc46242c7584b044767ed9e607e337","0xf34B1Db61ACa1a371fE97BAd2606c9f534fb9D7D",!1,!1,null,null],["ethereum","arbiswap","ASWAP",8,"arbiswap","3045022100e5802f6ae1e23e53e8b1d9ed19ecae263ab51e7fdde65e5848cfada6774e8bf1022018211a169b7f2fafc4b48ddbc2cb29537dfe4c50a46b3499e6a343083edf0d67","0xad0887734461aF8C6033068bDE4047Dbe84074cc",!1,!1,null,null],["ethereum","arbitrage","ARB",18,"ARBITRAGE","3044022071f6ecd8f542581881c5642436ca309b36f2de278d01c70e66f8d52b9cc4c7ce022018201e5c4387fb7a362ac44f0670410982a84cfd57c0cdd94ce643bf27fb50c2","0xaFBeC4D65BC7b116d85107FD05d912491029Bf46",!1,!1,null,null],["ethereum","arbitragect","ARCT",8,"ArbitrageCT","304402200120d1958700c9bf2625712f1960466f604dc2a2e11d3330afcb13aac73067dd022015109c2408340d3e46d31895b50564160a8cfb8fcc4d1592db26ff29d6ed6bb0","0x1245ef80F4d9e02ED9425375e8F649B9221b31D8",!1,!1,null,null],["ethereum","arc","ARC",18,"ARC","3045022100cd5208016c75f02ba30de9b486e9cfa6e44a1d494909ff16125168082282f8d302200e1c283f11553c080a98b1d62df3d2ae4092dafba79b622ef4cdafffac278966","0xAc709FcB44a43c35F0DA4e3163b117A17F3770f5",!0,!0,null,null],["ethereum","arc_governance_token","ARCX",18,"ARC Governance Token","3045022100dbf7ea91391b852669e366604b436286f4a8eb86741bdafdff49808a58146490022052524a1219b69f8b3cca2da1ae2314aca54c6cdda27884a92286d73917723e2b","0xED30Dd7E50EdF3581AD970eFC5D9379Ce2614AdB",!0,!1,null,null],["ethereum","arc_stablex","STABLEX",18,"ARC STABLEx","3045022100d18fb2155c3b4a6e1a0eb67e254875c1e38921be6aff14be88058aab10b20ae90220425c392656fd8ee5bb43ea21d64a5507f0e0416bbfd5e7e24c7181f5c2e34ac5","0xcD91538B91B4ba7797D39a2f66E63810b50A33d0",!0,!1,null,null],["ethereum","arca","ARCA",18,"ARCA","304402202d0c3f4c5f2796e97130ef3ad60c70bc61ce9487e8ef60dff0cf8acd661c0ee80220161c9a27e064b89a8fd3524bfa818801518f98f60e16cd4c0f6878e05f5142d1","0x62A6738d887F47e297676FaB05b902709B106C64",!1,!1,null,null],["ethereum","arcane_bear","BEAR",4,"arcane bear","3045022100d249fc46e8d733b83c3dce155f8051492f87980d75be8b98cd0d3baaa613cd0902205cbbc6e47f2ede06105aa11b3ad38e27653e9b6300f8cc8b9b5d7b52cc9e3847","0xAf162491C0B21900C01F4Cc0F7110238AAcdebE7",!0,!1,null,null],["ethereum","arcblock_token","ABT",18,"ArcBlock Token","3045022100b0693128aff6059e271104c53d905697e21709783009841c284178fbd097536502207349157bd688fa1351d14f54e4754887f218490e9c58fde703be7fea4e4485be","0xB98d4C97425d9908E66E53A6fDf673ACcA0BE986",!1,!1,null,null],["ethereum","archangel","ARCHA",9,"archangel","304402202d6c10f23f7e15da9b31be8dfe4c06f62f05b6e4f893c0c9fd51d3fb23f5000b02200959e54fe59494dd45f1a66c7f37f497e1b6e083757af3f34d2f7877953e8d78","0x36E43065e977bC72CB86Dbd8405fae7057CDC7fD",!1,!1,null,null],["ethereum","archer_dao_governance_token","ARCH",18,"Archer DAO Governance Token","3045022100be189308738db6aae5792f430f628924f0e729f50c7f5842e46cb63eb2e2cf5c02207a07b61c53a96195e66bc2b8279a309d47bf5622861aa3b3d96fa8ef50ed239e","0x1F3f9D3068568F8040775be2e8C03C103C61f3aF",!1,!1,null,null],["ethereum","archetypal_network","ACTP",8,"Archetypal Network","3045022100af09b27451b794fe1d9280f29abcc0bbd166d3b1e9097799445e73ef2b52ba6402205df250316af9d26e055ce8d5d44ba1834e8ad9d6b5bb4c84d346768bcedef53c","0x7b2dF125567815ac9b57DA04B620F50bc93B320C",!1,!1,null,null],["ethereum","arcoin","RCOIN",8,"ArCoin","304402201e0a57aec9a367b8ac9c99391650f9631aaf193689d60942780f942ab8a6c93002206e55bbd16ed950d00af98c09e147e5e445daf8575bb219f7457c342de3b8b68d","0x252739487C1fa66eaeaE7CED41d6358aB2a6bCa9",!1,!1,null,null],["ethereum","arcona_distribution_contract","ARCONA",18,"Arcona Distribution Contract","3045022100c1c08ff9a95a29d8fcc1aea1b89d27f38ef4df0e062e44e000af39fffe438dbf02205b7e37cacc11732a0209ef5f2db401e19f71c95599ae979d93b86eded212d855","0x0f71B8De197A1C84d31de0F1fA7926c365F052B3",!1,!1,null,null],["ethereum","arcs","ARX",18,"ARCS","304402204f86136e1a4a7636033801f5f5567def6bb2db4bff8ac5604df737b5992efc0702203ec0eb5233b32b434c31ca5486a8dcb5a44bb5b86ec9444e808873961d287bdc","0x7d8DafF6d70CEAd12c6f077048552Cf89130A2B1",!1,!1,null,null],["ethereum","arcx_governance_token","ARCX",18,"ARCx Governance Token","304502210088806a3293ea7dc311f57623297b358a0f16bf91cfbc6680413cbb183628821002203a4c1f67707ff2b5e46e599d01a1c44258db1047f1442cd496192a91987dbe5a","0x1321f1f1aa541A56C31682c57b80ECfCCd9bB288",!1,!1,null,null],["ethereum","ardcoin","ARDX",2,"ArdCoin","304402204c2236d8ee582c559d6a838c7e97e93e0e066129fc7ee97b3fb1e19601068bfc02202bc5efecc79f1c8583cf9e86e741272c16936bbe45826010a39c258b62c6d2d8","0xB8E2e2101eD11e9138803cd3e06e16dd19910647",!1,!1,null,null],["ethereum","ares_protocol","ARES",18,"Ares Protocol","30440220062a0381f1c3aa2861dcb089979d5385dbb3e6063c9c87a7fe1ad320c07581a502203663816adfc3a09334b30a3ad105562c3fa59bb7249da62ed014f606d481f554","0x358AA737e033F34df7c54306960a38d09AaBd523",!0,!1,null,null],["ethereum","argo_token","ARGO",18,"ArGo Token","3044022000f08e9fcbd9ffb5c7b06c89c150be58f5c0d986dcca86510cbcf41fd30acbaa022004160a72f099c54d94164659a86c2f4cd4b488db378ab8a677e384eb3f393cb2","0x28Cca76f6e8eC81e4550ecd761f899110b060E97",!1,!1,null,null],["ethereum","arianee","ARIA20",18,"ARIANEE","30440220140680b680164dc75b4625532c91ec80baa954600cfd3389df8397a83535edc402202eeef96d25096889e0d26a6b896adb9898452f0cbab78e094bc6fe4b52be1ed4","0xeDF6568618A00C6F0908Bf7758A16F76B6E04aF9",!1,!1,null,null],["ethereum","arke","ARKE",4,"ARKE","3045022100957548cff2c217e77dba753e68c82c3bf264d4eb9755706030485efe295017bc02203329f2e7a0324aabc6c0f54568d40be52f1a83b4cbf2f6dc4fdc94e63e137127","0xA9248F8e40d4b9c3Ca8ebd8E07E9BCB942C616d8",!0,!1,null,null],["ethereum","arma_coin","GZM",8,"Arma Coin","304402205c350b4c0abb72334e0eef66fa018d78b8f8cfc985ac4cd4da83f8ad70f2fb70022006083d3ae78859237dc8578f83320d8a6e75632ba556ecfe6c525948bcf5595a","0x0A680E503fd9ae14B62444C75ffB4BEf1F105666",!1,!1,null,null],["ethereum","armor","ARMOR",18,"Armor","30440220056e999fb864fdc4036d7a34a954b4fba5cffe18718641b5cc078525bd06596602201ff46535deac3f44d114212c479c588d901eab97fa5e1e765eeab1b9296dce5d","0x1337DEF16F9B486fAEd0293eb623Dc8395dFE46a",!1,!1,null,null],["ethereum","armor_nxm","ARNXM",18,"Armor NXM","3045022100eb2350325371a5354eeced23c6e26256e16500dadee5a3abb975c28c6a51a2db0220144676dd44b26b64a5065eb4454d657db617e7644a4996527bf2b0c717eec418","0x1337DEF18C680aF1f9f45cBcab6309562975b1dD",!1,!1,null,null],["ethereum","armors_token","ARM",18,"Armors Token","304402200a21e990a814b059f4d0de7c2eec26964d8b7c8c8ab30c3a9d7892485f01dad70220100cc73e93fc6db890649fe4b696b17580112db459f390706acf7d1a6cc633ed","0xa9Ff725189fe00da9C5F27a580DC67FEA61E3Fb2",!1,!1,null,null],["ethereum","arowana_token","ARW",18,"Arowana Token","3044022017e5172fc4c7341eb253eec15c57d5534a861d9524f276007f3c4cb221886478022004c36a6cc1d907f19b0eba7db9bd31dcb35f12794cefe3426ab3c8f5cb62c593","0x351cAa9045D65107b9d311D922D15887cfd634E4",!1,!1,null,null],["ethereum","arpa_token","ARPA",18,"ARPA Token","304302203eb01f460abc2325cc9ceec17a7484222f4bd227f079ec7262f13558ce26607a021f1b12467041668df333a2b635f0a87122a31347cbcb34afb76a7a01dac6212b","0xBA50933C268F567BDC86E1aC131BE072C6B0b71a",!1,!1,null,null],["ethereum","art","ART",18,"ART","30440220409d4ee95953467f48bac0c5cd4c949ca8534a5ef9bee72c9c93f9caac7a4c2f0220307c33ef753e30f60de304e970f6bf429cbf18d9603a92617a1d515d8afa3575","0xfec0cF7fE078a500abf15F1284958F22049c2C7e",!0,!1,null,null],["ethereum","art_blocks_curated_fidenza_855","FDNZA",18,"Art Blocks Curated Fidenza 855","304402201dd62d1f3cf99658bde6f5c67bb6893335a75f24599bc58b5e7b3e4e8622596f02203c9c2145a69d3d4675becd182ba34cb6b2b66d2d86004592730de0b82219ae3f","0x175EaF4feB0A147b5A77549389392094bf38B198",!1,!1,null,null],["ethereum","art_blocks_curated_full_set","ABC123",18,"Art Blocks Curated Full Set","3045022100aa25ac1cc212f8f12cd23ade19f067e9da2b8c9a817a7b11c7beb804db9fb594022031f55432adebc1fc8686e9077bae203a11f7984176d1ebeacfd166b70f65eabf","0x9Ff4f50efD40C915f7d1476Bf36aCB8908e0C56D",!1,!1,null,null],["ethereum","artblocks","ARTBLOCKS",18,"ArtBlocks","30440220098afd1fae1061b0ea7e068ef8368559e679d542e13199a16f94fe497143a2770220593b271bbcebf36704c72012146cb8cd87c84bd4a1bf728dae5a2e72b2b41b9f","0xF824402747e5142d04892FDc27C73E6460E80080",!1,!0,null,null],["ethereum","artem_coin","ARTEM",18,"ARTEM Coin","304502210080c3a4a8528381bbfae9df839e83dee467095c4759ca1b4fc024edffec94054b02202c9ebe6206a074b883efca9f81429272e4d8ce6352d7766782d5df48a57144d7","0x9B83f827928aBdf18cF1F7e67053572b9bceff3a",!1,!1,null,null],["ethereum","arteon","ARTEON",18,"Arteon","3044022055901359744962b01a0f44b7ad6a2955781866133bba4c8365c9fe46abaf906602203288117a85b906dfbb973248d512ebf1e9b888dd0bd1f4488656b21b536fcf98","0x897Abf83f0C44b86cb67ec56c006c00d56659517",!1,!1,null,null],["ethereum","artfinity","AT",5,"ArtFinity","3045022100f6ac8ddefe62bd523021a372ae2749bd962e08c4afdcfd41400b2027fe241b330220577948be4e85c7c7581d5fb62391ec8c73f7fa2d18e8b45294bcf3ce0b34d5e6","0xE54B3458C47E44C37a267E7C633AFEF88287C294",!0,!0,null,null],["ethereum","arthur_chain","ARC",18,"Arthur Chain","3044022016519a90498df0146423000b4a6d6ff6bfb6bbc69497f64536114d70711555d90220077c62fcf22366dc5a2e63fb1b21dea21273035b006c78c68ba33d8a14c48551","0xfEE2Fa52DE307316d9D47fFE3781D4CBA2C4f6fD",!1,!1,null,null],["ethereum","artificial_liquid_intelligence_token","ALI",18,"Artificial Liquid Intelligence Token","3045022100f50bb1b7e85da9ac104c42c0bbbbdfd34682c58fca3f52f1edb73003e6cd1385022047791d02996adf2b07efdae4c5389ccbe751ea7f4932fe228303c537717f58f2","0x6B0b3a982b4634aC68dD83a4DBF02311cE324181",!1,!1,null,null],["ethereum","artista","ARTS",18,"ARTISTA","3045022100e9fee90a9b89b83c1e5d2992cb2e82d1261f7303136ba89b50b65687b72e2f4d0220231efdbce1f6eb4b96d5ad592d1ade87e8ae4d6f25a121c2edc91a1b2ed113cc","0xF013e0ea26Cb386B3021783a3201BF2652778f93",!1,!1,null,null],["ethereum","artm","ARTM",18,"ARTM","3045022100dd5803d915e4a0bd0234d766f0f0f16c232d630690d4173545d1a90ea491c36602205f48f4bd26b6b66450f60cd4586351232fffa1953965877cffc1445f299daa34","0x19ebAA7F212b09de2aee2a32D40338553C70e2e3",!1,!1,null,null],["ethereum","artwook_coin","AKC",18,"ARTWOOK COIN","3045022100ee9601651bcb9227437270ea4491c8ad9bbfb36cb97243c3dac9491f2a0e1fca02207833a7a6ebac0eda6505e4ca12d3859e2b663c685e261133fe26d4163868fd9f","0x1Ca43a170BaD619322e6f54d46b57e504dB663aA",!1,!1,null,null],["ethereum","artx_token","ARTX",18,"ARTX Token","304402202be2c4adb185decfaa85b0aabf265dfc00bde7c70b4f58d3ca687d8714b82eab02200916685846ead394a8fec7e9f182bf279b1210861aeb6fbc8b478c76ba9b4b85","0x741b0428Efdf4372A8DF6FB54B018dB5e5aB7710",!1,!1,null,null],["ethereum","arweave","AR",18,"Arweave","304402202a145cbdc4181aca32548699c94c3ba76df47f19b770b9caa4f3a73d54940feb02207357e838fbcdf20b023cdca577098466ea5f477fdbcb8c58cab4313e52a85e51","0x0F04676403A51412B53FD264fF48a3F70A348391",!1,!1,null,null],["ethereum","arx","ARX",8,"ARX","30450221008469354593b0915f5412db43053aee67b6d5b0f0ba53aed0ae9022726cb7796e02202d75fc18182afd014c7ca880f6550b60fcdcae6965549c9fd6760d5f8fcb5fa8","0x7705FaA34B16EB6d77Dfc7812be2367ba6B0248e",!0,!1,null,null],["ethereum","asac_coin","ASAC",8,"Asac Coin","304402200a1549ea6c507c211657d4e8c82eae12b8ec86e579ad532af9d62aa908037b3702202447ba4dcb85784caa9f9fcdf3ce4358f3eb7098de67847821e41acfe80310e6","0x6913cCabBC337F0ea7b4109dd8200D61c704D332",!1,!1,null,null],["ethereum","asec","ASEC",8,"ASEC","30440220366fed44eccab9fcaa289a2e902cf13b49f597410b98d70b15c6dd5bdd32beb302204368793097813d8ccb9f082022e78f32e34f29582f1dd69a3b5eca83b870e070","0x75B02Aa1084a12b8729F5acBE1078BD450AbE552",!1,!1,null,null],["ethereum","asian_dragon","AD",8,"Asian Dragon","304402205fd22ed0890da7731352da1dedbe7e31cbdd4b81453351cdd35ea515e955fa4a0220407a031f8c776820f2d859e3f5d22d55cbde4bd348dca8caf71c50e1ecd4a469","0xF6dBE88bA55f1793Ff0773c9B1275300f830914F",!1,!1,null,null],["ethereum","asian_fintech","AFIN",8,"Asian Fintech","304402204213d48f5c8c53fe9fe10807f77e48bce394142b1b12fc6dfa851c1db669c5c9022011d3599003f54793bd408d1f0017bc02d6fd0fa9817dd8a8f2a8c6aea9f9235a","0xEe9E5eFF401ee921b138490d00CA8D1F13f67A72",!1,!1,null,null],["ethereum","askobar_network","ASKO",18,"Askobar Network","3045022100de9c101186e99b326d35be31764152ed1f6a5d6786b809c2c39348377ad50a3102205f7d0b3c2e1f6dd717b1aa7b166aaae4bd9ea3c04e17c4f0ac0d2775d2c419a9","0xeEEE2a622330E6d2036691e983DEe87330588603",!1,!1,null,null],["ethereum","assemble","ASM",18,"ASSEMBLE","3045022100cd5ac020a6c632390746c3e755908ef07f179ac950aabb79793f33c2bc5f748f02201ac8a6b8284e52b890bd1fadf591c1c04aa3043b3b00fc334b4fa8000d27299a","0x2565ae0385659badCada1031DB704442E1b69982",!1,!1,null,null],["ethereum","assetmantle","MNTL",6,"AssetMantle","3045022100b52d3eded1f6e42535d86aa725c0f00a685fbe730a986b45581c236dd9cdedcd02204bffcb566443c9b436e123262083d2cf07ddc914e87acf43c6d23719b63bc637","0x2C4F1DF9c7DE0C59778936C9b145fF56813F3295",!0,!0,null,null],["ethereum","assgard","ASSG",18,"Assgard","3044022074fc2ab9982b5a38b91221b277e550f6c1910a8ec6aa392680d7b32671bd9cc102200d89ecabb81abc9bb84a34269f76f6e1a9f9b597c7c177d349d77d7521195057","0x7C52e19E4d350189bcdfB7F7A0868117e9F195E5",!1,!1,null,null],["ethereum","assistive_reality_arx","ARX",18,"Assistive Reality ARX","3045022100e1dad028f56e7e2f087ebf3313f1dd34aeebf60a487915885d03b8c2c8d7ea420220760e6d534f0ef0dbe8214c3121aed9db7114bf538f14bd5bcbe97f8de5b14e09","0xb0D926c1BC3d78064F3e1075D5bD9A24F35Ae6C5",!0,!0,null,null],["ethereum","assy_index","ASSY",18,"ASSY Index","3045022100f6f7e2b768232c71f082224fea5ab9251a0de4ea08a18d104498527b046c4daa022051b955f2052bf7ea277952c130d39d03023f319e6fd70fee5dbcf40ba756e533","0xFA2562da1Bba7B954f26C74725dF51fb62646313",!0,!1,null,null],["ethereum","asta","ASTA",18,"ASTA","3045022100fad45d5ed82b06577fc79b368cfe9bb04d6a8fe95deb87a80d4b5c7a0d9cfcea02206810f3200e32343d9b66413b0d8b4274b94e087e9a76c9114fc57f2ff953d226","0xf2ddae89449b7D26309a5D54614B1FC99C608AF5",!1,!1,null,null],["ethereum","aster_coin","ATC",18,"ASTER COIN","304402207d27d298a91c6fafb17dc8958c70968286ecf76004fd6313a57503d11970028502204b96d820a07cf4a33f034b115396d675e5ee255d7cd9a6fdb2ee0f691c770f42","0x0eb3032bcAc2BE1fa95E296442F225edb80fc3CD",!0,!1,null,null],["ethereum","aston_x","ATX",18,"Aston X","304402206c97e1397e46a696f4f56481ec65fbf5aedbba9ff9676ebe2d73e93b5147c34c02204b23c05790422489db6b9824e3e6fe61920463b4eead3f03bfedf1003a30b1f9","0x1A0F2aB46EC630F9FD638029027b552aFA64b94c",!1,!1,null,null],["ethereum","astrafer","ASTRAFER",18,"Astrafer","304502210099b7f8c61cbf4766505be62b4f15af951730a0ef0c57249919a016f2354e264a0220637077f3f9aa33eadf2203b005b7ce8ab988a26593f1b4d9a196f6fafa8f21cc","0x97Bbbc5d96875fB78D2F14b7FF8d7a3a74106F17",!1,!1,null,null],["ethereum","astroelon","ELONONE",9,"ASTROELON","3045022100fcbfaa580e206145568a2af2cce2edfbee19cd18990c37b6832781772711f10a02207cd27986344117cbf7470ca5ab2bf01628a48374fc0a564daa65324c89593344","0x97b65710D03E12775189F0D113202cc1443b0aa2",!0,!1,null,null],["ethereum","astrolion_v2","ASTROLION",9,"AstroLion V2 | AstroLion.net","3044022004bb051669380cc002fde2238fbcd9ce236bb424dc428b06a91c4bda54315f8e02205c1dfc17dce35007f46f41eb101ccc4a44db8451de9b433d850525c7c81e1d0d","0xF9E3a323957B172FDB2dD89c30BBDA980CFAC395",!1,!1,null,null],["ethereum","astrotokens","ASTRO",4,"AstroTokens","304402201bd39515853d8a9267039c11678704a5a305831fa009ada12c8f6f3b9efad46a02207490e0e1200bf6904a413a50094a2984b7a29009c4e6038e88637527e5873f4a","0x7B22938ca841aA392C93dBB7f4c42178E3d65E88",!1,!1,null,null],["ethereum","astrotools_io","ASTRO",18,"AstroTools.io","304402207d4c8da27d3f9a6748151e5cabd041085e7bc4cdf0ff5967cad3b4af9ada6cbc02206b185251e60fa49d43fabb0b0de47ba382476e091d6ad93ed6afb80fc5269df5","0xcbd55D4fFc43467142761A764763652b48b969ff",!0,!1,null,null],["ethereum","asyagro","ASY",18,"ASYAGRO","3045022100e402ff4d5d6721aaea5be5067eb57ce759850ed28306082c33e9ac4ef9b1e66c0220785ab72bd0a1a019ff3d4b1c2ac59210c80b16f629eeb6efde948d15c7f97e57","0x017B584AcFD16D767541aE9e80cdc702F4527B0b",!1,!1,null,null],["ethereum","ataritoken","ATRI",0,"AtariToken","3045022100d7fca8f7ab66f12a674aa4ccb69f891a4fba0d12c783934f4faf701f625e35e7022042e90331e19b218924c63788de3d0c69c4382a248b50c3cffe329c4f39cb4cb9","0xdacD69347dE42baBfAEcD09dC88958378780FB62",!0,!1,null,null],["ethereum","athenian_warrior_token","ATH",18,"Athenian Warrior Token","30440220791b038a9619ec20da56f9fbdc0cbde63be2d09e93d77b2043c7364e0f108d2e022023b63d6b728feb73f8bec21755390981696929a6eaff5e50e62897398170f88e","0x17052d51E954592C1046320c2371AbaB6C73Ef10",!0,!1,null,null],["ethereum","atis_token","ATIS",18,"ATIS Token","3045022100a3de0b8dd3632df85a7ba0994c2f16eb61806d5af49dee496266cf927c88db59022007bdcd48993b7f834f6e4bb5b0ec34ac5cc161a62779291d3a37b02e76f75029","0x821144518dfE9e7b44fCF4d0824e15e8390d4637",!1,!1,null,null],["ethereum","atl","ATL",18,"ATL","304402205d49c760e0d792962f3b9b1948f26edad628cc08a996c12d83132c670035812602204175744ed7af717b3fdba4df0cf3b4fea5dfe81cf883c756cdbe47a085ca4d5d","0x78B7FADA55A64dD895D8c8c35779DD8b67fA8a05",!1,!1,null,null],["ethereum","atlantic_coin","ATC",10,"Atlantic coin","3045022100e3f7b4b672649e13823c71fc36f84a01eb524b0e187b89f9af20293ddc09f0b302204350a91dc9623dd93b62b1f8dfb6b646a26ca2bed1ffe51f88f84e8e37c82aba","0x72b2b8E42a10d785aBF85f3044223db8C9167bd6",!0,!1,null,null],["ethereum","atlantic_finance_token","ATFI",18,"Atlantic Finance Token","30450221008209c9bf8e30d2317b92313899eeab32d275bf56fd91325c54aaf488b574376e0220389e087a51f53cc814b252013337973ef8053d4d361887d34c2f3f33bac9749c","0x8c680d0dE5A9a3f6a99649d0a000225054934742",!1,!1,null,null],["ethereum","atlas_navi","NAVI",18,"Atlas Navi","3044022024f132b9236038bbd5c0e19d338745cd089e13a49ef6f2639fe4b15c9337af0002203a7eefac89f82a60537c8e7ccd3347c5e6312728c7f333bed3c664294c0ff79e","0xFc1C93a2507975E98b9d0E9260Ded61A00152BF1",!1,!1,null,null],["ethereum","atmatrix_token","ATT",18,"Atmatrix Token","3045022100e7f937f23f9229675de04d285e1c3c2d0a40fdf0d9ca110c23cc53872e4257df02207ec36d6df38f0cd0539d29fabc3cf7b451fa2b8aa396abf76b6c069a77065cd3","0x887834D3b8D450B6bAB109c252Df3DA286d73CE4",!1,!1,null,null],["ethereum","atmchain","ATM",8,"ATMChain","304402200251ad8c678fc7811e77d23d5a62b5d3a1da0771b380075e7a3556766363852d02202111897d9b7e31f2eb1a959578d85ec8e82ad91915bf3126f26dd081a6f7e48d","0x9B11EFcAAA1890f6eE52C6bB7CF8153aC5d74139",!0,!0,null,null],["ethereum","atn","ATN",18,"ATN","30450221008a63158e833dccdc1a2c261e1ce6673c73785b5361a88973a67a6c3106256697022070a0cd72a9e4a5976376cac7247eb01a004e54ec858f4fff83a0ca13c156b91f","0x461733c17b0755CA5649B6DB08B3E213FCf22546",!1,!1,null,null],["ethereum","atom","ATOM",6,"Atom","304502210082374c9bf656abb1d54890424aeaa47ab882f9e9a4e35d84dfda8dad90576a7602201b8e0dca2e3ced619aaf1d5caec8f6c85a662ea4c79800781f281e4bdd4d0091","0xdaf0b40b961CA51Fc914fbabdA8E779619576caD",!0,!0,null,null],["ethereum","atombear","ATOMBEAR",18,"ATOMBEAR","3045022100de219921637cf3f406ae1ef7ef06376dc82c520c2a256a6ba4e60bb1a45bf88002207be0a623708dc6221992aa49427003dbd0b7d3dbe177593640ed18b9c56d0c9c","0x3B834A620751A811f65D8f599b3b72617A4418d0",!0,!0,null,null],["ethereum","atombull","ATOMBULL",18,"ATOMBULL","304402203299e8ac58f2a91aea72d39d8c78210cc2d87a890a8a46e3744396a1717a4cb3022033920b82db75dc139330a7e1f82f88ddc62cf550a01ad047b4e7f59465794364","0x75F0038B8fbfCCAFe2aB9a51431658871bA5182C",!0,!0,null,null],["ethereum","atomic_wallet_token","AWC",8,"Atomic Wallet Token","304402207ee24e0cbfb496787d19a3fbad74ddff3a342253e7c21537f81a8144903cc8cb02204d75749e16190d562e2bd291455ea38cd0e935693da7b50269ee5582e89f8725","0xaD22f63404f7305e4713CcBd4F296f34770513f4",!1,!1,null,null],["ethereum","atonomi","ATMI",18,"Atonomi","3045022100c334a04eb3a2665af5d8d8b7504b293d3355bf0507e177b1664b655b839a3e3c0220231160d2707a36d5fdebb563eddabaf1e50096ea7bbbf49472538a56f8a54bd0","0x97AEB5066E1A590e868b511457BEb6FE99d329F5",!1,!1,null,null],["ethereum","atromg8","EAG8",8,"AtromG8","3044022065cbaeca74a9a014100997f1f406f95b8f0f2d671c9633461fde61358ec71c62022051cf9a72848792a3a4869254403ea1323f1464e081af375d4785dc2a685bf413","0x0A8b16b27D5219c8C6b57D5442CE31D81573EeE4",!1,!1,null,null],["ethereum","attention_token","ATTN",18,"Attention Token","3045022100e96eeaab383df6ab9679427e1d69808d4dad4ab90c65e4c9a0ba6952126c15960220540482461b6355454795efce6e4a716a16c6c3edb5ae5df29cb3a610f933a54e","0x6339784d9478dA43106A429196772A029C2f177d",!1,!1,null,null],["ethereum","attila","ATT",18,"Attila","304502210089a6fc6e682603b26a88b7ce0503cae78018102fc6dad5813cd4f2ce96558bc902202b75208ea12ded5b0cd9f7b0ebd687592e0150e937a9ab961431baee546941cb","0x89Fb927240750c1B15d4743cd58440fc5f14A11C",!0,!0,null,null],["ethereum","attlas","ATS",8,"ATTLAS","30440220452856cf6127db6c719e82d23eabf3184fcc7c8c8a07ce506d2962bfd1e32356022050fb90dc8c1677f322952f16af86deec59d5199369cabf27fb5cc59ed8c0e46d","0xb9A6644bEf37286fC08e703Ecd15e9DEDf78d3eb",!0,!0,null,null],["ethereum","attrace","ATTR",18,"Attrace","3044022021e9b98265260f161bba58ccf4fcef573bd7b861cf81827772735f0c38588070022064868d747da1313c3ee8e675a9ac3099e74199cfb3b38982d621625dc9ede164","0x44e2deC86B9F0e0266E9AA66e10323A2bd69CF9A",!1,!1,null,null],["ethereum","auctus","AUC",18,"Auctus","3045022100efd248b4cf7475ef0142166c2f7cf826e783bb275576af5aadf5d53925ab0f97022009b76193571380c685a5f6c9593bf06206a1ec082abf3e22cd6a4c8924bfef37","0xc12d099be31567add4e4e4d0D45691C3F58f5663",!1,!1,null,null],["ethereum","audius","AUDIO",18,"Audius","304402201871497cf4160d13b09740d50eeb2870f308abf38d2a7702900c033cd3ca2f7f022035b87494be49776c3f087e214c57b0106c358f537d1263db0ec49af27453cecc","0x18aAA7115705e8be94bfFEBDE57Af9BFc265B998",!1,!1,null,null],["ethereum","augur","REP",18,"Augur","3045022100ae8fe2f0e9f2b2ba551277801aea9ca52d064a37e086e4f71020f694ef97b33f022031a5d6ca5545252a34af01e83db83c1ba95918e61da0ca72d7464aad4c8fd9f1","0x1985365e9f78359a9B6AD760e32412f4a445E862",!0,!1,null,null],["ethereum","aura_dao","AURA",18,"Aura DAO","3044022017fdb835d0128447ab864bfa62350cbd9d0136307ab653291b83e67dd31f375602204b6bbc55c6239fb532d40ada71159e0b8d02fab3e7d75e6fc751d798bf94ae99","0xCdCFc0f66c522Fd086A1b725ea3c0Eeb9F9e8814",!0,!0,null,null],["ethereum","aura_protocol","AURA",9,"Aura Protocol","3044022058d4ad161e44648acd06d87a365973aeaa0adccf574eec8677eea837d577535202202b176681953145a94e256806847f598eb4550f07262ed543e9eabe087fbf6d9c","0x6417e8673DEDd7a0471A87804Bf85a559Fd8bCC2",!0,!0,null,null],["ethereum","aurei","ARE",8,"Aurei","304402202b344fe74b0f1190063091cf797d84244bc9bda2f521f4a43338bd6ca46f399902203d6a25ea616a64bc20477d5ed4cf0c7414cb3aec8230e3c82bd1c3d67c72e9ef","0x92afBa413BF9E5DA3919A522E371884bEAC76309",!1,!1,null,null],["ethereum","aureus_nummus_gold","ANG",18,"Aureus Nummus Gold","30440220011b3478005f1740b734dd58c3e4c19ba3ccd14403f4262dc8aa2ead5b21e8e5022026a183724a6ce2dda424e8bab38194374279cddd95dae5f9b7e1b5fd1b8564e5","0x130914E1B240a7F4c5D460B7d3a2Fd3846b576fa",!1,!1,null,null],["ethereum","auric_network","AUSCM",18,"Auric Network","3045022100bdf9dcd38428cf3b234ae243fe1e3cdefd316663fb147bbd3eca13125580503702202bae7d23ea95de0f6e61bcd99c0084c839669af4cfc7395825c376cb2e8006a1","0x1c7BBADc81E18F7177A95eb1593e5f5f35861B10",!1,!1,null,null],["ethereum","aurix_exchange","AUR",18,"Aurix Exchange","3045022100c9e86b8401b4eacd006e8b2bd9526ad1f8e2a2f6a09168aeabe45dc5e9536cf7022036c985238f6c176b318fba48f5ccbbb1d5483f68179d0b571fd682bfff02f17b","0x6E98E5401ADCB0D76F4DEBfc3d794B3031F48790",!1,!1,null,null],["ethereum","aurora","AOA",18,"Aurora","304402207d5c7215128522cabd9b8c5b973db4858441afa310b61cbf0640db0266fc35e10220628eaf3823f9c109bbcee6d9f090fe5248396cdfcc002a25dd6061e26a10b73d","0x9ab165D795019b6d8B3e971DdA91071421305e5a",!1,!1,null,null],["ethereum","aurora(_near)","AURORA",18,"Aurora( NEAR)","30450221008b668f325b65526524fad690ff552fed995de402177eee65c5c725b52adaa378022029f6281028976b47047e36fbdd94926d6140436b9bda93eec33a14703520c229","0xAaAAAA20D9E0e2461697782ef11675f668207961",!1,!1,null,null],["ethereum","aurox_token","URUS",18,"Aurox Token","3044022043b71d858b532128440047e9e69d6ba0c3cf299c285de1451a2e3f5de554a4790220432abe3cfb6f5d815c9e769f6e2f85005b53ecbc94d80e17cc375a5a5dc68a83","0xc6DdDB5bc6E61e0841C54f3e723Ae1f3A807260b",!1,!1,null,null],["ethereum","aurox_token_old","URUS_",18,"Aurox Token","3044022061d02f300a3f3073a42994cf52d91f09be428b26127f245787c6f6b9b42d648302206d7487529468618a5f286e1a37fcd03dbd3508a649f8e4fbb00182c6abe10c6f","0x6c5fbc90E4D78F70Cc5025dB005B39B03914fC0c",!0,!0,null,null],["ethereum","auruscoin_old","AWX",18,"AurusCoin (old)","3045022100b096b1d3770fd9eec75978afeda7b634bc46285786df2d5e78e86bb614ae96550220789c4c88561a397e7ae1683315d7a0847eb69f939dcd4fb2218126293915a165","0x54E46cC89588318e3964ca2c1Be94Db9D5cA3dFb",!0,!1,null,null],["ethereum","aurusdefi","AWX",18,"AurusDeFi","30450221009a26bac699040a0468e580fd46f7f461c0c8ba6bd3dcdd37851ea19c1fdaab6002200593ab429c13bb98be7493a4ef7624ce490fd3414f5850d56a9ad8d7564231a6","0xA51Fc71422a30FA7FFa605B360c3B283501b5bf6",!1,!1,null,null],["ethereum","aurusdefi_old","AWX",18,"AurusDeFi (old)","304402201026b989c3a469a3a6012cc60e483cd4df975ea6cafbb9e10767755a0ce27d0e022007ca0386dab3c9ba2ea22899eff23ecff5758f007a5c5368764e774bd38ec8cc","0x1EFdfC6146cAd8909817284AE99325EF1cAF623e",!0,!1,null,null],["ethereum","aurusgold","AWG",18,"AurusGOLD","3044022017bfead39c2e4b30e90d5b0c20e913d9902345467e932c0fbcfd5575f13bc5de02205b38e93baec4438eea35410009a46460e74b8d01b791edc59a833a13023335ee","0x696Acc2De564b48682D71D0847B3632f87c9A402",!1,!1,null,null],["ethereum","aurusplatinum","AWP",18,"AurusPLATINUM","30440220250bc50bd732b09a8228edb1c0d96531861cb568753a0e57243263b6f7e69842022019a549a1e94855b529767847e0d6c1d59a4bf7351d11929a1c0a162f6b2b7d9b","0xA96D47c621a8316d4F9539E3B38180C7067e84CA",!1,!1,null,null],["ethereum","aurussilver","AWS",18,"AurusSILVER","3045022100a36f640d718a6a3ebad03246686f2814a3725d1fdacda256aa6e0fdc854d1305022025710f9227337e21e18e1646455e7d45102031a9ac441880fc438b851c26c14e","0xb89903ddE3899f0280B99913168Ee833a7896B93",!1,!1,null,null],["ethereum","authorship","ATS",4,"Authorship","304402201df94d5e05697238aa25e98ffbb6dcaee6de34d5be93262944a1cdd97307734d02207953d72ab2c8a05fe6f8784ecd5ffd2ff6c63f68cfd369f6df835bd5e7df05d6","0x2dAEE1AA61D60A252DC80564499A69802853583A",!1,!1,null,null],["ethereum","autoglyph","UGLYPH",18,"Autoglyph","304402204a80e8071f0de46f8ae5e01cf62863ef841a0477de4b85aadb3721787e297d7f022045acee870428c3467599395e2d208b9fe78cf9a85384b786395a81b17a586819","0xF503BF7a7b0962205668ed041140f4af360304Be",!1,!1,null,null],["ethereum","autoglyph_271","AGLYPH",18,"Autoglyph 271","304402203478591d13ad90e589b0db224162396237997c988d618eb67f9dd2929588afc102201b8e711abf499b742fb6679cf0970130ce8666f26fbc74e099a2827e451764c1","0x8BAAd3BE0eddF4eC8fBd9BC2946a972E30741f8C",!1,!1,null,null],["ethereum","autoglyphs","GLYPH",18,"Autoglyphs","304502210088ddf7c4d8c8d33b426e99cbe50b0e3c9d249849f19791a8df9707a26d7e0b5302205c4e182aa06b096ae0fb61e39af5c322d74ccae19cc1dfaa323913aa1eaf2551","0xD70240Dd62F4ea9a6A2416e0073D72139489d2AA",!1,!1,null,null],["ethereum","automata","ATA",18,"Automata","3045022100934130cc1697ed3fa29820ba6d66ec165f6dd34315e58fb2d76f7522bd7da22f022029f23518b48b82803d36a542a8d5ea73215483f5c9aa6f54ae64a63a9f19f79c","0xA2120b9e674d3fC3875f415A7DF52e382F141225",!1,!1,null,null],["ethereum","autonio","NIOX",4,"Autonio","3045022100e722175bedba60f11023700643cc4a97a2bcf486c7cc8fedcde4d560cc89828b02205e3ee9942aa59152cb6afc0c03e589911bd98a7ff0dcf3b7190d753687b77657","0xc813EA5e3b48BEbeedb796ab42A30C5599b01740",!1,!1,null,null],["ethereum","autonio_old","NIO",0,"Autonio (old)","3044022100c79f6fec5572dd8ffc65f6053b967910e7eb253f8d3ba7a6214fe2e4b85d3983021f66aa8a260c2961a5093cee93b9a43cfd7d823819cd021a51d30ea51443be28","0x5554e04e76533E1d14c52f05beEF6c9d329E1E30",!0,!1,null,null],["ethereum","autz_token","AUTZ",9,"AUTZ Token","304402205d1690f8a20e5b02d21344737d68d4e4644ed63b1fa59c61ddc64af5027894bf02205dd2eb6efb2af32a712f925d6add349daf003890a20ecbbfcc7e160d8516f03b","0x5A7092cf86A6790113C4D3FA83f48fd6EFa71B0D",!1,!1,null,null],["ethereum","ava","AVA",4,"AVA","30450221008469ca82c7247e9d82f44d71e9edb54e167dec4d3429156b19aba776630f4b0a022006b31ba3651f87eca83bced0f564976ba6df41bc2d501540ee122387b3a78601","0xeD247980396B10169BB1d36f6e278eD16700a60f",!0,!1,null,null],["ethereum","avaluse","AVAL",18,"Avaluse","3045022100d45cade8c4ade4c2946c0d563656142b923043c5bc18c864727f14f1c03b725302203f2600a1634bd9c8dfba22659962e08287c0c3075525214bc4e0c25b85276656","0xBCf9dBf8B14eD096B2BA08b7269356197fDd1b5D",!1,!1,null,null],["ethereum","avastars","AVASTR",18,"Avastars","304502210083cdac641fe6bf630da26c7212a99ddc038c6074c1552365e5093f7dfb3f71a30220549e49414799542064fc7e03d3f812fe5d1b5a59ec52fa2e58b801fdb2d4c25e","0xdcDc1c1cC33AA817CbDBe8F5E2390BF7cc43dc4B",!1,!1,null,null],["ethereum","avex","AVEX",18,"Aevolve","3044022033c6b015c2a7e23d6a883118f33924918b5215a89ae8e37e7f0b2137ec3e70d10220265fd47e9a54d4a8d9687e19147949ca4cbf70972fab624115802dd13cd81517","0x30211F7de9bF35334c7F61545E8ed09bf9d9cC15",!1,!1,null,null],["ethereum","avt","AVT",18,"AVT","304402202e6993c75e2749c5823ac59e48f7402ded3157eb12c5c4ddce1670cc3fbc9e9a02202087f3d96d250b42e61872f0925bae2dfba2dba4424a6d88de453c8427251684","0x0d88eD6E74bbFD96B831231638b66C05571e824F",!1,!1,null,null],["ethereum","aworker","WORK",8,"Aworker","3045022100f3f77048c45e68d89b3dd725db51605ba1d42043cc1eb671b67810c70545a5960220666b5d8a96a181812c23185c502663663a30f5199955fac704e63126aaaee01f","0xA686514FAF7d54289266F483D1e4852C99E13EC7",!0,!1,null,null],["ethereum","ax1_mining_token","AX1",5,"AX1 Mining Token","304402200e4d74f8b3a246ab08afed38b4415abe97414a3512de9761bfd02a387a7cda9302202ff349e69ddeda72f0db8c4f83ec9eb36c9412bd008f63d75a23984219b60f50","0xCd4b4b0F3284a33AC49C67961EC6e111708318Cf",!1,!1,null,null],["ethereum","axelar","AXL",6,"Axelar","3045022100bbdad138957d1628743041b1b247fcd22e0c7096c1eb4e29910bc475bc5f2f2202203f12a126eecc07ae0efe8683abe02ca27a17b10b5da7cc353bdc0e568ca37051","0x467719aD09025FcC6cF6F8311755809d45a5E5f3",!1,!1,null,null],["ethereum","axia_coin","AXC",18,"AXIA COIN","304502210098286cea766c5e0c21bf648f246f48945f47c299188ee46c1db08d023cb86540022020750d4ca44fff52e99db9600c7938997bfaa26259adead59ca6c2969749e0e7","0x37c430c2b5f9Ff85e534873C715871818Ab1623E",!1,!1,null,null],["ethereum","axia_token","AXIAV3",18,"AXIA TOKEN","304502210083a41dcec72b4dd623d5e3fe0e116a6dcfd708af0e1f84b32d814e4c1b2ed205022070e01bb429afb10e936d734b0c1007576026cef32943122a0c7fefa4264f53eb","0x793786e2dd4Cc492ed366a94B88a3Ff9ba5E7546",!1,!1,null,null],["ethereum","axial_entertainment_digital_asset","AXL",18,"AXiaL Entertainment Digital Asset","304402201ac1d3da876a546578e7f713e92c68fb6baa8582c39fa3e834a35a938e1c239c022012b30a7813619df4c8583f9f984a89bb4a60ae2d2b5c412a6d25a2a271346225","0x4fAC0ccD9e2ed9fD462D42B66Fb81bA9A1f6F25E",!0,!1,null,null],["ethereum","axie_infinity_shard","AXS",18,"Axie Infinity Shard","304402200842f8ea8f7c061f90686b32a798f31706bdb9c87bb48049d5e74ee2c9d5b40402206db0d02d26106f31e14905b1c663c8ab19f04b4094442498dc32b04f6bb6983f","0xBB0E17EF65F82Ab018d8EDd776e8DD940327B28b",!1,!1,null,null],["ethereum","axie_infinity_shard_(old)","AXS",18,"Axie Infinity Shard (old)","3045022100e019dc6d1b905fcb94c731b1927de156d68d08bc0b0b5de633e1bacc17af861e02201a5c79ddd1ae5ca8e08d284a823896a8491464797e80760466f1288cc4d57839","0xF5D669627376EBd411E34b98F19C868c8ABA5ADA",!0,!1,null,null],["ethereum","axioms","AXI",18,"Axioms","3044022021bf40acb0f7f8c8afdb270899032c34dc355a93385d67bf6b51d49e378c43ba022035491bfafbaa112da231d49298c6a32bc6713868af37908f5863776fcfad8b27","0x73EE6D7e6b203125aDd89320E9F343d65ec7c39a",!1,!1,null,null],["ethereum","axion","AXN",18,"Axion","304402202dff8ff39de8f5d6ffaad5ea826dec0fae32218c1c5ec40f378a3c939277e30702200b6d02b3d74c9bfb05a341c4c657b80a9cd4acbb0108c236418e0fed90b20369","0x71F85B2E46976bD21302B64329868fd15eb0D127",!1,!1,null,null],["ethereum","axis","AXIS",18,"AXIS","3045022100cc7f930f8b32baf2983b994b1c2c4d0f6c9e216abe3cea90eb9ef68d17fa3580022053b497925c07b70f48ec10b225c11db20b73c5a99d8aa318e3f65d654065696f","0xecC0F1F860a82aB3b442382D93853C02d6384389",!0,!1,null,null],["ethereum","axis_token","AXIS",8,"AXIS Token","3044022067209a786950b76b90ac2d4ac8e0f06a66bc460dde400fdfac320778f8e0092702202219f7d84fb37e7aa768e197ccab907071dd7006e7381e359cb372432e91227a","0xF0c5831EC3Da15f3696B4DAd8B21c7Ce2f007f28",!0,!1,null,null],["ethereum","axpire","AXPR",18,"aXpire","3045022100d3a1e052062d82d65b5adb9005323612e1c1ec2fbf003504d9a35d8010dfaedb02203daccd7da75d1a2a4200d2491a8ab84b995db71ce2ddfabf1a261852942503dc","0xdD0020B1D5Ba47A54E2EB16800D73Beb6546f91A",!1,!1,null,null],["ethereum","axpire_old","AXPR",18,"AXPR (old)","304402203912a9436344b65bcc14bec4b8d931900bc29f15aa04a930e7517809b185f9fd02202d296030abc167a88b05a0194b8dcf4ceee06fa60cae9a33025e3f28fc5c175f","0xC39E626A04C5971D770e319760D7926502975e47",!0,!1,null,null],["ethereum","az_fundchain","AZT",18,"AZ FundChain","3045022100ebb8f24f5d48c5b15ceac77d93a4b3f8ff90e5227ab439ae9ef77256fabfc08e02201d253a67d862a6e2213ee156bac257f386d8b585f917c8389b90aeb9b3f0eac8","0xef7f1AAe6f60dE9f353dc170a35B8f7c7814e32B",!1,!1,null,null],["ethereum","azbit","AZ",18,"Azbit","3045022100b40976c45cd5e01f1de2458c069a31861493363c06a05c78885e9ed1ebd5d3db022062c3046f88da193d0309768b96551e12baa8cb68fe3d26157ccdda182e76ef85","0xAAAaaaaBA2ea3daAB0A6c05F1b962c78c9836d99",!1,!1,null,null],["ethereum","azuma_coin","AZUM",18,"Azuma coin","3045022100a91858a89198ac23905691fd204febec7e7e50496a61e23ead3806a3f7df1a9d02200dcf211044917fc5d69ee1c63e95c97e85fc7f549674c300e7d57aaa7757386e","0xd26a9C3437f7D121098c8C05C7413F5Cc70BB070",!1,!1,null,null],["ethereum","b-cube_ai_token","BCUBE",18,"b-cube.ai Token","3044022023650016c65c30d9ff5a599d1895a65db9c6f7e5a1b50d6cb21d99b98a50fcf8022052148ae7c7271b56f396552ffa5e185ca96d3679c06707e9e1dd4d31b06101ed","0x93C9175E26F57d2888c7Df8B470C9eeA5C0b0A93",!1,!1,null,null],["ethereum","b21_token","B21",18,"B21 Token","304402202fca8edc9342adc2be4302eca0dac67c32104506bfc5f1d2f3435b6ff3f01d1b022078e3a6f3b618fc0f6ed63904835ce21b86de28d5d0741bbd5968a6a829a22d42","0x6Faa826aF0568d1866Fca570dA79B318ef114dAb",!1,!1,null,null],["ethereum","b26","B26",18,"B26","304402205224afc19eb05110efc58984d367d2bd1654d920d22e48c9f0b36f77736932df02207ceb45977c09712aeddf21e3feb185f0b95fe4c56f9ce6c53314b43b03fd67cc","0x481dE76d5ab31e28A33B0EA1c1063aDCb5B1769A",!0,!1,null,null],["ethereum","b2bcoin","BBC",18,"B2BCoin","3045022100980797d4befe038e6ba2cd367b0cb02a5747f218015d4b63578bd3d403b1e90e02202628a6cd5442b1bb6d68b3a22be2283138d814d9948ae7d378ba511cdbab25ad","0xe7D3e4413E29ae35B0893140F4500965c74365e5",!1,!1,null,null],["ethereum","b2bx","B2BX",18,"B2BX","3045022100fd252587818561958ed85fbb8c814605fec16673457013dde98c5a4c2a7ae0c802203c8e304813398fe5de2f41af05898e1a58b4574be41f7858af639e186dfa3f84","0x5d51FCceD3114A8bb5E90cDD0f9d682bCbCC5393",!1,!1,null,null],["ethereum","b2u_coin","B2U",18,"B2U Coin","3045022100808d579f740812a34da430b6cf52ee26a48338970374ba14ebc522b18045dd18022031089ac09402e3be486e2bba172eb00bf68b66f138d2deb45d1069dfe7646e3f","0x350758E4A1256561Fd0EE142dc7e0545F561fADc",!1,!1,null,null],["ethereum","b_20","B20",18,"B.20","3045022100e0620b5a1ba0b3f4de72078bc86ce455285bbda07667c6074cb2d891fee7569f022063a65890bde492af6070257b62206f3c7c1a72f4abfae6ade036f9e59d4a3070","0xc4De189Abf94c57f396bD4c52ab13b954FebEfD8",!1,!1,null,null],["ethereum","b_one_payment","B1P",18,"B One Payment","3044022050356e7f28d28a927bdd56647700c77dfa53880400d1571af80808e5e678c9dc02207daf60d16fa9a724550bcf67a4aae22143ef8d5c0207d3e8ffed35b48a11572b","0x4B742b5bdb1D252907AE7F399a891d4a178DBC24",!1,!1,null,null],["ethereum","b_protocol","BPRO",18,"B.Protocol","3045022100c855e678723112cc0202c08027ce228c24a30f1f2a5cb12ad5cab1884238995802205445999d7d9120e47ef2f7330dac57ecd95fc0d9fd9209a588e8e110775335e5","0xbbBBBBB5AA847A2003fbC6b5C16DF0Bd1E725f61",!1,!1,null,null],["ethereum","baanx","BXX",18,"Baanx","30450221009813f6caec656744f4e353a37ffebee560187413d330e40633f90f636d18c74302201872bcca36bd237f73b9781a066559e8e2168c7638f4a8333b000548fa1aa14c","0x6b1a8f210Ec6b7B6643cea3583Fb0c079f367898",!1,!1,null,null],["ethereum","baanx_old","BXX_",18,"Baanx (old)","3045022100d637afaf07ad41d3da4ee77cb5b7ee9e98c6e0cfbf7e8be7420dd00327979af8022068712bb1745638fe70820f45d20d0d776669bd5e71e688a6481b8baf347f3d1b","0x54F9b4B4485543A815c51c412a9E20436A06491d",!0,!0,null,null],["ethereum","baasid","BAAS",18,"BaaSid","304402201c66b2cbd952947fa95a37e53d053a7327743307cc474960481523804aeda1b202205b926777d5db7b2ebc581030c7da235a9898e53fbcdb1cb2165d187985db5ab5","0x3e65E1eeFdE5Ea7ccfC9a9a1634AbE90f32262f8",!1,!1,null,null],["ethereum","bab","BAB",18,"BAB","3045022100baca7fd079a1fe3a94f001a9d4960cd57a255835250cd801c2ef9cbc5bed269b0220498b21948c00050cfb8f2e76f5e13b2495360cd8852aa12f51d665a6ec04ef03","0xC36824905dfF2eAAEE7EcC09fCC63abc0af5Abc5",!1,!1,null,null],["ethereum","babb_bax","BAX",18,"BABB BAX","304402200e2827d7c41e4f090b7f2d5675479180bc1757e09563441e0185d181c0217b1302206ac9f6a736dc0f9775ac95046b776ae2b74d8b836448a4d9458b268d73fcce1d","0xf920e4F3FBEF5B3aD0A25017514B769bDc4Ac135",!1,!1,null,null],["ethereum","baby_akita","BKITA",9,"Baby Akita","3045022100a188ecfb57defbbd0fb27491f1497799640fd6b78bba2be4bfd4a772c9732ad702207780972b02b54b43d8d918e213df53b72a7f9f5f936d31bc9092b2b9d2253ee0","0x0D6F6a130C3046713cBA425f41a65C17205dF6B5",!1,!1,null,null],["ethereum","baby_cuban","BABYCUBAN",18,"Baby Cuban","3044022057cb73798ca31750134f6e8771fced14d52ad9ee90647e42976457a30038a3690220175a8cbf817073e94e29f69fdb52d106350cd95907ceedd129e031cc3e7c580f","0xd21730353086B0D6C34656CA74F4E4295DC9B8E0",!1,!1,null,null],["ethereum","baby_doge_coin","BABYDOGE",9,"Baby Doge Coin","30450221009259061eb564c1d8d5a44f2899f1b640bc4aad48c44b8226bbbd40ca2f46290002201d17a3e21744b08aadd10821ea5b9a89499da097fb83bae442f3e5dc0a9e97b3","0xAC57De9C1A09FeC648E93EB98875B212DB0d460B",!0,!0,null,null],["ethereum","baby_saitama_inu","BABYSAITA",9,"Baby Saitama Inu","304402201c2d437e64e904870ccd26c9ed6c44f69121c5954ad9728128adf9ae60ce35f30220552e093d82ac305db1aed033def5eee2f1e690292283f6bcb30c0fa723d70368","0xf79F9020560963422eCC9C0c04D3a21190BBf045",!1,!0,null,null],["ethereum","baby_satoshi","BSATOSHI",18,"Baby Satoshi","3045022100898e1aff1f0612839f401bc3f3311b5474f3e06e536abef0b1ceb1345f1175c50220232f678b01bfd78cddd40a2dc9708df0552566533440413b3101403083e6db72","0xa44F5ae99b5400360a37dDFa69aEEB5F91Dc8679",!1,!1,null,null],["ethereum","baby_shiba","BHIBA",9,"Baby Shiba","30440220183e1fb801f8ad7ae2dd4a20224e32a604ee03ded64c1cef79e98d641461ae9302203d1ad6e19607eae504cbb89ccb0deb229aef2502bd568b2bccf29b1d1325a1c6","0x4A6Be56a211a4c4E0dd4474D524138933c17f3e3",!0,!1,null,null],["ethereum","baby_token","BABY",18,"Baby Token","3045022100ca51d3163dd1dafd8b84645c91b6195f57ffbf724016b15b6a90eca3e32538920220315ac8139220890f9ec35d607339ac6d41af619fcaa31ba15ec9edf57c638dd0","0xDB13fB60D3fDdaBc41743D9d603CE3F42C17D057",!1,!1,null,null],["ethereum","baby_trump_token","BABYTRUMP",9,"Baby Trump Token","3044022072d1aed22dd99226077f542fde0a9883a67a7e0e0987d696544fa756a4f3c720022045e418a40b2d72f21eb343b27c978050bebcac478a5aed48daed0697ebb70a23","0x99d36e97676A68313ffDc627fd6b56382a2a08B6",!1,!1,null,null],["ethereum","babydoge_coin","BABYDOGE",9,"BabyDoge Coin","3045022100e29bfe04901656f0bad48158af93fb5634e1530b68b8e0f9c1d845eeb53638eb0220673f6701ca0454217b017c33edd3371deadd52cc73ff2f23c9b41e2abbd5ecd3","0xAC8E13ecC30Da7Ff04b842f21A62a1fb0f10eBd5",!1,!0,null,null],["ethereum","babyelon","BABYELON",9,"BabyElon","304502210098a7578e358b34c13403ea0c4b1bcbc09f4d9db09fb92879c3708ebcc00b491c02200768d1b6b32f3286213cb250d7da37aa4511244211f07f139d77298256352843","0xdfb4a81727aa961b6ee830720843104fAE0FDFf9",!1,!1,null,null],["ethereum","babyfloki","BABYFLOKI",9,"BabyFloki","3045022100b0fa2187b888a4ca9a7060ce892068d665d1040201d934f9bf6873e9342a24fc02203a9be76ee3752cdea6af3c3461bd3a6fc8d1aac6b3f368ff68718c5d551b6008","0xdF35988d795d90711e785B488Bb2127692e6f956",!1,!1,null,null],["ethereum","babypenguins","BPENG",9,"BabyPenguins","3044022049c50af040a71babc117799b7702fb4d19e8cdca49112595d05498b470ce34f6022062230f78fbf16a032d657fa03b0f05edcf718e8a38c46c3711c12a4d8a1fd4f3","0xBe46985EE59830E18C02Dfa143000Dba7AC967dd",!1,!1,null,null],["ethereum","babypunks","BPUNKS",18,"BabyPunks","3045022100f55a126428013d0745cfb189435de6439e9beaa5232c6997a7e8d82f32058d17022048d18c4c2768af37df01f86c736f7b4f27fca4e1ead39645f7895d541eaed86e","0x095648BC80a7d1Dd16B85E9B84F07463a20f3536",!1,!1,null,null],["ethereum","bac","BAC",18,"BAC","3044022027d1416f7e416f1ccf651142f6012473c9cccbed0ad4a2965c79b2935ccddc540220735c85e10f08d65458cd8ff772c0db9880734451b376cd587d74840472972751","0x3449FC1Cd036255BA1EB19d65fF4BA2b8903A69a",!0,!1,null,null],["ethereum","backed","BAKT",18,"BACKED","304402207029e3534d1825452dfadfca2118410d0f7d13b7f35c967c7dc3e462c5b78aee022077213b6ed6b57fc62fe3d047c341ff7d62591234d3eb656055e1bbf46d2e6610","0x8379f52d09b9998eCbA731288EE4fE532fD91C0B",!1,!1,null,null],["ethereum","bacon","BACON",18,"BACON","304402207048e17ecea20c27b407f51f41f5f43008cea10e566f5a318e1f43db68462d3f02202c7aac1178f4eb3234b8c49659053e76604d8f6918585b4e4c513bca1bc4e852","0x175Ab41E2CEDF3919B2e4426C19851223CF51046",!1,!1,null,null],["ethereum","baconcoin","BAK",8,"BaconCoin","3045022100a945a1c98ba45f332cf866cf8addc41ee4e373b5e760e4f62a8818c31c13904402204281eb93572109812135808667b995dc3670cd3887429d39250460009f0776e1","0x3b5F11dBaC1476af17957C6e5991F21c826743dd",!1,!1,null,null],["ethereum","badger","BADGER",18,"Badger","3045022100ec9ca1453f5e5f3fa0f390991f9891a9d6062ca4cda2f64790b0faec25afdade02207f2667656c9f9686680b93fe24e236d800ea687f259df3e426f9ad499202326d","0x3472A5A71965499acd81997a54BBA8D852C6E53d",!1,!1,null,null],["ethereum","badger_sett_badger","BBADGER",18,"Badger Sett Badger","3045022100fc21a18ea76eabb9159026be819423b1dbdde719e60939544686ad60906a238a02203af7592d6134a29bfbfe53f83db6cc1d6a76fef522ebe3c78ba49d1da7d9dfe7","0x19D97D8fA813EE2f51aD4B4e04EA08bAf4DFfC28",!1,!1,null,null],["ethereum","badger_sett_digg","BDIGG",18,"Badger Sett Digg","30440220347359bf21dba8a185c810f4e4f9b383c044aab65ace30d6865e47646ccc8dd002201834c9eb45d36cfa42753c16fc6dacc203a76ffcc7635fc10c64c1d029465024","0x7e7E112A68d8D2E221E11047a72fFC1065c38e1a",!0,!1,null,null],["ethereum","baepay","BAEPAY",4,"BAEPAY","304402205c0b95790c597596ea3bbedc90432cff9a78dfc27c2c27487fe8bc0c1bf81385022059dd5f5ee28250e1c7844517ef1eedf5495bd62bebf139ab658a4b54310646a3","0x6BFfa07a1B0ceBC474cE6833eAf2bE6326252449",!0,!1,null,null],["ethereum","baguette_token","BGTT",18,"Baguette Token","3045022100b843102c531bf1307b30786a898912efe0d786afa8b5ecbb936235ab3624e9210220154b0af9ea90f701224dd5d91a8ba14b22b0d61db8c53eaaacba376dd65a3fb4","0x7a545Ed3863221A974F327199Ac22F7f12535F11",!1,!1,null,null],["ethereum","balance_token","BAL",0,"Balance token","304402200a7eb1790e2ecc0b3b69ea7e8ca11c5b0edcb3a9dfdad275712b9cff62d9ec5e022020e215209ec620d0b85f932ba38e63dc594f31aa3c2ac506ffccd0d3898d4368","0xe7049114562C759d5E9D1d25783773Ccd61C0a65",!0,!1,null,null],["ethereum","balancer","BAL",18,"Balancer","304502210081f1ec00fb3ab24726b743ab6d2576a8d3a250fb0b7f0d5600e57ef83ca799470220122f05f457a88c85749520e559c63a46b6f5ca959e77e21fbcc2cd96734d1b6e","0xba100000625a3754423978a60c9317c58a424e3D",!1,!0,null,null],["ethereum","balancer_pool_token","BPT",18,"Balancer Pool Token","3044022052140969e126ec149f7126060e5f32601d05a439dc55740254563538b406d700022010c6a7621be7e02dfaef2a77a9c80a280ee5777d1056b2a94a879724e2e06cd8","0xccfE5696b853F4b77878919BBA83e1867378C93a",!0,!1,null,null],["ethereum","balloon","BALO",18,"Balloon","30450221008aa9c45155b7390ae2c9e9a1d14136899705fee99a86e78bc0cf8166d9c6b5090220255ec5939ab6767884b6bd00b288655153e1bd656881dd191f331fe4f6461a32","0x6523203BD28d399068AcC14Db6B7f31D9bF43f1a",!1,!1,null,null],["ethereum","ballswap","BSP",18,"BallSwap","30450221008671f4d9fb7ae8978b7045dfd61a03c2996488922436f0b3ea2beaf60091d7a302200819f1d0965ea16bf728196eb592aececea4700ae6efa1f90890721d553b5ddf","0xa1454f9c704AF96636F3A7532b9a04c411f85680",!1,!1,null,null],["ethereum","balpha","BALPHA",18,"bAlpha","3044022001cc2dcda0c65aab084f0269548b99700cde153c0923b725024094b5ec97ff160220593495c58d3275a8c4b28fe35989ab657a54f3d1e076b32c1f2dc49fcf3314ad","0x7a5ce6abD131EA6B148a022CB76fc180ae3315A6",!1,!1,null,null],["ethereum","bamboo","BAM",18,"Bamboo","3045022100a99bf695c405e7f0844ec6051bc06919e78e426c072a62ad5125b6bfdf3688ba0220277610f7603146bed30d329ff2659406efc700125ea7aaa26bd1f7a0649d1d44","0x22B3FAaa8DF978F6bAFe18aaDe18DC2e3dfA0e0C",!0,!1,null,null],["ethereum","bamboodefi","BAMBOO",18,"BambooDeFi","304502210098f53b0dcd00a3d8fa269cd65e0406529d347f9dc145af3300f0cbd41e1cedc302205e69d234080c5aeee21490c4983ed74132b78d14d5105fd83718eb01c2fb75a9","0xf56842Af3B56Fd72d17cB103f92d027bBa912e89",!1,!1,null,null],["ethereum","banana","BNA",18,"Banana","30440220461f42977548765455626a9eefafe59b1020a8a34bb093cc8238c666862d0fd302200cc282e44eb9b3a5629f71ab99d95c98951b8d9ce8434fff63890c312b464ee7","0x20910e5b5f087f6439DFcB0ddA4e27d1014Ac2b8",!1,!1,null,null],["ethereum","banana_","BANANA",18,"Banana","3045022100bb5e7426c6213d3299ce864add2e0619ff5d1ff07ac54d7c784785cfcadbff09022013d2548220d4468a41cabe279933d0f83546479badb6acf9a2cd589aece6c679","0xE2311ae37502105b442bBef831E9b53c5d2e9B3b",!0,!0,null,null],["ethereum","banana_finance","BANANA",18,"Banana.finance","3045022100e0d520ec4a8c0c76edce5b5827a20c65c9f7aed7bea0f9854a2152a67599222b02207864fd86d88af644eaa954c6379726459368201f184150394144aaaa1d0dac81","0x21F54372c07B930B79c5c2d9bb0EAACa86c3b298",!0,!1,null,null],["ethereum","banana_index","BANDEX",9,"Banana Index","3045022100c3e443e9484ca2f6914a4061237b51e3817855795a969b9c8e2bd232579f26b802204be114a20bd67c6017209ebe7d7b18d3401bf8fed0117cef9abf0e72734ffce7","0xA67b8e40111A0EDD30C3210b77aadb86AD234c43",!1,!1,null,null],["ethereum","banana_task_force_ape","BTFA",9,"Banana Task Force Ape","30440220254aa133ea0d66dd6e3af0a3f48b2392281f4883a5026864486de0f02fb7e6fe022001c4ea8e5cf46cec56786d07f73950ae3fda3a4c64ad1f6994ee559c3ac82d6e","0xC631bE100F6Cf9A7012C23De5a6ccb990EAFC133",!1,!1,null,null],["ethereum","bananaclubtoken","BCT",9,"BananaClubToken","3045022100a798105d3c2fe535019e539ce83a4724171130ff62d8461368f1e88270f118260220476d9b982dd0368d500bfea3a994e1ddfdfebbb112053c053b15735ce8f106b0","0x350D3f0f41b5B21F0e252fe2645AE9D55562150a",!1,!1,null,null],["ethereum","banca","BANCA",18,"BANCA","3044022077219bf8e6f16b387baa3ad8afb71dde3b9117a5de69bd260135c8948d56be1402202597822b11bbfcb0cf18bb3895896b410362f206fb624a55b1016656122116a7","0x998b3B82bC9dBA173990Be7afb772788B5aCB8Bd",!1,!1,null,null],["ethereum","bancor","BNT",18,"Bancor","30440220502efa543dbea1ada2089845bc5e028c9c6b5cf9bd7a64dcfad9225fddc1ebcb02203dea39d972c5ba923236b098c6f371cde48f6b260dd9810a6cbe368fd8153684","0x1F573D6Fb3F13d689FF844B4cE37794d79a7FF1C",!1,!1,null,null],["ethereum","bancor_governance_token","VBNT",18,"Bancor Governance Token","3045022100a989cde325012a8f1fabba7f661527ea848a7ce1e4f716670e5c248a442530b602200474ee8046ccc3de4ff52c4b150e60df1d1daac01af26e5999e15fe102cdcd5b","0x48Fb253446873234F2fEBbF9BdeAA72d9d387f94",!1,!1,null,null],["ethereum","bancor_usd_token","USDB",18,"Bancor USD Token","3045022100ae8182054341a2b26a294000f82bd54b8f30f83d6336e057a00ec82a530b979d02201a1d46fbcba42d2e09ed5a72235b1c4de4b21d2e9464fbf3be341576048f409e","0x309627af60F0926daa6041B8279484312f2bf060",!0,!1,null,null],["ethereum","bandtoken","BAND",18,"BandToken","3045022100c0538e4e8f19c6b71b0875830dc7b5768ce28b0b9466fddfe49c02a0fcb703c4022064502122f8979af623550eaa7c1e56405b348e000ca3d2d1dd8546b61a55c316","0xBA11D00c5f74255f56a5E366F4F77f5A186d7f55",!1,!0,null,null],["ethereum","bank_btc","BANKBTC",9,"Bank BTC","30440220037fc33dc854646c1cd52f2bb97d81e47a88d61578f1020f6984877fecba915a022008cb1b3c4d608ecf4d147d75d1841a3efb558935e4efb7a6eb6299996f75b0bd","0x55986C1dcbf2fA1f3402C5Df256272621624821f",!1,!1,null,null],["ethereum","bankcoin","BCASH",18,"Bankcoin","3045022100f9d540f92e15cd77a1a3da21293f099ba8f88aef65abd4375c15186d55cb2f0a0220673ee5c7de2cfb4d95345b57a7bc01c4861b85518dfac5d7447576e1c5634076","0xb5BB48567BfD0bFE9e4B08EF8b7f91556CC2a112",!0,!0,null,null],["ethereum","bankcoin_cash","BKC",8,"Bankcoin Cash","304402206afcf30684abfe1c3ae7070e6e07a932df4e9879fb2c59094ec3c11c97e9b6de02202e3433765d30cf25a259d9387d46748ee6eedfabd5bf1a8531383b74f73d0bfe","0xc88Be04c809856B75E3DfE19eB4dCf0a3B15317a",!1,!1,null,null],["ethereum","banker_token","BNK",8,"Banker Token","304402201a7e4562d4b4dec272dd625e8967633a9f583bc94b64b3b1657444acf77edb2b022061d1520524d64dfac92e9066ba352f6c362b1636f83fa062514c302ad8d174b5","0xC80c5E40220172B36aDee2c951f26F2a577810C5",!1,!1,null,null],["ethereum","banketh","BANKETH",18,"BankEth","3044022057fe5f035b6605d7a7e1f8c0755b98d7d37c5fdfad38e4524344f5577ecc702d02206a6685da3b01291d3185cd1ae2bd13fff85fcb0762499b5d14b1a16bc6ae1de5","0xBE0C826f17680d8Da620855bE89DD6544C034cA1",!1,!1,null,null],["ethereum","bankex","BKX",18,"BANKEX","304402205637e7b667b8ef87ae29869b5aeaaa5680ccd0b713ca95cd8bb87f76b6b0c65a022040dd409943b99b9c7e7b57108c066668754623a27b3c25a2a37069ef245eb269","0x45245bc59219eeaAF6cD3f382e078A461FF9De7B",!1,!1,null,null],["ethereum","bankless_bed_index","BED",18,"Bankless BED Index","30440220554677ad84777b1d4df10c13c9ed5d68c9843d1f36f0bf3c358f87fd86e9eb9c02205778280a6387977da4fcabe824c7e642f45b37762d3c18347ad589e0a3556603","0x2aF1dF3AB0ab157e1E2Ad8F88A7D04fbea0c7dc6",!1,!1,null,null],["ethereum","bankless_token","BANK",18,"Bankless Token","30450221009f4588759e84278b66f6e9b6a114c74effdf1219d5976a312868e1b7bef1553302203242fa3a5186a5bedd85fb3f683e4e86a03871912b41fb92211e3871dd5353cf","0x2d94AA3e47d9D5024503Ca8491fcE9A2fB4DA198",!0,!1,null,null],["ethereum","banklife","LIB",18,"BankLife","3045022100b6d07709932d258a0dd1e29acdc03a5714782167bab74d62c2910e6944fd654b022007c317855fcb3ef38d41e951f1a0dfca5b05862ab15449f98c83831a636f534d","0x3FD2E747CEA0E8A78f1827ea2FfD3334628A600b",!0,!1,null,null],["ethereum","bankroll_vault","VLT",18,"Bankroll Vault","3045022100fa3378d4182d0281cdd5fed4986bd00455be003fefaa0bed210d003d26314e4e022062f006c0156430a9a424a7db2d755d7c833f67eb938d342b051ea463804d6a2b","0x6b785a0322126826d8226d77e173d75DAfb84d11",!1,!1,null,null],["ethereum","banksocial","BSOCIAL",8,"BankSocial","3045022100b38f56f62664563f2a160df37294e812a5826e37677b94ecc7b2bb96b86b529e02205fbeade14f267d10c9f84059b6ab7a9ddd5b3472adab8998e3ac3c634df49bad","0x26a79Bd709A7eF5E5F747B8d8f83326EA044d8cC",!1,!1,null,null],["ethereum","banqueuniversal","CBU",0,"BANQUEUNIVERSAL","304402201ca9454dbaf02538d10bfb7af53751cc490a13675728188ff466ebad8df7c0780220259621f65846f16300c3b7ddf92e29721c6c2b8790622db6517b6c37c907b954","0xcEf46305D096fa876Dd23048bf80F9345282e3fc",!1,!1,null,null],["ethereum","baotoken","BAO",18,"BaoToken","304402202af1bbcffb7b4c12ca2596a3dc244b96bddbd91d7ab7cb77761f8be8d139626c02203b7d30b8d3774a879da70c6d07260fc750894b543a7c22a5fd5e985b308487bb","0x374CB8C27130E2c9E04F44303f3c8351B9De61C1",!1,!1,null,null],["ethereum","barnbridge_governance_token","BOND",18,"BarnBridge Governance Token","304402204c140e53558431745734e75ac4b8e3ede7db7a2c08f12238eebc620abe05554602207e7c6a001330d562de9cf67100fbb98f6fe065fbd63468c95233b8e6b3b9ae19","0x0391D2021f89DC339F60Fff84546EA23E337750f",!1,!1,null,null],["ethereum","barter","BRTR",8,"Barter","3045022100ab1602b01ff74adb2329cde708ba76a04e331ad9b6a86ed07a2e278f085df27e02206647a9e9df48ad0a619680fe444ec4578111beb4644c8f4259e7e5d63a4ff4ab","0xF0ACF8949e705E0ebb6CB42c2164B0B986454223",!1,!1,null,null],["ethereum","bartertrade","BART",18,"BarterTrade","304402201b613b4fde63904bdc667814673684eb8ffd3b15f7c30ce3a3e6f273159123e8022011261483d9325b0dc40f2930bb75e995f998013eac42ca048634e73cbd7f982c","0x54C9EA2E9C9E8eD865Db4A4ce6711C2a0d5063Ba",!0,!1,null,null],["ethereum","bas","BAS",18,"BAS","3044022002c04b68e023ebd07ee8b996bb1aa3fe264a9f83bef66c75f33f5d4df2e0a96d022054d89fedf4532cb847518d2e66b258f8e835f2c7b76991ec18bd0fcaff18b9c2","0xa7ED29B253D8B4E3109ce07c80fc570f81B63696",!0,!1,null,null],["ethereum","base_protocol","BASE",9,"Base Protocol","30450221008dd1fd2e30e680a047d4913e254ce00a98a15d0ae885b3256b0e49e40908f03102200ecdd02a50aaa322e5178799fec2e566decc3206ec7061a9ab71ffcf7883aa41","0x07150e919B4De5fD6a63DE1F9384828396f25fDC",!0,!1,null,null],["ethereum","based_loans_ownership","BLO",18,"Based Loans Ownership","30440220439add29387081b457a7d579ed05e397bd35209b654b89d997e7051902fb7ce40220316e0286377daefd4bc6e3b8a8473cd4eb47cb2633825612f8ad2dcbd689085a","0x68481f2c02BE3786987ac2bC3327171C5D05F9Bd",!0,!0,null,null],["ethereum","basic_token","BASIC",18,"BASIC Token","3045022100d47545840f5177f71d28353cd08b88389f8bc44fd1488a8c82d6677e175af35d022073e21ffb5abef7c7b0e1f5fdaffe739e3bfd218a6f18f74e46a4da431d54496b","0xF25c91C87e0B1fd9B4064Af0F427157AaB0193A7",!0,!1,null,null],["ethereum","basid","BASID",18,"BASID","3045022100b1ed3684d6ff9e555bddb89af371246a9f3d17797ad4af7d93703f4298d5dfe702202cf8d863666d0ba1e3edd56b2adb99627660ce73583dbd230f94b34928704446","0xe33f363351186e185470f35F6DeB94ABa44347D8",!1,!1,null,null],["ethereum","basis_dollar","BSD",18,"Basis Dollar","3044022071f3d61a2aa4cdd278d1bc674f1c5061dd0e39711f9bda3efefb474754b76045022074083d841714507cdf81dd0cb59719603ae684e96673491141ecb3186496be29","0x003e0af2916e598Fa5eA5Cb2Da4EDfdA9aEd9Fde",!1,!1,null,null],["ethereum","basis_dollar_share","BSDS",18,"Basis Dollar Share","3045022100a25ce80e05d9ea0c02dbb30657e1965d2484ddb3908d4ed19237f007210711e1022009fd32890775bb3c5858276eadb551b64059d83523e1f9e89935a89dfd5d5485","0xE7C9C188138f7D70945D420d75F8Ca7d8ab9c700",!1,!1,null,null],["ethereum","basketcoin","BSKT",18,"BasketCoin","30450221008ee2c3255d36df2ec99a7eb40d447b4429ed65ca35c75370e3cd958be79b7c4e0220219afa61c4128ddbb24bc6427c7812988739ddf02da567ccd1c7ab5e49dac101","0xC03841B5135600312707d39Eb2aF0D2aD5d51A91",!1,!1,null,null],["ethereum","basketdao_defi_index","BDI",18,"BasketDAO DeFi Index","3045022100b36c83e32b6217089cab74320b6472cddfbe03a33c761d03fc736b5ebd7e1e7b02202b4edfe9dc975a9d3b693197ff6663e65f1c815f6b7057430a123fe67f7a0fa6","0x0309c98B1bffA350bcb3F9fB9780970CA32a5060",!1,!1,null,null],["ethereum","basketdao_gov","BASK",18,"BasketDAO Gov","304402204cf2d09be0e7201c2b6930615286f122fa710247db3a9134e37650d7b9d91310022028c9ada30f8e3f1fa4efe2e543426ff94d26f78b44c29d3e462def7dc02949f2","0x44564d0bd94343f72E3C8a0D22308B7Fa71DB0Bb",!1,!1,null,null],["ethereum","bast","BAST",18,"Bast","3045022100fd8efd357bc9faf22750322e5246738789e83e5aa482b79a6e991951aa05de570220766c074db6c97e73f18569934be68d95299c55f7b010542eb5ba446023282c24","0x47eB79217f42f92dbd741ADd1B1a6783A2c873cf",!1,!1,null,null],["ethereum","bastard_gan_punks_v2","BGAN",18,"BASTARD GAN PUNKS V2","304402200dbba8a39e36b0354585cd3e36bc035e70f10d5e56cb189ee4befdae3fce610802204c9fda600e07c98355835831fa6edfb8c6f4902898e68e9acbd62a4ed1c6b484","0xc3B5284B2c0cfa1871a6ac63B6d6ee43c08BDC79",!1,!1,null,null],["ethereum","basv2","BASV2",18,"BASv2","3045022100ef5b8def3ecfd2fc87ab2c8b8e7a6cf4550e9685d72445f9ed353de1507c81fb022068cf0ee7060a22b26854bea8c8ac9edba9bf1cbd02e275b60f6f4538fb98a957","0x106538CC16F938776c7c180186975BCA23875287",!1,!1,null,null],["ethereum","bat","BAT",18,"BAT","3044022039e883d49cbb10e86805276c332d4c4d21255f1dce816cb54fefe5484126316102200095596e74662661c93b7f31c0e9282e33a5715134c0e7d3a98cf5a4637ed5f1","0x0D8775F648430679A709E98d2b0Cb6250d2887EF",!1,!1,null,null],["ethereum","bavala","BVA",18,"Bavala","3045022100ab05ca3ec56963b6db7fd24112fc84bf3ed7e305416e6b796519c0cf6f424f16022023cbbabc05ad91b0b84b041a8925f1fbce40bd959e3b0768c1a1df0bdcd66c51","0x10d88D7495cA381df1391229Bdb82D015b9Ad17D",!1,!1,null,null],["ethereum","bax_","BAX_",18,"BAX (old)","3045022100b4b26f7f41a10c82b4f0d6dded4ddebbd99ed114e0a6fc3e60718b9397321b9d02206ce60c863eb2cbce16d90f1865f2d28b415b5e302bc787217c3ad8e149505b50","0x9a0242b7a33DAcbe40eDb927834F96eB39f8fBCB",!0,!0,null,null],["ethereum","bayc_history_-the_great_floor_sweep","SWEEP",18,"BAYC History -The Great Floor Sweep","30440220100de157eba7d6035951c7035bb175b4f1b8f30595af2d7d92580871068dbdfb0220591cd6071324d01a0819ede1bcc42945bb4edd9825a0d8b8bdcd155b00930c8f","0xfe2a5B942083d92135C7fE364Bb75218E547CC62",!1,!1,null,null],["ethereum","baz_token","BAZT",18,"Baz Token","30440220518e0980ba0a3caf1bdd58d4ac4ccbc3012c309894f1cfc0c17d4d4311c6cc32022055e9b4e28adfb447b7e52c6688d07cf4dbf98e75ae3d9c7d97d20682fbb43694","0xB020eD54651831878E5C967e0953A900786178f9",!1,!1,null,null],["ethereum","bb_verse","BB",18,"BB Verse","3044022002719138d0b0536faadc13ecd701c8c3dd00b01d2578703b5f68d9fc75626f2f022078749e552ee3b07267a6790b2cb00b1edc41381f217df0277b6a32a5381ec5ad","0x43520512AEdb98f463a129EC75db30F7C33EA222",!1,!1,null,null],["ethereum","bbn","BBN",18,"BBN","3045022100a0f39eaa75542708bf68acce6d08f018768680e7f92d42c54ec32185eca68ef402206d19fdf7a42f31fc1a5fc97c20f665d147cde53489cfa3c29a26be46d7f1414d","0x35a69642857083BA2F30bfaB735dacC7F0bac969",!1,!1,null,null],["ethereum","bcap","BCAP",0,"BCAP","3045022100919f176f9e81d18df3b5462af8fb5ddab8cbfc01edffcf8e2be53884972e52b1022039c3a5db9c0d2bba18222c245e420e8f2d1b6c0fa8689bfded2d2d9394790293","0x1f41E42D0a9e3c0Dd3BA15B527342783B43200A9",!1,!1,null,null],["ethereum","bcat","BCAT",18,"BCAT","304402201d4d2f793a0001e7fca14f1381d935109834edb732b8b31f2db2977a858b39bc0220401993e4cee2efff89b5c1611fe215c3e9bd31ba226771b0f14b938c4a071451","0xfDEAA4ab9fea519aFD74df2257A21e5BcA0DFd3f",!1,!1,null,null],["ethereum","bcc","BCC",18,"BCC","3045022100f56e3086483bd16c727b7e6602961e413462cf5894849d00ad56e6060a2ff19802205d10f2b604d34a77376877f9b41b45958ebd04aa330ab2182c43ac0d8b438044","0xaE17f4F5CA32F77ea8e3786db7C0b2FE877aC176",!1,!1,null,null],["ethereum","bcdn","BCDN",15,"BCDN","304502210082ac1d889d0472f8101a6efda596cecea2c48f6960985b1f0374d90389c77047022020f4a4e6c978a9b12816141a6bd2db3d23015c02cbe8f1ac71a38233d28396c4","0x1e797Ce986C3CFF4472F7D38d5C4aba55DfEFE40",!1,!1,null,null],["ethereum","bchbear","BCHBEAR",18,"BCHBEAR","3045022100d555caff094d77182b79b01850d4f7e35fc8fdc3f58d90f15b8d5f079545009102207fb06a26a0d2515797e1f7e74d33be230f7cff7ddf0bd000cb50ca8baa95e5dd","0xa9fC65Da36064cE545e87690e06f5de10C52C690",!0,!0,null,null],["ethereum","bchbull","BCHBULL",18,"BCHBULL","30440220660e16d72755fbbc9decf09491c40945fb977d8eaffa3959e374996d0b7a09460220681abdc3194fd036f8696ba561c0413fa6ad195673b07bd01651650be3f178cb","0x4C133E081dFB5858e39ccA74E69bf603d409e57A",!0,!0,null,null],["ethereum","bchc","BCHC",18,"BCHC","3045022100eb0a759365a972f2d8985969112e42cf8fff0da686c0b4318848b109c36f936602203d8bcaa942db855d2d1660476d2fdf38e727608e55ac38e0c5d73565d96e1965","0x2ab05B915C30093679165bcdba9C26D8Cd8BeE99",!1,!1,null,null],["ethereum","bchhedge","BCHHEDGE",18,"BCHHEDGE","3045022100dc34d391e8809ff2d7d73519144376c651e3ab2fb6967a7a6b10f6e15f6242980220409b5401b096fa92dba24e36fab425ecf59f298a4e2eb49503c5bc1092491cc3","0x02E88a689fdfB920e7Aa6174Fb7AB72add3C5694",!0,!0,null,null],["ethereum","bcl","BCL",18,"BCL","3044022014da13ed17cee21b85f772d7848e2b82e600d0499e70eddaf657a09192bd4f3302202b147127c389dd1d1504c248ef2b15acbe40c839f1cc3c58a0eb4b146afb4172","0xbc1234552EBea32B5121190356bBa6D3Bb225bb5",!1,!1,null,null],["ethereum","bcp_coin","BCP",18,"BCP Coin","3045022100a25626a8a13aecab523d46f08cab993a0e5ebcbeed5d33b4421db3a88f734d71022075f713d881bc0937765eedce72778ed20a4ef76172e75a7857eef30a208a7b75","0x4612021C75809160Be60DB21fBc9D6adD0B32deF",!0,!1,null,null],["ethereum","bcpt","BCPT",18,"BCPT","3045022100fe1dc522f9c93ecf932c2066ca66c70a80913c1f289c57081df30bbb1d153e2b022034769423db3748b6707033093c1563c7342bd875a6bb4691d628252be3046165","0x1c4481750daa5Ff521A2a7490d9981eD46465Dbd",!1,!1,null,null],["ethereum","bcs","BCS",18,"BCS","304502210084dc24c05cbc45cac1a37fbbe6e39bf641073ee112670246c401aaeb6621e45402202f939d2629a88d3472b7bda3a7f7245311b405c50d40cc1c74bb768b63bc1661","0x03066dA434e5264ef0B32f787923f974A5726fDc",!0,!1,null,null],["ethereum","bdcc_coin","BDCC",18,"BDCC COIN","304402204b4d09567b2eefb721830218347e2f6bb2800a2f6a9292a40864b296b45c44ae022041f5598c192db7ed5319c32e25c4e4304e478a81976f7ffeb8aaaca38775e4dc","0x3a3547D62e9f9E76F99d51D5AB4F07AAE0Db2dBb",!1,!1,null,null],["ethereum","bdk","BDK",18,"BDK","304402200e8aec917ad5bf0a06b512c7c5cfda9c35a64203684c897d88d7d4fa126ebb1802202efb83b616218ede847d9d8dab5ad281b60e939fdf1c95d4f8b97425760ee202","0xBFc1502EBC37475B940CED8F036B91018a73C8F6",!1,!1,null,null],["ethereum","bdp","BDP",18,"BDP","3044022072ee487c4b4bba65c52b60a8dd72723de8b95b160d9322f2f54e95ad109d3a13022054a6310c917c5d34244f93679e1bc19f30ae18350ddd9ded573f0c2ea8a2f210","0xf3dcbc6D72a4E1892f7917b7C43b74131Df8480e",!0,!1,null,null],["ethereum","be_gaming_coin","BGC",8,"Be Gaming Coin","304402200dad257656f710dd76287ec8c7cd12f2e710d003a15959eeddde2047138afee1022064cd9188d43d238de9f9978cb74e201622edd099b3b0a89a3f07a8af8867643b","0xD34c9281585866A9fb2af0931adb1fA35ed44039",!0,!1,null,null],["ethereum","beach_token","BEACH",9,"Beach Token","304402201643498ee8cf8ddc1bf8306508350f45f97e70e7adab6e9d5e69704826c3515102202dbb33c48378662894a939c97adda28d96682a2b789d9ae8a110565df8e211aa","0xbd15C4c8cd28A08E43846e3155C01A1f648D8D42",!1,!1,null,null],["ethereum","bear","BEAR",18,"BEAR","3045022100a7441a401304b8bce7fe0db0e012b711c4fd04d6472484895689df89e63c2793022012f5bb40fdaa5a625868bd387dca8181ffcc874b622b44f48e96539a9fe493f7","0x016ee7373248a80BDe1fD6bAA001311d233b3CFa",!0,!1,null,null],["ethereum","bearshit","BEARSHIT",18,"BEARSHIT","304502210091816b8b18db9f3816938838ef4503e087ec89a1db2378f44cc6d06cc388cd01022005d9479cdea5fe409cb2f7fc1b406289cbb69c97ff0b5a8eb39f1c76aba8d0d7","0x48dEE19C81B89A9aB473361bAE7a19210f2DEaA4",!0,!0,null,null],["ethereum","beast_token","BEAST",9,"Beast Token","3044022023fff0293527c42d75430e31495f16e7b747c827533c09b1599abd44e11495e6022067a4fd4eec9306f57b4bc80d5eec781342f254e9d9ad29e531e5d533a8e2003b","0xE72834590D7A339EAD78E7fBd1d3c7F76F6eb430",!1,!1,null,null],["ethereum","beat_token","BEAT",18,"BEAT Token","3045022100b9bdde1f1c912f4146cff73435a1d057aa9196b7a18628abc88cc9a128e001e402200ffc1cdfa11f52c1b95dea0dd96389b229c2d9077b21ac4bcd4681abf5f3039e","0x2Fb12bccF6f5Dd338b76Be784A93ade072425690",!1,!1,null,null],["ethereum","beatbind","BBND",18,"BeatBind","304402200cde457cda2c8c07e24f847f97ad648e1910f6c74a19373f5b32f06c44b1fa0b0220713bad6d09adbbfcccc696047796a950d969672864f6869a6b06b81853c86314","0xBc0d84FA6260E065F330d51621d682d2630F4Aa2",!1,!1,null,null],["ethereum","beatify","SONG",18,"Beatify","3044022015ade29af62818ca9318a254019782d8ece4e18695be906f9ef11083afd0c5e302203a662caf0dae7d597486eeb682868e33cc6c2b9252be83b752c3450022758e37","0xA18A0bE599366C8e2fFfFD83A2418a3cCb825d7f",!1,!1,null,null],["ethereum","beaxy_token","BXY",18,"Beaxy Token","304402204e14dab3adc693a559919168e10e1b712d75078242b351631a2f7de5f00e3b8402206cb829ba8fcfb82f7652fd3a64caf7b4d037c032a3df117febd2d7128f1caaab","0x827D53c8170aF52625f414bde00326Fc8A085E86",!1,!1,null,null],["ethereum","bee_coin","BEE",18,"BEE Coin","3045022100c0a6c74210d613da2a864205641ca50105013720e4a61a310862c87823c7b960022010c037977db4274fd6ac458e231f3c3b7d6364a1e722c6dca2b95cf3f7fce751","0x1763aD73694d4D64FB71732B068E32ac72A345b1",!0,!0,null,null],["ethereum","bee_token","BEE",18,"Bee Token","3044022061e5e2ff64ce2916a075784e1cbf22fbb4966b79ea4626d554ea2e9e38dc278c02207090abe4e85bb8e4e83fd748bedd65976e97188e6da3340c86e69a833eaee7dd","0x4D8fc1453a0F359e99c9675954e656D80d996FbF",!1,!1,null,null],["ethereum","beer-inu","BEER",9,"Beer-inu","3045022100cc54e01cde0150dcf0630eb170de69f1af36cdf8d9340a1213e80ff4fd410273022023cba5b2b5ca26d1de0958d17a0e9df882cbcb0db0fa9d60c47fa64317fba3bc","0x2E92864240819E2286d440B0c477077Dd660b340",!1,!1,null,null],["ethereum","beercoin","BCBC",18,"Beercoin","304402206bfd8fe4a5615e2d82bc99cd161db014774db72f227cb388921053fdbeeb8fd5022045de1fa8845940cda40a947719f6fc5e13f6a69bb4878acb65b8be635b7ad011","0x7367A68039d4704f30BfBF6d948020C3B07DFC59",!1,!1,null,null],["ethereum","beercoin_","BEERCOIN",0,"BeerCoin","304402207bd6af1bec8558413cbc302ad03f64df50b47f161791f2b47cb9559a949c598e02200c6ace7e22c23b78393e983d7c6f1561675fc1412c211eeb49307d7fe00856aa","0x74C1E4b8caE59269ec1D85D3D4F324396048F4ac",!1,!1,null,null],["ethereum","beeunity_chain","BUC",18,"BeeUnity Chain","3045022100ec2742a9fbcf10d86c34256ad55590e0ecc91ec4962f2c485784eb9230fb871602202786c78de9267d547211f3123cb8ecc522c18cdc8f3e843bfeb5047354531a79","0xCa3c18a65b802eC267f8f4802545e7F53D24C75e",!1,!1,null,null],["ethereum","behodler_io","EYE",18,"Behodler.io","304402200ccb89b2de67b53974a23b3c260bba8e001de03428a485bcad55dac39fbdeeec022070059435abb83b114fc8222b55bd9428bd7110c4366f63d64846d5d373a3923f","0x155ff1A85F440EE0A382eA949f24CE4E0b751c65",!1,!1,null,null],["ethereum","believer","BLVR",18,"BELIEVER","3044022079f40f120efce3b64b07c1f5add45758baa32b97e1037ea7d1278501f47f8248022032c0af289d106b0c60f2f660513efa2d5aadbb4d081fa1126d8ba45386f0c88d","0xD1ef9a7310D0806855C672288EF5a1BAB62ceF33",!1,!1,null,null],["ethereum","bella","BEL",18,"Bella","3045022100db27859f62f15d2cd0b646d141a571bda727428de531556e9fedae787711bb0d022074274f14e5b99b16cddda99dd58788b07d67c13908eb8c173039db0db3fa4ea7","0xA91ac63D040dEB1b7A5E4d4134aD23eb0ba07e14",!0,!1,null,null],["ethereum","beluga_banking_infrastructure_token","BBI",18,"Beluga Banking Infrastructure Token","3045022100f127bf1105b9f2d9f96c6df80f88ca85394512cf0de014ecd6895afed889386102206a2f33c1487236c5fc0a658ff5618532dee4050b77c930dccdf8a1c794fff15f","0x37D40510a2F5Bc98AA7a0f7BF4b3453Bcfb90Ac1",!1,!1,null,null],["ethereum","benative_digital_voucher","BNV",18,"BeNative Digital Voucher","3045022100ec590f751e8bec80a569a27f8ba312d571a83ccac3c299f07e231c616de02ad502205750d257c6c6ca5b0840fc834b0343641589f678206a641854d6749cebecd950","0xbBDce056cbe561EE004094c75099172E7e3b34DF",!1,!1,null,null],["ethereum","benchmark","MARK",9,"Benchmark","30450221008faca2f961787ef3a71a8e2c6149bcb82fced94c6540827af09ff43002c98b8e02202d7530437a78ddaa3345450d79ed2c5b1d10f4520f16b6c1ea4049e8d2acd2d5","0x67c597624B17b16fb77959217360B7cD18284253",!1,!1,null,null],["ethereum","benefits_coin","BNFT",9,"Benefits Coin","3045022100e4466b90bc06a6ea437660b2c2bcf271b61e69f1f46b0c80f6b73a4c85f8124c022047bfecb2dfcc097d0bed1e6e1be55251711e0d03e4a001ef4deced78fc0d6667","0xdA2C424Fc98c741c2d4ef2f42897CEfed897CA75",!1,!1,null,null],["ethereum","benepit","BNP",18,"Benepit","304402205863c647d9911f2107e53fe670bbc90304c30f7a93c49a53a4a1e1d0d744fce902202995c80ebd55db84ba053945d710498fdbdc50f40b770c8e821071c9ba2321fd","0xD27D76A1bA55ce5C0291CCd04feBBe793D22ebF4",!1,!1,null,null],["ethereum","benscoin","BSC",7,"Benscoin","304402206f6462646925fb43bdd91b57d39268571787c1ab1fb5f1b7727578528a9705db02206c34918d8d3cc6707c13f83c14281ff9f7d58e73caea8d8337ab1229ee7ade4d","0xcfAD57a67689809CdA997f655802a119838c9ceC",!0,!1,null,null],["ethereum","benzene","BZN",18,"Benzene","304402201b9590bb137f50276d2143dbeac5046e411cd9a790893a87dac88267dda7673202206593322c2ebbcb0634b613e736e4ef30761eef8408266ddb0e515271d85a1722","0x6524B87960c2d573AE514fd4181777E7842435d4",!1,!1,null,null],["ethereum","beowulf","BWF",5,"Beowulf","304402202c2e689dfad5f34ac619d23ce4b611c5e752b2a795df6f1608ebc032e51651b102204be0c6e61ec04dab0a7153a8d7bdd257897aa780c6a4faa3a3f3c1ee0a1e6466","0xF7E04D8a32229B4cA63aA51eEA9979C7287FEa48",!1,!1,null,null],["ethereum","berezkadynamic","DYNA",18,"BerezkaDynamic","30450221008601e093123ac9f94d871dcb4d1f65d2fb9fa0ee3a25a5f0b3d87bb8620ed1be022064fe07e37c120c8e3298a7437d3f746ae8aaf42744796c077c016137d4709624","0xdC76450Fd7E6352733fe8550efABfF750B2De0e3",!1,!1,null,null],["ethereum","berezkaflex","FLEX",18,"BerezkaFLEX","3044022074dcab5e81b2621548e59bc57cce897ec251c32f9b84ea8b7e0cb87e09b50f0202201414ec9ca997e55d1cfce7b9f1fa96cf3d99b4d89da5f893e6e9a9ad327b9de9","0x0D7DeA5922535087078dd3D7c554EA9f2655d4cB",!0,!1,null,null],["ethereum","berry","BERRY",14,"Berry","3044022071bb7e4747f2d390ac385b013f73174f1289bfca3dca9c601931bfff088e2f40022047f7b1eb7735fb5a1da1562106da9ac3bf0e12f70c148d9282e6b8b125fbe9f5","0x6aEB95F06CDA84cA345c2dE0F3B7f96923a44f4c",!1,!1,null,null],["ethereum","beshare_token","BST",18,"Beshare Token","3045022100dcfbc4d9e4cac77018ffcf0b19de5ca55639b4d1186103b39800da387670fb8902204b393fec238f1d0f0e49ed791975719e2ff795a11b9a722dad3bf02c96b3a750","0x0B4680e848f842b86E4Df38D9FA0d9f9419F37EC",!0,!1,null,null],["ethereum","bestpick_coin","BPC",18,"BestPick Coin","3045022100c195c1d69c0375b923dd333eee5e8c2f60498b7a5d3ca651f6271103df3aaf4202207fb90231a6edc53b6f07f1c09a4a26ec868d59ac35c5aa9a3845386c3197d15c","0xE865A04Fb0d565107eaF9049Ef22c27DD0c4bBEf",!1,!1,null,null],["ethereum","bet","BET",18,"BET","3045022100da0db5630f3df7aabe8953be3d54690b82f7e42c9a5c21c0047fec3d79de8d6d0220681019f74d7074422a80d35e2548a7c89a160d0abc6b23859ba1873099134b9a","0x8aA33A7899FCC8eA5fBe6A608A109c3893A1B8b2",!1,!1,null,null],["ethereum","bether","BHR",18,"BETHER","30440220356e11e31d0dd4788438ce1394ab851592841fdf9634df9a45b40b078bd3d4950220271563fb483b44bdb21ea9aca132610c07a1a22e842c95e09d47a563ecc37903","0xfe5D908c9Ad85f651185dAa6a4770726E2b27d09",!1,!1,null,null],["ethereum","betherchip","BEC",18,"Betherchip","3045022100d96c4795e5e44ece202fa47ef0477db90324b4f7c58ea2f678693c63eed503570220695494876b9d237a84a7942ede0da72728d3099d4909f24d8fbe0f2f56160148","0x59C033Ec65e6B9C501C1ee34fb42f2575da4B517",!1,!1,null,null],["ethereum","bethereum","BETHER",18,"Bethereum","30450221008fce5d054b33a40591740908092554b772ddaa9ded891f484d345c61b9d793e90220261e16970f66b1c43823a3a9a002e6c88992ff4d1f3a1032b1a599349bdfab9d","0x14C926F2290044B647e1Bf2072e67B495eff1905",!1,!1,null,null],["ethereum","betking_bankroll_token","BKB",8,"BetKing Bankroll Token","30450221009e9ee6290c0cb0df33a58198f91e3c402fdd3d991b706d91164e4d04527ee64102200566a956d1fb804840f2049037b022e89bca8028bbc0da9d781a8bcfedfe5013","0xB2Bfeb70B903F1BAaC7f2ba2c62934C7e5B974C4",!0,!1,null,null],["ethereum","betnomi","BNI",18,"Betnomi","3045022100dbcae127180107740cef466a0bc3a4359beba553b4e3b28efadc2296f4432015022035c852eb4a5e9b40fd8dc46921ce9f0ef911ed8770ffed160575e42852eef6e2","0x4981553e8CcF6Df916B36a2d6B6f8fC567628a51",!1,!1,null,null],["ethereum","betprotocoltoken","BEPRO",18,"BetProtocolToken","3045022100ae4d2c1def990244a6f700900eae2a2de217da9c8656abbb16a8870a495d10e902205825e638962972a5c4c9719d8b10b88213c4ef7a7eb260a433475481ca88a28c","0xCF3C8Be2e2C42331Da80EF210e9B1b307C03d36A",!1,!1,null,null],["ethereum","betr","BETR",18,"BETR","304402200f26ae3b6d90653eb60c714c76e8643944eb2557905888c583d67a108e07b0720220552d20a11384e12e8e7cf4281051c327f42266daab661767147aa9b5bf9bc95b","0x763186eB8d4856D536eD4478302971214FEbc6A9",!1,!1,null,null],["ethereum","better_money","BETTER",4,"Better Money","3045022100bac2ffe2a771b252294818c305965bc36aceafb9ce802b3602b9ea1a28d6218c0220314c89e377d40f4eaf3e16c7e2867e62cdd5091803a2a3638ef0054f4958e862","0xA7925aA2A6e4575ab0C74D169f3BC3e03D4C319A",!1,!1,null,null],["ethereum","beyond_finance","BYN",18,"Beyond Finance","304402203fda936f2408fc1f0e0c1c4650c42549e06b2520ebbad5efde395db1ce9e6318022068265fc1a5a0bc62f46d7d83a4f9e4ca0baad4fb9ce29b7f695dab772f1309aa","0x4Bb3205bf648B7F59EF90Dee0F1B62F6116Bc7ca",!0,!1,null,null],["ethereum","bezanttoken","BZNT",18,"BezantToken","3045022100dffa6325a13c7472fdf0a5fb4727a7a4ffde070cc2d693aff83955382e0d01c5022028ac30d9055e22ba7fc9e4326a21252acf0c0d5a76692821a3de7da9e5e950c7","0xE1Aee98495365fc179699C1bB3E761FA716beE62",!1,!1,null,null],["ethereum","bezoge_earth","BEZOGE",9,"Bezoge Earth","3044022041936e40c46219cb58cd579df7f016b49f765867dce88f25746c702e606b6d6602201c45fc9e4b812c93faa83d0b68e9900dd93893babec7af964d95666e8f57ae97","0xDC349913d53b446485E98b76800b6254f43Df695",!1,!1,null,null],["ethereum","bezop","BEZ",18,"Bezop","3045022100be3aa1deddc278ebb259cb38e77ad682c220631e2adadb6a24e117173d4225d602204ae988e35a8021046ee198c21d19f505cc3ea9cd51bef0aeaa55353a08448e2c","0x3839d8ba312751Aa0248fEd6a8bACB84308E20Ed",!1,!1,null,null],["ethereum","bf_token","BFT",18,"BF Token","3045022100ad0c62df1ea09d94030faf231f4f4dcb7a0ae016b210def9e699235524b8f6de022054e790ae163ee1ee4f8477ae0ef6ef330dfefee01800db3247d94207e1b6505f","0x01fF50f8b7f74E4f00580d9596cd3D0d6d6E326f",!0,!1,null,null],["ethereum","bggtoken","BGG",18,"BGGToken","30440220446bf2a468492eb5cc483f756d5bb16908bc089f0f2b53f7b350c5815e413e01022018ae501e0b550098a54803742943ddcba0f7a19f6622d20796bef0c1920ea559","0xEA54C81fe0f72DE8e86B6dC78a9271AA3925E3B5",!1,!1,null,null],["ethereum","bgt","BGT",18,"BGT","3045022100a11fc2097c66ea8919abfca22b7ddb553769f57814ca42afe598f62f080ad54302204eb3cfc1bccebe647be3f03aee3bfb838a6856e52f0117be4c422a30315a82c7","0x5cBb89B03534D82692b183882c2A2a9Ff7FDeB44",!1,!1,null,null],["ethereum","bhpcash","BHPC",18,"BHPCash","3045022100ba21b9e15cf2e572d987c1db6ee69d05dada118df6e987cb4bd4da82f34184760220032c28f5bb5788e7781b231d4295732d20d3ade061353c502d61382256c77111","0xEE74110fB5A1007b06282e0DE5d73A61bf41d9Cd",!1,!1,null,null],["ethereum","biconomy_token","BICO",18,"Biconomy Token","30450221008e7bb2a943fea09424c6247f79e4dfd39ab669ed4b9584f22c2eb47f20a20f9f02203ff9ed2e88792939880dfe6f5f508a2f8302d568c1a6bf5e938b1832a24123c9","0xF17e65822b568B3903685a7c9F496CF7656Cc6C2",!1,!1,null,null],["ethereum","bidao","BID",18,"Bidao","304402205bb81f04ca9ada5cf0856fc8d34506ffa8f1f413d0699debcfecd338aa2c3629022035147a2542427de10ac0467a1674320c4cb01527970d86191f4309d9c12d6ca6","0x25e1474170c4c0aA64fa98123bdc8dB49D7802fa",!0,!1,null,null],["ethereum","bidipass","BDP",18,"BidiPass","3045022100b29eae86191a2e3273fc0d09d550c7e3487e18fedf3a7ce670c83c2641a21fb1022046e5d93910987ae613418900db1247e70cc02c991578a4106457ad28e4662735","0x593114f03A0A575aece9ED675e52Ed68D2172B8c",!1,!1,null,null],["ethereum","bifi","BIFI",18,"BiFi","3045022100b24832aaac1f56cec16a5fcb99c6c19419e65d433f048484e4d7730a0cd844ae02207d770b858602d3ec85153ba09780de64fc756fe60330fa71731cd54dece3698d","0x2791BfD60D232150Bff86b39B7146c0eaAA2BA81",!0,!1,null,null],["ethereum","bifrost","BFC",18,"Bifrost","304402204b542b73e9e99bb4a1389e6aff4f2e8cf0b07cc083df449c5b60e540168abb9a02200661c619024bbeec0410729f35c6eda6079bf14d30279992f80b7463f5921633","0x0c7D5ae016f806603CB1782bEa29AC69471CAb9c",!1,!1,null,null],["ethereum","big_beautiful_women","BBW",9,"Big Beautiful Women","30440220296f175de947ff1b8de50d9d6854a74a64353d6e54e2ef6205ec464010d43e7c0220125cd32e2daf29c5afa9038f5d87c7a7ee602b552b4e3ea9fe7baf12cace675e","0x57F55D89c30172a913bAe10A2E702E5302f1E356",!1,!0,null,null],["ethereum","big_eyes","$BIG",18,"Big Eyes","3044022044ffb936df14cbb252d63799415eaf955c2299e02271b6d572e27f5ea55574c8022026634ba65faf1ae77140e2f70d9f6d884f27035d7f069744570ebe85706de758","0xc8De43Bfe33FF496Fa14c270D9CB29Bda196B9B5",!1,!1,null,null],["ethereum","bigbang_game_coin_token","BBGC",8,"BigBang Game Coin Token","30440220023b538625bed5eb2023a1ccd8aba7ebc6ee326b713b373d861d78e432263e680220661c3584cda9c7710c0f71ac00db45bc581c294ba4ef5560e0fe6fc22b822c37","0x4FBb0B4cD8f960aC3428194F1c94c805D5b35836",!1,!1,null,null],["ethereum","bigboom","BBO",18,"Bigboom","3045022100ada2176965d3e4471e25946825eaad2cd47ad2ac317945a42ab4a64f9a755bf802207f0c50afd87396e7dd766ef8ba611b9fb47a7db043b85a3f32fb19b5d6eb15ac","0x84F7c44B6Fed1080f647E354D552595be2Cc602F",!1,!1,null,null],["ethereum","bigcash","BGC",18,"BigCash","3044022034eb29189f2a9bf20d7ba623485eb1ab3c40279e7e8aad123be43c941c4de7fc02207176024f624b9214a3ca3a4bde43f214fb89bd5b8a09576689f67ba0755f5ef6","0xD043F70FF0634167Db1149b15E5668f5Be52D72C",!0,!1,null,null],["ethereum","bigocoin","BIGO",8,"BIGOCOIN","3045022100efa653416a2db6cf2296f4c1a5a88a3f29e2e6d2b67fe9634a499305a329707c022057924303aa1455a575df251b5581ac8104e7e2109bba3de4b643540f6d8ef0ab","0xa6E7dc135Bdf4b3FEe7183EAB2E87C0BB9684783",!1,!1,null,null],["ethereum","bigone_token","ONE",18,"BigONE Token","30440220429a72bac17c94df59f845fdc7b0ddd17238e9ed4dbe6c9e3e4b3dd6f91540c002202b16107102cc2de23500cc21dcb35f7aebaf3fc82e32189391f5181da2479c1d","0x946551DD05C5Abd7CC808927480225ce36D8c475",!1,!1,null,null],["ethereum","bihukey","KEY",18,"BihuKey","3044022006dfcd09e1c829530eedf06add63b2e0cf9b49068e5d12335ba759cb069d3a1b022055274d8118c6c926b2beebc6172ce5c941d11c5b5810540b7ee643c11518b35f","0x4Cd988AfBad37289BAAf53C13e98E2BD46aAEa8c",!1,!1,null,null],["ethereum","bikicoin_token","BIKI",8,"BIKICOIN TOKEN","3044022025a0767985a7331c2b043b703ef85d1bb402af233b305091e12cf796c4955d3802207d2561bd838a15338e9db523b34c8a43935a340630ee821da8334129d1c9c547","0x70debcDAB2Ef20bE3d1dBFf6a845E9cCb6E46930",!1,!1,null,null],["ethereum","bilira","TRYB",6,"BiLira","3044022042661ea32f89cd73846a5cfce67fc794e62dbe0abc43b0945fa73d682ca9c53902200dc70d3d7f5873966c8b4e80dedd4335e1e3e8eaa9bd41f01f01313b07bd7000","0x2C537E5624e4af88A7ae4060C022609376C8D0EB",!0,!0,null,null],["ethereum","billionaire_ambition","BAR",18,"Billionaire Ambition","3045022100c96f417a14065583dc2cb9e3820f533837049464592d40d8695b31a7a78ec9dc0220661f88d8efe73e507d775c4e72eeb3b94b487a087bd227859e3874a626617375","0xc73f2474001aD1D6aEd615aF53631148CF98dE6b",!1,!1,null,null],["ethereum","billionaire_token","XBL",18,"Billionaire Token","30450221009d9e6b535a37b33393aa5f238184ea9f41b15fe9b44a17da81798f0ee04e64030220347f494fb39048e742b60f26cddf44af5adde332c0952e3a5f7287d253a6061a","0x49AeC0752E68D0282Db544C677f6BA407BA17ED7",!1,!1,null,null],["ethereum","bimcoin","BIM",18,"Bimcoin","3044022026678bbb7f9597bda76b105bf7e678279e35c9105454baf942d634c7c7e892a602201e9ff790f16464b41d6f472ef4dfa49dafae1849ccd50211e619c32996ac4828","0x9e7Ce36dbD1A9A6c6e80D08E38077745855eDd3A",!1,!1,null,null],["ethereum","binance_smart_chain_girl","BSCGIRL",8,"Binance Smart Chain Girl","304402204043192115104cf322cd0e17ceab07b1e1345f0fba3673630f19ca01c94c93b002203bb28d547c1d57e4c4f67b1171ab04462733a0ade33797ea2fcdf7c43ad142d3","0x4E9A46EA6A22f3894aBEE2302Ad42fd3b69E21E2",!1,!1,null,null],["ethereum","binance_usd","BUSD",18,"Binance USD","3044022065ecbc8efe4c65298caa4c28f138b87d2b8900fcfb50d18c7c7354e83ddf66520220452106192aa03ab95dfa7f68642db7e8edde081386f24c71e9c231e64de8e521","0x4Fabb145d64652a948d72533023f6E7A623C7C53",!1,!1,null,null],["ethereum","binance_wrapped_btc","BBTC",8,"Binance Wrapped BTC","3045022100fc0e0e0362cbfd42a24b109bdc8bfd0289627ce4de098660054ade89b74802310220155684961b83283f922be5c66fd9c578f62678a00d508a8edc204ec01ccc15a9","0x9BE89D2a4cd102D8Fecc6BF9dA793be995C22541",!1,!1,null,null],["ethereum","binance_wrapped_dot","BDOT",10,"Binance Wrapped DOT","3045022100bed4bd5ff296a5e502360574c597498aa34cd5e27a00231beab0b586365c636702205cce5678c201b875d937baa33f43313ade4d25cb1050b6c8d147e0ad19a9d401","0x7884F51dC1410387371ce61747CB6264E1dAeE0B",!1,!1,null,null],["ethereum","binance_wrapped_fil","BFIL",18,"Binance Wrapped FIL","3045022100c09173acf5b662e4ee0380c39f207ebd8ac72b72277dee8f047a93274393cb6f02205c5082265d21034c16405f9624448f01a4beb4717e0b81c46d03bab2ec5f0510","0x8E16bf47065Fe843A82f4399bAF5aBac4E0822B7",!1,!1,null,null],["ethereum","bincentive_token","BCNT",18,"Bincentive Token","304402204ca692c86ea2cfe3b17ea6b7da9f592f7bcb7f4024d7e99ea9459d804bf03bbe0220230f8a22edd8c38ae1f117e9399628e0e5ba4c19eeadc1c1ac381f80e9690f24","0x9669890e48f330ACD88b78D63E1A6b3482652CD9",!1,!1,null,null],["ethereum","bintex_futures","BNTX",18,"Bintex Futures","3045022100c006442365f489a2fd5dbc266ba621c6fd0ca849ccf872a4c8f19864cdd07696022037351d77829a9346beb0b0da51ed861bc87ade77633a669c671c9af958fcad60","0x86d1d12523B65203851c571FcC029bF90903fB6d",!1,!1,null,null],["ethereum","biocrypt","BIO",8,"BioCrypt","304402204026632b9c05a6c76e8f33f65076c6bafeef8d26b9f9ef7e76d24f56398063af02201979dae18919f4324f79800addae29f4f61f6681a548fb26b4957e8dcdabed1b","0xf18432Ef894Ef4b2a5726F933718F5A8cf9fF831",!0,!1,null,null],["ethereum","biokkoin","BKKG",8,"Biokkoin","3045022100bb7964e7b76c05ed88c27054d971f7a1907bc2e45884c2eec57257b5d6d80fbd02205b96279999a4ad470fee98c77aaab37b6243e39ace0d7a4e128e2c60b28b8d41","0x8AF22fBDeFe01b4dC7960EC04Ec73e8502F4a6B0",!1,!1,null,null],["ethereum","bionic","BNC",8,"Bionic","304402202d9bc05f17e0b09cae3bbee805b39ce1a942da29a7d785b8679a0f655c83431902200e0974a0b48586b8b2b1ab315997411cba90a70d33dcbb6d661d141357c76856","0xEf51c9377FeB29856E61625cAf9390bD0B67eA18",!0,!1,null,null],["ethereum","biontoken","BION",18,"BionToken","3045022100a813886ce5e71aa2d28a1f7c74e8edd269fadb5225742504ef18ad1a859c5a0402207b521ea325fbce4e3c5ad172505595013022c4600ae5eb89de999829ec8f84ea","0x9b1b1e109fF130b298CF1d47389C47569F5C2932",!1,!1,null,null],["ethereum","biop","BIOP",18,"BIOP","3045022100cf78dad2dd9ea5aaa73393a5e36d42ca6d7f29403dfb3cd07ae1a56df31c97ac02204edf5ef25bd77c005f66e6634694d52a202b24a883c6ee7790b190471e6ed0e9","0x29641e1096D4240B09a933839feAc57b200652A4",!1,!1,null,null],["ethereum","biopassport_coin","BIOT",9,"BioPassport Coin","3044022077b64c8eacabd6db6b9e6a5d80f55138ec15bd55f2bc7dfd18ae001f7a1fea64022072f392a3c60e105f97ac72da9367d82c7fbc2ec99ebc63135b52c4dfa457632a","0xc07A150ECAdF2cc352f5586396e344A6b17625EB",!1,!1,null,null],["ethereum","bios","BIOS",18,"BIOS","3045022100aca7ad010f368e82b908819ad570090ab77f8c6794b91707fd379408158ee1b8022063168f9e3816c35714e9534ed5646e832acbdae127c3cb8220fde3bdec7f4480","0xAACa86B876ca011844b5798ECA7a67591A9743C8",!1,!1,null,null],["ethereum","bird_money","BIRD",18,"Bird.Money","3045022100eba09497f191c59d26380e73269573441ac5668baa87ef88ccaf964fd882bff402200159721911cf8905cfeec86f6dc1bcac97b58a61b68c9056564be8211148c2c9","0x70401dFD142A16dC7031c56E862Fc88Cb9537Ce0",!1,!1,null,null],["ethereum","birdcoin","BIRD",18,"BirdCoin","304402207b2712b97da7ac9f56d9cf7961ac4b96298d28a2719c9500b55507422f43cc6d02200ebc7aff7e22a21f237ea8c73df51b4b1aa86594dd71c9256ce99b98d9453c97","0x026e62dDEd1a6aD07D93D39f96b9eabd59665e0d",!0,!0,null,null],["ethereum","bispextoken","BPX",18,"BispexToken","3045022100e808db770b2980f3f36187d5de2606eea78f4da0916a39ed9499ff8a3a931bec02200fd391dc158a451f84085cbd0ceec64abc51a89e4c65cfd8abef1b1648a3ba3e","0x2AA4a3E8bB72BE68a31c9c3C98CA7BeC723C6222",!1,!1,null,null],["ethereum","bistroo_token","BIST",18,"Bistroo Token","30450221008927585a100f332b29300297f7ed8af48177dd9d1ba60b351d8bb2f4912eeda902205ed781f2419ec95c0b050229383bed123074b45aaa83493ed6f3412aa9efce05","0x6e8908cfa881C9f6f2C64d3436E7b80b1bf0093F",!1,!1,null,null],["ethereum","bit2me","B2M",18,"Bit2Me","30440220032897c688f9c586393d4c75d10e42395e17cded9c6d2d8bec90267cba26f54402204754b5c901c7aa629a75c62670f37e0a034e9862224f1311d2e3690cd174f11d","0xd7c302fc3ac829C7E896a32c4Bd126f3e8Bd0a1f",!1,!1,null,null],["ethereum","bit_financial","BFC",18,"Bit Financial","3045022100a373102c766c00c8908d75bc3657f95f9a92e1b43c27285185d0dbbf5310cbef02204fc1b5b7077d75c1e41a32ad4b53b1ca4d37e647f88b91096f7fe11c850a1c0f","0x4d31200e6D7854C2F664aF7Fc38a21600960F74D",!0,!1,null,null],["ethereum","bitair","BTCA",8,"BitAir","3044022072b3308d6fc558a46eee22b74d93cfbc6a93f500e9c80cde2c3c4c41ca85f13b022035b2d2dd81c24740045c0b7821113ac5667b88680bf5bf7f4c14cf5f972469dd","0x02725836ebF3eCDb1cDf1c7b02FcbBfaa2736AF8",!1,!1,null,null],["ethereum","bitasean","BAS",8,"BitAsean","3045022100ce4334a2f160e90e999dc03390e7b99f734dc98ceb6a02a09d81f7c6d34d7a4d02206dfca18c6b9d2f45c3044d75a9cb4d4786489b126f286356021e68efacd3064b","0x2A05d22DB079BC40C2f77a1d1fF703a56E631cc1",!1,!1,null,null],["ethereum","bitazza","BTZ_",18,"Bitazza (old)","3045022100eb3d306206e2063443e50839be1d2d32534fba5c006808354a1ad7fd3373264902202fdb01c14f748f17d713faf869bc76def1a728874823b57a5e1d8ed2b079754f","0xA76942D04cfbbb7A3f20687ac1D11D150185f38d",!0,!1,null,null],["ethereum","bitazza_token","BTZ",18,"Bitazza Token","304402200961d79169e231760995e9c5b9950e9d1730c97b4877557c58e202fe0393d34502203150dc3609de7ff4cfd29df5dd68caaac4e42ba6955b9251dcd337fd8a4b49fa","0x5fBc3cb8B428cC00A04808870295D39962CC7FeE",!1,!1,null,null],["ethereum","bitball","BTB",18,"BitBall","3045022100bab65e7036ec3e1d3dc4ec180f10ce3df40b4b330174de6b69534f98be847f8c02204249cc4c376f4ee02ee2166dd25a71c941d98bd7495c4fabd411fd9d03fc9ab0","0x06e0feB0D74106c7adA8497754074D222Ec6BCDf",!1,!1,null,null],["ethereum","bitball_treasure","BTRS",18,"BitBall Treasure","304402203ac3970897660948b514770cb0236f61a3595c282c7f542c5b5fdc2238a7634c022007adebdb50bd82128b7957db5be4b048f0da99b046d4540a8d69bb4a621473c8","0x73C9275c3a2Dd84b5741fD59AEbF102C91Eb033F",!1,!1,null,null],["ethereum","bitbase","BTBS",18,"BitBase","3045022100f3014f9deba7e33f4ce7eee44162fc8df446123b08089550bcb1403bb9049cb602201f2e797aa8dc00da2cdccfacbee4621f4e5f8919b37e1f3345caafeaa6bdce58","0x32E6C34Cd57087aBBD59B5A4AECC4cB495924356",!1,!1,null,null],["ethereum","bitberrytoken","BBR",18,"BitberryToken","304402203308b05b2956378727734b2e969fe88104c012205d6575b7d093f4ca6bb032320220261096c65199ee739ee110bb759f620e1adb7c9f9240b2518b8b9cca7e2c7782","0x7671904eed7f10808B664fc30BB8693FD7237abF",!1,!1,null,null],["ethereum","bitbook_gambling","BXK",18,"Bitbook Gambling","30440220279d1cf84b4dc8c70cbef6ac0245be1221f8c8ccf6ac18439c008ab8019ecf60022023bc2f646bbb75c180a62e4129f0dd1063a94f60e15ef4d6304aee793cf57444","0xEb6985ACD6d0cbff60B88032b0B29Ac1d9D66A1B",!1,!1,null,null],["ethereum","bitboost","BBT",4,"BitBoost","304502210097316af081ce16549edbea82deeb444a24eff13098d280b7e7b24e9a00de52990220747c1235b9a1cb7d8342587f5ff9e8bf0df8bddf0799009cf9659470c533a1d7","0x1500205f50bf3FD976466d0662905c9ff254fc9c",!1,!1,null,null],["ethereum","bitbot_v1","BBP",18,"BitBot V1","3045022100e8a6e77c13cdbefd255bcce0a3a66e9c9aa487263af5e486d4a1f87db818606d022038a63c21163149f5e7a688d2dc38faf486556107f7dcb886aa23c2a69df153d5","0xbb0A009ba1EB20c5062C790432f080F6597662AF",!1,!1,null,null],["ethereum","bitcapitalvendor_token","BCV",8,"BitCapitalVendor Token","3044022016151fc50af2c8916729d1336af3364e41de28b58a2cb0a4c7019d8453d9038002202940fb427c61ef1f9928429f389d6ff10eb9770dd04d25c3866ac2015b8bacf0","0x1014613E2B3CBc4d575054D4982E580d9b99d7B1",!1,!1,null,null],["ethereum","bitcar_token","BITCAR",8,"BitCar Token","3045022100e9692ce752a462816b9398656458d3715d2b0f0ba0a3f9478a2e8c0f55947b2c022072906c505c8565cd2dea28347aa8f830339abf58d9868b6620c4a5571bbbbb5d","0x08b4c866aE9D1bE56a06e0C302054B4FFe067b43",!1,!1,null,null],["ethereum","bitcashpay","BCP",8,"BitcashPay","3045022100db43f35a9a125304e8a4e7097cd31860b50529a58f75bfa84af28fca0283d765022003d03478c709b25d15f8e8bec9a49e2db224df6262211b02b42e4aa4bf0458b7","0xe047705117Eb07e712C3d684f5B18E74577e83aC",!0,!1,null,null],["ethereum","bitcci_cash","BITCCA",2,"bitcci cash","304402205b11ad4002a4f5b5467cfb34d08cfe6ed2b2cdd0d54fb1047958b3fbd16010540220620df91020eb34bd23be6be2af8357fb56f0377f55d0bb137845cb12b415ff46","0xe4D75e9b493458D032A5C3CC1eE9B0712C1EcE06",!1,!1,null,null],["ethereum","bitcloud_token","BPRO",8,"BitCloud Token","3044022034770ac4661b10e7dd5603ce9b79b69b7dff442bebb3895298de563881b8bddf02205dde40cdef1fa5e7e2958a59fd2e1b77c9bc489b5b3f66d94795c6e96d7c1628","0x197E6bCa6BC2f488ec760a6Ce46B1399cd2954b0",!0,!1,null,null],["ethereum","bitcoffeen","BFF",8,"Bitcoffeen","3045022100b8659356051da54f61020f8ed1068a4da413c5855cdd8fac025c75ee7033b67602200664dc62e1752b9785ef448af9baad6332ba3b4ac008df651671ab17d0289935","0x708aA4e8AaeAaD6074dD09cc4e5C52A70452eB39",!1,!1,null,null],["ethereum","bitcoin_boutique","BTQ",18,"Bitcoin Boutique","304402204068da173545e5572507779c370bd3f3282042d40285557b8894cee450c9dafe022015c9b29e0f606d5becc1c1c916f04d43fbce3d7d5b117865b741eb53116a5f06","0x16B0E62aC13a2fAeD36D18bce2356d25Ab3CfAD3",!1,!1,null,null],["ethereum","bitcoin_card","VD",8,"Bitcoin Card","30440220186d7a1a7d89318a502f4c94cfd20523128f9ad740206045409db7f15239db6d02203637165aa0362a5df67f3cb293b02e982c11eb81c233d27487abad6eda96d34f","0x9a9bB9b4b11BF8eccff84B58a6CCCCD4058A7f0D",!1,!1,null,null],["ethereum","bitcoin_fast","BTCF",8,"Bitcoin Fast","304402201e4982b0c0b4f3b75c6654f19bcf5c00dca358dd7c4818556523c75fcb80b30e022021ac41078c837a39eef42595fe282539b08dc89e9d3ec42fc6a2db97698f357e","0x225927F8fa71d16EE07968B8746364D1d9F839bD",!1,!1,null,null],["ethereum","bitcoin_network_demand_set","BYTE3",18,"Bitcoin Network Demand Set","304402206ab6bc9ee413c3f2572840921b92a7c9666390cb0b5c0766bf8f3bc551fe9cae022000943be2995d8986535e3233697638bc0ff642f761bb5a9e7170265b13dc0345","0xFF32b6dc663e9AA3Ef61117749C6cCC168100b99",!1,!0,null,null],["ethereum","bitcoin_one","BTCONE",18,"BitCoin ONE","30440220249410e9c6d89931fc0d9286882d66969e7d5d4e5da50112f6f49c2b88b9d75002204b755b91266ca5c712cf66bec603ebcb694443896c98f38cd1728fcf626bff30","0x87f5E8c3425218837f3CB67dB941aF0C01323E56",!1,!1,null,null],["ethereum","bitcoin_red","BTCR",8,"BitCoin Red","3045022100b7881bfc43ce4357512032d11ceaa955303ad6b20bf61ebd214191a40249ec480220276c77ad037b95077ebfc4514f9b7bb9b10a009cd679d9d2ac71ffb5649633a6","0x6Aac8CB9861E42bf8259F5AbDC6aE3Ae89909E11",!1,!1,null,null],["ethereum","bitcoin_regular","BTRL",8,"Bitcoin Regular","30440220638f4db7e07eeb5315eaae3c00cf2589f01b644bd2d06a3802357d3d157b83d0022006e84ad8b3b0ea9a6c8687af9ab6477046da453a900b2ea11ba6866ba3d7aa7e","0x388Fd8A5145D6EF85aAE14D494F93Df9D1c7c00C",!1,!0,null,null],["ethereum","bitcoin_token","BTK",18,"Bitcoin Token","30450221008aeae61b08d4e0440548dc797aa4e7200ab9db2b68a052555f25abeceb4ed31c02204009458cb0e4c71a3b7e70e3c5e221a4ad904a31d89eae66f0abcc89321b644c","0xdb8646F5b487B5Dd979FAC618350e85018F557d4",!1,!1,null,null],["ethereum","bitcoin_true","BTCT",18,"Bitcoin True","3045022100b0a26b51d9a6ad5e3573cbcb4a48ef01ec1c120e2f766c7f8f66cfd0e66e78b6022009049e9a68ba8298760b66506bae40359d12dcca3b02a1648d4c840338f9caa4","0x820A8481451e893Bc66DCe50C84d45617CaC3705",!1,!0,null,null],["ethereum","bitcoin_unicorn","BTCUI",8,"Bitcoin Unicorn","3044022032e320609d1194b8b14f92af3458f51cf5c41d9153f4433c2f3d0b462fdfb2a5022062276459b21bd2203d986ac8c8851a8bc906386732eada58c3918946e061c240","0x5f2eC9cF1EC1c0e2c880B6584921E812a4225395",!1,!0,null,null],["ethereum","bitcoin_volatility_token","BVOL",18,"Bitcoin Volatility Token","3045022100b32d0c2a3462178ead83abf39c0bda042b49b88c84ea216fcc8a7fab531c71d5022001c93762a37a34d41fa418f03991c10ad2991735ca5f4806b1e2ddbbc3556cb7","0x81824663353A9d29b01B2DE9dd9a2Bb271d298cD",!1,!0,null,null],["ethereum","bitcoin_zero","BTC0",18,"Bitcoin Zero","3045022100bb71a8280176c7b7f5c35b40025fd6fb716272f923d616495aff6826ec4683c602201ac68eb42dc9fbce410f3f9a6339c8444f320b380c92ce91db4d4d405d83df53","0xc4f33F15ed2F2C5F8D5B542dD30518A50D9f843f",!0,!1,null,null],["ethereum","bitcoinbrand","BTCB",18,"BitcoinBrand","3044022060e9bfb6be9b34886a7a607e35fab85c35775fa546cbc6ed988dac3658283a69022031dcf538b7f2429fb8469b04da5ae5cbbf6cf9112f51c58db2802342056805d5","0xf2cee90309418353a57717ECa26C4f8754F0d84e",!0,!0,null,null],["ethereum","bitcoincompany_network","BITN",18,"BitcoinCompany Network","30440220648b992f4223a065ec56be96b49622f8ee7ec255e24cd8f448a786c46410f96e02200fb604329031f669d204c616d07320782be80a2f500c6891ee96c5cbb43e5d32","0x41ad4093349C8A60DE591A3C37dcd184558EaAe3",!1,!0,null,null],["ethereum","bitcoingalaxy_warp","BTCGW",8,"BitcoinGalaxy Warp","3045022100c01c4ef6326092f783932139151d4f1dd5233e8cb964cfe5259428975a5fe30802204498271c6d63fc27b0df669f7a2e93a871bdb35eee06286fbb45816702992660","0x305F8157C1f841fBD378f636aBF390c5b4C0e330",!1,!0,null,null],["ethereum","bitcoinhedge","BTCHG",18,"BITCOINHEDGE","3045022100e8784741066ff6c18051b880967ca93237f2c03819cfa1d36e668d91429a11df02203c07f654e20ee74b7d6f6e9a1a8b3577c0049d105f6c09010975fff6e79f5ebd","0x5547136b913b68881596275ACe01e9A589c5b16B",!1,!0,null,null],["ethereum","bitcoinplatinums","BCP",8,"bitcoinplatinums","304402202775069ea20407177000c5df0cab181a0b5146057525ddb63127075f5a30d7e102200cc080cd06bb1fa4349d4a58427de1c9eccf1317f6bd645c27d944996b262f77","0xd26fb114401Ec86887CD09F62eccd95fCf20B571",!0,!0,null,null],["ethereum","bitcoinpro","BTCP",8,"BitcoinPro","304402203117d8e7767e74f0c2a5d49372c35ee8a95be4ad1938f5f45173d5287f6e644b0220111746d30bf2127f547f55f9d9bfabaef4b9a08523f3918b0219d37946b7e91a","0x723CbfC05e2cfcc71d3d89e770D32801A5eEf5Ab",!1,!0,null,null],["ethereum","bitcoinsov","BSOV",8,"BitcoinSoV","30440220127d4f80513adfca6f90715eea0ccc4a04bad472d8dc8ad625d3b2788222e2200220709def792a2aa9a8a2de6774fbcca1494e4244d3fdbbb41453510ec9931febb6","0x26946adA5eCb57f3A1F91605050Ce45c482C9Eb1",!1,!1,null,null],["ethereum","bitcoinus_token","BITS",18,"Bitcoinus Token","3044022053359659d217738b2e0ea4d39068886016fa4960342a80b13e3e1fe483861a03022013efb4ee85157927f2d988e5aa23b0ee3a62c9c4960dd21b99db9d19137ecc14","0xC38f1fb49acDf2f1213CAf3319F6Eb3ea2cB7527",!1,!0,null,null],["ethereum","bitcoinvend","BCVT",18,"BitcoinVend","304502210083da6f22d73eea0266b296e38e2d4289c3d71c54040da52bc4fd9145c2a912ec022078c85cebf0bce86f08e75c06adf9efcd6538dac4aa3b09e341d6531f70a244f1","0x8D717AB5eaC1016b64C2A7fD04720Fd2D27D1B86",!0,!1,null,null],["ethereum","bitcoiva","BCA",6,"BITCOIVA","30440220596b7811e9bea2e395a305d7c8f27cdcc356baf873abab7226c59971ca8f0916022032e3f4b456563906ae782734967a3afb0a27f94df4d228af185144c5bd89e583","0xC222e5B89309FAB5FAf55a3b3bd9082be834916C",!1,!1,null,null],["ethereum","bitcomo","BM",2,"BITCOMO","3044022066df08f0971653cdcd8c962858199e236d800febe48ebefa529f2d9a2e5d3e5602203db72ac97519f6bc01e5edb5643facd92f6a876fffbf21618dabc9f28877b9ee","0xE2fe5E7E206e7B46CAd6A5146320e5b4b9A18E97",!1,!1,null,null],["ethereum","bitcratic","BCT",18,"Bitcratic","3044022079587935db252d02bc51377118db3357f9b480c07530de27825701a464cf1bdb022054a69a2b84741669e701f1326fe897ea5edcc86d702e796df4d0b844f5acdd3e","0x9eC251401eAfB7e98f37A1D911c0AEA02CB63A80",!0,!0,null,null],["ethereum","bitcratic_revenue","BCTR",18,"Bitcratic Revenue","3045022100eafb5c2d593176619bc656d0212cb9d42d93e956172919b480f73cb5de14e41b0220746b5226626d3a76085d0e41ba7c4da943c5d0f767feab6a77b639a492b4fc1c","0x579353231F3540B218239774422962C64a3693e7",!1,!1,null,null],["ethereum","bitcurate","BTCR",4,"Bitcurate","3045022100eec6bf8e916a8bf2fcc08e82c3ef4569467c76951d2ceaf1ccf99a76232910eb02201f4a43aa23c9d66aa11a764ae76f8089d92ba6c28b5f8e1608068f66ce2c925f","0x0371f7b219fff864b437bcfb564810F323FfFccA",!1,!1,null,null],["ethereum","bitdao","BIT",18,"BitDAO","30450221008dbde2dd63d806c56df39e86760f521ed72c600e1fc8778c9a596b106521a1ba022069dc1a61c8d50b667f3d5f81bc083dd9873bc28ca9d989c27a0a7f52306f14d3","0x1A4b46696b2bB4794Eb3D4c26f1c55F9170fa4C5",!1,!1,null,null],["ethereum","bitdefi","BFI",8,"BitDEFi","304502210082b0ebd4e0afdb20aa16c525386b3b8cb398231bf2fc42d486b1a1cac2c40ad1022063210bd9a00e1bee11ad9b52ffe10fff3185380355e2858684bef3ca43a91c8c","0x2b2b0559081c41e962777B5049632fdb30f7E652",!0,!1,null,null],["ethereum","bitdegree_token","BDG",18,"BitDegree Token","3045022100b5da94282195e02f246dd45842ff760c77d8ad772f4db974a800799c6bcfbed7022002285971dde48cfb6bcb9a7e1bc1db3706479a39eee1e595c1cfe2fd351ca776","0x1961B3331969eD52770751fC718ef530838b6dEE",!1,!1,null,null],["ethereum","bitdice","CSNO",8,"BitDice","3044022039132b2375b83647d567db4392969a51ee266bfeffdc0b0f4126adc3077734300220022c13967f07897e8ee8814d43db799d44188ea27d62aa4aaf7de1694ce576c3","0x29D75277aC7F0335b2165D0895E8725cbF658d73",!1,!1,null,null],["ethereum","bitenium_token","BT",18,"Bitenium Token","304402204207e7157ea36db82f78f3a6d5fb9bcf62971c71c9880cbe7ae633e2006dc7f702202d934cae8ba9d0e6ed7d58e60b87028cfb459457158d489229f1fb4aa7155a78","0x997507cc49FBf0CD6ce5e1EE543218556fAFdEBc",!1,!1,null,null],["ethereum","biteth2575rebalancingsettoken","ETHBTC752",18,"BitEth2575RebalancingSetToken","3045022100bba951b1816b581c660a81286e041b3328637b52df9a303ad8675f9a4e390c7902201d27837607ad0effa0f18bd8adc70d8856db2f80b779a42918ee29895c250e67","0xA6c040045d962e4B8eFa00954c7d23CCd0a2b8AD",!0,!0,null,null],["ethereum","biteth7525rebalancingsettoken","BTCETH752",18,"BitEth7525RebalancingSetToken","304402203b4f91bcf8b3e9f11792e0d068f2df9725a95d8b0fb961a22363a6e6dcd80f9802200b3f4581085a73ae9e1c57b23cd1bdd03a652be945b9bba2301db8c78d9379bc","0xA35Fc5019C4dc509394Bd4d74591a0bF8852c195",!0,!0,null,null],["ethereum","bitether","BTT",0,"Bitether","3045022100b21e15dd467c11e1fed002727fdee0c703adbc32bea02f3c33e36763957d64aa022023ac30bf75c0a085f1594455ab8a51422b0cee8bd4a0ab3244ddd7d6b9b7d269","0x080aa07E2C7185150d7e4DA98838A8d2feac3dfC",!0,!0,null,null],["ethereum","bitether_","BTR",18,"Bitether","3045022100e9b8dbdb4d93f34a2e111e30f9392762e35038cbf1bcc43a1409d8aa2d58a1b602205a03ac5c337a4a215133f033d78f0726cb064756ccaf1d45a77de3b923424e1b","0x499A6B77bc25C26bCf8265E2102B1B3dd1617024",!0,!1,null,null],["ethereum","bitex_global_xbx_coin","XBX",18,"Bitex Global XBX Coin","30450221009875e49534f3fce20a71b5901429fa460b1d8337fff3d1728229c7bd06161c9602207317ded4b01b9d4e1a19b2956e97928d2517a7b1c2a2453c1225b503c3b1a075","0x57C09A8de0b0F471F8567609777aDdFfb5c46a08",!1,!1,null,null],["ethereum","bitfarmings","BFI",18,"Bitfarmings","3045022100b7e3e85b350da2e3e165eed863318e54ff514f9667c9a126d5ade61092b725ae02206e33632fd078bedfc78965dd0b2e2f20dbd6ad03c7f0e2fb4b5c973201a26b27","0xC980be019F2ac10A1C96F964b971A5F44551D318",!0,!1,null,null],["ethereum","bitflux","FLX",18,"BitFlux","3045022100b9eaa18742b5190e81cb8c94a9bb16027253374f3f4efefa8a8e9499f42b4a4f022041ed88060720d10b3e395b8894e204e33c8c373c3c0e900be3a001aedc99622c","0x70b147E01E9285E7cE68B9BA437Fe3a9190E756a",!0,!0,null,null],["ethereum","bitforex_token","BF",18,"BitForex Token","3045022100dc4c34e3d25a756e519430a36f2c77574f44996dccddf7330795ac7ff06e4434022061c7f61b732ba74fb2a3bc340dcbe81c3620868ec55a0d300ee9988503bd1c98","0x5b71BEE9D961b1B848f8485EEC8d8787f80217F5",!1,!1,null,null],["ethereum","bitfxt_coin","BXT",8,"BITFXT COIN","3045022100a04754a81d2667af41a8dc04f918df5205964cabcd18b78daa7020972858a6240220164fd99fd11b4ecd0034c0aef573b6eb3b56805bc07864d47cf16ed8fdb67410","0x24D77c210a014b1E123a0878F6C903Df74A2317B",!1,!1,null,null],["ethereum","bitgear","GEAR",18,"Bitgear","3044022048848afa85fe17085700eb4a20bf11477e0936a88a44e2aa147ffc9cbeb8b77602203e4253012813511d80034358b47b81bfdf4053dbc94899f8ab8e8b3967122434","0x1b980e05943dE3dB3a459C72325338d327B6F5a9",!0,!1,null,null],["ethereum","bitgettoken","BGB",18,"BitgetToken","304402206d9c868c38dd79dbfbba58ae89acd6c0085fccfa660d2e56a3704864b5c27cd6022052ee619f92df11936e2bd5b434aee2c13c898dedb808d3d6215164622510e002","0x19de6b897Ed14A376Dda0Fe53a5420D2aC828a28",!1,!1,null,null],["ethereum","bitgrit_token","BGR",18,"bitgrit token","304402203fa225860cb5068b64635347e22fd2294444f812f858e52c33e6a2385641edd90220691be6e2bf5b1aa56b4f6a174a0856850f592a3567a78f0a37be09dd34856dd7","0x986303C398DBf3295FA4aD98274aD20cFcF80C08",!1,!1,null,null],["ethereum","bithachi","BITH",8,"BITHACHI","304402206e3d3202fec64e9e2108d82a921744f6ad7f36383e402284db26c7a6550163f302205d4904677fb251e904991c1c6d3eb229c396a69eada6a2e94ea709955b4a4f0a","0x8811e4Dd5EC5Eb8764b97CC814B1339089717adA",!1,!1,null,null],["ethereum","bithao_token","BHAO",18,"BitHao Token","304402204753f2518a7f245112853f8e6f8350ee2ba1a1495303fb90b70210ae73db327b02202cdbdf590cd0f1574b2ddc8f74b1ac4e1888015caf83ac15e83556d41446be72","0x6d7c7d764d6f1DFa256C74AbB4C4d7861d8EE64C",!1,!1,null,null],["ethereum","bithash_token","BT",18,"BitHash Token","3045022100a81a862e5b62dfca19e873c310756af5e8781a13372eb12c200d04962a70c7e8022066901669079f9dbc4e9ac4451bd5fb5c3eb6fa2a7bae32fc70b60e04856078b5","0x6628606c321FaF52b7230A57b26c01B19aA68e82",!0,!1,null,null],["ethereum","bither_platform_token","BTR",18,"Bither Platform Token","3044022024ec5644e0f9eaded27c063d19f41dd6c0270ac402845d0bd520879e63f8d98702207e76af2ce397a2da3e8392376cbce66fc47f7e63798f65c53982ad792a3be111","0xcbf15FB8246F679F9Df0135881CB29a3746f734b",!0,!1,null,null],["ethereum","bitifex","BITX",18,"BITIFEX","304402204f585ac72d60dc0b4908e1e6a356ed6b089621cedde31614f368bf409c10c27202201edc865c634bd28e8d3f65077f383cfe72ba845b41d0a2261d9ab1aff1be9745","0xA0eD4C4AcbF07C03365d6bbE28150a819AFf700F",!0,!1,null,null],["ethereum","bitkeep_token","BKB",18,"BitKeep Token","304302204b2c544e0f9ed57562fc580cc92e5c6fa193ce878828dd81afcb032639f0328e021f48611949857fdd1b63cf26bd0cd52a16a3ad49dbd2c9a508601634a5ef84e6","0x5c39bC68e58a242A624E4FC96be77A383C52002D",!1,!1,null,null],["ethereum","bitkings_origin","ORGN",18,"BitKings Origin","304402207730185c8b519724a1bb1e72c8be707caa4b9d57a11ecb08ecc375762ca107d802207713179ee0d2319c7c507b87bd3c3e41213bc64f7b4f90331d2961456cdce1e0","0x1e95a0d39c3D98a926a77565108aD084f1e9DF5c",!0,!0,null,null],["ethereum","bitkings_token","BTK",6,"BitKings Token","304402207b47714a99690dda610efc60815ed736c392aac5639400ca283796a90215a0cb02206b10fb6e50b6f34d4a9cbb02fee212e75ce6e2a188afea11633169a7eb2ebb30","0xF83C911Be97C84c78D7328c4db89c307906F90DC",!0,!1,null,null],["ethereum","bitlle_token","BTL",4,"Bitlle Token","3045022100dd8689d86813a02ab64e94150c5fab4cabec26bf80385995e8454bd2b633b0cf02202a5dc52c9167da985d1773418d6fbd79a731db9dcc77dfb6bb4c571bedd92a9b","0x92685E93956537c25Bb75D5d47fca4266dd628B8",!1,!1,null,null],["ethereum","bitmarttoken","BMX",18,"BitMartToken","30440220325cb3ee92378f7adc6e8d8d76569dadcf47c2ac5ad02a524e511b45576120c302204051d5ec87b96ff1a49c85b0cf29bba12d2647398c05c9b3c2929101c1709083","0x986EE2B944c42D017F52Af21c4c69B84DBeA35d8",!1,!1,null,null],["ethereum","bitmax_token","BTMX",18,"BitMax token","3045022100c82ab03a201383a8760d55a46c9e4a07e91aa3023bf61fdd8d02a98f54adb51a02205239735fffc073673cbefc1c4b4f203c38cfcaab9d799c3e0290b967f04130f1","0xcca0c9c383076649604eE31b20248BC04FdF61cA",!0,!1,null,null],["ethereum","bitmax_token_","BTMX",18,"BitMax token (Old)","3045022100c81c8ebbcc09d1d80f8c7168ebfe9d2c3e0579f2d2de907106d0df57e3788b980220108d0dce56d1746d512233c5e3deacd6a91a2d0b238b1bb8356a9344ceab4148","0x1C289a12A8552B314D0d153d6991fd27a54Aa640",!0,!0,null,null],["ethereum","bitnorm","BN",18,"BitNorm","30440220523b90ebebbc08fc9ccfe6cc6d3469bb2725379c3e245f53c0b1c7adfc1168ee02200828d9ae1b1441a442c8a2db6c666c93372b119b5606e71bf547a1493356fe91","0x42edc1c5ff57Ff5240C90E2D8DfA269D77D68013",!1,!1,null,null],["ethereum","bitonyx_token","BTNYX",18,"BitOnyx Token","3045022100e5363cffeac35827350a6dd732c298b7f5dd6524dcaf41fd0b640db6b8eb730d022061262c1bd0bb7ed9266952d23a35d7a7b8f9326b5c4a4982b3b2a824266a25a7","0x8Fb6c8A44A4e23fD1f5a936818b39083B4cdc865",!1,!1,null,null],["ethereum","bitopro_coin","BITO",18,"BitoPro Coin","3044022068ea1e6ad3d113a73e27c3bf46d95ef235243a794a8e8541c84e4db7cfcbe3d802204d6ad9dc9dcec90971e8ebca231e20a3cc0b59206e1b809752c4af3caecc74df","0x93b1E78a3e652cd2e71C4a767595B77282344932",!1,!1,null,null],["ethereum","bitpakcointoken","BPAKC",8,"BitpakcoinToken","304402200fa626ed84208bdf38cbae03aa023763c9b5ff0e1b6bbb94d53a2f624fb1b70402203c39c16104b082741569b609d279dd3b29d9129c12c2b9fc00b90768dc60bdf0","0xdf22Da9a8C1D80095175Ae601d182A734923F01A",!1,!1,null,null],["ethereum","bitpanda_ecosystem_token","BEST",8,"Bitpanda Ecosystem Token","3045022100915e3d1fddab9f1c53afa88f9c59ed5eb923fa2a3658d819bad932ce007de55802200939e5bba88c1a4b354ade7a14901510546c189367422dfd7403d7241e15f228","0x1B073382E63411E3BcfFE90aC1B9A43feFa1Ec6F",!1,!1,null,null],["ethereum","bitpark","BITPARK",8,"BITPARK","3045022100da2aab8e11a8ddfd5e9dbed25ad15dff3c089a53afba24ca9cdc12fab1ae89420220581329b68028f5589d5b55b0d0736e83c37f49a96aaa7066f1d2a3545cb48636","0xF3d29Fb98D2DC5E78c87198DEEF99377345fD6F1",!1,!1,null,null],["ethereum","bitpayer_token","BPT",9,"Bitpayer Token","304502210089ee5ad878c061a56bbef7a32491546128fb0c5a601ce30b90c2ceadd25e87b2022054bdbe14b4ad9218fee7d0f4ba06c01aed7c41ea14efdfddd46bbb7601a7be4f","0x283669123bd83dA2536bB534e20512101c18E5D8",!0,!1,null,null],["ethereum","bitpower","BPP",18,"Bitpower","304402207853ebc11d9be13ef6a56fa5137808add05fe01d01ea31d86407a396feed67d102206ed0ea8a522ee9d18728d945c28cf436741a86c6578a6aba49cf7b0affe2c580","0x52d904eFf2605463c2F0b338d34aBc9B7c3e3b08",!0,!1,null,null],["ethereum","bitrewards_token","BIT",18,"BitRewards Token","304402206cc3cf9da940efc4d46830153eb0be3aa60c0081b9d1fbf55a5958d7055f0e9d02200a909c461a1a35f91cead66256a8c5d6215759a01da4d3cd118f7b1082cf4a98","0x47da42696A866CDC61A4C809A515500a242909C1",!0,!1,null,null],["ethereum","bitriver","BTR",4,"Bitriver","3045022100c9caad4716093a651dba6c938312ce8534a8f71b8de0eef99962b49dee2b42490220211ce895941c1de4c0834c7e7f41f4b4e87dccd16fe55e71650ddc43252aaa0f","0xcce63fD31e9053c110c74CEbc37C8e358A6AA5bD",!0,!0,null,null],["ethereum","bitrue_coin","BTR",18,"Bitrue Coin","3045022100cdb862313bd0fe63b7c1e57320ea35091ef861d2afe12cf0d8ac890dbbb9c2e102207d12837e5bd7b2dbfe0444a8160b39e29e8ed37ee74b16839d653ea9cb74ee89","0xd433138d12beB9929FF6fd583DC83663eea6Aaa5",!1,!1,null,null],["ethereum","bitscreenertoken","BITX",18,"BitScreenerToken","3045022100f99f2848c56e3e3d0ab02982a2898b63a45d3786b0d63661c34377276833061402206c5116f6dd44cbbb27f8fc5eb3799cd10b1bcea2e2f2a46e20c369e3a60e7d0b","0xff2b3353c3015E9f1FBF95B9Bda23F58Aa7cE007",!0,!1,null,null],["ethereum","bitsong","BTSG",18,"BitSong","304402200aa2603e414a7759bf8756888a8fde0e9b42dbf47427f1778e8ff26102272d94022072eaf2b09ac301edea53a283c7cae1901672470d92aaa220b8e6df892afc0445","0x05079687D35b93538cbd59fe5596380cae9054A9",!1,!1,null,null],["ethereum","bitsoutoken","BTU",3,"BitsouToken","304402201648ce2ac501f23ff0375614570d089dcbe82ad0a488f91d988a3319fce5081d02207655d0ca1ee40cf64ba576e9dfe8593aaef114f3f919081273865fa8cb8c1e31","0x3c76EF53be46ed2E9bE224e8f0b92e8ACBc24ea0",!0,!1,null,null],["ethereum","bitspawn_token","SPWN",18,"BitSpawn Token","3045022100bd0cacff5fc14c3ca775aab75df40be235bd0df407ef2f40839862d9b5410e4d02205bc3a192b60bf54868e557b9fca9517cd7751973fc2d9feed36e33c5e75400e3","0xe516D78d784C77D479977BE58905B3f2b1111126",!1,!1,null,null],["ethereum","bitstash","STASH",8,"BitStash","3044022039aca44bd8c8c7c88f9e1300410a986e47dc228f21192f6ca22e6f76bb03dc3b0220216b77777bf8bed9074bbd18e44933edaa4219497c18a6e58bf35129a4810483","0xE4F356EcCe6FbDA81eCDea2E38527e59422861C2",!1,!1,null,null],["ethereum","bitsten_token","BST",18,"Bitsten Token","30440220566588093158ca48e2f77fe3486f49c79fec216bad7137f0da4dfb514d9fa15902207247e1d13405e7964c251e4c501dc750070f40e9eb46a27f22df2d4f91c37468","0xD4f6f9Ae14399fD5Eb8DFc7725F0094a1A7F5d80",!0,!1,null,null],["ethereum","bitto","BITTO",18,"BITTO","30450221008ebeae2f15897ecdfa6159dfcb9a19b8adbea8364cf5426ddcb9b6670451679002201bb6752e8b61683d75b7e6874c161a989543e4a2e15e649b4c3e228edd17b8f4","0xa101E27f06A97985B925E244111b61560Ecd97DB",!1,!1,null,null],["ethereum","bittoken","BITT",18,"BITTOKEN","3044022032e2638751d960e4e6eb70cc04a14dfadfcbff3ec5ba924c52f4b8be871b0c4702203ddcb40838895931641c46ec2d8aaea70e9dc0a2a8d080b5196559cb58bbd9d6","0x9F9913853f749b3fE6D6D4e16a1Cc3C1656B6D51",!1,!1,null,null],["ethereum","bittorrent","BTT",18,"BitTorrent","3044022021e95de1c02d262a32f5ce81ccf88cea978119a9ad1e850a780f5aedcb06c84a02202fae68ee1a80291f4a89a53aacd617ab34b534e47559a78c58c06280e44309cd","0xC669928185DbCE49d2230CC9B0979BE6DC797957",!0,!0,null,null],["ethereum","bittup","BTU",8,"BITTUP","3045022100a39982fe7074d9dece7814f52dc0fb416c9e1186321d99a0366d5dee1f91b7010220036ebe2761d6b2d3daedd054bf7d3ef5a114e4b83c658cff1190923fd6f87904","0x2B04DaDD412f7281d3CCabfb8425FD9c9E841588",!0,!1,null,null],["ethereum","bittwatt","BWT",18,"Bittwatt","304402206f0f3b6f6d9365a1063e225eb9cbe57e76a242b8cd1f7359a40c9eb7587b200202203eb8977dbc12b7c59cc971ea1316d28beb3e64f59b890f625f96040d2b934fe4","0xcA3Ea3061d638E02113aA960340c98343b5aCd62",!1,!1,null,null],["ethereum","bitvalve","BTV",18,"BitValve","304402206735988c9111fa16fdda0957f0443552ef2c81ef0b3db24ebf2e21b04d72cfcf022068ceb301d566c42f591c9dc5d76706187f2c83927df3e42bab3d5fc03818d8a6","0xB837b6467B4878fb5B3b81664042852593F15126",!1,!1,null,null],["ethereum","bitwell_token","WELL",18,"BitWell Token","304502210084e160a1fd222b46b99fe7dde9ff2158b7056a16ca3519342bc104b540c436700220242841874910f7d4c6ea9554835782777ef3cffc4aeba35c532309c8897b322c","0x1b06B43f3b0bBAd73784d858c782e029F3F5Af14",!1,!1,null,null],["ethereum","bix_token","BIX",18,"BIX Token","3045022100c227b117d19ab1b7c3bf8c6a6f761f08181c8ff793cfc4cf0996e3531975b4c402206e146885bce98251a3243194ce5107dc79160883e2cef6b5162fbe8bb9c92cfe","0xb3104b4B9Da82025E8b9F8Fb28b3553ce2f67069",!1,!1,null,null],["ethereum","bixcoin_pro","BIXCPRO",4,"Bixcoin Pro","3044022020b59648a20cc0c9791a7067ee399d1ea0308823a96a923b809453a1ec57fee0022057dc71a5f830cb99fac7f0a6afb9e51da49aef5494e370e6eb12419a8af88d93","0x3E9e371f8d2E9fCA315fB0A747533cEd8A3FCbCb",!1,!1,null,null],["ethereum","bixtoken","BIX",18,"BIXToken","3045022100a3db5c8b0b63ae4cb33afe14b722ea166c595b5cecbbc7900e3c7d373928b79202201ea9bbd50a5941a0d0c0ec59b3f8cb1823003a4540a71938d6094d719501c308","0x009c43B42AEFAC590C719E971020575974122803",!0,!0,null,null],["ethereum","bizzcoin","BIZZ",8,"BizzCoin","304402205e123c5cd6817b87bb1e98dfffaf64aa4c406d9efbd2d162c08748a3f34a63410220593e046559e90f5d8bf1bb97aa99f30c4eeae953b9cde335d4e1c6a2f006a5b2","0x7A8Ca2f815A260660158a38C34ca321A3605eCFE",!1,!1,null,null],["ethereum","bkc_token","BKC",18,"BKC Token","3045022100c1d0af837c9dff1cd801d76856691e92674882e52361c097fd85579e52558ef00220598a546a05080514b83f0541e9cbd52269869bc1f06fc8757b5a855aa7fc4a43","0x34bdf48A8F753de4822a6CFB1FEE275F9b4D662e",!0,!0,null,null],["ethereum","bkchain","BTKC",18,"BKchain","3044022014389f0fbd960ba53945459055440dd56b02d2fed25e2dd0d4236b0f093d63210220266435311082ddffdfaa232242bce2fbfefb3a3a2035b1c1cd2a84bc4d7d0648","0x6682195E2a0048CE38B727A3711802d58244606E",!1,!1,null,null],["ethereum","bkex_chain","BKK",18,"BKEX CHAIN","3045022100f7dedf19fd4a136c767ecfd368c01ef80ea98d800001183ca69db0dd08900b72022005bfad8f4484a63bf80e6ab4f9952be73018419809ef63b797c7022b67fbca7c","0x1df7AA5551E801e280007dc0Fc0454E2D06C1A89",!1,!1,null,null],["ethereum","bkex_token","BK",18,"BKEX Token","304402202a42ea1f301de0138082a7b2d81dae4934e9738454e672ab28fd408a37a08397022052b70b3c1bb60793d39cee9a5c075b2ff4aa4aff35aba949c66da8de236f6865","0xD0Bd12A8D5EBCA1E2FA46dA59F1993EC51C3d75c",!0,!0,null,null],["ethereum","black","BLACK",4,"Black","3045022100e94328124581a78067f815c417da7708b60743e06354ed0c2f923a0bcac77d3802203475ca8e52ec6b9e27ad965e3c1eb8ad151063a10d4f90c215e1e04ce60d0cf8","0x2DE4ef1Eb481cF4a7b8C9f88f6D2E47387cFAf5F",!0,!1,null,null],["ethereum","black_hole","HOLE",18,"Black Hole","30440220126b247bfb3382d905e99d6e1eb43b2669deba92c7b3f952af7f5015f54ba15c02202ca974f4ec4e802ca4b6ac0bc3dbcaf4b54ae882dcb8bc18c685b54d68735d10","0x03fB52D4eE633ab0D06C833E32EFdd8D388f3E6a",!1,!1,null,null],["ethereum","black_kishu_inu","BISHU",9,"Black Kishu Inu","30440220297d6a5e4ebe0f17a38687c32ce5e6a53f66873d76f74559877960edefa2369002204cbf24fe7937183a8f2651553d51e56d1bf2fa43b94a7ca8e1dcb38b119df485","0x99043bB680Ab9262c7b2aC524E00b215Efb7db9b",!1,!1,null,null],["ethereum","black_lion_coin","BLC",18,"Black Lion Coin","3045022100e86bff1760d6d2105d8548d7355b9a158bb9e8ad8f1b371979845acb0df38700022039e52126293b2b680fc4491afd26f3592befb1cfa55280ae47624cd9ee135326","0x42DbC00e14F711260E606EdbD4F14394aB4780d8",!0,!0,null,null],["ethereum","blackdragon_token","BDT",18,"BlackDragon Token","3045022100d0400b6450c60455376a3413116af7695a78a529d5fabdf05dafb9d9afa6b73e0220620e4f480d5d32ca270ec008bc340c0c7fb40b0808ba9e79d6227c6f340b6be6","0x4Efe8665e564bF454cCF5C90Ee16817F7485d5Cf",!1,!1,null,null],["ethereum","blackfisk","BLFI",18,"BlackFisk","3045022100b3fcfd9649eefeea071bb580c1cdfa6919486fb0b231f44a8d91799cb053774202202d4f32d57b8d9de8f234d8081f40b9eda3e7c81e4453c3cfedb0a014e934148c","0x417fFdBc285dd2C4dC00937798ab901634137caA",!1,!1,null,null],["ethereum","blackhole_black_governance_token","BLACK",18,"BlackHole.BLACK Governance Token","3045022100fbfc82dd74362e17b5d3a6a105ff61a88432d58f2d337a89186cc6ba410486760220438e30dfa6ec1464f8414cd8c2d116e43eb7f2f38f3d85d4b2a46bba41c9e837","0xd714d91A169127e11D8FAb3665d72E8b7ef9Dbe2",!1,!1,null,null],["ethereum","blackholeswap-compound_daiusdc_v1","BHSC$",18,"BlackHoleSwap-Compound DAIUSDC v1","304402205583393a34ed7ee28db01c7dd55bab541f192e009482fbbb733bebf8bbb57dee02203bb50ae116260be60ef90542aadb3e4b5ea1bc8f055d684bf0a5fdc851fc72f9","0x35101c731b1548B5e48bb23F99eDBc2f5c341935",!1,!1,null,null],["ethereum","blackmoon_crypto_bmc_token","BMC",8,"Blackmoon Crypto BMC Token","3045022100a4af1390f4d86f1ba5dc0cde6d1c44a28bd7d7be6d8b9bf2f32ced753f9a54ea02203a5c787798f8b9b7d950fb0ea7727bc2ee967a2b3710e4aa6a8643684bff9d74","0xDf6Ef343350780BF8C3410BF062e0C015B1DD671",!0,!0,null,null],["ethereum","blackpearl_token","BPLC",18,"BlackPearl Token","3045022100b0b4f81c1cbc9f47597388fa72d64e47629f3ce0b0b50950613d76b263a49d550220707a8daae5ee6cfafe25535d42ccef2d448a70e5a94ad2f32bd9160098c0dbfe","0x426FC8BE95573230f6e6bc4af91873F0c67b21b4",!1,!1,null,null],["ethereum","blackpool_token","BPT",18,"BlackPool Token","3044022062363927610aa77bf55b7ff4c38a4cd21fb91a1556ef1ec0ee3a16782275efe202207153edb003fa101867139839f99a438ae2f5b94891ca8e0e7b26d84b890d5ab2","0x0eC9F76202a7061eB9b3a7D6B59D36215A7e37da",!1,!1,null,null],["ethereum","blank_token_old","BLANK",18,"Blank Token (old)","30450221009fe5b0517697d7fa3ddbefd9a61c66d7ef8d1d46ad697196ff2982dbff09144b02201379b3ef93badf62fc85c66afc0b07e54998f987e8ecf416ae56f3300a3c36ae","0xAec7e1f531Bb09115103C53ba76829910Ec48966",!0,!1,null,null],["ethereum","blaze_network","BLZN",18,"Blaze Network","3045022100e6a83c4a1bd520ff0900f83e9906034deceffc1cf74ee098c5adb6d9abff9fa702203557ecf5d2035404946b33dd8491b37994f379d8c6f5408ea50938769a165431","0x70eFDc485a10210B056eF8e0A32993Bc6529995E",!1,!1,null,null],["ethereum","blind_boxes_token","BLES",18,"Blind Boxes Token","30440220657e520d13aeeda21eef5e27c6bf8af8610a10af41742bb9026ac20d50c1a6ae02206ad9ddae109cfe5b965575662343c04947d5afa684a9fdd8f4c5bcda87e4e525","0xE796d6ca1ceb1b022EcE5296226BF784110031Cd",!1,!1,null,null],["ethereum","blink","BLINK",18,"Blink","3045022100d7fbab96a875a62a87fbf82faee6fefd6afc7dd97ed82f171548e0342e7243da02207cc01fae03b6d968795698c6b946985349a3597a09aa84486aff234a12e1afab","0x42BEdD647E387daBeC65A7dc3A3bAbCc68BB664d",!1,!1,null,null],["ethereum","bliss","BLISS",18,"Bliss","30450221009808732b04ec54f36e2342180ddf1cd7340da24d695a054c4baa3c6f408eee1402202335f4527e03b063f9b71427a93beeb0ae2ebb17183dc9fe80abbee00004f5aa","0x50d2dE5397D7c657C3d424634a2dDf4e0D73d789",!1,!1,null,null],["ethereum","blitzpredict","XBP",18,"BlitzPredict","304402204f47f78212c6be404c77c11c2ac77c3f70fb243b2e4f80860b3cca94982d89a302206d27ffd820f9b5e04918cc6058ca05d53bd52235bd74f7e8695b766dac3405c6","0x28dee01D53FED0Edf5f6E310BF8Ef9311513Ae40",!1,!1,null,null],["ethereum","blocery_token","BLY",18,"Blocery Token","3045022100fea5cf06a098fef96264bd0d3c6dba734b678010a633ba8a26d8bda755bb8f0c0220398b0404ceb49a08a36d53cc6925945d72560c8176ce340f74f32ba5e44f0024","0xf8aD7dFe656188A23e89da09506Adf7ad9290D5d",!1,!1,null,null],["ethereum","block_18","18T",18,"Block 18","304402205b0491a1483462dbe2ee5202993b93c65265b7d4631a82230e16c9a396ac6a3f02201d74c100172c4152f0e871a511cca8f01f99fc776948d0fa2f2a6e4d6e360460","0x5A9bF6bADCd24Fe0d58E1087290c2FE2c728736a",!1,!1,null,null],["ethereum","block_array","ARY",18,"Block Array","30450221008de732fa6496ad3dfec846296143089cb5b650a7f0f1b66e5b6901c5dea1691b022052b4b417b825bedecbc0e136ac72c7a21680786f4ad8a089cbc57baf45158bda","0xa5F8fC0921880Cb7342368BD128eb8050442B1a1",!1,!1,null,null],["ethereum","block_chain_com","BC",18,"Block-Chain.com","304402206fe0924724335789d46d3ebec015c5548bf2f70c16d7236a4c9bfe01ae1e558302206bf5c817649ae88b7fafbe0b08a5a4ed80a5bad3f30282513c0bf42ab46884d8","0x2ecB13A8c458c379c4d9a7259e202De03c8F3D19",!1,!1,null,null],["ethereum","block_duelers","BDT",18,"Block Duelers","3044022024752ca09f0c419558c5a8f6f266738efcb2cceeda85e9e490be68dd6cac27e202205b37b346b8eacf32c0a1c1771a5ff4b1e06aa8a2cdbe664fe1c4efe0425dd746","0x7BCe667EF12023dc5f8577D015a2F09d99a5ef58",!0,!1,null,null],["ethereum","blockbank","BBANK",18,"BlockBank","304402200bb9b98a330ad9de4d963a998e1c130ab84dad54738cff60a0993a8e81a4442b0220226fbbc11b5ae4ce3bd489a073f7143a487b469dc31bbcd744879ab65c93be5a","0xF4b5470523cCD314C6B9dA041076e7D79E0Df267",!1,!1,null,null],["ethereum","blockburn","BURN",18,"Blockburn","3045022100afb0b94bbe67715a2920b031e4f3495cb7846d910b314f98d0714b4268a91a0c022070248e4e7498b23f3e93bac9ac91380d9fe91837f7bf7f7d0ab8661f88f9080d","0x8515cD0f00aD81996d24b9A9C35121a3b759D6Cd",!1,!1,null,null],["ethereum","blockcert","BCERT",0,"BLOCKCERT","3045022100912b223879c92b51b3887e6e6ec310be86a4a6d6e9be0aa9294b1236192124a002206031e841db8481430b45fdcdce50f4e01f8f7de88038b28eac7fc81bc15afd73","0xBb1f919e70EcC55335548d76F5c15a9DC8f5808E",!1,!1,null,null],["ethereum","blockchain_adventurers_guild","BAG",18,"Blockchain Adventurers Guild","3045022100a43ef5fff95f676b945881f1fa3b7a634d938cf00817c2fcfc85d099db2d04560220188782671fee835e8b29165cfe3c55b65af65e62912321d128f8372a0e65f85c","0xf33121A2209609cAdc7349AcC9c40E41CE21c730",!0,!0,null,null],["ethereum","blockchain_bets","BCB",9,"Blockchain Bets","304502210094f45e6a9bcbe32b3d324e11067096ed05c45509198bd6f741545ace7d3c3b3a02205c83ef9615ccfc75f22990ad875c4cc18cec7f92d16ccfcf40546b06cb8f33ec","0x2d886570A0dA04885bfD6eb48eD8b8ff01A0eb7e",!1,!1,null,null],["ethereum","blockchain_certified_data_token","BCDT",18,"Blockchain Certified Data Token","304402202c416760c1c6c349f157e3b5cff124b8918bae21b66dca6d5ac7bd329c90d81a02207d6dfa3f53b706cb98c0347f0b867fbab10122748032ffae43d247e811b63091","0xAcfa209Fb73bF3Dd5bBfb1101B9Bc999C49062a5",!1,!1,null,null],["ethereum","blockchain_cuties_universe_governance_token","BCUG",18,"Blockchain Cuties Universe Governance Token","304402202144ca761023c7bffd44c892a9eb39317747213deb253c7da10f3bae9b72cb9102202bc6874a3047c0ab0d46b05264623e9b2ceb6aa77f8a7f1a48b740312756d839","0x14Da7b27b2E0FedEfe0a664118b0c9bc68e2E9AF",!0,!1,null,null],["ethereum","blockchain_io","BCIO",18,"Blockchain.io","3045022100ad1662e33823ea961f2dc8bbe819379ece7137df56e00c616e1c5584adbcf159022018bc6d16008548f2f2ca347132e76944de2539e94126b28a000562b20ba9c286","0xCDC412F306e0C51e3249B88C65423Cd16b322673",!1,!1,null,null],["ethereum","blockchain_token_2_0","BCT",18,"Blockchain Token 2.0","3044022047f1e97937c73bd048fdfa68de7e86701b6a2da9212e1e1c083a6fa59a59fecb02206bf1b63012402655d79e629cb80ea28293421abf712881a74b1e5be6a20b1a6e","0x5C523d6aBe17e98eAA58C2dF62A6eC9162F3B9a1",!0,!1,null,null],["ethereum","blockchainpoland","BCP",18,"BlockchainPoland","304402200e8da9114f8860d15d9177f765487974db103b2e1cd4eedcafdf32e6d343367502206791b95f1155cfd3b2b61e40e7f06d1f6e18307f00ed28af83c707952979d263","0x72e203a17adD19A3099137c9d7015fD3e2b7DBa9",!0,!1,null,null],["ethereum","blockcloud","BLOC",18,"Blockcloud","3044022002bc3377c720b6d6ac8bcfe531b84bdd1a4d1666f3635171f6cd3eab006a3da202203f227d8afc2f2443b375d171e9f4c6998039cf260b977035c6afc930eca18991","0x6F919D67967a97EA36195A2346d9244E60FE0dDB",!1,!1,null,null],["ethereum","blockestate_investment_token","BIT",8,"BlockEstate Investment Token","30450221009681790fe7c86fd335b4a43fa5047462e1baf6c821cdcefc259fd6ccd7c214f802205bdb46d18bad4506f4aac8eeaf483398035f279ae1280cb38cee043b1ebaa4f5","0x089B85FA15f72c1088CBbef23a49DB80B91DD521",!0,!0,null,null],["ethereum","blockmesh","MESH",18,"BlockMesh","304402206558839501de5ec412cd4e81c7c6b7322819746d30a81edbd3d2d53efeac74f8022009bc3504ce9705e6ef4dcc4381f45b0b3a8401c64b3085ff5ad6a8ec7f082ae1","0xF03045a4C8077e38f3B8e2Ed33b8aEE69edF869F",!1,!1,null,null],["ethereum","blocknotex","BNOX",2,"BlockNoteX","3045022100be26792dcb4c528111d96e2afc206e1a2c68449f5fb69651672094f6659e1a090220238f043bf2b9b2b82aeda8c90290e821339f2a987bc6773b72abccacbebb07b6","0x8752bf7AD53D25A4165b9370F2becc22dD8aE838",!1,!1,null,null],["ethereum","blockoptiopns_token","BOP",8,"BlockOptiopns Token","30440220601622e816e94fd386224964a3968fe137e97bfb8ec359b3df813cef001a7ac50220365e1981ae7a4b935b16f4e63ea05156019b7cc10f73798b71c188d8a47ad89d","0x7F1E2C7d6A69bf34824D72C53B4550E895C0D8C2",!1,!1,null,null],["ethereum","blockport_token","BPT",18,"Blockport Token","304402205df636778b951e213f5bf07ccfae23eb666a357196b3d91594a7399edd7278ab02200398a5cfda9f0fa90ff599507a096386956219c688e6a283b51d038f4caae569","0x327682779bAB2BF4d1337e8974ab9dE8275A7Ca8",!1,!1,null,null],["ethereum","blockrx","BKRX",18,"BlockRx","3044022070328bf532a7eecbecbdb43d64eb2a899bc3d2e3126bfa014cd6cb5f6f6ab55e0220440a6fecaf47ca275af5cbea29426bd34b1b4610355f69a052b042cdc6ce7448","0x3cf9E0c385a5ABEC9FD2a71790AA344C4e8E3570",!1,!1,null,null],["ethereum","blocks","BLOCKS",18,"BLOCKS","304402207cfff300a860a303156d22e37a7c1a5c8e951ae4673fab3fa1ff3f2497ba85ff022047497c6541c23e7feacd831be8730381a807a023cbebd51eab269a726cdc3616","0x8a6D4C8735371EBAF8874fBd518b56Edd66024eB",!1,!1,null,null],["ethereum","blocksquaretoken","BST",18,"BlocksquareToken","3045022100d0fed2e36086a7c2740e26d7d97254421bdd3f54dd27f7a2f16d2c9c4280da100220038c9340dd4d590e308b67e6f9b11095274908710a0a8744ae464ee32bf325eb","0x509A38b7a1cC0dcd83Aa9d06214663D9eC7c7F4a",!1,!1,null,null],["ethereum","blocktanium","BKT",18,"Blocktanium","3044022079d9a4a74de01936285744b4eef55ee92358852cfbc35d4400e043bd986a440802200c6d32748f9583f334652d8b33f53028673e5ed069f14c69722f6355f32ef5ef","0x9d62526f5Ce701950c30F2cACa70Edf70f9fbf0F",!1,!1,null,null],["ethereum","blocktix","TIX",18,"Blocktix","3045022100ae3d5d09def5088cb3e379c1368cef16e23cf69fd8f482dd148bb46c1873683402203b0623e916a0c2d410dca0a3b45c07f78f2ad04065648b9235204e39cf068afa","0xEa1f346faF023F974Eb5adaf088BbCdf02d761F4",!1,!1,null,null],["ethereum","blocktrade_com","BTT",18,"Blocktrade.com","3045022100f0fe93e22c98a2c5367f956e4a8877a58298b76b3d8cd80a86efef6c1a11683802200c8702d888a66f6f6c2c2677e124a50e2da9e692db207181ac9952899fb7bb96","0xFA456Cf55250A839088b27EE32A424d7DAcB54Ff",!0,!1,null,null],["ethereum","blockv","VEE",18,"BLOCKv","3045022100f1e0938836324bda837ca1e76b84db589b33bdef40cedf991dab09d36f9918a9022013abab9401d7fb8fb7abd996e56437e5309a073d1a0866f9a60947ee15839517","0x340D2bdE5Eb28c1eed91B2f790723E3B160613B7",!1,!1,null,null],["ethereum","blockwrk","WRK",4,"BlockWRK","3045022100ec446e875abddd019bd82c64768f6913fd6850f64dae2d65827bfe2d515893fe022034e260f86c1d0d0d6c14310d203eb00114a5e38556464af0aaa434c346581e35","0x0407B4c4eAEd35CE3C5B852bDFA1640B09EeEDF4",!0,!0,null,null],["ethereum","blondcoin","BLO",18,"BLONDCOIN","3045022100b639f8a78324af828810a2983f1e02f607620547d84e0566e688cb497d6bd5c2022027095884aad5ec73e2ed61ed5ece1b0dc55b24ee6420a12a2dbc37405db80e54","0x1C3BB10dE15C31D5DBE48fbB7B87735d1B7d8c32",!1,!1,null,null],["ethereum","bloodypercent","BPC",4,"BloodyPercent","3045022100c50f929fa7d8ad632a593c095446d5b510b152186336da4882bca657211ffd3f02202814d5d0f4f482027cae29625596984ff6eceb9380200e75ab49a85e1cca2145","0xF21D65979bD89b28f05EF19F3c65dd2A1D02946D",!0,!1,null,null],["ethereum","bloom","BLT",18,"Bloom","3044022016ddc5557362b4188f1a4dc66dab168c80dbde20cadc7241bf15591abf9d7b030220091d1edd876539fbdbd1e7d0afd6efcf2a7c2e63f653eb483275f94f15f0b418","0x107c4504cd79C5d2696Ea0030a8dD4e92601B82e",!1,!1,null,null],["ethereum","bloomzed_loyalty_club_ticket","BLCT",18,"Bloomzed Loyalty Club Ticket","30440220608f5ac2d36a381651839603442b6781f69595e2b393cbe6c8a8cc47364b39bf02205b9c794ec7b19c9c1c7d2a8a1504da620d2c78649d186df4abb9444b1a54a2bb","0x6d2C508fc4a588A41713Ff59212F85489291d244",!1,!1,null,null],["ethereum","bloxmove_token","BLXM",18,"bloXmove Token","3045022100d0c0ca7fb9d19d1765bd2b34e10d5c44a12e433cc98d3c8da1137106274a362402202ca445fb07f12995d2feb1e7f784f025fb0d14b7e15be2ffb5aba5471d4a5233","0x38d9eb07A7b8Df7D86F440A4A5c4a4c1a27E1a08",!1,!1,null,null],["ethereum","blucon","BEP",18,"BLUCON","3045022100cab68eec012a4f94096ab15561a2d738688abd529527bb202362e53e1964f643022015356936e0412ed5f8f867ec7740e4d9a684bde6fc43984c612f4742ad04763f","0xd8ef149B4E1e8F050d52925F9C68D3a296E77227",!1,!1,null,null],["ethereum","blue","BLUE",8,"BLUE","304402203b92522c281781e5468005f554f66d793f15b33454baa636fb32e94337af9fcb0220624e67f933a2f35e015fa4431f24828e412c33dedadbf484f8ce8ae0f64bfbc2","0x539EfE69bCDd21a83eFD9122571a64CC25e0282b",!1,!1,null,null],["ethereum","blue-eyes_white_doge","BDOGE",9,"Blue-Eyes White Doge","3044022067b8821cf24084583f9f81cb8aa24723b8b03acaa138b569ed00a70bbdc14e1d022027f9e467d3b84da8e787c28f59c51a1b98b2d25b90227907c669a8f205a934ce","0x37092DBF8C26DA9Cc805683B4Cc0B942E92DE2fd",!0,!1,null,null],["ethereum","blue_whale_exchange","BWX",18,"Blue Whale eXchange","304402202072637cd3f3d24187ab3a67105939b3435e046c8a1abc7003ce45fa70978b7702204d5aa87febf4c802daddbaeeb3f5c0d58d1ae683d4c30483871be33f5bc0e4aa","0xce5114d7fa8361F0c088EE26FA3A5446C4a1f50b",!1,!1,null,null],["ethereum","bluechips","BCHIP",8,"BLUECHIPS","3045022100cf9dc7f1681797a6382ca9261c53cfc4ca1dc992273e9d8191ff0fc2d0a62de802205fe123187f8cb2c45403ea018814a9f5bfbfb51966cf61c973664b5c87fe4006","0x5eF227F7cE4e96c9Ce90E32D4850545a6C5D099B",!1,!1,null,null],["ethereum","blueshare_token","BST",18,"Blueshare Token","304402202a82855e5f4824e3e663fc25d5fa846b34ab4d3db154ac15c45796ff6b6937b002202371ab8120daea0626f37cff4726303384f748aa71f75f9bc373c214d5a7a3b0","0x336492A0601CC85e08C14D390BF07d960328aaf4",!0,!1,null,null],["ethereum","bluesparrowtoken","BLUES",9,"BlueSparrowToken","30450221008115a6bf4c36fb66187f2f8f9ea0154da066a4e31215e9448947c3205225c86102206203645b82052196ba1a0a1ae13047ce7c6c353f75d7b52350e037cff882da46","0x24cCeDEBF841544C9e6a62Af4E8c2fA6e5a46FdE",!1,!1,null,null],["ethereum","bluewhaletoken","BWX",18,"BlueWhaleToken","304402200330adafde82488393f03691e473bd6c71b74a04154d53bd209706e1e388cd3d02200f1775a55d1aefb48e6824726adce2656c7a4d9ff3b75ee063690291b1638d61","0xbD168CbF9d3a375B38dC51A202B5E8a4E52069Ed",!0,!0,null,null],["ethereum","bluewizard","WIZ",12,"BlueWizard","30440220749934d4ea94f5f404d62b474fed3237bd1fc121133cd17e9abfc93648f31ee802207cfe042226a1b2eb9c766f0e3b93ab3457490d2160d96be7bcf996b4f710e896","0x33d20575f20C6A1881F8ab08E69F6fbAFfAEedF2",!0,!1,null,null],["ethereum","bluezelle","BLZ",18,"Bluzelle","30450221009ce55031a0a2c0ea614dda5199807bb391a0c50c8c4c0cf4bfa7eea91f15534902207cbb67ea4f67813931f7df45a62c68d80984701d1d6cb87371d043855eb224a1","0x5732046A883704404F284Ce41FfADd5b007FD668",!1,!1,null,null],["ethereum","bminingtoken","BMT",18,"BMiningToken","304402201567bd9b4a15906a49fce3f565b420b3fe27e51430758882024ca1e3fc0c8581022019ee2abd3c1b9515869e6804886353b5d587940b337c77bb987ab3a9deba9b93","0xf205D2D65205711B6f6AAe3FCb7EbdBC8573f192",!0,!0,null,null],["ethereum","bmj_master_nodes","BMJ",18,"BMJ Master Nodes","3045022100ab70336692d9c2b6f397b3fa430dffd68e01e8972fafbb6287323a97e10f116402207d6680eabad7918c31912999f5263cdc00f4c0c759b40d9a8b8ebdb3369fc4ee","0x5913D0F34615923552ee913DBe809F9F348e706E",!1,!1,null,null],["ethereum","bmt","BMT",18,"BMT","3045022100ef66349dc25e4306ca26830d725e11a8921ce540c7e534497e6964dc25ce2abb02204e72133ed1ca4d6ea998ee486709cd3c95c848b669379fd1cc2d54de43e74c37","0xf028ADEe51533b1B47BEaa890fEb54a457f51E89",!1,!1,null,null],["ethereum","bnb","BNB",18,"BNB","304402205ccf7780c2780456c4d645ffdd0bd361abbd1fadc960ecb76f8c4f0391b85b7502205699a0fb0b2976d9687ed6e4aff677b4247d42886672f715455c13456b7b1a51","0xB8c77482e45F1F44dE1745F52C74426C631bDD52",!0,!0,null,null],["ethereum","bnbbear","BNBBEAR",18,"BNBBEAR","30450221009f69c2492746bd4d2b97ba1807507fbc3a4780474aee1a299f41b1985c35ea26022001a295f8ba8963b6f84f1ec1fb19a82faedae8775e0784613b6861a12c50602b","0x6FeBdFC0A9d9502C45343fCE0dF08828dEF44795",!0,!0,null,null],["ethereum","bnbbull","BNBBULL",18,"BNBBULL","304402200ec0f17f128272c0a6b60772b2dd5aff3ed09baeca3df2f65ba764ef22d3d74502206746d39f2622ec39158d26398a92b9608fb5ef9f0e0de882e7aaf58f8a4646fa","0x9D1a62c2AD99019768b9126fdA004a9952853F6E",!0,!0,null,null],["ethereum","bnbhedge","BNBHEDGE",18,"BNBHEDGE","3044022012aea629b68ff1e3c27e0a0511bec150fa9b612bd7199632f8e03a698f8ca9220220202b6134447b1235e8bc328250a45a084fa7104a27c8227a991623913e0e5396","0x2840aD41cf25Ad58303Ba24C416E79dCe4161b4F",!0,!0,null,null],["ethereum","bnc","BNC",12,"BNC","304502210095b69043f22c2b48497e6a81c1d5e980b38bd41c24a6de27ddf334ea794409140220695eee600444b2c5e8dc41ce50b39b3ba049d7bde6b8daa5117d03c85a45451a","0xdD6Bf56CA2ada24c683FAC50E37783e55B57AF9F",!0,!1,null,null],["ethereum","bnc_token","BNC",18,"BNC TOKEN","304402204e3ec4ee537433acb9f9958aca231ced9bb37b6ec71c4a1d8620c6b6c6fee68c02207ce8a284420ab3472afc2f72b98ae3c99db7cbeb966979cc99205adeabeb2732","0xbe5b336eF62D1626940363Cf34bE079e0AB89F20",!1,!1,null,null],["ethereum","bnet_token","BNET",0,"bNet Token","30440220097cab81a6a3d7dd19d40af81cb4a6403caac63fb5efcac63740606046d0c8870220746b1181544e7452b64c792bd8b09493189c438afbebcda7b4f3148498a3748e","0xCe5FeB53e8aA2Eaea42693F8cd756488F32bFCC7",!1,!1,null,null],["ethereum","bns_finance","BNSD",18,"bns.finance","3045022100a37b9bdb2308077c37c970f94fe03ea0735b88ce644ee5af3ff4291ce3c4754e0220039fe17d390589bb3046bb94b5ee50884d5e4771231b33ad3dc5b1e151228b68","0x668DbF100635f593A3847c0bDaF21f0a09380188",!0,!1,null,null],["ethereum","bns_token","BNS",8,"BNS Token","3045022100e56ed108d24544942ae74490b7f0ee810861ba253b32cd30e38fa77fb71fbc1402201442dea0114ef2f47cdfd2151b23ac7b29cb179359c2c2067a862223e6f51259","0x695106Ad73f506f9D0A9650a78019A93149AE07C",!1,!1,null,null],["ethereum","bnt_smart_token_relay","ETHBNT",18,"BNT Smart Token Relay","3044022006da0efdbdf76071882040cc79bdd088c32e962afd23c55f3e7cb0b4fa088855022057eaea7ad070db201afc23f736da8525919df9c5855be506668141a187b84c1e","0xb1CD6e4153B2a390Cf00A6556b0fC1458C4A5533",!1,!1,null,null],["ethereum","boa","BOA",18,"Boa","3045022100d66abd5ba629c41f411eeafa221ba42209877fdf5650252fd5defe585cf7ec0502202a3f2a19b361d4453d9a6d93b1f40e779c851f95fc5f87607163b0437a9748e2","0xF9c36C7aD7FA0f0862589c919830268d1A2581A1",!0,!1,null,null],["ethereum","bob_s_repair","BOB",18,"Bob's repair","3045022100f56ea81cd6a135304d1ac7fda50c59bc5d8ddc2a8576d9a3661a1f5a568d5cb3022078908fde20b3aebeed7367651a080a8a6a5bb21319989666ff9b6feecce30eca","0xDF347911910b6c9A4286bA8E2EE5ea4a39eB2134",!1,!1,null,null],["ethereum","boba_token","BOBA",18,"Boba Token","3045022100c1577b64e1c96df92816c6029c3b1f3de04ae99e92a79de6ecdac0c4081931e802204a3410894a4aeda67bfa99e35bb41092a1a2dc39d9a2923e9a3f095fb61f0c7a","0x42bBFa2e77757C645eeaAd1655E0911a7553Efbc",!0,!0,null,null],["ethereum","bobc","BOBC",18,"BOBC","3044022038db04434c95bdcf2ac2572ddf95a41317a9375c53c3a51307f1e9de9650980902200c47d8894731090032d9c6b294b3f5f0d7658b0f414fa4f37bcccb1e33ee96c5","0xe803178b48A0e560C2b19F3b3d4e504f79D229ce",!1,!1,null,null],["ethereum","bobo_cash","BOBO",9,"Bobo Cash","3045022100cf8f1301a4118a15452f13db8493402aabe62902a679b7594268a79c3056b995022022f5a1df56aa2a5806084b04b32dd4295c987c06c4458b9497dbf9d428044a7d","0xF53c24f7729C88C110265929c7124E6259eFccAB",!1,!1,null,null],["ethereum","boldman","BOLD",18,"Boldman","3045022100944340810ba10356526e31febf7124899fbdea0d71421d3f40b8907e5247406f0220364d783464e0ef4d294f062c24b75b2abab67fe571fe45804f04b0f95f868adf","0x2d4de3C744D43CF77CB12399921FAF0D78b7415b",!1,!1,null,null],["ethereum","boleno","BLN",18,"Boleno","304402200c446652565879b5b93c9593d97234930b347f4a09fc85595c204ad923d00b4a0220023dea860225b7d691c3e26b6ce284c1a37ca383a7d807d8bb5edf145fe09d3a","0xCA29db4221c111888a7e80b12eAc8a266Da3Ee0d",!1,!1,null,null],["ethereum","bolix","BLX",9,"Bolix","304402206e1461c3d4d98ac8aa21b77bd7db5883b3c252034502940fc59fab3d7fee6670022035fe80c623e86e1f83e0fe33008e54deb9cdfcee6bfa30d9a4362fdbb339682c","0x6182368ff90795C9990fcF3Ec8e6aD8a9ec5149c",!1,!1,null,null],["ethereum","bollycoin","BOLLY",18,"Bollycoin","3045022100a759760945510fa0f7c085fdbb02db82474bb679243d7db9b3dfed64c6c553cc022005407fdfc4172ca14de09972f238e6c2a3792dd4876e24584103e886e8778d85","0x6bd361e10c1afed0d95259e7C0115f3A60e4ea99",!1,!1,null,null],["ethereum","bolt_token","BOLT",18,"Bolt Token","3045022100a9f21f88f8aa59a235a07a72fb840589230a2fdbce089134d3941b9e5581a09a02202f8c30ae258d70d020aa1a31ec39057a73e0d03e6e6c427c78dccc64a208e3db","0xD5930C307d7395Ff807F2921F12C5EB82131a789",!1,!1,null,null],["ethereum","bolt_token_","BOLT",18,"Bolt token (Old)","3044022048c2ca25ef6854ed65bde728360975d9cfef997494cf76c2b13a08e2b90d87ae022007d8ac5c8cfbd276b70959c4eb5ece49df5db5d9dcd6b1e7efbdc9a46ada1c1d","0x9F235D23354857EfE6c541dB92a9eF1877689BCB",!0,!0,null,null],["ethereum","bolttcoin","BOLTT",8,"BolttCoin","3045022100e18f6d4fa65eb2df3e81257f2198ee5499f8b086c52e4cfa5ce337ec99e2251402203442212dbd2738f0ee112a28f19b7dbf79a5cc4d8201deb5c284bad6d54b9897","0xbB340A2eaF55C5e67a5A05FE5cEed9B9702d76f4",!1,!1,null,null],["ethereum","bomb","BOMB",0,"BOMB","304402206d4667173db5e611eb5647ad45506e2240da4fab94ce2c406906a7f493da895c022018ec387ea66d7f8e203a45f12ba360e5e656aa1fdc814dd301d333ac75c5c9ec","0x1C95b093d6C236d3EF7c796fE33f9CC6b8606714",!1,!1,null,null],["ethereum","bond","BOND",8,"BOND","304402201022e115205d42f668a267a79cfb1ab494c60f17828f11515a329091ab62f61202203eaab590e2b85a6cb8635632a65c967b5bd465934fda77a94b59ef79f4caa057","0x5Dc02Ea99285E17656b8350722694c35154DB1E8",!0,!1,null,null],["ethereum","bond_appetite_usd","USDAP",18,"Bond Appetite USD","3045022100b06366a09a5faa526beba34d2126cdeec399ddb374665ba8a430e32ad66f34210220272e2f9608c2fe9cb65574a60d0bb98ec89081b5367623321db4d5913929b7e8","0x9a1997C130f4b2997166975D9AFf92797d5134c2",!1,!1,null,null],["ethereum","bondappetit_governance","BAG",18,"BondAppetit Governance","3044022015feee7a1d184c83a748f4428c39be6c0db7b8dff91429698a9624a3258f329602204e675025568df83a8b6c959c740df49522565d7df24633ddde2aa896e3b5c6bb","0x28A06c02287e657ec3F8e151A13C36A1D43814b0",!1,!1,null,null],["ethereum","bondly","BONDLY",18,"Bondly","304402206859b2ee5af1da8215b8bf84b1d4708c877e77cf538a7bee322e0cdd6b81186402205c29bdcf856d77286fcf169d86ff0a0d0935896c87badf95bdb7fd3565d9651e","0x91dFbEE3965baAEE32784c2d546B7a0C62F268c9",!0,!0,null,null],["ethereum","bondly_token","BONDLY",18,"Bondly Token","3044022034a19cc91493b0f4c3897b9afb8f32b450432de1a7edbad9fefe42aaa38a266e022075a4220cd9009bec551813fb0c16ae7f0ee4266a120d0e89c53b8a518fdee865","0xD2dDa223b2617cB616c1580db421e4cFAe6a8a85",!1,!1,null,null],["ethereum","bone","BONE",18,"Bone","3045022100e57a63971761f9dd7d6e1c458b42cacd1aef326143e46b8d68fcadbe2acfcc5b022057697107d2092cc0465bbdf58ea1f431af55e41fd20fc15dafc896cfa064a9ed","0x5C84bc60a796534bfeC3439Af0E6dB616A966335",!0,!1,null,null],["ethereum","bone_shibaswap","BONE",18,"BONE SHIBASWAP","3045022100af16f13773e0a94f9bcb8c015dec9c67f141c9a6620609db4d33f1f5692592070220277c85aeac3e10f48ec4fc46b1d56fb4b293ecf44e46e6693719e6a40dd49993","0x9813037ee2218799597d83D4a5B6F3b6778218d9",!1,!1,null,null],["ethereum","bonereward","BONEREW",6,"BoneReward","304402202c3b79986bb4d9f34c92449414f565770f1f2abcfe1a17c8a0689588319b7ef302200bfed38f9e8863f38116d481326e64899a5085adeac9208ba1709ffad654fe0b","0xcBf40F07D4C69410fD9C32b5eD07DC2cc113b86C",!0,!1,null,null],["ethereum","bones","BONES",4,"Bones","3045022100fd60c47b63131fb0eef79a09439bad724b3edeeaff3ee4ab6326f70d73c7f72e02206628a0d3e52bcba114dcd92c1c9a694d97209d30d8c9cc17b4f1f52c16a29519","0x3A75731f9e16244dE01DD431636Db7c07D42A166",!0,!1,null,null],["ethereum","bonezyard_music_platform","BNZ",18,"BonezYard Music Platform","304402204305b436f86331624bfa32a776b8582ad5114a4b426b0a77e25e999ab226fa0f02207df91b9468b3983232221ad4485a73ebd1d836799c7ccf4c886b22b42593b1c1","0x014A543f767B3B06E31A811b0A75483Ee8dFd72D",!1,!1,null,null],["ethereum","bonfi","BNF",18,"BonFi","3045022100ec5c9d042be8e8829cafcfa9ab82a9141ece7bf9569e6a5f64a859ea73ea009d02202a90efc89faef6107335a76f31a83237d7101b25e4ce2a0483afc432eba4d627","0x1DE5e000C41C8d35b9f1f4985C23988f05831057",!1,!1,null,null],["ethereum","bonfida_token","FIDA",6,"Bonfida Token","3045022100beb54331904bc3a6ea9784085b0c716c80ea71e84017ff5f2cc6fd2b4b8e3c9802200fb4aa1ba514c800834d43a989108b466d1b07ceef848200a607d5391b6a71d0","0xF40D9507a7d4850c52a45698c9410e2c345F7A94",!1,!1,null,null],["ethereum","bonktoken","BONK",18,"BONKTOKEN","3045022100a65042bc3960eba98ac604590e4ee0264f648480fac40314e9137b6881ea1a45022018afa950a03ec4cd4bf18e13b2b8fe9f523c76fd25a299b1ffa726720159982a","0x6D6506E6F438edE269877a0A720026559110B7d5",!1,!1,null,null],["ethereum","bonpay","BON",18,"Bonpay","30450221009ae637e0fcd297c551a06c258d62545f4984d8a2099faa79c14e1e3c3eb440a802204da59834c569a5e0ee1927c851b7abf830c2d2ea401c0bc55fe026abf5448ad7","0xCc34366E3842cA1BD36c1f324d15257960fCC801",!1,!1,null,null],["ethereum","bonuscloud_token","BXC",18,"BonusCloud Token","3044022042415e3b27dd20dad48a42b8f8476f0079bcd586b8a87cd2e30f1754f32c47d002202480e709746c2700d449ec144437bb214326824149877c73ec9370da316ca6a4","0xdeCF7Be29F8832E9C2Ddf0388c9778B8Ba76af43",!1,!1,null,null],["ethereum","boobank","BOOB",18,"BooBank","304402206d3ed70faf64df03e8e95ff2176527195c2db06d0b20fa01499eba61472bda350220399a3a1f9b0031dddba63cf9a5298d937b1b84d7b92ac32daa5dde0d6db65e81","0xa9C44135B3a87E0688c41CF8C27939A22dD437c9",!1,!1,null,null],["ethereum","boobanker_research_association","BBRA",18,"BooBanker Research Association","3045022100d35bd89728a6a9a6121eb0e2bacae376e62c43621a4b08679e76aa819116749b022020e6154e2b5d6f0322c81cb524c8d87bbcad4cb5be08a6c7c36678e6928471c0","0x70460c3Bb9AbcC0aA51f922c00d37816d6EDe4D7",!1,!1,null,null],["ethereum","booleancoin","BOOL",18,"Booleancoin","304402207121b58c62290298f65a209f427293c10846b6de95d45f1386cf7d07f96f53b10220449537ab419f58e7c5f3e19aad2c13d3c303eab05d8e239840205adb0ff4e38c","0x6C929cdE908481F3d1D775008791F42B1B89DBB0",!1,!1,null,null],["ethereum","boom","BOOM",18,"BOOM","30440220745521df1d3468cd8c8a2adbb1c6145ff066aa770bbcc2d73236fb499267d0b5022019d976984e1efe16d6367b1f319cb08f8da3b6f8bb2a7ca4bde93f428d30ac79","0xDB7Eab9bA6be88B869F738f6DEeBa96d49Fe13fd",!1,!1,null,null],["ethereum","boombaby_io","BOOMB",9,"BoomBaby.io","3045022100f2d08924b3e47bf89ba4c261cdec22dab49c1eedf70b5c665c09b524cb352a6002201e533a78dfb53f7b2deedcef1cb08540076ce4c365ca9bbc9b61403ae665e3b7","0x82b89e0F9C0695639EB88659D0c306dBC242AF96",!1,!1,null,null],["ethereum","boost","BOOST",18,"Boost","304402204aecf7300550c95f9d12cda95db4c106770b44890b7401c460420724c6e488d002202bb7e255d6a60b73c1b6c212fc5bee37930fc4f53ac90a6aa47613ecfc722055","0x4E0fCa55a6C3A94720ded91153A27F60E26B9AA8",!1,!1,null,null],["ethereum","boosted_finance","BOOST",18,"Boosted Finance","3044022062351b84419a186ad1254c25d0fd69ab8c10076353549f2d99b62003f1a67f9e02203ee1fdbb532402c6d1c76ff93e8266505e999203b82cff8ed99a2abd36051ccb","0x3e780920601D61cEdb860fe9c4a90c9EA6A35E78",!0,!1,null,null],["ethereum","boosto","BST",18,"Boosto","304402203c0f6423061b6982c6689689b755e1d8519d459c99da30ff2cf26a9c91977197022005a21212f035ef1377f1bda03724fa151a32fa0d80d3fcb3d2e5620a1f72f048","0xDf0041891BdA1f911C4243f328F7Cf61b37F965b",!0,!1,null,null],["ethereum","bootleg_nft","BOOT",18,"Bootleg NFT","3045022100c45ffd7f15bc4d0cdf512677d281af407f8c58afde5b5ded46cc6722a480ea92022029023c6119a0549befe9a1b8b964b0217b16d1c126bf75eb87a1a464905dc0cd","0xc8ce75F643eCAD864FC625902A6a07371f38320D",!1,!1,null,null],["ethereum","bora","BORA",18,"BORA","3045022100f4f7f8c11b55ee4921f334dabb0e0c9ebeb498936452b3d8764f145d4a19c54f02206919aef543412fc0e2959b34fe2648354da5856b6f4233701bc7fd5cc2d3b61e","0x26fb86579e371c7AEdc461b2DdEF0A8628c93d3B",!1,!1,null,null],["ethereum","bored_ape_kennel_club","BAKC",18,"Bored Ape Kennel Club","30440220042b94d00ceace59a5bb0fdb42162a78a2e982dff7a6fe0f07f5272403e6529a02205080fa93c42ad84f77105ace7b5e9034cdbe78e06550296b10b6d347d89ce7c7","0xe632e1EA781df32c60AB11052958744CBfBc439A",!1,!1,null,null],["ethereum","bored_ape_yacht_club","BAYC",18,"Bored Ape Yacht Club","30430220762f758bc9d5f88bf20cba4c289862dfa23d7b7c02296dad4d24d054a22eb0b1021f0d4cbd5325953e7cf770896cfd54926c1fd9153f9e95f0fce8f430a78e4049","0xEA47B64e1BFCCb773A0420247C0aa0a3C1D2E5C5",!0,!0,null,null],["ethereum","bored_ape_yacht_club_","UAPE",18,"Bored Ape Yacht Club","3045022100ec0634df4f3f14ce7bb826d7591fe9835a1271a17b347355066fc4ca81b3180b02201120d95106d325e13d13a2063c9c1464e78464922e305fa7eda7b5db8685adb4","0x17e347aad89B30b96557BCBfBff8a14e75CC88a1",!0,!0,null,null],["ethereum","bored_museum","BORED",9,"BORED MUSEUM","3045022100a277870a6ebfe60ec38288d9c8b6615cb258986d8b5e53ea65cc88983961dccf02202a9e65b0f64c9481989a60db7f700e7482bf24e1c56f07c147b1324ec7fdf7dd","0xFaC917971Ce50849502022B40aa8a12843F022C0",!1,!1,null,null],["ethereum","boringdao","BOR",18,"BoringDAO","304402200b3d585aefb27ace7cf4af5e2918243fcbff7608fdfa9bb71101ea075196818402204d4a4fe7c644c566a614e26960b00e1237ba8b420f8eb09d50053873d4c27de6","0x3c9d6c1C73b31c837832c72E04D3152f051fc1A9",!1,!1,null,null],["ethereum","boringdao_btc","OBTC",18,"BoringDAO BTC","3044022003f8c84c57d8f15f1be3dd61f6b2ec0e6c4f3492a530b723200f1a88931341e5022002f9e7718ad4add9485f8618baeb1d9c4ce7752aee0391d3fbf5231ea5cc2d6b","0x8064d9Ae6cDf087b1bcd5BDf3531bD5d8C537a68",!1,!1,null,null],["ethereum","boringdao_doge","ODOGE",18,"BoringDAO DOGE","304402202184c775ee6bda88c0efa9b40d3278de06fa2c5423809b4066ded5928f1157c702207fb1fc33731101542375c17eecad5d762a7514ad6402ab0e533764bc2b88d4ba","0x9c306A78b1a904e83115c05Ac67c1Ef07C653651",!1,!1,null,null],["ethereum","boringdao_ltc","OLTC",18,"BoringDAO LTC","304402201dc4d20e2d8679c435ef54c0470131a11ff9f06a0b35ae96f900b02e9687112f02206c563a71187c8f87e1f84ea0b470bea39849bac86e1c1da73ce0b19b9d153af5","0x07C44B5Ac257C2255AA0933112c3b75A6BFf3Cb1",!1,!1,null,null],["ethereum","borprotocol","BRP",18,"BorProtocol","3044022064abef227018cf368fcc2102435a41894ee766146d98d873dac02eaae22a180d0220315201593a09132688a11431fe955bd084941d1eab1816b7edc0cd79a930a7f9","0xe5b998F63e7022664D3C36c56d1798ccA7751573",!1,!1,null,null],["ethereum","bosagora","BOA",7,"BOSAGORA","3044022066e831bfc4d604cdbb9112a27f10c87b9b05851b76b85389bfb0ae9fc92cf1e9022060209ff80cb816c2817ad76b0845931f30d544cf7cb970b42df3d25caa115633","0x746DdA2ea243400D5a63e0700F190aB79f06489e",!0,!1,null,null],["ethereum","boson_token","BOSON",18,"Boson Token","3045022100cfd3d5fc77877cc8fa12a4f4b61069c5010a43f8a3aead35697c4641f19e3c1a02201326c30cc97b594f617d220240eb0377a2f4b80278e845d8d0d2c2a21111c14b","0xC477D038d5420C6A9e0b031712f61c5120090de9",!1,!1,null,null],["ethereum","bot_ocean","BOTS",18,"Bot Ocean","304402206dd5ad655225bd622c115325c6a34a9b747765470162f999e2c6354f67f2a26c02200bb803b393ed8f74bfacaf541099e673cf5479281b03f562e16bffc61c8a03c9","0xf9FBE825BFB2bF3E387af0Dc18caC8d87F29DEa8",!1,!1,null,null],["ethereum","boule_coin","BOU",18,"Boule Coin","304402200784c305cebc7695994425bb938693a2004e0c2d6de10f2bc96eb990d38aa36a02202fc002d956f847434c55874f467f17da1fb2e92118f22e70b42e7d49fef4a4d5","0xC2C63F23ec5E97efbD7565dF9Ec764FDc7d4e91d",!1,!1,null,null],["ethereum","bounce_token_","BOT",18,"Bounce Token","3045022100cdf8c9b3bad524d9ed424a6e88188651d84857602f4c37e5cf5af1076ec2f990022039ffe410721dc1a40e36537450d8bff2c74d63e742fb6a3ad4436a6c670c937a","0x5bEaBAEBB3146685Dd74176f68a0721F91297D37",!0,!1,null,null],["ethereum","bounce_token_auction","AUCTION",18,"Bounce Token Auction","304402204adba30caa24737baa1047e7e16b3475115231f466929921a63060759e105c0e02205aa364ca953224c36604b726b9657a6569889c50f558bf19f611adbad168b041","0xA9B1Eb5908CfC3cdf91F9B8B3a74108598009096",!1,!1,null,null],["ethereum","bounty0x_token","BNTY",18,"Bounty0x Token","30440220560ca208c1b9335368a2c3d69470a52fbd22e16e720cd001868afd79492845eb02207266226ef3e7bb71a9339112508a18df4aa749b1c418d178f35b169b2930ea2c","0xd2d6158683aeE4Cc838067727209a0aAF4359de3",!1,!1,null,null],["ethereum","bountymarketcap","BMC",18,"BountyMarketCap","304402202f9f15ef083f165ab6b829c2e7e3bb6d9206a8d3a4dc5ed4897b1fe781a0518502201e8383bcb5dce887a7bea98984688c4146e0d748a1e966ba1a54da1e6effd2ed","0xd945d2031b4C63C0E363304FB771F709b502DC0a",!1,!1,null,null],["ethereum","boutspro","BOUTS",18,"BoutsPro","3045022100b1e01e75187a94b0247320192fb8d059c3ea6dbb4320b80c4bd4a2304a22c9a7022002733e0fc7fe3a41a784dce628a2aa60d202f18bffad1576595345d653a6a781","0x139d9397274bb9E2C29A9aa8Aa0b5874d30D62E3",!1,!1,null,null],["ethereum","bowl_a_coin","BAC",18,"Bowl A Coin","3045022100b06c9a5bbd3941fc3ee94d60835c0ad4c18413007012f3d8efbdca2527a978eb022011c79a0f46263312a264da3462cf627ff1b2b05159f45935961d945473c4fadc","0x062e3Be6a7C56A395b1881A0cD69A4923Ade4fa2",!0,!1,null,null],["ethereum","box_token","BOX",18,"BOX Token","304402205c156080ca509d22e5221124904258cdffd475737ffd570882142a6433d9709b0220271d451304f7d68e83929a5001a67531653d74faba38383240d11d71f6007727","0xe1A178B681BD05964d3e3Ed33AE731577d9d96dD",!1,!1,null,null],["ethereum","boxaxis","BAXS",18,"BoxAxis","304402206af2e78334a23c588a4fe9c287922ee6cb45150235ca4ebe60a2a63f2f86b9e10220159bf541abcd057008d330fd6a26ab6e1c750b7436c6884112a576574321fee6","0xACf3D402e5E2C3eDD5b8129e966017D293F12a4C",!1,!1,null,null],["ethereum","boxx","BOXX",15,"BOXX","304402203a44a1226441d9f1dce9fdab63ff9bdcf42af6e0d76623fa93b82deb593aa23e02202f0151a2299932962a1be913bbe0a1185ec0f84edace9a4ed19522ae31accb5c","0x780116D91E5592E58a3b3c76A351571b39abCEc6",!1,!1,null,null],["ethereum","bpop","BPOP",8,"BPOP","3045022100dbf58ef8e81d0ea24afbe6596a2f4eb82392dd3297e1644517ceb0e2635f207502207da4a64979b9797950a0b3a94ad71057573acbb578bdfc3d62f02529f12f6ffe","0x0452aeD878805514e28Fb5BD0B56Bef92176E32A",!1,!1,null,null],["ethereum","bptn","BPTN",18,"BPTN","3045022100f3419d5cd78d607829a01eabd1af53d6f97b4a2a9a69ae634043d0f7cf2b619a02204f83c086d54bcda5d709c321c254464789ab9323d8730261465123831d2a6308","0x6c22B815904165F3599F0A4a092D458966bD8024",!1,!1,null,null],["ethereum","brank","BRNK",18,"BRANK","3045022100a62f668429d1cd7d0a47a35992bb3308b0e58f57af13ec421bf014b3d203c61e022038456e4ad40f5026fe8ea3307495168c236c8b9671a64d2b1081f8900505e9f9","0x9fe9c37f999096DF31B5ae9A7734392b2AFdA375",!1,!1,null,null],["ethereum","brapper","BRAP",18,"BRAPPER","304402206ffd426bdc738890c9c6f5d9b7033bb1563a4dca2d8db62d3dade06ba730bf4d0220207a640289d4c8220f50a29f30ee8cd28e906e71b75fc0c8b019c213f30bafb5","0x56ED2f7DAc19243df100Bac10364C56df20cb1e9",!1,!1,null,null],["ethereum","brat","BRAT",8,"BRAT","30440220482718d291fd4b778888823f068b0043092ace62212a60e7ef361204e586b024022039e3a838278cd210e50c3874db2b3a8160ee19529fbf2bbcd911d64ae2ca7102","0x9E77D5a1251b6F7D456722A6eaC6D2d5980bd891",!1,!1,null,null],["ethereum","brazilian_real","BRZ",4,"Brazilian Real","3045022100af71e838e4e5ccb476a683ba54a8776377e80d083c4929bd6b0a0cb8b09d804d02202df55a655aac4e39ffe2075eabf6624a51429221ef4970a977cb84d76415c014","0x420412E765BFa6d85aaaC94b4f7b708C89be2e2B",!1,!1,null,null],["ethereum","brcp","BRCP",18,"BRCP","3045022100fca2ef6d69bea37f858d336286ce3d789fdfaa9a56807e67c3a2a19ac55cea100220408534d9a167b0e852d6ab0610e1af6629a1afc5d4f9452de0804563a8f695fb","0x73484A262730d1d422610729e828346F9B2ff480",!1,!1,null,null],["ethereum","bread","BRD",18,"Bread","30450221009489e1bdf00c539fd182f9a788f858707a5386471d51b98dd0d9ebc6af2768ae0220731dcfaa36a9f666c8dd1d8ba080627fd625dc3f3394d7307c31de2d6196851b","0x558EC3152e2eb2174905cd19AeA4e34A23DE9aD6",!1,!1,null,null],["ethereum","breeze","BRZE",18,"Breeze","30440220708c5b8ffd0452d5269f92d05c3a48acf66ead6d5458f73ece75643dc0087b4a0220700223cbfbd9551b2ee603e44f2ac28fd3979e210df1f275b202774d8ef62724","0x77C07555aF5ffdC946Fb47ce15EA68620E4e7170",!1,!1,null,null],["ethereum","bribetoken","BRIBE",18,"BribeToken","3045022100a8be2523fab53a367edb7d95eb2635e89dfe2e23ea029370ab084e3ea2d0fcc30220443b319f3205bdddf3046a34b1b01d72ca170adbaa4ad7cc6fdc1d72866e2b80","0x679fA6dC913aCAB6dEF33Ec469FC6E421bC794F5",!1,!1,null,null],["ethereum","brickblock_token","BBK",18,"BRICKBLOCK TOKEN","30440220535d2cf65383ba9a415a4cd8d5d23fb6dcb35640d46e4743704f7621ffd34a8002205303f3bdb731440a36b1ab118eb396c99547220eaf9a0611f5e31fb70ce7598e","0x4a6058666cf1057eaC3CD3A5a614620547559fc9",!1,!1,null,null],["ethereum","bridge_finance_token","BFR",18,"Bridge Finance Token","30450221008cf180fa622c9d3771e07879d2a4a23201d2dd42dc75fb4ce6fb3405622d560a0220174fa821346f6f4ef1aa22d4cc98d7057ea5fb5a2c5284775900c69e404e63c7","0x244c5276Ea5bB927575417156038d7381b44Ab2c",!1,!1,null,null],["ethereum","bridge_mutual","BMI",18,"Bridge Mutual","304402201ef553b884b558b1f18cb4c3710b43686ba90d3b94279c4fc4a9248342cb914c02202fc63e10d3819fbce5847989cb354a1635674d6ccf4ccbbf26148c15ced1ed4a","0x725C263e32c72dDC3A19bEa12C5a0479a81eE688",!1,!1,null,null],["ethereum","bright_union","BRIGHT",18,"Bright Union","304402202235baa3b88dff008ae46fa4e0731496eeffee2bea72eda003de4a044077b60402207de1cbf0b1510609e6b491ce2698d1fc2940a0b5dfb288cc68b85b663c03c3fb","0xBEaB712832112bd7664226db7CD025B153D3af55",!1,!1,null,null],["ethereum","brilliancex","BRILX",18,"BrillianceX","30450221008d070fcbea3b63d577f9142ff5f99b6f2a6e4416ae335c6e649285a76aa62af202202c21a2989e131fa58ebee78d55bab0fd985c43e43110fc67be213756bd277c1b","0x1de6cB5b085ac84bd247b8176c781E913166Aa6b",!1,!1,null,null],["ethereum","bring_token","BRNG",18,"bRing Token","3044022022580e69f355418fff6ea5a77c843f9435fb38bfd5a08c6d22c3675cacffaf4a02202eb7775ca01a773d43a449596389769bc8a7e321957fafa6980d50b6d4901de2","0x3Ecb96039340630c8B82E5A7732bc88b2aeadE82",!1,!1,null,null],["ethereum","brmv","BRMV",18,"BRMV","3045022100b90d69bfd392ee7813c10afabd273d9dba1e3f41315cbb2ad42d181f4f96778e02204a6faf694158df480333ef72b1f17be30454d810a9ccb0571ca5c540ac9ea35b","0x501e8726d06Cdef66f3e0cb67f54924CcA1cC894",!1,!1,null,null],["ethereum","brokernekonetwork","BNN",8,"BrokerNekoNetwork","3045022100fcc5c01d12521e2e320f32c49fb811543e4d7fa9f21b459072e3e81b3b3e6530022043858842325300a5c1fa77e6818baafa873454b8dbeea108aa203e995195ffe3","0xDA80B20038BDF968C7307BB5907A469482CF6251",!1,!1,null,null],["ethereum","brother_music_platform","BMP",18,"Brother Music Platform","3045022100a49e621ef1e832533627ef91a528b443c825bffe63f1336284e783a15764c7720220080faf68027a2facb28284699569b5c6debe1b7cdf9752b61ea37df522345fb6","0x01b23286FF60a543ec29366aE8D6B6274cA20541",!1,!1,null,null],["ethereum","brtoken","XBRT",18,"BRToken","304402201ff3b271fb66f4c7d2aa1e17eb4459c6a1f07395ccc3557634a20aa94e7b55ee022032f936bb606f3e8df6da60bdd38a4c7e6caafa819170af274e5536f94c11f4da","0xB35e9AD7E9EBF731E04c73845f1bF75E55828700",!1,!1,null,null],["ethereum","bruh","BRUH",18,"Bruh","3045022100e97596ad3f1e195a9ead560d531c442be0b5ca9b6d46e3f773ff7fa01bcd56670220469ffc77c43a4ea9f6e71928c94ecc7de69d3b44a4d8996e3f3e998c25821708","0xe6D2a9fCD946E07826C6cdd919DA04763eA4D812",!1,!1,null,null],["ethereum","bsb_token","BSBT",8,"BSB Token","304402200839f19d544d0cc282b5a01dc2d283cb9a4a33c4e77b9ca45b172259baa349de022075f6fc2b4f076cad8a6e41c4410a1963479cec0f4eb1633dc2208dd4e48c8644","0xDe8607CCad60814C8d9cD6f5CE8E9031e4675c8F",!1,!1,null,null],["ethereum","bsc","BSC",18,"BSC","3045022100e148062951d94dae7df11c1c26d0b3a906f58bc8cc3c0d74d227e47f08959ea80220791c2b873e4ad940cea2301d3dcd52a0b5195ba1821e8007dc662e8078a258af","0xe541504417670FB76b612B41B4392d967a1956c7",!0,!1,null,null],["ethereum","bscstarter","START",18,"BSCstarter","3045022100bb81347ea4dbf1e17aed98068c266bce8e5eeb9982ac9444e2e128ca8df3b73d0220392e0f2cbb6e10221e380d17e11b2c76507f7770dba78cfbc79ab72fda151013","0x1d7Ca62F6Af49ec66f6680b8606E634E55Ef22C1",!1,!1,null,null],["ethereum","bsdc","BSDC",18,"BSDC","304402201da639c387f0bb9be637eed67351274c0ff76ed7c9c052807fe670b4908c1f79022007fbc79250a1c97a3aee9421238378075b851e89e5fdda441394c504832bd542","0xF26ef5E0545384b7Dcc0f297F2674189586830DF",!1,!1,null,null],["ethereum","bsg","BSG",18,"BSG","3045022100cbf68ede4de5d4a65766c47c749f3719805b69efc65aae8a1dafd48719118950022048b7d6628b666b98e4c7e3c760346ea7e10b3571c6daea16e36f8de75a26d3f7","0xB34Ab2f65c6e4F764fFe740ab83F982021Faed6d",!0,!1,null,null],["ethereum","bsgs","BSGS",18,"BSGS","3045022100ca520ddb3908a195f4966506f761158d2f7bace86b23b72580368f70737aa39c02207d35848bebe575369b473da12f887dbc05a59d08680cf4186a77deac34f7efd1","0xA9d232cC381715aE791417B624D7C4509D2c28DB",!0,!1,null,null],["ethereum","bsncommunitynet","CBSN",18,"BSNcommunitynet","304502210092a06cc072ec314e56dcaffe2e081f4b606d4a48636ffcca2c44b649a150b36c0220596323692486e8fcece1031adde6c3effb3051757657bc0780deffecec8cc847","0x7d4B1d793239707445305D8d2456D2c735F6B25B",!1,!1,null,null],["ethereum","bsvbear","BSVBEAR",18,"BSVBEAR","3045022100a941ff9909c75f45e81105f4a07c7e42b61f90e276c08e010956cb44fee0550f022067ab9607a79b104fe75d92df56a90615ef9cee2010ba558c82d8af19d53b77bb","0xCe49c3c92b33a1653F34811a9d7e34502bF12B89",!0,!0,null,null],["ethereum","bsvbull","BSVBULL",18,"BSVBULL","3045022100a0d97d463ed3264a08e2ad5bd97e0e03e918a05d15dc7e79b0cc68189006694f0220597723f0c2808bfe4bb005218d56d386cac5c21c62a34d693edb45cafb35f7c2","0x6e13A9e4AE3d0678E511Fb6d2ad531fcF0e247bf",!0,!0,null,null],["ethereum","bsvhedge","BSVHEDGE",18,"BSVHEDGE","3045022100e72ae21bbaeb7f0fe6bdf0f72e60200d875a4fef7373947c56ea7fbc37eb2ee402203da98f582813d472cea61bbb627201cc335262082f2c206de6958478acf6aecb","0xf6254cd565c5E78dfB0030b0B14D1E6F482a2413",!0,!0,null,null],["ethereum","bsys","BSYS",18,"BSYS","304402204aa08e50bc33988f95e17a2ec54e2c2a41dacb5fb8cfe2497748609c9c06a6bb022008e07c5cbefe2ffd1ff2a42be87792979e9f35ae94f20816ca42a1e88509a244","0x3004Cf8B4e28d60f4E305DF25a57Cd5faF37b8d5",!1,!1,null,null],["ethereum","bsytoken","BSY",18,"BSYToken","3045022100db7e7ce86dde42fe39a85a7b92dda7bb3c1f61e6d71de293e9d16c63e091948a022025f8e0ff5b84680a032c15b53edb8366370379f2a9ef92fe1a4cb4eeb74dde33","0x7A647637E75d34A7798Ba06BD1aDF5c084bb5dd5",!1,!1,null,null],["ethereum","bt_finance","BT",18,"BT.Finance","3044022040a7e58c3e3df78b38a5c7c539e8c1459fbc08029ae82792f5542f120c55c4cc022049d4a4f2521bd75c3ade0f2816fb7ff71ba72ad575009121f9c36b7b7132aa3f","0x76c5449F4950f6338A393F53CdA8b53B0cd3Ca3a",!0,!1,null,null],["ethereum","btap","BTAP",18,"BTAP","30450221009f761157c91e6c13d65d45518b058580925da1d1250b9c97d8f320046487f52902201bf255e84a36f66787ace93551518f8a6c1daf41eeecb2960c0c3aff2d77ed19","0x270371C58D9D775ED73971Dd414656107384f235",!1,!1,null,null],["ethereum","btc_2x_flexible_leverage_index","BTC2X-FLI",18,"BTC 2x Flexible Leverage Index","3045022100f1cbcd1a079ee44231a8928d6e703870168cbfd99532a0ec6320cf3dc12166490220589db0275bd9b996a2512fe8c3c24aaf2ba808bba10627b491c6680d798b6833","0x0B498ff89709d3838a063f1dFA463091F9801c2b",!1,!1,null,null],["ethereum","btc_eth_equal_weight_set","BTCETH50",18,"BTC ETH Equal Weight Set","3045022100aa7e2a09998139052c3ac6062ec7f29c70197922474f575790ff76df53ccdccd02207117bd06338186ba20b99f6d81c830d1fe84641d6dd6b65c0f70d60cb6f690fc","0xc06aEc5191bE16b94FfC97B6Fc01393527367365",!0,!0,null,null],["ethereum","btc_lite","BTCL",8,"BTC Lite","3044022065c446274c1d1ff400198d86d43e468fef36a82cbbeaad6cb9fbbddd05bb6ee3022023e800baa91aa8c4a77e1ef85ce664200379a530ad6c64f2618de517544e785c","0x5acD19b9c91e596b1f062f18e3D02da7eD8D1e50",!1,!1,null,null],["ethereum","btc_min_volatility_set","BTCMINVOL",18,"BTC Min Volatility Set","304402203cdf2bf6b6f080fa64b527f99365a13cbc210c3c434cd63f16c664d17064767102202bb9b600d3260bb8b3ac04572bd12b82c0713638ac0972b4eb99d900fbddd58e","0x81c55017F7Ce6E72451cEd49FF7bAB1e3DF64d0C",!0,!0,null,null],["ethereum","btc_network_demand_set","BYTE",18,"BTC Network Demand Set","3045022100c8c28ca62715bbd66d65446100fe50ba80b837f6d15f820906f494199f010a1302204da948a4d1de08d357ba72c76bb5414fc42cc228135f5c61e88326dbb42ea551","0xAC8Ea871e2d5F4Be618905F36f73c760f8cFDC8E",!0,!0,null,null],["ethereum","btc_rsi_crossover_yield_set","BTCRSIAPY",18,"BTC RSI Crossover Yield Set","304402206cb41dd21cab178baa29965abb78494190921418fcf0f45a78b07f0e50a3126e02206cfa61c0419cfd7286af39dae989fb49cffe32f1a5107903eca31b4a0d424c11","0x924E26fEe8E10c20726006CC2Bd307A538B0eBE5",!1,!1,null,null],["ethereum","btc_volatility_index","BTCV",18,"BTC Volatility Index","304402201ede6e4d0d37e89f4c152744b39cc9406b3dc4896fc603b7ca42866fb08135850220558306d839635cee559dce7f69632c5d3e1865ddbbb6b9e34c21fc65f953517f","0x51B0bcBEFf204B39Ce792D1E16767Fe6F7631970",!1,!1,null,null],["ethereum","btcnext_token","BNX",18,"BTCNEXT token","3045022100861b22b22a75096a15743d35495a0c2399f353cd19d08f006135682ca649933a02207f803666e1d8bd3d1d29c53bd5485a0476f6c52f6651f5609a8810d71cd3ee3c","0x40C836982788dca47D11024b1fa3e01FD4661766",!0,!1,null,null],["ethereum","bte","BTE",8,"BTE","3044022044f961d9f7c53a6bc7c42ddf0061d076e49b81faefa57005ffedd7961fb1818b0220402af1a51ba65ac8bc50d4a67064486745a642d14d6f4cc36be4267dde38bc0f","0x73dD069c299A5d691E9836243BcaeC9c8C1D8734",!1,!1,null,null],["ethereum","btecoin","BTE",18,"BTEcoin","3045022100b5d9d92042ef17abb67e0023cd2ac2a61bcf2864f99863005c8915005d245b5d02201e1dd420394b6944b60f529d0e723694c79eca1300ed7723a9cfe5bc66e2c43e","0xfD62247943F94C3910A4922af2C62C2D3fAC2a8f",!0,!0,null,null],["ethereum","btl__battle_","BTL",18,"BTL (Battle)","304402206d749d76f825bf958f38f7b1fc94f597feccd3da262883680000da2dc503699602205f5d1f6c92b404e9472b42f3aa0d24064b346a2d98c6b5b676d8a4810eaeb837","0x2accaB9cb7a48c3E82286F0b2f8798D201F4eC3f",!0,!1,null,null],["ethereum","btmxbear","BTMXBEAR",18,"BTMXBEAR","3045022100c15beb684c46419f0a818de93c7a745682ec71d9ed0b8a66f45cabbdb29be47b02204e7d8a1098a3fa1438f0e000eeff826e1983f4b57737c93fdcfcb27db62259c6","0xdBF637f78624F896B92F801E81f6031b7865eD20",!0,!0,null,null],["ethereum","btmxbull","BTMXBULL",18,"BTMXBULL","30450221008bd71f0d33041347036c49b18749f20592addd38e566f22c6068fb728fed3a3d02204332341a0f342799106182ad887a95126b6298fe0dbb52eced389cc89788f469","0x9885cA101DFd8f23D364874F799554C52BFee820",!0,!0,null,null],["ethereum","btocoin","BTO",18,"BTOCoin","30440220461e15c00efdad67a70d3965ecfb6b15f927dc2626c620bc49863cb69d213f1102207762188c8f25fc82c179fe95fadce4aaca92c5fa98617c4a8a8c8091ba6dff76","0x36905Fc93280f52362A1CBAB151F25DC46742Fb5",!1,!1,null,null],["ethereum","btrfly","BTRFLY",18,"BTRFLY","3045022100c74b831093b5b8b9769ae23f88278b5e6931f8b733a576c92aff3ca7f4c2ad1802204fe07746b90595495a27707d7a226c6755fb8a17dd69ad16ad816d296cc44241","0xc55126051B22eBb829D00368f4B12Bde432de5Da",!1,!1,null,null],["ethereum","btrfly_","BTRFLY_",9,"BTRFLY (old)","3045022100b714894d3dc4d0e9ea411afa6178db6057df08d14c6b9a339af126cfd152d78f02201f0921b77d03c23ff1589a3900264981089677d45803f06331c79dd256e8fc56","0xC0d4Ceb216B3BA9C3701B291766fDCbA977ceC3A",!0,!1,null,null],["ethereum","btrn","BTRN",18,"BTRN","3045022100c6235576175e2d7674c6d8f0a2e1539402f79dac0694d0157508b1281fdcd93402202edb8fe1f2e3962a1789032f32eb0e6b7a18776f466b43fcfc4fa0383ce6e7f6","0x03C780cD554598592B97b7256dDAad759945b125",!1,!1,null,null],["ethereum","btrst","BTRST",18,"BTRST","3045022100ae723a1a5fbb27c6057033263d6cab020861483f8e4700065e2658f6ab281ceb022000b71d4c64ba7ff35a1422a941ad6f4d1dd6925b67aeb533c8fa28c812c14a3c","0x799ebfABE77a6E34311eeEe9825190B9ECe32824",!1,!1,null,null],["ethereum","bts_studios","XBTS",18,"BTS STUDIOS","3045022100e365c0b48338a95560a9cc5b7ceb1df39633b9cea425a2d31ecaa28d8e6946d102200768adc39a9e3f8a79001f3fe2d4f2683e75b385d8d7a66658528fe2c9016ca2","0x0AF05d0d594E9871E52bB60f4C527FdC2Be97060",!0,!0,null,null],["ethereum","btse_token","BTSE",8,"BTSE Token","304502210092f7803480bc1b2e16d059d7e69d8bb7869eb56f4d998049a30b6c174bcdd0cd022013e2d389ad03b8d7ea7500a87e8e1eb5594aa509061cc7f7940b91eaf1a95331","0x666d875C600AA06AC1cf15641361dEC3b00432Ef",!1,!1,null,null],["ethereum","btu_incentivized_dai","BDAI",18,"BTU Incentivized DAI","304402204cb99ff1ee296c9733bf944030ffbcc4ed8e761c514a41c09193390965c4e50e02201d6efbb2fecf7596cc3f8c35ee9b90f13e6a7b885e530655d6cd6438bfeedf3c","0x6a4FFAafa8DD400676Df8076AD6c724867b0e2e8",!0,!1,null,null],["ethereum","btu_protocol","BTU",18,"BTU Protocol","304402207b8da096b9b233f1fea07a75d9aac3c971b240272f1a82ada9c9f6be1de9f66c0220058c52ad0ad0d4be60153a7b1e25cc703d3583f3d1fe70741865992e7f6246eb","0xb683D83a532e2Cb7DFa5275eED3698436371cc9f",!1,!1,null,null],["ethereum","btz_by_bunz","BTZ",18,"BTZ by Bunz","304402206c3ec7006b186970e8db3041cd5b3c2ee95f2399bc32b2b991d1aba905da8e6702204de6b886ed5232a85fe1b042be17bf82bb66035c61ef395a0367c9a6bbe76a2e","0xE5f867dE1EA81346df5181b8b48DD6B0BB3357B0",!0,!1,null,null],["ethereum","bubble","BBL",18,"BUBBLE","30440220214d1b232cff774c74e2709cc8faf9dbbfded0e5e4c611e5e8b44c738e18ca70022041bcaa24b41137c28920f4b0ec7c27a1df2bcd932dc7cff94d49e61406d1ea0d","0xac00797df10e825589D8b53E715393BE4E617459",!1,!1,null,null],["ethereum","buckhathtoken","BHIG",18,"BuckHathToken","3045022100d1c6d590525b70fa46411824db45614b5844a2d7e36635d97ec31352c5aa164e02201534d62be5eee975939137b11783eefcfefa1ed40bc4a7c4b1cc1e6f70ef5f89","0x996229D0c6a485c7F4B52E092EAa907cB2def5C6",!1,!1,null,null],["ethereum","budbo","BUBO",18,"Budbo","3045022100eb8d1dacbf7941677d9587ecc1bb587a3eca89f4ed6a631e6ed724020812867a02205f5c0366f85a92e7ed66346af0ec97120dbc8c915026e5334c95fb87bfb16516","0xCCbf21ba6EF00802AB06637896B799f7101F54A2",!1,!1,null,null],["ethereum","buddy","BUD",18,"Buddy","30450221008637f062e5a85dd3cf967f2bf0c8e2ba0ac44e8b9cb3f8e7532f477e0f338c8502207c81230dc34878baf16ac0503104d3d9267408cf366c4fb77c391e865e33158c","0x57652Fc91f522f9EFF0b38CDF1D51f5FB5764215",!1,!1,null,null],["ethereum","buffdoge","BUFFDOGE",18,"BUFFDOGE","3045022100f9e8c6fb157127f24c97582e8df38c0b8c32d313ad76c2a18172ce6a068f46c80220257a24c553b2d689c86a65624d430b7ee7d3d927e825e3317f07a454db6db091","0x0A7e4D70e10b63FeF9F8dD19FbA3818d15154d2F",!1,!1,null,null],["ethereum","bugg_inu","BUGG",9,"Bugg Inu","3045022100936e06a0786da97a2f36fd4fa20b5c81445d1191dceb225a903582829ce5bf79022012c4558438883ae13db731424b0dd18a259ce852edfc2728b3cd16e44a46f9b3","0x1aABf9B575e4329b8C8F272428AD5E43ab4AeFC8",!1,!1,null,null],["ethereum","build_finance","BUILD",18,"BUILD Finance","3044022036b46d9d8f6e06cc22e3235124a93323972f166862158efd5e4cbb23bd793c1302205a4cc171ff451c9ace2d39c8cc37cf0d2f7e095735da3e9637256a0a95fbc560","0x6e36556B3ee5Aa28Def2a8EC3DAe30eC2B208739",!0,!1,null,null],["ethereum","buildin","BIN",8,"Buildin","304402201af26c18d5cf82cea90570859a81e5138cd178f59efdfe96b4c22578fce0859802206ae0afd93077678e93c54496435da143a1671752e2fdea8b16a184b83b560d45","0x75230d7d86B59213773d47103b96a0E7133c8621",!0,!1,null,null],["ethereum","buildup","BUP",18,"BuildUP","3045022100be49761b70db419890b596d8316236423fb2b68fd0bd09eb963a102577d887bf02200d986bc2b67c62d47974afb86507c0a410213e143863e8f5149542e689c0a6af","0xB04DFdb8271ed2d5e13858562C44A77D3CEb9e57",!1,!1,null,null],["ethereum","bulk_token","BULK",18,"Bulk Token","3044022001d21a7862a76b07cadf8313b34ebd280b5ac5a3363abc81975f6c1062a43ca3022079759a09faec29632c3063122f5bbbf24d169ad4476dfc1ebad21c5528bf02cd","0xa143ac515dCA260A46C742C7251eF3B268639593",!1,!1,null,null],["ethereum","bull","BULL",18,"BULL","304402207ccf9b393afb624858068274da53dc08bf35b1a7c77a5808d7b56c4435b778080220515a87358d9fd24f6482f17d6c150287301611a181f1ca01aee5304eec61e650","0x68eb95Dc9934E19B86687A10DF8e364423240E94",!1,!1,null,null],["ethereum","bullbearbitcoin_set_ii","BBB",18,"BullBearBitcoin Set II","3044022011a97c488010b785048d047e63ce46147ea08cfb3e34d41d0569b67634e10e2c022001f1e454fc81c91e62b6726a60725df32cc41a8cdb9bc7cb64a44888f0d6c69c","0x58723C7Afcd33A2Db6Ae06C37521725D65F0cC15",!1,!1,null,null],["ethereum","bullbearethereum_set_ii","BBE",18,"BullBearEthereum Set II","3044022066db482567be83ace275b4166c8f8b367cf2c7b4aab27ba820dcb4d839fc9f99022074ae97224d7540060bb2c3635b886d9638bd96c348a27afacd0b6cd2cdf9d3e6","0xF43B2f981eFC5a611a97951Ce4fd7d3Bd87f4902",!1,!1,null,null],["ethereum","bulldog","BDOG",18,"BULLDOG","304402200b91391abe859d56a6e41d3b6d48672f9568d3f0760baaf10b000dbc14a678d8022062f932e7f82128a11232dc78c98bbc61d338caaef9b8b3ed02c8c8b22f1f55d5","0x92416e32042c9e67B0771A1b00Bcdf92EcB64950",!1,!1,null,null],["ethereum","bullion_crypto","BLX",18,"Bullion Crypto","3045022100c957f058491714f3a984767bf2b841e85a8bf158f7c37bab548f734cdb9e2f0602201b29009080aedd007075e03d96b5d3480d6263fea94f5222c9d91aee67531115","0xcE59d29b09aAE565fEEEf8E52f47c3CD5368C663",!0,!1,null,null],["ethereum","bullionfx","BULL",18,"BullionFX","304402201574bee296828eff6c052412d6cf1d3baa8996f36c2aa04f0c25e3be3d7329be022056d51f830f44a6a85d0de96b37f271337135acd0a7aa0b5cd7c1c01b150efd5c","0xb439B8731ee047799019eF0b745a51d256B116Af",!1,!0,null,null],["ethereum","bullionschain","BLC",18,"BullionsChain","30440220615103a6e1e7b1ec647f4d21c639a2a98200029da5381da8fd3d7b080b206d8b0220633d9bc1e70133921a399af96764d34f4c0d3771702e8812d2cc9e587504e4be","0x326caf6980d4e9161Cfb3c55f195B3D825c266D4",!1,!1,null,null],["ethereum","bullshit","BULLSHIT",18,"BULLSHIT","304402207db8aeb124d3a24bc365889b0f414ef96abb05a7b0220a8233740bb108ea4e260220673230b8458b39ca01bc7e4f37ca60e7ba7048cfe7d1fdb1457e009e0788fac3","0xd06b25F67A17f12b41F615b34D87ECd716fF55a0",!0,!0,null,null],["ethereum","bullswaptoken","BVL",18,"BullSwapToken","3044022010ec295a55e17bc276f0f5ac923b2f212c9558b988b0f6752c081977874a1572022066be75414198b56a53795d4b8ee4e43c94213c8e3c9a8db94010b397e1177759","0xe7d324B2677440608fb871981B220ECa062c3FbF",!1,!1,null,null],["ethereum","bump","BUMP",18,"BUMP","304402201eeae8b3bd1de4275d8d2b8de098af8f12f96108c92b4f719035e4e8ab768b83022000f5f8c1c4d5190a92b3a136ef5ab6d048fd7231172dd91276a006d75ba80431","0x785c34312dfA6B74F6f1829f79ADe39042222168",!1,!1,null,null],["ethereum","bundles","BUND",18,"Bundles","3044022023c22cc83efee2917cfa34b02da840fdc2674c3963a8004ec2f07df867b439020220771c68d9834e6cb91f1d0885c764b7ac0d1cd1d5fa1e7b3c8feb14ad203363f2","0x8D3E855f3f55109D473735aB76F753218400fe96",!1,!1,null,null],["ethereum","bunnytoken","BUNNY",18,"BunnyToken","3045022100b952c43847b4d8612c2e1d621f02fc8c425af85022aea0200ae65be9661faa7f022078020953139abef38abd22e7533d89493d2811670826613b1cd66fcbea41852a","0x755eb14D2fefF2939EB3026f5CaD9D03775b9fF4",!0,!1,null,null],["ethereum","burency","BUY",18,"Burency","304402207795d672d22dbce7c8d7947d882f32babbe4ef9bd6bf3a3b43c30847008e6a350220334f60817b8d60296ed01b118e2b5830dcb2c928254c2d1e45528d05d03e6f50","0x31Fdd1c6607F47C14a2821f599211c67AC20FA96",!1,!1,null,null],["ethereum","burn","ASH",18,"Burn","3045022100c26ce3afb88583b6d99b68353052f3f06755789d75ac6777426cc2584965272202201cb127817c14ae144e06143dc3c1b0c44bb1f29801d44a6d47002ce3d6ec962d","0x64D91f12Ece7362F91A6f8E7940Cd55F05060b92",!1,!1,null,null],["ethereum","burn_shiba_doge","BURN",18,"Burn Shiba Doge","304502210080f10de3352a167b6abae0748727be12338089ad771f81c70d2710fc9cd6e7620220740b26b922c8aab7323408b0c69cd9a0b82d41b79108a22c514cc9ac55f9cc0e","0xA2fe5E51729BE71261BcF42854012827BC44c044",!0,!1,null,null],["ethereum","burnx_2_0","BURNX20",9,"BurnX 2.0","3044022006f3135d342ebbc19d4f236849edfac8b72a901717e0e7fad324201e256938f902200c2eef9191452b056a74d29fcda6a097930300d2ad68b8e7f859b47143becaf5","0x1e950AF2F6f8505c09F0Ca42c4b38F10979cb22E",!1,!1,null,null],["ethereum","burnxtoken","BURNX",18,"BurnXToken","304402203168f0cd507b7ae409fffb19d603e778a641b3eeeb550b440b7538cb96060008022021cf4c3144b291ad459eaaae8f55133ff186d537a643be628a81776405e8ec38","0x106238737b85b4220C7A7DdFD5c4cAF8597281fe",!1,!1,null,null],["ethereum","burp","BURP",18,"Burp","304502210087eb9a5c9538307a57741a23d95527be41c24692ddf752911e69635b00b184f802207e60c960369639d6f173d5ab3fac036767fa71a74617948eb864ef3c7f911772","0x33f391F4c4fE802b70B77AE37670037A92114A7c",!1,!1,null,null],["ethereum","business_credit_substitute","BCS",18,"Business Credit Substitute","304402200d80b2009a5a07b80fec4a99ace266f524c5a63bd3add591ea0895dd17d871de02205345d5bf82f1baaa1349b9b684c442992dd9609eb08db5467c41aa0585c37fbd","0x31274db8b609Df99E5988ee527071643b5160Fc3",!0,!1,null,null],["ethereum","busy","BUSY",18,"Busy","304402206f219224069a4fe45a7ca5e3cc8affd6554b3b5af03f7d5158efd4c076588d6f0220561963bebc996bd44a04b5665209f08f5cfe06f9ca864469da8b4000943f970e","0x5CB3ce6D081fB00d5f6677d196f2d70010EA3f4a",!1,!1,null,null],["ethereum","butterfly_protocol_governance_token","BFLY",18,"Butterfly Protocol Governance Token","3045022100c43567f29bc9ab3b6127f7fcb3b55641562cb9ea6cbbdec88e3ca0c84a61e03c02206c6b9a12c9dd9b57497935dc1a5d5dc4777e16994c640afb3dd342fd48d4ed79","0xf680429328caaaCabee69b7A9FdB21a71419c063",!1,!1,null,null],["ethereum","buy-sell","BSE",18,"Buy-Sell","3044022050893a6184f361428cec3af2ceb925528b43d701fd13ac52df4a9df6d245291202204a7e2c7b1a3f662cf7f4760fa4962b62e9b1f6006388647d4483609a6499652c","0xA30189d8255322A2F8B2a77906B000aeB005570c",!1,!1,null,null],["ethereum","buypay","WBPC",18,"BuyPay","3044022076f5835036c5aef4eef5e24e29190ea7ffad068a9a53e1cb5574f62e427247eb02200d1a0ac58b5f48a52e88b6428db90cd6014329cd1ba7cd98b316231a1e24ff91","0xbaA2C10EA6409B58870B5C773C0Ff429AF7C6F20",!1,!1,null,null],["ethereum","buzcoin","BUZ",18,"BUZcoin","304402203d5ceb34b21f3ab009dd254fe8037120a13ff8c46088709891f3a0503a5c765c02200b362a4093e299e3264c4a7572a5615a1207185011ae7babb150c1ddb2d282ac","0xaE8488e75493B89A0E1488BF91542208C416f486",!1,!1,null,null],["ethereum","buzzshow","GLDY",3,"BuzzShow","3045022100a5b228a7629a6c2ff574501edefd791d891ddc0164eb8d2fff666b44dc52308e022075a08d1fe2caafc43440f0835d93d6d3b4d36717403617e6300a7cb7a1c9d5d6","0x594207C791afd06a8D087d84D99d1DA53CCbD45F",!1,!1,null,null],["ethereum","bxa","BXA",18,"BXA","3045022100e16cc44c08bc0d8df5897f0cb28f91f2b32e32cd60e8d64afda430b9069eb97c022010ac8828213a49a65a295ca2a1525af55921343e4a03d6536919f6684d64c649","0x98d8d146e644171Cd47fF8588987B7bdeEF72A87",!1,!1,null,null],["ethereum","bxiot_token","BXIOT",6,"bXIOT Token","3044022039893e8f9c7a508ee55b5c6180d47f13a443e03c59077a22b2d99df651cca96602205f0b2a8a816bf94d3ab206fb362adc6678124348bb35482d3beecf7b724f0aab","0x5c4ac68aAc56eBe098D621Cd8CE9F43270Aaa355",!1,!1,null,null],["ethereum","bytether","BTH",18,"Bytether","3045022100b1b5ef9ee3b087736cf4bc15a91490af8d055c1b77af9ff176698626e5c72f3102200ca8b43f53ddde55aa3f2bf599dc3d9609213a3638b734876a87d29e8b1f1dc6","0xFAd572db566E5234AC9Fc3d570c4EdC0050eAA92",!1,!1,null,null],["ethereum","bytom","BTM",8,"Bytom","304502210087a12d310359ea00ec7d33c5ca2df0200314b0d55351266dff86bb8ab52f319802207b861cc04a68803c72ec816b95da2e5d7dd8390812c4774a1d982128c71c15d6","0xcB97e65F07DA24D46BcDD078EBebd7C6E6E3d750",!1,!1,null,null],["ethereum","bytus","BYTS",3,"Bytus","3044022020ed6d444b576a725b4a6453e9393de14fecc101632f7382ebeb24134f9935ce02200fa7462f25b00ca30888a00bd93efc1acc0b262e0def41c0f07f209eb6fd2bbd","0x87F14E9460ceCb789F1B125b2E3e353Ff8ed6fcd",!1,!1,null,null],["ethereum","byzbit","BYT",18,"Byzbit","304402201f73380b92388e8b4e1932f5a16f8a706a73ff9f4d8327dc9f4f6b006f6da735022056eadeb625c2e806e52e08aacee59bd6de339b26e0179fa2a616bb4cf10bd2da","0xb089db4CeBBF0618b295D9DEFC7FEB00f56DA033",!1,!1,null,null],["ethereum","bz","BZ",18,"BZ","304402204b3875e9d301ba018049e12443594bd38a53558324bec8461fe2dc5a23654c4302207a4e70c1bd433d9bbb7f5b9af5b34142c82533358c9bc01240646e45df112007","0x4375E7aD8A01B8eC3Ed041399f62D9Cd120e0063",!1,!1,null,null],["ethereum","bzx_bat_itoken","IBAT",18,"bZx BAT iToken","30450221009185ffea3ad67de8a25813d817fc75c92f723aa34cacaa9ec419b45257a8cf9e02201965d0d45429f337d2e2cf8e915d7235d9c3920eb6a914cf69579e324b88f72f","0xA8b65249DE7f85494BC1fe75F525f568aa7dfa39",!0,!0,null,null],["ethereum","bzx_eth_itoken","IETH",18,"bZx ETH iToken","3044022023b6bb80646de515bcf5ccfbe5387e29e32389875faced0e4ce2284aa1c198990220400e99e852a8afdf34462506f0621e0b2e98aee1ef20ca166e2a987f2ae4f2d3","0x77f973FCaF871459aa58cd81881Ce453759281bC",!0,!0,null,null],["ethereum","bzx_knc_itoken","IKNC",18,"bZx KNC iToken","304402203132da2490eda4dfff798d6036e0e2ff882492a1c62e6259dc6ec711c70115bb02203c8a5129292dcbae45feea4769f27f3e99cd2514d050759ffe840fa46d46d26c","0x1cC9567EA2eB740824a45F8026cCF8e46973234D",!0,!0,null,null],["ethereum","bzx_link_itoken","ILINK",18,"bZx LINK iToken","30450221008c053894df5580fa489e6a4f2a0ecc5ad7495d30cf00572869ad93d0c8243fca022067dc3d46ef735ffc679cd75fcfb582f147395eafc6242e7dea6322737d89cde6","0x1D496da96caf6b518b133736beca85D5C4F9cBc5",!0,!0,null,null],["ethereum","bzx_protocol_token","BZRX",18,"bZx Protocol Token","304402204a2a0e5d7b0e53f04d2d93d1f957c9ddaf44c71597417e09b629fa1ac45b57ae02203e106a13d41667177dd131724f0219e0394221e63dff8951da0e853d8cff0375","0x56d811088235F11C8920698a204A5010a788f4b3",!1,!1,null,null],["ethereum","bzx_rep_itoken","IREP",18,"bZx REP iToken","304402206702f0e54970bb83a0631e6553b7605aba23f48d856d7eb2fa867dd0ed59d91c022059bbf709a8dba43f271589eac018a71614ca1e043975b0f1d07b9af71f3f5b58","0xBd56E9477Fc6997609Cf45F84795eFbDAC642Ff1",!0,!0,null,null],["ethereum","bzx_sai_itoken","ISAI",18,"bZx SAI iToken","30440220241c0e86007757412b143876ccbdff3024468beaf0a2801dd40d95a7dd74303d02205aed4e6dacbf250ea73a0ad8297aba4e098ec388cf130217bae128334cc7144d","0x14094949152EDDBFcd073717200DA82fEd8dC960",!0,!0,null,null],["ethereum","bzx_usdc_itoken","IUSDC",6,"bZx USDC iToken","3045022100b0ec3a4c99046b3fed31afd3a0e04e4173046342888e2a4a8823ce4cfd128fe602200de31af7a1a9f980ca072845b2b4889abf5597c1a9941ae39543ea25852ea5f8","0xF013406A0B1d544238083DF0B93ad0d2cBE0f65f",!0,!0,null,null],["ethereum","bzx_vesting_token","VBZRX",18,"bZx Vesting Token","3045022100b9e16b7a734414de6dfbc789b1ccbf116b711ebfb94224f8288b4e7c0fb21d2702202166173cd23cddea00190b1bb1d36d3362a278e0c91ee44bce5802000f12ac00","0xB72B31907C1C95F3650b64b2469e08EdACeE5e8F",!1,!1,null,null],["ethereum","bzx_wbtc_itoken","IWBTC",8,"bZx WBTC iToken","3045022100dbb658ea5cd785b34f23e078b086bc7bccd3e7e21ca58921fbddd48d3728c36e02206f95727569dfce6390260ccf3dfbfc602e0f2431844a80b12be56d01dd2c2ab7","0xBA9262578EFef8b3aFf7F60Cd629d6CC8859C8b5",!0,!0,null,null],["ethereum","bzx_zrx_itoken","IZRX",18,"bZx ZRX iToken","3045022100fe655917cb8489010c58e75db6b1ff09a7eb509cc53dd4733ae9acaee33eff5702202b873f656350c7451597833b76530ec055cbe179dce37c06c3e5d90548a0792a","0xA7Eb2bc82df18013ecC2A6C533fc29446442EDEe",!0,!0,null,null],["ethereum","bzz","BZZ",16,"BZZ","30440220163293ea5bc81fa0ed9e95a3b2e4578ccdac567bd7c6eca66069de2459fc920e022066219df3df9da89c9ea43da285b43c77bb43555a1112206aecce4fc06584d21b","0x19062190B1925b5b6689D7073fDfC8c2976EF8Cb",!1,!1,null,null],["ethereum","cacaoshares","CCS",18,"CacaoShares","3044022019b5b7f4cf31c309ca1981c2b1628f709fde07ffa34ceb8e5d0ca4052483746102200de77b3243500f73cb09eb33c1a00747fe5b6b8ff1d11cbd43184cc679c5a3ab","0x315cE59FAFd3A8d562b7Ec1C8542382d2710b06c",!0,!1,null,null],["ethereum","cache_gold","CGT",8,"CACHE Gold","3045022100d38fa0041752c76fe15973b2d8b0d95dbb26d3810f3ce1531a55086552df817002205f00c86e78b0c2b57663cd3dd2099e59bb558e5b28a473db792fe58763b1e20e","0xF5238462E7235c7B62811567E63Dd17d12C2EAA0",!1,!1,null,null],["ethereum","cage","C4G3",18,"CAGE","3043021f5f40eccf8458c839c7f961e8f1d55ebec583bf932dc41974b8e115c6e22d3502207c353f1d0f27b7a7bf0a27cd2673c0f13cde12d5d905a92fbad1dec83ae0a284","0xf2Ef3551C1945A7218fc4eC0a75c9eCFDF012A4F",!1,!1,null,null],["ethereum","caizcoin","CAIZ",18,"CAIZCOIN","3045022100e21752206b826612630a118be6207eb5907fffeaf0cb0bfc921dc351dcf1f0da022046ea2d591cfd8d0da4be4471626bd3d7d52712b4d2dbd48d3ed03872b75e0b33","0xAEbBd7B2eB03f84126f6849753b809755D7532F9",!1,!1,null,null],["ethereum","cajutel","CAJ",18,"Cajutel","304402202e8cef52b00f2379654275660cc09b77749c7e5817022a98c5e9d8bc5e697f6502207fc6612f0b1cde63f1c68f38ab8ef6835b9fef1e6ebfd4b067ce49c1500f9c30","0x3C6A7aB47B5F058Be0e7C7fE1A4b7925B8aCA40e",!1,!1,null,null],["ethereum","calicoin","CALI",18,"CaliCoin","3045022100ad6612865da49073738b0b2725a8d78cead82e1fb19a810521c0e87150e3ec24022039eb4845064361e71be39033d76d1a844dcba56095ce1fb07f0e0b1eb5108cf2","0xB8fA12f8409DA31A4fc43D15c4c78C33d8213B9B",!1,!1,null,null],["ethereum","call","CALL",18,"CALL","304402205df86de13fdfcad9fa1259ef7c91b77274899abecb6ad7e8d1fb1be0ac3e3083022067c498b4549708ca954e71f54b8bc0c86ad756a3801acefd26ff50cd9cf5679c","0xBbe761EA1447A20b75aA485b7BCad4837415d7D7",!1,!1,null,null],["ethereum","calvin","CALVIN",4,"Calvin","3045022100b342d5a680dc2bcf093b340b991d43ba10c66e258227e0b3d7f4d6d250053b1e02200179745acda1241f340f4df73f7ec740fe07a768dbfcfea3ce9941b403d7ac00","0xdc8092AaF83e00Ebf9B01A2e90b7B7eF867ba503",!0,!1,null,null],["ethereum","cami","CAMI",4,"CAMI","3045022100971e350b87ed66edd893742357f0cffbcb80cfbf90450fe5bd718a97413319aa022035be8f3128d6cf1461d8207c53a33df6739be4e56932c0e7cc2559a9c68a334d","0xA809CeDeE9B61956c768EAa10272dd5E0FD1A985",!0,!1,null,null],["ethereum","camp","CAMP",18,"Camp","3044022020c60b0ea0036189a083833f34f137fe6ead582a587fa82755a8b8ff4d12126102203c0a0246e7f25089400642dc9c8050bb61760c9c52d08a44f3e9c4314a504c74","0xE9E73E1aE76D17A16cC53E3e87a9a7dA78834d37",!1,!1,null,null],["ethereum","can","CAN",6,"CAN","3045022100ae59790b97e4b67d148ae80b8ca639044a634cb75dd41856a0608dc5204f4bbf02205158f81fbc944ac3156199f9e2f7587c2ff1d4a9e6e84f365917c48470a04939","0x1d462414fe14cf489c7A21CaC78509f4bF8CD7c0",!1,!1,null,null],["ethereum","canabio","CNB",8,"Canabio","3044022034094d0b8e37de5647219814fc1178ae29f6076f42eaae45c00a42907f4dfaf502207fd6a01e008c16ea38679b732637d088f9baff49c22ba0e190a6ed88aaf74f5c","0xEBf2F9E8De960f64ec0fDCDa6Cb282423133347B",!1,!1,null,null],["ethereum","candela_coin","CLA",18,"Candela Coin","30440220727e1540b87b8fb0624963e34cd9c3225c1d6ea831ce4d7b3db6c839c8cfa78c02201d45ab1d7316b5e211020f957cb865845f79797fd2c29835b05d612a6a414194","0xF7269a10E85d4aa8282529516cf86847748Da2Bf",!1,!1,null,null],["ethereum","candle","CNDL",18,"Candle","3045022100d5e75215808ec3033221be2140c69e98d9d144169796ec179dc9fb36fbd9b4ea02203b9120b7483e8d272e4a911ce10355e4996ca1a846843e74c9f7e379f871de90","0xbc138bD20C98186CC0342C8e380953aF0cb48BA8",!1,!1,null,null],["ethereum","candy","CAD",18,"Candy","304502210085be9e674f4a859e84c37534f800422e3d165f0663ed33481925bd6235581e5d0220649e0bcefd606bcc51086bf62bffe84e68d62371f6f635c65adc2fa3489a9fb8","0x2029017f38128bFeFaA6C7B9cDd1b680cE8E5c03",!1,!1,null,null],["ethereum","candybooty","BOOTY",9,"CANDYBOOTY","304402206e936be9cba28698c9f3dd0004b95fad9335380c5bc5636efa52cf1b399d2075022022646b20b73bb0fed1a02980d2330df80f04caa1c76d9e4e8cb9afd5d090c4c0","0xd9B48548DE7710519221207D70E40aa24D7d1985",!1,!1,null,null],["ethereum","cannaland_token","CNLT",18,"Cannaland Token","3044022008d11d80e7bfb9a313a48e103f4cff665004673fb430863ab0acb067e42972e00220791d3f0a7336fe1c32aecac4797665746f1f82a07577ec930858b8fc2f5f93ae","0x00E13FF16d54619024Ab3b861F25B84Bd53e8Ac1",!1,!1,null,null],["ethereum","cap","CAP",18,"Cap","3045022100d0a74e36f31f6970ebe900a3cf4f8a1e3915ced02d9e8dd0da9a7e30abc53e9202207a005ca6319147f1eeb4f6fd7c6d568287cdc7ea7c3a9f82cbf6efe86bb257d8","0x43044f861ec040DB59A7e324c40507adDb673142",!0,!1,null,null],["ethereum","capital_finance","CAP",18,"Capital.finance","3045022100e0f7ceef5586603812b6da2989e7c54d17c20de78136429735b4f1d3de9d358f0220045123e0b3304d862de8c1510093938379f119460a4d1b4e9753d5174daa1de9","0xEDA6eFE5556e134Ef52f2F858aa1e81c84CDA84b",!1,!1,null,null],["ethereum","capitalsharetoken","CSTO",18,"CapitalShareToken","304402201b462540343614fdb28d8c45a2b71a86e0f9d88eaca2d1a75a4abb907d091f33022031cb35c35edf86ca01f28008142de3a1386ab64e981a8f9532a498a72f1c8ff8","0x2466Ba59E474C46639CEB4Eb9b7248638443560D",!1,!1,null,null],["ethereum","capp_token","CAPP",2,"CAPP Token","30450221009f5cb3967a28ea6bff1c4b93824c39af0a2a42fe0be3fd4bcfdc5646bd6a107102200bd1297bec183d6148d958694a8dd56cc84fa47cb02412e1cff9f29b4fe46ff0","0x11613b1f840bb5A40F8866d857e24DA126B79D73",!1,!1,null,null],["ethereum","cappasity_(old)","CAPP",2,"Cappasity (old)","304402204dd9c8188ef06af91a715b808bda7296bbbcf9186c9a2971e07fc13675dbe3430220169cd1b54370aab78db58447e7d7acaf6951591121e30f6d49b13dc9bb31dddb","0x04F2E7221fdb1B52A68169B25793E51478fF0329",!0,!0,null,null],["ethereum","capsule_coin","CAPS",18,"Capsule Coin","304402202dc0b5413ef55efb3fe08cc2e1d2b9f565eea00e9bb2fc35acd85bab7ef778a10220261531137ea52386429460ae4e86ee45d95b6a10bcf81aeacc53d5478c95b78d","0x03Be5C903c727Ee2C8C4e9bc0AcC860Cca4715e2",!1,!1,null,null],["ethereum","captain_inu","CPTINU",18,"Captain Inu","3045022100bf79d4720cd3fc3f31696b3213ffe59641ca9177b3af9d915530b1bef82b89e102207b6c771aa241c273015dc7870fd0acedd836b23d79738d5bbc605723bcaceddd","0x7Cca2e1c9B0519f52029467914A15E782BF66971",!1,!1,null,null],["ethereum","car_coin","CCM",18,"Car Coin","3045022100e2311901f78b5d1c431d3508e2a249ae8bdd66a548fc56960564572384da8e3b02206fbc96cbb59e73e94fb60ea8458f2a8c3f257a4a5d6e1b3da01b154736dc4de8","0xBc6669E7914a2b327Ae428184086d8Ac88d74EfC",!1,!1,null,null],["ethereum","car_sharing_community","CAR",9,"Car Sharing Community","3045022100bb8c8277c4904151ddadd2e5a799334817953881f37101238cc2c298698d1fd602201e44b39c8b9a10e25447a0308a1024d1de2c911b6f945063da1f8b4ceff37596","0x423e4322CDDa29156b49a17dfbd2aCC4b280600D",!0,!1,null,null],["ethereum","carbcoin","CARB",8,"CarbCoin","3045022100805592dbfb633b896adc11855e064906e74196bef3b37ec03f049cb9420c16d1022036fe61cb31ef91099804fb750ec8b476461bf57a1c11a933ff8a1c858cecb1c3","0xA517a46Baad6B054A76bD19c46844f717fe69fea",!1,!1,null,null],["ethereum","carblock","CAR",18,"CarBlock","3045022100957cbea27ad16770d163396dd3757a04c350e36d9870181ee2246355277de02e022038e76a11c74cb47f235353ec9ab467980cceb75b7cd812f18bc07cc0295e674a","0x4D9e23a3842fE7Eb7682B9725cF6c507C424A41B",!1,!1,null,null],["ethereum","carbon","CRBN",18,"Carbon","3045022100c0a1b88e5e863e2d324f5ffd8f371f4a395133d091dabfa19a7ffb49d657bce202201f5fb5c978600821afc31eec21e08cc94764cad7b2e37a577e33a8d8b4fae509","0xCdeee767beD58c5325f68500115d4B722b3724EE",!1,!1,null,null],["ethereum","carbon_dollar_x","CDX",0,"Carbon Dollar X","304502210089f7b4064a6266cdd0d2293180f901dd0eb6d21d5362ee11d9dd43e25b5c532a02205d8993a283210d15c0b391a625526ff26d051e9728c27dd18eb9a8f02f043185","0x2cb101d7dA0ebaA57D3F2fEf46D7FFB7BB64592B",!0,!1,null,null],["ethereum","carbon_gems","GEMS",18,"Carbon GEMS","304402203703410ae789f58d339e157d6f2dd86c7cb7b8d1713e757379881100b302421f022070377142de8b885d8f190ee2ec6d914d825582d14d4e494463293a951e196fdd","0xe74ac81B14021d0Cfb835F269F48F25918C5cAE6",!1,!1,null,null],["ethereum","carbon_grid","CGRID",8,"Carbon Grid","3044022024a85a497a8000e4ce1c24aa406d3a5ac3b542a3a551ac27e966d0d13ad1260202206d160816681983fa8812eb92243597f552e517a2146995da7705f0c23145cffc","0xeb6486b13B56314B37aacAc2Ec6889d11a763de1",!1,!1,null,null],["ethereum","carbon_utility_token","CUT",5,"Carbon Utility Token","304402207fefe7fbd29cbe420f502b8869b2d547800aba32b6abc9de8b563117a4074f4902202e603f0121ae0131d4296e06d9e7fd92466ea29e705a11c290581a1d9a2bb742","0xe2DA716381d7E0032CECaA5046b34223fC3f218D",!1,!1,null,null],["ethereum","carboneum","C8",18,"Carboneum","3044022007ab4139af277d446e5973d65d0ff5ed409767bdc243af5258ce50cb87cb326e0220370468efbc78ae27dd36e0b6398dcae5d4735cefbc31791b87e56d7f9fbbb637","0xd42debE4eDc92Bd5a3FBb4243e1ecCf6d63A4A5d",!1,!1,null,null],["ethereum","card_starter","CARDS",18,"CARD.STARTER","3044022049bbc9819dcabd504c7b373a182a47686a18e20333706cff0c16176ad4c71657022032edc67722152b6c568969169f5b583c2822951ce34ca978c8a665d5185f9b27","0x3d6F0DEa3AC3C607B3998e6Ce14b6350721752d9",!1,!1,null,null],["ethereum","cardano","ADA",18,"Cardano","30440220758dda75827b3ea54f3f14e81ae4ae23ca88e6a24de17af95d81a64992439e9c02204c9c0eb0277a10c516751e803b0f1dff7d7cac4f6f5929ba6487c53f5d6a6c3c","0xc14777C94229582E5758C5a79b83DDE876b9BE98",!0,!0,null,null],["ethereum","cardstack_token","CARD",18,"Cardstack Token","30450221009f19c54e311352312dad4bb5291809caaf63a53f568247a5266f17752e1a5b99022027160f59164cd79a8d62f037f40d2934a13990fe6429e9674a2d0c2012663553","0x954b890704693af242613edEf1B603825afcD708",!1,!0,null,null],["ethereum","cardswap","CSWAP",18,"CardSwap","3045022100b6e0d9fca53cbe2b3e50e20c001ab466655ddde031c9a67f4c53a76e16ec5b24022002b2ecffbb46997c198aed8ee7de0adb69b51889b714b50e33bbf58eb39b8973","0x3b3F95938958A4029Fa8b01873e2721b02950883",!0,!1,null,null],["ethereum","cardwallet","CW",18,"CardWallet","304402203f0f7994eb3680d00c03615a987a66f3146b2ac1f64ca6a30b01c9400c8ce97402200d92f68a69086b761a12750c117ffe0726d06b24c9785b4a95caba25425e811a","0xd55236D48606c295adEbF129dAD04Fc74BFaA708",!1,!1,null,null],["ethereum","cargo_gems","GEM",18,"Cargo Gems","30440220085ac590703372bdd3a2aafcbed12768af51552359fb04d1d27f08354d2f3aa5022076a317212c0fbae2f217e57ea079ecdafee3030b2b986454c8f9b133c89cc828","0x30B1eFB052205E6CA3c4888C3C50C5b339cc0602",!0,!1,null,null],["ethereum","cargocoin","CRGO",18,"CargoCoin","30450221009b8ee88a580e20750df9d72050dead7fd0b57fa86d1be407951e89136b2553370220546f04bb0b04063cfb2a9e819323d99b58da3bf29dd191a4027eece4155b8ab1","0xf49CDD50aD408d387d611F88A647179C3de3492b",!1,!1,null,null],["ethereum","cargox","CXO",18,"CargoX","304402205d77998b3d60056cfe12551156719e28a7056b1ac5edd2956bcb3a77dda7b4ba0220702a71d9f6294743571f2ca5625b55175550e4e95f475606035923c353227338","0xb6EE9668771a79be7967ee29a63D4184F8097143",!1,!1,null,null],["ethereum","carlive_chain","IOV",8,"CarLive Chain","3045022100cde3befe6be18c6b57be40f95869d367da659c919052f26be679f3dffd1a0292022011b48180a8989c0a4325670f43da718f38ef2781d1b26e2a2a2fe1f84383dc78","0x0E69D0A2bbB30aBcB7e5CfEA0E4FDe19C00A8d47",!0,!1,null,null],["ethereum","carnomaly","CARR",18,"Carnomaly","3045022100e7a92515dcb2e2cd9301d1a451200ec00a166dbd4b2cd40f11969c16d441e99b02206df1fe3fe3bd5ca7f809471ca211b5459b0e76e0c7682e659f3c392124c30b5a","0x884DDBb5DC6c2cEf77d3E74c6CcCa315797d655B",!1,!1,null,null],["ethereum","carrytoken","CRE",18,"CarryToken","3044022027356aa12903409a3881cfce99c38b090dcf4726471ba7d5e10b5a4ad2030a0d022068c359ede159cdcc13025525c783f783fdb852b88bf9e5409442775155a5fede","0x115eC79F1de567eC68B7AE7eDA501b406626478e",!0,!0,null,null],["ethereum","cartaxi","CTX",18,"CarTaxi","304402205cd01dfed6dda84087e3f5046449bb7a500e17e8538698570b536cd0bfb9dc5a02203f731ff763a7a759fd80d9edc100fcab32b1559ede140c2362e888c28077ea5d","0x662aBcAd0b7f345AB7FfB1b1fbb9Df7894f18e66",!0,!0,null,null],["ethereum","cartesi_token","CTSI",18,"Cartesi Token","30440220350267d1b56e4c4f9302b07d4f0656ec6960b74d65728d02b613f02e3893e2f502200471140e444076c94802569dfcac81a528b45251eda7b3d3c6fdade3248ddfee","0x491604c0FDF08347Dd1fa4Ee062a822A5DD06B5D",!1,!1,null,null],["ethereum","cas_coin","CAS",2,"CAS Coin","3045022100a851cec9260df544c9e03a825f420f5e5642bd3815dbb250071922266556314302206583b2bd674adc8e25fade2358265e1307c574b0d73ae53a378e1593f1f1b23c","0x779492d3644dDF4495Aa2d80C468E1B7be6AF1d2",!0,!1,null,null],["ethereum","cash_global_coin","CGC",6,"Cash Global Coin","3045022100a9bffaca1067b8fd6d6ffb479c023793bb88c96e229222941ff57ecc7cf44f8302200c7a469c257a7b11e1d16350b19aee7f54bf8cb6106a174e185e24dd4b80b1c6","0xcbb20D755ABAD34cb4a9b5fF6Dd081C76769f62e",!1,!1,null,null],["ethereum","cash_tech","CATE",18,"Cash Tech","3045022100d8658313ca4a03b66a77cc3a7bc7894e849cf59bf45edbd6a5f15d1ddfbe9368022068936f66d59bb66561ebfd3997f6695bbe4e5f906f33e76ec055e1da812134b4","0xa42F266684ac2aD6ecb00df95b1c76EFbb6f136c",!0,!1,null,null],["ethereum","cashaa","CAS",18,"Cashaa","30440220389c0dfed5d1b0900f8e5d4383c7e505b38b64108dff1d971a5c464c31aaf273022077641cde77cec134c62c2f9dbf507d9613169ad20acad2d14c16c5866e350fa9","0xe8780B48bdb05F928697A5e8155f672ED91462F7",!1,!1,null,null],["ethereum","cashbackpro","CBP",18,"CashBackPro","3045022100c70a3cdc4614e807164e8992dd09f983a78a78259d34cf2736f902a044d501a9022064d685f5a353e000e6cb26ff65a54e49dd183ba48fabefeb8815e09b2fe97888","0x6F4ee03Ca6c942c9397D2ba5f8F83eA58f918f47",!1,!1,null,null],["ethereum","cashbetcoin","CBC",8,"CBC network","3045022100e22a780898cb78e88c019854268a5b210cfa5f699a33ed6dffada3990b86357402202eb1ba4375e1775cea46cadcd29a01ae0ea6164ae6b2abd7263c05218c1cf34c","0x26DB5439F651CAF491A87d48799dA81F191bDB6b",!0,!0,null,null],["ethereum","cashpay","TCP",18,"CashPay","30450221008efe9e8960f9ef17db62a1cc34be4433d29cfc510c828bb1e5dce68d0a58bca302204d16ec9f9253a89f594a241afc91476f436dabd5a75fb7e11c1bb3d8d54cfe30","0x331A4589516EAE384eA5F557853AF6aF73B9534e",!0,!1,null,null],["ethereum","cashperscan","CPS",18,"CashPerScan","304402207bda5482599d8cbbfd17268554f53961f7d3c87911ba178309b067babdd5b73c022065940bcabb07d68b0b0459273c288c954f109d4ad5b739b8d6754417e37e6637","0xb5a52519426EC6D88784cC80E621062498306734",!1,!1,null,null],["ethereum","casper_blockchain","CSPR",18,"Casper Blockchain","3045022100e85d4d1deb0106dfb456730fd55856504e4963618ea79a0b7691f6f438383c8e0220719c57c7576f018c3c6cd4f50d347a1f0e279adbf5eb5576a254974ed113ea39","0x8C99E0EC5acd63727c46fb745Ffb8d41f5b3c6E5",!0,!1,null,null],["ethereum","casper_network_token","CSPR",18,"Casper Network Token","3045022100b05185cfc5d0de8627237e12d706a10cac50099b5b528f84247e6d4a486e01ab022070ac46820dbaa16cf89544f8fab97e925331293c269dd372679ce9bd52237470","0x5FA6099B65408483f6Fc64c0B0636561a979E228",!0,!1,null,null],["ethereum","caspian_token","CSP",18,"Caspian Token","3045022100cf2038734e5d1bb7a2e2fe9db534e28aae9507783ae56b28238d75b927ed19f202204c5b5ec27cd8c32ebb36a8ed1a3c7a6502e286b9f3aa48e8327346a7369face0","0xA6446D655a0c34bC4F05042EE88170D056CBAf45",!1,!1,null,null],["ethereum","castweet","CTT",18,"CASTWEET","3045022100dd181dd489fec2ce38bdb050b3c3f7e8b718cb060d389e60dd66609d99079ad902207e24b68a86331280423a57c325f1a193d502bf1e84205e26668223b258950bda","0x1A4743Cf1af4C289351390A2B3fe7c13D2F7C235",!0,!0,null,null],["ethereum","cat__bitclave_","CAT",18,"CAT (BitClave)","3045022100c8b64d93211c6887db0b9f4d4092c0ca3af30f8d8ce4f0aeef9d47a78018cadc022023aa5479c16d1b091835d2f21febe3f2792e811c964b02907ddc2f94a5f4c387","0x1234567461d3f8Db7496581774Bd869C83D51c93",!1,!1,null,null],["ethereum","cat__blockcat_","CAT",18,"CAT (Blockcat)","30450221008b179c6b6e9df4ba7d6c08d5328025b29dd3f80ead9085f58f24607fd24d485c02202955d52b882f0e58f39984853e6e2db0fbb5bb55f99b87f5e96b8b3d3643a231","0x56ba2Ee7890461f463F7be02aAC3099f6d5811A8",!0,!1,null,null],["ethereum","cat_token","CAT",18,"Cat Token","304402200501e28d49e7bc8e6d4be2314f2c3575bceaca0a5a03a1de94da0e3de9435a5302207979ec1822bb61e5ed9fabc575904bbda46ba743eb39ba018baf1c018c542123","0x56015BBE3C01fE05bc30A8a9a9Fd9A88917e7dB3",!0,!0,null,null],["ethereum","cat_trade","CATX",18,"CAT.trade","304402203cd44c27fb4149a38ea48fce1e239495310a81334e2d8a6a40779ea032fa53400220520367a305ac92c1b12bd46ca9be3f78c0fec574f5b59ac90dafd59143e3d56e","0xC7743bf0B300Ec041E704Cc34d4f43050942099E",!1,!1,null,null],["ethereum","catcoin","CATS",6,"CATCOIN","3045022100fd634e0ae861e5e668e631bac1ac6b1e97e5a87c1546828eed7190a81ecb533e02203b4e1fdd2d59675f9013eaff913f313acb5b2dbbde222588337e2c03d455ca7a","0x8293bBd92C42608B20af588620a76128A33e4De9",!1,!1,null,null],["ethereum","catecoin","CATE",9,"CateCoin","3044022037fbc9d3acdc79ca0a610b5301ff17849556574c3717bbdb1fedabcd6571b80302207c6eb5a507814661e1dfcf399451facb15eef70aca1497d427b6c314ad66ffa4","0x451329F2FCb88C398A4cDD4A8a98780B4D62873C",!1,!1,null,null],["ethereum","catex","CATT",18,"Catex","304402200e7c3b34fa66676d3b8e791c14bce98f3c197d215531451b7ca122d0481919f80220063a4223df5d0bcb9a1dbbc06280153e36aa8f1bd384c01e72ec0094810a2e42","0x6E605c269E0C92e70BEeB85486f1fC550f9380BD",!1,!1,null,null],["ethereum","cats__bitclave__old","CAT",18,"CATs (BitClave)_Old","304402203fe0908a17db6397fd4064d5a2b36aabe5817b4ba808095cada47f33478e1bd6022069738564a613e79a33fcc888ce07f3637993dbd9a669f3648acb2ea57e474a00","0x68e14bb5A45B9681327E16E528084B9d962C1a39",!0,!0,null,null],["ethereum","cavapoo","CAVA",9,"Cavapoo","304502210091b8d8e2b9fd83b4dee562457263b33fc9a397501964ca1d9f4f6cb911d9ac8b02204476d79d7d33302a663040786492fdac31c138c1c2057bd7d659bc916391eba3","0x456D8f0D25A4e787eE60c401F8B963a465148f70",!1,!1,null,null],["ethereum","cavo","CAVO",18,"CAVO","3045022100df1f57010f707334fa8bb5c88ed2fdd2cba2e20d16ca2c43f9431423aab856d6022079b0efb78e55a1c3279269518bcdd8be64fde6b4d2ccb0a729a79b1fecb79495","0x24eA9c1cfD77A8DB3fB707F967309cF013CC1078",!1,!1,null,null],["ethereum","cbdao","BREE",18,"CBDAO","3044022059e848203b60618e5394e0403918b9f73ec04645e88d6e0b27c57fae24a2da51022064c9abd4163c6f0f35c90ba445de2416fb55fd3f409b25676628e0bfa24d35f7","0x4639cd8cd52EC1CF2E496a606ce28D8AfB1C792F",!0,!1,null,null],["ethereum","cbi_index_7","CBIX7",18,"CBI Index 7","3045022100a836ee8112e6c6e1d7a49b947ab8f1e87758c396bdc41dfe4d19f99615eff96002207431bb08644145f3e368ec1960c4458a799208789025860bcc2fcf0b21c819c2","0xCf8f9555D55CE45a3A33a81D6eF99a2a2E71Dee2",!1,!1,null,null],["ethereum","cbk","CBK",18,"CBK","304402204bc37522b133a44182e6305648d8c87e87c152a6a2f71743e7f843edcc2af16102202ce2134dbc2929f0aea38c8fc4640d74b1f76ac0de3e802b42536f540b4b3c77","0x87761e886399EF8e1624cb0DB3230B075a322c88",!0,!1,null,null],["ethereum","cc","CC",18,"CC","3044022054c08930a0197881a14709743495fc2e8c0fe6da96614268e143c61b564dab2302207f0caa120540a009c28a17941f1c04c843ecbc3d35c39069f89ecefa4eb8806b","0x15c9DD08Fb16331B9749a8d7d16BCd71c985f190",!0,!1,null,null],["ethereum","cc_token","CC",18,"CC Token","30440220664f1089d4af035a575fb473461dd98468558bfc7f7bbfa315486592e1c725ad02200e3eaad4d85511ab60ed5c48cf6711446446d506d5867fc2ee81cb46b47cd72d","0xb7fbFf4Ce5200215c690cc95855e5d6C5236Ee9f",!1,!1,null,null],["ethereum","ccc__iconomi_","CCC",18,"CCC (ICONOMI)","3045022100bcf632fc941e45d71aff8b777d291a84c181380bad0d13b13a6f1c476e453f4c022056a11b193200f08894b38b7d871dd26051e31df047f83ce1d22f8804b32853b5","0xBE11eEb186e624b8f26A5045575a1340E4054552",!0,!1,null,null],["ethereum","ccore","CCO",18,"Ccore","30450221009ebceb2ed1d267b96911876c22226b4a5e76760c08a20d91c1ca08e77e1c558d02205f2819a3cdca07b6c85c2fe9de2bf9bf754072cb16a41ae2459138fbc03bbf46","0x679BADc551626e01B23CeecEFBc9B877EA18fc46",!1,!1,null,null],["ethereum","cdx","CDX",18,"CDX","3045022100bfda070ac6e395309c8e62d1e1b7b7a87056dc2daefd7c6c264b39fb24befd25022065011b81a34749a4a7af034faa4cdffeb350adfb0054df58bebb23f3a97c0d01","0x6fFF3806Bbac52A20e0d79BC538d527f6a22c96b",!1,!1,null,null],["ethereum","cedars","CEDS",18,"CEDARS","3045022100c777a1d7db8a35bee586e7a80c7b78c50afa909c87260f23063dea2194cb737302205a51f147f590aa00bc52bcbe05af7e35e6410a24819a4c3187edf39727dfc174","0xf256f3ac4176126F55af7c6E25fA5F3Cdf518b38",!1,!1,null,null],["ethereum","ceek_vr_token","CEEK",18,"CEEK VR Token","3045022100ded5274456605dc453bb5674dc29f159d1c1d65ca62e57c55a91b51bbc2acb1b022021a7da2f3b6b1d17e070b52c0851034608f58bcb0d3e393d5684912abfaca5c6","0xb056c38f6b7Dc4064367403E26424CD2c60655e1",!1,!1,null,null],["ethereum","celcoin","CELC",8,"CelCoin","304402201f0ce4857abb8ce610ffb3121d51fb2a77a58493a53bb9973824a26db336d1e302204c4b0ddefdc22754ae3aed9eb78bf884617c753339fda8ad0b76a96d4043d543","0x19B58d95929586Ad750893CAad43E77aa6e8Ce9E",!1,!1,null,null],["ethereum","celeb_plus","CELEB",18,"Celeb Plus","304402207f4ca810eb3296925761582026fa9bf7bfa1c04bac6a153a97cc2d4e22c01bfe02206e744022deffd77efad3d0dd3f9a3d7379c69e6e26b7cd0e04d19cea434c1b49","0xA3e53fe692eEda3502cf5CcfD8a535E1f93d23Dd",!1,!1,null,null],["ethereum","celer","CELR",18,"Celer","3045022100fea88eb097c0fb34df915c18184942f0e9efc9c9b653e51658f0e754a7e1139e02203bbfaf56feab6c89a07bafceebd9d25332dee2c5d6985a54e5464558c6951b5a","0x4F9254C83EB525f9FCf346490bbb3ed28a81C667",!1,!1,null,null],["ethereum","celeum","CLX",18,"Celeum","3044022027979a256d76e87b093127e62e59530701df01f65dde80230baaedfaf92d2769022058fbabbba49595cb33cc1c1dc3af4e680b5dcdbfc08f464284488ac24fe2050f","0x9f8F7EA504588a58B8b24b832B5d25a4Aeb4706F",!1,!1,null,null],["ethereum","cellframe_token","CELL",18,"Cellframe Token","3045022100ca7c6a0b64b29b71041c9fa66a33475389a599dfaae4b1260940dbf82575f16f02207b276eb2d48c65540c33fa31670274d7fbeeaa334dc9df602a259b27cff4c389","0x26c8AFBBFE1EBaca03C2bB082E69D0476Bffe099",!1,!1,null,null],["ethereum","celsius","CEL",4,"Celsius","304402205e49ca7864dde97b8485f1fab8cecaeea30564b5d3e36d1624dc316fa552506c02200b0bb3dddf28b6dde22cd6fea37b0cee707877bca0504396df89a347a4e4f8a8","0xaaAEBE6Fe48E54f431b0C390CfaF0b017d09D42d",!1,!1,null,null],["ethereum","cen","CEN",18,"CEN","3045022100979e1c1ceed8afab1c367eedaa7d3cad3355e6ac616601e7026980c1ca615fd9022015e23c8ccb9e272497c5dc5efe202a20139f16da00efde8ae2c55eb26ada30cd","0x0bC61DdED5F6710c637cf8288Eb6058766ce1921",!1,!1,null,null],["ethereum","cenfura_token","XCF",18,"Cenfura Token","3045022100977b81f83fe9e72e27d572c08c3b80bcc8f817329e06363d7677499625e44351022075ee6b04cb665dff2e7e479e12f32a3d8a37809d17c147957d116269732a008b","0x010D14d36C3eA6570D240ae3ac9d660398f7C48e",!0,!0,null,null],["ethereum","centaur_token","CNTR",18,"Centaur Token","304402200f8c5400b8ef43bd2080a55da5d860b6771ed6aa9d1d0a9f38181757cf7aa97d022054da9d3e13cc36f17450509d0222fc7467d9e5162054ed2859c23d084012bdae","0x03042482d64577A7bdb282260e2eA4c8a89C064B",!0,!0,null,null],["ethereum","centra","CTR",18,"Centra","3045022100aef4f37b817a8b3fc38df8d7171c50ff6a3712b3006c867a7ffec20ef87bf94302203e44149dfc5df99868e057309a8c8cab5a153c60319bde92c811cfcf7815ed6e","0x96A65609a7B84E8842732DEB08f56C3E21aC6f8a",!1,!1,null,null],["ethereum","centralex_token","CENX",18,"Centralex Token","30450221008796cd2b3f4ddafad806d43b66ea076a1c6391fb16bc6e72b28296a7420f5bcc02205f00c70ab9795064728d7cab3d950bab674edd4684b56be2183cda636cf8c4cd","0x504cDe95dBC5d90d09B802F43B371971adbEcf79",!1,!1,null,null],["ethereum","centrality_token","CENNZ",18,"Centrality Token","3045022100c8c9d352bf2e555995c616412b570dcc6ff8910bf87e034c8cdfa25f6c48491202204d438063e9f9b8c565bf8b06b6fa5e41d8dc4dbb5f282ee456c64731ebbc0262","0x1122B6a0E00DCe0563082b6e2953f3A943855c1F",!1,!1,null,null],["ethereum","cere_network","CERE",10,"CERE Network","304402202317a6cd9be551ec772e9eee93f14ccc2edea61cae45b47539e9a992be705a77022041058583eaf4b8738f89401aac0dbd6d4763e0dc65e33df2d74b504a4f09d90c","0x2dA719DB753dFA10a62E140f436E1d67F2ddB0d6",!1,!1,null,null],["ethereum","ceres","CERES",18,"Ceres","3044022055d248da24c5fd9d6a2fc105d508399319a5426c83fb531cf07d2738ef713b29022031dd40c46827bebb922b3c5078dcc18e0debe044f4427ca343b482437c2c9757","0x2e7B0d4F9B2EaF782eD3D160e3a0a4b1a7930aDA",!1,!1,null,null],["ethereum","cezo","CEZ",18,"CEZO","30450221008fda14275d93e47441fce6ad1612930f2df783470d2398031a180ad1010ad028022014a5c332e6a50909b2098cef5d67db5cc451df7811e9809db90fc1b0abde3b06","0xFEbc25f4c5fc3E90a7eFaE0b4d436A77c9e131B3",!1,!1,null,null],["ethereum","cfi","CFI",18,"CFI","30440220337c46279cfdd2169b3a05fa0c160006823481d6055b0d38197144def968132402201dda200979cd0f9d9b14bdc88a15346f7ab5deb0ac21015221fed6bb16e179e5","0x12FEF5e57bF45873Cd9B62E9DBd7BFb99e32D73e",!0,!0,null,null],["ethereum","cfl365_finance","CFL365",18,"CFL365 Finance","3045022100c38cd33d7d5e1971d9eb770ee95410e84afc06882c9974a39597ef832fa4e607022007a71b50a7bf32a9d1f6569187402acb703f9e5654bd19b077131ff183c8e39d","0xCD6Adc6b8Bd396E2D53cCD7D7257B4De55bE4fbe",!1,!1,null,null],["ethereum","cfoforum_token","CFO",6,"Cfoforum Token","3044022069e4cfcf0eccae1ffd6b05ce834a1af28714d0dc1188146c2a50044d05587d7b02203ed84ac7cce6f24fa4adcb7c998bf1429e0cbb85006725779a85b6078a94e0b3","0xB8981aCbBF7DA95A8fF6Df79Aab935cE63434fC8",!1,!1,null,null],["ethereum","cfx_quantum","CFXQ",6,"CFX Quantum","304402203a2a25bac2f97b414213d82cd0b2366be9aa5da1788d3ecef709490ccae9a63c022012391bfc76c9bfa041cecb18966c8782615e37bee708ce4578a0e44b54e80692","0x0557E0d15aeC0b9026dD17aA874fDf7d182A2cEB",!1,!1,null,null],["ethereum","chad_link_set","CHADLINK",18,"Chad Link Set","3044022041f5d99766f92b28971159e9df9562d0bb343571dcea985b18a0de1499930c20022005d1fd7b016600a9dc29ce673825a099c0079023daa7705ad5721d75bd96dd11","0x19F4a2f8E21915376F1429C26a3A9B9b1db5FF5A",!1,!1,null,null],["ethereum","chads_vc","CHADS",18,"chads.vc","304402207beeaf156cb12ed2b5c673f1187a366833fa6ab128e49939f6f6a2bd9915a17e02207a0152e5d89a0eefeebfe4d2ae5376d7f5220d8e62bf9d2cb9a09aa5fe318487","0x69692D3345010a207b759a7D1af6fc7F38b35c5E",!1,!1,null,null],["ethereum","chai","CHAI",18,"Chai","30450221009224f489293e81540ba0d70c2803ef40b241e348924a41c6425f97d1d19fb9de02200d08871c26cf1baac1f5c81ba26f8951f0a39e246dde9c5c01a5a51eac7306b1","0x06AF07097C9Eeb7fD685c692751D5C66dB49c215",!0,!1,null,null],["ethereum","chain","XCN",18,"Chain","304502210086bd0286c4af7bdc8343e7f33e7c6e5d44b8ca9235c0c66151fa94675810d11b022056a52bbc1581e8d6763d30e6a4ff645e06e018e5a3d60a9dfe80d66b9191649f","0xA2cd3D43c775978A96BdBf12d733D5A1ED94fb18",!0,!0,null,null],["ethereum","chain_games","CHAIN",18,"Chain Games","304402205e017ed9b2511c3cbb053233052dbe7432f6d46edcc348d36fa6408b1ec66d7102203dc305865473ce969a0dbbc091a2282c4b7d78c547f4dc3c42a32d40e46ddb40","0xC4C2614E694cF534D407Ee49F8E44D125E4681c4",!0,!0,null,null],["ethereum","chainbing","CBG",18,"Chainbing","3045022100e46c7c5ad483bd5585f7018f3327ec1e94491abf385b944bdbd2089afdc7edf0022006e75fe9159a5107902ebc83bc6d4de9929a28d5764b07e6f95bed54b840e317","0x1900E8B5619a3596745F715d0427Fe617c729BA9",!1,!1,null,null],["ethereum","chainfaces","FACE",18,"ChainFaces","30440220188a5edfff033eaad3f4ee2b95dedadcfeed153f96c1e85d66d9501874fe7e580220266c8adb4b86f84f94c1757eaecda2c41307f251ca24f07ee65db24f8269ceca","0xcd46d92C46be1DbbD5CcC497e95611ABE9D507Bc",!0,!0,null,null],["ethereum","chainflix","CFXT",18,"CHAINFLIX","3045022100830a078a41926869c3f6120d5d3c1a5a8386144fd431a734fea2451ba9892806022005bfaa4e6cc3007672f06f719218e48497c15e87d7c57cb629eec12b74c23375","0x368BF9F1A1CA767935E39F20439D9041707E2634",!1,!1,null,null],["ethereum","chainflowers","CFLO",8,"ChainFlowers","30440220376c2f37266b1669acbec58a91cabb46453a0804059b49a73e90815f3be8c16d022041ad537c8e93c3918e4e8bea9b1a8d4a339e6b53b8b7b31383cbea43831cd726","0x8994C21d588106ba289e014331A1D74491894cEe",!1,!1,null,null],["ethereum","chainguardians_governance_token","CGG",18,"ChainGuardians Governance Token","30450221008979c203d655f80b211fc1a62719efe4dce1346bd286a5589744dc312f7f251302207cdc50abda104ba61d32498c5c9e881f848b9abe086752d8e95ab8653a8cf593","0x1fE24F25b1Cf609B9c4e7E12D802e3640dFA5e43",!1,!1,null,null],["ethereum","chainium","CHX",18,"Chainium","304402205243f8bf5bbbf8164e478d3673de07be70556336e45da25c828f21d706b6490002201950ff0b8f43708ff664df422cc338e8c3826af40d0a425920e6802a664d9701","0x1460a58096d80a50a2F1f956DDA497611Fa4f165",!1,!1,null,null],["ethereum","chainlink_nft_hub_paradise_dimension","CNHPD",18,"Chainlink NFT Hub Paradise Dimension","3044022027b8139ffb97ed5b5b6d990c9ce976bca347041a00333b492989b46ef22bac4e02200a13fc4175ec2a80ec9f24c9afe59248cf12676c8e7986a14c37ad2bb125d760","0x6443E507F53b526042d0054867A60a4C0409Cb4B",!1,!1,null,null],["ethereum","chainlink_trading_set","CTS",18,"Chainlink Trading Set","30440220288941fba64dc96ee1e2302a4bb014f7804d0ba50a48c05211b4f4f27a0c96bf02207578d5e8e7db4b8295a706a9b7b3f1bfb3f45f355c04c93e2e8bfbccaa5a5a2a","0x57e83505827788c9F92bCfd398A51A7b0C83DD8e",!1,!1,null,null],["ethereum","chainsquare","CHS",18,"CHAINSQUARE","304502210096a1f7090b1d80b2127c496fd7de87f2c1194a85ccf7699ff3fb6d46591dab0c022062d6d84850ce2b9fc7c9150aeecff0347f59509afce9e87696d9eba8a9eb6f8c","0xb41380174d0B06181513A5677b60200b93b5Efb4",!1,!1,null,null],["ethereum","chainswap_com_governance_token","ASAP",18,"ChainSwap.com Governance Token","3044022044b4b69ba8be79dbab518d4adcff738bc0178089614fd7ebf9667b69e2c3831a02205312eddb70b1d06d2deee8e8ca2b7edc2cf9ab693839c4d8e4de2abc9dddd16b","0xcC665390b03c5D324D8fAF81C15eCee29A73bCB4",!1,!1,null,null],["ethereum","chaintrade_token","CTT",18,"ChainTrade Token","30440220765b8e9938332d4f4c644cb10710d97d6fcdb8e6d617976dd0dedfcdfb653d9e02200ba66144ba3c3acb4b85cb8d28834ab679b1912039d18b86b71a899232391f62","0xE3Fa177AcecfB86721Cf6f9f4206bd3Bd672D7d5",!1,!1,null,null],["ethereum","chalice_finance","CHAL",18,"Chalice Finance","3044022019f8ced1595aec0bc0ab149b9c53f2f9a37d7a9940692533a00181ce4e61460d02203cfd16b2e130351d4e6083e14b1fe6e48e4f5a2d6674e2740792ff3219959bd9","0x1cC0744C5106bB47A61C4E41F517CB6F1c49b547",!1,!1,null,null],["ethereum","change_bank","CAG",18,"Change Bank","30440220734f96e3bdc03d77b6a225c0710185ffcfbafd571638252a6d67826f647981e2022075a1c05b10cd96b95c32055553a859ea4428d92b568f596a2198119058a8658b","0x7d4b8Cce0591C9044a22ee543533b72E976E36C3",!1,!1,null,null],["ethereum","change_your_life","AAA",8,"Change Your Life","3045022100bf030f5f6d1db0bcc4bf355c03e99b82a55fe73f196e504887fc2d35bbb126cb022059b89ad16aedf39479dfead32cb1d370192b5898af372916be0ab5cea093d191","0xD938137E6d96c72E4a6085412aDa2daD78ff89c4",!0,!1,null,null],["ethereum","changenow","NOW",8,"ChangeNOW","3045022100eb8bce438d37cbef5bde6a8d55dd257d6b669fdcb99950d23ef157ee91c123a00220599b67d49a28586bee4e0cbfe32b109481ca6e9fe287439ea7c4d4533e483306","0xE9A95d175a5f4C9369f3b74222402eB1b837693b",!1,!1,null,null],["ethereum","charg_coin","CHG",18,"Charg Coin","3045022100bb5e95face2a992d6399e357f4baf2bafe49eadbcffd8629369507a75ad6260902205971d00ae6aaffcdf5f295f8cb6524f9ebf60bc27e06c579d09b7fad43949623","0xC4A86561cb0b7EA1214904f26E6D50FD357C7986",!1,!1,null,null],["ethereum","charged_particles_-_ionx","IONX",18,"Charged Particles - IONX","30450221008a2406247442c762635ed5d744b86ab1ccbeb58d3769b355cfb36b150be23b1502202748a4a398f5944be65f36aafd9ccc2b0179e35cbc7a9de5dbaf60fd80b89a92","0x02D3A27Ac3f55d5D91Fb0f52759842696a864217",!1,!1,null,null],["ethereum","charli3","C3",18,"CHARLI3","3045022100e120f453a22c51bca67a94442d64562a6436a24f8fb1926379597f3f23c7105102206c66dee66fe764c785fc29f0aad45b083522a8b834a24680f4c2b7f3d86e6c27","0xf1a91C7d44768070F711c68f33A7CA25c8D30268",!0,!1,null,null],["ethereum","chartex","CHART",18,"ChartEx","3045022100b07b9a8240980cad62267916b5f1216807a2e2225af12da17cabfb6bfcb9d63c02204936a8f841f3d99ec684b87721cc6a852b666f2384a1905a0fbdc5209a3e071d","0x1d37986F252d0e349522EA6C3B98Cb935495E63E",!1,!1,null,null],["ethereum","chatcoin","CHAT",18,"Chatcoin","304402205c7efb08e53aafeeb75ebde29db5a35621da251c7b2e07136bffa8f61a0a65aa0220593b5241af5ed7dc1f3939f75849bafa4baa300ea866927d9f79f8496456fa8b","0x442Bc47357919446eAbC18C7211E57a13d983469",!1,!1,null,null],["ethereum","cheqd","CHEQ",9,"cheqd","30450221009d82ad04851e27ab66c3f1366a54b715085586a98b02505f8bb353ce3de1f62402201f8f4b550e3cd2c135376ce178ff65b04c41377e0c89acd93eb52136787db02e","0x70EDF1c215D0ce69E7F16FD4E6276ba0d99d4de7",!0,!0,null,null],["ethereum","cherry","CHERRY",4,"Cherry","30450221009e3e55e2d4f8194cb17de7a647292c06d83ada834ee4d48eb30ff7e1bfd663ac022030a8229841a7bfdcc856a66009712d6b9ebf7d203317feb02d3c11fc7d246306","0x4eCB692B0fEDeCD7B486b4c99044392784877E8C",!0,!1,null,null],["ethereum","cherry_token","YT",8,"Cherry Token","304402200846d0bc241369bdd5bb182cbb8ca0fdc3f37c5b64819ab0efef55147ec58f34022040363c66c7e545be359c599d0f8e9514134cb4ee709c0ff93cef99e275f232e8","0x5c89736e9454200141B80C37Eb28eaCECA2cE8Cb",!1,!1,null,null],["ethereum","chess_coin","CHESS",18,"Chess Coin","304502210081f52641444a9feb73852bd8a7e81c0daea5596493eb3959d45e3cbc26fff35a022023c72173f0fdfbb02a3b63dc9c06fe7bd70282231eec3adf9f1c6e89dcd54c9f","0x5f75112bBB4E1aF516fBE3e21528C63DA2B6a1A5",!0,!1,null,null],["ethereum","chf+_dukascash","CHF+",2,"CHF+ Dukascash","30450221009ed8380ffa5192c0789cdebe7887eba174097c78a09d9b89bbc83d52ba6e4eca02200583028e2bf467fec77b8425164212e2b39d235a00da8b8a06a51fb162693c78","0x18aA37548ADc1826411b5da2AA026E7E7af9Ca4f",!0,!0,null,null],["ethereum","chi_gastoken_by_1inch","CHI",0,"Chi Gastoken by 1inch","304402200bd7a3c7856d211fd3ed150e8871d78a77516cd6155a780e3c92e58dd1d9ff7802205f08dd63e1cc58b51b3c01c33a30119199d7684af535634d047ff0afe58a61e0","0x0000000000004946c0e9F43F4Dee607b0eF1fA1c",!0,!1,null,null],["ethereum","chicken","KFC",18,"Chicken","304502210095de9d0afc0dd1e1244a07d868b3a6b78dcdbfa274a1a537d5b5b7e566dab94a02201c0f96d607e9a05094966e89e624653b3cbda2c21247accbf3eb409fbf616a05","0xE63684BcF2987892CEfB4caA79BD21b34e98A291",!1,!1,null,null],["ethereum","chihiro_inu","CHIRO",9,"Chihiro Inu","30440220286d48009c0e72b612f8db811f9d3096201b11c6a4f58f40c409841504e9b628022074b04110322f5bd72095c314b3e110b301b298961605129e4663c6b353d8208c","0x35156b404C3f9bdaf45ab65Ba315419bcDe3775c",!1,!1,null,null],["ethereum","chihua_token","CHIHUA",18,"Chihua Token","30450221009e274791882b33ad26e9048080ba5314210ed30198b0a6b3ba52faf9bebb79f4022073e87e2e225ab3f61c21a7a4c19036e4dda2fdefe49e62d9c525936a5161ac30","0x26fF6D16549A00BA8b36ce3159b5277E6e798d18",!0,!1,null,null],["ethereum","chihuahua","HUAHUA",6,"Chihuahua","3045022100d5170edd3dea268a70f507c7457a18608d1ef58f70920f866a665609f6be7d05022027bfad42ad76f390c5986786aad2ba4d0fad42c2590586d46f960194ac2b41cf","0x7bE48633D86AA9821284B01030b8a3F9B06eA876",!1,!1,null,null],["ethereum","childhoods_end","O",18,"Childhoods End","304402202a41ffa7d6c8f10c84bf311b527b5581d36f9695e28d639818749f5cf2a1efc102200d8082d2b7917ffc901294eca62ddfbd40ae0a28a621641d8903d03d66b00090","0xb53ecF1345caBeE6eA1a65100Ebb153cEbcac40f",!1,!1,null,null],["ethereum","chiliz","CHZ",18,"chiliZ","304402204393291ca1c0fbe08524e15dd90e64135dc34aa556b7aab16f64144a4720729402201047f16681ef6c55ee60d0daf5d03e5890d4e6d03a3ca85669820b72a501f2dc","0x3506424F91fD33084466F402d5D97f05F8e3b4AF",!1,!1,null,null],["ethereum","chimpion","BNANA",18,"Chimpion","3045022100dcd99848bb68e7d318b910161227e8e26fa06f885ba94f39379ba2a6fc087fed02203ccbf2e5d45ca074384ac0e3d1d821ffbcaeb3be13671a9964b33c3c33ccdbb1","0x07eF9E82721AC16809D24DAfBE1792Ce01654DB4",!1,!1,null,null],["ethereum","chipz","CHPZ",18,"Chipz","3045022100dc7a00263840f179865443f39714054f66c4e0c72240687cc13649bb44174c9202200ade98fdbdb1bdf7d136667b30c3d5667b10feac7f1858911216d53603edc9c7","0xD7d6ab522fA41caae78F6edeb46A14954aE0c772",!1,!1,null,null],["ethereum","chonk","CHONK",18,"CHONK","304402200c81b769d7392890adf7929be8aafbf914c5b77b08f3c9718539c0ed76241640022033ba56b7bd25230b8be0ff7a5eb61fe116a6196a6e2ad52c620da8c3d8055111","0x84679bc467DC6c2c40ab04538813AfF3796351f1",!0,!1,null,null],["ethereum","chowchow_finance","CHOW",9,"CHOWCHOW.finance","30440220392c9aaa7c1cda2fce6d9d8b5d6afa1e2f5bd92075ef944e8fb17ecfc9bfe6af02204796583b38d703c45ffc3591ac23de99f1432d3af2156ed0fc5822b78c860cc8","0x925f2C11b99c1A4c46606898ee91eD3D450cFedA",!1,!1,null,null],["ethereum","christ_coin","CCLC",8,"Christ Coin","304402202e5a292209adeb52cbe5e88fc401a7c0b042a030f2d9c96d4ef81a6ef3fce21702205c8079361926ca8f6935d6c9474641121ec1983edb5627f9edd154ce394d2adc","0xd348e07A2806505B856123045d27aeeD90924b50",!1,!1,null,null],["ethereum","chroma","CHR",6,"Chroma","3045022100fc6dbd52dde854958300882082d57e2d36b7126a14d208a7d86427057ca9d64202206927c41206e552e36303eac1838b5862b4c46eb96f1391a8be729184eb4da1bc","0x8A2279d4A90B6fe1C4B30fa660cC9f926797bAA2",!1,!1,null,null],["ethereum","chromie_squiggle","SQGL",18,"Chromie Squiggle","3045022100985e5e14b2c9b1358ddb6aa5f7de42947d1981571a5fa45373b43131ed7ace6d022000ce93277ba05e0d87993ca95a329796a3dce327d181363bbc63ced8b9732fef","0x8d137e3337eb1B58A222Fef2B2Cc7C423903d9cf",!1,!1,null,null],["ethereum","chronic_token","CHT",18,"Chronic Token","304502210082fac1d179ef6c5409a4ef6189471f2842d45232af6a0fc03c4fe54a1e6a436c02200d95ce4ec3c7b5b4887a8829ce01d0fe4631fdbea628a3ef3b85f59100b7582b","0x19fAb8f7dfFfF38268644eAEBd3d538F68036000",!1,!1,null,null],["ethereum","chronobank","TIME",8,"Chronobank (old)","304402201049c6bddc979607d326bb4b6761ffa42e04049e2861ea4f1354b1039951c909022049f36158b29a0efc2b5d20310b900e04f527133c3df32e9f61df2ad7f5ea92ef","0x6531f133e6DeeBe7F2dcE5A0441aA7ef330B4e53",!0,!1,null,null],["ethereum","chronoly","CRNO",18,"Chronoly","3045022100d6056a8ba4cabd863b873da705df9a1d9d8b603ed70dfa99e9c8b5db1f8107b502207b121f7f6f5f838ca28cd248ee676e9d128f9544612641674e475a7fc4919dab","0xE23311294467654E0CaB14cD32A169A41be5ca8E",!1,!1,null,null],["ethereum","chronotech_token","TIME",8,"ChronoTech Token","304402200568ab7791fa1a675d26b1cd7e8d9c18497e2094f66a8cefec564b9b3b2e43610220240f5705e16b3882921cde46d4ad21eed824e5be6dbe5fc322bd18a16a5e96f9","0x485d17A6f1B8780392d53D64751824253011A260",!0,!0,null,null],["ethereum","chsb","CHSB",8,"CHSB","304402204b230bbd5f17611aa349677688223cd5fd0a5aaeb51935d0ce4a574dda8e3c5f022074a852b255e590123d2b3a210ee06d146bdf9a02160a825a00a77e46d5337e55","0xba9d4199faB4f26eFE3551D490E3821486f135Ba",!1,!1,null,null],["ethereum","chubbies","CHUBBIES",18,"Chubbies","3045022100844dab8783943e03ce1db3d02ca7550ad27552a2a63b83280cc1ca49d6ac640a0220683fe63710c4927244f66ea560b28b9eaffc8c43befe837a7176fa3c371b6663","0x48Bef6bd05bD23b5e6800Cf0406e524b517af250",!1,!0,null,null],["ethereum","chubby_inu","CHINU",9,"Chubby Inu","30440220583de3a68876891a81622e9e4ee67bd518afe09bff6c6eae2a64dd2c62d29a9502203475a6936880b969f9cf2222285582b182a7abdf6d57618b6154d7a1f0051f10","0x910985Ffa7101Bf5801DD2e91555c465EFD9AAB3",!1,!1,null,null],["ethereum","chunghoptoken","CHC",18,"ChunghopToken","304402204fb923341a9090efbd86e87a52448c4eec32fa21ee2b76295227fd613b571c13022061ef1b01bae7da20b6225a175198081226db82db3dda706a510cbbbcc21a81f1","0x24810d836F6D60a7EE499622b7103Ec769E81E3b",!1,!1,null,null],["ethereum","cifculation_coin","CLC",8,"cifculation coin","3045022100fbf041256e51afd2cce1ff2a7c6ec9b5aa2a4e9c4fe187e4e7042b1c622365ea022070b31e16620ddd5d410feca3d291e195b27e08a958b4c345b2203f1e85132ef2","0x951301A2BBCe3d357785Ba1e13Ec8f42322252b8",!1,!1,null,null],["ethereum","cimtoken","CIM",18,"CIMTOKEN","3045022100d1a5cb8d3d18209cb1fc20dbca8a5d7d4ac0b4ffecd8a1240b9dbc241677030f02207c0ef588da21bc9f80e5a8eed9d526457dd69b33c23abbb5979023c368bbd0b8","0x456c636cA9fD54DBdd66de6C1C0fEaf5637DdB7B",!1,!1,null,null],["ethereum","cindicator","CND",18,"Cindicator","3045022100c45948ee3ba258c177e5c0401aea5f4294769fd866b1480e73823a552f3438150220020130559e9da78806b80f46047a204befdce00091cee099632ec59cdb860745","0xd4c435F5B09F855C3317c8524Cb1F586E42795fa",!1,!1,null,null],["ethereum","cipher","CPR",18,"Cipher","304402200de8007710cb293ef0793552a3b80ce8454a2d68b02f8f247c00d56cc55168f502207ceb43895c6634684da86396f51c1fe5e92fadc7a26bc52315a06bf749c56769","0x20AE0cA9D42e6Ffeb1188F341A7D63450452dEF6",!1,!1,null,null],["ethereum","cipher_core","CIPHC",8,"Cipher Core","3045022100a98357a1f3e2a0e193127e1c8fa3fe37f1fa1e5e35e785e7bf806776d703c79e022052282cbb4f5045b4729327438af10a70525cecc6d504f6c1f881b2892478ccfe","0x83eB94cB563146a42Fe0a8b3D051F2387A7FB81f",!1,!1,null,null],["ethereum","circleex","CX",18,"CircleEx","3045022100b23d72bc4ea80d0017ab4c2dd7f67b3cc0b66effa0fec9313cca8356d94a1a05022058148ec5b027e926dc21274ba06444aedef41211e381fa4852e37f2b055da734","0x3F4E02741B155F5CE8D6190D294d4f916125B896",!1,!1,null,null],["ethereum","circuitsofvalue","COVAL",8,"CircuitsOfValue","3045022100d19b4bae98e642c50bb2283e1c137777b230151892d27566a533224b142a4f3402207b9b59128b41824c36a157f836bdcec441383f745a1d841012a5e9b1cdec17ea","0x3D658390460295FB963f54dC0899cfb1c30776Df",!1,!1,null,null],["ethereum","cirus","CIRUS",18,"Cirus","3045022100ce2c88a410747b6791ab1f8daf4ac09f093d2f189591c2175fa4c84cfded51c10220012ba57c9e6dace150adc1b7a69b8f3efa2b339d1101cce6b016a2d07699d24e","0xA01199c61841Fce3b3daFB83FeFC1899715c8756",!1,!1,null,null],["ethereum","civic","CVC",8,"Civic","304402200b808a938fc025bbf9d9cf7c4fb4ea2d25d4804eecde940d2ecaa1e5a722884e022052fcb6fb11ede661647a1f1981d8110f5d4bbe29f7ee11be65a0f726fc48b452","0x41e5560054824eA6B0732E656E3Ad64E20e94E45",!1,!1,null,null],["ethereum","civilization","CIV",18,"Civilization","30440220068926a39cc070870c2add1505340540be4f6dd555df75efda6b66a097d6fdd302201b3d6360ecc4f6990485a464ac0452dd23757d9d8f191cdd51618fa4c3571f1f","0x37fE0f067FA808fFBDd12891C0858532CFE7361d",!1,!1,null,null],["ethereum","civitas_protocol","CVT",18,"Civitas Protocol","304402202a043c191149c9a46e1206d9fa77f359cdaaa5e391549062eb5c277452527e4202207c4991c9ecce90b30cfbe798d766b8e0482538460f67617350238142b7b37ae4","0x88930072F583936F506CE1f1d5Fe69290C2D6A2a",!1,!1,null,null],["ethereum","ck","CK",0,"CK","304402206fc9950850ba3eac36a2dd30e648a745edfeb7b784f99a80ea1e558a7a1acfab022059ed37480b2df62d40a53a1f364204f23b5c321c9bac7f7d49b7543f10e43243","0x06012c8cf97BEaD5deAe237070F9587f8E7A266d",!1,!1,null,null],["ethereum","clap_clap_token","CCT",18,"Clap Clap Token","3045022100ef79d739702987865f05d01c2ec962ae3a22fc4fbf7d425c5cf8815a3ad7dd1402206fda24ba060137bfc61d48fa627e8ee1fc444d8267958a1d1730677d56440591","0x0F00c8dd21dA51bc6A6ac07F491A7dBE69746f16",!0,!0,null,null],["ethereum","clash_token","SCT",18,"Clash Token","3044022017ce67c7d7274b7fbe7dc4618b5e4baeecf8b57be14518611026bcc1e0a36ebc02204debcb504a378e3f6e865ad0ca5930c709caca7dfedf49bb9e2eeddc54aecc2f","0x6Fa0952355607dFB2d399138B7fE10EB90F245e4",!1,!1,null,null],["ethereum","classie","XCL",8,"CLASSIE","30440220111158368d06bda3e37e18fb67d0f087675e90d0f6662dc4d040132660e3fc58022020722a00736b70833f13d4c5914eff80d0454765203734a559c6c02841772447","0x0843971B4ac6e842a518AA184e0271d88B5cB74F",!1,!1,null,null],["ethereum","claymore","CLM",18,"Claymore","304402201032afdb7869910004cf5b10d468da210494cc7c2a0945a367467aad2c657bba02200935434b3964067813ce79740e5ae4b6616e9fa005e326589e09d90f75d95421","0x0ED8343dfdEE32E38b4c4cE15a3b00A59E90F3dB",!1,!1,null,null],["ethereum","clearcoin","XCLR",8,"ClearCoin","3044022039caefbf69fdad842e6139d34b98339517ed16594f26e0d24cff4dd0872cfe9702200c8fcbf8a27a03d2f5b6e0ee7b04b1841da9bd3025e8a4f8b8930534a6ebdc2a","0x1E26b3D07E57F453caE30F7DDd2f945f5bF3EF33",!0,!0,null,null],["ethereum","clearcryptos","CCX",18,"ClearCryptos","304402207b94312f2ed94933cdeef8fc0cb42c5bd24af0d3f6dd9cf09ba83f0c1d99b30f02201e9040b592a23810f50e71c13255713de6f76a3eb7ee00e10b07e6764d668392","0x1D6405138A335cE5FD7364086334EfB3E4F28B59",!0,!1,null,null],["ethereum","clearinghouse_token","CLH",18,"CLearingHouse Token","304402205318c404dfa43d36014dc585b8085f9a503a7d7110e5f1dbece1eb96bf6a99030220035dd73bfd31ed27690d407a708dfe12b10a5fb0b1a4cff7d1f19a0c32fe2b10","0xD7D8f3b8Bc8bC48d3AcC37879EABA7b85889FA52",!1,!1,null,null],["ethereum","clearpoll","POLL",18,"ClearPoll","3045022100d4e3eaa426aec34e2d7f80584158fee16fa7c16d371cd154a4a336f978c5a1980220116e537a0f380e01b0bbfe2caa0b5a52fb58b2a848bf4e97dd50b8574f308d88","0x705EE96c1c160842C92c1aeCfCFfccc9C412e3D9",!1,!1,null,null],["ethereum","clearpool","CPOOL",18,"Clearpool","3045022100a82a1572c7aee35c08b372be2b1942f70c22cb6e5e0587d9312638bfad1d4d6f0220677af60d1154e2958da8e40758d040f462f5c0d191c7fc9f16441848cbd92e28","0x66761Fa41377003622aEE3c7675Fc7b5c1C2FaC5",!1,!1,null,null],["ethereum","clever","CLVA",18,"Clever","30440220064378e501df299ec1160592f2639d95e8bb6b7a1986d0fae9953769a6a94b9c02207c73a078352f9b0b2a8ae5e1fea3bf832329ed602e8f1507ed604755b70a30a1","0xC52e23194476B1dD39408cB0B9D935dA8e6Db3d6",!1,!1,null,null],["ethereum","clientelecoin","CLT",9,"ClienteleCoin","30450221008788e8e78288f2fd33db71ed2efe4bda463d1c74e23529e711464a3a1b3d4c8d02205a19d1aa4a1a04c3cb9670d0d01ca0a02e0753c9fe2c248f1777bdfde0e8dba8","0xe5Db2c3E2CEFf742E5306bCfc12622f5e2d14e98",!0,!1,null,null],["ethereum","climatecoin","CO2",18,"Climatecoin","3045022100e488f1fcc40aaac9e5282768bc0b17b922a02e80329b03ed654851a324a9372e022017443f691d1b8bc6ed61d9986da046d64445c8a6a67432fba7d28fcee875669f","0xB4b1D2C217EC0776584CE08D3DD98F90EDedA44b",!1,!1,null,null],["ethereum","clink","CKCT",5,"Clink","3044022046a6d5c2974011eda4d64c5afcac4390b31be9195c548679f1b5e794ccdfb07a02206e9e41dc1dbeee599b88262a6091ba19d51d05719bf62e017a75a078c954f94e","0xf6BC5dDB21B22b76A31c719a8Ae904232055d876",!1,!1,null,null],["ethereum","clintex","CTI",18,"ClinTex","30440220180ae8790e846c26cc6878c05378a1ce54ea08ee3cf1a9867c540f62206e88b2022015be2999e00a28f0c2a74e304d9a895e74ee572bbb47e3856be39db996331d6d","0x8c18D6a985Ef69744b9d57248a45c0861874f244",!0,!0,null,null],["ethereum","clintex_cti","CTI",18,"ClinTex CTI","3044022056cf308d661c97b40a4538dd09ccd4efa6add1187892443708398cbd1de373b20220197922dab75c754712b65fc6e9acf43085e146a9c0a570cdf1fa2fe8cc61474d","0xcB8fb2438A805664cD8c3e640b85AC473DA5BE87",!1,!1,null,null],["ethereum","clipper_coin_capital","CCCX",18,"Clipper Coin Capital","3044022036a09b2dfd5492bdccb4393a00aa1cb892bee6fdade48fae047f6d23b5304b4f02202740503165f8b4bacc2d7b55dfdaefde191a935c7fe6252067babae00dbb4a37","0x378903a03FB2C3AC76BB52773e3CE11340377A32",!1,!1,null,null],["ethereum","clipx","CXC",18,"ClipX","30440220296331c3c7f96b69e6ad27fe1f9bae1c3e5d3a101ce5dfa65608522024b134180220622a8e7e7179f906328cd5ac666e889ce41767f3c58e675d83a4972674b03290","0x213FBEE1394B460eeD9D1F87f0066C4CA5B85cEA",!0,!0,null,null],["ethereum","cliq","CLIQ",18,"Cliq","304402202f8d084b63841c19965cbf9c490b715454dcecb781bf976f6dfa37105f6d004c0220790ab9eb54f17d06568df5c338183b5a56675c68dc6e0570de1e51a5b32ebe82","0x0Def8d8addE14c9eF7c2a986dF3eA4Bd65826767",!1,!1,null,null],["ethereum","cloudbric","CLB",18,"Cloudbric","3045022100be2212669ad16db0427463a85c46e12644db89832e213d0184f9772a84d7ec9b0220166efc52e3a6fe13475f442f1a24bf50dee66ed671487686bc39a964aee748c3","0xb1c1Cb8C7c1992dba24e628bF7d38E71daD46aeB",!1,!1,null,null],["ethereum","cloutcontracts","CCS",0,"CloutContracts","30450221009af601d82a5529f615d5cb3054a9c10b7fc8a4eb72d72bf655f978ed58363b3002200b88db71ccb5b9f304447c054652ff725a2d2be1f59f3a200a2eccfc2da53c55","0x1da4858ad385cc377165A298CC2CE3fce0C5fD31",!1,!1,null,null],["ethereum","clover","CLV",18,"Clover","3045022100d9072db56a06c59e4c58fb8ec7872c0802eaa8ff81d955bb148026fe68fdd5f3022078a44752fc839b27ec42de7331fa63c06c6e80649cce26e21b2b6c04cf1c7cfd","0x80C62FE4487E1351b47Ba49809EBD60ED085bf52",!1,!1,null,null],["ethereum","clover_","CLV",6,"Clover","304402207446086fe12bc2d3fbc7931a2213c2e7a4aedc514fcd0ea11ee6441950bb4876022046f4def65a76c420c0cda38f83ae8e0a79740ce2a768e443f7a5775fa399ba6f","0x22222C03318440305aC3e8a7820563d6A9FD777F",!0,!0,null,null],["ethereum","clt","CLT",18,"CLT","30440220186352b11ca14b4f601f77dc838309625254491afda34669a499bacbc42cef1f0220756cbbc527f141167581adebdfa2be3b14e50f503ce7464bf6ffc3747bf4edd2","0xa69f7a10dF90C4D6710588Bc18ad9bF08081f545",!0,!1,null,null],["ethereum","cm_collection","UCM",18,"CM Collection","304402200933108fb91f8b419cf65240961b8cd50101227e1b2177e26ee3487d1c019630022062dbc95c69ff5be281e0a43786a49b261d1e67893a2c75ac2f6ce1a7822d53bf","0x5fb99A3593d7088e44377a1bEb27739Bd928F269",!1,!1,null,null],["ethereum","cmbtoken","CMBT",8,"CMBToken","30440220063085c284e1f416201d2196f81d2206ed74d4eb4321c3b6b81f352411930a1402205f9d20b971c4a3956ec8eeee474ad8db154b9be0c6da21d1590498f761cfedb7","0x3EDD235C3E840C1F29286B2e39370a255C7B6fdb",!1,!1,null,null],["ethereum","cmdx","CMDX",18,"CMDX","304402201984ca210e3273e2a212b78842b44f2ed979014fc3811bdf13a607ce83fce6f002207dba90b59158c3eb035f8e6fdb34dd22666eab91dd6752c09a883a49e23c2707","0xb2c19bA4D5246D4c587a62F0dfE9f78083568455",!0,!1,null,null],["ethereum","cmgcoin","CMG",8,"CMGCoin","3044022031e2098eb6c7839ae025b96c03777df1e6696ccf2d06583f344aec0f275fc13b0220119b0f76cad366ee4a238154ac2737c23d55c2512bced67102cc63ab0ac66419","0x5fd1fFA1d817e2BC1E594081A9f883A8707e959c",!1,!1,null,null],["ethereum","cng_casino","CNG",18,"CNG Casino","3044022100c955089d87320b6b22c7484c8dc08d89391829e770c2fe87973d94d9c7325441021f22c399be2dfc860819ec71eb74c882745ebf50481e12713f5e13bce3681ba6","0x883a158c9b28f8d626ACFCFbE1028f49E70c9D75",!1,!1,null,null],["ethereum","cnn_token","CNN",18,"CNN Token","3045022100b0fd029c68de72a2d379a75df94b0d68432ec95a7354ce03f4577c49e05663e602200f5a39adae488b6fa3db47195b6fbba504c42181a8c38efc51f3bfe3b85a0104","0x8713d26637CF49e1b6B4a7Ce57106AaBc9325343",!0,!1,null,null],["ethereum","cnyq_stablecoin_by_q_dao_v1_0","CNYQ",18,"CNYQ Stablecoin by Q DAO v1.0","3045022100c5ebe9a167f5dd00a525854b46af16303869bfa07719ecfe071d8d338fd3e3a0022055996c1ac7dd677e78afd1177c4e2be66c48fcf5b712ec3141eb1c4982b464f7","0xc541b907478d5CD334C0cbfcB9603b6dac6e9ee3",!1,!1,null,null],["ethereum","co2bit","CO2BIT",18,"CO2Bit","3045022100a2dadd0b2df080fbcf832c8d3d1d41f7d9652b64f23011f1180993010d2bba13022074e1805e6752bc2086d8bb92434fc299f21373409873888c63c26ff21b25a7a5","0x574B36BceD443338875d171CC377E691f7d4F887",!1,!1,null,null],["ethereum","coal_coin","CC3",18,"Coal Coin","304402203be408a6c9b0e58842dfd76c874fff208175af18e8dda0789092f9727eff0c8f02203188559c68806385779e3696b66b0a416674a4a6ebfbdca80f6c21975780a772","0xc166038705FFBAb3794185b3a9D925632A1DF37D",!1,!1,null,null],["ethereum","cobak_token","CBK",18,"Cobak Token","3044022075a923c9aff30687982256b1433bba0086b0d14ab6bb847bb085267d1ef4033c022065eee940a02ba7a119e31f1a38d320f7f46b8b57cade08a7e6ccb758b491154a","0xD85a6Ae55a7f33B0ee113C234d2EE308EdeAF7fD",!1,!1,null,null],["ethereum","cobalt","CBLT",18,"Cobalt","30440220206f8c373f34cf64fbf0bd1955f121d656f55d4b892c515aa7365b8fc810ddfa02206fa81d80ddce4b491c150f7036cd2a3f0754a67f59db6ea819523a4125b1af5e","0x29a99c126596c0Dc96b02A88a9EAab44EcCf511e",!0,!0,null,null],["ethereum","cobinhood_token","COB",18,"Cobinhood Token","304402202acc6df58ce6269b33fa450b60e7c491c71eedcf1aef06686a6343c620cf947a02205cf0e5b90cd114bc35bc16fb8d539aeb292fa4f67fdea17b9f528f0ef146f80d","0xb2F7EB1f2c37645bE61d73953035360e768D81E6",!0,!1,null,null],["ethereum","cocaine_cowboy","COKE",18,"Cocaine Cowboy","3044022013a0664267a932e5c2488fd67cf21aac714abaa132265a42543a6a0fd303874c022065cebc1e1e015715ad1c3b573a2226031719e327536c397e55f339f2e68fed83","0xA3a3F076413A362bB0D69EeA1dC5b0E79C831edC",!1,!1,null,null],["ethereum","cocktailbar","COC",8,"CocktailBar","304402202bc21252e18bbb97a89614c08a1405aee60f072bb9b718db4e9fc29f0c39f9cb02207d8104ff084ce4601ce047d7722b375b9f9738b843084bd34e603f925ed385f8","0x22B6C31c2bEB8f2d0d5373146Eed41Ab9eDe3caf",!1,!1,null,null],["ethereum","cocostoken_old","COCOS",18,"CocosToken (old)","3045022100f423946447a34407c1ff2b09f099093415e5af1a316270677ed82aaa99d7c8bf0220037d6efa79701b414d2f09aa17836009fe9b86f76e66256131333f6fc85af5fe","0x0C6f5F7D555E7518f6841a79436BD2b1Eef03381",!0,!1,null,null],["ethereum","cocostokenv2","COCOS",18,"CocosTokenV2","3045022100ab44db4a6eec26063381fcee2248b98f915625a532ab8f070bbab99ac2530f93022034685d85120e9704831586b3224e9ebee5eba47ac547576f3ad34920278dab78","0xc4c7Ea4FAB34BD9fb9a5e1B1a98Df76E26E6407c",!1,!1,null,null],["ethereum","codeo_token","CODEO",18,"CODEO Token","3044022041ce807185970a3c437689ea4dcf529aeb548f0c5a45900f67fab8064ea33b78022022c61823c05a4c987b77e9e31292f50be68774161898c7c80e7b4db5969a8394","0x46b4a7d906F1A943b7744Df23625E63726d79035",!0,!0,null,null],["ethereum","codex_token","CODEX",18,"CODEX Token","304402203e1157563b3716bf38001c82044f8a77e88cb4f8e75a9487ade6633b454e25850220158da476554e238b16b0b3c239f65b4a5e2a31e84b52dce6dfb5dd0ace2e0b32","0x609907E1e9Ba9B02B42CcFB5cbBC1DA96deAe402",!1,!1,null,null],["ethereum","cofi_token","COFI",18,"CoFi Token","3045022100a8a5080fe25c431fb7a4648c649c5ae85404387a9232a44d1ac0a0cc4a7685ab02202fb49775f3d4da24a410214e57a3c45634e353bd88733ab124455e6a9d1447f9","0x1a23a6BfBAdB59fa563008c0fB7cf96dfCF34Ea1",!0,!1,null,null],["ethereum","cofinex","CNX",18,"CoFinex","3045022100c1a69369f8d83cff75c4cf4b9a4fb5961d773e459b8f4fca462981bac54aa07f02201913e1c8ac7d29eec875febaed02c2a2050e9c041a36dbdb24592dece92e4e45","0xE0b7e882C194881C690924cb46154B8241F9145E",!1,!1,null,null],["ethereum","coge_inu","COGE",18,"Coge Inu","3045022100df328060ff1d837a5531ec5549ca6e70b496cb3f97436113f21b7ca3043d87720220385221ee346b9c9043ae96dc82d8c40b784e53b820e9bd8a64e03382ccfcd5bb","0x70a6994213a86eeE1A0c8E65A0c04EacCeca476E",!0,!1,null,null],["ethereum","cogecoin","COGE",18,"Cogecoin","3044022063a58a510a444ec58f351dfb1e5131feb7dbb5423db7fb2129266c778d6629b902205a9f7ce2772626aafa86d75b640e5972f86760df382efd1d67fa122914434387","0xC382e04099A435439725BB40647e2B32dC136806",!1,!1,null,null],["ethereum","cognacdao","CGD",18,"CognacDAO","30450221009864d6679423769278e9f98c6efeb0e66b8627617a70f9909adc9419ce17f106022052c946821399195b60cd2e709a6d55d57a1ff4e6a71fad75995f4ae19b58ffb5","0x1bC5837Ce1b2fFd819E0Ed27Bd072b61D8999E92",!0,!0,null,null],["ethereum","coil","COIL",9,"Coil","3045022100aac8c599f16d49543534304597d1783e1b81a688835b829fab53c79fee55307a0220476c68fe0e5af9ee0597c371dac1ae6141e78846eeb98c518877e66f035775b5","0x3936Ad01cf109a36489d93cabdA11cF062fd3d48",!0,!0,null,null],["ethereum","coin","COIN",18,"coin","304402205d18097018ac788ceae9eaf8c8ba4a9cf805ab22ec2d7179fe813f87d91323e20220073ff37026ea0b9b1f222a488c0f018cc0f66f04fbf3e4f96c4d347ed6aa54b8","0x707aCCE4404ED31B35BD9565a7794a06C7c139C9",!0,!1,null,null],["ethereum","coin98","C98",18,"Coin98","304402202456d7df76e9a890ca45b00c58e3f9587d07fedc374ca6ad3d57c2567f166fbf02201dd1030ccfc9d22e6dbacf0344bad80c6eb2976b771ff525efabcc0b8e308efd","0xAE12C5930881c53715B369ceC7606B70d8EB229f",!1,!1,null,null],["ethereum","coin_artist","COIN",18,"coin_artist","30440220148605185560a1add3679265f3f8b840ec2627ff379f7eb7a53ae0d9353a340b0220304c8493143200a32d14eeffb466d05fd6060fdd069dfadfc643c6759447e7bc","0x87b008E57F640D94Ee44Fd893F0323AF933F9195",!1,!1,null,null],["ethereum","coin_bac","BAC",8,"Coin BAC","3044022076d3ec882324f25744cc08bac352e1c3129d6617a4c7d6e9fb42a60ac8d8f186022032a88c2b0a4ae6aa4a403078f410c9e25603259565c5a0afe50ac6691804fa63","0x7Dc59729B0adf4ae34721a1e06ef82a19E690b04",!0,!1,null,null],["ethereum","coin_merge","CMERGE",9,"Coin Merge","30450221009d8ff0c8c4de0fe567345bc0fafc1f9b99d97246881c52076286b53cb7a71bd402200b4c14ba45b0b5609b80d65e8caafca8882530c9b70db4b789713d248b74ce9d","0x1190074795DAD0E61b61270De48e108427f8f817",!1,!1,null,null],["ethereum","coin_merge_","CMERGE",9,"Coin Merge","3045022100fbc346e7cfabd55de48c313f1847c247e71c9d5ef46a6e11c332f439918bb3c002205bc1fea4859a19bcdf7a2d530e7d7591909beb7faf48800d27a4d03e32bbc87e","0xC48b4814fAEd1CCc885DD6fDe62A6474AeCbb19a",!0,!0,null,null],["ethereum","coin_utility_token","COIN",18,"Coin Utility Token","3044022019e450f0f7ae357f76afbdbc25aa231436a38b406486c5b2b64ef337ad7e617902202d8d143b55c1e45e783c7723d13adf95d7f22cf493ae22f4de7c3b55fbbe5c26","0xE61fDAF474Fac07063f2234Fb9e60C1163Cfa850",!0,!1,null,null],["ethereum","coinanalyst","COY",18,"CoinAnalyst","3045022100cd1350f4be2ef5cf0406e6545c86b1b3b6362f77ec1d1e78532b67fc0a48d49402206be1ed6c00321f3825c5d9eef5b560fc4b7729ed9058f5bc5c7f72697c8545b2","0xa2c1e04acA801dA92FA95aF161040d37f103d69D",!1,!1,null,null],["ethereum","coinbase_wrapped_staked_eth","CBETH",18,"Coinbase Wrapped Staked ETH","3045022100a137fc48e4b568a47c1d2ab8b261762ce7d57b8e9bf80c70460ccc316fe56929022024ad1e0cdc9607422d90addf4618903da77fac0fd9070000b675a5442fff5212","0xBe9895146f7AF43049ca1c1AE358B0541Ea49704",!1,!1,null,null],["ethereum","coinbene_coin","CONI",8,"CoinBene Coin","3044022071c8e78b66ed29d79b607c483e36777a36a93b8ca83f48cda13c4556783a2cb3022005b444215b4ac43493db7e424de3774c1479e702ac4efa041ddd4cf7b7556904","0x695DB6508D66bF111d8D96aDaFfc5356B7f4581f",!1,!1,null,null],["ethereum","coinbene_future_token","CFT",8,"CoinBene Future Token","304402201dcbd8107d36b5e36b56e004d834b0c7aaf2fee54f6660a1551b0d66d529f7da022004b1eeba5c6e89c834a6f9bf28f866c434e0ab2ec45f110851d3edaa4ad1ad69","0x9B683d81B8334325bCC1802D47DE65571993Fe89",!1,!1,null,null],["ethereum","coincasso_exchange_token","CCX",18,"CoinCasso Exchange Token","3045022100c67a1ff90302bd705cddfbbcd4dd9391ae15ab0bc2e0422f779f2255e909b0720220032cda71da48a43df96048f1682c020d1cb646a9bd8819265ce235d33b9182f0","0x395dc9A82e3Eef962b0355A3d4E6819e9Af776D2",!0,!1,null,null],["ethereum","coincrowd","XCC",18,"CoinCrowd","3045022100f6f460a24c18a0ce782273bde3549119edca46bc7ab4f477025408a86662ba0002207174c8846a3c56ee099baa33950a05b0b568c0e12a0092805e56d987d5a4ed20","0x4d829f8C92a6691c56300D020c9e0dB984Cfe2BA",!1,!1,null,null],["ethereum","coindash","CDT",18,"CoinDash","3045022100a60bc1c373e0984532f4b0caa09bd807769c7b1af67b6f3783a2149b7b9380af022046c778c24607d5e912ec2b6063ed0d0b7c1954c7ed21b59384702f6dcb1673ea","0x177d39AC676ED1C67A2b268AD7F1E58826E5B0af",!1,!1,null,null],["ethereum","coindeal_token","CDL",18,"CoinDeal Token","304502210096f9420eca98b4e797f6e8fc417a7238410804af205783119bae6070360db8e502200e62c73aae58c531cd91e16a69d441b464ea13c89a76021313b0c5c79df2c42d","0xcb17cD357c7acD594717D899ecb9df540F633F27",!0,!0,null,null],["ethereum","coineal_token","NEAL",18,"Coineal Token","304402201081a48182e70a486871d9b065093303e31f933ea8944bd0af76d5c1d0a5028b02204107130c15175e1ce9e61236b7e4a67223c7b818f2bc3be17e13faa028cb646a","0xAcCe88F5A63A5e65DB9AA7303720bE16b556E751",!1,!1,null,null],["ethereum","coinex_token","CET",18,"CoinEx Token","30440220726aa8281d01ea39d49948cc592bdd6fd42ce14af4c8326f0d4ef21e6c96d7910220556c506faf9f30576e1b4f284f03391d3a397d40af418cd6133397fa0680a1ae","0x081F67aFA0cCF8c7B17540767BBe95DF2bA8D97F",!1,!1,null,null],["ethereum","coinfi_token","COFI",18,"CoinFi Token","3044022021ae61232e2fae6e69760dc45dcc398f902a257ebdc1c84b0c9399d1f9ba67e602202a24142b2dc1592e2d40b79ac7cd950676e9bb33c44a3af6d8d17ce9b0b251d6","0x3136eF851592aCf49CA4C825131E364170FA32b3",!1,!1,null,null],["ethereum","coinlancer","CL",18,"Coinlancer","3044022008e224af9ec4f099988ed0028870fdec682c607afebaf5a1eceb18651142bcab02202b87ec4403fefde11ad40430269d422518997ed279688b0c0156556de4ca0243","0xe81D72D14B1516e68ac3190a46C93302Cc8eD60f",!1,!1,null,null],["ethereum","coinloan","CLT",8,"CoinLoan","3044022007a7e7bc81f320a6848447fc18ef79e85e52a54816ed3e2a03f5151a84bc88fa02207918a8086b5f41abf50b65874957af697f206f7c405c5d9294f7dd13ec1f2594","0x2001f2A0Cf801EcFda622f6C28fb6E10d803D969",!0,!1,null,null],["ethereum","coinmetro_token","XCM",18,"CoinMetro Token","304402207eee93e344d6b75ccd97ebec72aca4c099b0910e92a626b21392217bdc8879ed02203f13299f15fb67f1a4dc474cf8e71b42168a71e6ad7f8081a9e17be534333970","0x36ac219f90f5A6A3C77f2a7B660E3cC701f68e25",!1,!1,null,null],["ethereum","coinmetro_token_old","XCM",18,"CoinMetro Token (old)","3045022100d7915d913cca887a6bed88190606fb121342d688925eb0b9bbdf7fbdef481eb8022000fac0c950cce09e63b218881955fcf1af6129a5d5f7a122fbd383d37c062ee7","0x44E2ca91ceA1147f1B503e669f06CD11FB0C5490",!0,!1,null,null],["ethereum","coinoil","COIL",8,"CoinOil","3044022037ab41b56dd3eb1eec4cdfe29cdae0c605ba984dfe10d46e524d318f1769bf9302207b8faa2e41a142230df06a078e4afe67912beee61f79c7d4fb7265f1ac10ba49","0x0C91B015AbA6f7B4738dcD36E7410138b29ADC29",!1,!1,null,null],["ethereum","coinpulsetoken","CPEX",8,"CoinPulseToken","3045022100d3f52e3cf8c7590a1ba9272129f9f31d5783ec7f292dd72e92b8560654ec4e47022014df0a0304529b2ae222a24c8f7bcad83a0b666900df169efcec188ff5c53c6c","0xb787d4eAc8899730bb8C57fc3c998c49c5244ec0",!1,!1,null,null],["ethereum","coinsbit_token","CNB",18,"Coinsbit Token","3045022100b960222df03b5104fc50ef6eed164606f40cdef0575d5e618082415b299eb8aa02200e9495e744ef1b4456be289c1a348b54b000f894ebffacd6b45a6e8cd6c9f655","0xC538143202f3b11382D8606aae90a96b042a19DB",!0,!0,null,null],["ethereum","coinscan","SCAN",9,"CoinScan","3045022100f3c7f149ebcd7bb63c8c3f03740c7b0c3295b88aeb72b372bd34841d3d312a7e02207948498a257ef55f4aabc1ccb00837adbbe3f42d3da9eedc6db19cd549a4b3a5","0x234D51eE02be808A0160b19b689660Fb7BFA871b",!1,!1,null,null],["ethereum","coinshares_gold_and_cryptoassets_index_lite","CGI",18,"CoinShares Gold and Cryptoassets Index Lite","3044022064e2a9cfdd4495d331a18590a11cc8d4210702958fb2df452406770e27ebfc70022047d7cbc55a14e767c2dc9ab317e83912ca27fbd7f842b9c1c6d4260165702ee6","0xAdA0A1202462085999652Dc5310a7A9e2BF3eD42",!0,!1,null,null],["ethereum","coinspaid","CPD",18,"Coinspaid","3045022100a8e988f7184860d9535f5890bfda708911b3bff8ac0389122a56c354159771ec02206d13fe6ead7b79f174293630521895a67e1236137d50221eb0c75743054d9073","0x9b31bb425D8263fA1b8B9d090b83CF0C31665355",!1,!1,null,null],["ethereum","coinstar","COINS",18,"Coinstar","30440220395d0eb206f3e83fcdd5dd35e4276bd682e3daca739ef9c0c1d242ba390a42a7022077b9c1cd9ce740df78a22eb0c757aeb198de2474150ab5f3385232ec5b97685e","0xa48D3B79F43477224933E492E42f5CACf4091ECc",!1,!1,null,null],["ethereum","coinstox_token","CSX",18,"Coinstox Token","3044022020267ffe5df27deb6a37ea7fc9ac54092e74167c1f159e15eaa1872213f355ac02206c3882509ea22f3660432aad8a749db39ca1709946b2e113f3f1e7991475dc3b","0x3aadc3BCe49724ce299fD9F3850211211c399C8c",!1,!1,null,null],["ethereum","coinsturn","COVERC",18,"Coinsturn","3045022100d128d13fd85b68e1ca1e5056d010d5746e44dfa4721e3d0160ecc469b46103c8022036f44bdb9867a7b97e8ac3d43cbb03267e8070f1bbf84e637db295e9528c6b94","0xe93668a56DB4273A7CC079423A8F6A9911Ad3C1D",!1,!1,null,null],["ethereum","cointorox","OROX",18,"Cointorox","304402206dffdae225840882e7d03cff91172e0ebc150bbce9308a863fc6aa0abe9fcb43022034c78251d88280c10b4f350467aa8b7f95f2160e1872722d00219bce2e12ffa3","0x1C5b760F133220855340003B43cC9113EC494823",!1,!1,null,null],["ethereum","coinus","CNUS",18,"CoinUs","304402206d4fceeef8ce93840081724d1c515924445815cc20e55c065ba01592d5187c11022011df9b3a6e7f15ad2c206a76b3352eab41fb97d770e22c5f2dbdf18b9279a426","0x722F2f3EaC7e9597C73a593f7CF3de33Fbfc3308",!1,!1,null,null],["ethereum","coinvest_v3_token","COIN",18,"Coinvest V3 Token","3045022100a80477e64bdfe778a82f5ac584fdef2d29f671f578d2ad5ea2f0dab25ac4a7e90220700dbe5cd6e16e38cb2732d9b2710701875dea5347be93d8ff8cc68897ab4712","0xeb547ed1D8A3Ff1461aBAa7F0022FED4836E00A4",!1,!1,null,null],["ethereum","coinviewcap","CVCA",9,"CoinViewCap","3045022100abe91aab7faa60e48abd6cc19e44780f9070732bde14a8ce06829e8515807a420220482ecbe1e3dc44d055969e04ed3b066c6141de8d385b60f80732818064c851bb","0x22b59a7387F7D25fe2b1c692Ee825e1802E6E3d5",!1,!1,null,null],["ethereum","coinwaycoin","CAN",10,"COINWAYCOIN","30440220463c3ea9f6e8c94bfaeed32ce1d00ae5555c50e5c0e5dfd917c61796c17d6160022068cd82bf4f58c1c5f89d0ec73c58ed232a8f12b63237ccf032b229c649db56e1","0x917FD2f7378FF479419dCB56C5cbB445fBbF902A",!0,!0,null,null],["ethereum","coinweb","CWEB",18,"Coinweb","3045022100baf2678b8170b8a4a9f80f9fcde410db8f76b42d5883eed8fdab5eef3879f08202200e7caaf127c6c0bfef77a5efbfddb2aee28b790d4b8ccd19bf4274e3edc79813","0x505B5eDa5E25a67E1c24A2BF1a527Ed9eb88Bf04",!1,!1,null,null],["ethereum","coinwind_token","COW",18,"CoinWind Token","3045022100e389a705676ab339d9f2f556b8896e8e174571f3a52eccca510ab09dd7dc312f022032a0499d8d182a74145cedfb74ae9717d504afa6c00e85c672f09eb673671eae","0x34965f73Cfa05Bf8d8aF37cB4af64Fa950605Ea8",!0,!1,null,null],["ethereum","coinzo_token","CNZ",18,"Coinzo Token","30440220324617f0392301eac0b6d4603ed8616411c28e45b7379d59d6fa537b31cdaad402204594d4c72cf6b86489d70c65a0d071869ffce697ad782deecd66db19736bb257","0xC1965d7D18f37062b18ab3d5D1fE7f69873b30Dd",!1,!1,null,null],["ethereum","coinzoom","ZOOM",18,"CoinZoom","304402202fccbaec137a8bf417911875977625d8b63dcb9a606a9a7038dbba6b138412bb02206d9fce5483d9045dc2a6294ba45ac41d7ce63dad90744ca800c41462375b3a41","0x69cf3091C91EB72DB05E45C76e58225177dEA742",!1,!1,null,null],["ethereum","col","COL",18,"COL","3045022100829ae8bea8a264899a9dc90a3a62f11d9b074314b67c0c73257e56d12c46f0e6022040eb9d61c13cdd2ea08979d27e828f4490bc16f87a42fb2f196952d5588edc6d","0xC76FB75950536d98FA62ea968E1D6B45ffea2A55",!1,!1,null,null],["ethereum","coldstack","CLS",18,"Coldstack","3045022100ca2c767b225ee65e3844f82eb72ac29d553f193b199c47112bb07fde344690e902204c6f5548535c3294f040838246639ccddc7f03140c7905d7045aa84d4c3ba72c","0x675BBC7514013E2073DB7a919F6e4cbeF576de37",!1,!1,null,null],["ethereum","collar_dobe_defender","COLLAR",18,"COLLAR: DOBE Defender","304402206a68ea4a119c6dcd44f04b3e87fd061d54208db7fecb665209aaa8a480279bfa02201c03a03e2464b4119f819e292187257e673831576cc761be83459555eea2826d","0x4cDe0dD772eafe365728e6434E55e2C975dF5f0F",!1,!1,null,null],["ethereum","collateral","COLL",18,"Collateral","304502210092413995785eda1b4ab81b67d2215c5e22fb41964f5afb1d430c98af59c5a01b0220387bf34dda69637a3b1a211abeb59b2f3a3243cfb0d83fde63d30eb9e85f2bd6","0x957891C11616D3E0B0A76a76fb42724C382E0eF3",!1,!1,null,null],["ethereum","collateral_governance","COLLG",18,"Collateral Governance","304402201185ec5b9325a7836ae4eda1200a0ae333deb6a6570fc7db83054bf1b6e851e002205cea2df60ceada324d100029e4786a67510877e086c43a8c059f338342f3dbd8","0xC92276872CD1907d2e00B58A81a9bbd275B0a4ba",!1,!1,null,null],["ethereum","collective","CO2",18,"Collective","3045022100f008233e79a36e355c4488a6f6bbd1d2cbc0570dcdeb7cd146a7084c7359526a022069303609a17808c9b1beab27f695e1437c31e526ee30dd5fc3515e7b8131716b","0x75739d5944534115d7C54ee8C73F186D793BAE02",!0,!0,null,null],["ethereum","collector_coin","AGS",18,"Collector Coin","3045022100cff844c1c8ed476c08af2995b68ba3294d607216bb24dd745f3d49f3a2d8b035022043c1e798490d424bb8b5a9e6df04c45a576956188f072b26bd0e406f532ab019","0x667Fd83E24Ca1D935d36717D305D54fA0CAC991C",!0,!1,null,null],["ethereum","color_coin","CLR",18,"Color Coin","3045022100f67d5ac55b5fa1c85761a4412ab4234298b350a2cdd4b0d0237c8ed95bb340ec0220784c637115e952d67981911eefeaa92671a3405c6041109e71df45e222b0251a","0x2396FBC0e2E3AE4B7206EbDb5706e2a5920349CB",!1,!1,null,null],["ethereum","colulocalnetwork","CLN",18,"ColuLocalNetwork","304402203a0bbe510961abc5989cdbffdad4a7980e02672776f3594d92f5489f21874d97022063864b0de4e2386b6a26a4d62d58e42d41c84ace6873dab8221c82194336de2d","0x4162178B78D6985480A308B2190EE5517460406D",!1,!1,null,null],["ethereum","com","COM",18,"COM","3044022052081835d0db0754bf046b3939e5e0e8617fdfa91852751f9598b8f90dcc14eb02204d258b0a331136510a55b30b3065f2f26a20c30abff29ec89035cfe992a5c57a","0xCae838187C1f813Fc3BfAE6387Bf34aeACB5bEF6",!1,!1,null,null],["ethereum","combine_finance","COMB",18,"Combine.finance","304402200246da1fea13a5339b122a884940f54bc2ada20689e42fd3f0faef627a97ec2902206908c4ad1bb731cc21689c49b987c76fa928e967279da85c6782595db7640aed","0x7d36cCe46DD2B0D28dde12A859C2ACe4a21E3678",!0,!1,null,null],["ethereum","comboos","COMB",18,"Comboos","3045022100cfad553ababa1d72e757a759d4fd518ddc058bde246192b7fb4919415d4d4ec002203a2aba16aa2afcec41a175f2fc251da18162bf8005eab66268b105a46f57c877","0x7C81542ED859A2061538FEE22B6544a235B9557D",!0,!1,null,null],["ethereum","comdex","CMDX",6,"Comdex","3045022100d2c1e571f5029e32e6fec3edd23cbaa24f93b87e89c207634c2781313d726a60022076d0f844492509deea3485114608ebf1b9f9e1309609ad5133de40d50fe26375","0xDedeD2dc963C7461833633C6F45BF2E21eEF8bA9",!0,!0,null,null],["ethereum","commerceblock","CBT",18,"CommerceBlock","3045022100c513c3b9310d3f3a010b28d46c2ddc8419dca423660e46906e284fea23e235240220227778a548ffafc1d2951992cd302557db0a8595fbca57bf26902fe1b57ddbc2","0x076C97e1c869072eE22f8c91978C99B4bcB02591",!1,!1,null,null],["ethereum","communication_development_resources_token","CDR",8,"Communication Development Resources Token","3045022100e8a9d3950cedffac3c6b5c8c8ba7129ed397dad29718528d07a72b68affd924a02204f843ebe29dad2046f9be00a71ff39e3c27fe50b91bc9ec9aa3ca0757badaf8a","0x5A9F5992085E8a25A45716Cb6F8fF5b57a05d332",!1,!1,null,null],["ethereum","communifty","CNFT",18,"Communifty","30440220073bc56679e7f3d4e13975401c7cf5b786b5647bafe36c68e6d0ed99da780d8902203bdbe41fdfd2167e92fcde3beb059e0238503139c9867f705e418ed5afe7ce5b","0x8e2B4badaC15a4ec8c56020f4Ce60faa7558c052",!1,!1,null,null],["ethereum","community_business_token","CBT",18,"Community Business Token","304502210085303db82edc63c557f17675e502706a49f5aeafaf3fcad21b1c0616f3daadbe02207a13a1a852b271624c31b6e81449e2d2156385904d72b6877789e6ae9e349d62","0xfA93660C3f6a848556Bb8E265f994160A1F2B289",!0,!1,null,null],["ethereum","community_chain","COMC",18,"Community Chain","30440220776f1d2d988aa35315d124b73e4652af6ce2cec541e1eeaacfc8af9e5aaefc8e022008d83889ecb950587ffa27a7a74b7f80348c9736f428ff52ea11cd70124cc89d","0xA5e99ad202bDd71D3518306Cf4dD163261981af1",!1,!1,null,null],["ethereum","community_token","COM",18,"Community Token","304402205e8e75c3ce00614f0efdb61d9f33eedfda69e808e9cdd0299801163c8004a36802204e520407213d83365ae3f0b63fd0486b00f123037ca3cb3838ce45b999ae80a7","0x1B4052d98fb1888C2Bf3B8d3b930e0aFf8A910dF",!0,!1,null,null],["ethereum","complifi","COMFI",18,"CompliFi","304402200f633a311517482453689215a09a7e2ebf3ad85d47adcff7e1f985d134a2cd6a022050bab7c6bc3743b4427f422fecfa589b36ce9772166da06011c54e13fdf2afc7","0x752Efadc0a7E05ad1BCCcDA22c141D01a75EF1e4",!0,!1,null,null],["ethereum","component","CMP",18,"Component","3045022100c6907e02539220800fb651bfa51f571a4ab8d351e762db65919969e7f9aa033e022079a23eaff0c91220f4c9d5f995d3846c1164c0dd09938b0c7807642a456ffef5","0x9f20Ed5f919DC1C1695042542C13aDCFc100dcab",!1,!1,null,null],["ethereum","compound","COMP",18,"Compound","3045022100fe47a50f984b5a7e58c607b947b31a33647c61ec68f6e546459e67376683908e022022e2047be35367e054ff736120542d857a4c85d607ff010a10ce50e768d22f25","0xc00e94Cb662C3520282E6f5717214004A7f26888",!1,!1,null,null],["ethereum","compound_0x","CZRX",8,"Compound 0x","3045022100eb68c48de09705dc36f6164ce2108fd80d3e2946f786be2e56034843a5c99dcd02202cd5983255b418c90bdec605c2a1d105f148d3c1cdbab74cc0856fde6e601475","0xB3319f5D18Bc0D84dD1b4825Dcde5d5f7266d407",!0,!1,null,null],["ethereum","compound_aave_token","CAAVE",8,"Compound Aave Token","3044022055032979396d19e71293b64abc161248717f1be5bf67506a335b2dd28986afff02207ab81376e2165fdb1ca7b6cfe6c80a05badfcff29370a6a1e469bf00952b65cd","0xe65cdB6479BaC1e22340E4E755fAE7E509EcD06c",!1,!1,null,null],["ethereum","compound_augur","CREP",8,"Compound Augur","3045022100cf3c9ef5106751f195c1b85304d77b0e2fca40d38bb2394f5d8208264077999002203d29a7e41ba0835024ded365f1122de21042ee937d22c9b8b2a26194cc889aec","0x158079Ee67Fce2f58472A96584A73C7Ab9AC95c1",!0,!1,null,null],["ethereum","compound_basic_attention_token","CBAT",8,"Compound Basic Attention Token","3045022100a8f50cf65aa24d7a534899c33d3adf2491f8d950eb8761d1dab0192aed7f82080220370aba205fde09b020aa48731addface3e2cf64784aac3b863c843e728483b2b","0x6C8c6b02E7b2BE14d4fA6022Dfd6d75921D90E4E",!0,!1,null,null],["ethereum","compound_collateral","CCOMP",8,"Compound Collateral","3044022041421ecbde0eb78587e66a2b4366067f64248e265157f222d459fa515be6acf002207dbc3c9eb6ec5ca469e553413cfcbe7e4d3356bbeaf74b66d0a7a3e49765b885","0x70e36f6BF80a52b3B46b3aF8e106CC0ed743E8e4",!1,!1,null,null],["ethereum","compound_dai","CDAI",8,"Compound DAI","304402207a0defb2d4431f5edb96547fabce99383fcd4a497301aefadac95bfe74a19eee0220053f62590f73efb4b9ece02d00131ee29fd92dc752758806aa7d38b779edfd4f","0x5d3a536E4D6DbD6114cc1Ead35777bAB948E3643",!0,!0,null,null],["ethereum","compound_ether","CETH",8,"Compound Ether","304402205c9b113043fa6aa8d7d01f8eb14ad7279a38860c2b5681feabc65192dc2986e902207feb3d16d1298ed2a504109feebfc00fb7081bd7688225ef391d1b7505e45071","0x4Ddc2D193948926D02f9B1fE9e1daa0718270ED5",!1,!1,null,null],["ethereum","compound_maker","CMKR",8,"Compound Maker","30440220712da0bd0b754117322c64da0e55a053f0fb5294a7e6e847a530b8b4e4146b8802200f984128c406ddf6e3f9493c8cdcc5e8833c8b974ffbb5b77bf5078b642fa4bf","0x95b4eF2869eBD94BEb4eEE400a99824BF5DC325b",!1,!1,null,null],["ethereum","compound_sai","CSAI",8,"Compound SAI","3045022100b69e1be95918a91768b4f044366936527972ee9b6f5ac7ffc2a720f4513c02230220155c48a73b9229fa728f9a103ff9f7953591fabd7332626f8f590cc710e4f8d1","0xF5DCe57282A584D2746FaF1593d3121Fcac444dC",!0,!0,null,null],["ethereum","compound_sushi_token","CSUSHI",8,"Compound Sushi Token","304402205923ebbbd58508dc2a673a39b004800c5382081b627aece04bbb1861313391df02205fb20bf3510c2aae4c266cca5e7f718961d9eca2ee6eef803843ba1121cc1301","0x4B0181102A0112A2ef11AbEE5563bb4a3176c9d7",!1,!1,null,null],["ethereum","compound_uniswap","CUNI",8,"Compound Uniswap","3045022100bd68fa26ead9a666b4c5bb67c4c5dec3bd0841e3bb118934195bef1e9f07407e02201384a72fbf3c933d17e54aa6f57b936bbd34a73c4ead28152bb4a71790e748fd","0x35A18000230DA775CAc24873d00Ff85BccdeD550",!1,!1,null,null],["ethereum","compound_usd_coin","CUSDC",8,"Compound USD Coin","3044022058ed25c06fd745d385e435e7eec56965f559e71a790bb57bbec84384d36fc23d02202b32e45fa34a936851b0fcc15f661dc274fefdca5d3a769d6708144336daf04c","0x39AA39c021dfbaE8faC545936693aC917d5E7563",!0,!0,null,null],["ethereum","compound_usdt","CUSDT",8,"Compound USDT","3045022100dad508227e3abec13a80691ee03bf64684cd87e1669e53c6b9c21403d742b4640220516824c46e3d424a7a2ba247bb0d1821754874a91c301996aa11c39321e597db","0xf650C3d88D12dB855b8bf7D11Be6C55A4e07dCC9",!0,!0,null,null],["ethereum","compound_wrapped_btc","CWBTC",8,"Compound Wrapped BTC","304402204cc45aa3e144f905d53eb63c412c6762f8c9251b01f87c892c39fa414462b51a02207ffebbad5f188e7f68793b034b912a5e6524edee075fc161699961997484769c","0xC11b1268C1A384e55C48c2391d8d480264A3A7F4",!0,!1,null,null],["ethereum","compound_yearn_finance","CYFI",8,"Compound yearn.finance","304402200afc54f8bd828e5632b83a851d6cd141bc62b3722a6842e119cb1313de5f3b8f022029bcc535ada8649cc4b91b63869a645235da429e3b003269f30a840eb6a8d87a","0x80a2AE356fc9ef4305676f7a3E2Ed04e12C33946",!1,!1,null,null],["ethereum","comsa","CMS",6,"COMSA","30440220183fc2f79306b3555fdf0b9e116dc3bb87c3796cbd00224e937f5caf08a60083022019617e33510be93e1250a61fafee978163b3a13a7a5a70c4d18212e6bd3a3247","0xF83301c5Cd1CCBB86f466A6B3c53316ED2f8465a",!1,!1,null,null],["ethereum","conceal_-_wrapped_ccx","WCCX",6,"Conceal - Wrapped CCX","3044022047f4036431cbc4dfbe3837714e21ff29b7c571bf95e4b8f686224a39abe9edb9022006dedb1172b7eb839cca438df58a75a1968ff9fbbd2fce63287b5a6ed86501d7","0x21686F8ce003a95c99aCd297E302FAACf742F7d4",!1,!1,null,null],["ethereum","concentrated_voting_power","CVP",18,"Concentrated Voting Power","3044022074684fdf3632b3db2d6965122698fa62cbff4c64c47ab52d2e83f3c32f1d644a022049a0f92abd0f9303de63776447f2b4f0ebe1a460f9d1efb0aba1aba1d2e03717","0x38e4adB44ef08F22F5B5b76A8f0c2d0dCbE7DcA1",!1,!1,null,null],["ethereum","concern_poverty_chain","CHY",9,"Concern Poverty Chain","3045022100cde38273af24d3940785e386af61662292c9843fb8cf05ca88ed70b181e48d85022052861a7b210052425a3fb6087ecca757cb7f004e3794247f90b146b2ff22e407","0x35A23BC27c345b36DeE700a256F69C6334030971",!1,!1,null,null],["ethereum","confideal","CDL",18,"Confideal","304402203574ec56c75cde31e99e4f939c59c3b9e3e096409b4681f937234e0043b49bd102200364b4602a265b90df704dc8c4ca54b4696479c2a4d2b2bbcd71dc957a3aa476","0x8a95ca448A52C0ADf0054bB3402dC5e09CD6B232",!1,!1,null,null],["ethereum","conjure","CNJ",18,"Conjure","3045022100ab03220223af5654f3a5ca4ac2b7f3803c4a22ee8b29851957fc05a1b44962850220536b0a5ba1691f03fc3a859fd20fc4eb8437bd161af00d3c2f1dde7334b15387","0x00A55375002f3cDa400383F479e7Cd57Bad029A9",!1,!1,null,null],["ethereum","connect_coin","XCON",18,"connect coin","3044022003faf1323c74332d00a2fcb3cfebc9c01f2f1f2d0e6552a692eb729aded4a79c02202bcc0b320f794f28e32ee7da1dd71e0f497f6a221574d4119f427c0b0edb7a92","0x015df42d36Bc851c7F15f80bd1D4e8dBF02aed0c",!1,!1,null,null],["ethereum","connect_financial","CNFI",18,"Connect Financial","3044022019e50f3d1acf8d4c51eaf48d7c65883f5b755aaed41cfc1eb71c7a8cf6b39c9502205a442a2acaaca56fafde845aad53e454fd2f0df385b3dd784e0765b256d8d97a","0xEABB8996eA1662cAd2f7fB715127852cd3262Ae9",!1,!1,null,null],["ethereum","connectjob","CJT",18,"ConnectJob","30450221008e2813d3e2733d1f0ba21f8a9971ca3b4da209a5803ec94f8c1f41a37b49ae8e0220720b61cbf7f4966a5ba46c89d71b76362424ed96c907de41584eaba447cbb88f","0x3abdfF32F76b42E7635bdb7e425f0231A5F3aB17",!1,!1,null,null],["ethereum","connectome","CNTM",18,"Connectome","30440220292f10f151a2e5dd24e122535ca540bf24dde48829f740482229718989d53c8c02204a87088364908da441d19cab3c45d25663d5ed342afe3c71f0604f24554520c8","0x0E5f00DA8AAef196a719d045DB89b5DA8F371b32",!1,!1,null,null],["ethereum","consentium_coin","CSM",18,"Consentium Coin","304402203f0f7db1817b8703e39822b1dbcfc1478dc024ce3b32950c275917bfab613cb2022022a85566060032ef42ace080f5e43de766af56b1fcf5e1f53271936b6e75d401","0xD8698a985B89650d0A70f99AD2909bD0c0b4b51c",!0,!1,null,null],["ethereum","constellation_token","DAG",8,"Constellation token","3044022007244abc502f1fb899c4e40f751e8fd5723bd52ca609243db9ee3083fd05c0e902205fbe97930f3538f0d4a146a07f507878939433fc87abdc966084ef739786efd9","0xA8258AbC8f2811dd48EccD209db68F25E3E34667",!1,!0,null,null],["ethereum","constitutiondao","PEOPLE",18,"ConstitutionDAO","3045022100b19c4ac5eb281b71443ebdbfabcc245f7d47e21aa7b79750e89b7de28809bb6002207adf04abc3e3d11356ffddc59e47c3c0306d72f062fec1eb26615eee39bbee37","0x7A58c0Be72BE218B41C608b7Fe7C5bB630736C71",!1,!1,null,null],["ethereum","contentbox","BOX",18,"ContentBox","30440220547ba6438722d8ec8907ffdb8b7ffdfd6a4902963f41f0eebf46d1083c3b0c1302201c2f934ec4c81de81a920f3283b4d031256a6de6be3f4760fcf7fc30d71d8902","0x63f584FA56E60e4D0fE8802b27C7e6E3b33E007f",!1,!1,null,null],["ethereum","contentos","COS",18,"Contentos","3045022100ae18f557f06fc9c2acf6a9ee9621d9b42c971d8145f73b6a3c5258a42b70327302204140996cf67ff69f6b7f83aad5392872762444cc85ef603cf3f68913603ad324","0x589891a198195061Cb8ad1a75357A3b7DbaDD7Bc",!1,!1,null,null],["ethereum","contents_protocol_token","CPT",18,"Contents Protocol Token","3044022001e07eb65462bab04f5f88fe57a0a9dab9af7b1e7e27fa353af0b524b7c9b94702200b11f6b225eaac69a80c30cceb5ca419dcc35237ad6af1874ad7eafa05eb6a0d","0x9B62513c8a27290CF6A7A9e29386e600245EA819",!1,!1,null,null],["ethereum","contracoin","CTCN",18,"Contracoin","304402206653900e3d2064ad59bf060d6006bc4243e07d2e6b8d1b19200465fc19dc237f0220132be7795772b8cfa897e60276c7f8b59b92df5dccbd7502966c7a5f5c728958","0xFD6C31bb6F05Fc8dB64F4b740Ab758605c271FD8",!1,!1,null,null],["ethereum","contraction_dynamic_set_dollar","CDSD",18,"Contraction Dynamic Set Dollar","3045022100f3ad483584a409c4428c1306722232a8af41e336ccea80316ed876b07e4d94d102207e6b13b527b6d719a9cf16511e0becf34e988dc0b167baac653a6940cc33dec6","0xDe25486CCb4588Ce5D9fB188fb6Af72E768a466a",!1,!1,null,null],["ethereum","contribute","TRIB",18,"Contribute","3045022100ee8a63a772cb3ec63d07ca0dd1adb10c27708bbb9619543c089430da218a626302203c2c05453e62a5566572a16442f592c6fa604a0fd497d2c3d8213dddc8bd798b","0xe09216F1d343Dd39D6Aa732a08036fee48555Af0",!0,!0,null,null],["ethereum","conun","CON",18,"CONUN","3045022100c0b92da415c2ad247cb82a86edb84e4b5614fb130b7ab09dcf42c2968d9a687e022066973ecb289af48523f063cdab8948e2efa9eec8bcac2f69f3bc3d7b3490f5dc","0x4Dd672e77c795844fe3A464eF8eF0FAAe617C8fB",!1,!1,null,null],["ethereum","convenient_to_go","CTGC",18,"Convenient To Go","3045022100bf2dfb4dfb16a424de16cd566afb6b8b25fc9bc74a24743c94c5596c7d40890902202b919bda6debd245ca27d8391a82b8020864f01fb9928b2cf09fb4648c9f3c8d","0x9E7D29bd499B6c7da2a5B2EaFCF4A39d3BD845D1",!1,!1,null,null],["ethereum","convergence","CONV",18,"Convergence","304502210098e16fdfc04df9d9e7e471f15ebe3fce603ccc035ae761ce3b3605b4d668bbe6022062bad40b079c58bfc149fc78b508ac8f8145c209bce9ee5195c640035d46abf6","0xc834Fa996fA3BeC7aAD3693af486ae53D8aA8B50",!1,!1,null,null],["ethereum","convex_crv","CVXCRV",18,"Convex CRV","3045022100f7b7a79503f527f46cadada6ef3193774f32dec2a9cafd5c1b8ef833305feaf6022010c7659dec204f48500e7888dfba8aa6d1ce39b0a776e655e816fd37ac88cc99","0x62B9c7356A2Dc64a1969e19C23e4f579F9810Aa7",!0,!1,null,null],["ethereum","convex_token","CVX",18,"Convex Token","30450221008aea63878584f85ad366fecddd97f4cdf7f00ca1e49901eb66c693d720e64f9202203591c4c5ff3783b564c607bc20c27d7d06df9d2c6c1d2b5a41da8e9548a67da0","0x4e3FBD56CD56c3e72c1403e103b45Db9da5B9D2B",!1,!1,null,null],["ethereum","cook_token","COOK",18,"Cook Token","304402202f6284d1f8407c10241450b75546d4eec412fb1343e5c3d48ac1c49b246d81b20220686802c0b0b94e4bcd90cbe9da01a6f0e4b40d1abf193ad91be433c9fbe696b8","0xFF75CEd57419bcaEBe5F05254983b013B0646eF5",!0,!1,null,null],["ethereum","cool_cats","COOL",18,"Cool Cats","3045022100d76af3189ff0d9528de17e831bfdb74b755c9af0f07b3ca20d98c9c985885cbd02206c10103434a9b44ece89fb7b75e47c31f18ab1c2b83a98d781e38f4204ec708b","0x114f1388fAB456c4bA31B1850b244Eedcd024136",!1,!1,null,null],["ethereum","cool_cats_","COOL20",18,"Cool Cats","3045022100fb9b212b8183d7dd1726ec1a550f860ac8a1b9859281d26f7be2da733a8f942502205a86f21c4469cf267ce638d33d35864ee4888ee136c7e06d3804b0d6020e343c","0x2Dab4cE3490BB50b2EA4C07Ab1B6a9CfE29D89B3",!1,!0,null,null],["ethereum","cool_monke_banana","CMB",18,"Cool Monke Banana","304402203461396e03074c6a9a2b4554a0ee9d1bf91dc1a69482030c2a20480847c52e8d022000af9771a6ab5bc30d391a889680a030cdedc2d43add4438ee7c070ba0479100","0xc6dB556FD9EC09bAB6DFea320e52D8476F61d424",!0,!0,null,null],["ethereum","coomcoin","COOM",18,"CoomCoin","3045022100e560fa6dd8cf1ddc5200001da4c7ecbbd4c9603f5462dd7dab7c455c26db93f402207462cacafa1034e1b5ff0608d7bc0b19581218cad0f896fdab97d42b6e6d7ae8","0x2f3e054D233c93C59140c0905227c7C607c70cbb",!1,!1,null,null],["ethereum","coopnetwork","COOP",18,"CoopNetwork","3045022100f202ab0d09f9db23888579d527a33c2165fd3b88a8c2284c9b3fdb94b3d74bb102205ad9427dcd98886905ccd0b0006e322109237e4e91c55d8d7be1360b12435d6d","0x689CF5f8DD09BBB4417514C88909bb64ebA2547D",!1,!1,null,null],["ethereum","copsfinance_com","COPS",18,"copsfinance.com","3045022100b93e1c04b2e7dc16382bc775abb64134b404a6c0735891a93867d70764b1e67002202972999961acd7d69b3b1e055e02eaa42810fd4abdc2a9450a074f40841aae6b","0x14dFa5CfAaFe89d81d7bf3df4E11eaedA0416618",!1,!1,null,null],["ethereum","copylock","CPL",18,"COPYLOCK","304402200920195c9270d8bd75dd401252149a9aa934b072c5823da87d0ca19b766476db0220535ce16ea9a9bbaeaec82173c3aefb07d196af7374722dfdacc4a3d11d31d81c","0x248C27F814EF2c9C51c26398d09715Cd35142fC4",!1,!1,null,null],["ethereum","copytrack","CPY",18,"COPYTRACK","30440220736b62914c2452734c19fdc66dd1a4c96cca1125ee61bc58f6b0be5a19a9522102201ba9b8edf0d7ca9299d79443cd3a477f833aba893c9a79c0d11f6624cb8b2e49","0xf44745fBd41F6A1ba151df190db0564c5fCc4410",!1,!1,null,null],["ethereum","cor_token","COR",18,"COR Token","3045022100e02adfc22b87feaeb342d328542c8e84abcc8789623ef0edcb63c9675601feb402201eb3a1b3db6d70a16cce43c032a1885ec26f7f9531935e1b8d4fd6714940e8fc","0x9C2dc0c3CC2BADdE84B0025Cf4df1c5aF288D835",!0,!1,null,null],["ethereum","corgi_inu","CORGI",10,"Corgi Inu","30440220564a5a56b54cd0d709b9de27ee01b4efd9289d01ea79d7dbd48b2d59fda5423802202daf30fed6db8b94dbfc3fd6d0283a9a2a586df4471f052e204d940a08f4d604","0xE50006781F435AE43096288334AFd9Ae5Ba50065",!0,!1,null,null],["ethereum","corionx_utility_token","CORX",8,"CorionX utility token","3045022100d782a52c7e485700ebc913e85bae471400e7d4bb0834816a7c22c1a9ffc8e1ad022071e1e211b377088c1b8a19ff22572002a9a95f384182916d478932e40ef12c40","0x26a604DFFE3ddaB3BEE816097F81d3C4a2A4CF97",!1,!1,null,null],["ethereum","cornichon","CORN",18,"Cornichon","3045022100db5134e635f83250b607e222923c150cf9196ce5dec948cf381eee2750f5928c0220542ac30272c75bf847e17b9a7cc0c402a8a8d4b20b2423e19efad4791f209081","0xa456b515303B2Ce344E9d2601f91270f8c2Fea5E",!0,!1,null,null],["ethereum","corra","CORA",18,"Corra","304402202ac15667111d98e75bbb33a9c55b6fec118ef54c02659fdd8ee031c0fee6d600022002187ba84598eee1470f182fafbb8dfb68132fe776f30525b25370ff5faa1a46","0x0077D27Cb82Ff12322987b225BFCE0bB6E8931B4",!1,!1,null,null],["ethereum","cortex_coin","CTXC",18,"Cortex Coin","3045022100faef4321ff87c6a5a0069cbdce6f6dd2b0df96f9feff4f9d7ce7ce46e207d91602206b29130b9772e78a18c621d55a6e6997597a070968e87fce842fae5012c570cb","0xEa11755Ae41D889CeEc39A63E6FF75a02Bc1C00d",!1,!1,null,null],["ethereum","coshi_inu","COSHI",9,"CoShi Inu","304402203760fc4187310c9b372e476dac77477ab08d56bf3821cc837f58a0a1be82229a02202935634faa7c946443f31a0a6a4dbec2ba4bcf82f2ec78851b584928200bc681","0x668C50B1c7f46EFFBE3f242687071d7908AAB00A",!0,!1,null,null],["ethereum","cosmocoin","COSM",18,"CosmoCoin","304402204e288271f4bea41ca47cd3df53d1bb47eab59ec8541f42ca8b81e4d46865cffb0220441b380347769a735894d3d9c80b989e6593194fda7052a5e8075101a75d0171","0xC4Bcd64CB216D49fD3C643A32762F34626b45a1a",!1,!1,null,null],["ethereum","cosplaytoken","COT",18,"CosplayToken","30440220354c390fb7bb08ae75f0ed9df6ace5cbbce2db880bc7f366fed6b8e8e6509a8a02203d212cb294319986b5648e3dcaeabd8d8faf8f7b7547bc791a7e8ded35ba5e1b","0x5CAc718A3AE330d361e39244BF9e67AB17514CE8",!1,!1,null,null],["ethereum","cosplaytoken_","COT_",18,"CosplayToken (Old)","30450221009c7ad681bdf13d3b6ff357c8e2dc2f2d230085f1893993bd07d8920c73ed1534022001f09befaeceb4a2458533d11fe7ae24a08aa26f2482750dc516f1ffd8a18648","0xed64142f7D0a4d94cE0e7Fe45D12f712fe360BD0",!0,!1,null,null],["ethereum","coss","COSS",18,"COSS","3045022100fea8ea18a80d3b0f9ba17cd22e273318fac6dd8c8291305dbe94a2b27d45df0c022031746bfe6b76891122f7b32c400478de4d67c55b83add57bec3ddc62faf7ad62","0x65292EeadF1426Cd2dF1C4793a3d7519f253913b",!0,!1,null,null],["ethereum","coss_token","COSS",18,"Coss Token","3045022100f2166262666b4602b10bbcd5cec509b3ffa0bb71230475367e7c7c1637866923022042a756bc7a698cabc0e3c7ddd3522567733c5e4576945c6a2833c59ffe2e6b57","0x9e96604445Ec19fFed9a5e8dd7B50a29C899A10C",!1,!1,null,null],["ethereum","cost_coin","AKM",18,"COST COIN","3045022100fa63128a17d31358ec328d42a8a52169b1bcffd4777b61de73412d7b7976eedf0220378496ff07ac188ff219b8aa0b5a326edf1119571191e85ee449d98e4e9c4de5","0x5f02cf3c7ada49DFC4A3645Fc85C8aE86808Dd9b",!1,!1,null,null],["ethereum","coti","COTI",18,"COTI","304402201a61aaa2fdefc4670a470922fc522baf3d36ac315c36755799d307f9498f54ff022027bc562c1d5cd6deeeb3036d9eed0336a2fcb4fa281e2545cd1281e76fc6e041","0xDDB3422497E61e13543BeA06989C0789117555c5",!1,!0,null,null],["ethereum","cotrader","COT",18,"CoTrader","30440220552898ff7cd853a8c1502a414939c85e720a9907b2e1078f42d36f64be4f30fe02203ed5d61558b912ac69689dbb4776bbf155a3539b3a2c2bec0c06b93ad936d280","0x5c872500c00565505F3624AB435c222E558E9ff8",!0,!1,null,null],["ethereum","couchain","COU",18,"Couchain","30450221008fe1ea3d0f082f46837282daba30682451ac3e831ea923b4d58023678a9f2219022034d011982975564a8e0a91c363adcaef93d2fce178c66c4ae6b13f611478c246","0xf091Cf09c51811819DB705710e9634B8bf18F164",!1,!1,null,null],["ethereum","covalent_query_token","CQT",18,"Covalent Query Token","3045022100f3cccd44ef47f22b7fcb7d3d355fc8409b385cb873b60aa5709e06aec37ae96c0220115b6e0e16e8c5ffea173a202881c7df4dd353fffb286aef07f5ff28e0bc09c9","0xD417144312DbF50465b1C641d016962017Ef6240",!1,!1,null,null],["ethereum","covalent_token","COVA",18,"Covalent Token","3045022100a683c67b291ff9864ce52a5acc8754479e8dc353b8ce3f88ca81d101189443cc022067b4c0aec93d2189741225a2b1bfc4957aa704ccab92cd34c97b8b233b6aa966","0xB37a769B37224449d92AAc57dE379E1267Cd3B00",!1,!1,null,null],["ethereum","cover_protocol_governance_token","COVER",18,"Cover Protocol Governance Token","304402201f671cd5759e629c66e4996b159f8da04b931f6cfac6c7e8ac51c6007d870eb20220629fc664b66fc40aba52b80af0967c78207865030e88c99c21e2a186761d3228","0x4688a8b1F292FDaB17E9a90c8Bc379dC1DBd8713",!1,!1,null,null],["ethereum","covesting","COV",18,"Covesting","3044022069a6e4f95ee4c9352b5118aef26c986aa3db5915e223dd589a7b1fab6dd8128b0220663acec82236069ca31d70f5528977bb7d8a1276da7950cf6eed336b09a1b82b","0xADA86b1b313D1D5267E3FC0bB303f0A2b66D0Ea7",!1,!1,null,null],["ethereum","covesting_","COV",18,"Covesting (Old)","3045022100b93453c6d9ab69113960ff6967256aa1f1299b83d2b12c0a35fd591a64d68c07022026cb465118723d2b172acd423edf7d9ff6073d60710036f51fbdec816cb207e0","0xE2FB6529EF566a080e6d23dE0bd351311087D567",!0,!0,null,null],["ethereum","covir","CVR",18,"COVIR","304402202f7f419e4933b05639e756ef1ed6ac07ee78ffd966c2a607a8d4b158a836c8b902207cc0ae18f5a199a4336e9abe46005e6fbeee985fe3062e6c931afe05b60985c5","0x2578A20A07E8761d91D0961D3Ea92e14510885aa",!1,!1,null,null],["ethereum","cow_protocol_token","COW",18,"CoW Protocol Token","30450221008ae4bec4238369f5fae333dc2e5a52bc9e914462c49f6ceda2ba7d07f0d62d1402205cb2076033d2770ff32765609b77a04f768ba71993201c52eeb783c907bb4c3a","0xDEf1CA1fb7FBcDC777520aa7f396b4E015F497aB",!1,!1,null,null],["ethereum","cowboy_finance","COW",9,"Cowboy.Finance","304402200839814d1d10bf4be92463ee96d08a57d914ab5342ab2ec56920129010dad0cf022058512f1f96f954ded2779085e8e22ae30b6c85c088fd63a1908fc98c6b59b057","0xf0be50ED0620E0Ba60CA7FC968eD14762e0A5Dd3",!0,!1,null,null],["ethereum","coweye","COW",18,"CowEye","304402203c31978107c1d4928ca0aff9f9e7d44364c0a2c81e9abdeb84d24fd63a04c9df02205e92b2c09ed44538dc887868ed471727a6082b66c3cca0204c90b6ed799ac5b3","0xC3d6dda603FC15Fd4Bf9303150fe11c7cd6059dc",!0,!1,null,null],["ethereum","coxxxcoin","CXC",18,"CoxxxCoin","3045022100b851006046f5f117690e4d221bea38bb79c016a23c701600df3095aaa0f8448f022042427bacb966847dfec95a314b940d81a831a2e2d016c73dab52fae41fa39a94","0x2134057C0b461F898D375Cead652Acae62b59541",!1,!1,null,null],["ethereum","cp3rtoken","CP3R",18,"CP3RToken","3044022057ddb6533c585fc4287d0a5bd49b6ef982638d1d4f3fab8250865d88f915682902200afc02e7fb89081e5a39d824061c9845c05da7ad5d7ab84c244443f2fc9e04fd","0x7Ef1081Ecc8b5B5B130656a41d4cE4f89dBBCC8c",!1,!1,null,null],["ethereum","cpay","CPAY",0,"CPAY","30450221009bbbd606e905fb673494ae5198bd818dc07c796f5e7c6c727e27df9122b1b3c30220313c39b18690f6a138c84eec6bf7bfc9eb10d4a91ca5e26c2dae59c27d623284","0x0Ebb614204E47c09B6C3FeB9AAeCad8EE060E23E",!1,!1,null,null],["ethereum","cpchain","CPC",18,"CPChain","3044022002ee4e1f22746c4c3eadf4a80ff0ee5bdedea85dc341a67d59b42f65da14f20f02205d6807c38a4a666ef75adc066d5bacca625fd1c2f3396b7ef78e03cd0e78ed6b","0xfAE4Ee59CDd86e3Be9e8b90b53AA866327D7c090",!1,!1,null,null],["ethereum","cpollo","CPLO",18,"CPOLLO","304402203b4190475d0fdae945d0cb935931a59926f03da37c49ea710ee9bd5dc878879702203acf0ced053bcf7605e2800a14b9bed344dc2d2a05a6219a91ccf7d99dbf0163","0x7064aAb39A0Fcf7221c3396719D0917a65E35515",!1,!1,null,null],["ethereum","cprop","CPROP",18,"CPROP","3045022100ee1bba49ebbfc5dd3971cbbaf8a03ebc45c11326a90ba8f38e8d0bea24362b050220635f0fe7727ddc496a45997fe1cfcf212628b3624eee3f85392f4489a64dce5f","0x0FB843D37AA2A99db8D81aF9fe2F0A6485c7c002",!1,!1,null,null],["ethereum","cpucoin","CPU",18,"CPUcoin","3045022100b43b3982a6b18fb188434e91154fdf4d63ade6289a767aee7a3b5992bba8e5aa0220188f0d23b051637b451a12f02908f99c4d4af415d0c2c87a4e3cb9db0483a798","0x6D52DfeFb16BB9Cdc78bfCA09061e44574886626",!1,!1,null,null],["ethereum","cr7coin","CR7",18,"CR7Coin","3044022077f8f0d1070f092f6ff784c884f9717922a76ea4500b46ddda95feec9d781a8902206b9196e183cd1886823201f56e563e685a38ccdeaa15f699a56b386df416b318","0x7F585B9130c64e9e9F470b618A7badD03D79cA7E",!1,!1,null,null],["ethereum","cr_coin","CRC",8,"CR Coin","3045022100bdc49c40bf7042abc9e83dbc593154e30fe29497551305af9cec1fbeb023de560220065216cd4759f4a6a846db2c2cda7e9f2c345c7c6a87979c0964d2bcac15545a","0xFB19C03a02a519a44542343803F3D42578CBc243",!0,!1,null,null],["ethereum","cracker","CRK",18,"Cracker","3045022100d014ac09bec508c369d28f6449d4ab26277f65b77a81dbd44dffae52dfc19adf022071ed06a37c132865eb75cc12908d696d10f881f3955d5d04b8646533afb31e59","0x562Df594BFD9C8DDC894571bBB211DaC7888eaF6",!1,!1,null,null],["ethereum","crad_cash","CRAD",18,"CRAD CASH","304402200e4dae9307250c89b9a0d58f796fda7fb8c891826551d6b75910954bd44cdbfd0220603622b561676e480bbdf96420561658d8ac53511f6a35d303ff8a8b68d1553f","0x608f006B6813f97097372d0d31Fb0F11d1CA3E4e",!1,!1,null,null],["ethereum","crafty_token","CFTY",8,"Crafty Token","304402202fce0eaa060ad8d21f8269804681e9e032dd749c1bf4a7d5984cfc24300fc27a02205479cfe5694f5e180e4ea270d718505bd5c53f4a44ee8454929f2a1c9645aaeb","0x6956983F8B3Ce173B4AB84361AA0ad52f38D936f",!1,!1,null,null],["ethereum","cratos","CRTS",18,"Cratos","304402201979407487ec49f816f5c3d590e8f317749b0bcdc1e7acd5a4f42396eec4fb8802204251799d3eeace8ee7a18719df9a74dfd36062798ffb331a93bf4ae2cac80747","0x678e840C640F619E17848045D23072844224dD37",!1,!1,null,null],["ethereum","crb","CRB",8,"CRB","304402200535673fc6e2008e42a9cd52b5c7298a128fe5254510848c640ff2d0ee3342f102202dd78839bbe04f1ef39cb7b36b4e98a27486751eeb381b1d65b62636f2d98ef4","0xAef38fBFBF932D1AeF3B808Bc8fBd8Cd8E1f8BC5",!1,!1,null,null],["ethereum","cream","CREAM",18,"Cream","3045022100d1b4436f271463c3490f33dacf3520d25ac10eea70b0f29b01d0578d1d2b929a02205c6e69ee944d36ddeaaf567207cd0109903101c4ecb703b2b72929616e72bd58","0x2ba592F78dB6436527729929AAf6c908497cB200",!1,!1,null,null],["ethereum","cream_eth_2","CRETH2",18,"Cream ETH 2","304402205adf6e947b73a2f975ac91f4a1385485e3a749c82be74274455539c84e1e343b02206d1676e815b323bb6e385df4244c2fd6077652f79e9f913446b879372b62e412","0xcBc1065255cBc3aB41a6868c22d1f1C573AB89fd",!1,!1,null,null],["ethereum","cream_pool_token","CRPT",18,"Cream Pool Token","3045022100ce9bcc7588b6e3dfafe93c03ed7be7f929b18a6d4efb680e9b14b17562399c28022002a37b442209d6fa93c5e1757167cc63eeaff1a5b666155b783015be9ec68086","0x408e75C26e6182476940ece5b0Ba6491b4F13359",!0,!0,null,null],["ethereum","cream_pool_token_","CRPT",18,"Cream Pool Token","30450221009a5c4f2b4861b4af3d2a89a1be56ef2c9415a03f388c186fc20538360159c8c1022075c43f2e63ece7cb118914deccf3c905968fe3266be050fa74e98e45d89639a0","0x02566303A0E860EC66D3B79168459978B1b00C8e",!0,!0,null,null],["ethereum","cream_pool_token__","CRPT",18,"Cream Pool Token","3044022034c22430b2a6e408cde2d0665bb00c46a41ca30be37e0bc4464eda47a98ee01302204c0472b5aad340480d167b947e44a7e6e75cecbae347c3ab595ba6ddd04408a2","0x4Fd2d9d6eF05E13Bf0B167509151A4EC3D4d4b93",!0,!0,null,null],["ethereum","cream_pool_token___","CRPT",18,"Cream Pool Token","304402201463def20d1a424fa4dce516f48cbe5f73ec3750fc0083ac3cb1818641045e1302205161985e159d08bb298cfb39a61babf632b148d91cfb762d4179f6b454d7bea2","0x655AD905dEc61E4Fb7d4840a1F450685801511b2",!0,!0,null,null],["ethereum","cream_pool_token____","CRPT",18,"Cream Pool Token","3044022015b29e1ffd971319acc1b8c51606c938f28e791daf1b0cd5dbb364fdc1c6c34002201e12ce140d331c4449c954e1d1bec4327b55b266b64f3159f30cfdb294f21da5","0x661b94d96ADb18646e791A06576F7905a8d1BEF6",!0,!0,null,null],["ethereum","cream_pool_token_____","CRPT",18,"Cream Pool Token","304402203d3f66b8c8050363d48e0562fa1f67fcfeeaa962f27211a50b453468f027b60a022000c0f4080274e07005be50a02766b7b04fccaab5919c85478b3ca4f4255f1dbe","0x6a3B875854f5518E85Ef97620c5e7de75bbc3fA0",!0,!0,null,null],["ethereum","cream_pool_token______","CRPT",18,"Cream Pool Token","3045022100a9448f4446b01ec8d71099bc390d66f2c63026dcc0be58e28308fdc319a3a5b60220652e258c55c0a75c29ea66d5cba140c8f2f86bd4b6847d79b3fe3ecf4778692c","0x7350c6D00D63AB5988250aea347f277c19BEA785",!0,!0,null,null],["ethereum","cream_pool_token_______","CRPT",18,"Cream Pool Token","3045022100a17f3cde2f78d6f0e33d1c8d89b31d1c2705d080ccdb94decb628dfa8ae07f6d022014ce33377cb3143e4c8c8db4b7c62d764546e4c8b815f19431210628b912c588","0xa49b3c7C260ce8A7C665e20Af8aA6E099A86cf8A",!0,!0,null,null],["ethereum","cream_pool_token________","CRPT",18,"Cream Pool Token","3045022100d7fdd6fd7a253d107901b14b9f91c18a40add2f558d963db3d144dba6a8ad46e02205d85dcd4c2f8bddfab5344557be92710090fe5e6d535771305f01e61610e520e","0xA65405e0dD378C65308deAE51dA9e3BcEBb81261",!0,!0,null,null],["ethereum","cream_pool_token_________","CRPT",18,"Cream Pool Token","304402200f0393ae720ddcff589c1f4e0524e1e9b034805d317c0478c0e04f04f2cd1dfa02203a5f7c5583510aa0fb399fddf816671f1a555a754774848bbe1cb1d2f50773fa","0xaAF841fd6409c136FA4b960e22A92B45B26c9b41",!0,!0,null,null],["ethereum","cream_pool_token__________","CRPT",18,"Cream Pool Token","304402205ff3937b074293718634de25491b4d0170f313937ab3f36418717d9b7c4eba2a02203aae68ec1249b8b7c4a8708794c20e100beb12cbf3085496165074594762eae0","0xB3284F2F22563F27cEF2912637b6A00F162317c4",!0,!0,null,null],["ethereum","creamtoecoin","CRT",18,"CreamtoeCoin","3044022039c63f4293dcc2d63bcd308c128a08243adaabdc824aa457b0a67051187f31ec0220392583b93a9cbbe1a0d38b72d7ec0f292c0eff17a779f81ead0cd3aec9aa1da2","0xF0da1186a4977226b9135d0613ee72e229EC3F4d",!0,!0,null,null],["ethereum","creatorpal","CPAL",8,"CreatorPAL","30440220603105f5074e095ce5b292a3a9d4ab5b303809e2274b5fbd221364e35d62f129022056c0300bd0b361f66bd1b9c08cd4e49cfc0e11f78f4cc10af7195eefb37d85df","0x31910AFF5545784755970aE1fBE7fE65d5F0eEa2",!1,!1,null,null],["ethereum","cred","CRED",18,"CRED","304402206b36d920b4d82cab2a2632e81fbf4d7acbbf4cefd1d68243dde505507b693f9c02204afd4016981a7459957bebf87dd16a8515e4c7655f0c7aecfcd66962d9bc4850","0x672a1AD4f667FB18A333Af13667aa0Af1F5b5bDD",!1,!1,null,null],["ethereum","credit","CREDIT",18,"CREDIT","30450221009de592440bb9e5a6b284c431ebdea75a643da654c4dd0c1b3c3a1e4f2174a3440220184775d6f80d091c7aec24a966f29253cc9ecccd326f4dfad66fc517c8e63866","0xC4cB5793BD58BaD06bF51FB37717b86B02CBe8A4",!1,!1,null,null],["ethereum","credits","CS",6,"CREDITS","3044022032642a9e662b41771b7c24fd55d1788c52a4b1bfd5c46f6965bad2d86481916802204a611ef7737286b65cf02fea3790363c44af771c6292bf75fea6890355d51326","0x46b9Ad944d1059450Da1163511069C718F699D31",!1,!1,null,null],["ethereum","credmark","CMK",18,"Credmark","3045022100993802f1ebde25923e118d55838b28fd43b598ef0f891e6d2752ee6a3731fd6802201b15f8eb924ac0de3d037b1a6835e87fd454223bc65bf0204c210c571a9fcf88","0x68CFb82Eacb9f198d508B514d898a403c449533E",!1,!1,null,null],["ethereum","credo___bitbounce","CREDO",18,"Credo / Bitbounce","304502210084c8f0e890d15d86863e6794eea472240207dcf1bd41e8236ab5d02772da3eee02200de9c5d5fbc4bc0a5a0b4cb3cd811e1b659f214d30e98962a1c128f5d9695c92","0x4E0603e2A27A30480E5e3a4Fe548e29EF12F64bE",!1,!1,null,null],["ethereum","creedtoken","CREED",18,"CreedToken","304402204730b7ed9b461c412b49d9b667e13af53cc726d21c1483e65e3a79e132c76ccb022050e3e40de5d9504ae050548aa2cf6359a4fce4a30459e0f69eb5fe4ee25e7e05","0x675E7d927Af7e6D0082e0153dc3485B687a6F0ad",!1,!1,null,null],["ethereum","cremit","CRMT",8,"Cremit","304402200b1cd2b6db5d4158726b1c4a58e61e6e01d77146cb7217525bced7013b48a3db02207adecbf02b65cb3d5237c67995ddcbb791b146980280a29bb71c342a41ef4a3a","0x9238bfB781A55eACC3Cf05F7DF94038c198CD9B9",!1,!1,null,null],["ethereum","crespo","CSO",18,"Crespo","304402201cd2ee89bd4a1377fafa08a6d39aa855a0bede16930157d645c2f1662b1913e202207f646c38537a1260077d8cfae26c53bb0ef2acd0471e9f8318c4eda27a1e0779","0x5Ecb025E51415dbA9Fd272C551076357Cf4069F5",!1,!1,null,null],["ethereum","creverse","WITH",18,"Creverse","304402207522ed0c876826de5f13b19267882f3fd7906e3c6ab72df4ca65cf075d4aa1bb02203e4be78d69a2dd8fc9727bb1c0fba89bc870c34feabc3b0c9789eb1231bc32b1","0xe123a36615d7CA95E2ab27B7cA4Ab2932312dd28",!1,!1,null,null],["ethereum","cribnberc20","CRB",18,"CribnbERC20","3045022100a7abf5e3293881033d650fab85635aaee8b72bc5db2079f72277dd859f0a6264022056dfdbbc5807fddf174de7a232d59be91b59a0ebee24f7944832ff7ea49dd691","0x6767615A97a8204298bbAC44C57eF1A615eeD244",!0,!0,null,null],["ethereum","criptoro_coin","CTRO",10,"CRIPTORO COIN","30440220717f8780ed0d1301e350bfa8ebcc75902efaac17364247cfa8d585c2aa26f92502200341536ceea347d9d1182e5675a3bf4cba777015b86996af72dad257e1e9c163","0xb3AB2B676a1eFDB16a227E151dC31f5BD3856744",!1,!1,null,null],["ethereum","cro","CRO",8,"Crypto.com","304402207516b954efe863842cfd13ec52b5282244190afb1670806ebada17b222a31fb402202209855189582452633836757941484a9888f58195546e4f9d10760b43d4d761","0xA0b73E1Ff0B80914AB6fe0444E65848C4C34450b",!1,!1,null,null],["ethereum","crossfi","CRFI",18,"Crossfi","3044022061ab6a81e1dda44f5b8bb143541733b977482572cf3fe78dd6e384cad52368e9022039ff7a1c48107b3eed514aeb6ee1c600a62c869c18d66162ff187d91defb0480","0x8848812BD31AEEe33313C10A840FfC3169078C5b",!1,!1,null,null],["ethereum","crossswap_com","CSWAP",18,"CrossSwap.com","3045022100ffa9c5ca6e7e25f72b9cb2231cacc39a74571bbf49e6f053771b15f7b266672d02205a64c495cc527260767b64224e7a15208a4ba4c9a8b46b653f070a7da0c166f0","0xe0b0C16038845BEd3fCf70304D3e167Df81ce225",!0,!1,null,null],["ethereum","crowd_machine_compute_token","CMCT",8,"Crowd Machine Compute Token","304402203ac64b19ebdb7ca4f3d94936e9f3772ddca15d273ea5fb39bbd97154620d38ae022059c772ee65782d5073c82ea233845eeaa74894bbe7170085c3c41e91af203bac","0x47bc01597798DCD7506DCCA36ac4302fc93a8cFb",!1,!1,null,null],["ethereum","crownfinance","CRWN",8,"CROWNFINANCE","304402203d5669758503dcf52c9cdd328a8fc30db673f70cc52b5880c6aa2bd8db573b8d0220086934b0f504f1e9f51eea345bf1cd4a8d97e9872f537c544b7d13ca73fbc922","0x72a56f7BbEe939a8C441C891e1754BB795eE0B21",!1,!1,null,null],["ethereum","crowns","CWS",18,"Crowns","3045022100a2d6a3a57c08bb78a459d173fcb1cbf4ce0ad4a4f8a0e537b218dc021e5ec1cd022013b6d2b995167f98b36c80a93067f35d9786ab63d2be2ea477167ca458b26a4c","0xaC0104Cca91D167873B8601d2e71EB3D4D8c33e0",!1,!1,null,null],["ethereum","crowny_token","CRWNY",18,"Crowny Token","3045022100cf3ee9f29c799eec32d1e9fed8ff095ce59e17abde786e89930f06767463236e022031d368246c7db5bf03163030152351992394472a9af78ff76e1c906eaaca056e","0xDBdDf072d7aae7B9288e31A4eebe6C54e3a143b1",!0,!1,null,null],["ethereum","crpt","CRPT",18,"CRPT","3045022100e571763b2092ce41c43cf75a4d6899fc3dc5ad3b7a97fcb1e07817e31d1bad1b0220784ad95a09f5e3595649d4d2d6e27cd771ea9c8978763ae5e82ae50210490637","0x08389495D7456E1951ddF7c3a1314A4bfb646d8B",!1,!1,null,null],["ethereum","cruisebit","CRBT",18,"CRUISEBIT","3045022100b4af4d72c6e82cc65fdd61c3a34a6ea38f6864812e2e7da5618454eb5594813102200123aedd3e9c75e3c92e11eab6916c5cc3ae70713f079a366ac72c15bf8a7a79","0x2cF618c19041D9Db330d8222B860A624021F30fb",!1,!1,null,null],["ethereum","crunch_token","CRUNCH",18,"Crunch Token","3045022100fbc4cbb9a44c8dadc27f7c55d3588d65f5fe89728f90e17714598b2964858baf022002e61bbc9aeca397429e3af2cbb0b8d81a71e2e41fe58e73a1aa5ced2a08d654","0x74451D2240Ef9e86b3cEA815378aF61566B81856",!1,!1,null,null],["ethereum","crust","CRU",18,"CRUST","3045022100877db0400b082a15361bb2858a103d90f0aab738b8cd97dcb77979fa497b148702200e4a05624bfbbe4d129e115c82d8397379e90461a4dd02d708d3e2f2f6bf5a00","0x32a7C02e79c4ea1008dD6564b35F131428673c41",!1,!1,null,null],["ethereum","crust_storage_market","CSM",18,"Crust Storage Market","30440220606dc6e4e982c3e65e3a0412403c7294ad9e21a143a7f7627144a39e8a0443bd022062056909c46922c90b8d6db49109eac5633d589af6270cde01ec7adce6259e3d","0x2620638EDA99F9e7E902Ea24a285456EE9438861",!0,!1,null,null],["ethereum","crybet_token","CBT",18,"Crybet Token","304402203d672d48d79a664c03984dbab5a83dd47d148f4d3b960668fe228487a15b979d02207722f5e0fb3cae66d4660bc8bf6b7d7e6f1190c23bef8d29496847e69bae418b","0xaf5f584d79701d5BDc9CA045E66ae130b67A68ad",!0,!1,null,null],["ethereum","crycash","CRC",18,"CryCash","3045022100f5bbe14b1dc8a138d7d59fac14ac66be683359ac7d14654ab93d5ee20343c40902201385af78bce94cdceaf688c6d4620e19fdd386cb1f882bafc9663e831326f851","0xF41e5Fbc2F6Aac200Dd8619E121CE1f05D150077",!0,!1,null,null],["ethereum","cryptaldash","CRD",18,"CryptalDash","30440220170106d6d6f835267c8fcb88a6f59542b2fe3ccf38f1f3de60d8e18f65e8ce2602205967e87151565c2d6dbfa54fb87387f622f9d8639c70bab597fd9e1dd327f520","0xcAaa93712BDAc37f736C323C93D4D5fDEFCc31CC",!0,!1,null,null],["ethereum","cryptaur","CPT",8,"Cryptaur","3045022100bfb2910e34d7a59cf82a2b151f050ba9ae27d96e3a8459dd7d2b9dc6c477d5cb0220733a2f2ca02e31c1dd40afb28a3923ecb993cb920995237c460decdbea3297bf","0x88d50B466BE55222019D71F9E8fAe17f5f45FCA1",!0,!1,null,null],["ethereum","crypteriumtoken_","CRPT",18,"CrypteriumToken (old)","304402206c7f38290ec5a0dcffaf0e43c6dc2caafc962757706df503a8cd0b684240b45c02202c54ba5d35450fab2137303443b29d430c8897ae0e866527612918d4ed45155b","0x80A7E048F37A50500351C204Cb407766fA3baE7f",!0,!0,null,null],["ethereum","cryptex","CTX",18,"Cryptex","304402207654d3512dbc8662dc62a461919514a20fd44e929c9d95bfd0dbcf933382e208022020ef489aac6aeecf9543788097bde7e40b3dcb8847a3d4cf6183c75f003a42ff","0x321C2fE4446C7c963dc41Dd58879AF648838f98D",!1,!1,null,null],["ethereum","cryptfillcoin","CFC",18,"CryptFillCoin","304402202ed93c382e7a2601afc9aca895a27b614f31317dcce5f5e67834f2e7e6babaa30220234fd65fb5bbf2d3a0baba29410c5dae9a04074625d714ba45771d9e6c2940ab","0x5Dff89a2caa4D76bc286F74D67Bd718eb834da61",!1,!1,null,null],["ethereum","cryptid","CID",18,"Cryptid","304402203aef165f81db8141f53844c7aad3e77b4272444f5804938da26ef7ea5d2f9f4c02207b12f42e6e108b2da03c79c776ec55cf9f2cb103f578b582eb1476727cec372f","0x4599836c212CD988EAccc54C820Ee9261cdaAC71",!1,!1,null,null],["ethereum","cryption_network_token","CNT",18,"Cryption Network Token","30450221009af97c3c6cb4ef7cb510cecef81cb9ff7cbc42cf7829e2f615bda461d964f5ef022042f6ccfd33ef47c9a513cb4db951170b361c53bfa0283aad904a2c992515d0e0","0x429876c4a6f89FB470E92456B8313879DF98B63c",!1,!1,null,null],["ethereum","crypto10_hedged","C10",18,"CRYPTO10 Hedged","30440220518a527005a867138d7ea4906d8b5bf6419a6256a4ce5e81a096f22467c795cb022036e195deeccae808b53be8ccd76a625e2cbfd059f4dfa5d2e87771ed7656a0c5","0x000C100050E98C91f9114fa5Dd75CE6869Bf4F53",!1,!1,null,null],["ethereum","crypto20","C20",18,"CRYPTO20","3044022043206fd8eff5a5c11fd8f50277c4111a5c22789b4dbb1762e0ca151ac2ce04ac022029a3fe1e01ca199532d355fadfb3df8ee57580082e9773cca95f44874c65335d","0x26E75307Fc0C021472fEb8F727839531F112f317",!1,!1,null,null],["ethereum","crypto_accept","ACPT",18,"Crypto Accept","304402202d28acea07e820cc8c33f81c3749c4a4d8af0128139d6b7594ae51b895d044530220718e6950cd668c1af5198482f8db58bf4d9afafa645dfbeab166c756434d3a68","0xcAd2d4C4469fF09aB24d02A63BCeDfCD44bE0645",!1,!1,null,null],["ethereum","crypto_application_token","CAPP",18,"Crypto Application Token","3044022002cd53bd6981170ab7d43d444bcc5c8367d37b2d980eddddaf0c2203d9e70f0f02205095af47fb66b86ce4acfec08ede7bf449ff548cbe26bc463eb6165ff576a768","0x2E9C861713A8CbD4aCA72a832F347b9520EDBB90",!0,!0,null,null],["ethereum","crypto_bank","CBANK",18,"CRYPTO BANK","3044022078f87bb7eb77c1a63713332e26a096eb87e26f6ef07e912aabab8a180c126e4402207b90260800e826b57ca87d01bbec752baa77d8d52cd9a826880e4ddc52b5ca95","0xA5E412ba6FcA1e07b15dEFcaA4236Ff7B5A7f086",!1,!1,null,null],["ethereum","crypto_bits","CBS3",18,"Crypto Bits","304402205ccd75212d5f9610b9a74d9771afbf181ca96c9483bfbb5f1c1df0094209b3ea02203a43535cdc065c65c5d5f727da32ab67119725899fa38c60d02aef6a68da92fb","0xD4a80224350528b7c0aE8C325A0B5778D92FD86E",!1,!1,null,null],["ethereum","crypto_boss_coin","CBC",18,"Crypto Boss Coin","3045022100c6a15ea745ca632d84a37ea1a281b8f4be6111c5947a4c022992a423bae3e92402201e795fcba8d79b83d0875e9ef0d87fc53a14772399cb81468d84b79dcf1eda27","0x790bFaCaE71576107C068f494c8A6302aea640cb",!1,!1,null,null],["ethereum","crypto_brl","CBRL",6,"Crypto BRL","304402204eee813824d689de81528accdfdcbeabb56c8ea120854dbe35a9bdb73caed2080220149f2ba3cac89cfa7b8bd789a75916596484b5f67ba2e5aa70a1aef10eabe89b","0xA6FA6531acDf1f9F96EDdD66a0F9481E35c2e42A",!0,!0,null,null],["ethereum","crypto_candy","CANDY",18,"CRYPTO CANDY","3045022100b4b1dd8290d5de1e33799649db43c977dc26a14394d9a7a375061c387e78420c022016345db1e15221cb2eab90a15df584bb27fc3321ef66b1ef454e8fe7a884acd7","0x540D3087B21F31F9A810385c94627a067cfD0b08",!0,!1,null,null],["ethereum","crypto_carbon_energy","CYCE",6,"Crypto Carbon Energy","3044022041cb977f77c09c87b7b493d581bfce442cc5180df11fac737bab4788c912cb5e02205f8b47545f01694e89a4b92dbe0cbd63c40b24091479ef299f609191aa2bba13","0xEaDD9B69F96140283F9fF75DA5FD33bcF54E6296",!1,!1,null,null],["ethereum","crypto_com","MCO",8,"Crypto.com","3044022051b06dbf04c842433cc5eda8ee85044246141ec57db93fe985082a5e657efc75022071d877773a7769cc728c513b9207e642f95499e5fc7f10ad5da0856379bb5297","0xB63B606Ac810a52cCa15e44bB630fd42D8d1d83d",!1,!1,null,null],["ethereum","crypto_daily_token","CRDT",18,"Crypto Daily Token","3045022100d4baa3a82ddf6ca133ea6930553497bb19c86edf7a251ffdcbe049be0937d0110220770f75bd1176c725543f6a1a2e503c61c3e7b29e7502d8d9c8467fc228575491","0xDaab5E695bb0E8Ce8384ee56BA38fA8290618e52",!1,!1,null,null],["ethereum","crypto_excellence","CE",18,"Crypto Excellence","30440220159e34d0b2ff135969a4b24fefaea47c415765baa3fe1272706f499334bc8a7f022018fcd8a3f9e7ac03f83f4df302e8593375e0410ad99f042556104dd02fc3fec3","0x8F12Dfc7981DE79A8A34070a732471f2D335EecE",!1,!1,null,null],["ethereum","crypto_global_bank","CGB",18,"Crypto Global Bank","304502210088807ad0423dfc1c5dfcaebbc5b709c9276111f07ff250f59f283941649028420220564caaf2b4a05fb36f0ecaf2c806af28bafa0a888fd9c7e0fe0496f47d70ef32","0x2858eD0225e9aA0638CCd9B552bEE2712426FA24",!1,!1,null,null],["ethereum","crypto_holding_frank_token","CHFT",18,"Crypto Holding Frank Token","3044022073eb2a7193d25b8f901db7fc1d950f30bb338e624a24aabf64d5c52e941c00aa02203f5722b49bcb8c32c2f97b831a83034279a39e63011de577e5d6475725f2835f","0x58002A6B6E659A16dE9F02F529B10536E307b0d9",!1,!1,null,null],["ethereum","crypto_kombat_token","KOMBAT",8,"Crypto Kombat Token","3044022026b53bdeaa8e91f7e11c199c86b7f851e447fb8d84c5318330965b1c448593f602205888cb29c6c68bddd6cad59de71000f5f1b5aa679ce1b4077bfad96bcbd7152a","0x878CF148ccBb50426043a9AFFe54Ba408221C7fA",!1,!1,null,null],["ethereum","crypto_neo-value_neural_system","CNNS",18,"Crypto Neo-value Neural System","304402203d3f80cfb78c8c062f0f9def8f9675b3c7f1ba6b499e5309ec5d807c83446ad5022066a9288ac27a2af1f9e4497460c5a5318ed033eb11d10d160171366712c6bce5","0x6c3BE406174349cfa4501654313d97e6a31072e1",!1,!1,null,null],["ethereum","crypto_perx","CPRX",18,"Crypto Perx","3045022100c8092af4ca6e35142d19241303c2ddf09c2b0ee9bbde4dd836a1f7613265dd6902204938eac787b3e71a6cf5d041301d2fee7d89be9ed2aaa39f8cd2af88f8a62f53","0xc6e145421FD494B26dCF2BFeB1b02b7c5721978f",!0,!0,null,null],["ethereum","crypto_phoenix","$CPHX",18,"CRYPTO PHOENIX","304402207fc5bdeb5374960edcfe149b6e191a8ef823000f3374afb79716a06ddb41a81c02203c9ace999f168e303b7ad22ac37b48731e8da31908a6b1cf7ce899445c7ce368","0x8689D850CdF3b74A1F6A5eB60302c785B71c2fc7",!1,!1,null,null],["ethereum","crypto_price_index","CPI",18,"Crypto Price Index","30440220377ad0d04a6c455ea2f71f12330edac6676b6d44cc37b742daf2199e8f38a23302201bcf7f2aad3efe8539db51365686aedd8e58d6c33143e68fdc47e2c896b91471","0x2b67D1a87A8D8B280A23e97bC55095215eE0ec53",!1,!1,null,null],["ethereum","crypto_puzzles","CPTE",18,"Crypto puzzles","3045022100bf409abe76a73e17ee6053de7be29d76fe08b326b97ad76541afb0e6c569ec5a0220714df391112a999d1ef842f1184e720c7f4f73bddd6bb06e127366031e7c84c2","0xE0bDFe2CE51F44556309665D59818CCb541ff067",!1,!1,null,null],["ethereum","crypto_user_base","CUB",18,"Crypto User Base","3045022100b9220fea1e5ddc0db51404fde1feb30d4c1933143977c73228cb4c67500fbfc802201b5a510897d80429ba14b265755f3be1311deb664ab517d056079e4d5307623e","0xa8892bfc33FA44053a9E402B1839966f4FEc74A4",!1,!1,null,null],["ethereum","crypto_village_accelerator","CVA",18,"Crypto Village Accelerator","3044022015850e67af0a7fe2d484f98d5d5ed3eb6a4f6465c57fb017fdd6d9c465908c6c022016f1ba09c8316df56c34665e1e0973c76cf3fac9c97faf6e7b3a7607f7bd13d8","0x78A52E12c7b63d05c12F9608307587CF654EC3d0",!1,!1,null,null],["ethereum","crypto_village_accelerator_gold","CVAG",18,"Crypto Village Accelerator Gold","3045022100bc8da9938e61c60043fb817ad1156ff54e524cf8425b5b5ffef271db41f6cc020220215ac5accfadb1b66d5de4dd9e9f1a55db788b3d57d00e16d758cbfee2444a4f","0x72a66e54B66892aE3BBe54DF7bb7Dd5Ae927a6f9",!1,!1,null,null],["ethereum","cryptoart_ai","CART",18,"CryptoArt.Ai","30440220669456f0310be5dfe78af76d07209e0c4354fa96cc765b54bb3798d750750a8a02206ba597b5b478a8525e6892184697bc400bfed37fe99f0bda35f49ca88af7af26","0x5C8C8D560048F34E5f7f8ad71f2f81a89DBd273e",!1,!1,null,null],["ethereum","cryptobet","CBET",18,"CryptoBet","30450221009b82caee721973de5cf1bfad779eebae141a586d2aa8b4c7a4de78979ff84cbd022015e1e6b4fc234834a625213938ef4b537a1e067d4fb749626e6d0553dbf0db38","0x35dd2ebf20746C6e658fac75cd80D4722fae62f6",!1,!1,null,null],["ethereum","cryptobonusmiles","CBM",18,"CryptoBonusMiles","304402200e2df77846d64e5c1da32cf22c57925fdf647513e6985ca36e43b643057462c80220245bb5f5056bcf5ce6afd61e9bcdc4cfed43864d1cff97eed99ed5f99f4a3836","0x95eFD1Fe6099F65a7ED524DEF487483221094947",!1,!1,null,null],["ethereum","cryptobucks","CBUCKS",2,"CRYPTOBUCKS","304402200471486c3ad5093e37d76ca2aedd1eb5edcde3401883a8b00b7588974a24952b02203af76d1c1b0a547684596e6a743844ee34c606e2a0577d81507f70a1753cd369","0x0d2BB9D68dD4451A09ec94C05E20Bd395022bd8e",!1,!1,null,null],["ethereum","cryptobuyer_token","XPT",18,"Cryptobuyer Token","304402201602da42d3799d2fed2eb0729a55f4a179b63d7d7c1e8fb3a142f1dae756137d0220090187c35cb3fe704652202db18e59c7a7b8ef708dfd3fae0f66e90b417f48bd","0x08Aa0ed0040736dd28d4c8B16Ab453b368248d19",!0,!1,null,null],["ethereum","cryptocarbon","CCRB",6,"CryptoCarbon","3045022100c718fa0d49677b1845c40033d5e870450769538eb5b956e36ae66bc0db769a2f0220147ed4bd0375ecf42d03d3d6346f93a531494899931f78fa2471b58c8dfcf912","0xE4c94d45f7Aef7018a5D66f44aF780ec6023378e",!1,!1,null,null],["ethereum","cryptocart","CC",18,"CryptoCart","3045022100ec6f7144f77c09445935969d732280b5cf6ef18258a9b95342e6552df7ec9537022073f27536b614fbe1c9fb3c52b8f1a314347273293e23112346dd3caf568f02b6","0x9e547061A345015869D26C7B6Ee4aB5b63424441",!0,!1,null,null],["ethereum","cryptocart_v2","CCV2",18,"CryptoCart V2","3044022033cc4c46fd291feba9fc6fdaebc1f718ca3851553db2aa3d1d39516cdec328cd022069fe8251d7f8025e6b03dd376df33697f3ace3351a09b047607d2fb2186f8296","0x612E1726435fE38dD49A0B35b4065B56f49c8F11",!0,!0,null,null],["ethereum","cryptochrome","CHM",18,"Cryptochrome","3045022100e6854720d27ce4aa5c5d937869d4fa6c289fb3a760d40b868e56fed6d72bc80702201d9c139c927361d6d7058e2dbe28e75088a07b89a9e4901d86006d60bb5306f0","0x538a151Dd910C1D1227719bd400D6C4f99ea06d0",!1,!1,null,null],["ethereum","cryptocrashcourse","CCC",18,"CryptoCrashCourse","3045022100db20e4c4876aceb2393ace3de9fe072da9701e2a15ac3fa9a154f00e3ad7a5b60220257d29af04a0463fb9f7fa00f3364cfe5dae5285bacbcd62c5c6841a3c73fb98","0x28577A6d31559bd265Ce3ADB62d0458550F7b8a7",!0,!1,null,null],["ethereum","cryptocricketclub","3CS",18,"CryptoCricketClub","3044022069a95820fd6c080975dffbd8638d3a8af9418d5239137580965e3cdc60690f12022052ba9360bca2e0af0fb967c69eeeff49cae51cc15273b4fdf9ad28732b339ce3","0x4f56221252d117f35E2f6Ab937A3F77CAd38934D",!0,!1,null,null],["ethereum","cryptocurrency_business_token","CBT",18,"Cryptocurrency Business Token","3045022100c0f88f0c6e57abdce889b01e9f205ac6bc7243865a308df06217ccd4a4aeff4702207a6945bf970a3785645c11dcb5b977d18ef2afe8c379be2486eee1ba548c4084","0x3Ca6B185285684E14f925179992387fB4Ef90aC7",!0,!1,null,null],["ethereum","cryptocurrency_top_10_tokens_index","CC10",18,"Cryptocurrency Top 10 Tokens Index","304402200c699ab51340622b20261df0965e3f567e1ad02c9d25ebdc3ff27b79169c49ab0220247eadf6e03cfcad065e8dcfab6c47d488353474f025aa4e571094fb5c4e67be","0x17aC188e09A7890a1844E5E65471fE8b0CcFadF3",!1,!1,null,null],["ethereum","cryptodepozit","DEPO",0,"CRYPTODEPOZIT","3044022033df712f29a6eb1ee25baf0fa73ccb3dabff4c64ff202c2ab897d7c8173e5223022072ed30580f09db3856e13e55b83dcff2564ec03c865c5e32c81785f07ea9cbcb","0x7cF271966F36343Bf0150F25E5364f7961c58201",!0,!1,null,null],["ethereum","cryptoenergy","CNRG",18,"CryptoEnergy","3044022005809311ca5851cdf12b597af32710bd63104c7153e3acb2490d466fa3e16bea022061c1f1f35e2829f5a3768d9f73d57f6d84f476f3f79a99c1625b57a970a5978e","0xc21dBEE65D62770953035f0434C532d578a666c9",!1,!1,null,null],["ethereum","cryptofranc","XCHF",18,"CryptoFranc","304402205b8fa465d652373ec50b8da4985b21c50c43c9dfefd5f195e3695624a579ce5b02205d3f39eff3b84a2d00984a922fc79347f48c06fe510806f352e1b72727d7b639","0xB4272071eCAdd69d933AdcD19cA99fe80664fc08",!1,!1,null,null],["ethereum","cryptographic_ultra_money","CUM",9,"Cryptographic Ultra Money","3045022100c008693aceb36db5d4ba6c6507f31b5cc9a907ac08e9a8a25e1769603127d5a6022046517272f68150066a79ef74f1925a5ddb0e4f55274002c4971a52aed3d01424","0xB00b1e52BDf518FF9d0B16084F4fBE16bA58a0e7",!1,!1,null,null],["ethereum","cryptoindex_100","CIX100",18,"Cryptoindex 100","3045022100a58fee418e3d24fe3b49d27085f17bb06f362ec462bde0dae2d2995783df22c302206376280998786766c56b663ed01486c453a22b02de0a53d5a2d3497fbe03354a","0x6393E822874728f8Afa7e1C9944E417D37CA5878",!1,!1,null,null],["ethereum","cryptokee","KEE",0,"CryptoKEE","3045022100be55da75822412118be0a3da59d6354f2e2d3d8225b006cc90c8e4fd9c79e83702200b53b28ea0a74646a8e0753926b1b4b9a684c30e6062ded5739266ba4e91e0d2","0x72D32ac1c5E66BfC5b08806271f8eEF915545164",!1,!1,null,null],["ethereum","cryptokek_com","KEK",18,"Cryptokek.com","304402203127b71438836d44cc7ebea3ee8234684e693cc9e482d0dd4b54d9238cc2bdd002207d606ef420de47b7e4e8c0b834f5b29ed6eeb28c934b86a2fe3e8a4a46c74997","0x3fa400483487A489EC9b1dB29C4129063EEC4654",!0,!1,null,null],["ethereum","cryptokitties_[gen_0]","KITTY",18,"CryptoKitties [Gen 0]","3045022100825bcabf1817d6fdfdae598a2260c38cbcc7e59ae388d9e14d8c75f6fe945bf10220784d0bb5442246c92053fc1149079e146fc71fe1144e5372f7de965e07f7728d","0x9b9fB226E98C4e90DB2830C9aefa9cfcBE3b000a",!1,!1,null,null],["ethereum","cryptolandy","CRYPL",8,"Cryptolandy","3044022055176eaf5b4a16f976ed3f83b1524d5b3afbed38899b57deac5f49c3e936f5f00220294fb256ba8d3fbc667cc60ec0ecd2adfa28faf1eebd98395c83847b6f565568","0x1062FDf250B44697216D07e41Df93824519F47aa",!1,!1,null,null],["ethereum","cryptolending","CLP",9,"CryptoLending","3044022024776ba9b03e3d7921bdb8e39a7605f93ee4c5e34ea9fb65121a8d080bdd9814022069dc00f4ffdf799fc5eef186a94ad6a1a80aa1f1844b31f00b92babb3f3bd9e3","0x7FCE2856899a6806eeEf70807985fc7554C66340",!1,!1,null,null],["ethereum","cryptoliveleak","CLL",18,"CryptoLiveLeak","304402202171b33370cbe7111e06b32116dd37b828668d9ecd16bf5077e86c3b22c0033a022055e1f6ca2bf9d5f3050d9575dcac8a063d8d8fc05f691924baffef5589b17aaf","0x3dC9a42fa7Afe57BE03c58fD7F4411b1E466C508",!1,!1,null,null],["ethereum","cryptomart","CMC",18,"CryptoMart","3044022050bab9bb85d1817e809eb4bd69a6574c0a8e956a34ea0f627a9f13a10b8ba4bf02203372eab966ce77fd36bfff949884b526672b66590a9568a49d844b72973de754","0x7e667525521cF61352e2E01b50FaaaE7Df39749a",!1,!1,null,null],["ethereum","cryptomeda","TECH",18,"Cryptomeda","3045022100ab8f6e073dd1c6633da473e35e6250cc0c8ee9388527fb017c77a79e80dbebfb02201747126bdfad5542a9904462fee7f007095fd729efef9f7d7850d2b2850218cf","0x6286A9e6f7e745A6D884561D88F94542d6715698",!1,!1,null,null],["ethereum","cryptomoonshots","CMS",18,"CryptoMoonShots","304402204e1c444f937dbae2cd1a9a7149baff09e785b8fa6bbe78f844f690c52aa88b9b022013f7cff728695bb0dd8be2e827798e6f520d27d42df0d4c98cf2066f1897ea73","0x1f22AD99C334e6689bAe751CC225bCC38fe54F82",!0,!1,null,null],["ethereum","cryptonits","CRT",18,"Cryptonits","3045022100f06330adc36985cdc8aae6656749eea35e32deacba20b9d7af788c34b6fe60630220210801c730c89a0ff7359480e0c4c59610a7df8685f3bac62b533e62c99e0cb0","0x36a28c7c9B3DEA22F07F4dF67833cBe764fEEeb4",!1,!1,null,null],["ethereum","cryptonovae","YAE",18,"Cryptonovae","304402204726782e63ff02bc5f31be51846a2988e1fbe2ec6924b8a6a9dae4a9adaf21e9022003c0311486a430ac1572c01e74d8be7dfc2f8ed025bd0b75d4f8b8c948793154","0x4eE438be38F8682ABB089F2BFeA48851C5E71EAF",!1,!1,null,null],["ethereum","cryptophunks","PHUNK",18,"CryptoPhunks","3044022069146ae751ba1d2bc56f2c624c85b939efe89b09ab782982889486f22e2dbeee0220119f4bd986eb5d0a42e21d3ad5f69fa539697f7a0b98a4a71fe7aec3ab615fbc","0xB39185e33E8c28e0BB3DbBCe24DA5dEA6379Ae91",!1,!1,null,null],["ethereum","cryptoping","PING",8,"CryptoPing","3045022100cd26374eef2ab293111a9b722e025dfeb656a0c4be8614a79b07dbe4660d889102205dc33bb3fce8d008c4ae01e34ecc8665bb29e8b4423803abdb864ca872b4b9d1","0x21cD6Af01383651ed10554394C0497f9dB5e5dbC",!0,!1,null,null],["ethereum","cryptoprofile","CP",18,"Cryptoprofile","3045022100f08e21a8b1bb7d3186a5dd49ce98aa204c43adb3147d4a54563c83869716a5d00220734ac048ffcb3e51136e7a55c9a6c48bb72e2b0c7646bdb2b4eced69a7ed766c","0x06A6FC23e6eC8A2b2aeEefd70D772Dc3D6B45010",!1,!1,null,null],["ethereum","cryptopunk_7171","HOODIE",18,"CryptoPunk 7171","304402206edcecaa71d9835606f74f27965102cbdfb2a477cf13d408ca7ad061b242d8ee0220476971744e4443ba2159e9793357762294a87e333dd9746846689cb375dbd1da","0xdffA3a7f5B40789C7A437DbE7B31b47F9B08FE75",!1,!1,null,null],["ethereum","cryptopunks","UPUNK",18,"CryptoPunks","3045022100dadce1a6c3c263bd5c453db86c756e5803baf927f05197441cc72db14ea31eb402200dcdbc2fe9c02793afeb1a69e30f7100ef1a5901b39aa22766a987552840b0d3","0x8d2BFfCbB19Ff14A698C424FbcDcFd17aab9b905",!0,!0,null,null],["ethereum","cryptopunks_","PUNK",18,"CryptoPunks","3045022100ceec19ac84b7c701b7ec7c97fa6c2cba707878690e93898b0f354bc18c53040b02205ef6b287853923d838b7784c4213e045f1afbd48450011030dfc96594c20e12f","0x269616D549D7e8Eaa82DFb17028d0B212D11232A",!0,!0,null,null],["ethereum","cryptopups","PUPS",18,"Cryptopups","3045022100edca8ad8673fd8e934eb62dc41438f40e6419b6ab4633486aa979e4e0e84493d02206d82200ede240dc73d72de5bb8120e01a723303419fd7661ad1a72bd0d905cd6","0xd53998C536fc8B59b38aa0b49DBd8170d5Ebf4c2",!1,!1,null,null],["ethereum","cryptorewards","CRS",18,"CryptoRewards","3044022052d089daaf0b19db9e718b30949613b98cab9ba266ca6979ad19cff9997dd9cb02204210a80248650554d6afbc34d231b2be50c22898f5e90b205ad38b7ed39d8d72","0xEc7D3E835dA3F6118079fA9a236b267D044FD7cA",!1,!1,null,null],["ethereum","cryptorg","CTG",8,"Cryptorg","304402200b51fc7c14a0c48587a80b55bf038495499c47c376827d282c4d0a1e18eb1aac022000d213c8fbced799b3635f30a1319937f6c17d43a00a910766af7e86e06b821d","0xc760721eB65AA6B0a634df6A008887C48813fF63",!1,!1,null,null],["ethereum","cryptosolartech","CST",18,"Cryptosolartech","304402207d04fcf94b89c564a6e3c7a6a2891ef7ae303aabd24038ec4a537e3ce1b794690220203a3f046688e4040b1b14aa9c2ddf863dbc1341dbde74772abdeb186408607d","0xBB49A51Ee5a66ca3a8CbE529379bA44Ba67E6771",!1,!1,null,null],["ethereum","cryptosoul","SOUL",18,"CryptoSoul","304402203cfc9b4fa4eb67511f912d706ef1280d90a334071685c39ce915d6c87bf36a5e02203fe8fd536b9e05dc47f76c4d7e9a0dadc21d4b11e8fa5edd82f378ac41075651","0xBb1f24C0c1554b9990222f036b0AaD6Ee4CAec29",!1,!1,null,null],["ethereum","cryptotask","CTF",18,"CryptoTask","3045022100883201144b2f8b583db62523c7074500f53bcafef939aa38debbe2848810e27c0220023466f2e6ccb80bf762dc96df0a5c22702b0c851fd7799760a761c2831f74d0","0x4545750F39aF6Be4F237B6869D4EccA928Fd5A85",!1,!1,null,null],["ethereum","cryptotipsfr_token_v2","CRTS",9,"Cryptotipsfr Token V2","304402202406063a5fd25a895ef18467edcbe144c5fb1eabfcd9f70ba2a492016f8504c902204b89c3754d48299eca36024e9aafffbd224c02ef7083b161c0fa123629a1d784","0x94cA37d108E89775dC8ae65F51AE28c2d9599f9A",!0,!1,null,null],["ethereum","cryptowater","C2O",2,"CryptoWater","3045022100a565087d4cf44cce41de749af9380851580486203aecc102bcbac503e454071402203523c4207b1bbe4d7d5a82cba234a99bf476d00c780fb3a8595e44bf38592941","0x13Ca8eb6405cFbE2eaE5D00207651002083fbc9d",!1,!1,null,null],["ethereum","cryptrust","CTRT",8,"Cryptrust","3045022100c2224bd1c33ae12b008ca74b2bccf1ca061dab264f68f602ca599a926b0c54a402203e72944c40a7efc1b44ebec20ad8dbca06436cdc26e841dfd7fed45a44b77614","0x8606a8F28e1e2FD50B9074d65C01548B1F040B32",!1,!1,null,null],["ethereum","crystal_clear_token","CCT",18,"Crystal Clear Token","30450221008d12c8dbe143f6043b943c0f8673205f2aa6cfae87c4c8b6a63bb677aada93b3022001223872ec8fe3c7d27ca7ae5c6a45d4519a00172b1db863e210ed5e8899734e","0x336F646F87D9f6bC6Ed42Dd46E8b3fD9DbD15C22",!1,!1,null,null],["ethereum","crystaltoken","CYL",18,"CrystalToken","304402205fd86947a4bc728110682d3c71a5029b1214a430c97fb26291808964fed669300220501e47d85cb10e8f106309f5feb1aab35213ee4eb24995da210ee00e65399587","0x26CB3641aaA43911f1D4cB2ce544eb652AAc7c47",!1,!1,null,null],["ethereum","csp_dao","NEBO",18,"CSP DAO","304402201189514cc20208218be3782e188c4708c4922e84afaa29a9b1034d1bfeb9122c02204f054f8f6ed696318ab22140c3f9cf09ce33f6ba68cd48e507ba358f13a0861b","0x7f0c8B125040f707441cad9e5eD8a8408673b455",!1,!1,null,null],["ethereum","ct_global_token","CTG",18,"CT Global Token","3044022066c48dd741e85a6f5baaac9d13def4d6ba1657f4787f7064547ef12ad03417f90220467fc487dc4b049afb2beea7708a581296fe6a60ff6fa72054eaf64cdbb494e3","0xC87c5dD86A3d567fF28701886fB0745aaa898da4",!0,!0,null,null],["ethereum","ctask_token","CTASK",18,"CTASK Token","304402205745848e890cbb685ee4e539761d06a8a8653d4c207ebf7274d23803b94fce1902201cac28c07a4ffe9ffe84e9da4deadf0fb82529e3547e6fd846164a053bc833a4","0x196c81385Bc536467433014042788Eb707703934",!1,!1,null,null],["ethereum","ctl","CTL",2,"CTL","304402203ec64c63bc8605bde5cc117f36f7bd0dd7ef4b7a524ba7957c45e39803ebd6f402205b7a2ede8eec2bd4dfb810f307c8845e3f2c3285473e0c7e2fddc6e50b4e05b3","0xBf4cFD7d1eDeeEA5f6600827411B41A21eB08abd",!1,!1,null,null],["ethereum","cube","AUTO",18,"CUBE","30440220507662e52a96cf6420b10b97bb16815f1e9debe3afef264d0de9aaa5a13458c002202572de008ea8c694b483c5745ad3996d5dfa5aa9901f7fdc7e88c813b1f3976d","0x622dFfCc4e83C64ba959530A5a5580687a57581b",!0,!1,null,null],["ethereum","cubiex","CBIX",8,"Cubiex","304402201212dae266510e8a3f0dc4f18f48be8767474da08e4a4b08aa742934b66959f10220730323069952250810324a269f15f79e3df579585327465e87a0f57d42040eae","0x122f96D596384885B54BCcdddF2125018c421d83",!0,!0,null,null],["ethereum","cubrix","CBIX",18,"Cubrix","3045022100a40d5b17bf4d19b4bf02bf258ed9eae7945519e9e5c57512c83ed0509dfde8df022056925af55d0f4707dbc90e744f07a1a1ea430d1df10f786580fcf187f3a3956a","0x05C3617cBf1304b9260AA61ec960F115D67beCEA",!1,!1,null,null],["ethereum","cubtoken","CUBT",18,"CubToken","3045022100e468689534e917ee289c5be74a2940f626b748c17a60f4676ec6012e959acacd022026df278beb6ba0c565ca32270cd7b91378766642e501deb3036d2775aa1b4a90","0xBf9e72eEb5adB8B558334c8672950B7a379D4266",!1,!1,null,null],["ethereum","cudl","CUDL",18,"CUDL","3045022100b2d4a10a040fe758e360de2f0d76cf8daee2f2f14616ee24327fe6b91e2a2159022074f1eb455f4511348d3b03744c8f2b1065b0fdad95f6e5cc0cea9e46b1efb3d7","0xeCD20F0EBC3dA5E514b4454E3dc396E7dA18cA6A",!1,!1,null,null],["ethereum","cudostoken","CUDOS",18,"CudosToken","3044022072030a67181a99afcb2c14eee035927d9c191e98f65e18af61cc41428c97f5190220551639860182ef9fb0d502b7028c63cad7eb748bb4924a245dbb9c324fe3a627","0x817bbDbC3e8A1204f3691d14bB44992841e3dB35",!0,!1,null,null],["ethereum","cult_dao","CULT",18,"Cult DAO","30450221008b3cd3c996d5de043537e6cd28d3bdfd09505a8a8ae246139b3e73eea39054090220077ba9990af40e0b6a9ef5ab66fbdc4c916a1cb7e29436b70177c2f86e22731f","0xf0f9D895aCa5c8678f706FB8216fa22957685A13",!1,!1,null,null],["ethereum","cultiplan","CTPL",18,"Cultiplan","304502210087d85b4c027ffd4c382d8d8328b94facc9132a823b85035cb292c0d3bc019d9d022039fb56465e14bebb54afbce8b2233f8133ffaa72d56adb59c04b1c1a1b6c0d9b","0xF7e40AF830a2EcbFe72C5210C1Ca272e3Aa7cA1B",!1,!1,null,null],["ethereum","cum_inu","CUMINU",18,"Cum Inu","304402201cb915c2ade574eb520a7d75ecf0391637b71c2e417ee925cd3201406a2427ed02206494ea2ec1b40f331dddf7532d884a6eddd16cc994c26cc152d394096b08bcc5","0xd6327ce1fb9D6020E8C2c0E124A1eC23DCAb7536",!1,!1,null,null],["ethereum","curate","XCUR",8,"Curate","3045022100901576bd5b83ac96caa473db72aaa0c06113d991a68d317e00c61f0850102a4d0220649d83179bcdcf9b7ba0a416e53c06a8ff26d44ea6d2cd1ccfda2827e4edfc73","0xE1c7E30C42C24582888C758984f6e382096786bd",!0,!1,null,null],["ethereum","cure_farm","CURE",18,"Cure Farm","304502210092bf96b195b66db93a86f5ece92bfb07b0da3ee94954992c571c39960d93496002205e56738df36b8ecf50ecfdef0c6b452bfc227391f596a6da5e3f45e336726d59","0x089A502032166e07Ae83eb434c16790cA2FA4661",!1,!1,null,null],["ethereum","curio_governance_token","CGT",18,"Curio Governance Token","304402205bf72ebe84b9e86d727e38e739dea6648185625edd864ef049ec2e8975b90716022055af43e1ea1d154e2b77ae9952d7341def6d76c6efe37d970c3c4f7b8eaf98a9","0xF56b164efd3CFc02BA739b719B6526A6FA1cA32a",!1,!1,null,null],["ethereum","current","CRNC",3,"Current","3044022038dc39dae3564575fbf9c9de9826cb86d5ae5156693021a424d6c01d91bdf7e6022033ad5df3d789b4caeb92bfdfdb1ba8f2d068de7eb0e893927eee694ed21d4b6e","0xC9a1e678c9025f0D4Cf129D6De0d80f07d97A36F",!1,!1,null,null],["ethereum","curryswap","CURRY",18,"CURRYSWAP","3045022100f67e13f7625da4207d5d101f103cfb4dc40e75bbb91abe9b7fb7af6eacf8b1b9022038d0b971072e5edace7b665eda71bd80f86563f0dac9ff2ace1f714238ff65c8","0xc2D3AE29c8309c14994D02Ecd228cf86f3Efde77",!1,!1,null,null],["ethereum","curtoken","CUR",18,"CurToken","304402204f8e8302ca7492d39c3394886c825305ac1dfb50e0c90a2e1fe97379058a9e9702206e17f231582603b8355cf14db336c512da2fce22eee179a5ce116d9ebec1354b","0x13339fD07934CD674269726EdF3B5ccEE9DD93de",!1,!1,null,null],["ethereum","curve_crv-eth","CRVCRVETH",18,"Curve CRV-ETH","3045022100fea34a83ca66defdf374ade33fd602b40c093d19204e890d7613727f2334e98102205ab300c9553c39b5a72a67e1b796acfe0931d94c9ee8a6ba1465c43ac6fb91d3","0xEd4064f376cB8d68F770FB1Ff088a3d0F3FF5c4d",!1,!1,null,null],["ethereum","curve_cvx-eth","CRVCVXETH",18,"Curve CVX-ETH","304402203aa4ffbe8612b975aa06750a662bfba179460e1428bc99d2dee60c40ebe48a3c022025bdae0e985a89002ae67479e98f9417d5ed6c23f6d9b6ee4e7ca35fd01b95c9","0x3A283D9c08E8b55966afb64C515f5143cf907611",!1,!1,null,null],["ethereum","curve_dao_token","CRV",18,"Curve DAO Token","3045022100e47621bca5d6aeb32925b7c270f5683edbc9d3ca00ed4d56d596a8e0589079dd022018f998767ed9351cd410b3370a284a8157aa1d887069c214a3f0cc8e8b3ed6bf","0xD533a949740bb3306d119CC777fa900bA034cd52",!1,!1,null,null],["ethereum","curve_eurt-3crv","CEURTUSD",18,"Curve EURT-3Crv","304402203366fb24a08a1329c4fcf768f787d83d5c477b5698b3e955a7cb7378efd66373022073078274fdee69488275da203741f5a79d62c7766f400e391778cebbb2339287","0x3b6831c0077a1e44ED0a21841C3bC4dC11bCE833",!1,!1,null,null],["ethereum","curve_fi","YDAIYUSDC",18,"Curve.fi","3044022049d8c06d655c4491d2750b92c39bb0e9471f2bcc1ffa98beba7df6f4bb5da40302206d00132a79c16fb7bc9ea2c9a9a35be5d78c7a96b0a04ddbe038758776f3e034","0xdF5e0e81Dff6FAF3A7e52BA697820c5e32D806A8",!0,!1,null,null],["ethereum","curve_fi_daiusdcusdt","3CRV",18,"Curve.fi DAIUSDCUSDT","304502210088fe5ad0aa456c61843e5eb38e6a56158c89f75cee573cae434a3e25df5bfe7c02203381a06f53c937fa4d2507c509b41d0084cb06ad1ad431515fa4195e2a0d0b8d","0x6c3F90f043a72FA612cbac8115EE7e52BDe6E490",!1,!1,null,null],["ethereum","curve_fi_daiusdcusdtsusd","CRVANDUSD",18,"Curve.fi DAIUSDCUSDTsUSD","3045022100fe62a4b5d1d183b91f2bc42e6fb8940c4c93caaf7440d71c113475a087688a7c02206d9e236c7b2d5593b2f34cc2d400106e9bcfa150a7cb1e49170dd3bfbf6cfa26","0xC25a3A3b969415c80451098fa907EC722572917F",!1,!1,null,null],["ethereum","curve_fi_ethseth","ECRV",18,"Curve.fi ETHsETH","3045022100f8ed223ef2f03c037c2596e79d8ee4a66b78c65fabbdfce7ff20f54f794fa61602204876931480db28ef8a0a1d5ce6a609cbefee9360249a3648cabdceb6a2c69ae5","0xA3D87FffcE63B53E0d54fAa1cc983B7eB0b74A9c",!1,!1,null,null],["ethereum","curve_fi_eursseur","EURSCRV",18,"Curve.fi EURSsEUR","3044022064fc4e064c2833f9b883e867482d549f5e710843f65db55956cb83393d979f6702203da7866950330fd6db9904f722c607b20bad3d2bf65a044e42cf83b4ee62b8b5","0x194eBd173F6cDacE046C53eACcE9B953F28411d1",!1,!1,null,null],["ethereum","curve_fi_factory_usd_metapool_frax","FRAX3CRV",18,"Curve.fi Factory USD Metapool: Frax","3045022100dcb6618d6bbb38a89c348d690a64e5a8727dc03320348d5ea3b583736b9f383102202cdf7e055f09d387c60733ec206476361ee3e2039d2ddeba42de310efbedb671","0xd632f22692FaC7611d2AA1C0D552930D43CAEd3B",!1,!0,null,null],["ethereum","curve_fi_renbtcwbtc","CRVRENBTC",18,"Curve.fi renBTCwBTC","30450221008103bc30a9a3e4cb56a2ecb6c842a1db5f2f4d9dda7a9604a684719d87e502c4022022b549b713bb832f487606eba91a20d481b5f47af38fda58e0b4bbea1df32cc5","0x49849C98ae39Fff122806C06791Fa73784FB3675",!1,!1,null,null],["ethereum","curve_fi_renbtcwbtcsbtc","CRVRENBTC",18,"Curve.fi renBTCwBTCsBTC","3045022100d16b6f0653d6c66cd01e9eea0aa821116ac148ec9337956c966c3d612b73e51602203433c3e67635fd038ed38be1f9b2ea59aa320e5e5be4668645632411e793199f","0x075b1bb99792c9E1041bA13afEf80C91a1e70fB3",!0,!1,null,null],["ethereum","curve_fi_usd-btc-eth","CRVTC",18,"Curvefi USD-BTC-ETH","304402205f0af371ff32912c3d7f4e0b8964c39c9a06106b414bec5500c16e96b4d8ed10022006a02dc8a2712f6b525ce8b378f11c7bf46fb966024800460e8b005c02c16b42","0xcA3d75aC011BF5aD07a98d02f18225F9bD9A6BDF",!1,!1,null,null],["ethereum","curve_fi_usdk_3crv","USDK3CRV",18,"Curve fi USDK 3Crv","304402205ecfd28b0e22d2182ceaf37c1a85c548eb00e661a02a2d9e38c593c87bd7172302205f3b6d641d0d1ec680840105355ec4046bd6a3ee0d2d4855c818143ff15bef7d","0x97E2768e8E73511cA874545DC5Ff8067eB19B787",!1,!1,null,null],["ethereum","curvefi_cydaicyusdccyusdt","IB3CRV",18,"Curvefi cyDAIcyUSDCcyUSDT","304402200987fe4cb6b214d7d9b618b2ccc3c7d01cafc984cb8d9ab796c096e4124188fd02206e3cf24809ad5bcb5531a197a577310aa68af74de283b4660e7c7b6bcb2475f4","0x5282a4eF67D9C33135340fB3289cc1711c13638C",!1,!1,null,null],["ethereum","curvefi_dusd3crv","DUSD3CRV",18,"Curvefi DUSD3Crv","304302205f37f8a982d97fbee33d6c1beb4696e6319375eff89c61c32a93b4ea93b16584021f6f5445076283c63bd484e75b6b86838d069a4b90dff8023eaec871a573fad5","0x3a664Ab939FD8482048609f652f9a0B0677337B9",!1,!1,null,null],["ethereum","curvefi_ethaeth","ANKRCRV",18,"Curvefi ETHaETH","304402204eeb93e039b7f839c57b766e29f471790885731789151bccd38fb4752f1f7b430220527e6b5caccfaccf99c4efdfb7c39d8083f7d7fa150e9d10497b72f00e5f892f","0xaA17A236F2bAdc98DDc0Cf999AbB47D47Fc0A6Cf",!1,!1,null,null],["ethereum","curvefi_ethsteth","STECRV",18,"Curvefi ETHstETH","3045022100b9b4f0127979644ae52669e84ef626cb73e6a4a5ac7ddfedb0267ab8973000ed02207aa61dc7cab5684c19c7e64543c688cea38dfcd5f43060b13a49ff138332cab4","0x06325440D014e39736583c165C2963BA99fAf14E",!0,!1,null,null],["ethereum","curvefi_factory_crypto_pool_yfieth","YFIETH-F",18,"Curvefi Factory Crypto Pool YFIETH","30440220550886b164e7384f6012a3e888b07ade73c94bc521c63341209d347a0663a27e0220440265d63d851defa22ff025037552652e93406822876d81883f60652dc3e107","0x29059568bB40344487d62f7450E78b8E6C74e0e5",!1,!1,null,null],["ethereum","curvefi_factory_plain_pool_3eurpool","3EURPOOL",18,"Curvefi Factory Plain Pool 3EURpool","3045022100dd90f5487db6eb729317641f24ddb53c5a7a984ec2a534a2b91602961b5d871f022077d6de608ca2c4a8d2c3d23f3bd58da536af0ba561304f491e5894266b6f66a4","0xb9446c4Ef5EBE66268dA6700D26f96273DE3d571",!1,!1,null,null],["ethereum","curvefi_factory_plain_pool_cvxcrv","CVXCRV-F",18,"Curvefi Factory Plain Pool cvxCRV","3045022100f6bccd29c5881691e1f35fa68f731a57d750e2d5e7ad6008c91fe0e08d9509420220510da4558dbdd3b1efd6b8a5a03410ac46b6b8202a749dfe56ce113a2de6b4d9","0x9D0464996170c6B9e75eED71c68B99dDEDf279e8",!1,!1,null,null],["ethereum","curvefi_factory_plain_pool_ibchfschf","IBCHFSCHF",18,"Curvefi Factory Plain Pool ibCHFsCHF","3044022044f653158c72ebc6151e17e650945a8cd2dc5e1fa0b3a76f8f1f8844a6cddf450220571740d87045bad378a306d09b701adfcea74a1e26c6b45f0a8a50c70009d301","0x9c2C8910F113181783c249d8F6Aa41b51Cde0f0c",!1,!1,null,null],["ethereum","curvefi_factory_plain_pool_ibeurseur","IBEURSEUR",18,"Curvefi Factory Plain Pool ibEURsEUR","3045022100f8a75c0acb6f86ca9ccb209feb1728042756c6f38d4627f7cceef492046dcb9e02207ec31e25f3ec2cecab516282bb481dbe31a093d2dab02c2a962c64c647f33a07","0x19b080FE1ffA0553469D20Ca36219F17Fcf03859",!1,!1,null,null],["ethereum","curvefi_factory_plain_pool_ibgbpsgbp","IBGBPSGBP",18,"Curvefi Factory Plain Pool ibGBPsGBP","304402200cbd1d5a24cfe73f2f43abed51d704b460b39cadbed1391539da4d3b38db884602201424d8cea14eab4e2d2991c739892045052d23e40d825a51965557d1bd00fa49","0xD6Ac1CB9019137a896343Da59dDE6d097F710538",!1,!1,null,null],["ethereum","curvefi_factory_plain_pool_ibkrwskrw","IBKRWSKRW",18,"Curvefi Factory Plain Pool ibKRWsKRW","304402207d5462dc08aa2cdd79f11bc0de0afa6f903b6f64e348eea43ea577f090185a8b02200face7e2ec3896a9f1e1e6341479b201cd8df00759786beb42e80b92b40fbea4","0x8461A004b50d321CB22B7d034969cE6803911899",!1,!1,null,null],["ethereum","curvefi_factory_plain_pool_neutrino_eur","EURNEURT",18,"Curvefi Factory Plain Pool Neutrino EUR","304402200f87960a420fb148842adc17f735024a187bd1299c555f8471ffabfc5b9cdcbe022050ba876539a4700c39e9ffaeddde133d1802d2fa03fa01517b3b44ca8a5d3ee6","0x3Fb78e61784C9c637D560eDE23Ad57CA1294c14a",!1,!1,null,null],["ethereum","curvefi_factory_pool_aleth","ALETHETH",18,"Curvefi Factory Pool alETH","3045022100c9a10d8ea9e77a0a200efb2e9d2a170b81e62c1245e87e8ba9e89904c4e2777702205cef8c90ce093ffd4626014f506a13e141b51bafea6b084f400f7aa90ffcdbc3","0xC4C319E2D4d66CcA4464C0c2B32c9Bd23ebe784e",!1,!1,null,null],["ethereum","curvefi_factory_usd_metapool_alchemix_usd","ALUSD3CRV",18,"Curvefi Factory USD Metapool Alchemix USD","304502210099e35b64a3ffcc2eb05ff263674d2775647330cb53d628879395aec0a8ef38aa0220387a06ab1453b700f7a5188a20dbfe51ffaa37ae7872362ac6ea33a7395b400c","0x43b4FdFD4Ff969587185cDB6f0BD875c5Fc83f8c",!1,!1,null,null],["ethereum","curvefi_factory_usd_metapool_binance_usd","BUSD3CRV",18,"Curvefi Factory USD Metapool Binance USD","3045022100e4c452b4c6251a7ac3005205338f88c62e40da02abb76d6457a3f42755af2f42022040d7927c60b762c3e00aa18d8f1aa50a3892b55aa6527071b8b104d0f6abb28f","0x4807862AA8b2bF68830e4C8dc86D0e9A998e085a",!1,!1,null,null],["ethereum","curvefi_factory_usd_metapool_dola-3pool_curve_lp","DOLA3L3C",18,"Curvefi Factory USD Metapool DOLA-3pool Curve LP","3045022100ec5d1649d94fc8ab5f29b199731f73b34b109137aabb8346cf6412214386fc3102207edb744fa5a4e180947d45878c79959c3fdc21d1024dce2b9b71ef38166ad419","0xAA5A67c256e27A5d80712c51971408db3370927D",!1,!1,null,null],["ethereum","curvefi_factory_usd_metapool_liquity","LUSD3CRV",18,"Curvefi Factory USD Metapool Liquity","30440220749263e9ab1c22de3e7b859b9905d8c0825c4f314bd128abca20c3f56e357ce60220611402f665c0d8b48d261f696436b944627bdddfe3797ec9e11a77b18e03e3cf","0xEd279fDD11cA84bEef15AF5D39BB4d4bEE23F0cA",!1,!1,null,null],["ethereum","curvefi_factory_usd_metapool_magic_internet_mone","MIM3L3C",18,"Curvefi Factory USD Metapool Magic Internet Mone","30440220494c6ef553adf2718b41ed613e7c240d414cd8de395f7c44ed7aeeb1c3c6cf910220348017e344b7e4a6e7b4ae3be5d8f3aa8a73f3d32976e3a3b856cfb98d56d2ff","0x5a6A4D54456819380173272A5E8E9B9904BdF41B",!1,!1,null,null],["ethereum","curvefi_factory_usd_metapool_origin_dollar","OUSD3CRV",18,"Curvefi Factory USD Metapool Origin Dollar","3045022100bd97b541c61e0cc3908957909e4b24b0eee5b52016612d26fe98b637c3c965a80220225aa411b97cfcac9379cb9856da2100dedb2cd3b9cfdb11acc58373cc241d34","0x87650D7bbfC3A9F10587d7778206671719d9910D",!1,!1,null,null],["ethereum","curvefi_factory_usd_metapool_trueusd","TUSD3C",18,"Curvefi Factory USD Metapool TrueUSD","304402201bbb8a61ef1b7397cba1a02f3f38adf8a5ca84e77fd036ab07914e2ed5e7bcad02204bf05c91f6d6570637fea86536a7d54272914a66e8e60a596a7cfac5327d2022","0xEcd5e75AFb02eFa118AF914515D6521aaBd189F1",!1,!1,null,null],["ethereum","curvefi_gusd3crv","GUSD3CRV",18,"Curvefi GUSD3Crv","304402201a5d6ee2eb51347a2f0667d997c45a5ce127731c960fbd910824388c7124725e022012d39c527a65f53349acef3a5e60a7c65d48d1c2130ed83cf41878b60f2b79c6","0xD2967f45c4f384DEEa880F807Be904762a3DeA07",!1,!1,null,null],["ethereum","curvefi_hbtcwbtc","HCRV",18,"Curvefi hBTCwBTC","3044022068336a86ad4bfe2678c7f8b45799d49fbd22ec2586df7cd0efc31f9335810b610220252ba53934f425c720a6ac2441a0c3aa07516023ab45501529891cd257c7d88d","0xb19059ebb43466C323583928285a49f558E572Fd",!1,!1,null,null],["ethereum","curvefi_musd3crv","MUSD3CRV",18,"Curvefi MUSD3Crv","3044022058144637486ef550b1b09c561904ed1c545d5a46c130def2033aa190a3e23bb602206e6c7093b1e2131e6de486072d8f212edff900a024419cb5d58828022243fb99","0x1AEf73d49Dedc4b1778d0706583995958Dc862e6",!1,!1,null,null],["ethereum","curvefi_obtcsbtccrv","OBTCSBTCC",18,"Curvefi oBTCsbtcCRV","3045022100f757ce434b70115450ea469a6f705f8e6516d68ad7875a8fd34923c2ccfd6742022009851d2821a986ab6ab0c2ab1f63a0a32f5359b2e3e103fe3d8aa748beff3f2b","0x2fE94ea3d5d4a175184081439753DE15AeF9d614",!1,!1,null,null],["ethereum","curvefi_tbtcsbtccrv","TBTCSBTCC",18,"Curvefi tBTCsbtcCrv","30450221008ab9b0c7f56d2d42c726ddf943aaef2824a6a4135a8d845488a60223c74ecad402201204eae7b37e6138753cd1d22637a9b4cdffc895cffd6b31383fa2a8b021be1a","0x64eda51d3Ad40D56b9dFc5554E06F94e1Dd786Fd",!1,!1,null,null],["ethereum","curvefi_usd-btc-eth","CRV3CRY",18,"Curvefi USD-BTC-ETH","3045022100fa5ba10fa986a758456d184b041cd37ed98dbfa0696e76b4821fc2600cb462fc02201b9057ce952232c427bb199b3dae73a7436aac9c4ba1c0082f2f16df62c96b9e","0xc4AD29ba4B3c580e6D59105FFf484999997675Ff",!1,!1,null,null],["ethereum","curvefi_usdn3crv","USDN3CRV",18,"Curvefi USDN3Crv","3045022100aa3ef4e225c1a18a8f33064e16620aabbdeaa51f7b1e8a8e9efdc5bc336a93f202203d15eb6b314fb8250af1e7eed01882bb6a32e395700812b4bdd36242ceed8216","0x4f3E8F405CF5aFC05D68142F3783bDfE13811522",!1,!1,null,null],["ethereum","custody_token","CUST",18,"Custody Token","3045022100ba852161614671d8ba7c153242efa6629489ef17ff4c126657c50cbdee5692ed02203dbc28e0194ebb9b835372d9fbf61c2742350826935ab0ab3df21a99db339bd0","0xf6ABff616043C2dA572573dCC583B656297b30e7",!1,!1,null,null],["ethereum","customcontractnetwork","CCN",18,"CustomContractNetwork","3043021f34e866486825cab6a9b2516931a169218c14b160d927119d5130250342757a02200ee9003475e592ddf936801ca33ff4acca4de53ebeae1f9c23fee9a5cf052e70","0x17B26400621695c2D8C2D8869f6259E82D7544c4",!1,!1,null,null],["ethereum","cute_coin","CUTE",18,"Cute Coin","304402201e1576c44ca1f77d3dffedfe3e0aa780b4dd04d5985c0a47f2385ecaea5bbb34022038253696f030ebdfc9bb973eaec66e1644f637a1de6078eb3edb44f0f936da71","0x047686fB287e7263A23873dEa66b4501015a2226",!1,!1,null,null],["ethereum","cvault_finance","CORE",18,"cVault.finance","3045022100da73a1ed4aca5fc4a820e9fe9c2700bfac914e47ea0995c41c8ed3889d97c2fa02205d90e7498433c7872a9337fe51a7e75ffe3c3054d78039b33f5e5f51a082f961","0x62359Ed7505Efc61FF1D56fEF82158CcaffA23D7",!0,!1,null,null],["ethereum","cvntoken","CVNT",8,"CVNToken","304402204424e706413f1308809ede153099023764f1f6f11281e54521c966fba63f4fcd022066dd98bbb5d38d63590bce6d56c09549783ae475bdbc8b3dbad9dec7c222d515","0x6400B5522f8D448C0803e6245436DD1c81dF09ce",!1,!1,null,null],["ethereum","cvp_token","CVP",18,"CVP Token","304402201a33f843e20817b011287342faa85ca9f16d8e877db9661b22a4f4eafd1b246b022074c7fc90e363f5322c2575869d2d6885f4fb85e4e6c8711ff09d162207949d2b","0x19fd4C760A7d4a38aeE9F226035cbC9Fdf434FFe",!0,!0,null,null],["ethereum","cvtoken","CV",18,"cVToken","3044022067334f04743b91e1d47c84cedd60a3502a61b27ca98ad7697afe62dfe2626c13022079171af7947dd9f64fc5aba073fb8fe206a2d354d7672d074507be697a8ab2a1","0x50bC2Ecc0bfDf5666640048038C1ABA7B7525683",!0,!1,null,null],["ethereum","cvtoken_","CV",18,"cVToken (old)","3045022100b33405098644d50164d47b8746d27f418704f5d83198c2bed88909047eb18a7502205428d42db2f4293a10ddcfd60c51a1b5e37a268539e03a92f703b06c405445e4","0xdA6cb58A0D0C01610a29c5A65c303e13e885887C",!0,!0,null,null],["ethereum","cxn_network","CXN",18,"CXN Network","304402206f789701b591f4ecb2f020eb8151925efb2661e89b1b02b5ec875e81b5343b3f022064b8ca3168540e27aa6195a4a6cd79472d9e63708c4cfb6ffa792a7f0a3c2455","0xb48E0F69e6A3064f5498D495F77AD83e0874ab28",!1,!1,null,null],["ethereum","cy_finance","CYF",18,"CY Finance","3045022100d748d2e0a93cf5eac36b81de359c1f389ac173c0ae8a1e7640308de1ecd5b2960220454a3ec9206111321a5c90c71eb418ab1cdbaf26b521303253b84e0202a6e0e1","0xdB33d49b5a41A97D296B7242a96ebd8AC77B3Bb8",!1,!1,null,null],["ethereum","cyber_doge","CYBERD",18,"Cyber Doge","3044022014acce12e057c2580fb1a43a35477a2934f24adffed4c04e79a8396e9274117502200304d0fd6e68b4aae026982eccf71681f4a2ccad226680f2187e464971127d5a","0x481578423221A35b9358cFe5400D202d2bDc66f1",!1,!1,null,null],["ethereum","cybercoin","CBR",18,"Cybercoin","3044022008cf456687820ad400e6a986f13d3e936efe6999d265848f06358d0e8fcfda3202201df4e29656eb4db00f2668c2cf866a3c820bd78f6763806653c384a4898b71ea","0x4Ba012f6e411a1bE55b98E9E62C3A4ceb16eC88B",!1,!1,null,null],["ethereum","cyberfi_token","CFI",18,"CyberFi Token","3044022033f37518cb411f4f0815d82bc310d527634b09c9f389cf46f2dc1644bd95047e02203dc7bb64ef4ac1d4e779baf5618cdc05c5ae257ca4d04e5b867df2e5607d166c","0x63b4f3e3fa4e438698CE330e365E831F7cCD1eF4",!1,!1,null,null],["ethereum","cyberfm_radio","CYFM",18,"CyberFM Radio","3045022100b3921199aea0df11d38a964fe7a86e9068eb3d28417f6da0319da5d1ad2c3ea802204199f0aeeb756c76c4a810dad7a27f0c7b95bc52727aa20eeed8a47eb207f993","0x4a621d9f1b19296d1C0f87637b3A8D4978e9bf82",!1,!1,null,null],["ethereum","cyberkongz","KONGZ20",18,"CyberKongz","3045022100eb91fc4a2f00e31685855b9a5bbc1181a833448e2fb26f3eb9834f153f82764a02203f3151beff8140777cd0e35a40320a7b4b6752952877078d1476ad7c89fc74a4","0x9d59eba4DEAeE09466Ba9d4073BF912Bc72982B0",!1,!1,null,null],["ethereum","cybermiles","CMT",18,"CyberMiles","3045022100892eb7cb764816ed204fc989d6c8ad7987dce1ae042995a7287b928e0f78c901022012e922e7d321a7da6353b1ebadb8a81a390c8dbba0a4d603564ef061bf61695b","0xf85fEea2FdD81d51177F6b8F35F0e6734Ce45F5F",!1,!1,null,null],["ethereum","cybermusic","CYMT",8,"CyberMusic","304502210096919c592af18fa81a145d8fd127f609718149bd2448ffb5baf6e6d8a3acd31d02200c0e86bdfb5b835b0430ba7d92524299002035b5d207d1f54118887d04c132e1","0x78c292D1445E6b9558bf42e8BC369271DeD062eA",!1,!1,null,null],["ethereum","cybertronchain","CTC",18,"CyberTronChain","30440220048751db56770df2ad1e5a70ea591b1de075525361795fde48192a8a3b665f660220072da2228b9235be3dfb9fa1ae26a87373471cd79e878b72c9a0dd183debd557","0x00B7db6B4431e345eee5cc23D21E8dbC1d5cADA3",!1,!1,null,null],["ethereum","cyberveintoken","CVT",18,"CyberVeinToken","3045022100ba310c2ac04d57a58e51583442d26ede7388c498bbdc8dab606a5c85e313e4a302205009865cff666342c4204d66f0d36a01bea50ce1c36ae02e65b03f6b84edf6c3","0xBe428c3867F05deA2A89Fc76a102b544eaC7f772",!0,!0,null,null],["ethereum","cyclone_protocol","CYC",18,"Cyclone Protocol","3045022100d0f91bb4d9c0d1f4070a26ce2ee4c31a04d954c1212e67b70305efa492ff0cff02207d877e556b8a697b080246aeee38fdc35c447d520343097331a198ed3d3f3fe1","0x8861cfF2366C1128fd699B68304aD99a0764Ef9a",!0,!1,null,null],["ethereum","cyclops_treasure","CYTR",18,"CYCLOPS TREASURE","3045022100f4507bed975ac090ad748f8e1ae7fbe94605fac178b641471bde461c478d207702207e08281767fa5d02ca1ed854ad9e4f7ee621681880c697a5b3de02e37ca6c4e0","0xBD05CeE8741100010D8E93048a80Ed77645ac7bf",!1,!1,null,null],["ethereum","czr","CZR",18,"CZR","3045022100d769538fae88a1680cd02f0b947b1306941cb67b6c3c1b02026ee8d03f5a8c2502201fe3b1adcb8980a3c7c61b052c4c88a53395c5e765a331173d522cfe46034028","0x0223fc70574214F65813fE336D870Ac47E147fAe",!1,!1,null,null],["ethereum","d_community","DILI",18,"D Community","3045022100d3e9cbaef8322db1295f8eaffb332f71c24947e8a1a679fa6ed4f4ad4fcb70320220319da58091035c6c2dc755cc7079a92dd4e758b8981916eed0b7297e7218ce62","0x37F74e99794853777a10ea1dc08a64C86958F06a",!1,!1,null,null],["ethereum","dab","DAB",0,"DAB","3044022027d0604f0e48de31daaf788a2f18de37b0c9243fb460ba3af7f043d99a63cae90220513c7eef97d35b923f881061648d07ccdfb9ed2c8fa3a6509a32dda9db9e9079","0xdab0C31BF34C897Fb0Fe90D12EC9401caf5c36Ec",!1,!1,null,null],["ethereum","dacsee","DACS",18,"DACSEE","304402206ec4530680b17d28f7ca5d7f98301b810c15cc615b2f173d56ea39c7d79eabae02200de77342f321ea81af4f10914dbecfa11e34cc3a317c1bd94471a9ff4189297e","0xA31108E5BAB5494560Db34c95492658AF239357C",!1,!1,null,null],["ethereum","dacx_token","DACX",18,"DACX Token","3045022100c69ddb53cb2b114332f657fdb7f323ea5658965b0f037dd57852091e8fbb988e02206dd7518010d7eb3fc18115798bfc55a5217fbcdd1b4393fd3b072c576a468e0e","0xF6ba659b419392b722ed63d4f5232822ECEFF262",!1,!1,null,null],["ethereum","dacxi","DACXI",18,"DACXI","3045022100e10d0b0a45434d4714619d332406150a0fadaa62ff65fbaacd582b2c9ba752e2022023838b07940904326275cf4f7078bbf263201093f1d228509674a07b2f427663","0xEfaB7248D36585e2340E5d25F8a8D243E6e3193F",!1,!1,null,null],["ethereum","dad","DAD",9,"DAD","304402203e9e3d1d680c039459552d96caa438e5742fd7a5e2e949ecd33d435f62737f1a02206023144cfd9d9683868796889f0e6f071bdd3ea86df4ce1a7df1089628a5aa89","0x5B322514FF727253292637D9054301600c2C81e8",!1,!1,null,null],["ethereum","dadi","DADI",18,"DADI","3044022001e76f594a468cac7519930225707cc3487117b99fabc17ef388146083c851a602205f6bac834cbc28246ed518b9077457f0499a81fcd32064f3b919cd234b487de6","0xFb2f26F266Fb2805a387230f2aa0a331b4d96Fba",!1,!1,null,null],["ethereum","daex_token","DAX",18,"DAEX Token","3045022100b261204c971917df5eef93414304401bd1569c4667cb097ea1f5376fc5315a870220711412ffb23cca56566562b9d01d857bfaf84f97ba11aa9e7504476c754d2416","0x0B4BdC478791897274652DC15eF5C135cae61E60",!1,!1,null,null],["ethereum","dafi_token","DAFI",18,"DAFI Token","30440220668dbcde100616799f0b7a0b0287e7bab3ca9a2fb4b2f279118972830b3acd4502204df645d3ab3c39cd12f28f32dca818b5d265bd9d66798f8103655267c6c34565","0xFc979087305A826c2B2a0056cFAbA50aad3E6439",!1,!1,null,null],["ethereum","dafin","DAF",18,"DAFIN","3045022100c937feff64f854c4dcfda1708321803f7ceee8df3b768f4c2df6ddc207b1a27002202269cde48e58eaf590b583879c9bec5e2587b74d492bd414453c3a28049d64f6","0x5E031a5bC1c6b6E86A49e0B0F2e757800F1D0FFf",!1,!1,null,null],["ethereum","dai_stablecoin_v1_0","SAI",18,"Dai Stablecoin v1.0","3045022100b97c2d3583b53dbda0b19463a0cf97199dd1ca848fd7d83b6671a9e9ff74d0ec02200c91b8a5077fe982706fee99ddcbdaaaee88dc03ffc7857c0ed99716a48c31a3","0x89d24A6b4CcB1B6fAA2625fE562bDD9a23260359",!0,!0,null,null],["ethereum","dai_stablecoin_v2_0","DAI",18,"Dai Stablecoin v2.0","3045022100b3aa979633284eb0f55459099333ab92cf06fdd58dc90e9c070000c8e968864c02207b10ec7d6609f51dda53d083a6e165a0abf3a77e13250e6f260772809b49aff5","0x6B175474E89094C44Da98b954EedeAC495271d0F",!1,!1,null,null],["ethereum","dain","DAIN",18,"DAIN","3044022043dbd975b27d104694fb32d08299b40fc93de9463a6e7387b131f389bc7df8570220115c44842349127986a00182604fd7a67e6a0e99ac9f0fabb3b1614c39476fde","0xd7d706ED3598a354A4aDFce5D8C5383dF99a4461",!1,!1,null,null],["ethereum","daiquilibrium","DAIQ",18,"Daiquilibrium","3044022037548695171456719acdd9ddb649d235f9c78805a8e15a85bff030745af2ee73022015d031fc7aad78f829f16bcc29117a98305fc5ca0ce8ac19937d41c9f59bf64e","0x73D9E335669462Cbdd6aa3AdaFe9efeE86a37Fe9",!1,!1,null,null],["ethereum","daisy","DAISY",18,"DAISY","3045022100bdd2ade63e7c1661cdb55da2388387fa8925b2681a23cac2557db4734128f23b022005307dfee5ce02d9eda0f521673ac7b17204964e24d7de8dc2637357a1a45fe6","0x40955D77F87123b71b145098358A60573ac7BE96",!1,!1,null,null],["ethereum","dalarnia","DAR",6,"Dalarnia","3045022100b7af008775c285d2b12427028a7f34c9546b2a335b38d69494710185d4288ed9022065b8d53ac57add7edd51ef3ce673325d0bca0c378a2c6593e71ee72637e5a7c9","0x081131434f93063751813C619Ecca9C4dC7862a3",!0,!0,null,null],["ethereum","dalecoin","DALC",8,"DaleCoin","3044022077eec0482204b4776e33e5f24b1cd9d60e0297b2f540dca9287389115dc7d5540220433906a532ed746b623e2c62858a1feaa6183f1866e151a690d651864ad2c0b6","0x07D9e49Ea402194bf48A8276dAfB16E4eD633317",!1,!1,null,null],["ethereum","danat_coin","DNC",18,"Danat Coin","3044022011a26931ecbcfc9742b0e71df0c11dafc2634535ca26e623da61cc830d1a3ee60220759752fad9e8e199e1badccbf8c6de31cd49b2c2dda79e1054e814433329dba7","0x0fbe9Cc858D7AD6e246Fe9D01Aed22abD2A66f0B",!1,!1,null,null],["ethereum","dandy_dego","DANDY",18,"dandy.dego","304402207bb965dc1406235d804f248a5a33ff09d218def0e26f899942a00c95b82a66d5022077085ef03c447e6d930273b4da0bc1e821cea7177306dfdb84a3af99a26cf723","0x9Dfc4B433D359024Eb3E810d77d60fbE8B0d9B82",!1,!1,null,null],["ethereum","daneeltoken","DAN",10,"DaneelToken","3045022100cbe2169572055e9b189d9c7ccfaaa51d23957911f60a47d4f72182bee290f2140220374e2a75bea835be091744c33a4e7ae3821232a6bbf0a8b082486bd2f365c4ef","0x9B70740e708a083C6fF38Df52297020f5DfAa5EE",!1,!1,null,null],["ethereum","dao","DAO",16,"DAO","3045022100c5217b2d7fb064e36be6be12689794ca70c39db5a55c47690c63046709eec70502206123c9e4bf44e566366ab9c0551eb1dd901d1c3335da4980d11935937f328f77","0xBB9bc244D798123fDe783fCc1C72d3Bb8C189413",!0,!0,null,null],["ethereum","dao1","DAO1",18,"DAO1","3044022017bccc30337997c2e0b40a6d0f29f77afe2edbfab86dbb9d7fd9c6e112acc6f7022017d24b176ed61861a869bfaba6f9994607d3629a8f91416ab8ee485df18864ee","0xCE3f6f6672616c39D8B6858F8DAC9902eCa42C84",!1,!1,null,null],["ethereum","dao_invest","VEST",18,"DAO Invest","3045022100f617404526cb769b0de16cef5e79f6d6b4be30d1744856a4772742fccb87533702204cb2ace863c7a1a2974c029a042bda8e2e651ec7dbdd205aa70a4c1b4e6f81f7","0x1f19f83fC9a25F3C861260143E36c17706257986",!0,!1,null,null],["ethereum","dao_maker","DAO",18,"DAO Maker","3045022100fa0d7bf3e2fb02aac28b7220e22c2a91750b726123fe8489c428476fa070752502205542189346dc715a1186e5ed0a3d7705bf1d4284e9ea0ffe37e8179585deaa2e","0x0f51bb10119727a7e5eA3538074fb341F56B09Ad",!0,!0,null,null],["ethereum","dao_playmarket_2_0","PMT",4,"DAO PlayMarket 2.0","30440220617300f231d3c6a1dc6656b739d8d339ac4dc794819c33c19059da780b34df3802206911cf1a4ae7e5dda6bf6fa632dba872a4b01228b65fe569debf67e9da649490","0xC1322D8aE3B0e2E437e0AE36388D0CFD2C02f1c9",!1,!1,null,null],["ethereum","daofi","DAOFI",18,"DAOfi","30440220312b4affc3d6df39fefcfaf6484b6917b9f34f61dd863881add889517c226d70022020336d1279c5a4ca48c337cacbeabcb10755daedf19c9d3abfbde114f998b776","0xD82BB924a1707950903e2C0a619824024e254cD1",!0,!0,null,null],["ethereum","daohaus_token","HAUS",18,"DAOhaus Token","3045022100d1694312609ad5a669518eb24a690e2d6032fb1d2cf09c6d105f928f9a6160b302202fc63027cd58e500bd95e923c074c1f5039dd37d95818129ace398f9b33980cb","0xf2051511B9b121394FA75B8F7d4E7424337af687",!1,!1,null,null],["ethereum","daostack","GEN",18,"DAOstack","3044022073c506a34b08d31b031165dd6b52568272a4444ce4fcd4fbc400865078fabea902206618350bb45568082d021151b7848c2de98e757729d23f77f22fbf3370d99168","0x543Ff227F64Aa17eA132Bf9886cAb5DB55DCAddf",!1,!1,null,null],["ethereum","daoventuresdefi","DVD",18,"DAOventuresDeFi","3045022100d31b92eb6790e98d355791a9629a2cf67d090781b1f30c5e088866d69ae3991b0220287bb6fd49d57f8007db3e9cd1be0e5d0c19a95ad9c0391115fda4c9dd118c63","0x77dcE26c03a9B833fc2D7C31C22Da4f42e9d9582",!1,!1,null,null],["ethereum","dapp_token","DAPPT",18,"Dapp Token","3045022100b90c07f674132005947dad072a9169d4fc787add60cf5c246476c14b7d130e5f02200854b182afabb54a0302dcdf7cc5d670648848b8c8fb4787fe81cce58832f158","0x96184d9C811Ea0624fC30C80233B1d749B9E485B",!0,!0,null,null],["ethereum","dapp_token_","DAPP",4,"DAPP TOKEN","304402201777b736308ea7c69971bef75a33a1ef5a5735671d6aa365d13d355cc2218bb602201d23ba83240e9da338bdaa2e76403fc349d275644a4bb6becab486725a7a7656","0x939B462ee3311f8926c047D2B576C389092b1649",!0,!0,null,null],["ethereum","dappnode_dao_token","NODE",18,"DAppNode DAO Token","304402205070f58a0f41809a64ac4d6c491746da4da61019f68d067c50073d8539815eb80220316508daf54c3e6b830f857a16fcc5b61c0aa4abf6a19cbdf02bde7c1541fda5","0xDa007777D86AC6d989cC9f79A73261b3fC5e0DA0",!0,!1,null,null],["ethereum","dappradar","RADAR",18,"DappRadar","304402200b72215a721cea620beb3492a45f328a388e90a0d5552d492564ea9fdef59a8702203614b36ffd96ecaf5f6725190da780d38f336bf67a863f7007af45f000d1dcf2","0x44709a920fCcF795fbC57BAA433cc3dd53C44DbE",!1,!1,null,null],["ethereum","dappstore_token","DAPPX",18,"dAppstore Token","3045022100ce9b60fd9f2ee2b2a09ddf4e9e39b91fa97c2208d57894b8883949a564227c8402203b408ba2e117cb2bd8d88b3ab52513d7418f9cd8c3dc53a38084f94dce9e4ace","0x00d8318E44780EdEEFcF3020A5448F636788883C",!1,!1,null,null],["ethereum","dapstoken","DAPS",18,"DAPSTOKEN","3044022033a58e0f49213a3421ab60cb6f432ae30112cc681925414790de04df5ad32b62022031f267a2095824ae1d5e5a874a049b559600c2047d5b219fa2a0740d2633d72a","0x93190DbCE9b9BD4Aa546270a8D1D65905B5fDd28",!1,!1,null,null],["ethereum","dark_bundles","DBUND",18,"Dark Bundles","304402206d8d0bd235aff92ce350e6c2e5aec812e0696071aaf737824e41da6f4364f2510220661510b4759f7bff424cb0ab56971a261fa67d2b6063730765f2ceb74675482c","0xC6d19A604FbdB5C2eeB363255FD63c9EEA29288E",!1,!1,null,null],["ethereum","dark_matter_token","DMT",18,"Dark Matter Token","30450221009492307119045bb032e43943f2ada2e5527f43061dca1dde3b013064840c79fa0220153f26375f4a6ba3dc332ed132d2686bc95703ccdf29e7dc2300412a9da173c5","0x79126d32a86e6663F3aAac4527732d0701c1AE6c",!1,!1,null,null],["ethereum","darkenergycrystals","DEC",3,"DarkEnergyCrystals","3045022100b4502da9f50ebb32bcd166054c4da272c1b37151e9e0fb658869b454263e545802203c5df9f4046dcfe285923389259bbad21a110a7cbf2a300b1c53d1872031485a","0x9393fdc77090F31c7db989390D43F454B1A6E7F3",!0,!1,null,null],["ethereum","darktoken","DARK",18,"DarkToken","304402203284fd3a625ccdf92d359cdbf0a42a5760bb787e4aa93f9f5b65f2eac0467ec402201b835dc2b71ce5be384fb16890944f4c021357a3abf0b18624b0706d48859f04","0x3108ccFd96816F9E663baA0E8c5951D229E8C6da",!1,!1,null,null],["ethereum","dart_token","DART",18,"dART Token","3045022100d223198197b9a483c320d1618530de910bb1a54f28e6de5c43f3c61f1e739b16022037c7ad22222e8f125f080a98374fb6f1746bae2e473b8e5031d6e3a72747d3c3","0x5a4623F305A8d7904ED68638AF3B4328678edDBF",!1,!1,null,null],["ethereum","daruma","DARUMA",9,"Daruma","304402207b9124ba65c0d772c6d3708f7135337a59d7c6b6a4127410503fc76f93ef896802201befde391c6185b18e8a979617834d1ca3ce37d7388e901c822dd49902641553","0xA888D9616C2222788fa19f05F77221A290eEf704",!1,!1,null,null],["ethereum","darwinia_commitment_token","KTON",18,"Darwinia Commitment Token","3045022100c02880362e2809d478be44897183664ed67b80be11ba4c85ce52c227ae0c8e990220262f0e2dcd669e6d6df03021ee654c8aa10bc83a28f012d464017fae7d9be4b4","0x9F284E1337A815fe77D2Ff4aE46544645B20c5ff",!1,!1,null,null],["ethereum","dash_2_trade","D2T",18,"Dash 2 Trade","3045022100858f721c9fbb00a4024b28ac6c08749937300b98177950e91920c5b56eba38d402202b0887f5e2dbf15d4374940c939e0016765418314a3283551360e41788a191d0","0x4Dd942bAa75810a3C1E876e79d5cD35E09C97A76",!1,!1,null,null],["ethereum","data","DTA",18,"Data","3045022100d3cb9c7c3749cc74feb7b6aa4774dea18203f931eb1957d6a6106f8227155d75022019099ed70853020d55e9b557cca7aa4bb570ab21520eda0bc6ec2c7c5bcf9f88","0x69b148395Ce0015C13e36BFfBAd63f49EF874E03",!1,!1,null,null],["ethereum","data_economy_index","DATA",18,"DATA Economy Index","3045022100d468acf83628cb38fcaa041dc001c4e17c2c145dc7dac9ad0b52ad91b76626c402200dd90d6d50b74808d2954c0b3013535983969bc21d8de0df2bd04b00612f741b","0x33d63Ba1E57E54779F7dDAeaA7109349344cf5F1",!0,!1,null,null],["ethereum","data_exchange_token","DTX",18,"DaTa eXchange Token","3044022033dafcd064e0ba65ecf224aee6fee1ae7abb4ed7aa0753947ec735e0ec5bc5520220737041ec6d0b8d8789bd181f6eb06c6fd70198c1e9badca6bcea174c0209197e","0x765f0C16D1Ddc279295c1a7C24B0883F62d33F75",!0,!1,null,null],["ethereum","data_know_your_customer","DKYC",18,"Data Know Your Customer","3045022100c0e08c82060eef32c175c54f8b739495882179702951b5cdf4a84f598a839a710220483e6dcdd4a10cbd3a5ae705990f22e4c5b939e34da1dde065f1091f7a7ec76d","0x38d1B0D157529Bd5D936719A8a5F8379aFB24fAA",!1,!1,null,null],["ethereum","databroker","DATABROKE",18,"DATABroker","3045022100c430ee2e13b951d1132d5d636e9032874ca916e364006d79d5e93fa15781434002207469a5fa1b5bc2e52c38aed01e2820930987b56fff35571921fb49a0b352a58c","0x1B5f21ee98eed48d292e8e2d3Ed82b40a9728A22",!1,!1,null,null],["ethereum","datacoin","DATACOIN",18,"Streamr (OLD)","3045022100c15f173d73245fdef486c583c5571fae46886c2d9a6a91459dbe70f796b2316f02207983247a2d27d0d8f3eca93b20274dba27ed7eaaf528cd27cec2c57dcec737ef","0x0Cf0Ee63788A0849fE5297F3407f701E122cC023",!0,!0,null,null],["ethereum","datamine","DAM",18,"Datamine","3045022100c69581a13d241c13098f890e92acf73a5b61d293bded9e83cd8a5033c5f4a3f7022069af4157ebfb6fe60bc3bff7a4c133920138702ca8aba4adddd880c229cbf915","0xF80D589b3Dbe130c270a69F1a69D050f268786Df",!1,!1,null,null],["ethereum","datarius_credit","DTRC",18,"Datarius Credit","30440220067fcbee4b2fbfd3de8e0c2b48ca3da9e2f5f0b1b7818980324b022f307697c202205e8d2ba041b7d0fe98c716988924967486866939d80fd34ae740ec379c23b846","0xc20464e0C373486d2B3335576e83a218b1618A5E",!1,!1,null,null],["ethereum","datawallet","DXT",8,"DataWallet","30440220384705aa5e359a5410a7f59603eaa921421e5b6f90c9c366b9f6ff646dd6462c022060bfd0d17c1dc2f91906682d208fba1c3b86b9e898d065de04501ce17b95d989","0x8dB54ca569D3019A2ba126D03C37c44b5eF81EF6",!1,!1,null,null],["ethereum","datbit_token","DBT",0,"Datbit Token","304402205507f7b301536c088443727a3a72525eb77a71b2257a0c648ffba72079df6d09022066ba20a05da5b72d9be4cf361181e1d49bf2524020b887558689d1ca3f2eec0d","0xC28D4341Ad8224E1a424558074eF0B4515f424d5",!1,!1,null,null],["ethereum","datum_token","DAT",18,"Datum Token","3044022019976dbd919ec535dd65da45ce69240a26dbff9dd26198a34c072bc5d3b4091902202f760d05c792fa8ef759c90163659ed3baa072c205684ebf33a11b2a5c1f3711","0x81c9151de0C8bafCd325a57E3dB5a5dF1CEBf79c",!1,!1,null,null],["ethereum","datx","DATX",18,"DATx","3045022100f37e48652607e025a2fd20955a3354938809a34267fb46530fb8876f73cf9c9802201b9d06f5c57539edef8b40c8564134bc6636ac90fb7c8c6ad562b5595b0d9c6d","0xaBbBB6447B68ffD6141DA77C18c7B5876eD6c5ab",!1,!1,null,null],["ethereum","dav_token","DAV",18,"DAV Token","3045022100a142c2445a6e6581d11a8086cd212f1fe642386b88f7e5f8417abb26810688bc02202c4962181510ce6b97b22de46e900306a33d0a0daa688bbed04b8bf226ab237c","0xd82Df0ABD3f51425Eb15ef7580fDA55727875f14",!1,!1,null,null],["ethereum","davecoin","DDTG",18,"Davecoin","304402206590b197cac6b9cab9e88de4b2a5fd24bc5c64b749d5ef92320c61a1f94cd1b60220706ffb922f5c7657b17d684c33bcb4b17508ddfbf185db0555833e28fa89b077","0x56CdBbeec9828962cECB3f1b69517d430295D952",!1,!1,null,null],["ethereum","daviesv3","DVS",8,"DaviesV3","304502210091ddcccc05adaebfc60d6e862c0d2210fd142f744ab43c12da7c3cd2934b369c0220092f46c583e0e22ca6df1bb38c175eeebf1c113fcbd2426975dfcf50e6ef7700","0xdcbcfFEEe34eB128336FD45eD62fe8f420c8857d",!1,!1,null,null],["ethereum","davincij15_token","DJ15",9,"Davincij15 Token","304402205fbaa5e198ddfd99412cb58e3fafdf91a1865ef830ce7348f92489faf1b0af6402207a53fa090f72224cbe4c97688ade76e2ab7c14ab0c58ac8176890c965e5fb651","0x5d269fac3B2e0552b0F34cdc253bDB427682A4b9",!1,!1,null,null],["ethereum","dawn","DAWN",18,"Dawn","30440220237042e3384a2b720aaacf53ecc2cfbdef148b719f850f8bcc8cbaa5456d270802207c09e6cfd1c846872b879acc414c9b0ae10440c4c2815e47ec978e549d6af0d3","0x580c8520dEDA0a441522AEAe0f9F7A5f29629aFa",!1,!1,null,null],["ethereum","daxhund","DXH",18,"Daxhund","3045022100b412b75bdaaea75e41739784afd9e910eb38d24cc2ad4645a6b14f9a6d49384202206a8a2e6825fab10558ceb796606103ec4c3fe244801f7b74229f1b3b1890cb81","0x42891d10B550d0c5C4ac2e17bcD7E2A19C7230f0",!1,!1,null,null],["ethereum","day","DAY",18,"DAY","3045022100f7efc4442c0c323784f19b512470a7d6cbb869bf26f2c3ca3bb2e7e00558322602201a8035e4a982b9161065952000cadb1c5a5d6c24a6246d6f92b2f6dab843fb4d","0xE814aeE960a85208C3dB542C53E7D4a6C8D5f60F",!1,!1,null,null],["ethereum","daystarter","DST",18,"DAYSTARTER","30440220267b8588ff80a1b8a9726ee0a97b76e482466fb6f647940bcaf7901c7f0d4730022029f90f7581f27a93361e8000a98994b552ab1a035cb9eed07d7ce904ab4b5db5","0xe3A46b2Bc1d83C731D58cAb765D3b45bCe789095",!1,!1,null,null],["ethereum","dbx","DBX",18,"DBX","3044022055077beb7e5467e9ff68ddb8e56702c61f3d94fe05c7e57fa05fe5ce8106af6502203824d54e4a15c06ff62fd8a1f6c10f9ff560cbbc1ea8b2892749ef27f37d156a","0x3CBc780D2934d55A06069e837fABd3e6Fc23DAB0",!1,!1,null,null],["ethereum","dca","DCA",18,"DCA","30440220723b903cd25d298167cf95e60dd6caced397e50b1fa332ea2e98b6640d0e8d290220464148105b7ff44fd7c403c63e9ecd28a75442ccdea0e1974ef9493e57354e77","0x386Faa4703a34a7Fdb19Bec2e14Fd427C9638416",!0,!0,null,null],["ethereum","dcl","DCL",3,"DCL","304402202e03347b53a2db62651bb530fa7b79f0cc35edbbc04582c0bb5994bad83fc1f002200735eb3757c73aeef76449150507937591fc3a25f9f31c621fcb649c3238dc44","0x399A0e6FbEb3d74c85357439f4c8AeD9678a5cbF",!1,!1,null,null],["ethereum","dcore","DCORE",18,"Dcore","30450221009eff3829c76eedd52d33ccf66858d9a6f733524e6b518368ed685263324cdb0502200bb7ea8d130179f2892971e3a6713c7a6226afdab41d98c697742f03de12240d","0xb944B46Bbd4ccca90c962EF225e2804E46691cCF",!1,!1,null,null],["ethereum","dcorp","DRP",2,"DCorp","3043021f6e5bd7ce02eb76db128826a74c751df5522b08aa49dba1302414b38cccd81d022013cada0b8d11cf35fae3f06724a35a575811012c65a13b717bac85869f2e46dc","0x621d78f2EF2fd937BFca696CabaF9A779F59B3Ed",!1,!1,null,null],["ethereum","dctdao","DCTD",18,"DCTDAO","3045022100da2d4fc0cd33b06ecce1a5e313fc2e588752b97356e87ce1c8e73719c8945ea002204ec3fc5cac35d36c60eb945fd63ed81895b83fc02a793ed70f66ee3b7e3416ec","0xb566E883555aEBf5B1DB211070b530Ab00a4B18a",!1,!1,null,null],["ethereum","ddf","DDF",18,"DDF","30450221008094deaf5235773c9b7857990b2921d79be0501bb4ea57834fd3803ef87f442202206d00aede553a00799ccd52bda01dbe220934118713b1652c941cd8f39d4c92ca","0xcC4eF9EEAF656aC1a2Ab886743E98e97E090ed38",!1,!1,null,null],["ethereum","dds_store","DDS",18,"DDS.Store","304402207f364afc0f3f0b6c588eaf8e1de54108a04c98ce97df508e87d9981c86b3f7af022070faa039e6b8ddd6da2e499782e7eb6e05eafeb35d17782d9a99ecc6bd51ab46","0xF9fbAefdE7112F78fA9BfE813341f0f49f888cB3",!0,!1,null,null],["ethereum","dea","DEA",18,"DEA","3045022100c547cca1ee49d938ad2125962cc530c0567d40a2d0670089cd7dd493d99ce86d022004ae1e2e61c5d36c20b6a2d111b4a89da388d794dfc9161a56eef07655335631","0x80aB141F324C3d6F2b18b030f1C4E95d4d658778",!1,!1,null,null],["ethereum","deapcoin","DEP",18,"DEAPCOIN","304402200fcc3f138c7a0d6bbbb283e046a1e7655cb3c3b9acc3141b5af897e152529ede0220732220692e563e5440652c6c780971ca7b3de213144d70b6a5553521ed94b653","0x1A3496C18d558bd9C6C8f609E1B129f67AB08163",!1,!1,null,null],["ethereum","debase","DEBASE",18,"Debase","3045022100b831a528a6ebe56d9a321762a70d1b9962ad352e0d46c59646cb1912b506591f02204591acc893bdf845ac2f05399f67d6acc66bc4b87a43bce406420dcca54aacb4","0x9248c485b0B80f76DA451f167A8db30F33C70907",!1,!1,null,null],["ethereum","debitum","DEB",18,"DEBITUM","3045022100a4efb59915ed85f46984f5a126648b25136227c14ef756b8bb7559da722a5265022043fdd8f8d53a2e9c069671964183b884d1da52a1fa818bdc1f24ad5cce32ae70","0x151202C9c18e495656f372281F493EB7698961D5",!1,!1,null,null],["ethereum","decent_bet","DBET",18,"Decent.Bet","3045022100e8febfa4420173854ac116fdda94876b5153a0b3a591f11de876128350257b53022013fdfe09e1af1713c875c44022f59f992e9df7e2cf45bcba701229324677bd66","0x9b68bFaE21DF5A510931A262CECf63f41338F264",!1,!1,null,null],["ethereum","decentr","DEC",18,"Decentr","3045022100ec5a9059d499b0778d91f3555428101406c85912fb3fa38c64cabb9ee573699d022004e9ab11b43997cf16e9f820d4dcb085938ff17636ec14566648dd0fcff1c4c1","0x30f271C9E86D2B7d00a6376Cd96A1cFBD5F0b9b3",!1,!1,null,null],["ethereum","decentrabnb","DBNB",9,"DecentraBNB","3045022100fa1dd930f39610b2b50f9bbd6210a771423b82794d00556ea53410b3a313e59e02202d828a0d3bf2ee9ac1c0d4e877ac3577e1a2f931bf32751f6b88dc043fe3b32e","0x833850BE8858722Cfc5E5e75f2Fe6275E055d888",!0,!0,null,null],["ethereum","decentral_games","$DG",18,"decentral.games","30450221008c44061c2904692d61f26997e6bb209848e8fcf9f1e8cf93e5e0bd9bea4df1c602200feec5493586afd7e72ef9c48542f813a384da54e44cfb3943c2fdfc4850bd91","0xEE06A81a695750E71a662B51066F2c74CF4478a0",!0,!1,null,null],["ethereum","decentral_games_","DG",18,"Decentral Games","3044022007ec0bc75d0398474481335b4e2e810f89d8f33b28b0b31e099eb1eb2ad62e7b02202fcee0f0ecabf83aef76a63c752dcad32b98a5a625fbcec65334636607860432","0x4b520c812E8430659FC9f12f6d0c39026C83588D",!0,!0,null,null],["ethereum","decentral_games_governance","XDG",18,"Decentral Games Governance","3045022100d23a3cb4bd3c4cab3c95a1442b578a15da6ae31fdf3a23527b6e0f798355416602206bd95f99e208e27edb4dcd3c6123a46e520e825c586b85bc5423791fb588188c","0x4f81C790581b240A5C948Afd173620EcC8C71c8d",!0,!0,null,null],["ethereum","decentraland_mana","MANA",18,"Decentraland MANA","3044022015e383fe3e7dd61d5b5bb801b8e288ee30fe20161167ea587646463b3ae1199302203c466c471434e7999196b0818f94e2124a557364388d8ee19eacdca9ad9c294c","0x0F5D2fB29fb7d3CFeE444a200298f468908cC942",!1,!1,null,null],["ethereum","decentralizecurrency","DCA",18,"DecentralizeCurrency","30440220693b8e824e39f7ed2848f52b4be5006919388550276f8c0b2a70770a40d0a4c2022051aa24805a40a721218f5c98309c18009c1878c1aeb77ca85e244235ef9660cf","0x18aa7c90d3ae4C5BB219d0a2813F441704084625",!1,!1,null,null],["ethereum","decentralized_accessible_content_chain","DACC",6,"Decentralized Accessible Content Chain","3045022100d017aad435aa87caefce0d71463ae43b185c2e3efe313769bab812f87af917b80220513bd9def8d6062e03f322b4a07bdc065f7f0a0f9a66f66de9ff428ef5fdfc3c","0xF8C595D070d104377f58715ce2E6C93E49a87f3c",!1,!1,null,null],["ethereum","decentralized_asset_trading_platform","DATP",8,"Decentralized Asset Trading Platform","30450221009ea6ed5331aeb99a5e3d463b172c916d6815cdad5619c4ede035e2839e36990202203743cf8740692760e0609938066185f82f75418186aa860a0a78c9be0308d2da","0x813b428aF3920226E059B68A62e4c04933D4eA7a",!1,!1,null,null],["ethereum","decentralized_bitcoin","DBTC",18,"Decentralized Bitcoin","3045022100dce50ec1859a12b8b1225e796f56f067fe2f974defc9add9f992b2f3ff92c6d9022007a48c7502f92215993c144687e425e50560a0c2d85c3225468c1118daa1618d","0x0C7E25e15E9F6818Fa2770107B3Ba565470bC8c5",!1,!0,null,null],["ethereum","decentralized_insurance_protocol","DIP",18,"Decentralized Insurance Protocol","3045022100df321d36e28cdf950a22499a52d8eb7431c792fe52e8a6d9b5e8d4fd8740387702205901e9a371eb9e95edcfad410669bbfa830fb58fe34d2bfffaac23560a36ff6b","0xc719d010B63E5bbF2C0551872CD5316ED26AcD83",!1,!1,null,null],["ethereum","decentralized_vulnerability_platform","DVP",18,"Decentralized Vulnerability Platform","30450221009facf744d35922da9ed5b23ac187b5d4a02db7b26daf3f8590f50974d096aefd022049f02f7bc708d46bb0df5aa7735c9938382d4095fd1200b177170a5dce80dc9e","0x8E30ea2329D95802Fd804f4291220b0e2F579812",!1,!1,null,null],["ethereum","decentraweb","DWEB",18,"DecentraWeb","3045022100d97a9000ae5667d1de63522725a8cc0a36cc5decbbd2d7f43a28c8b2ae2e56310220430e5d69ef8bb8946fece835b729ce3ef99d202feb1376116b3598cf23a914c5","0xE7f58A92476056627f9FdB92286778aBd83b285F",!1,!1,null,null],["ethereum","decenturion_token","DCNT",18,"Decenturion Token","304502210081ccd60862e7cef672faa9c32ebaf46e114b284a3fcc3bd1300083de74129a4202203c9df4d37e07a733c3c035e481c9496e5cd01f376853a6340aabc9d6181d4d50","0x0Ce6d5a093d4166237C7A9ff8E0553B0293214a1",!1,!1,null,null],["ethereum","decurian","ECU",3,"Decurian","3045022100e97898e35a527cf015b93f6acb8fea3bf07c0322dff55226cf7199278b88e55502204f027de2ef8d6568f3b529cafefc9dd7ea0dea07a73123c655b3d52b57806d18","0xd3CDc4e75750DC1e59F8342200742B6B29490e70",!0,!1,null,null],["ethereum","deepcloud","DEEP",18,"DeepCloud","304402200d1d6ab27e01eb4baccd73ede1f34e1ccd33a141ff81a71bebd21058909a85a102207107040ffc1e3956ba2eea772a5093c7715e5df987dd4d2ad20a05cb41999f20","0x6CbEDEc4F1ac9D874987D2769596544E0d9161ab",!1,!1,null,null],["ethereum","deeper_network","DPR",18,"Deeper Network","3045022100d79062b7cf99f505a419e11f1fa5a4f078ef95d09c32309b6eacf661e73a2443022042fc6ea93543d5c13b6b0ad983ef4539f80598a993f514cb8f2e244ab8653c4e","0xf3AE5d769e153Ef72b4e3591aC004E89F48107a1",!1,!1,null,null],["ethereum","deepspace","DXO",18,"DeepSpace","304402207c1d37eeabf88a40220a9383a65e2ea2f5d0bc0b24241693e1a2199cad8d7baa02204c9399b2cd9eeeeb2c593b3ca44d3d3bd2bce7c87a9eca4ca6d9a2901f190969","0x528B3e98c63cE21C6f680b713918E0F89DfaE555",!1,!1,null,null],["ethereum","defactor","FACTR",18,"Defactor","3045022100fcf51db3d3bd1c86aa9ff82bc407aba90668c3c1c89698cd7ca64bde0cd29d8e022010c1fa579ece7f69635ac56301c745a9efaa636a107e89a37eccd007cbe440e5","0xe0bCEEF36F3a6eFDd5EEBFACD591423f8549B9D5",!1,!1,null,null],["ethereum","defhold","DEFO",18,"DefHold","304402207be6aee42f2a409dec53daf72b938986f1981121a8243228c3f07c73edc33cd802204b7483b2f061417c0ffd8dce971ec5c0ea5d2e10c8ba2b8ab627fa905d868793","0xe481f2311C774564D517d015e678c2736A25Ddd3",!1,!1,null,null],["ethereum","defi_cover_and_risk_index","DCVR",18,"DeFi Cover and Risk Index","3045022100b97c5db4a04730b5fc978e919f9d1fd8e1613d2abdac58e773f25b7908bd8ad8022046aa2dcd0d6bf08ac8102039d556eea5cafe0a688cedd310f7a659aaa1a243b8","0xF44AD89bCb12FBe8910DeF9F9529CE91885Ad99D",!1,!1,null,null],["ethereum","defi_factory_token","DEFT",18,"Defi Factory Token","3045022100bb0700d39d64cb3ac0193088280d190dc5790fe15ee2c6211221676cb1d5b9020220294c07814b09301e5518b3143b99290d25ef2dcaa973b948db5571187af616e3","0xdef1fac7Bf08f173D286BbBDcBeeADe695129840",!1,!1,null,null],["ethereum","defi_gold","DFGL",18,"DEFI GOLD","304402205c8354ff4244b04593f1c22064eac632aaded9b5fb0224def4a997648243861702207ff38f3e0944159bbb8989468f98cf85bd04d8d9c8d2c8a215a112afcc3e3a9d","0xE3a64A3c4216B83255b53Ec7eA078B13f21a7daD",!1,!1,null,null],["ethereum","defi_hall_of_fame","HALL",18,"DeFi Hall of Fame","3045022100a773097b1555c11794c3e72b45f7c6dbc95fb829e376026c3f9fb6cc5899c72c022051c72c2487388e6bef33edbd53feca0d28006b5292bb204d3e3777318405f998","0xCAA976eC7AbB7d8bdE529ABC9217dfDB574f6543",!0,!0,null,null],["ethereum","defi_nation_signals_dao","DSD",18,"DeFi Nation Signals DAO","3045022100de9a4d7bf473cef3273260f5d5a29259a61863fb7e3263aebf249d0f219e9ae902201ce1a159f604fbf12e8b8c0d81b0f43a5b7fc9f035558557c97a9fed5ef67919","0x1e3a2446C729D34373B87FD2C9CBb39A93198658",!1,!1,null,null],["ethereum","defi_of_thrones","DOTX",18,"DeFi Of Thrones","3045022100ee50eeab7af437a910f465f1a3be4cbeb50122885a55d931201008c43053615002203a195f73d83844bfe3038388564c97150956a49085980930a8c3280ff9cf1fa3","0xFAb5a05C933f1A2463E334E011992E897D56eF0a",!1,!1,null,null],["ethereum","defi_omega","DFIO",18,"DeFi Omega","3044022026420d75f49b2b3b3d493921bbec9488e54401cc760d8e7348e27ed6036b94fc02201c6e9dc5eb5b5d6c8dde2506a3497132e0a02cd373aa96713762496ecfd49eea","0xeE3b9B531F4C564c70e14B7b3BB7D516f33513ff",!0,!0,null,null],["ethereum","defi_on_mcw","DFM",18,"DeFi on MCW","3045022100f942db534cac78cd1dbbfa62bf1337dcd3a8b7c2ed085d93b230ef27d40f07360220596f6d97d1d298995f57f6cfc8872edbef72c58ea6482505cc7e897a503ab46e","0x0ccD5DD52Dee42B171a623478e5261C1eaaE092A",!1,!1,null,null],["ethereum","defi_top_5_tokens_index","DEFI5",18,"DEFI Top 5 Tokens Index","304402203304bdaaa40e59c17f62a7f3938bf4fffc4f710a41d3cd7e783ff3cea5146be602200289b71b1390b10717b8471a1a58812b259d391fff8651639210dc8891546094","0xfa6de2697D59E88Ed7Fc4dFE5A33daC43565ea41",!1,!1,null,null],["ethereum","defiat","DFT",18,"DeFiat","30450221008936448257c3a42417ebcf0bdceeca8a5640b81e8f8305547aab13a139927d08022002fce756cdd00ca4cb2f6e5fe1f419f6167b62f86e26b4109d79ffc28b760fe9","0xB6eE603933E024d8d53dDE3faa0bf98fE2a3d6f1",!1,!1,null,null],["ethereum","defibids","BID",18,"DefiBids","3045022100b15c28c757b22c35fc8975013d10ce693e3d904cd56b235555dd3a9474fc85620220242364bcc788f357bd332a9fd73e43d2f841a66d69ad51547b4a6998e910422c","0x1dA01e84F3d4e6716F274c987Ae4bEE5DC3C8288",!0,!1,null,null],["ethereum","defichain_token","DFI",8,"DeFiChain Token","304402200eaf150dd9f81213a1faa77926725acd7b5f1f67d11c36350a971f46b8c34aef022069b5256e4e563bd86a43b2b732c8c3439c525f8f80d3067c8411d6b199bf7026","0x8Fc8f8269ebca376D046Ce292dC7eaC40c8D358A",!1,!1,null,null],["ethereum","defidollar","DUSD",18,"DefiDollar","3045022100ebae2fb20b84a478d90696a9ef79aa5da943fa5714c96f713815a046cd5168d902206db70b8d5f88873ca42e697509faf5a3b2bffd92f8076e048084a9d2250611d9","0x5BC25f649fc4e26069dDF4cF4010F9f706c23831",!1,!1,null,null],["ethereum","defidollar_dao","DFD",18,"DefiDollar DAO","304402200dd8fe1e86e7c900da5ac0c374d9c3d82177b9ce8811b6ec27453e84c07b6a3a022025d5f3121652b841fc3a373b0f54204868c25cedaae0c62916c556f08681fc95","0x20c36f062a31865bED8a5B1e512D9a1A20AA333A",!1,!1,null,null],["ethereum","defiking","DFK",18,"Defiking","3045022100f0b0e236f54fb5cf5b1213418551251bf8c7485f0e31489db35fc17b6302888602204476cc69c15603347fd8532ac9ce0286e8fc6e017d0f695f392e671b6846aea9","0xA17De0ab0a97Bc5e56fa8b39eBFc81CC3F1f349E",!1,!1,null,null],["ethereum","defil-v2","DFL",18,"DeFIL-V2","304402203894e15d1da9c5cb56105cac4090a0a26622646e2ed3b557ee410a85237312d202203e50f146f2587f266c01a9b789e10ed1b6d7380788185c2fe25ededc1dc05c88","0x09ce2B746C32528B7d864A1e3979Bd97d2f095AB",!1,!1,null,null],["ethereum","definance","DFIN",6,"DEFINANCE","304402201adb8fd2642af18a80ddf4a32df755c793dcd4c242359ae096f80d02859da14e02205395a3f222beb744662b680645c875e3f1a89a8e373c642bd6898bd557dbbf15","0x84f42Bc7Cab3932BdF1C77bb08528Bff20A44180",!1,!1,null,null],["ethereum","define_art","DFA",18,"DeFine Art","30440220338d76b5812fdbc20ff467c33f26ddb3dc3c4e91b385a90ac285465297a195140220480b28c03a7b71469c0b1f1727344948335271d796bf01a643c2918b83d3ea55","0x62959c699A52eC647622c91e79CE73344e4099f5",!1,!1,null,null],["ethereum","definer","FIN",18,"DeFiner","304402206578d792dcddc8228caa73ed7ee922d91ff7036d0f206a606b96ee3fad8d9db9022027ae1a89866ce9d48a26a5b9811f4ce803c81c1affe36635a09abcf248b609fc","0x054f76beED60AB6dBEb23502178C52d6C5dEbE40",!0,!0,null,null],["ethereum","defini","DFNI",18,"DeFini","3044022002fbcacded8e93ae1cf0686b6eab93c597a23093a12e4e6a24f8be1863914dc1022044eabd56720cf5d9ed10dde4bbb644bd10aa0d86477f76ee51faf683243ae499","0xDF276A2442cCbbDF0707427668434D6D130B75Eb",!1,!1,null,null],["ethereum","definitex","DFX",18,"Definitex","304402204446dd9806f1a88c104845e9756e64eba7fc2a5cd83b49d91d21bf550088e372022020ee67e892ddde922c0dc7cd39c685353479c98fd8a835ea199130f56a5be173","0xf1f5De69C9C8D9BE8a7B01773Cc1166D4Ec6Ede2",!0,!1,null,null],["ethereum","definity","DEFX",18,"DeFinity","3045022100ac9245153856d922d63b3130ac9c978a42d65dcc984f8c4bc342901aed66ad33022054eb349c3ad0254107ce97a7ec516f10a608a0f35a8fe5dbd659e199e284839b","0x5F474906637bdCDA05f29C74653F6962bb0f8eDa",!1,!1,null,null],["ethereum","defipie_token","PIE",18,"DeFiPIE Token","3045022100ea2f52c59caceaa4902a075f4fd9fbbe5f74605fcc18265be46fae7333b6cb6202205a17ebe407eeba2f291a3c893d930021fc56b30990197a20508277ae784f96c6","0x607C794cDa77efB21F8848B7910ecf27451Ae842",!0,!1,null,null],["ethereum","defipulse_index","DPI",18,"DefiPulse Index","3045022100dd5c7c7958b9b377303b816d18e71b2f4d97125c1b4f4ca68ae3a5554df89193022043bbf3c01520ae2424fde312a4fa8615856baabc0ef5759479ab41a50b4a58a7","0x1494CA1F11D487c2bBe4543E90080AeBa4BA3C2b",!1,!1,null,null],["ethereum","defire","CWAP",18,"deFIRE","3045022100a74f32dfc8ba84abeb55ab394b269a34f53279f6a6dafa08e34ff1c756b3028d02204ec0952f534040384455efbdd31a7926d1b9f968c709bfb9077d268cfc5baaa7","0xE74dC43867E0cbEB208F1a012fc60DcBbF0E3044",!1,!1,null,null],["ethereum","defiscale","DFC",8,"DeFiScale","3045022100f99935a4fabfbbd0bb788748f7cf769afec3432b997284999d9745064a393039022004b61066081d667f7e8aeaf9ab4f2a4c89d252de110b30ebc28fa4f34668c8a0","0x1B2a76Da77D03b7FC21189d9838f55Bd849014aF",!1,!1,null,null],["ethereum","defisocial","DFSOCIAL",18,"DEFISocial","3044022045f1d34b848e5d8d985d0b082065098180e7d1c0f1ddec3f0580f82bc390aeb302200e3bd2589c92661dab2116254214f5743c2475c3d8e559d1c04685d5a235d33a","0x54ee01beB60E745329E6a8711Ad2D6cb213e38d7",!1,!1,null,null],["ethereum","defiville_island_token","ISLA",18,"Defiville Island Token","3045022100eabcd81e230ec42895aeda04e3d433a10495f4e1de21c15bff65324d4dafda2c022061ce84de426a2830d0ac7bfcdc40d5981cd5e6187516ae8060003e3b99220af9","0x20a68F9e34076b2dc15ce726d7eEbB83b694702d",!0,!1,null,null],["ethereum","defiwizard_token","DWZ",18,"DeFiWizard Token","304402204e6a40acc22aa08e2214187559916b76eae45f94705c9f5fbf374c318565f8fb02207c8fd558f2c2bfcca020baf24cdac59c2e9ce1839c163e8d822bffb92d265ad6","0x7DEE45dff03ec7137979586cA20a2F4917BAC9Fa",!0,!1,null,null],["ethereum","defiyieldprotocol","DYP",18,"DeFiYieldProtocol","30440220291604d71f1182682a5f21aa06fc2b8bebadbc8df82c78c8ae84593f8ca2095902202665ba2ea4a3cc64a581c3e4e06fc2ec1d87fcaecacec053d23cfa18a931497b","0x961C8c0B1aaD0c0b10a51FeF6a867E3091BCef17",!1,!1,null,null],["ethereum","deflect_protocol","DEFLCT",9,"Deflect Protocol","3044022008ec42b98302b2a0148d1aaa4902352042b7ce2cc02a451031ca583723b5a82902202440db1e3dfea321476017743e28c8505d9515e7e71597eb0b2fbf5d1c92a0fa","0x3Aa5f749d4a6BCf67daC1091Ceb69d1F5D86fA53",!1,!1,null,null],["ethereum","degate_token","DG",18,"DeGate Token","3044022038c1f474d1a48a8889b4fe4331f89da162f1ed838ea4427d4cbda3473460296e02201cb1394dfe14cb44dd0abe58978a709e0533a63e70223881b656ea5a3f123dca","0x53C8395465A84955c95159814461466053DedEDE",!0,!1,null,null],["ethereum","degen39$farm_normies","DFNORM",18,"Degen39$Farm Normies","30450221009a74770358cfb359108fbc47cf1a3ee6a5ade21fb82bbba171f6558948f0f3640220120a4b549d2e2101ecc44823716e70ce8a35f4aee2c3293c8d392fb084e41f67","0x1Ee01654665303A5Dd2744e30b576941880e3A73",!1,!1,null,null],["ethereum","degen_index","DEGEN",18,"DEGEN Index","3045022100cd24c9b673ddb18b4675f2da4f6f1e764ccb5fbdb57892d8365f4831a2393b7202207e3de52dd116bfa5ad8bc0ef4d43d41ad32873b99fd38e2eb40a3192386ea627","0x126c121f99e1E211dF2e5f8De2d96Fa36647c855",!1,!1,null,null],["ethereum","degenarts_com_coin","DAC",18,"DegenArts.com Coin","3045022100e2e72b257af24fb3c01973db32279c854d4f5e5365c0ab487570625306a9639e02206f37234bbd5ea3982ba6f75589ab25f15187baeeb5cf68197f7d83374693a89b","0x8281eE37F164C0E26E6B6f87E7695Baac256dF07",!1,!1,null,null],["ethereum","degens_token","DEGENS",18,"Degens Token","3045022100adef80df71d619ea5b68d060d3c01d2a1d26c362e48aed8caed900bcba5fadae022025a0e9b4097b5fa0cf9399a09664b3d09548d437410dc12af2760d26b7cefc5e","0xDd039990Bd551Ce7437d3bF54d155220B7988B71",!1,!1,null,null],["ethereum","degenvc","DGVC",18,"DegenVC","3044022062a15195e29187dbab632ba7a05cab0410684daf4f180b4bc7fa88127e096041022021a6346a8bcb1dc1aa8ccfc9eb8c436c836bf678011d52d64558e2959f213f76","0x26E43759551333e57F073bb0772F50329A957b30",!1,!1,null,null],["ethereum","dego.finance","DEGOV2",18,"dego.finance","3043021f70a92450975afb5e97d26b8e0b9be7748a83af54f3a2b17ddf4fd4c034df6102203e7ab5b278d61310171598e514ef5257357946acbbc91626d2122a156504b74d","0x3Da932456D082CBa208FEB0B096d49b202Bf89c8",!1,!1,null,null],["ethereum","dego_finance_","DEGO_",18,"dego.finance (old)","3045022100a6bb7243c6e44dc8f7a2f8258b509064129dc10c032964ccdebc9c99cb7a18ea022027be45f7ce18baecb8c52231221a5a27929bae8adb2fabb8156b7d949af55f15","0x88EF27e69108B2633F8E1C184CC37940A075cC02",!0,!0,null,null],["ethereum","degov","DEGOV",18,"Degov","3045022100a90a27d3575dca4ce5c061c8f7abd781f849df76400507fbff600f3b38e5a43702203464beb63bbe0a3935f122842d769201ef6ad9c32273e0c495c04e0f29808d30","0x469E66e06fEc34839E5eB1273ba85A119B8D702F",!1,!1,null,null],["ethereum","degrain","DGRN",18,"Degrain","30440220482db0d3f5b8e2109f5c505467d3bc2e3c1687a8c211676d379caff2e234bd40022008564acb28deae0ed153ec6948737b180278556f978a1e9326ff33e831b93031","0x71E368Ed06814Bf35d4E663eFf946400a5BC8115",!1,!1,null,null],["ethereum","dehive_finance","DHV",18,"DeHive.finance","3045022100c5957447e40c3b2ab9944922b3e30c2f3eb0f5848c8a3eb74ef3f1e9765a20b102203d9669db54c7317ddabc08ea90afd42fd1265fdf6d71ae39cb194c411bac3707","0x62Dc4817588d53a056cBbD18231d91ffCcd34b2A",!1,!1,null,null],["ethereum","deipool","DIP",18,"Deipool","30440220110657bf1e00a2563a407c7a161fbee28fd1e00d0152d4ade2f2737751b3fe0502207601e5abc7411852c2661aa2855351bcf463c1d1690c37de633d5a79777af07c","0xd1517663883e2Acc154178Fb194E80e8bBc29730",!0,!1,null,null],["ethereum","dejitaru_tsuka","TSUKA",9,"Dejitaru Tsuka","3044022052e73895c521f892ce78a0a2b89d30691e23e64d36476db030d829a69333a2410220337abaff5cf16173cc3834113c58eafddd53208f6b35d00af5b275c39678e154","0xc5fB36dd2fb59d3B98dEfF88425a3F425Ee469eD",!1,!1,null,null],["ethereum","delphi_tech_token","DTT",18,"Delphi Tech Token","3044022100b450553aad7fbf7d3a58aa33340a3fb4a4781527352bbd4368f3404e8250116b021f23b373096009cf9eb10190cab3e9d40a15cf037f3d95c8035c159a59ea4927","0xf9F7c29CFdf19FCf1f2AA6B84aA367Bcf1bD1676",!1,!1,null,null],["ethereum","delphy_token","DPY",18,"Delphy Token","3045022100925ffe63a803971035a9d367436a2198c56a6f11bc0ae35d0d310011d4bf676102203c1850d5c84cb2f231f9d3129eb57a86e116ce5af86865d67be387d699ced525","0x6C2adC2073994fb2CCC5032cC2906Fa221e9B391",!1,!1,null,null],["ethereum","delta_exchange_token","DETO",18,"Delta Exchange Token","3045022100efacdcdf52d18952b6edfdb58241811985d3d21816ed90326fd1a64ec4cc6cd10220324e6c82c9a7fbba20d71a444e09027df3565048e2516dd84a480a8b1bd8b8a6","0xaB93dF617F51E1E415b5b4f8111f122d6b48e55C",!1,!1,null,null],["ethereum","delta_financial","DELTARLP",18,"DELTA.financial","304402206ba0719ca1437ae163a4792cade0d2d8a3bcd7b31fc9fa630bb00edbbd9aba47022020800832b00093aee9514e005c5b4522a9bb1b7b5f346c2cdd8bc6052327dc91","0xfcfC434ee5BfF924222e084a8876Eee74Ea7cfbA",!0,!1,null,null],["ethereum","delta_financial_-_deep_defi_derivatives","DELTA",18,"DELTA.financial - deep DeFi derivatives","3045022100f700b722575a32d9569924cfb264fac461eab97db18f31ee12596567acaaed45022072941f02b7a5d6174d8ce965e126cd328dfdea74845067675c77e8e8928f067a","0x9EA3b5b4EC044b70375236A281986106457b20EF",!1,!1,null,null],["ethereum","delta_theta","DLTA",18,"delta.theta","3044022022497f4edf522295dfc8f1c32db024a564b5c27fbd61e1b9a4f8fc44b8b581ec02203af6d67d5cf0ea905a83383849464eae044f037e61621aedd8626581e252ce57","0x0000000DE40dfa9B17854cBC7869D80f9F98D823",!1,!1,null,null],["ethereum","deltachain_token","DELTA",8,"DeltaChain Token","30440220280422e60784e247825135cb32a0d75b729d1541ed60ccd8ac8de0032779934b022064e2cf85845cf9386a6cf28ae9dea7e6ac887b5b137083d8a61b85b08e8ee143","0xDE1E0AE6101b46520cF66fDC0B1059c5cC3d106c",!0,!0,null,null],["ethereum","deltaexcoin","DLTX",18,"DeltaExCoin","30440220591a56f48c44572ccfd9a296ab5b76c6f0bbede14fac265ca660a91f6ded2d0d0220495e5f167cb0db6bb50805472a28f0434c4ad3a9392bb07fc4816b40edf7a631","0x0435316B3aB4B999856085c98c3B1ab21d85CD4D",!1,!1,null,null],["ethereum","deltaflare","HONR",18,"DeltaFlare","3044022060a44db69c9209b0c7f92333ba0d00f3d5bcfa6a61dab058e2528a1db922251102206c42872206a2df842f49768bd2095f684e0be7aac07b6a14dd427dccc0f9d3b9","0x39Ea10E507720783C27eDd5F96Bf2D6e199579B8",!1,!1,null,null],["ethereum","deltahub_community","DHC",18,"DeltaHub Community","3045022100b25f95fab35026c2c1df8fcb7e81d8945a6791e47083c0fd5682862e3cba3bad022074117a26cbe70eb7fc75d44d1f389701d26bd4878d159daac1a7dcd97cfeccd2","0x152687Bc4A7FCC89049cF119F9ac3e5aCF2eE7ef",!1,!1,null,null],["ethereum","demodyfi_token","DMOD",18,"Demodyfi Token","3045022100e6976307f500b20f4a101e25e9c063d72908ec984dac94f2562edf9102a9e86302205b16be9393dd09c336df569b49d57544a5d9d6683ac9da27425a6a7940bb0d1e","0x5f6c5C2fB289dB2228d159C69621215e354218d7",!1,!1,null,null],["ethereum","dencity","DNX",18,"DenCity","304402204652de520cffc5312d1560c7963b87ac0eea213a8a1cc0c59a81b8ad75373c1f022001defdbfb53f84fda5cd47ba759a2f64e0f9972a2003935a54bb99fddf8f7f6c","0xE43E2041dc3786e166961eD9484a5539033d10fB",!1,!1,null,null],["ethereum","dent","DENT",8,"DENT","3045022100b2458823e592aee9ee9acd683aefe133fb49b73802c5d1c6f5205b0e7afbcc2d022005fddc8e8cf7d62af622ef6a6bb5f04275989beb6dd9b547831ac78c1691fd6d","0x3597bfD533a99c9aa083587B074434E61Eb0A258",!1,!1,null,null],["ethereum","dentacoin","DCN",0,"Dentacoin","3045022100ec63008fe371edf08c730c2a500fd65b98718491d60561c32446957843087865022012b646fd55ea9fa0cfbef4a54071118b2b3c3b9fce66defe05df5d221432984e","0x08d32b0da63e2C3bcF8019c9c5d849d7a9d791e6",!1,!1,null,null],["ethereum","deor","DEOR",10,"DEOR","3045022100b77600613f9cf35100e7a5cadc9e8c0bbcc57240584a9a6cbe8d0f08ec877e3a02200becb885006e88851f165f3f0eb0a5bbdc1453fbc9ed72b0050eb7cff250286e","0x63726dAe7C57d25e90ec829ce9a5C745Ffd984d3",!0,!1,null,null],["ethereum","depay","DEPAY",18,"DePay","3044022073d9e0541ca6f5b4796ae2dac3d31ac636ad927f29f25d2332417cedbfff6a3b022049b91138521ac699619252122be5f2188d2fb6d37cc85a38c892c99dad524833","0xa0bEd124a09ac2Bd941b10349d8d224fe3c955eb",!1,!1,null,null],["ethereum","depo__depository_network_","DEPON",18,"DEPO (Depository Network)","30450221009a51f8082fc3b62f7c0b8e893aa18949832a6c48a43746107c13af25ac6f3b83022033a97e9146683eca5c14c07f881a2f2ee95522e6781b253050b50a3fe25eafb2","0x89cbeAC5E8A13F0Ebb4C74fAdFC69bE81A501106",!1,!1,null,null],["ethereum","depo_token","DEPO",18,"DePo Token","304402200d44c9a57e108505207e69545591605c763393ea7127b42c2bf7e5cabc599d78022067f9fa1e06f36a437f73d8efbb950822fc725278f05e15573ef6b419e308a5d2","0xa5DEf515cFd373D17830E7c1de1639cB3530a112",!1,!1,null,null],["ethereum","derace_token","DERC",18,"DeRace Token","3044022019e1e7a572e774638f0a735d93372573769b9bc513832c1abd1d4191e94ff2f002206d0f72e27d4f15360a4aa59fae8b780854ff833deebd80215cebadaa2d5261c7","0x9fa69536d1cda4A04cFB50688294de75B505a9aE",!1,!1,null,null],["ethereum","deri","DERI",18,"Deri","3045022100e78a4ee0fb3c1d5c3701203b3e7e76e86d1f55cf00f50d4b8d12cbfd934882c60220398adb0d4a1d1050fa90ee97a4cc7a157c4de870bbb4526622ce8753ce367a2a","0xA487bF43cF3b10dffc97A9A744cbB7036965d3b9",!1,!1,null,null],["ethereum","derivadao","DDX",18,"DerivaDAO","304402201e63759f21af9dff07d6bfb823dafe149d8822df7de2f33fa156d08a9c5c793702200d34412d49e80c3f1e70881495f239fdaafa6694319f10678f8cd354a760959c","0x3A880652F47bFaa771908C07Dd8673A787dAEd3A",!1,!1,null,null],["ethereum","derivex","DVX",18,"Derivex","3045022100a4d93d32c5248cda44bdc86437389453fa7a078eacfb60f3f314d7854f244281022040eedf97ff39072b550313f24b6fec3d8b87ccb7293d255a7865fb6e0c4bb95e","0x975769557510167d25BEed6E32806537173E292C",!1,!1,null,null],["ethereum","design","DSGN",4,"Design","3044022001aa9f14dd7ed5d4e8ab969d0b498810d78072ff2ee8524fb50c6fc65a15c5f702204a28d92fb470597a2e54ed7734be37ee1847bc4131d0fd4664a6ea90c70533da","0x537A9095b78517597b5f2058EDcd6E1978095909",!0,!1,null,null],["ethereum","dessfi","DESS",18,"DESSFI","304502210084d373270ce3642c1f6a95912c124d091af6f521bc12343a86fea11b81da2c8c022037e5f8f21fb59352b977a17e58844f7df041a026701836227329b51a7cf77120","0x5A80b50A0420A2507e33508A93E0Aa037fc90636",!1,!1,null,null],["ethereum","dether","DTH",18,"dether","3044022019ac90439b46b44fae6507eeb1704562c680bf8d6ebc2820e78a8546ece92f2002201c9602f0f7f8423f17ae1d57252ac44e4406b31a8a0c4001733ec2c9f066861d","0x5adc961D6AC3f7062D2eA45FEFB8D8167d44b190",!1,!1,null,null],["ethereum","deus","DEUS",18,"DEUS","3045022100c1cae6e0dafb3827285ed2d4ed047e2c0b489b566f5a0b0f0c31da545f6e432202204e606ef3ae3c30e360ae75830cbab63c9a223c481f9dfb3b1601f4448e154dfc","0xDE5ed76E7c05eC5e4572CfC88d1ACEA165109E44",!1,!1,null,null],["ethereum","deus_","DEUS_",18,"DEUS (old)","3045022100804dbdcf079810d91b4b8aa7248180460446d35e160a4cca7f577ca325c48e3402200bd2bd454a1e69beec399bc35bf159e4f0faa85dcab4acbbedb3c3eb91c7bd4f","0x3b62F3820e0B035cc4aD602dECe6d796BC325325",!0,!1,null,null],["ethereum","deus_synthetic_coinbase_iou","WCOINBASE",18,"DEUS Synthetic Coinbase IOU","304402202803b15177fc5aa0dc3e74708edb44f8e9e6ae38aa250189b8ad0aadfa7e863802202ab1ffd19f67299aaa16d4500e724f12077e7aeb1533bce7ffac2721e4272e42","0x4185cf99745B2a20727B37EE798193DD4a56cDfa",!1,!0,null,null],["ethereum","dev","DEV",18,"Dev","30440220712b2a6e4fb58d230c65f3ef662044a96fc2df1063b89f3edd9fc49bebae784a022062172267e8f9f78766caa9ebaa5763966cee9827b59a047664521078aa48f84f","0x5cAf454Ba92e6F2c929DF14667Ee360eD9fD5b26",!1,!1,null,null],["ethereum","deva_token","DEVA",18,"DEVA Token","304502210097922e73a17184928df80c9748ddca3d34e62b46248f9d12a23eeb0d6cc6ff1602204407933637928687db3e46b187c81a82234a1a657ec6b4edda1c335d73dd128e","0x7ED621D37E30214D5E197454f08B1C5c9558517a",!1,!1,null,null],["ethereum","devcon2_token","DEVCON2",0,"Devcon2 Token","3045022100bead254f69710811fe5edc65b78016de93748d37e3e5fa4012ec8bd702416024022005dea6434266a3037d7a72cc839bf61820cdfdb9af5ea879f7c0e23d0c5cdf6c","0xdd94De9cFE063577051A5eb7465D08317d8808B6",!1,!1,null,null],["ethereum","deversifi_token","DVF",18,"DeversiFi Token","3045022100bd8a55c10b02bbe70f7266be7f5f5e7132140623b6de3fa27bdd820f11baa0d902207eb91acba7c2c5131d8285f9eba2f0d06bc9be3b4dfc29d05b0f25aa3b620a41","0xDDdddd4301A082e62E84e43F474f044423921918",!1,!1,null,null],["ethereum","devour","DPAY",18,"Devour","304402202d1b314fa41f7e4ccc13e64bd2531a1302ccd680b9266dc55cbc6327e0a8ba0b02201e66453ce30d432720a0b46410c27b48c832f0ab5e2c55fb37c48db015e15a38","0xE5A733681bbE6cd8c764Bb8078ef8E13a576Dd78",!0,!0,null,null],["ethereum","dew","DEW",18,"DEW","3045022100bf431720cdd44372b6881fb4aeb16ad50dcda16ebfd4723602bcfc16b8c335c2022008d445fe916133109ad871e4dc43bced3237a837c3017fb45b02db8967ed6e66","0x20E94867794dBA030Ee287F1406E100d03C84Cd3",!1,!1,null,null],["ethereum","dew_network","DEW",18,"Dew Network","304502210082e982285f67dd3d2036b845095ee162d95502caec7cae8940985645c0d11e7102203ef83e8b7d3643275373ff6f53ab4b67f937e367b79c12ae15844844b1fe513e","0x34BD86b1162e0DfB3E1cf66Dd1E90489D292280b",!0,!1,null,null],["ethereum","dex","DEX",18,"DEX","30450221009776f82ab1573c527052397b5b6d36ec9149bb73afb6afb1a981583ee8c9534d02201f33e813d970e2b07ff0f0cf1126b9561cd1afb27356e193e06ab4ec14029d84","0x497bAEF294c11a5f0f5Bea3f2AdB3073DB448B56",!0,!0,null,null],["ethereum","dex-trade_coin","DXC",18,"Dex-Trade Coin","30450221009e761d00b21350c8c62c69845850be78451133809cb1e5895ac6786a352fef33022011982de5dc453f393887c5ade643d484173c203fed491e7546c9422731ebea34","0xb0E99627bC29adEf1178f16117BF495351E81997",!1,!1,null,null],["ethereum","dexa_coin","DEXA",18,"DEXA COIN","30440220762724ee18e297ecdccab70d7e1e62b51d0332580ea751b4416bd78dc6ccf15b02200b5cbff23dec9e7bb0635a33e7d5abbf704fa573c940f3521ac171fec8adbe47","0x725440512cb7b78bF56B334E50e31707418231CB",!1,!1,null,null],["ethereum","dexe","DEXE",18,"Dexe","3045022100ecc8497cd4eff463910801d50936e248beaa151de772d5edbfa4799b509e5ac302205f3aa44defa6b0cd3f1e17ea920d2439b7af0a488c1ebef9da1795eff2894b06","0xde4EE8057785A7e8e800Db58F9784845A5C2Cbd6",!1,!1,null,null],["ethereum","dexfin","DXF",18,"Dexfin","3045022100879cf80f2ec049a841cf5c146457f0c5f8313d56ca9ba8dc7d4ff423e09e7c4a02201505a891a604b53dfe7e3fb393f88dc6082ab42ef967783483b56047d12ef072","0x15Eabb7500E44B7Fdb6e4051cA8DecA430cF9FB8",!1,!1,null,null],["ethereum","dexgame","DXGM",18,"DEXGame","304502210091b8a997c03264a62edda22fc94ed4ade2448e9608dc8c68247b588a8d75f1a202205e699fce5adc50b6ffde432b4a64d4d91f3d4e54a0e43fb8c5a490c2c308f271","0x66F73D0fD4161cfad4302DC145Ff994375c13475",!1,!1,null,null],["ethereum","dexkit","KIT",18,"DexKit","304402203870704a3684b216905e0727b040bfc6f96f9f1e16a25c5f28fe8ec413a9e1d50220707558cfa93c051df5d36600ad9aee0927eb72b3a4abb95fff9b7d2a1f8c1d49","0x7866E48C74CbFB8183cd1a929cd9b95a7a5CB4F4",!1,!1,null,null],["ethereum","dexmex","DEXM",18,"Dexmex","304402205c89a708512d771fff64fd3982a2ae25572eeef90353fb37216aefa1afacce0902204c816aaec16cc0ead14406b86bd90d9f9c60f4b607e1c0e36c4433947c85b02d","0x0020d80229877b495D2bf3269a4c13f6f1e1B9D3",!1,!1,null,null],["ethereum","dexter","DXR",18,"DEXTER","304502210093da2fc19d69b1a1a3625b9c6afd1ad14a7e4ca582bfc4b20e338c3a6dfcb6db022027d754383ad56846c994f7b48b152cdc67f839bb51a93ca185f2196532194df1","0x65cCa2791087276856E99b14BC01f4664C3563dd",!1,!1,null,null],["ethereum","dexterg","DXG",18,"DEXTERG","3045022100bc689b5511adbe4b8f07ecbc8e69d0198d12a8325f9cbac869164530616acef40220014e8a877c0a8ec3c987f619310a3275635dce0ff92ec170f4eeee6c9cb8f92b","0x4571f3a386d1bd18E25d70d117e7067FA0Bd9D08",!1,!1,null,null],["ethereum","dextf_token","DEXTF",18,"DEXTF Token","3045022100e4daaefef14dd4195b04198ef4d725f1b3294936cb747d4d6086e4234107d31a022012322da7eb29268213c8b3335d8665dfe0b57bf6c15ced00115ea9215a3a5949","0x5F64Ab1544D28732F0A24F4713c2C8ec0dA089f0",!1,!1,null,null],["ethereum","dextoken_governance","DEXG",18,"Dextoken Governance","3045022100f7eac8c9f066f991301041d6cb9b615cbe1586718ef276defdcc4e4f1d243ac9022062ac43cd6412c282d5d73d9bdd201d6abb82dc6b1c7b7ece82281c1f75887cd9","0xB81D70802a816B5DacBA06D708B5acF19DcD436D",!1,!1,null,null],["ethereum","dextools","DEXT",18,"DEXTools","304402200126b8ad564b2fa29ac2594422e0fa3976c771c3bf86f059995bfc44f5e271b702207d1f73e9adb7d9cdbae78b1030cde63429459c54d4e953424c743cd9f917e98e","0xfB7B4564402E5500dB5bB6d63Ae671302777C75a",!1,!1,null,null],["ethereum","dextrust","DETS",18,"Dextrust","30440220630edfe40bfbd89af111fdf45eebc5704bc1d0934cb0e684e49ceb1e2abe561002200530fa711cbc1898ba4a8195c761b037199bbcf35e2ba6a3eb9b3fa51b7addff","0xd379700999F4805Ce80aa32DB46A94dF64561108",!0,!1,null,null],["ethereum","dfe_finance","DFE",18,"DFE.Finance","304402207cb6e4eabc2a2e9872466fa9d064b4ac08c8cd1c93b15d3e2bb69e5c731f931602205107467c99d06dd68c5c4733a3f2a1d20b6829f79988d6d6e77a58b19f8ad24a","0xd35Ce4FD815522Ff52243EB587020d557617f4dB",!1,!1,null,null],["ethereum","dfinance","XFI",18,"dfinance","304502210080e543ffcb8006f0ed03c5fbf94a44ca9abf2358f58ed6212cf6278b37cddcf5022042c015d3b9cc6a8d26b1729c0d02ec4445f7835f0acce5c8d06e89fe6d05ce83","0xE4E822C0d5b329E8BB637972467d2E313824eFA0",!0,!1,null,null],["ethereum","dfohub","BUIDL",18,"dfohub","3045022100acdc817df6acd04edfdeaf478f3f14118f28cb01319a3df4322515ae6e31141002203644900704099a38554c9b3aa8da3d4ad0ba43ecb1c0d9049bbd066c645411f0","0x7b123f53421b1bF8533339BFBdc7C98aA94163db",!1,!1,null,null],["ethereum","dforce","DF",18,"dForce","30440220220d13ac9164b76dcb0fe07f132d6f4eea0cde8d3328278dce08a20168d671160220197e9f1928c35c061457b9292ed67dc3c17db73742c3e702af10e38b84ade3a3","0x431ad2ff6a9C365805eBaD47Ee021148d6f7DBe0",!1,!1,null,null],["ethereum","dforce_","USDX",18,"dForce","3045022100ba9ebe3fcb1eb9f2dade549f9e9087ce2601fa6b97901ac15c898bf0599c50320220611d9b90825b9de5eeabdb5309baf61dc711fd33eb0281b6df148d7c3980d02b","0xeb269732ab75A6fD61Ea60b06fE994cD32a83549",!0,!1,null,null],["ethereum","dfund","DFND",18,"dFund","304402203b42116922e63c320dbaf211dfbd568751b61b75abdc5160e9bf7e1470e4e781022022839e8cdb42852c4b00cf646fe5cffc3f2982c1d19c965dbe7eef7589b1a7af","0xd2adC1C84443Ad06f0017aDCa346Bd9b6fc52CaB",!1,!1,null,null],["ethereum","dfv","DFV",18,"DFV","3045022100a537cb2a4817da71a4226d3d3561fcc99722a048696216212c80c40a6fa4371a022046dde6177fcd8c03549ac20958524cabc755db83784459d3e9b369e938e6756f","0x14e962bf80C1f9582f43218e56443EC13b012d03",!1,!1,null,null],["ethereum","dfx_token","DFX",18,"DFX Token","3045022100c771665eea3815467500a4bc16b5406d6ff3e9c33f48d6ef404df9260728b55602207de98701996ab160f44a67ae46e4bef707fa7ecfac5a93223f8a0dfc46ac6cfc","0x888888435FDe8e7d4c54cAb67f206e4199454c60",!1,!1,null,null],["ethereum","dfyn_token","DFYN",18,"DFYN Token","304402203afb7c9a5cf21549ebf911f099d40354ba7c722b3f50ad47ee0c71723483f7df02200c1af90806fbd60cbd8cb6cd14c40208a3e3fbe6d4895773ea9aab34d31daa8a","0x9695e0114e12C0d3A3636fAb5A18e6b737529023",!1,!1,null,null],["ethereum","dgpayment","DGP",18,"DGPayment","304402207cba9b99c91c7c42d9e5ae93252a39fca872fb4564962a9fd78a90e55d7deb73022073e21359635719fa3aba0ed20e20daa55327e42a8584f346ce2ad773eae1a74e","0x927159670C50042109d7C0f4aEd0Cee89452433E",!1,!1,null,null],["ethereum","dgx","DGX",9,"DGX","304402200cb64f7e12c8e9ef35d1ca577147096a3c2a975249f9ea1f066a763967320cb302205d2891c9bfe4429d0bca08b5460d147a34fc1c92cb3911341233bcc95a597a16","0x4f3AfEC4E5a3F2A6a1A411DEF7D7dFe50eE057bF",!1,!1,null,null],["ethereum","dgx1","DGX1",9,"DGX1","3045022100a73eff5701eda7addc0119eb1e5ea6b881a55132e51c5bcec9eae5497eddfd83022020f3ee1ccbc651161286be98216ba29fb24b276a788af21ad854c242af100d25","0x55b9a11c2e8351b4Ffc7b11561148bfaC9977855",!1,!1,null,null],["ethereum","dhd_coin","DHD",0,"DHD Coin","3045022100f4a181f43f60a8874a43722fae3a34ed29d2ddf4ee97ee85338a839350265e5d02203710e21f1fe12cda367a721cfa0fd9f1f1a125167662c1474f7bdfbf1b59b6b9","0x20B4B41DDaECD180798bd4322BA971FA1A54e512",!1,!1,null,null],["ethereum","dhedge_dao_token","DHT",18,"dHedge DAO Token","3044022054979de82fbb9c9dd680dd2650d4ab013c1ab1ad4850e6f584b41fb5b8a12f89022060572b0ab5f7608c4b177668c82fb85741bad9267b1e7300bdd2b3a943143ed0","0xca1207647Ff814039530D7d35df0e1Dd2e91Fa84",!1,!1,null,null],["ethereum","dhedge_top_index","DTOP",18,"dHEDGE Top Index","3045022100b5e751fa0bc04df3c03e4c7a13a88632c416f68042a19b1e9a72add51b49c46c022025a2857fb2362ec9e9f7cf17f1e9b75a8b9a2c01e601e6a608201a28444bc28e","0x0f4c00139602AB502Bc7c1c0e71D6CB72A9FB0e7",!1,!1,null,null],["ethereum","diagon","DGN",6,"Diagon","30450221008f59fab7560a3537be6a15f8370df793353bf76159e145b1d7e06b110067494f0220198475d3079addf4beee764fe78e6a24c32d89e5ba4c87d4173a9013369a2c09","0x7ACe84ac394E41F1c01711eD134D9BBcFa770Ce7",!1,!1,null,null],["ethereum","diatoken","DIA",18,"DIAToken","304402200814b0593c4ff0878f8cfc239919e31517b6eed55091e6e931f4c5d161c912be02206d5a887838d9a8a7a5fe82a458e1b822bbbd2ff5666a07f087d3806f2b2fab61","0x84cA8bc7997272c7CfB4D0Cd3D55cd942B3c9419",!1,!1,null,null],["ethereum","dice_money_dicet","CET",18,"DICE Money Dicet","30440220009a85a9ea31cd3414219667324f128cf89bd97c97b67a7f30259b2dc7e087f002206396d7f88d005fdd55f6546b2dfd20aa72bd27a1a312aa4f0678588e8f25801c","0xF660cA1e228e7BE1fA8B4f5583145E31147FB577",!0,!1,null,null],["ethereum","die_protocol","DIE",18,"Die Protocol","304402203907ee0943b704b2fd0b47a69475361c3af51371d517702807e5b6cf5ce41521022017797bd43e0890cebe11687c2fd05c442447ea775a7ae4fe797c78a256de30c5","0x6Ef6610d24593805144d73b13d4405E00A4E4aC7",!1,!1,null,null],["ethereum","difonetwork","DFN",0,"DifoNetwork","3045022100c4ef036dd5c8508ad32dcf48f8300e0d95351cf31b803c6329e968d5e3b45047022004b278b3d4fb18d4658bdf50a1a16ec713893f991fafb7b3c4888045f031f680","0xc8BA3cf103E5A1658209C366153197AC7FA9C9B1",!1,!1,null,null],["ethereum","dify_finance","YFIII",18,"DiFy.Finance","304402205f6b4f79180c98e06141ac0cd8e5d12581c41bb0297223d45f7eda9a8b46ac46022044b07c14cc4b15398fc2fbed392869a609a29cb5bcbc94a9402fc1fdd4e537f0","0x4be40bc9681D0A7C24A99b4c92F85B9053Fc2A45",!1,!1,null,null],["ethereum","digex","DIGEX",0,"Digex","3044022058f9c856d66f2e88ecf676465c7cccba13dcf84312e02bfed44881b7621b206502200f5489133ac8491992e7e9365dd7b88138abdecffed59a87f695d29075ed63e6","0x763F8B4fB067190e739Ed6ACB12F40f2F3890840",!1,!1,null,null],["ethereum","digg","DIGG",9,"Digg","304402205fb6262eeb4432ca8c62079290e5c7f808fddd1c758037012198b75d1a2703950220478aff10e7012c84c6b563c17e874d32b44fb68d1917f9219ea8f2ef52642e40","0x798D1bE841a82a273720CE31c822C61a67a601C3",!1,!1,null,null],["ethereum","digi","DIGI",18,"Digi","3045022100d6d15f4a748e57590b780cad7e57ecdd50a317be81862e32f49c981a09ab2a3e022030ff1e5a00471e42deda01c140be2e55cd192b95fde341ad17a3dec8b6b6de4e","0x3CbF23c081fAA5419810ce0F6BC1ECb73006d848",!0,!1,null,null],["ethereum","digicol_token","DGCL",18,"DigiCol Token","304502210092126d65059c67207db6914a22255d9685d9d03e7cfa53512198dde177ac03c6022028136eabf53244411d308b68b82dde5a64137b84a45b6bce37ab70eba53c06d5","0x63B8b7d4A3EFD0735c4BFFBD95B332a55e4eB851",!1,!1,null,null],["ethereum","digidinar_stabletoken","DDRST",8,"DigiDinar StableToken","3045022100b64dc8be31e34ce3d35065d80d80d1cdd723c7c0644e5f189373d6adeb89ea9602206b48c48188380b314827a5dbb74b171942b3615c6b6b8275ff0eaf4d110c3ad7","0x3ef36D53A168c44ed2Ec7a98129CA0308BC1AE45",!1,!1,null,null],["ethereum","digidinar_token","DDRT",8,"DigiDinar Token","3045022100a36fc969e6bc4a89eddd71b30601065ddf3cac862d51e56c41d147480c23e157022029531a114d4de73b1581fac4e4e7b5e9b098020664b6efe54328d6eca0ba3601","0x94501b6A153C8973fd1f321fCC8188d40dC5d72d",!1,!1,null,null],["ethereum","digies_coin","DIGS",9,"Digies Coin","304502210097a512a1b2fcba24aa33c11ab11828f22ef35e89e7fcdd8f442f601266eb1281022053538ae4d642c112b501d1bc626acb83af0d3c585bc7c0e86777fd2a1f7471fa","0x7333Cbf5B0b843B4129e234f791b0058347F671a",!1,!1,null,null],["ethereum","digimax","DGMT",18,"DigiMax","30440220527c26bbdc187372ce7535f92edef7f08be91de4978f7efcc87f64a6157f0945022025bf4393d0ea54af7096943ede2b9bc1ec5fc024bd6edb9aa1da9e9871860f4d","0x0d4b4DA5fb1a7d55E85f8e22f728701cEB6E44C9",!1,!1,null,null],["ethereum","digipharm_token","DPH",18,"DIGIPHARM TOKEN","3045022100c5cf83598ac94e91eda66f76edd0defa5a462770fee1691dcd76129cd1522a8b0220418d125d77dad3b3762b67ce737bda1379ed0ec7dbb21dd14a1edc4978a22ffa","0x875353Da48C4f9627c4D0b8B8c37B162fC43ce67",!1,!1,null,null],["ethereum","digipulse","DGPT",18,"DigiPulse","30440220137ff17bc52b14181505958f495410786ee98f1c4def0bdf611a27dbb67507cc02206a16ab02680344ab2daa73e044e211cfc38928f6f26704de0a7c761492ca7d78","0xf6cFe53d6FEbaEEA051f400ff5fc14F0cBBDacA1",!1,!1,null,null],["ethereum","digital_antares_dollar","DANT",18,"Digital Antares Dollar","3045022100b534e9dca7295bb7cabe6a77ece5670c76ecd80fa86870e12febd3c0f964dcbe02204d3d99857fea4e4080ab84bbda025d7adb8ea939f50976d2567c1132cc7e85d4","0xbE3c393Fb670f0A29C3F3E660FFB113200e36676",!1,!1,null,null],["ethereum","digital_asset_exchange_token","DAXT",18,"Digital Asset Exchange Token","30440220278a3e56a21405f7985b85135fc32a857c8899bcb4b579822ca5e32c42e59dec02205dbe37b50c77b55637ecba08c2efdbfb9df0b94ab5db564391bd221f5c0eb96a","0x61725f3db4004AFE014745B21DAb1E1677CC328b",!1,!1,null,null],["ethereum","digital_assets_power_play","DPP",18,"Digital Assets Power Play","304402203e0dc18a6315d8e69de27acf257ceaa5ddc99b055d9938270f301d2cf9cb7c1602204283d872b2998d50f3719da11954a4707ffc21a3e4a321f8f21067e2d89f85de","0x01b3Ec4aAe1B8729529BEB4965F27d008788B0EB",!1,!1,null,null],["ethereum","digital_fitness","DEFIT",18,"DIGITAL FITNESS","3044022008a0c2b9a7493e5d24cc7b5014979463718063fac19926d555955a67159f01c70220075af094c74f80379ece96d0454992d242d2e9b8b77affc0de9df3537879239a","0x84cffa78B2fBbeeC8c37391d2B12A04d2030845e",!1,!1,null,null],["ethereum","digital_rand","DZAR",6,"Digital Rand","3044022007cb03aacec9dad6c6d7520eacd3b330f4574688869fe16035a636a3b22cd62802204eb3d8693ca3fa7f88defd5df63674a1670404fadbc6d4c39a85f7dd1eee4d19","0x9Cb2f26A23b8d89973F08c957C4d7cdf75CD341c",!1,!1,null,null],["ethereum","digital_reserve_currency","DRC",0,"Digital Reserve Currency","3044022024300ef3fe5982e0794da6a1990c9f3f7f28d7c33dbce11591e409d8f820bf50022008e482772c3d5c23849a78a20cec44a94cd089d488386c7dfcf8d4e88a42b107","0xa150Db9b1Fa65b44799d4dD949D922c0a33Ee606",!0,!1,null,null],["ethereum","digital_standard_unit","DSU",18,"Digital Standard Unit","304402203894e635702d8a42643795772846d95412a272a232e33dbf5e62707e9ae6eb07022024bdd4bd95918edde061f27af4de62a0925898d5119e4ce77aaf9c35cd2a541e","0x605D26FBd5be761089281d5cec2Ce86eeA667109",!1,!1,null,null],["ethereum","digital_wallet_coin","DWC",8,"Digital Wallet Coin","304402203af0d07bd5ba1d48e51dab71b0f052a166b5a62b6b184e8fc40184207ae7405c02205a7ace3cbe6cb4e6866022c4441a83f5aedf26621a0a705426753b6242846b25","0xc626C9e2247c8A0C863ad6DaA97ed939E12786DE",!1,!1,null,null],["ethereum","digitalbits","XDB",7,"Digitalbits","3044022027e839e4cc9c063b71c6497031ceff09d040335f79ad9bf2044b4329740958d602201a8a44250a96a8a9186bc7485b9ee06d569f53eac74b572ab4a083e4f22e7df6","0xB9EefC4b0d472A44be93970254Df4f4016569d27",!1,!1,null,null],["ethereum","digitalticks","DTX",18,"DigitalTicks","30450221008aaac2b4db58b9327e98c9141aa4c60493f6aeaaf67b5e486434a541f60e86100220297e3902c2e80cd087726f38ae14e9e0e148d8a0abfefcc9d5aab1a9bfc5728f","0x82fdedfB7635441aA5A92791D001fA7388da8025",!1,!1,null,null],["ethereum","digitexfutures","DGTX",18,"DigitexFutures","30440220385fba2eb6aef0508e1f14de18bfd9dd8caee3a34a5403958694b27ff1c27dff02207abf957475eb03636ebe07e86ad864133157462d9162a6e0e0ca9978f65c3d19","0xc666081073E8DfF8D3d1c2292A29aE1A2153eC09",!1,!1,null,null],["ethereum","digitexfutures_","DGTX",18,"DigitexFutures (Old)","3045022100a41b2c810d3a1d6800c4b916cb072ec4c3ef715ec110d586d3f25dcf0bc3d871022024fc8df42f52bf539cb8671987d5c1341441aebf29509813c0b699d17cd29418","0x1C83501478f1320977047008496DACBD60Bb15ef",!0,!0,null,null],["ethereum","digiwill","DGW",18,"Digiwill","3045022100f81d0145608313293cc0a16e5a5fbf4f67fc517ce09353ecb81f809c0809c97d02204d8bba28703f310cb45325b7df20ebbe68e78653db4fb61971ddf56ae09c0a26","0x87B87A7583D8d8F15b58Bdd290318386Ac8eE174",!1,!1,null,null],["ethereum","digix_dao","DGD",9,"Digix DAO","304402201066cb7108f6650a46c37c4b4ccf7c158f1e037afba3f254326e21e4f3aa6e3802204a00be84a558345913262e5f8576fdcb862355f1e5ee7d917fa2efab49f96a56","0xE0B7927c4aF23765Cb51314A0E0521A9645F0E2A",!1,!1,null,null],["ethereum","diligence","IRA",8,"Diligence","30440220347ebb1e559f92e98ec825880a8c2b8f2dfdb58ea9c390b4def78867beebc1a202203c8a601e4335ae1e04dc7fdb7ac686275a9b4d3470c12d27fad4bee862f0a23a","0xade7B5f4a421d81DDaD8Ce86f77A0EfE8921E9CC",!1,!1,null,null],["ethereum","dimensions_strike_token","DST",18,"Dimensions Strike Token","3045022100ef762b04be392d9dda580cb7a71eb71da6fe9bef252255b52837214598537ad402204afcd7ce9a13005027729dc8f860c4bfaf58a4e0c8f58a3180361fdd32d4a9a8","0x68d53441c0e253f76c500e551bdeA3D102206C9a",!0,!1,null,null],["ethereum","dimitra_token","DMTR",18,"Dimitra Token","3045022100de3c33238134bf9381e340e102b148f6926475a2ff79dd967c8a8137731210a2022066af5638640e3b230fecedfb1fb257f57d678357eeeaf46c314dce95312c42e4","0x51cB253744189f11241becb29BeDd3F1b5384fdB",!1,!1,null,null],["ethereum","dinolfg","DINO",18,"DinoLFG","3045022100f81e387843fa60a6f02e201720cb6c2a975e606d167d76e865b4c296ae928da202201e039f89083c29ceb7aaf7480f1e6a4fa6e7707dd38adb75dc1fd636301a562e","0x49642110B712C1FD7261Bc074105E9E44676c68F",!1,!1,null,null],["ethereum","dinox_coin","DNXC",18,"DinoX Coin","3045022100aaf7bdeca4f4e22500bd1304aa1c3d1a09fa94dbcc4fda0514f063683144c07a022023ea97ed62b71d02f9578869a9f82b299bc7b4f8edf069056d37b13a955e2cb8","0x20a8CEC5fffea65Be7122BCaB2FFe32ED4Ebf03a",!1,!1,null,null],["ethereum","dione","DIONE",9,"Dione","304502210085c753bdaf1ceb9d06619c03a859e7c6bb4bb74e95adb1dfc132b911dfd0d2e202207fa7505a132fe604bf5eb873bd858013b6f17d5737e336e9ce9a35e8f8433190","0x89B69F2d1adffA9A253d40840B6Baa7fC903D697",!1,!1,null,null],["ethereum","dipper","DIP",8,"Dipper","304502210093799ac63f3685aad8fba85dccf93716e029789d661b9604ddb7dea77c6878ec0220705c2ec062254fad3f4566bacd6f4c483f025c1662b165c15f7647109ab01a2e","0x786448439d9401e0a8427aCf7Ca66A5114eb2368",!0,!1,null,null],["ethereum","direct","DRCT",18,"Direct","3045022100c1fa11f1ea95999914ff5ada7ba1ef0ecff473f60d25ad751e17fe820dd2e859022007f4c6e4b16fff2e1d63e833b3c1b59bc696e043551056a1533d2cd8d7f73a99","0x9d561d63375672ABd02119b9Bc4FB90EB9E307Ca",!1,!1,null,null],["ethereum","direwolftoken_com","DIREWOLF",2,"Direwolftoken.com","30450221009fd8c507675b8569b7e784d588d5642fecf3bf86d87b389b25c0a038e27b2d63022039f0b63be20856bc1650cfa8468041d3bcf5a52622f072c17a27fba32b0b3c80","0xBdea5bB640DBFC4593809DEeC5CdB8F99b704Cd2",!1,!1,null,null],["ethereum","dirham","DAH",18,"DIRHAM","30450221008a5f0637d1b3d769a0f7a743730bba1f8b84afd961b9d4a18b2860ded025eff502200492c540b19c3c63e5cac6840ab4f7081374bd4633c9e81d7a1550ce920a2fef","0xb9E6BDcBa653b5f768dD2E2fAF6288df9054e554",!0,!0,null,null],["ethereum","dirham_","DHS",18,"Dirham","30450221009ded9d20794bbd868ee7901da11f897169a977c6b3c6c5374e0a5e2d6da4e60102205bda35eca3784f1ba36b5671a0c5214f6f7b69d31c84ee7a11795f71ca584c16","0x30365Ed4Ca8173013ad948b9842f34ac71d01f7C",!0,!0,null,null],["ethereum","dirty_finance","DIRTY",18,"dirty.finance","3045022100f8e7ad4a828ac7b39614e93c132bea38cff4919f9beb32118448607dd35d43dc02203e5897d114bffd58817489524a88e595c4576b238b52ef4fec2960ceda96f06c","0x4faB740779C73aA3945a5CF6025bF1b0e7F6349C",!0,!1,null,null],["ethereum","disbalancer","DDOS",18,"Disbalancer","304502210094542d2ae3615319e7307713b02d1e6dd1c49ddbc5e3836c1fa8ebb2eb78bb3c02200bc4a0ded0f71d21fcfed58c4f392a9d60a35a5d5844dc93fa7ebbb7047fb78f","0x7FBEC0bb6A7152e77C30D005B5D49cbC08A602C3",!1,!1,null,null],["ethereum","disciplina","DSCPL",18,"DISCIPLINA","304402202fbf0858361d7b9e852b17497ded4bf83e864441f663c31eeb0e45c8cf9e4ec902206d01d826ee89b03724585d38d2fc33a6a4e7e6fc3cd75f0e43ed568f941c4213","0xdECE0F6864c1511369ae2c30B90Db9f5fe92832c",!1,!1,null,null],["ethereum","disciplina_token","DSCP",18,"Disciplina Token","30450221009b62eaa772ef3d557248e1572ea556f1244c6dc4cb6a5733d9d1f6429781f42902202012f8d64ad44ae02ba61d554ea9b1984089946da19f7712e7e59988703dac52","0x03e3f0c25965f13DbbC58246738C183E27b26a56",!1,!1,null,null],["ethereum","distant_universe_stardust_token","DUST",8,"Distant Universe Stardust Token","3045022100bf23c34f2073e161a76c15cde9b2c5d9487356a34b9ac280bb4ab3ad090919f30220616a8a524a87ac79bc53734f4c4adc04190aad74d9f9e7e4ad087a6ddc07c406","0xbCa3C97837A39099eC3082DF97e28CE91BE14472",!1,!1,null,null],["ethereum","distributed_credit_chain","DCC",18,"Distributed Credit Chain","304502210093a5ae90bb27d73249c7acb1e2467617095eefff4ee321f9b497570fc3dce6dd0220622eb4fe793c39af39959e1dc4321df11962ca3721a9f856a5a395f2a6d63b04","0xFFa93Aacf49297D51E211817452839052FDFB961",!1,!1,null,null],["ethereum","distributed_energy_coin","DEC",8,"Distributed Energy Coin","3044022066c2643f43ac4a6e0f2940627017f3115f6250049cfb611527af11fbc4deb75502204deea39a7381674b41fa00e4a57245e8d83f5796e0bbffead1447ecdc5dda6d2","0x58379bF685ea2e251AE63d3eE26269c7c3848A17",!0,!1,null,null],["ethereum","districtox","DNT",18,"DistrictOx","3045022100c1e10946976da6c0aa68479a25320e3ebfa029bac9e830b0d35cfc92db4cb64c022051002f1ca3f6012edfe417a9541185bc9770344f06d54c10b969468d5834e941","0x0AbdAce70D3790235af448C88547603b945604ea",!1,!1,null,null],["ethereum","distx","DISTX",18,"DistX","304502210099a7c5926f7a967df1170a55e13b94ef2cab04074c6c06f66cb8941ab2f60a1902204b094cae6efb345795a0066a66f4e2dae1e63b6be07d3c459ff12305b414c796","0x4B4701f3f827E1331fb22FF8e2BEaC24b17Eb055",!0,!0,null,null],["ethereum","divert_finance","DEVE",18,"Divert finance","3045022100d45368e61454522935d5b45cc5fa63f997da23b85c343291a6ae327e3defd17a02206025eefef39a8418dd2d39c60109e21740db1c1a319ac4e4685cb19551db7caa","0xfdb615d6A15F929dDabc6b83A4f1Cf9d361b064E",!1,!1,null,null],["ethereum","divo_token","DIVO",18,"DIVO token","3044022034774d8ef37e7fd379fb6f276efcf0e477ec4f4f42bcfa0064799c61aa22d02702205c8afa378912a6ec5469d78cd08b840b9adef94b230f5527a5c2d5a3fd067850","0xFf1bEdA5cA92a83d05323E338d0534410858B6A2",!1,!1,null,null],["ethereum","divx","DIVX",18,"DIVX","304402202170d8e8e914ad6eb2e6fb619dbff6e8d358fb952851f7166773ffeda92abf100220687921ba1a3b7ac818e5268940a7268b507272fae8e349aff2c22a6df982d30a","0x13f11C9905A08ca76e3e853bE63D4f0944326C72",!1,!1,null,null],["ethereum","dixt_finance","DIXT",18,"DIXT.FINANCE","304402205db2930bb57931092bd2f2f1a7d3708347d342bb5b861d6a01eb9bbc684fd6a102204529bd09f15dc2b338aea2376bec1a689c6901675e7f5ce28c4a39a253b4211b","0x43e6228b5bF22Eab754486082cA91FdD8585521A",!1,!1,null,null],["ethereum","dkargo","DKA",18,"dKargo","3045022100ad3480251f5defc4097140b9621483bbfd254b45ad13c3946a2a25133a8cf6b00220040045e6cae42951d4107a33c045da80bb4af2313b0a164a26329282c00baac0","0x5dc60C4D5e75D22588FA17fFEB90A63E535efCE0",!1,!1,null,null],["ethereum","dlp_duck_token","DUCK",18,"DLP Duck Token","3044022065b7cab9a832edccd9035f42ef24302a284102c9f0891572b4fab305c3d16c93022048747be59b354756e48065ff6f04002e6e7cf51c4875dc37f5bd3a903633011c","0xC0bA369c8Db6eB3924965e5c4FD0b4C1B91e305F",!0,!1,null,null],["ethereum","dmarket_token","DMT",8,"DMarket Token","304402201b2667f2e755eb5870c985027ecd63cec21e7181ff4c19b0fd7db891a77c490402203e30e5965c8d9d30e6f21d9f0de7c4727abc4b09c7c838fb124a656906157e7e","0x2ccbFF3A042c68716Ed2a2Cb0c544A9f1d1935E1",!0,!0,null,null],["ethereum","dml_token","DML",18,"DML Token","304402207dff6c9042a8fba43f412f45b7c2c32f96dce29807dbda6828569c1cbe7e5d8502201d848d83ce42f3803094cbd76c5b619c9f9b1428d57d425c4b0c591373b19ae8","0xbCdfE338D55c061C084D81fD793Ded00A27F226D",!1,!1,null,null],["ethereum","dmm_governance","DMG",18,"DMM Governance","30440220159b57d92e358d71472d3f1007d7eb4aaeae391d87e17e05aead2c0112787e210220507c02f8db2de0aed62c644c08f2789da7ba3f70fdc46958012867d06bc2e399","0xEd91879919B71bB6905f23af0A68d231EcF87b14",!1,!1,null,null],["ethereum","dmme","DMME",18,"DMME","3045022100b5658b6f5afeb2f4507b1f3727464f1a3cbed3a4b4af5cfd9c3137da3452153402201ead7b9e7751b61c462f6e0e2d1baaba374383064c69fbc5591e029bd03d4109","0x9556f8ee795D991fF371F547162D5efB2769425F",!1,!1,null,null],["ethereum","dmscript","DMST",18,"DMScript","3044022011ae7aab02310883775d974bd0e13bda92e7a46495017e8e2a27cf979c68226802207d0d9a0ba8fafcee928e2e1e8acbc00e3df4c0114d35552447c8bf13a2d566fc","0xF29992D7b589A0A6bD2de7Be29a97A6EB73EaF85",!1,!1,null,null],["ethereum","dmtc_token","DMTC",18,"DMTC Token","3045022100bfa54442c524c0b36f8a36b05a5540a02c0591df7047880d96f3d77f4009936c022031d35d152015ee2f0495cb3d5946e93582c154756b3a4e39fcd2291f8156ba2d","0x3be6e7bF2cD8E1a0A95597E72ca6D3709bBeFF76",!1,!1,null,null],["ethereum","dna","DNA",18,"DNA","30450221008a216baa407c5268e4637845ed90b2222256e26d89aef60afbd91d27e00d6f5202203e337810044832b0979051b67910866f991e6b6d099771244c508ed37c8a8199","0x82b0E50478eeaFde392D45D1259Ed1071B6fDa81",!0,!1,null,null],["ethereum","dobermann","DOBE",18,"Dobermann","3045022100ec4efc67c0d9f87e715930a3d36e58c73569aeae4c7008e77d79ea6c2b1d904f0220722d814f4eb776f5c4042d7c940c6715252cee6925b253889dd0c65057115e41","0xe7aB45162f5979F09B0bDa1CC7DfC97C270EA3d5",!0,!1,null,null],["ethereum","doch","DCH",18,"Doch","3045022100a4de04b05a7800931f50f1fcba2d0dd7164fa4e4ef78fd966f4c71d1a8c282020220793ae9c81ee4f859b8d6d303553681972dc0db7844dfc8577dc4aad716ad71b1","0x4a73E60ADBb8575500Ffc6AaEa6128954011C8Af",!1,!1,null,null],["ethereum","dock","DOCK",18,"DOCK","30440220565c2ed3df4bd30b6c815a0137392992363c39a630b4e67b6ad8dadd554b33c602200414488ea8c772a0b26401b01cb7744f98ceff3caa0b99bc6f77d541b3b7c9ed","0xE5Dada80Aa6477e85d09747f2842f7993D0Df71C",!1,!1,null,null],["ethereum","dodo_bird","DODO",18,"DODO bird","3044022032be677d1ff644eb268d9785f67cc604548be8c9b0189caa76ff5ac5a165710d02207dd9d0b7c4803645647ddac3d6788174a7d9db5d26f9113452e5ecf254a7e17f","0x43Dfc4159D86F3A37A5A4B3D4580b888ad7d4DDd",!1,!1,null,null],["ethereum","dodreamchain","DRM",18,"DoDreamChain","30440220099c43e56fcaf42e73ffe28a08374268bd708c4418f7d5631ceb0711eb1b0ab502204f87b1a1783e702ca999cd9fbaf3b98339b70cdbf53c2d4b359a133d4c739852","0x89551b940e2A8ED8eCcF509935bAc9213fE30584",!1,!1,null,null],["ethereum","dog_collar","DCOLLAR",18,"DOG COLLAR","304502210093899a4686d4a7b50c4dd95ccddcbe52addea5811c04b9e98c7f119c25a9ba23022006ae386f685f6eb816af4356d19f26f5b609962593315f3c22c8fa970b1d7d2d","0x9783B81438C24848f85848f8df31845097341771",!1,!1,null,null],["ethereum","dogdeficoin","DOGDEFI",18,"DogDefiCoin","304402203e3d50c7ab01f7d5a92cb2b94da9aea89a8ca3fef578580335c4ca4ce8c7c6b602203bcf6de5a59399a7f66b937bd1078e8f24a98f67d888278033556365a54e981a","0x80bb277f4355A43CDbB86a82F9876C946476d9Eb",!1,!1,null,null],["ethereum","doge_2023","D2023",18,"Doge 2023","3045022100a122e4df624087a3561011f3009559bc2b188c10041c4414d6c5d8d0908d4f5702205133ac9c2e66d3e21ce3d145f44a612c04aa65254ecb09d42479b673040580d9","0x39d6eA0fB19C1Cc7B675C4BAf71A020F4E5dFf8B",!1,!1,null,null],["ethereum","doge_killer","LEASH",18,"DOGE KILLER","3045022100a965200d0b01f7e1d2adf6bae411c8eb2c452f40780d0ccf0cb86052afafc71c022011ac38a76a5b37c6da97c8fe306a1f33eb8bb52020061a7e2d95fc17f5573ec2","0x27C70Cd1946795B66be9d954418546998b546634",!1,!1,null,null],["ethereum","doge_of_woof_street","WSDOGE",9,"Doge of Woof Street","3045022100af9c4b85f8a1376f6b1b22b75ed4d1c8cb3a2429e93a95c992d6a8209e10a93502201548fa1b122036352d8f965c5447cb51914b569ae395d1f30aa1e04b93509245","0xCBDf1deb934E945a70b7289bB98e97013777F820",!1,!1,null,null],["ethereum","doge_protocol","DOGEP",18,"Doge Protocol","3045022100a28ed5e7fe21d1eaff15c0f2fbd8fbbcfd25729667dcfad0d0385ec2e41226c5022028c68222d780bd69dd4e8ecf35dc2de8fd620ce40337b59f67561a6406ef459c","0xE7eaec9Bca79d537539C00C58Ae93117fB7280b9",!0,!0,null,null],["ethereum","doge_reloaded","RELOADED",9,"Doge Reloaded","3044022051bd06b2ed80f21a95c69290f9a9a29b104736242da586d6d0c144153502765202203048ca613935e822499b860bb85e2d89eb2d23026a72b844fa52d63f707a02d5","0xF68df6dF642E8387AfC9D03214B78f3087ef8a99",!1,!1,null,null],["ethereum","doge_strap","DRAP",9,"Doge Strap","3045022100ccd33a194473be8e323ca7c1433920adfeab6f040c650c2f6c0a16c3c59554c50220065586f5a513152aa2493b2677bca2174a04077b5ec1a9ffb6c77bd398b614e3","0x80c74b9166b2FAA5DC6a950f741f59A80026CDA0",!1,!1,null,null],["ethereum","dogebear","DOGEBEAR",18,"DOGEBEAR","3045022100e52c1e7a2882c0b06e1b463ab7baa6e64459db007ed16b3c1d904348f65b82260220353af194632d44d7f3477e679440f05772f3aca642d7c91462108a2bad7a27ed","0xF1d32952E2fbB1a91e620b0FD7fBC8a8879A47f3",!0,!0,null,null],["ethereum","dogebull","DOGEBULL",18,"DOGEBULL","304402204f026fa2bdd7841536df430e063ebe27dc42e1a552fe941ea7ea96ba86485eab0220012f600e42d512a8f6263209594e5df55718d201b4f03a96a99cbbec4433e2b1","0x7AA6b33fB7F395DDBca7b7A33264A3c799Fa626f",!0,!0,null,null],["ethereum","dogechain_token","DC",18,"Dogechain Token","304402207afccea2a96385855fb350f8e9416578b11a224e9104df3b656b28800bb9109502202b7abae520cae10952c82de0d6974cb7b7615f595146f64e80c608c8a65af376","0x7B4328c127B85369D9f82ca0503B000D09CF9180",!1,!1,null,null],["ethereum","dogecoin","DOGE",8,"Dogecoin","30440220255f0511f6a359b95d5b10b071d842535c1cca16a217a2b21b8b580a2df131db0220090c08387b038b796171b728ad8a015627a601f1f84c662d23618fedb567dfdf","0x4206931337dc273a630d328dA6441786BfaD668f",!0,!1,null,null],["ethereum","dogefather","DOGEFATHR",9,"Dogefather","30440220127dd352e0332c20fe377e0dee6271b4cc15acc1399f90b332072ad8fc7fa87d0220315d6e15cc8213f2025986a03c490643d48af065961c7eea042014aef8853b0c","0x73C61dD9E121dE834A4f3ed607263EE33b308c06",!0,!1,null,null],["ethereum","dogefi","DOGEFI",18,"DOGEFI","3045022100d8b7097cd5382871e7962e689a30a1dec95438687657590e71ef6c916d4474260220120faa51f52dcb2ad279296209f706ddc4f7c0910c28ac2e0ee14ae87ee27e11","0x9B9087756eCa997C5D595C840263001c9a26646D",!1,!1,null,null],["ethereum","dogegf","DOGEGF",18,"DogeGF","3045022100c8128c0f2039ba43899734d948280446b7331599d44b27440aa974a725e6523402206a8a65b7b11ebcee95fbc1e47416280756ebe087a1d2e9caf2f10d323cba7746","0xfb130d93E49DcA13264344966A611dc79a456Bc5",!1,!1,null,null],["ethereum","dogelon","ELON",18,"Dogelon","304402204398d4ffdb9acffbcaa1c659a04a9392ea3343015242f991933ecbc7c13065e00220239d3664ffc6d68d05a052a88f1709c749db156f8b132b0253ac5391f90b7c0c","0x761D38e5ddf6ccf6Cf7c55759d5210750B5D60F3",!1,!1,null,null],["ethereum","dogentoken","DOGEN",18,"DogenToken","30440220053cca87b0a8736ef043746a366d1bd48c9662cfefb0f0d8c4a2c2df77dbd07f022061aeb7e77c45751a32bb539209bbc3d4d4ee4403af7763c66b8cf27e5ed7ef8b","0x17eb50FDD2995696eE82912a80a9766fCBb0ECcA",!1,!1,null,null],["ethereum","dogeswap","DOGES",18,"DOGEswap","30450221008c1ad05a04146259c3632a6851f6692c697b9154e7fa1e9da5865cfb104f32650220431e12cfb3c68f0996f1b11aed19784da01d01e0508e812e7ced81cd88cbf3b2","0xb4FBed161bEbcb37afB1Cb4a6F7cA18b977cCB25",!1,!1,null,null],["ethereum","dogetoken","DGT",18,"DogeToken","304402204d6c91368d9ccb3e70809a2da8978a494f75e2cc45eaa08323f1942e7dd2bd4a022022c0239059a7e61fbb5a9d10f8ce9c99d3bf36a0519fc74ea7961b29adb0c8f9","0x8b9C35C79AF5319C70dd9A3E3850F368822ED64E",!1,!1,null,null],["ethereum","dogey-inu","DINU",18,"Dogey-Inu","3044022045db65ebf5a4259f7c1bbce6254e4e3cc1af379477a0b1170bff09a1a8d7bd9002207e889b56ea77bd6de988362289d36026f26f7a1a07f067ff990b41a671f03da2","0xbb1EE07d6c7BAeB702949904080eb61f5D5e7732",!1,!1,null,null],["ethereum","dogeyield","DOGY",18,"DogeYield","30450221008d1a29d6b1c6cd169e70865e794125643a441806d18c523e598ce5708c2c06ad02207b0b000b37356b8d238f9b0834642425339f09d2cb7b7c622419ad655f62952a","0x9c405acf8688AfB61B3197421cDeeC1A266c6839",!1,!1,null,null],["ethereum","dogg_token","DOGG",18,"DOGG Token","3044022047fe4f4febc1e0267d0580f0d08b3f8dad87a3389035153ec5cf3462b429bde80220018740f69951e17fb15d6f69dd37df0191c3964e6ba8648723068a576fe7511c","0x559Efe1d7A54fb1C7f25a036952F8498CdF02EDB",!1,!1,null,null],["ethereum","dogira","DOGIRA",18,"dogira.lol || dogira.eth.link","3045022100cb4e6145d7b4f6bb61b8198df51b23ee0ea8bbd6a460a9ac3260c96ea56bd0b202200bfd2d8f76c400b4ccdcd8d3c147e7fb40883e85accd8f4eacb5dba85c813898","0x4B86e0295E7d32433FfA6411B82B4F4e56a581E1",!1,!1,null,null],["ethereum","dogpad","DOGPAD",18,"DogPad","304402200d824cab0a6f2e63a5e2b2e948a61e2687904f56f3781ffbf3ba32ec6a3ab0930220329b6ab3e8b3856c105c26a4cdd40526dd45e1ca238e516e56299451d0ea228a","0x6f3277ad0782a7DA3eb676b85a8346A100BF9C1c",!1,!1,null,null],["ethereum","dogs_of_elon","DOE",18,"Dogs Of Elon","304402205e4801b1a8847c8f80e10b1be81607ca9da4c0c956c461fae057459a4f611366022050ce688c0ba777aea59e6e4c7636eefc182a2379b4e041b48bb51c0a47c31927","0xf8E9F10c22840b613cdA05A0c5Fdb59A4d6cd7eF",!0,!0,null,null],["ethereum","dogstonkspro_(dogstonks_com)","DOGPRO",18,"DogstonksPro (dogstonks.com)","3045022100fa2f36b43d0ec5101f77a60113fa968b7822c27289ece2b4c8bbc29d21af8c4602207041008003657e4ec1c7d8998f20627fb26f0651b467471adb1eb576d3f23ff9","0xE7a7ef72466167fF78e08ad76b12CA0C13C496E1",!1,!1,null,null],["ethereum","dogz","DOGZ",18,"DOGZ","304502210091d9aea38532ff3b8c13369ce5cfbde13e669b3a0d92e04f46e082081ba7b9c1022078dcdb4c356aeff280c620b46d43b394838b3dcba0b5e4e68f22d358059f33e4","0x82A77710495A35549D2aDD797412b4a4497D33eF",!1,!1,null,null],["ethereum","dojo","DOJO",18,"DOJO","3044022032fd3fbc858822f2868f0a828449ecc8555c0498ff1a976151470c825b77f81202205e8b5aacd3ed53b79c77feac0badd472c508fb9dd2f8711620be6a40847d9f1d","0x180dAe91D6d56235453a892d2e56a3E40Ba81DF8",!1,!1,null,null],["ethereum","doki_doki_official_collection","UDOKI",18,"Doki Doki Official Collection","304402204a11c898b88cba0cf8c517498cfbfd6f328c196fc1972b10953151d886f1d53b022003e5d20cfad3e3c3a7a9e26e1f14365b4088a4da34f165c2a8f0d0b79eba6070","0x7E6C38D007740931E4B419bF15A68c79a0fb0c66",!1,!1,null,null],["ethereum","dokidoki_chainbinders","BND",18,"DokiDoki.Chainbinders","3045022100fce63b79c43d365da23266dddcd1181ca7720dddf01970944575898c68b6f28e02201b496ada47d49eab01bdf100b57a51ceb79ff846871f7d929ada8d240353b100","0x84CD68c3e470eCEE4b8b6212eFcB8C6BcB38DA1D",!1,!1,null,null],["ethereum","dokidokiazuki","AZUKI",18,"DokiDokiAzuki","3045022100d5b11730a439980717e1fcb99812768a5812ff3ee134b303dfdc9994d1b2bed602204ae79d55c2a9eb8c86448baea35d1200d794b5c940a9bab869c5d08bfc324718","0x910524678C0B1B23FFB9285a81f99C29C11CBaEd",!1,!1,null,null],["ethereum","dokidokifinance","DOKI",18,"DokiDokiFinance","3045022100aee73af8c55e6e2710ac351357d257034c8ffebe14f2ad4dc9fa76ae130acaf202204d33dd1efa6f526ec329d571c8c086fc7c4729e71437bd347e02eacae2a86b15","0x9cEB84f92A0561fa3Cc4132aB9c0b76A59787544",!1,!1,null,null],["ethereum","dola_usd_stablecoin","DOLA",18,"Dola USD Stablecoin","3045022100a47135b5a2ef1da19d06aabef881a44252db6e74ef038528b22a2e776a1420be02201b11201d841cb37f419616e039a8248bd7daa4390492ab50fc34d38f457c4ed8","0x865377367054516e17014CcdED1e7d814EDC9ce4",!1,!1,null,null],["ethereum","dollars","USD",9,"Dollars","304402206b188e9c24691f6a3c1b00b3beca30134ee7851ae2203a446dcd15666e33b9430220364f0fe992a3c114256ff4fb524a70e944b7b6bfad4f1b54ef9f453299c304cd","0x2F6081E3552b1c86cE4479B80062A1ddA8EF23E3",!0,!0,null,null],["ethereum","dollars_","USD",9,"Dollars","3045022100a1f9e3269f1f9563c255612740e6dc770c40ffc17d04f235d43831635075a97602203fba72f2ea3522697a526edbc8e8ce5b4d384b1d2d570dea6e8deb224bc9ff41","0xd233D1f6FD11640081aBB8db125f722b5dc729dc",!0,!0,null,null],["ethereum","dolphin_token","DSE",18,"Dolphin Token","3045022100f00b729c979889808a7648b9380a92e2075b314f59fbb1c8a91ff79aa8967b7c022042a3843dbefdccd5e51520874fa772f902dd47fe4a16066acbc6d6cca6e991a9","0x136Bced3aF8530B81e4C7ff45c9228376726D173",!1,!1,null,null],["ethereum","dolz","DOLZ",18,"Dolz","3045022100d4c6218aa5efe15d243f4d771fa7db6715e038936e097d35b3a3b04ed172710e02203698fd98e99cee495d34fd4f118c82503c47189eb85a4606098b8d628c471cb5","0xe939F011a3d8fC0AA874c97e8156053a903D7176",!1,!1,null,null],["ethereum","domraidertoken","DRT",8,"DomRaiderToken","3045022100f1935482b456289314d2402fdcd0109ee637ff25f236140c60c721a0ac68ff2f02204a1a4abcfcc3d0b700ed63f063d700126d24aa73ae856c2129bf54d79d8703e7","0x9AF4f26941677C706cfEcf6D3379FF01bB85D5Ab",!1,!1,null,null],["ethereum","donkey","DON",18,"Donkey","3044022006c1dedb735896a62b12779c234e947f62be0e992a8a02e51bbcfd6677fb7fc902203f5b5f01c8b33bc4107e64826e7bf75eaca6bde76003200f6bf3e0eb2cadc54f","0x217ddEad61a42369A266F1Fb754EB5d3EBadc88a",!1,!1,null,null],["ethereum","donut","DONUT",18,"Donut","3044022046e4a61d96312f9df42c20de7d704dcef73c4502f19493371329e550e6378e0b022009b41376767ab1e70824bf1dde0ebcc0742c679942c50f7684fdf5137a461d89","0xC0F9bD5Fa5698B6505F643900FFA515Ea5dF54A9",!0,!1,null,null],["ethereum","doont_buy","DBUY",9,"Doont Buy","304402200b8c864f4d34c094772a739224ffad0a389ef81a58852cecd9019a80d9401e7502204ff8670a71072d4b7a1189612cf8950801d2b57aec663bd6c8e2d30c4c4bc78e","0x4EcE5C5CfB9B960A49aAe739E15cDB6cfDcc5782",!1,!1,null,null],["ethereum","door","DOOR",18,"DOOR","30440220100ca43adc290ac2eed2802ecda9fd5b64a015f4a05d265d68a800a8cddeabfe0220455447389a8b0fee7b2aa6b58663ce0450015f6fd9ad3b49c1d8ccc20b86656d","0x7D48FBe0A877bB1f511fcf9B57F12420C75841e9",!1,!1,null,null],["ethereum","dopex_governance_token","DPX",18,"Dopex Governance Token","3045022100d1133e59fe4637b405cb8a126485547fdf343796307426d6b105aadcdacdaa4a0220319462dae16e2f3e5c18411482fb58a6c93ca445ab78e9ae2cd1665ce47d7c70","0xEec2bE5c91ae7f8a338e1e5f3b5DE49d07AfdC81",!1,!1,null,null],["ethereum","dopex_rebate_token","RDPX",18,"Dopex Rebate Token","30440220715e0a5443f2091efff7a3ecdb34d4fd56592e036ff0404cddcf7591160bda8902202367c3b2675b60a099839cc8223232c45b905142c93cc457431cd3ef9a25e794","0x0ff5A8451A839f5F0BB3562689D9A44089738D11",!1,!1,null,null],["ethereum","doradotoken","DOR",15,"DoradoToken","3045022100854421409984985382d7971464a2076a6e76cb4236c806d74d660c7faf3217a902207fc11fb2efef7d009d43aa4d4c58cbf651a7da837f5355a75c7de9b7c9ee81bd","0x906b3f8b7845840188Eab53c3f5AD348A787752f",!0,!1,null,null],["ethereum","dorayaki","DORA",18,"Dorayaki","3045022100d13f4819c76eda8d0f11d62b0e07cd40b3f093d8e61a2b68786618f1083f6d4402203fc11d60ff4d8e242b8b5061dda88e6d0b6519dac865e047e94fa1af8d8a9fca","0xbc4171f45EF0EF66E76F979dF021a34B46DCc81d",!1,!1,null,null],["ethereum","doren","DRE",18,"DoRen","30440220528495db48f44445febf40ed9e22278394472227eb9024400f76777f971dd938022022fe01750fd8cb3fb97520bcb371319c192b1a3381563f44c52b21b4a1d9d988","0x1977bE49C33dFacF6590C16ca9a9CfA0463f663c",!1,!1,null,null],["ethereum","dos_network_token","DOS",18,"DOS Network Token","3045022100aff3a0f3cf3dad22738b130032f4f499607920da259aa0eabf19c9e63294f365022075c51d0c728d586186ed31ddb961a8e724bf126c50a79d044eac7570c730b6f1","0x0A913beaD80F321E7Ac35285Ee10d9d922659cB7",!0,!1,null,null],["ethereum","dose","DOSE",18,"DOSE","304402205f385d8279c6f7ea1bf6ac62c2da4eaab4748d5eef73a71f124e1607722d97a5022010ad44a2d2ef6de6c2b4eb045482f4e57a9512b8b6869359443c25cdd9df56e8","0xb31eF9e52d94D4120eb44Fe1ddfDe5B4654A6515",!1,!1,null,null],["ethereum","doshi","DOSHI",9,"Doshi","30450221009d8e960565f3664027811d55fe00ad993c04b2581bd8e2d28bda0ed99cbf264202202221748d5d9c6dd70be164c018e33510add7510e711ccad8ab69101c4c2974ca","0xC7F2723B64d88f4D14f0bEb2e9Ffce78795bbCc6",!1,!1,null,null],["ethereum","dotify_token","DFY",18,"Dotify Token","304402201d997c456c798fdb6803e43cc66772da3b1bb38382bf41bfb320094b896218fe0220623683f158cd64744b9dc0884be51590258eac0d9c5432bdcb0c3e678c924d13","0x7CCC863EcE2E15bC45ac0565D410da7A3340aD98",!1,!1,null,null],["ethereum","dotmoovs","MOOV",18,"dotmoovs","3045022100b186e71285a0782b66900dd9553ea3e52ae27a0b5827c7db2a95b288b195945e02203938052afc48567e89d06b20706b148e3bc59894ffd76dbeed980cacdacde157","0x24EC2Ca132abf8F6f8a6E24A1B97943e31f256a7",!1,!1,null,null],["ethereum","doubleace_token","DAA",8,"DoubleAce Token","3045022100e0840f604979ed51873dd253e6439d807ff7966dc67dd2f4cb069732ef463c1d02203bb5a6a565cf8976a82c19143242aa2e76fe46506e00c9632e9876c76ac38d55","0x9f4F1C679FC8479Cd71482A8D8C88Dc60c1403f9",!1,!1,null,null],["ethereum","doublehelix","DHX",9,"DoubleHelix","30440220780beb15f53be81adcd871dba04dc52eb231cb3c61ef9011dae9de7cde1895d20220100303f9e8befd795c8094e2ebf7a58e43f4f10a9f0ac26be2f90979477d8bcb","0x9694EED198C1b7aB81ADdaf36255Ea58acf13Fab",!1,!1,null,null],["ethereum","dovu","DOV",18,"DOVU","3045022100e683a1407ea0410a87ee063adbfa6e3ffb14b71f2ab2ea841a7ab5f9d394416c02207c26ef7bb37ee78b204f4bdd61fba7a2a17d332dbe8db04c1915670fb248502f","0xac3211a5025414Af2866FF09c23FC18bc97e79b1",!1,!1,null,null],["ethereum","dow","DOW",18,"DOW","30440220418b69aee0649a21e1282110a49fc9ffbaf0f19d9842406765dbdf5f52cdca1b02206f61af4c56c0b5ce3e9bb073b96b95b030f9f70e981c9eda9356c5c4b94b3cfa","0x76974C7B79dC8a6a109Fd71fd7cEb9E40eff5382",!1,!1,null,null],["ethereum","doyourtip","DYT",18,"DoYourTip","30450221009067e01f33f8d33f49aef6f14d1e2ef470b595e7c82f3d6ad52b71714c34c2f102203cdf0bfd1472d2c8489d90b1fb828812d825d557751f4f572f8616d36fd627d7","0x740623d2c797b7D8D1EcB98e9b4Afcf99Ec31E14",!1,!1,null,null],["ethereum","dpt","DPT",18,"DPT","30440220092c58daa329b1fefa4ce4237b2a54e17c7501763e13ebdf200f4e55293a84ae02206fe009675d517dbd64da498184cafa4cd1f589ac8ee75143e224332d68e8123a","0x10c71515602429C19d53011EA7040B87a4894838",!1,!1,null,null],["ethereum","dracula_token","DRC",18,"Dracula Token","3044022005127e8d56ea75a18182bf5f07018f66452640bc2255a796c0ca8808dc14c2cc02200b61e6e2d7a34e4163ae7b52eddc2c7ffebf2d3ea49d742433d7e49100bdcdde","0xb78B3320493a4EFaa1028130C5Ba26f0B6085Ef8",!1,!1,null,null],["ethereum","dragon","DRGN",18,"Dragon","304402205f49a73993cb016666e1f4e45e852175f87fca1328b8681f4d015121809adea902203eb2e2d5ee52e0862c004ee891c87cf70300e7ee19e77967236adc768f4565da","0x419c4dB4B9e25d6Db2AD9691ccb832C8D9fDA05E",!1,!1,null,null],["ethereum","dragonbit","DRGB",18,"Dragonbit","3045022100ef04d3cac9a23bec124650bdbb7a220a6037e55d1a3007a99cc1f9774eecaf9b022035550ddc5ac1c635c8a44471df74fad7717bf09788cfb2c4967ee4d322b3eb7f","0x9d3e0892D11f19f5181d4a4C5d04187a9e0d7032",!1,!1,null,null],["ethereum","dragonbite","BITE",18,"DragonBite","3045022100bb99aae4b4c6361adbe61cf6959094c106a4e18c4136b48bdaadacdfdd5cc12c02204280fc9b3f010ebe14e8d9e21e1f2e15b5065527709cf6ed78514924eaaed032","0x4eED0fa8dE12D5a86517f214C2f11586Ba2ED88D",!1,!1,null,null],["ethereum","dragonereum_gold","GOLD",18,"Dragonereum Gold","3045022100fbf53946825812ef3a9e2cb248140810e8ea684a513b8b72e61c45a371db4fbd02200e90da61a21399600f37a1ed7341154bf05921dc7dc4ac8275cff41c0420b4ee","0x150b0b96933B75Ce27af8b92441F8fB683bF9739",!0,!1,null,null],["ethereum","dragonflyprotocol_com","DFLY",9,"dragonflyprotocol.com","304402202cb5bb4f4409eba004e6a16f3565e15b65de72a1f12c5a32362e3060d816643c02204c69cc533e5f2d53977cce469fa1a1aad5f702d02a5cd5b7da4e623eb42c21dc","0x70A6D0D1561Ba98711e935a76B1C167C612978a2",!1,!1,null,null],["ethereum","dragonglass","DGS",8,"Dragonglass","3045022100d85a661c0b18386b19ce111000cfe6347a487e1614c9b609515ddcb9f41f6e0f0220614bcab66a41d021678bed511cc9dba9a7a509e105687b5ea3fd5cd44663042b","0x6aEDbF8dFF31437220dF351950Ba2a3362168d1b",!1,!1,null,null],["ethereum","dragonvein_coin","DVC",8,"Dragonvein Coin","3045022100b289f58159783fd29b744b2fc29fb24b9594895abeda06e029b237cec43a85e102206862a6a167f084940de0e18ff1693c37988243841a6a7822e146109d47ed4bdc","0x194524355F26aF663468d4996f207A918C73E013",!0,!0,null,null],["ethereum","drakoin","DRK",18,"Drakoin","30450221009562529c890d7c2f5b4659e636a2466a1b02d1b048316541aa874b60d08fc8c3022046e63272698b25fdc1f0eb71bfb767ff915ee1e43615924a7b4b12aa1a6d5903","0x2369686fC9FB6E1fDc46541891568c2f341906eF",!1,!1,null,null],["ethereum","dream","DREAM",6,"DREAM","30440220372b9adf1aefbcb678b4bdc554ff9c4708deebbe3aa2ab262528bdba415cf29d022043c3ee57902533912ec4e851947c759c1b58c5e8b8908b0e555bed6e19954fb4","0x82f4dED9Cec9B5750FBFf5C2185AEe35AfC16587",!1,!1,null,null],["ethereum","dream_car","DRC",18,"Dream Car","30440220147072e64c72726b3d3f8773bc4a9c2155dd31653a828b313f41d6baab2dbf8902200c9f06c671e8a0640540eafae8eee286cea463421e1e0248aaed10d06293158d","0xd7f5CABdF696D7d1bf384D7688926A4bdB092c67",!0,!0,null,null],["ethereum","dreamcatcher","DRC",6,"DREAMCATCHER","3045022100fe1bb18d599f106d75bc918935229be3bc394adf2b82cfaf066fb529f02261e70220729a83fa1baeb0f5d7f8fe0e4c02b912eeee5c643ddad08b90c007f464ba8afe","0x1F4A9567c1F98a8c9D7f026827F099b41a2E54d6",!0,!1,null,null],["ethereum","drep","DREP",18,"DREP","304402204f76fa94ffb4504cc3db3c3019b64c1cb0ea02de53802486884946fba8b83d34022062b043dc2fedd7e00fc2b93422341d8c75f0907b1b77bc24dfcfd1c13e2a9e18","0x3Ab6Ed69Ef663bd986Ee59205CCaD8A20F98b4c2",!1,!1,null,null],["ethereum","drep_","DREP",18,"DREP","3045022100ad2e4d7633ae2df65a08371b25f9fcd3c4d613f7ee48fd7855a4803f85faa0830220269a558ba7caeb8a6a2057ba7061e4e3bd5e8c98edfc417ac3be5071db92988b","0x3aCA71C508e06Dc6B2758DaB6eb20f7654572fb7",!0,!0,null,null],["ethereum","drgnbear","DRGNBEAR",18,"DRGNBEAR","304402204cc4a05acbbee62b1a5c04cfc867a28ecf1beda2d0fedf6e456b0f32cf7e8f4802200cd87a0c2b3ffd540f9ccb55465952de62a284d76da505667284fd48ba27cd29","0x223FB5c14C00Cfb70cF56BB63c2EeF2d74fE1A78",!0,!0,null,null],["ethereum","drgnbull","DRGNBULL",18,"DRGNBULL","3045022100e2d2d11ca6d59b4b4658ff58c20b6b756d40b30c919aabd4696f3fb755930fe40220271e7d2acb7fc8986f5dedc2eaa5d30a3c412985804061b5dc037f09b14ad19c","0x3335f16AF9008bFd32f1eE6C2Be5d4f84FA0b9da",!0,!0,null,null],["ethereum","dripcoin","DRP",0,"Dripcoin","3044022019b7f9329fdbab4576ded0f0dec072873691a100591eaa6aac6e1e1cae05961902204c345ddd84d05b1723de35e2ffc01831c099179d898571d975d05055ee041357","0x2799D90C6d44Cb9Aa5fBC377177F16C33E056b82",!0,!1,null,null],["ethereum","dripper_finance","DRIP",9,"dripper.finance","3045022100f6d77698cf62d723507ba40c1f93bdfa213375603191ffc56320e11ee316aa0a02207b52a70cb5dbef8dcfd302e5ba8a5e77f132767a4b4112499e4807585d40a4a4","0x239119c43e3caC84c8a2D45bcBA0E46F528E5F77",!0,!1,null,null],["ethereum","dripto","DRYP",18,"Dripto","304402205273d2804ab63303cc555c284719d176c1f00206a056c34d88c477ea67b5ad1c02204c0c7b5f419d70cba7893410afa1eef1c5b21559ae7fa57e63b5d0b32155bf3a","0xBE1fa1303e2979Ab4d4e5dF3D1c6e3656ACAb027",!1,!1,null,null],["ethereum","driveholic_token","DRVH",18,"Driveholic Token","304402207a16410045837b0ad1266e06b185b3952437d30d2ba7b89e99c92391cfd0dc2c02204a0a49537b3c2cb322aa35cbc62ca3a5fba2abf04c68bba01527666f85989977","0x62D4c04644314F35868Ba4c65cc27a77681dE7a9",!1,!1,null,null],["ethereum","dronefly","KDC",18,"DRONEFLY","30440220695e8ad176b40af4488e04741a6a1dd093737c59a2e137ab6511865c8a0fc76d022064aa6307d2910d08ca06a47189f523ec70b6f4565558aed28b643a4a339e893c","0x7e00b63483C92975A3be0a71432277935326a618",!1,!1,null,null],["ethereum","dropil","DROP",18,"Dropil","3045022100d24a5044c693d26f42b30b89eb21443720456eab22a4b01ec4fab0157501510702206d4677f7122ef470465996834e1e714a350a5218ecb05c75bdcc7ed022803632","0x4672bAD527107471cB5067a887f4656D585a8A31",!1,!1,null,null],["ethereum","droplex","DROP",0,"Droplex","304402202e9829499b75610688683579f3cf80c53586d3846922e8184dbc85e7f01db915022011d79472bcd9abb09d335d4ad6eb43d2b5a6c064c7065d7dca0b93b84eef01c8","0x3c75226555FC496168d48B88DF83B95F16771F37",!0,!1,null,null],["ethereum","drops_ownership_power","DOP",18,"Drops Ownership Power","304402200b28c66b20c1bf7b0e209be134f833a802a297bd5eba9222ab4c40d87fa5aeff02203e90ff6ae5d9c5948601b73dec18bb6af6c5b8b5f30bc8102691cffe6e319c7a","0x6bB61215298F296C55b19Ad842D3Df69021DA2ef",!1,!1,null,null],["ethereum","drp_utility","DRPU",8,"DRP Utility","3045022100f172a08b4912b45a0535086b6896aa7e8e4f2f75d7489120e017a931cdcab29102206ad0a18333f360a82643c7441d111f3c2802acbe977b6cf7533dad8c1d58c39a","0xe30e02f049957e2A5907589e06Ba646fB2c321bA",!1,!1,null,null],["ethereum","ds_token","DS",18,"DS Token","30450221008329f360ec3fd17603e0a93e496939451e4e9feb5198244f718d0a3b7bbd30a1022029a10ec408df49305bb14f52a23d12efbc46711692a746668a38b5d2b0b9200c","0xB67bEB26eBeb0DCEec354aE0942256d03c01771b",!1,!1,null,null],["ethereum","dscvr","DSCVR",18,"DSCVR","30440220638dc6e406b19cb319de8b0eafed84894d521204192ef7ed9694361e6b8df0a902201786417031cfa6d6efb6a96ca4bf6f3382edc9de41306668fa35aa20f08818d7","0x3eE6E46f52c475c52040b934745501F2A0cEa252",!1,!1,null,null],["ethereum","dsla","DSLA",18,"DSLA","3044022038b4541d55d62f8fda4436642d9dc4ac9373e3ab9621ebaa38966a53acc596c302202f292fbf1e7f86d6deb6d65432bde52d075cdc87c7ce4c8b44e63df676137c10","0x3aFfCCa64c2A6f4e3B6Bd9c64CD2C969EFd1ECBe",!1,!1,null,null],["ethereum","dsstoken","DSS",18,"DssToken","304402203229cb5c6fad3392b1610eaa69898ae41b9755e7448cfcb2172a9f693d032a88022040b668d7cb9d079feeaedcf07adb5662240a6093a585329833ae91b0648c4b71","0x213C53C96A01a89E6Dcc5683cF16473203E17513",!1,!1,null,null],["ethereum","dsys","DSYS",18,"DSYS","304402203ce8fabc8db6e8fa62e81f6cc7b697af150c5b902f97226157674760ebc3556002205c9898d585cb4560647fb30b208e588c2ed2871cb055e1025c2378f0fb76c3f5","0x10a34bbE9B3C5AD536cA23D5EefA81CA448e92fF",!1,!1,null,null],["ethereum","dtop_token","DTOP",18,"DTOP Token","3045022100f27a3df5733c08836f070f9670d04463f66fec11379724e8b1bc7843536c0fe5022063aa49d1703f0625b5569cf5572b070b75a6b4fbe27ad6640f32a42db7f9645f","0x54Ad74EdeAB48e09ccC43eE324f2603071dAD72b",!0,!1,null,null],["ethereum","dtr","DTR",8,"DTR","3045022100b0f39b6ded471f814a3104c7b915c766fccdff606e28ccee290d24014413446802207cc99d89764fcb7d708ca8c1280978646b8b10d9420349f2447e75d031c671d8","0xd234BF2410a0009dF9c3C63b610c09738f18ccD7",!1,!1,null,null],["ethereum","dualchain","2DC",18,"DualChain","3045022100c9faf95ab74c1c4312daf4b2145b1872982f9d3adad4de2c237c261a5922535e022009c0c2864424ab2049a42e08114e13c243161e2be3a132fa56f98dc1ee86089a","0x9fC0583220eB44fAeE9e2dc1E63F39204DDD9090",!1,!1,null,null],["ethereum","dubbz","DUBBZ",18,"Dubbz","3045022100ff51d071a3493453cc73e1131647c0e06069a94a11e48832d9512db7ccd3622d0220265cbe16f29eb27c3be0e0d702ba1bc0b130cfb7eb2962815ac05c9ca33973da","0x38029C62DfA30D9FD3CaDf4C64e9b2ab21DbDa17",!1,!1,null,null],["ethereum","dubi","DUBI",18,"DUBI","304402205b5af3208fba3274924f54c79d6341eed39751f5087b13f4553205ac374e24bf0220521393399f9d75100e56998c7effd8b985fb0caedddc764d87cc29f5c104c7b9","0xEd7fEA78C393cF7B17B152A8c2D0CD97aC31790B",!1,!1,null,null],["ethereum","ducato_finance_token","DUCATO",18,"DUCATO FINANCE TOKEN","304402203c9e7520c1e82d2cda2632fc7a4e0a22858fcfee063e9e861e61a764a01810ef02201a48e3e67d0ac99eaaec5ede16d3037b14778d9d3fddec0d27e300aeb04e2757","0x8125f22Ae00fDE2AEae8335E3089F62eDa16515F",!1,!1,null,null],["ethereum","ducato_protocol_token","DUCATO",18,"DUCATO Protocol Token","3045022100edda51774cbe13d6abe067dc171212b604a77832433899bd6affb4f6af70c66a02204e52a8280d8a4d392c1550e8b17b0500d43b61dc750b5f703c93828b08e86998","0xa117ea1c0c85CEf648df2b6f40e50bb5475C228d",!0,!0,null,null],["ethereum","duckdaodime","DDIM",18,"DuckDaoDime","304402204931fb527efa312a601ba3ba04c36d2c58d66c94d88ec55980ea6dfe744bb08902202b29f89e9decc4fd76e1e66a147646a742616bfc953c2daa076cbac86ff3891c","0xFbEEa1C75E4c4465CB2FCCc9c6d6afe984558E20",!1,!1,null,null],["ethereum","duet_governance_token","DUET",18,"Duet Governance Token","3045022100d2e5f6c19461ccab5161843081671187699a812b1637a43eae46c6e1e9e0008002205dd1b288aa91cd2c1a8af959c961f05e9247acc81f1c839c4b99e6439e0ebd8f","0xd69AE79b01C4aF7F19b9a824e5643363b202B3a1",!1,!1,null,null],["ethereum","dukascoin","DUK",4,"Dukascoin","3045022100bd2c27ecda1331ceba116a5b15f18a366f4fe8e6c052f9b2f4a1373bd497a12002205e4726ce8a5ece6831d88ccd5fd588d18622237501e929bc8a16e4aa4278e4b6","0x73f2651EA38d48B3B808ffdDbd398Fd600aB5BA7",!1,!1,null,null],["ethereum","duo_network_token","DUO",18,"DUO Network Token","3045022100f4647a0b149cd09a8d11316209170aa8599e7850f9aeb15dc62022736664463b022054e807612b23ef453b52d0290d3864f0ebe983025181e3a6033350e15d004912","0x56e0B2C7694E6e10391E870774daA45cf6583486",!1,!1,null,null],["ethereum","dusk_network","DUSK",18,"Dusk Network","3045022100b0a19acc7e5410a68112689d0c13271abe1ea5d16a0ecffdb05de2e99f8c6c460220611d299f4de9c1835bcdfabfde3897294011abe9340b1da0a69a1a969d1bfe01","0x940a2dB1B7008B6C776d4faaCa729d6d4A4AA551",!1,!1,null,null],["ethereum","duty_of_care_token","VDOC",18,"Duty of Care Token","3045022100faf2bad5030160036e851604b5e10ab1c20dddc7e76de403c4252ed1c9805f8902207e7a9546034734882c55b3d2f087b7cf2693997dea9ef2b06e0a01ca8e2e5337","0x82BD526bDB718C6d4DD2291Ed013A5186cAE2DCa",!1,!1,null,null],["ethereum","dvgtoken","DVG",18,"DVGToken","304402207ac184012fdc6dde84d6c87578889fcd54a1c57ad6d29f3ddaa5690428ccba6402207d5660f7bc109e2b4706c672f330459dcbfc6762f7b5ce70c4ef6064815ce823","0x51e00a95748DBd2a3F47bC5c3b3E7B3F0fea666c",!0,!1,null,null],["ethereum","dvision","DVI",18,"Dvision","3044022021cafb080dd7f78fd6b5fe2832dd2b688af4b32e0c71991a77e5e97a48ed82410220628f4de0778dc38665af511d3f3fd1750970fb265644899c6c2cba7a0c8a8c39","0x10633216E7E8281e33c86F02Bf8e565a635D9770",!1,!1,null,null],["ethereum","dws","DWS",18,"DWS","3045022100fd45ebfa0fae3920926facb06ea2d29d23c8bc33ea0ce81a007b18864617b3eb0220695d9656398cc125e6852bcca964f677a7f64732fa65845d3665780f671a033d","0xF4B54874cD8a6C863e3A904c18fDa964661Ec363",!1,!1,null,null],["ethereum","dxchain_token","DX",18,"DxChain Token","3044022000c3dd8c2a130ad427b16e4693e6a7778c8fc9da4db781027b3cc329e49e91490220702622a4f77af097d4763ac7b4bc928b7a8f9bbe79904776efe315688896d14c","0x973e52691176d36453868D9d86572788d27041A9",!0,!0,null,null],["ethereum","dxdao","DXD",18,"DXdao","3045022100efe93e1f557e479b2d149c4c99654969ade2071bec24258af6b7574b073aa92702206eff98bef2f70bd799053a5be0f43ccab58f6a228f86a24c7e8bbee1c2327d8f","0xa1d65E8fB6e87b60FECCBc582F7f97804B725521",!0,!0,null,null],["ethereum","dxiot_token","DXIOT",18,"dXIOT Token","3044022015b4fc71f8a4d65694a34b8f3b1394a37e491c9d8baa7da4a8b88718ac2de6e60220025a42980d65b26f67e4097fe59e2a757490b64624d2791b8d4d663b70bf8bf6","0x8b6DD24Bcb2D0aeA92c3AbD4eB11103A5DB6D714",!1,!1,null,null],["ethereum","dxsale_network","SALE",18,"DxSale.Network","304502210089737ec4f6a7d0cb865cca1b8d4b2c0629a807fff09da81c49c62d117fadca1f02207ebbf4dea71b47a8d9936d548d4ed2fe7030aef8f2dd480d96de6292816452c4","0xF063fE1aB7a291c5d06a86e14730b00BF24cB589",!1,!1,null,null],["ethereum","dxy_finance","DXY",18,"DXY.FINANCE","30440220778c90973a3f3f2df487ef5805d36979cadcaefca281ce897f8a538e2dd2345e02201b03e22bf608581489af3d139278663e085a360b6e97e66e27f1f4ad40d7bd89","0x39Fa206c1648944f92E8F7B626e1CBdf78d7E9dB",!1,!1,null,null],["ethereum","dydx","DYDX",18,"dYdX","3044022005719d4a7a76a18df6d67be73fb70cabf4a1f370142649b0c499aadac114e825022011be10630b8f9e0c52a096d90de756a64c6a008f07a79c37567690f761c79f56","0x92D6C1e31e14520e676a687F0a93788B716BEff5",!1,!1,null,null],["ethereum","dymmax_governance_token","DMX",18,"DYMMAX Governance Token","304402202ae0f5b779f75ee917acff030840c83a57c3b61c8513c0b1bb11cbeb9c1f05270220491c6abdbaacb588250030cb30b019856fd171728acbde5c4a5b6b093ec10cd4","0xf058501585023d040eA9493134ED72C083553eED",!0,!1,null,null],["ethereum","dynamic_set_dollar","DSD",18,"Dynamic Set Dollar","30450221008301719191c1a07ac8ab717e60e072441689d72a9e0840c81f2f1d5d8009e4b3022014e43477459042fff4b58513a180a8682e8530d3c3edf7de0c963bb5ccefd473","0xBD2F0Cd039E0BFcf88901C98c0bFAc5ab27566e3",!0,!1,null,null],["ethereum","dynamite","DYNMT",2,"DYNAMITE","3045022100f081a4bc1cf45d73e8e2f88c6e68d469795d18d703a4e4ca1fd6aaf0016177c802205b807a2de4e3fd221b77c35cd2a69e8bd90a06d4b055dcf1733e6973f586e78b","0x3B7f247f21BF3A07088C2D3423F64233d4B069F7",!1,!1,null,null],["ethereum","dynasty_global_investments_ag","DYN",18,"Dynasty Global Investments AG","3044022028c240373de2e20d281b9286b1b64fcd6260e2c150deb560db6bf0ff75c3f339022079b466bffd040a88fce9b5ff9c27723fc2aa791c9c9e0bd5e9bf209001e0a58f","0x65167E381388Bc803Aa2F22cd99d093068E98007",!1,!1,null,null],["ethereum","dyxtoken","DYX",8,"DYXToken","3045022100e5eec1169ca20486453c004f8802debdd319171d94df02fc004e3edc9c0e2c70022026b392a67b13a1533d44a1cd17d5178038dba7f6145ccbadc379658e6dbc555b","0x042f972AC93404f0fcBe4E3A0729F0B395232106",!1,!1,null,null],["ethereum","e-radix","EXRD",18,"E-RADIX","3045022100eefc88760c3037c56194515e2f545598a7dad82180850dc8d1fa868c10e91c4202205c6bf0676db56fdc25198c473fd0fc3e6f1d46c18cb162f51d930c4974675dd8","0x6468e79A80C0eaB0F9A2B574c8d5bC374Af59414",!0,!1,null,null],["ethereum","e-radix_","EXRD",18,"E-RADIX (old)","3045022100a7dc7fc69ec988a30d4f8b3610ee846b100b4e63e8327e81bae01bcc889515de02206dc0a944baba6d8aa8c3aeea424f5cce71df1d0ae8f8f0ca49bf34426128a18f","0x4702f896577398759D5Ec8115C20F99a73174781",!0,!0,null,null],["ethereum","e2p","E2P",18,"E2P","30440220285bf288049f8a71d24f0d56864390819fe3f332aba6d33cb0de34ff88c9714b02204d67b3455c3cd3ed07374cc2d3caaf2ba7fc5cbac40f97b857729c1b35caed6a","0xA0b84460a1e78339692C7463009c35f0B9A6AE4C",!1,!1,null,null],["ethereum","e4row","E4ROW",2,"E4ROW","30440220360dd31c5a26163a2efc824bfff6939b1af0b58512378fc228fd4469c879c2930220201b716abec41d23cc21ce6d35fedf7c74765085e46e073e211af19fbf0c360c","0xCe5c603C78d047Ef43032E96b5B785324f753a4F",!1,!1,null,null],["ethereum","eaglecoin","EAGLE",18,"EagleCoin","3044022055d1e91821ba0c200cda00e5df4ab135e33fe0c23deafe751ddfb43242526805022062a430ad6060aeb67dc5e2c9af19edd354b5c45678a232f30800f972ab2bf88d","0x994f0DffdbaE0BbF09b652D6f11A493fd33F42B9",!1,!1,null,null],["ethereum","earn_network","EARN$",8,"EARN Network","3045022100add7f3c52e1a8c31b024aa20b4f7d5a4de1a49cb86fc0152b509b091a0cd26ee0220222f896e44159180d6830a6b9499cebdbaca0426515392b089b1b995a7e79ec2","0x31e92324ef7185c65dD4D154Cfa4F6326b489C55",!1,!1,null,null],["ethereum","earnbase","ENB",18,"Earnbase","3044022010674534d3bae7fc405475a1c5bd032a3b53651406cec5cae3ecb2786b12201a02203e03818f780110e2c1da54e40c81724f32a9ba2ba91e7c710c74f4cfb5893534","0xa6FB1DF483b24EEAB569e19447E0e107003B9E15",!0,!1,null,null],["ethereum","earth_inu","EINU",18,"Earth Inu","304402201fa43c478ef1cb0bb4ebcafed09c438c2f4de32ae23fe841d217bc3033c03a1d0220324c6db120d1875846859b4f7f2cb52b6f7c5f91d75d2cdb0aaa1b06a0887491","0xc1fa0e81F5DbeEe0F39D351071aEe96F2099C684",!1,!1,null,null],["ethereum","earth_token","EARTH",8,"EARTH Token","3045022100e88c5024d7728817bf5da18ec6043b2c1466c7abb41787f2c496c2d0dcf808b102207d5c2bfbeae20aeda26fde441eb0b8dbf2d51bcc7a7871d10e58ac9783749f3a","0x900b4449236a7bb26b286601dD14d2bDe7a6aC6c",!1,!1,null,null],["ethereum","earthfund","1EARTH",18,"EarthFund","304402202c6bf49573db2e859e68c68387b88911895908f085e3517c07e311c9a80ce69c02205ba2fcbe2eba93737583d111956ad4986661ca04009572cc05f7f70d7334eff6","0x9e04F519b094F5F8210441e285f603f4d2b50084",!1,!1,null,null],["ethereum","ease_token","EASE",18,"Ease Token","3044022032c6712f95837f48cd54a54560263ff64787d1780adfe9cc7700d39295c3de760220279eb22574b096132eec68a4a25b799b43926a99b9aff7fd1b1227bf780fda67","0xEa5eDef1287AfDF9Eb8A46f9773AbFc10820c61c",!1,!1,null,null],["ethereum","easticoin","ESTI",18,"Easticoin","304402200eb9ff8c3ec61ce68cee463a40c2a9d11320a524a849ce3222ad60cc06ee532f02202cdc6ba607dcc05e37f0ed903da568686141e07889af6a61e7bb8aaca10bdaa9","0xF3924dF14812B3D3dB29124AA9DA4353Ed5e04A3",!1,!1,null,null],["ethereum","easy","EASY",18,"EASY","304402201d6f1e848dadbb6498541be7a6bbbefc27555ed76d2cb79f21be31fd4a17d46902206020c57360e05024f0f84227138dedf2be9a989cadd22171014644589d7eb9dd","0x913D8ADf7CE6986a8CbFee5A54725D9Eea4F0729",!1,!1,null,null],["ethereum","easy_v2","EZ",18,"EASY V2","304402205a6ee3b61e25a86fd6a644049e1732cf49f3e934a7e6687f5cae3ac69a79778e022065a50137c07c68d268047e4efe3b6a39b8b059efd7d370dff8e1e0469fe0b197","0x00AbA6fE5557De1a1d565658cBDdddf7C710a1eb",!1,!1,null,null],["ethereum","easy_v2_","EZ",18,"EASY V2 (Old)","304502210094076caecfb9fe117be3f7ac65a66e503a4f62b5c3f18ee8a170144787cb3c5602202c12132ab0c69c319754da0498f42a96e4cb1012e1a572666df03cf4390522ec","0x1eB754B8355d3185A7429109bde75e473434B26B",!0,!1,null,null],["ethereum","easyhomes","EHT",8,"EasyHomes","3045022100b675b9851487c2e3a3a900b968aabccfb3c26a30ed8ab3e30c6c3c408f25e783022014faf85ddf3141a08ac4fda06e41fd6ea44e1b11015ace12b547ee7c454e8ca6","0xf9F0FC7167c311Dd2F1e21E9204F87EBA9012fB2",!1,!1,null,null],["ethereum","easymine_token","EMT",18,"easyMINE Token","3045022100c99fb195ea01e6c0c56d0f3bbc0c86c8e51b8986d42fb4e9844b1349c1c9200302203dd09e5e95a3315099b50c3acb9e27d08f19d3d2da598010c72532a0be0f3c74","0x9501BFc48897DCEEadf73113EF635d2fF7ee4B97",!1,!1,null,null],["ethereum","easyswap","ESWA",8,"EasySwap","304402204d68b053139cb14524033374031a8b081fc9f01401f2db8d9927b1062890a20d02204e5cf9804e56a97e3e0d017a6c5dab47127b8ea2756b53096fabd84355e18c23","0xA0471cdd5c0dc2614535fD7505b17A651a8F0DAB",!1,!1,null,null],["ethereum","eauric","EAURIC",18,"Eauric","3045022100e3ff539792afb94ebfa37ae43b0b73c0eba2fd72431147cb6c82c5781dc45299022011635ac6f6ec30345927074a6d870acee523fc84a420c1a704caa864ce7426ea","0xc36C65693eA9e207Ad35d4EE2Fb6c5F6f43BDEC8",!1,!1,null,null],["ethereum","eautocoin","ATO",18,"EAutoCoin","304402201b8381f0953f36decf5f37357d48c6442637e6e14e2588c03e742470c3f3c2620220614f3ce9cbf3c936e9caad1d6e0b530b33c59be9de0317c0efe9c2f262b18c49","0xB551d08D2189eF67b4788BE2c35C0743693625Ca",!1,!1,null,null],["ethereum","ebch","EBCH",8,"eBCH","3045022100ce077adfb6c9eb068a3f146514e7e86ddcae1d19ba009b612e3c75d2672d10fc02206acb609696cfb94ba11a242c5d6145f075fee2e87b6f6c703291bbd96b971cc2","0xaFC39788c51f0c1Ff7B55317f3e70299e521Fff6",!1,!1,null,null],["ethereum","ebcoin","EBC",18,"EBCoin","3045022100c6634f5ad59b4f12f703e82d64cc1851559c519ba806538d25c7a33b2ae4b99f02202f13b9193b317562e15196813724fe204ab84918fd097d7e761fbb514084e67c","0x31f3D9D1BeCE0c033fF78fA6DA60a6048F3E13c5",!1,!1,null,null],["ethereum","ebsp_token","EBSP",0,"EBSP token","3045022100fc5b0ae1f5570dfafac364dc04d9102eafbec6dbaed96f4fd24c72a5d10707e3022070b2c0293b05fdb89907993ba2034fdde366535d9d33c7dff58e8421673ea592","0x6f063c0fcda0eA6dCC01D5A7cB3066ed4F90d1A8",!1,!1,null,null],["ethereum","ebtc","EBTC",8,"eBTC","304402202dac087a509b2738d7e0c2fe944784e6da7a2eb2393a12ee43e076d2cea723af022044cd3f42428d99c7e6141c854f4a2bb819cbda22d5df8bff122b5874026f26bc","0xeB7C20027172E5d143fB030d50f91Cece2D1485D",!1,!1,null,null],["ethereum","echo_token","ECHO",18,"Echo Token","30440220593e4896061720ee82e3f4b2922b8769564a634b8e7f4496e320d6b38005f876022059f3530d901a290f56d559225f36bb5c146e115e2d34f50a9fa400d8e1d931b5","0x171706B7D113c68f2cc68a6CE63b1dbDcdF7B233",!1,!1,null,null],["ethereum","echoin","EC",18,"Echoin","304402200d9381a1ded449749432eb0e573f75565963ea6f6102f09a4734ee7345902e6f022072de4dfe32bacb8cac62bebb4e63ba1bc9c36e96d8f30cfa5509eea9bebda60e","0x12fD19DAC0Fab61bEd5e0F09091B470C452D4d61",!1,!1,null,null],["ethereum","echolink","EKO",18,"EchoLink","3044022025ef0bcfbe66686ac8377154fe76f3ac65f001705ff63195b65a0c242aebbe1902207ef16deda8f12181c659f1a580b39b3dbe149971ebe10d060843f5ea50fab653","0xa6a840E50bCaa50dA017b91A0D86B8b2d41156EE",!1,!1,null,null],["ethereum","eclipseum","ECL",18,"Eclipseum","304402205df4ad6e51ca97f4bdcb0b28983bcf0a60f12b3f53547b79b75fefd53b415a9c022008d234bab3ce5f7f3a4d2328c941ea74b0b7dc4afe6a8909f3c4323f550760fc","0x08e411220e47e3Fc43BFb832186ABA95108F2861",!1,!1,null,null],["ethereum","ecn","ECN",2,"ECN","304402202f7e89f40abfe306b93d28ddbcac01030197aee746a669449e9fbc7a2b3a1ee10220052cc0a2a660123b4aff1bf9bdb2442dae20f8ea41f961b7ca7d8961a37e0b42","0xa578aCc0cB7875781b7880903F4594D13cFa8B98",!1,!1,null,null],["ethereum","eco","ECO",18,"ECO","30450221008e787678c0b788a738c285f8defaf825ba8997523e350545c2b38062b8d5e9c3022061e88e00f388f27e2346a20a59b67b69edb6d08ed0f3cd90a7a5c79ec28f8847","0x8dBF9A4c99580fC7Fd4024ee08f3994420035727",!1,!1,null,null],["ethereum","eco_token","ECO",8,"ECO TOKEN","3045022100d691e4ebfa9eebd6add5b314eccbf34439c348c45c5a8b1527271a9c7335019d0220368fd2bd3792f17b556daa7555e1cadebb5ad1eef63e41d61928a5bdb5acbc8b","0x191557728e4d8CAa4Ac94f86af842148c0FA8F7E",!0,!1,null,null],["ethereum","eco_value_coin","EVC",18,"Eco Value Coin","3045022100eaa9500a39a3e3a101e4a4ddc8f9434eb328995835b53efde9c60a1189a1a17602204e55840229c93a59c43b34fb26812d513810df7b66e8a5ed3ea4c265638198d9","0xAa843f65872a25D6E9552eA0B360Fb1d5E333124",!0,!1,null,null],["ethereum","ecofi_token","ECO",18,"EcoFi Token","3045022100d74c49ac5d4c343176881466b266aa2d974eb7f5bbea0f3a7bd59e7f4fa9d5590220462c7b035be5d4cc53c068e632581eef476beaea7b3198cc706e6b9ee30e2342","0xC242Eb8e4E27EAE6a2A728A41201152F19595C83",!0,!1,null,null],["ethereum","ecog9coin","EGC",8,"EcoG9Coin","3045022100a9e8a2aa901f52d440f49541f5638708456630345d84a75f185ec4558498553e0220758ef3890cfb2c123934dd17af0a4fdc9a71804e3ce05ab083e6fd443e9e4226","0xc0EC8CaEC55F37D47fBfA595727418868A21fd48",!1,!1,null,null],["ethereum","ecomi_token","OMI",18,"ECOMI Token","3044022055db96515f6320c032b5ee0c30caf458c7bef8d77af6e0abe5954e6a434918e102206316d17533929091736b35ad0e881096f3249bd927b7faf4b9ed03e00ab9352f","0x402413e4b175f08CEF46eb1Eee7E9EBA50daeB6f",!0,!0,null,null],["ethereum","ecoreal","ECOREAL",18,"ECOREAL","30440220750510dc8058c8675a02ff637fad21ff765d7f994467f64372e28f8e7f82a20d022044fa3faf01463de0a3f90ef796367ad5d112529cd97b244b773603c679cd7ba0","0x7ECbb21346C501Fd07eb165E406120fA32381C16",!1,!1,null,null],["ethereum","ecoreal_estate_old","ECOREAL_",18,"Ecoreal Estate (Old)","3045022100e4757b27907678ab47e3974fe58cf1a29220d6bb3d52bf068b93b4e72067adbd022009d168e4f985d6356ae505b82789ed7d21c2be887a6f92b03def3ccf51277521","0xb052F8A33D8bb068414EaDE06AF6955199f9f010",!0,!1,null,null],["ethereum","ecoscu","ECU",18,"ECOSCU","304402206144bf65eb4a3c116eaed0b20a112403b49e0564177dbc61a693340fadbbb2b202205a42b80bf260408fcbbd39813cdfb74ea9a6376b5d9d8ba8c3d9f87b6404a738","0x8fc9b6354E839AB1c8B31F4afa53607092B8C2e5",!0,!1,null,null],["ethereum","ecox","ECOX",18,"ECOx","30440220259a582c1608de689396a7223e6fd0b9b56ca99185e6e6495489d1ef964e4152022012762e6fd2d2fd65c7c9241a1a6f3e7a4a78fe4b8ccddec953a6975d540984fb","0xcccD1Ba9f7acD6117834E0D28F25645dECb1736a",!1,!1,null,null],["ethereum","ecpn_token","ECPN",8,"ECPN Token","304402202141dfab691d80a6f19f6676b7340221aa18ae920194979d31217be4a244abee0220518602d6e78f5325e060ab8b6d454b1e69c273580a5e37cd55be9c4b02f01816","0xB55732a15B3DC5d6e8D4ADf40634f37470da71Fa",!1,!1,null,null],["ethereum","ecrypto_coin","ECP",18,"ECrypto Coin","30440220747310eb7918e94d489c86cac0fe473abe10cadf6840a9a0a15a497e911ebc00022014f62a9fc6a106efcf680dea74b4658f3bf445d8984685857e1d1315f83618bd","0x8869b1F9bC8B246a4D7220F834E56ddfdd8255E7",!0,!0,null,null],["ethereum","edcoin","EDC",18,"Edcoin","30450221009cb37a938e764f8d3f64993f7e6e0d91164e9185725872bbeb8fcc88232b8965022014b35bd3773b49080e1a418adab56758e0e6816a7d05d6c6ff62f7f11f570d38","0x9d5963ba32e877871dfF3e2E697283dc64066271",!1,!1,null,null],["ethereum","edda","EDDA",18,"EDDA","30440220527ce4f4eecb527140d8a99873a4080887c28b22cff819c2da2b3a2317ee4ae2022006626a6b9ffbe53ba58f4a49e6c4282b6870bc21a5a56fbfee26e6a2a148a045","0xFbbE9b1142C699512545f47937Ee6fae0e4B0aA9",!1,!1,null,null],["ethereum","eden","EDEN",18,"Eden","3044022019272348b626e180ad24dfe074d28a78d8e1f74f67441b29faee4afc6ae73618022008585cf61ac0713a241460a02cdfe2b51d0deed0f4628933b8f7972d49075f12","0x1559FA1b8F28238FD5D76D9f434ad86FD20D1559",!1,!1,null,null],["ethereum","eden_coin","EDN",18,"Eden Coin","3045022100ff1a175f51fe9fc5d85a91d7cacdc0c74e190408308a3b0834c8a8046931651c02207a06f73d2fe5429d90eb0b2e7478606381e1739c5c5c5b869405ca99c5a1ae22","0x89020f0D5C5AF4f3407Eb5Fe185416c457B0e93e",!1,!1,null,null],["ethereum","eden_coin_","EDN",18,"Eden Coin ","3045022100d0f0d7b1770dfce2da84747acdfc27cb98ca4e96f50910dfd1ec4865c3ec0e3b0220125969028030ccc0d412bec6222861a8fdeae900660eebbed7dacdb25fc27900","0x05860d453C7974CbF46508c06CBA14e211c629Ce",!0,!0,null,null],["ethereum","edgeless","EDG",0,"Edgeless","304502210099a44e5ff1d46854181bafb3c025f324527729b50b2db99c63f4708c0f0b196b02203cadb2bc6254a70c557f0a64e25ad0ba40be86131c378259ebe62709ca2da57c","0x08711D3B02C8758F2FB3ab4e80228418a7F8e39c",!1,!1,null,null],["ethereum","edison","$EDISON",8,"Edison","304402203cb14335ceebe94709dd3f20c4efc1bac257e286352aee6dafe6b365469ed7110220756bcb64866045fc63a8f307673d673fcae86cf8adb9e825458eebe8a9eab4b8","0xeD58569d516a5BD37427ebd592a6619C0c581953",!0,!0,null,null],["ethereum","edu_token","EDU",18,"EDU Token","3045022100d9d0da4f5ce77ca8541e897ea663c5ec043f125eb138383bc8c4d1a8c211d5c002203cb6c7d9b8130326707fec1e40eca0ae7e29d34f87609d4e16785b85377146e4","0x2A22e5cCA00a3D63308fa39f29202eB1b39eEf52",!1,!1,null,null],["ethereum","educare","EKT",8,"EDUCare (old)","3045022100bd5520a3527fdc74b43e21a858070181d19b9dee2811b9508aa68681ec7503470220301afb074be5b434107fdeec77eb9f4120d4e42c7cd5248a444ea3c207753941","0xBAb165dF9455AA0F2AeD1f2565520B91DDadB4c8",!0,!0,null,null],["ethereum","education","LEDU",8,"Education","304502210099fba7444d01ee6f334d50fb1e7816c4e2dbf96de026f378d3605c35fdb878f50220675dee668859fb3caf94638a670eb3a18ad007edb002a2fefa5e390095449fe6","0xC741f06082AA47F93729070aD0dD95E223Bda091",!1,!1,null,null],["ethereum","education_credits","EDC",6,"Education Credits","3045022100de0ebf51cab90d75810b657abd69e383ecaa58ae4e832d18d861df04e2571196022033e485fd84552733ff4059b0ca7d844908b1a6476172493c46769d69d2cc6d73","0xFA1DE2Ee97e4c10C94C91Cb2b5062b89Fb140b82",!0,!0,null,null],["ethereum","educoin","EDU",18,"EduCoin","304402207376f70b476d3fca84d7df8e717ddd60fd5f44dfe98f69458c137e0b267a7a5202205b59c4403898530bf4b573251006a13346fffa9965a4b4d6fa55fe444bd707d2","0xf263292e14d9D8ECd55B58dAD1F1dF825a874b7c",!0,!0,null,null],["ethereum","edumetrix","EMC",18,"EduMetrix","3044022051f319bcda3b8c63a6e654b82ccb5fe095c154d003b85f1dff1607ef3122a429022059bc8527ec94e27dd9e1df79808bda5b1c0fd44961f10ffe6241270e5894092e","0x0a425122852ED351946A828b348bfdCdA51EffD8",!1,!1,null,null],["ethereum","efficient_transaction_token","ETT",18,"Efficient Transaction Token","3045022100ec80169c1d623015eed0cdd63986e72dfcc6d95a0bbb8d9d65b9331b69d67458022066b4fe9a0997d42351fa06124ed0045d34bf76a7dd3ee989ae9e416734a19fdb","0x1212b68d8555Cf0B08f3371b926b3E1148B520F1",!0,!1,null,null],["ethereum","efforce_ieo","WOZX",18,"EFFORCE IEO","304402201b05862dfd5af8426c01154a1486485c26edd3aed12dea15d30d6291c531ab2002203eca35de304e6a752a879677c4230fa2f30bf28041960d468f120210c61ab260","0x34950Ff2b487d9E5282c5aB342d08A2f712eb79F",!0,!1,null,null],["ethereum","efinity_token","EFI",18,"Efinity Token","304402202a74168fedd695938497139d8464282c33e44ddc3f73f8ac51b420e4185c9e8502203ce64018910e7707bb0ebfd09cd0f0de7ff770f5b28b7674389ebf9516734209","0x656C00e1BcD96f256F224AD9112FF426Ef053733",!1,!1,null,null],["ethereum","egame","EGI",8,"eGame","304502210081a79739b2289c0c2d9b470036131add82e00121e9cf852be1eecf0668193b3402207b27dd7e11b73a6942864fb9b826a56564a847c1dcaf0063d4d099dd7880f97e","0xB79024d177BC8f50499118D2fA7f42B33fbc7056",!1,!1,null,null],["ethereum","egg_token","EGG",18,"Egg token","304402203859baf85e624deb89dc598f3817fbae2ecd1ca719f54449c8513bfc7ef073cb02202c168e52a488c472d134cb0d15e939385984d72acae84bc9b921db8b746b7c4a","0x999Aa6488f076e6765448f090Aba83FbB470fC99",!0,!0,null,null],["ethereum","egretia_token","EGT",18,"Egretia Token","3045022100ef1612a6ee17ae2b7ced2fe662993576cd2ae9a246d5d71d9fb6d1acd1f446420220295ba465b985ad043c5b9b482b111510037f7732c077fd13ca6d42ff8c546d9a","0x8e1b448EC7aDFc7Fa35FC2e885678bD323176E34",!1,!1,null,null],["ethereum","ehash_token","EHASH",18,"EHash Token","3044022042091474bb84031af444659785ddbcac82442ae9bf52088ae67adcbb2f5c07e402200767915ca35d1db88b8e6e301fb50ee2611dbeab02d8235c2e7f5b683a88d6e9","0x2942E3B38E33123965bfbc21E802bE943a76bbC6",!1,!1,null,null],["ethereum","eidoo","EDO",18,"Eidoo (OLD)","3045022100e5424e451fd4b17e89221f001587d8a2464b28cafedea8c21301077e70dd784a022019f34ce166af027cd78e8eb6cec139c62c789328b5034d8a958ccf5d0737c4d3","0xCeD4E93198734dDaFf8492d525Bd258D49eb388E",!0,!0,null,null],["ethereum","ekt","EKT",8,"EKT","30450221009712e2e95e10a0307db540b53f53971cb9f8cd8df03f19e71bc0bc7b7731187d02205ffbc05954623e180c60299987683bedd1f30762546ce8bd8847b7e4af02de73","0x4EcDB6385f3Db3847F9C4A9bf3F9917bb27A5452",!1,!1,null,null],["ethereum","ela_coin","ELAMA",18,"ELA Coin","30440220530f8bbe1313e0653a768480df81ea4adf1ca3e09da955aa065ca5a47a6d7b3002200fcad98e568470f5780060063a1fb86f305dba5e4e9b85dd4b6a9a347897a19d","0xFb444c1f2B718dDfC385cB8Fd9f2D1D776b24668",!1,!1,null,null],["ethereum","ela_on_ethereum","ELA",18,"ELA on Ethereum","304402200a7626b1e78b14c9401e9263b94917496759a9fac34a29282f89aaefadd8e88202202cd5e5f69939f103bb07bca3fb930b68ba2855ce3c45dfc9dfaff575fee2cb2c","0xe6fd75ff38Adca4B97FBCD938c86b98772431867",!1,!1,null,null],["ethereum","elan","ELAN",18,"Elan","304402200fc981db140fdc858cadbefdee065b073523c0ea94fe713fb4ddb80d17127970022048ecc547979b46214838c16c345b040a083279ae23a93c8b663e846ba286ca5e","0x1b5036bEc1B82D44d52Fa953A370b3c6Cd9328B5",!0,!0,null,null],["ethereum","elastic_bitcoin","XBT",8,"Elastic Bitcoin","3045022100c62554fa36552e32cf4cb81995c9ffe9e19f85b2ee6006c08fa8b0bcda5e5d3302200b5aae543e56c78852628d7e42559a3fbbd761c99ae211225e65bc2dff3eb684","0x64fB96d0395f6bf105F35233911e3dF2C5bf4Ce8",!1,!0,null,null],["ethereum","elastic_governance","EGT",18,"Elastic Governance","3045022100c77db205526344c6557de55ad054c5ecae564f772cd0a662316110ac673636c502201968287331bcb6446c455e22e8dd846533a29d62a76076a391d1b571e759b0a8","0x2aA5cE395b00CC486159aDbDD97c55b535CF2cf9",!0,!1,null,null],["ethereum","eldorado_token","ERD",2,"ELDORADO TOKEN","304402206466a788cfb211ad90bd7fc2bbff340179af60dd4618cea7507026ce959c54d402203235b7545a9a432dc53247c3a01515f000cc6335750585cdefe960e83adec153","0x12DC767728105aA415Dd720DFBD0ea1d85841172",!1,!1,null,null],["ethereum","electric_token","ETR",8,"Electric Token","3045022100c2efcab394983fece063d770f4de2b1faa5221937df649f0d431cce9c2e8baf3022014ddc3ec1ee973cb35d81d41d41bd2b83f49c3f76516749ef51476a2f43518eb","0x71E5fB8793b5a2fb0C4918930180f8B36500cBB8",!0,!0,null,null],["ethereum","electrifyasia","ELEC",18,"ElectrifyAsia","30450221009f59f0f35695ed606e904a11b32e045436d20a7c899833927a6a4a4a3ea2dd7002200db04555f77ff7b40ec5a94bef23e3f9a88c45843f18a8b790ec507b4a4e0982","0xD49ff13661451313cA1553fd6954BD1d9b6E02b9",!1,!1,null,null],["ethereum","electronic_move_pay","EMP",18,"Electronic Move Pay","3044022100eccc313cf5ea194b5c0aaa930f52fb0a76db34ad6bd7cc9dcd85ef973d0bb327021f4f4e149b70bd2a296b5af151601cfc6cf53e087c599ebe8a7ea9fe6086fcd0","0x9B639486f4A40c1A7a6728114F2413973f5Fa4c6",!0,!1,null,null],["ethereum","electrumdark","ELD",18,"electrumdark","3045022100fe386cbd5e6472257d881ba475310be1b3c8284c5cf3cd624bdfa8b1a8d3ec46022031b77e2a8114b8a9ce289bb080155535d544da3accde67f273d9d48cdd34b53c","0x796E47B85A0d759F300f1de96A3583004235D4D8",!0,!1,null,null],["ethereum","elementeum","ELET",18,"Elementeum","3044022078e5b4a31e734fa3c3c5bec40ef6bee720cd7b72420be9a2c515f9bb07ae8ef202203155659171158f343e3f9e76551b7a46d6494014116623e39834f28d8d154d62","0x6c37Bf4f042712C978A73e3fd56D1F5738dD7C43",!1,!1,null,null],["ethereum","elena_protocol","ELENA",18,"Elena Protocol","304402202ffc903069e14da2274023188487db261e8a1da350c5c835a63ad7fbd5a7e79c022036c0bb4ac6b27d9d9bc604cfc12b8bfbcfdc40aa1c59dbf6813fe72b03421640","0x6F0f28CeeE6aE686Ee0f939375674C01b156365a",!1,!1,null,null],["ethereum","elenausd","USE",18,"ElenaUSD","304402207d01f05737d008e0db21c1bb2e81208a48df1f48e431dddebdc4050a28d50914022031b3550cd78ee8f9e2c5c3a8a2ab3e86610548838d15987cf034c1cf404c36a9","0x147E3d644d53ADadD18a28201b91e2B98aEB7f94",!0,!1,null,null],["ethereum","elevate","ELE",9,"Elevate","3044022015ab34bce1b53dd47c7395ba65cebf46e0fa8275ac33db9d206fbeb24470451e02206761b646f4838827262db4e37d304c09c8f9ba90b4f27d185278c576f978bd85","0x48bE867B240D2fFafF69e0746130F2c027d8d3d2",!1,!1,null,null],["ethereum","elevationtoken","EVT",8,"ElevationToken","304402202d570bc7ab4cd47b5173bac6d6c7e05ca9b1e4a58d4b6819e5174d59437b54b202201c9acb84bc59e970fdcffabf8f08ac4119f9f9f53d5cd67d1bc4094ee49bddcf","0x5aaa2182459377b6cA18b10712F9F602140764af",!1,!1,null,null],["ethereum","elf_token","ELF",18,"ELF Token","304402203a31676fbffb6de027ea14d0a5a5e9f0762bec76afcdbdaa1f07a5ce3fba47d60220313a36919aaeeed5b61f91c939c7d9b3d88379b57a56f52ac0b3809f9ebad9ae","0xbf2179859fc6D5BEE9Bf9158632Dc51678a4100e",!1,!1,null,null],["ethereum","elis","XLS",18,"ELIS","304402202d8c399e8b9468cd82cba887a9c8a7204e3b5c690ff5466b2a9ab5584591e70802204abc47f0491249595635905dc1353e020ec2d79c3d504072536b1bfe6fb2f0e8","0x6c862f803fF42A97D4A483AB761256ad8c90f4F8",!1,!1,null,null],["ethereum","elite_swap","ELT",18,"Elite Swap","3045022100b2a01f14d67433db0967e00c28fc94e63fd2fc49825c0bbc9cf878d24e5e6a810220156332db82a3014689b47da97ac89695b5439412621cf2d5c0d4a807e7e81350","0x380291A9A8593B39f123cF39cc1cc47463330b1F",!1,!1,null,null],["ethereum","elitium","EUM",18,"Elitium","304502210088549bb89b49364ff86f547a9ec4cb54c280e654dc034240b5b0cd7484b3c7dd02205ae806ee226be135f3fb6a4004825744bc719997b49f0f6b0328529a208506e9","0x6aB4A7d75B0A42B6Bc83E852daB9E121F9C610Aa",!1,!1,null,null],["ethereum","elixir_token","ELIX",18,"Elixir Token","3045022100ebff0995b0b091a4a91ae59ae0d0638afdcea59de23d92b7008df7ab9eb07ac002206c96f58356909688465abd31c1889f0e5d441c894df7277f1e8aaa7c316ccf9e","0xc8C6A31A4A806d3710A7B38b7B296D2fABCCDBA8",!1,!1,null,null],["ethereum","elon_diamond_hands","EDH",8,"Elon Diamond Hands","304502210084c540838ca8a50d94fc8ad868e0e67317407843fe478f75fc0a931bfe24279902202cb38d7b997d4874458eee8026701dc22e190665ba236df3bd046f6d10cc6a1c","0x3B046FDE911D3b6f9cAA4759DBcfB034a87648BA",!1,!1,null,null],["ethereum","elongate","ELONGATE",18,"ElonGate","3044022046927d53e3f56669cbae393b3df9abbafa9f89d7b03c66bc1473dda114a6bd7202205b5696bca8a1c609717bfe37b40eef7b9e792c5e1a84af089c9777ade4b03e8a","0xA61c416A6EF95c3e31533636aCdB55d084663315",!1,!1,null,null],["ethereum","elongate_deluxe","ELONGD",9,"Elongate Deluxe","3045022100af34a828da11787bbef00327f51314e04f3233a6d55b842c8d5c66ec8534e3b102204dfb8933a21f1fcd5eefdfee6fc3eb3ddd49843d0312f28dd922dfac94fb0924","0x348B7f3106B5Da47405332534d06069fF9CE4d1B",!0,!1,null,null],["ethereum","elongoat","EGT",9,"ElonGoat","30440220687c83c29ac4d7b394c38d4614e6e1d9749c7d62e1b6b53a42cbd4f832ca96fd02207e3c4a930bf74ed312e486f7308db015d2d5650c7ba14965b104845536d5646b","0x450E7F6e3a2f247A51b98C39297a9a5BfbDb3170",!0,!0,null,null],["ethereum","elrond","ERD",18,"Elrond","3045022100fa916be1854506d41aeb4f845ad5e76035fb7e8215efbc8e89340497b8088012022006d03077b90b19e8190c09a97ff70b4a7dfcaa095b3269e4f2e41cf0bb9962b8","0xF9986D445ceD31882377b5D6a5F58EaEa72288c3",!0,!0,null,null],["ethereum","eltcoin","ELTCOIN",8,"ELTCOIN","304402205444ad4c1ba7424145de124e480caba8602c2041ce53075122998a91f9e44cab022054961fa74f84b88d91738c8f9a3ffd85e132c2bff4b123f5244a50bbaf6f739d","0x44197A4c44D6A059297cAf6be4F7e172BD56Caaf",!0,!0,null,null],["ethereum","elycoin","ELY",18,"ELYCOIN","3045022100c228a87e670146489a6e206265a534eba99bb90bc2b5da6a89fec2eba2d7114802204025633b98fdeb2e95a760ebeb5832503af2329eb9f58c3f2b9b9f33860315d4","0xa95592DCFfA3C080B4B40E459c5f5692F67DB7F8",!1,!1,null,null],["ethereum","elysia","EL",18,"ELYSIA","3045022100bbdf913182ead965175f33690dbe0776ef4a7868e64091db11461b625a2c335a02204db9bc0892cfe6936c659493342e9708a4716f7e52ea1e3da45040e0383c92fc","0x2781246fe707bB15CeE3e5ea354e2154a2877B16",!1,!1,null,null],["ethereum","elyx","ELYX",18,"ELYX","3044022047ad38ceb394ea1dacb5bfa4dccb311db1ef60646d3103119cdf4586ae6fe981022058118b84a5fdafcd827492725d713245e482aa78ae07b608c806bd490d2c3d71","0x881a7E25D44591C467a37Da96adf3c3705E7251b",!1,!1,null,null],["ethereum","embers","MBRS",0,"Embers","3045022100e68d16d616db7bab6741be2d499dba98d6ae2ec2cb6497e9c1798427f8e29d0b022011ebdee89e8d7dec272754203d0a84f67aebca49e548b929aac467e5d2991d31","0x386467F1f3ddbE832448650418311a479EECFC57",!1,!1,null,null],["ethereum","emblem","EMB",8,"Emblem","304402200928785ea373cc939ef8153fcddc4d888bc18efaf2fc66da24bf7bca548d2fd3022011834c8b5fc2077a6f33d50ff27e4138fc4d07b47239a38ae41035d46c97489a","0xdb0aCC14396D108b3C5574483aCB817855C9dc8d",!1,!1,null,null],["ethereum","emblem_old","EMB",8,"Emblem (old)","3045022100a023dd83467a4cfed02088105ae9226de2a6c7fac63216ac730cf494ea7402b5022003be8bc5c2d47b3ee63c341213b070efd177bb7b1d5b352528c1583fc8aaeb26","0x28B94F58B11aC945341329dBf2e5EF7F8Bd44225",!0,!0,null,null],["ethereum","emeraldrockets","EROC",10,"EmeraldRockets","3045022100e2f955950d13ee76cfc6abbd10be38219bfffd6f9a78a3b023554d2582b466dd0220091ef8039e2b1b9c009d6000a78c317114aad7e5c34c46bd53920e4d88c7a760","0x9B9f0DAd27516C237c6Ea3024d4CDAea0C6B2ce9",!1,!1,null,null],["ethereum","eminertoken","EM",8,"EminerToken","304502210091e044b5526613d7df7086c0ce3f5e6fb84f07306d38168e1cfb0489fea6870602207b37a940d216205e88476f7b6bf3963165a428019cc5c9a1982b01624d17a06c","0x35b08722AA26bE119c1608029CcbC976ac5C1082",!1,!1,null,null],["ethereum","emirex_token","EMRX",8,"Emirex Token","3045022100ef5ed4c0627bf3e44c6d6c501c99b159d75ec3c9cb804a3c8eda2f522c7d892c022017cf4b0dc0f9c6eca2a4f1197a6f4df5c4120b5bf4358f0b1565e39ecce41812","0xbdbC2a5B32F3a5141ACd18C39883066E4daB9774",!1,!1,null,null],["ethereum","emiswap_-_emidao_token","ESW",18,"EmiSwap - EmiDao Token","30440220607336f76b1a2d34d5c157665959684f3616429a9e399a6e993142d08b3f7273022017cd55c80ed193bb21a5f7c46e8931f4abb2bc9060f9bea1ab1a29a19d0ed09b","0x5a75A093747b72a0e14056352751eDF03518031d",!1,!1,null,null],["ethereum","emojis_farm","EMOJI",18,"Emojis Farm","304402207028a5be5ee38eddb715f610a982552627f8ecba6291b32ad93703d8c0f538890220781111f7331957ef90c76cb83455b90ab2468ce0ae69c95e0139ae06683b5bef","0xcbD380C2D84deafED09f79863705353505764f26",!1,!1,null,null],["ethereum","emovieventure","EMV",2,"EMovieVenture","3045022100dbd77beac53bb64e98896cd88ec678cd50bf8076a1c6af75ad7c6a7aeac114390220190b3c39aae0b13d269e580aa632ace375a183e770678f7e26291998feb4a8cc","0xB802b24E0637c2B87D2E8b7784C055BBE921011a",!1,!1,null,null],["ethereum","emphycoin","EPY",8,"EmphyCoin","3045022100d9e4f891e6a1f781170d0b68be898706c7161a9bc8ad2a7991b014094d4ec09802201f6a151c390155573ca379a98f79b7141ad5b933874a470fba3a38d4b3540407","0x50Ee674689d75C0f88E8f83cfE8c4B69E8fd590D",!1,!1,null,null],["ethereum","empty_set_dollar","ESD",18,"Empty Set Dollar","304402202eb93acddc7a9f4c42e0e0c063af9a58c4b91569b82f3791bc978d5bceb1691c022027dcbada18f98111afdbaac6172ecb59cd7ffe4c06fc259ec4f8229d32523d85","0x36F3FD68E7325a35EB768F1AedaAe9EA0689d723",!0,!1,null,null],["ethereum","empty_set_share","ESS",18,"Empty Set Share","3045022100896ff1ca934eb509fd63d51cb49a6245e4c34bd6165d4bbed1037811e9efd130022051d4abfb6caa424d4f794c86ff52dc6eae672e026e9651789ef40efc04ffeada","0x24aE124c4CC33D6791F8E8B63520ed7107ac8b3e",!0,!0,null,null],["ethereum","emu","EMU",18,"EMU","304402201da70b4a5091f31cbcb87f2ec74a32f6b8736c39c46a5b03fc6793c3710541480220242f1a28832454c87f99f846a7fa1c217cb17cae8db5c221e21788ec8be40ffe","0x132a8bE8E7990524360905FdB263e1896CB58ECb",!1,!1,null,null],["ethereum","endor_protocol_token","EDR",18,"Endor Protocol Token","3045022100b76ab3d77b795c13ffec021ba14e37c559596aa73757c306d0a20f7ba2de1b5b02206679d0cc79441e4a3614f1aa1a650505d31223b9f894e3ac1acdd1ca7c66c97f","0xc528c28FEC0A90C083328BC45f587eE215760A0F",!1,!1,null,null],["ethereum","enecuum","ENQ",10,"Enecuum","3045022100a8e639f5a5f25282427b125f6e906f9d2103d12ff28ca01725887b1d3b41609a02205260c3e330c5655149c9b5ca7b23b3fb096d4a5ef07fbaf3ab43a36a73076a14","0x16EA01aCB4b0Bca2000ee5473348B6937ee6f72F",!1,!1,null,null],["ethereum","energi","NRG",18,"Energi","3045022100c0e865334a7b26ea3d57d84499a9d2787e2be91aa0e75a3a7d94e53d19f7371a02205b57d98a2d7443dfda5811863626788179c2f38252601a3af331bfc5abdc394f","0x1416946162B1C2c871A73B07E932D2fB6C932069",!1,!1,null,null],["ethereum","energitoken","ETK",2,"EnergiToken","3044022010ae8c1c6c26d35c51cd1a527fc490d3368a72b943df5335fd8be93e9e2a9d9202201fad44cf98b7f0b97182cf7b3bccf139b02ac1eac0ff73c473083fc03a603423","0x3c4a3ffd813a107febd57B2f01BC344264D90FdE",!1,!1,null,null],["ethereum","energoncoin","TFG1",8,"Energoncoin","3045022100ed40576f01038a73ed8efc1dff09f13f4b0ca2427be2d7350c18eb92d9c6d56202206c4f38116c6e6c28e4e2233deeb231df8c54a4d4a8fed55ca68336dab769ba85","0x666a64F5567c3145fbA7CA9EF73648Cd4fA2008F",!1,!1,null,null],["ethereum","energy","NRGY",6,"ENERGY","304402203c1ae1b2dd1fcb2f934452aab59d79780a302f73d7a3cd768ba3e06a356aa7ce0220209c0f404be784ddcab24004d4f457007ca209b8a601709428012ffd9c8b3377","0xC29aCAc647c63DBd8618E817d41eA9De69174aE1",!1,!1,null,null],["ethereum","energy_ledger","ELX",18,"Energy Ledger","3044022016fafd204b9bd4dfc5821acb640e5914ee1a11eeb3d0b254237a6c650a86da43022005f771055496e9d99fa51e2b07e0b203edf60c6431cbbb46b4881aa8cfee3017","0x9048c33c7BaE0bbe9ad702b17B4453a83900D154",!0,!1,null,null],["ethereum","energy_web_token_bridged","EWTB",18,"Energy Web Token Bridged","3045022100a49d304e3f012f000e46638ae4857aec2065e5866631248de9e2be9db43a9521022029b38aaea1247c3381502642178382f1fc5ae99d61b70a3095a9381144d762bc","0x178c820f862B14f316509ec36b13123DA19A6054",!0,!0,null,null],["ethereum","energysculpture","ENERGY",18,"EnergySculpture","304402202fc9622d713524c57420752750ba6b3331834ca9c73c70c5923e7bec808c55b302207fda0b0e5d4d93263ec003a0046e59ce32540cd4c9878b5d1bc96e295c351a14","0xFDE98A3Bf5C7F6336aE4ce1b43148aEab7b7c89A",!1,!1,null,null],["ethereum","enex_space","ENX",10,"ENEX.SPACE","3045022100b12ddcef78e194297d36f0d87d046f084af1acb08bd945152f97d9f454bb4d71022056082206f3c1db695473f847fe2f9ce70de6acc716694bac0b625c6768ff8fab","0xd0d7A9f2021958e51d60D6966b7BbeD9D1CB22B5",!1,!1,null,null],["ethereum","engagementtoken","EGT",18,"EngagementToken","30450221008243a34115a91879ac69f3a2ed35db502a25bcad4e57eedaaa45bcc2932aa05f02207052c2956066496085541f1232f857c36ab5c0841a359c41f61eaca2211da1aa","0x5DBAC24e98E2a4f43ADC0DC82Af403fca063Ce2c",!0,!1,null,null],["ethereum","engine_token","EGCC",18,"Engine Token","30440220562e5608f7bce32c7c1fc8bcc13fcffc14fef0250ae3aa702e991aac9f0402c90220117dd201bd348154e0b0647d9519f33017cceac51e36b1bc7d86bda6448de477","0xAf8A215e81FAea7C180CE22b72483525121813BD",!1,!1,null,null],["ethereum","enigma","ENG",8,"Enigma","3044022059cb635a9700efca50ddaa8d71d196d4306a29b74dee1bce5e6e421d18464d57022045d53e0b15bc545a9c8a790a43394b7427a00e7bf819ab64598c7e10de9ce76f","0xf0Ee6b27b759C9893Ce4f094b49ad28fd15A23e4",!1,!1,null,null],["ethereum","enjin","ENJ",18,"ENJIN","3045022100b7a34710edd5b66f3459458f72f6e6d5de5a07433e2ea43ac86285d8a666f4a102201c21822cb87ef478c5359526e329d0403aa1dd36e68567d4254c0c61f692e57f","0xF629cBd94d3791C9250152BD8dfBDF380E2a3B9c",!1,!1,null,null],["ethereum","enjinstarter","EJS",18,"Enjinstarter","304402201039c6704c4b3347db177ebad9fe1f14bd3d6a4ceba57c6cdf7007f8660fb425022068645906762dcdd4858c197d7be7bd392563518292c57e5266e349b94c54192a","0x96610186F3ab8d73EBEe1CF950C750f3B1Fb79C2",!1,!1,null,null],["ethereum","enkronostoken","ENK",18,"EnkronosToken","304502210092dfdccb5a62245b302ade274f6a20a93456a19fb1ab61d1dbeea6fc1ee7358f02205bb304af5cdf4d38d703e022f5dba5d163f42db7c283cdd36dc8a980b333dd7b","0x92B914f1DDcBb1D117a718E83C9ED7eB32fc44d1",!1,!1,null,null],["ethereum","enlighten","MONKE",18,"ENLIGHTEN","3045022100e6fcbe69fd34f5b48e6e9d417de4ad96e701060aad399b7f409e9e1e44c756f902206f358902f992e265cf8ab7173e327a0feb49ddc428c85e54f5ed0c531df16b73","0x920e4Cc5c50548ED2825de9e380A4d7b2A7Ff143",!0,!0,null,null],["ethereum","enreachdao","NRCH",9,"EnreachDAO","3045022100f6348ccb4e572324ec4ee1636a8106c4dd7cacd6110486b3133cf2897599323402200463af628bd84e90349e7daf30cf9778c5e126a4f5ab9268cc1134a273837a3c","0x69fa8e7F6bf1ca1fB0de61e1366f7412b827CC51",!1,!1,null,null],["ethereum","entanmo","ETM",18,"EnTanMo","304502210085215db4a44708868a8857886c8fac23b9761edaa4f3bc9f8e873106a8daba1602206b97b61ca1e7a600af4b096c115964793d4a6fce06b13e189136e4d38f51656c","0x6020Da0F7c1857dBE4431Ec92A15cC318D933eAa",!0,!1,null,null],["ethereum","enter_governance_token","ENTR",18,"ENTER Governance Token","30440220085d3efbef9b2294e30b0755817545feecc71b1a3eff50e946100894b4045040022017efa64f99de749186a7d20121375ae2ef2be14166afbfe451992be939d62a7c","0xd779eEA9936B4e323cDdff2529eb6F13d0A4d66e",!1,!1,null,null],["ethereum","entercoin","ENTRC",8,"EnterCoin","3044022016b34004c7a9ab671fd8d2292ab128627156a9ce7011a4c83e564aa94c88e70c022030994a31448ebed8fc6d8ec73939beddea0cbb4936a172b187513fde112f72f9","0xd9d01D4Cb824219A8F482a0FAd479cB971Fd0628",!1,!1,null,null],["ethereum","entherfound","ETF",8,"Entherfound","304402205adf72af21d53785b785c55f54096e515962a80f5a27dcb1805ef424fbe0833f022064f78234bc1351ec49d76079d15ace148283eef00447d16d92a836b5b41cc3b5","0xc2b58812c24020EA924c3d7C241C441605F12E75",!1,!1,null,null],["ethereum","entone","ENTONE",8,"ENTONE","30440220362615b6fece8c40f82dd325c464d615a95f5db0372b45d39159d7b86031735e022050e0c74bf6fd207576d11e54eb78dfda7cb1874839ba67856365c83a51d7a18b","0xEc1a718D1A6F8F8d94eCEc6fe91465697bb2b88C",!1,!1,null,null],["ethereum","entropy","ERP",18,"Entropy","304402204fc34364bdba254200371327e2f6cff6f6e07f488ee6d71f95499429be6e76fc02201d222d7c93a395bed86f9e0cf1b8b3f6fabec8535807d013783a9201fec30531","0x0a0e3bfD5a8cE610E735D4469Bc1b3b130402267",!1,!1,null,null],["ethereum","envicoin","ENVI",18,"EnviCoin","304402201f7710093d9cf096732a5f61ca5ce027404d2e567fd7191468d04d8f6a9ab64a022043f5cac8e9dcd4c5a24274dd7bc55b0f1c0a9291db27d0a572bb71966f3639fc","0xC8020985A6B30773d866cbef65a7A11F96773413",!1,!1,null,null],["ethereum","envion_ag","EVN",18,"Envion AG","304402207af871593e5b2d20cb3ddf559a108174a7844c4f1b223838c5877a0bd3c6755302203be848340209a6ee06a020c1759d01103f060d7c94034eff11e04d22cb5b60f6","0xd780Ae2Bf04cD96E577D3D014762f831d97129d0",!1,!1,null,null],["ethereum","eos","EOS",18,"EOS","304402205394cf8c63bc8327cd149249889d5c11df1747770d4bc6d5c3ed90ae42f0c34202206c3ec2403aa05c4df3495791ae23ddc4428b8d644c203da0976ee78e938a8b9f","0x86Fa049857E0209aa7D9e616F7eb3b3B78ECfdb0",!1,!0,null,null],["ethereum","eos_trust","EOST",18,"EOS TRUST","304402203e204ec59ad0bac6305e467335e09e2f3964efa5db474452dca5ca299e74531e022043cd7fdb03a4dd701b0e8d529d1db2adc7a140de10ca07454b4187bb4e66711d","0x87210f1D3422BA75B6C40C63C78d79324daBcd55",!1,!1,null,null],["ethereum","eosbear","EOSBEAR",18,"EOSBEAR","3045022100fd400d44cca7506e37d36b379cd37a803fcd5fbfed5e65ac9d938e9a4323d04902203e63bd0f2b477eec0576ea61ab4e93b57693db657323a54021b1e00dd83a3fdb","0x3d3dd61b0F9A558759a21dA42166042B114E12D5",!0,!0,null,null],["ethereum","eosbull","EOSBULL",18,"EOSBULL","30450221009dfd429f5bf91f6c35efa0d2fdec0e765d974b2f8d8a6e914691fee04608b9ba02201301db9219427a74619c0c27cda98efd6b103652eb9269a4209b55337d6a7e54","0xeaD7F3ae4e0Bb0D8785852Cc37CC9d0B5e75c06a",!0,!0,null,null],["ethereum","eosdac","EOSDAC",18,"eosDAC","3045022100bd91cc154536de7ba649adf7f8b1124d488fa0f0bb55cfd845442f5f8d72396c02203a115295e5cba14c6aef99ff70712c063ec9de9c4aed134ef79d6a3ac986163a","0x7e9e431a0B8c4D532C745B1043c7FA29a48D4fBa",!1,!1,null,null],["ethereum","eoshedge","EOSHEDGE",18,"EOSHEDGE","3045022100d7fc25e7da58551c5b34f4f116113f3f8f38e2f5384256221079627e68369114022026e4d87ba81ff41c3956bde811c7d98733e608b15e780c22b5b8f2c73f9623b9","0xb38f206615325306DddEB0794A6482486B6B78b8",!0,!0,null,null],["ethereum","epanus","EPS",18,"Epanus","3045022100d025037953a5bbd1265394437e1f6d4c76b55446709b31bf2e111b7248ded22a0220738cf72b1c4789ce8fb8aa00b627cdd9d460d9018f99c30cebeeb78079ab3667","0x50eC35d1E18D439F02Fa895746FC3e1BEF311780",!1,!1,null,null],["ethereum","epay_coin_plus","ECP",6,"Epay Coin Plus","30440220419de75143956869e95c472e98c172581990b33fb8edc4a0e7122d1d57e9db5202204ec242fcc2e0a049795d5f3f04e00619b5d2fe94b5bb27017431a2193b269cbb","0x8B8a8A91d7b8EC2E6ab37Ed8FFbAcEE062C6F3C7",!1,!1,null,null],["ethereum","epic","EPIC",18,"Epic","304402207711cf49e3e9ce12af8c192ae08549b98619886330ce0684002cd784bf86cdd50220146aec087bc55916122ba30988a244729e2bf2fe1c3504b661b18a3eebd4d589","0xbCD9e216200369803ed059B7744f6Fb4cF3887C7",!1,!1,null,null],["ethereum","epik_prime","EPIK",18,"Epik Prime","304402202e0cc7ffb5803fd7ed1c3cc166bc7d8328ed17cfbed37b98aa24edbfad0928be02206390c16c37efd688244879e90fbccb0bbf849a02c10395d592e72b6b13440f83","0x4da0C48376C277cdBd7Fc6FdC6936DEE3e4AdF75",!1,!1,null,null],["ethereum","epik_protocol","ERC20-EPK",18,"EpiK Protocol","304402201946208024c672049d9082152eca93782d5997e634f816e4f0466021d6f5b6a90220795a4f56e8b49989172ab6f1ede796662196cd14dc5c75b4feece32940d87534","0xDaF88906aC1DE12bA2b1D2f7bfC94E9638Ac40c4",!1,!1,null,null],["ethereum","eplatinum","EPLAT",18,"ePlatinum","304402202e317cb316d4a74d6710bbeb2d227d93535ae657e94a5bcecf2fd522d296fb7802200a9c372d936b473c2462e3739b437e87346a7568151eed2250597bc296a87185","0x57b3140F522a3eF2F98C046F78e0D03075908591",!1,!1,null,null],["ethereum","epluscoin","EPLUS",8,"EplusCoin","304402200fcd009f69aa0c2d64342146e9a117e46021cb5684cfb9fd262a53e2902bda55022000af0a013250bbebed586ce2934a63ce5a3d2a083d161e7221464cccee5d0c70","0x02e3083a51E8632E571fBd6A62aC396C10c653Ba",!1,!1,null,null],["ethereum","epstein_token","EPSTEIN",18,"Epstein Token","304402200b3d88f02e3d0b4a3bbc20f2e1f0a396efb728044ca3cc2b193a815476cafd1802207966772e48232d6a6fd238a01a442f1ac22620e392f2cc4e637585ed61ff8a23","0x051cF5178f60e9DEf5d5a39b2a988a9f914107cB",!1,!1,null,null],["ethereum","eqifi_token","EQX",18,"EQIFi Token","3045022100f493716f04dff8a634a288d5a69ab11f711251756c604ac48f80ba522668b6d3022017397f72dcffe3a855474a70c0c49a2d70e2d7c77d824cbec285b7cfa569f2b4","0xBd3de9a069648c84d27d74d701C9fa3253098B15",!1,!1,null,null],["ethereum","equal","EQL",18,"EQUAL","3044022062d0b387becf11e18ec8f64e8ee652a6155811320bc93665ce09824d12fc3913022044463821e0ae111fa5545d1680cf920c36eea12389a0479fb68a012d9128d51e","0x47dD62D4D075DeAd71d0e00299fc56a2d747beBb",!1,!1,null,null],["ethereum","equalizer","EQZ",18,"Equalizer","3045022100d061ffd1bf7d9c0bb3bd49a52d7d944e822f9a05d8fd791e7391a41598e6884e02205f3c6f3efb02129a74e87dd9056abcc274ae5ecc016304532013b51e4c6e5ac9","0x1Da87b114f35E1DC91F72bF57fc07A768Ad40Bb0",!1,!1,null,null],["ethereum","equos_origin","EQO",18,"EQUOS Origin","3044022025a79eee05c3731ba057477b999820b8257ed41575582a31cc4cb4ae5c522fb70220028f351e5d3bb40e8586e2e375d6dba16c28cfae64f2c2289fc28cb9323b80b4","0x46e9fE43470fafd690100C86037f9E566E24D480",!1,!1,null,null],["ethereum","equusminingtoken","EQMT",18,"EQUUSMiningToken","3045022100a695721e53971525543e9c373ce9fb766ec6e82b35c6bf3193d2be4af8d536d502200e670880f13ec525094a11a5a7defae48a99c2a05ea3f6c1ad7e848733d8bb59","0xa462d0E6Bb788c7807B1B1C96992CE1f7069E195",!1,!1,null,null],["ethereum","era_swap","ES",18,"Era Swap","30440220043a5d53c7b51306bff5b36b8918072b78140950cf028ae8c53374503abc366f022043c8280d8d24b051bd6a58a975233947855d8969cc22778ab096968bde18fe7c","0xeF1344bDf80BEf3Ff4428d8bECEC3eea4A2cF574",!0,!0,null,null],["ethereum","eraswap","ES",18,"EraSwap","30440220772b6e31f0b412ff5066e9348a01ff7f06adf4a87333754e13a5a9910e853c74022050676c732a29ff2341c0083d4c7f38d37d9675c41d5c75e705070aa4afa618ce","0x72108a8CC3254813C6BE2F1b77be53E185abFdD9",!1,!1,null,null],["ethereum","erc20_","ERC20",18,"ERC20","30440220259cb9ff13003cafe3d7cac6560faa926c917955862ccbb559896d65b2933c8d02204c413aee70e09ccb9fbf29da7937c53b38515f04f96ea0baea0d691e85b90d21","0xc3761EB917CD790B30dAD99f6Cc5b4Ff93C4F9eA",!0,!1,null,null],["ethereum","erc20ektatoken","EKTA",18,"ERC20EktaToken","30440220743773a1b0e944518c05908ed06bb2c193c87639a8ae9382dc66675746fcfebe02201d5f05f933f1b106433b53423e31c5e303942ed47d79fc8532de035a46eb04bf","0x080667Da7bF573a6EC3268fC6D0B7736a42eD6e6",!1,!1,null,null],["ethereum","erc223","ERC223",10,"ERC223","3045022100ec543bf697bbd9cb261246a4e57256bd524036f9e88ed6f7d6bf206c55c5ca0f02201b966a60b903214a7f990790d28cf26ddbff3aa1e450603a1c4f36e17c39ab53","0xF8F237D074F637D777bcD2A4712bde793f94272B",!1,!1,null,null],["ethereum","ercaux","RAUX",18,"ErcauX","3044022052e3aa43cfe17e4f78aab6e5a8720a3ff314fa1a21eaa9b4b3342d8aff8fda8a022012278a8aa2fa2b2436ce888c8dc7bbb6941540863dae5baf4113baff8a092bc3","0x68496eE825DAFE1cF66D4083f776B9eAAb31e447",!1,!1,null,null],["ethereum","eristica","ERT",18,"Eristica","30450221008255cd95c0880fa681544cca11237794a3e556a3b661d575b49393579d017604022007b93cfeab0695516550ff7f204ba4bc06884213939d23e15b2654e93e945f7e","0x92A5B04D0ED5D94D7a193d1d334D3D16996f4E13",!1,!1,null,null],["ethereum","eroscoin","ERO",8,"EROSCOIN","3045022100e0af2fa30f0e034dc566264272e401294c6aa050a79cd75ae2ff9de97bfb7a7b02204106f1bcf00ea894102ec16819ab2e251dac91cb5b93120d596918994d5941f6","0x74CEDa77281b339142A36817Fa5F9E29412bAb85",!1,!1,null,null],["ethereum","erotica","EROTICA",18,"Erotica","3045022100f1e6acdbbc74338cf8046a3504f324326c13972855d9d2bb2e75863b3e5ce3360220137205a35173c899fe5fd540007a56604cb6cbf7e3a6f06a0984c67d12841507","0xC1Fa06e8596c3FA98cCd2113C38B6b60b6eFa00d",!1,!1,null,null],["ethereum","erowan","EROWAN",18,"erowan","3044022052b41d8ac9fa61fab28c946e1c0f7c77b2adf231aa4e226d86f052fca0467d16022062b6dc68332e5fb885cbcb12043333aa284fc357e3041bf56fa8436598ba303d","0x07baC35846e5eD502aA91AdF6A9e7aA210F2DcbE",!1,!1,null,null],["ethereum","erupee","ERUPEE",2,"eRupee","304402207d3529bd3b9506ded29d80467304114878c0cf58dfbe5e095534fbe7f3db63af02204d7a100bbc9318897831431c229b682aa508f99b7207d3f713bdfba337438b13","0xb67734521eAbBE9C773729dB73E16CC2dfb20A58",!1,!1,null,null],["ethereum","escointoken","ELG",18,"EscoinToken","3045022100822b6932099d1ce84d5f0c19f2d1d959622dc1efcb6d94b2a8764e7ff9f74c9302203a6d57a049a2c50a31ee26a4591e55b648de829b3c3898ac7ea51f5d62d0377e","0xA2085073878152aC3090eA13D1e41bD69e60Dc99",!1,!1,null,null],["ethereum","escroco_emerald","ESCE",8,"Escroco Emerald","304402204583a68bc8e5018e0ef9f654520e8ddea9ae89807e66f45327db2f459a742b1d0220172fc134686054a11fb065815598eaf852ccef2b1445491ffcdad82ca30a4c9b","0x49614661737EfBFC6a102efaeefDc8E197f7CC0e",!1,!1,null,null],["ethereum","escx_token","ESCX",8,"ESCX Token","3044022056f4c9a9571ba11628387f37061a8aa732e6a66f8153fc65a4fc3128a25bed2802201982defb4907257782cb77228d5c7ea704144ca3a55233efe0e24961ae11ea8a","0xA8eBb13B9895E52Ab7d815CE7F63591402581624",!1,!1,null,null],["ethereum","esov","ESOV",18,"eSOV","3045022100b32d8e378f0458f1309a1fe19bf5f1681266be5e843e14c3facd07163abc5cb5022051db1e9281a55a180373a76293dff364d0a91e8d1a915b9c7befda9a0d3e2edc","0xbdab72602e9AD40FC6a6852CAf43258113B8F7a5",!1,!1,null,null],["ethereum","esports_token","ERT",18,"ESports Token","30440220790158e9e1da730ce9fc4479b8df547cef788bb87d6b763825e78f1c36e7d4180220248d824775fc4d899050bbfb57e9342208c1d2d8d2f3d6f640cf55edbca02ab5","0xE29c5B523590165795BBD7d52369c2895B18841f",!0,!0,null,null],["ethereum","esportspro","ESPRO",18,"EsportsPro","3045022100810c4f8ee9d17e9553ccaacf80605a34f1b57d8663966e16ae7110437f4b0a9f0220036c5f79f03f55a2f3f924c5bdbfb2ed1015dec989d85025b34b08f8329e99a8","0x29C56E7CB9C840d2b2371b17e28BaB44AD3c3ead",!1,!1,null,null],["ethereum","essentia","ESS",18,"Essentia","30450221008236b5ac9dc1680d891c6805792c2def42e0b3f7dcc55001a15d9df7e9bd1a1802202e14e28fb2ea6b4322bc43a02d7284a2e99d1d42df6016bc175088b221910b2a","0xfc05987bd2be489ACCF0f509E44B0145d68240f7",!1,!1,null,null],["ethereum","eszcoin","ESZ",18,"ESZCoin","3045022100d9fd422f2ac3736f901d154563e9f007191da982601f4c69c4731acbde0710f7022049bd284434a35d28727eb53dc9ec74a271c794f7cc489318b00c0d2387fd9e5e","0xe8A1Df958bE379045E2B46a31A98B93A2eCDfDeD",!1,!1,null,null],["ethereum","etcbear","ETCBEAR",18,"ETCBEAR","3045022100ce17d8cbeec6ee333d849c1f00c746ac0a5e627cfc8b420ac70918c3e1392c6802205a3c7a926424247c6d64234b3725317889d805babb1cd6346911eeb862d3dc73","0xA340f0937a8c00DB11C83Cc16CEC12310160F0b6",!0,!0,null,null],["ethereum","etcbull","ETCBULL",18,"ETCBULL","304402200f70d9f367d35857a7d40eaa0b8024bced7eab6c694f7ef7c77e6d3a80430919022004e0cf7b30ffa8a3790748d4c247bdd6fadb51708f77c114ce81933aeb20d4ea","0x974c98Bc2e82FA18de92B7e697A1D9BD25682e80",!0,!0,null,null],["ethereum","etch","ETCH",18,"ETCH","304502210097600ad1be56224e533152c7117400788e695e8dadd654ba9e7d9fe41b1ea27a0220322dd718f4359fcf86adb7817c3657bc47c6bd7ff470d9468c891ebf21182c8b","0xDd74a7A3769fA72561B3A69e65968F49748c690c",!1,!1,null,null],["ethereum","etchedge","ETCHEDGE",18,"ETCHEDGE","3045022100e4a9a446d325b676ce296db6d6cfede84ae66df9f8101baf38c0201d5f1d11270220188e5b3c39383fdb8e966ee2cea9a7bf9ede42626db2218924c2fc37f1ae97b7","0x57e2B08E74B2B2C041e8B7bbB48bf1CDc6b8AfB6",!0,!0,null,null],["ethereum","eterbase_coin","XBASE",18,"Eterbase Coin","3045022100a426b98b04cfbc1fb5f28bec542ae1e7ad89bce250aec7e0dedbe6679c806f65022019c96a42e60edd1395cb19c40dccd641fcd2aa3750d6fd075ce9f15dd03852d9","0x4D13d624a87baa278733c068A174412AfA9ca6C8",!0,!1,null,null],["ethereum","eterbase_utility_token","XBASE",18,"Eterbase Utility Token","304402201a5fbb04322704bbeae909a8579374712e1821289d21c611ebf2fd2d5e05ec0f022036299ac8e7c862ccc0363b2de07f90d5116bd828e436d1dc9ec43a5036df8757","0x5bdC00B6676579b301B276198Db1ea9AffB94329",!1,!1,null,null],["ethereum","eternal_token","XET",8,"ETERNAL TOKEN","3045022100e9e94ec0cdeebc4c45c0213525307ba2dd693c2ccb52fef1f1400cd2e93c12a002205c67966e752a1652d085b16cc8205fbf75306a726f79bc3c3eba74d41019b8e5","0x054C64741dBafDC19784505494029823D89c3b13",!1,!1,null,null],["ethereum","etg_finance","ETGF",18,"ETG Finance","3045022100851d55158b10c59103618dc50b527f9a0ed795a7337241d417449f9555ed152d0220583a30559137b06bd4d62d2551c753cb61eee70f7af82357bb97aea885b1f900","0x74603e780545d02C4257E7D2BE19c74dE7BE1952",!1,!1,null,null],["ethereum","eth2socks","ETH2SOCKS",18,"ETH2SOCKS","30450221008af37bc55b2034a854424ba0975a39b8667efc42e69b6b11984a86d0d751296c02200ed131e0a5bacb4996a0c5eba551dac17105ba88a57de3127ff7ed6010aec9c2","0xd80776BBF68CDE466900a7214C772A7D179C420F",!1,!1,null,null],["ethereum","eth_12_day_ema_crossover_set","ETH12EMA",18,"ETH 12 Day EMA Crossover Set","30450221009258216c39f66a6d47dc869a8a95eacc7d6b38ea6a887c345a1019682e704e6702202c31e3d5367cd3067d96e6a5f180aa16cd42bff99671fbb3f79d5a82806c7370","0x2c5a9980B41861D91D30d0E0271d1c093452DcA5",!0,!0,null,null],["ethereum","eth_20_day_ma_crossover_yield_set","ETHMACO",18,"ETH 20 Day MA Crossover Yield Set","3045022100e346cef21b2506dfec6a323b8bfe69fed0f614aaa79f1c904fb179c6b459d0e702200a896ed9a858a512f91fa9838aede2cdbbd561081190972c5b2a716069e6b36b","0xeF0fDA1d4bd73DDC2f93A4e46E2E5aDBC2D668f4",!0,!0,null,null],["ethereum","eth_20_day_sma_crossover_set","ETH20SMA",18,"ETH 20 Day SMA Crossover Set","304402200bbdfe303bd25e273078bc6d21dd9e2c453a3b57ba2aedc504d0aea5c994595e0220152d2dab8912a97e271bcf8d907376e3f3efb812005163b481cd03b8b6974e17","0x9ea463Ec4cE9E9E5bc9cFd0187C4Ac3a70DD951D",!0,!0,null,null],["ethereum","eth_20_ma_crossover_yield_ii","ETHMACOPY",18,"ETH 20 MA Crossover Yield II","3045022100d558ac79a82830f408d4bf661e4dfcd91a2d4aab1493bc475e83061099f92d53022040203b89033e5ddd835d5da0f3e558d77e61dcbe758c1cc805374d9a176dcf28","0xB647a1D7633c6C4d434e22eE9756b36F2b219525",!1,!0,null,null],["ethereum","eth_26_day_ema_crossover_set","ETH26EMA",18,"ETH 26 Day EMA Crossover Set","304502210088f1cf1595824e1af7e683b303f6cc5d804a13c14a770d20ea98500fb40b8e9402207f07e52c50b05863603430ae586dcc6d68ef2701e3cd875338e2c4eb46b9d93d","0x614857C755739354d68AE0abD53849cf45d6A41D",!0,!0,null,null],["ethereum","eth_26_ema_crossover_yield","ETHEMAAPY",18,"ETH 26 EMA Crossover Yield","3045022100a6c4aeaa035018008a6e5cc75be190bb83b273872736fcf12e29ee75829383f602202436c01a9e85eb187a7a809937ee01e5a79f4556dcae353f56603769840f2415","0x316b13B951Efe25AAd1Cb565385B23869A7D4c48",!0,!0,null,null],["ethereum","eth_26_ema_crossover_yield_ii","ETHEMAAPY",18,"ETH 26 EMA Crossover Yield II","3044022022fa4137af0ead5f38adbd7ca965d9041c168040303ddc60976804964bbc91da022039484772c51a4cef9601bef799c200d4ef0ec4108e618ebac73aa0bebca2bfff","0x54e8371C1EC43e58fB53D4ef4eD463C17Ba8a6bE",!1,!1,null,null],["ethereum","eth_2x_flexible_leverage_index","ETH2XFLI",18,"ETH 2x Flexible Leverage Index","30440220044de610ede3e471d4537acc4246ff54d37d3214d8848da77bc7c50070d111ec02206575dfa113bec2c754856e07fb31b6b2682edf3ded74d65ab81def7ac7e7ecdb","0xAa6E8127831c9DE45ae56bB1b0d4D4Da6e5665BD",!0,!1,null,null],["ethereum","eth_50_day_ma_crossover_set","ETH50SMA",18,"ETH 50 Day MA Crossover Set","3045022100e07de2038fb4d1f6ca85aa828fd443b2299af663064aeebeaa420a83230acf7d02202739fa346dac2b2e664b692d83f2fabc80ecd439e2f0b03dbffd554c4b1af25a","0xa360F2aF3F957906468c0FD7526391AeD08aE3DB",!0,!0,null,null],["ethereum","eth_btc_ema_ratio_trading_set","ETHBTCEMA",18,"ETH/BTC EMA Ratio Trading Set","304402204e0805f9df55070f221e71ba549e10f781bb484330bcf28c1ff6275dff0da657022045cff3aa27c976eb283331d937e5d268c69d2253e5a7581499e100848b6c2e4d","0xB9FfE0b8Ee2d1Af94202FFED366520300748A4d8",!0,!0,null,null],["ethereum","eth_btc_rsi_ratio_trading_set","ETHBTCRSI",18,"ETH/BTC RSI Ratio Trading Set","3045022100a7eb57b1c3f4ecd2b75f635921e17f6bfd054b9f9d01087fe08dda02bb7e7f3f02200934950eb3242469744ce1c17090999eebc6d0a4c0a26931a298c1605105d515","0xbf70A33A13fBe8D0106Df321Da0Cf654d2E9Ab50",!0,!0,null,null],["ethereum","eth_gas","EGAS",8,"ETH GAS","3045022100fe42c838f26e11a98d209c3416d9cbfaf047a35ed10849d59c0879034037848302202537b8d103deec9b8f3fdc5ebfb5570e1c04062c4f740e55f7689a7e6ed45e00","0xb53A96bcBdD9CF78dfF20BAB6C2be7bAec8f00f8",!1,!1,null,null],["ethereum","eth_limited","ELD",18,"ETH.limiteD","304402202fd05b6c444ed9fdd23a3e306a9838f023dd8305ae35e489c0eb8dd81cfbded9022057ff617346d2cd836bbfae2fe1374f4b2fc0af6b279bbe7c9ce1e496e2a3e43e","0xf0C6521b1F8ad9C33a99Aaf056F6C6247A3862BA",!0,!1,null,null],["ethereum","eth_max_yield_index","ETHMAXY",18,"ETH Max Yield Index","3045022100a73ed0083bf428c4393c05c1f44ba753a989226e76ba0d3663fb723a26dd853702207190a551784aa8fa4531ec4ee40ca5a5a5c8a1d428ee44200831403255ab5b8a","0x0FE20E0Fa9C78278702B05c333Cc000034bb69E2",!1,!1,null,null],["ethereum","eth_momentum_trigger_set","ETHMO",18,"ETH Momentum Trigger Set","3045022100966a5efcc853ea960ddb50e51eaf96d4836c9914177c1570fee677a17fbaa92802202637d35974b8a2d8b20b1548bba2d492109b840d490d61a046174b2e1364538c","0x98A25bA4c3793B9029652cBc1a8875cBe223dF13",!1,!1,null,null],["ethereum","eth_moonshot_x_yield_set","ETHMOONX",18,"ETH Moonshot X Yield Set","3045022100f6bfb0f267474259c82d35372a8d2268f829cb8e56b2098cb5b3e2f7e7556d8102205040f1522bc5df152d571cc23ef28e7b741ef75604bd52e435e440da9836a24b","0xB1CA7E6714263a64659A3a89E1C313af30fD660A",!1,!1,null,null],["ethereum","eth_price_action_candlestick_set","ETHPA",18,"ETH Price Action Candlestick Set","3045022100ac98a31673c147cb0f761c209d5a9fed0f2bca0a949b79300d93e512c40926b702205a22e5282f6807ec627ea54d802678e21f6933c9a87a0f44c54b10284729a0e2","0x09E4BDFb273245063eF5E800D891eFF7d04f9B83",!1,!1,null,null],["ethereum","eth_range_bound_min_volatility_set","ETHMINVOL",18,"ETH Range Bound Min Volatility Set","3045022100c7c0a16a7b092703fd78a397dc665d9363d8fba70aeaea624f023ccddfd70dc8022038f4e7ea8511c6b8a7f4221cb3799b1084ce7fcf588c38b23246c3c983a4b83b","0xF1E5F03086e1c0Ce55E54cd8146BC9c28435346F",!0,!0,null,null],["ethereum","eth_rsi_60_40_crossover_set","ETHRSI60",18,"ETH RSI 60/40 Crossover Set","3045022100f15a9db75b6b8362c0b349664a159f1c2273652a5438384402b07fceeda917680220332cda2d93e60654460529bb9d08fa65de3754396daa1c5cf1a0ec7227ba5640","0x93E01899c10532d76C0E864537a1D26433dBbDdB",!0,!0,null,null],["ethereum","eth_rsi_60_40_yield","ETHRSIAPY",18,"ETH RSI 60/40 Yield","3045022100f5570ab852559763c7f9ac1b82a4a7cbf0a8eb5c5b2dc01fb3fc7ffe4affedce022025029dec37fbd60678041aea6773a6f4bf69d91c35ff9a2577dd0edf5a75e4c8","0x136faE4333EA36A24bb751E2d505D6ca4Fd9f00b",!0,!0,null,null],["ethereum","eth_rsi_60_40_yield_ii","ETHRSIAPY",18,"ETH RSI 60/40 Yield II","3045022100f1017ca40060d9d8f548dee8d2b6036e2a4ec38740e0f32f8e9305d8109681a90220709238ccee4a92c7675d8d2f15dddb520f38e804618fd2988176e4735be2e055","0x9f49ed43C90A540d1cF12f6170aCE8d0B88a14E6",!0,!1,null,null],["ethereum","eth_trending_alpha_st_set","ETAS",18,"ETH Trending Alpha ST Set","3045022100af8e923e4f749331dc761dbba919f3ceab54689c6cae6ce185415368049ea08002200e664120b357b0e5111ff3ac69dbc9096b9703fea307e4c98ee0c12331d326b7","0x856c4388C56c2a613c60507a4701af627157Fed6",!1,!1,null,null],["ethereum","eth_volatility_index","ETHV",18,"ETH Volatility Index","304402203e618c947385e8791ab883fd1980e8ac0ad63624f7272775f863649e692a5d8302206d59702633e9ad542e24950cbf8fe2aaadf6aaed7ae0d9caff0560a846f3645b","0xC53342fd7575f572b0fF4569e31941A5B821aC76",!1,!1,null,null],["ethereum","etha","ETHA",18,"ETHA","304402203901062816ac31414cd2497a0fd4f86c907ec3be386cea1b6f8924e5f2efb989022049bbbb71417be569e0ea1995bc183d5e9581b95aee5d473cd882262e829a0a7a","0x59E9261255644c411AfDd00bD89162d09D862e38",!1,!1,null,null],["ethereum","ethanol","ENOL",18,"Ethanol","304402203c96e28c3885eb24d4ac06625e949e12f96185459be477a484176a6808ed1f5e022004a3647a66cfe138593554e59c7fbb333b3ba45a5a9c6cbf43da9c5c2c3d9a6a","0x63D0eEa1D7C0d1e89d7e665708d7e8997C0a9eD6",!1,!1,null,null],["ethereum","ethart","ARTE",18,"ethart","30450221008188937c0eb5d83abd71a2e031ce290c3186427afe2d32fd72519de42c9303f802202fbc3ae959856051332ffd68deb63a14ad1dfbc5e0c918f559e2f4590221decf","0x34612903Db071e888a4dADcaA416d3EE263a87b9",!0,!1,null,null],["ethereum","ethbear","ETHBEAR",18,"ETHBEAR","30440220262058b1533ac8cab764cf9b5b2a507a0966728cd84f20df132ecfbbd8eecdbb0220366c29b0c037c21b82d55559e88e93d8f54e4a77468173b7ea82808076d93a88","0x2f5e2c9002C058c063d21A06B6cabb50950130c8",!1,!1,null,null],["ethereum","ethbits","ETBS",12,"Ethbits","304502210084949899cbf4e5c6f4d7ca7fff28d928ddb481ac0ce8abb0e70b3cdd24e7252302202491812673f5d13706c9b8c66b5f63facae645c1f837fb3e145c66bb0130abcd","0x1B9743f556D65e757c4c650B4555bAF354cB8bd3",!1,!1,null,null],["ethereum","ethbox_token","EBOX",18,"ethbox Token","30450221009b3a26e6e3556d4c7052ed06b0065d67d943944c6e182499dcd937e2f4a450ed02202f77db7ac02df993dd2958ad3ae94a5f7b52bddd93b4c4643372790657b6d5e1","0x33840024177A7DacA3468912363BeD8b425015c5",!1,!1,null,null],["ethereum","ethbtc_long-only_alpha_portfolio","EBLOAP",18,"ETHBTC Long-Only Alpha Portfolio","304402206f151be258c8c3830dfd6d3c76244a713841c738e5134d6c932c360fa7f2c35202205a4b395e2c9a074f853df0a00cc90fa689be7d6b56f5d8ad85453789dd7510d5","0x253444bd9ECf11E5516d6D00974e91c9F0857CCB",!1,!1,null,null],["ethereum","ethbull","ETHBULL",18,"ETHBULL","304402202c04985fc63043fb48ff88e575114c740b52b2ac5b827d5604c0f0bd5876ad7b02206de30252c2e91f6695853ca4e5efba76c751001490b139a97505c98d535f1488","0x871baeD4088b863fd6407159f3672D70CD34837d",!1,!1,null,null],["ethereum","etheal","HEAL",18,"Etheal","3044022036ea999cc5cae4f33700ee62b37a5d0768570db8527991f4c4f08462f0fe00c302205919535b1a2016a00a7a2a0f7dee95a61e0665ef79d7ee7f2256aa0aadbc0dfe","0xf6Fd82dEdBBe0ffadb5e1ecc2a283AB52B9ED2B0",!1,!1,null,null],["ethereum","ether_cards","CARD",18,"Ether Cards","3044022056926be63833dd40473b0b9e3775fc962ef7d70a0fcfe9a11b3b3eddf4c7075402200bc6ee43a310dd4e81c0248a6f35e05847dbb08297811fa7df8eb73988606eb5","0xD6F7dB7dB116170ecb1c3b35F12c1E693bA70586",!0,!1,null,null],["ethereum","ether_kingdoms_token","IMP",7,"Ether Kingdoms Token","30440220330ce3d434f4ead84e64d14021776117e6b7bb69829679b5055bbf47d7644cf30220026b06da385d1b60741f0ed701dc5eeae32a192e0421c92268e0a06788721d8b","0x48FF53777F747cFB694101222a944dE070c15D36",!1,!1,null,null],["ethereum","ether_token","ETH",18,"Ether Token","304402200b19355043514dbdf48ed31678693407d7965af0e499027cd963ff32a1de57a9022078fe2bc28b27b8ad338a24b96843a45fd16cbef56f1b5360069317ac7530cd7d","0xc0829421C1d260BD3cB3E0F06cfE2D52db2cE315",!0,!1,null,null],["ethereum","etherbone","ETHBN",18,"EtherBone","3045022100e7b0760fcef956af3067696cec1bb88b9ade1f7a9a36ac31acc67aa33b4af68b022067125b5a6824e6af33f97d084c2e1262cca3c70c5039c876e4c1abef6d3beb61","0x96b52B5BF8D902252D0714A1BD2651A785Fd2660",!1,!1,null,null],["ethereum","etherbtc","ETHB",8,"EtherBTC","3045022100f83da075677d10a22f65d1e10d99f0fa222755c9f8551363575c0e449043cb8102204c4218ecb576da96b3725c9f2d869858b63ee8ca42f9e53f400b67e0735bdb3a","0x3a26746Ddb79B1B8e4450e3F4FFE3285A307387E",!1,!1,null,null],["ethereum","etherco2","ECO2",2,"EtherCO2","3045022100c9791928c295d536c5e690387f7f5e632ded20e0f7d9b422bef88ff96c03917a0220091a4e52cfebce1ab6bb1f7947868546676a4afc87b08b21dcdc75770e860790","0x17F93475d2A978f527c3f7c44aBf44AdfBa60D5C",!1,!1,null,null],["ethereum","etheremon","EMON",8,"Etheremon (Old)","3045022100b61daa2e1ee2b6822139cbd746725c6bb47d5f45f2f4c2752770d56ff2ccb87b022002f10c8bf643ec51ed1fc4f9fc40e2e12e21190f98d13259daa11cd99cab35c0","0xb67b88a25708a35AE7c2d736D398D268CE4f7F83",!0,!0,null,null],["ethereum","etheremon_token","EMONT",8,"Etheremon Token","304402202aefb8c83dcdf8e0cde9cb7f3f99921e913739e1253ba5147a4c163e5cf7dac302207c1dba561c47cf4c2d52c626eb7386e65f535d30371d2e7abf5d5d8c824120e3","0x95dAaaB98046846bF4B2853e23cba236fa394A31",!1,!1,null,null],["ethereum","ethereum_apex","EAPEX",9,"Ethereum APEX","30450221009eb63675756ba08d03709b4adb93070ee3cdc49dcb2feaf8e79df3e0b137323902201edd8119b0417c905d99bbb42c8f4a7194b124a8559e566d48253178bbd4cb5b","0x1cAa202Df9240D7b464D9486A6F1542768EF0D30",!1,!1,null,null],["ethereum","ethereum_cash","ECASH",9,"Ethereum Cash","30450221008f8a5a0aeb6669080a8624b37ed9bc3c78a3d2518ad1aa8b10a66d3137bba98c022038f17f414d9e171b4c775a63e49b3ce055550fafa48e255d90ad513cd4af8bbc","0x906710835d1ae85275eb770F06873340cA54274b",!0,!1,null,null],["ethereum","ethereum_cell_network","ECELL",2,"Ethereum Cell Network","304402205adf0cb15efb8167ad2ef4ecffdad472c9f71e38dc3a20cfe255330c65c50ed802200561e78e5d4fb002cecf59f6c1baf763b536937f6e33bf9a09ffe0d00137bc2c","0x9b62Ec1453cEa5Dde760AAf662048cA6eEB66E7f",!1,!1,null,null],["ethereum","ethereum_chain_token","ECT",9,"Ethereum Chain Token","3045022100ae35b42ae2a8031821fa77d0fcd5614156b11050a935f3c2fddf23be3b291b5a022055eb4723f7a21798bd57310710c1d65914962d00de1349c12cf02f0b86eb9d11","0x59d71082d8a5B18ebc6b653Ae422ac4383CD2597",!1,!1,null,null],["ethereum","ethereum_dark","ETHD",18,"Ethereum Dark","3045022100cb56d07fbcf83ee8c8b407af36a28a4b6aece06b220ba52dee08f6dcdda16874022059a33acc7089c974583edb0c00f29529caaf0432b5d3459a82bc2d8a29ea995e","0xdbFb423E9bBF16294388e07696A5120E4CeBA0C5",!1,!1,null,null],["ethereum","ethereum_gold","ETG",0,"Ethereum Gold","3045022100a338840971947ec54d8186f4c42c3762a6e4f5aab3309513a3e26325ace8cc2102202a081b9ab2c9d6361662bf138ba3a69e7b5dbc695a07a6d7489e571904373141","0x28c8d01FF633eA9Cd8fc6a451D7457889E698de6",!1,!1,null,null],["ethereum","ethereum_gold_project","ETGP",8,"Ethereum Gold Project","304402207a8fdbcdc5cd700d06a34045c674842a81392243ea87a346cefd6db4c1dcf4d002200f5cd57dfdeca2409ad05da7040059662d3f9858662ccb11183839f5bdaef651","0xa96F31F1C187c28980176C3A27ba7069f48abDE4",!1,!1,null,null],["ethereum","ethereum_hive","EHIVE",18,"Ethereum Hive","3045022100ecf9738eefe10832c59d8c18bbd5bd3b57f3b800d829ca1cd26bfc138569e36d022046f32e304100ce0f155b171d60499b224b8408210af1c85757bc24331b0c5541","0x4Ae2Cd1F5B8806a973953B76f9Ce6d5FAB9cdcfd",!1,!1,null,null],["ethereum","ethereum_message_search","EMS",18,"Ethereum Message Search","304402203f3d10da0a4ca0f4a85718d167375eade8cd6267ceda3adba6248af39a65a74c022073416f33b1061244490d00c8ccf6626b6af77d0b3bb59366a42bd280d81c00e2","0x17E6616c45d267bC20A9892b58A01621c592B72d",!1,!1,null,null],["ethereum","ethereum_meta","ETHM",18,"Ethereum Meta","3045022100bf68b1f6acfe7dd8433985def707af0546cd9d9df6f71b88a49cfe492d6ab4bf02203b6d1a3d3bdd4d5e707c7e57debb4676524d987fedda6a34c08c372227b74e47","0xFD957F21bd95E723645C07C48a2d8ACB8Ffb3794",!1,!1,null,null],["ethereum","ethereum_money","ETHMNY",2,"Ethereum Money","304402200b5c881fad4a685120e001526473a138e2ddf634bd405944ace28fac23cdd9c00220167fd4a189dc177394473d850f3c380a625e2ab61e2600ea676107bd2437bd65","0xbF4a2DdaA16148a9D0fA2093FfAC450ADb7cd4aa",!1,!1,null,null],["ethereum","ethereum_name_service","ENS",18,"Ethereum Name Service","304402206f98ef83d316dda00cf1300b9b7d2a908f1bd31f55e56810749ec4cfb7ae8daf022070eed81c3d91434610319a88ae42b0318e5a925ea43d91961bd1927f44796dd5","0xC18360217D8F7Ab5e7c516566761Ea12Ce7F9D72",!1,!1,null,null],["ethereum","ethereum_pro","EPRO",18,"Ethereum Pro","30440220685ff35668b82a6880d9f5840823c9060768572066340f875989830b735fdedc022039c300d09ddb481a3307f3788cbda69272a8e2ebde4563e6d117a8128291df16","0xAB6E163cBEB3959b68b90beC722F5a9EEf82bA72",!1,!1,null,null],["ethereum","ethereum_push_notification_service","PUSH",18,"Ethereum Push Notification Service","304402206be75ef822d296dd3fd4d29f37200b3f643357b3d82c017345a6621f891aa4c102205d81fc53992c28a222ac3e2a0772203226c4cd013e1e14ba2de17f2f51209e28","0xf418588522d5dd018b425E472991E52EBBeEEEEE",!1,!1,null,null],["ethereum","ethereum_stake","ETHYS",18,"Ethereum Stake","3045022100e33fe93939397a1d1879846cf630c5fad4926a59116aabfdb1a7284be7da07c9022041e91445e27a89087392c3c2409e86fb9d481f1e887939f9aa3cda6b1e75048b","0xD0d3EbCAd6A20ce69BC3Bc0e1ec964075425e533",!1,!1,null,null],["ethereum","ethereum_supreme","ESUPREME",9,"Ethereum Supreme","304402207740cb615c5bc6ff130df74fafdc7ff086c6fe643a0536b7da78c1da8ce6da230220271077d064cb6f571c481f109ba2623de83a8c03d433c994d43a5e9dfab95493","0x1EBe1E64Dd249C6fDb600d05A927a7D26A4A895f",!1,!0,null,null],["ethereum","ethereum_vault","ETHV",18,"Ethereum Vault","304402205898be296d6276a80234cf21f8974b7a279a5d17527da8160f1a0d9be9468d8102205c53450706682cbd6698dba3092cc0325dfe062b81dad822443514550b5a015f","0x058349297672B6cC7cCb6E59A679c5ADd74a6898",!0,!0,null,null],["ethereum","ethereum_vault_","EVAULT",18,"Ethereum Vault","3045022100e43d070fe1e46646dab12eeb09917dbfdd266f15988421cfadbbb37525289bc702200725a99bcde702860472c9f7b78648252e0c5f5bd6a536d09e0025d537c0ea5c","0x1D15a70f1c8C2A9938ba8036f5a46021146D8C15",!0,!0,null,null],["ethereum","ethereum_yield","ETHY",18,"Ethereum Yield","304402204ac63de7a5ee30b6eb4fd4313c179747c9b16ab03f7362ed81f98dfd1418b8f6022068244c8da17c904396f27a20cd769cb2dc383c5006c8a580c556ac04ab01bfef","0xd1AFBCCC9A2c2187ea544363B986EA0AB6EF08B5",!1,!1,null,null],["ethereum","ethereumbitcoin","BTCE",8,"EthereumBitcoin","30440220596e20a5839b34de8da2517164bcf6d12b6cea7c0fc36b52b406bfae3aa2893a0220077a61d7de22d9f3e60c54e5738a16ecfdfc081e6e113ba4cec479c45f79df88","0x0886949c1b8C412860c4264Ceb8083d1365e86CF",!1,!1,null,null],["ethereum","ethereumcash","ECASH",18,"ethereumcash","3045022100e8e4fc7044084a67179641bc9653383216b6830acf4cbc0232b90f37c22dbc72022073aabc9292bafbe90dd0dd7a9f5a396ca5a0a0bd51cc170bac5f027e73e48ed9","0x5D21eF5f25a985380B65c8e943A0082fEDa0Db84",!0,!1,null,null],["ethereum","ethereumhigh","HIG",18,"ethereumhigh ","3045022100dde45670552615d92fa9433b71dc0ebbdd42678ca4a7b16a9d1ee50be1eb68a602206d8d36c417a7180ae60ac513bded1f0cfe9ab41049903080ee7561b3033c8522","0xa9240fBCAC1F0b9A6aDfB04a53c8E3B0cC1D1444",!1,!1,null,null],["ethereum","ethereummax","EMAX",18,"EthereumMax","3044022003070be2117ce2df6100126362a4103679ac492da0b3e80a4ceede13b1b89f4b022007ec389ed00d109659f085bd63144165bcfd9cb0e0307cb5b0d6fb3813c552b1","0x15874d65e649880c2614e7a480cb7c9A55787FF6",!1,!1,null,null],["ethereum","ethereumpay","EPAY",18,"EthereumPay","3045022100ea4ed7feddb082863454630d855f5e1521675f695f7b8e516dab07e6f776b16002206597021a0010877c3c0255a4d6fe37f56c9aa4348f409a6a94d39873761664bd","0x2b5cA2F9510cf1e3595Ff219f24D75D4244585EA",!1,!1,null,null],["ethereum","ethereumsc","ETHSC",18,"Ethereumsc","3045022100d6b6614e2ced6cfc06af518b2a069997db9046663f3c306843bf28efb7c3440502206d235df88fa6c4e92f0e428fd44d0fadaa6425b31106177e1261c5ff5b2fa619","0xCfD069247Bd5F01a17F1cA76424c9E424256908D",!1,!1,null,null],["ethereum","etheriya","RIYA",8,"Etheriya","304402203076a4f30225261a03ea14443063e72d5d9b091b216c3814e0699601f4bce1990220116888f11f07240669c77b2cd4b9a0ecd603bdc1842fd7d1185ece5cf23b46a3","0x0b1724cc9FDA0186911EF6a75949e9c0d3F0f2F3",!1,!1,null,null],["ethereum","etherland","ELAND",18,"Etherland","304402205727e45b04c622368d1ebc817c63d59a12b20619aa6b63860d8c8463f3494d0602203abff91e77672ca652120d0939ecb5bd7d9923219bf34977de8f3008d29f822f","0x33E07f5055173cF8FeBedE8B21B12D1e2b523205",!1,!1,null,null],["ethereum","ethermontoken","EMON",18,"EthermonToken","304402200884ec85ac4f11cb22918e0ffb4bdd2e5c917a9338090731ccc8dd2e5429e57202200e0d505ee6531497061a541fca77b11c9700605371375d79af87bf2f38d01c20","0xd6A5aB46ead26f49b03bBB1F9EB1Ad5c1767974a",!1,!1,null,null],["ethereum","ethernet_cash","ENC",18,"Ethernet.Cash","3044022023eb55973dc06fc5e0f83978d8fb1ee3193809b5035b17be591056ca7de341d602203d4c6150001c6b96394a6737facd32fec38a1d6bb63f24c841f09cb69805e8a8","0x039F5050dE4908f9b5ddF40A4F3Aa3f329086387",!1,!1,null,null],["ethereum","ethernitychain_ern_token","ERN",18,"EthernityChain ERN Token","3044022043bcf6c47e0a776f069705f35947f97374cb87470da882fda136b5a87316e91a02207cf3890c16369a47900cd9b4261f0b682ac6109bda41e66b2cea1ad440f8053b","0xBBc2AE13b23d715c30720F079fcd9B4a74093505",!1,!1,null,null],["ethereum","etheroll","DICE",16,"Etheroll","3045022100b16de2e476ed26b7ace0d461207c08627daa9e085dcfbecce77ab58036b598660220168660023395eef95c5aedc3e917ea79af27ec2779c3759f260bf0a0b987afa1","0x2e071D2966Aa7D8dECB1005885bA1977D6038A65",!1,!1,null,null],["ethereum","etherparty_fuel","FUEL",18,"Etherparty FUEL","30440220412d33aec579113984c77739da107c6c5266019b7489a3fe0db0c2834cdec38b02204b3a02763e3bf6b77e8b6b0132df7ac98530ce1fd64557b5c04f7064e493d4bd","0xEA38eAa3C86c8F9B751533Ba2E562deb9acDED40",!1,!1,null,null],["ethereum","etherpay","ETHPY",18,"EtherPay","3044022006e1bcf2b5ec86cba402d5a7757f4f145a74c80518381ad50e6477f83b47fff7022075ecd6dfd7b5658fc1def6cacf43b0cd366119c4088f8fb5654d4a54d3637996","0x601938988f0FDd937373Ea185c33751462B1d194",!1,!1,null,null],["ethereum","etherrock_72","PEBBLE",18,"Etherrock 72","30450221009e31aea1e1b7689b306fae67d90d8dd4b4aa4e71a358ba431597dca0f1dc244f02204a32c7652b25fd9f7c563c15e580f111151e353cc2e2a76a1300726f4817ab8c","0xDC98c5543F3004DEBfaad8966ec403093D0aa4A8",!1,!1,null,null],["ethereum","ethersmart","ETM",18,"ethersmart","3044022020c833d27f7a8951f8304c83500893769395f5347e5c237a95b8cea4e73b45be02206c8806f5532a53816a63ec15dbd523e3d49b78fbd3230e744a1604323c7b7b31","0xF3eb8B90C763b8B2B53E7819ac27eca8f94C8Ec2",!0,!1,null,null],["ethereum","ethersocks","SOX",18,"Ethersocks","30450221008b36aec6204496444bc0f29e843a0d27bcfed1c49087c1f5b87525004adf6977022058be039b855786bcd5e83913e82052c1e5083a04f64e497cc12604620e61434a","0x300a902513815028e97FC79E92082Ce6a98d3b74",!1,!1,null,null],["ethereum","etheruem_risen","ETR",18,"Etheruem Risen","3045022100d679d6663c90116e5c3cc93546014ab34fa8e2930c474c6ae6ff6952ef48aa02022045a66d0d40adc2a646c47ee9715169210302594a1db2c07dc68d16a38c29ea64","0x6927C69fb4daf2043fbB1Cb7b86c5661416bea29",!1,!1,null,null],["ethereum","ethfinex_nectar_token","NEC",18,"Ethfinex Nectar Token","3045022100ebbaa2a43dbdee6988133dec5528b65020f7e6c5bdee2747dacd240eec0fbb6002207be9aa7a1b10889167ebb735de654e64892245b2254e71683da077d2b2cdc7ec","0xCc80C051057B774cD75067Dc48f8987C4Eb97A5e",!0,!1,null,null],["ethereum","ethhedge","ETHHEDGE",18,"ETHHEDGE","304402205f022db7f39a843ccd8bd9d5a031443dde00608ae37b2590d176ad225413e5900220370625b5f66211ad751e7ea026f97e73b59466c0b09795774c11a0fa6e5b4182","0x10e1E953DDBa597011f8bFA806aB0cC3415a622b",!0,!0,null,null],["ethereum","ethix","ETHIX",18,"Ethix","3045022100aaf6117ea48fca982c972cd4fd7ee0d524579e7ffa0393388b4fa26f29884fb002207344ffc71e36f49c47f345ad21c5a34938bb10c6e3f11d7cbf626dd7786e0b32","0xFd09911130e6930Bf87F2B0554c44F400bD80D3e",!1,!1,null,null],["ethereum","ethlink_pa_candlestick_set","LINKETHPA",18,"ETHLINK PA Candlestick Set","3045022100814bee410754647f74e91b6747cc042a72ba24cc082e775ba6f66c4638c9d907022025fa1c260acc2ffcc724a960fed5c84ee3a859c6c2133a99273b207229ec76b3","0x542156d51D10Db5acCB99f9Db7e7C91B74E80a2c",!1,!1,null,null],["ethereum","ethopt_io","OPT",18,"ethopt.io","3045022100ebe541efc6c60b2340bfed810963fc880e5f8346a9df560ad6d11862201253f602202d7e0fde2d45d623e12751098aa53d4b2e098e2f5b090a99b7326a87b7a215c2","0x7D25d9f10Cd224EcCe0Bc824A2eC800Db81C01d7",!1,!1,null,null],["ethereum","ethos","ETHOS",8,"Voyager","3045022100ee910ea7eee7b837358c2a610c36a04e7ee8d2e6f730fe13c19225a6cb74bebd022077121a5b05b180ae9f240a604e480366b6829e3dcf51ef5b42b1264b9f9b0548","0x5Af2Be193a6ABCa9c8817001F45744777Db30756",!1,!1,null,null],["ethereum","ethpad_network","ETHPAD",18,"ETHPAD.network","30450221009a8904187c6556659efd33c6b27e6f5eb015ee3fa3e1c9e37bff861e403e49bd022036a97b45a024f7689399a37c0ad597de4d9ba96b8e95ffb332c10678557e50ba","0x8dB1D28Ee0d822367aF8d220C0dc7cB6fe9DC442",!1,!1,null,null],["ethereum","ethplode","ETHPLO",6,"ETHplode","3045022100b9924cfa0847569ee95ed03742db0cfd3bd9d816ae544ace57185eb3f1d7b34002200d069059950f92f620442122eb6d7a5515668ff4cf937a2b7cf995b37f36b99e","0xe0c6CE3e73029F201e5C0Bedb97F67572A93711C",!1,!1,null,null],["ethereum","ethplus","ETHP",18,"ETHPlus","304402205612a8239a2ae3d64b6c054d0c00e2a3b892022ec1be0f89f09a8a4213f68abc022022e4fcef38992c1cf3011f6018a4793a8ce6e5df23a532be4f61dbf5717d5fd5","0xEED736b2b809550D89A941C2005dE93588c628e2",!1,!1,null,null],["ethereum","ethpoker_io_epx","EPX",4,"ethPoker.io EPX","304502210087b21e661e936220bdba13dcd6d50c0e75d86660c602aff387fa32eb3a0bcbfc0220273f06fc5f36731bc3fa3346ab513b87d1d9452ca4a347a7985b7b3e9c79fd3b","0x35BAA72038F127f9f8C8f9B491049f64f377914d",!1,!1,null,null],["ethereum","ethusd_adl_4h_set","ETHUSDADL",18,"ETHUSD ADL 4H Set","3045022100bd27a2100640cb78b4eb89c3847b713f2f21da007e8fc89bc81eb05fbf41b090022015e5d8fd1b2ed1f939b5e1eb57072fc9920ab32293c27e908b626a2ec15f587d","0xB8243B4eeca27A4191e879760b88fE2270561796",!1,!0,null,null],["ethereum","ethverse_token","ETHV",18,"Ethverse Token","30450221008cea65a383540611e36088ac1a74086f28784f0416ad8ff0d86e8c5e7656b9e7022067c01e6edeffc86a1de1083e7785c5c9f2816636d4a0175e91d32a5a2a3edb65","0xEeEeeeeEe2aF8D0e1940679860398308e0eF24d6",!0,!1,null,null],["ethereum","etor","ETOR",18,"ETOR","3045022100979c1cd9b04bc47fb61774568ae27cff1c2366553092f5ccead3bb7d29e4735e0220376602eefa63629b8b8f3419ea14eba3b736659ee5285522b1338517968c0aa5","0x32163C2d2d313c73279E87398E7F84BB9F537E9D",!1,!1,null,null],["ethereum","etoro_euro","EURX",18,"eToro Euro","3045022100f8c7b97e872bc6e464f244345ffe90a507a161fcb76490d7e46624df289c8f570220106067c8dda9fb3fe024abcdae8183c3945e8a3c3f0eae64348b73ae9e206471","0x05Ac103f68e05da35E78f6165b9082432FE64B58",!1,!1,null,null],["ethereum","etrade_token","ETT",18,"ETRADE TOKEN","304402203001f600ab9adf71af143250a5cac1e5372db075186c4b67c1dfbe6ca4db87400220134bd30909adb8da98150f3d7a337ee4d0d6ca375c26de78281fdc67d70b5eea","0x952B65D976E8669c4cE92a17CcE5B2586912Adb5",!0,!1,null,null],["ethereum","eub_chain","EUBC",8,"EUB Chain","3045022100fd39ce2caf865dd69f6544b5a8883400090eba6996fae32a17abbcf63259e93a022022b35fd9b1af4f001e3fcdac6c0abdfdfc5a8bded782e6c7adcb25c08a58cb51","0xc37E8a31BA2d110c12f09f0239954A68b00bC599",!1,!1,null,null],["ethereum","euler","EUL",18,"Euler","3045022100d65d5add89ce5c56d274373487276c4a49c75f06eba4e1191c58058c7386c6f10220435cd2a606e81a3d05899b227744c13539a36199f10ebda7f27a58af3b19572e","0xd9Fcd98c322942075A5C3860693e9f4f03AAE07b",!1,!1,null,null],["ethereum","eur+_dukascash","EUR+",2,"EUR+ Dukascash","304502210096f336b8e9b882e1bd4411fcea043dba06ce2d4e799c388a721c60898c925358022021e9b26d9d1b7f6b0e695a62ccd54ea57b47aa984c8b4fc6f837119c4856cab5","0x57daE83653Dd99E876ff1f11B970c686b90A9A2e",!0,!0,null,null],["ethereum","eur_tether__erc20_","EURT",6,"EUR Tether (erc20)","3044022077361abd4f4fc21af860838a3988b8e4e1210539ca9f2fb06064ddbc38b4aba5022054b981ae9aeed06a7dea9b709ea321beb2c8c3ca98141ba2ec685aaae4e67b6a","0xAbdf147870235FcFC34153828c769A70B3FAe01F",!1,!1,null,null],["ethereum","eurbase_stablecoin","EBASE",18,"EURBASE Stablecoin","3044022028fe7279da1ee1f5ed47e93685611c92cf68e0d9a3b8f2619d189d307555761d0220394531ee98855bc70f3e0aa5f18b161a83fe747e1b80895aadb603de738d8961","0x86FADb80d8D2cff3C3680819E4da99C10232Ba0F",!0,!1,null,null],["ethereum","eurbase_stablecoin_v2","EBASE",18,"EURBASE Stablecoin V2","3045022100fbdd26b9ab9bb682ae0daccfb8e5e0fefffa3b5244f36c5984c7b05e9023fe9602200f587d90dfe565231fefd22fcaa6198a28959f798da4073bd7e496c96a4eb18c","0xa689DCEA8f7ad59fb213be4bc624ba5500458dC6",!1,!1,null,null],["ethereum","euro_coin","EUROC",6,"Euro Coin","3045022100faac00b88f0fb25dcd2b62ebf4baa3c380664a4c74e5ad1f8389c6955e327cfa022047cf30ae9d4f1768e243e469c523b1a1dd397a8415edf8b36c807809d8457dce","0x1aBaEA1f7C830bD89Acc67eC4af516284b1bC33c",!1,!1,null,null],["ethereum","euro_stable_token","EURST",18,"EURO Stable Token","3045022100f7b5aae5c1fc3d0867fb99361bb93078fdc3167c570050dae6bd392ebef3543a022003d223b53379a6ed78d62ea5fab34ae21f4c00dec486a700005915f9768a5a80","0xB1aBd7ABa7d99BBEfb33D1dfc66B0dD522335350",!1,!1,null,null],["ethereum","euro_tether","EURT",6,"Euro Tether","3045022100eb44272bf38fc04542eefa632280fa7c5ec65d5a9fb5c89b432dd3f3139d883c02207c3f87988aafb1bfb3219bc89ed3329198e17d2491f53d0a736ddb333d6f90cb","0xC581b735A1688071A1746c968e0798D642EDE491",!0,!0,null,null],["ethereum","eurocointoken","ECTE",18,"EurocoinToken","3045022100d0ead678e7c9bed1d267ace12eaff0159e78ebd484b83dbb4f4474243a72599a02205edaf013cf2fbd8f24a62189faa3f45cb938df797f2d1db9b234012ae91af3bc","0xe9fa21E671BcfB04E6868784b89C19d5aa2424Ea",!1,!1,null,null],["ethereum","europechain","EUP",18,"EuropeChain","304402206f9449e2e1f83e3c95e84d59ab86bb70885a2af1ae4f7e90bc1a2e5d9107a837022018e8af15f96b0d52f518ace77b1ff0aa5d8e93346e37029aac37130b3535182f","0xe532a2A37b0707b4306B21B412D2E8C22f9824Ec",!1,!1,null,null],["ethereum","eurxb","EURXB",18,"EURxb","304402203f32139212164aeb188cb3141f65676e47ee3cf8ebfd3ec76378479a562b8f780220770b333a6cf5bf0a673319c3eb9994c5ca8296964e4b53b72125504fce5f449a","0x0beAD9a1bcc1b84D06E3f2df67E3549Fd55aB054",!1,!1,null,null],["ethereum","eva","EVA",9,"EVA","3045022100929fb8309a42f79ab4ea032f58e0a2ddaa62071d187e38f878c8b1fbfeba4fac02204c2e6c79936614fc509249d6aa951e0c56261c4416dff63740efc06b8bb32faf","0x70126bd012e39038792366C9115BB64407D5cBe1",!0,!1,null,null],["ethereum","evacash","EVC",6,"EvaCash","3045022100efb844b11e7b7665f8047acb3b92577401a204458fa43ed08603ea0f21a742d702200b6d96227994ae66bbbe0a58747c26370d7876b796ea5ebdd63127ddd5ebcde7","0xBA14b245d449965BdBeB630ebe135B569474F5b1",!0,!1,null,null],["ethereum","evai","EV",8,"EVAI","3045022100cb1e280aebc5b1d78f1897ae6bc3c5d5b1faffb24f446cd398f79fc6e055e95b0220661831ca26ff64413959b2e1bdbc651b50b1e4380317a030b14d9d7a0b477fda","0x8BD135bb2543955045Ca8859C05033d07636D963",!1,!1,null,null],["ethereum","evai_io","EVAI",8,"EVAI.IO","3045022100ab1e6e1613e409af9500d2f3ff651816a4ea43267f642f133a93e3a31242ab1d022026de8251a5543afea7fc779b4bf9b80c5d5ce25bebff1db6005565c153ebbc38","0x50f09629d0afDF40398a3F317cc676cA9132055c",!1,!1,null,null],["ethereum","evan","EVAN",18,"EVAN","30440220181b4140f7d47e909fa60f21bf2ca077bdfc8db29983a5ec93d6f3a47733e43902203ce4b0448051173bec1662f108c4e1aed4f5fb417bd1740355f5437d18dfb411","0x89E3aC6Dd69C15e9223BE7649025d6F68Dab1d6a",!1,!1,null,null],["ethereum","evanesco_network","EVA",18,"Evanesco Network","304402202dc55986068821d755626d702f692f651c4028f22bffd47afb81637e94af1d5902206ff81742e95a952a6516b1ec97f8e4234590abf6aa77e9b7c49e7fa64dd98a5a","0xd6cAF5Bd23CF057f5FcCCE295Dcc50C01C198707",!0,!1,null,null],["ethereum","eve","EVE",18,"EVE","304402207d3618f21bccdd683c0a3d8684f5ec8db0f2cc3fd18adb770b6225b5d7acca190220237cd937b43c04fe251aaeabb1f7c2f1fc9f435c2b56b81573485447c2fc90f3","0x923108a439C4e8C2315c4f6521E5cE95B44e9B4c",!1,!1,null,null],["ethereum","evedo_token","EVED",18,"Evedo Token","3044022011d9f4d98e35d967a7517ce6d98eea1511f2684289eca6c5da98145cc8c9f555022048546899b32464ff91f539d1ba6d45e56fede123fe19b50ea35c40e8ffae6305","0x5aaEFe84E0fB3DD1f0fCfF6fA7468124986B91bd",!1,!1,null,null],["ethereum","evencoin","EVN",18,"EvenCoin","30450221008347cce16b407233580a59cdd2e755f903096be44d02faed0cda73694b8ab4c0022076254d8d8ab4ee60f3e3cb77eb45c3c97fdd33a47b0b71f8e24337cc81f526c2","0x68909e586eeAC8F47315e84B4c9788DD54Ef65Bb",!0,!1,null,null],["ethereum","eventchain","EVC",18,"EventChain","3045022100c546acba8e7ef9ed3e10fe6bae63aaf21cb3f90406518d44f232d8205f10b706022058ace1778bb282a6a244dc72b44989675143ae3a1a97ad04a588df874e2125da","0xb62d18DeA74045E822352CE4B3EE77319DC5ff2F",!1,!1,null,null],["ethereum","eveotoken","EVEO",18,"EVEOToken","3045022100ddafc7f3e3ab13f0fadd8c4f08fdc6c333933152a5cfa75168e26667fcd82606022075ea02f3dfd423a12506807cdd7ca98a62efd97eac60241b93c7d9eac794801f","0x6b40D317BC1de4b0938519AC707AE36464f49171",!1,!1,null,null],["ethereum","everape","EVERAPE12",9,"EverApe","304402205e0375e791044f645b1a4c9531accb70099c02f9bd8c4d9502270ae64edd9ced022004c77839cd9e0a354b40296f712bb266754d03c8db2eafb16d32b3883e3cdfc8","0x3f9078B8fBCb1C4e03B41fa9e5a0532A28848dB7",!1,!1,null,null],["ethereum","everest_id","ID",18,"Everest ID","304502210093ae66dd85bc1a39fd0f59456bb249824289f574d16568c2b444e65274b8042d02207cab267a31999ab4be00a067a421ce6e0999152661a22818d5a1209afc839e92","0xEBd9D99A3982d547C5Bb4DB7E3b1F9F14b67Eb83",!1,!1,null,null],["ethereum","everipedia_iq","IQ",18,"Everipedia IQ","30450221009bf7c3be886a2efd850229c30387192dfe4577a116dfa7d76f7b62e2e103fff40220644fe7c409dab78d3d7caccecedac2318ea7ce7160e050ecb9115c7923014d50","0x579CEa1889991f68aCc35Ff5c3dd0621fF29b0C9",!1,!1,null,null],["ethereum","everus","EVR",8,"Everus","3044022025fa11c2f537d9502055a3ba3ef123a0d7460f6fe96137646d6b992134a81a6d02205067bc3584621b408009e98da9fefe8d8cb47108409160afdcefe0fb995ce42a","0x3137619705b5fc22a3048989F983905e456b59Ab",!1,!1,null,null],["ethereum","every_game","EGAME",18,"EVERY GAME","304402202b19ea68ea27836098b4d44f5569375672aa3e1290d1da7beaf0902fa5669c4302202aa280e0401b190229fa3cd9d61e5f04386475f8c373b072d58596d6ce2e18b9","0x62d3c05b9C3d916FBC111819bbD3CEE52906C1Ae",!1,!1,null,null],["ethereum","everyape","EVAPE",9,"EveryApe","3045022100a63935b0ba41e1a6d2befcccdc2b5145697ac8b5e0afc1227ea54187aa1ae8cf02201f7b93c1b3ff6c4a525cb2f3ced2b7542627009cb1ff8cdd003984ff23b4d2a3","0x69d1ff85004a445A892dFbD88DF00D48fb0aF638",!1,!1,null,null],["ethereum","everycoin","EVY",12,"EveryCoin","304402203f681a334c3fd5f2e9e1e1d7bfbd08b3be54a2f91dbb26b60a12defe9debe21102207d87f89f2abe19c6b5be44e98292b1151e7b53097f2cdaced65123adc75cc73d","0xEEd3aE7b0F8b5B9BB8C035A9941382B1822671CD",!1,!1,null,null],["ethereum","everyonescrypto","EOC",18,"EVERYONESCRYPTO","30450221009a74eb5fb19bdfdfc9b95db6d6f1b51439081d8283d2034fa1d46c82f520f6d2022013de74fb40a0ee9fcd348597a1dd7f9e80ed4642ee574d983f7671f05a6888cb","0xA8006e3Ac1bD94e54E3136B8e5dD75db0163e6f4",!1,!1,null,null],["ethereum","everyonetoken","EOTO",18,"Everyonetoken","3045022100a46887e2be90a95b8cf74995bd3d4ac1521847d917474c02ef0ddc0e9221384f022063ba8008e382f5f477758744a238655954b1770d99fdf0667febbdc897a9ffc0","0xd3e7e71d20403A6d0bEaD558c0Bf19452A3fD002",!0,!0,null,null],["ethereum","evimeria","EVI",18,"Evimeria","30450221009177600362a27ecc1f451ab231b2f093a6f9e8041df01fecf3e36c48ac7e2ba2022036d286f21adf6b04cbb58c84d7deec9404f4b6e468cc8652cd7df969266c2f2b","0x920DB6C38cF5a2A12554e812D4b3ac2DaA8ebA4D",!1,!1,null,null],["ethereum","evn_token","EVN",18,"Evn Token","3045022100ee80e9c5f0f80e9941a3101a66aefe0a470186f61c343c9d25e457e5b412e3ce02206c18b61302b16f5b58763df19c099e29b75bff58e0f65dbfb6aab3a4a8166cd2","0x9aF15D7B8776fa296019979E70a5BE53c714A7ec",!0,!1,null,null],["ethereum","evny_token","EVNY",18,"EVNY Token","3045022100e2588bf58e9b5587f54c36da57375fcc45b975316ec98b3889ac4b4ed66761930220333216485cb25fe17a20c2144cc7c60eb753d204e29557c278baaef617151be1","0x9A24B8E8A6D4563c575A707b1275381119298E60",!1,!1,null,null],["ethereum","evolution","EVO",18,"Evolution","3045022100dee75784c8bb448aa96680693f8e49774e0e87e0fcf509d0a88d7417ac8686f3022053702c3987f6d71a46f15f0a88e67af5b3b87d4ea04f3c759d65af1a48b5e287","0xefBd6D7deF37ffae990503EcdB1291B2f7E38788",!0,!1,null,null],["ethereum","evolution_land_global_token","RING",18,"Darwinia Network Native Token","3044022047661c15a2d5b07377890c273408a3ea7de0c3bd325e913b888a035e4988fcdd02204934901a7dc60f8236c640b733eed4e8a574a686eb1c901bba644226ee1d23dd","0x9469D013805bFfB7D3DEBe5E7839237e535ec483",!1,!1,null,null],["ethereum","evx_token","EVX",4,"EVX Token","3045022100b58c9c6434f580b62c96dd87a66f82ea6e480778db415f27834aeb0b9801e53802204e07175c86202e60a7b89764cac7696618b7e912d913951e3e1330fe2bcf0e9b","0xf3Db5Fa2C66B7aF3Eb0C0b782510816cbe4813b8",!1,!1,null,null],["ethereum","evz","EVZ",18,"EVZ","3045022100a3d4120550d6d7c27e9d8a7a0170895e7d46124f2bc8b87e05fd6377379d0bb002201e6699dada8620dd664f2435bbf9f8f0f33e8243cb68ca591867381355f23b76","0x7A939Bb714fd2A48EbeB1E495AA9aaa74BA9fA68",!1,!1,null,null],["ethereum","ewit","EWIT",9,"eWit","3045022100fb57075969f2baf66b5716d1f02a3307626b4007e0d4408297b04dc12070ea9502200f297269e89b4f84575ed6c1443ecb696ba34b788a84b62b1c4025936406a3a4","0x56EE175FE37CD461486cE3c3166e0CaFCcd9843f",!1,!1,null,null],["ethereum","ewo_token","EWO",18,"EWO Token","304502210081ca272b869c09da387e617f9e2fc0a798f547d6a98f6dcccf19c243b9c858ba0220141d29790479a20a85482f2b829df4da345aecebb13428656f4fda0e72c605af","0x444997b7e7fC830E20089afea3078cd518fCF2A2",!1,!1,null,null],["ethereum","exchage_payment_coin","EXP",18,"Exchage Payment Coin","30440220368688164199a967aeb40aaa50d6b811fa59852e11eb6825f61d04c7dd71362f022073ce1ea53112b0bb14cb24d792a87e1eadf3bddf19ed68cb16b34527ddc88f37","0x5330A5805b9Db68EbCF5247BbC9097163c1c2442",!1,!1,null,null],["ethereum","exchbear","EXCHBEAR",18,"EXCHBEAR","3045022100d7b188078113367bd679975304c0a2950bd4f320145c28166337581de5799863022060f940841ed873dd41242f752a28686fb8e554b3b5043632cc003703c3877e4a","0x6baA91cd8AA07431760EF2eedFedCEF662A6B8B3",!0,!0,null,null],["ethereum","exchbull","EXCHBULL",18,"EXCHBULL","30440220771e37aba87d35ebdf400b6d596c5f6f68309e3dfe38a42bf1f4b2c492485ab90220286a197c86a93c32f5c385bf797cf83bef7862b07f1a6007d4d749a5e4202ed4","0x592ef68C18F05A22C5890263DEa5D952dd140d2A",!0,!0,null,null],["ethereum","exchhedge","EXCHHEDGE",18,"EXCHHEDGE","304402204296a184efc4a223cd81f06afaf928c19b971cae0874ae2e2fbf25908e832e24022049337dffc6b9f03816db5ee8eba527ac07a0dc986937dc5a00f4ecb895ddb834","0xf8CC67e304f8e1A351ED83b4DBBe6B4076d51376",!0,!0,null,null],["ethereum","exciting_japan_coin","XJP",18,"Exciting Japan Coin","30440220467d1dde582382900a52258e7267bea2291bee74333118810abcfda3656b375e022067ea2d858ba309b231101b3e257c7e7b3a3112d82b690550186ba4fe5103d744","0x604026696fDB3C6720AE3049C46d59AC604dEA0A",!1,!1,null,null],["ethereum","excoin_cash","EXC",18,"EXCOIN CASH ","304502210096e52b08789346d53e5ce689a1c88ce7f1cd1811563cabc15b4f19fe5ab5839902207b500bc66bdd6d5d0ff49cfaf20425302481098446e24e218551cede698abbd0","0x9e4C143Bfe35f855624B3F84465AB7401A17A120",!0,!1,null,null],["ethereum","exeedme","XED",18,"Exeedme","3045022100f9209c435ce05829d27cdd9125eee6ad272ccdc96196b3855968f00df82f1dec022004b9d51817fced38970e5e9752c19febfe7d7ba1c2f1f32cc050925e23db5093","0xee573a945B01B788B9287CE062A0CFC15bE9fd86",!1,!1,null,null],["ethereum","exgold","EXG",6,"Exgold","3044022076d7ff8674537dde608b8bb87015c589b4d44bf87a952cbdadf979625750d6cf0220078b6358d47fe1fe9a07ba25ce801d3e4dbf82e53a386f9b965191542907409d","0x2a1174d1Cd4348Cb1EAeC3f00310908ca289E5be",!1,!1,null,null],["ethereum","eximchain_token","EXC",18,"Eximchain Token","3045022100a95a357beadc8084d989e9d1f9ae353583d7317ef6d3e5ed46dc9bc6b0872ee5022048aaf2cedc6d57ab2d22568de9e9435ca1971d71d1ac941f3dc2b51524b269f7","0x00c4B398500645eb5dA00a1a379a88B11683ba01",!1,!1,null,null],["ethereum","exmocoin","EXM",8,"EXMOCoin","304402202e843cad386a0bbefe6af33c6f0546308ab7b98987d608691fa98b880700b0d102200a656e717edeb7d48d16f17f477e3d8f37697bda7da85dcd80724f891f751583","0x83869DE76B9Ad8125e22b857f519F001588c0f62",!1,!1,null,null],["ethereum","exmr_fdn_","EXMR",18,"EXMR FDN.","30450221008471cedd70fb2b850def28282a2ca0185f5cdcd3d8605fbbd292a3b86b3cbc4a02204a7dc1f36d699d4440088dcbc0e14e42da5e2888f3d7528e1a577e220c912492","0x331fA6C97c64e47475164b9fC8143b533c5eF529",!1,!1,null,null],["ethereum","exmrcoin","EXMR",8,"eXMRcoin","304402204a35ec588217e89321f3bf63add6972c461b9792b6565d82e250a0ff5e97f13b022036cc7cc6884dff542b095069f6cafbf3163a10e656289fc594f13337a6fb4c7c","0xc98e0639c6d2EC037A615341c369666B110e80E5",!0,!0,null,null],["ethereum","exn","EXN",18,"EXN","304402205bd714028eecbea3f8be2e5ec6cf8f1b6df5ec616e506f89054cf0d09f02f031022048202b59586392a96bd0af0711a4036bada7bef313cc96138d66986599b506f7","0x0766e79A6fD74469733e8330b3b461C0320fF059",!1,!1,null,null],["ethereum","exnce","XNC",8,"EXNCE","3045022100b544af2382fc0a51eb4d113609d600d37900e6a4df2d62fc4768169328493aa8022079eae4d66ad2abb0b3896427708787970ddcf5a6e7320349bad7fa4eeebe3e90","0x8317b216D7c3F9a5B8401E4b6814D13A7BE390ec",!1,!1,null,null],["ethereum","exnetwork_community_token","EXNT",16,"ExNetwork Community Token","3045022100dff8c281d942a4a35976ed35914f0775d2db400b55603defea63bd30ac11ed540220558edfb83b501158653f409e2a082d77b2fd34777a890699cb56df0d3861afc0","0xD6c67B93a7b248dF608a653d82a100556144c5DA",!1,!1,null,null],["ethereum","experty","EXY",18,"Experty","304402207768f8121d4c248b60c31c01099a153f5679b7e68db7142c1f72c368c24b34de0220784dbcc595e0fd9db3c6a2cc89dc79db97a046d891f4a70da01ea995bc712b63","0x5c743a35E903F6c584514ec617ACEe0611Cf44f3",!1,!1,null,null],["ethereum","experty_wisdom_token","WIS",18,"Experty Wisdom Token","3045022100a59bfd8d16c164907291ba23864a9efd608741b51c55eaa736ca29dcc9030dbb02201079878132085bd97bf08a23a3d6c4517eb71444975d7c980b551aaec6ffe69a","0xDecade1c6Bf2cD9fb89aFad73e4a519C867adcF5",!1,!1,null,null],["ethereum","exrp_network","EXRN",0,"EXRP Network","3045022100fdacd405b5c0e954925d0b258e3f14649bb661cacd0f867df5fa06ed1ac2b28b02203dd8adb45ee6d949f30a98a40d3dfd26013175b816aa0aa0bd0b05fc122ff9f7","0xe469c4473af82217B30CF17b10BcDb6C8c796e75",!1,!1,null,null],["ethereum","exrt","EXRT",8,"EXRT","3045022100b02c6435d90bfb06ebb339ed4d08271b83fc22a6c34fddac4aa6afb202c057f102200a05739a5499e2f361688b4ca1f7022c17959e430ae425c30049b0742eebccbc","0xb20043F149817bff5322F1b928e89aBFC65A9925",!0,!1,null,null],["ethereum","eyes_protocol","EYES",18,"EYES Protocol","304402204b9fc1e2571d20bae659e1c92e8dcae97ad4b2d5e006b42be243205923ae5fc2022006cb777610c84c6d7bd75efb2a9d2bb12cef09dedddda2b65c67fb82922d871b","0x2DCA19E944453e46d9130950Ca135461b3Bc0c30",!1,!1,null,null],["ethereum","ezdex","EZX",18,"EZDEX","3044022000b2b003def1369cb36371159cb3fc11aa69fd93c12d4df1c18a0ad3438183f102206e4750748fc81175f72b9332efc9b3a8fc7cd4b79c205865d1c8b18f21007dd8","0x9E8bfE46f9Af27c5Ea5C9C72b86D71bb86953A0c",!1,!1,null,null],["ethereum","eztoken","EZT",8,"EZToken","304402205377af28a5c9ef231cdb10ae8699147093eeec5d4d4551417f5b268f0112c7d0022046afd54c6efed66800a1f44ab26878199c95cb73a169f3eb4cfce48925fd9b34","0x5e6016Ae7d7C49d347dcF834860B9f3Ee282812b",!1,!1,null,null],["ethereum","ezystayz_token","EZY",8,"EZYSTAYZ TOKEN","304502210095d91b9ec465b050804c247ca3b7de29fa55c6d303e8cd2eeda17337cc009e1402203c9e0c8d75a90a7ff25c1431eae0a12672e9efee925a8974753828b3a235e2d0","0xA6D5C720a9af5A405dFB6b9F44Fc44FaB5D4A58D",!1,!1,null,null],["ethereum","fabric_token","FT",18,"Fabric token","3045022100c758ddb63d8cd923e2c1f044c7e4253a0507dc9495205d8026a23d2d7076ae95022017be3f62351db4699a7ce5c5485cebb5e771d1b261984b2ba066bba9972c63dd","0x78a73B6CBc5D183CE56e786f6e905CaDEC63547B",!1,!1,null,null],["ethereum","faceter","FACE",18,"Faceter","3045022100bbc6f2017b91bb3603a920b18f22974b8fac51808da3a989bd4e4f35ff4c43be0220243e03acc8d900f025d33fa00414e6a7023a6c95d902fc3e4fc88cfa4eb6baba","0x1CCAA0F2a7210d76E1fDec740d5F323E2E1b1672",!1,!1,null,null],["ethereum","fair_token","FAIR",18,"Fair Token","30440220183ad3fa5ab476a25bcce5c3fc7d1a77643106e770e3f41f35049dd19d68b68002201f79ad7a46ccdd1c1d8301f8c838b418481a19a571b2264bbd2ef63e4acc9e8f","0x9B20DaBcec77f6289113E61893F7BEeFAEB1990a",!1,!1,null,null],["ethereum","fairum_community","FAI",18,"Fairum Community","30450221008c775bf7d77fc16ee3a25e4bb7ce99b0b61b86898d01b447dc38628951e761f802200ec01aa8462d9697be5084f69ade2a85bd7c8a9aef1243da7b359b333123fab2","0xCda2f16C6Aa895D533506B426AFF827b709c87F5",!1,!1,null,null],["ethereum","faithcoin","FAITH",8,"FaithCoin","3044022068adcaf0d2c08191c2ade7cc8eaad0144b68bd9cc1772cce1ea9972c1af29ed302204efbd0487d301e08edf7df6552afa0a3010f9fb821186edde373661c10f8bea3","0xE531642e9bb5d027E9C20E03284287B97919a9a5",!1,!1,null,null],["ethereum","falcon","FNT",6,"Falcon","304402203b21b8a5a2d3a2651965a28b2af1e5776e1632c9a4a5ddc0f53591f30072329702202754bad27a8906b0276ab124759baeaa80b89f72397579591d7c69514bf6d6b1","0xDc5864eDe28BD4405aa04d93E05A0531797D9D59",!0,!0,null,null],["ethereum","falcon_9","F9",9,"Falcon 9","304402203a893b1a4dbcee127cb684dc857fece94b11fa8cd2388f9b44b191caa82d209c022038c4aad5deae0a8106920061860b04404a8bfa155aa08919930eb01870ea7794","0x38A94e92A19E970c144DEd0B2DD47278CA11CC1F",!1,!1,null,null],["ethereum","falconswap_token","FSW",18,"FalconSwap Token","30440220538d327603e0a5e5a1f808b2c096cc9f881420aac4d91110fedf71b688ca6b5102203c19e32271e1c5ebbe38d287b381c6a5f0e06c0f189bde9145aace63b63cfd3c","0xfffffffFf15AbF397dA76f1dcc1A1604F45126DB",!1,!1,null,null],["ethereum","fam","FAM",12,"FAM","3044022015b1835a3c2f7dfd3efa313a2c1c7815925d26b19c7d45a6074ea3902118abea02207badcd51b120685b3efd4f4a35093e2ee0689b89f9c87265930836802b0ee6ac","0x190e569bE071F40c704e15825F285481CB74B6cC",!0,!0,null,null],["ethereum","famous_coin","FAMOUS",18,"Famous Coin","30440220017bbc4744dfb29a85e510824fdb4f09085b54aa61b23390f6adf6394af17e8202206da39c03a793a6d5fdaca52ae2c10db5651dc6068c1d7df108fe4f6fc4c62195","0x4838903d6319E483AB82Ae3f09A1Ec36489A4193",!1,!1,null,null],["ethereum","fan_token","FAN",18,"Fan Token","3045022100a7a68718aa65a1139183b3bfb1e5e2229e7c2f799adce65f2a51a13a9d008f8502202030e7b9424d8efcf087dbfb42c1fe49dfb0b596f30f534e692ae59b2cf3b919","0x90162f41886c0946D09999736f1C15c8a105A421",!1,!1,null,null],["ethereum","fanbi_token","FBT",6,"FANBI TOKEN","3045022100fcd93ad7ba01971d6e3652d5ea879014ef6d27cd41774241b6d03be2b79ca58702202a752b1b697c01ffefb0b9595ee30b6668072c9bd0b7a7c90d238977daeeaf12","0x7a9716685F852ee268Feb86Dffa562D214cC13dB",!1,!1,null,null],["ethereum","fancy_games","FNC",18,"Fancy Games","3045022100e4c9036d3f10cd1f926f0277fea0c8c230517d0e5b7cc672e73e22b30895272c02204c9d686efb63c1fcf7d549b312980be72d57d00763668a85f99648a278c98dbe","0x7f280daC515121DcdA3EaC69eB4C13a52392CACE",!1,!1,null,null],["ethereum","fans_unique","FANS",18,"FANS.UNIQUE","3044022042cb1a4c01f1d517e6fce99354b413dbb330f0e914be430e45717ef53ffba89f022008dea581d8eb379a90c49e98db023113acfb1afc18506bd2bf8653f22cfb66a6","0xd33D0EB1c0c0295c3A2409a9101dd511823Bf217",!1,!1,null,null],["ethereum","fanship","XFS",8,"Fanship","304402201a39221bb5ea678f1d8b08e5668e4d9b4c9936f79117eecbd905871fce3abf2202207b7d4ed8d2bd5dc67dccae60e0e8395fddcc748884a97bb357bc798c820ceffb","0x16aF5bfb4Ae7E475b9aDC3Bf5Cb2f1E6a50d7940",!1,!1,null,null],["ethereum","fantasy_sports","DFS",18,"Fantasy Sports","3045022100a2629ffc130b489a34853ef759eec7499195fa1672997340817a38db3773e5bd022009f6df848b880b6de1be281184aa7ba8dd04d3fcebd77cc299b42b7e49cc2ca7","0xcec38306558a31cdbb2a9d6285947C5b44A24f3e",!1,!1,null,null],["ethereum","fantasy_world_gold","FWG",9,"Fantasy World Gold","304402202e50e64ff70384446d2ff91bd89bf60381d2e017880dd0773828f917918a5ede022041ce759a451f731d90dba852b37c120e7f4bfe15ac84c35398d5fc9fb304c9c7","0x4a66E967d4BF0170fe74C26980073028b1F2809a",!1,!1,null,null],["ethereum","fantom_token","FTM",18,"Fantom Token","304402203f1b7250927bd815603e994111f2d07616932f10d323e1308f856756d7db80db022073c4a903dd22ec03ab858fea94deb8399acb3d2d40967e7c9595ad4d39f9d327","0x4E15361FD6b4BB609Fa63C81A2be19d873717870",!1,!1,null,null],["ethereum","fanx_token","FANX",18,"FANX Token","30450221008c9de5d3e1527f6a51991531a103455eab6845aa5fa8009f7c469104b48c9299022030e50490e962cb5c5f7bfd3dba36de80c37d4af24be1e52a4f0651698989ca56","0x7dCB3B2356C822d3577D4d060D0D5D78C860488C",!1,!1,null,null],["ethereum","fanzy-x1","FX1",18,"FANZY-X1","3044022027f165b75722f19030bb959532a5aa780048b00e28c59920302a4b1a46d52132022016ef9e3a8211bc9d2a8d4aab6ff646832a9ffab5572c2274d4de2bd8b3678828","0xED0e2041BFb5a426e5ED426A73765624E08BbB75",!1,!1,null,null],["ethereum","far_token","FAR",18,"Far Token","3045022100a087bf3b449a75518ac3abea2281cc592f8e949b687e000fa71046f0a69c6ef1022003c3bbb1168c57be5f3ec45e16072ce6ca0eb5a090da5c46af56411636639e28","0x7cf6dC769482AbEe2FF75795d000F381A8062DEC",!1,!1,null,null],["ethereum","farad_cryptoken","FRD",18,"FARAD Cryptoken","3045022100997ee07a476ff6230413b7d78c6055d96b0d2cfeb5aaf1cd232c00f2e5ec54b8022071c23422c86f6965ffff25f018d979a4a745c9f6166ea3702ef1c1143b082350","0x0ABeFb7611Cb3A01EA3FaD85f33C3C934F8e2cF4",!1,!1,null,null],["ethereum","farm_dai","FDAI",18,"FARM_DAI","3045022100cf917da2dd96e51c503ec47790ebe146bba46edd7824cc41e28129335d0bed7c02206dde6d4ccfac146702bb5f3452bac031ba1ec1503d69fbd8470ae20c4e949e9c","0xe85C8581e60D7Cd32Bbfd86303d2A4FA6a951Dac",!0,!1,null,null],["ethereum","farm_defi","PFARM",18,"FARM DeFi","304402203f0465ef8ea2d3629172aafb97510d2e3c6cace9279c051e29737a576ef6c752022075c881815baf8a61b74af66587aae2b6cbf3232902b7518bf6623ab00a1c0d53","0x6a8C66Cab4F766E5E30b4e9445582094303cc322",!1,!1,null,null],["ethereum","farm_renbtc","FRENBTC",8,"FARM_renBTC","304402206f155a250bf84883dda555cccb9cb92ebaf810f78bb735bef15f252a3142385002201c2db1382578de202feca295bc86cd6bfb50bf52dc6826372fc337c473d9cc18","0xfBe122D0ba3c75e1F7C80bd27613c9f35B81FEeC",!0,!1,null,null],["ethereum","farm_reward_token","FARM",18,"FARM Reward Token","3045022100c6f42b6e1d54dcf87c72661198f8b5234922812ce876f9207d2146f7a8172bf502201e36e4d873a815187e2ef45ed5b6d74ebc160f3a5eb87fddfb54455ab2064497","0xa0246c9032bC3A600820415aE600c6388619A14D",!1,!1,null,null],["ethereum","farm_usdc","FUSDC",6,"FARM_USDC","3045022100818c4a14e3b6380d6d11bfa0573ac8146dadb58c658efba9c7c566efa55edd8f022008c3cff7f9c2e0a5ba4a32434c78bdb74a6f5485732f0207aa11e2e3fc0bbadf","0xc3F7ffb5d5869B3ade9448D094d81B0521e8326f",!0,!1,null,null],["ethereum","farm_usdt","FUSDT",6,"FARM_USDT","3045022100a96fc98f57360f8f57a445c72f966ab0953283cae2d5522172117cf4d19ae93f022043b5ef26c2331749f295806f527c1fdd568f2f6ac916f49c91ad8b9de6fdcf1c","0xc7EE21406BB581e741FBb8B21f213188433D9f2F",!0,!1,null,null],["ethereum","farm_wbtc","FWBTC",8,"FARM_WBTC","3045022100b53df1e2775cb6c8b32a700438c84fcd53e3a4b9dc92d544c8e288dd6db4878402204f676f4bd9e0cbee62a0e9097f1326b5c059ebd98772a3abaf4891d27ada0fa7","0xc07EB91961662D275E2D285BdC21885A4Db136B0",!0,!1,null,null],["ethereum","farm_weth","FWETH",18,"FARM_WETH","304402205b801d84303416ac2a5f65fa9acbc43184eacf5c40f639f20df4cefbd259e21e02202048a89ae93d84348bc333838f0304fad300d206315f156f56553e2caae0bb8b","0x8e298734681adbfC41ee5d17FF8B0d6d803e7098",!0,!1,null,null],["ethereum","farmatrust_token","FTT",18,"FarmaTrust Token","3045022100a476c6870d87c4031f62fc3c648ad0bc11c376f14e5eb653eabf9f56c90a6d06022008da2a4a8aae9242a7a4324e1d27cb730b1b2311e98ac5537005ac231a2736c3","0x2AEC18c5500f21359CE1BEA5Dc1777344dF4C0Dc",!0,!1,null,null],["ethereum","farming_bad","METH",18,"Farming Bad","304402203de247bfaa567e536e2ab2d1c81579abfcacdc4d116a8ae46c87f1ec7463d95702201e874edb274a699b964027c64c09312f5792d6486719a5d72b9bc166e6e0d3a1","0x11003E410ca3FcD220765B3d2f343433A0b2bffd",!1,!1,null,null],["ethereum","farmland_protocol","FAR",18,"Farmland Protocol","3045022100b9945e6f302984891d435502b5dcef56e27b18fd78858519a33e4a21525f2744022012c861e73734b4ddf76d989c77fa2b4746b209bb020c04ac89a2f0bcbaccffa5","0xAaE3Cf9968D26925BDb73cE3864e0084a20f4687",!0,!1,null,null],["ethereum","farswap","FAR",18,"FarSwap","3045022100db25d122da3d90c4fedb7e345dd79eed6bb00b15d3f1e0e7790208ba555852e902204bdf017a1de322dcc9c957648ed02f9ab0d29e908fd865482fd012b92e4a191c","0xE8B2a3F60697F3c56fcA44a9616B91Fc9B99f98F",!0,!1,null,null],["ethereum","fastswaptoken","FAST",18,"FastSwapToken","3045022100bfea7986b855ef9d57b48e0b65da1123d24980e024ebc04b13189bf3214d68c2022018c2b191c4d024323b8e98e52978f258bf8e33280ed143ce743a0395a578a1bf","0xC888A0Ab4831A29e6cA432BaBf52E353D23Db3c2",!1,!1,null,null],["ethereum","fat_doge","FOGE",9,"Fat Doge","304402206137064cdce984cf74bceb947d74735c4f0dff4b7f8ebc45206d6b144e59ac0d022067bf038230ede47643f3002daba3c37022b2fe45aab89e0d29d0f6c80f6797ca","0x76851A93977bEA9264C32255b6457882035C7501",!1,!1,null,null],["ethereum","fatcoin","FAT",18,"Fatcoin","304402204f84dbd33b297e3c8b3833598e9cd456b021292bef762640e1f2bb52245731e002202521a110ab6f61f2749a16bec2e6ef6fc6b597f8541621dd75883db36a03245d","0x2eC95B8edA549B79a1248335A39d299d00Ed314C",!1,!1,null,null],["ethereum","fear_greed_sentiment_set_ii","GREED2",18,"Fear Greed Sentiment Set II","30450221009790689fa1e0f70887cb53220c569bdb85e0cad720a3c346f0746541d428751402206a28cda1b2fceed601bf531f0cfb4f968116fb04553f0a85c5492c3f7d58ea6a","0x15822A64c8Cb27D7828C45E0aAFC3e6C5DeCd172",!1,!1,null,null],["ethereum","fear_nfts","FEAR",18,"Fear NFTs","30440220561bff9219750586b00a2dbffcdf9b7a92757f6b49a060e42949403d0081c3130220008d398de2a77246d6c6ae7af437c54700e0b9ce920cd612a35e184c9356039a","0x88A9A52F944315D5B4e917b9689e65445C401E83",!1,!1,null,null],["ethereum","feast_finance","FEAST",9,"FEAST.finance","3045022100d2a3660a651ab9f08ae3f2c7fa7c8e9c31ff534bfec786731d35fc92651c2a7e0220563627315bb6142e19a80ce72bf12359897cd07e444ab23e45f99c475dda98f9","0xf2Df8458130F00c94bCDE2Dd3F288cF608187F87",!1,!1,null,null],["ethereum","fee_active_collateral_token","FACT",18,"Fee Active Collateral Token","30440220321d73691f6944cf988f9719b8e0549093b2c62d84957bf5a81634a98c19753002201d6f816bc4bced868abcdf4130a19926f5e2f0f4c767210852317c26232235f9","0x23aEfF664c1B2bbA98422a0399586e96cc8a1C92",!1,!1,null,null],["ethereum","feellike","FLL",3,"Feellike","3044022000fd0e70fd4584843c53d3236a2ce41fae8e5edca42f754082efa7555a5b69a80220034b788998cb8412d10aceb91e2efe132a4af505b137fe386cbb3c836a4fe49e","0x9235bDA06B8807161b8FBB1e102CB654555b212F",!1,!1,null,null],["ethereum","fegtoken","FEG",9,"FEGtoken","3044022037a383f36db3d7b411fbec033d8559b6b648695ca95189899b1832a82a009d62022054bf827ae85ad3c12c70322d168e4986d2096e4b0d9478d9d48b9f4f95945ebe","0x389999216860AB8E0175387A0c90E5c52522C945",!1,!1,null,null],["ethereum","fei_usd","FEI",18,"Fei USD","3044022025e421fcef3b57e28bf103a6d94ca9d0d094cf4aeec79884968c049ece0a1ae602204e516934383c3d0656a8e0f27839f94c4c44d2dc22bda75c03197c6fa86623cf","0x956F47F50A910163D8BF957Cf5846D573E7f87CA",!1,!1,null,null],["ethereum","feisty_doge_nft","NFD",18,"Feisty Doge NFT","304502210090643dab1dc74f3fd6188618cedbb4aab2764696bd137954e058a704b4534c44022028e8e3ab676aa8b21553898961f6235de13a017706ab4bfa81af0d0b1d201fa3","0xDFDb7f72c1F195C5951a234e8DB9806EB0635346",!1,!1,null,null],["ethereum","feminism","FEMI",18,"Feminism","30440220210458484f6c5163325d83e57b182256b4c47f8537d22db680ec34185d84083d022027a79b47d6e3a1e9d1c604d7c9a5544fd7f689832417e59a5c4deec671e69ba4","0xb26e8b9B6cf53E499aBDB2c83e15337be85A9E5a",!1,!1,null,null],["ethereum","fenerbahce_token","FB",6,"Fenerbahce Token","30450221008cf2d326b6eae23ab1f7cc5a828455683d520238932421fa0ebeeccf7e56f97d022056c04bbfddf7a21348d043754f0e487ad276178357b501a1c9158ac4bc1153ba","0xFB19075D77a0F111796FB259819830F4780f1429",!1,!1,null,null],["ethereum","fera","FERA",18,"FERA","30440220351ca38aac0e40b61d6f7ee48f3b196367624f58f71cfc4eca52dc8a9fe6936702200ca6e98857012ff1e46d033976c2be297d9617037b857c4199e45a77fae28aed","0x539F3615C1dBAfa0D008d87504667458acBd16Fa",!1,!1,null,null],["ethereum","ferrum_network_token","FRM",6,"Ferrum Network Token","304502210099cad4fc0f495a9e1d01812fc57907aef1926911828d39a62fd5a883f4474200022054b980c85a6686f787eed05aa9dfd4bac848ea42111ed9a47733f0110027e8ca","0xE5CAeF4Af8780E59Df925470b050Fb23C43CA68C",!1,!1,null,null],["ethereum","fess","FESS",18,"FESS","3044022060772e781fce79fdb038adbdf94bc825b1ef1fed4735e40436cce712f50180ee0220251e3f2e582b5c98ee35c12cf7f88a10036fb210fe59f02a99b68fd83dbdab29","0xE09394F8BA642430eD448CA20f342EC7aa1Ba2E1",!1,!1,null,null],["ethereum","fetch","FET",18,"Fetch","30440220511dd986d88311ccac6b6f188ecb3a1d06155e6969689e17da8be88792ca1d1702207ab9bfd82209dded657dcceeeea043ffb868e5b8202b5aa6c560647c64be4936","0xaea46A60368A7bD060eec7DF8CBa43b7EF41Ad85",!1,!0,null,null],["ethereum","fetch_","FET",18,"Fetch (Old)","30450221008095c7734e4eb9c055b468fb944360173c627258cbae898897e709a6b314488f02206edff7f9fdb63fc36c8c5add6fa03f8f1f78d60e1749b21f87cd5f87c4ae8cae","0x1D287CC25dAD7cCaF76a26bc660c5F7C8E2a05BD",!0,!0,null,null],["ethereum","fetish_coin","FET",6,"fetish coin","30450221009eba98d90cf64041ba132280489a5af4295431f389d8e0136c25f982a5fd0c3b022013acb67fb1d58955bc45b1d9525267b34d73b4ad82aee4999e67b5ed80cb0343","0xeFCec6d87e3ce625c90865a49f2b7482963D73fE",!0,!0,null,null],["ethereum","feyorra","FEY",18,"Feyorra","3045022100a36f5966b11df8b1ce372f02cd9e1335a6af3787c8f5afd7abbc03170753a49d02201fc672aa558bed2f6b6b56131a8d45d80edad471f2319606e229342a85c74b26","0xe8E06a5613dC86D459bC8Fb989e173bB8b256072",!1,!1,null,null],["ethereum","fidelityhouse_token","FIH",18,"FidelityHouse Token","30440220773fae1950669606820521e88f79b10a78feed6e5f7bb766e1d2972e337e98e5022066c8dfd558977e458f4313c3cc82cb18a1aeef378fdbb7a58f9658fd73605050","0xdfC3e857c8cCEA7657E0ed98AB92e048e38deE0f",!1,!1,null,null],["ethereum","fidelium_token","FID",18,"Fidelium Token","3045022100be1129cfb2827eb29fd63511bd61ffddf67c037dc12717e84137f34840c88b60022017895aca14300b6fda78a11fa554e15f486fa11884a2210e1474c6ceb23acb84","0x52fb36C83ad33C1824912FC81071cA5eEB8AB390",!1,!1,null,null],["ethereum","fidenza_527","FIDENZ",18,"Fidenza 527","3045022100ed52c40a5ac9cf5ba0bb126c5599b77c8378a576886c01c0b769bb553b48276f02202abf2ed116e0a76e4dda273646c5f0f328b96e7fdff56e799143f307514df9e7","0x3FA42C7dFC3BDFfabbc1176619b5AA8Ff61c432F",!1,!1,null,null],["ethereum","fidextoken","FEX",8,"FidexToken","30450221009201a089928baba32b31137c2c91f726899ca364f3d5df8dabd4dfb95d942d26022010679854acfca479d1b8727262708c078c310534211d0f1e4aebe976a0cd1581","0x1C1C14A6B5074905Ce5d367B0A7E098b58EbFD47",!1,!1,null,null],["ethereum","fidu","FIDU",18,"Fidu","3044022021770673c22bcb0ac58bc28c1da333c86c6556bfd8e10d971fb64251cba0fc29022020abe3d319f7682796e76b6d72d476af2770161450375715b1c34a54a9956b71","0x6a445E9F40e0b97c92d0b8a3366cEF1d67F700BF",!0,!0,null,null],["ethereum","fightout","FGHT",18,"Fightout","30450221009b502840885f1f47076c813f4a0c4ba33c36b15f91dbe01e3fe28bf24aea217e02206550f16fd83f8d020a700fbf89855b4c71b3088dfc72b7f92661b121ab296f98","0xe0ffDdF8fd7d63Cf907e433c9293069704D4d40D",!1,!1,null,null],["ethereum","filmscoin","FLMC",18,"Filmscoin","3045022100ecfbf4ecdf5852728318e2463ae4ba4d6ad0a50238b54deeb5153895aa95d22902202d95c3bbac913fcf3c6655b19263b40aef2bf8062f9f9bcb56d7987062eb99bf","0x04cC783b450b8D11F3C7d00DD03fDF7FB51fE9F2",!1,!1,null,null],["ethereum","finally_usable_crypto_karma","FUCK",4,"Finally Usable Crypto Karma","3045022100cf7164591bfc344dd79b646995edd42531769f43c2df689d11ddf9e6948552190220321a0af1d77ea15f184202cad72d6afd74a3db1c45e8bf31d9a0020473b84ec3","0x65Be44C747988fBF606207698c944Df4442efE19",!0,!0,null,null],["ethereum","finance_vote_token","FVT",18,"Finance.Vote Token","3044022032cdd4dfe66d0c52ae30e40ade2d7129971c7b8b89f3bad90182460e5531f95d02204562380f2d763835b1b40d536a195a43056c4dc73792a701bafa43b40230812e","0x45080a6531d671DDFf20DB42f93792a489685e32",!0,!1,null,null],["ethereum","financie_token","FNCT",18,"FiNANCiE Token","3045022100947262a1b4a0c93021939793a8339adace87dc1bf453913bcd66eea8d974858402206b2fddacf9061d577235c43642b199b1cb6abfb4e403bb57232133492f67977e","0x8Af78f0c818302164F73B2365fE152C2D1FE80e1",!1,!1,null,null],["ethereum","finbet","CFB",8,"FinBet","3045022100ff7c49c64e1cb20436cad0fe7848445b2103613d7411903225f91885733e5629022025d7147bb3db3c5641899bff0ee6d8a2cc70afda65c226d839fc841e160f8d6d","0x5549fE6ED280e5A271A4c8c85277a5F07ec9bbDB",!1,!1,null,null],["ethereum","finexboxtoken","FNB",8,"FinexboxToken","304402206da0cf8310ad8007582862eef4958d56670f9eee18df27414b5f7d3529d0e74e02201e05c8cf20b1c4a7833f9a66f0b17943a62936c02619f0d926194c81d2d6296f","0xE6D2c3cB986db66818c14C7032DB05D1d2A6ee74",!1,!1,null,null],["ethereum","fingerprint","FGP",18,"FingerPrint","30440220582e8656731a795e271d022a1e8ea3aef50899ef0b1ef6a7944e007e63a1206b02204c3b2bf670a31cb70f95c5780295629a7772248565a30d098b014ea25240bdf8","0xd9A8cfe21C232D485065cb62a96866799d4645f7",!1,!1,null,null],["ethereum","fingerprints","PRINTS",18,"Fingerprints","3045022100979576f86043bb2dd55a0bf14229e9db5dd67043fa3ca4d2ff8686c127e85e380220362ff2a5455d0f8c00628631e90962b4769c7a7d0d404f8cf49ba0eb11bf26a6","0x4dd28568D05f09b02220b09C2cb307bFd837cb95",!1,!1,null,null],["ethereum","finiko","FNK",18,"Finiko","304402206279917de815fd7717d1af43856f2d3e0a4a8a78d799f5d8544b9c438c236886022057f507684d3feb49758027cac169649ae5cbd01250ff9b8fef6210649c5acab9","0xB5FE099475d3030DDe498c3BB6F3854F762A48Ad",!1,!1,null,null],["ethereum","finminity","FMT",18,"Finminity","3045022100c64f242500f61b7037910ed2e302a4620573276d552375a9b678a28056477071022009bb2f6535a45315fef828ff59f24bf53fe8559ea13af5b736a462970e353855","0x99c6e435eC259A7E8d65E1955C9423DB624bA54C",!1,!1,null,null],["ethereum","finnexus","FNX",18,"FinNexus","304402204811c1b627af103341df890c78532e92810239c9b806dd12f3702576b83b4aa0022051ee44f027c981afe9ebe76cc7cd845dbcf83872331d0aa2b64087efc236818d","0xeF9Cd7882c067686691B6fF49e650b43AFBBCC6B",!0,!1,null,null],["ethereum","finple_token","FPT",18,"Finple Token","3043021f752d2bd8e4bbdd0e9164128fbd1816e240e916264d4f5fc8926962d8242d4b022017c096897f7fe36daaf8ef96f429a1200c52c0722fee05dd81450f198fa8ef5a","0x9d5e6b92Ba3f75589943372DF82DbD3A8A802e80",!1,!1,null,null],["ethereum","finswap","FNSP",18,"Finswap","3044022069e1d8d8c563d04c8f646282c5bb38bf6edbdc303452fd36a0ad64de1cff78c3022056da2061c4da5840d04c42bc5a13845d1d5f5e8615948a39ca00cb213013cab0","0x3B78dc5736a49BD297Dd2E4d62daA83D35A22749",!1,!1,null,null],["ethereum","fintab","FNTB",8,"FinTab","30440220181adeb6786374001f79f19f9f47b2f1b194ec368a994ea3bb1444e2b831283f02201e0e43a1026488e6ee804d9e14295ce85bb15ad3893cd07bd837394fc700d42e","0xbD4B60a138b3fce3584EA01f50c0908c18f9677A",!1,!1,null,null],["ethereum","fintrux_network","FTX",18,"FintruX Network","3045022100ebefdd62e20ead846dba28d95ea26eb7b028bf1aa950e17b5580be5cf321e91e02206ca679ed90311f93b93f5722e4abeb4b67352d1ac0fca6648d6cb7b2606150f4","0xd559f20296FF4895da39b5bd9ADd54b442596a61",!1,!1,null,null],["ethereum","finxflo","FXF",18,"Finxflo","3045022100e51e509d105d5bbcf591df544f2d61b5bd5711629ae3ca04f9e8f7037e8fe343022037bb33eee46e24715c99805e2aef751af7904e4a36a93214ed668b1cc4f68959","0x8a40c222996f9F3431f63Bf80244C36822060f12",!1,!1,null,null],["ethereum","firdaos","FDO",18,"Firdaos","304402203bc625bb4abc65c21dfb5c5c19b87cec2767f37ceb0b3557ec8220001b4f594902207a67f1681db2da209ea7efff2e090e9f946a21c383a8ef6d10a339c6c6031254","0x361887C1D1B73557018c47c8001711168128cf69",!1,!1,null,null],["ethereum","fire_lotto","FLOT",18,"Fire Lotto","3045022100cdc7f2fafb1a32be2f388e1a73facc8fb8871bcb66e9e38ba0aedc44d24de5dc02207e0c95cfde4725d4cf20b3bac1ad6ac54221f277ed4e9a933f19631fa234ef3e","0x049399a6B048D52971F7D122aE21A1532722285F",!1,!1,null,null],["ethereum","fire_protocol","FIRE",8,"Fire Protocol","30450221008524cb0ef519503abcc68e12167e79e826eff02dd31209b72da3e667ed8058b802200fd773466f3a1ae9487b9f9672c1726e70108b3957429f124ceb5ece5a8388ee","0xF921ae2DAC5fa128DC0F6168Bf153ea0943d2D43",!1,!1,null,null],["ethereum","fireants","ANTS",18,"FireAnts","304402204eb7829d3ca894721ae1300fa9fbf32dd264462163f34badc222f8eda16d3f2502203a3bc495846b5d389a3327a46a47c5332add93dfcc99709cb80c20b25e7de0eb","0xa9fBB83a2689F4fF86339a4b96874d718673b627",!1,!1,null,null],["ethereum","firstblood","1ST",18,"FirstBlood","3045022100d80f3a8b4fb539e74d2885bfec5b820a7a98d85228a307dd1c764459030b1ffb02203c6e013712022b8772102702aa85d374706e8995b8cf5289dbe43b4ed7618d40","0xAf30D2a7E90d7DC361c8C4585e9BB7D2F6f15bc7",!1,!1,null,null],["ethereum","firulais","FIRU",9,"Firulais","3045022100e2d14a3e484e0e64fb92927a67bd43eb3032f20dd9b18d701f4ca1da1261c39b02202268ed9f6aeba477e03c9e7dc4df897bc8c0444bd53ff7ad986d9b8b5f577fb2","0xE276056f924E15BEac26F7b10B6D2805F9c64Bb5",!1,!1,null,null],["ethereum","fiscocoin","FSCC",8,"FiscoCoin","30440220706d82651c286b400138a0c836a6e0acc69d0e53691eb890fe6bcc45bccbb32d02207605276ce3cf3616b5c23e36668ccf10c93b3bf1a1dc9c049b2c0b2bbdf1ec8e","0x0789dbAE94fb18e5789B8e4489BCB7A1ADB58622",!1,!1,null,null],["ethereum","fiscusfyi","FFYI",18,"FiscusFYI","3044022010f6843a36b597b42a3f9df07b1b84930566f100ad8bda6464a76f1ad681c8f80220777591793cf31b963c070facc13302afc2e6a1aef23f5103375075366f2ff337","0xca76BAa777d749De63Ca044853D22D56bC70bb47",!1,!1,null,null],["ethereum","fission_cash","FCX",9,"Fission Cash","30450221008b89dadc561d6c1cee0d0ce1c0e86e0c4e610a6ce272c0d725381bbd250e7bbf02204cb28f886b015c504e4802acb4f3e1f297818e7d3a39ebd074ed2784a81f9093","0x0B66015bC42601d5986b540373B4e02D7383C7c1",!1,!1,null,null],["ethereum","fitrova","FRV",8,"Fitrova","304402205778adac7babdfdfeced26d0ba8544aaf84c2941afc2c468166400d47294e8be022022d649e04f59b99246b770e8ee8ddbc92cc5aff490192b5ebd9640045275e0cd","0x48DF4E0296f908CEAb0428A5182D19B31fC037d6",!1,!1,null,null],["ethereum","fixy_network","FXY",18,"FIXY NETWORK","3045022100a5bfc09114fb3ca447bd981f76b32a0c508b7db0b91dd36cb1e9e7245fbf35a002203c29872d223c28629f6c81533ddd13feb3d417284629b0d47296bef32f2d9056","0xA024E8057EEC474a9b2356833707Dd0579E26eF3",!1,!1,null,null],["ethereum","fk_coin","FK",18,"FK Coin","3045022100afaeeddd8624165305f6bac78707c73a1177e6f12d82aca8dd04237f305fadc802204e98bb37ce0d1a67581c2325b2945e87a2b8d9ac693ebe6db5b71d8675e515ab","0x903D78ca7D892e4518586d0b64F418bd4CA9a82d",!1,!1,null,null],["ethereum","flair_coin","FLR",18,"Flair Coin","3044022070d77108db35d86769e22ce5cd914d85cbab5a9f5d482c2d3a40e931f8ef1b410220089e2321898065e838b4676291a3c62dfa87c71979f3bafd53b7ed2337e25f8b","0x9aeFBE0b3C3ba9Eab262CB9856E8157AB7648e09",!0,!0,null,null],["ethereum","flama","FMA",18,"FLAMA","3045022100f5e5f19fce015ead8e7293356c00093deb315ee2735be8adc8a5b271fe875dd70220302175bcda4d6b7a0025a4ce701d1e336648e54f3f657b82a47ccd895681d951","0x0f8794f66C7170c4f9163a8498371A747114f6C4",!1,!1,null,null],["ethereum","flapp","FLAP",18,"FLAPP","304402204334ec06ca5bfea580bc6d464c119d7b965a53f278b7c5956eb45bfdd350321d022070f1c900a0c83a0349a53530bc648649d2ca8b4ca208beb2402907a8ebf0e209","0xCfb72ED3647cC8E7FA52E4F121eCdAbEfC305e7f",!1,!1,null,null],["ethereum","flashstake","FLASH",18,"Flashstake","304502210085c2f0aded74ea68c0f47a2deb6041cf6a9184b6c52a5973af021f7c38cedc5402203e9b4ba995f65304fe66ceb2f7f88ee95e3684ad2dea007c0b6e6b30cbdedb95","0x20398aD62bb2D930646d45a6D4292baa0b860C1f",!1,!1,null,null],["ethereum","flashswap","FSP",18,"FlashSwap","3045022100ecb2782827addc1970d3e3ed0b5ec8da7d1d5c199b75425f3c29041eed2bda32022072269d67fd9268d4a275cb1d87c2f6b297b88702164cd631e74b8826bed7b899","0x0128E4FcCf5EF86b030b28f0a8A029A3c5397a94",!1,!1,null,null],["ethereum","fleta","FLETA",18,"FLETA (Old)","3045022100bfc9bfacb444dca8127512c81d24ae69ed5ae16196ae5b5d78951096aa9cd66d022026b2f8821b176e880f03812bdbfb03470433262aa75c62a7ac8eb2a367762376","0x7788D759F21F53533051A9AE657fA05A1E068fc6",!0,!0,null,null],["ethereum","fleta_token","FLETA",18,"Fleta Token","3045022100ec55a95cbecc8d0d906e21fc98f75cd1948dd8d03e8e639f9e63f3802e028a7f02203e13de5f112cfd1d8f16e3f444ffa875c9b3ed8a9aae9af30611754cb7360714","0x40897C872214303b6F479a37E549eE1516B264A2",!1,!1,null,null],["ethereum","flex_coin","FLEX",18,"FLEX Coin","3045022100b34e9d61fde355a56a7fe39b1f2c49c0d8e4ee6753f5d212dd6b4c1a2e891631022006640c0a45491581b761a067139f7e0002dc3998c94ed1c00789a498f73d6795","0xFcF8eda095e37A41e002E266DaAD7efC1579bc0A",!0,!1,null,null],["ethereum","flex_ungovernance_token","FLX",18,"Flex Ungovernance Token","3044022072c190f23118c467f534f2fa8a4d153c895f15254a6205a68bd3297fe41b97a902207628a2bc73958f9f32ee6fd0a2fb6d8fd1898fb06fcc71a2afddc314b7b6945d","0x6243d8CEA23066d098a15582d81a598b4e8391F4",!1,!1,null,null],["ethereum","flexacoin","FXC",18,"Flexacoin","3045022100ed8a440ee4905430dd6822c77aa2bde4db9879f3426a552302942d37b1a92e5102207349d068b859cd538952ccb9531f66a5cbc9cb25c41b43ddf4338795184bfc74","0x4a57E687b9126435a9B19E4A802113e266AdeBde",!1,!1,null,null],["ethereum","flexusd","FLEXUSD",18,"flexUSD","30440220118c8e3e377dc55194656f2b90ba2703c6ba73fcf5803a45cee12b7f7808f5e70220221037c9f27bf811be2b330bab3d0c27850c87ec389aa308837f0e96d89a6213","0xa774FFB4AF6B0A91331C084E1aebAE6Ad535e6F3",!1,!1,null,null],["ethereum","flip_token","FLP",18,"FLIP Token","304502210095009f5524fb2c3e705e05e714395975b1f59f97572a8d494da39ab819e43cf10220185a724ffa957c8348386a20dd096d0bbd8d4fdce27dec90dc66dd6882eff3b4","0x3a1Bda28AdB5B0a812a7CF10A1950c920F79BcD3",!1,!1,null,null],["ethereum","flit_token","FLT",18,"Flit Token","304402204dcdd2a29f1aec76a826a953d1ead8bcb6cb1ad76cecbe9e0e9ee007ee70788602200d981b959b9dfd619047f80454ebc9e6c16dcc392a40ad93081fa7c2f5270830","0xB351dA6ffEbd5DddD1dA037929FCf334d6B4A8D5",!1,!1,null,null],["ethereum","flixx","FLIXX",18,"FLIXX","3044022067c3d52990bf908f4c987afe09d469be0001ef3564dff9c44665cd6bfc432b3f022003a7e88e2ba7cd6d4db9182eca0fb16ce5c6eb1af826152a7b63b93f18587ce5","0xf04a8ac553FceDB5BA99A64799155826C136b0Be",!1,!1,null,null],["ethereum","float_bank","BANK",18,"Float Bank","30440220224d3af53ba31c94d0f155c0e01a8da4cf7bacb1adac232777c8063e49bd141f022053e7457c2e42f1886fd2cc43ee0ee3739f661ab950e0613915734d89a519de5c","0x24A6A37576377F63f194Caa5F518a60f45b42921",!1,!1,null,null],["ethereum","float_protocol_float","FLOAT",18,"Float Protocol: FLOAT","304502210098ff776cf2756ea175e579ca5d7fa89660c5ed46cdf4dbe08107e930a6598ac602201f45fd36d2cbe1aa8aa7cb290101f71d7f3cf943c6c3c6d27d0d776ee2ed2225","0xb05097849BCA421A3f51B249BA6CCa4aF4b97cb9",!1,!1,null,null],["ethereum","floki","FLOKI",9,"FLOKI","3044022070d8793daa84c6564b1978229a2cebe2f025497b1179e8c012be7b07d9fa144b022058b2ba05822cf688bc2617d7a7cf53e0681ac201ca0ee0f3cb9722461a471d6e","0xcf0C122c6b73ff809C693DB761e7BaeBe62b6a2E",!1,!0,null,null],["ethereum","floki_","FLOKI_",9,"FLOKI_OLD","3045022100e91d9a969df1645d58178b2414dbbba89d3f47c47936fe7c8a940e4b9679701f02205dccc7ceba747f12412504110d8b163efa171609f74967f06f601e516d7c3a28","0x43f11c02439e2736800433b4594994Bd43Cd066D",!0,!1,null,null],["ethereum","floki_wife","FLOFE",18,"Floki Wife","3045022100c5538e04907d39a43564f19d97e838826d213f9e03411bf40409eac7088fb85802203dc97a19564d88ed1fcef6010937f8d7121a41179dcdd9ca1dbbc38ecfd034c6","0x6beBfbB1707267bFdD1A9a3923728Aa6f98b3f74",!1,!1,null,null],["ethereum","flow_protocol","FLOW",9,"Flow Protocol","3045022100f6989d14052449a8e7bfb374f65aa3b3ad196a4e845e2e9919bdab8a3dce89fb022013ca144a63976b23f11538a10b30c644da23e8712e1e7942d02ac46170d11342","0xC6e64729931f60D2c8Bc70A27D66D9E0c28D1BF9",!0,!1,null,null],["ethereum","flowchain","FLC",18,"Flowchain","3045022100b57015093e90ccbb107db9b45c565fcca60db8486ab629e4d9265e248f13c91302201ada8eba2c0bcf7bc2018aaa985691f688473d38f12fc4a3d5a01d5e2948c9e9","0x32C4ADB9cF57f972bc375129de91C897b4F364F1",!1,!1,null,null],["ethereum","flux","FLUX",18,"FLUX","304302202171a44b06b699b3aa1c1f90a7054464ec5d39ce6cd1f39d58a33d68600d5959021f532c889ecb6e8199861c21728b37aca6732956ec48792a5419952e9a81deae","0x469eDA64aEd3A3Ad6f868c44564291aA415cB1d9",!1,!1,null,null],["ethereum","flux_(zel)","FLUX",8,"Flux (Zel)","304402204a2c894d369c05d97318cf6bcb738fdbb94b37057fecfd2899aec5feb0cbfdd902202711c69f6db4c87988d4d289b96d81d9cf5da7d8ea5f361aa3b73b6b48694de1","0x720CD16b011b987Da3518fbf38c3071d4F0D1495",!1,!1,null,null],["ethereum","flux_protocol","FLUX",18,"Flux Protocol","3044022005ae68058fe469a44d4ac3aade80409fe98ea6a46f9c3449affd8a205ab33029022013a3aa2acc8886c51afbef1bd9c2c241b24d51d1fb8b9c2099ba1217a11c740e","0x7645DdfEecedA57e41f92679c4aCd83c56A81D14",!0,!1,null,null],["ethereum","fluz_fluz_global","FLUZ",18,"Fluz Fluz Global","3044022051b0c150bd11b33b37139d18f58b4bbd15d8a8c39e4db7f3f4f321bc3d70ca9102200830e49debb36f43422e712dd5a8146a9e6ed3d1a6e8b5fc802a9a4e4062845f","0x954b5De09A55e59755aCBda29e1Eb74A45D30175",!1,!1,null,null],["ethereum","fluzcoin","FFC",18,"Fluzcoin","304402200710eacfa53036ece69146d89aba8bf3c9ac4c098d1d13d05837444ea801ab37022054e78d7ed7db49294d2e8e09f83b85f96cdc4bf64b82018d123e8a8e1350ff3a","0x4E84E9e5fb0A972628Cf4568c403167EF1D40431",!0,!0,null,null],["ethereum","flynnjamm","JAMM",4,"FlynnJamm","304502210090701d679946d7c2b0b68b8eb9f9551dd692276af7e0d270b0231765169d18cf022023020a52ff17546a6b13e35d155d72f2f823e9ecb5c9876ddfadd93fcf694c73","0x56687cf29Ac9751Ce2a4E764680B6aD7E668942e",!0,!1,null,null],["ethereum","flyp_me","FYP",18,"Flyp.me","304402206c383328e49ede0a14b89a0c7ce46125b61c92dbc8630b239e69c016ff78555b0220797e1513f0dd9d1e347b8c3f3e51d4ac5bf536bbe3f54341c83cef48b5149788","0x8F0921f30555624143d427b340b1156914882C10",!1,!1,null,null],["ethereum","fm_gallery","FMG",18,"FM Gallery","3045022100f1e9615db17afbc0207b991330cd37b41d0fec500d86582d46e2a4bab512d4300220408f8fd9232afed45f94dc115c72b5a4b582958c3cfe39734cb63e97cb18afe4","0x2991341D28Eaea277785D20e1d878D478c7bA4C7",!0,!1,null,null],["ethereum","fme_token","FME",18,"FME Token","304402205c2ac7c3ceda7c4b0c203788e0020568da848fb1cccad6bd3c1f89da3f95f1fe022054a77d4614550fd16d31b6093d95c16a508fc8be9d923a3e91ecb78caf3054c6","0x947938339BF61c84669E303Bc39c794D65A525D0",!1,!1,null,null],["ethereum","fnb_token","FNB",18,"FNB Token","3044022040968a8bc4b0f94df635cd30f5a8fb4d4177ae0c5b60970ad13f1082745afa8402203f9511084024ac35145c5b64ba626b503a33558e626da95b4911fc1302ac2c9d","0x47b28F365Bf4CB38DB4B6356864BDE7bc4B35129",!0,!0,null,null],["ethereum","fnd_ottho_heldringstraat_31d_amsterdam","FND1066XT",0,"FND Ottho Heldringstraat 31D Amsterdam","3045022100b37913dbbcb66176a710122a9599df3a4efd66122413710c93d9ad3308363c47022001045915a8dee42a9c4e065d04bb9cdcb92d8faf74b6a145f92e70918e753932","0x00873432f09143556CC156D3cf971E4C8f68DacE",!1,!0,null,null],["ethereum","fnkostoken","FNKOS",18,"FNKOSToken","3045022100a71eac4e938b8f8e2f1aa41d2244bf04a70bd51634682ed39041a9c260ecdb7602202a41e121a5d1ed099fff6636b0c9e2561d3e8264044264f7cc7e811583265097","0x0707681F344dEB24184037fC0228856F2137B02E",!1,!1,null,null],["ethereum","foam_token","FOAM",18,"FOAM Token","304402207fc1a0d0b58c1906519876dd8e916181b88de590060db1fb029ba61456e4906e02207919bcaafe7f769708b452f4677d43856898ce68b4e07ad2ade1edb3f9034efc","0x4946Fcea7C692606e8908002e55A582af44AC121",!1,!1,null,null],["ethereum","fohocoin","FOHO",8,"FohoCoin","30450221009fccfcd9a7b96d8e51395a2a6fe8f6e09321dd04f263a4403f47b96980748a32022068abaffa92bfdc2d42ccdef4609f2c3be7e8f0722a0399e8b3917dfc5fcafd5a","0xDd2e93924BDD4E20C3CF4A8736E5955224FA450E",!1,!1,null,null],["ethereum","folder_coin","FOL",18,"Folder Coin","3045022100e2fd08fae39bdd42792d3fbf21fc1efcbeb24cfe094eb25c58b5b8aec226b1ac022016d7d3564f7bc8c1e86716028f803828418061a9bf0e78493b1a5181ebd0823d","0xA8580F3363684d76055bdC6660CaeFe8709744e1",!1,!1,null,null],["ethereum","fompound","FOMP",18,"Fompound","3045022100ca99a407d6eaf7e4c8a9c4320d6c16cf4a1b9f7962173c264005d10ad8b1beb4022048aa2db982edbd739484032bfa275d946543684977a0098137a2463901e783e8","0x05385abD2a95a8cd9B696F738aed73f1AFbc12E0",!1,!1,null,null],["ethereum","font","FONT",18,"Font","304402201341e00c3f01bd75b4e7c813f52a9eb6f7ebbcf39ffd732128a2ba6f498c277f0220366c2171f66a29432cd203e17ea63cbe5f2ad6bcd7747490b870162da03c9fc8","0x4C25Bdf026Ea05F32713F00f73Ca55857Fbf6342",!1,!1,null,null],["ethereum","foodcoin","FOOD",8,"FoodCoin","30440220541d48d084e881f5e14caab1abaf198f77a4210a973e12bf41b25ab4f86ee647022077a1ee39834526473b62a53962958e166924dbb90550f37ca79384c25810c522","0x2a093BcF0C98Ef744Bb6F69D74f2F85605324290",!0,!1,null,null],["ethereum","football_inu","FINU",9,"Football Inu","304402207d1bbdc00b3e65bcf3984cda7a8cda4023a975fc2293e43ef56d81d8f6ea7c40022065a30f42678734eb60dd64582f0a022cf7d2f301d93f7cb1c75e9de989b33eca","0x48A3D9510f7c2aa61A285cCb4eAa5Ba072692468",!1,!1,null,null],["ethereum","force","FORCE",18,"FORCE","304502210089dc20fa746fe8ff0a1bf8369ff7573552a660163c6f966a2991121c9aad942702202ea9041558306da752817dbbaca64d3de926445d60450ddf4df8b8c056ed29a2","0x6807D7f7dF53b7739f6438EABd40Ab8c262c0aa8",!0,!1,null,null],["ethereum","force_dao","FORCE",18,"Force DAO","304502210083c5e668c1dac07de7ed47fb5adb8aeff87a7f3605d64de97248c5293c2d8de0022028c5cfe3d95337e515c5e188d8e95f0b6d36fca78c1bbeddde5932623c2ed121","0x2C31b10ca416b82Cec4c5E93c615ca851213d48D",!1,!1,null,null],["ethereum","force_for_fast_token","FFF",18,"Force For Fast Token","3044022032a686b34d422127a1442d807ce99d23de3ffac5757e352655889b5a9920532b02202cefd6ca272720218af8e2e14176d288560fc7fc20a5d8b8b09e1534549b0c9f","0x22f098F08c4eda4bE4ad6B4ba59866F3E98CEF92",!0,!1,null,null],["ethereum","forcer","FORCER",4,"Forcer","3045022100b5c64c5a1de5c5415760d364a6014b9b776cb522cfca2b5450e943d4a139a3e002204c80f91822fc0994fc724a222d64f12b2a0d1f497a1202532608e89ea60f5c34","0xC1fB6C015fC535aBD331D3029De76a62e412Fb23",!0,!1,null,null],["ethereum","forefront","FF",18,"Forefront","3044022070b17ad808633366e79cd0e5f54af7bd1ee99151e626633d72ff5cca80b807be02200701391f5ea7d5bc542c63babe5b1a2c353c7effa87a8e542f2bab04e72efe2d","0x7E9D8f07A64e363e97A648904a89fb4cd5fB94CD",!1,!1,null,null],["ethereum","foresight","FORS",18,"Foresight","304402203f2ca9dd2708f60afb6dd814c470794b2702b1cf2eaa19e9cca170bf8f3b4fcc022000e37507f78792401d6b156874eeba90cf4fa94dcacbc028f79b1f984be73e97","0xb1EC548F296270BC96B8A1b3b3C8F3f04b494215",!1,!1,null,null],["ethereum","foreverup","FOREVERUP",9,"ForeverUp","3045022100e37109fabcc022bafc30fc1f39ac001954e82f1585e516f5c93b8a68f313c91502202bbb65db8ebe7a239af68eff44ca5be7ca4087aa85de362735a2f45cec7475d8","0x81AFa8ACa19d5693883B0B1e10ae1Ccaf2F42781",!1,!1,null,null],["ethereum","forex_coin","FRX",18,"Forex Coin","304402206b4c4219a463a0121ccdd35ff2bf5fb6a59afdf8b6f57e13627fcff8eef7805b02202532b1c67ef15853b025825324f404edaed41a78d5bdb51d93fc83bc0bd152dc","0x36a73557f5BDE5195EC39eCA82d28b8A36D21141",!1,!1,null,null],["ethereum","forexcoin","FOREX",18,"FOREXCOIN","3045022100f224f298c56a8668d5055e63ec636f647d6c78dbf1238b11507c072dd6f455d10220229a3f808e9870a5a6fcfc065cdbf947aca1760edad45a1ce17b5a615e1365ac","0xa4E9584DAa093Cb1205E17bA737c3fd015748087",!1,!1,null,null],["ethereum","forgotten_runes_wizards_cult","WIZARD",18,"Forgotten Runes Wizards Cult","3044022074329d7d625a74520df582387542ce422b6c6f69ea8e3ebaa0803864b46d818e02202c476347010ad79da30bd52353279ebf85d52bffce3e81366d625301364ebd3e","0x87931E7AD81914e7898d07c68F145fC0A553D8Fb",!1,!1,null,null],["ethereum","formation_finance","FORM",18,"Formation Finance","30440220133fc58a7d59a0fa7125280046c4bde9572bf459dce40d15a9c00ab2fddfa871022056eb3ba1c6f5b3acb684eaabf5409ac2ada8fe7db3167eca0cdab268391379bd","0x21381e026Ad6d8266244f2A583b35F9E4413FA2a",!1,!1,null,null],["ethereum","formosa_financial_token","FMF",18,"Formosa Financial Token","3045022100ed46ef85b6e7cc53d750c87a761a167a1511aae647d02942650cb80dc5345de40220672c43381365beb4554f1d6c041123db60d47f565d63d58d4e19a139b4cd5a07","0xb4d0FDFC8497AEF97d3c2892AE682eE06064A2BC",!1,!1,null,null],["ethereum","formula","FML",18,"FormulA","304402200e4e75409d923d1f721f9216e88279e217d8f4fb92c26a305162bb0fffc7d67e02202c15a5f29fd69d301064dd8d9fcff8f53d224234dd43d041f41b4b1533893fe8","0xdE522a2778E4554707E6a8Df36a4871ce9967BB5",!1,!1,null,null],["ethereum","formula_revv","UREVV",18,"Formula REVV","3045022100b557f59474fa54808a1ae5fd5421c58f69b373e13b166580866a70187cb51e3102202e1b7b91b443e10ce1deaaa5c278924c37e40e24adf178fc016da74a0362384f","0x72B19558b05706708B612FBBe86B71446eafC002",!1,!1,null,null],["ethereum","fort","FORT",18,"Fort","304402204b6589931011c9d7fff4797657d3af22780529a4cb1d87f69777056eacf8441b0220027ff54d841d823fc88f0cdf4085d55386c27133c6e182837bdaef53ccd6abd7","0xa1A39fEfE86b87a056F19019db6b1A14Ff24ABeb",!0,!0,null,null],["ethereum","forta","FORT",18,"Forta","3045022100dd6846f3a1fe73fc67a7decdc625fdf00f921933f0b2a71c051df6548fbac6bf0220250baa6f82bbb7c0a40ec0358ee6797b174fe134a5c3b78e513bba9887d6c43d","0x41545f8b9472D758bB669ed8EaEEEcD7a9C4Ec29",!1,!1,null,null],["ethereum","forty_seven_bank_token","FSBT",18,"Forty Seven Bank Token","3045022100c982bca20aad289451d92c4ee3435e1b6a2cdb1947b3508d3b4541dd07a2400002203feb7cf5d5df7192bf0ac36d045418179c247d822bdca8e8529f46891ee3dedc","0x1ed7AE1F0E2Fa4276DD7ddC786334a3dF81D50c0",!1,!1,null,null],["ethereum","fota","FOTA",18,"FOTA","3045022100baa71144cdb986ba2a605f2156b5df134432fbec2eaa950d16daaeaaba9171e602201dfcddbd990a205181d43b9bbe0c2559d49b3507c827a938934a7a2a8c92e6f4","0x4270bb238f6DD8B1c3ca01f96CA65b2647c06D3C",!1,!1,null,null],["ethereum","foto","FOTO",18,"FOTO","30450221009c007f0c770c22cd96c73cc7c451cec9758b3aebf862863e15914fda1aa1188a02200cd8fcb37656933d0123186903a7dbc5db626968c14e6e508184781e52798496","0xF6eA0E60cee427B90aA36f327eE61d1d4CABC49F",!1,!1,null,null],["ethereum","foundry_logistics_token","FRY",18,"Foundry Logistics Token","3044022058364ba976f65602bf7c07a76ed24137fef5f9b6cc20c611fde063253c8f6c5f022054a7939453f2360d74788f387ec2dcdc5d4719e34fd9e0b68867c158e3721dbb","0x6c972b70c533E2E045F333Ee28b9fFb8D717bE69",!0,!1,null,null],["ethereum","fountain_3","FTN",18,"Fountain 3","304402205164c1db0ba501555bcf01b82c635f57e5d503888e68e2b1308d2ea9ec608d9502203d70d7bd275425c2753ff7b193671d8bd02342679447bf1869e7e20d88be839e","0x56325d180Ec3878A9028AfC7B0EDCEe7486Cc9df",!0,!1,null,null],["ethereum","fox","FOX",18,"FOX","304402200b1b6acc9d3fa9b3202d2833fb18586f784f30476aa93e2183e41915112153ba022035dab8b000659dcc808dab564680fe99823f8a351bda6240cb7432f971a951d7","0xc770EEfAd204B5180dF6a14Ee197D99d808ee52d",!1,!0,null,null],["ethereum","fox_trading","FOXT",18,"Fox Trading","304402204085c4e93a156d24bd1a8f4cbe70a59f8d428a767cde768a5aef7ceddbc5da5002204ed40a960c6d5c840e8f571132dabbcf8ac7c10dc25d609ad194883ec99bdc92","0xFbe878CED08132bd8396988671b450793C44bC12",!1,!1,null,null],["ethereum","foxswap","FOX",8,"FoxSwap","3045022100f748313d91b7a304b2a06f44c4f30435a78ce7fe2b252273ae7094f2ec70036d0220587c94e143ec8db021ee10814d41461e648874da101c6452c44e630efac97e92","0xA0b14DDf5dCd9d8B0a3D191bCD1404Fba9aF33E8",!0,!1,null,null],["ethereum","fractal_protocol_token","FCL",18,"Fractal Protocol Token","3045022100c08a9b804bf588d0ab3dc2da923365f242a1b02be419807157be4803fa39cd2a022005ffd08f909a554006ea12ac63902cf55c7fe5449cd541df45e92582aa0ba75b","0xF4d861575ecC9493420A3f5a14F85B13f0b50EB3",!1,!1,null,null],["ethereum","franklin","FLY",4,"Franklin","3045022100a11c91250fcf2098eeb52918192033b498838f385dbb32563b48d05432eb5e9302201aceb999f39f87131eabcd75a9ef07a64fc437f2bf2bb6ca9eb637417f4e0d85","0x85f6eB2BD5a062f5F8560BE93FB7147e16c81472",!1,!1,null,null],["ethereum","frax","FRAX",18,"Frax","304402200936ce19c0a31eb38bff0b86ffe2473d4223d0b371e166a035adccd63ec557690220124182ec464507758a2006e0d538704d7122ea73ff61f7ef4b633e12dce1ab27","0x853d955aCEf822Db058eb8505911ED77F175b99e",!1,!1,null,null],["ethereum","frax_price_index_share","FPIS",18,"Frax Price Index Share","3045022100d0a23135fea23aaeb205aa65e697ac90f4b4b6bf12131e4dd39152502b3b54b4022047693e51ae29f3be6ff71ae9d1a7d6b6e355cf68efc5391544ad7cabcc75e9e2","0xc2544A32872A91F4A553b404C6950e89De901fdb",!1,!1,null,null],["ethereum","frax_share","FXS",18,"Frax Share","3045022100ee07f2deb204e16af5496145075b42625560973242e5badec2db5d6dce98617c02201ecf0c9be082f120e623a491946c8c217c08bd4c2a51c9cc7fbc53bc82137539","0x3432B6A60D23Ca0dFCa7761B7ab56459D9C964D0",!1,!1,null,null],["ethereum","fred_energy_erc-20","FREDX",18,"FRED Energy ERC-20","30450221009c2420ed47de02340ab1002357d85cb4d1f6c3838456ccf5755866a65e7bb71e022037c013dd93049449d6059b56b01c9a9840def6c4eb04efd2d18e1071bb5281c2","0xd8e2b153E94daeC5fE657A49FF59bb68fA67f126",!1,!1,null,null],["ethereum","free_coin","FREE",18,"Free Coin","30450221008c6f146d79df1244b380a4e25ba12d0a8e26b592d2d2eadb2d7afd9a12e108ad02207045786c0ac2328727ca6688124361d487f32a60153e39b4e4f4ad7df5b87045","0x2F141Ce366a2462f02cEA3D12CF93E4DCa49e4Fd",!1,!1,null,null],["ethereum","freedom_reserve","FR",18,"Freedom Reserve","30450221008384540add73840fef07afcd4ea449742327e2eb141c9ca631a74aeb7de33027022023bba1a774158b9f282c32ea863624c36150461bb5df28332cb1dc50e179f6e9","0xC626e0619aC79AFEa9281c8eB9b1a9f9D3Fab532",!1,!1,null,null],["ethereum","freelatoken","FREL",18,"FreelaToken","3045022100af2b4474caf128cdadd7cd7180ee18ae3de29912480df679d515531dad152f8602206d9d8baa098d202e1ad483c9e11df88cf3b8add2f305e9a2cd2e5c0d96455970","0x29CeDDCF0Da3c1D8068a7DFbD0FB06c2E438FF70",!1,!1,null,null],["ethereum","freeliquid","FL",18,"Freeliquid","30440220404fbca7d9b68c2bcaf3c593d22550458265b153834ee6f1275a0104bed977d6022008fb870f05f1ef65fca6b95fa1a05ea8e08fb785cd618d9a2ee2b94e78ccb0d4","0xfFED56a180f23fD32Bc6A1d8d3c09c283aB594A8",!1,!1,null,null],["ethereum","freewaytoken","FWT",18,"FreewayToken","3045022100d7eac0459a34ab9f5ab1528eaffc3f49494529b7d7a8d91c4fe7212f6597e2df02200a9d9f1a29c7055aa7cc2a40df55a273204d8d5aba439f50c930ba2baaf24182","0x4A7397B0b86bB0f9482A3f4F16DE942f04E88702",!0,!0,null,null],["ethereum","freewaytoken_","FWT_",18,"FreewayToken","304402206ed199379fb445dc8e37baacc9027a39464ce5c60e9456fc86af7ac0e4cf771f02200e43755a83e9e033fc1efdba4afc7f6eefeb7c47e0da721474631c8976495e99","0xf151980E7A781481709e8195744bF2399FB3Cba4",!0,!0,null,null],["ethereum","freight_trust_network","EDI",18,"Freight Trust Network","3044022033aeff962b2821b44172e69080f2b9f16d9841d5de43881c5941789f455ad07d02201499be65cfa892569ec9b00d7cbe5fd852288ed61814a2cd9a5f6ca84dd2fa37","0x79C5a1Ae586322A07BfB60be36E1b31CE8C84A1e",!0,!1,null,null],["ethereum","freldocoinx","FRECNX",18,"FreldoCoinX","3044022034896e93641da3810fe13e2a5ebccb1adf1793fbf55eac1f43f16937feb0e879022075d7cb6e9b888a266793cc56e876fcd443ad60d538e9940e3c49822a883db8b7","0xd8B8E1Eca89dA014E67fDbc2014eaA8E171079bF",!1,!1,null,null],["ethereum","french_ico_coin","FICO",18,"FRENCH ICO COIN","3045022100d53eba53d64231abc2b708d2f807ec341666ac712b77cf06208c7d5604d989de02201633c95bc4898374f28f4b827982a229ff92d8a10f78946ec87752bfbc218b29","0x7e442206dA059905050bA02BE63CBB85c559EB04",!0,!1,null,null],["ethereum","frenzy","FZY",8,"Frenzy","3045022100f3b1a50362622d1c477c651c93cb252536c097c56967700b603a3d5352b455ea022004a7c46b5e246df1f6b73761e8dc6830292aa7c675988942fa00890d98175c97","0x8720C8429b78df262360b0F39917a03f9B894746",!1,!1,null,null],["ethereum","freq_set_dollar","FSD",18,"Freq Set Dollar","30450221008e7900504371dc59046d4595bdfc14f431b346e28c1ad904256319091da408cd0220267be2252cb48de8b7ce8cff2d6fac03d3046b64d877fd1cf4ee6d127132eec7","0xD27af03cb73a29eE2f37194c70c4Ee13B68fE8cb",!1,!1,null,null],["ethereum","freyr_coin","FREC",18,"Freyr Coin","3045022100db349d33df26ed0000db568a18d49912d1d40470aa83f674ad8937fd68ec44a302206cbf533e167b426e10d00bc5c3065570cef67b62f44dbc662ff303ea4f219646","0x17e67d1CB4e349B9CA4Bc3e17C7DF2a397A7BB64",!1,!1,null,null],["ethereum","friends_with_benefits","FWB",4,"FRIENDS WITH BENEFITS","3045022100b5b52a673f501514e582c34a766556a9f12e3b16217f2918814bcfbc7c3ebbc602201213d505406caafac6f83007c4c307b2aaaf91fa07ea2a697d50d09df7766c0a","0x7d91e637589EC3Bb54D8213a9e92Dc6E8D12da91",!0,!1,null,null],["ethereum","friends_with_benefits_pro","FWB",18,"Friends With Benefits Pro","304402203aa57690256cb02919d97c3f0272168a922628c0e32743448a0ee9d538b768a602206939c24b5a73e54a032b9648393e4c61040ded0cb2e05763a67079b7661dd6c0","0x35bD01FC9d6D5D81CA9E055Db88Dc49aa2c699A8",!1,!1,null,null],["ethereum","friendz_coin","FDZ",18,"Friendz Coin","3044022038f321b62b654c42b94070b3467f627971edb80cd44227cc43eaaeb41e2f581802201eeca9915e5ce99a01c2c94161b2c1180d020a0de98e9e9990708a88f7064aab","0x23352036E911A22Cfc692B5E2E196692658ADED9",!1,!1,null,null],["ethereum","fringe","FRIN",18,"Fringe","304402201402cfdbead8a4a8495a2e02a9b04462c7ff36c4cf3bb10862e2ffae811d499b0220292a09505a2dcc1e96402707a44cce4db9aab020ba3498808d557e4b8a7d7674","0xC9fE6E1C76210bE83DC1B5b20ec7FD010B0b1D15",!1,!1,null,null],["ethereum","frmx_token","FRMX",18,"FRMx Token","3045022100cab375bd5a30945287eaa9b522c813a52d2668057c7be9e1032e30426d154c9302206ca652cd5ec36e09f8c23094d4000b7e8db6361cf2025dd8d558880162e93d59","0xf6832EA221ebFDc2363729721A146E6745354b14",!1,!1,null,null],["ethereum","frog_coin","FRG",18,"Frog Coin","3045022100e1b20dedf98facbdbed32d87c469c38c2776bb31c4f71c42f83fd5e142781362022079935aa04284ad263cde0d25f026eae8acde190bb093bb088aa10bf9ad9e4f67","0x726516B20c4692a6beA3900971a37e0cCf7A6BFf",!1,!1,null,null],["ethereum","frogdao_dime","$FDD",18,"FrogDAO Dime","304402200080635325f3d172f26765519839ac30be7701ba7fb1d2819e4453e63add483f022003abea1de8b736eeaa3e62f3bc864fe1202e258a3e115a87b95699a9c5ba3e55","0x14Cfc7aEAA468E8C789785C39E0b753915AEB426",!0,!1,null,null],["ethereum","froge_finance_old","FROGE_",9,"froge.finance (old)","30450221009d0a13ee3535731b71de50cafb648f368ac61041d955c09cd712ddbd5933cc51022036d9bc5e841ae6634e417bc38b8b4b5b58a52bf7e9ed15203c04988b4a0a5f04","0x29502fE4d233EF0b45C3647101Fa1252cE0634BD",!0,!1,null,null],["ethereum","frogex","FROGEX",9,"FrogeX","3045022100fc59766e1ec7127131d72488538b39965e5286864e31eee68069570d79bf8a8702204778b0d82b69a5b12c33c96e96e8bc57873f569849fc1b7740e2f2372cd09173","0x5fA54fdDF1870C344DbFaBb37dFab8700Ec0Def1",!0,!0,null,null],["ethereum","frontier","FRNT",18,"Frontier","304402205531af7a2f391eac103939425b9c1f7a54254fd7eec8e5e6d4dff4f1dbf92cc9022032f5ccfb1635dc883600ee5da18d51234867b1230da8c628ee4575b0ce20d6b5","0xa3aE22304E4bec05327E7812768b11253b5a7c85",!1,!1,null,null],["ethereum","frontier_token","FRONT",18,"Frontier Token","30440220083190dc453bc8f6334818292b9c1769a19a47708d3bce25afdea314839eaa3702207cfdbab6955130a7c6617a5a78aeffa3c8a86d118aec9b004fb0c2c30802bf52","0xf8C3527CC04340b208C854E985240c02F7B7793f",!1,!1,null,null],["ethereum","frozencoin_network","FZCOIN",18,"Frozencoin Network","3045022100f7244b7666c606471ca57d63b84739f9414795db1919520d2358561fcd9b2e1402200958f918f0eda529886f3233f27b0dcd08b44f2749e93a7516847a21063159f4","0xE5aeE163513119F4F750376C718766B40fA37A5F",!1,!1,null,null],["ethereum","fruits","FRTS",8,"FRUITS","3045022100935506c26338b4488104832d653199ee0a6c2105a79f29659865de92a5cc1d9302205297676b1128a6a716fa0c046ab1fd5a67b62cf563161767033882f5f3a69850","0x229B239b7d00AA2A41C8B74B1dB50a821f58D31a",!1,!1,null,null],["ethereum","ftc","FTC",2,"FTC","3045022100e0d042824f7c905c212caa333dfbd7aafff866d2fcab4159a7a64db929efc932022076f7f2391440c226ac8278d27fc884be64cc396b40a1d6db12721becec7df0ee","0xe6f74dcfa0E20883008d8C16b6d9a329189D0C30",!1,!1,null,null],["ethereum","fti","FTI",18,"FTI","304402201e2fd9060d9cc5764165060b69b89d8c903fe5ea4529a8abf16f59a49f2d5c3702200eaadc61d59c6bf8004ad1b4c46f0cf435e03cd55e49246ebb125414b62458f7","0x943ED852DadB5C3938ECdC6883718df8142DE4C8",!1,!1,null,null],["ethereum","ftx_token","FTT",18,"FTX Token","3044022035754b038a0590f62837510aef563c1d038fe1e203993a5db808f7da55b12eba022013c5403e3b6200821fc6d388b1fe39b02b8f1dadc3a389c891a76c816fc262c3","0x50D1c9771902476076eCFc8B2A83Ad6b9355a4c9",!1,!1,null,null],["ethereum","fud_finance","FUD",18,"FUD.finance","3045022100cb612b51e0fa610b7d6f75589656f0f917b09bbc32a41a785ba8eb7b3a801d24022051d1c2e5eec627b05c5b4370d82e77eb87eb7925ed844937fd46f1082ba1f0ed","0x2688213fEDd489762a281a67Ae4F2295D8E17ECc",!1,!1,null,null],["ethereum","fuel_finance","YFUEL",18,"Fuel Finance","3045022100c4eb65a9a6168a8706b4c8bc34d5f8215cf5485d8e1bd53c1872890554aaf2d2022014f5bfbc76d64d2d64ae48d75540aade38a2aa6f2098ae5ad1b190ace97a814b","0xbD301BE09eB78Df47019aa833D29eDc5D815D838",!0,!1,null,null],["ethereum","fuel_injection_network","FIN",18,"Fuel Injection Network","304402200d0da23de7d88bef68d7d5c87aeb6de32062770522846757f830e394966da41002201deded388ec26aed9d1f2e02d237bc332f9b285558eb0432c05df85455b2ddce","0x1Dd7B2878B6d5671Ed602e60818b0D9A0CD1CDF7",!1,!1,null,null],["ethereum","fujinto","NTO",18,"Fujinto","3044022062473d2ce1fae0e420fb05a4733913b4e62e63ab838278ffaef5246f3002304302205f8488b89989c12f01540901eb157045873af9c1483713e9b97413f654d6cad9","0x8A99ED8a1b204903Ee46e733f2c1286F6d20b177",!1,!1,null,null],["ethereum","fulcrum_dai_itoken","IDAI",18,"Fulcrum DAI iToken","3045022100dc9436e21c70743eb14801aacebef409e32708280a4a5fc7eec99b90886ed8ae022056cc755bab779c29f5f1385da4beb284d7b4f14658ad94b3b54b725e1c96e88b","0x493C57C4763932315A328269E1ADaD09653B9081",!0,!1,null,null],["ethereum","function_x","FX",18,"Function X","3044022029420c6480a0fb1f23b712972b07e712973e33171f194ad00400789159dea76e02207aadaadf0c3e9ceb5860f95615881ebbe10c808d4de574b6601cbf495f380d0d","0x8c15Ef5b4B21951d50E53E4fbdA8298FFAD25057",!1,!1,null,null],["ethereum","fund_","FUND_",6,"FUND (old)","304402204a3e80eb373cebbad08d85c45014260eef2ba5b328dd509a56eaed0107b3c6e1022027b1551ba548623bf9fa90dd5b451f6f6ca7e65a767ecc120959f088910ed25d","0xd20bcBD56d9D551CAc10a6bC2a83635BFb72F3F4",!0,!0,null,null],["ethereum","fund_of_yours","FOY",18,"Fund Of Yours","3045022100c4496e55e6b068e867008eb134b63caa3c6d3a0151b5b308febbd6e7ee57918d02203fe3b095d8061245c72fbd1122cc8a0616e8a57126a15a7c24ef4ae7316b7673","0xAf91E8aFbe87642dC628786188a54B78580A4d76",!1,!1,null,null],["ethereum","fund_yourself_now","FYN",18,"Fund Yourself Now","304502210088c3aaae8e4192dd002404bf0bdd49ec3ceae6311b7eb0b97745b974bc974fa90220241cb211baa9b92e89fdf1c5014ee08a4776b2aa374600749b862b4cdfb0ff15","0x88FCFBc22C6d3dBaa25aF478C578978339BDe77a",!0,!1,null,null],["ethereum","fundament_re_1","FUND",0,"Fundament RE 1","304402204d88a401070ff9cfb0b928f87f1b0ada64ab74c05363bee58a54e968ebc6b89f0220206aff875f2005b21e8fedc52c34586c5cf0909bd042af106166f176391949e2","0x423D8321be3DD7EbFF5B6c7da2EF6614B8547acf",!0,!0,null,null],["ethereum","fundamenta","FMTA",18,"Fundamenta","3045022100c23aa91642e3b2369ab7e87edf68c0957a67bdb2171e744bd55b7058117ad78502203b1e41526e980acece7226f9783516fb9cca53ee53a6d3c34091f5844b0c6dd3","0xAa9D866666C2A3748d6B23Ff69E63E52f08d9AB4",!1,!1,null,null],["ethereum","funder_one","FUNDX",18,"Funder One","3045022100dcb9a7682f1eca5b8a89592e5482f9309630bff9601b242d8c5d752737caefa50220184786c86ca84fd292b7af082525d55bd43c78318c497621c121e0c51ea88837","0x30D862bbbef3B75f700D6ba7D323B95708eaafAA",!1,!1,null,null],["ethereum","fundrequest","FND",18,"FundRequest","304402202ce7b98db1d748c557dd11a77bb5d07ad11840f48aec3a9567a9a7b069ee8617022026a8004f8d65a8db7608a7bcee2bde12beeb4d535774e3a2cbed3c3a3821cf83","0x4DF47B4969B2911C966506E3592c41389493953b",!0,!0,null,null],["ethereum","fundum","FND",18,"Fundum","304402207b3c6c1ba291401b1fb64aab375d7d3dd76b4aaf22ce57ce01fd0fa6986ea76a02204a857f0ca64f36d6a4f87e67679dfe310675babff222fb0f05408ecc32c0cf66","0xbe6c01A67Bd0160FE3e731555aD014895B225Dfa",!1,!1,null,null],["ethereum","funfair","FUN",8,"Funfair","304402205f0e3a7cb37b8cec0e0d1f0a60cdbe2f8bb6ae068bc836575ee944f6a6d8929202206782427b523f8ca5488ca51b5516fe8fda2e2f728a386a6201d40e338871709c","0x419D0d8BdD9aF5e606Ae2232ed285Aff190E711b",!1,!1,null,null],["ethereum","furucombo","COMBO",18,"Furucombo","30450221008b4ed40f18e426787a6d40cf5bcd5dce5385623170bd0687b5de94e7740b4d6702202a2ee8ab1ac5125e078be15e11590f3bec7a3e6e39ba2dd762271b72341289e0","0xfFffFffF2ba8F66D4e51811C5190992176930278",!1,!1,null,null],["ethereum","fuse_token","FUSE",18,"Fuse Token","3045022100f19545cfa1edb33da3db44f4e81878c4faac1f5f6b8ee95aebea879c6830497402204ababd6409b7a4efe52bf5a3056c8ad5b82e63a669c7d9f079072cc0318b0669","0x970B9bB2C0444F5E81e9d0eFb84C8ccdcdcAf84d",!1,!1,null,null],["ethereum","fusion","FSN",18,"Fusion","304402202fb29948e144d3c08f712239c4db103203801c02c12b8049a643736b48c76e3202205520739b3724a22fabc341103446444b185b0276ce4b7ead5bf81cdb2b35acaf","0xD0352a019e9AB9d757776F532377aAEbd36Fd541",!1,!1,null,null],["ethereum","futourist_token","FTR",18,"Futourist Token","3045022100ca91520dadefd57dd9a99b3a9180aace8ed79ddeb1bf5a5d25c4f4c722174cef022054e0d2203fb950cbc3ab61a5ce3e4ec9443307fe61b13e8719adaeb8082bc306","0x2023DCf7c438c8C8C0B0F28dBaE15520B4f3Ee20",!1,!1,null,null],["ethereum","futurax","FTXT",8,"FUTURAX","304502210099cb604938f1e47b7186fa22f1156562e548b4b99c76a956bfbc10b532ff83d702200592d4c01dfc66104a83e3780573792bf2d8795f7713712775aaf11b19a15724","0x41875C2332B0877cDFAA699B641402b7D4642c32",!0,!1,null,null],["ethereum","future1coin","F1C",18,"FUTURE1COIN","304402201e4870c55d13d0ac07c99b770824e549f9b65ed2023d5832792ed9b6b0be4a9802207a1268ed7b2fe23ef04244271b7b8c063374cf6c3616add046e542038354f950","0xb0a0a070640B450eB136DC377208469ee4F49fbc",!1,!1,null,null],["ethereum","future_cash_digital","FCD",18,"FUTURE CASH DIGITAL","30450221009c63b3c94fd14b089bdb4cef09dd6ff53c8535470c20c3d6f993b08cda11d5db022022b69301a5e92839cd7b4f5f221f46dc92abf45cd8a41ecc54de373b5eacc29b","0x74dB83Feba1574fec860413Eb509d1DdFb1b730B",!1,!1,null,null],["ethereum","future_of_finance_fund","FFF",18,"Future of Finance Fund","3044022056940fddd9814d06308291131d3fd9d97ac4a43267a6795385eea8dccf1cc249022064f07f6e777361c1e21cb22f4578cb8692fa7ce9d07605077b5bfac37009baef","0xaBAfA52D3d5A2c18A4C1Ae24480D22B831fC0413",!0,!1,null,null],["ethereum","futureswap_token","FST",18,"Futureswap Token","3043021f21909367ed3f2161859a157317e8886585c179fe331b6923b764d1fc5fa53f022001f35855bd9697c754629ffc1ce9e45304b9d4172bd3cae896ee540945ff6eeb","0x0E192d382a36De7011F795Acc4391Cd302003606",!1,!1,null,null],["ethereum","fuze_token","FUZE",18,"FUZE Token","3045022100f28ce00978095aab1ba5845455e58426c1ce30eb426703b74b1fec071be1c3e402205d07054004de6df507ae9d9bfaa0857dd06898db9bebd6751ec5d5494347983e","0x187D1018E8ef879BE4194d6eD7590987463eAD85",!1,!1,null,null],["ethereum","fuzex","FXT",18,"FuzeX","30440220010aa47505c8443b0e4bab7cf4dd2c0478dc5d79906de6e1c915d0d3e5585d8b02203c7f5b4cc1f0361d721e4e17bd90fe91f6fa566bbe5228702dfb08119a4d776e","0x1829aA045E21E0D59580024A951DB48096e01782",!0,!0,null,null],["ethereum","fuzzyinu","FUZZY",12,"FuzzyInu","30440220229065598f3a0e880fc08fc2d9c6aa972cdf36da12c551df420513944252c1b70220214bc8eb16ae129a441c2c71594124d53558bc0cfc4474b4b2b672a870c569dc","0x4bCDdFCFA8CB923952BcF16644b36e5dA5CA3184",!1,!1,null,null],["ethereum","fxpay","FXP",8,"FXPay","304402207d4e68347822b6123ee75ca6cf860d861834b5650db513af9c22518266cf2c5902201e5b55e8170759ae81ccbec5b551cf76c34316638528bd8829edf63a469a2568","0x14dDda446688b73161AA1382F4E4343353aF6FC8",!1,!1,null,null],["ethereum","fxt_token","FXT",6,"FXT TOKEN","304402202937d39c4aa0c4f6fac6e7684dc792087b95a1847e9b0a33c5bd70c8fb98dea10220522f116391545c5267604df79985717448dbbd68337169dde94e12cae9cc1a3a","0xF83Bf320A4A3f4bf365c3114b6F19FC3F6b1228C",!1,!1,null,null],["ethereum","fyooz","FYZ",18,"FYOOZ","3045022100b423bad81c9ef7f02b8047be13f50e15b923c3a65eb9517d9be316ea43bd833b02206e2540efe17417a6bf0c918db06c20680a5163d2db5739e649b03827163942b8","0x6BFf2fE249601ed0Db3a87424a2E923118BB0312",!0,!0,null,null],["ethereum","fyooz_nft","FYZNFT",18,"Fyooz NFT","3045022100b6851ce428f114dcb8b3fc3e4071c8aed03682368e3c40efe75032b3f7a5596f022071bd45ace5903567bca1c93ae7922dd7215d34e7a65bbe0de872f4fa5d909a4d","0x19A2cF2A1B2f76e52E2b0c572bD80A95B4Fa8643",!1,!1,null,null],["ethereum","gains","GAINS",18,"Gains","304402203d38802fe6aa1849e1a38ecb707e24c2baba3f74bf38ccc992e3dc0c473e2dd8022052479f58fba0909788c5bbf919b05466a28bbc1953537269d479735518129552","0xd9b312D77Bc7BEd9B9CecB56636300bED4Fe5Ce9",!1,!1,null,null],["ethereum","gains_v2","GFARM2",18,"Gains V2","3044022005cd51bfbdb38fbe313bd94d19b48be44600beb83c7435bca64fa96b3edecd6c022076c6d44486d3e64883df18216b98af998fa7e67b38ea8b76c14c3163dcace756","0x831091dA075665168E01898c6DAC004A867f1e1B",!1,!1,null,null],["ethereum","gala","GALA",8,"Gala","304402207994f2b5c6357965b23bd667cf6f52bcc03fdb2a3413998d4a7503672e18123302203fe2d1c0832d4d2afcfbb6c0152cff3309f132857e53a9b4207fe1872c90ac82","0x15D4c048F83bd7e37d49eA4C83a07267Ec4203dA",!1,!1,null,null],["ethereum","galacticblueindex","GBI",18,"GalacticBlueIndex","304502210098f1f30a0dfcb448decba7d6eb556601cb69dd8a14f0e913844b9f4f02735ce602206951708c89d5c9412b1b2b5520bf362ff61610fed86be1c75fa3681f5dd7fe3f","0xCB67bE5c54eab9462967eE3C03C35bfFfeB801cD",!1,!1,null,null],["ethereum","galaxycoin","GC",18,"GalaxyCoin","3045022100c76c3a313fede0699a35ff1185b8f3a17a0dc34d485050e3861f15c05184a1870220697e2f329d66ea93c0dcb00194254e9e692aec6065f7cff1ee178695d95b1c12","0x486A72811ae65C4C814Ba929d6da35497d21296f",!0,!0,null,null],["ethereum","galaxypoolcion","GPO",18,"GalaxyPoolCion","3045022100c2347acecc2ffff18c5c792bc82f6d474ea198e471c2d51e8fd5f55637029ebd02202eeaeb290929ab0a8fe8002a3dd40c1dc5a11cb5c74bf9cb1371cc2c6be81116","0x5CF501E64786444E025C5b24025f98399538ea5d",!0,!0,null,null],["ethereum","gambit","GAM",8,"Gambit","3044022025b35a86c00ad38dc6acd646ef4eb81a9b6a08be4ebd3eaab23e3f4567ea134f02201b75659e757a39bbe6f848fee8447059afdd7d043d87ca07e4c31baa1b5dbc97","0xF67451Dc8421F0e0afEB52faa8101034ed081Ed9",!1,!1,null,null],["ethereum","gambler_shiba","GSHIBA",18,"Gambler Shiba","3044022025a241864eba66aac89267544cfaf19fdf5126f2a211f7988861353eab064f5c0220244ea3747b523f14ad719387c78f01056337ffee4dec7902ab0d3ec725be088d","0xb892249939AdBf6D7851864CA9A5c7D2d537af97",!1,!1,null,null],["ethereum","game_coin","GAME",5,"Game Coin","3044022066bf7456ec1af79e1803466a2169e49acaec1282c8322e932298c56930bc256a022075db66fc2fc91fc0fb94cc0d356a2685544e6deb091fad282f31344c15a8b867","0xD567B5F02b9073aD3a982a099a23Bf019FF11d1c",!1,!1,null,null],["ethereum","game_credits","GAME",18,"GAME Credits","3045022100a4be3d41316d93b55ae9744ded4e7fa25afceeb362fef7cb344618e31e582b940220337116575b48d9397533e4984105e2c20a039f80ab0645c9d7c8953bae65748c","0x63f88A2298a5c4AEE3c216Aa6D926B184a4b2437",!0,!0,null,null],["ethereum","game_of_bitcoins","GOB",4,"Game Of Bitcoins","304402204b505f0bfa2caff54f3ab8f26bdf310ba288cdef9e457f59c31a205a64f0c96b02201ed95d1c18a96607c9957a90dfbc8030e7983e889b49a76594edc57026c9e8f2","0xE400013Df86249838B720eaB5a7F816aD82433c0",!0,!1,null,null],["ethereum","game_on_players","GOPX2",18,"Game On Players","3045022100f4865bfc60c01ab6fccd0101f5b4d6fd3aebfb8748ba8a6842c70a3cb4d7366502205c63d8e0401153ec816ce697cf57c8d6018396923cf7c4717545c0379b1fa359","0xA0AFec7853385740C4431bEC4EaB36dffaF41f78",!1,!1,null,null],["ethereum","game_x_coin","GXC",18,"Game X Coin","3045022100b63fd624d46155699fca586958c42a29fc859d7e760ecdb869fd78901e31e5ec022005b4bb541270a390e6ae1c8fc18d9da428c1572f6bfa4c8903bcc213ca3dcafc","0x953e22945b416730bAD05009aF05B420e598E412",!0,!1,null,null],["ethereum","gamecity","GMCI",8,"GameCity","3045022100fbb970261d09227ecabec6f11d53a3020739f5a5bac9ab74caadb625bda22ff6022018580e625da09cd043c07d6d1e8021e3cd4e06e3a9c2fdbd5829aa01a061e47b","0x5Dc74029509752F4ed9A609C2bb52216275E4c1D",!1,!1,null,null],["ethereum","gamee","GMEE",18,"GAMEE","304402205c77956a9d6dc0ace60cc0e9a19bc0c7f9a69b7aa273895e312f8a081e01c60d02204d636fde5231de1a8e6058ba563c4c16c5e507ff998320752389a9013d2d8724","0xD9016A907Dc0ECfA3ca425ab20B6b785B42F2373",!1,!1,null,null],["ethereum","gamefanz","GFN",8,"GameFanz","30450221008690f50b6665769a622c8d005ed5c5312bd25d769e302af20ac1ceae4a08085b0220788a967abe5e0d033ff2b9117ebd7467cb524e1c70747b5307104485cacada57","0x3930E4dDb4d24ef2F4CB54C1f009a3694b708428",!1,!1,null,null],["ethereum","gamercoin","GHX",18,"GamerCoin","304402204110c567c544ec1508ca162206e800a3bb2b45b4464e47b5b39e038a681c255102203f12c5cb93c8d163cb480958dba24b7b703cfe300b3f33190bdd37cad69db3b3","0x728f30fa2f100742C7949D1961804FA8E0B1387d",!1,!1,null,null],["ethereum","gamestars_token","GST",18,"GAMESTARS TOKEN","3045022100e3ce2d47dc8e618d3d77dcc9bd9abf24fb2d3ebf10ccbe2311d61619f2212ef20220452bec012654da0fb73f75f38fc0688b18088bfda59424f3f4a14f222ff3eabd","0x67a9099f0008C35C61c00042cd9Fb03684451097",!0,!1,null,null],["ethereum","gamestop_finance","GME",18,"GameStop.Finance","3045022100ef4830eba77d71c2a501b7512490b913c41dd67f140e51390c4119c8936725b202200c4a9df7af9ef084489c9e1c1ecedce7a7c091c101450cffe4b9f5a9e6eea499","0x9eb6bE354d88fD88795a04DE899a57A77C545590",!1,!1,null,null],["ethereum","gameswap_org","GSWAP",18,"gameswap.org","3045022100a026cf922263a237f0127fa0e4a50da2c34f237bac18de4726a075dde07044f1022027b4d266acf85dc01e78886d270cb3c0ff4d93a723a0b00466a964a6d16fd3d6","0xaac41EC512808d64625576EDdd580e7Ea40ef8B2",!0,!1,null,null],["ethereum","gamma","GAMMA",18,"Gamma","3044022014bc3321924a97d33dd3b3dc60af1636b6eabe32776a73e103fa266bc8e4183b02202799a6f782ce1b7e37dd1c704e7f8d8013dc53ac6ab0c0f718120b3ab0459718","0x6BeA7CFEF803D1e3d5f7C0103f7ded065644e197",!1,!1,null,null],["ethereum","gamma_token","GAMMA",18,"Gamma Token","3044022003a81580230e1ebeb2152200436fe30407dff246acaca5c8eeeb05b0b57646c902206a2e732fe651aa136831ba1db44f7bfd81f064b5593384536d9429b8267303de","0x1E1EEd62F8D82ecFd8230B8d283D5b5c1bA81B55",!0,!1,null,null],["ethereum","gamyfi","GFX",18,"GamyFi","3045022100a8258a0935fb25ccb4b8d98d7f1162fb5a383299db7ed779a27570df50a0d6a0022025c949e192339bf17ebd2340a39dc6991c7ba3331dc77d4013408466a40af386","0xE4fA3C576c31696322e8d7165C5965d5a1F6A1A5",!1,!1,null,null],["ethereum","gan_punks","GPUNKS20",18,"Gan Punks","304402202122540d51dc7b6c78eb18bd3250c6915a00481838368ae84d147be1681fdcba022026b63228e4650fcc737fbe228eaf47e21e47141fbaf11e4e994fb1825339c7cf","0xcCcBF11AC3030ee8CD7a04CFE15a3718df6dD030",!1,!1,null,null],["ethereum","gana","GANA",18,"GANA","3045022100badb7f742d2a42ac7269b94301487134b310ec1c62d5e76c19851b72ec094b350220466851e2a05f6da589acb9c6e91c7b5fc237d11f63d2733b851256fa5d8ed9f9","0xc0EA6306F6360FE7dCAB65D16Bf1a3AF92C79Aa2",!1,!1,null,null],["ethereum","ganeshatoken","GNSH",18,"GaneshaToken","3045022100ac8bf16410b9b879e54ebb20f4cdef979db28afd1ec7fa68da4e044808beb93202203c8d884a28fe80b1b524f683c0e82237c42660beb8533fef6957ca344587c815","0x7C5fF719a6c76fe643e9eCd0F11F146a2de05F14",!1,!1,null,null],["ethereum","gaptoken","GAP",18,"GAPtoken","3044022015ac79162149e75ec350634e4ea1d8c5be092df1b5321e1191372d16b49f409f02205f24db30231cda5cda3dbd186343d98c031820e620697e3db5b65115f7738f5d","0x9570eC7ab05D61877ff7Eb180F837c7c079c4844",!1,!1,null,null],["ethereum","gasgains","GASG",18,"Gasgains","3045022100a5fab34e91529a82245b3acc9a22faa3d5fc559ca519f037b17b14e50d651168022036807f66f98c95ef26279aaa7989ef36dac8a01768c89b3446ba6d91f279e166","0xc58467b855401EF3FF8FdA9216F236e29f0d6277",!0,!1,null,null],["ethereum","gasify","GSFY",18,"Gasify","304502210087b615ca8150e366fc0f01756c4a02f57bbeef3774fde2f0976f6bb6ed87d1d102202b4b8dff1e68ee852660d2ba037743dded6f6a9210ef21abf164e9c167c7188e","0x02F3A1819851D127bcD6F468253d7A498567eEe0",!1,!1,null,null],["ethereum","gastoken_io","GST2",2,"Gastoken.io","3045022100a16df72b0f008aa54457ae585c34b612b4e2462a411638d51d68aba609d3f42a022020826f0b92ca7790a2d643fe01ef0d23a6b08acee242f20a2823cf87d3219ff4","0x0000000000b3F879cb30FE243b4Dfee438691c04",!1,!1,null,null],["ethereum","gastroadvisortoken","FORK",18,"GastroAdvisorToken","3044022047a7676443b3e34b7c75c49f5a29172ba4a0362ca966166ccb27c86b10fffd420220179e4e7fcec79b92addd0c2876823aee6b32b7c891c6aa0d989fcc66dbceaecc","0x5bB1632fA0023e1AA76a1AE92B4635C8DBa49Fa2",!1,!1,null,null],["ethereum","gat","GAT",18,"GAT","3045022100f241af0a8588158deb09cdcc9f007e2ed8c1c98f70d8c45383b6da1214473ba302203516a598183bdce3d19a1f1051d2a929e7894fb4fd149a30f4062b788caf8b50","0x687174f8C49ceb7729D925C3A961507ea4Ac7b28",!0,!0,null,null],["ethereum","gate","GATE",18,"GATE","3045022100f8bdf70060f359ec3a43dc5c54c5919d730722d11284bcc25c7cd8d590dbbb3f02204a8941933f9f45d02a396b6c75f807d0c2754319d3efac8c59e864a3e903f745","0x9d7630aDF7ab0b0CB00Af747Db76864df0EC82E4",!1,!1,null,null],["ethereum","gatechaintoken","GT",18,"GateChainToken","304502210094a7768058b0348365301f861d81016b58fd91e3d4a371163a47ba54832d42ef0220009c5747c533f1d276884b9737c9df24a21782b96a096f618ecc4e0ba161be24","0xE66747a101bFF2dBA3697199DCcE5b743b454759",!1,!1,null,null],["ethereum","gather","GTH",18,"Gather","3045022100990b935b517ddff9beeed6b7d2763ab9acc8b5c508200525901ff23ee0df70c60220781d8e1776597368861117c525e9a9785b0a9534b9141794709c80d6ff42efa5","0xeb986DA994E4a118d5956b02d8b7c3C7CE373674",!1,!1,null,null],["ethereum","gather_old","GTH_",18,"Gather","304502210092fb9033ee07e49c2d3792751d68ecc5a310d9af3829fdb5a881728d5310538f022041a6ee61d5828f90cebd0eda0d0288f0344a41565042a77fd0a6fc0cfbe20a9f","0xc3771d47E2Ab5A519E2917E61e23078d0C05Ed7f",!0,!1,null,null],["ethereum","gavel","GAVEL",18,"GAVEL","3045022100f62a5bdc6af6df856ff68453a03bc6dceff177c53fd741af1e4cb0b1754ee2290220489ef0b262b3a0c130bbb70a68ef9ba01ac4153c942766a2e6d9dae9e23d7f19","0x708876f486e448Ee89eB332bFbC8E593553058b9",!1,!1,null,null],["ethereum","gazecoin_metaverse_token","GZE",18,"GazeCoin Metaverse Token","3045022100f4c5bc5493f72c38eaec55052896974e00bb74ee4261bf1972a1d8d94e60abad02200366ddff045001789229ef8ca379692a4b64535f57afe42f29ce142cad7d49b6","0x4AC00f287f36A6Aad655281fE1cA6798C9cb727b",!1,!1,null,null],["ethereum","gazecoin_old","GZE",18,"GazeCoin (old)","3044022011fdd3194b21cc7000f28bb247589a386c9ef3c9ecfab1847211b70d58122f0e022062af03705151fcce4d6b749d9fb2061d7f02621c830bcd941bd310a1dd415d57","0x8C65e992297d5f092A756dEf24F4781a280198Ff",!0,!1,null,null],["ethereum","gazetv","GAZE",18,"GazeTV","3045022100f481fd0a7a1cac9000c41d47ddf5c009b1d89fe8dccef1e8072f89e11461a79702205e8a2336c63334966207182b9e19f9516fb9af9e83e2858a0d12bf39869a8fd2","0xD1E06952708771f71E6dd18F06EE418F6e8FC564",!1,!1,null,null],["ethereum","gbt","GBT",18,"GBT","3044022068a1c9d6f0886f7e4c8cfa4b74868e487195d8f631e5d16c9a84c3051d46c04102206056fd6ee23c15375ad3167e0867b997999bb87bc51cfe424d2a2cabfe3d3801","0x7585F835ae2d522722d2684323a0ba83401f32f5",!1,!1,null,null],["ethereum","gcash","GCASH",4,"Gcash","304402202eb8f91c020230340d71626dc3a5f95dacd20225e0b7747f04b9d8ec2aacf88602201493a2c4fe04fa123afd6f2656a8eb009b737a682ff4bbe1e2ca6c70e4350647","0xc53f6C2Ac35D30cc47Ddf3C320874b21dFA38791",!0,!1,null,null],["ethereum","gcbn","GCBN",18,"GCBN","3045022100d0ca462c594f83498d20d2a48405b439ad546de56afd28a757acc5a1d0d4888302202fefe12eb7f285be7902001ec24d7d249225c5ea97c08c560a8359b8b6d7251b","0x15c303B84045f67156AcF6963954e4247B526717",!1,!1,null,null],["ethereum","gdt","GDT",8,"GDT","304402205df428bf9ef2811ed334a65ba1d9c349b5ed4479e532cf07e0115b6fd71529da022070218ee48a85a09ee846a8adb272dc18331cf378ebde5cd07629425ccab1dd2f","0xc67B12049c2D0CF6e476BC64c7F82fc6C63cFFc5",!1,!1,null,null],["ethereum","geens_npo","GEE",8,"Geens NPO","3045022100e3fbab249b4b189b36d3f51adf70e5b780ecb3da7a5936948b3df4cdde5edd0c02205272e1c4d51b1a031f96a07d7113827dc6a3bdab5872073b6afcbda2d0d8b4bd","0x4F4f0Db4de903B88f2B1a2847971E231D54F8fd3",!1,!1,null,null],["ethereum","geeq","GEEQ",18,"Geeq","3045022100bf1541ddd3b5245de931f35ac98bb5a6f6de8a08066668012ec888a870f8a9de022075be42fc15a1a62b62b2249597ad62f81af6a120bb42e1e6be25be09387a5e65","0x6B9f031D718dDed0d681c20cB754F97b3BB81b78",!1,!1,null,null],["ethereum","gelato_network_token","GEL",18,"Gelato Network Token","3044022057fcd464bca4bc41b565087e03345dba35e3fa7077124fc3245ade2426d85c2f02207c6e256308c8ab5a8634dd45ac9f560aa56e9049d14ba1acf1cd87f38d57d889","0x15b7c0c907e4C6b9AdaAaabC300C08991D6CEA05",!1,!1,null,null],["ethereum","geld","GELD",18,"GELD","3045022100dc1b4f770bfcafff296dd973d0d39fa3f5176223c2aea7e00cfdc5ab398eaa8002200fff2b4a00d7d99db1bc3b5559a42c361ab17a3c27e343852c1092787abc74a9","0x24083Bb30072643C3bB90B44B7285860a755e687",!1,!1,null,null],["ethereum","gem_exchange_and_trading","GXT",18,"Gem Exchange and Trading","3045022100c08ca6ee184ea5bd1fd09cb94a25f0edb1c5fbc58161cf0989533867c0fa4d0e02202e630fa3786e5f5afbfa4c96783c08310905d4a980d40e90d7bc64699323d6a9","0x28d3E409bb9bC58F1ca6E009f8fC78A1db85e6b7",!1,!1,null,null],["ethereum","gemini_dollar","GUSD",2,"Gemini dollar","3045022100a5d9e70ccbf82a3a8720977f9953841054e789b1d8f4f0ab2f183e0cbac45f0802201168e1cbfe41c2473dee7dab7a92cf4e24b8b4fc0afba8a652b8da7c6af37bdc","0x056Fd409E1d7A124BD7017459dFEa2F387b6d5Cd",!1,!1,null,null],["ethereum","gemmy_coin","GMC",18,"Gemmy coin","3045022100f6580657e3a25b7430e15f91d8f58df6c0f87f324e6741e094de1de4f5e8bb18022009785888a12f1a40f214aeeacd1abbed184932fb073fdd4de7f23fdd78e94060","0x68FeC0bcc61727dDec5CeCE2683027A383492710",!0,!0,null,null],["ethereum","gems","GEM",18,"Gems","304402200884d5fdacbaa5a3638f0673fb8ba0ed97b1f3a93a66c566a03fe3755914bf2302203fac362767c82b170f2ac99dd500f338f07d11fc677622974e331c930d614045","0xc7BbA5b765581eFb2Cdd2679DB5Bea9eE79b201f",!1,!1,null,null],["ethereum","gemtoken","GEM",18,"GemToken","304402205c68c78f5d1b296ed27faa0a6cff94e2cfec798f81c47ec029d103d130569978022014b1f40f7600dd7e89eae8cc5d425b1d6731c0467c17867e0407274c9f15975d","0x90f62B96a62801488b151fF3c65eaC5Fae21a962",!0,!1,null,null],["ethereum","gemvault_coin","GVC",8,"GemVault Coin","3045022100d0b94a4649a675ca72784bb6de9a6ef8031f3114f407c31bbfe4248807f72e5f02207e38226209e1569a7f55abd6294adb356a5d6cf2835175109db3649339ad54de","0xA57392548087453deC6106e670bBFB849276b358",!1,!1,null,null],["ethereum","gen","GEN",18,"GEN","304402205f4cb0ba2ebb68f2cee2d2c1bcab216f00edbbe2534d53628ebdf348ae00c40b02205016d6c9ea733def06e03bca51ad03f50d6741bd5241c5cab95c2ee8d9f668e5","0xBCfDAeB22ab6e10DfB99546E6240155EDC1084f7",!0,!0,null,null],["ethereum","gen_shards","GS",18,"Gen Shards","30440220432dc147812c112b93e64e2762369e97e0ffa60ef28376c0ceb52cb3db5e1c23022073464df5d4eb8cd055fffe10ef427dc000d50263669a98028731d53f2ae592d8","0xe0B9a2C3E9f40CF74B2C7F591B2b0CCa055c3112",!1,!1,null,null],["ethereum","genaro_x","GNX",9,"Genaro X","304402203b84e8dd0be36907c65b4f81db526c155daf690fe5366abc67633cb345cf542202207c0d0a1fded76b77d7db317c8ca70d5dcea1233a9928d5d3e679979e9f197313","0x6EC8a24CaBdc339A06a172F8223ea557055aDAa5",!1,!1,null,null],["ethereum","genbit_bunnies","BUNNY",18,"Genbit Bunnies","304402207bfd5c7755ed731872d1228eb2b0b1585ef1652ac8ddb6f7eebbda3166d95b79022065fabeac6210f83ea5b5bf1855f1eb42d335d94ddfc6d04db58ec1f8ab9bed8f","0x33e70C9EFABDf151f5c674A4ADDC104874980c3f",!0,!1,null,null],["ethereum","gene_source_code_chain","GENE",18,"Gene Source Code Chain","304402206f2c6fd10dec39f6fcabee7db2622a292998d8d597bfc35403349f6cdf000e3b022010883e76cd891284aec7ce4c0e940853f4794b14c07aed665dca5c7a023bc803","0x884181554dfA9e578d36379919C05C25dC4a15bB",!0,!1,null,null],["ethereum","gene_token","GENE",8,"GENE TOKEN","304402200cd8cd5b9b231a75b7fd4fe09a334c0fd9ea31532da58a66ae39ef0a3c8b51be02202ca7f151b5cef513044ad75c516d5140f6a0e77660676ea6ac93e48c8d6ff76c","0x6DD4e4Aad29A40eDd6A409b9c1625186C9855b4D",!1,!1,null,null],["ethereum","genebank_token","GNBT",18,"GENEBANK Token","304502210097d3c59dc17afdb1464947364f2cfae1d2d70674699c14ded853478d161685af02204db042c141e66ca58b8c4733524e980c8eeacfe6365bb3d025326572b59c0748","0x7Aa46A51F717404D944051AF3075bBcb49B2288B",!1,!1,null,null],["ethereum","generation_of_yield","YGY",6,"Generation of Yield","304402204f05da52128d8afdaf3526efc0d86c6a96486a3d0bcd8c0cc4f25b2e31e3b473022003bfe7f141474e48362d90e99985db4af6c5a83c74d0a6fe826f88b69ae48d9e","0x11b0a8C0FA626627601eD518c3538a39d92D609E",!1,!1,null,null],["ethereum","genes","GENES",18,"GENES","304402201f83d34e7c4698346807f95eb34978326bb8c918334dee226f1b846254d18ae1022039db0f5a4bd2cd89660c0d51a929b2d6cbcef4ecf9e1907681dbe494668eed75","0x1673A63aA0047294d75954226f3F2F98De77b16f",!1,!1,null,null],["ethereum","genesis","GENT",18,"Genesis","3045022100e3c4c82f7d797f3ecbe6a226f003f15c32a6bba34aa3d9d0c76474079e0f76c602203bd89dac711a1ddce54c33310313b50c5873bbd0b61400188e496e763cfeefd7","0x0f767338244418310342D49b02183715691D988F",!1,!1,null,null],["ethereum","genesis_cyberkongz","KONGZ",18,"Genesis CyberKongz","304402202636a613cbf2412cda775b29af50931e188439ba0d28e40e3e979ce3d4649d5302200ee627aa7b122aa12e8d5ba83e5257198feccc868f37320ece65743735e696f6","0x5A235C0b4cB8d0e80a5c3bF4d2faD5c32E440884",!1,!1,null,null],["ethereum","genesis_mooncats","UGMC",18,"Genesis MoonCats","3044022012ff3b2f38e961b0c6c69af0fbf7de2f91908b39504e3bf66344704463cfda36022065543740bdad2c10c78d465f9db3e74dc746b794ebbfc152852e829a925d45bb","0xD4f2249dd6c26446F1413f6d97F14fcaa7792545",!1,!0,null,null],["ethereum","genesis_mooncats_","GMC24",18,"Genesis MoonCats","3045022100f654a236142f43aca948a72fe9fd284ab008d21e6d261ebeb0bc3549b742bb5902206975fd92159e86ce04b28d7eaa9d9e13d451e470b56d5de193c11f1f5486c1dd","0x06141F60eE56c8ECc869f46568E2cb1e66BAaf41",!1,!0,null,null],["ethereum","genesis_pool","GPOOL",18,"Genesis Pool","304402207c719124106513f3cd4d5589a3ef07f2df440269b4829d11afe7858379107b4a0220772c522909576c9faaff415a498bd77d6f3e1a2d0c2f0bbe67f87b6bb7099b84","0x797de1Dc0b9fAf5E25c1f7Efe8dF9599138fA09d",!1,!1,null,null],["ethereum","genesis_vision","GVT",18,"Genesis Vision","3045022100e41bca382d787979d54d1df89db4a57100a947fa73e559f15a67b5f6ded1d8b8022000d189a5f2e643541b3df7462bba23677f2a7d5720e05edb1673d3745b791527","0x103c3A209da59d3E7C4A89307e66521e081CFDF0",!1,!1,null,null],["ethereum","genetoken","GENE",18,"GeneToken","30450221009fd28c62c1f826763cad63e7b0e293693dc248db0efdfdf34a62b18d02b7f60a02204a8d7f43ab897fa0921290f5c7d1323d838090a2e9a3fba9036801a2b8f274bf","0xf6ec87DFE1Ed3a7256Cc0c38e3c8139103e9aF3b",!0,!1,null,null],["ethereum","genevieve_vc","GXVC",10,"Genevieve VC","3044022003eccc47d2f45b6226acd0a0ee8da545c4be36427b2265536002eabdcb282f0b02200a7a50fddf2420e2877e174b054bfcc8091d30543bc56832f7e3a071f6d1879e","0x22F0AF8D78851b72EE799e05F54A77001586B18A",!1,!1,null,null],["ethereum","geodb_coin","GEO",18,"GeoDB Coin","304502210099e363a5b8b978c4ec6bd52e1c63ffbbd2816b0eddc0a99db827a3ab6f9726fd022001fc3ab771de943631c251ded5c5e35249bc801b127d1fd472a11f8d1b4f84d9","0x147faF8De9d8D8DAAE129B187F0D02D819126750",!1,!1,null,null],["ethereum","geojam","JAM",18,"Geojam","30450221008d28440471af8472bd76df738a2ac157159b5cafbb0f1c7378e9c97cdc438ed902205f77c2d951c2681def8cc7e3255a34cd001d7726b93787094df09ac3dcb7f080","0x23894DC9da6c94ECb439911cAF7d337746575A72",!1,!1,null,null],["ethereum","gera","GERA",18,"Gera","3045022100f41e92a8a45270f60ca26b097cb19ef391984c66cf9a10b9466d5d847ab9927b022004b8a98abab96b29d5afba3b76c283352b74b34d01c5fbceef26931b5b6e66bb","0xDe5eA375FFBDc8b25a80fe13D631E8Ba0AB4BB02",!1,!1,null,null],["ethereum","gerowallet","GERO",18,"GeroWallet","3045022100ef0d5d23a96cefd6f3bd04d7b71c7d33b9bc3b1324bbf258507d08e9bd60dc3b02202a03c23073a4e367ca43370cc1442449bde6460a1ad12676160f850679bee533","0x3431F91b3a388115F00C5Ba9FdB899851D005Fb5",!0,!1,null,null],["ethereum","get","GET",18,"GET","3045022100cc94bdef1d9ed69fa553a9b7e7f7edbe9dc7a1fde52cf852a22bcbad18e7a3a702201513b9396a17a228bdfdbc68a473e76c19739108ef8ff7042e0cf523177325e3","0x8a854288a5976036A725879164Ca3e91d30c6A1B",!1,!1,null,null],["ethereum","geyser","GYSR",18,"Geyser","3045022100ab97c04b2d8b05420b5dc643f2e3ac27e35dd8e0118adeb0ea3e4c8f2b3b2d1002207b84d9c1eadf67630c702b8e81ed8804eb0a1f1a203f3ff672343bb0a7c1f979","0xbEa98c05eEAe2f3bC8c3565Db7551Eb738c8CCAb",!1,!1,null,null],["ethereum","gg_token","GGTKN",18,"GG TOKEN","3044022057c877af303b4c268f2a4df96a0b5f03ee7489039e289328329d944282877cf6022052ab8984f10b2a194e513e43a4d1f088c82c731b30695f1fa69ed4aea513518c","0x1F7e8fe01AEbA6fDAEA85161746f4D53DC9bdA4F",!1,!1,null,null],["ethereum","ggcoin","GGC",18,"Global Game Coin","3044022003c6b01eba01b7e365f3975c777479e4458c1c8226cffec111967d72d00eb61802204700708b9fadf8ac06b9776ebdeb6a02b9890de0a8349e4ea4ee2876dd039f0e","0x7F969C4D388Ca0AE39A4FdDB1A6f89878CA2fBf8",!1,!1,null,null],["ethereum","ggtoken","GGTK",18,"GGToken","304402201fb7414fb03d9d4f59838a1aebb8f73c26729d532ba0e95285b185b9f692ee4002206c0608c880693c8eda93bb72b40b9cf07e47afdeaa1cf367e73616258f27a293","0xFA99A87b14B02e2240C79240C5a20F945ca5EF76",!1,!1,null,null],["ethereum","ghostmarket_token","GM",8,"GhostMarket Token","304402205706cab798aaf654431e9ecac18fe79d0a89de31f7474fa6f921bffb34debc8202202f565f824145bb161748569f6be5e1da08aeb2dec2e5d1c9d79178cd23e39499","0x35609dC59E15d03c5c865507e1348FA5abB319A8",!1,!1,null,null],["ethereum","ghoul","GHOUL",18,"GHOUL","3045022100b16e16b932923c55a334ab0f58f872cba78106b0770d44e66e02ae697e91adcf0220098ba467e3353869b104b6d6d56fc9a34f860922ea5f1a32954dabe554c233eb","0x3bb86d867A9F3adDF994cdaDb210Fa82F0D4157A",!1,!1,null,null],["ethereum","gifcoin_token","GIF",18,"GIFcoin Token","304402205560d800b24a055d0290765867034b47877e29007c7e7c16921bb6bd6420902f02202f441369bb0cae4c1ab235c300c29510325a4463d3095e1df1f0a1574a15401b","0xFcD862985628b254061F7A918035B80340D045d3",!1,!1,null,null],["ethereum","giftedhands","GHD",18,"Giftedhands","3044022013d6623aa6b7b2d007b3722e4c2f4a91ceb47ceb56b5e310aaa708b1c27ef1f2022006fa1448207f917239c2b684448b0ecd7fc374ec06a101bd6fb21406ce63f31f","0x3b544e6fcf6C8dCE9D8B45A4FdF21C9B02f9fDa9",!1,!1,null,null],["ethereum","gifto","GTO",5,"Gifto","3045022100cd8c299a172cfb3bc9f67fa810b48548f1357a85687708118fa4d9ab774c5f240220239f4539d539599e4ba17076f95a7b4283096e06a6feb717160a2f5f8a4018e8","0xC5bBaE50781Be1669306b9e001EFF57a2957b09d",!1,!1,null,null],["ethereum","gigziblack","GZB",18,"GigziBlack","30450221008d31140856b4b38d3a71979060a59db46f9d258bd03654d5d47afa3cabb2258802204ea9927cac8ba9ef3238c14928243f12e342c23736d92fb4d669b015ebaa591a","0x9DAe8b7F6D37ea8e5d32C6c3E856a6d8a1d3B363",!1,!1,null,null],["ethereum","gimli","GIM",8,"Gimli","30440220183ca8b4a36992cc783c7bd3bb1f5eceff65648470549dde6bcdd31de70cefa802204fd999552a54895eaa64931d4e88edebdf91b290d66658894730ad0dd931f3b8","0xaE4f56F072c34C0a65B3ae3E4DB797D831439D93",!1,!1,null,null],["ethereum","gimmertoken","GMR",18,"GimmerToken","3045022100a79040d3bc7c86ee17383b9af79e20ec93b128977be0fce82651f493bde4d45002204e2889df23ba142224ebaf54414864c207d21d645ad987d880e68e3fce07e637","0x9B8D5f3402F74C7a61d9f09c32D3cA07b45c1466",!1,!1,null,null],["ethereum","gitcoin","GTC",18,"Gitcoin","3045022100ae5f120aa26e1dab3146bbb9eb218805f519e3a2dba50e5e25f237fd2c56fd02022060faea049198bd15c8473b9f645e1163b91fb22090aeb2785240a3e692310be3","0xDe30da39c46104798bB5aA3fe8B9e0e1F348163F",!1,!1,null,null],["ethereum","give_global","GIVE",18,"Give Global","30440220761c3e22338c1a6bf0af1d3fbe7e85a34742cc67154a17af08ddaba6fa6e947f022003003791ea8e124b1812e0ee67eeee3c9a01eb88ed2b77f36b17232fd290ab97","0xba8E5a4c64c1Be42230910F7B39A6388F3d4297c",!1,!1,null,null],["ethereum","givetoservices","SVCS",18,"GiveToServices","304402204f0df9ed51c25ee14e35d1d26976cbd4960ad41454f12fd19b443dd8198ad4bf0220168145b1d80b1d307cf54efbe8c48e5f10fa1c2c073f4cb9a881ac048e1f5844","0x9CEc686ba6f07D6135B2091140c795166Ef5b761",!1,!1,null,null],["ethereum","givingtoservices","SVS",18,"GivingToServices","3044022010bca9cee83b8ad12a4817d3aa66c162f3dddef1465794de54875832c518731b02206b71a51bc63c08231af2aafaa7690e68e2d6d9c01897d0ccd75cf00520a81829","0x7ca62545a380e7d71F8F5CFa14B9211002075930",!1,!1,null,null],["ethereum","givtoken","GIV",8,"GIVToken","3045022100d898d90ff6a3679a40bb300309d7b97ba9e3b5e768d7a0a42a0ea7a0abadb7be0220380899450d46ca941af203ddb872c24ccb614ea808eb209f854fde34f075e199","0xf6537FE0df7F0Cc0985Cf00792CC98249E73EFa0",!1,!1,null,null],["ethereum","gix_coin","GIX",18,"GIX Coin","3045022100e46632e31d20cfc60a5e52dc812986ea0c4c4028890a919fb47d1188e5d2220202204e8c095483e0870ed24f8c13ac8b5f5f509db3eb56ceaa66dda1b7787cdc868b","0xbD434a09191D401da3283a5545bB3515d033B8c4",!1,!1,null,null],["ethereum","gizer","GZR",6,"Gizer","3045022100d2613eb260939634344625ad6d5db43f0f69d2a694bad4a973270d1459f0b0f502205cc688f58c97a4d33f38a0d814e6e17ea0be1fc3203d7c27f2e21f2b37d8bd6e","0xE638dc39b6aDBEE8526b5C22380b4b45dAf46d8e",!1,!1,null,null],["ethereum","gladius","GLA",8,"Gladius","3045022100ba08003cf086c2b2f35eee8ec517a926ed049b59d1e08fa336ccf309fc7c618202200401ad0df2bf89e7c498656e8f33fc388c1395f1cd5451a56d36e5114b0fc3c7","0x71D01dB8d6a2fBEa7f8d434599C237980C234e4C",!1,!1,null,null],["ethereum","glextoken","GLEX",18,"GLEXtoken","3045022100b5dfa1eac0161f6c173eb2fa22a8fd36de02657e495913b377e5dafa594ea65b02206369ce77d85fd2e3da2b34510c59ddd4dee0e99afaa0f40117fff3fbce30610c","0x0A0DB74Ef8b4480cc29b7D68647727fEeB1ea4eC",!1,!1,null,null],["ethereum","glitch","GLCH",18,"Glitch","3045022100c2bfd7c4fae142eb8be8b0fd16e0e505081bed938e51a4b3e2fac7eb52217e9302207017fcfe6799011d681c6ffa5f39410684c902426bbbd8605835e263e4af4646","0x038a68FF68c393373eC894015816e33Ad41BD564",!1,!1,null,null],["ethereum","global_aex_token","GAT",0,"Global AEX Token","304402207cd5d36ccdd20884eda76799602ef5ac21a4ea9b57ca1bbba211009a536c1ab90220295eaad08b23ef936a390629c538b6d686ff476775e32952c6ada4e4720d0d37","0x24efE6b87bF1Bfe9ea2cCB5A9D0a959C7172b364",!1,!1,null,null],["ethereum","global_coin_research","GCR",4,"Global Coin Research","3045022100cdb64161ac4c1d6f3bba8e29e2fa2b1054c8e2680cc16489f7da8b3013e7de96022009884ca2d52ff7c4545ec38935d3d0524040c4d667590f1c14d3c2899cee682f","0x6307B25A665Efc992EC1C1bC403c38F3dDd7c661",!1,!1,null,null],["ethereum","global_currency_unit","GCU",18,"Global Currency Unit","3045022100b9809957eef8f0fb97f4cbd9834873cb315930fe86d89ae1b148ddff6e699b13022053d3c2fa1601309655379861b00626395941d422c1cceec633422e4cc2bf2bf6","0xa4ec83c8907888d006A37debF755ee39766f38ae",!1,!1,null,null],["ethereum","global_defi","GDEFI",18,"Global DeFi","3045022100bdf48c69dafb6c7ac819bf6afc966f90a4ae069fd8383c7a3de3f9d6b33ce57002200d95a3cdef4ccd9754e796adadb22240c72e870c39da7a5f5b77f90e99e33ba4","0xb5e88B229B18e748e3aa16A1C2bFefdFc8a5560d",!1,!1,null,null],["ethereum","global_digital_content","GDC",18,"Global Digital Content","304502210095af0fbd517b8c00f80b68bc995927dae44169d16f9e5d86188e7227d20d148202202057d1e03731f55229ad6397cc3354fea1090c1aeb7a964a000066bfc26ced65","0x301C755bA0fcA00B1923768Fffb3Df7f4E63aF31",!1,!1,null,null],["ethereum","global_human_trust","GHT",18,"Global Human Trust","304402200e9c8fda8af5f9bd4f1af7de5c9b9aad73efd83db28fddd3c6da5f6beef9b94a022036f6e1520c311faf5e53457bdef8d223c699f6fd85f5c894a686ab81282324c0","0xbe30F684d62C9F7883a75A29c162c332c0d98f23",!1,!1,null,null],["ethereum","global_rental_token","GRT",8,"Global Rental Token","3045022100979b675420b390d44e3a528bbfeb3b2e39309cd37a3e3a1d094c6e20a25cfc7e02203947e2973c47eb4406ba9e8038284857ba7f1ec95d1067bf5221954826b716a8","0x620fA2993046A53dF1f365fa3fDC9e6c7763AF96",!0,!1,null,null],["ethereum","global_reserve_system","GLOB",18,"GLOBAL RESERVE SYSTEM","3044022046998b9c80c1b031966b8c43ca3ed15b4676784e9e9ccea20d2374329cb91a61022008743f87438e01a0a90782bccb60d4781676ed047f85deebd004ca3d643cbd4a","0x45F2aB0ca2116b2e1a70BF5e13293947b25d0272",!1,!1,null,null],["ethereum","global_social_chain","GSC",18,"Global Social Chain","3045022100ed0f831a4594e989451b37a3ec14f583457f56c86273ec6b4453495870c4cd1302202e5ce725d01aca4c984400796d78c15ece38b82940889d73b1547e4814efa42f","0x228ba514309FFDF03A81a205a6D040E429d6E80C",!1,!1,null,null],["ethereum","global_usd_token","GUSDT",18,"Global USD Token","3045022100ea6c0ed147c514687440bc4ab20c44ad5e9eb584c48133eb30f571e553c91bdd02202648096565d4f0749d43af69ef77222b960ee5a61b47004ee1d65058d8aef5d9","0x3242aEBCdCF8dE491004b1C98E6595e9827f6C17",!0,!1,null,null],["ethereum","globaltrustfund_token","GTF",8,"GLOBALTRUSTFUND TOKEN","3045022100f46fcac870a1da6eaf7dae1aa0b70dcc5b1243f0fbcaba0bcf44ac9c7425d1e0022023b22784d1b0c76c5388a71fb4f725cfb2fb6a33f75a7dc4c488180287b46e0a","0x87BEFC1d367190F2B9cbe9B689e0e5cA658E3b71",!1,!1,null,null],["ethereum","globalvillage_ecosystem","GVE",18,"Globalvillage ecosystem","30450221009f93836aa7268aab5b8b9f5afc709905ff36e961e6dd29376c8ff6fd5b00994902207b331ebc6f131c9926cf2b5fb558605341c168a1d490b53d4ac650fa7d52f801","0x81705082eF9f0D660f07BE80093D46d826d48b25",!1,!1,null,null],["ethereum","globcoin_crypto_platform","GCP",18,"Globcoin Crypto Platform","304402201e5dcc191cfce7f5c022cd7600394831bbd124f5cb9ceae34092ac9ed63f4fca02205e0b7dd2ff0a5ead80710be618f1375e8b2be0e2e88e86e975d552a37d5eb2dc","0xdb0F69306FF8F949f258E83f6b87ee5D052d0b23",!1,!1,null,null],["ethereum","globex","GEX",8,"Globex","3044022030b8603ff287e6f455f6a85b68a93d9858c3d158602415c40615317fd00c66f4022039b9e2eb05f366f1eef23ca075ebacd15e4ebe5f9ed223e12b7fb7e0e2aa0210","0x03282f2D7834a97369Cad58f888aDa19EeC46ab6",!1,!1,null,null],["ethereum","globitex","GBX",8,"Globitex","30450221009dba8b635b7d58e6209714f93b3c01d25ad1f6c0d80059c45cb18743d48118c40220150f20621abbea7518ce4c721549187bbd790e6f70343dd0ed861db12ee1a0ca","0x12fCd6463E66974cF7bBC24FFC4d40d6bE458283",!1,!1,null,null],["ethereum","glosfer_token","GLO",18,"GLOSFER TOKEN","304402202637136ba6c5ff3b7e48d2ddf7720d281e39b3b9a2196f2e83d1d91ef972e20202201537487a1c2bf4d984b18afbbbb0085907631437903d8b7ee49c0f22a0b6a324","0xC0e6737A29DE7a00e2f6011924eB257106CB082f",!0,!1,null,null],["ethereum","glox_finance","GLOX",18,"Glox Finance","3044022060394ccc4e46bba6dcf480e523e1fdb795ab8a46d2817c250e72f77ec546795e022039bc07827f38e95fe6e2a37d66b11970d81d4158623560f0d08ae2d03e62ee59","0x0222bE1F1B8413b2d7d76EBfC9e0285C1300692f",!1,!1,null,null],["ethereum","gluwa_creditcoin_vesting_token","G-CRE",18,"Gluwa Creditcoin Vesting Token","30440220249d9debc688192ec47b69f640ccbb06b117ab0f744df836d88d66c8bf8917c002206f300bae71592d26014f3e196c3e24ff8715ac57cb3b63e037dddeb911a83ebd","0xa3EE21C306A700E682AbCdfe9BaA6A08F3820419",!1,!1,null,null],["ethereum","glyph","GLY",18,"Glyph","3045022100d423f3f14fbf6d78abb5612c95f4536bd958523bb9a82dd21b32faf5bd36c8d60220708dd90ac1420b2ed70dd55f2a6ab82b709ee47f53b9ad2848ac42fca3f22884","0x299948bc2CA54a5e814B19849327A6d9a0e7de1b",!1,!1,null,null],["ethereum","gmb","GMB",18,"GMB","3044022034d723716331ed60c50d0378f1d9c78527b38037a8c0afe3118e4dcd18dae43302207129b5761bc01db00f7d0871c506379879e31ca38fbaf25bc31ea6d7021f1da8","0xA0008F510fE9eE696E7E320C9e5cbf61E27791Ee",!1,!1,null,null],["ethereum","gmngcoin","GMNG",8,"GMNGCoin","30440220691b6ba0ce52063a4386d50ad7173f983266fe7a043ae4fd18272618f0e336f0022068606bb9bbc8ccf395e618f69739fc58733ba90e77ca0b54d64b9e8db8ec78d9","0xCF81E6FDB8d7a743c3d4C3542a5356ff197eA1C0",!1,!1,null,null],["ethereum","gmo_jpy","GYEN",6,"GMO JPY","304402202772658805075f060edcfe3dae8f89899a84f5c33fba5b15b1aaae227711d08b02205ff462a8bea3b24db40fdab5a9706c14721535afaf7f83735517f0f47ed9e709","0xC08512927D12348F6620a698105e1BAac6EcD911",!1,!1,null,null],["ethereum","gmt","GMT",18,"Global Messaging Token","304402204e56b32a16eb236a61f37b3a5933373902f8911df04de3d6a513f249f0fb0912022029d0c09dee39f5ce22bc4c787c6a4eda8292bf39bab6f25d57a809aed0f56e0f","0xb3Bd49E28f8F832b8d1E246106991e546c323502",!0,!0,null,null],["ethereum","gnosis","GNO",18,"Gnosis","304402207c0377904dbf01e240bec12919a032e0ba0011f701afe705f1b08042c895d18c022072dfa251c2113f39b884f3e9254e1822da8ade15cc66911c7beffa8d261879f7","0x6810e776880C02933D47DB1b9fc05908e5386b96",!1,!1,null,null],["ethereum","gny","GNY",18,"GNY","304502210096ea4afc9c9483a37ac66068ac4b207ec0da3350a4e2be6f1246129cfbda75e1022075a4f1bbbdf1d1f8f3c88b7231a6c13243126967458da61056135e88c6fae8a3","0x247551F2EB3362E222c742E9c788B8957D9BC87e",!1,!1,null,null],["ethereum","gnyerc20","GNYERC20",18,"GNYerc20","3044022100f531ba183ade0169c4d68b4e500ad330c670a65eac0fa72e109c777af54a232b021f7b4f9e8274464c126bb6568c7dca9a036bb0f5fc21f8217b4e1f30f4814a18","0xb1f871Ae9462F1b2C6826E88A7827e76f86751d4",!1,!1,null,null],["ethereum","goaltime_n","GTX",18,"GoalTime N","30450221009ce7e808c482cb4ca9ce28c6fc4fbeb326cdc0f60b9f9775b501085339cb908b02205dffa1f4af3057d9ae6bc229515f9169477afab73c8e74fe2b9c902eaa99332d","0x916885426255235DA7a0BD90447986c00675f9EC",!1,!1,null,null],["ethereum","goat_coin","GOAT",9,"GOAT Coin","3045022100e59b0db51b5b9e4fb96107017848b64f544a8c8d2907bde4c93e5c78ca5812b302201fe6e77aaeb7a1b553f074375d3ff174e396a814aa65eace79f6f21cbbe6d970","0x37611b28aCa5673744161Dc337128cfdD2657F69",!1,!1,null,null],["ethereum","goblank_token","BLANK",18,"GoBlank Token","3045022100f56ea636508cb5bd204ec8a522f3e032495eac82b900e42328d5c6d9d898af5b022077976ffa66c14683568e8843c3721ecec534d64b0f29f970005bb575673b0a25","0x41A3Dba3D677E573636BA691a70ff2D606c29666",!1,!1,null,null],["ethereum","gocoworker","GOCO",18,"Gocoworker","304402207fcdc1901c4894ac59497318853c959fe962ccba1a11653770560e2785a16b29022012c9bfb7667eec8bf787cd9001bd159a7fba3bd54f473c4a46a119591bf04e55","0xE5A9f7D738A839E93E611b9BfA19251542C72427",!0,!0,null,null],["ethereum","godl","GODL",18,"GODL","3045022100f9401c2e13d69c2d7e536dd4a906934c90229157a6715cc2dbd4a03c249f4d4d02202dfac740308415106ecd18aa3cc666dbebe943055f89c651598e38bade50c1f5","0x7f509465C38B66BDeCEC2CfDc842e11809CC8357",!1,!1,null,null],["ethereum","gods_unchained","GODS",18,"Gods Unchained","30450221008b3c1048ec6df97a02663b190eee6a7bd001f5ff9c0a839fd45c643f9d1b34ed022033e0b140d706d5863b2b0e9af3ea1aaf2197511607f2547a422badf608fff908","0xccC8cb5229B0ac8069C51fd58367Fd1e622aFD97",!1,!1,null,null],["ethereum","gogo_finance_token","GOGO",18,"GOGO Finance Token","304402201db76825e8f6c810228cb62adfc82eb3163680560ceabcbd21a71999161a390602201747db0db5e9afaa51032e8deca2d0cf16c2a79c3554dc63c28729504bfb54e0","0x9a96E767bFCcE8E80370BE00821ED5BA283D4A17",!1,!1,null,null],["ethereum","gogolcoin","GOL",4,"GOGOLCOIN","3045022100e81471a3d859403f5810f5b213c038688f8ac2a61df74d5d773747a9cb74a6df02203385e1484847856573c3d97daf5dbb30ae61b7678e52fac485b5c11ef8f4b531","0x083D41d6DD21EE938f0c055CA4fb12268DF0EfaC",!1,!1,null,null],["ethereum","goin_token","GOI",18,"Goin Token","3045022100adba988009f410ef04f7781b1bc608382179e3fa40c67f5e6f3ee4cc9eb7bddb022069977fa90d0619089edb321aee56c23d40c53235b67edb9219a3c678da9bf456","0x2f34dD3d46855277Eee79a1d724c2249f770054b",!1,!1,null,null],["ethereum","going_gems","XGG",8,"Going Gems","304402200768bc763e6150170fe93049b38d6a2563d33d9db15c59d5cee9a0834c07085602202af004668e8cf0a66254b6253b224d7cd3bbc9d6692852530c8c2b8e82a9792e","0xf6b6AA0Ef0f5Edc2C1c5d925477F97eAF66303e7",!1,!1,null,null],["ethereum","goku_inu","GOKU",9,"Goku Inu","304402201ed1aba82838a32bad796e08ff3d1d15d5cb08eb4fa7a0b330af7c12c2d0ae0b022004fcc79edeae870fe823c6bfcc160e2b4112e525f818e5997226bd5da50d584d","0xA64dFe8D86963151E6496BEe513E366F6e42ED79",!1,!1,null,null],["ethereum","gokumarket_credit","GMC",18,"GokuMarket Credit","304402202b3f66c8455436d23b593a8d1bdd863c231412ebe780387443cbbeb3a178b64702206bad3067ce139971968a30405179d96e8bc618fdcf2b5a30298f0d877d4c5bdf","0xa6272359bc37f61AF398071B65C8934ACA744d53",!1,!1,null,null],["ethereum","gold","GOLD",8,"GOLD","304402205b29fb35a293f819054757d9f050f662b55c87d39c4c3954d904211e93c731f602203dbf649391b0bf73e934765850bffa5cc19ecf6afd381cbfcd643a31824ffae6","0xE081b71Ed098FBe1108EA48e235b74F122272E68",!0,!1,null,null],["ethereum","gold_coin_reserve","GCR",18,"Gold Coin Reserve","304502210094e81ed7c0c7cbee07afb5879410ed9c792ecadabb68df90922f0d04d44a206d02202f106dcc0261ef53ec04002ed70e82a4613d503c567d6cd1cf35fe702746c32b","0x37F6F8eb409DEB9fEAf032c109A72319F665C79D",!0,!1,null,null],["ethereum","gold_fever_native_gold","NGL",18,"Gold Fever Native Gold","3045022100fe08f290863032275b1e51ad1489d1edda0f3fc635b052e484b8b70312779640022053255f9035f0196ec8651036e485b9f9554be62f46a17d799a35fc7e50985ab7","0x2653891204F463fb2a2F4f412564b19e955166aE",!1,!1,null,null],["ethereum","gold_mining_members","GMM",18,"Gold mining Members","3045022100c120e990c83f2fab0b3e8129b712b0f4de677290d95c344e4ce1c31e14ff909102203c699033995fd05fcc03124e34b2316ff70ae18304660c38557524f47721b909","0x7aF89c8A06719271A96e62E290Ea9Ed192E73FC1",!1,!1,null,null],["ethereum","gold_retriever","GLDN",18,"Gold Retriever","30450221008cc253f1b2b73be4e68bbede960f4ecbacde8448b3e953ac71c22bcc35f7fa0e0220134d688ea67aaee48eded99351398e510d61eb7f5253341c52226edb56723e89","0xFeeB4D0f5463B1b04351823C246bdB84c4320CC2",!0,!0,null,null],["ethereum","gold_standard","AUS",4,"Gold Standard","304402201f1b72b35cac0f82c886d1a33f6953623ca7e276af683eca155bd4b764009d760220415aa942f4160f28fc223ada9ec732000b6445a6fa2f42c658ac9fc25908d050","0x171f9cFc136f2B2aaA148fcC6b660a2029baB048",!1,!1,null,null],["ethereum","gold_tether","XAUT_",6,"Tether Gold (old)","3043021f7c727b4026ea325a2da8e6871791dedd8e47bf9bc23b022144ced0419f0f2b02204d74b6819d322df9f56ffecae2fced790f18c28d66eced1eecfade2754f16432","0x4922a015c4407F87432B179bb209e125432E4a2A",!0,!1,null,null],["ethereum","goldblock","GBK",18,"GoldBlock","30440220076bc1a3d8f7d16e98b5f7b20f9f256d73501ace3881be6ab7490e2d3e948b380220600a8f4473460d5c7322b05f5521f7254f4753f2c88dbd8929f41dd5e7bfac48","0x3e522D144814BD6149C1F3e0c6cD19d0941372AC",!1,!1,null,null],["ethereum","golden_goose","GOLD",18,"Golden Goose","3045022100fb882baaf95b4c22007937fe3e8527c4fb2e4b71ef7b1fba9c7e695d0f6cb3ba022008e6f66679a02a3ce782a46312dbb439a8f05f82a93442857ac8d382e0416f83","0x40d1F63B5D2048e67E9bEdB1B4c2F1A9fb4b6817",!0,!1,null,null],["ethereum","golden_ratio_coin","GOLDR",8,"Golden Ratio Coin","3045022100f7fac2ed7fdcc78d6b6a30a035e882981d63081763de28c2278fd8a8c57109c3022075a04ed44c8d0bc9cde7e35f72e12b8adadd03db0db95a4df06667cba5f4139b","0xcfE4F03C3AFbB9857b29fC706180Bf0044900D59",!1,!1,null,null],["ethereum","golden_token","GOLD",18,"GOLDEN TOKEN","3045022100c987226a0b8770966b4d2660f864c99f51ae0115943efff4276e02661f32178e02201dae494b24fc4ae444e04155d51160140f6783657ded97e41af4e42feaf888d6","0x34D6A0F5C2f5D0082141fE73d93B9dd00ca7CE11",!0,!1,null,null],["ethereum","goldenratio","GRT",18,"GoldenRatio","3045022100ff35465d004259e9cf87b65f7713ca384f3484201201af7880985d144955efdf02205e5b754442332e8ec09cacda01da1ebb4702a8ba7537d22c35320abf48f06b79","0xb83Cd8d39462B761bb0092437d38b37812dd80A2",!0,!0,null,null],["ethereum","goldenugget_token","GNTO",18,"GoldeNugget Token","3044022079aaff0e3a893ed2d9688ef2dfaf3b2740e5010c4c09cb843f5b8ae5dd97e9c9022028940c2b70ef5f0e72e03b0ec0b7ede83a275109c8d6960af24aa53cc0339d14","0x7b3296198F8A548Edf89BDB16864Da8F37b7D9cB",!1,!1,null,null],["ethereum","golder_coin","GLDR",18,"GOLDER COIN","3045022100a162b8877ccdd1a54a65606d2f9ac3ed35d74e92baf6195604b4038b34280320022041ec7327c6aa22b111918e26d32595a4917a7da025de65a645afc01fa9ba9f05","0x172f20402aFc807C8A5566bcEEd00831aDb938CA",!1,!1,null,null],["ethereum","goldextoken","GLDX",8,"GoldexToken","3045022100f203ed2a325e37c229e02a4185f4e084f1af58fdaaf3dd1f6730fa981e9cbc6e02204281974fccd944ff1c1cf70aafba38eb6eeb17f60a42ea112ccc92f76b42a57b","0xC631120155621Ee625835ec810B9885cDd764cd6",!1,!1,null,null],["ethereum","goldfarm","$GOLD",18,"GoldFarm","3045022100e7db2b50b9cbe3b27b5f1d34e5d906142f4565bd61a279eca4804820ef62990902203aa0011d3f4b8c2dd971dc1d38887f19788f22cf973571d116e19f53cb3b4ba0","0xf1b8762a7fa8C244e36F7234EDF40cFaE24394e3",!1,!1,null,null],["ethereum","goldfinch","GFI",18,"Goldfinch","3044022045630bba8d7041eb52ad7ac320a42eebdc85214f5c57b4b758f58fcb1f57912902200d2162e6becd7dd89cd8413daf21348d1f465fccc839e083b88387d888214092","0xdab396cCF3d84Cf2D07C4454e10C8A6F5b008D2b",!0,!0,null,null],["ethereum","goldfund","GFUN",18,"GoldFund","3045022100e6763cabf04aca3347f5ba8277b4aa87b10d12ed73df6120a1c2e8b9f98dcee302206e721e53298f1cef5e2ca04e68eda8e6e99105f80ca931cf05033095d5b7006b","0x919D3a363776B1ceec9352610c82dfaf80Edc32d",!1,!1,null,null],["ethereum","goldmint_mnt_prelaunch_token","MNTP",18,"Goldmint MNT Prelaunch Token","3045022100c60e8f1487ab5bb023d526f7041be9dcd7260beb3a30a7900bb24dbfa7d4bd060220336de7463c0911890ef98a30c219cd4142282edd98794b3f9542052a656b2e46","0x83cee9e086A77e492eE0bB93C2B0437aD6fdECCc",!1,!1,null,null],["ethereum","goldpesa_option","GPO",18,"GoldPesa Option","3045022100bd5eab8feae14fd9d0562a1e7c0b0a927484bc6ef27e15b1d652a6baceca4c8f02205468704e65afe57d982bffaf7226e5ecf7926ce0d4dac43fa485ca894087b1a4","0x4ad7a056191F4c9519fAcd6D75FA94CA26003aCE",!1,!1,null,null],["ethereum","goldx","GOLDX",18,"GOLDX","3044022043fad2fd02d7a9d7072220705d44848907449236c9838128515783d028d102b302206b0db4c080b86d13d61e8618bdf92701c8b53c553009e68718bcb54dd8800110","0xeAb43193CF0623073Ca89DB9B712796356FA7414",!1,!1,null,null],["ethereum","golem_","GNT",18,"Golem (old)","304402204146074477454010739326f360a6b5a600c72b5943d3eb40f12a1770783da48002203d432764a4a2cd9a18bed25f0a221f3f658b3f46833fa603eeed03de8611d292","0xa74476443119A942dE498590Fe1f2454d7D4aC0d",!0,!0,null,null],["ethereum","golem_network_token","GLM",18,"Golem Network Token","30450221009c9779c4ef716ecf427b19e557472df62fb0e48182ec176089543a7e32ff04e902204894ab9e2a2db321715259a712abc838b6442b6fd548cb2145a8b289f29dcdef","0x7DD9c5Cba05E151C895FDe1CF355C9A1D5DA6429",!1,!1,null,null],["ethereum","golfcoin","GOLFC",18,"Golfcoin","3045022100ff834e5f7393586370912a6fc257f0f81afb41a06308da2a852197144843dc5d022023518cc0ae716c7a02258657783e0f74e7faabe07a9b24e900d7ca17db73112e","0x020C710646e23AB868dbE5B88004892797fE4eFb",!1,!1,null,null],["ethereum","golff_finance","GOF",18,"Golff.finance","3044022029480d6fe4592bde0bed475a4a931390b1089f2ef56e7388b5e35b422fa270ce022014d81d40af425da469207182caf1f755b3c45a96da9f019351d91d63133ec92a","0x488E0369f9BC5C40C002eA7c1fe4fd01A198801c",!1,!1,null,null],["ethereum","golfro_chain","GOLF",18,"Golfro chain","30450221008b0dee7e5db044d1cb82bad3b78f6de2f49f58fbd110c5b87c0284a650f510c102200bfd6ea7eb85aa54cb78b1d88dd0734da3d40a19ea4c7e63a052417b2ba8cbd9","0x996652b6C5c4b1154b25515Db21b7bBADD40ddFa",!1,!1,null,null],["ethereum","gomics","GOM",18,"Gomics","3045022100e2f12ba6d17f2ff61d7bc96303188548cd573ea741cf89cc7ed67efa7426df0002205935f6033f02082cabba0982bc5565a3266fceb5faa64cf6b36463844e42dd38","0xb8c6ad2586bB71d518C2aaf510Efe91f82022F58",!1,!1,null,null],["ethereum","gomining_token","GMT",18,"GMT Token","30440220526bceab389a9f61679d547892e623ef31fcd6d20cba393178831d0272e63e4202205eec7206720638c95403d360b0e879994da5020512b1610cb28cb46cd149c50e","0x7Ddc52c4De30e94Be3A6A0A2b259b2850f421989",!1,!1,null,null],["ethereum","gomoney","GOM",0,"Gomoney","3045022100e369f761cb8a10457be8cf9efc5495930aa3096508301fbc780e28be9484c3300220195580d799e0d417d404a26a5bf6c765a7d0f2b7ea2e95665621f4c4b486ebf5","0xd3141ACd3f5DC532077396Ff3984b67035234f41",!0,!0,null,null],["ethereum","gomoney2","GOM2",0,"GoMoney2","304402207d52dd8f1e46a27d2ff259aebccb67a51d18fe58600b95e16799edfdd4ccab180220592bd0c5d29bc02bd71a7d477217af41fe0c7ad86462ec742cdcff2044b3b06a","0x48783486ddD7fa85ECa6B0C4AE8920Bc25DfbcD7",!1,!1,null,null],["ethereum","gone_studio","UGONE",18,"Gone Studio","3044022058903990cc5e6ab90333b6c8094ad78fbc2ff7099f3c20d62a7d5bd723025f6102203172bb126626e4cd85d9c1f3cde52086564fd0bf64492731578579f581c016db","0xC9Df0eD2E9eF4357b51DB171FF08297d10875280",!1,!1,null,null],["ethereum","goonrich","GOON",9,"GoonRich","30440220614d04c6839a7b3477855147be5b04b5b1abb1fc94d0eb70148bd28a1b24de1b0220303b95ecb80dbfcb6bc1ccdddf75c7930ecd72dec2664d557c3a7b3b29c6807e","0xb0302D59237e6104c3f0D145996302F044797Ca5",!1,!1,null,null],["ethereum","gotogods","OGODS",18,"GOTOGODS","304402200ecabec221da4f90226fc964f4eb9a71e0639ac428e35cefc568c3407760d6a8022018732d834048b3ecbe7dfab8dd2909b28856e5b37e075ad8408728cb070c3de1","0x1051a014E4b3F2bD08E5A7e52522f0F71628162B",!1,!1,null,null],["ethereum","gotoken","GOT",18,"GoToken","3045022100e25d89f2ffb92c2f78c574a85b8009b9a413dc610e2b7cda7577364c3a3d30470220494ce9e8ca4cb557362ebc2f4b519e8b6d42922d97550cdb229a1f2621bb4290","0x423b5F62b328D0D6D44870F4Eee316befA0b2dF5",!0,!0,null,null],["ethereum","gotoken_","GOT",18,"GOToken","304402201605da452a841a63534d07188f08f50c141adcb5801c8b4fd1393cf1052cb6f102202f0c29dfbd8696c2aef5bbdb73bbf8113e00f0ff278cef205ed89edcc711c6fc","0x613Fa2A6e6DAA70c659060E86bA1443D2679c9D7",!1,!1,null,null],["ethereum","gourmetgalaxy","GUM",18,"GourmetGalaxy","304402201e3517c13ddd8de81e91ca86304b84f259214b99dba59aec8b477daf293aece902200dfa610abfe0c2bf093a73984b7f8d321652251fe7ac8b84a917fb62a365b47d","0x4f5fa8f2d12e5eB780f6082Dd656C565C48E0f24",!0,!1,null,null],["ethereum","governance_ohm","GOHM",18,"Governance OHM","30450221009fe1dab0fcc20cbad2db379920206903f4e9d2f9eadd76b047d75d2e6884ba060220236d1b1b65784a04f0c0726a711b9227a8ad632606bdf20878b9f2e087b46491","0x0ab87046fBb341D058F17CBC4c1133F25a20a52f",!1,!1,null,null],["ethereum","governance_token_monolithosdao","MDT",18,"governance token MonolithosDAO","3045022100d50035d7a49820468c870a80c1cdc0e990602d4b5a0d1069c31dcde77826c7b102205252243b99f387433682a3f61d2a88f54a5a9d28d1f78dcc963a16cdb006c819","0x4Dfd148B532e934a2a26eA65689cf6268753e130",!1,!1,null,null],["ethereum","governor","GDAO",18,"Governor","3045022100b13a87ff4dad5ee8d105660beec5d8cfd8c621cf1637907247f717955e34838f02205538ca11a78ea2c19f75ff32bb25a3fb6006e1fd2a52dd662a4c0fc59c05075e","0x515d7E9D75E2b76DB60F8a051Cd890eBa23286Bc",!1,!1,null,null],["ethereum","govi","GOVI",18,"GOVI","3045022100bebac01145c583d2a4d61ee2a035da1791a0cc2795b06e134d8be30d5bcf2de802206eda0735623eb8bfd2ae49d6339dc4415446ea1192f8cafd697773de672dcc4c","0xeEAA40B28A2d1b0B08f6f97bB1DD4B75316c6107",!1,!1,null,null],["ethereum","gowithmi","GMAT",18,"GoWithMi","3045022100e4a80483ca3e90d680b3a9e0508920cea383210b465cde6923f4898ab5778a7f02207c61ac573c731b05e258bc2420d0e051bad574479f896a4b7a90e7c89761f65f","0xB13dE094Cc5CEe6C4cC0A3737bf0290166D9Ca5D",!1,!1,null,null],["ethereum","goya_giant_token","ARTG",18,"Goya Giant Token","3045022100ce7dc0ac843c85d60475d504287ee2f8b32d4b5b2f46d7fd90cdcb058c87f03a02201f1f15dc697bdcec8a94115e8664a54a49a5a7c702190d564963504a50d6a219","0x4fd0B42D14Ad7fFd18D2d1D7ea6B4B45F3d56463",!1,!1,null,null],["ethereum","grabity","GBT",18,"Grabity","3045022100f3729b8db091b6c4fae754d19828e8dcf46b155fb98318895bb1a9bb29b39c3f02200c29ef30b6fefb60b183ca1b9a1f3fe0411e1d95eaf9b5fd2500268a240ca0a3","0xcbD49182346421D3B410B04AeB1789346DA6Ce43",!0,!1,null,null],["ethereum","graf_token","GSMT",8,"graf token","3045022100f7eb153a83549a59a7ee5916d03aa345a2849912a6d2d2e6bcb1c908ea7a93d902207d200e3f16834f6b055b9dd4da04eec757b1f577a85d9dce8e8a4c20cb0d8b46","0x7713bCda5106424FF6B0Ae1e7Fa05C3f4ae3ecB0",!1,!1,null,null],["ethereum","grain_token","GRAIN",18,"GRAIN Token","304402207f5a1e33d2bc5a05b537542f1f832e54cae72f1c1bd334d8956f0fb4e2fce92e02206349ea4f586c588242f230b4ecb6bc621f0049e23513a1a546087378461d9dce","0x6589fe1271A0F29346796C6bAf0cdF619e25e58e",!1,!1,null,null],["ethereum","grandpa_fan","FYY",8,"GrandPa Fan","3045022100e23295718fd48bc6f16408160b6ad94c6f9140778fd8a4559b142fff71248f8102202fb975c7c1a33d5d185d88cf87c2db6b26bdb76783bffd2f74ace0fca5870278","0x6F39297BC0C386355C77DA3A0275C867B21b2454",!1,!1,null,null],["ethereum","grap","GRAP",18,"GRAP","30440220332675396b5f3d30587e57aa42bc98f356b2395b9c05382771e3648faddebf3b02200c316763d57ff5c53f328c9aa71450b130b1e1de918a9c2706604c5f58d1fce9","0xC8D2AB2a6FdEbC25432E54941cb85b55b9f152dB",!1,!1,null,null],["ethereum","grapefruit","GRPFT",8,"GRAPEFRUIT","304402200aa53661261961a8a4d058a7a44cc4ac14130f985ad344a6a2f942b09b30509c0220443683f5c856ec724208b9c26171eed2e3b328302e30818a001f5dbb0010aedb","0x64B986211c0CC675143F895C437b79c3cadf364A",!1,!1,null,null],["ethereum","graph_token","GRT",18,"Graph Token","30450221009a9a1ded2666a2960662852c289e833a9f13d677edb2d590089fe111bb0858c602206ce0a5046ed71511cbec28a1960a4b6749dd76725a1f7c5d40e56bfb5c0067d7","0xc944E90C64B2c07662A292be6244BDf05Cda44a7",!1,!1,null,null],["ethereum","graphlinq","GLQ",18,"GraphLinq","30440220648c104eb2a1ce4a5e57b0c55ab5b1c1ca8d35acb407224e3cec9be03390e8d002201d364da6dffbb7f1ea3311e0c45817ea224db10a13154432d15363164041c917","0x9F9c8ec3534c3cE16F928381372BfbFBFb9F4D24",!0,!1,null,null],["ethereum","graviton","GTON",18,"Graviton","3045022100e245772665278563bdf4394aa71156b11b530d4932b5fe4ea8692af3e709f9bc02204d81d10d6ecf74490ef1708e0c0a11f3418f15b76552589a08b9b3588f3ac089","0x01e0E2e61f554eCAaeC0cC933E739Ad90f24a86d",!1,!1,null,null],["ethereum","grearn's_token","GST",18,"GrEARN's Token","30450221008d8c1dfb87f83f34b7b23544fc3c1bfdec5eb863118ab01ca04507ae6e862b3702200151986a585ca0e733df6e076cb4edc8ea01192584a93f55ba8341dee55fb161","0x3AFA1902b1f8a802aBC18e5aD982D1bCd34AfE22",!0,!1,null,null],["ethereum","great_reset","RESET",9,"Great Reset","3044022008879ee153606fecd19096564fc1202b3aaba646bdb9581f69b45a8506a6a5f602206e0103c0b4bfa2885394a8370d091a2f2c810c3da1d698abe4dbd1cfeb6bbdae","0x4698FF8a7950019327B0201d2C1731ae1C9c8dB2",!0,!0,null,null],["ethereum","green","GREEN",8,"Green","3045022100c813f492e4d496d8a68a07a7c1c830a5d4fe2b5f66d3aa51e92fdac88b651eb502200dd0a0c0eacad9b21449fd1a12f75c67a86e6963ee73f5bff2ac9991605acc39","0xb2089A7069861C8D90c8dA3aaCAB8e9188C0C531",!1,!1,null,null],["ethereum","green_light_erc20","GL",8,"Green Light ERC20","3045022100e55192aeccb07d323103df72185d9427b04d41396ba727039f04f3f1b16f8dd202203129f364b500790c8d66bcdc126b26515dda079054e37343bbdbf8f47b8d56a3","0x70FaDBE1F2CCCbaF98ac88FDCf94A0509A48E46d",!1,!1,null,null],["ethereum","green_metaverse_token","GREENMT",8,"Green Metaverse Token","304402205e8b0949671241770c47fffe52efab46ddfb28927d399913d1541f999035709e02203e6940e5864e39c4532652984e2a48262238884e9b9109f47b84da5dd5b7fc34","0x3019BF2a2eF8040C242C9a4c5c4BD4C81678b2A1",!1,!1,null,null],["ethereum","green_token","GRET",18,"Green Token","3045022100eafdf2ef2af1d7cf1c75e6f5089c3e27d4fc08b7dc5c74048be44c91b833badb0220423fc039259059ec0064222b76531f0c547ce520d42b06f41924e87fe83ea821","0xE0A16435Df493Bd17A58CB2eE58675f5ea069517",!1,!1,null,null],["ethereum","greenmed","GRMD",18,"GreenMed","304402204483de1dd6508580a957bcad8fdf93c7861af84055b77f0986c29ac93b92f45502203a10471c9f65cebab727d21870226c484ffb68f4907a51168d2e01d9cbe9906b","0xb444208cB0516C150178fCf9a52604BC04A1aCEa",!1,!1,null,null],["ethereum","greenmetaversetoken","GMT",8,"GreenMetaverseToken","304402200fc91af76f80dc18ab918c8e9ac3391b4e2bc933ca9c6f2ddf050dc64f5f65bd0220553b32cd3110fa62d88538e64626c2a8553ac830e9ef31eecd77cb440ec4a832","0xe3c408BD53c31C085a1746AF401A4042954ff740",!0,!1,null,null],["ethereum","grey_token","GREY",9,"Grey Token","3044022062303db4a8d11ac82c366ab2c41abd86a95409f5b00d84ed83b18b36292b84200220533ab7b8c1a808310b379d44201a774b8f4693d08bdb0cc19c2f2f76d1bec86d","0x9b2D81A1AE36E8e66A0875053429816f0B6b829E",!1,!1,null,null],["ethereum","gric_coin","GC",18,"Gric Coin","304402200905faf355535e05e29e8848a222623b5e691efb15f57a2006e2140c0c8047f602206c6463f0293c17c1a67822c618a1820819c40a8e251e3ef6ed67f9ef9796e8c0","0x720c2c93F5f9A6b82226e84095558B10F399b0FA",!0,!0,null,null],["ethereum","grid","GRID",12,"GRID","30450221008cc8581459bec7e9b2519fb215e48fef82970d6cb42133d778814d6a8fbee700022053ffaf7e6f688f93203c5ac15b33d3e6ec0e32d502e2cc79a584779c479e28e7","0x12B19D3e2ccc14Da04FAe33e63652ce469b3F2FD",!1,!1,null,null],["ethereum","gridzone_io","ZONE",18,"GridZone.io","3045022100c1923d6b859bab2ecdc0dc328118cd122d05c028356c2ac89ce6aa3de0d6e4b502204cd0f73b0d3b92053e648847616578b6789bc7be321134db4baae3cbb0c7c5ad","0xC1D9B5A0776d7C8B98b8A838e5a0DD1Bc5Fdd53C",!1,!1,null,null],["ethereum","grig","GRIG",2,"GRIG","30450221008ae388cf1d2c5c5e930ca46eb6ccac586860623d997e3a88e7cd4d49d66768de02205ed54245d5b6bad972077225bc1904c16d832c5569821acea19f682952007ac0","0x618aCb9601cb54244F5780F09536DB07d2C7aCf4",!0,!0,null,null],["ethereum","grind_token","GRIND",9,"Grind Token","30440220799a92dc1f29f23d10a66c3059ffa000e9ac1ea1cf01b8493d9be8b41f41c99e0220315650bca0167baebc004019dd4bda593582355ce912e39757dd22e3dae64051","0xf3DeA48690F3e8f7F676cfb2798254D3225B9386",!1,!1,null,null],["ethereum","grom","GR",6,"GROM","304402204216449c2537ed2108ac8ae1d0212e85dbad0c4576ba9c59013eeef5e0912c1d02204031d5f4909b286f3dc27bb243b01dd52b1e59da3320875fa52673d95d431439","0xcE593a29905951E8Fc579bC092ecA72577dA575c",!1,!1,null,null],["ethereum","groocoin","GROO",18,"Groocoin","3045022100a38f3af513720920f6c3b69a23888504b87deb8caaf2cd70b4c41f9048ecc4c002202ac7793c4c30f5c3c16a6782adf2046f5bea92cae4f438a28c062ff3538ab9c0","0xC17195bde49D70CefCF8A9F2ee1759FFC27BF0B1",!1,!1,null,null],["ethereum","groovy_finance","GVY",18,"Groovy.finance","304402202529268b19dab75de3ee1bb8fe32c8f057ae8ff8c8d9148c4c84ed8283d2dc8f02203c5bd3dac26beb096a4acf12cdb051b44d03a26c0a29891c2d2c8b1faac6becb","0x31bE30217989766215672E88eD449913e05bf0F5",!1,!1,null,null],["ethereum","grove_token","GVR",18,"Grove Token","3045022100c1441ddba1a8c7153484a3f40b66b5ed8c82e6402f083d9cd64db77176eb808c0220289bbfda43ce8f201ffe7aeb12357b119800aeaae25af601d82c45e573fc0f0f","0x84FA8f52E437Ac04107EC1768764B2b39287CB3e",!0,!0,null,null],["ethereum","growchain","GROW",8,"Growchain","3044022014a869b05c47700b2dd000b368e59c579e240a5a02cc1f00c25dea13ce661e44022048bef5f0ca5cbc070d6a58bffd463db5c0ff1c43ef3b1ecc64a274026b4ee2e7","0x0a9A9ce600D08BF9b76F49FA4e7b38A67EBEB1E6",!1,!1,null,null],["ethereum","growth","GRO",18,"Growth","304402207193e7790b71503c228261e4aabeb6192381ad708f48b3742234f9f2168335ba022016de86d3d3c783ae49c5feb11c27126fb8a93e545ee1c355c05037730e63d5fb","0x09e64c2B61a5f1690Ee6fbeD9baf5D6990F8dFd0",!1,!1,null,null],["ethereum","grpl","GRPL",18,"GRPL","3045022100a95f42e0b7c6c6b26cd9b2ceecff843c32551881c73fb14baaef46748219e784022027e4590a2e58ce5ca0e205731c2a0e107a73720a43e1a63038f2e58f62b8ed6d","0x15E4132DcD932E8990E794d1300011A472819cBD",!1,!1,null,null],["ethereum","grumpy_cat","GRUMPY",9,"Grumpy Cat","3044022046e4eaae44a6775742d30ad3858065d58516351bf0f87ce277f322800ebdb5e6022030ca083c9b814a1b85b8dd13d0bbe7ebcd439369d8ce620a9b320add01d13a93","0x93B2FfF814FCaEFFB01406e80B4Ecd89Ca6A021b",!0,!1,null,null],["ethereum","grumpydoge_punks","GPUNKS",9,"GRUMPYDOGE PUNKS","304402207020dd0ba31dd23bca474ac317ec026205f8ff9d0b4214f9969a950a2ce2fdd802200be10dbc26d7d752a53d380eeaca500a1623c3f8bdc6da7e06b1432926235dc1","0xB25a6090b85681330Fc1E0B63085d637e194d859",!1,!1,null,null],["ethereum","gsenetwork","GSE",4,"GSENetwork","304402201c55deea11705001cb7688245396773f46daca03bfd64404c8b44ec7020fdca2022069c8a2f69bf57e1274ab9f27e0d918a6b7de4ccde9144767d1758c4bafa738a5","0xe530441f4f73bDB6DC2fA5aF7c3fC5fD551Ec838",!1,!1,null,null],["ethereum","gt_star_token","GTS",8,"GT STAR Token","3045022100bde40ea49523912eaffd910ffa5548afa1ae48ab150466a698aa16e65f1097c10220185a0e2c94e998cd2c102f2bab414d10ddecaa6d6c0ff3359eba57134c479624","0x951A1070AC39851dCc07b302230A68F81929a5F1",!1,!1,null,null],["ethereum","gtc_token","GTC_",18,"GTC Token","3045022100e43500cd9bbcc5cbbd9136286143fa40aeb1a2c551213d819b05d4f608de772502203c0822f9c14734e0943e19248eec63131cc232c0e5514885345b104636c7b4a9","0xB70835D7822eBB9426B56543E391846C107bd32C",!0,!1,null,null],["ethereum","gtib","GTC",0,"GTIB","30440220476263382d5548f3db5ae6c597f8c88737076dc62828e6cd7cff052cdb12b1c5022056878226c9858f9f7c615e46d3adde29428f3c1169b365245e4ad4ff930d69f1","0xe138FDa441fC31B36171122397a8A11d6cd2c479",!0,!0,null,null],["ethereum","gtkt","GTKT",0,"GTKT","3045022100a40e5323655bd4a0291a4d2914be3ed98d4a0723b063035984ee3c1aa093d4e4022048318317cdd14e75622fb18d10d041c485c8cdaa4e10d45dee374701d853b35d","0x025abAD9e518516fdaAFBDcdB9701b37fb7eF0FA",!1,!1,null,null],["ethereum","guarded_ether","GETH",18,"Guarded Ether","3045022100b0c578925f9da27aa64dfb429b34076800a09f70e0cc23865e0935c3ce95deab02202f1609a6c2388d6ee41e5a41b42630507eadeeafe1e24465f6931b576ce83487","0x3802c218221390025BCEABBaD5D8C59F40eB74B8",!1,!1,null,null],["ethereum","guarded_ether_old","GETH_",18,"Guarded Ether (Old)","3044022006ff678663039bf3b9152082282c5f1b3769c3289284df2c3e7a0cfe6307d0b702207cdb96dc0eaf25f4c811c268c414e042f5cb2504dfd5f4c994a279fe3a063c98","0x9ad03c34aAb604A9e0Fde41dbF8E383E11c416c4",!0,!1,null,null],["ethereum","guess","GUESS",2,"GUESS","304402207e91e02fa001023cc556e34c9fc024b53584912e3f68d4d7f6e1c8bb5078057e02200e0ff020db706d69c3c7af5d197567446d95c9f15f6016b96e0be4288b9edc8b","0xBDCFbf5C4D91Abc0bC9709C7286d00063c0e6F22",!1,!1,null,null],["ethereum","guider","GDR",18,"Guider","3045022100ea152a69690b849dacc846ca3d8565716d81b69fb1e0c428d74ba94d23ddfb8002203d79d7675232892354429a7afb08e5c50f08d8e5c440836960a72b7551c66825","0x874D4C9B980f1a13dD44CBcDB912e24Ef0671eD0",!1,!1,null,null],["ethereum","guild_of_guardians","GOG",18,"Guild of Guardians","30450221009feea3f174f5bd39c57b86f7bd14d186e2136e4e525de0d883bcfdb35b7cf2850220045d46c3602d782a979d72f4867d96402b969b40b1a254f49395406e8683ba2e","0x9AB7bb7FdC60f4357ECFef43986818A2A3569c62",!1,!1,null,null],["ethereum","guildfi_token","GF",18,"GuildFi Token","3045022100af9890f61042cdb6f4d2f773f315bc2f38c59b047cc0c0355973ec5c30b0bec502204f0c8c48d1b6eea403a88beee2469d6a0ce5612e8b9e27fbc4202b3c68478e21","0xAaEf88cEa01475125522e117BFe45cF32044E238",!1,!1,null,null],["ethereum","guld_erc20","GULD",8,"GULD ERC20","3044022014ceda05056a91492bd5f28adcba92c3b7ac57229b439a4cefe5fe394075b7a8022049d7e097f984325f7e26acf8a810556a5f305f0ca4455bd23644d7c900e353c9","0x9847345de8b614c956146bbea549336d9C8d26b6",!1,!1,null,null],["ethereum","gunthy","GUNTHY",18,"Gunthy","304402200ed5d999626e8a968d4f8ab423ba43bfb8c40af93d864a78dd52eb5424e5c39102201e879fb7e867f2aa82d64dc924e271c7bdc4539310b700b94aa8d7606c282467","0x3684b581dB1F94b721EE0022624329FEb16Ab653",!1,!1,null,null],["ethereum","gup","GUP",3,"GUP","30450221009a2db8423440907e9380c5c51b98c492aa820f8f7b460851c8d556b9a5d1aa3802203db6ac2fff12a65db729781aef4d72cea0a0cd9b1e5206a2aa39d719ebfaacc9","0xf7B098298f7C69Fc14610bf71d5e02c60792894C",!1,!1,null,null],["ethereum","guss_one","GUSS",18,"Guss.One","3045022100917c946d649bc5cbe81a5f728c83671e5e5acc3f9b26686a5d5e0ec0de71a09b022030c56e3df7b23dccea0bb73bd5da6ffeefbf9b5ec1354673b40818690b771d07","0xdaE6f68DA3bab6866742A7f4050366F6AC48760d",!1,!1,null,null],["ethereum","gutter_cat_gang","GCG",18,"Gutter Cat Gang","3045022100e2766aa14a8b5607cc8b1a020182d290aeb174bbbcf4a67be8e436d13cdce76c0220616141927a28854d1ec8fa5b0f86df1675cb7d89ecd23bb2847f410477db4d19","0xfdE43cd91F7F127dbbbc263394519669296396dB",!1,!1,null,null],["ethereum","gxc","GXC",10,"GXC","3045022100e81099c662c631c46c7b8cd8144be0962d86bdd96bddf816928da53eebe3871102201dd257c54245ec01317ffd66463fbb4a416250d3053b5c89018e71e08dc15075","0x58ca3065C0F24C7c96Aee8d6056b5B5deCf9c2f8",!1,!1,null,null],["ethereum","h3x","H3X",18,"H3X","3045022100e76e0884594ad20e89753765d552bd1ecf0bc532a9fb4cc16cbdbc2624e5d49c022074d3d114d02cbbacd7aee8f8029965925829eab72a85d7f1f0fac06a855920d2","0x85eBa557C06c348395fD49e35d860F58a4F7c95a",!1,!1,null,null],["ethereum","habitat_token","HBT",10,"Habitat Token","30440220133ef6aa9b7604f0eadb99c5eb1eafd64d20eda3bc0e66b6f02261740a7b20c802201d896f7eed8f79085b7091ca54e78f323b813784c3d2bcb73e06640573620da2","0x0aCe32f6E87Ac1457A5385f8eb0208F37263B415",!0,!1,null,null],["ethereum","hac_token","HAC",4,"HAC Token","3045022100cba6386bfc6c261aab6e8811741bc0c209df2cb48fa626de35732a3e4e9e688f0220483067854c2f05b40253cec313425b3cebf629be2d205f5186450316dcd13404","0x43567eb78638A55bbE51E9f9FB5B2D7AD1F125aa",!1,!1,null,null],["ethereum","hachiko_inu","HACHIKO",18,"Hachiko Inu","304402206b7186b452d421b8e3a50fac6a36d2363f78e9572ea7a2b18839ee1a2f8b6aa402203a664a1cd044e9c5ec1c0e3e480dca68055f1d93333bee037a1e38e62c5c3ab2","0xcCAC36423DEF6C19ee6b5679144E2976E309Ca45",!0,!1,null,null],["ethereum","hacken","HKN",8,"Hacken","3045022100afd34a7cffb3fb1a89574eb937fce7fb26fab85b15f552d97bdaacc8bc8a9dbb0220760ed3314b29074ce9004a46adbbac8fdcbc0e1c3131a42fd2973e936f7656fb","0x9e6B2B11542f2BC52f3029077acE37E8fD838D7F",!1,!1,null,null],["ethereum","hacken_token","HAI",8,"Hacken Token","3045022100eca646294f9a7f7f2957918eff630c5a1969171bceb940d33274d6a7a6ecd84f022021ca14121342d8eec1ebd0fbb28a72c2580ba29d9dff797f590b3a67d5baa34e","0x05Fb86775Fd5c16290f1E838F5caaa7342bD9a63",!1,!1,null,null],["ethereum","haki","HAKI",18,"HAKI","30450221008dc60ea0bf25904c2ab0ae8678b81b628609ccd328adde794d692883e0e947a4022078373c4016a7313daf81de49b3feb6c1e03d9742686dfb52ea3c29a53e223a95","0xF90c7f66eAc7E2130bF677D69a250b2136Cf6697",!1,!1,null,null],["ethereum","hakka_finance","HAKKA",18,"Hakka Finance","3044022020978d13b21443f8dee926869835084918162858441eee7e899f92cfabba5b2502207293ac0d03461ec2e97c6eaab9f338e7f76646d14489081fff0a43421f19ca0e","0x0E29e5AbbB5FD88e28b2d355774e73BD47dE3bcd",!1,!1,null,null],["ethereum","halalchain","HLC",9,"HalalChain","3044022068b11d5b3361ffe0d8a801319334cdabd15e99f1e54e3f0c994a79d32490405d022079a529ce51876b7b36167f6c0c06d7d1ee3315fdfd329d8f5b38620059bcf9cb","0x58c69ed6cd6887c0225D1FcCEcC055127843c69b",!1,!1,null,null],["ethereum","half_pizza","PIZA",18,"Half Pizza","3045022100f594f7d901d0f145f29d05aa4d0c2489ec5eebd21c0dec8416ec76c0df222020022064abeb78066763b19eff76a3e603c76d3e4fa94d647699516d7ea28a47d8f2f9","0x350ca33E2c75269A220c75D337E9B9AB177FA269",!1,!1,null,null],["ethereum","halving","HALV",18,"Halving","3045022100cd02858aa210ed1f4e9e4f093dff46395217de4c05d4d96063c7d15e0e311bc9022035c42e13372d22a93889ef00f1d1d806e1d678068be6b5986613b56e0bb66a66","0x9e7cb236e43c4bd042fE463df6a175d4479ee186",!1,!1,null,null],["ethereum","hanu_yokia","HANU",12,"Hanu Yokia","304402205be1d12a060744eb938a0db792f93c2c2fb9534e35aa01a97b00f1f9e61fcc000220071346a46acf10a9892269365cdf3d34505c6dc8989634ac9303562b32bcb241","0x72E5390EDb7727E3d4e3436451DADafF675dBCC0",!1,!1,null,null],["ethereum","hanzo_inu","HNZO",9,"Hanzo Inu","3045022100f485fad54f8b13ac46732f6011158684d6d9224b1831da469624c78a6a9d01610220613c569ae9ef3ded4204fdfdaee384c917537719b26723385d20c1a33af9a762","0x239Dc02A28a0774738463E06245544a72745d5c5",!1,!1,null,null],["ethereum","hapi","HAPI",18,"HAPI","3045022100ee53c092cbfbe1124cd4243f25549ee1260c35e8fd70b6ba125241c8e064588d02202b8f700357e257a163dc40fc36be05b665c25d4c5448390208b71bbe9a3236f1","0xD9c2D319Cd7e6177336b0a9c93c21cb48d84Fb54",!1,!1,null,null],["ethereum","happiness","HAPPI",2,"Happiness","3045022100e825359eb65c07ec0fc770a281dc2720af7db40f8d83c07dd6cf6cfe74a6ff5602200a629f708c2958dabc8fa57c4ca221e81a9ebec8279e5eb86528ad5fabd82e1e","0x5A567e28dbFa2bBD3ef13C0a01be114745349657",!1,!1,null,null],["ethereum","happy_birth_day_coin","HBDC",18,"Happy Birth Day Coin","3044022024f5f144b4c7b1b5319ba5a8e0f62ba238e5015c5db082737953477904cb7daa022063185e117442866c178ba4c36b1447357cb930a08594b8c6996eb148495d8455","0x39d30828a163713D91c4EADBBA2C497a9139ec5C",!1,!1,null,null],["ethereum","happyfans","HAPPY",18,"HappyFans","3045022100b4d4e110869e0c571c935f8d967d013baea50a44f70d3f0d60938d4073de795102202cf1093576852010ac789b87f847abd95e8fecb43a36adcf09b9f622acda0fbb","0x3079F61704E9eFa2BcF1db412f735d8d4cFa26f4",!1,!1,null,null],["ethereum","haratoken","HART",18,"HaraToken","3045022100b825ee22778dc212c0ad262a1e37f2118a0e66e20cec4b3a9b6a688cd098fcf702200cef4e356d624fc29048984893e5cf6462705a14d969a65a7762fca8331b701d","0x52928C95C4C7e934E0EfcfAB08853A0E4558861d",!1,!1,null,null],["ethereum","hardcore_hcore_finance","HCORE",18,"HARDCORE hcore.finance","3045022100b7b220b9469d56d3c7888afff321e933749a7183b2d549543122478831df5b6602205df9d68b5cf27a16f25dc2f5f481d85c0f9d68fd046dfbe42f09930bbe9f58ec","0x60A995CEbCD44CA566Ae22A9666ed28c67B598A1",!1,!1,null,null],["ethereum","hardware_token","HDW",4,"HARDWARE TOKEN","3045022100982b8e69b5453fbc2651ffe8e262478dbc422f4ff144d533fc67ce3d9eba343002206f616bfa6cabbc6c43c0cafc88d5d632281ebaa92a46850bbba5bc30696f296c","0xcA176a8AC234446b2561293dB7543e0cdadC6627",!1,!1,null,null],["ethereum","harrison_first","FIRST",4,"Harrison First","3044022078bee9426233f1c4df19635f534e4b732f317ccaf00127a69db37b61f7b16d1f0220488fc81115119a9793f45296f32486219d342c26d99de1643511bba4dc28f058","0x9903A4Cd589DA8e434f264deAFc406836418578E",!0,!1,null,null],["ethereum","hash","HASH",18,"HASH","30440220205047354f78d214c20ee3e2f61fe3f5379850d4745b1645587980687a241989022020576d5c31b3f6fb032ec3aaf5a77e721f93f6a0a8cf97a21d331d5ee197e9ce","0xEB1112Ac78D537853150E2a07E8b765E29d3F019",!1,!1,null,null],["ethereum","hash_pot","HPOT",18,"HASH POT","3045022100e2cf443e13194a51ed20ca8d07d23cb308ee0cc54e97d99a1d9492365a1a978102205dbc8b6f4271a76b1f72fc4eefbd06ba558a3a67d8403a5a9727299cfc2b9f77","0x8CD024Cc8F73f5CD132005d1584403877B318C9d",!1,!1,null,null],["ethereum","hashbx","HBX",18,"HashBX","304402207a8e59b5c17c6fa970926a33e862b0cbab4a3840438b7c31a6cbc8878a65d62e022075fc5a88cf0396f57cc6a30e89a8fad6412572d2cf69356a9e963b496015880f","0x6fE355c62C6faf6946cE888fFABa9fD12355ae27",!1,!1,null,null],["ethereum","hashcoin","HSC",18,"HashCoin","3044022037e5c6557ff7ce9b7bc8d3de53c4d5c5d56e735774db9294f01e7d00dcf048550220131f15cee768d883967d5e15634793c1e3fdc6ea394c1becffcdec19a5acdfbc","0x2bBA3CF6DE6058cc1B4457Ce00deb359E2703d7F",!1,!1,null,null],["ethereum","hashflow","HFT",18,"Hashflow","3045022100b062452161045949690a45ca27536be57117cb9c051f1b6c379d58d9ce33c6e002205c7fb1dad5d0fbc2b8c28f6e1fe72c54ebbd00ef9562d0202f63118b7008c8a0","0xb3999F658C0391d94A37f7FF328F3feC942BcADC",!1,!1,null,null],["ethereum","hashgard","GARD",18,"Hashgard","30440220267f68b1be167937c9077d2e078870a2ebbbc59500f80f332905fe81e85886a602203002d873328e859ed432d01d640e3fcbb31752c99716af51eb2684b1a838793b","0x5c64031C62061865E5FD0F53d3CDaeF80f72E99D",!1,!1,null,null],["ethereum","hashmask","UMASK",18,"Hashmask","3045022100a6a16dd2dd8b738a635efe35050bd5e57314c3a13b1c0e668824ca7e27c1754502200c44664322cf43488cc94a75f80741b0842b90122d63a35af4767a93fdd97741","0x5872E64C3f93363822D2B1e4717Be3398FDCEA51",!1,!1,null,null],["ethereum","hashmasks","MASK20",18,"Hashmasks","3044022074287302484510bcf9c31e9c66ed50d6c74984f87d56ba124b81bc06595e1fb802206ae38f228ecd159ccf17222605b4e6aaef227bbcc724b9cc1ca43b3883996f26","0xc2BdE1A2fA26890c8E6AcB10C91CC6D9c11F4a73",!1,!0,null,null],["ethereum","hashmasks_","MASK",18,"Hashmasks","3044022008653455a9d9f972d12301e34491b1be4f64de06529af2f4b13ab7de485134cf02202d0415de79ad47639f739f5d4e2ff8c59efc5c2090444e7412b0a1cab3d92179","0xC7a8B45E184138114E6085C82936A8Db93DD156a",!1,!0,null,null],["ethereum","hashnet_biteco","HNB",18,"HashNet BitEco","3045022100e7ad94b30bf04771c81dac126523ee847c123279b8dea08aad87c38b53e6c4f102203b84439b57da10800d049548ea952c87fde4c2661a6ce34bd19bae7b92e8e588","0x9c197c4b58527fAAAb67CB35E3145166B23D242e",!1,!1,null,null],["ethereum","hatchdao","HATCH",18,"HatchDAO","30450221009d53cea25a7b48b447dc7db2ebf25702e8160057b2c7cc5af240fc8f8362503f0220777ddbe06813e0bd961592cd7b4e9312bed1c26500df19793f4c4c3d5f3b6d58","0x6F3009663470475F0749A6b76195375f95495fcB",!1,!1,null,null],["ethereum","hauteclere","HAUT",18,"Hauteclere","3045022100eb8863cbce3180a7840326f0c68033f0ebbcb564b61aec66c61a8f2af1c45606022033c21d3e4f894131450483a6860ce22c67341b48e9c8fb1d3516ceeaf68125dd","0x3142daD33B1c6e1371D8627365f2ee2095eb6b37",!1,!1,null,null],["ethereum","havens_nook","HXN",18,"Havens Nook","3045022100a49dd69c326f567ebeccb179e2f2e510c84fb640218810daa46f51510f5c111c0220643d0a47a93c5907e63637e455506b83df6fcc2e32790e5f9a66f6ba17e2880c","0x0E1fe60bc4aC0e3102343752ae7E49d01d444c0b",!1,!1,null,null],["ethereum","havy","HAVY",8,"HAVY","3045022100d1d8ed2cca16b2979a0d655d93525dd9846de810b44e44307fc2543dcfdeb4b8022039f61190ed8674ee42ed61b0ffba185024fcaa82a651cf443e768d09ab6a97d0","0x7C2E5b7ec572199D3841f6a38F7D4868BD0798f1",!1,!1,null,null],["ethereum","hawala_today","HAT",12,"Hawala Today","304402206813fa0897ad55aed0c0a5c7d8a2fef5a682b5740e156faf63fbe3f029d6417a0220748b8b0eb7cf65810b3384425495a8b9c29e02b2418d48a1aead9f9b5a34b493","0x9002D4485b7594e3E850F0a206713B305113f69e",!1,!1,null,null],["ethereum","hcut","HCUT",18,"HCUT","30440220570100048bf6f6ffb7a05c8b18880f3d5bef994f33b30a4d8bce3d20f72a63e3022066750301208ebcd75c7c4f0978e5244ce5a5b26b1f26cf9cce04a4f82bba720a","0xd31A9D28d66A1f7e62b5565416ea14607690f788",!1,!1,null,null],["ethereum","hd_punks","HDPUNK",18,"HD Punks","304502210083ae7620453fa7bd66085a8b2214e77ed5954a01c23b7f9b46b54d08bd61dcd302205bac7af74fe099472b8ac1c44e76d2076d77bf521856912febb60b3b8ae7852a","0x42B4dF7e402A71EAE743c6C5410CE3BBb63aEf22",!1,!1,null,null],["ethereum","hdt","HDT",8,"HDT","3045022100e785c80641cd3503bfdee2f4eb1ff36ec71137da3a475737a905df29d3760a0602201ea91694f957734784af8fbe94d0a47436d92272de69698255f92e70cfb70923","0xD0Cb75298d5C1E3B277e3CD95c56B3CAa81a99D3",!1,!1,null,null],["ethereum","healing_plus","HP",8,"Healing Plus","3045022100d3afa5658187d502d20eb67063cead9c11ce7ff6ffcff79dff5a8add7c93e53c022045a3d43fe64bfbf6cd49c543bfdf946d3770b44b3df446aa3dfd6ed5359b7b2b","0xab55bDEF7057B76482914e79f037999f4eBb6bF1",!1,!1,null,null],["ethereum","healthcare_administration_token","SOLVE",8,"Healthcare Administration Token","3045022100e19265d3363fed75da48867bb72ca9017b6028de3bed7a2749f3b03289b9fc1802207ad22655231decd810d9b8671087fdf52287fe7c4140dad648fc79c7ce68de83","0x446C9033E7516D820cc9a2ce2d0B7328b579406F",!1,!1,null,null],["ethereum","heart_number","HTN",18,"Heart Number","3045022100f25f8a70adb6a58a4431312b9cdb550fac828ac84c3e344ba6b632d91a42e6ec0220147a0d2d1248d1725c3433af75034a52287cc9206f70ddd2c743e45134ce3940","0x4B4b1d389d4f4E082B30F75c6319c0CE5ACBd619",!0,!0,null,null],["ethereum","heartbout","HB",18,"HeartBout","3045022100ad15a0969ba257564e29822051b538d5d9afc51381d97f969a1d3c7e5b1be033022064ec945c88092dcbefea622b03fde27645df0906232025be1deb801289d3c94f","0xE2492F8D2A2618d8709Ca99b1d8d75713Bd84089",!1,!1,null,null],["ethereum","heartbout_hp","HP",18,"HeartBout HP","304402201b8018cbbc76d0ce2ecf9854ddd8df4293e23937209bb503f69ce48f7090675c02206574b8665b4ce80c84bb486867cd7c11e28aae424c6c764e229fa5c44d781a63","0x5a4B14aea23A605aBc463f04a6B8Aaf52Dd3e7C6",!0,!1,null,null],["ethereum","heavensgate","HATE",18,"HeavensGate","304402203c127fcc71251e55a030cd6f8b2509a87cf736aacb6e82bd778034748954649002205366b92e535b41435ecadb2935590551362b807ccb28d927301383d8b3e515d0","0x054bD236b42385c938357112F419dC5943687886",!1,!1,null,null],["ethereum","hedge","HEDGE",18,"HEDGE","3045022100acda4698e669bb6646474bf46fb2010d6733ccebc04f5a9f7354017b651d8581022076e17912a71c66096d6cb0c0fd5ab668ebe2b51ed09c5425ff35532488b8ff56","0x1FA3bc860bF823d792f04F662f3AA3a500a68814",!0,!0,null,null],["ethereum","hedge_crypto","HDG",18,"Hedge Crypto","3045022100e4d3b6de16d165d43b62b71b8bd2ef02ecd376b91fb681bdee503208e160f4910220011099fae8211905df9e10a97c2ac558e0428b8e1201573572e62710f660cd1c","0xfFe8196bc259E8dEDc544d935786Aa4709eC3E64",!1,!1,null,null],["ethereum","hedge_tech_governance","HTG",18,"Hedge Tech Governance","3044022039e69fc8a8a02b34ab5d460c720da9c239f73e5caf286aac3035a47d4935dd8002203711ea8157807ff53217f366d87f38357abfe6223056500b91c607e861c0d784","0xBfF89386D062C6040ed1955e180c87dD00bb71aF",!1,!1,null,null],["ethereum","hedgeshit","HEDGESHIT",18,"HEDGESHIT","304502210087b8dd4a4e7eba27e6f0454ee8b596c6a7bc51c8f7a32368ed89934e2bf69a5b0220734329878722d8f9168e8c6379b6831f447f96abb00c6fa0827d0f50694ed417","0x1d9cd2180Fd4E9771fCA28681034D02390B14e4c",!0,!0,null,null],["ethereum","hedget","HGET",6,"Hedget","30440220155834912cdc8d84bae0b2ba977358b15ae79dec1547df3c7a60dc90c53366be02201dcc1e2f47668cf416aa6a64125b51a4e758cd10b5bf0227ba85fc17fb362311","0x7968bc6a03017eA2de509AAA816F163Db0f35148",!1,!1,null,null],["ethereum","hedgetrade_token","HEDG",18,"HedgeTrade Token","30440220446af6ac0b649f377ee33dfd7d9c7ff2078803053fbb18ddca2dfd305eca3ff602200f9af14d554612b7aff724e90200ad24ca64ee78e4c26c209de62b10e6b448ea","0xF1290473E210b2108A85237fbCd7b6eb42Cc654F",!1,!1,null,null],["ethereum","hedpay","HDP",18,"HEdpAY","30440220526d1678964b58f9a5f8a8ce487b6c261ef0b1641c75ee1032b8d4a400d6069302206ca5ec31266c465c5fc271a4fa8c0637bb8f7f61ed7b142523da7464b50dc18c","0x84543F868eC1b1FAC510d49d13C069f64cD2d5f9",!0,!1,null,null],["ethereum","hedpay_","HDP",18,"HEdpAY","3045022100bcd2aa2591754876c924184000ff6a44c2628754d1ec0797ef05dda580d56a9702206b800dded57e7e07ab1f76d192226cb163c4c8a776b56fdb2badce9d81f82589","0xE9fF07809CCff05daE74990e25831d0Bc5cbe575",!1,!1,null,null],["ethereum","hedron","HDRN",9,"Hedron","30440220746f2ed01a40451e5db1b90c934f392f8004eb4d248c6594e894eb7ff848a2340220564cd4c44fa4fc483bdd71113c9ce470b99d915b963f04eb44f429b92d95a521","0x3819f64f282bf135d62168C1e513280dAF905e06",!1,!1,null,null],["ethereum","hegic","HEGIC",18,"Hegic","30440220268df52122a8fd35d0a9c97b668aabe745008807a98439cdbb43292c5cb261a102203206902111085ed8d915f0fbbba65b316d5ccb0af827c1a25b54d4cff22ebf2a","0x584bC13c7D411c00c01A62e8019472dE68768430",!1,!1,null,null],["ethereum","hegictokeniou_phase_ii","RHEGIC2",18,"HEGICTokenIOU Phase II","30440220409f0022fdde78cfdce6c70558ef374602c9ef648f10d5291208741e9a30002b02200c88717d5ce3d6aa2f612e83ec42d0212b2f015958f46776d90a8d1166928129","0xAd7Ca17e23f13982796D27d1E6406366Def6eE5f",!0,!1,null,null],["ethereum","heidi","HDI",2,"HEIDI","30440220548b0a3fbedafafeb081e99343dc37dc8cf4a288d6f7abefc6d580a16e1cfce002205213b990c1c7444950802452e023e5f039229a932d6115d432d0947d5440e036","0x58A3520D738B268c2353ECeE518A1AD8e28E4AE5",!1,!1,null,null],["ethereum","heizuan_token","HZT",2,"heizuan token","304402201fb5e7256593b7fa767c86d43a13911cf9ff7c82b7159fd61857cf97ba1ec7a002201cb6e06b30c43d43a0960abdc89faef7c8ec2ebbb8b1e907c9496c72660768dc","0x78A5B382B9A83Fe042A4F7eB2399d563FDa931C3",!1,!1,null,null],["ethereum","helbiz","HBZ",18,"Helbiz","30440220729d90390f3a97ead3eecfaad8dc57e30b3e84bb751f7e23629efec000e2515a022065bc40c379fd89ed5077b8767fd4ee37d2db87667e11200d9977abd881dd85ef","0xE34e1944E776f39B9252790a0527eBDa647aE668",!1,!1,null,null],["ethereum","helex","HLX",5,"Helex","30450221008c0e145dcd2207f1a42af1303a8c38cab18af3272f7c80f4179a765df1dab9f20220403867192546c2429c49af9e3ff18cbf9ffab7ff8bd32fa5fb8d3cf464d23c13","0x66eb65D7Ab8e9567ba0fa6E37c305956c5341574",!1,!1,null,null],["ethereum","helio_power_token","THPT",4,"HELIO POWER TOKEN","3045022100f2f64e3804092fd7ad20431153e91e5abdb833d8bcfb3c6bb76f7a44b48fffa70220402baee383173286f88dbbaefd95ff552ba1248440389f0485c90115c7418d2c","0x9F58702Ef19ebEB76363884362439a8691E3f033",!1,!1,null,null],["ethereum","helium","HNT",18,"Helium","3044022016701569b52109b8daa0d69ecf9eba52d25fd6dcbe9679f88c142ef673c0b103022041a3a02a4ea50807d2e85f2666cfea730eaa9e096d93e8eedd02b46b602f3ec1","0x08Abae9AF6713aC141D85e0b6ad825bb85F39220",!0,!0,null,null],["ethereum","hellsing_inu","HELLSING",9,"Hellsing Inu","30440220544788cb4cd976faf79e7cea514c4133c7b1ac51a090e38324638b3e7b27175c0220117fc40208539e8e03c9a25c505394bf211d716350a0f02ca2a0d8bdad18d9ce","0xB087C2180e3134Db396977065817aed91FEa6EAD",!1,!1,null,null],["ethereum","help","HELP",18,"HELP","304402207515e11b05cc9e8b887a9a4c65f5e7f2b6545ba8fa22e8624899552754081db70220354571976673b54f3ef8402dd430301d6415a6cc082a5c1d8f16b492ff73d6e2","0xbBc2045D335Cb224228f1850b29173d9d7D7b989",!1,!1,null,null],["ethereum","help_coin","HLP",18,"Help Coin","304402200867ed024c51a0ec767b09373edabc17174545963efbe8cd09aa50d0d7b4b1380220476ae6c5080cf4f0a4c73f80a7ad7e771897146f188359b670085619cc3d8a02","0x308564DC5217c39386F5eaE96545159e1D396661",!1,!1,null,null],["ethereum","hemelios","HEM",8,"Hemelios","304402202aab3f01d8da3c4c3c5da89fd004ffbf9d9c97024a8641938a059f9ceb75717a02201b6e1c0d67abba72aabd9862cb90ddfa9583907e975182385a0eaa61c9890ac1","0x19747816A030fECDa3394C6062CDF6b9B4dB0E0b",!1,!1,null,null],["ethereum","herbalist_token","HERB",8,"Herbalist Token","3045022100b548188a33ba8a666c80bda59c40742293d2f1c97d9ecef3f5d55a9fae82162c022027c8f2600e63fd716ded684e510ef6a442c88d1b8e4acb5e28146e96b9a3d09b","0x04A020325024F130988782bd5276e53595e8d16E",!1,!1,null,null],["ethereum","hermez_network_token","HEZ",18,"Hermez Network Token","304402204591929999d6797495216388b0b3325685fd10168238e2a11f0e69ca16b65c4d02201465743753235820a655fc6c69e74987b2096aa0f6cdb490bf42255ba64a11f7","0xEEF9f339514298C6A857EfCfC1A762aF84438dEE",!1,!1,null,null],["ethereum","herocoin","PLAY",18,"HeroCoin","3044022007d9aa80d270dbd66447f7e9a65954c846b34c877f90eac792c445b4421140610220032ddb36a15d0e4c006061058ba12a478d41152d2ad454c9fe23ef72460238d0","0xE477292f1B3268687A29376116B0ED27A9c76170",!1,!1,null,null],["ethereum","heronodetoken","HER",18,"HeroNodeToken","30450221008d621455d164a1ab0b2ef16c053f5389669947ee76f911689397b11cc951aae502200c3029a5a7570a25fbcd6a682afe9a1999999364efa76597e5f55883a1a7dce6","0x491C9A23DB85623EEd455a8EfDd6AbA9b911C5dF",!1,!1,null,null],["ethereum","hex","HEX",8,"HEX","304402201c97b987c7230412238480a098b34a0e4857997d60ede64937ba249f913ec66302206a8da5e632132c9f97c07c1a483c3a7c549b51ee05ad2947419ba2c129e8cc10","0x2b591e99afE9f32eAA6214f7B7629768c40Eeb39",!1,!1,null,null],["ethereum","hex_money","HXY",8,"HEX Money","304402201898770f0fa51ef3abdd3683052d6a1fa004a6b86e67ee5cd600b33ef01ded9e02202ab463d0472947ac0a0916d7e6794b905cafac21e80ac1dd7159e0f3b4654d96","0xf3A2ace8e48751c965eA0A1D064303AcA53842b9",!1,!1,null,null],["ethereum","hey_bitcoin","HYBN",18,"HEY BITCOIN","304402201437f1d3114134d65dfd0cad48fcc22a7f223385aeed10e5cdc958d07afdefba022005f7ea8d3dbb869206c74813fe321b192ec1f1f80643614ece64e6aae2796926","0x20Bcae16A8bA95d8E8363E265de4eCFc36eC5cd9",!1,!0,null,null],["ethereum","heytoken","HEY",18,"HeyToken","30440220428d9126978d8124e366a76179b937a1caebd35462c28dff8fef5946b40dc573022005201710dba19c4df3eabcf944cd99658177a4b708b3eb10da64250c05217572","0xe9C9e7E1DaBea830C958C39D6b25964a6F52143A",!0,!1,null,null],["ethereum","hgold","HGOLD",8,"HGOLD","3044022010a5e0ac3819ad7623f6ac7432855d934b0998660d8126d8fcdb6e630d4f1cfa0220557289e6ff11be7486b5340ee127f2aba014b508b5a9244a4a65f7230fb7bce7","0x0c93B616933b0CD03B201b29Cd8a22681DD9E0d9",!1,!1,null,null],["ethereum","hgt","HGT",8,"HGT","30440220228758727d3c08594f2c8970da539f257e9cda4e1ca397545c259ee6c0d31ea202204f533d0becacbcab5d83378a4c82f5be31fc5535592bf2174fb888ff87ccb834","0xba2184520A1cC49a6159c57e61E1844E085615B6",!1,!1,null,null],["ethereum","hi_dollar","HI",18,"hi Dollar","3045022100fa09ab21861fd73d901f305b5dd222eee09fb140157c7368d87d459d8b1bbb0902201078278b32ca7b3ed1881d9a261307c5efa46216dd8146057a6a3805d822dcdc","0xC4f6E93AEDdc11dc22268488465bAbcAF09399aC",!1,!1,null,null],["ethereum","hibtc_token","HIBT",18,"HiBTC Token","3045022100cb3f9fa7948a6f4d80f88b757f42e497a0bd46244abcd4e0233b5fbb95a52c7902202633d66f36880bd6163261ea76763d004666f9734fe8423a69f091fb1c7d3279","0x9bb1Db1445b83213a56d90d331894b3f26218e4e",!1,!1,null,null],["ethereum","hicky","HKY",18,"Hicky","3045022100cecfab1bac2ddcc84a7a269803f4cfd61aedc58fc2d1fab743f34d12496563ec02202b2dbb813f5d98ca3fc15b04603beeb4cc8ecf17500da9d5c00cbee620a5ec39","0x88aC94D5d175130347Fc95E109d77AC09dbF5ab7",!1,!1,null,null],["ethereum","hideaways","HDWY",18,"Hideaways","3045022100c7bcd0d6a374eb0f6f44f75e81ab90d7ae469bbfdcc38672393ec87f80fba88d0220638a06d1541c6c892d9a1b42b1a03f53defae722ee3f1ef1452bf30d3ac595c9","0xAB22E79F2DfC2e572223780fA425C827B0892170",!1,!1,null,null],["ethereum","hifi_finance","HIFI",18,"Hifi_Finance","304402207987364430f3409cefe4aa8cb5cd45eaecb926459829fb7279cd1938bde32389022011659af8a7631cc0df5ebef1db56f4e129c5ea5304429352893e27736231eb7b","0x4b9278b94a1112cAD404048903b8d343a810B07e",!1,!1,null,null],["ethereum","higamecoin","HGC",18,"HiGameCoin","304402203f8df6b2a3e3a91c6a2260a0552b569fe46cbe9a2c9f724799f922b0d1b2c6e302207befe94aa220e9c31960467262de4bf5e17e765b51d20a08f73ecd2621e490f5","0x5b5A353Fc217EBEf77bC7686ea05A003eBdb7d1a",!1,!1,null,null],["ethereum","highstreet_token","HIGH",18,"Highstreet token","30440220301916ef640c0889c1852fa1e208207abf63d11b39089d7ef5fd397fb52590bf0220621bfabf7c01d1c1472ff779bd2d863f5ca7b6b36ee451cb92b33d7e33d62993","0x71Ab77b7dbB4fa7e017BC15090b2163221420282",!1,!1,null,null],["ethereum","highvibe","HV",18,"HighVibe","3045022100e56a121f246a7783c7eb652c0c08908adda000246c65eee226a51034d2ad962c0220208b4e5e060463475b64f346811bf260237e81b2473f7e02df33e6098a296f8c","0x141ABB03F001dEDED9A0223d4ff26d929117B72e",!1,!1,null,null],["ethereum","hina_inu","HINA",9,"Hina Inu","3045022100ab7b3291812910167550ea8c874a1e10ad7acb3169a075075ef2069f1e81414d022050483a6ba2f29dddbf753e7d3e23bbd2c13ac4ffa3fd478700829b018b3b54ca","0xbD0a4bf098261673d5E6e600Fd87ddcd756e6764",!1,!1,null,null],["ethereum","hintchain","HINT",18,"Hintchain","3044022024383249b1102dc690bb0ca7e635bd4f0a42668093ad2a6d4cbd13e18340b12a02204685de87cb0add5b20ea127d0445c3f0c4808e21135bc42a1e06dc46d518fb58","0x6CE21e5f5383c95691d243879A86A6025E0870c0",!1,!1,null,null],["ethereum","hippofinance","HIPPO",18,"HippoFinance","30440220620a9030b5f516fcd7af4e8432d2f0b3bad138e7beb66f3ee8b6ea844115ddf302201db4e2588c1092c08652255d11890a0e48f96f88550458f973dece7246d1ba14","0x81313f7c5c9C824236c9E4cba3AC4B049986E756",!1,!1,null,null],["ethereum","hitbtc_token","HIT",18,"HitBTC Token","3045022100c9ea3a489f86c6d0cf4c4cd4368409eb617bafd4a39a337cbd455ab552a8d97e02201a4b4e4110f254e03d289fb65a1eb79088bb2b34589dff65277402c5bbadea41","0x74b1Af114274335598da72f5C6ed7b954a016EeD",!0,!1,null,null],["ethereum","hitchaincoin","HIT",6,"HitchainCoin","3045022100f84ed6285eb422130a67fda2f28b14e885ad2d5d3dff9cc55c4f847603bd31a702205830556d2407e8071ea4b81b74359361459d9d4e650beba7b4b36f8ca198c0a5","0x7995ab36bB307Afa6A683C24a25d90Dc1Ea83566",!0,!1,null,null],["ethereum","hive_project","HVN",8,"Hive Project","30450221008c03aed83da1ab3652f31e6d49b3f617244225e6423732a4cc1b8d9299d5065f0220364eadb0628afc62ba47f64924821028ff8c22499bc3a3a5e40850d6ca3b7c20","0xC0Eb85285d83217CD7c891702bcbC0FC401E2D9D",!1,!1,null,null],["ethereum","hiz_finance","HIZ",18,"HIZ Finance","3045022100c1044b8231517f0c297184db981f4a90052624e40c2a13ac51f859b5161af60a02201d8db7f52c0b6f4e225a0e8d523adcf012d0c34be22106ab2e1e30ba32694815","0xc761D1ccb38a94703675d2cDb15F7F1B3dcFF7B7",!1,!1,null,null],["ethereum","hkg","HKG",3,"HKG","3045022100abd0fede9550c6385f6e3b288d4541a5b078a04d7a96cea780587f15129004a9022065ba5ae5b70aa6fb6a9f42c6f8d7d55d2801d7e7d064536fd9c40e049fd75e62","0x14F37B574242D366558dB61f3335289a5035c506",!1,!1,null,null],["ethereum","hlandtoken","HLAND",18,"HlandToken","304402206f85ab9ba2125b9731f69a324a2a0f4af231e2b64b45c15f2d4c15f95c4add42022075354f813690f46e552aea484c8b4993f5d8e83b0410a8ccb2e0505fb45f2b9e","0xba7b2C094C1A4757f9534a37d296a3BeD7f544DC",!1,!1,null,null],["ethereum","hmq","HMQ",8,"HMQ","304402205b9d9cf90684fc8275521004446b60bc6d54d785632954889e66fc5fdb7cf3f60220693333624cfbc4cf010fc25dc85edc77bcfbdb51c1a0dd19dd8fb0113521c80d","0xcbCC0F036ED4788F63FC0fEE32873d6A7487b908",!1,!1,null,null],["ethereum","hms_token","HMC",18,"Hms Token","3044022060890370189e42555f49fec76e0ddc75696f5e0eced7f589659f37a7ac5c384b022065aafa9e9f34c8cda92c50b8f3a2ea255af7149f48c022ff39b22af3f095b82f","0xAa0bb10CEc1fa372eb3Abc17C933FC6ba863DD9E",!1,!1,null,null],["ethereum","hoard_token","HRD",18,"Hoard Token","3045022100952c0476902d287835b804e91bd8a07726c95e0b7b49bff6eb81c12b6c4e231e0220089d1208a8344fa74549014a72f38bf87094cf8b34f1050b61f145784aa7683e","0xC617D51E3a1f621dA8aE67b2f652d6aC02Eb8D95",!1,!1,null,null],["ethereum","hobonickels","HOBO",8,"HoboNickels","304402200edf7b1d1a3fc21a64c451e34eaec9b76a2ebcbb2c157f1424cebcf7dea455af022051ef3159ca7359cf40c7dcef54e8dfe6351ee7557249fa0ed9669b35556a788b","0x6Ee2AbfBF98D85c7090B5459103334a3638649c4",!1,!1,null,null],["ethereum","hodl_t_meholdtokenflc","HODL",9,"HODL t.meHOLDTokenFLC","3045022100c47544a2ffee8c79a6c6427c70081a2f186830caabfeb146fc407ee813b7cf1e02203ae2521cfb0bfc2adecba6efc4b965bd0f5934514c4cea02688e6637951a9dd5","0xE2a083397521968Eb05585932750634bED4b7D56",!0,!0,null,null],["ethereum","hodlcoin","HODL",18,"HODLCoin","3045022100ad3a2f337a887c4c99f864bbd1b8b274e53d5e0fb32ab1b239f2a9df33be3bd80220573849bc6f8afcfb916b18c8e2101263c910bbe2dddb8a5abc9d91c6481a4f3a","0xb45d7Bc4cEBcAB98aD09BABDF8C818B2292B672c",!1,!1,null,null],["ethereum","hodltree","HTRE",18,"HodlTree","304402202a93307ff9d3f53edde5c8ee1667600689deca7f0a86dc01ebfd5f5c27808d22022062e73365804a13847baee18c90ced29c521789c4dd1c41365eba45d4d4589222","0xDea67845A51E24461D5fED8084E69B426AF3D5Db",!0,!1,null,null],["ethereum","hoge_finance","HOGE",9,"hoge finance","30450221008d8e3a120bbb782001bf491abf4edd5bbd82e9b59a5f4613774e62cf9477e928022075b81e1a34a59528500ced277e539677f994493e12042918038a70ce5cb6c249","0xfAd45E47083e4607302aa43c65fB3106F1cd7607",!1,!1,null,null],["ethereum","hoichi","HOICHI",18,"Hoichi","3044022033929eac187336385841c932792e43e94e8ca8970838df8b3c36141a4a44ea7302203c2e819d46adf0150d7a492e93329ea3dc9b602887b1173a5aaf032379c6dd8b","0xC4EE0aA2d993ca7C9263eCFa26c6f7e13009d2b6",!1,!1,null,null],["ethereum","hokkaido_inu","HOKK",18,"Hokkaido Inu","3045022100a637052c08ea8224f8ddcf8e2a3ca88cf8ddd03bf5832670c661aa13d361d2730220576f76c92f85906fc45566694b199a1a3d197c364cb63ef64594959769071182","0xe87e15B9c7d989474Cb6d8c56b3DB4eFAD5b21E8",!1,!1,null,null],["ethereum","hokkaidu_inu","HOKK",9,"Hokkaidu Inu","3045022100ccb2f3a100ea1779b5ecf954f02126ff4b4505607b2f3b83f5c6f92fb406a311022055c3f710e5971e3f41844ea6a836e404b9bccf2c77163e8577872e0c02d728c6","0xC40AF1E4fEcFA05Ce6BAb79DcD8B373d2E436c4E",!0,!1,null,null],["ethereum","holdefi_token","HLD",18,"Holdefi Token","3045022100e6a90f882abda4a804039d2f9f7bdf952fdf27c6738a3402c092d0a96000b7a702207920f98c512ec5ed047cec994c614323fea0fbc0bda70db0458e80f57fc1bc8c","0xD520ddbdf81323F4B9a0Ea0AdBb692eBEf6cE280",!1,!1,null,null],["ethereum","holder_tech","HDL",18,"HOLDER.TECH","3045022100ef6b1f3f755f0cc347f4025a2221bc6c63ce22c3c65202cc015d7dad78c0cd2b02206513b2e825e52744acc1d62bb3f1ac763525fa26f7b474008c4c64705a52056e","0x95C4be8534d69C248C0623c4C9a7A2a001c17337",!1,!1,null,null],["ethereum","holdtowin","7ADD",18,"HOLDTOWIN","3045022100e365587baa052ba6504d8538a71a2448c80c65e7ddd84b6ce6b9b304bd4de0f10220735442a5c7de797214813c8d4c77cf4b482a889e625b08e22194934b9c3359af","0xEd36482c7F8E5850e91aC0Cf6BF2130A1aA2DF92",!1,!1,null,null],["ethereum","holistic_btc_set","TCBTCUSDC",18,"Holistic BTC Set","30440220242e519d2bb19776f67ede571031123bcf96036be26d5fcaabf140ccc1a927e702207237c035a102a20792346fae42ef460a07b7612ddc477210af0c2fc8eb653ebb","0x7510D6fac98A6eCa2DB7c9357619715a7f5049d4",!1,!0,null,null],["ethereum","holistic_eth","TCETHDAI",18,"Holistic ETH","3044022007c34ee31cb0b8a4369d5bcbe64a0a270411a3561db15400f616419cfda21f1d0220159ae9e41ec4c396c660c43ba0d705a169c76f19abfb13e72c360e5476ebcd67","0x8e4dBF540Bf814c044785218B58C930B20a56BE1",!1,!0,null,null],["ethereum","hollaex","XHT",18,"HollaEx","304402204bcdb7eb471fa211398d6529dd356442cfadebffd8f8be6fcb80b78cf50a39cc02205670df55ff0a9ca61e520009263aef58c40a955aefdac430d80f6ef4effd67d7","0xD3c625F54dec647DB8780dBBe0E880eF21BA4329",!1,!1,null,null],["ethereum","holographic_doge","HODO",9,"Holographic Doge","304402204264d7b9db6b0ca03b34b19a9f7118d231928849a1dba6468810ba14f264f0c7022059348310df7aa7fb23adf89e89c6f7d3e5fc43b86119733144a9d4a8efd116bb","0x92c8525d925D2EB6a3108458D2CDB3a795D457D2",!1,!1,null,null],["ethereum","holotoken","HOT",18,"HoloToken","3045022100fde91b03d7eff25be02617203899915ee4eeae0509483ea826aa0b81452f82820220253648c0a79afc3dff9faf0cf8583fee75d48c029481320101721624b7fdc1a7","0x6c6EE5e31d828De241282B9606C8e98Ea48526E2",!1,!1,null,null],["ethereum","holyheld","HOLY",18,"Holyheld","3044022026f1e137e67fe0228eaf44ca41264cb7a502fcdcbceabfbaed8484e544efdbdc02207cec0f11ef4c3ae75e719ea70e564726328525d88ed1684f53f69df5ce29470f","0x39eAE99E685906fF1C11A962a743440d0a1A6e09",!0,!1,null,null],["ethereum","hom_token","HOMT",15,"HOM Token","30440220369e502d72c3449b37dbc72267768c869e523f3add165d461c9f700a6fe8f747022058b909a4ecc1f1477364c747094033bcc24a3e19c7cec7be31b2b22fa4b638b5","0xeF7A985E4FF9B5DcCD6eDdF58577486887288711",!1,!1,null,null],["ethereum","home_coin","HOME",18,"Home Coin","304402206d754b7e21f07dd503391c4048f5bc4e068d0b503224787a29cd9e8c6cb9181b02205cf4edc0a87ea48a3377579ce519d15c952f0765263d18adecbcbb66a350ce45","0xAF585c15daB8C363087c572758AC75E82C467579",!1,!1,null,null],["ethereum","homeros","HMR",18,"HOMEROS","3045022100e9fd9a7d249d9a7ff76445171fda55dff102441687082599587f8252c48324c80220454f9f695a595e9c0bd9f83e440817f5cfae4b4e396b99febf441e8440496022","0xB1A30851E3f7d841b231B086479608e17198363A",!1,!1,null,null],["ethereum","homihelp","HOMI",0,"HOMIHELP","3045022100bd47a3f8ae5113121fc3e0367a6be6b040dfe38988e317bb7d8a871a226a279202204de2e73c1b283036824c772f07e0b292aab2a58cc99fe0ee0d6eb448858e1ee3","0xCa208BfD69ae6D2667f1FCbE681BAe12767c0078",!1,!1,null,null],["ethereum","honest","HNST",18,"Honest","304402205f7bedf28e1a4ad464321fdbc07fa58d01841d94ace13433a13dbaa7bec29b0f022071003d90b28bafffa33cd3c7f6caa1dd9b9d40ad36d97ae415e42c50d55ab361","0x9C9Fe3bD60b22A9735908B9589011E78F2025C11",!1,!1,null,null],["ethereum","honestotoken","HOTO",0,"HonestoToken","304402202d99568086de1a7d28afb85b0ef64145d8a0f310b4fa44fc9942092cfdb4e84e022036cb3cd4c7a23c41acdcf4afc534237b115454a881cc597ad830588da5470b1c","0x56316c5871c8525A95ccA5561EcF7349a9BCcEB9",!1,!1,null,null],["ethereum","honey","HONEY",2,"Honey","30450221009487d4dafaf4e88d3a6909b273519cfaba29d460bea4c17b8debc77e4155325a02207491fc0789f96ca9db9f416819e631902e85e7133c54a09ae3654f4ce56492f9","0x5CB9B847FbA8aAdb8a943fE19C1cc8439d7e00C5",!1,!0,null,null],["ethereum","honey_","HNY",18,"Honey","304402202fd84994c26c7954c2d3e61eb66323f01252a9d1952cdeffd4ce5297da876885022074bce3a96b4a747e0f43a28d9095d276c56e9004ab4771d1c25379b4d4908d79","0xc3589F56B6869824804A5EA29F2c9886Af1B0FcE",!1,!0,null,null],["ethereum","honey_token","SWEET",18,"HONEY TOKEN","304402201edc62e1f3e328d9e4602dfaff656654d6758568a7dd94756c1102bcb68e59b702202fa4551604a8105d221981c5cedf820a27030980b665976183d824bd1229552b","0x1fa9F1CbF8c9a4fb3431a5809f31723038ed291B",!1,!1,null,null],["ethereum","honor","HNR",8,"Honor","3045022100ef3c2f0301fd1f884a0bd14b269cf04a421ed72d3c9e6a28f75dd91378380f65022073588dffdbb60e76f3f6c1a70ac3e3a252b66d6677e1f36144efb0532c27e747","0x84f63f48FD144461d429599A83ceC965e4700b9b",!1,!1,null,null],["ethereum","hootoken","HOO",8,"HooToken","3045022100da10f25b9ba030967f78448645bac308f30551d0675795adfe3af90d72bbff4202201ac639cdb3a883396f4e161d9e08b7f59389920e97b605cbbb30fc4216dd360f","0xD241D7b5cb0eF9fC79D9e4eb9e21F5e209f52f7D",!1,!1,null,null],["ethereum","hop","HOP",18,"Hop","3045022100a65fd5217214d73588d8b8061135f97cbcb015dfcd19da7e8ec3c905a48bae5d02200c77d42165078f73f72b3e138fe1144ff1792467456746f0be8fe4ef798bf0f7","0xc5102fE9359FD9a28f877a67E36B0F050d81a3CC",!1,!1,null,null],["ethereum","hopr_token","HOPR",18,"HOPR Token","304402203546f15b63c62dc20d9f6997a365ea6c971478fb6e773ca7d24ed267e7fe3344022014b4536622e009f98ada9f038ec63dad4c69a478cf7f9bbb3320a80b719d9177","0xF5581dFeFD8Fb0e4aeC526bE659CFaB1f8c781dA",!1,!1,null,null],["ethereum","hoqu_token","HQX",18,"HOQU Token","3045022100a593efb7667bea043d197499462c4ccb986dd2ca82b846e8b90cda69c770fa71022072c7c950a1df024b38cf323c965f6e19a31e0abee7888850f4d5ac7cdef8f86d","0x1B957Dc4aEfeed3b4A2351a6A6d5cbfbbA0CeCFa",!1,!1,null,null],["ethereum","hord_token","HORD",18,"HORD Token","3045022100b1f8eabbf931d1376b07fbc516ae08f732ca9ed6d5b187570a9e25a3d16d3fde022030574e4e58ee2ca993e5617ec54c51fde8753d9a8796b38493d04144faa21c29","0x43A96962254855F16b925556f9e97BE436A43448",!1,!1,null,null],["ethereum","horse","HORSE",18,"HORSE","3044022013b9b59d48f4e33e3c1dd23d991b95ad6160a5f9728273523c5bd69392a4a99a022019054c9b482d3616d17059a522627b27f8dec755226cfe374af67954c501f179","0x5B0751713b2527d7f002c0c4e2a37e1219610A6B",!1,!1,null,null],["ethereum","hot_cross_token","HOTCROSS",18,"Hot Cross Token","304402202e3e1363391a9ae785bb6ce66aadf866ee7064a034866486d441d5877a8f5d19022076c2129ba3dbc81bb19300b6b3e5a58728a1089635af9f56c8badc906e0a4199","0x4297394c20800E8a38A619A243E9BbE7681Ff24E",!1,!1,null,null],["ethereum","hotbit_token","HTB",18,"Hotbit Token","3045022100c81fcfd46f9f282c7218a8c40326589bda6452aa7a20b26d96b8f019f178e10a02203297d8ac65843a2da4d2ee18ecce9c825b02534276592783b7145bbd432efc4f","0x6be61833FC4381990e82D7D4a9F4c9B3F67eA941",!1,!1,null,null],["ethereum","hotdollars_token","HDS",18,"HotDollars Token","3045022100bd5a5bae5ac89cfb1e4fb49ece94ce55079a800f857f92e9e836a49f7ef1862002203d33a8d26223cd2522b091b158cbd98384b1920e0dd68d8a0073b3a7450964f6","0xcAFE27178308351a12ffFffDeb161d9d730DA082",!1,!1,null,null],["ethereum","hotpot_base_token","POT",18,"Hotpot Base Token","304402206ae9ee57b14d5a690dc9fa525780f2ff53d86d3f58181cb2f49c9f63707c6a400220173ac7bed1b2a3b38f4cfe7b7c54eb79c4ebf8ce730b82f69d3e75b1beec2cfd","0x042aFd3869A47E2d5d42CC787D5c9E19DF32185F",!1,!1,null,null],["ethereum","hourglass","WAIT",9,"HOURGLASS","3044022019f56aa5aad1a384b3a1a7a46bb0384cce37c6797f0d47b439e53264bbefb522022077c8716cf0f4df147e72534538b74e2074741dbeeb89f16aa5ad2ce1c8901404","0x2559813BBb508C4C79e9CCCE4703Bcb1f149EDd7",!1,!1,null,null],["ethereum","hpbcoin","HPB",18,"HPBCoin","30440220500ddcff3eb43b0707ebc8ca024a4beed81472d8e62315982eee44f26a7a52e402203ff00f9f013f879cf17938a8c6d0be6395d4562f8caa13ac0c38b20a2f5c68a3","0x38c6A68304cdEfb9BEc48BbFaABA5C5B47818bb2",!0,!0,null,null],["ethereum","hplus","HPLUS",18,"HPLUS","3045022100f7d982041e77731088cb6ab06b3e6e4e988fc70d95bfd13acc29643dea420641022008a0a420d7257269dbd49e6665c0c34e75d38cf36db43e678e7d797f39e7524e","0xff744f2315C9d61d825B581C973576055C3da07E",!1,!1,null,null],["ethereum","hst","HST",18,"HST","3045022100aeb12ad23c99fa6530965103f7e81f9280183407b78280892432ef86f06505ef02202afe82761ac1efa0a62ac9ddda16cd5dc8a7d7f6b4207dec371ad9e57c199a3d","0x554C20B7c486beeE439277b4540A434566dC4C02",!1,!1,null,null],["ethereum","htbear","HTBEAR",18,"HTBEAR","3045022100d5f9c1ff3fee692d9debb04685c0a552268683c56869aa7968929a8152e4d8fb02204f36b18b696656e2557333c43c343fdc1973313dd854d127143d29927f0cfe7b","0x86EB791495bE777db763142a2C547D1112554Fb8",!0,!0,null,null],["ethereum","htbull","HTBULL",18,"HTBULL","3045022100eb082668b51e42185cd77212417b7c64fbe0081c35828bd70a9ccb36de10efe3022017f921208cc55bf8f176d033f4c7850207bbb5bcc8a504a9d8d307656a042f66","0x0D5E2681D2AaDC91F7DA4146740180A2190f0c79",!0,!0,null,null],["ethereum","hthedge","HTHEDGE",18,"HTHEDGE","3045022100ba3edfa5acc35b568d9e41872f4a6b1bd17a34e008b7e1cf8473fa263aceb05a022038547743ae2a041d2c94b2f9ee49ff21f3b24430abf43a1dcdad6a65f08b8e66","0x3008186FE6e3bCA6D1362105A48ec618672ce5b3",!0,!0,null,null],["ethereum","hub_finance","HD",18,"HUB.finance","304402203761e0123b4129f25c273ed7bcdb388534562d63ff4f2489d7dea06ee660cfff02202187089069431dc3b99486494be25a4c6847eaedc331da79b07af16d7817f080","0x6ce654aC973D326F89f0685E7459542641410eD9",!1,!1,null,null],["ethereum","hub_token","HUB",18,"Hub Token","304402203b8e87297de9ae1481255b8650205201545be8ddfb57d8e2bfa77d29b2aa5e7302201eab00f44ca73e8d8f1b05b706bb621123d0d7a28218d35b5091fd716e463ac0","0xba358B6f5b4c0215650444B8C30D870B55050D2D",!0,!1,null,null],["ethereum","hubiits","HBT",15,"Hubiits","304502210082f031ff7384a52304dae34e6d851c5f4f1700597c853a5741577eb666614a3802205c64eb760dae9df05f73d06198a989a3e10880235a25c17d14d534a04d7cf5d5","0xDd6C68bb32462e01705011a4e2Ad1a60740f217F",!1,!1,null,null],["ethereum","huckleberry_inu","HKBY",18,"Huckleberry Inu","30450221008d7ffd81a5f2df35fa4d4a72b1bd3caf0b369790320fa5a4a92d111435a2aa930220110ff6038bbc1014dadb43964e7e54ec08756e84638ce6880021ae40c0a42dce","0x645C52CF6c5C58AA4064494f5b5FFE9C7EC0d7D4",!1,!1,null,null],["ethereum","hue","HUE",4,"Hue","304402200080dc7860a6866ee86788dc28d2c52a5157a2db4accd84498d6e6e9fdf4f36302207ade722bc65b2c2d80b8df060d8796d6ef1768d89fd67bbc50fd14e196acabd0","0xDcfE18bc46f5A0Cd0d3Af0c2155d2bCB5AdE2fc5",!0,!1,null,null],["ethereum","hulk_inu","HULK",18,"HULK INU","30450221008d81ad52617d2dd65ad010df85d0cfefd61c262d0a7f710cfaeadace587f4edc022037d67431dcb2da56eff1eafc3085a3d780405481bee369acf8b3e16121211793","0x91a5de30e57831529a3c1aF636A78a7E4E83f3aa",!0,!0,null,null],["ethereum","human_token","HMT",18,"Human Token","30440220371a09bdf9ce00aa113eb3cfbd8d813adc8ea885ff72aa46a316fdd758fe315a0220117be77cf7c8db520339a148b014daa5ed89e8dda1ea134fcc9bcb2c6c179e11","0xd1ba9BAC957322D6e8c07a160a3A8dA11A0d2867",!1,!1,null,null],["ethereum","humancoins","HMNC",9,"HumanCoins","304402200cdb4f3c97cf449438a572c65da225f8030a2d3e334021d1a67a2758934fce170220395f216ebc9dcce4e3df358aa46b8bc195417cbb9eea5fb54290c52bde439db8","0x77E31D674A46D356b2E65892bDe7758bB26238Ca",!1,!1,null,null],["ethereum","humans","HEART",18,"HUMANS","304402203f203bf568cc622ac08fa4cb8a9c14a2f680569395fb609c8cff629323822811022061d31bf72fc13778aa894aa7ffa24bd43704bb860b454715569fa6723b8dd68d","0x8FAc8031e079F409135766C7d5De29cf22EF897C",!1,!1,null,null],["ethereum","humanscape","HUM",18,"Humanscape","304402201cb0450e333682bb03bc0e82fc0fb4710fdd863baf9bff8c4a1ab288f7cec5060220086612c3aa0422aeae6bc5116ec597b03dac397216775ca88ea887beb21e4fb0","0x174aFE7A032b5A33a3270a9f6C30746E25708532",!1,!1,null,null],["ethereum","hunt_token","HUNT",18,"HUNT Token","30450221009abf7daaf77bb500fdbbedd674411b25a8a89c76dd06e8053b6cb10cf06f1c5702206fe22a90fb72a757e05d354987469e4330282aadefbcdaf8a96ac273a53d8aa4","0x9AAb071B4129B083B01cB5A0Cb513Ce7ecA26fa5",!1,!1,null,null],["ethereum","huobi_btc","HBTC",18,"Huobi BTC","30440220431c5691c97917cc7dd8ca308b84302caa94eb1ae8a78a8ea3a9ceb33b3e1f4002205a8d05c378caf6b74b58ea796bbdab0915b7964d1ea24b24467dd2816362ff57","0x0316EB71485b0Ab14103307bf65a021042c6d380",!1,!1,null,null],["ethereum","huobi_fil","HFIL",18,"Huobi FIL","304402203ced40ad0c2ca2069d1d323cfa56b4dfd00c2ec97e85f75d7446bb4e4558cb3c02202067c16e72c39782dbc825aed1bae0f787bf654cd39ea81bbd5c0aca6d409c1c","0x9AFb950948c2370975fb91a441F36FDC02737cD4",!1,!1,null,null],["ethereum","huobitoken","HT",18,"HuobiToken","30440220650d9569230aeb7c2c2903870f57e2b31839881b668b4bc1f24effe2b30f417d02201822fc0657b12a92e3296f669d26a915819e17458c7d1a68e6bdb3b2f3052142","0x6f259637dcD74C767781E37Bc6133cd6A68aa161",!1,!1,null,null],["ethereum","hurify_token","HUR",18,"Hurify Token","3044022063d4f39653230d3ad91c5955298f69e37a0656d005902c71f7a9e8f8e3564d8c022000ed4cfbe516df9ebc187acec8a58ffced8b071129594f1fe39132763acb3565","0xCDB7eCFd3403Eef3882c65B761ef9B5054890a47",!1,!1,null,null],["ethereum","husd_stablecoin","HUSD",8,"HUSD Stablecoin","304402203e75fa6ff023663627d50feb3c57df8c000b071ce8b23afda9078254b44ad91502202785e24bf4b3a81af8680864b35fad29016463efda941b0e84065fc524d5712b","0xdF574c24545E5FfEcb9a659c229253D4111d87e1",!1,!1,null,null],["ethereum","huskytoken","HUSKY",9,"HuskyToken","3044022032a1cb504c48c0dcc480c22dcf33968c72fea6520f126362e2a0fb9b80dd5ab70220499405022bdf6c25d1ec038a5a443b1d976dfd5550ab17ce1d1a75b5c0e05093","0xd5281BB2d1eE94866B03A0fcCDd4e900c8Cb5091",!0,!1,null,null],["ethereum","hustle","HUSL",18,"HUSTLE","3045022100c943635df5420df11181bfe037e2c785bede2cf65eea4be0ead6846d54eed62e02206d9eab955c9f53b8cf4fda4aed36f5c9500728b913f7ea71be076e0c17810cdf","0x56BE94D29e1125D2D61D06629c1b251d72c1b3B3",!1,!1,null,null],["ethereum","hut34_entropy_token","ENTRP",18,"Hut34 Entropy Token","3044022031149e4586d0d4e919f290ad371bd6b6af424c4c38f5d4f04fa5d7a435960d35022030c180c2ac077f662172a4a2bb9a163ccf8f14a077f944c9220edade03a27e44","0x5BC7e5f0Ab8b2E10D2D0a3F21739FCe62459aeF3",!1,!1,null,null],["ethereum","hxro","HXRO",18,"HXRO","304502210087bd30d57e7680ca91ce7c9a1fde1accc89f01a9612d4ae1e3d185facd62cde002204dccbc1ec9f57fabc1c5dd3dcf2e3f4e0f469c9c44ee7ee510057c7d0d9a5871","0x4bD70556ae3F8a6eC6C4080A0C327B24325438f3",!1,!1,null,null],["ethereum","hybrid_bank_cash","HBC",18,"Hybrid Bank Cash","304402202c6b6153b79eafe6a837a67a4ba8685bf2c873cc6a04943e635f2822687ed36702207c7042656feb98bda136e6afc8b10f1ca58aaa06f04f4bd739d1564993dfabe3","0xFb9553aFa2B5c19c5F8e5b8eE175Fc01abD1555F",!1,!1,null,null],["ethereum","hybrix_hydra","HY",18,"hybrix hydra","3045022100ca90d591aa6f178e0fc0276dff04ed7432ea2af3d4f37ade7e3fd7d99f43484c0220627bb8154fbab327bcc6068d30525016db566e76f7ecea9f96cdae5026b9cfe5","0x9b53E429B0baDd98ef7F01F03702986c516a5715",!1,!1,null,null],["ethereum","hydro","HYDRO",18,"Hydro","3045022100b3d5511ca38243d8dc41351430badbd447220fc1a0a4053c1104e5ca406d8aa702202a7aa3fd35811b29fbde4ae018935400f99fec81438ef54a2798c07930a8f233","0xEBBdf302c940c6bfd49C6b165f457fdb324649bc",!0,!1,null,null],["ethereum","hydro_protocol","HOT",18,"Hydro Protocol","3045022100ac5dfbb23193766919893e9bb6dd53f43dc0f2acabf8741e5a74317889fe1f6f02202998c2bd4af0f36774f58160b704ceff8274e28eb7a9596f15b57ac5bd37a6b7","0x9AF839687F6C94542ac5ece2e317dAAE355493A1",!1,!1,null,null],["ethereum","hydro_token","HYDRO",18,"HYDRO TOKEN","3045022100b40f318f8a2c4ad2fa2fa6bf4260315d88add62760e438ac455d07cd04ee5e0102202ff33bd1b117062524969b6ae6f9f685c92367a2e26f0a894e9c64f2855535c0","0x946112efaB61C3636CBD52DE2E1392D7A75A6f01",!1,!1,null,null],["ethereum","hygenercoin","HG",18,"HygenerCoin","3045022100c5bdb119c49a7bed27faed416d977a2690e6972405c1bb8bf4a8a3f248d797d60220202fd3c8c9e164a2830ff6d6b096965829dbe730db2c0da6fb8316b197be7f8f","0x1BC9F31c327Ce04b6fA9D56FD84c14Cc0B0A4f47",!1,!1,null,null],["ethereum","hype","HYPE",18,"HYPE","304402206882cfec406d11f912d2b5bf03bd20ad6c6090e6602d4fe8a6013bb4d1eec1af02203c5d989e9291ae345763bbd7f4041eb3761d5df394d9531aa8117f453ce06694","0x4ff7c227e1e7bD59351de8635381C379750A8040",!0,!1,null,null],["ethereum","hype-finance","HYPE",18,"HYPE-Finance","304402204fa1b0ac46a15e78096d642e4fdc370acceda604baf0086abfe2475079b4c004022066507d7df3d9d8fcf3a7b3e5940e36549c471185459f3d6140e6194832909774","0x610c67be018A5C5bdC70ACd8DC19688A11421073",!0,!1,null,null],["ethereum","hypeburn_finance","HBURN",18,"hypeburn.finance","304402205f6d00dd0612df8c4ab4f390a0750edd9ae2c48027010f32d432ed4de67a38cd0220669a196519bbfa91e9ab9cbaa0b47f48a62e56b50f174539c127fe6e33a7c9cc","0x88D39566DAe88dC838652d9898F0AA6a8fF2819A",!1,!1,null,null],["ethereum","hyper_credit_network","HPAY",18,"Hyper Credit Network","3045022100f5e31f0c7ef3d05547046ba1f33cc0a6fce608feb5808c6240ee432b126d7db702207a124e1328d73e8a77f3b729ec4dbca46fbffa85ba2df44299239c231200423c","0xF83d7fF2e4B43ebAd2fa534e621E31076f4d254C",!1,!1,null,null],["ethereum","hyper_speed_network","HSN",8,"Hyper Speed Network","304402203124e98567a7e696049b3bb5ebcb9e0d23df9701d7a2a0d1eb8b4d41dfe7a9db0220773f1241fa5da17b246ad09cb0490fef3986c2c6714aad21d4131708fd294bf3","0x365542DF3c8c9d096C5F0dE24A0d8cf33C19C8fd",!1,!1,null,null],["ethereum","hyperdao","HDAO",18,"HyperDao","3045022100f6860695010b6b7b4360bf1eec7a4b046bf73e1916b04b02304f8c26a8fdb140022062fd5521a35dcdf08237518e73a2047186fbecf5bbd94dac6cff198e3ceb2c87","0x74faaB6986560fD1140508e4266D8a7b87274Ffd",!1,!1,null,null],["ethereum","hyperhash","HYPER",18,"HyperHash","3045022100a10b13b343c2fb258e98114218ec9c93f9ef5d1fc7daf2bd0c0feb50cb8cc60d022023b56cd01100f91c01c880072f06c4f449078cbeca2e50a835aaeb6f47f3d742","0xeb5a8eEFDAE23a815072BF28de8114a825C27876",!1,!1,null,null],["ethereum","hyperion_token","HYN",18,"Hyperion Token","3045022100bdaf8f40815a95864a24358b105a7a2737cf815145c1df52be4deed132acff6602205b08ba0e8f7432d46ae1340a72ea99f24e0dd49a2584fe82c50a39247cdc8c23","0xE99A894a69d7c2e3C92E61B64C505A6a57d2bC07",!0,!1,null,null],["ethereum","hyperquant_token","HQT",18,"HyperQuant Token","304402207f5d6de5b4af67572e6365d45e4d23b8887a1088845223e618e6646e4b1535a602203b6c60e342bf75b87f2034bd942ceeb110e4cab7595117cce2c91ea5e407a7ea","0x3E1d5A855aD9D948373aE68e4fe1f094612b1322",!1,!1,null,null],["ethereum","hypersign_identity_token","HID",18,"Hypersign Identity Token","3044022033abacc96e477d2397092460e9aaf68a2d05bed4fd0735cbf578c24bbe25e39a0220460379820e4c5d00263f9f5b57f8d44c221da69548ee3dd7e551fd00a312712d","0xB14eBF566511B9e6002bB286016AB2497B9b9c9D",!1,!1,null,null],["ethereum","hyve","HYVE",18,"HYVE","304402203a422bee6866e09f70a980467a33b4d228aa5d36d6423262313ce631c36b4dab02207b7dbf152bb65b21dc6c64b8017d0dc4bfad9026b7930d4273371b1ca463f4a6","0xd794DD1CAda4cf79C9EebaAb8327a1B0507ef7d4",!1,!1,null,null],["ethereum","hzm","HZM",8,"HZMCOIN","30450221008503a5a068e6324e1d9ec32dc7c4ceeabd58f7dc827010c05e4316394fcb743d02203604b28668609008b66768e9fd23dd009e79d917103da46f74a6c91753eaae3e","0xeC1b7eB3D3cfAC7027fa60b5376e5EADeF4F1300",!0,!1,null,null],["ethereum","hzmcoin","HZM",8,"HZMCOIN","3044022028721b2fd0a24b53353249e99e3fc9a233259b26cdec0bfd3b0ba723c38d52b5022017e20f4a24096329d4fd9011875a90fa7d34b0e41d460ac381da2af42599fe4c","0x069f967be0CA21C7D793D8C343f71e597D9a49b3",!1,!1,null,null],["ethereum","i9coin","I9C",8,"I9Coin","3044022020f7b03d9b881071ca52afa03793bfa251c8dea7fd3bb23b9df1fe06a749d50f02204a3368cefc16ab003a33b20be82d58046f120dabc6767ccdf4fcc467521211c0","0x7cf74238D48Ce383db00a1EFff8da99303552cb0",!1,!1,null,null],["ethereum","i9x_coin","I9X",8,"i9X Coin","304502210088affdc14b4d6375d8f2433347dff72c630e8927ac8a84650524cf7d46d27baf02202a749db424cfcae6c38f6a93d8eb27de6e47e3a00128a387f9d97bd7931e52cb","0x60a16b9EfD33bb45c18833AeD45cA66045b3b714",!1,!1,null,null],["ethereum","i_bet_you","IBY",18,"I Bet You","30450221008c36ddcfb1d04f2e488f60c0c1f87da37b8501a41c479bd75b38a1cf389bb98602207ba8792ac15df320e3b781c0b3581e21474091f53b4302462ee4fe81da982ec2","0x6A68DE599E8E0b1856E322CE5Bd11c5C3C79712B",!1,!1,null,null],["ethereum","i_house_token","IHT",18,"I HOUSE TOKEN","304402201f87b3624622762dbf8433bc08b17c3fc3f031485f0c67da893ebc8402d74ad4022031dfd9d41b227c22c7d1ff23a8e50496d8248c00bae816afa4f160964ab85602","0xEda8B016efA8b1161208Cf041cD86972eeE0F31E",!1,!1,null,null],["ethereum","iagon","IAG",18,"IAGON","3044022003842c41426786e4985fb66c2fd29a34ee827e483d23dd929bdd7594fa0e9b9c022010d455ba817ead927ee58e2723d99ba2195704e0ad983b056237c86171edba9b","0x40EB746DEE876aC1E78697b7Ca85142D178A1Fc8",!1,!1,null,null],["ethereum","iai_token","IAI",18,"IAI TOKEN","3044022050d7d2d167fa7fca23909892cae9413ff2d8e20c474d90c5338a2e9cb874166802203568d32afeb4f2bf295567243b2931e3f5625ae7689712f282789d285c83496d","0x1EE1c46251b811075Fd480fb64197F4E49c37EE0",!1,!1,null,null],["ethereum","ibp_token","IBP",18,"IBP Token","30450221008f705e2c22fb8be119a40d2bebcdf85579c24bb399782d5570ef361b87e42ad902206170132543ff84c822759e8f60a5c92f22cecb847d346bf7ec995e01a309fb6a","0x7D14b842630cbc2530cB288109E5719e0C4d67d7",!1,!1,null,null],["ethereum","icarus_network","ICA",18,"ICARUS NETWORK","3045022100d8f8aaad49a06e505b0d6a10e27d4987fac33db235ebe77bdbd336e21c63139002206b914007eb4c208c9869af0f825899afe18da1a1ddb73f6388728c7eeea70e8c","0xd2F29748F8698606dca9f48b8967241b595ab9E5",!1,!1,null,null],["ethereum","icb_token","ICBT",18,"ICB Token","3045022100b8659809001743858a248de9c50cbed0251616fc5f4f84406664021b380ee8ec02206f54c29c43e1a577ef0cdb5d6a05e45d22f721a1d6a710e77fc903c480aacf0b","0xFdF06C1eB3ffd195dc515Fa128700a578460f504",!1,!1,null,null],["ethereum","ice","ICE",18,"ICE","3044022067a82b5bfed0058c47ea1bccae488531fdb7d4bab0318c58b2fcd7fefc322daa0220679ce42cd3036409c7cfa05e594c9423fbdc0c7240b42f1c88a3b26d65f3d0fe","0x5a84969bb663fb64F6d015DcF9F622Aedc796750",!1,!1,null,null],["ethereum","ice_rock_mining","ROCK2PAY",18,"ICE ROCK MINING","30440220555cef8a272c46f8eec6991b8ab8006681411a0a70aa58849ac3f66e37c2fb3102205b2284d51f0e2ba051843db58592985b041a603e57f7bdf44dda69c67f246e9f","0x0E3de3B0E3D617FD8D1D8088639bA877feb4d742",!1,!1,null,null],["ethereum","ice_rock_mining_","ROCK2",0,"ICE ROCK MINING","3045022100bd0abf546cdde12e40b375c6056290339bb60f1ca1d68c6c6b398f25a35a0a4b02203b0a16c96b5cb6733a0f82c69ac907097871c79768c48ba0b928b9e7d2d58c7c","0xC16b542ff490e01fcc0DC58a60e1EFdc3e357cA6",!1,!1,null,null],["ethereum","icedium","ICD",18,"ICEDIUM","3045022100aac7b50104633d0b0e8d30f8dda10fbebf41e0f369f1f0bea8a78d62a2b170710220226bdbf6af223ca367fd19fda22d07933e010ecb14837b433186e3f962f40385","0x3c20d67b6B1aE0985F913aBb7397babc2fBb1A1F",!1,!1,null,null],["ethereum","icetoken","ICE",18,"IceToken","3045022100e38fcc3105adb408043b9e0965acbac4b8fa11d3fc8d84f94f99590e17b4a6140220607e1ac271d457e377ee5caf0c693f9d3094d99412ba04c9b3f7a4b5dadcafb5","0xf16e81dce15B08F326220742020379B855B87DF9",!0,!0,null,null],["ethereum","ichi_farm","ICHI",9,"ichi.farm","3045022100c66c5ad4fecc8f0897d998dfc34bd0aa1fad435c1a7b1fc119577c5068db2c920220402ec86d894b7ad13379171bb24b0d0f5af8ab97dd1629f511562559b3fb8f64","0x903bEF1736CDdf2A537176cf3C64579C3867A881",!1,!1,null,null],["ethereum","icicb","ICICB",0,"ICICB","304402204a26d1a592890294ab94d8ef1f7fb6e91f35644e5dc7fe2f30e5ea298e0e266302207a4eb742cdedaccd1bb252f12dc0a27ee54dbb22e67243a0449e64439a125c4d","0xFfCf5f9feb7e14833331B6687755d1622399316C",!1,!1,null,null],["ethereum","icn","ICN",18,"ICN","30440220109ca77bd06671fc16d04106f689469fd51f042aad4596e1f2d8244fa5437ba302201148021a341058058d04ab534122014dab0fbf0c1f74e6e4796c8e3250232697","0x888666CA69E0f178DED6D75b5726Cee99A87D698",!1,!1,null,null],["ethereum","ico","ICO",10,"ICO","30440220142d66dbb3f80c62927e203f424eb47393e94cf4801270b6b81f10d709e1aec9022005d1d2ed00849b6e74a8a044c74a9b3585ac965cf4e6390cb999e5f2b9d9a950","0xa33e729bf4fdeb868B534e1f20523463D9C46bEe",!1,!1,null,null],["ethereum","icon","ICX",18,"ICON","304402201731756f71e051242f83b608f458facdb5f289024f6f6b0485c70720b1708217022060ed4a59b7ba49df66587e4aa8b6420817769efcea046ea6fde6beb51b1c4cb2","0xb5A5F22694352C15B00323844aD545ABb2B11028",!0,!0,null,null],["ethereum","iconiq_lab_token","ICNQ",18,"Iconiq Lab Token","30450221009bd86bb3e1d1d53e7d868549b61303445a60342c95068dbb8dbabf64a28e2359022078728ec741ae0e81ae649cd58751a460e878f62d47435c5d327595ec399b4281","0xB3e2Cb7CccfE139f8FF84013823Bf22dA6B6390A",!1,!1,null,null],["ethereum","iconomi","BLX",18,"Iconomi","3044022012960c392cae077353385a1d8c08116140349339d32eb98e2d8fa3d2286780c2022009da682a300a488ab6ec57a9c2f3862944251dace6105519dbd3aacbb46ed310","0xE5a7c12972f3bbFe70ed29521C8949b8Af6a0970",!0,!1,null,null],["ethereum","icos","ICOS",6,"ICOS","304402204c7bf32e4bd599ee881e6e8108c24f79b0a513f700d755d0d968a5edfdfdd920022063ed26862e6e074686110c767dfa3a574951df458d561fdf4bb6d4d1530a8451","0x014B50466590340D41307Cc54DCee990c8D58aa8",!1,!1,null,null],["ethereum","idavoll_network","IDV",18,"Idavoll Network","3045022100cd37a7c43360319919d811a90c89951c1889abfd23e861ec074f407326da17820220275b3c6a27c7a4a949cda971aa3b74905074747ac7aa392640fc1dac758dece9","0x92Ec47DF1AA167806dFa4916D9Cfb99da6953b8F",!1,!1,null,null],["ethereum","idea_token","IDEA",0,"IDEA Token","3044022044b0c378a09708c2736013f7f7467e79073ac104d7a754b791311ee18f976803022059cfbe3aaecc8c732531468019de482dba1ca4a80de1c5456c4b50cac050dcf9","0x814CAfd4782d2e728170FDA68257983F03321c58",!0,!1,null,null],["ethereum","ideachain","ICH",8,"IdeaChain","304402203aa6d5b4ac5d96afb58d77e00086aabe71cfe8df74768b5ddb0b42d38a6a9fac02200be4143e4e4b0521741bfbd8d753a1b2771e06771ef3ff3647c01d9fb1c6a9ca","0xf8483E2d6560585C02D46bF7B3186Bf154a96166",!1,!1,null,null],["ethereum","ideaology","IDEA",18,"IDEAOLOGY","3045022100e8eca51ddfe87089160982692bb9a42c32595172a528bdce03ca86afb099241f02204bbdeea154800720419efbdc8316aeda77b914333401a689f48b2132e4c31642","0x5d3a4F62124498092Ce665f865E0b38fF6F5FbEa",!1,!1,null,null],["ethereum","idex_membership","IDXM",8,"IDEX Membership","304402201542c081f8c9b7e5b4092d2e754e8a7e261e78f02dd683926d0af476b2a6922002201ce8b30396618d2cdd11a6851f091256a80365f9baa69cead61ab1428a95c3b0","0xCc13Fc627EFfd6E35D2D2706Ea3C4D7396c610ea",!1,!1,null,null],["ethereum","idex_token","IDEX",18,"IDEX Token","3045022100e319527c29c9c4313610cc3901b58beeedc5ae170c10a48c8e8b1b28ac50333202207e975968b2e52384ff9eb612dda49907a0b3715fe4de3bed9427b50c45f00b49","0xB705268213D593B8FD88d3FDEFF93AFF5CbDcfAE",!1,!1,null,null],["ethereum","idktoken","IDK",8,"IDKToken","30440220521acaa6ff9f69f03ee32b3becb74e77554796cc42fdfae0566509828c01604c02201d531dbfcd94506a7497640eea0cf5d14ea30181b7351a58aae12dbebdb82b49","0x61fd1c62551850D0c04C76FcE614cBCeD0094498",!1,!1,null,null],["ethereum","idle","IDLE",18,"Idle","304302204053521c1dd248698aa59a5488f94a9c17986ff30fd27aca6279ed40383c7e71021f2c050ce0fb35d7ccc7fd9c4e4ed5b19c3080e27b90ad3a508f00f43e76980c","0x875773784Af8135eA0ef43b5a374AaD105c5D39e",!1,!1,null,null],["ethereum","idledai","IDLEDAI",18,"IdleDAI","30450221009d45b9dfceeaddcbde52b0c712289f5c8602a65bfb090e0c7c660e3ba13debb80220466b676c6f28ec7c29e6d34e6952508af53d983a3efce926fabe14e30f8ca24e","0x10eC0D497824e342bCB0EDcE00959142aAa766dD",!0,!1,null,null],["ethereum","idledai_v4_[best_yield]","DAIY",18,"IdleDAI v4 [Best yield]","30450221008d4047ff0035aca98d4ae635c272aeb2b25a4f000a45b1ddc8d358b3bf5d085202202eb7f608b5198534a82cf8607dac18a2953c9987cef06d743d50122aed4dd32a","0x3fE7940616e5Bc47b0775a0dccf6237893353bB4",!1,!0,null,null],["ethereum","idledai_v4_[risk_adjusted]","DAIS",18,"IdleDAI v4 [Risk adjusted]","30440220107daa586f179e93d31afce3c15e8500f722e2eb371a3fbd22f1f078020755bd0220570c9a87fd2f043ee99e151bfd88f20e6f23f8402d002eaa28775f6583a23268","0xa14eA0E11121e6E951E87c66AFe460A00BCD6A16",!1,!0,null,null],["ethereum","idlesusd_v4_[best_yield]","SUSDY",18,"IdleSUSD v4 [Best yield]","30450221009d355a393c5b81a913d63a69abcc7fb3e2b10d8eca2bea169bef26eb32c4c17802206d24f4f8b7652a09088c2c267acd597f65a4dfaf0a22e0aaec733e94994312af","0xF52CDcD458bf455aeD77751743180eC4A595Fd3F",!1,!0,null,null],["ethereum","idletusd_v4_[best_yield]","TUSDY",18,"IdleTUSD v4 [Best yield]","3045022100f264fc2e60ae07c6989e29cc84a757334476b5d683334b16fca854665b73dc93022031f09b1c75ea3b70487ba7a0c42ce36f1f5ab178ad7df3bd4414c3695adf7b54","0xc278041fDD8249FE4c1Aad1193876857EEa3D68c",!1,!0,null,null],["ethereum","idleusdc","IDLEUSDC",18,"IdleUSDC","3045022100c624bc07d6a483a2aac109a99df6ca70bb34ba7187d51958b2c2688bc9748a780220794e6875dccb5d43613db7ced5a603dcc91b473ea0670e416836717b3b310450","0xeB66ACc3d011056B00ea521F8203580C2E5d3991",!0,!1,null,null],["ethereum","idleusdc_v4_[best_yield]","USDCY",18,"IdleUSDC v4 [Best yield]","304402202802668690406744ff3162ba1ec1a3588840f11bc1cff8f5ad40b529874a8f550220783e6c6778b193b5c5cdfd1507e5fdc5c2e330d72ad7d2e0ed2f1cf4679ed387","0x5274891bEC421B39D23760c04A6755eCB444797C",!1,!0,null,null],["ethereum","idleusdc_v4_[risk_adjusted]","USDCS",18,"IdleUSDC v4 [Risk adjusted]","3045022100a76b7421c41ce46a0101fe8a33fa169f1460652202bce86f12835126e2ea59fb02204eb3d6e398e1a7fa09cee20c9ad6bd5c78c4bcfca77919c2849083e629e4d7e4","0x3391bc034f2935eF0E1e41619445F998b2680D35",!1,!0,null,null],["ethereum","idleusdt_v4_[best_yield]","USDTY",18,"IdleUSDT v4 [Best yield]","304402205af3952aa1e0f4aba46e191762db8448a25d603a4a07c417f53a4076de2f523902202e18f0538d697c554f563812bd5c3d151f1345910b50b11874889d3e7e758072","0xF34842d05A1c888Ca02769A633DF37177415C2f8",!1,!0,null,null],["ethereum","idleusdt_v4_[risk_adjusted]","USDTS",18,"IdleUSDT v4 [Risk adjusted]","304402201e6b45c8a9cfd35a978ebba6f09649f124f9799886d8cc4be374094d222ccee0022045ced77b58f781538c88cfb84eb8665459332b86f2429eaea6b6b0edcd8ae0dc","0x28fAc5334C9f7262b3A3Fe707e250E01053e07b5",!1,!0,null,null],["ethereum","idlewbtc_v4_[best_yield]","WBTCY",18,"IdleWBTC v4 [Best yield]","3045022100b81a3a173926193e3eb9f86141a4887d87915c94dbff66f1c7edc3194773647602201d852004eb401b62631e4c43a6bd952562adbbe0acabd251253ca27bea2e65a6","0x8C81121B15197fA0eEaEE1DC75533419DcfD3151",!1,!0,null,null],["ethereum","idltoken","IDL",18,"IdlToken","3045022100bf7c4abdf5303439da7f979c4965de171029458b336395d30fe1abbaa912e591022022b1f658d46386ceffdce23229848efa8ca6af5031aa872ed5919c05a227349a","0x6febD6Be8fa45bE6a5EeB61A17c82D33b9addD41",!1,!1,null,null],["ethereum","idna","IDNA",8,"IDNA","304402205979ae6761979f707ae6850dfc74201bd8d8a910d5f61beef661698ef5e2ddd402205b23020370122eb9a757023e80c048d0c3f07be29abfa3c15bdbe9fc1bcbdd11","0x9017054f25e2742584E3A4083f7f3e6BC3732c19",!1,!1,null,null],["ethereum","idol","IDOL",8,"iDOL","30450221008beb868e870623bbc04a02fa464d74e3d93284c2b79ea814cc499d7356580747022075928b54add18ee2b0abdba559a1da14e93d246b88f2276e24f4da64d0528c5f","0x7591a309Df68bf43ba42dD11b0344220A260020A",!0,!1,null,null],["ethereum","iearn_busd","YBUSD",18,"iearn BUSD","304402202433ebe3e3851045c9b8b88e426d6f4801c0f9ce9e8ed46a17879022eb1a0c910220451a264f9b02a19b397eb88b92c456b7c141db254cbf2f412255dad991c4b7b5","0x04bC0Ab673d88aE9dbC9DA2380cB6B79C4BCa9aE",!1,!1,null,null],["ethereum","iearn_tusd","YTUSD",18,"iearn TUSD","304402203755cbccb1533cfb5beadcd1744a8ec37e3d81dd9ffbd68952eb5293044b9cf802203ccddf22f230814b7d0f58fc2854a2052657ae7f3a3c9121dc0886cc9f30ce04","0x73a052500105205d34Daf004eAb301916DA8190f",!1,!1,null,null],["ethereum","iearn_usdc","YUSDC",6,"iearn USDC","3045022100a99d17a9228ec8be459648a3f10c1530f7e8c0e5933af4d24b35cdff8b61e25702201fc346b5cd1df4bc60266b795947c1a12003bcb6836e14ecb8223dd8cd7ce032","0x26EA744E5B887E5205727f55dFBE8685e3b21951",!1,!1,null,null],["ethereum","iethereum","IETH",8,"iEthereum","3044022012a1e8840aa6ace745099638c08f952fc67f2fb1c4ff5586a800a61f3148805302207ec48054750c967b5fd54fdd429cb6fec737e574fc0f5652aac600b3940ac551","0x859a9C0b44cb7066D956a958B0b82e54C9e44b4B",!1,!1,null,null],["ethereum","iexec_rlc","RLC",9,"iExec RLC","3045022100ee4d734dac8344f2af9859f6cbcd3e1bb9c65647e72f78a7ad7bd52c4eb8a83e02206338afff13497ea65b05fabcd51a791f98125c199e454740ecb2a860d7bd5c34","0x607F4C5BB672230e8672085532f7e901544a7375",!1,!1,null,null],["ethereum","ifarm","IFARM",18,"iFARM","3045022100a08d16919d361379e306a99bc618446a438cb1cae5baf0be218940d12ecc69a9022061fae502e5a24ca3ff189cc5a819c3447b3af1ec61a68b8f86ae436f65d2cbad","0x1571eD0bed4D987fe2b498DdBaE7DFA19519F651",!1,!1,null,null],["ethereum","iftoken","IFT",18,"IFToken","304402205ef06d48cafbeac2b29ff7ed9b5b9d698676f375cf33648798e91ed9a9c606d702205d147428f9853802b0ba8f5f1038c8427d0432155698967b189eb57719b9026d","0x2731d151CBDf84A8A4C6d9D0BaE74012Db51E428",!0,!0,null,null],["ethereum","ig","IG",18,"IG","304402205efd5dac9288f3e1b08f999666131e35c6e17e2df0436492e72ded5cca56af3f02204882c543595771a03685631e161e845db0d2093651d8ab5909a418209896118f","0x8a88f04e0c905054D2F33b26BB3A46D7091A039A",!1,!1,null,null],["ethereum","ig_gold","IGG",6,"IG Gold","304402206dad399666ee989041249b4553828ca7c5f77f5c77b6c0f05c69eae84995739c0220678b4b4328506cdef851a60cf9983a805841d8201c4d9f604ceaa3e1a0c450c6","0x8FfE40A3D0f80C0CE6b203D5cDC1A6a86d9AcaeA",!0,!1,null,null],["ethereum","ignite","IGN",9,"IGNITE","3045022100d804c2b204e9a001a8e63241002d32dee0d3466c68346e2bfb48553a616aebd802203c36dea8f886cec8ec7cd2ce0bf40fdd9b60a43cc6a979b4d253dd628e0c8ba9","0xdE9d41a01bb11A9F41E709242824E54c3917084e",!1,!1,null,null],["ethereum","iic","IIC",18,"IIC","304402203318991ba6fa571163f1d54e59f8efc3df4a2964853a1613d8842016441840c3022074c1b5a6341d5c924c6e8974e5222f3982a0213df6004e3c8d183a4ec20461b2","0x16662F73dF3e79e54c6c5938b4313f92C524C120",!0,!1,null,null],["ethereum","ijas_coin","IJC",18,"Ijas Coin","3045022100dbbf9448555ff384f0498b2e0b952f07317dcad2969aaeb9cde4c476e91ef278022056b22ded5ff43f3dc4135fad65705b8ac73c76362c8208238fe83767521f1309","0xc7fF1e126cC81e816915FF48c940ED9d4E6d05d6",!1,!1,null,null],["ethereum","ikb","IKB",0,"IKB","304402204f5232da617f2ee6a0ad7c01224d89416a363ab5f0fb7e8e3636b9fb291369d902206287697868ecda49a0a341aac2290048966c68c9beea298c8c389ac78cfbdd72","0x88AE96845e157558ef59e9Ff90E766E22E480390",!1,!1,null,null],["ethereum","ikomp","IKOMP",18,"IKOMP","3045022100ad2ba981d242ad324303e615c60133a2e0a90b718d37705a8952c385725e95a102204013841440d36ea64b6c17d3f5f62f8b2086ccd8b79414725509db8cb520c506","0x6a625DDb2e2A2de0257C5129364dd80Bb4AfA3B9",!1,!1,null,null],["ethereum","illuvium","ILV",18,"Illuvium","304402200b55723143987d1e67c38ed2ed9947a37fdd593902df7c9ff52e6859079b334c022038c74bef281498c7425acb261116e7ca4c9e35ad099fa4627947664703c89d24","0x767FE9EDC9E0dF98E07454847909b5E959D7ca0E",!1,!1,null,null],["ethereum","ime_lab","LIME",18,"iMe Lab","3045022100a520a67d715fa0c62038f9f23902a8fee9c98029a4d4aa55691326993b619f6e0220318384f69524ae6f568d103a5f92ff479fc152ad63394eb6d8d3da835319802f","0x9D0B65a76274645B29e4cc41B8f23081fA09f4A3",!1,!1,null,null],["ethereum","imm_coin","IMC",18,"iMM Coin","3044022049c127330ba8c9aa73dc6a4ff10bbba488dc279668cee73c5e6bb8f0965b273d0220130044d1f49337a682f42ca05cb61ab5c140f6ca9751b400f47736631fdfb4da","0xE42Ba5558b00d2E6109CC60412d5D4c9473FE998",!1,!1,null,null],["ethereum","immortal","IMT",0,"Immortal","304402200e4fc354eabd41ac6592680ae7ed310b44216541c5f015ac232caa0fb6b7192e02205dc176519065e00a07676ec30488e9cd61f090da6cfff8b4f54c94fea09517a2","0x22E5F62D0FA19974749faa194e3d3eF6d89c08d7",!0,!1,null,null],["ethereum","immune_coin","IMC",6,"Immune Coin","3045022100e5e5f636f7b1f2557054717bfa771610600d46a3a03e7eee5dd58acdb836146702204421bea48f92b725b9b837e45d21afc2504b19d8eb9d324abf23691d4e2f5906","0xe3831c5A982B279A198456D577cfb90424cb6340",!0,!0,null,null],["ethereum","immutable_x","IMX",18,"Immutable X","30450221009b1a9532586be6b562f64c7b4b619b32db7322ef81baf9fcc890831bed9615a802207a20a0bf91763a8459ab743411f41cab4c3a624f4a646ae2254f44097e00cdb9","0xF57e7e7C23978C3cAEC3C3548E3D615c346e79fF",!1,!1,null,null],["ethereum","impactxp","IMPACTXP",9,"ImpactXP","304402203e899eea45c12273ceff9dda51223810f215bc167c261e757e1e88ecfa1561990220578a3ec58a97a2af28d41b049ab0d69ee0d8d4bb61dcf44b2ca0a781861c9e3d","0xb12494C8824fc069757F47d177E666c571Cd49aE",!1,!1,null,null],["ethereum","impermax","IMPX",18,"Impermax","3045022100e4a9b816717804669c12a4e29cb3d62da77a9889276deda75d7dcaf5a4b12ccb02203af68c9a8f6bf1e2f59bb724cafa3a3e1af8bcf1f1bf93a11a65697cbe7d3e1f","0x7b35Ce522CB72e4077BaeB96Cb923A5529764a00",!1,!1,null,null],["ethereum","imported_gbyte","GBYTE",18,"Imported GBYTE","304402200b69cda60335e5eefa07af700d9a12616ddea7ebe2ff650e4f37b76761a8c02d0220511ca388e2acc38aa6158a935fb1f16c0b43d79ca9f374f310b652cfc58e668f","0x31F69dE127C8A0fF10819C0955490a4Ae46fcc2a",!1,!1,null,null],["ethereum","impt","IMPT",18,"IMPT","3045022100c9cbd4615700deaa7e45a451682e2c2caa793da93a8565349a80a602270392b502202e73939d5039cf5f6b2d441ef0f7a0ea667969c62c5b3a009abacc5163aa63f5","0x04C17b9D3b29A78F7Bd062a57CF44FC633e71f85",!1,!1,null,null],["ethereum","impulse_by_fdr","IMPULSE",18,"Impulse by FDR","3043021f5038108d8cea702c2b179b67f281fe4d164dc159d11f92262d5aa6631476160220425490606562fa7fcc3c7a82a191e29e8ce8ef00f97a241b826e65336353d510","0x696C1De4E7F475D5231372c47A627E4Cd6cE555A",!0,!1,null,null],["ethereum","impulseven","I7",18,"IMPULSEVEN","3045022100f673580f59e7a67966baa4f06514c25bc88ca7640de6d8ff1dff2527c7c32948022064dff01d7caffee6500080cffb6d380d8ce1d282cbbec27fd51fdc08d05fae94","0x560cC7De81B2A594F6518713cBE122bCF297A6E8",!1,!1,null,null],["ethereum","imsmart","IMSMART",8,"IMSMART","304402204d733b177dae49ab7b00eb1f139f3c5f0b79759e22ad31c7e55bb1850e0a7b08022069b68ec805c3ded8a7af9ee1078c787d0ebe6961eaabdf9afa3ea696ebb68d5b","0xBfE03707aDb75b478Add9A01978057803F480E44",!1,!1,null,null],["ethereum","imswallet","IMS",18,"IMSWallet","3044022023d970978d166a01b3511d2cb76205ab888ce082e7edbf034ab5f9903f9082f502202bd74d977e2562cd8a7791359eeb74f3966a8716d9accc318baf0c8c00747ead","0x3c4030839708a20fd2fb379cf11810dde4888d93",!1,!1,null,null],["ethereum","inari","INARI",9,"Inari","3045022100be8de911cb4aaa203ce65280601d0d8a4e73d4725a05495cf7b427f4a4b7eab8022058f8c0ba1d76ca8b909a0334a92fc0264a84cc13581ec99078f7e65fea12e23b","0xcA75C43f8c9AfD356c585ce7AA4490B48A95C466",!1,!1,null,null],["ethereum","inbit_token","INBIT",18,"InBit token","304402205efa1e792b40664996087985ea68ea1bf5e6ff4e99e0b17ba24a81d916f6b51602203d5f5845b5b7faf1041963ce13e9e3fadcf49e403613c63b39eab888c8807525","0x9c12d9b1223130B641154d8d3DB35F91D81c8dfd",!1,!1,null,null],["ethereum","indahash_coin","IDH",6,"indaHash Coin","304402201afffabc6410b9bd71122c8d9a369effab8c3fbce9adc38c9d7807f1bc5eface02205ba1c2ed9d5b4bd7b1bdbb4ad9ef9eb300ec91fe1b7176c86a3cc1f9c506a0ab","0x5136C98A80811C3f46bDda8B5c4555CFd9f812F0",!1,!1,null,null],["ethereum","index","INDEX",18,"Index","3045022100919eb814dd175a46237e2bfa54fdd755dc579f0b02618cd9804ca71a2990ebef02204598faed0d89fe8cec292f2a47a6303c098b808e0c5f7cd698a0b3477ff55804","0x0954906da0Bf32d5479e25f46056d22f08464cab",!1,!1,null,null],["ethereum","indexed","NDX",18,"Indexed","3045022100ca90e6fd99af055b32ff67ed5004f1d6018565375f8606e5d48c2704b8e41cb8022024aa147107ba2737a9809fc5f6406e10e326d6cffe8fe07c3c8ef02a72eb9b14","0x86772b1409b61c639EaAc9Ba0AcfBb6E238e5F83",!1,!1,null,null],["ethereum","indorse","IND",18,"Indorse","30450221008a3a805862ffa4324233efafddd111d685a828aebc1508e88ae2c6bba952f9550220771d525d996cac10b2cade59552f3ff46fa95ca9be6d5e00876384eea31c0817","0xf8e386EDa857484f5a12e4B5DAa9984E06E73705",!1,!1,null,null],["ethereum","inferno","INFERNO",6,"Inferno","3045022100ebf57aca69c003a11313cd3d597f68fd1b652c0ab17105e57d5364834baccbff02204bfb45a60da50048e46d523ababedb08e9291d9c67f2ebbe5feae1f6fee712de","0xa6aCc531c6E7c7090c9681f1dCd1813A6DD020af",!1,!1,null,null],["ethereum","infi","INFI",18,"INFI","3045022100ce17d1ad02eb0d0d3a2423219b593179c025122056fd563f703555360e425da7022020571797274b049ab57bd70c7ab99e06f092bc896dbcd85ae567bd422c3162d2","0x159751323A9E0415DD3d6D42a1212fe9F4a0848C",!0,!1,null,null],["ethereum","infinito_token","INFT",6,"Infinito Token","3045022100f856281a865ce3cab97bfb5c12e95516a539ff358c91b606f6eaead3fac952740220354e6311772adf2184a1808279eda2175435dffe4e72fac339e69271b7b4b8f6","0x83d60E7aED59c6829fb251229061a55F35432c4d",!1,!1,null,null],["ethereum","infinity","III",18,"Infinity","3045022100f85d1b2caa1e1ba722ab088639a05fb4cd050a5cb60ef5a0622afcfbfa42376c02201caa89340fa7310527c95447ad87270ea4bde4a55960d5242f08962c2c9b92da","0xF56efd691C64Ef76d6a90D6b2852CE90FA8c2DCf",!0,!0,null,null],["ethereum","infinity_esaham","INFS",1,"INFINITY ESAHAM","304502210084c998b6ca7690694395fc9aaa88e54c9cd96d8f13d70c0a03a34d8950da36b502207e14d2ee171567e23cc1d862cae4ae7af1dd2834338c9daa283d947471848c58","0x193408cA0576B73156Ed42A2EA7D6fD3f6507162",!1,!1,null,null],["ethereum","infinity_pad_token","IPAD",18,"Infinity Pad Token","304402203376db5f1dd723b1b1a3b01bce8df262b3164d8e4d9a2ef02e3ab04479e95f1702201f82b28e6999267a1668ba1812a798dbe1c6a0cdb0e16a4ea884ca5701b731bb","0x36ed7baaD9a571B5dad55d096C0Ed902188D6d3c",!1,!1,null,null],["ethereum","infinity_token","IT",9,"Infinity Token","3045022100fe31b536968c4bdae6e7e881a495edff8f5ec8241bc5a35c259f05abcf0f676d02201d63210ac816526472c614d6abe51d8c2280f0e5d5b9ef672acc9a4ea5388307","0x7fE4Fbad1fee10D6Cf8e08198608209A9275944C",!1,!1,null,null],["ethereum","injective_token","INJ",18,"Injective Token","304402202a6f296f89f89e4c6302b4bc8b217a419f28cd176a2898d3fe3bb562739c586e022044daaf6eaf6ce353a0b9a34f2768c2d09728b4a001b0d886a5b59adec3be04f7","0xe28b3B32B6c345A34Ff64674606124Dd5Aceca30",!1,!1,null,null],["ethereum","ink_protocol","XNK",18,"Ink Protocol","30440220290bfe9c498095dd96e57c7b872e42af0f5386e79fb753b0c19ee752d04133db0220570e3d7ba86d5f97fd9b38c7eef63868221ebe988b8bb3df56cf88984ddb540f","0xBC86727E770de68B1060C91f6BB6945c73e10388",!1,!1,null,null],["ethereum","inlock_token","ILK",8,"Inlock token","3045022100d06bb7cba32bc25a659970793efdf356aefda60be45aaf29adf3f6709176adef02202c2d2068451f3c0da453edb05706526a15eb6dcc34bea0d6fc5b5b1485c0aac7","0xF784682C82526e245F50975190EF0fff4E4fC077",!0,!0,null,null],["ethereum","inmax","INX",8,"INMAX","3044022064c29c0510baec1629677d18f7d947d57fa7e023610122b52d383f0b1e4e580802207260756ac0c8045551782941618191603e5b4de3a0dfd4848693d3346b368030","0x018d7D179350f1Bb9853D04982820E37ccE13a92",!0,!1,null,null],["ethereum","inmediate","DIT",8,"Inmediate","304402200bf50ebb5271492f8f85cdfe1bea466d1b09247baad95b2be1a48baea13b060c0220727b64fe7298c8ba83ea3ae68628b98cf45d303671fdbea5fbe8389c60555fc2","0xf14922001A2FB8541a433905437ae954419C2439",!1,!1,null,null],["ethereum","innovaminex","MINX",6,"InnovaMinex","3045022100adcf67ae1788d533f7389c87cecc8e8a3d8ac9f84398dc67f0a8b456e468a9bf022065af0c5a9299cb1521ff4ee0ef68504814c5a137cfb982d91961e486cc396a7f","0xae353DaEed8DCc7a9a12027F7e070c0A50B7b6A4",!1,!1,null,null],["ethereum","innovativebioresearchclassic","INNBCL",6,"InnovativeBioresearchClassic","304402203a26258dfc9e61138311ded11cf92576e60146ee7c19bf970d25586cfbf7b8ac022072c862d8393e1784773876395bc8e85bc84b001f1b84a70ea8a502da51dd3942","0x0Cc9FCCFF81252F4bd8C5c6b359B14ae2Ed851cf",!1,!1,null,null],["ethereum","innovativebioresearchcoin","INNBC",6,"InnovativeBioresearchCoin","3045022100b8d30cd1cd94a715584954d6873ee496f34846861514af5f0011e4256dd3b507022049b1e78502b0dbcc4044a7d0dcc0b23e2339a99dbfeba023dd869faabe2db76a","0xB67718b98d52318240c52E71A898335da4A28c42",!1,!1,null,null],["ethereum","ino_coin","INO",0,"Ino Coin","3045022100a2b0da7c4248f5531712658e6e9166361a46f4b881da641a71d47af71bfc56f402205187734a7298f500b11c6c0f9a03b000273043c8968fa69aaf605e5a554065f6","0xc9859fccC876e6b4B3C749C5D29EA04F48aCb74F",!1,!1,null,null],["ethereum","inoovi","IVI",18,"INOOVI","30450221009e4e15b0530c994700bf5e032a1ba9e427ea0641473aae8ca6231a9e4384676902200fe001a9d2c4e4626e992af19c199e448e7f220aa78247622b9c74c21f7d396c","0xA91464AbD4625A23aB719e3F0FCE84DaDd54E546",!1,!1,null,null],["ethereum","ins","INS",10,"INS","3044022046addc672aaffd2ca61255dfc9afe5bb90231359c40c75b727c81edd29330f56022047e3240242f55104ecffcb41ca2c28274ea8998c461e171b6bbeb953949a07c0","0x5B2e4a700dfBc560061e957edec8F6EeEb74a320",!1,!1,null,null],["ethereum","insight_chain","INB",18,"Insight Chain","3045022100bd20ad3a97270f67b69e3ec600aaf071d9f3baf245353eb793912d764c2762aa022075eaa9a9dba70b18866163a367f0714ec2a2c1de475f7747a9a384a3b30573aa","0x17Aa18A4B64A55aBEd7FA543F2Ba4E91f2dcE482",!1,!1,null,null],["ethereum","insight_protocol","INX",18,"Insight Protocol","3045022100f3bd058e9f1a79469d810bc9d9e80dddd0388c1292654417f9322911630ee10e0220452e6389d252c9b5afce7e3892b5310f94762b0ccf5e84e0dcad6faa533508e1","0x84fE25f3921f3426395c883707950d0c00367576",!0,!0,null,null],["ethereum","insights_network","INSTAR",18,"Insights Network","3045022100d78d7be962e64c9825870e22c07ef6a6afd5057f6cbc50f85b686884205a2b1b0220365f439fa69365a3958c591687d76ddf18572bcefde1afc7de8d2b50fe89bc7e","0xc72fe8e3Dd5BeF0F9f31f259399F301272eF2a2D",!1,!1,null,null],["ethereum","instadapp","INST",18,"Instadapp","3045022100fa2612d87c176d8527dca98bbec535e049b56db24502f162705e830a0e71cf3602202ba4cb8eaba6aec5c8512fd839f133b88bd3e0fd9942f5e38860a69b320a9944","0x6f40d4A6237C257fff2dB00FA0510DeEECd303eb",!1,!1,null,null],["ethereum","insula","ISLA",18,"Insula","304402205a4d53ea08c7bf896941fc2990d1224f32b4ca8611e7719f01f4c320c0a2c9f1022035a68cfb932e28704aa059aa81b321e87fa9ac2a2b2e2c81bf25a8843c8f7a75","0x697eF32B4a3F5a4C39dE1cB7563f24CA7BfC5947",!1,!1,null,null],["ethereum","insurace","INSUR",18,"InsurAce","30440220740f4063ab0e40b0e953a2fe45bf34d5e73bba80247c4a190ff785b2f70a62a902205e137cf1a6c92d0458613b92b2837498b59c2c60f81bfe50c3e3f3671796c2d6","0x544c42fBB96B39B21DF61cf322b5EDC285EE7429",!0,!1,null,null],["ethereum","insure","SURE",18,"inSure","304402207c7f58674637973554014e1659ea7bd7b47c423bee0dd300c7f630f8397da76a02202a7a7312161935cc3fe1e7fdd44adb1981973dab30b9691369c146f855f072fa","0xcb86c6A22CB56B6cf40CaFEDb06BA0DF188a416E",!1,!1,null,null],["ethereum","insure_","SURE_",18,"inSure (old)","3044022031a2965cbf3fd38d978f80d1d0efdfa74d20d701041f78313e11c97b31aead1702204e3e82a9595d71a90ca59d58d19bbabc62c65a7a504346b32ff6bc9cc5f795d1","0xb5a4ac5b04E777230bA3381195EfF6a60c3934F2",!0,!1,null,null],["ethereum","insured_finance_nft_vault","IFNFT",18,"Insured Finance NFT Vault","3045022100be786ffb2b57edb0b64fdf27048e102bedd3f8824b88def5c77b94d62bf5eb120220280d798b6172cb85c5d032a4b206417c46b4a50c599c8fc9aa404d3826a3ab50","0xB2de3FfDB3409F607C82b1Cd777D34f489e9DBa4",!0,!1,null,null],["ethereum","insurepal_token","IPL",18,"InsurePal token","3045022100bfe7db17595ce57140d5f07dd9659695b2018ef6d9dcdc93594087d72f6d472802207d5fdbf69d325ce40fafe5ea51c30383d6f0cf929543d286c350c66b59201468","0x64CdF819d3E75Ac8eC217B3496d7cE167Be42e80",!1,!1,null,null],["ethereum","insureum_token","ISR",18,"Insureum Token","3045022100bcfdd301b1f1cf01a9dc3a18d8bcbda8b2bafe17fdc6796288df62bed328cc3202200eefe615b887af76ca86dcc59679aafeb13e869478331bbcf39d391759ba2da2","0xd4a293aE8bB9E0BE12E99eB19d48239e8c83a136",!1,!1,null,null],["ethereum","integral","ITGR",18,"Integral","3045022100e2f6e82bd253859754f98d96a0f1a1aa84321682499b6a2dfbc58d22513713c002203a2cd28d427fd0f050e81d47f8cdf46ac5d50693c95203515f6e633b39f9fa94","0xD502F487e1841Fdc805130e13eae80c61186Bc98",!1,!1,null,null],["ethereum","integral_0xD502F4","ITGR",18,"Integral","30440220165227d1e2239d04212daa08caea2d532b713c07f9954a8c10aabf560105faed02202514bbd1dbadbc6882650d10ad489b787b837f87057c35bb5d01c02ce4186193","0x5bC96017dcCacA53601d92125C5C6Db81d000Da5",!0,!0,null,null],["ethereum","integrated_money","INRM",3,"Integrated Money","3045022100b362268e3e3a5da37e49e59464c667737304fcf69bf2555a89d7ac4c0980006d0220407caf57b619bd34de33c19c5e1a54b42e0c4805682fcf772ab3870f0b306acd","0x48e5413b73add2434e47504E2a22d14940dBFe78",!1,!1,null,null],["ethereum","intelligent_ratio_set","INTRATIO",18,"Intelligent Ratio Set","3045022100adbb32352c70dce2154af3805c56856ae789b73e33c8e4821338973d034f5f1e02202ab8ad59472cfda30349e40599bb7b94a958c5e20de7d8902741e2113cc61284","0xBA8Ea15b647F54D9ff849670FcaAcF35Df21A457",!1,!1,null,null],["ethereum","interest-bearing_btc","IBBTC",18,"Interest-Bearing BTC","30440220620076299cd02b98c12fe9b439c6abcf1d55212bdd9630014e3bfdbc7af54b6a02205dc709a8fb270632a49b2988ef0fa17be2886624a6b0ca849040605e6888849c","0xc4E15973E6fF2A35cC804c2CF9D2a1b817a8b40F",!1,!1,null,null],["ethereum","interest_bearing_eth","IBETH",18,"Interest Bearing ETH","304402201e544ef08777f877056628d809821212547f676d170817e30cf21419cf7659f4022062611f4ab9e4f46321f5e7b122cf73214f90bfd1cb42e411608c80d1c99c9d48","0x67B66C99D3Eb37Fa76Aa3Ed1ff33E8e39F0b9c7A",!1,!1,null,null],["ethereum","interest_bearing_ether_v2","IBETHV2",8,"Interest Bearing Ether v2","3045022100ae03bc235df34425b1654c7840cfb310272f9cd8ebb593bdfecd57cdf1bb634e02204ee6ebe126fa4ab9821cb77bdb89eec1ec2cbdd66e008ee84f8d7d9b97b219d7","0xeEa3311250FE4c3268F8E684f7C87A82fF183Ec1",!1,!1,null,null],["ethereum","interest_bearing_musd","IMUSD",18,"Interest bearing mUSD","3045022100f07ff86becef399b50fd63530ac5e67693900fe307d5fbcd482646c50abb81b102201547dc3f6be10c5c8c5df74bea577c2618debfbaf329d01a931ead0da03a24a6","0x30647a72Dc82d7Fbb1123EA74716aB8A317Eac19",!1,!1,null,null],["ethereum","interest_compounding_eth_index","ICETH",18,"Interest Compounding ETH Index","3045022100c671f71b4b508fdbda52882b59422f2b0a3cb6a437f6df179110677bfdc138e9022009c5a5345ca8dd4d3190cd96d918788e5f895f162f33e80764f0b1231a936375","0x7C07F7aBe10CE8e33DC6C5aD68FE033085256A84",!1,!1,null,null],["ethereum","interfinex_bills","IFEX",18,"Interfinex Bills","3045022100d7f083b2227ca801205886c70f903cfb605c3ab83eb66aa47919bdd5cfee9d9c022076ec5f36625aaf23d9c2aee0083e3a4367cd758d2d813d6a2b157b47365c97ae","0xA891CF72AEDa692570928eFe1A832342e9783CDC",!1,!1,null,null],["ethereum","internet_exchange_token","INEX",8,"Internet Exchange Token","304402205a32e368105f86de44db849ee335c6ed50b5f30742d8cedc1c08d14b45a419630220063564dbc6bbebbb686141e75a0d5c5277eec2b1043acb43688ea7a8ead2a851","0xa2D77f8353cB2AFD709Aba4a967257511ECFf716",!1,!1,null,null],["ethereum","internet_node_token","INT",6,"Internet Node Token","3045022100f117f224cc86bc9555b715e0eb6aafab1edfbfe59e601f9fd9cc436919407d8c022025e0ebf6d0cdf96a78074f78c2d604d597896a3bf2950561c4c06b40129ae0a2","0x0b76544F6C413a555F309Bf76260d1E02377c02A",!1,!1,null,null],["ethereum","internet_of_energy_network","IOEN",18,"Internet of Energy Network","3045022100a707753a64df8c3282d1e0b5bf0dcc64e68672f4bf3de6421483f704c28edb150220479c206bdedcdbf94e40c220cb25bbb443e0c015f8fd5d9a82d5c595a6d54818","0x1e4E46b7BF03ECE908c88FF7cC4975560010893A",!1,!1,null,null],["ethereum","internxt","INXT",8,"Internxt","3045022100e61ee97fd92627d880e7224e7a6009cced431ddedc6ccb5ba0a5050a332d88f602206b913ae6b8769d92b973aa7f4b163b8c4635e8cacd98d89bbaaed2cc04514e06","0x4A8f5F96D5436e43112c2fBC6a9f70DA9e4E16D4",!1,!1,null,null],["ethereum","internxt_old","INXT_",8,"Internxt","3044022004c1aa2b28e5cd992d9591e40363149bda00f38913c87ea1ac4ad29b3bda07e802207ec1a8d5260c78731e4b3eae3f1d056409f9ee983d419deae947cc86cc933300","0xa8006C4ca56F24d6836727D106349320dB7fEF82",!0,!0,null,null],["ethereum","interop_finance","TROP",18,"Interop.Finance","3045022100ac997a6149d76c4bea68b008654b945c084916c76cdf3feebd2fb640b41a14dc02206146deb45d3b14b31a807b77c63dff1b44b100b3d2961b33bbf3d255b8f14783","0x2eC75589856562646afE393455986CaD26c4Cc5f",!1,!1,null,null],["ethereum","intervalue","INVE",18,"InterValue","304502210080971a70fe37ce6ddca8bd7dc8de72d3415e0124f0a73998e270a4878985cc2a0220534e48233a120c5d11b8d80839b5d2655491271772e02df42813013fb178c6b0","0xDAC4AE188AcE3C8985765eDc6C9B4739D4845DdC",!1,!1,null,null],["ethereum","intexcoin","INTX",9,"INTEXCOIN","3045022100bf57b75ff0e63ee99b939b3c7862f1eea27a8080411aa8fe82b0318be5bf32d802203d00d8beb15eb182afb9d18c5f1cf2a09dc167d0621c6d08727ec83404b73a56","0x7533D63A2558965472398Ef473908e1320520AE2",!1,!1,null,null],["ethereum","intime","ITO",18,"InTime","3045022100fb850364c39493e010953c44751f8599463c88f24c2518502b2e397d47227ee9022074033605510479d4b32bdb8a67c992dd9fe6e3480f73cb36f5d05ac93f48b4a1","0x293B0Cd0991DB07c8529fEBb01bc7D052315C5Ab",!1,!1,null,null],["ethereum","inu","INU",9,"INU","3045022100ca8222e25ef43f6599ae278ac278f1c0e053c19c4067b47e0a019b7dbdd8a169022021de87123fb302c0355e1cdadb313fce8cd8d6c711d43f50e8bebccdca810009","0x00F29171D7bCDC464a0758cF3217fE83173772b9",!0,!1,null,null],["ethereum","invacio_coin","INV",8,"Invacio Coin","3045022100ea86bcd6472b509bac49fba8cfa9a141fd0a079b3fa38d38ed78d31407b432df02207196a8efbee7eb43fa3c495218f6f5169cf1d062784f0b36150103ba249324b3","0xEcE83617Db208Ad255Ad4f45Daf81E25137535bb",!0,!1,null,null],["ethereum","inventoryclub_token","VNT",18,"InventoryClub Token","304402202d0215daad852320756ca5cf7d679d85f1329305b6865b33b0dad871b1ced16802200670f23f20adb3edb0036273b09c90c07cf6447b76bb9717ed5df22311e81e2d","0xe912b8bA2513D7e29b7b2E5B14398dbf77503Fb4",!0,!1,null,null],["ethereum","inverse","XIV",18,"INVERSE","3045022100cb3755522f1db34f9b2575cfc8b7cf0c8f190acfd85dafe9e30108463901f9e9022075ffa0aae43679691ef9ca7306e162c94f2ab50331ed8beb090cf2707f193671","0x44f262622248027f8E2a8Fb1090c4Cf85072392C",!1,!1,null,null],["ethereum","inverse_bitcoin_volatility_token","IBVOL",18,"Inverse Bitcoin Volatility Token","3044022076a394d78635e4ed8a0a62cf4741b91de4ada906f7ffbd03d5f972b0c4dc6e2702205133eb2372dde6621f961774d2c774d1ee86776ae0280d4ecdf83b827f6f058a","0x627e2Ee3dbDA546e168eaAFF25A2C5212E4A95a0",!1,!0,null,null],["ethereum","inverse_btc_volatility_index","IBTCV",18,"Inverse BTC Volatility Index","3044022000de8e54a6fa5bb6c994ade8725a763284fec740c375dc096f7d56f8446cb959022057f82bf87f7a5e81bb68563d510847318024b2e90c530c56b3b5b341980db9a3","0x2590F1fD14Ef8Bb0A46C7A889c4CBc146510f9C3",!1,!1,null,null],["ethereum","inverse_dao","INVR",18,"Inverse DAO","3044022078c3d08d9590f2117d428535f648dda249114c92bdbd3c067e1b26a76f0b77540220677b7bbced73ec52bb9eb2fc830683f3f4e829b2c0f8122a9070d3a5d8c29db2","0x41D5D79431A913C4aE7d69a668ecdfE5fF9DFB68",!1,!1,null,null],["ethereum","inverse_eth_volatility_index","IETHV",18,"Inverse ETH Volatility Index","3044022029c360bd9a7545096e168a95252efe385898a6d83c673cb56874528e1aa601b9022058017f981120b37f392ea797c14abaa6ac2d083478c11e2671fffc1125d70132","0x3A707d56D538e85B783E8CE12B346e7fB6511F90",!1,!1,null,null],["ethereum","investfeed","IFT",18,"InvestFeed","3045022100b5604cd75c2c07394f3edbd06331f6227581264bedda991ad12d4c22f54f6eb002200f8a237c82a2090e897544886b3d149ed120179ada4d370406a537e1021c2af2","0x7654915A1b82D6D2D0AFc37c52Af556eA8983c7E",!1,!1,null,null],["ethereum","invi_token","INVI",13,"INVI Token","3045022100c893389a35eae7f500d0435f7998c65cd9d2c7f53738fae8a20f27961f0f2d9402201a8456438637070849957efbf218c83eb72dc0ae6e89cf291a6fe27f2b032e2d","0x356A5160F2B34BC8d88FB084745465eBBbed0174",!1,!1,null,null],["ethereum","invictus_gold_plus","IGP",18,"Invictus Gold Plus","3045022100d4b63c70ed3a5247f57e2de709af048f12841f573dee0538be5a52030d43f0b3022006a0f2ab61379c94afbd9887f971ba06949eb073ff05e444a597abedfd3cecb9","0x8DF1be0fdf7161a6ff56C8189d7E10358727A96c",!0,!0,null,null],["ethereum","invictus_hyperion","IHF",18,"Invictus Hyperion","3044022008d4effb3d4de2d51c987ef7eaa1b928d10c8dce95c2025d752504eb40ecc18c0220515d2db100150f4d4b257def1d289389dea5904dea3204a3ec012a2c8de8b7f7","0xaF1250fa68D7DECD34fD75dE8742Bc03B29BD58e",!1,!1,null,null],["ethereum","invictus_margin_lending","IML",18,"Invictus Margin Lending","3044022059d48132e0295f84b84a2f654035ca3016d76911ff2d85768e7d6785d01a23d3022007c79740e5b5fd8a022984bb74b0e99070ccf1edacad8a3ac58a8b0d953970e5","0x7ca598A636647b114292bb66E1336865fc262D11",!1,!1,null,null],["ethereum","invox_finance","INVOX",18,"Invox Finance","3045022100f7f05b460faaa70714f501fb873f5dae18e738e2848f8964dc5cc6f88c56be1f022041dff998573d16cc799cf74e61d8484a22cd71b3a375ace9c906ca702983b2ab","0x4485561Db76614Ff727f8E0a3Ea95690b8b16022",!1,!1,null,null],["ethereum","inx_token","INX",18,"INX Token","3045022100a97a66f8c3a798b56882a9e383778532bd92db7af60d3bada6c08e5b543db29802206483a9864b1b35c55bc75e0f0c49b50174a7528b2a04f6dc636622886b8503f0","0xBBC7f7A6AADAc103769C66CBC69AB720f7F9Eae3",!1,!1,null,null],["ethereum","iogtoken","IOG",18,"IOGToken","3043021f472ad914aac904317ba4ae947873b5541b7fd2f4619a31ce0bb280ecf57c100220411fd523eadd24c607fddbc3b8e4914638b001c2bd3dd63a118c36c889bb9394","0x1c4b7d0e1885bd7667Af3378E0c538F74E712006",!1,!1,null,null],["ethereum","ioi_token","IOI",6,"IOI Token","30440220041ed1d606c87b9d886bd2dbe9af3da6edb94e612f5befa08516537fbecb454d022007ec416ba6e557a4088e045692f99f8a0d560815b92315ee1a7d4ea284cd834d","0x8B3870Df408fF4D7C3A26DF852D41034eDa11d81",!1,!1,null,null],["ethereum","ionchain_token","IONC",18,"IONChain Token","304402201a9b3258e0ba96b2181205c7e278cdb1f2137457ab0fe93a688b6f0728c0d936022007bbe241e6767d512e0f36da5f67d96f91ba8fff3c95d3905daa272705c13383","0xbC647aAd10114B89564c0a7aabE542bd0cf2C5aF",!1,!1,null,null],["ethereum","ionia","NIA",18,"IONIA","30440220700052584002eff58a097c8b1361a729b8625e498e164f800bee0ee2f696560c02204ebf2e1efd7c38cf422758ea5a454abf857186a9a16d9099b1a7a6dd2d78cdbf","0x59C24B4903676cBbB3A8F1077eF0029E6419CEF2",!1,!1,null,null],["ethereum","iostoken","IOST",18,"IOST ERC20 token","304402205a25fb3356a40c3d093a7ad9336a578a587253a67114179285a1f2b60daa83c402201a9ddec7a3a5d6d22358fde711cc5e9703b89cf32680cd9817fc0f57e6d4418c","0xFA1a856Cfa3409CFa145Fa4e20Eb270dF3EB21ab",!0,!0,null,null],["ethereum","iot___","IOT",6,"IoT\u30B3\u30A4\u30F3","304402200e27f95fc665a4ea01f5cdcf25d7acd32807eff07092fab82d5d2da751b7c3430220030389e809c7ae19082f82f9a7e932bbdc4bc02114d7902743d5d7f97b58855c","0xC34B21f6F8e51cC965c2393B3ccFa3b82BEb2403",!1,!1,null,null],["ethereum","iot_chain","ITC",18,"IoT Chain","3044022069bbea35fca0a571f6c399f309d8a043c93e24fb265b9e84d6e7fa049b0b626602207a34aaad9f2cacf103f383584e6231963006218d802f004cac9752f74fd8ebca","0x5E6b6d9aBAd9093fdc861Ea1600eBa1b355Cd940",!0,!1,null,null],["ethereum","iotex_network","IOTX",18,"IoTeX Network (ERC20)","3045022100bce6165ec65ac0de6c8b5fdcdeefb88d8af1a2c679d83adc13387eafc0f57d55022070ca327850985ea0b112366c44f8db064be0ed9677c36e303b72a204dc56cc7e","0x6fB3e0A217407EFFf7Ca062D46c26E5d60a14d69",!0,!0,null,null],["ethereum","iown_token","IOWN",18,"iOWN Token","304402207c4ce5954a26aa7c27256c1404287aacf822482d353774d38966733e87cf3f87022038651ab852ad21b92f11fbd89fa7d25999092585e59d0596e7ff3440506c1d4c","0x555D051538C7a13712F1f590fA6b4C176Ca4529f",!1,!1,null,null],["ethereum","ipc","IPC",8,"IPC","304502210081fadf0e7baf4bed1815f839dcbebc766aae582424ebe00cf23e8289ed51eb8102203c9ac1ded0a494ef13a5da804cd5446c6e33a84496c48b4e9aad67f196a23e66","0x622CD54dEb2bB7A051515192417109bcF3fe098f",!1,!1,null,null],["ethereum","ipdeal","DEAL",18,"IPDeal","3045022100a04df643cfc83c6c08598feb5b0afbbf9da81650c3713a6d8a98f738dca93a0602201b3d469fbd3e936525989f9881d59959033e3b7a09e2101f7185c4d96ca9948d","0xc86A3AC9a4997926631e658e63235ec8B526C97f",!1,!1,null,null],["ethereum","ipsx","IPSX",18,"IPSX","3045022100fa904ca122fae0b6fdbc90b1cb7d291402a378dfe419f10aae86bdaee98257e2022006b3a5b676a1b476655699b7a0ef40e9aea972a9f70ff3348f49f3283a284cb5","0x001F0aA5dA15585e5b2305DbaB2bac425ea71007",!1,!1,null,null],["ethereum","iqeon","IQN",18,"iQeon","304402204e8457a04861a02460b8fd72f02b9ab12219646f82ad2fcc16ee9194bf0595cf022058a057258d0884b1c65c8a887276638d8b0c1ec7fe311a88deee8918a2dd1112","0x0DB8D8b76BC361bAcbB72E2C491E06085A97Ab31",!1,!1,null,null],["ethereum","iqoniq","IQQ",18,"IQONIQ","304402207ea096c73766e0b45c56e0f742dd68ff49b75b12afebd8a99d8a2c1dea6a54f9022044397d2582f30ad641b07d263bc450f6325edf98cc7fca93396995beb24cdf2c","0x68a9d92Fe19399FEEBEd6A9a0980a7ea7638074C",!1,!1,null,null],["ethereum","iron_bank_eur","IBEUR",18,"Iron Bank EUR","3045022100af79142b88e423168f071c2339a59d3deb8caea19b3aba985d8e4b9ec03e841202204efa88da6fdde629d5bbd574086ce68e867153b0ec3486d714483c64f183b4df","0x96E61422b6A9bA0e068B6c5ADd4fFaBC6a4aae27",!1,!1,null,null],["ethereum","isalcoin","ISAL",7,"ISALCOIN","3045022100a0fb1c256495ded661676db6eedc73d77418fffc417cd70912c21b65c6e11bfb02201f4b4c6726250652201a5bb0592cf3b82e57b035a6b081925cc84ac92f23da04","0x8e12BD795d2608f90440C84Dddd2D985240696d5",!1,!1,null,null],["ethereum","isik_coin","ISIKC",4,"Isik Coin","3045022100ad5e97a264412403055daa327db56ce046897ca3b21355a084a638c895d869bc02203419350c13bc824734e248f9985561cc096597fed6776886eaa1a941359d740f","0x42726d074BBa68Ccc15200442B72Afa2D495A783",!1,!1,null,null],["ethereum","island","ISLE",9,"Island","3044022052f35660acb6254f34c7099ac9e658422503348357ea7716f90cac0865324fb302202cb6c1180f28771f8bfa87072208cf045ecfd4a732600cf7823c32c3b0ecb4a9","0x1681bcB589b3cFCF0c0616B0cE9b19b240643dc1",!0,!1,null,null],["ethereum","ispolink_token","ISP",18,"Ispolink Token","3045022100d4b7058d793bbaf835f1d53e60cb16314ad98bb9064871e5844f664cf9ec60380220333bc1d70ca881426aa2e5c3736951816f54e102f6d84a846026b590a91d6e95","0xC8807f0f5BA3fa45FfBdc66928d71c5289249014",!1,!1,null,null],["ethereum","ist34_token","IST34",18,"IST34 Token","3045022100b6292e88a210d03a1609a83d198b9f265195b51ce9b74ccad5ec637ac16b4de002201bd8739531d1036cffe7da05da96eccce5dc2df6ae5c194d98183121c6802254","0x0cF713b11C9b986EC40D65bD4F7fbd50F6ff2d64",!1,!1,null,null],["ethereum","istardust","ISDT",18,"ISTARDUST","30450221009847713f59080490be21718e027a00cc64b80e984f6b9bf2b19f74a79fc48e3f02201909f6500df5ec020c0c228e0cd06bca2f4ea1b7bee2718389707651b0c1ca8a","0xf2354F740f31704820f6FcfBA70B9dA065459b62",!1,!1,null,null],["ethereum","iten","ITEN",18,"ITEN","3045022100da74f12456f80cbbd77474259eeadb7a805469885645f3a77ae415a9557e2278022001a1309abca876013ee6afe9fa9c842524cf2117acaf9909ad44a5faaa7cb873","0x65b678936c489A2639036755Aa2107Ec09569198",!1,!1,null,null],["ethereum","iterationsyndicate","ITS",18,"IterationSyndicate","304402202f88777e0a80cbbf5919cec12bc4314369537cf506cc3ffad4ea917ef70bc7f602205bc9dc0a94dca0434d0f9c3168f206d9bb63847c00bd5e913b5127093c3b413e","0xC32cC5b70BEe4bd54Aa62B9Aefb91346d18821C4",!1,!1,null,null],["ethereum","itl_(italian_lira)","ITL",8,"ITL (Italian Lira)","3045022100a5e70c8d739774d6b10e0d75ae0aad43c6da52d236bbd590e210c4af59fff6260220780279d26351cfb135deea234b4cf9faaacf7e401ad1ac6282eb34d7cdd23ce2","0x122A86b5DFF2D085AfB49600b4cd7375D0d94A5f",!1,!1,null,null],["ethereum","ito_utility_token","IUT",0,"ITO Utility Token","3045022100812e4b58e85c84452079c29bbd270887423718e9a6ad07dd170614f4d2038116022042b46797cbde55c3edbe9c4e6fed09d95d72ac8738764e30278bb67e6642076b","0xD36a0e7b741542208aE0fBb35453C893D0136625",!1,!1,null,null],["ethereum","itrust_governance_token","$ITG",18,"iTrust Governance Token","3045022100c5a06fe1b90dc4776f2bf037dd75a2eb1d8b0da68a013ef77dc38e0f940c6c40022031a0d7a1d01640c915c45459bb5ed95c90e081418b688ab5596cf99bf9cd088d","0xF88b137cfa667065955ABD17525e89EDCF4D6426",!1,!1,null,null],["ethereum","itt_token","ITT",8,"ITT Token","3044022043737f24fe53701da73aa96254ca7f012d2bf7252fce593bc5f17953736c1994022054dd0f872702fa3945d440ce58e3ef5e16c20d03691e64eb739161e9be6c33e0","0x0aeF06DcCCC531e581f0440059E6FfCC206039EE",!1,!1,null,null],["ethereum","iungo","ING",18,"IUNGO","3045022100fe9172f6f62e6e2be970ef47adfb7a26436824c5ce34a376af84f541f3f7ed4f022035044e28928623af05e48017caf9d00903ae688ea497402a0228cbfdcafa3d76","0x24dDFf6D8B8a42d835af3b440De91f3386554Aa4",!1,!1,null,null],["ethereum","ivy_mining","IVY",18,"IVY MINING","3044022032c690b98df722c90ec0b7d165c9d2f1566c5b97c4b824805b4309586777916d022072d56edf366965d55e674a227cb9a012e70a907a4c0b7fd5b712466453101e78","0x829067D40A8D1233927891D9b3381d6aeCeE1E80",!1,!1,null,null],["ethereum","ivykoin_public_network_tokens","IVY",18,"IvyKoin Public Network Tokens","3045022100e8e6af45b5f9c9fed7b4552017840105a0b3c08c50b839176834be3b15aba396022000e56eb8ff058b5137bf78425b407f153e0a282ca3ed9cdbc1009ee7fa612011","0xA4eA687A2A7F29cF2dc66B39c68e4411C0D00C49",!0,!0,null,null],["ethereum","ixs_token","IXS",18,"Ixs Token","3045022100c143ab5c4bded9b977dd27b3073c7881c6f42b8291380c3835591253d7eca13d02206f416833794a41de5051a56fbee1009f5787363fafea3ec7abaa88b4f908b97f","0x73d7c860998CA3c01Ce8c808F5577d94d545d1b4",!1,!1,null,null],["ethereum","ixt","IXT",8,"IXT","3045022100f2abf0c8fab74ed043eeffb9a8077314fe5dd0625c471c8846137b096e12fd18022001ca2ef97e1c3db4fdb133e289c1c75e9772e63ee6c24fd1e8c1636bd6308604","0xfcA47962D45ADFdfd1Ab2D972315dB4ce7CCf094",!1,!1,null,null],["ethereum","ize_fintech_blockchain","IZE",18,"IZE Fintech Blockchain","3045022100d844b20c7bbd3d0ed3039376f2ba8dd0521b8a10295436a5894264b9ff90bd0502206616e82b058d34ed0fcff1819e6d3827edf33d3657d34e797e652b016d0910e4","0x6944d3e38973C4831dA24E954fbD790c7E688bDd",!1,!1,null,null],["ethereum","izichain","IZI",4,"IZIChain","3044022066e9f7060f3a8a6f971dc975816d49def5b6b6b3fc0f491ff43d3b96b8b5885402205b700972c06ec8bc36f0a6462e06fb9c6019a7d0d076b546ef4f5fc98c3704a1","0xDf59C8BA19B4d1437d80836b45F1319D9A429EED",!1,!1,null,null],["ethereum","j8t_token","J8T",8,"J8T Token","3045022100fa4dc6d0cd2b39c3290f8d4ff22cc7af5b4bd098a6ea93338f48a9e0f21a7f33022044a3f12679dc62ef5049285441ae8875a2e0d0221107a1c7f659c186eef8d4e6","0x0D262e5dC4A06a0F1c90cE79C7a60C09DfC884E4",!1,!1,null,null],["ethereum","jack_token","JACK",18,"Jack Token","304402207b50513f180552602bc1b31f399fac0fa5bd48fe882e323d186b167d33cbc0ef0220675f17db9ef81674d93fa5d91a093b310ed191bfb27b3c2ac27d84637bd65ff1","0x4E12EB8e506Ccd1427F6b8F7faa3e88fB698EB28",!1,!1,null,null],["ethereum","jacy","JACY",9,"JACY","304502210096bfb3b394f654c20561d9f8b2ed0cf03dc6c2ad0fa1d3287b4d3acd00d3350c022060a4590c7b1f225c33e08890b0c713f7e8a556fa03e9299fad8818d3eb79bd37","0x916c5DE09cF63f6602d1e1793FB41F6437814A62",!0,!0,null,null],["ethereum","jacywaya","JACY",9,"JACYWAYA","3045022100c0491f6eca96a62f8b51d7b7cbd944380616cab7bb84c831c2868a64e937430702202c953010e02ac9271a86baaef1c4b08ad6b8f5ffb0763db9f77b2c7201112965","0x08F2991A6eFf2671Cf791b82AEaE64FbbFDd0633",!1,!1,null,null],["ethereum","jarvis_coins","JAR",18,"Jarvis Coins","30440220771b07db4c026780f96e0bd44adc9cbf9d30215b0443256caf57d37bc6ae914d02203028aa785364bbb2788a7f4817977e25b508851bdfb9d3d44e6639977a256155","0xa249DE6948022783765Fee4850d7b85E43118FCc",!1,!1,null,null],["ethereum","jarvis_reward_token","JRT",18,"Jarvis Reward Token","3044022010d9dc8223b03442eecc1f777bacea1280d0c559346bea63ee379724560fa194022015bffd0f9ef573e3bc799d31ea3c2dda5ec7653956aaf1e455cfd677035cd266","0x8A9C67fee641579dEbA04928c4BC45F66e26343A",!1,!1,null,null],["ethereum","jarvis_synthetic_british_pound","JGBP",18,"Jarvis Synthetic British Pound","3045022100b906e2a0461b6e6276813f7fdc243ef4fd5cb1f73324e19692d35a2cf3fb9a660220456b5b1868088f5f74d307fbfafc0a9c10b95aa6ed1ab3549e44928b680f25cc","0x7409856CAE628f5d578B285B45669b36E7005283",!1,!1,null,null],["ethereum","jarvis_synthetic_euro","JEUR",18,"Jarvis Synthetic Euro","3045022100e77f9b055f052dc95f139a4cf1b737573a980e0b2de4300b5d66edb70e9a8ac802206f6d9af5e904b5178c4ce80b19230e0c7d5ae04059dd6e055d6efa7da4f8b496","0x0f17BC9a994b87b5225cFb6a2Cd4D667ADb4F20B",!1,!1,null,null],["ethereum","jarvis_synthetic_swiss_franc","JCHF",18,"Jarvis Synthetic Swiss Franc","30450221009ba82e67fdb9276457ec59bea9a4c598da9e7e0ed44ce3559a7ae4076267254f02202b17737b51e2fd03766649df08bdb9a92423cd6638851a41e3956c3d329fc625","0x53dfEa0A8CC2A2A2e425E1C174Bc162999723ea0",!1,!1,null,null],["ethereum","jasmycoin","JASMY",18,"JasmyCoin","3045022100a56202883f3c1ed17123b5f11908cb2c6c9370a1ddad48d9de492cfdc73366d802201f9f53dec0f93a95c4dc2290feab2e97395c37339070583cb9e029662244d7ce","0x7420B4b9a0110cdC71fB720908340C03F9Bc03EC",!1,!1,null,null],["ethereum","javascript","JS",8,"JavaScript","304402206768d08ac6809c2548a59c0b84d72ef2766483ae302d2647f39a0da8f02b943d022063f4bb90fb5b945ed4228576641c97b168f4ebeec01128a0cd6c905d9576b690","0x5046E860ff274fb8c66106B0Ffb8155849fB0787",!1,!1,null,null],["ethereum","jbox","JBX",18,"JBOX","304402203fe64995c2506bb50dbf728f5c293d6bc85e8d860f6a663e1c6acd59f36cb79802200e61d9d1591a424939d50348b6aa48a7c132ea0a86fbd3aaf675120f8496cdbe","0x884e3902C4d5cFA86de4aCE7A96AA91EbC25C0Ff",!1,!1,null,null],["ethereum","jdcoin","JDC",18,"JDCOIN","3045022100eb626d450278470a96627c0a4d4ac9a971b378a77d49a88b1756722ad5e9444e022042f4eb497e1c11bc4c21f57c397978d1abc489a2e92ff14f8d781b594897594e","0x2fe39f22EAC6d3c1C86DD9D143640EbB94609FCE",!1,!1,null,null],["ethereum","jeff_in_space","JEFF",9,"JEFF IN SPACE","3044022035cbe22e0d86a4cf7196e2e44c4b24b33c1ce827ae669a3530770b57b8f0e2f3022027f49c44e46df6a9e37c9af055d567e66575cf4ca31e8ef3a6996f9ff0d713fd","0xA10A210C27C86f8C63825096E34f671fD61041b1",!1,!1,null,null],["ethereum","jejudoge","JEJUDOGE",18,"Jejudoge","304402207adeaf61ed2f3c8d632880cc425b6a81cb32fbbd959443a5826f33e623ef3ee70220387d7f311decc2e28c62711ff913c5386aa10ce85aac49eaf0abd8fdcd26ec63","0x939A7A577D93ad29B64C1595B1284ce660A479B9",!1,!1,null,null],["ethereum","jem","JEM",18,"JEM","30440220697fceb89553a102ab87bd99b115b9f699d277f6bf456e1124d13e1ef1f8f5ed02201028bb2e1c693e0a2abccb670b4834e352e3f3157df449b3ca1a02e5f41e1265","0x21cf09BC065082478Dcc9ccB5fd215A978Dc8d86",!1,!1,null,null],["ethereum","jenny_metaverse_dao_token","UJENNY",18,"Jenny Metaverse DAO Token","3045022100b32d61c015e680a8fc78d2adbc2b3f988b1b8b476a8ac7877b5fec32a184ba71022072ebadac23344da83cbd09bfb19a79cc17147ce47d2f3f873670a4759ec7f69a","0xa499648fD0e80FD911972BbEb069e4c20e68bF22",!1,!1,null,null],["ethereum","jesus_coin","JC",18,"Jesus Coin","3045022100911f810674bc4248e1c79f31bce4f5bb5d384fb6efff55430a9af1c2ef4a1b1802200ad76ac52abb39bba7ffbd184ef21891d3cdfc6076864b587bdcf1b868b26b6d","0xE2D82Dc7dA0E6f882E96846451F4faBcc8f90528",!1,!1,null,null],["ethereum","jet","JET",18,"JET","304402202c086d207410684eb4ee2fce36a4740aee2b007681e4ca80bea81ce1100642e402202332c324ffa88742855e80016a13a4f214833c466d1ac90e306c99eeaa5e36a3","0x8727c112C712c4a03371AC87a74dD6aB104Af768",!1,!1,null,null],["ethereum","jetcoins","JETCOINS",18,"JetCoins","3045022100d27bc3b2929ca5f439cd561919437f0ec6d4bf570914be157917291cb4aa6ba302202cb88e386df56dec2e250d6446322cd9f8a49659f9b6990167ebf5819691aa98","0x773450335eD4ec3DB45aF74f34F2c85348645D39",!1,!1,null,null],["ethereum","jewel","JWL",18,"Jewel","3045022100a2dfa5888af9907e593617aaa96e949f604ac19cfa4c1911a3aa376d99d11ca702201a68dc1a7dc16e190c7e9e837816704c51f5e0ad4dd5468eee411a4b3fa0b5a1","0x8275eBF521Dc217aa79C88132017A5BCEf001dd9",!1,!1,null,null],["ethereum","jfin_coin","JFIN",18,"JFIN Coin","304402204736449f225a2117562dd9c38a28ddf18c183960a35cc7b4f2241283cf5b4e0b022046a253bdcbb7d5b30f46c196def77cdbfbf062c6723563451c393041ed0ab7e4","0x940BdCb99A0Ee5Fb008A606778AE87Ed9789F257",!1,!1,null,null],["ethereum","jiaozi_farm","JIAOZI",18,"JIAOZI.farm","304402206f0143ffdf289cbd354531272c1d6cbf6746e6f6dfd936bbb164432f3f65f79502206976c3adb2f6e8360af208dd246b33e73186d43aae8ffc86dee670cd384e7434","0x94939D55000B31B7808904a80aA7Bab05eF59Ed6",!1,!1,null,null],["ethereum","jigstack","STAK",18,"Jigstack","3044022051e441ef019dcd5d3542ab40df06c92019b11f708221af231fbed28cf509202a02201c2323af596499544d99bc141bdc009c71ca0cbd7460bcf07e94db7dc434774f","0x1F8A626883d7724DBd59eF51CBD4BF1Cf2016D13",!1,!1,null,null],["ethereum","jinbi_token","JNB",18,"Jinbi Token","30440220303ca57fcb172f5c96d4e2950368b783dc9f3931aa01c0ab538b0bb7f2a9a808022011b9065a23d9417ac2af8e660ec5535510e335e2d8bb8550ab0b461604f42a0a","0x21D5A14e625d767Ce6b7A167491C2d18e0785fDa",!1,!1,null,null],["ethereum","jindoge","JINDOGE",18,"Jindoge","3044022001312084173b4b4181e92890538954c8a8d56e3a00ec710df51d79188912d799022076e74366fb667c0fd57014388ff80ef8252570836b87b4c67155e7f1f9984e4e","0x3f4Cd830543Db25254EC0f05eAc058D4D6E86166",!1,!1,null,null],["ethereum","jm_token","JMT",18,"JM Token","304402201efe15bd30983fd254cff3a77e8bc3a5382f64d099b2365220958d34c4dccc9d02206c7358e961f31ca2373b6dda2fa58f4bdd25178115f83825660047b029cf56b1","0xDa022Ca91DF99413e8CB0CAAB4d1CbA4e9018bea",!1,!1,null,null],["ethereum","jnt","JNT",18,"JNT","3045022100d865c7aecd09c524dc0c842edc160ead66b547586bf694314ef11730c4db6bd402201589b1c18b62e726bf82e21bcddeb9cee18d6607f578c1bde70e7a6ff8dc4c91","0xa5Fd1A791C4dfcaacC963D4F73c6Ae5824149eA7",!1,!1,null,null],["ethereum","jntre","JNTRE",18,"JNTRe","3044022053d9d4d59d9709516b777ebbd09e0b1e029c28c8088513754602911b70d582b90220644e206d1295dfa5edfaee6fb335cd449fb83360d83adc7e4b6fb7b7e83740c2","0x1368452Bfb5Cd127971C8DE22C58fBE89D35A6BF",!1,!1,null,null],["ethereum","jobchain","JOB",8,"JobChain","3045022100bbf2099d484fe9525551c2c881b084f6569841c8c786ac4f1212a7cf617773a502204b35610a5162f2db4424bd16ed673805a98d6a594931b9373eeb727a3c329ed1","0xdfbc9050F5B01DF53512DCC39B4f2B2BBaCD517A",!1,!1,null,null],["ethereum","joint","JOINT",18,"JOINT","304402200ed233d31e2df4a661e02ca7fa5172629dbd400d89a02046281618dfad09cc6d02206c27a0b47d1c051d33c072772108b914adc2cf8d3645df60999839d57eef7a18","0x347C099f110Ca6761779329D2879957b606b6aCE",!1,!1,null,null],["ethereum","jomon_shiba","JSHIBA",9,"Jomon Shiba","30450221009fb4f8f76d8a317c430d10451c12dd513df902a122d3b4b5ea305ae16e984f1c02207c82ca163d343c8102191e4e21cb2cc130154324382a2f96b27d44a9ce68f24f","0x1426cC6D52D1B14e2B3b1Cb04d57ea42B39c4c7c",!1,!1,null,null],["ethereum","joon","JOON",4,"JOON","3044022043933db9b4f62f8057db55cd651fb6cde38b8a331a286328817c1ae902f1fe48022051c52b590270b359b947b81304831b4727336106cb50f6221479c9b42d05e194","0x174897edD3ce414084A009d22db31C7b7826400d",!0,!1,null,null],["ethereum","joorschain_initial_coin","JIC",18,"JoorsChain Initial Coin","3045022100f9bd119c434ff85c56098c58bb8dfb6fcb3b1b3646e0076a97c272b09a9d45e30220486db8f04329c95c5f41a7b10e61c2f285eac587d9ce22c593e46e67477d0154","0xF07376F0E3bfF57116eD62e5e8e2Bb1341E4B4C2",!1,!1,null,null],["ethereum","joos_token","JOOS",18,"Joos Token","3044022005e08fae5b1bfa72f81ae5c98e81ace6650b0b79f3580610d6bc3b83d5bc72dc0220217f37cf75d0f2177acf4623d3cd9b44fcc31ee950a52d98a4c652a45cceca06","0x05F9Abf4B0C5661E83B92c056A8791d5CCd7Ca52",!1,!1,null,null],["ethereum","joyso","JOY",6,"JOYSO","304402203a665df48d0d210adcc5d8c554468c2d03ff690224970e2e4f1b9f7ea67c053802200523b962b4e763c2e1d70d3336259b585e7543f6d505c40c24e914fd454bce8c","0xDDe12a12A6f67156e0DA672be05c374e1B0a3e57",!1,!1,null,null],["ethereum","jpeg_governance_token","JPEG",18,"JPEG Governance Token","3044022076791f09ba6d7c1f39ec43c2dd58986967fa1fd84d42f8ac09fdb4803d8255360220129946d1c1327b49eb550d6e07b3e5dcfe81f42db748cbf08d0f99e1a49c6521","0xE80C0cd204D654CEbe8dd64A4857cAb6Be8345a3",!1,!1,null,null],["ethereum","jpg_nft_index","JPG",18,"JPG NFT Index","304502210098bd389ebdaca7c46ccd2608aa1c7e3376221fee118d3c62bc0c1d194c8b6f9302204a44304c920f94375f6fa0acc9e86dbccd7b820b9f1713dbedf660b26e2edc24","0x02e7Ac540409D32C90BfB51114003a9E1fF0249c",!1,!1,null,null],["ethereum","jpy_coin","JPYC",18,"JPY Coin","304402200396dba371e37c807a5e93f3d9576fafcb727cbab1d16297b1886fd5d117611d022005364680c5fad5f12dde1fdec0aef3cf513ea9f214a65b08db7765e6ce3a4afa","0x2370f9d504c7a6E775bf6E14B3F12846b594cD53",!1,!1,null,null],["ethereum","jpyq_stablecoin_by_q_dao_v1_0","JPYQ",18,"JPYQ Stablecoin by Q DAO v1.0","3044022017c0847e0783566c5c4520b50a87f13e0a203205307e53ba8299238005c47e4f02203528c6b64a9d3fa32bd06cf5ee1b63696015499905dec5f12a7d1eae14d86731","0x558A069a3A1a1e72398607b9E3577fCe1C67EA63",!1,!1,null,null],["ethereum","jubi_token","JT",18,"Jubi Token","304402204c9fed8c3112913b374f7e84321714f17830ef9f10c735392c154702fa9e76670220299e6bf11aec66616f828e687e5c29aac4ead573073ef84c71b24d71a8c5c798","0xEb7355C2f217b3485a591332Fe13C8c5A76A581D",!1,!1,null,null],["ethereum","juggernaut_defi","JGN",18,"Juggernaut DeFi","3045022100ef2220645a40a86b574baab740d788f1480cf6b09c0619573e539fdff557216702204ded62c9a61bc2c381b8a9da632bf66a6d15695cda0c02cf830e2fe9ce5594b4","0x73374Ea518De7adDD4c2B624C0e8B113955ee041",!1,!1,null,null],["ethereum","juiice","JUI",18,"Juiice","304402201bf8933ef9fba4fa20fb2a3d7bb2150ff6a4d9e9f7bd0123f5209fd13c110ca802203f75322401ee9ff1eb72fcd6227e1cc71f5a296cd5dee3568a49e88de1e3bdbf","0x2CaE31D2Ca104a951654456f46168Bc9F88FDc65",!1,!1,null,null],["ethereum","jul","JUL",18,"JUL","3044022061edb980c82e2c20e5667d4b6801a07edb6174a261e40a7aa2d7072015c5352702207fc0522dff830bfe7fb6d73a2c4da974367ed231b8c5f30e132ab0b6091e2bb8","0x5580ab97F226C324c671746a1787524AEF42E415",!1,!1,null,null],["ethereum","julien","JULIEN",4,"Julien","3045022100f5229cae102e2a2281340c089989808988e7edd5f927e7585a16ba1103e70f5e0220757737449994673db901cb46b5d7b497cb61ac2be8436f2254a9bae5c112e38c","0xe6710e0CdA178f3D921f456902707B0d4C4A332B",!1,!1,null,null],["ethereum","jumptoken","JMPT",18,"JumpToken","30440220786a67322a6a8d18ae5160ccef506360c5856ee778d5a5a1efd30b485e1de065022068062d354bcd556e296bf853b7706c457251ea5271babb54e2df380ce2b95f77","0x420a24c9c65bd44c48bfB1cC8D6cD1ea8B1Ac840",!1,!1,null,null],["ethereum","junca_cash","JCC",18,"junca cash","3045022100d8973df5db3e5f10eed6bb20800939e5466defcec3ffdad598612e78cdc92e400220310c21d277a8c18afaa5c4651cf5c0dfd5614d785a685ea2e220a9a03a53d58f","0xeA7aA1eDd21735A5ab05EE3E90869016191e274E",!1,!1,null,null],["ethereum","jupiter","JUP",18,"Jupiter","3045022100b6d58e8a954c7d1b9b8b62505cc092bea10fd64184e7546b05185ee7d855043f02200e1d4342977ba9532291fcdb6f61ddc2cfc9d04e6470310d8304aa16fcb3adc6","0x4B1E80cAC91e2216EEb63e29B957eB91Ae9C2Be8",!0,!1,null,null],["ethereum","jurasaur","JREX",8,"Jurasaur","3045022100f56d4f0f0759844693cc351361b7bc3d66968d62b9f5c33dcaa8e533d26ae0e5022076ea268c55f4fdfe14c13f01f95788715c3be3119463b4a44c09f2b8bfee3a07","0x638155F4BD8F85d401Da32498D8866eE39A150B8",!1,!1,null,null],["ethereum","jury_online","JOT",18,"Jury.Online","3045022100ec09d6e467f37cd71e96f6e7d649cbd3833f8acc08877330415179b866a5524a022047d4de196561165904ffa05d78721741c87b90c0c5df8fd89051ad12c6b1d3d2","0xdb455c71C1bC2de4e80cA451184041Ef32054001",!0,!1,null,null],["ethereum","jus_token","JUS",18,"JUS Token","30450221008d136af34b2f3b9f3a8a740fefce4d7c974b6f12c0d47c5c5097574cddf0fac602207e2fdc9cef7cf1cafcf828d242f5358662d179cfa1ad5d33557b8f547b8cf59c","0x14cA41Eecd7D81D5D13098586C0d2314EBa285bE",!1,!1,null,null],["ethereum","justbet","WINR",18,"JustBet","30450221009702c8d5c0dfdcd9832b84b764335b6fc1c6ec328c57bded98743487fb4d5c7a0220140cf5c8cad07a8bf5fde62e6935df886a638ca78032c29adc0524c8c557f5bc","0x27460Aac4B005dE72E2326bd8391c27FB41780F8",!0,!1,null,null],["ethereum","k-tune_token","KTT",18,"K-Tune Token","304502210090f5a92685cc5a9ec75c318c9d613b2883e907056991b1d3de77a1b8f4e72228022078c0bba343c064bd699eaea3f218b034a1bb053e077c4dac4bfed05382976781","0x14cC8DfaF2258E1B8B2869300dBa1B734dc0fE43",!1,!1,null,null],["ethereum","k21_kanon_art","K21",18,"k21 kanon art","3045022100c9864c4aabd1a1e19d6a4a1d5e75312b95afaf2f6ca0d50dbd2409c7eb50ec2202206c6b027809a75ada6653c7d3b940b2c5996f11c21bd1cc2626f0774ab3a00753","0xB9d99C33eA2d86EC5eC6b8A4dD816EBBA64404AF",!1,!1,null,null],["ethereum","kaaso","KAASO",18,"Kaaso","3044022063715467f005d040703070c6375992b89cef25deb4ac988e90ccf175e4000068022004bd135f17ce00cea41f62ec03bb79fb33be7b5158af15f571334a82de8e0b32","0xF6Bf74a97d78f2242376769EF1E79885Cf1F0C1c",!1,!1,null,null],["ethereum","kaikeninu","KAIKEN",9,"KaikenInu","3045022100ee5ff23902ea1f5d966849a23179a127a0c7dbf99d4adb823daddf1fc59b224702203933ecc7d9489e4926d391902b6e6fdd03c841b27950d04d09149201d676db95","0x9C687403Bf2a83b3Ea808af0B512949397be9b00",!1,!1,null,null],["ethereum","kaizencoin","KZN",8,"KaizenCoin","3045022100970351475af673cadc624d2fea96332502fb2520e61bc17e304c2bae2e8526850220608ba84623205f362cad98433df78b48bef8fcf72b8d11a2af2c1fdbfb74e046","0x9541FD8B9b5FA97381783783CeBF2F5fA793C262",!1,!1,null,null],["ethereum","kamagang","KAMAX",18,"KamaGang","3045022100c5b544f840f023754af52097ae10a0acf6e2884ab6d0da2e31146c05f0bf0c2b022025412c3a9b205e154e4b6ddbc9c430cad04c4fb81e3dd6452984a06a2338fc13","0xb2C62E0A1F5837356e399359eCc34fcC49A02093",!1,!1,null,null],["ethereum","kamari","KAM",18,"Kamari","3045022100f145a4d011e88610c5708a03caba9ad75ad6f51b709519805ff00a2557fec44e0220158719fdfe608241b8674fd2d6817995cdff90c610c9d877f375197b5e65bd45","0xF8D9fd49d0519a7B93F3Ce80c2C070f1294EAD26",!1,!1,null,null],["ethereum","kambria_token","KAT",18,"Kambria Token","304402206cfdc36182a728d7a00118a284cb3f72306170be2c11c33196f7f3fe6af247680220568e4aca2b56a266fd957a3407f5790435af02cebad4e2a764db15dd5d781562","0x14da230d6726C50F759Bc1838717F8CE6373509C",!0,!1,null,null],["ethereum","kambria_yield_tuning_engine","KYTE",18,"Kambria Yield Tuning Engine","3045022100c4f156d7a60195ce92c93c9ea75e425eff5c820ac80d1153cf7c71120b31ac17022045e20e6f291f9dddc14a38123cb4a704ed51eec748b42152c9178bd6561a6715","0xa053c1b7013e77Fe0a873Ce0cA2bd5d0B7414C41",!0,!1,null,null],["ethereum","kan","KAN",18,"KAN","3045022100d9273fad9252b5a6799bd89112a1c7469f48ea7a8e69277edd1bb9d66330b2e102206aa6332a0186916e8d15be2219540904a1167cc0dbae16411b5db26773b60ba9","0x1410434b0346f5bE678d0FB554E5c7ab620f8f4a",!1,!1,null,null],["ethereum","kanadecoin","KNDC",8,"KanadeCoin","304402207944c8cd049cdac13065034679e7f8c5d2720ae31f5cb6389d67af4c1fb1906202200fce74d579d8fbc7c8e385f51ed8e32315ef1eaa54ba4b5ae709e62b23068b02","0x8E5610ab5E39d26828167640EA29823fe1dD5843",!1,!1,null,null],["ethereum","kanagawa_nami","OKINAMI",9,"Kanagawa Nami","30440220779c36514d9a4554dc0bebf98a55d3259432f17820c011c1bf0d269df397732f02201c8af88a5624ac8631636c1af48894e620b8258b5cbc4609085a3421f15bc088","0x1C4853Ec0d55e420002c5eFaBc7Ed8e0bA7A4121",!0,!0,null,null],["ethereum","kangal","KANGAL",18,"Kangal","30440220174f1364fbea8e4afa5e1d94d48537b00936015acd89f6ebd301ab1841814f4f02204a545cc84649a6564ebebf193140536c3e065c5f9b40736091a6330e8b1f5119","0x6E765D26388A17A6e86c49A8E41DF3F58aBcd337",!1,!1,null,null],["ethereum","kappa_token","KAPPA",18,"Kappa Token","3045022100c7e2ac59809b6659daae271832acc74af2e066d07316488cecae5b68a1894c140220218754c5482c5d289750738d1862d961a121a86eae45b2ee9b8f03362c0f1e07","0x5D2C6545d16e3f927a25b4567E39e2cf5076BeF4",!1,!1,null,null],["ethereum","karatbank_coin","KBC",7,"KaratBank Coin","3045022100f9b71c2664876ea5e44fa24c274ced08504b3e56ed3e249e7d6c988eca707b18022051a324927855c141a4a6a10454dc9ede796918e398a23da314b58d9551f6cd4c","0xf3586684107CE0859c44aa2b2E0fB8cd8731a15a",!1,!1,null,null],["ethereum","kardiachain_token","KAI",18,"KardiaChain Token","3045022100c51faf2578d8ccfeef2f861eb4466f382bbb94cc40b010d3e4a2414869a54cdd02201adfbb4fd392a52dd0da8c3490bb58db512a619f283094ae18ec6de8808c3fc4","0xD9Ec3ff1f8be459Bb9369b4E79e9Ebcf7141C093",!1,!1,null,null],["ethereum","kardiachain_token_","KAI",18,"KardiaChain Token (Old)","3044022033568802274e535125b4acaf0bdd450d512e16869be7c3217a8666858235575402205208e338c1048f1e9e52e272f7f7dbafcd46425a70057720b8a0efab4ef9daef","0xBD6467a31899590474cE1e84F70594c53D628e46",!0,!0,null,null],["ethereum","karma","KARMA",4,"Karma","3045022100a6363af9e71367a33db257c19b99bfd7569059d3d95ee50ddc9615ad758b98e8022028eafe653688ae6ea1dfa7d1ca28f5f0b654ca309af4e6165531ab86f3fc074d","0xdfe691F37b6264a90Ff507EB359C45d55037951C",!0,!1,null,null],["ethereum","kasta","KASTA",18,"KASTA","3045022100f56d98975650968c49c1d503dda8e98188a579e538abb57f584505f109df7238022054471f81641069c181983f487ed70666c462f6c98564eafe29432dfbee34d3d9","0xb93c7F7Ae99799B95Aabd702251d37D0Ae42d5EC",!0,!0,null,null],["ethereum","katalyo_token","KTLYO",18,"Katalyo Token","304502210093828ad3a702a5dfd4771f61593ff3bae5e9375bbb32af1628891fcf9f976e6b02201d9e48da022229c2089db3be6190e210cb74b6233a1117215395ae47f97219fe","0x24E3794605C84E580EEA4972738D633E8a7127c8",!1,!1,null,null],["ethereum","katana_inu","KATA",18,"Katana Inu","3045022100d61fe14ed660d7cfa4fd919aec05d2e266b327cb7920c2ce5aec3edb5b270b96022045802a082681a445dd7c1c9ea7a7433838668aeebf6745be5671749e22412bd2","0x2e85ae1C47602f7927bCabc2Ff99C40aA222aE15",!1,!1,null,null],["ethereum","katanatoken","KATANA",18,"KatanaToken","304402201c786e74e21da308712294ed5fa037e6024317d36711027ca1295613feb76c5c0220611172ac6026207a4cdb2e572534c99a4df0b1ffac68791434a06632e097c058","0xe6410569602124506658Ff992F258616Ea2D4A3D",!1,!1,null,null],["ethereum","kattana","KTN",18,"Kattana","304402207eff6af797d86441d4fafff5e52b4d4e356ecc3ff28cb6ded0cfcabfb03a9543022068706db9ab7c82d6ed6516ff56aa3ee7099bafd64b12dcbd70fc7e3638e8474a","0x491E136FF7FF03E6aB097E54734697Bb5802FC1C",!1,!1,null,null],["ethereum","kauri","KAU",8,"Kauri","3045022100aa6767ff7b7d8cc82f92ce9c723fc1015c350f9b175566ffdf82accd0b3a77ed02206fef789cafd7283c3563c0b03adc8f300814cf96fdcb1f53a347dc5c7d91b118","0xe172F366678EC7B559F6C2913a437BaaDfd4e6c8",!1,!1,null,null],["ethereum","kava","KAVA",18,"Kava","304402202913846eaf9a2ce4756a56175054b70f847237d724e9155ecf19cace590b429f022023181fb56747722fcba9ba47eefdbc8e74d689f27db269caf2849a273833d3b3","0x08d1E0A7fBd4eDBF56D81Da21D1b0c9c95Fb507F",!0,!0,null,null],["ethereum","kawakami","KAWA",9,"Kawakami","3045022100f2aec31126bb600690b3b157ebc26773dfe0ea7a1bd02a23b3ea94a6796e56690220342bd5c20fbe643f8c4a0372cb0dae2e8886d6f3971802f1239a9317d7479a51","0x5552E5a89A70cB2eF5AdBbC45a6BE442fE7160Ec",!1,!1,null,null],["ethereum","kawakami_inu","KAWA",18,"Kawakami Inu","3045022100e256071356127a73bc6f4452449ee6dbc8a18d7c7c6be0fa38508f504857ca2202206e68a87ef77bdf1ff9bfd6f89c70064e75d3a45b7ba256f50960ba62f220a292","0x17a4Ae8B1ea75d51AB0F2875B80452F7e34c272a",!0,!0,null,null],["ethereum","kawanggawa","KGW",18,"Kawanggawa","3045022100f642d512c321080898bf2c776d879d6d9622e06b071d6be5592978621f5e43e302205d3982e487e6e099e79dc9cd3d025136ec07c2f5419f10aeabf8f27bfab1fb26","0x55Eb5288c9b65037a4cd2289637f38A4F9DB3a6B",!1,!1,null,null],["ethereum","kbtc","KBTC",18,"KBTC","304402201dc6929891c106b22794aeec8dc88a527f4a0948c27efadc2562f202e7f5585a02200cf0d9c92068fd7b6522b395ba7a6d85988633ba0f1c780c19236a1444e75ff7","0xE6C3502997f97F9BDe34CB165fBce191065E068f",!1,!1,null,null],["ethereum","kcchain","KCC",4,"KCChain","3045022100e7514bc802b0b49f19013c856b12ab74b39221dfd0a47d7665724e5c304c0b32022047c02f98f29e33496de5b2612b9687acb8cef7718fa61f6a11b6cb4a19e607dd","0x956Ff273D0AB5Cceeba832BfCF0F342F61c71388",!0,!0,null,null],["ethereum","keanu_inu","KEANU",9,"Keanu Inu","3044022049cddf7472b4b9c6e190c9896212262e6e300e140cd23badd39309e667a1a5530220582ea3c57198a6009dc494ab97ed94a22f12d0f7ad771faf3d63c5a5386c86e8","0x106552C11272420aAd5d7e94f8AcAb9095A6c952",!0,!1,null,null],["ethereum","keep3rv1","KP3R",18,"Keep3rV1","304402207c69a7aaa3f87839e3b98f43a487377fb9e9bf29b095aecd55918b55f07202f5022043832c09ba8f8f08fdb0c181c587d1ccb2a6fdb0304fd5a7f6a8c2a41b9c7c1f","0x1cEB5cB57C4D4E2b2433641b95Dd330A33185A44",!0,!0,null,null],["ethereum","keep4r","KP4R",18,"Keep4r","3045022100b1102fe2a438a5a57d5c787452377e2a43861b63221d588d0dc17f2d2609267b022067b8634e1096ecebb02fe310c5a56ce3efcd494b19d86163a169c6ed7e160f02","0xA89ac6e529aCf391CfbBD377F3aC9D93eae9664e",!1,!1,null,null],["ethereum","keep_calm","KCH",18,"Keep Calm","3045022100d6c19765031520c9da8d556f9db2fda4220e4777fd763a68136568538beaa56902201027b7b3582ca816e547d9c28abdd76c4e519001fa8b78b2772a5b63b4314076","0xdB80734b094a3F964DEdfD10e8946753aE0AC04c",!1,!1,null,null],["ethereum","keep_token","KEEP",18,"KEEP Token","3045022100c2d0cddb3db1c33cfa1bb335f95976cbf934e25540be2951712bd3079028e9d002202c6d14e4a6e04cf18053620c872f3b22ff0c7c8b1a6ef880a60c2b54e7e9001c","0x85Eee30c52B0b379b046Fb0F85F4f3Dc3009aFEC",!1,!1,null,null],["ethereum","kefi_token","KFI",9,"KeFi Token","3045022100e000492b8524e86372cc35670725bb0c5b0604aebd239d5b3124960de385d457022010dc05e07844716651d7e7a7250f1d20ba49ac30b40a05ce823f1f3bb964fb83","0x3B0E1508faE33FFba8d3EA64851cF98C02F1c61B",!1,!1,null,null],["ethereum","keisukeinu_finance","KEI",9,"keisukeinu.finance","3045022100c8cafdec7ef84802ff7aa3619c88bc4a238cda76fb7a577b13fb09380055d94602201405da2fcb569475b884b9eb235d4a81cf19541964bdbcc92ab0c598e51f7f59","0xc0114F14638a333A4D5C3b04F09b96372348A842",!1,!1,null,null],["ethereum","kelpie_inu","KELPIE",9,"Kelpie Inu","30440220194b34518a9cf7b6e0d7fb170601169b6980ccf84c71813f9bf2fe583181cf0702200918d73f276563c6ad8ba50a8ff1533fc3e47dff3f940512312519f47b23c28a","0x672D7b3333d0F069a28b73A268bC6eAeC65F2E1a",!1,!1,null,null],["ethereum","kelvpn_token","KEL",18,"KelVpn Token","3045022100d79ac2974f7cc7d6663278550b7f38fe1086be4b0dd9740c12d91d40135aeb7202204629238cea3eae7139863443a1c02fc5e45ed38428e7dda1a5000400ec786e68","0x4ABB9cC67BD3da9Eb966d1159A71a0e68BD15432",!1,!1,null,null],["ethereum","kenysians_network","KEN",18,"Kenysians Network","3045022100b4766b0bd36537ad18a8d84625fe69a5cd26c55dcbb945f3b63549f858296cce022073b13934b1bc5fd3bcdbdca2b6ee9d64eb0b484d6a2ff145fa3606cce365c74b","0x6A7Ef4998eB9d0f706238756949F311a59E05745",!0,!1,null,null],["ethereum","kerman","KERMAN",4,"KERMAN","3045022100a6d2ce4cc43513c71d54430f7df6d09c12f449f90324e2cb1bb7e553691b8feb022055f09439fb8f2399904530f1e64a2900729ddeb54af1a6c8448bc4032d1d700a","0x7841B2A48D1F6e78ACeC359FEd6D874Eb8a0f63c",!1,!1,null,null],["ethereum","kesef_finance","KSF",18,"KESEF.FINANCE","3045022100e04575b53fa1cfbcde880cf2d103968ffa1186eda9dc7b571776cf76e7b58f8c0220290ac90a5fabcc75abc86f954d9d6ca4c996741ac9d33bc00dbab92bd3b6ef89","0x049e119413aB1f1b0fd836e657e3e4BA3ad9CaB8",!1,!1,null,null],["ethereum","keyfi_token","KEYFI",18,"KeyFi Token","3045022100821e81345dcc20ab40171143ca5d5b11af9c4bee5baa26b4001f796a97584cf102206bb18f3ed2345ddee94ba9a98d8a29f32e6dbf62736169f1e6cca59e81f85ea7","0xB8647e90C0645152Fccf4d9AbB6B59Eb4AA99052",!1,!1,null,null],["ethereum","keys","KEYS",9,"Keys","3045022100a0638a001ab73af266f437e649a96e8ac12e477756008594c32f75390d275ea70220224e0a4b2bff455f1ff47f1b09fa95953825de174da8b479a907708e6d8b9974","0xe0a189C975e4928222978A74517442239a0b86ff",!1,!1,null,null],["ethereum","keytango_token","TANGO",18,"keyTango Token","3045022100dfe18dae74f01beac9896306be97ee0737fc61a6c89b2b6dcc68843bbc6dc5a1022006cfeedaa3e8515eda93f93704c8f12eb6f3ebf86dada167f29119f35a80d3f6","0x182F4c4C97cd1c24E1Df8FC4c053E5C47bf53Bef",!1,!1,null,null],["ethereum","khipu_token","KIP",18,"Khipu Token","3045022100b50f9be13f7a78bb82fb6d2376e1d700defd2275a1eeb5ea42ca97b874baacbb022016290362c309dd3d78fa1bac734e47c9473090e814279b0e73beef5a33129a9a","0x64E65D352f6A2949463B3a7595911B61BBaFc63E",!1,!1,null,null],["ethereum","ki","XKI",6,"Ki","304402201fe22e202db62b632e0647a12070c24f34de2006e667abedaed5ca6ea2986b18022054dd4eda5bf5e444601a48e5370cfcf0b51cc5fe1237259f6066311286dbfd55","0x4f6103BAd230295baCF30f914FDa7D4273B7F585",!0,!1,null,null],["ethereum","kiba_inu","KIBA",18,"Kiba Inu","3045022100baa979e8461d439b324416dff31f277663b51fa36e5e60005933292d5151f32502200528872863ce6b55009387bd2c5b6556b907193e27f506236149634a97518822","0x005D1123878Fc55fbd56b54C73963b234a64af3c",!1,!1,null,null],["ethereum","kick","KICK",8,"KICK","3044022000b06bf563f55da06b142b6816e824492a4862673f29842aa8b46f23a7dcbe57022049309464e7123f79df5bcead066a2b0af929965d3d9dc683a324eda32f970b07","0x27695E09149AdC738A978e9A678F99E4c39e9eb9",!0,!0,null,null],["ethereum","kicktoken","KICK",8,"KickToken","30440220684fb1739569051f38992b5aee0874b360bb9048356f8369cabd3f951e07ec28022001260310d8bfe2f441478d3effd2609e27e5d046c7a7069d8da34f9165a216c4","0xC12D1c73eE7DC3615BA4e37E4ABFdbDDFA38907E",!0,!0,null,null],["ethereum","kicktoken_","KICK",10,"KickToken","304402201b010d246bf188ddde40bf6af65ce901445b4f0e36cbf62470e81154086ce48b02205712290082801ffede721726f6e088d2e9c3b733fa1904cb9178aa12b21cc2c6","0x824a50dF33AC1B41Afc52f4194E2e8356C17C3aC",!0,!0,null,null],["ethereum","kids_cash","KASH",18,"Kids Cash","304402204f3722c435e82ea2aa38a3977e86e4e24a43df1328f9bcd0f2096f1bd38d7fac022029b1cb5dc6e64e21dd061a0c7c1719ba22f571da98e5ae2e92ffdf2e7d0eaef7","0x2c50ba1ED5e4574C1b613b044Bd1876f0B0B87a9",!1,!1,null,null],["ethereum","kiloample","KMPL",9,"KiloAmple","30440220168ad8d3b9dc7a221d39ce74de7c7e95c39a4ce60b7db560ef3e54b5b8b0af800220336c6e328f714dbbcf0b5e2f1b5452676286d3c38854206a36ee4d3586253a13","0xe8D17542dfe79Ff4FBd4b850f2d39DC69c4489a2",!1,!1,null,null],["ethereum","kimchi_finance","KIMCHI",18,"KIMCHI.finance","30440220781061635d57199aa866f4b33b3bc4db46340a5e9f346dc33e4cd47bd475e67002205b128de75bc7a85197a06a418ba5d963abb2c946a22e2e4aff49d2f77731c1ab","0x1E18821E69B9FAA8e6e75DFFe54E7E25754beDa0",!1,!1,null,null],["ethereum","kimex","KMX",18,"KIMEX","3045022100c266a5505958e45baa8baaf0124d2f7eef523dd158b9741150c071cfe3bd456302207b0064ec88b805a0fb1fed8a7ed2e0aaabdd4e06f07066f8b9f028b224ef84c3","0x9b8C184439245B7bb24a5B2EC51Ec81c39589E8A",!1,!1,null,null],["ethereum","kin_foundation","KIN",18,"Kin (ERC20)","3044022069ca74b8ac3d4cbc8937a2f87996ad35e8044c268f4115c6b4fc5582a1d5c135022032959f3ab109914ce3b858aac4acd94b1b90ac427a0922eaf0bc4a939ff45814","0x818Fc6C2Ec5986bc6E2CBf00939d90556aB12ce5",!0,!0,null,null],["ethereum","kind_ads_token","KIND",8,"Kind Ads Token","3045022100c7469cff41c15ab6bf9f269834b0225343f8080280add26ed8f598883abbd307022053c3cd4755dfd0964755962ef18045413e3165792292c92eb8c125de5bb10bc6","0x4618519de4C304F3444ffa7f812dddC2971cc688",!1,!1,null,null],["ethereum","kine_governance_token","KINE",18,"Kine Governance Token","304402200fc7167be7aae139b675902a96c5ecdf731af5730139f5eac0688770ba43880c02207fba12292f314afa08bc4ffa1196812e69f8eb952eb31a292ae7ae7bbdb4e6f7","0xCbfef8fdd706cde6F208460f2Bf39Aa9c785F05D",!1,!1,null,null],["ethereum","kineko","KKO",18,"Kineko","3045022100a9715388a8460ae31d172c40923cf1046f3c245f15d0919f40c421c3667d9c4a0220552656015a66e4ce28e6dc6b03e8182ae63b8347d845fd02a2a7c88cababd2ef","0x368C5290b13cAA10284Db58B4ad4F3E9eE8bf4c9",!1,!1,null,null],["ethereum","kinesisvelocitytoken","KVT",0,"KinesisVelocityToken","3045022100a1fba69de549f6d3b2860b711296707dd5c297bfd4eab8ee15bd87b2744c3c3c022066261fbc90bf09a0cebe456bf9635713f4742c5d09f0f65fb29ba8e21308e10f","0x3a859b9ea4998D344547283C7Ce8EBc4aBb77656",!1,!1,null,null],["ethereum","king_arthur","BKING",9,"King Arthur","304402200ff6bff132b76be0952b3b5aa896a0ac81822c1234fb9acd4a05d54ee20c3254022078cb4b5193561f802e657e2417214dbd1d88734b6cf1444eab2c5cae89fcd091","0x1cA02DD95f3F1e33DA7F5AfE15EA866dAb07aF04",!1,!1,null,null],["ethereum","king_dag","KDAG",18,"King DAG","304502210088bbe862bea189436b64640204d7f0ed287d68f102358b9a39c7b24011e29bdd02206e510adf05ac28d7c63a2ca75a19e5bba68d44026cabab1b96aa6d3881a8bca6","0x95E40E065AFB3059dcabe4aaf404c1F92756603a",!1,!1,null,null],["ethereum","kingtoken","$KING",18,"KingToken","30440220487bff998ed52825bde666855325620e9cc0a9506f6d47c3a4ac0222c5e1db8302200517c4c45dc890a9dcea1ce6efcf1859c529bc5411e7b3e1988e7105472ab853","0xd2057d71fE3F5b0dc1E3e7722940E1908Fc72078",!1,!1,null,null],["ethereum","kira_network","KEX",6,"KIRA Network","3045022100cd04efaef85b882e7585bd84a9b5df858b52b4ea71dae6f28f89fdebcb9f14d902202dcc28ad9c9e4e3c3ee3a3fe27c1017c2d4c32c7da21ed8388de5bfed97e6c46","0x16980b3B4a3f9D89E33311B5aa8f80303E5ca4F8",!1,!1,null,null],["ethereum","kirby_inu","KIRBY",9,"Kirby Inu","30440220335a25282b8b11cfd29c63025f4c3ab09aaea4c82f7118b68e99983e1ba50dd60220109b2e24cbfe4518fcbf8f89b966e87018181bed1d070fb302f31d2c373ce0f6","0x1FD7E8C718C153FA97A5525c227A098007dcFddA",!1,!1,null,null],["ethereum","kirobo","KIRO",18,"Kirobo","3044022037de247367802aa9a17617811b24bb46a1468f6031f4c447c37951f4d802e79f022001fb2f7c561a57d37cb9b40cc05d86c31bed843a9bd8c1e70a4e0fbb44c74cb7","0xB1191F691A355b43542Bea9B8847bc73e7Abb137",!1,!1,null,null],["ethereum","kishimoto_inu","KISHIMOTO",9,"Kishimoto Inu","304402203b1c3ab17adbb77011b12044f8b4fafbcca5a8c99ec7a2d208179e57a44eea39022054bfb963aea65fdde4473d08c660c32c632b71cea23a558df44c332d469d397e","0xf5b1Fd29d23e98Db2D9EBb8435E1082e3B38FB65",!0,!0,null,null],["ethereum","kishu_inu","KISHU",9,"Kishu Inu","30450221008fc62327dc3f243c2368064cada40a6daf73ad256ad358ffef370a103e07994f02207cbd4f17f3044fbc70dac8df9b311be12f1fe9b23849bc5c0ec43c349b25299e","0xA2b4C0Af19cC16a6CfAcCe81F192B024d625817D",!1,!1,null,null],["ethereum","kitco_gold","KGLD",18,"Kitco Gold","3044022026d51c2ded28f20bca8fd4ad62db81a411733c4bc2d730c636a61835d68a9e3f022071a6dcefac425fc8926a7ab37649aeeeaf9dc60f995625726f540cebd1d1ee63","0x76deF2112b2A5668782F6754640B982683EAcBCB",!1,!1,null,null],["ethereum","kitcoin","KTC",18,"Kitcoin","3045022100984dd67a7f5129d719fff91805a5fd0c7586cb2bbf4ecceb14861995b2564e1d022076bdb0f30495a9b22eb6424a0a98e1bf3209c231a5853941f00eebd362e7b430","0x9827F6E8Df0CcC584ff7b37144De8bac7c446385",!1,!1,null,null],["ethereum","kitsune_inu","KITSUNE",18,"Kitsune Inu","304402201bbbbdcfcae67bd5a9a666677b60774cfd3a57bef60e142ce81aa0277964071e022061ab0dc24fa588c3a9517f5a4146836b05c0fce5d114fc7285dfdd4b4c764c91","0xFB378115726a9Ab2E0DCCeBbe2d53Dc625Ae201b",!1,!1,null,null],["ethereum","kitsune_inu_0x6D6451","KITSU",18,"Kitsune Inu","304502210095ca2a70116e63bc96f64ddb251ddbf2b78f71e1672fe6c9555b13d4f856d53b02202375f796b2642042913d4031d8d0f70c6e0b8fd5de5cfc7ff669ccfa08f2dbfc","0x6D645193001e674e62aAa0eaC5d56E4D21BBCCeF",!1,!1,null,null],["ethereum","kittenfinance","KIF",18,"KittenFinance","3045022100d3b78cadfd21dfebd627fff4b21c0de15868852079f11426977fcfdaae6b53f602200ef9f342d43d5d7c344f4bebc9b5469bc60ef521dee5e0d3b93e138fae5e0db2","0x177BA0cac51bFC7eA24BAd39d81dcEFd59d74fAa",!1,!1,null,null],["ethereum","kittoken","KIT",18,"KitToken","3045022100b02334f61f197847eca25bfadbd1466add04adcd5db00125448582c34f599c4502206481c7131e32c2383c7ebcabaef69df210323c4e7b804ccf14bd301f84b4f1dc","0x080eB7238031F97Ff011e273D6CaD5ad0c2dE532",!0,!1,null,null],["ethereum","kiwi_token","KIWI",8,"KIWI Token","3045022100b0cf943714c53e32f7c7bf21edc17120048724d92ae0384e9644bcb8594420ea022015fe085a1e4f8d1c56b3564bc0a28e83f942849aff0006a56c00081a5540317c","0x2BF91c18Cd4AE9C2f2858ef9FE518180F7B5096D",!1,!1,null,null],["ethereum","klee_kai","KLEE",9,"Klee Kai","3045022100a48366a068d004244e859062c3f3b582f44b45ab1933d0bde10ff78c2bd92c6d022041ae9cef113a8bf3623b5927c147d439bf32bb55d8b25e6dbc7b442882cef16f","0x382f0160c24f5c515A19f155BAc14d479433A407",!1,!1,null,null],["ethereum","klon","KLON",18,"KLON","3045022100f4824c8c88b7a331d2a2309834e536a6f15e12737663bea21ab93a4505a19a8f02202a6c543df55ce224b0fb93e406a4ab1896a50d4cfa66c18f171ea8990505a54f","0xB97D5cF2864FB0D08b34a484FF48d5492B2324A0",!1,!1,null,null],["ethereum","klonx","KLONX",18,"KlonX","3045022100e734621127ea02a35d57a8f1aa04f2ac9bb91350a8e46da7ab997428bacd84b602207c01f648e45aaaa17ae238c5ce096ebfdfa41acff18335dae3aceaa84d7e8e29","0xbf15797BB5E47F6fB094A4abDB2cfC43F77179Ef",!1,!1,null,null],["ethereum","kmcc","KC",18,"KMCC","304402203e96d1df93b686472872cf637e0c194dbd360c0fdcaf45f9b478fc476ea361cf0220269c1550d6c019689fba926ebdb28b5266de55e8365b6dfc2448ed836db56c07","0x0D6DD9f68d24EC1d5fE2174f3EC8DAB52B52BaF5",!1,!1,null,null],["ethereum","knit_finance","KFT",18,"Knit Finance","3045022100b2a91d70f9572d5ed3e50f93216c4b0a9211f2288ab712b820575c83a3fb8a2302204448e5dad15bbd1d5c3be929ce0b01dca1e1e667d36d36d10c91e6b24c8adb52","0xEF53462838000184F35f7D991452e5f25110b207",!1,!1,null,null],["ethereum","knoxstertoken","FKX",18,"Knoxstertoken","304402206fe1095f079b4d207eebedafb9f69e7a585baa5f98eb30bd9e4fdfa4a8d6bbb9022044b0341377ffa54b07e3e55770566d1703fd7652b2ad9efe14bbccd0664dd24a","0x16484d73Ac08d2355F466d448D2b79D2039F6EBB",!1,!1,null,null],["ethereum","knoxstertoken_old","FKX",18,"Knoxstertoken (old)","3045022100a84a4de05d9345312d2448f0872fb3b963533649e48cdf366671f084797ed04d02207f36a56f0504765db381e023f034154157f4d4602812a96df981baee0e18c1d4","0x009e864923b49263c7F10D19B7f8Ab7a9A5AAd33",!0,!1,null,null],["ethereum","koacombat","KOACOMBAT",9,"KoaCombat","3045022100ccfbb640fbef78fa0b3be6803c7d41d96cec29cddaee45eba7179cfa3f2a8fd2022073dd689dbbe25795ccac2bbeba04defc17a27a4482c944ba0c73c1dd28655ce0","0x6769D86f9C430f5AC6d9c861a0173613F1C5544C",!0,!0,null,null],["ethereum","kodachi_token","KODACHI",18,"Kodachi Token","3045022100d190c6d3cc60a79a46361db6c3c71eabc5b4048bfe453b89d34aec81b8dcbb34022008ed90bc82b8007877fa5bf7d5676bba6b40c80e5a2945bebb2d9d620d20813e","0x57c411e9a358e2d2d0a6b058cEDb709175e8fd16",!1,!1,null,null],["ethereum","koinos","KOIN",8,"Koinos","304402206f8c38c6e2239975c66a447155e5e97618ac6eb2eba0546cf841fb78e7809002022028ef80a1ff572d602731ef7ce5379f77ecebd4d1ac369f723bf4775a0ee1827a","0x66d28cb58487a7609877550E1a34691810A6b9FC",!1,!1,null,null],["ethereum","koji","KOJI",18,"Koji","30440220355109795ee282b56d06cadb598f6cf8004acc0cb7131da7c7913d905878624a02205610a52405a9937e415af2594091e2f4e35a0d7e1b4a6e67a82e128d2e6fd132","0x1c8266A4369aF6d80Df2659Ba47B3c98f35cB8bE",!1,!1,null,null],["ethereum","kok_coin","KOK",18,"KOK Coin","3044022011dd4cb4b827e27129a57ebdb412b0a711a3deb24da183d74b33b1c0e57c3c02022034da2e9b594f2b728e738ece831b3259f27dae7a69fe3c820b9824c1565ffffb","0x9B9647431632AF44be02ddd22477Ed94d14AacAa",!1,!1,null,null],["ethereum","kokoswap_token","KOKO",18,"Kokoswap Token","3045022100fc4e489edd7c056b042482b5943fc56fb6d494e2739ca44d9bf4eb4ecd1afe1d02200d49b1252f11e5a86fad50e8a2c9a80775410628a45eb478ec23c81a5d57b4f0","0x7c3E3eAE4d893d11C61E74d5187C962Ba5744A3B",!1,!1,null,null],["ethereum","kolo_music","KOLO",6,"KOLO Music","304402203141691181fb4c5674f32d46d12f39584056723d74060d074af14cbee265f02a02201827835c41e19f2d349542c1c233c161d036c30220875f5f18a1299df19e493a","0xb274151f44D74C05E80C2D35f78D5430Ce9a8f3B",!0,!0,null,null],["ethereum","komet","KOMET",18,"Komet","3045022100c9e571a5624a9a55df80beb9e6499d25b410393776d084666e4eef2465a27ba402207ed6e235641067e99898d8839d780a5e9a18e782d093eb000cda36b2b2cf004d","0x6CfB6dF56BbdB00226AeFfCdb2CD1FE8Da1ABdA7",!1,!1,null,null],["ethereum","kompass","KOMP",18,"kompass","3045022100d0e056b67c69a9d1770f44190eafa3ec547a4d9cbb05c33e16cfc98bc22fc870022035bca58ceffa5cdfb9158ad8171545257b65451bcb611837c359f74d6e45f97e","0x41Bc0913ED789428E107C4eA9ED007815c5A8230",!1,!1,null,null],["ethereum","kompete_token","KOMPETE",10,"KOMPETE Token","304402205ff8259ba0051ce88f04d46c662669be0a53e0092baf3564f9450da783416d9b02200c33d43ae4f2d674af063a79ef70acfe2c788ecdec07c08f09bdfda7affad96c","0x1E0b2992079B620AA13A7c2E7c88D2e1E18E46E9",!0,!0,null,null],["ethereum","kong_land_alpha_citizenship","CITIZEN",18,"KONG Land Alpha Citizenship","30440220493bf7dbf9915ff3c8eb7b89d0863d536ff05d9f3c9adf2d827e6eeb77baf4f90220217263e887d7cf24f481250b196fd110760883e3428e34ab290deef06e15c7c7","0x77F0cc420dEa0aE726Db6Bef1460A4B69176A8Ea",!1,!1,null,null],["ethereum","kongdefi_finance","KONG",9,"kongdefi.finance","3044022019c02190bc6f0bebf83631afd2438e9032e637e11b0db88ea944048b962db3bf022053126ae0ae58ac6327c359aa7d624deed8acfbef4fa5ff4e18b63d299ecc3ec0","0x7C3CF2D43b50E78E27A81293a43fcAc45796fB54",!0,!1,null,null],["ethereum","konomi","KONO",18,"Konomi","30450221009cba2e1de4b3288a67c095bbf4525d9fa2b2c50cfb785e852eb92afcc8abccab02204c53bcf33a94b606ae00dd18cc68cb5e608fd5ab85c26886fd0706640981e5cf","0x850aAB69f0e0171A9a49dB8BE3E71351c8247Df4",!1,!1,null,null],["ethereum","kora_network_token","KNT",16,"Kora Network Token","3044022028a2f9764c9033ef83ecab5d986812329abac518bf27f5f499df4d9f717dd15a02206d6b25dc0df1cfcf3cbc10633fe167ac3de80495b8afb0f12da294a989247d75","0xfF5c25D2F40B47C4a37f989DE933E26562Ef0Ac0",!1,!1,null,null],["ethereum","korea_medical_tba","KMTBA",18,"Korea Medical TBA","3044022012e191c6f074b1c80ccc2689039a5f36ade055b3ae2381b3541a60f076d3fef4022006a3ad489e953c4c714f77d8223a2b52a4be2d0f4a06bd3b3db14b8998775d89","0x2BDD6c9bf1bf396a37501AAE53751B9946B503Da",!1,!1,null,null],["ethereum","koris","KRS",18,"Koris","3045022100d25d0be8bdf5f633dd83bb6be5501439430daf86e835bbc06b186cc831653d3d0220265cc33a6aa9bc9f33313bccc4ff1d54366837dfa66ca2c3cc75030ad7ef5bfa","0x229A569B673D908cee8920658AE7BCaD68e7d01D",!1,!1,null,null],["ethereum","kounotori","KTO",9,"Kounotori","3045022100a29cce2aa829573ee8a433b556cc98fcf27c96b2cfcb97a02a20212e84fe7bd80220394da3de91eb9cf37cf7f45b489f1df09bfd4a544f6fb570d45a33c50d1ab2ec","0x616ef40D55C0D2c506f4d6873Bda8090b79BF8fC",!1,!1,null,null],["ethereum","kper_network","KPER",18,"Kper.network","304402204e8530855a2a66e9f272183a1149e8d8df14a5b956a4de2d04142c09ba7b2c7f022048d7d83fc28fcf796f39c468081c3b5b29313fe4fd89a01c86ec5de915510005","0xc89B4a8a121Dd3E726fE7515e703936cF83e3350",!1,!1,null,null],["ethereum","kpop","KPOP",18,"KPOP","3045022100e1c2b5753db7e87e60251ae765ce135762291454a9628c01922c1bdcf47adb1902200087fd820996928a7d743198b64af71e42d37c8929f3160b5f2d81798a18550a","0x7B7983967409Fce461EA8bbDF9ED37631b1d59C9",!1,!1,null,null],["ethereum","kprcoin","KPR",18,"KPRCoin","3044022028635c30eedb34ea573ed7e4c50011ed4f4d2a219292ef33751e9e747c6058650220357bd576366ec5e3f777ffc55a3eba6aeb9e2a22ced50d601b6fc6a3b9830e20","0xb5C33F965C8899D255c34CDD2A3efA8AbCbB3DeA",!1,!1,null,null],["ethereum","kranz_token","KRZ",18,"Kranz Token","3044022044e15258d1791c05469b4791402dc744b0f98fe611ecd726c7977d155ec4e65202202ce7fd8d01ef0df98d8db7e4fb8527c50a7a936fc421957886b39eef77d32687","0xf54B304e2e4b28c7E46619D1A340F9b2B72383D7",!1,!1,null,null],["ethereum","krgtoken","KRG",18,"KRGToken","304402206cecfd128e125a402cd36c8da44048f974d5eb3d47666897e4876a9a4f73eec902207349d09f6b4918a313812b7fd49a5aa026c0771a66078dd56c1c1c2cc6e4dec7","0x32A8cD4D04D5F2e5De30AD73ef0A377eca2Fdd98",!1,!1,null,null],["ethereum","kriosgig_token","GIG",18,"KriosGIG Token","3045022100a2a35be860c10eb7551123bd653be83663d9dbf28fc87291cc8cffe2f47462ed0220249509e758e90226e79d38164edc1db3ad4fc83dec2a76276af480a3b58a93eb","0x838d8e11B160deC88Fe62BF0f743FB7000941e13",!1,!1,null,null],["ethereum","kripton","LPK",8,"Kripton","30450221009cea45e99fc1d3d998b3d6b7335c7f2b726baccba85270e378b3dda8ce5c9cfe022012ab5ecaca4fbc2099d0d8ea5e829bb5a003c8dbd0c5c7258b99870d5901ded6","0x2cc71c048A804Da930e28E93F3211dC03c702995",!1,!1,null,null],["ethereum","kromatika","KROM",18,"Kromatika","3045022100fab460e2349ba1d4ee846b21d28223e3b2bb0bb89741340dab9aac61c5d63b3f0220363f1bfe53b2fb4f48c4b04e80bf269f41a24d5fdc5e2ecbfae37dc787e07187","0x3af33bEF05C2dCb3C7288b77fe1C8d2AeBA4d789",!0,!0,null,null],["ethereum","kronn","KREX",8,"KRONN","3045022100ca8419c6afd110df9425f120e8e49b8551c552e78919fb2fef3d1d9fb096166c02201c7e2d8306709b1cc3384223954f99206d3b69334d28fdb59c84ea9fd792f6d3","0x9588Fc24a9796fBd870951A2CD54C6f1f24b2E7c",!1,!1,null,null],["ethereum","kryll","KRL",18,"Kryll","30440220316d180e4a9874c47d1778db91c031bd7350ebb90d51440a29d39b69acf3f82f02206b045ab12ee386c9abe04fff82cd1da43f869372cb35e78cb9ddf2b4391d794e","0x464eBE77c293E473B48cFe96dDCf88fcF7bFDAC0",!1,!1,null,null],["ethereum","krypton","KGC",18,"Krypton","3044022022c6b6372e4d7101c26261e614cb34ed29eecb4582092419cf2f3511acfaeed502200b31ba400fbdf4e48de384d080beeb45717dda1f04c8e2cb44076bb9f5386a2b","0xa8262Eb913FccEa4C3f77fc95b8b4043B384cFbB",!1,!1,null,null],["ethereum","kryxivia_coin","KXA",18,"Kryxivia Coin","3045022100eb16d49ee10c3321bfaeb38e88b779c3304cf33382086c70eb4b2394d29421e202204cae0edc362510c4db993efdd44f487c82216bfbbb9e3500143973c98640bf57","0x2223bF1D7c19EF7C06DAB88938EC7B85952cCd89",!1,!1,null,null],["ethereum","kskintoken","KSK",18,"KSKINToken","3045022100abfad8f008a82b8a8ee1c64e5f33ed4f05110b9ce94ba7e5523d314a20b2735a0220526b0909bea5ce955ce552a25df2151f6e5bef58755b799ac691ceb4aea433f5","0x44bBb689Aa13315Ea5D56EBdA2d263e53cb4b0B7",!1,!1,null,null],["ethereum","kstarcoin","KSC",18,"KStarCoin","3045022100b294fc08637890c0589b772a7940ec80860b88246163da3aadc820d60b3377cf02205ff841d16b0bad0f0b6fe2a771c367531b2f452af98abbff7c8c287bc6b5a71a","0x990E081A7B7d3Ccba26a2f49746A68CC4fF73280",!1,!1,null,null],["ethereum","kublaicoin","KUB",10,"kublaicoin","3045022100dd515a55a30e2dd91c8ef3be59fbfebf504265d78a46af6d5ff176c4d70c5742022048d4a680292081891825e2ecb294b32407fc7ac9edca4d46a687b5a104f4d1d9","0xc59cb23295e2DEEB66bd090ACB6B02BE8d30A11F",!1,!1,null,null],["ethereum","kubo_coin","KUBO",8,"KUBO COIN","3045022100a983ce5a23f6db9b6db52caf9c6eb7b012a42caf30b1180a41b8e3942110777a0220559fb6040bacbfa485ea3b2aee645406725981ddf26adb6c203b8ec2a834b274","0x4f76E85d067e219779A863ff18577846b3152F1F",!1,!1,null,null],["ethereum","kucoin_shares","KCS",6,"KuCoin Shares","304402201d1a861969e509cc5aaaabe28d30ed5738acd9d2472737de1d9baa3920e4557b022005dcefa16cfd67bd406c9470c314db9fe1367ed8f166548201345cd681b2d9f0","0x039B5649A59967e3e936D7471f9c3700100Ee1ab",!0,!1,null,null],["ethereum","kucoin_token","KCS",6,"KuCoin Token","30450221008a9b1622e643ec0a5adea2757ceddb94a91c28d711254eae1f038afd0ce2af3402204aa260e70b3222431dd31749411011134cc897ac125570a67bbdd5cbee2a35e7","0xf34960d9d60be18cC1D5Afc1A6F012A723a28811",!1,!1,null,null],["ethereum","kuende_token","KUE",18,"Kuende Token","304402207d28e4e019dff755583552357d425bc761fc99c380627fda9222576d15fd39ce0220219e3e7877be7199af7b85b5cbe01d7da6f2df9ef20bb15066b003859dfb87f0","0xdf1338FbAfe7aF1789151627B886781ba556eF9a",!1,!1,null,null],["ethereum","kuky_coin","KUKY",18,"Kuky Coin","3045022100cdb2dd1e93ff19bae618a101476f364c3f98fcdb24602fa8f9e95e7c918ee1aa022076115e828ee57ea917b4685ebed08c2953f8f9331865adb3d7c5e10c7fb6e527","0xE6b7743e2B9Aa2d0A9B163C4e69186ABb57817D9",!1,!1,null,null],["ethereum","kuma_inu","KUMA",18,"Kuma Inu","30450221009b258cf4e696cca7d532232a5d6ed8fbb64e7aa3abba3c271850fe34100a40d202200c03371efb44aa48567f3811194644a589f9e54975809bd1af6c68bf5869cc45","0x48C276e8d03813224bb1e55F953adB6d02FD3E02",!1,!1,null,null],["ethereum","kupp","KUPP",8,"KUPP","3045022100cb4c8f640bd93db3258106bae21a1885f661f5be400fb2d80338f0e79e5b82ce0220398961d68f04a0a20203fc0e965e50f21215fb871caf660fa59253d62a11b5fb","0xc6c6224Cf32F5B0850Ddf740B47cD1eD31AbeaD4",!1,!1,null,null],["ethereum","kush_finance","KSEED",18,"KUSH.FINANCE","3045022100d515e95af3f86bf14974c10458a13005f42872376c8333d99da4ab11ad0354d10220281bd9d8352cba4016a210ef1665dd459c2884329a3fdb7855cc5be33da2facc","0x3F09400313e83d53366147e3ea0e4e2279D80850",!1,!1,null,null],["ethereum","kuverit","KUV",18,"KUVERIT","304402205229211c9792f2a49b4d53547268bf2282282b945f727e5063dadd30c8b6af6002204057dd1d75aea13a45259c72ab79ed87ca9d0db4cf8714161bb16f1c1896a56b","0xF70d160102cF7a22c1E432d6928a9d625Db91170",!1,!1,null,null],["ethereum","kvichain","KVI",18,"KVIChain","3045022100f859a3fac16e57a1d15bc2300ebc35185c7f6dc0874715cfdd6182d223da172a022019f1d334a7337c736cef3ff74d95ae1dfd18065a47a6d340a3fbc0e7e54baf9b","0x8868ff4893113193313465A0Ccc5F1bd370D7751",!1,!1,null,null],["ethereum","kwikswap","KWIK",18,"Kwikswap","3045022100f0a41bf06801c18e68f308e700858192ad57ddf14b591a28b8cd8894b6bf93c6022067c3c9e5caebc0a4b810dfa5d2ee4f7a1b9a5f347207b5b59de82429ce42eec0","0x286C0936c7Eaf6651099Ab5DAb9ee5A6cB5d229D",!0,!1,null,null],["ethereum","kxusd","KXUSD",18,"KXUSD","304402200c5310bf4349cb79f73627e8c8236fd120afae8b6355fb7c9227d65a8ea57ce702203da37911c036e8356c54965e8aef6a7c3319f6ca526e06bc316402754c1679cf","0x43244C686a014C49D3D5B8c4b20b4e3faB0cbDA7",!1,!1,null,null],["ethereum","kyber_genesis","KGT",0,"Kyber Genesis","3045022100e2e4010291a3f6d90ecabcd0776d9c70157e2f222a08e2ee8b7e446d5ec2b75a0220593eda791f96c17397ef601e540faa61929c5bc176764c8cabd1ca5a081e59c0","0xfCe10CBf5171dc12c215BbCCa5DD75cbAEa72506",!1,!1,null,null],["ethereum","kyber_network_crystal_v2","KNC",18,"Kyber Network Crystal v2","3044022054f4169a8c4ab3c306eed4a88dc01182061d4386db17fefc2a9dca7af61a059002207719dd30959ad83007c1d32cd42b98950dbd867f4cfe3b38f08fc4d290dc84f8","0xdeFA4e8a7bcBA345F687a2f1456F5Edd9CE97202",!1,!1,null,null],["ethereum","kyber_network_old","KNC",18,"Kyber Network (old)","3044022019dc2d9cbff1bfe56c9a7e15632ed12d2fb249b0771702530f3355ffb8919f2202202ad703a970e0c8ef1eab056036e85d2bac14da8f490e27b3df89b8c42889d959","0xdd974D5C2e2928deA5F71b9825b8b646686BD200",!0,!1,null,null],["ethereum","kylin_network","KYL",18,"Kylin Network","304402206a5ce4e233c21dfc5c1e70b43df4e217f19da612ba2e7d9b45586df45ad5967e0220439bd50285b8ac8f2cf191453686bae75b4cb8b55f7df1e41bd5ffd3faae6a2c","0x67B6D479c7bB412C54e03dCA8E1Bc6740ce6b99C",!1,!1,null,null],["ethereum","labra","LABRA",9,"Labra","3045022100b3c8768e74d76249371bb185776858df76dcf9c2ab8aa86335f905ee1fb1b5ef02205124a5071c0ed5910efd878e65abe0c1625bd06a2b7b99788989089711d350f2","0x106d3C66d22D2DD0446df23D7F5960752994d600",!0,!1,null,null],["ethereum","labs_group","LABS",18,"LABS Group","304402200a454df012bd14a875c68a2cd2ce1985693cb4c3d913e05e7ca4b52347cffbab02201645890d108a11b678a9e731aebb86bf848472917465cb3e3583e1b09f0efd78","0x8b0E42F366bA502d787BB134478aDfAE966C8798",!1,!1,null,null],["ethereum","lady_luck","LUCK",18,"Lady Luck","3045022100e876ca69a301886327ecc27de191476957cd67d6a7c62cf4f03d9da08530ba1e022073f3866641d64e36c24b4741aeed5eb845cdb74607879092bab0ffa6542d3066","0x0955A73D014F0693aC7B53CFe77706dAb02b3ef9",!1,!1,null,null],["ethereum","ladz","LADZ",4,"LADZ","30450221008e66c95353737c0c7893945bd320ae2bf6ad3ed06628a4016808a68543b8dee1022078868914f37467b3434a82a7f934597961aaf30edcf70fc3ba135717438ad9a6","0x1287c0509df9a475Ef178471aB2132b9dfD312B3",!1,!1,null,null],["ethereum","laika","LAIKA",18,"LAIKA","3045022100e66daf8d1f471307f18998b40b33f3629352821a8aebe8239d9fc7b54a4d47720220478dcc63e39de083108a9ac32d6e98c63071eed2b721e6fe4856cdbe52068c53","0x77f9CF0bd8C500CfFdF420e72343893aeCC2EC0b",!1,!1,null,null],["ethereum","laikaprotocol","LAIKA",9,"LaikaProtocol","304402203004d4d7d6b8a206df672c535e4fa2b99c642ec650a7b792594416429e63c15802201835d0f6358c65ac20fa268ff1ea07d5cf381400be524f8cbcbbeb9f3897e459","0xCB58418Aa51Ba525aEF0FE474109C0354d844b7c",!0,!1,null,null],["ethereum","lala_world_token","LALA",18,"LALA World Token","3045022100edc46bbaecb133a8f8a054372deed437b2c95bc96f5157c034ecebd502be91fe02206b9835c2feb676b0cecbddcb1797c9a3dcc88637a934eb6db72f173e314252e0","0xfD107B473AB90e8Fbd89872144a3DC92C40Fa8C9",!1,!1,null,null],["ethereum","lambda","LAMB",18,"Lambda","3045022100b5aabc536581b58abb67b33a80b2ac780b027f36112d9002d52a056532a8381502207aef1735d6962b1c2509d7cb313b4b5c7e69c45a4f5942086ab3445ad51bfa05","0x8971f9fd7196e5cEE2C1032B50F656855af7Dd26",!1,!1,null,null],["ethereum","lamden_tau","TAU",18,"Lamden Tau","3045022100c62df5e62ac2a90ae06af251bf8c78738bd3335f44ae06a798b32d39145f8e1a022020edcc7b10c25c02df6ceeb48c22e7850d16222ce8b364aea646e4d5ee3f18ae","0xc27A2F05fa577a83BA0fDb4c38443c0718356501",!1,!1,null,null],["ethereum","lance_coin","LCE",8,"Lance Coin","3045022100fe667aa54acc30fc5eda0bd92bcfc0bcaaa12f97c31c84d17d41bb2f4d03992302206637186f8abf5dc8559defe445d1b5e78ff791cce9277ef1ea15ee70c4165e8a","0x2c644C3bBeA053ed95a6bC04A94C9CE928Ff9881",!1,!1,null,null],["ethereum","lancer_token","LNC",18,"Lancer Token","3045022100c28810afcb730a3a4e313bf88daac59d96e118b90d318f3140857ec625d44a410220637abfeb5e59404d3131ce941b4c854d829b62d90df32b6c913cf859d89954ca","0x63e634330A20150DbB61B15648bC73855d6CCF07",!0,!1,null,null],["ethereum","landbox","LAND",18,"LandBox","30440220690e194796ee00ea57e1fc0ed724036ce7a973fe87cc98db0e7e9b3e4014325e02204b9c3c5f61cf881281b99528019f4dd141540df13bcd96a2ec267701031f94f2","0x0e2ef8AeCB3c01Ad5D596f1B67134e178199984D",!1,!1,null,null],["ethereum","latam_cash","LMCH",18,"Latam Cash","3044022062d44325a885e1340d5370f64e40a86e2c44aa2fe90bc808b1382e7c1f71fe8f022037c105ad0f91724da10ae19e73b90978039d6bd44506415c1766b948ad1c341c","0x9205C049C231DdA51bAce0ba569f047E3E1e9979",!1,!1,null,null],["ethereum","latiumx","LATX",8,"LAtiumX","304402201913be99b1f91a41e277a6a8e46248e14b261d8ed1f17d76a37e7cda63b7a6cf02201dcb360121e704cf0cf4714c2095004c1a9d5c13fd7d92a76a0dfe357e0c08e4","0x2f85E502a988AF76f7ee6D83b7db8d6c0A823bf9",!1,!1,null,null],["ethereum","latoken","LA",18,"LATOKEN","30440220301268aa5f56c295e30bfeec69d3fd2e4278979f2507f4512a3ec9f8d9a3b13f02202c9a2d9ef0206abd17d1747dc86ee2826131785cf3a9f82956f726e82d4527ed","0xE50365f5D679CB98a1dd62D6F6e58e59321BcdDf",!1,!1,null,null],["ethereum","lattice_token","LTX",8,"Lattice Token","304402207b84e86d2d7448b1ac369e3bdea065f7ad736c221755372306ba9f56a34147790220407d84ca16335ec8d42819d09f196f8132c7df38ab9a803fc7a3befde89a7603","0xa393473d64d2F9F026B60b6Df7859A689715d092",!1,!1,null,null],["ethereum","launchpool_token","LPOOL",18,"Launchpool token","304402202e0dd33acacb667afb5ddcd1f231bf57e847320c893327ebfde46507aa5b251402204c08cdef8e0a71a7e9229c3003bc9e07a2d7448e63c2f0c8b604c18d8cbf1afe","0x6149C26Cd2f7b5CCdb32029aF817123F6E37Df5B",!1,!1,null,null],["ethereum","layer_2_index","LTI",18,"Layer 2 Index","3044022079f75d59812d9bbe4baaef001d6da8ba1983403579d3418ba99d93ba259de4a6022065ce10378b506fb52ba5ff1e53c641c69eea62af8622644697808a464a32960a","0x693391144D1e079e20cC64f795e9450C94966171",!0,!1,null,null],["ethereum","lbk","LBK",8,"LBK","3045022100e761bc8258ea5bd53c57f44eb6a38ee43aa18715548473d499066bbb175e88820220197abc18d411f711878d920137b8d357bc3271006b50f2ba1f927da1c35ddb18","0x9cB1AEaFcc8A9406632C5B084246Ea72f62d37b6",!1,!1,null,null],["ethereum","lcg_energy","LCG",18,"LCG Energy","304402202466521bf4a9f979f0f97034c4639850ba582a9097cfd323e1de7af7c26f691002200ef67e691aca52f1cb0cb546f1317724989bb356e729a54dc5a0266e33f29c9b","0x6e1A58e7E9e801f32bb82462636a8a2E7B65e036",!1,!1,null,null],["ethereum","lcms","LCMS",18,"LCMS","3044022055e31439c93446ed8d5ee3a2b74e5044076ba48fcb059f8d7a387e7812b59f6602201a6df33eb7da5695d02f73ef21fdaf7a4abfa7c3f2210e9fc817a3b10e0f81e1","0x86911B82BfA596e9377836838AC1f0d9AD4Ecc19",!1,!1,null,null],["ethereum","lcx","LCX",18,"LCX","3045022100fe04af995bf9283cd3e54ea676323d2e281ef3c71fe834216073944bbc66fd09022043078f716a3ed3ff3b9d826178578b0a5201622e372a8d7ed209f01bfa94e253","0x037A54AaB062628C9Bbae1FDB1583c195585fe41",!1,!1,null,null],["ethereum","lead_token","XPB",18,"Lead Token","3045022100a4eeb7e8a73f1de0f891d76a152609d0a038a38d0ba7cf54746ea1ed77deb7b402201051d34ab158269105c22a89445954b95b3895c3b1099ab369456abab2b63d0b","0xbC81BF5B3173BCCDBE62dba5f5b695522aD63559",!1,!0,null,null],["ethereum","leadcoin","LDC",18,"LEADCOIN","3044022014e7b9785c6cdbf0f54a28b779912a483c033ea46ce051fc5d54d4f70751a1cd022059ec2daf67ad1c4b248693780930670509194a7e28f8e0e2230c6e4f016f34e1","0x5102791cA02FC3595398400BFE0e33d7B6C82267",!1,!1,null,null],["ethereum","league_of_kingdoms_arena","LOKA",18,"League of Kingdoms Arena","3045022100cd62b916eb2b12e1bcb054542c07ac418c4a750383c75c5886dd3be5543deeb402200163d692ae7efdedd61a98aba82aa93818718c9ef610d30c1307b91e969f825c","0x61E90A50137E1F645c9eF4a0d3A4f01477738406",!1,!1,null,null],["ethereum","leap_token","LEAP",18,"LEAP Token","3044022060d0a6e2c00922f56b48480174be622363fc4a09b67fa344c27ce00b2d23158e022042428ef32cf661b2a375750328be77671b461c4161fc16f6cf92f9ba8062bf00","0x53263d9EF74Db583b15fbC6D5D4e8B83833fa134",!1,!1,null,null],["ethereum","ledgerscore","LED",18,"LedgerScore","3045022100da322efb6f0ddc4a5b31399857a892134c4e71a15c1e030b1ebabca52c5881c9022036f38f1cd8c16995445ef8631b7e7be6cabbeb16099a7a5de3aec2f18fa32cab","0x72De803b67B6AB05B61EFab2Efdcd414D16eBF6D",!0,!1,null,null],["ethereum","ledgis","LED",4,"Ledgis","304402204d93584dc6c0612e785f1dc1d22cb34b85b12445121c9150a4e83b801018c537022014d56b64c1bbb695d39b531e825a7a32c9809e91c3e8ac628da3afc8999ecb72","0x041A36b015486941Ce8d5f2C7ff2E88f97390640",!0,!1,null,null],["ethereum","ledgity","LTY",18,"Ledgity","3045022100a9218db950b778ee18f4e9e8c85c73b93185600b749c7112993c96042a579e7f02203f7a0f5cff20b7403bdf41bd0a9b917e9eec828ab32bfc9af1fae8cf2ab4ed86","0x85Ffb35957203dfD12061eAeCD708dB623Bd567C",!1,!1,null,null],["ethereum","ledu_(old)","LEDU",8,"LEDU (old)","3045022100cc2bd12b3b9599a90dbb0586714f6987c5ae75f2b459c5be69ecf2bb72d476ae02202e635e9af11f705c64ad6e2ad746172f67065de50e54d40d1fd909e8eaa61fca","0x5b26C5D0772E5bbaC8b3182AE9a13f9BB2D03765",!0,!0,null,null],["ethereum","legal_block_token","LBK",18,"Legal Block Token","3044022005dafad6417bc3444a324afc2c3a0f494fead63a83fbb7de52ec5e36d854c87d02203ff269eebc375f5e2745b3a7a0e4126609db46229a3f613ba2a126bf6a17b8aa","0xd9af2d11d788da0097076f4Eb21bd1C5533743D9",!0,!1,null,null],["ethereum","legends","LGD",8,"Legends","30450221008592b18347dbb0c3c5473bcd6936fd999c78434bf874ab4ef8418a5bce3a7b0c022015a19501d7b361b69d56baa93d576f6af7fdbfb4727dec161c382368d8774ca4","0x59061b6f26BB4A9cE5828A19d35CFD5A4B80F056",!1,!1,null,null],["ethereum","leisuremeta","LM",18,"LeisureMeta","30450221009207666b70bd35edbba80854bd14e27b7330d86cbb9806c6507fce562b89eb9202203d5d63c479b7f9cf44e1e2504e36c98a51496ba5ca0dea0411b0f9cbf5784c50","0x7BEC98609cB6378D6F995e8f8097Ee78376fbec9",!1,!1,null,null],["ethereum","lemo","LEMO",18,"Lemo","3045022100b4fc406491d32bcf9505f9d3e5cfd8ed4854f47bb9b0afba5537665dd0c5c8ff0220606e5117e38fbf09e7c264689ca39d68f4577500f6100759c547c0a80600af11","0x60C24407d01782C2175D32fe7C8921ed732371D1",!1,!1,null,null],["ethereum","lemon_bet","LBET",18,"Lemon Bet","3045022100c41cf71db10e2237c4c63a3fb94d6c5ad6d4ae78abbc5e65046ece747326b4bb022067dd6a33404faa1f599bd8deeefb3965be67514484455240946670549d172269","0x932d447274dCFfB4Aea4f0944d3C804e88056416",!1,!1,null,null],["ethereum","lemond_money","LEMD",18,"lemond.money","3044022021e7793b2156a657cdc66686b9b99a51701fff2827015ad0f2a1042c64bad76e02202492c7ce00fc89290b85b6ac93d63321140d9a4a7df50f06c928a20f378cf4b0","0xf45f6c8bB3d77eA762175b8f7ca4D251941649fA",!1,!1,null,null],["ethereum","lendconnect","LCT",18,"LendConnect","3045022100f0cd7e7bd2818b09dd339614958c6312e1568cf62ce0a79c51d845970eede50202200e8740b946da71eb12238fa2e415644f35d702f6dc232a6e704796fee87c0792","0x05C7065d644096a4E4C3FE24AF86e36dE021074b",!1,!1,null,null],["ethereum","lendingblock","LND",18,"Lendingblock","3044022009e5de41c18cb406754c7f1e2321737395e597706444ceddd27501342438f6bd022036af5e082da3b5557fdd0c062f9aa184de1c4164479d59283839ff0fa4e597ba","0x0947b0e6D821378805c9598291385CE7c791A6B2",!1,!1,null,null],["ethereum","lendroid_support_token","LST",18,"Lendroid Support Token","304402207964d72b976095b4b9910e7410f25f6c12166531f1f79666a5785a489726347302202e0e8024d33f06d3d0f896e4f55c17807e768eec65e3ea851a867d088abc57c6","0x4de2573e27E648607B50e1Cfff921A33E4A34405",!0,!1,null,null],["ethereum","lenrcoin","LNR",3,"LENRCoin","304402201bff56f6f8274be9658295ca63b6be3f1173e8388473f906c2d9206bdf36d7b702201312d2a2d7620a8cb78f4fd2958038a3e00ac23b6ab6163ccfd9894f6d7689d5","0x2CcDCFE7cC79174417480463ed429e7E48fd8341",!0,!0,null,null],["ethereum","leo_token","LEO",18,"Leo Token","3045022100d065ca5b1003a6eefb6ab83d9a83289920fbb7336bf98391ca677e010f8f17dc02202e8a0eb6b0aa1c1e9ce9c719c7de6b6f1c2879ca79ef05784d0c25248d77767a","0x2AF5D2aD76741191D15Dfe7bF6aC92d4Bd912Ca3",!1,!1,null,null],["ethereum","leobear","LEOBEAR",18,"LEOBEAR","304402204128f7a533fe69d3d3afcec3c71353bed52b1361ceb61288a5305ef0ddd69cdf0220078757fc743edbcaf3c2c0b28f9362ce2ac7b9a54b567552b2c9e41c3a60ad89","0x3c955e35b6da1fF623D38D750c85b3Aed89A10c1",!0,!0,null,null],["ethereum","leobull","LEOBULL",18,"LEOBULL","3045022100d9eb549f4f7b7937ef74d8e567b86c7683267d2e78d1f4ef3de2a6dd1ed55602022052e9ef3fd58e51564ad6532205d2cf9c66ba04b2c3e935d470a2040bba2f0e83","0xC2685307Ef2B8842fbf3DeF432408C46Bd0420fd",!0,!0,null,null],["ethereum","leocoin","LEO",18,"LEOcoin","3045022100c00cc357112f971b1885a683becd3f3e9651d081041b2b5b32b37bff4a6a360302203988ae4caa8c531076b27b0c748a634c2dfd388a932aad5e09e7b5141ddad20c","0xf97b5d65Da6b0468b90D531ddae2a69843e6797d",!0,!1,null,null],["ethereum","leohedge","LEOHEDGE",18,"LEOHEDGE","30440220022d9a2b70b7680c6df8f92031882121b1568512332285f64b652861598b4f2902203d8345e0652ca4e69f6e294962da5ace389031436aae6f1a989035093065a31f","0xD83c5c357969628272DEf87DcdB5B66352dFD794",!0,!0,null,null],["ethereum","lepricon","L3P",18,"Lepricon","3045022100992e6c6c866b9d196cc1954a28adf3a8f5f4309ec9bc0c7af4474e23c5dcf67d02202d3298f6bfc6c05ae66e3240fbf393fb59727a75332dfcebe86fcfacf5f1855f","0xdeF1da03061DDd2A5Ef6c59220C135dec623116d",!0,!1,null,null],["ethereum","lesstoken","LESS",18,"LessToken","30450221008b99e68e02e07a6b9be24fae69ff3907986ddedf0bb0545f95e01af140de4ece022033b3188bf4d8df47f8a7bb25f84635b8ba82852a9fc5f0142e669a42c413d5c4","0x62786Eeacc9246b4018e0146cb7a3efeACD9459D",!1,!1,null,null],["ethereum","level01_token","LVX",18,"Level01 Token","304402206c8ab7e8bd77ca6013dbf46a480949ae04c089c1d7192b3b79b47002957e87cb02203f8114c3e3853cda02a873ccf2e91f7c2f527ec5fea6be8d09abfdc31e804743","0x261638EC8ee8100484130EBD2fEBfDAdC0D8742a",!1,!1,null,null],["ethereum","levelapp_token","LVL",8,"LevelApp Token","3044022052f96e5fc3e9f099bbff184ff5c1a17cf65926848c4b90618ae83d4cf096da1302207dd41ee7094358a3dd8d926a396241806424d23f2bddaabf1d006184ab06a2fa","0xa8EdA9D4Aee0eb882F8752C6bA7e16d9233C9Ad2",!1,!1,null,null],["ethereum","lever","LEVER",18,"Lever","3045022100e11b4998b41a4dc8b36686617a6eb0d19918214dc58a3000433f94115d5ece8d02204d66a8cf914e215a343d29f846af5655ec79ee59d1c3a40cedf0513b13baf9be","0x4B5f49487ea7B3609b1aD05459BE420548789f1f",!1,!1,null,null],["ethereum","lever_token","LEV",18,"Lever Token","3044022008ba44643f6e13c1e7ab545c6aee09dc4b6799b3b750f2f9a06ecbf1ce1086a3022012f1f4a2151d4fb1d7ee5195f5bf5cb350ed491e124aabd870b199eed144cc52","0xbc194e6f748a222754C3E8b9946922c09E7d4e91",!1,!1,null,null],["ethereum","leverj_","LEV",9,"Leverj (old)","3044022011ed27cbc45036fea356117f968814e7d1e90699cda139fefc28e0e0d47af93102204b30af5d24e6a7f95d6dfbcf8626a08d73add85b7ec7aaf14aa036ddd937d4f9","0x0F4CA92660Efad97a9a70CB0fe969c755439772C",!0,!0,null,null],["ethereum","leverj_gluon","L2",18,"Leverj Gluon","3044022068f332e00c64057a0581c26bd8c7c9063a31e9aceefdc6aa397f6d92ecec052602203ba12ec88da7e3ac0542462694a4a696cba9754cfafb7b177bf1c315dee25ce9","0xBbff34E47E559ef680067a6B1c980639EEb64D24",!0,!0,null,null],["ethereum","levolution_io_token","LEVL",18,"Levolution.io Token","304402203de04a3506a438943824a102222aa717aa1371c808f62a2b3ca4739f1a65df17022037fc8279f339ee416bf7817f58c4c4af6a48e40ab7ef04d1969f1054f89b4bb0","0x09970aec766b6f3223aCA9111555E99DC50Ff13a",!1,!1,null,null],["ethereum","lg","LG",18,"LG","3044022065e8462dc00c8de943ef533d0610776886a933b90ac46aa72bdc23caeb8c383b02207f12df2fb37ab9e8ad4e6f3093a0e2c81a636cb179b74d7020ba76b8f7dccdbe","0xc520F3Ac303a107D8F4B08b326B6ea66A4f961cd",!1,!1,null,null],["ethereum","lgcy_network","LGCY",18,"LGCY Network","3045022100eb1143e37a23372d0612a91a7cf4adbaab4370a3d5198fdfc74094aa35043c3b02201d3218a987475a4b3b2f4c374dc7cb66d11ccbe1899639af83bf458ce6288706","0xaE697F994Fc5eBC000F8e22EbFfeE04612f98A0d",!1,!1,null,null],["ethereum","lgo","LGO",8,"LGO","3045022100937e7c8d4f5b26c33243120c1cb6844f559f628a1282fbcbf271ce3fd1f9869702206a90461ae55004d9146123bee83dde9d279322fbb644821cbd3931fd5bb21bb8","0x123aB195DD38B1b40510d467a6a359b201af056f",!0,!0,null,null],["ethereum","lgo_token","LGO",8,"LGO Token","3045022100c8d70043eacdcb455b8f5565b284200fd230c07ccd4bcf3f194c966fb33a9290022062c7af5fa612a82ff2b7adc61de0936cd1d172388ae064b4b13d1e64c8b75dbe","0x0a50C93c762fDD6E56D86215C24AaAD43aB629aa",!1,!1,null,null],["ethereum","lhcoin","LHC",8,"LHCoin","3044022053cd6d7da39d0f55de029f3002e16d2e4eac49f893356d9018e198588711cb2802202be635319f7e7db6d90c8263d3581f0afb5e31656a9b6a7ff42d639d262124a3","0x0778Cc2E8bBAd3d483E82371606D100cc8604522",!1,!1,null,null],["ethereum","libartysharetoken","LST",18,"libartysharetoken","3044022063e2f1ed8ea39118369d8d5cde0eea5253fd4bc8629034b2f8d93b5f5a27ab2d02202a778c9bee0ee0db8cada14a640ee5c3396a6cc2b40281bcd0be236866936259","0x355376d6471E09A4FfCA8790F50DA625630c5270",!0,!1,null,null],["ethereum","libcoin","LIB",18,"Libcoin","3045022100ef1aa9161728186f1d7c7f7f1f2532d24c63b59753b45d77778268b8114cc5310220381d8adfad129a73d2afe1e99931cab7b87e8562fe0ea0a4fa27e27f379c2ed0","0x195E1d3CdaE91B17FDF7F5276ADDF258ED9aFbc4",!0,!0,null,null],["ethereum","libera","LIB",18,"Libera","3045022100d6ccd45ce76207649691549bcbb5f0a7223739af4d04f70d6e9d968830716cd80220434cb00b9e7cc4a7fec4bd4640d4f0138af552e78907e6bf85a1c2ff895f711d","0x0bf6261297198D91D4FA460242C69232146A5703",!0,!1,null,null],["ethereum","libereum","LIBER",18,"Libereum","3045022100bc1a10e12a8b5fa0bad467297d0dffdb696679d1cace7778f910a888c9cbaf600220240921519d2dbf3a0d547566afcee50c5d12cac7ca5e6f38a6f3ec3b7c77714d","0xE6DfBF1FAcA95036B8E76e1Fb28933D025B76Cc0",!1,!1,null,null],["ethereum","libero_financial_freedom","LIBERO",18,"Libero Financial Freedom","30450221009a212441383915ef65b5733c13ea1c310c08b1098ed83cb41f130b683c92b1fe02201854d3bbe91512e5e5c7f2c0fb12b5abfed82d91377f48bf963050b0f3b572cf","0x0DFCb45EAE071B3b846E220560Bbcdd958414d78",!1,!1,null,null],["ethereum","libertas","LIBERTAS",2,"LIBERTAS","3045022100cbce9ac0fc8d572cd0be6193591bc27e4d72bafb5b0e79bfb5b91f86f0b10b3002202cfeae865c535572a5b0a70774539ffb109e9ef16dedddaf254528677f193cd3","0x49184E6dAe8C8ecD89d8Bdc1B950c597b8167c90",!1,!1,null,null],["ethereum","libfx","LIBFX",18,"Libfx","304402201054728146d93b9c217d06fe032ed130c0a863d5c631ae63b9316c6ecfb08f1602203e554f766fe421f1a03f99cfb3160f644cebb57b568b6388e8b2588211d1afec","0xc0ea83113038987d974FE667831a36E442e661E7",!1,!1,null,null],["ethereum","libratoken","LBA",18,"Cred","3045022100dfb63bff70312434811d2abea0dd90a2d112223ede097c65aa9092d4213e55ad022019fb0ad29211b661063f21e36a72e343a7e1787943dd74aff655ca562893e674","0xfe5F141Bf94fE84bC28deD0AB966c16B17490657",!0,!1,null,null],["ethereum","librefreelencer","LIBREF",18,"LibreFreelencer","3044022005c03a9f47d806d00c7d2bba7a791efacdbf6d0fc1d5361ade41e426a58afa0702206e9d37d8c7b552147135d4a56bed1b27479563f502257254d3305aa5565d26fa","0x449efE48ad7cD423BAB056276639f8120cd4F9a3",!1,!1,null,null],["ethereum","lido_dao_token","LDO",18,"Lido DAO Token","304502210090dc5084928229b6edf2b281a09bd9f98a4601b8da5026b39ddef2025521911d02205620d21b17879cf0cde90aa509dfd711c8c642c7b52108c29b8adafd578fbb39","0x5A98FcBEA516Cf06857215779Fd812CA3beF1B32",!1,!1,null,null],["ethereum","lien","LIEN",8,"Lien","3045022100dc8d0888be6039262419452b21d0f765144d70e27bbd4ce55dcdb1e08758ea1a022077ad50011bc36985c5e088a23b592cff5bb89616b1025ece9768c05a67f6fdc4","0xaB37e1358b639Fd877f015027Bb62d3ddAa7557E",!1,!1,null,null],["ethereum","life","LIFE",18,"LIFE","3045022100b3d07c69b1f198f9951e3a7e5d2634071db598e4804a8727bc7010b6883c8fb602207baa93df455bfea9788acfc1542f0b335f9c214a794dce4b5de68659680e9e7f","0xfF18DBc487b4c2E3222d115952bABfDa8BA52F5F",!0,!1,null,null],["ethereum","life_crypto","LIFE",18,"Life Crypto","3044022033a327d7a83203ff3ce6f7f5d0d048b6f8da3cf76d11697c16a09d937d9af48a0220152de4e8a54bf249b9826b4cd056b6a30c3e1fc597933c0da225d63b0b925c57","0x6c936D4AE98E6d2172dB18c16C4b601C99918EE6",!1,!1,null,null],["ethereum","liferun_coin","LFR",5,"LifeRun Coin","3045022100d526cbc581b39b31d4731dee282f8c90ba78bdb66639e6dfc09d98705e76a1280220636bd483e2788b60e517d061c7d03f1fdec3fb5d17507b58a0c6b3a00d0b0589","0xc798cd1c49db0E297312E4c682752668CE1dB2AD",!1,!1,null,null],["ethereum","lift_kitchen","LIFT",18,"LIFT.Kitchen","3045022100e8021d22fedcda5d16474ceae9ed71f15113da4b76a54713902b7f57e557cdd102202a0a16506a0576fab5d40f8a300dffec0518bf4d0b7e1c658808c9313faf7976","0xf9209d900f7ad1DC45376a2caA61c78f6dEA53B6",!1,!1,null,null],["ethereum","lift_kitchen_btc","LFBTC",18,"Lift.Kitchen BTC","3044022019a76442ebe36f5d9565e2eb0b4457137562ab21420e2966c199441f63f5132202205c3678a300f8326f466e26b4d64f9dc9a4b779e5e015f95d86fb8e8aadb7f980","0xafcE9B78D409bF74980CACF610AFB851BF02F257",!1,!1,null,null],["ethereum","lift_kitchen_eth","LFETH",18,"Lift.Kitchen ETH","3045022100c45182026736abdce2900d79c7381161f2cbd28e3e63ee58f6e92d7381dec563022013d232786269a33a3922f3477f0b8714fb6c571f9a2a0356ea02f1956a6f3d23","0xE09B10EFA59F6E17052E9A2D947bAd6214E7CC90",!1,!1,null,null],["ethereum","liftoken","LIF",18,"LifToken","3044022055c674cb66eab877c203410b05eb0b129371100f3fdf876f664a8386d82bb2180220638cb9e17ca4bd6e2c85239e5809895b70175b152ea445878b78c1a6dc3f39f9","0x9C38688E5ACB9eD6049c8502650db5Ac8Ef96465",!1,!1,null,null],["ethereum","light_beams","BEAM",18,"Light Beams","3045022100e63de6450d33ec8e25d6648df22434340223606971a97eac9abd337a9827b6fa022066114fb91c2dee1b5fc1d2e1e0083ede3ae52922d8c3464094639748fd4666ff","0xcD9b72f6E971026ea8609D2918C7BD02e1653945",!1,!1,null,null],["ethereum","likecoin","LIKE",18,"LikeCoin","3045022100b37675569ff80d43155d9aa892ec15fd8c203b933535bcf2cec257172abfa6ed02201ddc2fd38ea2def3b8a3411d7e0143a342667effe0d53e2b349da16a46231f7b","0x02F61Fd266DA6E8B102D4121f5CE7b992640CF98",!1,!1,null,null],["ethereum","lilly_finance","LY",9,"Lilly Finance","30440220642d90cb91f5d6c193c734e1e33ed6287a77698ec0d99535ccaa79988d9460ce022001b8e29b630f07ca8fbb8c7e9792f623fc7993f7aa560d717bb2d718309aeb2b","0x8686525d6627A25C68De82c228448f43c97999F2",!1,!1,null,null],["ethereum","limestone","LIMEX",8,"Limestone","3045022100db052cc5303df272884709dffe8cd9e1ea687b0bb1607b4a989d902ea59e4c1102206083290789ede851af9a724daf252a17143613a582c82c4d2447e493f2515ba5","0x400b1d8a7dd8C471026B2c8CBe1062b27d120538",!1,!1,null,null],["ethereum","limitswap","LIMIT",18,"LimitSwap","304402201e93c5b4623095525f9fe05da48fc9c5fe935c099c0216fc417536ee750df8c50220791daa12cd2a5af85d8500ca091482ee81eca35f97941ee1127afe83e8d34030","0x1712Aad2C773ee04bdC9114b32163c058321CD85",!1,!1,null,null],["ethereum","lina","LINA",18,"LINA","3044022003df00327d8ada696ac3bfd446f2e3c9ab9444062c7c92134c275bd33aec1323022014380584130de6ab555a475ce00a13fd6885efd8f9969934a44e115f97d26a95","0xC05d14442A510De4D3d71a3d316585aA0CE32b50",!0,!1,null,null],["ethereum","linear_token","LINA",18,"Linear Token","3045022100b96d972a5c35638bcfc94a40939ea84c9858c0813a7d35d639be08051e464b7202206ee871a833b903c044f6f350489ec6ac55dfdaadbba4a0071b71f63e59a128f7","0x3E9BC21C9b189C09dF3eF1B824798658d5011937",!1,!1,null,null],["ethereum","linfinity","LFT",18,"Linfinity","30440220579d9f2098a3f63fea67eab191c98f7c3c8edda23243c86ffbca724b3bae228f022042fcf7ba6559707bce82e37a23219846baa8c758d936272091f59d957c72778e","0xe0c8087CE1a17bdd5D6c12eb52F8d7efF7791987",!1,!1,null,null],["ethereum","link_chainlink","LINK",18,"LINK Chainlink","30440220651bded883b8b185a2608450206aec79f9a8845406735f57b2a77c559fdb519202202162d372e209c04b03743367b3904628bd8f64b180f13cfb1e7df1600606dd72","0x514910771AF9Ca656af840dff83E8264EcF986CA",!1,!1,null,null],["ethereum","link_platform","LINK",18,"Link Platform","3045022100d33913d40dfd303d9ea39ab42e688a06e37f3713c2456bcb5ddd8452ce4f92160220154feae9000dc6354749c80f290f0a4fbf04d86435c6f73180052c74893f6749","0xE2E6D4BE086c6938B53B22144855eef674281639",!0,!1,null,null],["ethereum","link_profit_taker_set","LINKPT",18,"LINK Profit Taker Set","304402207d5f7136d99708284c8057fca3ceaf8b570e83a2f0b235a9f78a20449878c85e022064248d1b95b59ad33864b50098204ba4f6922aeed24c3bf8f6eb4503af97fc8a","0x78E29d35573beA6265aEDfCb9F45481B717EBFdE",!1,!1,null,null],["ethereum","link_rsi_crossover_set","LINKRSICO",18,"LINK RSI Crossover Set","30440220718ed6b350cd673392d63930d36b1a3adce3b80e69715cf8edc74e0f1549680c02206bf6ce8b65ef779332d47124694f4e244e2de612925cf1caf48fcea084cc3b1a","0x0329d23fC7B1b1e6Cca57aFA3F0090F1189069e8",!1,!1,null,null],["ethereum","linkart","LAR",18,"Linkart","3044022036fe590a8fe53e3475dbeb8b3aa14ed4e184acd593db6e0a8b40b999a936d87f02202ffef10f65ecdd03c93d4401885a278eae548f03b0c7b376d63b56ed374ec1aa","0x6226caA1857AFBc6DFB6ca66071Eb241228031A1",!1,!1,null,null],["ethereum","linkatoken","LINKA",18,"LinkaToken","3044022078cbd9cef1031e7dc658e5ed35ecf9acee5a94578f2c3525e393e1d447a24d6d022027982a1b11a1065d79261bfe8c8f1a338f902aa0f9377897d2791cc84658bf1e","0x578B49C45961f98d8DF92854b53F1641AF0A5036",!1,!1,null,null],["ethereum","linkbased","LBD",9,"Linkbased","3045022100d04a89a6b38617efa83d6bf54d3112a22ebd63e07b95e9f10a8a15c74c22a3fb022034346a1f2c6832a92a4375335740148a793c48eedf22a4d2df3c36d199c707f5","0xb15AE165000c8D7B69D2a82e425E110668C73ad5",!1,!1,null,null],["ethereum","linkbear","LINKBEAR",18,"LINKBEAR","3045022100bd2b47a218b2bd466f238f87c3d848ccd68787f8235c42f4b139a534f3b10ce4022074504485e76e9360f06bf73d4d7e778e3fcdeef89bad34b24561ba3dd65f8cef","0xa209Ba34C01A2713a4453A656630cc9De8A362Bc",!0,!0,null,null],["ethereum","linkbull","LINKBULL",18,"LINKBULL","304402202e118c707727b18ba79e29fd18f996c79985ca0a9fa42ec5da3e9742affa293702204ae180c5f8c12e410f1a445a1ad14224c195b13e8c4dd6117c86d39d7815142e","0x83aD87C988aC0c6277C0c6234Cc8108b20bB5d9B",!0,!0,null,null],["ethereum","linkcoin_token","LKN",18,"LinkCoin Token","3045022100e9dd40abc182d24d04697950a5507b74393492e1af98dae6bd7330fa0f355951022026d69f0537ce2a9c88609c4da0132f7ad67f09b726795f090917985982033862","0x9f549ebFD4974cD4eD4A1550D40394B44A7382AA",!1,!1,null,null],["ethereum","linker_coin","LNC",18,"Linker Coin","3045022100cca94976bdde7a864d8fb16529adef74dbaac2d904584f35392d5496ee16a4e9022076fde35cdfaa727359f6691a37c5ef7b2d1386968ff94db3d4b467bb680c0991","0x6BEB418Fc6E1958204aC8baddCf109B8E9694966",!1,!1,null,null],["ethereum","linketh_growth_alpha_set","LEGA",18,"LINKETH Growth Alpha Set","304402201fd51d165a2b5153b3f7b66fde19dc8365aece60738524d2476edddf84eb95100220739019853a56d5bd5117b1a58e1c615c4cdf7f18ebfb3cb6eb2899042114d5e1","0xC166F976ce9926A3205b145Af104eB0E4b38b5C0",!1,!1,null,null],["ethereum","linketh_rsi_ratio_trading","LINKETH",18,"LINKETH RSI Ratio Trading","3044022071897d17df50704175bf3d4306a01c7d149adbc9499d3ae4f86eb9a20dd3673c02205fb5460adabd456739caa2b6f0d7fcdffc07c3d6ada9e3c85e8f73895b1c30c6","0x8933ea1Ce67B946BdF2436cE860fFBb53Ce814d2",!1,!1,null,null],["ethereum","linkey_token","LKY",18,"Linkey Token","3045022100e9978cefa1723a81c3227039605ddbb7704be1114e8481a7550943f22e2f941d022002c8e5056cc9f897b3eab247f0b145850579c97dcc5dc0693d8352d492588c86","0x49bD2DA75b1F7AF1E4dFd6b1125FEcDe59dBec58",!1,!1,null,null],["ethereum","linkeye_token","LET",6,"LinkEye Token","3045022100c7345a91d9fb0e808d7c1e7103b7fea6ac404ade35ba330c9d7230703e48412a02206a191e708f5974f9d569705d820b913cbcab966ab3e9ddb9dd9c8bcd6e32e15c","0xFA3118B34522580c35Ae27F6cf52da1dBb756288",!1,!1,null,null],["ethereum","linkflow","LF",18,"LinkFlow","304402205fe0237ce7ca9107344f124ef1b60c2468926a4c84c20e4b12c7426169b31047022040e8033d67d31160c83fe579cfd32bafff7b55ae103a279be483a8cb4c196462","0x88665A7556E1B3C939D6661248116886845249a8",!1,!1,null,null],["ethereum","linkpool","LPL",18,"LinkPool","304502210092fb1f328986321ac846337e260701851b07167648a1e9b3867190fd9207dee602205d2e6cea917dce4e1584f0d0a12b20b15408aa6cae218730ae2d26154d0c1ef4","0x99295f1141d58A99e939F7bE6BBe734916a875B8",!1,!1,null,null],["ethereum","linkusd","LINKUSD",18,"LINKUSD","304402206f52a5a300a5a332c9ae8bfa40504a4d3be9385a6afd16383845422fefa0780602200b15b49e205e2c6c0ca483369d44f97687c15bc7afa72a564b2c91e8049251fa","0x0E2EC54fC0B509F445631Bf4b91AB8168230C752",!0,!1,null,null],["ethereum","lioncoin","LION",18,"LionCoin","3044022078e222b8544da3979251dd926f7d034e310ccc7394f3bbedc66fa709a802a073022016a1ff69bbc8cbfd82859f9d130314db460edfe4730f365e8cee675863f344e9","0x2167FB82309CF76513E83B25123f8b0559d6b48f",!1,!1,null,null],["ethereum","liquid","LIQ",18,"Liquid","3045022100bd20ab5cf3d860b3c9acbf3910ff3ad95ee39cb178d9cc1a9c336e4b1e7dd0d9022004d235924c64db8bed5edb955a490f3ccd70a245e7ce97a8e238cdf370b3b7f3","0x72CA0501427BB8f089c1c4F767cb17d017e803a9",!1,!1,null,null],["ethereum","liquid_lottery_rtc","LIQLO",18,"Liquid Lottery RTC","304402207662751c7c722ad927eb89b66db7afc454bcabe30ad2b26a6a651a66b7946490022001b65caa5861d1a4f2ef10ea1edf4b3a760f784ad8b1f86c7726bcafb1ce3365","0x59AD6061A0be82155E7aCcE9F0C37Bf59F9c1e3C",!1,!1,null,null],["ethereum","liquid_metal","METL",18,"Liquid Metal","304502210095daa03af38efd11a1f2fba54883c72df5fc1ef4343a87c3ebf7396d6adcbe83022070b7876896439f8e9115ced92c94db7be5e3e6d56d154f80a44225a9d722b91b","0xFcbE615dEf610E806BB64427574A2c5c1fB55510",!0,!0,null,null],["ethereum","liquid_staking_matic","MATICX",18,"Liquid Staking Matic","304402207c261298b1b53b8e4975ee2092bd7a38c378eb00bb65045e6197a9b5c930fc15022023d03ca37bceb954cb5df828dd4648933638cde29c86cfe94e4ee6d0bbcd5021","0xf03A7Eb46d01d9EcAA104558C732Cf82f6B6B645",!1,!1,null,null],["ethereum","liquidity_dividends_protocol","LID",18,"Liquidity Dividends Protocol","3045022100f3b39c79b4b449e71ff2beb8969101cca79b0cc4573929989116b8ca81bf866f022031734a541e63853493546ddaa26d78f46a4fc1adc6855a8cd74e5f14f4a836ad","0x0417912b3a7AF768051765040A55BB0925D4DDcF",!0,!1,null,null],["ethereum","liquidity_network_token","LQD",18,"Liquidity Network Token","3044022066c4b8376679c56967f000d873714e3866295ad3e3d4f40e53fd71f2440b6fa302205b71279599a292c0c95b3df684490ffebf6cc9affb990daf36b12e0efc69bbf2","0xD29F0b5b3F50b07Fe9a9511F7d86F4f4bAc3f8c4",!1,!1,null,null],["ethereum","liquorchain_token","LCT",18,"LiquorChain Token","304402202add47cd0e81fc223ad4b6a6e8e470597eba240cd41c6d1bdb9d479438f3597e022006aae1d5e2421f5af8f8732537a730440d82447451b4a21fc797f1157e708548","0x4A37A91eec4C97F9090CE66d21D3B3Aadf1aE5aD",!0,!1,null,null],["ethereum","litbinex_coin","LTB",18,"Litbinex Coin","3045022100b1e2eb00f363c3fff25c57f957df91beb938142e07d276fb4ef55ae2232192bc022038335a083849dfb776f7eb903cfd0ef19a47a21ec38cc87eb14b9427e186840d","0xa105C740BC012A43a342Ab4A0Ef40143452C8E89",!1,!1,null,null],["ethereum","lite_gold","LTG",8,"Lite Gold","3045022100b6e802f52fc5b0f0bdbf08ce5ebc6ba32af365f26ffc3f2a03960bf2b7faa3f602205d65e32ee024f6f86cc50ec55dced1d021414be4697ff2165174e9eb09da3a06","0xb4C9abc8a74Bd2E0E0b7AC5ecE30792e65D86c59",!1,!1,null,null],["ethereum","litecoin_sv","LSV",18,"Litecoin SV","3044022056739bdfc5a7ac6e59514b73037169cf081443345d78bd187b9b62f02b6e43880220188128b9e4f22ae405b4848a7e4330cdbbc3cb80471c4fa4ef0753b107f408e4","0xEe059F0ca1507e4E20C689b20CFf71B5E924f7bd",!1,!1,null,null],["ethereum","litecoin_token","LTK",18,"Litecoin Token","3044022041f8fc29308f33e62135e90dbf94965f5551d243da10fc57979fc4bbf734443702206ae113a8ebbe677cc1bb6de41c4d96395045e00e5948afb0c22bbebecc3af3cc","0x8A732BC91c33c167F868E0af7e6f31e0776d0f71",!1,!1,null,null],["ethereum","litentry","LIT",18,"Litentry","304402206a80bcc0118ddecf14b7a260312d59d81d1be37020d7702a37dc1d6a9a19f74c02204872fce6f1586ecd6e8de4256192908ea77f89dd7383508b796995868a649578","0xb59490aB09A0f526Cc7305822aC65f2Ab12f9723",!1,!1,null,null],["ethereum","litextoken","LXT",18,"LiteXToken","3045022100c7676a43df1d0a278d332b6b2253f90fd17512107ccad4f492876b8f17725e9502200ecca1c945c28f8a0bac4b85c3bb905bb604614b6b82148f4e47cebef2236185","0xBC46D9961A3932f7D6b64abfdeC80C1816C4B835",!1,!1,null,null],["ethereum","lith_token","LITH",18,"Lith Token","3045022100fae090631386d4a92a30d3c90a9a15d6d417ba7a2e0ea0a3f842a176e6c3682302202659fec45de4abb755c132740c66df81bd24c1efef418638a6d328a4c79ec804","0xf8A4A419c2d7140e49eF952a7e7Ae1Bd4A8b6B9C",!0,!1,null,null],["ethereum","lithium","LITH",18,"Lithium","30440220458028cb133ce8369a1cd57bc3d1924a60e745a1425d8175c4b992230d7b6fdd022037fd8a28b8d1985903ea61581d035b6f14dcea415fca5577c62c820aee9bc801","0x188E817B02e635D482AE4D81e25DdA98A97C4a42",!0,!1,null,null],["ethereum","lition","LIT",18,"Lition","3045022100bed039f06e473df14e4d8084c8d516b3e04e1c490987c223cfed807b2b6a417d022033729d8fdbaae3283dc053eabb8a184657c893eb6292986313eb2b2758da5022","0x763Fa6806e1acf68130D2D0f0df754C93cC546B2",!0,!1,null,null],["ethereum","live_swap_coin","LSC",18,"Live Swap Coin","30450221008c5f13043f3d12a4117ad80a4413057ebc72363cedba4b75ff8d5c85c460f5ab0220140670c4d8524273ee0253e312a167874c78740f87ccce656627428e86ae80d2","0x048eb9B9c08E2dF45644cf0DB1fcB3e866c401Ad",!1,!1,null,null],["ethereum","live_token","LIVE",18,"LIVE Token","3045022100b139cf8a2f4a6cffdfc107f25e33b160bdd478ae279cdee42e81a05ac688c3da02201f9ab323069ca56ed5666bf4fd191cc407c007754793795b8dd871bc572118ab","0x24A77c1F17C547105E14813e517be06b0040aa76",!1,!1,null,null],["ethereum","livencoin","LVN",18,"LivenCoin","304402204759b909b78a937dc2ad770d63efb5124e16d61a7fea1df3e14c3518e2ed57ce02205e6b2faaa0cc3e5aec599d99ee1a866092f77c7ae13fe72624f5da7a40a52d2e","0xc8Cac7672f4669685817cF332a33Eb249F085475",!1,!1,null,null],["ethereum","livepeer","LPT",18,"Livepeer","304402204e4fcc368035cc73a7de6d5cb8deb6204a005671db1716846676796cb9b068b0022069c54f0be2ad1802e3bdaf14f399341a85d5fe5c17b9bfa2305a7dd6213527f2","0x58b6A8A3302369DAEc383334672404Ee733aB239",!1,!1,null,null],["ethereum","lixir_token","LIX",18,"Lixir Token","3045022100daf34caacff5a558ea7cfed016a9d99092f5e0f9e621f164bccc127b07854d9202206b31b8b79cb4dd769820232475bd091b8cb18a6e53776e2be5389e8fcb84b27a","0xd0345D30FD918D7682398ACbCdf139C808998709",!1,!1,null,null],["ethereum","lmao_token","LMAO",18,"LMAO Token","3044022001272e19494c09bd09e46ccb31ee32b00f24ddec911e9dc20b1411256dd37aac0220023d88808f7800b8842d2ee76eb2a5a5b68d84cfede7310de433461f0258192a","0x69Ef45CF64D8360279dAA974AAbAdB42f0683A6c",!1,!1,null,null],["ethereum","lml","LML",18,"LML","3045022100a25eefa2815324d7a30b8809cde7f7cf65d3b5169e956dd7ca1c3a66b68c2f8602202c7ea49a0cd812546d0b19da3c8beb6211576846f0b0c06b73f38fdf060bca80","0x25B6325f5BB1c1E03cfbC3e53F470E1F1ca022E3",!1,!1,null,null],["ethereum","lnko_token","LNKO",8,"LNKO Token","3045022100ac3ccf8157db27cc4c5d44ca6068e04533240b716845a42d1a27951a98c7e5c202205daeab28e31b90c215120b184d2e0a150a99b02941cf96ce67a5e12cba0f1e3a","0x11afE7Fa792589dd1236257f99ba09f510460Ad9",!1,!1,null,null],["ethereum","lnx_protocol","LNX",18,"LNX Protocol","3045022100c8621699fcadfd54600762e351e71ec9752c352f35dce34e5a1d24d53786360302206650dee01f2730f60bbf2eee428abbd9c8fbb5e35605f690dc4bc4d989d870d5","0x5e3845A1d78DB544613EdbE43Dc1Ea497266d3b8",!1,!1,null,null],["ethereum","load","LOAD",8,"LOAD","30440220749f180b94f915297d93d55c2949d2a7629e1e8134acbdea14946ecb056ef85d02203a9c8edc1eb73e889bdcc72de2686b3c2d5644f31c689aaaf1093d3445b15ac7","0xa883E72c12473DeD50A5FbfFA60E4000fa5FE3C8",!1,!1,null,null],["ethereum","loanburst","LBURST",18,"LoanBurst","3045022100ae45738836991bacee407746e858ff82e823b1c227bb07c18ef30f94bf48c6b502202618ac2b47bda15eb13412b8c890b4567f097991001dc4ab73fc1cb37d3270c5","0x93eCD2ecDFb91aB2fEe28A8779A6adfe2851cda6",!1,!1,null,null],["ethereum","loaprotocol","LOA",18,"LOAPROTOCOL","3045022100b45d73bf96e6a2044dd73396a3dec72beb9a9b37705eff55aeff42b04913227a022038a84703d070302b72620258e25f74bfec778648d3786548392dc183159974e7","0x7458fd786B2fe8CD801C0381f88b61C5071A006F",!1,!1,null,null],["ethereum","localcoinswap_cryptoshare","LCS",18,"LocalCoinSwap Cryptoshare","304402206ad3af925371a7cd86ecb59c4928d8df2e6011f76176d4346b9be570dea726980220111ced0659119169001b6f1334fc3fa1864311d1d9c7b595a6b3ddd906c5512b","0xAA19961b6B858D9F18a115f25aa1D98ABc1fdBA8",!1,!1,null,null],["ethereum","locgame","LOCG",18,"LOCGame","3044022048c388391fc3051daa5a121de0f53e384fd5d1cd8bcd4c8365a6c9b581102d95022015b8e513147ef6bce1271c63face5a557b886f99d513ffa75b8633ee888b6682","0x60Eb57d085C59932d5fAa6c6026268A4386927d0",!1,!1,null,null],["ethereum","locicoin","LOCI",18,"LOCIcoin","3045022100d2d69cc4d4e92b0d84a953464d6017a25bd5c99f5958865f19ce05b31693ca4c022015b52749df06a4135debe16023b3e8130843b81597ebd56a8069e0f8a24cc76a","0x9c23D67AEA7B95D80942e3836BCDF7E708A747C2",!1,!1,null,null],["ethereum","lock_token","LOCK",18,"LOCK Token","30450221009314cd2aa38b1e7f6dcf05dfcaae32f6527b947cd349504e7f6e3a707f600e4802202dcc72dee1f7e2ad1a91d11d842d407185b3e0daba31baf41f746860e98d3de1","0xB9464ef80880c5aeA54C7324c0b8Dd6ca6d05A90",!0,!1,null,null],["ethereum","lockchain","LOC",18,"LockChain","304402201e8af8290fbd0cca0113e1cb361927ec590a35e19ec281d810852adda2a10fe7022078710e0728e3fbd8195064695ae02c39076b8b0ca3c16778e237a13d438f9d50","0x5e3346444010135322268a4630d2ED5F8D09446c",!1,!1,null,null],["ethereum","locklet","LKT",18,"Locklet","3045022100960f3c09a499145d7ac73c23311a00b0515c093cf345fc0513c26523de85c91702201f6edf89e52f07cdea3034312749be4407bb120820618863c8e18e3f0b81f0e6","0xd9b89EEe86B15634c70CaB51BAF85615A4AB91a1",!1,!1,null,null],["ethereum","locus_chain","LOCUS",18,"Locus Chain","304402202c8d87734207637dedd8d3aeb15543b22956fa79453bc8ad7e9ffad6f596eade0220339ae90d99b110e16c04173242a643bb568b61a436acf7a5bb42c4995340b81e","0xC64500DD7B0f1794807e67802F8Abbf5F8Ffb054",!1,!1,null,null],["ethereum","logarithm","LGR",8,"Logarithm","3044022017cab9c5d26fe10436efefae1838d2bca5b0e5945248ab4f16d1756581c9f8fe02206973164418732f8de24ca8779460a6a354e88421e5daa46f7c608e1dad4bc96f","0x2eb86e8fC520E0F6Bb5D9Af08F924fe70558Ab89",!1,!1,null,null],["ethereum","loltoken","LOL",18,"LOLTOKEN","304402205b3c2fc279285fd2223856b48269f0a6f4d9788b0fd7880c8b6663ee0c42edf30220165093104d4a8fceb63d47c2b1d63b68ff7f615208ce4f9ee87eead7bb294eef","0x5978708d6ccE1CC9640Eed47422D64c91BbD5171",!1,!1,null,null],["ethereum","lon_token","LON",18,"LON Token","304402200545ac8cd36fffa82d4505ef85dd9857f785a8646fce3fc2046b485d598d2d03022056e99ddeb8a025c7eb6ef35c259ef26df2ce6ba8b46c81ef8bdbe2e55f18bb33","0x0000000000095413afC295d19EDeb1Ad7B71c952",!1,!1,null,null],["ethereum","londoncoin","LDX",0,"LondonCoin","30440220038dbc571f25109d9a8c87bcd79cf21efcc064cd25c5a1e6999c7d44fbcf3ebd02205bc67ea10837a5aa6c71fc3a815709cd839973fb9fc0332bc247940f08ca9f03","0x9eFa0e2387E4CBA02a6E4E6594b8f4Dd209a0b93",!1,!1,null,null],["ethereum","long-only_alpha_portfolio","LELOAP",18,"Long-Only Alpha Portfolio","3044022023b703b7b4f43234b65f9660bffba90ea2baed0db834c75a56c23315b07e1a7402204e6b3fe3cc466f2a51357c088dc3b5b374e45cdb9b46b2ff6383f211bcbe9508","0x8a63bE90F095F6777be3Ed25D9fC7CD2a63DDb30",!1,!1,null,null],["ethereum","lookrev","LOOK",18,"LookRev","3044022078ea19e562488a936e801b39e2c43b109b5f751f4f87c51091ef5d4e7f09491802205ecef60b475028660e7c78c95a2df0e834bcc9bc8540d6d992413faf934234c6","0x253C7dd074f4BaCb305387F922225A4f737C08bd",!1,!1,null,null],["ethereum","lookrev_old","LOK",18,"LookRev Old","3044022051ccb8022ba7c98380b288ab2cd15a6620a4db2cbcf1fd7e1ebc0192b3995f8802206abe5ae84ced10cd94fb70bc745f371a0a3f7f0d07961622101755a5ccebdc02","0x21aE23B882A340A22282162086bC98D3E2B73018",!1,!1,null,null],["ethereum","looksrare_token","LOOKS",18,"LooksRare Token","3044022075b4f25b601fc75d24c0ccad32210c04daabc4d631886c9c0c91a29be3ed9f6102206b0d5fe2121d7b2a012484cf0e5df406e69110e8a1fa396fc1019db4cd74541e","0xf4d2888d29D722226FafA5d9B24F9164c092421E",!1,!1,null,null],["ethereum","loom_old","LOOM",18,"LOOM (old)","3045022100b2610f0e645cc3218c4ce699b27fdf5bc1f2f94499f3a1a6d6ae0402783a399902200b48ccaf3749e37a4c95afc7a77a1ee8133504f3686652a0cd1e6f45566424ac","0xA4e8C3Ec456107eA67d3075bF9e3DF3A75823DB0",!0,!0,null,null],["ethereum","loom_token","LOOM",18,"Loom Token","304402205c763d274b0d77e05f2c020ceca677a502a649eeabfd839956355196cde5c9f702203855925844ad9d8b53090485194d0c87d538b0c9d7322377ad9a1b0772c810c1","0x42476F744292107e34519F9c357927074Ea3F75D",!1,!1,null,null],["ethereum","loon_network","LOON",18,"Loon Network","3044022079d5f0138db22e1e58f6f483dfc8f1aafbb1d5e12983f4cb1d708f44859bb87a02206eccfa7d09cad91884ea3c831c9086e9faf31696919c3c218dc055b929cc53aa","0x7C5d5100B339Fe7D995a893AF6CB496B9474373c",!1,!1,null,null],["ethereum","loopringcoin_v1","LRC",18,"Loopring (old)","3045022100f3385dcc80799c5ac92a9f558ef56f80733daf2ac054d5562be9184265f6d324022016ef574934695545798874b996e5dd147372662aa9942b8057790ad710e844b3","0xEF68e7C694F40c8202821eDF525dE3782458639f",!0,!1,null,null],["ethereum","loopringcoin_v2","LRC",18,"LoopringCoin v2","3045022100a3a1606dde30b91a455f2a377052c8c12a42e8a156cf28ee233ff5f1d8d70a37022000f5577b37127c5d018c4e901ebe79796434bb4514984887a705f2745dfe2669","0xBBbbCA6A901c926F240b89EacB641d8Aec7AEafD",!1,!1,null,null],["ethereum","lords","LORDS",18,"Lords","3045022100b8aaaeee0ba59098284fdfe9caa8fb778d6d2fb4c8adf065033dbe99e48a4ce6022039fbe5fc18df8207effde4e0a6ff0c5ca8f218c6acbc1793660358191dbb2694","0x686f2404e77Ab0d9070a46cdfb0B7feCDD2318b0",!1,!1,null,null],["ethereum","lossless_token","LSS",18,"Lossless Token","3045022100a3acdd14c64bfce0da61bec27f7b4e3e99d552b50815a00b36c4fa5204eff48302206b4d282de45a904ef6bd74faf7b73e0aa92d25f778db2ba8838ca80df1333aa6","0x3B9BE07d622aCcAEd78f479BC0EDabFd6397E320",!1,!1,null,null],["ethereum","lotoblock","LOTO",8,"Lotoblock","3044022019f5980fa640c2041ef2270857b0fc3f3bec061218ac3f038b3f38703c180a5802207e1d30b7bd2423792a20798de4b6eeb89cd66bc43b7ceaf38de710aa9504cc48","0xf947B0824c3995787EFC899017A36bC9f281265e",!1,!1,null,null],["ethereum","lotto","LOTTO",18,"Lotto","304402202266a261371d4492d757e1a57d9f7cea32198ac20fbff13afd801d65a280752802202cdb8e1d4ed893c8a4447e0c84cff89423bd6181eb4be9c52f49eba1dd8dbdbf","0xb0dFd28d3CF7A5897C694904Ace292539242f858",!1,!1,null,null],["ethereum","lotto_nation_token","LNT",18,"Lotto Nation Token","30440220117147af1b6adcac2a0a3b646e6ed8edc883f78cd1e76152e7141d306a9ca7a602203a5916cd372fd6a28e7c18c68190a69138cc4cfbede5ddb652ba6d41f695d6fc","0x3a73F6156C4fBC71B8fDF38090A9D99401163644",!1,!1,null,null],["ethereum","loveearth_coin","LEC",18,"LOVEEARTH COIN","3045022100864251796c9acd3b603e46d42837e184347b5edefb76ad2ae2e6a9912aea95d3022006fc32a6f11ad20c67c6c53a16bc1f14d7e424925c6d0156a3f3e1943b2339ca","0xFa30e62EEDcf80D47d42947fBCc034beeD5C09FE",!1,!1,null,null],["ethereum","low_float_gem","LFG",9,"Low Float Gem","3045022100e435bc0d92c0dbcb65caf9a6b13ad2323140e05e7565e5923355bc650c5166850220021f454a51385d00f8efe7ad2e3eb91a703e29e53babb88b2d2d120ff53a5d3f","0xDb7A1a851A2977A6f2ba064b2b76A0f79e5cA587",!1,!1,null,null],["ethereum","low_orbit_crypto_cannon","LOCC",18,"Low Orbit Crypto Cannon","3044022058c1aa2b47d5db9913b951468921010869013a936f3a10fb0c87633c5a18e54b0220779595702e07241adfc9657059ecaeed7171ce7d47e0520a122bc99fcbdd46eb","0x556938621C19e5eae58C94a806da9d237b969bd8",!1,!1,null,null],["ethereum","lqty","LQTY",18,"LQTY","3045022100838ccb561bfc183ebc690e9f428888e79824c4c0d8a7b8fcf80033bf45795c3502205b1a067104360c4ba9cfa9bfc414370f00bcf344dfd5b1fe641c24b580bf2251","0x6DEA81C8171D0bA574754EF6F8b412F2Ed88c54D",!0,!1,null,null],["ethereum","ltcbear","LTCBEAR",18,"LTCBEAR","3045022100f50ac904a9d944a198a67400a3c88b51494b41f290167657ae2fdddcf0a2fb11022075c0e125a01c43e7113b5cede8fbfaf3609808a3847c9d3a6d5358189ff937c6","0xB422e605fBd765B80D2C4b5d8196C2f94144438B",!0,!0,null,null],["ethereum","ltcbull","LTCBULL",18,"LTCBULL","3045022100b1feee8d149fa62b89271cf08d22fe21895578e914de6e6894821c335c565ccc022055ab8917391c17a6bc75bad8783ee88725fbc99689cc025636616e5d452df6ce","0xDB61354E9cf2217a29770E9811832B360a8DAad3",!0,!0,null,null],["ethereum","ltchedge","LTCHEDGE",18,"LTCHEDGE","3044022018adbb98faf5efb0b3ecb20e9b8bbf01de26c3a0f2a8028625a9ca1b5101f1ba0220189e6f9f88b6b3ecb7b2f8dc5944bba6ba667d63130f670a49acad5f3bc3fe77","0xD0C64D6c0E9aA53fFFd8B80313e035f7B83083F3",!0,!0,null,null],["ethereum","lto_network_token","LTO",8,"LTO Network Token","3045022100b77b381e1eea2282a440733aa7c90eab6e0709ba4e0b642db30012204d4536f302200ef342f508e01e4dae451cb6ca4813e816c1cc3ef17ecff96a9b39c5753a6d9f","0xd01409314aCb3b245CEa9500eCE3F6Fd4d70ea30",!1,!1,null,null],["ethereum","lto_network_token_","LTO",8,"LTO Network Token (OLD)","30450221009c9bc80c8b94b251bbc7b88bfec98dfbf2ffd3a025d79ef7b8daa516d26e2e2b02202099567192144f72a12fe95ab439f444c4a1f333be929a886d7939e15c6dd779","0x3DB6Ba6ab6F95efed1a6E794caD492fAAabF294D",!0,!0,null,null],["ethereum","luatoken","LUA",18,"LuaToken","3045022100a833bb7ca28f849f21603e0ce1f6eb1524aca03856a11ba7e2f44afbd1b424ab02204d3b014dfee0ab79169a19fdfee3855527ed6abbdecb03be86f1630f8ad583ef","0xB1f66997A5760428D3a87D68b90BfE0aE64121cC",!1,!1,null,null],["ethereum","luck","LUCK",0,"LUCK","3045022100b778fed8eae526e8d87181dbda6607f55bf95ae63a39664c392c8819747810c80220172e61bbc36d69f152f3e5f1f3dc9000ba9e2add6b32f6cf8db8f3dbf5851929","0xFB12e3CcA983B9f59D90912Fd17F8D745A8B2953",!0,!0,null,null],["ethereum","luckstartoken","LST",18,"LuckStarToken","3044022024ad924fc31c6f4fc2095284fdcf0bfcd03e95b363fe17633b31e7e7598de7e3022015cc1f63582b2309330209884c36c92c2c64414d7a675e5bdfcf733ab0935baa","0x681Ecc5a0bFD18c308A1138fF607F818baC5E417",!0,!1,null,null],["ethereum","lucky","LUCKY",18,"LUCKY","304402204c3519c150edd9d228f2467ded3599cf13c5946c5f867fd9f5cc05d0b710b57b02206bcc57ff3e830295707b8bb143a68df4cb05f8c039e29e25c0aac8f11ace50bb","0xE478d4F4a87D4D641AF97ca0b5Cc3dB61e266357",!1,!1,null,null],["ethereum","lucky_maneki","MANEKI",18,"Lucky Maneki","3045022100b89afa825a88b964923925ec05da55f319679e908277d44381234350fd86b69302201d5d8b724071e81268f508b36630aaa11d22db51a187f9457d356c55fb858ad9","0xc716cf01532999E5dF45E1BD09743128c5932821",!1,!1,null,null],["ethereum","luckyblock","LBLOCK",9,"LuckyBlock","3045022100896371ab1f5d44d2494e43f30fc0eadc0f9a20f22d2166c3ded91d36fd9a8c6702201a7beaf4feadff55f8a87b7acd2443fbb3df8a50db20b772ae3d7957ae093a88","0x2b867efD2dE4Ad2B583Ca0CB3dF9C4040Ef4D329",!1,!1,null,null],["ethereum","luckyseventoken","LST",18,"LuckySevenToken","3045022100cf4c367b9c77e1b34f8838482864f1cf2c5bc8e771ab6f00b4a526a362344a1e02200691cff33ecce04ccc5a209752ebcd239f52079639024c9813afbdbad267e549","0x6b9F1F092E0B10015a4391A80cD3E6B6cefD1728",!0,!1,null,null],["ethereum","luctoken","LUC",18,"LUCToken","304402203dafaa9c75b318434a084e16151d6360761f3e1a7b58637580c54fd21c0d960102205dc6b6f32e02f1c50d5e3b2707b5bed8d437f3412982831e6fef952f37684747","0x5dbe296F97B23C4A6AA6183D73e574D02bA5c719",!1,!1,null,null],["ethereum","ludena_protocol","LDN",18,"Ludena Protocol","3045022100abee18d96333c0b1b5c7b494492c98e7ba1d2af12632f2d7c2eeea6eabd9ab4d022055543c2fee3c1bff40bda1670ee94f82f72721e3bdf9ef418ff0a6c3688fb6fa","0xb29663Aa4E2e81e425294193616c1B102B70a158",!1,!1,null,null],["ethereum","ludos_protocol","LUD",18,"Ludos Protocol","304502210094af433d74eb6ec09d3a8a11bc7a9afe20596529255955aecde254ed4e6ab55402206adb31e484941003df0f8f58af5c5a374fca29482239b0bf3397c31807d864b0","0xe64b47931f28f89Cc7A0C6965Ecf89EaDB4975f5",!1,!1,null,null],["ethereum","luffy","LUFFY",9,"LUFFY","304402203859efe22c3771b6c4ce19a335aad7415de3fb441f48c78e39ec5bb2bf4214c902206584f6d373e15243f7cd38041291c21fa7df9a158db8d5f18c607439ea310fc7","0x7121D00b4fA18F13Da6c2e30d19C04844E6AfDC8",!0,!0,null,null],["ethereum","luffy_inu","LUFFY_",9,"Luffy Inu (Old)","304402203ba0043de8f78b0b8382e001058a75eb7f9090d358991f3e1f411bb4de4f55d302203e2bad115a100a71362595d16bf3008194c1602ebb6a71ab4f1839b8ecc46a7c","0xC1bfcCd4c29813eDe019D00D2179Eea838a67703",!0,!0,null,null],["ethereum","lugh","EURL",6,"LUGH","3044022050c81bfb9846dd5d6a733b9d8bc5a1ac4b3058049218a7d92cd10c4ce94cd3c3022050698f9ba0709b322a7c11b0311b2a79b46119bbd202539553e8c48b14709b9b","0xA967Dd943B336680540011536E7D8c3d33333515",!1,!1,null,null],["ethereum","lukki_operating_token","LOT",18,"Lukki Operating Token","3045022100b8c659cfd47288756a4d1ef42d33fdab1b3e02494315c25d110a16c843f3dc0e0220732de42c11861fb0c907e49339f580cb0dbbe1521e91ecf0ad9f664555f1336c","0x6556D2EC4D96Da39CF75cbE50D58fae90079800a",!1,!1,null,null],["ethereum","lukso","LYXE",18,"LUKSO","3045022100ea7893529fc0a4d829e154c77056bbb8bb3425e85de944a7a902d9c8ec378a3902201b8aaa25cf61af7faa997809437df5f08069961825103f0c06067be36eba0834","0xA8b919680258d369114910511cc87595aec0be6D",!1,!1,null,null],["ethereum","lukutex_token","LKT",6,"LuKuTex Token","3045022100a09bb61d47155ad7c6b9c4bdb55f6e49329327557f30850c9ca755ac8f021af3022028be8af2f5ef508a193c423b9c4c973dd2f5fa79bc73ed8c8e6f674c847a9a72","0x243c56E8e740025aC6b112D7B9Af59be8eEF6E33",!0,!0,null,null],["ethereum","lulz","LULZ",18,"LULZ","3045022100c7ebf2e3e1f37f265bdc85bf1c770c5d1b03250d00f1f098c7bd4a2de0a9b5d8022035c6cc8c16b4038e6621d4b4b4665deef22aa6207ad48cc94885e9981a8b0893","0x89A64014d429509CfFdA1AEBc7eB36B9435794BD",!1,!1,null,null],["ethereum","lumerin","LMR",8,"Lumerin","3045022100a4c90c54ff8b17921afa572eedf0d50ca6440d9ec470d7b84a0d198faece858a022078ebe6452091e9d2db8647c3e098caf45c148f5288bb81602ded5a43e44776f5","0x4b1D0b9F081468D780Ca1d5d79132b64301085d1",!1,!1,null,null],["ethereum","lumino_coin","LUM",18,"Lumino Coin","3045022100c93fa1b63703973474d4f5b902242fe2364e269f5ca464a22eea9aeb6f90f92f02201bb4dd07e8551a8e7a9eafb4b6492ae931ba6ad7f3b62a8c95dfd104ebc9d16c","0xA89b5934863447f6E4Fc53B315a93e873bdA69a3",!1,!1,null,null],["ethereum","lun","LUN",18,"LUN","3045022100a6077336794409e5c7afb5e1d4556247729510d63494e6f3b95617738f90e48402200d364709fb329e33f22bb256db51ee373d00e328089f5b0e9e1735fc69be074b","0xfa05A73FfE78ef8f1a739473e462c54bae6567D9",!1,!1,null,null],["ethereum","luna_inu","LINU",18,"Luna Inu","3045022100c53006a2c8af483922e6d3bacea0cb1f8e942d42a81c0b7412b4a95cf931aabe0220772a64067eae1c3cd2051b263db3b71808089c44554446fb1fbe3be3dab984a6","0x78132543D8E20D2417d8a07D9ae199D458A0D581",!1,!1,null,null],["ethereum","lunachow","LUCHOW",18,"LunaChow","3044022021680565c46b64952fee739a8b51d8755504dd4dfca40f84f68b02eca5a0972902202cb2e333b1dc94fec719ceb102e68c187d50e9d7fa801db4469c351ab3b92813","0xA5Ef74068d04ba0809B7379dD76Af5Ce34Ab7C57",!1,!1,null,null],["ethereum","lunch_money","LMY",18,"Lunch Money","3045022100fa5b0e54553da423e618a6375dea169180d37fb5a8f7049e7866bc2a5af22ba302206f0aaae39d2cff9dbbc86043630eac897dcc5c1a6347627d4489d31cffe6d6de","0x66fD97a78d8854fEc445cd1C80a07896B0b4851f",!0,!0,null,null],["ethereum","lunchdao","LUNCH",18,"LunchDao","3045022100806c198f8e5cd5a5e575adf47cf48b84361373022022bbb7a768612f7272197d0220492f7a741ecd07bd204b615dd2dec1598f420e83698a1e81442188042ef05a23","0x71a28feAEe902966DC8D355e7B8Aa427D421e7e0",!0,!0,null,null],["ethereum","lung_protocol","L2P",18,"Lung Protocol","304402200859562122c47e34820431659dbb604571e774a6524d5bbeddbcf38cc316c5d702201a556cf63d7bd29f9810e107c96e97682a32fe3c498aa608eeaa8f43995ce99c","0xeE0f286776639cD363Da810DAF3e0623F82576b0",!1,!1,null,null],["ethereum","lusd_stablecoin","LUSD",18,"LUSD Stablecoin","3045022100ea9328c426f987f1ba94668ec7f957106c55c7313b10e85f23ade71d2f513a72022061c09472e11b518d501c785ba4e598a5f5a1bc0c6254a6bbc6e008d33f405c82","0x5f98805A4E8be255a32880FDeC7F6728C6568bA0",!1,!1,null,null],["ethereum","lux_expression","LUX",18,"Lux Expression","3044022054763cfab26acc1830d65a473ad757c15792f215d1c088fe7c9b41a30fd0468a02202224ca7138d04e53e1e494f5be5e83b67e96d784a9ebb45ec797ea4ccb85ec1b","0x88DAfEBb769311D7Fbbeb9a21431FA026D4100d0",!1,!1,null,null],["ethereum","luxbio_cell","LBXC",18,"LUXBIO CELL","3045022100951fa18d3665c6ed3c2d25a790136b92a3cdaa6b5a2ec42fdd916e8ba5a5da6802205f305cd42c4abd251b164c5c0fb89242bcee3a2a7367d34807657df80eff6b7f","0xfFE510a92434a0Df346C5E72a3494b043Cf249eB",!0,!0,null,null],["ethereum","lyfe_gold","LGOLD",18,"Lyfe Gold","304402200a8f75fd5eb1e334e717b6ed714e90230bce516df84147d5fa0e87e162b89099022059e0f39bbff5ebff9070c5e8290a6dbcf64e5f9fe93dcd47c1dc0a9f48c19655","0x27778E14Ce36d3B85e1efFeB43816a17bBB7088A",!1,!1,null,null],["ethereum","lyfe_land","LLAND",18,"Lyfe Land","30450221009995813c4fa77b4e48d0aa2127581c560215392188ccc8855ff0d69b1f78b1460220608ed1de45015e050d176e201429dbeaea0cafbfebf1131e30319fc31e990b61","0xE5bF6790D138B154f1DF3Db8d245bE46A5D05eE4",!1,!1,null,null],["ethereum","lyfe_silver","LSILVER",18,"Lyfe Silver","3045022100bf9a954b9c9f72dd6ed541ec860be5ecc10b3db42a1382c3472ed148a963ae0d022076b8d7a13cd77a2b71875d0b6d9982bdb1312d553e45a3bb6c49031b99997a10","0xD64809f5F7d772D9112A6BD379De00A77188199E",!1,!1,null,null],["ethereum","lympo","LYM",18,"Lympo","3044022056a515075e15317cb02a35c47c820df7ab72b44cba59751f2a4aec777d6014fc022070db2eed77f0472441116a831f583f55000081676920156fc132537e4e534585","0x57aD67aCf9bF015E4820Fbd66EA1A21BED8852eC",!0,!1,null,null],["ethereum","lympo_","LYM",18,"Lympo","3045022100b1736ab11cd99cd2e60c5c7539f9e06de9f92d80762ba385959be60603c335d4022006ecc05ba9d9f7f663a48e5f2ac7181bca28113d3f6d26f863f8f5dee8c64733","0xc690F7C7FcfFA6a82b79faB7508c466FEfdfc8c5",!1,!1,null,null],["ethereum","lympo_market_token","LMT",18,"Lympo Market Token","3045022100c36ef2feab11a06ed8f3445c4f5a39f916d58c2065a8de953ad0ea8000d7054502202ce059ed5629194c320ea7133ae3802c2e69bd127a3cf7803e581f20331b0ad1","0x327673aE6B33Bd3d90f0096870059994f30Dc8AF",!1,!1,null,null],["ethereum","lync_network","LYNC",18,"LYNC Network","3045022100c4b14b6892901082fcf7c3c6349cb6f71260e150b6fb45207240bdeacd7ae5da0220624eda0a75fb0666e7814cb47b443b6b95d1018b9225a98303b60531ef36d956","0x8f87Ec6aAd3B2A8C44f1298A1af56169B8e574cf",!1,!1,null,null],["ethereum","lynchpin","LYN",18,"Lynchpin","3045022100c7c53e18e8e44be0a7ecd4c29ed96252ff28f38d4a140b037c84cbccd347313e02206a215b002146b00ca6e48087fb489d21e9de3dc7c2698b13e41d633bd9b37aee","0xB0B1685f55843D03739c7D9b0A230F1B7DcF03D5",!1,!1,null,null],["ethereum","m3m3coin","M3M3",18,"M3m3coin","3045022100f9ce02f1668b292a947d99011e3abca71e55336aae5666d842baf7aa6aaf5df802202a77ab34b29bdb797a44d41a0d32e650637ffd05ab15a5807575a4ba0108ccad","0xC6c9C41530769d80b8129C4278848010FE59515b",!1,!1,null,null],["ethereum","m_eth","M-ETH",18,"M-ETH","304402202eb10c786c7a9c4e5e3f16b7b9547714d5dd498d4bef12aeaf6adf4ef0dc811b022003f8546bfd9dabba149eec4ea945a7746760c4fc71e6cc606b0ad6a311dde77d","0x3f4B726668da46f5e0E75aA5D478ACEc9f38210F",!0,!0,null,null],["ethereum","macaron_coin","MAC",18,"MACARON COIN","3045022100eab7c0ace601c94a321a1b40d9b4dd5470c16c8aa18927f2dd50d6d5a5de16a502200b7eed32e4c3e2bfbd809637ef7b0b957da548e247045d686382313f6b94889f","0x4c3345105fCc6CdC29DB91058FFAAe33cCA5bCDb",!0,!1,null,null],["ethereum","mach_exchange","MACH",18,"MACH Exchange","3044022060e0a3340e6b9e547aee48fd8db3896451a9ddc97690451f5d16cbc7bb7a2c3202201b5bb96266d17ca12fd6f953018d2fefff29bf39b183946b4e20b9ab4e92a284","0xB119Ce94D098C18fe380904c24e358bd887F00BE",!0,!0,null,null],["ethereum","machine_xchange_coin","MXC",18,"Machine Xchange Coin","3044022055ca7d62f1c90dff87b58d76a5caacc5768ebe978aaf8afd26a0c32f46392cd40220511997d719a5e09d25be9e0ef44e4e243c6cef774c81801a466104b29b3e08ce","0x5Ca381bBfb58f0092df149bD3D243b08B9a8386e",!1,!1,null,null],["ethereum","machix_token","MCX",18,"MachiX Token","3045022100f4725c100d6ade5b6bee47c622f5a218c909bbfe36966e7ce28815787b114b3102202e1764f24278bdd29c5b72d8c8c8d34668182c3948cc7f5e4fab76922fba44a4","0xd15eCDCF5Ea68e3995b2D0527A0aE0a3258302F8",!1,!1,null,null],["ethereum","mad","MAD",18,"MAD","3045022100f5311c61cf383e1aa178330be0e0ebdf01c09512d2100340b5afb02c68bad5c50220732a00189d546d07594b5ab71093bf0b1135846e898b6872b504e9ee6453f993","0x5B09A0371C1DA44A8E24D36Bf5DEb1141a84d875",!1,!1,null,null],["ethereum","magic_e-stock","MSB",8,"Magic E-Stock","30450221008234e46de25caff99523b303703f55b5d9c3becccaa2fa22257afa46317f8e64022041bffab710ff965c37bc1b7e3aea2e0fd17c759859b55e6e25ee870514a98f73","0x2bc586FFBfA2D6E9c30d5ad95d546091dB7607cf",!0,!1,null,null],["ethereum","magic_internet_money","MIM",18,"Magic Internet Money","3045022100a544ed0ae02c6a3b74b8bb732bb09e94287a206e27a864705245047c8f8fcc6802202f0d24968903823779ba895e917ab4767e97e8d0e4b1668821133e31f682b1e6","0x99D8a9C45b2ecA8864373A26D1459e3Dff1e17F3",!1,!1,null,null],["ethereum","magiccraft","MCRT",9,"MagicCraft","30440220064012586645dc24217e6ab9ad24827a70745acc58a98977678b659fbad380ee0220173f572040e4d73bd57f390fb20213b391ee197f78f02b7834043c1c0fd22e1d","0xde16Ce60804a881e9F8c4eBB3824646EDecd478D",!1,!1,null,null],["ethereum","magnachain","MGC",8,"MagnaChain","30440220660cccb4bec2e5bab5658562a3c78881b86abc50a26f6a94f9df5ccd2e56ceeb022076e46250779072996817c2139e6b16881eda1583da6c2682f37d6fba68c91a8c","0xa6EB54102F20095679882Db4C84E72E65Ab782A4",!0,!1,null,null],["ethereum","mahadao","MAHA",18,"MahaDAO","3044022062740ee3913b07c5482d58213eb8c69fa5a173c88e333c28bf7010b98d86814702206a928a20f6cdb59d214b589135716f015c564353b9ff645fc52f5b7066b1236e","0x745407c86DF8DB893011912d3aB28e68B62E49B0",!1,!1,null,null],["ethereum","mahadao_","MAHA_",18,"MahaDAO (old)","3045022100814b64cf6e218d8639cf27cb8329406f02e4dad200277ee6c3e97a935910d55a02201a791e5ea7164e80c24e57632f6996bf97fd80459dcfaf21399178cf4c1fa8dd","0xB4d930279552397bbA2ee473229f89Ec245bc365",!1,!0,null,null],["ethereum","maidcoin","$MAID",18,"MaidCoin","30450221008407954fed67bbba88977ad4b20408eaf16d2d57db73b0a0a0e417bcc908bf80022036832b5c8f026e71a6026e80257b9111e873220eda1e5d5d8dbe21edb4e23071","0x4Af698B479D0098229DC715655c667Ceb6cd8433",!1,!1,null,null],["ethereum","maidsafecoin","EMAID",18,"MaidSafeCoin","3044022020ecac52a300093eba31490895a2dbcbefb6c0dc37101ad6d1b3f6d828c5983e022069303f1056bd62c872f456ff1d559c3a261199aa58ff70697c11064ff7409bc3","0x329c6E459FFa7475718838145e5e85802Db2a303",!1,!1,null,null],["ethereum","maincoin","MNC",18,"MainCoin","304402201b3b26b52e3d81034674ddd76034360081b27d9f343b5b80496d06b55a57967702200269294b66e79559aca617a19531835fd7543d6dc0df618392c3eae60303c72c","0x9f0f1Be08591AB7d990faf910B38ed5D60e4D5Bf",!0,!0,null,null],["ethereum","mainframe_token_","MFT_",18,"Mainframe Token (old)","304402201571e6ea8addfb4c810670cf155796beed8b64c7dc4efabea8d61ff9cc811f7002207c79f3668c3da7ffd5fdd9318b9eb3d8b57d134dbbf25a9534dbe01567a5680d","0xDF2C7238198Ad8B389666574f2d8bc411A4b7428",!0,!0,null,null],["ethereum","mainstream_for_the_underground","MFTU",18,"Mainstream For The Underground","3045022100bae9814001f708ce5b751bffc61056eedd077b4e3af8b7cc52a63aede6ac0e6e0220165e96cd3abc78b356e5b52147131d41e3df7d7cbe8d7b6631bca487703024e2","0x05D412CE18F24040bB3Fa45CF2C69e506586D8e8",!1,!1,null,null],["ethereum","mainstreet","MIT",18,"Mainstreet","3044022069fc7c200193bef19a21007a26fa2d5195f5106ccde1832a61e21b5a9f951c180220038a343e472aa0b3e3f7e7e056840fc4e60b7f269613bb873b9e68ac29bbe35c","0xe23cd160761f63FC3a1cF78Aa034b6cdF97d3E0C",!0,!1,null,null],["ethereum","makerdao","MKR",18,"MakerDAO","304402200bca467156035534a4fa8aeafff967b3845fc3cc11f6eea446d283103d8d23f602206eb2e6a90dd67b0bc45a8660ef501c560952c671c32f7394ac23a74191ac4f31","0x9f8F72aA9304c8B593d555F12eF6589cC3A579A2",!1,!1,null,null],["ethereum","makerdao_","OLD_MKR",18,"MakerDAO","304402203164f08d348ebaab934943632302233ed4d9e42a7ba55ebc1bcaac42419edf53022010e2107f8f0bcf0d09ad3da2b8e582a0f428f9f3c45fb7f559fd51fee6a0b1b5","0xC66eA802717bFb9833400264Dd12c2bCeAa34a6d",!0,!0,null,null],["ethereum","makes","MKS",6,"MAKES","304402207a57731074cfe2451e11a1619a4b6d2a2fae7872cc5d3ef5f0cac59f2dbe8a08022057c79c873c069b20d0d1ae5edff8667fe29113c6a3d99f07c8b80ec5730f3187","0xCfF20cE22e71EcF2Ea89c86eCbD4a3CF513768c7",!1,!1,null,null],["ethereum","man","MAN",18,"MAN","3045022100b4998e24538dbc83fb91ec021b294440dbcb6c0903474fcc0c1233811df0438002207ee0f301c17e1aacc9fb0432ba29591800a1b82572ce5abc5aacbac9ffbc1caa","0xe25bCec5D3801cE3a794079BF94adF1B8cCD802D",!1,!1,null,null],["ethereum","mana","MANA",18,"Mana","304402200befd6114952812852bf0e3475c2a19cdb3d0a5a30a6868929f272b960b7a71d0220748ab5a6c31931e73a3deb89ae6692ae679c1d131d8272362702cce0f9e133cf","0x35A9b440Da4410dD63dF8c54672b728970560328",!0,!0,null,null],["ethereum","mandala_exchange_token","MDX",18,"MANDALA EXCHANGE TOKEN","3045022100e199ff0cf4892d2430ea87469297aa04d7556d00d35a8d43d19dfa3ecb6cd33c02201e738c066828d134e83823b7ecc4ec609d9d19d1ae981bfa93c846a1e9a2613b","0x947AEb02304391f8fbE5B25D7D98D649b57b1788",!1,!1,null,null],["ethereum","mandamus","MAND",18,"MANDAMUS","3045022100c0e93d2efd88346a8a21bf16fe8e8cac5e8f59ff673112405ae4248c868ec2480220091e8568949d7750dc8a905beb3eaafa4b2021ef18d3ba9ae412229e9770a265","0xc5a7EbEdce820F06a610289370c2430596E81fa8",!0,!0,null,null],["ethereum","mandi","MANDI",8,"Mandi","3045022100e9b6c81aa8cfe591a0db43ab289cababeaea7f0e7964f60c4d3ffb5b01dd7178022057f0e3a2e700338f3cf734b20036755b26d964e2a32ef1a2236793408d6c4400","0x5aA485E6b794bcf5F834BF5c7FF43B9B83322764",!1,!1,null,null],["ethereum","mandox","MANDOX",9,"Mandox","3044022044c6f65f8524268f15884c02ed3e9bb4aa14cb334f90303fc5b42f31cc852b1002205e0af4a9b2514e3657f02caf5be88b1846ad527b0e6bc002e1794914b7863427","0x33D203FA03bb30b133De0fE2d6533C268bA286B6",!1,!1,null,null],["ethereum","mandox_","MANDOX_",9,"MandoX (Old)","3045022100f1507e4f6024f44fee75d3a7fd1b401aff8fc3c762560bf007ed014accf5ec93022021b8c6cd5b501a3e4fb458b7809ef2295a222550cc42613992d461820d240b5a","0xAFbF03181833aB4E8DEc24D708a2a24c2bAaa4a4",!0,!1,null,null],["ethereum","mangochain","MGP",18,"MangoChain","304402205883e4c5f0be2fe9250dcc405d4d254b120d36c24655d3456d29ddbc32f99e4e022030bed4f457ea7d7752871be2c7fbddbf866ff6a8b0dc2147e059b70484ba36aa","0x8a845Fc339CeB022A695281554890429a34DF120",!1,!1,null,null],["ethereum","manifold_finance","FOLD",18,"Manifold Finance","30440220177c4fe5abb7561dd9321222873947d40b80dcf0aff334f8a7da1d9e1f15c6c102200262734325e873d52453f8bdd149fd93bcef3c28fb85076305d1ee9fa388ce5d","0xd084944d3c05CD115C09d072B9F44bA3E0E45921",!1,!1,null,null],["ethereum","mantra_dao","OM",18,"MANTRA DAO","3045022100c8f91d34de3d2e55755ff7056aaa43e65462fddbaec7c17fbf782ebb07703443022003179b588d5da221d064e49be206c4e1c637d5d7c52f9bb9f100098998d05d62","0x3593D125a4f7849a1B059E64F4517A86Dd60c95d",!1,!1,null,null],["ethereum","many","MANY",18,"MANY","304402201836805dfcfca54d3037113ddeaf33872a5d2e60f884464144099dc4de9159270220092ce795f0d310cbde0f4a013586334b88c52eafe00adee2598927dbe7d9e0ce","0xAB7aaf9e485a3bc885985184ABE9FC6Aba727bD6",!1,!1,null,null],["ethereum","map_protocol","MAP",18,"MAP Protocol","30440220260d59e2fb549fd9c6f612304dce6689e6abb97074b5e0ce6192d05186b2d1d20220521f9ce54a0c9bbe3bb26173ccd1acfec53c1dc1154adfa819f3b2d8d27ae943","0x9E976F211daea0D652912AB99b0Dc21a7fD728e4",!1,!1,null,null],["ethereum","maple_token","MPL",18,"Maple Token","3045022100feffa8eb39b00f7d0fe9a4a3fa7b8ff139e43f956373f0e544122b0acadaab5b022015042a0d1ae77128ce0480caa5cc2da746cceafc315f7eaabb7d0ba8e7657aaf","0x33349B282065b0284d756F0577FB39c158F935e6",!1,!1,null,null],["ethereum","mapsme_token","MAPS",6,"Mapsme Token","304402204de18527cf89b9ec51a6812bd2493cc9c693b0a8ef07585202cebc7a8df49958022072216059ca4f505d5567217deadfa2ea7d55b16ec33a94d30fe1fa47552140bf","0x2b915b505c017ABb1547aA5Ab355FbE69865cC6D",!1,!1,null,null],["ethereum","mar","MAR",18,"MAR","3044022067ebf00c1963f3b75e9c3a8d78dc78fd8043688178d872bebab1a736d7e90f8c02204986afb6b5d56bf664f5594f763e1b6755ba4800d6cbd000dfc14ef6b402529f","0xA9080Bf7C8e55f2Af5C6603243D5865F4f328715",!1,!1,null,null],["ethereum","marachain_cash","MARA",0,"MARAChain Cash","3045022100edd7a61a89dded5072977ba7ed61ddbfd3c47d7c45e9f4b94f40d0361581737302204900cd307f667308dcc83b02e000be55c9431a0ded2561b349f4dde6f84fd11f","0x5690a8a6b3A2bB394B709fb678a61bFC369f2c4E",!1,!1,null,null],["ethereum","marblecoin","MBC",18,"Marblecoin","304402203a823e15f3f330c696195aca705e10f194530426d24bc8e3103448ee2e84af8d022064b0f16b0fa3b04c4cffe6b0d1d8003606d155e1b49966d32e81a4a512bf0f1e","0x8888889213DD4dA823EbDD1e235b09590633C150",!1,!1,null,null],["ethereum","marcelo","MRL",18,"Marcelo","3045022100a85e6becabff478c42710a39efbeb12fdd8b243e605215d6fdc5a80efb26e48902207c71c6cdb1c8db1ca32057803840f594796aabb69b2e49d725335485c735cc69","0x82125AFe01819Dff1535D0D6276d57045291B6c0",!1,!1,null,null],["ethereum","marginswap","MFI",18,"MarginSwap","304402205fd7143cd731d5dfab6bd697527a39232de6b6c0a96475c00d9dae7bff2994a902201ef90651cfa24de2f24f65479144912e803805713f33861af51c87916dc4bff8","0xAa4e3edb11AFa93c41db59842b29de64b72E355B",!1,!1,null,null],["ethereum","margix","MGX",18,"MargiX","30450221008077e43199bd9b541b62a6867c50cb027f767be522f962c7ee4c28c5f73f70dd02203c614319fea7dfa1e19c5adb7905b2e1c8fe72b0ff1762327c54065004265120","0x1412f6Aa5ADC77C620715BB2a020AA690B85F68A",!1,!1,null,null],["ethereum","mark","MRK",8,"Mark","3045022100cdf8549bc99e2b255a11d6daae2cd0a1200e780ded0cfc7a0a0905a8a170cf7e02200723d4c346172ac71c0850a747e6e7232b09798ad174ab5770422b76f2370e1f","0xf453B5B9d4E0B5c62ffB256BB2378cc2BC8e8a89",!1,!1,null,null],["ethereum","markaccy","MKCY",18,"Markaccy","304402205445eaac183207303db0b9a82fecd392af51cefc3b8f181c760024d1b24cdd8902206e938836fbb481725e069f953780a5423f12bd6cc177fd1a86bee903ea88a8e3","0xF3281c539716a08c754EC4C8F2B4cEe0faB64BB9",!1,!1,null,null],["ethereum","marketing_tokamak_network_token","MTON",18,"Marketing Tokamak Network Token","3044022027a6588cc3b306bbb2fe6c1cf4075d5c20ddb5bfdae4ab9172652852850a3c11022059f88cc1be54fa787d2d8a6663cb00ba6e73c2081d29d5fb6f3cbb06b44c5dbe","0xe3a87a9343D262F5f11280058ae807B45aa34669",!0,!0,null,null],["ethereum","marlin_pond","POND",18,"Marlin POND","3045022100817322b3015a684f52e2105753f8db7227098cc597f4ebfc44a090240a93128202203028ab6153054e557af57fd959968cf1fd91b8ad42c28b83c0204da36fb24dd0","0x57B946008913B82E4dF85f501cbAeD910e58D26C",!1,!1,null,null],["ethereum","mars4","MARS4",18,"MARS4","30450221008b792525814ac0cece810568d42b94da0193fe0c306d1bfa0d45bf848237e79d0220119774f2234cb96846b602521cf4f1373bb2ab6284b8545736f74a0405cad382","0x16CDA4028e9E872a38AcB903176719299beAed87",!1,!1,null,null],["ethereum","mars_context_network","MARS",8,"MARS Context Network","304402202cbe9598b93e19e05d7150852300ba5def827617eab4821c98518b6bff1d213d0220130419bae12f750c836e231d734457e7bdf1254e96643ab665ac4f278378191c","0xEDD8DA5C20EB014E550008DF3304213ddE5e29F0",!1,!1,null,null],["ethereum","marsan_exchange_token","MRS",18,"Marsan Exchange Token","3044022020e0c54441b24ae929f1488b7d63ec665321d30c0c66929aca4302bc2e589c7a0220164d037a09573070d57ca09c72bb89b9a12982e1a0d06bd020970e2b36793e71","0x9Af5A20AaC8D83230ba68542Ba29d132d50cbe08",!1,!1,null,null],["ethereum","marshal_lion_group_coin","MLGC",0,"Marshal Lion Group Coin","304402200b53d914742cd518450ffa2ddd7aef4b5e7f4ce3321dbb895c86bc920d86256302200aee3d7ac160dda34f443f5ee2b97a8ab4fb871bb650d5d9c03c68b44ed3f1e8","0x4534492034a2cd3EAb34C8F357cD139c95b09F52",!1,!1,null,null],["ethereum","marshall_rogan_inu","MRI",18,"Marshall Rogan Inu","30440220446fa9f4e9ac7bd4cc8874cf2bc0311762cb8a811dc4c680f7bb9905b486b7c002206b6c25717b4a1938f2af72540af37432ef21861f17ea2f7d71c52fe65b874343","0x0913dDAE242839f8995c0375493f9a1A3Bddc977",!0,!0,null,null],["ethereum","marstoken","MARS",18,"MarsToken","3045022100d24e8a66650a43637685cc99821e1856e1f58700a451ef8cdb99aaf2cca9b58902204df5e207dcc0e07cad8131d581dd2021b9cba077dbfd9810d6469e5792bd5d3f","0x66C0DDEd8433c9EA86C8cf91237B14e10b4d70B7",!0,!1,null,null],["ethereum","martcoin","MART",18,"Martcoin","3045022100867be6f37b9eee5dea48f19043f0dad3410df498533b10ea94b5cdbdf6106d67022039e1337c2dddd54642b3bdc903d18d847ce0d8d2ae6d93f8bab5861ecfcfd4db","0xfdcc07Ab60660de533b5Ad26e1457b565a9D59Bd",!1,!1,null,null],["ethereum","martin_shkreli_inu","MSI",18,"Martin Shkreli Inu","304502210086825384598072a799b4082e13a1deb68be4888f135f3db7577e2b5dfba4800e022067f9b94c76bb78d65a24430d721bb973fa03169d01701f8fa27e641b0735d859","0xc4C75F2A0cB1a9ACc33929512dc9733EA1Fd6fde",!1,!1,null,null],["ethereum","marx","MARX",18,"MarX","3045022100e218d922304e2e41f47dc74d555d9f20e1725cee747867a8db6530ec977aaca3022053d271e02c84b7afee6eae02c17a6b08a992cb277599b5f80c6fdddf240f0c0b","0x2b100Be232F90Dd33d3B6e4b9ad70D1E8AC0E208",!1,!1,null,null],["ethereum","mask","MASK",18,"Mask","3044022015d7807c08a087db56d36ac2373b4d1c9651b0b050beb3a24b9291397450779002200c405fca582dd942affbd13eef90bb268f6c41810874863cea27a27dfa14be4c","0x0fe629d1E84E171f8fF0C1Ded2Cc2221Caa48a3f",!0,!1,null,null],["ethereum","mask_network","MASK",18,"Mask Network","3044022008756b37d3eac228467057a6a4b0570f017126d60aa26b202bae26e7650ea021022060bca20a1fc2241aa5cd6a17d5834bc4a9ccbb7a91b933a8c58bb4c3355b2b78","0x69af81e73A73B40adF4f3d4223Cd9b1ECE623074",!1,!1,null,null],["ethereum","mask_token","MSK",18,"Mask Token","304402203352a23beb0cbbbecf7ddfbd089389d3d66da7086484a69d48ea432a4fab39ec02203c27def701760be52bc7b8c95029a998ecb3b91cea49156496b31065a69fd047","0xfdD7399e22918ba7234f5568cc2eF922489F7Ba6",!1,!1,null,null],["ethereum","masq","MASQ",18,"MASQ","304402205264ef53ebc80a8694acb34c42f252f4a334d3e678185489ed5ce88bba0ad7d7022028efaa91910944471a3829a71b971b172bdc8203fbfe34ada9c8f53e24001cbc","0x06F3C323f0238c72BF35011071f2b5B7F43A054c",!1,!1,null,null],["ethereum","mass_vehicle_ledger_token","MVL",18,"Mass Vehicle Ledger Token","304402207093904cc671edf7de33f8bbe506db295d0a8ec2ebc2f6776e9e0aa4fd62538f02202c327db24027dafa90c793499e7c917a56d67bd5a95fe45ac7145cdb17065d01","0xA849EaaE994fb86Afa73382e9Bd88c2B6b18Dc71",!1,!1,null,null],["ethereum","master_usd","MUSD",18,"MASTER USD","3045022100c3a22b772c5d02941152a6ebafe211a947ed32dba906f22fa3304c807540feea02202bc95577aa97d1e68e8ae03e44a0664be69780fb3b803af845bdb524a43a26bb","0xA52383B665b91DCe42dD4b6d1E0Fb37d3EFFe489",!0,!0,null,null],["ethereum","masternet","MASH",8,"MasterNet","304402203d8e2b86edd5b730c25445b2388fccaf189d73c96e42a2b125a3f7a7f899f7e702205698d1cca894fec80f1f7c804cd5aa1905e2cc64b90279e4cee982bb5f280846","0xa0d440C6DA37892Dc06Ee7930B2eedE0634FD681",!1,!1,null,null],["ethereum","math_token","MATH",18,"MATH Token","3045022100fc01f267f3180a46002ee16a17cd7c38a132c51f7c021291bf5f49afaaec52c702202fb6b48a31634ef5535c3463feb8c475f8d9d0d14e6f08ea3be9eb6db7c2f471","0x08d967bb0134F2d07f7cfb6E246680c53927DD30",!1,!1,null,null],["ethereum","matic","MATIC",18,"Matic","3044022000d8fa7b6e409a0dc55723ba975179e7d1181d1fc78fccbece4e5a264814366a02203927d84a710c8892d02f7386ad20147c75fba4bdd486b0256ecd005770a7ca5b","0x7D1AfA7B718fb893dB30A3aBc0Cfc608AaCfeBB0",!1,!1,null,null],["ethereum","maticbear","MATICBEAR",18,"MATICBEAR","304502210082e1db359bfbb6428ab35e49ab431e8f3679dbd61c2c536efa17d4011b99c7d3022024c616d3cdc115e3a6c4cac5b44a2143f572be709c1d5723cb427a1f7106be6a","0xbE893b4C214DBFfC17ef1E338fBDb7061FF09237",!0,!0,null,null],["ethereum","maticbull","MATICBULL",18,"MATICBULL","3045022100a1df8d75b26c07362cab6cd3fce2e5eb744c8df57a32fe9494a2f3e3cba0d90c0220207af09b92c31249146e53fa63f0181aba5df1a277b60ce5ae5471631fb8fe67","0x7e03521b9dA891Ca3F79A8728E2eaeb24886c5f9",!0,!0,null,null],["ethereum","matrexcoin","MAC",0,"Matrexcoin","3045022100aa1909e8abe6b5cf213f316dc8fee17b24082a93fdf8c6bb92b6915707b60a3b02206739641c1df7743dbc4ae1fafb697119ff030ab56fac2d7951469c50714ee130","0xc3e2de0b661cF58F66BdE8E896905399ded58af5",!1,!1,null,null],["ethereum","max_token","MAX",18,"MAX Token","3045022100b5ae911d2f7641fd61a1e4b0c03e89415ec026f78ffacc4753fdebfe1de29e39022077dfe869aed77b9e5904107fe66d2de359d92d3fbf86e2302dac39a8c85de40a","0xe7976c4Efc60d9f4C200Cc1bCEF1A1e3B02c73e7",!1,!1,null,null],["ethereum","maximus","MAXI",8,"Maximus","30450221008e14f5b8ceada966a1197da5bacbcf7bdb52200ac71867b40d5acee60cc8ed5402200b6ac641519bffab9b1d12f8e66a1ce5acdb99b262b9d6e446fdcc4650bb771a","0x0d86EB9f43C57f6FF3BC9E23D8F9d82503f0e84b",!0,!0,null,null],["ethereum","maximus_decimus","DECI",8,"Maximus Decimus","304402207bc509a0736b4a90f0bd3ecd09e3674302117fc5ae3d4867c5c594e1a568fd75022011ec68ff351634837ed25d7e31c741950c5e34db2f6829424fe86befaf470fa6","0x6b32022693210cD2Cfc466b9Ac0085DE8fC34eA6",!1,!1,null,null],["ethereum","maxxer","MXXR",18,"Maxxer","304402204e159bb08114346bb868989c807ba7d85d1822ac19c49832ee453088a7c9b4b902205c0bef016c7de67759b3f691d16a2a4a0a58a92ae10a7674ec3a625cecbf52b7","0x9Af096C0C46e413FE46889255017E6F1f8BC18E2",!1,!1,null,null],["ethereum","maya_coin","MAYA",18,"Maya Coin","30450221009fa446b90ace0fdb043461ac1c96bfe28d68d07bc636220937d98a733686f5d8022067ccfb5cd7eb32a5a1803611587c52a2b4efcb71862750cf3a90888873813393","0x14468FF6b324f1C5A869e62B9C442846e7D0baf1",!1,!1,null,null],["ethereum","mbcash","MBCASH",18,"MBCash","30440220323405279551f27a0aa436f885e130d3d84e2371e0a0f36c59158491a5f901f6022065b264c4714f47dab0b4f1d39056ea4c78d167e9c6364decd88688c0736f2f3d","0xEfbB3F1058fd8E0C9d7204f532E17d7572AFfc3e",!1,!1,null,null],["ethereum","mcap","MCAP",8,"MCAP","3045022100fb599a58bf91ae903ceb82bab7aa119a7e3305396fc832537ebc892091d648ed02206ed5b33dba946525c0d9934e1f43231025b16d1347e82af5c69b08baf85d8cc4","0x93E682107d1E9defB0b5ee701C71707a4B2E46Bc",!1,!1,null,null],["ethereum","mcdex_token","MCB",18,"MCDEX Token","304402201e25bca21074a3c01dba0dc588a44493bdd56fbfbb56012229e41ae6c2fa33420220241be2e5b6fd0d5f40e3a52513d50c909f3b0826b961f891a1cb3c17e07dd918","0x4e352cF164E64ADCBad318C3a1e222E9EBa4Ce42",!1,!1,null,null],["ethereum","mcf_token","MCF",10,"MCF token","304402204ad8c6b0e46f10b392bd7ffcdcb831b391a36d8b78b1f882872c699417496db1022073c8e007310222af6d73f02ca94a94b8d2e1d968e7f2f8c14e32020315ff5599","0xE33AE4E795114279721047484E5ad5cc7DF24fcB",!1,!1,null,null],["ethereum","mchcoin","MCHC",18,"MCHCoin","3045022100b4faa6cbeab04572957081103a49d6d18c5a948ea227cc16ee7131f4cd3e069d0220627c7b5f0c02ae5be758401e2cb3928aed62376c13d63bcc9c22a26dc2e48d73","0xD69F306549e9d96f183B1AecA30B8f4353c2ECC3",!1,!1,null,null],["ethereum","mci_coin","MCI",9,"MCI Coin","304402202e7126b8cb44f3bd80383808a6a4e092e3fe1a02b8a8926f51d1d8a5681c90070220288842bdd800c481db5a57dcdf44ff471d8e7739cd5acbf9af7488fbecdd4aad","0x3b58c52C03ca5Eb619EBa171091c86C34d603e5f",!1,!1,null,null],["ethereum","mcn_ventures","MCN",18,"MCN.VENTURES","304402205115dfc90b89eaaf1e571d54e2f841825b77fb903b3717c6d4e1dfca228293d6022050f251e0bbc3d305f9c83e07cce319b81c95d8250d02f8006ec90965be665916","0xD91E9a0fEf7C0fa4EBdAF4d0aCF55888949A2a9b",!1,!1,null,null],["ethereum","mda","MDA",18,"MDA","3045022100f876400829541eeab30e652b20bd2406cf1f08e374b94312070eceef08c4bdca02204afc4b4b8c53009dd5aa870992176489b6b1275d282099ff32dcaae9c7aaf18e","0x51DB5Ad35C671a87207d88fC11d593AC0C8415bd",!1,!1,null,null],["ethereum","mdbitgold_-_token_gold","MD999",18,"MDBITGOLD - Token Gold","304402201ae8636462d35bf985d69ed638fad5f7528c41b4cf2120a53fd30645b7684a1e022070718eda21167572f39fc8a0c0c2a1fc61f8c4982a26a9c18a82441b9314fa12","0x42D25dfBa5868c35E72134EF886E08484c313d48",!0,!1,null,null],["ethereum","mdcontract_-_token_contract","MDCTR",18,"MDCONTRACT - Token Contract","3044022025e80f3eb6934d6c658269227112abfd0b79e699c5ca4d0c80095cbe3c2598740220127164e24f7120de43eb5c559033d57c49adfabe16308da2aceefb5c91f9f8df","0xBE2907DfACc0121BbA0770bC6d4223f9e7d70E61",!1,!1,null,null],["ethereum","measurable_data_token","MDT",18,"Measurable Data Token","3045022100a6f894b1b6a82edfa499c6a9d5bf60e050316fce222848fb10f032a0e3be291302201f110fd712af135bdbd235b649795ad800291faf5190de4d3fe844d9f68cdc71","0x814e0908b12A99FeCf5BC101bB5d0b8B5cDf7d26",!0,!0,null,null],["ethereum","medi_token_v2","MEDI",9,"Medi Token V2","304502210085b6e5afc778446d320a1c4fb7bf816386135444b5c15967ac857a2a5e384eb40220478f64d341791952dfae753871f7c4431a2b9c97c126495f259ba12ed3821803","0x24B20dA7A2Fa0D1D5aFcD693e1c8AFff20507eFd",!0,!0,null,null],["ethereum","media_licensing_token","MLT",18,"Media Licensing Token","304402202ceea80f4b10591fbef872713063e68814fbc0bddaa537dd673ee8d39271a436022079ce75496e6cc5f49418b79dd50a56009dffd4557660a966dae33ff4c7ee44e8","0x9506d37f70eB4C3d79C398d326C871aBBf10521d",!1,!1,null,null],["ethereum","media_network_token","MNT",18,"Media Network Token","30450221008314d2113627c03c4af052b3b1b5e9cc743dc5438ded3f38b75c6036270bea6602201a480dc8121f64fc0ba753a9b040fca1f2d3fb012e7ccd3e356a73cba68910f1","0xA9877b1e05D035899131DBd1e403825166D09f92",!1,!1,null,null],["ethereum","medibit","MEDIBIT",18,"MEDIBIT","30440220399f24ffefe2fc3b047f714ffca68fe61391312bd265900d8e29f8ad90c35e140220190881734b707f8445503d1d4c58a6270d9c77a84e2087f5edb7749ae430e4bb","0x737fA0372c8D001904Ae6aCAf0552d4015F9c947",!1,!1,null,null],["ethereum","medical_cannabis_coin","MCAN",8,"MEDICAL CANNABIS COIN","3045022100d7303dae8e89bdaa7d1b5ac9a21e0f896ed790736ece57684ff11f8e805935b702206e8449a29365084d0141c0de0591ad1551cb67c02e5a79444ec22f67a8eec730","0x72ba699f0F3c29D0f886C264eC7350533A32b3d5",!1,!1,null,null],["ethereum","medical_token_currency","MTC",18,"Medical Token Currency","3044022030f79474080f52b138e964d35a98f912342c4867cb5f2c7b04f38d75053abda502201d9e5427f78c072f6fc8fbc138cb5daecbe6ecaf5bf94cfd7ddff793ff9f2b60","0x905E337c6c8645263D3521205Aa37bf4d034e745",!0,!1,null,null],["ethereum","medicalveda","MVEDA",8,"MedicalVEDA","304402205faadfde35e06f2342350c5725486aaf58522b6eb770fd22c331e4af9d62a7d3022011fd58deb4decb319730bc4462d4600abc0a5a6a7ce006e2f7ea624837335177","0xCBe7142F5c16755D8683BA329EFA1ABF7b54482d",!1,!1,null,null],["ethereum","medikey","MKEY",18,"MEDIKEY","3045022100ab4aa48d1f73fe4bcf0e022184a59226960c19ed67de502ac296c15016b345ad0220498b8377f446e396e38389866e22c1dfa836bd48daa9fa28464280735aefb555","0xE154D54890c35634ca525d543ed58C741af7CF7a",!1,!1,null,null],["ethereum","medishares","MDS",18,"MediShares","3044022011007e667a3be025927cb12bc3a41f2a3751cd5b777d80baef36fe96bb99d4f5022045b30d74ffa2ab54122f11d8c7994afaf6bb82995315f5093161ab403c2edd14","0x66186008C1050627F979d464eABb258860563dbE",!1,!1,null,null],["ethereum","meditel","TEL",18,"Meditel","30440220129c9dd2ea03a7f531940e51f920dfc390088d985f37a6e787a539854de1e3bd02203f39e57288a6e28b84936bd5fe86997b3b9780c9162cae1b35d683b3091f0529","0xEc32A9725C59855d841ba7d8D9c99c84ff754688",!0,!1,null,null],["ethereum","medium_token","MDM",18,"Medium Token","30440220022e6999d3c3e02f5c5443cb9e53a28d322a1e92b3addc9a117cd6bc1b1f3d1f022035851e83b0a040002445098caa94e0fe8f4f6cdcc5097c5755d1e794f830179b","0xd24DFf6117936B6ff97108CF26c1dD8865743d87",!1,!1,null,null],["ethereum","medooza_ecosystem_v2_0","MDZA",18,"MEDOOZA Ecosystem v2.0","3044022029ddad60b15e6ff90cc4f4815ee640a90f067aec2df483f657285227a88bb8990220283cc4d48bd4445128ae32dd72548cb5862ee93cf8dcfae14cc4d313771676d5","0x0eCDd783dc7bF820614044B51862ED29714d2BA5",!1,!1,null,null],["ethereum","medtoken","MTN",18,"MedToken","304402206c658f67f1645b0ff6c6956b2c49b5914a172769717fe6650546e478f2f374ce02203d8f91bb602979e5dfbdc4132dc93aea7469ef21349270e13f0cd6a3e0d67a0a","0x41dBECc1cdC5517C6f76f6a6E836aDbEe2754DE3",!1,!1,null,null],["ethereum","medx_token","MEDX",8,"MEDX TOKEN","30440220771c18ca76d29593e28ab8ca24614119ffe4efc8129c87415ebc63cb81654d2702207736d1e32f58256268ca98a3c45b97960d0fed214cabfd2d650858ed2cc80f9f","0xfd1e80508F243E64CE234eA88A5Fd2827c71D4b7",!1,!1,null,null],["ethereum","mee_token","MEE",18,"MEE Token","304402204161e901403f3e9a78bb5f032026376ba28280a8a5c5e32d1fe457174ba5a40d022015d7df157577fe83c23cc11cff59019a0b320ff2ea7a0cc515c911304fc56156","0xe1b583dc66e0A24Fd9Af2dC665f6F5e48978E106",!1,!1,null,null],["ethereum","meebits","MEEB",18,"Meebits","3045022100cf5794958e52d1d3a54216a3707cf8ecbfa1ae738db6b66a5319884098d8994b02203ca59b4b7055eec40c5fb7123e681031981daed62df54907214d95b357283f33","0x641927E970222B10b2E8CDBC96b1B4F427316f16",!0,!0,null,null],["ethereum","meebits_","MEEBITS20",18,"Meebits","3044022066748d2da1ac9a3306636b4e39494890919ff4db09bb4dfafab2ba2a2472ad59022042a51f3ea47ab147ca8076c2e68fd09fe0ccfea540283b25e8a62aa0df57effa","0x61BE6FAc719F871A24d9bDcDF97b6C94772C7E28",!0,!0,null,null],["ethereum","meetple","MPT",18,"MeetPle","30450221008eff616474e896f9a8fa4e455026cdcb8316214b4d360330760c58db50795e13022008f08dbe87814e9b07701c7cae00369da6788f3e7b6fe9e698da3ea04039eba2","0x47481c1b44F2A1c0135c45AA402CE4F4dDE4D30e",!1,!1,null,null],["ethereum","megabonk","MBONK",18,"megaBONK","3045022100daf6aec2012b8d4b4bc9c2b19e47c8f66a12f8901acfc19f37b908dd2b19bb4202207e48c41833d2fca091bc1c8af43b5169118ffbe3fef7feb73b4a81a40aa3171a","0xacFe45C352C902ae3A3F9B6bfE6eC994c5D791BF",!1,!1,null,null],["ethereum","megacryptopolis_$mega_token_(mega)","MEGA",18,"MegaCryptoPolis $MEGA Token (MEGA)","304402207e1ff3dc52529a9fc39a0c98b174aafa3a6a6dcd3c1ea621389f7c27c93ddfa502205b8c88398c5a94122324853d3f2259b9dbee0768bba47ae22f4443f9b014df39","0x3218A02F8F8B5c3894ce30EB255F10Bcba13E654",!1,!1,null,null],["ethereum","melalie","MEL",18,"Melalie","30450221008891eb63845980c6e2b1c3daf52591d4e5cf18b25a4386512db99d037ce54eb30220248187ff7888e11358ae5809a769eeccd544636fc55a7ebb91447cfca75b38b5","0xed0889F7E1c7C7267407222Be277e1f1Ef4d4892",!0,!1,null,null],["ethereum","meliora","MORA",18,"Meliora","3045022100f7cffa50b43b858a59b768b4a7dd9931940b8be80641adabe5ad34545280bc9502200809caab39b99a950a22ae197b9028ceee9a77c6644b3f1d4650c6319fe3c0a8","0xb64cD4F56043F8d80691433e395d08B1bEBDADF0",!1,!1,null,null],["ethereum","melon_token","MLN",18,"Melon Token","30450221008828cb753377c849d56d334b8b048011f18f460d9cd37ca56f54ecdefd7603320220513d1de8104fd805c0d91d040c343ed9a48886f1cea95ef0e2a3778f6e6b4dae","0xec67005c4E498Ec7f55E092bd1d35cbC47C91892",!1,!1,null,null],["ethereum","melonport","MLN",18,"Melonport","304402201b878cdb16a406ad74da0117c781e031d17e4c978285ddc84465bb96a649bb1602204be2f7b0cab48323f7a544429498af77a414415540194781ba7b94aa137d4682","0xBEB9eF514a379B997e0798FDcC901Ee474B6D9A1",!0,!0,null,null],["ethereum","membrana","MBN",18,"Membrana","3045022100aa0c300cd6a0e7301e188d261108be578f4f75dcfa5a768d572a3d9fdba12b2802201e81bbe64b36920dcbb068944527d4c730a207a3c7fb8ab0e4a656cde34a4f29","0x4Eeea7B48b9C3ac8F70a9c932A8B1E8a5CB624c7",!0,!0,null,null],["ethereum","meme","MEME",8,"MEME","3045022100eafac87d3806bad28cae44a683886494b343f8f7fa3272891354afcb2b8fe1f80220211e52376d9a322b102655415b5a395882cb38253d0f82a7f50e8c2054be4d6d","0xD5525D397898e5502075Ea5E830d8914f6F0affe",!1,!1,null,null],["ethereum","meme_cash_token","MCH",18,"MEME CASH Token","3045022100cd25d75ac427894408fb1a8be99246b38a1142910d2a983c7c6501aa7156b28702205dab68a47c43dce34e13f5f2e4e7b840d68db003dc048350c0057835677470ef","0xA4e7414FCba1AF15203030C6daAC630df8F16AEa",!1,!1,null,null],["ethereum","meme_games","MGAMES",18,"Meme Games","3045022100c4739872f68eabf8d3e36ab67ef33b5602e16054f9402dea3e7d96b5112a5cb0022045b0423e90c617f28b9dcdaedac79e17275cfd31d2eba87b82eaac6c75f2c1d8","0x311f809F14Cc30eC50570C59DdC708c0d69b8634",!1,!1,null,null],["ethereum","meme_ltd","MEME20",18,"MEME LTD","304402207859cb466fb01323de8a9889fc66c0cc4e1ffa35eda548abb0eab1c9ee0bf7df022006b5479ae53164d2cab91cf43ace7f167145559370fc558b4edfb39f37bb2a14","0x60ACD58d00b2BcC9a8924fdaa54A2F7C0793B3b2",!1,!1,null,null],["ethereum","memecoin","MEM",18,"Memecoin","304402206b63b10b79c5b8aa8f2df80d90553d03e90ab156aa28a1ab6d1998ab857bf6620220288962b6821a04cfbfd1d7acb8256eb578bfc2cd3971ad893c4d806df63af276","0x42dbBd5ae373FEA2FC320F62d44C058522Bb3758",!1,!1,null,null],["ethereum","memefund","MFUND",9,"Memefund","304402206f23236b6f6404a9478b113486a5ef8b78939a3a557928c79d53f488a865a53e02203a9d336650650c21fd16c8da81a88f3aa9b82b81035c2fbfe28614604a611ef9","0xddAdDD4F73ABC3a6552dE43aBA325f506232fA8A",!1,!1,null,null],["ethereum","menlo_one","ONE",18,"Menlo One","30440220688e9073546c0027aeff49113a56667df5e3c029665162da17a7587e8076dc4d02201723d93e5ac87f1685c6a2d632b6be85297655ea7edd7327396523c6bb53531f","0x4D807509aECe24C0fa5A102b6a3B059Ec6E14392",!0,!1,null,null],["ethereum","meowshi","MEOW",18,"Meowshi","3044022077b3090fb853a1d1476dc230694dab03fc96677576c85e984d36fd460ec758810220193e898acdbce3064b5873d57ea7ed7d42dde2e117e5efc39020a4fd2f4cc296","0x650F44eD6F1FE0E1417cb4b3115d52494B4D9b6D",!1,!1,null,null],["ethereum","merchant_token","MTO",18,"Merchant Token","3044022000af3e39210dde8266a33470a95ab9bf23660621e66297a75b173b8c3db856540220443e488128ba84b715021f2b2b51afa3830895251381aa7aaeb4d40ec5fb1b6b","0xE66b3AA360bB78468c00Bebe163630269DB3324F",!1,!1,null,null],["ethereum","merchdao","MRCH",18,"MerchDAO","304502210083635ae35edfbc2077d95507cb53ea974312240ad3629b3df1bc1a2098715814022075255703e63d3abc738fd9c3164aea63e6a5eac5ae1a6849b04114c6f6553727","0xBeD4AB0019ff361d83ddeB74883DAC8a70f5ea1e",!1,!1,null,null],["ethereum","merculet","MVP",18,"Merculet","30450221008df9978eb7a8842ea6802fea4d3ea04299901e0b579ca06914f608ab1525460a02202c9d801694ac5b07a07f9fe104f235ecc7d64fa867e36ef7f70a86dcd3fb1194","0x432A2C54de2DDE941A36d2EB8c424Ed666F74Aef",!1,!1,null,null],["ethereum","merculet_old","MVP",18,"Merculet (old)","3045022100aedc53bbd0f912716834071622a6ebf3416cb88a1f3e6507162769eb6e297813022076def0d781f8b48ba174c67af4103e93c5a8da8f83ea38b5b2f499a39f4f98e1","0x8a77e40936BbC27e80E9a3F526368C967869c86D",!0,!1,null,null],["ethereum","mercurity_pool_token","MPT",18,"Mercurity Pool Token","3045022100dec7bb5c579135b3fe07a70c128cac13a545acc81c8f0310e39d47f4cf25d5540220580025fea72fd5850516f80a5d513b1ec063fcb4dd5ebd2eb59db35549d5a719","0x032c5E819dBDe06252d80eeC246F4DB9C905A18E",!0,!0,null,null],["ethereum","mercurity_pool_token_","MPT",18,"Mercurity Pool Token","3044022013716a6d752444c5397179a85bc491f78a1a5a1e3a91ed0dea869a4a3babd528022014470a8557dd90c995e3ed3db456f0d7b545af92163b3076dfc0fa7b276776a2","0x0a3D4c11E487D8c7d5AC2045C08CE56fc606036e",!0,!0,null,null],["ethereum","mercurity_pool_token__","MPT",18,"Mercurity Pool Token","3044022056a64f75a48c74763decc567c957f07f38a0a48c141a29e285530b163f4c59fa02202653df25a549d883f416a14801b48b173b73691cd519da2d0e589925831c07b2","0x0f62704D34fB675242e68699c77dB8eed8b869f3",!0,!0,null,null],["ethereum","mercurity_pool_token___","MPT",18,"Mercurity Pool Token","304402206be80f86e0d4f983be7d33b75cca7ea9147583dd8650b06ea5c78b670ec5ce5402204664d3781b270f285224a8ebb8b98fb61fc094f7157eae8ec61e6a13f791de1c","0x2280D09B55c760f2717769aF5Cc774Dc63E1330b",!0,!0,null,null],["ethereum","mercurity_pool_token____","MPT",18,"Mercurity Pool Token","3045022100ca9bde4dfdde47d1f33a21d5886302a6bc9360228975bc974fcb509869b955410220671e56460cd563dce9e629f7c4e7b4b60bb789abbcda72a915d381a286d284bf","0x3Ba80EE3b02A2F1804aAD705aB97EEb5b4b9F075",!0,!0,null,null],["ethereum","mercurity_pool_token_____","MPT",18,"Mercurity Pool Token","3044022045ca622274b3e3f1379d51db96d2d7fad9cf7d9c9b45f99a9eefb9765746a11c02206c177fe3d8e08277d71d4eca4a8017ed98038bb9d8b7d59441c448b393fb4179","0x52E34c8D81977D9ddF45b3fc4E9768945EE95Af6",!0,!0,null,null],["ethereum","mercurity_pool_token______","MPT",18,"Mercurity Pool Token","3045022100becc428fdc35fda8d63d62e2462046281f11475dd4282603986e1c6de058926802207804b616a4ac6ce88d2986f431e3c7bfe571c5d7db30e938163ce6f6faf2f69a","0x6d4298B1648Fc7850A968dF952D41CBDC01a6A93",!0,!0,null,null],["ethereum","mercurity_pool_token_______","MPT",18,"Mercurity Pool Token","304402201367c5e2404f1e9c3c74da5197df1485bf49dc96b9ea57ca3e2010c5072210cd02206d21a26f6f5a49a7be7c31c15e1c463866f30459a45e7e9c8020a6c5c3499824","0x8532A2eCd64b3006D7Bfbb92F684eE022B1d4d35",!0,!0,null,null],["ethereum","mercurity_pool_token________","MPT",18,"Mercurity Pool Token","304502210095521fafc9273c34744010db50594474dfe08154a01378c73588d5fca6026689022011a5b976c05fef811de20d94393f4957854a0b355c95720eb3b1d60b3530901a","0xd9CCE949eeD0a5267D349a423BeDD7D468561834",!0,!0,null,null],["ethereum","mercurity_pool_token_________","MPT",18,"Mercurity Pool Token","3045022100de23640a5e05825353f10b997231385f97d952f81d58d0de8357e6a916ef461002201d9da488c93e4229f9d7d31a383b7d9dba2a16ebd2be7a8a7fea5f9543b93715","0xA90adAA694cF65c5B6DBe8037Fcacf3b7385f33e",!0,!0,null,null],["ethereum","mercurity_pool_token__________","MPT",18,"Mercurity Pool Token","3045022100bbb6cbe42f6f790152561f25bacb7617b4fb5b21283d2daab5d96277fe89ce2a02207233ad9260a5625714cd4396548a5fc5fb9f44a54fcc0c45e5cff0196057936b","0xeA1541b41155FAd6651056E92c841b65df85Ce19",!0,!0,null,null],["ethereum","mercurity_pool_token___________","MPT",18,"Mercurity Pool Token","3044022019c3ed09edbbb119ea30e477fc64b82b7865ccabab4e18a739642d555d24eadb02203f1ecf2e72e0893af853fcd6d3a27c7c573b4dfac0ea252cdfe8d3fa662d40d3","0xf4EceA12aFAC243BAC17942F1c9766Ef4438DE46",!0,!0,null,null],["ethereum","mercurity_pool_token____________","MPT",18,"Mercurity Pool Token","30450221009609c8ba4c704d628d8f7c8f90a3afd763a3f3ede1942bed84af87e0bd9cff650220496ae2136fbd7063b836c5047fb409e766afdc3a127bd32d8d8167a488f92d0d","0x1B93DD49929C1aEe0FAe189Dc29ad547a29F7644",!0,!0,null,null],["ethereum","mercurity_pool_token_____________","MPT",18,"Mercurity Pool Token","3045022100e6c1c2160f3974e46ff6f5c8f06a331e8f3ea101086719bf7649a4a09c0901b3022061897aedb9e6b818574b1833ffce20af4723f1b68ceec05eccddb2f3f4fef208","0x63E3Cb8579aE46E640EeE7A2e3741C339aA3C3E3",!0,!0,null,null],["ethereum","mercurity_pool_token______________","MPT",18,"Mercurity Pool Token","30440220189d697b124d079cf37fba348d723c8ece77e1d93b258557d09ca37b2e8ba6f802205de7e7e3e87417a5d6ba196628cb258c818b790b7cd6907d08651d3f12343cbe","0x649a314B45fE20B3E6a0F42F0C0B1636b184dCE5",!0,!0,null,null],["ethereum","mercurity_pool_token_______________","MPT",18,"Mercurity Pool Token","3045022100ea7bd88b440c13a4ea586bd437abf319afe1a42b9e68bc601df135c487eecaaa02204c350ed88710dfb5332f34a96fa427d5eb7dccda1557099a260d8fec0673a6af","0x837193f92Cb54E4009e51bEBf4e24AAe39C97e05",!0,!0,null,null],["ethereum","mercurity_pool_token________________","MPT",18,"Mercurity Pool Token","30450221008ad7475d4ef77c5781043942ff9df7568845503e69349c439d3396dc07585a400220779fc0afd31cee299f283a73797dfd3facde0bd882983d7ab773159983f02672","0xd588D30B9070247E1Ac72A45Bfe6B723D0fEd17E",!0,!0,null,null],["ethereum","meridian_network","LOCK",18,"Meridian Network","30440220644d249be8b890711ce52ba5112b236521fcaa5094318b58f7248d6302a5010d02206239350a5d058426e040aea2c732ecab5a2934821b14c46e57afff4b108c01ea","0x95172ccBe8344fecD73D0a30F54123652981BD6F",!0,!1,null,null],["ethereum","merit_circle","MERITC",18,"Merit Circle","3044022005b34718fd8ffe9b8c58a312c7c750ff57cdfa773434a001988538c2ababb9a9022050c6f30e09cf95e9ef3a2562aa3542e9636e6680c9f7695da387686026ae639a","0x949D48EcA67b17269629c7194F4b727d4Ef9E5d6",!1,!1,null,null],["ethereum","meschain","MES",8,"MesChain","304402207bd0912946eafde1baeaba57f3d0bcb5691a73549aa7fa91a0f114a43e1b6720022000c4ca44829ae617e226855fd63b29a2f1bd341e00f9d250882cf7cce85b1f7f","0x8f1135eA4f8946949441716d66e5390C5A990DF0",!1,!1,null,null],["ethereum","mesefa","SEFA",8,"MESEFA","3045022100ba9835dae09006405ccced67f152ece4bf012e0ea43e1e028f00630f20f2b02b02202d5304691cb47994cfbc69f860aebd9a06bffa40cb0565f042e724b1801775c4","0x27201232579491Ce9b116Ac6F37D354Cc723A2f3",!1,!1,null,null],["ethereum","mesg","MESG",18,"MESG","304402205d45064a5f61afa85d046398755fd176f9a8ceaeb57953bfd14cb165f59df74e02205ecea2139b8938346a6b2c560be7eec2c000dac9e501218833b4c2897a8a6db5","0x420167D87d35c3A249b32Ef6225872fBD9aB85D2",!1,!1,null,null],["ethereum","meshbox","MESH",18,"Meshbox","304402201ca51346b65e9e0d95e3a663369626d1b58c383ca3b020d9d87740263c44afb302201bf31e4bf4c2e33aca6f55d3948267fb707759c724fd137ee98d25b95aa3b00e","0x01F2AcF2914860331C1Cb1a9AcecDa7475e06Af8",!1,!1,null,null],["ethereum","messier","M87",18,"MESSIER","30450221008de809591945a39aebb1a6d602e1043e945fba8bcdad6cd28acb138e8808c1bd0220559d8e29d13d640f7eb98ddeade7ac67f250f451bdb34bd049ec284104f975c0","0x8AF5FedC0f263841C18F31D9DbCC97A47e1aB462",!1,!1,null,null],["ethereum","meta","MTA",18,"Meta","3044022070cdfeeb1e46985582fe5cddb9ce3207c309a91ed7dfa0bac58637d4afe7833402203bd6e5cab6f03d200fb3fd6a763c2b4da6d855eb540d227a257820f7ec0d323a","0xa3BeD4E1c75D00fa6f4E5E6922DB7261B5E9AcD2",!1,!1,null,null],["ethereum","meta_bots","META",18,"Meta Bots","3045022100e3970c5769085db7887dfc6c887f0782dc8eb8170cf722295ac5f45b8b616aeb0220697d0ba31b29bf0704610dffbcedf18f37fda49c4781f42b79aec44b576cc627","0x2F5C3dD519E8a502c48c9FC104Eee64fDFF05F03",!0,!1,null,null],["ethereum","meta_network","META",18,"Meta Network","30440220404d95c6870f053b38f5c3173269a4b7dc9467e70053404c60d0b7c54cb0c93f022049b33fd770f5ca805526192f479471e06f01cd47b12e7cd8b73423eb80e0fc65","0x8807e69dC04155AF64172Cd6f0B4738F8068D0D4",!0,!1,null,null],["ethereum","metadium","META",18,"Metadium","30450221008d844abd10979bb20e41b75b9df0ddf9efc7130afdc05db11416236b28969c0602207da3b2e46add9145e2cde477189a023db7bdaa2a7f8cb332b15e2ddff28cb4ef","0xDE2F7766C8BF14CA67193128535E5c7454f8387C",!1,!1,null,null],["ethereum","metafabric","FABRIC",18,"MetaFabric","3045022100d2d6c471de81c153fb358a01efd90075cbf0730f00b808d2ef5b28b2129f809a02200327015be8b0cf92802df424c0c378b18e234d592d42b7f78c074a9e6fd509ae","0x8c6Fa66c21aE3fC435790E451946a9Ea82E6e523",!1,!1,null,null],["ethereum","metafactory","ROBOT",18,"MetaFactory","3045022100e52b50924519be6480196eac2a6e238369e37067cdaf848a84b9c2c7e550fe9902205bab357b31fe2a80e559f6375a40179ea352eab683bff31ab9211c94c4f98545","0xfb5453340C03db5aDe474b27E68B6a9c6b2823Eb",!1,!1,null,null],["ethereum","metafluence","METO",18,"Metafluence","3045022100943dc6e0022cb2c1fac50175dd9e724c6239ee5927a5580be527c02c87398c3f022007eb852e3a093c0c2469e3b92bff5308e925c290f48e35309bf996f3c8c311db","0xa78775bba7a542F291e5ef7f13C6204E704A90Ba",!1,!1,null,null],["ethereum","metagraphchain","BKBT",18,"MetaGraphChain","3045022100ba9b1c257be068498d48b231224bb98a1a30d8c8d3da2ac36e3cb9d60510da43022024456ed92e81544b73fe14f1041e9d205ea4866563f5ef46fe259f686511057f","0x6A27348483D59150aE76eF4C0f3622A78B0cA698",!1,!1,null,null],["ethereum","metalpay","MTL",8,"MetalPay","30450221008328dd59dbd326f8114300d667894e0d8f7e2f02bd71372c5241f339c6e480d102204628b8170f850b99e331b29754dd5d5a2e326adb12e637be417ddfea9491694d","0xF433089366899D83a9f26A773D59ec7eCF30355e",!1,!1,null,null],["ethereum","metamorph","METM",18,"MetaMorph","304402201c720d8b064519f42e54abd5c4e949f6d2d6bcc6dd5b52072adfb949920ce77d022022c1f313e56625eab9c8a83ae9a4ef66618f94fcc4c9be215fc31e2b0a4c47dc","0xFEF3884b603C33EF8eD4183346E093A173C94da6",!1,!1,null,null],["ethereum","metanoia","NOIA",18,"Metanoia","3044022078d687d7a4b7313d18e58ece05a38d965a5d4785ac7a0fe92d7f8778a26a436702204ce077a1b80d1f045492bc673c84429b7fcec7821897cc3ac171c5e08a1d9244","0x22E3c3A3BdA39C897a48257bC822e7466F171729",!0,!0,null,null],["ethereum","metaprediction","METP",18,"MetaPrediction","3044022052536872cd7303d9a3081469feb5fcc2758d6e1666fb5af72cdf9ca8bd7048680220121bba348e0bf06718e9bd6731777dc30b8a2dfb6bbbc591123169aa3d103a5c","0x108D27F9c4b2A98C025c94c76Ca78c6Ce6C7A4eB",!1,!1,null,null],["ethereum","metaruffy","MR",18,"METARUFFY","3045022100b127c946ccdb51caa40adfe605ae8eca4a28dc0630c9bd55940c44538e0a842e02207bc66ff656b7329bf33e30c88abb62803916c811be9566a33050161c3a3d07a2","0xa4Cb3ef5f41a4D89D6FCed22ea8a1C57957629Aa",!1,!1,null,null],["ethereum","metasalttoken","MST",18,"MetaSaltToken","304402204002f20aaf69d514cf184113313436481490a08c53e5dfe5f1d52a5f94d6eafb02206ae91e0643422b0d636017854e83a25e13d38a364675a22e0d927bdafb72385e","0xA56ac1B7972c38e277eF3bac5f94aA60B2Ec467e",!1,!1,null,null],["ethereum","metaverse","MV",18,"Metaverse","3045022100a8f11cbc1c92573410a4ea70310d29d31740ad0d59b273f67472c189074100f90220113ae0b9762a104d33644b8bc437b922fc0f06c688641ee0f2c7a622f8ba9104","0xAE788F80F2756A86aa2F410C651F2aF83639B95b",!0,!0,null,null],["ethereum","metaverse_index","MVI",18,"Metaverse Index","304402207f3ed05afd5e65cfc6214ee03ceebca4c1ef01cdc806566903bde59fad5aa65a02207e5e878771dcae560cb60df14889786921fd2ab1247f8c215197fdfab84946d5","0x72e364F2ABdC788b7E918bc238B21f109Cd634D7",!1,!1,null,null],["ethereum","metaverse_nft_index","PLAY",18,"Metaverse NFT Index","3045022100ff1bf0d6db9c19a1139b1895f6f632068600cecb6a2a9125e57ce6531a8e89b902205f98663f10128627afc7d5b26ab0ea5144977ad68e01a9023f91f11f45a09ea6","0x33e18a092a93ff21aD04746c7Da12e35D34DC7C4",!0,!1,null,null],["ethereum","metawhale_btc","MWBTC",18,"METAWHALE BTC","3045022100a81e2d427f59609b33d20f445dfd7f3c5bfbb84cb85daf59b6a0d9418914d4e002201a4d52967cdbf7e3717598e0b54b4ae1f1f475d0545c4f92b5f88d3d2cc6f99c","0x3521c85C3000bff57Eac04489EB05BbD3193A531",!1,!1,null,null],["ethereum","metawhale_gold","MWG",18,"METAWHALE GOLD","3044022046d8988989b1240612d2bf9a2cb40a62c53e61845666f66c47fd7246cdae13c10220543b713afa36f7a938370e29ad10510798c5afcc12a02522a00dee169837e46a","0x45128CB743951121Fb70cb570c0784492732778A",!1,!1,null,null],["ethereum","meteorite_network","METEOR",9,"Meteorite.network","3044022005b57ec5b14cb9ca75eab26d4992a475b199445f5e13574ee842133a48a16f63022068ea2096487a326476bf206c1804c81ae8b95269d2b1d3e05baa731c54b61635","0x765BAeFCB5418fA9f7dddACb1ccc07BD0e890e4e",!1,!1,null,null],["ethereum","meter_governance_mapped_by_meter_io","EMTRG",18,"Meter Governance mapped by Meter.io","304402205c3adcc331e45c5a599d1a362f930d050cf11dc0bcd6d4227b527b725c7f9f2402205e40b9053a857e4279608136f0977c73ebca234a451467f3639835687d60477d","0xBd2949F67DcdC549c6Ebe98696449Fa79D988A9F",!1,!1,null,null],["ethereum","mether__usdm_","USDM",2,"Mether (USDM)","3045022100a67f8af76050ab0c5ae5169635d8b7792f5aa2a834cda00a2102e92c0f147a810220173593c7fe59e23d99456e6c2e9a198a9dc40a4c7fcce4a0c4a7c282eb4a89f8","0xD760ADdFb24D9C01Fe4Bfea7475C5e3636684058",!1,!1,null,null],["ethereum","method","MTHD",18,"Method","3044022013e838187a9be512227e16e4f9301ad5c182a523b592f79e1ac544d31d70eb10022036eacd5fcbc1474a7404529ac7f0055d81b0ead591108152af3495c558da3382","0x84bA4aEcfDe39D69686a841BAb434C32d179a169",!1,!1,null,null],["ethereum","metis","MTS",18,"Metis","3045022100cddbc8e2eec68becc91ac9e3d7899d1a4a2b96f9f034a4f09c9393bc4d26cafd022073d6e5f18f72958e8809820a4be179722b96273edd1df36a6e2ecfe5e6336ec3","0xA9598333B99d14D90Bc81CAd8Af82C4C70625e75",!1,!1,null,null],["ethereum","metis_token","METIS",18,"Metis Token","30450221009379f6d9b0d3c3f02e44a903732c53b3cc259cdacdde7ee87a23a8d8e81355060220790bdf1d31aeaac42caa2d0a0b52483a00bea11f0275d73a3c251cc59f21e9ba","0x9E32b13ce7f2E80A01932B42553652E053D6ed8e",!1,!1,null,null],["ethereum","metric_exchange","METRIC",18,"Metric.exchange","304402201a33a6da0a8ea5df1aeaacd5aae723d75ca39830066b39fbe4a8ffbfecb33ddf0220282feeae807d1ec9c358916eda930e0e90d1fdb9ded44c9c4a2adb5f13d8d606","0xEfc1C73A3D8728Dc4Cf2A18ac5705FE93E5914AC",!1,!1,null,null],["ethereum","metronome","MET",18,"Metronome","30450221009ab8888966c65bc0803061d3059d5159571b18cc42f50ce746a6ea94d83af77f0220383c9f38fa06f63b5f84978db856c7c87e16594376fd93a6b98b41145ddb554d","0xa3d58c4E56fedCae3a7c43A725aeE9A71F0ece4e",!1,!1,null,null],["ethereum","mettalex","MTLX",18,"Mettalex","3044022075e4ce18d40ee53696f8b786e40f5ba45d72ce600b71da766ac87f64249c59c602203631c36dbd8802af4859568386cc69c877e28e87619a23e304f20830342dfaf2","0x2e1E15C44Ffe4Df6a0cb7371CD00d5028e571d14",!0,!0,null,null],["ethereum","meverse","MEV",18,"MEVerse","304402202c3c5ec6ae4a6db94835af3a94150faa5b202d472b8816630a2e38ef7492f395022066ec106d86e9a4fc15853c36ff2e82fdfce5e05cc381d8aa682b8659028e0be7","0xb3Cb8d5AEFF0F4d1f432f353309f47b885E404E3",!1,!1,null,null],["ethereum","mexc_token","MEXC",18,"MEXC Token","3045022100e403373a42b92cd443c30a9b37205ae0011250a9a9975e01688d0c09666a4710022021912bf1fda453bba0a0e3f8ae9123e97a1d041c4e5f3748d57cce79d0c0060f","0x7DE2d123042994737105802D2abD0A10a7BdE276",!1,!1,null,null],["ethereum","mfi_erc20","MFI",18,"MFI_ERC20","30450221008ab6d5cebba142d8ebc06aec4e134c8e39637f1796b6d062b4ae7b6a60b862480220494abf41c717b46ce25c3d95fb1687f182d911bfd2210e7132caf587af17a97a","0xEaDC218Ac4cB7895a5A56e6484646b48f841C45a",!1,!1,null,null],["ethereum","mgo","MGO",8,"MGO","3044022008a86f428d2e2fa02921e225e4f6319c43b46ca99e6835844ab816447b34808402201dd41cc409e7ac459fecdfb702a2f17b30b71c4b5584f7e1e9eefe7c0c76a4a1","0x40395044Ac3c0C57051906dA938B54BD6557F212",!1,!1,null,null],["ethereum","mia_neko","MIA",10,"Mia Neko","304402207265254de5a224bc7aebc3c67c71d0db4741f923351c43b00098ee470fb4afbb0220353aabef227d1c23469972bcc8876efbaf2e91525c2d864739a8d0fc6e8b4e2c","0x8D52061af43C52204c717d0610ea8f52F955Ce0B",!1,!1,null,null],["ethereum","miami","MIAMI",8,"MIAMI","3045022100b5e2be679bbb6f51db52882d42bf3273436aaebdf83a2b8d39e255b77a69c992022036264440a3f7c84e8583aad571624069b2955051ea09669247e5c598dba1fa7e","0x74303D9D085A0D647EF47f9c0C424c73F3BFa6ca",!1,!1,null,null],["ethereum","mic","MIC",18,"MIC","304402207c35166f57c30d3ff1bc795ccc86474133673c910c3f0b3da562e1347ea7ac1c02202e4281c790cd6ab603beac9d8e5f4d558cc73f1f4bdbe3ab4853c96614e10c59","0x368B3a58B5f49392e5C9E4C998cb0bB966752E51",!0,!1,null,null],["ethereum","micro_launchpad_token","MICRO",18,"Micro Launchpad Token","3045022100ef6a2df447889b34194eff2e0a735dcda9532c9cf3e35df12beaf41383892b31022002cca91ac7141fee81f419e42cd7e4cab7872ff077c50ed732f7b924aac7e733","0x3B4102dfE101EC3fC22f4c95FBEf78EF6213656b",!0,!1,null,null],["ethereum","micro_licensing_coin","MILC",18,"Micro Licensing Coin","3045022100ced9e61e108bc0dda2e446ac3e32ee2cd0552034ffa341651e8564a3c15f8f39022010c412a387462d9bfc9f914448805d1a7e38e57728061bebc6fa1fa1403f7cbb","0xD717B75404022fb1C8582ADf1c66B9A553811754",!1,!1,null,null],["ethereum","micro_tuber","MCT",18,"Micro Tuber","30450221009714ce2f5108dccf7f9502196f06d06aa6d0e470c933e20084f7cc63f5b2c39c022004f4de78545ebe7a02ef96e80ffebccd83a2d4e39f796a313f47ee1b4441c835","0x6876EbA317272FE221C67405C5e8EB3B24535547",!1,!1,null,null],["ethereum","microbloodsciencetoken","MBS",18,"MicroBloodScienceToken","3045022100f8e11f118ecd2c627b360a6477babbcf69995a70b32365238571afdfa72b25cd0220057cc2b01071d68d8128f794bc1fdc0f683756a049b28041c735d0b28069d0b4","0x53893a4A67D4392EBEbDf1A683E98E1C577aB6C1",!1,!1,null,null],["ethereum","micromines","MICRO",18,"MICROMINES","30440220421581e978a1a9d2a4675c9dd5cd1b66c9b522f10e5821939c328f590644bd37022062b4fb5a525c12bf394fc2ebbf40236d5c4eb46d90f411113f45f461bf570c46","0xBe6C8f2810EF39420d2DC2901b8414C8c45FEE6D",!1,!1,null,null],["ethereum","micromoney","AMM",6,"MicroMoney","304502210092599a47e3760507256f801bf1b8b559650cb5918b37f490abb723911e040d040220412f7006765026ec6e8b923beae07f74c84dee305674b0d7cdfc952982d1a11d","0x8B1F49491477e0fB46a29fef53F1EA320D13c349",!1,!1,null,null],["ethereum","midas_protocol","MAS",18,"MIDAS PROTOCOL","3045022100c29b1779ea22e731aa6d3389a767ca744c7e319697757dd50af903b3e635bf9502203550b6b71e0d008f8600defa4cb499809684207b855b06fe45962e4a2078b179","0x23Ccc43365D9dD3882eab88F43d515208f832430",!1,!1,null,null],["ethereum","midbear","MIDBEAR",18,"MIDBEAR","3044022003dd1c4cc3927eca671de09182da581c471fa9302e9914bbc4012b3b5bfd173c02205027cdfd5aaa905c00a40d74a7297646a72145e3899dc6b71d4198a5f1360c68","0xC82abB524257C8ee4790BFDefB452b2d6a395e21",!0,!0,null,null],["ethereum","midbull","MIDBULL",18,"MIDBULL","3044022031383af9f9920bc2a97c79a541eb5479b53657165c1859f89f0ba2f30ebc714102201b29cd34f3e303da84ac582232bd481857d0fc7bcf1b1217f050c78085219fca","0x59db60bD41bbC8cA4c1EfEE6Ea2A97EAe1E30cF5",!0,!0,null,null],["ethereum","midhedge","MIDHEDGE",18,"MIDHEDGE","3045022100a1db507ad30867288a2b7b206198549e115f720fda7388003c2d600a0d8c936d02200f9cce20b2afa2f2fd548b337f7e1b8c0fad9796919a651905f06281d7e7771d","0xbEd04D5Ba351FB2a93470bEE04BabB32D7F6817c",!0,!0,null,null],["ethereum","migranet_token","MIG",18,"Migranet Token","304402201f25e61ecfb51576d45b50fe9320111e59af89b018132eae31d02fe2f292492802202be461243593dfdb941fc61956716eeaf1f55fd233d6dd0de5b993d3691718e0","0x05A78FfEa2b35AA1Af438c21cf06668CF118df0A",!1,!1,null,null],["ethereum","mikado","MKT",8,"Mikado","3045022100f5945fcce16cc468a20d1f514ce75cd6a3a46c371673085360cef4035b1f2ee90220274b51920c7fc0a7aefda5001838e45dbecb5fd1dddc4470a680e29cda973b2e","0x7939882b54fcf0bCAe6b53dEc39Ad6e806176442",!1,!1,null,null],["ethereum","mikscoin","MIKS",18,"MIKScoin","3045022100eaa2f463b3ee7b47452b65cbd12940ada344f5fe2718a97ce6838387c3980b6f022006ed01d89c883ab828b078b8af881969b6aa803cdc22c4071c71ff11d944ca8c","0xFbaf48e57CAB46F4c2E03eDB90a421D9fC6c7cBF",!1,!1,null,null],["ethereum","mileverse","MVC",18,"MileVerse","3044022078c16e9a1427299e8d3d62d3b20cc57cd8bedf567b6145a1a2a166e78d78b4440220046e8250dab512018d14fbf31bbfb2c935ad27bc07dd640607361894cdb12392","0x581911b360B6eB3a14eF295a83a91DC2bCE2D6f7",!1,!1,null,null],["ethereum","milkyway_token_by_spaceswap_v2","MILK2",18,"MilkyWay Token by SpaceSwap v2","3045022100d0b43eec4ffed9272af2dc6e1189ef09d9faff69339c24deed5d7e0954ec910f022017ceab88da0eeb9cd3a9372634cc30ffdcc18f99d1d885fda9a2b1aa6284c53d","0x80c8C3dCfB854f9542567c8Dac3f44D709eBc1de",!1,!1,null,null],["ethereum","millimeter","MM",18,"MilliMeter","3045022100b63b1730db6e668930a171b0c4825ca871d2c9e194141fa2bc9c2d46084c065a0220766c7228943df1d8a24a8567e6d0c883d205adafbecee98df2289db3e9853a1b","0xC3c221fE28c33814c28c822b631fd76047eF1a63",!1,!1,null,null],["ethereum","million","MM",18,"Million","3045022100fe17554986062d3643082c8649e560b15097f9eee683f8800e7a4ba147605f2702204293c2b342dc792e27dd00970d5310b24b87f7ce42de67d1a81ec31a1cb2c394","0x6B4c7A5e3f0B99FCD83e9c089BDDD6c7FCe5c611",!1,!1,null,null],["ethereum","mimir_token","MIMIR",18,"Mimir Token","3045022100d7764f6cba7ffdaf519e94209e5e3bc632e24097151d3782e47787367e70c34b022016b9eea9f02b39d82ace1e6642a540f066ce7a32341577315e27cf8ee868a805","0x71dc40668682a124231301414167E4CF7f55383C",!0,!0,null,null],["ethereum","mimo_parallel_governance_token","MIMO",18,"MIMO Parallel Governance Token","3045022100c393ae7f0663e87f8e03ff7c50f3087dec4c9095e8299c65d90182543693f36f02203c755fa36dd4991c3e6bcb001962a34fbf94feed13325f7abb84cb20be8b05b7","0x90B831fa3Bebf58E9744A14D638E25B4eE06f9Bc",!1,!1,null,null],["ethereum","mindcell","MDC",18,"MindCell","3045022100a17f031fcc4195fdc072c15bed514e362bbd455289192318c6bb37b7e61e06a8022036e1b659ff96f885e6b72817865f11ebda8635fd6f626e838134afb6efd04bcf","0x9e6C59321CEB205d5d3BC6c539c017aF6159B16c",!1,!1,null,null],["ethereum","mindexcoin","MIC",18,"Mindexcoin","30450221008b1348aeb6a912daf0bf1850f81e521dfde4dd86534d08d8a0e05675b3fa251502204050ed5e65f1472442ce0bb3a2ca323f051a0084125781fede59f69d46c46152","0x3A1237D38D0Fb94513f85D61679cAd7F38507242",!1,!1,null,null],["ethereum","mindol","MIN",18,"MINDOL","30440220245065a611b97ba876d91fc9abe7f0c9572bf013393d50257ce32aac9e0aaaff022050e03e5ebed899eb34294600966a617faec8270591e51dd58a9a2b174efb294f","0x5D64D850c8368008aFB39224E92aD0DcEFf3CF38",!1,!1,null,null],["ethereum","minds","MINDS",18,"Minds","3045022100d653025d5c81602ffb604aa2ffa269afc561126b26a0cdea74ff3f361827e4510220540e61a7906f31a63e913e7e09e9cd54fa3bf9df5109385a3b091e95fb03db40","0xB26631c6dda06aD89B93C71400D25692de89c068",!1,!1,null,null],["ethereum","mindsyncai","MAI",18,"MindsyncAI","3044022037945f9e753cf3c924070fccafca6047c75e3ffec32ec9131c588295c6570c1c022066e94ebb0428954bfe26ff8b2aa5c615f71253642a0684b4cfdb0d8cef4fdcad","0x75387e1287Dd85482aB66102DA9f6577E027f609",!1,!1,null,null],["ethereum","mine_network_token","MNET",18,"Mine Network Token","3045022100b54867627bd48443c3d279b3f6c9000b44437e92e5b891c3733c81296d9b0ca202205f4f2c2d4ea90101eb35dba9540283f93966239ad13989a1aa9e2f3f3f5636e2","0x829C97092C0Cc92EfE7397dd3ddb831Cc5835Bae",!0,!0,null,null],["ethereum","minebee","MB",18,"MineBee","30440220609853088a38b07b04874bac947bdaf82a0f3f4820d3c7fc5d3a2e33d340912a022041596f6d9e1a41c4e27eb02dfedbad43d434da0632a0436a5b6538c981f48e87","0x8D8129963291740dDDd917ab01af18c7aed4BA58",!1,!1,null,null],["ethereum","mineral","ORE",18,"Mineral","304402205c90ae4be520026e3e4029643b7c64eff15691ec50daa083a0dfb6fa71c7d040022063f539f67b398a310a2ee6d5ea251664ee90c657ee4d0da35e071dc649b0bd26","0x35aC488B773DAc506EE857895eE9DC34B250F313",!0,!0,null,null],["ethereum","minereum","MNE",8,"Minereum","304402203e19607a4c7007d2696ff1c83a31b0b0d53277fa19ca217e5651b59f0ae269060220581ad72a9a1d6372e90cb6818ff67cefc973b02b37d421148d826db8b52a6d11","0x426CA1eA2406c07d75Db9585F22781c096e3d0E0",!0,!1,null,null],["ethereum","minibitcoin","MBTC",8,"Minibitcoin","304402206a9a30c22babee27fd381938646ff3e126bde26e5ce5ca6787517208d5f7d4da022067da2d4ecbd4f743bd8e7c09afd452fd41e452da6bb22484696c9389c46baf95","0x7e8C149f70437eba6785f9059190A5b08aBf03dE",!0,!1,null,null],["ethereum","miniswap","MINI",18,"MINISWAP","3045022100972405b480fff7e32b076d0860a4273b180e520b998a966ad61f231e807b7239022016e5e112c1c7d02a4181b419cdf61f4acbaf57f2063d179deec27ed15f55ac14","0x4D953cf077c0C95Ba090226E59A18FcF97db44EC",!1,!1,null,null],["ethereum","minter_hub","HUB",18,"Minter Hub","3045022100d0b431bae4c977971f93c9f63ecde9b2e81b3b7105004c62814a5b385f96c7e3022047939207ef11d905b76b69799b1c2643a1a270da5d3fa18a4e2bdc5c09a55784","0x8e9A29e7Ed21DB7c5B2E1cd75e676dA0236dfB45",!1,!1,null,null],["ethereum","minty_art","MINTY",18,"Minty Art","304402202979df70a98d5782a468c6dae1108c0cb50259031165ca952bb7d6042988c8560220519f8b16647b1ded1cdb752de94197a15ebeb8cdd26cd6107584ee3484779adf","0xb6c6920327B33f8eeC26786c7462c5F4098D47E3",!1,!1,null,null],["ethereum","mintyswap","MINTYS",9,"MintySwap","304402205a12758e579df50679b67b8972b07afbbe1e63cbe3d419eca7083d38a510281302207c99646b3905c6037b4b66773238fae31702bb747cf642f736d56bf9139d7698","0xBbd900e05b4aF2124390D206F70bc4E583B1bE85",!1,!1,null,null],["ethereum","miraqle","MQL",18,"MiraQle","304402203a9c3fb67900f0c60e968cb53699cfff2cd161f8984d130ee05dbf1e2b7361e602205b19f79e4ee67f53f27eea7550b50b9a101f7d369401462fdf97c23dd3de0b46","0x428dc22668E6F3468273634067e5545ED5417A3E",!1,!1,null,null],["ethereum","miro","MIRO",8,"MIRO","3044022041d4582bc3eb260a600d29a027644787ffeb2f3a349a9ff754c8fbbb219c5772022063de4c9c8cdd2e8972ed091ba314ac8565250f5302314f15b7cec93fc24050c8","0x0168703872fa06741Ecaa9Dff7803168e83f7aE0",!1,!1,null,null],["ethereum","mis","MIS",18,"MIS","3045022100fd1033e50caa3a46dd3fed25861dd61d104a98277e11954efa9d53a31600d476022030ad9c46c8667fcc46a5ccb4dd9a51b21d7465733229b1d88e71fd6e0b66dc0b","0x4b4D2e899658FB59b1D518b68fe836B100ee8958",!0,!1,null,null],["ethereum","mis3","MIS3",18,"MIS3","304402207006f97e4aec9f35f8f237227290b4fe8992e249b88743a26cd066199c2555d102206ac107230f613f960d98ae75ea0611b712aad30eef4d1886355e9a3fefc08f3b","0x024B6e7DC26F4d5579bDD936F8d7BC31f2339999",!1,!1,null,null],["ethereum","misbloc","MSB",18,"MISBLOC","3045022100ba910d3b6eedfcd04704f4ed10d915496ff51c59b7f8262497aba5e37e6c22370220526c8253db5c3ec08dc28df00a01fef3fbcc864dabcb3e250fdfe8b6465d9e7a","0x84c722e6F1363E8D5C6dB3eA600bEF9a006Da824",!0,!1,null,null],["ethereum","mishka_token","MISHKA",9,"Mishka Token","3045022100b87dc0d9f38c11f6c59b12d3f6c1186148d42ac0e963e8f990bc9014cc838d27022053cca3339084713530e5f4166a8eab311173952c198947e753b98f856484d78b","0x976091738973b520A514ea206AcDD008A09649De",!1,!1,null,null],["ethereum","miss","MISS",18,"MISS","3045022100a71391f13c2dda96af8e57dfb6248035c1e88570b6cb4af0bcaeb215bfec9c1802206ec154dd08e549bcc8078264aca380acd04c7f33bd0642e962bd0e9579f12b31","0xe653967F0beb6E313c6350F20bca9A5f4C636eeD",!1,!1,null,null],["ethereum","mithril_ore","MORE",2,"Mithril Ore","304402203fd61c581cc89e9f2d2c83c648af6d3d700617d620ec1a27661afc72b725ca880220165ed5b2edc67733f8f1de1df484911d0bde792410e110272ac19dc3923f9dd9","0x501262281B2Ba043e2fbf14904980689CDDB0C78",!0,!0,null,null],["ethereum","mithril_token","MITH",18,"Mithril Token","3045022100b200d8fb17b696bb4d2f87036fd99ace70e3122d9d62d17a4088d484d4e153af022069241bde8ada7dd32bfb8e2954f81bb2511fe344e0798e484543e62c142a1cdf","0x3893b9422Cd5D70a81eDeFfe3d5A1c6A978310BB",!1,!1,null,null],["ethereum","mitrav","MTR",8,"Mitrav","304502210099602af571f0cf60645f00d3ffad5645ec5ca1d6f269a5e03aa963fea2284e030220178b6900bfa1604fcbac86995407d283965f941ac64b6a592d5688e96eb438f6","0x7FC408011165760eE31bE2BF20dAf450356692Af",!1,!1,null,null],["ethereum","mixin","XIN",18,"Mixin","304402204c1dab927b6ae1964024f3b8dc31b02dabf7165675b2f1ea6c7512a3d3e7b74b022002212edf1ca3e5eb241a9586e1a5c8117b7d3c2ef0e7591b097daf84cf819c43","0xA974c709cFb4566686553a20790685A47acEAA33",!0,!1,null,null],["ethereum","mixmarvel_token","MIX",18,"MixMarvel Token","3044022100e6bb94c5a258ef6d08f3259e2e99701c006da6163f99259ebfc662082797fac4021f5e746f4ce2c930f3d09b6423139bf4c56ffa86a70c3c7c7f737bc4e74198c2","0x5d285F735998F36631F678FF41fb56A10A4d0429",!1,!1,null,null],["ethereum","mixsome","SOME",18,"Mixsome","304402200cf04d4f35c8e9d17e12fb0be8ca1c6ce3bfdbf12a21628e5384f10c3413b8780220233e5e0eae17de9a7f51c0900e09c3406d8d545ca5dd50ae35413b93fa6a2c31","0x3E8FFc8c3Cb0DB3081Df85DeC91B63abBbe99F71",!1,!1,null,null],["ethereum","mixtrust","MXT",18,"MixTrust","30450221009cbca15500800e22e4a6141e65df2f14f517265d6b9d1c7d7cb06dd8e977277802202fd7da5dea934f0744c99f2c5ca7da5c59d79cd0340a17ec624428dd03fe39eb","0x6251E725CD45Fb1AF99354035a414A2C0890B929",!1,!1,null,null],["ethereum","mmaon","MMAON",18,"MMAON","304402202ac1aebe706159343b3c81d1865134811683f1c4bd4477f44725804273c09b660220183f269c68272838426d6111aee7131b66b0847bf661a0ee7d55166b8bf3c021","0x8315472Bae77F9a2B856A67Eb0796480AafCd51c",!1,!1,null,null],["ethereum","mmtoken","MM",18,"MMToken","3045022100c30cb857b6afc5c8377849a1a572bdedf8e592ae11012820d6e2cb57aa148dcf022023b284753716c5cefa1c54fc26ced0433e445e8cf98cb64cd3234eedffabe35f","0xa283aA7CfBB27EF0cfBcb2493dD9F4330E0fd304",!0,!0,null,null],["ethereum","mne","MNE",8,"MNE","30440220287c19c05b7e3100062e9871d7274a50f4c177a9bc4b62a65c025b52b15de7b702200e77ce4f51609a2142b56b0f0c47722f785db0982178d0bf31299e8c85bfe1e4","0x1a95B271B0535D15fa49932Daba31BA612b52946",!0,!0,null,null],["ethereum","mnft","MNFT",4,"MNFT","304402201c7d2167ccbaf729d1c28c99087d84c589da4cf6b2942b4eabbf161bea574242022061ec5e400b2d9ec7b7b4768ed6f6dc585bb8a7182c532283bd1af590a2630063","0xDB7eB3edE973665b1BB9F3016861E3255062E4ED",!0,!1,null,null],["ethereum","mnmcoin","MNMC",8,"MNMCoin","3045022100d6a0b4d4d87e84a9cf45bad674bad32c1eb1c536168222e273a9bf4edee10008022001bc893577c399aed33cd7f60855521d4699a2921d48c8567e881a9f9893da20","0xF45091f25d374BbE956c0bb64bB85e02D07Aa741",!1,!1,null,null],["ethereum","moar_finance","MOAR",18,"MOAR Finance","3045022100b759fbf9034fd866a1933a0657bc83062d82903b748b7bc006518e232166b7d20220234f1e024bc881d952aa5daf983854774d534b2c21081c71fe07dc604ee9fdd4","0x187Eff9690E1F1A61d578C7c492296eaAB82701a",!1,!1,null,null],["ethereum","mobifi","MOFI",18,"MobiFi","304402206f6f1f6424326e6b405d4976c0bb87f3c8072f95e74c8bd21ac0b4e34d7670660220391af5ac642ae688c3ff946e0cc307cb483e2c43f9ac3389ed37109ace857f6a","0xB2dbF14D0b47ED3Ba02bDb7C954e05A72deB7544",!1,!1,null,null],["ethereum","mobile_integrated_blockchain","MIB",18,"Mobile Integrated Blockchain","304402202ac2ddebcb6c26904d9ac3ad2017f6e0da454d248aae8d0fb8939acec6eea93c022024ddb1de9fca4bf016ffea35fada7a11992d2b5994784a868099b81bda65c26d","0x146D8D942048ad517479C9bab1788712Af180Fde",!1,!1,null,null],["ethereum","mobilian","MBN",18,"Mobilian","304402204dc498c14168bffc4b86e01ebc82408aeacbf5e9afe9294f3709f9c1f271dd9002201b27a28c35e5d77f2d0827b0b2d3aa670a327bd1ecee481f6296ab002a47a5bb","0xaF80951201a0EFF85A0Fd3aDF4c7043dB856d3E6",!1,!1,null,null],["ethereum","mobilinktoken","MOLK",18,"MobilinkToken","3044022021e1ca1cdccc210b7d60c4e84063fba418e04e1998bc0eae9d48faa4123475bd022063ff050a54f369cf6ccfd0e85c5209e8f57cf317078a3a851b4105412c0de512","0x97Cb5Cc1b2e10cC56DC16ab9179f06dfEDBe41A2",!1,!1,null,null],["ethereum","mobilum_token","MBM",18,"Mobilum Token","3044022068a2116286ff227b8a17ebc60910a58bf9860c3dd1dcc0b2f48cff189ad20df702200ec598737733b34d7eb09dd6935abc05775b6381141cc6c89cbca3de13370d4d","0x281F5B914b0D589F8193cd5e711c6920874E00C8",!1,!1,null,null],["ethereum","mochi_market","MOMA",18,"MOchi MArket","30440220586f31a8d43902e505f0204c4ceeb24d3095c359ebe85ff8c1fa62733ec6293502202fe89b9bb44d854c233cdda298f987d57132ef76db07f7bb9bb1ebbd5305c5e0","0xbd1848e1491d4308Ad18287A745DD4DB2A4BD55B",!1,!1,null,null],["ethereum","modefi","MOD",18,"Modefi","3045022100a69035b852dea09d3d00b09427b6c04b7433999ff06b040f354edc884fe4008302207223ea8681cd37c0260278272ee101588b2e204c1672a501beda2ae7bb32c3c1","0xEA1ea0972fa092dd463f2968F9bB51Cc4c981D71",!1,!1,null,null],["ethereum","model-x-coin","MODX",8,"MODEL-X-coin","304402200de27aa863c2901561c8212070d64dec7fa49c33ade4382aa292c21310f3f275022010427b1383e12df19e924f5694349ae62f4909906bf14fd95924184709a50027","0x3c6Da7763cAA0e4b684BbC733f04a8EC08Af3762",!1,!1,null,null],["ethereum","modex","MODEX",18,"Modex","3044022059d58809d9f8d164a6b3e86c71429dc305df15b72247566b08c2933d8a001f0a022023c52bde88de88cd80ef99c517d2fe5f2d8c4b6d82aa075af99e929f2f2c0d9d","0x4bceA5E4d0F6eD53cf45e7a28FebB2d3621D7438",!1,!1,null,null],["ethereum","modum","MOD",0,"Modum","304402200142cdd257df5a50fc4365a5aa6da20c9a6d3d132c63a59b06b65e7ac581ff8b02207cbba37ade70fc76465b9372422f730ca9e0d2a35ada09f76145bf5d9554b956","0x957c30aB0426e0C93CD8241E2c60392d08c6aC8e",!1,!1,null,null],["ethereum","mogu_token","MOGX",18,"Mogu Token","304502210084e023a5cdf1cf4ab5dff2a5fd4973a04566022739bb47ebe75b7516d582e48c022018bc972e3ab00ab369615d6404b89e5a90bc78231c7f139b1d680881b5a0b6b9","0xbDEC45952B5E234EdDC2981B43eeD360826D5087",!1,!1,null,null],["ethereum","mogul_stars","STARS",18,"Mogul Stars","3045022100d2065a4ad9171568ec1f49be1ab926c0a74d1ba00a5305fb0a456f60f5d879c8022009dc1f362dd807f56211b29ec9a6866d3b2b942827bc2b6016b729b89fd310ac","0xc55c2175E90A46602fD42e931f62B3Acc1A013Ca",!1,!1,null,null],["ethereum","molecular_future","MOF",16,"Molecular Future","3044022020514ee6047c02edb0d3fa9dd07e6d9f8d61b142b43e32f9b2dbbd68c2b11caf0220570fd7b15f67e86528cbdfe780598c7a1bb25628dd556d15098d6e4b534f3759","0x653430560bE843C4a3D143d0110e896c2Ab8ac0D",!1,!1,null,null],["ethereum","molten","MOL",18,"Molten","304402203610f65045544c0bd04669fbf7bf97e383301102851e9582f8cdabd883a0ad5d022041f782c8f1e6b5723dfb364ff1121ed9a1c290940d86329f42933f0cb5111d7c","0x1443e7c1CCE72662545D94779120C59251447e91",!1,!1,null,null],["ethereum","moma_token","MOMAT",18,"Moma Token","304402204942b690028efe8f6b94ed1456304fb342c59906c87f0886beef3a2d5e6ad967022059ee32dedfba254f234d5c1d609ae3cefec56f7dfa4295d990df481828338450","0x865bB9A28041259b4baDAFD37799A288aAbbfC8c",!1,!1,null,null],["ethereum","momentum","XMM",10,"Momentum","3045022100c91ebc4bb29cc8f25fff95cb93d90aa245e4eed230177570d75ba94a105bc4c702207e87d64fcb214b535c80b59ff5982c567b18189a15b79299702ec2d7c605962b","0x9a7a4C141a3BCCE4A31e42C1192Ac6Add35069b4",!1,!1,null,null],["ethereum","monaco_estate","MEST",18,"Monaco Estate","30440220674ff51a59efb994cb0db5946f767e1eee3fe94f34365220b32c512f5e40ce21022039b7275468c8f2ca69d0356a89faa6e564d9fadb0ad037e18b6b21ed75da04ba","0x5B8D43FfdE4a2982B9A5387cDF21D54Ead64Ac8d",!1,!1,null,null],["ethereum","monavale","MONA",18,"Monavale","3045022100e26c7f8f0cd88c0842b8d8ef47c71d0ab66cee368d11dcceec9e77cc9fa209c402207583a491a19ee26ce5425e1cf6add3817a981a63b97bffbc7ecb407d17267c7a","0x275f5Ad03be0Fa221B4C6649B8AeE09a42D9412A",!1,!1,null,null],["ethereum","monetha","MTH",5,"Monetha","304402202fceb7e741a0f508837dcbdbf6ac4573efb1afe1ad20f9f148addf9adf18c0b20220124c05f2409016be806ccf57f9e528a85da6453426b6f80e9b5d26d26a17169e","0xaF4DcE16Da2877f8c9e00544c93B62Ac40631F16",!1,!1,null,null],["ethereum","money_cash_miner","MCM",18,"MONEY Cash Miner","30450221008c2b929a90e3a0838d5c810b092b210fc024d40f3bc1c4d7a174d99093828ca4022020172f2dfe5b0e2e57495cd25de6a4b578c7ffa7f55edcd1a8e23bfe39b71703","0x3b3801F0Fc76528E42390Df701F513fc62CbF154",!1,!1,null,null],["ethereum","money_party","PARTY",6,"MONEY PARTY","304402207df05654d768924c1b1c18787fde75a24548fe3cdc8e42296b8b35c27e0e6951022044891dea15e113cf4267dfdf1121102d8af35ab17f4aa6864b28cdbcea6505b4","0x314bD765cAB4774b2E547eB0aA15013e03FF74d2",!0,!1,null,null],["ethereum","money_printer_go_brrr","BRRR",18,"Money Printer Go Brrr","3045022100b1c5072effd122b084661b782f41c2ebf7c5f3d0c25458b541dad07852e29e990220641ee68508836b74ddac1abc7be7cc754a198782c9a97de15445ec599cf0186c","0x8abf3a95862619A55fA00CB3e4eeDBe113ff468C",!1,!1,null,null],["ethereum","moneybrain_bips","BIPS",18,"Moneybrain BiPS","3044022068d56fd140aa51100d986d9dad8fe3e81b0b8105fb61ce4d2883ce7c0747e88d0220534290202913635f220b24996d9aba8f7630750b2dcb5e296d9ebb9a2ad38141","0x5Cb888182fBfFdb62C08fb4B5a343914F00FdfeE",!1,!1,null,null],["ethereum","moneynet_coin","MNC",18,"Moneynet Coin","30440220200d3a229fa4fabffe607741fd6873efdd2f98a4009cca681ef9329d9797b0c9022020883ccdf54e6591bbb7c489bfb51122d80b7e72adde6a171a24cfbcb1172219","0xBac7A1798350cdf2Dbfe0c210C2C9861223f4B31",!1,!1,null,null],["ethereum","moneyrebel_token","MRP",18,"MoneyRebel Token","3045022100fb9ac892d9cd7c3b2347e99fce75a992627460478876c597df08b08c6c49dd42022028096870364a46747adb57451ca157dd15ae6e5b5ac9aabe2156a1c93c6dea6e","0x21f0F0fD3141Ee9E11B3d7f13a1028CD515f459c",!1,!1,null,null],["ethereum","moneyswap","MSWAP",0,"MoneySwap","3045022100bec3c24078777eeb563803b24a9585d2d0c24d32f4e9b5d42048fe15e46cd5ea02200b8218f195f1e65966a563507bd933334fc00f2f8fcbbdbe394376f901416f88","0xC005204856ee7035a13D8D7CdBbdc13027AFff90",!1,!1,null,null],["ethereum","moneytoken","IMT",18,"MoneyToken","3045022100963e415fea3f68bf6f34fcc69a0bc137464e5f86eea793de08c80664b7f3b3a4022016c91b7f9b25db312bc497d3571c90d166278ee53b7c64323ce1976781449988","0x13119E34E140097a507B07a5564bDe1bC375D9e6",!1,!1,null,null],["ethereum","monftertoken","MON",18,"MonfterToken","3045022100a01c0855a31877a08e899147ee729fc25539a96b9fe97eb5601e415bfadb827b02201d7ca89edc619e454d66ae8b2d124b0b6d3ef637188cd14650957dd3f80d1dcc","0xcaCc19C5Ca77E06D6578dEcaC80408Cc036e0499",!1,!1,null,null],["ethereum","monkey_king_token","MKT",6,"Monkey King Token","304402200410508b9dd26d7e10da20c22ccc6af4ab86a79cdeeffc5eeb70f4b94eb9547602201eecdeb3147db0283e6df0028b60c950add0d52bfa2dc808d56230761ccf8f9e","0x16558553E4647ca500c3718C56C356eDB6F9b11C",!0,!0,null,null],["ethereum","monkeycoin","MC",18,"MonkeyCoin","3045022100fd6f5d7b6fa699ec04006193fa4394a6c7daec89f7aa45962d7eba248c216077022021e534626992b28bc50470df72122c6588e4c0571fb2fffd6b9234725aeb0f1f","0xA38b7EE9dF79955b90cC4E2dE90421f6Baa83A3D",!1,!1,null,null],["ethereum","monnos_token","MNS",18,"Monnos Token","304402206d72958f9dfe3e39d45aacbad1fca0f7262ea8383f76c4568c37be1c9dbe2926022045b23604616df3eec3355b1f132af6fcf18333eee3303800f9ee4a01e4b15179","0x53884b61963351C283118a8E1Fc05BA464a11959",!1,!1,null,null],["ethereum","mononoke_inu","MONOKEINU",9,"Mononoke Inu","3044022049760714499af1daa1c75e1f5bef89b087e68d0c245dac7fc0a5e519f67c542202204ec2b0d213ed3f64ae8c7f71d14f6769dc6948bee7d607feed83322c4944da00","0x4da08a1Bff50BE96bdeD5C7019227164b49C2bFc",!1,!1,null,null],["ethereum","moon_juice","JUICE",18,"Moon Juice","304402201753d18ba3149f3487d170be958af37074c0489cdc1535ec911c42bdd1cbd50a0220723df3efda4c4228b76d42c30b500b48057ebff6803e833d15a5d3dff8487db8","0x889eFB523cc39590B8483EB9491890AC71407f64",!1,!1,null,null],["ethereum","moon_yfi","MYFI",18,"Moon YFI","304402200c3d10365c35198e33b1692d5cf08a9dd14a68a316885a8475adda3a6a57e3600220460fc77497588d853e79c27b176767ed51596778a9f54fce1509b4efd49fbf12","0x1Efb2286BF89F01488C6B2a22B2556C0f45e972b",!1,!1,null,null],["ethereum","moona239_coins","MOO207",18,"Moona239 Coins","304402205b514c62bb7a9c51f2a4e5e65a9ae272bcc3c4399adc85887cd16429ff59dcfc02206d15362cfc3a1d7e3fe5cd2a34d6466e4730cc01d326d4838c16e8b85ecec399","0xd3C89cAC4A4283EDbA6927e2910fD1eBC14fe006",!1,!1,null,null],["ethereum","moonbase","MBBASED",18,"Moonbase","30440220299dbf8f2b0a42fef2ade750bc6e478ae386402cd0fdca99df8aa3797722a54702206f747433a966386db77141939abe6f3c63fb8b0249631ce2d0a0c172f1f9e04c","0x26cF82e4aE43D31eA51e72B663d26e26a75AF729",!1,!1,null,null],["ethereum","mooncats","MOONCAT",18,"MoonCats","3045022100c54d653fd5c692ad79f9fb9755b30f3d5f1c678887778fb65713476bad4aee300220156c8e587d7da40935f86f08791771628b9059b56f54c733c3a318600e4bab8b","0x98968f0747E0A261532cAcC0BE296375F5c08398",!0,!0,null,null],["ethereum","mooncats_","UMOON",18,"MoonCats","30440220610bb9afd30d28ac583975d780df2b2698d6699da7980833c37db9a3dfa824f502204e861a8d66b20f1fbec37a78ca6f313900fd58d1c599b9238d41d27e7e388d06","0x683239A4caB49642c6E025cF81D283f9c87bC07D",!0,!0,null,null],["ethereum","moonday_finance","MOONDAY",18,"moonday.finance","30450221008ab38c3aad8b12007d720f3a2998444fe194428335b22087458082502f3c20a0022074e480fc324b7a037724c8af3b95d79c23c41126360001c108d29584878b8d55","0x1ad606ADDe97c0C28bD6ac85554176bC55783c01",!1,!1,null,null],["ethereum","moondayplus_com","MD",18,"MoonDayPlus.com","3045022100efc29f9d9a6250e333486d81c92a41fe941f5842945a1e498d1f6ce80259977e0220431f2fdd44ff9c3cb39bbe7cc03cc0a9b36d3cc8204db1f0d719cf7a3b83a953","0xCB696c86917175DfB4F0037DDc4f2e877a9F081A",!1,!1,null,null],["ethereum","moonrabbit","AAA",18,"MoonRabbit","3045022100831ca85e65fe110c85c33053726da37babea1823ee8ff2d40a9782750ac6f9d4022018d6a02429189bfcaf0f4818055550ceb07536c8bfa8fecf4dc2a9ec15cc3a89","0x8C6bf16C273636523C29Db7DB04396143770F6A0",!0,!1,null,null],["ethereum","moontoken","MOON",18,"MoonToken","3045022100d2abe220a39478768f3c9a1a8f75ed1970ded402a882e928af4df1700b36bc7502206ee8e14e3948943b8a48a8c483372dbe74fa8573704a46cb7d0996b216fc62ec","0x68a3637bA6E75c0f66B61A42639c4e9fCD3D4824",!0,!1,null,null],["ethereum","moontools_io","MOONS",18,"MoonTools.io","3045022100d0f8a1d79f68899c927951c3c42129343007739121e62f5e45c43c2290ed924602204036015e25461be6af4d99d3f501f55585b01171ac09b3e11ffbe2edf26dbdd8","0x260e63d91fCCC499606BAe3FE945c4ed1CF56A56",!1,!1,null,null],["ethereum","morality","MO",18,"Morality","304402202d67710fae01a4c65c24c2dcd002c8787e886c857cbc1665eb6d5c9685896c51022033eff63e4d9b6c5ed6e4366b10c160bd366240d472baaf5954d6907af203116d","0x4fD5b9B5dcc9a5D5931d007ba4aE573e760d9B64",!1,!1,null,null],["ethereum","more","MORE",8,"MORE","304402203d5b847a3f5ffdb7c92ef824f0ee94cc1d4b9bb5c391073a2b81d156a8b43de50220643616789c3d8510fba0ad16f370e83f8a933dfee7f98700feefe4d9decf10c1","0x305DE070488C8469dFAC957226c9c900c4BFbA22",!1,!1,null,null],["ethereum","more_gold_coin","MGC",18,"More Gold Coin","3045022100a4e45c9b9d6247a15e245503fada9aa91c52a8525df3967df9f168e2d83eacac022061d8a9d38c77ea58cd4bd6ab9822a6e472dffe954fbb8d824c25ba814cd8413b","0x174BfA6600Bf90C885c7c01C7031389ed1461Ab9",!0,!1,null,null],["ethereum","mork","MORK",4,"Mork","304502210091d7eb399859f11248c8388006fd158deedd55f45f6251753dad3a8d3933177902202547562416a24a1fc53829de3e031f3504c813ec36fffdf2b73494cf6d1a74b8","0xf552b656022c218C26dAd43ad88881Fc04116F76",!1,!1,null,null],["ethereum","morpher","MPH",18,"Morpher","304402202e4a7ed9ceff78a6e0e04b30476020ea9fa1302c4e600bdea544a946bde63ff202207959e218c0bb6348ecf1f7ea47d0a6304030caaafd27824c345b1e76f66fec14","0x6369c3DadfC00054A42BA8B2c09c48131dd4Aa38",!0,!1,null,null],["ethereum","morpheus_infrastructure_token","MITX",18,"Morpheus Infrastructure Token","30450221009a351e355a4fac56473d6b1e9e2d6c2b88dd8bc33f1614dc59521b870fb9f81202206689779b0c5530eef13de227e2e0a5845d88cae61db635c4ec7a79e4cdad6005","0x4a527d8fc13C5203AB24BA0944F4Cb14658D1Db6",!1,!1,null,null],["ethereum","morpheus_network","MNW",18,"Morpheus Network","30450221008f9fb78e81fe0555c16c95e1d3e84d7f1555a420237f7bf24ec03f54c1c8b6fe022073cf3505b4319da3cf3e25e975bb76da435fff534e3ac1be331056c3423bca4d","0xd3E4Ba569045546D09CF021ECC5dFe42b1d7f6E4",!1,!1,null,null],["ethereum","morpheus_network_old","MRPH",4,"Morpheus.Network","304402200bae603a67ce6e870f16df087251c309157fa03e10f26112c52183cb0a0203100220367c4f998f6f98fc40c8b839a8f57b2ee14110740d78ba57139a0b71c766c884","0x7B0C06043468469967DBA22d1AF33d77d44056c8",!0,!1,null,null],["ethereum","moss_carbon_credit","MCO2",18,"Moss Carbon Credit","304402204deb9d15e0961aea70d6b02df271f13147320eda450b9f26d702bc3d4cf81e22022050a53c2e7c3d947de40896b32df8765fec5f829a28a48649bf1242133461fde5","0xfC98e825A2264D890F9a1e68ed50E1526abCcacD",!1,!1,null,null],["ethereum","moss_coin","MOC",18,"Moss Coin","3045022100c0eaa34c877c97c066af5b51c9545b00b11cd438bfd642336527659af9d9f284022014dd81c31167986501a08ea6049de5145a00ea30e2845ec5745ab55c26927b66","0x865ec58b06bF6305B886793AA20A2da31D034E68",!1,!1,null,null],["ethereum","most","MOST",9,"MOST","304402207137d285d3610ea4a0a9f0d6d64e53f48653be9eabe4e5ab458290f024e16fa70220352b33cbfb2fc501862030bf9fd717fe73b2abe3741b66bcb84608974e875347","0x784561B89A160990F46DE6dB19571Ca1B5F14bCE",!1,!1,null,null],["ethereum","mot","MOT",18,"MOT","3044022058008b74c58d6c4c96b72b12610940052650b3240074c99ba9defae3e90c5e4e02203ec0858bc53ef0c6bf98707ceed6d558c5599b82d9afaeb76dcba32e608ea259","0x263c618480DBe35C300D8d5EcDA19bbB986AcaeD",!1,!1,null,null],["ethereum","mothership","MSP",18,"Mothership","304402202b682111c63ea16c938be10d68d398e226970792db4ca546d57cc3f98bed085e02201334be83d225f994597a2374fa51ce0998dfa647edce2952276053c8815012ee","0x68AA3F232dA9bdC2343465545794ef3eEa5209BD",!1,!1,null,null],["ethereum","motiv_protocol","MOV",18,"MOTIV Protocol","3045022100f5751a3e2ace7e9b8e908e7523093367b35a1194e82effd57dcf6c0356f125de02205322ac8550b83aff31d860a88d88ff41f4b8d1d14b52cc45261b65c6999d9f9e","0x40284109c3309A7C3439111bFD93BF5E0fBB706c",!1,!1,null,null],["ethereum","mover","MOVE",18,"Mover","304402205456af13f3f49e6915a1dafa70b4e891734405abd94278861042b15db13af313022059621238d479b2cdbc654048c41b4e1bde29c2fc3b71cdc66d15dcd9bc157ad4","0x3FA729B4548beCBAd4EaB6EF18413470e6D5324C",!1,!1,null,null],["ethereum","moviebloc","MBL",18,"MovieBloc","30440220585e686e2769953a68da3c38457e2557706128e6b05799b52222f66933f955b302207b07dbff646612bba7b7d0cd238cea4d49fd5c07a2e8f1ae51cf7e8108eaea70","0xB879DA8b24c9b8685dE8526cF492E954f165D74b",!1,!1,null,null],["ethereum","moviecash","MVH",8,"MOVIECASH","304402205c6d70489d4258e54f47067bf283ab6263a7a342a9dad0260c18fe0fdfc3d9850220667375ba960c93bca51cf25e8412f3f185edfb542cf88d95b739fbaf5c96d258","0x45C943973e65d069906b0dC33dC31d1D7d9d09DC",!1,!1,null,null],["ethereum","mozik_token","MOZ",18,"Mozik Token","30440220475d4f8bd2d9352707f7119b053270d44f8676660d97df10c74b42e0df2889aa02205ec2099e7a7329268f0ee5a00bc81794843002f227f2b1e7c4a3897330a0409e","0x7BD82B320EbC28D8EB3C4F5Fa2af7B14dA5b90C3",!1,!1,null,null],["ethereum","mozo_extension_token","MOZOX",2,"Mozo Extension Token","3044022038762e752db4ce8746f7383ba0164bda50e1e82bb9b55144f00a108d6185824702206a40d09d469b5b8dd9d285a7d38d31d76065b37dc820a1f466e7ceb01fa98992","0xEA4931BfCf3260da6DBF0550e27f5C214E3c268b",!1,!1,null,null],["ethereum","mozo_token","MOZO",2,"Mozo Token","3045022100b3058ae98ca6d57b185f3886e81377d3f2eef94ebd334ffc805e5b608935607c02201c0e4056970956e28592ca69ee13a9a0b0d2854b1e2d9866d0a199f508ab0bd6","0x44bf22949F9cc84b61B9328a9d885d1b5C806b41",!1,!1,null,null],["ethereum","mp3","MP3",18,"mp3","3045022100e381681d49a9d781f867cae2dda4ba7d828e36556f9e006696d48aad09e06be6022077f09ba3353bc4a6e49a35a37c631d75c6013b4f30560b2d45fb6330b6290ff2","0x018fb5Af9d015Af25592a014C4266a84143De7a0",!1,!1,null,null],["ethereum","mp4_social","MP4",18,"mp4.social","3045022100c132e44f5ff5c3e56dc41ff78e8762cf0628ad59a6f05642af530f2b891aca4b02205c057934d5db35a1d839f93f6da0e2ec0344bd46db4fcc4aef3d4f1aa23863ba","0xE1A0dA60F8802b49cC36313BafADe3F9e12342FD",!1,!1,null,null],["ethereum","mpay","MPAY",18,"MPAY","3045022100f8ab979ce3f9ffb8df5b8fb2b36686f3d1a6add00778b6ebaa453d666d1a4f9902202feb77cc2c2ae2e50bb40260021705a545c89c43b09e8e6f243e7bf1aae6cdd5","0x3810A4Ddf41E586Fa0dbA1463A7951B748cEcFca",!1,!1,null,null],["ethereum","mrv","MRV",18,"MRV","304402207c05aa3efaeaeef82abaff35659bc64976f079ed421dc5a5bb053101a5e1b683022073417d820fc4ec06bd6a1f6631f867214a1f074cbe5f9844ed9545d624935d6b","0xAB6CF87a50F17d7F5E1FEaf81B6fE9FfBe8EBF84",!1,!1,null,null],["ethereum","mstable_btc","MBTC",18,"mStable BTC","3044022011ee02440556ca76fa801731b8493080300879adc89d1b4851ea3891f702841a0220798b379db0c79044703bdc047d1ac8d650a29b59ec9da102462519b09fd814d4","0x945Facb997494CC2570096c74b5F66A3507330a1",!0,!1,null,null],["ethereum","mstable_usd","MUSD",18,"mStable USD","3045022100d4d3c059720760c85ee5b2db5a22b23484461a03af74dfdd89dd5a2c7dd75ce902204e90ee582fef8fa8e7fd2b8ef4d426289a9a4dc436ad016fa93ce1c5d2c71d78","0xe2f2a5C287993345a840Db3B0845fbC70f5935a5",!1,!1,null,null],["ethereum","mt_token","MT",18,"MT Token","3044022019aa48c4dfeae3a869ff8838a915d0478995a78104c760c058208febf7749e8b022056e05f10965cc4bb7feef816de64fe0b59c930ed4f1b3434c63fb95e73ec09e1","0x9b4e2B4B13d125238Aa0480dD42B4f6fC71b37CC",!1,!1,null,null],["ethereum","mtc_mesh_network","MTC",18,"MTC Mesh Network","304502210087cb8fa703b0a4eb9543868e5fb71e314211887472ec7924fe2a39d9855b14950220179f14dd505f1e646e37230982dbf733f358ad7577b574c7831568ab74e0d174","0xdfdc0D82d96F8fd40ca0CFB4A288955bECEc2088",!1,!1,null,null],["ethereum","mti_finance","MTI",18,"MTI FINANCE","304402201ddbff6574d70c084e6f8d9831d33a21687a17b2c69744e714ef54da66895d97022031efff236f1f9f4e7ff38747e743ab0eccdb4038d5c92db84d9c46c698a934bb","0x86d3F38edaF7e7959E5d8E6Aea5aD3187b78C346",!1,!1,null,null],["ethereum","mtpelerin_shares","MPS",0,"MtPelerin Shares","30440220485db4a1eaddcbd0e1e20329f61b742e796917f51cd675bbc4c15f4930479a4502203e9bdcc63fb396ba9332f1e4dc11de6688be4d590dec84718d5950fc44e52cbe","0x96c645D3D3706f793Ef52C19bBACe441900eD47D",!1,!1,null,null],["ethereum","mtrctoken","MTRC",18,"MTRCToken","3045022100f504ccf6fe139c649651b9244b998b21ff7eff137d9347834556dd2ec30dfd0b0220678edc2d13f58c916330856e84746c4c8768589ebdf3e1b7cd008fd7b981fbc2","0x1e49fF77c355A3e38D6651ce8404AF0E48c5395f",!1,!1,null,null],["ethereum","mtx","MTX",18,"MTX","30440220736f2ff06326e53b1740568f5e150737c119922d9dc8cf5b5262243b2a7c285e022005b7f258fe32a2db51007da615a94868e05a4784bc24a750e8a8d09e3ef8f507","0x0AF44e2784637218dD1D32A322D44e603A8f0c6A",!1,!1,null,null],["ethereum","mu_dank","DANK",18,"MU DANK","304402200aa60d73e1a12eca5ddfea14a5f75487abb21ee2857f4ab427c1cf28e5d4881c0220779c0cf551f9c788a8a8f19d40d85b28ca723adb245515c582f4bd6f67e3302e","0x9Ea1Ae46C15a4164B74463Bc26f8aA3b0EeA2e6E",!1,!1,null,null],["ethereum","multichain","MULTI",18,"Multichain","30440220041cc946ea550b3e0dd9d65d89c1c17f8d6d2e3f5c7456cfca13f9a2dcae26e502205ee2b99a4a4a384345590a8d3a6e62b382681fe05278485434f253da2ab96338","0x65Ef703f5594D2573eb71Aaf55BC0CB548492df4",!1,!1,null,null],["ethereum","multicoin","MTCN",18,"Multicoin","304402202dbf8ec632ed010286bbb1743f33b38991170d33066fedff807beec49bed09d8022069ec8f67b03c9f030b7a985ff1941b7f1a7988ceb5bb0a6e3566f78a064163db","0xF6117cC92d7247F605F11d4c942F0feda3399CB5",!1,!1,null,null],["ethereum","multimillion","MMM",18,"MultiMillion","3045022100eda2052e98c20ae9caeebf0bb5870acac275c436a8a6508d0c2954915e8674c9022010b5112ade310141b57221aa62c3484317872778f02da113df359c636d54bb85","0x5b558564B57E4ff88c6b8D8E7EeEe599bF79B368",!1,!1,null,null],["ethereum","multiplier","MXX",8,"Multiplier","3045022100d493203747d28e8a5db36d61b58a16e7eae06966d1e7a7e9c0db6fa3b407c57b02202bbd7397f46285b4e1a115c7820e55e9fbe2f5bee068492460759a821634ef34","0x8a6f3BF52A26a21531514E23016eEAe8Ba7e7018",!1,!1,null,null],["ethereum","multivac","MTV",18,"MultiVAC","3044022076d071eca62f139c2f14aae0d437077fe0679949895ec7578ac52bccbbe570c00220270f93bd03c8c2b4e146dddf52f87b8035ef1efd48bd2d311a91e096c31d7115","0x6226e00bCAc68b0Fe55583B90A1d727C14fAB77f",!0,!1,null,null],["ethereum","multivac_","MTV",18,"MultiVAC (old)","304402207da43bf8783b4cca125096112c6ec59e0fb24a4dc2fdd96056b66dbdf2a9cfea02206ff3f011ed095c9f48868442655b035a64db5b4208a7462a049ca5d1e50a36e7","0x8aa688AB789d1848d131C65D98CEAA8875D97eF1",!0,!0,null,null],["ethereum","multiverse","AI",18,"Multiverse","3045022100b1fe9825a12b96192d9d710522509c1fd00b5a020153e38344e39e7a0c88f51f0220029320fea060ebde68763acbb9b6c83861bfbb5bc5cbf1c92a441e85b532ab01","0xc91B523A59ACC63A64f61fc7bBfB4bfc82DD25f2",!1,!1,null,null],["ethereum","munch_token","MUNCH",9,"MUNCH Token","3045022100911dab69f6537d9d9768b921d4e0ba8173df4574206354247a9a32442779500402204aca5ebec7bb64a2378c36b657cac7d3b841b97d1cc5b7b0b1aa00c893e08107","0x944eeE930933BE5E23b690c8589021Ec8619a301",!0,!1,null,null],["ethereum","muse","MUSE",18,"Muse","304502210086c28018118ffc5aca3458691209d052a0d3fe866f02efc0ef97ecf19eef16fb0220031b638084e7911a0c7ec0e6891505e9a22d4d573713e580102a1ea8183adb2b","0xB6Ca7399B4F9CA56FC27cBfF44F4d2e4Eef1fc81",!1,!1,null,null],["ethereum","museum_of_crypto_art","MOCA",18,"Museum of Crypto Art","3045022100819e1b625d9fc3da85c7c93a795e6825e7bdf9e7c7dcefc832d9d253f5ab4a4b022031df59cd702fefeed3aa83cbde57b56ac031ef8558a82d49e494d2a3c7680a56","0x9Ac07635DDBDE5db18648c360DEFb00F5f22537e",!1,!1,null,null],["ethereum","mush","MUSH",18,"MUSH","3045022100e37103512faf749515b28005433ef3577793b88c77a50cd098407be6789ffe680220032f2f8c9995afc43eaa90d272b0b9832aea8c074389413c1217aa5bd12c3d9d","0xea6412Fb370e8d1605E6aEeAA21aD07C3C7e9F24",!1,!1,null,null],["ethereum","mushe","$XMU",9,"Mushe","3045022100ba36dfcb7acc504ed837269e5b0cf7e4b6bfda74072a437a55a77ce1428e9f1f02203beb71775744a5752e28003c653bc3ab612238c538fac8092ffc18168c9c5b25","0x56123908ACA89bf60cE9659aE9F4589E46c8D2cF",!1,!1,null,null],["ethereum","musiconomi","MCI",18,"Musiconomi","3044022028decf8cd9425e5dc40d7e57e544120a5cc20ea3fad6e323822a123daadddb5d02201e78b27e8b9ee3691f7d9d0cd054785c0436af9b2d58bff2b8924ef60a1776a2","0x138A8752093F4f9a79AaeDF48d4B9248fab93c9C",!0,!0,null,null],["ethereum","musk_token","MUSK",18,"Musk Token","3045022100eba4e0ca9594357b9a12a8190b5d9333bfa717433cf78bb0bc3a9925651593dc02204184e7e114918cbbcc48ec24ea517c68e5f08b5567be033b42e5c065e47d03b3","0x5003B168b457B663c3c18FFcF5B6a24bEe8f59C7",!1,!1,null,null],["ethereum","must","MUST",18,"Must","304402205bc691f540202c7b9614840d876a88a18f93df6ba55ba15f894448ec58518de102207082ba334b4ad5fef3f51ce9b51bd1c4d4e9b7cc65dbf82f0942f034fec247cf","0x9C78EE466D6Cb57A4d01Fd887D2b5dFb2D46288f",!1,!1,null,null],["ethereum","musubi","MUSUBI",9,"Musubi","3045022100981b87180862844d09e5b1c4de97fc073687d466d4f38724f184ad0682617b91022016f2914770cf95b18cc18922845d1f187ec472348d8860c1191fba4d0386a81b","0x8Ee04E1e9400d4e2091Ff3A46509E246E2F34542",!1,!1,null,null],["ethereum","mute_io","MUTE",18,"Mute.io","3045022100cbe9bbf6c1e7c839ab24663e7653b4656f79e0160b9adb89b41a5c8b304882c302204b5e05273c10c145ede159d1119a743117a4adc3c31fdc33600d2c3c5cc096df","0xA49d7499271aE71cd8aB9Ac515e6694C755d400c",!1,!1,null,null],["ethereum","muxe","MUXE",18,"MUXE","3045022100d2b00bd14a925d06b89fd1b847fdae3e33c437141bdeb32a839d4f864ea771a302201da6b5b0a74c1afcd2446ef2748de3b5c4e6e81b34bb014d42075b76c972044f","0x515669d308f887Fd83a471C7764F5d084886D34D",!1,!1,null,null],["ethereum","mvp_token","MVP",18,"MVP Token","3045022100b915ff8e7bbd15239d04f8c471f0e74db30ba26e681dbc0b3e74e6453f5f928502203211f5e501a62e508f092351d2e2fc8196891356210aa67d990240393ef71d5f","0x65fC94d99Cb301C5630c485D312e6Ff5EDdE13d0",!0,!0,null,null],["ethereum","mx_token","MX",18,"MX Token","3044022056503fccd7303d7c52460ab1aca01994234846e4df6993f54935e718add964d502207f6d12c1fbf04e2dd8c3e96ac687aa709ed6701326a88579e7e9b3ce4fb0fa35","0x11eeF04c884E24d9B7B4760e7476D06ddF797f36",!1,!1,null,null],["ethereum","my_defi_pet_token","DPET",18,"My DeFi Pet Token","304502210095091ccf7fb8e74c63fbec983789e590d98a646bfafa625be5cc133b9e8d595f022029a688b24e19da574a07749025af1f57677bcd95e54cc7d501652d3666b8a88c","0xfb62AE373acA027177D1c18Ee0862817f9080d08",!0,!1,null,null],["ethereum","my_fucking_pickles","SODIUM",18,"My Fucking Pickles","30440220349f8575d53aa5e92b627d6b7d81d6f49bc2b83deca033c0a79129005c725cc1022050c20ba702c38600220f6bc2f00ecba48966d1edd907b31d5a1541d92bbbdfcc","0xc443930Ecd59e55e42Efe976B8a4bA0658f5c50a",!1,!1,null,null],["ethereum","my_identity_coin","MYID",18,"MY IDENTITY COIN","304402201c79ed8830a846d28d3dabcff7e7ef3c1875c5cead540b19449074bf6a5565c702201f173b53e907c41f87d2fabf52c59db2b73c4dff1a30959827ba38cda213cca5","0x5273063725a43A323300C502478C22FbB4e92C2D",!1,!1,null,null],["ethereum","my_lotto_coin","MYL",18,"My Lotto Coin","3044022038e9770f4d6c27230deeea4c636b2ca004a3a8f7d600f64288c0bee2d75366c802206b3b6ef1a66aa404b617613f05630e01c2a8e5fddb9fd44d40cc4f3f54844590","0xC110E8D4d7F4A319A1a8f16Ca94B3AfDE7665595",!1,!1,null,null],["ethereum","mybit","MYB",18,"MyBit","304402203c9a5fde09d2cffc3058e7124050dedfe5ce6e9a2309261377848ae7883a933502202e3a4318ebd5d82516b342c21e57c027736c900a2ea14b2b601b99b20a4a4e15","0x5d60d8d7eF6d37E16EBABc324de3bE57f135e0BC",!1,!1,null,null],["ethereum","mychatcoin","MIT",6,"Mychatcoin","3045022100d66939556a2230bbb78505f6bb0cd5aa1e6e094940c77deddf7e3806c3c669ce02200c72beb3c4cab5983c83fbecb783f00f8634f9ca75faac7843a35fc952abef2b","0xAd8DD4c725dE1D31b9E8F8D146089e9DC6882093",!1,!1,null,null],["ethereum","mycro_token","MYO",18,"Mycro Token","30450221008eb168e18504a0b743dab5ceb2f6308fe8580022cd7831df9cc7e63b8132dbc1022005e9c684ae76321f08f0a6c5adbfd85fb1f33a58f3f73b413224bc0312df30c0","0x50987e6BE405ebac691f8988304562E5efc3B2ea",!1,!1,null,null],["ethereum","mycryptoplay","MCP",18,"MyCryptoPlay","30450221008a91782c7ec2f9dbed0019b114705a4fdfe653d2a1c0c84ae8cd5366f42d8eb90220624754327e552226ffbaea275ea132ad73efa952f039140b876c0b426a165700","0x2186Ecb39f1B765bA7d78f1C43c2E9D7Fc0C1eca",!1,!1,null,null],["ethereum","myd","MYD",16,"MYD","3045022100d5a4a9b46216c4c202028841763d9f3b612719f9500ee1153f012ce3dc90c09d02205371d28cc1269d3ab743edac8a21727013507bfb843f8e9d352da542831a6e03","0xf7e983781609012307f2514f63D526D83D24F466",!1,!1,null,null],["ethereum","myliquiditypartner","MLP",18,"MyLiquidityPartner","304502210082b6bce84c647c96642110c9102b3b1783c6d06f8981bcfad0e1cf98472392ed0220133166bcb3aebcb08218176bb0b54cb85def756c4ae8fb894a9f064d472c9fe5","0xE22020F47B7378dfedcedd2C81d4137c22fE1152",!1,!1,null,null],["ethereum","mysterium","MYST",18,"Mysterium","3045022100f7e377fcf655bcab344d7abbc0caa75a5aa50bc4ca369b7d5932ecdeb0bf0eeb02204ff1874f817d3ed8076ffb38c73c3a86a41f25bff6dcbb0aadcc82e5aec7046b","0x4Cf89ca06ad997bC732Dc876ed2A7F26a9E7f361",!1,!1,null,null],["ethereum","mysterium_old","MYST",8,"Mysterium (OLD)","30450221008c79c0a431bf6fa2834c7781eee588fb580e18bebf7fdbf07b0493dde9ab822802202ee66a0976cb0200bfac548529aec5fe32214e5a827bc28e7985533054c79bd4","0xa645264C5603E96c3b0B078cdab68733794B0A71",!0,!0,null,null],["ethereum","mystic_axies","UAXIE",18,"Mystic Axies","30440220144cd3e8b59c1b1acb87cdc97fcb08271261cc0faad2169817b7049e30a6a8a902206c49c081e09a380230450ca69a23a6028a764d18032310ee9de56ebc2fd5e8d1","0x68B1CaDb8D5Ab0C97Fe9D9fbE0Eb60acB329Fe3f",!1,!1,null,null],["ethereum","myteamcoin","MYC",18,"Myteamcoin","304402202e16a25999287ffc0230f424b9e51ca415183ab09564490c05e8213e38ffe10a02201f8cefab21d758fc64be189bc9d043384e0f268cc4877385aab478822c29877c","0xb8323CfAFb0E6CC60ce332f1181D56e91BA0D8BA",!1,!1,null,null],["ethereum","myth","MYTH",18,"MYTH","3045022100c725fc14deb19530a8bbb3fd22542c431170c5419dd11cdc28b8e4a99bd118be02203145e2ccd576cfe241d6f2df65e3e9b1d3017877db2cc15b59454fff873c98b7","0xa12D7e5319f5b43476eF19D1569E10097caCdFE2",!1,!1,null,null],["ethereum","mythos","MYTH",18,"Mythos","304402203a2072e1b8a33839483554823945c1033e64261e4d95eb017ed9c2c7308498d0022074d62e09d8cdb761eaa6c266b686253d2755ca1fecb4d939f50c781749b4d121","0xBA41Ddf06B7fFD89D1267b5A93BFeF2424eb2003",!1,!1,null,null],["ethereum","mywish","WISH",18,"MyWish","3045022100ab863475146eb73b2278798c048a9d3a9ffc86cae3b492a172fdd012e10605ea02204f832566e83d474281d8b37c5e40df201caed3d5bc01ad1f05a44b1a689462e5","0x1b22C32cD936cB97C28C5690a0695a82Abf688e6",!1,!1,null,null],["ethereum","myx_network","MYX",18,"MYX Network","3045022100a763c71aa57b8132b9fbbf8cc481e96166c5e6bf15ce2136d9207afe1a7c0e5302205c5d0259c54f088651bf07c7dc89ecbf6412a6625163aec1db7a6fb8db061dd7","0x2129fF6000b95A973236020BCd2b2006B0D8E019",!1,!1,null,null],["ethereum","my\xE5_x008d_bu","MYOBU",9,"My\xC5_x008d_bu","304402206b87d4e6044b4afd6f92b2fa29a17a86bded1ecbfa0f63e0cc8d7df4aca2612202201b8b0636c40425ef2db3daa241c9823e5aaf86564e173b133904620fceb8c2bd","0x75D12E4F91Df721faFCae4c6cD1d5280381370AC",!1,!1,null,null],["ethereum","n3rd_finance","N3RDZ",18,"N3RD.FINANCE","30440220504f86c9c8d6b460e21aba02fa163b57550a31732b0fbe3ef23d6e9188036566022005b80af29bff3e76964a9dae8560e18151c13d648e3cb16ed28a16ab75e1275d","0x32C868F6318D6334B2250F323D914Bc2239E4EeE",!0,!1,null,null],["ethereum","nabox_token","NABOX",18,"Nabox Token","304402204ffc93e7f92a1131ce6ac1817f275894b784653d084a6cf0bccdd4b481326e630220680c16b0a9f1451f7a667cbd45fa6f30be4e784dd76d5748c44418ad408720c2","0x630bC7dD0aBfc2d196289cE09Db947DD2CAfae7C",!1,!1,null,null],["ethereum","naga_coin","NGC",18,"NAGA Coin","3045022100abebbab8ba44b9ac68a8599f459d4bc3bae52e87b36efcbe108a1d71f0caf11102203b8a59a06dee52fc45b23b14798f45bc9568691df79244c32f5e00608916cef3","0x72dD4b6bd852A3AA172Be4d6C5a6dbEc588cf131",!1,!1,null,null],["ethereum","nahmii","NII",15,"Nahmii","304402202c9b55e9fc75d01e5fd4a9567fdaf80acfa8b21b63276b7d49299208c6f1d2710220114bf97a4a23b2706290a47c0b5aa4e2fa652c3b5523e5de2007bb70ea443592","0x7c8155909cd385F120A56eF90728dD50F9CcbE52",!1,!1,null,null],["ethereum","nakamoto.games","NAKA",18,"Nakamoto.Games","3045022100e6fa18690f17214a1c162b91d2e95ce216021459905ee6a71a0cfd306f2222b902202232909ddc13ad65e9322a411c5c358d54fda81fe5b9af0e9e117a7d3ce2fe55","0x2E10348eE563dEc5FE483DE558D1946b7A3372c2",!1,!1,null,null],["ethereum","nakamoto_perpetual_debt_token\xA0","NAKA",8,"Nakamoto Perpetual Debt Token","3045022100bee58ba27998fbbe83c7927cfd01e80d46ac6f64339dda5a0d8127ce4db20bd102200888f1ea18e3e7d2aa0f2115eec31636495989adb635fb8ddc5211413db3d61c","0xDf282f170f3C32AC9c49f3f5Be1D68e5aE6Eb742",!0,!0,null,null],["ethereum","nam_coin","NAM",18,"Nam Coin","304402205d82a39ccd93e45a02f1f6f601221d38922d4c3d0097a611a4761e991ce7b4f0022002db5156dd79b9431d09d11076f44527d9f69f4222d9af0b8d439aab20574e82","0x05984006707585F66465e8A6505341f46b64fA7A",!1,!1,null,null],["ethereum","namechangetoken","NCT",18,"NameChangeToken","30440220380d5ff71c45e0af846a4be71ea848fa0c661cb9f046300c3a175be2d6e6ff8202203b6f80f14b2a161d7d45ec6b6d3eff92be2a655eca15b4830dbb0408673c9f9a","0x8A9c4dfe8b9D8962B31e4e16F8321C44d48e246E",!0,!1,null,null],["ethereum","nami_corporation_token","NAMI",18,"Nami Corporation Token","3044022026f00179324eaf64f634f51ec5fc25d842dfa7f63c4d6d4fecfaea488127592202200c75946ca591c4613aaa0147c001abbc283eb325c51eb7e1b742208996d0cae7","0x2f7B618993cc3848d6C7ed9CdD5e835E4Fe22b98",!1,!1,null,null],["ethereum","nami_ico","NAC",18,"Nami ICO","3045022100f9a3eea197d5a66452d71f8839fe54990deefd81226e43bdc5a4a47e486f095302202ecb0b87b606d82b8679cb5749652d341b18ca0037f4f7a1255e7ab225c87d24","0x8d80de8A78198396329dfA769aD54d24bF90E7aa",!1,!1,null,null],["ethereum","nanjcoin","NANJ",8,"NANJCOIN","304402202c4566b203447101a0fc42163afa94795d067d1393b17d3305aa1a5a437a280e022031bfaf01bc276e94a26b7e368d928fde57812a6ac975b472c3e9e219747f28c7","0xFFE02ee4C69eDf1b340fCaD64fbd6b37a7b9e265",!1,!1,null,null],["ethereum","nantrade","NAN",18,"NanTrade","304402205dbdb31470e54ac250709ac4da6004a398084ab96a658ee2fa2efd4cc262b2b102204e103d5dd05e315203fabf19eeb4c2b664136ec7ba7a9ba5a4bc48a479d29854","0xB393cd041aFC1ACA4C380C663793fE2c7b8A0212",!1,!1,null,null],["ethereum","naostoken","NAOS",18,"NAOSToken","3045022100ba965cc07b49df46b7d93972cb25729fc4dc8cda16935e02a5a66b19bfc127c402201471a12c61983b162e14a243ba6c12e0bb7dc8e10201c3456745262578742e67","0x4a615bB7166210CCe20E6642a6f8Fb5d4D044496",!1,!1,null,null],["ethereum","napoleonx","NPX",2,"NapoleonX","3045022100dfacee1758d4293c08eb441bbb9a8fcd847fed0a320f6daa12fe2f8c952e87b902202200b4c04bbb9ac8d2ad96458fc54ad8cda1624b14a0dd0a5ebcc8cd01a727a7","0x28b5E12CcE51f15594B0b91d5b5AdaA70F684a02",!1,!1,null,null],["ethereum","narwhale","NAWA",18,"Narwhale","30440220759b55b9465fbb81d5c79b3d37117555172034f0a1f9f50114b6ba0c9951fc6c0220251e8d57c178f828cce81da2d8e27c6b60959e788d76de4b0f896577ed3b7d73","0x7D529a5b3c41126760A0fA3c1a9652d8A7A07793",!1,!1,null,null],["ethereum","nash_exchange_token","NEX",8,"Nash Exchange Token","3045022100ff52c18acf0770529f6effcc08fc11fb05d7eb06612579ec895652a4022f05a402207edf927187a1f42e8acc31d0291fa6ff9ecd05078e0ee2c2cae1acd379266636","0xE2dc070524A6e305ddB64d8513DC444B6a1ec845",!1,!1,null,null],["ethereum","natmin","NAT",18,"Natmin","304402206061ccceb39a214999839a738871c58c5d7f6feb9c7f008a8514a37f13af56700220307218089972bd5a48d1fdca4b6cd4ebca879babda8aa54ff4a84248ae3b8816","0x90D46A9636B973f18186541d1B04ed3621a49Cb0",!0,!1,null,null],["ethereum","nature","NAT",18,"Nature","30440220516813b6aa483b5c290f341ae3704a1780146b2b94a74530834ee8dc2b5cbce402204ac0bce467b1f3d846e52b90cfef226d78590c8f6969c47cabe52a54526b8435","0xEcb79A9B7559168174c41B153997BC462B6dFE4e",!0,!1,null,null],["ethereum","navitoken","NAVI",18,"NaviToken","3045022100c48d55cbeaa3d8b870cc70c80d74be5282613c58beab6eede59aaeef97f2195402200a176ce1c9346bde3f9678b0abd924996bd51a4a9f3239488a2b4fa0a49a6846","0x588047365dF5BA589F923604AAC23d673555c623",!0,!1,null,null],["ethereum","ncdtoken","NCDT",18,"NCDToken","3045022100c0bb9518017f635ff0d8a0a532b536c82faba07600901bfd544da34ab01c1f42022049791f0e333e42258cae73c1af9b52b61475330b6a325dcb59762c939f6705aa","0xE0C8b298db4cfFE05d1bEA0bb1BA414522B33C1B",!1,!1,null,null],["ethereum","ndex","NDX",18,"nDEX","3045022100b01ac0ad37af8568fd84b0d8e8f3d472b4a5ed5d63395427865282aa0e31d3d102204d5c15a27b3279bb31620d09f5a9ee061438b3efe019dd7e68bffe3ca2143516","0x1966d718A565566e8E202792658D7b5Ff4ECe469",!0,!1,null,null],["ethereum","ndn_link","NDN",18,"NDN Link","3045022100d1e868d604224eb138af7e36a0b4a9ceecb752679e0869d6afbcd9e81e2b629b022077f9d2ad25383c141b7359ae7b8bc1ccd0dfbf79003e84d2f7d9e96031683acc","0x6Ec47a178A9d50d4ec4683003d8324f19Ca35382",!1,!1,null,null],["ethereum","nearpad_token","PAD",18,"NearPAD Token","3045022100b9c3d43167830b32a7db437708934e0be1bcad6ce7c0afa02f830970c9fef46e02202e816b9ce471a682d289bdad16972b743f16663eb951f623c2a28a439b1b9d86","0xea7Cc765eBC94C4805e3BFf28D7E4aE48D06468A",!0,!1,null,null],["ethereum","nebula","NAS",18,"Nebula","3045022100f06ea36c2e1e07eaf86483e6e4adcff0cb4fc2037637375e86e9de442b52d1a802202f7701c240158f7ca47de1e007553656db77362bf69f80dda7bad0b0c49a73d7","0x5d65D971895Edc438f465c17DB6992698a52318D",!1,!1,null,null],["ethereum","nebulaaitoken","NBAI",18,"NebulaAiToken","3045022100e4aa776907cc84c09f002ac18725c2a0a6c1d7ad3921ea521c1de3e8264869a402200d3f7d9b22b241fb76972717c9f05954fce870e8a920b5527b874d6fc2145e0b","0x17f8aFB63DfcDcC90ebE6e84F060Cc306A98257D",!1,!1,null,null],["ethereum","nectar","NCT",18,"Nectar","3044022071386e78365d3b15ee703bc660974dd6f6808313066a3d77bf7113cb86373d1f02200951c7a4e0e613b3a6581f7b45f7d6511faee2d7f65546bb33a2316ceafb518c","0x9E46A38F5DaaBe8683E10793b06749EEF7D733d1",!1,!1,null,null],["ethereum","needscoin","NCC",18,"NeedsCoin","3045022100aabca49778949d1b752a3c301aaa1d6700466e63a47d708daf64ce412a499cbf0220605cf8c992a194821caf757683625fc7b971ced75c697c751fa348215004e90b","0x9344b383b1D59b5ce3468B234DAB43C7190ba735",!0,!1,null,null],["ethereum","neeo","NEEO",18,"NEEO","3045022100ca80d5b0d9713f2cbcb74ac10eb9f82ccf964b2fceaf1a00c5704e9ba193e10a022017fae3577575e5cd340ae1fab95d72dae00dc0bf627b4e55920d2da267cb800d","0xd8446236FA95b9b5f9fd0f8E7Df1a944823c683d",!1,!1,null,null],["ethereum","neeva","NVA",18,"Neeva","3045022100a667278a1eba6ec5238d604cf5ace69b673bc1061b44802e0f964218905c705b0220200a534161143bb7d4b79739a94ffcd93235868a4e2e0b7715bbab8d1f47d7a4","0x38F7Cd43662D1cfF4CC3c2C4b749F7cfEd1d1DB3",!1,!1,null,null],["ethereum","neighbourhoods_token","NHT",18,"Neighbourhoods Token","304402203647c3307edae49c6192f96a017e511949eb72c88a7b0defa7812b054308451602203666522dc6f237a933270f9f939e35f5ee0f5555e5b3ef22196c072f02b11a6e","0x84342e932797FC62814189f01F0Fb05F52519708",!1,!1,null,null],["ethereum","nemocoin","NEMO",18,"NEMOCoin","3044022013847fac92f2f9c00d0849d57654d6ebcf61a83c4340c099ee34acdbc5bab49f0220550f3eb777cbb56833c975f0d8f7d1f486b9361f0c323786f093b6a095378251","0x957b28f93B0e01557E21e6c564Ab26ddc2d18EC5",!1,!1,null,null],["ethereum","neo","NEO",18,"NEO","304402203483e0871dbee9b792a8db5b3c72683dbde11b2fcf93f93ff33a91e5168913b6022003070117c64e5f3ea1581564dd91b441ffb0caee1adf0c9daaba2116b2f899ee","0x5f6AB160206bc6A5d663CA5d0f237d82c572272B",!0,!0,null,null],["ethereum","neos_credits","NCR",18,"Neos Credits","304402202f11b68a1ffbcadfe94b7472e8cf7a6390b78308c0975d072ad82e285dd8d84c02202b16c925e3df582959faf3e35521f62814b0dfa242dbb1d2f05f5245b193f9fb","0xDB5C3C46E28B53a39C255AA39A411dD64e5fed9c",!1,!1,null,null],["ethereum","nervenetwork","ENVT",18,"NerveNetwork","304402204c913cc9b0648ac54c1a954c742047f1375720d6854063eee25b38a1214880560220237bd0c0e8fa7e616ac509f06153456b9ff327568ae45780eeb4200aa95b11d2","0x8CD6e29d3686d24d3C2018CEe54621eA0f89313B",!1,!1,null,null],["ethereum","nervos","CKB",18,"Nervos","3045022100d5d7a0def8fee84290eedd6511879b9f4552ef086d247dc8ffeaf0ac54014a9602200c46ed5c10d0ae144b825c6f01f51caed11c8212670c8fcfc9aa9ca1b1b0f184","0xc244A4bC9fc9aa7052EEAD31408be2b3B552dfcF",!0,!0,null,null],["ethereum","nest","NEST",18,"NEST","3044022021bb4a00e9be35d3624f02aa14e885bbf88fdf1f235df9edb09ba57e67e46d2e02203e7a1645fb4e4a71423b0c07aa4c7440271e4333a664a068bd82640840244271","0x04abEdA201850aC0124161F037Efd70c74ddC74C",!1,!1,null,null],["ethereum","nestree","EGG",18,"Nestree","3045022100f4c5a3cc2a8a78599ee79ffb30d76650ca320112ad57a2ca73e42c4c0f8cbd3c0220110591565035d0cc5b7f526e670bdf0e80c7e4f7946348e512e909d4c96078f6","0x65cCD72c0813CE6f2703593B633202a0F3Ca6a0c",!1,!1,null,null],["ethereum","netkoin","NTK",18,"Netkoin","3045022100d21e99ef0670bcb5d1df6500d82be71df66d1a2b5395d996f2ec1d29ec88e3d4022056543493b91f9894117279e11f9de768fa0d7876b8a3d9e73367493842a894a2","0x5D4d57cd06Fa7fe99e26fdc481b468f77f05073C",!1,!1,null,null],["ethereum","netkoin_liquid","LIQUID",18,"Netkoin Liquid","304402200fac2d769be2e976bfaa1ec53e5d757995568416bd67f37245b4a6282c6921540220438443e6436dae121838fd57adaaedebeba90cf9a69f2d1d2d253807620351db","0xaC2385e183d9301dd5E2BB08DA932CbF9800dC9c",!1,!1,null,null],["ethereum","netvrk","NTVRK",18,"NETVRK","304402203337848aef213b7f984728bcdd9e8c406912e06e286627f5d88112de839c4c51022046f58850951c97b96d8ccb120f6cb83215a86a49cd4b358d890e8a309673e1a8","0xFc0d6Cf33e38bcE7CA7D89c0E292274031b7157A",!1,!1,null,null],["ethereum","network","NTWK",18,"Network","3045022100c777e1d852b5a11ebdc4975c0e95e907efdcaa8da5cad2b7f836a2a8db59f89402201aa05b3b8a737e347d8d7af4ddf992bc3dfb896f2db96c225520da474d8f5702","0x2233799Ee2683d75dfefAcbCd2A26c78D34b470d",!1,!1,null,null],["ethereum","neu_fund","NEU",18,"Neumark","3044022042482e20e2b5d5340f6e6a478e8851ea599ca0e81238521f1f7fb4683c58df030220601cec323b9616b0554dbc96a38edffafa12e2b3e33470aef37fbf2a650b7bb6","0xA823E6722006afe99E91c30FF5295052fe6b8E32",!1,!1,null,null],["ethereum","neural_protocol","NRP",8,"Neural Protocol","304502210087f10beabe164d9f0f4368d6c95405d9ee214dbd270a0308a325dda898e70d7c022039f776aabc28646577826be1b85f37d11bdf6369759e88e517d3c0ce0ba080a2","0x3918C42F14F2eB1168365F911f63E540E5A306b5",!1,!1,null,null],["ethereum","neurochain_clausius","NCC",18,"NeuroChain Clausius","304402207a6e0dc208268248ba7a8d4ad19abf4f832b21321daaa9cd5cb30d079b061b3602200f6f4b9d4e4340e06266c4febe28890a58eecf449ca8ed1df6190bbb8d2e5208","0x5d48F293BaED247A2D0189058bA37aa238bD4725",!1,!1,null,null],["ethereum","neurotoken","NTK",18,"NeuroToken","3045022100ce27a31973d74c2eac7c827a9fae0ea1897bcb6859e29555fbd6b9a3c207b1ed022073faad9bf58548e5fb954c134a96866b5850754c657d6a86017c16536b118e1d","0x69BEaB403438253f13b6e92Db91F7FB849258263",!0,!1,null,null],["ethereum","neutrino_system_base_token","NSBT",6,"Neutrino System Base Token","304402200b4d98c446754eb814f985f69cfdb32555dd1a1d1dd6eed7d96d9c978f591b1302203f01497f641039f3f391e75310ab5e1b88478863b7d0bb1178e9a6af27aba3aa","0x9D79d5B61De59D882ce90125b18F74af650acB93",!1,!1,null,null],["ethereum","neutrino_usd","USDN",18,"Neutrino USD","304402204632644e269e3e847de8a20f12fcb2f1f7d9ceded46455a5c4eb15193ab96bc102205abe47617263d6b69320bcaf852f236ab3061449737d7a1ed87a270b67b788c3","0x674C6Ad92Fd080e4004b2312b45f796a192D27a0",!0,!0,null,null],["ethereum","neverdie","NDC",18,"Neverdie","3045022100a7ee52971adb28424f781663bc49bd9481faa978ed53a9c8d5ba58a800f02d9a022036c3aebc05b04a9bcf31d3c76d6c916c4e0f8161b120fa7176ac1e71594ee281","0xA54ddC7B3CcE7FC8b1E3Fa0256D0DB80D2c10970",!1,!1,null,null],["ethereum","new_energy","NSS",18,"New Energy","3045022100c0f625ea755779d13948dc8324155d34f32b70a964f9467697d38e05a977081f02206c23f4b2a2192c04cadd9b6142857c3040888ce4227bcdf85a07a9816eeced2b","0x4E3Bddd468AbfC6C88bc25dAA5d894380CEd5bc8",!1,!1,null,null],["ethereum","new_guinea_singing_dog_inu","NEWINU",9,"New Guinea Singing Dog Inu","3044022008c8a9926be96da9239965498fbc621d3fbdf1ab08f964300f8d5ef10222a60d0220588947a57453359b08db32150fc74846bc9e5e088e970230da67fdc37cbca698","0x1997830B5beB723f5089bb8fc38766d419a0444d",!1,!1,null,null],["ethereum","new_world_order","STATE",18,"New World Order","3044022049d77b72b0259cfb61b515a927c258cb40f7e72490649104566df0e84cc4ea040220604f71038600c2d4013c27078c3ac537e12690c0eb77b2c756029f5350ececcc","0x00C2999c8B2AdF4ABC835cc63209533973718eB1",!1,!1,null,null],["ethereum","new_year_bull","NYB",18,"New Year Bull","3044022034320f51cc41c66d20c856b5c25b2367de28e23f14e1285047e79d23507429eb0220168ee4dcc3ffaadc93aeaa4b71d40e4e32879d3a09942cced01ab48777e1d8e2","0x798A9055a98913835bBFb45a0BbC209438dcFD97",!1,!1,null,null],["ethereum","newbium","NEWB",0,"Newbium","304402204b9641a887f2c856149b67f160dcde03948a71e98216d9ee4271b1d08364107a02202aa6162213b9d679916d3fc1b6350fa6f20081f79f23ed168b90f5fccb06f06e","0x814964b1bceAf24e26296D031EaDf134a2Ca4105",!1,!1,null,null],["ethereum","newland","NLD",18,"NEWLAND","30440220293a38ad90ce4b32e766ca50ed2963c06b8ee20c4924deaff911ca116f193d3a02200b9bd4b44845ebc36dab518a6c2ae73222cb6245cbb19d523e48341b4bf18f63","0x48E234d2Ddcb32d780971c0Df7fDDe25Bba192DE",!1,!1,null,null],["ethereum","newscrypto","NWC",18,"Newscrypto","3045022100e9a88256a27dce8a6f6f9dab48da4d5f8029d32031930c76702f8f3c91e60cae022036faf1c945242824f985a75808b8c3f9dda8bdb49592a8a487c9dc097e70bd41","0x968F6f898a6Df937fC1859b323aC2F14643e3fED",!1,!1,null,null],["ethereum","newtonium_org","NEWTON",18,"newtonium.org","3045022100c96d1744e83a720e84103f4f1a440cecd8bc90bb0fd79597718db67eab56b7f80220514bfd72a6fae410b183a077da7e0b27618ca312f889b834f82f196c262afdd7","0xAE9CBE6eBf72A51c9Fcea3830485614486318Fd4",!1,!1,null,null],["ethereum","nexium","NXC",3,"Nexium","304402205a54a1556f19d86315ac3ba69c9a32815d7da3ae4c5fd7f277838c6f805205eb02206f6a3233cfa33dc7bd330ae72be14c7e122ddcdf031ec37aba675e86fa81bbba","0x45e42D659D9f9466cD5DF622506033145a9b89Bc",!1,!1,null,null],["ethereum","nexo","NEXO",18,"NEXO","3044022074906d231c1ce9d892fdb1b5795f9e38a27d75d205421b3d5ce803a7a20884d402200436963f579b91431aed5739ea626650dee4054ede27980f74cf4b62a5add07d","0xB62132e35a6c13ee1EE0f84dC5d40bad8d815206",!1,!1,null,null],["ethereum","next","NEXT",18,"NEXT","304402201ecc603467a44608165561e0bcc18a74663e1e8bcb8e962f5daef9fe994e2c1f02203315ef47a6286f27c02c6dc6d385a5838afa3a374973b3eda6720f47077d818f","0x377d552914E7A104bC22B4F3B6268dDC69615Be7",!1,!1,null,null],["ethereum","next_generation_money","NGM",6,"Next Generation Money","3045022100fb5d211f373a4cedc54ae8430afb069864689bf733158da721819c6f5e02a34702207e2eeed648015a9446a712152e0c5d8db74dca8341154812a227c8e33eb1cf8b","0xed0d5747A9AB03a75fBfEC3228cd55848245B75d",!1,!1,null,null],["ethereum","next_level","NXL",0,"Next Level","304502210085aca50b9adddbb41f6be8f3eeda0c8c7cbd1281ed2dcfe5b4e75defd72d256d0220110448366ffa3b436d8ba2c240fa25dabed7c6aa7d60af94278b13c26381f6f8","0x6839aC5Ea8082688B706C773D5d2aFd7d503FDD4",!1,!1,null,null],["ethereum","nexus_mutual","NXM",18,"Nexus Mutual","304402201675edc5b02f0e7690c26a0a834a5ef552384420ff5297964f71389f3aecd302022039a4095bc5f3aa2b2c86e7f7ef8f735fb182f11dc99d0f9f9e16f7ad08491c76","0xd7c49CEE7E9188cCa6AD8FF264C1DA2e69D4Cf3B",!1,!1,null,null],["ethereum","nexxo_tokens","NEXXO",18,"Nexxo Tokens","304402206f5f6715c3c2dce62424b33a19f432730eba9ba98311f9eb65d4ed208208fe5d02202e59d5d02bf70c08250ba3ed65e9e9158136edd96ec23c70366163dcf573e322","0x278a83B64C3e3E1139f8E8A52D96360cA3c69A3D",!0,!1,null,null],["ethereum","nft_index","NFTI",18,"NFT INDEX","304502210080e824a3a17ada7d2b8d81d59ad20df2395ed5a0833bb4f292928f7dd89665180220350cf81490ae3960f48a303179465f38566b241772db687710e91559bf97e0ab","0xe5feeaC09D36B18b3FA757E5Cf3F8dA6B8e27F4C",!1,!1,null,null],["ethereum","nft_platform_index","NFTP",18,"NFT Platform Index","304402200ac10b45027edf4225f06766c55bf28b25c7a6cf2d02e27cd9bd692cf2110f1b02207383569897bf9c5b91908fb02d5cb0b91b08328af812d4e320a104b34e91c6dc","0x68bB81B3F67f7AAb5fd1390ECB0B8e1a806F2465",!1,!1,null,null],["ethereum","nft_protocol","NFT",18,"NFT Protocol","304402206d575b5aa9009f059535e3cde36da2d0ed8bf496ef2387a92f1c93b64619043e0220745327c7dff19874186fa2879b1b3451ba45f3cc6860020e3985e2356081f6d3","0xcB8d1260F9c92A3A545d409466280fFdD7AF7042",!0,!0,null,null],["ethereum","nft_rehab","REHAB",18,"nft.rehab","3045022100ba99dd9540c8541e5dbed2f2e41436b6d9dec26d5933dbdfe958d97479c2112e02207c5fb46e46537dc892fcc5b394d301e98ef8599febe8b3bb3b137044950c377b","0x6C93c838D362656430d81E150cdbe9b69Ba8eFC4",!0,!1,null,null],["ethereum","nft_stars_coin","NFTS",18,"NFT STARS COIN","30440220100ddac20fdf2832526f5942da991b75d38e1e65c1d502408003a562939b8739022078669315529bc6aae54abdf916f405b91545a2e9367e2851b1335caeda0c55f3","0x08037036451C768465369431Da5C671ad9B37dBc",!1,!1,null,null],["ethereum","nft_wars","WAR",18,"NFT WARS","3045022100abc58b15541cf73401ffbd74039bbdfcb5e651eed59a03d09b0d33dcec5523040220795259c684b7a5910d9e44ee7e74fb2f1cf6bbc81b945104da3ab509259b0f7d","0x4d75D9e37667a2d4677Ec3d74bDD9049326Ad8d6",!0,!1,null,null],["ethereum","nft_worlds","WRLD",18,"NFT Worlds","30440220420710e939fe4b64fe863a83276614089f41e11b49c2ee3bf86da1fea833b1530220687fac99213c1b6d845303f8ecf09c14438bfc17bda1874854f52b64df888b58","0xD5d86FC8d5C0Ea1aC1Ac5Dfab6E529c9967a45E9",!1,!1,null,null],["ethereum","nfta_token","NFTA",18,"NFTA Token","3044022017efd53c8e6908acd51fd9f1efe9f5f089e55c44d4936dcde6ce5bd962d2db22022064a1823392113dd19cdb247e87e73bd5f2e792b82505e75fe9c99954b851ed50","0x1847e59d9C2f30c7fE0347BA3E53DA1ae8A7F0E8",!1,!1,null,null],["ethereum","nftfy_token","NFTFY",18,"Nftfy Token","304402201a072c6af06201ecdc5685988f22b748e91a92b6fe1edddd7222d08271b26efd02206217d66e68a5df5234088660ef98db2b10727b39ca21d71d6fb614ce52cc49b8","0xBf6Ff49FfD3d104302Ef0AB0F10f5a84324c091c",!1,!1,null,null],["ethereum","nftify","N1",18,"NFTify","3045022100976b111ab313d1e0778b4f2843b7f611ec80c1c5943cc05d2cbcab66e2eccf0002207be919ebe33115c3a036a166b16f7a1ecf48f603a3088e0545981cc267941c31","0xaCbd826394189Cf2623C6DF98a18b41fC8fFC16D",!1,!1,null,null],["ethereum","nftlootbox_com","LOOT",18,"NFTLootBox.com","3045022100c922cbe8436666bbd985855a994d3ca96c0cadd9dc297208bc2db22494f5fd4a02206b7691061beca3c9d8a2e67de9492fa89e92617e0ca509f0bbe90737174b5828","0x7b3D36Eb606f873A75A6aB68f8c999848B04F935",!1,!1,null,null],["ethereum","nftx","NFTX",18,"NFTX","3045022100d9be652de0675efc1179db85b89adfc89420b45c38b73fcce2adcf88bb3bb2c502205f0a221aad6252a5e1c515c2188a7b4ed5cbeaba5743de88119ee60fb7fbb9a5","0x87d73E916D7057945c9BcD8cdd94e42A6F47f776",!1,!1,null,null],["ethereum","nfxcoin","NFXC",18,"NFXCoin","3044022025783f2a40775c0292c01302abf1e41b1e3ff1dc3619f97103a52406383f95e9022052da01384fa45ee5b11930db6f10d3c1521d38100b7f8d3586e0f5ee748a808d","0x2D39EC4da54329D28d230B4973F5Aa27886C3AeE",!1,!1,null,null],["ethereum","nhcoin","NHC",8,"NHCOIN","304402203eef882acc9a8298e255606e4c55c53046e5c526356ccc56a65fa4c8426974c1022028e380d3367eb949efff76a77b0b06e5791dabe669d28c33ea585c83ac8f709e","0x62947ff43626eA26427Be5aE4c7dD03b4f1cA872",!1,!1,null,null],["ethereum","niaxtoken","NIAX",18,"NIAXToken","3044022016839fb3ad91c65147160eaf0c9abb2ea6a603f99eac31357ffe87047d2fddc7022002bf0e4cecaf135eb6ccc34dea5f8caa0934b236a811dd4e6a9ad66df0edf731","0xf71982762D141f8679Eb944fAec8cEC415fB5E23",!0,!0,null,null],["ethereum","nicetoken","NICE",18,"NiceToken","304402201b6cdc7b4d2223b0eab5237861beadfa1fedffbb78b15bd552bf62375fb1bde0022008852da5f642936bbaef7d3e5da32b86fb84563621d1bd4496d2a628c8d99e9f","0x53F64bE99Da00fec224EAf9f8ce2012149D2FC88",!1,!1,null,null],["ethereum","nickel","NICKEL",18,"Nickel","304402200bb21a4b5abe3217e6bbe39d7bd5b4106b857a184e03b79afd3725c66c7787390220573742e8a821676570e96a50ab33f9410f582870c40469b446eeb17612f055e3","0xC4895F94340f30Fc126D1149d6cBD4a5FeA50890",!1,!1,null,null],["ethereum","night_life_crypto","NLIFE",8,"Night Life Crypto","3045022100db2dc3ba28855e995b9a878a2949f106150454965c42185574c029c9e12734b302206da278cda9284dfeba842e6a6b725456e2a0b8ea8c4144baac1063cf1b303ac1","0x1951aB088141e69A3713a351b0d55bA3acDa192C",!1,!1,null,null],["ethereum","niifitoken","NIIFI",15,"NiiFiToken","3045022100a8662b69c6c5a9f181dc920e8b3bae3bd96f6b80cb27b97482c929bef93646da02205f4d9de9553e061473156c9f1db2d9c4af469353aafaf883c29cc7f14ee6c576","0x852e5427c86A3b46DD25e5FE027bb15f53c4BCb8",!1,!1,null,null],["ethereum","nimbus","NBU",18,"Nimbus","30440220289fc21b8f0b010520e9b14e5e68d865df5f4303135baa707c9d84940b85668702202b7fc967a147132998a5c0710e6e69bf88d7b409e28e25e2978decc56252f8db","0xEB58343b36C7528F23CAAe63a150240241310049",!1,!1,null,null],["ethereum","nimbus_governance_token","GNBU",18,"Nimbus Governance Token","304502210090ee0296841aa6a0738215d98b08218bcf826912363a2c3488350bb077f2e362022063667c2d4c1205c09210832012af05505c86d7187fc45bece8bce6aa00c794c3","0x639ae8F3EEd18690bF451229d14953a5A5627b72",!1,!1,null,null],["ethereum","nimiq","NET",18,"NIMIQ","30450221008c6f4c85af2a865874e3d118adb9f28bae74a3fbecdc5f6dc6d454f7fabb35c102207c4155509599f154df1fe55ad673e0eaea9af6dc8763cf69522d5d4310383121","0xcfb98637bcae43C13323EAa1731cED2B716962fD",!0,!0,null,null],["ethereum","ninfa_money","NIMFA",18,"Ninfa Money","30450221008f1d790afa23b963aeb91143ca462c8109af27aa67719dc1f0279f4aa49c03a002201f5323e6e5080f0d5223856417a8a27fb838a0886a4ae7cd0b493fad63cad857","0xe26517A9967299453d3F1B48Aa005E6127e67210",!1,!1,null,null],["ethereum","niobium","NBC",18,"Niobium","304402207200013431505612e215e4cdfef32df855ba70bc3adcac0513a21449845cd5d802204d2fb918cb4efa4eab959347fb981dac168bdbaef050e6e2f030cdce845f57c7","0x9F195617fA8fbAD9540C5D113A99A0a0172aaEDC",!1,!1,null,null],["ethereum","nirvana","VANA",18,"NIRVANA","30450221008304f6a65b0fa2968ee57755d3231df3a57e4c482cfd1fc632b24f5da8f2fafd02200a844ba9bb8d17486e445bbc105a5b21adc76826b2cc56ca01bef55e98898715","0x790BaF0C914898C62163A61F150637D4bd180697",!1,!1,null,null],["ethereum","nitroex","NITX",8,"NitroEx","3044022074cb000333aabd679695684f60ec1c548c922a05f5bd82ebeac0ad792a3cc79b02201c488a60ded7eded500528d1feb6341353f4a80fb17a1734c4d51c665b0ca043","0xFDb15e5E6799Be72798b1ccFAEcbF186Bf73A0c4",!1,!1,null,null],["ethereum","nkcl_classic","NKCLC",18,"NKCL Classic","304402206c297cb44214aa53a096f8c0a97048a02f068e811100502f474cd2fd899e813902200e4ccb39a4b387e0317f571d0918fe2bfd940f50339f780ddb6a275b5a26efcc","0xd1b624f07a4D9B3e3746E33cb58f42dF079b5444",!1,!1,null,null],["ethereum","nkn","NKN",18,"NKN","3045022100bdafc0620ed7d814bb16874b71d60853efdd6f02ab7e6bc2709dc30e65f344bd02205eb0450b3512365b8ec61e205ee4fbfe8612e624db242ff77c2a872df6549c27","0x5Cf04716BA20127F1E2297AdDCf4B5035000c9eb",!1,!1,null,null],["ethereum","nmr","NMR",18,"NMR","3045022100c18a807d7cff38de07fe044aca133eebb46f0b97d5beca8aed25a94230ea4b7202207e56a1834d50d4548abeb49ca8f71fbfc601dccc0715257a8f062ddf738a8fd8","0x1776e1F26f98b1A5dF9cD347953a26dd3Cb46671",!1,!1,null,null],["ethereum","nnb_token","NNB",18,"NNB Token","3045022100e7f126971be449c2bc37370c0dc2a003661c9c64cf9c43d64f07cf9ce3beb71d0220747d872655a3da0ed850e12f8c8bacfa4d3fede539cf398dd18a3cd214bf47c5","0xB66A2131A6B840dd020151f80723CAED603eFB51",!1,!1,null,null],["ethereum","no_bs_crypto","NOBS",18,"No BS Crypto","304402205d744ad8383b5ec15d953e513b6c9296cf40e3e591091f4f1bc41b1f739503c102207bf495970a91f9db084d6dfa6d8b3cbe2d314126cd2af9d0c8efac4572559beb","0xF4FaEa455575354d2699BC209B0a65CA99F69982",!1,!1,null,null],["ethereum","no_donald_trump","NTRUMP",15,"NO Donald Trump","304402200ba75c16263df99f6917c7ef56cf2953e92ea4f0ad14dc8acf42e6f94242b47b0220266e29091874430944729c1c51d78966faf81c4020ebbd086a1ef1975a6aeb02","0x44Ea84a85616F8e9cD719Fc843DE31D852ad7240",!1,!1,null,null],["ethereum","noa","NOA",9,"NOA","30440220678d0d64ac0fedd898fe70ede4f144a2a968a67eab0b97b76962c5bb0c6ec4d802202c7a63672083ab1e1feedd3b7001b43c237245119923339656df692f3a1567b4","0x0FD3822072ad001aac1c90A09d9506f097F24458",!1,!1,null,null],["ethereum","noah_decentralized_state_coin","NOAHP",18,"NOAH DECENTRALIZED STATE COIN","30440220624b07c9f29df2fd416ca6fb9f1ffafe6426489754f90be8c9347ff5b102fa4502201f5c28f2e307a9fdc8ca40722f6f9ed834a27b7701a9a2319fab4704888a8611","0x41b3F18c6384Dc9A39c33AFEcA60d9b8e61eAa9F",!1,!1,null,null],["ethereum","noahcoin","NOAH",18,"NOAHCOIN","3045022100bb9413e811878fee41ccc84c7bfbcf59ddeb729c1c5f458473462e532191135902205779fb568cf9fa0ebfa9942d4ea8aeab964e26a34e44c8db50e18362debadb2a","0x58a4884182d9E835597f405e5F258290E46ae7C2",!0,!1,null,null],["ethereum","nobrainer_finance","BRAIN",18,"Nobrainer.Finance","304402203697140dfb99c9eeb293994ed2f14e4c11017cc45528653ad303158765bc86f702207abc2e278dbf231e7223b72f02cd3eb84fa9a19c40c51ba12a9e7f197f37daf6","0xEA3cB156745a8d281A5fC174186C976F2dD04c2E",!1,!1,null,null],["ethereum","nobunaga","NBNG",18,"NOBUNAGA","3044022074792279cf449fb1a8401b83c8cc9ff8a827248b876bd929b956e5f31f5a32a3022056aa83eadc4d229fe70ff796f48dcd38cb904986a649fcd99ca30400ef74046c","0x9275e8386A5BDdA160c0e621e9A6067b8fd88ea2",!1,!1,null,null],["ethereum","node_token","NODE",18,"Node Token","3045022100e8371531116d02049b1b0f7f2660e794a42b7bd8575878ee83f58d91bc8b9bd502201627a25a7d3b2d0b6fa8e6196820cbd1a0168ae9f464233fa9e10c9841d6ab2e","0x435d664F72D6F194ef67d63B5f3936650187b131",!0,!1,null,null],["ethereum","noderunners","NDR",18,"NodeRunners","30450221008a63872b96eb2b3b524d01e059bcdce53aef535eb2224f0e0e2d502a3718daa8022051fba26dbfe96704a72e361adf4f040105d6ec3a5531178c15a789898aba9243","0x739763a258640919981F9bA610AE65492455bE53",!1,!1,null,null],["ethereum","nodeseeds_com_token","NDS",18,"Nodeseeds.com Token","3044022011728178cfa32ed5744274c65eb4076f891ed9824e22f794de2c2cc0ed1408c502200a1b13a68b0bafd60aab7023609048002c0accb967b8c0bf62b03f1d0b914773","0x747f564d258612ec5c4E24742C5fd4110bCbe46B",!1,!1,null,null],["ethereum","noia_token","NOIA",18,"Syntropy","30440220352c94b5fd0e89cba6bd1b08eec3025755b863de41d365c59e292eb79b98e7e9022021b6599d61025c66a753ee7fb7b15a2348b2b1ec6260056f184ca35cf0144acf","0xa8c8CfB141A3bB59FEA1E2ea6B79b5ECBCD7b6ca",!1,!1,null,null],["ethereum","noia_token_","NOIA",18,"NOIA Token (old)","3045022100818376e235a2897a33ae77cb95b9c21ad182bf802cb1e78685c999262fdd34fd022012b2b2569f4d68edcdf17d9b485f2c9b7e5ee4144fe5412afdeca854a26bb417","0xfc858154C0b2c4A3323046Fb505811F110EBdA57",!0,!0,null,null],["ethereum","noiz","NOIZ",18,"NOIZ","304402204fcd7cf9c45aac13649d7cb5c4cb3aa60f0f0ed9f86f66aa35cd898011d761b90220357ee8c9c32598da6dc2b212730d2751526c306368a91fac693aab23ce8d66eb","0x36151737B45017234E9570Cf9a1cAc97138953C2",!1,!1,null,null],["ethereum","noku","NOKU",18,"NOKU","3045022100f78de5c73e17ea20aea0d983d56794f649b1412186bf72edb87e6ea792346e8602204063e23b15d46268b1deddc0d94d128d21457f00a12235e60271b882285b5c3c","0x1fC52f1ABade452Dd4674477D4711951700b3d27",!1,!1,null,null],["ethereum","nollya_coin","NLYA",18,"Nollya Coin","304402203345b45c2610e18ae23da9d331affee613c66d1a822b6fad58bbe58e50a4ea0e0220253678b360ff9546b8b78164e15a8fa502df289e8d69b02a79fbb196ec61d86b","0xCeE4019Fd41ECDc8bae9EFDd20510f4b6FAA6197",!1,!1,null,null],["ethereum","nomad_coin","NOMAD",2,"nomad Coin","304402207d164a8babba2ea9c3077503b76a209a98fdd866eed048ea2da270bfb47526a902201071d0e793daa0b1a24c26e4cba7d311ca64fd9b33c43fa15c2f4394be41ed8d","0x56860dbf9437c7109E1B3f66c00C68D33eE12A50",!1,!1,null,null],["ethereum","non-fungible_toke","TOKE",18,"Non-Fungible TOKE","3045022100974f19ac4073ff6ebc4e4ae24f4b3c2007f3872d96f5dc940d079f1e030f2c4502207ef4979934fa6265be445331410677c10909c2a69dbff791dd28a7ff297edb2f","0x98ddC72bD02d448F68C4226f26122c66C5BD711E",!0,!1,null,null],["ethereum","non-fungible_yearn","NFY",18,"Non-Fungible Yearn","30450221009cd5252fd9e01d216cab38cb0923c60ee2fc2374eb415f88b92c30986e56416402200813007ef2ba2d04b398f5ab76b6efd4de1c6f18de8a0eae7e13bd74de72a1a4","0x1cBb83EbcD552D5EBf8131eF8c9CD9d9BAB342bC",!1,!1,null,null],["ethereum","noob_finance","$NOOB",18,"noob.finance","3045022100a13e76777241538b31961bf8d54112bcecbb57bfe359bfc62c95822234959c0002203863c2e77d5e5f3dc2ada7fa4074de906f56fcf3fec7dc272fcc7f1f5c0c9108","0x1FC05d480B1eF1175a31123bFDBd36BfEE256889",!1,!1,null,null],["ethereum","noodle_finance","NOODLE",18,"NOODLE.Finance","3045022100be4e7e7a1a4fcc04aba25d0d36b80f94df474afb98747c8f5d6ad66690436bc502204409f7e54f06a5a80e549910b267e39537ac93a86719002ca5a1ce3dae613d34","0x420Ab548B18911717Ed7C4CCBF46371EA758458C",!1,!1,null,null],["ethereum","nord_token","NORD",18,"Nord Token","304402204991147bc527aa079b065e907a0fa75ffcbcc9476db68380674ae014ec420c09022049a706c4390e50893ee2a49ce412cc3d20561d3827813262743e221b7c38211a","0x6e9730EcFfBed43fD876A264C982e254ef05a0DE",!1,!1,null,null],["ethereum","nos_nitrous_finance","NOS",18,"NOS nitrous.finance","3045022100ce0bd460ffcb021da6ab54d05b291ea19b041d3687ab34c7b10f6423f5fd8c560220175127fb21c02f336ac32b68cfd96b698004e95c6c6c32713086eb6ce5156ed0","0x7061ee0896Ab2c1865078B6c91731f67A89eA6A4",!0,!1,null,null],["ethereum","nosturis","NTRS",18,"Nosturis","3045022100a66aff85fe4660197aa9ded197e562bea0885668e9d4663f77e9eb23f9fd5fa40220390f1d50a74f202ec93124922616d4e41e1d164b5a601c1b22f26f34cbf1a002","0xeCcf15A4B5976a1365BAeD5297058B4cA42777C0",!1,!1,null,null],["ethereum","notional","NOTE",8,"Notional","3045022100b932caac00c9df07aa84a70222ae0d71c8bd8c3eaf1306d64cade29996513d8902203694145e209dfde002961d1dafcafbadbeeb50516b23e64b60d398b0540e0403","0xCFEAead4947f0705A14ec42aC3D44129E1Ef3eD5",!1,!1,null,null],["ethereum","nova_mining_token","NMT",18,"Nova Mining Token","3045022100d4a7f9e9d2eca44f7bd2b59a5504648e07963da59535903be3f2ea37eaf5b02d02201a1ec1128f3343ce902e35eb6ea3deb07393a674fb9cc4e27da9b18e9b2bf747","0xd9A6803f41A006CBf389f21e55D7A6079Dfe8DF3",!1,!1,null,null],["ethereum","nox","NOX",18,"NOX","3045022100ce496ffea2b33a186f3c51a49aecb21b8f6ed0727512e339509bac3e0209779e02204a18bab9d117dbb3c1739eab510e33c8cfc425038955930b719ae04a58a6c4b2","0xeC46f8207D766012454c408De210BCBc2243E71c",!1,!1,null,null],["ethereum","nper","NPER",18,"NPER","3045022100eabdbcd8736c7ed0927a2772f96f9185752076825ed9b6235c4d4fa26d66109b022058bfddd2dcfd13845714d5c5fafe63d80f242132d713bc1eb69764bdc997b08e","0x4cE6B362Bc77A24966Dda9078f9cEF81b3B886a7",!1,!1,null,null],["ethereum","nsure_network_token","NSURE",18,"Nsure Network Token","304402200e3d20d1b6ed1e3c526e0d4d7d4066e2eed6cbb114b20aace25b545cb243a2e5022031365dc8fb1046e369cdc1346392cf1de7ff1f3cf41f320a303539ae5b336e53","0x20945cA1df56D237fD40036d47E866C7DcCD2114",!1,!1,null,null],["ethereum","ntoken0031","N0031",18,"NToken0031","304402201b345b15f0175d998ec94b14017ba6118ad7e8839c78c91aaa8688dfc2ca4ccd0220404e2cbe309f464932fc37099f7c9efd325f0b954f898b55f48164bcbd62012a","0x075190c6130EA0a3A7E40802F1D77F4Ea8f38fE2",!1,!1,null,null],["ethereum","nton","NTON",18,"NTON","304402203b7f6498afba621fa7c50edda2aef3d2a095738f8fb134fa461b3535c2480dc1022074834ba404ae7e46c88ed77303d376361f388e910aacd5da3e97d8419392432c","0xcfB152E5b93fc2C9906d4ff41fC8407DFa5e8851",!1,!1,null,null],["ethereum","nucleusvision","NCASH",18,"NucleusVision","3045022100e1b00786d5f6f61e0efb94e2597e5408ab417e09e857561c025f0e81b2f62bef022004fda44f92ddbd73e266eaab0b93a4a49ccece3089fcc85b43052b03c5547d20","0x809826cceAb68c387726af962713b64Cb5Cb3CCA",!1,!1,null,null],["ethereum","nucypher","NU",18,"NuCypher","304402205d0973815fb29b7742be05bfab21862e8b3d431bca75684334f5b01d5a5f9ec602207d5b30df90c7adf138bd7066787889c1c8343daae09cf0b822e4ba4aa471c00b","0x4fE83213D56308330EC302a8BD641f1d0113A4Cc",!1,!1,null,null],["ethereum","nuggets_token","NUG",18,"Nuggets Token","3044022032405d85a094b3a26a4d59dfa5c5e6b090593fddaaf517a986fce6e0a8ac6ce1022024959cd0fccb597d47082583fb22bc3ffead3b632e014a557fd56eb950aa2f50","0x245ef47D4d0505ECF3Ac463F4d81f41ADE8f1fd1",!1,!1,null,null],["ethereum","nuls","NULS",18,"NULS","304402200816913f4c9ee495a97cfe3a8eb1b3b22f674e904d91d863fd2aa9a14994dada022029f0b0f4fad3a8a4c49f5cff0168de8cff00882c219d43d9619e25cbae9d64da","0xB91318F35Bdb262E9423Bc7c7c2A3A93DD93C92C",!0,!1,null,null],["ethereum","num_token","NUM",18,"NUM Token","3045022100e41feb6ed1f1ddb8f57fd927c25bd20e6dcf7815d15fd6244e9e27c653f92b3f0220596fda3e77dce8d617e444ae3b94f2459c4435cf3a147c9bb9ccdaa4ac8e0856","0x3496B523e5C00a4b4150D6721320CdDb234c3079",!1,!1,null,null],["ethereum","nunet_utility_token","NTX",6,"NuNet Utility Token","304402200f4144e88ce38ba3f248e05c1eb972fa1b50e88e4bc77d03cb3a29eb527a5a4b022065ef8ee9ac000a6cadfd8f86afb0115f754363dd3205312933aedffee752e645","0xF0d33BeDa4d734C72684b5f9abBEbf715D0a7935",!1,!1,null,null],["ethereum","nuvo_cash","NUVO",18,"Nuvo Cash","30440220175c8264e5f71b7d1e1a0dac853865355f5b366ef8e24311631c71cf6042959602207091111b4c2517e2c4a5dc1f5275d7f36130cc79e682eae642e0bc04842faeba","0xE2Db94E8D4E4144c336e45668a792D17D48a482c",!1,!1,null,null],["ethereum","nux_peanut_trade","NUX",18,"NUX Peanut.trade","304402203d17cf372f8bc0306570021ab8034732bd764a15769b144a4baf20a41ca208690220406b338d83f17da10603c301df4583ff8a2b676bd58a43493c2a85a7aade529d","0x89bD2E7e388fAB44AE88BEf4e1AD12b4F1E0911c",!1,!1,null,null],["ethereum","nxx","NXX",8,"NXX","30440220752f649bb10f87209927a4e4e1a6c8e3a8f4fae0650b5828911ca5b76af46c49022053850c8b482e1d2468524a204f8eba4e47cb4367f992f05123d61cd5a5eea610","0x7627de4B93263a6a7570b8dAfa64bae812e5c394",!1,!1,null,null],["ethereum","nxx_old","NXX",8,"Nexus (Old)","3045022100a616846c7afcbccb512e41e27ce8539f6c6131530b7b7f764da00ab17d764d0e022015f15d4a4678273d79ab50554f6f98f150a85e14a478b0de9ca1ca2b402c6bbd","0x5c6183d10A00CD747a6Dbb5F658aD514383e9419",!0,!0,null,null],["ethereum","nyan_finance","NYAN",18,"Nyan.finance","3043022062b819fbc13c28004632b689eccf43b4f70c13b41f964a0c35d41c87705aba25021f29450ae2ac78dd373a0af33c1b96d904a8b8e4ae8ba661ad0e73d49bb4847b","0xC9cE70A381910D0a90B30d408CC9C7705ee882de",!0,!1,null,null],["ethereum","nyan_v2","NYAN-2",18,"Nyan V2","304402206c0ea209ba3362d08af62ad6ebe0bc3d86161e4b42305a2f5decaeee57257b79022013ab6f7e2d75eb247e543fe4f851f827cbe51d3bfbad0c26f0966639b3490a8a","0xbF4a9A37EcFc21825011285222c36aB35De51F14",!1,!1,null,null],["ethereum","nyantereum","NYANTE",8,"Nyantereum","3045022100e76889d61df5fc608003abfaeea9bca3bb8e9099a21ba50d267370e7bc327abe022032377d9b3a586cf2a6766a74ccf5a78b6216e4dbd522f08162567d4e6c6a409a","0xC1215988f2e555AC324D1E2d2A6164f1010Ff29f",!1,!1,null,null],["ethereum","nydronia","NIA",18,"Nydronia","3044022003863de74e39bcaf74c9910f2dc8672c94fb8d524438524b0cb27649d24bc7c4022046aeef7e43955fc12c70e6d228e3953ae4f033acb7618fc13a8f6ebbf801cada","0xdB11F6Fc8E16c02719e9c2Eb3c4C762feE8F5C5b",!0,!0,null,null],["ethereum","nym","NYM",6,"NYM","3045022100b735026f6ea149228c56f55e4de82c211b496da88b907e2f7b06487da2c1ef0d022013878bf60ba65ea47d749d15d5973b48c7bc346a733fc70c0e8d68b1c3dc98c8","0x525A8F6F3Ba4752868cde25164382BfbaE3990e1",!1,!1,null,null],["ethereum","o2opay","O2O",18,"O2OPAY","304402207cb182e11e6cdc6298d2cf4dbbb5ffc5dafabeb2a454feae076b89ff1d0e502c022009d217b3415bafdc4197a8d8f74dd5ad3ddec2541d027f7a4f54c22d3b7738da","0xEd00A2Cba066714999Ec703350E0a5B6B7AB66cB",!1,!1,null,null],["ethereum","o3_swap_token","O3",18,"O3 Swap Token","304502210088c2b7c5874db085a649384818526e7f143bb9f7d3ea4b8a5ac1139966e9891002201ab8d492d9ccc1e891deda3ad944de121c6b06a9f4f81db7424daf78d773af47","0xEe9801669C6138E84bD50dEB500827b776777d28",!0,!1,null,null],["ethereum","oak","OAK",18,"OAK","30440220767982097a3367c220ddb0267a963a458469d039a6823260232728ff33b6885902207516201116b99cbd1bd1945a8a886f1c038d5c8c2c4782a0129f476a52825d8b","0x5e888B83B7287EED4fB7DA7b7d0A0D4c735d94b3",!1,!1,null,null],["ethereum","oasis_labs","ROSE",18,"Oasis Labs","304402205448086caf61e19cc415fc2a30039f8e8b82ace92b4fae57db4ed8bc2c010a75022010de085be64360f2a8f7384a4cd14fbf52ec0d9d6b42b31f47d0ad5372ff8195","0x88eA8Bc6e1A22B8201F44BE0A06b184cE15fA72D",!0,!0,null,null],["ethereum","oasiscity","OSC",18,"OasisCity","304402206137f518e394423114864c98d079809b4469b6208e1c602976135717702fef3d022063f9598c00fc4b867a0cb38a4ecd081a63c04f700a5868caa67a61c81baff4ec","0x24700A297960E8477Ce3CA6C58b70a7Af3410398",!1,!1,null,null],["ethereum","oax","OAX",18,"OAX","304402204d62cd09ffde53bfb18ee11b5ead9139bf70d15f1d1600ad7228fb3f1ff0005a022079bba5d9fa5d4cad3ddd42292b59baed9b93b2232707ef1e6dac029fbc5c13b0","0x701C244b988a513c945973dEFA05de933b23Fe1D",!1,!1,null,null],["ethereum","obee_network","OBEE",18,"Obee Network","304402204bf983a54e8cfdee5f139290f29b82490dec3fde27b7b92eaa052dd0f08e699d02202977a72d90dd5ff2dbe58fe4d0cdb55fce0958ec2ff8c12bc890f6952bf32a91","0x3678d8CC9Eb08875A3720f34c1C8d1e1B31F5A11",!1,!1,null,null],["ethereum","obic_coin","OBIC",18,"OBIC COIN","3045022100a1e6c3c11b656253a584b169d0645083c6e679b439a79d5cad8865b7bd0729c1022072fb888dc03a3d2f2241f91d0ddc1d1e0c64246dcc330f5fafec1667a44e1a8f","0xa8b6d0bD067ce5B2e4E9e225b2e0fF5eb74DEd8A",!1,!1,null,null],["ethereum","oblichain","OBC",18,"Oblichain","304402206d3af52d1a280c9b7125d4c03a8c1b84b1abbafe0fca96015d476bbc5fb644c4022018d6b21f7cfe32a19f4dc55e8df222c01a715bd8f7623e781c8093fe47c33e68","0x43E577338d6C07bc92a06C8CA4B781470515dFA8",!1,!1,null,null],["ethereum","obortech","OBOT",18,"OBORTECH","3044022055ccb3b5445acaabb644c61cc5c6b4508ac0c829e3a842b3366e22ab1bfc2f69022051417954dba8c345258f7a7993b81d2aec682c990d10df7e714b724fe3877834","0xeDADeB5fAa413e6c8623461849DFD0B7C3790c32",!1,!1,null,null],["ethereum","obr","OBR",18,"OBR","3045022100c53eecc22e4f655ba02ab9097492f4953df5eb31539d6ea5f3f7e0fd8f4d327702206890c38c4a59b08f5e9ce2932754d5698edc55160d4ae338c5b406e177e4da7d","0x595643D83B35df38E29058976C04000AcFA31570",!1,!1,null,null],["ethereum","ocbtoken_-_blockmax","OCB",18,"Ocbtoken - Blockmax","304402206f14c802be78dba693ae91ada6310eac6ed020338d81c55bf26518ade008f6cf02204c2355708f6d6a4f669918283b244b5f275a8538ae1600e52fcb2a601da0674f","0x466912bAA9430a4a460b141ee8C580D817441449",!1,!1,null,null],["ethereum","occ","OCC",18,"OCC","30450221008c3f584964c520fdb889d79d16b9a3141c2de974776fbfa538d393b9c3c7db2002204e61b7f95e44d8eb0c7862147d69f21290772f483498cddf7c12c70128d64ea2","0x2F109021aFe75B949429fe30523Ee7C0D5B27207",!1,!1,null,null],["ethereum","ocean","OCEAN",18,"Ocean Token","3045022100a86de6b0f7c5e89814d74e95f0acdb4027d22fbabad75282c32036d24c07c3ac02201a920ab943f05190cbacd6bc0bcdf6a1ef7a48597b369a2e33a3554a4e9fdac7","0x967da4048cD07aB37855c090aAF366e4ce1b9F48",!1,!1,null,null],["ethereum","ocean_","OCEAN",18,"Ocean Token (Old)","3045022100e0347efdaf9d89cbf8988aa23d7ffe9c73b138ea07725e0decd349044d05e01702204bf1412be82b5e97b2c6558e60bcf9f4112716327cba0982e560fe215b54b7d6","0x7AFeBBB46fDb47ed17b22ed075Cde2447694fB9e",!0,!0,null,null],["ethereum","ocean__","OCEAN",18,"Ocean (Old)","3045022100ad8ac2fb6d62e8196a50c0804b582b9bbad8a3bf068425ca5c3869d260dd1d1c022038edc0c43be7b0b992700bc48bc46df62b0abfb1534d4b09dc0727a48f4347c3","0x985dd3D42De1e256d09e1c10F112bCCB8015AD41",!0,!0,null,null],["ethereum","ocoin","OCN",18,"OCoin","3045022100e3477d4d14b60d4cde72d72e15331a8ddbf5154d1a881637caaa15d419d3fe1b02205236f2c97fb63645bd3e8b77be0336a3cb72581582cd7e22c6b5b4af14ba3730","0x4092678e4E78230F46A1534C0fbc8fA39780892B",!1,!1,null,null],["ethereum","octapay","OCTA",18,"Octapay","3045022100ac5516f195903c07ee3c3e88adc828789abf452da57c4dc1778edd2fa9533c8402207c1cc20ffc04d465d06805340657924e8eb8eb81def306cf9212d9a858069012","0xB99a4bB525ece962b549e6873229c5e6921BfF16",!1,!1,null,null],["ethereum","octo_fi","OCTO",18,"Octo.fi","30440220685241d5e7d87dc4bebee8d073ee2d18ccc7bb4844808bff94979d5d1e0ae4fb02202953079d756d22b940c2fb4fb14b76573a4087abc5591c0a0e092420cdf13b01","0x7240aC91f01233BaAf8b064248E80feaA5912BA3",!0,!1,null,null],["ethereum","octopus_network_token","OCT",18,"Octopus Network Token","3044022063b9f30665bfe9d7c5745c8d4e9396ec25675296a542caed96b617592078f08b02202960b87eef68f1efb3d2c9f8a42c1b1ad76a9639e3c100c8e2cceb4e27d654a8","0xF5cFBC74057C610c8EF151A439252680AC68c6DC",!1,!1,null,null],["ethereum","oddo_coin","ODC",8,"ODDO Coin","304402201bf89b6a6e8fa734604dfa81f9d8c791c2fb433aa569338a02a149f2ad9e0faf0220076685e8c2c6014d194b735cd5b2443ad2041e8b3131271b1c3fa3c6b442374c","0x49e90537D5eF6778fd000D1F05be20134F9f6dC6",!1,!1,null,null],["ethereum","oddztoken","ODDZ",18,"OddzToken","3045022100e3dcd41574d2019339ddea1674ac67fc13bda8dd2fcb313e449684f07118c08e02204cccebac2d4190e3bd374401d0668cd2a1032cd93228c9717797a672f75f8897","0xCd2828fc4D8E8a0eDe91bB38CF64B1a81De65Bf6",!1,!1,null,null],["ethereum","odem_token","ODE",18,"ODEM Token","3045022100fdf6a69a9d0bda4ea7cac5997e8960071c1fb4a9e9b3d1e4b79aeb2ec7bf3870022074247e5369e00df9cf22d80cb92fa4a83d2624ac18bba0b369c38cf5e0d47e3a","0xbf52F2ab39e26E0951d2a02b49B7702aBe30406a",!1,!1,null,null],["ethereum","odinbrowser","ODIN",18,"OdinBrowser","304402207afaa183f387fb3b8080e1063e5462b606d09039f72e5b4db44da69e5dd082e202204833f6f3135f040b234717d0463d0ada7268cf51098ef83e1e6bf02a70b5f06e","0x57c8D5d5b87A1580FDAF996cEF674Bb0d7F14C98",!1,!1,null,null],["ethereum","odius_ai","ODI",18,"odius.ai","3045022100975e11ba47a9f17f76913f973f593314d79f801900596820cb64f41d478335e8022049ae430790b0e4f6a034dcace99fa129b24c5c9676d3da3d2983942b4a63b6b6","0xa49DC04D118bDf4a3471F593C1BBA0c99B2187eA",!1,!1,null,null],["ethereum","official_mars_token","OMT",18,"Official Mars Token","304502210099d9c7cc3558d74da49d0d77ac609debce8b614cb1a036b568e6b94b30f1444102204ebb97e91abaecfa2434f9038dd5792238d883c3c3040de505783c455d6b3a66","0x4E30910845f0cb4F66781B35c832Eafc09774022",!1,!1,null,null],["ethereum","offshift","XFT",18,"Offshift","304402207d5e051ec859e4aaa1a207c0d2d2cc862fb7c9c287d4718dbb70dc476a1a247502200c29114d6dbed5b09547ff2ae9d64b7a83488bebade47bad13369dc762976f0a","0xABe580E7ee158dA464b51ee1a83Ac0289622e6be",!1,!1,null,null],["ethereum","ohni","OHNI",18,"Ohni","3045022100a83caeb985f574664d6b6a1ec0c29d9cf9c416a68cce13f4deaeb2af00afd4c70220322e5163dfbb0620d99e7106ea60039800e1afed46163ad3bee68d866d6db2f1","0x6f539a9456A5BCb6334A1A41207c3788f5825207",!1,!1,null,null],["ethereum","oilage","OIL",8,"OILage","3045022100bfbd7ec373f8ba3c1651c699e7cdfb1208a1fb290996e54060ff44516d6da8b7022058cbb39422d5f6d4d8a3d4b141f884b4fe7a7b220a89e7f142aaa872f5e8dd6d","0xA29a8e360C0CbA25A3719763fde43A1eE570271d",!0,!1,null,null],["ethereum","oiler","OIL",18,"Oiler","3045022100f9721cf759939608cee9d7aa34c9a0ac681bfc43666b384f7185a2cb84231a3402205727a4eeef1cd4e4defedd9edb3782eb3ca2c0299bf29acf35dad517e2d08a00","0x0275E1001e293C46CFe158B3702AADe0B99f88a5",!0,!1,null,null],["ethereum","oinfinance","OIN",8,"oinfinance","3045022100a5ed0a0d00b78bbf526291c3f35f87c3114be9dbb86ef515973553150971aac1022014b96621514cebfd9c31b4f985e3c67e974cf8f6df32ce80ffe921dcc9b289ec","0x9aeB50f542050172359A0e1a25a9933Bc8c01259",!0,!1,null,null],["ethereum","okage_inu","OKAGE",18,"Okage Inu","304402200729a9bec14d73ac7a33d17dd4f3bef3506a94ae82c03d32b2dcf36aad04b86602205f63ae141069064e67b26df78df24b2f5993bd50c2619b84d49ef3c9baf4dfd9","0x8dfc8cc3201425669FaE803e1eB125cddd4189eC",!1,!1,null,null],["ethereum","okb","OKB",18,"OKB","3045022100fe7fe01ec1634c7a30dd562691f674d7d21820c2b8e5e4817c1701e9648d4a2702201dc2b24e28f58407a5aa2efe27b4df922551cf46ac4322f49c950a75ca6af9a1","0x75231F58b43240C9718Dd58B4967c5114342a86c",!1,!1,null,null],["ethereum","okbbear","OKBBEAR",18,"OKBBEAR","3045022100c13b8bfd49573b914fb9ebb8f56560724e5776e80a9cf29b7d93158cf88060f302207429772a40d73d2f7fbd097b052665cdbff97f5b62b321f25fd24e88989a6eab","0x053E5BA7Cb9669Dcc2fEb2D0E1d3d4a0AD6aaE39",!0,!0,null,null],["ethereum","okbbull","OKBBULL",18,"OKBBULL","304402200a8c6b64a6fc2f4754458c9cb810eb46a6b5013712ab040e5a49f41163a7b01f0220344ac573243e87f4727e5ced8eaeaefb39f8c965378ac901ddf9b49bac163686","0x8aF785687ee8D75114B028997c9ca36b5CC67Bc4",!0,!0,null,null],["ethereum","okbhedge","OKBHEDGE",18,"OKBHEDGE","304402203183c5036aaa0dac3d587df9fe95179a58a1ab13594a9d01ab1a6a03842f35a902203cc5ad03e1a08b1ba152622a74cd211c874e82607436bb22c3bbef3900939e38","0x889BC62E94bb6902D022bB82B38f7FCd637Df28C",!0,!0,null,null],["ethereum","olcf","OLCF",18,"OLCF","3044022068d6699e96e1382492089c4c6ee292b5a7697461ca36787f21359626a8491a59022065ff5e12e7088c6a56ab0d5e8e2addb3d65a32ec597a8b83933eb27227708f5e","0xEEaa34aF95b034BaDa4baF565063132C765b1fA5",!1,!1,null,null],["ethereum","old_cover_protocol","COVER",18,"Old Cover Protocol","30440221008b46c1736e709cc9089c7e7e42bac3b9b46f681c6a08b7981223c6c99f8c4242021f62f7ca1756668997520f1287b1bca6f45a6491aca8c4f6b2d2b011f748da03","0x5D8d9F5b96f4438195BE9b99eee6118Ed4304286",!0,!1,null,null],["ethereum","olive","OLE",18,"Olive","3045022100edc20e488de201379564d31e83fa4d108cd39678c85639bb39d230e7611f6465022053896f9f3be12fd8a26f9f21a7bab76a9769ba8c0749e5f49d82a00dce0a4986","0x9d9223436dDD466FC247e9dbbD20207e640fEf58",!1,!1,null,null],["ethereum","olympus","OHM",9,"Olympus","3045022100cd8357235bc4ea2aa738ecbb323a8af240c97ec6b2b3627a75fc4e49dce44af602202ddfda06c47f3bdbe2ec8ca9375238dbaba897ccab6147f9926a39c68f1678aa","0x64aa3364F17a4D01c6f1751Fd97C2BD3D7e7f1D5",!1,!1,null,null],["ethereum","olympus_OLD","OHM_",9,"Olympus","3045022100cafec9debf82ad634b548943255ff90598eb9379e030b3b34affa5d1fde63dd202200a5b50c44e31cdaf225b0a7c4d2426debd8225c208ee871ce6379448416efb42","0x383518188C0C6d7730D91b2c03a03C837814a899",!0,!0,null,null],["ethereum","olyseum","OLY",18,"Olyseum","3045022100b3baeb3f06a9954aaba346e74928acc6bcda75528f773696af7c94071483a17e02205bac37f9594f8f724256d07135b4063102918f119092eb716edbec463547b079","0x6595b8fD9C920C81500dCa94e53Cdc712513Fb1f",!1,!1,null,null],["ethereum","om_lira","OML",18,"OM Lira","304502210085a82e802ec0c485fcb73acb1a581bee160a0cd8d8c7ed67e8e5b9d6dec1bc520220152772e310a01d2e51b2434b04d8bc1fea657a2f8ee55d601e3242b3174ad6c7","0x224DB5E6180761df4C3d8936585f6b8b83879770",!1,!1,null,null],["ethereum","om_token","OM",18,"OM Token","3045022100d1330ba7138376d0d2d444db39e63f1deb7d7c11091c394493580b350cb7dd80022052891986ab9a4caa4100c55cd3220b1b5c6b3ccbf028c519445333197c087e4e","0x2baEcDf43734F22FD5c152DB08E3C27233F0c7d2",!0,!1,null,null],["ethereum","omega_protocol_money","OPM",18,"Omega Protocol Money","3044022023674b91632e4cc54b932cec283b86ac16898015f92fa5c297ee77687965ca8202201ce4af717280b8e825c4527178770f726c93fb4ee2c4b8f046ca8c7d96987575","0xF4c17Bc4979c1dc7b4CA50115358Dec58C67fD9d",!1,!1,null,null],["ethereum","omg","OMG",18,"OMG","304402207f229943a0510425b5dcab5cffe0f60469d3d05c5557a1bbe9c0a07d4b704e66022011cd109363c875edcbdb5d7a5b3ab5ce3726d9a3cc08168f692b4862c8b4f4f7","0xd26114cd6EE289AccF82350c8d8487fedB8A0C07",!1,!1,null,null],["ethereum","omi_token","OMI",18,"OMI Token","30450221008b3ff192a0b793f3dec035ed23f9dbd1fefe955ab80bd603a662ea6df8946ddf02200399be1927282dad31cfc368e9f2622ed3e4dd7627885f178db5d5cee288b5b7","0xeD35af169aF46a02eE13b9d79Eb57d6D68C1749e",!1,!1,null,null],["ethereum","omisego","OMG",0,"OmiseGO","3044022078ca72d2c017fec44310a46de07504233d161ea571e4717149d4d684b115d16e02203a5d3b224a83398aa4fb4a7ada013674aecbca846fdf222d64301f10c861abb6","0x2392f6ABF07B5fCE14603d0E28fc952205b8703D",!0,!0,null,null],["ethereum","omix","OMX",8,"Omix","304402206bb74efc86cc30952646a76cfe62254be87e940c209f327cc28f3b80ba10756a022034102877497bcd2bf37138931d9df0b064e1f90b517f83f19b18be35555d9d4e","0xB5DBC6D3cf380079dF3b27135664b6BCF45D1869",!1,!1,null,null],["ethereum","omni","OMNI",18,"OMNI","3045022100fc1aa47ac3d216694d13d7e0fa2aa9d96d05c3e9b94666d818dc0471d16d24da02202780e6234c471def29b026f487aa13445f5c8a99a95eddff0c2ba16a6564565b","0x216685E88Fdf5991655197d47F0c4145a7F580da",!1,!1,null,null],["ethereum","omnitude","ECOM",18,"Omnitude","3044022056cda9cfa6b3ff9430c963ef827bc5f86e58b09ee4ee57e2922867da8e1bbeb30220096cf6201b1d54b673b021de7864f503bf31523fd85f997aa3b29fe5ab16658f","0x171D750d42d661B62C277a6B486ADb82348c3Eca",!1,!1,null,null],["ethereum","omniunit","OMNIUNIT",18,"Omniunit","304402204a9f936d67548177f082c7af8f9e16fb02db78e5c5dfd3f56595c704a0392167022041d5f8f1c0bf1c0b5e5e07d289dc6fac3f95879e8f103e42ca570dedbd53f250","0xD22dcF31ca28Cf4dcE530a0F120e244f4B4539eb",!1,!1,null,null],["ethereum","oms","OMS",18,"Oms","3044022060e58a6573816b0ff0fbe1c30573d8a7002d76c78d77dc02e35579cee93c7ed3022056f7da1113fcf222ab8a5f9c085f2e5f8952bce19a7df0917cd980e549c10ce8","0x3d1e3C5f658D74c585267350cac22Fd44e8D951c",!1,!1,null,null],["ethereum","on_live","ONL",18,"On.Live","30450221009ddb82631ad927ed426dcf8bcd4ffeeabef08cef295da66925a61b53b63ec2940220605ba301d8d05237a121035f147b48ef1faecf3e732dcbb12ec35958615b27f4","0x6863bE0e7CF7ce860A574760e9020D519a8bDC47",!1,!1,null,null],["ethereum","onbuff_token","ONIT",18,"Onbuff Token","30440220501a397829283df0750297edabc9a7ba5e387b658e96b730d6266238da64bc90022059284ed4348d3b7e0ec759006e4d75f57f4368153104c261591c3af2a08e63f4","0x410e731c2970Dce3AdD351064AcF5cE9E33FDBf0",!1,!1,null,null],["ethereum","onc","ONC",18,"ONC","3045022100eaa5f7c97e52a3b294f546158665038e867c0d31a5dc319a2b63e4807206993a02204ea1063582df17924e21b61d94208103f96b6f318cd8e2595b6f4259720a2cda","0xD90E69f67203EBE02c917B5128629E77B4cd92dc",!1,!1,null,null],["ethereum","ondo","ONDO",18,"Ondo","30440220701af545ebe043e244c3db3468b75c5aae1f840ac83a7e4501658bc5173b48640220476e809c52862f007daa83ad51825fbc0a3f6f9d21eb2df5020cde4c376ad453","0xfAbA6f8e4a5E8Ab82F62fe7C39859FA577269BE3",!1,!1,null,null],["ethereum","one1inch","ONE1INCH",18,"one1INCH","304402200474fba252441ea4546799424d131505dd1c7b974a9d90432465ab5d3a30b88e022069bdebb5d195302f2e528b19442466bf0e7e00aa429071f23c8bbf9f9d35fcbd","0x853Bb55c1f469902F088A629db8C8803A9BE3857",!1,!1,null,null],["ethereum","one_army_coin","OAC",18,"ONE ARMY COIN","3045022100adcdcb7d3c14783af33af1550805cf4d5e2206def10ba58f7a44528255fe48e102202748b1bcc17fc5b9ebfe6646982beca18932c17ba795fdb6e36da0d294d57fc0","0xf17E9E4e32d842e4dDFbed5750A26f7Bd77777EE",!1,!1,null,null],["ethereum","one_dex","ODEX",18,"One DEX","3044022072e43e96da449ffe37ee7159f5915b7394753ad6687f6e7ad531ed1a47fc12bb022024e1affe980b5455eee0624a1ff4be007dcbfe459040804d85fb7dd0eef25d07","0xa960d2bA7000d58773E7fa5754DeC3Bb40A069D5",!1,!1,null,null],["ethereum","one_genesis","OG",18,"One Genesis","3045022100dc844af46aea74a0bd934bcca86d0607c97ff84472f400567a42224de4932f9502200bde91a18e7e8d2b7e9d27740ec3903a248736cc2f988a8154eb6357060f7d90","0x8a4491936a8e5A1662c8a755932b83dBE9634b0d",!0,!1,null,null],["ethereum","one_k_token","ONEK",18,"One K Token","30440220610f638c16b019482665acc3cdc176ac619d138612e67b1a16f45a1b877c84af022010c00fed2489207080377644d40a5160e6d833a166741970fb4a42608d73a38f","0xB23be73573bC7E03DB6e5dfc62405368716d28a8",!1,!1,null,null],["ethereum","onebtc","ONEBTC",9,"oneBTC","3045022100ac69e8ffc35f124b5e49fb52ecfd9bae63500d2e53c70bbd88d5a88dd4ee869e02207b91e9598f62fb9140c4af5738419b5335947b10fac13d040a1fe9c605241639","0xC88F47067dB2E25851317A2FDaE73a22c0777c37",!1,!1,null,null],["ethereum","oneeth","ONEETH",9,"oneETH","3045022100d85c99d4a1f53ff32e8c035606775ff7566629bd258b60b4bd0bbf065d943a0c0220335b0dc6183983e52bcb85b7ff49b1e34e0ef95ac2878b62f71c824bfd54d20d","0xEc0d77a58528a218cBf41Fa6E1585c8D7A085868",!1,!1,null,null],["ethereum","onefuse","ONEFUSE",18,"oneFUSE","304402206f5cf37ff088f83b0f6544b47aaed2a8cdd6d442a57c4a7033fbc2912d2b2ba202201bd822443912460f056f5dcb8da98e9f9c5d1fe2ca536e0668673b52521b01e0","0xBbcE03B2E7f53caDCA93251CA4c928aF01Db6404",!1,!1,null,null],["ethereum","oneledger_token","OLT",18,"OneLedger Token","3045022100f1dd30468ddbc158f40ef6ae488a120fc297a341eb84af1d9d56681145a39f2002206f65d23692834a8b0a8cde172e39fc5d982ed7b695cae996b7bf781e96751049","0x64A60493D888728Cf42616e034a0dfEAe38EFCF0",!1,!1,null,null],["ethereum","onelink","ONELINK",9,"oneLINK","30450221008f296b485a318c53aad665b84cdb52ce1ab02b553d8723e0df3212fea4f856ad02204ce01513314b40ea75aa976e5e300192972a40bf5e561314975c00e01f326632","0x18Cc17a1EeD37C02A77B0B96b7890C7730E2a2CF",!1,!1,null,null],["ethereum","oneperl","ONEPERL",18,"onePERL","3044022013b79f0e984535eca69e704a4177dbe36ee8e37a47608557b2910a02c9a2f3690220411dd73223e98a1f57fe616d67f7944b3073f3e56e779540dd452ba0912df915","0xD9A24485e71B9148e0Fd51F0162072099DF0dB67",!1,!1,null,null],["ethereum","oneroot_network","RNT",18,"OneRoot Network","304402205a0b4cce5a458134493a9a0299524b8536dfe88ec32fc1344aefc8afc034a092022016d075b7ba92c4e2e46a1858545bac903e3095f4bb4b63a9538cac0185e6b3e3","0xFF603F43946A3A28DF5E6A73172555D8C8b02386",!1,!1,null,null],["ethereum","oneswap","ONES",18,"OneSwap","3045022100827bc3b578f7116f612dc62fd18677c9f6603ed7f3c9ca70b79fef34fe70984a02205a4adb5e359eb916248649c400e557b09741d2b4ee99c85bf033882ac4cac3a9","0x0B342C51d1592C41068d5D4b4DA4A68C0a04d5A4",!1,!1,null,null],["ethereum","oneuni","ONEUNI",18,"oneUNI","3044022077b6ffd4b95fb1a9606fb0082ad6829ca0efa3e831764f3780d300c675ffdaf702201a793c710538d59b011bc9b57344f6e15ff8f4af21bcf95ba0e614e667382539","0x8290D7a64F25e6b5002d98367E8367c1b532b534",!1,!1,null,null],["ethereum","onevbtc","ONEVBTC",9,"oneVBTC","304402202d94b69a6071022de85d51a1fa4704b1046f78f298598852e355ea5d4f9840f3022035ac7b58d911796d3687c63894d38e01bc7945460a24596d30175dd2d93d7a6f","0x7BD198b9107496fD5cC3d7655AF52f43a8eDBc4C",!1,!1,null,null],["ethereum","onewing","ONEWING",9,"oneWING","304402200d7d5922eda1952886e8a5d39f69f5771b1855fb97aecfef2485dcf9e9f7ae5c022036c3e3cc90da3b0a2d7892e3a0f7a7a0c74a9bffc4aac3f1f7b3ab1d90fcd19d","0x8F041A3940a5e6FB580075C3774E15FcFA0E1618",!1,!1,null,null],["ethereum","ong","ONG",18,"onG","3044022013ba4393091f7b2c6f51bc17122b25900bf9da3dfd2b7dc71d7af35d9f8f646e022005e13c235d9d05bf0a4e7b3e23f1997d5dadbbe422657ce4f73e11db224c476e","0xd341d1680Eeee3255b8C4c75bCCE7EB57f144dAe",!0,!1,null,null],["ethereum","onigiritoken","ONIGIRI",18,"OnigiriToken","304402204d8f6a6de62aa2bc1023f05e83ee1070a24662d379f43a841258196a78fcc27602203bfc921c00ea745c482a190456e076738c0dcc08552712ecfb57930f64ac9dfa","0xcf9c692F7e62Af3c571D4173fd4ABf9A3E5330D0",!1,!1,null,null],["ethereum","onlexpa","ONLEXPA",18,"onLEXpa","3045022100f3582980e55cc72f1cbbc8856205a77930d82468b1cf65ba850a93c9204bae5e02205c340ae72b56011f2bfdfb593a656a99cf3415a70eaee2a06243d3c12ca72151","0x33384af34b03eaCA63FD153F59589F504772b570",!1,!0,null,null],["ethereum","ono_token","ONOT",18,"ONO Token","30450221008bd9a5eca4dc60d7eae5e070f1a169a18d2d7a7f5ab6caec583268de1cf41ffa0220118cd31590bda2ad3f7ed86aff7cc1d220335577e49a2d371d3cc62d75088c9d","0xB31C219959E06f9aFBeB36b388a4BaD13E802725",!0,!1,null,null],["ethereum","onooks","OOKS",18,"Onooks","3044022077f4a4a47243d1376c84f3f6761a8f201c3a05b6933e76247538610fbb3dba88022037061869aebb7d36e1db41de5d707eaaf72b77110320ab44e921014490cab9b7","0x69D9905B2e5f6F5433212b7F3c954433F23C1572",!1,!1,null,null],["ethereum","ons","ONS",18,"ONS","3045022100f3ca633c7027e8903c87fcae39a1779837ac4f71dcfa0d4d5dcc582245408630022002a5e7c835c7cb2debb8232c82b1b565ad33ba36bd7b0c3f3ba46d0e98a051e5","0x5BB29c33C4A3C29f56F8ACa40B4dB91d8a5fe2c5",!1,!1,null,null],["ethereum","ontime","OTO",18,"OnTime","3045022100d6cbd5071c93c0ca7fe71b34ed579b9566173547380977b63c5f978e5cd536c4022056abfdd0a3473c9aa2871953efd0fe187781fd816a055150a502d779e8dff455","0x028CE5EA3298a50c0D8a27b937b1F48Cf0d68b56",!0,!1,null,null],["ethereum","onx_finance","ONX",18,"OnX.finance","30440220134b20748d083fe8d6391b013caaa95084423565800aa78924e1f7e15044ec1102203fb95482e49c504ebc311e21c0eced72ee1e5f69143db019da92013a008feba7","0xE0aD1806Fd3E7edF6FF52Fdb822432e847411033",!0,!0,null,null],["ethereum","oobit","OBT",18,"Oobit","304402206945396385445acac8eb49b0456ac43980c555cfdcb39e2908a294c6739952b602207a8c42f66c1fc5c865c93ffcbbdcffee5fc21780673adb1b1b29d9626c99f986","0x07F9702ce093db82dfdC92c2C6E578d6EA8D5E22",!1,!1,null,null],["ethereum","ooki_token","OOKI",18,"Ooki Token","3044022012694560ed822e0d9153e47d91fe94c5925a20a81b059b4866309257c832f25302204cba521de1f52c242a3d4f34d44c84d9a0a0c03dd25cc1287a8508b9693dfd84","0x0De05F6447ab4D22c8827449EE4bA2D5C288379B",!1,!1,null,null],["ethereum","opacity","OPCT",18,"Opacity","3044022016675892b17719f5a30786ddc0689b05c9e9fd9bb40396c7094080548645b5b10220360818ff5cde6c368060944fd8fa25d252054ac0f2dc14c741597f5c1366e16f","0xDb05EA0877A2622883941b939f0bb11d1ac7c400",!1,!1,null,null],["ethereum","opacity_old","OPQ",18,"Opacity (old)","30440220332f726cdb42071d999d3232743408e9bfd32c516b21a05989a76614ed18b595022048ff1755c8b49351223a072f2882ded9fd83c320c1567324dd44a1a84552ec7e","0x77599D2C6DB170224243e255e6669280F11F1473",!1,!1,null,null],["ethereum","open","OPEN",8,"OPEN","3045022100fec9c0f07d72c6c10cebd153eef7bb8db8356040b6560ca879efde1d0595f8da022008c6e0fdb0aac45580a3c248c38923f3971a6bbd60835b98fb737d19edefad83","0x69c4BB240cF05D51eeab6985Bab35527d04a8C64",!0,!0,null,null],["ethereum","open_alexa_protocol","OAP",18,"Open Alexa Protocol","304402203deb8ae8a8b670a9ea298681dd3037ae5e588c9b3b576f1dba00cba5bc5f1fef02207f641ac985ed74b133d3defeffaa6e3dfb7b8a6802be3123f972cf6927140242","0x1788430620960F9a70e3DC14202a3A35ddE1A316",!1,!1,null,null],["ethereum","open_chain","OPENC",8,"OPEN Chain","3045022100d1249eb6c226b7c1262ef68d16604985b1637759896358ea4a2be33bca09dbcf02204b5a253708a0e9812c05e711282b7d286b0234b5c5abb49b0eec49c341b85898","0x9D86b1B2554ec410ecCFfBf111A6994910111340",!1,!1,null,null],["ethereum","open_dollar_[ocean_mar_2022]","OOCEANM22",18,"OPEN Dollar [OCEAN Mar 2022]","304402204ef4861fa1edb41781d67cddcc181ecbe1b225608a50f0239a67ae2558c09afb0220604ed4117e3438f7074b9c8ff80c982ca65786fab5c61dd2cf2ab1610f3d8969","0x24D8C2163D6B13A6B8770B794d00c98Cb4E0cBCa",!1,!0,null,null],["ethereum","open_governance_token","OPEN",18,"OPEN Governance Token","30450221009faadeb58dced5c94fe3dc652bc37cc6ea0b7468dc6e4c17ee1fdab9bbed7d72022063e8a69e4929cbc1b0cebd90ca703a8a1bb5de4275ecc4271475fe882c8e099b","0x69e8b9528CABDA89fe846C67675B5D73d463a916",!1,!1,null,null],["ethereum","open_predict_token","PT",18,"Open Predict Token","304402200b5ba70dd694d3eccc124d116c9186ad94eda34d56cb7e0a139c9582d9f7b8b70220451b0f346c37fdb6bf4e8707425e4271527999f3500d6f5879e852db24d396e3","0x4FE5851C9af07df9e5AD8217aFAE1ea72737Ebda",!0,!0,null,null],["ethereum","open_trading_network","OTN",18,"Open Trading Network","304402202eb8c42a806ec762c0cbf575ee80a5cd24e887135f296d7d9be87af6fb6fea17022053a2076db79b07a98036563558a96aac564f644097414d093d3bc5ba9c64809f","0x881Ef48211982D01E2CB7092C915E647Cd40D85C",!1,!1,null,null],["ethereum","opennity_token","OPNN",18,"Opennity Token","30440220690e6e480f898d0d3527b9ea361985b2ee9cd329f48c4e9e2c24ebd65deb7b4d022027bcc302d269aad83ec4f9b2466ea574239d9fb3dde0e6b343565ab5dfcd7d21","0xA829F97373069ee5d23175e4105dF8fD49238Be7",!1,!1,null,null],["ethereum","openocean","OOE",18,"OpenOcean","304402207d75445619c0dc47cb4894de8b80cfb859f1af1d03222564e67ca5ac9686365d0220333baba5d75e6b51b91a46c33716cf2bff1781edec5d975f68e4335b7d903b68","0x7778360F035C589fCE2f4eA5786CbD8B36e5396B",!1,!1,null,null],["ethereum","openswap","OSWAP",18,"OpenSwap","3045022100b487a460f7135c480bedce06dad7fd1223a381105ee1b3f9c0ce2ff71801cec1022025431554e1f35a8b3087a7efda8df930603905f1fd541c52f91af5d9e0f77790","0xb32aC3C79A94aC1eb258f3C830bBDbc676483c93",!1,!1,null,null],["ethereum","opes_finance","WPE",18,"OPES Finance","304402207107934e37dbd481a33bd1f037e09ce941388ab31953dbbba1d060dd4f9ca62f0220477a45243e22842f617b31cbf08063c8e7fb22697c1de4ae8e771f816285abae","0xd075e95423C5c4BA1E122CaE0f4CdFA19b82881b",!1,!1,null,null],["ethereum","opium_governance_token","OPIUM",18,"Opium Governance Token","3044022068168521a371455ae73f309c64db9deb7b046f8d5242625d4f823d5b57fde0b5022034628dd20d5f34395b94e30fdc3bb37927c16a34eea1ac56242d06b2e42eec49","0x888888888889C00c67689029D7856AAC1065eC11",!1,!1,null,null],["ethereum","optionroom_token","ROOM",18,"OptionRoom Token","30440220413c578248665d4fc1b6c1cf4862f5451c04b37374c0fd622ac046daaed9a87302207013b46f686c78fbcb44d437b01ab6e06722c9db990c9f36b2e33551f2bb608f","0xAd4f86a25bbc20FfB751f2FAC312A0B4d8F88c64",!1,!1,null,null],["ethereum","options_market","OSM",18,"Options.Market","3044022003a77d90ee4182f1176132fbec27664b9292d65f3ebaa923582a1212da3d0199022010e36115b507f54260f17bf185cb27c7c728575fd6e045103c60a7fb2a2ad95e","0x9B75848172677042269C63365B57B0A51c21d031",!0,!1,null,null],["ethereum","optitoken","OPTI",18,"OptiToken","30450221009e47df0eab69f0c07e09cda889b94e69183260dff8cc6578441abe5cf647f16c0220234bba68426b7a8df6e85694d750e64b54fb54b697337a0e1f21a05a1bb018e7","0x832904863978b94802123106e6eB491BDF0Df928",!1,!1,null,null],["ethereum","opuloustoken","OPUL",18,"OpulousToken","3044022007d7236cb312b43820694a49f4717388426c950e6f8570f10384d5d8f23417d50220158941f2c96058fa76bcaa501f097d78b08116489d204827e0badd6bab7c63dd","0x80D55c03180349Fff4a229102F62328220A96444",!1,!1,null,null],["ethereum","opus_foundation","OPT",18,"Opus Foundation","30450221009dc60cb6cbed82c58638bf21c55e0915d24abc203f5d8793b304d4e6b4bcacc102202781669bb61b72284f3b0bc7b86885e2d2f4e2a516a3b1129ca49b856e359031","0x4355fC160f74328f9b383dF2EC589bB3dFd82Ba0",!0,!0,null,null],["ethereum","opyn_cdai_insurance","OCDAI",8,"Opyn cDai Insurance","304402207c79f478b13a796e886fbec87c04f29ee66c837465c2e539d2619ffb2d472ffb022078558dc3fedb8eb93f0416f69bb8326414b106b437677e1cf0b34f8079fb8b0e","0x98CC3BD6Af1880fcfDa17ac477B2F612980e5e33",!0,!1,null,null],["ethereum","opyn_cusdc_insurance","OCUSDC",8,"Opyn cUSDC Insurance","3045022100a047e135faac1a84643c1c610b46c8af71479915f61b7af2952f0d93a08f1bc402205d8a9e8e392d51b9c340a7d4b5103937df60486b50c58de0d98f27d6c6931d39","0x8ED9f862363fFdFD3a07546e618214b6D59F03d4",!0,!1,null,null],["ethereum","opyn_squeeth","OSQTH",18,"Opyn Squeeth","3044022059d2c20e681fa0a39e0d9c2f982ddde4065adb7bc298c888b32365076c59e1e10220256a565082182947f181d35147cb4f9e2706c8aed2a69192026cfa48a7d2182a","0xf1B99e3E573A1a9C5E6B2Ce818b617F0E664E86B",!1,!1,null,null],["ethereum","opyn_y_curve_fi_insurance","OCRV",15,"Opyn y.curve.fi Insurance","3045022100ef56b2a525bda73be19ae28b6f4a54320e57baafb92cb971350665fa10df8b7e022030e94c93b5c1ddc1e4702f1ec71ad4a97afebea152a8ecd584b6aa23c469df42","0x4BA8C6Ce0e855C051e65DfC37883360efAf7c82B",!0,!1,null,null],["ethereum","oracle_system","ORC",18,"Oracle System","3045022100bf30e090055646985a8e7c87826a6c989a6b3a5d9e1eda17a246c191d0d91fac02201ebdef1f2373a33e8a4db086003382f2b417f7a476ea732fe9242e5850e3f2cf","0x324AF2D5353f2dD138E234b359d30d67C64b1b20",!0,!1,null,null],["ethereum","oracle_top_5_tokens_index","ORCL5",18,"Oracle Top 5 Tokens Index","3044022019e66178a0d4a854fa1561047f07e3490dae1534b295366e634900657ab0e5b40220530145b0eca9069dc12f8a0e631a1a94c567ad4854aca7c1a2086b141c93f60f","0xD6cb2aDF47655B1bABdDc214d79257348CBC39A7",!0,!1,null,null],["ethereum","oraichain_token","ORAI",18,"Oraichain Token","3045022100cea50886f56a29c594ba7042f306cfbd0ffab2fa6bda54780a9897d339031eec0220409538d7bfd1cf949185698f4235bd2705f464c5f3de52c8ab2212c64538694a","0x4c11249814f11b9346808179Cf06e71ac328c1b5",!1,!1,null,null],["ethereum","orao_network","ORAO",18,"ORAO Network","304402200fdb675edc7988458bb4b396cc495674f00cce4060b60b661c651fa97eed014102204280a96c852aba60c38b3391495459c8b398373520f5e3ac4a123242617ef516","0xEE1CeA7665bA7aa97e982EdeaeCb26B59a04d035",!1,!1,null,null],["ethereum","orbeon_protocol","ORBN",9,"Orbeon Protocol","304402201da40689b21bdcdc5ac2ebe1acfc47a246254e56b7d308e8fbb8ee6f290314430220768c67a047fbfb803fa1a7d0d1c1deaa83bde085c2899a2cf20951c817105594","0xA7fBd9254f10F8e20a31a593C9E8BC0D041e15F6",!1,!1,null,null],["ethereum","orbicularv2","ORBIV2",9,"OrbicularV2","3045022100efcf2ed10f2e7430657ffc94667976397bec640bef779485ca361ad401b17f21022016c6e4cafa8be82e3dbbf09814a5df33160df706806c2cf2c8bdd701dc2186b7","0x2De27D3432d3188b53B02137E07B47896D347D45",!1,!1,null,null],["ethereum","orbit_chain","ORC",18,"Orbit Chain","3044022013452773939556219fcc0e68cafef8173336cce446ea4b7b64608cb253803b6402206b7979309ea902c828a6a2a00c22f1148f2ae87340a0e59075de13e9e12fa48d","0x662b67d00A13FAf93254714DD601F5Ed49Ef2F51",!1,!1,null,null],["ethereum","orbs","ORBS",18,"Orbs","3045022100bd5a1ba823e07acc290690f1450e2eb0a9eb6e3b65f9bb2914832123b3660ff1022078c696a3c23ab2f882a4181980495d7d8f1b64550e0cb537fa5a1141b856ccd6","0xff56Cc6b1E6dEd347aA0B7676C85AB0B3D08B0FA",!1,!1,null,null],["ethereum","orca_token","ORCA",18,"ORCA Token","3044022043e7f3069ef2d263e4195f396a302adc90ab42e9ed15379e75fdca3415e09fd802207c460dbeead595a1f062f863d2437eb5a7dbb0940a1055f71dd7bb2f33029e17","0x6F59e0461Ae5E2799F1fB3847f05a63B16d0DbF8",!0,!0,null,null],["ethereum","orchid","OXT",18,"Orchid","304402200ebbe2bdd843171978a1c63f4f2ed859d034c8b362e49fe287509fe53e8383950220522549181aaca98c6e8025cb0e46cda113138950bdd395268c974e0c5023daf2","0x4575f41308EC1483f3d399aa9a2826d74Da13Deb",!1,!1,null,null],["ethereum","orica","ORICA",18,"Orica","3044022064890b42c41879e53242dc7a4c283960861b9783b7b06fd3868042073ff9883702205002c061aa67bed39001d5f4fab6d70cb064f4043030e070b82cf2d52df2d8f1","0x3045d1A840364c3657b8Df6c6F86a4359c23472B",!0,!1,null,null],["ethereum","orient","OFT",18,"Orient","304402200ff3987c64e52ddec8837db271138fd0680317732aca436a5c6f0adf2f51facc022009eba543f7bad5dd923fa8345532ff3936a5d04602a8901d54cab8314b9b4d4a","0xc0A25a24CcE412E2Fb407c08E3785437FEE9Ad1d",!1,!1,null,null],["ethereum","orientum_plus","ORTP",18,"Orientum Plus","3044022076bec501806c0de00780a05b0bb600cdc0ab902bef830f6d7220f4b37b38f5f5022037c6443e65dacee70c773c0d425346c3dcac8f9d38c92c045e0bd1a9d4fc8d58","0x6EE10C4C566166135C8DE574cE63F583AfC6d2b2",!1,!1,null,null],["ethereum","origami_network","ORI",18,"Origami Network","3045022100f5d1f14c5e5a3405a79d47646d08a60c0c0bb76006609f07a3867dcb78cb5b8e02207b0b2ddb8ae800acea95e1a0380bb13ad3e8a0491e8d1e15b9474f43015afc2c","0xd2Fa8f92Ea72AbB35dBD6DECa57173d22db2BA49",!0,!1,null,null],["ethereum","origin_dollar","OUSD",18,"Origin Dollar","3044022027a53b67c90d48bbdccb4ae4a5480d2ffd394f9e4a68c613f0476ea2567aa6df02205ce658fff7b9bf717a9c7ee99d1f062e25fa129537cfd94e082a961508875a88","0x2A8e1E676Ec238d8A992307B495b45B3fEAa5e86",!1,!1,null,null],["ethereum","origin_dollar_governance","OGV",18,"Origin Dollar Governance","3045022100cf2e5c927557ed6ce6e37c6d72e1c104151799141043b18f2b093695c3c0b5c802203073d1fddeb7537b792c62fa127f7153810fe517addc098d846aeb577ce100ed","0x9c354503C38481a7A7a51629142963F98eCC12D0",!0,!0,null,null],["ethereum","original_crypto_coin","OCC",18,"Original Crypto Coin","30440220043f1fea51cca8d9cd8f267b0fa489c542ec4cc3e5efe48890abd1f5dd196ab202205a7fa8aee9937d3293442bbdadc0baabbfe45bd3d328c2f4dedc7594b1e885f1","0x0235fE624e044A05eeD7A43E16E3083bc8A4287A",!0,!0,null,null],["ethereum","originsport_token","ORS",18,"OriginSport Token","3045022100858a0e2b7d366633a6b71cada0f1960f737bd53ba24f839187d6d1d83948633602205f5ba171e72e5b130d4effcbdfd452dd52c80c0209f150a6b546853daaf16f38","0xEB9A4B185816C354dB92DB09cC3B50bE60b901b6",!0,!0,null,null],["ethereum","origintoken","OGN",18,"OriginToken","304402207b133e7afdde3a5455a9492effc5514189e23eea2cdbce8e72062775ebfcca98022014f9c844b4136331011209dcfe37fff62492363f883dfed5ef9eebe3253dcf2d","0x8207c1FfC5B6804F6024322CcF34F29c3541Ae26",!1,!1,null,null],["ethereum","origo","OGO",18,"Origo","3045022100a37db195c4592ff30515460c3c37d515b7960f73150ae1f4b76c08bc5b8cb7490220783ef0919a736846f66727ef80602b14bfbab17734a5b9813908b17b8d200119","0xFF0E5e014cf97e0615cb50F6f39Da6388E2FaE6E",!1,!1,null,null],["ethereum","orion_protocol","ORN",8,"Orion Protocol","3045022100e3461d046ed9387ff97e137594545b4b5e3b2a047067625fcd92c9b8f02279610220730b1d180a0dbdd4bd12bbc50dcf85fd5bbccc86ce0f007438dd223bbcb5cb75","0x0258F474786DdFd37ABCE6df6BBb1Dd5dfC4434a",!1,!1,null,null],["ethereum","orium","ORM",0,"ORIUM","3044022065b8cec4aff5b3f343f2f83110c790e4f214ee9268cfb998d1f9bd30c54bf33e02205662626a25706347a17ae68cb0f0ade074549112f46bd74b6b93c1b152cc3521","0xd51e852630DeBC24E9e1041a03d80A0107F8Ef0C",!1,!1,null,null],["ethereum","ormecash","OMC",18,"OrmeCash","3044022074bb4161bcb5247d72b778b6fcb1582b2b5ddef57665a8f21fd2111e1decb02c022036fe13fef13c3330521d8b62431967105445ce4e7122a8886952fa2f32a85124","0xd6bD97a26232bA02172Ff86b055d5D7bE789335B",!1,!1,null,null],["ethereum","ormeus_coin","ORME",8,"Ormeus Coin","304502210085f6e5eb01b2a55e7cf1903329ec3ebbe1a90fc50d98539c799df5e58b44bbd902201660c205ad9098e56ec65978b36539511d5e68a20f1e447aefc5d2db08b7b6b2","0x516E5436bAfdc11083654DE7Bb9b95382d08d5DE",!0,!0,null,null],["ethereum","ormeus_coin_","ORME",8,"Ormeus Coin","3044022007652a200408c0acf5f520d623a7422a9fba0bcefce64db7980b00abc551044b02206e055fbd1c600f7850679690de3c1eee77c05a23ce8917944c5cbc0b2d953fee","0xc96DF921009B790dfFcA412375251ed1A2b75c60",!1,!1,null,null],["ethereum","oro_token","ORO",18,"ORO Token","304402207cf4e7bb18943cdeb2933b6eb566fefad5c3f61fbcfdc12827ee60a5ceaa9e8a02206b5c382cfbda886e0d40b89074c218c6b212575e1aacfc3d7c37f15fe0e99589","0xc3Eb2622190c57429aac3901808994443b64B466",!0,!1,null,null],["ethereum","ors_token","ORS",18,"ORS Token","3044022072512c749e8112c96bd525774a07a21d18c8e2938c8bb9ca3ca099a80e18e2cf0220127971dd91869d7ed4d8879e1fcb68798aeaa3bc6c8ed5ef83669d97d7d950f0","0xac2e58A06E6265F1Cf5084EE58da68e5d75b49CA",!1,!1,null,null],["ethereum","oryx","ORYX",18,"ORYX","30440220670ef326ea4b0d18610b0f3bc57ddf46aece8b24395f906ed895069a8b470be00220611b3c690b3f5329b33c19d77395ad105799f15d7d9a3fae5b386588e433e02b","0x5C0Bc243Fb13632c4D247F4f0bC27f2f58982C39",!1,!1,null,null],["ethereum","osinachi","OSINA",4,"Osinachi","304402205a51088c1685e48704e5e73d2c849bcb90dce3a983fc6822a442b1477f4be82f0220785909205f5f817a552b01f42aa76a7d5aeb4913808c0c5fde953d71490158db","0x39Ad22C916F42aF5f67371d6f2Fb0dab42321a89",!0,!1,null,null],["ethereum","ot_aave_interest_bearing_usdc_29dec2022","AUSDCD22",6,"OT Aave interest bearing USDC 29DEC2022","30440220032d8223738d9c93d36e19ec1e1c54909c65cb90a4f1d0915c84d3578403763702201c8ab1c204e6637e83ee7fbe70bc29179dc7124be75e3467b452c8a9e2d0c7cd","0x8fcb1783bF4b71A51F702aF0c266729C4592204a",!1,!0,null,null],["ethereum","ot_compound_dai_29dec2022","CDAID22",8,"OT Compound Dai 29DEC2022","3044022015031d834ab651f0a9945e3cf2b5edce8e19fe87ddd7eafbbaf0dc20308ea3ac02207625643559d9b002781845e404d430db7000395fb6ee1c67fddecc504be86213","0x3D4e7F52efaFb9E0C70179B688FC3965a75BCfEa",!1,!0,null,null],["ethereum","ot_sushiswap_lp_token_29dec2022","SLPD22",18,"OT SushiSwap LP Token 29DEC2022","3044022037a6260f3d2dfb051ee84a51157e53c69de0bb822f0d96dc5955674cdede866c02204245e73684a63a7dee9ca6260492030376c231f71b5f9f55992a2ace761a68d6","0x322D6c69048330247165231EB7848A5C80a48878",!0,!0,null,null],["ethereum","ot_sushiswap_lp_token_29dec2022_","SLPD22",18,"OT SushiSwap LP Token 29DEC2022","3045022100a2a0317b338022637a42ac878d6b1e2f5c7293a9e46f966064b40db9050a9e1e02201a0e8394028c15d4934c092ef619f51de8c68c34fb70fd4143f7f53f5f91c1e8","0xbF682bd31a615123D28d611b38b0aE3d2b675C2C",!0,!0,null,null],["ethereum","otcbtc_token","OTB",18,"OTCBTC Token","3045022100e14b1bf23531b161cc8c8b5db1e671648e7d4ff1510d2a9e685d4e0d06188cf2022000c812ebf15bdbfddb1bff4a63f4d6fa285db269683fafa1853c5ca309c50fc6","0xA86a0Da9D05d0771955DF05B44Ca120661aF16DE",!1,!1,null,null],["ethereum","our_pay","OUR",18,"Our Pay","3045022100f25019d267b3f60607c20db4eae1878f9d808846902cab7a22f65f58d725aad60220510277e698392f275a437f7145bcda3300e4af5b1f049115da64ba603bd8cb68","0xdff3d69a00759449F091561A0Af99a218982Bd7f",!1,!1,null,null],["ethereum","oviex_com_token","OVI",18,"Oviex.com Token","3045022100e61b988ce0153310c60af60ecf0132ee45663bd3a38dde1652d507ecab6f38fa02200b71468bb43a63b7046e61087bb5629308c20242f80ee68eff5476d94bd66876","0x6B3760FACDEb7F798Cd13c0aF2e4cd9dDc085122",!1,!1,null,null],["ethereum","ovr","OVR",18,"OVR","30440220612eb9a7342c38b9c092e0c3fb3530638a1ffcbb6a7e85cd8267636b0523db6e02200bb58b8ec76839dd8e135fc6bb944bcaf4ad6978d39ac11dd784835d7f2d2188","0x21BfBDa47A0B4B5b1248c767Ee49F7caA9B23697",!1,!1,null,null],["ethereum","owl_token","OWL",18,"OWL Token","3045022100cc713e61df5e4472673c0230dc8c15332a3365c0b83f9510319105b9943f005d02203813e1a0c35d3795dd8045861dffa9b14ee435679bd31b907eba5b18b5549f51","0x1A5F9352Af8aF974bFC03399e3767DF6370d82e4",!1,!1,null,null],["ethereum","owl_token_","OWL",18,"OWL Token","304402205de3ca9eb515dd4fad9b9e938c154bc3bfe2675fa9dcb21394340b73e9301ded02206748a7d384374a757972462248440c4f23ac1c8dcca1180ea703c2a6d8c19725","0x2a7f709eE001069771ceB6D42e85035f7D18E736",!0,!0,null,null],["ethereum","own","OWN",18,"OWN","3045022100ed6a237fe322a6165ac04917cfcd2138ea65fa4d888ba46ea132d053f108342f0220415729666ced1fd6cab81457acd60e9bc627266d7b37859f06b466b56b820822","0xcC6F15Be8573cB8243C42d300565566D328213Dd",!0,!0,null,null],["ethereum","owndata","OWN",8,"OWNDATA","304402201141df32feb479761b1a4f04a65e731c0c4b394b6d06fa9d7918adb867841ca202203d0f96a12f60c5e7c9e6f509d1832ac2385e2785b090e2a10415a9813063165f","0x170b275CEd089FffAEBFe927F445a350ED9160DC",!1,!1,null,null],["ethereum","ownix","ONX",18,"Ownix","304402200beb6f2710b0ae3b13912cd98ae7064eebfd087493bbac55b888d048e30711160220560bf0c0ddc9d910ddce9ad02314a4acc878ba46fe1338264ba6cb639947ee80","0xcF78C7dD70d6F30F6E3609e905e78305Da98c863",!1,!1,null,null],["ethereum","ox_fina","OX",3,"Ox Fina","304402201dea746c91fff91943e655ab6bc4d2e588cf740fb0017b1ff32b4873029fdab10220489c9ffd13c16fa49b86ab0e09736ee11be1177e1f98791ae9ede213000981b8","0x65A15014964F2102Ff58647e16a16a6B9E14bCF6",!1,!1,null,null],["ethereum","oxo_farm","OXO",18,"OXO.Farm","30440220099114e8bb65ca6e5d85d37122131ee4fe4751bee5aa4e4830e4026c4c05dbce0220399febec683216684622c605646f855711a32d3db6f5e03a7b9529f8356c1fc5","0x47daC6BD80f024575a6d367aF5Ba8e89202A09fc",!1,!1,null,null],["ethereum","oxycoin","OXY",18,"Oxycoin","30440220065eff61b95af833bf53911f0515909f1380abef5f4093a59165dcdf8a41603b0220502979d25d020f4914429e142962aa7bdab21f84dddf5ca192bae4eab09c148f","0x869b1F57380aE501d387b19262EFD3C0Eb7501b0",!1,!1,null,null],["ethereum","oxydev","OYT",18,"OXYDEV","304402206c5e5ff834847a0f3f87caffd4efc69c5ec637cdf52c8526a659650770b77fa702200307de188d641d1d8b358ec555eb715e10442445242fc74666051022bb6f3c07","0x33C8517e8b1BEEFd4A5275Ab72AcF39cd18331A3",!1,!1,null,null],["ethereum","oxygen_ecosystem_token","OXY",6,"Oxygen Ecosystem Token","3045022100af1a07f4e9e5d51f7da19f4e21369f34e393469eb44c627396c2b161aa90bb4f022064290257ff9a21b8c38d4fc01da462a79cf421ec92b0e61209b4cfd9779fb4cb","0x965697b4ef02F0DE01384D0d4F9F782B1670c163",!0,!1,null,null],["ethereum","oyster_pearl","PRL",18,"Oyster Pearl","304402202450bee5653b52932dcc6618e332d6637ce86f35e2b61ee78ad6c1e7628bbecf0220642d40bba010f0b9337845128466ae1fd32bc70cc1f9ccf92dbbbe05f9043ae9","0x1844b21593262668B7248d0f57a220CaaBA46ab9",!1,!1,null,null],["ethereum","oyster_shell","SHL",18,"Oyster Shell","3045022100e115bdc94d3036ce3532ae5f89d88490d5ae16dd26970ef6d4a2fa95f37928c30220503b5d597d042535b41d392c486622be3afc0e19fe95ed56ac873d611ffc8c48","0x8542325B72C6D9fC0aD2Ca965A78435413a915A0",!1,!1,null,null],["ethereum","p2p","P2P",10,"P2P","304402205f856e3969ab45958d42f1eb5f1297a13cbc8efdc99387a1b317535e549911aa02201cb41a0a0b1b24ea874eafce92b2660643c66f0fa8606520cea8906f56770c37","0xABE9b2e4bbD5A8C718752c41254Ed81aaE7d98BF",!1,!1,null,null],["ethereum","p2p_solutions_foundation","P2PS",8,"P2P Solutions Foundation","3044022026a10f3899792234130da68b2a49f7ce5e4e4163eec7beef562b28b2c17270ef022004ae7cc530295eca3e0f813c2424545fccd2600867e22588cbe4fe4494665a57","0x4527a3B4A8A150403090a99b87efFC96F2195047",!1,!1,null,null],["ethereum","pact_community_token","PACT",18,"PACT community token","304402206f81675ee637d27f194c81dcfddb1b9f0dd58fd60336e3767396764e74181f590220441b39a24ac03e6d811b17e28835ab446f2788665178d903ba8765bda98904aa","0x66e7CE35578A37209d01F99F3d2fF271f981F581",!1,!1,null,null],["ethereum","pad","PAD",18,"PAD","3044022013b7d4c59d9c311cee87969d47ddb0b0e56fd9d691f4a1c614f64c8680575f75022030710901fc00405b31fd1236bf0060dd2fe62e6c3bdc5520ed05160f6e018608","0x5067006F830224960Fb419D7f25a3a53e9919BB0",!0,!1,null,null],["ethereum","padcoin","PAD",18,"Padcoin","3045022100b9b7d9257b72ad6a0d299bbdf890f9154ea72960a60e87d15d9e94f3beb7ee1e02201c5bac4820092c989b7df9250dd233fb34951876d918b9c803af5c75d2922114","0x992a8a9F4Bde0FB2EE1F5BBB3Cb7B1E64748E13d",!0,!1,null,null],["ethereum","paid_network","PAID",18,"PAID Network","30440220218c6e4c7719f901fb23347893d75c9f31bb9d58e620b50b040e1614e320c1ae02205ba03c696a1adb27ba50aa7013d5a92fcfbffc036b06e2e20079cbecba8cfa57","0x1614F18Fc94f47967A3Fbe5FfcD46d4e7Da3D787",!1,!1,null,null],["ethereum","paid_network_old","PAID",18,"PAID Network (old)","30440220406c18fe89abb385df500fc2bff5b18cfdf1c115beffdcf132b6eb78d550349802202c67990d4ec6ec26c8d6f510e9cc6a4d373475a04d582d802a046372dd78e8d5","0x8c8687fC965593DFb2F0b4EAeFD55E9D8df348df",!0,!1,null,null],["ethereum","paint","PAINT",18,"Paint","304402200341269a07ad67a9aa2bd461582cd582258816fc697378b33f712d4532bfd74302203b669aebc7a2fb5c6be142fbb3001b53fbc0841c8c415a736f734bf81669528f","0x4C6eC08CF3fc987c6C4BEB03184D335A2dFc4042",!0,!1,null,null],["ethereum","pajama_finance","PJM",18,"Pajama.Finance","304402202123fb663076decb7d7574eb9520ca3aaac7f81b4e6bf1421489e61ab4176a8a02201f2d9c238edd296ed9b16b531a9ac00ff9de3a1b5ef5fad55112ee38a679cee8","0x61bc1F530AC6193D73aF1e1A6A14CB44b9C3f915",!1,!1,null,null],["ethereum","palace","PAA",8,"Palace","3045022100d7c75bfb5396b1ba6e3a9dd6849696a04b25b512e6475650dc1389e41d62f0cb0220579cb2aa8feadac52bd54296b75894fa67a9c7ccd7783b620ab53813d13cddcf","0x3D9Ac8e7a9C9bE11DFac1677dDa901E28d44527f",!1,!1,null,null],["ethereum","paladin_token","PAL",18,"Paladin Token","304402206ae3de0c9c60de4f46a821980a45df05637a7ca68ccf88b8c4fa0c8a1a569cec022045a844ed49ac17184b04b998e85e6632fa458ab27aeda7718defe6ea39edb147","0xAB846Fb6C81370327e784Ae7CbB6d6a6af6Ff4BF",!1,!1,null,null],["ethereum","palletonetoken","PTN",18,"PalletOneToken","304402200299a2dce8e7202b14e9e3ee4a0bc7c6eeb0f0169ffd75486cff4c22244f23ff02201ddb9ac14b19991b5dc372c7d2fe1453ea6d9ef691c26eb16fd02298c73b2862","0xFE76BE9cEC465ed3219a9972c21655D57d21aec6",!1,!1,null,null],["ethereum","pamp_cc","PAMP",8,"PAMP.CC","3045022100b0ff61f9fb4128f36f66018fae11d6accd16d1fd47e8853a6319e8475b63d6350220226f6abf51e38855fd0862500aee1ef41160dd944a833ace4ee766d6dcf6089d","0x7f0f118D083d5175aB9D2d34C4C8Fa4F43c3f47b",!1,!1,null,null],["ethereum","pamp_network","PAMP",18,"Pamp Network","304402205bacd81abb34ace1a6f7a5c84e7dac17dacc810bab65f38f7513cc2900bbac08022064fa896cf598fcaf532acb2dc9f33e4800cc90915a52d81d6dbe02fbe6f4f0ff","0xF0FAC7104aAC544e4a7CE1A55ADF2B5a25c65bD1",!0,!1,null,null],["ethereum","panda_finance","PAND",9,"panda.finance","3045022100a8bcf3fd320e9fd36e5be9a863bf9708d7ab11a3ff2079d880c89f619c28bec402205179f50dc190821844d9071391393cee73237bbf856c7dae625cf0ca551c0b76","0x5bC52b5367b637bec5f818E69208EB9f03C426eE",!1,!1,null,null],["ethereum","pando_coin","PANDO",18,"PANDO COIN","3045022100a759f6ca396ef97f2eff150d9045a79540c57a6897c3fff47ddc7af3247a55a60220543bf5cc18e22f30d1aa40ae84665be231aed7a04cd240fc959cb2c549bb9d7b","0x7A3C45F34eA5DF6fE5F6aF710eC8A04D388a71D1",!1,!1,null,null],["ethereum","pandoren_metaworld","PMW",18,"Pandoren Metaworld","3044022038cbe47924df1c8075da680ee56c16bc18c9942e801a56bfa401e6198fb8757f022064563d3605de373e180cbc5df0f9e3eec375ce7ba19c6dba7c142369952fbd16","0xF09a3559B68541D6d8aE3DC7C778F970d09Bd530",!1,!1,null,null],["ethereum","pangea_arbitration_token","XPAT",18,"Pangea Arbitration Token","30450221009b1d11f099c3da640c7ae9ccb9836f569252e621afcfc129093c3791a2ad41b502206e68c90a7d667472b7de7456cb16dc5b92bcb1c6912e9077f0255bbfc3bc852c","0xBB1fA4FdEB3459733bF67EbC6f893003fA976a82",!1,!1,null,null],["ethereum","pantheon_x","XPN",18,"PANTHEON X","3045022100e520b365ae5460532566b7efd93233fc189811f7ad3c4a128011ac178ac96291022075c8addfcb142f1c41f74e70b64be1c67723cc4484e1650bd3d74c80ea1b94c1","0x3b9e094D56103611f0ACEfDAb43182347BA60dF4",!1,!1,null,null],["ethereum","pantos_token","PAN",8,"Pantos Token","3045022100d1993b9fd26df71cad1f675062440cd43700c5eaca61edde340bb9a2633680fc02203c3538df512e8e76d3fce810f059838cc9a0f72e483e4082f5a90be57a7dd143","0x536381a8628dBcC8C70aC9A30A7258442eAb4c92",!1,!1,null,null],["ethereum","panvala_pan","PAN",18,"Panvala pan","304402204b8084eae23fc60008e9a571b8ed388b2929fc47658b05798b4dee5799789c4602202e467e2f48f8ad86a7e9717c4f5a623d4283935caa32e26202463be8b21ea528","0xD56daC73A4d6766464b38ec6D91eB45Ce7457c44",!0,!0,null,null],["ethereum","papa_shiba","PHIBA",9,"Papa Shiba","3045022100cf1d2330d4c1441397f353b500c29af5e1e50c068969b743b6c127931b77bab202203eea2b2b1adcc895e6ec5f5915f123abfc151e71b91c7f17b71cca0958d1ef30","0xc4d586ef7Be9EBe80bD5eE4FBd228fe2Db5F2C4e",!1,!1,null,null],["ethereum","paper_token","PAPER",18,"PAPER token","304402206bed7268f10561b3db9a08d1dd6bf41cec6ebc42c885ec1a109d4f87c8183cc5022045799552da9a32effe70ed655f2e37f890890f03fee168781e5a3165dfde0eab","0xdDce093888C8Dc636677Cd29BC6C68D35cFDAC33",!1,!1,null,null],["ethereum","par_stablecoin","PAR",18,"PAR Stablecoin","304402206aff2f4ef772f4b786017a7556ebf893aeaf0f3d1c0eb83d6f9f0f60230108c20220731de424a71c8ea09aea0ceb1e3b22e187521124483b22afb9c26c882a79b17f","0x68037790A0229e9Ce6EaA8A99ea92964106C4703",!0,!1,null,null],["ethereum","para","PARA",18,"Para","3045022100dd78479dfbd9caf4cc2a07a3ef46123c6c58fa3f49c4440aaf0fc319ebad9f51022023f45af47daa0cdffe66a06802047eb9123fc8ed0c65fa3e6d466b44763d152b","0xFb13dFC9f8f3EeDdD7C9b581D0D7Cf367513FF7C",!1,!1,null,null],["ethereum","parachute","PAR",18,"Parachute","3045022100fff782d1e2e7d176fdf7deb636c6a366345eb022aafc7adead2a88ad9cfd70fe022019284eee9454b038ba5bfc970bd3937127a3210f8df29cbc41256ba709860fe0","0x1BeEF31946fbbb40B877a72E4ae04a8D1A5Cee06",!1,!1,null,null],["ethereum","paradox","PARA",18,"Paradox","3045022100c1ccc669949019d517ca57f1baf59e4b4d12a041a2630942376122cf5c66315c02202168968f0bd58e3d91f34e658ad373a7674006f88687f328a07dbe206906e804","0xA64c055Fc5C8e0D796f791512025827653640f03",!0,!1,null,null],["ethereum","paralink_network","PARA",18,"Paralink Network","30440220548fba2f777d9380cdb78672a2a7f566457352ea7fc553724a926de40de3f6360220037d9067852e08d656d22e55ab8e9c7b0a96b774d7f5929b3a27a95242f63bb6","0x3a8d5BC8A8948b68DfC0Ce9C14aC4150e083518c",!0,!1,null,null],["ethereum","parallelchain_token","XPLL",18,"ParallelChain Token","3045022100a500f28ff4d419ed8502ff27ece4d70ea00ce0af73d32de60d5a8f55cbe66c1302205ba1e542d860cdf34cf956bc6ac8dd5e1687249a9913d611ae67e107c4e41293","0xb3B07030e19E6CeF5B63d9d38Da1ACF2F3Eb8036",!1,!1,null,null],["ethereum","paraswap","PSP",18,"ParaSwap","3045022100fc1afccf3b010018f51ca6f52b774c3b122d2aa90606aafa2bd0c2ed51e5144c02202da14ece51138f1e43cab63571062157bd572d6c40ff2437928300d24813e14f","0xcAfE001067cDEF266AfB7Eb5A286dCFD277f3dE5",!1,!1,null,null],["ethereum","parawerx","PARA",18,"ParaWerx","304402203445a3ef3468b85baf7521978902134bcc0e685054f4bb63a729cdd17568f08d022061ff56673c7bef00a24c8ef8d6947057d7af2a1b05f69e938e2a320966696ca2","0xD16fd95D949F996e3808EeEa0e3881C59E76EF1E",!1,!1,null,null],["ethereum","pareto","PARETO",18,"PARETO","3045022100ab33c1ea14c866f1b560c7c1249d14d49b5abe1a6aa1a8e3ec90f7874f7c4fe60220031bbfd1f83e8a8a063eddd775a88028ce5ec5703fe5dc1c59e6bde2ecb07b64","0xea5f88E54d982Cbb0c441cde4E79bC305e5b43Bc",!1,!1,null,null],["ethereum","paribus","PBX",18,"Paribus","304402202f3aef4a63cb0d001db42e2befb282194b25f3b0495de34ddaf9c09dcb43138702207182ac3ccd0de33466e0592ad2268f6a653ed3054d5286f4709b79a5401719b7","0xD528cf2E081f72908e086F8800977df826B5a483",!1,!1,null,null],["ethereum","parrotcoin","PTC",18,"ParrotCoin","30440220445b38815c824442f48dbdc48584e34c9eba42bce9a7632e836d729af4db0aa502204bb362e0fbdaa06fd1bafad43955b72a2e2a973948413a1a8bfb2adab5e32af1","0x2a8E98e256f32259b5E5Cb55Dd63C8e891950666",!1,!1,null,null],["ethereum","parsec_finance","PRSC",18,"Parsec Finance","3044022007da560311d88e3e2a34b887a7dc8df7bdfa2967315d1bed43c83ec45e7d4dc502200b9b351362d0f765aca8fa973cbc02560c865f49c7c95c0f149ef198eb4f5526","0xa0CE0d783a18bf2FEf6066E5557E9F80C98ABC18",!1,!1,null,null],["ethereum","parsiq_boost","PRQBOOST",18,"Parsiq Boost","3045022100f195b7b2c23d0d723ee84b5c33f6b6045884da1954ffab14cf76f0da5747e6aa0220196b852d0be4e1bdcc663bbc4ff2a815e879ce2453b91add8cd332a90d168fca","0xa211F450Ce88deb31D3F12Ae3C1EBf6b0e55A5d9",!1,!1,null,null],["ethereum","parsiq_token","PRQ",18,"Parsiq Token (Old)","3044022066614f27a7118835ea6300b8099bd627fc6cc636539066ee338dca19eec23671022066ce57be72041eddebe382242c7131eb5e80c8dbceae5e16de8380a77bed35ff","0xFE2786D7D1cCAb8B015f6Ef7392F67d778f8d8D7",!0,!0,null,null],["ethereum","parsiq_token_","PRQ",18,"Parsiq Token","304402203b4cc44d7a57b8697b1dbb6bb89f2fbd7fdb5e636e9d3a65e1d970e0979c0cfb02201ecbc64f85252d67d0380017e5fb57bfb0e65edaf8c0890b5ded4e92e11858b3","0x362bc847A3a9637d3af6624EeC853618a43ed7D2",!1,!1,null,null],["ethereum","party_of_the_living_dead","DEAD",18,"Party Of The Living Dead","3045022100e386bf3bae0aff1aa7b804f229021110836c76dfc5b993b80c9c911465aa30f5022079904eac4884dd3e2cbced4e07a75a0378ec3f44be5cb8e865e6c3c2a1595be2","0x0C7060BF06a78AAAAB3fac76941318A52a3F4613",!1,!1,null,null],["ethereum","pass","PASS",6,"PASS","3044022014731c6d861c171141e13a0f9f639db5bff3fdade34cc77326896408065f5a6002200b074f68329b8adc796c0ddf32ab01ab41f4feebd4c2b047f5ac4c0f8d26c2b4","0xeE4458e052B533b1aABD493B5f8c4d85D7B263Dc",!0,!1,null,null],["ethereum","pass_token","PASS",18,"PASS Token","3045022100d694aaef9d6d3b5a549ff568224aeb693eb02ecba97e3aab45c38b05948fc2480220739cda10790fc98796b5135055149c2c29211aec0c99e2fee3ce77e18d2e4f70","0x77761e63C05aeE6648FDaeaa9B94248351AF9bCd",!1,!1,null,null],["ethereum","passive_income","PSI",9,"passive.income","3045022100c9c50fe4c07f273155949f4a11c02c5553d3124052a2d3c3feafb5928150887902202e1e01e8857f2b487e0e3caf90b496f8893648e525bcb846c1003a2956a816fc","0xD4Cb461eACe80708078450e465881599d2235f1A",!1,!1,null,null],["ethereum","passive_income_bot","PIB",18,"Passive Income Bot","30450221009107ad15f0c1dd589f3c63029363c86b879b52fe58b045a666283d3325314dda022010aa00143997125e59137f59ea0ff427e95333120a26407f149d3c41c8125cc6","0x1BaFfbc23f2246040cCE12F7a140C38c5DC73e46",!0,!1,null,null],["ethereum","passport_finance","PASS",18,"Passport Finance","30440220440dcba7dbcb6811c06fa353e53d5f24dd47317ae530804153fbd2873e8fc0c4022015085d0a66676a591099a15e3630c7a8140e951ae5a6dd2b6c88ff8e5842a440","0x6C4522F0035bED2180B40f4c5d9DbAab64B41325",!0,!0,null,null],["ethereum","patents","PATENTS",18,"PATENTS","304402204102d9ee067c4e424df0e5e1af3786149ac78a28679b0c35714821db5113585802201f77ad503b58163534041f5aa381010bda4c910b7772a3955669f5c4780b4510","0x694404595e3075A942397F466AAcD462FF1a7BD0",!1,!1,null,null],["ethereum","path","PATH",18,"PATH","3044022040422cde815bc340b98d8d86d81df08e72dc96ea6d8a332f408a4754cd4ee8fa02200dc1dd1e8b478d71a3126ab5eb1112fc9cb7800b938502e77a58e5ef6a18afa8","0xF813F3902bBc00A6DCe378634d3B79D84F9803d7",!0,!0,null,null],["ethereum","pathfinders","PATH",18,"Pathfinders","30450221008e32b58962230f40aa9e75d313421c610ffe406dc446322fed6a0a75ae612466022066232e39becea9d3a9a89464e8b2ed418892272ea33b81fc884543dd4c75aecb","0x478e677C0bD24c848bD591Cc5273383DD5F30e4a",!1,!1,null,null],["ethereum","patriot","PATR",18,"PATRIOT","3044022014c86c500071e7238f1e1dac7cc0233b85f9083634b219d5497d070ffd25bb1902206e109005886698248db8e0294745c99910edd7f7ca19fce19e58364da5450417","0x9FbA684D77D2d6A1408C24b60A1f5534e71f5b75",!1,!1,null,null],["ethereum","patron","PAT",18,"PATRON","3045022100ad3bd9f11ebf48e25d423aeb7cd8c3ba463b7ce119c9ff9562a13e81cfb6cb990220613bd20272c84d70c9a0097f435d2b82375802523583f33dac141c299644afa5","0xF3b3Cad094B89392fcE5faFD40bC03b80F2Bc624",!1,!1,null,null],["ethereum","paul_razvan_berg","PAUL",4,"Paul Razvan Berg","3044022040666ae7c4d8c1c4028001863b45d76952c565932564393578c7bbda777ab5e702206d8a07a3097b9d2e3129093b6baa9826fd2c58babc720e876b1c0c8dbcbd7305","0x8db6Da2120b346FAa7f206841f2FB005BBE0DFD8",!0,!1,null,null],["ethereum","pawthereum","PAWTH",9,"Pawthereum","304402204f10f40e4bf12d5f10f5fbdbb94bbf700781b956b153c0cabb68cb9eb4e1eeb002200a7c5c6bb90ec289e3bc5f3a4b0515149fcab0f9e2ce6ec6dcf33aa0d2b762a4","0xAEcc217a749c2405b5ebC9857a16d58Bdc1c367F",!0,!0,null,null],["ethereum","pawtocol_network_upi_token","UPI",18,"Pawtocol Network UPI Token","3045022100ecc50b5e8a7421598fdd64e2511af7e49a2ca8b71eccc99eb8c3563ca63d5bf50220276a22a9f3ebaf308fb810cb5207b9795d7ea632fd1c120e29854f23dee3e6b5","0x70D2b7C19352bB76e4409858FF5746e500f2B67c",!1,!1,null,null],["ethereum","paxgbear","PAXGBEAR",18,"PAXGBEAR","304402207fb7b5830a027015f8c7a2a8adc181dec651069cc69e8c04fe6fd8d56b29fe1b022021c1c8e6c13a66e4b024aa46a41cba9a75de1de7c76c4d5c4e5eed61229b0a90","0x3C4a46F0C075A7F191A7459bb51EB1f81ac36F8A",!0,!0,null,null],["ethereum","paxgbull","PAXGBULL",18,"PAXGBULL","304402202382fa63ebc5a6e78f760feed5f4e6a30bd4e858ab22abd50b44e686acc9e353022065fb5216757d8e1ed0f1a3ac4b1ec9b8b7b643b962eb231c2ea14c528817dccc","0x81f09eD4b98B1c8e99b1Fa838B72acB842AFE94c",!0,!0,null,null],["ethereum","paxos_gold","PAXG",18,"Paxos Gold","3044022000f0e57675b6367384fc82e8cd2307b345d831d31d7959fd9b8375d5ce33fd6602207c1a799e86d4df303784a882eeaf231fd0a8a0a004ea2b3c49348a5b07fd7cc0","0x45804880De22913dAFE09f4980848ECE6EcbAf78",!1,!1,null,null],["ethereum","paxos_standard__pax_","USDP",18,"Pax Dollar (USDP)","3045022100967d2d55821c854cd858e014ee51d3508b07ad2711c2fd8237313a2317ebefab02206859460d22535fad2a89f26ac3c86df711ae32a32c06822a580a968f3805bf4b","0x8E870D67F660D95d5be530380D0eC0bd388289E1",!1,!1,null,null],["ethereum","payaccept","PAYT",18,"PayAccept","304402202a3cce3a148a929087f6e3cb6f83a7f0c2c6d78bf9f142e27a345def108a26be0220731b72531f0105a190816f3cc4c9e0f51fb7624487c77a241c4705ae89041ee7","0x8EF47555856f6Ce2E0cd7C36AeF4FAb317d2e2E2",!1,!1,null,null],["ethereum","paycentos","PYN",18,"Paycentos","304402201b68f45acfa59388a9af4b235f6121d2542ea7d458c4406278465b6350c916c902202d539a6d497abb8eb242518f0f5b043b008a1fd90ad596472b29d9a7b15ec987","0x0142C3B2fC51819B5aF5dFc4AA52Df9722790851",!1,!1,null,null],["ethereum","payfair","PFR",8,"PayFair","3044022046bac39edd0c9e20c9bf87e603b03ce4921f3fcf7deb8f7818fe65789150187b02204587721219223341cda67d8d5aa1733ef23d6433be4d7e34819341f26d909e5c","0x2FA32a39fc1c399E0Cc7B2935868f5165De7cE97",!1,!1,null,null],["ethereum","payfair_token","PFR",8,"PayFair Token","3045022100bb7991f9aef9a58dcdaadac633930102fbe89c8ecf894a8c5ead4fd162e0bb7402206c1cffa60a56c24fcc07a1c305e2307e749d34f54dbca53dbf19630f3e0effe6","0x6353EaDF8D1D4421002332BB9074222b14d54881",!0,!0,null,null],["ethereum","paymon","PMNT",9,"Paymon","30440220438e813235d2886c8a3ac1f3aaaff410fa6ddef017e69e82c69aa0be340cdc8702201622b1724ad16684c80a4c5d7115dbc90813a4b155779d920b98ac7870860f2f","0x81b4D08645DA11374a03749AB170836E4e539767",!1,!1,null,null],["ethereum","payou_finance","PAYOU",18,"PAYOU.FINANCE","304402200575c23f8bc3c9d40dd789a74fb5e8cf792fecafd8196d604579e4fbf3f0a36402203d148951c7ed6afbe3f751bfdda18e2e6c3b70ef090ba0c6dd1f1c44c62d61a2","0xCb2Fa15F4EA7C55bF6Ef9456A662412B137043e9",!1,!1,null,null],["ethereum","payperex","PAX",18,"PayperEx","30450221008a1357669de0e74456271846c7b184128c3409bd5a8137770ddec3531d8bfcd102204bc28283d71ffdf9c153c080da82407fa4cb07748cd02da53e196417b19dd9c3","0xc1D204d77861dEf49b6E769347a883B15EC397Ff",!0,!1,null,null],["ethereum","paypie","PPP",18,"PayPie","30440220050529c78de05d3ed5638827d3544c978ce623bd8bcd05fa3d8c774b6f966b9a022005c9cce92a1fe2459bbb0c5352da7468978a4f7504d1f353e776afd990bb6396","0xc42209aCcC14029c1012fB5680D95fBd6036E2a0",!0,!1,null,null],["ethereum","paypite_v2","PIT",18,"Paypite v2","30440220134aa6d821d49423d709619527e614ae771048091efdc6b371a0ff0e587c83fc02202e258ff0263fadee9d9864b6f4b148fee25a47190c5ec88d026f8f4db44bd808","0x0fF161071e627A0E6de138105C73970F86ca7922",!0,!1,null,null],["ethereum","paypolitan_token","EPAN",18,"Paypolitan Token","3044022003d45192d47dcad0e0217266eba0f8815b58fcefaa1f4f863bb7d5e36635cf19022017926cb2be21a4ab72f48d4f5ec2a7d68ebf8318e7496b5fb4b614ab35151d20","0x72630B1e3B42874bf335020Ba0249e3E9e47Bafc",!1,!1,null,null],["ethereum","payship_org","PSHP",18,"Payship.org","3045022100c977a11dc79ba81ea3b2672ff0fd92edbf2affddbaa3c2f4f0218531922ed04f022032a4b4d0ba074b9b77e096081b975dccd1da464cbafbbddeb5030a4f788577c0","0x88D59Ba796fDf639dEd3b5E720988D59fDb71Eb8",!1,!1,null,null],["ethereum","pazzi","PAZZI",18,"Pazzi","304502210093f479a4bb5302573f41409d2d22f9468a56d9567aee9e393a93088d69e58d9f02202fd94e2f3a4f527b63ea3cdd2f29be17a8393fe180186766d064a1184f327e92","0xbcD8756Ea481608Ea3DD5a555493305Cf0A79640",!1,!1,null,null],["ethereum","pazzy","PAZZY",18,"Pazzy","3044022068a6bd00f1fdd6740089d1c84adfcd8d246a6f7076f8dce90a91e4233591266902205b4e4dea6237222aae83843ce2b3ebe2b368a8ef77d8b3e9a2bf2dfc3446d51c","0x74c287AD5328dAca276C6a1c1f149415B12C148d",!1,!1,null,null],["ethereum","pbl","PBL",18,"PBL","30450221009b942f7c398d2e031f88d05de358e38c6b555dfbeefbb87d6a826adbb10fefc002203e43e55dfb4b5a5329be9f0aa826eede2be57d8febac0e7dad2e41ae7dece319","0x55648De19836338549130B1af587F16beA46F66B",!1,!1,null,null],["ethereum","pchain","PAI",18,"PCHAIN","3045022100a217b86590ee27b69fcbc48b410524a3d4dd3e1a23e96adacf773304c8f7c39a02207f25322cb3bdccda5d5ed588376a1ff9b6ac5fc877da26fde37f17e95e342cbd","0xB9bb08AB7E9Fa0A1356bd4A39eC0ca267E03b0b3",!0,!1,null,null],["ethereum","pcl","PCL",8,"PCL","304402201b4bf1697254a7db34135570eab11e4ac6ffa5401f7d8db57eea47fc889cfc7d02207478dedfd9b7a07c9b8bd68cc09a309107381c073d88e892690c167802be8a99","0x3618516F45CD3c913F81F9987AF41077932Bc40d",!0,!1,null,null],["ethereum","pclold","PCLOLD",8,"PCLOLD","304402201282f6e5e862c2ed990428aa67fd0c08d6699bb677350aa8ae76887dbbfbcbfd02204f0e1337e8a54f252768f64364ca074c289bbb71fe68fbebdfa6eccd3640840c","0x53148Bb4551707edF51a1e8d7A93698d18931225",!1,!1,null,null],["ethereum","pdata","PDATA",18,"PDATA","3045022100b25007cc49770bcd62742e5b32261b1d8b3f04b51a708ce77a656f0cd3e4f14202205c15610719458f313ebdd4dccb98c13d59d8b562a5d6434db1e12776ffab0b4b","0x0db03B6CDe0B2d427C64a04FeAfd825938368f1F",!1,!1,null,null],["ethereum","peach_finance","PEECH",18,"Peach.Finance","304402201f68d12d2545f278274f1337104d9b0dee87b6166a6bd1a669fe01c21847294302204924a484b6e88801be625e7261d3b27a405e67d84ea6aab5b056618b3de48495","0x31d939dC09A6bB55642fCBF9d56166EbC0BDeC9a",!1,!1,null,null],["ethereum","peaches_finance","PCHS",18,"Peaches.Finance","3044022028cfcc6545df07973c6fe64562a1cf4e9a3282d22ec8f037da6463751c9786300220194fb4b62995857a6f83a83c13376115d4e2d36f9db3f4d3f7faf6c6b7aaffe4","0xa4C6984E817c086Ddc3EBAEedBdcc01469586918",!1,!1,null,null],["ethereum","peacockcoin","PEKC",9,"PEACOCKCOIN","30450221008e84d24458ea07847adf7b36d8d39b51be60ca8659acf3cb89575a3929a1da4b0220281d61a58529cef2b705c8dd08c6bbcf8f58d088e881be7bc21a49623f0dbb4e","0x398dC1c12a268b657aBD0cD88999156228acB91a",!1,!1,null,null],["ethereum","peakdefi","PEAK",8,"PEAKDEFI","3045022100e742f32d46ed17bcf4446d213c30be2bec352b51bc809e865be4345d93a23ad00220010e4e9d0fb6c272b8349f350f4f19e576f67be7877b2f169041ebaece2b6275","0x630d98424eFe0Ea27fB1b3Ab7741907DFFEaAd78",!1,!1,null,null],["ethereum","peculium","PCL",8,"PECULIUM","3045022100d2d74915242f8ff9bda67ee83432649c0fc7c06b041e48c42cbbc926283c5e9302204531718d1db0a00b3face305231458c455153c3fb1d64e3be513df822e2822cc","0x0F02e27745e3b6e9e1310d19469e2b5D7B5eC99A",!1,!1,null,null],["ethereum","peerex_network","PERX",18,"PeerEx Network","304402205c499a43d86bc1871ea1f8994651c692148b332b423fe577ab6897e12544ce9b02205e914cfc4d275aa87abfde746747d587fce25ae9801d1afa520e733e2f782a87","0x3C6ff50c9Ec362efa359317009428d52115fe643",!1,!1,null,null],["ethereum","peet_erc20","PTE",18,"Peet ERC20","3045022100cce79fd330440656a6a4382519979b3e2baa6a3fdf9d1d460ebd2d924986ba1f02205e7e73cb9a86350f692e3a0031e09b8b8c9e2815a30dcecd9fa5a76001e51ab2","0x51Bb9c623226CE781F4A54FC8F4A530a47142b6B",!1,!1,null,null],["ethereum","peg_network_token","PEG",18,"PEG Network Token","304502210083adc686e79030e59f0c25a9c41feece20ee5f78796f645a2cd9eadc4b68fd7002200da673621724f57966f0150a5ca66585196bd0273140806cff147efee867740c","0x8Ae56a6850a7cbeaC3c3Ab2cB311e7620167eAC8",!1,!1,null,null],["ethereum","pegasus","PGS",8,"Pegasus","3044022027cd5060555c7264b423b5b40644f9fdb35a01c9019bb8eb399b2a92453b420102206846a19fe0a31e8d676897c8b3673fba213fd408ff73bb0ab3b7802ac27037e1","0x931ad0628aa11791C26FF4d41ce23E40C31c5E4e",!1,!1,null,null],["ethereum","pegs","PEGS",18,"PEGS","304502210092e7f0f61a54570c007c6e7904e6e8549e8a03b3a0b947fba1a01bd1a329672f0220341352a37dbbf1e3a704363c1ea2719ac13772418ca478122979167fc77f408d","0x88bd6eFe33bc82860278c044eFA33364c6285032",!1,!1,null,null],["ethereum","pendle","PENDLE",18,"Pendle","3045022100bb1904d2a430bc295589f6bc140e72c39e5c92694d56e202cb735d4d6e5078310220245e1daea537a6a170889de09c890d4eecbdda59b3349aa53315520b491ce000","0x808507121B80c02388fAd14726482e061B8da827",!0,!1,null,null],["ethereum","penny_for_bit","PFB",18,"Penny For Bit","3045022100da2758067cac36a5c5a8ab5cb1e8c9ab7e53db16d9f28b996380ea58989ff6fd022072c612c0a8e50a0a7c78990b3f9e3b4f7cf22fd4ed965a9e8ce8b99e3e0501bb","0x46760d2BF2F4dd5405646D9b2cE7B723EFE74a48",!1,!1,null,null],["ethereum","penta_network_token","PNT",18,"Penta Network Token","30440220371878a1696e2c61db7083f194e3e3130d27111c2de53c23edff1ff880f190bd022067c1f49c2cd7f3facae6472e1df7bc4e599af3aa4a15c34c0bc005bb41654bcb","0x53066cdDBc0099eb6c96785d9b3DF2AAeEDE5DA3",!0,!1,null,null],["ethereum","peoples_punk","DDDD",18,"Peoples Punk","304402203f6342b6de4e4eaf0d9a4bd4de1d32725bd0c4b238897c969fcf5c2b3a7e549c022046aef38e6977cade61cf745a88f416091f3c4986a906a9e8ab7f81ecf547a46d","0x8cA9a0fbd8DB501F013F2e9e33a1B9dC129A48E0",!1,!1,null,null],["ethereum","pep_token","PEP",18,"PEP Token","304402203aa2b223e86f80ced9a4e48b83bcd61f771cc1ba0c1af0dd6a90400fbcb722fd022047aca81109549148efb16ec09d45da1a69786027bc670b51f8e4068e6769eaa4","0xBb0eF9e617FADdf54B8D16e29046F72B4D3ec77F",!1,!1,null,null],["ethereum","pepe.bet_token","PEPEBET",18,"PEPE.bet Token","3045022100f314604acc72bc5a1734f308eb3141e8c15198e74af5eb2d89d22b174588190c02206b07e8c36ab8778b9177554b013cc9ce42326408cbc55e32379782c4a7a91253","0x33Cf519030235F75A13F29aFcFF5D6ff4Fd10350",!1,!1,null,null],["ethereum","pepedex","PPDEX",18,"Pepedex","304502210080779eaab68df8da295d044b0b53fbee27aec3e44e73555e054ee30598609d1602203d2cd8b06a1a18e32ca0ae4d3d47d905ab6ddf7ecbc79c1c1e29d1d6a2402ddd","0xf1F508c7C9f0d1b15a76fbA564eEf2d956220cf7",!1,!1,null,null],["ethereum","pepemon","PPBLZ",18,"Pepemon","3044022023a148297a69402d259a0bdb0252a399282d30b1b0acecef1218b0b622e80d4802204c3c4535763a10cc336aa269d8313c2516f481a19a24c6bd023bfb5ae3cf149d","0x4D2eE5DAe46C86DA2FF521F7657dad98834f97b8",!1,!1,null,null],["ethereum","percent","PCT",18,"Percent","304402206ba688b50769018c69c4723bce57f01c025202d703b385da5ab1e94f11b0d95402206e0f60e81b0fa8e03ef4fd70172285686f0eff877729efb296ab0c9f28bc5985","0xbc16da9df0A22f01A16BC0620a27e7D6d6488550",!0,!1,null,null],["ethereum","peri_finance_token","PERI",18,"Peri Finance Token","3045022100f2f204c3bf760cbb367f7787c489262b48d9b4a2383b055fa3a675a45919c12b02207cf9ed8bc42d806bbb2c5532050845245c1de149a31577b3e63ffc81540a3ed4","0x5d30aD9C6374Bf925D0A75454fa327AACf778492",!1,!1,null,null],["ethereum","perlin","PERL",18,"Perlin","3045022100932da482a83af84137b22a8cf6d32f5b007f0793ee87a55cf64362ba7a4089d20220585ecfee674b6139525856a9827b42e9de27a081ba97dc4c8355f1d9e44e6264","0xeca82185adCE47f39c684352B0439f030f860318",!1,!1,null,null],["ethereum","perpetual","PERP",18,"Perpetual","3045022100cdb718fc42ed2909928624acf3f55569502dff26cab4df20a80455f5502c4fb902207c0e0ab8a1fff1c2690e324057405f7d6b24fe4667132ec43bdc0c28f1f0f11d","0xbC396689893D065F41bc2C6EcbeE5e0085233447",!1,!1,null,null],["ethereum","persians","PRS",18,"Persians","3045022100f7c5686f61c4c5dd217600c8037135d6360e553b337e9e46816d92c2e09c5c610220593f1abee1c81dddc6ade2d0d368cd8c60f22f8a4216f34d098690c96901d180","0x163733bcc28dbf26B41a8CfA83e369b5B3af741b",!0,!1,null,null],["ethereum","perth_mint_gold_token","PMGT",5,"Perth Mint Gold Token","30450221009b6f71edd9f67315fd9d655427e6f2a2434c0341c3d016878880ac0134e4a4f702202ac9abe38e78862d7b0356145abd3aa1bb827ff52b512a0236e59465dfca6ff1","0xAFFCDd96531bCd66faED95FC61e443D08F79eFEf",!0,!0,null,null],["ethereum","petcoin","PETC",18,"Petcoin","3045022100d4c698a8178c217019da2e3b4f1ea54954d2da79aa057a36c71621b67e779d7a02207784890e9a6f3d2ae156f3d4b5d16c81b786ce04d14f9934dd1b9346bf86e193","0xd1D3b662D91faaa4A5d809D804fa70550B2B3E9C",!1,!1,null,null],["ethereum","pethereum","PET",18,"PETHEREUM","3045022100f7b58770314574c466dc53268130dada605248e5ffda842593ae22acc297e2a5022068328fc266af47733f4fdf488eca413d7dcaf1790b28eaef473856158302dfaf","0x5884969Ec0480556E11d119980136a4C17eDDEd1",!1,!1,null,null],["ethereum","petro","PETRO",18,"PETRO","3045022100f23abbb24001d7accc8603763f772523b437f8cb7d078598ed064f0fb742a21402207e7169233acb378d09fa4b2632d6249cb597e04e8044affcc38fe64d958a19d3","0xeC18f898B4076A3E18f1089D33376CC380BDe61D",!1,!1,null,null],["ethereum","petroleum","OIL",18,"PETROLEUM","3045022100844f5fedb5a789d740d12bb3c47ee98b97b7229dc565422c6d9ae284ccf0c96002206dbe57675a9f3ad311eed139f052d7f0b3a3adef17590bd3eda24871801fb67c","0xaE6eb6F6c0A1694968b9f78a4316319C27B0964b",!0,!1,null,null],["ethereum","pex_token","PEXT",4,"PEX-Token","3045022100d02bd8d25a7b8e068d37a174d35560f223fa99336ed346c687cb95edae9a3c41022029f56a2f3cd58c1c57e32afa2cd9356349454d456e2d58a45a7e456ef13303b9","0x55c2A0C171D920843560594dE3d6EEcC09eFc098",!1,!1,null,null],["ethereum","pgpay","PGPAY",18,"PGPAY","304402206d69396622d1aeb90b879390527a85ed236f75b3396a8342730b8f107e90e59802203f2d38db9881fd061819e26247cdefe501054428ee70260c84276a3875616749","0xC949fC82A15964FB5B97e5cf8f9ffed139086821",!1,!1,null,null],["ethereum","phala","PHA",18,"Phala","3045022100b79454b643be9da8a33ed7f495b5442cd6e31c0e9a031f7a47ace42437bd9dc302204621b1caaf0ab6bdfdd7b5d610cdfd6d84abe72b6edeb7ed16d722e4595d6294","0x6c5bA91642F10282b576d91922Ae6448C9d52f4E",!1,!1,null,null],["ethereum","phantasma_energy","KCAL",10,"Phantasma Energy","304502210082daf02e87c7770191dfda8408c6e4cfd9a9bc060256f5442305b6a815e9fde102206fc19a03090ac1446f7e0ab87acc362003e02d652f88cff8e65400f0f62b6dcc","0x14EB60F5f270B059B0c788De0Ddc51Da86f8a06d",!1,!1,null,null],["ethereum","phantasma_stake","SOUL",8,"Phantasma Stake","304402200afe58431765ff72b69b38261cb77c303076ab269702d604122d928fdae3489c02206f6af380f43da2cbeff66b21b7a8d8c1f9126aba30c9f56eae80139c3c6ad92b","0x75858677e27C930FB622759FeafFeE2b754Af07F",!1,!1,null,null],["ethereum","phantasma_stake_","SOUL_",8,"Phantasma Stake (old)","30440220501099546b0dc9d0b0aa9be74298b3a8a6c805b7875df273f8f40253714ff200022022f36e36d237db576f1874d5ec65f08cb536281b2281cf0f038fa5fb4662bfa9","0x79C75E2e8720B39e258F41c37cC4f309E0b0fF80",!0,!1,null,null],["ethereum","phantom","PHT",18,"phantom","3044022055d734ffbcd6b5a07d4330201dbb12070e6de6af3bf718909ad70e35c8aeebe402202df5d57ca7960934cd80763a8e0347b057ad6482bf12bd62c01f8378c2a33986","0x457a57E931cBa4dfF5Ce8500cC0DFF18356Df041",!1,!1,null,null],["ethereum","pharmapay","PRP",18,"Pharmapay","3044022044b13ed2cc26b22b31a72f7d889ed06c545b8176faee768460b25e7c9723db8802205141eeab76ae349679c41419908de429ee5407a6b3e945facf1a083a82698a98","0xa3D29c52Bf09EF16F23317029a01c40363131827",!1,!1,null,null],["ethereum","phi_token","PHI",18,"PHI Token","304502210090a9f7e9a5b6af6b9fd64b19b094e3c38d0029ac9260a93d5f7a21ae8cf199e902200c9c8b5011bb95f586229766a5ffdde09f27daa175a219d53bcc4bfa1f186b8a","0x13C2fab6354d3790D8ece4f0f1a3280b4A25aD96",!1,!1,null,null],["ethereum","phillionex","PHN",18,"Phillionex","304402200faaaddc63cb570b8f3ec29c684d402e5bda31d381dfbca530e838b56bbb1521022062b7526aed393937114644e6cdcd0bdfebd667b21f8ab3d768bc1f4f866b290f","0xF73Fc4B74a4CC6F9ea203A9d5BBFf4fFCe3A4c48",!1,!1,null,null],["ethereum","phillips_pay_coin","PPC",1,"PHILLIPS PAY COIN","3045022100c49172b042cbaac873fa6e4992a1dc34dc7ea2b5535e6dcb69b743c4e2cd6a990220194a391c9f630146f7295ca780dd7cf519c069710e30ef2515bcd5f2abb7369e","0x84F710Bae3316A74Fb0fCb01904d2578A4cc6A26",!1,!1,null,null],["ethereum","phoenix_token","PHX",18,"Phoenix Token","3045022100c74fd7cdc94b290a0c10cbc0d5a6360ade0d4c226f4d34b585ac651bed7adb9d022033460a1582fda1f59ab49273aeea0c5e859e2d6b4d45b27f031199ccfc7a3094","0xAeC65404DdC3af3C897AD89571d5772C1A695F22",!1,!1,null,null],["ethereum","phoenixdao","PHNX",18,"PhoenixDAO","3045022100aa369ad3dbab3b2d047f79f37c27bb917d64a15ebd57c89f19b0ebb19bd926e702207005e09c916274698cd625934880a1782a7bba9ca4094e9f674d6fba3fd8bb35","0x38A2fDc11f526Ddd5a607C1F251C065f40fBF2f7",!1,!1,null,null],["ethereum","phuntoken","PHTK",18,"PhunToken","3045022100f7a59b605366e870c77e39d24e201a6bfac233469c84f0573eaa3095a4f28eca02203402e0e3e401faf8761e064fe94a94e79bdaf0cab3cc50e861fc3cbf8ff31f97","0x1FEE5588cb1De19c70B6aD5399152D8C643FAe7b",!1,!1,null,null],["ethereum","phuture","PHTR",18,"Phuture","304402200553a85a6c4ed34fe468120cd88f0e3638b5e438b09367f45f559621f2b100020220665b2c2ebd11f1f49c528a52dac1c61334132f77fe154e5a55fb6b07742ed74b","0xE1Fc4455f62a6E89476f1072530C20CF1A0622dA",!1,!1,null,null],["ethereum","phuture_defi_index","PDI",18,"Phuture DeFi Index","304402205ec1e06dd80a572feeb88de1195d94153720b13bc979d13b61e0e0a354e562d70220239997742abd22fb1a3b32d8016a632512117b0eac9d128459e784b90ae98932","0x632806BF5c8f062932Dd121244c9fbe7becb8B48",!1,!1,null,null],["ethereum","pibble_token","PIB",18,"Pibble Token","304402206e31be190b86fc8a79b243423429374fd97b08a66a73822d6c7c475787a51d91022047db97dde4e09c4f2e24cc16958f4578336f7bc8fe3be297843113f4a6c33660","0x1864cE27E9F7517047933CaAE530674e8C70b8A7",!0,!1,null,null],["ethereum","pica","PICA",4,"PICA","3045022100b07accf740595331c89b21810e1b857466942db056dd3644967c97cab7e9848202204333afe77ede1d53d357eca60d513b1c2743d4614554cdc0133e0c4672d35bf9","0x1eCe1739DAE08253aE582C404511B37355B42C84",!0,!1,null,null],["ethereum","piccolo_inu","PINU",9,"Piccolo Inu","304402206a75eb0a6806392a70cd31f894016bdcdc5a5cd1329e6d9b1cdd3bfdccd4d03e02201ee7ea5a98e75bec186681a875eadd8d82dd0d2880971018b797d0cd67ff11be","0x3a1311B8C404629E38f61D566cefEFed083B9670",!1,!1,null,null],["ethereum","pick","PICK",18,"PICK","3045022100a28996e8ab6c743de5fb106c994f4a4b1475cb6c715e5fe2dc9a9e4bffcc0c2402202d95fdd24d99b667ac4e1d7fa276e0c153754552ed30cc7f03622336712ae413","0x287609A15A683640A5bbC4d93D4D5f4Ed6bAD3A0",!1,!1,null,null],["ethereum","pickletoken","PICKLE",18,"PickleToken","30440220629ba0bcc377e1ce6746a029a347afe02d126505f7b2317fdb70ad26494e63f102201f1e5dbe406c66fa4924859f42057f307484cfd0d950c651b6ef0131425af8b0","0x429881672B9AE42b8EbA0E26cD9C73711b891Ca5",!1,!1,null,null],["ethereum","piedao_balanced_crypto_pie","BCP",18,"PieDAO Balanced Crypto Pie","304402205e074587e8462415d3427e071b82208a860256f0a96eb017793d7cf05b8ef002022045e95379161cca2a7c8704d1ae1ea4b31d440544c06b269fad95a5b391306c8c","0xE4f726Adc8e89C6a6017F01eadA77865dB22dA14",!1,!1,null,null],["ethereum","piedao_btc++","BTC++",18,"PieDAO BTC++","304402207b57141af3415d17a7aeb5c074450d506c969fbad6abda7f10b7d41010f6e24f0220625f3eea9d7ed969c0ad08317a59b0e552a11540127af00a1b08fdb8da9e4435","0x0327112423F3A68efdF1fcF402F6c5CB9f7C33fd",!0,!1,null,null],["ethereum","piedao_defi++","DEFI++",18,"PieDAO DEFI++","304402206df59a8d2bbd3405bca076a7af50d4303e6886a69419a8a7adba94e7e767ffc902203b46e09a995807f73228d92d0dd36d6ffda112eca6d5be1c3025bebc4d6b96f2","0x8D1ce361eb68e9E05573443C407D4A3Bed23B033",!1,!1,null,null],["ethereum","piedao_defi_large_cap","DEFI+L",18,"PieDAO DEFI Large Cap","304402203876f7635cc8eec1ce7793822f757460962fc3526e773c0fa55d8150be325cc902205c8d611c0e6d86faf37c1b870f0817a9dce07d0779d56d0c49c50621cb2119b5","0x78F225869c08d478c34e5f645d07A87d3fe8eb78",!1,!1,null,null],["ethereum","piedao_defi_small_cap","DEFI+S",18,"PieDAO DEFI Small Cap","30440220582910d9bf7dba632694e01a0cf28332caf31265ad1a71e5c08db089ac0bbaf9022064b61e024067797ae6d2c38b0108771643067287f6d7bcc4effe6d474e7384da","0xaD6A626aE2B43DCb1B39430Ce496d2FA0365BA9C",!1,!1,null,null],["ethereum","piedao_dough_v2","DOUGH",18,"PieDAO DOUGH v2","3045022100d64018b996a41c0f14930eb969230c409497232858c7d1397cdf5f973c0c42720220726179f4aeacba52eb8931e9b96e4c76ee265f6925c0a0e05af7ae970ce9c216","0xad32A8e6220741182940c5aBF610bDE99E737b2D",!1,!1,null,null],["ethereum","piedao_usd++_pool","USD++",18,"PieDAO USD++ Pool","3045022100acce6bac6313a60a30a1ad92e6a513fcc4fe9fd88290d3bc14aa62f9934a4167022015f8869b9108c690fe86ca2eb2213595706db83a2157228631bafaddc39c405f","0x9A48BD0EC040ea4f1D3147C025cd4076A2e71e3e",!0,!1,null,null],["ethereum","piedao_yearn_ecosystem_pie","YPIE",18,"PieDAO Yearn Ecosystem Pie","3045022100ce86266666d452c245441d92e8cee4ac543e4774fda6a93714a45064aa0f72d7022040c741494d6b4145dd78226ef1bddec2131b58ad695207d1f61eb1d9bb9e937a","0x17525E4f4Af59fbc29551bC4eCe6AB60Ed49CE31",!1,!1,null,null],["ethereum","pigx","PIGX",18,"PIGX","304402201318f852abf04c46d4e75a003f56da78ed648454b38fc0064a855c16b98f7fc902200dabe27eaa56eecb847053dfb26ed6a38248cff8039511828d37728c1b87c530","0x47E820dF943170b0e31F9E18ECD5bDd67b77FF1f",!1,!1,null,null],["ethereum","pika","PIKA",18,"PIKA","3045022100eb44a384b00dcd7f5a24fb8b9ff27a6730dc7df613613b3da19c162bd6d59f6502206df2fe839d11477f77a7d550917813a710050d498f7e47defd0a88dc62249402","0x60F5672A271C7E39E787427A18353ba59A4A3578",!1,!1,null,null],["ethereum","pikachu","PIKACHU",18,"Pikachu","30450221009bd580512a0d5ce558adc90a0a1727fa6da2f7c76c282065b0b6a8d5674eb17d02206104b145ae5dd303466c6a100a09b405a99e38b2b5e16dac6b72e6c4474617f0","0xE09fB60E8D6e7E1CEbBE821bD5c3FC67a40F86bF",!0,!1,null,null],["ethereum","pikto_group","PKP",18,"Pikto group","304402202e8219fdb0695bd8f4e169dcad9d315a41401f4268a9abbe0c470a404903178c022062b1317343eb350722f414c776ecd9eb079d32465a09abc314c4ebed68723d7e","0x6A532b08c654A1A86069b74C560d8Fa0ff842218",!1,!1,null,null],["ethereum","pillar_project","PLR",18,"Pillar Project","3045022100eb9e7880041490b9ea9b42c73ec5a1fea70c1d7aed320f67c85d6cbf1b75e022022033b420a6a34984094069c7b07f9000a9e6f6a4df649e7b6d8f75291cec7101dd","0xe3818504c1B32bF1557b16C238B2E01Fd3149C17",!1,!1,null,null],["ethereum","pinakion","PNK",18,"Pinakion","30440220342a57766cb476d59523d8978bc650cf968b40a5cdaf49abe199548ff3b2eb6a02200d9bb69ac9cc9c8ffe4e8131a18ce5343f149b59ca72458a677f7d0500385c63","0x93ED3FBe21207Ec2E8f2d3c3de6e058Cb73Bc04d",!1,!1,null,null],["ethereum","pinknode_token","PNODE",18,"Pinknode Token","30440220248f31243c54d358d3c8726f2829bc8c36e7af0718d0e802b78ddb98e3e8e2e902203a1b163b6eff59356b91bb32946666e96917a5be952adfce74985a2b2eb6d460","0xAF691508BA57d416f895e32a1616dA1024e882D2",!1,!1,null,null],["ethereum","pinkslip_finance","PSLIP",18,"Pinkslip Finance","304402202b637c9536c7d453c3af24f25b1523d0fed8464de8057aa736ac9d29624f26d30220244af3918d3958be083c985fe874dab6a1766e0103348561747829ea050cfefd","0x36CE7a52CDa404b8fa87a98d0d17EC7dd0B144ED",!1,!1,null,null],["ethereum","pipl_coin","PIPL",8,"PIPL Coin","3045022100d7906827109b60a1511791d48b27f1c16258cb921e346b8598dbcaf82671105f022014af866ab5e69c97b7694019c7a62752aba6190dcb807622b232d54e1d01680e","0xE64509F0bf07ce2d29A7eF19A8A9bc065477C1B4",!1,!1,null,null],["ethereum","pist_trust","PIST",9,"PIST TRUST","3045022100cea0e1d7937b4e6aed32b9f1b203e3fa831f28ea2109e6148124b123b5216d320220671bc74de1937075da4f27e491176a681390eabac5333f46d7f2ca9c169d5283","0x315dc1b524de57AE8e809A2e97699dbc895B8a21",!1,!1,null,null],["ethereum","pitch","PCH",18,"PITCH","3044022006e3c1b028794907fe2f59f52722ec5ef6f98eaa989b1d72a8917f5cad6a955102202ab8baa3c480f87b181cea435abe6fa599c07b7ad91f81469ea727cd63843096","0xfcAC7A7515e9A9d7619fA77A1fa738111f66727e",!0,!1,null,null],["ethereum","pitquidity","PITQD",9,"Pitquidity","30440220543758f221920dffdbdf83af804e7130e785d62e0c87a23038a370d343baa5e50220509aec739f3fc4e1bf7bc0859fb5d28be59e932a1ac76ceda90e29151b93b8a4","0xE825020e2f60331fe86a61b9Ad15e123A45b25A6",!1,!1,null,null],["ethereum","pivot_token","PVT",18,"Pivot Token","304502210089886d98e04e73cacbf9022fb1a5f22da9a8cc5abad05c93d63498803d64b60a0220434b24d33ed334a11ca819c08d0511019f53813886b4424bc57d42aad52fce37","0x7869c4A1a3f6F8684FBCC422a21aD7Abe3167834",!1,!1,null,null],["ethereum","pix","PIX",0,"PIX","3044022079f8323f3c7fa468f9a78a6da4231801f9caeb66524ddaab1af91b4c471fe0010220130b10e75d78eabc731883c4fd90c58d03b3d09299f683250e913ca17c122ac1","0x8eFFd494eB698cc399AF6231fCcd39E08fd20B15",!1,!1,null,null],["ethereum","pixel","PIXEL",4,"Pixel","3045022100a255783619b3617339daa7db4d1a3f2070826cc12487227014008095d0bb2d4a022051c5c9720242a2e992d9484863254a2482892964d78a4ba744aa06a9da1e2062","0x1e906717De2E4A4600F13b6909736b0346bDde3E",!0,!1,null,null],["ethereum","pixel_inu","PIXU",9,"Pixel Inu","30450221008fc36606dacc978a6772ad5c726a1a5eb287fac2e2f1919af754347aa1c12e120220400e8ce7513ab584f0d5043beee9eb522d6f0a8d3028204b7cc129ae14b97188","0xAd4c6Ad1F02Def1710a2d06C875A31D4868bD70A",!1,!1,null,null],["ethereum","pixie_dust","PIXIE",18,"Pixie Dust","3044022068d693421467418a66421a5ec9463812f67805bb585d5194b3e54bb0036ffac70220565a6d0938b4c29a27289b5ecd63f7cdd9244fef2512eeda9b29d25c40322646","0x9318105460626e7fA58308FA4bcE40e4616F3565",!1,!1,null,null],["ethereum","pixiu_finance","PIXIU",0,"PIXIU FINANCE","3045022100c26489e7db3030a20db6135d7f88f5b6c9642855fb3b306e8bef3e750d37942902202ba176279f5b53be7d84c36e10c84db3568ef05bcc6c39efeb56870c4cd40cd3","0x37A15C92e67686aA268df03d4C881A76340907E8",!1,!1,null,null],["ethereum","pkg_token","PKG",18,"PKG Token","3045022100e9333d14986b216c09dca791994c209de1d85009ac944b3c04cbabc73e5b7a510220034078d6802181e443ce24d541824e54facdc9358782b5f73f5051d59b5e5614","0x02F2D4a04E6E01aCE88bD2Cd632875543b2eF577",!1,!1,null,null],["ethereum","pl^g_token","PLUG",18,"Pl^g Token","30440220161820180221720e0601aabef02260b379ede74782fe9d65d3aaa27a7657320702200ec1f3a7c6e9fb578591b6c4855edb16a9f5239900d7560fffab21920a10c402","0x47DA5456bC2e1ce391b645Ce80F2E97192e4976a",!1,!1,null,null],["ethereum","pla_token","PLA",18,"PLA Token","304402204434c9f75e835e3af2ef3d3cd69e04c22b5e1181df5b30192d90dc9ddcdbc8a102200526e5a5e02c0c6f88a962e7c1e17f8edc9acda6c64f5039747e6c43a400526d","0x5f5b176553e51171826D1A62e540bC30422C7717",!1,!1,null,null],["ethereum","plaas_farmers_token","PLAAS",18,"PLAAS FARMERS TOKEN","3045022100abbdeb0819051ba57d332750a5ff7b6f57431f338b79feb6946a3b6f3309847502202f014ebb209071ddc5226cb1cb1b33e83481200bea098014dd423bc3e5b5bd89","0x60571E95E12c78CbA5223042692908f0649435a5",!1,!1,null,null],["ethereum","planet","PLA",18,"PLANET","3044022015ef57aadba59c8096416d6f17d07f6da00441ddd10420e9777d590a3dba801d02206d466d72cac4a221d915fb1489f2e95e0d4b944773c0f085223d54207bc2113c","0x307d45Afbb7E84F82ef3D251A6bb0F00Edf632E4",!0,!1,null,null],["ethereum","plasma","PPAY",18,"Plasma","3045022100fa1ba03c7da133d9c384386dc8d331f2b7905fddf3d254c1fa3e7f726043fc7c02200dfcc9d5f37e0872faa3d9e855b6b69d70cfa26973aefdf04867536c6940e78d","0x054D64b73d3D8A21Af3D764eFd76bCaA774f3Bb2",!1,!1,null,null],["ethereum","plasma_1","PLASMA",6,"PLASMA","3045022100842c7c2b25b6e8bd5d5d71b1cb53f38cab6de19cc7399ef5112895ac91ce41ba022072b8fbb74acb48db89e6ce70f6939b7beca20962f45d2b9730f6ce7bfea5546c","0x59416A25628A76b4730eC51486114c32E0B582A1",!1,!1,null,null],["ethereum","platoncoin","PLTC",18,"PlatonCoin","30450221008d0c17657a551e42c6cd772b636d2c91ea4b236d865cb2c8ffb5e9880a50b8230220337f6539c4be3a0c9bd8c737d91c9035fc26e99d3d7ebee9667ebc48d399e927","0x429D83Bb0DCB8cdd5311e34680ADC8B12070a07f",!1,!1,null,null],["ethereum","playcent","PCNT",18,"Playcent","3044022017ec41f78cb7dead0557029765c5b8b229834231715d0486da66876caf6ffe4002203e7f68de20b2bd15b63f09622a82f98d0c4840223bd2bcd56b28479149208072","0x657B83A0336561C8f64389a6f5aDE675C04b0C3b",!1,!1,null,null],["ethereum","playchip","PLA",18,"PlayChip","3045022100a6b02c18a725a7ae5e2b10fad31e6ea542730fd97164950d6bb8fb63b395428802203ef3b1d411ee8c0b0d2db01c4b14214b90ed085b6b1d24c63681257080d026e5","0x0198f46f520F33cd4329bd4bE380a25a90536CD5",!0,!1,null,null],["ethereum","playdapp_token","PLA",18,"PlayDapp Token","304402206783bd78607909d94249503f0ac3aa77576478cc45c6102af37661e5bd0571b7022026ab97abe1ac320de802263714dadfc59966930f8fa5e13408eb034745913d86","0x3a4f40631a4f906c2BaD353Ed06De7A5D3fCb430",!0,!0,null,null],["ethereum","playfuel","PLF",18,"PlayFuel","304502210097f10aacfbb47cfeda67fcee42184b8e50e8cc75a24a374ec179f654471a9a3d022030d2fac8c2de7ee5332965c0f647526c13e707102ea0a5a7cc70b67a701d93f9","0xaDA62f7CCd6af6cAcff04ACCBC4f56f3D4FFd4Ef",!1,!1,null,null],["ethereum","playgame","PXG",18,"PlayGame","304402205c2894c14c391556cf9fdb3acc2d80bcbcebc8277a45f013ce857a3e176c757e022078600eb257d61bcb82442ef3e3865cfe3ee449866fac84404527b3e4eea447af","0x47e67BA66b0699500f18A53F94E2b9dB3D47437e",!1,!1,null,null],["ethereum","playkey","PKT",18,"PlayKey","3044022030a093d02620ea9df63e5f205e75eb136d0fa6ea0377eac0e397621c4f69ddad0220197676d2a7be84a0c984aa6530b57a84c44d9c43f8f5cb8840963eef687bd20b","0x2604FA406Be957E542BEb89E6754fCdE6815e83f",!1,!1,null,null],["ethereum","pledgecamp","PLG",18,"Pledgecamp","3045022100d3ebde136d3462cfd45827398ddc7bfa66028f021484cd28c9bc0ac18470070e02202270d0c581d90f2a6908ee77b01adef5122b8bb541eef3cf78894129e65980e1","0xDB3A07425122F2C9cAa97a8f7318FCC8318E4D94",!0,!1,null,null],["ethereum","plethori","PLE",18,"Plethori","3045022100d76f2aa96b800f7a86d5b2453e2e522982241099923830017880fda4ed87c40c0220110a8ee19298dd0b151d7e1fbbb1b7ec1882f95ec7f00410f04c2765d2c7280c","0x3873965e73d9A21F88e645ce40B7db187FDE4931",!1,!1,null,null],["ethereum","plex","PLEX",6,"PLEX","3044022063695816dd020f899a6266bd1c1064427eea8997c59243d3ed661f25d31c98ce02204cd5a213093ab35030a8e3d4c030aa36179b404caed01ec9296418ab876183f4","0x0F67A226c385500c68fFa8bb7Fbe0DB15fE65E24",!0,!0,null,null],["ethereum","plgtoken","PLG",18,"PLGToken","304402204e42da0435aa38a78bfcd61f5443ec0e7464b1e8ba12db1f8ac5f2215c884ad402207203addbbaffa64693df8923dcd03d88b8a03bff46ba572d24ad0c9c0e1d9520","0x85ca6710D0F1D511d130f6935eDDA88ACBD921bD",!0,!1,null,null],["ethereum","plot","PLOT",18,"PLOT","3044022017d44861402f79438a3c33999051e4141cc07b6496bef4147edd84996509ac8d02200302a74dbd4f3ef4f04d4b9eeea232a2be2135a4a44a56e90528fc73c3066c40","0x72F020f8f3E8fd9382705723Cd26380f8D0c66Bb",!1,!1,null,null],["ethereum","plug","PLG",18,"PLUG","3045022100ab7546d159e3cc7201d3b71da27f7a42f849fdd083bb49b7ba94497b50095dce02202881c960cd7a42cf5d8e09d318c7b6414e3b3f93114dfd67a6d9ff4a6e762b6e","0xBa069Ee53b8B531F3AB117c92ca09A204C9E6285",!0,!1,null,null],["ethereum","pluscoin","NPLC",18,"PlusCoin","3045022100e7ac863aee174f94c57c8b4ccab6b4907f07206149cd4484da1e60924c592e43022066fe4fb5ba418a15fe0acffcf65d487af52d554f307e7c8ec868eaac7d7b38c3","0x97fB6Fc2AD532033Af97043B563131C5204F8A35",!1,!1,null,null],["ethereum","pluto","PLUT",18,"PLUTO","3045022100904f114978806ac0c0d170351f1eff44763d58cfe1102cc189ef550c74b9580a02204595c7800a60c85891ec91db6efcf7295516fa335171b85beb655ce6ab0b2654","0xF38011F9153aCFfACa3fBFC42Ddfa766C980d967",!1,!1,null,null],["ethereum","plutus","PLU",18,"Pluton","30440220770b1f5502b9470cae13e8a66064770d0fb8ca10ba9f613dec962d6e0ca53671022013150925879196fede9b20bedc1464374cfa760734288ced032a822bd67cb6c3","0xD8912C10681D8B21Fd3742244f44658dBA12264E",!1,!1,null,null],["ethereum","plutusdefi","PLT",18,"PlutusDeFi","3045022100efda2ac109329cec236be8920dc643c3c510b0ac344f6bf094a18ad80343021902203738772435af23f1c6f465febc3582d826887e056c3173b898b458facf0b822e","0x9fBFed658919A896B5Dc7b00456Ce22D780f9B65",!0,!1,null,null],["ethereum","pnetwork_token","PNT",18,"pNetwork Token","30440220304dee4aa2c8f6467914af4177752bf099cd77e32be15a3735c26c71c7e07fcb02202a0a652b0800ee051368e527ea8e0d441c9b64ac599c5ade9a68bab0e583ed9d","0x89Ab32156e46F46D02ade3FEcbe5Fc4243B9AAeD",!1,!0,null,null],["ethereum","pnltoken","PNL",18,"PNLToken","30440220470e0faa67abc7d3bad7c24279c2448c6e4a6459f535068d9bc24d37da7a482d022030371d9becd83e8593ca0fe1c7f94931631dff99b2a6c3981f8029dc061de778","0x9FC8f0ca1668E87294941b7f627e9C15eA06B459",!1,!1,null,null],["ethereum","po_et_tokens","POE",8,"Po.et Tokens","3045022100d7038d4c770a302d0ba00664c17345fc065f972c8e004fbf437fef6bb604159102203d4e5f43cc44a08b2b9c149d72896ec5e3eee80f40bf8ace4792513fe69fc869","0x0e0989b1f9B8A38983c2BA8053269Ca62Ec9B195",!1,!1,null,null],["ethereum","poa_erc20_on_foundation","POA20",18,"POA ERC20 on Foundation","3045022100f9a2971dbb418c0d2428ba4e387e1775b3a74a0508c4ef1319b463c5febe2cbf0220083482f65b55758595592cfaccab7e5ec73af4bb20d773c7269816503ee333b2","0x6758B7d441a9739b98552B373703d8d3d14f9e62",!1,!1,null,null],["ethereum","pocc_token","POCC",18,"POCC Token","3044022037e4fd763e9ee4359423f7024e26ae215e56e89f66529398075199279352359902206f23ac553b994085597ca8dd59508263bc9db372779c270b2ed0f9b7aa690214","0x926Be13B4d93F29eA254E4e518f33099e45d7f06",!1,!1,null,null],["ethereum","podo","POD",18,"PODO","3045022100d32a1e159f036e4215b914ea7643a3b1966f4283102f0a566a2fe5dccceaa4600220627dac20a724663e668aa38af477fe6f87ad66d0969ebc05bae09f28975f1b9c","0xC697648021870Cc250Fbcd6EA8E77524f57b45C0",!1,!1,null,null],["ethereum","pofid_dao_token","PFID",18,"Pofid Dao Token","3045022100a999f033df259b875817b4de2db4d51eda04272bed4eb999dbe1bdf3ee8e20d2022048e328c5720aa8df90150c54f58b253c27e8f33bb328392f56414ad47b2b117f","0x87C4Bd3038176301e81E6682CE51A6fDAEfabD0C",!1,!1,null,null],["ethereum","pointpay_crypto_banking_token_v2","PXP",18,"PointPay Crypto Banking Token V2","304402204a60c3c844568b07deb769dce5bb2eb82976447b198d2f6fbe27bfe3fab28833022025e22655616daaa716ccf7e3fc9495c05b5cb321dbf1cb8ea2d09696f1e0e574","0x95aA5d2DbD3c16ee3fdea82D5C6EC3E38CE3314f",!1,!1,null,null],["ethereum","pointpay_token_","PXP_",3,"PointPay Token (old)","30440220243c319fdb20a83f3e5dd7190346af792a9439b3aaaa57f80c0b10a545960cd80220643f1addb00b20ea63ff92d3dcf1c652575a512ed11582b2319fce0b9794c333","0x8f179114235842978D8917e08721541072C46584",!0,!0,null,null],["ethereum","poken","PKN",18,"Poken","304402202f709a84cf87a6b16f3b9005cc089ef52238275477cddc696744eac6df50498d02201f30df3835f72561b7bea2c4756ba0060d931914e6039905d55612b5f8827c6e","0xdf09a216Fac5ADC3e640Db418C0b956076509503",!1,!1,null,null],["ethereum","poker_chips","CHP",18,"Poker Chips","3045022100cf33d4f52d253cd4470fad4bf16590449fa77b54d62a3cb264f57941862af493022074d609193fa81a5556febb6c83ad3932e4c5565fc2dd68f8a441992d8d1a01dc","0xf3db7560E820834658B590C96234c333Cd3D5E5e",!1,!1,null,null],["ethereum","poker_io","POK",18,"Poker IO","3044022001bdb88910706a37f99e411dd9cb6413318fd7cfff75de98874fa266e70e788e02205d639d546af4bd743ae01619923b20caeae1aa7cb0fac0b27065c983e42b0f7e","0xBc8dEee89F1cf4B661514185AA1aB780336c4c4A",!1,!1,null,null],["ethereum","polar_chain","POLA",18,"Polar Chain","3045022100fb56dbe4a8ca9b0eb4797db89add1535430273fcd1f019686a1f102cd66acb6502205cc2dc6364402bada0c3dd34e87c553d74c3e032b555c898034f50265d335d1f","0xbBE5C81412Bad19877300d63CC8D8264A154091E",!0,!1,null,null],["ethereum","polaris_share","POLA",18,"POLARIS SHARE","304402200965056e039641f52da595b9cad5bfe41280861c016e3503f071e8d0ca43ec6a022026114f1a5524995c12acd75d41a21e4199847d6964350c809d3bd93ae157a356","0xc691bc298a304d591Ad9b352c7A8D216dE9f2CED",!1,!1,null,null],["ethereum","polars","POL",18,"Polars","304502210084520461d80db5d3229d84dc40dacf8953ee5a011f27e4f44b635820df49ed980220760a0fccbfbf98a85e6f4b7f352e970884ba7b49a2510557bd5f51b4e1aec60e","0xc17fbe1d709dDf6C0B6665Dd0591046815AC7554",!1,!1,null,null],["ethereum","policypal_network","PAL",18,"PolicyPal Network","30440220634301b7f2c6a705a79cd2763bc940553c40ee6890e4eb607599d8ed73a3797802202fb660dc534a85abadf4019e64f222f72d7824f004fdbce361d74a04fe0b48f6","0xfeDAE5642668f8636A11987Ff386bfd215F942EE",!1,!1,null,null],["ethereum","polinate","POLI",18,"Polinate","304402201c17e8809f3118fe94288b7669c7b5a1880c9475ee8a244fe98a592bcb2381e902200e188015ffda7b729d32b4b91f781de32da09b057a83372c2904f93c5a2a8092","0xa1a36D3537bBe375Cc9694795F663DDC8D516Db9",!1,!1,null,null],["ethereum","polka_city","POLC",18,"Polka City","3045022100d95e39b271a6f070c5e1692f6a8cf236ba98cc6d84ff03a1aa322caa4db373e802201dfdf2c9300fa717665c9a77b47acb4aef5a45a80e2d9194fd4cbb44d7350c1e","0xaA8330FB2B4D5D07ABFE7A72262752a8505C6B37",!1,!1,null,null],["ethereum","polkabase","PBASE",9,"POLKABASE","304402205424fcd311cb4b2886b137b0418b1d67ca6e55312b905d93212b5d9b0693f037022044916bdbc1f599687ce7f1003d13ef73d76865891d8016fb086464f032319bbc","0x44B537B6f94c73A54f7bF8a9b68f8125da3C330b",!1,!1,null,null],["ethereum","polkabridge","PBR",18,"PolkaBridge","30440220424b5a0c2ee5c5ad7b86a893c84507fe4316f38d6542ce2b16d786ca07d8ac080220789c4a7fba5cba9ac6943e884ad24f6dfc3fe6e4171a1a2f1a2d3f53013c9509","0x298d492e8c1d909D3F63Bc4A36C66c64ACB3d695",!1,!1,null,null],["ethereum","polkacover","CVR",18,"PolkaCover","304402205d70322018b3d779fc5a4e9523b7ced0e83e025ce61fd11f82793e2d71d8b0310220093d68bf2460ae8710540c96994ab9da51b62a870f4037e06b780bde1db10315","0x3C03b4EC9477809072FF9CC9292C9B25d4A8e6c6",!0,!0,null,null],["ethereum","polkadex","PDEX",18,"Polkadex","30440220466414f89170bf72112f785877945eb3bed9aff49fa9ab04768dd4454f8606f9022057d672bde5586e8b354f6e2311cbd2e1e964e6fa87d5ccdac88c39dcea8de4b1","0xF59ae934f6fe444afC309586cC60a84a0F89Aaea",!1,!1,null,null],["ethereum","polkadoge","PDOGE",9,"PolkaDoge","3044022046d51ca91aac980a16d08bfd78e5c7fdcf836407af5896caacabcd763f3d1c60022005dd9cbbed38c8ba334a3135fad9b22bf6c8feb64bfe5d646a3561dfa5a1cafb","0x1BE66C15731788BaE659B4bdD40d4AA9B3bbca94",!1,!1,null,null],["ethereum","polkadomain_token","NAME",18,"Polkadomain Token","30440220505f296506fac4c65d08374e3056744648bfc5ff36e31104be1c28a51fd298ab02201d3ca0570655b81a837e0e2d417a759bdc77d41d4ad1427989d3573ca317c533","0xe1A4c5BBb704a92599FEdB191f451E0d3a1ed842",!1,!1,null,null],["ethereum","polkafantasy","XP",18,"PolkaFantasy","3044022071b7f96445566128e0b02efe9c9f0d846e5f9e69601f4ff73834d780ae416f4302204b8369f353bb14b526fbc26e5bf5cffec19d4147e18229782f85f5eeebda52db","0x948c70Dc6169Bfb10028FdBE96cbC72E9562b2Ac",!0,!0,null,null],["ethereum","polkafoundry","PKF",18,"PolkaFoundry","3045022100ebc8bd504ed53ca47c6101fcb24754068e3a27133b1456cf726c540b872f5ba902203fad3aa04dc5bfbf47e3f191046d990f9881827869e362dbd9b816a253a67a40","0x8B39B70E39Aa811b69365398e0aACe9bee238AEb",!0,!1,null,null],["ethereum","polkainsure_finance","PIS",18,"POLKAINSURE.FINANCE","3045022100a88ec471a2b049f4a85b7fc6bdbe77377793c8a76888769cda3666c738c66bf302206e6577580e45e5788e58ec41db8a94fb7501d0c1ec4d93d620e836e69312167d","0x834cE7aD163ab3Be0C5Fd4e0a81E67aC8f51E00C",!1,!1,null,null],["ethereum","polkalokr","LKR",18,"Polkalokr","3045022100c46485f3469858d3d61fd905eb859c4d2b36b17af6f379509d5fbc0f25f6d18a022078a695502820700edccb6bfe7b58e234c07fbe4ab82ac8c33cad87d50cda8b2f","0x80CE3027a70e0A928d9268994e9B85d03Bd4CDcf",!1,!1,null,null],["ethereum","polkamarkets","POLK",18,"Polkamarkets","304402202fbf1c381c175bd1e1200e770f022613d77d27a596f62629b687107311dfa470022058d7a4f626684720c374bbadeb52fcc5da28c09f8dffe302c86839c08b352bf3","0xD478161C952357F05f0292B56012Cd8457F1cfbF",!1,!1,null,null],["ethereum","polkamon","PMON",18,"Polkamon","3045022100f509bef08272c064ddbf93f6376cded126d87da7eb8e6b6365102e78e81913e302206dd02b9d9dda6f76fdafad076820c778d973480fc20dd19cfcf18676f37fbb9f","0x1796ae0b0fa4862485106a0de9b654eFE301D0b2",!1,!1,null,null],["ethereum","polkaparty","POLP",18,"PolkaParty","304402207071b54256247bca83c3619c2df84b72b5ba4066c18f162901c02b98857c9f7602202f8a622d714a472b231b8ad09ff8fe1ec59454d27e075ec27752081e020d108e","0x48592de8CdED16f6Bb56c896Fe1Affc37630889C",!1,!1,null,null],["ethereum","polkararetoken","PRARE",18,"PolkaRareToken","304402200990aebb3d54a4f9cfac8ef160c5b401db7816721a8dbd4c162fca413678883f02201bf650acea47dfbf3b52a033007fd3aa5bcd747f2dc4c40ed592b116826fa0f5","0x2C2f7e7C5604D162d75641256b80F1Bf6f4dC796",!0,!1,null,null],["ethereum","polkastartertoken","POLS",18,"PolkastarterToken","3045022100ba8067cc3f530af1ca8ac804f822d97ef3825069e56bf8e47094d00c42751819022028184da540297126609064810e0f7b4bf5e0dbd5adea41cfd7809a97cc754f3f","0x83e6f1E41cdd28eAcEB20Cb649155049Fac3D5Aa",!1,!1,null,null],["ethereum","polkaswap","PSWAP",18,"Polkaswap","30440220334fd685da6899482d29536db68dcab5664ddbc7f4a583ce9ddad583a59f0e9802203f5836038d130f9b62ce2e9489282ca0029d7b6dee44b9be1394ca5010c77d57","0x519C1001D550C0a1DaE7d1fC220f7d14c2A521BB",!1,!1,null,null],["ethereum","polkazeck","ZCK",18,"Polkazeck","304502210099b30b682bc4ebdc82c0953c6a61b68145deb1aa0a2f32206380e39c2257f6bd02207dfde5adad762f94bb8d75f210ef39fa9b17d1cf1fdd43a15856304768290c32","0xeDB7b7842F7986a7f211d791e8F306C4Ce82Ba32",!0,!1,null,null],["ethereum","polker","PKR",18,"POLKER","3045022100802905e8d30b5a4af6412e53e46a3b9a5095770586db0b378e326cde0fbb0f4002202691c7c512258310b92a2af221e43da41ee81cc111c59932ff1e9ebc69c3bd43","0x001A8Ffcb0f03e99141652eBCdecDb0384E3bd6c",!0,!1,null,null],["ethereum","polven","POLVEN",18,"POLVEN","304402205f15beee108324c5401e922b2a1c3fa74ac6e0a693322aa8bf66d6eff8e66f330220559d8e4a5decb3efd646c163b87d1ca4685a8c2b75da1ff47a91e6789066a5ec","0x4a6AB9792e9f046C3AB22D8602450DE5186Be9A7",!0,!1,null,null],["ethereum","polyai","AI",18,"PolyAi","3045022100aee1aa2ef8269c4b2ead6a3863408f63d65edff258f2116f4bfdf3d90d535c71022041f7b2f29d5b4c5b0a4c45401eaafd808290ed52962c0bafe1b0951d452d034c","0x5121E348e897dAEf1Eef23959Ab290e5557CF274",!0,!0,null,null],["ethereum","polybius","PLBT",6,"Polybius","304402202bb3f6a05ffbd8a643a5e835b0cce2cf4128e3361cc73430289eb27175b33f7e0220290582f9a83e6b0d20150fb1bcf3465a8d18f635ae6d35aa1f677e86be6a79c4","0x0AfFa06e7Fbe5bC9a764C979aA66E8256A631f02",!1,!1,null,null],["ethereum","polygaj_token","GAJ",18,"PolyGaj Token","30440220342f12faa0988d1320853eb5a59a8d7336570513f6b664276031cbd22979eb2402202ca2067bd1681189b1d051b9cc81916efc5614b24b75ec2527d1d47e2385495f","0x9Fda7cEeC4c18008096C2fE2B85F05dc300F94d0",!1,!1,null,null],["ethereum","polyient_games_governance_token","PGT",18,"Polyient Games Governance Token","3045022100b80f6b2ecd7c24bc23289e1e5f1048e985d54e7cb451fed2d7d64f9d24754a260220168e25d8ce7e785e16368563a12456971823f3dea68632986ff4f4f0f587f973","0xeaccb6E0f24d66cF4Aa6cBDa33971b9231d332a1",!1,!1,null,null],["ethereum","polyient_games_unity","PGU",18,"Polyient Games Unity","3045022100f2f74f7ae8a29f7106df856d6b3f6e19be798ea731d11833196984ce6773b460022020251b31743c39adb332f190913cb620a2ff78fa94bc8de412b080d82cf3f907","0x98c36c0e953463BD5146C8783ce081CE1d187AcF",!1,!1,null,null],["ethereum","polymath_network","POLY",18,"Polymath Network","30440220277171184110cdad127d902ac2825043dbfe130ce61b9f812b8a7036f37a9fa002205d5af37c15e707dac47f14582459eb3f4edcaeda0261e451e2ff4c1df2cb6020","0x9992eC3cF6A55b00978cdDF2b27BC6882d88D1eC",!1,!1,null,null],["ethereum","polymorphs","MORPH",18,"Polymorphs","3044022014078f957d4389055cc75840f9db16002515a7496c733388f0a961bce96171c6022070f72c515018a2fe98af40d7891c765eaea6457538c59fcfcb2c0fac1af23dd0","0xCc3F1441e84f124A65Bc9798A69A5C4cEbC20dFF",!1,!1,null,null],["ethereum","polyplay","PLAY",18,"PolyPlay","304402203cbf0893f35293e15fd78cff88833acd52a2209a7cb0fef4f09fab2ad318662e022052fea1f7cdc0c92baf58213e4581d4d5abea67ca941d562669116f627178b6c0","0x130966628846BFd36ff31a822705796e8cb8C18D",!0,!1,null,null],["ethereum","polypux","PUX",8,"PolypuX","304402205c8869bd71a22a1178be550ab7596839102ff868cfa38c772e4487cfe5d9f72b02203b4173ae77148fe6f9e75082ff25f61dbfabd051bcd256eff93eea8d0712d27f","0xE277aC35F9D327A670c1A3F3eeC80a83022431e4",!1,!1,null,null],["ethereum","polytrade","TRADE",18,"Polytrade","304402204d1d113713102da261cbb3a8e049a7ca885cb44f7b43fde609e02077e074d9a802206abb0fa5247c9d1bc652e8ee3ae8e9fd4372dc6238ebd48fc9e7699d35c0e2b6","0x6e5970DBd6fc7eb1f29C6D2eDF2bC4c36124C0C1",!0,!1,null,null],["ethereum","ponyo-inu","PONYO",18,"Ponyo-Inu","3044022067f8be15ae87bd0db1c85b02247ea61a0f1a93aa5ed18e8d5bef70e1ad683c1b02200a9430ace52fa6a93c07e10c08a07ccdd973cd4b08328dc8e25f62ed1e0d3dfa","0xf03F082Bf49fe71c2Ab8DFAf4F8d0AEAA1D3DE14",!1,!1,null,null],["ethereum","ponzu_inu","PONZU",18,"Ponzu Inu | ponzuinu.finance","30440220612d0d32ebb4f0838050d86b2959d8df803547b47ce72542d8b52c5760093bb6022015c61631cb59943458d2d4ad52645ef7d9ee5f20556fef5bfde67275ed4951bb","0xDa4c27a9fbdDe1f5F3aF0398396be4644dCEC715",!1,!1,null,null],["ethereum","poodle","POODL",9,"POODLE","3045022100d482738625dc639fd3914eaeead3c0464be42be1c9a8ac7928682440e35ae07702205cfef82df7f1d837b798594ad8437ddbcefeb61b9601e8267017156793d1be31","0x56a980328AEE33AaBB540A02E002C8323326bf36",!0,!1,null,null],["ethereum","pool_of_stake_master_token","PSK",18,"Pool of Stake Master Token","3045022100beb2d7fea79d575fa8b5b40fd9b9f5c6ab0804aaf217bfa626211ee72744ec0e022010d71a790c5fe15d179f760ece2192effd09d24ac12966a68357e06a6616e25e","0x1c5F43710a1776b0Ea7191b7Ead75D4B98D69858",!0,!1,null,null],["ethereum","poolstake","PSK",18,"PoolStake","304402204aaa90a94110df2a0d6fcf31161d14a7e6c4be3ce67446206981cdda12fa179e022060a754eaff0a595a62d3694df9fc55ad98c0bedcbdd1ded449d99c904c7c0a6a","0x3F84c4184b35c488F7fe4A12469610C9B1CB03C9",!0,!1,null,null],["ethereum","pooltogether","POOL",18,"PoolTogether","304402203efb94178e5e7e014c4f66d242d55c9dbe38969a45f22003d555b2fd1339623d0220377d3e2f165512c7d3dbe02052e84448e7315091668acabd462f18349beeb102","0x0cEC1A9154Ff802e7934Fc916Ed7Ca50bDE6844e",!1,!1,null,null],["ethereum","pooltogether_usdc_ticket_(compound)","PCUSDC",6,"PoolTogether USDC Ticket (Compound)","304402200b44023a774d9b3d3848de371336ee4a2dbd374d1c71d4a550cf76be062697cd0220608a463cafd044584e9352b0ce35be7d71bf6044a53b16bcdd66a4fdaa74d1a9","0xD81b1A8B1AD00Baa2D6609E0BAE28A38713872f7",!1,!1,null,null],["ethereum","poorpleb","PP",18,"PoorPleb","3044022031ec39590ea4416a34a2775bf3a5861ecd21bebed6f66c13385388845c5fdc23022023ea64544495c40244942fe0b77d9fa957ffbdb037279782c75c62a6f757f264","0x9565c2036963697786705120Fc59310F747bCfD0",!1,!1,null,null],["ethereum","pop_network_token","POP",18,"POP Network Token","30440220590e2207e74b6a7f39d67574a88c77367f22549829b162c9afe066e9d681f8db022017c02da894c177a5b9a621d67c822aa84e7e5d94a64c93c76ba953e038eac76f","0x5D858bcd53E085920620549214a8b27CE2f04670",!0,!1,null,null],["ethereum","popchain_cash","PCH",18,"POPCHAIN CASH","304402202eaac2db272de5fa381761239fcfaf97407dbf06fce0343cc029dc9b9860488002200e5ec3d621d146889091e645a5f3041e54e885c3dca28f13053840b0ee0aff6c","0xE3F4b4A5d91e5cB9435B947F090A319737036312",!1,!1,null,null],["ethereum","popcorn_token","CORN",18,"Popcorn Token","304402200313f998a6c804c8ff10ee2a6ff36c944be2bf9180c6202859d79a3d71d2fccb02201aefd3ac6925bf6fd53812d2409bb53f6042883d4f328de91e3d9207844a97d2","0x3080ec2A6960432F179c66D388099A48E82e2047",!0,!1,null,null],["ethereum","populous","PPT",8,"Populous","30440220242385909d86d7c77186f2aed675321818e50a7fe5000025b217f372e965edcd02200887150e9c7b0112b075b8b6366c72e8033c51c86964da91577f7c426ee685c5","0xd4fa1460F537bb9085d22C7bcCB5DD450Ef28e3a",!1,!1,null,null],["ethereum","populous_xbrl_token__pxt_","PXT",8,"Populous XBRL Token (PXT)","3045022100af1e30328df7b2040d46357e944c5377842ac0c037d39c767435d3da625629ba0220306744b33b08573ae1130f38a92df1d42ce5aa0ebb1f6455634a36fc735e4062","0xc14830E53aA344E8c14603A91229A0b925b0B262",!1,!1,null,null],["ethereum","porkchop","CHOP",18,"Porkchop","304402206091243928c39fb222040aec43db3f3d2b7158a44e7ad10f2bf683e8ce07097c0220121e46877c0142c2d7ea16a0b354e8d4702180f9e4fc0a5cdf639329d354e36d","0x646707246D7d5C2a86d7206f41CA8199ea9CED69",!1,!1,null,null],["ethereum","porntoken","PT",18,"PornToken","304402201841b0d2d3f897cf7deedb4f67ea777ebbb2f9a7a65082bd2441081173c732ce022068a905116869301f92b23ead24200c4d88642ea48fe186a7506b89d7767a2221","0x66497A283E0a007bA3974e837784C6AE323447de",!0,!0,null,null],["ethereum","porntokenv2","PTWO",18,"PornTokenV2","3045022100faccb2b504846ddcba0595588421750bc1b6ab84c60ab3e9cf9f9d6fff11e50502201f5736fc4de4edb97d43421bb5ede69b7051cb5c837ab7c9317a60f9e3c61c2d","0x5512e1D6A7BE424b4323126B4f9E86D023F95764",!0,!0,null,null],["ethereum","portaltoken","PORTAL",18,"PortalToken","30440220368cac360c6aa00a45e53939cf331df987de19a31017a085bff8aba746d422fa0220524146a3f73c358a338a16733d26fb28e58ff941863336e83f10d208e980cf0a","0x8DB90E3e7D04C875a51997092f9178FCac9DefdB",!0,!1,null,null],["ethereum","portion_token","PRT",18,"Portion Token","304402201189d9b2f64c4de695680a5e51ecba004c072353d67647744f048eacca64116d02203fa5e9eba5abf413d9b353f17c91e92adf38d7d573fe4c6a623c23b67539a56d","0x6D0F5149c502faf215C89ab306ec3E50b15e2892",!0,!1,null,null],["ethereum","postoken","POS",18,"PoSToken","30450221008fa2c432807ec148304763bd43e22b6b6188662a53a85e298c02f99dce9f623a02201dff2967f5242102a6e00548e49e581897ea3a0349d4efd3377514a04207aa43","0xEe609fE292128Cad03b786DBb9Bc2634Ccdbe7fC",!1,!1,null,null],["ethereum","potatoin","POIN",0,"Potatoin","3045022100e08a7911701af7a9814c78c14e149697114f669f55be9b174a473be4e3e9af0f02204fac8830cc5256913f96d3c3736c81b720348e3a09078995a68d66d68b597cc7","0x43F6a1BE992deE408721748490772B15143CE0a7",!1,!1,null,null],["ethereum","potentiam","PTM",18,"POTENTIAM","30440220775690653fee3669328907b43aed66fc705b3620607a4d42eb4879ced73c3d7b0220037f744aa7e362fdbe740d60ba1ba205e8c6770c1dfffd49e077db45acaee422","0x7c32DB0645A259FaE61353c1f891151A2e7f8c1e",!1,!1,null,null],["ethereum","poundtoken","GBPT",18,"poundtoken","3045022100bdbc61d77554aad1e175d78fa03e755a25dd924f9618d76102195bbc46451f6e022046569cdca62311f2df446b42e5717eb49c86d823fc7c63642c509dceb02dfb60","0x86B4dBE5D203e634a12364C0e428fa242A3FbA98",!0,!0,null,null],["ethereum","pour_coin","PUC",0,"Pour Coin","30450221009e7168c7148e3068e9289c4e53eb4e148e4cfda8ba75a9f60b16396d133fe75602200693e566f6fdbf6396a18511cdf6980dd42f6508d7a6d16cf84320a550114bca","0xEf6B4cE8C9Bc83744fbcdE2657b32eC18790458A",!1,!1,null,null],["ethereum","poverty_eradication_coin","PEC",18,"Poverty Eradication Coin","30440220774a5685cd41c3ee8803e8c76c1e9999619545c2f44c7fd8c6a5cfab426b9a6902203584e965d085908bb8061ba0ef1abe20f889902a5ee65c5a068a97ba2baafd7b","0x432Bf73443909c33b545EfED536a5246c9a722cA",!1,!1,null,null],["ethereum","pow_btc-35wt","PBTC35A",18,"POW BTC-35WT","3044022041a61db4ea144c00d64f540b483710b2e0941c47fb9948c1142c29928668355d02200ac7f654eca6525c4bd6c5d101c07c008c46f700d158d7929f261669f37ba59b","0xA8b12Cc90AbF65191532a12bb5394A714A46d358",!1,!1,null,null],["ethereum","pow_eth-1_8wm","PETH18C",18,"POW ETH-1.8WM","30440220787c1f0ef3c353e66832db12fe64f84d990b7f25f65164f2f89c4edcd2f578780220248a4ea0b45ab35c14a8682041dd18d5991e8d4f807fc3cbb98337babbf01ee8","0xA15690E9205De386Ce849889831C1668c300C1ad",!1,!1,null,null],["ethereum","power","POWER",18,"Power","304402200b650c5c043b3f7cc882e5e19452215f76e4fda0e3afb88764c1b841d93234bc022074c8de4b6f31a9e59db85b5338744744a18c72903a852910ec32e31683042b3c","0x1f1207333b87219677EA536181d24046289ad820",!0,!0,null,null],["ethereum","power_index_pool_token","PIPT",18,"Power Index Pool Token","3045022100d327b17dbb930b7473146aac0826f91b03e12b268cc543a3e93ee178c7e25e410220747842f59c71a3d2facb276adc696e841803ec6d5a3efd3218c4f5a6e7ba823e","0x26607aC599266b21d13c7aCF7942c7701a8b699c",!1,!1,null,null],["ethereum","power_index_pool_token_","PIPT",18,"Power Index Pool Token","3045022100de247e145631560ce8fb3feb4948021cac8b001e6b7ea88b7717a19a16d5b64b02203ba8d25905bfc2477ef2e63e850abd4a7857291536566dc659e816394018bd11","0x9FAc54B1ddAC9968Df67B31F217c63C4c118656d",!0,!0,null,null],["ethereum","powerledger","POWR",6,"PowerLedger","3045022100e90c0cc909e54749cea9c53df3c06a358e944fb2f9953f556adf0308af7916c2022076f107413789e67e4f489fcd6d957d3258b6726797c039c7571e5a3b70c6dc5f","0x595832F8FC6BF59c85C527fEC3740A1b7a361269",!1,!1,null,null],["ethereum","powertrade_fuel_token","PTF",18,"PowerTrade Fuel Token","3045022100b11c81130a4c0e0a0e09c4a78ae538e3c5a99dc82cb8590c1e2d2eedf3cb30d002206f2a407396c485ebd1504f209aaeaf05a33d46297cd819f43dcfbc0471c45732","0xC57d533c50bC22247d49a368880fb49a1caA39F7",!0,!1,null,null],["ethereum","prdz_dex","PRDZ",18,"PRDZ Dex","304402200b83b38fbab74f269b569cdf67387837adcb991fd05d1efca9ea1d6b9a4b1b7902204aee6c7a9105920495fe53889273cb752b64607654c092edb473d98525eed2af","0x4e085036A1b732cBe4FfB1C12ddfDd87E7C3664d",!1,!1,null,null],["ethereum","precharge","PCPI",18,"Precharge","3044022052164305138c562e68382039b39df8680ad59361834d34edf739028e3ee8e96902207e939cd86273c402c31b2c337538ddbb51245c6b496c8ff8992ff4a9419035fe","0x2925C2a312A4934Fd695fAb72b1E425Cc41978f2",!1,!1,null,null],["ethereum","precium_token","PCM",18,"Precium Token","3045022100b142c161ada3b6a46950b13eb3bd3fd91b37a2e4bd9c991acc78df107520b3bf02201a9a157e81e7dc87144775cc9ad77d4a93c52beaddc7bfc38dcddf608db9df03","0x6096d2460CF5177E40B515223428DC005ad35123",!1,!1,null,null],["ethereum","prediqt","PQT",18,"Prediqt","3045022100e79e1f53f4629bb755482e548774573dd13ada4b555d8541ebcde7ff1b65d9a90220422d8c8c976077d14894df095d1f0d88112bd4baa7a50ede7c5080845061d5d3","0xF8c17C840549974eC17C6573B3963f1E3046c0eb",!1,!1,null,null],["ethereum","predix_network","PRDX",18,"Predix Network","304502210080b59eb0daacdc1bb74956f3041d3de254eef89cfcd4b30224753febbc348c450220418be452a2f76643e74f07f3d9db058682a8847350082eabef8b9cafc5fdbf90","0x556148562d5DdeB72545D7EC4B3eC8edc8F55Ba7",!1,!1,null,null],["ethereum","premia","PREMIA",18,"Premia","30450221009ee49553c1b2e368c145f14b94c44490aeb8c0f8778ead02994e6988ba1a2c100220451f71d53decc114b8db1c2359c85e09dde758f41996359e4d513952c5a50653","0x6399C842dD2bE3dE30BF99Bc7D1bBF6Fa3650E70",!1,!1,null,null],["ethereum","presearch","PRE",18,"Presearch","304502210091467304c5c274f854ecc37fba9103d177d6e7c8527638ce2bc4e7987a59782502204e6a66ffe55a311f7ae8cd9b8dfd5b330e2176f493d0e0e4a61e9517ca17ff77","0xEC213F83defB583af3A000B1c0ada660b1902A0F",!1,!1,null,null],["ethereum","presearch_","PRE",18,"Presearch (Old)","3045022100d6352aa558fff02b7b75082bd174ab8981195b9801e3a5b9248fddb3425d85ef022010187ab06aa801f7cf32a1d0553be66d82bc9340ff8e71de41296d4ca90f271a","0x88A3E4F35D64aAD41A6d4030ac9AFE4356cB84fA",!0,!0,null,null],["ethereum","pressone_token","PRS",18,"PressOne Token","30450221008e542ca8fa92c218cf806a52d49e2e4418c5a268d4268b407f1458bb4c3d4eef022010d1ba2f8c6494c63ef14b3b64391d4fcf8f260ab0062b1a7618f6da82ca2e56","0xe0D95530820aAfc51b1d98023AA1Ff000b78d8b2",!1,!1,null,null],["ethereum","presto_token","PRSTX",18,"PRESTO Token","3043022011323bf5d92cc163032d669b2b1a27d18e3ed4325a8f82c099a265d203465ee6021f40c5a6acf613e6a253684da33b405c98cf37ac25025cfdf9d81a292ebfec8f","0x00ad22AB1006FC282674887aFF1114e5aD14077d",!1,!1,null,null],["ethereum","previse","PRVS",18,"Previse","30440220479e2d9f2f5337cc0b52c43911fd2eb65cdd77faaa767faae4bb5b9b5535fab202202a01de1f851e39b50baaded0f845ec1c26fc972a02c72ea2a46fba1b7342171f","0xA36e59c08c9F251a6b7A9EB6bE6e32fd6157AcD0",!1,!1,null,null],["ethereum","prg","PRG",6,"PRG","3045022100b64635d03e8b1f5d1dfa07baebbb69af9e847fe4ae150cefa616a5a179ead19102205a421f60d3cbe51b6c5401279bdc7968377542fb506fae91ac67b543b8afa6ca","0x7728dFEF5aBd468669EB7f9b48A7f70a501eD29D",!1,!1,null,null],["ethereum","pria","PRIA",18,"PRIA","304402205838141bd30ec0ec1a8156f7cfc03bf1103e7504a6dab1230f5f4108cdb7ceff022033d1ad0ab31e7a15efacfa6863a4a3aed981492ecbfa32af3ac34411f0a7b41e","0xb9871cB10738eADA636432E86FC0Cb920Dc3De24",!1,!1,null,null],["ethereum","primalbase_token__pbt_","PBT",4,"Primalbase Token (PBT)","304502210081e0d36edc12fda69dbd37987bf23901fd573d9afcfe5cbc73db03d5f0db9f1f022065bc13b8ddc8cd7ef3e6802d7baf3042922ff1b465c02a6658292003000b70d6","0xF4c07b1865bC326A3c01339492Ca7538FD038Cc0",!1,!1,null,null],["ethereum","primas","PST",18,"Primas","3045022100c05cca85b9432c12821f5865c27bca4819f291d1d57d90d5978b62314e26716002203b5f31d76ff3c7712a60ed1300e6d3d10d7df5f51b5380613e5fb194fc3d3275","0xE3feDAeCD47aa8EAb6b23227b0eE56F092C967a9",!0,!0,null,null],["ethereum","primas_token","PST",18,"Primas Token","3045022100b31efa83de9c020089d8750e7a6c909804affb2a63f54855fdc610edd4ed5356022025ebe2f7ff721257ee927525cd111c5c453ade66e604cd41660b2c07cb9b6440","0x5d4ABC77B8405aD177d8ac6682D584ecbFd46CEc",!1,!1,null,null],["ethereum","primate","PRIMATE",18,"PRIMATE","304402204f1a425389bdadd703908c2cca6cb6cb7c665514a41d8a6b0b7ea9d2796b61e802202d64cfb716eee2ed668e6fceea7cfb4b1ee5a9dba63ccc67fc6769da7c592cdd","0x46e98FFE40E408bA6412bEb670507e083C8B95ff",!1,!1,null,null],["ethereum","prime","D2D",18,"Prime","3045022100cdc37d4f0651588f417e207402c7c18dc67965ac543a7d5051e6e426e597d4bb02202f0a833f7073e1f8930d099bb251c5ea0da0ac9624d9f64712255cf08ae4b9b2","0x43D4A3cd90ddD2F8f4f693170C9c8098163502ad",!0,!0,null,null],["ethereum","prime_dai","PDAI",18,"Prime DAI","3045022100d4750628f22008ffdeec5df727b46299f11f0321e35af27ca6a6565347aa929902204a0f0ffc4c0da3dcc58122505b9ed175c9a5dbf978c45e277e9a3f900be8e8dc","0x9043d4d51C9d2e31e3F169de4551E416970c27Ef",!1,!1,null,null],["ethereum","primedao_token","PRIME",18,"PrimeDAO Token","30440220271e81b62e99ecafdf7838c19a9914eae2dccdb87623bc46e4a8143eae5c62f2022035c21917bd8a8d8fe0c26c27d325a2143d3589d7952fc0eedf32960e5d45d49c","0xE59064a8185Ed1Fca1D17999621eFedfab4425c9",!1,!1,null,null],["ethereum","primefinance","PFI",18,"Primefinance","3045022100912e121ac08b25580829425b954be233fa7a01c9eee6dd89cb73acad250b67750220622cff97d83e3eba7afaa44a14919b8a1b8118d7772af685518ae0ad60086e78","0x989ac4c1fC5aB2B8c86924c6253aAF1Ee68E9ce9",!0,!1,null,null],["ethereum","primewhiterockcompany","PWC",18,"PrimeWhiteRockCompany","304402201130380b43c1b8e08961e6202a6f32ea7cf1433355730a7fd24d3a3553406d0f02202b7ffb6bcb580262da8490bd74dddffba01ae063eb689284e0f2f41875992f6e","0xA3D93c0616dbC31FEf1e112C7665A4bA4dDBf0be",!1,!1,null,null],["ethereum","printer_finance","PRINT",18,"Printer.Finance","304402205264a0e91cf5e84ae3491546ea7cec0c67fa50abbd396a2847893fccb472968d02205a8263f3fc337c3a08967d91a46034793efa24424a2f1043f40da913e6ca3bc6","0x54b8c98268dA0055971652A95F2bfD3a9349A38c",!1,!1,null,null],["ethereum","prism_token","PRISM",18,"PRISM Token","30440220132b20140ace2a7cc9d51cd51dc173acfbc206b4d5d0619bd1f975e7b4d52df70220071000af444b07214569e947be4dd8e40effdd50da49797a8cb7930f4f11c357","0xd46df541148932690B81092f600f35208AFd4325",!0,!1,null,null],["ethereum","privatix","PRIX",8,"Privatix","30440220731738d485e5d13fc5bdf62159760db952ea57e6c95bc553b4de858837a27fda0220145b7990d4decebfc3d4f44f5055ad7a6ea2c60fe73df1fb3f49c5b62b3ee9bc","0x3ADfc4999F77D04c8341BAC5F3A76f58DfF5B37A",!1,!1,null,null],["ethereum","pro","PRO",18,"Pro","30440220784e1101d5a2cf106db3b0f1867459d911b5ad1ea1b3e38fec82432c0793f8d202204fcbd06850cca2e13ef20c73f2bd3aba2f98d9b41e403c563c943f9badd39f3b","0x9041Fe5B3FDEA0f5e4afDC17e75180738D877A01",!0,!0,null,null],["ethereum","probit_token","PROB",18,"ProBit Token","3045022100eeffd4e1b426ea77a2f6ee47945f54e523b3e90a221500fbdf8cc09597b9165902206dce0e60fabaf9a57be553b7c49e3f37130ff95782e0427dfc3c9af26e0e3449","0xfB559CE67Ff522ec0b9Ba7f5dC9dc7EF6c139803",!1,!1,null,null],["ethereum","project_galaxy","GAL",18,"Project Galaxy","3045022100b952f8dd7b9f1b905a2a4872ccf9fd21883ea476e184af17d9737f525f95568a0220432e6b99058f3ce09060c880d113018aaaec0311c73f449de2cdbc10576c77d6","0x5fAa989Af96Af85384b8a938c2EdE4A7378D9875",!1,!1,null,null],["ethereum","project_serum","SRM",6,"Serum","3045022100c229a5065661333b742a422384890a8ccf95158dc6e7e4bfce585217e284579c02203b8f77cb5769f52167c771b79bfe16bcf51b3b53f84d6d016f6dc64cafb6c976","0x476c5E26a75bd202a9683ffD34359C0CC15be0fF",!1,!1,null,null],["ethereum","projectsenpai","SENPAI",18,"ProjectSenpai","3045022100c6167f8d4af0364cc272b14051c3fa8cd39162463de31281afe42b4210f7960c02206d9cd7b3efccef99ad70073f966ba7208dfd80469a9477ac38dfccb01f4d78eb","0x5a705745373a780814c379Ef17810630D529EFE0",!0,!1,null,null],["ethereum","projekt_diamond","DIAMND",9,"Projekt Diamond","3045022100c4f4eac92199ba4b63770dc8d83ae4aac8ff2124822c9af8f2dce54c7d1a953c022049582c4477e985559636aed11446e4ee6346710fe0e6533ea37d8379d889e72b","0x53109fe9e044F2c324D00AD85bfB0b13CE379480",!1,!1,null,null],["ethereum","projekt_gold","G128993",9,"Projekt Gold","304402202105138aac6002328a4165fac8ac79ff4a29014ba28622f1b95befcd96429d7a0220612d3181cc507fc942f3eaa554577ed474d69968f8e3639bf1a83220b2afff37","0xDFC628A33C18e856Cd1c59583cB5aCe8dB706F14",!1,!1,null,null],["ethereum","promotioncoin","PC",5,"PromotionCoin","3045022100ff4b3fa1571eb84ab49c9d45fc2dd5b2cab02936f882db70857f43a3f65bcdf00220539502eaabf421fda95ee21ec0af45a37b5800b611c57544fd7f50d891b9e6f8","0xa6714a2e5f0B1bdb97b895b0913b4FcD3a775E4D",!1,!1,null,null],["ethereum","proncoin","PRON",8,"PronCoin","30440220791c5b29fec37a1b693cd2dc7e4b68c3891299108410f96a1383f992e6b2d36d0220459a57daa82a809f45502c8fb8ef6cf31f0f853568e7e2c4205e05415554de77","0xA3149E0fA0061A9007fAf307074cdCd290f0e2Fd",!1,!1,null,null],["ethereum","proof_of_memes","ETH20",18,"Proof of Memes","3045022100bc855e2c992a28cd26ac6de10f0be82cdcee28df7431e582aa5a99358a7e3e7302203efd8900abe42b420e3f1a539b80671749fd5651eda5598c997224a8f4d52881","0x04A6b6DE116Fb8bF57e5eE8b05e0293EA3639fE8",!1,!1,null,null],["ethereum","prophecytoken","PRY",18,"ProphecyTOKEN","3044022013cd20cc0db97fcdc88f83a850eca1a9a9383c575f0b5e298f70116ca8807c2a022050225b948d6c8f39816ad73131cc523fd68a5adb23981e73216c0227ae2f5c5d","0x3C81D482172cC273c3b91dD9D8eb212023D00521",!1,!1,null,null],["ethereum","prophet_finance","PROPHET",9,"prophet.finance","304402204594ad33b834956d2f6fc18d2b86e09ae8520ef7f7df26c2857a4f10bf0c192b022043e79498d22eb9b2048da0f294502d07c79776ad2489dde8d3ec4489d6e26099","0x8D5DB0c1f0681071Cb38A382AE6704588D9DA587",!1,!1,null,null],["ethereum","props","PROPS",18,"Props","304402204f62693fdb5ee4951c37ad3aaab570060002798c1b2fbc2d017b0fb5537a587b022007a4822852141a536db708b3a89ed04204b3a7ba80d69a5edaf3ffa6badf72b8","0x6fe56C0bcdD471359019FcBC48863d6c3e9d4F41",!1,!1,null,null],["ethereum","propy","PRO",8,"Propy","304502210080f6376b59f134232d6ccbb62994e4cf0952ff96a04d640b84257ec3c606550c0220593a52af6606df9f0a45a2cef0299f35c45b8cc1f7e805002683336a200837b9","0x226bb599a12C826476e3A771454697EA52E9E220",!1,!1,null,null],["ethereum","prosper","PROS",18,"Prosper","3044022066324754aee5392d9fe419f95a23c990218317f95644ef9f634d8d5baae1c9f802201e54b3e57f16ab4f0dd1f6561f6b421efca509afc852e71961c44206c77a962d","0x8642A849D0dcb7a15a974794668ADcfbe4794B56",!1,!1,null,null],["ethereum","prostarter","PROT",18,"ProStarter","304402202e5410d334d7f220083fd1495676241b520e403bb78c9a997a869ba55eb7397f022057e5fa46e5691d57f5437178338c0e602e96c3ccbea60f69b9c3b8eb961d20db","0x2341Dd0A96a0Dab62Aa1efB93D59FF7F3bDB8932",!1,!1,null,null],["ethereum","proswap","PROS",6,"ProSwap","3045022100d84085d64f000232139624bf67cb98735224f70040e68875260eca20fe01f60b022071950fef2f003f0c67212d9e08b5157256ed11596c1cef59ae519fad5bafa729","0x094F00Cb5e31Ab6164E3CAcb654e8D6c2b3b471C",!0,!0,null,null],["ethereum","protector_roge","PROGE",9,"Protector Roge","3045022100ac86a775708c916aabcebc89017f6c44a35e075acab7739796fcda590b3e3ede02206a450a32ffde3ddf2adf21add4023c02f63cc8f0a119cf5821603abfe127f2dd","0x282D0AD1FA03DFBDB88243B958e77349c73737D1",!1,!1,null,null],["ethereum","protocol_finance","PFI",18,"Protocol Finance","3044022022b7c850c3317f0174ce9bdde85c7eee1dc8c40720eff9bfa29a83a6d885d79a02203d0dea41436fb2258261fccc96211a419623f50872df41e559b963a3f51fe2dc","0x7B69D465c0F9FB22AffAE56aa86149973e9B0966",!1,!1,null,null],["ethereum","protocol_zero","ZRO",18,"PROTOCOL ZERO","3044022015747afa8d7a0a47e5c0f4965c53dc52badc3502aaadbb21cf5164b861325d6102200f36912121a6932bb7d5c256b9ccf707dd363fef2cebb3478a39ec12156ceae2","0xd79F43113B22D1eA9F29cfcC7BB287489F8EE5e0",!1,!1,null,null],["ethereum","proton_token","PTT",18,"Proton Token","3045022100f55e9cf4ded677b43aecc352ead90341b8be11959da3db9260eea36ddcdcfa94022006e08de351c11c4cfce2f871b5f7fc1db799e6f2f6e12f743337a5e903615360","0x4689a4e169eB39cC9078C0940e21ff1Aa8A39B9C",!1,!1,null,null],["ethereum","proton\xA0","XPR",4,"Proton","304402206f50783267edf027238cda2aac8a56d8049637acb4e2e6c5849f45d725f6a900022031fa533a12778ec7d9ca47473e84cf57206b4432d906540aad39da729cca36ce","0xD7EFB00d12C2c13131FD319336Fdf952525dA2af",!0,!1,null,null],["ethereum","provoco_token","VOCO",18,"Provoco Token","3045022100aef8a1ad14d2cd789544b01d1edf7cea16cc39a68e48b958a061e292f895e7ae02205c2bbaa2bbb9ca170a61e1213ceb17418d2e8fc93a042c04c4cd3e721b1a730e","0xB5Ca46cF1da09248126682a7bd72401fd7A6b151",!1,!1,null,null],["ethereum","proxeus","XES",18,"Proxeus","3045022100c6db1c6738cf3aab91afb80770586abed4fa039ac78ffd558d809264ec1418c0022036fd2f08d595bc7ba59b81cdf9cd9e035aa68d5c8e3daa4646996299442cc4c9","0xA017ac5faC5941f95010b12570B812C974469c2C",!1,!1,null,null],["ethereum","proxy","PRXY",18,"Proxy","3045022100e7d4810e019ace8e02079a97ebcf8993b7e99d22a16368935e367c805acb3ecd02203e56ef8f4a789864c49c28f9ee10eded8e66fd4b77052a3c972796073b195742","0x22ACaEe85dDB83a3A33B7f0928a0e2c3bFDb6a4F",!1,!1,null,null],["ethereum","prsp","PRSP",9,"PRSP","30450221009f8d45439e71f0ebc312b057682573c7899ce1dd0d506866953f71e7e0dfb635022053a121c44590800a4ed2b7224bd2f4def7f8efac282d4b999a9d27ed7d912dbd","0x0C04d4f331DA8dF75f9E2e271E3f3F1494C66C36",!1,!1,null,null],["ethereum","prtn_project","PRTN",18,"PRTN Project","304402204341b0b8a735e167c41c8ce62291f3ddc9cf625edccd34c5208d801fcd41e4d8022029e8bd0693d024be4740f96c6c58cf970c06dd5c0dc10f4ca6d6b6e1adcc393c","0x6D10E0194400A04600881057787Eb9E9c063dcA0",!1,!1,null,null],["ethereum","pstake_finance","PSTAKE",18,"pSTAKE Finance","30450221008e4ac0add16f0bdcda7fff0f1e2d3b647f9dc02b98ad55a53c42b26550d9fd1602204950eedfc281ff8c0430535ab12c6f4012f034750227803c250f71f056b97cec","0xfB5c6815cA3AC72Ce9F5006869AE67f18bF77006",!1,!1,null,null],["ethereum","psyche","USD1",2,"Psyche","304502210093ae6fee38f2fa6128ed179b1b1961680c8eaafb3d4393db8f25b93b8d56edab02200a63056360d1f9ae7a04e875089209e90b52cfaa9bfd20d99b713b560d2be79b","0xf6c0aA7eBFE9992200C67E5388E4F42da49E1783",!1,!1,null,null],["ethereum","pteria","PTERIA",18,"Pteria","3045022100c98f3bd66d8be6536f0a002e6ed827f4c9949ae13d722f85e42647cf67d6384002202ec3c2d3024cbf66b61bc521f0c3271b64b07e9043c301006c23fb651b2050dc","0x02Eca910CB3A7D43eBC7e8028652ed5C6b70259B",!1,!1,null,null],["ethereum","ptokens_btc","PBTC",18,"pTokens BTC","3045022100c6efd60a6814d165f602cae4e0c9b940688f7e23240c998245db97afba9135d9022068d6b334ec6ec568ee3882e95cd4f0a2f2c2708178a0ab569a8849c114581186","0x5228a22e72ccC52d415EcFd199F99D0665E7733b",!1,!1,null,null],["ethereum","ptokens_ltc","PLTC",18,"pTokens LTC","3045022100ac1b0a5d95657a2a8c0bff7b4c73a7a2d949cb906cf6682d740c18205d355a7202204b68b9bbd3fa2736541edb4c5bf585fa386a6235f76447347e9ecf2bb4c21b53","0x5979F50f1D4c08f9A53863C2f39A7B0492C38d0f",!0,!1,null,null],["ethereum","ptokens_tlos","TLOS",18,"pTokens TLOS","30440220432c3f834b247cf7dc891b9a2f3d157e4d3abef480b5e45ba22229ab7832e0aa02206db32d2b094f5b263c68f027e43a41340964226c762421ac9255ff709ff85da7","0x7825e833D495F3d1c28872415a4aee339D26AC88",!1,!1,null,null],["ethereum","pton","PTON",18,"PTON","30440220048037e8b276a69886372b5f60bde6eed4eaf3c05f64c1e3c9f4b695b448bf2e0220448841dd2c0cc3ae07815d168ebe1e2fdc5ae582c4d47b0d3b2155e82c299848","0x4946583c5b86E01cCD30c71a05617D06E3E73060",!1,!1,null,null],["ethereum","ptoy","PTOY",8,"PTOY","3044022049f8736134811c141a1c96fba0f1cb3fb3ae81b51bde55e3694eeff2c1d1c77b02201a852298196514fe6e7e0313aafda19ad330d6c0e436d04209b09b5f2d2d37a4","0x8Ae4BF2C33a8e667de34B54938B0ccD03Eb8CC06",!1,!1,null,null],["ethereum","pub_finance","PINT",18,"pub.finance","3045022100a7510488e6da0e87f86d54d3511ec5652698788c43b8d685dd55f2a9c8f0b325022004556f6c82cc6f154231225c780f882f04a51f4c4a6c4d35bf82f4055353661b","0xFECBa472B2540C5a2d3700b2C9E06F0aa7dC6462",!1,!1,null,null],["ethereum","public_index_network","PIN",18,"Public Index Network","304402203df2817a3292ab0acf8f76eb887cd6bbff5b887b7a2a00b36ce800da34dbd548022051d9ff4fd14177d2754014934cd6806f73cfee40003fc026bcaee72b9a2a8979","0xc1f976B91217E240885536aF8b63bc8b5269a9BE",!1,!1,null,null],["ethereum","public_mint","MINT",18,"Public Mint","304402202c7bd29b04ba59fff263a939a2d8083c819bff925c3d457351093b48b96174a002205dd47102fea65f4dc7d7c891ea7c1ecf46d21fb0bff7f6afa8b841c51750a7a9","0x0CDF9acd87E940837ff21BB40c9fd55F68bba059",!0,!1,null,null],["ethereum","puglife","PUGL",18,"PUGLIFE","30450221009b782183a21461e6b21e7fe5b69bb792e5f4d89b5b9f0ad87bcf4f6bcda2030c0220372ba5b7d7706f05ba2312b392c964dbc376b21525a9d361f08ca87f1e87ce10","0xdb69c3f8977f78952303987E87153c1988CF65a9",!1,!1,null,null],["ethereum","pulltherug_finance","RUGZ",18,"pulltherug.finance","304402206dc5ea5c8ebe978508e671abceb002ca6f6a6dc51f9b52555b0a3c7833b304bc0220323f5836523c75b953f68263285766ef784cd8acbd7362072de05d5edcd852b6","0xEdFBd6c48c3dDfF5612Ade14B45bb19F916809ba",!0,!1,null,null],["ethereum","pulse_unity_token","PLSU",18,"Pulse Unity Token","3045022100b484b19287e8f35b434882f9091f389c37159a86747eb15720297989f372213502207a44c3bfc086214a1c772b37430734021d88929b3a98eeee37809c1cb9cb40dc","0x909171Ab06909FF74Cc183039567dDc071754aCd",!1,!1,null,null],["ethereum","pulsedogecoin","PLSD",12,"PulseDogecoin","304402201fb8a1b130ca4a073a4b1ccc6dc8dbd2ec0fbf980a94dfe7ed6c5961255e7cb602200d77db610caf14e81340845851917d8943522a4101380d4db31f40b0328d4487","0x34F0915a5f15a66Eba86F6a58bE1A471FB7836A7",!1,!1,null,null],["ethereum","pumapay","PMA",18,"PumaPay","304402207d28305dbd643564c2aeb8fa013abb4ab4edfd021f45e76f9882b6bbf67f2d7c02207039326f0882d43bfc59daaf41a64dc7289127b01b1d867f87adebb03bf34ba2","0x846C66cf71C43f80403B51fE3906B3599D63336f",!1,!1,null,null],["ethereum","pundi_x_token","PUNDIX",18,"Pundi X Token","30440220302458c7bfb7501bda9bdff65201a331ecfc86335f432966a86b4adbf2a710da022021ccaff15a0d7274f07fe9f23ac047f134363f6d93858a7adc95d0fb48d98824","0x0FD10b9899882a6f2fcb5c371E17e70FdEe00C38",!1,!1,null,null],["ethereum","pundi_x_token_old","NPXS",18,"Pundi X Token (old)","3045022100d824762a53626ab94124a080b6f4b999230e12b0495b0489fd7ff9d8671f5a1c0220773375c0d8a57cd22488d8e2406e660e29b04219be991c38ba57f7550d5de5de","0xA15C7Ebe1f07CaF6bFF097D8a589fb8AC49Ae5B3",!0,!1,null,null],["ethereum","punk","PUNK",18,"Punk","3045022100c828d9119fd8d9038a686727ac9cf2fbdf690e347cb9b2695602e9446dbf660b02205a21b57e7278ebfd7bc809d6091cd911479611d384f20c004ea6f24f83e7922d","0x9cea2eD9e47059260C97d697f82b8A14EfA61EA5",!0,!1,null,null],["ethereum","punk-attr-4","PUNKA4",18,"Punk-Attr-4","3045022100f4d86fdc85aa072ce62de7c75094cd67479436d673232edb0e655909f772355202206cc4c2d543a8764f84c84c467e60c41b5562b15a7a479e77a53600749ccc73c4","0x49706a576bb823cdE3180C930F9947d59e2deD4D",!1,!0,null,null],["ethereum","punk-attr-5","PUNKA5",18,"Punk-Attr-5","3044022033941c21d5473ea1f4c6e21913c8a790d127442a482fd682f44171e1efe3c91802203a709aa6154264480489c2124d979067402ac6c73c1129d796d7433487e390ec","0xAB9c92A9337A1494C6D545E48187Fa37144403c8",!1,!0,null,null],["ethereum","punk-basic","PUNKB",18,"Punk-Basic","3045022100b88bfd27ecc1e34888bcf7d6295dbc101dbdb5400c020d34cc37d3f3941a7faa0220343562e390505890fdbac356accd59fce17e8d97c320321225138bd705760a6f","0x69BbE2FA02b4D90A944fF328663667DC32786385",!1,!0,null,null],["ethereum","punk-female","PUNKF",18,"Punk-Female","3045022100d9dba85e1458d0faad01741fea733118c1797f64753b3481e9a46809a0158e880220631488c1391c92e1699e4cd5b381b61a323cc726c261cf40f131cf3912bff8f6","0x27Ffed7E5926Fb2795fC85aAab558243F280A8a2",!1,!0,null,null],["ethereum","punk_floor","FLOOR",18,"PUNK Floor","3045022100fe812bf7670c9d1c3941da4e963b9f8eeb80800d1bfa437b169c0d02c526eaca02207d3e316be0636d26ba646e3626e4fc794e35fbd74963007344af950f2c85ba7d","0xB35ED5c39f371F2cd4Bc2eDaB1f8DA314168186A",!1,!1,null,null],["ethereum","pupper","PUP",18,"Pupper","304402205de3a6614cd9e68e350345f2015f3b7729b36b262deb15836d50ee8d43718cf702206002a48e107cddbb4e223b189348f41dcc10131efdb7f9089cace6522117cd01","0x81dBc1c8e40C3095071949Eda9800C2209a7279A",!1,!1,null,null],["ethereum","puppies_network","PPN",9,"Puppies Network","304402203d463c75e9fdc3feb2110a5e88359c675c3df4692ee18a4a005e0ef13c4da6810220536dc3229ee52b5cb047e244a067f68ec6ea1c5a54246ba93a8a3b58e5491c0e","0x95f49ae439537e50CED0374c1B52C42AA899741C",!1,!1,null,null],["ethereum","purefi_token","UFI",18,"PureFi Token","304402203a5c8b983beadbe58569b9890ee1aa4ff70f431b7b918ea9d17e45cfbe90b66d0220189d3f73f14aba5d0f82227a38df5e7cee8c6d55da9df9c47df37920925fedfa","0xcDa4e840411C00a614aD9205CAEC807c7458a0E3",!1,!1,null,null],["ethereum","pureland","PLD",18,"Pureland","3044022068e49a8a006fc3055a47a4162c59bcfdddf16518b0a2e0726e5a44b89327839002202a9011c35dc08d1497b6ea8b147c42bd7a400c65d957d63b9a7b2aa594cbba67","0xe9541c7EA236332f4d07BE73101670F39B27dA02",!1,!1,null,null],["ethereum","puriever","PURE",18,"PURIEVER","304402204dd554f01d1f1566316821c21b891b53bc7cd17d82dc9940600b8125ec39d87302204b377077851a1b932afd339a7ef2c87a4a52e3bb93c3c1cabb6a6b43390e357e","0x2904b9b16652d7d0408EcCfA23A19D4A3358230f",!1,!1,null,null],["ethereum","purpose","PRPS",18,"Purpose","304402203fce9a2fe561e7835776632bb5066dcb248a065b181d77e1bbec05f8b387749d02204aca1790feaaaa1aeac908d0093a92e9efecc087b3b33484ead775bce24464a2","0xE40C374d8805b1dD58CDcEFf998A2F6920Cb52FD",!1,!1,null,null],["ethereum","pusd","PUSD",18,"PUSD","3045022100d3a5db1b4a0401eebd3874c5bae9325cf41fb1ad54654389271348c40609f879022064be94690b8e3c93cfc17c8c275d51d197b13d5931dea8ee7662e8ff0cef4808","0x412e5a36BDE71AA2c38e1c0E26BAAf7F2f0Bc24a",!1,!1,null,null],["ethereum","pussy_token","PUSSY",18,"PUSSY token","3044022061c21b4faa51ab15035aedc0c82bdbd963627014ac288e30b1fa6cbd35c3a7d102200bdc7ed21ae09659f7c963d36c0632aab7154f944d329f7c042c677db23a75a9","0x9196E18Bc349B1F64Bc08784eaE259525329a1ad",!0,!1,null,null],["ethereum","pway","PWAY",18,"PWAY","304402204b0ee2ad374041b1ff0f3e823ba03f370868842ca6301df8f985bcb550f305cb02203443de29e479829f1862e31fce39bb3bb837494a4abd115c20fafb0ce1553ac3","0x5a14fe6923e767A8238f29d3E1FB1a913975F0d7",!1,!1,null,null],["ethereum","pxgold_synthetic_gold_expiring_31_mar_2022","PXGM22",18,"pxGOLD Synthetic Gold Expiring 31 Mar 2022","3044022007376cde6e0b113f2a65d95d8622f0ab2d60e0ecf34b8b1ab8d5353ed2a8e40c0220715246e2ac4767ff4602522e9aade81cd2d8a4fdffd6ebaecf98fb6963425aa8","0x5247C0DB4044FB6F97f32C7E1B48758019A5A912",!1,!0,null,null],["ethereum","pxgold_synthetic_gold_expiring_31_may_2021","PXGM21",18,"pxGOLD Synthetic GOLD Expiring 31 May 2021","304402204fb78a496ac8f6116328a902ec1c37a4d8419230b0ceeab33883990a6735b40402200b3ad605802e4758e61711daddd94a877fc90b5826374c7b1823cca306b3a958","0x59fec83eC709c893aedD1A144Cf1828Eb04127Cd",!1,!0,null,null],["ethereum","pxusd_synthetic_usd_expiring_31_mar_2022","PXUSDM22",18,"pxUSD Synthetic USD Expiring 31 Mar 2022","3045022100eabdb9e26b35552c147b623bbb3a8409df2c8b896a650158149c76846ad8be2c02205f5a1b09382b289addd3c5250087e16af9257642f475c8b05d1a3bae2e93acaa","0x4B606e9Eb2228c70f44453AFe5a73e1FeA258Ce1",!1,!0,null,null],["ethereum","pygoz","PYGOZ",4,"PYGOZ","30440220419c7d3b33ea9afa5022b9f80bbea208d1b8c37f2e701663fd83e591759f93a9022052c67dad91719215b5b50ba8a00781919f464c06edd24ca1e9861c1afa1e8e0e","0xbB98Fc1fD1080D2B8bdaD75c51D30B50c6F59b62",!0,!1,null,null],["ethereum","pylnt","PYLNT",18,"PYLNT","3045022100bb3d042b28a3692e51fd885041b58477c4cdcbf1d934b46be4684311f2842b6502205b309d9588d5fdef93e51ea76c8465fc0dbb5ca510458fbc25c62f7325fe69d5","0xD8924385CD46e6AF6F377871C732BDe2F8e9dD18",!1,!1,null,null],["ethereum","pylon","PYLON",18,"PYLON","3044022017c40183fb62361ceb78d1f4787fe53a482c0f4af82464a4ccd1eb6689e23fb802200292fcdb6ef9f706b7e01ea3159db9dbfe78ff41220575ecb7dbddbf6ede59bf","0xD7B7d3C0bdA57723Fb54ab95Fd8F9EA033AF37f2",!1,!1,null,null],["ethereum","pylon_","PYLNT",18,"Pylon","3045022100acca3707a4b600e3ebfcc6f99a8de3759b8860a2948f3f93b16607c3946b6af402200e9887ec7291e9e9b99bb08546ca7c314b225f2a26d4602fbd8cce1f319f85b0","0x7703C35CfFdC5CDa8D27aa3df2F9ba6964544b6e",!0,!1,null,null],["ethereum","pyr_token","PYR",18,"PYR Token","304402203e431df5d399f629c7000c692afd669b62b627d26eb90b738ee6a2180d75031102205d30e9e03f9ab84bc43cf8b83a0498d623c2cfeeea38daf21af7a93a8bdde0e8","0x9534ad65fb398E27Ac8F4251dAe1780B989D136e",!0,!1,null,null],["ethereum","pyro_network","PYRO",18,"PYRO Network","3045022100c34622549fc8be499d7ca4c8fc588f8e326050424ed73a56ba4ceae40db7e45902204533778da3028b900afa32af651c721d2ad43a2d3d08538c1a34c146e769977a","0x14409B0Fc5C7f87b5DAd20754fE22d29A3dE8217",!1,!1,null,null],["ethereum","pyromatic","PYRO",18,"PYROmatic","304502210087750ddac785b4869412adc6ef04cdd7deb1eb481d9ac501abb1e5e3008da0db022065c6f50922ed5320ffb7fb461978813ba3a886723503f1ab71b1d26b6b5a081e","0x1e2D230C7A7F4C679Fb1378F1f51dEDeAe85Cd72",!0,!1,null,null],["ethereum","q8e20_token","Q8E20",8,"Q8E20 Token","304402202fc7255d6670e93b46f8886ea0c96db5b3185f117958034d654dd8c063038dcc02204e7baf4bea91b173d13ce28fdfaa8a2578856cffa9c3214406bb720e9bb4c902","0xa31f7a32Db329F270A0E6b59558823e64D8eF0A6",!1,!1,null,null],["ethereum","q_dao_governance_token_v1_0","QDAO",18,"Q DAO Governance token v1.0","304502210099b6b07801c46236ad70c670ca3edf426ea1874fa935b46880465e1e66527b040220748291e491342d003ff10c3136b5fd9dc3a526b082254b0a2d7fedaa33a402d6","0x3166C570935a7D8554c8f4eA792ff965D2EFe1f2",!1,!1,null,null],["ethereum","q_defi_rating_governance_token_v2_0","QDEFI",18,"Q DeFi Rating Governance token v2.0","3045022100aaab6bd6d8eb860f17307940e2c5a9cc64ad8546f3e3dd4280ff849372eeea8b022039c3f76a0e5d086c78f788d8eb27eb1f1085b1a22cab45d5eb462ae5d1f3e130","0xfee4DBe2751bF8d1B1B861aAF9664961F19Ce91A",!1,!1,null,null],["ethereum","qanx_token","QANX",18,"QANX Token","30450221008dc0fcf0e60524cb39d2ba00e31e2fb86401036ce9e98b97e36a9f6ab94b27f202207b76283e4459bbc99720bd60ca21f2b995f09edb1ff68096568d34ae47a34c0a","0xAAA7A10a8ee237ea61E8AC46C50A8Db8bCC1baaa",!1,!1,null,null],["ethereum","qark_token_of_qan_platform","QARK",18,"QARK Token of QAN Platform","30450221008ac855156ffa5292ea3bc3e6eed0efd92bd5b90ed98c66420444232fcfe96c6302205a17648644bc98942fced3d606d0f9118153523576482c16f74117e4bbd1a81e","0x63120ccd7b415743e8753AfD167F5AD4A1732C43",!1,!1,null,null],["ethereum","qash","QASH",6,"QASH","3045022100da9cbd126193437d17f59715ed2ee6086459f5cd3e8e63f5e68df42fb2282ace02202227e1d0db3e46f0d1f8b25b153fc16b1d411257ea712b571fab991231e5cacd","0x618E75Ac90b12c6049Ba3b27f5d5F8651b0037F6",!1,!1,null,null],["ethereum","qau","QAU",8,"QAU","304402207c4802b5590cbf2cde78168e0aad5fbc22e592626f6b47d6bcc9f1854a8066f8022043ceda728245683c4d9de5ce3eadead2cecec68cf81f30d0e427efd6691d90d4","0x671AbBe5CE652491985342e85428EB1b07bC6c64",!1,!1,null,null],["ethereum","qawalla_token","QWLA",18,"Qawalla Token","304402205b983bad64a2ddf6f61407401297e32343ca4f33df4724d3d356ee0ca5c986c8022042f8a12025776c1496d88bb1d11221ecadd14a7cba013fc64ad73657687f29be","0x1D96Fd43EE07Aa79f8Fd003cbdF404fb5ce41AD2",!1,!1,null,null],["ethereum","qbee","QBZ",18,"QBEE","3044022077ffb893b67dd41a8b1dd0870f6ad4443ae36652dba42ce040ea43268f7950e60220285c724b11fd5514b8a7c5dfcc0193340b289e17a0f59ebd68667e73bca86ad3","0x38bC89cF1f634C71896620bcD807Af235cBdEcd1",!0,!0,null,null],["ethereum","qcad","QCAD",2,"QCAD","30450221009cd21469fe5e3eb763b19de5e922bebc3d59ab9082570a090bb49d7696e2f1a502202c5af89846a9b4a50e6881017ca15b8c2a3ca93833570202f82de44cda0dff69","0x4A16BAf414b8e637Ed12019faD5Dd705735DB2e0",!0,!0,null,null],["ethereum","qcash","QC",18,"QCASH","3044022021c090d11ec05c44f8c37d8c55b9f61c34f3ec4cee29418f9fedf78165f79d5402200a8b7239f5461f878ad57a8e1db57e172ca0ef2d87dcc034fa89b48d5ae49549","0xE74B35425fE7E33EA190b149805baF31139a8290",!0,!0,null,null],["ethereum","qchi","QCH",18,"QChi","30450221009c86b7b906019fb1d9c4af40644ff85e0c178ec94bebba9156cfefae5f0447af02201698b3b198128527626e08bff7c7fd7030352a25f78d591e11f76be596d09068","0x687BfC3E73f6af55F0CccA8450114D107E781a0e",!1,!1,null,null],["ethereum","qchi_chain","QHC",18,"QChi Chain","3045022100aa256a2cef719217375b6905933412494535e0fb7bb1a60b120f87c34fb40854022029337de8e7da289632c3d304e55ad8a57ac342ad8d0b88f961d6587f12b87870","0x5df94780f00140FE72d239D0D261f7797E3Fbd1B",!1,!1,null,null],["ethereum","qcore_finance","QCORE",9,"QCORE.FINANCE","3045022100ad3385abd061ec20b694c6017003a62dfd2d6e9abdeed3a6377d051d91add52c022016613cbc1a20b898ca50d8a7dce65aa397aa59ef0fd1e78350170f0735975b83","0x82866b4A71BA9d930Fe338C386B6A45a7133eb36",!1,!1,null,null],["ethereum","qfinance_token","QFI",18,"QFinance Token","304402200b5123d43c9e5d3a09657b4bf6631c8edd5355b54d912026df79ba2450a6881c022018d0414a0317b8e0df4c70df6508d68e8c03c25af8791887c23d687902fb5b0c","0x6fE88a211863D0d818608036880c9A4b0EA86795",!1,!1,null,null],["ethereum","qian_governance_token","KUN",18,"QIAN governance token","3045022100ad51a23c414a9fd43619ce9d8f2258cd5272d4b202b9e7f9fa212da16011aad402201a2c23166aa1ac5d102d4ff08ee68caf04a80403b30eef33ae2cdabb769c4609","0x65d9bC970aA9B2413027fA339F7f179B3F3f2604",!1,!1,null,null],["ethereum","qiibeetoken","QBX",18,"qiibeeToken","3045022100c0409f0018acc05df98f5ceea692602099c0261c85e6f60bc607952fa57bcf6202206d9639841afde0bc93dd47765b7b61c50a4390ff839522e48a784ca2a7e43a1e","0x2467AA6B5A2351416fD4C3DeF8462d841feeecEC",!1,!1,null,null],["ethereum","qiq","QIQ",18,"QIQ","30450221008ac84739dae912bd8d105265e1c72f76c8278a4d150890c167840baa8f90e43b02202e9d33d959dd559e64b1374a3b863565deb1dcc54a2e3144983e0715dfefc4e1","0x98Af2e926206F1Eb5Af46AEDDD144727267d0487",!1,!1,null,null],["ethereum","qobit_com_token","QOB",8,"Qobit.com Token","3045022100cf7f0bf21471bf5078c207778b7d75ce588cd9aa78f5688293f149d55e786c8c022064ce5d52ce8fc8493658eab33f75c7ec485127daa946b2d9764ccb4a5b7ac838","0xBd1E7f594600DCAF7f483af55deaCEc0159A064E",!1,!1,null,null],["ethereum","qqq_token","QQQ",18,"QQQ Token","304402204029633dc686253888434d45e2812b2bf0a689b4157e24d8dc76e5c6436d48e0022022a9de9d393aa0f0aaa36ba6afa7271863b43121b54f3abdc5a426daa507bbcc","0x2822f6D1B2f41F93f33d937bc7d84A8Dfa4f4C21",!1,!1,null,null],["ethereum","qredo_token","QRDO",8,"Qredo Token","304402207fed21a2925925b4e63ccae7005b2a44220dd7e1771e4cc188a3d97414ff3628022005216d3c190da2706dfbbc58e7c006bb2e8691d41bc42b48a940c62c9f4b0e8e","0x4123a133ae3c521FD134D7b13A2dEC35b56c2463",!1,!1,null,null],["ethereum","qrg","QRG",18,"QRG","304502210098cf4b655a06c02b1246a3bc35781b484f359f9036408d646e1ccc8d0a0522b8022049eacc9b3175585671b0eca162275a068fa3a2e47bd0ad52340e0e32954ab859","0xFFAA5ffc455d9131f8A2713A741fD1960330508B",!1,!1,null,null],["ethereum","qrl","QRL",8,"QRL","30440220725b2ac15122c388f84f258556e2d7bf44bc687c38ac99adb31e23a97679483c022038156b269e199f1a6e838cac419e4bd028c936b49aaa9498c8cc19b4ffb88cb5","0x697beac28B09E122C4332D163985e8a73121b97F",!0,!0,null,null],["ethereum","qtchain","QTC",18,"QTChain","304402201cfe05c206c288ab4760feac636cd4f35ef486b3a4b4927f7b0a4898a884af0f02202df8b69341d2091d001806729911e51abb679b292f4b9ec165c450ce57b6169e","0x19131a8aE42E32c747c1EAd318Fadb98B0be45B7",!1,!1,null,null],["ethereum","qtcon","QTCON",18,"Qtcon","3044022039a6f1b1938cefe08a22c4aca67c3c687848dc1afb7a4a7f5addcfbacbe84acb0220222f024afdb5ceef6c9e11a0a9d1283e087b387e03f31afad507889e34f1f533","0x1bF7Fd22709733cCD7c45AB27Dd02C7EC8E50078",!1,!1,null,null],["ethereum","qtum","QTUM",18,"Qtum","304402203390225b467813815e3b6c76e1e83a35cef9b1320f870b94b8d08a929c469247022018fd31052b0e9ce1cb3462cc34255e27f47e9d26b090a075675fc7068dcc9b64","0x9a642d6b3368ddc662CA244bAdf32cDA716005BC",!0,!0,null,null],["ethereum","quadency_token","QUAD",18,"Quadency Token","3045022100d5841836115e0df26c0ca8229f0c171a933ac987f4e76bb7ba5e4d253f77712302206edae6339405cc5b01984c5927456f5612e791a9591e2c756fbc2fbdade8dd17","0xAB2A7B5876D707e0126B3A75EF7781c77c8877EE",!1,!1,null,null],["ethereum","quadranstoken","QDT",18,"QuadransToken","3044022046b17b93d326b01cc62cfe44972977662c6c4cd1331046d85bcceb725258ce4602204a5b19f653bd02465c1670172e98d506b8bea9553e6a3cbd50f654413f7d73f1","0x9Adc7710E9d1b29d8a78c04d52D32532297C2Ef3",!0,!1,null,null],["ethereum","quadrantprotocol","EQUAD",18,"QuadrantProtocol","304402203ff8d7a5653bd4a9880ed22b04f00252cafe1023794a6f62a339db79f80d9aa702206487a0478ec67bda714f2d9b87284091db64734b6d3620103d5a28b6c7070739","0xC28e931814725BbEB9e670676FaBBCb694Fe7DF2",!0,!1,null,null],["ethereum","quai","QUAI",18,"QUAI","3045022100b6b7326c89f950d6aba2b8a159d0a8b63cb31cc8d9e9f96bf50df12a4ff764d0022043b237e842ad5bb4fc9f011a646c6dbadd2468ae4c4181163d7c6b23af0343a4","0x40821CD074dfeCb1524286923bC69315075b5c89",!1,!1,null,null],["ethereum","quakecoin","QUAKE",18,"QuakeCoin","3045022100d55df9500ca629d75d3113c808b42a6127eeb94ae19c197d7cc5037e91db47df02206502cb2dbb5418ba319f43752fe236626c8ee33e00b9a24d626ad623821c8ae9","0x35aF993EF3E89C076e41e463Fbd4CD00d3105cD1",!1,!1,null,null],["ethereum","quannabu","QBU",18,"Quannabu","30450221008f0c8a01d2bc5051ce9902ca6a5528442f7bb0a26dcd84689ace8edaf5d09e8302206cb8a0484da371583eba817275cdc050cab5768c1f2d704944ba2ba26d8d2b93","0x44dcf4Dc9Ec228b7748422C51B6C5C57F5f229ec",!1,!1,null,null],["ethereum","quant","QNT",18,"Quant","3045022100ffdf69cb5ca5f2de580a0796d04007bafa4db4a0a6df73d6ba1f3fdb1503f82e022011f94ac54925eea1c6b33861cb85ba3e237f7b168ba32a52f5329cbc4c0aeb41","0x4a220E6096B25EADb88358cb44068A3248254675",!1,!1,null,null],["ethereum","quantfury_data_token","QDT",8,"Quantfury Data Token","3044022078b2777002c4dc6c6f70522af17775633ebb45bb957e06932d45fb86e639ff6802200af6ec9dc574e70ac5de19be151c48b879c86630677a4b4bca7e4fc2cce02426","0xd18475521245a127a933a4fCAF99E8c45a416F7e",!1,!1,null,null],["ethereum","quantfury_token","QTF",8,"Quantfury Token","3045022100cbeea78f9dd78a2a1730e1d7be4959bdf55ecbb8ec67fd988d8ba5c656f5138e022005d78ee2bdf85dd12b5abb1eb879aca1dafbb606a848bb71800eeda58458e2e8","0x0FCbC31c503b4A9eD90E87f8Ff46C318a4a14260",!1,!1,null,null],["ethereum","quantstamp_token","QSP",18,"Quantstamp Token","30450221009b49f70f6ae2fa0caa56cc87108b2749311bf34ba33129df88a3c045c32069980220012b977e7d052d49de851b0b269ad2fdc90f4d0e73863cb2798224e8cc428431","0x99ea4dB9EE77ACD40B119BD1dC4E33e1C070b80d",!1,!1,null,null],["ethereum","quantum_proof","3FA",4,"Quantum Proof","304402202bc45c8b32aa626fe7136f11c6935dcd5fb48d937b5e9dd1b226fe9da22fd216022044872f59dc54b09f9d8b31fa79531977548ff4bbab7c63340762f2f5abd2e20a","0x4263A2f0456305d7d10F8a4555f8c3B593b3b895",!0,!0,null,null],["ethereum","quarashi","QUA",18,"Quarashi","3045022100d83e51da6e92d0aed8fca999faa7c2411abf0e3efb1c0c32f8b1add196427d3e022033457d2ad452e12b2357d4391aa46d09676ddecc402d621b855cdf3e836b9bbd","0xfD0fD32A20532ad690731c2685d77c351015ebBa",!1,!1,null,null],["ethereum","quarashi_","QUA",18,"Quarashi","304402206889c2beed4c74588024882ecbb0813e677aee337d40522017adf8714cf0122402205289f2284adc2fa9dfbd504d0cd4149f50afe9a9f5cc23b726fadcd1089be74e","0xd35c06a2781f648c75290976ecF71E71582188B7",!0,!0,null,null],["ethereum","quarkchain_token","QKC",18,"QuarkChain Token","3045022100dad3020d044bde3dcdb792a117410df16350ee9c72691ba2f3b79879af439c2a022012456073de4f1e4e2f37ae6dfe2ed6f1a09715f03c4106180df432c3b88bfa75","0xEA26c4aC16D4a5A106820BC8AEE85fd0b7b2b664",!1,!1,null,null],["ethereum","qubitica","QBIT",6,"Qubitica","3044022021f9745427ae9108ad7b06f37a3036fba67fdc56ab83144870a5dfbbfc3bfb4502203272ec9ae9a113123e39d06c5afae8c5ffee03b68360c1080b40ace2641f9f16","0xCb5ea3c190d8f82DEADF7ce5Af855dDbf33e3962",!0,!0,null,null],["ethereum","qubitica_","QBIT",18,"Qubitica","3044022003c3fd96891654617b4868211969d0981ac16fc20aeb155bfc5617efb063b3b102203dc2caeaff2501f39ee32d4ea642a2ef8786f00976e985bd38476730fdacb1d2","0x1602af2C782cC03F9241992E243290Fccf73Bb13",!1,!1,null,null],["ethereum","quickmining_token","QM",8,"QuickMining Token","3044022061788e31c38f43268466d47dc2cbe80f0e5af5a0667fc186ca802cfebdc310f002207b9c24123c9d0549b3308ccc425c68c091330a871b021959e54b787f73809941","0xb73404280697080dA0116cFAc0e577fAFdf44b37",!1,!1,null,null],["ethereum","quickswap","QUICK",18,"QuickSwap","304402203f79d38faa2e8ea1856ae1dbbc455e02066f0e0953179c2c00da601a83a17a6f02203d174bea6330be3ef9a951eddc7746a4aacd10bc964e34bb86afc98d588f5969","0xd2bA23dE8a19316A638dc1e7a9ADdA1d74233368",!1,!1,null,null],["ethereum","quickswap_","QUICK_",18,"Quickswap (old)","3044022042fc8f9704aa26c37f76035cd9213b52839b4c23f2a90ec6dd8639fe4c2958be022008a41a9cdac55612926039369b80d73e2d53b8180de84cf6dc4026ac3a49aff1","0x6c28AeF8977c9B773996d0e8376d2EE379446F2f",!0,!0,null,null],["ethereum","quickx_protocol","QCX",8,"QuickX Protocol","3045022100a087d327bc81e35e6853a31ca33dd0b0c8f7473ef9e3304175e6129dd64120fd0220679ae8fce6df069e621a71ae572fa874407dd0a69a22d56ca7bd5312c29ec429","0xF9e5aF7B42D31D51677c75bbBD37c1986eC79AEE",!0,!0,null,null],["ethereum","quidd","QUIDD",18,"QUIDD","30440220012f45633aacbcc0af06bacdcbe7b6d9f14f3a1ff362b03302f0f239e1aeb79b02203f362868de236e1ac99f04bc7d04f95719db6f461b9d48c24147530424bc0bc6","0xDA9FDAb21bC4A5811134A6E0Ba6CA06624e67c07",!1,!1,null,null],["ethereum","quinads","QUIN",18,"QUINADS","3044022077f3e73b11a0215f787700b67ad8695bd9a58875ef42bda6bda0996279cfb430022035d6399f773ba705863824e46fcaa26bda2c7ecf3fd5898962caecc1f9ce0392","0x86E44543164D9b97B14ef7f6f3aB7bA670CAB346",!1,!1,null,null],["ethereum","quiverx","QRX",18,"QuiverX","3045022100ddba4c5b237aa3cd1b9d900b509f72c8cd7fa3a44c8c6496cb5ad22e1ff19704022048f21f84c9d3c6204b450b75b4886b6e4219fe0e3f347e84986b86f3d17f5e43","0x6e0daDE58D2d89eBBe7aFc384e3E4f15b70b14D8",!1,!1,null,null],["ethereum","qunquncommunities","QUN",18,"QunQunCommunities","3044022010105dd930bd50a8a313a74cb4114123b90d0fdb2b9f425dd99e671a9dca637902200f1310cfafb261ae3c841aa5a88dcd24479f81f77d6579e9ee880c1cfa82f43f","0x264Dc2DedCdcbb897561A57CBa5085CA416fb7b4",!1,!1,null,null],["ethereum","quoxent","QUO",18,"Quoxent","3044022040afa75aae0d3ec6b0f62f79731fc3b266cfc2702cdd3f0d2bfc673133f4b9ed022062fdcf54f160f720ee02a64d9ec72214b439b5114dcf1c2377472327665c5dae","0xefd720C94659F2cCb767809347245F917A145ed8",!1,!1,null,null],["ethereum","quras_token","XQC",8,"Quras Token","3045022100d5f56d0f2f843a44a3008387d843da7f986cfa24bb37b26ec940e2dc684c282602200179da3ae62ae1d17229a99245c7b42c8ad00412f26ef9cb71fe6bf3c4db8973","0x70da48f4B7e83c386ef983D4CEF4e58c2c09D8Ac",!1,!1,null,null],["ethereum","qusd_stablecoin","QUSD",18,"QUSD Stablecoin","3045022100969c0a649a39d2bbb08509ddfec1b06f245555384f315482c614eebdcef92a460220715ac7bf60d01f67a3dd85e824874212fe9101ea59a382096067fb1b50effea1","0x59d4CCC94A9C4C3d3b4bA2Aa343a9bDF95145DD1",!1,!1,null,null],["ethereum","qvt","QVT",18,"QVT","3045022100e55e72672a1cccc81adf0ba21a51c28f81ad834f9a05c453bf6f106b2d5f90080220277de5111a27f142463d894caaf02cfe969440cdd7094717de732f0dd6d182db","0x1183F92A5624D68e85FFB9170F16BF0443B4c242",!1,!1,null,null],["ethereum","r34p","R34P",8,"R34P","3045022100a1166fb773d591e35c245312cd92925da6dda515ef214757fd73ddda2582a8e502206f580e1948ab5b2c666713adce9af50b80e61fd8badbde43ef68364023784c82","0xCAEaf8381D4B20b43AFA42061D6f80319A8881F6",!1,!1,null,null],["ethereum","r3fi_finance","R3FI",9,"r3fi.finance","304402200a3a3c5d912d0e3850380fa777daf27d2c28e15fb0e4142eed7a4af5c90721cf022064634c8d30a3b46003b105e790393d05e5c9cf7a771528fad6b7ca13907873da","0x13572851103bEd49FF743AF4C4BB5ace88B22E2F",!1,!1,null,null],["ethereum","r64x_com","R64X",18,"R64X.com","30440220599bcbb43b961fecc3498d4915b7f85db660175d9eb3b451aa56739283d81faf02202edc4092edc59767b09422e3a522cc1c0e696c2ea3bfa9dcbdc1c9913d63bc76","0xf3110b27f481F9aC3c1Ba3C54dE542AcCB2D913C",!1,!1,null,null],["ethereum","rac","RAC",18,"RAC","3045022100d8b922cb6bea5d09f7470ea4bf46a7cb1926266e0466d4463e8ab840202ca2ef02205185bb844d6657e4bd6778504173133918fbdc0ce8d3901b52a22d71ac2d0c3a","0xc22B30E4cce6b78aaaADae91E44E73593929a3e9",!1,!1,null,null],["ethereum","racing_pigeon_coin","RPC",18,"Racing Pigeon Coin","3045022100e182bd49c6c66f9b15ac9049635ca8f42b753588d3438c2156718c023f3d920802201af7c64f4f210436ccc5fb6f4a3ca7ba7abc4ecfb3c00e5ebb2b0afaae242bd3","0xf18aF466F8885f9Ea93D2b85c47a427cB01bAD52",!0,!1,null,null],["ethereum","radar","RDR",4,"RADAR","304402204a37262ab636be7eb693d07f92a905f7fb995db83c6b2409cbbecbb000285d49022070b39172f841cf7c99949916db0f4cc44f33f13b4b88cae445eae8a38da92be6","0x3C9Ca73d5309d38c6F2C21b78b9aE1f4b2441188",!0,!1,null,null],["ethereum","radicle","RAD",18,"Radicle","30450221009c0bf9ddcb6c83c6526f450b9f1f33cd0cce3bbbffcee3fa093b6f3abeb4829d02205f28911414a5bb10e79a47aecc77ebd70f89ac3741da50938b7dc0455df2ef31","0x31c8EAcBFFdD875c74b94b077895Bd78CF1E64A3",!1,!1,null,null],["ethereum","radio_caca_v2","RACA",18,"Radio Caca V2","3045022100cc63c0e5ee46e6bdcb20eb9d5af40b28b7cd440e4cf9156aaca0316ac6c211fc02207b3792acd398398cd9f9cfe4f5e3bd8a8a2f34be3d9d3e2f97868fe5e310f922","0x12BB890508c125661E03b09EC06E404bc9289040",!1,!1,null,null],["ethereum","radioshack_token","RADIO",18,"RadioShack Token","3045022100bcf641492eef1365fa8952a42cefec9a64dda83e66326b34c567d64914e06f5d022006741f86f1752a502cea833facaadf12481dd983790ef5fb168c07a0c3a87cfc","0x7a5d3A9Dcd33cb8D527f7b5F96EB4Fef43d55636",!1,!1,null,null],["ethereum","radioyo","RAO",18,"RadioYo","3045022100b023f22ce80a3d51056f5890a97a2faf2fde215811c84a5a4533030c6c0ab0ec02203767258ef393d1194e74bc099929e0e37c16aabcdb66914e35f95bd9da46d6a6","0x45eDb535942a8C84D9f4b5D37e1b25F91Ea4804c",!1,!1,null,null],["ethereum","rae_token","RAE",18,"RAE Token","3045022100ee64531e22963c44e40e141b2d34f1fde9530d020d70352195a9372b8f4986aa02202841ba8d4058104e776fd6641bb15a416f5c19b768da107453304897bae5f951","0xE5a3229CCb22b6484594973A03a3851dCd948756",!1,!1,null,null],["ethereum","ragetoken","RAGE",18,"RageToken","3045022100ac637dd6a7deaa9c281e4de1df31e98e7bdd876f0921f3b372c7aea5aca56559022074b910725475877e3a5b68123c03737e7b24e8d4c394600188d7af4a4d86201b","0x94804dc4948184fFd7355f62Ccbb221c9765886F",!0,!1,null,null],["ethereum","rai","RAI",18,"RAI","30440220057762f95c18b2eb9af9e1b616221c50ad0baf5a447ddd195dfb328a7ce810e00220731e029dfb814a77ff28ac7e4138cc8cc4774261f22c8b9f81855cf624c8dd88","0x4c9BBFc1FbD93dFB509E718400978fbEedf590E9",!0,!1,null,null],["ethereum","rai3crv","RAI3CRV",18,"RAI3CRV","304402207858f7347de1d78b7c9014a03a1acdb702d60b61fadcf0cc8085fcdd81b2745502204d72f4643ea253aac06836fd03fa481df74dd4ad1e512dc04dc8ec0abfd0d16e","0x6BA5b4e438FA0aAf7C1bD179285aF65d13bD3D90",!1,!1,null,null],["ethereum","rai_finance","RAI",18,"Rai.Finance","3045022100cb80678dff5c16bd89a98650fcd03e1fe578886aa5d97bc3fd31269c01bf4a8a02205da1390234402a63896154f07ac2a45424ee90cdbaf0dad805e36b19d5b4016b","0xf30547ff2Df1F1CBE5C8DD758B3dd098C856e38f",!0,!1,null,null],["ethereum","rai_reflex_index","RAI",18,"Rai Reflex Index","304502210091e238e423e245ccb0a2e810ae4e93a75a4622ecc1b3c40961d56863da10115802201b10eed59bd358c6523ffcb26c9703a41468bc9364e647741953bf399a4edda7","0x03ab458634910AaD20eF5f1C8ee96F1D6ac54919",!1,!1,null,null],["ethereum","raid_guild_token_\xE2\u0161\u201D\xEF\xB8_x008f_","RAID",18,"Raid Guild Token \xE2\u0161\u201D\xEF\xB8_x008f_","3045022100922ce2b3bc76a4b657ee866e48d56fdf661f5143e1afe1d747ab6b1159916aaa02204dea03cb106d2836b13b59a1cb846d92bb0e86ba94dce59a1b02dce1617f2451","0x154e35c2b0024B3e079c5c5e4fC31c979c189cCB",!1,!1,null,null],["ethereum","raiden_network","RDN",18,"Raiden Network","304502210085cb77a3ef969f6a29ba426192f3d18eb48f518ad19cb9c5fa421b68eaca16ec022073c97271adeb5bb695ad9c9129d11380ae491560ea5918b35e817c437519ca9e","0x255Aa6DF07540Cb5d3d297f0D0D4D84cb52bc8e6",!1,!1,null,null],["ethereum","raijin","RAIJIN",9,"Raijin","304402204b0a92d1e36b24cea83577b38f6649ddca096c5cf5872d26c078180b4eb93e68022077283b95c165f2c2cb4e313ab27a7136b0e2250128d5a85a39dc4b52ad8b7bbf","0xC87E2B27f7477668Cc7b97e929953802590049f7",!1,!1,null,null],["ethereum","rail","RAIL",18,"Rail","3045022100b6fd5aa41c4e4d15b21d641c84c06f43f80f14046d2fc005f87123b337f18d7902202e3da183f454ff86482cf7a19d5e5910d61ef273b8ebfe2226f3ff1463f51ab0","0xe76C6c83af64e4C60245D8C7dE953DF673a7A33D",!1,!1,null,null],["ethereum","rain_network","RAIN",18,"RAIN Network","3045022100c33e8ae1da009abfffc2fcdf188744ca808d6ee1d63fcec2552bd72c009e5fcb02205be3fe1284c46e097a430dcc8c61ffa2b936a995a4aa1f02abf50106737d1e6b","0x61cDb66e56FAD942a7b5cE3F419FfE9375E31075",!1,!1,null,null],["ethereum","rainbow_token","RNBW",18,"Rainbow Token","304502210085b188156d40509a793d92f0cbb94c2f23b7c57dd2a7491775f83a7ac4e1f83b02201fd978a2c1edc5352fb51cf6822d73d62b64b2a1be42eb6fa75bda2a1ad0c362","0xE94B97b6b43639E238c851A7e693F50033EfD75C",!1,!1,null,null],["ethereum","rainicorn","RAINI",18,"Rainicorn","304402205c82b3a7d008355b6e4d406cec303a374c28fa787d911e6d44661e0cab8b0c9a02204d9e61d1cad2c1749a0c0caba33f7879d4a947095155a4c8d4c937cabe1798dc","0xeB953eDA0DC65e3246f43DC8fa13f35623bDd5eD",!1,!1,null,null],["ethereum","raise","RAISE",18,"Raise","304402204907636d3afe8482f5ffd57f17ce038d0aa5fa66b624bb030fbc6291883e2cd10220263f52467e20ae2820681902b235964036f2bc6f3900a5d8688234155c40e102","0x10bA8C420e912bF07BEdaC03Aa6908720db04e0c",!1,!1,null,null],["ethereum","rake_finance","RAK",18,"Rake Finance","304402203faee8f357b251c37e6ff5da12d3dcf3d5743fc9bc2cb00c43ffaaec0f247d5402201d08af17efd4db48e12b08eace3a41785a4db58a1131bb15508a2b41a26b9a0b","0xa8B0F154A688c22142E361707df64277e0A0bE66",!1,!1,null,null],["ethereum","raksur","RAS",18,"RAKSUR","30440220033fd3fd58a1d2db5f7e889643577c650ebc20e577e27707a6bf32ce4898a794022075c2b6999f235ee1811d6437078b959df8e3a9ba5a382bef741d47c88943ecd5","0x393fAC0773C765c80dc887451377d553C46F83b1",!1,!1,null,null],["ethereum","raku_coin","RAKUC",18,"Raku Coin","3045022100f3044116ca6811a0b41f0489086471ff444d66dd3afe68c2ea8112122364b21a022077ce6cda54f920ffd07d942edaa5d660b90281fc601dc3869abccb14be01d980","0x714599f7604144a3fE1737c440a70fc0fD6503ea",!1,!1,null,null],["ethereum","rakun","RAKU",18,"RAKUN","3045022100d56b7b68a23390b5441ea964bd73bc5e9cc9c8a677a1a5c359d97be54bd5bd8402201164f40be69f472a867b1ee05247257df7f1a106d4f6588d244b018dc9a0fdc2","0x51BC0DeaF7bBE82bC9006b0c3531668a4206D27F",!1,!1,null,null],["ethereum","rally","RLY",18,"Rally","304402207f54958e89e106ca4451dc831a45e878553339c796891d8f59afd04cac8a454702207875f3c3e9c2242194cacd244b6ff47dfcb065d42e51c0ce15c3606f5afabbbe","0xf1f955016EcbCd7321c7266BccFB96c68ea5E49b",!1,!1,null,null],["ethereum","ramifi_token","RAM",9,"Ramifi Token","3045022100b9e23adb1f84d3e2a165be1b182dfb65dfbf2f5045ea81a675572b9f8bb57e7402201d36ccf5ece9c1cb5558670ef5d94d085bc2e17805363e10229214cddda8c8fe","0xac6fE9aA6b996D15f23E2E9a384fE64607bba7d5",!0,!1,null,null],["ethereum","ramp_defi","RAMP",18,"RAMP DEFI","3045022100ac29b68441c5e15aa7df8adc36226b8a988d5a82302ec1fcad934646ac19b103022010cb5330e1ffc834a506ceb395a0d71b11e0f11586298e64c7b941fb8a4319c8","0x33D0568941C0C64ff7e0FB4fbA0B11BD37deEd9f",!1,!1,null,null],["ethereum","rapdoge","RAPDOGE",18,"RapDoge","304402205cf7d0db23e70ac0b50eb6d05fdba7746e22d1bfb14f8822984bea0a3eaa351202203faa4ab9f2bce65cf99f5bf3ddb256ef4e585f9296f072579b38d440bbc3e719","0xD8dae35B487E3453CFFD998c6754713c81B0f200",!1,!1,null,null],["ethereum","rapidly_reusable_rockets","RRR",9,"Rapidly Reusable Rockets","304402203a2e4b7a1721b6a0f75ff3d9e08f437245ccbf1c112f5413d5adac515fc2c73402206e32317235e6cc40acbb98507125612124b4f3bdac0ecac46c69ea35880a691b","0x1306C7d95E59CfCDFF7AE3C13Db7F56AcC543815",!1,!1,null,null],["ethereum","rapidz","RPZX",18,"Rapidz","3044022029031ead2f095d7cec8cb8ecfc90f6deb1fc58e07bed619e5d9e179fe9c4081a022039b36321f33446b193c50f8b6a8a42afde6dfb9870183f032df14c3b0790ee9f","0x68350d30D9F58C81aaaA41929f1bfC52FFf4Ea49",!1,!1,null,null],["ethereum","rare","RARE",4,"Rare","3044022019a4669cc496aae4e11c61aa0ed9a658f634ec75ab9de4685a87a33dce7df15702205457f4b18c216eeb965277c4368465da379ee273cf70462fc571ad924f31306e","0x81B1bFD6CB9Ad42DB395c2a27F73D4DCf5777e2D",!0,!0,null,null],["ethereum","rare_pepe","RPEPE",18,"Rare Pepe","3045022100beb4edf4e709224a200e1ad3d938be991f7ab76081ddb4947381d42e6bd20af90220585013dd02343da5704cf854f1fb63dbdc08d6a41fcea81de1e8582a215c0bf9","0x0e9b56D2233ea2b5883861754435f9C51Dbca141",!1,!1,null,null],["ethereum","rare_token","RARE",18,"Rare Token","30450221009ff5cfc6612acc6c36ba86ba7fb1e09d75969bbcd8586d23a5a98b02a852ed7e022004fe5e2cc647166686974d1c3a711f3875074d59b71fa364537e4d80d0cb955e","0xE7dF28376f0c44B58396FDa253132321021e08cf",!0,!0,null,null],["ethereum","rare_unique","RARE",18,"RARE.UNIQUE","3045022100b0917d7fcf3c70cba3c756e76308825ffa7fb3ece3501afbf98c2a86056109a7022055e08f86112073d32e84d1fe76a99f9a1685c09ecbea8bd3bfceac5df6455b2d","0x93dfaf57D986B9cA77Df9376c50878E013D9c7C8",!0,!1,null,null],["ethereum","rari_governance_token","RGT",18,"Rari Governance Token","30440220390a651fca93ea0fbabfea40ff4a5165f45b298ac93405681bfecbe3d53366810220203e2513e9aead301c65fdbb9e19273faed868aae0cf15d3854f499479aa793e","0xD291E7a03283640FDc51b121aC401383A46cC623",!1,!1,null,null],["ethereum","rarible","RARI",18,"Rarible","304402201b32dd9a10e29c934da652e5a53a288e2fe9ced98a8e4b04e3c7c35a8efceb14022023f039efa9c2e5442a2ad634230965668766a3921328fb746b08ae2c16a7f059","0xFca59Cd816aB1eaD66534D82bc21E7515cE441CF",!0,!0,null,null],["ethereum","rate3","RTE",18,"Rate3","304402206b94fc1a5babcb44e63e765648e25f990248995804da2e899fb15594e0e6c52902201602e6ae8a11c94879e632e00da23da9e99586dbf23767e93538d415813cca3d","0x436F0F3a982074c4a05084485D421466a994FE53",!1,!1,null,null],["ethereum","rating","RATING",8,"Rating","3045022100a770ff6b0e1db26dff87a53c29fa0c63321829324a3725b8e38af2e4cc31590d022015ec0e6efad92ec04bce1613fc3241ca2da7c74d9f746808321d3cdc7cc37a9c","0xE8663A64A96169ff4d95b4299E7ae9a76b905B31",!1,!1,null,null],["ethereum","raydium","RAY",6,"Raydium","304502210093cef884737c750a28f8cc3c98dac941af463f03b3d1b5b1aa43f093110d71d3022025f50f9ead65452627c87b916b80a80704fa21c9e0710708672e516b3570f6c9","0x5245C0249e5EEB2A0838266800471Fd32Adb1089",!0,!1,null,null],["ethereum","raze_network","RAZE",18,"Raze Network","3045022100986970af6c090cb0c02225b48f9d950c3ecdd970703e8d6eaf7b39f6970c434602207c381707c99d3efe9ae12a4191052a5f653ceac9a9c24dc23844807ec14bfe38","0x5Eaa69B29f99C84Fe5dE8200340b4e9b4Ab38EaC",!0,!1,null,null],["ethereum","razor","RAZOR",18,"RAZOR","30440220103bb07b6ad4f7826c6e61a8394271ea3ada4933c294504ec27d86904860e05d022038c04f96f965696fe63e9e0b3dbc19b9ad40c003d223c5276c0050fb77dc81d0","0x50DE6856358Cc35f3A9a57eAAA34BD4cB707d2cd",!1,!1,null,null],["ethereum","rbase_finance","RBASE",9,"rbase.finance","3045022100d093502178678676f945aa6b7ed76886ce85476c67d1aa2d327fd019ec36649502203275e0198684a235317f7dc2f90e2910f7c2e8972e69251c3b8d50321f8403e7","0xE8b251822d003a2b2466ee0E38391C2db2048739",!1,!1,null,null],["ethereum","rbx","RBX",18,"RBX","3045022100cad70da391c896ca899f1e78d1206a6872cf886bba57e373b976d11e72c557770220795d00a50c420eec24e1b02cd7455ba62494d609fe2e11ebe356139d31480a29","0x8254e26e453EB5aBd29B3c37AC9E8Da32E5d3299",!1,!1,null,null],["ethereum","rccc_token","RCCC",18,"RCCC Token","3044022055723885205432fd7e12a062c34f0960580dfea6434219102e24622d643fb1ce0220287d46da0bdd91518183f33c7d423867e5bfbb6e036e44083e99e93ca6a40d5b","0x33bFD20660eeAF952E8D5Bc3236E1918701F17D0",!1,!1,null,null],["ethereum","read_this_contract","RTC",18,"Read This Contract","30440220620585633f549171daa66efb310d028af20d7365b8d6178f087de7f1cfb2242b02200a5131ca7182041afb16553df48d40f64ee40c12cc22f6b2ae861787d97cc507","0x7f9A00E03c2E53A3aF6031C17A150DBeDaAab3dC",!1,!1,null,null],["ethereum","real_coin","REAL",18,"Real Coin","304402200451b6a37a7ee58a7c176e9eba028db994db60c6f276f89489098eceba1b5a9002206943f97a8ba3f05ee05bcbe134d9e8115f9a7eeeb75b0fa771a76c0e5b88e766","0x6b4389Afb3e243A65668B7311fA9Ef092A8a3B64",!0,!0,null,null],["ethereum","real_estate_asset_ledger","REAL",18,"Real Estate Asset Ledger","3044022019446854082ec02883a1696a0030721a7429c752002e437f685c5bf42f3ac4850220100ff65c88c8f3badb927b44704fdb8600d1ba6688994dee71310253fadbb235","0x9214eC02CB71CbA0ADA6896b8dA260736a67ab10",!1,!1,null,null],["ethereum","realchain","RCT",18,"realchain","3044022048c5eb243ce3dc6537462d21e816ecc97ed740007dcd3a6b4d97de1478882d4302206cb0d0025eb54c747f8a072390c8b50d2b5fd7e856078161d18d92b3ecab8a38","0x13f25cd52b21650caa8225C9942337d914C9B030",!1,!1,null,null],["ethereum","realio_network","RIO",18,"Realio Network","304402202811211fd3123b6daa03550f8a25730b18bfcf7756ff24021be5a45269ec65cd02203f3ac7f3eb35b3cf727027258e22d281fde1ba090fd884a7461b38530ef325e0","0xf21661D0D1d76d3ECb8e1B9F1c923DBfffAe4097",!1,!1,null,null],["ethereum","realisto","REA",18,"Realisto","304402205eab824151cc998fabf6e2640d3f4638b60d8d87b3567f71bd1a425d4f8eed16022058e0540cef90ef653d5be6c406a751a01a5940dac71c3585f8a97cbb31c5e62c","0x767bA2915EC344015a7938E3eEDfeC2785195D05",!1,!1,null,null],["ethereum","realland_token","RLD",8,"RealLand Token","3044022013cf26df640e2591a057f6f960421ee772c1336c4f46b32ea43e7902a5aaa54d02203e331072394058aebfa91e800499ed02f30e372f8e7c14ff223ae6ad2c8fc936","0xd1632eFa392925089785B43410C529F8959A8D9A",!1,!1,null,null],["ethereum","realm","REALM",18,"REALM","304402203161a96645d028193d69a448d060f9d7aa8bf7958ab3fa623850b96654c5e103022041eadc6c4c7399e5fd65dda68ac2766869a330849d223b21c08ee7c9b4903d2b","0x464FdB8AFFC9bac185A7393fd4298137866DCFB8",!1,!1,null,null],["ethereum","realtoken_s_1000_florida_ave_akron_oh","RT1000",18,"RealToken S 1000 Florida Ave Akron OH","3044022003111ab2c2f48652643e35f9b321c28780b42091c77cb27c7e338e4cc9f1482d022021f7e117939bc6f7ab53cda27b5e682b787659ed6c434461e25574f924ae2653","0x1Eb16EC378f0Ce8f81449120629F52ba28961d47",!1,!0,null,null],["ethereum","realtoken_s_10024-28_appoline_st_detroit_mi","RT10024",18,"RealToken S 10024-28 Appoline St Detroit MI","3045022100f61a6adcf7dfae065e7fbb3ab343fe11fea34154e97c452325badd1e686508cf02201e71aed41ee3e359992b3ffb4b2057324665191a4e1fb2bed9f192cc8c9a32df","0xB5D30c28F87acf675Ed5B9f343E5ffF39eC9942C",!1,!0,null,null],["ethereum","realtoken_s_10084_grayton_st_detroit_mi","RT10084",18,"RealToken S 10084 Grayton St Detroit MI","30440220308fdbe9c9ada4dfa889c58bd3118028c9b24ce7bfcb9c20c02adeddf7b7d1e202203960c5df17c531e13d0323d7625a37415a579314c2cd75121682956df78b4eab","0x92161385C9dE8798ad5fB01c0bE99fFcbC84dFD8",!1,!0,null,null],["ethereum","realtoken_s_10604_somerset_ave_mi","RT10604",18,"RealToken S 10604 Somerset Ave MI","3045022100da276c42739d27959d4fe3ddb6cc872b610d955a6bf9f2b39e9914b06a3d34e8022063f184911d0630c4af41d8fe0cd5a1d5a14af6810786f0014928ef4c6a67aa7b","0x8626B38267e4FC0D8C92E0bB86F97Acab3f6AA05",!1,!0,null,null],["ethereum","realtoken_s_10612_somerset_ave_detroit_mi","RT10612",18,"RealToken S 10612 Somerset Ave Detroit MI","3044022037794b555e74c18e2fd0909b9459038e68516af0ef4467d94bfe90c1600d08ee0220020776c72091214e15e3e630406e2023ad020e470c834683dc1f75a63b695562","0xD1c15CEbfDcd16F00D91666bf64C8b66CbF5e9b5",!1,!0,null,null],["ethereum","realtoken_s_10616_mckinney_street_detroit_mi","RT10616",18,"RealToken S 10616 McKinney Street Detroit MI","304402201f02a68dc1021a712c786b0cab73df9a75ec9775d23f53a78130a5675de6ddd4022033af90b0d18d5eae672bfc7aac1d323b7809f68dc38e4e94cf496408004f7bed","0xE5Ce63AC9a08c1EB160889151cD84855F16C94d2",!1,!0,null,null],["ethereum","realtoken_s_10617_hathaway_ave_cleveland_oh","RT10617",18,"RealToken S 10617 Hathaway Ave Cleveland OH","30440220724011e98fdbf078f7588684a11e8f300d8e66dc04d1a16489b4980ee995c91e022071d59c793d293cdac98cfeb1b20e0a894a3b72f4f3e998b09cf337fd80bfddf3","0x06D0e5Aee443093aC5635B709C8a01342E59Df19",!1,!0,null,null],["ethereum","realtoken_s_10629_mckinney_st_detroit_mi","RT10629",18,"RealToken S 10629 McKinney St Detroit MI","30440220442e4d57f9235908994c61c6c7c943c25ff72d5a9ad182ef7b74b5eb221ae9d202201acf4c52ec4537ee3d4918b11a7593f52a3113ae73ee775dcc9ed67f026a7aab","0xD5d1adf54Fbf73a00b197DdCfDAD7cc27D93002f",!1,!0,null,null],["ethereum","realtoken_s_10639_stratman_st_detroit_mi","RT10639",18,"RealToken S 10639 Stratman St Detroit MI","3045022100d529a9f9a22328cfede6fe904afbd8c5acc6b590522a87d0e83da3f7afa6df7102206583a2d5a30265696fbf77780e9c7080c7867ec974a1d66c31449c8be132a5b8","0x4a99cc509f7FaCF58D7B67E99236dB5e0921ef81",!1,!0,null,null],["ethereum","realtoken_s_10700_whittier_ave_detroit_mi","RT10700",18,"RealToken S 10700 Whittier Ave Detroit MI","3045022100f1de74eeeb9e0873b15fd4979b2002921d035de165a898afba6e05aa71e6977002205cd5d7f96a9b802d4f2c5a7cc177877972948802f717175c9b1f5f94688f4414","0xe82CBb7C29d00a4296EE505d12a473C26cd9c423",!1,!0,null,null],["ethereum","realtoken_s_10974_worden_street_detroit_mi","RT10974",18,"RealToken S 10974 Worden Street Detroit MI","304402207864fe8554e283a764f5441e6f0c1c7dbf94250516bb9362854526d4930d2469022049966d0aaffa859725b4568f9f0807e7df284efad872f7ccff724710ee6af42a","0x42B387CDf0951A0e08336D35651544c47cD05C95",!1,!0,null,null],["ethereum","realtoken_s_11078_longview_st_detroit_mi","RT11078",18,"RealToken S 11078 Longview St Detroit MI","304402205529708cae02417fcf05ad375989c03532da7a6e6bc094b74329d6796f4d8e0302204c975c5ac2180a41eb00bc0d971120498717df7ee1cc2520b3f988b2dfb3c954","0xD5Fc0C4C4C5ff316e1E91494d963Ff1D52Ba25fF",!1,!0,null,null],["ethereum","realtoken_s_11078_wayburn_st_detroit_mi","RT11078",18,"RealToken S 11078 Wayburn St Detroit MI","3045022100a6935fb8e7c8b2e352e39f8562d10f001a49e570b5ebf5c6af4c6edf135c230a02207e5e0e226dd981fd29b3f6de38b50281dea697135fa64f4b1033bd7a47f990fc","0xb8403b7730368942a5BFe5aaC04a31B44015b1cc",!0,!0,null,null],["ethereum","realtoken_s_11201_college_st_detroit_mi","RT11201",18,"RealToken S 11201 College St Detroit MI","304402202156f81fc366f0481cfd7ca71714f1bdc07d533cf971a48e7bce464364e24f6d022030861c185bbda04561558d7b627065585ba064b54334b7be99686f005433a2f2","0x5E2a09064B2DCa8c44aaD8A5b69a69Bb1854fE72",!1,!0,null,null],["ethereum","realtoken_s_11300_roxbury_st_detroit_mi","RT11300",18,"RealToken S 11300 Roxbury St Detroit MI","3045022100eb2fb7f4a249f1d20d5f3ed3ed1326db0140d3ee1aa8cf80db9c9afe9c32b3ff022002c16236cf9f9dd22fe85ae9291793d761e517f940365bcea0fd21b964519a9b","0x9b5B4886033B4ABc5Eb0552ffF7c15A67C3c47C7",!1,!0,null,null],["ethereum","realtoken_s_11653_nottingham_rd_detroit_mi","RT11653",18,"RealToken S 11653 Nottingham Rd Detroit MI","304402203cddf092a3851764f193f8704e8b7ef7058364dc454a1fc7a7de7650525581c802206b78a994f843ba328f22fe75c4771606e1a5a088889c322fb0b96426c461bc52","0x31820af2d43c08BD82Bd94B08974062482bD98D3",!1,!0,null,null],["ethereum","realtoken_s_11957_olga_st_detroit_mi","RT11957",18,"RealToken S 11957 Olga St Detroit MI","3044022017e1d6186293c57abb54e48eb9dfaab327ff06a6a0c4fdc1f80e36643adc68de02207878c9d1d14983a2bd4afe3828be5b076f6add899530ad1a16b1ccacaa2ceb08","0xDd833D0eEF6d5d7Cec781b03c19f3B425F3039Df",!1,!0,null,null],["ethereum","realtoken_s_12334_lansdowne_street_detroit_mi","RT12334",18,"RealToken S 12334 Lansdowne Street Detroit MI","304402205deceed5875fc77b031f75dc9c5d367c03c5d1d97dc00024a8bb9e37a1bf599a02200b69f45b52bf0b7d784697bffa21d75506a568d2f0732affdf8e7e656afb2f6d","0xEe2f2212a64Ec3f6BC0F7580e10c53CB38B57508",!1,!0,null,null],["ethereum","realtoken_s_12405_santa_rosa_dr_detroit_mi","RT12405",18,"RealToken S 12405 Santa Rosa Dr Detroit MI","3045022100c764d63f532e30b76763a4d0dfcd1b5e894f3cc3b08dbf869df5ac80bb1ed34c02202eb73f46eaff2a345c73183d7e527aedca996685dade9a0c386752ae10e91e3c","0x9D918eE39a356bE8eF99734599c7e70160dB4Db6",!1,!0,null,null],["ethereum","realtoken_s_12409_whitehill_st_detroit_mi","RT12409",18,"RealToken S 12409 Whitehill St Detroit MI","304502210084b02034a87b7897d99d83bc8ed0799eef5dae008c0642dba7494a52267141560220644b348f3af0f55e3cb3f817323e7876f427433b5d64d6a56c9bb2b4db3e9412","0x969d42ad7008e6651E1Fd52742153F8743225D98",!1,!0,null,null],["ethereum","realtoken_s_1244_s_avers_chicago_il","RT1244",18,"RealToken S 1244 S. Avers Chicago IL","30450221009005844cdf1b34a88bf9c83affb7bc9ed3effbab51a739641d1717000c8b2c23022042d6344bb197c82709584d1c880be3fd90b2ccfd3e8c25fff84d3a263b4b4faa","0x94Fa7F8cb8453AD57cd133363b3012044647078C",!1,!0,null,null],["ethereum","realtoken_s_12866_lauder_st_detroit_mi","RT12866",18,"RealToken S 12866 Lauder St Detroit MI","304402206109230fb9dddd6240397d9ed52453100dc4abc1dd1118790f7674b42161fceb02201ac240c7c04544cc59ad44633eb0ccfee2d01e18afb299af8579f9a781b481c7","0xb5DD2b6E0A0422e069E1D2CC3Ed16533488a05e3",!1,!0,null,null],["ethereum","realtoken_s_13045_wade_st_detroit_mi","RT13045",18,"RealToken S 13045 Wade St Detroit MI","3045022100efff5d0ab19e68b8948f0ee1ac733a51a9a10980c2cf42e7c65e7b402909bfc802201a34c5ed31af89bd3e6d642f06df2ca5723329f9a95a799956de1455c32d5652","0x5600e25b4f24c63Afa655C3bd96E3C178B654Fa1",!1,!0,null,null],["ethereum","realtoken_s_13114_glenfield_ave_detroit_mi","RT13114",18,"RealToken S 13114 Glenfield Ave Detroit MI","304402204e5e96643203bfe778931ae69fb12c6d66f767c3930d920a84caf1a14913a192022020bf9d062af8c43061fe1f2a5b193e17d047ef0bc2776cc74faeb81c9abb849a","0x9F923653A19537b5a1b003854A1920fe67a8ffEB",!1,!0,null,null],["ethereum","realtoken_s_13116_kilbourne_ave_detroit_mi","RT13116",18,"RealToken S 13116 Kilbourne Ave Detroit MI","3045022100e1792c17f40f7dcd1e381c10120819ab1246d05d4b02d7a9c80bd0f4953916080220785586cb5fb8298a86944290e468c3f25a2d08ccbeaa98dee11b3702be92b9fe","0x08Ad1F3a48Be1D23C723a6cC8486b247F5dE935a",!1,!0,null,null],["ethereum","realtoken_s_13606_winthrop_st_detroit_mi","RT13606",18,"RealToken S 13606 Winthrop St Detroit MI","3045022100a2f8f37c67d44c837d93d1b094ae8f90dbf15fd05f05a494d63f899d5a53907702204651a0274536b45d12451de6845a6175418db386a015ebd5d077b87b6c77e612","0x804f6bAa10615C85E4B4a5Bc4eFe516d9f7a4365",!1,!0,null,null],["ethereum","realtoken_s_13895_saratoga_st_detroit_mi","RT13895",18,"RealToken S 13895 Saratoga st Detroit MI","3045022100e993d986a9401cabbe4d7999c99cb5b97b9365e512368e33eb4b9a2a40bc5f3102206d381167faecda3a874cea6931b52b908170fb8ea12c14570ec383510a9bba3f","0x6F442Da588232DC57Bf0096E8dE48D6961D5CC83",!1,!0,null,null],["ethereum","realtoken_s_13991_warwick_st_detroit_mi","RT13991",18,"RealToken S 13991 Warwick St Detroit MI","3044022028445e8cf395aee98a7f8cd4d4dd16e0f09059bf5516e2245c1130804c0c9ef402203696f4e350322450585fd00ef25e511b6cd2ac3584b53c5677914def1a1515d4","0x4E98493920b16Dd6642e9D48497c8d0A49150f6F",!1,!0,null,null],["ethereum","realtoken_s_14066_santa_rosa_dr_detroit_mi","RT14066",18,"RealToken S 14066 Santa Rosa Dr Detroit MI","304502210095481100ec4209d94678a0bcf4209be758a9bc84f9930cf4c9518380f08d6d2e02202566335a2668dd91b8875f37dc5b253fe8c354c7b43d63b6d7bcf41528f6618d","0xe887DC4fcb5240c0c080AEAb8870421d3ebd0B28",!1,!0,null,null],["ethereum","realtoken_s_14078_carlisle_st_detroit_mi","RT14078",18,"RealToken S 14078 Carlisle st Detroit MI","30440220599f56b3f7ab96abe350a78e068852b5083ca729123c8e4a4ed9749c30dab7bb02204cca56238931b8758b6bcbd2d4c70ddf6540e48978395b09300b107495143b81","0x315699f1BA88383CFF2F2f30FcaD187aDb2E4D72",!1,!0,null,null],["ethereum","realtoken_s_14229_wilshire_st_detroit_mi","RT14229",18,"RealToken S 14229 Wilshire St Detroit MI","304402203e6fa71e59911d5640fa6510c3412523998f92f9c0b0bb102e1de9b68a9a0e3a02201e49b65018e5e3410ba62eee6048354a3a8ec80e3c718e84fa5ea47a413d4662","0xb09850e2B93aa3AAa1476bF0c007cfc960E2de79",!1,!0,null,null],["ethereum","realtoken_s_14231_strathmoor_st_detroit_mi","RT14231",18,"RealToken S 14231 Strathmoor St Detroit MI","3044022023955acafd6c3343db0e2f4e14a1a317e689690886b7a50c4c234e07653989ea02207cf44f4e61dcb6f9ab183efaacc6db33b811c96bbacbc7bde7a0a8ad54b4c3fa","0x9528a7402C0Fe85B817aa6E106EAFa03A02924c4",!1,!0,null,null],["ethereum","realtoken_s_14319_rosemary_st_detroit_mi","RT14319",18,"RealToken S 14319 Rosemary st Detroit MI","3045022100e34a2109c0ccaa7088d783994f0d0cc25cd2a937985ce3281e4c14ed6592046502205548adc8d89b277bdc8c44afc222e1a3d80fb651f28fd8349dc7c0ee16d50517","0x41599149f1B52035392402F9e311b1edb0C9f699",!1,!0,null,null],["ethereum","realtoken_s_14494_chelsea_ave_detroit_mi","RT14494",18,"RealToken S 14494 Chelsea Ave Detroit MI","304402205913024a1249c919f33ba7fb64e7e204634a916889041b8575fea6e3fcb9a24d022063c421e2d7cca20751622e548a24fbb3ac8a8282528ab41bad984f65ea7e48b3","0x2adc1cfA726A45264A328D9d2e2C692ceac97458",!1,!0,null,null],["ethereum","realtoken_s_14825_wilfried_st_detroit_mi","RT14825",18,"RealToken S 14825 Wilfried St Detroit MI","3045022100af1652f8478e4c1805a585154cf98c67a00429a28a54d5f6e4935261fda3726602204da22d078022086ad77949a1749d7367df8e0cfda91c1c50687a13605f514ddb","0x43fED9F9BF7DeedCb314b432a8e38219dd62CE9e",!1,!0,null,null],["ethereum","realtoken_s_14882_troester_st_detroit_mi","RT14882",18,"RealToken S 14882 Troester St Detroit MI","304402207ac2dd6ed5f3ef4b645354089d0f121f8abac0fc30444902214b6c5559d625a602206d362502395623445c2943cb30ea4544f67429071bac63b707a8d721cfdd6f2b","0x31AA5fA895Fd186fDE12347A6fCaf540875b6434",!1,!0,null,null],["ethereum","realtoken_s_14918_joy_rd_detroit_mi","RT14918",18,"RealToken S 14918 Joy Rd Detroit MI","30440220723aa55d0195909bdc77c19da1887104ed7259a46cd19c2168c6b98f9b135a480220434a0941958e730e1f9c185cf309f09e2410108506c4bc07ac3f671e2fd4bde4","0x63A1849b47eF5913ccc5adb0E2708b11A4Ba6972",!1,!0,null,null],["ethereum","realtoken_s_15039_ward_ave_detroit_mi","RT15039",18,"RealToken S 15039 Ward Ave Detroit MI","3045022100ecfbcc28e454fe66d0987b723f2867bf6f8552f6b75ce14ba2b5e9e5d554d42c022059afcc692561e029a19cadb2d8ade34c904e4db8bc2e6448f65533a2a55f5116","0x7E95b310724334FF74537dc08bfD3377d25E65Ce",!1,!0,null,null],["ethereum","realtoken_s_15095_hartwell_st_detroit_mi","RT15095",18,"RealToken S 15095 Hartwell St Detroit MI","3045022100f7d5905fb0ffc12e91e83ea73f318ece282358e539037d43637b839831f33f3a0220246d7425671f278861d8e4f9a616f96bbe6df870b54d8af423648dbc17fcd03f","0x9FEF44FC4C571010BCCD5b63e1Cdc807D3b347bF",!1,!0,null,null],["ethereum","realtoken_s_15350_greydale_st_detroit_mi","RT15350",18,"RealToken S 15350 Greydale St Detroit MI","30450221008b5bc09a93a600514d6066564483c491c82610f468eefbae6afb3fa5f9fc5234022011c64c9371a8e0071fe820e46b9027335b22e0fdb72e0719a8e99daffbdeb704","0xdA47bD33e8f5d17Bb81b8752784bfb46C1c44B2A",!1,!0,null,null],["ethereum","realtoken_s_15373_parkside_st_detroit_mi","RT15373",18,"RealToken S 15373 Parkside St Detroit MI","3045022100c864b3b7eb1036044c89a77aa90d7aa8f4f9361baab0beb84eba210f59a9885e02204f88cdff4bda36d028ce99ec25f2246e67983a87fd1e72a3f8c27f76a449cffa","0x4d0dA4E75d40Bd7D9C4f7A292BF883BcDf38c45D",!1,!0,null,null],["ethereum","realtoken_s_1542_s_ridgeway_ave_chicago_il","RT1542",18,"RealToken S 1542 S Ridgeway Ave Chicago IL","30440220199fbdc688acd57f7dc34b65467cd16b6feca5492439e651568ff3b72f58d228022036819f87be242177e6a4eb15234b54fbadcee7d8121b10cb10a4d63c92a9ffb8","0x69D1B42b20f3DED07bEC322253D0140b04Cbb6F5",!1,!0,null,null],["ethereum","realtoken_s_15634_liberal_st_detroit_mi","RT15634",18,"RealToken S 15634 Liberal St Detroit MI","3045022100be707b7cbad5e6d5cedf644ee9e90dbbfcb281266a0ab52971e9b70c21b3c58402204d47c59801a0c1a371ad282223b9d230421778493cd9dcdb182b616146b5befc","0xa81F77E8988b28fB74243B907acE3c83353Dc80a",!1,!0,null,null],["ethereum","realtoken_s_15753_hartwell_st_detroit_mi","RT15753",18,"RealToken S 15753 Hartwell St Detroit MI","3045022100b201654d6c54739632f4e48a2c760f3f242089031375794167c616742b9c15390220071b1546e9329b63a6e7aee340b55b2c4f7e1db8dd2b28d5d2bb5927995baf01","0x8D1090dF790FFAFdACCda03015c05dF3b4cC9c21",!1,!0,null,null],["ethereum","realtoken_s_15770_prest_st_detroit_mi","RT15770",18,"RealToken S 15770 Prest St Detroit MI","304402205945ab9cb2c33ba9d2b6b06b906449ea1b0319ce8526c9454848013aed5cadfe02205aa89f3110b752d0c38068a515e9cfa1da72c3ed15365a63061bbb2d5355d93c","0x175cbD54d38F58B530785e01471a2Ec0D4596EB5",!1,!0,null,null],["ethereum","realtoken_s_15777_ardmore_st_detroit_mi","RT15777",18,"RealToken S 15777 Ardmore st Detroit MI","3045022100afec55377cbc8dc9d88f83519512c9cfcdcbb58a709973b7bca940ca3deeb1b8022034b0d373d09019c9a79a519bc826ca5068c237710b49cd63e930223db94e5572","0xFe17C3C0B6F38cF3bD8bA872bEE7a18Ab16b43fB",!1,!0,null,null],["ethereum","realtoken_s_15778_manor_st_detroit_mi","RT15778",18,"RealToken S 15778 Manor St Detroit MI","3044022039542b1adae9006618dacc8f3dfcba6f25452e7a5a9a5513d952a4bc548294e702204675880f762fdf214bdb8ade776e203a703670e7ddf959eaadbbd4af3c5f8bc3","0xF23B80216a10E6f0c0D3b5AD5C9349e9425cAd40",!1,!0,null,null],["ethereum","realtoken_s_15784_monte_vista_st_detroit_mi","RT15784",18,"RealToken S 15784 Monte Vista St Detroit MI","304402207010cc815c48cfa380ab74578eb2af12c0b34fe923f0372af70062f17a0b45fa02202c9efd6914d3ef83a597c26c545ca2afaee80bd98e3ecaf6b877f849afd59448","0x7f940B5509a22e81D29167581bdEea3Fa5a0abEE",!1,!0,null,null],["ethereum","realtoken_s_15796_hartwell_st_detroit_mi","RT15796",18,"RealToken S 15796 Hartwell st Detroit MI","3044022014561efa2cbe1c9df93078b2a889d45d280950bee12aac75cf19763d56e2896c02200917996ec36c78cea76659da3b772d3903d9d6094ceba0b816fc2a51b418c313","0xB3D3C1bBcEf737204AADb4fA6D90e974bc262197",!1,!0,null,null],["ethereum","realtoken_s_15860_hartwell_st_detroit_mi","RT15860",18,"RealToken S 15860 Hartwell St Detroit MI","304402203237d90240a23914ab705232d2c44a9231f61fd37b19a2a889054b319334be8c02201526e8ce4738f87504271b79e8953867109746d76f04cc6b858abeeee0d7efd1","0xA9F30C907321718e655B74463CA665B690B78894",!1,!0,null,null],["ethereum","realtoken_s_1617_s_avers_ave_chicago_il","RT1617",18,"RealToken S 1617 S.Avers Ave Chicago IL","3045022100b941c19e1050601d96dadaa11f6205ed1f1e10d825b188baee62f1f185cd8dc302203b2e488d8626a99251922635d687ac463f46eb98e1e5fec32d46d086ab292954","0xF4657AB08681214Bcb1893aa8E9C7613459250ec",!1,!0,null,null],["ethereum","realtoken_s_16200_fullerton_ave_detroit_mi","RT16200",18,"RealToken S 16200 Fullerton Ave Detroit MI","3045022100ea109332fac876ec6eb764730cfe6ce23a7f7117f7a842314daeb972713526f1022071865aeb272583e53cce379bfed285554fdedfbf468020cb454397e4f2bf94ec","0x021Bb23a45e9FC824260435e670fC383b7b8cbbB",!1,!0,null,null],["ethereum","realtoken_s_17500_evergreen_rd_detroit_mi","RT17500",18,"RealToken S 17500 Evergreen Rd Detroit MI","304402203ddaaeaadcd48af732ee19e91eab4dbd2af24e480914b17a6c60d51579004478022018dccab27c3181302378cbfdd597af8f144a8df9a8fec0a04f44c522070c2331","0x1FdB4015fD5E031C5641752C1e03B973ad5eA168",!1,!0,null,null],["ethereum","realtoken_s_17809_charest_st_detroit_mi","RT17809",18,"RealToken S 17809 Charest St Detroit MI","3045022100880cdbe73af1a6423b520f92ded65e20cbced3b5bb9a2a88dee80d95464aa8bd022019d84e8a00ad6b083c6d0322fb68a9a3f81e0ae50344c271d8b0da4b9d8d97ad","0xBA07997F594A52DF179620284B52B50A4E66227D",!1,!0,null,null],["ethereum","realtoken_s_17813_bradford_st_detroit_mi","RT17813",18,"RealToken S 17813 Bradford st Detroit MI","3044022062f4fd288e9446faaa8f7477915a034b2d46580621bd8e153c3f047300f363bb02206c75e70b66d03a7ab4a904789bd9d79a7c13aeb6e18ab1baef628235282e838c","0x499A6c19F5537dd6005E2B5c6E1263103f558Ba4",!1,!0,null,null],["ethereum","realtoken_s_1815_s_avers_ave_chicago_il","RT1815",18,"RealToken S 1815 S.Avers Ave Chicago IL","30450221009d68a1d0912ead818de21e6a114c9df3479231f6da231b0898ab9179f3f3c6bb02204e5e4c78b594c86dd5ee4e44bf5f8529d8fc9847de550f6456ca9b7a7be17e61","0x8fcB39A25e639C8fbD28E8a018227D6570E02352",!1,!0,null,null],["ethereum","realtoken_s_18273_monte_vista_st_detroit_mi","RT18273",18,"RealToken S 18273 Monte Vista St Detroit MI","30440220194b459818c80fdea14d599ddc9b8b6ec4a83d08b07ca9a9e9d60d95e083f6ae02206bac16ca24705faff47185f0a5698a3cb0756a23d6e596bb57771474a4278a1a","0x9856C5CA15A4Ac9C65AAC090c38a9f39EB3b5eeC",!1,!0,null,null],["ethereum","realtoken_s_18276_appoline_st_detroit_mi_48235","RT18276",18,"RealToken S 18276 Appoline St Detroit MI 48235","304402203cbd67efbe6390d0949a83c17c19c5339837bc6bd82108be6e9a8f7b7bb86911022018fefd86d055d337465917e7b8fd6ded7663a8456143d7d449adcb623944e09e","0x21f1aF3e751317a2F7De7Df31D5d092E6A907Bde",!1,!0,null,null],["ethereum","realtoken_s_18433_faust_ave_detroit_mi","RT18433",18,"RealToken S 18433 Faust Ave Detroit MI","304402207a5b67bcecffe68cdedb278784aab280b0ecafb44cd9b66928385e67c83951d9022028ac62efcc11edd3b177c58742df59e105031a5739eef3a438598cbf5985be2b","0x46F8A600337dec5CaB03aa9b8F67f1D5B788ce28",!1,!0,null,null],["ethereum","realtoken_s_18466_fielding_st_detroit_mi","RT18466",18,"RealToken S 18466 Fielding St Detroit MI","3044022003f8a8ee5cbf311ee7b1c1a97aa25af9f7b60ee63551ce2e8f43027fb3a54209022026efc364add3de7cbe2269044d55be704ad8baa147b8c32493388d072dc06c40","0x9A99f283e1F6c3b7F24901995624Ef7b78E94471",!1,!0,null,null],["ethereum","realtoken_s_18481_westphalia_st_detroit_mi","RT18481",18,"RealToken S 18481 Westphalia St Detroit MI","304402200f05779ac7c75ad223ca5dbfe79d7eb4b8a00ec3484ef88ed359e9bb801cbcfb0220257c4fe8e67e1f0bb9bf9b1bcef51efdb0e15e92f17e8b9b9cf6d918ba3f3641","0x75f06B482adbFb04b877D8ee683E2FCDf18AD153",!1,!0,null,null],["ethereum","realtoken_s_18776_sunderland_rd_detroit_mi","RT18776",18,"RealToken S 18776 Sunderland Rd Detroit MI","3045022100a1642c142578ab4cb7b0210f36f53963d8ba3153afef8a8833edf2e5555569fe022032039f2f78afd3f4f8255f68df4d1bfbb5004b01f28262cd567031c614da02f0","0x2C6f00A020B613C9419bb6C1Ac220036dbE9e622",!1,!0,null,null],["ethereum","realtoken_s_18900_mansfield_st_detroit_mi","RT18900",18,"RealToken S 18900 Mansfield St Detroit MI","30440220784735350589501da631d546ec19f71b5cd2d2193380d1e745ebb117b858f47b022065e83d65cdc78c63d317752601fd5df7068dcd22d183863735ad266939590667","0x9Eb90Ec3FAafC22092C9b91559FdDde538042093",!1,!0,null,null],["ethereum","realtoken_s_18983_alcoy_ave_detroit_mi","RT18983",18,"RealToken S 18983 Alcoy Ave Detroit MI","3045022100c7bb491531bbfd24232921ca1fc3c0639498ddeb287723f3b9773ce3b4e756950220335834453f060915a5a2e7ec472a9c827c322f8392a305e96beedf53e16e2a77","0xaD91999F534F4075B00bA4231C018e57bdeBb342",!1,!0,null,null],["ethereum","realtoken_s_19020_rosemont_ave_detroit_mi","RT19020",18,"RealToken S 19020 Rosemont Ave Detroit MI","3045022100fb180b2c6c2ad6daea619a22fd858c7f29298fa1096f01729598450de2a3234802207f08e0f1be66b92903e0dc461c8190936363b704eac33c2516cce1af70918786","0x280e9ed3B20c580a2f4219657bB9332D80Bc01f1",!1,!0,null,null],["ethereum","realtoken_s_19136_tracey_st_detroit_mi","RT19136",18,"RealToken S 19136 Tracey St Detroit MI","3044022023d1cb8444518715c414c4a4e04e7540706f23b741ca77d160699e858cba156202204fd89cd48fc53757982e6be31101bd8c6eae823117ea57707366d9a2389dc29e","0x33722EA778dF197f1b7B1Cf0b124d7A962181d65",!1,!0,null,null],["ethereum","realtoken_s_19163_mitchell_st_detroit_mi","RT19163",18,"RealToken S 19163 Mitchell St Detroit MI","3045022100be37fdb86a0c967e597497f03854cb4e5863947c596db38b18951a72db72594902204a67d63e754c4233411c293751b80f09546caf2a5d7c31fd813774e8e357e241","0x4Cc53Ee5ef306a95d407321d4B4acc30814C04ee",!1,!0,null,null],["ethereum","realtoken_s_19200_strasburg_st_detroit_mi","RT19200",18,"RealToken S 19200 Strasburg St Detroit MI","3045022100f571f571ac0f663830e40f4c38bec8dfdb8a4caf27c8bfdda6e54487ffd5678002203aeaf95405e697763002ee798ba01ecca8acc21bf52d260461d4c4f14eb340ed","0x211618Fa0934910666f2C2731101F5A3aC013fD8",!1,!0,null,null],["ethereum","realtoken_s_19201_westphalia_st_detroit_mi","RT19201",18,"RealToken S 19201 Westphalia St Detroit MI","30450221008654b02832e5e74a14c826a97c774db15bbcbaa03cb58745a9db2e5751e16a4d02202b858236f2ce0acd200d930f1cd9930a6b31dc3d2acda7a0071bd29e029c4e58","0x830B0e9a5ecf36D0A886D21e1C20043cD2d16515",!1,!0,null,null],["ethereum","realtoken_s_19218_houghton_st_detroit_mi","RT19218",18,"RealToken S 19218 Houghton St Detroit MI","3045022100aeecbdbfaca1a79697990aac7e6ffad5cd72ab4d122fdf8532dc31649573d7d202203e0230fdd85ae05a89544b3fc931390625d8ee68f5756ecc644f3a93d605a524","0xC731EcA970979Cd2Da2a1094A808F49894070D35",!1,!0,null,null],["ethereum","realtoken_s_19311_keystone_st_detroit_mi","RT19311",18,"RealToken S 19311 Keystone St Detroit MI","3045022100c542361d3108b4109668003f0ec5cdf4b16aba15e068add16749a2bd1ad381a7022025e13e71f7340b9ea18a38c2d2ba6e0226ebd2520f88813d032a05eae1231809","0x8a9F904B4EaD6a97F3aB304d0D2196f5c602c807",!1,!0,null,null],["ethereum","realtoken_s_19317_gable_st_detroit_mi","RT19314",18,"RealToken S 19317 Gable St Detroit MI","30450221008f684405f45599d887b5282b90cfc88a23107095d424d06c8f330d18cbc3dc1202206c22c4a23a9064c7abb290d3f71482876cd7a19c66d9dbb47947be417103c4dd","0x34eD9e71449529E034d0326cfBB3b5ccDCa00CBC",!1,!0,null,null],["ethereum","realtoken_s_19333_moenart_st_detroit_mi","RT19333",18,"RealToken S 19333 Moenart St Detroit MI","3045022100f54a4e8ef7a4da98885acdd5dd399a62a55bd0f34b3c7a5d1bf5ecb0d43c72b30220140d2dca6e035400527b508622f0297f0c1226b701d4101fa26f99a069525665","0x24293ab20159cfc0f3D7C8727CD827fbA63d4F64",!1,!0,null,null],["ethereum","realtoken_s_19596_goulburn_st_detroit_mi","RT19596",18,"RealToken S 19596 Goulburn St Detroit MI","3045022100bfe70afe8f45f340d089cc01919f2ba16d0c78ef7bec5bfbd9263e09f6b3439402205efbb754ec555187834973efe47a6184ab683e7ada0ab9086953dfc7501a35a2","0x3150f0EbC0eFEe280b5348b9C8C271AD44Eb8B13",!1,!0,null,null],["ethereum","realtoken_s_19996_joann_ave_detroit_mi","RT19996",18,"RealToken S 19996 Joann Ave Detroit MI","3045022100b0d0a16c491a460cdebde51fe3216ac33a84545b7e805a4b8055e45f1886fd80022038bb77a8140a80d728f04fbd283d97f6deccc6505aebacde2b8437c88a226653","0x311FC485f1FeA0c8Cc9b5c783E79f4313DDFa720",!1,!0,null,null],["ethereum","realtoken_s_20200_lesure_st_detroit_mi","RT20200",18,"RealToken S 20200 Lesure St Detroit MI","304402205874e3a74799fe0caee1b3256af831078f1a8f50969ee460f4e5ed45e494a6e9022018836a3a73c771a949b02ec47e8f59a2f4525c1e96afb6339ff1401173f47e22","0xEeDc2F5F4D1226759B1AcF9EfA23a99661De6663",!1,!0,null,null],["ethereum","realtoken_s_25097_andover_drive_detroit_mi","RT25097",18,"RealToken S 25097 Andover Drive Detroit MI","30440220633c44eb0ac8d3a0d0db0171f771da5b1c43b80bd3f93a8b5940bf87e254076f02201e7b56a85a83c72c61ef16a7bc213faf4b3a7e0237e524008daf84fc6b72790f","0xF18CfFB528eca0ea31D1d6b28BC80d2eca34D14D",!1,!0,null,null],["ethereum","realtoken_s_272_n_e_42nd_court_deerfield_beach_fl","RT272",18,"RealToken S 272 N.E. 42nd Court Deerfield Beach FL","3044022017691528579d9079abb72d76fd15ac5e47c0f41251feb07d526424f8e6e5bacf0220696b39e8ab9fae21b891844e3bfc820c5de6de3ffdf0dab177a7e03423ee4547","0xce111a198eB04F388AceB78c40ceD6daF1b0514a",!1,!0,null,null],["ethereum","realtoken_s_3432_harding_street_detroit_mi","RT3432",18,"RealToken S 3432 Harding Street Detroit MI","3043021f19b4c5d8fd93bab37072d7f02fc325b7ff95c8b422b0833b120b73fd17256a0220673a1585529b82d6462d6fd542b64d65958909dcc60d45be99931de98ed4ff5c","0x400B5716B0c23B6f1f0f2A5fDb038949962B803E",!1,!0,null,null],["ethereum","realtoken_s_402_s_kostner_ave_chicago_il","RT402",18,"RealToken S 402 S Kostner Ave Chicago IL","3045022100d6f820eacbbe65af4cac4380f08fb9b21fe3aba92395f504f30a4e0a230dbafa0220725d87c88d4b7d89258e541793d9bd9af5b7ab33fcdd648bb8d19ad427b8803f","0xE255cAF8893382465368b8e1cd4Ef8436ACf0ADE",!1,!0,null,null],["ethereum","realtoken_s_4061_grand_st_detroit_mi","RT4061",18,"RealToken S 4061 Grand St Detroit MI","304402203e6635682dcb16ecc4b3791b2e27629a75d307e5ef1477c9206d1ae60755bcd90220202bb63ae1e5c0ca4b65936e316267913ffc54e9980ae8494575338632e003ad","0xd9e89bFebAe447B42C1Fa85C590716eC8820f737",!1,!0,null,null],["ethereum","realtoken_s_4338-4340_east_71_cleveland_oh","RT4340",18,"RealToken S 4338-4340 East 71 Cleveland OH","3045022100cd13a009fe4e7015754342b32099b265a1ba5033ab79014b6777c4989d698a4102203c2b7fa7cfdd407356f957341fd7ea855cde8499d8a5670a2e93e6b01cf00887","0xA68b7779504b0AE372ddCC109f8786DB9B91e93e",!1,!0,null,null],["ethereum","realtoken_s_4380_beaconsfield_st_detroit_mi","RT4380",18,"RealToken S 4380 Beaconsfield st Detroit MI","304402206944134e1e43759b3a466c0fdd4fb2b2652d39781480cd83d93fd14081b7caed022043de82362a9036526796f7c7bafaf2c87f3da4eb41f8ee8f98e23475fd01b49e","0x96700Ffae33c651bC329c3f3fbFE56e1f291f117",!1,!0,null,null],["ethereum","realtoken_s_4680_buckingham_ave_detroit_mi","RT4680",18,"RealToken S 4680 Buckingham Ave Detroit MI","3045022100927918bda12949669999544ed1df77f75330a20b11e1a6afe5113a97af8fc3630220414d8a170ca6804965dc939048660aa9991e178db586c3e44c2dc4066213a1a6","0xeFe82D6baF0dB71f92889eB9d00721bD49121316",!1,!0,null,null],["ethereum","realtoken_s_4852-4854_w_cortez_st_chicago_il","RT4852",18,"RealToken S 4852-4854 W Cortez St Chicago IL","30440220152ede3b48d87722f1ed92a0052b4d84eb90b32a7c0a13f715a74a3e7941107c0220451c9c2d4e0b33c96fbf09834b468dbc5b4fab0471ae44580afffdbb9acaba8a","0xE7B6dE709fFC3BD237c2f2c800E1002F97A760F3",!1,!0,null,null],["ethereum","realtoken_s_5601_s_wood_st_chicago_il","RT5601",18,"RealToken S 5601 S Wood St Chicago IL","304402205bc23c0100f61ab5a2781f33eb7e6a3b147783b0115a0e549e85eaa4b349732302205dbf311f870b2ef8f1e8ce53fc7bdb29105c62136a37e145ee14a4fe4982955a","0xa137D82197Ea4cdfd5f008A91Ba816b8324F59E1",!1,!0,null,null],["ethereum","realtoken_s_581-587_jefferson_ave_rochester_ny","RT587",18,"RealToken S 581-587 Jefferson Ave Rochester NY","3045022100b9335100ba4069f40c0a64dc824f61e2779e04b64d06503255420ebf7ef59b0e022072be0320f3f9691edede476ab30df658ff56b7bc603d6ce72f5d40f3fa9674d6","0xA29ae272bC89e5f315B2793925f700045F845d82",!1,!0,null,null],["ethereum","realtoken_s_5942_audubon_road_detroit_mi","RT5942",18,"RealToken S 5942 Audubon Road Detroit MI","3044022027c0543de3c40edcfcbd96f9d10557a6e0809ee810c00e3d5466fe73e1da1f1e022021d78b7f6252303fb47b7603d3c577e8fdbb6ed090961a192b890ebb098b200f","0x6Db6d540F5614e6BaB7475Af3F430F46a0B083e2",!1,!0,null,null],["ethereum","realtoken_s_6923_greenview_ave_detroit_mi","RT6923",18,"RealToken S 6923 Greenview Ave Detroit MI","3044022025889085038017cc527216d07b580cdce55a801b73fa7d6404c24452719c800002202248f720497c1c3fb9a58f1fc1f2db8ed499b6e7ee25a48293f58418344beb85","0xD08d2b199E9E5df407427d4085877d1fDFf3b1d6",!1,!0,null,null],["ethereum","realtoken_s_8181_bliss_st_detroit_mi","RT8181",18,"RealToken S 8181 Bliss St Detroit MI","304402200af14c2e65eb6541ff40132b7b9e92abea2d7dec98b87ddada4d644c61d535d302205843ce063387443e079484777c7db3ffb298a0040310d66fdd01ed19225d4dd6","0x92d31E19F88597F368825ba16410f263a844527A",!1,!0,null,null],["ethereum","realtoken_s_8342_schaefer_hwy_detroit_mi_48228","RT8342",18,"RealToken S 8342 Schaefer Hwy Detroit MI 48228","3045022100c37017a2822bb31d91ff22dd4cccc22b2934b029b90150ec1638afbe834cdb26022055e95dbf274002ae013ffdb7c0c717462d784da1d866ac040009305eda8c39e2","0x741857c07b100c9C0C1272D95845dDdc4f1b67cB",!1,!0,null,null],["ethereum","realtoken_s_9133_devonshire_rd_detroit_mi","RT9133",18,"RealToken S 9133 Devonshire Rd Detroit MI","3045022100c0f3a16f01919bf0b0f5dfcdf5de89c13ec96aa178252d9fb957764dafec827c0220466ebf9c4681d401fe6b321d34d9615f4b3b4cb48b83016b0c7087797339bb7b","0x76dbEb740ecd1F3b052a9AFA302ABc7EB4Fb5390",!1,!0,null,null],["ethereum","realtoken_s_9165_kensington_st_detroit_mi","RT9165",18,"RealToken S 9165 Kensington St Detroit MI","30440220129bb0041d7e3fd857e991ac7a79fcee382d51ac7e9ba46b71be22aff48eeeb70220148a4a86bc6bd48a5ce420ad42312257add1fa160c6f2dc53bce8b03c6720ca8","0x3C56D5E887D8fA7AE1Ba65BF7eCCC25eC09EAF18",!1,!0,null,null],["ethereum","realtoken_s_9166_devonshire_rd_detroit_mi","RT9166",18,"RealToken S 9166 Devonshire Rd Detroit MI","30440220445f324eebd9eb27ae0ee34ad55035fb80b94440933296491896d1050202c063022071d6c08ee4e67710692ad2dd5677d05d891d0de6eb6d0b8b0aab25b51dac203a","0xa69D7d4DdF397f3D1E7EbAf108555d1107b3B117",!1,!0,null,null],["ethereum","realtoken_s_9169_boleyn_street_detroit_mi","RT9169",18,"RealToken S 9169 Boleyn Street Detroit MI","304402207fb634cd5b5d63ed1c93524cec919e155eb258b7e4933fab74744de750190e1d02203ae664740114a4c50cdd877bd2109b0091dbce0c587013fb968426abfd8dd590","0x806690B7a093d2Cf6419a515ABEdb7f28595bc5E",!1,!0,null,null],["ethereum","realtoken_s_9309_courville_st_detroit_mi","RT9309",18,"RealToken S 9309 Courville St Detroit MI","3045022100dd92b723065c3548ca21ff4bcdd8d323588b4da76cd5278f2009e3ecdc49311f02201e1eadcb1aca37fe7330dfe7c8f7961d9db3143330e0e08bcdb30da11cf463fe","0x67a83B28F6dd8C07301495eE2C6f83b73FD21092",!1,!0,null,null],["ethereum","realtoken_s_9336_patton_st_detroit_mi","RT9336",18,"RealToken S 9336 Patton St Detroit MI","3044022044840d1b013b8e1226b1dad7f7e22bbea72df023a8829e38b5b1f323ef14853f02200ac467fdf633f88e40a74a1cc725daff04856ec69890da0034e2b5da7b53b534","0x23684569c0636C9aEa246551879d457D0a0E6F58",!1,!0,null,null],["ethereum","realtoken_s_9465_beaconsfield_st_detroit_mi","RT9465",18,"RealToken S 9465 Beaconsfield St Detroit MI","304502210098d2b0b0e3c120a466a539eb8c79ceb35e70e0e4130f382e5d5fdcae743e215202201ad82419ffcf37888abe28035c8b66502a1d5689c51a23b0868bb7379c875876","0x750FA12Ae51d1515c893C1aaABE2C135937a2c8B",!1,!0,null,null],["ethereum","realtoken_s_9481_wayburn_st_detroit_mi","RT9481",18,"RealToken S 9481 Wayburn St Detroit MI","3044022030c595edf2492072d6060c9a9e430eb261bdcfed2dd701c26e669cede6c2b8eb022065a89acacadddac268919b23df1521da0fef4d166028437482dca1f40fce0b94","0x1E001730A23c7EBaFF35BC8bc90DA5a9b20804A4",!1,!0,null,null],["ethereum","realtoken_s_9717_everts_st_detroit_mi","RT9717",18,"RealToken S 9717 Everts St Detroit MI","304402205a0a7ed85cac9a1f93c834b0fa23a14438af961863fe1fff14159ddec4462de2022035715aca00e56e2af30c6e51e4f4e71498aec3c9144f72ebcb427649b734ac14","0x73BdE888664DF8DDfD156B52e6999EEaBAB57C94",!1,!0,null,null],["ethereum","realtoken_s_9920_bishop_st_detroit_mi","RT9920",18,"RealToken S 9920 Bishop St Detroit MI","3044022019d83e84ece6c417a35be8d401d015b99b7facc3ab752f2002e0d273f762180702200e5beba9e08813abc30f9be8f8f653ec7ad54b72d0699df0c8924dc3b741beba","0xa2b2ae397492C7ed8A4c1e751aC72D2b59947E6b",!1,!0,null,null],["ethereum","realtoken_s_9943_marlowe_st_detroit_mi","RT9943",18,"RealToken S 9943 Marlowe St Detroit MI","3044022046de0f7ca95cf533152ae26c7c33cb4466f11b943471c0609c3deda8f078af0b02203827ffb846d46e62b4b4d9617ef6ca931ac8b3398895e6b139d92dd21b4a8be0","0x57eaDD2A542cFE9F00A37F55dF4D5062f857C0E8",!1,!0,null,null],["ethereum","realtract","RET",8,"RealTract","3045022100e5cf2f221b4758eb5f342981faacea88bec41f1adc6dcba292c599831732392f022059af34645409524b074eef63ccac4f5194253d0c89c740cefb021cb07eaf589e","0xD7394087E1DBBE477FE4F1CF373B9Ac9459565fF",!1,!1,null,null],["ethereum","reapchain","REAP",18,"ReapChain","304402206389cd06771553011b69838ec8105af3d7f00aec51b58279b07a6bea5b99d889022039dd66a23ecad28d9ded10157781d14ea24fba2f6e61b22cc4c57ef3719b105d","0x1fc5EF0337AEA85C5f9198853a6E3A579a7A6987",!1,!1,null,null],["ethereum","reapit_token","REAP",18,"REAPIT Token","3045022100bae52113d864bb763552fbd97038675250c343122c6ac1b72050a96af5c95fe702202024a064fb47395518ed3e170c8594efdf2d2e03623f8255279d722a95a299e6","0xa20b44c001578e2C52665098BA62B00EBf8963cb",!0,!1,null,null],["ethereum","rebased","REB",9,"Rebased","304402203b295142dec7760e4f727174113f6f5d6cf114460eb88788913b9ef19468535c02202410cdd23b4b6c643357e70548f048df67225f5f2c976f671b6af7990a61a041","0xE6279E1c65DD41b30bA3760DCaC3CD8bbb4420D6",!1,!1,null,null],["ethereum","rebased_v2","REB2",9,"Rebased v2","30450221009bc5ae0279c3e2c61e223fbb959e7bcb410fc7d947e6b68e5ce25679dc842f1802200b4e4ab83e80c3dbc87682756d70836116ceee25df89b0560c9e6010800db941","0x87F5F9eBE40786D49D35E1B5997b07cCAA8ADbFF",!1,!1,null,null],["ethereum","rebellious","REBL",18,"Rebellious","3044022058b0f2888d62be50fe28f5bf46fdb73aaa2488ceb4286bb77e98366514da15c30220215a267c6f5c59b50ebd5ffe0d7becec3cb654fb7c4a656a09abe9229219114d","0x5F53f7A8075614b699Baad0bC2c899f4bAd8FBBF",!1,!1,null,null],["ethereum","rebit_ai_keyboard_token","KEYT",18,"REBIT AI Keyboard Token","3045022100d44767f906cc53eaea127b4451f943275f968db7210085b5bb3a25955f30c5e902201bb4e9efd3648c5e70472a9c09250382793183da899e74df5aa867565e239279","0xcE13aBCE0DB5A8224616ef24D3979d466F19CF90",!0,!0,null,null],["ethereum","reborn_dollar","REBD",18,"Reborn dollar","304402204dcbcbf5aab727c1fb33b3709f5f1ddcea4e595a7d3b638df62fe95826a115a802202954ef209ab62a450286f13e0ff4d0c20429567fefec7105f0bb00bbd6600282","0x7feA8ddA7462ac9f2ce62Cf52cE9840E0E6A8C3b",!1,!1,null,null],["ethereum","recharge","RCG",18,"Recharge","30450221008cdfdb2d02b5d4e030f165d5c97ee02bd67ed2272b5096b215a5f895cffb8b6f0220463f9f0a2b5a8d26b1dffaeaeb0ab5d40e230ffacb9757d457a200325b4dffb2","0xe74bE071f3b62f6A4aC23cA68E5E2A39797A3c30",!1,!1,null,null],["ethereum","red_community_token","RED",18,"Red Community Token","3045022100f128e501f1d001fb8310afde9859d2bd92ad2a160a109c7731f7c293c45cb49502204a14784ba59fc173bbb865150bef5a33638f3ef3b31e9f6a2451903d25eef69b","0x76960Dccd5a1fe799F7c29bE9F19ceB4627aEb2f",!1,!1,null,null],["ethereum","red_mwat","MWAT",18,"RED MWAT","30440220398d6af1a441356ffed5c84f9992b8656609d1bee43d8aedeff348dc78717ae60220539b29497d7d8246a3b5981d4bfe3b1790163a0c0df6434c1b6bfd9fa84c3a8b","0x6425c6BE902d692AE2db752B3c268AFAdb099D3b",!1,!1,null,null],["ethereum","red_panda","REDPANDA",9,"Red Panda","3044022023fbcc9120f329873f803712be9111b0fe8e044176fa655d0b43dab3595ebd5802204b28da1f32074aed20bd78fb43a2d85333a979ca57d2a7365bfe27512fc4bf58","0x514cdb9cd8A2fb2BdCf7A3b8DDd098CaF466E548",!0,!1,null,null],["ethereum","redcab","REDC",18,"RedCab","3045022100f34d5f3e5488fe3edaefcda2944c175b86f6269a87c946943b70f8650ce844ad0220126c6a15c04d744b84ec5126c5c8af99802e4b82d3f8d31d73ff5a1cb1163ffa","0xB563300A3BAc79FC09B93b6F84CE0d4465A2AC27",!1,!1,null,null],["ethereum","reditoken","REDI",18,"REDiToken","3044022010fabb40b04141e88882e4008ec926c5a6e0fe8c8c42258a62d209110e27600c02205b4c6548fb7244c862c16e82324760cf825344c615af66c967b104198747f9cf","0xeBdF9a7AE0009b958C6d09501EB9AC1dAfeb31aB",!1,!1,null,null],["ethereum","reef_finance","REEF",18,"Reef.finance","30440220596d9aeb44d0de6f888a37ef2d0f6729736ef7a66277d5305cf3f745b49334510220534ff6e3e6f51c2155e9a8b5cfecc7c3793c93f11852946304e492f4bc6bd812","0xFE3E6a25e6b192A42a44ecDDCd13796471735ACf",!1,!1,null,null],["ethereum","reeth_token","REETH",18,"Reeth Token","304402205289a99a7bc45de10d27cc5d9a3d1bab94a43331d657b0e71ecbcc620574122202202b0ee6c85c18bbe7f3dc14f61b7d40b21401bae3e9cdac2f6ec60b0c273616dd","0xe804964c296E9FB666fBE67767838c1FF9Ab3209",!1,!1,null,null],["ethereum","refereum","RFR",4,"Refereum","3044022079bb1464e1c197f4fdec498b6141baaa43b7f429b1050ab5d51cd7024f019f9e0220250b986a3de5d1e8e48ce1053d810a343cac068cb74531363aa8aff55f0f3c43","0xd0929d411954c47438dc1d871dd6081F5C5e149c",!1,!1,null,null],["ethereum","refi","REFI",18,"ReFi","304402205bfaf9f5adc1949a724e3c0025d94fc65a052bbb62d22eceee36c1fb705f1512022033828bf54d03dd41f46b0a06725f1835f1e39230448c8c1b30550cea08876e9e","0xA808B22ffd2c472aD1278088F16D4010E6a54D5F",!1,!1,null,null],["ethereum","refine_medium_token","XRM",18,"Refine Medium Token","304402207f6c64c7ad838e86b39d73752b34579f31b6e3beef7d3064e1723b434f10229a022033703defde9a66a1b73a4a51c42f71c2c337ebfc00b59b6258ffa4387303ac60","0xE1329eBf8b719881549909d689987F746A8931D1",!1,!1,null,null],["ethereum","reflect_finance","RFI",9,"reflect.finance","3045022100b1b49230aba82f18f28828fa81a834b1966e1e2506461dc4ad6b2d5080ebe34f0220544ad9d61c2469bcf577979ad31e538aa57a4c51a29b084fb764e3c75f064331","0xA1AFFfE3F4D611d252010E3EAf6f4D77088b0cd7",!1,!1,null,null],["ethereum","reflector_finance","RFCTR",9,"reflector.finance","304402205dcc299ee3c50702df6f020fea1f873912ee156ebf08b8031e2f556dc4874d4e02200b66e995be60e5d63ca8d1caba4fc8d80238797b49d62cf426beafc9ce449cc2","0x16B1eb8b8E9058800bF0bA3684F805A6711a1D2c",!1,!1,null,null],["ethereum","reflex","RFX",8,"Reflex","304402204509e04f2e58ca948258058e8fb1c1af00a55cb47f09db9a9c5e3009b3d5f69c022035972749764f6af350a49cf81531a4acee9a213c1141bd8f4a11e81b4d787dfe","0x159A1dFAe19057de57dFfFcbB3DA1aE784678965",!1,!1,null,null],["ethereum","refork","EFK",18,"Refork","3045022100e9f72596bcf7b2a02a2acf7e051eb1051b21a392ffdd60dbe3ed7b8c19deabbb022003f22ca114158ef466af49dfb0b8e41ea699eb1a9d33e0640e6c85e728ed393d","0x6653C0d21507573Cc39EAD1E609D74d5E0cA16e2",!1,!1,null,null],["ethereum","refract","RFR",9,"refract","3045022100da26f9b931f47bf2bb85373191443350e19d3fd1276e8b979493dd35fb972d3002200e8677986410243241b99d3ea3a5d9aaeaff7f26d1cad78dc65cb42adb997c50","0xe0bDaafD0aAb238c55d68ad54E616305D4a21772",!0,!0,null,null],["ethereum","refraction","REFRACTIO",18,"REFRACTION","3045022100bed2c7d55f553660aab044830732cb3bd86afe7deb95a69e888f93a7dc2e2d2e022051a7da4eb4923b0349a59e7972bd73ad649ecc6957da1a85eea91d3def6d1fec","0x21A870C7fce1BCe5d88bDF845Ac332C76204a9A0",!1,!0,null,null],["ethereum","reftoken","REF",8,"RefToken","3045022100ba96035a91163939c05c4fc851590f0f44175f0de121f50cf06e95c7b6814e6002204cc593086f253838d9677a9a8d3e932da5eded3f7f59676615ededf4bc808da4","0x89303500a7Abfb178B274FD89F2469C264951e1f",!1,!1,null,null],["ethereum","relay_token","RELAY",18,"Relay Token","304402202d81ed007f80e3acfc81ac871cbef9665204555107b8a96c52d6cc145918e5100220611dcbb5ed7dab32746adc98608bdb195d37ad8a00a806dd792a681e0da345cc","0x5D843Fa9495d23dE997C394296ac7B4D721E841c",!1,!1,null,null],["ethereum","relayer","RLR",18,"Relayer","3045022100c20b040b263b37b389be4408a1cd2b73f42ef902da4c99b38a9c231934c0453e0220656e20c18302d85a77e0cab6d0815387d93d66f703361e380b72f2ea34953b96","0x5b3F693EfD5710106eb2Eac839368364aCB5a70f",!1,!1,null,null],["ethereum","release_coin","REL",18,"RELEASE COIN","30450221009fe2d78c0a7c81bb67f9e758b0107639126b34ff2cbc9d62d19b3db7b200f0ee02205851ff741ff6c4818305abc628e3e670ad5f7e3cd6a3cefa88f0d6582964592b","0x61bFC979EA8160Ede9b862798B7833a97baFa02a",!1,!0,null,null],["ethereum","relevant","REL",18,"Relevant","3045022100be14b649ccf3fac6f6a5fce92e4ca23f1996a420b797df9ac4d0427a779fd7f6022000e0f793d8255ec1e455c3d450b2764548b610f70efffd96a017b9ba65e07297","0xb6c4267C4877BB0D6b1685Cfd85b0FBe82F105ec",!1,!0,null,null],["ethereum","relex","RLX",18,"Relex","3045022100c5bef94d0440e3bb01982e0f4da2c04d20c9c3899b5f1183073353c8fc6233a10220755785adc38520e9cfc3d3b55ee6c9e1bafc509e081df77ed86f48e4d105bf82","0x4A42d2c580f83dcE404aCad18dab26Db11a1750E",!1,!1,null,null],["ethereum","relite","RELI",18,"Relite","304402203999367d00513fe67294195415da2989efa59ca6ce4be5ffbdf37b2342a2cf87022051995b0df5474627e1f3984f08583eb08c2da85b3449b189bf1bd35315ee0849","0x0E58ED58E150dba5fd8e5D4A49F54C7e1E880124",!0,!1,null,null],["ethereum","remi","REMI",18,"REMI","3045022100984c1f3b4ac6931466717265132da035fa4442f1958e77d48a87a1b3026cdd4002207623db609fef6c163f8428aa3e922ec3e9b767b3d1dd42855f35b6703a952c9a","0x13cb85823f78Cff38f0B0E90D3e975b8CB3AAd64",!1,!1,null,null],["ethereum","remicoin","RMC",8,"RemiCoin","304402202de090afb74ec5b19abe1e82032a2523ff296a2df14f56d07be781499437c49402205cdcbe9e5bb49463bb452e60de716d10dac3d12ffe3a503021132fea341af2ef","0x7Dc4f41294697a7903C4027f6Ac528C5d14cd7eB",!1,!1,null,null],["ethereum","remme","REM",4,"REMME","3045022100d6f0f9d0f3395e10a76d00c2afccd71f4765690fbdd992f8f89b82a2578be02002204297ab83d874349e51ac1da6aa4d5e5f7a2e555aafc9cdfde51895c8c932f0da","0x83984d6142934bb535793A82ADB0a46EF0F66B6d",!1,!1,null,null],["ethereum","ren_btc","RENBTC",8,"Ren BTC","30450221008edf4cc5a53683db2372eef95bad6f6c1ad23f40fa5f56cfeced5ccfd0fe528702207cfffc0e35d1abb1d2770e407fc3535da6a856a6732887723a16e3b8ca5121d1","0xEB4C2781e4ebA804CE9a9803C67d0893436bB27D",!1,!1,null,null],["ethereum","rena","RENA",18,"Rena","304402207246b29248d837498e032e26b9541f117222dbb218edf85acc7f50df9c2a3224022072afeda40af17ea741548ff1a25ac909548f168a4f8ecdfc7ceb52541375df08","0x56de8BC61346321D4F2211e3aC3c0A7F00dB9b76",!1,!1,null,null],["ethereum","renbch","RENBCH",8,"renBCH","304402201736e0e98081acf04b13888e9bff43976ff043406d23c0aaca02dfbed3e69a7e0220597e59b9291973cde0279c63cea54981d45b3fe9e5f6cf41ea09b63828493461","0x459086F2376525BdCebA5bDDA135e4E9d3FeF5bf",!1,!1,null,null],["ethereum","render_token","RNDR",18,"Render Token","3045022100857484c08b34fcc50d7cecb761a6652aefc15753fb9bac466d5de25d8a80796802205e8e38ad8b8732da6615633ff47ff8c70a4f02da0de3c177b5f6d2218dcf7c25","0x6De037ef9aD2725EB40118Bb1702EBb27e4Aeb24",!1,!1,null,null],["ethereum","render_token_","RNDR",18,"Render Token (Old)","30450221009efa27d87442f3c706e7a04e9a9221efb0b49a59ec815b64ffb5524a7aed4f1902204df0a5989173144fcf432bd6d2570725e053bf3f8615d57f9dd21c3128d38f0d","0x0996bFb5D057faa237640E2506BE7B4f9C46de0B",!0,!0,null,null],["ethereum","rendgb","RENDGB",8,"renDGB","3044022027a5443627153046c3d50a9378dcc2e78b048f97f3e6ba5c61788c0eda3d6d21022042116a8e2ca94c93a9e7d9455da1b2d8468641ff966195f318429a311267d903","0xe3Cb486f3f5C639e98cCBaF57d95369375687F80",!0,!1,null,null],["ethereum","rendoge","RENDOGE",8,"renDOGE","3044022026d171f311adbb243b772874dc8c5a509d368190bce4e5026647baa9351164f402206aec2dcc928d1f10d217fe810fb48c33b7274a10f3a273dc116efb43d11995fa","0x3832d2F059E55934220881F831bE501D180671A7",!1,!1,null,null],["ethereum","renfil","RENFIL",18,"renFIL","3045022100a83afa4d8cd661bc1a67faeb78c09dd94f2fef2034caf45eaf62b44982ab329202207290fa267d163f1566f4d635508600c875a35454c35647127ed69d2511ab358e","0xD5147bc8e386d91Cc5DBE72099DAC6C9b99276F5",!1,!1,null,null],["ethereum","rental_processor_token","BRP",18,"Rental Processor Token","30440220629ad96280b80aa141ab05f2f3c4d9cdb3a1c9d4e7f5faacee9331348879903202206722fab409a6b3d33d17124d2566e482077a64da8cd4b4dd22db3810ab90aa97","0xB22c2786a549B008517B67625f5296E8fAf9589e",!0,!0,null,null],["ethereum","rentible","RNB",18,"Rentible","3045022100f864e3927f80fe37b9e0ca8d6e02e1a21d035ca423bcbd4bab4cd5eea3f82a590220244e9faee6c21caf41753eb0265c6f9872c245a88ef41351690dae6677823bee","0x2A039B1D9bBDccBb91be28691b730ca893e5e743",!1,!1,null,null],["ethereum","renzec","RENZEC",8,"renZEC","30450221008ca5130bccb0817e13596b75e1ae104633300aa1540cfde06fee1e02268c59e702200081a1f5dc107b27d78e188985c73ae846754a53d21e6f11524e270b2d16ff97","0x1C5db575E2Ff833E46a2E9864C22F4B22E0B37C2",!1,!1,null,null],["ethereum","republic_protocol","REN",18,"Republic Protocol","3045022100a916b274bdbc74034baf75e7863c67318d70336a99fc5a27bc6d843e61081cee022074ba3f223015f7d59c007771fc7674ad97438ffe6ce85755999eb4805b3b7bf3","0x408e41876cCCDC0F92210600ef50372656052a38",!1,!1,null,null],["ethereum","reputation","REPV2",18,"Reputation","3044022047bac18908873e17848a73b8c6b9aabe60766a1f52a57d16934896bb7b64d447022020c3fdadf85c6854ad341861976b91a01252ec5e6b7a7a72d8c45d1af24a564a","0x221657776846890989a759BA2973e427DfF5C9bB",!1,!1,null,null],["ethereum","request_network","REQ",18,"Request Network","3045022100c418f4e1c9273218c443362c9726dd4f83e220bcf7eb831158f0eb865f01f0ab02206f36e2f449d0868939b0a5d04b97859d601df3ad9a8a44c5f751975a14bf21cc","0x8f8221aFbB33998d8584A2B05749bA73c37a938a",!1,!1,null,null],["ethereum","reserve","RSV",18,"Reserve","30440220149c1c51518c08ad259b446ea1e63de3f236e6e263a910c35451a8ce1517826c02205ae7cf7da32717d05ecc222589c3302a66b1dc214ff739c7b3cc7fe367a51da7","0x196f4727526eA7FB1e17b2071B3d8eAA38486988",!1,!1,null,null],["ethereum","reserve_","RSV",18,"Reserve (old)","3045022100b010e508b16d883183a2daf3a2b821eacc140f5ec6c8c8e6c2c417b1bcf45fe502201bd916c3feb46e41334d917fead709a1acb4b4e3eadbcb31f4747af64f5e7b59","0x1C5857e110CD8411054660F60B5De6a6958CfAE2",!0,!0,null,null],["ethereum","reserve_rights","RSR",18,"Reserve Rights","304402200347a1f5bb6293d65caeedef65f7c74bb8c1cbfb003dc96a7d3e6c99d1f8aa9e0220702cf7b400f9521233c9cb1d1d46ae735552758cb630c370fda90a3f877f7c7b","0x320623b8E4fF03373931769A31Fc52A4E78B5d70",!1,!1,null,null],["ethereum","reserve_rights_old","RSR_",18,"Reserve Rights (legacy)","3045022100ed99fca3e0eca99e7ef6253fa7b28f824779e7cacf71b699cdbdef918e17b3c8022021d77ce6f19f0a8ea0cd1176393ce291daff7c85be2412231745f804b9c792cc","0x8762db106B2c2A0bccB3A80d1Ed41273552616E8",!0,!1,null,null],["ethereum","resfinex","RES",5,"Resfinex","3045022100e95e98475d1b357b454827e6d2962e293970fb47cc8b0cf7b700e846fab6ad88022028f8ffd5e18dce36c294c2d6ac1e653355066dc7eeb2a8360ecbc4c3140b2287","0x0a9f693FcE6F00A51A8e0db4351B5a8078B4242e",!1,!1,null,null],["ethereum","responsible_gold_coin","GCOIN",8,"Responsible Gold Coin","3045022100f08afad129053be320d52ffec3b1723bc98006d2dc57e097033df3e86e8a7742022078d4e9d781126ec921fd1af22dfc311d243d19babf490637670dea7ae03222d2","0x6104e7f7B45BcF9763b8215728Dc462354670f61",!0,!0,null,null],["ethereum","restore","REST",18,"Restore","304402204f871f5e5463e3c8e161805436d29451797579e42381e6134871bac9d352de3d02205566288d4fbf106a02cba3b50b5f8af025c17bc2aa0234e613c7e5841a59b9b8","0x6753795d67eD0b2b65B57FC45C7Ac0F53b55f4FE",!1,!1,null,null],["ethereum","revain","REV",6,"Revain","304402205224de023da5fdb27a8d0a96b5b5b6f25c4c6ad1663b913e7472aa2ac2b6cb9302204beba1445594ea19564ac2b9ec381505f3fcef76b908af103ab6c868278db98a","0x2ef52Ed7De8c5ce03a4eF0efbe9B7450F2D7Edc9",!0,!0,null,null],["ethereum","revelation_coin","REV",18,"Revelation Coin","3045022100d8087e4e0d103102350c95cf2c0158d5139fc24974ebfa60f614fadc5090a86802201a72139b4dc67cd29133168698cc586a9693abf3e290f8274b086997410c3607","0xe6Be436DF1Ff96956dfe0b2b77FAB84EDe30236F",!1,!1,null,null],["ethereum","revest","RVST",18,"Revest","304402201e72c17a68e64a5f9e80742b774c87e3da5830e64c408892d7dbfdf2f03cd94e022003c6c33031308e2e6ee09560bd6224ab01dd2cd898aa38cb5799d5b725127967","0x120a3879da835A5aF037bB2d1456beBd6B54d4bA",!1,!1,null,null],["ethereum","revian","R",0,"Revian","30440220355357c9c9846e9d17a4da1868ededfd208796c35c2672451a974d2af69d04be022031da2d125b7bed4cc1ae01dd32ea0f113c92ed1646e2152c7305110129806e18","0x48f775EFBE4F5EcE6e0DF2f7b5932dF56823B990",!0,!0,null,null],["ethereum","revolt_token","RVLT",18,"Revolt Token","30440220201e2adaf07c7255a6712345cd5162167c696b48f30ef545ac407a55e276389602200a3886725e005be87387cd08cc0a7070ccf572877a98a22803fd46b1af71a1db","0xde865ED1C50E753D248a0f2c9C5AE02b9E41B6Ae",!0,!1,null,null],["ethereum","revolutionpopuli_erc20_token","RVP",18,"RevolutionPopuli ERC20 Token","304402205418e53b80f85306ef99927afcab090ee2c11d22ff00cd8281e62c01252e10a40220587405ba31b36d6e791c2c98e6dfc47922e1cabd050fdb12482ecc31027124a0","0x17EF75AA22dD5f6C2763b8304Ab24f40eE54D48a",!1,!1,null,null],["ethereum","revomon","REVO",18,"Revomon","304402206ca35e5b6ac663b0d264820b6890cf23069616768803d85acccbb0f727bb911602203722822409c6775c7554998d98c3029b5779f7715d9da4a37833c2698d2beff9","0x155040625D7ae3e9caDA9a73E3E44f76D3Ed1409",!1,!1,null,null],["ethereum","revv","REVV",18,"REVV","304402201cab1dcfc280859889ac04408f9e6cd19b56757a5ed38b0f5acf1125df5211a30220131e4bb93a1620e2b6e0ac456d595d994012232573174881914c253892d49a88","0x557B933a7C2c45672B610F8954A3deB39a51A8Ca",!1,!1,null,null],["ethereum","reward_eth_harbour","RETH-H",18,"Reward ETH Harbour","30450221009c9b5bf30b3a1949d71c12c4b5241e747e1cf38a61540fe580947103d1e98b4b022026e33a998fbedefa68e956822526991ca140f581c02c7f2feef2c9efd41ff58d","0xCBE26dbC91B05C160050167107154780F36CeAAB",!1,!1,null,null],["ethereum","rewardiqa","REW",18,"rewardiqa","30450221009fe761abba17b71f77ce20b4a343e888c45d7e0c8538fb989c2e5ab736e69732022064c9e8012e8184ea981d41821dd897d2de5daa3393b2bffc2fe6695efdf2fde5","0x3FFfFA8F3cc943e43f9f17a83Cbb18f4Bbb9f4AC",!1,!1,null,null],["ethereum","rewards","RWD",18,"Rewards","3044022010ec71154c1c3fda12a08c102969192965324cfeb6b85f26cdaeb0010108cfed02205d2cfe7a0ad27754b4d7b74922c2277e0832dce01c743bd21e5261763e20b60f","0xD80F72a6558ec337E0d4CF76b8752B17FA770860",!1,!1,null,null],["ethereum","rex","REX",18,"REX","3044022021647dbc7a9715b2d8edd883d8e4bbef9d0bd1c2a1b53dff1e7dcaede8740ee5022036aa75d1a8d8b1085c818de31e093faa3a2c7dd4d9a757db131b71f245bd3132","0xf05a9382A4C3F29E2784502754293D88b835109C",!1,!1,null,null],["ethereum","rezerve","RZRV",9,"Rezerve","3044022051ccb1ca34c1a846c9bcf54188ac911739cd2940e2f12de0b20c8572642a1bbe0220410dce9ecd4e442d283215978bf2316d77f59be972125b07ef3246dff942d503","0xE70b94C2320fB0289Db0Cac0cCBD60dd8F51ff89",!1,!1,null,null],["ethereum","rfox","RFOX",18,"RFOX","3045022100fb0a00a7068f23b3a019aaecb556ec2dc850fd4c94a5eb877e2b3e639ee84390022012089960da2072319ceb2a84e38f9ed9028411f9a11ccec0cf031cca59d09b77","0xa1d6Df714F91DeBF4e0802A542E13067f31b8262",!1,!1,null,null],["ethereum","rhea_protocol","RHEA",18,"Rhea Protocol","30440220698b510183b7b4c190c182fc953a7af2e014bb02e3a396ed8bb107169a22aa5a02201699395c0a07c56f31d3aa0259361c78ff92732e29f3d7b5b07c1fdb64033a12","0xf7A219FFFeaDe6Cd98789da5642b687F743270Eb",!1,!1,null,null],["ethereum","rho_token","RHO",18,"Rho Token","304402206c3d5b23240b61f6740f917a954d419c6def6880bff13caaed2df3817803bb5c022018e6a5f5185814529563ac9617cf6c9f25866a3edc2fe764b1c9ecaaf021be7b","0x3F3Cd642E81d030D7b514a2aB5e3a5536bEb90Ec",!1,!1,null,null],["ethereum","rhoc","RHOC",8,"RHOC","3045022100b63a849b793c156ba7440d513735b6582c95bd9f92ecf3e5cc7bc30842c8d57d02200b864bc1b804d698f215da4cf3d159297297d59de57a29c9c2a6515a69113546","0x168296bb09e24A88805CB9c33356536B980D3fC5",!1,!1,null,null],["ethereum","ri_token","RI",18,"RI Token","3045022100d296f097181c4f9034943c46dd2be453ee31f16a9ef88776bbd95beb046fe8e50220034d6826034a52e427ebe9e862c4566364fa7f7737a3061a632140f6fab81d1b","0x37E808F084101F75783612407e7C3f5F92d8ee3F",!1,!1,null,null],["ethereum","rice","RICE",18,"RICE","30450221009bae44cee2113d28b989a3af791b4341400a991e38731814d30d5d037b72a9c502207830cf89a2af2892f9201ce1ca17eb28d7c7b02f0da235bd1915290765831f2e","0xBCD515D6C5de70D3A31D999A7FA6a299657De294",!1,!1,null,null],["ethereum","ridertoken","RTN",18,"RiderToken","304402200d9bd0394f339ef00b4260524743235795cf5da04d74171b02092e7e6d201ab602201d8447e90d1edc3c3a5c0c3198c5344829ff95dd76b2f3105aeefd3dda882b90","0x54b293226000ccBFC04DF902eEC567CB4C35a903",!1,!1,null,null],["ethereum","ridotto","RDT",18,"Ridotto","304402203efb4538925fd854b2e4dc0471cb6bb104100de758707d54d452cd36e987f96202207cba7ec1b7710a2b80e605ec6dba7ba3f27d28f506715e93fa7f9de154b42253","0x4740735AA98Dc8aa232BD049f8F0210458E7fCa3",!1,!1,null,null],["ethereum","rigel_finance","RIGEL",18,"Rigel Finance","304402205fb926719d62a5176897b732d151370355a916e30aa16d01de635acbd4e4bcc002202d620b369593f6df8bf81010507fe8229a7026f9e23401f900b3fcd57f522571","0x4cA0654f4fc1025cF1a17B7459c20aC0479522aD",!1,!1,null,null],["ethereum","rigeltoken","RGP",18,"RigelToken","3044022045fa548185b925f350b497c01458c2a6896e1e622d9544df19e8fe62b79a5bc502205dd3c2bf9517fe0c6bd294bb05d237a2cfc67178493434570a20ed0a4529f037","0x4AF5ff1A60a6eF6C7c8f9C4E304cD9051fCa3Ec0",!1,!1,null,null],["ethereum","rightmesh_token","RMESH",18,"RightMesh Token","30440220755ba150bc1823ce3abdf6ac827c397d0999de85ab09aa8527d2b434f06e1a000220038486616e417fc2ea5e1032bd1b959fdc9d1650e8e7b3096817a627e4f4be50","0x8D5682941cE456900b12d47ac06a88b47C764CE1",!1,!1,null,null],["ethereum","rigo_token","GRG",18,"Rigo Token","30450221008f9af2ae3fcd01d39c6a9b5fc007acb48936f963b6bf0e37da00ec612f40347902205b2d1236caad95d4547edf335cc9d7f3b5f79ee93d4a35cd0b4d18018d38eceb","0x4FbB350052Bca5417566f188eB2EBCE5b19BC964",!1,!1,null,null],["ethereum","ring_x_platform_token","RINGX",18,"RING X PLATFORM TOKEN","3045022100f6c48f78d767377c76069e744834c4e42794afc05b3bd4eec30e7f5cb4c613c9022016b6c8a29a08641373f71e1310a29bdbd476002365abedd8ab4962daf6d64a79","0x7F86C782EC802ac402e0369d2E6d500256F7abC5",!0,!0,null,null],["ethereum","ringers","RINGER",18,"Ringers","3045022100e1f690ba86e3de847888e80dfb064a9d746b1ad7d45710233f1db5efb72c8a2a02202f6f9d17c4194b0558bfe5c18469bc25770d23c712eecdc647dc7418dd83dac4","0x13edcC775f8895961B81Db5C0205889B3Afb3A16",!1,!1,null,null],["ethereum","rio_fuel_token","RFUEL",18,"Rio Fuel Token","304402203a18fc6a781bd277edf239b44ba24fcea8679c47ee3bf0b8aeacb835d35caaed0220797321997f24bc072ce8865737e1bc141356b344401748f14894d7986bc22605","0xaf9f549774ecEDbD0966C52f250aCc548D3F36E5",!1,!1,null,null],["ethereum","ripio_coin","RPC",18,"Ripio Coin","304402203129d953d048371888fbdc82836d9f6f042e698ec1f348df39729cac2a850ffb02200260f589dbd052f4abac28766644782116f8dc0856a4908086182d6f03be3ced","0xEd025A9Fe4b30bcd68460BCA42583090c2266468",!1,!1,null,null],["ethereum","ripio_credit_network","RCN",18,"Ripio Credit Network","3045022100f25cd281dea496e9722dfcd9358999cef808b24373c7c8e559c0ca017bc94a9d022031a5100ce786af6e2d9315cc4b405be0a00eb33df41cd56053da567e4f236b7e","0xF970b8E36e23F7fC3FD752EeA86f8Be8D83375A6",!1,!1,null,null],["ethereum","riptidecoin","RIPT",8,"RiptideCoin","3045022100ca837995885e647015852c532268a167edb75a2a0d784ee9055bc55a3020944b02203145c2a7abd7c596b75558df1a5d15baa266edf4c8f151441b7d51a37aa9e1f3","0xdd007278B667F6bef52fD0a4c23604aA1f96039a",!1,!1,null,null],["ethereum","rise_protocol","RISE",9,"Rise Protocol","3045022100b90bc7ef8b37c85b6c3b18345bc9cc59236da8e9c379d6ea6322bc9a68e08d100220026f2180744dffb2797e2947af485eb023ea3e092900e5ccce7883a44b9e43f9","0x3fa807B6F8d4c407e6E605368F4372d14658b38C",!1,!1,null,null],["ethereum","risecoin_token","RSCT",18,"RiseCoin Token","3045022100829be9bc1f55e055f148870f38e18f180241fc1b1cc2041fe4b9883fede38e53022051b487934b4b47542d1c3ccb71ee76cb767c5549a16c0316263e0a1c296f34fe","0xC275865a6Cce78398e94CB2Af29fa0d787b7F7Eb",!1,!1,null,null],["ethereum","rivemont","RVMT",18,"RiveMont","30440220105fbe7724bb1a8ee27cc4bf6911b93caeec22caa7534ec2a2a2dd4f2b30addc0220096bc0fa95497feac21132210c20382797178c5624c59d4615a80304967617b5","0x43Ae53b8C920C6C69f4ABf393Fcb68A6dD4CbAB4",!1,!1,null,null],["ethereum","rivetz","RVT",18,"Rivetz","30440220316b0cbf315309177db75fcd0b902744632b45f2c0deb9ac645d6ed50525013802205c35632289c52bca60904d16f725b0316872cb2f221938a90e142e0eed5859e3","0x3d1BA9be9f66B8ee101911bC36D3fB562eaC2244",!1,!1,null,null],["ethereum","rivex_token","RVX",18,"RiveX Token","3045022100dd18f6e77b9e07c811fd781220067463575cbc751bc20a4d91713b303d9e2099022015ddf8d9b1dcb74fba5d99b100c342570ee0c25ecb13a1b0303c22d24c50b5bd","0x91d6f6e9026E43240ce6F06Af6a4b33129EBdE94",!1,!1,null,null],["ethereum","rizen_coin","RZN",18,"Rizen Coin","3044022007d790817bcbb57ecf2a749bcd398c59f8c66205f476e68253e5e68b32c3b4da02203665b245ab4f4db4c19b64d854d5518ba75305299650b0b86abd324cd45fdf30","0xd8c82FbC4D8Ed0644a7eC04cF973e84c6153c1d7",!1,!1,null,null],["ethereum","rizubot","RZB",8,"Rizubot","3045022100a3c764147379feec60f26e7e575271a1cc49e717c5651d0ff88014a19b821da802207daa543a249f16728a34f25ab8fddc1515e49ebae4a6b2024605a922a0aa2087","0x429Ac77F069BFF489e2d78F9479e1E933305c528",!1,!1,null,null],["ethereum","rlt","RLT",10,"RLT","304402203aaa5f409a13ee589a69466860401e1cf6e679b15dcee0ff2a70c31fb71b5f9502200fcfbd19cd9b4897cef08babd676dd97182774536780cf259d1cf984eff781ae","0xcCeD5B8288086BE8c38E23567e684C3740be4D48",!1,!1,null,null],["ethereum","rmpl","RMPL",9,"RMPL","30450221009cbc139b0b15699965a472de8dd010a93c680f29a58a89b3b8785796f9cfc08c022050560cb12cb312c9b361466baaa1116430ce06e9e87294126b5804dbd616eafb","0xE17f017475a709De58E976081eB916081ff4c9d5",!0,!1,null,null],["ethereum","rntb_token","RNTB",18,"RNTB Token","3045022100c9d46df5db4ad237fb5c8b6fc3425ca94b2f6f89cf7700a9bc2379782a16b01b022069ce0ae66c61468d1d4f19899c8787cfdf5e80e8a5a5b0e94c8b4b594223ced9","0x1FE70bE734e473e5721ea57C8B5B01e6Caa52686",!1,!1,null,null],["ethereum","robet_-_truly_decentralized_sportsbetting","ROBET",18,"RoBET - Truly Decentralized Sportsbetting","304402202ab2904804e29511186f4070e3a93f88b67e0a7c109dc84a1bfe16c06abe30d802205c5d86b6ab025b94ff0628803023382afab2b6f49ad4c6c9820d092bba1012d8","0x2344871f523cBb28A4f60045531184cF1F03Ad24",!1,!1,null,null],["ethereum","robo_token","ROBO",18,"Robo Token","3043022073d7efed8ed9c1f4cbec69a73782f9e7f11bb853156ad00f64846f33b4b45710021f5b7e1760dea4a3a24054a5055ef72829826ec6bf2e88bf33676c9d226bdf20","0x6FC2f1044A3b9bB3e43A43EC8F840843Ed753061",!1,!1,null,null],["ethereum","roboai_coin_r2r","R2R",18,"RoboAi Coin R2R","304402201bbd029316f821ff2bedac9adb7fd524b01ac865fcd20bb9445aa951616033a902200c2245feadfcec5b48299e8232d6b1de39fad396add388a924b28469bcd1c041","0x688fF43c3c19e4714f0BeB76df8Ee394207Ab411",!1,!1,null,null],["ethereum","roboape","RBA",9,"RoboApe","3045022100b06a762cb5e77d804cb23a27f6c9111559c11f4afcaf19a5679929d432412034022065fbf48fa2b068036d0b33a963936a97fdc40be9bc7b5c667ac6c05e17952058","0xD818c65974DeEFE9b1305b4d70B03E91390f5dd3",!1,!1,null,null],["ethereum","robocalls","RC20",18,"RoboCalls","30440220039d669ae7956108946f81da15eccd18c5ce8b2e9728fb3f259c0add7a6bf25c0220256af92eb5a43d28d3286da689410d125ab70d1433785ef73381817689b06e1a","0x61B2d3eA9f1c6b387C985C73d40e8fBfb284E5C7",!1,!1,null,null],["ethereum","robonomics","XRT",9,"Robonomics","3045022100a912b1f0acc4a37b6e20be09e9b39c6316275434df414a9ccac9cad888123cff02206462fec349415648d662c371938936449926457193c54b4bd59a9aab63e50949","0x7dE91B204C1C737bcEe6F000AAA6569Cf7061cb7",!0,!0,null,null],["ethereum","robonomics_web_services_v1","RWS",18,"Robonomics Web Services V1","30440220653e439b25a650b7f828f128c0b9cc58d177c85fcb10a9b49170d21609a0da3802200897e9a1b53f406cfb565f0e9c3013886f1ec90a8c8003ed09bde9d2d7aaddfa","0x08AD83D779BDf2BBE1ad9cc0f78aa0D24AB97802",!0,!1,null,null],["ethereum","robotina_token","ROX",18,"Robotina token","3045022100a842594bcfd61d4e85087232e6a87fa56877625d1086a151d8b1fb18058cd3e0022078b68446bc4f39f6d5e38ddb899a3a656e52a85ef5874ea9b70b13ac05d7dd16","0x574F84108a98c575794F75483d801d1d5DC861a5",!1,!1,null,null],["ethereum","roc","ROC",10,"ROC","304402203448adbbbd59a4ae60ed74867c29c972ea362f5d7902940f413175b4eca1385802202c568d316176ccc91dc92fd21133dee739ba1302f89fc490dc7e0e85bcd53a30","0x1BcBc54166F6bA149934870b60506199b6C9dB6D",!1,!1,null,null],["ethereum","rock","RKT",18,"Rock","3045022100d654c604355ba2fc9ef90b1e9883b7ed4ab67f902ae26ed44ae42e64e4fa5e7a0220164245e76c9e8aa0be11af6e6907a107e2a95b0e4b42baa9ca031b26eb950465","0x106Aa49295B525fcf959aA75eC3f7dCbF5352f1C",!1,!1,null,null],["ethereum","rock3t_3t_finance","R3T",18,"ROCK3T 3t.finance","3045022100f247519d956137a10d397053a68cd1c269b3f6554aeb3a9f2a7e585a8325c878022058b38b084b23e09ef6025951bfb0e53fe1a7658fc42895eab90ff89eec04fd07","0x8C7424c3000942e5A93De4a01Ce2eC86c06333Cb",!1,!1,null,null],["ethereum","rocket","RCKT",18,"Rocket","3045022100a02213546738c8a39b6536c3af290c5684255b2e28455e2b3d01c0396ade7842022079e8472dae65f6a4f1ba97ed2f91421e6a636e1fc245361ec40ca18e127a0335","0xbD03BD923c7D51019Fd84571D84e4eBcf7213509",!0,!1,null,null],["ethereum","rocket_bunny","BUNNY",9,"Rocket Bunny","304402204e98b644446cd9289728538aa748d6d262a700ab3120a07b04f094b9d273e5360220387cd687908255715fae42d570993ecc83756f615e49c420afd62a605ca99ca5","0x3Ea50B7Ef6a7eaf7E966E2cb72b519C16557497c",!1,!1,null,null],["ethereum","rocket_coin","RCKT",18,"Rocket Coin","304402200c301a939c1f8dd4316b88587cf525681d5cb82fa6821b6ddc09594c22ab0bbc02205dbedd785cef230f4ec04da7449821fb3cf3178a0af94b00f881544ee70dae76","0x78571acCAf24052795F98B11F093b488a2d9EAA4",!0,!1,null,null],["ethereum","rocket_pool","RPL",18,"Rocket Pool","3045022100b7c1e7ad930c9577e125632fc75655420c7b6a60ab0fa937a6f31f177469a180022018c672562a7350fb2c53fde9b9f1caa7459473f70c7112736665350642e845fb","0xD33526068D116cE69F19A9ee46F0bd304F21A51f",!1,!1,null,null],["ethereum","rocket_pool_OLD","RPL_",18,"Rocket Pool","3045022100ba01626eaac4c9a7da5845427c393cfdd8332b70f1cbcec820ccb91d30c36b330220262b7dc6e546f4ccb39f28b014cc02c37c5003905f6b8df8a5fbea7c20505ac9","0xB4EFd85c19999D84251304bDA99E90B92300Bd93",!0,!1,null,null],["ethereum","rocket_pool_eth","RETH",18,"Rocket Pool ETH","30440220498c5d7baff339127b295f71e2eebe4faf0cea7e1cec985b51af367fb5e51b020220141e46f2759042c0e82a313d5a2dfe632bd4f0957304ff35879de2809ecd38fe","0xae78736Cd615f374D3085123A210448E74Fc6393",!1,!1,null,null],["ethereum","rocket_token","ROCK",18,"Rocket Token","3045022100cd5ffde5dd138f4162c5de2bfb810cb6fc6e0e86c0ce7fa00c1a6e32412a17e70220246b68753eaa0973e66ae6ea54afeba3fc4f2b588d71378c0187f9c78d96abcf","0xA40106134c5bF4c41411554e6db99B95A15ed9d8",!1,!1,null,null],["ethereum","rocket_vault","RVF",18,"Rocket Vault","304402201063f4cfd925d52333918910f92a24829bc74efefc3d02b43d2d751338ce460902200918a9ca706d9602fe1ec99d5e76b3f32e5f3e9fda885dccbe2c03425c2b518a","0xdc8aF07A7861bedD104B8093Ae3e9376fc8596D2",!1,!1,null,null],["ethereum","rocketchain","ROK",18,"Rocketchain","30450221009b05a3d52676817147d310556b7b5a1319d26ec426877bd56dcf44db2c01dac002206e31e5299a0d6fa30837b94f9ea6388bf2ae45c51ce0bcd003b61fab41cf3948","0xc9De4B7F0C3d991e967158E4D4bFA4b51Ec0b114",!1,!1,null,null],["ethereum","rocki","ROCKI",18,"ROCKI","304402204c48b883941ac301b44c1f87cae18e9d202eeb7df8d6430b48dc0f3f3812087102206a0b5ef5d8ae4ad8197bde4f1889c8e84d107681aa0eb89561638d6453452d0f","0xFf44b937788215ecA197BAaf9AF69dbdC214aa04",!1,!1,null,null],["ethereum","rocks","ROCKS",18,"ROCKS","3044022063248c59727000b1d127d3e5d97e453d75856082c7fc385a91f7e2bcbde8683a022071e438c968f0353aadf96c854009746b7a4714d22529be73d08a28064d8a8fe6","0x92ecE48522E1aCbcda4Aaa8C2fBF2Aa9FB15D624",!0,!1,null,null],["ethereum","rogue_doge","ROGE",9,"Rogue Doge","304402201af78610fd8fd719b13306e4a4fe8de642976f2da3bbe34135a892aaf2b5ffca0220046e153c4f68ca7f3a209e2109b6427b94e6713b44bee31e4bd8a2f081985f77","0x45734927Fa2f616FbE19E65f42A0ef3d37d1c80A",!1,!1,null,null],["ethereum","romtoken","ROM",18,"ROMToken","3045022100cd1305a94a54cb77fe2b65a83a14440a34522e7f483b187a90b6e1a2d8dc5d1302207dd97dfa9202783ec0473e37317e88b0bc65dde14972bdf4f014f8daea8ac9a5","0xacACa5b8805636608e14C64b0bFFfC2Deb2C6cEc",!1,!1,null,null],["ethereum","roobee","ROOBEE",18,"Roobee","30440220288a56f439ff1fc6402792583230159eeb4b73cf643d7efedbee86000adb5fa802205f98096ddc530b0d9de8bb08ba1aad843db8c4f188721b841b321b96c8290eb9","0xA31B1767e09f842ECFd4bc471Fe44F830E3891AA",!1,!1,null,null],["ethereum","rook","ROOK",18,"ROOK","3045022100fec01e7388397e81d0fd36546ad9ebe849608330d607b22f839a9892a73bf2d20220282a2a2a8c87d7958801a92059a3354d6cecf94f5902a090786667a81dec07ae","0xfA5047c9c78B8877af97BDcb85Db743fD7313d4a",!1,!1,null,null],["ethereum","roonex","RNX",18,"ROONEX","30440220543dd019962ae29b87892dae262046d22aaeab719a9121bd956d1df8543db50a022035aa4d59369a8ae0be15392fafc3b713e3e76a9cca55e2db2200fd045efb77f6","0x72a6344185B383035d6665C3f44a9DfCC73873c8",!1,!1,null,null],["ethereum","rootkit","ROOT",18,"RootKit","3045022100b54b854f0cb094fc2526574253228f00b2da44f0b000816c2b5c9aef8585bdf90220136ae0190a264f1f0fe1dcd486c3290441b953d00116a9bb64a22fdb700194a8","0xCb5f72d37685C3D5aD0bB5F982443BC8FcdF570E",!1,!1,null,null],["ethereum","rotharium","RTH",18,"Rotharium","304402204fc437cc840cb826157ced7e72760bdb3d23852d44234ac7658c0b4a650703ad022027f82c99eade69a270b84ae3f4e0f744c97d293e70cdc39a9040e04accf0dacd","0x3FD8f39A962eFDA04956981C31AB89FAB5FB8bC8",!1,!1,null,null],["ethereum","rottentoken","ROT",18,"RottenToken","304402205debfef24784e87f6b6fa949afdb10c4e9e6b76f0c49b9ac56aacf198d0ef26202204d87d852ae9d2715849be9d038b6e7c8a3b29e970f1097a76feafdf762b885d2","0xD04785C4d8195e4A54d9dEc3a9043872875ae9E2",!1,!1,null,null],["ethereum","rougecoin","XRGE",18,"RougeCoin","304402200cae9771838fb5ab1c0a6913a1fea550a330c054eb698e11d1cf11397593b57b02203185cc367e212dfa8645eff0c71d76588450e5a42d34056ec73835a419768ad3","0xA1c7D450130bb77c6a23DdFAeCbC4a060215384b",!1,!1,null,null],["ethereum","round","ROUND",18,"ROUND","3045022100c6981413181583adf6a5dff93e9f55eae14e46b380ea6300904989f435812bdd022027db3251b0525f5abd82729eb87d6d50d04a7473553cbe21a6c50951c790c090","0x4993CB95c7443bdC06155c5f5688Be9D8f6999a5",!1,!1,null,null],["ethereum","route","ROUTE",18,"Route","304402200322a8f611489f631a671d344718a88f0627293bc82d1098e35a03488baf64ad022058f77e621054c884024e61bce72b4075b8393e880f018336911d144542e7b1c8","0x16ECCfDbb4eE1A85A33f3A9B21175Cd7Ae753dB4",!1,!1,null,null],["ethereum","router_protocol","ROUTE",18,"Router Protocol","30440220027627ffc601eea726900e0b5eff188109b9347533b2305538a8a1133f3475b40220214382d5a35ed73ae67609e7f0b8342998091a2b54d5082c398d5ff5f9bc09f4","0x52502535375D32BB3581283aCB7Ed19507F16dd1",!0,!1,null,null],["ethereum","royale","ROYA",18,"Royale","30450221009a00c64cb57d8167b237b720997df98f1929e30adfd0f922953dd431bd79b3aa02201e9e55b5025f07a67898a3c0df92abd3d53e467d56a191f9d507856c2b38fd4c","0x7eaF9C89037e4814DC0d9952Ac7F888C784548DB",!0,!1,null,null],["ethereum","royaltycoin","RYLT",18,"RoyaltyCOIN","3045022100cfecb5dcfadd840db35a252fb52c1dd4e6d972ab59831e0dd32498e25ebcd93b0220211a6a8016678fac6daaa158477c885d63af6b82152166e000a51e9263aa8e5f","0xd30a2e9347Ad48Ea208ee563a9CdfD80E962a727",!1,!1,null,null],["ethereum","rss3","RSS3",18,"RSS3","304402200bd47c3705ce44dfab860f31901c10a49a026ce9b705b1aee713f2175ca16a54022040bcf8162d8f8574bc77946761eb7d14a9d4e77b140e7b4d7748bdf34da93cd5","0xc98D64DA73a6616c42117b582e832812e7B8D57F",!1,!1,null,null],["ethereum","rubic","RBC",18,"Rubic","3044022067964bf425efd61316741458ff0a4216664d52e8d736cf4f1fc486acee196058022076f3c497a8780c2b16fd3963b016b5bc8ac1d537287ac9662491a8f937b5296f","0xA4EED63db85311E22dF4473f87CcfC3DaDCFA3E3",!0,!0,null,null],["ethereum","rublix","RBLX",18,"Rublix","3045022100944157725ca573311b1af688e616970e8d3d5f2d0ffcd6d0f847da9fd181beee0220580d76b94d3e5b4129dbe926fb67fa9f29e8aeaf37de2ecd4a4e18d31168d34f","0xFc2C4D8f95002C14eD0a7aA65102Cac9e5953b5E",!1,!1,null,null],["ethereum","ruby_currency","RBC",18,"RUBY CURRENCY","30450221008922a07d16899ab6821b00ed4488b382433c30a63ff70d707921fbfc331a08f502201773b9ab2f33d906552976725e439251a20b68775fa5460f679af2a15c04f2ea","0x5590e22f78441da30463B55c3db0b5eA80cAbccA",!1,!1,null,null],["ethereum","ruff","RUFF",18,"RUFF","3044022038edf5602b8f8b5498cb4c85009b50efcef07f225c5ee90abbe87eacf5ef011b02200377073ed7c1096df303de9a8681ba0ef2d5f274c3f6eecad4873bdb6cb0c6d5","0xf278c1CA969095ffddDED020290cf8B5C424AcE2",!1,!1,null,null],["ethereum","rug","RUG",18,"Rug","3045022100da7799dae48d126a0a14ff248abf4c63864f565c41475d45b71274e4b83226dc02207d80312c72039b90c28d2a6facaf4ee479c78df54f84d3de9eb15b14dba7c66e","0xd0Df3b1Cf729A29B7404c40D61C750008E631bA7",!1,!1,null,null],["ethereum","rug_proof_token","RPT",18,"Rug Proof Token","3045022100c20c1c8ca2a6c4a907b784cb95607e70f102496a68e013c746524549b8c2522e02205cc16c80942eacf5e71c1edbaef036c8bd0e4218db86c8a04ae6bcd4722114bf","0xa0Bb0027C28ade4Ac628b7f81e7b93Ec71b4E020",!1,!1,null,null],["ethereum","rugrelief","RR",9,"RugRelief","3045022100acbeebca54076fd8decd850b378697871ab5da5eee67450d13ad609c528e2ccb0220085b96a3b63a568d0120649dd3b17209bd4dd32288634525be630568937a66a0","0x20D7089110c29498D17137F5D9656055105041D1",!1,!1,null,null],["ethereum","ruler_protocol","RULER",18,"Ruler Protocol","304402205e011814ec07ed45b40008ce00a8356c973b00ef8dcbb0e7705f6ed4625cd7a10220373c6a3642640647f1f812b5c81194977dc9198862a9704f2855094de09a4ddd","0x2aECCB42482cc64E087b6D2e5Da39f5A7A7001f8",!0,!1,null,null],["ethereum","ruletka","RTK",18,"Ruletka","3045022100ac3d91b141a1b1dabd58f41b3558f6352d94163c11b5b8aa37c6b863c0fcb3bc022007bc4a1fb62a6cc0c160434189168595cc3e984a4e3469c897521ac9452be6ac","0x1F6DEADcb526c4710Cf941872b86dcdfBbBD9211",!1,!1,null,null],["ethereum","rune","RUNE",18,"Rune","304402202ee5c7f6fc2291ecd077d0c2ca7c9b9e63b9231e65721e9aa9f86d75ff4b7d9b022073f1af959fe43a3eaa3e317b327a165bebe743d2f98d1e5693c77be27c5706b2","0xdEE02D94be4929d26f67B64Ada7aCf1914007F10",!0,!1,null,null],["ethereum","rupiah_token","IDRT",2,"Rupiah Token","304402201b0ab7173e9783e200dad7368fbdbf7001b1a6bef1711fe9a144da4e6cb255a30220406bfc365b8faf9e6096a1467d5d6810971b201c4400c2019c1b727b75ccdcc9","0x998FFE1E43fAcffb941dc337dD0468d52bA5b48A",!1,!1,null,null],["ethereum","rusgas","RGS",8,"Rusgas","30440220027cff33eba34029f462de5fc8e14d7cc64bee735e42a5fb99901d430b8882ed02203f259d9fd8b8bf8368137fb4fb61043e962fe30fd4d379907a38ee91579fbef9","0x4c383bDCae52a6e1cb810C76C70d6f31A249eC9B",!1,!1,null,null],["ethereum","rush","RUC",18,"RUSH","3045022100c9d80db5b4e3d793754a3c90ea8f2856ba19e6e485b5cbe2d5327c0b218c5e6602205857d866b08b960e072eb449e6fe6d5a39d1f193e5aee166f83919b17e02e153","0x395768AeB16484E5785612a98E9408e4Cc1269Ec",!1,!1,null,null],["ethereum","ryi_platinum","RYIP",18,"RYI Platinum","30450221009e18f4538aa3e48391b1ac233989d9f7f5f0563d75a569dcd10331828a260c9702201c941926303306029c6c43d0edb5c8c7543162fddd584d85ced20535bac97c5c","0xd78e5B24AaE1BD03A488aF642770E2aBb986F9D5",!1,!1,null,null],["ethereum","ryoma_token","RYMA",18,"Ryoma Token","3045022100f6f96f28ecb68871e5fc85d3a1cedb5f25f2f0e492609e9a54cdbebeae984734022055b2e6cba80e36da4eae5b0ee640c436616fe3b8074ff760912faf42c6cbd01f","0x2b8A66201665cD8c36ab9F39127221847110Aa8e",!1,!1,null,null],["ethereum","ryoshi_token","RYOSHI",9,"RYOSHI TOKEN","3045022100fe30f31837dcca809ce3b331ad6d77ff3bf4fb7bb788f25c6c300bef1d8d09ce02207abb1d1e9056c0be59d13dde4efeba63e11fb5fabbe7ebb46ba6655aa872abbd","0x9Ac59862934ebc36072D4D8ADA37c62373A13856",!1,!1,null,null],["ethereum","ryoshis_vision","RYOSHI",18,"Ryoshis Vision","304402205c605d080bcc989dd8be8b841034ad24ff3e6f83d9d40c88d0aa8a2187b45e80022016c51cd688dae40d6454fd905240b1f7b740b6017bc002c411a3dbf68eafa174","0x777E2ae845272a2F540ebf6a3D03734A5a8f618e",!1,!1,null,null],["ethereum","s4fe","S4F",18,"S4FE","30440220664bd2ab35b3c9d4d0c95094a39c97c7f75c43da61630bbace7ddc339ed1801102202600b3605632bcd978fac3afb1195d56554086b3325830b5ccadc0f1b11f391b","0xAec7d1069e3a914a3EB50f0BFB1796751f2ce48a",!1,!1,null,null],["ethereum","s_eth","S-ETH",18,"S-ETH","30450221008e7266d4a942fa243f86c4f228f668adb61f8284a2f8503ae7e170a8359f996b0220324a694aa6b5a016a2a0ad5e528d6f8fb202f6b2f1d8ddbac261b7f4e4f64413","0x3eb91D237e491E0DEE8582c402D85CB440fb6b54",!1,!1,null,null],["ethereum","sac","SAC",18,"SAC","3045022100fd9ee13098ca027ffb91e51a18ce99470e23ebf01f3c91c1e0265b07b4b559c902202222b7b7c8b235074087b14bbfc8c2257514bfc74f38fa81426b19bb1e7ce842","0xabC1280A0187a2020cC675437aed400185F86Db6",!1,!1,null,null],["ethereum","sacks","SACKS",18,"SACKS","3044022052b7a085f127f85adc3d45d57da366fa5fe73f8223771e68a7a60c5bcf11fe780220058bb3e88fd9246df180e9566620042dddc78857b4601129e7c7924544946cee","0xa6610Ed604047e7B76C1DA288172D15BcdA57596",!1,!1,null,null],["ethereum","sad_cat_token","SCAT",18,"Sad Cat Token","30440220793f097188620459685b2b30a4ab66d03337e06b517e56264fafee8e7a7cc78e022060d595faf394272170ec5efba99cdd9ead95cca835813cd80a017a6cb8359105","0x8424C5aC326834B404742de0067bCb654E86BE30",!1,!1,null,null],["ethereum","safari","SFR",8,"SAFARI","30440221008b1cede981986f1f3c3c120be3bf482c7a1d395c02a0b788406e3881edbe58e1021f6c7dd1c9e4958ccb3f98df5d32a8a33342d1b45b50374ea203f7b0ba20a43f","0x648d19d775a8D4BafbA09e189090BdcbF8Ef31c1",!1,!1,null,null],["ethereum","safe2","SAFE2",18,"SAFE2","30440221008cd1d34dbd7584ce6faaeeb6537847c797bdc415b073354ee9f1821903865b11021f7d3a3662ad22c06f90cc2d139f38ded54675091e7bb18a3dfd1d0c11f057a9","0x250a3500f48666561386832f1F1f1019b89a2699",!1,!1,null,null],["ethereum","safe_shield","SFSHLD",9,"Safe Shield","3045022100839690f8414da5e669dad4f803ec31dacda5cb3388d2155b728dcec76cc8979902205340909bb29b1e8b3ec474dc26a9854ebf872e39267fe26c8f85188db93c04c0","0x11A605D7e12B64D713E93C487277d819A1d14B99",!1,!1,null,null],["ethereum","safebank","SBANK",9,"SafeBank","3045022100d417a755c2b32967cb59bcc6f28426cc4b5312846be91dd6a3400e88baaa41650220120cfb421719367f124bdf1e25b67f9b0a32cb20e3cb439f3b1e1c79a6bdfc2c","0x43acEDd39Ba4B0bfcCd92897fCe617Fb90a971d8",!1,!1,null,null],["ethereum","safebreastinu","$BREAST",9,"SafeBreastInu","3045022100acf7a552e92db0d3a767543d069042db22caa1089c1d31b67eba7c8908a0e6b802201aad1789cb68f434976e514c205794bb91e29dba1b3b1a6fbe63dc7997c6b139","0x77a2Bf0bDa9775Fb3524a6720dD3b16bd455e2C2",!1,!1,null,null],["ethereum","safeearth","SAFEEARTH",9,"SafeEarth","3044022066308fbc6aa032c9f438cf853610b5fc41c7b26e8f33282dbf77358c3aeb341402205daa353273f27b5fa6b66f4f2317fa64a9913216668930c06f412f9f7e85f828","0xE6F1966d04CfcB9cd1B1dC4E8256D8b501b11CbA",!0,!1,null,null],["ethereum","safemoon_inu","SMI",8,"SafeMoon Inu","304502210082a75518b6fef8a562950fd484caa6cfa24849d61f02d8bc2cc3e1aaad44a93602206872d0aa3be0400b48934ba314904251d4e2950d41f0d8505e88ba6a21d4750e","0xCd7492db29E2ab436e819b249452EE1bbDf52214",!0,!1,null,null],["ethereum","safemusk","SAFEMUSK",9,"SafeMusk","304402200b3cd0039ba2a3c55a30446fba68329ac6aa52be82e552b5d5448717f96249f702200706dedc36aaba12ea4c2cde76fbe4c094a933a8ea81a42f2eaa69cb39aa2631","0x59f59809E60FA9b3D47Eb883B58f27CB65C1fF36",!0,!1,null,null],["ethereum","safeswap","SSGT",18,"SafeSwap","3045022100db2818318039b9c0c2ef2a8597dffa7d7c8733b8443cab07a6036d3f8b5bdf0c022055b5c1e9e46aa7476b5715ea546b1c9bb7e48e8c5abf959eff27b7e05110e337","0x2ECc48ba346A73d7d55aa5a46b5E314d9DAA6161",!1,!1,null,null],["ethereum","safuu","SAFUU",5,"Safuu","304402200d23958b6538eb1bb11bb93f18bdd10c2bff8cc9b169c7b1507eb97d034337790220627620b45327c63595e13bd45a8a699533ddb7b8f7a02d8f56101b7d7b420eb8","0xE5bA47fD94CB645ba4119222e34fB33F59C7CD90",!1,!1,null,null],["ethereum","sai","SAI",18,"SAI","3045022100f3d3ab31ea3a345ca9f3955560d4eaa9c00eb147b197a28fd5a51f784aeaeeb60220365a4f3ae92332d8b59f3dbca3776d4dcac40c5d7462a4978675140b02768056","0xc778417E063141139Fce010982780140Aa0cD5Ab",!1,!1,null,null],["ethereum","saitama","SAITAMA",9,"SAITAMA","304402206f1a7334715d157454208cb565d6c2f641584135170b8e42d5e1acfa33e8532402203ce013eb8c543038abde9285b3e5ab03dc24d9bb86d4935628923cc096cf2e45","0xCE3f08e664693ca792caCE4af1364D5e220827B2",!1,!1,null,null],["ethereum","saitama_inu","SAITAMA",9,"Saitama Inu","3045022100ff54be79946f95b02b870243e3ce8effdf1cba0449412cbca778cf0c83c7aa54022002e16a16b6677dc4ef736711a7ade2b4d6399484795566206d4ac76b1d5cd803","0x8B3192f5eEBD8579568A2Ed41E6FEB402f93f73F",!0,!0,null,null],["ethereum","saitama_v2","SAITAMAV2",18,"Saitama V2","304402201c14bb555731ac22295fa3bcef5deaaaa2eb2abbaa7ee9da7c3e6a2f93c1193102206b07548e17af86a19971f479f90725401d7e3dcca55efa889ee0bde58c961d79","0x2C297021ff013DFB9D45c88dbD8e24A3E61040B3",!0,!0,null,null],["ethereum","saitarealtyv2","SRLTY",9,"SaitaRealtyV2","3045022100b5a00ae0b59d47b63eac067e7c13ea517a709e2092558c241d84b270eaf0982d02206e2dfd2163886bb2f75058e8076787eda71e67ba6589e35c7ef4ee9980c9b66b","0x142a774E8b52550E88E196CedD7A5835acB646D0",!0,!0,null,null],["ethereum","saito","SAITO",18,"SAITO","304402203fd0d43b89956a57004da3f5e5345e3c80f1db10c71c1118198ad12f3b4dc0e6022075de0903ec58a7e68beb6bf0a0153b151c37049e9149bac90156c338e7e20182","0xFa14Fa6958401314851A17d6C5360cA29f74B57B",!1,!1,null,null],["ethereum","saitoki_inu","SAITOKI",9,"Saitoki Inu","30440220690981465940f71810509e9c8a0ad31846d4fa32c075c68f24d5bdcd9a5de14d022069d711c5720b18242523e7c2e3a06abcea2838d6bc5016dbd14e306158cac739","0xa3c56427683a19F7574b9fc219CFD27d5d6e87Fa",!1,!1,null,null],["ethereum","saja","SAJA",9,"Saja","3044022021e16987d69ea7b3c855ac227585a422c40d8f13cd857e017d0f9768e1e70e1a02205562bb035c156e8948ab3ad22c531f4107b1066ce9084ae8e3503065abf7a91f","0x698C6aC9CA5f16cAbC5a636D3a619329c0958cBA",!1,!1,null,null],["ethereum","sake","SAK3",18,"Sake","3045022100ae8ad7729a6ba9937738a21929d2fd9c5c08440a69fb13dc054c194a7381971602207f31775f1a31f5c35ad07ea5c8e3f2c281895fbd91734eae06a5d0c5f7c83090","0xe9F84dE264E91529aF07Fa2C746e934397810334",!1,!1,null,null],["ethereum","saketoken","SAKE",18,"SakeToken","3044022057fe8031b1e110536d482e33c6cbe2b59603f39b59d2bdd06fbc623c1f3b1ec60220595124096a7a65da9c273d3adfb402769eda2b48b0ba10c00bb045728b5d61ac","0x066798d9ef0833ccc719076Dab77199eCbd178b0",!0,!1,null,null],["ethereum","sakhalin_husky","SAHU",9,"Sakhalin Husky","3045022100c1ff44aaa491c79b486e7ffdf57911d31c6262d345136e65768ec4700f2a7ed702207debf807022b6fb14edd643565e0a64dbfb975815a97ea1697aa5f2640889b3a","0x2B1Fe2cea92436E8C34B7C215Af66Aaa2932a8b2",!1,!1,null,null],["ethereum","sakura_bloom","SKB",8,"Sakura Bloom","30440220748544ba8637aa81f3f4012d36b5bde3409439062b7068e13d4d124ccd61175602205eaffe118f983d6c2e64ea1485bffce44074ff5ebcae9828e1820df8b24a4d79","0x4aF328C52921706dCB739F25786210499169AFe6",!1,!1,null,null],["ethereum","salient_investment_holding","SIH",18,"Salient Investment Holding","304402206ee8bcbc069db188bdf4428ba22dc3b50386999081f62f6c01aff27770c6fa44022069b69e9150c1c8adf057e96c05bd22938c5224296b5045da1e916a7b72110cb2","0x6D728fF862Bfe74be2aba30537E992A24F259a22",!1,!1,null,null],["ethereum","salt_lending_token","SALT",8,"Salt Lending Token","3044022066edf19204d96f13a6850c5e4b6b821f9cf038b69bfd5bc3c8fa721a9910b43e0220243ba57f514604ad8959094e83b3fbb50d5b55ea3078435c5c0c255c23e22847","0x4156D3342D5c385a87D264F90653733592000581",!1,!1,null,null],["ethereum","samurai","SAM",18,"SAMURAI","3044022055ef8deb04c2ab4f566739aaeaa7434e27fe1b08d3887301e7f580cc596de3ea022073ed2d0a0b59980ca4598167eecf3caf06af7fc1aa8bac9667d63bb2266ed8f8","0x53378825D95281737914a8A2ac0E5A9304aE5Ed7",!1,!1,null,null],["ethereum","sana","SANA",16,"SANA","30440220452b1a3b651a98a8e6dfdd1dc0b40529351e9d933cfe4686a7be84182f14bd8902200a53b70b32401d91ca3822830cbff69b6b12f7af8192973c1b9cc33f0945fc3a","0x87CDc02f0812f08Cd50F946793706fAD9c265e2d",!1,!1,null,null],["ethereum","sand","SAND",18,"SAND","3045022100ab9deb0fcb550233a1861c838042b4649fe49f1b9cf06239b4483f34cf622bd702200215de0365dd02819cc1653475fe5f74161a5dcc8ad5c19242cf8d280f3308de","0x3845badAde8e6dFF049820680d1F14bD3903a5d0",!1,!1,null,null],["ethereum","sandbox_land_standard","SBLAND",18,"Sandbox Land Standard","3045022100cf7264678df2c69aa6c410bbb4d31ed323fa62425cf48d66f8341454019009bc02206f8333d84c0f8f628fa34b0eb14f1f1166ca36244ac6ce54a7af00e1063bfba1","0x63Aa9d05C025279F8E963ba784f1254814c1e12b",!1,!1,null,null],["ethereum","sandcoin","SND",0,"Sandcoin","3045022100c677abbb9abbc64c4370dd2ff93166628317546eadc1a04e1fb39640607e6f5502205bca499b8160ecaa55315264759b5594e87f0247d827974bc985315e95409394","0xf333b2Ace992ac2bBD8798bF57Bc65a06184afBa",!1,!1,null,null],["ethereum","sanin_inu","SANI",18,"Sanin Inu","3045022100f367de21bbb1e6f7ed192c6c6ecd560b6f122b4886ae1de1706df51551ddf00a02202870e9fc0de6136b7a68381e3e54b04ee14a3d5bce916c453e35824d4c184468","0x4521C9aD6A3D4230803aB752Ed238BE11F8B342F",!1,!1,null,null],["ethereum","sanshu_inu","SANSHU",9,"Sanshu Inu","3044022030f16438e48f74046b4e1433ee0d813b3ffb3a65053a5b3df015764ac1c4f608022061ed2857083a315230afd8af2e2e64db0386f9bcfd22aed1070e903d8630815b","0xc73C167E7a4Ba109e4052f70D5466D0C312A344D",!0,!1,null,null],["ethereum","santiment","SAN",18,"Santiment","3044022025f4e0148590e4a3815c76fb0509bae346d370bd9587497de757b3131762bfc002205b86e6e335186288cdee17c2aac972569846451228128738ea7c61ab0188e553","0x7C5A0CE9267ED19B22F8cae653F198e3E8daf098",!1,!1,null,null],["ethereum","sap_token","SAP",18,"SAP Token","304402205f287226929d64d6a1ea4fb144c650aaa68668f6c098ae7678c1e452a88d4a4c02204cedec78fca665a575b3b974843e920b9ca03750415751e24fdc9a4378b6f3c2","0xF6Ed276a69270A895d6E419D99dcB5AAA2f3Cb4A",!1,!1,null,null],["ethereum","sapchain_token","SAP",18,"Sapchain Token","3044022067bd35c8264c5a137eac4ffcf2317b81c89f822cca66c425d2b3e27e3a2d0e4a02205103910dc72c1d0609bd15e40a97b07b2919d206707b928bc45b50c1b56adc51","0x91F529E972D6Cf43d36ABFa91C1118122FF7F16C",!0,!1,null,null],["ethereum","sapien","SPN",6,"Sapien","3044022027679b28942bea8c7ea07ce9cb6071cddbc82b3dd3bebce9308a2fba05e9586502206d789560b3fb7d5bbfb6c232b31177558b6a7376e3fb1122910e8d77fed96f6b","0x20F7A3DdF244dc9299975b4Da1C39F8D5D75f05A",!1,!1,null,null],["ethereum","sarcophagus","SARCO",18,"Sarcophagus","30450221008ca28999534b4b621b39f9090da3711d612cdb50444b8457a5f6171d14b4020c02205bf158eb25578ef8c15b8d0f6d8d3451415753b8a12fa4282031be0e7177d179","0x7697B462A7c4Ff5F8b55BDBC2F4076c2aF9cF51A",!1,!1,null,null],["ethereum","saren","SAR",18,"Saren","3044022014349e9a89b7eceeb156b95f8f76c0b9babf9ed071a8dc79a2287a796afbf361022076c93ae2102f25ab42173833c346326947de728e631a7f93897602c785a13151","0xBD4a858139B155219E2c8D10135003fdEf720b6B",!1,!1,null,null],["ethereum","sas","SAS",18,"SAS","304402205e75b214d2cfda5ae2c53e0765fc783461b891f8af1281dbf19438fd7a9e78d202207285960c31765e63e42b39cc1da64b9c6be7e5bff512728ecb265ef458935499","0x4C38D0e726B6C86F64c1B281348E725973542043",!1,!1,null,null],["ethereum","sashimitoken","SASHIMI",18,"SashimiToken","3045022100a005f4539cc4e179d906eee78027fa65f3cf89184577dfd1df50ac173c8cbb43022048227dc3b321229a496142c889b7f3cccaecb3cca8e56b6e48181ea0c528188e","0xC28E27870558cF22ADD83540d2126da2e4b464c2",!0,!1,null,null],["ethereum","satoexchange","SATX",8,"SatoExchange","3045022100dd9895dcb3223468500bb5fce937b173b0c8812994acc95798af44176b87a9f702200964e31e50b07c777ebbae6863ec933065d4a46e65947e24949400755f373200","0xe96F2c381E267a96C29bbB8ab05AB7d3527b45Ab",!1,!1,null,null],["ethereum","satopay","STOP",18,"SatoPay","3045022100911e3c8bd10d69cb635c919e997ab926e11f288c8786e295edb6b35391214ee902205ab14a54548a2b0a300917bbe1b862e3107628a91bb40eb3b1008634372a075f","0x8c3eE4F778E282B59D42d693A97b80b1ed80f4Ee",!1,!1,null,null],["ethereum","satopay_yield","SPY",18,"SATOPAY YIELD","304402207f5bfcec38cd517aed20810eb31cb273cfc3ae82ac044baded67b15654dd1ba1022030ae7ffea744a6e2306f1391cc2d8aa9b6fd9c17ab752964fec4d4b260fd1530","0xe4883Bcb919386Bb5f48EF59B7C31C1D93A51A57",!1,!1,null,null],["ethereum","satoshivisioncoin","SVC",18,"Satoshivisioncoin","3044022055e91f9741d014e4837dd9e68270fece40b6dfa76056e89622a7797d0184567d02203a5165a733700cc5c132f748002f67dc169c47b915ba863fde4a7533ac4526a0","0x64EA2c6104F1CF3035E28Be0f781B6286d50934D",!1,!1,null,null],["ethereum","saturn_network","STN",4,"Saturn Network","3044022032f2f764c304e6d833153acf5e2e0ada5d74edc051f0ff6af6d355a2308d4e2702207b66b146e6a86c3371feb065ae67ea02262e8258240d5b47647c167fc5572b93","0x599346779e90fc3F5F997b5ea715349820F91571",!1,!1,null,null],["ethereum","sav3token","SAV3",18,"Sav3Token","304402207194e5eae4b24ff12110d67a699f6b83ce0ea051532049536cc1ea5a8afb536f022009899c541f932736a79966970457978148bc325c1474581c29be3ae6bc9cd87d","0x6E10AAcb89A28d6FA0FE68790777fec7E7f01890",!1,!1,null,null],["ethereum","savebritney","SBRT",18,"SaveBritney","3044022033cac2503a88ac7eb26bf1b98508b9a87091c673273dfad961d76b99dc3ffdbd02201e3fe1a5b364fbe2a16995aa4597fe762ef27cc259007f01433278e6ef042510","0x606Ce698Aea1DCa5A2627A4583da13a340667f09",!1,!1,null,null],["ethereum","savedroid","SVD",18,"savedroid","30440220361c64eba7d39c1c3dc03fee2e5983b2236b61f934bfd0520cc3af7764fbee6c022069541f145fa400adb9b135fac1c9321df572b44741e858f47d7f4c091d4fbfd1","0xbdEB4b83251Fb146687fa19D1C660F99411eefe3",!1,!1,null,null],["ethereum","savetoken","SAVE",8,"SaveToken","3045022100941ccfc6d58a67a2c8ad0352f79839447e09c50ecb6b6dd568b1cb02ebbb7c6502207977818cc2a352360c7da9a51623c1f9e595ad3a64630b4079836ae3794cf179","0xc1eEcf1f4AF8EB9a2a19f6C26B434aA96ce859e1",!1,!1,null,null],["ethereum","savix","SVX",9,"Savix","304402200e236d68f3a55ed11426bbd27251669f21adbe3c27803fcd22f0189df178ea2b0220175d2747bc20bc979a93507a303cd7d7121229473e4c20cb9f9c990e98533e2e","0xc434b27736A6882D33094d34792999702860a13C",!1,!1,null,null],["ethereum","scaleswaptoken","SCA",18,"ScaleSwapToken","304402200fe21859de4b2c6f0606f2f307e716acc3c315e09765f8e84e714252035df5a8022068197543b9fccf4a763bc58fc8fb499a6d5adc91b20e78a2067b2372fcb7a1ed","0x1FbD3dF007eB8A7477A1Eab2c63483dCc24EfFD6",!1,!1,null,null],["ethereum","scallop","SCLP",18,"Scallop","3045022100b33205ac4d87671702e92768ab0746cc4714ad644c599869f4670415f504ac530220425216a54f948ace0a018102466a2bb72bb99f886e9abd74f13b2caac0d5ba43","0xF2c96E402c9199682d5dED26D3771c6B192c01af",!1,!1,null,null],["ethereum","scandiweb_coin","SCANDI",2,"Scandiweb Coin","3045022100b9370ea673d7fc1e01ffe0d48b9eda4b58c3403bdcb75e6b64ead887e0afab510220543a1da5dcf422a2485ed1c565fc22b30bfce0db247440b283b7165866f06e3b","0x78fE18e41f436e1981a3a60D1557c8a7a9370461",!1,!1,null,null],["ethereum","scanetchain","SWC",18,"Scanetchain","3045022100d7f41052ac77c3db782d53ef207739c6725781b18dca9a5811e53d8ffec7849302200893a50b996b09db99afe5f78955b16cc1a6acc2d4f973bd67a0b1be35aa3911","0xADF8B8050639b6236915f7516d69dE714672F0bF",!1,!1,null,null],["ethereum","scarcity","SCX",18,"Scarcity","3045022100ae8119c52572298f30a14de92f6469e23cd2ca742c9271e7c579ae7cccfa9b250220695ec499c3ac1fcdbe911a933d1558766cfa442640c71518e99857cdb37bdce5","0x1B8568FbB47708E9E9D31Ff303254f748805bF21",!0,!0,null,null],["ethereum","scardust","SCARD",18,"SCARDust","304502210086a1e497b49c5309b678db35e4811707a4a7cc02e995ddf16e0357aa48771af8022008a123d456d6f43847243277678d18265663fdecc400887c0f763761731639cc","0x58ebbdAe2a6F0133a0706D82Ca347Eb3492EEf05",!1,!1,null,null],["ethereum","scardust_","SCARD_",9,"SCARDust (Old)","3045022100c341544fb7b38da6bcd589c90d8513307cd78db12cdfdc36e4f4e71d86b1077b022047cdffa3c2436299004c162dd3af37d132773bc43cf49d3231c3787c38ff784c","0xC10b30820F793E24733dC80da12C798dfbFF0fFf",!0,!0,null,null],["ethereum","scatter_cx","STT",18,"Scatter.cx","3045022100f2271622118d09aebc00ebc3c6284c27337de8d436c7dedf4d2b0c96fe510b5e02200be3a81ec7333e5a62f6f8cd69eaf3c3cb5bc6f4b9277e184d739ae6931fdc97","0xaC9Bb427953aC7FDDC562ADcA86CF42D988047Fd",!0,!1,null,null],["ethereum","scdstoken","SCDS",18,"SCDSTOKEN","3044022044f0ff13e00d2a63c5f65ef3c6400c233ca6c904afbbeae6f452959effa9a0e202200ab2fbcef75eedd3b678fd7b30eeb09c21098760014a7220a770cd00f8a4996c","0xb72c794effb775197287d767cA80C22ae9094cB5",!1,!1,null,null],["ethereum","schnoodle","SNOOD",18,"Schnoodle","30450221008ca11ac2ef55ed8f291085f39fcbdbd7d170b35bef2821f3c9834ec2744e00d4022066a64b3470ab9301948b8cca21f578d0a10cbf57da28af82829e2fb67e22e191","0xD45740aB9ec920bEdBD9BAb2E863519E59731941",!1,!1,null,null],["ethereum","schrodinger","KD",9,"Schrodinger","3045022100b344f32ea5989c3a1f1c446b812a89de8c1fccd7c50c125ada3cc66ae8d33b7e0220178d587be093fa4165fd37a40f8f9dff189b8fe99f9fc68ac695c0b44b670907","0x2C33B28527A63Cdf13C0B24Ce4cf5BF9C9fB3BC6",!0,!0,null,null],["ethereum","science_chain","SCC",18,"Science Chain","3044022059c79600c457b0e3fc67ee1abd700044dbdf023fe72da28527e1ddd9dae37f680220681fea35a32b77481c265a613d8017a6a92cfe08396953d9eb5aeee46f082dae","0x4a9f00dE5d8A244944313faEe23849FF725E680D",!0,!1,null,null],["ethereum","scifitoken","SCIFI",18,"ScifiToken","304402206f5c6733ee1b9c8c89eba8664bfb1ad2f0a107979c0fb0534c342a197946985302205599a1343c604a0076cf15dcb80f6d3ca484ccb5e29adf49d8edbb9001a99707","0xfDC4a3FC36df16a78edCAf1B837d3ACAaeDB2CB4",!1,!1,null,null],["ethereum","scoobi-doge","SCOOBI",18,"Scoobi-Doge","304402203aa69192e16fb6f19a47015d17e2aff7402f14463f7935427978520960047ad902206f0d71cba09e20c5f851c752ef2242f5e3a5abdb5273b7085e6c3344674f15cd","0x06a87F6aFEc4a739c367bEF69eEfE383D27106bd",!1,!1,null,null],["ethereum","scotcoin","SCOT",6,"Scotcoin","30450221008f9578e928f91b6d1310f8083e6b3e67dab90913ce933a1e08762341bdde482e0220177111b7e1e2ab6e996b991877fbc822808f3c117d8fd5bf81856964cc0d69c9","0x28ed4FD6DeDB226B16b92CE6997f7CdfDf0c519B",!0,!0,null,null],["ethereum","scott","SCOTT",4,"SCOTT","30440220692392cd4c89e5bd0a47e2e58485bcf6124c6f3c60b8a0ac3e8f3a78c355fa560220706f824404d58f55b275d51a98169f9e0ce9577961f79f859c495f93c8bdaf3b","0x27fD686Db10E0aE047fe8FE1DE9830C0e0dC3CFA",!0,!1,null,null],["ethereum","scratchtoken","SCRATCH",9,"ScratchToken","3045022100da310730c41ad05d27eb56c449f234c7e16b8f74b95eb5a611ed36a0f733a3c702203c3b36504b53051ed47e1c8b69aff5cd959f7284b10336200ea533e4c1637576","0x570dB9a388B641C92722c0f35574c33063a972D7",!1,!1,null,null],["ethereum","scrl","SCRL",18,"SCRL","304402205179f5208c20397f35a3150c245c5ccf3bdfaa6ff0e87968ad2eeb00080343cb02203a0c267173540e53a492eddbe811339afa8f51e879b8a43bb111e911aa5a8d23","0x24DCc881E7Dd730546834452F21872D5cb4b5293",!1,!1,null,null],["ethereum","scrydddtoken","DDD",18,"ScryDddToken","3045022100bfdedfe54ac28a2b7d08b28cb980e4e9b1d838b3b2fbf3ddcfd141c5a7fad65a0220567395f5f7e35ef90cc6d8f4ae67c6afde033b114dba367880e900528ff358d5","0x9F5F3CFD7a32700C93F971637407ff17b91c7342",!1,!1,null,null],["ethereum","sdog","SDOG",18,"SDOG","30440220725c4df56095d702d3d462f1e348760b6b25c21a72431ac27bb64ae5139a4835022079082ae1decc885322147e9ae4682305449c89be6ba4f0af576ca5256d8bfa66","0x537edD52ebcb9F48ff2f8a28c51FCdB9D6a6E0D4",!1,!1,null,null],["ethereum","sea_cucumber_chain","SCC",18,"Sea Cucumber Chain","3044022060fb13c964956112fe60accac5e64df8802e9bd61cc0e37c4925692cb4a2252702204d31839ddaeeac6456d2d5ab26a20dbf6bde67508eb658999f72b1d7d1dbfc6e","0xe6b75a1960f91Bfa7010DEC8543685eaD67F8cFf",!0,!1,null,null],["ethereum","seal_finance","SEAL",18,"Seal Finance","3045022100f78747ece0121ccfeb129aec617b82b0f590853aed4acc8abc83d3757c8bf535022051ad28f3ef14ef326519e863bba3fe4b62811d8ee2170afe0cbc92b386de6a08","0x33c2DA7Fd5B125E629B3950f3c38d7f721D7B30D",!1,!1,null,null],["ethereum","sealblock_token","SKT",18,"SealBlock Token","3045022100fdcfd9fdfd3381a370c9a167e088de6a972ecbca5602058c75cb6d516c916f9602201e141bb5912dc2eb6879112e4ba3363012cbcab0d7137706cc3195cc99a72533","0x82bdfb4C6F488fC47700ceF12C448a2F13F8fF4F",!0,!1,null,null],["ethereum","sechain","SNN",3,"SeChain","3045022100c8120d5fd9da887bd6297d4f9e8ef3296f2c3fe963356b8f21b5fbfc22ec940e02201be022a33d0132c2b10c1a33b8756ab34d121fde904249786e84d5aab2d5fbdc","0xF5717f5DF41eA67Ef67DFD3c1d02F9940bcF5d08",!1,!1,null,null],["ethereum","secret_finance","SEFI",6,"Secret Finance","304402204c2ba0104bdd9d3254502a9b2fabbbf9ba03fb3679d7bc5803546e14e7f16ce80220514adafcd066bae5dba693c5d07417517241e1884acba6b4be3aa36e84e097e2","0x773258b03c730F84aF10dFcB1BfAa7487558B8Ac",!1,!1,null,null],["ethereum","sector","SECTX",18,"Sector","3045022100a5e3995aeed9af5e4a5d13e761d2ec67a54fddbe38c8edbc6f6ed479fc1429eb022079658addeb242524215e52aa9e41d3b04a3ca923ec756ed2209e7f7ba95351ce","0x585d3dFfD59b5201979363cC5432020D910DC40C",!1,!1,null,null],["ethereum","secure_pad","SEPA",18,"Secure Pad","3045022100c40fd6f2c312a3dedd219fe0954249d6476d64d67c4119acc7a022b5e811e2f90220587250f8253599f433c85bdce31432c6643aadac7ca6214d4fcf9513b21d756d","0x10994AA2FB8E6bA5D9FB2BC127FF228c4fe6167F",!1,!1,null,null],["ethereum","securypto","SCU",18,"Securypto","304402203c061a890b67309be9c4bd83d7c1ed2e0c40624f74faf7e54ac10acb29ce29240220123b0bddcb86687e1c5612c801893b510f7aa6dc8de7c6838e71509a29978562","0x8B8d971C8bc37f65a93c4609644FeF0590Af2Fc7",!1,!1,null,null],["ethereum","seed","SEED",18,"Seed","30450221008732602834e3c5c04161285f24016b08931c09615c658a7b7dbcdc6c03ea918d02204c37cd0d1672662b988f91fa689472d555e348c0fa4918a9b6754c2982816960","0x30cF203b48edaA42c3B4918E955fED26Cd012A3F",!0,!1,null,null],["ethereum","seed_club","CLUB",18,"Seed Club","304402204515018953d63b0986555761b38ef234eff59c6cb92721d5be2cb4f20663d9e202206bf4dfd237d66420a8b8f125a0c8478a4669654092c972539106df72ecbfe2f8","0xF76d80200226AC250665139B9E435617e4Ba55F9",!0,!0,null,null],["ethereum","seedswap_token","SNFT",18,"SeedSwap Token","3045022100a15b810661ec31c1f511c44abc919bdcc9d41fe321e9b9824931b400cf5e14e3022016af454fd5b353aa861d9aa9b45f55eb2e53545abe6470d696049fb5cf5e21ae","0xA3c4Dc4A9cE2a6B40B57F25F8b50DeCc2c64deC2",!1,!1,null,null],["ethereum","seele_token","SEELE",18,"Seele Token","3044022035c5165cd4c638ed0458b5269e95f59da85c17126a9ddfa56de2bbead10ee4280220695e9432881202f1ff8ff99e337214c7e8bc36d9952b17bad5e84ec12c3bdf44","0xB1e93236ab6073fdAC58adA5564897177D4bcC43",!1,!1,null,null],["ethereum","seeletoken_","SEELE",18,"SeeleToken (old)","3045022100c26684508a5493812a74c385b03aba375b19150e9c6dae122460487df2664b29022029ab80364ad2a5da131245c67334963e986423afe19b9688a61d1a54f0c74ac7","0xB1eeF147028E9f480DbC5ccaA3277D417D1b85F0",!0,!0,null,null],["ethereum","seen_haus","SEEN",18,"seen.haus","30440220049e7c2678395942858c55c1e29ec0cfd046182223d29592010c6b58fac25a1b02207b7b797a782bbc74a9811bfcb6fb2633ddba2c12a4b7401ba309e37bf798944b","0xCa3FE04C7Ee111F0bbb02C328c699226aCf9Fd33",!1,!1,null,null],["ethereum","seer-erc20-token","SEER",18,"SEER-ERC20-Token","304402203c193945f48795437a4fe72258dc485a74f9c54aa4a6cef4e6287febda9a085c02203330deab6b8b136990378b9ee2a43c2b1fddb87f53494c98823036d60043386a","0x0f1Ed66c251BcB52ecF7E67ac64Bb72482048aDB",!1,!1,null,null],["ethereum","seigniorage_shares","SHARE",9,"Seigniorage Shares","3045022100bd996e7f383a354bfa74616605e8d8702f5d5da47d0d70781713ef4b1c7951e402204b71268b35cf8749d01c9d1ef17ebd4236ea53b898ef0082ff674ab8c8fb10df","0x39795344CBCc76cC3Fb94B9D1b15C23c2070C66D",!1,!1,null,null],["ethereum","sekuritance","SKRT",18,"Sekuritance","304402200933f69a91f8fd01e26c57311cd80a805eb67be3189d80cfdae57043f78a7dce02201558ddec3ecc6cc0b1c5191ac21045bacfc2b7c828c37eb45907528c7f72b54b","0x887168120cb89Fb06F3E74Dc4AF20D67dF0977f6",!1,!1,null,null],["ethereum","selenium","SLC",18,"Selenium","3045022100a8e66189dcdb08da0502483a9e8f2bc87af43bf8bf882558bd5a4c4821f4060302200a23d05d4554db2c15b3d163be06795b7209982c156187a19134e24e135ab371","0x2ac22EbC138fF127566F68db600Addad7dF38d38",!1,!1,null,null],["ethereum","self_storage_coin","STOR",8,"Self Storage Coin","3045022100ed0e072f906f5e9288e7f2cfec00f00b891776a7bad080218119064e0e07faa602205dfcbeba383dde3286b228ee7d4ab8d98954928b018748270f7b923fc53f4ea9","0xA3CEaC0AAc5c5d868973e546cE4731Ba90e873c2",!1,!1,null,null],["ethereum","self_token","SELF",18,"Self token","3044022063d76c3af58a58517ed8497c36c4a5dac3b9536f4267cc1203941781997dcba40220087f4bdae5b6b793e0c5e25b274692591703a0c4c1ddee4084005ec2237edb61","0x67ab11058eF23D0a19178f61A050D3c38F81Ae21",!1,!1,null,null],["ethereum","selfieyo_gold_token","SGT",18,"SelfieYo Gold Token","30450221008f36e500bee60ff171316592158cdc9e3bb0b019d4e9b04c14c831c7aafe72a302202fe0a30b68de31e993f4950b11a01f9e5998db24eb7afafa487e9e82d557e9d4","0x37427576324fE1f3625c9102674772d7CF71377d",!0,!0,null,null],["ethereum","selfkey","KEY",18,"SelfKey","304402207704c6ec176e61cb4c0e475f6e9af8558e56dc9b133e041dee57e8e06add843a02203d6d2c1bb60a84bf7e6e00c7a6bbb8d172bcbea4693c35310cb7b8c12572d120","0x4CC19356f2D37338b9802aa8E8fc58B0373296E7",!0,!1,null,null],["ethereum","selfllery","SLY",18,"SELFLLERY","30450221009dcf35fb10c3c1886acd0d67c870c640e2e91abe4e2528e41d273feadf38bed8022031d36ea46ba75c7328eca78f88d8ca14182e45aa5b3bf3d66fd1d7598201524f","0x7928c8aBF1F74eF9F96D4D0a44e3b4209d360785",!1,!1,null,null],["ethereum","semi","SEMI",18,"SEMI","304402206fc94e3fc45af3adb5dadcc4d4bc677ecc0957c2f186930d25514694483903bd02200c770a3361ebd71c84cdb50a584e5bbb51870debb44b9dbdb8cbe9d155ef139a","0x6D7917864003a9bb13CBbEC8F1CdD4E36dDf6fc8",!1,!1,null,null],["ethereum","senate","SENATE",18,"SENATE","3045022100a2ff0c35c030e82434e676d73636a0e0aab54dc0ab65d1f8754548d16f02a08602206c86c5affd211234dc0a9e2ab8507db1af1912aed66cc347dcab79c2bbe4fdc8","0x34Be5b8C30eE4fDe069DC878989686aBE9884470",!0,!0,null,null],["ethereum","sensatori_token","SENSATORI",18,"SenSatorI Token","304402206df8eadeb7b453e7685c69e11a9296426563dd60dba11c547348d2bad74e424902206072e3b7e6f0502f4b516e14b51a3186ab0256767f472434047ffa7b148a125f","0x4cA74185532DC1789527194e5B9c866dD33F4E82",!1,!1,null,null],["ethereum","sensay","SENSE",8,"Sensay","304402204be50705d9ec99a42b1ca39de1322f1d16a9d078a55f0124b45ba0cf19d5384b0220769f026f1b80c1ca06b71813f5045ab67a5be2cbce37f0ca2e16d1e8a3cee43e","0x6745fAB6801e376cD24F03572B9C9B0D4EdDDCcf",!0,!0,null,null],["ethereum","sensitrust_token","SETS",18,"Sensitrust Token","304402205065ff53fd05476d08c13681a427f302d9f45df6fe90ac3fe3bd1eee9ff8f29902207eb6813771900054bbb8d042443cac5642d03235fcb384ff2599a3a402b17380","0x04E0Af0af1b7f0023c6B12af5a94Df59B0e8cF59",!1,!1,null,null],["ethereum","sensorium","SENSO",0,"Sensorium","3045022100db64505504cef0fbe45f7ca78e142d354222250016707cf8ea1478e894e6815a022066a88e4117d30c7b5ba6b3adb05137867e2fd86d8cdb31ad0542bb16e3964ee4","0xC19B6A4Ac7C7Cc24459F08984Bbd09664af17bD1",!1,!1,null,null],["ethereum","sentiment_token","SENT",18,"Sentiment Token","3045022100fed509314cc3c106355c30b839efd7550114bf1a417e66ee39408e6063019dda02206c00b1cf6ff5c46f220c899173cc6a74a2227d1164de666a38ec65b78dde3da0","0x97AbEe33Cd075c58BFdd174e0885e08E8f03556F",!1,!0,null,null],["ethereum","sentinel","SENT",8,"SENTinel","3045022100abb830e5b3a9feb8f6ec301871f13408f378e7d009a89177d2c397d646848e10022048861694d5198763acc76031080f10dbb7094531a1c034a76c5bf3c09e45d367","0xa44E5137293E855B1b7bC7E2C6f8cD796fFCB037",!1,!1,null,null],["ethereum","sentinel_chain","SENC",18,"Sentinel Chain","304402202aa3c1116e7c9348550d7f29157cdfa05dafea9e6a7e1d7b0d6fc56b17ba041a022045ed6045d8c92e82a74c900be02069f1adceb935adfabf161b5d23ac70f1da3a","0xA13f0743951B4f6E3e3AA039f682E17279f52bc3",!1,!1,null,null],["ethereum","sentinel_protocol","UPP",18,"Sentinel Protocol","304402202c0d63e6c107b6dea02f8c5716523f426d5421e08115ff4ee4825d6cb272e62702206bb8a0acf7c8355a5d12b3ae5bb245b5908e18ad0c803ccc804a156d281dc86e","0xC86D054809623432210c107af2e3F619DcFbf652",!1,!1,null,null],["ethereum","sentivate","SNTVT",18,"Sentivate","3045022100b63caf27a088f9d3f4c67b4a9fc4d052293081edc59264f5a2818b7ee4c22d6e022053315d28eb54d4b6e2e6a5212445a09eb969895730832cb42e2bb892d9519f3b","0x7865af71cf0b288b4E7F654f4F7851EB46a2B7F8",!1,!1,null,null],["ethereum","serbian_cave_hermit","SERBCHERM",9,"Serbian Cave Hermit","3045022100e4ecd59949036f51db49b99af49ba5b92728903d3c3eb6b6b8ae63f800ab96ca0220720baa737216163c9634d9b9f2b763612cfa47bb5653cc6714c7f66222639c1d","0xE71612d0A06d1fa03F581d601fEA59710b467E51",!1,!0,null,null],["ethereum","sergey_save_link","SSL",18,"Sergey Save Link","304402205ded6e6e9e905e0512f59db819f830899bfbf6476a141027ba9c669b6b23cff702203a483e4b9a206f0e445fe180f1b54341efc0bc4e2b651d38ebaa834f33f9bc68","0x0d9227f9c4ab3972f994FCcC6EeBa3213C0305c4",!1,!1,null,null],["ethereum","sergs","SERGS",18,"SERGS","30450221008331439d4e69a78eb2d13534a19bf1ef18132efde2c112989010939fd0af406702202947286e192cf7250ac152d4af9eed38160a48f59240fa94c77b4b9b05a42d5a","0x79BA92DDA26FcE15e1e9af47D5cFdFD2A093E000",!1,!1,null,null],["ethereum","serum","SER",18,"Serum","3045022100f01dadafe1e8fb49c7b2475398c2e3d5dad3fa6cfe9630832a8f77ee1bb2c55d022014b020774ff0f309f7e882f77b6e6aee029c28809951292247af1f56b22e60ef","0xb19189Fb36c816f3e0f16065057B07B790998fDC",!1,!1,null,null],["ethereum","sesamechain","LSC",18,"Sesamechain","3045022100b25880701d4630930009bfbccdf382b2fa9082350c56f27aefcce8db091dcee402200fd761b958eb565b751d32b7ad7d1d098b46fa446b98f0fbdca69a997fd82518","0xc77D7E0dD7b2A01B990e866FeB21d031f1418c2E",!0,!1,null,null],["ethereum","sessia_kicks","KICK",18,"Sessia Kicks","30440220413c3e8502e144aa322c6006998554b76ec44e53fef6d2a335f9801e47fd222302204c5d9e51b89a71f21b1cdc108674a29a5b96f9d285b3b14f01d0d65f8bc9b6d3","0xD91a6162F146EF85922d9A15eE6eB14A00344586",!0,!1,null,null],["ethereum","set","SET",0,"SET","3045022100e87bfd75cf0f3ff1d92c0a5d45968a8c8ad6f401731ffb78100e7012aaa814c702202a96269f9e13023eff569f839e1f75756a64e6b66b385cc092a5f4c4a237dc18","0xe06eda7435bA749b047380CEd49121ddE93334Ae",!1,!1,null,null],["ethereum","sether","SETHER",18,"Sether","304502210096d6622eee1f88de8acc26e9224155e857dad1a788585a25a560649559ee0e7102206d2f1dec6747bf375441b0f89212c751ce3155256600edac225c8dd23e5fd938","0x78B039921E84E726EB72E7b1212bb35504c645cA",!1,!1,null,null],["ethereum","severadao","SEV",18,"SeveraDAO","3045022100ddf66257dac8e1c4e2fe2fb5b4cbd3f8d69ade9e4b9524e8b15f38543abb3d3902203e73d3453b651aaa408a6d980d534b53673644c2876eeefb01532c512f3f5fc0","0xaf50F8bEc1DbEC013B7025dB444Da019c2f5d488",!1,!1,null,null],["ethereum","severadao_","SEV_",18,"SeveraDAO (old)","304502210094a9d2620b3c5f48177fabd1208ecc16a366efc8df4cb6d0c14f824e903d0a9902203406ed8db06d50f24b96446fe3309fd1b2560319ba90364e6783f9ac93450887","0x0f136bFcE6193E8Cce8ee2f32116A142258815Ae",!0,!1,null,null],["ethereum","sexy_token","SEXY",18,"Sexy Token","3045022100e54834a72b6be049ec3541ffeaf68b5b6dc1718405e8cefb8a5ef549856cee21022060d34a6ef7d08c83e7a4680e514c62234b8e25417fd382697fd74e10b13b438b","0x98F5e9b7F0e33956C0443E81bF7deB8B5b1ed545",!0,!0,null,null],["ethereum","sf_capital","SFCP",18,"SF Capital","3045022100e4b0ee32f192d2c5b8485aeb76cf7851c758c7f51933c5f0d39b42c885e4a47c02205858376d622217bd6c77fee729e37b5e49a2b8eb26eab5b295385fd7fb949507","0x8b6CdA5CC518c904e8844f445E1A7C7d2DB0fF16",!1,!1,null,null],["ethereum","sg20","SG20",18,"SG20","3044022079f3d2b0f0fecbb1ba13709865994eb01fcd0372ab00162887289ecb2baf258802201b34975cca4df81ce49b381b843c176a66fcff03c23f0a928e548edee59aa518","0x91a7769aFCf796A3c8fFF879ed80b10dd76d3CCD",!1,!1,null,null],["ethereum","sgb","SGB",8,"SGB","304402206e09eb73c3e96f89d76d9626bdb48ebbec59dc4887f7ebd2a46e0b7f58049f4502205e580176e5bce97a26d7bfa37862d29f55c76e8241cb61e95f24b308c6592360","0x4B4Eb5C44D50Bfd44124688c6754633f7e258b01",!0,!1,null,null],["ethereum","sgelder","SGEL",18,"SGELDER","304402204ae4437d710ba6014198b0ac1d08256472a5f3aa169ffdf106f73aff3df402100220700353eaa934742ad2e59eafc9cc6e8c52542ae132b888301460bbf63f2a5c79","0xa1ccc166faf0E998b3E33225A1A0301B1C86119D",!1,!1,null,null],["ethereum","sgpay","SGP",18,"SGPay","304502210091c1ec1e8bfbe10215fb28188e2eff98045383ada7a3586696d0ca42e7ca7175022070d14de27819f4ffe7d708e249ad8f5f22cbdce040a6b017e13c298530312ae6","0x33C623a2BAAfEb8D15DfaF3cE44095efec83D72C",!1,!1,null,null],["ethereum","shabu_shabu","KOBE",18,"Shabu Shabu","3044022063b31ae3e8dbe1d9b4ce8406ada60a4ce1547decdf0aad771d925b43d8cae067022068ee46aa26f36a197f90cf12e6dbdaf18d950a567ed9db2c113249ebd6049363","0xCb4e8CafEDa995da5cEdfda5205BD5664a12b848",!1,!1,null,null],["ethereum","shadetech","SHD",18,"Shadetech","304502210097a0270c10e0b07850a35d808f52fa958cd556286544a26519905189679a678c0220122d0a3ede19227ad7bd193947fef966e5581c7fa070b996c134ad24e89b7ed4","0x8A8221628361FA25294A83A172dd4f0133207B37",!0,!1,null,null],["ethereum","shadowbit","SBC",8,"ShadowBit","3045022100b2ed918bd3ecfe6671f711c096c5ee8fe5df1ba0ebf1e50f9de02afba9e06ac1022057bb1a053d05a77219b3e14ca1b3e2a3e9cd17ac9048fef2003f4752e3c3fff3","0xBA5841109EC38e58b6184c0ab65BA59a9355ffe2",!1,!1,null,null],["ethereum","shadows_network","DOWS",18,"Shadows Network","304402205b6125e6925fe3a2b18d2457de78d2e3c972279985b0c8be8ecbf143b707f7170220472695e8dc64f12c462010a4f165a2bfc90be8f66210cb34794540d1d84ecfc0","0x661Ab0Ed68000491d98C796146bcF28c20d7c559",!1,!1,null,null],["ethereum","shaka","HAK",18,"Shaka","304402205baa5ce18807b44804cb670f00feec8098d6c7984cb827f69e741042825b7f7a02205a97f3b1c5a9898480b565d430b0c7e13d468b3e32150cb202f5889a45dd29f7","0x93a7174dafd31d13400cD9fa01f4e5B5BAa00D39",!1,!1,null,null],["ethereum","shake_token_by_spaceswap_v2","SHAKE",18,"SHAKE token by SpaceSwap v2","30440220256c70c37a1a753b8adcbd5c91af4bbd2e6c9c4dc8180588270ae5b51fe3d75b022043c94720bdf02d7420c308200191b37ebc939fb3a3dccd54304b745af3094481","0x6006FC2a849fEdABa8330ce36F5133DE01F96189",!1,!1,null,null],["ethereum","shard","SHARD",18,"Shard","30440220466419fe3c55d7b722f0476d742535f97cb00f0c2d09001d80fdb620b14496e002206d20b9d47bf7406622547e04f8219469f97e0036d8adac43efe1be740efae43d","0xBeBdab6DA046Bc49ffBb61fbD7b33157Eb270D05",!1,!1,null,null],["ethereum","sharder","SS",18,"Sharder","30440220185e0e5339e57f8994ab2904c6655e09a2211c83f0a1c8a636d040733b25a005022039aa03dfd3f9fb7f392286e61c2d4ea20668923584f6b95c7388ccc91bcf09cb","0xbbFF862d906E348E9946Bfb2132ecB157Da3D4b4",!1,!1,null,null],["ethereum","shardingdao","SHD",18,"ShardingDAO","3045022100f63243650f895b8424cb9078c18b2c2c7c8994538c1f495782c3fd6d965a9a9f02206cd35ccbedf27a4ded62af73a46a4563368b76c886ce5d00913345636565ee69","0x5845Cd0205b5d43AF695412a79Cf7C1Aeddb060F",!1,!1,null,null],["ethereum","shareat","XAT",18,"ShareAt","3045022100c2bf1bf8b6fee2c1e4023d8745a041758cef215766a088633d9e9f2a82492734022042739f08e9f0f1c9e47ff465732630c8750b9978ba73055c002e96362aa39e5e","0x01c8857057326B8f64DCb5cba6d802DcD132946e",!1,!1,null,null],["ethereum","sharedstake_governance_token","SGT",18,"SharedStake Governance Token","304402205a536bf62189ab6e6cc63e3ba1f4c34e95f7c5c6805efad628c77f145b73e897022069cb441ce0829f33d818b8803a006065a904d8763648afc9bf5b3bb82f0c07ee","0x84810bcF08744d5862B8181f12d17bfd57d3b078",!0,!1,null,null],["ethereum","sharetoken","SHR",2,"ShareToken","304502210088166d53d3dd35d54b824c1435f39b833ffeb561ea35476b9f894012b09b61d002201017b4fb67d83df4d8f937ef492dc81f383a066fd2a6f185a31e693b1a58b26b","0xd98F75b1A3261dab9eEd4956c93F33749027a964",!0,!1,null,null],["ethereum","sharetoken_","SHR",2,"ShareToken (old)","304402207511815770abddca4405606ea654e93f4a17229268f2f25282ac14dfe66c9d4c02202be39e1d81cd019069beb554483410dd95cc95683ba31881bfe4e5e6f11165f3","0xEE5fE244406F35d9B4dDb488a64D51456630beFC",!0,!0,null,null],["ethereum","sharity","$SHARI",9,"Sharity","3045022100fd6c731acd2fed8c3ebadb96803394815f3283af2bbf4e3574a72383d0f4490d02200ef797d9abbb5a59deb82b3fe67025bf683cca628f57c561c0d80072a6c70be6","0x2df488b8A4270bAc5C2cE5FF467A0C5fd2AA49d6",!1,!1,null,null],["ethereum","sharpay_token","S",18,"Sharpay Token","3045022100dbf8cd186c9f7fbfaa45ddb9d1d4ec92150bd5f8e151b9885ba96d9d9502039b022004b069d6249fec227ae8a0a31892516dbb66c8fee1268105e424cdaad39420ac","0x96B0bF939D9460095C15251F71Fda11e41DcBddB",!1,!1,null,null],["ethereum","sharpe_platform_token","SHP",18,"Sharpe Platform Token","3045022100ca0517606d1b2c60603e1ed86d111ddf41cef231112e7dbc870de5ec65d624bf02202618877df94f3157f420704a15804c87bc5986887713782d64d4fe91d0f8d0d5","0xEF2463099360a085f1f10b076Ed72Ef625497a06",!1,!1,null,null],["ethereum","shed_coin","SHED",9,"Shed Coin","304402204972ffb77bce06437de7cbbb15534951c7c2aaa18001210de3eab1bb41892daf0220263970592e2f637fa342e836605b00d7e6a2c6417e69fe0598df36c1bfe089bc","0x9BeDCD470351CBadFFf3bD340085655bB260fDb2",!1,!1,null,null],["ethereum","sheltie_inu","SHINU",18,"SHELTIE INU","3044022054a6ec523d42916a70a3cd75eeb6da463e3692d2263d936085019c9d2c809f4c022029fc2215fb7b584b361559fd6a8bfe2b080903493bc56cfea285c1699586e349","0x71BEFF5533dd4c0a47B739dA50C56A2dd28633fa",!0,!1,null,null],["ethereum","sheng","SHENG",18,"Sheng","3044022034f6d3d3e282b4011508216923de7ca3da3f345f896113c86c2678745ae66cf10220100e41d74d010d69bb93a35a76cfb98b2f4049cecad369496a6e018e2ebc133a","0x22Ef3753e3658e81D5A0d0889ce078178Fe66595",!1,!1,null,null],["ethereum","shiba_chocolate_v2_","SHOCO1278",9,"Shiba Chocolate V2 ","3045022100fd4ecf16b7a89600e70c509190e55cc883b1f5641ef6c023457bd007768fa47e02203e859f00a63284b1c505cec1bb80f69b982efb30aeae277bd8a9e8e1e5717da7","0x322080Dae6752ee02F2fb8850bD4A75B9F3C1371",!1,!1,null,null],["ethereum","shiba_cloud","NIMBUS",9,"Shiba Cloud","304402203756879976838b747950e6d82453f77e6314f8ed5b2decef9d2ba4a92765c48502206ebf04d83ab75458303269975bdff6a1ff41061965cf8f90b76262a3aeb34522","0x645035d009182b480fE554D2926664105d62C309",!1,!1,null,null],["ethereum","shiba_cosmos","SHIBCO",9,"Shiba Cosmos","3045022100978d829c91d23d960e9718a71c46c89f903ca455dd140adc894f0871e7598ec7022009e3ec1f4e8830e466208dfee0655b6f3b09abb3b4fbcf579786682e6b0bc8e7","0xc5C43aD81e6C76EAA1f2Dd92CB6a11Ff6B6D09eA",!1,!1,null,null],["ethereum","shiba_inu","SHIB",18,"SHIBA INU","3044022062879076cfc01d1b87b26309200c4b1506a4531318c2b66cfcb4cb6f8c7f92c802202420a4963ee7267e7a45438efd610c0fcdd14d655fc0f31f63ca95f2762d0491","0x95aD61b0a150d79219dCF64E1E6Cc01f0B64C4cE",!1,!1,null,null],["ethereum","shiba_launch","SHIBAL",9,"Shiba Launch","3045022100c8cba287527073255d641073de5a87fc2c90d752493eadc39d93e6d953cb521b02202290ffcb2cd232682c50d44442ad74fb08e0ad4657581dee1c1fd53dbab1dea8","0x77f39C61DDaC121ca1B24fDeA984faB734FDcE8F",!1,!1,null,null],["ethereum","shiba_predator","QOM",18,"Shiba Predator","3045022100c0d98c9b4995e7b0bdbf9b115cf2d7d10a35060f2ce0ed83570a9fe92195a3710220698a4bcb55764974bde7687d8b582559f8464f5e5ad4f05f902f5caecbff4000","0xa71d0588EAf47f12B13cF8eC750430d21DF04974",!1,!1,null,null],["ethereum","shiba_ramen","SHIBRAMEN",9,"Shiba Ramen","3045022100feb7b236881375b2a5c7b6bb226decf32a011ee182ee7d8c86f4e2054b80121002205b1f94efed33047b0c9f27545d98daddeb011979ef5cbd08a1761160e086b90c","0xb2E20502c7593674509b8384ED9240a03869Faf3",!1,!1,null,null],["ethereum","shiba_swim","SSWIM",9,"Shiba Swim","3045022100e0ce9d1968cd8eb77c33eff994c5935ef737d080232f762cf61694b47b2126d002200340855023576eaad80a2b6abd1bbdcf283f2772daa978439ba26422a3986e3e","0x6936F1dcd8c2e3A69469311A130858174F9f0A15",!1,!1,null,null],["ethereum","shibadoge","SHIBDOGE",9,"ShibaDoge","3044022060b0c402a6eba3b172dbabd5ea03156ecd22da03cbd8fc7e135f63ec865f8afb0220268f51f0e9ff36dd47e79734f4037f4102176244d6d7b982ccf8ea80bc5d28b1","0x6ADb2E268de2aA1aBF6578E4a8119b960E02928F",!1,!1,null,null],["ethereum","shibaken_finance","SHIBAKEN",0,"ShibaKen.Finance","3045022100bdbecd8ff0667fd16dcf0a94b701af89b9282bb0ff53f9737195fc8f6ab286e402201111c6927d8cb3b26d9cec8d5ebcfd3a7b046096edf3afa1b3579a1b350f0e35","0xa4Cf2aFD3B165975afFFBf7e487CDd40C894Ab6B",!1,!1,null,null],["ethereum","shibalink","SLINK",9,"ShibaLink","3045022100cee55f81b66df82ea2a49d9655541a77cefeebc418db27a834060087eef63fac022032371864d6c2c4daa49d102c40271cecc6967dd67707c7c117a82f576a417e68","0x3DE7148c41e3B3233f3310E794F68d8E70Ca69AF",!0,!1,null,null],["ethereum","shibamax","SMAX",9,"ShibaMax","304402207f5782b5c5259113117d65168b553fb8c32b982cac690cd8c4c20ca740008630022006bfae9265bb6982950a2f23241569fe856d6c29b0f4c9ddd67bca99745d9b4a","0x8fa025E8342EaD1037d2954b95333FF2Bf57162b",!1,!1,null,null],["ethereum","shibape","SHIBAPE",18,"SHIBAPE","30440220653e193eb5c67a0fa7f04561bc2cc57b3b87453407379b751d19d95cea40635b022024392cdaaef43a346c49c1b26b62cfe6078db24ea78e5ac77c079c1faa27dc62","0x95Cc8d92f33b160B640652B425a3c642750BbECB",!1,!1,null,null],["ethereum","shibaverse","VERSE",18,"Shibaverse","3045022100835cb14f128f7cea00ad3ac14e5972ae5e3d3cfc0c70bd4904f2fb670a0773730220352f1165ab156e9868bcd1ab4723b02201d1fe742c522999c95a30d4fc1d4079","0x7aE0d42f23C33338dE15bFa89C7405c068d9dC0a",!1,!1,null,null],["ethereum","shiberus_inu","SHIBERUS",9,"Shiberus Inu","304402203be4f0ab99d6e8ae48011ac997b14793135c43966e9790f19db82c894a05e1eb0220495636dc89d6a5ede387b49bf6ea76af31c95ad33fec9fc03ff01d7e0e410bb3","0x2dFAc6327Dce9F88E31fF46de13049eca5a7DfcB",!1,!1,null,null],["ethereum","shibgf","SHIBGF",18,"SHIBGF","30440220175bef4ee6bdbfbce573231547319ec94860b47947d2f341afd7ce0c71869844022001d3e21f162f8022af631e4cbcd67dc8bff6c859868adbe09140233bb980f777","0x505a84a03e382331A1Be487b632Cf357748b65d6",!0,!0,null,null],["ethereum","shibmerican","SHIBMERIC",9,"Shibmerican","30440220246d07c9d55269024895fa3253503ce087383c7b756eae8fa6dd58e5533910c2022079b6a3433d616aff43ef2601ff18998555f13c40d108fceb2aeea122b670172c","0x440238CC07186aDEA6653a2E8cb9a24737615609",!1,!1,null,null],["ethereum","shibnobi","SHINJA",9,"Shibnobi","3045022100b444c3ae61e20af5fd3184a7a5683a80273641fb4bc0715467e8dc7790013c6102205a774e92bee822a34b6bd2f79162db2addc0135e97cf6d77bfa2e4897d0cf2e5","0x7DAc25b1A665e1c70F25F1fC37d88C99274984ed",!1,!1,null,null],["ethereum","shibnobi_old","SHINJA_",9,"Shibnobi (old)","3044022077a35a64d4b87f02f428a4767d4bee3071330952b9ef9f549acf1ba4a456baf902207feb2e3e6471b7073accd1c3d2cf067ada3bc18bb632297e7733bfb3f455017a","0xab167E816E4d76089119900e941BEfdfA37d6b32",!0,!1,null,null],["ethereum","shido_inu","SHIDO",9,"Shido Inu","30440220662af9f4079d63d2507c61e86e0c133f604814cfe5fa953618b5a0b50d5454fc022043a79f8b3344bbafc6df078b7974fe24b96c9e6fbdce1389a14d0834e72be8d9","0x173E552Bf97BBD50b455514ac52991Ef639ba703",!1,!0,null,null],["ethereum","shield_finance_token","SHLD",18,"Shield Finance Token","3045022100b3d66ea88b519fc4a3390a1ef23db807515c9ca4504aafa6f339c78b251c6aaa0220651c4a9149f6620cf97ed5e82d9d62eedc9c187f8454f572d385bf96d285dabe","0xd49EFA7BC0D339D74f487959C573d518BA3F8437",!1,!1,null,null],["ethereum","shieldex","SLD",18,"ShieldEX","3044022049efdcaffd1ac7e2ad357ceba3d90c856e9e63d3fe49982a89edb975b23b11df02206c5f43bb76169a5659c72a5b578d24f94ff87071541c8cfc906292eecd813a14","0x1ef6A7e2c966fb7C5403EFEFdE38338b1a95a084",!1,!1,null,null],["ethereum","shih_tzu","SHIH",18,"Shih Tzu","3045022100a34c9614c6406c9508ffab8a8f2dc6f3826377b7cdbf93539d185d2c34d5dfc10220474fa423d911c9fd88cea0b32b7c95b6a73071409a5a04c526d1ce944ef6fd8c","0x841FB148863454A3b3570f515414759BE9091465",!0,!1,null,null],["ethereum","shikokuaido","SHOKK",9,"Shikokuaido","3044022036df8a2cf303f8084eb918808ffd5438d49ead3eaf33fffb2f6cf65d13bbd08a02205769ecc2ebc4b73dac6d6cd92f58542f69c7e495ee53ea6ed68703354e3208ed","0xec0bF0e934D092D31E769e8C9722FFbaA582Db3B",!0,!1,null,null],["ethereum","shill","POSH",18,"Shill","3045022100b3c64c0e6f56a4762e49968c0628c42e5678c4157ecd2ca685f2537d3ff0d19602205cb50c09ce1024f80e863d3e02fc9e47d4f1994a0b6da47eef668a348c7d9e85","0x685aea4F02E39E5a5BB7f7117E88DB1151F38364",!1,!1,null,null],["ethereum","shina_inu","SHI",18,"Shina Inu","30450221009ef738d50365fddb339a85056ee71458d7fba48f5f7c27111171c6592b76b76402205ef30811777c911d61c28a1177141ab86b7d8c1af4cbd73cd077fbae5b122556","0x243cACb4D5fF6814AD668C3e225246efA886AD5a",!1,!1,null,null],["ethereum","shinchan_token","SHINCHAN",9,"ShinChan Token","3044022039e835dca0bae8d4c4b5ee97a86c51b36e97e02e753e907fde088d15a59762a602200cc37e38348cc771f29f13aa3686820cd4deff61cad8847bbb0429aca8f6a10e","0xBaa9AF8a83500Ac4137C555b9E58CCB3e1f2269D",!1,!1,null,null],["ethereum","shincoin","SCOIN",6,"ShinCoin","304402203449cd45febed111c18a059a3ef7b5586b7a4a8f7d8a374d782607f0e2dffbc4022043feb7ca276954e6cebd5f40225caaa8044b82be163beb864be154771cb25531","0x3f5DF2F90DF67E10974fBcB1729c00D3f87c0EB4",!1,!1,null,null],["ethereum","shinigami_inu","SHINU",9,"Shinigami Inu","3045022100d260b90f3d81d2b7417f80a8e8992c864933817e0a4759c7c20e176c16386a6d02202e9e8e438fe5290eaec9a75e93d4bdeb4ac13953b5f170bc641f912a2294b8b4","0xa1ab427451F19dF7445a22dEa7073800Ea3b687f",!0,!1,null,null],["ethereum","shipchain","SHIP",18,"ShipChain","3045022100891432b9ac50945853540f1803c67d68e540130139268a3412cf4974a0cb1a310220253317bcfd80d50ddffa2c071db8e4242e37cf613f93ad587aa87371d3221608","0xe25b0BBA01Dc5630312B6A21927E578061A13f55",!1,!1,null,null],["ethereum","shipit_pro","SHPP",18,"Shipit pro","3044022062b400abab0660fa971577d684fa53849ccef240e7836d82efaa6612bd296d0c0220195183c21e37ebe09dc1b4c263e6012fc07336a2b071e071075158ca83655ed0","0x13b1E6B036aC0a1495F876313f92A0706CC10871",!1,!1,null,null],["ethereum","shiryo-inu","SHIRYOINU",9,"ShiryoInu","3045022100847bfce09988840fb94ca8dc5bcd37b219bc2254033f99eddd8be754c0f8575e022019338ef1482aa8085b25202b721bcfc3da560780d2467163df386c9d843e1df4","0x1E2F15302B90EddE696593607b6bD444B64e8F02",!1,!1,null,null],["ethereum","shit","SHIT",0,"SHIT","304402201937f3cf306a301ac7c79f26491c3951bf521b043f67abea5d8d6911ac91c7ff02200cb864b21eae2f10b8c5ac8ef9dad9ed0fbcb426c566d4fd0a34a1c1c27f652f","0xEF2E9966eb61BB494E5375d5Df8d67B7dB8A780D",!0,!0,null,null],["ethereum","shita-kiri_suzume","SUZUME",18,"Shita-Kiri Suzume","3045022100b665a18bfcedb289848984eec1ed5479879175ac9832aadaa47380845013961b02201c807996362674babb44b6570022cc816702a17ec16e3d61668f643ce9eccbc1","0x0B452278223D3954F4AC050949D7998e373e7E43",!1,!1,null,null],["ethereum","shitcoin","SHIT",6,"ShitCoin","3045022100a0f63ce65c0cd5a2bd56f78b0f21988170110d886667096c66730047ee24176d022067454e28a3b40429d250e80352fbf3f7770d37f9cf7e9e2554465141fe64c930","0xaa7FB1c8cE6F18d4fD4Aabb61A2193d4D441c54F",!1,!1,null,null],["ethereum","shoefy","SHOE",18,"ShoeFy","304402207b70ffef3c0635076b33c1b9b02250149dfeb912bb4470ec69ebb6164341925102207972bd007bb5530bf6f4fb9f39dfb811660b98ed838c09faa660595fde452fda","0x0fD67B4ceb9b607Ef206904eC73459c4880132c9",!1,!1,null,null],["ethereum","shop","SHOP",18,"SHOP","3045022100d8bfe7cd12d195f5660541edbc21add34f343b246d64c39a0a6f9a03404a947002200931ab89975be312235408d1d5e756c5e92c50443cf418c7df0f17acc7f3de7d","0x64b78325d7495D6d4be92f234fa3f3B8d8964B8b",!1,!1,null,null],["ethereum","shopping_io","SPI",18,"Shopping.io","304402200fe289563fe6578aaabe30b27edc2c14f69124c2a897be79aa67d34931c0e43902205ec394a2fa5abc98691b8cafe2fb196e05b7aec0633758f97e86aa682cd058fc","0x9B02dD390a603Add5c07f9fd9175b7DABE8D63B7",!1,!1,null,null],["ethereum","showcase_token","SHO",18,"Showcase Token","3045022100a23996d9383194e98342b58a70941fe08c93e277b53fa75e412be68d900d6795022004a4c0e4c7ef04557673389cf57937a76d11cba45bf523bb33abe6b31297657f","0xCc0014cCb39F6e86b1BE0f17859A783B6722722F",!1,!1,null,null],["ethereum","showhand","HAND",0,"ShowHand","304402203c17d2315e557afd3d4bd98358f549722c5cdb588cefa9177aafcc2e1fe6937b02204e05da3d898b5208f23a97f957b66a797570bf45dfc106f198a46fb37e5f7244","0x48C1B2f3eFA85fbafb2ab951bF4Ba860a08cdBB7",!1,!1,null,null],["ethereum","shrimp_finance","SHRIMP",18,"SHRIMP.FINANCE","30440220427aa7a2ca829b8f1fdc7452371fc0b17fc05138fed68ebfecd087060cb708f802205d2d8c2380e3fd4cf4fc305e38ab1ac2e3080cd7ec01431be683f1cb22614f60","0x38c4102D11893351cED7eF187fCF43D33eb1aBE6",!1,!1,null,null],["ethereum","shroom_finance","SHROOM",18,"shroom.finance","3045022100eb35059a2790239d7b4493e37c6cab2987fd6b7b4b10a2ab1fa923916106289902205138f6771e3b0e5f8169753903b990e40f0f97c68db6f54906bfd4678b9057cc","0xEd0439EACf4c4965AE4613D77a5C2Efe10e5f183",!1,!1,null,null],["ethereum","shuffle!","SHFL",18,"SHUFFLE!","30450221009f1acfabf26e28dcb868b9f471dbabd9349340d46beaf134df7f421ebadec43f022063b81e790b8f7f2265eff44bc1d00c0886ade096edc8ce3e96717c7c913cc7d3","0x8c9d0e9d27fB15a96Cd8Ad714929502F4f1995Bf",!1,!1,null,null],["ethereum","shuffle_monster_v3","SHUF",18,"Shuffle.Monster V3","3044022027f2ee85ca6212a321f19b0f9473a4ffd30272372746b462202373181f9a9bc3022021bc069ac3e913e927613764412d17bbc4a23d6d5d5eb97148fdfb2fc6788c2b","0x3A9FfF453d50D4Ac52A6890647b823379ba36B9E",!1,!1,null,null],["ethereum","shyft_[_byfrost_]","SHFT",18,"Shyft [ Byfrost ]","304402205b1afcba36194981672d9f993fe5fb54670fde19500dbd0737b005d73eb5763002205ef8dfb615ee4b513988c271579c54825d2c2886964e3e51e70ee0efe53e136f","0xcba3eAe7f55D0F423AF43cC85E67ab0fBF87B61C",!0,!1,null,null],["ethereum","shyft_[_wrapped_]","SHFT",18,"Shyft [ Wrapped ]","3045022100a9eae49b582d91cc28ad7f8bee2adf0e67522225dcb79a38a071dff50d512cc302201f16c41a3591ba23b6b3be71a2e58b7593eef5fb5b4558a47ca33b574fd8ae2a","0xb17C88bDA07D28B3838E0c1dE6a30eAfBCF52D85",!1,!1,null,null],["ethereum","si14bet","SI14",8,"Si14Bet","3044022031099ed758c08c8208e88081b5afd4f4a3803394fbc84485dcc8b40fa478b2d8022025c75e9a783a5ba097db858212ade8cb338ec7fb88e0300db218cb394b6372ed","0x8b98dF4Dff429E64E9A56fc6Eebe2380c6c3409c",!1,!1,null,null],["ethereum","siacashcoin","SCC",18,"SiaCashCoin","30440220649d43457685b5848a620130de31e756480375d8593c8ca5dc4bd13e3eeb5737022076d78f9294c16ac4b6cf6344cfd96e82fdbcf7ac7797abd3a0dd6e8a4cc7c43e","0x74FD51a98a4A1ECBeF8Cc43be801cce630E260Bd",!0,!1,null,null],["ethereum","siambitcoin","SBTC",18,"Siambitcoin","3045022100d394186ac450e251cee391918c8e84072a270c0ec90317727606cab104ef664602204c3576251a867440bdf9dd26ccba6dac19d7318c884bc97e0698088a2a9ce06b","0xb8e103b60A33597136EA9511F46b6dBeB643a3a5",!0,!1,null,null],["ethereum","siberian_husky","SHUSKY",9,"Siberian Husky","3045022100efeda55c9a79ab6e5477d82f2fa2d6ae7271031f8b31a7a6386ad1e0498b4e7902202a12d2d808b2dda2f7a3d303e6f96171d57885605d60a72f117428a30d6c1fdf","0x236d53148F83706C3d670064809577385f923a75",!1,!1,null,null],["ethereum","sid_token","SID",0,"SID Token","304402205b6ec718ff5ce46bc693ff98925f92912023c0e83d69ab84f9908a673f388b6802200469b40519cf46fb7d11032e7635daf1c61a07a22f1d426ab0477ccd7639b1e6","0xEf4Ca6496756AE472904e80988a89600fed5CC55",!1,!1,null,null],["ethereum","sideshift_token","XAI",18,"SideShift Token","3044022064415ad141fbc69348f63f64b2ec978a1cabf421c92e2906d2b27a116feecc5d022029b790e2f6832429f0bbb8792386bf1ec523b21aa071d14726cd46ea01621207","0x35e78b3982E87ecfD5b3f3265B601c046cDBe232",!1,!1,null,null],["ethereum","sidus","SIDUS",18,"SIDUS","3045022100c37846082d10d97f2c06c02111860e06d2897d3908a51cb712a3ba5a902a81fb022057f7b3d326369b8df16deaf06a83134612cee614ba3c1f7edd3c75b6159b8674","0x549020a9Cb845220D66d3E9c6D9F9eF61C981102",!0,!0,null,null],["ethereum","sienna_(erc20)","WSIENNA",18,"Sienna (ERC20)","30440220544124770f6489015a6cb1d6ab88be20744fa5ccfdea5ed91a13fa1245899dad022004f5f72089e6beba11bbe9a6b7e3f165504f9048ffe50a5c276706274fbccd4e","0x9b00e6E8D787b13756eb919786c9745054DB64f9",!1,!1,null,null],["ethereum","sift","SIFT",0,"SIFT","304502210097c3b8d6a3cc7d918ccea44b5a0cb76619a8e5589b1296750dc273233f0ca27a0220130722da27a7640b5b406fc1437a9b53a79528bad11a68cc82ec31df1be4661d","0x8a187D5285d316bcBC9ADafc08b51d70a0d8e000",!1,!1,null,null],["ethereum","signal","SIG",18,"Signal","3045022100dc25739e8b86cbbe21a38ced5d255c5cbc864e4af375605436ba2de1d51fcdd00220528fa2b5c24ebda3f1ad0c03f2f5bc88343b044f8656d2f328412ce78c027901","0x6888a16eA9792c15A4DCF2f6C623D055c8eDe792",!1,!1,null,null],["ethereum","signals_network_token","SGN",9,"Signals Network Token","3045022100b06f6df9f08cb91870b5fd42ea2563c4792df77a5a4c2816dc4ecb6972bdd00602206a2204c788810d8c22e0e8b0bd538c9c114abcfc43d25fef05c12f7d1a19b56e","0xB2135AB9695a7678Dd590B1A996CB0f37BCB0718",!1,!1,null,null],["ethereum","signata","SATA",18,"Signata","304502210081de92737fe9c87bb9e3cdb019803979168efecdcd541f904c1ea324c90d153502201fde176ead5e2b9ee56bc6165f0df70c8d28b79aa014b30383355439e41c6f67","0x3ebb4A4e91Ad83BE51F8d596533818b246F4bEe1",!1,!1,null,null],["ethereum","sikoba","SKO1",18,"Sikoba","30450221009a15ac3b4c8e26c64bf5a53ec0284e8245ca9533e086e2185fded36bdee386770220775ebd472c49b174ee2b111daf5fe33a4c2bda345c730fa79fc9cdf79f3cef1d","0x4994e81897a920c0FEA235eb8CEdEEd3c6fFF697",!1,!1,null,null],["ethereum","silent_notary_token","SNTR",4,"Silent Notary Token","3045022100e5c49ba5df4ce9dd5246e5d876ca7f05201820ca159e122705c6b7e28bec3385022051766cee16e07e572a030d965497b2f3d8fa0c0baf8ec23599d6761a690f8b76","0x2859021eE7F2Cb10162E67F33Af2D22764B31aFf",!1,!1,null,null],["ethereum","silkchain_token","SILK",18,"Silkchain Token","30440220020e401eb8eace351eb7a5bde62b577c115fcefa440a22a35c589c824af4d4b902205f65a3eb88e3ae78068e030f361252457bed510401e031833339544ce7eaf36b","0x4C1e085d8c2D2a8377834d0D7b38f12cc5b86898",!1,!1,null,null],["ethereum","silo_governance_token","SILO",18,"Silo Governance Token","3045022100fc17cf05c244f13925aea44653aec93697dd76494a9a6fc84da797f5eabfbf5d0220514bebc4e3d6b08a72e4555b9f9a486c0e25dde82ad0898d2121f80b3fc9a896","0x6f80310CA7F2C654691D1383149Fa1A57d8AB1f8",!1,!1,null,null],["ethereum","silver_standard","AGS",4,"Silver Standard","3045022100884a157bcca778295ec7cbd17603c89ba0bcdd035c59ac4d6603ca0a5b1865c602201fcbe5184f937addbba2c762e758b1ad7253786ab92dd47b2ee6c159aaeb8272","0x843C9AF34F698618F90C898E3967278a260c8d9A",!1,!1,null,null],["ethereum","silvertoken","SLVT",8,"Silvertoken","3045022100c67bec76254bc619ce7983358b37da247590b5fe236a93ee3dcbcb42fa5fbc2d0220170af490167f6c86d6a4b672a18b7d317e6b61f5c40770733ffe1a6509b663bf","0x652594082f97392a1703D80985Ab575085f34a4e",!1,!1,null,null],["ethereum","silverway","SLV",18,"Silverway","3045022100ef61e29138ed8a1d4be5bd87d9be59e77309000a591b27faeed7c20f0b89515e02202812cdbfdba58745f768b85555aa3472f5e577ebfa3eae68f9f51e45398ccdea","0x4c1C4957D22D8F373aeD54d0853b090666F6F9De",!0,!1,null,null],["ethereum","simba_storage_token","SST",18,"SIMBA Storage Token","3044022012c541dff27bf638dcb2488f1a07155aed47e0c83708e49d28c9eab27c1729e3022055667b8a8d34c425a0df98411aa3fa6b89724d3befa4b70d1baf94de4d9799da","0x2863916C6ebDBBf0c6f02F87b7eB478509299868",!1,!1,null,null],["ethereum","simbatoken","SIMBA",18,"SimbaToken","3045022100c7b3e929d142e2a6fa4c6edd253e48fbbe5ab1af5883c32ac42a0c59a366f21f022024622b0e9151ec54ede99b57d8ea74e661e353cda1a5c1251685eb5ab87c98b3","0x254417f7B56328a48f554b173dCa7Bdda7A2a0d2",!1,!1,null,null],["ethereum","simian_finance","SIFI",9,"simian.finance","3045022100f53a0e48c588f623e42e8bfee1a4c1dbb033bdf89f930cc7521225b971977a4702200663a1ad6da93528b38db21cc4f2d1caae290c62b44c5d21e08a55fae85e5efb","0x4afb0AaC9b862946837b2444566B8a914D6d0d97",!1,!1,null,null],["ethereum","simple_token__ost_","OST",18,"Simple Token 'OST'","304402205fd8e0d071c0e5743c24c96e6fd5b96b0cd8b4d061c3ac12cfb603bb63dfbe1c022028bb80a3dd8ee47340e58d164783ff891632412218d515fb8bf284a4d201118a","0x2C4e8f2D746113d0696cE89B35F0d8bF88E0AEcA",!1,!1,null,null],["ethereum","simplybrand","SBA",18,"simplyBrand","304402207be8b4d095b01fc08ba44cd8829a4c540730074d45e9b5b0c0211a4ef968babd022066d388de17fbf74401ee54f9337caf1d22aa6506f7d5347afb67347981364a4f","0xECB8F588EAf5A8ce9d964b0acece5D954E130e2f",!1,!1,null,null],["ethereum","simracer_coin","SRC",18,"Simracer Coin","3044022041dae7237c3a4c8f8433eb601eb890d22b8ae5e49ae14523c376ad2cef73252f022014875c2c4678d2e4bd92cff8cef6652ceb30f0433d3813c3c97177c85346cf0b","0x16587cF43F044aBa0165ffA00AcF412631194e4b",!1,!1,null,null],["ethereum","sinelock","SINE",18,"Sinelock","304502210083f681d003e79eda3d9551ef41ec710de14aeb70cbffa88f245249c497da83f6022033378fddbf0781ac8205db86cb1570847bcd2ff09b8a2acacd3f9ef40bbeab41","0xeb2C0E11aF20FB1c41C6e7ABe5ad214E48738514",!0,!1,null,null],["ethereum","sinergia","SNG",8,"SINERGIA","3045022100c9b95cfe41c1b55234e08a087b78f35a47c0dc972b93c94b36ca08b3456f96c4022034ca0aba810fa37eda74ad3fa36cf9e17b6012446b864c4fcf1808680ee8f5d4","0xcFD6Ae8BF13f42DE14867351eAff7A8A3b9FbBe7",!1,!1,null,null],["ethereum","singulardtv","SNGLS",0,"SingularDTV","304402201b369af6ca20920b1172bd94ccbd7b7eb7d2e98ea2e059d113c9a9abe4d6cf96022008c8b168f970f62e57480195468ea5babd406c9a78ef462f4112885310dfc8dd","0xaeC2E87E0A235266D9C5ADc9DEb4b2E29b54D009",!1,!1,null,null],["ethereum","singularity_dao","SDAO",18,"Singularity Dao","3045022100b8aac2f5e0060a35569c3281dfe8ae19a54b455b434ca2bad062062a5b7e678d022062da20401448a5a31f92f27e240566afe624070dc5011312f2827fcf6aee8b44","0x993864E43Caa7F7F12953AD6fEb1d1Ca635B875F",!1,!1,null,null],["ethereum","singularitynet_","AGI",8,"SingularityNET (Old)","3045022100a4d2c56ae68e0d258cf51f95f7c2b82dc5d6b2cec79f7937bf7e7f6e492fc20f0220776ce4886d8d34cbc57dac00352950df7713015611e687230c4aa29ca3b19e8c","0x8eB24319393716668D768dCEC29356ae9CfFe285",!0,!0,null,null],["ethereum","singularitynet_token","AGIX",8,"SingularityNET Token","30450221008ecad97a6bf861fc3c704aa605abf942d21752c20da06bd32ac93bcf7c4cda3c02202aa0623812f55ff11f5acaf9cc8b2cdd29f3eb980cb6f7c1307929c69c65faa4","0x5B7533812759B45C2B44C19e320ba2cD2681b542",!1,!1,null,null],["ethereum","sinoc","SINOC",18,"Sinoc","3045022100963094a79756536be611c33c086699a7cd5f862d6631fdfacae607ac084a9b4602201c554218606f5568ef42f292cb2a95ed4b23f72e2f130ac728ff56f6fe7b3519","0xcbA8162778E6A3eBA60E1cF7C012B327340BD05d",!1,!1,null,null],["ethereum","siren","SI",18,"SIREN","3045022100d7fe8bb11bd5e0336955f7b3c608c227a838d0c25f9c1561d37616372b6de14102205f2d38cb56aa76802c42f8511bc0a178d1b504ee840ffd3d06005c10ac613987","0xD23Ac27148aF6A2f339BD82D0e3CFF380b5093de",!1,!1,null,null],["ethereum","sirin_labs","SRN",18,"Sirin Labs","3044022063f02ab98b302bab2ca6af42d44a93fc2ac9b85d63f0745ebeaa6e086c0a530c022078f0965d203e8400bd4a00fb4b4abe974a016dab94f1e6c86c9304045a63574a","0x68d57c9a1C35f63E2c83eE8e49A64e9d70528D25",!1,!1,null,null],["ethereum","sirio","SICT",18,"Sirio","3045022100d87cbc55c8dfecfb0080b1da3da12ec054b1ed35300994f36cf45d619e1713af02206c189a9797e04dea3ed8015bc3f086fb4b17501e8256a72498943e651a739717","0x94D35918f6B00D6CFFE9FE0973C37D02f4e854dE",!0,!1,null,null],["ethereum","skale","SKL",18,"SKALE","30440220658ab5fbe34205051f68125979c524ba9288de73323ed439a6138cd5aac672490220491a134ad8e0296498c2050f4848c187379fe972466c71b7aa106c33daf8ff7a","0x00c83aeCC790e8a4453e5dD3B0B4b3680501a7A7",!1,!1,null,null],["ethereum","skillchain","SKI",18,"Skillchain","30440220538d7ae27645d728b73a63b7f5ab5816020fd153b3e8f18d09b1d068bf649a43022041851fb49099f7777578a59aca4c0495d271eefda6fc01e92d1aac8f439c922d","0x996Dc5dfc819408Dd98Cd92c9a76f64b0738Dc3D",!1,!1,null,null],["ethereum","skin","SKIN",6,"SKIN","3045022100dfe75e268d30339566fef0261485ef2c28916b495c413fac098f3e24ec0d078502203165899811a5a766b6963524d26eab2632bda86fa1d5798d75187b91495ce216","0x2bDC0D42996017fCe214b21607a515DA41A9E0C5",!1,!1,null,null],["ethereum","skinchain","SKC",18,"SkinChain","30450221008a9a2f055603de717f34d9821eb33a9429ead94f9655cf56fae0543e041f61550220358ed52c8e8376af1c0e031a403f1c47a9a2b45c15cbf11bcaf2701983e84212","0x0fE156436F203B114C6c562Cb1a2A81aa2801090",!1,!1,null,null],["ethereum","skr_token","SKR",6,"SKR Token","304402203a40724fe65492dc4e3357596a5d89e599549d158e358a7014173fee9ec49df502206c771a5026fb365cdec34bed07e29ede789d0406e50b828d6c2ffc83c275648f","0x4c382F8E09615AC86E08CE58266CC227e7d4D913",!1,!1,null,null],["ethereum","skraps","SKRP",18,"Skraps","304402200618dfcb966d6a277850944f2a48f2f1c2c086fd335d8b600ba618f805632dae02207dfef6c492d4ce16c7e10b4f9371fa84e42435f757ce1e3489ec9afdfdc9c878","0x6E34d8d84764D40f6D7b39cd569Fd017bF53177D",!0,!1,null,null],["ethereum","skraps_","SKRP",18,"Skraps","30440220685f077e7373d1307105bccc598d1ae319ee8e34e64f2d77a2537e32b0d3e978022026d1677da72b2098acc89fa00c3dc29afd84cb40758f5208d9cffb565ff7cd77","0xfdFE8b7aB6CF1bD1E3d14538Ef40686296C42052",!1,!1,null,null],["ethereum","skrp__phase_1_e_","SKRP",18,"SKRP (Phase 1-E)","304402205e33343bf981e9c2a7d3b0da2bcddc03132b11ebdc2e52a9f30c2185c273c6d802204660d2e72b07da2cff764dc2cdd0c5d5742563a700f192e6a018b4a6c55e1123","0x324A48eBCbB46e61993931eF9D35F6697CD2901b",!0,!1,null,null],["ethereum","skrumble_network_v2","SKM",18,"Skrumble Network V2","304402203d80abf2f3eacc8818732e031f1c31922817fe83bfb65e00cc35574e2c42f12302206320aaa6c1beb6eabdd3db7d2fd653a91e5faebcd370b92d6a64372f0a1cef73","0x048Fe49BE32adfC9ED68C37D32B5ec9Df17b3603",!0,!1,null,null],["ethereum","skrumble_token","SKM",18,"Skrumble Token","304402203b3c16b74cb8f680046fc21bfe693efaab4e2dc857f1c5903f69561e386e115c02204e5a6d257a9e8c99c79e289b754fe463cd41dbc6bde2ab6a8b4699f0b02afb5e","0xd99b8A7fA48E25Cce83B81812220A3E03Bf64e5f",!1,!1,null,null],["ethereum","skull","SKULL",4,"Skull","3045022100f0ae0a8947c0cd2627c3f49c72ba16fd82c1b595ae04af51c36eee89473646e1022003a39c86222a77ee8d96a83388dae82cb22e6082a289ba38095c3b2ae09732e1","0xBcc66ed2aB491e9aE7Bf8386541Fb17421Fa9d35",!1,!1,null,null],["ethereum","skull_candy","CANDY",18,"Skull Candy","3044022021ad9580c68b8f262f5f4f206e825cb2f0ff891e3c90f581df360cfc242a056002205c9f4a79940de55ff0603bf73b1325f2ef542c3ade4863aff5460e89fb416c24","0x50eb346Fc29a80d97563a50146c3FcF9423B5538",!0,!1,null,null],["ethereum","skymap_token","SKYM",18,"Skymap Token","3044022010e00be8716fdd5955eb3c4c6ba27e7316a0da26f40d1a3a9499f4384946d72a02207f2a354288fa20cda62ebf3445d2bb75c18982c8f4a8235beaf66abb0741ba22","0x7297862B9670fF015192799cc849726c88bf1d77",!1,!1,null,null],["ethereum","skyrim_finance","SKYRIM",18,"Skyrim Finance","304402202ac1d82a3bd4672a45f257575ae00db1d0345d74f562a329e339b7d65b3a134d022027fb57b33c2220a95239c6535c5e9fa331a209fa8e0cc62ec4e6e9d3999f3a03","0x2610F0bFC21EF389fe4D03CFB7De9ac1E6C99D6E",!1,!1,null,null],["ethereum","slash_protocol","SLASH",18,"Slash Protocol","304402203aa2c5e4ec9a3b815c1f16bdd583f2c27bd298632b9dba6f06393e132b29f7e102202792ba5bc198c79e9cdbed58a8746a4ea6aee2472f883134b2b4c575d95b95db","0x755e83f560335E6bb8E45e44460EC4aF598E24C9",!1,!1,null,null],["ethereum","sleep_future","SLEEPEE",18,"Sleep Future","3045022100ad39eaabe76da905a2b0241552ec06f6804af9aaecf448642818dd674a1d111402203afa0f7c9b48cdc9cbde39739f60827de3a88f50de43e993aa1a567c0789694a","0x80CD73baDb406eA36B9a7CDeb8df06AeFa7E12d9",!0,!0,null,null],["ethereum","slt","SLT",8,"SLT","3045022100f11e0a273768f4077cb775be3cabcab498216c8b960ce1a7d1e544d636f748a6022063fc2ff9ee6969ef80e9745dc7a1c3867813c89a01ac4975912e2b8ed2b8067f","0xE9f3cB0229eb8D0aAF03Ec84883950134eD20DDC",!1,!1,null,null],["ethereum","small_love_potion","SLP",0,"Small Love Potion","304402207eb4c8e41642034d1d9ef50468bffe1ad85aea86ebb4909b316171c5551095180220718a0a908a7fff1b77a20000c751a649918506a8bb0d0b6d5ad59eabc5a2d4c6","0x37236CD05b34Cc79d3715AF2383E96dd7443dCF1",!0,!0,null,null],["ethereum","smart_advertising_transaction_token","SATT",18,"Smart Advertising Transaction Token","3045022100f43675862c4ff908ca316710707e59f90a1840c08e914149b8f4c2e831f1d5a90220689472a6194476a3f6c2081afa60b302a709676b87d8813866bbaa9a80b9afd3","0xDf49C9f599A0A9049D97CFF34D0C30E468987389",!0,!1,null,null],["ethereum","smart_billions","SMART",0,"Smart Billions","304402204418cc7faf3c0abcfd679b8309db4321553f09e3232bb41e9cdfe2fc491281e602200f5866e6b704feb8c1d49d8bc7884fcc0851b20accbb1c93ef8067aae3ae5d59","0x6F6DEb5db0C4994A8283A01D6CFeEB27Fc3bBe9C",!1,!1,null,null],["ethereum","smart_medical_coin","SMC",18,"SMART MEDICAL COIN","3045022100cd8bf50a3147b8a25197d01e5e359626b959265318e2755e4fa6f0ce5401f14e0220732bf4ed2796ecc4d72b370f087d1e8022e0a601626a40035b6d461112092c1e","0xB6eDA82597808c96969C21a88bf6c749B441c44A",!1,!1,null,null],["ethereum","smart_node","SMT",18,"Smart Node","304402202105c9227ef283ab44a301e8024ebee1c7e9fb206a5b5cab65cd6179d9fff78002204e0c3d337934f6e935efddf3bace0420e338418206679269cf1df0617042d9ea","0x2dCFAAc11c9EebD8C6C42103Fe9e2a6AD237aF27",!1,!1,null,null],["ethereum","smart_trade_coin","TRADE",7,"Smart Trade Coin","3044022021c9ab2e0b6cb9e13a33e6729eb4530e13ab4512c33d99dfc3051ce5ee84fef9022056fc8a5d8e0499e4cbb4a29d0df17e65377b85776a9e7ee179ea8ef01cf102c6","0x40E45890dff79e7D533797d964E64a2C0121F49a",!0,!1,null,null],["ethereum","smart_trade_networks_5","STN5",18,"SMART TRADE NETWORKS 5","3045022100802e20009d944619b274ccffca7b2b32f002dc2f7ffb37661d033b90e37476320220217464824af09abe3e0f3bb4b6058d2975c947d7a7ff6f45a5f1cc29b2b4b2ea","0x55150E8378B81F930f310d4B62AB7e1252c30B9B",!1,!1,null,null],["ethereum","smartcredit_token","SMARTCRED",18,"SMARTCREDIT Token","304502210085f077fc67c4e922815bff3467bf9ffee15571986bd2832118771abb58fb3a5a02205fe937ac05a95319150297178edaac8959c236f4c6e9a8212f24d591bcfdbfa3","0x72e9D9038cE484EE986FEa183f8d8Df93f9aDA13",!1,!1,null,null],["ethereum","smartkey","SKEY",8,"SmartKey","3045022100b30d004aaf09a35881a79bcc45ac2bdcf4d1766c3b12011aef5012c5e9fa8e6f02203167a02669914bff6d45f88229fb718d7e10bf122b4f8ee58a8d1167858a27b0","0x06A01a4d579479Dd5D884EBf61A31727A3d8D442",!1,!1,null,null],["ethereum","smartlands","SLT",3,"Smartlands","304402202e8e3c0b526b23e4a16b6173dabf25f457167e46b8cb9a8281912dae4999c3220220527ebffb9dbc62b685290e3e2be9be8eb4e7e106f8d618db19c2708b0591c847","0x7A5fF295Dc8239d5C2374E4D894202aAF029Cab6",!0,!0,null,null],["ethereum","smartmesh","SMT",18,"SmartMesh","3045022100f9b6a51382a0972731f1ec1d4f619fe5560ba773d85984e607f140425af0852902203c8eae5e7f0e09db3ca1c6531e0a7acc10a9e2ce98561b66679dca166906947b","0x55F93985431Fc9304077687a35A1BA103dC1e081",!0,!1,null,null],["ethereum","smartmesh_token","SMT",18,"SmartMesh Token","3044022009b5ed7d74d8e4d55d61f3cb9b4fa52cd79ff57679d0448ee09278b4e09b3a8702201dd333260660d10d42f54cef3841d548468236336aa12a4684c78814ef47fdbb","0x21f15966E07a10554C364b988e91DaB01D32794A",!0,!1,null,null],["ethereum","smartrealty","RLTY",8,"SMARTRealty","3044022029762b0badd8afd6d1fe3aced57d0997904da2f35c7b22d12259ef8e3e99887d02203847a764d76e48ef037e51725d60c7aaf790f9c5391c419b79b5c98ab80fad5f","0xbe99B09709fc753b09BCf557A992F6605D5997B0",!1,!1,null,null],["ethereum","smartshare_token","SSP",4,"smartshare token","3045022100e6a29d2410f96f8050ec8e9b36e8bc10bdb53d44d468bf2299da2bd360680a3e022027f0efc03f1af20c100be214fc16729249da863237da341fe5abc7e88bbd676f","0x624d520BAB2E4aD83935Fa503fB130614374E850",!1,!1,null,null],["ethereum","smartx","SAT",4,"smartx","304402204ba7ae17a41e5a3bd471f124db033580f97c078e736bfddc932762e47d4d076802201ddc3cba0b6e4c5a70a02811622db5545906439363678ca7bde585374cb2ec1a","0x1F0F468Ee03A6D99CD8A09dd071494a83Dc1c0e5",!0,!1,null,null],["ethereum","smilecoin","SEC",18,"Smilecoin","304402201b80b9b943a53b0a5d66d75dc7dad92ea50075e02db9ad79b004adae2242411702207f828d61b9b0c289069d37cf7f0b8835bb338d1a63cfc8b9e324409ba28dbf35","0x75D669c53142302C8826d16b5689bffad50A7E18",!1,!1,null,null],["ethereum","smol","SMOL",18,"smol","3044022014f5305c4466dd98832262a4f46a215feb5a7dd9f03d1872888cb70bba468b2c02204d8c78e3e5b0fd40f059bc1627897153b8ff9a08491168f455d08b1a0cc28e78","0x2216e873ea4282EbEf7A02aC5aeA220bE6391A7C",!0,!1,null,null],["ethereum","smooth_love_potion","SLP",0,"Smooth Love Potion","304402205d37f861b52914dd63d469093be8f2f9a0a69d3461f34f8befdb323ea367383902201d48a76f8ad5c48a653ee55e4324fd642c4541a3fec313a203c3a6d8408cfd5b","0xCC8Fa225D80b9c7D42F96e9570156c65D6cAAa25",!1,!1,null,null],["ethereum","smpl_foundation","SMPL",18,"SMPL Foundation","3044022028ea35f55b23743b68b4a4648cbc2407512edfa8d56192b693bc761b0a9ca7bf022014a2980045a6adeb3efaf0d7e099164d396faae56134aaa8d209205be09f08fa","0x8bF92cad232f72A7C61Eb42e9185e8d0Ea470f6B",!1,!1,null,null],["ethereum","smscodes","SMSCT",0,"SMSCodes","304402205f910702f933be730c668a0b6d9b6892fc2bf587ac1ad367c93242f200dcc0ff022012c5c45d61034badc6c8d38d1ebbe9c152063a5b8ff5c9cdc0aabfa95f225387","0x668f7dfb8c8D716839fa5dBEa317D8723Ebe6110",!1,!1,null,null],["ethereum","smtytoken","SMTY",18,"SMTYToken","3045022100f55c6e0c41582c027c6ed76a8bb3e9b0663d26b6142473252617408b59f1142f02203e5f15a864f440178aab40e152bb8a026642464a67d48cf708e98345343f1009","0xbF776e4FCa664D791C4Ee3A71e2722990E003283",!1,!1,null,null],["ethereum","snc","SNC",18,"SNC","304402205a1e5bd3dd76dc3710da9b34ea27fd13ee6a22f7e357ad8a2eb3e083438e457402201eb2d2745abc9e12b4ec15ec57a19c52e350b05ec86b1dd88187d5ff670e89d0","0xF4134146AF2d511Dd5EA8cDB1C4AC88C57D60404",!1,!1,null,null],["ethereum","snetwork","SNET",8,"Snetwork","30440220553a190547f054fdfb3d26f004b3d10caabbca8b7b27f999ca476e55fe83b84c022045158a30c4d004284c31bb808e0f3dffd4b3502ceb722da3cef167eb4f0a6100","0xFf19138b039D938db46bDDA0067DC4BA132ec71C",!1,!1,null,null],["ethereum","snglsdao_governance_token","SGT",18,"snglsDAO Governance Token","304402204bf4bad8757da47a9020421ccbfe6982feb57f8f90df9842a6c7e08855dd56f6022046d5e021b96dcf1dd5398482e32f881556b7d4c983035a4fecbc8b90c4c7b4c9","0xc4199fB6FFDb30A829614becA030f9042f1c3992",!1,!1,null,null],["ethereum","snip","SNIP",18,"SNIP","3045022100acdf57207686660cffc285cebfd3aef22bbffb0001977b139c6b7ac22b7e268f022017c396aeb0706089d3aef69dd1b95f6b0a33eb31afa7a66f17e6b304b8d53faf","0x44F588aEeB8C44471439D1270B3603c66a9262F1",!1,!1,null,null],["ethereum","snm","SNM_",18,"SNM (Old)","30440220011df9d4e97110f95c73be038eeb7504a327cc08920da6befc19732218b70dbe0220421372b283d06abffcd811c4e898d76915aa91388193749f88e10ee3ff15634d","0x983F6d60db79ea8cA4eB9968C6aFf8cfA04B3c63",!0,!0,null,null],["ethereum","snoop_doge","SNOGE",9,"Snoop Doge","3045022100a4a486865d62553acf2aba6eb068955d2ce80bbb419c8486523c95880c09e969022073d97c313dd210c7fab3e753344c283431ac6b40c6055c1a8b49ec8d818db86d","0x072c46F392E729C1f0D92a307c2C6DBA06B5D078",!1,!1,null,null],["ethereum","snov","SNOV",18,"SNOV","30450221009497e1b64034cd611e3b121a4385cbb1dcd13ba4a705530f1d547502e4d3fec1022061467335d5d383a3ac14eff1e686d736d0b12862545b81464d0bc4707f3ea570","0xBDC5bAC39Dbe132B1E030e898aE3830017D7d969",!1,!1,null,null],["ethereum","snowball","SNBL",8,"Snowball","3045022100fe13c1af50fffde853a0b0a0f4ef17be9d9e9ab12dcd50c236b30d478478d39f02207b7138970442fac8e9ef39976cbd59b47bd72532920d632f80909e6a5081c192","0x198A87b3114143913d4229Fb0f6D4BCb44aa8AFF",!1,!1,null,null],["ethereum","snowswap","SNOW",18,"SnowSwap","30440220437216ed9c63827d4806bf5c1f77003231aef6146082550c4456375cd8630fc002204842162920198e97078008ccc9b7295a2b1a9b76bc6fa97c10aa5d586b1103a0","0xfe9A29aB92522D14Fc65880d817214261D8479AE",!1,!1,null,null],["ethereum","snp_token","SNP",18,"SNP Token","3045022100f313f7a2a89e51b9b0bc79a3effbdeffc10da60361b7168237d797d840145eac02203984143b65cc0c76c696f721af4078632c6f50164bc7cb40c005e09bab68ae67","0x795dBF627484F8248D3d6c09c309825c1563E873",!0,!1,null,null],["ethereum","soar_fi","SOAR",9,"SOAR.FI","304402201aad5b7fc2978b2ab52d98236fbdf5877cb49226aade568adfdc68f8e2900fac02200fdbe206049aaa66a6faef38a6250e33c90c364e1f14e7bca9181c89672f135e","0xBae5F2D8a1299E5c4963eaff3312399253f27Ccb",!0,!1,null,null],["ethereum","soarcoin","SOAR",6,"Soarcoin","3045022100f08312e9c5e88a3d1d2980a3b63878bf735476dddb9c0f9aca343819318481730220617298c7a97a1a33f597e9e0af935e79e7dcb7c9e18e72a8f8c3d4c1b49ddb2d","0xD65960FAcb8E4a2dFcb2C2212cb2e44a02e2a57E",!1,!1,null,null],["ethereum","sobacoin","SOBA",18,"sobacoin","304402201f27a943a369d76bab5fb2518b28a72c98ba687b17b285e9f7913031fbe2826802200089554554d55be206223c635726716930f93958781ee8a8818976f5b03e9b36","0x65032604Dab202aFf9ADf89300CdB4bD0d059F55",!1,!1,null,null],["ethereum","social_media_market","SMT",8,"Social Media Market","30450221008f66420e63baae115d0fd95b3b2ae26f09131c75a141719ad410d867349fd77f022040e1445556c8dc6c43e5069d0dce375c8081bb3b0cdb9fa276e087f62caef58a","0x78Eb8DC641077F049f910659b6d580E80dC4d237",!0,!1,null,null],["ethereum","social_rocket","ROCKS",18,"Social Rocket","30440220392ea5cb3d693ab5f64666c120dbce77623aa42d5ea06fa75d030723d520ae4a0220499dc85588674464a10d6171108003ceb14c273cc9d44b93a611b8450f230c66","0x0829d2d5cC09d3d341E813c821B0cfAE272D9fb2",!1,!1,null,null],["ethereum","socialcoin","SCL",8,"SocialCoin","304402206868dfd532507305881d189e03c83d55dcd0f52f03be87a00f82a54160df150602204e6afe73afa49e5d27cee3c680562a3ad272849be8f5000cbc2aa5924d9cf802","0xd7631787B4dCc87b1254cfd1e5cE48e96823dEe8",!1,!1,null,null],["ethereum","socialfinance","SOFI",18,"SocialFinance","304402207dd7ddea0008b96c857d67aa3c0b3abcf0818489c62302a3d014deef104e25850220693558e03fdc69af2754226510da0a5212eaccc9d6c6d18140f35f91a5c7f459","0xAEA5E11E22E447fA9837738A0cd2848857748ADF",!1,!1,null,null],["ethereum","socialgood","SG",18,"SocialGood","304402207f3c558b9b3fde16b6c6176887688cbdca5e4941eaa62b11187468c85392970502206b5dcf3fd4b838c86ba6a987e93348ef6048ea9bbccbbea9b2b120c93f20a6c5","0xdDF7Fd345D54ff4B40079579d4C4670415DbfD0A",!1,!1,null,null],["ethereum","society_of_galactic_exploration","SGE",9,"SOCIETY OF GALACTIC EXPLORATION","3044022048a85d99307d0c57cc70bafd4beb9c97fa468ad42a9f6f26b427840c971fb73f02203e25583caab4ba7521ff2612396139d27a1532c674e14a99f29c5d99ce42a3d3","0xaB456bDb0A373BBaC6C4A76176E9f159cAcD5752",!1,!1,null,null],["ethereum","socket_-_socket_finance","SOCKET",18,"SOCKET - socket.finance","3045022100998fe2682252cf1518c50308c72cb3938b2dc9e37ed56975d7300321cc0414b3022035b8a6dddf12199999d66415d789c484340edb4030762e31215619472c16fae2","0xa6312567E419e73951c451FEaBA07b6d74a0E8ce",!1,!1,null,null],["ethereum","sodatoken","SODA",18,"SodaToken","304402205f48251c9b23ee775f17dffac694f47c41517b532498a53955afd582e240de8d022003dfb9db74eeab2ed6168e16c8414807837f75c3349abe3fcbfc3fba3d901306","0x7AfB39837Fd244A651e4F0C5660B4037214D4aDF",!1,!1,null,null],["ethereum","soft_bitcoin","SBTC",9,"Soft Bitcoin","304402205a71eacc15951fdd7fd14eaf6ef148c432e38491a0b5bf344cbf1f174e8152c7022029e0525bd6e6f0f4c72df2b8a7c205300df6542a1237f3d1ecd94213f81ecc42","0x309013d55fB0E8C17363bcC79F25d92f711A5802",!0,!0,null,null],["ethereum","soft_link","SLINK",9,"Soft Link","304402201949c6d4b921182b7341ad2d889386266800121386a11e56c8fcef97709e348602204d1b718772c198bf9b5cccbc77a8ac8d41fc3f807d4560aa0bc2c161e3a75e93","0x10Bae51262490B4f4AF41e12eD52A0E744c1137A",!0,!1,null,null],["ethereum","soft_yearn_finance","SYFI",9,"Soft Yearn Finance","304402207243381d4ce3d791b8abb0cf63315ca5dbdbbf79e4e7ea6ffba801826a94d0940220573cc588230a233a00e59dc905ff3704b54969e674bbb5bf026690b983ec6548","0x322124122DF407b0d0D902cB713B3714FB2e2E1F",!1,!1,null,null],["ethereum","softchaincoin","SCC",18,"SoftChainCoin","3044022020490a292095ff49618cbb597541320f4ce1267ab558a8b5a26330e4f1a97bb602201fa751821b3db5d80d20e6c06e419795eb8e6c653536b35455a02d58f3099765","0x86696431D6ACA9bae5CE6536ECF5D437F2e6Dba2",!0,!1,null,null],["ethereum","sola_token","SOL",6,"Sola Token (ERC20)","304402205b52521b1fda8af439159c6faf5ba6d33adf8169bcf331529972b049dd35aa300220321cc0082e3d70585b43d810e711f86c76c9f31e42bce3e934a6d55b85f3d796","0x1F54638b7737193FFd86c19Ec51907A7c41755D8",!0,!0,null,null],["ethereum","solar_dao_token","SDAO",4,"Solar DAO Token","30440220416330bccaca193ba6fd2f6ff884c4d4b1041f675d394380ea95fc2803189e4d02206d2c67a0e9a2aa2283c9787e1fd9ac88f73f6da310eb26682e26cb5b9e4c8f3a","0x646Cec6ee42d258336165cBbD5deB4AF14F0f476",!0,!0,null,null],["ethereum","solareum","SLRM",18,"Solareum","304402202fe81d93842b0441b486f7d32453874b23d1b02a7d5e638602aed7e61bfec1c1022031688d799d8dbde1e3dfbb8dee35cea2357c435cbb72b6aaf38dae9a6978fdca","0x56eE8C9BD1d445a3324ad83E86D8be309Db8f85d",!1,!1,null,null],["ethereum","solarite","SOLARITE",18,"SOLARITE","3044022065949d7fccb04b1c4744e50374c1000d36ba03d7e0bc7e4ae4b1c7fc050557940220408952f36ffba4e8a84f5daa73260f00a5814deeb4f11706a36704b76c9a11df","0x930eD81ad809603baf727117385D01f04354612E",!1,!1,null,null],["ethereum","solid","SOLID",18,"Solid","3045022100fc46a97d700d8f4c09190212dc23e544ae0b53dc1e04fcb3132614118d92864402205952e91611a8f14347f1425d7f614996dc4daf4b2611a23c059102efbe7296db","0x5011D48D4265b6fB8228600a111b2fAa1fDA3139",!1,!1,null,null],["ethereum","solomondefi","SLM",18,"SolomonDefi","3044022057877378d49c387f6b76d2e34cdedf079dd51e2593869c897753510ca6b3a9b602206afd86f8cd8d7552ce7791c9aa80107f9e7c0ae3f8fc331785a9b12acc0eadf6","0x07a0AD7a9dfc3854466F8F29A173bf04bbA5686e",!0,!1,null,null],["ethereum","somee_advertising_token_v2","SAT",18,"SoMee Advertising Token V2","3045022100e82b7af9f87d3dc04b19e22d029c3f2454fcd0b0adbb46a6d9fb993059599db302201ba33ffd433382cc8fb05e911c013507e926ab44de136d3f00f54d9e4608bfdd","0xc9F1016d336ef77AeE75Fc11Ad64C5Ecf9121332",!0,!1,null,null],["ethereum","somee_social","SOMEE",18,"SoMee.Social","3044022044a82e2245b04fcc8372683e5bee6f16267efc506249ef33c59ec0622424f8b802202da5d9f8d376eb396ef011698710b19caa6fca5a8fb993087a8001563d82bdcd","0x65F9A292f1AEED5D755Aa2fD2Fb17AB2E9431447",!1,!1,null,null],["ethereum","somidax","SMDX",18,"SOMIDAX","304402202edf477b429f14d7e2f806370b7ffb6bd1506cde500e82e005f137274168e1a502204ea08138bb11fd659c0c6e5374d8d7f40a2a3eb29488079818971601b8c7d748","0x7e8539D1E5cB91d63E46B8e188403b3f262a949B",!1,!1,null,null],["ethereum","somnium_space_cubes","CUBE",8,"Somnium Space Cubes","30440220205699e76ceb27109c3fb469342352c0995cc7f14c377cfdfeadf3a9621274960220066d771a2ee67d9349253170f7901b212fb7a98dd44132e79d591664cf7072b7","0xDf801468a808a32656D2eD2D2d80B72A129739f4",!1,!1,null,null],["ethereum","sonic_token","SON",18,"Sonic Token","304402206a4529f1c892f577146554ca9624e84cabac452c8920b5445c97b5f86132080502200404e3e26d6a129c2ce9c5396e2e6ed7c3561418534cc882cf43d6f3a43da85b","0xCe659De292ad4FA9aafd82B038936Cebd9291E77",!1,!1,null,null],["ethereum","soniq_token","SONIQ",18,"Soniq Token","30440220421829d195b7efd2e90affd2d714dd6996c4f48283bd1746bf12a938f9be751502201c8db3728470b523ede3ab5ae1414fcba88e96dbecc1134fe911acd2e7a2c8ef","0x1C62aCa2b7605Db3606eAcdA7Bc67A1857DDb8FF",!1,!1,null,null],["ethereum","sonm","SNM",18,"SONM","3045022100d8ec910d7fb8dea7ee4e3a144d057ac881ec21d3c4e47fcea7fda04dcd72e1f9022003f84a78ad2c72ffb74bfb2ec174cafcdf61b064e55384a030d9cac7430dc9fb","0x46d0DAc0926fa16707042CAdC23F1EB4141fe86B",!1,!1,null,null],["ethereum","sopay","SOP",18,"SoPay","30440220543bc131a9c4ab166d5e7ef4823c3dbcfaab14bcec55e03679e3794829208c2b022062d5f88df3d36a2948436f982208d3f26f707fe17ca53be35d32dba9e4bdeb07","0x076641aF1B8f06B7f8C92587156143C109002cbe",!1,!1,null,null],["ethereum","sora_token","XOR",18,"Sora Token","304402203b83aea5b9443143ba50f0acb0bd0999640f78dd2b549476612e3efaee0c612e0220649994601f4c215ea53f61e3a5aa829b5380dfcac7d3c18f7d5a25bd1652da19","0x40FD72257597aA14C7231A7B1aaa29Fce868F677",!1,!1,null,null],["ethereum","sora_validator_token","VAL",18,"Sora Validator Token","304402203f84cfb28f929d972e6cf7d2db888d77b5832ed41c0688f6fe22b7757feb9a5e02206d9974d7a2c8fa9326993cbd913826e9497139301005c60022aa9c68a8e9ea96","0xe88f8313e61A97cEc1871EE37fBbe2a8bf3ed1E4",!1,!1,null,null],["ethereum","sos","SOS",18,"SOS","3045022100e93a6153a9cc72e0957149464de03561f3adbc74f21ca9649d762850b2ab088602203819064b73c2c051c86df2a8a37dcab4e60eaacf7f5a6e5391a98a337d8c914a","0x3b484b82567a09e2588A13D54D032153f0c0aEe0",!1,!1,null,null],["ethereum","sota","SOTA",18,"SOTA","30450221008b91fd52b1187eedf320ae1ef8fad37bdf55280a8a8e46e5f6e7e23dd71a23500220597a2076b3334f02f402d3855382cdeb3acf64ab60670746239e896c4879cfdf","0x0DDe6F6e345bfd23f3F419F0DFe04E93143b44FB",!0,!1,null,null],["ethereum","south_african_tether","XZAR",18,"South African Tether","3044022032043bceb8121a5482b4d4f0cf1c77bc979b7944f76c006f2e8dbebc052e387d022013a0232e8a604d5d785f579476115cf869c7c28020b009afe9604104f5f08d7c","0x48f07301E9E29c3C38a80ae8d9ae771F224f1054",!1,!1,null,null],["ethereum","sovreign_governance_token","REIGN",18,"Sovreign Governance Token","3045022100f5a5563050ce91c90198a129ade1db6691a84c337b9172664ee7dcfb31b0f5b902201e29812e3fad85ddc7a84c5d27cc5c2056ff393e668e4137ae6f22bbb7c783c8","0x17F59DD7fEfC2F276509EeD2Ad6B65271458177E",!1,!1,null,null],["ethereum","sp8de_token","SPX",18,"SP8DE Token","3044022068b28636906e2900b6dba0c93af41c08593be76c678b9c253e52239b8363e15e02204b9b8b16eefde192f4166c4ed3ecb7ec2a9ebe73f70232f5159003ad8a945fce","0x05aAaA829Afa407D83315cDED1d45EB16025910c",!1,!1,null,null],["ethereum","space-iz_token","SPIZ",18,"SPACE-iZ Token","3045022100f9665bec79a6fb4f0cb3fe3404e4c66315279f573d033110c74e4b9b96868f070220618fd8438664c17dd866b6054c2b03658339c96e0d4d1bdefcaad732ea7c1476","0xa7A5c1058194Af8F00c187adB7FcC0c95f1C6c2d",!1,!1,null,null],["ethereum","space_doge","SPACEDOGE",9,"Space Doge","3045022100b25d563ae62aead554ec1a40198dff8a58e9232c302ecc3387f62f9d389fb7d102204945c24df337ec294550e5dbc6d052854c323dc5c27ccb15310694ae0654050e","0xAA2409594Dc0Aef63c0f367e30f6B51149cbE613",!0,!1,null,null],["ethereum","space_hoge","SOGE",18,"SPACE HOGE","3044022026419d81a980d1bbe6ac3598730c17c728d55099508fc1115815c363c0f9cfdf022020b3414d59a5fc3746d0d4edbc4c62daa96d61123b089172b546787269e029c1","0x41933422DC4a1cb8C822e06f12f7b52fA5E7E094",!1,!1,null,null],["ethereum","spacechain","SPC",18,"SpaceChain","30440220553a6da6d4b1cbb6c68b39d463e38ea3e1446b0e88a3b6b4741b6dd45abaeaa60220172e4c85c8dedc8c8bf66428b3de5d9c56f39ff9723df739718c07dc0afee04c","0x8069080a922834460C3A092FB2c1510224dc066b",!1,!1,null,null],["ethereum","spacechainv2","SPC",18,"SpaceChainV2","3045022100bd702dfc20921eb26e14140c002df460536a8f64eaaa01c1041d74be35b6cd0102200582974f1e370f15a2a60d4dfb549d5c7b735eaadc8eb8d9cd2d77c6172da3d9","0x86ed939B500E121C0C5f493F399084Db596dAd20",!1,!1,null,null],["ethereum","spacedawgs","DAWGS",9,"SpaceDawgs","3045022100932a92f518e515d33edc7771cc70b7ac2b1b873d9d6c66ab2613628fb5526a5d022041bb936175a9a8bb28d093eb1a15b256ff60a9194489cf9ae6e1df21417350ab","0x9F8eef61b1Ad834B44C089DBF33eb854746a6bf9",!1,!1,null,null],["ethereum","spacelens","SPACE",18,"Spacelens","3045022100ba4faa6f5827af7a241a809dbe202f03ff5c8d437a3d465b61511812e0264ef202200a4ea20dc7b1a45ec7227675ead49acce086e8730f07b658d85520728fb649e0","0xcc7ab8d78dBA187dC95bF3bB86e65E0C26d0041f",!1,!1,null,null],["ethereum","spacemonkey","SPMK",9,"SpaceMonkey","3045022100c4f95446cc85473ac0f684661c6edb6851d21d204688e4f8c6dcd8f7e8daf53b022002330a1f7f83aaf8ef9f77be7ada1adc796f7e0dc9e3fb739ca5452a1aa34194","0x51d3e4C0b2c83E62f5d517D250b3e856897d2052",!0,!1,null,null],["ethereum","spacepenguin","PNGN",9,"SpacePenguin","3045022100dd67b72b3bcc0b810460883c48847efaa9cd9535a72bfa015c44c48aeb11f05a022024f1bd96a64e2687bdbb6ad6b09df930aa5e54e2531fb21ef47d3a1edb833202","0x469a8ea7683C27d31CD9b0de769151d8A8B66C5A",!1,!1,null,null],["ethereum","spaghetti","PASTA",18,"Spaghetti","3045022100de0cac35322c61ef4878f744fe9857057bd587399152051793855c968a94091e02201f2291194829ede0a9bc95e5f4eb24e061230915f04b721e1f1143712407c712","0xE54f9E6Ab80ebc28515aF8b8233c1aeE6506a15E",!0,!1,null,null],["ethereum","spaghettification","PASTA",18,"Spaghettification","304402207a82648b411e2e65b2adf7aa1fe131825425a8ff9d65a7793a07069935098225022027d07de02bf9dbd293ecee04ee1723211a14ba40d8611016349c14292d8d8728","0xEA6C27d11cCB9306154F87d47dc1405c37242081",!0,!1,null,null],["ethereum","spankchain","SPANK",18,"SpankChain","3045022100beb3b2a65502d14e9c247c02cd7494d0a29dded5e389da1d357f55911139590302204f16d1cd795c12113ebb8003ac5a6ee1683ed1edfe6da4d2c315ad47a2e90679","0x42d6622deCe394b54999Fbd73D108123806f6a18",!1,!1,null,null],["ethereum","sparc","SPARC",18,"SPARC","3045022100dc30fb7a58eef8783abe6e1911cf9ab70225d43ecd8f9733901b216f0f0dcfb10220551b0e18d31d758c9e7eaf8d206940e5d14677f5c6225f0152913d461d1d4496","0x58bf7df57d9DA7113c4cCb49d8463D4908C735cb",!1,!1,null,null],["ethereum","sparkle","SPRKL",8,"Sparkle","304402205845604ef7288bc56147da1b04476a999c16370dbc5a1e92d435dee65d904b620220740fcbe8272cc868127029aec81fc05b81e71ef79f68d6863c615fe63d317763","0x4b7aD3a56810032782Afce12d7d27122bDb96efF",!1,!1,null,null],["ethereum","sparkpoint","SRK",18,"SparkPoint","30440220712ff7c09b05f2ecdfb8edd678ebd680b711ada41bf98f70d78be8a1cfd55ea002204bbd6f4ac65bd710d240e1e40457366b3c0f23cc978227c0dc4a0e26c3eea387","0x0488401c3F535193Fa8Df029d9fFe615A06E74E6",!1,!1,null,null],["ethereum","sparkster","SPRK",18,"Sparkster","304502210097fba87621a142d8669acf5915f6cb1bb79d4e02cb172696c5b273a96b23dded02207b840036ab40704476ab2a2b532f9309c2b5351b437d2a532b46c8c2819c3219","0x80a740C8FFa28C8C2c3f1fc8b6c1A0A442212E71",!1,!1,null,null],["ethereum","sparta","SPARTA",4,"SPARTA","3045022100d3d28018b6ca9d30667d9837645c6ddf52a1ced61861304b347356708ecd8582022066ffa3658541de08337ffb459348eb0ef1cef7b3b367b6424a0f5d26fdf67017","0x24AEF3BF1A47561500f9430D74Ed4097C47F51F2",!0,!1,null,null],["ethereum","spartan_bucket_token","CTKN",18,"Spartan Bucket Token","3044022015b67545bce16adeea567f387f561dd417f1aa4c29e59bea74c3a6e31f96c8e902206bdc142a637127a85d04b0f6b86a015e572cb6241e392ad74ce40099167433fe","0x08ff7e2bE3C23AB3938b6D275193d6A49cCef73E",!1,!1,null,null],["ethereum","spectre_ai_d_token","SXDT",18,"Spectre.ai D-Token","3045022100936d2921fc00bfb192622bb02554c99f94e9bdd9567ac62b162667a9760190430220375b06d910cb98d33bd023548670640dc94f500896644fd2593aeb4a7c38dbf9","0x12B306fA98F4CbB8d4457FdFf3a0A0a56f07cCdf",!1,!1,null,null],["ethereum","spectre_ai_u_token","SXUT",18,"Spectre.ai U-Token","3045022100be3cc59f9f38c0737a425139f787cfbc4ee6fe46f335683b633d2d3b08d8175f02207f0a549c725dc6d351464cf40cd75d94d92a2491bdb4c15c73ca050e4ada7f5b","0x2C82c73d5B34AA015989462b2948cd616a37641F",!1,!1,null,null],["ethereum","spectrum","SPT",8,"SPECTRUM","3045022100cbbe5d307aeb124b0563b050402bea4b9ef06f9c4da35fe8a1d172b0636a1185022046be056186b9fb542d7893cea10793eda1ee3e208c35fda05b70c995fa432ad3","0x01cC4151fe5f00EfB8dF2F90ff833725d3a482a3",!1,!1,null,null],["ethereum","speed_mining_service","SMS",3,"Speed Mining Service","3045022100c319aec420a4586fb6dcdd9007d13bde4543c4bbdeec35170e24936f539419680220625d8550cf8377a846cc7e7ee7f2bff8b0da1e1654b686cbee191307cac71de3","0xe5867608b51A2c9C78B9587355cC093140A49B0A",!1,!1,null,null],["ethereum","speed_mining_services","SMS",3,"Speed Mining Services","30440220665db23f21426dae0dea1a13fe396ad59218871f052ffef4c073020f8ba92398022019d1dbe0d349c6644a952a706cad5dbab7b54c2bc2013eecfb8782890a65d3d1","0x39013F961c378f02C2b82A6E1d31E9812786FD9D",!0,!0,null,null],["ethereum","speedcash","SCS",18,"SpeedCash","3044022029231ab884a54eec219c635ed2efdcab215df2769fe5728eab19c15eb9e456d302204873e28767020a11f90e77a25d9821c5d64f902406218d14b0d251606155caec","0x81995ff7AEe5c780192b47e0B42a7a86692d1415",!1,!1,null,null],["ethereum","spell_token","SPELL",18,"Spell Token","3045022100d13e0b93040df596dd367b4cf248060d44793dc1c3e818a6080adce42b64505402203594617951bcea05633b8f3bc70f2a9c82f39f1941a16a8f94ae666b4d92b26e","0x090185f2135308BaD17527004364eBcC2D37e5F6",!1,!1,null,null],["ethereum","spendcoin","SPND",18,"Spendcoin","3044022042de2e70fc767482dbfc117fb5429a7353731b93b76076ad58ce5e078f86cae802202c53a4c583c0507ed9c88433aa80c86e7c84839db8859fd83c31a4b0330fd260","0xDDD460bBD9F79847ea08681563e8A9696867210C",!1,!1,null,null],["ethereum","spenderx","SPDX",0,"SPENDERX","3045022100da6400976f0b2a1f1c8d9573ba618d9506b6376efd4645797d88d694c2ce3b5102206b00e628d9560fd15e490b38f7d5ff83b6c33c6db4cc8950fba70147643bc4e4","0x2C756e74B7309d785b5e2960ef262c4f14a87930",!1,!1,null,null],["ethereum","sperax","SPA",18,"Sperax","304402205f47eecef2bc984570ac76bbbaf427a248e8c425c58e1f55519619af30c68afa02206ff9ce96a19e643b2cbeeba79ac88717b5589583a2fa818b1c6c4fe60b9ddbaa","0xB4A3B0Faf0Ab53df58001804DdA5Bfc6a3D59008",!1,!1,null,null],["ethereum","sperax_","SPA_",18,"Sperax (Old)","30440220390b14d05b776e10c133dff1c8475e839333dfbeb6cca5e81f5a04788eb4394e0220361276736e89742481e4d0e1b88bc1a7b659a4ddbd6bd1ab1eacdfd009f8b91e","0x9631483f28B7f5CBf7D435Ab249Be8f709215bC3",!0,!1,null,null],["ethereum","spherium_token","SPHRI",18,"Spherium Token","3045022100e1d7ad026ee1ef4c8c6c699aeb8b75a012adb9d7062be77f1fa641d32e46feeb02201d281266d9cd8c1e77413395236dc23d4fcdb3ff55516821b4f21a28cc165de8","0x8A0cdfaB62eD35b836DC0633482798421C81b3Ec",!1,!1,null,null],["ethereum","spheroid","SPH",18,"Spheroid","3045022100a0e627c5b7f25e387a437edf803bd2b0bcfa9d838934afebbb924d1582715b35022053ecbbd8547cd5414a662ec4783c122fdeef2853aaf44f36a7a820bf46175ebc","0xA0CF46eb152656C7090e769916eb44a138aaa406",!1,!1,null,null],["ethereum","sphtx","SPHTX",18,"SPHTX","3045022100a6da4004bafb93d461e6c2de79879b1b1b89ab2ccf1473c1690dcc77b15931bc02200828bb62b6b985f9921ee0b1e5affc10b3006548aaa33a8569071af4b80987b3","0x3833ddA0AEB6947b98cE454d89366cBA8Cc55528",!1,!1,null,null],["ethereum","spice","SPICE",18,"Spice","304402207352cc018ec352eacc7a13d6fa40704f91e2a29c69c3df01f38b81342daf2908022034543d761c6325978ad005c0a92bf1f20f6e044610a29557b05ac65ff8fa28f4","0x1fDaB294EDA5112B7d066ED8F2E4E562D5bCc664",!0,!1,null,null],["ethereum","spice_","SFI",18,"Spice","304402205739e0c792c508b22081e47a9e7ebe6b0d8ba4e17c7b4c1612047cef471fb2bb02203bc1c0c1bf7124b3cc7f6da4300e2d8ecb70535bcfd52f9a4962d2c231704c60","0xb753428af26E81097e7fD17f40c88aaA3E04902c",!1,!1,null,null],["ethereum","spice_vc_token","SPICE",8,"SPiCE VC Token","3045022100ae2ec2ceb89748152d3098bcfba76279cd003d44439c9dadfabde61d07a0a85b0220610ba81a357a59bdbdce357df7039b4aaef5072530133d10b8e363972e4ada3b","0x0324dd195D0Cd53F9F07bEe6a48eE7a20bad738f",!0,!1,null,null],["ethereum","spider_ecology","ESPI",18,"SPIDER ECOLOGY","3045022100b267586b36b64cf8232d223d77bf4867605f131a2fd6b7770f544530eb99e44d02200b789d0e3428e1b3bd1c6bd0e36f3f4380578e459b4dfd0e53f788becbec6fdc","0x35a79FCEb867EE3392ED0C8DEdd8Dc2f6124c9Cd",!1,!1,null,null],["ethereum","spiderdao_token","SPDR",18,"SpiderDAO Token","304402205fd049298798480381592ceb020e058685ff8727a61ad2331c4784741e838427022014d79f2b30fc667b82135967548d9e16fe06919e75b981b5fe99b979d5e484bb","0xbcD4b7dE6fde81025f74426D43165a5b0D790Fdd",!0,!1,null,null],["ethereum","spiking","SPIKE",10,"Spiking","30440220175ae703a9b45bc05754207906e4d2cb23c28e71e876e886b96a6a2aa44143bd02200e63fea977893206deb63291258d557a55bd77d410c4a23363b07a43d1a4c2e3","0xA7fC5D2453E3F68aF0cc1B78bcFEe94A1B293650",!1,!1,null,null],["ethereum","spindle","SPD",18,"Spindle","3045022100b7926a6618d3fb6d6b5f7cbd25766d5937506744cf18866f2d8ab8b38ccc90b7022017dbb2fc018118e6ff1978a8071c4a3d3cc70364b2fa635d6941efa8edadcbe8","0x1dEa979ae76f26071870F824088dA78979eb91C8",!1,!1,null,null],["ethereum","splyt_shopx","SHOPX",18,"SPLYT SHOPX","3045022100edf15140eab2d406b9865aea6142ed1ae4d6ef39e63022c168c5c804abb1b5220220479373104ebcbf8f64d704087d744e7a101fc9728998d9b1809ced9c5a68b976","0x7BEF710a5759d197EC0Bf621c3Df802C2D60D848",!1,!1,null,null],["ethereum","spores","SPO",18,"Spores","3045022100f9a3213f05b8a8d9daa4e9d7c3bfbbc078caba0e9ec8949c89fda54dc801e22b022047b8bb1413f924b139ce297e6aa67db5a062cd4984f440457ad5f13d6a75eb5b","0xcbE771323587EA16dACB6016e269D7F08A7ACC4E",!1,!1,null,null],["ethereum","sport_and_leisure","SNL",6,"Sport AND Leisure","304402203d118625aad9e6a63af048af4f9e6c25bfb19d1ab82d134477642a522682124c0220053be3655de9c5ad3a2627cde83778e09dcdc25fb3621ee41f1f80e91dd373a8","0xA806B3FEd6891136940cF81c4085661500aa2709",!1,!1,null,null],["ethereum","sportify","SPF",18,"Sportify","30440220684845cd1efdd2096da19157d3e60f1a788dd5c4efc906fd6a242e804072b36802206dd8a0c6c06bc0afeeeb18c0f55519394d0095b5fa26257eab264d71a931f6d2","0x85089389C14Bd9c77FC2b8F0c3d1dC3363Bf06Ef",!1,!1,null,null],["ethereum","sports_betting_marketplace","SBX",18,"Sports Betting Marketplace","304402206d02f2c72e355e9cf38024ff91b09324724397336ea501c1328e2b2398f6002802204627fb80fe33f09dcb4e9a348095a15d290a2e937f3f19e6ec873eb1be8adf4f","0x2579BB08387f0DE7Ab135edd6C2A985a3f577b6B",!1,!1,null,null],["ethereum","sportx","SX",18,"SportX","3045022100c2523e744547debf320aba6522da81d0d2987196a12c6eb3981aef46836cb8ce0220200007b1af84cdfa6279d37a92ae6030b6d51be91b6e62c0e0f1d8585c7f806f","0x99fE3B1391503A1bC1788051347A1324bff41452",!0,!1,null,null],["ethereum","spritzcoin","SPRTZ",18,"SpritzCoin","304402202ac73cbaccfd46028f3431272cb624b2ed0b8f8d1ace2a516f3c30c8630d40a802204bee47bc4acb969cb496c99a6db334d0db2750196e1a963e2b8168d3697e7446","0xC560984D8c4CED2a0ebA5790b33b6f43AFeEf759",!1,!1,null,null],["ethereum","spunks","SPUNK",18,"SPUNKS","3045022100a4451e9a8b22f4b204387c9949c15dd7fb1378467087c254109838552b2525b802204d54352594c8c3f04688e8e6c826cce60aaba59756af6d8c857aa1ce80f5abbd","0x97Aa8e14db0bc073cC7e2d42AC715427717d6042",!1,!1,null,null],["ethereum","spurt_plus","SPU",18,"Spurt Plus","3045022100be2381e475eb73edfea0111fbc97b2e0b67e79cde2fa86c3a960fd2ee113ab67022042653ff8bb0f159f983759422a90b364d3db5525f0fe2fe78662fdd069ead9cf","0xEf7bCE1BE2Ba032131326910a6c11e716daeDBFf",!1,!1,null,null],["ethereum","squirrel_finance","NUTS",18,"Squirrel Finance","304402200299871225383f850c2ffc3084d3d25a995f33b00cb3787975ad211839ab3230022044701b35b20d01c5822a32e097836ae9e7f25a24e9a7776f41031288ccad600c","0x84294FC9710e1252d407d3D80A84bC39001bd4A8",!0,!1,null,null],["ethereum","srh","SRH",18,"SRH","304402205f0567ade7901ee6b84ec7f004a5f42fb92ad475efbc735cfc1ac1afe0283e2b02206099839ce4972aa2ffcedfe0639db66994caeb4ec6b444b7db84889dd594f5dd","0xc350e846e2C57F9EecE90FEBc253d14C8080871B",!1,!1,null,null],["ethereum","ssv_token","SSV",18,"SSV Token","304402203260811b2ecb8a1b999ba91a83199546e3240ca240af8ed00fe5cfb909e5a18302201747257f3b440e2d615561e9574eeb059e4d16bc6dfcb7941397116990821bbf","0x9D65fF81a3c488d585bBfb0Bfe3c7707c7917f54",!1,!1,null,null],["ethereum","sta","STA",18,"STA","3045022100d07a77def91014685b7212e740c381e00de689649259aaff90431a22de4b37a8022019282594ac1701e1a23f0a450a9486712f7740c23b5a719a7351796fd8c78b11","0x06874F973Dc3c96dc22A10eF0D0609F877f335EA",!0,!1,null,null],["ethereum","stabilize_token","STBZ",18,"Stabilize Token","30440220204346d9ec68a03831389c4d1e32269df62049da9c69692966013831190ca350022027f2ec2b9c0f3c81ae8fc06484582c419ce17ff6de5fd7cb4b15722c82de179b","0xB987D48Ed8f2C468D52D6405624EADBa5e76d723",!0,!1,null,null],["ethereum","stabinol_token","STOL",18,"Stabinol Token","3045022100903292c26d10a3126f5120901c35823f7c765b216fbe346231577e65c789cb8602204a537d7b8ee5cad7316d927b410b1b9aebc0cc190e23c48a55444e74e787961b","0x4ff5253E2304e3f5Ed6547Ac5D9952A62B91E3E8",!1,!1,null,null],["ethereum","stable_asset","STA",18,"STABLE Asset","3045022100d989e37f30e125a2e759c94910c7a2d68331df0106f8b98b1429ec118174cc59022050c1c67265e6764060951983c6baeddcf4bcf8c1b84ec6d5d825df0d1153aea1","0xD7d05bDa4bf5876bA1254b3Eaaf8b47D2F5676eb",!0,!1,null,null],["ethereum","stable_finance_governance_token","SFG",18,"Stable Finance Governance Token","3045022100f5167fa037e5efd443ddedac1b93824b0c19e06380eaa2c79be49626cbdbb69002205d967d6513e832977a3b456a80dcd7cffc842f77c210fbac8b4ad2c65c1a8c07","0x8a6ACA71A218301c7081d4e96D64292D3B275ce0",!1,!1,null,null],["ethereum","stable_token","STB",4,"STABLE Token","304402201d1ad7f9cbd4a197d6a02c13cd8fa9dd5eaae1ff1da917ef9f387e9009739886022002976e00e8d8444fa05a0ff1392fdf8cd5b439aa6dacc86d7cff6a1a956feebc","0x09BcA6eBAb05Ee2ae945BE4edA51393d94Bf7b99",!1,!1,null,null],["ethereum","stableusd","USDS",6,"StableUSD","3044022063b786cbf729ee21ba705e7746690a4133332af5a6f64e6d61e08b8f2dd9c5ee022046d46387a9c05257defeab5609ecb9ffc7142196860e973c5a5e0d738be4a805","0xA4Bdb11dc0a2bEC88d24A3aa1E6Bb17201112eBe",!1,!1,null,null],["ethereum","stacker_ventures_token","STACK",18,"Stacker Ventures Token","3044022036b7a8a97d93004fdb87d1969f6b4142fd03de99c9b9ef1a8b303a40cb2e09be02204b373985d454a5ae16a719a538b66e2302c20677f52804d88955db19d88162f7","0xe0955F26515d22E347B17669993FCeFcc73c3a0a",!0,!1,null,null],["ethereum","stackos","STACK",18,"StackOS","3045022100837db1c6e13d72750a8684f4c6b5b66d549d770330b6afe8ed8aeaad71cc3d7e022024b2866688d69538555eeef67deef8eb95c05f6cd507aefe1bcf222ccf4f65cf","0x56A86d648c435DC707c8405B78e2Ae8eB4E60Ba4",!1,!1,null,null],["ethereum","stacs","STACS",18,"STACS","3045022100a5cc813eb165e9dc649f607892af0b1570ddb065476159987e37f6bad8102e4202200fcbc7c5f54b44fd8cf684853435cfbf211c31a0dfd382641630cc2ed11757e5","0x286708f069225905194673755F12359e6afF6FE1",!1,!1,null,null],["ethereum","stacy","STACY",18,"Stacy","3045022100fcedcfbf1af04c180de4a928047933bba5286322ea5e4c4f0406292d20a9fbb202205a40b68052b5d8dae676856b25db5aeb94fcd486f41b57549561bd32e7cd5afe","0xf12EC0D3Dab64DdEfBdC96474bDe25af3FE1B327",!1,!1,null,null],["ethereum","stafi","RETH",18,"StaFi","3045022100fc8b8fa4f68a4606779506ff528a3354f692e1697520cc8ea2a81176313a6a62022052376f39efed8404bca11527de5e118289edcda305c1c039886a2092ffc9d063","0x9559Aaa82d9649C7A7b220E7c461d2E74c9a3593",!0,!1,null,null],["ethereum","stake","STAKE",18,"STAKE","304402201ccd6f058cde46010b7926a309ac43241fcf5d83b893fa3aaa3449b479e80ccd022056c860ad0b79608dfe8e1bc5ca4e30087cc9d9f6af98c531b2712adc10645672","0x0Ae055097C6d159879521C384F1D2123D1f195e6",!0,!0,null,null],["ethereum","stake_dao_token","SDT",18,"Stake DAO Token","3045022100bd290ae436d5c1bff05ab762d480bd6e15c5b46f4948249c80b6a7ac1872b52302201432920379d6426e3c8caa70ca45b61d1305bc971790a63cd939b1cac3828b5e","0x73968b9a57c6E53d41345FD57a6E6ae27d6CDB2F",!1,!1,null,null],["ethereum","stake_pool","POOL",8,"Stake Pool","3045022100fc3b74852d984558e269ea55f777180c84286646420b23bb776e086154bba5ce022042297c9f448edf55b23fd915c02df1effa669f6be565a1d4de9c6c33146583e3","0x779B7b713C86e3E6774f5040D9cCC2D43ad375F8",!0,!1,null,null],["ethereum","stakeborg_standard","STANDARD",18,"Stakeborg Standard","30440220476cb8da86c791faeb5264e0eed261249a6779fc50190ca6796038a8832a155c022018921eba14f6eb77bf25c72514a2e7c80f90ff1612636f33fab74022b3b4e18f","0xDA0c94c73D127eE191955FB46bACd7FF999b2bcd",!1,!1,null,null],["ethereum","staked_aave","STKAAVE",18,"Staked Aave","3045022100c0c84b60f35ee84d32276293315fca1a05ef1d693c8b89e9d0762739e25dc74002206a67b1d951acd684c17bad02f588cd41e1045cd8871592fc851a95a699a733ae","0x4da27a545c0c5B758a6BA100e3a049001de870f5",!1,!1,null,null],["ethereum","staked_aave_balance_pool_token","STKABPT",18,"Staked Aave Balance Pool Token","304502210087a53616851eb8b6e91bf205cfb08b761a2ef172501fe8119945b6c82582165a022076066e419cbf3462b4e4f620638ca02e917b4cc90182a2ec1f6141f78f374f7e","0xa1116930326D21fB917d5A27F1E9943A9595fb47",!1,!1,null,null],["ethereum","staked_eth_harbour","SETH-H",18,"Staked ETH Harbour","3045022100bbf15de6360e2a1a7697d7797382d782d933be3a98bc6354283feb37ab14de6b02204f15bcf7003197a0d8d5ee5e4e754db4fb1bae1e712cafb4ddeb180c3dc9e05b","0x65077fA7Df8e38e135bd4052ac243F603729892d",!1,!1,null,null],["ethereum","staked_matic","STMATIC",18,"Staked MATIC","30440220664ca59a79de71ef0e315dcc5748b744b029f6d117e4c17a40fd36194dcfd1a202202a77fd13b0896761db329b9d7b1a3d0c929bc2ef9b43eae6c7c13e236c0dbbf5","0x9ee91F9f426fA633d227f7a9b000E28b9dfd8599",!1,!1,null,null],["ethereum","staked_olympus","SOHM",9,"Staked Olympus","3044022067b84d1e6268c252fc0549352f4d2e6560fab73cfd322a5fb605f85eddb1b87902204d29581fab81c16698701547a567db1da996dda86bce2d4dc43059d240ba632c","0x04F2694C8fcee23e8Fd0dfEA1d4f5Bb8c352111F",!0,!1,null,null],["ethereum","stakeddvf","XDVF",18,"StakedDVF","3045022100b6a0d84315a9935d0245336bb12ef30fc4b4592d30407f33ab695f01fc445eef02200a74e7ee316e753e127de5e05a3fefade56b025a7c84d107594808582399872d","0xdDDd0e38d30dD29C683033fA0132f868597763AB",!1,!1,null,null],["ethereum","stakedeth","STETH",18,"stakedETH","30450221008209cdc6c7cadec9dd06a6a618c389204ecbff2c494f1f9f9309587977c0fcf8022024d6f5f76ce5898ffb73c53549fa32f63c60e083eb06d305aeed6fbafdc0c898","0xDFe66B14D37C77F4E9b180cEb433d1b164f0281D",!0,!0,null,null],["ethereum","stakedfiro","STFIRO",8,"stakedFiro","3045022100a8a9a92f7b37a44d7c3f1b4f4fbaaa152d353a1d4922574cc313239c6fb3986002203e5063fbef8c64828e1197a8584bbdd1de3bd068bbc5cc2ee4d00668f9336d05","0x160B1E5aaBFD70B2FC40Af815014925D71CEEd7E",!1,!1,null,null],["ethereum","stakedxem","STXEM",8,"stakedXEM","3045022100ec6b61dcfa17f0d72462dfca3f4a0f50485d1510413e9b3c5dd8615f5830e9a502203301b15053bf388cbf2ee371a07351251080f305e584a2f96f41b2a1a897f169","0x0C63cAE5fcC2Ca3dDE60a35e50362220651eBEc8",!0,!1,null,null],["ethereum","stakedxym","STXYM",6,"stakedXYM","3044022035616416bf16fdd603e93c6db07da939bfffad6c033025063df2dab744b13bfc02202c32afb4e0b814feebd559efe2dfbb3760205f0d14558e0bca1e785337baece8","0x8F5E78888f8933Ed676a62bB6B58a4b279aBE408",!1,!1,null,null],["ethereum","stakedzen","STZEN",8,"stakedZEN","304402200e326c1a64bd53ffee8d1f9a519e0d0f4406094538c2f9f50d716da1964c724602207d7978be40787a9376b4d75f4c3a69c7df63ffdc348cb7453bdb7f5c697bf4e1","0x31B595e7cfDB624D10A3E7A562eD98c3567e3865",!1,!1,null,null],["ethereum","stakehouse_batch","SHB",18,"StakeHouse Batch","304402206002024d0c2e4381d51c1044097d0b04749be6156d0f6ce3ac24fae43c75f08302207cf69bd7c7441c96d235c32e24f82bde9b3bbc186fa1d55eb810654bc8c89aa9","0x7c3E3bdCec89a3f706C9a02797EC427ffa596787",!1,!1,null,null],["ethereum","staker","STR",18,"Staker","304402205fe909640463c9dd002f1317bf810e47677783058ec01ff95940e5dc0ebdaf020220650c391b1eac2e2b1c32dbb8560b1a14a34230bd98186a5621091103e0687272","0xBAE235823D7255D9D48635cEd4735227244Cd583",!0,!1,null,null],["ethereum","staker_(old)","STR",18,"Staker (OLD)","3044022058b008ad84bc1d622a0a5a6adb7bc226b1724fa6df47f3cca4eab58171827c140220601eb144cf7905fc8e02f0112d16aaf63202da263c00c1c29addc98d5bc4adc4","0x426567F78e74577f8a6233B635970eb729631e05",!0,!0,null,null],["ethereum","stakewise","SWISE",18,"StakeWise","304402205085e1bd97d4bac40e7972a78c2acc47a65f5dfc4c2c38b889f7cb019de15280022029451df986f5b97e6e5a40b517e79f2512a594a77bfc3d8fd6518f99ebb652fe","0x48C3399719B582dD63eB5AADf12A40B4C3f52FA2",!1,!1,null,null],["ethereum","stakewise_reward_eth2","RETH2",18,"StakeWise Reward ETH2","3045022100b38bab539d2f21b3d407a7f4d1c3445afca0ce79778874697af1d7b6780b6e4102207de07c205ef2f0f2bf044f5b05a5d286f575243e8e7cc1bf34f09c7b94a98046","0x20BC832ca081b91433ff6c17f85701B6e92486c5",!1,!1,null,null],["ethereum","stakewise_staked_eth2","SETH2",18,"StakeWise Staked ETH2","3045022100f3b61ade97f501438e2de83223d34992557cd36be49592a359cb2a4706d4abd2022030a81918f0436231c7c0a27c0a60f73c4625f3900f1cd242670bd548ab13f9e4","0xFe2e637202056d30016725477c5da089Ab0A043A",!1,!1,null,null],["ethereum","stamp","STAMP",18,"STAMP","30450221008e43702df3383c1a2d4b422466b74ac3d969ba4f971ec49ffccd4ed7c73dc50002207b6ef5de1064ff26cc8bea17f40e986b8fee98dc7d03b95ff9c1de936c0e004d","0x43afc9058a3DeBF37eaDf99138e449cE8a480A8a",!1,!1,null,null],["ethereum","standard","STND",18,"Standard","304402204094f7c24ee0bf2516f9225779495a0b8dab69e43ec144a4754cc9d67b5da58e0220177cf7e84de8c1dabd91a3557f588263d17c2f93ab795ad41827497e9106c08a","0x9040e237C3bF18347bb00957Dc22167D0f2b999d",!1,!1,null,null],["ethereum","star_crunch","STARC",9,"Star Crunch","3045022100e26bd9edbf52d01de88c8a65f597b8d357341117fdb444f9c738f14d82cc150d02205583d163a07786ef63aaf7148680e840e8dbecf49290d1a61bf4ad424f25bc47","0x7F66Ef4bE2c128f121ca776888e6142EC0F3BD75",!1,!1,null,null],["ethereum","star_foxx","FOXX",18,"Star Foxx","30440220131ec4e2fe56bef268a7547f28bf74012e011491a690c02ecbc661304855ca9b022073afeb49d32c92b7481fccb33ce0b5bedcb6c460026815f7395e8cdf4eb543d8","0x31D457E7bcFf5Bc9A5Ef86E6a5eA1DB5b5C3BFB0",!1,!1,null,null],["ethereum","star_token","STAR",18,"Star Token","3045022100f93dbf93d2d622887f6555d58fe28ec51f252655e9ff95bd5c433115e4e88eb102202297a7a7dfe392f6cdebfc8e3001c7a96c09eacea9282546daee06a0abd648f6","0xF70a642bD387F94380fFb90451C2c81d4Eb82CBc",!1,!1,null,null],["ethereum","starblock","STB",8,"StarBlock","304402205582cad108c62229f80ce123fb1b70ea92f249272b735a46847dffcd91ff971502202f752575b6374b2492cefe3ba9eec001e5b43a31cb339f40740b1a4f0253c563","0xc48B1aC1417dB27C4e2C2ed3DAE5a3D2fBB07DC5",!0,!1,null,null],["ethereum","starbugs_mystic_axie","BUGS",18,"Starbugs Mystic Axie","3044022057b42115f44bac2cff06e57d2fbdb1921b499eafd2167c139e8b798480b5b4b00220056cb5a67e4429de933f0dfd99f4b4af28bfe2d6219119c8118ae2b97b1796b3","0xBc3EC4E491b835Dce394A53E9A9A10Ac19564839",!1,!1,null,null],["ethereum","starcurve","XSTAR",18,"StarCurve","3045022100fe080d970b7e451bd6466fe45a0209c31c2ee19ebeeb7ac9d1eb78b4808937390220133139b34e0f8a53d4ffabf6f68d64bf17ed1726ad374fe7ab11af9c770fe6c3","0xC0E47007e084EEF3EE58eb33D777b3B4Ca98622f",!1,!1,null,null],["ethereum","stargatetoken","STG",18,"StargateToken","3045022100cf9a76a58fa572f51af4a1610d7e3ce0fbc515cd409a7b0b60482fcb99e100a102200aab382f6f1ac1230e159df7dbdba14eb5f18dc56e74fba0fc48e69dbd17f41f","0xAf5191B0De278C7286d6C7CC6ab6BB8A73bA2Cd6",!1,!1,null,null],["ethereum","stargaze_stars","STARS",6,"Stargaze STARS","3044022003dce25d092371c7f53ba2fea3c3acf02a4fb08e7f6618a8409375ea4030062e02205ec233c19016148191dbd0db61deb62098d3c4e458261c7d14293896b647e133","0x4547254E6E3195cE57Bc50352193A25c2F4B8FCf",!0,!0,null,null],["ethereum","stargazeprotocol_com","STGZ",9,"stargazeprotocol.com","30440220110828a0613f5a39a9dc35e4a8d8884553507bc5d4a6153ed3bbb147b7b932a202201e38be6ea74bb94bdfeb5d79b16497c7dfa4e0ff83c9eb7f3e58b8a87f21ce22","0xA9A8377287ea9C6B8b4249DD502E75D34148fC5B",!1,!1,null,null],["ethereum","stark_chain","STARK",18,"Stark Chain","30440220314886ef12c75f1400edab95af92eb10e13cf869e42b53ab8ca74b4dd905b28d0220602ef162a2e4824f8bdf53a0d3195f41ad905aaad37af08167169401ddfb4b5e","0x1eDC9bA729Ef6FB017ef9c687b1A37D48B6a166C",!1,!1,null,null],["ethereum","starknet","STRK",18,"StarkNet","3045022100a531fcff66137792f737abffcfd93b354aa52742d86dbfd860cdd2487d2ce271022065c37c8e2a86b3fd00f51cce4a6022c8de42c6a0e0a732aea829642001b483ff","0xCa14007Eff0dB1f8135f4C25B34De49AB0d42766",!1,!1,null,null],["ethereum","starlink","STARL",18,"StarLink","304402202458fcc39c4170c6ad39b8c06272f48bbd6d0a2348f363c3a21477b18a62dbed022037a80d3037f230cae1ef21f700e007fc09d183442e3185b14cb3d9de6b8c7385","0x8E6cd950Ad6ba651F6DD608Dc70e5886B1AA6B24",!1,!1,null,null],["ethereum","starshib","STARSB",18,"StarShib","3045022100a7ff41fba0abf0c96bce677504dd357f072de565c30d67190a78690a0178e5a802205c28bd9a54c90eb590a55da6a2dc2f1cdcf345fe33471f4bcd558cbae7ac8e21","0x5F435CD858F71E42A3DB4282231d1ed25BA07Aed",!1,!1,null,null],["ethereum","starship","STARS",18,"StarShip","30440220526188ff65f73365c52c87a6fad0cc98dbca3a140be84f1380bd08600ca08e42022007bc73afd1109132a19b7768c8d5367c7307cba468f7ff0353e543cc56b43f4f","0x7CCFeEF4F0Ff48B0E0abD19bBBebae90939f180D",!0,!0,null,null],["ethereum","starter_coin","STAC",18,"Starter Coin","3045022100ffb470a1608359ceec30923852602d7d9ea790156c2ec6db80a6c82f481d88f9022001aea90e58d73fdda0df3c25028cf2778fb826efeaa793f213f6163563c2b110","0x9a005c9a89BD72a4Bd27721E7a09A3c11D2b03C4",!1,!1,null,null],["ethereum","startfitoken","STFI",18,"StartFiToken","30450221009c30845bb96d581881e1bd506d254022955f95d9d90ce1d7edab595aac096485022033f8328454733c4351eb28c388fafb181e7dfd3a7b74b508354ce0a26586775d","0xFD9cd8c0D18cD7e06958F3055e0Ec3ADbdba0B17",!1,!1,null,null],["ethereum","stashpay","STP",8,"StashPay","3045022100873c4bd3d84866ccf5558f8084a48a234b7a9ecb459e874de94fc67ce6462fe702204111e1daf2643fc2509d84f6332923e1476902081ad38bf80caaed44e6a53a00","0xecd570bBf74761b960Fa04Cc10fe2c4e86FfDA36",!1,!1,null,null],["ethereum","stasia","STASIA",18,"Stasia","3045022100df65afccc213382a8ce0cb8926ae936a9c46ac4306383be1e49e7b07bc324ed002200321a83db31657ca0d16bb422b201f8097da5c691fe26ef022ecfb62176796b4","0x6374Ea91693f1ECCB4F7705A1CbaD994C0B8f874",!1,!1,null,null],["ethereum","stasis_eurs_token","EURS",2,"STASIS EURS Token","304402201b5292f2e2c8cf8755eee7d77d90241ab5c6eec6a41f1401c9388c8b6c70a03002204bf60e8cdc0105d9245cb5938e4041b1bbfbf1c27c0b3c42fc6f68fd5c8ca07b","0xdB25f211AB05b1c97D595516F45794528a807ad8",!1,!1,null,null],["ethereum","stater","STR",18,"Stater","30440220083a8d86874d2adffe874ff8598f0ae44c1355293699fe7717b5b1c5dc1c3afb02201d5798edea99c77b2d81f3adf1f368fd649f8051f8018650198e259e138b0b2a","0x84Bb947fcEdba6B9C7DCEad42dF07e113bb03007",!0,!1,null,null],["ethereum","statera","STA",18,"Statera","304402202f222958f7032825f8c1d4e5d54398cd6d972d8d69d5736777195058a0ce2282022032e947220aa01d45405cc88075f7594250dc53d56a10fdc0dab6cb7bffc740fd","0xa7DE087329BFcda5639247F96140f9DAbe3DeED1",!1,!1,null,null],["ethereum","status_network_token","SNT",18,"Status Network Token","304502210094bc0ae4f07051db322415b37bf128dcf5db11527a8003932541f6772a67b4fa02207d3586a722b9ec30fe5847b8c7ab4bfb775f7d320a69008d3de0af05880857e1","0x744d70FDBE2Ba4CF95131626614a1763DF805B9E",!1,!1,null,null],["ethereum","statusgenesis","SGT",1,"StatusGenesis","304402205b02b4745865a456897c0ce810a13b21ce8fff72fec2b9464aff280f0916d2770220035f7de85b7ebc07b2fa83b9920752d4ecc8c28d469e3748b123775f1732f179","0xd248B0D48E44aaF9c49aea0312be7E13a6dc1468",!0,!1,null,null],["ethereum","stb_chain","STB",18,"STB Chain","3044022040a0602fdfbbc1e72741b16962e710ae91c2e900a199bdff55ea0a98efb706bd02203e59502e94ceb0861262803708e0a6177b875b08c502844d8e87fecf792f9fbb","0x3154da898943Fc7151bc77F16E43C0C47b5E452d",!0,!1,null,null],["ethereum","steaks_finance","STEAK",18,"Steaks.finance","3045022100a04ed381ea2459ea7557aaa0b352ecf780ffa981a749bfcf9ebe63b320f018dd022025ef568694d52641a35c7b5bc718f9b7630ff1e2cc35d1765b8185d91d87b1f6","0xeED9e4F2450035D6426276a8aA2084966EE3b1bb",!1,!1,null,null],["ethereum","steth","STETH",18,"LIDO Staked ETH","3045022100abdf606d3c95617ee65b0e52165ad768fc65fa155a9a049525bccc971e26b8de02205f22456404dde94dee363f9482f043b470768e128c38b262ee7970ce7fe899df","0xae7ab96520DE3A18E5e111B5EaAb095312D7fE84",!1,!1,null,null],["ethereum","stib","STI",8,"StiB","3045022100e69da06ab513144413d11c931daa0e57beec913d876b07db209c7dd564184d9502207f37088ce6ea6650deb910c2ebb1cc20a066cce4830043a1da32de43b41a2b74","0xB52BBD3D5BfA3836bF2b55fE3B7467219280bc2e",!1,!1,null,null],["ethereum","sting","STN",18,"Sting","3045022100909f9db3133cfcdf48cd2f63880f3ee32a42c4fff71064e5a5c67b16e6975a2602206101fac7b8ff880e030f201a35b6b54f731272dbab88cd89d8325f599279c492","0x592481A5F6b4F078cc303C2cDE4337dFA2d76fA0",!0,!1,null,null],["ethereum","stk_token","STK",18,"STK Token","3044022069a4cc32158c968d4c64c73626dcdcfd76b86aced93c3a44f9ad8ab66b121e0302201811170e16e47c6668e43c920279f32f074dfb20d294ddf2f18825eb929f46fc","0xaE73B38d1c9A8b274127ec30160a4927C4d71824",!1,!1,null,null],["ethereum","stobox_token","STBU",18,"Stobox Token","30440220337fc5c39b2e420e57edb8610dd903fa25dccfe6c561914adc4635f2988b2236022010d54d30c6f3ed8e6b6d329767d80a99a9d636226a53529a70969600bc173083","0x212DD60D4Bf0DA8372fe8116474602d429E5735F",!1,!1,null,null],["ethereum","stockchain_coin","SCC",18,"StockChain Coin","3045022100a97c5a1413dae11881a6be4162a1fe3d22193445e4fabaf7b609712e314f793d02205cf3e62a4991b1d5e23257c8ac2e4c97a0d97b44f1934b7234b19086e1da9b11","0x355a458d555151D3B27F94227960Ade1504E526a",!0,!1,null,null],["ethereum","stoken","STS",18,"SToken","304402202af8dc1f751837969c9327b229d4651a8ae7e61a2252e1ceb7312470cebc7d7702200d9f68d201b599d5b1fa85d76a2506d19902547a58849e2a8502e4866e0deb3a","0x4c14114C107D6374EC31981F5F6Cc27A13e22F9a",!1,!1,null,null],["ethereum","ston","STON",18,"STON","3044022063b96932dd6e1d7875e66bd0e20b6f24d17fbea56be451f0566d5ae8bdfb9f1b02205f94b289b91c91f6cc18a1d59667c9b307130b8f15b3ed904fc1430616b49572","0xdC47f2Ba852669B178699449E50682D6CEAF8C07",!1,!1,null,null],["ethereum","stone_token","STN",18,"Stone Token","304402201e9a97af476dfbe8d4a38cf6c970f6e4aa6311f23ff29bb8e93d2ceae5fda1f602204ed8ee6cd6fd0faae06bc602eeb4cd62da2b327500218e74d130bd741128750d","0xe63d6B308BCe0F6193AeC6b7E6eBa005f41e36AB",!0,!1,null,null],["ethereum","stoner_doge","STOGE",18,"STONER DOGE","304502210080d6b6227645d04dcfb92cad18d90c022dae37db046b2188411cd284f0bc108302204436e3649515972c27453f31b2021ee6760e5d669889068bb7194c8250095b88","0x1296A923Cd4f39116e0297D921fE25Fe228552c6",!1,!1,null,null],["ethereum","stonk","STONK",18,"STONK","30440220710d1095b015d9a2a8325a2a081381733866a209cf535c4333c7444ff0deb6ab022017990fb0499db9fdb5f851f7e9e89cc24514cf7a3f74f0179f995f95fbe5f0a6","0x60CA261e14F26e8daaE8B1a7F8e783D64859126c",!1,!1,null,null],["ethereum","stonkswap_token","STONK",18,"StonkSwap Token","3045022100aa45d01d8a2ad1bcb93388b75982c7a7ff53e1329335f93654e1abde5236c0760220704d579e32f66d88fe57df7fd2a52fc0dc38344ae0013c80ccb03c82b951bece","0x35b55c25731E9b05B1d8480ba39463d52C9D0211",!0,!1,null,null],["ethereum","store","$STORE",8,"Store","3045022100fd3b2b1f4ffbd901690e6e84f6b76676c38eaa0d6eaf43092f42e110809e324e0220484a2c83d27f8eadf0d6e6af8b6ed5577cfd25e704b99cf0d5bf4785e54f7fca","0x2C0f41eb07a0635Bac34bD7D11d0Ca6058279601",!0,!0,null,null],["ethereum","store-of-value_token","SOV",18,"Store-Of-Value Token","3045022100cd3aac2c1b064f20105e6914e31763b4c2e7b4dd75e033deab249ada498c89cb02200098e432997f4193badbdba51d74806a40cb221bbc83e784d7f575777c9d49db","0x0aFEE744B6d9fF2B78f76Fe10b3E0199C413Fd34",!1,!1,null,null],["ethereum","storeum","STO",18,"storeum","304402207ad27c992c6cec2c1696fd3c14be29fcb196dc01ab7ccf7b3406ab2f0bfff6eb022030fca7968d36b38e3115109124eaa66f6ec65e4ddcb406c09b6c94b2c262629d","0xCb39C3502415152b2ec90ff07ee18cc94f681a72",!1,!1,null,null],["ethereum","storh","STORH",4,"Storh","3045022100a4d05ed0361c394d1e3780c57c220dc4e85aba9b1361fa7ef1c9ddda14d52fb5022007f7faa974fea6c409cb0bbb8208f722f786b135596cb48b72aa2c1c0e73f1f0","0x009c80EfF4F5d8fcA2B961ee607B00B9C64eF9F2",!1,!1,null,null],["ethereum","storichain","TORI",18,"Storichain","3045022100d85ab2d645d2dd7f83aa543e81baa165f1a1233476aaf6227a1144a068df23170220673591c670b34e0d5f21ddc459962eb8894d5249daf494625fd2c2dfdd5db165","0xc71E20E54ADfC415f79bF0A8F11122917920050E",!1,!1,null,null],["ethereum","storiqa","STQ",18,"Storiqa","3044022018003b98fa3c9360920e1ba9cdd3e2efcb12d9fd17f5260df2222188a2124e1a02200e33a28c69f8b038daf1bb341c0a27d178b979d51fd8fa4a65395782c54b8c9e","0x5c3a228510D246b78a3765C20221Cbf3082b44a4",!1,!1,null,null],["ethereum","storj","STORJ",8,"STORJ","30440220148001467e46d5f7412bea02a447e016095f9bc11d629c485661a2f1c7c5095e02204d59a0e5a9c321fc85770c6b767dd22af6911b4cd6ec6cbd1c7ac05c171cd472","0xB64ef51C888972c908CFacf59B47C1AfBC0Ab8aC",!1,!1,null,null],["ethereum","storm_","STORM",18,"Storm Token (old)","3045022100beb51ced6b81dcb6f229233d0cd2397572d61fd458e3858f0a553d2ba13043300220494c8e252ba0b844242b921ac423b7878ace4df3981a830883168b456610106c","0xD0a4b8946Cb52f0661273bfbC6fD0E0C75Fc6433",!0,!0,null,null],["ethereum","stormx","STMX",18,"StormX","30440220707bcc032c7c4716a5936c5e2608127940e2d32cf1a94763bf4771eb07f91e21022065e59ae29ad3faa3e5460c1853cac71f5274214e9ec8d5f5202b9f91b17c138f","0xa62cc35625B0C8dc1fAEA39d33625Bb4C15bD71C",!1,!1,null,null],["ethereum","stormx_","STMX_",18,"StormX (old)","3044022074f99e59d3a9d1ed133f91a6dcb9756892bfbd145b584d31f2b63721d4b29b2d0220454f8f1605306989e6ea72ee0f0230a75c5e2869bfaf7d124228531aa7abf54d","0xbE9375C6a420D2eEB258962efB95551A5b722803",!0,!1,null,null],["ethereum","stoxtoken","STX",18,"StoxToken","3044022022b1cf469872365741c3f6154236f639b365f4efd0fc7593afa95ae8378e0616022073ec08b243664c572ac9cb1d29e9ee575466f1fde1c359b294f5fac64c95899b","0x006BeA43Baa3f7A6f765F14f10A1a1b08334EF45",!1,!1,null,null],["ethereum","stpc","STPC",18,"STPC","30440220793c1b19be29b48c2783b75b5773abc7265d6c52eff9d99719adf74124de6ce102206cb7d9ef7dce94a83b724b5a055a04b30197aaf690cc2f9d0ebed4bddbbff2d9","0x3Fb8D8A28AFf053CcF446BC075eEcb7a0Ef65D0c",!1,!1,null,null],["ethereum","stpt","STPT",18,"STPT","304402203458afa79a984313d647f9f12b04c01ad80a7cffaf662f1e1d8272edd97eef5202201f03f634141551ec687aeb022146ee3cb94b34eeb8b8f94161bc7ec1da8de376","0xDe7D85157d9714EADf595045CC12Ca4A5f3E2aDb",!1,!1,null,null],["ethereum","strain","STRN",18,"Strain","3045022100fe909d5d25f1d05380127b5657db756625f693de7037f71d321acb7b709f333a022076929a459a6cb75b0e98fd37f847fbc4a3bc7fff306db22b53e43f57832d1287","0x90b426067bE0b0FF5De257BC4dd6a4815Ea03b5f",!0,!1,null,null],["ethereum","stratos_token","STOS",18,"Stratos Token","30450221009c2e3aa61cf87e7108a8480977d4cc08416b2f9164dccdd1e9cc90d0ddd350cd022045e8c4ba9e321eeddc5948f8450f2d2f9aa9ce4803e88399fe98f1b59086a3ad","0x08c32b0726C5684024ea6e141C50aDe9690bBdcc",!1,!1,null,null],["ethereum","strawberry_wtf","BERRY",18,"Strawberry.WTF","304502210098d9e4cc75ad68fdd16b5ac2f480b2ce05f281a78cd0bef858c4cea75a99891e02202444cb387ae3b88e6748355b275df86b573a75903fe930411a2bc0027efb47a5","0xe944f2B46FCfc9D0E887bBeaad95268D9416d0fD",!0,!0,null,null],["ethereum","strc","STRC",8,"STRC","30440220770b7eadb1e572a8f52e95b8ab0d6c912ffeffd01ee5905c1f7ad4351a4244840220721ee17246f69d12b4cd32bfa84f90c280a9526106055d833e1b56d202ea6d67","0x46492473755e8dF960F8034877F61732D718CE96",!1,!1,null,null],["ethereum","stream_protocol","STPL",18,"Stream Protocol","3045022100da5ddd8b40e6a7a384227424eb79b931ca31588b1fce67709aa54b0c12db8deb022068022dcd52577890380eb1dfd144859716ac466da3a8e085b352b634841aa0b5","0x9b5C2BE869a19e84BDBcb1386dAD83a2ec8DAe82",!1,!1,null,null],["ethereum","streamix","MIXS",18,"Streamix","304402201b5d70e4c613066335b6c0393fe77f5590816dd9bbf7f5a32251b37bcb098c9b0220462bb80ceb0a57a8820c54873c28b196939aae427ffd8b4efe2a6e3eb6d4c286","0xB0BFB1E2F72511cF8b4D004852E2054d7b9a76e1",!1,!1,null,null],["ethereum","streamr","DATA",18,"Streamr","30440220029a7357a8161bb1e3abcf3f1cd2fef615161971ca9d45b42478892eaa4cdd4502201e591d2cb29bfd81b819703ad81828d75dc74e8430e298e6fb93c0c41fd16a1a","0x8f693ca8D21b157107184d29D398A8D082b38b76",!1,!1,null,null],["ethereum","streamshares","SSH",18,"StreamShares","304502210099a32279486cc2acd98ee54cded1d46dd0a946e87533f13109fece5403bae2180220315e2bafd7d9bacd4c40849d449bb028f20358f7da09860f1ff98b4dd24786c8","0x6e2050CBFB3eD8A4d39b64cC9f47E711a03a5a89",!1,!1,null,null],["ethereum","street_cred","CRED",18,"Street Cred","30440220219bbf60021bd71405de061f9b13470e8b3f217efd81e106b02d6a03889d3e4002202685e464a3a9944c59add1972273d491d7a68565510d0bcb8e0534003feb5d8b","0xED7Fa212E100DFb3b13B834233E4B680332a3420",!1,!1,null,null],["ethereum","strike_token","STRK",18,"Strike Token","3045022100fedc8cd94a0d612283872ea4a73b47316bfde157cb04a5b4e4162a96d2a5871f02200d75c3ffb0669662a386eb2f957a1da6569d6a95c2c7e2a068b15d8c6d797890","0x74232704659ef37c08995e386A2E26cc27a8d7B1",!1,!1,null,null],["ethereum","strikecoin_token","STC",18,"StrikeCoin Token","304402207fa5adc858fa865c3d9b20a217157a0f0e6e7312697dde41cf310edc46dbb7cc022066c782b5a8c3f83d4d65d067bbfdfb8500230aab4d3d480d36fa61ec7bbc4369","0x629aEe55ed49581C33ab27f9403F7992A289ffd5",!0,!1,null,null],["ethereum","strikex","STRIX",18,"StrikeX","304402205a210a9190e5ca11680b57f7d5482de0057ced5fc630c25b3cd9e050cb698d5d022007e89f4e8e9039e91cd222be3360003db24df051a61697612ef626f4bd8f4014","0xd6fDDe76B8C1C45B33790cc8751D5b88984c44ec",!1,!1,null,null],["ethereum","strips_token","STRP",18,"Strips Token","3044022100826f297b7f9e7ab68d4ed6070f7b1d036a64ccdbb87b1689a0b877e452c25885021f5e3dbc2d3237cf49b0321f2329888a44dbc0f66fe3cc2c3a8a888bc7747150","0x97872EAfd79940C7b24f7BCc1EADb1457347ADc9",!1,!1,null,null],["ethereum","strong","STRONG",18,"Strong","304402201b02064b31f718af386bc6bb2d79e215617d0563dc565701ef5da559e2ac574702204b50ace95bff1c366b34a2e4dc361b945d58f5e97f8cefadc2d6c0830af79b74","0x990f341946A3fdB507aE7e52d17851B87168017c",!1,!1,null,null],["ethereum","stronger","STRNGR",18,"Stronger","30440220590d4104f1c448463ffc00fd799eeefac9a3f33093cb6f4c0a23c92588f2e918022057d59d0d0972bc29a933b6409c7e9b58a3991c4e1ce7af8018130e7933822b81","0xDc0327D50E6C73db2F8117760592C8BBf1CDCF38",!1,!1,null,null],["ethereum","stronghold","STRNG",18,"StrongHold","3044022075aea4ded151587714fb8a6c73792c334baa6e71e641c28ca28b86279d193a1202206b3e50a22e53eac7aa1bafd5502026dc8bba9da9f3f495e814c81530fdf90e76","0x350a6A30C79Df3600C4e0E67DeAb0a64B645e2C2",!1,!1,null,null],["ethereum","strudel_finance","$TRDL",18,"Strudel Finance","3045022100a93f0c5158f531fa78ed650906a0520f494bc86ba11caaea5b76a91951a7dc6202202cf7d0fbc18d2b9e61dd9f29b014dfe35f6c01938313c55edf3ece3fc9c1af2b","0x297D33e17e61C2Ddd812389C2105193f8348188a",!1,!1,null,null],["ethereum","student_coin","STC",18,"Student Coin","30450221008faab6f79afb0dfc6b0d0e671f3ce00a128e25bf2aae5f4a575c78eb16d028be0220681176d998fd04654a060e28132fa4755ea1e979ff69deb073bf74998dd4e984","0x15B543e986b8c34074DFc9901136d9355a537e7E",!1,!1,null,null],["ethereum","student_coin_1","STU",18,"Student Coin","3044022018cc77396d0a28328d834f41d0fb7a01ba54a21301e77ce127528f5230cf7e19022050c90af18d21c742a46bcfee9d12af603b352fa4788eef801e6ef586def1298b","0x0371A82e4A9d0A4312f3ee2Ac9c6958512891372",!1,!1,null,null],["ethereum","substratum","SUB",2,"Substratum","304402201a0af198f20d4915d28a17d7f6bc0873184b4e8af2edacd6e68423c988f7baf702205600a1e8e60738e787f1fd6ecdc95c8856fb6df35095e9ef4f80c132be63c5ca","0x12480E24eb5bec1a9D4369CaB6a80caD3c0A377A",!0,!0,null,null],["ethereum","substratum_","SUB",18,"Substratum","3044022036fe5818723f6bf8759e6aade36dbf54a19dbcc9a35dbd4700c3c28389f7ffb60220573fb23e8159d4d4562e28d62de2a0d3c8f8a4ac041e1bedb066f82ff13b9d3c","0x8D75959f1E61EC2571aa72798237101F084DE63a",!1,!1,null,null],["ethereum","successlife","SXL",4,"SuccessLife","3045022100d44da915d19cfa01e027c95f557aec9174ff762b114a7c9a95b79fa8624bac75022059d7e9ba1d32e1bb0d96023f1e5434196ea27551539ca4bde2054864c347fb53","0x222eFe83d8cC48e422419d65Cf82D410A276499B",!1,!1,null,null],["ethereum","sugar_exchange","SGR",8,"Sugar Exchange","3044022023ea377c64cfede798f8f5c71311e91b7e52dd7a728f49ea10e7a519d0936e4502203212a344e0b3eb66f56030eab2b54788532e129e492024da6af834b41d8611e1","0xCB5A05beF3257613E984C17DbcF039952B6d883F",!1,!1,null,null],["ethereum","sukhavati_network_token","SKT",8,"Sukhavati Network Token","304402202a7d28cdf380600513be7ebf54fe24c11710742aebaa808fe23a110a0b55c98302201f4cb531a8015c56295e5ed45c9bc92a78cf2901546bbb159b2a181b43b821d1","0x012E0e6342308b247F36Ee500ECb14dc77a7a8C1",!0,!1,null,null],["ethereum","suku","SUKU",18,"SUKU","3045022100d79734b42e57a2b626352ea51ee909d0f2f8e5bbd7e8b2a01f49c4301eaa6681022038cc3b1f8f63f174edadc1df1ed63d0bb07aece16bb9705d6f633b57d4ad53af","0x0763fdCCF1aE541A5961815C0872A8c5Bc6DE4d7",!1,!1,null,null],["ethereum","sum","SUM",18,"SUM","304402207763d62a90d7c6c5266c04373ea3e640d14249dd55c6f609bbc96673bf12e20f022063a03fe003f2f59461eb1143d40cac7b0b08032790494606f15729822a4ecd90","0x043C308BB8a5aE96D0093444be7f56459F1340b1",!1,!1,null,null],["ethereum","sun","SUN",8,"SUN","3045022100911c6415fbb9a9d1375462fa2c9a0e54d60f4f877b2d2901362ee4480b31e5aa02203e5a0f151d5b3466facb62ab24c031e80c834adfade66615c7875ed8d29da443","0x7CC61e3aE6360e923e9296C802382ec7c9dD3652",!1,!1,null,null],["ethereum","sun_chain","SUNC",18,"Sun Chain","30440220378bd4e97592a8f8ba36e7c79f85d35d979ffb537ab5d09da2e4f2c890b27d5c02206eb08a2f99146607fc8340c5174cee71989eb392ee0888fadd321eadee9fe848","0x6b0D7b8357bB851De9F1953199c39c7Bc4675796",!1,!1,null,null],["ethereum","sun_money_token","SMT",18,"Sun Money Token","3044022061c492d64c2a6052c986eafea4177fa71a1b8820217832828cd47b61296794fb022067a4a6522e0a85d435dfe8b982138f411ad92b3598737e0f37c2192543fe6dba","0xc761c8Dc05Ae52a8a785665E528ddbb00C098AD1",!1,!1,null,null],["ethereum","sunder_goverance_token","SUNDER",18,"Sunder Goverance Token","3045022100cea53047169b88264e6418dbdd7f2dc314d586e279685b0f9b2fe7d11c38953602201144f3a46866c9076e03020a05ee4dad06c63b711fa97d9694e986158659339d","0xbDbf245c690d54b67C6e610A28486A2C6dE08bE6",!1,!1,null,null],["ethereum","sunitoken","SUNI",18,"SuniToken","3045022100d7f92a89110b15858f4217c4f820fd32bca9550a500adf285f903645310d173b02204325a87f3df863df6144caed897f5d1c7c3ec1485d49272d86b4b6b02d594515","0x4a22A69E45AB29F9F7276B0267797474DAf1F27c",!1,!1,null,null],["ethereum","sunrise_token","SUNC",18,"Sunrise Token","304402201f6e5e07a9f3a94192abd6803668f3cbb6ad8a0236d748cbd5c6e441a040ecc5022009aa23a0303081ad9ab7c3ca161f1edfa90bc624bba3065d671b7ecb27449898","0x692aCCdD8b86692427E0aa4752AE917Df01CC56F",!0,!0,null,null],["ethereum","sup8eme_token","SUP8EME",6,"SUP8EME Token","3045022100ec91f730ab3f53ff1dd4043e5676d7d6aa004d8271b517922c34c6bea0ed8f0602201fd6591789c1edbe855e0ff513870fd2d3724c8517ef47153b15da6e55511ece","0x47935Edfb3CDd358C50F6c0Add1Cc24662e30F5f",!1,!1,null,null],["ethereum","super_heavy_booster_4","SHB4",18,"Super Heavy Booster 4","3044022056b81ac43c07a383a0a36b7e94930f03cc90ce8601cecbbd8b0051f9af2a749d0220409363656c27cfd3687fb79d797bd8f7e6fde35a93127844f4b29c46694b08a0","0xd0f57B427971EA60909a28648987141A81f8DC03",!1,!1,null,null],["ethereum","super_keep_token","SKE",8,"Super Keep Token","30450221008475a46202e1886eecf6c15ba78cc3d3b0d70dce735b21db540f0aa8f6bc1a1d022063d2964785491b8e6e8a05022a2d378a36b0ef71d35aaea14065cca34518799f","0x13DB74B3cf512F65C4b91683940B4f3955E05085",!1,!1,null,null],["ethereum","super_saiya-jin_token","SSJ",18,"Super Saiya-jin token","3045022100f067fa466e528b3ab5db9e5691a5ee997c911727b0a77f91d0cb23296dca3a4702201f07cf1f074e6d5cc97d3cb186f4d744de82fa19ab92673567b55a70b531eb51","0xB4ae194a0DCF1B4080b164C1d775ee06E0817305",!1,!1,null,null],["ethereum","super_trip_chain","SUPT",8,"Super Trip Chain","30440220070ddd700b5ef237f5c3399ec8862331ca9e149f224642986e14a6561e01c72b02202c724c16a15a507f49c47608757fea1dd8d5bee51a8d349d5a9ee94aa7265905","0x868ab6C9E560Ff70584b9770d1Bd1b961AD09d82",!1,!1,null,null],["ethereum","super_tron","STRO",18,"Super Tron","3045022100f1a4a3c96303a58109dd0119d102f539f92f392d333b87a14ddf122b1cba20d1022014fd5e11fbbfa855588fc17af1253583ca974659dd39fce12e33552edfd44bf9","0xc2e343118f937F88Ee1FC3150cDc0d6f3D11bBa7",!1,!1,null,null],["ethereum","superbid","SUPERBID",18,"SuperBid","304402205732d2080c1534fb276bedf80cfa3e618b965840dcad2c6f10451c05c293d18402205aca8c09e5578bba982e9340fefa40052d97c5122e361bb274510b959f0bd45d","0x0563DCe613D559a47877fFD1593549fb9d3510D6",!1,!1,null,null],["ethereum","superfarm","SUPER",18,"SuperFarm","304402201ca4a46b37457a5b4645711a859b12f9d24907a4109fdd7efbc35fea5ed18aff0220489acc5c8b0f109f0adde4fa1cd68dfbb8baffa8107dc5c75c12affbf119a69a","0xe53EC727dbDEB9E2d5456c3be40cFF031AB40A55",!1,!1,null,null],["ethereum","superrare","RARE",18,"SuperRare","304502210083f5b05241df223299f26841734b521f307dfcc58329bb298921890f6cbe0d3d022032b2bc75e71f3b343c253419f7c7a6d6335bbb79129899c58810156ae069600b","0xba5BDe662c17e2aDFF1075610382B9B691296350",!1,!1,null,null],["ethereum","superskynet","SSN",18,"SuperSkyNet","304502210092c614245c9b3328fb63997cfdc4cef2ff7f960bc3412ae0b6be7297381ed71202205560927093d39593940562662e97ecdf59d32c87a5f0dd3febb38a52a9beaa5b","0xA5b46FF9a887180C8FB2d97146398Ddfc5FEF1Cd",!1,!1,null,null],["ethereum","superworld","SUPERW",0,"SuperWorld","3045022100c283b7e682cda833c8abd6e0c828038f78586c8c5ab6db88c48cd620d16aa11002206fb7070b7c5b4989af1e02c5eeeff89001ad2d103ec1818e2a8f2e10a17a4f77","0xfD89EA92F6EC07d955e2adBBA2400Ca1a6369028",!1,!1,null,null],["ethereum","suretly","SUR",8,"Suretly","3045022100a49c81dbb31fa503fa5e540426c5d0bc1e901f85516ffa637b45ddb05f2d68ec0220582e3462206c98679295c10d95a9b3c845bec3ee15ee6c8ebcd97ef5ccd4b620","0xe120c1ECBfdFeA7F0A8f0Ee30063491E8c26fedf",!1,!1,null,null],["ethereum","surf_finance","SURF",18,"SURF.Finance","304402203fc05982bb350e5ceb6a85262742cd6b1620070f3464bbd4900e9299b48eb830022008f9218379a7dfd02d84bc94ef7cf4774a68778d1f196a2fe05aaf3e23ae826c","0xEa319e87Cf06203DAe107Dd8E5672175e3Ee976c",!1,!1,null,null],["ethereum","surfex","SURF",18,"SurfEx","3045022100b53bea37f283ec304c8e1e9ca245d4ae791a0f6097d645d1eff9d09fb37e621e0220334dcb29c90e0d0b303c4cd9ec4ebddf64865bd5d77f48deae1c99ca74ecfb21","0x46d473a0B3eEEc9F55FADE641bC576d5bc0b2246",!0,!0,null,null],["ethereum","sushi","SUSHI",18,"Sushi","304402204d50d041a4dfe8f5509a1a2d5b1956b5f8f144e4927311cc77884ff05283e5990220211a0e8d75fe3b0d8800833ec1dd581bfd5b48bc163a62e4c40d019a390c2f04","0x6B3595068778DD592e39A122f4f5a5cF09C90fE2",!1,!1,null,null],["ethereum","sushibar","XSUSHI",18,"SushiBar","304402205933270ae66d3c17606aa0cb24bf9e0f0aa786a772cc00b4bb278ad6367fb39502200b42ef809562b9310b9cd0105bc2aea6e9984a7c57a0fc07deb26bcf537a5463","0x8798249c2E607446EfB7Ad49eC89dD1865Ff4272",!1,!1,null,null],["ethereum","sushiswap_daieth_lp","SDAIETHLP",18,"SushiSwap DAIETH LP","3045022100ae76e4c59c75a9024549b1257608bb432213a5e2278995d24508e32548daf7a0022011eb2b88b2c18c6e254e64fad7eb17b150c0ad62f3736503728b67649c7c48b7","0xC3D03e4F041Fd4cD388c549Ee2A29a9E5075882f",!1,!1,null,null],["ethereum","sushiswap_ethusdt_lp","SETHUSDT",18,"SushiSwap ETHUSDT LP","3045022100dc9c6a36a799f7d95d4fae9783df74b53a55d2b2739662116b64da5d61f3d1ba02204025b11f80baac9d62f30435f70c33daea31cafb00d00145b171e8c0957d5b57","0x06da0fd433C1A5d7a4faa01111c044910A184553",!1,!1,null,null],["ethereum","sushiswap_usdceth_lp","SUSDCETH",18,"SushiSwap USDCETH LP","304402200160ddf88685912b0f512ff3e7bd4a95a828eec05c32b8eb7bcea2607ca0a55d0220496c7a0b11d181ae490bd4666c61573da8cae5978d98d56a37c1019e2c8e5377","0x397FF1542f962076d0BFE58eA045FfA2d347ACa0",!1,!1,null,null],["ethereum","sushiswap_wbtceth_lp","SWBTCETH",18,"SushiSwap WBTCETH LP","3045022100bfd92b22404c6936a20791eb0afebce276dd0939e223fde3ee5bdf969ddb913f02207237d21e3ca3905d83146c7fac96a5ea31708ed4f21a65b8d890e1c82b953926","0xCEfF51756c56CeFFCA006cD410B03FFC46dd3a58",!1,!1,null,null],["ethereum","suterusu","SUTER",18,"Suterusu","304402201f4e1c09aa89fe4de531dd80f087b8020e43a354cae2ac66dad45a4c5891f43602200dbae85485db5a77a110dc2448f98a84b624af6a2662fc61a31e826eceb08497","0xAA2ce7Ae64066175E0B90497CE7d9c190c315DB4",!1,!1,null,null],["ethereum","swace","SWACE",18,"Swace","3045022100a8a872cbdc3926bc23600817e2c1c8198151680b1348e399e63bc8f7da990efe0220727b7865f23fbbaf1685d5a728d25f8ac6d8e6743a83f290a62df6d9f298f0f5","0x03B155AF3F4459193A276395dD76e357BB472DA1",!1,!1,null,null],["ethereum","swag_token","SWAG",18,"Swag Token","3044022011c0559b43c7c7a3f2b0d306c7cfd0ae45a6138babbe8e20301fca8fc645f3470220638bbe55b9bed8fe5fb435ad7a303712613b57efd4e40e403661107cf66aa4f8","0x87eDfFDe3E14c7a66c9b9724747a1C5696b742e6",!1,!1,null,null],["ethereum","swagg","SWAGG",4,"SWAGG","3045022100f86524964d2386500bd6e1ebdc0252a768b2e0e018e7dc7eb65911279757d9d302205aded736791b0ff81af6626f5ca2d1a74fc06b13d7fbcaa4bf9049bfc8609c2d","0xa19A40FbD7375431fAB013a4B08F00871B9a2791",!0,!1,null,null],["ethereum","swapcoinz","SPAZ",8,"Swapcoinz","3045022100e1202e6603aecd31a18568002b610343609ef45a2a7a77f41b50444982feb9aa02203de9709035ab825818573fd28f9912d81e91e9deb871147bdef69d065e1940fd","0x810908B285f85Af668F6348cD8B26D76B3EC12e1",!1,!1,null,null],["ethereum","swapdex","SDX",7,"SwapDEX","304402200a6b7941beee348aa27bf33555d99fe5476e205742c13692864e9f1c1aa0e32602207e8b66795aa1119e9081fee173dbab6ce59131bcd69baca24178191d610c0674","0x041fdd6637eCfD96af8804278AC12660ac2D12c0",!1,!1,null,null],["ethereum","swapfolio","SWFL",18,"Swapfolio","3045022100e4e94eca90e9c114458e64bbb2a753ffaf1d8e33748d8622efe3c2e92312119c02203556a1be4eb43710e76d460773a897dee2cc817c5d5f7dc02f10a7f9420f2f74","0xBa21Ef4c9f433Ede00badEFcC2754B8E74bd538A",!1,!1,null,null],["ethereum","swapp_token","SWAPP",18,"Swapp Token","30450221008f88ea935ee4807bafff842cd84a639fd5c7201e4212366301d8ca3386140da402206c4fa42875636b12b040e0b280d22148664cef6acca69968c4ff016db8aa0703","0x8CB924583681cbFE487A62140a994A49F833c244",!1,!1,null,null],["ethereum","swapship_rtc","SWSH",18,"SwapShip RTC","3044022061127149aa3fe6d7b85ea97f87ef8bea1068dc998b0d4dc53d783bca554ff92e02204b9dde76e32b8973d1365ff9674c42e96d10d5c68371b2a230219f3d273cbf65","0x3ac2AB91dDF57e2385089202Ca221C360CED0062",!1,!1,null,null],["ethereum","swarm","SWM",18,"SWARM","304402204eee20cf0942a3252c4efda6e0ffb55b075b27a8feebe6493bfb00bcc8cd8ae902204844b1b3c5bf51ebf89f891393aa3d5995cbd265c42fa41c496b7dfcbee1a965","0x3505F494c3f0fed0B594E01Fa41Dd3967645ca39",!1,!1,null,null],["ethereum","swarm_city_token","SWT",18,"Swarm City Token","3045022100cb84eabcac3e3c85e9aec7710d887c80e6ad4b79a1e0d83cf9876894c7661c51022073690ed25cb54fcc6daa1d58adabc53fd6eb31c35e2a1d2acb7cdaaa0481456b","0xB9e7F8568e08d5659f5D29C4997173d84CdF2607",!1,!1,null,null],["ethereum","swarm_fund_token","SWM",18,"Swarm Fund Token","3045022100d96ed4c62405d73a9eb488cb03c3cf54c7e016fa273d4da4291abe685acf228c022000957903632e3627a13bf781696ed4a6a4005a477ef60539a58b8832e99d9f00","0x9e88613418cF03dCa54D6a2cf6Ad934A78C7A17A",!0,!1,null,null],["ethereum","swarm_markets","SMT",18,"Swarm Markets","304402201be56b0e49237c061bd17f9ff1603ada0138326ef6f5354e8967319184a10897022036bb0c2228243e69e079237acff89dce439eaac9c056b3b03b4e5503afa74d93","0xB17548c7B510427baAc4e267BEa62e800b247173",!0,!1,null,null],["ethereum","swash_token","SWASH",18,"Swash Token","30440220421131342c0175a8c0e66999a00f312f9cf38db8b0fa1bd82210d8746187990d02204abd33457515272002c5c3ac40407b9d7a97c6f865eb46a1e2a8ddec370e6ada","0xA130E3a33a4d84b04c3918c4E5762223Ae252F80",!1,!1,null,null],["ethereum","swerve_dao_token","SWRV",18,"Swerve DAO Token","304402203004a295abc09ec0369b14b7eb5f4614a89ddae90b1c48d9d644a417983d82c5022067b923b1aedcd0a1d55d7c4a61ec49ac88ee14c0bfe41a675722131d99e4b209","0xB8BAa0e4287890a5F79863aB62b7F175ceCbD433",!1,!1,null,null],["ethereum","swerve_fi_daiusdcusdttusd","SWUSD",18,"Swerve.fi DAIUSDCUSDTTUSD","30440220527d6a4e9fa9284f63d6515ca57c02becccbe54f51d1c23e2da80b37454ce726022045dd1c56b7cce348b1a96162bec37a67132f91c17261dcbed7867f3961d3f074","0x77C6E4a580c0dCE4E5c7a17d0bc077188a83A059",!1,!1,null,null],["ethereum","swftcoin","SWFTC",8,"SwftCoin","304402204343b0738193b67be0ee9fee8c0045b0c0a5a02a5dc5d17335ba23af2330a6ff02204313fa3b7ce4f0da7f9a8fa69d2868a32231bccc3d23958594ba22979792176f","0x0bb217E40F8a5Cb79Adf04E1aAb60E5abd0dfC1e",!1,!1,null,null],["ethereum","swingby_token","SWINGBY",18,"SWINGBY token","3045022100c05eafd8c4c21876183e8ac507a21cc7d235ca8f61b2df3ddb7377eae0dd5a7a02202b672506bef8bd06de17e93b77492dcc520566f272ccfdc67b95d99de16ddb9d","0x8287C7b963b405b7B8D467DB9d79eEC40625b13A",!1,!1,null,null],["ethereum","swipe","SXP",18,"Swipe","30450221008abf3005a8a8c6378fcb520786a2f1511a19eb84b37543abc7cef2f378a6607b022004857acb05f27f102021dbc20f0add681bb8e6e976a2d300f768f27ed4b4910f","0x8CE9137d39326AD0cD6491fb5CC0CbA0e089b6A9",!1,!1,null,null],["ethereum","swipe_token","SWIPE",8,"Swipe Token","3045022100d4a11c214efc88c549c9d2a842fecc6b8f16e200ad02ebb23da9447673746a4302204cf6f1dd036221cf53b18ca44c2b9fa2ad6ca7300bdf8e6554045ba20042e77f","0x13D71cfC90A83CD1cC0E59675c3F4b90d4162a8B",!1,!1,null,null],["ethereum","swirge","SWG",18,"Swirge","30450221009b177352ab799cfc2f0230c7c7bcc81f88bbe053e157288b5b696b750105a7e102200eecfe4b125a59f50f99f0359bb245e624015ece8b59fe60b3569cd2523afede","0x92eF4FFBfe0Df030837b65d7FcCFE1ABd6549579",!1,!1,null,null],["ethereum","swiss_token","SWISS",18,"Swiss Token","30440220617e090b7898f05c57c692a6cd96f99cbc45d97e4a49b0f9a81bac93b44c919502207882037372848f1500309d8bba203373642650de1ad1da63b22261d04f38d98c","0x692eb773E0b5B7A79EFac5A015C8b36A2577F65c",!1,!1,null,null],["ethereum","switch","ESH",18,"Switch","3045022100e006f82c0fb014d826d5e37517df4bfd1d0069a7663c369c66de815371becbff0220014dccd27081ee13e774866b19e11c7fd027648d19fb2572921de5dca8f68bd7","0xD6a55C63865AffD67E2FB9f284F87b7a9E5FF3bD",!1,!1,null,null],["ethereum","switcheo_token","SWTH",8,"Switcheo Token","3045022100aad70b841a57c6b716453ea1415e28e9b7435bb643ab5f14964227f4accf1c6b0220153d63eea4d4612aa81168d481764e57af30a11f5b0ee3fbd256243d381a950b","0xB4371dA53140417CBb3362055374B10D97e420bB",!1,!1,null,null],["ethereum","swtcoin","SWAT",8,"SWTCoin","3044022075b7cdbf26f259b51fe751c7b011312d40fc163f6f95e2f291aca24fcd7a859602202af084caab23c818a63e0b20d35f1ff0499273303fc1f703b42e18bd5bb8ba3b","0xc0F1728d9513EFC316D0E93A0758c992f88b0809",!1,!1,null,null],["ethereum","swyft_token","SWYFTT",18,"SWYFT Token","3045022100ac2df9e9212bfc3e1fa3e5dd4552ae760ab8fe9771d880a4bd384c7c1ce491c002207818238d921c747200db2e5813e377c05a43fb985558845cfa8a38b5e980657b","0xA1248c718d52752b2cC257eeb0eBa900408dAeB8",!1,!1,null,null],["ethereum","sxc_token","SXC",18,"SXC Token","304402202b7189baa215198671bfb65e478c9f9f54bce7094fb805c0a7b2fca3f7ad9c0c02203d6643d70996b048336d443c73fc57131ead7256c7ec7e1d0d7e07fab877c101","0x6A48BA795e3289b9151036E189e352e3eE2c7798",!1,!1,null,null],["ethereum","sybc_coin","SYBC",8,"SYBC COIN","3044022050648172b776bbcea16e257825700947335268ed0b0d8343914b582a39eb152b022049f7c426daac2e536e37ed3756be390f34e11991fb6752db4aae8fd84aa327c1","0x69428BB4272e3181dE9E3caB461e19b0131855c8",!1,!1,null,null],["ethereum","sylo","SYLO",18,"Sylo","304402201fe7ebc5921d8dcc1ba9d47345d7bbee71d89d4fcd69bafe438bf097aa71bc4702202b009b180d187d7292c748ce0f89b1cfd781487646e07fd86da502116f7dea8d","0xf293d23BF2CDc05411Ca0edDD588eb1977e8dcd4",!1,!1,null,null],["ethereum","symverse","SYM",18,"SymVerse","30440221009f84fa24541d3c7068bcfacc85c44c11486c2a839b10f65ede58598e1f90e2fd021f46a4c2fd531c3e2638b59d23c8543e62bce09f93e8e522a424427377f5ae13","0x2fd61567c29E7ADB4Ca17e60E1f4a3Fcfe68aCb8",!1,!1,null,null],["ethereum","synapse","SYN",18,"Synapse","304402205c40c4050a517fe73072153eb81ef76129b5c62df12ebaa3ceba6a5b185fc585022047891f151213c41bfd88d7dad808a274f8f2c8b2df7568614d0bfd1c79f82c6d","0x10B123FdDde003243199aaD03522065dC05827A0",!0,!0,null,null],["ethereum","synapse_network","SNP",18,"Synapse Network","3044022078c8134469f573d95bcf2a58c97dc81fd0dc3a7280dcf97266e85577eb212d93022013512ecb10636067469cb1746b4c6c6433e8cad1819392a223cde5678cd9388c","0x6911F552842236bd9E8ea8DDBB3fb414e2C5FA9d",!0,!1,null,null],["ethereum","synapse_protocol","SYN",18,"Synapse Protocol","3044022022a5bec44010f627a7478437e2f2cab72787eee466d7d35018d384eeb62ded28022029ea752e88d36c1abefe70ff2ae683aa63e548945d378f74d4ce70f4c45a9e8c","0x0f2D719407FdBeFF09D87557AbB7232601FD9F29",!1,!1,null,null],["ethereum","sync","SYNC",18,"SYNC","304402206ca81bec916e4c27e101bdbe40ed3a30eb7c971e2e6f74340f295c566606f86102200479b92cf9588bfc1e17813617b9cc7d2f99a4fa64fbab73e24e39512c908dbc","0xB6ff96B8A8d214544Ca0dBc9B33f7AD6503eFD32",!0,!1,null,null],["ethereum","syncfab_manufacturing","MFG",18,"SyncFab Manufacturing","304402205707b40a32565d4ea0c27e2f5aaa3b6aa14931cd548054277a518c024f0b559802203765cc3b71508e23c287a603f4d0141acae5d704328b7792655899960c1a92ca","0x6710c63432A2De02954fc0f851db07146a6c0312",!1,!1,null,null],["ethereum","synchrobitcoin","SNB",18,"SynchroBitcoin","3044022041e9c09ba6c60f7a66fa36d869e576e5bf9e560582495e805230c28aa8ec9cd702201e5cd64c32af4532f7f96b2787adb4bcd25e4148bd9720e36c06d8729223dbb0","0x179E31FB25E433441a2839389A7b8EC9c4654b7B",!1,!1,null,null],["ethereum","synchrocoin","SYC",18,"SynchroCoin","3045022100f9bb066635a8bc91bc6dba1d46c7f66bcc8dba4e7b08397eb5c8b1b8eafb3df0022044b4b3ded3f63facf1342f41c9fde10ee9cd99453b5c965b77f33694862efd5e","0xE49214e4c92dc9bcb3B56C1309aFE0D626dD730E",!1,!1,null,null],["ethereum","synlev","SYN",18,"SynLev","3045022100d730c37733e8978eaa6930de5472f260276aa2b53646e6b41913a8ff2704f7c00220480b12276d38d64b7d4b8b1153a7d8d583ed1b6ffbf7ed4315017b3dd18c3dc3","0x1695936d6a953df699C38CA21c2140d497C08BD9",!0,!1,null,null],["ethereum","synth_iaave","IAAVE",18,"Synth iAAVE","3045022100a121dc6ea30ff9c077dbf60702270b1d81f57f487e349f71d8d3c61d0f839fa302202c294343b9cc94eeb3c1a62494550ef20e466b921c559b58adc729ab9dcd15df","0x176C674Ee533C6139B0dc8b458D72A93dCB3e705",!0,!1,null,null],["ethereum","synth_iada","IADA",18,"Synth iADA","3045022100b154a6df9a4f3e009769c400ae9bffdc849c8546b0d46ddaf36a3617d288c38b022033547996dfd0ff96db6edddde94d4314c2ab4450260ad9bc8c7ab110fb937caf","0x8A8079c7149B8A1611e5C5d978DCA3bE16545F83",!1,!1,null,null],["ethereum","synth_ibnb","IBNB",18,"Synth iBNB","30440220420628ac816d51d201c904d2142d95906b31d6b4da70cc1e836f01634355dafe022002f45dc51a6f206737d2f47acb231c09a15cef7f54fdca7e9bb483d6815d727c","0xAFD870F32CE54EfdBF677466B612bf8ad164454B",!1,!1,null,null],["ethereum","synth_ibtc","IBTC",18,"Synth iBTC","30450221008674f7bd19966ddbf0ce696cbe84808fe891c5122211ff9b8ca190384e484506022004b02bae60a2cf327aeb8256346a8a8dc2cf637cb23b47585e131566d0d94f87","0xD6014EA05BDe904448B743833dDF07c3C7837481",!1,!1,null,null],["ethereum","synth_icex","ICEX",18,"Synth iCEX","30450221009ac67939c823ed566a692b63a9b7486ec2b33d375b4c38566b17c67dafc357950220505446213d1b1645e59beca2c139170fe9c2e1a1eb4772b64b8cd04c51d930e4","0x336213e1DDFC69f4701Fc3F86F4ef4A160c1159d",!1,!1,null,null],["ethereum","synth_icomp","ICOMP",18,"Synth iCOMP","304402205a057ec4bfbd62f1ef24974bde4cb429d0ef376b5c0a6ff129a071b629c5c8bc02206303da03ecd7b5274e85db935771fca4a1df002822ba6d825f1910d5a9983937","0x6345728B1ccE16E6f8C509950b5c84FFF88530d9",!0,!1,null,null],["ethereum","synth_idash","IDASH",18,"Synth iDASH","3045022100dd45da210421b8ddd63c2b6c398cf99ff587e06dd6e243ba8bab3c7521e24aac02202f4455f01efb0b9ca273482f9bbbf899e723f2a916283b1662bab4462dbeb835","0xCB98f42221b2C251A4E74A1609722eE09f0cc08E",!1,!1,null,null],["ethereum","synth_idefi","IDEFI",18,"Synth iDEFI","30440220368a5c3197807847afc4cf69b6485120181cf27a47616dd7d1cd926cf9a7245b022054fd030703300cf10c6e02c5e0fadec6c7f9b237200d04472d1dab0b623cdde4","0x14d10003807AC60d07BB0ba82cAeaC8d2087c157",!1,!1,null,null],["ethereum","synth_idot","IDOT",18,"Synth iDOT","3045022100e5e10f19d2d27a6d70c7c135041ae03c300047df6b896ec0ab789646c0ba099e02205ee8853b0946f41f3ce950d3c1f736000818f7fa42cdb4135ae50f00ffd5c786","0x46a97629C9C1F58De6EC18C7F536e7E6d6A6ecDe",!0,!1,null,null],["ethereum","synth_ieos","IEOS",18,"Synth iEOS","30440220065592aee6fb0dadefcdb1f43d18159499c5792c90ef8e181c5443fc56edc06a0220429fa19b4ec0949e6bc71eb57f82277f3c5758d3180699438ea869edb41d3a77","0xF4EebDD0704021eF2a6Bbe993fdf93030Cd784b4",!1,!1,null,null],["ethereum","synth_ietc","IETC",18,"Synth iETC","30440220293aec026c62f7f850f34bfe423936677fae9e73de4b079cd36cb43a56ee217e022027e73ff3648ffc48d52c9c8d6cb691d47b1cfffec8c5e79d0c50f9b32e9bfaa8","0xd50c1746D835d2770dDA3703B69187bFfeB14126",!1,!1,null,null],["ethereum","synth_ieth","IETH",18,"Synth iETH","3045022100bf77c3243b85963835b83fce17f58ecc215e5159422840fd2f2578f04d0bc08b022075510394d100be117b766b67e5087b7aa8882480040e770d3c672e1cfa71238b","0xA9859874e1743A32409f75bB11549892138BBA1E",!0,!1,null,null],["ethereum","synth_ilink","ILINK",18,"Synth iLINK","304402207f5a091e5b9ee27f2f752aab02d4544c81166f4bc374d212d335820e88222c5f0220622308f886d9b96555f5204c134fffe3b79bfde583a2e11666c2f01147c5fa27","0x2d7aC061fc3db53c39fe1607fB8cec1B2C162B01",!1,!1,null,null],["ethereum","synth_iltc","ILTC",18,"Synth iLTC","3045022100d72b21a6263be6d0b9f95c617a9f44ec797635b2cc95df47c3c391751c9a578e02203f8b3c23f7757a74c71944ea3ff0062f41ef6ef6f6377cd541c8b996a284c8d4","0x79da1431150C9b82D2E5dfc1C68B33216846851e",!1,!1,null,null],["ethereum","synth_itrx","ITRX",18,"Synth iTRX","30440220699efc690f460e35272affc62ce9f304627889e7ef03c2c265b8f1322cbb289502203a96e20319d96f30924960633fe53686ddfa46b96d7350392b3ecc4f31b05e4c","0xC5807183a9661A533CB08CbC297594a0B864dc12",!1,!1,null,null],["ethereum","synth_iuni","IUNI",18,"Synth iUNI","3045022100a544e1595c16b429f11db3057113560952faf1186ce7947fc3900d30e8e5972702202fb5c567fc518a8604b12a7451bf0b3bbc86b25c6d1e4d948f031b0d5a319fad","0x36A00FF9072570eF4B9292117850B8FE08d96cce",!0,!1,null,null],["ethereum","synth_ixmr","IXMR",18,"Synth iXMR","304502210081a7a15ff626745e2f95b2e30f8de3d8d62ef17f43aaaafd56df82b2d819fd20022039b12e71180aebf479f1f3bf182e29f0cab0967c4ce44ed9182696dcf6cda4ce","0x4AdF728E2Df4945082cDD6053869f51278fae196",!1,!1,null,null],["ethereum","synth_ixrp","IXRP",18,"Synth iXRP","3045022100f0f8dc147c858831256cebc269088cc9201054005e7d5795865b3cb35c2b93da02206fe24fce2e6e5a605fc59fbe4bc647bcc6bac247d319caf56df1db44b4536cab","0x27269b3e45A4D3E79A3D6BFeE0C8fB13d0D711A6",!1,!1,null,null],["ethereum","synth_ixtz","IXTZ",18,"Synth iXTZ","3045022100b8a2b0ceab77b317e36c6aed9bfbd1f61fb5ae5a13088046abda79cdd0d83a7202204bef876b391674e93427cca95fbc99102d524658adf7d13ade5982f56ed76824","0x8deef89058090ac5655A99EEB451a4f9183D1678",!1,!1,null,null],["ethereum","synth_iyfi","IYFI",18,"Synth iYFI","3045022100abe10cd7cc40bf2bc2d47a30f835227203c3012d24218c1be5706548ebaaf93f0220065b32d894d7697e2c00102162f6ad0010e7e55caaeecf4afe0b425d5bee9b5a","0x592244301CeA952d6daB2fdC1fE6bd9E53917306",!0,!1,null,null],["ethereum","synth_s1inch","S1INCH",18,"Synth s1INCH","30440220195e9281db9f7ed751930939fcaff165a8bb47b095cf99391caed67b93590beb02206a06d8c9865639ad1fafb0f59690e607cc4f0afa50f611fa59a9bfe2e8705c96","0xcD39b5434a0A92cf47D1F567a7dF84bE356814F0",!1,!1,null,null],["ethereum","synth_saave","SAAVE",18,"Synth sAAVE","3045022100d445cf504b65bebd212c3f02563439513c939da1977bdae2940871d721c9650902202fc67c4e73549e7357de259aa0ba8718edd74d0c8aeb582cc425f7518e1e29a6","0xd2dF355C19471c8bd7D8A3aa27Ff4e26A21b4076",!1,!1,null,null],["ethereum","synth_sada","SADA",18,"Synth sADA","304402206a05d6c36ed7ff52e0821f32c069c9f93d1a14f7614ff5655c22977817f390480220330bed947999ca0bf4792c43edfb61dd49b8a360785d07ee0479919b0328cb25","0xe36E2D3c7c34281FA3bC737950a68571736880A1",!1,!1,null,null],["ethereum","synth_samzn","SAMZN",18,"Synth sAMZN","3045022100ea1c2d535f38be29fdd9d09f39b009bc0435bb73fb657b15155923857294db1f022001f1603cc7bbbc3968e86ee2eb14b0e42f54ecf2227d2d4dd430bc50d29279d6","0x9CF7E61853ea30A41b02169391b393B901eac457",!1,!1,null,null],["ethereum","synth_saud","SAUD",18,"Synth sAUD","304402201a91711aa78f951ee4a0f3397479afb081a04c8867932ea23b4d9cd773a367330220103da60c9f0f5c38496c19f798e8f68916947f25864808179a02eedcc20164b3","0xF48e200EAF9906362BB1442fca31e0835773b8B4",!1,!1,null,null],["ethereum","synth_sbnb","SBNB",18,"Synth sBNB","3045022100fb2e5f14d213bf237f2d50da9c43d0b0e967bf5cdf5a646bb53e190baba9a08d0220671eaaca7cc88f66f8189b6a616492753889c7bd296c8a623e4949c4770fb0de","0x617aeCB6137B5108D1E7D4918e3725C8cEbdB848",!1,!1,null,null],["ethereum","synth_sbtc","SBTC",18,"Synth sBTC","3045022100a564e33f679ef15e43ac50ee348bfe557d06b658ed437399d6f08ab2a881221f022018b864c9f6c44e574b639875f84fb0a2981104ef821936033c6bb1ad420f9302","0xfE18be6b3Bd88A2D2A7f928d00292E7a9963CfC6",!1,!1,null,null],["ethereum","synth_scex","SCEX",18,"Synth sCEX","304502210092c05a4ead5567d456ea9f3375fb9aa9c993abec2332032b91898fefbb4fc871022018627dddf056d8cd5edb32ca15d0713fa1a717b9f9e2ad60a8a38274b5fc2832","0xeABACD844A196D7Faf3CE596edeBF9900341B420",!1,!1,null,null],["ethereum","synth_schf","SCHF",18,"Synth sCHF","3045022100d8893418a4c010ebfc0db085ee10438110f2808dd36c6521332dac92176127c702207537b8026f542d09d1e5d7ece4a21a6494bef53e01c9e0fdb191f8816ac94eda","0x0F83287FF768D1c1e17a42F44d644D7F22e8ee1d",!1,!1,null,null],["ethereum","synth_scomp","SCOMP",18,"Synth sCOMP","3045022100f3057fc0976ff55a05c2b0127edcac93b1e67509b2537a07ea63db9c1493c3dd022010abefb7b11e86af7502a144c420ccbb675f4612c9704ac254a3eb2c7901986d","0xEb029507d3e043DD6C87F2917C4E82B902c35618",!0,!1,null,null],["ethereum","synth_scrv","SCRV",18,"Synth sCRV","3045022100e2665dce110f4dfaa2fef38975b099ad70507cff62be9156f28c52ce8ce8f086022054e2714691c61b2f328e4a684626f53303bf83da9803badd10c65bad22025109","0xD38aEb759891882e78E957c80656572503D8c1B1",!1,!1,null,null],["ethereum","synth_sdash","SDASH",18,"Synth sDASH","3045022100be72e9ffa10be7b2a67aa629ca5a8ba9f5e6fb8b13bbc9e42d6a5f204e432c1a0220693fa4de9cf69ab3afe1c17ad6be7420fb21e9e4f57e5bfdde3e6438175be694","0xfE33ae95A9f0DA8A845aF33516EDc240DCD711d6",!1,!1,null,null],["ethereum","synth_sdefi","SDEFI",18,"Synth sDEFI","3045022100c8ed1436583f1021089b23685617de190dd29d1d659ec6db68875485d7e113fc02204256f77e4150fcde253d00368a3d2b635ee6b1749309663ccfe90268d5198d30","0xe1aFe1Fd76Fd88f78cBf599ea1846231B8bA3B6B",!1,!1,null,null],["ethereum","synth_sdot","SDOT",18,"Synth sDOT","30450221009d79b67a13b62505d9c4f9405563308d1d9a7ea083ab6eb8415e931d07ceb43d0220244b89e685240b51d8630ad319df482f7938f0f935b35ae1eb8cc081a4f0f171","0x1715AC0743102BF5Cd58EfBB6Cf2dC2685d967b6",!0,!1,null,null],["ethereum","synth_seos","SEOS",18,"Synth sEOS","3045022100ce342724605f8f0cb788977d523b106f6d3ec89f36d4967eea9f18120666c83f02207215fe60b66acc083826ee7048e22e72b6ff7e41f0951d64f277880fa855c9ba","0x88C8Cf3A212c0369698D13FE98Fcb76620389841",!1,!1,null,null],["ethereum","synth_setc","SETC",18,"Synth sETC","3045022100ec644920f2c8045d5342f90888d7f831bba683ba525f56cf8a8eb0fad4bd972102207ac039a29db50585bc4b1c97c368390e5a02aaf692baf59d68515fe86ab58222","0x22602469d704BfFb0936c7A7cfcD18f7aA269375",!1,!1,null,null],["ethereum","synth_seth","SETH",18,"Synth sETH","3045022100a4b41101f45232e4f1da2090aecc57fb66fe3cf2b4cccd363fc5072a990574b502206fdeb416298296b69c5c481a2f4fba8b75ccec79c6a9ee85605536555ef8e80c","0x5e74C9036fb86BD7eCdcb084a0673EFc32eA31cb",!1,!1,null,null],["ethereum","synth_seur","SEUR",18,"Synth sEUR","3045022100dfb0b1e2a3ff06946e280bd7242994935daecb1ee10163ee113efe7ed41d75b4022056680b188edee1ccf618102e1cdedb860f6c0986db10049b0b888af45be27f3e","0xD71eCFF9342A5Ced620049e616c5035F1dB98620",!1,!1,null,null],["ethereum","synth_sfb","SFB",18,"Synth sFB","304402205c81a83bf76b4197660b77404dcc06ee710746ee6d3d47679f00bb794b48ab720220649c7b33f4265dd10d22befb2e40fe294007e2de3e1b06fb9a3a80744d7e4263","0xf50B5e535F62a56A9BD2d8e2434204E726c027Fa",!1,!1,null,null],["ethereum","synth_sftse","SFTSE",18,"Synth sFTSE","3045022100f88f6e2131d1d2fed8e73c0a1f472443e49977ba725b9eee11cd2c19f36ebbdf022054506aeb2175521242ad9ae744adb064ecd2314bb13ebf3bfed0e171ca5fd2a0","0x23348160D7f5aca21195dF2b70f28Fce2B0be9fC",!1,!1,null,null],["ethereum","synth_sgbp","SGBP",18,"Synth sGBP","30440220703b7e0d4cfcbc288ed539e1edeedb35a7196a25bdfa3a5b523ac8c3fd7e9872022056a709122ba2cdc4e7dc084e0a2874de6d2783cc93397d362785ff43b6248e6d","0x97fe22E7341a0Cd8Db6F6C021A24Dc8f4DAD855F",!1,!1,null,null],["ethereum","synth_sgoog","SGOOG",18,"Synth sGOOG","3045022100edf787dd41d3c13a1b6cf88aaab6e7601e049b683e70cb9dac44f4673462188702205b1d79e1e24cacfd78e0080f1eacb767b39b44cb3dc31cb6035d9bb1c706e46c","0xC63B8ECCE56aB9C46184eC6aB85e4771fEa4c8AD",!1,!1,null,null],["ethereum","synth_sjpy","SJPY",18,"Synth sJPY","3043021f1fdb32ae38e765cbf18c8f9c10926c2607014f9e6f239c576b4e635fbda0f002200511ebb86ae6c0b17c058ab0cc26b791bca1ac20eee74ae973fb3e11d124d9e0","0xF6b1C627e95BFc3c1b4c9B825a032Ff0fBf3e07d",!1,!1,null,null],["ethereum","synth_slink","SLINK",18,"Synth sLINK","3044022064f8d86939db88b82f793caab728f4a2d67faa73c921147ceec8b369f03f65f90220116f53e95ac672ad13adc17c22088d28a51568203e86ba69dc964e8cd1124964","0xbBC455cb4F1B9e4bFC4B73970d360c8f032EfEE6",!1,!1,null,null],["ethereum","synth_sltc","SLTC",18,"Synth sLTC","30450221009516ee50fc594bfa9d6b59f7c69a579b2742cdb794ff00ee454edf641de080020220109f706b28d277d0e3b5bc9ed73f82d75cfa63e28009226dde636243e8eccb47","0xC14103C2141E842e228FBaC594579e798616ce7A",!1,!1,null,null],["ethereum","synth_snflx","SNFLX",18,"Synth sNFLX","3044022011dac919448a93a9748a02bd7c17af1222a49b3e34c30aeb4c9f787aa820305e02206ffea38ce7bce4bd34dcc78639bab6f836dddb18ba415e7fae3ea8da68d6ac05","0x5A7E3c07604EB515C16b36cd51906a65f021F609",!1,!1,null,null],["ethereum","synth_snikkei","SNIKKEI",18,"Synth sNIKKEI","30440220342931be12c8c3e8218e25be3f9de722cabcf59261c392a38ffcddae6a8f2cce022046f6424af633445993bb69ae99e78532880fa256815eb9ebcc86bd87ac471b1a","0x757de3ac6B830a931eF178C6634c5C551773155c",!1,!1,null,null],["ethereum","synth_soil","SOIL",18,"Synth sOIL","3045022100d4c4613160c60e54639e64040c1eae63dad2610ed212cdf9cadb1ce5d233a4e802205dba38723fdc35a5f8884e3d417db2d690276c6e1fe0ffcee15bfb6d85a96c81","0x6d16cF3EC5F763d4d99cB0B0b110eefD93B11B56",!1,!1,null,null],["ethereum","synth_sren","SREN",18,"Synth sREN","3045022100d144a033aa46cc5b4d823a05026a590d72cbfcfc241a78ccb2dfd041feab961e022020a3a6ffa6c6e6db3d0d145a24e8734b9449ba36b9889beddc2c5b2a38777058","0xD31533E8d0f3DF62060e94B3F1318137bB6E3525",!0,!1,null,null],["ethereum","synth_srune","SRUNE",18,"Synth sRUNE","3045022100a07ba8bcc0ba3b5bfa893198aaf00d323dcce5be820a3e56d634b5d0f80ccaef022009d518c6adf6dba9b31e0e82f65de9afc6ec5c3963f1ef0a3977d5516eb481d9","0x0352557B007A4Aae1511C114409b932F06F9E2f4",!1,!1,null,null],["ethereum","synth_strx","STRX",18,"Synth sTRX","3044022040943f54d97fcdf734fc9e60e09aafe45121624ca28da06b42cad80f86974880022011aa11038d3a5fddc4bc5c69e58f80ef29d0db1e78b06fbbdf026682b4998c6f","0xf2E08356588EC5cd9E437552Da87C0076b4970B0",!1,!1,null,null],["ethereum","synth_stsla","STSLA",18,"Synth sTSLA","304402202c8f396ebbd0647567a29e18c53e6659beff2b30fca8edb90327c4848e03115902204053b2b7a65bbd9f063e768bc3c682f9a9d1ab78f2309f14271e3fbf25aba8ae","0x918dA91Ccbc32B7a6A0cc4eCd5987bbab6E31e6D",!1,!1,null,null],["ethereum","synth_suni","SUNI",18,"Synth sUNI","3044022072e6d55a5964785514e835237f6f6d6abcf5a834f8a65ce070c83c05aac3b2760220690635c9427db4a9b9dbedc9b2c14da6f5be2f01f402aef1d8f10d70f821800f","0x30635297E450b930f8693297eBa160D9e6c8eBcf",!0,!1,null,null],["ethereum","synth_susd","SUSD",18,"Synth sUSD","3045022100a28db7c04820f5946db64f6bba1aac37c3c9d5b42fadeaec4e146780134a1e4102204c314d531309548d48cd93022b420218b8fb6cdc6913ed62b8cb380a33a12571","0x57Ab1ec28D129707052df4dF418D58a2D46d5f51",!1,!1,null,null],["ethereum","synth_sxag","SXAG",18,"Synth sXAG","3044022036ee796c4417c4b3bef4ffdb0510c713f69cabb4ab65fed26c417bff4face686022031b28524ad66f455c9542981e6046dcf4c341b2ef5e5604ab1cf84aa18aaaf07","0x6A22e5e94388464181578Aa7A6B869e00fE27846",!1,!1,null,null],["ethereum","synth_sxau","SXAU",18,"Synth sXAU","304402201cc40e4baf6836ac16dcc94e49e5dcfc582dae0c831a832a55d31ec7adffaad702205f758cc93bac3e9f4d592808137f388224d3d643cc139dfc0d8a5ca6f80c7aa1","0x261EfCdD24CeA98652B9700800a13DfBca4103fF",!1,!1,null,null],["ethereum","synth_sxmr","SXMR",18,"Synth sXMR","3045022100cfecf64e93fb83a00b96afeb3812ed5e809c0ff5595919c8cc0f0a29dd650e5e02206ce0c147c92864c23cc15555260ad92883c73c69be55c49aedd46a6535edcfe1","0x5299d6F7472DCc137D7f3C4BcfBBB514BaBF341A",!1,!1,null,null],["ethereum","synth_sxrp","SXRP",18,"Synth sXRP","3045022100ffe8519fd01d8a4e7fcd30eecd1d907bf3f1f0b8600e009cfd3f4d097b6b5c8e02204ab57a2a52b4e799db9b8fca036fa663855ebc45ed041d6481457739ddd6061c","0xa2B0fDe6D710e201d0d608e924A484d1A5fEd57c",!1,!1,null,null],["ethereum","synth_sxtz","SXTZ",18,"Synth sXTZ","3045022100de05d00ab55494811498a35af20abd87736c3d9cca3cb28f89e978b2b81af5fe022019443135feeedf26df4fe0cf456588860f1e04d390f607b65a89b8bd427e3d7b","0x2e59005c5c0f0a4D77CcA82653d48b46322EE5Cd",!1,!1,null,null],["ethereum","synth_sxtz_(old)","SXTZ",18,"Synth sXTZ (OLD)","3045022100f17bd01e1865b42990c44d7125bef4b995bdf8864d7bca15414af3ddcaf7f27202201c7ce6547fe52f85180b7dd773139772d0a36287a03a6d932b3c98923a3c22e7","0xF45B14ddaBF0F0e275E215b94dD24Ae013a27F12",!0,!0,null,null],["ethereum","synth_syfi","SYFI",18,"Synth sYFI","30450221008320079440426c027630eb8ec24ed9ce849bb9f4579e72825b7236d53cc000c702206ca7708b4305d78a1896db89f382022b72042f88d531bed69eb838488f271be4","0x992058B7DB08F9734d84485bfbC243C4ee6954A7",!0,!1,null,null],["ethereum","synthetix_network_token","SNX",18,"Synthetix Network Token","3045022100bd9e5139aa174b48549f88f2de7befa57c3ccbb6a0ddc6360e0902384476ab820220223c16846e0da3f037918466d27142f4e5eb43c441ea3167974301e4881c3603","0xC011a73ee8576Fb46F5E1c5751cA3B9Fe0af2a6F",!1,!1,null,null],["ethereum","t-cs-yuga","T-CS-YUGA",7,"t-cs-yuga","3045022100b215fb0a0b995d878e68e1f69bfe8f4cee069b54326b7e24675a047a638e8481022054c87d89c4060437ef24a4895d97be23acf3fd2e427e56375b01a139a34a4874","0x9221729d0FE0cD58396699AeA311C3d2E50C1dd0",!0,!0,null,null],["ethereum","t-fbw","T-FBW",8,"t-fbw","3045022100b482c88f8241607aef0899aadefb46161e3d5708fe917e4efd151e162fcc8d28022007e26f4d759afa93bda1a2522c87ef8ead6f7a126aaf71cc510643da43e9a52a","0xE21a2aEB078cCB5d572861a963d32b1d0Bf7c3c2",!0,!0,null,null],["ethereum","t-fdg","T-FDG",8,"t-fdg","30450221009ea4b9d73255ebb678cdfef44af14400dbe2309e13004cdbea30f6fc71eeb91802203bfdf3aa0431d703e90a064c971824f34df8a4afe06b32f71ce73e401a0f6d70","0x93EFC27f915fc69892ea7D155B66401888954141",!0,!0,null,null],["ethereum","t-nest","T-NEST",8,"t-nest","304402203d692fb563a5eaafaa00c9a5977fb3ea1784343ddf63bbe9ae2ccb0f1ed300790220225cd1b567a78c28ab74a956a9f3547c6e6f661fd512a9c0d103807f12e70c4f","0x9A48c2E3456F9E0242FDedD71929325343d58b4F",!0,!0,null,null],["ethereum","t-pnc","T-PNC",8,"t-pnc","3044022012e9583f956b35e51a3e8339c9ecbe7190a0df7504335c25bbf1c60cd64b8bc3022048168625429b6493e8768ef8cbf949875c54eb1a2c432d17bcf6f767c749e421","0xDB420dC1dF575ae741DaCb7D6F4fF366d0f0678A",!0,!0,null,null],["ethereum","t-tb","T-TB",8,"t-tb","304402200d69d43c9ded0e789f05642043920cafeb006140b20bdde39148c8118587256f0220622742bc5d320b7259b56b26bf0fd884650c5c71946066deffc84c8b11b3381c","0xaAbA82a432AD3ee57F54e9D8DD5C2FB538bD8131",!0,!0,null,null],["ethereum","tacos","TACO",18,"Tacos","3045022100dcd08a4dc1ad16b14343352e6dd7da9ac0c99dd825848c8f333fa2147f2f177f0220263df3e1950c07d76643f39cbf2170a6ee60015b5cb0d4a2759839dd7dee3af8","0x00D1793D7C3aAE506257Ba985b34C76AaF642557",!1,!1,null,null],["ethereum","tacotoken","TACO",18,"TacoToken","304402207cc3597c334221a25f83ecbeebfe5927fc3973bfb5e9ff75ee87a1045df65265022079be11de5e47fb2db50db098d9b3ae3a993ddb2b166376226bc32a47faf50e1b","0x41C028a4C1F461eBFC3af91619b240004ebAD216",!0,!1,null,null],["ethereum","tadpole","TAD",18,"Tadpole","30450221009daacdf46ffd9e0565a63a75adb903744da8738f6e7a8f6b2b7f6d02237df28c02206a4491c265fc06114f19273ac3eb7dd34fae2279aa885014c5092288eb7a1243","0x9f7229aF0c4b9740e207Ea283b9094983f78ba04",!1,!1,null,null],["ethereum","taekwondo_access_credit","TAC",18,"Taekwondo Access Credit","3045022100ae8c89aa3ed4ab2fcd87776982c6e6b42768f6fd06811030939660b398ab056702206289703a91f7e20f754b53a3f4e9d3f8fd2c6a944f1ec5303e06e5e29a5bb9fc","0xDeeB6091A5ADc78fA0332BEE5A38a8908b6b566e",!0,!1,null,null],["ethereum","tagbond","TAG",18,"TAGBOND","3045022100d33c878ab9868383b7a1a2cef847813713c930d13d6237b2847a937c018ef46f02204edb57d0aff5c5ddfa3e2d9ef63fc108abf9fbc2ad581e907632fc5678ad173b","0xcC4aE94372da236E9b113132E0C46C68704246b9",!1,!1,null,null],["ethereum","taiyo","TAIYO",9,"TAIYO","304402205761f0771dd67612c5c1834e27d13aaed1c3ebbdc466599a4cdf258d4d890b3802205f6a92029ee8bc9265d5a1400ea41732e85a35cc6dcc219f531cea459de915c5","0x13dB9034C9CA6cb739887288fcE790544a476f8c",!1,!1,null,null],["ethereum","taklimakan_network","TKLN",18,"Taklimakan Network","304402202b435e084a9d2ff703b90a8ecc59ccb74d0c71e4f5c89ea79ee77c0be54cf09a02201f661923866da494ee711b5f4bc789623d30571e35b4cebd5c5282a0689d167f","0x0675DAa94725A528b05A3A88635C03EA964BFA7E",!1,!1,null,null],["ethereum","taklimakan_network_","TAN",18,"Taklimakan Network","3045022100b900a1eebe36a3e69be38cdc3c6596e50dff3c50c07d7b3bea5637ea48b6afac0220769bcafefab5da3b54a11e6adfc50662f5052740b84a5be792b462d9f5823e0b","0x2C36204a0712A2a50E54A62F7c4F01867e78cB53",!1,!1,null,null],["ethereum","talao","TALAO",18,"Talao","30450221009dea2905b93167ff76ced1e1cea5c086e9998a0aec022b55ac936c5fa9861ed30220218dd7870bcf4f0fc54284fd6a4a329cf8332699dfb64b52b770312097ffacc8","0x1D4cCC31dAB6EA20f461d329a0562C1c58412515",!1,!1,null,null],["ethereum","talent_coin","TLNT",8,"TALENT Coin","3044022060295031d4eb83014681d2fe918bcbaf25bfe906bbf4aecfaac8cb75fb66156a02203c07cd3a3980a0267617c026e80fe6c35c332507d2e2199843473341430e4d8d","0x9f300B4aC0Bf94cAD77e7E2d3F850352b8Bb264c",!1,!1,null,null],["ethereum","talkado","TALKA",9,"Talkado","304402206a35a2fbbab0b856f4ca45a0c9bd892c0766548bb819299e82b03a55d298090202200cd09b68127226a1833ce582a0eb4c61baee299e5b30798e8c7d860a7bb43b97","0x7606267A4bfff2c5010c92924348C3e4221955f2",!0,!1,null,null],["ethereum","talken","TALK",18,"Talken","304402202d7bd410c95881897ce42cd24275a577d674f18c4a56625789eaedad8feaaefb02204f2514fdc8ba98c8d4b39a5e684d46455a8456ba2f233db2d6b13bb49529f50f","0xCAabCaA4ca42e1d86dE1a201c818639def0ba7A7",!1,!1,null,null],["ethereum","tama_egg_niftygotchi","TME",18,"TAMA EGG NiftyGotchi","304402200989d30f24b7e2dd062f2dcad53627fe3d77d1d69998baa5bbe063f40abe6ed002207a9e1dbc1213a00903029708772a2abad09b4d5c2cbeab798b50141721389ed4","0x6E742E29395Cf5736c358538f0f1372AB3dFE731",!1,!1,null,null],["ethereum","tamadoge","TAMA",18,"Tamadoge","3045022100cfc119729939aad8708f123d398c385a14d525bd789eac2b537af3cab92cbc8a02203efd99d54a27259b4d2a36e8dd2b9197e6a1c3a753dd8d247342e651d8cfc52f","0x12b6893cE26Ea6341919FE289212ef77e51688c8",!1,!1,null,null],["ethereum","tamadoge_(0x99c6)","TAMADOGE",9,"Tamadoge (0x99c6)","304402200bfdf9c8bff36a1575f5bded866b4a526272a0dc5906e937cba4692e7767194102204b8a0928a84e643aeb313aeefe29fb927bf6e106e55166c60296ce675d9bcc53","0x99c67eE3b2f77389CAba69E824dCC66f5410C3bd",!0,!1,null,null],["ethereum","tamy_token","TMT",18,"Tamy Token","3044022068784c4e3e50fdebdafdaeb60c279246f8d3849acdd3815ba8f00eb871d65d750220131317ff53d9b38db5524b26032c28d48243788276f51bc82753ada12fc7b66d","0xB9cB7905981198ADd8059114B3b7dc7042B52f7b",!0,!1,null,null],["ethereum","tangguotao_token","TCA",18,"TangguoTao Token","3044022041e7c2d4f88c79cd9671e0bac9721654f86f3125696184b4086c66397fc5cac2022046bd2a0eb39224f9879914d1d2152bba1e409fb4a4f96cd906abe460ba0103d6","0xfA0eF5E034CaE1AE752d59bdb8aDcDe37Ed7aB97",!1,!1,null,null],["ethereum","tap","XTP",18,"Tap","3044022028c9fe7e3d9e6a9843714fcef62916e0d7d37008f16e91f02591f0ae1a0bc0b802203fd1f42e56e9afe2a1eb0a53867f97c727ca9b3b6ddc5149567f9e2b006b6384","0x6368e1E18c4C419DDFC608A0BEd1ccb87b9250fc",!1,!1,null,null],["ethereum","tapcoin","TTT",18,"Tapcoin","3044022057396b2fb0289848cd87f84505ffa168feafe0dfb2bfded0243be2fab48cc87b0220775bb0f339ca111ec046149cf774a926d572fecd3c4eb60878e8b87c3f0b7457","0x9F599410D207f3D2828a8712e5e543AC2E040382",!0,!1,null,null],["ethereum","tapmydata","TAP",18,"Tapmydata","3044022038df937f7794007a6907adadabccffb744d220c010761134a9eb8ebd16a79e0f022000ff4067725ebaae3b66b747cd2434078bd3ca5b52fc383e01e1f612ff8c994b","0x7f1F2D3dFa99678675ECE1C243d3f7bC3746db5D",!1,!1,null,null],["ethereum","taraxa_coin","TARA",18,"Taraxa Coin","3045022100f8cf5784590d9267d11fd09f11d27e14e1baa19489abff74804b3a8e15aef2e1022057a06fca82ebd8d50eff3c86b5c4c9a0722922b0f914653f38e46246d422f500","0xF001937650bb4f62b57521824B2c20f5b91bEa05",!1,!1,null,null],["ethereum","tardigrades_finance","TRDG",9,"Tardigrades.Finance","3045022100bac73fee52b20001f87f0ddbef56db48fc33c5930d4bffa9fd45f77d95743bad02207bc096b0cd4b57380c98e7ba6e79a1aed46a2b610a297598193a6157d44809e5","0x92a42Db88Ed0F02c71D439e55962Ca7CAB0168b5",!1,!1,null,null],["ethereum","target_coin","TGT",1,"Target Coin","304402201845a46373eec7cac820f1ffe822a3bddd048eee4ba6cb61402d8367a069b0350220248d2207c75e866b7b1abd3bdd3585a05192aff99d6f3dfaf3f8ded0b1c2db7a","0xAc3Da587eac229C9896D919aBC235CA4Fd7f72c1",!0,!1,null,null],["ethereum","tartarus","TAR",8,"Tartarus","3045022100a00eed0739cacd1095ac33634b5cd836b5cbde6b3ea16de49a6610459d55eda4022033ecaa34d651c80973ee7fa9a45e019e32a8c681d7490e8a77b9312a073eb32b","0xC567bca531992352166252ea5121e535432E81eD",!1,!1,null,null],["ethereum","tatatu","TTU",18,"TaTaTu","3045022100b47a552f709bf79323bc559fd3da25c91a471190e5d7232cacb1948ddf6bc60c02201d46f51c5e7dbe107bbe9ab234fbb631b6051eb541efe9df887304abc4dba9d6","0x9CDa8A60dd5AfA156c95Bd974428d91a0812e054",!1,!1,null,null],["ethereum","tatcoin","TAT",18,"Tatcoin","30440220216efa6ff1a6c5a9472718157f911054de4fcf7600b6ff08324ab58b4ddee978022066091a244794b337e9d16892bd2c552a9a6730b3a830d6fc6914ee7e9ef71c00","0x37Ee79E0B44866876de2fB7F416d0443DD5ae481",!1,!1,null,null],["ethereum","tattoomoney","TAT2",18,"TattooMoney","30440220056a77e63602f419c5474a3bd0a4f2743ef82d8b7e1067ea8376b4d4462fa07902201e28e54df520dd0a7a347206f53821760d7ce4f64413df0b3f2885b942180793","0xb487d0328b109e302b9d817b6f46Cbd738eA08C2",!1,!1,null,null],["ethereum","taurus_chain","TRT",18,"Taurus Chain","3045022100e3a970fb3c196c3c5f1dd3f6a6b580eeaebcb6dd876b8c78d24281afc7e7d4b302204e76215d691ab0b9a9c70155967aef283673adbbc04ee0d0b0fcd002fddb2a93","0x32054526df40FBB08b733Abe256A8d21De58432D",!1,!1,null,null],["ethereum","tavittcoin","TAVITT",8,"Tavittcoin","304402206f3db83ecb37aec71d5acccd30a0f2e34a78b426d8e1eaa07125fed94ff218f20220625efb4cb1053730ba831b7ee0225bb95d2127cc8ce39f961973210e8e50d7fe","0xdd690D8824c00C84d64606FFb12640e932C1AF56",!1,!1,null,null],["ethereum","tax_haven_inu","THINU",9,"Tax Haven Inu","3045022100ccf2753f2634aa5518f7afc6e37f04ff9712828b9a6a56069cd2bfb16a21b83d022077ea4d793b026f148b470eed6706db7048c8e16ab442624d3a0bc14b2f41779d","0x664C6E221c77313307467B121528ad563107bD01",!1,!1,null,null],["ethereum","tbc2","TBC2",8,"TBC2","3044022078fbe519cbb857397372bdcfa5a7c78112aa47a0e5a608251c32f3e0c03c0956022028776d59aabd29e37baabdd5ca0c84718816bdd1e8214e526fdffe36fb1a4c91","0xFACCD5Fc83c3E4C3c1AC1EF35D15adf06bCF209C",!1,!1,null,null],["ethereum","tbc_mart_token","TMT",18,"TBC Mart Token","30440220768d233c78ff83c21bcbd26c34a2c5b5763f3e07646f8c6f0bc1177288dc42a00220600a39866b9e2f08cb73a420c766a68cb743aa38dde54aef3ef20f96555ef03c","0x6F02055E3541DD74A1aBD8692116c22fFAFaDc5D",!0,!1,null,null],["ethereum","tbitbot","TBT",8,"TBitBot","30440220747fcf088f222fde86fbf04b59955cbfa1b5b80da7b6308fdbd84ddc29340fbf02202ea9c8615b502ebd8d0c561fd3f1a8e23e9a586030a8d66ac173dca718f74d4c","0xAFe60511341a37488de25Bef351952562E31fCc1",!1,!1,null,null],["ethereum","tbone_staked_bone_shibaswap","TBONE",18,"tBone Staked Bone ShibaSwap","3045022100d5fb65356db5fa8c57283a98559c0d07745a31ed11997743b9770c6c7a31e4a002203d49c5cc7d9d3c0ccbec07a43a3facb2dc822b898863e239f174e825cfaebe13","0xf7A0383750feF5AbaCe57cc4C9ff98e3790202b3",!0,!0,null,null],["ethereum","tbtc","TBTC",18,"tBTC","304402207ad6c6a7c30f0369a67f2a8c34804157f3a1533b04c7872779839009c25bbaeb02203402d17c57a737720aceffb760f3947371a2171f34efd6010e10120dc4b0c596","0x8dAEBADE922dF735c38C80C7eBD708Af50815fAa",!1,!1,null,null],["ethereum","tcap_token","TCAP",18,"TCAP Token","304402206a60041984e1bc017b40ba3f47427d0c99b8c79520c71aee523195f91eeabdb6022066bb02846e27837016bb8ae4e1a861766d8ba14ceb5bbfae4a87bb84d60fbfa7","0x16c52CeeCE2ed57dAd87319D91B5e3637d50aFa4",!1,!1,null,null],["ethereum","tcash","TCASH",8,"Tcash","30450221008bd75148d0687b3fb205523def7da378167beb5976d71ae41fe2c03aa464cb9302201df8b2400994b74bfdd2cd350f1933c3930e60c11a6a71458e893479ed47c286","0x7051620d11042c4335069AaA4f10Cd3B4290C681",!1,!1,null,null],["ethereum","tcbcoin","TCFX",18,"Tcbcoin","3045022100b1674dd4f49051e9c1cd17875515c898124ccf355cf526d9eae6f6b4da60647402203d9d1c8d6a14a7521433243bdbddd8cee5270ab22cbc543b7b7ea3062842ac05","0x36dCffe069a3F2878Fab2A46D81e83D462d0cBF7",!1,!1,null,null],["ethereum","tcoin_fun","TCO",18,"Tcoin.fun","30450221008618fc685e62e15aafe8f89c600bc7fb94955eca340f980316ec683bae713af102201c48647bab39e6a99fefbc74684b866ddb72bad0518b78eccaaa39cef994739c","0x00ff902d4B2bfDBD0DB38887412447C30B565aa0",!1,!1,null,null],["ethereum","te-food","TONE",18,"TE-FOOD/TustChain","30440220391fff88fa8c35391feea5b53e218c72b17abfa65c84c640522662f3f301f1a30220601c23442b8ed403f0c30249c02d70dbaccce90caed9ecab5c6563dc7af0a4fa","0x2Ab6Bb8408ca3199B8Fa6C92d5b455F820Af03c4",!0,!1,null,null],["ethereum","te_food_","TFD",18,"TE-FOOD (old)","304402205f0b213e96f4be542fdd291180ceb4992400fd0c6530f6cdba179dc995d6061102205aab566c7699e3a69af1e494d6481e6bb8fe69d089b0584fe95d688dad13e75a","0xE5F166c0D8872B68790061317BB6CcA04582C912",!0,!0,null,null],["ethereum","tea_token","TEA",18,"Tea Token","3044022076160a36eeb928128e2d4b69e43e7456a8390512d6f5aaf6d912e8217149d40c022029a26ec3afd541aa8fcb986f5ea0b09f6b4dd60f1af25489ca977af4ddb8ea9d","0x5dCEd3c2fab61E21B25177c6050D3f166f696110",!1,!1,null,null],["ethereum","teak","TEAK",18,"TEAK","3045022100d0a53c1837678a6eef8f6bda167ff95bae2c5c8ae16ffc3ab286b78de2fcc49502206f3a7967972f6b695cb9d1bbad34651bb7acf736e5cc7a92b81f5d8993cbcfc8","0x7DD7F56D697Cc0f2b52bD55C057f378F1fE6Ab4b",!0,!0,null,null],["ethereum","tealtoken","TEAT",0,"TealToken","30450221008e5b9ba5922b6c0b454505f470f2c81a25bc8fa1e9b9d061d399efecd19f4cd602201acb4bff2ef037931837f21de2b7648f3d2b7b91c16555d31e5fbdbb5920f921","0x38d58B82cB24A3e0410a7991f255174c9FD8093b",!1,!1,null,null],["ethereum","team","TEAM",4,"TEAM","30440220064b13e28b1632f7ac5c2d2f4c7e8b4d979ab82040981e4a988a2fc3556f82a6022026e743ec0f9ef13ca90d48f7b76284007588b9be5c317dfb8bb7c92f37f95b5f","0x1c79ab32C66aCAa1e9E81952B8AAa581B43e54E7",!1,!1,null,null],["ethereum","technology_innovation_project","TIP",18,"technology innovation project","3044022053b14be9a54265f77e04c7bc236a4cac26b49737ffee6cc9d83fadf267ae368e02206bb20f3085f52fc4337da4cda9181a707f9ae4e1f403d0e6232af719d59de9bb","0x07dE533cBC72395C32eB8981DDccD2CC6a6E1c4E",!1,!1,null,null],["ethereum","tecracoin","TCR",8,"TecraCoin","3045022100af3aada7538dbc91b76d14da9b93fac2b7dbf78aeffdcbc455d0541e946adf3102203b55e874c838ca1d429eece6f040c7f6023b56bc3cfde8e379bc98961435bc5b","0xE38B72d6595FD3885d1D2F770aa23E94757F91a1",!1,!1,null,null],["ethereum","telcoin","TEL",2,"Telcoin","3045022100ebe6667ee0d706d1fde8a81e9a0e2e2ea334e8cb5fbfd7d1332ad746bcf0dbd502206a8094623414077283b89498b467488ca406f2c18486c50f0933bf11401c9a93","0x467Bccd9d29f223BcE8043b84E8C8B282827790F",!1,!1,null,null],["ethereum","telcoin_old","TEL",2,"Telcoin","3045022100dd8090eb37f4323812bcb4574febed4b92a489cfdfb2f552273d928f1ba5842602206337c3b176d978eb291fdc9ccd528e901182cd9db50fcb9da588c852bfc95463","0x85e076361cc813A908Ff672F9BAd1541474402b2",!0,!0,null,null],["ethereum","telex","TLX",8,"Telex","3045022100b0fa674d8b194b6e291efdd557582ff97c928cd9bedafcbd15780a6b4f4ae15502201ce562aff5c3cd66fddd821b83e1fceffcac2d036f9b0b14ab2692d794d18e06","0xb3616550aBc8AF79c7A5902DEF9Efa3bC9A95200",!1,!1,null,null],["ethereum","tellor_tributes","TRB",18,"Tellor Tributes","3044022024562e6db4f42cae5870fbbc82426f0e9761abf0f5204cf6202dd107604f8408022056046c9b75215ba041bb73c980333564236e1e83c97e7d6de0e95d9657a4aeb7","0x88dF592F8eb5D7Bd38bFeF7dEb0fBc02cf3778a0",!1,!1,null,null],["ethereum","tellor_tributes_old","TRB",18,"Tellor Tributes (old)","3045022100afa23d4b4c947fd8771d01dc5dc5c56b66d0e12c34527f5240d8cdad14238ce00220643cf909c327619f5be4026e540bd238dfa20823fcfcb8aa375c21934d0ab9fa","0x0Ba45A8b5d5575935B8158a88C631E9F9C95a2e5",!0,!1,null,null],["ethereum","temco","TEMCO",18,"TEMCO","3044022049200e84f15d4f5be04d307cd5788618ef5ac08afc60f65f8f35d405ed01127d02203344c9ddd4d1265b3baeeadf65092275685622fe1178b13a7be61c1533fbbf92","0x2Fc246aA66F0da5bB1368F688548ecBBE9bdee5d",!1,!1,null,null],["ethereum","tend_token","TTA",18,"Tend Token","304402207cac228713d8f9a2ece36d8886a6469e811bb776695e3385d634368baa03a91e02203555697ee465329bb038e189756b0752b0364012b865a158362924879f45142e","0xaaB606817809841E8b1168be8779Eeaf6744Ef64",!1,!1,null,null],["ethereum","tendies_token","TEND",18,"Tendies Token","304402207e5e708051adb93a7e97d404618dfc662e60737307b09fe0c3bacd274c0bd07002204389d30726c8e0eb108b78cbad3f1784801044d1cc345849b3efda3c182aa311","0x1453Dbb8A29551ADe11D89825CA812e05317EAEB",!0,!1,null,null],["ethereum","tenet","TEN",18,"Tenet","30440220436740491d05b9f63fa8b039613dd5ecd29f69f982288cb2b0cfc675eb44a64402205212cbf98c5a2f2d3ba20d2b1f9ce12a79d5f8c4f642d3f1d22ba631b0df0350","0x74159651A992952e2bF340D7628459aA4593fc05",!1,!1,null,null],["ethereum","tenshi_v2","TENSHI",18,"TENSHI v2","30440220204c3ef3b0d6c5a302347d3d0165f297bd2d917e09a72f654136a1bdc604f53c02201de9abec1f2055ac12ea96ace38b5b5ea187cf39dd7f0bf85039e4fe3c841f93","0x52662717e448be36Cb54588499D5A8328BD95292",!1,!1,null,null],["ethereum","tenup","TUP",18,"Tenup","304402200af9a934a3ce8be4ad0fd63f2442864490f742d3055ab695deee0d70d09efb3c0220668232a6cf33cdc151ddb3ddb2c542dcf32f1b0d0cd5f72a79b87450a5c12f9e","0x7714f320Adca62B149df2579361AfEC729c5FE6A",!1,!1,null,null],["ethereum","tenx","PAY",18,"TenX","3044022060b1c76463c5cfef292d0f2f07f54f899bc44d0811953b76f84ca85e0eb683dc02201dc915481b4719cf899da9a7f3a818899454f6de6179583c61527871db4d4b6b","0xB97048628DB6B661D4C2aA833e95Dbe1A905B280",!1,!1,null,null],["ethereum","tenx_token","TENX",18,"TenX Token","3044022042160b20b16372e892a23259923477a1a10064cef299db52b6eb7493311283a102205aac8dcefa8bc40af93d2b81aeee3f7894a9e0cb0f34abc7c5ccbfcdea790f1a","0x515bA0a2E286AF10115284F151cF398688A69170",!1,!1,null,null],["ethereum","tenxcoin","TXC",18,"TenXcoin","3045022100b68fe9b7258c76f088bcf56dfbcaa0f60e2759cc9162885f02319d59db0d37f502205d3d017062de8e77999bdd2e29aa87eb6048ff6f861a91e8d6e172bee448d4f7","0xc11551BB497875050b69A2FDCCC20A53a9a70263",!1,!1,null,null],["ethereum","tepleton","TEP",8,"Tepleton","304402203de1437bf1dc98b83fe2493795216110748c849c9b8f7ffba7856e69d7bf1a3502206acd56f08bcb234f2d6c582f75e15a2f67c3fef14c76c82c2e1c5707e65aa5a1","0x2E65E12b5f0fD1D58738c6F38dA7D57F5F183d1c",!1,!1,null,null],["ethereum","terablock_token","TBC",18,"TeraBlock Token","30440220508d1b893796fd3258c1c7b661e5089559b2f36b02dcfa1ab5b01d8630c7420102203e11290738d90cfaad559eedaaa6dde4880b71eb877c8e1e4ef4394144b157ea","0xa1eD0364D53394209D61aE8bfdb8Ff50484D8c91",!1,!1,null,null],["ethereum","terareum","TERA",18,"Terareum","304402201033e962f91e21c76ece5f16ec2a3dcafe408c1bea8cfc8f113289cbcc37e7ce02207f1e63221eb2c84c4114001268923c529637f899bb1464bef7e70aa248554b06","0x009668A9691e456972c8ec4Cc84e99486308b84D",!0,!0,null,null],["ethereum","tercet_network","TCNX",18,"Tercet Network","3044022016eb92202c9b2dec261c612e544ec21036f41bbb57c9d7c0a39621e9ecedcad00220333ad5ee1f85fa96e1263e5fe68d3055a8f5760fa3257d49eda4170aeba7c5ae","0x28d7F432d24ba6020d1cbD4f28BEDc5a82F24320",!1,!1,null,null],["ethereum","terra_token","TRA",0,"Terra Token","3045022100b0d729882ad7252e1c0b8a0b5f35d3eadb36e38915e4fd35611f1975ee628e8b02207d8d14e4d4180a2df71a4433fa518ddc7837bf59826794ee3cdd87495cfcf257","0x44D2AC65c139168b02f1B2781B606125Ca39eaEE",!1,!1,null,null],["ethereum","terra_virtua_kolect","TVK",18,"Terra Virtua Kolect","3045022100ff7f19fe77a44f3cec579b69b998b8d1b28871feba1a9f7dd1ff04da0c7eb9d002200aa85703932f3e96426be8143ab897b8a8df09231fdeda66f159334d4dacc7fb","0xd084B83C305daFD76AE3E1b4E1F1fe2eCcCb3988",!1,!1,null,null],["ethereum","terran","TRR",18,"TERRAN","304402202b715b762b320299973366d2f167a39a889dd6fa786c2610e83cd9ce6990430502203397f91faf42bbf882a4482977f2c37c3162b0dea6b9edb3b9cff66d9f306c8c","0x490e3f4af13e1616EC97A8C6600c1061a8D0253e",!1,!1,null,null],["ethereum","tesla","TSL",18,"TESLA","304402203bd530e242d203a3e564d135caae2239bc182cd0440086042c610dd8afcf474202206d2007fee91a7af1c4e06b76419d9a2d98109b868d13d462b33c0de2998ffab4","0x03806Ce5ef69Bd9780EDFb04c29da1F23Db96294",!1,!1,null,null],["ethereum","tesla_inu","TESINU",9,"Tesla Inu","3045022100b5fd853f15c81aa18b3bb3390c66e955c6dbd9a5706afc41ab0eec71165963e202202d03ea43c8972eba19d44fdd07a0a84026d313df9aff731839d451c2f99923cf","0xfF69e48af1174Da7F15D0c771861c33d3f19eD8a",!1,!1,null,null],["ethereum","teslafan","TESLF",18,"Teslafan","3045022100883a74a5b0f5b5ded515d283e607e5b8fd3cfbe65674134789edcac63b38cc460220254ce675394f680a82902f9c6323a30629bafcf6d66457c987460e27d72c789c","0x2d5Bed63B0fE325Ed3B865Ae2cdAa3649eB25461",!1,!1,null,null],["ethereum","teslawatt","TSW",18,"TeslaWatt","3045022100bab95b0526bca51f708747e43d95ecc2ee349d164829c87297fc78da54fcc8b9022052512dd1186f25b9d77cb97408c38288f5fd26e1123cfd8f9ee1e4eefc2a7e02","0x6B87999bE87358065bBdE41e8a0fe0B7b1cd2514",!1,!1,null,null],["ethereum","tesra_ai_supernet","TSR",5,"Tesra AI Supernet","3044022069ba40eb02e66346ec50ebe025abe67427dec4fc1db1de74b32794986430fe71022041fa72769a92bc6f7e86085feb0a5d310f661f3809db2892b3bf870831749d01","0x58959E0C71080434f237bD42d07Cd84B74CeF438",!1,!1,null,null],["ethereum","tessla","TSLA",18,"Tessla","3045022100d443278f6892e692b590579205ad9276a8b047a96a83326bdff49da9c354973e02200cf5eb7d8e3908848b9a18c619f8a59a65563714a680739d4138d94409a1abef","0x110FE5f21C1EDd4F03a6e0DE0D96D0c2eED0B9CC",!1,!1,null,null],["ethereum","tether_gold","XAUT",6,"Tether Gold","3045022100878e9494dc8d833a30516f6f8f7c95b711707016e51c38dbe8dc46081ac7de9302205d5b296d0183b7c3a546a9e57ad2f4a829671236396ab6154d6cedf819b5cec6","0x68749665FF8D2d112Fa859AA293F07A622782F38",!0,!0,null,null],["ethereum","texan_token","TEXAN",18,"TEXAN Token","30440220755c7238616caefa05dc223ec086dbd7aab48fd55e59ddd3e56587f8199f590202200f2e5def9b941a875c2fbb0a3a6614c2dc89ccc9f91182784105d06cee5064c4","0xcFCFfE432A48dB53F59c301422d2EdD77B2A88d7",!1,!1,null,null],["ethereum","tgame","TGAME",18,"TGAME","3045022100e7ebbb536a34c12f81df8e21d988652be2e958828cedd70144036bcc1b3b3d2d022028a7883073c3a2dd247f64afdb797f878d96ad1cd15cb81a7b561c3707012f97","0xF8e06E4e4A80287FDCa5b02dcCecAa9D0954840F",!1,!1,null,null],["ethereum","thaler","TAL",18,"Thaler","304402205c048149b1e8ddc166ffa50239ee58bed9d4ac65f614498865d49609e0aa50eb022060d892b4f7336796f1076e7f87b551cbdb9060a0f87565b95752c7558fbe9c50","0x375A08cE3a460F20BbaFd282Be1E3579a2c31F41",!1,!1,null,null],["ethereum","thar_token","THAR",18,"Thar token","3044022026b701a60645953249b0da41a36d45dd2b0b2dc4e9a551ad3e78be24abf742cf02205f8cbd350111e92f0d836ca1b3fac48e8b1e30fd898bda985fd2c38e0b94d521","0x96c30D5499EF6eA96A9c221Bc18BC39D29c97F27",!1,!1,null,null],["ethereum","the_4th_pillar_token","FOUR",18,"The 4th Pillar Token","3045022100c1c1996f6130e9a0b7f5982793022d259e58059794c512d37da306a22cedb90502207ace0c589aed9d9357d66bcb848f88632f99b17ce81bcf37f69001386407b754","0x4730fB1463A6F1F44AEB45F6c5c422427f37F4D0",!1,!1,null,null],["ethereum","the_ancient_order","MASKED",9,"The Ancient Order","3045022100c4663cda29bf789f451a35f4ecffed76787e7ab8b0ba7a610320c5d577e43da102200fc8a49bf1e4ad7255f6850668c4befef352361eeead97f1031c1c8c7d17f0e1","0x8B55BC12D6077380f966122639ae6B6f42cbCc0C",!1,!1,null,null],["ethereum","the_beeple_collection","UBEEPLE",18,"The Beeple Collection","3045022100bf97faec25c332770ab4eede3dd4f305525bd893cae3f3c023915bbb039744de02205d3703fb94ce5c978d932931e2d635b60030271b8c0b4421e91b8a658afcdae8","0xcB4b17b9Fa78Bf1faC6D239e5BCe291035750b6c",!1,!1,null,null],["ethereum","the_bitcoin_family","FAMILY",4,"The Bitcoin Family","30440220709bafe63353b4cb0ae2e7b7538a36dd53050a3d2605b140aebc28e0ceb0166b0220565ca449fae5b863f0297fc37557cbfda58117110eb0acf98e61b5640215c0c7","0x833E4c02c47B7e38f5b9A80b26eb07D23d1961f4",!1,!1,null,null],["ethereum","the_bridge","TBG",18,"The Bridge","3045022100f822b84a31e8181bfbbe699dcd4976fa3c90238529b4505eb4ac3c2160dd0d5d0220053cd5f96cd80a541984fd2480b9a141b4ad1d04c95fb0cad410ec8ac4c68805","0x391612E67b0252E0d1e1460501b41545931fAEF9",!1,!1,null,null],["ethereum","the_crypto_prophecies","TCP",18,"The Crypto Prophecies","304402204e2a4086cc4d048f90318fa77c9f8c0651c3a251a2a0b0d80a50c07304ddd63e02201d5df9d24705cee8a0abeb233acf629d65cc7edc37292c91aece1f930c8a15ae","0x06576eB3B212d605B797dC15523d9Dc9F4F66DB4",!0,!1,null,null],["ethereum","the_day_by_arc","UARC",18,"The Day by ARC","304402206c0ae05b0e551f9b9d6a438b695261ddae959d7cfc82822990d33648bb083a45022066a085e969b71ac9f531eb4ab6f74165753180308229279ad2174b5e5c4dcc0d","0x44440bD68b5E4B1E0cb810669097e9573175601b",!1,!1,null,null],["ethereum","the_doge_nft","DOG",18,"The Doge NFT","3045022100e83c6f1cd482069b009173039352204ef7fa358ec6f35159ac3fee550a10fb7402206b715fbadb3cfe987a3e58d6b74f9a4a9fe20875656a2ade92004dc42f5c67a2","0xBAac2B4491727D78D2b78815144570b9f2Fe8899",!1,!1,null,null],["ethereum","the_famous_token","TFT",8,"The Famous Token","30450221009e37845eb06c2776d072458fe1c0a5bb2c7e0ecaf3033ec5e1237f56300917a102207c9669534e9392033b93ff68acdf92e3eebdaa20d85f0aef81e72522e9f3a3be","0xaeF4F02E31CdbF007f8D98da4aE365188A0E9eCC",!0,!1,null,null],["ethereum","the_fewocious_collection","UFEWO",18,"The Fewocious Collection","3045022100a3d9a5269db1947a471202c9615cc84f15abe21a79cc94ff84f45070266424ea022074e50ca2adecfc44b742d51fd5f74da636e42f00cfa3b18ae9caaecf64a22dec","0xcccF837f40D334F8602f031e64B52AD4CD2b6601",!1,!1,null,null],["ethereum","the_force_token","FOR",18,"The Force Token","304402205d408a3b49b90173a05ed6cc3beeb3a033ea366d9a4af9bf9de5dd103ce00ae802205e41937cd693cfcc721ebbbcdf374237f1119287757acb1b75b044cb127925be","0x1FCdcE58959f536621d76f5b7FfB955baa5A672F",!1,!1,null,null],["ethereum","the_lovechain","LOV",8,"The LoveChain","3044022001f92cb134d395b21708f1f151106970cb0156a090ae705efc9ad61a757beb0502207e584fea80da77c6116bf1c73951bac67093949d1085257d896bb6ee97f17f27","0xE3c864307b5592404431649De541c259497e2BD1",!1,!1,null,null],["ethereum","the_metaonez","META",18,"The MetaONEz","3045022100f5f2e57307bda390a51bfc8396dd2041b6fd7e2b4fec7f4ae590b99b65e5266c02205d71177ee5813b17d3c5093e442a872f6bb9541d32a43c43bef53587265d7127","0xc0bfebA72805F22dC18DdE31467c5a55C16Ff57b",!0,!1,null,null],["ethereum","the_midas_touch_gold","TMTG",18,"The Midas Touch Gold","30440220514a277a15d0c274baa6c4a785feff696e6636a60438782c28484a4493ec4b20022051b35ee36390c89bbb1b83fd5d58eeeb748cf4abeabfa82fa9f5f1dfa11be9ad","0x10086399DD8c1e3De736724AF52587a2044c9fA2",!0,!0,null,null],["ethereum","the_nifty_onez","ONEZ",18,"The Nifty ONEz","30440220533f2d756709891f7563d323396db9523e7696a117ef21e8714f4529bb9bebbd022039eeaac96f0f3c565d12be158a1e0db88e2a98aa12bd613e73a244fde696aa2e","0x12419EEA0B053FfeA92f9afcD7986a495E2CF0Dd",!1,!1,null,null],["ethereum","the_pak_collection","UPAK",18,"The PAK Collection","30450221009b11502c7732f979f1e750644a15ef7de83f42f236a5750750bbcbb6322ac5ce0220169d738cb8c853e83cc49986926889e4515129f37c8e0178ced0fed0c7351cfe","0xa46F33694F5B31a6ed27eDA16Ccd466e94c80f1A",!1,!1,null,null],["ethereum","the_people\xE2\u20AC\u2122s_coin","PEEPS",18,"The People\xE2\u20AC\u2122s Coin","3044022038af919e1cc9f211b753d5aebf37379b039103ffaa3df55112a706d21bec7c630220566bf1091b2af99ab240d6ce27fd255d84e3e17edf5b1fd35573c5cf64efec6d","0xe1030B48b2033314979143766d7dC1F40ef8CE11",!1,!1,null,null],["ethereum","the_portal","PORTAL",18,"The Portal","304502210092397c2de92ba43c187951d4bdf6e72aecd7ce7455f276f921d532a321cb0cea0220165b08ed8faa57089ab0e8b7e9a0fff7dcac7ca0905bd87e0d32c1954175789c","0x1D9f8aB6DD1cF13874efce60FC35DaF801c65d72",!0,!1,null,null],["ethereum","the_protocol","THE",18,"The Protocol","30440220419e3fa8e3381845abe70807f1b1db6d4a2794f99d7a48822a697980395eb4ce02205164f6eb6760e766cf3d9a3f84f08001546a008f851c2c71fcf21f6630627212","0x0cbA60Ca5eF4D42f92A5070A8fEDD13BE93E2861",!1,!1,null,null],["ethereum","the_real_coin","TRCN",18,"The Real Coin","3045022100ab3548e1d41c1b0bd8ca91fb5e41c0377718ce3fba24695d40ea8e9c48eca5940220153a749f4568fd2bf7bb789d4db9e7bffd2aec7b677bb21ad609bf894747fb71","0x566Fd7999B1Fc3988022bD38507A48F0bCf22c77",!1,!1,null,null],["ethereum","the_real_coin_","TRC",18,"The Real Coin","30440220334985622379b2867f40bf2b8f5e283d28ff80c978c98617da5ab9ce94eabe5502206333ef3d03d3ed4090ec850cbe10cb497156facda6d84a8f713bf74bf50e19e6","0xcB3F902bf97626391bF8bA87264bbC3DC13469be",!1,!1,null,null],["ethereum","the_tokenized_bitcoin","IMBTC",8,"The Tokenized Bitcoin","3045022100f321f000344bba65e21539d8193635adafefdc9b74c05fa428817e0d1cd34ea602201a9f23124f7080e9860543fde31abb07452b2c174a6162c247b8e3032b56ab80","0x3212b29E33587A00FB1C83346f5dBFA69A458923",!1,!1,null,null],["ethereum","the_transfer_token","TTT",18,"The Transfer Token","3044022056c4760f0d9224038a2a58afcab95273e72c8718bb2955f9070a3fc2506756e5022071fab6a016e76d69085410a539a120893d348ab7d29466984149ba7648808030","0x2494a68C1484376fEf880b4c24D91f049d29B02A",!1,!1,null,null],["ethereum","the_truth","UFO",18,"THE TRUTH","30440220389fe62a24ee0d55d1831a259c06cde873f08d62aa92360097845a08a4bc5890022004a25df8ec5753037f7a85ec59a2a4da40ec732e9b6b6de8af50db006837b1f8","0x249e38Ea4102D0cf8264d3701f1a0E39C4f2DC3B",!1,!1,null,null],["ethereum","the_world_news","TWN",18,"The World News","3045022100c45a739eed46f0a42c326bba1ad69c5d3f7e00d9487f78bb3ffe29d9c813a8c9022008db0fe2f0b09a0b7f64acab2210a30023fbebeabacc0203401bcf6e5a735fd4","0x2eF1aB8a26187C58BB8aAeB11B2fC6D25C5c0716",!1,!1,null,null],["ethereum","thecash","TCH",18,"THECASH","304402201ec956a9944f93200d65bdaf99e8016a587c4b92e8893b5a211e4da1a759901a02204710dced2689ea09b4826053b616b4b4467d6e8080f079a6ef6102e13fdde39c","0xCd475371E39c0d94e82FCCc9dD0ea710D0dc0C0B",!0,!1,null,null],["ethereum","themistoken","MIS",8,"ThemisToken","3045022100b34698cae76f3f668dfbe6c7813d1c599001e02512f127174db6fee9b6894486022012944db856cadf65079ad1c9f9fa08380af0160dc4dab9b6e73e2a8874bd0f20","0xCD1cb16a67937ff8Af5D726e2681010cE1E9891a",!1,!1,null,null],["ethereum","thenode","THE",18,"THENODE","3045022100e81914a5a0b221f0523e1f2db224a6b8eb15ce910efd9afe38397b4a5dbea34b02203e7a7d4dd523afdfc635e29c5599799c6c24744f9fb9d218186273efc2f6c6b5","0xB4a677B0E363c3815d46326954a4E4d2B1ACe357",!0,!1,null,null],["ethereum","theredorder","ORDR",18,"TheRedOrder","304402206220c5ee562a469ae0e52e6f576638c6356f76ac66c6dda7219af0483b1491ef02203d71c30ddaf78229ac8f7599b8f6e3aefa3a858b6da7c3e1ee4b2853f167283a","0x69FE11b042789bC6E2FDaad064AfD32bb298aE05",!1,!1,null,null],["ethereum","theta_token","THETA",18,"Theta Token","3045022100bfa089ee7f72bb801e930554faf0a55d38e18c7eca72b8d8f68fd9eda578d11c02202b8b62e4246b1a27885a4ac403c67a598ce114ee19239d807844637d047b009f","0x3883f5e181fccaF8410FA61e12b59BAd963fb645",!0,!0,null,null],["ethereum","thetimeschain_coin","TTC",18,"TheTimesChain Coin","304402205373a6cda96a5992446e8277a6e49452bb68de29c453e8138c9033844d3324f5022054e68f71576b14a4ca405463d687edec10e6057a5957f2ee927763ee4db9d81d","0xaFf4ABDc75f07387401ba9bC0f75EBe4c734B4c9",!0,!1,null,null],["ethereum","thex-thoreexchange","THE",0,"THEX-THOREExchange","3044022046114ff1b2224ab9ccaf846b2363643a5c03cb90ddb8a9d402b6d56b84d243b6022018629ba40cfef471782a1a611f08094332a9f55dea5041b7a9e4cb0c5326c48d","0x3204DcdE0C50b7b2E606587663a0Fe2EE8DFb6Bf",!0,!1,null,null],["ethereum","thingsopreatingsystem","TOS",18,"ThingsOpreatingSystem","30450221009d033c9ae453cc2dc3b2219e49f89ccd8f5bb24b9de5203ae9502654c3fdc4c102200e4a24b3c288c35fe3addd9f9910a84889fc96e45fc85a649c350c4be59b5db7","0xFb5a551374B656C6e39787B1D3A03fEAb7f3a98E",!0,!1,null,null],["ethereum","thinschain","TIC",8,"Thingschain","30450221008f65bafb9d113f5d465e212dae3cbaf9878c9a4276e2d949cc8f1f96d7d385af02200d4fe80f6ddaae93ad8539198fddee8002cd18fd87bb887267a86c51d77365cf","0x72430A612Adc007c50e3b6946dBb1Bb0fd3101D1",!1,!1,null,null],["ethereum","thirm","THIRM",18,"THIRM","3045022100d01bd5501226845e93cc0d7fd237b1cc2499e87bf6991b4561b71c55cf9ec657022010778e444275f127a866d5ca7190ea12390ff03b35a5284113ab539b3926919c","0xb526FD41360c98929006f3bDcBd16d55dE4b0069",!1,!1,null,null],["ethereum","thorchain_eth_rune","RUNE",18,"THORChain ETH.RUNE","30440220289e4b0e5caf3b16cf9666bd36579fbfc07a29ccd454e8934274d50de0a04a8102204a0e190629aa0e6c29380fcd3645d327affe578903a35105604d279c9931ab2e","0x3155BA85D5F96b2d030a4966AF206230e46849cb",!1,!1,null,null],["ethereum","thorecash","TCH",0,"ThoreCash","304502210083b32062cceaa761047e1611843b4d6fd4e78f6016b7b21e20d088f4b4329130022056425c47bcea7c92456a0e007241bce42d63323ed15725933f969e4dd4d95621","0xd4560F30BF8Fb1f32546E536256E378d7B759979",!0,!1,null,null],["ethereum","thorecash_","TCH",0,"ThoreCash (old)","30440220299cea471d1b5f25cd4465da4ea0cf9d76cd1f9107f2689cb782b0902dd9cca20220163199f5cc13db84bbf10f9cce1c5dde5bb4cd7071dbd42091473533fe0dd162","0x9972A0F24194447E73a7e8b6CD26a52e02DDfAD5",!0,!0,null,null],["ethereum","thorecoin","THR",4,"ThoreCoin","304402207dfdddb93d25bccad2f2cacbd348fdde941b40eda9402189125d9f950c954ae102206388c12f92f1ffe5e7739bfa1bb2bcf8cfcf6ff0691e2d4ea212599fbe58fbca","0x1Cb3209D45B2a60B7fBCA1cCDBF87f674237A4aa",!1,!1,null,null],["ethereum","thorenext","THX",0,"ThoreNext","3044022048f50e2ce38a469351841120bc441c8fc919ec0b5a1603969bbae43689369371022076abb103cc4bf24ad1381fe7c6412f9f3b604e650d41c8f77cea109f94706d1d","0xf08c68bD5f4194d994FD70726746Bf529eE5a617",!0,!1,null,null],["ethereum","thorncoin","THRN",18,"ThornCoin","3045022100c9202819b8ec46d4db253f8fa6f9cfa36e4a7eb1cc3627851832797c1c3e9ecc0220208c0b3803eef9ebae405daa73904e28406aa96be3a038ce0598db894efdf4d9","0x35A735B7D1d811887966656855F870c05fD0A86D",!1,!1,null,null],["ethereum","thorswap_token","THOR",18,"THORSwap Token","3045022100ce110fd99c5e787a4d82174f2d72e5c3f451008626633d04dfd0446ba1f396d802200b5c4f85ee1e285729948526aab11850e918b451de744216701e18b428079510","0xa5f2211B9b8170F694421f2046281775E8468044",!1,!1,null,null],["ethereum","thorwallet_governance_token","TGT",18,"THORWallet Governance Token","3044022031c76af03029e6bbc53b72e366b9ca7eb2562f46bc1aec6aa44f201647fc867402205d91ac9b92161104bdff347a3213437a2b6d0d852e0ca4f10365a3364c03d3c5","0x108a850856Db3f85d0269a2693D896B394C80325",!1,!1,null,null],["ethereum","threshold_network_token","T",18,"Threshold Network Token","3044022018e56e64764fbecc4892d1b0b4756e3521aaa84dbbb73630c50a48d240d4d99602205ee4ef07ffe21e018dc84d5b91970d291519d0cf17582502eb1273979b516a74","0xCdF7028ceAB81fA0C6971208e83fa7872994beE5",!1,!1,null,null],["ethereum","thrivetoken","THRT",18,"ThriveToken","3045022100a359397b222a7c3ccff8a01bae57d156bf3fbd46fbfbf62b2a915334ef5569c60220040f3647d7fb02214ec0a72e3a1b838fd14e7a2355043a38fc9e592a34ee69ba","0x4f27053F32edA8Af84956437Bc00e5fFa7003287",!1,!1,null,null],["ethereum","throne","THN",18,"Throne","3045022100cab4569583a324bd3d96a5cba9ac5d83017b7c133e4009ef2e2377093a38d75f02202f9392924c26c4efe7f458acf276d6659f4d39871d193f48b22ec1311698f3a6","0x2E95Cea14dd384429EB3c4331B776c4CFBB6FCD9",!1,!1,null,null],["ethereum","thug","THUG",18,"THUG","3045022100d74710959395fd361ec354ba3ab2f5400bca914f4dcf9f1fd8072fced7261a2d02200702516dd6d2a7508e56ba1b6430ea514dc46f65616a036a7bb4e3bdad967ad7","0xfe7B915A0bAA0E79f85c5553266513F7C1c03Ed0",!1,!1,null,null],["ethereum","thunder","THUN",18,"THUNDER","3045022100d46b92d903e57b12f0f0c5ab89fae55004fe1460b0bcfaa622d64ce07d8310240220657a75af4e21c420160776a55993822a0a251454d184b606e3e2e2d24f27a69b","0x43a89815F33747eDBeCC588d6BB7E1c10dDa5599",!1,!1,null,null],["ethereum","thx!_token","THX",18,"thx! token","3045022100d7a81114321cefdc4c31e6467ab7b9b7c2b539aa9c8c96f9b23dba388323024702207a15dc44c8c77c63e8582f80d4b4d629d3b69ac755ff993b322bc8a307c4a5b5","0xA98ED1fD277EaD2c00D143Cbe1465F59E65A0066",!0,!1,null,null],["ethereum","ticket2lambo","T2L",18,"Ticket2Lambo","3045022100aa10eeae69cc6ba36ab56e58408ff98a58e9b104acd19dc73b42b0a7f9357a29022055ba702dc89dd556cfcd7d48d7ae7e62107f5b955b59f687d6bd644932917ee1","0xBe5D345d05dD62828ed61519eF9F7aF76F092248",!1,!1,null,null],["ethereum","ticoex_token","TICO",8,"TICOEX Token","3044022034ae480d10edb6cadcf636141de3f038aff5a671e9fa675ce2fce0ff2f01ef8d02207276414a71ef55a1049cf2043d82c447a469f883bbd59b46b061f8234d059a53","0x36B60a425b82483004487aBc7aDcb0002918FC56",!1,!1,null,null],["ethereum","tidal_token","TIDAL",18,"Tidal Token","304402202783880dcfea8bdc5607cf2e93c323ee4f6ad98426a8757311838ca46e93329202200cb76193427a040bc9842f5d7a45806aea242bdc3ab919a1c5e055d454601a09","0x29CbD0510EEc0327992CD6006e63F9Fa8E7f33B7",!0,!1,null,null],["ethereum","tierion_network_token","TNT",8,"Tierion Network Token","30440220166463fcf303bb1cd0471497c268b87f51867cfcb29891d7ff4197a47967396602206405e03606e5c600a1966eba3d11d93a817d18fdaa6a7f2cedba68c2ec54c0b8","0x08f5a9235B08173b7569F83645d2c7fB55e8cCD8",!1,!1,null,null],["ethereum","tietoken","TIE",18,"TieToken","3045022100d4ec17b8bc0bb7a0defb45feed1f506b734df880ea282976ab7e9997dc46ff230220779c7b493b5b3950bd880c04328202e8a4364c9fdd7f11dea0d31027742936ac","0x999967E2Ec8A74B7c8E9dB19E039d920B31d39D0",!1,!1,null,null],["ethereum","tiger_king","TKING",18,"Tiger King","3045022100bf149dec779813d6eba6efe55249f6e0efd5d287a2490626fa05ac05b65f1153022069cd160aeb3a84641d4429d3dc06b9557a6a36e2f0fc3b8ba7cb4e7d40bd9510","0xC626d951Eff8E421448074bd2aD7805C6D585793",!1,!1,null,null],["ethereum","tigercash","TCH",18,"TigerCash","3044022063b1013d53e29e75a6e71f97f21bfa36bdb758c35556f4074ba64760ebe85bbd02203ba533c285cf90152e700711e1f737daddd5084ea7f032ae0e4921e6b118d93e","0x9B39A0B97319a9bd5fed217c1dB7b030453bac91",!0,!1,null,null],["ethereum","tigereum","TIG",18,"Tigereum","3044022029866761d126a4957c222fb2b1b14f32b2d259d63341c908b14169128c02b18f02206b7ecb18ae70c0b6d22a3e893be29c964657aef88b0b52eb7fc6aa9ff21a346f","0xEee2d00Eb7DEB8Dd6924187f5AA3496B7d06E62A",!1,!1,null,null],["ethereum","tiiqu_s_q_token","QTQ",18,"TiiQu's Q Token","3045022100f01769f927ebd48c2a03c5285e491d5bfcb87e85200c35ee9eefbde6060bd3d7022006a54166117fb8b4da94c6c0e8151198e0de67e94a1f47c97b72f101f02bc2fb","0x2C3C1F05187dBa7A5f2Dd47Dca57281C4d4F183F",!1,!1,null,null],["ethereum","tiktok_coin","TIKTOK",0,"TIKTOK COIN","3045022100dcb69418c3d87cf5b035b1759080c9dd58aa41dc1a71bfbf830791ce755b40fc0220655aa64ebfc4b482fdd9274cf753475fbda0ef583fc9d862b5389f39d9050f1f","0xF4edA77f0B455A12f3eb44F8653835f377e36b76",!1,!1,null,null],["ethereum","tilwiki_-_faces_of_art","TLW",8,"TILWIKI - Faces of Art","3045022100efa22b5ab1c5aab513084446cd7225ee912efa75ac6b085a385e559820c1def9022054df41a2308704558aa78b9d00eca1cf774318c18136db938ee4862b2fdefeff","0x06f3CDabae564B0546529b4DD8FeF1bcD4235753",!1,!1,null,null],["ethereum","time_new_bank","TNB",18,"Time New Bank","304402207f0504f75f20a9f2a4497efdf1b0de8ea15488e818ae2decd2b55cdd5f5b5cee0220777d48a527853512ee1ee88a0260daeaf47b9c39ff29028feee44743e784c7b9","0xF7920B0768Ecb20A123fAc32311d07D193381d6f",!1,!1,null,null],["ethereum","timecoin","TMCN",18,"Timecoin","30440220469dcb6a72b28e0358efcc0ef875acc5a8f9e70d060bdc57b9574dbef1a17ca502206c5a14970d7867248777650ee0bacd4b26dc3e2954ff2c06fa0644708f156d56","0x5D45AA01b73c971c65f3DF409c9b3627b8FE2726",!0,!1,null,null],["ethereum","timeminer","TIME",6,"TimeMiner","3045022100dd6d922d999ab3af0f0e1cd782678c01f63ffc75d47dcc39b3d329f60c7c4c1e022005e2b37822cad1ffafaa4f0130f911c245939351ac5c9426afbd345c7a768410","0xA54C67bd320Da4F9725a6f585b7635a0c09B122e",!1,!1,null,null],["ethereum","timers","IPM",18,"TIMERS","3045022100e2d81a9b4afdec9603ac2f670c404ef3e88dea95c8770c0818e5cee90aa9c65002205909deb73dc0da521c0a16cd49b4269fd229fe409f9408ec3dd0dc4dbc750b0b","0x8fEEf860E9fA9326ff9d7E0058F637bE8579Cc29",!1,!1,null,null],["ethereum","tingles","TING",4,"Tingles","30450221008cc4e89d947ae36e8a27801029c1b8e60174b70a7ef51a187b0004b3f4838e230220128e043bfdfb79a3082241dfb3f6ea18ec5ca825ccec4b6890c5233a3429b668","0xd1B183f425F7E6A0C83aB1cd84cFDE2d84Ba049d",!0,!1,null,null],["ethereum","tinku","TINKU",9,"TINKU","3045022100d07452ec389b95a2d2e06d6e9c12b8a6adb1ea72b59c5c3bb3f3b4d315d26bd302200f7013c0e99dd04c0b6ff949004f0768cce856a0dd067e6c672285bd53ae1c16","0x47FA4B26c1c52Bc35654F98D10Cd61b9f3E10267",!1,!1,null,null],["ethereum","tio","TIO",18,"TIO","3045022100d1e5d4a3fa91a45a37b813b5631de0b880d86df326e860e5a18568386d03256f02203e50ccae69c75e6a1d9d3cf94f12ff78893d1eecc5a1e1baaef1402967c3f3b2","0x80BC5512561c7f85A3A9508c7df7901b370Fa1DF",!0,!1,null,null],["ethereum","tiox","TIOX",18,"Trade Token X","304402202ad0af829da31e34dc6b5d944d281998d54d87e469619b3be58b5830af320766022073a29b579898611709d9390b9ef75f141c223b4853ff96d1c1d832b51c6fecd3","0xd947b0ceab2A8885866B9A04A06AE99DE852a3d4",!1,!1,null,null],["ethereum","titano","TITANO",18,"Titano","3044022002f1b5079b909a0f590378fe4508e5c05a9e4e85dbbfdb1e396dc2de4de7670d022055324b70243855c6b08be8005753d3296bd90e35e4c65e2c6aa863a1c468a6fb","0xBA96731324dE188ebC1eD87ca74544dDEbC07D7f",!1,!1,null,null],["ethereum","titanswap","TITAN",18,"TitanSwap","3044022014d6b51b63dc25f10ef6ee67f6207954ea228256fa5244d71a700d7e4966a61002204092e997f0a3a835cf662292c8960b14d5975ae1c637b4f98944e30fe43c7308","0x3A8cCCB969a61532d1E6005e2CE12C200caeCe87",!1,!1,null,null],["ethereum","tixl_token","TXL",18,"Tixl Token","3044022051fe79a13438078a768ddb2cb958bd81daf0df41da770b1188f3aaf94342772f02204ee07ff3be685340e7b546bde9003f3ce14f87393489ce6c043098fcb3073fa8","0x8eEF5a82E6Aa222a60F009ac18c24EE12dBf4b41",!1,!1,null,null],["ethereum","tknt","TKNT",18,"TKNT","30450221009061d04ac8dd7634458dfaa5fe5e239391aca23dc7da2a3c991a2fea810741ff022051ae047a91c4584f3b0edf0b14976d6d96f22b9ae46614053ff47dbf1137e990","0xbcE7BD79558dda90B261506768f265c5543A9f90",!1,!1,null,null],["ethereum","tkrtoken","TKR",18,"TKRToken","3044022061323206caee2cbbb8e89629de00cfeaa608263b31f356ea555b2767e24e88210220011273fc304b898e972d2a9abae93c409565ff43860c925c886cf66b94b0d9dc","0xB45a50545bEEAB73F38F31E5973768C421805E5E",!1,!1,null,null],["ethereum","tls_token","TLS",8,"TLS Token","3045022100e4cf1ec65ea493f3d5b136e87dc8ceb8c80f9c926ee4a8f3cf44b192e8b1fe0d02201ca7a1002cb4594b4bedf39c1f742643ec10eedd8543bb07966708686c9d291c","0x4AFAdB32b8fdB334cF9f20AFb476A06c1F5b111A",!1,!1,null,null],["ethereum","tmc_niftygotchi","TMC",18,"TMC NiftyGotchi","304402203b20466f3775ec1c03d47ef25cd09d6d661c0f99a48aa778e3d4e851442e9616022075a91b30c5fe3eb1e518e71e11c4b8ea2551a4ff909562c61c5af07e0e4032c0","0xe13559cf6eDf84bD04bf679e251f285000B9305E",!0,!1,null,null],["ethereum","tmc_token","TMC",18,"TMC Token","30450221009cbd372bcb316fe16e6d18c56c1079ae5a2c6e2974c80f9e1e838a9e99f00bfc02202ae73139b9a0811cd1e9137aadece6c2fdc2a87b8fd13ba4512c6da088658a92","0x1c153BADb7e54AbcdCB65f0A09fCd6f10dE36aA3",!0,!1,null,null],["ethereum","tmed_token","TMED",18,"TMED Token","3045022100d37ec0e86d3227997360b002ba3d9a917a775d43f0ad9a4fc08352afb6a2e9dd02204bca1897070c3bf975eea759e4cb9692a9aab575aaa460625725668689751e21","0xd32641191578Ea9b208125dDD4EC5E7B84FcaB4C",!1,!1,null,null],["ethereum","tnc_group_token","TNC",18,"TNC Group Token","3045022100d55a5cd30b222791867b765522f4c1783ec04df14ad39e9811392938e35ea0d202201b76fbb4766efface2704f05e577295d65bbb12a09432db6c4254cf66fc54d6d","0x39e743fEE400a5D9b36f1167B70C10e8F06440E5",!1,!1,null,null],["ethereum","tnos_coin","TNO",18,"TNOS COIN","3044022052cda42008dace98bf40969d96d886445d6ab558c7e9358df2dae5b38a0bc17d02203cdf60a18d03e4cb2687adce826eb7b321dc37273e17d3a15a0b1863fd1aa291","0xAD6683b7f3618c44F5CA6040902812Dd890DdE4d",!1,!1,null,null],["ethereum","to_the_moon","TTM",18,"To The Moon","304402200d01ff9ea20072049aecfc207a3fbf889e518a0d6558e0c68c942c4b29ddbba202207cb9e9f783f012a70a2c08064f5f25590b17f8b173d2f245b0f6e9ee473cfab6","0x714B1fDed61090a6C49Eb0B4D088B8e5EBd64e61",!1,!1,null,null],["ethereum","toast_finance","HOUSE",0,"Toast.finance","3045022100c3135826df456dfbd37ecffd1d0e063dfb2a916b7c8f13e140c1624a400f2c820220449bc48c40fee41241108350d23c17936bee1814189dcb076d35f3a7f4409801","0x19810559dF63f19cfE88923313250550eDADB743",!1,!1,null,null],["ethereum","tok","TOK",8,"TOK","3044022026d9792c24dc7fb66f9be798dd0804eddd29f6b350efd239bda5646461e1f4e2022063045ff9494fda809e3b625933872f8b67f08454c1645705cf2b163f5b39f4aa","0x4Fb721eF3Bf99e0f2c193847afA296b9257d3C30",!1,!1,null,null],["ethereum","toka","TOKA",18,"TOKA","30440220291123f6239fc40bd98e4f932089d319eb77890c90db4aa2092e2d37154f214e02202300230fe00ed826db398b282b5b1aa1a9d8bb0e1ca92d3f06360bc93b9d5dc7","0x4ca819d706eE515C81B11651Bf1a902344223D04",!1,!1,null,null],["ethereum","tokamak_network_token","TON",18,"Tokamak Network Token","304402207ecb2d1021c528be02fd7fcde0415a6460f22a3e9d655a5d42122b2726eba40a0220267b5f60664e34ba2c057cce444c668a62b52cc0dfeff7af7fd3c04242883ca0","0x2be5e8c109e2197D077D13A82dAead6a9b3433C5",!0,!1,null,null],["ethereum","tokemak","TOKE",18,"Tokemak","3045022100c22267a859d9ffa37f5ecd41e628d53881cfd40ee87125dd46d46676a44666f602204dff54c39f8d620b131fa5342d74053f4b341e08b0be0addabf7da829bc89772","0x2e9d63788249371f1DFC918a52f8d799F4a38C94",!1,!1,null,null],["ethereum","tokemaksushilppool","TSUSHILP",0,"TokemakSushiLPPool","3045022100e1de6fb892dbf3cf5faf423464d32e281c6b6d417b4fcf09fba713ca0ad3502f02204ace786d77c7518e7d3918b1e325385dfd1bc2cb6e2f2cf4ba0dd9dcd50dbfc1","0x8858A739eA1dd3D80FE577EF4e0D03E88561FaA3",!1,!1,null,null],["ethereum","tokemon","TKMN",18,"Tokemon","304402203141ba76df362419873b77532aa34a14fb22ca116cad9b64f821610afcb6018d02206518fc70aa105108caeb13b481812d8465c0f8384fa5e7ee6dd79dc5f2a68989","0x2b5016CeA1C425f915E13727f7657025de3208Fe",!1,!1,null,null],["ethereum","token_1337","TOKEN1337",4,"Token 1337","304402205b0b888f645ffdeafbf520af46987916055b4c83a851fc43dc838ac87d1b2cf402207ffc4a6257683fadfc45cc692cd490edd0cf8b80307cdd5c018f8d87310ecdff","0x35872fea6A4843fACBCDbCe99e3B69596A3680b8",!0,!1,null,null],["ethereum","token_as_a_service","TAAS",6,"Token-as-a-Service","30450221008dee5de36939826246d3f6b635558d55f620b432337846de6af45a04030297b70220518c5cbf51a5b2f25497e18c35246e42d4c4cd47a3a5da65357063d299713589","0xE7775A6e9Bcf904eb39DA2b68c5efb4F9360e08C",!1,!1,null,null],["ethereum","token_care","CARE",18,"Token CARE","304402201aee54aedced5e163a4f51e5f37093675be94983a76e53d04ec55d05cb8f759b022009c7d488a812bcb81de35c2526688a464722248a0e07153f443e300518cb64d5","0xbF18F246B9301F231e9561B35A3879769BB46375",!1,!1,null,null],["ethereum","token_of_power","TOP",18,"Token of Power","304402204dd44916cc7ff1cf24456e2b11a8cf8c3ab02fdcfb004d68d92342d39c00db6a0220340b46ac5ef88437bd24d10391e5e3f4b2df02be77e48bb2ed5f064cdb024044","0x0EBD5eC91680d3B0CEDbb1d5BB61851154D3eDb6",!1,!1,null,null],["ethereum","token_play","TP3",18,"Token Play","3045022100e9ec5757890ba1e6cb4bd47ff0326b2854b039d368c2a5c6af6a163fb3a1d35202203a24da46198648f767d4ec48df8d10f94c25e62817a60d4e2b3a0388ce96de42","0x9F76Ff3336597FeAB30f5A66a053ae4A4a7eBe13",!1,!1,null,null],["ethereum","token_prometeus_network","PROM",18,"Token Prometeus Network","304402206befc60a92a1b74c9955a6e4cd270bd9a4038b5aac3657708a3bb14b17c50f18022031a5f42bc8b8f244700d52e957df1084fa0fe8e6142537878a24fff0a41cd6be","0xfc82bb4ba86045Af6F327323a46E80412b91b27d",!1,!1,null,null],["ethereum","tokenasset","NTB",18,"tokenAsset","3044022037531dedc25033cf1674aa0fca86bb8cc41e12d7208a038f1115b645c42c2aaa02200b50d9fe50379fb6da104f84f5f8a7053f1dde517c1aadcd5681ceb13e891fa4","0xbE393AA534F82c0ffAC31BF06A23e283AcB3352B",!1,!1,null,null],["ethereum","tokenbox","TBX",18,"Tokenbox","3045022100f96d8b825c446453ccb015980624f18c547840e8e160e8393be9a09c73ed0da9022004a7c47e9e7f634199133e3564cb5430b4fc2180df2a5633e5c7910210ea8b7e","0x3A92bD396aEf82af98EbC0Aa9030D25a23B11C6b",!1,!1,null,null],["ethereum","tokencard","TKN",8,"TokenCard","304402200f2367216cee9aea6d32ab8ab9555e96e78dda846368b15a4fb5b36e7d76848e02201c70d2de2087e581557582315028f91076f38e87b122ab2184b434d3e741ca42","0xaAAf91D9b90dF800Df4F55c205fd6989c977E73a",!1,!1,null,null],["ethereum","tokenclub_token","TCT",18,"TokenClub Token","3045022100aaea5c6a5140b9d007c44b20b518acf004ebddab14c94ab3d97465558c4d274a0220546c6b85457febf9d3f03f3610dd4a9cb3fa08ded31d633a637cfa005fe88670","0x4824A7b64E3966B0133f4f4FFB1b9D6bEb75FFF7",!1,!1,null,null],["ethereum","tokendesk","TDS",18,"TokenDesk","30450221008ce510c32934aab412b496078359b97c9ba11ac1669dc0f02d24e746f6b7a0e602201ba503d95f1b3970f3fb220e4ebb38fe8e772e81d0c24f67d706689d4eaba3df","0x6295Ab2BE04A617747481B292c390BfcA592Cf28",!1,!1,null,null],["ethereum","tokenize_emblem","TKX",8,"Tokenize Emblem","3045022100984eb7c19c2548ef8729e80e62015ed09071be22e97681c64ab79023451a3b3e022009509c6cdfcaaa99cd12771bd60bc8582b96b4feeb14c1d1e4621ed315d15236","0x667102BD3413bFEaa3Dffb48fa8288819E480a88",!0,!1,null,null],["ethereum","tokenomy","TEN",18,"Tokenomy","30450221009c59999c679d1361e429f9dd34de549c392da6ab0e21818c2aa4f504292bc2a80220341661dfdff4ff6810bd85edfa7a9444a5f603502386fb13a6c172e21978c348","0xDD16eC0F66E54d453e6756713E533355989040E4",!1,!0,null,null],["ethereum","tokenpocket_token","TPT",4,"TokenPocket Token","3045022100a7dd71e86799cfefd34e5867d9d23f80130cb1e48beb5ee90241db3a1235906502202b7d6876669606c68b213704db58c196ef6b9cf4a884afee66967a27773f6aef","0x4161725D019690a3E0de50f6bE67b07a86A9fAe1",!1,!1,null,null],["ethereum","tokens_of_babel,_price_is_god","TOB",18,"Tokens of Babel, Price is God","3044022049ed9d5afed4055610e33c2810690b42b6083a9d6d2b712ab734d5c83996ea5e0220587d445c9a941ce788019eea97bfb8d1b4ea9d8babe36c7f3712308b4b85d777","0x7777770f8A6632ff043c8833310e245EBa9209E6",!1,!1,null,null],["ethereum","tokentuber","TUBER",18,"TokenTuber","3045022100c6a7e519880aee022d84b6aab08f418fce7a7ecab8addb6d2c8148071ebdf2bc022042a715d92684f3f5e108bdaffd410f365ab860e2651d464085f0e7103940bc88","0xd1766A85B0d6F81185782dC07F15326d63C3cBaa",!1,!1,null,null],["ethereum","tokia","TKA",18,"Tokia","304402202a64993895b9c51ab605e9c68b10a6db91b439c7ec6337daf41ad6b8ec72d07502207e4f5e388594a8502ff2c3852d02e868341e8a06a5a57ceac672d07862753b42","0xdaE1Baf249964bc4b6aC98c3122f0e3E785fd279",!1,!1,null,null],["ethereum","tokoin","TOKO",18,"Tokoin","3045022100e12cab4521eddc1e2210f07284aa76aa9ddb2238e86ef375e01603a10820eeba02203263746f7e202f7e456047085fc35c36c58c098861677264de1599d0f1d3c550","0xa0F0546Eb5E3eE7e8cfC5DA12e5949F3AE622675",!1,!1,null,null],["ethereum","tokok","TOK",8,"TOKOK","304402204f7548d940733c147237004a9f9f2513df5244a9b578b52554f0823499071cc00220489f99e5de6a8792d0b1a473bcd26f4bf3f247a11379f84f79ca97014e4bdaf0","0x9a49f02e128a8E989b443a8f94843C0918BF45E7",!0,!0,null,null],["ethereum","tokpie","TKP",18,"TOKPIE","3044022047790545fbde976239fb56cb4fc597cb6f0d89abe7346eea13a00e97a3187bb20220366d36d1b65f526b10f0ca23f730f97ee15b863e84327278353823ac356df1ef","0xd31695a1d35E489252CE57b129FD4b1B05E6AcaC",!1,!1,null,null],["ethereum","tolar_token","TOL",18,"Tolar Token","3045022100ca379868bde78acf2c7bed8b5e443db2737fac4289a94cc804fc3564ea949534022035e3af10aa4ff37793513c26eaab242155ae60eba9f2ac9d8972a1b5aa644bd2","0xd07D9Fe2d2cc067015E2b4917D24933804f42cFA",!1,!1,null,null],["ethereum","toll_free_swap","TOLL",18,"Toll Free Swap","3044022058ce38672ac3f945f580b28d03c8795f32ec967c0608794236465badf48926ba02205b3cbfcddd19cea5d9da0602346984b7f036837a513590243bfa7134c5586e68","0x609c711783295209d9f33F535A7cA55B8FF87Af2",!1,!1,null,null],["ethereum","tom","TOM",18,"TOM","30440220318cc8c306b1ff5e08466326f04bad0ac5010beee21dc8a1159cd178c14dd26002201c1346de2a28483c96cadc18d24cb2d8539d226421a85dc4a8c55224f811dd4b","0xF7970499814654CD13Cb7B6E7634A12a7A8A9ABc",!1,!1,null,null],["ethereum","tom_inu","TINU",9,"Tom Inu","3045022100d6087c2437f7c0b785357fae8d012d6af5a55c675183a55af3694dbc1333a0c9022035a5d0b682a475ec8770d0fe95dc63ab68c3ec0001a41955326d4a00e60e4170","0x2d0E64B6bF13660a4c0De42a0B88144a7C10991F",!1,!1,null,null],["ethereum","tomatotoken","TOMATO",18,"TomatoToken","304402205ba0411842cd3689ee6056d9565440b9e2848359d7ec444c40405c726941998e02206a248eadddf2bdfbad92d1ee9a572542be1caa1305972f9f685d53dad5649737","0x82bd290afa5cC1b75F46822fEC415E2be51D7D46",!1,!1,null,null],["ethereum","tomobear","TOMOBEAR",18,"TOMOBEAR","3045022100f22d3e95faa595e23c489f8134ab2c3d36d872d162c4b322eaf6066aee14b28602200bb6cb65465fb30b5ef8d721364f9f01a1445b17917dc142df87707532687753","0xA1653CB37852249e4f18dfBc473a5cE3F88Fa6aD",!0,!0,null,null],["ethereum","tomobull","TOMOBULL",18,"TOMOBULL","3045022100c54eab46252b6f7108a7c0aa7cda5544c2b3da0518007c4d35b980dfb994de2b02204bed674cf0c202f6d32c3a0fc2b43f4e51970ac4cfc42ddb30660b3ad0482723","0xa38920C00D1a5303dB538A3Ea08da7a779e1F751",!0,!0,null,null],["ethereum","tomochain","TOMOE",18,"TomoChain","3044022039a83d1132fea8418e40124c1001690b6601bf7bdad7c0a8fea8717c38fe5ddb0220601a66d6185dfd5f6ae8314579fca276a07f8c1f7a2dbb54661a02621e27c701","0x05D3606d5c81EB9b7B18530995eC9B29da05FaBa",!1,!1,null,null],["ethereum","tomocoin","TOMO",18,"Tomocoin","3045022100956db36340910ace0f7f820e0abf6aacd5ae31599d5b55c609030f3d23c5a671022071e549e33afe6cef0a2e4a43bd9449caa369184341792fe53e126934c278c94f","0x8b353021189375591723E7384262F45709A3C3dC",!0,!0,null,null],["ethereum","tonstarter","TOS",18,"TONStarter","30440220464dbef48dc40010c4bd2d49a10705237e4773db9455035ef42f95b50f37850302205f7da32f38071b85408dd6a93b329a94e0ba521a8b01ec19c0fb3ec520b0b2c6","0x409c4D8cd5d2924b9bc5509230d16a61289c8153",!0,!1,null,null],["ethereum","tontoken","TON",18,"TONToken","3044022079218cbf3775ccd74dbb20e4c630aaa055c48d3d72aeb49fcaced1ecbd5d7e360220357c5c50ba28bf97c8605d1e19940eb31fa2a1488b114fa7c10cd950e057444e","0x6a6c2adA3Ce053561C2FbC3eE211F23d9b8C520a",!1,!1,null,null],["ethereum","toorcoin","TOOR",18,"ToorCoin","304402205eec55c0a380753539f11a02af58dfcb7ac1571f32dbfbe62ec49768482fe49a022079ca4d5a5e8d95702173925a9152af498e8143b256a019ed969eecc32f702f5a","0x8eb965ee9cCFBCE76c0a06264492c0afEfc2826d",!1,!1,null,null],["ethereum","top_dog_beach_club","TOPDOG",18,"Top Dog Beach Club","3044022039ad17fb595419f03a472d2db75b54081da323a5dfc7697b5a36145d27213ce1022020c12fcfc9d870e2ffd72b44f92e006791c3ff550e25f289990f9ae2e0e6c3a5","0xc57bAa24F72037C21f9c0d345BB6F19f47407447",!1,!1,null,null],["ethereum","top_network","TOP",18,"TOP Network","30440220290bac97777e241f9f4c83d6feb0499094c96965ab558b2cfac7fcbc40626b9f0220398aef59345603e7dd250dfb3410ac4449bd9e7c4ede046d3207a990603c4765","0xdcD85914b8aE28c1E62f1C488E1D968D5aaFfE2b",!1,!1,null,null],["ethereum","topbidder","BID",18,"TopBidder","304402207fd91badb90471313ba7c0bc601b4b4732fb39632bb3d7ecdd17cd2ceb2d194902205a9c2bc9b16d540aec060bd49fb3758cb446cfb60923607e7f74785c1e899ce2","0x00000000000045166C45aF0FC6E4Cf31D9E14B9A",!0,!1,null,null],["ethereum","topbtc_token","TOPB",18,"TOPBTC TOKEN","3045022100c7b49f70f13cce24f0ce03f147f75550b4575b14d3b78cd6bf3249a3575ba2bc02204444d7c9d500582d68e5cd8c12cf4c9dbf363ba9f99e724961cab8c7ee85aac5","0xF6317DD9B04097a9E7B016cd23DCAa7CfE19D9c6",!1,!1,null,null],["ethereum","topchaincoin","TOPC",6,"TopChainCoin","304402201c49d5e24a00008365798e80a5ffd6b6fe8efdd0f901040325a65d53a324534e0220180f49d11ca67c5c30360f90152dbea3085ccd8538aa33c3fda917ca12741d0d","0x1b6C5864375b34aF3Ff5Bd2E5f40Bc425B4a8D79",!1,!1,null,null],["ethereum","topinvestmentcoin","TICO",8,"Topinvestmentcoin","3044022018b5c653bdb11e12cdf620f02176a9943486a6cb8a8cdd26dc593fae46e6f88502206dcbbad88446b3395aeb77dd9aac10eb9154db57af9d58120959ecc3bc35e463","0x7F4B2A690605A7cbb66F7AA6885EbD906a5e2E9E",!0,!0,null,null],["ethereum","torchain","TOR",18,"TORChain","3045022100e27f5315b0e3694b9053ff35a8afe86f26b198c180883d52dbf18932dd7f67ad022012eeec3f4e8afb218710282db45a816611e2571757fe8710f2d56ee79c2d06c7","0x4f5f2EEA4ED3485E5e23a39704d5fD9d0A423886",!0,!1,null,null],["ethereum","torex","TOR",8,"Torex","3044022077fa71c0e906253cab513bc61aa5f1b6c038f8e9dd0126cdf70ff66a9bd8d2de02203272fab6cfcca4c6a5c830c62db653e31b161ffe6c969c770da4d4264e85fa74","0x9ea20fBFAA44efBc60C6728fCdBA17f01b7E04FE",!0,!1,null,null],["ethereum","torg","TORG",18,"TORG","304402203e8da5fe3f9105ffb9681f18f36ba01d7f4a5a878b775e73ecd675e873c1167802202ec9e76a1b6428a5ba12aaa7c5eaf069e7b490f9e834fddab9fe703c441452b4","0xCfa0885131F602D11D4DA248D2c65A62063567A9",!1,!1,null,null],["ethereum","torn_token","TORN",18,"TORN Token","3045022100b1e46686a13492cf6601b9fb086543c81e8336f95ecfe4dbdcf1f2d9dfe8925702207acacc0a7eafc942fb230dd283d03aeba8ccbd4a049913719274350bab86c133","0x77777FeDdddFfC19Ff86DB637967013e6C6A116C",!1,!1,null,null],["ethereum","tornadocore","TCORE",18,"TornadoCORE","30440220247f5c042f63abc37da463115c23cfcfd53a391335d2bbb71d1bd89ff1be4d300220658d10a57de27aea769f3d7b2cbce4868fdbb172baefad2b70b4b48aa4860004","0x7A3D5d49D64E57DBd6FBB21dF7202bD3EE7A2253",!1,!1,null,null],["ethereum","torocus_token","TOROCUS",18,"Torocus Token","3045022100fbd0a4ce176e5999fee10ad2da15486e1b4162cccbbe04814a3108a908998f4a02204e6ecc99241e62ac4ed2634f1c3b1b41859a3a175ec0f8e143bed5cb3d097009","0x406ae253Fb0aa898F9912fB192c1e6dEb9623A07",!1,!1,null,null],["ethereum","tosdis","DIS",18,"TosDis","3045022100f632af2b8d7c4ffa054cbfbfdb1a0fbd873625eca061a0ac374a481403dfb92802200d98570087a0cd67bc44adb249c52cda9589023f82c7b2b38f08e5f5308f89d5","0x220B71671b649c03714dA9c621285943f3cbcDC6",!1,!1,null,null],["ethereum","toshi_token","TOSHI",18,"Toshi Token","304402202d555f1c473925dc12ec43f7c41bfecf8c64d90477bc6403217be8dd4af617b902202d966447ebe23944da0aa57a87c8af6df953bd2ad7a1d4fd8680101ec496fb7a","0xF136D7b0B7AE5b86D21E7B78DFA95375a7360f19",!1,!1,null,null],["ethereum","toshify_finance","YFT",18,"TOSHIFY.FINANCE","3045022100cbd634b82329a7fa6aed4cf2fb911db258901dfacbb161503e4dbd4b99c7331402200e5698b00ef6fe94c7ae927ffeea0016cf867eeb6a17eecefcc07dadc97f515d","0x9cD39dA8f25ec50cF2Ee260e464aC23EA23F6bb0",!0,!1,null,null],["ethereum","toshimon","TOSHI",18,"Toshimon","3045022100fa61ce00c12cf0b1d6e8bfd1abe664dfcb0d59778a0466ceaeec7320568b4544022028a60d845d3574edfed1d70028ca5774aa98eba35752276d41891ecf969a5d28","0x1b9Aa0b63e0F025CD544E4d350ed81429b43b724",!0,!1,null,null],["ethereum","totem_token","TOTM",18,"Totem Token","3045022100b414896df487188d07e8a563cc29a31f988f54cc1bef342bcf23bae786e1eecf022024a876f63f498f4f8748b79b0c5cc887ae848c59c9565e202525be0406d8d70e","0x6FF1BFa14A57594a5874B37ff6AC5efbD9F9599A",!1,!1,null,null],["ethereum","touch_smart_token","TST",18,"Touch Smart Token","304502210082a77ceb38860924b78ea3f4c4a41626d99f5895ba6cf44a25e17a8d080febb802207ee2a059ed3510af93180b520859f6f8609d297266c2b5dd1df9971e89e5de02","0xD9baE39c725A1864b1133Ad0eF1640d02f79B78c",!1,!1,null,null],["ethereum","touchcon","TOC",18,"TouchCon","304402202c7859fa8315ce5240811391c8e241e6d3c96655faeabede79a3952e2aba4cb70220442bb448568bc4f2e2be49b6b803a8b8bc373e603e85d3f36c3760a16fefdfde","0x549905519F9E06D55D7dfCD4D54817780F6b93e8",!1,!1,null,null],["ethereum","touristtoken","TOTO",8,"TouristToken","3045022100e72a3bcfe3a46913a7eaf56c70d612aac2464588ddfae91e5fde75274efcd6850220783498bb1f789d27f712e1ba02e43974792be1f9f981978852df093e1606300c","0xe3278DF3eB2085bA9B6899812A99a10f9CA5E0Df",!1,!1,null,null],["ethereum","tower","TOWER",18,"TOWER","3045022100834c00d83a7c2a85aed647e67327f06a56829ea8217880320f27324e93ca0df60220445c39ba15e76f5aee2f30950002b78f88b2895902d28855de955ebce81f6871","0x1C9922314ED1415c95b9FD453c3818fd41867d0B",!1,!1,null,null],["ethereum","towncoin","TOWN",8,"TownCoin","3045022100bb981e6400345cbeb093a45bb752b38f5baf85f96c2efa67eb6ea06a43ee07f2022052e395b12315a494b343bf8baf09e53db74d1c17289eec5c3b43fa6c1166c9d0","0x3Dd98C8A089dBCFF7e8FC8d4f532BD493501Ab7F",!1,!1,null,null],["ethereum","tozex","TOZ",18,"TOZEX","3044022041bea91ffbf4bb95df33165fd209bbae1bafd17e13db89562724e06b30b2ac8e022008c3a355a374f77bb1f4d29e0dcdca1fa9de0451d6f1e36c8e6d68b4e112f5e9","0x29239242A83479a4074Cb1c9e2A3e6705A4A4455",!1,!1,null,null],["ethereum","tr3zor","TR3",18,"Tr3zor","3045022100b9d778db879996cd0b1dbf367f65db39cda39f3cae1ccb36276d8e440a8a14da02200e349d8c2bf297babb989611a57b33617407ab200d25254009b9e062daf2e0cb","0xF61BF4d1A948487d61b8fa63808AAC06bda55F98",!1,!1,null,null],["ethereum","trace","TRAC",18,"Trace","3044022074d6eac860f400195be4fdc4d98104eb01328de180ff2d4439608f8569fb04ea022077b0f8ca9a255754e1e43a8c167c4c4760b33621f42d9e18b4220b4e451de637","0xaA7a9CA87d3694B5755f213B5D04094b8d0F0A6F",!1,!1,null,null],["ethereum","trace_network","TRACE",18,"Trace Network","304402200d610344c5032127743e39e17a70b63c551d456dc00c06d41b34049667d2132f0220092b81acc9ec970af1eefec8671421bb98033914de5dab6d1de33e0cf751c492","0x9F7fC686CfD64aA5Ae15b351d03071e91533094b",!1,!1,null,null],["ethereum","traceability_chain_coin","TAC",8,"Traceability Chain Coin","304402201883316091708c0d4f1b142d0650507e7c5225617514a76c8fa840b63a47fd0302203dd2edb88a573e94e8efa96d7e2ffb4fe2990509e4284247cc09244064e235b1","0xca694eb79eF355eA0999485d211E68F39aE98493",!0,!1,null,null],["ethereum","tracto","TRCT",8,"Tracto","304402206a99621954fe11d8fc962ae2595e34dc74495c268a2404ca73178e291459473c02207565713a1b4ecd3e8a44a1d1be5e41b9af3edd435dc38343d88a055417d0be37","0x30ceCB5461A449A90081F5a5F55db4e048397BAB",!1,!1,null,null],["ethereum","tradcoin","TRADCOIN",18,"TradCoin","304402200d7ea78490d41758a217953fdf5920ee4ece87d7079a5ef5c797453d34b2d3d5022047bfb20847cd94b3d17d1675cf9332542ec96c8f752962ea00b11aaad25b804a","0xb09aD98524780228D2df4f34AA665D9Dbb9999E4",!1,!1,null,null],["ethereum","trade_butler_bot","TBB",18,"Trade Butler Bot","3045022100b05aca2e45886ef2e413a5288fad869e0c0be3c0691e0c801788afaec21ab7a402206996069be984a3a9a044f6c8cfe0eadbe0205f4523e84cba65eb4e25e8b35722","0x4A7AdCB083fE5E3d6b58EDc3d260e2E61668e7a2",!0,!1,null,null],["ethereum","trade_win","TWI",18,"Trade.win","3044022075da1308c1fa27f0478850d5ab45b7a833a71c939a10e8b85d28b4bce8fcc07a0220610d00798b3c16635c4e1479698b098db441ba2447e5ba137324f14bb64c01e4","0xDaD26BCE7dCF59cd03a2455558E4Dd73e1c07B66",!1,!1,null,null],["ethereum","tradecloudtoken","TCST",0,"TradecloudToken","304402201cca4ba2780a49b50046e19b2219f79f117f46a6ccc053acf75e6c7ac05846a502204f4ec85a2ae5d7d26430a5bf476ab771b2242a289ccfb8ff803471a02b04db7a","0x9910f4AeD4A7550A4120ad7da8dF8b56E91197Fa",!1,!1,null,null],["ethereum","tradestars_tsx","TSX",18,"TradeStars TSX","3044022011146223c07d95ba3a4e0faa7385f75fa4092e8fc8c61c065c16bb6b8a692ff502206bfe6c2a92f6babc575153269f95d1759ba1e95d46130782616de7b4084d6603","0x734C90044a0bA31B3F2e640c10dC5d3540499Bfd",!1,!1,null,null],["ethereum","trakinvest_token","TRAK",18,"TrakInvest Token","30450221008b42b5af5f24d456af1e171360d7a6e5864684379ec6de7c383b6b0d382a440002207cd2fbbb19c1a6487c9cdf75edfd0140bf207e8e955d7e9e65e225365b1fb70d","0x12759512D326303B45f1ceC8F7B6fd96F387778E",!1,!1,null,null],["ethereum","tranche_finance","SLICE",18,"Tranche Finance","304402206913c10b9647ea3ce40d3438180b06a28549d73be2866c5a0aaeadd4c85493440220669e88d194df4370254eb42f795de2b4e08a117cd78958a54c13d358c3744ad2","0x0AeE8703D34DD9aE107386d3eFF22AE75Dd616D1",!1,!1,null,null],["ethereum","transcodium","TNS",18,"Transcodium","3044022016ba786b889e3b39137e255442c9f70c41b73c7a0196244267781759e66f02d602207da0efbd9e2f050978f87007902dff72d4798063bf3b07b51da68eb064fd9b23","0xb0280743b44bF7db4B6bE482b2Ba7b75E5dA096C",!1,!1,null,null],["ethereum","transparent_token","TRANSP",18,"Transparent Token","3044022032513acbae3006a797c96ed868f63a5221301a7a68cadad05108245ab15146de02201da15a9832ca8569517047dd8460aba1f963086bfae4ddf47aa66ca9f55bad48","0x4ebe2c526ee3ed4791a02960F53f65645f404Ed6",!1,!0,null,null],["ethereum","tratok","TRAT",5,"Tratok","304302200152ae7deb85ce2bf51706f7783c09cd490f6d0eb217ba91f4a036879a027d16021f7f5aa97e8cb7d5e616c7688f1b2ba1e99efa4ad1b3070dc9b18f7230083a18","0xE225AcA29524bB65fd82C79a9602f3b4F9c6Fe3f",!1,!1,null,null],["ethereum","travala.com_token","AVA",18,"Travala.com Token","3045022100b68634068ebc1d1d4f57f5deaa562513537a776e84c65245d8a29c8c7d8adaa602201adfb2aa41b11dae6696a2d37afdacb1bda5e4d3ab32f72b85adead057378247","0x442B153F6F61C0c99A33Aa4170DCb31e1ABDa1D0",!0,!0,null,null],["ethereum","travelnote","TVNT",8,"TravelNote","3044022054e35ec5337d88ef3b0bf81081f1792f18484875c7f01164b231c39f2649b554022019f3a6a1a944b897657d741d4cf0adf2a1eadd5511dc19b0d6d899f637ccc337","0x5635ddEaBf9cdDA686995Fe90BEB5411831563FC",!1,!1,null,null],["ethereum","traxia_membership_token","TMT",18,"Traxia Membership Token","30440220460ab0169cfd8807ad3c43f6eec929c96627db248af6a5d13e23440a92e266240220135017dcfc70dc8fba22982f2a78f4ac0508fdbed2836d8ae37af1b3a6a17ca0","0x3209f98BeBF0149B769ce26D71F7aEA8E435EfEa",!1,!1,null,null],["ethereum","traxx","TRAXX",18,"TRAXX","3045022100aabf03c085cd9cf63248393050cf049613141510d4b18f84d32a4a2fcbb138b702206145beb0843e7e51fd33a6b8a2beda1ac5a582f8c3113a2e8de40cd3db6d93a7","0xD43Be54C1aedf7Ee4099104f2DaE4eA88B18A249",!1,!1,null,null],["ethereum","trazable","TRZ",18,"Trazable","3045022100d1bf060ef1f30a52f6ef6dca23066dcda12f9b4cae9b3edf93e8e444e3b577eb022029b6da12d3f790684c525d61bb2cf5f564c3058b2e8aa93740e66fc2ca5c6665","0x394A16744Dcd805BB0cA7252e70691f0dcAc56AA",!1,!1,null,null],["ethereum","treasure_financial_coin","TFC",5,"Treasure Financial Coin","3045022100fc3b9bea089d8a3238d582bad6f69f1ad39be5c41f5225f3724aaf285a854c6902204b10bcfc0fa3132d25b1ec8263eb209c4510f6704c2505170430825dce4d1fea","0x8694EE05B45c9fE1058CE532de8dbCf1d84A4154",!1,!1,null,null],["ethereum","trebit_network","TRB",18,"Trebit Network","3045022100ee67064a1208f880a3a7befcd774d75e81574883930edd019d4e1fecc821480302203e783820b37131d7a79f0ba377722424c6827a39852fea5e666a641a60b9c599","0x901F8679a6EF435d533732f5eA49bb82d568BE99",!0,!0,null,null],["ethereum","treecle","TRCL",0,"Treecle","30450221009cf0d00a54ac3cbeac7a36b185c561220726681062fa432c099fcb42ee294975022005a0d6e32a115f2b0ad9fd56d681d0b5a9d4d4e9b182906157c635bb143fbb42","0x0a9d68886a0D7Db83a30ec00d62512483e5Ad437",!1,!1,null,null],["ethereum","treelion","TRN",18,"Treelion","30440220777db74e344f59c76bfcc49252f15f5dd003107cda68642f924683e5a4e5fe3e0220058e5dff549f822dcde8af87a7f32cef367bde87a00041de3a17f76a4aa2c980","0x70968FEAF13299d0dBf78f66860bAb9DbE3856bc",!1,!1,null,null],["ethereum","trendering","TRND",18,"Trendering","3045022100e4f419509306f3f806d1bf6df8063643ee1ba506b5843549e5e182eb8522b59802200ef860c7f464c264023eabcbe9eb41a1c9d7ad67ef519976cd0a770af3ea16f4","0xc3dD23A0a854b4f9aE80670f528094E9Eb607CCb",!1,!1,null,null],["ethereum","trias_token","TRIAS",18,"Trias Token","3045022100f7b76a45aa858a72faf2fcb3d9aae6b42fc202927de4ffbfccc8259b4f2232cb022014d0a252a5482b95b60c7b188b065c64462d1812849b5d3e8fcf8dcd740d8112","0x3A856d4effa670C54585a5D523e96513e148e95d",!1,!1,null,null],["ethereum","tribe","TRIBE",18,"Tribe","3045022100f74efeba552afe614f118b02347ca34315b3e3fc5a32cab251115650062b68bc022031cac2b16f9a47c31853184517778537d87d0c8596db8b3c7d7b0ef904b527f9","0xc7283b66Eb1EB5FB86327f08e1B5816b0720212B",!1,!1,null,null],["ethereum","tribeone","HAKA",18,"TribeOne","3044022030db81977b485c249dee14d01d5d621624c3d5803a2a0e860d21e885728bdc0f02207645f2a6c4f9f56a91393ec1299aa897872f9c3cf1aeaf039338445e2f48134e","0xD85AD783cc94bd04196a13DC042A3054a9B52210",!1,!1,null,null],["ethereum","tribute","TRBT",18,"Tribute","304402206d6c61894d4a52443179a9c20373a5a676294d1b8402fcb1ce145524ae1842200220117401d584cb0563bf9b15c692e3178c38e6175afbc102b86d98bb4a3cd62c1e","0x7031AB87DCC46818806EC07aF46fa8c2aD2A2BFC",!1,!1,null,null],["ethereum","trident_group","TRDT",0,"Trident Group","3044022029ae81155864ff9aee02420c97f5bb4590076b0ac345816d1636241e604378f902206b6e0696c910c365f8e338f279d96434056da927c755a97611c0cccb9aa5fcc7","0x33f90Dee07c6E8B9682dD20F73E6C358B2ED0f03",!1,!1,null,null],["ethereum","trillion","TT",18,"Trillion","3044022007ee483deb4f266a725e2f95b0b082a02512e72379543861e52d4e48664af3ab02201814fb0eb4f77cc76886283c4e41b0267ba15d1737e4a43bf4e48278487523b0","0xEcacaB6725aC1711d97E55DF35d525b863B8B9f7",!1,!1,null,null],["ethereum","trilliontoken","3LT",8,"TrillionToken","304402205239f704c722c12930fac747402c577e2e8e940441789b0a16797be1605a32ec02206e29cecf84d739b01f48b1f32cb017e38f26f572fdf336118272869f08711c21","0x430241368c1D293fdA21DBa8Bb7aF32007c59109",!1,!1,null,null],["ethereum","trinity","TRI",9,"Trinity","304402206cbc73e90c347147cd8063cf4a902b7635f6064a9adac2370e94117f282e314b02202328f07625fe73aeee93bea4cf03474518c113cee11d533424f2ab4ece3eebc0","0xc299004a310303D1C0005Cb14c70ccC02863924d",!1,!1,null,null],["ethereum","tripedia","TRIP",18,"TRIPEDIA","3044022075eb60013c3858ea49da06d911d82a3633c0a4d36ce2215bd2b5bb2454d1ad6902206837750dc775b1a5828c5b2e4619f41e06ffd5724b1172e616e082588c01e15f","0xaE2FaB175D20B7aFA56f3bb32500b26Dc62BF572",!1,!1,null,null],["ethereum","tripio","TRIO",18,"Tripio","304302206b7daa54c49b24990e001189eda523f25ba5d637b70580de37558b6e4d7f9758021f40072063b61183cb5415995d0e4d1fd465f688a94b7e7598d717a43d885031","0x8B40761142B9aa6dc8964e61D0585995425C3D94",!1,!1,null,null],["ethereum","trips","TRIPS",18,"Trips","3045022100eb3a54069a880ee8d771dad8870b894e3f3078ea703e829a71414189f4f92d5d022026a297d092e0f4616807f973fce7f99ca37bbc79e594b69e243c6bddae950e0d","0x1350Fbe8Ce27762ec19134bf8FC405a427fe9Bf1",!1,!1,null,null],["ethereum","trism","TRISM",18,"Trism","3045022100b80c6310042309ab21a5fe1d23deb55e653696ea65539f05429d67d001aa6178022011512fed443fa7677da355099e32714ff5c02004180838586f532b8686f92f74","0x56b4F8C39E07D4d5D91692acf9d0F6d4d3493763",!1,!1,null,null],["ethereum","triumphx","TRIX",18,"TriumphX","3045022100aa332c1043e7192464affc71267409b9dfe5a0002aeaecdf0e215ad930b465bd0220562473a39dbb2a75adf11a84a4230f049186bff457a104d22261083d75985fe9","0x056354F3Ff20743aa4c0DA365603871c7000b081",!0,!0,null,null],["ethereum","tronclassic","TRXC",0,"TRONCLASSIC","3045022100cc4873695fe2fdcd43e3c6902159bfcc3233509cc6462cc97c71a6322d538d9f022016d5e27d37b09819514424c82653dfc5458c0fde73f3fe23a9c8a6439e63a68b","0xaD5Fe5B0B8eC8fF4565204990E4405B2Da117d8e",!1,!1,null,null],["ethereum","tronipay","TRP",8,"Tronipay","3045022100e352437f0fcbaf96ce02f2e3c48fba559fd76f96af3690d43415565acc40ff9a022030f0be0b7c180b7fd512c45c7185be6f4c251ca66eb9d1c85f0fc5492da2b834","0x9B1E1FC958B83e801d1342F9f9BA7dA3A55bA1eF",!1,!1,null,null],["ethereum","tronix","TRX",6,"Tronix","3045022100b05f46f2cc7cb43503526ce3e223d3d74aabb9fff53280789f3ead22f94226a1022011a03d5e369750135895c954cc2c56e3aef2610093d49b93c183cc225cc469cf","0xf230b790E05390FC8295F4d3F60332c93BEd42e2",!0,!0,null,null],["ethereum","troy","TROY",18,"TROY","3045022100fc5b56ffc44e16d778e65a320f8fbc57583d20a1c908e2237e9cec6247d7e9f202202825cfc79d71742b359dffc721536391240c29cf1bcd8b889d23c46b20033504","0x4574562E9310a94F9Ca962bd23168d8a06875b1A",!1,!1,null,null],["ethereum","trst","TRST",6,"TRST","3045022100b925033e90dce09e8fe8054d67afb24872f5ceb87f0298bd3c536ad6f8d0edc6022056dbaac1907662a8880a74e479d6ab2d638dcd86741b2fb027bbe9267e5da706","0xCb94be6f13A1182E4A4B6140cb7bf2025d28e41B",!1,!1,null,null],["ethereum","truco_token","TRUCCO",8,"Truco Token","304402206ba273e1fe24bacc9c3735ad12326933f825d4c447516705388aba2d9a84a62c02201e93c92277fb9482d4891db7eda44940be5b296ea92c40b36f2cd93fcb42426c","0xf10E3E8F6B02B594b7C95fca59DC7E5ce7364df5",!1,!1,null,null],["ethereum","true_seigniorage_dollar","TSD",18,"True Seigniorage Dollar","304502210084c23f5539aa21956f65359fdf291bd5eea85cf56937c9192bab68938d16c15502205106ecf887188a9bb32942a69966d0dd9ed7d06ef21b9f6a9ea7e2ab30ffb6fb","0x4846239FDF4D4C1AEB26729fa064B0205acA90e1",!1,!1,null,null],["ethereum","trueaud","TAUD",18,"TrueAUD","304402200bea015bfa6ccd047e1b9decd7d6525d40c703eb2e5442c28de1dc69feac793102207120c37aac1beb86e569e4780b7afde7ff99ad66739e262b4c554add0f50c20d","0x00006100F7090010005F1bd7aE6122c3C2CF0090",!1,!1,null,null],["ethereum","truebit","TRU",18,"Truebit","30440220183918a4b9e246b28707f0daa4111fcb53347b9b0339d1adb457143c11b375330220283d500c2593c6d058e5c023e6be30603d351e5f5c9200e91842bb2b2ef7ed44","0xf65B5C5104c4faFD4b709d9D60a185eAE063276c",!1,!1,null,null],["ethereum","truecad","TCAD",18,"TrueCAD","304402207582e1c382a333d9e99d4501003f50468841c37bc81847042ca62dabb830c57b02200987dd9fe511d9d99c4d2faaa383781a59409421be35e291b81abccac0327fd1","0x00000100F2A2bd000715001920eB70D229700085",!1,!1,null,null],["ethereum","truedeck","TDP",18,"TrueDeck","304402201478e06cb99ae2872eafae2c98db855572e83e4c4f9053cd569146a9f2ab106002202401b4e0bb839d4696e7ef44da9209daaf1445591542319cb8d245d955b2484b","0x5b11aAcB6Bddb9ffab908FDCE739Bf4aed554327",!1,!1,null,null],["ethereum","truefeedback","TFBX",18,"Truefeedback","3045022100a352d2452038c3247f11ee0a459a1877a5d8ec5b3eab9b2f6f9f7b6e7607ace002207a815d84c934510dfdfae8e2cb168d506a6fb2359d15f74622830c1f4c5ba585","0x4057Db5bD9f67A566aA10E5587b1a964afFc6a16",!1,!1,null,null],["ethereum","trueflip","TFL",8,"TrueFlip","30450221009bbf3a6c914a7dc5bf580d324dddd1a2bf0dcb747dee59739304f06796bc715b022066ee3140636d30d0eec8baf2ddfc38f87325d341c350cb0f6cffd1733164eaf2","0xa7f976C360ebBeD4465c2855684D1AAE5271eFa9",!1,!1,null,null],["ethereum","truegbp","TGBP",18,"TrueGBP","3045022100de7cf86606aa7842be11ae7c6492dbe1c0fe90479733c9951eb10347268469ed02201013f8470cd09bcb89f8f2245ea52f5869e92e4c10b0d7085a6f339e900fe497","0x00000000441378008EA67F4284A57932B1c000a5",!1,!1,null,null],["ethereum","truehkd","THKD",18,"TrueHKD","3044022000b2e5e9ea0e480400f2679f9ac553183c9f73a7f3679fd046e22d53e4720aa702206e68352630e5321256d7c97a15372003bd6ec4e0cded1c9eb7794778759e36ce","0x0000852600CEB001E08e00bC008be620d60031F2",!1,!1,null,null],["ethereum","trueusd","TUSD",18,"TrueUSD","30440220793cabf5a84ff4eb548e5dc52c4fdeb4dde7aba5e057608fa09ff0ed74ebbe6c02206c068560de40324fc599069e05fb5b400be34e81269b459db1f7639d8396efaf","0x0000000000085d4780B73119b644AE5ecd22b376",!1,!1,null,null],["ethereum","trueusd_","TUSD",18,"TrueUSD (old)","3045022100ac470257b2ddc5009d23b87cf6e5619488ad447603960e20a9f8d2c060f78342022053a9d3ae3a6abd9ff0ff0a7a4f5dfcace0b61ede3ce3e6029be296e89fac9a38","0x8dd5fbCe2F6a956C3022bA3663759011Dd51e73E",!0,!0,null,null],["ethereum","truflation_christmas_2023","TFI-XMAS",18,"Truflation Christmas 2023","3045022100dab3400090d41f4ee6ce76b98e7265d14a881c6f28b46196e2cd65202a5092cd02201f753b4219d819752fc75ee8635fd6489080ead65892255e24f9514fa37d02aa","0xE9FFe85Eda39B391d4ABA4e7419Ae1EbF87ECa31",!1,!1,null,null],["ethereum","trusmarkethub_token","TMH",18,"TrusMarketHub Token","304402200ab004bac542c5685e078f6750f836e6a34b4ad3106eda59a1dce002afe5ca0e022073bc84c18cecda2e105d78281c59cb4f2c9a625047de2f3c7c8de0308930e916","0x901fe080Ee18383BF5494049538F1bca155F4d0b",!1,!1,null,null],["ethereum","trust_dao","TRUST",18,"TRUST DAO","3045022100b59b95dc3d73e55083108577973e1068faf94b9500adb32101a257d050c7cd8602202fd4e9e471dbc4bc6f3c960eb076a8f03b7f1c12a354944925e3fd000a6d798b","0x57700244B20f84799a31c6C96DadFF373ca9D6c5",!1,!1,null,null],["ethereum","trustedhealth","TDH",18,"TrustedHealth","30440220577f7af90e159feffbc9cb09b7a581c86f4fa63ac595566bcad5d69389ab166f0220360ccbb5b1d98aa5c0314587f0bd44cf6e8af2a8f44a4e7a4b4329c237c36aa3","0x2a1dbabe65c595B0022e75208C34014139d5d357",!1,!1,null,null],["ethereum","trustlines_network_token","TLN",18,"Trustlines Network Token","3044022042bfa9de2e556e5bcafc4bf4e4d05655e28b635fba301eecef14d4e4a1b445e202203b287bad8f2d494b9bbf628b77705ac8031ba2e924f2ab2e669724e34e5d1b44","0x679131F591B4f369acB8cd8c51E68596806c3916",!1,!1,null,null],["ethereum","trustswap_token","SWAP",18,"TrustSwap Token","3045022100e80eb8f74d9b1729575da41c130f9046d8765d6597fd41e4dab6e6d72db311bf02207d8fa4e0d45b3558267438ff6f17a5f0bf8b66d9812fde005c588029ab842f09","0xCC4304A31d09258b0029eA7FE63d032f52e44EFe",!1,!1,null,null],["ethereum","trusttoken","TRU",8,"TrustToken","3045022100b13adc61a5c0708f1fe1a3564760a666eb5f01e0bcf343dce60b23927ed134500220334e5d0c10ca21bad453ed5d62b82a41ec7fb1e6c5ea4f366eb83f97d3bf6b43","0x4C19596f5aAfF459fA38B0f7eD92F11AE6543784",!1,!1,null,null],["ethereum","trustusd","TRUSD",18,"TrustUSD","30440220535fc10e142566d20cb741bfb55e12f7fe533d589e228aac2c90e5dc8f6ed37b02203939c4cd1782f4f5ae3802c2471ba1592f7cbbc1111095babae00e076929e051","0xDD436a0Dce9244B36599AE7b22f0373b4e33992d",!1,!1,null,null],["ethereum","trustverse","TRV",18,"TrustVerse","30450221008d6f060e66243356d7a17aab9624cc9f36fbb287297722f83630eba6beeb5b0a022016848aad0f5b1a4aea810b9a8e2c2a9e4e7ac5ce3ad06d4cd0e3df9047a91563","0x72955eCFf76E48F2C8AbCCe11d54e5734D6f3657",!1,!1,null,null],["ethereum","trxbear","TRXBEAR",18,"TRXBEAR","304402206d0fdda34aedaf5536c8b276e418e423502a59e34b9ced7bd68cd4e1a618086c02202af23d1003da1245f072fe8c84d3c254a44843d1fae6208b414b60067db83780","0x86807Da5B92d31F67E128771CAcb85F3579646eA",!0,!0,null,null],["ethereum","trxbull","TRXBULL",18,"TRXBULL","3045022100977805803acb79031fb53529432e89303493fb1b15bb1761ef26a6e53ea8cc8d02206c921954e657367d96f80503c89c5ed02f71271f3ef2f56fb5f058ba1d52e37f","0xc175E77b04F2341517334Ea3Ed0b198A01A97383",!0,!0,null,null],["ethereum","trxhedge","TRXHEDGE",18,"TRXHEDGE","304402204cfb74278bc55571acb9b3e179385365fe134973394014eec782a8509d5fbdd302203e50ce39ec29efedba32a7e8543eec18835f1b323218811eb16794b720c1bdb9","0xe58C8dF0088Cf27b26C7D546A9835deAcC29496c",!0,!0,null,null],["ethereum","trybbear","TRYBBEAR",18,"TRYBBEAR","3045022100d7ad9e458099223800df18d811c9d2045bfba688573ecec61c360b7d00c23d20022062ed46f9d644bf3246d58e2f2adec298c78491114d62d83469a45d1f910da621","0xA5dDFCA8B837cCD0cf80fe6C24E2A9018FB50dbA",!0,!0,null,null],["ethereum","trybbull","TRYBBULL",18,"TRYBBULL","3045022100e96e74c64bce17bdd118a64d28fc76d9f87edbc4857f03e058b006a65c9e4899022055f97f3004e14fc5c172b25cc799edfd4dc75fd964ddb1bbc023f4a9206457e0","0xc7038cCf60E48C5b7119E55566A6aD9f2D66C7c2",!0,!0,null,null],["ethereum","tryfinance","TRY",18,"TRYfinance","3045022100ccfa2a5c969ef70d19862b8cd3cae9407b74ed61c664289fba6b05abbd7c08a1022018580828406b9fa2298e2752afdf15932d7b58e8e7d1f6ba0ba27bef80699354","0xc12eCeE46ed65D970EE5C899FCC7AE133AfF9b03",!0,!1,null,null],["ethereum","tsangnyon_heruka","TSANGNYON",18,"TSANGNYON HERUKA","3044022063aa856edcbc9644b9a5ea64b3051a413b10894b1e3881f8bc4147c8c2d4df980220344567c5e6ce35e4e15f6c4bd298984d0fb58f0442305575c3b0cbe32a33d83b","0xd031edafac6a6ae5425e77F936022E506444C242",!0,!0,null,null],["ethereum","tsla_finance","TSLA",18,"tsla.finance","3044022054466d7f12622e74d219438852c0491c58db474715a4231a8105606c7e9ac46202202977f4c6482e2eb53d802902a169c4b7f9977e304e9603473965a297c9d399a1","0xd50825f50384Bc40D5A10118996ef503B3670afd",!0,!1,null,null],["ethereum","tsuki_inu","TKINU",9,"Tsuki Inu","3045022100c731d4366c0b893e180eb44fbc37dc3539b506e1ee1a7c38e48568e114c329b70220377e5fa5175290ac3cf39c5049775596df97c9ac56c9cce07c2ade3fc1fdc6e5","0xda23d301761E4e2bF474951f978f6DFB6F3C9F14",!0,!1,null,null],["ethereum","tsuzuki_inu","TZKI",9,"Tsuzuki Inu","304402206a935ac4906ee06af13029954d399b7d14fcb8268f95899f569bd79975cf3e82022061a6bdc2cf06bb971424cb7d13d20b21c718d67e2439673809e93a302bbd4a79","0xF527d24391C767B86b8e91385e1cE9C54D230A2B",!1,!1,null,null],["ethereum","ttc_protocol","TTC",18,"TTC Protocol","3045022100ee28e179471be85b277d69db9f5a95eb611acc07258dbc5b7544236a5e8eb1a30220582689b369ac5edef344b472caf3953242bd9294423494825f3d5467f3b8f9ef","0x9389434852b94bbaD4c8AfEd5B7BDBc5Ff0c2275",!0,!0,null,null],["ethereum","ttx_nft","TTX",18,"TTX NFT","304402202874fb0088015e257e0dc5c7929eff82d57ee9b0b8d854baf8e1635cafd37c04022020ab0e12c950887e1d2af2b999a37d067751fabcdc7f112592f89ac0b9b5dd67","0xeF2e239b21A81719abAabC6239e2e90859B44D9B",!1,!1,null,null],["ethereum","tudatoken","TUDA",8,"TudaToken","304402204bd2e5768ecb87def259586eeb066183d1d0203f3ed69f828731c272898397140220721ce84e5c8c0156e857bf93b1ec30496bf83592cc954182c6b23ae0e0a43f33","0x5E3002dff591C5e75Bb9DEdae268049742E6b13a",!1,!1,null,null],["ethereum","tugz","TUGZ",18,"TUGZ","3045022100cc2fba10a6a54d7378c33a010ddf4d2e0984236687e4f8189943b6aa40fb705202207c302cbbffd293e06cd8f4f4077b8be065be2cc591548f66a5ce067c53c9520f","0xB5943c96B28570D63512DDa2069045B304994dAF",!1,!1,null,null],["ethereum","tune","TUNE",18,"TUNE","3045022100a8f751d39bf46b7ad4984dee36987dc9f51ffce9a62fec1b5df6fbd087c70d2e02203325d803cb8f64f9d56c831f1c2484dd2d5660ffbb69e52305088b25aedb1b06","0x6b4e0684806Fe53902469B6286024dB9c6271F53",!1,!1,null,null],["ethereum","tunetrade_token","TXT",18,"TuneTrade Token","3045022100ec1c8ce51e029cc904ed77f770a5a5717d4a3faf0eda2d0f8c49c202c80feae8022035740e5739555c86569d8bfda43253957e991c9198a53be2c1b5bb0fad720727","0xA2428b6d1cfFA89760d797A9b5a26342CdF4545F",!1,!1,null,null],["ethereum","tunnel","TNI",9,"Tunnel","3044022064d5ef3b36f2c6d8024dc7e00c38cb6b9eba404b29b931e9641bc4ad7f4ea775022062bbf2054f5618c69902f607b6865d753f8fdc7e251b75c4ac5d2f06fa8d0893","0xa5a2Af22EAc6f050227d844B108c2B2A011FD329",!1,!1,null,null],["ethereum","turex","TUR",18,"Turex","3045022100bac12e82b21f069e478ccae9ab2ee251179ac3b1329ca8d02c82da17e2a82a2b02207fdd4fb847add07ece04b44e1d3cf375556f89b327dabc2e130eb28b17b5e36f","0x1600c2E08ACB830f2a4eE4d34b48594DAde48651",!1,!1,null,null],["ethereum","tv_two__token_for_television","TTV",18,"TV-TWO: Token for Television","304402207d999c698abc7025600ec6cc5695cfea3451901097ccfd49ff39147ae4cab885022043600e4f60f657ecc230eb157c01a95514e3cb482a449b9bbe9a5e5425779492","0xa838be6E4b760E6061D4732D6B9F11Bf578f9A76",!1,!1,null,null],["ethereum","tvt","TVT",8,"TVT","304402207437f73bf4a670d626c5fcfaba1c5eb62a99e0edd5ab723de4f196a9c570b66f02202c6ae2ad9ea76277407effaa17de046d3f727b597717e5be60a50b48016abd99","0x98E0438d3eE1404FEA48E38e92853BB08Cfa68bD",!1,!1,null,null],["ethereum","tweebaa","TWEE",18,"Tweebaa","304502210095e132e3f0982ce5824886e39164b6c54f3ca5e35cb073051bed70acd2c1290c02207daa60734fc5a000c38ba3f07cb8afa1d926472f2690484582158ce943d77f21","0x2b6fF53Fc2493CcD5202D80a6C439741414C5Ff2",!1,!1,null,null],["ethereum","twinkle","TWNKL",3,"Twinkle","304402202acbffbc96d1196112e9f017a3208874dfea5568edcf53a8c645398d2be1fe3e0220547c5783e493e1a8d303927acef796c301c78e420fda14be8140ce72afd2b941","0xfbd0d1c77B501796A35D86cF91d65D9778EeE695",!1,!1,null,null],["ethereum","two_prime_ff1_token","FF1",18,"Two Prime FF1 Token","3045022100822208f5cd99d32bb81e6eba2d247828514c7dc44c50e403c6244ebdc3aa350502203b14efff1190266f088d866c68c3c573458e7b47e96883d49a5c50e6b345f9aa","0x59aF0356cdeBd1fa23Ae5dADfF9170BbFC31278c",!1,!1,null,null],["ethereum","twokeyeconomy","2KEY",18,"TwoKeyEconomy","3044022052c1ea581064424b653a5f2ccf8f242c7bc031bff0f8e680f2618323fe37505c022068c77957d27cc83cb746778d8c52a7cef9153e6289978172c3bd70776747855e","0xE48972fCd82a274411c01834e2f031D4377Fa2c0",!0,!1,null,null],["ethereum","txa","TXA",18,"TXA","304402203a75d583c13d548d1498bccc555c797dd6f94645f9c4df4e9a8d5919ae74cc470220364bfa68c201e20c3b6836fc0aae2fc2822afee1f2a5f3e5903c8b88a6f1801b","0x4463e6A3dEd0dBE3F6e15bC8420dFc55e5FeA830",!1,!1,null,null],["ethereum","tycoon_token","TYC",18,"Tycoon Token","3045022100e6bb6b9c7d11602b9a87d75edadfdd29d07b72513ce15e9cddb47769db2653ca02202d20e5f07288a4cb2312ff00e35a26f440c81df412e7a8852f2bc23acbd5e8ab","0x3A82D3111aB5faF39d847D46023d9090261A658F",!1,!1,null,null],["ethereum","typerium","TYPE",4,"Typerium","3044022076baa37a5087dc1b04544429810ebe61c92a40f83f9087d880a50ce79868a21602206141d9412baa8f715b1facb7c503026a17e6de7a59c507035e9032b8ce627918","0xeaf61FC150CD5c3BeA75744e830D916E60EA5A9F",!1,!1,null,null],["ethereum","typhoon","PHOON",18,"Typhoon","304402204ba7827f16da6397f95e3eb164d199083727cafab4103a2a83b6c142cda0538602206f409999b27441f53a6ef8a22e1bb1d679e70ad204528feb206f35a6e6b50ff0","0x79256DB1BDB6259315a1a3D7Dd237F69cADFd8FC",!1,!1,null,null],["ethereum","tyt","TYT",6,"TYT","304402200fa37057765fe892276b64a52b5a139a9c6e7d1d5f471d759c4ab8397b15c3cc022045df5a2f939a8b47b5197c1ef729fbe78b25cd42c5cd3ac3dabbb007ace7682f","0x614FD8F06cE4D93AA2361B342C86554eB5CB39f1",!1,!1,null,null],["ethereum","u_networks","UUU",18,"U Networks","304402204e8c89702db8c6e6b4b2bbbd8475d217c4ae56de2176154e7b4fb402b602f3a30220569b67281e14ad86d16b7cae831542165b67d18d4e59b645eb6704234174cc2e","0x3543638eD4a9006E4840B105944271Bcea15605D",!1,!1,null,null],["ethereum","u_token","UCX",18,"U Token","30450221009c3a593f190f849e213e5c613998bbde77d9d54a5dc566e205b768b8101f7db6022057c15e8637efed3146c67be3c19bd3e0f27d01b3c61e01a7624282771b28051a","0x3D3af44cf092a49280e316f09c8f20ecf97BC933",!1,!1,null,null],["ethereum","ubex","UBEX",18,"UBEX","3045022100d176d379447cc7cc8a17ee35584bbe978f6019434acf6e03a91d5f198c58a0c4022014d5733dd51ad0824289c4a261ccf91a2472269ac03f3cf5bc150a804471ebf9","0x6704B673c70dE9bF74C8fBa4b4bd748F0e2190E1",!1,!1,null,null],["ethereum","ubiner_token","UBIN",18,"Ubiner Token","3045022100d27bf4739f6dafdc4ff2942a2d30b9e9f1b581ada437c73fd88aaa767cee142902207ca613639ccebcff89275c5e5ed7c610f1f92ae7ec1595a88dbcf084980be4a4","0xb9EcEb9F717852Ad0D936B46155cB0c0f43cBE8E",!1,!1,null,null],["ethereum","ubiquitous_social_network_service","USNS",18,"Ubiquitous Social Network Service","3045022100f60e3196bac0e55d89cf46981869f00850704877fdb2b801633dea06e68fc3b202201c2625693b9cd626cc35c7d2fa45fab8df58e27d0cd6db1ef4b270c7bc5fdd4e","0x2F766a83146F7eaEe2c635c9f9A291E4B86f4108",!1,!1,null,null],["ethereum","ubricoin","UBN",18,"Ubricoin","30440220230856b116c028b853cb7e9342a9056a4f2554113f90463c00d8738c33c565f4022027116823f3e40ee0cbec37e7b355f73380f21ca5d55c7e5a5705083eb0344753","0xDB13025b219dB5e4529f48b65Ff009a26B6Ae733",!1,!1,null,null],["ethereum","ubu","UBU",8,"UBU","3045022100d2b056da24c1c2f7053c0aa54e289f346b399698736eb357a079ae9079ab3f9102201e0ddaf93cbebf0c7e146fb429b458c8025d08479d46194b19dd19692e8551ed","0x6b74Dd5d01f8320081247F5CF1F7a48324700Db6",!1,!1,null,null],["ethereum","ubx","UBX",0,"UBX","304402203fd521cb3945c10dfea6baa5cb32f8f9f75149ca79cb8b968d6d01ff0dbbe102022021ee29b250e1d8b315646f37500d11daddc448d744322f6e2fb4c8e09babf3f5","0xF5B5eFc906513b4344EbAbCF47A04901f99F09f3",!1,!1,null,null],["ethereum","ucash","UCASH",8,"UCASH","304402206027ec69d0fc4301890ca8423bf628ec5d816bacda66d661d82dcf19696eebc2022024c7a35f3b3a26670d5f9d36b68f109c7381062c95a2077bfad945a74b555504","0x92e52a1A235d9A103D970901066CE910AAceFD37",!1,!1,null,null],["ethereum","uchain_token","UCN",18,"UChain Token","30440220702d020649f62582d982eed34f11121d9824161809478073660cf68cf3a58dc202207cbd4ba92f6fab1d4cdac87cef73241582d934c6ffbfed3b6cc41492cba7e77a","0xAAf37055188Feee4869dE63464937e683d61b2a1",!1,!1,null,null],["ethereum","ucoin","UCOIN",18,"UCoin","3045022100e58ce9aa0fbb7c7c32115bc53afb428656a20dbe8b8ad0faa4770c813ea21be102203621cf6334d86c7487431a025263e3d0215318f889bcea95a0db27b5ebf9891c","0xa918897bd10d6DeE614470C24a061b78b021B3a9",!1,!1,null,null],["ethereum","ucostoken","UCOS",18,"UCOSTOKEN","30440220633fb8fcba889e98b669ef64746bcbcd46bc1e7c1f294c53f1ab557c74679b3202203f8445697acce62514e05753277c28f98feecadf20c158ed38e48663e2b919b8","0xd8D887B5611a5B3E90bf764085d9858031D2bE67",!1,!1,null,null],["ethereum","ucot","UCT",18,"UCOT","304402200568b27e459d79aeb9a6b13065fb39cba1c2e98a0d823a2ed55f83b072afc0b202205cdc7a45b4dd48868e3f2e927262eb314281e8c556e3ab35316280371905bea2","0x3c4bEa627039F0B7e7d21E34bB9C9FE962977518",!0,!1,null,null],["ethereum","ucrowdme","UCM",18,"UCROWDME","304402200acc4618be0e9bd0e5a01eb7eefc554178686886d40f0914cc48d8d47e0db17d022008de27208d04769a044d5a45920cc3267ee11f4e03ff98fcd0f3628829098d98","0x722f97A435278B7383a1e3c47F41773bebF3232C",!0,!0,null,null],["ethereum","ucx","UCX",18,"UCX","30440220020c049d8fec5dc54e14d6eb7f7cc3867681f75ef4fe22d38b835ab90326825f02201417e2c076b549e94f2e97021b1502789eecbac355b56985da77783794b50ac3","0xE7cD2C56D3F01f9F8Ae542BA5B2F00cf2cF994b1",!0,!1,null,null],["ethereum","udap_token","UPX",18,"UDAP Token","304402207b3a642c9f7638ff70bbca979f48cd29187c52fbeb8c131bae008a0a846b2fb702200a0af9c77cc34aee9783adbb667ae82e512edc1c5516ac03aa5fc8d2132b2ec8","0x5f778ec4B31a506c1Dfd8b06F131E9B451a61D39",!1,!1,null,null],["ethereum","udoo","UDOO",18,"uDOO","3045022100bce66fba6395348c2e6b6ff95f32b91c94ea08f400bdd32538b5573abafc321b022027906008bcd05702ae50a1e1f429cb9216824eadc138c48c16965a07574b0bdf","0x12f649A9E821F90BB143089a6e56846945892ffB",!0,!0,null,null],["ethereum","ufc","UFC",8,"UFC","304402201d825d7ee437ee29c11dfd1934b0d83055eaa68271bbd799172fe9f731183e2802205ceb40c275c230ec92bef5a0ad4a7f45ba62aaa0db20d9a8c3b0346f8a74d63c","0x995dE3D961b40Ec6CDee0009059D48768ccbdD48",!1,!1,null,null],["ethereum","ug_coin","UGC",18,"UG Coin","3045022100ce815ab7437a4343ba6829c7fe79ac3c22bb6235669b6a6ac6a87fca097f4dd7022040f3105551f080f7904fcd63535c8d6d746f828afed55c97c86b855de876f05b","0xf485C5E679238f9304D986bb2fC28fE3379200e5",!1,!1,null,null],["ethereum","ugas-jun21_token_expiring_30_jun_2021","GASJ21",18,"uGAS-JUN21 Token Expiring 30 Jun 2021","30440220590292515d459a616a40843946a7c13bb49999290543b2dc4e7d82b0b86cf20a02200547170739ad49854d3a41b0fc407edec40e1c6c84ee8e9681fadcf8046823d1","0xa6B9d7E3d76cF23549293Fb22c488E0Ea591A44e",!1,!0,null,null],["ethereum","uhive_token_v2","HVE2",18,"Uhive Token V2","30440220289c88e6a88da0e89cc0a5462d2ab0a30bce742da65b10f81c1e2e946f4de416022010a6cbe4cf1ef939deab531fdef714782a8f77a76c97a9bf28cf5deaad948060","0xD487892BB4C57edBe7aB401d9fe801c8FE6473f5",!1,!1,null,null],["ethereum","ulgen_hash_power","UHP",18,"Ulgen Hash Power","3045022100d54016149e42cb3dccf90c626098c48bbb2503ed46cb060bfd0cff76559f1a660220319a37925efb2cd05f053fedaacec9ad3abcd3c40e47e8aff9d5656f7b42f1c6","0x9135D92e3A34e2A94e4474B74b9DC2d51118eeD5",!1,!1,null,null],["ethereum","ultiledger","ULT",18,"Ultiledger","3044022003486434e1a8df308598634a9423a27817aedaaa7f9f6016abbf5da81bc367f1022002680b31e33c3b31154f8a96b9fb8150af86c9c0bfd187afe3475d7b09fe19ce","0xE884cc2795b9c45bEeac0607DA9539Fd571cCF85",!0,!1,null,null],["ethereum","ultraingas","UGAS",18,"UltrainGas","3045022100a5d996531ee27e10b39d0f443d3a3844d90ede1bd1cb133b157f114aa6d37fee022048a5d8a44b976fe631297c16ac66fccfab2f2c35e1698bfbca13c7ea36928e6d","0x8716Fc5Da009D3A208f0178b637a50F4ef42400F",!1,!1,null,null],["ethereum","ultralpha_token","UAT",18,"UltrAlpha token","3045022100882515e38d69428abb5e1b38033ed6bf03ca083a8cdcce7990230b73eefaf44e022053c3e0ab3f66e71b69d1dc5a7fbb82ddbd540d1178ca7161129a597f7e71fd1a","0x01C0987E88F778DF6640787226bc96354E1a9766",!1,!1,null,null],["ethereum","ultratoken","UOS",4,"Ultra Token","30440220176917b245a6e63a668299fa2bc6c4a588a54db6377d0f2761a2adcb9a77cc16022079d9ffd0bab8b9625ed78e65136f730e320338f9ef60f28eaec4d17dfaa52e4d","0xD13c7342e1ef687C5ad21b27c2b65D772cAb5C8c",!1,!1,null,null],["ethereum","uma_voting_token_v1","UMA",18,"UMA Voting Token v1","3045022100a44acd54f58515f39b329e7da57f0788f484f8a1bce82d9d53ef10db09d61cf2022026f35e9326263e57912d90529e3e83bf28e8ff62b973393a56becb96169946fe","0x04Fa0d235C4abf4BcF4787aF4CF447DE572eF828",!1,!1,null,null],["ethereum","umbrella","UMB",18,"Umbrella","304402200d87cd4f990067a7fb57b1b7cc2b5ac26421d382e15c6eb5eaf95c2229c3445a02201822c6dc082d163a92e1c35ec164fa5299893c89c924e46b0c6a465c22039be2","0x6fC13EACE26590B80cCCAB1ba5d51890577D83B2",!1,!1,null,null],["ethereum","umbrellacoin","UMC",6,"UmbrellaCoin","3044022010a18020f2a4c55bf3921a20ddd3167526640c3d9ebee02b11f9a67f5560d1de02200410110d4f876ca70eaf457aa5bbe967c6e40d7b7b809f289755150de6b78766","0x190fB342aa6a15eB82903323ae78066fF8616746",!1,!1,null,null],["ethereum","umbriatoken","UMBR",18,"UmbriaToken","3044022001b856a1f42d28a523b145ab4d65df3ae3682526c3a7f355a795d72db0bb3fb002201db4893d618a6ed0ea913da56c9b20d5826de668e707ae680f0fc3bf8a207700","0xa4bBE66f151B22B167127c770016b15fF97Dd35C",!1,!1,null,null],["ethereum","umee","UMEE",6,"UMEE","304402202398d7b2cfd65260d1dbd6159be5cb01d54d2c5b48190a43fab744a5f5a1ecff0220008f8c87d1e500ad45777a00423dee93172dcb4be43087dbc13f08fc2aa3aee2","0xc0a4Df35568F116C370E6a6A6022Ceb908eedDaC",!1,!1,null,null],["ethereum","umitoken","UMI",18,"UmiToken","3045022100ef3012ec5f00e6c7f856664b5e765e0298b19869ae0d61d979f5fc8e0ce31ffd02202f5f20fbbc5de2f5cc5d76fd8921ca00d2eb2a6f2a5311e3282cc702acf9be02","0x61107a409fFFe1965126aa456Af679719695C69C",!1,!1,null,null],["ethereum","umka","UMKA",4,"UMKA","304502210092da80ef165cb21ab0f7d8d8884cdc7cd404465f4c535bbfec9350a51299bca802206a528a721e6829db886112e6bd07eb6e6c577819f4c2656bec591eaf444a023a","0x8e5afc69f6227A3ad75eD346c8723Bc62ce97123",!1,!1,null,null],["ethereum","unagii_dai_stablecoin","UDAI",18,"unagii_Dai Stablecoin","304402200bfab1ca45ce3064c8b63ebaef695d5e4b33e0a63e77f78767192cbf99244001022042a53b4811c81fcea517e8c8c0b1b6cb2f7b722f5a62888e6d091fb7cd794418","0x4aD0b81f92B16624BBcF46FC0030cFBBf8d02376",!1,!1,null,null],["ethereum","unagii_eth","UETH",18,"unagii_ETH","3045022100eb9799a0366e52079761e983c269b475f4c6da133f5cfd697b475a9438e25136022038c0acb7e35219a6a784cfe8ced84c73e6297c5656a594c5e16c413537d8e1f4","0x77607588222e01bf892a29Abab45796A2047fc7b",!1,!1,null,null],["ethereum","unagii_tether_usd","UUSDT",6,"unagii_Tether USD","3045022100adf817bb97397d61e2bfea0b9fdec6c051f005a3d520a8a396fdf8c970edb99e022044c46ae59bca341caa5120858d3dadeaa96876fd85325773447061a3ab985608","0x178Bf8fD04b47D2De3eF3f6b3D112106375ad584",!1,!1,null,null],["ethereum","unagii_usd_coin","UUSDC",6,"unagii_USD Coin","3045022100f0dc0b927bd475b33cd87ba78ed781ee3276dacde29629465556dcc72087ec9e02202140b72913218fc1255238578000e0d58fff93fb9749881b622b7f2e14b23e14","0xBc5991cCd8cAcEba01edC44C2BB9832712c29cAB",!1,!1,null,null],["ethereum","unagii_wrapped_btc","UWBTC",8,"unagii_Wrapped BTC","3045022100fcd2aab00b30700f20429a1a145d00be7ac7718cc3878b570671d6f11ad0f9f202207bc1f8e4904813525722f25e5db8a60cb0763f8818a6c5bd765a2b07f15cf320","0x3aF5Ba94C29a8407785f5f6d90eF5d69a8EB2436",!1,!1,null,null],["ethereum","unbanked","UNBNK",18,"Unbanked","3045022100e6b018a38b30d5922e0dafb2c318599d300bdfd14f0fd9b70c005dedf55fbb0b0220134422a6f65af5a219f7fa3c068900a3a20c03667224e9b925c4f8673c023780","0x06B884e60794Ce02AafAb13791B59A2e6A07442f",!0,!0,null,null],["ethereum","unblocked_ledger_token","ULT",18,"Unblocked Ledger Token","304402205756da124e3281b0d7933c8464dc1a28e025875d7ae6cccf2edd864861d1cdd50220137333c299560acd9099216c70f53b7fff28bd299fa42290c0daeea0894fb407","0x09617F6fD6cF8A71278ec86e23bBab29C04353a7",!0,!1,null,null],["ethereum","unbound","UNB",18,"Unbound","30440220319b5b63627d0a79c81cb7eafbc705cb319d0f677b6e446d549989d6edde46b702200f9cb2ff5ee0ff18f7db7278bd88e0fa9e69eef19dede83e4abcc7c6e43b76d0","0x8dB253a1943DdDf1AF9bcF8706ac9A0Ce939d922",!1,!1,null,null],["ethereum","unbox_art","UBA",18,"Unbox.Art","30440220351ca4d75dcfd0f435a8e88f55dc94f3838ab228aa90802d983cc70bca1defc702205315b51ae0da6cb380858b89b67bb75865959995e8073bf7f861f4b9ed7c2ee5","0x817e2aDdceAA4907623666A7800b1553Ca21192d",!1,!1,null,null],["ethereum","uncl","UNCL",18,"UNCL","304402201d83813a5febcd15bb9265f5777d95d6b03277c9d56cbef95d59443db0c43d1b0220323d752eaa7633937887ae66a17006bb771b7007ef80492f81f2e0f6c1dffc31","0x2f4eb47A1b1F4488C71fc10e39a4aa56AF33Dd49",!1,!1,null,null],["ethereum","uncle","UNCLE",18,"Uncle","3045022100afafb8c8c53dfdbde0a08a6dcdf548f7c0de57110640ed0bbc1e62b692d411560220242d46c15c5643998e212669bc9407fbb920e84359b15b144d77e7691d61054c","0x2d94408F45b2E6Fa9EFfe1068b75116187c4E388",!1,!1,null,null],["ethereum","uncle_scrooge_finance","CROOGE",9,"Uncle Scrooge Finance","3044022061ef71cf3ff21dbe50427da0ae2f147f134d0c0bc79d9231cd1a0739f89581d902203619edfeddfec9de9d69993b57c3520e57ad46e18dcfcf7ea09607273f423917","0x1505c95a707348C2bCc75698BE258891387f008B",!1,!1,null,null],["ethereum","unfederalreservetoken","ERSDL",18,"UnFederalReserveToken","3045022100b4b7c17939a67d97e674d65419905592baf7bb10ce07c25e48fe69d7b8c85e4a02205a95f534b1dcd5258acabd9a64ea11d0f87aeb7feb3502a4c49133e2b2c8ea65","0x5218E472cFCFE0b64A064F055B43b4cdC9EfD3A6",!1,!1,null,null],["ethereum","unfi","UNFI",18,"UNFI","3045022100c4f7017b9e8a54deadac5bbd43f755f2ea7086d706a35f60fb83a79536e426720220358c6a7fb5ef5e4518290fbf0aed5469eb7139f859750ede78aee31f0975533f","0x441761326490cACF7aF299725B6292597EE822c2",!1,!1,null,null],["ethereum","uni_ape","UAPE",9,"Uni Ape","3044022008c5bfd23f5463591553497c10f56b0ed847fbef2c24ae08241f99b3e97598bd02203654f10181aa343a6e99f53cae633b07f3e90503384942fe6f4e9d7f862abec7","0x822808104E173cB4B21549d8E921Cae9E4F655E9",!0,!1,null,null],["ethereum","unibombv3","UBOMB",18,"UniBombV3","3045022100c88500ba845cfb8036f20cd840e915bed6daa5c701c6ae539ca39ff3d3e6e0f902205684387815cdc0d4cfac2452f0a7459652713491217b719c0865e65187c105c2","0x265Ba42daF2D20F3F358a7361D9f69Cb4E28F0E6",!1,!1,null,null],["ethereum","unibot_cash","UNDB",18,"unibot.cash","3044022079a048bd84dd8688eee8e7ecef42b7db1f0032fa43a46821dfb131d045add3a102202ae4dca0ff800d755e0d5c7f3d4037309225f07b963db01170d3c9a331a52d1c","0xd03B6ae96CaE26b743A6207DceE7Cbe60a425c70",!1,!1,null,null],["ethereum","unibright","UBT",8,"UniBright","3044022059ff6bde353a9c94b95899dbe6a799a4b760b73d8c9d81df9a7fb61a6ec5137b0220787b10d4085e34242b2c9ba2f7dfbf3340fd6b888f70002c313b6775e51ce9ec","0x8400D94A5cb0fa0D041a3788e395285d61c9ee5e",!1,!1,null,null],["ethereum","unic","UNIC",18,"UNIC","304402201fcb4ec37869f8cac8b1f386d8629fb813bae28f82256b639b4d956a7f333e1402203f38f160d4048574fd1e97bd1c99c8616dc0c411b6b7ca06e00dc0c7e72fb427","0x94E0BAb2F6Ab1F19F4750E42d7349f2740513aD5",!1,!1,null,null],["ethereum","unicap_finance","UCAP",18,"UniCap.finance","30440220178236e4cfe5fbf72e7c4160339cf4a8a98373bb6f9d083dfed770dc8c52cb00022029a3b410fcbf57997f041ef280056d32baca017cfdd4b26c35c51cf824e5c9ac","0xbaA70614C7AAfB568a93E62a98D55696bcc85DFE",!1,!1,null,null],["ethereum","unicly_genesis_collection","UUNICLY",18,"Unicly Genesis Collection","304402202f077ec0a03fe81b8e8c763d572e44c92c3d2ffc56b348fe2b6552e0512b475502207c82d0e5e7909a217c4f2ca2a23ec977e5d61eb731dabbee31b7daecf8fe296b","0x3d9233F15BB93C78a4f07B5C5F7A018630217cB3",!1,!1,null,null],["ethereum","unicoin","IUC",18,"UNICOIN","30440220540960eb8c98f93b0d10a609738fc97dab2f71e7cda114acf4e253cc46a6c1e502207aa380a837aaee37f7b874e155cc9251576e84279ad14f3bf1ca18f06329bad4","0x358D7acb360aEa4d495b87E1246fb752B7684351",!1,!1,null,null],["ethereum","unicorn","UNICORN",0,"Unicorn","3044022009179825e9834eeb62cbcca7430db27bdfbd4790bc0be907d63191b1249220c70220446cab18abac8d34ce5f48033356a6b38fe9810673fe65fb3b7adcf2bffa7536","0x89205A3A3b2A69De6Dbf7f01ED13B2108B2c43e7",!1,!1,null,null],["ethereum","unicraptoken_xyz","UNICRAP",18,"UniCrapToken.xyz","30440220509e86ef74a4948e90175defda5e1e5139d5f8927def7bf933f296fec962b0d302203cdd9a876d8c38684004174e86e1446cc13b41dc52300e2aa581ef0e53c5c805","0x64c5572E7a100AF9901c148D75d72c619A7f1e9d",!1,!1,null,null],["ethereum","unicrypt","UNCX",18,"UniCrypt","3045022100e1fb1c2b4fc177396b12973352387507c9b298347c4aaa337f9aeb0bdc9d98fe02207ffa102ec79525b4f23cb4b3d68b58b6ae4aeb4d80687945db0ea8fd6a81c375","0xaDB2437e6F65682B85F814fBc12FeC0508A7B1D0",!1,!1,null,null],["ethereum","unidex","UNIDX",18,"UniDex","304502210084bc7ccb7e276c40188e9645f05cb2a0c133e90e366369909df23a42a1279f1c022000b9d02344f4445973a1b8eb9202a219b150b4faa666cf3691b6572ccf834495","0x95b3497bBcCcc46a8F45F5Cf54b0878b39f8D96C",!1,!1,null,null],["ethereum","unidexgas_com","UNDG",18,"UniDexGas.com","304402202df4be40990a09849f5fb484a6a035e3bd102f030b514f370401fc5a8a3cc82b022035e37b458b0bd9ca137a88ae58d91216f5656626520001cd1a785f1609118a1c","0xA5959E9412d27041194c3c3bcBE855faCE2864F7",!1,!1,null,null],["ethereum","unido","UDO",18,"Unido","304502210094e0f89129fa57d2081bdb9f5ec3c2344538666d2a97a4dfa8f3a7ad574bccfd022006d431bc75a723cea41f16eca5aad61930808e713080fa279edd2e5498c45afb","0xea3983Fc6D0fbbC41fb6F6091f68F3e08894dC06",!1,!1,null,null],["ethereum","unidollar","UNIUSD",18,"UniDollar","3044022059132a6925eb37040a69179e6263905108dc2d6845c1c84797f595510f4d49d102206bc33260622f313f7715d7145613288b57865f5a62624788d0b8b58956eec62b","0x256845e721C0c46d54E6afBD4FA3B52CB72353EA",!1,!1,null,null],["ethereum","unifarm_token","UFARM",18,"UNIFARM Token","304402202c55a42dc1d01ad365d9e795eea0fcac0af12d09b292ab0b0d8b72b96bd0f99902207d641c19888ca415cfd84394d969b0a25dfa54ebb92291f7db28e23dac07b610","0x40986a85B4cFCDb054A6CBFB1210194fee51af88",!1,!1,null,null],["ethereum","unifi","UNIFI",18,"UniFi","3045022100c3848419fb63f71535b02e40bd00c9245bfe7262c4b49296bb8a3cb874a88945022075685e94d9f6eb05dd59e7505c19f908afc282e490023983ea4ba5abb90945d2","0x9E78b8274e1D6a76a0dBbf90418894DF27cBCEb5",!1,!1,null,null],["ethereum","unification","FUND",9,"Unification","3045022100a26cc1d2d61b554807fda79fe6e9cb8cf48633a40f68bff8a224d8a82b4665c6022024faaf2d3d6f7be6673507dade195dd8ef12eb4e64f7b25821f61795087ef3a3","0xe9B076B476D8865cDF79D1Cf7DF420EE397a7f75",!1,!1,null,null],["ethereum","unified_stable_dollar","USD",18,"unified Stable Dollar","3045022100a5e5945d26f440529f56242d655ec3e5e922a898776129199d6ff0135981ca0602206434f8ef81bd0518139dc6414b5d67f7412c0ffa60d2d71bbe5efc874fde6a50","0x44086035439E676c02D411880FcCb9837CE37c57",!0,!1,null,null],["ethereum","unifty","NIF",18,"Unifty","3044022023e8de5b00e6a0fcebc21904238fc8207deeaca2370e60ac2d921e99e0fdfcb40220790b2a437fab2f265006f908af5f38d176f1df8dd429fbcf58631a8883e14bac","0x7e291890B01E5181f7ecC98D79ffBe12Ad23df9e",!1,!1,null,null],["ethereum","unifund","IFUND",18,"UNIFUND","3045022100c0e09974f768966b1a39c38549bc7a9384e73b7610ceff748e224abefe754a49022070a143854343e57f688785dd8312b43affcf6760efd20266a48915947cc045b8","0x04B5E13000C6e9A3255Dc057091F3e3Eeee7b0f0",!1,!1,null,null],["ethereum","uniglo_token","GLO",18,"Uniglo Token","3045022100d010b6aad61068a79a0ee48d66828de613342df6393b975c7921600da889eefe02205076eb0024cfbfce6b4427c8dc9297d17bbc4770b849aba0c07a3dff036fd3aa","0x87Fb5a2E712e3eE57607c32C43Ab177B0A234e0F",!0,!1,null,null],["ethereum","unigraph","GRAPH",18,"UniGraph","30440220547fe7e5619d03a21ee0c4080e4a1f91f8ba62e5fe1803db32b2888f3548afc0022072892b44ef59531cdd0ef4900555fb867e7e199d02877f74f673ea990f5f91d2","0x165440036Ce972C5F8EBef667086707e48B2623e",!1,!1,null,null],["ethereum","unii","UNII",18,"UNII","3045022100acdd977400cdae354d7a61fe2add45aa5cabb0825967d12b4722757e6cbd50c802204bb338345a41d76fc6a42937afdc1702908ab0b7ccb84846455da462a0c46914","0x825130Aa1bEeF07BdF4f389705321816D05b0d0f",!1,!1,null,null],["ethereum","unikoingold","UKG",18,"UnikoinGold","30440220586ce212d70d4f9e990d1d56506401499fc10bad82266652e2b2f5f3c0864a3a0220166576f1d72465c365c01945af7676b8cf5ccad35c3be98a00f598f6050322de","0x24692791Bc444c5Cd0b81e3CBCaba4b04Acd1F3B",!1,!1,null,null],["ethereum","unilayer","LAYER",18,"Unilayer","30450221009e0a7143ee390f80578e59b605b8a7cbe0571000ad7594f99d4fbfebea337c48022063ae6437447e0f38c35ff4b0d0c4a87a378d3155029c06ffa7e12c63928c814f","0x0fF6ffcFDa92c53F615a4A75D982f399C989366b",!0,!0,null,null],["ethereum","unilayerx","LAYERX",18,"UNILAYERX","30450221009b6ed32a84729656b2dad1c1064c4c68b51674fbf3566c44f80aef0b706a9deb02202e3746e925b5f29318aa0be712fcf96d2133d3e07fa22c1cc2891c338c4c044e","0xfe56E974C1C85e9351325fb2D62963A022Ad624F",!0,!1,null,null],["ethereum","unilend_finance_token","UFT",18,"UniLend Finance Token","3044022034494c83276114c18e8996c93302ace9885cc04f1c20c50fe9e85276717d51b1022070a262d072f232de2b5853fdfcee9aac0e262a61835f3c3af1c30f9f435e75b7","0x0202Be363B8a4820f3F4DE7FaF5224fF05943AB1",!0,!0,null,null],["ethereum","unilock_network","UNL",18,"unilock.network","304402203727fd17eccc17a48252af1e0932431a8a49e443aefb958b2ef638f758bff02402204a584edfbc96fa4b5dd2930265c4246b2d91e4241383daa9d5790130d4a12a17","0x04aB43d32D0172C76F5287B6619f0aa50aF89303",!0,!1,null,null],["ethereum","unilord","PEER",18,"Unilord","30450221008828a9c0352b5fb891d0d5dc22e8c99950779e0d4c34461c45e1fa4bacdb2a1f02206b62d7c8e58ef024e43dc439ad537f3d3219699e1998b1d0bf9047c6b4e84ff2","0x5Dd115EB39A0FC5DA9022e4bbB8e8679cA066A74",!1,!1,null,null],["ethereum","unimex_network","UMX",18,"Unimex Network","304502210089744ea9af6528688b28ab687d24c18c2917d14240b65e39e75a8005cd14c22202201c778fac9d1092011840652da21d49c4073771a2277e181c1ac21c3c6cb652e4","0x10Be9a8dAe441d276a5027936c3aADEd2d82bC15",!1,!1,null,null],["ethereum","union_protocol_governance_token","UNN",18,"UNION Protocol Governance Token","30450221009a6cc4ed66e1318f140dcba48089e0e4a5457d6360d858ae411a3dd07ce00e6302207132008a9700359823dd2248bb1e6856d05656b77cf3bbaadf5c27cf86273803","0x226f7b842E0F0120b7E194D05432b3fd14773a9D",!1,!1,null,null],["ethereum","unipilot","PILOT",18,"Unipilot","3045022100aef593f3e21602448031e03468c150b5e095221fd176f6c212cb6a14103fae2b02201d471cb3ef4285d08ba5d4ed33f827e2b7e767c347c54797b95c2bdd294e9240","0x37C997B35C619C21323F3518B9357914E8B99525",!1,!1,null,null],["ethereum","unipower","POWER",18,"UniPower","3045022100a1deca636d01b9530d4dde5d884e6a1bedeaa3bd8bfc1ce929a5f785e6fc180602201ab218e07c4800a0858e677a5b07f44a0e377d33f18b34a43cb0f3b638e0402d","0xF2f9A7e93f845b3ce154EfbeB64fB9346FCCE509",!1,!1,null,null],["ethereum","uniqly","UNIQ",18,"Uniqly","3045022100c976b1d99548397e10618ac5d55601283efe0a12541669bfc78229ae8bb46dae022020afde0e95105423841886d172bcd91170118a4a0079d6dd6516b569ac2ad35e","0x3758e00b100876C854636eF8Db61988931BB8025",!1,!1,null,null],["ethereum","unique_utility_token","UNQT",18,"Unique Utility Token","3045022100935d192b5ffa2ccdc7c159e20c87a8516e8c89e4f6af2aa00e657d671f1a375502207124b67fe289496d0159f2669adabcc9cd468ce80701af8665ac15c96165733a","0xa80f2C8f61c56546001f5FC2eb8D6E4e72c45d4C",!1,!1,null,null],["ethereum","uniristoken","UCO",18,"UnirisToken","3045022100e889eb7cb8c469d3d161a47ebfe5512a4f040f82579859ddb6021b80e6cabf9e02201bd5f0eb9d03856c11dfbdcfe483b290802eb5e24f228461b6f7bcb60c60f47d","0x8a3d77e9d6968b780564936d15B09805827C21fa",!1,!1,null,null],["ethereum","unisocks_edition_0","SOCKS",18,"Unisocks Edition 0","3045022100fa0f4116e546fff687a42f4b267b5b02bac1dc5fe5b006cd2d0b53e4b7c2bc4f02203d2e44a21a0853d54e4412b4e707f2ed9fde49d9b156f2141a63d92dd9d039ec","0x23B608675a2B2fB1890d3ABBd85c5775c51691d5",!1,!1,null,null],["ethereum","unistake","UNISTAKE",18,"Unistake","3045022100883d424ff5e3606794c4ad0ce037e83bf019ee848df5c4b1fa02b65a3292f78d0220697caf0106f87b478551c365e5bd085292c975ef76872329d8a6fee2b92f0adb","0x9Ed8e7C9604790F7Ec589F99b94361d8AAB64E5E",!1,!1,null,null],["ethereum","uniswap","UNI",18,"Uniswap","3045022100ae5d49e992705c94bb5afc7eed3eaf3a3cc5641b311eadbe667a04d5cfcc4ccd022074ae0849a4f1136631202d3d999c744fd76b422122d14d114ab7414e7287a041","0x1f9840a85d5aF5bf1D1762F925BDADdC4201F984",!1,!1,null,null],["ethereum","uniswap_daieth_lp","UNIDAIETH",18,"Uniswap DAIETH LP","30450221009a15adfafe017f2ef33a5f4582b1f9e6526006e665b8c0eda0bb0cfc18772e43022003d659f9b67d1b3ae9afceebd93394bffeb37cd0c96d727c70431e84155df45e","0xA478c2975Ab1Ea89e8196811F51A7B7Ade33eB11",!1,!1,null,null],["ethereum","uniswap_ethusdt_lp","UNETHUSDT",18,"Uniswap ETHUSDT LP","3045022100fb7deff61e33c6a9af6d2a21f4be332b2a26e0e9da3917f67c08e758a67ec8b502200839331267a2129002d70b7afabb9aea0087547621171666e9cd07ed3edbfd74","0x0d4a11d5EEaaC28EC3F61d100daF4d40471f1852",!1,!1,null,null],["ethereum","uniswap_usdceth_lp","UNI-V2",18,"Uniswap USDCETH LP","30450221008c4c5dc4d913ddf5ff1e86c598feb7bc464f91b3c39c887d229dc4082654ec4a022063e0ecf9fc8649a25008bd5b9a86aeeca76f58e8475ec4af7eece150c04aa429","0xB4e16d0168e52d35CaCD2c6185b44281Ec28C9Dc",!1,!1,null,null],["ethereum","uniswap_v1","UNI-V1",18,"Uniswap V1","3045022100f0b13f7a31f8e16403af084d5e455a5861938328e609b73fa06df3193ed03519022000f907bd000004bb0764f4dfa7fd428bedb2df07ae61b9b0c38ea1e48344fab5","0x2a1530C4C41db0B0b2bB646CB5Eb1A67b7158667",!0,!0,null,null],["ethereum","uniswap_v1_","UNI-V1",18,"Uniswap V1","304502210084bec3446d3403b0e077c33afbe5b574e751406baca0cccb8b2402f1e9b0bcbe02204e3486012f0a1232c531adac4e25d559df7cc35edbaa78581d36a225a5e3c18b","0x97deC872013f6B5fB443861090ad931542878126",!0,!0,null,null],["ethereum","uniswap_v1__","UNI-V1",18,"Uniswap V1","3045022100bc725b101b98aeb3eff9d97c1f4abcd3456adff812675565ae357d70c47e60600220724cf976be53b01cfe90f696b9ec963972553660c1d9bfa5c40d52567d0fe409","0xe9Cf7887b93150D4F2Da7dFc6D502B216438F244",!0,!0,null,null],["ethereum","uniswap_v1___","UNI-V1",18,"Uniswap V1","3045022100e41cb5fe74e224b16ee0a6f97f924b7f98936dab55b1b9032057fbee569eab9d02200736e4c63ba5ab30c89c62469e0f29188ce309b77dd00488291fbebe801ad646","0xcaA7e4656f6A2B59f5f99c745F91AB26D1210DCe",!0,!0,null,null],["ethereum","uniswap_v1____","UNI-V1",18,"Uniswap V1","3045022100e8c61e908e727913b937452b8fc3f3a7b199bb9759b46b9a9c04e3fab65065c002200a26e4519e6a97b53ebdba66e91fb7c2616118e71090dc1dc90bc087ad48cc4d","0x2C4Bd064b998838076fa341A83d007FC2FA50957",!0,!0,null,null],["ethereum","uniswap_v1_____","UNI-V1",18,"Uniswap V1","3045022100dd4d769ec72db2175d52974f936be1f7dabca5f8a0f7dbac9da918c192e326c30220371795eb0fba49e8fd780001fb82cf5e9323c846859d214e106406c11d529a28","0xF173214C720f58E03e194085B1DB28B50aCDeeaD",!0,!0,null,null],["ethereum","uniswap_wbtceth_lp","UNWBTCETH",18,"Uniswap WBTCETH LP","3044022040087879e22de97ecc74f0f05071bbfb3a5cd92886733430257d324e88347eb702204de99635441899d4f0355aece01651ba2797db8c60dee854cf5984cab7c409d5","0xBb2b8038a1640196FbE3e38816F3e67Cba72D940",!1,!1,null,null],["ethereum","unit_protocol","DUCK",18,"Unit Protocol","3045022100f6a1f534dba615ebca556c11582f9c31171342aede402a08da969ef5e0b8dbd9022001cdb0f812a41dda6a176e82221377507e87eb9d3406c3373bf3a71a649a831d","0x92E187a03B6CD19CB6AF293ba17F2745Fd2357D5",!0,!1,null,null],["ethereum","united_traders_token","UTT",8,"United Traders Token","3045022100ac853d08a5b3e9ff53d460222e771ae33b4094286681608da4649c88e594aea70220764f59587bad9933fb2e9ba4e02e2d294791f8bf729bcdd64e99e36d62b39a22","0x16f812Be7FfF02cAF662B85d5d58a5da6572D4Df",!1,!1,null,null],["ethereum","unitedcrowd_token","UCT",18,"UnitedCrowd Token","304402203642523eb34515f0ca115a3d80f7226de41f1978d66f8dd1ca709b11cb18b16c0220626cad6004d8ac22a924c78157a6d3516df5090e0b0a21e3d19e00f7ef76a84e","0x6d1DC3928604b00180Bb570BdAe94b9698d33b79",!0,!1,null,null],["ethereum","unitrade","TRADE",18,"UniTrade","3045022100882e6f0010d74ae87d026f1b38ade802a98d0423bf89b11f5731c1c8aa92faf60220519578226b773068fffe15d955a0172095bd2dfaf8c13c6db19e85d3f9049379","0x6F87D756DAf0503d08Eb8993686c7Fc01Dc44fB1",!0,!1,null,null],["ethereum","unity_network","UNT",18,"Unity Network","30440220785fbfc0163fc8c1e4abe96174599a07beb9c51dd59abfe0a4ffeac94918f4b702206f17687bd72217e62eda8fe69bddae2cd0efc855459bf8d46e35bb09474bc82a","0x8d610E20481F4C4f3aCB87bBa9c46BeF7795fdFe",!1,!1,null,null],["ethereum","universa","UTNP",18,"Universa","30440220217b5e38fbdfb09ad618487fc8251e8ba3ca206d18ee74b7725ffafec6085f0e02205792f178665d07fdfc0c7e420513417d34a93f9f7a67c6e611f165396f07467a","0x9e3319636e2126e3c0bc9e3134AEC5e1508A46c7",!1,!1,null,null],["ethereum","universal_basic_income","UBI",18,"Universal Basic Income","304502210092d886437c5821572194d8d6b73f2c719da1949e988b8e75022c66133e7af84e02202b0ddd6080f3ad0f598a9bfee17f64978acee2835bae8f7878c25501d2ed40f1","0xDd1Ad9A21Ce722C151A836373baBe42c868cE9a4",!1,!1,null,null],["ethereum","universal_bitcoin","UPBTC",8,"Universal Bitcoin","304502210084b0d0ed95047098f65d1e8924dd1c694fd64b4e0f03c0ea9ad68973a166d3fe02205fe9a7e5b88aeb623454bbea77c29f58f01e6f6a4c6e7f8d9eecbde51444db7f","0xc7461b398005e50BCc43c8e636378C6722E76c01",!1,!1,null,null],["ethereum","universal_carbon","UPCO2",18,"Universal Carbon","3043021f25eff87a03aa08fa17d6a155a0f1df3085d812f09148d0b1dcfe8a95c774b402207077930b122ccc35cd6b4b81d265d7ee7c7eda0066f71b50346a1cd9ccac1a3c","0xaF9700FcA16276Cd69c4e35FEecC66D1116826cC",!1,!1,null,null],["ethereum","universal_dollar","U8D",18,"Universal Dollar","304502210096933e514d5e0f3a4eb851ec9ba55b6cb301f7924da43e6b4571d1c73b73d97a022012653591168d521093725b2aa12e24cbfab958bf05f808dee5ad9f13f5e566d9","0x888888877A18532b78d259577d00057054C50Dd8",!1,!1,null,null],["ethereum","universal_euro","UPEUR",2,"Universal Euro","304402203a945d1f76ca4386777b6fd3ae5ba3760e591f777fa63d9b2c85ba280b382c2f022063fcde90957d81c609e381e21e07dade2068f416491411af5aa5b19c34de740a","0x6C103D85C15107Dce19F5a75fC746227e610AaBd",!1,!1,null,null],["ethereum","universal_gold","UPXAU",5,"Universal Gold","30450221008d8b751214f8beb8ef4e6af73cb8ba1cc1f9f478ca4adb7be0fd30b3d21990e402206507fbaef7f2448cfc747df5ecbb243b96c4bec8d4e00d93c0c75bbb27961fef","0x0557Df767419296474C3f551Bb0A0ED4c2DD3380",!1,!1,null,null],["ethereum","universal_liquidity_union","ULU",18,"Universal Liquidity Union","3045022100ae6724e999d1979d6c2bc9d396ba0fae3b0b017a87317e83e457b92fb9d8cb56022023bf51843f1bae945948dcdaf0627df1b329e3a4ef357aad3516aa8ded3bc547","0x035bfe6057E15Ea692c0DfdcaB3BB41a64Dd2aD4",!1,!1,null,null],["ethereum","universal_protocol_token","UPT",18,"Universal Protocol Token","3045022100e7bd4ffe0903e61a6864bb4e8e7407206eb47507a435daac776aad694c20e69802201e2c6532a91a191db399ddf7c654b99aeb30591a9a875b752d0964642ddfdbfe","0x6CA88Cc8D9288f5cAD825053B6A1B179B05c76fC",!1,!1,null,null],["ethereum","universal_trade_interface","UTRIN",18,"Universal Trade Interface","3045022100e4c3241e40e7512a9021eaf915634d2d523958abc90fde17756ff27f52557084022000d839cef259f256f7434cc84f8d315b433dcc7424a0a29b8b9906f4175782e1","0x99f2B69ee2468C834A634FF50d930aE64e3e500f",!1,!1,null,null],["ethereum","universal_us_dollar","UPUSD",2,"Universal US Dollar","304402202ae31b6001a1305635f2090cbcfc5d4f6803b20780ff7da672bdfef25aad76e602206d86ccbe5929391eb6bd183f9f9c0058d075d18da77ccef5da386f7a628add44","0x86367c0e517622DAcdab379f2de389c3C9524345",!1,!1,null,null],["ethereum","universe_coin","UNIS",18,"Universe Coin","3045022100bf87ea5163396b9b628a67ff8cb950e5d55de680d52abee85f61c3ddfec33fd8022037610e77a38f965556374404350b25220e3a37c7965050616dea82ac965ba0a0","0xedC87caB8bd12ca39088DeAF9fdfb63503f19f85",!1,!1,null,null],["ethereum","uniwhales_io","UWL",18,"UniWhales.io","3044022029a5769f669000cb9e40b81b87fa531518004a2f9aee6b9270bb5b23a5cd323c02206709828af675344cc93080b9d88233530d9b14228e3a8cd2d655869352abbba5","0xdbDD6F355A37b94e6C7D32fef548e98A280B8Df5",!1,!1,null,null],["ethereum","unix_gaming","UNIX",18,"UniX Gaming","3044022004fb3970307185be834d8639aac204c21ec7c3c209a3cfe411608be2c115f48002202bf33c3ec274b34a2dfe301c8018a2f856b87e1aead02a46c7e5c67148f4236a","0xDDD6A0ECc3c6F6C102E5eA3d8Af7B801d1a77aC8",!1,!1,null,null],["ethereum","unlimited_fiscusfyi","UFFYI",18,"unlimited FiscusFYI","3045022100bbcb05df936d777e5d43432d1c70557468c779fd95361a0fca980d6f0e3809f602206b5c887fbcfd83685042820fdac93704c0830b9e121938ca9f0ac36e5ffe57e2","0x021576770CB3729716CCfb687afdB4c6bF720CB6",!1,!1,null,null],["ethereum","unlimitedip_token","UIP",18,"UnlimitedIP Token","304402200687a2e01600a1ba5bc536fb3187171fbabaa2797a87ed5a99e8ea64c431ed4f02206feae4a905e08d469e0d82e6b52cb04d7d41edd2758dd2eb1c5bc88c58dab884","0x4290563C2D7c255B5EEC87f2D3bD10389f991d68",!1,!1,null,null],["ethereum","unlock_discount_token","UDT",18,"Unlock Discount Token","304402202d11e447c373ef5ca210af7fdcd777ba8866f49dc931f22830ceaf4603b0d2b302201ef9d683a9010ea17c538c79a1d6706391252de34e11bcef5f9a4bdcf18b5d96","0x90DE74265a416e1393A450752175AED98fe11517",!1,!1,null,null],["ethereum","unmarshaltoken","MARSH",18,"UnmarshalToken","30440220229aa2910d79c31cc52066953c624e17a9a8fa1a2f7e48d5c9f0fbe5f59db1d602206b65f9bfe097ba5f210fb30fdfa4797d473d842408b59714cc046de17bc7dc11","0x5a666c7d92E5fA7Edcb6390E4efD6d0CDd69cF37",!1,!1,null,null],["ethereum","unore","UNO",18,"UnoRe","30450221008b1ac18323e4809537dabe9cbfc4ea8775f949257be5feeb749bf3116271a3f60220034b0cf835d5d960a9172647989e2263583f5a894b39dc774d36adf38a5c09c9","0x474021845C4643113458ea4414bdb7fB74A01A77",!1,!1,null,null],["ethereum","unoswap","UNOS",18,"UnoSwap","30440220388d713f13d97f1fd1b7ce235e00e8f446ede4184a9a50973b1b8dbc6c35957d022005409254b5a5a62d1a20ff3125002d59e9e9d39440d5a2880d19044e82a2090f","0xd18A8abED9274eDBEace4B12D86A8633283435Da",!1,!1,null,null],["ethereum","unreal_governance_token","UGT",18,"Unreal Governance Token","304502210090c53a36a07ce4ea4f45e3aa052fededc2b6bfd868354e131ea690155de0e14a0220307592053ff7f164deb3a55526e05b1ea400e8717872aec4099816ec1eb61c16","0x9cf98Eb8A8B28c83E8612046cf55701Ce3Eb0063",!1,!1,null,null],["ethereum","unslashed_finance_governance_token","USF",18,"Unslashed Finance Governance Token","3045022100993eefa298ab71ae04290dc842fc6813cb3dde2e7217ad568d71e9c4c8808bef02207f8b458cb2488787b0483c8b382c7718ec635e6d5e02b1ac3e495526f385c19d","0xE0e05c43c097B0982Db6c9d626c4eb9e95C3b9ce",!1,!1,null,null],["ethereum","unvest","UNV",18,"Unvest","30440220018a42b787965222af0f35e4042149bf44bd667c92edd77aa22c23d87d8f8b43022048e2e367891af965d7740ab8a306cd53d8bc60a688435b6b6b04a4ad591f5f1c","0xf009f5531dE69067435e32c4b9D36077F4C4A673",!1,!1,null,null],["ethereum","upbots","UBXT",18,"UpBots","304502210096241e0273ebdd604e6ec7cccd9315dfcb9fdfe4a39f8b52e7299d9c4e15f8ad02207b2e7c2d8563a1355be842046aa1382292100c3a1c48ba114584684e0077f5eb","0x8564653879a18C560E7C0Ea0E084c516C62F5653",!1,!1,null,null],["ethereum","upfiring","UFR",18,"Upfiring","30440220279130af730f975f61f4b83fadcd91eac35541f986be855cfe2100058330f5eb02204274e3f80f884360e2ec2e0c6985d0b8e48597921322cae817dbe6486a6d3c12","0xEA097A2b1dB00627B2Fa17460Ad260c016016977",!1,!1,null,null],["ethereum","uploadea","UPL",18,"UPLOADEA","3045022100c3239a9892bb79ca8ed6359787742581a76db3fbd8402c0166069225a3d89ef2022035515ff65e67058b08a2e5aab4dc08345e5d538ba295c5dbc140e64de216c68d","0x6aca6De211eE17d38D05C7aF583E43F9B1EC4c07",!1,!1,null,null],["ethereum","upper_dollar","USDU",18,"Upper Dollar","3045022100ac5825e88cf323556371984aa94e303576c034370752eb9202da617284dca53e02202d5130745e47c7776b3bd074b29f89625795ebbf57b0cc2820cee2bb0fc7e850","0x41a03E41eF555392c9f0AD60f4F61E263078BF10",!1,!1,null,null],["ethereum","upper_euro","EURU",18,"Upper Euro","30440220665147f1095faf822ebb233b780d2176c6341ad61ac669a26329f0927ca1eabd02204373f692ab89d3450d6a43a64c47f5786f5493c93facb3dfac123c3ef45b351a","0x6c139349ee94eBAaff55eD52d382673C263B22d6",!1,!1,null,null],["ethereum","upper_libra","GBPU",18,"Upper Libra","3045022100aaa8877b7f842248e161b8db337d89a2167cd42d7059c1c76ccc37842b0c70bc0220682875aea2a2200b59e2d60356fe03d0bee1ee4710b4f9cda7d752fe795c7384","0x27ed129C298c5Df130364083F491e2920E5A2f29",!1,!1,null,null],["ethereum","uptoken","UP",8,"UpToken","30450221009895f560b5030d2b42ee0025769f38fc06c795d5c3a8a76613d98ad11c48174302201aa703c6154a3b2726ad7a16f8579502776e5996b8928a6ca45796e49450a9ee","0x6Ba460AB75Cd2c56343b3517ffeBA60748654D26",!1,!1,null,null],["ethereum","uptrennd","1UP",18,"Uptrennd","3044022007ad0b387bb496792e09e766eadd20e1f1fc0bf86d93f294cef58637dbad8907022079917cef059f7c2918b2b225478aa43c2dbff852e11e6e92c4b31b8b7b97c470","0x07597255910a51509CA469568B048F2597E72504",!1,!1,null,null],["ethereum","uquid_coin","UQC",18,"Uquid Coin","3044022062757cd154148108f13df493a15bfdc5819fdb38f79a2ec238ac592c27e6a13502206bdcf9c6016b25667986945de80c36c67c2ebbec7243a7b4a6da2725bc6925ba","0x8806926Ab68EB5a7b909DcAf6FdBe5d93271D6e2",!1,!1,null,null],["ethereum","uquid_coin_","UQC",18,"Uquid Coin (Old)","304402204f1a9f6c271703beb481fb832e9728a2dde72cdc9a6bebb626f9f5ab662bda0f022064f4a545c5ee18f8fd54cff1b788dbd9f300d2194b89bbbc6f622bcb6988d5c1","0xD01DB73E047855Efb414e6202098C4Be4Cd2423B",!0,!0,null,null],["ethereum","uractoken","URAC",18,"URACToken","304402201f0873b312fcc5e9e3308797dc4fc1d0104d8d5fd85ed92231e4d8da29564170022031281a7e482580934c7769d8fab0c28b1fc9bac300e3e1e725e7665f2cd53ea1","0xff8Be4B22CeDC440591dcB1E641EB2a0dd9d25A5",!1,!1,null,null],["ethereum","urbit_data","URB",18,"Urbit Data","304502210080997993b6843c75366ea48888665abbee385168c4fdd69372f75420f9bddd7d0220399bfeff2801f90b9c9e42f66b84a1d38d2d95fefb8dd5eccf044e3cc3552b54","0x931684139f756C24eC0731E9F74FE50e5548dDeF",!1,!1,null,null],["ethereum","ureeqa_token","URQA",18,"UREEQA Token","3045022100c24464b3d06b48f3e0a31ac49268c3ee5a097b6772b64a6840ece06fa5c68e9202200bd9c704a22c64bb3d5d7ea258bdcfc2da516777e88c2513e8722bf5e2f4d222","0x1735Db6AB5BAa19eA55d0AdcEeD7bcDc008B3136",!1,!1,null,null],["ethereum","usd+_dukascash","USD+",2,"USD+ Dukascash","30440220386de02b4251003068d7e9c3de0ade62c901884e2f1a8dc027af4484dbf662e702202657d0d8a6bf1696e2d0d624f85b3dd1b332597ed904cfe22099fa2fe7f1288d","0x3ECF807b8A10E053d5273312f2384e5d59f81057",!0,!0,null,null],["ethereum","usd__coin","USDC",6,"USD Coin","3045022100b2e358726e4e6a6752cf344017c0e9d45b9a904120758d45f61b2804f9ad5299022015161ef28d8c4481bd9432c13562def9cce688bcfec896ef244c9a213f106cdd","0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",!1,!1,null,null],["ethereum","usd_digital","USDD",18,"USD Digital","30440220616ab5781b5baa18c5177da623dd8bfbfdbeb3fff7269ea0d23c9f626ad3813102203a431109540bf8789267d828d0ab279fc807079c6064cc2b1ee8ede9dab9c1f3","0xBdbe4D9e43E8f305AfE9462802B8691C45Caf596",!1,!1,null,null],["ethereum","usd_tether__erc20_","USDT",6,"Tether USD","3044022078c66ccea3e4dedb15a24ec3c783d7b582cd260daf62fd36afe9a8212a344aed0220160ba8c1c4b6a8aa6565bed20632a091aeeeb7bfdac67fc6589a6031acbf511c","0xdAC17F958D2ee523a2206206994597C13D831ec7",!1,!1,null,null],["ethereum","usda","USDA",8,"USDA","3045022100c8a6223902aed3fd0119814ea0d9a149db568a2a6329dd98bb8db953db57e12b0220530e33d7a2e9dc165921717e4ad0a67c776e4c871f7043693ccfcf3b0f6b5664","0x3C7b464376DB7C9927930cf50EEfDEA2EFF3A66A",!1,!1,null,null],["ethereum","usdf","USDF",9,"USDf","304402203b68f58b477d9a0c012c404314cdc32f91ee3b94212ff3b254bb6af873533f4b0220646b75d110501a5093e723bd029aaf78e1cca6b83138a295788d7493d3efa520","0x05462671C05aDc39A6521fA60D5e9443e9E9d2B9",!0,!1,null,null],["ethereum","usdfreeliquidity","USDFL",18,"USDFreeLiquidity","3044022027110fedef0569c2a83e31fba2a458d0877a443d01d8fb0db3e30649f156f44b0220163a618bc4e80bce0551091431bcd5c86c8127c99d8886cb45553fc2078dc34d","0x2B4200A8D373d484993C37d63eE14AeE0096cd12",!1,!1,null,null],["ethereum","usdk","USDK",18,"USDK","304402200f9cb8bf7823d45596c2dcb1e543f430ec41a08a74ec79eb1ae5b7066d2d748802203ff536359bf9f0e2b825eace9280372888dbebf3ef383a6d6aa35f56f126e679","0x1c48f86ae57291F7686349F12601910BD8D470bb",!1,!1,null,null],["ethereum","usdl","USDL",18,"USDL","304502210093a92b8f17db7c45a7c32c134c47d9e7345d3a215bcee9cfb49f7b89ab86a00b02207f24b69cca098af9125e515418c161b7823fa9d2b8f45fe89ebd9b82c03b4932","0x3e991dBEc296E00626E58C33b62E53beC9D54636",!1,!1,null,null],["ethereum","usdp_stablecoin","USDP_UP",18,"USDP (Unit Protocol)","304402206850c18f386b561a83443a0c5f3eee4de478252049c59793712290dcdc4fa64e022067606b2cb3af8373af01d24ca2100c84b3120057cab2166764d1b0589ff13c8c","0x1456688345527bE1f37E9e627DA0837D6f08C925",!1,!1,null,null],["ethereum","usdq_stablecoin_by_q_dao_v1_0","USDQ",18,"USDQ Stablecoin by Q DAO v1.0","3045022100c2ef7b32a130585652cce8e050ce8f8396c5b614cb34575dfe31cee6f298fa520220540e9db2f1e4a6956abb8f645e33f7e5681df5be77168478e68ca35409b13278","0x4954Db6391F4feB5468b6B943D4935353596aEC9",!1,!1,null,null],["ethereum","usdtbear","USDTBEAR",18,"USDTBEAR","30440220337a8bdded6abab493db80309eb715ffad8d9f78b0700e2da7efff5f8ca0873c0220559e0683ca0b79f2ae1561563db41dcf0ce81096013199a34514da326a8adf39","0x0cd6c8161f1638485A1A2F5Bf1A0127E45913C2F",!0,!0,null,null],["ethereum","usdtbull","USDTBULL",18,"USDTBULL","304402201af5411fbb66004e0b873088627bb6a3bb3aa247f650a8180568fe124ca8792b02203706a54e708eedc8106b809e19e9c1bccc526c9fb604a01a757e5328c426a4d9","0x8Cce19943A01E78B7C277794fb081816F6151Bab",!0,!0,null,null],["ethereum","usdthedge","USDTHEDGE",18,"USDTHEDGE","30450221008114a6793474ce410046dd12abe1507919b1b85a5b709d177f8bed8a5a70477e0220395b7f5cf712639b0ec5958ecafa532eacc3d4bdd5a4867720fb0ef0f08eba22","0xF3b8d4B2607A39114dAcB902baCd4dDDE7182560",!0,!0,null,null],["ethereum","usechain_token","USE",18,"UseChain Token","304402206978a6c48acaaf034a56c389cec77b3c191914a50309a452645a59dbf45a604902202fe96761774a0c78abcbf9208e6e80ab04aa42e01066eec6ec1b47a47ff49017","0xd9485499499d66B175Cf5ED54c0a19f1a6Bcb61A",!1,!1,null,null],["ethereum","user_pay","UP2",18,"USER PAY","3045022100ea211fb5971c3bde6619c3a2c984a2435b84f53171d421f8f893a2d66f5554b602203b1e140db0c1e63e823ca8e9d6b4887f42b762cab988dcca3a53fd2f99a6a217","0x4f54A83f5929a2453c2e18E25B215f6F8F2828F9",!1,!1,null,null],["ethereum","usgold","USG",9,"USGold","3045022100fe18342438089fe32b88deb7d51f59215f2c46e32eba99e95d98e4641675f70702205e69eb1affef5bfed19934cc49224b310b5cb57a58b71cdc8045e71a8b1582e0","0x4000369AcfA25C8FE5d17fE3312e30C332beF633",!1,!1,null,null],["ethereum","ushi","USHI",18,"Ushi","30440220320fa583e29f67543e780563195b28ef71502c37a6496972c0c05cb0dfa3419702205dfad0aedfb6c5429d5eefb807e7a697b5b9c52bad52625420d1b5e0bf32c413","0x6Dca182ac5E3f99985bC4Ee0f726d6472aB1ec55",!1,!1,null,null],["ethereum","ustonks_index_token_april_2021","STONKSA21",6,"uSTONKS Index Token April 2021","3044022053e33cc206af56742a99a4c543af57acf5b1fc903ba627c790ae93651939501d02200d6484a1469de20c2b3450ca79d7837a62e498fb8f3929093a7aa8421427555c","0xEC58d3aefc9AAa2E0036FA65F70d569f49D9d1ED",!1,!0,null,null],["ethereum","utk_","UTK",18,"UTK (old)","3044022054a337872038bed1b662f4d988c9a692d6eda31638038a147ac98653236be1ac0220620535d2f5f48f783b207b2e16faab4401809f3f4e6ba302763d3873f53cad3e","0x70a72833d6bF7F508C8224CE59ea1Ef3d0Ea3A38",!0,!0,null,null],["ethereum","utopia_open_platform","UOP",18,"Utopia Open Platform","304402205badcadeaa2899035ff28102acf4e8b8883027b0bf57585c71af7c57bb0d60a502203486fa3f363fecd66e63a5ee9bd3a7c5994b158d39f1669eacec3449e566938b","0xE4AE84448DB5CFE1DaF1e6fb172b469c161CB85F",!1,!1,null,null],["ethereum","utrust_token","UTK",18,"Utrust Token","3044022049b609282f6de4d4f5d4d7115f2a192d442c02603e3b947d22a9feb7f783ecf702206e22eaaf5be0c6961c94e8872c3d593bff4e88726159cb0b11b0cc56312b8ab3","0xdc9Ac3C20D1ed0B540dF9b1feDC10039Df13F99c",!1,!1,null,null],["ethereum","utu_coin","UTU",18,"UTU Coin","30440220790de4c37ad9cb58bcce7781e8070b4e18a8934f546b14229eaa8309547943e0022067a219792b0e74245815dc793246ce763a3465ab65646ffe28c0eb5532c5b8ef","0xa58a4f5c4Bb043d2CC1E170613B74e767c94189B",!0,!1,null,null],["ethereum","uunio","UUNIO",8,"UUNIO","3045022100c69b4dc9a391e90ee60e57b5f8a4c186e18fa7cfea4bdd2e2482e750ed2e2a9802205fee5f1c57b15e05960355f3ea337f30071db716afab68c3541b39a5a2837b12","0xcB7d2C31B87E0E88D5148c88bD7ADfDf96C3ddf9",!1,!1,null,null],["ethereum","uze_exchange","UZE",18,"UZE EXCHANGE","304402207557df2b178cef9dd2df887c89e026ee92a8a086b67c787e50d1fa9b1d47720c022051856039d25eb9b79b5a12451dc316fcf3787a543090e47b293a39eefc143f6e","0xBdCd5faFe4336a844233EBb0aFF845D6B2100899",!1,!1,null,null],["ethereum","uzuras","UZZ",8,"UZURAS","304502210095d36d74fa8ecec3e59fcfe3fba27832c71e81e2317c96689f1cad6e950cb6e602202fbb86e32c112ab1405253595bbe13e8182eafa913a7474f5631c5542be6be42","0x66e5D4063219a54A8244078AFFB49E23982D9640",!1,!1,null,null],["ethereum","v4p0rr15e","VRISE",9,"V4P0RR15E","30440220688b3ef0846c5a514e31d91b4626bd9e99dcd077aec72eedb0d904d78108a3a702203949bc510d34277935f3dfcfb285d1d0a8ec952f1361e760cb1f4ca83799c7a2","0x3E6a17E1913b2f49Ceb6803E46094066ff5f9c78",!1,!1,null,null],["ethereum","v_id_token_","VIDT",18,"V-ID Token (Old)","3045022100ec885adee6ad733deed4614d1b3d88290a1dcbb52d65936660fb8b817b73ab7d02205fc58f248285ac710f39d4e5503692d5e14f470a37f2d3abe1f69b81e2f68cf6","0x445f51299Ef3307dBD75036dd896565F5B4BF7A5",!0,!0,null,null],["ethereum","va_na_su","VNS",8,"Va Na Su","3045022100e47fb37ee26fc9b328a9ed6edbb9c91eff2034cb9901b09596a6ec7d21b4d58602205f4efb07e434f10864f18a0dd3053622c7bf806f9c91febf77d45edf03c09c09","0x97941Ff1962026955852E9609E202D1058BC0f48",!1,!1,null,null],["ethereum","vabble","VAB",18,"Vabble","30440220438d78f1d01dabd95333eb02668c66c2254e3a5c4d1d8f76d4145b476a705023022044c6538bb4111837a9d336c171cf2c39b705fed26380fd3ea8e76d584e8bafa3","0xe7aE6D0C56CACaf007b7e4d312f9af686a9E9a04",!1,!1,null,null],["ethereum","vader","VADER",18,"Vader","3045022100bb4d667bad6cf6762ad349ff6732ef404abdfbd9e1fe2d7f632b748f9c3baf5b022024707526c10a1089b2a371960b568400c669b76425b66453cd843317ec7b6a51","0x2602278EE1882889B946eb11DC0E810075650983",!1,!1,null,null],["ethereum","vaiot_token_0x9F801c","VAI_",18,"VAIOT Token (old)","30440220441aec07d80892d7c980d5ad4442dca63d972846e8844fb65402767fe76203820220700659effc492c1c07e3a494895ab7d69b8c1529c9c34d7d7beb48067ce05d52","0x9F801c1F02AF03cC240546DadEf8e56Cd46EA2E9",!0,!1,null,null],["ethereum","vaiot_token_0xD13cfD","VAI",18,"VAIOT Token 0xD13cfD","3045022100bfa1c5298acb447e1f35d3abd449601dc1a0ca3538066ce3db668cbfde97d7ec0220349242bc115144ab8c64dfaef1feb37feb1e5661de1aa5f547811644e6f4322c","0xD13cfD3133239a3c73a9E535A5c4DadEE36b395c",!1,!1,null,null],["ethereum","valid","VLD",18,"Valid","304402202de88801fc15714e26643b7e268b0cfc955bc263e5f3afcce9d268d636d233020220008228d907f60ab37c05f76549ab2574b0cc57c55813a79d2b2deae988f64061","0x922aC473A3cC241fD3a0049Ed14536452D58D73c",!1,!1,null,null],["ethereum","validator-eth2","VETH2",18,"validator-Eth2","304402206b3ede19d595fdff3e908eb91d54fecbbff52899bc1297de1db617c0a0ace0990220359bd2622da86c56acbb9e42cada835744254128d3a2d874238b07c0a89e38ab","0x898BAD2774EB97cF6b94605677F43b41871410B1",!1,!1,null,null],["ethereum","valireum","VLM",18,"Valireum","30440220660daef899f6c35ecda8175b5807343c114faab3ccbac73016d646c8bad969420220358ccce9cc2817decf44f17abaec3a6a15f52b643f67afd70a506ab4d036e658","0x3989F36540052668c340a53aaeAcB46D6cF0Dd6C",!1,!1,null,null],["ethereum","valobit","VBIT",18,"VALOBIT","3045022100852005db760eb67ae33a2896a7652d998311d942e2ddc6103ff61bdd0e28a9460220009bd6e3ba9d3530f60f21d962032cdb082cc5d11dc26ac7a7a56df7cb1d97e6","0xB8366948B4A3F07BcBf14EB1739daA42A26b07c4",!1,!1,null,null],["ethereum","valor","VALOR",18,"ValorToken","304402204c40e0bd4f0d9b06590d5e199089dcc4860d5fc946e2739bc7392b1df318a19c022002a7b4fbc48a510e470ac9cecc4a7bbb1e701094be36e03543da5a88ed9c2ae5","0x297E4e5e59Ad72B1B0A2fd446929e76117be0E0a",!1,!1,null,null],["ethereum","value_liquidity","VALUE",18,"Value Liquidity","3045022100b5b98082a446d0563f4718e6ba51571968c07ca49e233523039e1bb9c6a8060c0220424b5a8757621c7c9918fe0f8a624a692590c0c278269fe8e3b6958a53e04fb7","0x49E833337ECe7aFE375e44F4E3e8481029218E5c",!1,!1,null,null],["ethereum","value_liquidity_provider","VLP",18,"Value Liquidity Provider","30440220704c3ee2f974f04225d1776e6116dd709a3d81f60e9dd5c6140563307e2d506c0220430d3b624a8da55f92ac550b84e5ed5bd6c1bfd7a0a7fb32a1655c4f946f8b92","0x0464994e800b4A1104e116fF248Cf6eA7494Ca47",!0,!0,null,null],["ethereum","value_liquidity_provider_","VLP",18,"Value Liquidity Provider","3044022064ebc68573b695a4b465b62de097c36f9ed3a013a6941ee2e0281bb26bce870002203d5710498bd52b5d69a235cfe2209bba285a1af5ed88caa57b57b815a82b3d75","0x0295423b34dC213C70d24eBA16b6f05EADdeC366",!0,!0,null,null],["ethereum","value_liquidity_provider__","VLP",18,"Value Liquidity Provider","3045022100b64496bcbaf6b453ef3b19fa5fa2ad8bdf0a26bd78f29f96d5b9b9fa3857ff1a0220734c26c9bc7369a02a54af8cc361c2c2e7feb4fccbc57331a98fba40f6dec721","0x0da9cAC68270272B25dcB5B13Cf9b537db637712",!0,!0,null,null],["ethereum","value_liquidity_provider___","VLP",18,"Value Liquidity Provider","304402200f0fdc0dc65881cd29c4c8a32d3bf0649c5ae1bc4b2cd128f05786ab281318af02202917e7076358903062f542e02f5f6fc7a3287d51ab2cdb9191ca6ca4d5c3f68c","0x0e2D1ADaB9C174Dedd0a37Bfc06354991Cb336F6",!0,!0,null,null],["ethereum","value_liquidity_provider____","VLP",18,"Value Liquidity Provider","3045022100bec1caa99e1e0e7bd9e13d789788b3817e041b7cf3f4df272d97f3c22b38c5ce02202969263ded76a14bace8c9f0086e51a9bbe01e61c2f640df9131491341d15421","0x0A752431fDFF84fFF76B3C76E3DEB0dB9170D4DE",!0,!0,null,null],["ethereum","value_liquidity_provider_____","VLP",18,"Value Liquidity Provider","3045022100ee36277f818b47e890d0a2f883560ef11ef1f362e3cb29444ec971e3748373790220695af8a419b4fa970b6a093aceff3124e46b1f0463c8a2b7cfd1d2b8304af503","0x13ac88063f9A8eBAf2710E30FB2a1aE1f304b766",!0,!0,null,null],["ethereum","value_liquidity_provider______","VLP",18,"Value Liquidity Provider","3045022100a52c6f5b994cd8e8115bb9deb3c8204a1f60f6428a00fefdc4b89a0990fbda4d0220229af9088dfeb6ccd64ab1abfab69aa0a5ab92ba038a818d88f72766d143b2a0","0x178D493C8225fc4D3f96cC88dd55e8003ACa760f",!0,!0,null,null],["ethereum","value_liquidity_provider_______","VLP",18,"Value Liquidity Provider","3045022100eef4839e06b431ee0051ac16fc6ca3f58809bc399d59cf004717462a5f489fc90220085f9df992bb4a41cb6a452b3679e6115224a742710e12f481b28b35d719b985","0x19B770c8F9d5439C419864d8458255791f7e736C",!0,!0,null,null],["ethereum","value_liquidity_provider________","VLP",18,"Value Liquidity Provider","304402203fc1f9b4edce43c469374f67b6d76e9953e720683b364a88081b937f3dc3f9ed0220253d7ab5db3d250cdfad59d141d98c7694b72ccd0571a541e3b026b565926551","0x200d2924cF5008e607CE0428599e1972BC16882E",!0,!0,null,null],["ethereum","value_liquidity_provider_________","VLP",18,"Value Liquidity Provider","3045022100dd1a3b97a65150e57e0590f026fa5fc01e8c30e507327918d2029e02190067e8022071f3d7e32d9368885e0fe8bb2179c9a1323db397243d45b78e607e4b7ca124ad","0x44f30675A3496df4BC5792954b4022798DA6DD1B",!0,!0,null,null],["ethereum","value_liquidity_provider__________","VLP",18,"Value Liquidity Provider","3044022058588d4d470f91c11284c204de9eba0f6ff61207bc1b10b8dbfe92fadd13a7eb022047c9a2cb31e88657b002b3929fbcf835e7004505a51575b4715b4c6f1a2fb58f","0x50007A6BF4a45374Aa5206C1aBbA88A1ffde1bAF",!0,!0,null,null],["ethereum","value_liquidity_provider___________","VLP",18,"Value Liquidity Provider","3045022100a7eb8c0897e9d68cab53297bc477c4b4a9985091ad8fe1af67a90fb51cf12fde02201ce17230ec6fc3ce469eb7dcd3c8f2cf801c77856a3ee0bd34eb4655af527758","0x56d950f1100E116917CF489149cB4cD6322cc476",!0,!0,null,null],["ethereum","value_liquidity_provider____________","VLP",18,"Value Liquidity Provider","304402201d5c08784cb81fe244f700f65f228b4816c8c08eda251eeef86fe28636a56f6d0220323994e14ff352767728721d32e5dbfffb2ea434180c753c1c4d4b12ff09dad7","0x590968dfd7A246966A60683d97d1B97afE6fdc6a",!0,!0,null,null],["ethereum","value_liquidity_provider_____________","VLP",18,"Value Liquidity Provider","3045022100bc1291d2122dfdbfc4f95a5db870e986091596b4072e280f2bd6cea1013bcb8e02203cff6daa2541d07e260658f9b08bf2c745e1142072fe2bbdb16f037eec6d920d","0x600f03c297B45F697bE35c8f626429B64FE332E0",!0,!0,null,null],["ethereum","value_liquidity_provider______________","VLP",18,"Value Liquidity Provider","30450221009206e51b6cf20dbdfcfbd65fc3df9774b04bf8c26e7c18d425611132d80ce5d302207f87fb46d7c5aa4978f9d088c861cdcdf84fe104283a8133c367bd7a1661ce49","0x67bd2dE54333AdE68E5032199D05B6ABfd25A57f",!0,!0,null,null],["ethereum","value_liquidity_provider_______________","VLP",18,"Value Liquidity Provider","3045022100c7a89529529878cb6e6c8ab2a85375e13c20132e90c1fb2bfe8a7cfd8860c8db02202df62e06ed9888f18503a16112e1d5d8974ee648611a1e291c1f186e93305f4a","0x406bAE1a2a0b4fBdB1675fc22d2C4144caD0F6AE",!0,!0,null,null],["ethereum","value_liquidity_provider________________","VLP",18,"Value Liquidity Provider","3045022100facedd7f155a0a42c07adb2c288afc7c175998d6f7c2a61f1593ccb29ae99b4502207f7d84eb39b7de74fc00e0a19f73646b3ef55db7cd631a43b1e6f98352632c7b","0x42D2936F6fb951b0AA324F5cCd4910Eaf416405A",!0,!0,null,null],["ethereum","value_liquidity_provider_________________","VLP",18,"Value Liquidity Provider","30450221009a7c1811f2544d2a05d83a7a0a5aadc73a58cc976c6e55e79dcf0d4d92aa488802200781bdae0353130174cb677e79243a1e0d7b5cf4b99f410788a2dbf7c7e583ec","0x79Ee557C7E785aD7950C0f7248081393c0eEE43a",!0,!0,null,null],["ethereum","value_liquidity_provider__________________","VLP",18,"Value Liquidity Provider","3045022100ce2a6c429978aa518bfa2c825407c40bc673b0fbafedb107c7825f660547ed4e0220768e9f00439e2599b472aba0b91102ee9f35bb20d679eae9a6508a1fa46d8acf","0x7B065A771d6E5bfbd67d8E8B15640feeD06FE075",!0,!0,null,null],["ethereum","value_liquidity_provider___________________","VLP",18,"Value Liquidity Provider","304502210085a1072c75d03b1d27132444072cee5de44d00b8724056c5ad087ca8129618f302206a54d6cf244bd98bd51e513f058eed05da1058d8d16909540abf14166d5e914e","0x809d6cbb321C29B1962d6f508a4FD4f564Ec7488",!0,!0,null,null],["ethereum","value_liquidity_provider____________________","VLP",18,"Value Liquidity Provider","3045022100d7fe05aac5dc0347723dc12d181efcf733f292095e77a5050b1eb8bca24c733002201db9b3bc0a9d6eadb9930bdea34904ad76a8c820c599d8ccc007406e8390a680","0x839B6Bd6C18911d93725D32f80A2A785B41514Cf",!0,!0,null,null],["ethereum","value_liquidity_provider_____________________","VLP",18,"Value Liquidity Provider","304402207b0292e5738bf01ddcd0626a99045fa9cc9a45e1b01511c6c543c6fd64b1584802207e982d2f74fb748eed6a8259d1658c171349219d60c188c7640e1641a3442ab3","0x67755124D8E4965c5c303fFd15641Db4Ff366e47",!0,!0,null,null],["ethereum","value_liquidity_provider______________________","VLP",18,"Value Liquidity Provider","304402202fd484d24536e257486e2a09bc4895cd76277af97e4da9b5394261eb064ac80c02202637b2ba70d80170bc085b8a002b5fd99d4000dc5d735f1580a6502bb135f435","0x8438d64Da58772E9F7FCeAa1506bA300F935ABBd",!0,!0,null,null],["ethereum","value_liquidity_provider_______________________","VLP",18,"Value Liquidity Provider","304402206bc1a77d5b9be789838898b7e5d553b11377bc6b5a9ad59d85ccd85c4fbafdb9022016db97eaacfbfa07530d48875f3d2d17d88d857c23ad6746c4a720583081e892","0x8b3Dc8eF9322606E3535adeF66380A67E9db7603",!0,!0,null,null],["ethereum","value_liquidity_provider________________________","VLP",18,"Value Liquidity Provider","3045022100f569d3d1b89224fe6148d986598377ea02ecd2de9233b9d922f0399e303455e7022018f2f234967d147dcb998e03d2ce2d695d1fd1f806ec96785703b9b1e40c76ee","0x8f3f62A8337984CCB8a512C8A6408DF71c23fFD3",!0,!0,null,null],["ethereum","value_liquidity_provider_________________________","VLP",18,"Value Liquidity Provider","3044022044fe7a03b33b2ee7ff5d5719b092431ef01a54443ec200b33d51cf536ec5886f022064f0294ef177bef1eb58b8b30e19439cdbbea00cbfd7546868c735872862c8fc","0xa3479245Da5ceD9aaE2b0b0c37C7E32b92287a61",!0,!0,null,null],["ethereum","value_liquidity_provider__________________________","VLP",18,"Value Liquidity Provider","3044022021822fe23bc98268f6c937049563d2965abfbf203438db4015cc434a7ee136d20220673791c2a3dcb7967716486ec731ec4e00e2107333919a857220b295dea39f01","0xa5376d2ee24F6B50970e87Dc2E69FeB5cD1fCF46",!0,!0,null,null],["ethereum","value_liquidity_provider___________________________","VLP",18,"Value Liquidity Provider","30450221008c576cbd833c20511487f0b3e2d94697dd086497020413e9397f50b526d3f6bb02206ab1266ff2f0993df6c13a50714560d3d204630e73be46bb9e1b08994308850d","0x7df0B0DBD00d06203a0D2232282E33a5d2E5D5B0",!0,!0,null,null],["ethereum","value_liquidity_provider____________________________","VLP",18,"Value Liquidity Provider","30440221008295b64464332234a2bc27323305ab93596e8637524932398ec8ced1d4de3246021f00e875a0b2da651105772b7622321a7d53a90f5836937cf38a577ad3b4ba08","0xb9bcCC26fE0536E6476Aacc1dc97462B261b43d7",!0,!0,null,null],["ethereum","value_liquidity_provider_____________________________","VLP",18,"Value Liquidity Provider","304402200b0160462fe08a910b0953c7c8a7e5cbc296beb2e3e8b59f766acfca3c6a026e02203ce645e2e60c2c553ebf4d21e701858fffa05cdf55004f0ac81bb9a107db3a51","0xBD14c6Bb5a5Cd7dc63BA224517B492983ABF75D7",!0,!0,null,null],["ethereum","value_liquidity_provider______________________________","VLP",18,"Value Liquidity Provider","3044022059db939ace28453b4e1d83026b48299b51ea3ffc7f3fc4b17431c6f0fa6fd0f502205f33ea7536da9d5cc92ef19c0b4574dae69aa21f1643f50acf3c7057869d1e24","0xbd63d492bbb13d081D680CE1f2957a287FD8c57c",!0,!0,null,null],["ethereum","value_liquidity_provider_______________________________","VLP",18,"Value Liquidity Provider","3045022100d1a300dee8920e42a4d3cc86f3d265241536c203ba6446ddf87fea620fd53706022013aa77dcf7054ff26e8e814d6fca2d7f1826ee68371dc3df91abc72b916740ee","0xc1b6296e55b6cA1882a9cefD72Ac246ACdE91414",!0,!0,null,null],["ethereum","value_liquidity_provider________________________________","VLP",18,"Value Liquidity Provider","3045022100fee565c6d5a3880943c831692f911438e509c202ad56ff0cb1ec8cc3e18bb0c602206b504b289475eba10529d50231aa416260d653b4eec1b7a343899987a1594108","0xC2BB311d9133FfEee1224EeB69969646855AcAF7",!0,!0,null,null],["ethereum","value_liquidity_provider_________________________________","VLP",18,"Value Liquidity Provider","3045022100c690ba932610f19b1a6e99f896fa70a796abe851d09a170cf79e8ae14b30ea4f02204b864e9d0af1764d2ede0d228ca5227b6c01a05e7d42caff6ae27b41a45c8457","0xc37e82D59b3e18f624dAfd8C99E33F11F2245056",!0,!0,null,null],["ethereum","value_liquidity_provider__________________________________","VLP",18,"Value Liquidity Provider","304402207a3f72ce40cd6d48044268cf3a12fde48dc6634fca7a67c79111b9a8bf2a0ecb02204bcbffee4131d13880440ea821601d23f125942e4fdc8809e2b9f1356ecfb43c","0x83Ad48ACc2cA15f74FA6C3aE4911B17194864BF5",!0,!0,null,null],["ethereum","value_liquidity_provider___________________________________","VLP",18,"Value Liquidity Provider","3045022100a4bba173852ed81ca3b8ed6d62923d11c7a2c8d888625aa0688f55a71fda80c1022068db995d051ae9d83151fc0c7216007935f26243233faa46dbe022ad10e42402","0xc9608B8dcEE2006a5aB57b1CDe0b1aA2e40391B0",!0,!0,null,null],["ethereum","value_liquidity_provider____________________________________","VLP",18,"Value Liquidity Provider","3045022100c1b2f674ef07a28810857a364aaed434cc9ce5604685277a8271e16ff4cab24602206f8d9cba463dc3dcd2e3d8a7ede098b68ab7788167c650c70dd888865dc8151c","0xCDD2bD61D07b8d42843175dd097A4858A8f764e7",!0,!0,null,null],["ethereum","value_liquidity_provider_____________________________________","VLP",18,"Value Liquidity Provider","3045022100f4339a153b8b7a5571a1e6cf43f2c6b57d50b41a63ba900ee4bdade6034e0527022029fa785416f47142e4838f87ebcaa0a939568ebcfa1a3d3c5989c7028ea798c9","0xD39c6166Fe0907465037b3eEe97Eed2181cC4ec7",!0,!0,null,null],["ethereum","value_liquidity_provider______________________________________","VLP",18,"Value Liquidity Provider","3044022024c5c1e1cf14b7afc4640c493cf247417b6aa5f0c15e1e5ba839d17e11a650fa022048d9012aba02211b3254672d7c2a2eb09ba258f19b022c0cb0d401b142fcdfd6","0x930B0E02fdd57272D909913EdBcBB74E649F0A32",!0,!0,null,null],["ethereum","value_liquidity_provider_______________________________________","VLP",18,"Value Liquidity Provider","304502210080727dbbce5348883451e3257f18fe76cbf74314df5a6398bb63138ae02f825302203fe4b1f726f34687fab24972223c035410ab72630f6453b74169e8706c467f1b","0xdD82e4227BaeC1Fc40a72ef9895f38f2C1Df4F42",!0,!0,null,null],["ethereum","value_liquidity_provider________________________________________","VLP",18,"Value Liquidity Provider","3045022100e24e8952a9cb954cfc575670c5d2a4547aa15142106d28083497fa0949578652022054347c61d76482a0705ca79fd93f74f8c5884128d413eb8849f78f83a03e72cb","0xE12C0C5a300da8aE4BC346f3Eb4dA9bfFc0Ca68B",!0,!0,null,null],["ethereum","value_liquidity_provider_________________________________________","VLP",18,"Value Liquidity Provider","304502210096f469bb3f50954755540b913d780e635bf89079acb34fd7ceda2c86d0370e8d0220624b4fa297f90b0f63871e03753729299543388f41ab0253854d5b5c8100b8c2","0xe2DD8B60735eC1Fd75ddf557d2230640bBB3B572",!0,!0,null,null],["ethereum","value_liquidity_provider__________________________________________","VLP",18,"Value Liquidity Provider","30440220564d86bd050bd9020e83ea897a33b3512eae8c2c75f8f5d5b45078b2216e980f02202d613b0db1e5fc6bfe2322264a6176c1e86c084def897c05312d4930aec1d548","0xF0c32A32c29aee1Ddf94bf5482e5247c48d4756E",!0,!0,null,null],["ethereum","value_liquidity_provider___________________________________________","VLP",18,"Value Liquidity Provider","30450221009685c37dae21cef821ad40b8bbcbe3bf1dadb353a04b2f14508537d27dc03ae8022064b429a032376885b35fd31032d4f1ad0e40d4557067568e91f381f40a56bec3","0xFBeA9d9e4C13f56bB6BA7D5cbB814Ff2C8c5C4a5",!0,!0,null,null],["ethereum","value_liquidity_provider____________________________________________","VLP",18,"Value Liquidity Provider","3044022012fcc1dcdf2601a08a40281d48f1b9ce09d2588ee22bd6ff4975d411abe8ea8b02207e20bd21eef1825750b842e100d13b37792fa46ee260e2ee5e790456a9cd0075","0xcCE6977a4762522f6C3a58846Ff346eB056F5407",!0,!0,null,null],["ethereum","value_liquidity_provider_____________________________________________","VLP",18,"Value Liquidity Provider","3045022100e6afc5190e1a8f2651a4da874b403ffaf5b4eeff8d6553c9c567594c88c2da25022029267dd2815c3f27ca486d4f7d3c0ee68011874634b1ed6564a9710307bc860b","0xd98E78700A3C6E7E52Bf377A9c81CF18448eAe52",!0,!0,null,null],["ethereum","value_liquidity_provider______________________________________________","VLP",18,"Value Liquidity Provider","3045022100f2cc55cf7c79e37ca879b7f641fb8f1d09b73f5464f864ea35783808f71e7cd7022028493d24fb7376577a60e06fffc809a4762b7e2580a82f5bddf674b676e646a8","0xe6efE16Be59DDc61dc32D5491Df1aa33c4727844",!0,!0,null,null],["ethereum","value_liquidity_provider_______________________________________________","VLP",18,"Value Liquidity Provider","30440220247c6e26be8c7038926d1eb319b7d524a7e783fa79656e691f2679264902af090220199bbc7657cd5fbe63a62c375a746ae05fc6d955c60f0e107a7ecfc2bef3bc58","0xDaCc982a8Ecc7D5f10E0aBee6e5340A98d10f2ae",!0,!0,null,null],["ethereum","value_liquidity_provider________________________________________________","VLP",18,"Value Liquidity Provider","304402200323df0bfdf71b3002910db7309b3394134aca80b563b2d29e35538e30f6f4b602206d6b8403b1d0679f3d993bf494bd51dac03c0a87d1bee3f46080a10d7ad2b866","0x61CCA9C1Ad1DeC54e4bdCB13624d2EE7860c0f0C",!0,!0,null,null],["ethereum","value_liquidity_provider_________________________________________________","VLP",18,"Value Liquidity Provider","304402200c7df88ac8ece602eb267711eec0a78288b6b3ebbf9c9449d5e94de95140213502202f8c59a66adf5723465805969113c875d91ebdba977e551e36c26f0959704ac7","0x635e4A8d23d9adD975E931113Ddd2ac3663A7325",!0,!0,null,null],["ethereum","value_liquidity_provider__________________________________________________","VLP",18,"Value Liquidity Provider","304402200bb9bcbd7bf74693e6001e5ac79307f9138b6d85b6147342b073232e9d7498f2022036911f303b9eb3430909175a28318924df1d9f1d72fa2807013efe12585bba4b","0xAd0D9f7031035c84bbB3fdd4Eee69BA553aB25e1",!0,!0,null,null],["ethereum","value_liquidity_provider___________________________________________________","VLP",18,"Value Liquidity Provider","30450221008d7af2149ae7ef6621d010ac26759f881209038257e0a487cbf8b173f3add87d02202c76a80edd8f7fa2e47518ab66061b56988a0ccdb823837f26ee8d2e703eb095","0xB8098e1Cb8645dA67238e340558eC1c8625B10dB",!0,!0,null,null],["ethereum","value_liquidity_provider____________________________________________________","VLP",18,"Value Liquidity Provider","304502210083ed131e3804d7994880a1c19ab7952d5e9c4b26f3b9e22782dcd5672a30cbc50220707dffcbe7d1d3b5da42a725dd9eb57c5b29b112afa1f0f0d35ec0759556ea1e","0xd48831681deFd9C84811BCb4F72c13b4B6f7BD6C",!0,!0,null,null],["ethereum","value_network_token","VNTW",18,"Value Network Token","304402201152f96f41546e898df3b51c3b60ce0b87c92b77e48ed1f55722b648aca452da02205fd296501c6ab5a6cd6d19b4cd5142b84075d8bf587e14b91f3f25033ea0cc6f","0xd0f05D3D4e4d1243Ac826d8c6171180c58eaa9BC",!1,!1,null,null],["ethereum","value_set_dollar","VSD",18,"Value Set Dollar","3045022100fccbbdc9e23b9e2c0850a87eb82f103acadec49dfb05325edae80cb5b253f520022062c023d1411385a30a8c73e566f2ebcc59712c2dd689e2d4be3387707f799a4c","0x35de3EccACcB02E627062b5D63aA941b137288fe",!1,!1,null,null],["ethereum","value_usd","VUSD",18,"Value USD","30450221009d41f40e2390f66b27f2062b9ce63ae01c1fa9230a118c48240782116e0da4d002204e459d63ff43ed7a77ace836de87bb1ef4b25f5c6a166b8592095a654c763b41","0x3479B0ACF875405D7853f44142FE06470a40f6CC",!0,!1,null,null],["ethereum","valuecybertoken","VCT",18,"ValueCyberToken","3045022100a2abd113ee590faa189a2e7975a7d7cddd2b4df5931d737a626ebb4c6b93b07b02201ada3c8fa4c2257aa639af39014519cadf60c3e03ec172546dcca83ae72ef27c","0x9746953F5b1324a78132895cfD263F417B0faAE3",!1,!1,null,null],["ethereum","vampire_protocol","VAMP",18,"Vampire Protocol","3045022100eb8bc5a3cebf8c48ed6ec11e1840d25849e53c66914eb85e3bf08f40f2666681022066015da14fe8cb26e70e94e4decbc084f0a1ad0bdb00dc3f8ad64daf02d4ee05","0xb2C822a1b923E06Dbd193d2cFc7ad15388EA09DD",!1,!1,null,null],["ethereum","vanilla","VNL",12,"Vanilla","30450221009de012ebc8ece84c3fccc1e0717d8f0f9e940dceb6e77a9336e1dcda051f61f60220716e9b9996b3cb5c0928bc72cb15382504bb05fd1cb8a164ce03e134f8aad3b3","0xbf900809f4C73e5a3476eb183d8b06a27e61F8E5",!1,!1,null,null],["ethereum","vanilla_network","VNLA",18,"Vanilla Network","3045022100f26dbf15b5bddb2bd017cd6a13bc49b36a2dc56636755ffc3e59593fd8c28f2502205adb0b8dd8306354eab3fe2d6d40f034ae4501cbb65ef4e90427f26a2b93cdc7","0xB97FaF860045483E0C7F08c56acb31333084a988",!0,!1,null,null],["ethereum","vanywhere_token","VANY",18,"Vanywhere Token","3045022100a02761a6f0973d0acf7d5a740bb7ffdcb03351df4488b124b095590c9c3fa12802207ccf0ced64af52b828dd214aa649b2e17238809eda7f078d9bcdc51a2cc843d9","0x4EDD66235349E353eb8CB8e40596599644bfE91c",!1,!1,null,null],["ethereum","varen","VRN",18,"Varen","3045022100c91716bfbb5ae853dbf8c759e0cdbfac3be1b404c28af400c7fb59a65a577bab02207a88e9a48518410c37f6b760473ef7f9af54646b2cca34df513973269020fd8f","0x72377f31e30a405282b522d588AEbbea202b4f23",!1,!1,null,null],["ethereum","vault_guardian_token","VGT",18,"Vault Guardian Token","30440220734f738220906257ac2976247b2d194fcf6dff5bbc817793823694001e5ee74f0220584c1ba9f7437857d45478086b23422cde7e42563d8b26725de60a516f1c890e","0xCc394f10545AeEf24483d2347B32A34a44F20E6F",!1,!1,null,null],["ethereum","vaultz","VAULTZ",18,"VAULTZ","304402201c66860460ba2bad48d0bdb1523c1abcf66731454b9a7288dc32e0abd2250f43022054a3cabdb2c6d91e4f1d80f5a5bb4f8c7e867245d54ce629299a9dbf4bcf75cc","0x861b2456ac1A6Ab5fb5c72aa456091F23DdEC1cc",!1,!1,null,null],["ethereum","vbt_token","VBT",18,"VBT Token","3045022100d920b21ba207117df6b5bceb83f8959d1c4634652f23a0cd38e0c32b0ee0446b02201af3ac72b1cb0424e56449db2817a926c7820b717cdd44d97c1ed796869a25d0","0x1Ffe24629f1B3dF74fc0f6E5D086F2fd09258Ff2",!1,!1,null,null],["ethereum","vdai_pool","VDAI",18,"vDAI Pool","304502210099cecbb74cd876ae95c0d9fd7a592f88436c1e8f5f7db10fee4bc4d31737314c02206e2cea7cda37ab7a242f0dceb5ba00c812d60b248690b2c3d6ae0711f240c40d","0xcA0c34A3F35520B9490C1d58b35A19AB64014D80",!1,!1,null,null],["ethereum","vdice","VSL",18,"Vdice","3044022014d8bba2c6937d0f3cfcf141b61b0a1f01a5256349129c821723f6e5fe3e04cc022007575173749b8e4f99e8b6710a1efd5105fb700cd859431de3f8ee00b92e7496","0x5c543e7AE0A1104f78406C340E9C64FD9fCE5170",!1,!1,null,null],["ethereum","vechain","VEN",18,"Vechain (ERC20)","304402204c8700226c896e11a88341260f455942c8226f5bcfa72d1fee5dc69a5afee93802206c437c9b00cd015bd5e0e72597b5c3f02cf682ba4fe6bda8d67c3c0adb832eca","0xD850942eF8811f2A866692A623011bDE52a462C1",!0,!0,null,null],["ethereum","vecrv-dao_yvault","YVECRVDAO",18,"veCRV-DAO yVault","304502210093d759f42b056906c6721cd21247417837bfa70c8b1467d8ce44f35dd84d6c6a02206eeaf7ff33661cb30bdf0c3b9584c5cc2e464cb9236e22cc5fca00ceacc70f99","0xc5bDdf9843308380375a611c18B50Fb9341f502A",!0,!1,null,null],["ethereum","vectorspaceai","VXV",18,"VectorspaceAI","3044022069581d55e5ab7defd5021cbf81286ca6b772d2460771fb133a7776d3ac028d87022075b08642b4bd1e469f49e04a72c6eea4fcc500786f0c7dd978b773e0878bd076","0x7D29A64504629172a429e64183D6673b9dAcbFCe",!0,!0,null,null],["ethereum","vega","VEGA",18,"VEGA","3045022100b3121e7774f32b7f85680de4389dd885d8bca16a78c2d688dab1edf1bfd2d0a202201721d5f4b0a494d6d805bf849e5b46b1d93825a4b9a2d601b70c4811d9cec1c0","0xcB84d72e61e383767C4DFEb2d8ff7f4FB89abc6e",!1,!1,null,null],["ethereum","vegan","VEGAN",8,"Vegan","304402207dd1f77f32501f36dbb0eda3a9a7a03a7aee0ae27fff11da0ef7d5cd96104642022066e078a66a20dbb8713457e38f792af0a49b7c42ca8c22344785d28c12205200","0xFADe17a07ba3B480aA1714c3724a52D4C57d410E",!1,!1,null,null],["ethereum","vegawallet","VGW",5,"VegaWallet","3045022100f3bb4d2d61c9510a7f0af72f138dc07728ef12dad6b13cbea88d1ab16664cdba02200b658c4d7b8f2642eb0de3f26527fcf546a9337f9fb961b0105935f63e65e18a","0x94236591125E935F5ac128Bb3d5062944C24958c",!1,!1,null,null],["ethereum","velo_token","VLO",18,"VELO Token","30450221009aa196867026a233290b3cf28183b49eb07371fa78f030ff836fbf5aa94a93fe0220064aae4c9c36e4f10791136546cc44be3cab02962919780216e43890e5501f77","0x98ad9B32dD10f8D8486927D846D4Df8BAf39Abe2",!1,!1,null,null],["ethereum","vemanti_usd","USDV",6,"Vemanti USD","3044022008dc945a04549068eae162d91bccceb87262ab68fad1e4c779d2107cdd1f3b6a02204dd676e125f12a8903b1d4841c3f50d5c2e3b2b7c30e439dc1612f504d016d89","0xc0e94c8f9fDc627cCb3682a379d91F99363190d8",!1,!1,null,null],["ethereum","vempire_gamer_token","VEMP",18,"vEmpire Gamer Token","3045022100be653f09f61612b829ff52ddc27bc7bea0c9f36cbb4f86d9ed66dd987b44567b022041c983f0281a652843f0e68c25f0ac2fb18028b59c2a67d1e4fbfa4bffb9c785","0xcFEB09C3c5F0f78aD72166D55f9e6E9A60e96eEC",!1,!1,null,null],["ethereum","vendit_token","VNDT",18,"VENDIT TOKEN","30440220722d123c8dc218a12d30762319b62e627dcc4bf82fc0d788457c8c96d108305702204a99fd0721569707362ca89b03330f5c584dcf1f0534ccc4f1d454589dcb8642","0x5e9997684d061269564F94E5d11Ba6Ce6Fa9528C",!1,!1,null,null],["ethereum","venjocoin","VJC",18,"VENJOCOIN","3045022100fc98cc3e274e9afe543b884d2b15b7302dac4a3a370a806bbbc6dfadec270d29022071ec3ba112c2865981ca2bb6cfdea65544a51a08eb7d3e64044d8344d55c69eb","0x5c62Da804298D5972a323C80B539B8E7517a0dDe",!1,!1,null,null],["ethereum","venus","VENUS",3,"VENUS","304402201aee8083c8fefbe606172b6b478c94b673a7a319276b9d4c095f8b6e22d1638902206770f7d31681b582f1e28972a015e53607a90b39ccb9552375aeff2dc9ec7f12","0xEbeD4fF9fe34413db8fC8294556BBD1528a4DAca",!0,!1,null,null],["ethereum","veogv","VEOGV",18,"veOGV","3045022100ff8263976cc11ee394f313b986c49d31ece181b4034a9208d59ff69707f6afd102204fa4f42831e01b9895fa2a4e3829506573f594b91a7271bd04af85654074f134","0x0C4576Ca1c365868E162554AF8e385dc3e7C66D9",!1,!1,null,null],["ethereum","vera","VRA",18,"VERA (Old)","3045022100947c735e5d775388b4c521707de7ad5836a4ce2e5adaf762aab46e662c4d3f6b0220237ebf7d74eefce7da447241c7b854c6c6e9ef0ee50d03d17d384d2f16110870","0xdF1D6405df92d981a2fB3ce68F6A03baC6C0E41F",!0,!0,null,null],["ethereum","vera_","VRA",18,"VERA","3045022100a9262af907e00cb65c2bebb0be7f5361b94d029d6223accfa8028f29f430488302207744855bf3841030094852a97446fa32b8264cda18ad427a262ffc1149351e81","0xF411903cbC70a74d22900a5DE66A2dda66507255",!1,!1,null,null],["ethereum","veraone","VRO",8,"Veraone","3045022100ef35de7b16a5be0a38621ec67816cecac3a8a4de6cffb8c00e1547fdca0caca702206ad5d63481f144c5e72bf8090a26a69625418e7e4bff3807456c39f4fd2f77cc","0x10BC518c32fbAE5e38Ecb50A612160571bD81e44",!0,!0,null,null],["ethereum","veridocglobal","VDG",0,"VeriDocGlobal","3045022100e0512fc59409e96b7fcc6aaf61ba8f7e33685c54834a437b9c33f48308e6f6a40220060480f0439eaead338520dbb52446295ff528996a4d58ffbcb225eaad28ce30","0x57C75ECCc8557136D32619a191fBCDc88560d711",!1,!1,null,null],["ethereum","verisafe","VSF",18,"VeriSafe","3045022100e75b2ace78b302f66cfacfb27a8c8e2ab79f4afaf1cee78e96e48d4aa9be03de0220575e6dee2d72d0a7225ecdd12150ae754fea2c5b6c97276deed7cd6723fcea4c","0xBA3a79D758f19eFe588247388754b8e4d6EddA81",!1,!1,null,null],["ethereum","veritas","VERI",18,"Veritaseum","304402207056001d0e7eb455c53a20c74188bbe4bbe90a44af66fd1d39c4f61415dfe8ef02205a64f022e5d8ea87b0fcec72a2e0a3e2d0d3a9b65d2a38226e9f80fbaa71f658","0x8f3470A7388c05eE4e7AF3d01D8C722b0FF52374",!1,!1,null,null],["ethereum","veros","VRS",6,"Veros","30440220110e6bac4272c9d6c12255990601900ccdf2e991ec74956534c0a34bbb0a3f1802206b7fed8ba0878dfa6d200a53e40569e07ab0121e38b8537e4208cfd22d058631","0x92E78dAe1315067a8819EFD6dCA432de9DCdE2e9",!1,!1,null,null],["ethereum","veros_","VRS",5,"Veros","304502210098c15785ccd60d9eaf1d11d34f2695893f14b73ea535ca78e72993e1edc0ed4b022050f2c0a935ddc908d48260dc7a918b4ab3cf9070312161fde78639b820f3721a","0xeDBaF3c5100302dCddA53269322f3730b1F0416d",!0,!1,null,null],["ethereum","verox","VRX",18,"Verox","30440220604897fa66ad7e640310a009a50e41974081ce2caa0adb88716f82ecb636f6a10220684768a003f55e3b76874b1f1aea2d1e73dfc9155930d6c19715ba9e0a222b7e","0x87DE305311D5788e8da38D19bb427645b09CB4e5",!1,!1,null,null],["ethereum","verse","VERSE",18,"Verse","30440220779a9511115caff9d507e161b04912835889c5b0e255b63bec01b053d09c4ace02207147187e6cc619fa0c2556a0766de1b2fa2ee6f09d0db9a9d434833ca57e2514","0x249cA82617eC3DfB2589c4c17ab7EC9765350a18",!1,!1,null,null],["ethereum","versicoin","VERSI",18,"VersiCoin","304402203ae451725be007b4ba506e71da1f1973da4f836757b112233937df93fd38ef570220022cbeedf2382ae8464f50b8c80b42f7e1d1486d17cb52590ec722ee2cbca2a4","0x1B879d3812F2Ade1214264655B473910e0caF1e6",!1,!1,null,null],["ethereum","versoview","VVT",18,"VersoView","3045022100a0dc7a3054682d574a750611d99a6cf00b53ca2e2c95885e7b56c9dd0d8ad630022003f2533c00957541acfcb29330b925850417b0b0d53d382f3fe469cd6e8a8659","0x755be920943eA95e39eE2DC437b268917B580D6e",!1,!1,null,null],["ethereum","vespertoken","VSP",18,"VesperToken","30450221008e36f2b7dc2d693f09f28cc9435d95910c284188143aa4e1d32b002147bafe0102201e84dee3fd0ef9b67e5758b5cbc93b554d7716734cbf69acde9200d8608ee38f","0x1b40183EFB4Dd766f11bDa7A7c3AD8982e998421",!1,!1,null,null],["ethereum","vesta","VESTA",18,"vesta","304402204effabe955fb2c5b05958204c02077734ea6caa746e9e082ca36deca4703391002205e8e763ece965e13d33d01983ed5d56cddefab887fa535834765aa2b93aaa267","0x3AeF8e803BD9be47e69b9f36487748d30D940b96",!1,!1,null,null],["ethereum","vestchain","VEST",8,"Vestchain","3045022100b855cb12d5bd2188f59b19a65f22ea7590a52f9f96046acab7854e62aadc763c02202d52624126c889549f80b236fe15d600c3f528d482336299250fd62040a2f751","0x37F04d2C3AE075Fad5483bB918491F656B12BDB6",!0,!1,null,null],["ethereum","vestella","VES",18,"Vestella","3045022100dd82224a0de81f8516f573a7b5525109f3f295d598813b396a6dc0b0a917f23702205cee45c5747577813649851fea653f29f69a42a385d3c474f6673eaa2b951aa3","0x03452E69ffcd9c45Ca34Ff4d9Ba2209d38a8D56a",!1,!1,null,null],["ethereum","veth_pool","VETH",18,"vETH Pool","304402206a14b197ff6b65d5fd6aaf00d93663c8f156a746ae7ce1e67b173f51f7fc33400220202d323045fe2182222ae8be3b2e9b2d4f8d2e7b5bb83007c1d5c596fdcd35bd","0x103cc17C2B1586e5Cd9BaD308690bCd0BBe54D5e",!0,!0,null,null],["ethereum","vether","VETH",18,"Vether","3045022100cd3b628aef9f36666d66a06ab1fe42232e480f430030ad93c22c68617fa9029c0220419ef9106ad23dd86540034bf286b826f1436d874d5b19c1075fed2d10a8f043","0x4Ba6dDd7b89ed838FEd25d208D4f644106E34279",!0,!1,null,null],["ethereum","vezt","VZT",18,"Vezt","3045022100e53c7daa9f35b420a28ddaba6167aa47fd20aa354506b107a0d666a59bf2338e0220363f4dcd1a1829692b3ddaf9cbef895be4e97aa9d5a83672010cfe9195b7ed2c","0x9720b467a710382A232a32F540bDCed7d662a10B",!1,!1,null,null],["ethereum","vgo","VGO",18,"VGO","304402206e44a59c90f4b431d16072b05a68847dc7cc326d291a405e1fc6f325971bf93f022077b1a5d560f5f991ad68b45dc09613e24eaa7566e177ce02f20cf767f395c29e","0x8e87F1811De0025D2335174dbc7338a43dF6d7cc",!1,!1,null,null],["ethereum","vgtgtoken","VGTG",18,"VGTGToken","3045022100b3e0f4d41f48ebcd5c63e486cb6beed41e4354f3b264d8d79d6dc8e4fbe4dd7902205759e1fa52f069dc0253d3c18352e031519013eb63af823fbc148fbca5fff704","0xe61eECfDBa2aD1669cee138f1919D08cEd070B83",!1,!1,null,null],["ethereum","vi","VI",18,"VI","3045022100d834b1603ebb7c2b36765b3857f33027401fa904bf09f4925ff27a2dd64965ce0220200a26dfbcf94aa81c38293093e698189260f492a15e5ae9cf0aab7377b74cad","0x8b6c3b7C01D9dB4393f9aa734750F36df1543E9A",!1,!1,null,null],["ethereum","vi_token_old","VI",18,"VI Token (OLD)","304402205ba4e153138332023d7b951f06b5e883c91e7e019ff24a752ecbacebbc30551a0220085beac0ebc1f0c1150f28baaac3e23507fb398a7f34856aed6bc8f549c4b2a9","0xd321Ca7Cd7A233483b8CD5a11a89E9337e70Df84",!0,!0,null,null],["ethereum","vib","VIB",18,"VIB","304502210082b30931c2c7704c4ebad447a5db1449d66b2b86ef8e62de5ee9196b3d0215c30220282879121c20a1fb1caa4e090c19ff709c8c0ab69aae4b12acf5e58dfecec458","0x2C974B2d0BA1716E644c1FC59982a89DDD2fF724",!1,!1,null,null],["ethereum","vibe_coin","VIBE",18,"VIBE Coin","304402202eddbca85302006aa4c1b969f3d0772a1174f69ff1d026641389a92b7a850a7502204d966dbcd8ab26fa04718f645b4e98c07107d4d0dd85f9e377e1ecae28672a18","0xe8Ff5C9c75dEb346acAc493C463C8950Be03Dfba",!1,!1,null,null],["ethereum","vibex_exchange_token","VIBEX",18,"VIBEX Exchange Token","304502210084119768ee931b306157bc5906e45869539d1de30e96bf127e23224eb3729b9a0220616ed4ab49aa83bf2e900562fade58555ecf643ee82ab0df608172ccf3cadc93","0x882448f83d90B2bf477Af2eA79327fDEA1335D93",!1,!1,null,null],["ethereum","vice_industry_token","VIT",18,"Vice Industry Token","3045022100c8aeeae501ce76ac307d5f8463013b2fae2cde28a25c19a803d7369aedac7914022065a7f2c69162db196fd46209d6987571457d57e5adb2f379cb83056ef9d47518","0x23b75Bc7AaF28e2d6628C3f424B3882F8f072a3c",!1,!1,null,null],["ethereum","vicetoken","VICEX",9,"ViceToken","3044022035105d4cf150dee1cf46a67c95c6836d3344dc65c3b606c51b4eb21f4d682579022027927e12d5fd3b980d7ad7a1687bf27dd334cdf62d389af1a76cd20f483f3654","0xDfD5bb6cE8716822B2c9B255560194Ca3509BebC",!1,!1,null,null],["ethereum","victoria_vr","VR",18,"Victoria VR","30450221008e47d399bb5655276ff477467d848b7111592cba14b55aa841ca2270add60b3c022066472a80108ae1126fac2b6339e84cfe58804bc0dd1a2db14b43490fe651f79e","0x7d5121505149065b562C789A0145eD750e6E8cdD",!1,!1,null,null],["ethereum","vid","VID",5,"VID","3045022100f8016a327df36e988eac9bb31a09311324a63ac150e748ce326d92c9511362f3022055b8d85d0e3ccbf090f263aa66f7d81e8a9c5416ee3c703b0c042ac829039ff5","0x12d7D45A4B9693B312EDE375074a48b9b9F2b6EC",!0,!1,null,null],["ethereum","videocoin","VID",18,"VideoCoin","304402202f4303beca02d59d62dfc1ff9b77ceac5bbb892531db11b29f30554b07ba3455022021d90b5e2c34c11b4f43355c96d18443f2bd08c61877803a8024ea334ffb2e3c","0x2C9023bBc572ff8dc1228c7858A280046Ea8C9E5",!1,!1,null,null],["ethereum","vidt_dao","VIDT",18,"VIDT DAO","304402201234853c4f98d6e5d2dcd02146880b9bf52955c278fb7ae8ae9c8c20fb2b65c8022003240e5797c726694e3e0693b6b154bf05f9eab627ead499738239f3f7135d22","0x3BE7bF1A5F23BD8336787D0289B70602f1940875",!1,!1,null,null],["ethereum","vidt_datalink","VIDT",18,"VIDT Datalink","3045022100ba091dd8b5f94785a6820d8eea455e8898be2ccddc08ffca85b2aaacbaf6a108022052a11afe63d16940f8bd73de8080bb8d32591bb559acaa594cfe4d3e34357979","0xfeF4185594457050cC9c23980d301908FE057Bb1",!0,!0,null,null],["ethereum","vidya","VIDYA",18,"Vidya","3045022100bd1970dd8b67f481b8788b203a21956e9a3f9fafe67d7e912ac1a4a04096d3a5022038afb0ae9887bb4ac8f3b9672aeb41e7c08c4db452b144749db2572866f23aa6","0x3D3D35bb9bEC23b06Ca00fe472b50E7A4c692C30",!1,!1,null,null],["ethereum","vidycoin","VIDY",18,"VidyCoin","304402203cc2db3a5fe77952dfb81b47ed63b6f0e419f6644789d81cf97b12d9ff7464f6022076b0a65553b0775c219e304640647de627b755e221a29be52e22c66fdfa36f06","0xC77b230F31b517F1ef362e59c173C2BE6540B5E8",!1,!1,null,null],["ethereum","viewly","VIEW",18,"Viewly","304402204e43568759304d5bb68bc1f35aba979340134251de5019d93ac1aadca8b27ee402203609c561778dc285e4e160baefe6dc8bdc371fc0b55c25349d69bf36a10791f1","0xF03f8D65BaFA598611C3495124093c56e8F638f0",!1,!1,null,null],["ethereum","vikky_token","VIKKY",8,"VIKKY Token","3045022100a658c2bac644687403d8bccb82dfb6f6926da2438e232c7596759a48126d0e67022033b66f6a4557d4d8e213268d83bff38850d35fff6579d872515032206fed2af0","0xd2946be786F35c3Cc402C29b323647aBda799071",!1,!1,null,null],["ethereum","vin","VIN",18,"VIN","304402203cc85ca4b64702566e0e24075f84a00699ab9f3478ef87ae4bb6a9433661af8c0220766f2069bec018a28572f29da644cca84f1ff6aae3a52e8d38e49ee70eeadbed","0xF3e014fE81267870624132ef3A646B8E83853a96",!0,!1,null,null],["ethereum","vinci","VINCI",18,"Vinci","3045022100e3a3cff1de9e78b001f72953d48110ea2dda4868f5d22026df0ddf05b0e3c40d02207f95096c3bf814de416077db709bd98e9076374f123d6c6461fa5c14e0040dee","0x3DB99ab08006aeFcC9600972eCA8C202396B4300",!1,!1,null,null],["ethereum","vinx_coin","VXC",18,"VINX Coin","3045022100940ba0c5823fe9a7441bfd50c76b769d9bf04f7f28994fc432dcdeb0ccdc36b002203a28b98842acce0a38daa8997115a3121270d91c1d149f29d296131fab55dadf","0x14F0a12A43c36C49D4b403dD6e1A9B8222BE456C",!1,!1,null,null],["ethereum","vinx_coins_sto","VINX",18,"VINX COINS STO","3045022100c3ca1dce2f7791e58242b791fe02816d425bc98d6b719b3d5af840151e5f47b602203f13215ee1a3b39739c09f52b8d68c64cf5261d8cdc1a0a214fc4a79a0d31034","0x010c282118aA76174CE5952572BA715CF60A0c9B",!1,!1,null,null],["ethereum","virgox","VXT",18,"VirgoX","3044022008e69b65d3c585f38c4ae745042c8ab16a0e7f82ebdf3e165e44c47662fc5ddb022012fbce7a5e7170659cdfa1dd6ea2eead03e8dfe686f5ae355874f0dde0ccbfed","0x8Ba009Cad493C7646e31D69428AB9A54F47B3779",!0,!0,null,null],["ethereum","virtue_player_points","VPP",18,"Virtue Player Points","3045022100fc4874768dfb329c181e1a7ad74b07c1753a3f23e98151093a23c7a4cee5f71002200a9f2abdb72cc982acdd857814b1ed6c714b8fb033d98d802b09458d0b348b30","0x5EeAA2DCb23056F4E8654a349E57eBE5e76b5e6e",!1,!1,null,null],["ethereum","vision_network","VSN",18,"Vision Network","304502210099e704051323f1c095aa80887a546936206d0896a99f8a4f8a679a356dbc5b68022040e25634174277fc86d581cdc1eeab4fb2076105bf7cc8ba3e12a5c16d513e97","0x456AE45c0CE901E2e7c99c0718031cEc0A7A59Ff",!1,!1,null,null],["ethereum","vision_token","VISION",18,"Vision Token","3045022100cdc3e2a92ca34d88b770f5fdaac7281182072af9d4fcf134fb63be685b1f1b71022073b15e15a7fa37ddf577a5154562f5f33736fd6c59e9b33040c84b9a754144e8","0xF406F7A9046793267bc276908778B29563323996",!1,!1,null,null],["ethereum","visor","VISR",18,"VISOR","3045022100bfc8793aede73bd7937101d3d75a8e26ad8a038a06f4d249d30332a4d5e9bd9b02202fb6b98eb7e6cf8c33dbcc1ca08bdf4ea07646de12729b870e3d5f0f6eca1149","0xF938424F7210f31dF2Aee3011291b658f872e91e",!1,!1,null,null],["ethereum","vita_inu","VINU",18,"Vita Inu","3045022100dc8382db9f3a552502e7b316caaa8211327d92c7b52158f76cdb18bf1664a08a02202311eab09255109bef4491c8dd45c4b859027d5aa36e7768ef8e9b93ff133807","0xAFCdd4f666c84Fed1d8BD825aA762e3714F652c9",!1,!1,null,null],["ethereum","vitadao_token","VITA",18,"VitaDAO Token","30450221009afa1b30a12b6519caa1727678983f3ab197b4a7efd89f73037f21fdc0b3bed302201a3ba555b6bfc876346f064f323215c5719035abf37e7af2c917983a4d4161ed","0x81f8f0bb1cB2A06649E51913A151F0E7Ef6FA321",!1,!1,null,null],["ethereum","vite","VITE",18,"Vite","3044022064fe1334b9f01a68550cce20b5b0d0729578a5e086c85f66cc8c26a19301ac6902203bde340dde3b9b46b0f5e9d0b3d77436902803576fe717895cfe31c76b8cc9eb","0xadd5E881984783dD432F80381Fb52F45B53f3e70",!0,!0,null,null],["ethereum","vitetoken","VITE",18,"ViteToken","3045022100b2b17ad20ab9ac7d45ce393be80bbac2127e1169fd5b6679c0944ca142f4ca8802207b7bd0cec078fd9a6dc5c2bc367d0f75c2fc8ca6fa9263893ae962455c4a2579","0x1b793E49237758dBD8b752AFC9Eb4b329d5Da016",!1,!1,null,null],["ethereum","viu","VIU",18,"VIU","304402204588cef6e1b9af23f4e868a807aefb2942c03e51c426715b104d0f79ea7556ea022030a37329c05d27b09c93a6f703915aea47f8d3a41ebd65b763eeb0d4dcf40202","0x519475b31653E46D20cD09F9FdcF3B12BDAcB4f5",!0,!1,null,null],["ethereum","vixco","VIX",18,"VIXCO","3045022100c7ee3ddfbfe8548ad16ea3e9e5c1def327dcef8639c5e9ea8474bdf8108fdd2e022032db7f6bf778b3bf7e46c9567645f7465f012a69a8fe3ae47330b91f265145b0","0x49Bf0220C9Ce17E52dCcA3d217231746D676085B",!1,!1,null,null],["ethereum","vlink_pool","VLINK",18,"vLINK Pool","30440220462dc5cd12055e82b096d6c6475c22ab5c4e6a46de3eff56d34795daa1b2789e02203838ebb11a9e4b154ece156b44eca54bdb6cd01c7f2dc5c49fb8ce3bcedee328","0x0a27E910Aee974D05000e05eab8a4b8Ebd93D40C",!1,!1,null,null],["ethereum","vndc","VNDC",0,"VNDC","3044022047342e01f294b048f7b7971b0e45551860cc508144b73759061abc4c666a52e7022041ec4fe5ba2549b6229a375e10ea6bf57c213047ec925f520802078b47a962cd","0x1F3F677Ecc58F6A1F9e2CF410dF4776a8546b5DE",!1,!1,null,null],["ethereum","vntchain","VNT",8,"VNTChain","3044022100c0ea492112981fec45c6a3ca957388539ce53ff7f1c164e9831b63d11941add3021f2e7b068762b3ce0f9d21eee680b50e94c83d3b3238a0aefe03b6e3422b35ce","0x69d2779533a4D2c780639713558B2cC98c46A9b7",!0,!1,null,null],["ethereum","vnx_exchange","VNXLU",18,"VNX Exchange","30440220760499a45cd0848bf56a1e724584c068158205344f99f5d78e31c223fa9f7abd02205443ac133426d0bce3ccb110194e5dc1ec7c3cfab6e9beeb74176fe7d9ccfd18","0x00fC270C9cc13e878Ab5363D00354bebF6f05C15",!1,!1,null,null],["ethereum","voda_token","WDT",18,"VODA TOKEN","304402206305298fbadd599d02ef7b31cfb9915115940877a30b69fe8a0303a0398f12e1022057cd138955769cffdcbe2f73f8c1e8ba7ba36f20fc95da81d5149cdd46654606","0xD110bB8a24B100c37aF7310416E685af807C1F10",!1,!1,null,null],["ethereum","vodi_x","VDX",18,"Vodi X","3045022100d6df636e34dd0b4baaa42fe056dc49a4ae653d8da9b51c312d0fde44812940cd02200859b9e01d71137e97f3f1ed68468eeb5a16e6dbc270d8c5e3e26369ef354f58","0x91e64F39C1FE14492e8FDf5A8B0f305BD218C8A1",!1,!1,null,null],["ethereum","vodra","VDR",18,"Vodra","30440220565e1f59c67ee45e7f79e69f28268d82f008d7cafb8181320897c9bf85d3b01602205048770c4ec31439204baf34910f3b949085187c80231b7894a1ad1bed4003b2","0xEd3D4e446A96dC3b181B64B75c3c70dA41dC3CBe",!1,!1,null,null],["ethereum","voice_token","VOICE",18,"Voice Token","304402202a8d7eea188e138254116eb3f4ba656168c5b1ea511822a82d5a1f137b78b66e022005f256a87f375ce09b83201eb6d2ee4be23155b4ab54a747b27a44010270f793","0x2e2364966267B5D7D2cE6CD9A9B5bD19d9C7C6A9",!1,!1,null,null],["ethereum","voise","VOISE",8,"Voise","30440220554362a2e6fda1bf7059f915ea28d48dcc950b92eccde865f461a8ac85bf57ea02202b3dafe5f9230cc4ecaf146bd50d6ce7dea1261a05e933527cd6a0e3b3f6ba46","0x83eEA00D838f92dEC4D1475697B9f4D3537b56E3",!1,!1,null,null],["ethereum","volatility_protocol_token","VOL",18,"Volatility Protocol Token","30450221009b23c1ff6e64ef87e121baa765e454528b00d0a98b9033516eabe578fbc289d2022004336ee64ea309065585fead7b2b361d4dc9567155b4633b2e9ca05c5f3115cb","0x5166E09628b696285E3A151e84FB977736a83575",!1,!1,null,null],["ethereum","voloro_labs_ds_token","V0LR",8,"Voloro Labs DS Token","3044022003b505fdcbd669abca2800485946d5618960947f65511193e2617dc2f71534e90220602d2faa43d628ae4fb7617a613476c7248327083b317636f175202f7821492d","0xeCA8a5A73F4c9AA83bb3B8c47F62764dc86AAb38",!1,!1,null,null],["ethereum","volt","ACDC",18,"VOLT","3044022078dd312f05f9919db12dbd6b1e5cb9b1664fbde64bdcbfb24ab5367bc426e77002202294d212d2e681d87230973fbf10627fa39d3ea255a4837ae79eed04270d0203","0xFc44EC51C80e35A87Bc2140299B1636eC83DFb04",!1,!1,null,null],["ethereum","volt_inu","VOLTI",9,"Volt Inu","3043022077710f2c4f9d5ed975ecb22501a3b2c3558c02718b3a0e4ba410cdec9138be25021f7dd15fac6ab0c107b1c907fd838a78515a33cb95cacd3606b60429b7d69cbb","0x7db5af2B9624e1b3B4Bb69D6DeBd9aD1016A58Ac",!1,!1,null,null],["ethereum","volt_inu_","VOLTI_",9,"Volt Inu (Old)","3045022100e1c06d43ee92173d27608b1e2c2e269c6ce6da37c3740acc10a12bf1840c311602205369b9f2cfcd60669dfe53143e940243da31ec3a28837bdfadaea9209a29c229","0x3F7Aff0EF20AA2E646290DfA4E67611B2220C597",!0,!1,null,null],["ethereum","voltage","VOLT",18,"VOLTAGE","3045022100e72b9d6b168cc6adb72088d13718eec5f6254c928a170af22c14d5e27f2532c002207d7e7994603a9249652d97f39fdaa967262b2b29308f828938cef867f6422b78","0xfFbF315f70E458e49229654DeA4cE192d26f9b25",!1,!1,null,null],["ethereum","voltium","VLTM",8,"Voltium","3045022100b8f914189a20cfe00b1cd6b208a6d1f530a1eae2c1004e7f9d8e48cb250802ec02200cf1c1f21f6e31d75a83245cd7e01022e407c69f4fbb70ab945e5ab5c8849819","0xAF5DB2cc35Ef9BbA3cfa5f8FAeEDcf9b4e2F286F",!1,!1,null,null],["ethereum","volts_finance","VOLTS",18,"Volts.Finance","304402201d7ffb51a7fbd56b8ff5d92f28db0aecec90f1fdf38bfcad9f715dae9ed4d134022005a392abde4727c9681974d0b7299d9bec57577250d33308ffdd55490333f638","0x14D1C83DF4dECEE9dEB14eE851f109f0101A6631",!1,!1,null,null],["ethereum","voltz","VOLTZ",18,"VOLTZ","30440220603e8d9559aa52270ae445ffadfa852cc613ecc914985400e719c528de04a2ca0220380236717c6d3d46378107e78ad026e51610aee5f13feba17060d1983d1dd491","0x60715E436c37444E29772c0D26a98Ae1E8E1A989",!1,!1,null,null],["ethereum","vormacoin","VOC",18,"VORMACOIN","3045022100b7809db3b972c6732d47ef3f65b98f3d67b5966ccc4b81a5f59452891355513e022034bfc82da790b9b33b1dfe92b8feedc91d063b236016c86b458134a711eb5c2f","0xc3bC9Eb71f75Ec439A6b6C8E8b746fCF5b62F703",!1,!1,null,null],["ethereum","vortex_defi","VTX",18,"Vortex DeFi","304402202228b5c37233eb1f8e6a1d828a12212ac2222e998d2c5e68994391d398ba9ce902206f01420191ec4cb396b84e68dcbb391e190e12b08c920e88942f30fd4abcca3f","0xceb286C9604c542d3cc08b41AA6C9675B078A832",!0,!1,null,null],["ethereum","vortex_network","VTX",18,"VorteX Network","3045022100f454689f3f2ca599a6feadd4d732859aec38fdbd03bcb18245ebb6c53f00719102203953faf96b5f487708bc8b09e555561102a1ef5e82bb50f32e3422310b05c1ed","0xd957E08ac5421E2C28510586B57d095E5094836a",!0,!1,null,null],["ethereum","voucher_ethereum","VETH",18,"Voucher Ethereum","304502210080a8010cc11c46d9b76c709d0cf5785ab61090b514fc67f1df8d0b24bc876fd30220443f61e1f4223a38c9865c6fe34c858f1531466e4f1721c601e883c619dfa571","0xc3D088842DcF02C13699F936BB83DFBBc6f721Ab",!1,!1,null,null],["ethereum","vow","VOW",18,"Vow","3045022100b10ea86bd34f4eaf9f6c8bad8ec15745b668506919b3c031fcd3f77b40b6781f02200c9952ffd72cc78544df46f93ec8a7647d28eab9bca4038401a1bc9697e80f56","0x1BBf25e71EC48B84d773809B4bA55B6F4bE946Fb",!1,!1,null,null],["ethereum","vox_finance","VOX",18,"Vox.Finance","3045022100c27cc0676e562cd1d594d1c12a83fc7d5ea58c2680837d3ec1d8ca0d2289c7ce022056089f658f6f01a159d0285059842d4a5ea1bf79d68bc5183e92b521738ea762","0x12D102F06da35cC0111EB58017fd2Cd28537d0e1",!1,!1,null,null],["ethereum","voyager","VGR",2,"Voyager","304402205036165406f7e0537efad4a912ccd3609f39aa93378a5d5495651fefdeb3151302206da92801db1137eb85026685fce7640644f5e6a4320a42d433083e6af06cca44","0x16987C021C14ca1045cd0afEbB33c124a58Bf16C",!1,!1,null,null],["ethereum","voyager_token","VGX",8,"Voyager Token","3045022100d9a58c4095701eaee74a1dfdb4d0883ac8fe7ae102443141bf337fd5826adbf6022068f208b7011b0307a7e991fb65fadc6feba18ac0e59e2e70c1bb3f0f108c386e","0x3C4B6E6e1eA3D4863700D7F76b36B7f3D3f13E3d",!1,!1,null,null],["ethereum","vrenelium","VRE",18,"Vrenelium","3045022100ba640424662e1ff3fba440f3c27c07059c4758cdaf6deea83ff7ceb88d3628b702200df6bd1221c0b17ffa78934889c6d089ce57f7e980250702bc9eee37eef35167","0xF722B01910F93B84EDa9CA128b9F05821A41EAe1",!1,!1,null,null],["ethereum","vspacex_token_v1","VSPACEX",18,"vSPACEX Token V1","304402203a014d7990c28cceb31e9ef59d10e883fd6639964bacc55eb86c9db0d53c99d002207ebf03848a5b2133cbe67297a80b6a9fcf2ae2a031218ed27ab9080821a1fe18","0x44e28f2aCC84C36373BAdcd681749D38E01e2cC4",!1,!1,null,null],["ethereum","vtd","VTD",18,"VTD","3045022100f3d1a2ecfd902cf0d3a5976219ea3e1b12508a0803806a3cc1b0e8d4159dcdcc02202ea6a5a1ead94c7c35415b1aa9672940b9324223bc3b300dac177ae710494278","0xf0E3543744AFcEd8042131582f2A19b6AEb82794",!1,!1,null,null],["ethereum","vthor","VTHOR",18,"vTHOR","3045022100aefdc2581236975f1b6cff37612dadbaa26b90180dd0fc3e19442a0dd81d577c022074115eeb7bf5248de1d5bfb892f01a40269c4f73a18afc456efd0336ee70d055","0x815C23eCA83261b6Ec689b60Cc4a58b54BC24D8D",!0,!0,null,null],["ethereum","vulcan_forged","PYR",18,"Vulcan Forged","30450221008624d603ed753ad6e21b50149445b137e11985aa5481630bd23eb90cb79db8df02205f205d68c0dd87b30eb7ab4bc371b3874e3e127305b50de2e6d091b1a6fbd699","0x430EF9263E76DAE63c84292C3409D61c598E9682",!1,!1,null,null],["ethereum","vusd","VUSD",18,"VUSD","304402205753a327ca23c38fc73c94cb344abdea065ff3eec20e769ddd0e3def17f8874f02204f9f893aedcb7bdb575174d44333bf937a86765de2cdba9478a398975bf9d994","0x677ddbd918637E5F2c79e164D402454dE7dA8619",!1,!1,null,null],["ethereum","vusdc_pool","VUSDC",18,"vUSDC Pool","3045022100e2b6b28da517b97bde80ea901b882f1d25463bd5ac5e01a37fe0b3bfe26cce38022070c3e99862cb4c5023de4fa75a784175ec0190a4290a6458446e4d0402bee2c7","0x0C49066C0808Ee8c673553B7cbd99BCC9ABf113d",!1,!1,null,null],["ethereum","vvs","VVS",18,"VVS","304402204c3ce1aa03c2e2887d43e2a260479178779c5bcda6e400ab2b97fbd22a72e7c002203e365f0cadcc0475cfed5374819d83d5bac2e508e013bbb63ef36814637a554b","0x839e71613f9aA06E5701CF6de63E303616B0DDE3",!1,!1,null,null],["ethereum","vvsp_pool","VVSP",18,"vVSP pool","3045022100c3e37ef39f48f110c702dc01a62dbcdb77bbbfd2e6bb1587752d82a8898254be022009fdb2fd3f7617c14468ce867ea4cf54bf15754dee6aae0ac4536e79bd6086af","0xbA4cFE5741b357FA371b506e5db0774aBFeCf8Fc",!1,!1,null,null],["ethereum","vwbtc_pool","VWBTC",18,"vWBTC Pool","3045022100d5872ee74fbd3a80c216634f34c4e003790302acf79f8d8bff9c610ef34db02202203741e69fa75bf1d2a922b0dffcac1fc334ac68bda89290f452e63b0fddfdc1ac","0x4B2e76EbBc9f2923d83F5FBDe695D8733db1a17B",!1,!1,null,null],["ethereum","vx_network","VX",18,"VX Network","304402202b0bb223edd67972ae11139654a62c65e592f6e721240180740d9d3685d13f5502204d2a57a4c3aeaa62916f8c0182b4e4a21b35cb1db6401c9e0830402a6dbf08e3","0xBF38bA2A90b825FBa02F60459a097fB202134687",!1,!1,null,null],["ethereum","vybe","VYBE",18,"Vybe","3045022100953e7cad78f9c7bb25ccef53683e766d156bd3168ad19fb719bd2946c5a3971c02207d618583bc455615c5e9a77bd21a309df0e12a1f54f8198040a3982e1d0858d5","0x3A1c1d1c06bE03cDDC4d3332F7C20e1B37c97CE9",!1,!1,null,null],["ethereum","vynk_chain","VYNC",4,"VYNK CHAIN","3044022024d6b0779b91be08f7773465782ee0f1fa160149f2250d67f49f764c9c5e20d30220607dba0724c53043e71923076d0dff4d2c5fdf6ce7225faf7a56a9bf9cfc5e23","0xee1ae38BE4Ce0074C4A4A8DC821CC784778f378c",!1,!1,null,null],["ethereum","w3bpush","W3B",18,"W3bPush","30440220169bb2efafca0d94ca305d6bfcf04727e5be20713ab170ffe0946e2193ca1be002202d09f17d1854a891c6f12b01c1ba38bad1dc81b3fb2f73a0fd29d157d34c6985","0x777ba4d2393Ea77893322743c7D817eFEF872204",!1,!1,null,null],["ethereum","w_green_pay","WGP",18,"W GREEN PAY","3045022100e6f41a8480be2659a4c06c4e836557b124620b93041457ba8ea36453a186cf30022038ee8133b5e3a11eafdca4dea988ef3092586cfae1f3728eb51d3e72105fbd9a","0xdD94842C15abfe4c9bAFE4222adE02896Beb064c",!1,!1,null,null],["ethereum","wabi","WABI",18,"WaBi","3044022065ff7efb4f7ff909f59931b0852b5fc6dc2feeed8b5be36916bb2cea459026680220638c0dc25e276da509b5749e257623228c398056541a0d59ad3a75d8d03408e0","0x286BDA1413a2Df81731D4930ce2F862a35A609fE",!1,!1,null,null],["ethereum","wabnetwork","WAB",18,"WABnetwork","3044022070181ab0b648090efacaf2e561bdad76ec78ea76f37599ee4b867c6456abba2f022056cf8db7caa49531efa5a9ab8b94aff6f1a76cc903d4a273ba4c7b113e99ecd1","0x4BBbC57aF270138Ef2FF2C50DbfAD684e9E0e604",!1,!1,null,null],["ethereum","wadzpay_old","WTK_",2,"WadzPay","304402206f08bc5b560a1591d23253e5df4c3e776685f508409f7b178a4429d6bb8148a302202c1614585c146a3640d49f2cd1dcff0afdff102d28c7034dfcec383de3933bc9","0xDF9d4674a430BDCC096A3a403128357AB36844BA",!0,!1,null,null],["ethereum","wadzpay_token","WTK",18,"WadzPay Token","304402203f9facc17cc5eef0b4a7bd6e361c917a7aa976cb2a361d6515e596f4ea7913a8022051df6b2f0b03e2311387aea9b36377c232b83c3bffaade33849f407501ab1dc6","0x4cfF49d0A19ed6Ff845a9122fa912AbcFB1F68A6",!1,!1,null,null],["ethereum","wagmi","WGMI",18,"WAGMI","304502210098d5d037c53bf95f72e6185243f4141c102f21a7c30be7f0282c436e1d68c7dd022048b52a340476cd561968fd7ddcff6d044c37b37a60f834a6f39d6a2bb95d94cd","0xf63F99a11e01b7e3B8568316947324f24E83FdDC",!0,!0,null,null],["ethereum","wagmi_games","WAGMIG",18,"WAGMI GAMES","304402204f0141a871d6eb433c0d2096d390d1e5691062117658e3ec740d9db33289034602206674bf0fde58e8206d1d5164fa9e90ab89415c33c2e32e2935362b4ffe74049c","0x3B604747ad1720C01ded0455728b62c0d2F100F0",!1,!1,null,null],["ethereum","waifu","WAIF",18,"Waifu","30440220656cad795cd60845eb010eea070b4ae01585359ae5e7a34e857866034475f63d02206334db9d0501fb0576e398019fc5e3d3759c272c9978a4cdb7332b67ff2696cb","0xB2279B6769CFBa691416F00609b16244c0cF4b20",!1,!1,null,null],["ethereum","waifu_nft_collection","UWAIFU",18,"WAIFU NFT Collection","3044022073f5383fb71117919371079f279c5162f55bb3bbaf293680694d3d646ec88343022043a91d22f6c651445a6222ad53027c02de66a1feff72498eddc9bda45dffd311","0x3ac7A71B97183E3Db7722c75EAa8dF2C1a0badFC",!1,!1,null,null],["ethereum","waifusion","WAIFU",18,"Waifusion","30440220164921f0b92134da09919ca0f5a09a9e9a28b8f92f1c81eb4ff245d62b6a220c0220614e05bc5ca94cd742f18d9d1a495a7a70526bc20f347e2920c0fee8ff8768d5","0xE7F4c89032A2488D327323548AB0459676269331",!1,!1,null,null],["ethereum","wak_coin","WAK",18,"Wak Coin","304402206213a0bdb3f5fcce77801195f01df19e1f72f79b1ca72017f2da125fdde8f938022029c97825a4aa7168a466903926475e28147d8001853044ff80e57078850f126c","0x9f6513ED2b0DE89218E97DB4A5115ba04Be449f1",!1,!1,null,null],["ethereum","waletoken","WTN",8,"WaleTokeN","30450221008fd0112c3b2cd8ef59b49cfb03ee61e8e11011abc0857e39ecc1af4e4c0a5167022003b484763d5ca617b6ae666b3261e6b220cef162c6e746bd9524d4a382e045ac","0x0ea984e789302B7B612147E4e4144e64f21425Eb",!1,!1,null,null],["ethereum","walker","WLKRR",18,"Walker","30440220108adf04ab223f99fc1c24eba5d898f91a430ea6adef8ea7826ad372d05bfd9e022073a151d0a391745fc5e6fc3b575a81078d88e27e9178e3a4620e95aaca39502d","0xC90206AB21bdbF5e92AfF4E6B5F097B65b0eCc06",!1,!1,null,null],["ethereum","wall_street_baby","WSB",18,"Wall Street Baby","3045022100ea8ec0853849c52d93066708f4fa997ed1ba78653d77552a4325d2232770465b022069c94c6684bd5816c83d12b6a52761786ebf2622800fdde2c091f9cdfdd09fba","0x62F8DbdEA37A4eD40Ff3d2631001e4490c13218f",!1,!1,null,null],["ethereum","walletplusx","WPX",18,"WalletPlusX","3044022063b610ba810992f0980ee8e603d37d9bdb286bbbb20a0fd04942431dd173bf9302202c64f8877fc75fcca21933c89587e09225470f6e1252c6fad2d9bf7b59a45030","0xb3BACe433288645114FE8e8aA91F87659CBF665b",!1,!1,null,null],["ethereum","walnut_finance","WTF",18,"Walnut.Finance","304402202b99bb913e5d9ac02d9952c428c1aa3903dffc4be1a58f16a00b6bdd55d9e0130220100c9af78bcd2bf0cf70aa38d2ade694839eca57ab93eb4a37c45ab41a58c3bc","0x0501E7a02C285B9B520FdBF1BADC74Ae931aD75d",!1,!1,null,null],["ethereum","walton","WTC",18,"Walton (ERC20)","3044022050f0b39e9fec77510cf692aa7ef544751b55855d68b65b0b250ae66e64d411f402205100262a1dd1efb0b14119c30a68227b9605656525e9ea337b82f89283ed7123","0xb7cB1C96dB6B22b0D3d9536E0108d062BD488F74",!0,!0,null,null],["ethereum","wand_token","WAND",18,"Wand Token","3045022100f5c92dff0e0fc8c76a2270e8b2045a324f219723c0cb93965cb4dbbc8936173802205f5fc65d1ace9957299c2c90cf90205c181521b1a9c2e69c532f54ea25367873","0x27f610BF36ecA0939093343ac28b1534a721DBB4",!1,!1,null,null],["ethereum","warp_token","WARP",18,"Warp Token","3044022003b0ecd4b22f6ac9c66a21c1c2c37657c6d31377500cee5151adcc04702399aa022014692032cbcfb89dfddecdd48f5d94c0f7d3c86461f0599e78445085b3cfb21c","0xEd40834A13129509A89be39a9bE9C0E96A0DDd71",!0,!1,null,null],["ethereum","wasabi","WASABI",18,"Wasabi","3045022100e974365928b09c4a26386156371c2e065bba62121f266e1fab820019396c0c74022051c6c9c1e02994923408a32d4b01cd110e029617987b83a5b2ce280edd6b3eed","0x896e145568624a498c5a909187363AE947631503",!1,!1,null,null],["ethereum","wasder_token","WAS",18,"Wasder Token","3045022100ea94c771a45b03cb04b89e72e7ed6a069e3c042c49809b1d1ea70f72a74f0c7b022066bf9ab19047cb0f0f469e79672f7d172037aef677c1e4c5048a3d75e588c947","0x0c572544a4Ee47904d54aaA6A970AF96B6f00E1b",!1,!1,null,null],["ethereum","waterdrop","WDP",18,"WaterDrop","3044022064491443a0c0fc09949bf68590938ad3f59fc4c29c7469aef163c0ba950fd810022052534edbb3b6a8dd0d15ed295879e17c06401aa6d9afd2c09d98ef64136c3c4e","0xD61B60Ccbdaf09c2e036c72734Adb3270ed27192",!1,!1,null,null],["ethereum","wave","WAE",6,"Wave","3044022061023f7a0aac44da431e790fd18b36cd93731dbd043b6be37fcaa758a8a562b20220783dc49255410a6774bcd9c0f17cdf29b1afe53147a3c4c907cb10764b6897b6","0x2f7b88458f4E6D9AbB19396b5a08b8bA7f3d4b20",!1,!1,null,null],["ethereum","waves","WAVES",18,"WAVES","3044022000e49c9e80938674cd25a34604532bd588dca0010baf0c39e54e544484ea64d602207fef2b92e495cd4eea09fe7d2ef4e4bc4423fc663341a293a72e9425d41b1e4e","0x1cF4592ebfFd730c7dc92c1bdFFDfc3B9EfCf29a",!1,!1,null,null],["ethereum","wax","WAX",8,"WAX (ERC20)","304402204eb1b9dc9d04701e34228be746ad73f2ea4ed9eb9fef4287197b886e723bb9250220055322e730514290316cf44cf5d1b889aee067a902cda36b307288c8aa37b033","0x39Bb259F66E1C59d5ABEF88375979b4D20D98022",!0,!0,null,null],["ethereum","wax_economic_token","WAXE",8,"WAX Economic Token","30450221009be4b7c089c9bd2d8e2b5d9122a3aeb011e931cbb894d30d951aa5c13d27377e02202385e05b229d8f7dbdbd093a7af651dd23c85608d3a23c6749b4f90b4d83888e","0x7a2Bc711E19ba6aff6cE8246C546E8c4B4944DFD",!1,!1,null,null],["ethereum","waxp_token","WAXP",8,"WAXP Token","3045022100b5625010c91d04db1a43e22aceef853ca2694c6a022f9361e28e9959602177a4022035e77efbfa3274991dd26b3b40e00a272cd81b4d206377bb2a8ef3d37a8f1d8e","0x2A79324c19Ef2B89Ea98b23BC669B7E7c9f8A517",!1,!1,null,null],["ethereum","wbt","WBT",8,"WBT","3045022100bb56249637fdc72d2a4a0a8616f027a94501ffd9fb982520a47c54c2a5176b1c02205d7001e1b15213cf706ff4bcd473258eef0a6d2ab1283061835bcf8d809f51b0","0x925206b8a707096Ed26ae47C84747fE0bb734F59",!1,!1,null,null],["ethereum","wcoin","WIN",8,"WCOIN","30450221009c5df6d869b897573acf64da82b02dbf24c5162f6bc49e75ecf599e093025144022044976a1dbd784b44ca316ac60613c0a6e100c57cb8ddefd11e0a8fe3eb6d54da","0x899338b84D25aC505a332aDCE7402d697D947494",!1,!1,null,null],["ethereum","web_token_pay","WTP",18,"Web token Pay","3045022100e7393a225f06925097d2af06cd89e6331d322371321fbc29f4a9af2d216195e70220312daa4825699f8f15552434c66fcf94546a2f3d2505aabd0cf8b8cb3949db86","0x1680CfdAD75dA2bb56Ded4f36BB9423C86ffa7B7",!1,!1,null,null],["ethereum","webcoin","WEB",18,"Webcoin","304402207348c42c0c9b789d7cdc417f0409b9fe02c9fcdd0a96ccde1a2a2e3a0da7c21c02200d7c414c8a464468eb072d314bd86e51f63e573e3874f75648aaa8a23be186f2","0x840fe75ABfaDc0F2d54037829571B2782e919ce4",!1,!1,null,null],["ethereum","webetcrypto","WBA",7,"WeBetCrypto","3045022100ca79607acdcc94d25e2530e461eea89fce03b41427c0fbaed314c18e0221d11302204b4aab57ffa5a392a0775495feaff93d718b1cd87a5d806be31e9e45d8f47ff2","0x74951B677de32D596EE851A233336926e6A2cd09",!1,!1,null,null],["ethereum","webflix_token","WFX",18,"Webflix Token","304402201e05b8b276babaff4bb72f52d6ebe1ae8a0d859031e19c22eb12c9205564f28f02203cae188922a96d78804fd634948cfbcbdbff9fd85123e04eb62d8a068993079a","0xBa1ED22C69ad00739EE2b4aBD70e270BE9e87eE2",!1,!1,null,null],["ethereum","webn","WEBN",8,"WEBN","3045022100f3d36533808ce254256947d38b032b51b36714bcf50a86cf1c6842c99f336a9a02202bcf65c5a2f6e4a2134f7136a4676e434e19141af64c98965c0584854b7ca860","0x15A664416E42766A6cC0a1221d9C088548a6E731",!1,!1,null,null],["ethereum","wecoown_rewards","WCX",18,"WeCoOwn Rewards","304402206cd01e242adfcf433859721e765610b3161c1990315e3ff8b224a0ecb7560d3902204cc81860b4efe8f51c924327563fc0a6ce06c6c272c449901c5bc196b76df300","0xC014186Cf1Ba36032aaEc7f96088f09eb3934347",!1,!1,null,null],["ethereum","weemarketplaceaccesstoken","WMA",18,"weeMarketplaceAccessToken","3045022100cef90067857befcd9c55581187d304ce63b5aa58bc42eb3db1ce88484330987802207b4665b91c618b0a211c65af5bd6c6e8b5c16ea71de7cbd298676f7b1179ef1e","0x685ED390B16Ac9Df9Ab9707294a42a107cFB62Af",!1,!1,null,null],["ethereum","welltrado_token","WTL",18,"Welltrado token","304402204157b88206d97d8f7174294ac90017580e10852b18ae61c573a793c588126615022073187e9b8306d34deb73b42b31edaced1264ee7084c81e3baafa4e68baa3252b","0x9a0587EaE7eF64b2B38A10442a44CfA43EDd7D2A",!1,!1,null,null],["ethereum","wemarktoken","WMK",18,"WemarkToken","3045022100dae923ed652b4c5472a8217022a0dd753831e4132b7559e54d0c4ed39db2a8a0022019de9c5ea5e1d4ab3c1fa2b497221044a05d572b16c1fe65bbb9db3c931d03ae","0xBFbe5332f172d77811bC6c272844f3e54A7B23bB",!1,!1,null,null],["ethereum","wenburn","WENB",6,"WenBURN","30440220267259be7fd210df35ac0aa53e6a5eada761f4a016443de42f8865a2018cf38e02202bda5fbbddc47d4a7e917a30f0b3f444259f4be22703f77cdaed35f143c434db","0x46f4E420C75401494a39B70653F4bbb88aD2d728",!1,!1,null,null],["ethereum","wepower","WCT",18,"WePower","3045022100c4e00524601dae64c5ced562dc453182f6cea579d7244e6110e024c4cf8670b30220462188e2920bfb96fb9e04ad99e85494d40da4f04073339b7d17a557a5f31649","0x6a0A97E47d15aAd1D132a1Ac79a480E3F2079063",!1,!1,null,null],["ethereum","wepower_token","WPR",18,"WePower Token","304402203ab32f9a9922072fbb19381307428ab0d7a20b1bf2b95e2849335306660665dc02203391b6414a7afe25ca2c784c3cdd31f04b23508bf5fd3a63b4725f23e1d87b38","0x4CF488387F035FF08c371515562CBa712f9015d4",!1,!1,null,null],["ethereum","werewolf_coin","WWC",18,"Werewolf Coin","304402202f2064d79ebf74a086f33fb186a9af1a377bd2d825bc0e4c1fb97c8f02f98cea02204fb52e65ba42e1dccdc90ff172a8b3cc51ebd10bf63e25d5fb361d6dae7b1831","0x38118BDB3B480F570837A4c2e88faC6E83BE6689",!1,!1,null,null],["ethereum","wesingcoin","WSC",6,"WeSingCoin","3044022015115d11689a0fb04adbaa5880850cfa82692d71ad46b81f286a046b5d97c84d022047a52ff3fad3a5239bf143fdbcdc5a4a8b1ca651187a1c2cf75fadde1c9074a2","0x2dcD9B1A7Ed408Ff48bD4918a1f9c0535dc54EAD",!1,!1,null,null],["ethereum","weth","WETH",18,"WETH","3045022100b47ee8551c15a2cf681c649651e987d7e527c481d27c38da1f971a8242792bd3022069c3f688ac5493a23dab5798e3c9b07484765069e1d4be14321aae4d92cb8cbe","0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2",!1,!1,null,null],["ethereum","wetoken","WON",18,"WeToken","3045022100ef69fc12d50650616a1406ccb3a14ac30ba94fc5b6edb0cf7bd90b8711800d2b022059000828bad49a70fdae0c8b1b557915dcfa9d263d5e15e690fd7b11b216f9de","0x1EddEe3Fa21591a9637f88DaB9615C33Ee636b9D",!1,!1,null,null],["ethereum","wgm","WGM",4,"WGM","3045022100e99b61d225083fc31d354ea7e80cd90ff5811e587612560613d5478d4cbbed3b022005151dab8924d39bdac074c1e4962fdb2946167c9a6a35507aa64e75a255286b","0x219803d17f3067eb53d521ba8948d2734f402f7d",!0,!1,null,null],["ethereum","whackd","WHACKD",18,"Whackd","3045022100bd272efe6aabfc36aace30c39bb48d8ce01120cd677d4b53281e444e26a5b6a90220618a1088f58c235421c2db558fd2fc829b4e8b385c1ea3c25f53332fd79f70dd","0xCF8335727B776d190f9D15a54E6B9B9348439eEE",!1,!1,null,null],["ethereum","whale","WHALE",4,"WHALE","30450221009e48955bbc9e533edd1466c03dfa2241390cb9913ec785b538b15837a69ba8c402204d8b17b43d31faf17cd3772d2debd56c95301d9a7ca80dd8f02f8bbea078b866","0x9355372396e3F6daF13359B7b607a3374cc638e0",!1,!1,null,null],["ethereum","whalecoin","WHALE",18,"WhaleCoin","304502210091ef5bd51525a327f0dc15a7c5b4cfec481a27e4502e6d3a1e9f3091f018615b022009d5ee18674a6bb39c7261ad34a006d590435a9276adefb1e3c1ceb5e3843695","0x804E26C4EFf0BB196b805bDFb5B29AB828cF0B1f",!0,!0,null,null],["ethereum","whaleroom","WHL",18,"WhaleRoom","304402206148aa8ec7c53c43b12253eaffc67aa27596fa5022d4dbc7e74e9ddad2b98c12022024ea3c02b1df18afb31b73d5fc0ba60b342da51e4b791de8b99f281803582d7a","0x2aF72850c504dDD3c1876C66a914cAee7Ff8a46A",!1,!1,null,null],["ethereum","whalesburgtoken","WBT",18,"WhalesburgToken","30440220157213fbfd8c74787d99f321520bd6736ce8ea0909604da509def90815deb8f10220434092d1800c85bd18009f27355f0a2ce4bc7fb2dcb6b684f49569cd47d2ef6c","0xe2Ee1ac57B2E5564522b2dE064A47b3f98B0e9c9",!0,!1,null,null],["ethereum","whalestreet_$hrimp_token","$HRIMP",18,"WhaleStreet $hrimp Token","3045022100a6603401347ccd42cc1e57562dcb5ccf4f4ee00b2e0433c5493187ffa433cb5902206d9d9c5ea4582a9a2b8d273a262ee55d22fd4bfdef0f8ca4e69c4d27d425aa8a","0x9077F9e1eFE0eA72867ac89046b2a6264CbcaeF5",!1,!1,null,null],["ethereum","when_token","WHEN",18,"WHEN Token","3045022100d0622e83fbc45f17c4e1bf957770f0a173b929f6f27bb9d56521d0a63ca1c4f002205a0c19aa3106da9c6a12e029259e63d3d268d6e00f4a5ea49bf0f0884aaefa72","0xF4FE95603881D0e07954fD7605E0e9a916e42C44",!1,!1,null,null],["ethereum","wheytoken","WHEY",18,"WheyToken","304402202ab73d2c0cbb6a8743003fd7be86285fe9586159f586d37a21b96699cca5766d0220287e69271075a9eef88aec043ca3a52744f044cc1d230628fb7016c58c3302ec","0xCa5d29B3e74D59EBcDF09111495d86F319886A40",!1,!1,null,null],["ethereum","whiteheart_token","WHITE",18,"Whiteheart Token","304402206d080fda9f97c7efd1a814c740a231b6018d291c61082a1959fd1991272486f9022030277a0ecc1466362dc54c8b01a1545af1bab35ca7d9db70eaac6512c6ca1dd5","0x5F0E628B693018f639D10e4A4F59BD4d8B2B6B44",!1,!1,null,null],["ethereum","whiterockcasino","WRC",18,"WhiteRockCasino","3045022100ab727cf1c7d2c8efd7a17b292cd5c5a92b709da2b364ff32b09e579c7588ac8c022075130679ad6aa5454a0d9d7be0001faeffbd99d2cef7f4af20a14be7d705242e","0x7c9D8Fb3bDe3D9Ea6e89170618C2dC3d16695D36",!0,!0,null,null],["ethereum","whohas","WHO",18,"WhoHas","3045022100e60391bcbdf88594e31048e1b26259c87af0bf15b9feb471f78646ed020479c602205f6d78a19376ab4f33f451c0c0bdc77b4522f9e427564afac8ff49717c17af99","0xe933c0Cd9784414d5F278C114904F5A84b396919",!1,!1,null,null],["ethereum","whole_network_node","NODE",5,"Whole Network Node","304402202270ce8e85d288f948ec79ce66b60a9ebe984228f5e390a2d5bb3916fd08c7dc022044157b60611e82d938ad2b9fc81d15df2e3db1afdc87934b344b178192048db8","0x0C3eF32f802967DB75B9D49fE1e76620151cCB81",!0,!1,null,null],["ethereum","wholeearthcoin","WEC",18,"WholeEarthCoin","304402203c4e6a30a1f32b7ce4feb0826f8a45f506f704023be181d9aeba9795a3af9c2102203b3effd23e8c1ea7738ecb89f76eccf21d6c52494f9746199e83298f6fa530d9","0xcC1a8BD438BebC4b2a885a34475BB974f2124317",!1,!1,null,null],["ethereum","wi_coin","WIC",18,"Wi Coin","3045022100e2ed3685750ac1a0b7dd98cef8642f23b3839bb656044c84ddf2c69724ac239e022012680dd8d3c2f784d3e39b16f65b7f2af86d01ad392f36626d2225d9ce9194b1","0x5e4ABE6419650CA839Ce5BB7Db422b881a6064bB",!1,!1,null,null],["ethereum","wibson_token","WIB",9,"Wibson Token","3045022100c31f0f2c186e3c2869f8dfb0422ef45a80ffdbe580111762a6b109456a13961d02207df7540ddd1521c6ea9342e16036781cd10be6926b5541d3f408f5fbb6c52dc4","0x3F17Dd476faF0a4855572F0B6ed5115D9bBA22AD",!1,!1,null,null],["ethereum","wibx_utility_token","WBX",18,"WiBX Utility Token","304402202aeec90fe3bdf083ee80d1a285292f4752c881eedfdc946c8ec349bc0740576302202f4f7fdb9784ca69d1949f3d293430ebb32be30c46e3034ab7e4da062b101266","0xbB97e381F1d1e94ffa2A5844F6875e6146981009",!1,!1,null,null],["ethereum","wick_finance","WICK",18,"WICK FINANCE","304402205425cde2569ee6bacc30f974f1a4cf42ca4469c43583ab67201133079f6e17d9022059490d4e80008deafbe6137934f1bb467f2c570d9cc929c7430688614197a716","0xBbE460dC4ac73f7C13A2A2feEcF9aCF6D5083F9b",!1,!1,null,null],["ethereum","wicknote","WIC",0,"WickNote","30440220392499e8f7fd5c06ab5b55824f81e0492821ed84740a63803fb153dde89d9dea022046701db12209263a975275f61450de42e2627f4d999a61f085ddcaced8d7637a","0x62CD07D414Ec50B68C7EcAa863a23d344f2d062f",!0,!1,null,null],["ethereum","wifi_coin","WIFI",18,"Wifi Coin","30440220414da9ad4b65677b5ac4d0d93403433536b58ad006e5bedf2d668b51481607e40220095f62af234b9bf028efda134d3881ed14e42cd491234b534b8ebd4119475bba","0xe202873079913858f9Ba8795BA957A4Ad561ca24",!1,!1,null,null],["ethereum","wiix_coin","WXC",18,"WIIX Coin","30440220111bd2d6928f9f250ac7ed7c63a99762deeeae0502b23750aa9d68a5931151cf0220230daa88604bece8fee2de1dd6a78b50ac3c36a88e7849c2e12320f214c33488","0x86225481747c774b24c7c3Bac4C1B7382f787C7F",!1,!1,null,null],["ethereum","wiki_token","WIKI",18,"WIKI Token","304402204681a8bdcf9de252542d63e772c2b74c196ec9b148931e139857fbe77b87219f0220619ddb853f9e52fb0419c141c3e3b893908c11aab629cff9267eef59f97bb6dd","0x66BaD545596fb17a0B4ebDC003a85dEF10E8F6Ae",!1,!1,null,null],["ethereum","wild_credit","WILD",18,"Wild Credit","3045022100900c542031bedf19c72ef1f17f1afbdc1462eeb0e92de5ebd94f5c2f51d65bde02202c159b47a67590f63f6579be25c641c75a4b5d40ae04da958e1394f5e5bd3cc7","0x08A75dbC7167714CeaC1a8e43a8d643A4EDd625a",!0,!1,null,null],["ethereum","wild_token","WILD",18,"WILD Token","3045022100a9d3c34634dfc21fb4ebbd67dc678d796c7edc7e49966f1dd1105ad22fa732a20220399ff4104dfad04e132e57f27a519f204e6c0833e8f00a9d50d89be621325b5f","0xD3C00772B24D997A812249ca637a921e81357701",!0,!0,null,null],["ethereum","wildbitstakecontrol","WBTC",18,"WildBitsTakeControl","30440220598c3d1b9ac39e9f9d72ca21d4c76fcaff7254ad3f12171d9a7befed2dc08cda022052bb4c02a420961f023b398e4d8da57c8f1b54b1ffb99f7199af93f3868e1e66","0x88C7385A403008B63Dc028Ba5acBAd3edb1D1Fa9",!0,!0,null,null],["ethereum","wilder","WILD",18,"Wilder","3044022039ab34511a7f88f790c7b394d938e6299c353130203be8e2a00284fb05166bff02206c79dfdf958f7e69a00261318cdbac52859f1e73ea374e07a43317f29d2eb346","0x2a3bFF78B79A009976EeA096a51A948a3dC00e34",!1,!1,null,null],["ethereum","winco","WCO",8,"Winco","304502210097d2d1aade3e25311afe0aa8a355dcbd6106511cb4d3985d91f2d1f552a0bd51022065b605004b4249d49170c25228476958e695bf380edec975dbf924af9d25375d","0xd44bb6663936CAb1310584A277f7DAa6943d4904",!1,!1,null,null],["ethereum","windbellows","WDNT",18,"WINDBELLOWS","30440220514aa8a89cde3434bf217e0f3833dee3f0553249eb48e7e8918a33518214c50c02207d5bdb92c098fdb2ff01d1e6b73bd34c285e9a1c928622e287021e4f4238a0c4","0x183433cbb5F4B52afF1509f7864ca2F76e4D8535",!1,!1,null,null],["ethereum","wings","WINGS",18,"WINGS","3045022100d03d03b8ddb69bd1cf9b5e5a70d8af3486486c2e34ea5da92ec02c792edcaaf202207fcef2d9216e75a6d284e38d446fd060141ed27b19af1aac570a2dd0bc3bb943","0x667088b212ce3d06a1b553a7221E1fD19000d9aF",!1,!1,null,null],["ethereum","winkies","WNK",18,"Winkies","30450221009a1233bf321d241e7949c049a0c2b0da9d7013d74b4e1f8a2136029cf21bc2dc022013b87de0274e4136f5e83180950e389b39eb6ef4bea90bcdb75c8ded9032c323","0xE1BDA0c3Bfa2bE7f740f0119B6a34F057BD58Eba",!0,!0,null,null],["ethereum","winry_inu","WINRY",9,"Winry Inu","3044022001398fa0e1f0ba2cc8cad4fa4be6332f843fa2d621d57ad9ffbccd93822eb3e302205271e1409346bafc4d48c11afc0e123dfec510dee825611663ccb1de92d0df54","0x1a87077C4F834884691B8ba4fc808D2eC93A9F30",!1,!1,null,null],["ethereum","wins_live","WNL",18,"WINS LIVE","3045022100c14dfa5f4dc765237dcc1a93e6f2bcc22a60db7c2ded562cab0d4e2132222d1f022040dfe34d412d1a6de9d9445bf74d5b74253f95f2deafa7ed9165fbac231a6524","0xcFbf70e33d5163E25B0dad73955c1BD9E8cd8BA2",!1,!1,null,null],["ethereum","wirex_token","WXT",18,"Wirex Token","304402204e34949a87c60354f8af0a2679ebb1f17bd52282a8768c4ac2578c3915760dce0220248c339bea087b44645622b720a6996b8cf034ac87f8a4c2d279049dc8de5678","0xa02120696c7B8fE16C09C749E4598819b2B0E915",!1,!1,null,null],["ethereum","wise_token","WISE",18,"Wise Token","30440220513f90a90838d786cde88189ba3884852e9ac16bceb9cff096588ffb702f6b2502200457ff0a8ece67dd72dff04c84f9cc5336a91d0c8b5b0559f3af43b3aa40ffbc","0x66a0f676479Cee1d7373f3DC2e2952778BfF5bd6",!1,!1,null,null],["ethereum","witch_token","WITCH",18,"Witch Token","3044022051d5d4a0e52fca5e13966ee557da8673972d6fce13c43ff61d713df3393be566022029899b38ea50fbe9dfccbfd39838e11f1005d750d2ce8542b635f068a5596366","0xdc524e3c6910257744C1F93Cf15E9F472b5bD236",!1,!1,null,null],["ethereum","wiva","WIVA",18,"WIVA","30440220465200b4b33714e07387219c35f26fbeaa6800ff389e86e2b7801a57c3d575f502202b08488ce47317d37f2d0f89de3724be3e078f76aad455dfec334ab844e70dad","0xA00055e6EE4D1f4169096EcB682F70cAa8c29987",!1,!1,null,null],["ethereum","wixlar","WIX",2,"Wixlar","3045022100908ba59302f544cc753764c42f3504125b3e5212284e706770c23bfc6783124302205c94601bab33531954309dbf8281fbb6a525dd5b961feceba65420c45cc2eaeb","0x7bA19B7F7d106A9a1e0985397B94F38EEe0b555e",!1,!1,null,null],["ethereum","wiz_coin","WIZ",18,"Wiz Coin","3045022100d307b2c530927a69f6be27bd271bf0cd80a282a9c9a11bdff4a0a08c384e518302202fcb4ce3302d866f2c531670314986f50218c4f1ff25e03529619c4be2a621c1","0x018a6106Cb540AF1ae6DA985361Afd5E176D1c00",!0,!1,null,null],["ethereum","wizard","WIZ",18,"Wizard","3045022100f320ab0c13deb4bd82d479e903a1ec09e0590c637105e1dc10bd5d24ad34c57802205c480197cf9c6d8808068eefe56c8a340c5048115274961629c8b2af4586a4a8","0x7a82C573B378CEEa29772aFB93891f0d0afA93b7",!0,!1,null,null],["ethereum","wliticapital","WLITI",18,"wLitiCapital","3045022100c000f34800b47a5231c2ce22cc9f90c9244f57e86d52fe169654566dfbb392c1022075a3b04ed2ab8560dd9f4e82cc8588bdc23dddfda3b3b95cb7178cb4cce25c8d","0x0b63128C40737B13647552e0C926bCFEccC35f93",!1,!1,null,null],["ethereum","wlkr_innovation","WLKR",18,"WLKR Innovation","304402206b9279d18cacda757be5a9ff377b0bdf89ad378d5cf55e87b906f8b2b5bce2e0022065ed2b13b89940312a0f180a37f4ec0e70ed3e540ddc1dee1de57be9e011676f","0xD64DeEA5F24934E3A1aa752912aEe8ffD8300C3F",!1,!1,null,null],["ethereum","wmbx_token","WMBX",18,"wMBX Token","304402200ebe80cf01bc15b071c5cfbf9e08df20c506bb3a9d7a1de794991e30aecc664d022005a3ad55b6486e33091608977f695816938dcc4ab16ef13cd7e43820e74cedf5","0x71ba91dC68C6a206Db0A6A92B4b1De3f9271432d",!1,!1,null,null],["ethereum","wolfycoin","WOLFY",9,"WOLFYCOIN","304402205c0143178405f315d777aa4c85ffb9887a99e7b1afe083a4c44450317c1897c3022053c481708ee8341676d09f4924dbef6372e224636b16c75f55105bb4161fcb51","0x7DbbCaE15d4DB168e01673400D7844870cc1e36f",!1,!1,null,null],["ethereum","wolk","WOLK",18,"WOLK","304402202c32cd7166f2e2ede34fea96929861e0a6f10f2020d67af758f2af2e3c46e05002201f62b6f260c5d3affcc0e00d1273ccd780f1dbbc8d32d6205ca7b7971e381986","0x728781E75735dc0962Df3a51d7Ef47E798A7107E",!0,!0,null,null],["ethereum","wolk_token","WOLK",18,"Wolk Token","3044022026918bcf5dad0616dfc053d2d7f8b97afea0c1ffed52e70a3dcaaf9a5b8c7ebd0220058f81c94e7de8288180f41b93cefe8996ed90ab556afa52179fb30ff1d8007e","0xF6B55acBBC49f4524Aa48D19281A9A77c54DE10f",!1,!1,null,null],["ethereum","wolverinu","WOLVERINU",9,"WOLVERINU","3044022013964f828789a2542bc2044062e54fbf67b5506757b28749f11c352c8657750c02206fa74cd9ef7339c938e77e48e5c8d0e6f6969db746136c5da0673425a24ce6cd","0xca7b3ba66556C4Da2E2A9AFeF9C64F909A59430a",!1,!1,null,null],["ethereum","wolves_of_wall_street","WOWS",18,"Wolves Of Wall Street","304402200a3cd5a19d8d938d02aa7842694e24220224f5249714e77c0fb889ef2ea8e207022024137139bc54dc3782d3409b4947a04c994b6cf4ab16b893a9faa8b8e5ec4b1b","0x672EF7E4Fe230B5cA1466C5fDD40588d30FdF90a",!1,!1,null,null],["ethereum","wom_token","WOM",18,"WOM Token","304402204dddd58b5fa46e4e3f3d531652a603b5d05c4121621aee4a3038560803300f810220439ae4cdd7876adda4da05ac323e9ec3766c2ec8d986e1117cee132a4fbadf38","0xBd356a39BFf2cAda8E9248532DD879147221Cf76",!1,!1,null,null],["ethereum","wom_token_","WOM",18,"WOM Token (Old)","3045022100c4beb3667326be284fef1981e746f8dbb6384e09930d74c166ff7fa870b717fd02205d0d238f366a60837e0e06c1ca282188f59839cfbf2a2bdfa1a00e157322fe16","0xa982B2e19e90b2D9F7948e9C1b65D119F1CE88D6",!0,!0,null,null],["ethereum","wombat","WOMBAT",18,"Wombat","304402204ea470e9a185d90f9e171ca7c68466d7d06a108698849faaad13794b41520f4b02205431e28de1b38a0ff06d213f8c7f2d57b568c97d990f9a7a5ec3af3ff04137d5","0x0C9c7712C83B3C70e7c5E11100D33D9401BdF9dd",!1,!1,null,null],["ethereum","woofwork.io","WOOF",18,"WoofWork.io","3044022038fdb8dc658bd392f6effbd870bd9c19e60eabf872d80ccc7ba8dad20fc300b802201ee7ca7a73c6528341cb1f24c321b18211282280d85506119d8652f396fc8a04","0x6BC08509B36A98E829dFfAD49Fde5e412645d0a3",!1,!1,null,null],["ethereum","woofy","WOOFY",12,"Woofy","3045022100c3ac475461cd7488c6970cd42b15c25a4c0547f0ef00f39a5f1df04e0ec4f1f0022059e87e377e321d5a8ea4031966f74a5c97db3d26c1079b7e89a6de66fbc0a6c4","0xD0660cD418a64a1d44E9214ad8e459324D8157f1",!0,!1,null,null],["ethereum","wool","WOOL",18,"WOOL","3045022100ddc3f3d7e29e2ad57f4f648d8efd816b5d16f1a9ceb430e25d330759c86aeed1022029761aec8d20a4eb01ecc2fd2e22ab8da74e81ab8b6c3e44fac8e56ec3760c89","0x8355DBE8B0e275ABAd27eB843F3eaF3FC855e525",!0,!0,null,null],["ethereum","woonk","WNK",18,"Woonk","3045022100db62d5d7d2984973c46d424d7b55c595d7fbfa8dd770741bf130ecd480b3a9460220480ddffcebe692b25a29d6e619190add4f7f89c5ac1d9088e6aa6c088aebc7b5","0xd73A66B8FB26Be8B0AcD7c52Bd325054Ac7d468b",!1,!1,null,null],["ethereum","woonkly","WOONK",18,"Woonkly","304402205ebb3403383ed91feab1cf3abf8bcaa1e78dfc218c471d6324cb5cc90f646b84022056c397d391f1a93e46422337d0596f73d7665526556c948e877a573971a93834","0x5A386Eb0FcBfEE3f0d759e263053c09162ff102D",!1,!1,null,null],["ethereum","wootrade_network","WOO",18,"Wootrade Network","30450221008f9af9873ad5254ee9bf8446c27750859697859ab94a9c6314f1bf1fa54e0340022049b191e0f81b9b64c6e8535f52c640511d3b566776c88bf2032d2d46ccc61c16","0x4691937a7508860F876c9c0a2a617E7d9E945D4B",!1,!1,null,null],["ethereum","work_quest_token","WQT",18,"Work Quest Token","304402206851508bb862efb77a3346fddbfd9d7b7f7e9d450697694340e1bbf1457a6a75022026770f050c834573baa1f5781199c9120097d9569573745b43e1e12f904fb9bf","0x06677Dc4fE12d3ba3C7CCfD0dF8Cd45e4D4095bF",!1,!1,null,null],["ethereum","workchain_app_token","WATT",18,"WorkChain App Token","3044022043def3a0ac549835ba4ebcdbe07fa68c97ef9c2afc456256263167f91ac1d29602204d5a5ec256d5d9acee41f2a1b56d88baba8a8b04c988168dbea6795a78a7ebba","0x829A4cA1303383F1082B6B1fB937116e4b3b5605",!1,!1,null,null],["ethereum","workcoin","WRK",18,"WorkCoin","304402201bf719ebacc16f116e1c3a7f162c3c43c298883181cea7fbe40244d4168b677302205a5dfae66e6f15e75a462ce06306e29ab38f2743c15dbaa67c61d3b76b4fab2a","0x71e8d74fF1C923E369D0e70DFb09866629C4DD35",!1,!1,null,null],["ethereum","world_credit_diamond_coin","WCDC",18,"World Credit Diamond Coin","304402203d0e6509dfa99ea8f038a561a5120016fba4ac454489b62f618b69fc97229d660220643b4f1e476e6b4e0f8c2bfe324c507ba3e7cdf8f50444d11edd10b9b509ec11","0xAb51e836BdCbc7Cc06D926C50D88328f1BB17148",!1,!1,null,null],["ethereum","world_token","WORLD",18,"World Token","30440220334d90311514bffdbf157e9ecf513d2b4b359e4e771ef784d133cf56dfb195c4022054d069f62c7bcb98f12e34862c12df16e828831df3b1aa4fc41bca3511676bae","0xBF494F02EE3FdE1F20BEE6242bCe2d1ED0c15e47",!0,!1,null,null],["ethereum","worldcore","WRC",6,"Worldcore","30440220207ad3f306b6ed91fa7a8b6d48a846ffd378aaa400ee2da7b84220f83e01d3c302205f0dd4512e8721ae8dba21bd442b8487164408bc9c3bf5433a277c4d9a7772ee","0x72aDadb447784dd7AB1F472467750fC485e4cb2d",!1,!1,null,null],["ethereum","worldpet_token","WPT",18,"Worldpet Token","3045022100cc9be70aae199e9113ad542976b8e312d72ba12a8f3084b2d50cb4f34b64024a02205c9d43d7dab3f061e65082c51f74d0800c10f73cbbb9842b683d833620bed8a7","0xe04491D64Eaa464Ec8Fdf53c7a4C92BF5B2278Cd",!1,!1,null,null],["ethereum","woyager","WYX",18,"Woyager","3045022100da4a903a6d1e97e627a77b23cc9ea42375243965d8a1bb30c0ad4c8d688421b80220563c36ce0a7f87e1fe6eee0ed96a70117111ee6e0a981e53acdbe6dd5a37f812","0x05EDFfBda103d90d5040829A105f687443e0CA3e",!1,!1,null,null],["ethereum","wpptoken","WPP",18,"WPPToken","304402201b474da0d0942a4b048c8a59c14d9b5947d137b5266fcab127d7c518d3598f8d02206c3f9e9d07ee5b60cefaa245f30f5ffbf54331f836f512d34d8e10e3a991c557","0x1955d744F9435522Be508D1Ba60E3c12D0690B6A",!1,!1,null,null],["ethereum","wrapped-dgld","WDGLD",8,"wrapped-DGLD","304402204ca8767d1391d31d14175393c441075ef6faddd88058c0dc52839c081b873afc02201e8b066dff635b4ba3e60a94889ea96d4e49f02acaea8fe2583f9ffe1a519f07","0x123151402076fc819B7564510989e475c9cD93CA",!0,!0,null,null],["ethereum","wrapped_ampleforth","WAMPL",18,"Wrapped Ampleforth","304402204c76dd600dac4c65d0135425f5a1bd9f6c22c636cf4a26c7f2ae947996a9b51902206d4e2ab0e5bf6219457bbce7418fce0ae4dcfa4e06a5f2bffabfb6d5f08b71ca","0xEDB171C18cE90B633DB442f2A6F72874093b49Ef",!0,!0,null,null],["ethereum","wrapped_anatha","WANATHA",18,"Wrapped ANATHA","30450221008d396e416b382ebb9bf887e70f0ec04e60444519d8ecdc2a1453d2d5b15213ee022015abbfc771f013a7c4a4f4801ad60578ac0f9ae1158321640b79907e0072942a","0x3383c5a8969Dc413bfdDc9656Eb80A1408E4bA20",!1,!1,null,null],["ethereum","wrapped_anc_token","ANC",18,"Wrapped ANC Token","304402203ae0fee7b6d945d860bd679b9b257bf2bcfcd3c2703ae8b7ce4447415cc3ab4e02203c2d914175bf887aa657151f9732ff0e3d69a2c60ed0907d85da2a7a7c61189d","0x0F3ADC247E91c3c50bC08721355A41037E89Bc20",!0,!1,null,null],["ethereum","wrapped_ar","WAR",12,"Wrapped AR","304402206f8ca39711bfbb6b1a5f213e7f6ad56a9d1e5a045d9e4a4733b671471443e0b702206c315f1bc1431564cf07472eb64a593c0957be1dbf122f293313a1bf8e988c68","0x4FaDC7A98f2Dc96510e42dD1A74141eEae0C1543",!0,!1,null,null],["ethereum","wrapped_banano","WBAN",18,"Wrapped Banano","3045022100bd0c7bea9896e3c3f5c7f507b87c82cb3196945ca43bc372c721fb12aa85b87f02200e4d82c402bd346761eb43e13c032116081d607a5f34401492d0e1f4003168c5","0xe20B9e246db5a0d21BF9209E4858Bc9A3ff7A034",!1,!1,null,null],["ethereum","wrapped_bind","WBIND",8,"Wrapped BIND","3045022100dbe2aa9ce4f64cb489c86e79a87b5d7a157a4a17c0b82ad114dd29ceddad309902201c8c8294e88d1c88db9684193a76fe763697c555b27864d80de0736a59228a08","0x15334DCb171e8b65D6650321581dcA83bE870115",!1,!1,null,null],["ethereum","wrapped_bitcoin","WBTC",8,"Wrapped Bitcoin","3045022100d733b3d1bc49a05698e14d8869834cf1911bef89cd98ea8d38f7c372b81a007b02206fb43deddc7508b567f330ba292eda1299410935434cb9795fec26ea1560dd2c","0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599",!1,!1,null,null],["ethereum","wrapped_buy_token","WBUY",2,"Wrapped BUY Token","304402205ce739c0f15e1bd229cbc559f140e9e6b00682670c4f1c69f331634d4ba4c78502202e15384495b4b6ff96af090691ff8b0ab12217467e9ac77c306edd2d746f43cd","0x396eC402B42066864C406d1ac3bc86B575003ed8",!1,!1,null,null],["ethereum","wrapped_bytz","WBYTZ",8,"Wrapped BYTZ","3045022100e4e2139682f89b693a1de22b4131f738e860a3cdf0eaa2409b0b57340335d2fb02201c5b6bb7502426ade2dd484c2a0e231824238e6593d836a786eac2ca8b791f82","0x2aaD9Dbc82611485a52325923e1187734e951B78",!1,!1,null,null],["ethereum","wrapped_celo","WCELO",18,"Wrapped Celo","3045022100c9955042023a7db305b4de3485bfa26dce99ea3ef3b8c4c7e81ba7dcd813e0940220323620676fe39c3f5c9c400ad4dd49bd8aca1ab38d3e2bc1c3943bed2e266e12","0xE452E6Ea2dDeB012e20dB73bf5d3863A3Ac8d77a",!0,!1,null,null],["ethereum","wrapped_celo_usd","WCUSD",18,"Wrapped Celo USD","304402204785991fd0f1cc70a5a8b6e46c0f435188103f90f8166fb850ab88382ac1d9e5022041d17435100f450416ba855bcdee65ce9afe956d737081e804d25072f1a805d0","0xad3E3Fc59dff318BecEaAb7D00EB4F68b1EcF195",!1,!1,null,null],["ethereum","wrapped_centrifuge","WCFG",18,"Wrapped Centrifuge","30440220645bdf025a7a950c94aff462d8d1d80679a13db2ffc9e2c8559cb4be49694c1802200d4f3335b393aa651e59ee9466e145146e22d6654a71444bedee267dc02a4717","0xc221b7E65FfC80DE234bbB6667aBDd46593D34F0",!1,!1,null,null],["ethereum","wrapped_chi","WCHI",8,"Wrapped CHI","3045022100c838992c5a7715504e5bb8010303030e5f0e7e8d3393bd5cb4b09c60b55fbe6202201339dcfdfe57ce0b1980f427ea32f50f2a9142ca4df45fb8000850c9088ae4b4","0x6DC02164d75651758aC74435806093E421b64605",!0,!1,null,null],["ethereum","wrapped_cres","WCRES",18,"Wrapped CRES","304402200479e2e92e760c3c6366be6f8c42719a5961d65b67e103d54a2c17f718a8b9260220435e7af39e456a15e2455f9d58551650554c51b6c4473387662e09ade6cc7910","0xa0afAA285Ce85974c3C881256cB7F225e3A1178a",!0,!1,null,null],["ethereum","wrapped_cryptokitties","WCK",18,"Wrapped CryptoKitties","304402204a9b5cae6283dd946da6a2b29fd05749616673aed8198d5d655ed664b4c3211d02201d6b3a602db308f81b44fefec1cf2e0a98022914fb4bffbf7ddda4b8f7a08340","0x09fE5f0236F0Ea5D930197DCE254d77B04128075",!1,!1,null,null],["ethereum","wrapped_doge","WDOGE",8,"Wrapped DOGE","30440220207641b9047e01707f4a61c40302370945b22ce8486e7e4a26de4bc8e732502202202f13a6a7a78f226df055b42fa26a01fe017d7c5479e4cfbbdd317d9feb3ab3f2","0x8aa9381b2544b48c26f3b850F6e07E2c5161EB3e",!0,!1,null,null],["ethereum","wrapped_dogecoin","WDOGE",18,"Wrapped DogeCoin","30440220790e905490b80d76156c484f019c700306161c2a546c92a279a7a13089bcf601022048e0fb0ff59f28fec10a016741466e51a52343f7c491a4582f48d78c936e9982","0x35a532d376FFd9a705d0Bb319532837337A398E7",!0,!1,null,null],["ethereum","wrapped_dtube_coin","DTUBE",2,"Wrapped DTube Coin","304402202e07f4df522b74cc0c0604c66140a417dce799cac980005f114539833d2c260802204664f93738a568d7fceb586da31601bb1e172e14417e9932d97e45143cc13aa3","0xd2be3722B17b616c51ed9B8944A227D1ce579C24",!1,!1,null,null],["ethereum","wrapped_etho","ETHO",18,"Wrapped ETHO","304402205f246ba34f4e97691e2bea647387b224ffd98ed924ab0c73d9e0bf7fd55b829502205824837d52490805b7079626f96800ea197ea58d36a852032b997ebf3b175b51","0x99676c9fA4c77848aEb2383fCFbD7e980dC25027",!1,!1,null,null],["ethereum","wrapped_fct","WFCT",8,"Wrapped FCT","3045022100820cfc258fa1484443bff3ccc72455e7b048e7347a193804da996bb99b9fefe60220265075dec0a9e7b2faaf1031c308ab2e866b88b91cf88d5dc8aa9ea90b0c490f","0x415Acc3C6636211E67E248DC28400B452aCefa68",!1,!1,null,null],["ethereum","wrapped_filecoin","WFIL",18,"Wrapped Filecoin","3044022075cc61c2c7988f8e54f7c7471480e02279251eeb5c7ca18b9ae846ff0a3b7c3c0220601a960852494311ca691ecdca306f4fc4ee1ccdc757aed66a5afaa4f09d19b5","0x6e1A19F235bE7ED8E3369eF73b196C07257494DE",!1,!1,null,null],["ethereum","wrapped_flow","WFLOW",18,"Wrapped Flow","304402206236d952a80dc25e041e61452bf76774a2aa42b15910d256873d447ff5faf7cf022066429571834b1fa4d92211293bf294b91dcb4b4915e1510f92a6db0b22562a17","0x5c147e74D63B1D31AA3Fd78Eb229B65161983B2b",!1,!1,null,null],["ethereum","wrapped_gen_0","WG0",18,"Wrapped Gen 0","3045022100b7166410dd96c66854f9d0623f6fdcf283b0c296cc5b8361033f2d742a538597022070c4968fb6b468c53ea32c6f0b77fd8732881c3678922758e15e4433af509ed6","0xa10740ff9FF6852eac84cdcfF9184e1D6d27C057",!1,!1,null,null],["ethereum","wrapped_hns","WHNS",6,"Wrapped HNS","3045022100e12a19ebbf165444ae8a1281b584ffe69186133e085fb6a94884f696ea342db7022058e22de2c68721009c5bebc1cdab408074c9a2e883a613e02d32ed3155672bbe","0xA771b49064Da011DF051052848477f18DbA1d2Ac",!1,!1,null,null],["ethereum","wrapped_ilcoin","WILC",8,"Wrapped ILCOIN","3044022055a48c897c68eb078bf0fe8e310b160bfd1a83b2fd503297a005eccd6012b15402205756ec34fa486e6eaffec8b0bfa016f9b42b6d9b51e6d9095a16e112898b9814","0xC98a910eDE52E7d5308525845F19e17470DbCCF7",!1,!1,null,null],["ethereum","wrapped_leo","WLEO",3,"Wrapped LEO","3044022013e6db3509a61d5285d15e2d012e56de947d0e345537b3517f20c1a34a86ed8502200631582db066fb3648af735f3be53c403ba315a1c6fce6b2ec60fdbdecf0101b","0x73A9fb46e228628f8f9BB9004eCa4f4F529D3998",!1,!1,null,null],["ethereum","wrapped_lotto_token","WLOTTO",18,"Wrapped Lotto Token","30440220206ca5ad6a3096f8403f9440dd35263831e201b7c413ca5195bf4c42e443d620022070c788de61a7e31cf66d5ff7cca41fc105fbfdca5d5ac4c64c1734a433086e2f","0x37605EeF354fA8d1Cca7B923Da7e451269C74FbC",!1,!1,null,null],["ethereum","wrapped_luna_token","LUNC",18,"Wrapped LUNC Token","30440220400d2586ced935f8bd8e2a14cd3ddcb6975a38ef022e9a97563167a901eca37c02202da532fce88b86d95733435dbedcb4e23168e197f31b3e11aa446deded5ef45d","0xd2877702675e6cEb975b4A1dFf9fb7BAF4C91ea9",!1,!1,null,null],["ethereum","wrapped_mir_token","MIR",18,"Wrapped MIR Token","3045022100c79739516a8c766e3b825a3f6160e4d50b00ddb60b5d9dd35edab7dd5f06e4d8022065f6bbeefb2c59c9531bee10eaca3aad1092681e27a9e2382f408e93165ee535","0x09a3EcAFa817268f77BE1283176B946C4ff2E608",!1,!1,null,null],["ethereum","wrapped_mirror_aapl_token","MAAPL",18,"Wrapped Mirror AAPL Token","3044022031431e2e57573995e0a3935f963033996e74bbc22f21d07dc8a55fc63dda87d802201b24dad8c91703860f15c1789572c1ea6ba716023f0430668c9b5e42cedf3d26","0xd36932143F6eBDEDD872D5Fb0651f4B72Fd15a84",!1,!1,null,null],["ethereum","wrapped_mirror_amzn_token","MAMZN",18,"Wrapped Mirror AMZN Token","30450221008cc9bc99beec9cb778864df6ffbbcff3e649bb7fd865a532dcf216c60ee02bbf022053d0e73febd067890c9ba8e586adf83242eee5f74a841571b794573e0d74fd76","0x0cae9e4d663793c2a2A0b211c1Cf4bBca2B9cAa7",!1,!1,null,null],["ethereum","wrapped_mirror_baba_token","MBABA",18,"Wrapped Mirror BABA Token","3045022100cbb32c50176ab27456309f9812015907389015b52f8f618f1d8b8306824130fa022074d598b0bcf846ba69344746a3a5bd8fc813114102a8faa791a24bd3dac0b1b0","0x56aA298a19C93c6801FDde870fA63EF75Cc0aF72",!1,!1,null,null],["ethereum","wrapped_mirror_fb_token","MFB",18,"Wrapped Mirror FB Token","30450221008cf30ae0238d1015e20b94daef99ccc8416bc47adf3b6e7e6eb24c180a315e9602201d4926c35d1cfedf23858112151686f3b37c815b282cd517a743ecd414237c28","0x0e99cC0535BB6251F6679Fa6E65d6d3b430e840B",!1,!1,null,null],["ethereum","wrapped_mirror_googl_token","MGOOGL",18,"Wrapped Mirror GOOGL Token","3045022100b8c7af04f17dcbc2806486c7e9e4b274ae55ed4438c9c255e54a82c992377d5402203d3ac14550866d1728bfaf29c411378a7f318c960dc5d242b33fe063e330d883","0x59A921Db27Dd6d4d974745B7FfC5c33932653442",!1,!1,null,null],["ethereum","wrapped_mirror_iau_token","MIAU",18,"Wrapped Mirror IAU Token","304402204cbacdbe2acb23100ccb0b57156265e74cda5d15c7f2986feee3c0ec94612bdc02205ee626b568447afd109281f161518fb1b78b92ba94a8bcfe0c97aa0ce01eed6b","0x1d350417d9787E000cc1b95d70E9536DcD91F373",!1,!1,null,null],["ethereum","wrapped_mirror_msft_token","MMSFT",18,"Wrapped Mirror MSFT Token","304502210082a30344cf81b7e8432b3f3147c3a2b23108757ea803ed534cc2c5abb5bbe00d022054400e25b50471e617c364849b54276e8a61c15cf738c1316e856fafc80c5c84","0x41BbEDd7286dAab5910a1f15d12CBda839852BD7",!1,!1,null,null],["ethereum","wrapped_mirror_nflx_token","MNFLX",18,"Wrapped Mirror NFLX Token","3045022100c37164436547176a7e0acf473a3bd63b5e1322fb9a81b70dd080fffd8c2d59f0022043553a52f974abb29da1fec42c1e41f4020a62df41346e2482628bded48fabb7","0xC8d674114bac90148d11D3C1d33C61835a0F9DCD",!1,!1,null,null],["ethereum","wrapped_mirror_qqq_token","MQQQ",18,"Wrapped Mirror QQQ Token","304502210094fdfa57f5642fc252c2abd5bec1d8fb0ada5a178859ff5a20364561dad63d550220770231fbf0497039bda785c3f8ff0427f08f0a7d8396216467c0eca685288639","0x13B02c8dE71680e71F0820c996E4bE43c2F57d15",!1,!1,null,null],["ethereum","wrapped_mirror_slv_token","MSLV",18,"Wrapped Mirror SLV Token","30440220151e9940a74eeb79e41be4b801c87d2c62f1a5fd2d2ce40d9ec8e30f7788908f022029018f13a9e3136f3b70e2117aaf1f6c6454b41b1b5a6377f5ffb0f5ba4457bc","0x9d1555d8cB3C846Bb4f7D5B1B1080872c3166676",!1,!1,null,null],["ethereum","wrapped_mirror_tsla_token","MTSLA",18,"Wrapped Mirror TSLA Token","3045022100b4d31d29199bc85e38260e3dd2f8d323eff58caab55825cc2d36199a09cde59d02205dd1a82dd8adaf95942971ed087431c2bff115dee8ddbfdf5f1441abe55a84ec","0x21cA39943E91d704678F5D00b6616650F066fD63",!1,!1,null,null],["ethereum","wrapped_mirror_twtr_token","MTWTR",18,"Wrapped Mirror TWTR Token","304402202a46d0428fbb2c744bdda6ebe282e6f94b91e6d545ef3f29203b7929cda125ee0220545cde52ae9e0cdad6d3f311def6dc5cd288f27bf79c297af5e9837dc1d04bb8","0xEdb0414627E6f1e3F082DE65cD4F9C693D78CCA9",!1,!1,null,null],["ethereum","wrapped_mirror_uso_token","MUSO",18,"Wrapped Mirror USO Token","30450221008df6e0a13996d73a0ccaeea9c8afe6d1ecb6d8fc6ed1e8022054c52de0b221a2022067f0f9a27cb64542e0a030079540ce322ed5ba2ebb7ede48c5441bbafe1e513a","0x31c63146a635EB7465e5853020b39713AC356991",!1,!1,null,null],["ethereum","wrapped_mirror_vixy_token","MVIXY",18,"Wrapped Mirror VIXY Token","30450221009749138a64e7abe0fd338733748382312caa58f26ba98b560e61478f6b08446d022040a9ba7b63ecec00fba65bda80729dd4f428e1639e4e1b921a960e367a285a45","0xf72FCd9DCF0190923Fadd44811E240Ef4533fc86",!1,!1,null,null],["ethereum","wrapped_monero","WXMR",18,"Wrapped Monero","30450221009daa2c874c2cce00b5bf4c5f2571e7c5cec0252920478ed756d4ef90671ebe27022029d9bacdb2f5c79a6d6a8a6c778b2d8f6f60ed19118e4b2cfcf959120af243c1","0x465e07d6028830124BE2E4aA551fBe12805dB0f5",!1,!1,null,null],["ethereum","wrapped_moon_cats","MCAT20",18,"Wrapped Moon Cats","3045022100a433afaf083b300903925752ae8d776e4da08cb74c45f923b06a6a7d1e7f9716022029fd8a96b39b05eb70f831d732b5965d7d04e25f1a4aaf85415108d2c5479e1d","0xf961A1Fa7C781Ecd23689fE1d0B7f3B6cBB2f972",!1,!1,null,null],["ethereum","wrapped_ncg","WNCG",18,"Wrapped NCG","304402205161886a6f8decad3f706d0722710c4035ce1378246e173869493a1a7b1c332c022009df10c678fe1aeab0bbdecf9edffd75ffa51813090101c5fa0260228bc3d2e0","0xf203Ca1769ca8e9e8FE1DA9D147DB68B6c919817",!1,!1,null,null],["ethereum","wrapped_nxm","WNXM",18,"Wrapped NXM","304402207b36b26880077679050eff9bea03e09a1bc9c314016ec8c52af2f61cd8b2428202203b1e47ab4cb6122e7a224cea480605231d1a5cabbba72a498a8d744723ae0c58","0x0d438F3b5175Bebc262bF23753C1E53d03432bDE",!0,!0,null,null],["ethereum","wrapped_omi_token","WOMI",18,"Wrapped OMI Token","3045022100c0473b2821ac503508d837f264bc17c68cf383dc1d3ba7c4c5f993709496978b02202c6229280d4c96d4c1f6039d092a948a7c98c44e954f390fc02a31c1ed8e2b36","0x04969cD041C0cafB6AC462Bd65B536A5bDB3A670",!0,!1,null,null],["ethereum","wrapped_origin_axie","WOA",18,"Wrapped Origin Axie","3045022100f402892901d2c589f1eae05daa809a13e9738f180205703b10dac2ae422b82a5022011c509637b8e50febc9fb4c23cb559e54dd8f8601e49f6e870f6b443d3e093ae","0xEC0A0915A7c3443862B678B0d4721C7aB133FDCf",!0,!1,null,null],["ethereum","wrapped_ousd","WOUSD",18,"Wrapped OUSD","304402204cd7798629407bca2a5730a68a5ae45bbf39b11c2b59130ac4befe2d95eb37530220761200dafdc52e0286c47f31f40acdc39180c8367080132264324ba164c2f5db","0xD2af830E8CBdFed6CC11Bab697bB25496ed6FA62",!1,!1,null,null],["ethereum","wrapped_prcy","WPRCY",8,"Wrapped PRCY","30440220518e18cfceeeccc7209f2d7b191264cbb5247a8a831f6eb39e760e93e2951d9602203742e441031e445b71de7f7bed3cc48c50812670b77790b7c7e86e0932e76168","0xdFC3829b127761a3218bFceE7fc92e1232c9D116",!1,!1,null,null],["ethereum","wrapped_rose_(wormhole)","WROSE",18,"Wrapped ROSE (Wormhole)","30450221009b650ecf16c6cc6ec07d59baa26e81bcf18768fbef89196f7483f73ae7d9eefb02207e82d42a1e0f56ad4a6e535173079643e10cbb76619dc5515e5bf51607eefdaf","0x26B80FBfC01b71495f477d5237071242e0d959d7",!0,!0,null,null],["ethereum","wrapped_scrt","WSCRT",6,"Wrapped SCRT","3045022100b8ff028214ec61a22784397a65e0898948de6d6c53ea56aec67f17e582ba7b3002203fca87a5c82de19a283cfb612f31b5afc3ae76c30e4ee7cd3e5c35c06ce2edf2","0x2B89bF8ba858cd2FCee1faDa378D5cd6936968Be",!1,!1,null,null],["ethereum","wrapped_shiba","WSHIB",9,"Wrapped Shiba","30440220669c7682ba75be667a2624e70ff24144cb145e5b7d08ae255e6f60e770be6bdd022078b9f54e5e6845f786853679de0439b22b3245ab50a0277598ca5e8572a86e5a","0x0FCF6E8438282F5658Ab01d290fB28A24A741700",!1,!1,null,null],["ethereum","wrapped_shift","WSHIFT",18,"Wrapped Shift","3045022100909aeb0116517d5e3b1a15ada2103c82d6b49085e5f73f6e69ca81fac8a443d402200c3b8287588cbcf5df5918fcc568442d48222c50d2b39958c834bc575012f9fd","0x4b4571925e94ccd8C546b39462A270cC9b3ed1e4",!1,!1,null,null],["ethereum","wrapped_sta","WSTA",18,"Wrapped STA","3045022100ebc6c91ed4902c5300be6875d1af04611d7582e4f7fd525fa3b0914c757bf712022038645e6502f0f243ae000943ebd4113b22927ce736ad6256ef6aa13a03c8e03c","0xeDEec5691f23E4914cF0183A4196bBEb30d027a0",!1,!1,null,null],["ethereum","wrapped_ton_coin","TONCOIN",9,"Wrapped TON Coin","3045022100fdba045b9d505bc9600e4c339357e109d49bcba8b0cdd66a7e4f250a8938d2a7022011cbba66949f6bd2fb59d30f588e62e0d50d3adf2f04f84b533122ba54abf7f8","0x582d872A1B094FC48F5DE31D3B73F2D9bE47def1",!1,!1,null,null],["ethereum","wrapped_usd","WUSD",18,"Wrapped USD","3045022100d0fc6cfe063bd135056c00f5a8c111bb47f22bf2dccaa25ed122b316a0ca54a102204f4d705c7ed5bfce0db52f49cd741cb19d6aa972e2ea58482cfabc5627c07f83","0x7C974104DF9dd7fb91205ab3D66d15AFf1049DE8",!1,!1,null,null],["ethereum","wrapped_ust_token","UST",18,"Wrapped UST Token","304502210089d3334b10740c58d66a63259c62b8c9458293c9b8128f490460fee20ef3096d02204900b5cd79e7819ca22c16f186eca0df9bf908052cd3e0a3a3e2f8cbe0a5f67f","0xa47c8bf37f92aBed4A126BDA807A7b7498661acD",!0,!1,null,null],["ethereum","wrapped_virgin_gen_0","WVG0",18,"Wrapped Virgin Gen 0","3045022100c278c01f53b18fa945397c277a9880edad1a2ed6b9c5dc83275148695a8953d502200aed16f75bfd37f2545393d2264e6598a24ad41b90f9cb25d46e613d2a50ad4f","0x25C7b64A93Eb1261E130eC21a3e9918CaA38b611",!1,!1,null,null],["ethereum","wrapped_wagerr","WWGR",8,"Wrapped Wagerr","3045022100afbbf5dad74afc4b893ac3cdedf1ee1ab5a9d5f4566302097bb1eb2e0581da890220674ca16cf29955045f09fbb0b117a4bd87ecd41c645b5edb058ad0ae28977a5e","0xC237868a9c5729bdF3173dDDacaa336a0a5BB6e0",!1,!1,null,null],["ethereum","wrapped_widecoin","WWCN",8,"Wrapped Widecoin","3044022071df1549a27fae7f69adcaac1d7497997f3bc515fc20774776e1038abfed2e4702203585ca14bb9703362abd52faea5bfe574ccc596284c1c943cdcc13761278bbe1","0x54a3017754BFba73F71F37d893A368814CbFf457",!1,!1,null,null],["ethereum","wrapped_wish","WWISH",8,"Wrapped Wish","304402206d0ed8f7a3a9ef03c757a28e2aaa29d3b387f96f507b8e2ecb173287f40904010220421d9a66753becae10a7abc2a8c30b771be0412d6095cc7b49159fd2966e69a3","0xd123575D94A7aD9Bff3ad037aE9d4d52f41a7518",!1,!1,null,null],["ethereum","wrapped_xbtc","WXBTC",18,"Wrapped xBTC","304402206cb1e19d6ea06a03e4cbd4d7842003662e82b5b427c7eb655813c3b05eb7945402204b0681d1082eb8654548dae32070e91114fa149fd0bae35dc1e48c7276f4eeea","0x5592C5Aa89492Ea918d55B804E177B5Ca7dCcd5a",!1,!1,null,null],["ethereum","wrapped_xrp","WXRP",18,"Wrapped XRP","3045022100dc91f0781f26eb4d66b5a7265e5b6e750e349c4293112cd3482f7b18d165629c02205c77c7239c40f3be384dd82efd3b182b9a3c4dedd1f1b60c6e9d5552cdd0bfed","0x39fBBABf11738317a448031930706cd3e612e1B9",!1,!1,null,null],["ethereum","wrapped_xtz","WXTZ",6,"Wrapped XTZ","3045022100abdd4d8ec94a7c59cd9a57a578f468b0aa670572329cc96555b8a96d211fbbbe02205c47327cfbccba868daa2ae3805cf416502790738cb30e4fae27cd23f59f22d3","0x2A69655C22eDa32ff48d315bB26ED45f150700b4",!1,!1,null,null],["ethereum","wrapped_zec","WZEC",18,"Wrapped ZEC","3045022100fbbc3aae768469c648d40ebf4bdc6f1add0a69ad192382575bb63868debd6c000220383b3cf0fec79737c6c4791b9ec17d51b24388a5c48378c92c0c531bb67f422e","0x4A64515E5E1d1073e83f30cB97BEd20400b66E10",!1,!1,null,null],["ethereum","wrappedpolis","WPOLIS",18,"WrappedPolis","3045022100f9299440e9524b72dd87038cda62b9d90257083822c5fcd91f148e8d2abc2a05022006277a2b53d5303b38be66aa2f52295b9ae0846e777adaf402a6ba6057ffb4a6","0x622f2962AE78e8686EcC1E30cF2f9a6e5aC35626",!1,!1,null,null],["ethereum","wsteth","WSTETH",18,"LIDO Wrapped Staked ETH","304402207c96e35011b39d96a67317e7e088977abd47609e05319ec48fe60e4beee0837c0220634c46cfdf5825097ed9aae3a6307cfe9a9c551213a277c29a9299114bc4f13d","0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0",!1,!1,null,null],["ethereum","wtfcoin","WTF",8,"wtfCoin","3045022100e0d02310ebdb1a4de430282c2642c7e58b35cd58a8f7ad06ae30b513c869144402200a0ca3555cc0d8da1b7646a2bcda7b667b375940e0b7e250b08554a8564242ef","0xaFbFF76B8699c33E962aA49CAa49f30c1F42b984",!0,!0,null,null],["ethereum","wtt","WTT",0,"WTT","3045022100f44db9b852c730e4a4ab966e529e253a61f2810f236c83b932e4f93cffcb933d02202f82dcdc2fff4396ef342fbf3b03fc59196c6b282484419e56cc2e81abef6f71","0x84119cb33E8F590D75c2D6Ea4e6B0741a7494EDA",!1,!1,null,null],["ethereum","wystoken","WYS",18,"wystoken","30450221009ea6e60962ec0e2786802282eace086079747084cfae94a28414069d00354bd802206276ef4e8c9412f3b684201a53283568645aa9c3661695b8943704ac367b5ea4","0xd8950fDeaa10304B7A7Fd03a2FC66BC39f3c711a",!1,!1,null,null],["ethereum","wyverntoken","WYV",18,"WyvernToken","30450221009ff61efeefafe20531fb0fbf9c14adbb637399e82f6395bdb72c7c32bc35e7dd022032a25a7b60738dc130d34cf7bde65b1c7c09d049808947b2afdb68e11d6a8bcd","0x056017c55aE7AE32d12AeF7C679dF83A85ca75Ff",!1,!1,null,null],["ethereum","x-power_chain","XPO",2,"X-power Chain","304402206f55e3dd83c9c0f6ac02df47cdb642d46bb058ac4f7d963c088b5ea247112c6f0220603d78a2453563febdbdf1eddd9eb2b06b27ea2d2a3be646936ed8397118c76c","0x1a3564852D8EdE7c8249805E71718bd7AA93Dd6d",!1,!1,null,null],["ethereum","x22","X22",18,"X22","304402206e4649fbe4a4b55c6d5c39c12799ef96f0b90b71d238eb533fd41a82fc8e368702201cb9f169dd9ac5cfa48896639fcc2a2a947fcf073478bc4212db86ef8a27cfd4","0x41045282901E90BDa7578D628e479E5421D1cDD5",!1,!1,null,null],["ethereum","x2y2token","X2Y2",18,"X2Y2Token","3045022100b1932cd3dded3d2be3f0c15cf7ab77e3330d5a849b74dfcb70239a443513a868022073041a4ebcbf5802a5e424d7528703d382ea5a100ad50fd3ce2fea662c953cbb","0x1E4EDE388cbc9F4b5c79681B7f94d36a11ABEBC9",!0,!0,null,null],["ethereum","x7r","X7R",18,"X7R","3045022100b58e45051e99a19e02aeb44c19f677972d8c74f15cbaf6e58af2588ae00bad4402205105e941df0da00a00106d2d77ce8cf7c5ccb78428f2d6913fef43cccd1597d3","0x70008F18Fc58928dcE982b0A69C2c21ff80Dca54",!1,!1,null,null],["ethereum","x8x","X8X",18,"X8X","304502210099047c837433e3d1d5d6f7cf3768a362ece1e337860f501e9ff244c158829bac022072070bac9a93147a0b7a3f10611de36e8d2618fb3bd197588362de58142b948c","0x910Dfc18D6EA3D6a7124A6F8B5458F281060fa4c",!1,!1,null,null],["ethereum","xaave","XAAVEA",18,"xAAVE","3045022100b877ae23c0a3fc6bc3acffaeb832324f443d6551182caf33b0e17333eac90ad20220146dfcd4e3389eb1d4d223cc9d0bd6de3a882694088947852737f20bccf8a4a1","0x80DC468671316E50D4E9023D3db38D3105c1C146",!0,!1,null,null],["ethereum","xactoken","XAC",8,"XACToken","3045022100b99976876c7633d8e09bc8a173176891fa159e0b94386ef88bc0cb41b543091c02200d5cd12d720d37f697a04e59178af82818f87797af14aaaf21ceb11ac4e9e1b2","0xDe4C5a791913838027a2185709E98c5C6027EA63",!1,!1,null,null],["ethereum","xank","XANK",16,"Xank","304402205fada3eaa460d7afb80547cd6421879d37fb59d08449a632ead9f31e3f9ea4980220241c0c0c88db39e730a55434968d9d3f60e491f881f9405f22164a13dc17cb2e","0x0E7f79E89BA8C4a13431129fB2db0d4f444B5B9A",!1,!1,null,null],["ethereum","xaurum","XAUR",8,"Xaurum","3045022100d541ee19007399b34fb43e48aa4f54e743c33aed0547b726ac8df918f8af4dc602202dfb76747ad664854828da6b0a692c5ae519dcedd1d889883e31b38b6d9be6c4","0x4DF812F6064def1e5e029f1ca858777CC98D2D81",!1,!1,null,null],["ethereum","xbe","XBE",18,"XBE","3045022100a06cde487f7ff2312c8881aad016cb1d3d7d1a5822ba1f45931ae8d2c67e9eaf02201967401b95fed56c6257b7de7336da70fce1477f85f9c862294c9a9285345da5","0x5DE7Cc4BcBCa31c473F6D2F27825Cfb09cc0Bb16",!1,!1,null,null],["ethereum","xblock","IX",18,"XBlock","3045022100ed3c987db2fab22cd039d8d7f668ba0cf3572f37ea0ff9d4aaf426967084c20e02203027f30f658bf5694b52e8dd79fdd1b80c66afc08112a749d70cffb716f2f476","0x53f0C9F1b6e283A59bCD672e80e2222b97E534Cb",!1,!1,null,null],["ethereum","xbnt","XBNTA",18,"xBNT","3044022076f29b2a3e35cb8038fecd386995284bb6899151330320dd7bc6e4a7cc3bb01202206f6b5448eb7cb6d0f5bdd3362d0494b0c3435a8d5fd0cddce1106428d7479676","0x39F8e6c7877478de0604fe693c6080511Bc0A6DA",!0,!1,null,null],["ethereum","xbtc","XBTC",9,"xBTC","3044022010a059dc4a0fc5994368263f317fb44cc351f524ee45a73e8a505128452a7eb90220421c43153d2c605ccba04810e0049ddf39fbde723495899246194260bfefce3d","0xECbF566944250ddE88322581024E611419715f7A",!0,!1,null,null],["ethereum","xbullion_token","GOLD",8,"XBullion Token","3045022100c0e60080d9b22baa242ca98aa79033043a182f22c8e8246f500821bc3327159502204a3351b94bac4f0edb57eaf1eea6badf87e1a79668e663888122f8eca4bd272d","0x670f9D9a26D3D42030794ff035d35a67AA092ead",!0,!1,null,null],["ethereum","xcad_token","XCAD",18,"XCAD Token","30440220636aefb7e07788cbf2cf447530af14fcc2d27c2be668199f6cb5e201300874ca022015b94a56fe15fc91cd9d721abfae3a6bb09f126b77a471e23d436934778881e8","0x7659CE147D0e714454073a5dd7003544234b6Aa0",!1,!1,null,null],["ethereum","xceltoken_plus","XLAB",18,"XCELTOKEN PLUS","304402200a01d97b5a23dcd1ac82ef139852e35d61bcda64fe2bb96bdd566bb1eac66671022069ebe57593e417bcc9061cf9ca2c9635c1972a24d0f7c75c9025f64058071cee","0x8c4E7f814d40f8929F9112C5D09016F923d34472",!1,!1,null,null],["ethereum","xchain_token","NXCT",18,"XChain Token","304402205f65a5198611b8d64ae91ec79196c1b65e4c0df710a18a568f03e440cbffe36602201e42bb94775ef969cdc3fb891357ceb27edcdf012eb74e6e80ece8d7fabff5fe","0x41Ab75435668919Bb507F871dd01E9762C2D173a",!1,!1,null,null],["ethereum","xcredit","XFYI",18,"XCredit","3044022041d76254524fc4e0ba86f5ae8c529bec0fbd6c80b6919d76ba5b8bcd385655ae0220109f5e4b8db3b4cbe67dd35cbe074fecbd3cbb883eba5ce04b7ce44c091869e2","0x6bE7e93e45740C314C89A3bE52473A0dDF2450fe",!1,!1,null,null],["ethereum","xcrypt_token","XCT",18,"xCrypt Token","3044022075e4d5c95b52c9077fe17662fb2b5714021411b712052d9a7c657af9820eece6022015766c3ea37994fabb121036499b33e4af16f002856fd8afd932a91ed433f54c","0xD2bb16cf38Ca086Cab5128D5c25DE9477eBD596B",!1,!1,null,null],["ethereum","xdef_finance","XDEF2",9,"xDEF Finance","30440220394485c946daff77472d6302869a140e48e684a00f7d1af6cfc9cc3ea5825e7c02200b9a6c72d214832b636914434ba2f197d17df30c8c9394eb7610c6b58f3bedd3","0x5166d4ce79b9bf7Df477da110C560cE3045Aa889",!1,!1,null,null],["ethereum","xdefi","XDEFI",18,"XDEFI","3045022100be7a21f805035e6883bf26f25621e52757cdcda60f0ea0a713b767dfb1cdff43022077de1c605e3fcfc83a7cb86291e61aa2c4d51cc64d89d883454cdfca13e34f85","0x72B886d09C117654aB7dA13A14d603001dE0B777",!1,!1,null,null],["ethereum","xdefi_governance_token","XDEX",18,"XDEFI Governance Token","30440220751f9fdf4509e8f9acfa3f7dee9e45758addd0b930f949f159f167d616839da602202dccb85031f95385462ee7b993a4b94c425fdcb1d20870d34b315483ae34ccc5","0x000000000000d0151E748d25b766e77efe2A6c83",!0,!1,null,null],["ethereum","xels_token","XELS",8,"Xels Token","304402203d7aa5ca0fe86933f2c8b2c8761522b3eb054883aaa1b1c1eca101adbc4fa95f02202d696be6aef5b5914d64ecd749124a09b62432d8be220a5c5f67ba99352f3c31","0xE748269494e76c1ceC3F627bb1e561E607dA9161",!1,!1,null,null],["ethereum","xen_crypto","XEN",18,"XEN Crypto","304402203cf0f909f86673339d0367c409a03ac25899658f5e6ac2b0d3a4bc0739cf6c6202200264e8692215b1745bd831dee9b19a2caa026a85813911fd8ddca2d4813a1b98","0x06450dEe7FD2Fb8E39061434BAbCFC05599a6Fb8",!1,!1,null,null],["ethereum","xend","XEND",18,"XEND","3045022100d14d32c24aacb8dfda72f7ae1f7301dced8ba71fe9e19efa29bc0f2503a2e0f30220295faf6af09fe965933f0bcb634d54522f9883d26405909d6cdb85864f20b25d","0xE4CFE9eAa8Cdb0942A80B7bC68fD8Ab0F6D44903",!1,!1,null,null],["ethereum","xeniumx","XEMX",18,"Xeniumx","3044022074bd541b502606f29a71228a13f900578973b01f7982dcc1ee233222c87d276902200382e78d9546f8c6b080255370c6b401526a18ad1c2ea7145d1b44c7d9012ed2","0x59321ace77C8087FF8Cb9F94C8384807E4Fd8a3c",!1,!1,null,null],["ethereum","xeno_nft_hub","XNO",18,"XENO NFT HUB","304402201faeed23d71dd0585ff5185fed1e944e378a1397407304102070ef6b887969a60220084ff7c0dcc8c0aa36784c96c05786eb69df67e611b15a0dfd98b81c5f2db0f7","0x05bBe7240De66F6480C9aeda77C1376B13393F83",!1,!1,null,null],["ethereum","xenon","XNN",18,"XENON","3045022100c0147346e097b40d6bbd788150fb20f1a3103a7a7abebf637846b4113fd8ebda0220679c79ab6fabb1f510ca0ee91e7ca60140e46663207f5ea6c42b35afeccf7f73","0xab95E915c123fdEd5BDfB6325e35ef5515F1EA69",!0,!1,null,null],["ethereum","xensor","XST",18,"Xensor","30440220479722278b13fad7a80a15c9690cc011a9819e82d913e2734ebaf1a47d4b569b02205a06ecccdab2c4d2bea64c82d7f89dcc39fa49c0913cd0efe782a7384c12cd9c","0x5bC901CbebefB03a56D45e57E4F356dc4DB30ab5",!0,!1,null,null],["ethereum","xeonbit_token","XNS",18,"Xeonbit Token","3045022100c0d2b16e50dae5b2daa97bacc18c543cb19578daff09cb67ca0aa04c8d3811d0022009503bbb718bd75b299d2178b9e76e67638901a00fff35590a4b8a283d57f763","0x79c71D3436F39Ce382D0f58F1B011D88100B9D91",!1,!1,null,null],["ethereum","xeuro","XEUR",0,"xEuro","30450221008301a87fa877364e69df0eb56afdb4b7b8f6b3c267eaeec0e66c7ef2fb9ec42202201b64bd8ddc59e26256ba5d02e24399764c50440515f810209515518458b51333","0xe577e0B200d00eBdecbFc1cd3F7E8E04C70476BE",!1,!1,null,null],["ethereum","xfii","XFII",18,"XFII","304402202421e667a28be158d116f51ff559d07b00b3f422fc96f75647880df5911792a802200f06210f769c9dcafaf761eba18ccb86d7c045971c32a3650f2fe8c15b08b969","0x1fa21b20222076D7465fb901E5f459289c95F66a",!1,!1,null,null],["ethereum","xfinance","XFI",18,"Xfinance","3045022100c01bc2bc01d06075eb174ef00d1d49ce9ad99d82dae356bebaa631101bf7775c02205f472f9e42941f521cef179e30d6d6632c00c7d6cbb478a347fc824e4ecc084b","0x5BEfBB272290dD5b8521D4a938f6c4757742c430",!1,!1,null,null],["ethereum","xfit","XFIT",18,"XFIT","304402207c1aee8fb82f6da2b10ad122748817f40875da25a3df327032a43036f41514c102203aa580d867f1c68f6756f8b4e83066577c7cd29b328633ddf8f2f3ee1ad1d6f1","0x4aa41bC1649C9C3177eD16CaaA11482295fC7441",!1,!1,null,null],["ethereum","xfund","XFUND",9,"xFund","3045022100fddaf564e887570509fe60ac6d31371a056b8a54216044e1b4a7da325f098ec102200e4284f01f4544ba7839983f411e1cfc26559a36b4f80a8e411701ced6e214c0","0x892A6f9dF0147e5f079b0993F486F9acA3c87881",!1,!1,null,null],["ethereum","xgm","XGM",8,"XGM","30440220291232d008226e8e78d9b1c9b51a2471cfdbd5c269343abbe6b94d30072e7c5702201bc0dfd9da31244f4b834830283b66c30c98985e1d59cb1f857a48d4a464fe29","0x533ef0984b2FAA227AcC620C67cce12aA39CD8CD",!1,!1,null,null],["ethereum","xgt","XGT",18,"XGT","3044022026062abf05dfdf6596a8b5dc504b6e88337802562c17d1fcc5e1c116078e8012022064c1e951a837a391a3a079637dd8dbb6fe4b199347b3abd6d67dfdd524542d1b","0x30f4A3e0aB7a76733D8b60b89DD93c3D0b4c9E2f",!1,!1,null,null],["ethereum","xhdx","XHDX",12,"xHDX","304402205f1b9dc685b7974c659bbac4e938109686c73101111fc194b33496ca54ba10ee022058218e8d6f429d4d6f07799100a0ffe842169e5de13db0b90cf5b60eedbdbf81","0x6FCb6408499a7c0f242E32D77EB51fFa1dD28a7E",!0,!1,null,null],["ethereum","xi_token","XI",18,"Xi Token","3045022100b474eb82a06e03160c331a2a6e92671bca80f5edf92085fd029fc3c197f6596b02200dab4a9a0f30ecd67cca796e4510548a3d5a9d03ece6110d58c380a0544740bf","0x295B42684F90c77DA7ea46336001010F2791Ec8c",!1,!1,null,null],["ethereum","xid","XID",8,"XID","3044022016039e63afc3f01e5e643ffe7a9992d1ae951f55830be2c2796ee074607f79c102206c620c45e0485d810d395ced4c82fda71f916702b4eadf56808f067da1cd0b28","0xB110eC7B1dcb8FAB8dEDbf28f53Bc63eA5BEdd84",!1,!1,null,null],["ethereum","xido_finance","XIDO",18,"XIDO FINANCE","304402207c81111edc3b9109054eb88ba8a881bec1e2d993c4523e8fd1d1a7876aacf2bf02204e5f84f69aa5739faffad07931f48c83d9fe974786bc3eede83cbf2137f28437","0xF6650117017FFD48B725B4EC5A00B414097108A7",!1,!1,null,null],["ethereum","xidr","XIDR",6,"XIDR","3044022078613d947c797fa8dc27903f349439c896ecc01da6eea2f88918242eb96dcd9002206119354662239adf013636e91aa6300ecca5775e0ce2bafef91312c4068eb1fa","0xebF2096E01455108bAdCbAF86cE30b6e5A72aa52",!1,!1,null,null],["ethereum","xiglute_coin","XGC",14,"Xiglute Coin","304402200a0a97fdf527aa6dfdb045050e9389c022a3c4f2b3d05b1bbbfec2c54b173e0902201399707d90ea05b77a5ac17baf8a8efd445846b18125088df38601b6d36fddf2","0x89d3c0249307Ae570A316030764D12f53BB191FD",!1,!1,null,null],["ethereum","xinch","XINCHA",18,"xINCH","3045022100925bf9f7a83f007b4cc6b5c62ce3c6fe48f777435be37b0ce768f2fd72593eba02206bc394528056d35bfdc651b2c06abf2d22d484d1562c353604561b541ec3bc44","0x8F6A193C8B3c949E1046f1547C3A3f0836944E4b",!1,!1,null,null],["ethereum","xinfin_xdce","XDCE",18,"XinFin XDCE","3045022100a2e4ec36a991c6073a1b32ffcff81da07399efd7d69e1f6ef428af1ec25742fb022028a2c8643a6cd932855ed3ac4cdcf871d5aa0cc72495afb91603979fc5eacf11","0x41AB1b6fcbB2fA9DCEd81aCbdeC13Ea6315F2Bf2",!0,!1,null,null],["ethereum","xio_network","XIO",18,"XIO Network","3044022052fe4766bd92e49b45e4c461cc93431332ed3372f29d0f4ec9a4c534cc7fdb100220343671fa2f480337fb4f62ccdf96563717a37b5347eb162b21486bb4d9571bb5","0x0f7F961648aE6Db43C75663aC7E5414Eb79b5704",!0,!1,null,null],["ethereum","xiotri","XIOT",3,"Xiotri","30450221008ac32927ad35a1034184597b1a7d10ea5af3f98fb8195b0424c0705af56b503b022010e6d935ec3c041f55ca410dcf2da12a2826e06b74c0064e738357f0e7b8464c","0x31024A4C3e9aEeb256B825790F5cb7ac645e7cD5",!0,!1,null,null],["ethereum","xknc","XKNCA",18,"xKNC","3045022100a38d0bdb0657fb283ff4f3be31805114ede498a60dd29518e2e25106a4c3b0900220011ab08db473de01a3680fc253e2cab49bbbfc942b0820b709a27f74381df166","0x0bfEc35a1A3550Deed3F6fC76Dde7FC412729a91",!0,!1,null,null],["ethereum","xmax","XMX",8,"XMAX","304402201132d1a96a39b387ba3c741e76e0c4f28cac070d9a87f9fb6a75b989c1764698022041c110d018595528838086d87f3f82ab0b1595211b273742a8c6855ccf85500d","0x0f8c45B896784A1E408526B9300519ef8660209c",!1,!1,null,null],["ethereum","xmed_chain_token","XMCT",18,"XMED Chain Token","304402202f569ba209b717db0477b73dfd24725e65397a10930d9d9e95369f9b8e1f11dd022038b9e887a1edbeb92b223af2dd3d650253ffbf7881ca3771787a10a3a86c1949","0x44449Fa4d607F807d1eD4a69ad942971728391C8",!1,!1,null,null],["ethereum","xmon","XMON",18,"XMON","3045022100ade7535b503616cd56ab3a53eee545bb15c0727ec9b447c4679e07832c1739bd022039853530df8948867f6d6eaf924ef6042ee5e319f83f51b898cf7e541dec53a6","0x3aaDA3e213aBf8529606924d8D1c55CbDc70Bf74",!1,!1,null,null],["ethereum","xnt","XNT",0,"XNT","304302203292d085e5316591776217a501221b3a1ae8e0558fbe507c38c4cbc49bc110c1021f3bce0f5556d7f0203a544d0a61ff99f8d8151c4ecfbfa193c1750e3176cc3f","0x572E6f318056ba0C5d47A422653113843D250691",!1,!1,null,null],["ethereum","xovbank","XOV",18,"XOVBank","304402203927ff9d51d2bafa62a310d30722d444324749542fe9c8e803aaef36a1ffbb1302201c2b9bd7e37246601d129089b245836807b6ba712ab236b094000ea842cd509d","0x153eD9CC1b792979d2Bde0BBF45CC2A7e436a5F9",!1,!1,null,null],["ethereum","xplay","XPA",18,"XPlay","30450221009d87807aa38ed022fa7b61b2508ce8ad5382fbdf821b965ad01119c110500e7f0220718da664b4a4d4e5e0503d3b44dc4d8b0ebfcead29ef7c5b41d08e501e193fd4","0x90528aeb3a2B736B780fD1B6C478bB7E1d643170",!1,!1,null,null],["ethereum","xptoken_io","XPT",8,"XPToken.io","304502210088d8c9b02bfd212e3d19057337072f652cd6141efdd093f69367b047404c336d02205fe4315d8f963e4ea99d35002276aa03d595f1678216bee9927400a96730e359","0xf0814d0E47F2390a8082C4a1BD819FDDe50f9bFc",!0,!1,null,null],["ethereum","xreators","ORT",18,"XREATORS","3045022100d1e272f6ed4dc1a8e6e5138d244065df2bf05daa5bca27e5a6413bd1ba38a00302206d66801d86599228322caf64721bc640e8264106cf3f9e1ecb0c19f087418111","0x5c59a5B139B0538CB106D775a022caD98Dd14b5a",!1,!1,null,null],["ethereum","xrl","XRL",9,"XRL","3045022100b47ed1f56ecac66fc7f4e3aa477450d6833b654d25a4844cc7fa54a3d3f8e84202202f67548e0047d863829c0e57819d089cdb81c18f728810a0b3215be39f240e9b","0xB24754bE79281553dc1adC160ddF5Cd9b74361a4",!1,!1,null,null],["ethereum","xroad","XRI",8,"XRoad","304402201d7011b4d9b59c80eac02f0a82b0e2be74af23f47527de246e5e4a14c4a8d15d022031950bfef3e0158dd01d6f260a6207eff544bc38dc49d2827b1864229df2b60b","0x9287AEFe51047Ef43F68612f80BAC17745b23AeC",!1,!1,null,null],["ethereum","xrp_classic","XRPC",8,"XRP CLASSIC","304402203466a43c4f0ac5e3f3b7770a45d5161f52621a0d05ccb96b2be963c8ec6689ea0220015addda1e42ad2f0e5b1d4c4a23804aa94928a73428d7b80cb6934412692c11","0xd4cA5c2AFf1eeFb0BeA9e9Eab16f88DB2990C183",!1,!1,null,null],["ethereum","xrpbear","XRPBEAR",18,"XRPBEAR","30440220255e8436dab9933f7330ebdbd5553c3142aa84953363e7ecd3ff78d30b6407af0220324cf4d1641cd2d05d7891b27d23f07c300d26c4cb0c416c21804ce2eff04a50","0x94FC5934cF5970E944a67de806eEB5a4b493c6E6",!0,!0,null,null],["ethereum","xrpbull","XRPBULL",18,"XRPBULL","304402205e8322b999f532dbc31b22000999565d70b7548eee3497e68e855b678412c5f302203fad5adaede733b062f03820752f29204b8ca99f95c8b341544538ea1e6d7db0","0x27c1bA4F85b8dC1c150157816623A6Ce80b7F187",!0,!0,null,null],["ethereum","xrphedge","XRPHEDGE",18,"XRPHEDGE","3045022100f598fabe4618dd07947b1985673813122b0b6df9bc351873e0e402c91d5171090220508327eb9d8177221ca29d2776a97b4901d474a6dc04a03d0c9ce2debfef4fb5","0x55b54D8fB1640d1321D5164590e7B020BA43def2",!0,!0,null,null],["ethereum","xrune_token","XRUNE",18,"XRUNE Token","3045022100a4eff5ccfa226268595cfe2f331a3afc6db0ee9fc434494c1405760752f017c90220089be02bc0368012d3e2183ba4e9c7178a0ffce58208ba843537fdc2c19f6771","0x69fa0feE221AD11012BAb0FdB45d444D3D2Ce71c",!1,!1,null,null],["ethereum","xsc","XSC",18,"XSC","3045022100d6351d61f53be4a84c6a9b502282045bd061ea1ae527c45c837d66ce139aff08022001921a53c40fc75bb97ff825c78a2897dfbfc632555d5b89bbc7a35492143be5","0x0F513fFb4926ff82D7F60A05069047AcA295C413",!1,!1,null,null],["ethereum","xsgd","XSGD",6,"XSGD","3045022100e86cff673471dbe4c8f9dc5074f4021e9d447d9b8f4ef1093d11b0358dbd9ecb0220574cdd830c268a525808a371e93917c64138fc3c4fff753d1f131a6a86f1f702","0x70e8dE73cE538DA2bEEd35d14187F6959a8ecA96",!1,!1,null,null],["ethereum","xshib_staked_shiba_inu","XSHIB",18,"xShib Staked Shiba Inu","3044022000d9cd00b15e2c8ea0792dcb8772b82468b52dac28b13bdb9421e076036af0cc02206de61f6e0de845aac6372dde25edd3d498d6c411a1d1caf6f5acb4b036236998","0xB4a81261b16b92af0B9F7C4a83f1E885132D81e4",!1,!1,null,null],["ethereum","xsigma","SIG",18,"xSigma","3045022100fe4f5cb318324a81a88a71809bd17ddd02e37b30f5163644cb7f3b55a76bc90902206f245ae0602355897337c6847ba4ee998829071860d3cd2c86cb832e13caea83","0x7777777777697cFEECF846A76326dA79CC606517",!1,!1,null,null],["ethereum","xstable_protocol","XST",9,"XSTABLE.PROTOCOL","3045022100a3617c0eb4fdab8ea8c1d4b482bbfce8e530d146a85c96cab2e78393c96252d40220612a20ac6d09e50c2b350aa3c64f52a586fd9a66ad00e562c368d80cd038dd31","0x91383A15C391c142b80045D8b4730C1c37ac0378",!1,!1,null,null],["ethereum","xswap","XSP",18,"XSwap","3045022100dd90804f980c60ee4e368c5788c606d7868cbfd8c497e6bf72f294ad7343ceb3022035d39ab3486f45215c51220818ab5a29d6b00002c7ea28e4fc4afd2a68bbf0dc","0x9b06D48E0529ecF05905fF52DD426ebEc0EA3011",!1,!1,null,null],["ethereum","xt_token","XT",18,"XT Token","3045022100cccb6d59e238538490b2ad963c2301eb9e38e9a1c90ef3d7a9e3a6c2bb8627fe02206a16cdb8969aed2181dbc9a2949870f7f5eace41552ae033e407d9e1ad38ad0f","0x4BE10dA47A07716af28Ad199FbE020501BddD7aF",!1,!1,null,null],["ethereum","xtake","XTK",6,"XTAKE","3045022100f5b0b7cc3b4ead370510102a381b62a6227ae364fde1dbd3be00bd74614df6d602206898a13cb7550ceb1d63d08c2ca8860c6939fa9a1cf0b2a8fd0eea80612fff91","0xF96459323030137703483B46fD59A71D712BF0aa",!0,!1,null,null],["ethereum","xtock","XTX",18,"Xtock","3044022034fffc362231860eaf411621261dff9267c029586d05fc1a2f07969d18a3cee6022035bf32f958cdfbaa114605c8d36b61b116d0123cf1e32218a874687dd95e8aef","0x1822126fEedb4C7d61EecdBE3682FE61e91383d6",!1,!1,null,null],["ethereum","xtoken","XTK",18,"xToken","304402203d7b87e5b52996eb6f27d870812ae23d4378ff0ecd24b6c0815078f414ac8a2e02203df27d21e6dff1fd1bd7b190f5d1e4c431fa2c4f006942458f6de44d6f95bab7","0x7F3EDcdD180Dbe4819Bd98FeE8929b5cEdB3AdEB",!1,!1,null,null],["ethereum","xtzbear","XTZBEAR",18,"XTZBEAR","3045022100a06dbdecc8238b201cfa17675ead957220aeb7894bc29052073190b3ce3958b9022003861c9bab6c8a3c174d0fb1075219d635bb3ef6f1f7974b5f00f3c2125d0c71","0xbc41d05287498DEc58129560De6bd1b8d4E3aC1d",!0,!0,null,null],["ethereum","xtzbull","XTZBULL",18,"XTZBULL","30440220068b1249497e10b454b018d930146a205af972a859ab91d7873024803a38886e022049152931d18f2126ec9c43720a29956643a1749abc4b5f539995ede33387465b","0x8AF17a6396c8f315f6b6DBC6AA686C85f9b3E554",!0,!0,null,null],["ethereum","xusd_prime_coin","XUSDP",18,"XUSD Prime Coin","304502210080245d66e52ea4707ad48726a835f1635040d6609610db754f0353921809dfa302202ba1ca460b4d3ce25262f66bd75b6c17fe3233952d2b3283d40ff1e0622fb384","0xA1F7C9c6d19e2D0BF20729CB0BF03338A90bEd9b",!1,!1,null,null],["ethereum","xvix","XVIX",18,"XVIX","3045022100b870dafbc06bd44cf2b28fd5a6b1cf8ffb8877ed7b8657728c511715594055df02200d9a2e65f98fff00b847cd9c7fa348acf449a1b30d90ff37b3f884c90036a998","0x4bAE380B5D762D543d426331b8437926443ae9ec",!0,!1,null,null],["ethereum","xy_oracle","XYO",18,"XY Oracle","30440220145d5af7fb626090b099865f5fc11170cca51510347cdba14400755ed04febe702201c361ee0fbe867be34f8f29918d0a162528bcfb6583e440337f9c506178978d8","0x55296f69f40Ea6d20E478533C15A6B08B654E758",!1,!1,null,null],["ethereum","xyz_governance_token","XYZ",18,"XYZ Governance Token","3044022055177b044255a6c1c519b85a1370c276adc26c369654d1b0179caef3b2cf86c702206dc1bc6cdde8bbca51e892b28fdf101337f3c60c826ea61cafdb11ee08e03bb6","0x618679dF9EfCd19694BB1daa8D00718Eacfa2883",!1,!1,null,null],["ethereum","y_coin","YCO",8,"Y Coin","30450221008b4052c392b543a77cb0656c177db8544e294e5a820abb96865cbfce00b6374502206f4bad78c0859760f314bd2a4c0b249852364e87d819106fa06d44556a31f5e9","0x3D0293f06daF4311B482564330D57C8Db6C10893",!1,!1,null,null],["ethereum","yakuza_dfo","YKZ",18,"Yakuza DFO","3044022078ffcca6d438e22ae297541136e6d5236e583872a4797743297a25b80e2102ad02207beec98e73a29bdd58be396e9ea0cc6431dc0d565c69f2f4a114a9c2c6b7f26d","0x87047986E8e4961c11d2EdcD94285E3A1331d97B",!1,!1,null,null],["ethereum","yam","YAM",18,"YAM","3045022100d7df26d6d9df3e5144a1a3ef311f0e36fedab0c32b15cf364f98a8e3db59fdad022077f1ac3049c3b6838a348ad93f8363d59c79ccc5aeef4f28f958d62a632e3412","0x0AaCfbeC6a24756c20D41914F2caba817C0d8521",!1,!1,null,null],["ethereum","yam_","YAM",18,"YAM (Old)","304402204956f7bd6a94d9a9c074f91a5ca54b2a0e951409ddbb9e2b3e18013ed390a2c60220445e9c78048cac10ade6b2d875029f6899bce8bbc82331eac12f9e233bc11a33","0x0e2298E3B3390e3b945a5456fBf59eCc3f55DA16",!0,!0,null,null],["ethereum","yamv2","YAMV2",24,"YAMv2","30440220793644ea15935e20baf5c6c53c424919e0f988711138d35d6a7e199839cca7b00220732937c588a33652fd62ce1ac623ad488746f6e2ec6d646b5ae4cd304a9b291d","0xAba8cAc6866B83Ae4eec97DD07ED254282f6aD8A",!1,!1,null,null],["ethereum","yang","YNN",18,"YANG","304402202b5e5e4f5ce0a3981d20cf12630896f527a8be8d45309b29933d6c378314133e0220358a7911e5566a7ca0941a3b2906ef5ff92babefe809ac0bd90e629d2d8f9c5e","0x1BC7C1dE0AC6eF4fDeC35c053030D90cf54c7e9A",!1,!1,null,null],["ethereum","yapstone","YAP",18,"YAPSTONE","3045022100b71c2cf81dac54687d06f758bf749f8cb87b20c56b9a32107fc53b1855c413300220477b0fe5aab7400f877f1fac6ecabcfe3703bd01bbd83143c8badee9b22d2cd1","0x245392ee7Ce736eC6A0908B67dC5d0a218230005",!1,!1,null,null],["ethereum","yaxis","YAX",18,"yAxis","30450221008630b5d24ed42505645e0bc5db1dcd902bbc43170adff9d22a5da543df7e67a502202bb8336137b71eb6f9d69c7366d32b087b2fe1e33966b05f711448a7585539b0","0xb1dC9124c395c1e97773ab855d66E879f053A289",!0,!1,null,null],["ethereum","yaxis_v2","YAXIS",18,"yAxis V2","3045022100ca14043a0e0dabb04b3b5c41ede61caab5458b0da9cf05377ab1cc3998a61c3902200f473d40fd5ed5f8572fb24b669615c5e9e082677de39752c7d5213a06d05b95","0x0adA190c81b814548ddC2F6AdC4a689ce7C1FE73",!1,!1,null,null],["ethereum","ydragon","YDR",18,"YDragon","3045022100e94dc787959b330767fe23bff058ec18786b25fa102688a2cc553af37456a81502207e49596b87a944ced4fd3478235fbe88524871d7a5b3a5afaddb2183d3651aeb","0x3757232B55E60da4A8793183aC030CfCE4c3865d",!1,!1,null,null],["ethereum","yeafinance","YEA",8,"YeaFinance","3044022023b8fd269dfaf665f3ab86491ac7caed66e6064dbff6d46397d153490872dc060220736c3d599d6241480bdbf59064b30f0b195dc83ca0ce117ddf31acfabad55620","0x40b92fCE37CEfA03baf7603e7913C1d34dD1a4EC",!1,!1,null,null],["ethereum","yearn20moon_finance","YMF20",8,"Yearn20Moon.Finance","3044022001cdaea8864c5262075a879fe68db0dab30c4754d8fa10cf87a618adeb1c9b350220307073e48c89c691a03295cb581a4070c038a061b2d7a8a9d9b82ace4c7a8fee","0x16bE21C08EB27953273608629e4397556c561D26",!1,!1,null,null],["ethereum","yearn4_finance","YF4",18,"yearn4.finance","3044022004a13c811bde66eed70eb024aff5db84cc019766e6d54efb16da6d8eca8399f402204117963c95be504f4aaac883dd19cea9890466169104efcc702ddce795864eaa","0x38ACeFAd338b870373fB8c810fE705569E1C7225",!1,!1,null,null],["ethereum","yearn_compounding_vecrv_yvault","YVBOOST",18,"Yearn Compounding veCRV yVault","3045022100ccce48f209b56740d773d0c2c7f380a03ac32009c236146c7f0359066603f196022052a1e1423f0b3df4ede34d9390ac33dbefad107c024e5a424159269506b8d2a9","0x9d409a0A012CFbA9B15F6D4B36Ac57A46966Ab9a",!1,!1,null,null],["ethereum","yearn_curve_fi_ydaiyusdcyusdtytusd","YYYY",18,"yearn Curve.fi yDAIyUSDCyUSDTyTUSD","3044022030ff71641d088b383b3a3d982b28586f6acc64c4c74aa33105f582e8066fb1e7022035aa2e4b3efc46c38be44663f34e51ee1b32cbfb4f08f4b4ae14a73a37cb1ebe","0x5dbcF33D8c2E976c6b560249878e6F1491Bca25c",!1,!1,null,null],["ethereum","yearn_dai_stablecoin","CYDAI",8,"Yearn Dai Stablecoin","3045022100a5e008e948b89de3ab0e713cdb73d29d60cb24b166f60c73d2dc44a00aa14e280220401fb0c448439fce8082c13c90b2b1f35104cab8516f2b3b04e4e055010610aa","0x8e595470Ed749b85C6F7669de83EAe304C2ec68F",!0,!1,null,null],["ethereum","yearn_dai_stablecoin_","YDAI",18,"Yearn Dai Stablecoin","304402201e74e801f754e5d61b1686f011451137032acfbc1355ff6ca9aa87170e72976c022020cbae25963ef60cd784a7148615c8c8fda7d92ed6f430900dbe42e0678522da","0xACd43E627e64355f1861cEC6d3a6688B31a6F952",!0,!1,null,null],["ethereum","yearn_ecosystem_token_index","YETI",18,"Yearn Ecosystem Token Index","304402203c7bfde16abfa50c5a56070cc2c3d44ca5e5eb362cbf51de2e4d2c61d0ad94ce0220242bc323050bf6b16341b2528b6be4324597d560cd6a25fcc662d4227c6273fb","0xb4bebD34f6DaaFd808f73De0d10235a92Fbb6c3D",!1,!1,null,null],["ethereum","yearn_ethereum_finance","YEFI",18,"YEARN ETHEREUM FINANCE","3045022100fdd2cb4fac37e6197e36d25898939c9da61febbc7141f0ef92f2af374a74e85a02205e95bfe768edf424a7332c194dd80b458e57f5b4a44bfa583ab244052755a0dc","0xCF282Ba0bC91d2AA6E775bCfd90dA6B7912F1b1a",!1,!1,null,null],["ethereum","yearn_finance","YFI",18,"yearn.finance","30440220359fe110fedb24eb06cbba9501769dcf4e042c475e2d5d9e5eb14fe86c1fad52022028d02a7f861f1f1e1cf0e3c6a61bf93fabed9f63f812b0bae4b052954f9b19a2","0x0bc529c00C6401aEF6D220BE8C6Ea1667F6Ad93e",!1,!1,null,null],["ethereum","yearn_finance_bit2","YFB2",18,"Yearn Finance Bit2","3045022100f26dac6e105edf0dcb0770b6bdff1c8b422a946aae5e587a1ffc381a88b89bb602207f5af298028a909c097b65a5a34dc60eed348a339148617bb3e4d33eeb3548e9","0x59e7B5DB9Be0BDD26Fa048d39E01FEe456AB674E",!1,!1,null,null],["ethereum","yearn_finance_center","YFC",18,"Yearn Finance Center","3045022100bd9ce38146202ccb05ac3bba2e21044152005c3752fe650c71f4128f0c02944a02205f4fe9aae3068c21a266d5d005a80a9529b6b4dc7980e6ca66830fa0ab978836","0xE8ed08a581777f112654e28DE507e11613DA0379",!0,!1,null,null],["ethereum","yearn_finance_diamond_token","YFDT",18,"Yearn Finance Diamond Token","30440220322519bd36dbe0541246348ac6da14241e215d9ff1e0e705463d67ad5e3f4e31022064966ecca3d7f057576299fd3531ea4e786f9352c741ac220221529c97ef4e7e","0x1378eC93Ab2B07ba5A0eAEf19Cf354A33f64B9FD",!1,!1,null,null],["ethereum","yearn_finance_ecosystem","YFIEC",8,"Yearn Finance Ecosystem","3044022032a677dda996544567fac5b700cab4590aacab0b6337f97125da55a06dc6305702203b7c5654bc98584070bccc709994b172f675cc8b88176d3eaba611530e6093fb","0x2E6E152d29053B6337E434bc9bE17504170f8a5B",!1,!1,null,null],["ethereum","yearn_finance_management","YEFIM",18,"Yearn Finance Management","30450221009e97252d3636e729e2a8c05723d1e61b73d38a10c5d5356636a3fbda79ae4ff4022027b1afda4b8012dc19ee3c2f04b4127eb91a270c6515fbf30bfd88e25b1420ad","0x4B34c0CBeEF271F895d339c5F76322d71A60782B",!1,!1,null,null],["ethereum","yearn_finance_network","YFN",18,"Yearn Finance Network","3045022100d9e1ae0573cd45b525d644265b65eb504d9483c8e97a8ec91e182cccd1303b3502201de99f8f90460c9e7ea0a8db99fc247514cd46f4bad639005e044dcf42807da5","0x3DD66732113Af9981A861Cf489431533aebA33B8",!1,!1,null,null],["ethereum","yearn_finance_passive_income","YFPI",18,"Yearn Finance Passive Income","3045022100f91396157a4e39e10b3b77ffa96aa96fc2f2b3a2fac43d7593466425761105ee02203a3a118196c17f7bd0d07085c039fd13d3eb721817753cc7e2586026af3f7900","0x05D27CdD23E22ca63e7f9c7C6D1B79ede9C4fCF5",!1,!1,null,null],["ethereum","yearn_finance_protocol","YFP",18,"Yearn Finance Protocol","3044022049a1ceb6bb569c8140d9c84d8f31d58fcdab0ec483903b69c81f4d3231abf7f90220055c3541d27470b97a71461a52838aabeb41add8531b25c1c36eaf9c4f7045f1","0x96d62cdCD1cc49cb6eE99c867CB8812bea86B9FA",!1,!1,null,null],["ethereum","yearn_finance_red_moon","YFRM",18,"Yearn Finance Red Moon","3045022100e85d54a8d2eee6548602e38143f53b0192f17b810a47c28ae7c30871035a9dfb02202c25ff6a5804930076e98b8a45e10f6d2e756e5c32aa76a8ceca058c2d27630b","0xbE685C5E06866cfB94A4242E3DF8f2fa3E7c2b73",!1,!1,null,null],["ethereum","yearn_finance_value","YFIV",18,"YEARN FINANCE VALUE","3045022100b34d00f8ee37603992b3f27f8202137eab0d21315488d15997e5c18b8410199c02205b0a5a97c0ce5c288dc28293bcf32fc380b39b61b5e3ed5ad0fd1e7fc1f5d843","0x519083fc539F23131C3b7046992584592772D12A",!1,!1,null,null],["ethereum","yearn_fuel","YFUEL",18,"yearn.fuel","304402202a28f6eb4b0f890b7d0f8fc0aa4ac84cf885688da4ea6284a5800e33c5304e2c02201dabad77b2736d137b28375ac1171a11f0df1d826fbc994a3f52095d99aed7ad","0x09df6A5ca936Be45f5Ae45C7e58C9b4602011fcd",!0,!1,null,null],["ethereum","yearn_global","YG",18,"YEARN GLOBAL","3045022100c364920aac414427a6649a06b083eb73a60c9b28d8575d3dc32f8a26c5711b3902207d55c402a2b9c0d0eeec32c04d02648d7e1fc15f881a6446bc287950feb06347","0xD811e485cB4ab1FAd56233dE4464Fb5d1C9f3E99",!1,!1,null,null],["ethereum","yearn_hold_finance","YHFI",18,"YEARN HOLD FINANCE","30440220484b244034af32e4f020a0ea1f4e75304e5475a67a243f4ac41fb0e2c112d59402201704d910ad61637191ef72a2552062d0ddf3c7b85a5640afeb1f1a1245aefc68","0x5a143F78Bb66294ff37c47b5164584475B932bAb",!1,!1,null,null],["ethereum","yearn_land","YLAND",18,"Yearn Land","304402202d56d21d1ec14987ca0fd2e9e3c29f7289b6105e25cb6a0b5e9f10a442240f4602206a9c44f7fef18df78a3fd665963d4c4a9b694de3572d7010fc2e8cd4710fbbc7","0xd0658324074D6249a51876438916f7C423075451",!1,!1,null,null],["ethereum","yearn_lazy_ape_index","YLA",18,"Yearn Lazy Ape Index","3045022100cf0f42e79bd1d07d31905f9f6d87754d95108ad8fcaeaa5e7ef37cc75beb80e202207e9f56233cbdf06f8fc1717755f8425aa3741c29ad8170f2d659ff2bee776b10","0x9ba60bA98413A60dB4C651D4afE5C937bbD8044B",!1,!1,null,null],["ethereum","yearn_shark_finance","YSKF",18,"Yearn Shark Finance","304502210086970fe4509fee5910112d0a339d39b8e4e9d1d3615cf341ac3b816341d0e75402201eb6396df3d00cdb707bfc1ead47491e5b499a6fb4b9e74a235c69be158bfde4","0x9C664F20C0a00a4949DFfcA76748c02754C875aa",!1,!1,null,null],["ethereum","yearn_tether_usd","CYUSDT",8,"Yearn Tether USD","30440220436affca86e21bb26b75c0387378b19d3b8ddaf24e7aabf14be5df84b737b020022061c3b8c034ca2cff51b13c6189a595fc66a46fcc8708e82d9c261a18d4acd90d","0x48759F220ED983dB51fA7A8C0D2AAb8f3ce4166a",!0,!1,null,null],["ethereum","yearn_usd_coin","CYUSDC",8,"Yearn USD Coin","3045022100c035576db4c3d4330a46f88dbdea351c54778bf595f4617f83ae6fd620f8c4ca0220095e36e25c7cdd2a208186b57d68df4be88c841dfd939bcf901d5d6f01c5bce8","0x76Eb2FE28b36B3ee97F3Adae0C69606eeDB2A37c",!0,!1,null,null],["ethereum","yearnsecure","YSEC",18,"YearnSecure","30450221009aa696a795e3c11922b8751f4e98c14141a4d7f7c6c54471c56ecb30a250831d022055e8b0763a21431dd56ca5d031adbf7cdd11768ca3faa30572c54fe75e75087c","0xeea9aE787f3A620072d13b2cdC8cabFFb9c0aB96",!1,!1,null,null],["ethereum","yee","YEE",18,"Yee","3045022100908c73a14a1b480bfa59dd47aa0764228d284c341f6f5865c10fd4ef96da11c3022003989566d760abdae364df3356914376d2eebdfb1af955f89e3693210da4fb48","0x922105fAd8153F516bCfB829f56DC097a0E1D705",!1,!1,null,null],["ethereum","yefam_finance","FAM",18,"yefam.finance","30440220359667970f1b94950f17f7f6336ea738bb7dba06f232be774c80a34d89bd7838022040ba21a2954629ab62faf227679c6ea250b9533f4a8b3432b339b8b6f01b630d","0x9D24364b97270961b2948734aFe8d58832Efd43a",!1,!1,null,null],["ethereum","yel_token","YEL",18,"YEL Token","304402202253c752eb1e41b98cb7edee4298710a97799b91f32357f7147189a04168443b022047932155b57ee4a4dd0b54e25c49ad54724ebe69a8389b5ba5fedec5902352e8","0x7815bDa662050D84718B988735218CFfd32f75ea",!1,!1,null,null],["ethereum","yeld","YELD",18,"YELD","304402206557b77232e4426c14dd9edeecead09ba986f0ef58a998fe57466dcabf4004e2022037c56594d2278b3329a744a9d3dcdcd813d3aa5e6c593776c270391845ded6d8","0x468ab3b1f63A1C14b361bC367c3cC92277588Da1",!1,!1,null,null],["ethereum","yfarmland_token","YFARMER",18,"YFarmLand Token","304402200b77ed5f4092bd1f5ca5eda02a70f2de94f7148e22c5a131ada26218c1eb767702206c1fe0f089d32e1029870c82bbce4074cecff2f4010fffe39bba0485f123f7c7","0x7B0F66fA5cf5cc28280c1e7051af881E06579362",!1,!1,null,null],["ethereum","yfarmtoken","YFARM",18,"YFarmToken","3044022001fc41e2aecc7ad28713b8eb5449acf4ed93ccc090334776215ed0358fa04fb602203679ed759cbee3c3753c900732d231d01b98e6b7ba6149e3a4536dcfa9edfcd6","0xF5D0FefAaB749d8B14C27F0De60cC6e9e7f848d1",!1,!1,null,null],["ethereum","yfbeta","YFBETA",18,"yfBETA","3044022016c8b0c3a8c931f680bdbcd5387633fb749cabbf3f2b72c9432b3e410c3853690220499e3c1d5a0f799fe4e7ade38db977ed7516b9f7004c88aa63a91bc211a360bb","0x89eE58Af4871b474c30001982c3D7439C933c838",!1,!1,null,null],["ethereum","yfbitcoin","YFBTC",18,"YFBitcoin","3045022100c85a01ec02bf7964b235284320a9ebbc20df8ab0eedb87d270e9c5ef125611ea0220559744f298e7a85b74a9e45cc136d355ab85fb8e12c244411943988dc8fb7306","0xff034D12353867fC4228f4Ae3E689CD6dCAad120",!1,!1,null,null],["ethereum","yfc_mutualfund","YFC",18,"YFC.Mutualfund","304402201ffe67658b3a59842ef42143ab3c13582691e79a93ce0ba3e4a844946f4278f0022062dd0642b16d8abe421efa8ead33b356994c945999151f5ba08269ec051e8c19","0xc6Ff7EaC464C99FF0e1AD8BcFd0aB0ceBe08c9A3",!0,!1,null,null],["ethereum","yfdai_finance","YF-DAI",18,"YfDAI.finance","3045022100c2622b44ee3740892dd7a0045eaa1f1f121ebdc3b30cb88bc963a9b97ca5b55a022031dd57a167468343e2381a291aeb2f84cc0e738a52b4e793b790fe65450c3efe","0xf4CD3d3Fda8d7Fd6C5a500203e38640A70Bf9577",!1,!1,null,null],["ethereum","yfdfi_finance","YFD",18,"YfDFI.finance","3045022100b4d15e0adf7eb53c513315a63006dc5aee7a4d49ed5632bec761941a92f80987022058cf967ec4eb2012794e538f6b076f2e3f1b43aa211132e769d65f3fe2c33472","0x4F4F0Ef7978737ce928BFF395529161b44e27ad9",!1,!1,null,null],["ethereum","yfdot_finance","YFDOT",18,"yfdot.finance","3044022007cddffbc15187abdd477d823d39085dba8f75d3fbe7453a7a9311473fb4bf5e02206fd701a1b3e44e5a21408c3f88efc9bca7b49c16c6c290629648d8748eef8bb5","0x2e6539edc3b76f1E21B71d214527FAbA875F70F3",!1,!1,null,null],["ethereum","yfe_money","YFE",18,"YFE Money","3044022011e6b87b02eba0229384e126b1d2dbaed3d917d7bc143d756e4de32b7330d9dd0220680c05d25120e3e9bbcc969ef3e9f44e096d549ce94c17b45e0b6c74f068e8c7","0x33811D4EdBCaED10A685254eB5D3C4e4398520D2",!1,!1,null,null],["ethereum","yfed_finance","YFED",8,"YFED.FINANCE","3045022100fe676f462154d18930a7692a5271418cd959501beea19b69c5741cffd5f6f721022019803dda765a90cc0cb1ee19a5a757f934d63f5968f5b00560119df28bb1a87e","0x2DBd330bC9B7f3A822a9173aB52172BdDDcAcE2A",!1,!1,null,null],["ethereum","yfet","YFET",18,"YFET","3045022100f6bcff908138df6988e697a47d57c4de80004763e526aa5b32b370330268f7100220348552dcde967251bf60002ebccd156aea7d6103068ae717d53e5f8b15037fe7","0xc151ca64D66eA44EE4BE9D47c3ce7E031b2fccb7",!1,!1,null,null],["ethereum","yff_finance","YFF",18,"yff.finance","3045022100b8c0af4c89cb118b53cfe3509ac31c14f30af02de12d98fe56d966c224f0dec9022075d6370ba4e1b3ef15d09079c3b9372956faa206b2786e89dd5c407ec3606147","0x8Be6a6158f6B8a19fe60569C757d16e546C2296D",!1,!1,null,null],["ethereum","yffc_finance","YFFC",18,"yffc.finance","304402200e85552056606c0d08d3175c32739c814ea49e3658844c56b3bba99008da671902202d480fcb8d0d5c6ba350187486f82ea0a17d49ba23286f278d8078024fd12dd6","0xea004e8FA3701B8E58E41b78D50996e0f7176CbD",!1,!1,null,null],["ethereum","yffi_finance","YFFI",18,"yffi.finance","3045022100b530add03eceb8c7a7109c7c3709bc33e55c65b9a90649973b2c62adee7df58702205a1b5bb0b9a9523f148ea2c363a0a1239ae3e6676f1451e82f9a43f2d608ef9b","0xCee1d3c3A02267e37E6B373060F79d5d7b9e1669",!1,!1,null,null],["ethereum","yffii_finance","YFFII",18,"yffii.finance","3045022100ed913248707768c95a4e123ae3cc16b591ead47dde8ca91f1917bf04d4e5c2a102203e59c4829161a59141b83648c5a1bf06ed284bd335c6a3c26f3a007bfcc77a25","0x6c4B85CaB20c13aF72766025F0e17E0fe558A553",!1,!1,null,null],["ethereum","yffs_finance","YFFS",18,"yffs.finance","304402201bd5f223ed2b54d69ee3133d9664f230f64cb40463ceb8c9a71a61da19149bd5022042543c76f14cb27501c4209e2d7dc31102e8ba6909330b8a8825f3ee871d9bf7","0x90D702f071d2af33032943137AD0aB4280705817",!1,!1,null,null],["ethereum","yfi3_money","YFI3",18,"YFI3.money","304402206ed46c26864a8f30cc94a10d7f80941e45d447f6ca733d6d78749947aec6785f02202cf373b7a17906de08f8015eb90389e67feb28070f444addcae760542e067fe8","0x09843B9137fc5935B7F3832152F9074Db5D2d1Ee",!0,!1,null,null],["ethereum","yfi_credits_group","YFICG",18,"YFI CREDITS GROUP","3045022100cf22fa143854f7b27ac48d2294fdc4d3360b5d5acf33baf2e5f1196eff07f6c202201eecb7a4b297f05630757f96db719e1fade09963222c5d111089bb50f2c93edc","0x9080e92296a176883aAB1d7d1B7e50BC055B0cAa",!1,!1,null,null],["ethereum","yfi_mobi","YFIM",18,"yfi.mobi","30440220630735a3a2a60036ef432638e20aaf908a3033c11eef40677d7019d918e6257a02207f92e852cbde5d9bf5fb65e7610b216d538438302a97b6afbfc98cd4a7ddd5fd","0x2e2f3246b6c65CCc4239c9Ee556EC143a7E5DE2c",!1,!1,null,null],["ethereum","yfi_paprika","YFIP",8,"YFI Paprika","3044022008d00a7f0ef89f5991d069cbf69c7ff093fd6b7f2f98682a313e100e15709f9d02204f230ad3f899ce017e336c802263e8931510e310897dfd811750f2fd3d5be91c","0xB9782532FA7062A6F73df1CE71d75c0E16046ebC",!1,!1,null,null],["ethereum","yfi_yvault","YVYFI",18,"YFI yVault","304402203ca13ddc5f5323c289419a1c1e411abeb8bc70306af2cd643c5b571083e6c2810220291c8de86e3ec0a765200622283935ae64730ae3c86d96c88bfc5aee3063b586","0xdb25cA703181E7484a155DD612b06f57E12Be5F0",!1,!1,null,null],["ethereum","yfia","YFIA",18,"YFIA","3045022100cfe9195e3cb5ff673a4238e2bc5289e72900e6ba7f53a87d684ea5a1553257c6022017c0373ce5e15014d368bc00c0a96a786d1d61668ff07dc1bca287c289cb4c33","0xd778e4F5450eDE47289fEf874a37B79Db77c4CF1",!1,!1,null,null],["ethereum","yfibalancer_finance","YFIB",18,"YFIBALANCER.FINANCE","304402204c22da7f862a76e1599b3744c80f357fa94dfe0be1b3f9ca214b93fa3449bb6002206ad996e85bb648f81a8624273d0bd19aae4fe9665e8cf90b325d62adf507fc03","0x03829f5675F3b51D0F8C2A74417a757625aCF22f",!0,!1,null,null],["ethereum","yfibusiness_finance","YFIB",18,"YFIBusiness.Finance","3045022100d47a75a5f9d4ed5da6de0443b366907ab46d643b11e5a91d4c1fad3ef4b7a8230220241d22a65ff1e0cc838c7127b8aa5b155f09d56d067b936a98bab1bbf6d1df9c","0x47632dA9227E322EDa59F9e7691eAcC6430Ac87C",!0,!1,null,null],["ethereum","yfidapp","YFID",18,"YFIDapp","304402205778601b0611f735e0c4520347a646b33f442a5d33681374dc83a1df9c6fe45702201e4b1e5d6645549ab19c427851272e4223520aaa04daa0218b1179ea3af1a22f","0x61266424B904d65cEb2945a1413Ac322185187D5",!1,!1,null,null],["ethereum","yfii_finance","YFII",18,"YFII.finance","30450221009866626e09959bec7b873e1051322712fb968bb9e16da8e68772de26f62018ea0220404b178dbdecac240c0c459548df66d90bcc421794199f7bea16434ea4fd6321","0xa1d0E215a23d7030842FC67cE582a6aFa3CCaB83",!1,!1,null,null],["ethereum","yfii_gold","YFIIG",18,"YFII Gold","3045022100dbc26d57a4c5ee673b1f540c90f7a5cd1796e11e0f38301795cfa57a5ec75bcc0220184e00738aefcfc899e67ce9c7f0e8d5b8b85451068c84c4b0560b46c53e6f36","0xeF8bA8cBa86f81B3108f60186FCe9c81B5096D5c",!0,!1,null,null],["ethereum","yfiking,finance","YFIKING",18,"YFIKING,FINANCE","3045022100a4b51b9fe579dce0ed8cdfc4d6aa509146e617a85afd8cf8ff51a345c6c6099e022038991a0ba7937b074bf0e9a83fe25d91a4c2c09d9db1a0caa8380d77d5f9d2cd","0x5F7fA1a0Ae94b5DD6bb6bD1708b5f3AF01b57908",!1,!1,null,null],["ethereum","yfilabs","YLAB",18,"yfiLabs","3044022013bdc0bef1efb09ffe7f13c62a2dbac134e101d832b64caa9a5273561d3b0f2b0220518946bf263601ec69fe51137e9c7a1f0cf1217235e70e97a576f276bc156c26","0x454CB9D0845bB4a28462F98C21a4fAFD16ceb25f",!1,!1,null,null],["ethereum","yfilend","YFILD",18,"Yfilend","3045022100bb8c644e2bae55c78dbe7b4f3e90cd4dced1b1bbc52cfd25a434ae73c18f436e02200cc4ec5e2650bb9627c55301f957d8420167a9a4fffd060c08ff224c559ecb5b","0xCec2387e04F9815BF12670dBf6cf03bba26DF25F",!1,!1,null,null],["ethereum","yfione","YFO",18,"YFIONE","304402200a76003cd379791d05d8c4a5d8e63eb9c1af6ed205c6d16cf4cc0bdf0973c895022051104ca34bc4cc9fec76f36fb2a861f86abf9f80448e7399dc5697e618fd19bf","0xAc0C8dA4A4748d8d821A0973d00b157aA78C473D",!1,!1,null,null],["ethereum","yfiscurity","YFIS",18,"YFISCURITY","304402207d99135fdd720e53ec79814f23b149b697aadce6c305a18c3599628a3b44375102201c91f3b2fd4e3dd37fb9c3a3cc38e2f6a27af759b73a2cf109df68fcac6b3ca2","0x86965A86539e2446F9e72634CEfCA7983CC21a81",!1,!1,null,null],["ethereum","yfive_finance","YFIVE",18,"YFIVE.FINANCE","30450221009f69f03ed19207c3b0f9fc0152ba8f773ddec460a01ecb3513966d36300fa7e3022018f79ef87c66280e40e3374421f25840a8d4322710ff61fae181bd706ca79480","0xd3E8695d2Bef061EAb38B5EF526c0f714108119C",!1,!1,null,null],["ethereum","yfix_finance","YFIX",18,"YFIX.finance","3045022100ea8a4dad52747419fbac5aacbeec441633d4392cb1baa247609e412a1ff6678502207ebdda3a84155e758c0600a8b727cb86240ec4e5bfa20555cebde6b1fbdda38c","0xa4f779074850D320B5553C9Db5Fc6A8ab15Bd34a",!1,!1,null,null],["ethereum","yflink","YFL",18,"YFLink","30440220303cd696e2815b365ff7a6dc9b5bc46233b19b31486451dfa45b6f1c72deb7fd0220383b610a208f98a69152d0f55f732a0b117f7ab9927b6c8347a4bef046cb295c","0x28cb7e841ee97947a86B06fA4090C8451f64c0be",!1,!1,null,null],["ethereum","yflink_synthetic","SYFL",18,"YFLink Synthetic","3045022100baa1c3533229175cc35fc995a0b32aea69f25b284e804c8b631b84e57cd712350220722ba80af2942c4673882ed9e22006bb0dee358ba50ab70801cf242ed0144da9","0x8282df223AC402d04B2097d16f758Af4F70e7Db0",!1,!1,null,null],["ethereum","yfmoonbeam","YFMB",18,"YFMOONBEAM","3045022100f54af4dbdc720ba052b7be88b301ef5ee4e5278977c07af8b79ccddd2d28c3ac0220057dbec8a4e7731c7060eb5c2c4583ba7152b81ae128c382aa93da8c0defed6b","0x7aFaC1D878C66A47263DCe57976C371Ae2e74882",!1,!1,null,null],["ethereum","yfmoonshot","YFMS",18,"YFMoonshot","3045022100d91c0e676ee4da1c9b783b9646cf47bc4f6e226d716d0095e78298b0c1f58c8602206b2b386c326409f7672f25d0a3495b0348b7305d0cec35314594142172bc38b0","0xfef3bEf71A5EB97E097039038776fD967ae5B106",!1,!1,null,null],["ethereum","yfos_finance","YFOS",18,"YFOS.finance","304402206362bfbee12eeeed58b836d20ba5c3eb322a001b8002776dd92dedee615ac4db02205ecd324deddd937a82f0cce150d1337220dfa2ddfcc8f89ed11411d337cdce99","0xCd254568EBF88f088E40f456db9E17731243cb25",!1,!1,null,null],["ethereum","yfox_finance","YFOX",6,"YFOX.FINANCE","3045022100ee4262dc1dabd18c6df721010dde74b5ff5afe5b33072fb68a6b647ffeb6836c0220660180eaa0d6413040bf75f90ae32addae760391c6154eb325fe8c1997eeaa74","0x706CB9E741CBFee00Ad5b3f5ACc8bd44D1644a74",!1,!1,null,null],["ethereum","yfpro_finance","YFPRO",18,"YFPRO.FINANCE","304402202f37406c12802e322d15d05de3bb537dbb1b0c3fd184de1a44590415a5d5e28f022038758fc29b512109fa8557e07367096fb981f3fe6dd4317c96825b7c6950933e","0x0fdC5313333533cC0c00C22792BfF7383d3055F2",!1,!1,null,null],["ethereum","yfrb_finance","YFRB",18,"yfrb.Finance","3044022010b6626a7fc0fad3f3be632ada2fa5685f90b156cdacd60d8a531a3384fd1016022016deea1ccb9c7388c3efd145eac03cb4e185c7db7d656d927f6382b3d3e6336f","0x5D1b1019d0Afa5E6cc047B9e78081D44cc579FC4",!1,!1,null,null],["ethereum","yfscience","YFSI",18,"YFSCIENCE","3045022100e6af53499e37f30a2c702040dc6ba6572b0bf31932041fa4e83d90de3fc06a2a02201a47435721e0d5bb28810126b418448fe0235c42f11123bf7cd6a99d16b3aff8","0x1DF6f1Bb7454E5E4BA3BcA882d3148FBf9b5697A",!1,!1,null,null],["ethereum","yftether_io","YFTE",18,"YfTether.io","304402200d3c75fba4d4fa9aaeda587b9ad0c391bd941f2049ab5e598b73046481aed611022042b3e0a551ff08e8fa70045c839280d4150f151b564f7a42c7d448c91e25b258","0x94F31aC896c9823D81cf9C2C93feCEeD4923218f",!1,!1,null,null],["ethereum","yfvalue\xA0","YFV",18,"YFValue","304502210087b31cb040ab4ae04a9d28ec33b87e434df4362d43f705773cbc6cca98cf473602202c909cca82a0cd660708101de22fd2afec9013b28ee3c03f3378682cafe3f02e","0x45f24BaEef268BB6d63AEe5129015d69702BCDfa",!1,!1,null,null],["ethereum","yfx","YFX",18,"YFX","304402203dff7ec93b09ee5147ea40655e17db8e056c8ac5cd3c5780646e4d2a0f12c5bb0220792c0d9fc58c85195c5465ad6bf703267cd9a82d194338b03767b3f492b2a891","0xF55a93b613D172b86c2Ba3981a849DaE2aeCDE2f",!1,!1,null,null],["ethereum","yggdrash","YEED",18,"YGGDRASH","3045022100c8a0106861fc854c4350ec86c3e44d93a2e0d6a1d130a3fd49a7b9e4583a4ee30220479f53c250f8f7a8c363c9b7cc42f94f192679d293482e76ad65724e95c7817a","0xcA2796F9F61dc7b238Aab043971e49c6164DF375",!1,!1,null,null],["ethereum","yi12_stfinance","YI12",18,"YI12 STFinance","304402205f3079beb404ebe5cf9e0a66d3817b4ccd3e477bd2c51604b1f5ebb62160c8c70220055076ea8092e44fa19e8eb19c7b43bc4aa8712c4b40d22ead6e1befb818f6d0","0x03E4bdce611104289333F35C8177558b04CC99fF",!1,!1,null,null],["ethereum","yield","YLD",18,"Yield","3044022031785d79d00e3abb396fd956d99c2b957fde29099d02ee2a49fb9c27b90b2cac02204dffeca1ad1937b342b4b7ff0d15613a2b31935816bcc12b3bbb4a36c0e40936","0xDcB01cc464238396E213a6fDd933E36796eAfF9f",!0,!1,null,null],["ethereum","yield-farming_io","YIELDX",18,"yield-farming.io","30440220702f4504bf699807735e20755f8f85fd45076df6f912e2cb86f06f817198788d0220586c2121c0503e39547122b56ba0bb8ae069faad4151fd3cec6ddaa25fe40148","0xE52d53c8C9aa7255F8c2FA9f7093FEa7192D2933",!1,!1,null,null],["ethereum","yield_","YLD",18,"Yield","30450221008f1cd28af909ac03c95742cf1595f526efa6c2332d486406b2f2b501c1e04ec202203e9fc71cca587bfa8208b47bf85fa57ec2cc8c5d646a07a595c62632b4acc62f","0xF94b5C5651c888d928439aB6514B93944eEE6F48",!1,!1,null,null],["ethereum","yield_coin","YLD",2,"Yield Coin","3045022100bbe2866b062046c2fae097b6f43c413560e7e30b82017fa1790936bb0286ffbc0220581070481510c8c8c40c587f2c52f8df0e066bfd42cb639e3e83b5cf6ce29521","0x7F927f984177323c4ac49E6b1d398E40cd1A78F6",!0,!0,null,null],["ethereum","yield_dollar_[renbtc_jun_2021]","YDBJ21",8,"Yield Dollar [renBTC Jun 2021]","304402204e163dba535e615947fd1ef6150a618186f25393e00c1824af9d7e26e3e82b7a02206f502becc697b43e45e5945780e32d96d072354e127776707c7f3a5b75537077","0x4b7Fb448dF91C8Ed973494F8C8c4f12DAF3A8521",!1,!0,null,null],["ethereum","yield_dollar_[weth_jun_2021]","YETHJ21",18,"Yield Dollar [WETH Jun 2021]","304402200895b6c3b93ccbc258dd8dce3ab30fff6b18ead292ed163a3945fa3bbeed25a902206dad1365e7f9a246105d3c0aa03ac5abf0dd3e53ea12b9ad9ba08054bf3fec6a","0xcBE430927370e95B4B10cFc702c6017EC7abEfC3",!1,!0,null,null],["ethereum","yield_farming_known_as_ash","YFKA",18,"Yield Farming Known as Ash","304402200fe4c409091675db0b70b4e2285fe259be1ca0ec96b78cdbcf3f33adbcf792ec0220623f6ac442b10bc00bfc12463cb08611ca582a5dc192850186fa18428d22fa73","0x4086692D53262b2Be0b13909D804F0491FF6Ec3e",!1,!1,null,null],["ethereum","yield_farming_token","YFT",18,"Yield Farming Token","3045022100b4df807548266cb6b2c595ef1eab463d2cca9c0622598b25c36abd7b655a26c4022040af7498a404139ffcdd0e65b0b944153b6f86ad6d9b5f05f75c7ed8859900ae","0x26B3038a7Fc10b36c426846a9086Ef87328dA702",!0,!1,null,null],["ethereum","yield_guild_games_token","YGG",18,"Yield Guild Games Token","3044022013f5194cdf2ca63ab4243b83ed3a09168b6e3649602aa20827636c68cccb144202202ed53a749e140491bf31d4e544e260964b16e8de158d78fa498338fdf36e0d17","0x25f8087EAD173b73D6e8B84329989A8eEA16CF73",!1,!1,null,null],["ethereum","yield_protocol","YIELD",18,"Yield Protocol","304402206139a3bb7a2a722a2dab47d119e4ab273661bfdceb8c802aa7b4e6b2414e4fc302200b1ee0f6866bee95905db1747dd4d21519af65b686918746a32fb2802b54d85c","0xa8B61CfF52564758A204F841E636265bEBC8db9B",!0,!1,null,null],["ethereum","yieldfarming_insure","SAFE",18,"yieldfarming.insure","304402202c27159728cb83f7e19d84fee80c461322253a709d1aaff8f3a2f3ca0dca7b01022013512c5532ede9cee8169be1dde1edf1e6506ddaa09c3b1aeaf558bb87e144fb","0x1Aa61c196E76805fcBe394eA00e4fFCEd24FC469",!0,!1,null,null],["ethereum","yieldification","YDF",18,"Yieldification","3045022100b37ffe9c3b4b9db08bc7b44b1a4856b2a39a4ed07b33fd0815ee0d8719f231e302205bf77043a34667070e1622a1033b3f1fbbb10f69343e360372e948e75fd8c7fe","0x30dcBa0405004cF124045793E1933C798Af9E66a",!1,!1,null,null],["ethereum","yieldly","YLDY",18,"Yieldly","30450221009adcc2e2c051ddedb38e20ce78876df747c6d4b2f28a3144c48166f76dfdd3ec02202f41306e50bbb094ac811dba8f61074486984a71a8372f19de7fa4aa90af9fa0","0x88cb253d4C8caB8CDF7948A9251Db85a13669E23",!1,!1,null,null],["ethereum","yieldwars_com","WAR",18,"yieldwars.com","30450221008d99cbfb50aebd85171422a184e9feb6f59af0086bb5b291b71375829d198ca502202af1babc678fae9238c0072baca75b855897e165511f793f6c15e3349cb7f99a","0xf4A81C18816C9B0AB98FAC51B36Dcb63b0E58Fde",!0,!1,null,null],["ethereum","ymax","YMAX",18,"YMAX","3045022100b416d60c3fd15a84f18cd77c72246e279ca6039bde12746fe8f0234de3288174022027756c81ece4efd15e695ee0892f72157063db7959d42a0290480c1ef6b45456","0x062f90480551379791FBe2ED74C1fe69821b30d3",!1,!1,null,null],["ethereum","ymen_finance","YMEN",18,"Ymen.Finance","3045022100883abbf8efcfca57de8c06764aeb1e79e0ca8524c4b7ed97a242db4c8896ce6702202f23f827dbcfdca0d4500bc1cf9c2fd35e386818a1f99c5fc8ae3cfea6423ed9","0xd0c59798F986d333554688cD667033d469C2398e",!1,!1,null,null],["ethereum","ympl","YMPL",9,"YMPL","3045022100cfb4865a1971089e51f7721d3cf7594b6c18c38b5a3a07d63386522b40e0e5800220545073a484148d95ee1af7f0292e7aaef73efc32d5e7d1bd494fcc3000643ba5","0xb7ba8461664dE526A3ae44189727DFC768625902",!1,!1,null,null],["ethereum","yo_token","YOT",18,"Yo Token","3044022023aa27e46eb9e9dd1884708b540915c165ced80f19234d6eabca838d86e951fa02206769c80021bf3e39b59e597e9019b5ea0e30d79954580e72fe707879780d59e2","0xeBF4CA5319F406602EEFf68da16261f1216011B5",!0,!1,null,null],["ethereum","yoda_token","YOT",6,"YODA TOKEN","304402205a9b0efdc47e82b026e98b3e58e549ad8d62ff4f57b981c8bb179f4affd8530002205707381d4cdd87805ac8f27c994c799896b2b7f8994a5a98899883c942382900","0x9f978Aa425148CdD9223eb175446a877B86727Ff",!0,!1,null,null],["ethereum","yogoo","YOO",18,"Yogoo","30450221008a57ced767067c41b3817c173209755841d2ec328e818e628ea8cf701bd1615002204f0d91299856c8f3c17cf7e36088eb8bb4587a138e4556d05f6e0f0d04b249da","0xC7596f3FC97AE603e1D7FfA61e6eFb7B6a59Bed2",!1,!1,null,null],["ethereum","yoink","YNK",18,"YOINK","3045022100b1ce9b928ec24da3040b014c0a2f85c3095e6c074fbdafbc5e47829843f8f97c022052626b3fa9864ffc7890854c9039bb8da963053d509681fbae4058b36b574c9d","0x87C00817ABe35eD4C093e59043fae488238d2F74",!1,!1,null,null],["ethereum","yokcoin","YOK",18,"YOKcoin","3045022100a2a8e9d4f5ee0c98659ebd3cb9af5e1787c836fd5ba19db63e320eff57ab434302203fbdfca65665e1aa6c7a9f281984a5f1b360353017793841290cb7f55608e67b","0x05Fcc72CFb4150AbAE415c885f7a433Ff523296F",!1,!1,null,null],["ethereum","yolocash","YLC",8,"YoloCash","3045022100a7b73841d2c67b501420e97fb22d3a86733c2e1fe719b703415cf854b09d5a7e0220792441dbb1db792e4af9ebed9bb5efb46e2abba066a980aabf8af0068e475fab","0x21d5678A62DFe63a47062469Ebb2fAc2817D8832",!1,!1,null,null],["ethereum","yop","YOP",8,"YOP","3045022100ad296e4bdf5c80e3de454162a5f4617a46bbbf71e03bc264fcf5d731d18745f502205d0ec04f3c7073431f3cb28a7cc2c78bf190ddc1cf9b0ee4a5cb76ecb1df92bc","0xAE1eaAE3F627AAca434127644371b67B18444051",!1,!1,null,null],["ethereum","yottacoin","YTA",18,"YottaCoin","304502210097012019211ca092929768c8662c35e5d5daac604af5fe8742e76e496ac54b03022044b1fcb36b42d06c60b0356d16e10e3324a69fb98959dfae7cc2a978c4767470","0x5EdC1a266E8b2c5E8086d373725dF0690af7e3Ea",!1,!1,null,null],["ethereum","you_chain","YOU",18,"YOU Chain","3045022100921642eac29edb0427daa3733e0d1ed0335f5ab7f603230b76b372b0c56fdf8a02204af1f985c960e92ebcc345c027e13179acd75bd159e1770798a970c3adc6f8a1","0x34364BEe11607b1963d66BCA665FDE93fCA666a8",!1,!1,null,null],["ethereum","youcash","YOUC",10,"yOUcash","3045022100d05954c10fbf58920db21232ede7ebf54c8003f58d18f4c15c6b7f3d010f3062022053c3f3b340d306c77acd1e9d3498e2bbaa470a0596be6294ff81b4c82fe96dd3","0x3D371413dd5489F3A04C07c0C2CE369c20986ceb",!0,!0,null,null],["ethereum","youforia","YFR",18,"youForia","304402200db646182524aa752eee877f4fbd5849235a8bcdb3320dc163faf8073aae29de0220138727663d76016592fa799ebc7152f4e428f17aa4fcfc77c86ca4edfd740786","0xD6940A1FfD9F3B025D1F1055AbCfd9F7CdA81eF9",!1,!1,null,null],["ethereum","yoyow","YOYOW",18,"YOYOW","3044022051e58bc695796df9ab5e3297c3279591b09d67acbc7e471793b75539d3497fe1022007608a61e55c8406b24917a9ffecb76abb0ee1bd8c663b1962342d2191755cae","0xcbeAEc699431857FDB4d37aDDBBdc20E132D4903",!1,!1,null,null],["ethereum","yplutus_finance","YPLT",18,"yplutus.finance","304402205c76eef995a891f74a4152feec3cc14203960f38707d1fe0ba45046c7f383e6c02204c7287c1cf7b6569592a734182ac65810e73c41d4b1816ff49ee86df14608627","0x40E7705254494a7E61D5b7c86da50225DDc3DaAE",!1,!1,null,null],["ethereum","yrise_finance","YRISE",18,"yRise.Finance","3044022049d807a1c9b21ffff07f2b3d11867450dbce4040d0608f74cce57f025b8ba207022055ddc0c6a735dd3d7ee773238f490c3c35be914fdfff8b55f900c0eaeb9af1fa","0x6051C1354Ccc51b4d561e43b02735DEaE64768B8",!1,!1,null,null],["ethereum","ystar","YSR",18,"Ystar","304402201338aaf95f290ce10a0f4ed194d1a04c59e5209b68da1890d667f58fde6b71b5022024ada75b76e27e91bfbf0b71ed6bd1828acb7b89afa43d2c1c3c13fa9a89a0d0","0xD9A947789974bAD9BE77E45C2b327174A9c59D71",!1,!1,null,null],["ethereum","ytho","YTHO",18,"YTHO","3045022100fc6dfa2a6ac76b94582ab47727c4ee8261ed3112d2f489f2877076cdfb2b04f3022023c725d890e4e64d9db98af1b6ae32a66ce16b61916fb6ed1f1cb5eb177ce5a5","0x48cf0E2eCA22EAe0AD33feE16A5CB6E62207A8Ab",!1,!1,null,null],["ethereum","ytsla_finance","YTSLA",18,"yTSLA Finance","3045022100f916cb245b778a5a8dcec9a95f37d1cf822748c7b76281983493a364d15c522e02202b4ddd8a65179baae8cf7dd2811cb083db55eb3e2310ac52583b0d99ff8fcbec","0x5322A3556F979cE2180B30e689a9436fDDCB1021",!1,!1,null,null],["ethereum","yuan_chain_new","YCC",8,"Yuan Chain New","3044022005fd300cf95814b3c432efc0005d2ddd2d9ff887466937b4cbe64363daa2a862022055e910b610090287371f875697f2e4a54a3339b1f0444262a5b4eca19316f51a","0x37E1160184F7dD29f00b78C050Bf13224780b0B0",!1,!1,null,null],["ethereum","yuang_coin","YUANG",18,"YUANG COIN","3045022100ea16995d9d101d505acf35f95c9f9e7104e9879e0361313a359248f560e3c0b202202d3f6885580ce3a354ab0b68708e3e23bd0e7ccdb947588245321ef7613b30c7","0x8aE005C97Aa6853478C7f373b1D0F72AA92880A7",!1,!1,null,null],["ethereum","yui_token","YUI",18,"YUI Token","3045022100b6534741bebf0ea397416361b3606bea7505dd241ea94f3c66df09ac19a32d200220789954d51c9a8a3a6ef327f693de5f3b748c8d073273c5d0928cff3457e800e7","0x4c10BD19688B906665fBd53415f279F34b44ECE7",!1,!1,null,null],["ethereum","yuki","YUKI",8,"YUKI","304402205a87f864ad14c8b7ffb94b8a5e74021774de272d964f05fc1dcebbb49fb5b17f02205dadbadca25079d5a02f556ede3aa0561a2943ce1c57f2136ff85ae2fae95901","0x5AB793E36070F0fac928EA15826b0c1Bc5365119",!1,!1,null,null],["ethereum","yumi","YUMI",4,"Yumi","304402205d3f6b945eded91ffb6bb19aeb9f05ee9fdb743ad90184a164c656bbc1f54dd902205de3a6d0c289a0454593990c89391f8d0e193a6e459e6d56edcfb02bf63f0fdc","0x25859743ED0861665611B81E47682e889b48313B",!0,!1,null,null],["ethereum","yuno_finance","YUNO",18,"YUNo.finance","3045022100cdf98de29d483ed9d7bb165781b20e84a4db0f080f872521a66ad3080ff84bed0220384857ab365a955c0ca82baf95514fb6c5853d422a0c1e90761ac069ae38f7ca","0x4B4F5286e0f93E965292B922B9Cd1677512F1222",!1,!1,null,null],["ethereum","yup","YUP",18,"YUP","304502210096f7066153f613281281eec0d180c3c80ca93dfff6d18ccceba484562dbbea3802204fa5d49a0f8c34ca7d275d87c04543ef12f6facc9291c2f14334164ffff0d0c8","0xD9A12Cde03a86E800496469858De8581D3A5353d",!1,!1,null,null],["ethereum","yupie","YUPIE",18,"YUPIE","3045022100fe1797eb33773ee2a13fc99fe845e56c247e7d06ea2eee6fdd14981ce3d0487f02201b5ebb09d92903798a61ec3d4f6e7551312671c10846f86e7d115af5369b1961","0x0F33bb20a282A7649C7B3AFf644F084a9348e933",!1,!1,null,null],["ethereum","yvs_finance","YVS",18,"YVS.Finance","30450221008f57dd5f046241d04c7096d77f7d8e75a5b674571f47615d82e69604a79842650220646f9d8cc4d69bbe581fef703e099fe1f644168102078e822421233e8e87d44b","0xEC681F28f4561c2a9534799AA38E0d36A83Cf478",!0,!1,null,null],["ethereum","yyfi_protocol","YYFI",18,"YYFI.Protocol","30450221008fd16a0de48da5bd9f2d76d1e1a3c6a0129e09a31a385b35d47bd6c4724b2a1b02202dbca0a4820bceb9ab72325d58f59ad121d5b43e407638b37b68307d55cdebcd","0xaF20b44C1C651D1d29cFB916eE2A0630B828Eb7A",!1,!1,null,null],["ethereum","z_com_usd","ZUSD",6,"Z.com USD","3045022100a49af5b5ced860e15b4de9c2f1457ab7a6070853a9d5be60c8fad2e5be574a3202207f22416036a3268437c32185842e6ac7dc5645e08e1fe7c4881eaf37282df0fc","0xc56c2b7e71B54d38Aab6d52E94a04Cbfa8F604fA",!1,!1,null,null],["ethereum","zap","ZAP",18,"ZAP","3045022100f7f3d6bee402e4a44a1a1b52ff5082999bb5c74cb83ee5e6f574076aa4dd0502022071c4e5594300df66d17d5d844aff55ebb83fb45149ac78ba61a9e195462ac8d8","0x6781a0F84c7E9e846DCb84A9a5bd49333067b104",!1,!1,null,null],["ethereum","zbank","ZBK",18,"ZBANK","3045022100952ef7d2b47b6fab20dee0032deaa43fc4e05c67f968c3f2f538d2d75d28282f02204f8e9d9be5870750cee9712ae97f4ec90a7abf24eb731ed7554cfbd6da3f8a03","0x29257908879c5792F1bb25449A7209205434DC3f",!1,!1,null,null],["ethereum","zbtoken","ZB",18,"ZBToken","304402200e1a554ced9a858988ea0788102e25b8ba82f9402ef8ce8a061eb6aea93f78000220348e4d1dc97a09ce6da4c5febd0fee42a837aa6eda8e81197bf9828520b95c11","0xBd0793332e9fB844A52a205A233EF27a5b34B927",!1,!1,null,null],["ethereum","zcnox_coin","ZCNOX",18,"Zcnox Coin","30450221008ebb5c997bacf8d215da76a354d591fa25dd8b8aa72139425153bfb9a7bcd33a022038c19b111c00b54445a6a54fc31f589a5629f645e5eb4859e8c35217a200ffd9","0x8b83116E05F722554e1089b9850e731ee20dD692",!1,!1,null,null],["ethereum","zcon_protocol","ZCON",18,"ZCON Protocol","304402205e6a9dc38f419b17b6c2462c13e2f8095e6fc8496074a3ed5abbc7fde4e5ff18022016f14895d274d7b493c6735dd7c42907767876fe3873423dca1d3bcd4012b568","0x4992D8AC40E55350330102aBf2dEBed8864E7Ba0",!1,!1,null,null],["ethereum","zebi_coin","ZCO",8,"Zebi Coin","3045022100e6a7ab3410b607e1d34799031af6ed53a8e2ef917036564810946e33c6978333022055ba268278269cf99eff416043e3c4c94cc3b164c188a9ea4f8cfa7415bc8815","0x2008e3057BD734e10AD13c9EAe45Ff132aBc1722",!1,!1,null,null],["ethereum","zeedex","ZDEX",18,"Zeedex","3044022053a16c828c4baed44ea58eaf62886fb2b236a0d51276d3f5e9d516655d8a2986022047ef0715e83479405e559ad143ae048417740c9f4df2a0e9ebe67a48b7d7da11","0x5150956E082C748Ca837a5dFa0a7C10CA4697f9c",!1,!1,null,null],["ethereum","zelwin","ZLW",18,"ZELWIN","30450221009d724cce985a0320cfa1a5e2cfb7af8213a9b2f682114fe06de950347dc4b40502200465b63cdcdcd75a9b86efa91753d4a5abf0eef4e6c9c43e7aa68b6b45039686","0x5319e86F0e41a06E49eb37046b8c11D78bcAd68C",!1,!1,null,null],["ethereum","zen_exchange_token","ZCX",18,"ZEN Exchange Token","304402205e49e00ef74942c0afee3cae6db6674fafd05a59529a318cf64adab0ade837c102200af5e1455d623842994809bab3d09447ed61ecc120667bedb72d6d3178b93731","0xC52C326331E9Ce41F04484d3B5E5648158028804",!1,!1,null,null],["ethereum","zenft_garden_society","BONSAI",18,"Zenft Garden Society","30440220328f8630beb1d8b4b8d03ad692ce0df80f0befd0f608cf5930090924015d44100220662d98ad4d188ec0e471a4c71763e6340d67b1a9fa60dc74abd2b3d4e4eebfed","0xf0fE1A87aBf12099b77352BdCc10F5A87067b290",!1,!1,null,null],["ethereum","zenfuse_trading_platform_token","ZEFU",18,"Zenfuse Trading Platform Token","304402201284a620d779065ac746af4bdf8e61bbe6169598be8d1a75040cb9d369261b97022003bc71f419f593a9787cabc71ed391bd03defa4442c6b85505eda096f68d3faf","0xB1e9157c2Fdcc5a856C8DA8b2d89b6C32b3c1229",!1,!1,null,null],["ethereum","zenswap_network_token","ZNT",18,"Zenswap Network Token","3044022068e182960000612b2bd3e82a49d37f10f2c8f3d0c01c7fcba20db75e241060d0022042b769f6c796e57a3ee41781c8c2dd04ebdfe0914fed55ed06c658dd303433ee","0xE95990825AAB1a7f0Af4cc648f76a3Bcc99F25B2",!1,!1,null,null],["ethereum","zeon","ZEON",18,"ZEON","3044022042b5e3e9305e7d9b935b13ff67c2041ad901501c3db0cba39d833e99641919bd02201b44e4c6210265fec565f94f79fe44b7c210ed365bce7803aa6dafb53043ec92","0xE5B826Ca2Ca02F09c1725e9bd98d9a8874C30532",!1,!1,null,null],["ethereum","zero_collateral_dai","ZAI",18,"Zero Collateral Dai","3045022100eb9598af6bade06bf177cf22bb6ecd4edfeec164810969910d0a7f89ba979324022003d5cbe36e9f3661f70037ce2abee25a7ee741405d0cf32bee2cb8d70039ed2b","0x9d1233cc46795E94029fDA81aAaDc1455D510f15",!0,!1,null,null],["ethereum","zero_exchange_token","ZERO",18,"Zero.Exchange Token","3045022100d1ae43f2285a1e481220eaf8023fd8451c7c79b7f0e42a9139cb7c265348ddee02204a6d856dec37cacf4ca538c169fae7c61072449f8af4e7a23cf58665937b06b6","0xF0939011a9bb95c3B791f0cb546377Ed2693a574",!1,!1,null,null],["ethereum","zerogoki_token","REI",18,"Zerogoki Token","304402200ed3f2d2e5641989a754e0262bd00b63ca550928067b0ad79856d3b8db459eda02203542a90ed6cb9142f2ae7a074b8c8795c2895f1a9523f14dab2908e99562c8bb","0x011864D37035439E078d64630777Ec518138aF05",!1,!1,null,null],["ethereum","zerogoki_usd","ZUSD",18,"Zerogoki USD","304402207a477a0aee2f36a4f9d442ec3d9247206a7f34898d21700d2198d14557dfc837022058c4e9e8485a4f833de88d81e496d227a723c7015e7e6baaff91aa4791b68bfe","0x76417E660DF3E5c90C0361674C192da152A806E4",!0,!1,null,null],["ethereum","zeroswaptoken","ZEE",18,"ZeroSwapToken","3044022014adb7e8dce452cce1be4a8aed56e64319ac787b67fbe7eb01cf85fb86f8147f022007e642f042d5853e832031da02687e80e31648dad888e51bdbfe41e99c538162","0x2eDf094dB69d6Dcd487f1B3dB9febE2eeC0dd4c5",!1,!1,null,null],["ethereum","zeroutility","ZUT",18,"ZeroUtility","3045022100b9fda248ed10dba97d74116abda42069012610289e6d23939b3403f203c6ca120220510edb5f2a61be310184ee8f0cd09c5231a245ac92d4f28f34b10aa601808b6f","0x83F873388Cd14b83A9f47FabDe3C9850b5C74548",!0,!1,null,null],["ethereum","zest_token","ZEST",18,"Zest Token","304502210085adcaba43cede4f806897de962a872baebf4d200185bfd7aaf5ac211701e6dd022065ee3d7d6e42159de2138cd350d74245ba206757a48caa7018e21e7c2102b50e","0x757703bD5B2c4BBCfde0BE2C0b0E7C2f31FCf4E9",!1,!1,null,null],["ethereum","zeus","ZUZ",18,"Zeus","3045022100a84000e567815e137a7e2bfa229d2849848d3721d54da8ef44d5aa41b1fac19102200944d91082a921067d486f964cac9a5c762ee6291d528c45d90b54fbf78de765","0x202f1877e1DB1120Ca3e9A98C5D505e7f035C249",!1,!1,null,null],["ethereum","zeus_exchange","ZST",8,"Zeus Exchange","304502210094947f24cf42578940cf1f869f65bb4eb3886e6f83e54413a475708699502a6d02202c3731bec1c9bab8d51a3873ec2f99adee3ec6320f73afe3035066dc800301f3","0xe386B139Ed3715Ca4B18Fd52671bDcea1cdFE4b1",!1,!1,null,null],["ethereum","zeusnetwork","ZEUS",18,"ZeusNetwork","3045022100bf0af4477ca42bfd9570e45c6a3adb9c0814d5d2faf431f64a0c3c4ba8a4898302205eb8987a48ec9335f3f79c4f9a3a2dc41a6ce859e67cbe12e80ee81c11dc448d","0xe7E4279b80D319EDe2889855135A22021baf0907",!1,!1,null,null],["ethereum","zeusshieldcoin","ZSC",18,"ZeusShieldCoin","30440220213494e8e5e3faad0845804978fd009b307533a0da902eb9d325674acece966402202bd9045327de8b61d1f64c09169a498e2928f847121fac5cfc346a5bf9f7ac58","0x7A41e0517a5ecA4FdbC7FbebA4D4c47B9fF6DC63",!1,!1,null,null],["ethereum","zeuxcoin","ZUC",18,"ZeuxCoin","304402205e6511992e7968052aafab7e1c8c86a8f4efcaba688ff1dcca6a8b9c1a155d4802202eaf3acb2e6771f4dfb66a0b21fbfd464bac033a13e373936fa52862a79551bc","0x6b4689E4514957699eDeB2Ee91C947F18E439806",!1,!1,null,null],["ethereum","zhegic","ZHEGIC",18,"zHEGIC","304402201755c6e3e72c02d346bd72af1b67780aa7dd0cadb2ce3fef8851fbeeaf517b04022051596d5b2b512a45864e234048e5d44aa72bc94b0be2497f785cb163f2e0c665","0x837010619aeb2AE24141605aFC8f66577f6fb2e7",!1,!1,null,null],["ethereum","zigcoin","ZIG",18,"ZigCoin","304402200335c8f172c147b19fb772a82543470ac65338c25547d9a865daaf1b5f18333b022056d5a4da5f58eb13e0fb8556673e819654b7fe9affa23165aabb3eaa6dba5060","0xb2617246d0c6c0087f18703d576831899ca94f01",!1,!1,null,null],["ethereum","zigcoin_","ZIG_",18,"ZigCoin_","304402206ab52810d3411c80350f7afb014cb961ab0a42c757ab860919df1390ea81ec4f02201a92ce43a2afb67feb446a5a6bc410390c853f9cb283874240e6b5d8ccaf6296","0x7BeBd226154E865954A87650FAefA8F485d36081",!0,!1,null,null],["ethereum","zild_finance_coin","ZILD",18,"Zild Finance Coin","30450221009887fceff52be96362536fc78aa68492a3b448fdd64fc582947e89c1ed3238b60220254f36ab489d75b0e0178d092a85793b8a33dba469cc8ea2d3f7d356c272524e","0x006699d34AA3013605d468d2755A2Fe59A16B12B",!1,!1,null,null],["ethereum","zilla","ZLA",18,"Zilla","3044022031d6a9af6132e68aa883554f04359cf79b302adca4fe10e70933dce00f4fa88c022059a1c8cfe4e3ab9f4837ebbd6ed19a41a60d85cd594a7d96b55d606ca56d16fb","0xfd8971d5E8E1740cE2d0A84095fCA4De729d0c16",!0,!1,null,null],["ethereum","zilliqa","ZIL",12,"Zilliqa","304502210095d9894b289463f9cfcbac37e453386bf8325642226ab54efb3609e6063a02b3022071be5cca633cb4bedee31bc7012ac10cdd598712c36ab015aa126c2a5e405b24","0x05f4a42e251f2d52b8ed15E9FEdAacFcEF1FAD27",!0,!0,null,null],["ethereum","zin_finance","ZIN",18,"Zin Finance","3045022100e717f7d5a08236358102cc31f7c2c3ab72a9c3a6439fe5247548fbfbecaacb4502206a0bbc78d8d5ad9466627d3336f69db508a6b5aee411447ccd6471234a4d5d8a","0x033e223870f766644f7f7a4B7dc2E91573707d06",!1,!1,null,null],["ethereum","zinc","ZINC",18,"ZINC","3045022100a5d4b95c4700f76993cd1dc7c195f3bfbbb64d152e9ed677f4b06f206c5e628b02207dd4a1be96977a606d08edf16ee0e9aca592a22f21fe3fd0f1126ef7b9cbf671","0x4AaC461C86aBfA71e9d00d9a2cde8d74E4E1aeEa",!1,!1,null,null],["ethereum","zinu","ZINU",9,"ZINU","304402206a53992f0dc5a83ed012dc0e2d2909b6aea144767ca396014b90c95fe8cf651202203b36631a6bd8762493eb2d637f54fda4f7ca6abbf2b913cd9be6f43ce2d26c2b","0xC5FDf3569af74f3B3e97E46A187a626352D2d508",!0,!1,null,null],["ethereum","ziot","ZIOT",18,"ziot","3045022100f5835c6be7d6724b6be595817220aec7aef481b5555b52ec75ef4febe02efe9e02203d6582ea203e0d5d20d1ff9321b48b46f799727164c892dbd292b4c12b9a5b3c","0xfB22cED41B1267dA411F68c879f4Defd0bD4796a",!1,!1,null,null],["ethereum","zipett_coin","ZIPC",18,"ZIPETT COIN","304502210093958e598aa7e94a65f6e81033da898f541b11980b8de52ae48b7e77661a8781022031afdca7f76b38b77d7ebe4e02e19b958db0c6739fce9afc877e1b6a662666ac","0x8Ef9B898db563d3c6175c2CDdfCe5027C36380fc",!1,!1,null,null],["ethereum","zipmex_token","ZMT",18,"Zipmex Token","30450221008a91ecbbbae5214e25d70d048dc436ad80cd41608f6660f4977d40acc9a32ce802201ed5cea945a98ff85ae5dcf7cdc604c60ce5761370e4858c4998908cd4b474cb","0xaa602dE53347579f86b996D2Add74bb6F79462b2",!1,!1,null,null],["ethereum","zipper","ZIP",18,"Zipper","304402205ae3454709b902075456a85e5e07e391fec6901047474fe7dac4d1c81e243d8b022046f173e1a4f959179aee97c9071afc168decf5001becf981205edf69ef4f3789","0xA9d2927d3a04309E008B6af6E2e282AE2952e7fD",!1,!1,null,null],["ethereum","zippie","ZIPT",18,"Zippie","3044022034eb800a5e8af4012b6a4e0448a170b9f6ff6c702ce3f12ee0a8e9fc8d64fd75022056a27b745f95cc782c2b6b39c7a2de72631b532144ab17ace23b9a0fd6a5199c","0xEDD7c94FD7B4971b916d15067Bc454b9E1bAD980",!1,!1,null,null],["ethereum","ziticoin","ZITI",8,"Ziticoin","304502210085f6453fe4167b272f7eeade8689d2a722f1c5c359073b12b4ada7de8ec3f4cf022054ca9af34b592bd4d9f2252dfb7df6d4d78f122e0d31e747f439c62978ab805b","0x8DD4228605e467671941Ffb4caE15cf7959C8D9D",!1,!1,null,null],["ethereum","zix","ZIX",18,"ZIX","3045022100da3dad7c4cdcee1b77abeae79867bf9faac801eb502e8c6a7d998ee57f61ab1a022075a7a75405439a6eba8fc883de754c0d3d03f459017dcb316e84899b8b076dc6","0xf3C092cA8CD6D3d4ca004Dc1d0f1fe8CcAB53599",!1,!1,null,null],["ethereum","zjlt_distributed_factoring_network","ZJLT",18,"ZJLT Distributed Factoring Network","3045022100f2036dd197422c31d708518fa55d1cf6a8b2a056970907c6290cf16080441a7702206aec81857acdb4041e12dd88b5d6997ececeff431cd9cbd3be421e34e38af737","0xBC34985b4d345AeA933d5cAc19F3a86bd1Fb398F",!1,!1,null,null],["ethereum","zkchaos","CHAOS",18,"ZKCHAOS","3045022100f24b9ff137e9b32d635ba679d0680779f405bffba36783ab0359042925ddaa63022006976a4dc2ac14e40508fb70d08ae0bdbb99b6736b4ddda770dc95001cc8ba54","0xB53dE031602Cd825febe9F2EEDF962cd8CC3805d",!1,!1,null,null],["ethereum","zkp_token","ZKP",18,"ZKP Token","3044022000fb989affb51b77f733ae57aa6f3cbb6a47fa092c7e0f8e68e1d4618a4e2bff02203caf9dd745bd3835d0b96be6c6f89aa07b9cdc3de33bf44a1dedb054b9156558","0x909E34d3f6124C324ac83DccA84b74398a6fa173",!1,!1,null,null],["ethereum","zks","ZKS",18,"Zks","304402201112ab33cb27ec3955b521d3174a07532c4b165ebb2876d922ac865573cd0c2b022004e92beb2a30e85000ceabf48d9c3c523f56d6282c42f7a1b5af4979570f6a52","0xe4815AE53B124e7263F08dcDBBB757d41Ed658c6",!1,!1,null,null],["ethereum","zloadr_token","ZDR",18,"Zloadr Token","304402203c137b33f65bc8e2ea03dae0641e4941f919363ba9ffb42b715353bfcb613bf5022064d3e95d774de9f74386d04466c1107a13bde8befa478961755856a446205fb3","0xBDFA65533074B0b23EbC18c7190BE79Fa74b30c2",!1,!1,null,null],["ethereum","zlot","ZLOT",18,"zLOT","3044022065b11b5e5f16c4841f829149051a0a71251cf1bce73009a0fbc414179df5ff0902200c4338230bc6e7f59c9ade78b2997b1b1785203c3860faa135fd232d6c2d280a","0xA8e7AD77C60eE6f30BaC54E2E7c0617Bd7B5A03E",!1,!1,null,null],["ethereum","zmine","ZMN",18,"ZMINE","3044022004da036669d1b1a30bc2f14848ea955fa62d582b050f6e05bbca138a0a62e261022046841d876b700b81392ba520ac6dc2d0e543c80e98a72fc8a395768a2e153014","0x554FFc77F4251a9fB3c0E3590a6a205f8d4e067D",!1,!1,null,null],["ethereum","zodiac","ZDC",18,"ZODIAC","30440220384f5b104577c8dfd8e2cf820b9f6041fb5fd44901fd6a8d7458b5a0c6210b9a02203b75fd55389b0c6167e143f9ffe246afa1b0a3cfd98ef66a054f89572658ee19","0x1cF402135d7Bd27Dc9d21C03Ae2D8375BC43E9eC",!1,!1,null,null],["ethereum","zom","ZOM",18,"ZOM","3045022100edc69bc6380e543506aa3b2054f3135d3bb98333999f2b3c3838e77aa7a40b8302206d00b351a1b0871c37e6c5014b8413699dfb24311d2dcacb995bd025e0e04bf9","0x42382F39e7C9F1ADD5fa5f0c6e24aa62f50be3b3",!1,!1,null,null],["ethereum","zom_health","ZOM",18,"zom.health","304402207790fa021b334ada7746e68d4f106117f4e0b479cf26c23c8f846cef5c9f262d022020968a6e86532cd592e3214110fa25b8faa9a7c2b5efe580152b36e215c89a76","0x5091aEd52Ad421969254E48d29aa1d1807E1870b",!0,!1,null,null],["ethereum","zombie_inu","ZINU",9,"Zombie Inu","304402200f29a1abafba46b32dbdbc9273493fdd5456fb11f4ce0736cea850fcd2e6f1b8022010b0b9452a3eb76e7671e67c999259eee842e299538a5d96160fe42949084aa6","0xc50EF449171a51FbeAFd7c562b064B6471C36caA",!1,!1,null,null],["ethereum","zoo_token","ZOOT",9,"Zoo Token","3044022035dc92b8379222db15e78968768b7e2e1d6ebea8867ac8f9355c043baca91b6802205c951bd63359f36c1b4f228216672bdca59a30778970405722ded33180eef741","0x1341A2257fa7b770420Ef70616f888056f90926c",!0,!1,null,null],["ethereum","zoom_protocol","ZOM",18,"Zoom Protocol","3044022053c22dcb66219e452e83972ab29adc0a6c4dbae24facc2f1f91e753644f6986c022064b5ed1f45d63d52a2e6e618dc8699840b8188fd30691be855958ddf4227af2d","0x1a231e75538a931c395785EF5D1A5581ec622B0e",!0,!1,null,null],["ethereum","zoracles","ZORA",9,"Zoracles","3045022100e6089cc2927d71d59a1e1fe4bf3810e1c5ef2351de51cc6f224f73a61959175a022039902277736c838cd0122f431662b5676b6e9a09d50fe227cfd4b62284961fd7","0xD8E3FB3b08eBA982F2754988d70D57eDc0055ae6",!1,!1,null,null],["ethereum","zort_coin","ZORT",18,"Zort Coin","3044022005adb97cb0c44d98f8c40d2e189126aa2d35f3ca78ebbef2ff73121c44669ffd02204a45b868f60eb0fc22089652d3b53b39f91a1e70726e361258d5de57ea3608f8","0x825cd4201f8A2bBB1A69668EAc4E5Fa71283273D",!1,!1,null,null],["ethereum","zpay","ZPAY",18,"Zpay","304402202622d70c1a8ee4023fff16aeb90f267834dbe2df5de4b01aa3c8659c1c02cf1a0220410b2bf362dab8923214b5bd9738c20eadac367b431cd0813a814f67a0943a90","0xEfFeA57067E02999fDCd0Bb45c0f1071a29472D9",!1,!1,null,null],["ethereum","zper","ZPR",18,"ZPER","304402207d3471e7e73a11209a61b5879a962579f684c356c019c6a96a3c8dbb7642d45902207cd5b4942e78665a626d5e757bb590a0f046467b6388c6cd090c2358f74d0041","0xb5b8F5616Fe42d5ceCA3e87F3FddbDd8F496d760",!1,!1,null,null],["ethereum","zrocor","ZCOR",0,"ZROCOR","30440220547b7482f7da35e0e05cac59f474f4f9bb63f26d8c246b5a3981cca5d453075f02201054ab173ce1e1a5e2313d2f9a952fd4f45909753be0715bd2ceb41c865a9582","0x83FF572a1757b9E4508CB08f13a79Ed162c756c4",!1,!1,null,null],["ethereum","ztcoin","ZT",18,"ZTCoin","304402205349dbded3fde908a59b498bfc2b953cabd8e01fb70ce17575c57ead4f82b32202203e3326ff3aff12f2053db83ee7a0a4963d6924baf1b39cc1c42e45c850e9c5a4","0xFE39e6a32AcD2aF7955Cb3D406Ba2B55C901f247",!1,!1,null,null],["ethereum","ztx","ZTX",18,"ZTX","3045022100c460ef82fffb5bcc692d52d2906d984890126ae7a3fd2d412d9142d4a39b1c27022027610674d77ceb98b029cd4cea2d2844f7fa42fc6901fab3e93d69b57dd7d084","0xE8F9fa977ea585591d9F394681318C16552577fB",!1,!1,null,null],["ethereum","zuflo_coin","ZFL",8,"Zuflo Coin","3044022034ecdb35ba320db4b7255a1603082b0e98a25d8eb30f7de527f778de46c9e59402206c233b7d9c6b153660174bb0db410cd66d153ad90bdb9c065d131e25fbcd84a2","0x19fFfd124CD9089E21026d10dA97f8cD6B442Bff",!1,!1,null,null],["ethereum","zum_token","ZUM",8,"Zum Token","30440220676ffd142972198c1dac28cc440a189ff9240372f32d94fdc49a242f8cd2622d02207383e5dd51d556ef61fdc5523d9a619f795c4f634d9ac5165576e458a93f73b5","0xe0b9BcD54bF8A730EA5d3f1fFCe0885E911a502c",!0,!1,null,null],["ethereum","zuplo","ZLP",18,"ZUPLO","3044022029bb3df793163c2b50af9df09c82be36070ec11d88cde6ba08275e4aef7383b3022056d433ba6c692d9c72d47e04e98f88b212df050b40e57aa21e2cb34ab9d40686","0x94D8Db14831c2c08943798542C450df2844913e5",!1,!1,null,null],["ethereum","zynecoin","ZYN",18,"Zynecoin","3045022100b4a33a5559b2cf5752ab5ed49bd4a0590c52e8819d80f49243352fd4b40f6e6e02201a4e7e20f5a94047dec7a0283c529aef22ee8658267e10b85edfeee858354119","0xE65ee7c03Bbb3C950Cfd4895c24989afA233EF01",!0,!0,null,null],["ethereum","zyro","ZYRO",8,"zyro","3044022076e1da199b8e813869f457a81c42b7e9f3c0897823d96a7c0d28a8c92f377d1a0220461687706d2a2602daf9c2714548c53402ae995614b5487102bfc510052f09f1","0x1f6bd8766f8a8AA58F7441C8dd3709aFA3a56202",!0,!1,null,null],["ethereum","zytara_usd","ZUSD",6,"Zytara USD","3044022065d4a73fb00329e973c8d3b3466387c574309bf8158ec15ef5218ade5e3c33140220200ae96d741c2f39f263f849fe952a48da39004306df79529718e58ff73291ae","0xbf0f3cCB8fA385A287106FbA22e6BB722F94d686",!0,!1,null,null],["ethereum","zyxtoken","ZYX",18,"ZyxToken","3044022036cd5651699ae92f69678e42e32f735e8bad9c49c16cfc8adb75d1842a305de802201c33ef00ca36f64f704de8b9b981fd64416d854226d7977e15d2feba896954e2","0xf974b5f9Ac9c6632FeE8b76C61B0242ce69C839D",!1,!1,null,null],["ethereum","zzz_finance","ZZZ",18,"zzz.finance","30450221009f74a1b503770e6d2562418a87f563b61dda3c5677643a011589184fb48ae4c902201fc3d1e22be1ee1a33dffaad359e01cec0ecd6e3fa10c57d22ea6231ac4b34f4","0xc75F15AdA581219c95485c578E124df3985e4CE0",!0,!1,null,null],["ethereum","zzz_v2","ZZZV2",18,"ZZZ V2","3045022100c8c4490c3546e21c76ec6b8f8f99d3f4211cb204529d7f5ab6d7a97a82005dcb02205a07d271a77995c35ecb4df94ca5723ed7648970be4774406347652e5cc19ae0","0x93ED140172Ff226daD1F7F3650489b8Daa07aE7F",!1,!1,null,null]]});var PC=U((tW,VO)=>{VO.exports=[["ethereum_goerli","chainlink_token","LINK",18,"ChainLink Token","3045022100e13bfbd894130dafca1ca83f05df9445f1c5c09dba3b787b08e18e73411f7b7c022059f42413ab504b149b9776285babe486279cc29847800cd4eb9b4d0eb79604aa","0x326C977E6efc84E512bB9C30f76E30c160eD06FB",!1,!1,null,null],["ethereum_goerli","dai_stablecoin","DAI",18,"Dai Stablecoin","3045022100c09a7c76d29759abeb6c97649a7569c1b58a51934a11f6599a009d791cfcbf6b02206e61d5530c2387a23e2844d9e9cdc06d5c6077bd4ee9d5c2aeb2061504f9c0ab","0x0089Ed33ED517F58a064D0ef56C9E89Dc01EE9A2",!1,!1,null,null],["ethereum_goerli","faucettoken","FAU",18,"FaucetToken","3045022100b37c8dd03814e7e08585c81854f1ba1626528aa97b12b823059deeaedaa235d50220521873a97ea53913355c1b0547399a108bf295b5be5b7aa27a7368dc6d73bf98","0xBA62BCfcAaFc6622853cca2BE6Ac7d845BC0f2Dc",!0,!1,null,null],["ethereum_goerli","financie_token","FNCT",18,"FiNANCiE Token","3044022003db3c458c5fccadc3e1cbc83d20ccb904a3634ede44588c8afc428c47c64d1002206587b27e797925f1c338c8d5a47536a7477cc2672bb9461b9443e091b23e4d11","0xFdF06C1eB3ffd195dc515Fa128700a578460f504",!1,!1,null,null],["ethereum_goerli","icb_token","ICBT",18,"ICB Token","3045022100aeaebd61d2b5f5ac98a0196b01fd0cdf9db5fb96d8ff169d7bea1d30c7c478aa02202221be8d14aef8cdcfa6eac64ec4202ffb56409e625c6c3c9dff2c6e27681b5d","0x2448Dc1022061b22b60ce0b240cB9c386a10B8f9",!1,!1,null,null],["ethereum_goerli","mock_usdc","MUSDC",6,"Mock USDC","3044022050c0353083637e67db5f435c3f8655053b95d3d687e67c0bde014c7624e6bd4d022079fd4ff24450e271876e7d7f2bc03b50b3e87a28eeae5b65e7b6c8d8d5511999","0xc2D1d0492A5C9AC735e5Fa08Eb9376f850222ebF",!1,!1,null,null],["ethereum_goerli","usdc","USDC",6,"USDC","3045022100fde9f713cb999780a504b8eda31fe0195930935d8b0ad836e183b5c56b5e342d02202c15a0d1ad00b0dacae588524cf4db145934e10c8ba0e89da366e1793f723f70","0x07865c6E87B9F70255377e024ace6630C1Eaa37F",!1,!1,null,null],["ethereum_goerli","wrapped_ether","WETH",18,"Wrapped Ether","3045022100c59b1299f34f2201a8172970e0c4d0d1c88ae1b82e27ba4396a344c9c09db9e6022077040acfee7bf13264691c5fcc240a625d3b59f4a6b42690dee342bf11110606","0xB4FBF271143F4FBf7B91A5ded31805e42b2208d6",!1,!1,null,null]]});var VC=U((uW,LO)=>{LO.exports=[]});var LC=U((iW,JO)=>{JO.exports=[["ethereum_ropsten","17_small_electric_chairs","WRHL1",18,"17 Small Electric Chairs","3044022078eefbb0e73c39a6c2c9d57a00090700cbdd591582f3810fb66267896171aa78022018653be3bc78a129e5aab55256df258c946accefa1a1370b6a39c0847c085179","0x19795e1B0F81C437ec3FCe77fD7ab43920606971",!1,!1,null,null],["ethereum_ropsten","_plasma","*PLASMA",6,"*PLASMA","3045022100f5906df84344104effadf27b6387e03caf03c4dab2e510f60c1826b15aa093c9022018639619e4d680052f2531035361c3af9532d102ad6445071d32ebc896c74c0c","0x95D7321EdCe519419ba1DbC60A89bAfbF55EAC0D",!1,!1,null,null],["ethereum_ropsten","compound","COMP",18,"Compound","3045022100f74f196f0f89ad794cdfbff8863e6b8e9dbf8539b9a882ef30ccb5d04c681ae002206c6b2f47a76e3b6acb68c5f789b3d1e2969a7f8aa0a5928e237ed23c08cabc77","0xf76D4a441E4ba86A923ce32B89AFF89dBccAA075",!1,!1,null,null],["ethereum_ropsten","compound_dai","CDAI",8,"Compound DAI","304502210095fcc43a12244f150142c7becd5fb5778c12dae6e06f31f46fc866cd279ae656022056d8434a9a3ec9b291887945a6f7574820fef25acb77251973aee6e9645c7fee","0xbc689667C13FB2a04f09272753760E38a95B998C",!0,!0,null,null],["ethereum_ropsten","compound_ether","CETH",8,"Compound Ether","3044022008fce14834aca1fbca447eadba5bc949bfe25aacdb59ca59fc603d4f4e867c7d022066be77ce3fea8631ecbc4d9ed4cd732621ed1cbf48dcb78933cb813fb66c1b3d","0x859e9d8a4edadfEDb5A2fF311243af80F85A91b8",!1,!1,null,null],["ethereum_ropsten","compound_sai","CSAI",8,"Compound SAI","3045022100ff8acbb838144aa1a7f724283a61fc4d10e103607fe0c269f11201111d91d414022035e1d7fa5fee75ecb845b5a15beba33af770230470782c4867765c814e319997","0x7Ac65E0f6dBA0EcB8845f17d07bF0776842690f8",!0,!0,null,null],["ethereum_ropsten","compound_usd_coin","CUSDC",8,"Compound USD Coin","30440220464ee8bde137c65cb3d4d1c555f0a5aac45230bbc517127ca6e5210b5aaf8015022004c1531c5f0692d26d4bd5cc46f64099b9db7d07ee3154d8591433984ffd27a4","0x2973e69b20563bcc66dC63Bde153072c33eF37fe",!0,!0,null,null],["ethereum_ropsten","compound_usdt","CUSDT",8,"Compound USDT","304402200a708783d6d08e7b5583c86093cd266ceb8adb74d5170273931460078b27dcd802205a3abe559c92924133ff51560b33fc5226b13d0ae2bc1c87a50132dbf7a1f1ae","0xF6958Cf3127e62d3EB26c79F4f45d3F3b2CcdeD4",!0,!0,null,null],["ethereum_ropsten","dai_stablecoin_v1_0","SAI",18,"Dai Stablecoin v1.0","304402200cb372cbf25c3a6c0419b775dee6b4e5e84d07f564bd31d8f5466fb12ca014d302201e9db7b90e157998f8d66010e65b1dbcf4539c864593c65d0c0ddea530d78538","0x63F7AB2f24322Ae2eaD6b971Cb9a71A1CC2eee03",!0,!0,null,null],["ethereum_ropsten","dai_stablecoin_v2_0","DAI",18,"Dai Stablecoin v2.0","3045022100e67c601c8de51b682c67cc2ab5eef2b709334c1c522245da48530959051acbda022076cddbdea91efdd9ea2ee43a269877f68bf190553a8e965ca5f6d8ec3457a54d","0x31F42841c2db5173425b5223809CF3A38FEde360",!1,!1,null,null],["ethereum_ropsten","faucet_token","FAU",18,"Faucet","3045022100d70434f2b9a45f26ddca2eed5112ffb30d7254c89617229d3a1f1794ae87c1140220766e37382f071799371ca0a778cb21f49d32c3ee560d2e6e0ff6463cd162de8f","0xFab46E002BbF0b4509813474841E0716E6730136",!0,!1,null,null],["ethereum_ropsten","gigcoin","GIGCOIN",11,"GIGCoin","30450221009a98fa0753ea7b4bfd15ab80f0dfacdc260e7853ba2ff06e72538d9cd6acf3b20220277d78eae1cd6f9b10f972597c30484a5691b55fc8e23f2fd14c3c5a3cebc7c2","0xc6B0581f3C15B56040ac4513931138D6acd5975e",!1,!1,null,null],["ethereum_ropsten","haskell","HASKELL",11,"haskell","3044022077aae4cae5b02221280ac612aec07701bca82d59b32bcad4207c284d325556e202204322a205b2730ce136f055bc3ca11922784aa7c81b72f339f6bfb34a0a80b581","0x63652B9Dd39565332B22BB815104c8210934Ae45",!0,!0,null,null],["ethereum_ropsten","juno_test","JUNOT",4,"Juno Test","3045022100888bb9ef9c212b1b2a5c3753cfee81bfdfc43221f75a29e3cd89890cdca494bc02204c691091f4278033cb0eac78368f518912af42d03f6966d109cc68560e7c29df","0xbd812aae7735b6e7BcC3eF8DFB3CB0457CFc2ad7",!0,!0,null,null],["ethereum_ropsten","ledgercoin18","LGC18",18,"LGC18","30450221008dca0c53e06272cb9dbab60ee6b52130768893d1a1d0ed37ae854e8c0eb2a33402202ad33afb6048b5cf970cfef4262474de0135dc37a104e31160173188a16cb19b","0x57e8ba2A915285f984988282aB9346c1336a4E11",!0,!1,null,null],["ethereum_ropsten","mer3","CBDC",2,"MER3","304402204297f6dec765887ff6e3d2876aca854b57543d2b79dd59dc61ac64b18e3d128f0220114206d4b169267fc9ab7e9f34b79128199758b1bb0fd4d15aa7928df8b3d4e3","0x1A418118F7b1904cA86144C2Df14840CE823Bfb0",!0,!0,null,null],["ethereum_ropsten","mer4","CBDC",2,"MER4","30440220793834139d11080a8f934b7528e9132c0701b89e54b7c632aa0877904dfae5d0022071699e2c36c3cc1d7674fd8a32d2a9deb574f5ede3d55cc7874c2874e3fd0172","0xDea7739bD921a562b94cDe6af39b752c31f83488",!0,!0,null,null],["ethereum_ropsten","mercure_1","MER1",18,"Mercure 1","3045022100afdf2aa52b0f88e9d95f97f55178198e95aee4f4e94c261957d3a02a86d2f17002207ed5e9f95bb3c7f2f2b644fac61bb31ed118981aa2d8fccb7fde1f7638d81124","0xc5E05Ca4CDD5985442935eDB8F902F9b983f9138",!0,!0,null,null],["ethereum_ropsten","mercure_2","MER2",18,"Mercure 2","3044022045980a0b9faed1dca5011f2177dc5e70eb77b9d026bba7f5cfa16b1047f1e30d0220761a99e61264c34562b8d4d848fee6f3a1df032fdfa2422fad0176b056ca1a18","0xa24499C79A6fFB4453879fb8517f8d4c7F798C15",!0,!0,null,null],["ethereum_ropsten","nangalanga","NGL",18,"NANGALANGA","3044022043994d6e8bbc41fec30992e4b45773d6d5a918579bf42891cb4c10ca3b7aa3f402202585fe0f0c922d279591c2ed74a58b11317dc18c314f8454af0fc54cc8e001ab","0x1532811bA6c508569280FFf3931C69F930F90810",!1,!1,null,null],["ethereum_ropsten","tk19","TK19",0,"TK19","30440220593f5741e5a35d28af756f9dabad55e9d7da714cc79bdf42e2f24b81576e8fda0220552d84772cced79d9b9a36897f50b882c12f1ff34067364a39981832b78700ed","0xe033AF8C9d32358e2a029C9A6968eED4c90fd561",!0,!1,null,null],["ethereum_ropsten","tk20","TK20",2,"TK20","3045022100ee461de575b86c468ec838fa95ff8ea749874765cee521a9c2151265564684d102204807ea0693339aefce7e6a7a8dc201b7a08ec78bec087e170f2982ee0e0cb5ea","0x54bAf7CE2e968B902D81272B8D94E1f612D40307",!0,!1,null,null],["ethereum_ropsten","toko1","TOKO1",1,"TOKO1","3044022064b4c50603d322dda38e31c3d2f23cf86711143686676dc070e3c43e6b82134002207b697330f9d2b29557950377762808c3ff9d4638b4190554cedad9cc7db3e47c","0x792158ac86641f560eA4821e93C8A8B3bDA254Df",!0,!0,null,null],["ethereum_ropsten","toko2","TOKO2",2,"TOKO2","3045022100f88fb02bf9893be86b83f31b45ed74bd27407130b6a21b63e8223ad9965e19b002207b9daa5adfdd9255ac1f8ee8a1415628dc572e7175befc8c9ce1069aad865471","0xD3CA569AE40ff5Ee1D1E77cF88b1Ce0Aa7F3A465",!0,!0,null,null],["ethereum_ropsten","toko24","TK24",0,"TOKO24","3044022045f50189b835b2dd58042ab70ad01b3417221549800d9b54579c4a265a0fd04d02202ce5a2172a4692a4b267e75d29b00e64769392c3c305375b70838efae32471b3","0x0f7Bc0eB6CEdf87b357a4Db8e2bA8d557a0fd6b2",!0,!1,null,null],["ethereum_ropsten","toko25","TK25",1,"TOKO25","304402206da5afad147a9295985e735ee9698af518d789b2203ec4091eeada4e9eb599fc02207e448297e4ac058e5ba3a51e4e4e011a07a2cd5522abbce35b8c979b1befe9f8","0xFb3DD742Ce9F30ba56423734de733819d0026159",!0,!1,null,null],["ethereum_ropsten","uniswap","UNI",18,"Uniswap","3044022055575bff47024f2b33c2abda1aa109e1bcbce2940c95a28931333ec7ef4382b802205f9984221ce5fcd3b7ad8ce01ef749f94cdb1c2e86db13ea398d1d4fd3426696","0x1f9840a85d5aF5bf1D1762F925BDADdC4201F984",!1,!1,null,null],["ethereum_ropsten","uniswap_dai","DAI",18,"Uniswap DAI","3044022020fba6c13612bffd85b91b208402a1691e166b8459e735a636303da3cc7e89a6022064f3c91183cc37093f2f1146d4abe072560c14f20c6f1020193ac438e7339638","0xaD6D458402F60fD3Bd25163575031ACDce07538D",!0,!0,null,null],["ethereum_ropsten","uniswap_weth","WETH",18,"Uniswap Wrapped Ether","304402203cfca48e10391f595841307ac13b61cf4cb0e7e6a6ed86c5e260f6db5318be8402205d723102394c6fe64b1946504cccff970f323e9d062ff6c7fbb4e6be66619263","0xc778417E063141139Fce010982780140Aa0cD5Ab",!0,!0,null,null],["ethereum_ropsten","usd_tether__erc20_","USDT",6,"Tether USD","304502210092c3ec9af7371dc2c5b2ee2b55765f83ef2f44a382b272a4b0a2a027aab9e5670220791e04b1b8b373bd4d74e38bc4f7e528ee243c4e1d9dae3f651a66b4e4c13da9","0x110a13FC3efE6A245B50102D2d79B3E76125Ae83",!1,!1,null,null],["ethereum_ropsten","usdc","USDC",6,"USDC","3045022100b3f174b2af6f6b6372409b2587361b793e3f0a21b5d59e095fe0cf2c6d2ae05b022066b993eae0d1aab76752af76a3ecf47360ff784e1fcee7f6ccca753e07ef39b0","0x07865c6E87B9F70255377e024ace6630C1Eaa37F",!0,!0,null,null],["ethereum_ropsten","vault_coin","VLC",18,"Vault Coin","3045022100ae86a896b2d4c3e6a2002eb12e8a57c849a937f1a85cdda78cb3bb94bd3b96ad022060e3abb53eeb0262e87fa36ed0f5f91f18a9805e23f26d0e78bedc3459ce0f77","0xF62ef17b7c919b84A9D9f33609bb2cf4405a5682",!1,!1,null,null]]});var JC=U((oW,HO)=>{HO.exports=[]});var HC=U((sW,ZO)=>{ZO.exports=[["fantom","2share_token","2SHARES",18,"2SHARE Token","30440220333cdee9b380f022dfc0b2ab5f4a357dec9ed93e30eee704b92dfb40a8c7943e0220056c5059052ad507395b3f4137776f022b729842d8abec6a00c1c1ba91042e31","0xc54A1684fD1bef1f077a336E6be4Bd9a3096a6Ca",!1,!1,null,null],["fantom","aave","AAVE",18,"Aave","3045022100c255fc969ae944b2c62365d872778141e17bf9d0085ebc785f5432c55bf631440220598951a1e0b0ef4c129975864ccbec0322fcec6184b9642e4c44506840dfebb0","0x6a07A792ab2965C72a5B8088d3a069A7aC3a993B",!1,!1,null,null],["fantom","alpacatoken","ALPACA",18,"AlpacaToken","3045022100ea22e472680d8feaaaee22202b83fa873d53a6a7e225e2e8e6bde443de4ac5bb02207b8957dddfa715c9c536054cc68dfa8d812c0d3c0a0dc719f2daa4d3332a292d","0xaD996A45fd2373ed0B10Efa4A8eCB9de445A4302",!1,!1,null,null],["fantom","alphatoken","ALPHA",18,"AlphaToken","30450221008fb925e33a5587e0b9bd6f6fd11e9ee6e3a2383039c53a37869cbe58a41026fd022018f23ff8d1bfbc69bde720b785101e3fdeb3462a544153aebde75a811df1d2c5","0x11eb3aA66FE1f2B75cB353D3e874E96968182BdA",!1,!1,null,null],["fantom","artwallet","1ART",18,"ArtWallet","3045022100e1c1e02dd832fde5cc2657c498936fdc62d2ead0b438eb4573bf71bde8798c3802204ddebd59adf49e47aad225cf03478585dd6cc5cca4de839658c9eb29d836bcde","0xD3c325848D7c6E29b574Cb0789998b2ff901f17E",!1,!1,null,null],["fantom","avalanche","AVAX",18,"Avalanche","3045022100c6bf8d6d5b853b50f8093b2dee23e2b7c298d5fd69837dad951d2e9027d8664a022026c71e4493e12b17ac6bedcd1cce95eca3595901256fbb5879dd490994ceabe0","0x511D35c52a3C244E7b8bd92c0C297755FbD89212",!1,!1,null,null],["fantom","band","BAND",18,"Band","3044022000e482cddfeee7ceb73b15778a844faa2add39ba4432fcde37d3c1a762745c6e0220669efbf37f5e80f0c57d2b7b0a30b3005b2db696bb3d7a058f510fdb4c4f3cb9","0x46E7628E8b4350b2716ab470eE0bA1fa9e76c6C5",!1,!1,null,null],["fantom","beethovenxtoken","BEETS",18,"BeethovenxToken","3045022100ddf7bf0b6fffde5e1d9352023281d44ffd2b81606fadb8ea5ace2c5738f11fda02201384960da1dfe1dbd04f3ec6c27da3dcf897f5be583201277777faa10116d4b7","0xF24Bcf4d1e507740041C9cFd2DddB29585aDCe1e",!1,!1,null,null],["fantom","bitcoin","BTC",8,"Bitcoin","304402204751cc3f69073607ab71730167faea956e90af0e2c62285bbf023eabc43e1e17022058a1ed280846f384993052eacf2880aa09018134292c2a7688fee04f7a0b0a8c","0x321162Cd933E2Be498Cd2267a90534A804051b11",!1,!1,null,null],["fantom","boba_token","BOBA",18,"BOBA Token","3044022068a8d67bdee676f99733e0ccc9725f5b494a10d5d9bfd3ad2d3e03d43243539502206ac4fe69852a3e8b2f72f45d7d94982f266ff8d6cd1e2094c486e7cf9e03fc2f","0x4389b230D15119c347B9E8BEA6d930A21aaDF6BA",!1,!1,null,null],["fantom","bshare","BSHARE",18,"BSHARE","30440220603ae1069d2cfbefc2324e6fc146162805b1c60c66a96c0e6bb519005e0c6db10220138493a51ac80e0823f1244453ea19cfe55043407d2eaae1b7ef83ab8426188e","0x49C290Ff692149A4E16611c694fdED42C954ab7a",!1,!1,null,null],["fantom","celsius","CEL",4,"Celsius","304502210095217c324fdc62e99aae31260c9b9e6aadf2f1a1d7c051a3cda477e969ebeb84022032d641e7412f05a3a127b82c784c7d97580e7518ca20903f69cf11f7c33a7a91","0x2C78f1b70Ccf63CDEe49F9233e9fAa99D43AA07e",!1,!1,null,null],["fantom","cerby_token","CERBY",18,"Cerby Token","30440220103d1496b033edfc8a529474467c326b1ddcd743d942f93f42020057d5f7ce6b022044dbf617ca5fc6d8a5b1ffac8f4e4a523919727bdeffbab318688c4f9141230a","0xdef1fac7Bf08f173D286BbBDcBeeADe695129840",!1,!1,null,null],["fantom","chainlink","LINK",18,"ChainLink","3044022026b71757fa6efc359d3795fc15912d3052b49c6196d16762cc21cb52c1a358400220390a7e11ff245680e5049d7ec08c515382e7273095601108b5c9b99c3340275d","0xb3654dc3D10Ea7645f8319668E8F54d2574FBdC8",!1,!1,null,null],["fantom","cover_protocol_governance","COVER",18,"Cover Protocol Governance","304502210099996925679db38a6a96332b8fe07c67de4cc22583fbd9413fa431c5326d562602204938f14fac29fea60b6d9d4cc2f8172b4db789ac9ef437a29aeda9aa436dcf0c","0xB01E8419d842beebf1b70A7b5f7142abbaf7159D",!1,!1,null,null],["fantom","curve_dao","CRV",18,"Curve DAO","30440220241ba43970c6e4b65f6c1d12b1240a1583887e065e47ba6c06fec5e9c29a96e002204f44f3f0ccede27ab967be63df075c88e7346494a5f0d78fd4b1018e84875726","0x1E4F97b9f9F913c46F1632781732927B9019C68b",!1,!1,null,null],["fantom","dai_stablecoin","DAI",18,"Dai Stablecoin","304402204aa90e76e28f486cd7d1e42a8bd658f9aefab39cbd753a01b5f4bb9afadd8def0220798b1feaf8f71c8f9b7e50ad9349fe06f7188e95b23b4d36ace609468d1c3c39","0x8D11eC38a3EB5E956B052f67Da8Bdc9bef8Abf3E",!1,!1,null,null],["fantom","decentralized_usd","USDD",18,"Decentralized USD","3044022001b77045f1e3f344108d9a7c8073c2454efe99e9e4dc7a7f154b5a358ef93df302201f131b76b996297bc34f98a9225a299eb92accb13dfec5eb74c831332c1c562a","0xcf799767d366d789e8B446981C2D578E241fa25c",!1,!1,null,null],["fantom","dola_usd_stablecoin","DOLA",18,"Dola USD Stablecoin","3044022038df5f187a9545ebd1f5e3c08d8c6b74eacf7ff0bcfc522e40f7989745f945e3022065bf6cb7097451c069a7f20c6ae435fbb8017b69b75a3974460c631cfd93e348","0x3129662808bEC728a27Ab6a6b9AFd3cBacA8A43c",!1,!1,null,null],["fantom","ethereum","ETH",18,"Ethereum","30450221009c7b3390dde18a136a49bcd325aef6e651eea558089b0834d363a6cbc0d8a3070220207bbf8110a84e05b837ff7d0dc1363371ebbf2d519546692ca7bf45ae67d361","0x74b23882a30290451A17c44f4F05243b6b58C76d",!1,!1,null,null],["fantom","everrise","RISE",18,"EverRise","304402202310e3c7ceb86ac8757a2edd2cbe1ef2c9b65423c3d12e89587f4e4a923bf4d602200a7e03f10ef07d4b0410e871e87a6c9827a95ad67197325e197de36880843e19","0xC17c30e98541188614dF99239cABD40280810cA3",!1,!1,null,null],["fantom","fantohm","FHM",9,"Fantohm","3045022100afab8ec0b681f359c8504ab79d175500f0f542f1c90e6ceb0df4c1ab292086cb0220559a1642791a8a66ac289fab64cf2faa97251351f5ccd1a4145d425f6f1a27de","0xfa1FBb8Ef55A4855E5688C0eE13aC3f202486286",!1,!1,null,null],["fantom","fantom_abbc","FABBC",8,"Fantom ABBC","304402205a8960f39b380f636e4db862a4df5b6ad80dad1be1370b9ce1644462f294bcdb0220097120772a734506b189022dea9ae655a559aac0fd389cca78a35cbee8a8f3c1","0xe83cE6bfb580583bd6A62B4Be7b34fC25F02910D",!1,!1,null,null],["fantom","fband","FBAND",18,"fBAND","3045022100ef795aab0706c8785a1b0525f68f282184c0448c48cbb910525f0d9cf0c3188702201889c116160110d6e1b48fb861697269921660b61dfe4600dbe410e2bdde38ea","0x078EEF5A2fb533e1a4d487ef64b27DF113d12C32",!1,!1,null,null],["fantom","fbtc","FBTC",18,"fBTC","3044022027157e97c1190fb6058356c4ef9f2585686b25de36aaf5be20d9c31b1829b9eb022063bb23bd6df939b2730f971c5b881c382bcdf1bd65e88a57e60a233434f95efb","0xe1146b9AC456fCbB60644c36Fd3F868A9072fc6E",!1,!1,null,null],["fantom","feth","FETH",18,"fETH","30450221009c85dcac74b979a43ead2bcc946cc846a7879ea295f64926ae166b6a2a222a39022068286503790f458ab70360a749317a36708322563da064b680245c72e4264328","0x658b0c7613e890EE50B8C4BC6A3f41ef411208aD",!1,!1,null,null],["fantom","frax","FRAX",18,"Frax","304402204d596e207be4efa182fca81b6b9ee06f6231d183160f29488d5b3b4c4285c1140220446b94e4b527182a223b2a8ab49f5bfb0c60638c4d24ad1be4d928cd6e5a8a05","0xdc301622e621166BD8E82f2cA0A26c13Ad0BE355",!1,!1,null,null],["fantom","frax_share","FXS",18,"Frax Share","3045022100f55cfbb28f72ad805c500b97a49c6aa8f9bed6e0545d6f4d364eb574a8f7c56f02202cde16c6cbb0c4dc3a6ae4374eb9021a90825ac05bb9d8c07fda8572c5b51d69","0x7d016eec9c25232b01F23EF992D98ca97fc2AF5a",!1,!1,null,null],["fantom","geist.finance_protocol_token","GEIST",18,"Geist.Finance Protocol Token","304402204fc7b3afb95030a7f0fa8c9a135134d7ee1a2ccc7790e84a74bbbc156df1689c02203fd1de5aa6eefa656f8c1d19054b019c8f71c41055af1fb0ee734002555c64d8","0xd8321AA83Fb0a4ECd6348D4577431310A6E0814d",!1,!1,null,null],["fantom","geist_dai","GDAI",18,"Geist DAI","30450221009d64e12dcd171d103472c3878317ecc567f001fdc843bf0ff5c514596fae9383022025fd2ee2be462330b8ec74e2b8e8f7846c906767e55c873f3044772e35e37e02","0x07E6332dD090D287d3489245038daF987955DCFB",!1,!1,null,null],["fantom","geist_eth","GETH",18,"Geist ETH","304402201ff00892328745c7345b7bf88353b1035bee430d015e7438c38deb782a712cfc02203544e672d684ab4db89fe932033e320589c098391bf1491c344c493b9a813633","0x25c130B2624CF12A4Ea30143eF50c5D68cEFA22f",!1,!1,null,null],["fantom","geist_ftm","GFTM",18,"Geist FTM","3045022100be8bbddb6b3dec87868d0e52790da8be134fa2bd7b96e6e3261e2427b5a531fa022031e82c5ed33d195548e341b8b873427e00f572a165ea47de5517d1c2ebb5a562","0x39B3bd37208CBaDE74D0fcBDBb12D606295b430a",!1,!1,null,null],["fantom","geist_fusdt","GFUSDT",6,"Geist fUSDT","3045022100a761c550b42428688d516ac6c28bec830bedd5174dc5aafeb12cca430ff514930220696afb0f979d797759642bc757e7e973b2a2567f18a0c4c33f13505b11517162","0x940F41F0ec9ba1A34CF001cc03347ac092F5F6B5",!1,!1,null,null],["fantom","geist_usdc","GUSDC",6,"Geist USDC","30440220295aa55bdf6a982695026570ab31f2516a6bae65dca233a3b78d6fa5f9a26ccc022016bbd11cd764e380a671eece36a5953ddd84e1d4f80383d280c79ef9824dc7ca","0xe578C856933D8e1082740bf7661e379Aa2A30b26",!1,!1,null,null],["fantom","geist_wbtc","GWBTC",8,"Geist WBTC","3044022002949acd92fefc970dc170362c5ceefb8de1d0e4bc2f659552f7f4a7f8e299600220590b7286d5b6c40079b2be24307c1c69c5cbefbe1a3948af611a031925454afd","0x38aCa5484B8603373Acc6961Ecd57a6a594510A3",!1,!1,null,null],["fantom","gelato_network_token","GEL",18,"Gelato Network Token","3045022100ba5c75cf3ad9e62f857b5c9d388f9abd6342f61a731ab94ed877cbfb0300d71602206a6c81815c1d850a1c10ff9321a2825b955a34fe8445a66646d52447f392455f","0x15b7c0c907e4C6b9AdaAaabC300C08991D6CEA05",!1,!1,null,null],["fantom","governance_ohm","GOHM",18,"Governance OHM","304402202ebdf7f5928cd91c3212b3e3228e74413a6826d3008137e1a9721826cc22497e02202134e3d62bf441c271237960f38124eda98726d76cb1ee77cc242717d3bf41e1","0x91fa20244Fb509e8289CA630E5db3E9166233FDc",!1,!1,null,null],["fantom","grape_finance","GRAPE",18,"Grape Finance","304402202bcf90851eb9e38a7026ab8e16d58c6cef31454f3973ab3581e694efeafb5b100220323a5205d7ed141d520fed9fc13a33b9318d8f6c8774364ce3c25028d07f4e89","0x7Dd7eAf5872E260F35Dc60a54E0F25193128c765",!1,!1,null,null],["fantom","graviton","GTON",18,"Graviton","3045022100b96d781e1339a82e8c7288521c4b7c5bacea4442dcaca4a9973ae4d21d061d9f02206327b4841dcee264b23c31ac3cd13b153a3f20dda78965a61e0b252ef0c26ec1","0xC1Be9a4D5D45BeeACAE296a7BD5fADBfc14602C4",!1,!1,null,null],["fantom","hector","HEC",9,"Hector","30440220012c7c6b8d623f9a1daf8f3eceb1370fb8bcbd754b69792a87dcbfbb9faf3711022006fc61d6bcdee46d64f5f7994b967543927e389326e910139420ab1e54dd1d79","0x5C4FDfc5233f935f20D2aDbA572F770c2E377Ab0",!1,!1,null,null],["fantom","hegic","HEGIC",18,"Hegic","304402202f4c98cb89dfe8d21e860a1270231414bc70e3dbdf51ca100653dc78ca5bfd7d022024787376e7aec2512bf317a27597009b5d2f2344a8b414fdf8c2dcd26e085f39","0x44B26E839eB3572c5E959F994804A5De66600349",!1,!1,null,null],["fantom","hoge.finance","HOGE",9,"hoge.finance","3044022053392df81b9ac4f390de7c7b6d6a91b633357a5617ab2229f21515f197cc04cc02207c287527792bb88db9ce0072bf70f8e8ae94b988e409ac698c80b4913d503a1d","0xF31778D591c558140398F46feCA42A6a2dbFFe90",!1,!1,null,null],["fantom","hundred_finance","HND",18,"Hundred Finance","3045022100a4ccf586d20ff42787728277ca677b852aeb7a4e706515485bce77a3515bd86002202bcf5f1a0f9d806b38bcf2a39a28432b32bc46547e84e4047f64c77b6993952c","0x10010078a54396F62c96dF8532dc2B4847d47ED3",!1,!1,null,null],["fantom","ironbank","IB",18,"IronBank","30440220525b7e58758f0955628fb1ec5b9a9295a23f6d70d166b8dd3ed005474816f8de022058fe412fb68705c8bdff04b4e7e8879bc49e4def84b95f63ca7d9754a7af0a32","0x00a35FD824c717879BF370E70AC6868b95870Dfb",!1,!1,null,null],["fantom","kanpeki","KAE",18,"Kanpeki","3045022100a3576e8090748a18c8cef0cce64f029dccf49dd2ad96ea7bc3675c3d8f33547c02207f69edac3614b73351dd2c6447df77343ed9684dcaad3cd154f5dfc00a1668e4","0x65Def5029A0e7591e46B38742bFEdd1Fb7b24436",!1,!1,null,null],["fantom","keep3r","KP3R",18,"Keep3r","3045022100c349484869a954e137f642c2f6ae63dafeea6ff8d8fcff5e5fbed626e92983e5022025d1d51d8b12dd351cb4d16cd68daf334d93951dea5087f2192f51faf769a4eb","0x2A5062D22adCFaAfbd5C541d4dA82E4B450d4212",!1,!1,null,null],["fantom","l3usd","L3USD",18,"L3USD","3045022100ed4a1d89db3627bf97cef69e438443d02c55d066f814480560a45b5addeb002302205131e8ba8c8ebac1053ef3af90ee2605d6728191a44a16c09fcb1ccf61de8258","0x5f0456F728E2D59028b4f5B8Ad8C604100724C6A",!1,!1,null,null],["fantom","lif3","LIF3",18,"LIF3","3044022068b918748efb73dd53c97ec7ab8e3661506cb1e8c721faea9acf245c01613e79022004d4e593363338e7e541c8e3566d585ab7af444540797a45c746ee1e785fbc57","0xbf60e7414EF09026733c1E7de72E7393888C64DA",!1,!1,null,null],["fantom","liquid_driver","LQDR",18,"Liquid Driver","304402201d64cc0951c639628776181b8aefc3349273667421882aac30a04ba16ba413f6022079b68bae75a570868b71f3c46cfd1fe6d58a533f33693116886e2baef4a3f2d9","0x10b620b2dbAC4Faa7D7FFD71Da486f5D44cd86f9",!1,!1,null,null],["fantom","lshare","LSHARE",18,"LSHARE","3045022100ad50b275d1e756b3158855fbddc40e84190a777a06254f717830219f78918a5e02200c9e90976f66b49094c67db562f5f0f0a5dc58d701601cfc4b1f9af86ed939ec","0xCbE0CA46399Af916784cADF5bCC3aED2052D6C45",!1,!1,null,null],["fantom","magic_internet_money","MIM",18,"Magic Internet Money","3045022100f7a0dc844bbb86b576c341b78031fa080b95380f697da92a432e602bdec527400220056f0ae88df36b907d681d7ba64e6776d0e05e2330e09d17b1d862e80abff835","0x82f0B8B456c1A451378467398982d4834b6829c1",!1,!1,null,null],["fantom","manga_token","MAN",18,"Manga Token","304502210083fa45b53deb2933edbf5cc694e83fa38b46af80753dbfc2a8c2a0d930ccdc0502202bca37085f1d222a6a5558de46fdf9307204d3379b7bca2afa534bcae1fb67fb","0x8A88b501A68ceA5844B9d95F41892b05c4cd1d73",!1,!1,null,null],["fantom","metavault","MVD",9,"Metavault","3045022100fcedfe73d777bc67e6d4b0d8a03bf7ddd67295287abe06aee21af17e4bb93f20022072a720b9b9a532d501e4695e86257742985b7aade68da8581de68c149ce30f1a","0x27746007e821aeec6F9C65CBFda04870c236346c",!1,!1,null,null],["fantom","mine_empire","GEM",18,"Mine Empire","3044022100b7b3ad264f2be74c05c86405233ac423a773f008e600acaaf2d7c680ebe9fa20021f46092765fd511fcde659178adec9e6e6f2167f48bd55aba9b3e96dcde196fe","0x68EFc4716507709691d5e7AD9906a44FaBCdb1CA",!1,!1,null,null],["fantom","miniverse_share","MSHARE",18,"MiniVerse Share","304402201055e0a8678a23376af9bbfc8db6d4793dd846e33e4fdd5bd736ddeb800e374b022005bfe026b621a7851ae33588f183390e6e4277e4c86e6c7bcdf46019309f8a7f","0xb011EC534d9175cD7a69aFBfc1bcc9990862c462",!1,!1,null,null],["fantom","o3_swap_token","O3",18,"O3 Swap Token","3045022100f3bc669ca8e057248fb8e31916673c984efca51a000810309a4875b0a07bf3cc022043b27b4efcc1d3bc9397150f451a18dc751a183d9e4b05fc49a6c19833fff73a","0xEe9801669C6138E84bD50dEB500827b776777d28",!1,!1,null,null],["fantom","onino","ONI",18,"Onino","30440220048e1e3773b9112bf3c2d6f887256d90018de39f537f3ecedd0218cdf50c901c02203a0c1aac09fb926040e030d2c969b3a4beccfec162ecab3668552f1bb1651387","0x667c856f1A624BAeFE89fC4909C8701296C86c98",!1,!1,null,null],["fantom","orbs","ORBS",18,"Orbs","3044022045ce205bb106c9f5fb0a508cb54348ae74189ec70faf68a9d6cf5ff23ada76ff02202c5775a104faade7c38a44594d1d69e4725f9e3f1eed46eed8512e1fe46ec6b8","0x3E01B7E242D5AF8064cB9A8F9468aC0f8683617c",!1,!1,null,null],["fantom","orion_protocol","ORN",8,"Orion Protocol","30440220093a138425e2f9a0fd799d997e7f573f61289f15575c95f7e9c510a9b4a789c0022036f2ab76e7020a81d5ac78b2c05d414687abf6e53bf518f2619837fd692d4541","0xD2cDcB6BdEE6f78DE7988a6A60d13F6eF0b576D9",!1,!1,null,null],["fantom","paintswap_token","BRUSH",18,"PaintSwap Token","304402202a25dd150abe6b1b6a4d8e81d63602d7d48c16e837644e59e8a9b812b28eab860220462be4365c2f32dd86ebfde6bfa755538cf62ed706fdef6236e1437df91f9cb7","0x85dec8c4B2680793661bCA91a8F129607571863d",!1,!1,null,null],["fantom","partial_share","PSHARE",18,"Partial Share","304402203ce3781a46f90639f4a6050c9ffa00d4bc49a22e2b69edc0aef1c727e9cc071e022045991baa326ed9001e66005fbc290d4b9709c07e7a700c4f6b0a48770f6dfd20","0x8C64D18E9d4A7b8e8c10C5c5a4b8D6D83cb15002",!1,!1,null,null],["fantom","partial_token","PARTIAL",18,"Partial Token","3044022031cce44d050c040aef97983924bc7aea592db576cd631fae849fcde5d99030450220409a8fb670ef8f3e753692726cf1a1ee05c37cb037cf12222a2060628a067ccf","0x9486fDA4C1192db69a08CA7235E2E6bAf31B467B",!1,!1,null,null],["fantom","pdollar","PDO",18,"pDollar","3045022100ac8f468d610685f841df13be3ee035e92c4e0bdff55aab58bf3222e6b448a965022046cac43a7e52b444ae303fc396b59bd4784b37201684215d6766df5e7c2e4db9","0xb9D62c829fbF7eAff1EbA4E50F3D0480b66c1748",!1,!1,null,null],["fantom","pdollar_share","SPDO",18,"pDollar Share","3044022049100dedf0d0da8cb221546227f541753295c122f7afed2a5cf5e0198ede156c0220549ab5b209ed086daea71583d98fdb0b0285cbb95e8ac728797b03958c81f8d5","0x1D3918043d22de2D799a4d80f72Efd50Db90B5Af",!1,!1,null,null],["fantom","plasma","PPAY",18,"Plasma","3045022100c56a927620acedc674b340a1e7dc4e249943ba71618e3a6dcb2327e5a8a45d4602202ca6ce5aa026d70e6730572f7dff93b1d62a9615e6bd86b71663ac802ceb5fa0","0x3B42fd538597fd049648C9f017208BF712195b73",!1,!1,null,null],["fantom","rai_reflex_index","RAI",18,"Rai Reflex Index","3045022100a00aa2db423c0ca190637276ef9d6a64568d9af0045563e95bd01357c7cdeda7022012c92f82fe311b013ba2c31261d1880328b116d35c27bfe0f064a54db0ade6f7","0xa71353Bb71DdA105D383B02fc2dD172C4D39eF8B",!1,!1,null,null],["fantom","scream","SCREAM",18,"Scream","304402206336d9b0b3f910e7c97b085a9206b85d22b2323631a5439375d85eebddcde54602206e4a851001c9079a26cb6107001dec5dfb7153b7f25796dcb828a31f498a537d","0xe0654C8e6fd4D733349ac7E09f6f23DA256bF475",!1,!1,null,null],["fantom","secure","SCR",9,"Secure","3044022004587e894cf638ca9b3af8d388feb231840ef427749971a61d8c4e72938c9b2b02205715efb3d799452e8264720b544f552b3e2cd3c19594550faeef40521f86e7fc","0x8183C18887aC4386CE09Dbdf5dF7c398DAcB2B5a",!1,!1,null,null],["fantom","smart_token","SMART",18,"Smart Token","304402207e5012452e8e988350dfa565bd3b6b436ce188066290a592204ae9136f5da2d9022071edbfce1caa2d1087703e98be5982b9066f3d777aeca69c9e05a63bf5e39b59","0x34D33dc8Ac6f1650D94A7E9A972B47044217600b",!1,!1,null,null],["fantom","soulpower","SOUL",18,"SoulPower","30450221009069285031ab7e6c0722f11afbb0c52df76c37b013a096205ac6c43f203182a102204dd9ab2d6e81f16b3516ae992a860590156145c0ac06fd27977c7f996beb0058","0xe2fb177009FF39F52C0134E8007FA0e4BaAcBd07",!1,!1,null,null],["fantom","spell_token","SPELL",18,"Spell Token","30440220412fdcf7222535d1a171f2a3a4bd7be36c8e48846cfc8580dd960af075785d2702202c3b91cb4ff0c518b119e2230ad70bf8ccb0660bdecc4df0d8791426b72edbb2","0x468003B688943977e6130F4F68F23aad939a1040",!1,!1,null,null],["fantom","spice","SFI",18,"Spice","304502210097aa309e54af20ac5144244765f575c0f886ad3e92d2c099a9c2f987d00f3f9702206785d345dccc4ae65408b5577f0e5180abd91508730b90eac2718d5d88d4330c","0x924828a9Fb17d47D0eb64b57271D10706699Ff11",!1,!1,null,null],["fantom","spiritswap_token","SPIRIT",18,"SpiritSwap Token","3044022052f25f7d6119937de5a294f64fe107f6059c48f6d790f7e909f86c784534f7830220404c6dff2c8540a22029f3d1aadc59a32b89c345d2566f5ad4d2f03c33f7e867","0x5Cc61A78F164885776AA610fb0FE1257df78E59B",!1,!1,null,null],["fantom","spookytoken","BOO",18,"SpookyToken","304402206f05ff2aa152cb98a58ab7aea2193f2ed9d0d183df5ee72b199f62916dd271bc02200c5f8e8e216dd8436fc5832c662ff5220195c587709e0c86e50703402e349ce9","0x841FAD6EAe12c286d1Fd18d1d525DFfA75C7EFFE",!1,!1,null,null],["fantom","staked_fantohm","SFHM",9,"Staked Fantohm","30440220014fb48c29902bc64438858f03b6d5c4551ff25c3691d912a8b49395422942f60220323d2e248239436e2f45d91b453cb44f0377b4c221aa8606655269e1594396f1","0x5E983ff70DE345de15DbDCf0529640F14446cDfa",!1,!1,null,null],["fantom","staked_ftm","SFTM",18,"Staked FTM","3045022100f784d071501a89cec8cc8dc16cc8979da88a2b30820d4b5f9a0f9e3141328de902205aff3c8ad798cc38f0b1bd60a624517426085fb3d20f98afa9c995bee518acfc","0x69c744D3444202d35a2783929a0F930f2FBB05ad",!1,!1,null,null],["fantom","staked_hector","SHEC",9,"Staked Hector","3045022100c6fb1e1636b05db252738c003d11f937d5a110cd727cbe7775b3673a0d54b9af02204121b64fd78ceb6fb17e911339da3bde651875aadaaf5b3267525ce534e821b1","0x75bdeF24285013387A47775828bEC90b91Ca9a5F",!1,!1,null,null],["fantom","stargatetoken","STG",18,"StargateToken","3045022100f6166eaf899da2e93998cfca31837507099e2d327ad7f24aeeb4a257f94d3fe00220104fe25c70c3caf824f2db92327674e56267e90aa8a53fb6fd417ce4984bb6a4","0x2F6F07CDcf3588944Bf4C42aC74ff24bF56e7590",!1,!1,null,null],["fantom","sushi","SUSHI",18,"Sushi","304402204ff198a04c787bc2814787ad1fb3b8381e2890a9bea7a80f4e7c26a9e32171910220769d0118d0345391a29b1e7bdea3786ce5b1d35a5eab99a6690912c4cd09bd5d","0xae75A438b2E0cB8Bb01Ec1E1e376De11D44477CC",!1,!1,null,null],["fantom","synapse","SYN",18,"Synapse","3044022057a508de0a635816a0e3c4d0bf7e8ee3605ae98b91c0929c976a71df67912f000220493f30e5bdcaa941aedddd5def7306477da1a59b4bc323d5b263fea0d4f5c46d","0xE55e19Fb4F2D85af758950957714292DAC1e25B2",!1,!1,null,null],["fantom","synthetix_network","SNX",18,"Synthetix Network","30440220197736f9f04552e9892660b0eb8ac766e852cd841200b3f81991fae8df6b1b54022053b70e2b03ae17db0b4cf591b9180c22d27c3d6a799aecd6ee64756a669439d5","0x56ee926bD8c72B2d5fa1aF4d9E4Cbb515a1E3Adc",!1,!1,null,null],["fantom","tarot","TAROT",18,"Tarot","3045022100a1909991e03775bdf8f11cdd78a950f9431172b0a6d7e78a9d134b971af4aa1202206167ed5532e07afc59e418fd77f47b1bed66b676d1a553ad5e04d4bbdb93e0d8","0xC5e2B037D30a390e62180970B3aa4E91868764cD",!1,!1,null,null],["fantom","tempus","TEMP",18,"Tempus","3045022100b95bdcdcbd55fdeb4148e9573de4eacdd815f24b14bf19e56c16be6d1c1e7ef0022028b38fcd9e341a27e1c27703962f8493403e7cfc6d2ff8080b42acfc4ffe5581","0x1c174f6AB0753162befbB916c69dEF2cc1bfdEc1",!1,!1,null,null],["fantom","tetu_reward_token","TETU",18,"TETU Reward Token","3044022010dc6cdfdafec5532f8575064a7eeabedaa9e04c38ee97d17b7f81c631c3bc600220577f52a0d15e04ef23b6445427e4e5e2d855a855f3abd9f2fa1c91153f4bb278","0x65c9d9d080714cDa7b5d58989Dc27f897F165179",!1,!1,null,null],["fantom","tomb","TOMB",18,"TOMB","30440220286c3231dd7e886cca7d6685f8b5ce9709ea734b10bebbd4e069b9cd6e4c79f8022040a3aef3f66ae0f9fcbc7e23cdce3fdfaad407879bac015ecf8d498f23f029e9","0x6c021Ae822BEa943b2E66552bDe1D2696a53fbB7",!1,!1,null,null],["fantom","tor","TOR",18,"TOR","3045022100b9a4ab304df013d524f905b544089806ccff8404f689e5537fa3e6ce93e4508b022077cad509e55f213491d3f26f6fd2adefac57f4efc78e2c32ed10677a3a4d21f9","0x74E23dF9110Aa9eA0b6ff2fAEE01e740CA1c642e",!1,!1,null,null],["fantom","treeb","TREEB",18,"Treeb","3045022100fffa158366611edeef796acc12198f5ce7d10616a4988527e5e2de72cd201a5302200baa6b03a5f461c33d097bcc27f40853b1fa73ddc371e2f1151490144da77932","0xc60D7067dfBc6f2caf30523a064f416A5Af52963",!1,!1,null,null],["fantom","trueusd","TUSD",18,"TrueUSD","3044022003e5ae94fd53aaee042a4395fedb1ced1b7cf1788c29bdba495cc3ee85b9d86002207c6bc234cce52f2b5224ab2cc088c1077c5e4ae7154162127b77e1efead92916","0x9879aBDea01a879644185341F7aF7d8343556B7a",!1,!1,null,null],["fantom","tshare","TSHARE",18,"TSHARE","304402206a6aa1236b0b65dc0d41d475c2e7ad95fc3e5f03af7d3087902133218db1aa690220033d7891592fbeb97cd387e6b2ef46da889098c06e14b2c3aaaa8159fd9e7d39","0x4cdF39285D7Ca8eB3f090fDA0C069ba5F4145B37",!1,!1,null,null],["fantom","ultron","ULX",18,"Ultron","3045022100f688c3437fa77570be1fab839cdefad6602f11eb1e3893abcec070bed922d1ec02207527f3104cda462c3b9684f02a6573a2417435d06491b12d01a0f039dae4088a","0x8867F422Cd9Cf0C66ba71D22bC8edc641e91949d",!1,!1,null,null],["fantom","usd_coin","USDC",6,"USD Coin","304402201e1429d9fb00b0b93180b9f28fa2ebf909e45e34f6ea08d5359531903dc82aa102200e32f7484de544cdf62bd7813a758d354a13cf1d741277e004c57f8e4a97a270","0x04068DA6C83AFCFA0e13ba15A6696662335D5B75",!1,!1,null,null],["fantom","vox.finance","VOX",18,"Vox.Finance","3044022011bcb88c91ec952196f7f6c10cb9951db41d54809a46df56f4620fc2f16eacfe02203912f732b40ec52b02cf7f05fcbe6bced48c0c280510263de9b31e8c198dfcad","0x74b4db963738A2A95bFCb1833B123495Ccc220e2",!1,!1,null,null],["fantom","wigoswap_token","WIGO",18,"WigoSwap Token","3045022100b9f46ab28fc74289c1e04a905eee0a2d4023e20ce855f04db11e888936b89f9b022032392cd413fa60bfee4f93674731643c28c6f6b902518056ad82a439849ec1a0","0xE992bEAb6659BFF447893641A378FbbF031C5bD6",!1,!1,null,null],["fantom","wolfsafepoorpeople","WSPP",18,"WolfSafePoorPeople","30440220156225c3d35263754c65729f3b1406a22302bae1e025b36cbb17cb12a6caee9c0220234aeb646ca449fc82c3acac55f7d36cb56733247818cc449171ec83ec097ca8","0x685A211c9D96D0C8c9d22b7aE309538d4C69c15C",!1,!1,null,null],["fantom","wrapped_banano","WBAN",18,"Wrapped Banano","30440220494baaae551596a8f26a68e494e551d4a735a11b986bc79f9c7da011dcc71e8902205c21ae422f8bb3caf30a5d07d4cc9048ab9a4030869340192f3d8961156a26b8","0xe20B9e246db5a0d21BF9209E4858Bc9A3ff7A034",!1,!1,null,null],["fantom","wrapped_fantom","WFTM",18,"Wrapped Fantom","304402201093b434741da7b34e66ad5bab949adc1cac2e36266de8a75825035e478b7df80220768e893f61b7bde6cdc34d94257d8094a8276e2b3a2c329de45ec74d6b448e97","0x21be370D5312f44cB42ce377BC9b8a0cEF1A4C83",!1,!1,null,null],["fantom","wrapped_shec","WSHEC",18,"Wrapped sHEC","304402201836599460248c92166eef8832ee5d2b5e961b2c54a989448201f37baeb0289202207a1a38501c2a2fce3365a32d05aa2ae10221aeff0987ea91efe192899b95e410","0x94CcF60f700146BeA8eF7832820800E2dFa92EdA",!1,!1,null,null],["fantom","xen_crypto","FMXEN",18,"XEN Crypto","30450221009a49639b8529aa0744e6ff8da1e9a8c955c13223a9c2c4bec8bf1e0f662f6a7a022067f07886bff6755f3f16c9b883b5d100ebabe53215036dafbb9f464d38ca392a","0xeF4B763385838FfFc708000f884026B8c0434275",!1,!1,null,null],["fantom","yearn.finance","YFI",18,"yearn.finance","3045022100b4c030dd9275f2a312c238cadcfcd903e8ead31101c96450e621d97299fefb1e02207e979c3929a34c18bd2879fa0579a5e9402ddec76e33c354a8d20195298641ca","0x29b0Da86e484E1C0029B56e817912d778aC0EC69",!1,!1,null,null],["fantom","yel_token","YEL",18,"YEL Token","304502210095c6d5b476cf1b44f2c87108326ab9b1b203172c99546c5ec0aeb286257bac4002201a74884ed7d7a871255b48ff3cc4030cd43a86d7dc982e3f03c2e573d64ed880","0xD3b71117E6C1558c1553305b44988cd944e97300",!1,!1,null,null]]});var ZC=U((EW,YO)=>{YO.exports=[]});var YC=U((BW,XO)=>{XO.exports=[["moonbeam","avalanche","AVAX",18,"Avalanche","3045022100d5f66b11c4364b11b09c04d8c5cd310cd2b453a4826c3437f07a9cf9b9608c0302202cd3f63a36da8795fa889f971db2c9f43415b4118410aaee8fcc469bdf0a4f27","0x4792C1EcB969B036eb51330c63bD27899A13D84e",!1,!1,null,null],["moonbeam","axelar_wrapped_atom","AXLATOM",6,"Axelar Wrapped ATOM","3044022027dced919ca0ad813a4e5c7a9c06c0ba738f5c47b5a30f170660cd2c3429f3e40220379aad7470044165a17069bedbd27fb7b4ad036af614d502a69d2b8efa963c77","0x27292cf0016E5dF1d8b37306B2A98588aCbD6fCA",!1,!1,null,null],["moonbeam","axelar_wrapped_dai","AXLDAI",18,"Axelar Wrapped DAI","304402204f47b4ccd41e16ecaba6cb8e3adf42e0cd837d327019cbb8d6334b87f5e81f9602205112e08e5b43710043ad19e7b1482675b021bd116ed409d73dc0f3f64c95c33e","0x14dF360966a1c4582d2b18EDbdae432EA0A27575",!1,!1,null,null],["moonbeam","axelar_wrapped_frax","AXLFRAX",18,"Axelar Wrapped FRAX","3045022100fe36930784707556bb85503908cb7546026a0b84d476f07dcfe4cf7fdf1c92ea02205809ce396e55dcc4662cb39ae715665b1294dba3a4881bddef6d2b5c24c832dc","0x61C82805453a989E99B544DFB7031902e9bac448",!1,!1,null,null],["moonbeam","axelar_wrapped_luna","LUNA",6,"Axelar Wrapped LUNA","3045022100d22575827536c2d1ce20fbd2c2e2f9a2c62d318a835e2591a5ef4dafee337282022050ad850bcb5b3fc6dc85d6107c4d29d1e02c947f479571d419d83dc6282d2135","0x31DAB3430f3081dfF3Ccd80F17AD98583437B213",!1,!1,null,null],["moonbeam","axelar_wrapped_usdc","AXLUSDC",6,"Axelar Wrapped USDC","30450221008f40aace27f9f243d71360cdb898928eda13548ac3a82854930cd572053952220220632d02d50ca270ce33788002d44be8cf5ce3cf5777c70d6394074045f5255f6b","0xCa01a1D0993565291051daFF390892518ACfAD3A",!1,!1,null,null],["moonbeam","axelar_wrapped_usdt","AXLUSDT",6,"Axelar Wrapped USDT","304502210087355c9ff6018dcf32a6be979e8c21338f9b872f022a818a8402f57b073acdf002202830e2fb201fb8e95f209309fb3640067144f49b71eff4a8c419292b5ef751d9","0xDFd74aF792bC6D45D1803F425CE62Dd16f8Ae038",!1,!1,null,null],["moonbeam","axelar_wrapped_ust","UST",6,"Axelar Wrapped UST","30440220340b22914f4a8782df447bd692e6e4df722ee0d2e366ea6f5bc7beccc00e8610022047f3a2ad0ba1a18374fc7035aa125d8c7c436afc24d37f93cb74761213366f51","0x085416975fe14C2A731a97eC38B9bF8135231F62",!1,!1,null,null],["moonbeam","beamshare_token","SHARE",18,"Beamshare Token","3045022100830561a3b711ccce338d5acab31169dfa878e2b2d69bf504f89c6bdaef2503cf02202ce33d76d72c7b201c0bd9c68ab9a61ab422294f967cb6911076dad4d5bfeaf2","0x4204cAd97732282d261FbB7088e07557810A6408",!1,!1,null,null],["moonbeam","beamswap_token","GLINT",18,"Beamswap Token","3045022100e206b65cf4d74ef2bc4f7fac87e8340dd3b31cd6837b153acdfeab09841cb7290220119d3cee6f0e3287df60ac030ebcaaca83bfec03554c0dbabdd395993b090f4b","0xcd3B51D98478D53F4515A306bE565c6EebeF1D58",!1,!1,null,null],["moonbeam","bepro_network","BEPRO",18,"BEPRO Network","304402201c9d5a97a033a70d3284e8fbabf2b6d9e4133316c9bbc9d56f33d6a8cd96c11202205995928828e94ccf7b01f86d6402ee9206a85ae9ed4b95a642fddd4d63dd04bc","0x4EdF8E0778967012D46968ceadb75436d0426f88",!1,!1,null,null],["moonbeam","binance","BNB",18,"Binance","3045022100927eb8ed4ebd3a3d60fc90ffc03cad2d39f09c168ee7e5a1daf54f1f39517961022000ffe4720841cdabd6fd5309c5dc9d7f20b827e011848ba3bf52cf50de58fc76","0xc9BAA8cfdDe8E328787E29b4B078abf2DaDc2055",!1,!1,null,null],["moonbeam","binance-peg_busd_token","BUSD",18,"Binance-Peg BUSD Token","3044022073baec1cbd51e18b4728b71c96aae0946c2553b3f62ae666155f115a27a99d5d022071b523c28e2258aeb9b8ef3f883bc02509fefc572a0e974853d790721a2037d0","0xA649325Aa7C5093d12D6F98EB4378deAe68CE23F",!1,!1,null,null],["moonbeam","boba_token","BOBA",18,"BOBA Token","3044022011d940aae6180d7917af55e0f8e4756f4d5d66518ba302e9b3ee672299333d74022065a9344f77a836de8a883dbae45c292e0807ebe449f5b6ffef37e5c63d2afd22","0x18D17A9fD652D7d6a59903E23792ab97F832Ed6C",!1,!1,null,null],["moonbeam","convergence","CONV",18,"Convergence","30440220566617fb254683585be9bf84ef6243e1cab7e31a2420d5982076bc80aaeb418402201406dd54c4bc0abae41e50fea017c11f9f1e34cc639ee6f3e33ac2672ae56f37","0x8006320739fC281da67Ee62eB9b4Ef8ADD5C903a",!1,!1,null,null],["moonbeam","cougar_token","CGS",18,"Cougar Token","304402205b7d2eb42e95fc401b95f8d8503af36c531ef3aecef1848df3d5123ad6bfd05202202980b9c5db64cfaa5ba2be4ef6fdbe6cd93c98ca0f208d0d684b8215de2896d7","0x2Dfc76901bB2ac2A5fA5fc479590A490BBB10a5F",!1,!1,null,null],["moonbeam","dai_stablecoin","DAI",18,"Dai Stablecoin","3045022100dcff3d7c044ae02dd1a492d1ce014de26443a1b4ef28236f8641bc3fd93bbfe8022008a8c6b445dd55848570d84ed854d1d44fc11879375fad67d822a7cc94350031","0x765277EebeCA2e31912C9946eAe1021199B39C61",!1,!1,null,null],["moonbeam","e-money_eur_stablecoin","EEUR",6,"e-Money EUR stablecoin","3045022100fda4a863fe819622e02e85a96d0d0309e9710c89206975ac9b60c1c41ae13da0022041f509cecb02bce355e4e83980d111e7592c212c8877e195cc80f9c9e77d4653","0xDd26a5c8Ae5b60Bb14aEcED892A052CA48A2e915",!1,!1,null,null],["moonbeam","e-money_ngm_staking_token","NGM",6,"e-Money NGM staking token","3045022100f3b0477cb4f091bfb9269b1792a4dce5b0c30af63d1bfcc0a3a7e022690c61d7022029237f9854c73cde1a26ec117621126a41b23977a81d3eb3f13ec686aaaf5209","0x08fe7A0db575c2a08d76EEcA71763E48C6e60F45",!1,!1,null,null],["moonbeam","energyfi_token","EFT",18,"Energyfi Token","304402203fad3334b1b22aed4906b0402e51389dd8e8b8ad626d6d09f8585686fcd5695002205ab93f94e14c752b2dd582e1bac9df9d9108b5cc5336c46517ecbc8104d8c4e7","0xA423E7eEB60547d9C7b65005477b63ae7CE67E62",!1,!1,null,null],["moonbeam","ethereum","ETH",18,"Ethereum","3045022100db20de2599fb1a5ceab4d2a29c1e5fa1e2512fb5249e57225ba0a487569382d60220588c3c08c5729369b0f5f175523271e3719c9a7773f2144c178e0ef09431610a","0xfA9343C3897324496A05fC75abeD6bAC29f8A40f",!1,!1,null,null],["moonbeam","fantom","FTM",18,"Fantom","3045022100f118016bd34d9facb6b7f937092f9e8cd4ddb61df313925fdee82a338aee10ba02206ee395afcb4b0f5d62fd519c8351f218a062d03dd9d73fd38a7a3191cb6d5c99","0xC19281F22A075E0F10351cd5D6Ea9f0AC63d4327",!1,!1,null,null],["moonbeam","frax","FRAX",18,"Frax","3045022100f0d0a7f18e04f0407e979b0708d4453e747004578b80ff4124b124de2ec8334702200cd09e807e85381ee95855fef6bcd1727bbec83f2aefc757b7d7a71922ef466a","0x322E86852e492a7Ee17f28a78c663da38FB33bfb",!1,!1,null,null],["moonbeam","frax_share","FXS",18,"Frax Share","30440221008c17f21a0f0616714e3e2b6fcad529de35ee66326cab74d4631de5ea4b470374021f7daafc3992392189d9d1c3bd6aff44be9c48060efc2e6a52d83b47f5afc288","0x2CC0A9D8047A5011dEfe85328a6f26968C8aaA1C",!1,!1,null,null],["moonbeam","matic","MATIC",18,"Matic","3045022100b6c3595f1d4bf3cbfffc42fed6a44ff4a09b5a51568ebcab0ba2fa4651b2de4e02201c3f0d31161ba79a8b7df5d6d2624d58b60c487658d25b112ef1d36182a2cba6","0x3405A1bd46B85c5C029483FbECf2F3E611026e45",!1,!1,null,null],["moonbeam","moonbeans","BEANS",18,"MoonBeans","304402207acb61b3cee9aac9e558e8eae39f312a3c8f147a47816dfd1072e1bccdd5e8e802206eaa074ab893cd54b20ff463b157369bd7991700bcbbaca09beb73c86a17442b","0x65b09ef8c5A096C5Fd3A80f1F7369E56eB932412",!1,!1,null,null],["moonbeam","stellaswap","STELLA",18,"StellaSwap","30440220059dd67a36c013f0b7fd53bee0fff4c3a95afed887911938e1c4b994c13b67b702206431842aed7bb84e53886f6f38eee65b125448a2e12edceb6b03ed7444b1607b","0x0E358838ce72d5e61E0018a2ffaC4bEC5F4c88d2",!1,!1,null,null],["moonbeam","tether_usd","USDT",6,"Tether USD","3045022100d8ec2246e1ac69364a50376f85f5e45149462559181eca3e047aefce91e8b39602204cc0e9617d98e292d19a52bc7ff0cb45b5179835e5e51656ac2c1d2ace6f28ff","0xeFAeeE334F0Fd1712f9a8cc375f427D9Cdd40d73",!1,!1,null,null],["moonbeam","usd_coin","USDC",6,"USD Coin","304402203069ee485bada7b9b95c5d711d61bfa7676bf59ff190df758e7e05068ed2b87402200a21a05ccc2f12e6afe5294f61193d6e4fa0dd15aa69a7d4e8f71b38f3d79bb1","0x818ec0A7Fe18Ff94269904fCED6AE3DaE6d6dC0b",!1,!1,null,null],["moonbeam","wrapped_btc","WBTC",8,"Wrapped BTC","3044022002d1d13d30a9a49f7f1eb57ff68992f3d9141021280567ba583232f96a62ac51022069e10294b1e1652eae54365f0dc55c7eef50db94011f1dee27a72a4054d90913","0xE57eBd2d67B462E9926e04a8e33f01cD0D64346D",!1,!1,null,null],["moonbeam","wrapped_ether","WETH",18,"Wrapped Ether","3045022100bcd6bdb50a890b7c10c3f66be24c6bdc456d5ff6c7eb04496c71c7c4be4bc8a10220609bb3ae2a2f992e60100c4877fdf36ff75977f165cc3a16ed9d3b76fb72f77f","0xab3f0245B83feB11d15AAffeFD7AD465a59817eD",!1,!1,null,null],["moonbeam","wrapped_glmr","WGLMR",18,"Wrapped GLMR","3045022100887e24a7a4f04ed8b1b6670650a15f9811e1f81d0aac55639fa93c148dc3785d0220510ff1d1d90c1fd9d9352b8ea2ed1cc526449a5a6886b1e868e589ad8efa8642","0xAcc15dC74880C9944775448304B263D191c6077F",!1,!1,null,null],["moonbeam","xen_crypto","MBXEN",18,"XEN Crypto","304402202179630119f465508d455f8a66898ece1324b9e91925d052f1bfc2670a5f1c97022050e49709718f0bf685022d7de028103be0b3d0f3cf8960759d7063d8ba784992","0xb564A5767A00Ee9075cAC561c427643286F8F4E1",!1,!1,null,null],["moonbeam","xstella","XSTELLA",18,"XStella","3044022042cb254f86a64b38a53a0df55333ab6277dcc7224805a7aadeba7d8a51659ec0022030db8768a75bc4ddd3d500a35957268e8989952a1f991fa523e2bde2f3ad143d","0x06A3b410b681c82417A906993aCeFb91bAB6A080",!1,!1,null,null]]});var XC=U((hW,WO)=>{WO.exports=[["optimism","beefy.finance","BIFI",18,"beefy.finance","30440220329095af63c6302ed1d0292098831696318873bc5f40704228ff5bdac3afbd30022067a10e3da653bce0c9e9c862c0457a65941bf1460acd90ceba5b7559abd59142","0x4E720DD3Ac5CFe1e1fbDE4935f386Bb1C66F4642",!1,!1,null,null],["optimism","bob","BOB",18,"BOB","3045022100fbbd4db017e6655172b5b11ab6de7bff40e4a1451a2dffb93b843993bcf1b3a902201e167c549e02595e4e0106f1118457a1aa323028783ff14cb76d6499de9b5c5a","0xB0B195aEFA3650A6908f15CdaC7D92F8a5791B0B",!1,!1,null,null],["optimism","chainlink_token","LINK",18,"ChainLink Token","304402200fa13f44802c6337be3666068808ba446ccff97a3d252aee7cf6570b0b2d0cf4022026fd7031e02f0f471c59f471bde5c1f0d4534c05b12a113b39db9e4a4eed100d","0x350a791Bfc2C21F9Ed5d10980Dad2e2638ffa7f6",!1,!1,null,null],["optimism","dai_stablecoin","DAI",18,"Dai Stablecoin","304402207125b8d3845d2cebcf2c25b040ff9e8bfb17cf739ed2ad853992abacbc5974d402201f1bc8bd9fc3afc51b5500b58136d1c78f01abfdba6e32e960ce2b6a612874e7","0xDA10009cBd5D07dd0CeCc66161FC93D7c9000da1",!1,!1,null,null],["optimism","decentralized_usd","USDD",18,"Decentralized USD","3045022100c61d0a0cf1ee5a6f3cdb2267248f992f2463e6e60d84466cf25c03e75b23957b0220589cc6662e348b860455bd9ab3effe29bde14ed0e5ac6c82c5e2baf8eb8e6d7a","0xC22885e06cd8507c5c74a948C59af853AEd1Ea5C",!1,!1,null,null],["optimism","dentacoin","DCN",0,"Dentacoin","304502210083784345d8fc7a6928932d61050a0c4d58c7480de58cea30887839156ef3d4ec02200d48e39de4ce8835b72acf3b75269cb5a6112c2e2fe87be9423e5f77c2463517","0x1da650C3B2DaA8AA9Ff6F661d4156Ce24d08A062",!1,!1,null,null],["optimism","frax","FRAX",18,"Frax","3045022100ebbdb9e4c48cde940e0607fd864793b0c96c166c31a5d5a0161d1f2e81a0e0ba0220698920c290bad8e3d2a27e035acaa2584644a19ed5051b67f91632f5b27a102c","0x2E3D870790dC77A83DD1d18184Acc7439A53f475",!1,!1,null,null],["optimism","frax_share","FXS",18,"Frax Share","3044022028f81a27d487135a5830142365810e79e98f97631717d86085af339da55e9f70022038e4ee8564f75f6506b7861e1ff3e122d04b364743264b83405f36dd63fcfacf","0x67CCEA5bb16181E7b4109c9c2143c24a1c2205Be",!1,!1,null,null],["optimism","hop","HOP",18,"Hop","30450221009a3597b3096a4b164537b8c0718bf813c183ed1c79dcab9a32abe35ecb8179f90220119905c8df49644077e86e7f643707ca763730173007f5bc46c271f6c9eae816","0xc5102fE9359FD9a28f877a67E36B0F050d81a3CC",!1,!1,null,null],["optimism","ironbank","IB",18,"IronBank","3045022100f2d74bccb47638b91411e4fe1b90831047511593658df56154c2e79a173655cb0220663e4e83172d03f55ee7d9092ad7d523a9f9430ec63babd47627c6242215b71b","0x00a35FD824c717879BF370E70AC6868b95870Dfb",!1,!1,null,null],["optimism","kyber_network_crystal_v2","KNC",18,"Kyber Network Crystal v2","30450221008d76ff4214064282c1cba9e6ce78f866b4aa87c3456d377aed47a28455517f5602202e50bd5913c89242f8016e23bb138bba6e86b6bced9f8c8211e2fbd4eed97d68","0xa00E3A3511aAC35cA78530c85007AFCd31753819",!1,!1,null,null],["optimism","lido_dao_token","LDO",18,"Lido DAO Token","3045022100b9d8e3db88a81c251e5a9cca1bb8f97b5eb3f2b7048e97bbc419df47a83badec02204dc1eff4d55a606f77de7e1becb33fe4eaf8e46bb11e8039fe51baa036593534","0xFdb794692724153d1488CcdBE0C56c252596735F",!1,!1,null,null],["optimism","o3_swap_token","O3",18,"O3 Swap Token","3045022100c721c0def773f1b915977c8ae72d7f79d84fbd93a8b6dfe13cc276e70fbdd2e302202db70c8be519738afbfb53dcae5e92b13ae992ded6c6a02cfd7d22c99bda7958","0xEe9801669C6138E84bD50dEB500827b776777d28",!1,!1,null,null],["optimism","optimism","OP",18,"Optimism","3045022100e465d5b7725838059aa5bbd292cc1693fc8bc0eef773473b3cc62365c605151702200e9376c426c530ad91543de26db7089500337e5468a460b422775b04197b2249","0x4200000000000000000000000000000000000042",!1,!1,null,null],["optimism","pickletoken","PICKLE",18,"PickleToken","30450221008f1e2eca4b9e6aa9864355c9f77b2a406a3baf1b57d8f52b5d39e59f270a080402202f4db688ee8c6e29de64e3e7c7fa6b721d5c872dd77b8905b9d6f4685ad35c6a","0x0c5b4c92c948691EEBf185C17eeB9c230DC019E9",!1,!1,null,null],["optimism","rari_governance_token","RGT",18,"Rari Governance Token","3045022100fa07c34328c9d82b31c4f16fae0e4a0a9bed7172eec254880977b8dcc9023cc202201fcc921a8ffb997454eca9ad2ad6754a0982f0bc7c6ada2082d32b1bdee3d60e","0xB548f63D4405466B36C0c0aC3318a22fDcec711a",!1,!1,null,null],["optimism","roobee","ROOBEE",18,"ROOBEE","304402206e99cb25f0f86c396b500726391fb9eea2ed629ae1b862853f617267bc10911b02204fe64b9eccaf4fb955f78b4753c014d28bb10e460742caddc882ec806cac6fa0","0xb12c13e66AdE1F72f71834f2FC5082Db8C091358",!1,!1,null,null],["optimism","synth_sbtc","SBTC",18,"Synth sBTC","3045022100dd4ecd099147302f60d7a68215da37219e9ece22b782d1d111330459f2d2db32022007e06c7f8b5cb49067306518e9601eec513d2099b50c2b81ca3fc9bc407c23b4","0x298B9B95708152ff6968aafd889c6586e9169f1D",!1,!1,null,null],["optimism","synth_seth","SETH",18,"Synth sETH","3045022100bc48fba9bedf2d5af4ffd580a2ef8799d623793b8984df1d959ca98e7b30057802202dc2698eca42191e832cbd0eb4148f421e17f5a04b62f34693328525292efa60","0xE405de8F52ba7559f9df3C368500B6E6ae6Cee49",!1,!1,null,null],["optimism","synth_slink","SLINK",18,"Synth sLINK","3045022100bf1d1faefd0b5fc3cd6040d021ee3722d6eebfd0d0ec774e79e37d877067f302022066dd6f95fa50e57a45e7abfb423777a49751209689b5a33c6bf2d1f1feecce18","0xc5Db22719A06418028A40A9B5E9A7c02959D0d08",!1,!1,null,null],["optimism","synth_susd","SUSD",18,"Synth sUSD","3045022100aec1237635db13ba9b3732ed54b7553ab18f9d361d95a5fb3cd4d7e6907b0d4e02203698033fe7f52a031c4898c6f1d6756c989ca1553fc114ac8ecef586652cb15e","0x8c6f28f2F1A3C87F0f938b96d27520d9751ec8d9",!1,!1,null,null],["optimism","synthetix_network_token","SNX",18,"Synthetix Network Token","3045022100f9694daae21eae34fbb99229ca60193a95127d0223fef4b101265fef2da09ed0022061aa3106a76692dee9981aedcb35e75b5228718906f570377500149e08ab7dfb","0x8700dAec35aF8Ff88c16BdF0418774CB3D7599B4",!1,!1,null,null],["optimism","terrausd","UST",6,"TerraUSD","3044022072ca7f6eaffac83db50f3524f076f882bb79c0eaa645c7b6a910f36374694cfc0220355dd4c1c068ad39c8e370e697e5346e183724488b1afb8e2bb949ab55b0601c","0xFB21B70922B9f6e3C6274BcD6CB1aa8A0fe20B80",!1,!1,null,null],["optimism","tether_usd","USDT",6,"Tether USD","304402202a3067d53cf1352cb7d6998549566f85027061076f1777bae4ffb5bc7105c5cc0220040a655bc5d1fbe020792536c809b1fc9aa26deb7dd8e8b4f66dfdb02e9c665f","0x94b008aA00579c1307B0EF2c499aD98a8ce58e58",!1,!1,null,null],["optimism","thales_dao_token","THALES",18,"Thales DAO Token","3044022046d119d67b3f0e49b1805e113b6048e697e0467ec08008ff912d7009098f2739022015adc956d690d796a4623935fe8b9d9858b2c377c2c2913f70a6cecf8560d20f","0x217D47011b23BB961eB6D93cA9945B7501a5BB11",!1,!1,null,null],["optimism","usd_coin","USDC",6,"USD Coin","3045022100a3f74112f7ba017a2bd7bd064406233884c178d8fb14bf7d3cdb6b090a5de4960220323982e37f6b3ed1bcabc41cd26604ced44549507019e0cb4c15b5badd97a435","0x7F5c764cBc14f9669B88837ca1490cCa17c31607",!1,!1,null,null],["optimism","wrapped_btc","WBTC",8,"Wrapped BTC","304402204f3e3a20910d0477597770998077d11761b00f6b04ddde49b6f5b3821d1080a0022061f797d863b270d4dc0cfa9d59393f46444aa4b9630c7d703fc9f8bc89ef5b40","0x68f180fcCe6836688e9084f035309E29Bf0A2095",!1,!1,null,null]]});var WC=U((CW,KO)=>{KO.exports=[["polygon","(del)","DEL",18,"(DEL)","3044022054dda4cba0d696d3f0b4e76200ac4682f396721036a6feb806fa8d623317760e02207a5ebde40cdd28d947dc49371bdde1beb915d776ac0b6e4ed8077d4bb7d0af21","0xec6432B90e7fD4d9f872cc5C781f05B617DB861E",!1,!1,null,null],["polygon","(pos)_compound","COMP",18,"(PoS) Compound","3045022100bc6c39d0831aabe4207836ccfef88f0331dfc8b764bc4980f6bfe0fd2546c5cf02201636c8b88bb165998f86ff398a3da68e9557b3ad6f6d7f33e99b162ba7a7b201","0x8505b9d2254A7Ae468c0E9dd10Ccea3A837aef5c",!1,!1,null,null],["polygon","(pos)_dai_stablecoin","DAI",18,"(PoS) Dai Stablecoin","3045022100b74ee418eb7eef1cde0876e9589a6ba217a3318ad840bb797c68adb4ecc57bd4022014fc46f93500576aca05034e243d12f4a28e56b81a3606d4c99d617ebebadaf5","0x8f3Cf7ad23Cd3CaDbD9735AFf958023239c6A063",!1,!1,null,null],["polygon","(pos)_tether_usd","USDT",6,"(PoS) Tether USD","3045022100a9588096900e77f2989386c862582b225e587ba063401e53e953b94d55a04698022033fa8853df43d6ca84b10561aff0d9d804a2d0a49684cdf084a86732e03209b7","0xc2132D05D31c914a87C6611C10748AEb04B58e8F",!1,!1,null,null],["polygon","(pos)_wrapped_btc","WBTC",8,"(PoS) Wrapped BTC","3045022100839e22224fc6ece318210c2cd6508d4e4e428c718e36a44b1c3590796dd4fdbb02202e86a2e423132e2fd0e2aabb580b1e06112c7de74f540e17e4042849877abcce","0x1BFD67037B42Cf73acF2047067bd4F2C47D9BfD6",!1,!1,null,null],["polygon","(pos)_yearn.finance","YFI",18,"(PoS) yearn.finance","304402206d3c20aa3d59d2e41123c6a4d9f497b7af19b7d2a40a8149669debc6b3adbea0022043d30baa1b9ec44cf11d7b6b4f820bed89518032aa40a8137c6b2ca8643f794f","0xDA537104D6A5edd53c6fBba9A898708E465260b6",!1,!1,null,null],["polygon","0xbitcoin_token","0XBTC",8,"0xBitcoin Token","3045022100acea17a49b701f45bf61999c920f223ebc1a65334ae4b109cef9e38a01bfa0e302207c8703d468b66e523b6c568aa0a57de437362dfd54e0d282b7029fead9fd5e7b","0x71B821aa52a49F32EEd535fCA6Eb5aa130085978",!1,!1,null,null],["polygon","1inch_token","1INCH",18,"1INCH Token","3045022100e379fb6706bb16d8f39ed26a4f0c7e105a3fa1b50e01176d2702b6aba2209fa502205c347dd1fe3a1447a10ced5de9b58a01661d2381e4f18ef36dc51a03dcbb02e1","0x9c2C5fd7b07E95EE044DDeba0E97a665F142394f",!1,!1,null,null],["polygon","99starz","STZ",18,"99Starz","3045022100f5f00c980847863203063370bb804b017dd716d0fb5a77cd66eadf2379e2cf1f02203756f1f44ee8b312b8a242845eab32e65722df3e15c43b7115e699a46baec787","0x2c92a8A41f4b806a6f6F1F7C9D9DEc78DCd8c18e",!1,!1,null,null],["polygon","aave_(pos)","AAVE",18,"Aave (PoS)","30440220456a4411c8ca81b689f3f80ee2b198a754f8795194966b596469abef607cb34b02207a1543fcf5ceadd67a2fd87b57a71cddd74c3fba0a5973a765ac5b25eb7691d6","0xD6DF932A45C0f255f85145f286eA0b292B21C90B",!1,!1,null,null],["polygon","aave_matic_market_aave","AMAAVE",18,"Aave Matic Market AAVE","304402203b79fc40f823123941b2e22262f7ca5492f93c24c634bcfab3381f07b8190e230220367863887615b626da04e149c1ffc4db11dcb72792d0776588d3bbbcd3c0c656","0x1d2a0E5EC8E5bBDCA5CB219e649B565d8e5c3360",!1,!1,null,null],["polygon","aave_matic_market_dai","AMDAI",18,"Aave Matic Market DAI","3045022100ddb49a516633e80020dd6f0c7657e9034ac973e41b0b85ac10c23e530362182a02205354bfd224ed2e7e02d88ad6119a640735b760e089f591684929657ec398090b","0x27F8D03b3a2196956ED754baDc28D73be8830A6e",!1,!1,null,null],["polygon","aave_matic_market_usdc","AMUSDC",6,"Aave Matic Market USDC","3044022007f7b18fba725f141716377f7e44ee6ca8695dd7d0b36a6282521cd0677f25a2022033e28b25305f736c5c62ed798b22da0d9d3a6a1c9f115c32f923da5c0891fe86","0x1a13F4Ca1d028320A707D99520AbFefca3998b7F",!1,!1,null,null],["polygon","aave_matic_market_usdt","AMUSDT",6,"Aave Matic Market USDT","304402201c2a034690a7d69c8fb844856b1d6a891beeebfc6ebc978b02ca62b80b02f11e02206e3b98e8b3f62722553134571b3ff1abc4331ecd05164ad577ccabe9b7183376","0x60D55F02A771d515e077c9C2403a1ef324885CeC",!1,!1,null,null],["polygon","aave_matic_market_wbtc","AMWBTC",8,"Aave Matic Market WBTC","3045022100a8d864178f5f332844e5b8945461efca72f4f4e8f2d82073cd53ae5e65460a490220205ddf05d10acbba4e663eb4dc191b67b06829340c903c4449b6935c2c6cf017","0x5c2ed810328349100A66B82b78a1791B101C9D61",!1,!1,null,null],["polygon","aave_matic_market_weth","AMWETH",18,"Aave Matic Market WETH","3044022061b6b779525e3df37e6d8e40da163b3edca2f90cf5dbc1e4b6e52f0c956bbcbe022035e3069875ab5c79b7d65efa57e46973d00252cdc40a5deff3460f5e02e597b3","0x28424507fefb6f7f8E9D3860F56504E4e5f5f390",!1,!1,null,null],["polygon","aave_matic_market_wmatic","AMWMATIC",18,"Aave Matic Market WMATIC","304402205a27811f2e1837d46fa0179ed90ec344bbf5c6af49c8dca044a9b4ae754742c502200e2bc57d5260bdc4171b4443c598b6e524915fb7c3021170086664763721c0fd","0x8dF3aad3a84da6b69A4DA8aeC3eA40d9091B2Ac4",!1,!1,null,null],["polygon","aave_polygon_wmatic","APWMATIC",18,"Aave Polygon WMATIC","304402204acb57c748e04647771b9765c5ba5f87b3d46135c7830dbbd57f38441eac6b470220407fd98cc400512c917b04f63e6732aaa33979c572e3e24fca3f61b19e2adb05","0x6d80113e533a2C0fe82EaBD35f1875DcEA89Ea97",!0,!0,null,null],["polygon","abachi","ABI",9,"Abachi","3045022100afe972f846b77c429242b2162920b6dcd2a55147707c47b55b3cd5f4f4a74fd80220087a2d578581b0b26f0c2256bc54cacb3d3c70f8820c765c10e78525f3574012","0x6d5f5317308C6fE7D6CE16930353a8Dfd92Ba4D7",!1,!1,null,null],["polygon","adamant","ADDY",18,"Adamant","3044022058ba00c91c27c8a7073ffeb67cf705f3d7727d34452c5304ac0f0cab3ce428c302206ee94a0e832239d7c4fe771f7fe25acf688881889a64b132f55d6b1a2f2718f5","0xc3FdbadC7c795EF1D6Ba111e06fF8F16A20Ea539",!1,!1,null,null],["polygon","adept_camp_doge_coin","ACDC",18,"Adept Camp Doge Coin","30440220762e327972912294c93ec582c5b90a6f10af4d8da396b5f970c3606d8310e9a002206249837b13a6583aea8316adb068ad5a93dbdd3b94c1eef0889be090906363b1","0x1f02Ec2dD0fF3E31CA893AEC6C3585FE88243dF3",!0,!1,null,null],["polygon","affyn","FYN",18,"Affyn","3044022020aad2b561485c002848f87567440b85c09a72fc6922de66fb5f849d0e817b1a022034418cd446e987dc1925c6a1b69f79d43f5d67990d17982acf876266e1544fb8","0x3B56a704C01D650147ADE2b8cEE594066b3F9421",!1,!1,null,null],["polygon","ageur","AGEUR",18,"agEUR","3045022100dc85017957d56d637e467b40e68d07d97813460da41e71add3394d2b972fd25d0220140468bd6e729a054ee3ff3f8572b9168a68669d1f20d96147f446ed3a4db6d5","0xE0B52e49357Fd4DAf2c15e02058DCE6BC0057db4",!1,!1,null,null],["polygon","aioz_network","AIOZ",18,"AIOZ Network","3045022100d7327187553ba84adc1bc9284238ac7c0068e5d4c17233a1e512eaa4033aee700220631bda671092d9a8996cd44ae39347ba0f3fb0c5d0df655d1dca6b914b4026b1","0xe2341718c6C0CbFa8e6686102DD8FbF4047a9e9B",!1,!1,null,null],["polygon","algebra","ALGB",18,"Algebra","3045022100ffc9b269048fe1268ea09a1eeda0a21f7a9b70c1013ad9e61d47f21950a73773022027caef903f25f2fc8fbe655b764566a988226a6a31db39b6fba999b3636ce7ed","0x0169eC1f8f639B32Eec6D923e24C2A2ff45B9DD6",!1,!1,null,null],["polygon","alpacka","APKA",18,"Alpacka","3045022100b0b76cd225b909c62821339ce3f50178ed723a25eab1a1637e925906ce44927802203087e3fce388318a52ff6fb704d772357f9eaaa946bdd0e930c0b2f2f9726ae3","0x35B72cA980aE863bC9C47C4b571eec37fcb2D1ee",!1,!1,null,null],["polygon","alta_finance","ALTA",18,"Alta Finance","304402204a4c5d68121b99ef76e9b14e16ce8f4240336400930a8af1d87b370b6c7ac4ee02200805a46e52ee3051f63afc81ce9b345fc6eea2ac1eba56b83efb694b936349f7","0xe0cCa86B254005889aC3a81e737f56a14f4A38F5",!1,!1,null,null],["polygon","aluminium","AL",18,"Aluminium","304402203346039acd195beb383da456b3773b83b4b1ccd8b36ec3dd012834cd520c9483022016a138085c387c1dc01768821cf6b856ce524773f0a54686f3c002b967037b7a","0x041b4394F2a1A2EAF7e21460Ef59370789cb1F42",!1,!1,null,null],["polygon","aluna","ALN",18,"Aluna","3045022100ea8ba091c2a7cb77a4154ee6295cef650f31e3efffbb25617239f5a8d4c6d3d902207c1f5cb6d78051a01103f276e4d3d5016ed307eb604e27a6eb9c9fb27fed2e67","0xa8fcEe762642f156b5D757b6FabC36E06b6d4A1A",!1,!1,null,null],["polygon","amp","AMP",18,"Amp","3045022100de0b2a62ac2b686b590e16f5ad304a55fbbb942cd8f1fdf143163a7bfa77cea0022029c0819b4bcd42965b7b44c3e4fa459ef52cdb6933facdae09e3c5244af068f3","0x0621d647cecbFb64b79E44302c1933cB4f27054d",!1,!1,null,null],["polygon","ampleforth_governance","FORTH",18,"Ampleforth Governance","3045022100c5645d780a9d15b5ff91593ac851a778f0d639fa140b63a53a7ddb4146a2739202206ccce793ea9cc19c944fb55974788b13a494a95803ad736ee24fd3bb01f6ceb9","0x5eCbA59DAcc1ADc5bDEA35f38A732823fc3dE977",!1,!1,null,null],["polygon","ankr_eth2_reward_bearing_certificate","AETHC",18,"Ankr Eth2 Reward Bearing Certificate","304402205626e4fc42d2da26e30d6df185804db141f95ba0bc9554a693b694d85c82539a02204a1833c7c05590c71326c02f90c57aa39db4d4221f0e1e5e9f4fcfecbd3d980b","0xC4e82BA0Fe6763cbE5E9CbCA0ba7cbD6F91C6018",!1,!1,null,null],["polygon","anxtrom_(pos)","ANX",18,"Anxtrom (PoS)","3045022100b10facacc7c3dd54b62b5ffbb1e404ae80126619fa4c71e036737250aed5781202204b0a0ac24813c2c74187b0c87206acfe5bb0212a93db0ba3c5d41a930f12ca46","0x24236e003E31B9DBD4fa84bdF2bfB47eFAdCAC3e",!1,!1,null,null],["polygon","apreum","APU",18,"Apreum","3044022022f19f6a5a41ee8f6bcb397cb87cb2b1a552e9c89aaca48fdbbff8f1894c77a5022023832d7dfbafa7d3994554eacc43034c580aaaf74c88fc8fac95ed82f8156bfb","0xC155504787e9430180F33F35eDd7C5eC06Cd5761",!0,!0,null,null],["polygon","apwine_token_(pos)","APW",18,"APWine Token (PoS)","304402205c568ecb05a8c311870a7829984738e8960a078fcf36b62c2a6919b232120d160220289baa2a9a7a77f2902355862530665b37913ba90269ca4403375a07010f6016","0x6C0AB120dBd11BA701AFF6748568311668F63FE0",!1,!1,null,null],["polygon","armor","ARMOR",18,"Armor","3045022100af076c9ab6176715c9361059a33de9d83d7bb33a7c44487e638968fe2d3a099402206c7e70ba8d1bb5e8c0e52dfae1ca44d4c39b8af04c60fca94828d98396076805","0x5de4005155933c0e1612Ce808f12B4cd8DAabc82",!1,!1,null,null],["polygon","astrafer","ASTRAFER",18,"Astrafer","304402206d0fa144db6f8ebee54ad1c917d5701e65f82d3aee1298fce46abc53d1672e57022062148b457c92307ffd842fd2f706c5e56bff26e6fed05025acf9b8debd9968df","0xDfCe1e99A31C4597a3f8A8945cBfa9037655e335",!1,!1,null,null],["polygon","attack","ATK",18,"Attack","3045022100f4eb11351aca840d92c95b81379257200cb27973c0df8ffd88b3df517dbc4581022034213b5f2347448148584bb1a5cd60f86b0513e1c412ce21747a0c4a62e14204","0xF868939Ee81F04f463010BC52EAb91c0839eF08c",!1,!1,null,null],["polygon","augury_finance","OMEN",18,"Augury Finance","3045022100d21d6e7fd83bc5940537b858bc6c6acecae970e8b13501bf25e2b12acb022f1e02201965c2d4f24945dead8914dc2b34f2483f3b9040799f3d17b40dcad3339243aa","0x76e63a3E7Ba1e2E61D3DA86a87479f983dE89a7E",!1,!1,null,null],["polygon","aurusdefi","AWX",18,"AurusDeFi","304402205a98adbbe64abcaf092116db34e86f1396ad60f1d1f39036d77bebabe25f315b02200be64934136d7e4f4ef95d05295a88c43aad76c3a5c031901443e7c3ad349fa8","0x56A0eFEFC9F1FBb54FBd25629Ac2aA764F1b56F7",!0,!0,null,null],["polygon","aurusgold","AWG",18,"AurusGOLD (old)","30450221009ad5aa83db25bc1477fdf25f38af01d421322e747931bb5233d3945b59f002d902203c0870405f19e1638ad40f58aaf8347e2773174bd20f2508a1363549ac01cf2b","0xAEe0ffb690B37449B7f1C49B199E1E3ec6084490",!0,!0,null,null],["polygon","aurussilver","AWS",18,"AurusSILVER (old)","3045022100fa8a5474feef4b2e4b562fe396521834790563cec172121b3c31c05356cdf4670220465becfc9efc01ab7c689a58c259f68594597fe26aa0a121d26242024b9f122d","0xA96D47c621a8316d4F9539E3B38180C7067e84CA",!0,!0,null,null],["polygon","avalanche_token","AVAX",18,"Avalanche Token","304402201e6bdd54a75f2f973842efeeaaec2be0b312789429e0e2d3139582502d272fab0220427abb8a25b7ac659224ff5f3f8253a806b0ea52b8cc0fad227674c9ce1027e6","0x2C89bbc92BD86F8075d1DEcc58C7F4E0107f286b",!1,!1,null,null],["polygon","bac","BAC",18,"BAC","30440220530fab88d00262cce862e93dfa18f0390b70451d73b2ee8ad204b35403fbd985022009075a365756e0e12a8b189d02b7c136459afe05f7d8ecc6afc8654a0a2ccd33","0xcdE5E3D90631cacB842fA86f62dD0fc08A3ce43d",!1,!1,null,null],["polygon","balancer","BAL",18,"Balancer","3044022065dd446f0899eaf96b76e325fcdbb44011aa2cc74c97c8efeaefcba268c8ef88022004b20ead8b2627dfdb27295fd1549390205ffdfb101259c5e52049012e1b5516","0x9a71012B13CA4d3D0Cdc72A177DF3ef03b0E76A3",!1,!1,null,null],["polygon","bancor","BNT",18,"Bancor","304402204b1b00e8d2b713b42b1cac76c4977ba8b327da2e7edaeacdb208061dd28b214202204d3e78d072bfb6bb11a342f4764444bdee2cd5b1cb4e748f0425571dd7021fc9","0xc26D47d5c33aC71AC5CF9F776D63Ba292a4F7842",!1,!1,null,null],["polygon","bandtoken","BAND",18,"BandToken","3044022075f96cea4bb8035072670571807593f8ef1ea06ab86aef4ad07ca3bee21ad1df022076c94c82bee2509c4fe0a7c9db819188ba3805567a9ecca3c98caac8740291e4","0xA8b1E0764f85f53dfe21760e8AfE5446D82606ac",!1,!1,null,null],["polygon","bankless_defi_innovation_index_(pos)","GMI",18,"Bankless DeFi Innovation Index (PoS)","304402205efce28d158faf0e725c1d9737bf576d8dadfb1a9bc94263cf52631bbd1858d202202167d371ca4e308d9c95aec7e1465a018b0d6eb1cc46f045c2393398121ed431","0x7FB27EE135dB455de5Ab1CcEC66a24cBC82E712D",!1,!1,null,null],["polygon","bat","BAT",18,"BAT","3045022100cf93e17a4073c83ddab8b64e01c0c64d6c2cb96a87c3a84a537bc1905933762902205bf6f9e94ee53d75e7c3ee7381703eff8131befbedfd72ec6cbc60d2ff942009","0x3Cef98bb43d732E2F285eE605a8158cDE967D219",!1,!1,null,null],["polygon","bbgo","BBG",18,"BBGO","3045022100af5cf21fffbb1e361097ef063e5a9cf88e91681bb9d83ad33b27bbe9ca6f0c8402204d236a04ac4451a37729261b14669b95b7ad9ad693200b681f8f0b1eba1c76d9","0x3Afe98235d680e8d7A52e1458a59D60f45F935C0",!1,!1,null,null],["polygon","beefy.finance","BIFI",18,"beefy.finance","3045022100be4c0e7ec00fa9fd985b145dea6b86f89ea3284a17912b8de1c1238910f69ad402207b62b18577fc9d8acf3927f6fc3c109ca76eb66366e389e4a86d93d826211db7","0xFbdd194376de19a88118e84E279b977f165d01b8",!1,!1,null,null],["polygon","betprotocoltoken","BEPRO",18,"BetProtocolToken","3045022100db4b16fb793cdfdd83067cbdff8cf6cc0552cb159ee8e0187174bef6fa2224f4022011ca25280fa0eff139fec6e0c76628258d319ff0b37abe24147c623751ea26a4","0x07CC1cC3628Cc1615120DF781eF9fc8EC2feAE09",!1,!1,null,null],["polygon","binance-usd","BUSD",18,"binance-usd","30440220306d65bd1bf54b51405a55dcea267903367f453aae13e7216f6cebb23dcbb6e602203c279f533074b262ca907f0c1c7444ba9cd244154f3d655e03b7383dd346d07c","0xdAb529f40E671A1D4bF91361c21bf9f0C9712ab7",!1,!1,null,null],["polygon","bit2me","B2M",18,"Bit2Me","3044022009f57d54d5f992c035ad5592dac587217fe7d6f7ac14a0fcf99f96c31663632d022003f9e1b826087b30d4df841d32318fd96e009dc92d98411ccc54341d2e0f833e","0xE613a914bbb433855378183c3aB13003285da40A",!1,!1,null,null],["polygon","bitfinex_leo_token","LEO",18,"Bitfinex LEO Token","3044022054e6d7c9f16d4a6128edd523e016180098c29c0585bbe48ea410254e681952a502207c5a3860f2f295f2b07171b2e0724a3e806d654a378e08baedc422f5c7bd865d","0x06D02e9D62A13fC76BB229373FB3BBBD1101D2fC",!1,!1,null,null],["polygon","blackpool_token_(pos)","BPT",18,"BlackPool Token (PoS)","304402207f74e8cc4b32aafa132655f8da80366dce0d7ec60ba53eb595d9ada6388609d502200d12abff69a31fa70ea9afa896cc3b0065673b6be884ca2d87d226417f115076","0x6863BD30C9e313B264657B107352bA246F8Af8e0",!1,!1,null,null],["polygon","blockv","VEE",18,"BLOCKv","3045022100d773ab7c886b3a27979a1bbbb8e9f74d4859c533304092ea8ce81de559be0c96022002fefc041758c7b9ffbf6870c876af5ba66f8ebc86af37552fa5562186c8c474","0xf1c1A3C2481A3a8A3f173A9ab5Ade275292A6fA3",!1,!1,null,null],["polygon","blok","BLOK",18,"BLOK","3045022100c163912ceda6b2f5ae6c7adf21f46dc85d282a914e08fba485fd24cef0af5274022072824adf7a17b1f200710c1f052bf3dce11a0eeed1c59faca05acf3c9e55574a","0x229b1b6C23ff8953D663C4cBB519717e323a0a84",!1,!1,null,null],["polygon","bluzelle","BLZ",18,"Bluzelle","304402203b0e1be78acac09c1f4d661dd3dad5c291c2b0c107531be52687d1834ff9afd50220443f3ab75a8337c7d3cdaf857ef35cce24f0bbc82d83cea08713ca64c8346df8","0x438B28C5AA5F00a817b7Def7cE2Fb3d5d1970974",!1,!1,null,null],["polygon","bnb","BNB",18,"BNB","3044022076d39107a36eaccd897219063fa00eed78903b739ff83bad07990d3f2122b81902203916c2533447e0b7bbfabb45e1dfce2440c664ec29500a6f4e571bf0f0b617a2","0x3BA4c387f786bFEE076A58914F5Bd38d668B42c3",!1,!1,null,null],["polygon","bondly_(pos)","BONDLY",18,"Bondly (PoS)","304402202e6b25b3b70819af75522a8a6631a1b405b2d374a2858b4e72a9e4bb795aa393022037f3a4665c2d07bb4b2bea02ee3daf930b5d46392ceea12664d8cb46572aa54b","0x64ca1571d1476b7a21C5aaf9f1a750A193A103C0",!1,!1,null,null],["polygon","bone_token_(boneswap)","BONE",18,"Bone Token (BoneSwap)","304402203a15aaeced1965f8a9d19a1ee716108e1c73f1f5705d766bdbd3490e7471d18402205cc59469cdf7e431eab6a0ab7f0ba4518f487d5a8216e7130b5ae496bac6c304","0x80244C2441779361F35803b8C711C6c8fC6054a3",!1,!1,null,null],["polygon","boringdao_(pos)","BORING",18,"BoringDAO (PoS)","30450221009c9cac09e7e27fd6b64bd3627851b4e4d320aee8cb53b811b8574320cd0c885102207d239b7d1bc3d685fcb3bceb1ae8e6eae208f07ad5e315509043620a3e4ed75d","0xff88434E29d1E2333aD6baa08D358b436196da6b",!1,!1,null,null],["polygon","boson_token_(pos)","BOSON",18,"Boson Token (PoS)","3044022058b04f883555c335919d904ef85f37118d537c153c21f2b7c604e8518003733b022014ccd32dd67a015b4482639ecfbf340485775fe4b47ef8244bb5f1cb0801cf24","0x9B3B0703D392321AD24338Ff1f846650437A43C9",!1,!1,null,null],["polygon","bounty0x","BNTY",18,"Bounty0x","304402206bb140450d162c3bf97a049dd4af1e09b9f245e88b79ec80896ddbbc321d707202200868a516eb569065c5158fc6214b56e70fb0aba000f42ff6e5c15f0e6bae7e6f","0x0f40D69Ff494a9e74b1F20A89EfF299B2A05918F",!1,!1,null,null],["polygon","btc_2x_flexible_leverage_index","BTC2X-FLI",18,"BTC 2x Flexible Leverage Index","30440220260fe077037f2ea7283410a03b93ec0880fa4ea14e55ee5c36e0c017caa72fe4022059ecd804021753fb1fbe928c16f825b44654454c7d1d5d775dba8de0eea7491d","0x4b54Bc363f5F9c6E0fcd82EaC6919aE213464Cc6",!1,!1,null,null],["polygon","btu_protocol","BTU",18,"BTU Protocol","304402200e7b49c9063a554ae4ce257e36df3da4afc6ce7ffc99d8c2c02419381475fe61022027aae3d6973f9cfd77ceebfd77e3fdcbb51f2d148a6801724d51b626f1cd7e3f","0xFdc26CDA2d2440d0E83CD1DeE8E8bE48405806DC",!1,!1,null,null],["polygon","bullieverse","BULL",18,"Bullieverse","30440220626cb9e03e72d10b6706c4424589c40f5bf8d37032e3a93cd2f621eae1de9b6302200e2176f986c49a50068e3c41dcc751efaabc6791540e4c3f159cc43b70a16738","0x9f95e17b2668AFE01F8fbD157068b0a4405Cc08D",!1,!1,null,null],["polygon","busd_token","BUSD",18,"Binance-Peg BUSD","304402204ebeb9cc4f576f9d9bdc09cd6a62db00c7e78e16f009cde3a592ccbead6a2dce022013c279d79dd9d7fcce0bb65924bed1244500b4b072b5b16a8881a613bbcba015","0x9C9e5fD8bbc25984B178FdCE6117Defa39d2db39",!1,!1,null,null],["polygon","bzx_protocol_token","BZRX",18,"bZx Protocol Token","304402206fa371d32fe05821a0bb28306c3f3e2f0cf2f1a6efec349bcef67894575459c8022025e11ef31b7be14dd464c05237267105df54691f27ed50a6d49c64f1d798f0b4","0x54cFe73f2c7d0c4b62Ab869B473F5512Dc0944D2",!1,!1,null,null],["polygon","cad_coin","CADC",18,"CAD Coin","3045022100c501eb9158a6f6e82b5b9622524fca0ec574ccd556171f2adf49810458ba1f3602204e5f747baef54d1b690d073a07f7fd494d4a7919ba6d3594e051d3939d8da696","0x9de41aFF9f55219D5bf4359F167d1D0c772A396D",!1,!1,null,null],["polygon","cad_coin_old","CADC_",18,"CAD Coin (old)","304502210096e6b8f9f4ab9a76aa2f2e1b2495f90c98ce2f28c7cbbd44220b7e5d99712882022069a7a0011ae48b4b4de77c969bb81407f3ea618d7ef5cf6827021e7198a96d86","0x5d146d8B1dACb1EBBA5cb005ae1059DA8a1FbF57",!0,!0,null,null],["polygon","camel","CML",18,"Camel","304502210083573d28a22ca50bc1e7ce3d8882b7d2d4959bd963ebba64ab2bf74a7c9c830e02202d96d0c21dbff960db7775f91d4a982d09fafca0506282381e688984926ed8ea","0xd1A2192D57bb0E7bf3251Dc9b7b582270c7b85da",!1,!1,null,null],["polygon","capybara_token","CPY",2,"Capybara Token","304502210099bb6f314bb1d69598365e02e07f5733830d6b529a60dd8b1b87ef5c52ef1ed302204d4a843b02cafeb921dd56f731cf83597a3b610e27675c922ccd9a1f6ba21b65","0x67F285fEB30A21dC53c7AcE22ec5526D18375985",!0,!0,null,null],["polygon","cardstack","CARD",18,"Cardstack","30440220692705b2b40824a4e54ea19f3c25d012bf770fbfceddb6dbad50b7d18c31193b02207df69bfea34b27d87a075503dcbc3fe5dc1c1274d80a95ab487dc5e406414aac","0x3A4BeD49Ab592A227bAe8F41eFd0d38E6e06d96c",!1,!1,null,null],["polygon","cargox","CXO",18,"CargoX","30440220306051149039bf55bf4c3f68194216508b514becc225db631b1140470399a59c022046dd1317f9ccd33c076fcc3d9222373b548a3754bf9339b8f64a45e62fce541d","0xf2ae0038696774d65E67892c9D301C5f2CbbDa58",!1,!1,null,null],["polygon","celsius","CEL",4,"Celsius","3044022073bf3843575fd64633ca39a68160cad26a12c1a6714e5c0ef3464ccf564c7e9802202f40c3359d904bd7623e41f374ec0e1aa34451239cf5468ff1f75a2eb25a22f4","0xD85d1e945766Fea5Eda9103F918Bd915FbCa63E6",!1,!1,null,null],["polygon","cerby_token","CERBY",18,"Cerby Token","304402200f2ea2ed631fff9298f1293cc976c4c27ad2af9f1de804d54ee700379d3e2ebb02201f6bbb1f7765f7aa60592e1c390449014a86eadc53ba9b03577bde85a6cc150b","0xdef1fac7Bf08f173D286BbBDcBeeADe695129840",!1,!1,null,null],["polygon","chain_games","CHAIN",18,"Chain Games","304402203b32ffc97319ce2a18a25a0d31d97f75ddc1dd8bd8fd4d513be4d6b6e750326c02203136b47f8d78c103483eab1f548a260e79ada593c11bed4ecbc04e2a7c05fc2c","0xd55fCe7CDaB84d84f2EF3F99816D765a2a94a509",!1,!1,null,null],["polygon","chainlink_token","LINK",18,"ChainLink Token","304402207253a5dc3dd9edd9a3fbae8779c20bfff5e3853a6ee46d76903c4c27f7cc521502204f3355c7ff2ce78fd5ba38b13037cafd481a5c058635e649588c8e42eb5e36f7","0x53E0bca35eC356BD5ddDFebbD1Fc0fD03FaBad39",!1,!1,null,null],["polygon","chiliz","CHZ",18,"chiliZ","3045022100e2b143261ef36b6118d1d1ed78dd4c7b93bf7b781a7dcbf4775533c1dd5b3af30220187790828d395732ab555173bfd676c9a6044bc8f48221a0338d5f3209f47e93","0xf1938Ce12400f9a761084E7A80d37e732a4dA056",!1,!1,null,null],["polygon","city_of_block","COB",18,"City Of Block","30450221008c2269ba51aba96c6f0676b2a863d93ff27507f3259f79c7bb0e61ffc32f9a8b02204b4d9496208283f47d33ac69f8b911e13cca99bb62c1811f1577dbbde11f9ded","0x9F3c31838312fcB6f3A59e81Aa052d5aAA40d6eF",!0,!1,null,null],["polygon","clearpool","CPOOL",18,"Clearpool","30430220240ec8880547a82a24817351f9df3dbb2a331e7ac591db72808d5e88ba52a63f021f6176fab176aea0a433001f17509f7d51ecc129c63c248f501bf210f971b2e7","0x23e7288164Da25CBeBa222837B004bce6Fa96E67",!1,!1,null,null],["polygon","clintex","CTI",18,"ClinTex","3044022004499c41cb7abd51c9aa9f92f1e9284c16f6cd717cc05db775b0425a535517e90220723894c31d8c429c2a4244b698d6cc9adc3b255329e9895aa217282b96e519e1","0x8Ba941b64901E306667a287A370F145d98811096",!1,!1,null,null],["polygon","clocks_token","CLK",18,"CLOCKS_Token","3045022100e120c70f106d34b4cbe30308778dc7e04ddf4eea7ce7fd1ec083294ad547e060022023f5f86d37e44fe2ccbdebb4c7cb01a60fcb6a96dfc4c066d0e91d9655bf58d0","0x44f777a333c08Bd844f51157CEeF49222bEb7c8d",!1,!1,null,null],["polygon","conch_coin","CONCH",9,"CONCH COIN","30440220039a1d07936fea859ae07e77f123a15748d58f2f05cad2596df012feeab678b002206ee54bc8c5253393d35731019e3896ea78b4a1d4ba156bf6898904133b201904","0x7cC9E49E10c9924F74f90C09f8f30F1f055acdd1",!1,!1,null,null],["polygon","cookies_protocol","CP",18,"Cookies Protocol","3045022100965779644a731c62c6218ddeb9a8b599f052eecf48d147a1f9a7c4ab63d27aa5022029f942a166e1480074d2347250d5e96ba7b8644ec205f0499502e58bc1675118","0xf9D3d8B25b95BCDA979025B74fDFa7ac3F380f9f",!1,!1,null,null],["polygon","copper","CU",18,"Copper","3045022100a20b40f67787cf182e0d0b2c6e7305d8ede42c9f96f16b3011df1ec4e32e78b302206223177c540d048ebfca48ec9cb65299f8be8e66fdbeea8986568158a900d556","0xf6351c1163314e95d025575c5CeA314b055b7ED3",!1,!1,null,null],["polygon","cre8r_dao","XCRE8R",18,"CRE8R DAO","3045022100c1528bb6b097e406a1620ba69c9d32e0fd949e46d6fde821d53232c29340e59402203dc56845430255790c186b1901c473fd408da3a101116580b3fbe4a0fea2b359","0x00F22A2B5c40CE03FA4c96bA97605e5A40cC97D4",!1,!1,null,null],["polygon","cre8r_dao_(pos)","CRE8R",18,"CRE8R DAO (PoS)","3045022100d2c3ace9dc7e7469836d04c9861bcaa99781641c8fe53bde9fd0f54a90624823022070f23427fcb6f954879976744b0872e052a40c64daa66be8255ecc360f918c18","0x079202AD852ccc46d8E73815f10Ff055049D3916",!1,!1,null,null],["polygon","cresio","XCRE",18,"Cresio","30450221009d09ae90abde22b61ab29b2e4d2e5942af655b59af035c37b73a60c1e68da28202207b70156fbdc3f85f0d1a87c855cfab5f7e51888b21aeda77b78d68e0c9169869","0xFA3c05C2023918A4324fDE7163591Fe6BEBd1692",!1,!1,null,null],["polygon","crowdtoken","CROWD",18,"CrowdToken","304402201cbbc0133a3c3dee0a276bec3085df5d755b715f925de43a21b740fcaba72e42022078087ac47fff6ce0e33f677a05c135f59c4ed27954b263b1eb98db5ac91d925b","0x483dd3425278C1f79F377f1034d9d2CaE55648B6",!1,!1,null,null],["polygon","crv_(pos)","CRV",18,"CRV (PoS)","3045022100f379c74676f646ea2c59b1ad896ebb81ddee85db0f1a7cd9163251a49f31367c0220466c4cbe449cc63e5a94b262aa7bcd6c8f6cfd99ef1fcc356f9f597ee4148b56","0x172370d5Cd63279eFa6d502DAB29171933a610AF",!1,!1,null,null],["polygon","cryption_network_token","CNT",18,"Cryption Network Token","304402201e1bf3b5cff585b6d0ac0a92f55ee0c01130a08c5c07caa4969310c1fa300a1a02203347f607a4e38df75289ceffa07470356e079930fa2c54371c31954a8b0d4dd2","0xD1e6354fb05bF72A8909266203dAb80947dcEccF",!1,!1,null,null],["polygon","crypto.com_coin","CRO",8,"Crypto.com Coin","3044022016fb0d88052730549a29a2164ae51a5ae21b750f9906e0a5210510d66f4aba550220700aa5c692177bb2bd88f47c6c392e401edba868cc7d44de9a31c4b1d96fc5f2","0xAdA58DF0F643D959C2A47c9D4d4c1a4deFe3F11C",!1,!0,null,null],["polygon","crypto_development_services","CDS",8,"Crypto Development Services","304402207418870351d4a4cca44b1441db2b321f034a52b2c2434aa90e3183995daa2489022050747189f082a03629f4e7450a92cdf62ed74f5155356732868d8552dd4303f5","0x23f07a1C03e7C6D0C88e0E05E79B6E3511073fD5",!1,!1,null,null],["polygon","crypto_sports_network","CSPN",18,"Crypto Sports Network","304402204801371b4098de65cffd268e7c860125b53a70b87cc67e3824774cacd2a32dad022000c29871f244fdfd5574d756e3c02015114213b46c98e355e95a3ae78a5d091d","0x9A0b381394fbE689B344d1ebd2d4DccFF31adf87",!0,!0,null,null],["polygon","cryptonovae","YAE",18,"Cryptonovae","304502210082daa864282eab8ca30aaaa312896370db98034173a12b1cc4fadce05dd9b98b02203497286f902338b785a490e6d235ec6caf5d58469595dc7c2db6bcbb07a0ca7b","0x4eE438be38F8682ABB089F2BFeA48851C5E71EAF",!1,!1,null,null],["polygon","curve_amdaiamusdcamusdt","AM3CRV",18,"Curve.fi amDAIamUSDCamUSDT","3045022100f0e787415ba714c3516296cbf16f264e012d21bc042c3f6db2f07052ddf8921e0220730df4ec413e195cd70954c4de752818c66255eb9084a8eecd74327bf2c6062b","0xE7a24EF0C5e95Ffb0f6684b813A78F2a3AD7D171",!1,!1,null,null],["polygon","curve_factory_plain_pool_2jpy","2JPYF",18,"Curve.fi Factory Plain Pool 2jpy","3045022100989aaaeccab1380f8a4ff008402c21f1a06158256082f8a691067adfcdce304502205f1d273d4a0b05cf853a2004c2da7799818a1e4d4007b2d5b937dfd74b034c0b","0xE8dCeA7Fb2Baf7a9F4d9af608F06d78a687F8d9A",!1,!1,null,null],["polygon","curve_factory_plain_pool_4eur","4EURF",18,"Curve.fi Factory Plain Pool 4eur","304402206d6641aa15d5fb52a1d4fa1767404de226883ba50e09a86b23efec3d62b40e5e022019f693874859fb49dfaeae7a9a83ea58e979639653e45e9d056a1cbda7674ee4","0xAd326c253A84e9805559b73A08724e11E49ca651",!1,!1,null,null],["polygon","dallor","DUS",18,"Dallor","30440220703a20267ca961d36ecc4e5f2b2f3cc434b2c4a386c8d7ae5d82102ed1abd0090220240efc097810ebc98d41a199da705c2c27842c7383bbb2fa9561249058f5a9bb","0x867D46fd484358A6f25655a705aa6AD804E6C6eB",!1,!1,null,null],["polygon","dallorx","DUSX",18,"DallorX","304402201bbb431df2dc40b2655b5be0b75fd88230c99771b89de78adba76aa3e67014c30220219764a6ed63eb79511fe145275c5d2d59f9a22f53772d000c441ddd1a22d71b","0x1963e341FF5a75C41ca5Ac400c828E636B70546E",!1,!1,null,null],["polygon","dappradar","RADAR",18,"DappRadar","30440220278f2aafd7cd6563318a7cf249703a92d765d7243753364307c9cec6beea411b02201ed05f0d6270a2eb4f6e3aad3f37d07ce6d0e1ebf14b2ff6f5fd92ea52a47450","0x5E30d25675b6541950b967EB216CEFdA92C408BE",!1,!1,null,null],["polygon","data_economy_index_(pos)","DATA",18,"DATA Economy Index (PoS)","3045022100b9fd462a812a5686883f307b95982d7fb077456e989f4c813a6ac6cf959d6318022070b8112e42177dc22a54131691ac6b24a83909ba0c27b80c21714cf07b0a2a94","0x1D607Faa0A51518a7728580C238d912747e71F7a",!1,!1,null,null],["polygon","dbeats_token","DBEAT",18,"Dbeats Token","30440220258e486a0ad382e9834f539db298eda5d9f2f7d0f7f9916c2a98aa6a5a35c2ac02201de15e1d7275c97238dd464cc38adf89603f6c6da97d56bd968e2397d236da84","0x92e918ea7aa872F91BF7EC9BcD248a5920C9f3CB",!1,!1,null,null],["polygon","decentr","DEC",18,"Decentr","3043022011d7b66a4a5ff05f0fb26a4757a203386d4391989b394635c6e9555d60050434021f09cf35aa21e77fd650c78054ca528f663804b005b8cec5806f72c5f92b1a2a","0x314338767151e6Ed23DB8A41c6F6943c1958Ee56",!1,!1,null,null],["polygon","decentral.games","$DG",18,"decentral.games","3044022055528abd7fd74f4689271456bfdeed4fdbddf93c40b726d95fbcb3952173e8a9022007a30afdaeabb781232958bb8846000703b6f470c907366a8cea510796225c67","0x2a93172c8DCCbfBC60a39d56183B7279a2F647b4",!0,!0,null,null],["polygon","decentral_games_(pos)","DG",18,"Decentral Games (PoS)","30440220668297dd6eebca1f1e0ca2b606991c41c144cf5dd34ba7cb27cbe2321b51993d022014c0bd1b3c70d5d7683ebce108c01626d755350a92c97bae86bc01f6cb05f4d3","0xef938b6da8576a896f6E0321ef80996F4890f9c4",!1,!1,null,null],["polygon","decentral_games_governance_(pos)","XDG",18,"Decentral Games Governance (PoS)","3045022100a727a73ef994ab66871157580b79a2d7e3ca060246ce732c33bd8b8ff53271e80220476dba9038f225520b9e9257ff73159b28ace0d39593a13e797b171695cdba3e","0xc6480Da81151B2277761024599E8Db2Ad4C388C8",!1,!1,null,null],["polygon","decentraland","MANA",18,"Decentraland","30440220436699eef62d0e27cde881617e2bcc77e99fee8ddf20f7fd716bdfb49a2d5699022073b43e4d889526c69e07a87d377fc401986c2f620287c98396ee7e449e82062d","0xA1c57f48F0Deb89f569dFbE6E2B7f46D33606fD4",!1,!1,null,null],["polygon","defactor_(pos)","FACTR",18,"Defactor (PoS)","30440220382a19840ba39eb6d08d430d7761d88c996d30aeb067079520f328571649dab102207a50b5b442407f449a3bcdee41d62f68b6d5830cf630a328a4597616495dbd80","0xe0bCEEF36F3a6eFDd5EEBFACD591423f8549B9D5",!1,!1,null,null],["polygon","defipulse_index_(pos)","DPI",18,"DefiPulse Index (PoS)","3045022100c3404c5ddbb4da1fcecb7820eda85ae85c8d980b54876597ad8f93c190f071080220622e8d816ff2d053cfc8bc59a329858d19b3b4290706dde80602fcea7f2d744f","0x85955046DF4668e1DD369D2DE9f3AEB98DD2A369",!1,!1,null,null],["polygon","derace_token","DERC",18,"DeRace Token","3045022100f7b8da95f5ef57071eaebe38cca8dec6e843547de0c595f80235b6c28b681a2d0220088b5f2ca301ef392049d312723dad859abbbfaf783a8dcf71372674642f479e","0xB35fcBCF1fD489fCe02Ee146599e893FDCdC60e6",!1,!1,null,null],["polygon","deri","DERI",18,"Deri","3044022051e056f54d588094f90a33f8407931b7a93c6c2f36edd9ae1bfe8995339fe69f022061993acf220da2c692f13eaa075e8e77e6195d495704c45df7c0c075571f3cdb","0x3D1D2aFd191b165D140e3E8329E634665fFB0E5e",!1,!1,null,null],["polygon","deus","DEUS",18,"DEUS","3045022100d7908e152e7416bf5e31981e15bd108c77387bf592f2f8c56be4b681798a99bc022067729913b3d6e419519faa9a95f6e6ddc79969e8d44da712b30ef2867a1a3b8d","0xDE5ed76E7c05eC5e4572CfC88d1ACEA165109E44",!1,!1,null,null],["polygon","dfx_token_(pos)","DFX",18,"DFX Token (PoS)","3045022100f4a521690a92991e537c140c01e8e55a975b4e2ef6e66b4c31b4ba7897874df7022030dec285f9009065db7f294953aa1f4ae615331387024f2fc2092162e669f04f","0xE7804D91dfCDE7F776c90043E03eAa6Df87E6395",!1,!1,null,null],["polygon","dfyn_token_(pos)","DFYN",18,"DFYN Token (PoS)","304402204903b3c6afa507aef4cd88fb080d92a0b55a5b230c987b1add3493736db56e2302202e4b03fc70c0c026096556ef44fdfcbb48a43b9bc6ceef324dfe1122e868db57","0xC168E40227E4ebD8C1caE80F7a55a4F0e6D66C97",!1,!1,null,null],["polygon","dhedge_dao_token","DHT",18,"dHedge DAO Token","304402206da3cefa573162edfe52a66dd7418c6f5014647cc970879a94ff83200def0bbf022043a610d9a386092babadd87b3aafb82c919d3631c19a89310cc10d16c3e11051","0x8C92e38eCA8210f4fcBf17F0951b198Dd7668292",!1,!1,null,null],["polygon","dimo","DIMO",18,"Dimo","30440220353b64b354ca78d30e7c4a334f63cc367c0e5438cee101fd3adf595e17817e89022020d85b97488d8dd1bcb77dc200bd58cb9adf4c1bb2cc30447774cfe77f58fa33","0xE261D618a959aFfFd53168Cd07D12E37B26761db",!1,!1,null,null],["polygon","dogelon","ELON",18,"Dogelon","304402204b0eb245902417b53d92071ea313cf7fbf4423bcc554c8a317676e35c12b964b0220078a990d4cbf28bd53a0a7a64252f8f074f678e6d6af10e8740faa577ebeeac7","0xE0339c80fFDE91F3e20494Df88d4206D86024cdF",!1,!1,null,null],["polygon","dogira","DOGIRA",9,"Dogira","3044022014c66a31fddd47b7968a87df6ba2eb08f6d3cef966c5011394504105883d51d3022047a02b8979057e1826d8965a791c9d5d9dfce87a4a2d5f250be23bf124a7cf15","0xdDa40cdfe4A0090f42Ff49f264A831402ADB801A",!1,!1,null,null],["polygon","dominium","DOM",9,"Dominium","3045022100a135bd39775baeeb83f0a4b214110e15c32f9104c482a696b05a57b89b73740202202a7bd659de0db54d72053534fd167bd047bf21fbb6a31606c89d3c6845f25571","0x0e2c818FEa38E7df50410F772b7d59aF20589A62",!1,!1,null,null],["polygon","dose","DOSE",18,"DOSE","3045022100cdab744bc0212b762d530507ee7e52b2b443c8856651f1fe61e32e960d34906502207694884b4dd66136c84ea699912efbf6a4df45da2ae7e3b4c6364a58eba71873","0x81382e9693dE2aFc33F69B70a6C12CA9B3a73F47",!1,!1,null,null],["polygon","dovu","DOV",18,"DOVU","3045022100f367c43817b181ca597d3eb32297cab50f90973ce3dda7857d6f663a74a514f40220055e8d0606c5d36b5c25c62c7d70cf8bb009bf8a8ab101612424d0ca3859574d","0x0E0ffc562d72316b783E887bbAAe1FD794ADb530",!1,!1,null,null],["polygon","dragon_quick","DQUICK",18,"Dragon QUICK","3045022100c1a50668fd80f74c27925cfcd7be128266cd39e6884a06e0961be3f15a7c4cc402202353c83d25005b6dbfb594b21d8113ad7642484f680f2e7088db631a313ad1a8","0x958d208Cdf087843e9AD98d23823d32E17d723A1",!1,!1,null,null],["polygon","dragon_quick_old","DQUICK_",18,"Dragon QUICK (old)","304402205937589d9160d086e0db32bf9542bacef83961c01d12973ea881d7a10f564ef8022005b2514ceea742a6b07d52a695e9bf783e457fa01f1cf14b0406218ff3090532","0xf28164A485B0B2C90639E47b0f377b4a438a16B1",!0,!1,null,null],["polygon","dsla","DSLA",18,"DSLA","3044022029ae2e5d5f851834c388141564c60a9d26c53bc81e9c6bf887f1206a86371b8f022075b60ffdf098243d8feab6ec0f55eca8c1722c1d7bf9a4c27cfcd44c439b557a","0xa0E390e9ceA0D0e8cd40048ced9fA9EA10D71639",!1,!1,null,null],["polygon","dystopia_token","DYST",18,"Dystopia token","3044022051f27c26d9b62b39a690ec8eb8943464b27fbf6183fe5f724b749816df59c6690220721d745a2147bf92ab82a8c7a60870e929e19fcc5f6b6e7d2e0c156268e8fe34","0x39aB6574c289c3Ae4d88500eEc792AB5B947A5Eb",!1,!1,null,null],["polygon","ecowatt_token","EWT",4,"Ecowatt Token","304502210090dd86bd0463a48c3b947b1e3bc08ebf3631202c676a857c5fc10525c8b7a65e02207b80b742250dcab35088fa81fc150ff998e3c070cb0bb455c11425e56ddcca52","0xd9E838dd60c8ea1e7dD4E670913323bB87DB112c",!1,!1,null,null],["polygon","endor_protocol_token","EDR",18,"Endor Protocol Token","3044022007b3f74047928a24b8bffc08998b542d2631e354788be568e669bbe402eb474902201660b60dedbded95b83607adbad5f20a6e6f83a5c3070ef7c932b8b49b417249","0x1Ac417f1dD23504aAC2076D854581f03196403Fd",!1,!1,null,null],["polygon","enegra","EGX",6,"ENEGRA","3045022100b73ac11f133509df3949f98c4027f3774392c194d708ec630ab2c5894f76b91a02201bf28e564e5c4962a97b4c9902af5120a4b59aee176f258bc32543f929f5210b","0x8Db0A6d1b06950b4e81c4F67D1289Fc7B9359c7f",!1,!1,null,null],["polygon","energy_web_token_bridged","EWTB",18,"Energy Web Token Bridged","30440220765fbb44728292f2fbc4c486ad1e12cd657d9772328bda64a1f64d8258a3bea302202042c8bc7cca6c63f55b4e596ccd3ac0279901a0fd8f7a0d0173fea7f2e8d5f3","0x43E4B063F96c33F0433863A927F5bad34bb4B03d",!1,!1,null,null],["polygon","enjincoin","ENJ",18,"EnjinCoin","304402205eb28eb20df347c98e9d337feadd95b1cf96a6eeec81d65e607b2edc84e0a96c022011a4215ea48f0675496059434cc2f78bc1cfaf99049476081434a180e05700c6","0x7eC26842F195c852Fa843bB9f6D8B583a274a157",!1,!1,null,null],["polygon","eth_2x_flexible_leverage_index","ETH2X-FLI",18,"ETH 2x Flexible Leverage Index","3044022017c1a8e6222874f80536e4ac34a1355de892dd5ce3dae95e7de66e9831fc90d30220323bf6e8165a353c3c2f2e708109c60bfda10b0a79930a219e94982fbdcfdb41","0x66d7FDCc7403f18cAE9b0e2e8385649D2AcBC12A",!1,!1,null,null],["polygon","ethereum_blue","BLUE",8,"Ethereum Blue","3045022100ad25b148a6136b4e931687ca0985728c855b59edbbb667856f0fd2a25d8f6047022025783a6bc2c6d17e055788d5a9655edc48bce0013fc9137ac6549ce794452754","0xe7f960685aba7327ADA3b161Ea252703C87be0bF",!0,!1,null,null],["polygon","ethermontoken","EMON",18,"EthermonToken","3044022059c22f354a0e18a98798e7b3e924cedae2ac0ca9317aa311386b6d5744248afd02200a391ead7e74393423f1e6bd07b6d8464372de55adcf8013bd22db60315211c0","0xd6A5aB46ead26f49b03bBB1F9EB1Ad5c1767974a",!1,!1,null,null],["polygon","ethlend","LEND",18,"EthLend","304502210080a16f1f74224b502aa6cca21ece946463fb6d3363037e7e15c09dd10c3515ec022002342a8eb6cd1c876874818336ffa04f796bfa511ddd19d573fc2d0eff048d18","0x313d009888329C9d1cf4f75CA3f32566335bd604",!1,!1,null,null],["polygon","eve_exchange_(pos)","EVE",18,"EVE Exchange (PoS)","3045022100e68c03f8cc03271cabc3b17ce967e27145f682ca23e68128d1c6c3eb04ed8d0502201938247ef2893850e628d4c146b79647d5fd31a33637b1b7dc58c48cf99e79a8","0xaE29AC47A9E3b0a52840E547aDf74B912999F7fc",!1,!1,null,null],["polygon","everipedia_iq_(pos)","IQ",18,"Everipedia IQ (PoS)","3045022100e1427ef7323b3f37d465fb9689fb018dec757aa8366b8e343dae3ba2c83410d6022013c549d42ad32760d28babf415b5b7fb7d212fbc4c6565c197960bf807e85ae3","0xB9638272aD6998708de56BBC0A290a1dE534a578",!1,!1,null,null],["polygon","fancy_games","FNC",18,"Fancy Games","3045022100bfe2634a3069ce61359bc3443750c26fbe9b526c3e03c40e54e27d982af93c8a02206ae88677a9f124913ccd4706c4ff74fa1a2efb9fabf62d45db30ea8860e6c888","0x7f280daC515121DcdA3EaC69eB4C13a52392CACE",!1,!1,null,null],["polygon","fantom_token","FTM",18,"Fantom Token","3045022100e53adaa3478dafe8a78e80d3ac0f1368a22e3b57457b006f341fee784b95255e02200e06fa79671d4a54f3eb4185e79032422d75612dba1433f709971f252c13b302","0xC9c1c1c20B3658F8787CC2FD702267791f224Ce1",!1,!1,null,null],["polygon","farthing","FAR",18,"Farthing","3045022100c85cefbbcb6f6ac8915a964b2cd9de067bcc96baf944f454aeb3cb6bd28ab37f022073c1a1f50429168b5ad898cca9038d4da47534b0c13dccb801b35c8e2bc26d8f","0x05A79b208bed516fEF370e196d27B1d8207ec458",!1,!1,null,null],["polygon","fegtoken","FEG",9,"FEGtoken","30440220723ec9773b3cc9e6c3ce465c2b06acdb0b3382c445ff3ad263000e370219936c02204453a1c7ba6b266535f8651af12ad969a7744170f1ecd942a4263afec69b51cc","0xF391F574C63d9b8764B7a1F56D6383762E07B75B",!1,!1,null,null],["polygon","fetch","FET",18,"Fetch","3045022100f462e081f273bb1ae69168d64d538ec202cffb609c7bfd306d12297e84825f1902207e82b440a4deeddf67292873c416ea065ef9663961a3ebfda099538f75d3c1d9","0x7583FEDDbceFA813dc18259940F76a02710A8905",!1,!1,null,null],["polygon","fibo","FIBO",18,"FIBO","304402201d4e9a7e6b2bdcb3144150aa45e1abdfde2b7f0c0de172d232dcdfe7eb3cc0e1022054b17759fbe06b7deff9df320735c4d006bc0d11297a0c7c061e4390dafb225b","0x2b3B16826719bF0B494c8ddebaA5E882093eE37e",!1,!1,null,null],["polygon","financie_token_(pos)","FNCT",18,"FiNANCiE Token (PoS)","3045022100ba3c0378d66dc94c543acd8ffe72b5f993b2c29a111965f0702c0a09e52aacf60220779ff7a299fd9287f06fcc36eb3106d043627f5e82c929c1a52274c6898fbba9","0x13590c53dF63B52E159328C5b4FfB5f6dC5163C0",!1,!1,null,null],["polygon","fish","FISH",18,"Fish","3045022100b5c3f2cc9c6292ef20bac4d17e9e2cb4047a478cf75354817dd1fb6ac3fc7edd02202eba60971eb6987b3ee658c637cf905ec995600b3104beb7d97e03cb71010c90","0x3a3Df212b7AA91Aa0402B9035b098891d276572B",!1,!1,null,null],["polygon","flare_token","1FLR",18,"Flare Token","304402200a1e2ddbfbc9d4e948fa507ed54bc72d38d64c1ab9885527734a8c8836dc016b022062afbe992e01cf401a3c914e958983c55fb357db3228bde2c17771793ed3f3cf","0x5f0197Ba06860DaC7e31258BdF749F92b6a636d4",!1,!1,null,null],["polygon","float_protocol_float_(pos)","FLOAT",18,"Float Protocol FLOAT (PoS)","3044022051c346bcfb9f2a596de0b7fb33ad56942d4fa67894cbbc27970202082b58d54602201909532ee1b7c1615e3539b9f8b6ea4226ea722ab2b4dbf7212d0a68bfcbfddc","0xF0Ae1EFdE60BAb0a830673747138F12367858e8D",!1,!1,null,null],["polygon","foam_token","FOAM",18,"FOAM Token","3045022100b66fe2c72a4073cad992f5c1f345fb1d4f057b79a4097fb913238e1e3f433785022006f6059384a3fd45623b8bdbd2514f3cebed6343d2548f3f34a2b5a2be39ebf9","0x66e16D50c07A01BB473eC794349d45aa1a0E5Dc2",!1,!1,null,null],["polygon","foodchain_global","FOOD",18,"FoodChain Global","304502210099952f227937eed64554cec8897c0d930c116952f6f86bd15996a8a6886a4f50022010ac31aa563a6b05834737ceb6aef9fe0b5f3389482f97ee8f6f974d8645e6ed","0x6F06e6beD64cF4c4187c06Ee2a4732f6a171BC4e",!1,!1,null,null],["polygon","fox","FOX",18,"FOX","30440220344a0fcdbff02568d465b09e2cffc047eb9169f9f89243cad21d20f78ab5749602206cee295f9945b6f10f984541b6975df9397edf35a3c9a0feba5d93fed87b04e0","0x65A05DB8322701724c197AF82C9CaE41195B0aA8",!1,!1,null,null],["polygon","fractal_protocol_token","FCL",18,"Fractal Protocol Token","3045022100eb5ba2c5be243b68d60ae5c7295b79c491fe8b358d91186a81be9049136bc463022034399e2223bd6718aa718c5e29abee9f7c8035fb369ab50eb05f1856d852cc68","0x6f934b45fc6043527d73C7c99313dd838E723DB7",!1,!1,null,null],["polygon","frax","FRAX",18,"Frax","3044022008cc676c8cbdd5aeaef7b6063b2dc4627ddfdfe833b9914d561aad7d3044f27d02206ea37a4acd19f614ffe782125f2efc6015dc9fc94424eb9a43aa789b40fa9294","0x45c32fA6DF82ead1e2EF74d17b76547EDdFaFF89",!1,!1,null,null],["polygon","frax_share","FXS",18,"Frax Share","3045022100a1574be05a44035908709c966fcc8756a13d60c43af8a1b57086ed83d889f5b102200aaf6578af553e7c1c22785842228c46342d86c654e44e87b3ccb67bec53a8aa","0x1a3acf6D19267E2d3e7f898f42803e90C9219062",!1,!1,null,null],["polygon","free_coin","FREE",18,"Free Coin","304402201b40be30f6cd23cee9a6aa7330cfd204e7ee5147bb54fbd62654ddddb7c66a160220250ffc02afb80d706ddb5be1ada48bd924df48adb4e43a4ef1ccad6c8706d5f9","0x7cef6ed1e07079e174601d39066AD0856cB47988",!1,!1,null,null],["polygon","frontier_token","FRONT",18,"Frontier Token","3044022031e7a7961b55db287bcc987825a632348a952dc9352abae8db1b0f3fe3b7353c0220404f9ea73f5dd8a9498fd6db2a69d5a4eb4dcc4847d0f3344567b6548676edbe","0xa3eD22EEE92a3872709823a6970069e12A4540Eb",!1,!1,null,null],["polygon","furucombo","COMBO",18,"Furucombo","30440220126d341ad85e5d34cd11de5a0bd47e4e8ea494cd73af13b8b898aafd5bcd426b0220102a177dc04dd8db0200a5bf5f9607d898dc0dc39f74c23e163dfb685e897195","0x6DdB31002abC64e1479Fc439692F7eA061e78165",!1,!1,null,null],["polygon","fusion","FSN",18,"Fusion","30440220777ef5482278d859c93f673444999f875168b22330e8a17323361f918217e64e0220351d14a816fb7a1d50839653927ed8d50d9d3084b496040a79085b6a2cb06808","0xFA1171334CB3a0f0A91E8cA6765F10e9638D1cBF",!1,!1,null,null],["polygon","gains_network","GNS",18,"Gains Network","3044022100eece560275b0df892c526a4248e43a00bc82eedfa958f5211f737e2572077ff7021f35ce82649c501c384f6af2d3372456d93991497021371ab34afbdc3230e45c","0xE5417Af564e4bFDA1c483642db72007871397896",!1,!1,null,null],["polygon","gamee","GMEE",18,"GAMEE","3045022100d201b1b652f3b66a7a7f106953d02d9fc9eb4bbca188cec78f1ac88604f9167e022019527d5441425c7b0ec546f3abcdad7484889f6a2f7ba1226e9bb09bbf8efdbf","0xcf32822ff397Ef82425153a9dcb726E5fF61DCA7",!1,!1,null,null],["polygon","gcoin","GFC",18,"GCOIN","30450221009fcef5e5ea68ac9b9843c9de158e634330060c4c2732babf0da104f535ff996e022068af0b4389b1a0ec8fb2ffd1fc4e963a777b1accddb6c562b4c86a90d22f9e23","0x071AC29d569a47EbfFB9e57517F855Cb577DCc4C",!0,!0,null,null],["polygon","gemini_dollar","GUSD",2,"Gemini dollar","3045022100a5715074876b0c47c69ebaa15cdc95cd449ddbf41378f2325b78587bb48b233002200c7192a6d3fb6f5e6aeeea99788a38ad951110fa9fa5d0bf44225612660168b5","0xC8A94a3d3D2dabC3C1CaffFFDcA6A7543c3e3e65",!1,!1,null,null],["polygon","geniux","IUX",18,"GeniuX","3045022100f1f6d08416c6e22e874de7296eaffcab5ef7cc1ddea473ee385ea6028c1c28d70220587ff482cf0645401cfca6e88b9d14171310aeea5a0fc01e0aa2d94256acfe9f","0x346404079b3792a6c548B072B9C4DDdFb92948d5",!1,!1,null,null],["polygon","geodnet_token","GEOD",18,"Geodnet Token","3044022023d9466ba2c5a6e9ba321eec1c7f68c6135415dcb7cfcc2dd34b715d60959d2602205fd54b34b27fd5cdcea699c436995525b0ec2d1aa148b52089212c17d4367173","0xAC0F66379A6d7801D7726d5a943356A172549Adb",!0,!0,null,null],["polygon","gitcoin_(pos)","GTC",18,"Gitcoin (PoS)","304402202c3d09cc0981d58ca9ec2ae33a571534f97b76e4cc6e012ab640e51d474df5b9022006c0b957028109d2c0b0130e11300b6653bbf169b08564bd162790d1b0adfff5","0xdb95f9188479575F3F718a245EcA1B3BF74567EC",!1,!1,null,null],["polygon","gnosis","GNO",18,"Gnosis","30440220676c4fa426085479f0502e7c3d9bbeac273e356254ae3ba78bdf61efd225d8540220649a944cc30eb5ce55cb2d2899be899981716db2807514619d00adfd9fb8f3a0","0x5FFD62D3C3eE2E81C00A7b9079FB248e7dF024A8",!1,!1,null,null],["polygon","goblank_token_(pos)","BLANK",18,"GoBlank Token (PoS)","304402203bf51e0aeffc5c1887e1ea06043f5d015a6ef7cc0e0824aed1161f2f28b23f6f02200c5a55fd9887aebf11e77b889f245b53a715d07123ff1a60014e9c4fc536fd1b","0xf4C83080E80AE530d6f8180572cBbf1Ac9D5d435",!0,!0,null,null],["polygon","golem_network_token","GLM",18,"Golem Network Token","3045022100effedc8a8cdfbe49bbdd207000529e9e56e35b5f29b677515c1dca0f715ec68e02203cb1c92a1704b6f6b64f75a161599e48183dc16e83de2b25ed12c1e32a53a992","0x0B220b82F3eA3B7F6d9A1D8ab58930C064A2b5Bf",!1,!1,null,null],["polygon","governance_abi","GABI",18,"Governance ABI","3045022100b6ba564715ca0a21f0c5e8c82f4d2aed7c76950ebee20b2e274983983a33692b022071d9edaa85cdce5e4dab4f9c572fa61c5f8a028f273206c554ff8d15000989bf","0xEd6AAb1615AaC7BC4C108dFd4Fdc9AD0c8304d47",!1,!1,null,null],["polygon","gramz","GRAMZ",18,"GRAMZ","3045022100d2094de425e02ba8bf62a79236bd4e1453d93ce6a5d8b2b2c5142258c58cd51002207ac23f3c34b60e42815485ec174066e51d3d05a9904c1cdb0c2889bc8b6ea677","0xF40D9de56b1fBAfF388f4d1B97Dc8Dfc184d34cE",!1,!1,null,null],["polygon","grand_token","GRAND",18,"Grand token","3044022010c2db47cf633772ae5114bb05d9822ccdec281ed4dc54afb39490a3dded492602200f56bfc33a09f68a56cf0547afc37c7e6929cb6a042f20910d083b3f0637f899","0xC41214fC9f2bD9705e7A271409471161aa0e8808",!0,!0,null,null],["polygon","graph_token","GRT",18,"Graph Token","304402206e352ac6947f2d2089339e567429a4de41f8c0ef4d0a7d4c0fb0a706a56e45af022011a85b67e644478abee9ed8e3f8e9db3973d54a85a9ab43d10f970be76a0d59b","0x5fe2B58c013d7601147DcdD68C143A77499f5531",!1,!1,null,null],["polygon","gravity_finance","GFI",18,"Gravity Finance","3045022100bae69c4008de6e60a5a10a93639d003596660d587fc53da23050e71beebaac94022046ce5c5a776410d2ca615dc7914c86c903f2c39a23a5f0baf0da4972f28cf9aa","0x874e178A2f3f3F9d34db862453Cd756E7eAb0381",!1,!1,null,null],["polygon","ground_coin","GND",18,"Ground Coin","3044022043048ddeab48906808532c4008b125f7d4bedb073662f596f8958e3b39d9ffaf0220639204ea9629b6ee93b8b024b01251317cd43f4ac57c02269624da98fa1b3351","0x9ad4E87618591162196B3D34300a734A0035395F",!1,!1,null,null],["polygon","grumpy_cat","GRUMPY",9,"Grumpy Cat","30450221008a6a2a7ad22cef65134d40fdc80ea5166e249f96cf2a2d09aa47ef0cb5989cd202207786ae41332e7970ca184ffb012a3fafe37f16cf6b1123b481f8da17188a09fa","0x733726968Ae55dC58c26dBDc193FEa256a704ba4",!1,!1,null,null],["polygon","guaranteed_entrance_token","GET",18,"Guaranteed Entrance Token","304402201ed891d84a0085b7b0ced4e014a74fd3ffaa6943a936163e842a72c658c564f7022028460e745c62e1ea20bbf3909070aca3a327e84bd0e5b9e10bc3af7abf606766","0xdb725f82818De83e99F1dAc22A9b5B51d3d04DD4",!1,!1,null,null],["polygon","guppy_treat_token","GTT",4,"Guppy Treat Token","30450221009eaaa430e2b74dbee843b3fa66ae81633d79ebd857061fc38a9707d524cde1f20220328dcf774b5e26bd8485688a8281cf8bfdf05facf9106a46c5efe7b90b9e42f5","0xB5cB47A8f85628dea29AC7153544867e87Ae6937",!1,!1,null,null],["polygon","hashgard","GARD",18,"HASHGARD","3045022100a0ea67897d8ec63a4b9e64eb7c1823b424cb37f87e44d22204416aadea405bc002202e4c70b23a7d5edfc3342df5743a0607e808324d0d774893915b80ca00d564a3","0xf89250E83fA2F33058385C98c7c44e723B040359",!1,!1,null,null],["polygon","hex","HEX",8,"HEX","30440220479d463edf8fccb9cbed23a60d5b105114acd488386ce4012c6b2f7724e2eda002200332471b125a1422cbbf2a987abb80e46dff07b3cc8b0646d64ff30f0c39e95f","0x23D29D30e35C5e8D321e1dc9A8a61BFD846D4C5C",!1,!1,null,null],["polygon","holotoken","HOT",18,"HoloToken","3045022100f85cac4adb490920b248eb17b8d8616b4b2eefd1539b3e7fda92fb143d0ea3eb02200ae938327dc0121b1027a4adb4949c0c3cb64af16b7d75c724c7b39a43a6f2a0","0x0C51f415cF478f8D08c246a6C6Ee180C5dC3A012",!1,!1,null,null],["polygon","honor","HONOR",18,"HONOR","304402200e2e5a3658b3f5aadac860c834af9089896085f68c42e39441d84066db51729602207906e4da95931f6def2b18260d753c19461e69e189d3c6bc90523a0b2b9717aa","0xb82A20B4522680951F11c94c54B8800c1C237693",!1,!1,null,null],["polygon","hopr_token","HOPR",18,"HOPR Token","3045022100ec6ee1c4afcf263626e01dabdd68d0c27a2830e8bc844f19dc7d5c8d01c5e846022031b10b45f3ea9c93074dcde99adf86f2042d298bddf0107f9ba473d11adea49c","0x6cCBF3627b2C83AFEF05bf2F035E7f7B210Fe30D",!1,!1,null,null],["polygon","huobitoken","HT",18,"HuobiToken","304402202cc3a20b918bc1fb944b573207f4e8025b44b10bbef93c66c27cfcf22f526261022057132c7905fec1d6450034867a53f4c57ea4db958ff70755eb080f840caf6aaf","0xFAD65Eb62a97fF5Ed91B23aFD039956aaCa6e93b",!1,!1,null,null],["polygon","husd","HUSD",8,"HUSD","3045022100df67ae2679473df7d0a7c7f4a77fdec16418988169d636f68c6c4355ddb0d66902203b6d8724bcb64fe4fb8513d46ae518abdd3ec88a6037d082a435e3a4d899e5b8","0x2088C47Fc0c78356c622F79dBa4CbE1cCfA84A91",!1,!1,null,null],["polygon","idle_(pos)","IDLE",18,"Idle (PoS)","3045022100b09996d32cb187361b155513dd08d9d841c9031c8abdc2874a8debd9cb4f56d80220479bdc8b2f81977a16e30b38532a2477f098d0638e8cf037fd6acb559495167b","0xC25351811983818c9Fe6D8c580531819c8ADe90f",!1,!1,null,null],["polygon","idleweth_[best_yield]","IDLEWETHY",18,"IdleWETH [Best yield]","3045022100e3fdaac28de217d4d8b3856847aac4d7d9f219b963fb0b7afada1e5bb8f60d840220222f2455af918b7422629da81e28922a96d00cbf1aa75d3a6020344bdfe18c04","0xfdA25D931258Df948ffecb66b5518299Df6527C4",!1,!1,null,null],["polygon","ig_gold_(pos)","IGG",6,"IG Gold (PoS)","3045022100dbbe3018e2a4f3ccf05bd069f252f6a567fc32ebb60940a194d67c1de817f437022014a67ea4bf5a3945467d2b2924d46023bd742ae68ba07decc1c2f786d0dc0dc0","0xe6FC6C7CB6d2c31b359A49A33eF08aB87F4dE7CE",!1,!1,null,null],["polygon","ig_orb_(pos)","ORB",2,"IG Orb (PoS)","30450221008e358ee32b2f0334afcc39be9baf2963c39585dc754fa65fce3d01be5e70727d022025190280019a303181b42fa678e7a0514d35c5e175a888a5592b0d7021ec7c41","0x5a2fdF906ada9353eBe496Fa5D351B39f8908d19",!0,!1,null,null],["polygon","impermax","IMX",18,"Impermax","3044022057045fbdcb5de6009d1a0b0a982363e38d2f1bdb48a383da30f52da897f544d002207fdd46c2b42b4b1447fb1b831e9f75bafd1ad21c09e0c584e5e55f58ea125609","0x60bB3D364B765C497C8cE50AE0Ae3f0882c5bD05",!1,!1,null,null],["polygon","impermax_borrowable","IMXB",18,"Impermax Borrowable","304402204b52cacbce56ddfc68c1a2549535512bf9bd27f4b9c816a782a6515fce5d92f1022039484a3ff1da5e9203b39dd1e8f08f0b8afaf9b0ddae526cacc160815b2c6caa","0x6d24195060e20C2d717408B8dEcCA487B945c78b",!1,!1,null,null],["polygon","injective_token","INJ",18,"Injective Token","3045022100901789cfe2edb9719c1b3297f10c15dc3b33e7778118f2c731027795bf386c7702202db85f2c221e575fd3eeebc3a55273de7d820c2f14011bfb1ec2bdea2d372ec2","0x4E8dc2149EaC3f3dEf36b1c281EA466338249371",!1,!1,null,null],["polygon","instadapp_(pos)","INST",18,"Instadapp (PoS)","3044022046aa1646ff99298984627f196832310a2b1ab17409e4efd6a37b76fb69a520ba0220714ae7ea148e42d1796c260ac0d0d5ca882e4d8d00ce503fae0a76d422d9ee19","0xf50D05A1402d0adAfA880D36050736f9f6ee7dee",!1,!1,null,null],["polygon","internet_of_energy_network","IOEN",18,"Internet of Energy Network","3045022100ec08da1ceaf26b27972afe8057fabb123bdc770ccb7c95b62df5f1ab0281fdb202200d922169d29e2068f89a1c2cbfaa55b879d544c5becf9e13d39a14e5e9fdf6ea","0xd0e9c8f5Fae381459cf07Ec506C1d2896E8b5df6",!0,!0,null,null],["polygon","internxt","INXT",8,"Internxt","3044022017c8702e4eb6de4412fe11ef9bb79b465a3a652ca9a19e8a8b9e176a5ad432a002206413dc14ad5b40e55c9dfd407e16ae768b040f15a272ce4cfb916b5d08bda2ef","0xE64106154816A252da7728E35A0060F15d66cb34",!1,!1,null,null],["polygon","inverse","XIV",18,"INVERSE","304402202c2ed3446f1a9d10e6691bf6ab73fd2172335642b4d358fda5253229ee70d18c0220399d76cf157f660673f2abaac5daaad0953d14b2ad681ef84a79c18e883ee270","0xde799636aF0d8D65a17AAa83b66cBBE9B185EB01",!1,!1,null,null],["polygon","invictus_bitcoin_alpha","IBA",18,"Invictus Bitcoin Alpha","3045022100ea8027d63a3b89467427e36f0702980d7f45af44caab3843a84f5f2dd3507df502206e389f7db5a1341eeb68a5521f8c2e7bb886123081eaeb9852ad5d3c5ff8d251","0xa610854dEF3988165c905A46890892A895f33FB6",!1,!1,null,null],["polygon","invictus_crypto10_hedged","C10",18,"Invictus Crypto10 Hedged","3045022100ca183f573536e92593d4a4b3b5924aea362975b69abc23bb73e6c18317fce6de022056194457b28f6d879d822514243b5e89f215a35408a30fe463e06d2f06c0ad45","0x7619E393b0AE60F1780ACD9C9BAf326EEA15A3F0",!1,!1,null,null],["polygon","invictus_crypto20","C20",18,"Invictus Crypto20","304502210089f34e28a7a04cf029f17dece49ae418cbe37e73576779b1dfbe97fe4ffa5a5d02200cfafc70d350c0f20a82b7152ac73d2015e4c6a6c514896bf7f150328674e37a","0xf9faaAfA1b57b742d718FDbdF6bc1D5Ca4D6841e",!1,!1,null,null],["polygon","invictus_stable_growth","ISG",18,"Invictus Stable Growth","3044022072698e40d12afd9862b6791f30f795cb7a17b192a83d66858c62861073a4b1a4022045b4f2cbd849613e499cb482f9c3b17d6ab483a4ac811ee456ab2d29b2c32eef","0x0088cDEb8e93CDC56975c4527705eC5b19D195d0",!1,!1,null,null],["polygon","iotex_network","IOTX",18,"IoTeX Network","30440220110a3388decbf42ab2fa309d56abeef2181140533adff9e72f9f89b27c1e7ad402202423fd328566079e9a9f78a0a040189daa275b5feb6c935032ff931428aebce7","0xf6372cDb9c1d3674E83842e3800F2A62aC9F3C66",!1,!1,null,null],["polygon","iron_finance_ice_token","ICE",18,"Iron Finance ICE Token","304402205ba575a2e5ec8428b5833ef20673f1a5b72ca974fb8d672ba24d592ca160b24602206eab86bbdb0aae8bfcbfc9d9c298e63a6e1e7831f82ffbf19575a1f8aacc6609","0x4A81f8796e0c6Ad4877A51C86693B0dE8093F2ef",!1,!1,null,null],["polygon","iron_stablecoin","IRON",18,"IRON Stablecoin","3045022100cdf97a354a7a3d78bd1e9f4fad24b7f795004ed8f8542d310a04ce9c511899bc022044f68b145028da1ce6f3ef32f3c89e0c1e943b24e403e410b43d134f3e2b7c06","0xD86b5923F3AD7b585eD81B448170ae026c65ae9a",!1,!1,null,null],["polygon","iron_titanium_token","TITAN",18,"IRON Titanium Token","304502210086601ee708d443615e629b377537bb649b3c327b49faa654daccf232e2ab22cd0220357ac0f5cd3866211d0f90cf590f838cbb881929e8138fa67ed6ba68e9576b41","0xaAa5B9e6c589642f98a1cDA99B9D024B8407285A",!1,!1,null,null],["polygon","islamicoin","ISLAMI",7,"ISLAMICOIN","304402205447eb185a8df573b56cf629c8717536750270a7c00ddcb153d9bc0ce50244c902205f5d4ecedccb0d3e8bdec18e63b15aa26d5efe41044abf94ff21c2a63ff113ed","0x9c891326Fd8b1a713974f73bb604677E1E63396D",!1,!1,null,null],["polygon","jamonswapv2","JAMON",18,"JamonSwapV2","30450221009011b6d63f6a6d09a50aa581fe3f25589f84b7cef0163d89f302adcc714ff86f02202752c4a6a1889d734ef28f167e5bed8f5417f3722282b0f73f8fd4baedea0351","0x2594C5B25EdAb3eBe937e27650c02922D9A62BF2",!1,!1,null,null],["polygon","jarvis_reward_token","JRT",18,"Jarvis Reward Token","3044022064f387e73f3549e57f3d3e491d891050bb22f3fbba60b50bccb05dd269a9dfae02200e7c59234ce6ae72b1c5495f14ae289b07eca39e28e168bf83cc2672e4559e31","0x596eBE76e2DB4470966ea395B0d063aC6197A8C5",!1,!1,null,null],["polygon","jarvis_synthetic_british_pound","JGBP",18,"Jarvis Synthetic British Pound","304402205b1295f44dce2193168680525a73f45b0f7b80579d9fc659e9116aac18d5d56402206eb20e69629fd6fad947e05e440da8ce81a1814831445832149341b61e75c6a6","0x767058F11800FBA6A682E73A6e79ec5eB74Fac8c",!1,!1,null,null],["polygon","jarvis_synthetic_canadian_dollar","JCAD",18,"Jarvis Synthetic Canadian Dollar","3044022013bcad79311c2f66aab3fc4f760269f8d9b3d73b505acaaa6d6330e5ff83aadb02207a746067202ccb8bfece4a97973cb53cdca0becec02200ed7bd0bc5a2060cda7","0x8ca194A3b22077359b5732DE53373D4afC11DeE3",!1,!1,null,null],["polygon","jarvis_synthetic_euro","JEUR",18,"Jarvis Synthetic Euro","3044022011607ee079738049f3a5c3213ce9282960420bcf139d249ef5d34fe46a54970f02203967a87e580e152c01ab5a4145a61a33cedac08a6d97fcb3c6df3516ec5388e0","0x4e3Decbb3645551B8A19f0eA1678079FCB33fB4c",!1,!1,null,null],["polygon","jarvis_synthetic_swiss_franc","JCHF",18,"Jarvis Synthetic Swiss Franc","304402204b9ecc6f90345d4476e4709992d8e35f0e19fd6e5e28f42e15597c578a0e7034022051f49901b86ab00e507b5a211edbcaff7fb460c03799e7d0840497c948c8003b","0xbD1463F02f61676d53fd183C2B19282BFF93D099",!1,!1,null,null],["polygon","jed","JED",18,"JED","3044022010c2a5f4a3947dae7f9a29aa176619463f5cc74ac1ab306488b8564f65b52a74022012f48766299bc5ab3840b83bab55111524e2930298f27ba9e55b4d58c45ae1c0","0xF6D0762C645E873E5884E69BBcB2F074E6067A70",!1,!1,null,null],["polygon","jpy_coin","JPYC",18,"JPY Coin","304402203401f72b0374c0ebcce813d0bae3de19bfc648d0d42f4aa4d613c0a81235a493022074756e15b8e837879b605b2a1a0979fd5593556c8733fcc78d88fa905b1eb681","0x431D5dfF03120AFA4bDf332c61A6e1766eF37BDB",!1,!1,null,null],["polygon","jpy_coin_(pos)","JPYC",18,"JPY Coin (PoS)","3045022100b12aba338671b281904fecb15cea061d04c216d4d1658f76efb3962472d0b668022061b9ef3ec82fe821b252556d3beb8b32c18f745080f0408305e2f7420cd25d2c","0x6AE7Dfc73E0dDE2aa99ac063DcF7e8A63265108c",!0,!1,null,null],["polygon","juice_(pos)","JUICE",6,"JUICE (PoS)","3045022100c61856d040ce042a7ac97f1fbda6bf288be54346dcfd33b61f558ee85b50a85c02201325da49c51cb24fb9d92dbb82d9be2399ee1082c0ef104b2eb90fde4de388f2","0x28E96FFe75CdCc97044585b866BD02bD79C12dc0",!1,!1,null,null],["polygon","kart_racing_league","KRL",18,"Kart Racing League","3044022007d27359e5a392b47f7ebd60a9741d19c9d0272f607b6cb7f6cff00a816810950220205025d3e774c634540c65cbcb4acea2ca8b24bf0bc41c900e51bf9c74490a32","0xc17b109E146934D36c33E55FADE9cBDa791b0366",!0,!1,null,null],["polygon","kastatoken","KASTA",18,"KastaToken","3045022100de98dbd09128c748cf82459c1bebdd57e86387bdf88a50f14745195bff26747c022002036319474361dbeb6af529a51e8885d95c0e95612aaedf5731a8836b2e1b48","0x235737dBb56e8517391473f7c964DB31fA6ef280",!1,!1,null,null],["polygon","keep_token","KEEP",18,"KEEP Token","30440220421592d52f76c4a708667d808924c882743f4e158529f11ba66acccf012cb84a02207c34642ab8380c5c3ddaa0ccb112b35483c41c06678589e09c1e79dc54636a16","0x42f37A1296b2981F7C3cAcEd84c5096b2Eb0C72C",!1,!1,null,null],["polygon","kiwi_lemon","KLMN",10,"KIWI LEMON","3045022100f72e921a0055944ab9fce533380a0f1a92dd5bff1e47e91461c1ff9b6b01276f02205ac1f66bf09ad67cf5e1f93173c243f278a82f29ac46b8f205eec24968c3b479","0x700A6eBf972dC6b2dc47d3b7654526AEa1462435",!1,!1,null,null],["polygon","klima_dao","KLIMA",9,"Klima DAO","304502210087a54559eeb46b56383ffe9eb31e5cc335509b20b5c4073953fcc6997c1f138802206231cff344df06951a6a84c301b511ccc87b6270ec3f5a379e58b5d47c45da38","0x4e78011Ce80ee02d2c3e649Fb657E45898257815",!1,!1,null,null],["polygon","kmc","KMC",18,"KMC","304402207c705221bc7939a211fbf12c6eb1414bad1dea2500883d2c9a49d278f4a9f78802206b8246c8c4a1848baa582004c9dc0bc41ca73ce9b5c8a211106c22d3c92ae5ba","0x44d09156c7b4ACf0C64459Fbcced7613F5519918",!0,!0,null,null],["polygon","kolo_music_(pos)","KOLO",6,"KOLO Music (PoS)","3045022100c3454c68856ff8691331e278ab5bbfe87a263e556052924ffaf1ef54183cfb9e02207ab2ee2188f08584ee419efd758c508d1d99b5c3a458a53218fbcbf0f5b6bc05","0xe1240e13FDA129845d17b73eaE548Cd690e8DEC8",!0,!0,null,null],["polygon","kommunitas","KOM",8,"Kommunitas","3045022100b24917d3aa3d7d34599ed683335c1b75e7cb7ec88994e41cb41f91be2fad9e960220334bba59f53368d880ba2cef7119cfa3b77f75371abe6dfe3060e466d3139039","0xC004e2318722EA2b15499D6375905d75Ee5390B8",!1,!1,null,null],["polygon","kred","KRED",18,"KRED","30450221008cdc3d4763b165406d655f69988ace64cf23d0864840a592d19bf816c944aea2022079cc36eff112a4d52c81417b1661aeadaa7ad06f1594e9ff415a52e3c62f7e77","0x5e6602B762F76d8BFDC7321AA0B787B1E67b187F",!1,!1,null,null],["polygon","krill","KRILL",18,"Krill","30450221009145d9d117de32047ffd5acc07f236b67dd59529b9fe9c3adb9e3ac0233ba0300220514c59fcc843eb3d4820d374dd17d3a415c33b4f40ff192e4c6b686ad615f932","0x05089C9EBFFa4F0AcA269e32056b1b36B37ED71b",!1,!1,null,null],["polygon","kyber_network_crystal_v2_(pos)","KNC",18,"Kyber Network Crystal v2 (PoS)","3045022100ac428da56dd621eaaaafc550ec9970ac2c8c5297af8bc7bcff068f35890121010220779cdf971ea6b145fcca46cdf8a926acbaa9ff97dd309ed5770cf769e7cdaa3d","0x1C954E8fe737F99f68Fa1CCda3e51ebDB291948C",!1,!1,null,null],["polygon","launchpool_token","LPOOL",18,"Launchpool token","30440220215b5326f5901a6105e12af79906312949c5f8b004386edb10f4cbc903ba720a02205182105c2768f6ea61e18d3731cc50daf40e1eab935f3d94cfd135fb95146eb8","0x9e7Deba360c77949bb75d16DC81b2393C15005Eb",!1,!1,null,null],["polygon","lcx","LCX",18,"LCX","3045022100b49173776bd434db9fd5be2e72f12164cf77935adf7550077fc39950124e4ab102207bfa25c2ae8022695cb92931afd61caf793693ed318750a4f6a1255bbc4130e3","0xE8A51D0dD1b4525189ddA2187F90ddF0932b5482",!1,!1,null,null],["polygon","lemonaid-crowdinvesting","LMA1",0,"Lemonaid-Crowdinvesting","304402202ff36ecb96d10b5529d030301dfb1df5352362f2b99074045f62d782dc293a2c02200d22ec85dc48c54a3a60c9898aa0bf61291f127c7fd1b27bd53d102b80b031d4","0x045a982104854B7f2CaA109aC4C047CBe9ce5C3C",!0,!0,null,null],["polygon","liquid_staking_matic_(pos)","MATICX",18,"Liquid Staking Matic (PoS)","3044022035523f9be3d4bf623daa0c6d43c88af5a8f19ac0732b6d05b51649fc6ca48665022063627829489de17eb7c2d170fbd874cf2c24dfba640ec53f2f5c09647cbd8a59","0xfa68FB4628DFF1028CFEc22b4162FCcd0d45efb6",!1,!1,null,null],["polygon","litentry","LIT",18,"Litentry","3045022100a4d37029bb8562a35730ce18e8f2f9acff6c52d3fb2f67dd41bfc72b97390074022053a10ad4cfba695e88596bdca5d3ce6dfed8a596546c6f3e90a531e9ca237301","0xe6E320b7bB22018D6CA1F4D8cea1365eF5d25ced",!1,!1,null,null],["polygon","livepeer_token","LPT",18,"Livepeer Token","3045022100998fd2d3d64f163248ac84d8751d447edd362dda82ce83efd6ca7cbee8ef4e4f02205a78aff434d95ee987acb6823dd2281603141af99b287482ca8f2b04e337449d","0x3962F4A0A0051DccE0be73A7e09cEf5756736712",!1,!1,null,null],["polygon","loopringcoin_v2","LRC",18,"LoopringCoin V2","304402200d9794985a79f6bcdfbd8284811d80249ca32467f9ef66a27c0fcdff43225c88022008e2692ad59eaf726882c8505fa2cec99451060181707abd41abb30565826881","0x84e1670F61347CDaeD56dcc736FB990fBB47ddC1",!1,!1,null,null],["polygon","lucky_races_sliver","SLIVER",18,"Lucky Races Sliver","304402205764d60f07714fb0c49ac04013453164a90074c60239403a09a421d70f5bf56902206c5a83cdcad134a95b1959c7fc98850fddee0b0eccade2568e1d65154f489d83","0xA95b410743e8c2F7b64f1373D3Ca2B3454864a94",!0,!0,null,null],["polygon","ludena_protocol_(pos)","LDN",18,"Ludena Protocol (PoS)","3045022100cfa1d8d49fb287827c00359e2ea6894d18e42555c6a665ea8e032bbf6db503e702204297aa1ca7f718c9051dfa90f164d99ed573fec69f19130b5fd2ccd2203e9d72","0x7dF5638222BBe24cCe39f726c3B61cC03610622a",!1,!1,null,null],["polygon","luxy","LUXY",18,"LUXY","30450221009cb97172c2878290431b168a1bae5e3f33eaa2fcba1bf263cf0f975aca497f3d02202c04942a553dc5eae44889363c61b6615bfe750591f27281854737ba68c27ef9","0xD4945a3D0De9923035521687D4bf18cC9B0c7c2A",!1,!1,null,null],["polygon","mac&cheese_token","XVMC",18,"Mac&Cheese Token","3045022100eddbabb393f94fede1c3f0dd764f4921b089ae8fcfb3bc753d1be46da59507f0022058b822bbe5bdb52b18bcc883a75752c3f9d94148483043bfc5110776ee3afa4a","0x6d0c966c8A09e354Df9C48b446A474CE3343D912",!1,!1,null,null],["polygon","magicstone","MST",18,"MagicStone","304402200530a9ae82b7124e48f766bc53a4a5b7e1618b137206f7d320e9e1f2a318c8650220054be0aee9698591b3b89224ab63f7422b9db1f17ce69707916b940dc45bfd63","0xa353dEb6Fb81dF3844D8bd614D33d040fDBb8188",!0,!0,null,null],["polygon","magnesium","MG",18,"Magnesium","3045022100ed3a13c8598cff566442041547132329edc91c4d622ab026415464755e70f71902202d78b3f7f9fd19c23266b03300e32d44052e65c9c4d0e5b7fffe4309b742d28f","0x2b70b0dDb96E2581a311dEB25A1424C7167E4A53",!1,!1,null,null],["polygon","mai_(mimatic)","MAIX",18,"MAI (miMATIC)","3045022100981b0b3ae56668a7e40dc6bb87da63955b6b716e50baae52cb4a72ffb7adc7d7022052e9a942ecbfe27435db6e6f632e4bd76076498e011af6a37db060e6b71babc2","0x992446B88a7E62C7235Bd88108f44543C1887C1F",!1,!1,null,null],["polygon","mainframe_token","MFT",18,"Mainframe Token","3044022050a25d9d1399fdda062949b6c8eec25b2144e39db8aa0e8103e69da78c68b7da02202459fe33547637f812422f7f397e19fe3b363107ad64b2cd8ef9c0b540ecda90","0x91cA694d2B293f70Fe722fbA7d8A5259188959c3",!1,!1,null,null],["polygon","maker","MKR",18,"Maker","3044022028163f6351dc91fb1b53d02e407b7d41e7d43eebe30e9b51ba26c227ab1447f302202257ef7960134df342c1a74c06698e5f0cb2180032dad663ad17ff6b850f4588","0x6f7C932e7684666C9fd1d44527765433e01fF61d",!1,!1,null,null],["polygon","mantra_dao","OM",18,"MANTRA DAO","30440220610533443b38a8a6567b13823a5e34275edf5532e0ccb28678b4571aa485428e02202f41793d82e11b5736dd936611854e6352eb08ddd5017e9b3f036e7cc66d8333","0xC3Ec80343D2bae2F8E680FDADDe7C17E71E114ea",!1,!1,null,null],["polygon","marlin_pond","POND",18,"Marlin POND","30450221009f09ff2b458405be622481bc389a31906218473270a91c855103294b705e855d02204eebc0115274f969e0890fb3f6ea239a04af5e9a5ab4cb4545cb514c0910ee2a","0x73580A2416A57f1C4b6391DBA688A9e4f7DBECE0",!1,!1,null,null],["polygon","mask_network","MASK",18,"Mask Network","304402201610449bb6144e5fa5a0dff8a3937546c63f5425c3183040bc3af91d241fb10d022050f2e11ab90ba3355081db37e2e1391eb670458095a5f960a498746239bc887e","0x2B9E7ccDF0F4e5B24757c1E1a80e311E34Cb10c7",!1,!1,null,null],["polygon","masq_(pos)","MASQ",18,"MASQ (PoS)","3045022100cd3cf2e7ba4045be8fc0a6556e2f3b5faffa923f6bc06a7ff04de40c350d0972022012be922f40802227e82b9c5883789bd68a440b7f3faa117951b083b21c03b617","0xEe9A352F6aAc4aF1A5B9f467F6a93E0ffBe9Dd35",!1,!1,null,null],["polygon","matic_aave_interest_bearing_usdc","MAUSDC",6,"Matic Aave interest bearing USDC","30450221009485660477820f0c20fe0152f8697419d74b86ae006571da3a82b92df08a771502201d43918816b858ca2afd797634b4061c5fea30d7689cec8aa37df8701ce782d5","0x9719d867A500Ef117cC201206B8ab51e794d3F82",!1,!1,null,null],["polygon","matic_token","MATIC",18,"Matic Token","304402204809d6569de46f25f6b7804cd5758e04bae97c4f3e296b58fa5b313fc8d7c5e6022060bcffefd8c6353be414945c11db390750e5e43b1f8ba5f2dfcc50764d1a7efe","0x0000000000000000000000000000000000001010",!1,!0,null,null],["polygon","mee_governance_token","MEE",18,"MEE Governance Token","304402207951e1030938075b8521ee9e100314b2db7dc4af3f8c4e2be5df91ba74290c91022044cfdd4f26b640552c2a0b7c8b7df850e60f69cf5053004d1d8d5d0130d4244b","0xEB7eaB87837f4Dad1bb80856db9E4506Fc441f3D",!1,!1,null,null],["polygon","meta","MTA",18,"Meta","304402200deefaa443552d4634507754bf388eab461a5be5489fcaac40795ada4bfc366702203b2fbb7076432cbdaff88002e616f80de97841426b9a3cf824fe2bf57035c7db","0xF501dd45a1198C2E1b5aEF5314A68B9006D842E0",!1,!1,null,null],["polygon","metavault_trade","MVX",18,"Metavault Trade","304402204b125c302f288332c20209f698aeb4faf28534d15a1b359b6fb396fae29d932c02205af568e4c9f1426a95c683625fbb00b0da4201fda4300bcbc8ee986a900450c3","0x2760E46d9BB43dafCbEcaad1F64b93207f9f0eD7",!1,!1,null,null],["polygon","metaverse_index_(pos)","MVI",18,"Metaverse Index (PoS)","30440220542c66ae5d89e71f53d7bf85b47651947dca243f56153804cee0d3a06eab7398022040b0bca5debb473b88a0019724e10a259d18c66246eaa86d83d02747419ac03b","0xfe712251173A2cd5F5bE2B46Bb528328EA3565E1",!1,!1,null,null],["polygon","mimatic","MIMATIC",18,"miMATIC","3045022100e90762884ff53d623b79c5bafc7b6ef9b15dbce9a0b2a6cb9606ef41d8c9f967022030aad9cd5db83ed7ab378fcfae58b462c52c147b0cc432304fb822e4edf0cef2","0xa3Fa99A148fA48D14Ed51d610c367C61876997F1",!1,!1,null,null],["polygon","minerva_wallet_supertoken","MIVA",18,"Minerva Wallet SuperToken","3044022071b0583dd5d9fdbcc8e1fb0d360ac1e17b0107d0085a2da92de15df593b69ef502203b4bcaca643a1b1195920f724e66e8b323b0210393ccaa5b80dc906c709da8fd","0xC0b2983A17573660053BEEED6FDb1053107cf387",!1,!1,null,null],["polygon","modefi_(pos)","MOD",18,"MODEFI (PoS)","3044022070ad0b39743c18ef57e8ab39d13e736157eb61486bc698ade8c5b8349c1d8b1302204c956b737796cf5cab03a6040b36251608cf5d8bc688731f1d272472270db356","0x8346Ab8d5EA7A9Db0209aEd2d1806AFA0E2c4C21",!1,!1,null,null],["polygon","moo_curve_atricrypto3","MOOCATC3",18,"Moo Curve aTriCrypto3","3045022100ae2f3f7c9dfc8aee7d0eaf26c4580a2f1188ebe2fb75baa6b861fdcfdaac293702205a05afd4dbb215c320eda804ffd970d6f2a9c79396e0146b44a00650933e86ca","0x5A0801BAd20B6c62d86C566ca90688A6b9ea1d3f",!1,!1,null,null],["polygon","moo_curve_stmatic-matic","MCSTM-M",18,"Moo Curve stMATIC-MATIC","3045022100deac1b66ad25a31c49de0ca1c7280d4c4151cd8d3fb9866d970699b0762316dc02204b111513d50623bc8d855d4729485d26a0b495dccd28071e13fc9be031ee7725","0xE0570ddFca69E5E90d83Ea04bb33824D3BbE6a85",!1,!1,null,null],["polygon","moo_mai_usdc-mimatic","MOOMUCMIM",18,"Moo Mai USDC-miMATIC","304402206d26c619af09933e14dd9179701ec32b4d8b55e5f007838234ce47cad3a7ae14022067f9206859d50230746147649ef4d0f9db7d682fcea27e283f88fac1f0de4f40","0xebe0c8d842AA5A57D7BEf8e524dEabA676F91cD1",!1,!1,null,null],["polygon","moonwolf_io","WOLF",9,"moonwolf.io","304402207219cde47ae2f296ba82fa38d0170c7a28002339e39e362138c4acd5d8c53c46022016ceebddc7101938b8ac86f21b16cc2366f95c5a50b2b79e98f896a75e30b2fe","0x8f18dC399594b451EdA8c5da02d0563c0b2d0f16",!1,!1,null,null],["polygon","mover","MOVE",18,"Mover","3045022100c481954a8735c5670354f4355213d85f4145739fdb5084ee33ec448bbedfc634022012023de7dcfe7f37fcad39506ec865738bae14a12c15d31b0241250c42ceec3e","0x521CddC0CBa84F14c69C1E99249F781AA73Ee0BC",!1,!1,null,null],["polygon","musd","MSUSD",18,"mUSD","3045022100f095a9526e3e6258d3f61f8b66e154ed38d48fefb969e30d49968ee55850deff02201718a4a55d0eb04fb1ae92e82771ff8ad2f381a18576c03690517b89c183dcf5","0xE840B73E5287865EEc17d250bFb1536704B43B21",!1,!1,null,null],["polygon","museum_of_crypto_art","MOCA",18,"Museum of Crypto Art","30450221008a8cfa453fa8393c6b59bc481250561edc82b40b610587f266b496e087dbbdd4022042f86504cefd402469364088a8026f8ced40d8131e9013923e9fede6e72c7934","0xcE899f26928a2B21c6a2Fddd393EF37c61dbA918",!1,!1,null,null],["polygon","must","MUST",18,"Must","3045022100ac9c06f26defad4d40a394ef6d40bb04246470f97cb02e069e69e0578e8fc65c022035a364b95a03399ac31777075e90419058addb3a09eb0d592833ccf2ebf0fbd0","0x9C78EE466D6Cb57A4d01Fd887D2b5dFb2D46288f",!1,!1,null,null],["polygon","mysterium_(pos)","MYST",18,"Mysterium (PoS)","3045022100b3c724140250803ab3294d03eef28097363b46446913a382990608994b7f6df40220255f5f5b4c23cbe16f8d32a28f5cae94c2f4e81eb0372e87bf884b02221c1271","0x1379E8886A944d2D9d440b3d88DF536Aea08d9F3",!1,!1,null,null],["polygon","nakamoto.games","NAKA",18,"Nakamoto.Games","3045022100e638f9de7f2e67fad5e0f19233935bae921c551ae4529c8f22ba8d8d44104b32022011147c5459d6f815bee6a31ca29c8e4a63cb5485b9b4820ebaa24ce663d04787","0x311434160D7537be358930def317AfB606C0D737",!1,!1,null,null],["polygon","napoleonx","NPX",2,"NapoleonX","3045022100948dd459eb87f596ee1555f6be889bba96ff1764a2648e43c24720f0e3fd7d8f02205b3100d2b087d3555954788b1991cb4543535f84954bdccfa3a87a5fc700c35a","0x106035DEDcA635d75d6Ff05F98F25916829eDB77",!1,!1,null,null],["polygon","nash_exchange_token_(pos)","NEX",8,"Nash Exchange Token (PoS)","3045022100b8328ad3da43e8da0bdd7ad844eb15872bf42ac84c358d9b2d442597ae9853260220047c25a4503a28c71d67c86ee94d1c239750912ce6d3002772705d297f73712e","0xA486c6BC102f409180cCB8a94ba045D39f8fc7cB",!1,!1,null,null],["polygon","neighbourhoods_token","NHT",18,"Neighbourhoods Token","3045022100fe6ee0005f410db9901de157784de9e58469bb2d957c8c219bea4f41eb57a495022044fbb21830ba0ef9ff2aaa0c991702f802cb6b95248e6c297e21b15d9ca77705","0x84342e932797FC62814189f01F0Fb05F52519708",!1,!1,null,null],["polygon","neos_credits_(pos)","NCR",18,"Neos Credits (PoS)","3045022100bdd5489d4dd7cf302678e96fc09c757a7abf7f8480f08bfe39fe2032982a8f9202205d9f97b690d49f46444dd434bb95064702d91b65f5a234516c062dbd7e46263c","0xDA6f726E2088F129D3Ecb2257206AdF7D8537Ba5",!1,!1,null,null],["polygon","nexo","NEXO",18,"Nexo","3045022100e55f2f5e587f95f627932523c95ea0d1d748dbecc9921d0def3f0acccb70efee02207c3b2fee173e99d90c28eb324832db0d14b4a477c1ec5f2468442b6404d41d8c","0x41b3966B4FF7b427969ddf5da3627d6AEAE9a48E",!1,!1,null,null],["polygon","nextearthtoken","NXTT",18,"NextEarthToken","3045022100e58ea45d8190eda21e1283f7690a367f8b70cd1864e086cbd24236fd448149a9022049a3ee879b9bd229602ff2b0f59736be95abd53ef6921c2aba60b25facadf894","0x0d0B8488222F7f83B23E365320a4021b12eAD608",!1,!1,null,null],["polygon","nft_champions","CHAMP",8,"NFT Champions","3045022100b850df2f915e98ad5380efa24d06b4bee71e636ad48d5bc33f1c57ec1bbf5cd602201566a782484be00bde6ee829561546066bef92b1f9ce5c6725fc42630428f90b","0x8f9E8e833A69Aa467E42c46cCA640da84DD4585f",!1,!1,null,null],["polygon","nft_worlds","WRLD",18,"NFT Worlds","30440220382709f0ae7c544e3873aa80c6051d0b897334334298a3163610d11cc93c4c9202200e6b503776a39bfbfca334e8e3848daadeaef7ee7dd1ccd3c07f37cbf6683b58","0xD5d86FC8d5C0Ea1aC1Ac5Dfab6E529c9967a45E9",!1,!1,null,null],["polygon","ntdl","NTDL",18,"NTDL","3045022100eec243df4a672cfdc52c3c04343c09c2505a4a597fab251d4de8d056c5790db8022001c943d1e943ca6611c70c6bf890b9368cc9b62f624f9c544fe8b5dd6a75d8a7","0xD735b487B9018eEaDA2cC0464DB02Aa4B90cA711",!1,!1,null,null],["polygon","oat_token","OAT",9,"OAT Token","3045022100b731601e374b75b96aef2ac8b3bff2e923d82d8050883a56315b9634f3497fca02200b6963cbbee07785be5db24e7856784608861fe3376c732d0337091b67ba13be","0x6b90f248d10a93072eCE74ED03D281269d017DC9",!0,!0,null,null],["polygon","occ","OCC",18,"OCC","3045022100ae2ad9e38419d203873ef47a3450a0ff1cefcc02db4820ba2d78eb366af1b828022018e0d61c5904170cc32090826efbaccfa813988a2043588fd70badaa8bb1b975","0xF30355BA14B2d3b31597EC71a4542f57e902Cb80",!1,!1,null,null],["polygon","ocean_token","OCEAN",18,"Ocean Token","3044022042dbec9c2f3a5270e89008659bcd0d3103922f210f9e4d574e189690690ece5c02207a959c67010943e050dd27a9a01f1362bb82a4aae92ed011edc748215edc115e","0x282d8efCe846A88B159800bd4130ad77443Fa1A1",!1,!1,null,null],["polygon","oiler","OIL",18,"Oiler","3045022100d677ed4bffea3fb7bbbd7ff8e0c5b7e5a0a4da19492b5467cc08998446454e9002206da6c0c70ad320c4e03f132d6a65a24887d757f2e6cb6c92387fb5760bdfb818","0x65DfA90171e1bd9060209405026C4E1f4A8E58df",!1,!1,null,null],["polygon","omg_network","OMG",18,"OMG Network","3045022100cbcd714a57cab92d9e29b9dccf24d2cea2e37316e178fbc20fd2b4058b437e6d0220494f8fe2f94df6a1cac8db3b6a2d8e9093e275c6456a82f80c9c1aead272ce2f","0x62414D03084EeB269E18C970a21f45D2967F0170",!1,!1,null,null],["polygon","ong","ONG",18,"onG","3045022100d88317ad84d674f7e3514f762f55ca36684bc64dbc1167db15e4d148dfdfaf7a022070562a7c3723bd7e06125eea7826ab1bd22ee3e3e1c994ef5172f5b5038acbea","0xB6f10Be9201fb110b3Aa275267a234E84ade8e95",!1,!1,null,null],["polygon","optimus_v2","OPT2",18,"Optimus V2","3044022011fba90b78b9c612ccc2d5c98de3e10240b0899fce900aa25a1627fa79cd3a5e02207b4f17252c040d43cad9afca30d5c59a58981667e77afee61cbd07fe50098573","0x9E25126EBCD57C8eb6eb6c2ffC67810d365CFC3E",!0,!0,null,null],["polygon","optimus_v3","OPT3",18,"Optimus V3","3045022100831640c77d1c5ba8b3aca41963106fcbea844de0ab45e6903a51719c7001e47e02201d799e71980415424a36cef0193803ee5b2952d4f928887e84468083b81639a3","0xCf630283E8Ff2e30C29093bC8aa58CADD8613039",!1,!1,null,null],["polygon","oraichain_token","ORAI",18,"Oraichain Token","3045022100c095ca88734051e34e2264f62de8135067c0bcc097f22442a804ccc5894a117b0220398f6352b3284da54ca95a8cfa2121db96ec84efc96dcfaba83e55e124c32c82","0xF4310Adb83694Bc4808e0C5ca8F7027C6127921D",!1,!1,null,null],["polygon","orbs","ORBS",18,"Orbs","3045022100acc9116af0f76a425b4c455e6e9d6b1b59f09c8e0df801d28d0bc2741366d0fb02205b2e79fbb2e0057a7ba49dc952998b914c25130a82f8d2e1f3dd2bcb3d5012dd","0x614389EaAE0A6821DC49062D56BDA3d9d45Fa2ff",!1,!1,null,null],["polygon","orchid","OXT",18,"Orchid","3045022100b1a01a1074550b0afa035da72fef4b5d8f26bcb00cd9dfca25c4e183fd89da32022022ad8f4396b1c3f2f0c59094b3cca92fdf0813528028474515bb4be335b912cb","0x9880e3dDA13c8e7D4804691A45160102d31F6060",!1,!1,null,null],["polygon","origintoken","OGN",18,"OriginToken","30440220690953d2d100ddca74287806ed55aecf0f33c833fb414c6a918e17c56aa6a35a022001f5be1f70b997835f8ca49a3251b1dda16b3336b48f9a987069cb6fac2e21c4","0xa63Beffd33AB3a2EfD92a39A7D2361CEE14cEbA8",!1,!1,null,null],["polygon","ovr","OVR",18,"OVR","304402207b0b6c2a15167323c450f6f97c3db3f4781216a898d8e8b0f9d9807c4787435e022050dff7a08925fc5d4e63a46fe61ea18a521bd1be1719ef0cd15871fa272beef5","0x1631244689EC1fEcbDD22fb5916E920dFC9b8D30",!1,!1,null,null],["polygon","own_a_fraction","FRACTION",18,"Own a fraction","304402203dc4dc446647a63803848a78bc00e81c4736b28285c08680bb78e70eb8cd048102204560ec081818356f43dbefc10658f42632632c2b2a378f274670983348d3edef","0xbD80CFA9d93A87D1bb895f810ea348E496611cD4",!1,!1,null,null],["polygon","paid_network","PAID",18,"PAID Network","304402207110f2460a44236388ef4fc64d24e185a0b08ef5ae0d8b0e2775e71fa1afc12602205da639c5a7ad3a87b5ba721a3565792b3cdb4525279c26dd21db896d365884de","0xeAEf6cAf6d5894EDB2D4EA7ec11eC4AB655f1cBF",!1,!1,null,null],["polygon","par_stablecoin","PAR",18,"PAR Stablecoin","3045022100f918b620d0dd82c5e59ea97b41e3dd05a7a449b1686c1a7373e48b81cae9c314022021bc9a3a8240143cd92d453ee5dc7a2fbc649ea4a67a833e0b242bcdf98fec74","0x7b367a058f370c0057762280547d0b974cf3ac10",!1,!1,null,null],["polygon","paraswap_(pos)","PSP",18,"ParaSwap (PoS)","304402203cfbec20a2d250f300e6762cf72a1ec4f50c0673ad0989db22b6d7f20128d4a502206de571dd646da7b307e76c26ad02f368e22b07aee79b4b13d5481cfd349afa0c","0x42d61D766B85431666B39B89C43011f24451bFf6",!1,!1,null,null],["polygon","parrotly","PBIRB",18,"Parrotly","3045022100f5affc14fdd158718c0790cdf73a90cff638f8e72efd40cc22e2fca44fbd10cb02200255895ac5006179bba3a14bd30f3aed89a3e8e1d1b6ac4de99def056fd93a66","0x60EeC374a1Ba3907e9BdD8a74cE368D041d89C79",!1,!1,null,null],["polygon","parsiq_token","PRQ",18,"Parsiq Token","30450221008443ea75db0a8bbfecaa35a7867697ef097e9a09ccafd7e23742804e5bd5a92102207feeac4b67416298ec7a4b6288a111e8e60cbdbe0413832ddb5dd992ccfd77f4","0x9377Eeb7419486FD4D485671d50baa4BF77c2222",!1,!1,null,null],["polygon","pax.world","PAXW",18,"pax.world","304502210080b441f010378aad0917e69b5ee52e8c743dcc6a7830d3104e8c11437be58fa3022013b14ed5f32d471f04176e264ba69908bea3b5fe113423751828edbf53a46b33","0xC79Ae93D9C215EAa8c8DA5C77E465baC7dE28891",!1,!1,null,null],["polygon","paxos_gold","PAXG",18,"Paxos Gold","30440220366777a5244a25b29267cf4d4df4d285d3f288205aa25e453c9746315c04681c02206df03e2f914dd3561716e4fe1f8a9a5b2e4a59a4291dd777feaddcb3d660959e","0x553d3D295e0f695B9228246232eDF400ed3560B5",!1,!1,null,null],["polygon","paxos_standard","PAX",18,"Paxos Standard","3045022100a0fd20a02a801d127eb9e6ad59856909ab580c6ba2ee7d8757705e4335f16e2802204949c6795e2e23b11d07f78a045b42900195f1b3d3599357aa9058a84e8058ba","0x6F3B3286fd86d8b47EC737CEB3D0D354cc657B3e",!1,!1,null,null],["polygon","pegaxy_stone","PGX",18,"Pegaxy Stone","30440220431b2054344c423673cdd3ded15c3a5ae82dcd1e2683b8ced95fcef042a4660f02205d1ba3b5e9fa516a49abea1477639b62c09a3380fadf3d4964abb87327761c73","0xc1c93D475dc82Fe72DBC7074d55f5a734F8cEEAE",!1,!1,null,null],["polygon","pen","PEN",18,"PEN","3045022100b3836ae6648381ace881d406787d90f6953c14fa855242c6de48d0bbc2aeaad9022016c3cfdfb574608492a9590cc6c1f7ea80c986b9a868ea3d8352d59f8713b6c4","0x9008D70A5282a936552593f410AbcBcE2F891A97",!1,!1,null,null],["polygon","pendyst","PENDYST",18,"penDYST","30450221008b430d44f7217d02003e38204c5fc4551a1779205ad81d0e4b7aa4a350e8ea3f0220086b533eaa3f98dba72a35e1d7f0b97775ec8b092cd141bbf9ad0c3738310822","0x5b0522391d0A5a37FD117fE4C43e8876FB4e91E6",!1,!1,null,null],["polygon","pepedex","PPDEX",18,"Pepedex","304402200b590012ea3cb13b39348b11863fc7073f54ec13b94b5345d2d021695ea7056402207c7990ae61a9e4cbac791896d57da4609180f5738c1d806c27ffeb09ea251e7e","0x127984b5E6d5c59f81DACc9F1C8b3Bdc8494572e",!1,!1,null,null],["polygon","permission_token","ASK",18,"Permission Token","3045022100eda6a74d8cc0aa5ac7a72f09eec7398d3fdbf4eefb0b1028338a2b7a496ab59102203fe89e857ca8b9d446071e3a378c6a9dc8af8df2b2e960ba18889f66d0e9db3f","0xaA3717090CDDc9B227e49d0D84A28aC0a996e6Ff",!0,!0,null,null],["polygon","piedao_dough_v2","DOUGH",18,"PieDAO DOUGH v2","3045022100f08450a344629b75ff4f4ac08a21cea60603a46c0c2795e2782b770180838de602205a50961be1e93f6b71b91a3444e70c13c22ed37315c0767e45bca8835c874554","0x990F860968714c2D16e91Ec0cd9709A94264Cf64",!1,!1,null,null],["polygon","pinakion","PNK",18,"Pinakion","304402204c37665d5ae80c17bb4710b7db4e924a8479675c8255637566b8ebb56d052dc902204091c0317a8497f4267eb1c70d3e953cc9332785f59a912ddf80cb6e91af8fd3","0xad93E067e149f0A5ecd12D8EA83B05581dD6374C",!1,!1,null,null],["polygon","pinknode_token","PNODE",18,"Pinknode Token","30440220351b833f6ba2a58c10d9bf92a04dd0e507bb0ec1bf0cc228da153e98a648324e022070025b9a70ebf6a9e8367dcda3ee5d9f1325f585516d51627a60e9875cb48bf4","0x4E92f6f10496F3fCB790Cc6969Cc15B87c8F9199",!1,!1,null,null],["polygon","planetix","IXT",18,"PlanetIX","30450221009ae47f607b8c4421b69c43f110221019912ed13b891ffb5f50fc31fa7862683702203544f5f577a02f5143285325c00b54f9f507a7fb1cf7604f69c8647369eaaf2d","0xE06Bd4F5aAc8D0aA337D13eC88dB6defC6eAEefE",!0,!0,null,null],["polygon","playermon","PYM",18,"Playermon","3045022100e9ae502812883cb8bce68153548f5302e6ea41483bbfed576f8435802198b2f402205c1c7727151f5f5b6c4e7290bef11aa3dca95f8496aa04873dd5ec17b2c0ef55","0x0bD49815EA8e2682220BCB41524c0dd10Ba71d41",!0,!0,null,null],["polygon","pleasure_coin","NSFW",18,"Pleasure Coin","3045022100fb39de011a9958446a6a39f2ad1048564166226588e7e8a53ad99c8f84d425c9022015d707b6838878c5cfed50398c105729745487bd94647ff7179664975de7b898","0x8f006D1e1D9dC6C98996F50a4c810F17a47fBF19",!0,!0,null,null],["polygon","pluton","PLU",18,"Pluton","304402207f4935970038b11ffc3bee1567913d40f1ae3f30471d752a8531ba795a89cd51022035938e84b0edf51bb21d820eb561d08567dbe8918b396136e5afdc9102b7ef14","0x7dc0cb65EC6019330a6841e9c274f2EE57A6CA6C",!1,!1,null,null],["polygon","polydoge","POLYDOGE",18,"PolyDoge","3045022100932c4b2dd1a5e77023209930d92f84cf27d9629b75f8368434760cd2bde68924022013d2b965abc44f75bb5c7d91609a123d5dd050d4ed0ff6fac4ae9cf8a00aeb29","0x8A953CfE442c5E8855cc6c61b1293FA648BAE472",!1,!1,null,null],["polygon","polygaj_token","GAJ",18,"PolyGaj Token","30450221009f4e2e496ba2ec107711f8299f17cff60df06aac4f746ac5d8b2af63411db53202202b1bc6868e97589d9881575e323553e3b6f0392f374bf57d6444e6ebffb605f8","0xF4B0903774532AEe5ee567C02aaB681a81539e92",!1,!1,null,null],["polygon","polygon_bunny_token","POLYBUNNY",18,"Polygon BUNNY Token","3045022100869cbabf75d726a396640260dff557a3ec9013beb83a31b5a7298f2f24ecdb31022015dc5e73d6e454a611a9f6f5683646c1d070d6e9836bbd24393d03e43b2a3043","0x4C16f69302CcB511c5Fac682c7626B9eF0Dc126a",!1,!1,null,null],["polygon","polymath","POLY",18,"Polymath","3045022100d8c158f7cd8b12a3931e4e9ccdeca52b5e70a8ac95a1ecafc12755a7609e1f3a0220762baedaffad7867ad7bc3ab7c267e42f93dc428fa4062a8d3f92f626be95585","0xcB059C5573646047D6d88dDdb87B745C18161d3b",!1,!1,null,null],["polygon","polyroll_token","ROLL",18,"Polyroll Token","304402204eb664cfb3381398d621333893bb0348191f8feaeecaffd6a7018be0614f455c02200374feeedd2efadfcf538f80cdd1ccac63d18363b7d48bddd85202cba52cedd3","0xC68e83a305b0FaD69E264A1769a0A070F190D2d6",!1,!1,null,null],["polygon","polywolf","MOON",18,"Polywolf","3045022100804d18682dc5993c71ebd91a8b6fd2226b2359e114848f838488cbaa1ea412360220232804817181ca82b42ae0f76dbf668407185eab9bb1a01d76471f333343c9bc","0xc56d17dD519e5eB43a19C9759b5D5372115220BD",!1,!1,null,null],["polygon","polyyeld_token","YELD",18,"PolyYeld Token","3044022065de87aef41deb4b0c77747e9a6e23f4acafe7680ab3a3d57d3b9bc31b71a8e502205057cd1023774cd5773ffedb71a693c63822e1e666a960795229d172c1630546","0xd0f3121A190d85dE0AB6131f2bCEcdbfcfB38891",!1,!1,null,null],["polygon","pooltogether","POOL",18,"PoolTogether","3045022100c847f7dc9b69206c02c8bae2374dfb365ca9131cb2b919b9e6659cd6f9af3c4102201639148e169f38ce66414d51ad8575ff60daa9d6e43782db9eb0dbbe7184c2ac","0x25788a1a171ec66Da6502f9975a15B609fF54CF6",!1,!1,null,null],["polygon","powerledger","POWR",6,"PowerLedger","304402203c6468e0d9c6b1727eaf7ecb9caba9c26a99bc5fa5564f8b75ddda5ea20594bb0220448956a4ba2f5dc4831e7ab79b645ed01e2151aeeadeff42493196b0fbaab3c4","0x0AaB8DC887D34f00D50E19aee48371a941390d14",!1,!1,null,null],["polygon","prosper","PROS",18,"Prosper","3044022066864418a5ecfc21a77c0b3504f89f46d6531c8201836c447699fc93241f1fe202207a27e03eaea97990af908acb1c67351eadf1e9f7fa851d441fbf8b54dc24325b","0x6109cB051c5C64093830121ed76272aB04bBDD7C",!1,!1,null,null],["polygon","proton_gaming_(pos)","PRO",6,"Proton Gaming (PoS)","30450221008a66b4392fee33e644c9f7eaa4819a0db3b5a64ddbc88632baa016860fdc9c000220078421c124875b20b9764bbea500d13bcad8890d002ab6de87985f45b728cf8e","0xeF274c75cc3d32c989ffbf9476e0212a1caF1836",!1,!1,null,null],["polygon","ptokens_btc","PBTC",18,"pTokens BTC","3044022068140d5c2ddf3a44fca2f26a6501ad1403292cd35ec6d1a84592eb1d11bc2170022046361f0075c1a0f7d3c9304fdecc050babc1edf9b5ab030bd233f168933330bf","0x121eF177A0489271B4339bc29Ee64609b47D43C4",!1,!1,null,null],["polygon","pup_token","PUP",18,"Pup Token","304402206a285914d15826aae6434475ae938c43063a4d92aa1784609ce54de24f9cea6b02207881f884d2220550021c997a0df85e83c38c1e04add8ba2de9e994d5129e3b6a","0xcFe2cF35D2bDDE84967e67d00aD74237e234CE59",!1,!1,null,null],["polygon","pusd","PUSD",18,"PUSD","3045022100bfa2a989bbe0efcf2c8da49b356da55c00b4b434afcfe4eedef863ccff92df4f02205d6ff069bcc8c60d2c891528498667057223ed65ca26867b8aaceb991d113d19","0x9aF3b7DC29D3C4B1A5731408B6A9656fA7aC3b72",!1,!1,null,null],["polygon","pyq","PYQ",18,"PYQ","3045022100fd7084feafd0b7aa463ec98d8e3df78c2aa0c661d56b6d0e1b247dd9fb0cffdb022040b00978f591d18e2d2f197c1d511709302ae970a2d20eadbec36fdfdb254eb8","0x5a3064CbDCCF428ae907796cF6aD5a664CD7F3d8",!1,!1,null,null],["polygon","pyr_token","PYR",18,"PYR Token","304402201f9a2c5b19732e43d8e09701aa2969e5ee1b0394665cecb558dd1d0afa962bc4022057cceedec8dd7fad2299463f50f91b1e098b4d6f3f864bd1ae5fec5ea63ef36a","0x430EF9263E76DAE63c84292C3409D61c598E9682",!1,!1,null,null],["polygon","qi_dao","QI",18,"Qi Dao","304402206efdc615e0a058701d70bd924a858d8cf38214d1136a170e19a680ae31395f23022049c98bf1df2c5d7d2d1739060c0554f8631e278919b3a1e739246bd848c2bdb7","0x580A84C73811E1839F75d86d75d88cCa0c241fF4",!1,!1,null,null],["polygon","quickswap","QUICK",18,"QuickSwap","3044022056602cda616e541b712305f3a9532476c39f66f2e95fc05e6f01c590cb30cf3e02204acb3ad119714f52778df02b153647ea1de60265273532d988064b8db68b0721","0xB5C064F955D8e7F38fE0460C556a72987494eE17",!1,!1,null,null],["polygon","quickswap_old","QUICK_",18,"Quickswap (old)","3045022100d41b9bd54ca50fc882fee121f0b783934c89a2b7b8ab1ff459377b2e28c4140e02204dc53577c8ad9e37ab1820925e86f3511185adfaab83bcb5fcfe9dfd740771cc","0x831753DD7087CaC61aB5644b308642cc1c33Dc13",!0,!0,null,null],["polygon","quidd","QUIDD",18,"QUIDD","3044022057e04f04f6dd523f3f79d2bcd0f1f8521df3aa6d17851da99c6808a93a384dff02207c5a3d9c4481ed00df6d64beb74c07009fb76961d0a4838f060b0b7a7b7ead4e","0x123706cDD8e60324e610E9A2CC7012D0F45A5b8E",!1,!1,null,null],["polygon","raidertoken","RAIDER",18,"RaiderToken","3045022100b4306da5314fa83313fd080fe9d92e2fffd5492b9929e9ede6daa8e516c1898402202fd296a3cf8c43113dab3f6515ed596842a4fba417801481c79e190266bbab20","0xcd7361ac3307D1C5a46b63086a90742Ff44c63B3",!0,!0,null,null],["polygon","rarible","RARI",18,"Rarible","304402201d63d1eca3dcc61f0c155bd0cdb34c5cd7c2ac446a64d8a25c2fce5dfc0ff11a022012243245f3ce383d22c2bf8a164f23f9b59c1ea9ce8a9abaf681df4dcc3e30d6","0x780053837cE2CeEaD2A90D9151aA21FC89eD49c2",!1,!1,null,null],["polygon","renbtc","RENBTC",8,"renBTC","3045022100c05722046d1029e5be43e39344b8bbf08ceb191e1cb308bd56d531769dc4268a022017b53fff3c2aa453070696d94037f583fbda8f68d5758afa701eb3b141f4bc0a","0xD6C23852b94FEde6AB571e4b4cFdb745b49Dc9EB",!1,!1,null,null],["polygon","render_token","RNDR",18,"Render Token","3044022042d62a1be583b33bf641857e3519ef7422a350e21258f030b8c25fdd4c7e8260022052f4e10c82849f947f4a5acb87db379c56c84576bd083073c16a6a59869096cf","0x61299774020dA444Af134c82fa83E3810b309991",!1,!1,null,null],["polygon","rendoge","RENDOGE",8,"renDOGE","30450221009459770c7f112f22fe117f69f315d68f97fe0e4627415732e4ff57e9f768052602206a26ff549a74a8c5c40e114bb19e3f2cf30c0f7dec91d5745148ff218b5236ff","0xcE829A89d4A55a63418bcC43F00145adef0eDB8E",!1,!1,null,null],["polygon","renfil","RENFIL",18,"renFIL","3045022100bb66e93c3aa7aead7ef944c20614e837aa963d064330d0b98ead27c915101c1702204fee135f515103754423dd144d822efadceb848489508c2477150969a88242e1","0xc4Ace9278e7E01755B670C0838c3106367639962",!1,!1,null,null],["polygon","request","REQ",18,"Request","304402207d4a4d64ba7d7e41fd03eb5dd20703119108efaf6de3671149e69fd305e98673022062d55ac8e8cba6b42de22bc687669ab4a9864c92ab99092d1d0d8a5b199e9a8b","0xB25e20De2F2eBb4CfFD4D16a55C7B395e8a94762",!1,!1,null,null],["polygon","revolt_2_earn","RVLT",18,"Revolt 2 Earn","304402205332db04c46fba362200b84d66828d3591d273048f53a8326b91ce882dddaab6022018d268e7667147584fbdbd0a361094bdc7721a392d340f6894dc563e20fc0be9","0xf0f9D895aCa5c8678f706FB8216fa22957685A13",!1,!1,null,null],["polygon","revv","REVV",18,"REVV","304402203d883d329adb570698e893c5ad8f83b3716e89f5e8749bac4a742c83f741e5ca02203884a0cf71fdedbb30d41ec293722cc39e89b2b31fd9d0ac4363020c39bbcaf1","0x70c006878a5A50Ed185ac4C87d837633923De296",!0,!0,null,null],["polygon","rickle_(pos)","RKL",18,"Rickle (PoS)","30440220437c5013e582eba707e7e8336e38a336686538cc6ed5689d05e69c6943b2cf3f02203202fb9bbf5c1f5952b0250e0f9e404fcb67b7794dc8a45b9ec506f73b760871","0x9fDC23fe295104Ac55fef09363c56451D0E37CFA",!0,!0,null,null],["polygon","ricochet","RIC",18,"Ricochet","3045022100b63ad7d3dacb0dbd2f006372598474a0aec29345b843b99889c3da5ce4e6c07802201f49dcb4bf0b3d1a02fa2bd823e703d4bd23ea4f18436004afecf4dbdfd1afce","0x263026E7e53DBFDce5ae55Ade22493f828922965",!1,!1,null,null],["polygon","ripiocreditnetwork","RCN",18,"RipioCreditNetwork","3045022100b5b8c036b1906e9f286ac8ef6ccf20bdbd944c22476b1a4fc7a8cff541cbfd85022060c5a569ca87042188efaeb352fac5cd41a9f0416aa304e713684232cb009ed1","0x89C296Be2F904F3e99a6125815b4B78F5388d2dd",!1,!1,null,null],["polygon","rlc","RLC",9,"RLC","30440220763bbbb5486d36f9d455764c8632008b1c5b67d45c099e3ad492b8ecbbd290f5022007ff2d836f1668768f9abde172de2a7e5d11299f12a91b1172e17b0f4263c610","0xbe662058e00849C3Eef2AC9664f37fEfdF2cdbFE",!0,!1,null,null],["polygon","rocket_pool","RPL",18,"Rocket Pool","304502210088e2753ca251b934fb95645f451b30f0d69b72228f76e671c71f4784d80523df0220695ecb3258a48d7fc434e73910e1718b20a6359e4501c796d541337a2c820a79","0x7205705771547cF79201111B4bd8aaF29467b9eC",!1,!1,null,null],["polygon","route","ROUTE",18,"Route","304502210089f5b01d29803b7a94d038092c05f2378ed2fb73a4bccb8a08fec6e75f43836302206851dfb9b543f033484550b1041bdc9bed00d43a03b70bc3d312c8edd94c8314","0x16ECCfDbb4eE1A85A33f3A9B21175Cd7Ae753dB4",!1,!1,null,null],["polygon","rubic_(pos)","RBC",18,"Rubic (PoS)","3045022100f849984f462557a6b74b48337387eaff6439cba4e90242e958d91d5e3c88e5a30220740585ce2bec064bbc8c9a4a77b1bd7c923ffabf97b0f1ee6535237d759985c4","0xc3cFFDAf8F3fdF07da6D5e3A89B8723D5E385ff8",!1,!1,null,null],["polygon","safedollar.fi_dollar_2.0","SDO",18,"SafeDollar.Fi Dollar 2.0","3045022100b9cd7e36d080fa92721d5ea291caa453784a3b84070fe0387ad5018792a0648a022028b80062c9598c4977b9c2e5e908371599801732ee8341f55c0758d51f692d3d","0x66C59Dded4EF01a3412a8B019B6e41D4a8C49A35",!1,!1,null,null],["polygon","safedollar.fi_share_2.0","SDS",18,"SafeDollar.Fi Share 2.0","304502210084d9c869d4bc12ca8a6653a736c52284fbf9503bba4659acc52161f7db97213f022056fcad1644a1cac28d21a905c0376550cb430105dea74112b841e5a20b2564bf","0xAB72EE159Ff70b64beEcBbB0FbBE58b372391C54",!1,!1,null,null],["polygon","sand","SAND",18,"SAND","3045022100c21119cb079c76295c8524b3091064854b02ff371416a1a5e48e9095edb3bfe502206f785716e63e80a99eade8d3fb273031614393e086883d866b5f9db2809b9ebc","0xBbba073C31bF03b8ACf7c28EF0738DeCF3695683",!1,!1,null,null],["polygon","sand_old","SAND_",18,"SAND_","3045022100e49d3eb141bdd203f2c1b85d351540ab0632be7a398a39498182387c4adc3875022027f9a9c5f5927727682d71e7224828dbc79926991cee0521501c840f8cb2e57d","0xC6d54D2f624bc83815b49d9c2203b1330B841cA0",!0,!1,null,null],["polygon","sapien_network","SPN",6,"Sapien Network","3044022077e4b88efdb063bfaea7f1cd49b1e3698c7eec3f700889a34f2df8c5e6dc5f44022036ccfac493a01ef8268aff6b295633b36ec5df127c74daf35d8c3ea2eae91f01","0xeAb9Cfb094db203e6035c2e7268A86DEbeD5BD14",!1,!1,null,null],["polygon","sekuritance_(pos)","SKRT",18,"Sekuritance (PoS)","30450221009a5f69aac654cdd8cd3893ee4871d7c3afaaea0818e368199fcec15da8e15bb60220266deb07c25b56fd036501e0b95a992c93d137874d391a9805854b77e5c6897d","0xE51E88dD08499762B8e4EB3a9f3Da9b8e79608c3",!1,!1,null,null],["polygon","sentinel","SENT",8,"SENTinel","304402201f023fd294b88242f14e4061fe352aee3aeceaf28d47c3989f1ea7aa97f2aa0302206856a4013b36c60d7a0fdcba49e43f007d252cddc25cecad7bcaf71e59eab064","0x48e3883233461C2eF4cB3FcF419D6db07fb86CeA",!1,!1,null,null],["polygon","serum","SRM",6,"Serum","3045022100c649349ccb7fa669ae7fcb0397f145d7ac72f1fb472842b28d838b250595c9ef02200b67a2fb4e51dee5b542d74d62dbea0892e0fc59e9a0c02772670cf83f327056","0x6Bf2eb299E51Fc5DF30Dec81D9445dDe70e3F185",!1,!1,null,null],["polygon","shardus_(pos)","ULT",18,"Shardus (PoS)","3045022100868d7c77036de1619d4a95c8d57e83251e818ea59c1a46df2efafc758de5bffd0220380a111481edb6e59513f347a9962057931d68c6495a9af2a1d286c43d8d6df6","0xf0059CC2b3E980065A906940fbce5f9Db7ae40A7",!1,!1,null,null],["polygon","shiba_inu_(pos)","SHIB",18,"SHIBA INU (PoS)","304402200e72cffd84b0d023de4d8f7e22e79f32046c593e279d625282c02dd048d9edeb02203ee10afe9b3c70e92fc77fe2704c8b5271971f062f86f133f100946ce6572a1b","0x6f8a06447Ff6FcF75d803135a7de15CE88C1d4ec",!1,!1,null,null],["polygon","shibplus_token","SHIBPLUS",18,"Shibplus Token","3045022100c66bb2a7b89334766f5f9e532d6c50e2c6f4a1e93ee780e0c0a5c75a39f99b79022065f780df173374b9d2d37720e0b2b9cd7f6e96bd6d949490028a3978f0cb64a2","0x2B72E322A29964A1172812021A0fd8D84DC26A5a",!1,!1,null,null],["polygon","shopping.io","SPI",18,"Shopping.io","3045022100a62733824ef978d69bf87b0b58cf62781c4dec1986e88c79a9ce90252e1a48c902202ce77ea5f7759fe688619f0a8bec2528b459c715e47c3d43636e3d94f2c9c39c","0x068180071617528606371c31892EcBF2B70ac1d2",!1,!1,null,null],["polygon","singularitynet_token","AGIX",8,"SingularityNET Token","3045022100c8522f1c1ab31af32f71740b443c3cc1039c74764c59d4ea15cad27c4097410802202a2dacb662495b79a7573dad329ae177d40bc37976d94a9d4ec9c1eedd21c7e7","0x190Eb8a183D22a4bdf278c6791b152228857c033",!1,!1,null,null],["polygon","sky_play","SKP",18,"SKY PLAY","3045022100c4149870ea44410b7f8f27414e3c5007bdc3a9ad3c48c41f87cc672a6f4443d4022045ad28cf674dbb4876dbfbd1b656146a6dfdf680239e8ca044187cc632074aad","0x4c665BBafd28Ec9e5D792345f470ebFcA21E3d15",!1,!1,null,null],["polygon","space_token","SPACE",18,"Space Token","3045022100ab84a0543dd829799c51c3eb0edb8fe7db72bd014816158e880f4a110eebcc2702201468551d0ea0f672978f9bd08f6e349dabfafdea5ac05e03b49fa95dc15f8361","0xB53Ec4aCe420a62Cfb75aFdEba600D284777cd65",!1,!1,null,null],["polygon","spacerat","SRAT",9,"SpaceRat","304402201ed3b017ce531c52a7f9df50ec38610d8463b7729e44511f1bf0f58d07bab49402201af4319aecd3c33a0209e355e195b2cc20fff1292b39f0aef67a10d0d2be35cf","0x1132f58810Ee9fF13E97aECCd8DDa688Cc5eb8F4",!1,!1,null,null],["polygon","sphere","SKOR",10,"Sphere","30450221009c6ae549c11eea5ec886e14e3b0d59c35851d51b4fcdeea099998f32ee49a734022040370ccae8d4a03ff832f03b835cdfb62634b00fa49c1ca508f65b04be4c0fd6","0xeab490c06E17C1f652825dAb7E9C237ef272839E",!0,!0,null,null],["polygon","sphere_finance","SPHERE_",18,"Sphere Finance (Old)","3045022100dbbad95bb39b66d7949de8caf071a90ca17db658928b983b82c198027673cad50220055c168939fa61d4e13a10b166803d0f802ddf4b839ca06beb127fcea4296666","0x8D546026012bF75073d8A586f24A5d5ff75b9716",!0,!0,null,null],["polygon","sphere_finance_","SPHERE",18,"Sphere Finance","30450221009d977c149bf7e8db755cf3edaab3965a023eddddc0a3c09d35db5824942aed1a022035d3d97f200c450a67636d2c95ecfcf9a89d9fa648af36a88062e87f9479f821","0x17e9C5b37283ac5fBE527011CeC257b832f03eb3",!0,!0,null,null],["polygon","sport","SPORT",18,"Sport","3045022100bea53ef4ba1c298d8e89581ab4a2564f87a99289e06c87c4e7a4ea843a591cf9022064929bf917ae06b7a32fbf0e46c4a83e1bd77d296493b838f1148ca4cb5ec70f","0x503836c8c3A453c57f58CC99B070F2E78Ec14fC0",!1,!1,null,null],["polygon","stable_one_rocket","SROCKET",18,"Stable One Rocket","3045022100ec727b8ee762ce57b3ab252fb8abadab07fd8f5800bfe31abc9e5d7273e2db390220205fe0f44e3317a55800300677481c2990d2fdb0ba9de927115245e1193c46cb","0x94788309D420ad9f9f16d79fC13Ab74de83f85F7",!1,!1,null,null],["polygon","stablefund_usd","SFUSD",18,"StableFund USD","30440220376b447de1d589339bfdcc8d49649b43b591a077aa38b757e4cae855fdf3300b02202f68f8957e76dfe0becb51f6d8a131110352c41249e04fd165a621a76d5d2abb","0x93FEe753b548b4Cf93C41AdA062F80DE12710dB8",!1,!1,null,null],["polygon","stacker_ventures_token","STACKX",18,"Stacker Ventures Token","3045022100e195e85ff238799847a5af5c875f31c75e96b0bdcf55373e366bade150aaca2e02201a3fea5a53e21c1413bce6aa6cddd09a9822e1689777c22679c65c0899aeafb1","0xcAE73e9EeE8a01b8B7F94b59133e3821F21470AB",!0,!1,null,null],["polygon","stacker_ventures_token_(pos)","STACK",18,"Stacker Ventures Token (PoS)","3044022011c1caac8801e8a3209b04f8516f2618339ac18f9ccf2438f9793545772caaed02207956082348e52ab602bd61bc732c93d18a7b288d9b5c20a4bb9309876be72a6a","0xccBe9B810d6574701d324fD6DbE0A1b68f9d5bf7",!1,!1,null,null],["polygon","stackos","STOS",18,"StackOS","304402206addcc7967322c1123edc8c40c15612734bc224b98c3cfd73c29a53aa8971fb4022031fc00cb726d7f6274213e26c04cb3a4f931df3814dc8350f6dd37bb559a0768","0x980111ae1B84E50222C8843e3A7a038F36Fecd2b",!1,!1,null,null],["polygon","stake","STAKE",18,"STAKE","304402205f7a4020031482ade4568896f97a0575a3dc1919646e7d8b4b414739d0847c4a02200d254c84b384ec61376d83d53a7b2d14bd246acbce7a8d3234636108fb3c1322","0xeb5c9e515629B725D3588A55E2a43964DcfdE8cA",!1,!1,null,null],["polygon","stake_dao_curve_amdaiamusdcamusdt","SDAM3CRV",18,"stake dao Curve.fi amDAIamUSDCamUSDT","3045022100adfd757d0adef92ecd6ca8337519b7dd5163c9c5d88f172fa84fd1a4bc90d4a5022033c67f1651228a34bdce8e75d435a86fdc594bcf4dd9d2342ef5206fedc27ebf","0x7d60F21072b585351dFd5E8b17109458D97ec120",!1,!1,null,null],["polygon","stake_dao_token_(pos)","SDT",18,"Stake DAO Token (PoS)","3045022100ea9c0fc1b28d945dab1cb9653ab90bf03df989a197d52c11a760b2ecf4de3e15022042f061996c60f2598437c8c1648f3d8c29d37b2de440a3c43fe2d2211e80464f","0x361A5a4993493cE00f61C32d4EcCA5512b82CE90",!1,!1,null,null],["polygon","staked_abi","SABI",9,"Staked ABI","3045022100a9918d3d13f424bffcaeb646051b4f7ff3dc48b103ead0bf39d3de0e84ce29c302202bac77bb63eb94b2b946fe9ddaf63c36dcd277be86974ebdeed551b9430f9ae0","0x925a785a347f4a03529b06C50fa1b9a10808CAb5",!1,!1,null,null],["polygon","staked_dominium","SDOM",9,"Staked Dominium","3045022100de34c3c05f39b65f018b1fda9702dd58721232a6e26ef8e3fbad1c5f6bdcddfe02206c8e805f38e2c4ea22ee1bd379118d91eef6a51e37d93c6635ff1e959d1abb3e","0xb521bF96Ad3800208d0958c8a3af5561a66f57Ec",!1,!1,null,null],["polygon","staked_matic_(pos)","STMATIC",18,"Staked MATIC (PoS)","30450221008657add60231f635dd9307d08995e184d007759c9a0f8b787c88b06bbe53097102205cf980ced4f6342534ca9a7c3019da331576c0cec05e09eb623594e339fa2b7a","0x3A58a54C066FdC0f2D55FC9C89F0415C92eBf3C4",!1,!1,null,null],["polygon","stakeshare","SSX",18,"StakeShare","3045022100bc6a6b01d812191c0c9fd8d5936ada0a2230ce6d0b7cdc1d31271f5340f9f4fc02201694ec8737dc0f7d320fc811a6d6d5f077f84490f8aab578e1551af360fca37d","0x9E2d266D6c90F6C0D80a88159b15958f7135B8Af",!0,!0,null,null],["polygon","stakewise","SWISE",18,"StakeWise","3045022100cbb1f417533c99ff0635b3b5d79de8af2f58c81dce21c45889f5d558cce33bf4022049ea64d7339b8f65c1fdc22dce407a2bf3e39f90c08713019eacb3a42d58e2ee","0xBbbe128568222623D21299f019a978C8587B33dC",!1,!1,null,null],["polygon","stargatetoken","STG",18,"StargateToken","3045022100d170a9a9cebe10b039a3d250e43a39ce86a11d735e7da5d79fe44957033f9a0002205a1d95e8a3f6a8a868039fb6fc88b87f935fe4c34e626f1cb31cf7f6756065f5","0x2F6F07CDcf3588944Bf4C42aC74ff24bF56e7590",!1,!1,null,null],["polygon","stasis_eurs_token","EURS",2,"STASIS EURS Token","3045022100cd91f0b64f1981b6c541efa3d28c1eefd0df08cde9c385b6eebc5a1d76725f2e022047f17ddc307ed6941857f5cab5acbd5f1bebc3551a987d8614342c7379825672","0xE111178A87A3BFf0c8d18DECBa5798827539Ae99",!1,!1,null,null],["polygon","streamr","STREA",18,"Streamr","304402201d7ab4d608b973717f1fd75e3f728ada6d9afeea8f76765c61ee233a7368e3b40220734224fecc9aeb414c4b396175ec54bcb124b6437448f84f6a1c9f5499a8a202","0x3a9A81d576d83FF21f26f325066054540720fC34",!1,!1,null,null],["polygon","student_coin","STC",18,"Student Coin","30450221008682480e8ac8a19f23dc4d21ef7a6701d663e0b047e9315bb214695515b076fb0220295e4854bb0862e5aed648cb7fd4967d0998e2631ceb23897e5c2983048513e3","0x779b299eA455D35A44FE9baC48648be22C08DEa2",!1,!1,null,null],["polygon","super_aave_matic_market_dai","AMDAIX",18,"Super Aave Matic Market DAI","3045022100fb8127664958ba114f88a3ba2544e4b805af249afe18280def6b93ff4201063902205a15e8eadf43ec1b336440548614d2848504179bec6caab1608ec5d14eddb743","0x133B0cB0F460406601FF060BE281E01e81b1B54c",!1,!1,null,null],["polygon","super_adept_camp_doge_coin","ACDCX",18,"Super Adept Camp Doge Coin","3045022100a15dd88b05f76c28d17162cd460701765109d0ba0147640df3e28cce6d394dc70220102c07502869c9bdeab4872a1fbcf3f77de8f4d72fd5a01b5927075977607990","0xc49c15350f001efEe91E154F03BdDF38CFD0d96e",!1,!1,null,null],["polygon","super_ageur","AGEURX",18,"Super agEUR","3044022042889c6c78fe827c4c89bac23794a66b233a909dcb9194cd582108f48967db65022006f1b903cda324cf5853c1c814ab032537e589b0cb3e9e246e3d8774be336dbd","0x3038B359240DFF5CCd42DfFd21f12b428034bE38",!1,!1,null,null],["polygon","super_blackpool_token_(pos)","BPTX",18,"Super BlackPool Token (PoS)","3045022100d9b71b43d5f48aeb95d4dc848fff9e92737e81005c3ed6c575f29271851afc6602201d4ad61a6fa8b6cca9453556a6c81193f42edb748eb524ebe04867dc64ceaf6f","0x229c5D13452dc302499B5C113768A0db0c9D5c05",!1,!1,null,null],["polygon","super_dai_(pos)","DAIX",18,"Super DAI (PoS)","3044022030b1ea70fe43318f8c3aed674a9308551d77f8225d7e2dc80e74db3698e4f1a3022016de22c03ca19406db18f6417a2c189691c0ca4080dd94a64a6d2586675341ff","0x1305F6B6Df9Dc47159D12Eb7aC2804d4A33173c2",!1,!1,null,null],["polygon","super_dbeats_token","DBEATX",18,"Super Dbeats Token","304402204ade108b8e6749abb22d818916e33580f8eb2f643323a04f21fe3e622c4a4ac802202b131ae9ffe46ce44d6ce3809e78c4e265a31530a6db586cb66c2d776a6c0159","0x2e12D38C6aa87cb68cE96C044b9A68dD98233Ceb",!1,!1,null,null],["polygon","super_float","FLOATX",18,"Super FLOAT","3045022100a0ffe3c72b0f7c4f7f62103f6bc2ed20b43acd5c72b1c07885b27ad2cbc9225b022006350d27874fdea182d03077b5aae8a832b28b6374876c2c2216ce2522aed6c1","0xAff1CE7832a1c7655803533DAb391920caFE467F",!1,!1,null,null],["polygon","super_idle_(pos)","IDLEX",18,"Super Idle (PoS)","3045022100a5e7390b9600384cbc208c8dc53990efd8a93db173098a7419098a076b698c050220590eb94c972e2e65f11e7319f4afb9fff02b0d0d68133035fed387d004769bf8","0xB63E38D21B31719e6dF314D3d2c351dF0D4a9162",!1,!1,null,null],["polygon","super_idleweth_[best_yield]","IDLEWETHX",18,"Super IdleWETH [Best yield]","3045022100d3d89f73f1de94d902c3aa421bd98d4c33f786b2be50667f7518dec7fee0f0e2022039846e0271aa5e37e18342170f32fb14902a09fc2d87e716bd242c84f4430420","0xEB5748f9798B11aF79F892F344F585E3a88aA784",!1,!1,null,null],["polygon","super_instadapp","INSTX",18,"Super Instadapp","30450221008c3de21a0c9048b5641781e7e36eba18d2db3605ee141eedce7d707ad918e4bf02203a1191231cfb075140dcfe7027ddb652b22bb4d8edf3e01f5c8fea603515ed34","0xcb5676568FeBb4e4f0DCa9407318836e7a973183",!1,!1,null,null],["polygon","super_jchf","JCHFX",18,"Super jCHF","30440220037ce9bfb38f78a245c64818e7985c2c07b66756115a4a21f76980e31cf6aec702207f8681671bc72ba8294b958995e9c563cf13707483117214f729ad005aec63b9","0xE2d04ab74eed9627c828B3fc10e5fC96FAE70348",!1,!1,null,null],["polygon","super_jeur","JEURX",18,"Super jEUR","304402206a298e1f03ad4a5ad789e2013471085ccc5f6b58b14a2464e5a4c6f3a9fc76ce02200248bd3ae9fbd3fe9f38ee851f228e7957de8d8e8a57392b0e235a119c5a482b","0x4bDe23854e7C81218463f6C8f331b46144E98eaC",!1,!1,null,null],["polygon","super_jpy_coin_(pos)","JPYCX",18,"Super JPY Coin (PoS)","304402203854ff44b7f7e48ee5fe1c8402cc7e521a99144957729f4af2a379222defdbcf022012654a1deb74331b97fe886a438868ae7bafed41451b7825b3a599fe02aac366","0xFBb291570DE4B87353B1e0f586Df97A1eD856470",!1,!1,null,null],["polygon","super_matic","MATICX",18,"Super MATIC","3044022064a8658191c15ebac0068741fa6bbd2cd9d4a0c40882780a160d913f510fb05302200c63e6c7f74ca9299810796981ac891e1a2539d61bcb1d45438619ae58cc87a2","0x3aD736904E9e65189c3000c7DD2c8AC8bB7cD4e3",!0,!1,null,null],["polygon","super_mta","MTAX",18,"Super MTA","3044022025b3e390d7af0ce100db08d973ca5c0a969bcff9f7607492a5b7b37c7ab25e57022077228372755168484b882af0fe140f23d12727e93f34b2257a46216d4cdaf0ee","0x3d9CC088bD9357E5941b68d26d6D09254A69949d",!1,!1,null,null],["polygon","super_musd","MUSDX",18,"Super mUSD","3045022100deceb02a49d476267c5c7e8883af04d273f5fed13549bfa07ae657eb94fa5f8e0220399ebdb3ca09ce27251b0dd64601a60de73548afcdac45d7d3b41f8341eb7d9a","0xAb0b048E8b60EB9e8c7a2d46634326143393f2Ea",!1,!1,null,null],["polygon","super_request_token","REQX",18,"Super Request Token","3044022057a8c82f389368c5c2e62655b89ea84c61c2f25900f4e602ed15956b77f012e9022061f6790dd4e83ccf1f0e473183a20d34063ad09617743d356f5ee3e5be44d5f0","0x32cefdF2b3df73BDeBaA7cD3B0135B3A79d28Dcc",!1,!1,null,null],["polygon","super_stake_dao_curvei_amdaiamusdcamusdt","SDAM3CRVX",18,"Super stake dao Curvei amDAIamUSDCamUSDT","304402200a625bd1960cb154f79146e674fcaebe663f3eea5351a6d75e73a38ba1a6fdbe022065c822da17ebc0f004ac7644b80f700558c964614b7e988ae931ef9e730d042f","0x8ef4F0C0753048a39B4Bc4eB3f545Fdae00618B7",!1,!1,null,null],["polygon","super_stake_dao_token_(pos)","SDTX",18,"Super Stake DAO Token (PoS)","3045022100d50109c0d45808e7db8649f53ac12194cd5aa5a271d28c4f2119a1e2aaae702e02206d884b433564ddf8b5a6cc76af0416636e33ba3e88db0f155051c45e76f54a89","0x12c294107772b10815307c05989DABD71C21670e",!1,!1,null,null],["polygon","super_usdc_(pos)","USDCX",18,"Super USDC (PoS)","3045022100cf1fc8c3f507ff2906bf129f4b921155bc32eee8c635c193c103ec0dc8c4a8b302203782d779ff61cf42952d726dc81d1cef91229bb3f9d86428abecca090c491ed0","0xCAa7349CEA390F89641fe306D93591f87595dc1F",!1,!1,null,null],["polygon","super_wbtc_(pos)","WBTCX",18,"Super WBTC (PoS)","304402201dccdc68bd35f00c003779d71337a789b4fe8bd437fe1647ffda82d899ecbdc202203504f3f3aa5f8b25a74de3cb0e3401d265e69976b612ae47f73a78ff079ec2c6","0x4086eBf75233e8492F1BCDa41C7f2A8288c2fB92",!1,!1,null,null],["polygon","super_weth_(pos)","ETHX",18,"Super WETH (PoS)","304402203d028ef1e0728c6c869b9f431ef8e945ae6e1598a79b8191eaf60a3127ba11cd022034e64eba1b60e74539053fe4f7ac3528b46c35a8169c7236940c17803a647741","0x27e1e4E6BC79D93032abef01025811B7E4727e85",!1,!1,null,null],["polygon","superfarm_(pos)","SUPER",18,"SuperFarm (PoS)","3045022100b34b5b5981c20518320baf7c6f695fda645162a870dccfc292a32ef12c163b5d022065681bcaf2a7018a3638dfd880526b84418b22e323d590d564198e501f730000","0xa1428174F516F527fafdD146b883bB4428682737",!1,!1,null,null],["polygon","supermoca","MOCAX",18,"SuperMOCA","3044022079e4fb64d7ba26f1fbf3021b0e17dcf2c4d9c91e71269c6d7658f55a6b097d3002201255ac97ab67096e4e8b5286f2dd6f250216a00f88a587a2e04e10f2bce5dbe5","0x1ADcA32B906883e474aEbcBA5708B41F3645f941",!1,!1,null,null],["polygon","superqi","QIX",18,"superQI","3045022100f11bd7bb4c19d5531ace9b3b78ee6036b83443466c7aae8e78c796002111580f02205f2af97ce268db890297fdeee5d50c53995c042a5a29e02d6bea7d4e7de9364f","0xe1cA10e6a10c0F72B74dF6b7339912BaBfB1f8B5",!1,!1,null,null],["polygon","superwork","WORKX",18,"SuperWork","30450221008297d6cfcc5b09c91e35eafddb21e7be660693057378d29cb851e527105392b9022070b60bcd89d3cd18eb3b3c5be0b9fa3193c9d3c6655d78a8e130a5ce006fc6a2","0x61A7B6F0A7737d9bD38fdeaf1d4160E16bf23043",!1,!1,null,null],["polygon","sushitoken_(pos)","SUSHI",18,"SushiToken (PoS)","30450221008884a0addca753dc4393d8e5541819547c6d6e5ead02a5e1a7235fcddbb0c64902204c5c0f309402efa8767c9114ccf2b866d2c0a2aa05cb7d14aa18e00bf841a508","0x0b3F868E0BE5597D5DB7fEB59E1CADBb0fdDa50a",!1,!1,null,null],["polygon","sw_dao_via_chainport","SWD",18,"SW DAO via ChainPort","3045022100f2e6f1b84057facb4daaaf81cba03e06b18dca11500022e9d0204dd9063afe6c022025a71a890d846736d44cf076b50174e18aaea00e98ead409da00eda6db78f5f6","0xaeE24d5296444c007a532696aaDa9dE5cE6caFD0",!1,!1,null,null],["polygon","sway_social_protocol","SWAY",18,"Sway Social Protocol","3045022100a1ea09577f41ec128903a1929e32d96e0dc68abeae30317996d08c8447c3931a02203a394a63bc99ef137fe15d49200b2964feb5b067a0c7097b201052ab8a2f3993","0x262B8AA7542004f023B0eB02bc6b96350A02b728",!1,!1,null,null],["polygon","swipe","SXP",18,"Swipe","304502210091117e42be90ced27fecb5c5061e7924163c8fa2aa5f97ff015591825ff034bb022036fb7411de65f0cf2c3f657b40b8426447b5d3ac5f2d7f17e1f02d7a705834b5","0x6aBB753C1893194DE4a83c6e8B4EadFc105Fd5f5",!1,!1,null,null],["polygon","swissborg","CHSB",8,"SwissBorg","3045022100b336701b18926b318036944930d9bc8961785d5b8bff98108909e99ca63a54410220687e186ba97314ef15a15d3b753d4162240505a2a6730b65a30d96b5645a4c79","0x67Ce67ec4fCd4aCa0Fcb738dD080b2a21ff69D75",!1,!1,null,null],["polygon","synth_susd","SUSD",18,"Synth sUSD","30450221009977e9457dbc4e54cbeac056370046e91aba5cce6b2f4ed218c520404a352f4502203b23604adeab58c71558dcb261054b3bdbe16aa29f58c767807765ee1b3b3673","0xF81b4Bec6Ca8f9fe7bE01CA734F55B2b6e03A7a0",!1,!1,null,null],["polygon","synthetix_network_token_(pos)","SNX",18,"Synthetix Network Token (PoS)","304402201f2c8892ac4f7edda2054cc124893abebf1b1341609c310b010c24f3eb5d53ab02205622033d1f4ded85a0de1061b3e65fc707718029f02b75d56bfe470e6061661b","0x50B728D8D964fd00C2d0AAD81718b71311feF68a",!1,!1,null,null],["polygon","tapmydata","TAP",18,"Tapmydata","3045022100f0507c1386c9af0892dfc5a7fd72b880126ebaa601b0c528655dbe2f434cabbf022018de2cb1bbb5d67d633e25429573ed9210ae5b8466acdf64a858d23a9511fd38","0x10635bF5c17F5E4c0Ed9012aEf7C12f96a57a4Dd",!1,!1,null,null],["polygon","tattoomoney","TAT2",18,"TattooMoney","30440220618d64e47a74b6b398341005a1ea578c72789f45f74351655c9b2fd435a53452022078ab85fec2bd2f10513770e1bee7f36c6c9503f4b8865e5d0f9d774596a15586","0x2596A8B90D39EB89d5668ca5B6deE54E9ae3d4C0",!1,!1,null,null],["polygon","tdl_fake_token","TDL",18,"TDL Fake Token","304502210095f25008fb79d533d7308956270b9043a31c9463cb336d27950505af25e12c4002205a736a26560f57c1fcf8e84c41a6750d0c1be5becb5acb8bc7d2f719453aac26","0xCD1F2F1a1d1ba631A06b957DB77BB9D7b13bF861",!1,!1,null,null],["polygon","tdlx","TDLX",18,"TDLx","3044022071181cb13a5d632196a095e8d583b20900e58508bc72f198df41b32d0b55e24f02206ece208bf9b01392de0647f7e5b93b46a207117b2d09bd4e4da500e56aa00ca3","0xA794221D92d77490Ff319e95dA1461bdF2bd3953",!1,!1,null,null],["polygon","telcoin","TEL",2,"Telcoin","3045022100df6734e8dc79763f3a2e3ccbbe547f9380f24a5d25ec0e7ef5e3357aa23e105b0220484abf1214cdc1bda02a17900fc9f3ae73ffbddbebb101f51ad5674c860d4aa2","0xdF7837DE1F2Fa4631D716CF2502f8b230F1dcc32",!1,!1,null,null],["polygon","tellor_tributes","TRB",18,"Tellor Tributes","304402207d9872134e96a0deebacd719b1a3d684a8a3282449d721ae0bcdfdf1a864f6e402200c07a0aa5e0d897fdc795ccc9794e5e288b8e22e30594b25f8afbacb053b4370","0xE3322702BEdaaEd36CdDAb233360B939775ae5f1",!1,!1,null,null],["polygon","tetu_reward_token","TETU",18,"TETU Reward Token","304402203771951ba9a11bd4af6b54d3df5babc09019a8f7c3719162ff0e18c07bc18202022065011e60e63e56b2982cccb5631be8f65c0780d5b3b7111277349c27c348de20","0x255707B70BF90aa112006E1b07B9AeA6De021424",!1,!1,null,null],["polygon","tgold","TXAU",18,"tGOLD","3045022100b35f587246286b46429004953b7650572a91187a9f488cb1a4751ae10cafbead02203344a21aea9b14f4444dfb992635fcb8d589323505af5810656dfa2f91f0b96f","0xA6da8C8999c094432c77E7d318951D34019AF24B",!1,!1,null,null],["polygon","the_employment_commons_work_token_(pos)","WORK",18,"The Employment Commons Work Token (PoS)","304402201557dd8f05ebb201ef1f2b3284679ccb03f075ed5719a99b02e986e10972765d022004747b6c09a0985568a1e1ea2e762f7bd588154b20e189f1208e776cf1e85eaf","0x6002410dDA2Fb88b4D0dc3c1D562F7761191eA80",!1,!1,null,null],["polygon","the_sporkdao_token_(pos)","SPORK",18,"The SporkDAO Token (PoS)","30450221008162e77c316e1bbb074154e7be8fe8878c5824dbb4620211d5a276beeb0cac9e022025bf307ef801f15ccaf6b970f36c7cc9fb8841635606930b05993101751f3c50","0x9CA6a77C8B38159fd2dA9Bd25bc3E259C33F5E39",!1,!1,null,null],["polygon","theta_token_(pos)","THETA",18,"Theta Token (PoS)","3043021f4639b4633adfc6abe3be6f10dbabd381bc2ca6855eacf7ca6e407889575f4f02203d9608c0beefb31108259088234f6c55d3933b0813d784cb583af7351a748c64","0xB46E0ae620EFd98516f49bb00263317096C114b2",!1,!1,null,null],["polygon","tidal_token","TIDAL",18,"Tidal Token","30440220347494aaf6a8f7b0bb0d7fc44955c6d9be79f3b969a5032a1a94eaadedf4fefe022052ffbf3c709f8ea5840f68e014edb071b234563d901965ee69a4db5a4f5b4b42","0xac311fA85E8645bB1DB53ECc04Fa8d41997FACF8",!1,!1,null,null],["polygon","titanium","TI",18,"Titanium","30450221009930b3f8cc47458cd1718a429ea3ee530a079eb866888305678e14017a26e83c0220058d96f50e2edf44756e2f487dec707d1a6135e45ab409dd864ee54b7d8e0221","0xd0ecD879dC1403697D341c9Db1db51075D2adC69",!1,!1,null,null],["polygon","tomorrow_crowdinvesting_2.0","TM20",0,"Tomorrow Crowdinvesting 2.0","3045022100b53f91f374c0ae4d7fdc13c9bf2cf7cb57f680228eab30cf8ff47e8a2560c31802205780f868ca878f2e20a34808bcfa1b04e5ec907cc75aa576267d0282796b02a1","0xf18724502bdB0E6B7154F841F9c3120912b02A5E",!1,!1,null,null],["polygon","torn_token","TORN",18,"TORN Token","30440220707fcc4100917670748fd1d0268837866914590842aae8ccda38a1c4f06f996c02206d66134328fecd3d9a19c560e102f5eb870030c87a2c65ae55a9b9a79665ee1e","0x23fE1Ee2f536427B7e8aC02FB037A7f867037Fe8",!1,!1,null,null],["polygon","tower","TOWER",18,"TOWER","304402203d6a93ae6c78d0f66012568cc1ee079476e05e0a6c427ed5ab579be7742453cf022060263b335da5e20093202a3b4c981e7e348ee480f8e15e9d9abde7e6b40902fd","0x2bC07124D8dAc638E290f401046Ad584546BC47b",!1,!1,null,null],["polygon","trueusd","TUSD",18,"TrueUSD","3045022100eef61cb3c069df526c50ffd331b25fdccff35a1e6485047b00617ad316e305cc0220235b4b5259c38256e11d6cf9710b4ec6ab02aad6509754a5e8cd63c7bab9a56f","0x2e1AD108fF1D8C782fcBbB89AAd783aC49586756",!1,!1,null,null],["polygon","tsilver","TXAG",18,"tSILVER","304402207b79e27e6656a5acb7610fc7708397c7c2d49cf0278a5d183c169539f18a5752022077be9cffd2eae5a5eabae76425dae931ebd6829d972765c3f6b07e37f3f7e57e","0x57fCbd6503C8BE3B1AbAD191Bc7799ef414A5b31",!1,!1,null,null],["polygon","tungsten","W",18,"Tungsten","30440220507f561c4a92337e6011f8f19d3aa09e8c0549f3d563cb7d00b69aa1193b9b65022078ed4c7620543989318402b81ae0e86bd95f58b2d2a6c0d5fc8317921a25fe9c","0x52fc543Bd23D1948F11eb265eAbDEfBbB0131572",!1,!1,null,null],["polygon","tutellus_token","TUT",18,"Tutellus token","304402202da0c1489b1afc891de883d083858ad8ce9c22f77cd2de0ab6d59bcf59b314be02204ced6b3cca6b2861adf03de0593ed48ddc25d155b70884e27c6df5b1afae2919","0x12a34A6759c871C4C1E8A0A42CFc97e4D7Aaf68d",!0,!0,null,null],["polygon","uma_voting_token_v1","UMA",18,"UMA Voting Token v1","304402204c7d36dceec2aec4512964e8ec79a69c64dc3b306f6bab57f7a8e4bff48e464a02200ab10dc46282b49981110c5c30e192dab11542e2a4987e3e40055058b176ff61","0x3066818837c5e6eD6601bd5a91B0762877A6B731",!1,!1,null,null],["polygon","unfederalreservetoken","ERSDL",18,"UnFederalReserveToken","3044022049b075aa93c410fbcc94ea0019774ed7cc28d4579653cb8a77529b30de2899ab0220535ce5daa886df77daef8638a29764de550515896a873de93a41198f13093370","0x5095cC6511B70e287bc525Aa57AfbC60EB73ac47",!1,!1,null,null],["polygon","unibright","UBT",8,"UniBright","3045022100ea250710f1e7f25a56fd4abac52ee893c8c09099ec56e7918c1146bb381b511d02205243299925580b29209f9de2d85dcb7a3d0b35358330cf55cf75434b8d5d8d3a","0x7FBc10850caE055B27039aF31bD258430e714c62",!1,!1,null,null],["polygon","unifund","IFUND",18,"UNIFUND","30450221009b57ca04ac3d25d14d1bae394ba30c0fa459154f7dfe702953db535d78c4287a0220440a23085a1004f725bac0d9e20d279ef854b14c27379bb71df1c02e47d7de64","0x4ba47B10EA8f544F8969BA61dF3E5bE67692a122",!1,!1,null,null],["polygon","unimex.network","UMX",18,"unimex.network","30450221009a031e72a2716c560623d166433722ea1ddc68739be51dfabc80d9b18dc604fc022076849337d463345ddabe847a931aa220ca6677e1d4170fd7491a90e960980282","0x5dF1a47e05b4caBa0ED3Df13662642f05314764D",!1,!1,null,null],["polygon","uniristoken_(pos)","UCO",18,"UnirisToken (PoS)","3045022100ac7931fe9057e3f8189962b11e4c05e195bc1565c4f9e702c5942f92179b5590022022b063abf2426f010f6d9d395260a389aae4da0b2856a241c1e071ffd7f246d8","0x3C720206bFaCB2d16fA3ac0ed87D2048Dbc401Fc",!1,!1,null,null],["polygon","uniswap_(pos)","UNI",18,"Uniswap (PoS)","304402206fd1ec530e75eadcd8adca249ec060cec1ee532d2a63c6617de8ec73cc62456502207d2e780bb93cca35ea810596b764cbe8fa72a593379ff4f48512687cc4611fd3","0xb33EaAd8d922B1083446DC23f610c2567fB5180f",!1,!1,null,null],["polygon","uniswap_v2","UNIWEWM",18,"Uniswap V2","3045022100ea8aadc21ac89ff39521db07d8e1d438f3085e7455ae2aff9565b5faf2cf573e022072493a0d257545f3cda3fe6d4922a01fef131a1ffd2eb1c5a760c5bb1b05b9ef","0xadbF1854e5883eB8aa7BAf50705338739e558E5b",!0,!0,null,null],["polygon","uniswap_v2_","UNIWEUSDC",18,"Uniswap V2","30450221008340415d778cff8a08d547eed2ff628523e59759d5ed14e19768f15f5bdad1fc02203283dad240ae0da57df3a62869af97b31833db7741f235a2ee2838e86192a4b1","0x853Ee4b2A13f8a742d64C8F088bE7bA2131f670d",!0,!0,null,null],["polygon","uniswap_v2__","UNIWMUSDC",18,"Uniswap V2","3045022100ead796edd11d1451ca745a495b92b00e193b5798d038e274c31c04de90059f0e02201bc8be5b7b1151ee55e1f0061d44285e075a2c408c1063e09c5f0935fae22829","0x6e7a5FAFcec6BB1e78bAE2A1F0B612012BF14827",!0,!0,null,null],["polygon","uniswap_v2___","UNIWMUSDT",18,"Uniswap V2","304402205c8d7db793ff7e0208eb885646b28bf4a0a8d94036dfcfc60749d03fe183492302200fe71aafae326ade9464ccaa6691a221177e06ecce1dfaa817888718b79b502b","0x604229c960e5CACF2aaEAc8Be68Ac07BA9dF81c3",!0,!0,null,null],["polygon","usd_coin_(pos)","USDC",6,"USD Coin (PoS)","304402200ef170e3f0a71b03ad7758e201d9861102f78cabcbbc5dbfecc5a946236438c7022043c591264f57cf3026f12f98e9b5112d2dd2e7b2d6c04206ace2475ed21e80f4","0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174",!1,!1,null,null],["polygon","usd_plus","USDPL",6,"USD Plus","3045022100dd03c274dc8eb3e9b66345ec00d6b7bb13dfaaf0c1c480810372b5a5b652187f0220396974879e8805834c1f061b4d59c164ef37828ede3ff36ac7000548748fa007","0x236eeC6359fb44CCe8f97E99387aa7F8cd5cdE1f",!1,!1,null,null],["polygon","usdk","USDK",18,"USDK","304402205613ac257b797ef31c6890956a12d192b89d03a7a2078898dafb0b79b0cb1b5c02202dfe6eff014166937d540742538335257dd9f5f9dce2491b7c05dbbbe92f4080","0xD07A7FAc2857901E4bEC0D89bBDAe764723AAB86",!1,!1,null,null],["polygon","vespertoken","VSP",18,"VesperToken","3044022046419ec25dab4fc07fe8a0936cea029dfc04ce9cc9955a7d1b16c5f6361a3b940220336259779ffbec502fe8a318101def15008d5077e8ed88a0af1ea8db15bee2a0","0x09C5a4BCA808bD1ba2b8E6B3aAF7442046B4ca5B",!1,!1,null,null],["polygon","vigorus","VIS",18,"Vigorus","304402200ca0d53d4f7d8c01fcd949130b112eac9070a2eb19641a2f1a6d81c49574d6420220647a7b7e9680002069fa2827951458493f3b3cdc22bdd50f228c85e937694700","0xcC1B9517460D8aE86fe576f614d091fCa65a28Fc",!1,!1,null,null],["polygon","vote_locked_pen","VLPEN",18,"Vote Locked PEN","30450221009e77b7e478732536c9ff12c2b08decefb61c799c22db91f35e2ce6e5ba6750d90220643b7451a229c41fc1e297ea148635fb76c7a7f37cd00c3a1df71125366a6084","0x55CA76E0341ccD35c2E3F34CbF767C6102aea70f",!1,!1,null,null],["polygon","voxel_token","VOXEL",18,"VOXEL Token","3045022100e9df989b25b7dab962f5fdfbce74cb79fd51a566fb656b82cdae730b2dac2a3602204854f994fb4dbd20dfe8346f047d971dc5ef19d8648e53b8f27cd908e6943d46","0xd0258a3fD00f38aa8090dfee343f10A9D4d30D3F",!1,!1,null,null],["polygon","voyager","VGX",8,"Voyager","304402207adb14a4402bd7f0e74ed94c4e0212785b145e671f2ae9b888ef6fa1e85cddd7022070f8f3ea98dd86ae7434cece3acf132dc6f0a34b4e51c439c03807e4abefc580","0x054c42b6414747F5263b4A86f21B1aFAD00326Bf",!1,!1,null,null],["polygon","waultswap_polygon","WEXPOLY",18,"WaultSwap Polygon","3045022100bc695093f7bc1f4a5eca39fb0ad45bb7d3421fb24c0b582456e7a3e6556cfeff02207aa4ef9f0b705bbc5ee20fc26a27d8292a21ddf5c3b1f679bbe224d54246397c","0x4c4BF319237D98a30A929A96112EfFa8DA3510EB",!1,!1,null,null],["polygon","wepower","WPR",18,"WePower","3045022100b2022385b9fb931b51eb9dc58b6acfd9329dc01fd876143fca05dd13f1a00072022033c14a9f00ce8b5ca8618f64bde930921e09af636208776f3a0520a247747508","0xCBAb27B2D5b468Eea509Bd430100922341BC3f1A",!1,!1,null,null],["polygon","wlitidao","WLD",18,"wLitiDAO","3045022100e04dab9178a365cc2ccb9fc499d37970312c4c70aaf5681f9e209bb8d0aff1130220621ba1bdc50c32c1566f59d7f7adc4da2a33cdc5b08f18a1925d380870d4b530","0xA936e1f747d14fC30d08272D065c8aeF4ab7f810",!1,!1,null,null],["polygon","wombat","WOMBAT",18,"Wombat","304402202cf53019db2c9200abb896740e22e399496db5cabe6c3c556e80fb74493b1e1e022060f249b525b27d455723bd3b4bdcab3e3db4d1226d557c86e195c4271990fbf2","0x0C9c7712C83B3C70e7c5E11100D33D9401BdF9dd",!0,!0,null,null],["polygon","woofy","WOOFY",12,"Woofy","3045022100a708d0d98a979ed4407844ee000dc827f2812baf88abb3b547f644c610a467ae022064c0c24a928ef14c212a73ebffb566150861a026ebb503a2886e331766fb1fa8","0xfce22AD802Bbc9FE74534575b166D06198bD66ea",!1,!1,null,null],["polygon","wootrade_network","WOO",18,"Wootrade Network","304402206fa91ec7507c0b90e8072900b0ec42a60496deefa710cb0a942178610021100f022040c899804634ebce099a9c8ffb3bd1e34a229e73a4190c0f320662fda1ee0994","0x1B815d120B3eF02039Ee11dC2d33DE7aA4a8C603",!1,!1,null,null],["polygon","wrapped_banano","WBAN",18,"Wrapped Banano","304402207ac98c1d4e909ada15c1d9a1e826131bf14ea63ef175da96acf59e4d6d8ca82d0220238dd41ec083d831ceda29b64201e46d80415186179757a4a47d86078c5e3c73","0xe20B9e246db5a0d21BF9209E4858Bc9A3ff7A034",!1,!1,null,null],["polygon","wrapped_celo","WCELO",18,"Wrapped Celo","304402204533f1d264f27aaf2bded35c70e342f9e093d3563e21a69581099694b76296630220224c28490a748c183cda281bada3a27958f561fdc33f71e998d62001a21f4e1f","0xc30DD0cCE2e683aA68c87C280e73beB3DEc9B3BA",!1,!1,null,null],["polygon","wrapped_ether","WETH",18,"Wrapped Ether","304402207b674dc939fc9958aef413f7e1b3d755ffbcc8240933d7b6d888e4adeae5c8a802206dd9b1c0c8291e28977497ac8139902446fbb770cd82f6aad7eb7c7b72d69b50","0x7ceB23fD6bC0adD59E62ac25578270cFf1b9f619",!1,!1,null,null],["polygon","wrapped_ether_(wormhole)","WETH",18,"Wrapped Ether (Wormhole)","30440220689315fd53e8a3273303bfb497b4e7c58d77fb351db7e7d9a56e875a3aa06a4c02204ca90fcabfbc030dbd5bb0043d0a85b2b8587183c868c527b8f407fb5ab3319c","0x11CD37bb86F65419713f30673A480EA33c826872",!0,!1,null,null],["polygon","wrapped_filecoin_(pos)","WFIL",18,"Wrapped Filecoin (PoS)","3044022078b0af0f86bc7b62ca450d4868649cf8df6973d3331a7ea244abec015abbbf5c02204a80853c3be77db55d88d647b8a1522defa0a0ea6a30482ca815453d180451d4","0xEde1B77C0Ccc45BFa949636757cd2cA7eF30137F",!1,!1,null,null],["polygon","wrapped_ixs_token","WIXS",18,"Wrapped Ixs Token","3044022010c5a4c283d33754c01d52b1efb06e45844dd575d1bb20ad164af0eb915d0f3a022060075f9a9a4c8c19339931a68114ff2dc85ee8057cbac439eb2e7803463a4c67","0x1BA17C639BdaeCd8DC4AAc37df062d17ee43a1b8",!1,!1,null,null],["polygon","wrapped_matic","WMATIC",18,"Wrapped Matic","304502210083ae7e7508bbe06a1b6c59543e62a3dcb2e825a6c39c1adc9ccd439253ac7f4d02201f60dcd93ad430b79b4b0b39571f5f15988233c04e5d2e45a4ecce1639fabf07","0x0d500B1d8E8eF31E21C99d1Db9A6444d3ADf1270",!1,!1,null,null],["polygon","wrapped_ust_token","UST",18,"Wrapped UST Token","304402204ad3702836823f826e934b945997b15c3238887767be33ef21f1aa5c9337c95d02206ed2ae004976c4d4ef8d6d62a785602f620490ad36b447d08de0aed9e46a4a02","0x692597b009d13C4049a947CAB2239b7d6517875F",!1,!1,null,null],["polygon","xen_crypto","MXEN",18,"XEN Crypto","304402201663b7a1d7581b270b482f902b548600557cf9637f0fb0dda4ca59340054431a022048ae2ea7a17f9836b3f590d9e5ba219bc48767f93e61aa7f21c868e127e043c2","0x2AB0e9e4eE70FFf1fB9D67031E44F6410170d00e",!1,!1,null,null],["polygon","xpndtoken","XPND",18,"XpndToken","304402206f9e2ac67daab794f470055d9e9579dafb29c482cfd41f9ef8402b6174b3376902201748bd4af860b9c48dc4dbafc8ce9faf689a19898aacaab1a219d6c2e679aba1","0x03f61137BFb86be07394f0FD07a33984020F96D8",!0,!0,null,null],["polygon","xtoken","XTK",18,"xToken","3045022100eb4c86fd40f2cb862f560b6f2c39a7e20cd7756ccee500e5a71105d7ebecfec002203f445753745434711b27ad0470b5f407933742a90a1abfc0a63d332606e91361","0x22308317A4aA9e8196065E0b3647e582d44c4d7b",!1,!1,null,null],["polygon","xy_oracle","XYO",18,"XY Oracle","30450221009c6c9847cbb09c138ed3b5af562c43d8a7e749cce38bfe69db795a409c74afc202202931be6a66a39f91e7e2854753e98cca122aac46995fa708778b10e2d5249dbf","0xd2507e7b5794179380673870d88B22F94da6abe0",!1,!1,null,null],["polygon","yop","YOP",8,"YOP","3045022100e0eb845c5687d6ff81a15dbd88b1e7389f98ba31bddd3e649714bffcf8c50d5e022079c623c5aa3f0ce51dceffef85c4cd38fed5425e528d320c3b75904f5c52294a","0x103308793661879166464cD0d0370Ac3b8A2A1cB",!1,!1,null,null],["polygon","zicoin","ZI",18,"Zicoin","30440220062a02e961495a7907542b0e41b88085ffccc83fbbe8797266000ad8e84036ef02201718ff0410df119e6d928c7cb651af7eb1ac824cc8ca7c93a50818241fa52329","0xc145718228438a045d76d11248fb779e4d23f942",!0,!0,null,null],["polygon","zombie_inu","ZINU",9,"Zombie Inu","3044022051405c6caaa098f0b005c6610d7edd5c44a429a11f6e30e8abc71fc2b13c516b0220621398bab8d97ddc2cd2d0a250c491ac9b74477623cd2242bee86731cd179543","0x21F9B5b2626603e3F40bfc13d01AfB8c431D382F",!1,!1,null,null],["polygon","zrx","ZRX",18,"ZRX","30440220214308fee0366583ad1a0b7d187d3ef60487cf052fab2961d58863aefe56f52c02206fdc734b775ed5197a1f97010370e05eee2c6486f1df04beba0adef0a2d64c39","0x5559Edb74751A0edE9DeA4DC23aeE72cCA6bE3D5",!1,!1,null,null]]});var KC=U((gW,qO)=>{qO.exports=[]});var qC=U((IW,zO)=>{zO.exports="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"});var zC=U((FW,jO)=>{jO.exports="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"});var jC=U((DW,_O)=>{_O.exports="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"});var _C=U((mW,$O)=>{$O.exports="AAAAaQUkQUFQTEHvwCU+5+pEQAq7X5B/2/3ryCvsAAAAEgAAAAEwRQIhAKHghZ4q2IYSGwxbs3RiLc7oO2sLJqVVJVm1ajKOTVCtAiAu/AnUagdwpAxqZQqe7AC6nYpnJ6NpOYpfjj8daYzMcQAAAGkGJEJBU0VEaKEY70UGMFHqxJx+ZHzlrOSKaKUAAAASAAAAATBEAiB+W+YoWRRlue5Fti1dBnvrmerSdIWHQ3GyEwNxN7YKlwIgUzmz1xPZkLXGFKmMILETl4rjb/cjJBg9NWc6QLcUk/wAAABoBCRESUUV9fXymoGb97S4C/VTUuHkJwfJTgAAABIAAAABMEUCIQDEb5d3ugtHzUFTFtZgFSipCOQvMf3VObY4qP/8qWkmPgIgHMKTde9Zq2VZiWisg6FoLg/8eyAPG3yJyxJ18V+TTSsAAABoBVBPT0xaaalRhe4qBFzcS80bHfEHEDleTiMAAAASAAAAATBEAiBMSiD0RAX1FKRM+GFJpLzmuyrDLZjQjtUJ/owkBFJB9wIgfiuU/8wGOpHrIx9jGdxhIp44n1FC3Lkue7MKB+d/7h8AAABpBSRST1BFnUeJT4vstouc80KNJWMRr/6LBosAAAASAAAAATBFAiEA8hg04OSbMUeUvdXfNMv3BDKZKgiQeLQTgsONuFzE4PUCIC53lxK8idA8n7WZBiOCj3sSdN8QwLFLLfEvhtmppUd0AAAAZwNERUzsZDK5Dn/U2fhyzFx4HwW2F9uGHgAAABIAAAABMEUCIQDp6Ykooo5rhlD/kaVWnLmPR3wEkWJENnEXgztNj74a5QIgeNeUUTLhU4u2p2q1RTGoglbr3r26HRvzTFOjzVQSNYYAAABnBFBBWVhipWpKLvTTVdNNEPv4N+dHUE041AAAAAIAAAABMEQCIAgkXA+4Qjc3qHZ73MDfQc/zf9ZQ+lPcMb0IfySI5v1GAiBBTyeDPgWC7w7rc9zQY2BYvAVmKXekKXVqLv4ZqE8pKgAAAGYDUktOblpD2xCwRwE4WjSvtnDkBLx+pZcAAAAMAAAAATBEAiBYxgGbSYMLvWHNQdITaHxqS7I+XzZQwBQoWBrsV3sDkwIgL4CSScio6wQuP5q4OkPK5RgsjfvNsAxidc2+1gQNM9QAAABmA1pDTrnvdwtqXhLkWYPF2AVFJYqjjzt4AAAACgAAAAEwRAIgWXcG8FH83w3k6uNlQtEOrQ/qv+BC44F31dMZ+Dl0V0sCICtoia5heX2KdOKo0fqgPXIONM1op42i2QjgsLoibGFEAAAAZgNaUljkHSSJVx0yIYkkba+l694fRpn0mAAAABIAAAABMEQCIAroY0widiqLpB0qyx4GjczpRzN8bdmE8TuCDTlhdpUjAiAzBqSdimw1sRphCI4VcLOSjKOg22vTb1d7Xvh2KFYf9wAAAGkFMHhCVEO27XZExpQW1ntSLiC8KUqam0BbMQAAAAgAAAABMEUCIQDZSSILUcwrmLzvsBuavU6b9oS9ReIiype4ZfSNys8/UwIgWymErBwsNc7GJ83qSoi6NrMPfAksPFlzjATC6/dlOLwAAABmA1pYQ4Pivo0RT5ZhIhOEs6UNJLlqVlP1AAAAEgAAAAEwRAIgEcMy91bfmgGYSEmB4L+jEgojKuN4fb8/WsuzKbR+5bQCIExA2p4RGYEaIufLRa4Jd1MlpX/WpQb/FS6PJwZHIOBQAAAAZwQweE1SA13xLg86xmcRJlJfEBXkfXnf7d8AAAASAAAAATBEAiBUTs840pBncERvUlV/LdQraqJ0vJYMgIxNzuQsROhBIgIgb6tnaevhX7+3JFsBVtF+QyoazZkg8ey/JXKfjYWUr2wAAABnAzFVUMhoFySWNKwgm8c/yhcSu9deN0B9AAAAEgAAAAEwRQIhAM1Kkq2HnTivUNRAYS/RzHrgWZFZK9lwgB6AtGiVSHqGAiArwRfKsQQ7OYblJyioUtQgdZ8id4HvW5usBXmnppkLEwAAAGkFMTBTRVR/9Baaa1EitmTFHJVyfYd1DsB8hAAAABIAAAABMEUCIQDAC7qpXhQg+056ga9RaQ6nyOMAwUA7yA1MPGIFgg+WXAIgNp4MKLALQK2Gz//cr3iKDg4suugj3xDpO6c7fdLhtO8AAABmA1hHRwaxeeKS8ICHGCW+1dciFi/Za0yVAAAAEgAAAAEwRAIgeGVHgtiVfgDRw0kktJbrChPwhzq3mQNu0YGHk+CbD5cCIDBxAeRWy98nRipwDP2IFrUTQOru7xzXrThZnzoybTwMAAAAZwRUU0hQUleURz96tXFcgdBtEPUtEcwFKAQAAAASAAAAATBEAiBiFT4zD+BER44lhR40HPAk3L7SqdiEEhzslIsc+crsNgIgOGUSw2Hcc8uRzPoE5I3DtwsXFI+kqM/+tpiQ3ieaZFcAAABoBVdSSEwxT7we2iDNjR85/KQfZGwxe84OE68AAAASAAAAATBEAiByb/n0HUssIFEcuREJMw/NtPXGMMA9Uv7D72jGQqiDewIgKXeIma5XLt6/AJXVGxAAUfas/OQ+1hGfGynBrLFgzxEAAABmAldUrcK6fWnbvy2j+pmDIdvT7cG2DPUAAAAAAAAAATBFAiEA+f0QceDveAAIxQwjhdBGoWepFQoT05wdsI3b95NiIBMCIBFF1LNQYyM4DR0FhpQTo1u1VWHQX1h3gvS4cdlnjLwrAAAAaAUxSU5DSBERERERF9wKp4t3D6anOANBIMMCAAAAEgAAAAEwRAIgRiPl8TdcVKRGFXropzkgQoTPBTY0t6vQg9xfXSZ1xOcCIG/5S0yEup6T9EBlw418klBmIfppugT3Z6pYIh3or78XAAAAagZ2MUlOQ0gD0bGlZwj6KYGY3V4jZRopt2oW0gAAABIAAAABMEUCIQDrM0BXyMYoknxv7ytO+2xbY7EqsdlXHnfPxnpDvgHlnQIgPVcmqUUGENw6ucFez7icjSwi1lVqb0L89ysxUq3JNoYAAABmA0ZTVDEMk9/BxeNM31FngQP2PEF2IInNAAAABgAAAAEwRAIgLiwXiHKRgqaA2fHKX8wAp90XYVVwHprEBV+Atx5L+loCIGy80WNHlid/hSzaNicSWdLYnBP2DhVAKx9OaKbL2OOBAAAAZgMxTVTwvBrk73/7EmqDR9Bqxvit13DhzgAAAAcAAAABMEQCIFa0DozKfjQLl3ltpiFoRHb9KNWsURZLn7YHQ4mvb5FnAiBkQjwo2pdeWCqL++BLOSnWQHs2/ZCfBfD2VSK86wL8OQAAAGgEMU1JTKTvSwsjwfyB0/ns+TUQ5k9YpKAWAAAAEgAAAAEwRQIhAOC1EIaZQlXA1xi3Lq+Gc1Dv4jOBVhLJpUvl6drxvom2AiApzc77fW3AiTqQrNW+rVgzHvqOhlqYZONCinTBNzcBNwAAAGcDMVNHD3JxSzWjZihd+FiGou4XRgEpKhcAAAASAAAAATBFAiEAxe+sAi/MF7js9B6LOiQ4kfoz9pVF86uv9LzzKiOvaQYCIFmbP2rFN7pQ81etOY3PYfPoyIVc7SG9+VP+UXuevrOWAAAAaAVULUFCMWFh8Bw+gzwZJQSEBYLpNcFjLRudAAAABQAAAAEwRAIgNbfb3iMgKGs/r9H5YftYjXSOJAUmSV0Benpcef0N4n8CICpDMSm3vwqWAvdUBqhbGrdL0P80fwhOo7ikIt0qMJsZAAAAZgMxV0/9vBrcJvD4+GBqXWO306PNIcIrIwAAAAgAAAABMEQCIBvK3jRJAMX9G0/LInMeaiO/AZM6MTJ6uswabJ/jgME/AiAEvw84OA/ESMgBSQx2rCZqizVsWe9/2XJ2ie85XiuPtgAAAGYDMjJ4AHPl5S4rT+IY112ZTuKzyC+ch+oAAAAIAAAAATBEAiBmrYYpvOQ7Wq0yxgpab/lPzfA6p75odd9mVuZVUhPZngIgacpf+Ii6oZtIg7Nj4kn9IvNamnwTztUcagv22fTS73UAAABpBjJCQVNFRBaOOflqZTzgpFZWBockGwspNuX/AAAACQAAAAEwRAIgLaePM8QdR7tYaLAk8QGiaJpsJ3JqizaBZP6KtUBWm50CIH+4La0yY3tkzSDjWcTm24d6T4x+2YgzpUadXs3yJ7Q0AAAAaAQyQ1JaLJwZzjsVrnfG2ArsPBGUz9b38/oAAAASAAAAATBFAiEA5NN5oyP7sW+nZrsW5pUlEBmokz3/tTwpwkBlaaxzh7cCIFawxXIbzL/5etbx4sHwcczT0AuB11oEBX7/y+3Q9VagAAAAZgMyR1TJbBYJoaRczGZ7K3+mUI4pYX97aQAAABIAAAABMEQCIEEWytQ36rUHjAjgjw/yza4SPnDbrwoSJiszBCREhnM5AiBxZXCGBRV5LkCbdHVxe577MUkECnTi5ONYmBbU9gpuuQAAAGYDMzAwrsmKcIgQQUh4w7zfRqrTHe1KRVcAAAASAAAAATBEAiAjPr+y7GpRwrvnmAjVM9jnPtjSbaxqAZxn4hUzPuTxrwIgSqaK7WasmXmxCe0G+BCse3inQgfvZg6zBhLURQisLG8AAABmA0ZJVDxy/KhSNob9nldAsIJvpLs3bgJBAAAAEgAAAAEwRAIgXvSY0YRVlKLarxZIWdGjZwQAVrTbwRjcf61CkZ14ZpwCIAaQtDkIIQ0883CfuMJ5YM4QtYFnapyFeLSM8Z5fOCmjAAAAagdYTE1CVUxMOkOgTYD5iB2ICAv5+ou3IK+2yWYAAAASAAAAATBEAiAC6fBEK/pMeIVpIDcJi1Qwh/DmEKa6BhFeOGqQxa+/1QIgFx4i2BGH0IndU1abaT2HpbivZTd9wEYUpaoffROTr4IAAABrCFhBVVRCVUxMySh2I4MmaEMgmc7y/97zztFPQxUAAAASAAAAATBEAiAM+fLlW/Kr4vToMI7VIySN8QEO/ChJ+F00RyD21QBIfAIgZJt2sq6Ba87xfQCQWk08h9BNjKDccV2C7JtX3ehOifUAAABqB1pFQ0JVTEzUN9iBU9rvR4TKzSCEsdjMLTMSuAAAABIAAAABMEQCIFnQpeobF6clGiHHhHJQe0b3xGmJUV0vwCAgdnMj2EKHAiA/kisx+VxeeDUQ5oRaVKxfKGzacIw2xlAKyTbiMXztCwAAAGoHWExNQkVBUpYO/WOuiV8WXYdObMYlAf0OfcUKAAAAEgAAAAEwRAIgKvWwho0xpmzg/pOdx7D897IW6ld54og5Ml793NR24xMCIAkVPEWtCc9JtS8g467qYMY4CMIE6oW0NsHLmA/Z1WHgAAAAbAhYQVVUQkVBUjHL8gXia6Yylv29JUprG+PtKM5HAAAAEgAAAAEwRQIhAIP/rXkUDmScPmIsIFrew4XS8G6sqQW1jU/EXY6mJSAuAiAURe89RVdPYZiw1hWWsWYVIX7nm7R9CXfXepvKXeHjQgAAAGoHWkVDQkVBUnioyEtMI1Y75FGOcEUBbTFwEwgjAAAAEgAAAAEwRAIgdLz3PVYkJUPCT1EA53Y3KlHu8/STVAEs19LXXrl7R5gCIEQaDvIthuhRV39T0jVmPLp+oPpS8QDOiD10aQu/UjPBAAAAawc0MjBET0dFDmhbeCedWBCeH2tCjKs/o3rqgoUAAAASAAAAATBFAiEArz0NezQbkU4+g4yHrNDht1dZYGnbP784JwgU2DBROZ4CIC87maciq3oXY5/5Mbxt1MP7xyD0WKI31RgZzBQUbqOBAAAAZwQ0QXJ0/0S1cZ8Ld6mVFjb8XmnTofyefXMAAAASAAAAATBEAiB8d+cxNx1X8OL2QFRJW1ARx6vMMbfWCVIP5q8jEowb0gIgPTVUCL8miM3tGly6ddzAqtbGECMLqxLv2cXdZbb0LUAAAABpBTRBcnRfCUQ5Orz8mHnO3BngcMBW9wcD+bgAAAASAAAAATBFAiEAoN59r6rELxOaLtT09oq9ZDtMHMvjQu7hgPMTe6cA/qwCIBGEL5aD66CqA3gObptXImIn/EbLvDKbLvvLAMSp7oOgAAAAaQVLV0FUVCQbpnJXSnijpgTN0KlEKac6hKMkAAAAEgAAAAEwRQIhAL4eNwizGjCAZNFwyCh1UR8xBHNvF9f7tuapsTaXzr7LAiBz16Q01VRfF2L9IrGlaGWmpFoQts/qfENfLnmmNI/TmAAAAGgEWjUwMizZMkuhO3dVRZLUU+Y2QIb7ukRqAAAAAAAAAAEwRQIhAODhm5tM45VPY/OT3k95DC0ie6IVkrJs6pxFATseIvsBAiBu7/VjKGbI7HFQenHrigY+OeEndEf45d2DBXAI664MlwAAAGcENTIwVGLXWioQ91UQS9ECTZlxQc55PPWFAAAAEgAAAAEwRAIgcJrFUpF7OOfy3eDOgRfoCkJYwyzxZ+zx9ov1kBD/MaQCIClR0Sc2myw0ZpeN4fcwk8JPyUAaWrhRZsn2NrMchXwpAAAAZgM2OUMC/daGYzPYzYscoCLTgggGmAYLwgAAABIAAAABMEQCIDFqnyLdp2LNSS6/A7IwgvBj1WJg7551IsT4xqVNuYLsAiAClGCn4PwdedxfwTuxRHZ5/PaZGC47hFxnTLvIHpVKggAAAGkGTUlOVVRFzaFvYqjTEn6grr+ssiHBzEG45IgAAAASAAAAATBEAiAEQYnyLJCtNVkIygsmu9ArHuQZ2HP5U1q0ZnxehmFoWgIgSKAub77bNyvQfGq3A6YIH1H+sI5KtlS2guzicr3kxP8AAABlAjdFGGoz1NvNcACGomGI3LdOab5GNmUAAAAIAAAAATBEAiB3bU8UNlF44XUxYX0RwEcjGA03Ssez9zxEFOBFNwpqBgIgfticEq22XfSBjSoCqhRMJU5fLUGuDsacApMgrBDkkTMAAABmA1NWN2dqMrUOWJJO/600Px1NPI3QEoiJAAAAEgAAAAEwRAIgX1AYAn9Zipp7bBaMp2AtTlmdvQJMvqicmuzt7xlgB90CIChCrNwLvKQfmATu7KkcTBTFTNAYaN74VXHlui4WxQ/eAAAAaQU4MDhUQVtTXt+nXXy3BgRNoBcSBOHEjQDoAAAAEgAAAAEwRQIhALW5b1irwpuyjhDzYFAjaM5QopMqtxn3gTYoYV9IymM/AiBF1PJAIb7pRBnKzvkZfnGe7Xw3RD6sjbey0WG4wMVQcgAAAGYDTVBIiIiAGvTZgGguR/GpA25YlHnoNcUAAAASAAAAATBEAiAUTal/8w48ZHb18uJTOVjwtwPWo9DkOXBfIcI8eFQcQwIgNbBfIggP50MDD2AI6PNdD0koPQ/byy9PrQlalq46dKkAAABoBDhQQVn+6gvdPQfrb+MFk4h4wMrb+haQQgAAABIAAAABMEUCIQC+8bUntgiSLGvwvaKrMsrBq6TcZ3k8g7ipK75qZlcIfQIgWD28rAEPuG5p6WF3YcRgCwRIzqhBOPT8A9RqDvtVKsEAAABnA0VYRUEtOX3coH11Pj4MYeNn+xtHSz59AAAAEgAAAAEwRQIhAIMjaFP8VeuS2SWvyjiZB3KSbDQeV+47DT33zG6nBXtsAiAPAqi4czmWndkJhRpzQaB/ZihqPnWpn8uvzuHYRCfozAAAAGsIOTBEc3RFVEgTcYnRNCqr5811tCsmXkZHWWqqAQAAABIAAAABMEQCIBczy6U+sYQWy2L3EBr+mMJffDKDys8s4RSrp2R59SKyAiB9k92u6bs1z536omxE2GXOdMlp8e5oQnirpZND2/bOjwAAAGcDU1RaP1KU32j4cSQcSxj89469isGKtlQAAAASAAAAATBFAiEAtg1z0QY/R2iEqdsevUVs9oHtpJNV4KPncaXCz1sBGmcCIEjPaZBPe07LC/q+83YQIIEwaLsBo5PCz3euR0iXyKDFAAAAZwNGQ1Thutki+EsZiggpL7YAMZMArjJHGwAAABIAAAABMEUCIQD4sm2pEyRyvUZ3HNcvpf5tvoPgrq+kXPY9jwZVopbqJwIgT6sEVN8BkCP9nMfFQAkFid2638/g9xRrhdDq2gBM2tAAAABmA0lOSoS///1wLZJMbZsl+HFRvw+xqJE+AAAAEgAAAAEwRAIgeHmjPpLngksm+yfrOTR++mbc4RzQZzBeNzkm/SbC154CIGn/vObgP7caKO2uWadEy9Z72S5wYUBog9eFjT6HrD6kAAAAZgNBVESAUjJ/G6+UqdyLJrkQDyEe43dPVAAAABIAAAABMEQCIFPxl7py9yXusxI3rJDE7TWHYym9FOQ6EOr13k3RSlRZAiB02A1its6jb7XC7bS+irba9paOPPMF+d8o0fHT/BQFCAAAAGYDQ0FX87lWn4Kxiu+JDeJjuEGJvTPr5FIAAAASAAAAATBEAiBWe++e3408R5T/wZPmpKWe7qBrvaiXeyjU0UIlDP3nKAIgZyNhBvqj0Bt38TRHcTfj5fgqnsb2xjBA422NJQUHND8AAABnBEFBVkV/xmUAyEp2rX6ck0N7/FrDPi3a6QAAABIAAAABMEQCIEJF+2P3SFZvlKjtqznjPtJ9JHzivsr3f1uZSyUoDUabAiAu2ydRpHQC3xnT4/N8wtoQBFaYl392+K7OSZVyM/9X9AAAAGgETEVORID7eEt+1mcw6LHb2YIK/SmTGqsDAAAAEgAAAAEwRQIhAIkjce9jGdm9KcMl7ZA7cuDRGSExSCO3y+UX5jumEM0oAiAGS+cnCXtQzy6hTdNtQtPv8eCoNO0uJ2nqqo/CW7zocAAAAGsIQUJBTFdFVEjRCbKjBFh1achDCMVUZc2f8DF7+wAAABIAAAABMEQCIEm/M3Z++cqggMnME7humb0S5j2asgTMpS1GVtJXtkXzAiAOJ+k54M7RN3lHqN/Yavg3zi8YqUhyFTVnhghASLF+RwAAAG0JQVdCVENXRVRINYvQ2YDgMeI+upqnk5JoV3A3g70AAAASAAAAATBFAiEAi1jSIM5qnUhsNUjIaTIGvaj+pn8Egl1cJ8B+qemOw6QCIE8mI/lQIXcvT7RR7M2zxZjXGSl+nlQDoNvIIig3A7f8AAAAawdhQW1tREFJeb51/8ZN1Y5meH5OrkcMih/Qi6QAAAASAAAAATBFAiEApeGt768KYJOo1NELs0+sPgYOAAyjyfzig6jI7GCD90ACIF21B611TRGbildP+kjYxVADWo7nP2wazZRQWHAufRcoAAAAbQlBQUFWRVdFVEjlnS/2mVqSaldDkIJKZX7tNoAeVQAAABIAAAABMEUCIQClfjmZ+Dbxv20AjdgQyQPPUPBJuA7DkdgCP8kkbJDVVwIgfHSUeDLRSVXHJ6YHeNKh7pZnvx8X+8gyJ9RcjsPXPX0AAABrCEFCQVRXRVRIobDt9EYMxNi/qhjthxv/FeW1frQAAAASAAAAATBEAiB4goPa36Ky1uXt7nEL7RACflRcYkBmevsOFEM22/5KtQIgfvP8jyLn1DyLCXvwHrhX89eif2ET/yNCAhxXw+jENuQAAABrCEFDUlZXRVRIDqIOf/sAbUz+hN8vctjHvYkkfbAAAAASAAAAATBEAiBw0HigTyEYfiaYrE6jJ51gRFkSwrsfA28XBZSW1TS5RwIgU7+y/Kw/2y/OjoJqmii4HwtKva1C+BT2KnE1w4znqnAAAABsCEFEQUlVU0RD40CyX+MrEBFha7jsSVpNUD4yIXcAAAASAAAAATBFAiEAhpCWk54e8Rtr46CMYLfg/wTkdC3zahTiohC6SfC6RGsCIAOZ+hq5yLV46uhoEnfpoRNroQ6LmxIOC7WkqU9+KqquAAAAawhBREFJV0VUSJMD6ryGCnQ6q8w6FikBTKvMP402AAAAEgAAAAEwRAIgZxAErkSVhRtqRnuftT899HvZ7e3SqDmlbCAxdm7azowCID6leD++G1EDw3nLrPFJBRLOKKd+gplZW+wyD/EQyE40AAAAbQlBTElOS1dFVEi424G4TTDiOH3g/zMEIKSqpmiBNAAAABIAAAABMEUCIQCNwQbgEPey8kkfMZPahFUaj3OLMokFdBNEC1FMeNfXWwIgO/31QL0+tx0WHE92ANIW/aXkplThSMLUWr0erS8vBKEAAABrCEFNS1JXRVRINwrccfZ/WBFY3Fb1Od9fOZEo3fkAAAASAAAAATBEAiBIb7dgIqOy8tJO+wFOp5OM2Zperfphv79m/yOXyFcyLwIgUoZmaRM3dkvQr2z0gmrQuicR+umTO70WA+DD6Vh5grUAAABrCEFSRU5XRVRIqeIBpOJp1s1enw/Ly3hSDPgVh4sAAAASAAAAATBEAiAjxt+zQk7OEHVd00jm2RGXHLYr4N/295k7Fd1iHItDygIgb6cNoskP5NGo852Z/p//EW+c1lfRqkqwKQv+VVAYy/QAAABrCEFTTlhXRVRIOOSRpxKRzUPo3mO3JT5IJiIYSJQAAAASAAAAATBEAiA2Tkceh+/DPyutLu9xTb5Q4MlC0HySO7eAGQYxYX0KegIgRFvkBXXxEOAxORgMOzCGkSLk9rUz/WWsi9QzCgQJH6kAAABrCEFVTklXRVRIPSbc2ED8yOSyGTrOigkuSmWDL58AAAASAAAAATBEAiAql08Nfoazlc8b0N5+YSUxAgIwrRHNfvLQzSYcKTJkuAIgSFfIAwjpAxBQEKjYHhwwvbXe17BQ/DKrD7zXjvkHE5QAAABsCUFVU0RDV0VUSDkehuLAAscN7hVerOuI96PDj1l2AAAAEgAAAAEwRAIgCpwKieU0JQJ+0ZuRNU7nR14HPU6npLCIvGJ0zQy7RcUCIEXk5Pwiqt7PoAxvknqMNe26tBWkKawA84HyvRC+fBjHAAAAbAlBV0JUQ1VTREMjZaSJDtiWXlZLfi0nw4umf+xMbwAAABIAAAABMEQCIFlFa5qURbQPorVmVMj/zR237wqBKiif5ZkLZzBKsWXpAiB605WTGzYhcX59OgbCM15RWpgwsGdnSy1lOxBPaZtMyQAAAG0JQVdCVENXRVRIxY9TqK3/L7TrFu1WY1dyB14u4SMAAAASAAAAATBFAiEAvlrBp2XUt/TbAsPvf9BW4nU+3G6hZ0lPtrhGyJzTYZMCIDr7g9c5GjssuRvcJPSUp3tvr0KCLCupTG4kWVXejnKCAAAAbAhBWUZJV0VUSFOUeUvotu1VcvzWsnED9GtfOQ6PAAAAEgAAAAEwRQIhANnfNt4EYPkcg/VriNZtKR3Rtm5Pr9SdpGb5GGmiW+IsAiB4GuATfOzfOqD1OyvrEMsGKEGJkFIHKAZ5PssrVjJ1CwAAAGwIYUFtbVVTREPSSUYUeCneqpNb4q2FoykdvxCcgAAAAAYAAAABMEUCIQDnmAi4bW+v9g9LyHPva1p9URbYHSqezlbThmLrNqK3ZAIgBiZI4+gQS+PY9Xcbwm/miGyznUpVnO1iKV5sb2S5T5EAAABrCGFBbW1VU0RUF6eXkv5v5cld/pX+P87jyvT+TLcAAAAGAAAAATBEAiB6dI6S9upbFocuwzuxslqdVY5Jux3tmfTLlWY3BR4P7wIgEe/uBXdjugUchLU5ubX9CEZe8lmdlWfcmXAAGnYVkBYAAABsCGFBbW1XQlRDE7L2ko1yBDKLDo5LzQN5qgbqIfoAAAAIAAAAATBFAiEAu0pSsuFeUqQoJXms0pmBQbiGULHNItdeyIDUHNTlsh8CIBH0Y73AZie+GF9G6/UCM4YuUJHHYVcApou0/NsJnHZXAAAAawhhQW1tV0VUSPn7StkYErcEuog7EdK1duiQpnMKAAAAEgAAAAEwRAIgLSZrTCr/gFTY2bOUO06tX6SB6hvQ6l7MJG6Ght+ZNBkCICqjRHMRWcp0usFaidGVSxhrugUP6tX5mX5+k2Du8D5FAAAAZwRBQlBUQaCGSMN2b5+dhVmP8QKgj074T4QAAAASAAAAATBEAiBBJyTRybB1jUcAR20CeyGRxe6sB8CQQiWbyWm8saxBDQIgMrD4YLwwELDyhobGLYKxIAoFpWNBnbg1VeIVlFDiE+oAAABpBWFBQVZFuj2Wh89Q/iU80uHP7t4dZ4c0TtUAAAASAAAAATBFAiEA4sgmvZKFXZwzKeUlvKe8Skmfwn9Z/tDvJTRY2G+gCX4CIE4W4Coa/wKyZhziCAdKrJC0Y1X4N1liVEeG6UupPTryAAAAaAVhQUFWRf/JfXLhPgEJZQLLjrUt7lb3Ta17AAAAEgAAAAEwRAIgW/SmDPV5ikrJCHEdPkCCK9yolDbrfvb88CCsFXkz9rECIGk332MkWVnb94pAsnTdg2U3q3iTnfWVTSeRgwuHZnxkAAAAaARhQkFMJy+Xt6VqOHrpQjULvH31cA+KRXYAAAASAAAAATBFAiEAnhA9Mwfco497pZqrgoFCAB45tqPQxgjNujs9OvFgOvsCIGGxjAPZVPERlMXeQXgJmxTXTQvGzjR+HCyTr1cAsyhHAAAAaARhQkFU4boPtEzLDRG4D5L0+O2Uyj/1HQAAAAASAAAAATBFAiEA7G2gsyCPICUBLM8DbXNq4WJeZ6Nqmbijb1MrwwxqoVwCIGWFpVDckiG19WXUKaOwvcGB4crMlfxgyZTO5RKQKP4FAAAAZwRhQkFUBeyTwDZbquq/eu/7CXLqfs3TnPEAAAASAAAAATBEAiAUnYV23k2bOVv4jQa3vIyu/Ke7Vuy5p7bR5XB9svZNFAIgZZXF3nwZ5r5uFpJpw0wJDbuICT/iYTsD8kLOilMT4S8AAABoBWFCVVNEbuD3u1ClSrUlPaBmew3C7lJsMKgAAAASAAAAATBEAiAu8uocW+xWPGMMnOPFAANj4arjf5SO8Phb2qyoBpL7fQIgBGwfVz1z5c4cWX1qQxK6xiZvBWMFf4UJq6Bq2AqBd3cAAABoBWFCVVNEo2FxgybBVxVZHCmUJ8YghvaZI9kAAAASAAAAATBEAiBJa309b0W7U8z4lzjUu+4adAZisbRIIjkLgX4KaOepMgIgDzLSMfY8DsEJP9ipV7AiAfk+7nY11Y/pjymphVZ7aqUAAABoBGFDUlaNrmywRojGLZOe2baNMrxi5JlwsQAAABIAAAABMEUCIQDn5P6sU2+TZyHNJYZTvOwjXNg+IH1CNbdhfgzBz2beLAIgLf4Wcdd8+BYpr5DKt+BeC4FRvYXEyUF1WGOxvHqEWlIAAABnBGFEQUn8HmkPYe/ZYSlLPhzjMT+9iqT4XQAAABIAAAABMEQCIA+zQ8Ytl48CpxMWpNSEWnLlxsh0/X/lUK2nm6CIJenRAiAY4vFDM9BKpX0NTuxEq5bGHi//xzk3w9U4QGpDep3PNwAAAGcEYURBSQKBcbyndECJe4JMpx0cVsrFW2ijAAAAEgAAAAEwRAIgeSPNtLmrpDS9QyaUJRV6JlD4ci9laOzYXeQCWDJXpCwCIA+5Fp7pgfCpULDQVIuwDlIBBkIRnLJvMpWx2faY5nb/AAAAaARhRU5KcS21TaqDa1PvHsu5xro7nvsHP0AAAAASAAAAATBFAiEArm0wi8eIrA4Mdf6yys7nxJ58rNJmnqa0tRCBmAB1p6oCIHOZammgyZRen2QVj1jpuBw1ckjCnvJwnv162QcACyzXAAAAaARhRU5KrG3yalkPCNzJXVpHBa6Ku8iFCe8AAAASAAAAATBFAiEAzDnI8XlVWrKc99dE9wDCKhFvmW4cA5q4s/bOgQQ9Ov8CIAgUKBNPNaYl1iH9Br2x8BiYOgMFwFnTcSx36Y7OKCwzAAAAaARhRVRIOjplqrDdKhfj8ZR7oWE4zTfQjAQAAAASAAAAATBFAiEA/ER/qPFPuU6hGu6lLHSJmWSa4rnXFGlMi5F9hKUhnv4CIAOoXpneDiZCEDkHHdnVf564qpq+T6M6WZVqoODqU+b9AAAAaAVhR1VTRNN+5+T0UsZjjJZTbmgJDejLzbWDAAAAAgAAAAEwRAIgbcIvnVBIok2Z0l/0/UviMTx9ZlS6GWJz4Ykxvsy+KUoCIGU+1Y+MYde6B9JGi+T828CYmZfo404U0gf4RYi6k/WcAAAAaARhS05DnZG+RMBtNzqKIm4fOxRpVgg4A+sAAAASAAAAATBFAiEAh5+LsoJ2g4LblpczlKhV//hMwChpDQTacAyes3m18IsCIHrZ20mE987FmbP6s/BM6ngO7mN2Yy0jKGPYSq2ljtFvAAAAaARhS05DOcaz5C1qZ519d2d4/ogLyUh8LtoAAAASAAAAATBFAiEAxTlOZOddyajQOP5owo3aN9XtBVa3goIvMWFi9BemHTICIETfk43IEjmXEg4VR7k1q4how8t0lrpPsB/VP4ZQLFUlAAAAaAVhTEVORH0tNojfRc58VS4Zwn4AdnPakgS4AAAAEgAAAAEwRAIgOylvOl9xb+CFe16NcbxQMNSoJkPJJ8aHzRUmRnHkoFUCIACwrkCimxCoIcFjF8RbGexqA4DdoQcMdsek2JV8IFuoAAAAaAVhTElOS6ZL1scMuQUfapuh8WP9wH4N+1+EAAAAEgAAAAEwRAIgSAkwKBFvrWggyg1XcOjiZxrb5FiPtXQLOoN6hv4WjvsCIBkdjwREZmLSoRzpoPOcuXsMK2n0NJAY/Tbbz9LrbBdsAAAAaQVhTElOS6BrwltYBdX42ChH0ZHLSvWj6HPgAAAAEgAAAAEwRQIhALxm7Oa89Ueqpw15zC++lZvsWD+1M3jqI1aAFKuYwd55AiAh+xhFblB3+QjpnwJk6BZDkeWPJ7+3sj0jzTughvvTxQAAAGkFYU1BTkFvzkpAG2uArOUrqu/kQhvRiOdvbwAAABIAAAABMEUCIQCJTTytye5lizdCAwVoMa1pl/lD71gWoQ3v8lNJewSHdwIgTqMZM0UnCrQvf/lBs37yd/Sa+Wa74w+FPXmzQHZAy+wAAABpBWFNQU5BpoWmEXG7MNQHKzOMgMt7LIZchz4AAAASAAAAATBFAiEAsjeS4CRvTNMuB5u5TZwPKSDAWtS4S9XFqpR5HcFquMcCIGxW6w+ZT42nsbxNKqwbuNjGzoWAjpTIbyvuFa9TM/+sAAAAZwRhTUtSfetegwvin5HimLpf8TVrt/gUaZgAAAASAAAAATBEAiAmwYTIEu8MjWMi0shG1uM9cLegrmcpUpKBRbeHLV8qpQIgVuiL66QJSV9t9iR7LjZ+EAai52ynmRiJCD4OB8qWqFgAAABnBGFNS1LHE+XhSdXQcV3NHBVqAgl25+VriAAAABIAAAABMEQCIDLGQHDnEHB/0/gEufzPlKfvHGD3Cj9WMiWi6pVFBgfeAiAooJ6dqaiZE28dCXyEs5ti+DfNyy6/G7dW95J/qk7iEQAAAGgEYVJBScm8SMchVO8+VCVkGjx0ckIRKkavAAAAEgAAAAEwRQIhALTsM2iOh7caxYGIsnxpuLsSIeC1HHppgv51YBbu2geLAiA9pF/vQkbdoM3Mjg8vNsvcG+/O2UiiP4iZs7jMPdlY5gAAAGgEYVJFTmmUjMA/R4uVKD99vxznZND8fsVMAAAAEgAAAAEwRQIhAIyS6VDXDF0R+mxfgKgLjmKDcBU8rdJJ68+RDoLhi3mrAiA+E0CPvrLZ9I416bJxDcDl0sWULMLayL+1b1GlBqoKawAAAGgEYVJFTswSq+T/gck3jWcN4bV/jg3SKNd6AAAAEgAAAAEwRQIhAPSvIWhQ5uIq26wp1ZRj1SuwdCbkSS1hlMXVQ/ANDPySAiBFLziMb6iuaslVj1EEyzhTzLZHnlxX+aJC4UraVBkYBwAAAGcEYVJFUHEBCp0ANEWsYMTmpwF8Homkd7Q4AAAAEgAAAAEwRAIgFrxY7Bc5xPHBlRZkZsJIZo9al6+2Oyxb6SESDZ8WtboCIG8KJr3WDIeyTdSsup/Slw1L/cKy0Kv/JOAS3po235/nAAAAZwRhU05YMoxMgLx6ygg02zfmYApsSeEtpN4AAAASAAAAATBEAiAk61Az6DQMIEkbz2wQ6oe0oPH/2npLcVQ+ILvGi+7mUAIgNGaGv+7eT9I7v6kxLfAicSA4PjHCa7E/jb4VTKI5KTUAAABnBGFTTlg19rBSxZjZM9aaTuxNBMc6GR/mwgAAABIAAAABMEQCIH7b0kqJz4FsSHt0HRdb4cwixr616c6KMvPW8xnBgC7UAiAQcwctYIAIXgi4sAq13RtbOXppZ96cRkv+26r589xIlQAAAGgFYVNVU0RiWuYwAPRiAEmRILkGcWQgvQWSQAAAABIAAAABMEQCIEsqN+54Uj0dywBDpELrXydHTPx1VL3Sb05AFfFLTw/JAiA5LpkMulAAOwktZZzNFmck0zyqd9qC0mUZkhERrUeeJAAAAGgFYVNVU0RsUCTNT4pZEQEZxW+JM0A6U5VV6wAAABIAAAABMEQCIB3odnqXwKa6dGDbuM9M61ffB3rYBAMPUhY3kNaxHXFLAiAtp+fQuC6BKSp6dhG1Nd2v8uMomQ5YAuRKKYK5dDtwJAAAAGgFYVRVU0RNqbgTBX0Euu9OWADjYINxe0oDQQAAABIAAAABMEQCIAtgoVyFsL+KVl7vWtD+5BcZhghhKcCnkh/sSec+a24uAiADA1Wf7ErmlGFRd1Dz+g2JdxnG3QsU4Yxrf/pi096GbwAAAGkFYVRVU0QQHMBfSlHAMZ9XDV4UaoxiUZjmNgAAABIAAAABMEUCIQCZf0zlPV5f09nja0JbHJBWmx6i0MDzrgW+n94mb7UA6AIgTHKJ1lcEvj9S1+HKZI9yy9Jvz9yDQqS2bBpWA3LOJPUAAABoBGFVTkm518tV9GNAXN++TpCm0t8Bwrkr8QAAABIAAAABMEUCIQDHlov/kg2ohJkPuT2FmrGpEEiHogjnVEe5ZjVJRBcWQwIgLYt3GIsLWOwPvicMkhl6CSTfjFk9BCqZfDWCFB68iWIAAABqB2FVbmlEQUkEiTDuxzyRtEsIRK6s3rrcLytu+wAAABIAAAABMEQCIFbpaLaTlzsHzKGOf5BjyZ22UL45FVAVPAvqamO4233pAiA+scHpQ67Kc/IHvLOaDD0Y5ZhRGMOmUu/++ikNybSI+QAAAGsHVURBSUVUSLu7fyrARIT38EosLBbyBHl5G7tEAAAAEgAAAAEwRQIhANX6tK8YKmDvpE+ZPKuRwgSh/wBJ+ckIiBnIdr5L9r5rAiBN/EjgT9CBCSavdIgGxdVb7W/W3o1waSBSbvLzppOFswAAAGsHYVVuaUVUSGF5B4hyYFOW7mKWCRcSj5R3pd27AAAAEgAAAAEwRQIhANUmz5hS7I2ykp5YYpmcHY+ylMH4HtmgT2CiHiBaKeDaAiBn2UFFYKBjucc4fiIz1gBjh+2fzbrIydY2X5BpQQtbtQAAAGsIVUxFTkRFVEjIjrv3xSPzjvPrihUSc8Dw2kIeYwAAABIAAAABMEQCIGVJ4BpnWcA2FuqRuPB0NWwTRB/JvKAMBcHa++9Z7L8yAiB47EAJiL7AfDExuU/R0LASk9SJ7ttRFoSG27k0pOKBkAAAAGwIVUxJTktFVEiVSNuLHKm2x1dIXnhhkYtkA5AWnAAAABIAAAABMEUCIQDpOnkeQ9lxN2SFwhEkTe+i67tPd/JLMoE7XOX9UE0OmgIgXB3fwov/76T/nhUw7FNV76OWGC6WneElT/o/yphlDFQAAABrB1VNS1JFVEiMafekybOPG0gAXSFsOY77Lxzj5AAAABIAAAABMEUCIQD20uOxOHAV9eECZPOI1QA+/dGko6PgdaVDYib6Zv0uUAIgbOSZgfS0iyFnLmU60LTk8rScmIcKNJxxVIXl39fznpQAAABsCFVTRVRIRVRIhLvKtDBxf/gyw5BPplFfl/xjx28AAAASAAAAATBFAiEA1o82iKvfi9pGse2dLz89Ur435+nWT3w7bmmQiP8yl/MCIC+4LVoWbEHd8W7PxN8liIpePxEPfDQtcUltKT044gWfAAAAaARhVU5JsSRUESegplfwVtndBhiMTxsOWqsAAAASAAAAATBFAiEA+WDcYXJpElT5VgExU8HZe8iK9mE/TQ+T9MEuvcsHxkICIGkCIFmEyL2Q4bIlI0pw0U/Cpa7Ecu8UTluvKZTjTZ4zAAAAbAhhVW5pVVNEQ+ArKtY+/zrB1YJ8vXq53T2sT0rQAAAABgAAAAEwRQIhAOKeht4fTM/UrNRB1AsbIq3YuTYsp6GpqHs00o/ZOS3GAiBKYt9anIcxPX+mQjt9Dxk2QAgxX0wrqnvU2ppN5FtxuAAAAGsIVVVTRENFVEgdDlOg5STjzJLB8PM64mj/+NfnpQAAABIAAAABMEQCIDje57AC37UasHpeI8xyd3Mr0WvcWUWeJfh1N5/15PBIAiANeBpIROuCZ+yirdL4hseYmsvJagqylvNO2Wzj5yXpswAAAGwIYVVuaVVTRFS5d+4xgBClJSd0FxSUoby5jn+rZQAAAAYAAAABMEUCIQDSf8JPSr7uSX8Jspz1tkJBlMGzzCizrs6EGp/bdnlC0QIgVjZ8Na2LNi3EBNP+mEEGSseAHqiOJ/vD+uV0Nc7yLnAAAABoBWFVU0RDm6ANaFak7fRmW8osIwmTZXJHO34AAAAGAAAAATBEAiBfA6NghPQoCowpWWdHp3/6QmO+XttEIRTDsxFABzPWDwIgD9egDF/EgILtHUBGQoxqnJJUuVdGyKGn/QiH0ZzaSAwAAABpBWFVU0RDvMpgu2GTQICVE2mmSPsD30+WJjwAAAAGAAAAATBFAiEAtprcgDLZsviDsgEQLnP32AC6Dne+Lj/gadLkk06TeZcCIGyeEs5PrkJzAVoexUizb+UlI4uE5OyujAHbsiFwm8/aAAAAaAVhVVNEVHH8hg99OlkqSph0DjnbMdJdtlroAAAABgAAAAEwRAIgWn5tqlsOEiMHzgESCOHgzRk4kMCP3vX0S5jc1bWvS1ACIEvux/TejnpGhzGsP1iNo1Wusjn768ii9C14Yp4DfbHYAAAAaQVhVVNEVD7TtH3RPsmpi0TmIEpSPnZrIlgRAAAABgAAAAEwRQIhAPy6egR6g5GBG47yG+CT4Vzo9rhUtduyQ+WJM7AOGA5ZAiAUvEYWzyvUPwWgSc9QtN8QmyMaF6m/+baXeXHiQBGdYwAAAGkFYVdCVEP8S47UWeAOVAC+gDqbs5VCNP1Q4wAAAAgAAAABMEUCIQCGaj/W27v8YcnlPYMKqnOhlxmN76BuzYUQ4Gl8s3iScQIgLCBpvLAWN/DEYJTMTr52fpLrN13T7pIiZ9AWl3rZg6kAAABoBWFXQlRDn/WPT/sp+iJmqyXnXiqLNQMxFlYAAAAIAAAAATBEAiBNrkHMdzd/GOA5D7uWef9LCSbmStxl77hRG/QExEVS+AIgQ/14Ew8IVX+OgClz2dhArTGO6BdmG+J7DohHnt+famsAAABpBWFXRVRIAwuoHxwY0oBjbzKvgLmq0CzwhU4AAAASAAAAATBFAiEAj36mdUMBnpJH9vaE6cfKiXe9NJd1AA5GBM1qfdYCSfcCIDfFdDu5NbTx1F+MaOVx6torRppiLAWM4yhJzQXIFIXUAAAAagdhWFNVU0hJ8lbMeEfpGfrJuAjMIWysh8zy9HoAAAASAAAAATBEAiBrmwYV8R8jKfcmyU8v4BZNlm+1bkmCbS9KcbfqHRvIjwIgGMzh8gus/JrTRJJ5qlgTHNqNd2kRy8repVDW3LieBFcAAABoBGFZRkkS5R532qpYqg6SR9t1EOpLRvm+rQAAABIAAAABMEUCIQDaWlkDvAOk2KmejMz3RP9sFq5UwQn9i+4eJJ1yKzhwXQIgbyjCcIBTWPHB6wwbT9JV+8j+uyPcNW/9MYtCjpW83IoAAABnBGFZRklRZdJCd80GP1rETv1EeycCXoiPNwAAABIAAAABMEQCICiFKUEdK1/dgw9Ow2Oq0sZvAcg/qnt47Zlx+z4jtLNOAiByyHktLD1KQEIpa3XpPgPCsXFFqjwdMfbHrfqolLCHbgAAAGcEYVpSWG+whVxATgnEfD+8ol8I1OQfnwYvAAAAEgAAAAEwRAIgUTnDMkXCN9gMPrXLUqawKzoSfPjWdp/ZOAVWH6Wp86kCIB9cOj2mq0f2li2neoNHJZGRQ+XY6qbMPZY9vd58Qx6NAAAAaARhWlJY33/1Sqysv/Qt/indYUSmm2KfjJ4AAAASAAAAATBFAiEA1wpxLhA59sVkD5QqLJD1HbVYcMSkGV/WzYUdtVFIYLkCIHlf751rbVPeMfh5lxoK1jlS5mRZmroLAETRvPIOXEueAAAAawd1R09UQ0hJMMKoSu1tsw4xz01wWbGDbBLGgGgAAAASAAAAATBFAiEA4e6inQfqSifq1xsK/QLuSSyg4qhCbOAhockphrsDgWsCIGnWLt7PH9PW7fRoP3ASL6I9q11PbNqmrryfL5upHHPuAAAAZwRHSFNUPzgtvZYOOpu86uImUeiBWNJ5FVAAAAASAAAAATBEAiAEll4HYJ9mLtovdrEeZMwZ0k8+3jpRaPDhjLf8NXuNfgIgRsuf6ef1y+6oRwUjTM1ZlMQPDncs4XuVqT7eYNilGj4AAABnA0FBQmhsZQ28/qp10JuINiGtgQ9ZUr1dAAAAEgAAAAEwRQIhAOd88JiUk+qrHdubfOKXqV8p+GpBrCVklIYvR+TtsHCFAiAZMOf7EefPgUo3mzHvTegZ/uXQe9g+jf/GpO41MB6e7QAAAGYDUlRC7EkcEIjq6ZK3ohTvsKJmrQknpyoAAAASAAAAATBEAiBoB4Nu3iES6x6wbUGVjhJqkQxT3gwuA4edE6PqAKojbAIgA67mxuVEldV1ixJsa4k5mxXzIfo+2bNtHQ05ub+HsR4AAABnBEFCQ0jMfSbY6mKBuzY8hEhRXyxh97wZ8AAAABIAAAABMEQCIEE43VJP9C0HPJdIWNjLM3cVd9110dULV6yzNc+s8BYlAiACXPuiAOjBnV5sm5hGpgjO0nTrpwvAbgXCFgKQ70WD0gAAAGYCQVS/j7kZqLvyjlkIUq7y0oRJTrwGVwAAABIAAAABMEUCIQDYSFpHoE1WMRhaB/ksTclcwKGj5Wwg82vOFUQoW81MgwIgNu4j9J+26EZSfkF4MUULNWzBLWJrJqB8w5IAoOUen2cAAABoBEFCU1SgsgcQP3ZKkgtK+eaR9b2VbeFN7QAAAAgAAAABMEUCIQDhOj9uoCofDNRrB5jTlIe0Y6gcqirOLUDo6zw3gOEEnQIgVixqNuveEDKG5GSu9wKztCB7tVVB8kxqtatZAJdBNiUAAABmA0FCWJp5TcGTnx14+khhO4m4+dCiDaAOAAAAEgAAAAEwRAIgX81fJYr9WpPI7ji5YNXF0EpHEbIgcU5djHulzeNoT4QCIAIiL+QGHECaxIZPperyLwY6YjBgwjZomEfKu+DRdAeWAAAAaQVBQllTUw6Na0ceMy8UDn2du5nl44Ivco2mAAAAEgAAAAEwRQIhAMI8Va+589yI2fYNFsSoLUKg2/5Y5xx+9jr+TJ5LdNwqAiBIVRh7EGiqy12j5dsfLdYsF8Cazvnewg5ep6hiSVKmygAAAGgEQUNYVHvgDtZ5ayFlZzLo9zn8G48cU9oNAAAAEgAAAAEwRQIhANPUlTNv6dJny0bjTZlcj+70cVwmDqnNxAQeqlRHzT+PAiACBVZX8+7lP1cN1+mCzCqz0xwld7gbL2m1uT4Pwja9gwAAAGYEQUNBQvdUYgeE55fzaB+fKVslKEVdL8DQAAAACQAAAAEwQwIfdisEJ51o+1indu7jDz9iOvudPWCJqa0vPVNapopqSwIgT18Ee0kv88BLpNu8FEAkn/L4tsfwECDcXCtBDfPTdHcAAABmA0FDQWPZWNdl9b2I79vYr9MkRTk7JJB/AAAACAAAAAEwRAIgY2lEs8bMJqAio47xfxf5a5P3ncsiV3Py+L7mWRAqxBQCIEJKNU/k98NKPYzaljWNn9gEpVIDcr8QuBg69JKimIsLAAAAaAVBQ0NFTHR1xC+L8sGfTq8S/qq6uoWf3IkUAAAAEgAAAAEwRAIgeSXkKAu2AuXu8bqnKOVN2ZooVwYxnFdEAACyW8DFoZ0CIDnoQC3S0PyvzYu++qicw8pgwpvm0yoH03pm4UkqcH26AAAAZgNBQ0MT8bf9++H8ZmdtVkg+IbHstAtY4gAAABIAAAABMEQCIHKeBE0Sm39z9jnq/kAt1s4MmsBygeKZ9pyJDsNfFohUAiBuVswhq7obY3xzCW+71TIY2m4P7K3um8f00AQkz0tMXQAAAGcDQVJEdap7DQJTLzgztmx/CtNTdtNz3fgAAAASAAAAATBFAiEA/hych45/Mr3h4pRn5kL2GmIP3OWp0bfwFK2S6KY0vQECICzx2zfJATiiaZtA8Eyp4eaeFeDAPsBuuWil+0cnRrQgAAAAZgNBQ0TkX8QpD9MVlYj1MgWFkuoyfS6X1AAAABIAAAABMEQCIDANKODnlsluNFOhC+J7EYA0zk0n+5SJZh1zhh5k89sQAiBxtqYtEvHAJAf1tjTVJEqyxCVpGdkcHQQh+UJGC2DVOQAAAGYDQUNFBhRxEAIrdouo+ZqPOF3xGhUanMgAAAAAAAAAATBEAiAllvjQDdTaJlG4hX3iIDj1MjCPTJqZXadCFGiECFU9QQIgUGvPTJSSPGtoCCFaAE8YTeeQPYKFZCLzlXQfjMyJsFYAAABmA0FDReF+QazUyqPOwEiDe/0ZGLPEFBdnAAAABgAAAAEwRAIgepAu9Qfj+4uvIXZccweej3PN8Ku3QB7GznLJe5zipy4CICSGBLfWh8VRHutdX2TShpTwD4DGJAGw12iSx8vnqrioAAAAZwNBQ0XsVIOATmN9Rc3iL6CGlla2S1qxqwAAABIAAAABMEUCIQC3B4A/ZVlpmaatLpysoZnOpSFPuyPjlRfw7cjUGWvpdwIgQ5P3oHVQ93bQcFuZml6e5574FR7E8jp6bqU5eENOmxwAAABlAkFDmgq6OTqsTfv/QzOwbEB0WAAsYYMAAAASAAAAATBEAiBm4EmWmkyMdVhmNHZScK0rttgeTl5BRfgv2WfOvw+0ngIgYPKdCQwf5hBtHtvza/7/2MCgHoiN0L+Zj7eMtvavXMcAAABnA0FDUUvctmuWgGDZOQwdEr0pc0SWIFWBAAAAEgAAAAEwRQIhAK5uDFcXMvC09AQpgW9KnANWr32V7iuPi3Jp/0Nph+vIAiAy9yqFmL+VCFdInSnR79Voi9SJ++jEiL7mzvtzkv5x+AAAAGcDQUNSdjBvAp+Pme/+UJU0A3unAwmZ488AAAASAAAAATBFAiEA0ZlopobWWhs7TkPnRknsAOTUGZK5bXiPkFsZrL8mvgoCIHW/xWUDQ9Ub+0lnOyjOO5uMbdihQE7A96zZvM6tHV/ZAAAAaQVBQ1JJQUT1kJ6X4cv1+73w/JL9g83l1cWKAAAAEgAAAAEwRQIhANpO+UxY3jDe2WdrMwLR5KrqqUzj6tAZAqI7HATLj1tiAiAWE3UJo7aW8C4IaAkqdvBTy+gRwTDp2LCua+93/nkBwwAAAGYDQUFD51rTqrFOSw34xdpChmCNq7Ib2GQAAAAFAAAAATBEAiBCSzoBbo7FKhhCl9q1yvuJADyw0FEtRtcr9FCe3avwqAIgKEn642kCxhn36buGuzwp+EZv7yp3nsFXdxQAYlkCjpgAAABnA0FERnIg6S1Bji61nQwl0ZX6AEv9OvxCAAAAEgAAAAEwRQIhAJs8II64/JYFP8L77kBoxR8MRUC0L2ctcyZ+T6ohGyOTAiATrtomtljNFBjHoImCAXO15skOqrmzX0bbxblSOXALkgAAAGoHQURBQkVBUrMpnUurk78E1bEbxJzW360fd9I/AAAAEgAAAAEwRAIgDg/s5SDBTi77+imBw1qaOWaon9cko4bYML90Da9n4PkCID1GZEj08x5z5NzJ8ofLKs1ifYnj/29Daw8PS/brSZL5AAAAawdBREFCVUxMQ94RRc0i8KnMmeUcIF5ugRYd9rkAAAASAAAAATBFAiEAwBTU+esOuQjCQOmuBbXVH4vSJbSfyQof9cPQRgYXFKkCIBAkkpY3GJqPmepVN6K6f1G/0Tgt6RqMTtus3hUxSuotAAAAZgNBRFDDFLDnWNX/dPY+MHqG6/4YPJV2ewAAABIAAAABMEQCIB0RiKRm6v/0j+5iwfqGwetuuqFDp5ZiH7zVoncTW/sFAiB3DXqTILhGKin5OnKBdSnxCkt6tY7Fc+65xvCDJVLpmgAAAGYDQURCK6rJMwz5rEedgZGVeU15rQx2FuMAAAASAAAAATBEAiA8cD+BTzW2Kz8/saoXRrZvF52sh4J9U8L4sUnaJEhbVQIgEFlzCRD9ewcPaLKlJd2o9oCrWiUt7BsgawURqZnlvyYAAABnA0FERGNdCB/Y9mcBNdijZA4s94IgeH1WAAAAEgAAAAEwRQIhAJkijOdOJMPNrfZaafUwzNO9Izmbe8Lp7w+EEr5EMu/xAiAbMpDs3viNcoh9ioQ0rBnOuTZFRYgo5B/Nqr7rM4QgKgAAAGcDQURMZg5xSDeF9mEzVIsQ9pJtwzKwbmEAAAASAAAAATBFAiEAwxZJYo/j9+5huCQa/s6uywzK7X744nT8MVOFGyGfeGoCICnz4SUQi1HdmSKuyp/B8cAraLKdfNnHeSEVou43Z0j9AAAAZwNBRFit4AwoJE1c4X1y5AMwscMYzRK3wwAAABIAAAABMEUCIQCltGwd1a6zmBmMOQ55CNHGQzs6dAsWRtn7u8bzEgWanwIgHqYaCNUjs7j5GM+Q35GW5YWT7bCRWYfuUIbJ8muA8lUAAABmA0FEWERwu4fXe5Y6AT25Ob4zL5J/K5kuAAAABAAAAAEwRAIgFNTGBz7vhdlwPRhx5w+yAT5sdAJNlKZ/z7LAbsr+3PsCIEgiSuNRMCuSIYC3GGqPI1Y6FcaPROPUerg47o95x/X2AAAAZwNBREjmmjU7MVLde3Bv991A/h0Yt4AtMQAAABIAAAABMEUCIQC78FA5/IRKa6aHf2VPu63YKZH249JdmyuBkj7iVnVm1QIgeIp/dLaVs4x0JQnH1+B0GKJyV1suQKXBpVBVUYTpqKMAAABnA0FESYgQxjRw04Y5lUxrQarFRYSMRkhKAAAAEgAAAAEwRQIhAMfExmBMf1rp1Q64bW9w6rqrF8yZ5BkW/dwiw9Al8n6wAiBJTDZQDMwnV2tfLZTvtsJ6AZ2HUYEu7vdyQGAFHWRiSQAAAGcDQVJBmsXGPdy5NhLjFqsx38gZK8iWGYgAAAASAAAAATBFAiEAgq0QrIEb3tx+lBDx5O/+1Tw+Qs/Znd9IkdFysLIfnCgCID8v0eTRm6CKs5MZe+CYS6gcrsOYMuZ3bqBToTp2WL6MAAAAZwRBRFNUQihmqPCwMsXPHfve8xog9FCVYrAAAAAAAAAAATBEAiBU6AnE49KJNOdvsZcNN3gTs64JNCZFKcgqMbzZ5a99JQIgRbH0EoM6E1pyXXZ9fjIYD03zR19wKJV+XxTuTfWbM8cAAABnA0FEU8/Oz+K9L+0HqRRSIuinrZzxzNIqAAAACwAAAAEwRQIhAK9kjLj3ma+hqmY+Kag9yqoBpEWzAlExZeT26YhSoZ53AiAKyRVy9fhzAP4KAu2eRA5ND6SlurCBBaJHCkAJhdT72wAAAGYDQURU0NbWxf5KZ300PMQzU2u3F7rhZ90AAAAJAAAAATBEAiB3DBHAbpzEwsCUL5aWlZ2vCnDWUpZV8rXlzQcwarmAGQIgDGb5QjCZR/wu4WO+qyRlc+l0VJvAFgO7oLOnKrBON50AAABnA1RXQaLvJ1fS7VYMnjdY0ZRte8zL1af+AAAAEgAAAAEwRQIhAJ1URxXPlQXvNsmA5+7lNlPdmnLIdT+gxmPcpkRkaIuGAiAq821Stgezj0eh5+foMsJgCb7+ic/xhoaF2p9X+8o+qQAAAGcEQUdMRDI1OmyRFDv9bH02O1RuYqmiSJogAAAAEgAAAAEwRAIgCFYQSZmbcLPAT8fw9V3cvCRivrkm3v0U/dkWn9dce78CIDXH+kXPnu4cgZi4R+lc7bH4UG6WzTcmuKfCNilMWZjHAAAAaARBRENPtsPchXhFpxPTUxzqWsVG9nZ5kvQAAAAGAAAAATBFAiEA8pPYfaVMlikNN+njHWj+vQvNk/C0E89fXuRusmvzby8CIEan4xMGD6qGAGqViMoONKK5VKpYPofAHa7/03hxDE9mAAAAZgNBR1PbLyvM4++pXtqVojOvRfPg1PAOKgAAAAgAAAABMEQCIAG/eT9AKyEqammVvHN0QkHuB5+EuyxujtgZfaCcRhl7AiADoJOkgtiCmgfBtl6509AI9l3PgmgZv+7DHstbiSBWMAAAAGYDQUVM0zc4LaFdErtuVkmOkd9k+GyPHqgAAAASAAAAATBEAiBzGxACgg04mg7DnOep0HTneae0S7qnfxKl9wTuQERnSgIgI5d+cUYo+AbvnB+qpoGri/tPPbqXs7biGMwdX18kUXYAAABoBEFFTlPTjeiGhxcr3kQHVbUjeYfkqHwjpwAAAAgAAAABMEUCIQDLxbhOyAyvrfJBrKcgkilaC8alAZI+zkLpfate7AZUHAIgW4tpH3uHRQhGp+SyjR55qOxU8iwe5EIo8LBQrry/K/8AAABpBUFFUkdPka8Puyirp+MUA8tFcQbOeTl/1OYAAAASAAAAATBFAiEAyCAECXwm9qlzfbGgJgVgpil40jcEaI+kbUPf2Oc56hMCIHV29bVEEgKtND1lNtTp3RN0DFTfgfK0/JGel0DdprfSAAAAaQVBRVJHT64xuFv+YnR9CDa4Jgi0gwNho9N6AAAAEgAAAAEwRQIhANwUvzpqUtjJZtgU81ZKRy05Jkf3iYIEALnKZSENawjLAiA9LArgp2hYk2aro720jGki3bUD7SlrgPZne/5+HGvr+wAAAGcEQVJOWAw3vPRWvGYcFNWWaDMlYjB21+KDAAAAEgAAAAEwRAIgPBTv9y+AouR6Rw7cnLpSRNvFfnIvomdA1v6bYrNIhYUCICFKK3sRoL9xT9+Q6sJPlbBv4CGrqU6OAW+kAoR4nhP4AAAAZgNBUk66XxGxaxVXks87LmiA6HBoWaiutgAAAAgAAAABMEQCIDte2zM5sKLN9FBI8/CXjJFGDm50Lbd+1kfHtAmqnNDlAiBwbXRuQIxeZYrXnvVxjaARC5VCiJu3NHqUKqrbtWJFeAAAAGYDQUVUjJ5M91a50B15G5W8LQkT7yvwN4QAAAASAAAAATBEAiAvC4i8Qq1CN6R9Vq4acgjYgVZl5XR4tP4eVbS1UrVjvwIgbioYvxVuw8tmy4Jafsh1OX+pcP98n7vIR5bx/PDBu7QAAABmAkFFXKmnGx0BhJwKlUkMwAVZcX/PDR0AAAASAAAAATBFAiEAl21WNEd7eVcezcrgsaOw70Wl1bZJyRnjAW2yb7wmgQECIHz8OJV27YTTieGWUDOootgoXGuDWYYhaIsrFS2Rld8SAAAAZgNBRkMU3/1PUV1MQ0k8bFEsePvFmoryVAAAABIAAAABMEQCIGHqDVw5SehtOlRXMvW7fraqQ8Sepc71N9B9lX8TT+CBAiBO/0mQ49kSVRGjLuNso5/gbL481DSF3sdyniyx1tcmaQAAAGcDQVRNm5HvDXhIjF70xQnrenP32MplDOQAAAASAAAAATBFAiEAsArhSCJB5X6wITyfGLSh5bzG0qHzHUEBfzQC7TnphJcCICKSRYoUmjGnY4/Q1OwstC83OJ+NAZkeqzA0O0YdcR1sAAAAaQVBZnJvWAgTBjU2iqKLIXpN+2jhv43FJWIcAAAABAAAAAEwRQIhAKJqZvA3ecERgw9eXzhuReVLqU+NFau/h0Mr7/D2fr2KAiAkT7FKZ1e2B0d7M8+yKHhvQOGlGNAC+ceDzYAFnhMOUAAAAGgFQUZETFTYqIQ7Clq6awMOkrP01mn62KW+UAAAAAQAAAABMEQCIFbLURy7Hnta9osVvcf0n46Bbmo1GmePbGQs4lKzTN+7AiASwmtdJ+5dQktZrCZ0pIzGzyTcdXSeTvgppho320XEBAAAAGoHQUZUUkJDSw6spuwk5GH3bE2jhVcTNvlUyWUqAAAAEgAAAAEwRAIgHTUySmAcfCi0yJLcMLfOBG6kQerikqLHlp/jIr4OUHACIDNVy7eq3H61Z93pUSIFuExhSoCB0pNLLAgQg8zt/+auAAAAagdBRlRSQlJO1jqC7vvcIe0No3ki1hF4oF4CYQkAAAAJAAAAATBEAiAmAVB5r1+xGYrtCn8q/O7rYpe88ozM/QQcZKpWlvtDCwIgHGIDtLNOlwfpZUyb5c1iKicztjMBU19RMHyrzxbp5mcAAABnBEFHQXK0U/Hy7ndtryWGUBNhxFfbcOHKDwAAAAgAAAABMEQCIDJOuAozgQXhFJmkc34hVRjq912JJLNeqGlu/rtTgd9VAiAXzVLD5Fum6hNW/amkOfMCOkrTEBkyqfGedbyDaIfrvgAAAGcDQUdBLYD19TKP3Lbs63ys9d2K7a7JTiAAAAAEAAAAATBFAiEAx7lwLJDLB3M+yg8L5ESnMFu6RKcOwajPUqCc2CAuS64CIGvnOWlWGcfA5HsFE1cLS1jC+CcjYMbaE+uT3k0ivtRnAAAAZwRBR1ZDi3llb8OKBAROSV4i+tdHEmyjBcQAAAASAAAAATBEAiBeBv6xedr8XVJoLc8RJJdxfjL8Q6SgTZPDL236l0B5nwIgdmlaXfEgD46MmXRwkwK2oD8VswDJSivGmahTBG6BI1kAAABpBWFnRVVSGn5OY3eLTxKhmcBi8+/dKIr8vOgAAAASAAAAATBFAiEAsgHPJo4azinrq9VPRA8A3P7YaIC71A+Qu9iKhYVLefMCICIVMOd/ZQgSo72pseRs0a/TGkTlgAjiRg94NW7wTXlXAAAAaARBR0dUgCijTsY2eLy2QyX4BUSb66mMKKgAAAASAAAAATBFAiEA4pcG0+8ADrGxLuhzxnX4f3lvZUhwRi1XMIYg2t2cH5oCIBaGlxFw+oKwNS0SALME9Pr9nQ14HqtoD7BgmNpNCevYAAAAZwRBR1JTc4hlMBqbfdgNw2Zt1IzwNOxCvdoAAAAIAAAAATBEAiAiLbQpCRTBM09gH0LL5Wh2bq9cWorraQNpuqEztyILHgIgSSinni6UY3+uPW19DAui4ZUR9hlW/BbnLM3M1yW2vQIAAABoBEFHUEMZ/cKQl0tXQGX/jbQwOgt2rs8iPgAAABIAAAABMEUCIQCMSWUozeOFFujlkaHmzNXdcKRWf3ws0yVm2URzXEWlPgIgVOZ+wW0nP7/Bo8yGK6vT1GT6iUW+rmPpSNfy3jE05H4AAABmA0RMVAfjxwZTVIsE8KdZcMH4G0y7+2BvAAAAEgAAAAEwRAIgNm/69udd9Lc1YyfA9jcfceRX9UFkMcWZwa6E6hqTOW4CICD9mrhi7yJYlq62NhE/XD2730DK6rFOCsGoy9HmurtcAAAAZwRBR0xUcsn7ftGdPOUc6lxWs+AjzZGLqt8AAAASAAAAATBEAiBTQ/Yz0BushhU0fIDsq0hiX6YXnsuEKWX8pUxHQv/R8wIgNZgLqAABbIySOFyUUrowQbch09q9Ls4XwJlkIYdBtokAAABnA0FHVI0vqx/zTxxUVnOoFvFDiwLQouMtAAAACAAAAAEwRQIhAPdGWWWw/Ay1/ayFC8NUkN1n8BKmUGnMK32EFLRSLIh4AiAU6J+pwJaaBAcs5xmtnz1G4cPpMtwE9vHdv0Yuh3V37QAAAGgFQUlET0NYS0SFNoDuNKDzN7cSqPZtgW3xUQAAABIAAAABMEQCIFG4Zupqzq3BvZeahr5swbN4XYXrt6zz8G3JN2MWjZvsAiBTFhTGca3zGBJuc+F89D9ahS9lDL3wBM5Z0ffVYJO8EgAAAGYDQUlOOoEP9yEbQMT6diBaFO/hYWFdA4UAAAASAAAAATBEAiBYBZcF+Mp6Y9PTKyc8oOphXx1p8WWJgZuyRv8aOpwvCgIgYL6cB8dZiyBnIKTfSHJuqnKGI5TC3oNE2ZYJaRB7BlsAAABmA1hBSSaLeXbpToSki/iytXujS1ntg2p0AAAACAAAAAEwRAIgMuyOgpe4XZQrzm3zP0ulk0hRgH253LBgwTJDGopTuoQCIDyd85TJvMKnnFKgQPE2ELGZW9Ajcknn9Yzk/XBTmXxXAAAAZwRBSUNP5/s1WTWKmd9URm0DUOStbccJPaMAAAAIAAAAATBEAiAYq4Hdix8jy0UyT1QlssvNjkkrAfEQ7WahP8FbkRnrZgIgNi6toRcqd1lsQ6fgsGPeqASAqLLSt5UWCMyR00Nnr4oAAABnA0FJRDfoeJu5mWyskVbNX1/TJZnmuRKJAAAAEgAAAAEwRQIhAOaLWbiTXgxt0e0ma3XL9z+6attxCWeOHh6Av+BEc9swAiBwNNeXPyx/mDiwhWDkDkqBkp2AsuAhRNEyl/Ujma91lAAAAGgEQUlESdoeU+CIAj/k0dxaQYWBdI9Sy9G4AAAACQAAAAEwRQIhANVMZOekTr57K8SwIWJ9TBLgq7esvIdMaCbqaToLp7SsAiB1jqLSipOLlmIihgT69kUY3pE7jLBm/NEhfbMpl3cZkwAAAGcDQUlE0XiyDGAHVyvR/QHSBcwg0ytKYBUAAAAIAAAAATBFAiEAsqJ8vmnHjG54LA0+BlNvnRJSjCMkAaO7MX72N5Lcws4CIBRpEPsN0EO27BbvjP/JewC8cHXlOCYWY1TUpvZhelhgAAAAaAVBSURVU6lXBFoS0nDi7g3KmjNAw0DgXUZwAAAAEgAAAAEwRAIgAjpcfcirIPTq0jSSlQdwAeuC9Bppgg70/L5Y3pDDl18CIBvxxmUQyM77PW9PrnHQQLJD2bhK/AnskuOwiH9HJuctAAAAZwNBSVgQY85SQmXVo6Yk9JFKzVc92JzpiAAAABIAAAABMEUCIQCbXzXGlXSYR633ZT8gOVs/oJBgKlVy78EFO+Pp8Z1IeAIgfFd0Bs2XrvPmy8vKuHvZPTTdRBUQc+uEa2SFRMyE+/sAAABnA0FQVCOuPFs5sS8Gk+BUNe6qHlHYxhUwAAAAEgAAAAEwRQIhAIQNaLxdbh9jbmo8XUpeh65NpHsEqSLeCn3vbf0PzRs+AiBQ6d/eaX/dBHHtett0oOuwUy9B5Lsmu+mZpgJvnW8smQAAAGcDQVRIFUPQ+DSJ6CoTRN9oJ7I9VB8jWlAAAAASAAAAATBFAiEAtWcrg98Lvr2w59NubF07N4sHgGe1hzjthJNFjtBwrG4CIAsadJUKTvT6rh/FHumQzRghiMNj205Z9POhlw2Dndt1AAAAZgNBTElCicBDoSOS8QJzB/tYJy2OvYU5EgAAABIAAAABMEQCIEvduqbrD6X4AIK7Gl0i5iBqpvChP7rxZQuwPGv9o3nEAiAvQEEMyHVSyK1IFg4ctux/bLJOBu3xOAO8x3xrMAQaqgAAAGcDQUlNUzUufWYgzJMcDJMYFmriqSwaRmYAAAASAAAAATBFAiEA07QIT1h5L3rGZafbc86SD95ZOPQRrOP4QBehIMvjZ9sCIB5wpXHT1H9nL8Bc89KYzcSl7DZbXpGRZjx71TmbrrpwAAAAZwRBSU9OTO2nkGpe0heXhc06QKae6LyZxGYAAAAIAAAAATBEAiB+hG9oSpgN3nqpKyzoYZI+Bwwyw3Rbf5Dtb9DMsY2X7gIgIGAyvKfA743F2NaIBkbtyY0e/eYlhwieWjvDaRi7nRAAAABnBEFJT1piboA23rMztAi+Ro+VG9tCQzy/GAAAABIAAAABMEQCIGMmHMmUlUkNoMruO5ozUvEg4ByCj2tFoCZC8Nhxfcf8AiBTg3lZgWXXr3hNatLncbbJ1/WoSBBirTk4xp/EXuDC+wAAAGsHdUpPUkRBTq/9t2jl+Qm5pu0RCtckteRUZwwIAAAAEgAAAAEwRQIhAPKk8gsJaOXAuZy1uPnWfF+fNAvj18HoSCANJHFGbee9AiAfgaSM9zNQnBuW8AhUyNd3i9LeEqcNRQVfYvtQQZNM4AAAAGYDQUJM+LNYszl6jqVGT4zHU2RdQuFLeeoAAAASAAAAATBEAiAamWC1R65wtPHOxD7w5xkk3Cb38CdAzFhOeCK0c04VxwIgOqddmd5x4dioS7cEziCrscr/iox54P3ZWngmVheaWxYAAABnBEFJUniMsdFVpaHV1mdhG3cQkg/Z0c1yfwAAAAgAAAABMEQCIHw6cHwJUAt07g9kbVxImVQpedLQIez4R2K47AqG+FkDAiB0fVDDjATw03oyjEwIYTJeRYhZIpsW16j+XCsb2/vdzAAAAGgFQVJBSUQ4fCkbwydDiQVOgs6B3TGKARPK9QAAABIAAAABMEQCIDP8+mDB4uHm0r7nwwk1xr8n9/iU+OpeTf3MAkUnGdFYAiA9hJMSJAY7HcEPwe82H3KjWsNt+7a81awNW5CclfAyYQAAAGcDQVNUJwVLE7G3mLNFtZGk0i5lYtR+p1oAAAAEAAAAATBFAiEA3a+lzemvSk84QQgb7fLnmO+Gwz1E6dkt6Hc2eGPM/3UCIEY1iSYWvmN8cZ7CyuLWHkY+W71zqKqO+WydpHb+radmAAAAZwNBSVIn3OHsTT9yw+RXzFA1Tx+XXd70iAAAAAgAAAABMEUCIQD0s8/yh6bQWng7SH9uQ9XPSOk5ktMBY08kxogWs8OZrAIgKtHosQp6j+J1nwsLMYUuV6dP5Ulvl0Cwr8HIn2kbHkwAAABmA0FJVHllB5nniZqALLlsC8M6ao1M5JNsAAAAEgAAAAEwRAIgBSPbCaly2HsUtsoJJc7Z1+r8Fn/xV1D1oXfnJDkQLNICIBpJjGqKyB7f6iosfVbtiINLxl8WYyAT4B6PCB18RvJuAAAAZgNBQ1XVNrvVQUqMK+7YKmNze5Mn0vo1pgAAABIAAAABMEQCIEo9WnhxC1dJm+cbWweRBAqFLj44Dj/RrPyHp989DASlAiBRIm6VLjoEkADLA0behJHLyr2kf2tNWE0YH6hUVnS4NgAAAGYDQVdPaMhbn3jzCg31rFcj5OcAA38YVBUAAAASAAAAATBEAiBwPn2g+ruFHkmUt5vrUGFJeQVEFj1lAKYhkgHULv6qRgIgYYMHYcLpLLPjxNxDB+A23W2Q73C0kV8jkUIwMOLYeWIAAABoBUFLSVRBMwHuY/sp+GPyMzvURmrLRs2DI+YAAAASAAAAATBEAiAmAWohpXyDACuE3rzGuEYWmTSUrGhWgE8oZaFJ8WdsdwIgar/uHxJBR1HmZUxnXaMuKnd/vs+/0+7l0Dmvf73h5RAAAABoBEFLUk+Kt0BAY+xNvP1FmCFZktw/jshT1wAAABIAAAABMEUCIQCgyVmq0viRLaQ5mGQ8kf1faT8jQ2lDsT11nkWwSTGAlQIgbeyH3pW9iek3S8r0ArspqgGIfjjp7U+dRkBz4pSLOzcAAABnBEFERUyU2GMXPud0OeQpIoT/E/rVSzuhggAAABIAAAABMEQCIFQ+ScrJ9e4q+5wMdt1DTApMBCVJD46JnLbLrX1N2qT9AiAvk8k7OXHfqTkQ6mIKaA7SMlmhpM5ri7UjIyW83CYbkQAAAGkFQUtUSU/mXTfxincGQ8sUyGEaynpnJEukgAAAABIAAAABMEUCIQChtIjsxemiqOj5MpAoS5lWm+Uaksb3n1lmE+K7OFNKZAIgSjNuf6/hpG9b1BbIvOQZ5E7INNHvB5n1b5A3sB1mCAIAAABnA0FMQVZPRba7aK3ti2YKDYoKlI3W1uToAAAACAAAAAEwRQIhAKiqwfxaDXKJov9gfFtOp9ZxYfwlUcj6iJ1sXjhnaq+EAiBOlQy5gLvWRZME8hUADfS4WhEYreOW+G5SFljoS0g0YAAAAGoHQUxDQVpBUhD0SoNAl0aaw0BZLSjEecRC6Zv+AAAAEgAAAAEwRAIgIPxZnXGbzHP4Zp8dDcu6M6pWqGd13wZ4PWNE7Ey7UdwCIFh5BPcqLePDAboTnnaWN4xNxi8Om4dJzOTwEfEzPjAEAAAAbQlBbGNoZW1pc3SIrN0qZCXD+q5LyWUP1+J+C+u3qwAAABIAAAABMEUCIQCpSeHUg/DC59dCZn9VLGplCszFpswKDHiEMexGRItasAIgKzh33vg/Imf6YLmXSpztkTRSp0yyKoSNedGxyH2bn8oAAABoBEFMQ1jb200W7aRR0FA7hUz3nVVpf5DI3wAAABIAAAABMEUCIQCl0eM0HYzLQrlXqnAItpq4N3do4BeChsvRcG5JORBJlgIgfSfrnAYZ7WgHio1t0UXEjgEDVsB1sD0qV7UfGn8W3KAAAABpBWFsRVRIAQBUbyzUydl/eY/8l1XkeGX/fuYAAAASAAAAATBFAiEA1no+a1IqAMBBqIImUF6bJaCg9IBGaoWHzkiLO4FMcY4CIA1PxHmzGTbO/kBlqbW9a01UiBmmsruujpZk+hitewedAAAAaQVhbFVTRLxtoP6a1fOw1YFgKIkXqlZlNmDpAAAAEgAAAAEwRQIhAMQcm6KYyKnT/FW6x7rmOBIv3v59E7FdrUcODsx4sgfGAiAiNXmUBCjQwwE4exwq6s9YYsRPQadBq97+HG70YdUj6QAAAGYDQUNI7QSRXCPwCjE6VElVUk6329gjFD0AAAAIAAAAATBEAiAxkGhv33S+q91Po+rBaLyP1hXTonhPyXcppdjmI7OBuAIgeQfHD1lDg3A1AVzOf6KQ/xEZvy6BVXomc1KASy7sJe4AAABoBEFMQ08YGmN0bTrc81bLxzrOIoMv+7HuWgAAAAgAAAABMEUCIQCucWfgNCoaK2TutzSYYm1E0+raJB/45zxXHeCtk3Qi9AIgFEovJriCMP3qGay8AUrlwTnDMIQnCl+SxuJSWh+w4moAAABoBUFMRVBIJ3AqJhJuCzcCr2PuCaxNGghO9igAAAASAAAAATBEAiB0jPVy8xZwAd33HdXm7nEC3gMbh66OZqqbH9oggoAqegIgVYCm+KWaWdVmkGhMM4HDBaLj51dFET6xReqg7jtzo9kAAABoBEFMRViLptzGZ9P/ZMGiEjznL/XwGZ5TFQAAAAQAAAABMEUCIQD668MzT4sdCxBX0cUbdsg8QFJcBLZ5BYiHgpyhj1vYhwIgOjVKly4yGbJQ7XH3wPuwS+m1/y4aP339i2X9Sf2OFCQAAABrCEFMR09CRUFSBX+xDj/sABpA5rddOjC5niPlQQcAAAASAAAAATBEAiBO9VG3dbi1V00WfcprJ+d0/6pv9cwW7oOEHVoX3nZ6awIgFXbuND/X/4Uhg0Kvue6Z9SlR3UgiyjzvQ4quDvKMBEcAAABsCEFMR09CVUxMWEk2NX1o9RQ/EuLmTwCJ25OBTa0AAAASAAAAATBFAiEAibjBn60LX/yyBvu5GFKurI6Ewd6m4DasNq17mVqvnVQCIHZLKZR1OyeQDw8CKOpoITiSAo4xBBnWeidD9pBMkAf9AAAAbAlBTEdPSEVER0X9w9V+t4OcpoovrXqTeZyOivphtwAAABIAAAABMEQCIBKgYa5QJo8CzGqlcfzJz8jMxhJBewkrZ6Rq5qi8mSM2AiB5oq204fYpYL9ZKpi9lb32/y2TWwypKvW3idGTNxk/ZgAAAGcEQUdPTC/O4IDOtP+V/NyKAwUs2F5R7MacAAAAEgAAAAEwRAIgCmEkGrcrVUHb9vqveMqgJoMFu0EWpug6KjazVVtqZYYCIHR7ywCzuw14uL9j8LexJRlHV3dqFK9VQvstEUYFv0O0AAAAZwNBTEcWsKGoeuivXHkvq8QpxP4kiDSEKwAAABIAAAABMEUCIQD9wNRhuEdEylxKkLved3xACV/RUkEwm+08C8W5hBsg4QIgF/QDetshouirgU9acriOKY1pl9AuRftl9tZiJzwd94wAAABnA0FWU5TZFoc7IsnBtTaV8cAC94U3ubOyAAAAEgAAAAEwRQIhAK7sXucc2w6iF3KP3r1nQPtC3M2NedK3nl+7Sw2cZyy1AiAF/oThdpKomCj0PI/GqGT1BTLyFrasLSaTjRnUO79hSQAAAGgFQUxJQ0WsUQZte+xl3EWJNo2jaLISdF1j6AAAAAYAAAABMEQCIEJ3r1tlQ55ji9YnMabJzCk9TpVD9FXcs2pWtevPKWpYAiAcQ5BLBtX1VSM+g5AKn9AmXf26slG62dqOQO5+OK37YAAAAGcDVExNiIiIhItlKz46DzTJbgDuwPOiP3IAAAAEAAAAATBFAiEAtS6rSqo64eiZ/6QqNN5se8iTD2XDn6OghQMLElrUGZkCIB4exZqKuR08IpCahnZpyeeADvhGmdAhkwRcW2mkEMp2AAAAaARBTElT6mELEVNHdyB0jcE+03gAOUHYT6sAAAASAAAAATBFAiEA9LRjp7VD6nhWfc1AYxlBY/ZrOOB6MTCWYeIfnmYebCUCIFofSjnYrANdPC3rd6uvXGdj1NgZg8Pe/vTwDP1K9HCwAAAAaQVBTElUQZxlnLSMRAbNKFeuzv8WCbLbKA0OAAAAEgAAAAEwRQIhAMgK3Qe7mlXt3bNv1WW0NCFsAaZr8qYCIMhpWjFEOSYMAiB2xSsyBTt51d5dHy698ch11uMFg7PvfT0DOaiHZaNiXQAAAGYDQUxLbBYRmyD6UmACMPB0s0naPLhhp+MAAAASAAAAATBEAiBnLU3wSLqJSWz3AxEaSHg1cp9i8wp256vBTbi+ImYu8AIgeaCMDndWUK9C+3zPvDS/DIU4KRNPyZQUFtJALRtN9jQAAABsCGFsa1dFVEgxgSWv0GcJTNVzJV+CeVM5uf4qQKsAAAASAAAAATBFAiEAsEbOb80ceU88dJ8VjbPej7jk5YbWBUidPzbPspG/y+wCICV0Rv2qzFL/HBOQ9KsYqXW+Tfya2Ua5D+tFhn1iaWslAAAAawhhbGtXRVRIMh9SRTsyv6tzckcRTVbXVqbDfdnvAAAAEgAAAAEwRAIgHg4XEsiUuYCByq1c/oOaMX3gMg21fTFoKiXV+KWnCg4CIHOepPDX3NhGFk+GQhT6n3iD1JjQHyuBlKIvzvQupASNAAAAaAQkQURTMQagoHa+2uhHZS9C7wf9WFieAB8AAAASAAAAATBFAiEAsbaz2JU6bwatDidsUpP5/AmX3THw3qZacbi/x/+mZswCIDEXjxBTEwJXVQZodJo/v2Q/1Ve7YIV0eDfBS7Sf0Rq2AAAAaAVBTExCSfTkR8OQFn5aF6laskdbcdTqeFIAAAAAEgAAAAEwRAIgWpZaXMfOwmzEO//ujzmVb+83relgbNSCEj03/HSb5I0CICRnHzovKS8tOMa5hZ111t1b0Bv6zjboVUPDHjDClZ4SAAAAZgNTT0MtDpW9R5XXrODaPA/3twallw650wAAABIAAAABMEQCIBtXHqhDDP4ooyFL7ZhZFrw1VXDYycxVwnzUurA0t7bmAiBYKPIQ/p8TUqLiWbyYwLuOFCV0XwYXwo8Q3QPBXGKWsAAAAGYDQVRT5fVaO3SHRTGpk1m4M7koZqZgn2sAAAAEAAAAATBEAiB85pL9J4s0VyoexytkTMrk+9PJEexPb6lWKQUd2lq9HwIgT5X+nCyvG6jdfhP6pW/AgTbp5UwhBVAOUj70iX7KwlEAAABnBEFDWUO1ah8zEFePIxIBgvsuWMCH7+bhRwAAABIAAAABMEQCIACrruj6IJ3+nTt2xqFqR5HVJ1p1CHttogVUnn63g8h0AiBpkWJK2ib1XC79nYOhAZfuJ+/M9nvnOb1WFwubMmUBDQAAAGYDQVhB+O1sUXYiCP8m+PPk79TgavLaZJwAAAASAAAAATBEAiB6OoVla69FVJbjMizyBtTHuUeXTOWsdnU/onJK33dSaAIgNEls9lPIDTZkVQUzZa8bJZXV6FePexq9Z5pQLBhQW9IAAABnBEFMQlQAqLc45FP/2Fin7fA7zP4gQS8OsAAAABIAAAABMEQCIBwbjZe5Bj6rGbBhLv47e3RDtRs6jZ+/HXV3z2kTtTLWAiAD8FkIcrVZGIs1PfTk3y96jmPuLovq0qZd8yYcHWgd1wAAAGgFR0FUT1L1wOJKylIXvLrmYoccrhqGhz8C2wAAABIAAAABMEQCIAFmLEPTMEOOjrk8BL5vf/b5XHDAlgj1tzTK1llb9xkWAiA2HcIgu6C3SyNJ4W4OBSuq5/fPmNYJgCMG66JwnT27uAAAAGYDQUxITGcZv4WQPRjCldpEIW+GKwGzb0MAAAASAAAAATBEAiBedWxgYYY2cT7ljYQZGNLG1LSnfuTxivYJWxEXpgoTggIgD/g6Exahf0C0HW/13f1tzKs8r6pLXCHODcrS7ZG8ELEAAABmA0FMVnRMnDbRzDJopLmy4oxgsXUshel9AAAAEgAAAAEwRAIgaAwtw5gJ1eNx08+2VcmQIpYlMQQpOAYGf/alScxakLgCIGK3QJ1/kfoQeyIsLLQAne5CuUQrJgChyEP0X4mr9ivTAAAAZwNBTFnyzfOOJHOLo3n/o41HvIipQd9WJwAAAAIAAAABMEUCIQCb6er0xUvNbfkg5d9SVb4HR48/Ttm6CtyuBOJNUwmBkwIgTfwzUIKZ298/1a/SvTNfcSjW+aS//kKRlJwpSfvvTGUAAABoBUFMT0hBRV9+9ti8/DX5M36FruGwYApZ+r4AAAASAAAAATBEAiA43VISH2idPozBDb5EEBaDElMepgf9DwGxMJtq2s7ZeQIgM9DcQm/x8bnjbIUwrRJ5hKvVm9J2z1/BjWX+aPYUyXUAAABmA0FMUDfW5/KHIAx0ABJ0fSp5KVyu0ts1AAAACAAAAAEwRAIgd1nSWG7iLkIyQ0Sk235nLmFD/OjY65afosq9svyFrBACIA4gbDAl3AXAQFmlD4UxFozeRHHDniNz8LltjyDeg5LoAAAAaQZBTFBBQ0FBP2qJ3bgjl08k8uPNO09GfTu7OAAAABIAAAABMEQCIA6hEyphIItMMb0tQ0xSPueUYAvCigEO3W4TKd6dbWDDAiA+Bbmxr1O5tCmy2W407W/QHmD1uv1oNh4jFvKfozA0sAAAAGcEQUxQQXykQIE362OVcPjmR9m9e36HF1FKAAAAEgAAAAEwRAIgSap3peeIt4mRt6vnBk8xXwutm9foAyMnMaWzwlLliBQCICL/H+CaR+lvDVAXlxTC9aeKsF/PD15vYhqt4PJjdYaYAAAAaQVBTFBIQROMLxEjzz+C5FltCXwRjqxmhJQLAAAAEgAAAAEwRQIhAJF1GSEAnhvyI2Nm5x9sl1WIMO5z4t0Rghs2cU5AeyrMAiA3SvjqcfJicJ+IkIx9TFWlAy11Cc1+daXdaduLvDcG0wAAAGcDQTVU6CciEJVOqF3m0q5zmAarWTtdnFEAAAASAAAAATBFAiEAqejZiCUrp2QQJwMMrVvSX34883CIr232YJPfEzpRsmcCIH2b+60nST/F2bB5G5xHNusasXdF2gDI7W0klbOJ5WmyAAAAZwNBUEMVvaCMOvv1lV1umyNf1Vof0NvIKQAAAAYAAAABMEUCIQCOcSVr8em8/TV+0XeqbbiakOAem3AO4OqBZghPtILS1QIgWNTs1XjKpgDSmSXpiuMpkfmdeLjCOLozy8AqncxE3RgAAABpBklNUEFDVPrD9jkchgBCiaGGrgGYGA/LTUmrAAAAEgAAAAEwRAIgO9apywvb6UHPPVUXmhiR1cR/xSBBkqUevUoZyQaPxWsCID39jEcouboELHEMCh1AIxslIceOWBMAbMpUeTK3s7rUAAAAaghhbHBoYU9ITSTs/VNWdfNroaucXTm1DcCXsHkuAAAACQAAAAEwQwIgUKqpRLjV/NB1RNa1FE128JAdSaeyBeGq6itz/f1rj/MCHyGFLueWSyyRc71+E4S1v+bXbIn5eeH8TWb56ZhxuRMAAABkAUH/xjuRRpZ6G6MwZvsFfuNyIiGs8AAAABIAAAABMEQCIAojZ3SDoOC85u9SFCKA89VtzR8cPGUXzB+8AKUKrT6RAiBnG0UBejfnIfDVn96olId57+4QmTAqkoeSk190W3hAPQAAAGcDQVFUKpvc/zeraLlaU0Na39iJLoYIT5MAAAASAAAAATBFAiEAuuHLJlKn/cxmWxufs24aOaFIdH05JkwHbcEjL1q5iQICIH5KsxCLZelTMWqh3Pn0hYbta63riQb7qusRZFaOwjKKAAAAZgNBV0YDQqxd+thmmF3eR3yqhQJ6PAGjNAAAABIAAAABMEQCIHuN0X3DcfOdUldTNAnH9nbu0guLZt0Trq3oI1i8eyX0AiB6sCtw7WCAG+vdZ+oKlihcuNc/UTNwvy+RcDdniBZmKwAAAGcDQUxQRUufJJvBSS7plXk7vD5XuDDxpekAAAASAAAAATBFAiEAknkoP8F1i5BraTwnZIx5zNxofyCsBiuMfmGRmhZSGJ4CICmmL0cM4TK2QwFGQs6qXgXMw6HX31l9xnh2uMzgarWvAAAAZwNERVg1FkFRYcR43xCtu4u4hMyD+9XxGgAAABIAAAABMEUCIQD7kcl7rFe5d0N/jKBOcshXX0nCvAq+AX7nOF1Ntwf3FgIgVejDqX03bvSjt9PXL7ox/mOId9vpTCYsdEjYKTQqq9UAAABpBUFMUEhBofqhE8vlNDbfKP8K7lQnXBO0CXUAAAASAAAAATBFAiEAzb3cv68PtC9QWjgvLq57ellBydrpLoQQPmJlhGEnZ/4CICXjSdUGDykp+iTwVvyrF0RE1rD1XJGPYjD2SibMfHqNAAAAaAVBTFBIUqqZGZ0elkS1iHlvMhUImHhEDVjgAAAAEgAAAAEwRAIgTa4KM5yXlHRcdolnvxyeCuqKiU+Tm1+j/nbTBUpuXpMCIAl9jYlwoAdC2sXx87K0MTEmwjOOdcfVOWaiKllEdqTXAAAAZgNBTEOV2CupElbbmVyAvtaQ0Kd5GRr2KwAAABIAAAABMEQCIEb4+K08cklO4XEIEZGBrstP2se3YR69oiDDNXc/LqTwAiAxu3bDBS6ntgu+G/UaypFsjaXqfvpT0SwQ0ykRAExg8QAAAGgEQUxUQeDMqGslQAWImsOoHnN/VqFPSjj1AAAAEgAAAAEwRQIhAJW6suwOEBNqxaqZJjHYH+ggwFiMl7fOszz2+Udw505LAiBhFIIxWVXfGPYexsBKPHJeGpJCS+YkecCoLZkNfSt9KAAAAGsHQUxUQkVBUpC0F6tGJEDPWXZ7z3LQ2RykLyHtAAAAEgAAAAEwRQIhANN8gBhTRXGrXRicGc60IMHRqOxwrk2wgC6iLEt83jiuAiBz5N16Ntt3cIF6BxK83V68eYJO4h5NsCYayBI8rXwAAwAAAGoHQUxUQlVMTNgpZkzb8xlbLOdgR6Zd4p5+0KmoAAAAEgAAAAEwRAIgC8su3QXSL4mZtLDSCXSc9b7GEQg7AuWpOukZDGyOr7sCIFrrDH/2ZUhNNBKvuRp/QwgiCgc4lehdalI10nVzaTaQAAAAZwNBTFRBm47RVRgKjJxkFF522tScCk77lwAAABIAAAABMEUCIQDSBXr/UYHtzyEJE709p4psSZz7W6TfwI9c8C26dpUPNgIge6bvEqkUguR3uVb8u0AUzzpTS+gEkkgdX576RYJG4dsAAABsCEFMVEhFREdFJY/skLd4jmDaO8b4HVg53Fs2oRAAAAASAAAAATBFAiEApzPTkIiAwzpyM25VTgNf7sjfa+2PrP5aXp78bD1TfzICIBVP4r0pGOdmvb2X31aOhqIklemVohjSV4cntmar9OdeAAAAZwRBTFRTY4rBSeqO+aEobEG5dwF6pzWebPoAAAASAAAAATBEAiA+cfYNSW6RoZjtX/4RkGPpvGt6V+xVxS/YSuvL5WmSHwIgGpZhLaLryxUhHiS6urm9Rj6hPkBb3Tll85DJVje9ULgAAABnA0FMRLM5/KUxNnBn6Y18T5MD/+rf97iBAAAAEgAAAAEwRQIhALV/dNpexxb+yTYrkte68hMH6QJpzU4oTVnMFUVwmGV6AiBiZIkVoo4piW4N6Ixv8LMVWPrgxivSPzFBf7+StzQbnwAAAGcDQUxOgYW8R1dXLaKmEPiHVhwyKY8aV0gAAAASAAAAATBFAiEAsZ+dC4cn/bU/kc3uMDPXBy/XbJ3wrHJSYXFpy620WNcCIGLh7rWo23Ln1gVDjW6qg6iY5u2y/0YXY9GdlpziE3DMAAAAZwNBTFb8F5hu7Ae0k0jSQjh1X/O6f3/SggAAAAgAAAABMEUCIQDtvROlWNMBB89peF2gAXc+V2/Ke+k9dYLQa/7zGYqlDgIgY76RZrBs3JkYhGJBn9QHc9laow2pCGHAiVc3k7G6Z+8AAABmA0FMWEmxJ7wzzn4VhuwozsamWxEllsgiAAAAEgAAAAEwRAIgaks2iLI6MrjX0TcAHR1WNEzwJlIREC0hfRYaYJaouPgCICa0UpH6GO/t9/vGnLm9ZZFAADSdNfK3SycG5WDWvV89AAAAZwRBTFhPQxfqSCD42epqEDVTqJyyYbbqfyoAAAAEAAAAATBEAiAYtF0VCldMJKgs59jDTIYH8AtlQehRQ8nvbtBuEQKFhQIgfrUZfr0GtpjS7ZIMKgj9E37jf9TXTjRk+WMtSyjd2I8AAABmA0FNQSUJ7gW43wfsdQRuJLvxz824sqGDAAAAEgAAAAEwRAIgTVW2u40Q7Qz8cj1NSI8Tp4H+Z38u9qNmWqBuD7PRMmoCIF5S2iswZi3PbwWePN+tVg90ceE2i2OzGIjk5qvm9bcXAAAAZwNBTUJNw2Q9vGQrcsFY5/PS/yMt9hy2zgAAABIAAAABMEUCIQCCaKY7h+9/26kSsRtXrBI4PTc+X4XFR2uxXkNcexPEYQIgYJGdepASYnGwQODHBFW8M/LNfD2A0EMujV6/zpJaB24AAABnBEFNVEOEk2z3Ywqj4n3Zr/losUDVruSfWgAAAAgAAAABMEQCIH0+uqDk9DYxFQBLrrKxSlgfD7AvIC3uVQKLrtVSuiBWAiAMsp/0EjFXD9zko25lc4B/3RIuPRfqLOMwIs67nsO5HAAAAGYDQU1DdgPeLqTLzrAlARjeA/y3D+Ho6TUAAAASAAAAATBEAiBah1QI8OnUGR4fsUJMbfDFONvAhoremMVby3qAt9PQ7AIgT88b45jMXFBN9z360rAIhevEKrMFw2szFQ0WNVocftMAAABnA0FNRRJRMzX/1dr8IzTphiXSfByoS/+GAAAAEgAAAAEwRQIhAPxYmxVWkGtnh/XhV2cUjkNnFjWxHdPahwn5FF9iSYSwAiA09wvOmAvCDcalN6ik/9J6kXEcKtKV4ygcQViye9klcQAAAGoGVVNLSVRBwY56A/iYZ5gyNljdhkX5OqeaxckAAAAJAAAAATBFAiEA2/jxhgDgcHxDjIOCb4KUk8sRHMTLZNRPqJit6MXLmZ0CIF4QWlAK8S3PiO73TuqB4XLt7eJTVMhCf7ymiMXsQ+9SAAAAagZVU0hJQkG4k6gEnyULV++oxi1RUnoiQE18mgAAAAkAAAABMEUCIQCw9jUgXCpOh0hZlY5IQ7usP7dzJMcQ8gcKFkzR/23tVAIgeUZ3yKFrRNVJr1R2EsxNvevKs+gCvVPil/E4PRAWdfkAAABnBEFNSVhWQ5O41t6uqPPXOaP22bRB2O5hmAAAABIAAAABMEQCIHJK/CqhGtfbis2QJutSyJL9xO646xh4joFAfZ+Jgh4AAiBSt6+LjOg4NurnxXCXZGK74ohmd6wJCZdB4VkXwdkL1AAAAGcEQU1JU5Sb7Yhsc58aMnNimzMg2wxQJMcZAAAACQAAAAEwRAIgEBriGyKOwt4uLHDDrAcei8oaqaVgmhY1itxTv0VSu3oCIAuP8a2ZodWttHB8+KgPdHHioMYaJ7W2xIfFdVYqHBToAAAAZwRBTUxUyg5yaWANNT9wsUrRGKSVdUVcDy8AAAASAAAAATBEAiA0qmGDV0wjERG6olxHMTQi3gWe9ig8GSwxhl3DYjcZAQIgEGLBpXT9XxFUHuOr+QwpoF7bcCuXBbauEO+/yERjUA4AAABnA0FNUtP7XKvQfIU5Vmf4PSCwgGQr3mbHAAAAEAAAAAEwRQIhANvp9RCymzYpQ9BqS7AfdrnXGe2m/lOloUByXguQ4a3OAiA8K9GWwrET+i0OmRWHFZATker3Q9ErPHc40KZEEQTWuQAAAGcDQU1POMh6qJsrjNm5W3NuH6e2EuqXIWkAAAASAAAAATBFAiEA/3jPJsIFFqabMuw13jFJJEA+z+725o4QMUnr9cngsAgCIFTJ7kJn6+9noO8xMzAH83lTFKBk2vOZcJJsP4e9EEIOAAAAZwNBTU5zf5isjKWfLGitZY48PYyJY+QKTAAAABIAAAABMEUCIQCdzNAzGASeA47btxsSVYg1IVuywrBuKsmONB9fNNaZ7QIgRMPca21kZY+mb1dgqzs4sO+jIj6opith3TAah+S7U2AAAABnBEFNT04ABZrmnBYip1Qu3BXo0XsGD+MHtgAAABIAAAABMEQCIASGMRCw5YcXHiE1jJRkGgWEA20bEgfIc0Aoao/RBQLFAiAeEBCyq2GkM39wc7zlbkVQYIsXvuQNGfKDD87f240JGAAAAGcDQU1Q/yCBd2XLf3PUveLmbgZ+WNEQlcIAAAASAAAAATBFAiEA39ZDsWn/dht5CLLCVEQzfg08nWY/3OIv5ayP40s5IcgCIGIUch8AaEs6IGYIB/lPcV8ClUPylddErLTfiR1NT6z8AAAAZwRBTVBM1Gum2UIFDUidvZOKLJCaXVA5oWEAAAAJAAAAATBEAiBoK+Ih5VRv7Ez4EjvDzXxpCqG2IHIWtYrX9+ah+ixPkQIgN5IGvMy7gDcFx6HRjOEMnyphBi2pSuCDTRfQx31+GCQAAABpBUZPUlRId/uheced5bdlP2i1A5r5QK2mDOAAAAASAAAAATBFAiEA+GaGDDdmUYJIoXv7wWf4G9sxTRdJa+9uRykJ+2WAZqwCICVmLGgPOJEi5FlSojthA0CXSB4wvgNJoZSrWtvTn1RoAAAAZwRBTVBUPxfPrSPCAUxaMnIlV9+H3/RoGdoAAAASAAAAATBEAiAE9lal8e8kmoYuwQ7SRDxnszNrWGuxd/s9mwoWzNs9AAIgFxlbBBK0KPHG/PJBNSWCyqmP3zPJEv4f54V6HHEXcIcAAABnBEFBUFi/2BU0fQJPRJiGwXH3j6W45nkIEQAAABIAAAABMEQCICPyMRkx5RCbeq59fIfUL6bywPhlQHBSte4cyWEEIv72AiAdJYG4fSPL+CDOvnufyp40qA1+sLtNd/93gLSoTXScmwAAAGYDREZJqVNrnHWp4PrjtWqWrI7fdqvJGXgAAAASAAAAATBEAiARD5Ebk7dpoB765/7xUbmEea5BmQ4N0khw/uYjSEeLAQIgbAzipk/g2gsWSLk1gwJnPuDyuQRCNBVTDBqv7nYkxMAAAABnA0RNWBZg8QtNYQz0ghlDVuzo79ZbFbqDAAAAEgAAAAEwRQIhALc108Olm1SKFQqUgMNpqUvgmks0RbCBMsTnsCoYTWhYAiBzeFMCBQYt1/Q2J58HXzBadAhiAahhn9G4KQ/2cRbhNQAAAGgEQU5DVFRWvHfdJ1xFw8FfDPk2t2PPV8O1AAAACAAAAAEwRQIhALmMroVecAcoi52gtLjt5/wVZhS4YQxFMTTPwcTklnJFAiBy42g7J7hR4gbSSsNM9l3bPMxGNybukCJndLvhR8QeAAAAAGcDQU5Xfb3Z2v3EwcA9Z5JaT4Xao5ivMrAAAAASAAAAATBFAiEA6zzvbJtU9/nbeRQOZG6IlCS2Qdh2dsUBwXEzDkQanZYCIDlwQ3f1YHY533mkG95kZ3EQR5i9FP0fYR1VoWSieQxtAAAAZwNBREMeQaVQMODQeUq/ttztIubH0Y2CRwAAABIAAAABMEUCIQDJXIBmkuUQCCqKaP3UTKUUERxaRse5FIupvM7ONyRPFQIge2wkr0R7cHcAQLXdLWbFb5pPCUEGrgtRU+mxww+0PZMAAABpBkFORFJPVKjBb77PGuG8HcyH5okvGPd36SxpAAAACQAAAAEwRAIgD56wdlFY6nVeweO5wniZE6B5dL5SaJRo9X96cXW0DvICIDkZ8rBs06+Uqc6Is18m5UF3dWCoF1XU13FDSXa6aFaZAAAAaQVBTkdFTGx7l8fgnnkNFhdppS8VUSX6xtWhAAAAEgAAAAEwRQIhAN76F7W/TPvsdl7M88K3raFf5QShkMYgCySj5eMJPGfsAiBCkjIiDyhruah6i0k3PjVxlxYFUe0Z9+1WYRcDDuGt0wAAAGgFQU5HTEUxQp0YVq0Td6igB5QQspfhqeIUwgAAABIAAAABMEQCIGntzWFs1KOtvq4AOiDczxF1HM89HR6ZG5xiD0IdZBD4AiB4RLBDXyD7pHAqPrjwGjGM0XJ09BW8x5sIs764RSjH0QAAAGcDQU5CLJrOtjGBzQigk9BS7AQeGR8ilpIAAAASAAAAATBFAiEAoL4akFA4FtjbqATN0TIaIYyvhiXwpEFJMrCGpDoPtTwCIDWtGWaLaNgFB35kRLhDR45tdkiEmRVzcXhz5uvKJ/eZAAAAZwRBTk1MKwyaO60DUbmPokDsRspilwqjhhgAAAASAAAAATBEAiAVtbJOcwD7Y9OP8URAzErMmFkuQVlWgagVTXGsdcggpwIgfgUhXPj97Jd7ujTT+YCj5zp218Seai3uwd44pcm8wXcAAABpBkFIb3VzZbElzOucbjSSF9CbBpqNiNvqzwblAAAACQAAAAEwRAIgMHwhVvq318BPLPvVd26ncVL2VT3LpXtflTXJAAKYChcCIGW8n2jlTh9m5JeGwM4h4hNEy+6ogNcilizfFXwLzaU8AAAAZwNBTlY9OCIoxUc22DH6wnSPRzTZF3xzMgAAABIAAAABMEUCIQDJhDKialrbQToU93kizLt7SGffwev2oLnmVTGZ9IgX1gIgYI9NpnADLau0j+XiJweX0YzMhTLbKXwmtdLVxRfEFBQAAABnBGFFVEjpWiA7GpGpCPm5zkZFnRAQeMLDywAAABIAAAABMEQCICNfZ3Cc+34EfJRTPvKQDThKNPnqhyXxBruoVPT9Yrj2AiBT09PcSA+SDdqf+ZusUrMrCij0TLDoTKRi3oFLmTG6KgAAAGcEQU5LUoKQMzzvnm1SjdVhj7l6dvJo8+3UAAAAEgAAAAEwRAIgEUgl0+VaCGVRyNlgqzIsE6PRjOf/WAPlEeUDyKpRHQgCIE/h2DMEYV6YUhZ5XFrGS5QICvzD0GXVw4LszrXrfhgjAAAAZgNBTUOeWmSUP59IRj8HzAV4u/ni5n8PYQAAABIAAAABMEQCIGKlUgQuV8JYq9sBBX6BCwGOz/u/usbAY8v1Agj9xTM3AiA9Bm57L+yG2bx4tU4KmLKA3Kl8VZboZbJpK8wwyE044wAAAGgFJEFOUljK5yp6D9kEbPaxZcpUyeOjhyEJ4AAAABIAAAABMEQCIQDpt++IfUnAM4KaXa1ig8iwpR7S3nPG17x+EPOtTP6rNwIfBD2RJI2tNUwtFFV1zaQFcxSUtgoHoqW1HqvnaQfqLAAAAGcERlJFRcK9ellzkfMdLjbCy3afzg5b1tSCAAAAEgAAAAEwRAIgIuIRmo3uf3S662lo61sauqMlA3MhYYbCG8cNImLcYZUCICumNaPFBqDLFWmbxy0z92bSkZbO0Brb30oDpY69NQPvAAAAaARYQU1Q+RGn7EaixvpJGTIS/koqm5WFHCcAAAAJAAAAATBFAiEAi7D4rifR1Yu+0LLKgocXlJr7XNQB0xSdQbhh//oUclACID0DoSmRDOfbRG/qFiag8bgJLKR7gptmz+dz7pypz8r4AAAAaQZNQVRURVKbmcyocb4FEZsgEv1EdHMd1lP+vgAAABIAAAABMEQCIDFs3/gdB0vy/QkmUPLhqQLZU+Wa9z4kg3qU9iWPr2XAAiBcxpLu6gcormmYjqPYlRt/g7pyWTaz4he/nxwzhoQMfwAAAGcEWk9NQngXWQHpsECQvzs9PLf5HKmG+xr2AAAAEgAAAAEwRAIgVAwRNR5QOwSV2q/GfCcMV7kOX2jIuH7SI1kCFy2lfiwCIFhNmSq2LgJ1k/7WdarhYnawcdMhqp63yxKOghBN57j7AAAAZgNBTliXftRK3zSzyFFfn81pBUFFPQZOeAAAABIAAAABMEQCIF6WCGMTkJCpLG4kZcI5dyURGJywqz8eL0avHHB129U6AiBcAFWWNhIzbp+ym6rOnLdbN4uRAoJc8c5Pdj8aQ58N3wAAAGoGYUJMT0NL5pLI1yvUrHdkCQ1UhCowVUbdHeUAAAAIAAAAATBFAiEAjiGG6U3C7idQVafOWM6YjPDov940WkhqsqYBOsSJjTYCIFuGOg58C90fDThP7BeoJSpj25jeSklfl/KV+tqSNsd0AAAAZwNBTln5nVjkY6LgflaSEnMCwgoZGGG01gAAABIAAAABMEUCIQCwVSj8OIrWGrwH1Apxkz8XaPYE6E239UJ/3tqZ37hrWwIgfeu7uSnnM7VctwWGEfSlnCN8xTd7G+eUvCkk6YKGoFEAAABnA0FPR4V4UwIFzsvl24P38p7P7shgwpfCAAAAEgAAAAEwRQIhAODvq3LRdgilNDZMJE22HOiw7DHt7PeVPp4EnNyJhJvIAiBSotAxOr/KNxBzNoAoepYuhcAXytgg0N/layraWhZvIAAAAGcEQVBFJCbqH1lfZWe3BQ+7ok9qZuGdtNVgAAAAEgAAAAEwRAIgE599kgh0YZ4H3CQdacSffnPPwARYq45X7i9gVxx6CzICIGOejF+TkCM13izGc7qUTTevKxDz/Ln4FndhHPPFTxZXAAAAbQlBU1RBWDEyOTQPjHk9vDChhRONXaAPEGKQsm42xQAAAAkAAAABMEUCIQCq7VxWRgiYYkF4NerLsLnEUL8ex5IMOGS2AWQKve6xXAIgD0d2xQM//u8TokrsRx8FfRrXFV4ZLO+dvBbkJvp8rWcAAABnA0FCSbTq9IvX9yNW4QGcFX6RuBocVBBzAAAACQAAAAEwRQIhAIinBmimP9KnRMRc74WtvMOmfhkXGookbgr94EVmmcDoAiAdD9AXefft5lsziTxtO637g2vJECZ0Q24DbQ0Vb4GfhQAAAGcDQVBFTSJEUoAaztiy8K6+FVN5u11ZQ4EAAAASAAAAATBFAiEA8kXaalshL+m0nBp80ju3Xd+wbXKVq5X7ZoQUUemh5bMCIHFP4UufR9UL9U8gjeb623cZvxMJQzCykLQeMamCKBr8AAAAZwRBUEVEIJwYCP6/bBq3xldku2GtZ9OSP8wAAAASAAAAATBEAiAa+A26qGa5vJhDctil+8XZtxmWgcYCk1pHQ/HqZ5QDcQIgHKlGPxt2PGK98nh/jmOF6wHrMvzH7MIfAPvsnrJS1LgAAABnBEFQRVMU3X6+bLCEy3PvN34RVVTUfcnWHgAAABIAAAABMEQCID10DCdMm5z/nNAzg26a3GOh11Xn2zaI+gwLYFRpj/CQAiB2ZvvqDjoryt4FD6zq/ht9u8LA+NtN/DchEIGJzfZP1wAAAGcDTkZU70C4WdIeTVZqPXE+dWGXwCG/+qoAAAAGAAAAATBFAiEA8kkdFOwsTxBkjK0qXvPRmouT/cehu3jU4UR9DJlCIgcCIG+LMgcrd8GWj6O+sZ3WNzhDr62hDZiG36iPxGQWaVpnAAAAZgNORlQZjRTyrZzmnnbqMws3TeSVfD+FCgAAAAYAAAABMEQCIBkl73dRqfFGAQ5DqXhgVcj4189xSYOzebxNH80WbQphAiBVmn6ZFmnW3xJEJuqhnjTAUoZV64mVb6oNlTAfqsNcwgAAAGsIYVVTREFBVkXsal2Iv1b9P5aVeuZZFsafKds1xQAAABIAAAABMEQCIDWEoT9tynXeTwTvCtH867UqPJoWzJaTpACQdPFdk1K+AiAqmIWsvA7ZFF2+ZU1tocFwsTFP2c82ue/Qsvlxk8G+IAAAAGwIYVVTRExJTksPd1rWnjyT1ZnTMVoTC9gqDN2jlwAAABIAAAABMEUCIQCBSqpEhIrWZAn6jR/Xny0MSyWMSMvmKVwYh3OsEBHn1QIga/673WfOHNNgbxwH6AK0ZvCytvtXEGAGRnhKYw/KG4kAAABrB2FVU0RTTlhcavcsvXQLkFKMj+ImElQTtr1+WgAAABIAAAABMEUCIQC9xlVWRpx2CcjisYFUTuICJ9D5meT6+zqp02l4RqRkSgIgDsLDYYzvdMPAKWbEhkWAVoXJjetwSmgogyA21Xv2XnQAAABqB2FVU0RVTUH6XieJOu5IBSg9huQoPaZPjHLdVgAAABIAAAABMEQCICZ2Bein1y5KZtEe7NctuhqXu1Xyb9gClmEGHt6V9l4tAiBoKN0XrqjYYkMX8t5h7IskWA1vK5cP0O9Y0Pfvpmd72gAAAGsHYVVTRFVOSfu2s03XcnSgbqLlRipeC54jzkeOAAAAEgAAAAEwRQIhAM0lrzQWv7RPXX0LpBvtnxQRCQTSfIPlBrRu5kixpLSTAiAfTK5mlG1G1dD7ERPdar1KPQYmx13rMabS199RYU/p5QAAAGcEQVBJMws4IQ6hFBFVfBNFfU2n3G6nMbiKAAAAEgAAAAEwRAIgNV18IVEazyLNr0yorAPIhT9YvQ+LuL9dgV0YR7CgB7ICIH+Hh66BACheViM4WUJpg2sCFjJ8+zMCwIzkAYK0Txa7AAAAZwNBRkP1dv8Nfkwejyfb1QMh6V42qWWYXwAAABIAAAABMEUCIQDJy9Y6n9lq9shbzWtUMyY5PxP3Dc1eUlXjM0sASlXF0wIgBsr2WfMaIJ0m6Re7hdG0YelV45IxoLrdsrCF0z+/boMAAABnBEFQSVNMD74btGYSkV55Z9LDITzU2HJXrQAAABIAAAABMEQCIHqWuTS5E3zEgN4HJsgrSbC6kFg3z51+LZc1SNk07qheAiBx57gVFKK0QyGcFS0onRZ6wLG6nGT1IYO2S6GuNN7qSAAAAGcEQVBJWPUev5om28ArE/izqRENrEek1i14AAAAEgAAAAEwRAIgB8jeedFRSV2T2ht1dgPASKvF2FPfaU710uS5Da2NZ40CICmvwqxE0Mcw2+oUHsM4vFgyt8VLjK7OZx81nBc3Q0GDAAAAZgNBUE3IxCS5HYzgE3urS4Mrf30VQVa6bAAAABIAAAABMEQCIEe6y+6NvxleQQl/EPJfmWXtTEN/Tjfmdx+KH3hPqJQfAiA73JU8zpOVi9y3HLtsy1IT0SNFaq/6ryFVgXHUNhFfogAAAGYDQVBPrrBHK8OxWNwWkMeXnuRbdiQ7TaUAAAASAAAAATBEAiA0ct4IXjwY+i5/ckA41ri/py++NLoufcGVDdgJI9UrwQIgfL9ct1sH+LiJPPpZ+VjaCgLJQHZVh8GDIY2tgNeMVlYAAABnA0ExOLp9y6Kt4xm8dy2033Wna6AN+zGwAAAAEgAAAAEwRQIhALKh8Kz5CKeZNNJqKGa89JQmbZCCFis8YDfds67a7SOHAiAILrd24cJqwkp5VyZtVIAWw/ZUZFk46OLNFkVBEjEC2AAAAGoGQVBPTExPrfhuddjw9X4CiNCXDnQH6qSbPKsAAAAJAAAAATBFAiEA7P4AXZultjqV+8BOlSE68b5Cfk1XqXO/iMgpDPuwAzQCIB1kAdt7cBC3y3YAhYJ2tAexnKjB4kec110+xUT6p/dXAAAAZwRBUE9UFsHluvIbn6S8nyw3Tk3Bn6taxdwAAAASAAAAATBEAiByUt3ioF4390IrgS/96MfIcPRIchNO52Km1a9SXs6j/wIgRihPzB+J4kkMKdivW1QiKATVvYTZAP87pMk/NbA/70QAAABmA0FBQWq6FiPqkG0RZMuwB+dk694lFKK6AAAACgAAAAEwRAIgR9xXRQCIs+DA7IzkAo5KNW5pei1mwx1WEV4NJWtPujECICFgoZCFyy/P03d1/jo50w7k7QNpfrjqSYlwWLmOvCUXAAAAaARBUFBDGnqL2RBvK42XfghYLcfSTHI6sNsAAAASAAAAATBFAiEA2d+qWS9YPBhW2Mqf04ybSqP6QvOnKIWHbmVJ4YDUtGYCIBPczKAAA4YDbylh2qVmyZOKlA/Cid1hxWni4IMnuklaAAAAZgNBTks8RbJDWfsOEHpOqla9DyzmbJmg5QAAABIAAAABMEQCIGJvbjXp/OMYhTfAynsClAOByO29LGhrxNWkfS2fZvE4AiAfodrQqiPBvnrHK67eGzJ4LwTOegkB+ZUil5kD2NAAbgAAAGgEQUFQTNBZyKTH9TxDUtkzsFk0m6SSKUrJAAAAEgAAAAEwRQIhAKb+DjedrKkaSU27VDzjevpF8nbC1xs6u0arjoVZGqW/AiAtYjv61CzSlFPDWO6FUe3WIZy4PFf7duZwsaVuogbVaAAAAGcEQVBMUGknWsVHfzqdwFEYC8VZFAvGR/jpAAAAEgAAAAEwRAIgUieOUJNZH0SrRWhxzNJd3jNmeP7RhjONtafCl+u/1/4CIECwLxd7t4p6yYK1bD5U4BauHlhfOKXCEC4JGBrvtE/qAAAAZgNBUE7UNCpX7PL+f/o3wzy49jsVAOV15gAAABIAAAABMEQCIDIR/p8SGgIZpUHiJYd0eKlnbXIedfcN3lsbKrEBfUkPAiAk7FUeEzGf+VU3U+bvU4bs7/MI7XMS9Cr314Ut9H7G+wAAAGYDQVBXQQSxNdvJYJ/BqUkOYTaQNkl2YMgAAAASAAAAATBEAiAaw9rshAteWvjej+5F+W/oD5FV72gzKUZVjDCeA3VG6wIgW5BAs1CX7WUtskmV+3KJ4ihyYRYVK/DqLXK9h+ZudnIAAABnA0FQWZWkSS8CiqH9Qy6nEUa0M+e0RGYRAAAAEgAAAAEwRQIhAOlNgxmEEltxjbGKglLNNKwWc4Vypv0hG6+usGfIAtU2AiBRGo455R8epzcEiXBNyUOPeaAMdc8Df4NFhsG6IrLh7wAAAGcEQVBZU/dBNInEdMpDme7mBHFscoee6jYVAAAAEgAAAAEwRAIgFb3b+j54r799ri2a9NzAfIRlUlRrYNmQZUa4PLiKIaQCIEBn4giwz3SmBCytm7JWwX9P6CLV0bdxoV5ArdKuhoRcAAAAZwRBUVVBfjLIcnzBndWaek0BuVrhy/yPTHcAAAAJAAAAATBEAiAD/3Y17JgSIxJW+2+UoCMscdIi/rgiTs5KyHjmCwGNeAIgczlQ6PqSM2+mF4ag06nWEqNW9cWLRsLMlhLNA5xLr/QAAABnA0FSQakufIKxHRBxarU0BRsnHS9q7331AAAAEgAAAAEwRQIhAM5GiaraLRgS+C7iAW1OX6Seb46qfyei5fjSRG2LWvZJAiBbnLTLsCkllZbdfKof710/OMfeKdoiHxyMBHjljghYAAAAAGYDQU5UlgsjagfPEiZjxDAzUGCaZqeyiMAAAAASAAAAATBEAiAhwBhuEOzDJd60lB5u2+XTZjjPls2ksIRp3qV7UIoSbwIgDwNdPQSf+H+8Owncy4l2dbb0nBfoVrrQkkGPeEhL/VsAAABmA0FOQ7vjGbc3RNudVPXSnffYJWt+Q5lcAAAAEgAAAAEwRAIgQeYmc2QaCTrtFCvBcTW5kS01qgd4fkUh2PLfmQcr6ZICIFMCGtpSr0qhMcywym4PRcPHinWY2+a7VxuK2xdX7hOoAAAAZwNBTkrNYrHEA/p2G6rfx0xSXOK1F4CxhAAAABIAAAABMEUCIQCT3/ak6IakxkIXWNmIvT1etZ4JOrHwLz0O3aJLM9rv4AIgP1wT98bd5BCxV1CWVh0f2/psubs1WC51QaFFmHTIpYwAAABnA0FOVKEXAAAA8nnYGh08x1Qw+qAX+louAAAAEgAAAAEwRQIhAPz59p53SF0VUebPN2dN+r/xqb5SuUfrFEJqRGhHc88lAiAaOYo47435OnOtBb938wKqM1EXjXujZ4UOXz4pIoylcgAAAGcEQVJBVzBoCsCoqZMIgiOSUmX9ena+uH5/AAAAEgAAAAEwRAIgURgXHoAChNpw58kzoeIONhs1t4oWfYOe8GeZLy02GbQCIHXHKDI4+yTg21eNhLdnM4EQahxkTx3Yr7FvlHJfWg97AAAAZwRBUkJJW//EXXQMIT4ZtotA6e2JcF9JXkQAAAASAAAAATBEAiBAgUsxbe2NbHUzAfSIQk70ljk27PBxdJd3uOj0/e973wIgFB3ArLDNzNxEaXdo7RqpGraJK+jNuimQey+7i/5ZTGMAAABoBFJCSVPzSx22GsoaNx/pe60mBsn1NPudfQAAABIAAAABMEUCIQCkYaU8oudxC88FbhGM+w+a38LSkxBJUBVG3i5hXT65HAIgKPs3P7/p/lu6j8gFUke1mVTcRiQsdYSwRHZ+2eYH4zcAAABpBWFzd2FwrQiHc0Rhr4xgMwaL3kBH2+hAdMwAAAAIAAAAATBFAiEA5YAvauHiPlPosdntGeyuJjq1Hn/d5l5YSM+tpndOi/ECIBghGhabfy+vxLSN28LLKVN9/kxQpGs0meajQwg+3w1nAAAAZgNBUkKvvsTWW8exFthRB/0F2RJJECm/RgAAABIAAAABMEQCIHH27Nj1QlgYgcVkJDbKMJs28t4njQHHDmb41SucxMfOAiAYIB5cQ4f7ejYqxE8GcEEJgqhM/VfAzdlM5kO/J/tQwgAAAGcEQVJDVBJF74D02eAu2UJTdej2SbkiGzHYAAAACAAAAAEwRAIgASDRlYcAyb8mJXEvGWBGb2BNwqLhHTMwr8sTqscwZ90CIBUQnCQINA0+RtMYlbUFZBYKjPuPzE0Vktsm/ynW7WuwAAAAZwNBUkOscJ/LRKQ8NfDaTjFjsRehfzdw9QAAABIAAAABMEUCIQDNUggBbHXwK6MN6bSG6c+m5EodSUkJ/xYSUWgIIoL40wIgDhwoPxFVPAgKmLHWLfPSrkCS2vunm2Iu9M2v/6wniWYAAABoBEFSQ1jtMN1+UO3zWBrZcO/F2Tec4mFK2wAAABIAAAABMEUCIQDb9+qRORuFJmnjZmBLQ2KG9KjrhnQb2v3/SYCKWBRkkAIgUlJKEhm2n4s8yi2hriMUrKVMbN2ieISpIobXORdyPisAAABrB1NUQUJMRXjNkVOLkbS6d5fTmi9m5jgQtQoz0AAAABIAAAABMEUCIQDRj7IVXDtKbhoOtn4lSHXB44khvmr/FL6IBYqrELIK6QIgQlw5Jlb9juW7Q+oh1kpVB/DgQWu/1efiTHGB9cLjSsUAAABnBEFSQ0FipnONiH9H4pdnb6sFuQJwmxBsZAAAABIAAAABMEQCIC0MP0xfJ5bpcTDvOtYMcLxhzpSH6O9g3/DPis1mHA7oAiAWHJon4GS4mo/TUkv6gYgBUY+Y9g4WzUwPaHjgX1FC0QAAAGgEQkVBUq8WJJHAshkAwB9MwPcRAjiqzevnAAAABAAAAAEwRQIhANJJ/Ebo1zO4PD3OFV+AUUkvh5gNdb6LmM0NO6qmE80JAiBcu8bkfy7eBhBaoRs6044nZT6bYwD4zIubXXtSzJ44RwAAAGcDQUJUuY1Ml0JdmQjmblOm/fZzrMoL6YYAAAASAAAAATBFAiEAsGkxKK/2BZ4nEQTFPZBWl+IXCXgwCYQcKEF4+9CXU2UCIHNJFXvWiPoTUdFPVOR1SIfyGEkOnFj95wO+f+pORIW+AAAAaAVBUkNIQTbkMGXpd7xyy4bb2EBfrnBXzcf9AAAACQAAAAEwRAIgLWwQ8j9+FdqbMb6N/kwG9i8FtuT4k8DJ/VHT+yP1AAsCIAlZ5U/llJTdRfGmbH839JfhtuCDdXrz800veHeVPo14AAAAaARBUkNIHz+dMGhWj4BAd1vi6MA8EDxh868AAAASAAAAATBFAiEAvhiTCHONtqrleS9DD2KJJPDnKfUMf1hC5Gy2PrLiz1wCIHoHthxTqWGV5mvCuCeaMJ1Hv1Yihhqjs9lvqO9Q7SOeAAAAaARBQ1RQey3xJVZ4FaybV9oEtiD1C8k7MgwAAAAIAAAAATBFAiEArwmydFG3lP4dkoDymrzAu9Fm07HpCXeZRF5z7ytSumQCIF3yUDFq+dJuBVzo1dRLoYNOitnWtbtMhNNGdovO3vU8AAAAaAVSQ09JTiUnOUh8H6Zurq587UHWNYqyprypAAAACAAAAAEwRAIgHgpXrsmjZ7isnJk5FlD5YxqvGTaJ1glCeA+UKrimyTACIG5Vu9Fu2VDQCvmMCeFH5eRF2vhXW7IZ90V8NC3juLaNAAAAagZBUkNPTkEPcbjeGXochNMd4PH6eSbDZfBSswAAABIAAAABMEUCIQDBwI/5qVop2PzBrqG4nSfzjvTfDgYuROAArzn//kONvwIgW343yswRcyoCCe9fLbQB4Z9xyVWZrpedk7hu3tIS2FUAAABmA0FSWH2Nr/bXDOrRLG8HcEhVLPiRMKKxAAAAEgAAAAEwRAIgT4YTbhpKdjYDOAH19VZ972uy20v/isVgTfc3tZku/AcCID7A61IzsytDTDHKVIao3LWkS7W4bslEToCIc5YdKHvcAAAAaARBUkNYEyHx8apUGlbDFoLFe4Ds/M2bsogAAAASAAAAATBFAiEAiIBqMpPqfcMR9XYjKXs1ig8Wv5HPvGaAQTy7GDYoghACIDpMH2dwf/K15G5ZnQGhxEJY2xBH8UQs1JYZKpGYfb5aAAAAZwRBUkRYuOLiEB7RHpE4gDzT4G4W3RmRBkcAAAACAAAAATBEAiBMIjbY7lgsVZ1qg4x+l+k+DgZhKfx+6Xs/seGWAQaL/AIgK8Xv7MefHIWDz56G50EnLBaTa75FgmAQo5wli2LG0tgAAABnBEFSRVM1iqc34DPzTffFQwaWCjjQmqvVIwAAABIAAAABMEQCIAYqA4Hxw6ooYdywiZedU4Xbs+YGPJyHp/4a0yDAdYGlAiA2Y4Fq38OgkzSzCjrRBVYsP6WbtySdpi7QFPYG1IH1VAAAAGcEQVJHTyjMp29ujsgeRVDs12H4mRELBg6XAAAAEgAAAAEwRAIgAPCOn8vZ/7XHsGyJwVC+WPXA2YbcyoZRDLz0H9MKy6oCIAQWCnLwmcVNlBZGWahsL0zUtIjbN4q4pnfjhOs/OTyyAAAAaQZBUklBMjDt9laGGKAMbwkIv3dYoW92tuBK+QAAABIAAAABMEQCIBQGgLaAFk3HW0YlUyyR7IC6qVRgDP0zid+Dl6g1Ne3EAiAu7vltJQloieDSamuJatuYmEUvDLq3jglLxv5LUr4e1AAAAGgEQVJLRakkj45A1LnDyo69jgfpvLlCxhbYAAAABAAAAAEwRQIhAJV1SM/ywhfnfbp1PmjILDvyZNTrl1VwYDBIXv4pUBe8AiAzKfLnoDJKq8bA9UVo1AvlLxqDtMvy9txP3JTmPhNxJwAAAGYDR1pNCmgOUD/ZrhS2JETHX/tL7x8QVmYAAAAIAAAAATBEAiBcNQtMCrtyM04O72b6AY14uPjPyYWsTNTag/itcPL7cAIgBgg9OueIWSN9yFePgzINim51YyulVuz+bFJZSLz1WVoAAABoBUFSTU9SEzfe8W+bSG+u0Ck+tiPcg5Xf5GoAAAASAAAAATBEAiAFbpmfuGT9xANtejSpVLT7pc/+GHGGQbXMB4UlvQZZZgIgH/RlNd6sP0TRFCEsR5xYjZAeq5f6Xh52XuqxuSltzl0AAABpBWFyTlhNEzfe8YxoCvH59Fy8q2MJVil1sd0AAAASAAAAATBFAiEA6yNQMlNxpTVO7O0jxuJiVuFlANre5aOruXXCjGpRotsCIBRGdt1EsmtkpQZetEVNZX22F+dkSkmWUnvysMcX7sQYAAAAZgNBUk2p/3JRif4A2pxfJ6WA3Gf+ph4/sgAAABIAAAABMEQCIAoh6ZCoFLBZ9NDefC7sJpZNi3yMirMMOp14kkhfAdrXAiAQDMc+k/xtuJBkn+S2lrF1gBEttFnzkHBqz30abMYz7QAAAGYDQVJXNRyqkEXWUQe50xHZItFYh8/WNOQAAAASAAAAATBEAiAX5RcvxMc0HrJT7sFcV9VTSoYdlSTydgB/PEyyIYhkeAIgBMNqbMHZB/GbDrp9ub0x3LNfEnlM7+NCarPI9ctixZMAAABmBEFSUEG6UJM8Jo9We9yG4awTG+ByxrC3GgAAABIAAAABMEMCID6wH0YKvCMlzJzuwXp0hCIvS9In8HnscmLxNVjOJmB6Ah8bEkZwQWaN8zOitjXwqHEioxNHy8s0r7dqegHaxiErAAAAZgNBUlT+wM9/4HilAKvxXxKElY8iBJwsfgAAABIAAAABMEQCIECdTulZU0Z/SLrAxc1MlJyoU0pe+b7nLJyT+cqsekwvAiAwfDPvdT4w9g3jBOlw9r9CnL8Y2WA6kmF6HVFdivo1dQAAAGgFRkROWkEXXq9P6woUe1p3VJOJOSCUvzixmAAAABIAAAABMEQCIB3WLR88+ZZYveb1xnu2iTM1p18kWZvFi157Pk6GIllvAiA8nCFFpp09RnW+zRgro0y2srZtLYYARZJzDeC4IhmuPwAAAGoGQUJDMTIzn/T1Dv1AyRX30Udr82rLiQjgxW0AAAASAAAAATBFAiEAqiWsHMIS+PEs0jreGfBn6dorjJqBensRx764BNuftZQCIDH1VDKt68H8hobpB3uuIDoR95hBdtHr6s/RZrcPZeq/AAAAbAlBUlRCTE9DS1P4JEAnR+UULQSJL9wnxz5kYOgAgAAAABIAAAABMEQCIAmK/R+uEGGw6n4Gjvg2hVnmedVC4TGZoW+U/klxQ6J3AiBZOycbvOvzZwTHIBIUbLjNh8hL1KG/co2uWi5ysrQbnwAAAGkFQVJURU2bg/gnkoq98Yzx9+ZwU1crm87/OgAAABIAAAABMEUCIQCAw6SoUoOBu/rp34Oeg97kZwlcR1nKG0/AJO3/7JQFSwIgLJ6+YgagdLiD78qfgUKScuTYzmNS13ZngtXfSKVxRNcAAABpBkFSVEVPTol6v4PwxEuGy2fsVsAGwA1WZZUXAAAAEgAAAAEwRAIgVZATWXRJYrAaD0S3rWopVXgYZhM7ukyDZcn+RquvkGYCIDKIEXqFuQbfu5cySNUS6/HpuIjdC9H0SIZWshtTb8+YAAAAZgJBVOVLNFjEfkTDeiZ+fGM6/viCh8KUAAAABQAAAAEwRQIhAPasjd7+Yr1SMCGjcq4nSb2WLgjEr9z9QUALICf+JBszAiBXeUi+ToXHx1gdX7YjkeyMc/f6LRjotFKUvPPOCzTV5gAAAGYDQVJD/uL6Ut4wcxbZ1H/+N4HUy6LE9v0AAAASAAAAATBEAiAWUZqQSY3wFGQjAAtKbW/2v7a7xpSX9kU2EU1wcRVV2QIgB3xi/PIjZtxaLmP7GyHeohJzA1sAbHjGi6M9ihTEhVEAAABnA0FMSWsLOpgrRjSsaN2DpNvwIxHOMkGBAAAAEgAAAAEwRQIhAPULsbfoXamsEExCwLu739NGgsWPyj9S8e23MAPmzROFAiBHeR0CmWrfKwfv2uTFOJzL51Hqf0ky/iKDA8U3cX9Y8gAAAGgEQVJUU/AT4OomyzhrMCF4OjIBvyZSd4+TAAAAEgAAAAEwRQIhAOn+6Qqbibg8Hl0pkssugtEmH3MDE2uom1C2Voe3Li9NAiAjHv284fbrS5bVrVktGt6H6K5NbyWhIcLtyRobLtETzAAAAGgEQVJUTRnrqn8hKwneKu4qMtQDOFU8cOLjAAAAEgAAAAEwRQIhAN1YA9kV5KC9AjTXZvDw8WwjLWMGkNQXNUXRqQ6kkcNmAiBfSPS9Jra2ZFD2DNRYY1EjL/+hlTllh3z/wURfKZ2qNAAAAGcDQUtDHKQ6FwutYZMi5vVNRrV+UE22Y6oAAAASAAAAATBFAiEA7pYBZRvLkidDcnDqRJHIrZu/s2y5ckPD2slJHyoOH8oCIHgzp6brrA7aZQXkyhLThZ4rZjxoXiYRM/4m1BY4aP2fAAAAZwRBUlRYdBsEKO/fQ3Ko32+1SwGNteWrdxAAAAASAAAAATBEAiAr4sStsYXez6qFsKq/Jl38AL3nxwtPWNPKaH2HFLguqwIgCRZoWEbq05So/sfp8YK/J5sSEIYa62+8i0eMdrqbS4UAAABlAkFSDwRnZAOlFBK1P9Jk/0ij9wo0g5EAAAASAAAAATBEAiAqFFy9xBgayjJUhpnJTDunbfR/Gbdwucqk86c9VJQP6wIgc1foOPvN8gsCPNyldwmEZupfR3/by4xYyrQxPlKoXlEAAABnA0FSWHcF+qNLFuttd9/HgSviNnumsCSOAAAACAAAAAEwRQIhAIRpNUWTsJFfVBLbQwU67me21bDwulOu0K6QInJst3luAiAtdfwYGCr9AUx8qID2VQtg/NyuaWVUnJ/Wdg1fj8tfqAAAAGcEQVNBQ2kTzKu8M38Op7QQndggDWHHBNMyAAAACAAAAAEwRAIgChVJ6mxQfCEWV9ToyC6uErjshuV5rVMq+dYqqQgDezcCICRHuk3LhXhMqp+fzfPOQ1jz63CY3meEeCHkGs/oAxDmAAAAZwRBU0VDdbAqoQhKErhyn1rL4QeL1FCr5VIAAAAIAAAAATBEAiA2b+1E7Mq5/Koomi6QLPE7SfWXQQuY1wsVxt1b3TK+swIgQ2h5MJeBPYzLnwggIuePMuNPKVgvHdaaO17Kg7hw4HAAAABlAkFE9tvoi6VfF5P/B3PJsSdTAPgwkU8AAAAIAAAAATBEAiBf0i7QiQ2ncxNS2h3tvn4xy91LgUUzUc3TXqUV6VX6SgIgQHoDH4x3aCDy2Fnj9dItVcveS9NI3KjK9xxQ4ezUpGkAAABnBEFmaW7unl7/QB7pIbE4SQ0Ayo0fE/Z6cgAAAAgAAAABMEQCIEIT1I9cjFP+n+EIB/d+SLzjlBQrGxL8bfqFHB22acXJAiAR01mQA/VHk71AjR8AF7wC1v0PqYF92KjyqMauqfkjWgAAAGgEQVNLT+7uKmIjMObSA2aR6YPe6HMwWIYDAAAAEgAAAAEwRQIhAN6cEBGG6ZsybTW+MXZBUu0fal1nhrgJwsOTSDd61QoxAiBffQs8Lh9t1xexqnsWaqrkvZ6jwE4XxPCsDSd10sQZqQAAAGcDQVNNJWWuA4Vlm63K2hAx23BEQuG2mYIAAAASAAAAATBFAiEAzVrAIKbGMjkHRsPnVZCO8H8XmslQqrt5eT8zwrxfdI8CIBrIprgoTlK4kL0frfWRwcBKowQ7OwD8M0tPqAANJymaAAAAaARNTlRMLE8d+cfeDFl3iTbJsUX/VoE/MpUAAAAGAAAAATBFAiEAtS0+3tH25CU12GqnJcDwCmhfvnMKmGtFWBwjbdnN7c0CIEv/y1ZkQ8m0NuEjJiCD0s8H3ckU6HrPQ8bSNxm2O8Y3AAAAZwRBU1NHfFLhnk01AYm837f3oIaBF+nxleUAAAASAAAAATBEAiB0/Cq5mCtaOLkSIbJ35VD2wZEKjsaqOSaA17Mmcb2cwQIgDYnsq7gavJu4SjQmn3b24an5tZfHwXfTSdd9dSEZUFcAAABnA0FSWLDZJsG8PXgGTz4QddW9miTzWubFAAAAEgAAAAEwRQIhAOHa0Cj1bn4vCH6/MxPx3TSu6/YKSHkViF0DuMLI1+pCAiB2Dm1TTw7w2+ghTDEhrtnbcRS/U48UvVvL6X+N5bFOCQAAAGgEQVNTWfolYtobunuVTybHRyXfUftiZGMTAAAAEgAAAAEwRQIhAPb34rdoIyxx8IIiT+pauSUaDeTqCKGNEESYUnsEbE2qAiBRuVXyBSv36id5UsEw050DAj8xnm/XD+5dvPQLp1blMwAAAGgEQVNUQfLdrolEm30mMJpdVGFLH8mcYIr1AAAAEgAAAAEwRQIhAPrUXV7YKwZXf8ebNoz+m7BNao/pXeuHqA1LXHoNnPzqAiBoEPMgDjI0PZtmQTsNi0J0uU4Ifpp2yRFPxX8v+VPSJgAAAGYDQVRDDrMDK8rCvh+pXilkQvIl7bgPw80AAAASAAAAATBEAiB9J9KYqRxvr7F9yJWMcJaChuz3YAT9YxOldQPRGXAChQIgS5bYIKB89KM/A0sRU5bWdeXuJV182ab9su4PaRx3D0IAAABmA0FUWBoPKrRuxjD5/WOAKQJ7VSr6ZLlMAAAAEgAAAAEwRAIgbJfhOX5Gppb09WSB7GX79a7bup/5Z26+LXPpO1FHw0wCIEsjwFeQQiSJ22uYJOPm/mGSBGO07q0/A7/t8QA6MLH5AAAAbAhBU1RSQUZFUpe7vF2Wh1+3jS8Ut/+Nejp0EG8XAAAAEgAAAAEwRQIhAJm3+MYcv0dmUFvmK08Vr5UXMKDvDFckmRmgFvI1TiZKAiBjcHfz+aoz6t8iA7AFt86KuYiiZZPxtNmhlvb6+o8hzAAAAGsHRUxPTk9ORZe2VxDQPhJ3UYnw0RMgLMFEOwqiAAAACQAAAAEwRQIhAPy/qlgOIGFFVooq8szi7fvuGc0YmQw3toMngXcnEfEKAiB80nmGNEEXy/dHDKWrK/AWKKSDdPwKVk2qZTJMiVkzRAAAAGwJQXN0cm9MaW9u+eOjI5V7Fy/bLdicMLvamAz6w5UAAAAJAAAAATBEAiAEuwUWaTgMwAL94iOPvNnOI2u0JNxCiwapHEvaVDFfjgIgXB38F9zjUAf0b0HrEBzMSkTbhFHem0M9hQUlx8geHQ0AAABoBUFTVFJPeyKTjKhBqjksk9u39MQheOPWXogAAAAEAAAAATBEAiAb05UVhT2KkmcDnBFnhwSlowWDH6AJraEsj287nvrUagIgdJDg4SAL9pBKQTpQCUophLeikAnE5gOOiGN1J+WHP0oAAABoBUFTVFJPy9VdT/xDRnFCdhp2R2NlK0i5af8AAAASAAAAATBEAiB9TI2ifT+aZ0gVHlyr0EEIXnvEzfD/WWfK07SvmtpsvAIgaxhSUeYPpJ1D+rsLDeR7o4JHbgkdatk+1q+4D8UmnfUAAABnA0FTWQF7WErP0W12dUGunoDNxwL0UnsLAAAAEgAAAAEwRQIhAOQC/01dZyGq6lvlBn61fOdZhQ7SgwYILDPprE75seZsAiB4Wrcr0KGgGf89SxwqxZIQyAsW9inutu/elI0Vx/l+VwAAAGgEQVRSSdrNaTR95Cur+uzQnciJWDeHgPtiAAAAAAAAAAEwRQIhANf8qPerZvEqZ0qkzLafiRpPug0Sx4OTT0+vcB9iXjXnAiBC6QMx4ZshiSTGN4jePQxpxDgqJItQw8/+MpxPOctMuQAAAGYDQVRIFwUtUelUWSwQRjIMI3Grq2xz7xAAAAASAAAAATBEAiB5GwOKlhnsINpW+fvcDL3mO+LQnpPXeyBDxzZODxCNLgIgI7Y9a3KP63P4vsIXVTkJgWlpKabq/15Q5iiXOYFw+I4AAABoBEFUSVOCEURRjf6ee0T89NCCThXoOQ1GNwAAABIAAAABMEUCIQCj3guN02Mt+Fp7oJlMLxbrYYBtWvSd7kliZs+SfIjbWQIgB73NSJk7f4NPbku1sOw0rFzBYaYneSkdOjewLnb3UCkAAABmA0FUTHi3+tpVpk3YldjIw1d53Ytn+ooFAAAAEgAAAAEwRAIgXUnHYODXkpYvO5sZSPJu2tYozAiplsEtgxMsZwA1gSYCIEF1dE7Xr3F7P9uk3wzztP6l3+gc+IPHVs2+R6CFyk1dAAAAZwNBVENysrjkKhDXhav4XzBEIj24yRZ71gAAAAoAAAABMEUCIQDj97S2cmSeE4I8cfw2+EoB61JLDhh7ifmvICk93AnwswIgQ1CpHcliPdk7YrH437a2RqJsor7R/+UfiPhOjjfIKroAAABoBEFURkmMaA0N5amj9qmWSdCgACJQVJNHQgAAABIAAAABMEUCIQCCCcm/jjDSMXuSMTiZ7qsy0nW/Vv2RMlxUqvSItXQ3bgIgOJ4IelH1PMgUslIBMzeXPvgFPU02GIfTTC8/M7rJdJwAAABnBE5BVkn8HJOiUHl16YudDpJg3tYaABUr8QAAABIAAAABMEQCICTxMrkjYDi71cDhnTOHRc0InhOknvbyY5/ksVyTN68AAiA6fu+sifgqYFN8jnzNM0fF5jEnKMfzM77TxmQpTA/3ngAAAGcDQVRUiHg007jUULa6sQnCUt89oobXPOQAAAASAAAAATBFAiEA5/k38j+SKWdd4E0oXhw8LQpA/fDZyhEMI8xThy5CV98CIH7DbW3zjwzQU50p+rw897RR+iuKo5ar92tsBpp3BlzTAAAAZgNBVE2bEe/KqhiQ9u5Sxrt8+BU6xddBOQAAAAgAAAABMEQCIAJRrYxnj8eBHnfSPVpitdOh2gdxs4AHXno1VnZjY4UtAiAhEYl9m34x8usalZV42F7I6CrZGRW/MSbybdCBpvfkjQAAAGcDQVRORhczwXsHVcpWSbbbCLPiE/zyJUYAAAASAAAAATBFAiEAimMVjoM9zNwaLCYeHOZnPHN4W1NhqIlzpnpsMQYlZpcCIHCgzXKp5KWXY3bKxyR+sBoATlTshY9P/4OgyhPBVrkfAAAAaARBVE9N2vC0C5YcpR/JFPur2o53lhlXbK0AAAAGAAAAATBFAiEAgjdMm/ZWq7HVSJBCSuqkeriC+emk412E39qNrZBXanYCIBuODcouPO1hmq8dXK7I9shaZi6kx5gAeB8oHkvdTQCRAAAAbAhBVE9NQkVBUjuDSmIHUagR9l2PWZs7cmF6RBjQAAAAEgAAAAEwRQIhAN4hmSFjfPP0Bq4e9+8GN23ILFIMKiVqa6TmC7GkW/iAAiB74KYjcI3GIhmSqklCcAPb0LfT2+F3WTZA7Ri5xW0MnAAAAGsIQVRPTUJVTEx18AOLj7/Mr+KrmlFDFliHG6UYLAAAABIAAAABMEQCIDKZ6KxY8qka6nLTnYx4IQzC2HqJCopG43RDlqFxekyzAiAzkguC23XcE5Mwp+H4L4jdxiz1UKAa0Ee05/WUZXlDZAAAAGYDQVdDrSL2NAT3MF5HE8y9TylvNHcFE/QAAAAIAAAAATBEAiB+4k4Mv7SWeH0Zo/utdN3/OjQiU+fCFTf4GoFEkDzIywIgTXV0nhYZDVYuK9KRRV6jjNDpNWk9p7UCae5VguifhyUAAABoBEFUTUmXrrUGbhpZDoaLURRXvrb+mdMp9QAAABIAAAABMEUCIQDDNKBOs6JmWvXY2LdQSyk9M1W/BQfhd7FmS2Vbg5o+PAIgIxFg0nB6NtX967Vj7dq68eUAlup7u/SUclOKVvilS9AAAABnBEVBRzgKixayfVIZyMa1fVRCzjHYFXPu5AAAAAgAAAABMEQCIGXLrsp0qaAUEAmX8fQG+VuPDy1nHJYzRh/eYTWOxxxiAiBRz5pyhIeSo6SGklRAPqEyPxRk4IGvN11HhdwqaFv0EwAAAGgEQVRUTmM5eE2UeNpDEGpCkZZ3KgKcLxd9AAAAEgAAAAEwRQIhAOlu6qs4PfarlnlCfh1pgI1NrUq5DGXkyaC6aVISbBWWAiBUBIJGG2NVRUeV785uSnFqFsbD7bWuXfKcs6YQ+TOlTgAAAGcDQVRUifuSckB1DBsV1HQ81YRA/F8UoRwAAAASAAAAATBFAiEAiab8bmgmA7JqiLfOBQPK54AYEC/G2tWBPNTyzpZVi8kCICt1II6hLe1bDNn3sOvWh1kuAVDpN6mrlhQxuu5UaUHLAAAAZgNBVFO5pmRL7zcob8COcD7NFene33jT6wAAAAgAAAABMEQCIEUoVs9hJ9tscZ6C0j6r8xhPzHyMigfOUG0pYr/R4yNWAiBQ+5DcjBZ38yKVLxavht7sWdUZk2nKvyf7XMWe2MDkbQAAAGcEQVRUUkTi3shrnw4CZumqZuEDI6K9ac+aAAAAEgAAAAEwRAIgIem5gmUmDxYbuljM9PzvVzvXuGHPgYJ3cnNfDDhYgHACIGSGjXR9oTE8PujmdamsMJnnQZnPs7OJgtYhYl3J7eFkAAAAZwNBVUPBLQmb4xVnrdTk5NDUVpHD9Y9WYwAAABIAAAABMEUCIQDv0ki0z3R17wFCFmwvfPgm54O7J1V2r1qt9dU5JasPlwIgCbdhk1cTgMaFpfbJWTvwYgah7Agqvz4izWpMiSS/7zcAAABoBUFVRElPGKqnEVcF6L6Uv/695Xr5v8JluZgAAAASAAAAATBEAiAYcUl89BYNE7CXQNUO6yhw8wir840qdwKQDAM808ovfwIgNbh0lL5Jd2w/CH4hTFewEGw1j1N9EmPbDsSa8nRTzswAAABnA1JFUBmFNl6feDWam2rXYOMkEvSkRehiAAAAEgAAAAEwRQIhAK6P4vDp8rK6VRJ3gBrqnKUtBko34Ibk9xAg9pTvl7M/AiAxpdbKVUUlKjSvAeg9uDwbqVkY5h2gynLXRkqtTI/Z8QAAAGcEQVVSQc3PwPZsUi/QhqG3Jeo8DuufnogUAAAAEgAAAAEwRAIgF/24NdAShEerhkv6YjUMvZ0BNjB6tlMpG4PmfdMfN1YCIEtrvFXGI5+1MtQK2nEVnguNAvqz59deb8dR15i/lK6ZAAAAZwRBVVJBZBfoZz3t16BHGoeAS/haVZ/YvMIAAAAJAAAAATBEAiBY1K0WHkRkis0G2Ho2WXOuqgrcz1dO7IZ37qg31XdTUgIgKxdmgZUxRalOJWgGhH9ZjrRVDwcmLtVD6eq+CH+/bZwAAABmA0FSRZKvukE7+eXaORmlIuNxiEvqx2MJAAAACAAAAAEwRAIgKzRP50sPEZAGMJHPeX2EJEvJvaL1IfSkMzi9bKRvOZkCID1qJephamS8IEd9XtTPDHQUyzrsgjDjyCvRw9Z8cunvAAAAZgNBTkcTCRThskCn9MXUYLfTov04RrV2+gAAABIAAAABMEQCIAEbNHgAXxdAtzTdWMPkwZujzNFEA/QmLciqLq1bIejlAiAmoYNySmzi3aQk6LqzgZQ3QnnN3ZXa5fm34bX9G4Vk5QAAAGkFQVVTQ00ce7rcgeGPcXepXrFZPl9fNYYbEAAAABIAAAABMEUCIQC9+dzThCjPOyNK4kP+Hjze/TFmY/sUe70+yhMSVYBQNwIgK659I+qV3g9uYbzZnACEyDlmmvTPxzlYJcN2yy6ABqEAAABnA0FVUm6Y5UAa3LDXb03r/D15SzAx9IeQAAAAEgAAAAEwRQIhAMnoa4QBtOrNAG6LK9lSatH44qL2oJForqvkXcXpU2z3AiA2yYUjj2wXazGPukj1zLux1Ug/aBedC1cf1oK//wLxewAAAGYDQU9BmrFl15UBm22LPpcd2pEHFCEwXloAAAASAAAAATBEAiB9XHIVEoUiyr2bjFuXPbSFhEGvoxC2HL8GQNsCZvw14QIgYo6vOCP5wQm7zubZ8JD+Ukg5bN/MACol3WBh4moQtz0AAABqBkFVUk9SQaqqqiDZ4OJGFpd4LvEWdfZoIHlhAAAAEgAAAAEwRQIhAItmjzJbZVJlJPrWkP9VL+2ZXeQCF37uZcXHJbUq2qN4AiAp9igQKJdrRwR+NvvdlJJtYUBDa5vak+7DOhRwNSDCKQAAAGcEVVJVU8bd21vG5h4IQcVPPnI64fOoByYLAAAAEgAAAAEwRAIgQ7cdhYtTIShEAEfp5p1roMPPKZwoXeFFGi4/XeVUpHkCIEMqvjz7b12BXJ52n24vhQBbU+y8lNgOF8w3WlpdxoqDAAAAaAVVUlVTX2xfvJDk149wzFAl2wBbObA5FPwMAAAAEgAAAAEwRAIgYdAvMAo/MHOkKZTPUtkfCb5CiyYSfyRXh8b2ubQtZIMCIG10h1KUaGGKXyhuGjf80D29NQimSfjk+7ABgsar4QxvAAAAZwNBV1hU5GzIlYgxjjlkyiwb6U251co9+wAAABIAAAABMEUCIQCwlrHTdw/Z7sdZeK/tp7Y0vEYoV4bfLV546Gu2FK6WVQIgeJxMiFYaOX564WgzFdeghH62n5OdzU+yIYEmKTkVoWUAAABnA0FXWKUfxxQiow+n/6YFs2DDsoNQG1v2AAAAEgAAAAEwRQIhAJomusaZBAoEaOWA/Ub39GHAyLpr09zdN4UeoZwf2qtgAiAFk6tCnBO7mL50k6TvdiTOSQ/TQU9YUNVqmtjXVkIxpgAAAGYDQVdYHv38YUbK2JCYFyhK6ZMl7xyvYj4AAAASAAAAATBEAiAQJrmJw6Rpo6YBLMYOSDzU35depsr7ueEHZ3VaDOJ9DgIgB8oDhtqzybouoiiZ7/I+z/V1jwB6XFNodk53S9OOyMwAAABmA0FXR2lqzC3lZLSGgtcdCEezYy+HyaQCAAAAEgAAAAEwRAIgF7/q05wuSzDpDVsMIOkT2ZAjRUZ+kywPvP1VdfE7xd4CIFs46TuuxEOO6jVBAAmkZGDnS40Bt5HtxZqDOhMCMzXuAAAAZgNBV1CpbUfGIagxbU+VOeOzgYDHBn6EygAAABIAAAABMEQCICULxQvXMrCagijtscDZZTGGHLVodToOVyQyY7b35phCAiAZpUmh6UhVtSl2eEfg1sHVmkv3NR0RkpocChYvayt9mwAAAGcDQVdTuJkD3eOJnwKAuZkTFo7oM6eJa5MAAAASAAAAATBFAiEAo29kDXGKaj660DJGaG8oFKNyXR/azaJWqm4P3IVNEwUCICVxD5InM34h4Y4WRkVefUUQIDGprEQYgPxDi4UcJsFOAAAAZgNBVFMtruGqYdYKJS3IBWRJmmmAKFNYOgAAAAQAAAABMEQCIB35TV4FaXI4qiXpj/u23K7m3jTVvpMmKUShzdlzB3NNAiB5U9cqssigX+b4eE7NX/0v9sY/aM/Tafbfg1vV598F1gAAAGkGdUdMWVBI9QO/ensJYiBWaO0EEUD0rzYDBL4AAAASAAAAATBEAiBKgOgHHw3kb4rl4Bz2KGPvhBoEd95LharbNyF4fil9fwIgRazuhwQow0Z1mTleLSCLn+eM+ahThLeGOVqBsXpYaBkAAABpBkFHTFlQSIuq074O3fTsj72bwpRqly4wdB+MAAAAEgAAAAEwRAIgNHhZHROtkOWJsNsiQWI5YjeZfJiNYY62f53SkpWIr8ECIBuOcRq/SZt0L7ZnnPCXATDOhmbyb7x04Jmign5FF2TBAAAAaQVHTFlQSNcCQN1i9OqaaiQW4Ac9chOUidKqAAAAEgAAAAEwRQIhAIjd98TYyNM7Qm6Zy+ULDjydJJhJ8ZeRqN+XB6JtfgtTAiBcThgqoGsJauD7YeOa9cMi10zK4ZzB36oyOROqHq8lUQAAAGcDQVRBohILnmdNP8OHX0FaffUuOC8UEiUAAAASAAAAATBFAiEAk0EwzBaX7T+imCC6bWbsFl9t00MV5Y+y1291Ir19oi8CICnyNRi0i4KAPTalQqjV6nMhVIP1yapvVK5kpjqfGfecAAAAaAROSU9YyBPqXjtIvr7tt5arQqMMVZmwF0AAAAAEAAAAATBFAiEA5yIXW+26YPEQI3AGQ8xKl6K89IbHzI/tzeTVYMyJgosCIF4+6ZQqpZFSy2r8DAPliZEb2Yp/8NzztxkNdTaHt3ZXAAAAZgNOSU9VVOBOdlM+HRTFLwW+72ydMp4eMAAAAAAAAAABMEQCIQDHn2/sVXLdj/xl9gU7lnkQ5+slP407p6YhT+LkuF05gwIfZqqKJgwpYaUJPO6TuaQ8/X2COBnNAhpR0w6lFEO+KAAAAGcEQVVUWlpwks+GpnkBE8TT+oP0j9bvpxsNAAAACQAAAAEwRAIgXRaQ+KIOWwLSE0RzfWjU5GRO1jsfpZxh3cZK9QJ4lL8CIF3S6277KvMqcS+SXWrdNJ2vADiQog7Lv8x+Fg2FFvA7AAAAZwNBVkHtJHmAOWsQFpux029uJ47RZwCmDwAAAAQAAAABMEUCIQCEacqCxyR+nYL0TXHp7bVOFn3sTTQpFWsZq6d2Yw9LCgIgBrMbo2Ufh+yoO87Q9WSXa6bfQbwtUBVA7hIjh7OnhgEAAABoBEFWQUy8+dv4sU7QlrK6CLcmk1YZf90bXQAAABIAAAABMEUCIQDUXK3oxK3kwpRsDVY2VhQrkjBDxbwYyGRyfxTxwDtyUwIgPyYAoWNL2cjfuiJlmWLggofAwwdVJSFLxODCW4UnZlYAAABqBkFWQVNUUtzcHBzDOqgXy9vo9eI5C/fMQ9xLAAAAEgAAAAEwRQIhAIPNrGQf5r9jDaJschKpndwDjGB0wVUjZeUJP337P3GjAiBUnklBR5lUIGT8fgPT+BL+XRtaWexS+i5YuAH9stTCXgAAAGcEQVZFWDAhH33pvzUzTH9hVF6O0Jv52cwVAAAAEgAAAAEwRAIgM8awFcKn4j1qiDEY8zkkkYtSFaia6ON+fwshN+w+cNECICZf1H6aVNSo2Wh+GRR5ScpMv3CXL6tiQRWALdE82BUXAAAAZgNBVlQNiO1udLv9lrgxIxY4tmwFVx6CTwAAABIAAAABMEQCIC5pk8deJ0nFgjrFnkj3QC3tMVfrEsXE3c4WcMw/vJ6aAiAgh/PZbSULQuYYcvCSW64t+6LbpEJKbYjeRTyEJyUWhAAAAGgEV09SS6aGUU+vfVQokmb0g9HkhSyZ4T7HAAAACAAAAAEwRQIhAPP3cEjEXmjYmz3XJdtRYFuh1CBDzB62cbZ4EMcFRaWWAiBma12KlqGBgSwjGFxQJmNmOjD1GZlV+scE5jEmqq7gHwAAAGYDQVgxzUtLDzKEozrEnGeWHsbhEXCDGM8AAAAFAAAAATBEAiAOTXT4s6JGqwiv7Ti0QVq+l0FKNRLel2G/0Co4enzakwIgL/NJ5p3e2nLw24xPg+yes2yUEr0Aj2PXWiOYQhm2D1AAAABnA0FYTEZ3Ga0JAl/MbPb4MRdVgJ1FpeXzAAAABgAAAAEwRQIhALva0TiVfRYodDBBsbJH/NIuDHCWwetOKZELxHW8Xy8iAiA/EqEm7swHrg7+hoOr4CyiehexC12nzDU73A5WjKNwUQAAAGcDQVhDN8QwwrX5/4XlNIc8cVhxgYqxYj4AAAASAAAAATBFAiEAmChs6nZsXgwhv2SPJG9IlF9HwpkYjuRsHbCNAjy4ZUACICB1DUykT/9S6Z25YAx5OJl7+qJiWa3q1ZymwpaXSeDnAAAAagZBWElBdjN5N4bi3UzEku02apS4ij/5ul51RgAAABIAAAABMEUCIQCDpB3OxytN1iPV4/4OEWptz9cIrw4fhLMtgU5MGy7SBQIgcOAbtCmvsQ6TbXNLDBAHV2AmzvMpQxIqDH/vpCZPU+sAAABmA0FYTE+sDM2eLtn9Ri1Ctm+4G6mh9vJeAAAAEgAAAAEwRAIgGsHT2odqVGV45/cT6Sxo+2uqhYLDn6PoNKNak44cI5wCIBKzCngTYZ30yFg/n5hKibtKYK4tK1xBKm0loqJxNGIlAAAAZgNBWFO7DhfvZfgqsBjY7dd26N2UAyeyiwAAABIAAAABMEQCIAhC+OqPfAYfkGhrMqeY8xcGvbnIe7SASdXnTuLJ1bQEAiBtsNAtJhBvMeFJBbHGY8irGfBLQJREJJjcMrBPa7aYPwAAAGcDQVhT9dZpYnN269QR40uY8ZyGjIq6WtoAAAASAAAAATBFAiEA4BncbRuQX8uUxzGxkn3hVtaNCLwLC13mM+G6zBevhh4CIBpced3Rrlyo4I0oSoI4lqhJFGR5foB2BGbxKIzE1Xg5AAAAZgNBWElz7m1+ayAxJa3YkyDp80PWXsfDmgAAABIAAAABMEQCICG/QKyw9/jIr9snCJkDLDTcNVqTOF1nv2tR1J43jEO6AiA1SRv6+6oRLaIx1JKYxqMrxnE4aK83kI9YY3dvz62LJwAAAGYDQVhOcfhbLkaXa9ITArZDKYaP0V6w0ScAAAASAAAAATBEAiAt/4/znej11v+q1eqCbewPrjIhjBxexA83ijyTknfjBwIgC20Cs9dMm/sFo0HExle4CpzUrLsBCMI2QY4P7ZCyA2kAAABoBEFYSVPswPH4YKgqs7RCOC2ThTwC1jhDiQAAABIAAAABMEUCIQDMf5MPizK68pg7mUscLE0PbJ4har486pDrnvaNF/o1gAIgU7SXklwHtw9I7BCyJcEdsgtzxamdiqMY4/ZdZUBlaW8AAABnBEFYSVPwxYMew9oV82lrTa2LIcfOLwB/KAAAAAgAAAABMEQCIGcgmnhpULdrkKwtSsjg8GpmvEYN3kAP36wyB3j44AknAiAiGffYT7N+eqdo4ZfMq5Bwcd1wBuc4HjWcs3JDLpEiegAAAGgEQVhQUt0AILHVukelTi6xaADXO+tlRvkaAAAAEgAAAAEwRQIhANOh4FIGLYLWW1rbkAUyNhLhwewvvwA1BNmjXYAQ367bAiA9rM19p10aKkIA0kkairhLmV23HOLd+r8aJhhSlCUD3AAAAGcEQVhQUsOeYmoExZcddw4xl2DXkmUCl15HAAAAEgAAAAEwRAIgORKpQ2NEtlvMFL7EuNkxkAvCnxWqBKkw51F4CbGF+f0CIC0pYDCrwWeoiwWgGUuNz0zu4G+mDK6aMwJePyj8XBdfAAAAZwNBWlTvfxqub2DenzU9wXCjW498eBTjKwAAABIAAAABMEUCIQDruPJPXUjFsVzqx32TpLP4/5DlInq0Oa6e93JW+r/AjgIgHSU6Z9hipuIhPuFWusJX84bYtYX5F8g4m5CuubPw6sgAAABmAkFaqqqqq6LqPaqwpsBfG5YseMmDbZkAAAASAAAAATBFAiEAtAl2xFzV4B8d4kWMBpoxhhSTNjwGoFx4iF6e0evV09sCIGLDBG+I2hk9Awl2i5ZVHhK6qMto/j0mFXzN2hgudu+FAAAAaARBWlVN0mqcNDf30SEJjIwFx0E/XMcLsHAAAAASAAAAATBFAiEAqRhYqJGYrCOQVpH9IE/r7H5+UElqYeI+rTgGo/ffGp0CIA3PIRBEkX/F1p7hxj6VyX6F/H9UlnTDAOfVeqp3VzhuAAAAaAVCQ1VCRZPJF14m9X0oiMffi0cMnupcCwqTAAAAEgAAAAEwRAIgI2UAFsZcMNn/WlmdGJWmXbnG9+WhtQ1ssh2ZuYpQ/PgCIFIUiufHJxtW85ZVL/peGFypbTZ5wGcH6eHdTTGwYQHtAAAAZgNCMjFvqoJq8FaNGGb8pXDaebMY7xFNqwAAABIAAAABMEQCIC/KjtyTQq3CvkMC7KDaxnwyEEUGv8Xx0vNDW2/z8B0bAiB446bzthj8D27WOQSDXOIbht4o1dB0G71ZaKaoKaItQgAAAGYDQjI2SB3nbVqzHiijOw6hwQY63LWxdpoAAAASAAAAATBEAiBSJK/BnrBREO/FiYTTZ9K9FlTZINIuSMnws293c2ky3wIgfOtFl3wJcSrt3yHj/rGF8Llf5MVvnObFMxS0OwP9Z8wAAABnA0JCQ+fT5EE+Ka41sIkxQPRQCWXHQ2XlAAAAEgAAAAEwRQIhAJgHl9S+/gOOa6LNNnsMsCpXR/IYAV1LY1eL09QDsekOAiAmKKbNVEKxu21os6Ir4igxONgU2ZSK59N4ulEc26slrQAAAGgEQjJCWF1R/M7TEUqLtekM3Q+daCvLzFOTAAAAEgAAAAEwRQIhAP0lJYeBhWGVjthfu4yBRgX+wWZzRXAT3emMWkwqeuDIAiA8jjBIEzmP5d4vQa8FiY4aWLRXS+QfeFivY54Ybfo/hAAAAGcDQjJVNQdY5KElZWH9DuFC3H4FRfVh+twAAAASAAAAATBFAiEAgI1Xn3QIEqNNpDC2z1LuJqSDOJcDdLoU68UisYBF3RgCIDEImsCUAuO+SG4ruhcusAv2i2bxONLetF0Qad/nZG4/AAAAZwNCMjDE3hiav5TFfzlr1MUqsTuVT+vv2AAAABIAAAABMEUCIQDgYgtaG6Cz9N5yB4vIbORVKFu9oHZnxgdMstiR/udWnwIgY6ZYkL3kkq9gcCV7YiBvPHwacvSr+uat4Db55Z1KMHAAAABmA0IxUEt0K1vbHSUpB65/OZqJHUoXjbwkAAAAEgAAAAEwRAIgUDVufyjSipJ73VZkdwDHffpTiAQA0Vca+AgI5eZ4ydwCIH2vYNFvqackVQvPZ6Sq4iFD741cAgfT6P/tNbSKEVcrAAAAaARCUFJPu7u7taqEeiAD+8a1wW3wvR5yX2EAAAASAAAAATBFAiEAyFXmeHIxEswCAsCAJ84ijCSjDx8qXLEq1cqxiEI4mVgCIFRFmZ19kSDkfvL3Mw2sV+zZX8DZ/ZIJpYjo4RB3UzXlAAAAZwNCWFhrGo8hDsa3tmQ86jWD+wwHnzZ4mAAAABIAAAABMEUCIQCYE/bK7GVnRPTjU6N//r7lYBh0E9Mw5AYz+Q9jbRjHQwIgGHK8yja9I39zuXgaBmVZ6OIWjHY49KgzOwAFSPoaoUwAAABoBEJYWF9U+bS0SFVDqBXFHEEqniBDagZJHQAAABIAAAABMEUCIQDWN6+vB61B09pO53y1t+6emMbgz79+i+dCDdADJ5ea+AIgaHErsXRWOP5wgg9F0g0Nd2ZpvV5x5oimSBuLrzR/PRsAAABnBEJBQVM+ZeHu/eXqfM/JqaFjSr6Q8yJi+AAAABIAAAABMEQCIBxmssvZUpR/qVo35T0FOnMndDMHzEdJYEgVI4BK7aGyAiBbkmd31dt7LrxYEDDH2iNamJjlP7zbHLIWXRh5hdtatQAAAGcDQkFCw2gkkF3/LqrufswJ/MY6vAr1q8UAAAASAAAAATBFAiEAusp/0Hmh/jqU8AGp1JYM1XolWDUlDNgBwu+cvFvtJpsCIEmLIZSMAAUM+48udvXhOySVNgzYhSqhL1HWZabsBO8DAAAAZgNCQVj5IOTz++9bOtCiUBdRS3ab3ErBNQAAABIAAAABMEQCIA4oJ9fEHk8JC38tVnVHkYC8F1fglWNEHgGF0YHAIXsTAiBqyfanNtwPl3WslQRrd2rit02Lg2RIpNlFiyaNc/zOHQAAAGkFQktJVEENb2oTDDBGcTy6Ql9BplwXIF32tQAAAAkAAAABMEUCIQChiOz7V977vQ+ydJHxSXeZZA/Wt4u6K+S/1KdyyXMq1wIgd4CXKwK1S0PY2RjiE99Ttyp/n1+TbTG8kJKyudIlPuAAAABsCUJBQllDVUJBTtIXMDUwhrDWw0ZWynT05CldybjgAAAAEgAAAAEwRAIgV8tzeYyjF1ATT26HcfztFNUq2e6QZH5Cl2RXowA4o2kCIBdajL+BcHPpTin2n9tS0QY1DNlZB87t0SngMcw+fFgPAAAAbAhCYWJ5RG9nZaxX3pwaCf7GSOk+uYh1shLbDUYLAAAACQAAAAEwRQIhAJJZBh61ZMHY1aRPKJnxtkC8Sq1IxEuCJru9QMovRikAAiAdF6PiF0Swiq3RCCHqW5qJSZ2gl/uDuuRC8+XcCp6XswAAAGwJQkFCWVNBSVRB95+QIFYJY0IuzJwMBNOiEZC78EUAAAAJAAAAATBEAiAcLUN+ZOkEhwzNJsntbET2kSHFlUrZcoEorfmuYM418wIgVS4JPYKsMF2xrtAz3vXu4vHmkCkig/a8swwPpyPXA2gAAABsCGJTQVRPU0hJpE9a6ZtUADYKN936aa7rX5HchnkAAAASAAAAATBFAiEAiY4a/x8GEoOfQBvD8zEbVHTz4G5Tar7wsc6xNF8RdcUCICMvZ4sBv9eM3dQKLclwjfBVJWZTNEBBOzEBQDCD5ttyAAAAaAVCSElCQUpr5WohGkxODdRHTVJBOJM8F/PjAAAACQAAAAEwRAIgGD4fuAH4rXri3UogIk4ypgTuA97WTBzveemNZBRhrpMCID0a1uGWB+rlBMu4nMsN6yKa7yUCvVaLK8zymx0TJaHGAAAAaARCQUJZ2xP7YNP92rxBdD2dYDzj9CwX0FcAAAASAAAAATBFAiEAylHTFj3R2v2LhGRckbYZX1f/v3JAFrFbapDso+MlOJICIDFayBOSIIkPnsNdYHM5rG1Br2GfyqMboV7J7fV8Y43QAAAAbAlCYWJ5VHJ1bXCZ026XZ2poMT/9xif9a1Y4KioItgAAAAkAAAABMEQCIHLRrtIt2ZImB39UL94KmIOmen4OCYfWllRPp1ak88cgAiBF5BikCy1y8h6zQ7J8l4BQvrysR4pa7Uja7QaX67cKIwAAAGwIQkFCWURPR0WsjhPsww2n/wS4QvIaYqH7DxDr1QAAAAkAAAABMEUCIQDim/4EkBZW8LrUgVivk/tWNOFTC2i44PnB2EXutTY46wIgZz9nAcoEVCF7AXwz7dM3HerdUsxz/y8jybQeKrvV7NMAAABsCEJBQllFTE9O37SoFyeqlhtu6DByCEMQT64P3/kAAAAJAAAAATBFAiEAmKdXjjWLNME0A+oMSxvLwJ9NnbCfuSh5w3COvMALSRwCIAdo0bazLzKGITyyUNfaN6pFESRCEfB/E513KYJWNShDAAAAbQlCYWJ5Rmxva2nfNZiNeV2QcR54W0iLshJ2kub5VgAAAAkAAAABMEUCIQCw+iGHuIikyppwYM6JIGjWZdEEAgHZNPm/aHPpNCok/AIgOpvnbuN1LN6mrzw0Yb06b8jRqsaz82j/aHGMXVUbYAgAAABoBWJQRU5HvkaYXuWYMOGMAt+hQwANunrJZ90AAAAJAAAAATBEAiBJxQrwQKcbq8EXeZt3AvtNGejNykkRJZXQVJi0cM409gIgYiMPePvxagMtZX+gOw8F7c9xjoo4xGw3EcEqTYof1PMAAABqBkJQVU5LUwlWSLyAp9HdFrhem4TwdGOiDzU2AAAAEgAAAAEwRQIhAPVaEmQoAT0HRc+xiUNd5kOem+qlIyxpl6fo2C8yBY0XAiBI0YxMJ2ivN98B+Gxzb3tPJ/yk4erTlkX3iV1UHq7YbgAAAGYDQkFDNEn8HNA2JVuh6xnWX/S6K4kDppoAAAASAAAAATBEAiAn0UFvfkFvHM9lEUL2ASRzyczL7QrUopZcebKTXM3cVAIgc1yF4Q8I1lRYzY/3csDbmIBzRFGzds1YfXSEBHKXJ1EAAABnBEJBS1SDefUtCbmZjsunMSiO5P5TL9kcCwAAABIAAAABMEQCIHAp41NNGCVFLfrfyiEYQQ0PfRO381yWfH3D5GLFt4ruAiB3ITtu1rV/xi/j0EfDQf99YlkSNNPrZWBV4bv0bS5mEAAAAGgFQkFDT04XWrQeLO3zkZsuRCbBmFEiPPUQRgAAABIAAAABMEQCIHBI4X7OogwntAf1H0H19DAIzqEOVm9aMY4fQ9toRi0/AiAseqwRePTrMjS4xJZZBT52YE2PaRhYW05MUTvKG8ToUgAAAGcDQkFLO18R26wUdq8XlXxuWZHyHIJnQ90AAAAIAAAAATBFAiEAqUWhyYukXzMs+GbPit3EHuTjc7XnYOT2KogYwxwTkEQCIEKB65NXIQmBITWAhme5ldw2cM04h0KdOSUEYACfB3bhAAAAagZCQURHRVI0cqWnGWVJms2BmXpUu6jYUsblPQAAABIAAAABMEUCIQDsnKFFP15fP6DzkJkfmJGp1gYspM2i9keQsPrsJa/a3gIgfyZnZWyfloZoC5P+JOI22ADqaH8lnfPkJvmtSZICMm0AAABrB2JCQURHRVIZ2X2PqBPuL1GtS04E6gi69N/8KAAAABIAAAABMEUCIQD8IaGOp26ruRWQJr6BlCOx293nGeYJOVRGhq1gkGojigIgOvdZLWE0opv7/lP4PbbMHWp2/vUi6+PHi6SdHafZ3+cAAABoBWJESUdHfn4RKmjY0uIh4RBHpy/8EGXDjhoAAAASAAAAATBEAiA0c1m/IduooYXIEPTk+bODwESqtlrOMNaGXkdkbMyN0AIgGDTJ60XTbPpCdTwW/G2swgOnb/zHY1/BDGTB0ClGUCQAAABpBkJBRVBBWWv/oHobDOvEdM5oM+ryvmMmJSRJAAAABAAAAAEwRAIgXAuVeQxZdZbqO77ckEMs/5p438J8LCdIf+i8DBv4E4UCIFndX17iglDhx4RFF+8e7fVJW9Yr6/E5q2WKS1QxBkajAAAAaARCR1RUelRe04YyIal08ycZmsIvfxJTXxEAAAASAAAAATBFAiEAuEMQLFMb8TB7MHhqiYkS7+DXhq+otey7k2I1qzYk6SECIBVLCvnqkPcBIk3V2RqLoUsisNYduMU+qqy6N23WWj+0AAAAZgNCQUznBJEUVix1nV6dHSV4N3PM1hwKZQAAAAAAAAABMEQCIAp+sXkOLswLO2nqfoyhHFsO3LOp39rSdXErnP9i2exeAiAg4hUgnsYg0LhfkyujjmPcWU8xqjwqxQb/zNDTiY1DaAAAAGcDQkFMuhAAAGJaN1RCOXimDJMXxYpCTj0AAAASAAAAATBFAiEAgfHsAPs6skcmt0OrbSV2qNOiUPsLfw1WAOV++DynmUcCIBIvBfRXqIyFdJUg5VnGOka29cqVnnfiH7zCzZZzTRtuAAAAZgNCUFTM/laWuFP0t3h4kZu6g+GGc3jJOgAAABIAAAABMEQCIFIUCWnhJuwUn3EmBg5fMmAdBaQ53FV0AlRWNTi0BtcAAiAQxqdiG+fgLfrvKnepyAooDuV3fRBWsqlKh5ck4uBs2AAAAGgEQkFMT2UjIDvSjTmQaKzBTba38x2b9D8aAAAAEgAAAAEwRQIhAIqpxFFVtzkK4snpodFBNomXBf7pmobni8DPgWbZxrUJAiAlXsWTmrZ2eIS2vQCyiGVRU+G9ZWiB3RkfMx/k9kYaMgAAAGcDQlNQoUVPnHBK+WY286dTK5oExBH4VoAAAAASAAAAATBFAiEAhnH02ft66JeLcEXf1hoDwplkiJIkNvCz6ivq9gCR16MCIAgZ8dCWXqFr9ygZbrWSrs7OpHAK5u+h+QiQch1VO13fAAAAaQZiQUxQSEF6XOar0THqaxSKAiy3b8GArjMVpgAAABIAAAABMEQCIAHMLc2gxlqrCE8CaVSLmXAM3hU8CSO3JQJAlLXsl/8WAiBZNJXFjTJ1qMSyj+NZiatlelTz0eB2sywfLcSfzzMUrQAAAGcDQkFNIrP6qo35ePa6/hiq3hjcLj36DgwAAAASAAAAATBFAiEAqZv2lcQF5/CETsYFG8BpGeeOQmwHKmKtUSW2v982iLoCICd2EPdgMUa+0w0yn/JllAbvxwASXqeqomvR96BknR1EAAAAagZCQU1CT0/1aEKvO1b9ctF8sQP5LQJ7upEuiQAAABIAAAABMEUCIQCY9TsNzQCj2PomnNZeBAZSnTR/ncFFrzMA8MvUHhztwwIgXmnSNAgMWu7iFJDEmD7XQTK3jRTVEF/YNxjrAcL7dakAAABmA0JOQSCRDltfCH9kOd/LDdpOJ9EBSsK4AAAAEgAAAAEwRAIgRh9Cl3VIdlRVYmqe76/lmxAgqKNLsJPMgjjGZoYtD9MCIAzCguROubOlYp9xq5nZXJiVG42c6ENP/2OJDDErRk7nAAAAagZCQU5BTkHiMRrjdQIQW0Qrvvgx6bU8XS6bOwAAABIAAAABMEUCIQC7XnQmxiE9MpnOhkrdLgYZ/10f8HrFTXx4R4XPytv/CQIgE9JUgiDURopByr4nmTPQ+DVGR5uttqz5os1YmuzmxnkAAABqBkJBTkFOQSH1Q3LAe5MLecXC2bsOqsqGw7KYAAAAEgAAAAEwRQIhAODVIOxKjAx27c5bWCeiDGXJ967XvqD5hUohUqZ1mSIrAiB4ZP2G2Ir2ROqpVMY3lyZFk2ggHxhBUDlBRKqqHQ2sgQAAAGoGQmFuZGV4pnuOQBEaDt0wwyELd6rbhq0jTEMAAAAJAAAAATBFAiEAw+RD6UhMovaRSkBhI3tR44F4VXlalpucjivSMlefJrgCIEvhFKIL1nxgFyCevn17GNNAG/j+0BF875q/DnJzT/znAAAAZwRCVEZBxjG+EA9s+acBLCPeWmzLmQ6vwTMAAAAJAAAAATBEAiAlSqEz6g1m3W468KP0iyOSKB9Ig6UCaGRIbeDwL7fm/gIgAcTqjlz0bOxWeG0H9zlQrj/aOkxkrR9plO5VnDrILW4AAABnA0JDVDUNPw9BtbIfDiUv4mRa6dVVYhUKAAAACQAAAAEwRQIhAKeYEF08L+U1AZ5TnOg6RyQXETD/YthGE2jx6IJw8RgmAiBHbZuYLdA2jVAL/qOplOHd/f67sRIFPAU7FXNc6PEGsAAAAGgFQkFOQ0GZizuCvJ26FzmQvnr7dyeItay4vQAAABIAAAABMEQCIHchm/jm8Ws4e6o62K+3Hd47kRel3mm9JgE1yJSNVr4UAiAll4IrEbv8sM8YuziViWtBA2LyBvtiSlWxAWZWEiEWpwAAAGYDQk5UH1c9b7PxPWif+ES0zjd5TXmn/xwAAAASAAAAATBEAiBQLvpUPb6hraIImEW8XgKMnGtc+b16ZNz62SJf3cHrywIgPeo52XLFupIyNrCYxvNxzeSPayYN2YEKbL42j9gVNoQAAABoBHZCTlRI+yU0RocyNPL+u/m96qctnTh/lAAAABIAAAABMEUCIQCpic3jJQEqjx+run9mFSfqhIp84eT3FmcOXCSKRCUwtgIgBHTugEbMw95P9SxLFQ5g3x0dqsAa8m5ZmeFf4QLNzVsAAABoBFVTREIwlievYPCSbapgQbgnlIQxLyvwYAAAABIAAAABMEUCIQCugYIFQ0GismopQAD4K9VLjzD4PWM24FegDsgqUwuXnQIgGh1G+8ukLS4J7VpyI1scTeSyHS6UZPvzvjQVdgSPQJ4AAABoBEJBTkS6EdAMX3QlX1al42b0939aGG1/VQAAABIAAAABMEUCIQDAU45OjxnGtxsIdYMNx7V2jOKLC5Rm/d/knAKg/LcDxAIgZFAhIviXmvYjVQ6qfB5WQFs0jgAMo9LR3YVGthpVwxYAAABqB0JBTktCVENVmGwdy/L6HzQCxd8lYnJiFiSCHwAAAAkAAAABMEQCIAN/wz3IVGRsHNUvK7l9geR6iNYVePECD2mEh3/supFaAiAIyxs8TWCOz00UfXXRhBo++1WJNeTvt6brYpmZb3WwvQAAAGkFQkNBU0i1u0hWe/0L/p5LCO+Lf5FVbMKhEgAAABIAAAABMEUCIQD51UD5LhXNd6Gj2iEpPwmbqPiK72Wr1DdcFRhtVcsvCgIgZz7lx94s+02VNFtXp7wBxIYbhVGN+sXXRHV24cVjQHYAAABmA0JLQ8iL4EyAmFa3Xj3+GetNzwo7FTF6AAAACAAAAAEwRAIgavzzBoSr/hw65wcObgepMt9OmHn7LFkJTsPBHJfptt4CIC40M3ZdMM8lolnZOH1GdI7m7t+r1b8ahTE4O3T3PQv+AAAAZgNCTkvIDF5AIgFys2re4slR8m8qV3gQxQAAAAgAAAABMEQCIBp+RWLUtN7Cct1iXolnYzqfWDvJS2SzsWV0RKz3ftsrAiBh0VIFJNZN+skukGa6NS9sNisWNvg/oGJRTDAq2NF0tQAAAGoHQkFOS0VUSL4Mgm8XaA2NpiCFW+id1lRMA0yhAAAAEgAAAAEwRAIgV/5fA1tmBden4fjAdVuY19N8X9+tOORSQ0T1V37McC0CIGpmhdo7ASkdMYXNGuK9E//4X8sHYkmbXRSxoWvGrh3lAAAAZgNCS1hFJFvFkhnuqvbNPzguB4pGH/neewAAABIAAAABMEQCIFY357ZnuO+HrimGm1rqqlaAzNC3E8qVzYu4f3a2sMZaAiBA3UCZQ7mbnH57VxCMBmZodUYjons8JaKjcGnvJF6yaQAAAGYDQkVEKvHfOrCrFX4eKtj4in0E++oMfcYAAAASAAAAATBEAiBVRnethHd7HU3xDBPJ7V1oyYQ9Hzbwvzw1j4f9hunrnAIgV3goCmOHl32k/KvoJMfmQvRbN3YtPBg0etWJ4KNVZgMAAABoBEJBTkstlKo+R9nVAkUDyoSR/Omi+02hmAAAABIAAAABMEUCIQCfRYh1noQni2b26bahFMdO/98SGdWXajEoaOG3vvFVMwIgMkL6OlGGpb7dhfs/aD5OhqA4cZErQfuSIR44cd1TU88AAABnA0xJQj/S50fOoOinjxgn6i/9MzRiimALAAAAEgAAAAEwRQIhALbQdwmTLSWKDdHims3AOlcUeCFnurdNYsKRDmlE/WVLAiAHwxeFX8s+841B6VHxoN/KWwWGKrFUSfmMg4MaY29TTQAAAGcDVkxUa3haAyISaCbYIm134XPXXa+4TREAAAASAAAAATBFAiEA+jN41BgtAoHN1f7UmGvQBFW+AD/vqgvtIQ0APSYxTk4CIGLwBsAVZDCppCSn2y11XXyDP2frk400KwUepGOATWorAAAAawdCU09DSUFMJqeb1wmn715fdHuNj4MybqBE2MwAAAAIAAAAATBFAiEAs49W9iZkVj8qFg3zcpToEqWCbjdne5Tsx7K7lrhrUp4CIF++reFPJn0QyfhAWbarep3dWzRyrauJmOOsPGNN9JutAAAAZgNDQlXO9GMF0Jb6h23SMEi/gPk0UoLj/AAAAAAAAAABMEQCIBypRU268CU40Qv7evU3UcxJChNnVygYj/Rm662N98B4AiAlliH2WEbxYwDDt935LilyHGwrh5BiLbZRe2w3yQe5VAAAAGYDQkFPN0y4wnEw4sngT0QwPzyDUbneYcEAAAASAAAAATBEAiAq8bvP+3tMEsollqPcJEuWvdvZHXq3y3d2H4vo0TlibAIgO30wuNN3SoedpwxtByYPx1CJS1Q6fCKl/V6YWzCEh7sAAABnBEJPTkQDkdICH4ncM59g//hFRuoj4zd1DwAAABIAAAABMEQCIEwUDlNVhDF0VzTnWsS44+3n23osCPEiOO68Ygq+BVVGAiB+fGoAEzDVYt6c9nEA+7mPb+Bl+9Y0aMlSM7jms7muGQAAAGgEQlJUUvCs+JSecF4Ou2y0LCFksLmGRUIjAAAACAAAAAEwRQIhAKsWArAf90rbIynN5wi6dqBOMxrZtqhu0HouJ48IXfJ+AiBmR6np30itCmGWgP5ETsRXgRG+tGRMj0JZ5+XWOk/0qwAAAGcEQkFSVFTJ6i6cno7YZdtKTOZxHCoNUGO6AAAAEgAAAAEwRAIgG2E7T95jkEvcZngUZzaE64/9OxX3wwzjo+bycxWRI+gCIBEmFIPZMlsNxA8pMLt16ZX5mAE+rELKBIY05zy9f5gsAAAAZgNCQVOn7SmyU9i04xCc4HyA/FcPgbY2lgAAABIAAAABMEQCIALAS2jgI+vQfui5lrsao/4mSp+DvvZsdfM/XU3y4KltAiBU2J/t9FMsuEdRjS5mslj46DXyx7dpkewYvQ/K/xi5wgAAAGgEQkFTRQcVDpGbTeX9amPeH5OEgoOW8l/cAAAACQAAAAEwRQIhAI3R/S4w5oCgR9SRPiVM4AqYoV0K6IWzJWsOSeQJCPAxAiAOzdAqUKqjIuUXh5n+wuVm3swyBuxwYamrcf/PeIOqQQAAAGYDQkxPaEgfLAK+N4aYesK8MycXHF0F+b0AAAASAAAAATBEAiBDmt0pOHCBtFen1XntBeOXvTUgm2VLidmX5wUZAvt85AIgMW4Chjd9rv1LxuO4qEc81OtHyyYzglYS+K0ty9aJCFoAAABpBUJBU0lD8lyRyH4LH9m0Bkrw9CcVeqsBk6cAAAASAAAAATBFAiEA1HVFhA9Rd/cdKDU80IuIOJ+LxE/RSIqMgtZnfhda810CIHPiH/tavvfHsOH1/a/+c547/SGKbxj3Tkak2kMdVElrAAAAaQVCQVNJROM/NjNRGG4YVHDzX23rlKukQ0fYAAAAEgAAAAEwRQIhALHtNoTW/55VW924mvNxJGqfPRd5etSvfZNwP0KY1d/nAiAs+NhjZm0LoePt1Wsq25lidmDOc1g9vSMPlLNJKHBERgAAAGYDQlNEAD4K8pFuWY+l6lyy2k7f2prtn94AAAASAAAAATBEAiBx89YaKqTN0njRvGdPHFBh3Q45cR+b2j7++0dHVLdgRQIgdAg9hBcUUHzfgd0MtZcZYDrmhOlmc0kRQeyzGGSWvikAAABoBEJTRFPnycGIE499cJRdQg11+Mp9irnHAAAAABIAAAABMEUCIQCiXOgOBdnqDALbswZX4ZZdJITds5CNTtGSN/AHIQcR4QIgCf0yiQd1uzxYWCdurbVRtkBZ2DUj4fnomTWonf1dVIUAAABoBEJTS1TAOEG1E1YAMScH056yrw0q1dUakQAAABIAAAABMEUCIQCO4sMlXTbfLsmafrQNRHtEKe1lyjXHU3DjzZWL55t8TgIgIZr6YcQSjduyS8ZCfHgSmIc53fAtpWfM0cerXknawQEAAABnA0JESQMJyYsb/6NQvLP5+5eAlwyjKlBgAAAAEgAAAAEwRQIhALNsg+MrYhcInKt0Mgtkcs3fvgOjPHYdA/xza169fh57AiArTt/p3JdanTtpMZf/ZmPmXxyBX2twV0MKEj/mf3oPpgAAAGcEQkFTS0RWTQvZQ0P3LjyKDSIwi3+nHbC7AAAAEgAAAAEwRAIgTPLQm+DnIBwraTBhUobxIvpxAkfbOpE043ZQ17nZExACICjJraMPjj8fpO/i5UNCb/lNJveLRMKdPkYt733AKUnyAAAAaARiYXN0R+t5IX9C+S29dBrdGxpng6LIc88AAAASAAAAATBFAiEA/Y79NXvJ+vInUDIuUkZzh4noPlqkgreabpkZUaoF3lcCIHZsB022yX5z8YVpk0vmjZUpnFX3sBBULrW6RGAjKCwkAAAAZwRCR0FOw7UoSywM+hhxpqxjttbuQ8CL3HkAAAASAAAAATBEAiANu6ijnjawNUWFzT42vANecPENXlbLGJ7kvv2uP85hCAIgTJ/aYA4HyYNVg1gx+m7fuMb0kCiY5o6ay9YqTtHGtIQAAABpBUJBU3YyEGU4zBb5OHdsfBgBhpdbyiOHUocAAAASAAAAATBFAiEA71uN7z7P0vyHqyyLjnps9FUOloXXJEX57TU94VB8gfsCIGjPDucGCiKyaFS+qMisntupvxy9AuJ1tg9vRTj7mKlXAAAAZgNCQVQNh3X2SEMGeacJ6Y0rDLYlDSiH7wAAABIAAAABMEQCIDnog9ScuxDoaAUnbDMtTE0hJV8dzoFstU/v5UhBJjFhAiAAlVludGYmYck7fzHA6SguM6VxUTTA59OpjPWkY37V8QAAAGcDQlZBENiNdJXKOB3xORIpvbgtAVua0X0AAAASAAAAATBFAiEAqwXKPsVpY7bbf9JBEvyEvz7X4wVBbmt5ZRnAz29CTxYCICPLurwFrZGwuEsEGokl8fvOQL2VnjsHaMGh3wvc1mxRAAAAaARCQVhfmgJCt6M9rL5A7bkng0+W6zn4+8sAAAASAAAAATBFAiEAtLJvf0GhDIK08Nbd7U3eu9me0RTgpvw+YHGLk5cyG50CIGzmDIY+ssvOFtkPGGXy0otBW14wK8eHIXw62OFJUFtQAAAAaAVTV0VFUP4qW5Qgg9khNcf+Nku3UhjlR8xiAAAAEgAAAAEwRAIgEA3hV+un1gNZUccDW7F1tPG48wWVry19klgIcQaNvfsCIFkc1gcTJNAaCBnt4bzEKUW7Tt2YJaDYuL3NFVsAkwyPAAAAZwRCQVpUsCDtVGUYMYeOXJZ+CVOpAHhhePkAAAASAAAAATBEAiBRjgmAugo8rxvdWNSsTMvDASwwmJTxz8DBfU1DEcbMMgIgVem04orftEe35SxmiNB89Nv5jnWuPZx9l9IGgvu0NpQAAABlAkJCQ1IFEq7bmPRjoSnsddsw98M+oiIAAAASAAAAATBEAiACcZE40LBTb6rcE+zXAcjD3QCwHSV4cDtfaNn8dWJvLwIgeHSeVS7jsHJnpnkLLLALHtxBOB8hffAne2oypTgexa0AAABnA0JCTjWmlkKFcIO6LzC/q3NdrMfwuslpAAAAEgAAAAEwRQIhAKDznqp1VCcIv2iszm0I8Bh2hoDn+S1CxU7DIYXspo70AiBtGf33pC8x/BpfyXwg9mXRR83lNInPo8KaJr5G1/FBTQAAAGgEQkNBUB9B5C0KnjwN07oVtSc0J4O0MgCpAAAAAAAAAAEwRQIhAJGfF2+egdGN87VGKvj7Xdq4y/wB7f/PjivlOISXLlKxAiA5w6XbnA0ruhgiLCReQg6PLRtsD6hom/3tLS2TlHkCkwAAAGcEQkNBVP3qpKuf6lGa/XTfIleiHlvKDf0/AAAAEgAAAAEwRAIgHU0veToAAef8oU8Tgdk1EJg07bcyuLMfLbKXeoWLObwCIEAZk+TO4u//ibXBYR/iFcPpvTG6ImdxsPFLk4xKBxRRAAAAZwNCQ0OuF/T1yjL3fqjjeG23wLL+h3rBdgAAABIAAAABMEUCIQD1bjCGSDvRbHJ7fmYClh5BNGLPWJSEnQCtVuYGCi/xmAIgXRDytgTTSnc3aHf5tBtFlY69BKozCrIYLEOsDYtDgEQAAABoBEJDRE4eeXzphsPP9EcvfTjVxKulXf7+QAAAAA8AAAABMEUCIQCCrB2InQRy+BAabv2lls7OosSPaWCYWx8DdNkDicdwRwIgIPSk5sl4qbEoFhQaa9LbPSMBXALL6PGscaOCM9KDlsQAAABrB0JDSEJFQVKp/GXaNgZM5UXodpDgb13hDFLGkAAAABIAAAABMEUCIQDVVcr/CU13GCt5sBhQ1PfjX8j9w/WNkPFbjV8HlUUAkQIgf7BqJqDSUVeX4ffnTTO+Iw98/33fC9AAy1DKi6qV5d0AAABqB0JDSEJVTExMEz4IHftYWOOcynTmm/YD1AnlegAAABIAAAABMEQCIGYOFtcnVfu8nezwlJHECUX7l32Or/o5WeN0mW0LeglGAiBoGr3DGU/QNvhpa6VhwEE/pq0ZVnOwe9AWUWUL4/F4ywAAAGgEQkNIQyqwW5FcMAk2eRZbzbqcJtjNi+6ZAAAAEgAAAAEwRQIhAOsKdZNlqXLy2JhZaREuQs+P/w2mhsC0MYhIsQnDb5NmAiA9i8qpQtuFXS0WYEdtL9845ydgjlWsOODF1zVl2W4ZZQAAAGwIQkNISEVER0UC6Ipon9+5IOeqYXT7ercq3TxWlAAAABIAAAABMEUCIQDcNNOR6ICf8tfXNRkUQ3bGUeOrL7aWenprEPbhX2JCmAIgQJtUAbCW+pLbok42+rQl7PWfKYpOLrSVA8W8EJJJHMMAAABmA0JDTLwSNFUuvqMrUSEZA1a7ptO7Ilu1AAAAEgAAAAEwRAIgFNoT7RfO4huF93LXhI4rguYA0EmecO3a9legkZK9TzMCICsUcSfDid0dFQTCSO8rFay+QMg58cw8WKDrSxRq+0FyAAAAZwNCQ1BGEgIcdYCRYL5g2yH7ydat0LMt7wAAABIAAAABMEUCIQCiViaooTrsq1I9RvCMq5k6Dl68vu1dM7RCHbOoj3NNcQIgdfcT2IG8CTd2Xu3OcneO0gpO92Fy51p4V+7zCiCKe3UAAABoBEJDUFQcRIF1Dapf9SGip0kNmYHtRkZdvQAAABIAAAABMEUCIQD+HcUi+ck+z5MsIGbKZscKgJE8HyicVwgd8wu7HRU+KwIgNHaUI9s3SLZwcDMJPBVjxzQr2HWmu0aR1iglK+MEYWUAAABnA0JDUwMGbaQ05SZO8LMveHkj+XSlcm/cAAAAEgAAAAEwRQIhAITcJMBcvEXKwaN/u+bjm/ZBBz7hEmcCRsQBqutmIeRUAiAvk50mKaiNNHK3vaOn9yRTEbQFxQ1AzBx0u3aLY7wWYQAAAGcEQkRDQzo1R9Yun552+Z1R1atPB6rg2y27AAAAEgAAAAEwRAIgS00JVnsu77chgwIYNH4va7KACi9qkpKkCGSylrRcRK4CIEH1WYwZLbftUxnDLiXE5DBOR4qBl29//riqrKOHdeTcAAAAZgNCREu/wVAuvDdHW5QM7Y8Da5EBinPI9gAAABIAAAABMEQCIA6K7JF61b8KBrUSx8XP2pw1pkIDaEyJfYjX1PoSbrsYAiAu+4O2FiGO3oR9nY2rWtKBtg6Tn98cldT4uXQldg7iAgAAAGYDQkRQ89y8bXKk4YkveRe3xDt0Ex34SA4AAAASAAAAATBEAiBy7kh8S0u6ZcUrYKjdcnI96LlbFg2TIvL1TpWtEJ06EwIgVKYxDJF8XTQkT5NnnhvBnzCuGDUN3Z3tVz8MLqii8hAAAABmA0JHQ9NMkoFYWGap+yrwkxrbH6Ne1EA5AAAACAAAAAEwRAIgDa0ldlb3EN12KH7Ix80S8ucQ0AOhWVnu3d4gRxOK/uECIGTNkYjUPSON6fmXjLdOIBYi7dCZs7Comj8HqK+IZ2Q7AAAAaAVCRUFDSL0VxMjNKKCOQ4RuMVXAGh9kjY1CAAAACQAAAAEwRAIgFkNJjujPjdwb+DBlCDUPRfl+cOetq26dXmlwSCbDUVECIC27M8SDeGYolKk5yXrdoo2WaCoreJ2a6KEQVl344hGqAAAAaARCRUFSAW7nNzJIqAveH9a6oAExHSM7PPoAAAASAAAAATBFAiEAp0QaQBMEuLzn/g2w4BK3EcT9BNZHJISJVonfieY8J5MCIBL1u0D9qlpiWGi9OH3KgYH/zIdLYitE9I6WU5qf5JP3AAAAbAhCRUFSU0hJVEje4ZyBuJqatHM2G656GSEPLeqkAAAAEgAAAAEwRQIhAJGBa4sY2584FpOIOO9FA+CH7Imh2yN49EzG0GzDiM0BAiAF2Uec3qX+QJyy9/wbQGKJy7acl/8LWo6znxx2q6jQ1wAAAGgFQkVBU1TnKDRZDXoznq145/vR08f3b260MAAAAAkAAAABMEQCICP/8Ck1J8QtdUMOMUlfFue3R8gnUzwJsVmavUThFJXmAiBnpP1O7JMG9XtLyA1e7HgTQvJU6dmtKeUx5dUzqOIAOwAAAGgEQkVBVC+xK8z29d0zi3a+eEqTreByQlaQAAAAEgAAAAEwRQIhALm93h8ckS9BRs/3NDWh0FeqkZa3oYYoq8iMyaEo4AHkAiAP/BzfoR9Swbld6g3ZY4myKcLZB3shrEvNRoGr9fMDngAAAGcEQkJORLwNhPpiYOBl8zDVFiHWgtJjD0qiAAAAEgAAAAEwRAIgDN5FfNosjAfiT4R/l61kjhkQ9sdKGTc/WzLwbESx+gsCIHE7rW0Jrbv8zMaWBHeWqVDZaWcoZPaGmmsGuBhTyGMUAAAAZwRTT05HoYoL5Zk2bI4v//2DokGKPMuCXX8AAAASAAAAATBEAiAVreKa9igYypMYolQBl4LY7OThhpW+kG+e8RCDr9DF4wIgOmYsrw2ufVl0hu62goaOM8xsK5JSvoO3UsNFACJ1jjcAAABmA0JYWYJ9U8gXCvUmJfQUveADJvyKCF6GAAAAEgAAAAEwRAIgThTas63Gk6VZkZFo4Q4bcS11B4JCs1FjGi995fAOO4QCIGy4KbqPz7gvdlL9OmTK97TQN8Ayo98Rf+vS1xKPHKqrAAAAZwNCRUUXY61zaU1NZPtxcysGjjKscqNFsQAAABIAAAABMEUCIQDApsdCENYT2iqGQgVkHKUBBQE3IOSmGjEIYsh4I8e5YAIgEMA3l320J0/WrEWOIx88O31jZKHnIsbcorlc8/f851EAAABmA0JFRU2PwUU6DzWemclnWVTmVtgNmW+/AAAAEgAAAAEwRAIgYeXi/2TOKRagdXhOHL8i+7SWa3nqRibVVOounjjcJ4wCIHCQq+ToW7jk6D/XSL7dZZdulxiObaM0DIbmmoM+rufdAAAAaARCRUVSLpKGQkCBniKG1ECwxHcHfdZgs0AAAAAJAAAAATBFAiEAzFTgHN4BUNzwYw6xcN5p8a82zfjZNAoSE+gP9P1BAnMCICPLpbK1yibR3glY0XoOnfiCy8sNsPqdYMR/pkMX+6O8AAAAZwRCQ0JDc2emgDnUcE8wv79tlIAgw7B9/FkAAAASAAAAATBEAiBr/Y/kpWFeLYK8mc0WHbAUd023LyJ8s4iSEFP9vuuP1QIgRd4fqIRZQM2kCpR3Gfb8XhP2ppu0h4rLZbi+Y1t60BEAAABrCEJlZXJDb2ludMHkuMrlkmnsHYXT1PMkOWBI9KwAAAAAAAAAATBEAiB71q8b7IVYQTy8MCrQP2TfULR/FheR8rR8uVWalJxZjgIgDGrOfiLCO3g5Ppg9fG8VYWdfwUEsIR7rSTB9f+AIVqoAAABnA0JVQ8o8GKZbgC7CZ/j0gCVF5/U9JMdeAAAAEgAAAAEwRQIhAOwnQqn7zxDYbDQlatVVkODsyR7Eli8sSFeE65Iw+4cWAiAnhseN6SZ9VHIR8xI8uOzFIsGM3I8+hDv+tQRzVFMaeQAAAGYDRVlFFV/xqF9EDuCjguqUnyTOTgt1HGUAAAASAAAAATBEAiAMy4my3me1OXSiOzwmC7qOAB3gNCikhbytVdrDn73u7AIgcAWUNau4OxFPyCIrVb2UKL1xEMQ2b2PWSEbV03Ojkj8AAABnBEJMVlLR75pzENCAaFXGciiO9aG6tizvMwAAABIAAAABMEQCIHn0DxIO/OO2SwfB9a3UV1i6oyuX4QN+p9EnhQH0f4JIAiAywK8onRBrDGDy9mBRPvotWq27TQgfoRJti6RThvDIjQAAAGcDQkVMqRrGPQQN6xt6Xk1BNK0j6wugfhQAAAASAAAAATBFAiEA2yeFn2LxXSzQtkbRQaVxvacnQo3lMVVun+2ueHcRuw0CIHQnTxTluZsWzd2pndWHiLB9Z8E5COuMFzA52w2z+k6nAAAAZwNCQkk31AUQovW8mKp6D3v0s0U7z7kKwQAAABIAAAABMEUCIQDxJ78RBbny2flsbfgPiMqFOUUSzw3gFOzWiVr+2Ik4YQIgai8zwUhyNsX8CmWP9WGFMt7kBQt3yTDczfihx5T/8V8AAABnA0JOVrvc4FbL5WHuAECUx1CZFy5+OzTfAAAAEgAAAAEwRQIhAOxZD3Uei+yApWmif4ujEtVxqDzKw8KZ8H4jHGFt4CrVAiBXUNJXxsbKWwhA/INLA0NkFYn2eCBqZBhU1nSc6+zZUAAAAGgETUFSS2fFl2JLF7Fvt3lZIXNgt80YKEJTAAAACQAAAAEwRQIhAI+sovlheH7zpxqOLGFJvLgvztlMZUCCevCf9DACyYuOAiAtdTBDenjdqjNFRQ157SxbHRD0Ug8WtsHqQEno0qzS1QAAAGgEQk5GVNosQk/JjHQcLU7y9CiXzv7Yl8p1AAAACQAAAAEwRQIhAORGa5C8BqbqQ3ZgssK88nG2Hmnx9GsMgPa3OkyF+BJMAiBHv+yy38wJfQvtHm4b5VJRcR4NA+SgAe9N7O14/A1mZwAAAGYDQk5Q0n12obpVzlwCkczQT+u+eT0i6/QAAAASAAAAATBEAiBYY8ZH2ZEfIQflP+Zwu8kDBMMPepPEmlOkoeHQ10T86QIgKZXIDr1V24S6BTlF1xBJj9vcUPQLdwyOghBxybojIf0AAABmA0JTQ8+tV6Z2iYCc2pl/ZVgCoRmDjJzsAAAABwAAAAEwRAIgb2RiZGkl+0O92RtX05JoVxeHwasftfG3cnV4UoqXBdsCIGw0kY2NPMZwfBP4PBQoH/n31Y5zyuqNgzerEinuet5NAAAAZgNCWk5lJLh5YMLVc65RT9QYF3fnhCQ11AAAABIAAAABMEQCIBuVkLsTf1AnbSFD2+rFBG5BHNmnkIk6h9rIgmfdp2cyAiBlkzIsLrvLBjS2E+c25O8wdh7vhAgmbdsOUVJx2FoXIgAAAGYDQldG9+BNijIim0ymOqUe6pl5xyh/6kgAAAAFAAAAATBEAiAsLmid+tXzSsYZ0jzkthHF51Kyp5XfbxYI68Ay5RZRsQIgS+DG5h7ATasKcVOo173SV4l6p4DGpPqjo/PB7goeZGYAAABoBERZTkHcdkUP1+Y1JzP+hVDvq/91Cy3g4wAAABIAAAABMEUCIQCGAeCTEjrJ+U2HHctNH2XS+5+g7jolpfCz2Hu4Yg7RvgIgZP4H43wSDI4ymKdDfT90auiq9CdEeWwHfAFhN9RwliQAAABnBEZMRVgNfepZIlNQhweN09fFVOqfJlXUywAAABIAAAABMEQCIHTcq16BsmIVSOWbxXzOiX7CUcMvm4Tqi34MuH4JtQ8CAiAUFOycqZflXRz857nx+pbPPZm02J2l+JPm6amtMnud6QAAAGgFQkVSUllq65XwbNqEyjRcLeDzt/lpI6RPTAAAAA4AAAABMEQCIHG7fkdH8tOQrDhbAT9zF08Sib/KPcqcYBkxv/8Iji9AAiBH97HrdzX7Wh2hViEG2prDvw4S9wwUjZKC5rixJfvp9QAAAGcDQlNUC0aA6Ej4QrhuTfONn6DZ+UGfN+wAAAASAAAAATBFAiEA3PvE2eTKx3AY/88LGd5cpVY5tNEYYQOzmADaOHZw+4kCIEs5P+wjjx0PDknteRl1cZ4v95WhG5pyLa078CyWs6dQAAAAZwNCUEPoZaBPsNVlEH6vkEnvIsJ90MS77wAAABIAAAABMEUCIQDBlcHWnAN1uSPdMz7uXowvYEmLel08plH2JxED3zqvQgIgf7kCMabtxTtvB/HAmkom7IaNWaw1xaqaOEU4bDGX0VwAAABnA0JFVIqjOniZ/MjqX75qYIoQnDiTobiyAAAAEgAAAAEwRQIhANoNtWMPPfeqvolTvj1UaQuC9+QsmlwhwAR/7D153o1tAiBoEBn3TXB0QiqA014lSKfImhYNCrxrI4WboYcwmRNLmgAAAGYDQkhS/l2QjJrYX2URhdqmpHcHJuKyfQkAAAASAAAAATBEAiA1bhHjHQ3UeIQ4zhOUq4UVkoQf35Y035pFtAsHi9PUlQIgJxVj+0g7RL2yHqmsoTJhDAehoi6ELJXgnUelY+zDeQMAAABnA0JFQ1nAM+xl5rnFAcHuNPtC8lddpLUXAAAAEgAAAAEwRQIhANlsR5Xl5E7OIC+kfvBHfbkDJLT3xY6i9nhpPGPu1QNXAiBpVJSHa50jeoSnlC7eDacnKNMJnUkJ8k2Pvg8vVhYBSAAAAGoGQkVUSEVSFMkm8ikARLZH4b8gcuZ7SV7/GQUAAAASAAAAATBFAiEAj85dBUszpAWRdAkICSVUt3Ldqp3tiR9ITTRcYbnXk+kCICYeFpcPZrHEOCOjqaAC5siJkv9NHzoQMrGlmTSb36udAAAAZwNCS0Kyv+twuQPxuqx/K6LGKTTH5bl0xAAAAAgAAAABMEUCIQCenuYpDAyw3zOlgZj5HjxAL909mRtwbZEWTk0EUn7mQQIgBWapVtH7gEhA8gSQN7Ai6JvKgCi7wNqdeBqLz+3+UBMAAABnA0JOSUmBVT6Mz235FrNqLWtvj8VnYopRAAAAEgAAAAEwRQIhANvK4ScYAQd0DO9GagvDpDWb66VTtOOyjvrcIpb0QyAVAiA1yFLrSl6bQP2NxGkhzp8O+RHth3D/7RYFdeQoUu724gAAAGkFQkVQUk/PPIvi4sQjMdqA7yEOmxswfAPTagAAABIAAAABMEUCIQCuTSwd75kCRKb3AJAOriot4hfanIZWq7sWqIcKSV0Q6QIgWCXmOJYpcqXEyXGdixC4ghPE73p+smCkM0dUgcqIoowAAABnBEJFVFJ2MYbrjUhW1TbtRHgwKXEhT+vGqQAAABIAAAABMEQCIA8mrjttkGU+tgxxTHboZDlE6yVXkFiIxYPWehCOB7ByAiBVLSChE4ThLo589CgQUcMn9CJm2qtmF2cUeqm1v5vJWwAAAGoGQkVUVEVSp5JaoqbkV1qwx00WnzvD4D1MMZoAAAAEAAAAATBFAiEAusL/4qdxslIpSBjDBZZbw2rOr7nOgCs2ArnqGijWIYwCIDFMieN31A9Orz4Wx+KGfmLN1QkYA6KjY47wBU9JWOhiAAAAZgNCWU5LsyBb9ki39Z75De4PG2L2EWvHygAAABIAAAABMEQCID/ak28kCPwfDgwcRlDEJUngayUg67rV7945XbHOnmMYAiBoJl/BpaC8YvRtfYOk+eTKC6rU+5zim39pXat3LxMJqgAAAGgEQlpOVOGu6YSVNl/BeWmcG7PnYfpxa+5iAAAAEgAAAAEwRQIhAN/6YyWhPHRy/fCl+0cnp6T/3gcMwtaTr/g5VTguDQHFAiAorDDZBV4iun/J5DJqISUqzwwNWnZpKCGj3n2p5elQxwAAAGkGQkVaT0dF3DSZE9U7RGSF6Yt2gAtiVPQ99pUAAAAJAAAAATBEAiBBk25AxGIZy1jNV5338Ba0n3ZYZ9zojyV0bHAuYGttZgIgHEX8nkuBLJP6qD0LaOmQDdk4k7q+x6+WTZVmbo9XrpcAAABnA0Jlejg52LoxJ1GqAkj+1qi6y4QwjiDtAAAAEgAAAAEwRQIhAL46od7dwnjrslnLOOd61oLCIGMeKtrbaiThFxc9QiXWAiBK6YjjWoAhBG7hmMIdGfUFzD6pzVG+8K6qVTU6CESOLAAAAGcDQkZUAf9Q+Lf3Tk8AWA2Vls09DW1uMm8AAAASAAAAATBFAiEArQxi3x6gnZQDD68jH09Ny3oK4BayEN755pkjVSS49t4CIFTnkK4WPuHuT4R3rg727zMN/v7gGADbMkfZQgfhtlBfAAAAZgNCR0fqVMgf4Pct6OhrbceKknGqOSXjtQAAABIAAAABMEQCIERr8qRoSS61zEg/dW1bsWkIvAifDytT97NQxYFeQT4BAiAYrlAeC1UAmKVIA3QpQ93LoPehn2Yi0geWvvDBkg6lWQAAAGcDQkdUXLuJsDU02CaSsYOILCoqn/f960QAAAASAAAAATBFAiEAoR/CCXxm6okZq/yiK33bVTdp9XgUykKv5Zj2LwgK1UMCIE6zz8G8zr5ke+PwOu47+4OKaFblLwEXvkxCKjAxWoLHAAAAaARCSFBD7nQRD7WhAHsGKC4N5dc6Yb9B2c0AAAASAAAAATBFAiEAuiG54Vzy5XLZh8HbbuadBdraEY326YfLS9TagvNBhHYCIAMsKPW7V4jneBsjHUKVcy0g063gYTU8UC1hOCJWx3ERAAAAaARCSUNP8X5lgitWizkDaFp8n0ls92VsxsIAAAASAAAAATBFAiEAjnuyqUP+oJQkxiR/eeTf05q2ae1LlYTyLC60fyCiD58CID/57S6IeSk5iA3+b19Qii+DAtVowaa/XpOLGDKiQSPJAAAAZgNCSUQl4UdBcMTAqmT6mBI73I20nXgC+gAAABIAAAABMEQCIFu4HwTKmtpc8IVvyNNFBv+o8fQT0Gmd68/s0ziqLDYpAiA1FHolQkJ94QrARnoWdDIMTLAVJ5cNhhkfQwnZwS1spgAAAGcDQkRQWTEU8DoKV1rs6e1nXlLtaNIXK4wAAAASAAAAATBFAiEAsp6uhhkaLjJz/A0J1VDH40h+GP7fOnzmcMg8JkGiH7ECIEbl2TkQmHrmE0GJANsSR+cMwCyZFXikEGRXrSjkZic1AAAAaARCaUZpJ5G/1g0jIVC/+Gs5txRsDqqiuoEAAAASAAAAATBFAiEAskgyqqwfVs7Bal/LmcbBlBnmXUM/BISE5NdzCgzYRK4CIH13C4WGAtPshRU7oJeA3mT8dW/mAzD6cXMc1U3s42mNAAAAZgNCRkMMfVrgFvgGYDyxeCvqKaxpRxyrnAAAABIAAAABMEQCIEtUK3Pp6Zu0oTieav9PLozwsHzAg99EnFtg5UAWiruaAiAGYcYZAku+7AQQcp81xu2mB5vxTTAnmZL4C3Rj9ZIWMwAAAGYDQkJXV/VdicMBcqkTuuEKLnAuUwLx41YAAAAJAAAAATBEAiApbxdd6Uf/G43lDZ1oVKdKZDU9blTi72IF7EZAENQ+fAIgElzTLi2vKcWvqQOPXYfHp+5gK1UrTj6p/nuvEsrOZ14AAABnBCRCSUfI3kO/4z/0lvoUwnDZyym9oZa5tQAAABIAAAABMEQCIET/uTbfFMuyUtY3mUFer5VcIpngInG21XLif16lVXTIAiAmY0umX68a53FA4vcNn22ITycDXX8Gl0RXDr6FcG3nWAAAAGcEQkJHQ0+7C0zY+WCsNCgZTxyUyAXVs1g2AAAACAAAAAEwRAIgAjtThiW+1esgI6HM2Kun68buMmtxOzc9hh145DImPmgCIGYcNYTNqcdxDA9xrADbRbxYHClLpO9VYOD+b8Irgiw3AAAAZwNCQk+E98RLb+0QgPZH41TVUllb4sxgLwAAABIAAAABMEUCIQCtohdpZdPkRx4llGgl6q0s1HrSrDF5RaQqtKZPmnVb+AIgfwxQr9hzlufddm74umEbn7R6fbBDuFo/MvsZtdbrFawAAABmA0JHQ9BD9w/wY0Fn2xFJsV5WaPW+UtcsAAAAEgAAAAEwRAIgNOspGJ8qm/INe6YjSF6xqzxAJ55+iq0SO+Q8lBxN5/wCIHF2Ak9iS5IUo8o6S95D8hT7ib1biglXZon2e6B1X172AAAAaARCSUdPpufcE1vfSz/ucYPqsuh8C7loR4MAAAAIAAAAATBFAiEA76ZTQWotts8ilvTBpaiKPyni5tK2f+ljSkmTBaMpcHwCIFeSQwOqFFWldd8lG1WBrIEE5+IQm7o95LZDVA9tjvCrAAAAZgNPTkWUZVHdBcWr18yAiSdIAiXONtjEdQAAABIAAAABMEQCIEKacrrBfJTfWfhF/cew3dFyOOntTb5snj5LPdb5FUDAAiArFhBxAswt4jUAzCHcs196668/yC4yGJOR9RgdokecHQAAAGYDS0VZTNmIr7rTcom6r1PBPpjivUaq6owAAAASAAAAATBEAiAG380J4cgpUw7t8GrdY7Lgz5tJBo5dEjNbp1nLBp06GwIgVSdNgRjGySayvuvGFyzlyUHRHFtYEFQLfuZDwRUYs18AAABnBEJJS0lw3rzasu8gvj0dv/aoRenMtuRpMAAAAAgAAAABMEQCICWgdnmFpzMcKwQ7cD74XRu0Aq8jOzBQkeEs95bElV04AiB9JWG9g4oVM46dtSOzTIpDk1o0BjDugh2oM0Ep0cnFRwAAAGcEVFJZYixTflYk5K+Ip65AYMAiYJN2yNDrAAAABgAAAAEwRAIgQmYeoy+JzXOEalz85n/HlOYtvgq8Q7CUX6c9aCypxTkCIA3HDT1/WHOWbItOgN7dQzXh4+jqqb1B8B8BMTsHvXAAAAAAZwNCQVLHPyR0ABrR1q7WFa9TYxFIz5jeawAAABIAAAABMEUCIQDJb0F6FAZVg9wsueOCD1M4NwSUZFktQNhpWzGnp47J3AIgZh+I2O/nPlB9d1xOcu6zuUtIegh70ieFnjh0piZhc3UAAABnA1hCTEmuwHUuaNAoLbVExnf2ukB7oX7XAAAAEgAAAAEwRQIhAJ2ea1NaN7Mzk6pfI4GE6p9BsV/ptEoX2oF5jw7gTmQDAiA0f0lPs5BI50K2DybN30SvWt3jMsCVLjpfcofSU6YGGgAAAGYDQklNnnzjbb0ammxugNCOOAd3RYVe3ToAAAASAAAAATBEAiAmZ4u7f5WXvadrEFv35ngnnjXJEFRUuvlC1jTHx+iSpgIgHp/3kPFkZLQdb0cu9N+kna+uGEnM1QIR5hnDKZasSCgAAABqB0JTQ0dJUkxOmkbqaiLziUq+4jAq1C/Ttp4h4gAAAAgAAAABMEQCIEBDGSEVEEzzIs0OF86rB7HhNF8PujZzYw8ZygHJTJOwAiA7so1UfB1X5MT2exFxqwRGJzOgreM3l+ovzffEOtFC0wAAAGcEQlVTRE+rsUXWRlKpSNclMwI/bnpiPHxTAAAAEgAAAAEwRAIgZey8jv5MZSmMqkwo8Ti4fSuJAPz7UNGMfHNU6D3fZlICIEUhBhkqoDq5Xfp/aGQtt+jt3ggThvJMcenCMeZN6OUhAAAAaARCQlRDm+idKkzRAtj+zGv52nk76ZXCJUEAAAAIAAAAATBFAiEA/A4OA2LL/UKiSxCb3Iv9AolifOTeCYZgBUreibdIAjECIBVWhJYbgyg/kivlxm/ZxXj2JnigDVCKjtwgTsAczBWpAAAAaARCRE9UeIT1HcFBA4c3HOYXR8tiZOHa7gsAAAAKAAAAATBFAiEAvtS9X/KWpeUCNgV0xZdJiqNM1eJ6ACMb6rC1hjZcY2cCIFzOVnjCAbh12Te6oz9DMTreTSXLEFC2yNFH4K0ZqdQBAAAAaARCRklMjha/RwZf6EOoL0OZuvWrrE4IIrcAAAASAAAAATBFAiEAwJFzrPW2YuTuA4DDnyB+vYrHK3Infe6PBHqTJ0OTy28CIFxQgiZdIQNMFkBfliREjwGkvrRxfguBxG0DurLsXwUQAAAAZwRCQ05UlmmJDkjzMKzYi3jWPhprNIJlLNkAAAASAAAAATBEAiBMppLIbqLP47F+prfan1kve8t/QCTX6Z6pRZ2AS/A7vgIgIw+KIu3Yw4rh8RfpOZYo4OW6TBnurcHBrDgfgOlpDyQAAABoBEJOVFiG0dElI7ZSA4UcVx/MApv5CQP7bQAAABIAAAABMEUCIQDABkQjZfSJov1dvCZrpiHG/QyoScz4cqTI8ZhkzdB2lgIgNzUdd4Kak0a+sLDaUe2GG8h63ndjOmacZxya+Vj8rWAAAABmA0JJT/GEMu+JTvSypXJvkzcY9ajPn/gxAAAACAAAAAEwRAIgQCZjK5wFpsdujzP2UHbGuv7vjSa5+e9+dtJPVjmAY68CIBl52uGJGfQyT3mACt2uKfT2H2aBpUj7JrSVfo3Nq+0bAAAAaARCS0tHivIvve/gG03Hlg7ATsc+hQL0prAAAAAIAAAAATBFAiEAu3lk57dsBe2IwnBU2XH3oZB7wuRYhMLuxXJXtdbYD70CIFuWJ5mZpK1HD+6Yx3qqs3tiQ+Oazg16ThKOLGCyi41BAAAAZgNCTkPvUck3f+sphW5hYlyvk5C9C2fqGAAAAAgAAAABMEQCIC2bwF8X4LCcrju+6AWznOGpQtopp9eFuGeaD2Vcg0MZAiAOCXSgtIWGuLKxqzFZl0EcupCnDTPcu21mHRQTV8doVgAAAGgEQklPTpsbHhCf8TCymM8dRzicR1afXCkyAAAAEgAAAAEwRQIhAKgTiGzl5xqi0ooffHTo7dJp+ttSJXQlBO8YrRqFnFoEAiB7Uh6jJfvOTjxa0XJQVZUBMCLEYArl64nemZgp7I+E6gAAAGgEQklPUClkHhCW1CQLCakzg5/qxXsgBlKkAAAAEgAAAAEwRQIhAM942tLdnqWqpzOTpeNtQsptfylAPfs80HrhpW3zHJesAiBO317yW9d8AF9m5mNGlNUqICskqIPG7neQsZBHHm7Q6QAAAGcEQklPVMB6FQ7K3yzDUvVYY5bjRKaxdiXrAAAACQAAAAEwRAIgd7ZMjqyr1ttrnmpdgPVROOwVvVXyvH39GK4AH3of6mQCIHLzkqPGDhBfl6xy2pNn2Cx/vC7JnrxjE1tSxN+kV2MqAAAAaARCSU9TqsqGuHbKARhEtXmOynpnWRqXQ8gAAAASAAAAATBFAiEArKetAQ82joK5CIGa1XAJCrd/jGeUuRcH/TeUCBWO4bgCIGMWj544FsNXFOlTTtVkboMqy9rhJ8PLgiD9473sf0SAAAAAaARCSVJEcEAd/RQqFtxwMcVuhi/IjLlTfOAAAAASAAAAATBFAiEA66CUl/GRxZ0mOA5zJpVzRBrFZouqh++IzK+WT9iCv/QCIAFZchkRz4kFz+7Ib23BvKyXtYphtoyQVlZL6CERSMLJAAAAZwRCSVJEAm5i3e0aatB9k9OflrnqvVlmXg0AAAASAAAAATBEAiB7JxK5faesn1bZz3lhrEuWKY0oonGclQC1VQdCL0PMbQIgDrx6/34ioh8jfqjHPfUbSxqoZZTdccklbOmbmNlFPJcAAABnA0JQWCqko+i7cr5ooxycPJjKe+xyPGIiAAAAEgAAAAEwRQIhAOgI23cLKYDz82GH1d4mBu6nj02gkWo57ZSZ/4o6kxvsAiAP05HcFYpFH4QIXL0M7sZKvFGonkxlz9ir7xsWSKO6PgAAAGgEQklTVG6JCM+ogcn28sZNNDbnuAsb8Ak/AAAAEgAAAAEwRQIhAIknWFoQDzMrKTACl/ftivSBd92dG6YLNR2LsvSRLu2pAiBe14HyQZ7JXAsFAik4O+0SMHS0WqqDST7W80Eqqe/OBQAAAGYDQjJN18MC/DrIKcfolqMsS9Em8+i9Ch8AAAASAAAAATBEAiADKJfGiPnFhjk9THXRDkI5XhfN7ZxtLYvskCZ8uib1RAIgR1S1yQHHqmKadcYmcPN+CgNOmGIiTxMR0uNpDNF08R0AAABnA0JGQ00xIA5teFTC9mSvf8OKIWAJYPdNAAAAEgAAAAEwRQIhAKNzECx2bADIkI11vDZX+V+akuG0PCcoUYXQ279TEMvvAiBPwbW3B311weQaMq1LU7HKTTfmR/iLkQlvf+EchQocDwAAAGcEQlRDQQJyWDbr8+zbHN8cewL8u/qic2r4AAAACAAAAAEwRAIgcrMwjW/FWKRu7iK3TZPPvGqT9QDpyAzeLDxMQcqF8TsCIDWy0t2BwkdABFwLeCEROsVme4hoC/W/f0wUz1+XJGndAAAAZwNCQVMqBdItsHm8QML3eh0f9wOlbmMcwQAAAAgAAAABMEUCIQDOQzSi8WDpDpmdwDOQ57mfc03JjOtqAqCdgffG0016TQIgbfyhjGudL0XDBE11qctNR4ZImxJvKGNWAh5o76zTBksAAABoBEJUWl+naULQTPu7ej8gaHrB0R0VAYXzjQAAABIAAAABMEUCIQDrPTBiBuIGNEPlCDm+HS0yU0+6XABoCDVKGtf9M3MmSQIgL9sBwU90jxfXE/r4abx23vGnKIdII7V6Xh2O0rB5dU8AAABmA0JUWl+8PLi0KMwAoEgIhwKV05lizH/uAAAAEgAAAAEwRAIgCWHXkWniMXYJlenFuZUOnRcwyXtId1V8WOIC/gOT00UCIDFQ3DYJ3n/0z9Kd9d1oyqrE5CumlVuSUdzTN/2KS0n6AAAAZwNCVEIG4P6w10EGx62oSXdUB00iLsa83wAAABIAAAABMEUCIQC6tl5wNuw+HT3E7BgPEM499AtLMwF03mtpU0+YvoR/jAIgQknMTDdvTuAu4hZt0lpxyUHZi9dJXE+r1BH9nQP8mrAAAABnBEJUUlNzySdcOi3YS1dB/VmuvxAskesDPwAAABIAAAABMEQCIDrDlwiXZglItRR3DLAjb2GjWVwoLH9ULFtf3CI4p2NMAiAHrevbUL2CEot5V9tb5LBI8NqZsEbUVAqNabtKYhRzyAAAAGgEQlRCUzLmw0zVcIervVm1pK7MTLSVkkNWAAAAEgAAAAEwRQIhAPMBT53rp+M/TOfu5EFi/I30RhI7CAiVULyxQDu5BJy2AiAfLnl6qNwA2izcz6y+5GIfTl+JGbN+HzNFyq/qpr3OWAAAAGYDQkJSdnGQTu1/EICLZk/DC7hpP9cjer8AAAASAAAAATBEAiAzCLBbKVY3hydzSy6Wn+iBBMASIF1ldbfQk/TKa7AyMgIgJhCWxlGZ7nOe4RC7dZ9iDhrbfJ+SQLJRi4ucyn4sd4IAAABmA0JYS+tphazW0Mv/YLiAMrCymsHZ1mobAAAAEgAAAAEwRAIgJ50c+EtNyMcMvvasAkW+EiH4yMz2rBhDnACKuAGez2ACICO8L2Rru3XBgKYuQSnw3RBjqU9g4V701jBK7nk89XREAAAAZwNCQlQVACBfUL8/2XZGbQZikFyf8lT8nAAAAAQAAAABMEUCIQCXMWrwgc4WVJ7b6oLe60RKJO/xMJjSgLfnsk6aAN5SmQIgdHwSNbmhy32DQlh/X/novw34vd8HmQCc+WWUcMUzodcAAABnA0JCULsKAJuh6yDFBix5BDLwgPZZdmKvAAAAEgAAAAEwRQIhAOim53wTzb79JVvM4KOmbpyapIcmOvXkhtSh+H24GGBtAiA4pjwhFjFJ9eemiNLcOPr0hlVhB/fcuIaqI8KmnfFT1QAAAGYDQkNWEBRhPis8vE1XUFTUmC5YDZuZ17EAAAAIAAAAATBEAiAWFR/FCvLIkWcp0TNq8zZOQd4otYossKTHAZ2EU9kDgAIgKUD7Qnxh7x+ZKEKfOJ1v8Q65dw3QTSXDhmrCAVuLrPAAAABqBkJJVENBUgi0yGaunRvlagbgwwIFS0/+BntDAAAACAAAAAEwRQIhAOlpLOdSpGKBa5OYZWRY03FdKw8LoKP5R4oujA9VlHssAiBykGxQXIVlzS3qKDR6qPgwM5q/WNmGi2YgxKVXG7u7XQAAAGcDQkNQ4EdwURfrB+cSw9aE9bGOdFd+g6wAAAAIAAAAATBFAiEA20PzWpoSUwTopOcJfNMYYLUFKaWPdb+oSvKPygKD12UCIAPQNHjHCbJdFfjovsmkni2yJN9iYiEbArQuSqS/BFi3AAAAaQZiaXRjY2Hk116bSTRY0DKlw8we6bBxLB7OBgAAAAIAAAABMEQCIFsRrUACpPW1Rnz7NNCM/m7Sss3Q1U+xBHlYs/vRYBBUAiBiDfkQIOs0vSO+a+Kvg1f7VvA3f1XQuxN4RcsStBX/RgAAAGcEQlBSTxl+a8prwvSI7HYKbORrE5nNKVSwAAAACAAAAAEwRAIgNHcKxGYbEOfdVgPOm3m2m33/RCvrs4lSmN5WOIG4vd8CIF3eQM3vH6Xn4pWKWf0uG3fJvEibWz9m2UeVxultfBYoAAAAZwNCRkZwiqToquqtYHTdCcxOXFKnBFLrOQAAAAgAAAABMEUCIQC4ZZNWBR2lT2ECD47RBopNpBPFhVzdj6wCXHXucDO2dgIgBmTcYuF1K5eF70SK+bqtYzK6O0rACN9lFnGrF9AomTUAAABmA0JUURaw5irBOi+u020YvOI1bSWrPPrTAAAAEgAAAAEwRAIgQGjaFzVF5VclB3ecNwvT8yggQtQChVV7iJTO5FDJ2v4CIBXJsp4PYG1b7MHByRbwTUP7zj19WxF4ZbdB61MRal8GAAAAZQJWRJqbubSxG/jsz/hLWKbMzNQFin8NAAAACAAAAAEwRAIgGG16Gn2JMYpQL0yUz9IFIxKPmtdAIGBFQJ238VI5220CIDY3FlqgNipd9n88spOwLpgsEeuBwjPSdIerrW7altNPAAAAZwRCVENGIlkn+Ppx0W7geWi4dGNk0dn4Ob0AAAAIAAAAATBEAiAeSYKwwLTzt1xmVPGbz1wA3KNY3XxIGFVlI8dfy4CzDgIgIaxBB4yDejnu9CWV/iglObCNyJ6dPsQvxqLbl2mPNX4AAABoBUJZVEUz/zK23GY+mqPvYRF3ScbMwWgQC5kAAAASAAAAATBEAiBqtrye5BPD8lcoQJIbkqfJZmOQywtcB2a/jzvFUf6crgIgAJQ74pldiYZTXjIzaXY4vA/2Qvdhu1qecXAmWxPcA0UAAABpBkJUQ09ORYf16MNCUhiDfzy2fblBrwwBMj5WAAAAEgAAAAEwRAIgJJQQ6cbYmTH8DZKGiC1mlp59XU5dpQES9vScK4i511ACIEt1W5EmbKXHEs9mvsYD68tpREOJbJjzjNFyj89ia/8wAAAAaARCVENSaqyMuYYeQr+CWfWr3GrjromQnhEAAAAIAAAAATBFAiEAt4gb/EPOQ1dRIDLRHOqpVTA61rIL9h69IUGRpAJJ7EgCICdsd60De5UHfr/EUU+be7mxCgCc1nnZ0qxx/7VkljOmAAAAZwRCVFJMOI/YpRRdbvharhTUlPk9+dHHwAwAAAAIAAAAATBEAiBjj0234H7rUxXqrjwAzyWJ8BtkS9LQajgCNX09FXuD0AIgBuhK2LOw6ppshoevmrZHcEbaRTqQCy6hG6aGa6PXqn4AAABnA0JUS9uGRvW0h7Xdl5+sYYNQ6FAY9VfUAAAAEgAAAAEwRQIhAIrq5hsI1OBEBUjceXqk5yAKudsraKBSVV8lq+zrTtMcAiBACUWMsOTHGjt+cOPF4iGkrZBKMdiermbwq8yJMhtkTAAAAGgEQlRDVIIKhIFFHok7xm3OUMhNRWF8rDcFAAAAEgAAAAEwRQIhALCia1HZpq1eNXPLy0pI7wHsHBIOL3Zsf49mz9Dmbni2AiAJBJ6aaLqCmHYLZlBrrkA1nRLcyjsCoWSNTIQDOPnKpAAAAGgFQlRDVUlfLsnPHsHA4siAtlhJIegSpCJTlQAAAAgAAAABMEQCIDLjIGCdEZS4sU+SrzRY9Rz1xB2RU/RDPC89C0Yv37KlAiBiJ2RZshvSID2YasjIhRqLyQY4ZzLq2ljDkYlG4GHCQAAAAGgEQlZPTIGCRmM1Op0psBst6d2aK7Jx0pjNAAAAEgAAAAEwRQIhALMtDCo0YheOrYOr85wL2gQrSbiMhOohb8yKf6tTHHHVAiAByTdio3o01B+kGPA5kcEK0pkXNcpfSAax4t27w1VstwAAAGgEQlRDMMTzPxXtLyxfjVtULdMFGKUNn4Q/AAAAEgAAAAEwRQIhALtxqCgBdse39cNbQAJf1vtxYnL5I9YWSVr/aCbsRoPGAiAaxo60Lcn7zkEPP5pjOchETzILOAySzpHbTU1AXYPfUwAAAGcEQlRDQvLO6QMJQYNTpXcX7KJsT4dU8NhOAAAAEgAAAAEwRAIgYOm/tr6bNIhqemB+Nfq4XDV3X6VGy8btmI2sNlgoOmkCIDHc9Ti38kKfuEabBNpa5cu/bPkRL1HFjbKAI0IFaAXVAAAAZwRCSVROQa1AkzScimDeWRo8N9zRhFWOquMAAAASAAAAATBEAiBki5kvQiOgZexWvpa0liL47n7CVeJM2PRIp4bEZBD5bgIgD7YEMpAx9mnSBMYW0HMgeCvoCi9QDGiR7pbFy7Q+XTIAAABpBUJUQ0dXMF+BV8H4QfvTePY2q/OQxbTA4zAAAAAIAAAAATBFAiEAwBxO9jJgkveDkyE5FR1PHdUjPoy5ZM/lJZQol1pf4wgCIESYJxxtY/wnsN9mn3ouk6hxvbNe7gYob7tFgWcCmSZgAAAAaQVCVENIR1VHE2uRO2iIFZYnWs4B6aWJxbFrAAAAEgAAAAEwRQIhAOh4R0EGb/bBgFG4gJZ8qTI38sA4Gc+h025mjZFCmhHfAiA8B/ZU4g7nS31vbpoaizV3wASdEF9sCQEJdf/2559evQAAAGYDQkNQ0m+xFEAeyGiHzQn2LszZX88gtXEAAAAIAAAAATBEAiAndQaeogQHF3AAxd8MqxgaC1FGBXUl3bYxJwdfWjDX4QIgDMCAzQa7H6Q0nUpYQn3hyezPExf2vWRcJ9lEmWsmL3cAAABnBEJUQ1ByPL/AXiz8xx09iedw0ygBpe71qwAAAAgAAAABMEQCIDEX2Od2fnTwwqXUk3LDXuipW+StGTj19FFz1Sh/bmRLAiARF0bTC/ISf1R/VfnZv6uu9LmghSPzkYsCGdN5RrfpGgAAAGcEQlNPViaUatpey1fzofkWBQUM5FxILJ6xAAAACAAAAAEwRAIgEn1PgFE638pvkHFe6gzMSgS61HLY3IrWJdOyeIIi4iACIHCd73kqKqmoot5ndPvMoUlOQkTT/bu0FFNRDsmTH+u2AAAAZwRCSVRTw48ftJrN8vEhPK8zGfbrPqLLdScAAAASAAAAATBEAiBTNZZZ0hdziy4OpNOQaIhgFvpJYDQqgLE+Ph/kg4YaAwIgE++07oUVeSfy2YjlqiOw7jpiycSWDdIbmdudGRN+zBQAAABoBEJDVlSNcXq16sEBa2TCp/0Ecg/S0n0bhgAAABIAAAABMEUCIQCD2m8i1z7qAmayluOOLUKJw9ccVAQNpSvE/ZFFwqkS7AIgeMhc6/C86G8I51wGrfnvzWU42sSqOwnjQdZTH3CiRPEAAABmA0JDQcIi5biTCfq1+vVaOzvZCCvoNJFsAAAABgAAAAEwRAIgWWt4Eem+ouOVowXXyPJ83MNWuvhzq6tyJsWZccqPCRYCIDLj9LRWVjkGrngnNJZ6OvsKJ/lN9NIorxhRRMW9ieWDAAAAZQJCTeL+Xn4gbntGytalFGMg5bS5oY6XAAAAAgAAAAEwRAIgZt8I8JcWU83NjJYoWBmeI22AD+vkjr76Up8tmi5dPlYCID23Ksl1Gfa8AeXttWQ/rNkvaodv/78hYY2ryfKId7nuAAAAZgNCQ1SewlFAHq+36Y83odkRwK6gLLY6gAAAABIAAAABMEQCIHlYeTXbJS0CvFE3cRjbM1f5tIDAdTDeJ4JXAaRkzxvbAiBUpporhHQWaecB8TJv6JfqXtzIbXAueW300LhE9azdPgAAAGgEQkNUUleTUyMfNUCyGCOXdEIpYsZKNpPnAAAAEgAAAAEwRQIhAOr7XC1ZMXZhm8ZW0CEsudQtk+lWFykZtID3PLXeFOQbAiB0a1ImYm06dghdDkG6fE2pQ8XQ92f+q2p3tjmkkrT8HAAAAGgEQlRDUgNx97IZ//hktDe8+1ZIEPMj//zKAAAABAAAAAEwRQIhAO7Gv46Raovy/MCOgsPvRWlGfHaVHSzq8cz5mnYjKRDrAiAfSkOqI8nWaqEadkrnb4CJ2SumwotfjhYIBo9mziySXwAAAGcDQklUGktGaWsrtHlOs9TCbxxV+RcPpMUAAAASAAAAATBFAiEAjb3i3WPYBsVt856Gdg9SHtcsYA4fyHeMmllrEGUhoboCIGncGmHI1Qtmfz1fgbwIPdmHO8KMqdmJwnoKf1IwbxTTAAAAZwNCRmkrKwVZCBxB6WJ3e1BJYy/bMPfmUgAAAAgAAAABMEUCIQCCsOvU4K/bIKoWxSU4azuMs5gjG/L8QtSGsaHKwsQK0QIgYyEL2aAOG+4RrZtS/+EP/zGFOANV4oWGhL7zykOpHIwAAABnA0JERxlhszMZae1SdwdR/HGO9TCDi23uAAAAEgAAAAEwRQIhALXalCghleAvJG3UWEL/dgx32K13L025dKgAeZxrz77XAiACKFlx3eSM+2vLmn4bwds3BkeaOe7h5ZXBz+L9NRyndgAAAGcEQ1NOTynXUnesfwM1shZdCJXocly/ZY1zAAAACAAAAAEwRAIgORMrI3W4NkfVZ9tDkpaaUe4ma/7/3AsPQSatwwd3NDACIAIsE5Z/B4l+juiBTUPbeZ1EGI6ifWKqSq994WlM5XbDAAAAZQJCVJl1B8xJ+/DNbOXh7lQyGFVvr968AAAAEgAAAAEwRAIgQgfnFX6jbbgvePOm1fubz2KXHHHJiAy+euYz4gBtx/cCIC2TTK6LqdDm7X1Y5guHAoz7RZRXFY1Ikinx+0qnFVp4AAAAbQlFVEhCVEM3NTKmwEAEXZYuS476AJVMfSPM0KK4rQAAABIAAAABMEUCIQC7qVGxgWtYHGYKgShuBBszKGN7Ut+aMDrYZ1+aTjkMeQIgHSeDdgetDv+g8YvYrccNiFbbL4C3eaQpGO4piVwlDmcAAABsCUJUQ0VUSDc1MqNfxQGcTcUJOUvU10WRoL+IUsGVAAAAEgAAAAEwRAIgO0+RvPiz6fEXkuDQaPLflyWpXYsPuWGiI2Om5tzYD5gCIAs/RYEIWnOunhxXsjzRvdA6ZSvpRbm7ojAduMeNk3m8AAAAZwNCVFQICqB+LHGFFQ1+TamIOKjS/qw9/AAAAAAAAAABMEUCIQCyHhXdRnwR4f7QAnJ/3uDHA628Mr6gLzwz42djlX1kqgIgI6wwv3XAoIXxWURVq4pRQisM7ovUoKsyRN3X1rm30mkAAABnA0JUUkmaa3e8JcJrz4Jl4hArGz3RYXAkAAAAEgAAAAEwRQIhAOm429tNk/NKLhEeMPk5J2LjUDjL8bzEOhQJ2KotWKG2AiBaA6xcM3pKIVEz8DPXjwcmywZHVsyvHUWnfeO5I0JOGwAAAGcDWEJYV8CajeCw9HH4VnYJd3rd/7XEaggAAAASAAAAATBFAiEAmHXklTTz/OIKcbWQFCn6Rgsdgzf/89FyginHvQYWHJYCIHMX3tSwG51OGhmylW6Xko0lF6exwqJFPBIltQPDsaB1AAAAZwNCRknJgL4BnyrBChyW+WS5caX0RVHTGAAAABIAAAABMEUCIQC34+hbNQ2i4+Fl7thjMY5U/1FPlmfJoSbVreYQkrclrgIgbjNjL9B4vt/HiWXdCy4vINvWrQPH8OL7S1yXMgGiaycAAABnA0ZMWHCxR+AekoXnzmi5ukN/46kZDnVqAAAAEgAAAAEwRQIhALnqoYdCtRkOgcuMlKm7FgJyUzdPP07++oqOlJn0K0pPAiBB7YgGByDRCz45W4iU4gTjPIw3PDwOkAvjoAGu3JliLAAAAGYCQkZbcb7p2WGxuEj4SF7sjYeH+AIX9QAAABIAAAABMEUCIQDcTDTj0lp1blGUMKNvLHdXT0SZbczd9zMHlax/8G5ENAIgYcf2G3Mrp0+yo7w0DcvoHDYgho7FWg0wDumYhQO9HJgAAABnA0JYVCTXfCEKAUseEjoIePbJA990ojF7AAAACAAAAAEwRQIhAKBHVKgdJmevQajcBPkY31IFlkyrzRi3japwIJcoWKYkAiAWT9mf0RtOzQA0wK71c7brO1aAW8B4ZNR88W7Y/bZ0EAAAAGcER0VBUhuYDgWUPePbOkWccjJTONMntvWpAAAAEgAAAAEwRAIgSISK+oX+FwhXAOtKIL8RR34JNqiKROKqFH/8nL64t3YCID5CUwEoE1EdgANDWLR7gb/fQFPbyUiZ+KuOizlnEiQ0AAAAZgNCR0IZ3muJftFKN23aD+U6VCDSrIKKKAAAABIAAAABMEQCIG2chow43Xnb+7pYroms1sAIX8z6Zg0uVqNwSGS1wnzWAiBS7mGfkt8Rk24r1bQ0ruLBPImN7bgI09YhUWRiJRDgAgAAAGYDQkdSmGMDw5jb8ylfpK2YJ0rSDPz4DAgAAAASAAAAATBEAiA/oiWGDLUGi2RjU0fiL9IpRET4EvhY5Swz5qI4VkHt2QIgaRvm4r9bGqVrT2oXSghWhQ9ZKjVnp48KN74J3TSFbdcAAABnBEJJVEiIEeTdXsXrh2S5fMgUsTOQiXF62gAAAAgAAAABMEQCIG49MgL+xk6eIQjYKpIXRPatfzY4PkAihNsmx6ZVAWPzAiBdSQRnf7JR6QSZHBxtPrIpw5amnq2moulOpwmVW0pPCgAAAGcEQkhBT218fXZNbx36JWx0q7TE14YdjuZMAAAAEgAAAAEwRAIgR1PyUYp/JFEShT+Ob4NQ7iuhoUlTA/uQtwIQrnPbMnsCICzb31kM0PFXSy3cj3SxrE4YiAFcr4OsFeg1VtQURr5yAAAAZgJCVGYoYGwyH69StyMKV7JsAbGapo6CAAAAEgAAAAEwRQIhAKgahi5bYt/KGehzwxB1avXoeBoTNy6xLCANBJYqcMfoAiBmkBZpB5+dvE6axEUb1ftcPrb6KnuuMvxwtg4EhWB4tQAAAGYDQlRSy/FfuCRvZ5+d8BNYgcspo3Rvc0sAAAASAAAAATBEAiAk7FZE4Pnq3tJ8Bj0Z9B3WwCcKxAKEXQvVIIeeY/jZhwIgfnavLOOXoto+g5I3bLzmb8R/fmN5j2XFOYKteSo74REAAABnBEJJVFig7UxKy/B8AzZda74oFQqBmv9wDwAAABIAAAABMEQCIE9YWsctYNwLSQjh5qNW7WsIliHO3eMWFPNov0CcEMJyAiAe3IZcY0vSjo0/ZQd/ODz+crqEW0HQoiYdmrGv8b6XRQAAAGUDQktCXDm8aOWKJCpiTk/Ja+d6ODxSAC0AAAASAAAAATBDAiBLLFROD57VdWL8WAzJLlxvoZPOh4go3YGvywMmOfAyjgIfSGEZSYV/3Rtjzya9DNUqFqOtSdvSyaUIYBY0pe+E5gAAAGcET1JHTh6VoNOcPZipJqd1ZRCK0ITx6d9cAAAAEgAAAAEwRAIgdzAYXItRlyShux5yyL5wfKpLnVehHssI7MN1diyhB9gCIHcTF57g0jGcfFB7h708PkEhO8ZPe0+QMx0pYUVs3OHgAAAAZgNCVEv4PJEb6XyEx41zKMTbicMHkG+Q3AAAAAYAAAABMEQCIHtHcUqZaQ3aYQ78YIFe1zbDkqrFY5QAyig3lqkCFaDLAiBrEPtuULbzTUqcuwL+4hLnXObioYiv6hFjMWmn6y67MAAAAGcDQlRMkmhek5VlN8Jbt11dR/ykJm3WKLgAAAAEAAAAATBFAiEA3YaJ2GgToCq2TpQVDF+rTKvsJr+AOFmV6EVL0rYzsM8CICpdxSyRZ9qYXRdzQY1vvXmnMdudzHfftrtMVxvt2SqbAAAAZgNCTViYbuK5RMQtAX9SryHExpuE2+o12AAAABIAAAABMEQCIDJcs+6SN4963G6NjXZWna3PR8KsWtAqUk5RG0VXYSDDAiBAUdXsh7lv8aSchbDPKbuhLSZHOYwFybPCkpEBwXCQgwAAAGgEQlRNWMygycODB2ZJYE7jGyAki8BP32HKAAAAEgAAAAEwRQIhAMgqsDogE4Oodg1VpGyeSgfpGqMCO/Yf3Y0CqY9UrbUaAiBSOXNf/8BzZzy+/BxLTyA8OM/Kq515nD4CkLln8EEw8QAAAGgEQlRNWBwomhKoVSsxTQ0VPWmR/SelSqZAAAAAEgAAAAEwRQIhAMgcjrvMCdHYD4xxaOv+nSw+BXny0t6QcQbQ31fjeIuYAiAQjQ3OVtF0bVEiM8Xj3qzWqRotCyOLG7g1apNEzqtBSAAAAGUCQk5C7cHF/1f/UkDJDi2N+iadd9aAEwAAABIAAAABMEQCIFI7kOvrvAj8nM/mzG00absnJTecPiRfU8Cxx638EWjuAiAIKNmuGxRBpELIottsZmyTNysRm1YG5xv1R6FJM1b+kQAAAGkFQlROWViPtsikSk4j/R9ak2gYs5CDtM3IZQAAABIAAAABMEUCIQDlNjz/6sNYJzUKbdcywpi39d1lJNyvQf0LZA22uOtzDQIgYSYsG9C7ftkmaVLSOjXXp7j5MmtcSkmCs7KoJCZqJacAAABnBEJJVE+TseeKPmUs0uccSnZ1lbdygjRJMgAAABIAAAABMEQCIGjqHmrT0ROnPifDv0bZXvI1JDp5So6FQchOTbfPy+PYAiBNatncnc7JCXHo68ojHiCjzAtZIG4bgJdSxK88rsx03wAAAGgFQlBBS0PfItqajB2ACVF1rmAdGCpzSSPwGgAAAAgAAAABMEQCIA+mJu2EIIvfOMuuA6oCN2PJtf8OG2u7lNU6L2JPsbcEAiA8OcFhBLCCdBVptgnSed07KdkSnBLCufwAuQdo3GC98AAAAGgEQkVTVBsHM4LmNBHjvP/pCsG5pD/voexvAAAACAAAAAEwRQIhAJFePR/dq58cU6+oj5xZ7V65I/oqNljYGbrZMs4AfeVYAiAJOeW7qIwaSzVK3noUkBUQVGwYk2dCLf10A9ckHhXyKAAAAGsHQklUUEFSS/PSn7mNLcXnjIcZje75k3c0X9bxAAAACAAAAAEwRQIhANoqq44RqN39Xp2+0lrRXf88CJpTr7okypzcEvqxrolCAiBYEym2gCj1WJ1bVbDQc26Dw39JqWqqcGbx0qNUXLSGNgAAAGcDQlBUKDZpEjvYPaJTa7U04gUSEBwY5dgAAAAJAAAAATBFAiEAie5a2HjAYaVrvvejJJFUYSj7DFpgHOMLkMLOrdJeh7ICIFS9vhS0rZIY/ufQ9LoGwBrtfEHqFO/f3dRru3YBp75PAAAAZgNCUFBS2QTv8mBUY8LwszjTSrybfD47CAAAABIAAAABMEQCIHhT68Edm+E+9qVvpRN4CK3QX+AdAeox2GQHo5b+7WfRAiBu0OqKUi7p0Yco2UXCjPQ2dBqGxleKarpJz3sK/+LFgAAAAGYDQklUR9pCaWqGbNxhpMgJpRVQCiQpCcEAAAASAAAAATBEAiBsw8+dqUDvxNRoMBU+sL46pgwAgbnR+/VaWVjXBV8OnQIgCpCcRhoaNfkc6tZiVqjF1iFXWaAdpNPNEY97EILPSpgAAABnA0JUUszmP9MekFPBEMdM68N8jjWKaqW9AAAABAAAAAEwRQIhAMnKrUcWCTplHbpsk4MSzoU0qPcbjeDu+ZlitJ3uK0JJAiAhHOiVlBwd5MCDTH5/QfS06H3M0W/lXnFlDdxDJSqqDwAAAGcDQlRS1DMTjRK+uZKf9v1YPcg2Y+6mqqUAAAASAAAAATBFAiEAzbhiMTvQ/mO3weVzIOo1CR74YdKv4Szw2KyJDbu5wuECIH0Sg35b17Lb/gREqBYLOeKejtN+50sWg51lPqnLdO6JAAAAaARCSVRY/yszU8MBXp8fv5W5vaI/WKp84AcAAAASAAAAATBFAiEA+Z8oSMVuPj0KsCmCoomLY6RdN4aw1jZhw0N3J2gzBhQCIGxRFvbdRMu7J/j8XrN5nNELG86i4vKkbiDDaeOmDn0LAAAAZwRCVFNHBQeWh9Nbk1OMvVn+VZY4DK6QVKkAAAASAAAAATBEAiAKomA+QUp3Wb+HVoiKj94Om0Lb9HQn8XeOj/JhAictlAIgcurysJrDAe3qU6KDx8rhkBZyRw2SqqIguObfiSr8BEUAAABmA0JUVTx271O+Ru0um+Ik6PC5LorLwk6gAAAAAwAAAAEwRAIgFkjOKsUB8j/wN1YUVw0IncvoKtCkiPkdmIozGfzlCB0CIHZV0Moe5Az2S6V26d/oWTqu8RTz+RkIEnOGX6jLjB4xAAAAaARTUFdO5RbXjXhMd9R5l3vliQWz8rERESYAAAASAAAAATBFAiEAvQys/1/BTDyndaq3XfQL4jW9DfQH7y9Ag5hi2bVBDk0CIFvDoZK2C/VIaOVXufypUXzXdRlz/C2f7tNuM8XnVADjAAAAaAVTVEFTSOTzVuzOb72oHs3qLjhSfllCKGHCAAAACAAAAAEwRAIgOaykS9jIx8iPnhMAQQqYbkfcIo8hGS9soi5vdrsD3DsCICFrd3d7+L7ZB0u9GORJM+2qQhlJfBim5YvzUSmkgQSDAAAAZgNCU1TU9vmuFDmf1euN/Hcl8AlKGn9dgAAAABIAAAABMEQCIFZliAkxWMpI4vd/40hvScef7CFrrXE38NpN+1FNn6FZAiByR+HRNAXnlkwlHkxQHcdQBw9A6etGon8i3y1PkcN0aAAAAGkFQklUVE+hAeJ/Bql5hbkl4kQRG2FWDs2X2wAAABIAAAABMEUCIQCOvq4vFYl+zfphWd/Lmhm4rb6oNkz1Qm3cubZnBFFnkAIgG7Z1LothaD11t+aHTBYamJVD5KLhXmSbTD4ijt0XuPQAAABnBEJJVFSfmROFP3SbP+bW1OFqHMPBZWttUQAAABIAAAABMEQCIDLiY4dR2WDk5utwzAShTfrfy/8+xbqSTFL0uL6HGwxHAiA93LQIOIlZMWQcRuwtiq6nDp3AoqjQgLUZZVnLWLvZ1gAAAGYDQlRUxmmSgYXbzknSIwzJsJeb5tx5eVcAAAASAAAAATBEAiAh6V3hwC0mKjL1zoHM+Izql4EZqa0ehQp4D1rtywbISgIgL65o7hqAKR9KiaU6rNYXqzS1NOR1WaeMWMBigORDCc0AAABnA0JUVSsE2t1BL3KB08yr+4Ql/ZyehBWIAAAACAAAAAEwRQIhAKOZgv5wdNnezngU9S3A+0FsnhGGMh2ZoDZtXe4fkbcBAiADbr4nYday09rt0FS/fT71oRTkuDxljP8RkJI/1vh5BAAAAGYDQldUyj6jBh1jjgIROqlgNAyYNDtazWIAAAASAAAAATBEAiBvDztvbZNloQY+Il65y+V+dqJCuM0fc1mkDJ63WHsgAgIgPriXfbwSt8WcyXHqExbSi+s+ZPWbiQ9iX5YEDSuTT+QAAABmA0JUVrg3tkZ7SHj7WzuBZkBChSWT8VEmAAAAEgAAAAEwRAIgZzWYjJER+hb92glX8EQ1Uu8sge8LPbJOvy4hsE1yz88CIGjOswHVZsQvWRydxddnBhh/LIOSffPkK6s9X8A4GNimAAAAaARXRUxMGwa0PzsLutc3hNhYx4LgKfP1rxQAAAASAAAAATBFAiEAhOFgof0iK0a5n+fd6f8hWLcFahbKNRk0K8EEtUDENnACICQoQYdJEPfUxuqVVINXgnd+88/8SuujXFMjCciJezIsAAAAZwNCSVizEEtLnaggJei5+Psos1U84vZwaQAAABIAAAABMEUCIQDCJ7EX0Zqxt8O/jGpvdh8IGByP95PPxM8JluNTGXW0xAIgbhRohbzpglGjJDGUzlEH3HkWCIPizva1Fi++i7nJLP4AAABqB0JJWENQUk8+njcfjS6fyjFfsKdHUzztij/LywAAAAQAAAABMEQCICC1lkiiDMDJeRpwZ+45nR6gMIgjqWqSO4CUU6HsV/7gAiBX3HGl+DDLmfrH8KavueUdpJrvVJTjcObrEkGaiviNkwAAAGcDQklYAJxDtCrvrFkMcZ6XECBXWXQSKAMAAAASAAAAATBFAiEAo9tciwtjrkyzOv4UtyLqFmxZW1zsu8eQDjx9Nzkot5ICIB6pu9UKWUGg0MDsWbP4yxgjADpFQKcZONYJTXGVAcMIAAAAZwRCSVpaeoyi+BWiYGYBWKOMNMoyGjYF7P4AAAAIAAAAATBEAiBeEjxc1oF7h7semN//r2SqTEBtnvvS0WLAh0ij80pjQQIgWT4EZVnpD12L8buXqpnzDE7q6VO5zeM11OHGovAGpbIAAABnA0JLQzS99IqPdT3kgips+x/uJ1+bTWYuAAAAEgAAAAEwRQIhAMHQr4N8nf8c2AHXaFZpHpJnSILlI2HAl/2FV55SVY7wAiBZilRqBQgFFLg/BUHpy9UiaYabwfBvyHV7WoVap/xKQwAAAGcEQlRLQ2aCGV4qAEjOOLcno3EYAtWCRGBuAAAAEgAAAAEwRAIgFDifD72WC6U5RUWQVUQN1WsC0v7SXi3Q1CNrDwk9YyECICZkNTEQgt3/36ojIkK84vv++zo6IDWxwc0qhLxNfQZIAAAAZwNCS0sd96pVUegB4oAAfcD8BFTi0GwaiQAAABIAAAABMEUCIQD33t8Z/UoTbHZ+z9NowB74DqmNgAABGDymnbDdCJALcgIgBb+tj0SEpjv4Dmq0+ZUr5zAYQZgJ72O3l8cCK2f7ynwAAABlAkJL0L0SqNXryh4vpG2lnxmT7FHD11wAAAASAAAAATBEAiAqQuofMB3gE4CCp7LYHa5JNOlzhFTmcqso/UCKN6CDlwIgUrcLPBu2B5PTnO6aXAdbL/SqSv81q6lJxm2o3iNvaGUAAABpBUJMQUNLLeTvHrSBz0p7jJ+I9tLkc4fPr18AAAAEAAAAATBFAiEA6UMoEkWBp4Bn+BXEF9p3CLYHQ+BjVO0ML5I6C8rHfTgCIDR1yo5S7GueJ62WXjweuK0VEGOhDU+QwhXh4EzmDQz4AAAAZwRIT0xFA/tS1O5jOrDQbIM+Mu/djTiPPmoAAAASAAAAATBEAiASayR7+zOC2QXpnW4etDsmad66ksez+VKvf1AV9UuhXAIgLKl09OxOgCyktqwLw9vK9LVK6ILcuLwYxoW1TWhzXRAAAABoBUJJU0hVmQQ7toCrkmLHsqxSTgCyFe+325sAAAAJAAAAATBEAiApfWpeTr4PF6OGh8Ms5ealP2aHPXb3RVmHeWDt76I2kAIgTL8k/nk3GDqPJlFVPVHlbRvy+kO5Snyo4dyzixGd9IUAAABnA0JMQ0LbwA4U9xEmDmBu29TxQ5SrR4DYAAAAEgAAAAEwRQIhAOhr/xdg1tIQXYVI1zVbmhWLueitjxs3GXmEWssN84cAAiA55SEmKTsraA/ESRr9JvNZK++xz6VSgK5HYkzZ7hNTJgAAAGcDQkRUTv6GZeVkv0VMz1yQ7haBf3SF1c8AAAASAAAAATBFAiEA0EALZFDGBFU3ajQTEWr3aVp4pSnV+r3wXa+52a+mtz4CIGIOT0gNXTLKJw7ACLw0DAx/tAsICLqeedYifG80C2vmAAAAaARCTEZJQX/9vChd0sTcAJN3mKuQFjQTfKoAAAASAAAAATBFAiEAs/z9lknu/uoHG7WAwc36aRlIb7CyMfRKjZF5nLBTd0ICIC1PMtV7jZ3o8jTYCB9Aue2j58geRFPDz+2woBTpNBSMAAAAaQVCTEFDS9cU2RoWkSfhHY+rNmXXLot++dviAAAAEgAAAAEwRQIhAPv8gt10Ni4XtdOmoQX/YaiEMtWPLTN6iRhsxrpBBIZ2AiBDjjDfpuwUZPhBTNjC0RbkPrfy8489hdSypGu6QcnoNwAAAGgFQkhTYyQ1EBxzGxVIteSLsj+Z7bwvXDQZNQAAABIAAAABMEQCIFWDOTo07X7ijbAcfdVbq1QfGS4AlIL7u3M76/i7tX3uAiA7tQrhFiYL5g75BUKq2z5LXqG8jwVdaEvwpf3IUfxy+QAAAGcDQk1D327zQzUHgL+MNBC/Bi4MAVsd1nEAAAAIAAAAATBFAiEApK8TkPTYbxul3AzebRxEoovX175ti5vy8yztdT+aVOoCIDpceHeY+Lm32VD7Dqdye8LulnorNxDkqmqGQ2hL/510AAAAaARCUExDQm/IvpVXMjD25rxK+Rhz8MZ7IbQAAAASAAAAATBFAiEAsLT4HBy8n0dZc4j6ctZOR2KfPOCwtQlQYT12smOknVUCIHB6jarl7mz6/iVTXULM7y1EinDlqUrS8yvZFgCYwNv+AAAAZgNCUFQOyfdiAqcGHrmzp9a1nTYhWn432gAAABIAAAABMEQCIGI2OSdhCqd79Vt/9MOKTNIfuRoVVu8ewO46Fngide/iAiBxU+2wA/oQGGcTmDn5mkOK4vW5SJHKjg57JthLiQ1asgAAAGkFQkxBTkuux+H1MbsJEVEDxTunaCmRDsSJZgAAABIAAAABMEUCIQCf5bBRdpfX+j3b79mmHGbX740dRq1pcZb/KYLb/wkUSwIgE3mz75O632L8hcZq/AsH5UmY+Yfo7PQWrlbzMAo8Nq4AAABoBEJMWk5w79xIWhAhCwVu+OCjKZO8ZSmZXgAAABIAAAABMEUCIQDmqDxKG9Ug/wkA+D6ZBgNN7O/8HPdO4JjFrbbZq/+fpwIgNVfs9dIDVASUazPdhJGzeZTzedjG9UCOpQk4dpoWVDEAAABnBEJMRVPnltbKHOsbAi7OUpYia/eEEQAxzQAAABIAAAABMEQCIGV+Ug0Tru2iHu9eJ8a/ivhhChCvQXQruQJqwg1QwaauAiBq2d2uEJz+W5ZVdWYjQ8BJR9WvpoSp/dj0xbzah+TlJQAAAGkFQkxJTktCvt1kfjh9q+xlp9w6O6vMaLtmTQAAABIAAAABMEUCIQDX+6uWqHWmKof7+C+u5v79avx92X7YLxcVSOA0LnJD2gIgfMAfrgO22Wh5VpjGuUaYU0mjWXoJqoRIav8jShLhr6sAAABpBUJMSVNTUNLeU5fXxlfD1CRjSi3fTg1z14kAAAASAAAAATBFAiEAmAhzKwTsVPNuI0IYDd8c1zQNok1pWgVMS6o8b0CO7hQCICM19FJ+A7Bj+bcUJ6k77rCuLrsXGD3J/oCrvuAABPWqAAAAZgNYQlAo3uAdU/7Q7fX24xC/jvkxFROuQAAAABIAAAABMEQCIE9H94ISxr5ATHfBHCrHfD9w+yQ7Lk+Ahgs8ypSYLYmjAiBtJ//YIPm14EkYzGBYygXVO9UiNb109+hpW3ZtrDQFxgAAAGcDQkxZ+K19/mVhiKI+idoJUGrfetkpDV0AAAASAAAAATBFAiEA/qXPBqCY/vliZL0NPG26c0tngBCmM7qKJti9p1W7jwwCIDmLBATOtJoIo21TzGkllF1yVgyBds40D3TzK6XkTwAkAAAAZgMxOFRam/a63NJP4NWOEIcpDC/ixyhzagAAABIAAAABMEQCIFsEkaFINGLb4u5SApk7k8ZSZbfUYxqCIw4WyaOWrGo/AiAddMEAFyxBUvDocaURzKjwH5n8d2lI0PovKm5NbjYEYAAAAGcDQVJZpfj8CSGIDLc0I2i9Eo64BQRCsaEAAAASAAAAATBFAiEAjecy+mSWrT3+yEYpYUMInLW2UKfw8bZuW2kBxd6haRsCIFK0tBe4Jb7ey8DhNqxyx6IWgHhvStigicvFe69FFYvaAAAAZQJCQy7LE6jEWMN5xNmnJZ4gLeA8jz0ZAAAAEgAAAAEwRAIgb+CSRyQzV4nUbT6+wBXFVIvy9wwW1yNqTJv+Aa4eVYMCIGv1yBdkmuiLf6++CwilpO2ApbrT8wKCUTwL9Cq0aITYAAAAZgNCRFR7zmZ+8SAj3F+Fd9AVovCdmaXvWAAAABIAAAABMEQCICR1LKCfDEGVWMWo9vJmc478sszu2oXp5JC+aN1srCfiAiBbN7NGuOrPMsChwXcaX/Sx4Gqoos2+Zk/hxO/gQl3XRgAAAGgFQkJBTkv0tUcFI8zTFMa52gQQdufXng3yZwAAABIAAAABMEQCIAu5uYozCtneTZY6mY4cEwq4Ta1Uc4z/YKCZOo6BpEQrAiAib7vBG1rkzjvUiaBz9xQ6SHtGncMbvNdEh5q2XJO+WgAAAGgEQlVSToUVzQ8ArYGZbSS5qcNRIaO3WdbNAAAAEgAAAAEwRQIhAK+wuUu+Z3FaKSCwMeTzSVy3hG2RCzFPmNBxS0JoqRoMAiBwJI5OdJiyPz6TusmskTgNn+kYN/e/f30KuGYfiPkIDQAAAGkFQkNFUlS7H5GecOzFUzVUjXb1wVqdyPWAjgAAAAAAAAABMEUCIQCRKyI4eckrUbOIfm5uwxC+hqSm1um+CqkpSxI2GSEkoAIgYDHoQduEgUMLRf3NzlD04B+PfeiAOLKOrH/IG8Fa/XMAAABnA0JBR/MxIaIglgnK3HNJrMnEDkHOIccwAAAAEgAAAAEwRQIhAKQ+9f/5X2drlFiB8fo7emNNk4zwCBfC/PyF0JnbLQRWAiAYh4JnH+6DXospFlz+PFW2WvZeYpEjIdEo+DcqDmX4XAAAAGcDQkNCLYhlcKDaBIhb/W60jti4/wGg634AAAAJAAAAATBFAiEAlPReapvL4ys9Mk4RBnCW7QXEVQkZi9b3QVRazn08OzoCIFyD75YVzPx18imQrYdcTMGM7H+S0WzPz0BUawbLjzPsAAAAZwRCQ0RUrPogn7c7891bv7EQG5vJmcSQYqUAAAASAAAAATBEAiAsQWdgwcbDSfFX47XP8SS4kYuuIbZtym1ax70ynJDYGgIgfW36P1O3BsuYwDR/C4Z/urEBInSAMv+uQ9JH6BG2MJEAAABnBEJDVUcU2nsnsuD+3v4KZkEYsMm8aOLprwAAABIAAAABMEQCICFEynYQI8e//UTIkqnrOTF3RyE96yU8faEPO66bcsuRAiArxodKMEfAqw1GsFJkYj6bLOtqp3+KfxpIt0AxJ1bYOQAAAGgEQkNJT83EEvMG4MUeMkm4jGVCPNFrMiZzAAAAEgAAAAEwRQIhAK0WYuM4I+qWHy3Iu+gZN57OcTffVuAMYW4cVYStvPFZAiAYvG0WAIVI8vLKNHEy52lE3iU56UEmsooABWKyC6nChgAAAGYDQkNUXFI9ar4X6Y6qWMLfYqbskWLzuaEAAAASAAAAATBEAiBH8el5N8c70Ej9+mjefoZwG2otqSEuHhwIOm+lmln+ywIga/G2MBJAJlXXnmKcuA6igpNCGr9xKIGnSx5b5qILGm4AAABmA0JDUHLiA6F63RmjCZE3ydcBX9Pit9upAAAAEgAAAAEwRAIgDo2pEU+IYNFdkXf3ZUh5dNsQOy4c1O7cr98y5tNDNnUCIGeRuV8RVc/TsrYeQOfwbR9uGDB/AO0or4PHB5UpedJjAAAAZwRCTE9Db5GdZ5Z6l+o2GVojRtkkTmD+DdsAAAASAAAAATBEAiACvDN3xyC21qyLz+UxuEvdGk0WZvNjUXH2zT6rAGo9ogIgPyJ9ivwvJEOzddFx6fTGmYA5zyYLl3A1xq/JMOyhiZEAAABnA0JJVAibhfoV9ywQiMu+8jpJ24C5HdUhAAAACAAAAAEwRQIhAJaBeQ/nyG/TNbSkP6UEdGLhuvbIIc3O/CWf1szXwhT4AiBb20bRi61FBvSqyO6vSDOYA18nmuEoDLOM7gQ7Hrqk9QAAAGcETUVTSPAwRaTIB34487ji7TO4ruae34afAAAAEgAAAAEwRAIgZViDlQHeXsQSzU6Bx8a3MigZdG0wqB7b09LVPv6sdPgCIAm8NQTOlwXm703MQ4H0Wws6hAHGSzCF/1rWqOx/CCrhAAAAaARCTk9Yh1K/etU9JaQWW5Nw8r7MIt2K6DgAAAACAAAAATBFAiEAviZ5LctMUoER2W4q/CBuGixoRJ9ftpZRZyCU9mWeGgkCICOPBDvyubK4Ku2oyQKQ6CEznyqYe8Z3O3KrzKy+uwe2AAAAZgNCT1B/Hix9amm/NIJNcsU7RVDolcDYwgAAAAgAAAABMEQCIGAWIugW6U/ThiJJZKOWj+E36Xv7jsNZs9+BPO8AGnrFAiA2XhmBrnpLk1sW9OY+oFFWAZt8wQ9zeYtxwYjYpHrYnQAAAGYDQlBUMnaCd5urK/TRM36JdKud6CdafKgAAAASAAAAATBEAiBd9jZ3i5UeIT9b8HzPriPrZmo1cZaz2RWUpzme3XJ4qwIgA5ilz9qfD6kP9ZlQegljhpViGcaI5qKDtR0Dj0yq5WkAAABnBEJLUng8+eDDhaWr7J/SpxeQqjRMTo41cAAAABIAAAABMEQCIHAyi/Uyp+7L7L20PWTrKombw9LjEmv6AUzWy19varVeAiBECm/sr0fKJ1r1y+opQmvTSxtGEDVfaaBSsELNxs50SAAAAGkGQkxPQ0tTim1MhzU3Hrr4h0+9UYtW7dZgJOsAAAASAAAAATBEAiB8//MAqGCjAxVtIuN6fBpcjpUa5Gc/qz+h/z8kl7qF/wIgR0l8ZUHCPn/qzYMb6HMDgagHoCPL69UeqyaacmzcNhYAAABnA0JTVFCaOLehzA3Ng6qdBiFGY9nsfH9KAAAAEgAAAAEwRQIhAND+0uNghqfCdA4m19lyVEIb3T9U3Sf3ovFtLJxCgNoQAiADjJNA3U1ZDjCLZ+b5sRCVJ0kIcQoKh0SuRk7jK/Ml6wAAAGYDQktUnWJSb1znAZUMMPLKynDt9w+fvw8AAAASAAAAATBEAiB52aSnTeAZNihXRLTu9V7pI1iFLPvDXUQA4EO9mGpECAIgDG0ydI+Vg/M0ZS2LM/UwKGc+XtBp8Uxpci9jVfMu9e8AAABnA1RJWOofNG+vAj+XTrWtrwiLvN8C12H0AAAAEgAAAAEwRQIhAK49XQne9QiMs+N5wTaM7xbiPPaf2PSC3RSLtGwYc2g0AiA7BiPpFqDC1BDcoKO0XAf3jyrQQGVki5I1IE45zwaK+gAAAGcDQlRU+kVs9VJQqDkIiyfuMqQk19rLVP8AAAASAAAAATBFAiEA8P6T4iyYosU2f5VuSoh3pYKYt2s9jNgKhu/vbBoRaDgCIAyHAtiIpm9vbCwmd+EkpQ4tqeaS2yBxgayZUomft7uWAAAAZwNWRUU0DSveXrKMHu2RsveQcj47FgYTtwAAABIAAAABMEUCIQDx4JOINjJL2oN8oedrhNtYmzO970DO35kdqwnTb5kYqQIgE6urlAHX+4+3q9mW5WQ35TCaBz0aCGb5pglH7hWDlRcAAABnA1dSSwQHtMTq7TXOPFuFK9+hZAsJ7u30AAAABAAAAAEwRQIhAOxEbodavd0Bm9gsZHaPaRP9aFD2Ta4tZYJ7/i1RWJP+AiA04mD4bB0NDWwUMQ0gPrABFKXjhVZGSvCqpDTDRlgeNQAAAGcDQkxPHDuxDeFcMdXb5I+7e4dzXRt9jDIAAAASAAAAATBFAiEAtjn4p4Mkr4KIEKKYPx4C9gdiBUfYTgVm5ojLSX1r1cICICcJWISq1exz4u1h7V7OGw3FWyTuZCChKi28N0BduA5UAAAAZwNCUEPyHWWXm9ibKPBe8Z88Zd0qHQKUbQAAAAQAAAABMEUCIQDFD5Kfp9itYypZPAlURtW1ELFSGGM22kiCvKZXIR/9PwIgKBTV0PT0ggJ8riliVZaYT/bs65OAIA51q0moXhzKIUUAAABmA0JMVBB8RQTNecXSaW6gAwqN1OkmAbguAAAAEgAAAAEwRAIgFt3FVXNitBiPGk3GbasWjIDb3iDK3HJBvxVZGr+dewMCIAkdHt2HZTn729Hn0K/W788qfC5j9lPrSDJ1+U8V8LQYAAAAZwRCTENUbSxQj8SliKQXE/9ZIS+FSJKR0kQAAAASAAAAATBEAiBgj1rC02o4FlGDlgNEK2eB9pWV4rOTy+bIqMxHNks5vwIgW5x5TsexnJwcfSqKFQTaYg0seGSdGG30q7lESxpUorsAAABoBEJMWE042esHp7jffYb0QKSlxKTBon4aCAAAABIAAAABMEUCIQDQwMp/udGdF2W9KzThDVxEoS5DPMmNPI2hE3EGJ0o2JAIgLKRF+wfxKZXS/rHn94TwJfsNFLfhW+L/taulRx1KUjMAAABnA0JFUNjvFJtOHo8FDVKSX5xo06KW53InAAAAEgAAAAEwRQIhAMq2juwBKk+UCWqxVWGi1zhoir1SlSe7ICNi5T4ZZPZDAiAVNWk24EEu1fj4Z+x3QOTZpoS95vxDmExhL0dCrQR2PwAAAGcEQkxVRVOe/mm83SGoPv2RIlcaZMwl4CgrAAAACAAAAAEwRAIgO5JSLCgXgeVGgAX1VPZteT8VszRUuqY2+zLpQzevn8sCIGJOZ/kzovNeAV+kQx8kgo5BLDPe2tv0hPjOiuD2S/vCAAAAaAViRE9HRTcJLb+MJtqcyAVoO0zAuULpLeL9AAAACQAAAAEwRAIgZ7iCHPJAhFg/n4HLiqJHI7iwOsqhOLVp7QCnC73BTh0CICf55GfTuE2o54fCj1nFGhuYstJbkCJ5B8ZpqPIFqTTOAAAAZgNCV1jOURTX+oNh8MCI7ib6OlRGxKH1CwAAABIAAAABMEQCICByY3zT89JBh6s6ZxBZObNDXgRsihq8cAPORfpwl4t3AiBNWqh/6/TIAtrduu6z9cDVjRrmg9TDBIOHG+M/W8DkqgAAAGkFQkNISVBe8if3zk6Wyc6Q4y1IUFRabF0JmwAAAAgAAAABMEUCIQDPncfxaBeXpjgsqSYcU8/Eyh3Jkic+nYGR/w/C0KYt6AIgX+EjGH+MssRUA+oBiBSp9b+/tRlmz2HJc2ZLXIf+QAYAAABmA0JTVDNkkqBgHMheCMFNOQvwfZYDKKr0AAAAEgAAAAEwRAIgKoKFXl9IJOPmY/wl1fqEazSrTT2xVKwVxFeW/2tpN7ACICNxq4Eg2uoGJvN8/0cmMDOE90iqcfdfm8NzwhTVp6OwAAAAaQVCbHVlUyTM7ev4QVRMnmpir06ML6blpG/eAAAACQAAAAEwRQIhAIEVpr9MNvtmGH8vj56gFU2gZqTjEhXpRIlHwyBSJchhAiBiA2RbggUhlroaChrhMEfOfGw1P3XXtSNQ4DfP+ILaRgAAAGYDQldYvRaMv506N1s43FGiArXopOUgae0AAAASAAAAATBEAiADMK2v3oJIg5PwNpHkc71scbdKBBVNU70glwbh44jNPQIgDxd1pV0a77SOaCRyatziZWx6TZ/zt17gY2kCkbFjjWEAAABmA1dJWjPSBXXyDGoYgfirCOafb7r/ru3yAAAADAAAAAEwRAIgdJk01OqU9fQE1itHT+0yN70fwSETPNF+mr/JNkjzHugCIHz+BCImobLrnHZvDjuTqzRXSQ0hYNlr57z5lrT3EOiWAAAAZwNCTFpXMgRqiDcEQE8oTOQf+t1bAH/WaAAAABIAAAABMEUCIQCc5VAxoKLA6mFN2lGZgHuzkaDFDIxMDPS/p+6pHxVTSQIgfLtn6k9ngTkx999Fpixo2AmEcB0dbLhzcdBDhV6yJKEAAABmA0JNVPIF0tZSBXEbb2quP8t+vbyFc/GSAAAAEgAAAAEwRAIgFWe9m0oVkGpJ/OP1ZbQgs/4n5RQwdYiCAkyh4/wMhYECIBnuKr08G5UVhp5oBIhjU7XVh5QLM3x3u5h6s6neupuTAAAAZwNCTUpZE9DzRhWSNVLukT2+gJ+fNI5wbgAAABIAAAABMEUCIQCrcDNmktnCtvOXs/pDDf/WjgHoly+vu2KHMjqX4Q8RZAIgfWaA6rrXkYwxkSmZ9SY83AD0wMdZtA2ai469szafxO4AAABnA0JNVPAore5RUzsbR76qiQ/rVKRX9R6JAAAAEgAAAAEwRQIhAO9mNJ3CXkMGyiaDDXJeEaiSHOVAx+U0SX5pZNwlziq7AiBOchM+0cpNbqmY7khnCc08lchItmk3n9HMLVTeQ+dMNwAAAGYDQk5CuMd0guRfH0TeF0X1LHRCbGMb3VIAAAASAAAAATBEAiBcz3eAwngEVsTWRf/dC9Nhq70frclg7LdvjE8DkbhbdQIgVpmg+wspdtloftbkr/Z3tCR9QohmcvcVRVwTRWt7GlEAAABrB0JOQkJFQVJv69/AqdlQLEU0P84N8Igo3vRHlQAAABIAAAABMEUCIQCfacJJJ0a9TSuXuhgHUH+8OkeAR0ruGimfQbGYXDXqJgIgAaKV+LqJY7b4Tx7B+xmoL67a6HdeB4RhO2hhoSxQYCsAAABqB0JOQkJVTEydGmLCrZkBl2i5Em/aAEqZUoU/bgAAABIAAAABMEQCIA7A8X8SgnLAprYHcrLdWv8+0Juuyj3y9lunZO8i09dFAiBnRtOfJiLsORWNJjmKkrlgj7Xvnw4N6ILnqvWPikZG+gAAAGsIQk5CSEVER0UoQK1BzyWtWDA7okxBbnnc5BYbTwAAABIAAAABMEQCIBKupim2j/Hjwn4KBRG+wVD6m2Er1xmWMvjgOmmPjKkiAiAgK2E0RHsSNei8MoJQpFoIT6cQSifIInqZFiORPg5TlgAAAGcDQk5D3Wv1bKKtokxoP6xQ43eD5VtXr58AAAAMAAAAATBFAiEAlbaQQ/IsK0hJfmqBwdXpgLOL1Bwkpt4n3fM06nlECRQCIGle7mAERLLF6NxBzlCzmzugSde95rjapRF9A8haRUUaAAAAZgNCTkO+WzNu9i0WJpQDY880vgeeCrifIAAAABIAAAABMEQCIE4+xO5TdDOsufmVisojHO2bs3tuxxxKHYYgxrbG/uaMAiB86KKEQgqzRyr8L3K5iuPJnbfL65ZpecyZIFreq+snMgAAAGcEQk5FVM5f61Poqi6upCaT+M11ZIjzK/zHAAAAAAAAAAEwRAIgCXyrgaaj190Z1Ar4HLSmQDyqxj+178rGN0BgYEbQyIcCIHRrEYFUTnRStkx5K9iwlJMYnEOK++vNp7TzFISYo3SOAAAAaARCTlNEZo2/EAY19ZOjhHwL2vIfCgk4AYgAAAASAAAAATBFAiEAo3ub2yMIB3w3yXD5T+A+oHNbiM5kTuWvP/QpHOPEdU4CIAOf4X05BYm7MEa7lLXuUIhNXkdxIxszrT3FseFRIotoAAAAZwNCTlNpUQatc/UG+dCpZQp4AZqTFJrgfAAAAAgAAAABMEUCIQDlbtEI0kVElCrnRJC38O6BCGG6JTsyzTDjj6d/tx+8FAIgFELeoBFO8vR839IVGyOseynLF5NZwsIGeoYiI+b1ElkAAABpBkVUSEJOVLHNbkFTsqOQzwCmVWsPwUWMSlUzAAAAEgAAAAEwRAIgBtoO/b33YHGIIEDMeb3QiMMulir9I8VfPnywtPoIiFUCIFfq6nrQcNsgGvwj9zbahSWRnfnFhVvlBmaBQaGHuEweAAAAZwNCT0H5w2x61/oPCGJYnJGYMCaNGiWBoQAAABIAAAABMEUCIQDWar1bpinEH0Ee6voiG6QiCYd/31ZQJS/V3v5YXPfsBQIgKj8qGbNh1EU9mm2TsfQOd5yFH5X8X4dgcWOwQ3qXSOIAAABnA0JPQt80eRGRC2yaQoa6ji7l6ko56yE0AAAAEgAAAAEwRQIhAPVuqBzWoTUwTRrH/aUMWbxdjdwqhXbZo2YaH1pWjVyzAiB4kI/eILOuvu1zZ2UaCAqKaluyExmYlmb/m2/uzOMOygAAAGgEQk9CQUK7+i53dXxkXuqtFlXgkRp1U++8AAAAEgAAAAEwRQIhAMFXe2ThyW35KBbGApw7Hz3gSumekqed5uzawMQIGTHoAiBKNBCJSkrtpnv6meNbtBCSoaLcOdmikj6aPwlfth8MegAAAGcEQk9CQ+gDF4tIoOVgwrGfOz1OUE950inOAAAAEgAAAAEwRAIgONsEQ0yVvc8qwlct35WkExepN1xTw6UTB/Hp3pZQmAkCIAxH2IlHMQkAMtnGspSz9fDXZYsPQU+k83vMyx4z7pbFAAAAaARCT0JP9Twk93KciMEQJlkpxxJOYlnvzKsAAAAJAAAAATBFAiEAz48TAaQRihVFLxPbhJNAKqvmKQKmebdZQminnDBWuZUCICL1od9WqipYBghLBLMt1ClcmHwGxEWLlJfb+dQoBEp9AAAAaARCT0xELU3jx0TUPPd8sSOZkh+vDXi3QVsAAAASAAAAATBFAiEAlENAgQuhA1ZSbjH+v3EkiZ+96g1xQh0/QLiQflJHQG8CIDZNeDRk4O9NKU8GLCS3Wyq6tn/lcf5FgE8EsPlfhorfAAAAZgNCTE7KKdtCIcERiIp+gLEurIombaPuDQAAABIAAAABMEQCIAxEZlJWWHm1uTyVk9lyNJMLNH9KCfyFWVwgStkj0AtKAiACPeqGAiW31pHD4mts4oTBo3yjg6fYB9i7Xt8UX+CdOgAAAGYDQkxYYYI2j/kHlcmZD88+yOatip7FFJwAAAAJAAAAATBEAiBuFGHD1NmKyKoht3vX21iDs8JSA0UClA/Fn6s9f+5mcAIgNf6AxiPobh+D4P4zAI5U3rnN/O5r+jDZpDYv27M5aCwAAABpBUJPTExZa9Nh4Qwa/tDZUlnnwBFfOmDk6pkAAAASAAAAATBFAiEAp1l2CUVRD6D3wIX9uwLbgkdLtnkkPX25s9/tZMbFU8wCIAVAf9/EFyyhTeCZcvI45sKjeS3Uh24kWEED6Ibod42FAAAAaARCT0xU1ZMMMH1zlf+Afykh8SxeuCExp4kAAAASAAAAATBFAiEAqfIfiPiqWaI1oHpy+4QFiSMKL9vOCJE005QbnlWBoJoCIC+MMK4ljXDQIKoaMew5BXpz4NA+bmxCfHjczGSiCOPbAAAAZwRCT0xUnyNdIzVIV+/mxUHbkqnvGHdom8sAAAASAAAAATBEAiBIwsol72hU7WW95yg2CXXZz++ZdJTPdsKxOgjiuQ2HrgIgB9isXIz70na3CVnE617OSd9dtdnc1rHn773JpGraHB0AAABpBUJPTFRUuzQKLq9VxeZ6WgX+XO7ZuXAtdvQAAAAIAAAAATBFAiEA4Y9tT6Zest8+gSV/IZjuVJn4sIbFLkz6XOM37JniJRQCIDRCIS29Jzjw7hEqKPGbfb95pcxNggHetcKEutbVS5iXAAAAZwRCT01CHJWwk9bCNtPvfHlv4z+cxrhgZxQAAAAAAAAAATBEAiBtRmcXPbXmEetWR61FUG4iQNpPq5TOLEBpBqf0k9qJXAIgGOw4fqZtf44gOkXxK6Ng5eZWqh/cgU3TAdMzrHXFyewAAABnBEJPTkRdwC6pkoXhdla4NQciaUw1FU2x6AAAAAgAAAABMEQCIBAi4RUgXUL2aKJnp5z7GrSUxg8Xgo8RUVoykJGrYvYSAiA+qrWQ4rhabLhjVjKmXJZ7W9Rlk0/ad6lLWe959MqgVwAAAGkFVVNEYXCaGZfBMPSymXFml12a/5J5fVE0wgAAABIAAAABMEUCIQCwY2agml+qUmvro00hJs3uw5nds3RmW6ikMOMq1m80IQIgJy4vlgjC/py2VXSmDQu5jsiQgbU2diMyHbTVkTkpt+gAAABmA0JBRyigbAIofmV+w/jhUaE8NqHUOBSwAAAAEgAAAAEwRAIgFf7ueh0YTIOnSPRCjDm+bA23uN/5FClpipYkoyWPMpYCIE5nUCVWjfg6i2yVnHQN9JUiVl198kYz3d4qqJbjtca7AAAAaQZCT05ETFmR377jlluq7jJ4TC1Ua3oMYvJoyQAAABIAAAABMEQCIGhZsu5a8dqCFbi/hLHUcIyHfnfPU4p77jIuDN1rgRhkAiBcKb3PhW13KG/PFp2G/woNCTWJbIe635W9t/01ZdllHgAAAGkGQk9ORExZ0t2iI7JhfLYWwVgNtCHkz65qioUAAAASAAAAATBEAiA0oZzJFJOw9MOJe5r7jzK0UEMt4aftutn+/kKqo4ombgIgdaQiDNkAm+xVGBP7DBaufw7kJmoSDQ6JxTuKUY/e6GUAAABoBEJvbmVchLxgp5ZTS/7DQ5rw5tthapZjNQAAABIAAAABMEUCIQDlemOXF2H53X1uHEWLQsrNGu8yYUPka41o/K2+Ks/MWwIgV2lxB9IJLMBGW731jqH0Ma9V5B/SD8Fdr8iWz6Bkqe0AAABoBEJPTkWYEwN+4iGHmVl9g9SltvO2d4IY2QAAABIAAAABMEUCIQCvFvE3c+CpT5vLjAFd7Jxn8UHJpmIGCdtNM/H1aSWSBwIgJ3yFrqw+EPSOxPxGsdVvtLKT7PRORuZpNxnmpA3UmZMAAABqB0JvbmVSZXfL9A8H1MaUEP2cMrXtB9wswRO4bAAAAAYAAAABMEQCICw7eZhrtNnzTJJElBT1ZXcPHyq8/hoXyKBolYgxm37zAiAL/tOPnohj84EW1IEybmSJmlCFrerJIIuhcJ/61lT+CwAAAGkFQk9ORVM6dXMfnhYkTeAd1DFjbbfAfUKhZgAAAAQAAAABMEUCIQD9YMR7YxMfsO73mglDm61ySz7e6v8+5KtjJvcNc8f3LgIgZiig0+Ury6EU3NksHJppTZcgnTDYycwXtPH1LBailRkAAABmA0JOWgFKVD92ezsG4xqBGwp1SD7o39ctAAAAEgAAAAEwRAIgQwW0NvhjMWJL+jKndrhYKtURSktCawp34l6ZmrIm+g8CIH35G5Ros5gyMiIa1Ehac+vR2DZ5nHzPTIhrIrQlk7HBAAAAZwNCTkYd5eAAxByNNbnx9JhcI5iPBYMQVwAAABIAAAABMEUCIQDsXJ0EK+jogpyvz6mrgqkUHs57+Vaeal9kqFnqc+oAnQIgKpDvyJ+u9hBzNadvMagyN9cQGyXkzioEg6/EMuuk1icAAABoBEZJREH0DZUHp9SFDFKkVpjJQQ4sNF96lAAAAAYAAAABMEUCIQC+tUMxkEvDpuqXhAhbDHFsgOpx6EAX/18sxv0rS448mAIgD7SqG6UUyACDTUOpiRCLRm0bB87vhIIApgfVORtqcdAAAABoBEJPTkttZQbm9Djt4mmHegpyACZVkRC31QAAABIAAAABMEUCIQCmUEK8OWDrqYrGBFkOTuAmT2SEgPrEAxTpE3togeoaRQIgGK+pUKA+xM1L8Y4Tsrj+n1I8dv0lopmx/6cmcgFZmCoAAABnA0JPTsw0Nm44Qsob02wfMk0VJXlg/MgBAAAAEgAAAAEwRQIhAJrmN+D80pfFUaBsJY1iVF9JhNiiCZ+qecFOHjw+tECoAiBNpZg0xWml4O4ZJ8hRt6v4MMLS6kAcC8Vf4Car9USK1wAAAGYDQnhD3s974p+IMunC3fA4jJd4uLp2r0MAAAASAAAAATBEAiBCQV47J90g2tSKQrj4R28AebzVhriofNLjDxdU8yxH0AIgJIDnCXRsJwDUSewURDe7IUMmgkFJh3xz7JNw2jFspqQAAABnBEJPT0KpxEE1s6h+BojEHPjCeTmiLdQ3yQAAABIAAAABMEQCIG0+1w+vZN8D6Olf8hdlJxlcLbBtCyD6AUmeumFHK9o1AiA5mjofmwAx3dumPPmlKY2TexuE17kqwy2qXd4NbbZegQAAAGgEQkJSQXBGDDu5q8wKpR+SLADTeBbW7eTXAAAAEgAAAAEwRQIhANNb2JcopqmmEh6w4rrK43bmLENiGksIZ552qoGRFnSbAiAg5hVOK11vAyLIHLUkyNh7vK1Mtb4IpsfDZnjmkoRxwAAAAGcEQk9PTGySnN6QhIHz0dd1AIeR9CsbiduwAAAAEgAAAAEwRAIgcSG1jGIpApj2WiCfQnKTwQhGtt6V1F8Ths99B/lvU7ECIESVN6tBn1jnxfPhmq0sE9PDA+qwXY4jmEAgWtsP9OOMAAAAZwRCT09N236rm6a+iLhp9zj23uupbUn+E/0AAAASAAAAATBEAiB0VSHfHTRozYyKKtuxxhRf8Gaqdwu8wtcyNvtJkmfQtQIgGdl2mE4e/hbWNnsfMZywj42jtvi7Knykvek/Qo0wrHkAAABpBUJvb21CgrieD5wGlWOeuIZZ0MMG28JCr5YAAAAJAAAAATBFAiEA8tCJJLPke/ibpMJhzewi2rScHu33C1xmXAm1JMs1KmACIB5TOnjftT97Le7c7xywhUAHbOTDZcqbvJthQDrmZeO3AAAAaAVCT09TVE4PylWmw6lHIN7ZEVOif2Dia5qoAAAAEgAAAAEwRAIgSuz3MAVQyV+dEs2pXbTBBncLRIkLdAHEYEIHJMbkiNACICu34lXWpgtzwbbCEvxb7jeTD8T1OskKaqR2E+z8ciBVAAAAaAVCT09TVD54CSBgHWHO24YP6cSpDJ6mo154AAAAEgAAAAEwRAIgYjUbhEGaGGrRJUwl0P1pq4wQB2NTVJ8tmbYgA/Gmf54CID7h/btTJALG0cdv+T6CZlBemZIDuCz/jtmaKr02BRzLAAAAZgNCU1TfAEGJG9ofkRxCQ/Mo989hs3+WWwAAABIAAAABMEQCIDwPZCMGG2mCxmiWibdV4dhRnUWcmdow/yzyapyRl3GXAiAFohIS8DXvE3fxvaA3JPoVGjL6DYDT/LPS5WIKH3LwSAAAAGgEQk9PVMjOdfZD7K2GT8YlkCpqBzcfODINAAAAEgAAAAEwRQIhAMRf/X8VvE0M31Emd9KBr0B/jFiv3ltd7UbMZyKkgOqSAiApAjxhGaBUm+/pobi5ZLAhexbRwSa/deuHoaRkkF3AzQAAAGgEQk9SQSb7hleeNxx67cRhst3vCoYoyT07AAAAEgAAAAEwRQIhAPT3+MEbVe5JIfM02rsODJ6+tJiTZFKz2HZPFF1KGcVPAiBpGa71Q0EvwOKVmzT+Jkg1TaWFa29CM3Abx/1cwtO2HgAAAGcEQkFLQ+Yy4ep4HfMsYKsRBSlYdEy/vEOaAAAAEgAAAAEwRAIgBCuU0Azqzlmluw/bQhYqeKLpgt/3pv4PB/UnJAPmUpoCIFCA+pPEKthPdxBazntekDTNvnjgZVApaxC200fYnOfHAAAAZgRCQVlD6ke2Thv8y3c6BCAkfAqgo8HS5cUAAAASAAAAATBDAiB2L3WLydX4i/IMukwomGLfoj17fAIpba1NJNBUoi6wsQIfDUy9UyWVPnz3cIls/VSSbB/ZFT+elfD86PQwp45ASQAAAGgEdUFQRRfjR6rYmzC5ZVe8v7/4oU51zIihAAAAEgAAAAEwRQIhAOwGNN9PPxTOe7gm11kf6YNaEnGhezRzVQZvxMqBsxgLAiARINlRBtMl4T0TogY8nBRk54Rkki4wX6ftp7XbhoWttAAAAGkFQk9SRUT6yReXHOUISVAgIrQKqKEoQ/AiwAAAAAkAAAABMEUCIQCid4cKbr/mDsOCiNnItmFcsliYbYteU+plzIiYOWHczwIgKp5lsPZMlIGYmmDbf3AOdIK/JOHFbwfBR7EyTsf9990AAABmA0JPUjydbBxzsxyDeDLHLgTTFS8FH8GpAAAAEgAAAAEwRAIgCz1YWu+yes589K9eKRgkP8v/dgj9+pu3EQHqB1GWgYQCIE1KT+fGRMVmphTiaWCwDhI3uotCD46wnVAFOHPUwn3mAAAAZwRvQlRDgGTZrmzfCHsbzVvfNTG9XYxTemgAAAASAAAAATBEAiAD+MhMV9jxXxvj3WH2suwObE80kqUwtyMgDxqIkxNB5QIgAvnncYrUrdlIX4YYuusdnEzndSruA5HT+/UjHqXMLWsAAABoBW9ET0dFnDBqeLGpBOgxFcBaxnwe8HxlNlEAAAASAAAAATBEAiAhhMd17mvaiMDvqbQNMnjeBvosVCOAm0Bm3tWSjxFXxwIgf7H8M3MRAVQjdcF+7K1ddip1FK1kAqsOUzdkvCuI1LoAAABnBG9MVEMHxEtawlfCJVqgkzESw7daa/88sQAAABIAAAABMEQCIB3E0g4thnnENe9UwEcBMaEf+fBqCzWulvkAsC6WhxEvAiBsVjpxGHyPh+H4TqC0cL6jmEm6yG4cHac84LGbnRU69QAAAGYDQlJQ5bmY9j5wImZNPDbFbReYzKd1FXMAAAASAAAAATBEAiBkq+8icBjPNo/MIQJDWkGJTudmFG2Y2HPawC6q4ioYDQIgMVIBWToJEyaIoRQx/pVb0ISUHR6rGBa37cDNeakwp/kAAABmA0JPQXRt2i6iQ0ANWmPgcA8ZCrefBkieAAAABwAAAAEwRAIgZugxv8TWBM27kRKifxDIe5sFhRt2uFOJv7Cun8ks8ekCIGAgn/gMuBbCgXrXawhFkx8w1UTPfLlwtC3z0lyqEVYzAAAAaQVCT1NPTsR30DjVQgxqngsDFxL2HFEgCQ3pAAAAEgAAAAEwRQIhAM/T1fx3h3zI+hKk9LYQacUBCkP4o66tNWl8RkHxnjwaAiATJsMMyXtZT2F9IgJA6wN3ovS4AnjoRdjQ0sKiERHBSwAAAGcEQk9UU/n76CW/sr8+OHrw3BjKyNh/Kd6oAAAAEgAAAAEwRAIgbdWtZVIlvWIsEVMlxqNKm3R3ZUcBYvmZ4sY1T2fyomwCIAu4A7OT7Y90v6yvVBCZ5nPPVHkoGwP1YuFr/8YcigPJAAAAZgNCT1XCxj8j7F6X7711Zd+ex2T9x9TpHQAAABIAAAABMEQCIAeEwwXOvHaVmUQlu5OGk6IATgwtbeEPK8luuZDTiqNqAiAvwALZVvhHQ0xVh09GfxfaH7LpIRjyLnC0Ln1J/vSk1QAAAGcDQk9UW+q667MUZoXddBdvaKByH5EpfTcAAAASAAAAATBFAiEAzfjJs7rVJNntQkpuiBiGUdhIV2AvTDflz1rxB27C+ZACIDn/5BByHcGkDjZTdFDYv/LHTWPnQvtqOtRDamxnDJN6AAAAagdBdWN0aW9uqbHrWQjPw835H5uLOnQQhZgAkJYAAAASAAAAATBEAiBK26MMqiRze6oQR+fhazR1EVIx9GaSmSGmMGB1nhBcDgIgWqNkypUyJMNmBLcmuWV6ZWmInFD1WL8Z9hGtutFosEEAAABnBEJOVFnS1hWGg67kzIOAZ3JyCaCq9DWd4wAAABIAAAABMEQCIFYMogjBuTNTaKLD1pRwpS+9IuFucgzQAYaK/XlJKEXrAiByZiJu8+e7cakzkRJQihjfSqdJscQY0XjzWxabKTDqLAAAAGYDQk1D2UXSAxtMY8DjYzBPt3H3CbUC3AoAAAASAAAAATBEAiAvnxXvCD8WWra4KcLn47ttkgao06TcXtSJex/ngaBRhQIgHoODvLXc6IenvqmJhGiMQUbg10ih6Wa6GlTaHm7/0u0AAABpBUJPVVRTE52TlydLueLCmpqoqgtYdNMNYuMAAAASAAAAATBFAiEAseAedRh6lLAkcyAZL7jQWcPqbbtDILgMS9SiMEoiyacCIAJzPg/H/jpBp4Tc5iiiqmDSAvGL/60VdllTRdZTpqeBAAAAZwNCQUMGLjvmp8VqOVsYgaDNaaSSOt5PogAAABIAAAABMEUCIQCwbJpbvTlB/D7pTWCDXArUwYQTAHAS89jvvcolJ6l46wIgEceaD0YmMxKiZNo0Ys9if/GysFFZ9Fk1lh2UVHPE+twAAABmA0JPWOGheLaBvQWWTT4+0zrnMVd9nZbdAAAAEgAAAAEwRAIgXBVggMpQnSLlIhEkkEJYzf/UdXN//VcIghQqZDPZcJsCICcdRRME99aOg5KaUAGmdTFlPXT6ujg4MkDRHXH2AHcnAAAAZwRCQVhTrPPUAuXiw+3VuBKelmAX0pPxKkwAAAASAAAAATBEAiBq8ueDNKI8WIpP6cKHki7my0UVAjXKTr5goqY/L4a54QIgFZv1QavNBXAI0zD9aiarbhx1C3Q2xohBEqV2V0Mh/uYAAABnBEJPWFh4ARbZHlWS5Yo7PHajUVcbOavOxgAAAA8AAAABMEQCIDpEoSJkQdnx3On9q2P/m9z0Kvbg12Yj+pO4LetZOqI+AiAvAVGiKZkyliob6RO74KEYXsD4TtrOmk7RlSKuMazLXAAAAGgEQlBPUARSrth4gFUU4o+1vQtWvvkhduMqAAAACAAAAAEwRQIhANv1jvjoHQ6iSvvmWWovTrgjkt0yl+FkRRfOsOJjXyB1AiB9pKZJebl5eVCgs6lK1xBXVzrLtXi9/D1i8CUp8S9v/gAAAGgEQlBUTmwiuBWQQWXzWZ8KSgktRYlmvYAkAAAAEgAAAAEwRQIhAPNBnVzXjWB4KaAeq9GvU9b5e0oqmmmuY0BD0PfPK2GaAiBPg8CG1UvNpdcJwyHCVEZHiauTI9hzAmFGUSODHSpjCAAAAGgEQlJOS5/pw3+ZkJbfMbWumnc0OSsq/aN1AAAAEgAAAAEwRQIhAKYvZoQp0c19CkejWZK7Mwiw5Y9XrxPsQhvwFLPSA8YeAiA4RW5K1A9QJv6OozB0lRaMI2yLlnGmTSsQgfiQBQXp+QAAAGcEQlJBUFbtL32sGSQ98QC6wQNkxW3yDLHpAAAAEgAAAAEwRAIgb/1Ca9xziJDJxvXZtwM7sVY6TcotjbYtPa3ga6cwv00CICB6ZAKJ1MgiD1CinzDujNKOkG5xt1/AyLAZwhPzC6+1AAAAZwRCUkFUnnfVoSUbb31FZyKm6sbS1ZgL2JEAAAAIAAAAATBEAiBIJxjSkf1Ld4iIgj8GiwBDCSrOYiEqYOfvNhIE5YawJAIgOeOoOCeM0hDlDDh02ys6gWDuGVKfvyu82RHWSuLKcQIAAABnA0JSWkIEEudlv6bYWqrJS097cIyJvi4rAAAABAAAAAEwRQIhAK9x6Djk5cy0dqaDulSod2N36A0IPEkpvWsKDLiwnYBNAiAt9VplWqxOOf/iB16r9mJKUUKSIe9JcKl3y4TXZBXAFAAAAGgEQlJDUHNISiYnMNHUImEHKegoNG+bL/SAAAAAEgAAAAEwRQIhAPyi721pvqN/hY0zYobOPXif36qaVoB+Z8OioZrFXOoQAiBAhTTZoWew6FLWqwYQ4a9mKaGvxdT5RS3ggEVjqPaV+wAAAGcDQlJEVY7DFS4ushdJBc0ZrqTjSiPemtYAAAASAAAAATBFAiEAlInhvfAMU5/RgvmniPhYcHpThkcdUbmN0Nnrxq8naK4CIHMdz6o2qfZmyN0di6CAYn/WJdw/M5TXMHwx3i1hloUbAAAAZwRCUlpFd8B1Va9f/clG+0fOFepoYg5OcXAAAAASAAAAATBEAiBwjFuP/QRS1SafktBcOkis9m6tbVRY9z7OdWQ9wAh7SgIgcAIjy/vZVRsu5gPkTyrCj9OXniEN8fJ1sgJ3TY72JyQAAABpBUJSSUJFZ5+m3JE6yrbe8z7EafxuQhvHlPUAAAASAAAAATBFAiEAqL4lI/q1OjZ+232V6yY16J3+LiPqApNwqwhOPqLQ/MMCIEQ7MZ8yBb3d8wRqNLGwHXLKFwrbqkrXzG/cHXKGbiuAAAAAZgNCQktKYFhmbPEFfqw806WmFGIFR1WfyQAAABIAAAABMEQCIFNdLPZTg7qaQVpM2NXSP7bcs1ZA1G5HQ3BPdiH/00qAAiBTA/O9tzFECjaxqxGOs5bJlUciDq+aBhH14x+3DOdZjgAAAGcDQkZSJExSdupbuSdXVBcVYDjXOBtEqywAAAASAAAAATBFAiEAjPGA+mIsnTdx4Hh50qSiMgHS3ULcdftM5vs0BWItVgoCIBdPqCE0b29O8aoi1MyY1wV+pftaLFKEd1kAxp5ATmPHAAAAZgNCTUlyXCY+Msct3DoZvqEsWgR5qB7miAAAABIAAAABMEQCIB71U7iEtVix8Yy0w3ELQ2hrqQ07lCecT8SpJINCy5FMAiAvxj4Q04GfvOWEeYnLNUoWNWdNbM9My78mFIwVztHtSgAAAGkGQlJJR0hUvqtxKDIRK9dmQibbfNAlsVPTr1UAAAASAAAAATBEAiAiNbqjuI3/AIrkb6TgcxSW7v/uK+py7aAD3koEQHe2BAIgfeHL8LFRBgnmtJHOJpjR/ClAoLXfsojMaLhbZjwDw/sAAABpBUJSSUxYHebLWwhayEvSR7gXbHgekTFmqmsAAAASAAAAATBFAiEAjQcPy+o7Y9V3+RQv9fmbbypuRBauM1xuZJKFp2qmKvICICwhopieEx+ljr7njVW6sP2YXEPkMRD8Z74hN1a9J3wbAAAAZwRCUk5HPsuWA5NAYwyLguWncyvIiyrq3oIAAAASAAAAATBEAiAiWA5p81VBj/9upad8hD+UNfs4v9WgjG0iw2dcrP+vSgIgLrd3XKAadz1DpElZY4l2m8in4yGVf6+mmA1QttSQHeIAAABoBEJSTVZQHocm0Gze9m8+DLZ/VJJMyhzIlAAAABIAAAABMEUCIQC5DWm/05LueBPBCvq9Jz2duh4/QTFcuyrULRgfT5Z3jgIgSm+vaUFY30gDM+9ysfF74wRU2BCpzLBXHKXFQKyeo1sAAABnA0JOTtqAsgA4vfloxzB7tZB6RpSCz2JRAAAACAAAAAEwRQIhAPzFwB0SUh4uMg8yxJ+4EVQ+TX+p8htFkHLj6Bs7PmUwAiBDhYhCMlMApcH6d+aBi6r6hzRUuNvuoQiqID6ZUZX/4wAAAGcDQk1QAbIyhv9gpUPsKTZq6Na2J0yiBUEAAAASAAAAATBFAiEApJ5iHvHoMlM2J++RpSi0Q8glv/5j8TNihOeDoVdkx3ICIAgPr2gCei+ssoKEaZVptcbevht835dSth6jffUiNF+2AAAAZwRYQlJUs16a1+nr9zHgTHOEXxv3XlWChwAAAAASAAAAATBEAiAf87Jx+2b0x9KqHhfrRFnGofBzlczDVXY0ogqpTntV7gIgMvk2u2BvPo322mC904pMfmyq+oGRcK8nTlU2+UwR9NoAAABoBEJSVUjm0qn82UbgeCbGzdkZ2gR2PqTYEgAAABIAAAABMEUCIQDpdZatPx4ZWp6tVg1THEQr4LXKm21G4/dz/3+gG81WZwIgRp/8d8Q6Tqn25xkoyU7MfeadO0Sk2JluPz6ZjCWCFwgAAABnBEJTQlTehgfMrWCBTI2c1vXOjpAx5GdcjwAAAAgAAAABMEQCIAg58Z1UTQzCgrWgHcLSg8uaSjPE53ucpFsXIlm6o0neAiB19vwrTwdsrYpuQcRBChljR5zsD06xYz3CII3U5IyGRAAAAGcDQlND5UFQRBdnD7drYStBtDktlnoZVscAAAASAAAAATBFAiEA4UgGKVHZTa598RwcJtCzqQb1i8jMPA100ifkfwiVnqgCIHkcK4c+StlAzqIwHT3NUqC1GVuhgh6AB9xmLoB4olivAAAAaQVTVEFSVB18pi9q9J7Gb2aAuGBuY05V7yLBAAAAEgAAAAEwRQIhALuBNH6k2/Hheu2YBowma86OXuuZgqyUROLhKMqN87c9AiA5Lg8su24QIh44DRfhGyx2UH93cNunjPvHmrcv2hUQEwAAAGcEQlNEQ/Ju9eBUU4S33MDyl/JnQYlYaDDfAAAAEgAAAAEwRAIgHaY5w4fwu5vmN+7Wc1EnTA/3btfJwFKAf+ZwtJCMH3kCIAf7x5JQocl6Ou6UISODeAdbhR6J5f3aRBOUxQSDK9VCAAAAZwNCU0ezSrL2XG5Pdk/+dAq4P5ggIfrtbQAAABIAAAABMEUCIQDL9o7eTeXUpldmxHx0nzcZgFtp78Zaroodr9SHGRGJUAIgSLfWYotma5jkx+PHYDRup+ELNXHG2uoW42+N51om0/cAAABoBEJTR1Op0jLMOBcVrnkUF7Yk18RQnSwo2wAAABIAAAABMEUCIQDKUg3bOQihlfSWZQb3YRWNL3us6GsjtyWANo9wc3qjnAIgfTWEi+vldTabRz2hL4h9vAWlnQhoDPQYanferDT379EAAABoBGNCU059Sx15MjlwdEUwXY0kVtLHNfayWwAAABIAAAABMEUCIQCSoGzAcuwxTlbcr/4uCB9LYG1KSGNv/MosRLZJoVCzbAIgWWMjaSSG6Pzs4QMa3ebD7/swUXV2V7wHgN7/7OyMyEcAAABrB0JTVkJFQVLOScPJKzOhZT80gRqdfjRQK/EriQAAABIAAAABMEUCIQCpQf+ZCcdfRegRBfSgfH5Cth+Q4nbAjgEJVstE/uBVDwIgZ6uWB6ebEE/nXZLfVqkGFe+c7iAQulWMgtivGdU7d7sAAABrB0JTVkJVTExuE6nkrj0GeOUR+20q1TH88OJHvwAAABIAAAABMEUCIQCg2X1GPtMmSgjirVvZfg4D6RigXRXcfnmwzGgYkAZpTwIgWXcj8MKAi/5LsAUhjVbThsrFwhxio01pPttFyvs198IAAABsCEJTVkhFREdF9iVM1WXF5437ADCwsU0eb0gqJBMAAAASAAAAATBFAiEA5yriG7rrfw/mvfD3LmAgDYdaT+9zc5R8Vup/vDfrLuQCID2pj1goE9RyzqYbu2JyAcwzUmIILywgbeaVhHis9q7LAAAAZwRCU1lTMATPi04o1g9OMF3yWlfNX683uNUAAAASAAAAATBEAiBKoI5QvDOYj5Xhei7FTiwqQdrLX7jP4kl3SGCcnAamuwIgCOB8XL7+L/0f8qQr6HeSl56fNa6U8ggWykKh6IUJokQAAABnA0JTWXpkdjfnXTSneYuga9Gt9cCEu13VAAAAEgAAAAEwRQIhANt+fOht3kL+Oahae5Ldp7s8H2Hm1x3ik+nRbGPgkZSKAiAl+OD/W4RoCgMsFbU+24NmNwN58qnvkv4aTLTut03eMwAAAGUCQlR2xUSfSVD2M4o5P1PNqLU7DNPKOgAAABIAAAABMEQCIECn5Yw+PfeLOKXHxTnowUWfvAgCmugnkvVULxIMVcTMAiBJ1KTyUhvXXDreDygW+3/3G6cq1XUAkSH5w2t7cTKqPwAAAGgEQlRBUCcDccWNnXde1zlx3UFGVhBzhPI1AAAAEgAAAAEwRQIhAJ92EVfJHmwT1l1FUYsFhYCSXaHRJQucl9jzIARkh/UpAiAb8lXoSjb2Z4es6TVRUY+KbB2vQe7sspYMDDr/LXftGQAAAG0JQlRDMngtRkxJC0mP+JcJ04OKBj8d+kYwkfmAHCsAAAASAAAAATBFAiEA8cvNGgee5EIxqJKNbnA4cBaMv9mVMqDsYyDPPcEhZkkCIFidsCdb2bmWolEv6MPCSq8rqAi7oQYntJHGaA15i2gzAAAAbAhCVENFVEg1MMBq7FGRvha5T/yXtvwBOTUnNnNlAAAAEgAAAAEwRQIhAKp+KgmZgTkFLDrGBi7H8pxwGXkiR09XV5D/dt9TzNzNAiBxF70GM4GGuiC5n22ByDDR/oRkHW3WtlwPcNYMtvaQ/AAAAGcEQlRDTFrNGbnJHllrHwYvGOPQLaftjR5QAAAACAAAAAEwRAIgZcRGJ0wdH/QAGY2G1D5Gj+82qCy76q1sufu93QW7buMCICPoALqpGqjEp34e+FzmZCADeaUwrWxk8mGN5RdUTnhcAAAAbAlCVENNSU5WT0yBxVAX985uckUc7Un/e6sePfZNDAAAABIAAAABMEQCIDzfK/a28ID6ZLUn+ZNloTy8IQw8Q0zWPxbGZNFwZHZxAiArubYA0yYLuLOsBFcr0SuCwHE2OKwJcrTrmdkA+93VjgAAAGgEQllURayOqHHi1fS+YYkF829zx2D4z9yOAAAAEgAAAAEwRQIhAMjCjKYnFbvWbWVEYQD+ULqAuDf20V+CCQb0lBmfAQoTAiBNqUik0d4I01e6csdrtUFPxCzCKBNfXGHogybbtC6lUQAAAGwJQlRDUlNJQVBZkk4m/ujhDCByYAbMK9MHpTiw6+UAAAASAAAAATBEAiBstB3SHKsXi6opllq7eElBkJIUGPzw9Fp4sH8OUKMSbgIgbPphwEGc/XKGrzna6Yn7Sc/+MvGlEHkD7KMbSg1CTBEAAABnBEJUQ1ZRsLy+/yBLOc55LR4Wdn/m92MZcAAAABIAAAABMEQCIB7ebk0NN+ifTBUnRLOcyUBrPcSJb8YDt8pChm+wgTWFAiBVgwbYOWNc7lWdzn9pYyxdPhhl3bu2ueNMIfxl+VNRfwAAAGcDQk5YQMg2mCeI3KR9EQJLH6PgH9RmF2YAAAASAAAAATBFAiEAhhsisip1CWoVdD01SVoMI5nzU80Z0I8AYTVoLKZJkzoCIH+ANmbh2L09HSnFO9VIWgR29sUvZlH1YJqIENcc0+48AAAAZgNCVEVz3QacKZpdaR6YNiQ7yuycjB2HNAAAAAgAAAABMEQCIET5Ydn3xTprx8Qt3wBh0Hbkm4H676VwBf/t15YfsYGLAiBAKvGlG6ZayLxQ1KZwZEhnRaZC0U1vTMNr5CZ93ji8DwAAAGcDQlRF/WIkeUP5TDkQpJIq8sYsLT+sKo8AAAASAAAAATBFAiEAtdnZIELvF6u2fgAjzSrCphvPKGT5mGMAXIkVAF0kW10CIB4d1CA5S2lEtg9SnQ5yNpTHnsoTAO13I6nP5bxm4sQ+AAAAZgNCVEwqzKuct6SMPoIobwsvh5jSAfTsPwAAABIAAAABMEQCIG10nXb4Jb+Vjzj3sfyU9Zf+zNPaJiiDaAAA2i3FA2mWAiBfXR9skrQE6UcrQvOqDSQGSzRqLZjGtbZ22KSBDq64NwAAAGwIQlRNWEJFQVLb9jf3hiT4lrkvgB6B9gMbeGXtIAAAABIAAAABMEUCIQDBW+toTEZBnwqBjek8enRWguxx2e0Limb0XKu9spvkewIgTn2KEJij+hQ48OAA7v+CbhmD9LV3N8k/3PyyfbYiWcYAAABsCEJUTVhCVUxMmIXKEB39jyPTZIdPeZVUxSv+6CAAAAASAAAAATBFAiEAi9cfDTMEE0cDbEmxh0nyBZKt3TjlZvIsYGj7co/tOj0CIEMyNBoPNCeZEGGCrYh6lRJrYpj+DbtS7O04nMiXiPRpAAAAZgNCVE82kF/JMoD1I2Khy6sVHyXcRnQvtQAAABIAAAABMEQCIEYeFcAO/a1npw05Zez7axX5J9wmJsYgvEmGPLadIT8RAiB3YhiMjyX8gsF5/pX63OSqypLF+phhfEqKjICRum3/dgAAAGoGQlRSRkxZxVEmBRsi67gp0ANo9LEr3kMt5doAAAASAAAAATBFAiEAx0uDEJO1uLl2muI/iCeLXmkx+LczpXbJKv88p/TCrRgCIE/gd0a5BZVJWidwfXoibGdV+4oX3WmtFq2BbSlsxEJBAAAAawdCVFJGTFlfwNTOshazupw3AbKRdm/cupd87DoAAAAJAAAAATBFAiEAtxSJTT3E0OnqQRr6YXjbYFffCNFMa5ozmvEmz9FS148CIB8JIbd9A8I/8ViaOQAmSYEIlnfUWAPwYzHHndJW6PxWAAAAaARCVFJOA8eAzVVFmFkrl7clbdqtdZlFsSUAAAASAAAAATBFAiEAxiNVdhdeLXZ0xtjwouFTlAL3nawGlNAVdQixKB/c2TQCIC7bj+Hy45YqF4kDLzLrDmt6GHdvRmtD/PxPoDg85uf2AAAAaQVCVFJTVHmev6vnem40MR7u6YJRkLns4ygkAAAAEgAAAAEwRQIhAK5yOhpfuyfGBXAzJj1sqwIIYUg/jkcABl4mWParKBzrAiAAtx1MZLp/81oUIqlBrW9NHdaSW2eutTPI+ijIEsFKPAAAAGgEWEJUUwrwXQ1ZTphx5Su2D0xSf9wr6XBgAAAAEgAAAAEwRQIhAONlwLSDOKlVYKnMW3zrHfOWM7nOpCWi0x7Koo2OaUbRAiAHaK3Dmp4/inkAHz/i1PJoPnWzhdjXpmZYUo/iyQFsogAAAGgEQlRTRWZth1xgCqBqwc8VZBNh3sOwBDLvAAAACAAAAAEwRQIhAJL3gDSAvBsuFtBZ1+adi7eGnrVvTZmASaMLbBdLzdDNAiAT4tOJrQO41+p1AKh+jh61WUqlCQYcx/eUC5Hq8alTMQAAAGcEYkRBSWpP+q+o3UAGdt+Adq1sckhnsOLoAAAAEgAAAAEwRAIgTLmf8e4pbJczv5RAMP+8xO2OdhxRSkHAkZM5CWXE5Q4CIB1u+7L+z3WWzD+MNe6bkPE+anuIXlMGVdbNZDi/7t88AAAAZgNCVFW2g9g6Uy4st9+lJ17tNphDY3HMnwAAABIAAAABMEQCIHuNoJa5sjPx/qB6ddmqw8lxskAnLxqCranJ9r4d6fZsAiAFjFKtCtDUvmAVOnseJcxwPTWD89H+cHQYZZkuf2JG6wAAAGYDQlRa5fhn3h6oE0bfUYG4tI3WsLszV7AAAAASAAAAATBEAiBsPscAaxhpcOjbMEHNWzwu6V8jmbwysrmR0aupBdqOZwIgTea4hu1SMqhf4bBCvhe/grtmA1xh7zlaA2fJprvnai4AAABmA0JCTKwAeX3xDoJVidi1PnFTk75OYXRZAAAAEgAAAAEwRAIgIU0bIyz/d0x04nCcyPr527/e0OXkxhHl6LRMc44YynACIEG8qiS0ETfCiSD0sOx8J6HfK82TLcfP+U1J5hQG0eoNAAAAaARCSElHmWIp0Makhcf0tS4JLqqQfLLe9cYAAAASAAAAATBFAiEA0cbVkFJbcPpGQRgk20VhS1hEotfjZjXZfsMTUsWqFk4CIBU01ivl7ul1k5E3sReD7vz++h7UC8SnxLHMHm9w71+JAAAAaARCVUJPzL8hum7wCAKrBmN4lreZ9xAfVKIAAAASAAAAATBFAiEA640drL95QWd9lYfswbtYej7KifTtamMebtckAggShnoCIF9cA2b4WpLn7WY0avDslxINvIyRUCblM0yV+4e/sWUWAAAAZwNCVURXZS/JH1Ivnv8LOM3x1R9ftXZCFQAAABIAAAABMEUCIQCGN/Bi5ahd08+WfyvwyOK6CsROi5yz+OdTL0d+DzOMhQIgfIEjDcNIeLrxasBQMQTT2SZ0CM82bE+3fDkehl4zFYwAAABsCEJVRkZET0dFCn5NcOELY/75+N0Z+6OBjRUVTS8AAAASAAAAATBFAiEA+ejG+xVxJ/JMl1gujfOMC4wy0xOtdsKhgXLOagaPRsgCICV6JMVTstaJyGplYk1DC37n09kn6CXjMX8HpFTbbbCRAAAAaARCVUdHGqv5tXXkMpuMjyckKK1eQ6tK78gAAAAJAAAAATBFAiEAk24GoHhtqXovNv1PogtcgURdEZHc6yJakDWCgpzlv3kCIBLEVYQ4iDrhPbcxQksN0YolnOhS7fwnKLPNFuRKRvmzAAAAaAVCVUlMRG42VWs+5aoo3vKo7D2uMOwrIIc5AAAAEgAAAAEwRAIgNrRtnY9uBswi4yNRJKkzI5cvFmhiFY79Xky7I715PBMCIFpMwXH/RRyazi05yMw3zw0vfglXNdo+ljclagqV+8VgAAAAZgNCSU51Iw19hrWSE3c9RxA7lqDnEzyGIQAAAAgAAAABMEQCIBrybBjVz4LOqQVwhZqB5ROM0Xj1nv3+lrTCJXj84IWYAiBq4K/ZMHdnjpPFRJZDXaFDoWcXUuL96osWoYS4O1YNRQAAAGcDQlVQsE39uCce0tXhOFhWLESnfTzrnlcAAAASAAAAATBFAiEAvkl2G3DbQZiQtZbYMWI2Qj+yto/QvQnrljoQJXfYh78CIA2Ya8K2fGLUeXSvuGUHwKQQIT4UOGPo9RSVQuaJwKavAAAAZwRCVUxLoUOsUV3KJgpGx0LHJR7zsmhjlZMAAAASAAAAATBEAiAB0hp4YqdrB8rfgxOzTr0oC1rFozY6vIGXX2wQYqQ8owIgeXWaCfrsKWMsMGMSL1u78k0WmtRHbfweutIcVSi/As0AAABnBEJVTExo65XcmTThm4ZoehDfjjZEIyQOlAAAABIAAAABMEQCIHzPmzk6+2JIWAaCdNpT3Ai/NbGnx3pYCNe1bEQ1t3gIAiBRWoc1jZ/ST2SC8X1sFQKHMBYRoYHxygGu5TBO7GHmUAAAAGYDQkJCWHI8evzTOi22rgbDdSFyXWXwzBUAAAASAAAAATBEAiARqXxIgBC3hQSNBH5jzkYUfqCM+z401B0FabZ2NOEOLAIgAfHkVPyByR5itnJqYHJd8yzEGozbm8fLZKRIiPDWxpwAAABmA0JCRfQ7L5ge/FphGpeVHOT9fTvYf0kCAAAAEgAAAAEwRAIgZttIJWe+g6zidbQWbI+LNnzyx7SqsnuoINy02Dn8n5kCIHSulyJNdUAGC7LDY1uIbZY4vZbDSKJ6+s0LbNLN+dPmAAAAZwRCRE9HkkFuMgQsnmewdxobALzfkuy2SVAAAAASAAAAATBEAiALkTkavoWdVqbkHTttSGcvlWjT8HYLqvELAA28FKZ42AIgYvky5/ghKKESMtx4yYu8YdM4yq75uLPtAsjIsi8fVdUAAABnA0JMWM5Z0psJquVl/u745S9Hw81TaMZjAAAAEgAAAAEwRQIhAMlX8FhJFxTzqYR2e/K4Qehai/FY98N7q1SPc0zbni8GAiAbKQCQgK7dAHB14D2WtdNIDWJj/qlPUiLJ2RruZ1MRFQAAAGcEQlVMTLQ5uHMe4Ed5kBnvC3RaUdJWsRavAAAAEgAAAAEwRAIgFXS+4paCjv9sBSQS1s8dO6qJlvNsKqBPDCXjvj1zKb4CIFbVH4MPRKaoXQ3pazfycTNxNazQp6oLXNfBwBsVDv1cAAAAZgNCTEMybK9pgNTpFhz7PFXxlbPYJcJm1AAAABIAAAABMEQCIGFRA6bh57HsZH9NIcY5oqmCAAKdpTgdqP09ewgLIG2LAiBjPZvB5wEzkho5mvlnZNNPTA03cXAuiBLSzJ5YdQTkvgAAAGsIQlVMTFNISVTQayX2ehfxK0H2FbNNh+zXFv9VoAAAABIAAAABMEQCIH24rrEk06JLw2WImw9BTvlquwWnsCIKgjN0C7EI6k4mAiBnMjC4RYs5ygG8fk83ymDnunBIz+fR/bFFfgCeB4j6wwAAAGYDQlZM59Mksmd0QGCPuHGYGyIOygYsP78AAAASAAAAATBEAiAQ7ClaVeF7wnbw9aySOy8hLJVYuYiw9nUsCBl3h0oVcgIgZr51QUGYtWpTeV1LjuTkPJQhPI48mo25QBCzl+EXd1kAAABnBEJVTVB4XDQxLfprdPbxgp95reOQQiIhaAAAABIAAAABMEQCIB7q6LO9HeQnXY0rjeCYr48S+WEIyStPcZA15OirdouDAiAA9fjBxNUZCpKzoTbvWrbQSP1yMRct2RJ2oAbXW6gEMQAAAGcEQlVORI0+hV8/VRCdRzc1q3b3UyGEAP6WAAAAEgAAAAEwRAIgI8IsyD7+4pF8+jSwLahA/cJnTDljqABOwvB9+Ge0OQICIHccaNmDTmy5Hx0Ihcdkt6wNHNHV+h57PI/rFK0gM2PyAAAAaQVCVU5OWXVesU0v7/KTnrMCb1ytnQN3W5/0AAAAEgAAAAEwRQIhALlSxDhHtNhhLC4dYh8C/IxCWvhQIq6gIArmW+lmH6p/AiB4AglTE5q+84q9IudTPYlJPSgRZwgmYTsc1m/L6kGFKgAAAGYDQlVZMf3RxmB/R8FKKCH1mSEcZ6wg+pYAAAASAAAAATBEAiB3ldZy0i2858jXlH2ILzK6u+Tvm9a/OjtDwwhHAI5qNQIgM09ggXuNYClu0BsRjitYMNyyySglTC0eRVKNBdA+b1AAAABnA0FTSGTZHxLs5zYvkab455QM1V8FBguSAAAAEgAAAAEwRQIhAMJs46+4hYO22ZtoNTBS8/BnVXiddaxnd0JswlhJZSciAiAcsSeBfBSuFE4GFD3DwbDES7HymAHUSm1HACzj1uyWLQAAAGgEQlVSTqL+XlFym+cSYbz0KFQBKCe8RMBEAAAAEgAAAAEwRQIhAIDxDeM1KhZ7arrgdIcnvhIzgImtdx+Bxw0nEPyc1udiAiB0Cya5IsiqtzI0CLDGnNmguC1Bt5EIoixRTMmsVfnMDgAAAGoHQnVyblgyMB6VCvL2+FBcCfDKQsSzjxCXnLIuAAAACQAAAAEwRAIgBvMTXTQuu8GdTyNoSe36yLcqkBcX4Of60yQgHiVpOPkCIAwu75GRRSsFanTSn82moJeTAwDSrWi45/hZtHFDvsr1AAAAaAVCdXJuWBBiOHN7hbQiDHp939XEyvhZcoH+AAAAEgAAAAEwRAIgMWjwzVB7euQJ//sZ1gPneKZBs+7rVQtEC3U4y5YGAAgCICHPTDFEspGtRZ6qro9VEz/xhtU3pkO+YoqBd2QF6Ow4AAAAaARCVVJQM/OR9MT+gCtwt3rjdnADepIRSnwAAAASAAAAATBFAiEAh+uaXJU4MHpXdBoj2VUnvkHCRpLd91KRHmljWwCxhPgCIH5gyWA2ljnW8XPVqz+sA2dn+nGnRheUjrhk7zx/kRdyAAAAZgNCQ1MxJ024tgnfmeWYjuUnBxZDtRYPwwAAABIAAAABMEQCIA2AsgCaWge4D+xKmaziZvUkxaY7063VkeoIld0X2HHeAiBTRdW/gvG6qhNJubaExEKZLdlgnrCNtUZ8QaoFhcN/vQAAAGcEQlVTWVyzzm0IH7ANX2Z30Zby1wAQ6j9KAAAAEgAAAAEwRAIgbyGSJAaaT+RafKXjzIr/1lVLO1rwP31RWO/UwHZYjW8CIFYZY768mWvUSgS1ZlIJ8I9c/gb5yoZEadqLQACUP5cOAAAAaARCRkxZ9oBCkyjKqsq+5pt6n9shpxQZwGMAAAASAAAAATBFAiEAxDVn8pvJqzthJ/f8s7VWQVYsuepsu97IjjygyEph4DwCIGxrmhLJ3ZtXSXk13BpdXcR3fhaZTGQK+z3TQv1I1O15AAAAZgNCU0WjAYnYJVMioviyp3kGsACusAVXDAAAABIAAAABMEQCIFCJOmGE82FCjOw68s65JVKLQ9cB/ROsUt9KnfbSRSkSAiBKfix7Gj9mLPf0dg+kliti6bH2AGOIZH1Eg2CaZJllLAAAAGcEV0JQQ7qiwQ6mQJtYhwtcdzwP9CmvfG8gAAAAEgAAAAEwRAIgdvWDUDbFrvTu9eJOKRkOp/+tBoqaU+HLVXT2LkJyR+sCIA0aCsWLX0ilLoi2Qo25DNYBQynNG6fNmLMWIxoeJP+RAAAAZgNCVVquhIjnVJO4mg4UiL+RVCIIxBb0hgAAABIAAAABMEQCID1c6zSyHzqwCd0lT+gDcSChP/jEYIhwmJHzoFA6XHZcAiALNipAk+KZ4yZMSnVypWFaEgcYUBGue6uxUMHdstKCrAAAAGgER0xEWVlCB8eRr9BqjQh9hNmdHaU8y9RfAAAAAwAAAAEwRQIhAKWyKKdimmwv9XRQHt79eR2JHdwBZOuNL/9ma0TcUjCOAiB1oI0f4sqvxDRA8INdk9bTtNNnF0A2F+YwCny3ocnV1gAAAGcDQlhBmNjRRuZEFxzUf/hYiYe3ve73KocAAAASAAAAATBFAiEA4WzETAi8DY31iX8Mso+R8rMuMs1g6NZK/aQwuQaeuXwCIBCsiCghOkmmWilcoqFSWvVZITQ+SgPWU2kZ9mhNZMZJAAAAaAViWElPVFxKxoqsVuvgmNYhzYzp9DJwqqNVAAAABgAAAAEwRAIgOYk+j5x6UI7lW1xhgNR/E6RD4DxZB3oistmd9lHMqWYCIF8LKoqBa/lNOrIG+zYq3GZ4EkNIuzVILTvuz3tyTwqrAAAAZwNCVEj61XLbVm5SNKyfw9VwxO3ABQ6qkgAAABIAAAABMEUCIQCxte+e47CHc2z0vBWpFJCvjQVcG3evn/F2aYYm5ccvMQIgDKi0P1Pd3lWqPyv1mdw9lgkhOjY4tzSHaofSnosfHcYAAABnA0JUTcuX5l8H2iTUa83QeOvr18bm49dQAAAACAAAAAEwRQIhAIehLTEDWeoA7H0zxcot8CADFLDVU1Embf+Gu4q1LzGYAiB7hhzASmiAPHLsgWuV2i5dfdg5CBLEd0odmCEoxxwV1gAAAGcEQllUU4fxTpRgzst4nxsSWy4+NT/47W/NAAAAAwAAAAEwRAIgIO1tREtXanJbSmRT6Tk94U/swQFjL3OC6+skE0+ZNc4CIA+nRi8lsAyjCIigC9k+/BrMCyYuDe9BwPB/IJ62/Su9AAAAZgNCeXSwidtM678GGLKV2d78f+sA9W2gMwAAABIAAAABMEQCIB9zOAuSOI6LThky9aFvinBqc/+fTYMn3J9PawBvbac1AiBW6t62JcLoBuUuCKrO5ZvW3jObJuAXn6KmFrtM8QvS2gAAAGUCQlpDdeetigG47D7QQTmfYtnNEg4AYwAAABIAAAABMEQCIEs4denTAboBgEnhJENZS9OKU1WDJL7IRh/i3FojZUxDAiB6TnDBvUM9m7t/W5r1s0FCyCUzNYybwBJAZG5F3xEgBwAAAGgEaUJBVKi2Uknef4VJS8H+dfUl9Wiqffo5AAAAEgAAAAEwRQIhAJGF/+o61n3oolgT2Bf8dckvcjqjTKyqnsQZtFJXqM+eAiAZZdDUVCnzN9Liz46RXXI12cOSDrapFM9pV54yS4j3LwAAAGcEaUVUSHf5c/yvhxRZqljNgYgc5FN1koG8AAAAEgAAAAEwRAIgI7a7gGRt5RW89cz75Th+KeMjiYdfrO0OTOIoSqHBmJkCIEAOmehSqK/fNEYlBvBiHgsumK7h7yDKFm4qmH8q5PLTAAAAZwRpS05DHMlWfqLrdAgkpF+AJsz45GlzI00AAAASAAAAATBEAiAxMtokkO2k3/95jWA24OL/iCSSocYuYlncbscRxwEVuwIgPIpRKSkty65F/upHafJ/PpnNJRTQUHWf/oQPpG1G0mwAAABpBWlMSU5LHUltqWyva1GLEzc2vsqF1cT5y8UAAAASAAAAATBFAiEAjAU4lN9VgPpInmpPKg7MWtdJXTDPAFcoaa2T0MgkP8oCIGfcPUbvc1/8Z5zXX8+1gvFHOV6vxiQufepjInN9ic3mAAAAZwRCWlJYVtgRCII18RyJIGmKIEpQEKeI9LMAAAASAAAAATBEAiBKKg5dew5T8E0tk9H5V8ndr0THFZdBfgm2KfoaxFtXrgIgPhBqE9QWZxd90TFyTwIZ4DlCIeY9/4lR2g6FPYz/A3UAAABnBGlSRVC9VulHf8aZdgnPRfhHle+9rGQv8QAAABIAAAABMEQCIGcC8OVJcLuDoGMeZVO3YFq6I/SNhW1+svqGfdDtWdkcAiBZu/cJqNukPycVierAGKcWFMoeBDl1sPHQe5r3Hz9bWAAAAGcEaVNBSRQJSUkVLt2/zQc3FyANqC/tjclgAAAAEgAAAAEwRAIgJBwOhgB3V0ErFDh2zL3/MCRGi+rwooAd1A2Vp910MD0CIFrtTm2svyUOpzoK2Cl6uk4JjsOIzxMCF7rhKDNMxxRNAAAAaQVpVVNEQ/ATQGoLHVRCOAg98Lk60NLL4PZfAAAABgAAAAEwRQIhALDsOkyZBGs/7TGv06DgTkFzBGNCiI4qSogjzkz9Eo/mAiAN4xr3oan5gMoHKEWytIiav1WXwamUGuOVQ+olhS6l+AAAAGkFdkJaUli3KzGQfByV82ULZLJGngjtrO5ejwAAABIAAAABMEUCIQC54Wt6c0QU3m37x4mxzL8Ra3Eev7lCJPgoi058D7IdJwIgIWYXPNI83eoAGQsbsdNtM2KieODJHuRLzlgCAA8SrAAAAABpBWlXQlRDupJiV47++LOv9/YM1inWzIhZyLUAAAAIAAAAATBFAiEA27ZY6lzXhbNPI+B4sIa8e8zT5+IcpYkh+93UjTcow24CIG+VcnVp385jkCYMzz37/GAuDyQxhEqAsSvlbQHdLCq3AAAAaARpWlJYp+sryC3xgBPswqbFM/wpRGRC7e4AAAASAAAAATBFAiEA/mVZF8uEiQEMWOddtrH/CafrUJzFPdRzOumsruM+/1cCICuHP2VjUMdFFZeDO3ZTDsBVy+F53ON8BsPl2QVIoHkqAAAAZgNCWloZBiGQsZJbW2aJ1wc/38jCl274ywAAABAAAAABMEQCIBYyk+pbyB+g7Z6Vo7LkV4zNrFZ718bspmBp3iRZ/JIOAiBmIZ3z352onJ6kPaKFtDx3u0NVWhESIGrszk/AZYTSGwAAAGYDQ0NTMVzln6/TqNVit+wchUI4LScQsGwAAAASAAAAATBEAiAZtbf0zzHDCcoZgcKxYo9wn94H/6NM645dDKQFJIN0YQIgDed7MkNQD3PLCeszwaAHR/5ba4/x0Ry9QxhMxnnFo6sAAABnA0NHVPUjhGLnI1x7YoEVZ+Y90X0SwuqgAAAACAAAAAEwRQIhANOPoAQXUsdv4Vlzstiw2V27JtOBDzzhUxpVCGVS34FwAiBfAMhueLDCtXZjzT3SCZ5Zu1WOWyikc9t5L+WHY7HiDgAAAGYEQzRHM/LvNVHBlFpyGPxOwKdcns/fASpPAAAAEgAAAAEwQwIfX0Dsz4RYyDnH+WHo8dVevsWDv5MtxBl0uOEVxuItNQIgfDU/HQ8nt6e/CifNJnPA8TzeEtXZBakvutHeyDrgooQAAABoBENBSVquu9ey6wP4QSb2hJdTuAl1XXUy+QAAABIAAAABMEUCIQDiF1Iga4JmEmMKEYvmIH61kH//6vDLC/ySHcNR3PHw2gIgRuotWRz9jQ2kvkRxYmvT19UnErTS29SNPtA4crdeCzMAAABmA0NBSjxqerR7XwWL4OfH/hpLeSW4rKQOAAAAEgAAAAEwRAIgLozvUrAPI3llQnVmDMCbd3ScflgXAiqYxenYvF5pf2UCIH/GYS8LHN5j8caPOKuO9oNbn+8ebr/UsGfOScFQD5wwAAAAaARDQUxJuPoS+ECdoxpPxD0VxMeMM9ghO5sAAAASAAAAATBFAiEArWYShl2kkHNziwsnJajXjOrYLh+xmoEFIcDocVDj7CQCIDnrSEUGQ2HnG+OQM9dtGoRNy6Vglc4fsH8OCx61EIzyAAAAZwRDQUxMu+dh6hRHogt1qkhbe8rUg3QV19cAAAASAAAAATBEAiBd+G3hP9/K2foSWe98kbdydImavstq1+jR+xvgrD4wgwIgZ8SYtFSXCMqVTnH1S4vAyGrXVqOAGs79Jv9QzZz1Z5wAAABqBkNBTFZJTtyAkqr4PgDr+bAaLpC3t++Ge6UDAAAABAAAAAEwRQIhALNC1aaA3CvPCTs0C5kdQ7oQxm4lgifgs9f01tJQBTseAiABeXRazaEkHzQPTfc/fsdA/genaNv8/qPOmUG0A9esAAAAAGgEQ0FNSagJzt7pthlWx2jqoQJy3V4P0amFAAAABAAAAAEwRQIhAJceNQuH7Wbt2JN0I1fwz/vLgM+/kEUP5b1xipdBMxmqAiA1vo8xKNbPFGHYIHxToz32c5vk5WkywOfMJVmpxoozTQAAAGcEQ0FNUOnnPhrnbRehbMU+Poepp9p4g003AAAAEgAAAAEwRAIgIMYLDqADYYmgg4M/NPE3/m6tWCpYf6gnVai4/00SEmECIDwKAkbn8lCJQAZC3JyAULthdgycUtCKRPPpxDFKUEx0AAAAZwNDQU4dRiQU/hTPSJx6IcrHhQn0v4zXwAAAAAYAAAABMEUCIQCuWXkLl+S2fRSK6AuMpjkESmNMt13UGFagYI3FIE9LvwIgUVj4H7yUSsMVYZn54vdYfC/x1Knm6E82WRfEhHCgSTkAAABmA0NOQuvy+ejelg9k7A/c2myygkIxMzR7AAAACAAAAAEwRAIgNAlNC4433lZHIZgU/BF4rin2B29C6q5FwApCkH9N+vUCIH/WoB4AjBbqOGebcyY30Ij5uv9Jwiug4ZCm7Yiq909cAAAAZgNDTEH3JpoQ6F1KqCglKVFs+GhHdI2ivwAAABIAAAABMEQCIHJ+FUC4e4+wYklj40zZwyJcHW6oMc5Nez22yDnIz6eMAiAdRasdcxa14hECD5V8uGWEX3l5f9LCmDWwXWEqakFBlAAAAGgEQ05ETLwTi9IMmBhswDQsjjgJU68MtIuoAAAAEgAAAAEwRQIhANXnUhWAjsMDMiG+IUDGnpjZ0UQWl5bsF53J+zb72bTqAiA7kSC3SD6NJy5KkRzhA1XkmWyhqEaEPnTJ9+N5+HHekAAAAGcDQ0FEICkBfzgSi/76pse5zdG2gM6OXAMAAAASAAAAATBFAiEAhb6eZ09KhZ6Ew3U0+ABCLj0WXwZj7TNIGSW9YjVYHl0CIGSeC879YGvMUQhr9iv/6E5o1iNx9vY1xlrcL6NImp+4AAAAaAVCT09UWdm0hUjedxBRkiEgfXDkCqJNfRmFAAAACQAAAAEwRAIgbpNr6cuihpjJ890ABLlfrZM1OAxbxWNu+lLPGzmdIHUCICJkayC3O7D+0aApgNIzDfgPBMqhx22eToy5r9XQkMTAAAAAZwRDTkxUAOE/8W1UYZAkqzuGHyW4S9U+isEAAAASAAAAATBEAiAI0R2A57+5oxOkjhA/TP9mUARnP7QwhjqwrLBn5Cly4AIgeR0/CnM2/hwyrsrEeXZldG8fgqB1d+yTCFi4/C9fk64AAABnA0NBUEMET4YewEDbWafjJMQFB63bZzFCAAAAEgAAAAEwRQIhANCnTjbzH2lw6+kAo89Pih45Fc7QLZ6N0NqafjCrxT6SAiB6AFymMZFH8e609v18bVaCh83H6nw6n4LL9u/oa7JX2AAAAGcDQ0FQ7abv5VVuE071Ly+FiqHoHITNqEsAAAASAAAAATBFAiEA4PfO71WGYDgSttopiefFTRfCDeeBNkKXNbTx096dNY8CIARRI+CzME2GLejBUQCTk4N58RlGCk0bTpdT1RdNqh3pAAAAZwRDU1RPJGa6WeR0xGY5zrTrm3JIY4RDVg0AAAASAAAAATBEAiAbRiVANDYU/bKNjEWitxqG4PnYjqyi0adaSruQfQkfMwIgMcs1w17fhsoB8oAIFC3joThqtk6YGo+VMqSYpy8cj/gAAABoBENBUFARYTsfhAu1pA+IZthX4k2hJredcwAAAAIAAAABMEUCIQCfXLOWeijqa/8cS5OCTDmvCipC/gvj/UvP3FZGvWoQcQIgC9Epe+wYPWFI2VhpSo3VbMhPpHywJBLhz/nym0/kb/AAAABnBENBUFAE8uciH9sbUqaBabJXk+UUeP8DKQAAAAIAAAABMEQCIE3ZyBiO8Gr5GnFbgIvacpa7vPkYbJopceB/wTZ12+NDAiAWnNG1Q3Cqt421hEfn16yvaVFZESHjD21JsT3JuzHd2wAAAGcEQ0FQUwO+XJA8cn7iyMTpvArMhgzKRxXiAAAAEgAAAAEwRAIgLcC1QT71Xvs/4IzC4dK59WXuoA6bsvw1rNhbq373eKECICYVMRN+pSOGQpRgrk6G7kXZW2oQvPga6sxT1UeMlbeNAAAAagZDUFRJTlV8yi4cmwUZ9SApRnkUoV54K/ZpcQAAABIAAAABMEUCIQC/edRyDNP8PzFpazIT/+WWQcqRd7OvnZFVMLG++CuJ4QIge2x3GqJBwnMBXceHD9Cs7dg2sj15c41bvGBXI7ys7d0AAABnA0NDTbxmaeeRSisyeuQoGECG2KyI1078AAAAEgAAAAEwRQIhAOIxGQH3i10cQx01COKiSa6L3WalSPxWlgVkVyOE2o47AiBvvJbLtZ5z6U+2DqhFjyqMPyV6Sl1uGz2gGxVHNtxN6AAAAGcDQ0FSQj5DIs3aKRVrSaF9+9KsxLKAYA0AAAAJAAAAATBFAiEAu4yCd8SQQVHdrdLlp5kzSBeVOIHzcQEjjMLCmGmNH9YCIB5Es5yLmhDiVEegMIoQJNHeLJEbb5RQY9ofi0zv83WWAAAAaARDQVJCpReka6rWsFSna9GcRoRPcX/mn+oAAAAIAAAAATBFAiEAgFWS2/tjO4lq3BGFXgZJBudBlr7zs37APwScuUIMFtECIDb+Ycsx75EJmAT7dQ7ItHZGG/V6HBGpM/+KHIWM7LHDAAAAZwNDQVJNniOjhC/n63aCuXJc9sUHxCSkGwAAABIAAAABMEUCIQCVfL6ietFncNFjOW3TdXoEw1DjbZhwGB7iJGNVJ33gLgIgOOdqEcdMtH8jU1PsmrRnmAzOt1t82BLxi8B8wCleZ0oAAABoBENSQk7N7udnvtWMUyX2hQARXUtyKzck7gAAABIAAAABMEUCIQDAobiOXoY+LTJPX/2PNx9KOVEz0JHav6Gaf/tJ1le84gIgH1+1yXhgCCGvwx7sIeCMyUdkytey43pXfjOo2LT65QkAAABnA0NEWCyxAdfaDrqlfT8v70bX/7e7ZFkrAAAAAAAAAAEwRQIhAIn3tAZKYmbN0NIpMYD5Ad0OttIdU2LuEdndQ+JbXFMqAiBdiZOigyENFcCzkaYlUm/ybQUelyjCfdGOuajwLwQxhQAAAGcER0VNU+dKyBsUAh0M+4NfJp9I8lkYxcrmAAAAEgAAAAEwRAIgNwNBCueJ9Y0znhV9by3YbHy3uNFxPnVzeYgRALMCQh8CIHA3cULei4hdjxkO4uxtkU2CVYLRTU5JRGMpOpUeGW/dAAAAaAVDR1JJROtkhrE7VjFLN6rKwuxoidEadj3hAAAACAAAAAEwRAIgJKhaSXqAAOTOHCSqQG06WsO1QqOlUawn6WbQ0TrRJgICIG0WCBZoGYP6iBLrkiQ1l/VS5ReiFGmV2ncF8MIxRc/8AAAAZgNDVVTi2nFjgdfgAyzsqlBGs0Ij/D8hjQAAAAUAAAABMEQCIH/v5/vSnL5CD1AriGmy1UeACroytqvJ3otWMRekB09JAiAuYD8BIa4BMdQpbgbZ5/2SRm6innBaEcKQWBodmiu3QgAAAGUCQzjULevk7ckr1aP7tCQ+Hsz21jpKXQAAABIAAAABMEQCIAerQTmvJ31Ebllz1l0P9e1Al2e9wkOvUljOUMuHyzJuAiA3BGjvvHiuJ9024LY5jcrl1HNc77wxeRuH5W1/n7u2NwAAAGgFQ0FSRFM9bw3qOsPGB7OZjmzhS2NQchdS2QAAABIAAAABMEQCIEm7yYGdyr1QTHs3OhgqR2hqGOIDM3Bs/wwWF2rUxxZXAiAy7cZ3IhUrbFaJaRafW1g8KCKVHONMqXjIpmXVGF+bJwAAAGYDQURBwUd3yUIpWC5XWMWnm4Pd6Ha5vpgAAAASAAAAATBEAiB1jdp1gns+pU8/FOga5K4jyojmok3hevldgaZJkkOenAIgTJwOsCd6EMUWdR6AOw8d/318rE9vWSm6ZIfFP11qbDwAAABoBENBUkSVS4kHBGk68kJhPt7xtgOCWvzXCAAAABIAAAABMEUCIQCfGcVOMRNSMS2tS7UpGAnKr2OlP1aCR6Umbxd1LhpbmQIgJxYPWRZM15qNYvA39A0pNKE5kP5kKelnSi0MIBJmNVMAAABpBUNTV0FQOz+Vk4lYpAKfqLAYc+JyGwKVCIMAAAASAAAAATBFAiEAtuDZ/KU8vis+UOIMABq0ZmVd3eAxyaZ/TFOnbhbsWyQCIAKy7P+7Rpl8GYrtjufeCttptRiJtxS1DjO79Y6zm4lzAAAAZQJDV9VSNtSGBsKVrevxKdrQT8dL+qcIAAAAEgAAAAEwRAIgPw95lOs2gNAMA2FamHpm8xRrKsH2TKajCwHJQAyM6XQCIA2S9oppCGt2GhJ1DBF//gcm0GskyXhbSpXKuiVCXoEaAAAAZgNHRU0wse+wUiBebKPEiIw8UMWzOcwGAgAAABIAAAABMEQCIAhaxZBwM3K906Kq/L7RJ2ivUVUjWfsE0dJ/CDVNLzqlAiB2oxchLA+64vIX5X6geeza/uMDCyuYZFTI+bEzyJzIKAAAAGgEQ1JHT/Sc3VCtQI04fWEfiKZHF5w940krAAAAEgAAAAEwRQIhAJuO6IpYDiB1DfnXIFDerX/QtX+obRvkB5UeiRNrJVM3AiBUbwS7CwQGPPsqnoGTI9mbWNo78p3RkaQCfuzkFVuKsQAAAGYDQ1hPtu6WaHcaeb55Z+4ppj1BhPgJcUMAAAASAAAAATBEAiBdd5mLPWAFbP4SVRFWcZ4opwVrGsXt0pVryzp33ae0ugIgcCpx2fYpR0NXHyylYltVF1VQ5OlfR1YGA1kjw1MiczgAAABnA0lPVg5p0KK7swq8t+XP6g5P3hnACo1HAAAACAAAAAEwRQIhAM3jvv5r4YxrV75A+Vhp02faZZyRkFLya+Z589/9GgKSAiARtIGAqJicCkMlZw9D2nGPOO8ngdGybioqL+H4Q4PceAAAAGgEQ0FSUohN27XcbCzvd9PnTGzMoxV5fWVbAAAAEgAAAAEwRQIhAOepJRXcsuLNkwHRpFEgDsAKFm29SyzUDxGWnBbUQembAiBt8f4/471cp/gJRxyiEbVFmw524MdoLmWfPDkhJMMLWgAAAGYDQ1JFEV7Hnx3lZ+xot65+2lAbQGYmR44AAAASAAAAATBEAiAnNWqhKQNAmjiBz86Zw4sJDc9HJkcbp9XhC1pK0gMKDQIgaMNZ7eFZzcwTAlUlx4P3g/24UriL+eVAlEJ3UVWl/t4AAABmA0NUWGYqvK0LfzRat/+xsfu533iU8Y5mAAAAEgAAAAEwRAIgXNAd/tbdqECH4/UEZEm7elAOF+hThphXC1Ns0L+53FoCID9zH/djp6dZ/YDZ7cEA/KsysVWe3hQMI2LoiMKAd+pdAAAAZwRDVFNJSRYEwP3wg0fdH6TuBiqCKl3Qa10AAAASAAAAATBEAiA1AmfRtW5MT5MCsH1PBlbsaWC3TWVyjQK2E/AuOJPi9QIgBHEUDkRAdslIAlad/KyBpSi0UlHtp7PTxv2t4ySN3+4AAABnA0NBU3eUktNkTd9ElaotgMRo4be+avHSAAAAAgAAAAEwRQIhAKhRzskmDfVEyeA6gl9CD15WQr04FduyUAcZIiZlVjFDAiBlg7K9Z0rcjiX63iNYJl4TB8V0sNc65To3jhWT8fGyPAAAAGcDQ0dDy7INdVq600y0qbX/bdCBx2dp9i4AAAAGAAAAATBFAiEAqb/6yhBnuP1tb/tHnAI3k7uIyW4ikiKUH/V+zHz0T4MCIAx6RpwlensR4dFjULGa7n9Uv4y2EGoXThheJN1LgLHGAAAAaARDQVRFpC8mZoSsKtbssA35Wxx277tvE2wAAAASAAAAATBFAiEA2GWDE8pKA7Zqd8w6e8eJToSc9Zv0XtvWpfFdHd++k2gCIGiTb2bVm7ZlYev9OZf2aVu+Tl+QbzPnbsBV4dqBITS0AAAAZgNDQVPoeAtIvbBfkoaXpegVX2cu2RRi9wAAABIAAAABMEQCIDicDf7V0bCQD45dQ4PH5QWzi2QQjf8dlxpcRkwxqvJzAiB3ZBzed87BNMYsL52/UH2WExaa0grK0tFMFsWGbjUPqQAAAGcDQ0JQb07gPKbJQsk5fSul+Pg+pY+Rj0cAAAASAAAAATBFAiEAxwo83EYU6AcWTomS3Qn5g6eKeCWdNM8nNvkCoETVAakCIGTWhfWjU+AA5ssm/2WlTkndGDukj6vv64gV4Jsv6XiIAAAAZwNDQkMm21Q59lHK9JGofUh5nagfGRvbawAAAAgAAAABMEUCIQDiKngImMt46IwBmFQmilshDPpfaZoz7W3/raOZC4Y1dAIgLrG6Q3Xhd1zqRsrc0poBrg6mFkrmsqvXJjwFIYwc80wAAABnA1RDUDMaRYlRbq44TqX1V4U69q9zuVNOAAAAEgAAAAEwRQIhAI7+nolg+e8X22KhzDS+RDPSnPxRDIKLseXc5o0KWLyjAiBNFuyfklOon1lKJBr8kUdvQ22r1adft+EcG7PY1Uz+MAAAAGYDQ1BTtaUlGUJuxtiHhMyA5iEGJJgwZzQAAAASAAAAATBEAiB72lSCWZ2Mu/0XJoVU9Tlh99PIeRG6F4MJsGe6vdW3PAIgZZQLyrsH1osLBFknPCiMlU8QnUrVtzm41nVEF+N+ZjcAAABoBENTUFKMmeDsWs1jcnxG+3Rf+41B9bPG5QAAABIAAAABMEUCIQDoXU0d6wEG37RWcw/VWFZQTkljYY6nmgt2kfb0ODg8jgIgcZxXx1dvAYw8bNT1DTR6Hw4nmtv161V2olSXTtET6jkAAABoBENTUFJfpgmbZUCEg/b8ZMCwY2VhqXniKAAAABIAAAABMEUCIQCwUYXPxdDehicjfhLXBqEMrFAJm1tSj4Qkfm1KSG4BqwIgcKxGgg26oWz4lUT4+rl+klMxKTwmndNyZ5zpvVIjdHAAAABnA0NTUKZEbWVaDDS8TwUELuiBcNBWy69FAAAAEgAAAAEwRQIhAM8gOHNOXRu3ouL+nbU04oqulQd4OuVrKCONdbkn7RnyAiBMW17CfNjDLrs2qO0aPHplAuKGufOqSOgyc0anNp+s4AAAAGcDQ1RUGkdDzxr0wok1E5Cis/58E9L3wjUAAAASAAAAATBFAiEA3Rgd1In+ws44vbBQs8P36LcYywYNOJ5g3WZgnZkHmtkCIH4ktoqGMxKAQjpXwyXxoZPVAr8ehCBeJmaCI7JYlQvaAAAAZwNDQVQSNFZ0YdP423SWWBd0vYacg9UckwAAABIAAAABMEUCIQDItk2TIRxoh9sLn01AksDKOvMPjYzk8K7vnUengBjK3AIgI6pUecFtGwkYNdLyH+vj8nkugRyWSwKQfdwvlKX0w4cAAABnA0NBVFa6LueJBGH0Y/e+AqrDCZ9tWBGoAAAAEgAAAAEwRQIhAIsXnGtunfS6fWwI1TKAJbKd0/gOrZCF9Y8kYH/STUhcAiApVdUriC8OWPOZhIU+bi2w+7W7Vfmbh/Xpa4s9NkOiMQAAAGYDQ0FUVgFbvjwB/gW8MKipqf2aiJF+fbMAAAASAAAAATBEAiAFAeKNSee8jm1L4jFPLDV1vOrKCloDod6U2g496UNaUwIgeXnsGCK7YeXtn6vFdZBLvaRrp0PrOboBi68cAYxUISMAAABnBENBVFjHdDvwswDsBB5wTMNNT0MFCUIJngAAABIAAAABMEQCIDzUTCf7QUmjjqSPzh4jlJUxCoEzTi2KakB3nqAy+lNAAiBSA2ejBaySwbEr1Gypvj94wP7FdPW1mskNr9WRQ+PVbgAAAGgEQ0FUU4KTu9ksQmCLIK9YhiCnYSijPk3pAAAABgAAAAEwRQIhAP1jTgroYeXmaOYxusGsax6X5ah8FUaCju1xkKgey1M+AiA7Th/dLVlnX5AT6v+RPzE6y1stu94iJYgzfiwD1FXKegAAAGcEQ0FURUUTKfL8uIw5ikzdSoqYeAtNYoc8AAAACQAAAAEwRAIgN/vJ06zcecoKYQtTAf8XhJVWV0w3F7vbH+2rzWVxuAMCIHxutaUHgUZh4d/POZRR+ssV7vcKyhSX1Ce2wxStZv+kAAAAZwRDQVRUbmBcJp4MkucL7rhUhvH8VQ+TgL0AAAASAAAAATBEAiAOfDs0+mZnbTuOeRwUvOmPPBl9IVUxRRt8oSLQSBkZ+AIgBjpCI99dC8uaHbvAYoAVPjaqjxvThMAecuwAlIEKLkIAAABmA0NBVGjhS7WkW5aBMn4W5SgIS52WLBo5AAAAEgAAAAEwRAIgP+CQihfbY5f9QGTVorNqq+WBe0uoCAlcraR/M0eOG9YCIGlzhWSmE+eaM/zIiM4H82N5k9vZpmnzZIrLLqV+R0oAAAAAaARDQVZBRW2PDSWk54fuYMQB+LljpGUUj3AAAAAJAAAAATBFAiEAkbjY4rn9g7Te5WJFcmOzP8mjl1AZZModn09suRHZrIsCIER21519MzAqZjBAeGSS/awxwTjBwgV719ZZvJFjkeujAAAAaARDQVZPJOqcHP13qNs/twf5ZzCc8BPMEHgAAAASAAAAATBFAiEA3x9XAQ9wczT6i7XIjtL90sui4g0WyixD+UMUI6q4VtYCIHmw77eOVaHDJ5JpUYvN2L5k/ea00sywpymnmx/st5SVAAAAZwRCUkVFRjnNjNUuwc8uSWpgbOKNivsceS8AAAASAAAAATBEAiBZ6EggO2BhjlOU4EA5GLn3PsBGReiNbgsnxX+uJKLaUQIgZMmr1BY8bw81yQukRd4kFvtV/T9AmyVnZijgv6JNNfcAAABpBUNCSVg3z4+VVdVc5Fo6M6gdbvmaKi5x3uIAAAASAAAAATBFAiEAqDbugRLmxuHXpJuUerjx6HdYw5a9xB3+TRn5lhXv+WACIHQxuwhkQUXz42jsGWDERYp5kgh4kCWGC8wvzwshyBnCAAAAZgNDQkuHdh6IY5nvjhYkyw2zIwsHWjIsiAAAABIAAAABMEQCIEvDdSKxM6RBguYwVkjYyH6HwVKmovcXQ+f4Q+3MKvFhAiAs4hNNvCkp8K6jjI/EZA10sfdqwN4+gCtCU29UC0s8dwAAAGUCQ0MVyd0I+xYzG5dJqNfRa81xyYXxkAAAABIAAAABMEQCIFTAiTCgGXiBoUcJdDSV/C6MD+balmFCaOFDxhtWTasjAiB/DKoSBUCgCcKKF5QfHATIQ+y8PTXDkGn4ns76TriAawAAAGUCQ0O3+/9M5SACFcaQzJWFXl1sUjbunwAAABIAAAABMEQCIGZPEInUrwNaV1+0c0Yd2YRoVYv8f3u/oxVIZZLhxyWtAiAOPqrU2FURq2DtXEjPZxFEZEbVBtWGf8LugctGtHzXLQAAAGcDQ0NDvhHusYbmJLjyalBFV1oTQOQFRVIAAAASAAAAATBFAiEAvPYy/JQeRdca/4t3fSkahMGBOAutDROxOm8cR25FP0wCIFahGxkyAPCIlLOLfYcd0mBR4x3wR/g84dIviASzKFO1AAAAZwNDQ09nm63FUWJuAbI87s77ybh36hj8RgAAABIAAAABMEUCIQCevOsu0dJnuWkRh2wiImtKXnZ2DAiiDZHBygjnfhxVjQIgXygZo83KB7bIXC/p3iv5v3VAcssWpBriRZE4+8A7v0YAAABnA0NEWG//OAa7rFKiDg15vFONUn9qIslrAAAAEgAAAAEwRQIhAL/aBwrG45UwnI5i0eG3t6hwVtwtrv18bCZLOfskvv0lAiBlARuBo0dJpKevA0+qTN/+s1Ct+wBU31i+uyPzqXwNAQAAAGgEQ0VEU/JW86xBdhJvVa98biX6XzzfUYs4AAAAEgAAAAEwRQIhAMd3odfbijW+5YbnqAx7eMUK+pCchyYPIwY96iGUy3NzAiBaUfFH9ZCqALxSvL4Fr3415kEKJIGaTDGH7fOXJ9/BdAAAAGgEQ0VFS7BWw49rfcQGQ2dAPiZCTNLGBlXhAAAAEgAAAAEwRQIhAN7VJ0RWYF3EU7tWdNwp8VnRwdZcpi5XxVqRtRu8KssbAiAhp9ovO2sdF+BwtSwIUQNGCPWLyw0+OT1WhJEqv6ylxgAAAGcEQ0VMQxm1jZWSlYatdQiTyq1D53qm6M6eAAAACAAAAAEwRAIgHwzkhXq7jOYQ/7MSHVH7KnelhJOlO7mXOCSibbM20eMCIExLDd79widUrjrtnreL+IRhfHUzOf2orQt2qW1AQ9VDAAAAaAVDRUxFQqPlP+aS7to1As9cz9ilNeH5PSPdAAAAEgAAAAEwRAIgf0yoEOsylpJXYVggJvqb97+hwEusahU6l8wtTiLAG/4CIG50QCLe/9d++tPQ3T+aPXN5xp5uJrfNDgTRnOpDTBtJAAAAaARDRUxST5JUyD61Jfn880ZJC7s+0oqBxmcAAAASAAAAATBFAiEA/qiOsJfA+zTfkVwYGElC8Onvycm2U+UWWPDnVKfhE54CIDu/r1b+q2yJoHuvzuvZ0lMy3uLF1phaVOVGRVjGlRtaAAAAZgNDTFifj36lBFiKWLiyS4MrXSWkrrRwbwAAABIAAAABMEQCICeXmiVtduh7CTEn5i5ZUwcB3wH2Xd6AIwuq7fr5LSdpAiBY+6u7pJWVyzPMHB3Dr05oC13Nv8CPRkKESIrCT+IFDwAAAGgEQ0VMTCbIr7v+HrrKA8K7CC5p0Edr/+CZAAAAEgAAAAEwRQIhAMp8agtksptxBByfpmozR1OJpZnfquSxJglA2/gldfFvAiB7J26y1IxlVAwz+jFnAnTX++6qM03J32AqJZsnz/TDiQAAAGYDQ0VMqq6+b+SOVPQxsMOQz68LAX0J1C0AAAAEAAAAATBEAiBeScp4ZN3pe4SF8fq4zsruowVktdPjbRYk3DFvpVJQbAIgCwuz3d8ott3iLNb+o3sM7nB4d7ygUEOW34mjR6Tk+KgAAABnA0NFTgvGHd7V9nEMY3z4KI62BYdmzhkhAAAAEgAAAAEwRQIhAJeeHBzu2K+rHDZ+7ap9PK0zVeasYWYB5wJpgMHKYV/ZAiAV4jyMy54nJJfF3F7+ICogE58W2gDv3orixV6yatowzQAAAGcDWENGAQ0U02w+plcNJArjrJ1mA5j3xI4AAAASAAAAATBFAiEAl3uB+D/p5y4n1XLAjDuAvMj4FzKeBjY9dndJliXkQ1ECIHXuawTLZl3/Ln5HnhLzKj2KN4CdF8FHlX0RYmlzKgCLAAAAZwRDTlRSAwQkgtZFd6e9soImDi6kyKicBksAAAASAAAAATBEAiAPjFQAuO9DvSCApV2l2GC2dx7Wqp0dCp84GBdXz3qpfQIgVNqdPhPMNvF0UFCdAiL8dGfZ5RYgVO0oWcI9CEASva4AAABnA0NUUpamVgmnuE6IQnMt6wj1bD4hrG+KAAAAEgAAAAEwRQIhAK7083uBeos/w4341xccUP9qNxKzAGyGen/+wg74e/lDAiA+RBSd/F35mGjgVzCajIyrWhU8YDGb3pLIEc/PeBXtbgAAAGgEQ2VuWFBM3pXbxdkNCbgC9Ds3GXGtvs95AAAAEgAAAAEwRQIhAIeWzSs/Tdr62AbUO2bqB2ocY5H7FrxucrKClqdCD1vMAiBfAMcKuXlQZHKNfKs9lQurZ07dRoS1a+IYPNpjbPjEzQAAAGkFQ0VOTloRIrag4A3OBWMIK24pU/OpQ4VcHwAAABIAAAABMEUCIQDIydNSvy5VWZXGFkErVw3Mb/iRC/h+A0yM36JfbEhJEgIgTUOAY+n5uMVlv4sGtvpeQdjcTbtfKC7kVsZHMeu8AmIAAABnBENFUkUtpxnbdT36EKYuFA9Dbh1n8t2w1gAAAAoAAAABMEQCICMXps2b5VHsdy6e7pPxTMwu3qYcrkW0dTnpqZK+cFp3AiBBBYWD6vS4c4+JQBqsDb1tR2Pg3GXjPfLXS1BKTwnZDAAAAGgFQ0VSRVMuew1Pmy6veC7T0WDjoKSxp5MK2gAAABIAAAABMEQCIFXSSNokxf2dai/BBdUIOZMZpUJsg/tTHPB9JzjvcTspAiAx3UDEaCe+u5IrPFB43MGODevgRPRCfKNDtIJDfCyXVwAAAGcDQ0Va/rwl9MX8PpCn764LTUNqd8nhMbMAAAASAAAAATBFAiEAj9oUJ12T5HRB/OatFhKTDy33g0cNI5gDGhgK0QEK0CgCIBSlwzLmpQkJsgmM711n21zEUd94EemAnbkPwbCr3jsGAAAAZgNDRkkS/vXle/RYc82bYunb17+5njLXPgAAABIAAAABMEQCIDN8Riec/dIWmzoF+gwWAAaCNIHWBVsNOBlxRN75aBMkAiAd2iAJec0PnZsUvciKFTRverXesKwhAVIh/ta7FuF55QAAAGoGQ0ZMMzY1zWrca4vTluLVPM19cle03lW+T74AAAASAAAAATBFAiEAw4zTPX1eGXHZ63cO6VQQ6Er8BogsmXSjlZfvgy+k5gcCIAenG1CnvzKp0fZWkYdAKstwP55WVL0ZsHcTH/GDyOOdAAAAZgNDRk+4mBrLv32pWo/233mquTXOY0NPyAAAAAYAAAABMEQCIGnkz88OzK4f/WsFzoNKGvKHFNDcEYgUbCpQBE0FWH17AiA+2ErHzObyT6Sty3yZi/FCngy7hQBnJXeahbYHipTgswAAAGcEQ0ZYUQVX4NFa7AuQJt0XqodP330YKizrAAAABgAAAAEwRAIgOiolusL5e0FCE9gs0LI2a+mqXaF4jT7O9wlJDMrppjwCIBI5G/x2yb+gQc7LGJZsh4JhXje+5wjORXig5EtU6AaSAAAAawhDSEFETElOSxn0ovjiGRU3bxQpwmo6m5sdtf9aAAAAEgAAAAEwRAIgQfXZl2b5KyiXEVnp35Vi0Ls0NXHc6phbGKDeFJmTDCACIAXR/XsBZgCp3CnOZzgloJnAB5Aj2qdwWtVyHXW9lt0RAAAAaAVDSEFEU2lpLTNFAQoge3WafRr2/H84s1xeAAAAEgAAAAEwRAIge+6vFWyxLtK1xnPxGHo2aDP6arEo5Jk59vaivZkVoX4CIHoBUuXYmg7v7r/k0q5Tdtf1Ig2OYr+dLLmgmqX+MYSHAAAAaARDSEFJBq8HCXye63/WhcaSdR1cZttJwhUAAAASAAAAATBFAiEAkiT0iSk+gVQLoNcMKAPvQLJB40iSSkHGQl+X0dGfud4CIA0IhxwmzxuqwfXIG6JviVHwo54kbd6cXAGlpR6scwaxAAAAZwNYQ06izT1Dx3WXipa9vxLXM9Wh7ZT7GAAAABIAAAABMEUCIQCGvQKGxK973IND5/M+fG5dRLjKkjXAxmFR+pRnWBDRGwIgVqUrvBWB6NZ2PTDmpP9kXgbgGOWj1gqd/oDWa5GRZJ8AAABoBUNIQUlOxMJhTmlM9TTUB+5J+ORNEl5GgcQAAAASAAAAATBEAiBeAX7ZslEcPLsFMjMFLb50MvbUbtzDSNNvpkCLHsZtcQIgPcMFhlRzzpaaDbvAkaIoLEt9eMVH9Nw8QqMtQORt20AAAABnA0NCRxkA6LVhmjWWdF9xXQQn/mF8cpupAAAAEgAAAAEwRQIhAORsfFrUg71VhfcBjzMn7B6USRq/OFuUS9vSCJr9x+3wAiAG51/pFZpRB5AuvIO8bU3pkpoo1XZLB+b5W+1UuEDjFwAAAGcERkFDRc1G2SxGvh271czEl+lWEavp1Qe8AAAAEgAAAAEwRAIgGIpe3/8DPqrT9O4rld7a3P7tFT+WwehdZtlQGHT+flgCICZsittLhvhPlMF1fq7NosQTB/JRyiTwfuZdsk+Cac7KAAAAaARDRlhUNov58aHKdnk1458gQ52QQXB+JjQAAAASAAAAATBFAiEAgwoHikGSaGnD9hINXTwaWoOGFE/UMac0/qJFG6mJKAYCIAW/qk5swwB2cvBvcZIY5ISXwV6H18V8tinuwSt0wjN1AAAAZwRDRkxPiZTCHViBBroongFDMaHXRJGJTO4AAAAIAAAAATBEAiA3bC83JmsWaay+xYqRyrtGRToIBAWbSac+kIFfO+jBbQIgQa1TfI6Tw5GOTovqmxqNSjOea1O4t7MTg8vqQ4Mc1yYAAABnA0NHRx/iTyWxz2CbnE5+EtgC42QN+l5DAAAAEgAAAAEwRQIhAIl5wgPWVfgLIR/BpicZ7+Tc4TRr0oalWJdE3DEvfyUTAiB83FCr2hBLph0ySYxcnogfhIuavghnUtjpWrhlOoz1kwAAAGYDQ0hYFGClgJbYClCi8flW3aSXYR+k8WUAAAASAAAAATBEAiBSQ/i/W7v4Fk5HjTZz3ge+cFVjNuRdolyCjyHXBrZJAAIgGVD/C49DcI/2ZN9CLMM46MOCavQNCkJZIOaAKmZNlwEAAABoBUNOSFBEZEPlB/U7UmBC0AVIZ6YKTAQJy0sAAAASAAAAATBEAiAnuBOf+5ftW1ttmQyc6Xa8o0cEGgAzO0kpibRu8iusTgIgChP8QXXsKoDsnyTJr+WSSM8SZ2yOeYahTDetK7El12AAAABmA0NUU1foNQWCd4jJ+SvP05ilGnsMg92OAAAAEgAAAAEwRAIgKIlB+6ZNyW7h4jAqS7AU94BNC6UKSMBSEbT08noMlr8CIHV41ejn20uClacGqbez8b+z9F81XATJPi6L+8yqWloqAAAAZwNDSFO0E4AXTQsGGBUTpWd7YCALk7XvtAAAABIAAAABMEUCIQCWofcJCx2AshJ8SW/X3ofywRlKhcz3aZ/z+21GWR2rDAIgYtbYSFDOK5/HyRUK7s/wNH9ZUJr86eh2ltnrqKnrb4wAAABnBEFTQVDMZlOQsDxdMk2Pr4HBXs7imnO8tAAAABIAAAABMEQCIES0tpuovnnbq1GNStz/c4vAF4CJYU/X6/lme2niw4MaAiBTEu3bcLHQbS3u6OjKK37cLPmraTg5xNjk3iq8nd3RawAAAGYDQ1RU4/oXes7PuGchz2+fQga9O9Zy19UAAAASAAAAATBEAiB2W46ZODMtT0xkTLEHENl9b8245tYXl23Q3t/N+2U9ngIgC6ZhRLo8OstLhcuNKINKtnmxkSA50YuGtxqJkjI5H2IAAABnBENIQUwcwHRMUQa7R6YcTkH1F8tvHEm1RwAAABIAAAABMEQCIBn4ztFZWuwLwKsUm5xT8vmjfXqZQGklM6ABgc5OYUYNAiA8/Ray4TA1HU5gg+FLH+bkjk9aLWZ04nQHkv8yGZWb2QAAAGYDQ0FHfUuMzgWRyQRKIu5UNTO3LpduNsMAAAASAAAAATBEAiBzT5bjvcA9d7aiJcBxAYX/z7r9VxY4JSptZ4JvZHmB4gIgdaHAWxDNlrlcMgVVU6hZ6kQo2StWj1lqIZgRkFioZYsAAABnA0FBQdk4E35tlscuSmCFQSraLa14/4nEAAAACAAAAAEwRQIhAL8DD19tHbC8xL81XAPpm4KlX+c/GW5QSIf8LTW7sSbLAiBZuJrRau3zlHnf6tMssdNwGStYmK83KRa+CrXOoJPRkQAAAGcDTk9X6aldF1pfTJNp87dCIkAusbg3aTsAAAAIAAAAATBFAiEA64vOQ403y+9b3mqNVd0lfWtmn9y5mVDSPvFX7pHBI6ACIFmbZ9SaKFhr7k4Mv+MrEJSBym6f4odDnqfE1FM+SDMGAAAAZwNDSEfEqGVhywt+oSFJBPJubVD9NXx5hgAAABIAAAABMEUCIQC7XpX6ziqZLWOZ41f0uvK6/knq28/9hik2lQenWtYmCQIgWXHQCuaq/8318pX4y2Uk+ev2C8J+BsV50Jt/rUOUliMAAABoBElPTlgC06J6w/VdXZH7D1J1mEJpaoZCFwAAABIAAAABMEUCIQCKJAYkdELHYmNe1ddEuGqxzL61jTdps1XPs2sVC+I7FQIgJ0iko5j1lEvmXzaq/ZzMKwF541y8ep3l269g/YC4mpIAAABmAkMz8akcfUR2gHD3EcaPM6fKJcjTAmgAAAASAAAAATBFAiEA4SD0U6IsUbymepRELWRWKmQ2ok+PsZJjeVl/PyPHEFECIGxm3uZv52THhfwp8KrUWwg1Iqi4NKJGgPTCt/PYbmwnAAAAaQVDSEFSVB03mG8lLQ40lSLqbDuYy5NUleY+AAAAEgAAAAEwRQIhALB7moJAmAytYiZ5FrXxIWgHouIiWvEtoXyr+2v8udY8AiBJNqj4QfPZnsaEuHchzGqFK2ZvI4ShkFoPvcUgmj4HHQAAAGcEQ0hBVEQrxHNXkZRG6rwYxyEeV6E9mDRpAAAAEgAAAAEwRAIgXH77COU6r+63Xr3inbWjViHaJRx7LgcTa/+o9hoKZaoCIFk7UkGvXtfcHzk591hJuvpLqjAOqGaSfZ95+ElkVvqLAAAAaARDSEVRcO3xwhXQzmnn8W/U5idroNmdTecAAAAJAAAAATBFAiEAnYKtBIUeJ6tmw/E2alS3FQhVhqmLAlBfi7NTzj3h9iQCIB+PS1UOPNLBNTds4Xj/ZbBMQTd+DIms2T61ITZ4fbAuAAAAagZDSEVSUllOy2krD+3s17SGtMmQRDknhId+jAAAAAQAAAABMEUCIQCePlXi1PgZTLF956ZHKSwG2Drag07k1I6zD/fhv9ZjrAIgMKgimEGnv9zIVqZgCXEta56/fSAzF/6wLTwR/H0kYwYAAABlAllUXIlzbpRUIAFBuAw36yjqzsos6MsAAAAIAAAAATBEAiAIRtC8JBNpvdW7GCy7jKD9w/N8W2SBmrDv71UUfsWPNAIgQDY8ZsflRb41nFmdD46VFBNMtO5wnA/5PO+Z4nXyMugAAABpBUNIRVNTX3URK7tOGvUW++PiFSjGPaK2oaUAAAASAAAAATBFAiEAgfUmQURKn+tzhSvYp+gcDa6lWWST6zlZ1F48vCb/81oCICPHIXPw/fuwKjtj3JwG/nvXAoIjHuw6358cbonc1UyfAAAAaARDSEYrGKo3VIrcGCZBG12iqgJufnr5yk8AAAACAAAAATBFAiEAntg4D/pRksB4nN6+eIfroXQJfHignZuJu8g9UrpuTsoCIAWDAo4r9Gf+x3uEJRZCEuKznSNaANqLigalH7FiaTx4AAAAZgNDSEkAAAAAAABJRsDp9D9N7mB7DvH6HAAAAAAAAAABMEQCIAvXo8eFbSEf0+0VDohx14p3UWzWFVp4DjyS5Y3R2f94AiBfCN1j4cxYtRs8AcM6MBGRmddoSvU1Y00Ef/Cv5Yph4AAAAGcDS0ZD5jaEvPKYeJLO+0yqeb0hs06YopEAAAASAAAAATBFAiEAld6dCvwN0eEkSgfYaLOmt43Nv6J0oaU31bW35WbauUoCIBwPltYH6aBQlJZuieYkZTs8vaLCEkesy/PrQJ+/YWoFAAAAaAVDSElSTzUVa0BMP5va9Fq2W6MVQZvN43dcAAAACQAAAAEwRAIgKG1IAJwOcrYS+NuBH50wliAbEcak9Y9AxAmEFQTptigCIHSwQRAyL1vXIJXDFLPhELMBspiWFgUSnkZjxrNT2CCMAAAAagZDSElIVUEm/20WVJoAuos2zjFZtSd+bnmNGAAAABIAAAABMEUCIQCeJ0eRiCszrSbpBICAulMUIQ7TAZiwprO6Uvr5vrt59AIgc+h+LiJas/YcIaekwZA25N2i/e/knmLZxSWTalFhrDAAAABqBkhVQUhVQXvkhjPYaqmCEoSwEDC4o/mwbqh2AAAABgAAAAEwRQIhANUXDt096iaKcPUHx0V6GGCNHvWPcJIPhmpmVgn2vn0FAiAnv61CrXbzkMWYZ4aq0rpND61CwlkFhtRvlgGUrCtBzwAAAGQBT7U+zxNFyr7m6hplEA67FTzrysQPAAAAEgAAAAEwRAIgKkH/p9bI8QyEvzEbUntVgdNvlpXijWOYGHSfXPKh78ECIA2AgtK3kX/8kBKU7KYt371ArgoopiFkHYkD0D1msACQAAAAZgNDSFo1BkJPkf0zCERm9ALV2X8F+OO0rwAAABIAAAABMEQCIEOTKRyhwPvghSThXdkOZBNdw0qlVreqsW9kFEpHIHKUAiAQR/Fmge9sVe5g0Nr10D5YkNTm0Do8qFZpggtypQHy3AAAAGkFQk5BTkEH756CchrBaAnSTa++F5LOAWVNtAAAABIAAAABMEUCIQDc2ZhIu2jn0xi5EBYSJ+jib6BviFupTzk3m6Km/Ah/7QIgPMvy5dRcoHQ4SsDj0dgh/7yus74TZxqZZLM8PDPM27EAAABoBENIUFrX1qtSL6QcquePbt60ahSVSuDHcgAAABIAAAABMEUCIQDcegAmOEDxeYZUQ/OXFAVPZsTgxyJAaHzBNkm7RBdMkgIgCt6Y/b2xvffRNmZ7MMPVZnsQ/qx/GFiREhbVNgPtyccAAABoBUNIT05LhGebxGfcbCxAqwRTiBOv83ljUfEAAAASAAAAATBEAiAMgbdp1zkokK33kpvoqvv5FMW3ewjzyXGFOcDtdiQWQAIgM7pWt70lIwuL4P96XrYf4RamGWpuKtUsYg2ow9gFUREAAABnBENIT1eSXywRuZwaTEZgaJjuke09RQz+2gAAAAkAAAABMEQCIDksmqp8HNovzm2di11q+h4vW9kgde+UTo+xfs/Jv+avAiBHllg7ONcDxF/8NZGsI96Z8UMtOvIVbtD8WCK3jIYMyAAAAGcEQ0NMQ9NI4HooBlBbhWEjBF0nru2QkktQAAAACAAAAAEwRAIgLlopIgmt61LL5eiPxAGnwLBCoDDy2cltTvgabvP84hcCIFyAeTYZJsqPaTXWyUdGQRIewZg+21Yn+e3RVM45TSrcAAAAZwNDSFKKInnUqQtv4cSzD6ZgzJ+SZ5e6ogAAAAYAAAABMEUCIQD8bb1S3ehUlYMAiCCC1X4tNrcSahTSCKfYZCcFfKnWQgIgaSfEEgblUuNjA+rBg4tYYrTEbrlvE5GovnKRhOtNobwAAABoBFNRR0yNE34zN+sbWKIi/vKyzHxCOQPZzwAAABIAAAABMEUCIQCYXl4UssmxNY3baqX33kKUfRmBVxpfpFNztDEx7XrObQIgAM6TJ3ugXg2HmTypWjKXlqPc4yfRgTY7vGPO2LlzL+8AAABnA0NIVBn6uPff//OCaGROrr09U49oA2AAAAAAEgAAAAEwRQIhAIL6wdF572xUCaTvYYlHHyhC1FIyr2oPwDxP5UoeakNsAiANlc5Ow8e1tIh6iCnOAdD+RjH9vqYoo+87hfWRALdYKwAAAGcEVElNRWUx8TPm3uvn8tzloEQap+8zC05TAAAACAAAAAEwRAIgEEnGvdyXlgfTJrtLZ2H/pC4EBJ4oYepPE1SxA5lRyQkCIEnzYViymg78K10gMQuQDgT1JxM8PfMun2HfKtf16pLvAAAAaARDUk5P4jMRKURnZU4MqxTNMqFppBvlyo4AAAASAAAAATBFAiEA1gVqi6TKvYY7hz2nBd+aHZ2LYD7XDfqZ6ci12x+BB7UCIHsSH39vX4OMoozSSO5nbp0Sj5VEYSZBZ05HWn/EkZ2rAAAAZwRUSU1FSF0XpvG4eAOS1T1kdRgkJTARomAAAAAIAAAAATBEAiAFaKt3kfoaZ10msc1+jZwYSX4glPZqjO/sVkubOy5DYQIgJA9XBeFrOIKSHN5G1K0h7tgk5b5tvl/DIr0YoWpelvkAAABnBENIU0K6nUGZ+rTybv41UdSQ44IUhvE1ugAAAAgAAAABMEQCIEsjC71fF2Eao0lndogiPNX9ClqutRk10M5KV03ajjxfAiB0qFKyVeWQEj0rOiEO4G0Ua9+aAhYKgloAp35G1TN+VQAAAGwIQ0hVQkJJRVNIvva9Bb0jteaADPBAblJLUXryUAAAABIAAAABMEUCIQCETauHg5Q+A84ds9Asp1UK0nVSoqY7gygMwcpJ1qxkCgIgaD/mNxDEknJE9m6lYLKLnq/8jEO+/oN6cXb6PDcbZmMAAABoBUNISU5VkQmF/6cQG/WAHdLpFVXEZe/ZqrMAAAAJAAAAATBEAiBYPeOmiHaJGoFiLp5O5nvVGK/gm/9sbq4qZN0sYtKalQIgNHWmk2iAuWn5zyIiKFWCsYKnq99tV2GLYVTXofAFHxAAAABmA0NIQySBDYNvbWCn7kmWIrcQPsdp6B47AAAAEgAAAAEwRAIgT7kjNBqQkO+9huh6UkSMTuwy+iHuK3YpUif9YTtXHBMCIGHvGwG659ogtiJaF1GYCBIm24LbPdpwalEMu7zCGoHxAAAAZwNDTEOVEwGiu849NXeFuh4T7I9CMiJSuAAAAAgAAAABMEUCIQD78EElblGv0szh/yp8bsm1qipOnE/hh+TnBCscYiNl6gIgcLMeFmIN3V1BD+yj0pHhlbJ+CKlYtMNFsiA/HoUTLvIAAABnA0NJTUVsY2yp/VTb3WbebBwP6vVjfdt7AAAAEgAAAAEwRQIhANGly409GCCcsfwg28qKXX1KwLT/7NihJAudvCQWdwMPAiB8DvWI2iG8n4DlqO7Z1SZFfdabM8I6u7WXkCPDaLvQuAAAAGcDQ05E1MQ19bCfhVwzF8hSTLH1huQnlfoAAAASAAAAATBFAiEAxFlI7juiWMF35cBAGupfQpR2n9hmsUgOc4I6VS80OBUCIAIBMFWenaeIBrgPRgR6IEvv3OAAkc7gmWMuxZzbhgdFAAAAZgNDUFIgrgyp1C5v/rEYjzQafWNFBFLe9gAAABIAAAABMEQCIA3oAHcQyyk+8Hk1UqO4DOhFSi1osC+PJHwA1WzFUWj1AiB860OJXGY0aE2oY5b1HB/l6S+tx6JrxSMVoGv3ScVnaQAAAGkFQ0lQSEOD65TLVjFGpC/gqLPQUfI4en+4HwAAAAgAAAABMEUCIQCpg1eh8+Kg4ZMSfhyPo/438foeXjXnhee/gGd21wPHngIgUigsu09QRbRykydDivEKcFJc7MbVBPbB+IGyiSR4zP4AAABmAkNYP04CdBsVX1zo1hkNKU1PkWEluJYAAAASAAAAATBFAiEAsj1yvE6oDQAXq0wt1/Z7PMC2bv+g/skxPMqDVtlKGgUCIFgUjsWwJ+km3CEnS6BkRK7e9BIR44H6SFLjfysFXac0AAAAaQVDb3ZhbD1lg5BGApX7lj9U3AiZz7HDB3bfAAAACAAAAAEwRQIhANGbS66Y5kLFC7IoPhwTd3eyMBUYktJ1ZqUzIksUKk80AiB7m1kSi0GCTDahV/g2vc7EQTg/dFodhBASpemxzewX6gAAAGkFQ0lSVVOgEZnGGEH847Pa+4P+/BiZcVyHVgAAABIAAAABMEUCIQDOLIikEHR7Z5GrH42vSsCfCT0vGJWRwhdfpMhM/e1RwQIgASulfJ5trOFQrcG3ppuPPvorM50RAczmsBai0HaZ0k4AAABmA0NWQ0HlVgBUgk6msHMuZW461k4g6U5FAAAACAAAAAEwRAIgC4CKk4/AJbv52c98T7TqLSXUgE7s3pQNLsqh5aciiE4CIFL8tvsR7eZhZHofGYHYEQ9dS74p9+4RvmWg9yb8SLRSAAAAZgNDSVY3/g8Gf6gI/73RKJHAhYUyz+c2HQAAABIAAAABMEQCIAaJJqOcwHCHDCrdFQU0BUC+T23VVd9179prZqCX1v3TAiAbPWNg7MT2mQSFpGSsBFLdI3V9nY8ZHN1RYY+kw1cfHwAAAGYDQ1ZUiJMAcvWDk29QbOHx1f5pKQwtaioAAAASAAAAATBEAiAqBDwZEUnJpG4SBtn6d/NZzaql45FUkGLrXCd0UlJ+QgIgfEmRyezOkLMM++eY12a44EglOEYPZ2FzUCOBQrezeuQAAABlAkNLBgEsjPl76tXeriNwcPlYf456Jm0AAAAAAAAAATBEAiBvyZUIULo+rDai3TDmSKdF7f63t4T5moDqHlWKehrPqwIgWe03SAst9i1ApTofNkIE8jtcMhybrH99SbdUPxDkMkMAAABnA0NDVA8AyN0h2lG8amrAf0kafb5pdG8WAAAAEgAAAAEwRQIhAO951zlwKYeGXwXQHC7JYq46IvxPv31CXFz4gVo6190UAiBv2iS6BgE3v8YdSPpifo7h/ERNgmeVih0XMGd9VkQFkQAAAGYDU0NUb6CVI1VgffstOZE4t/4Q65DyReQAAAASAAAAATBEAiAXzmfH1ydLf759xGGLXkuu7Pi1e+FFGGEQJrzB4KNuvAIgTevLUEo3jj9uhlrQylkwxwnKyn3+30m7ni7t3FSuzC8AAABmA1hDTAhDlxtKxuhCpRiqGE4CcdiLXLdPAAAACAAAAAEwRAIgERFYNo0GvaPjfhj7Z9Dwh2dekND2Zi3E0EATJmDj/FgCICByKgBza3CDPxPUxZFO/4DQRUdlIDc0pVnGwChBdyRHAAAAZgNDTE0O2DQ9/e4y44tMTOFaOwClnpDz2wAAABIAAAABMEQCIBAyr9t4aZEABM9bENRo2iEElMx8KglFo2dGeq0sZXu6AiAJNUNLOWQGeBPOeXQOWuS2YW6foAXjJlieCdkPddlUIQAAAGcEWENMUh4ms9B+V/RTyuMPfd0vlF9b8+8zAAAACAAAAAEwRAIgOcrvv2n9rYQuYTnTS5gzlRftFllPJuDSTP9N0Ics/pcCIAyPy/iiegPS9bbg7nsEsYQdqb0wJeik+LiTBTSm69wqAAAAZgNDQ1gdZAUTijNc5f1zZAhjNO+z5PKLWQAAABIAAAABMEQCIHuUMS8u2Ukzze74/Ay0LFvSSvDT9t2c8JuoPwwdmbMPAiAekEC1kqI4EPUOccEyVXE95vdqPrfuAOELB+Z2TWaDkgAAAGYDQ0xI19jzuLyLxI06zDeHnqunuFiJ+lIAAAASAAAAATBEAiBTGMQE36Q9NgFNxYW4CF+aUDp9cRDl8dvs4euWv2qZAwIgA13XO/0x7SdpDUB6cI3+ErEKX7CxpM/30fGaDDL+KxAAAABoBFBPTExwXulsHBYIQsksGuz8/8zJxBLj2QAAABIAAAABMEUCIQDU4+qkJq7DTi1/gFhBWP7hb6fBbTcc0VSkozb5eMWhmAIgEW5Teg84DgGwu/4sqgtaUvtYsqhIv06X3VC4V08wjYgAAABpBUNQT09MZnYfpBN3ADYiruPHZ1/HtcHC+sUAAAASAAAAATBFAiEAqCoVcseu41wIs3K+KxlC9wwiy25eBYfZMSY4v60dTW8CIGd69g0RVOKVjajkB1jQQPRi9cDRkcf8nxZEGEjL2S4oAAAAZwRDTFZBxS4jGUR2sd05QIywudk12o5ts9YAAAASAAAAATBEAiAGQ3jlAd8pnsEWBZLyY52V6LtrehmG0PrplTdppqlLnAIgfHOgeDUvmwsqiuXh/qO/gyMp7WAujxUH7WBHVbcKMKEAAABnA0NMVOXbLD4s7/dC5TBrz8EmIvXi0U6YAAAACQAAAAEwRQIhAIeI6OeCiPL9M9tx7S7+S9pGPRx04jUp5xFGSjobPUyNAiBaGdGqShoEw8uWcNDQHKCgLgdTyf4sJI8Xd7394OjbqAAAAGcDQ08ytLHSwhfsB3ZYTOCNPdmPkO3tpEsAAAASAAAAATBFAiEA5Ijx/MQKqsnlKCdovAsXuSKgLoAymwPtZUhRoySpNy4CIBdEP2kdG4vG7WHZmG2gRtZERcimpnQy+6fSj87odWafAAAAZwRDS0NU9rxd2yGyK3ajHHGaiukEIyBV2HYAAAAFAAAAATBEAiBGptXCl0AR7aTWTFr8rEOQsxvpGVxUhnnxteeUzN+wegIgbp5B3B2+7lmbiCYqYJG6GdUdBXGb9i4BenWgeMlU+U4AAABmA0NUSYwY1qmF72l0S51XJIpFwIYYdPJEAAAAEgAAAAEwRAIgGAroeQ6EbCbMaHjAU3ihzlTqCO488amGfFQPYiBuiLICIBW+KZngCijwwqdOME2aiV507lcru0fjhWvjnbmWMx1tAAAAZgNDVEnLj7JDioBWZM2MPmQLhaxHPaW+hwAAABIAAAABMEQCIFbPMI1mHJe0CkU43QnM1O+mrdEYeJJENwg5jL0d43OyAiAZeSLat1x1RxK2X8bprPQwheFGqcClcM3x+i/ozGFHTQAAAGcEQ0NDWDeJA6A/ssOsdrtSdz484RNAN3oyAAAAEgAAAAEwRAIgNqCbLf1Ukr3MtDk6AKocuJK+5v2t5I+uBH9tI7UwS08CICdAUDFl+LS6zC17Vd/a794ZGpNcf+YlIGe6uuANu0o3AAAAZgNDWEMhP77hOUtGDu2dH4fwBmxMpbhc6gAAABIAAAABMEQCICljMcPH+Wtp5q0n/h+brhw+XToQHOXfplYIUiAksTQYAiBiKo5+cXn5BjKM1axmboic5Bdn88WOZ12DpJcmdLAykAAAAGcEQ0xJUQ3vjYrd4Uye98Kpht8+pL1lgmdnAAAAEgAAAAEwRAIgL40IS2OEHBmWXL+cSQtxVFTc7LeBv5dvbfo3EF9tAEwCIHkKuetU8X0GVo31wzgYO1pWZ1xo3G4FcN4eUaWzLr6CAAAAZwNDTEKxwcuMfBmS26JOYov3045x2tRq6wAAABIAAAABMEUCIQC+IhJmmtFtsEJ0Y6hcRuEmRNuJgy4hPQGE+XcqhNfsmwIgFm78UuOm/hNHX0QvGiS/UN7mbtZxSHaGvDmpZK7nSMMAAABnA0NDUx2khYrThcw3cWWimMws4/zgxf0xAAAAAAAAAAEwRQIhAJr2AdgqVSn2FdXLMFSpwQt/yKTrctcr9lX5eO1YNjswAiALiNtxzLW58wREfAVGUv9yWi0r4fWfOiAKLsz8LaU8VQAAAGcDQ0xWgMYv5Eh+E1G0e6SYCevWDtCFv1IAAAASAAAAATBFAiEA2QcttWoGxZ5MWPuOx4csCALqqP+B2VW7FIAm/mj91fMCIHikR1L8g5sn7ELeczH6Y8BsboBknM4m4hsrbATPHHz9AAAAZgNDTFYiIiwDMYRAMFrD6KeCBWPWqf13fwAAAAYAAAABMEQCIHRGCG/hK8LT+8eTGiITwuekrtxRT80OoR7mRBlQu0h2AiBG9N72WnbEIMDNo4+Dro4KeXQM4qdo5EP3pXdfo5m6bwAAAGYDQ0xUpp96EN+QxNZxBYi8GK2b8ICB9UUAAAASAAAAATBEAiAYY1KxHKFLT2Afd9yDgwliUlRJGv2jRmmkmbrLxCzvHwIgdWy7xSfxQRZ1ga3r36K+OxTlD1A850ZL9v/DdHv07dIAAABmA3VDTV+5mjWT1wiORDd6G+snc5vZKPJpAAAAEgAAAAEwRAIgCTMQj7kfi0Gc9lJAlhuM1QEBIn4bIXfibuNIfRwBljACIGLbyVxp/1vigeCkN4akmyYdHmeJOix1rC9s4aeCLVO/AAAAZwRDTUJUPt0jXD6EDB8pKGsuOTcKJVx7b9sAAAAIAAAAATBEAiAGMIXChOH0FiAdIZb4HSIG7XTU60Mhw7a4HzUkEZMKFAIgX50guXHEo5VuyO7uR0rY2xVLm+DG2iHRWQSY92HP7bcAAABnBENNRFiywZuk1SRtTFh6YvDf6feAg1aEVQAAABIAAAABMEQCIBmEyiEOMnPiohK3iEK0Ty7ZeQFPw4Eb3xOmB86D/ObwAiB9upC1kVjD6wNfjm/bNN0iZm6rkd1nUsCaiDpJ4jwnBwAAAGYDQ01HX9H/odgX4rweWUCBqfiDqHB+lZwAAAAIAAAAATBEAiAx4gmOtseDmuAluWwDd33x5mlszy0GWD80SuwPJ1/BOwIgEZsPdsrTZu5KI4FUrCc3wj1VwlErztZxAsxjqwrGZBkAAABmA0NOR4g6FYybKPjWJqz8++ECj0nnDJ11AAAAEgAAAAEwRAIhAMlVCJ2HMgtrIsdITI3AjYk5GCnncML+h5c9lNnHMlRBAh8iw5m+LfyGCBnscet0yIJ0Xr9QSB4ScT9eE7zjaBumAAAAZwNDTk6HE9JmN89J4ba0p85XEGqryTJTQwAAABIAAAABMEUCIQCw/QKcaN5yotN5p135Sw1oQy7JWnNUzgP0V3xJ4FZj5gIgD1o5ra5Ii2+j20cZW2+7pQTEIYGow478UfO/47haAQQAAABoBENOWVHFQbkHR41c0zTAy/y5YDttrG6e4wAAABIAAAABMEUCIQDF6+mhZ/XdAKUlhUtGrxYwOGm/oHcZ7P4HHY0zj9PjoAIgVZlsGsfdZ354r9EXfE4r5mxI/PW3EuwxQescSYK0ZPcAAABqBkNPMkJpdFdLNrztRDM4h10XHMN35pH31PiHAAAAEgAAAAEwRQIhAKLa3Qst8ID7z4MsjT0dQffZZStk8jAR8RgJkwENK7oTAiB04YBeZ1K8IIbYu5JDT8KZ8hNzQJhziIxjwm/yGyWnpQAAAGYDQ0MzwWYDhwX/urN5QYWzqdklYyod830AAAASAAAAATBEAiA75AimybDliELf12yHT/8ggXWvGOjdoHiQkvlyfv8MjwIgMYhVnGiAY4V3njaWtmsKQWZ0pKbr+9yoD2whl1eAp3IAAABmA0NCS9haauVafzOw7hE8I00u4wjt6vf9AAAAEgAAAAEwRAIgdakjya/zBoeYIlaxQzu6AIaw0Uq2u4R7sIUmfR70AzwCIGXu6UCgK6ehGeMfGjjTIPf0a4tXyt4Ip+bMt1i0kRVKAAAAZwRDQkxUKamcEmWWwNyWsCqIqeqrROzPUR4AAAASAAAAATBEAiAgb4w3PzTPZPvwvRlV8SHWVvVdS4ksUVqnNluPyBDd+gIgb6gdgN3OS0kcFQ9wNs0qPwdUpn9Z226oGVI6QSWxr14AAABmA0NPQrL36x8sN2Rb5h1zlTA1Ng52jYHmAAAAEgAAAAEwRAIgKsxt9YzmJpsz+kULYOfEkcce7c8a7wZoamNDxiDPlHoCIFzw5bkM0RS8NbwW+41TmuspL6T2f96he59Sjw7xRvgNAAAAZwRDT0tFo6PwdkE6Niuw1p7qHcWw55yDHtwAAAASAAAAATBEAiAToGZCZ6ky5cJIj9Z88hqscUq6oTImWkJUOmoP0wOHTAIgZc68Hh4BVxWtHDtXOiImAxcZ4ydTbDl+VfM58uaP7YMAAABmA0NPQyK2wxwr648tDVNzFG7tQaue3jyvAAAACAAAAAEwRAIgK8ISUuGLu5eolhTAihQFruYPByu5txjbTp/Cnww5+csCIH2BBP8ITORgHOBH13IrN1uflzi4QwhL005gP5Je04X4AAAAaQVDT0NPUwxvX31VXnUY9oQaeUNr0rHu8DOBAAAAEgAAAAEwRQIhAPQjlGRHo0QHwf8rCfCZCTQV5a8aMWJwZ37YKqqZ18i/AiADfW76eXAbQU0vCaoXg2AJ/puG925mJWExMz9vyFr1/gAAAGkFQ09DT1PEx+pPqzS9n7ml4bGpjfduJuZAfAAAABIAAAABMEUCIQCrRNtKbuwmBjOB/O4iSLmPkVYlpTKrjwcLurmawlMPkwIgNGhdhRIOlwSDFYazIk6evuXrpHrFR1dvOtNJICeNq3gAAABoBUNPREVPRrSn2QbxqUO3dE3yNiXmNybXkDUAAAASAAAAATBEAiBBzoBxhZcKPEN2iepNz1Ka61SPDFpFkA9n+rgGTqM7eAIgIsYYI8BaTJh7d+njEpL1C+aHdBYYmMfIDntNtZaag5QAAABoBUNPREVYYJkH4em6mwK0LM+1y7wdqW3q5AIAAAASAAAAATBEAiA+EVdWOzcWvzgAHIIET4p36Iy0+OdalIet5mM7RU4lhQIgFY2kdlVOI4sWsLPCOfZbSl4qMehLUtzm37XdCs4uCzIAAABoBENvRmkaI6a/uttZ+lYwCMD7fPlt/PNOoQAAABIAAAABMEUCIQCopQgP4lxDH7ekZIxknFroVAQ4epIypE0awKDMSnaFqwIgL7SXdfPU2iSkECFOV6PEVjTjU72IczqxJEVeap0UR/kAAABnA0NOWOC36ILBlIgcaQkky0YVS4JB+RReAAAAEgAAAAEwRQIhAMGmk2n42Dz/dcTPS5pPtZYddz5Fm49PykYpgbrFSqB/AiAZE+HIrH0p7sh1/rrtAsKiBQ6cBBo229skWS3s6S5ORQAAAGgEQ29nZXCmmUITqG7uGgyOZaDATqzOykduAAAAEgAAAAEwRQIhAN8ygGD/HYN6VTHsVUnKbnC0lss/l0NhE/IbfKMEPYdyAiA4UiHuNGuckEOultyC2MQLeE5TuCDpvYpk4DOCzPzVuwAAAGcEQ09HRcOC4ECZpDVDlyW7QGR+KzLcE2gGAAAAEgAAAAEwRAIgY6WKUQpETsWPNR37HlEx/rfbtUI9t/shKSZsd41mKbkCIFqffOJ3Jiaq+obXW2QOWXL4Z2DfOC79HWf6EikUQ0OHAAAAZwNDR0QbxYN84bL/2Bng7Se9Byth2JmekgAAABIAAAABMEUCIQCYZNZnlCN2knjp+Yxu/rDma4YnYXpw+ZCa3JQZzhfxBgIgUslGghOZGVtgzS5wmm1V1Xof9OanH611mV9K4ZtY/7UAAABoBENPSUw5Nq0BzxCaNkidk8q9oRzwYv09SAAAAAkAAAABMEUCIQCqyMWZ8W1JVDU0MEWX0Xg+G4GmiINbgp+rU8ef7lUwegIgR2xo/g5a+e4Fl8Nx2sGuYUHniEbuuYxRiHfmbwNXdbUAAABnBENPSU5weszkQE7TGzW9lWWneUoGx8E5yQAAABIAAAABMEQCIF0YCXAYrHiM6unq+Mi6Spz4Basi7C1xef6BP4fZEyPiAiAHP/NwJuoLmx8iKkiMDwGMwPZvBPvz5PlsTTR+1qpUuAAAAGYDQzk4rhLFkwiBxTcVs2nOx2BrcNjrIp8AAAASAAAAATBEAiAkVtffdumokMpFsAxY4/lYfQf+3DdMpq09V8JWfxZvvwIgHdEDDM/J0i5tus8DRLrYDG6yl2t3H/Ul76vMC44wjv0AAABnBENPSU6HsAjlf2QNlO5E/Yk/AyOvkz+RlQAAABIAAAABMEQCIBSGBRhVYKGt02eSZfP4uEDsJif/N59+t6U64Nk1OjQLAiAwTISTFDIAoy0U7v+0ZtBf1gYP3Qad+t/GQ8Z1lEfnvAAAAGYDQkFDfcWXKbCt9K40choeBu+CoZ5pCwQAAAAIAAAAATBEAiB20+yIIyTyV0TMCLrDUuHDEp1mF6TH1un7QqYKyNjxhgIgMqiMKwpK5qpKQDB49BDJ4lYDJZVlxaCv5QrGaRgE+mMAAABqBkNNRVJHRRGQB0eV2tDmG2EnDeSOEIQn+PgXAAAACQAAAAEwRQIhAJ2P8MjE3g/lZzRbwPr8H5uZ2XJGiBxSB2KGtTy3pxvUAiALTBS6RbC1YJuA1l6MqvyoiCUwybcNtLeJcT0ki3TOnQAAAGoGQ01FUkdFxItIFPrtHMyIXdb95ipkdK7LsZoAAAAJAAAAATBFAiEA+8NG58+r1V3kjDE/GEfCR+ccnV70am4RwzL0OZGLs8ACIFvB/qSFmhm833otUw59dZGQm+t/r0iADSek0D4yu8h+AAAAZwRDT0lO5h/a9HT6wHBj8iNPueYMEWPPqFAAAAASAAAAATBEAiAZ5FDw9641f3avvbwlqiMUNqOLQGSGxbK2TvM3rX5heQIgLY0UO1XB5F54PHcj0TrfldfyLPSTriL03nw7Vfu+XCYAAABnA0NPWaLB4ErKgB2pL6la8WEEDTfxA9adAAAAEgAAAAEwRQIhAM0TUPS+LvXPBAbmVFyGsbO2Ni937B0eeFMrZ/wKSNSUAiBr4e1sADIfOCXF2e71tWD8S3cp7ZBY9bxcf3JpfIVFsgAAAGkFY2JFVEi+mJUUb3r0MEnKHBrjWLBUHqSXBAAAABIAAAABMEUCIQChN/xI5LVopHwdKriyYXYs59V7jpv4DHBGDMwxb+VpKQIgJK0eDNyWB0ItkK3fRhiQPad/rA/ZBwAAtnWlRC//UhIAAABnBENPTklpXbZQjWa/ER2Nlq2v/FNWt/RYHwAAAAgAAAABMEQCIHHI54tm7SnXm2B8SD42d3o2qTuMqD9IzaE8RVZ4OiyzAiAFtEQhW0rENJPbfkJN43dMFHnnAqxO+gQd3Uz3t1VpBAAAAGYDQ0ZUm2g9gbgzQyW8wYAtR95lVxmT/okAAAAIAAAAATBEAiAdy9gQfTa142tW4ATYNLDHqvL+5U9mYKFVGw1m1Sn32gIgBLHuulxuicg0pvm/KPhmxDTgqy7EXxEIUdPtqkrRrWkAAABnA0NDWDldyaguPu+WKwNVo9TmgZ6a93bSAAAAEgAAAAEwRQIhAMZ6H/kDAr1wXN37vNTdk5GuFasLwuBCL3efIlXpCbByAiADLNpx2kikPflgSPFoLAINHLZGqb2IGSZc4jXTO5GC8AAAAGcDWENDTYKfjJKmaRxWMA0CDJ4NuYTP4roAAAASAAAAATBFAiEA9vRgokwYoM54InO941SRGe3KRrx6tPR3AlQIqGZiugACIHF0yIRqPFbuCZuqM5UKBbC1aMDhKgCSgF5W2YfVpO0gAAAAZwNDRFQXfTmsZ27RxnorJorX8eWIJuWwrwAAABIAAAABMEUCIQCmC8HDc+CYRTL0sMqgm9gHdpx7GvZ7bzeDohSbe5OArwIgRsd4wkYH1ekS7CtgY+0NC3wZVMftIbWThHAvbcsWc+oAAABnA0NETMsXzTV8es1ZRxfYmey531QPYz8nAAAAEgAAAAEwRQIhAJb5Qg7KmLTnl/bo/EF6cjhBCASvIFeDEZuuYHA2DbjlAiAOYsc6rljFMc2R4Wpp1EG0ZOoTyJp2AhMTsMXHnfLELQAAAGcETkVBTKzOiPWmOl5l25qnMDcgvha1VudRAAAAEgAAAAEwRAIgEIGkgYLnCkhocdmwZQkzA+Mfkz6olEvQr3bVwdClAosCIEEHEwwVF14c6eYSNrfkpnIjx7gY8rw74X4T+qAoy2RqAAAAZgNDRVQIH2evoMz4x7F1QHZ7vpXfK6jZfwAAABIAAAABMEQCIHJqqCgdAeo51JlIzFkr3W/ULOFK9Mgybw1O8h5slteRAiBVbFBvr58wV24bTyhPAzkdOjl9QK9BjNYTM5f6BoChrgAAAGcEQ09GSTE274UVkqz0nKTIJRMeNkFw+jKzAAAAEgAAAAEwRAIgIa5hIy4vrm5pdg3EXcw5j5AqJX69wchLDJOZ0fm6Z+YCICokFCstwVkuLUC3msfNlQZ26bszxEo69tjRfOmwslHWAAAAZQJDTOgdctFLFRbmisMZCkbJMwLMjtYPAAAAEgAAAAEwRAIgCOIkr57E8JmYjtACiHD97GgsYHr+uvWh7OsYZRFCvKsCICuH7EQD/v3hGtQEMCadQiUYmX7SeWiLDAFWVW3kygJDAAAAZgNDTFQgAfKgz4Aez9piL2wo+24Q2APZaQAAAAgAAAABMEQCIAen57yB8yCmhIRH/BjveeheUqVIFu0+KgP1FRqEvIj6AiB5GKgIa19Bq/ULZYdJV69pfyBvfEBcXZKU990T7B8llAAAAGYDWENNNqwhn5D1pqPHfyp7Zg48xwH2jiUAAAASAAAAATBEAiB+7pPjRNa3XM2X6+xyrKTAmbCRDpKmJrITkiF73Ih57QIgPxMpnxX7Z/Gk3EdM+OcbQhaKceatf4CBqeF75TQzOXAAAABnA1hDTUTiypHOoRR/G1A+Zp8GzRH7DFSQAAAAEgAAAAEwRQIhANeRXZE8yoh6a+2IGQYG+xITQtaIkl6wubvff73vSB64AiAA+sDJUMzgnmOyGIgZVfzxr2EppdX3oSL704PTfAYu5wAAAGcEQ09JTAyRsBWrpve0c43NNudBATiymtwpAAAACAAAAAEwRAIgN6tBtW3T6x7sTN/inNrgxgW6mE3+ENRuUk0xjxdpv5MCIHuPqi5BoUIjDfBqB45K/meRK+7mH3nH1PtyZfGsELpJAAAAaARDUEVYt4fU6siJlzC7jFf8PJmMScUkTsAAAAAIAAAAATBFAiEA0/UuPPjHWQobqSchKfnzHVeD7H8pLdcukrhWBlTsTkcCIBTfCgMEUpsq4iKiTI97ytg6C2ZpAN8WnvzsGI/1xTxsAAAAZwNDTkLFOBQyAvOxE4LYYGqukKlrBCoZ2wAAABIAAAABMEUCIQC5YCIt8DtRBPxQ727tFkYG9Aze8FddXmGAgkFbKZ64qgIgDpSV50TvG0RWviicGjSLVLAA+JTr/6zWtFpujNbJ9lUAAABoBFNDQU4jTVHuAr6AigFgsZtolmD7e/qHGwAAAAkAAAABMEUCIQDzx/FJ6817tjyMPwN0DHsMMpW4iutys3K9NIQdPTEqfgIgeUhJiiV+9V9Kq8HMsAg3rbvj9C09qe7cbbGc1Umks6UAAABmA0NHSa2goSAkYghZmWUtxTEKep4r8+1CAAAAEgAAAAEwRAIgZOKpz91EldMxoYWQoRzI1CEHApWPst9FJAZ3Difr/HACIEfXy8VaFOdnwtyasxfoORLKJ/vX+EK5wcbUJgFlcC7mAAAAZwNDUESbMbtCXYJj+huLnQkLg88MMWZTVQAAABIAAAABMEUCIQCo6Yj3GEhg2VNfWJC/2nCJEbO/+KwDiRIqVsNUFZdx7AIgbRP+bq17efF0KTYwUhiVpn4SNhN9UCIesMdXQwVNkHMAAABoBUNPSU5TpI07efQ0dyJJM+SS5C9crPQJHswAAAASAAAAATBEAiA5XQ6yBvPoP83V3TXkJ2vWguPaynOe+cDB0kK6OQpCpwIgd7nBzZznQN94oi6wx1eusZjeJHQVCrXzOFIy7FuXaF4AAABmA0NTWDqtw7zklyTOKZ/Z84UCESEcOZyMAAAAEgAAAAEwRAIgICZ//l3yfetqN+p/yaxUCS50FnwfFZ4V6qGHIhPzVawCIGw4glCeoi82YEMqrYp0nbOcoXCZRrLhE/Px55kUddw7AAAAagZDT1ZFUkPpNmilbbQnOnzAeUI6j2qZEa08HQAAABIAAAABMEUCIQDRKNE/2Fto4coeUFbQENV0bkTfpHIePQFg7MRptGEDyAIgNvRL25hnp7l+isPUPLsDJn6AcPG7+E5jfbKV6VKMa5QAAABnBE9ST1gcW3YPEzIghVNAADtDzJET7ElIIwAAABIAAAABMEQCIG3/2uIlhAiC59A8/5EXLg68FQu86TCKhj/Gqgq+n8tDAiA0x4JR2IKAwQtPNQRnqot/lfIWDhhyci0AIZvOLhL/owAAAGcEQ05VU3IvLz6sfpWXxzpZP3zz3jP7/DMIAAAAEgAAAAEwRAIgbU/O7vjOk4QAgXJNHFFZJERYFcwg5VwGW6AVktUYfBECIBHfmzpufxWtLCBqdrM1LqtB+5fXcOIsXy298YuSeaQmAAAAaARDT0lO61R+0dij/xRhq6p/ACL+1INuAKQAAAASAAAAATBFAiEAqAR35kvf53ioL1rFhP3vLSn2cfV40q1eovDaslrEp+kCIHANvlzW4W44yycy2bJxBwGHXepTR76T2P+MxoiXq0cSAAAAaARDVkNBIrWac4f30l/iscaS7oJeGALm49UAAAAJAAAAATBFAiEAq+kaq3+qYOSKvWzBnkR4D5BwcyveFKjOBoKehRWAekICIEguy+Hj3ETQVZaeBO07BmxhQd6NOFtg+AcygYBkyFG7AAAAZgNDQU6Rf9L3N4/0eUGdy1bFy7RF+7+QKgAAAAoAAAABMEQCIEY8Pqn26MlL+u7TLOHQCuVVXFDlwOXf2RfGF5bBfWFgAiBozYK/T1jBxfidDsc8WO0jKo8StjI3zPAysinGSdtW4QAAAGgEQ1dFQlBbXtpeJaZ+HCSivxpSftnriL8EAAAAEgAAAAEwRQIhALryZ4uBcLikqfgPn83kENuPdrQtWIPu2P2rXu84efCCAiAOfKrxJ8bAv+93pe+/3bKu4ot5DUuMzRm/QnTj7ceYEwAAAGcDQ09XNJZfc8+gW/jYrzfLSvZPqVBgXqgAAAASAAAAATBFAiEA44mnBWdqsznZ8vVWuIlujhdFcfOlLszKUQqwndfcMS8CIDKgSZ2NGCp0FFzt+3SulxfVBK+mwA6FxnLwnrZzZx6uAAAAZgNDTlrBll19GPNwYrGKs9XR/n9phzsw3QAAABIAAAABMEQCIDJGF/A5IwHqwLbUYD7YYWQRwo5FtzedWdb6U3sxzarUAiBFlNTHLPa4ZInXDGWg0HGGn/zml614Le7NZtsZc2uyVwAAAGcEWk9PTWnPMJHJHrctsF5Fx25YIlF33qdCAAAAEgAAAAEwRAIgL8y67BN6i/QXkRh1l3Yl2LY9y5pgappwONu6axOEErsCIG2fzlSD2QRdwqYpS6RaxB185j2tkHRMqADEFGI3WzpBAAAAZwNDT0zHb7dZUFNtmPpi6paOHWtF/+oqVQAAABIAAAABMEUCIQCCmui+qKJkiZqdyQo6YvEdmwdDFLZ8DHMlflbRLEbw5gIgQOudYcE83S6giXnSfoKPRJC8Fvh6QvsvGWlS1ViO3G0AAABnA0NMU2dbvHUUAT4gc9t6kZ9uTL71dt43AAAAEgAAAAEwRQIhAMosdnsiXuZeOET4Lrcqwp1VPxk7GZxHESuwf940RpDpAiBMb1VIU1wylPBAg4JGY5zN3H8DFAx5BdcEWqhNTDunLAAAAGkGQ09MTEFSTN4N13Lq/jZXKOZDTlXiyXXfXw8AAAASAAAAATBEAiBqaOpKEZxtzUTwSz6H/QYdVCCNt/7LZlIJqqikgCeb+gIgHAOgPiRktBGfgZ4pIYclfmc4MVdsx2G+g0WVVe6igm0AAABoBENPTEyVeJHBFhbT4LCnanb7QnJMOC4O8wAAABIAAAABMEUCIQCSQTmVeF7aG0q4G2fSIVxeIvtBlk9a+x1DDJivWcWgGwIgOHvzTdppY3o7GiEavrWbLzoyQ8+w2D/eY9MOuehfK9YAAABoBUNPTExHySJ2hyzRkH0uALWKgam70nWwpLoAAAASAAAAATBEAiARhexbkyWng2rk7aEgCgrjM962plcPx9uDBUvxtuhR4AIgXOot9gzq2jJNEAAp5HhqZ1EId+CGxDqMBZ8zg0Lz29gAAABnA0NPMnVznVlEU0EV18VO6Mc/GG15O64CAAAAEgAAAAEwRQIhAPAIIz55o241XESIpva70dLLwFcNzet80UanCExzWVJqAiBpMDYJoXgIybG+qyf2leFDfDHlJu4w3V/DUV57gTFxawAAAGcDQUdTZn/YPiTKHZNdNnF9MF1U+gysmRwAAAASAAAAATBFAiEAz/hEwcjtR2wIrymVtoujKU1gcha7JN10Xz1J86LYsDUCIEPB55hJDUJLuLWp5t8ExFpXaVYYjwcrJr0OQG9TKrAZAAAAZwNDTFIjlvvA4uOuS3IG69tXBuKlkgNJywAAABIAAAABMEUCIQD2fVrFW1+hyFdhpEEqtCNCmLNQos3UsNAjfI7ZW7NA7AIgeExjcRXpUtZ5gZEe7+qpJnGjQFxgQRCecd9F4iKwJRoAAABmA0NMTkFiF4t41phUgKMIshkO5VF0YEBtAAAAEgAAAAEwRAIgOgu+UQlhq8WYnNv/2tSnmA4CZyd281lNkvVInyGHTZcCIGOGSw3k4jhraiak1i1Y5C1ByErOaHPauCIcghlDNt4tAAAAZgNDT03K6DgYfB+BP8O/rmOHvzSurLW+9gAAABIAAAABMEQCIFIIGDXQ2wdUvwRrOTnl4Ohhf9+pGFJ1H5WYuPkNzBTrAiBNJYsKMxE2UQpVswswZfLyaiDDCr/ynsiQNc/pkqXFegAAAGcEQ09NQn02zORt0rDSjd4SqFnCrOSiHjZ4AAAAEgAAAAEwRAIgAkbaH+oTpTObEiqISUD1S8KtogaJ5C/T8PrvYnqX7CkCIGkIxK0btzHMIWicSbmHx2+pKOlnJ52oXGeCWV23ZArtAAAAaARDb21ifIFULthZogYVOP7iK2VEojW5VX0AAAASAAAAATBFAiEAz61VOrq6HXLnV6dZ1P1RjdwFi94kYZK3+0kZQV1NTsACIDoquhaqKvzsQaF18vwlHaGBYr+ABeq2YmixBaRvV8h3AAAAaARDTURY3t7S3JY8dGGDNjPG9Fvy4h7vi6kAAAAGAAAAATBFAiEA0sHlcfUCnjLm/sPt0jy6ok+TuH6JwgdjTCeBMT1yamACIHbQ+ERJJQne6jSFEUYI6/G5+eEwlgmtUTPeQNUP4mN1AAAAZwNDQlQHbJfhyGkHLuIvjJGXjJm0vLAlkQAAABIAAAABMEUCIQDFE8O5MQ0/OgELKNRsLdyEGdykI2YORpBuKE/qI+I1JAIgInd4pUj/r8HSlRmSzTAlV9sKhZX7yle/JpAv4bV928IAAABnA0NEUlqfWZIIXoolpFcWy2+P9bV6BdMyAAAACAAAAAEwRQIhAOip05UM7f+sPGtcjIunEp7Tl9rSlxhSjQenK2iv/ZJKAiBPhD6+KdrSBG+b4Apx/znjwn/lC5G8nsmqPKB1e62vigAAAGcEQ05GVI4rS62sFaTsjFYCD0zmD6p1WMBSAAAAEgAAAAEwRAIgBzvFZnnn89ThOXVAHHz1t4a1ZHuv42xo5tDtmdp4DYkCIDvb5B/f0hZ+kvzeO+sFngI4UDE5yYZ/cF5BjtWv585bAAAAZwNDQlT6k2YMP2qEhVa7jiZfmUFgofKyiQAAABIAAAABMEUCIQCFMD24LtxjxVfxdnXlAnBqSfWur68/ytIbHAYW89qtvgIgehOhqFKycWJMMbboFEni0hVjhZBNcraHd4nmrp40nWIAAABnBENPTUOl6ZrSAr3XHTUYMGz03RYyYZga8QAAABIAAAABMEQCIHdvHS2YiqNTFdEktz5GUq9s4s7FQeHuqs/Ir55arvyOAiAI2DiJ7LlQWH/6J6enS3+ANIyXNvQo/1LqEc1wEkzInQAAAGYDQ09NG0BS2Y+xiIwr87jTuTDgr/ipEN8AAAASAAAAATBEAiBejnXDzgBhTw79th2fM+7f2mnoCOnN0CmYARY8gASjaAIgTlIEByE9gzZa4/C2P9BIawDxIwN8o8s4OM5FuZmugKcAAABoBUNPTUZJdS763Ap+Ba0bzM2iLBQdAade8eQAAAASAAAAATBEAiAPYzoxFRdIJFNokhWgmn4uvzrYXUetz/fh+YXRNKLNagIgULq3xrw3Q7RCf0Iv7PpYmzbOl3IWbaBgEcVOE/3yr8cAAABnA0NNUJ8g7V+RncHBaVBCVCwTrc/BANyrAAAAEgAAAAEwRQIhAMaQfgJTkiCAD7ZRv6UfVxpKuNNR52LbZZGZaef5qgM+AiB5oj6v8MkSIPTJ1fmV04RsEWTA3QmTiwx4B2QqRW/+9QAAAGgEQ09NUMAOlMtmLDUgKC5vVxchQASn8miIAAAAEgAAAAEwRQIhAP5HpQ+YS1p+WMYHuUezGjNkfGHsaPblRkWeZzdmg5COAiAi4gR741Nn4FT/c2EgVC2FekyF1gf/AQoQzlDnaNIvJQAAAGgEY1pSWLMxn10YvA2E3RtIJdzeXV9yZtQHAAAACAAAAAEwRQIhAOtoxI3glwXcNvYWTOIQj9gNPilG94a+LlYDSEOlyZ3NAiAs1ZgyVbQYyQvexgXCodEF8UjTwc26t0zAhW/ebmAUdQAAAGgFY0FBVkXmXNtkebrB4iNA5OdV+uflCezQbAAAAAgAAAABMEQCIFUDKXk5bRnnEpO2SrwWEkhxfxvlv2dQajNbLdKJhq//AiB6uBN24hZf2xynts/myAoFut/P8pNwpqHkab8AlStlzQAAAGgEY1JFUBWAee5n/OL1hHKpZYSnPHq5rJXBAAAACAAAAAEwRQIhAM88nvUQZ1HxlcG4UwTXew4vykDTi7I5T12CCCZAd5mQAiA9KafkG6CDUCTe02XxEi3iEELuk30iybiyomGUzIia7AAAAGgEY0JBVGyMawLnsr4U1PpgIt/W11kh2Q5OAAAACAAAAAEwRQIhAKj1DPZaok16U0iZwz063ySR+NlQ64dh0dqwGSrtf4IIAiA3CrogX94JsCCqSHMa3frOPiz2R4Sqw7hjyEPnKEg7KwAAAGgFY0NPTVBw429r+ApSs7RrOvjhBswO10Po5AAAAAgAAAABMEQCIEFCHsveDreFh+ZqK0NmBn9kJI4mUVfyItRZ+lFb5qzwAiB9vDyetuxcpGnlU0E8/L5+TTNWu+r3S2bQp6Pkl2W4hQAAAGcEY0RBSV06U25Nbb1hFMwerTV3e6uUjjZDAAAACAAAAAEwRAIgeg3vstRDH17bllR/q86ZOD/NSklzAa762slb/nShnu4CIAU/YlkPc++0uezgLQATHuKf2S3HUnWIBqp9OLd57f1PAAAAZwRDRVRITdwtGTlIkm0C+bH+nh2qBxgnDtUAAAAIAAAAATBEAiBcmxEwQ/pqqNfQH46xStcnmjiGDCtWgf6rxlGS3CmG6QIgf+s9FtEpjtKlBBCf7r/AD7cIG9dogiXvOR0bdQXkUHEAAABnBGNNS1KVtO8oaevZS+tO7kAKmYJL9dwyWwAAAAgAAAABMEQCIHEtoL0LdUEXMixk2g5VoFPw+1KUp+boR6UwuLTkFGuIAiAPmEEoxAbd9uP5STyM3MXogzyLl0/7tbd79QeLZC+kvwAAAGgEY1NBSfXc5XKCpYTSdG+vFZPTEh/KxETcAAAACAAAAAEwRQIhALaeG+lZGKkXaLTwRDZpNlJ5cu6bb1rH/8KnIPRRPAIjAiAVXEinO5Ip+nKPmhA/+feVNZH6vXMyYm+PWQzHEOT40QAAAGkGY1NVU0hJSwGBECoBEqLvEavuVWO7SjF2ydcAAAAIAAAAATBEAiBZI+u71YUI3CpnOjmwBIAMU4IIG2J67OBLuxhhMTOR3wIgX7IL81EMKq5MJmzKXn9xiWHZ7KLubu+AOEO6ESHMEwEAAABoBGNVTkk1oYAAIw2ndcrCSHPQD/hbzN7VUAAAAAgAAAABMEUCIQC9aPom6tmmZrTFu2fExd7DvQhB47sRiTQZW+8enwdAfgIgE4SnL788kz0X5Uqm9XuTa700pzxOrSgVK7SnF5DnSP0AAABoBUNVU0RDOao5wCHfuuj6xUWTZpOskX1edWMAAAAIAAAAATBEAiBY7SXAb9dF04XkNefuxWll9VnnGnkLtXu+yEOE02/CPQIgKzLkX6NKk2hRsPzBX2YdwnT+/cpdOnadZwgUQzba8EwAAABpBUNVU0RU9lDD2I0S24Vbi/fRG+bFWk4H3MkAAAAIAAAAATBFAiEA2tUIIn46vsE6gGke4Dv2RoTNh+FmnlPGucIUA9dCtGQCIFFoJMRuPUJKeiuiR7sNGCF1SHSpHDAZlqoRw5Mh5ZfbAAAAaAVjV0JUQ8EbEmjBo4TlXEjCOR2NSAJko6f0AAAACAAAAAEwRAIgTMRao+FE+QXVPrY8QSxnYvjJJRsB+HyJLDn6QURitRoCIH/+u61fGI5/aHk7A0uRKl5lJO3uB1/BYWmZYZl0hHacAAAAZwRjWUZJgKKuNW/J70MFZ296Pi7QThLDOUYAAAAIAAAAATBEAiAK/FT4vYKOVjK4OoUdbNFBvGKzcipoQuEZyxMT3l87jwIgKbzFNa2oZJzEuRtjhppkUjXaQp47ADJp8wqEDrao2HoAAABmA0NNU/gzAcXNHMu4b0ZqazxTMW7S+EZaAAAABgAAAAEwRAIgGD/C95MGs1Vf3wueEW3Du4fDeWy9ACJOk39crwimAIMCIBlhfjNRC+k+ElCmH6/ul4Fjs6E6elpwxNGCEua9OjJHAAAAZwR3Q0NYIWhvjOADqVyZrNKX4wL6rPdC99QAAAAGAAAAATBEAiBH9ANkMcvE3744N3FOIf8pt8Vxv5XkuPaGIko5q+ntuQIgBt7bEXK364OcykON9Yp1oZaP+fu9L85jKHtabthlAdcAAABmA0NWUDjkrbRO8I8i9bW3ao8MLQ3L59yhAAAAEgAAAAEwRAIgdGhP3zYys9staWUSJpj6Ysv/TGTEerUtLoPzwy8dZEoCIEmg+Sq9D5MD3mN3ZEfytPDr4aRg+dHvsKuhq6HS4DcXAAAAZwNDSFk1ojvCfDRbNt7nAKJW9pxjNAMJcQAAAAkAAAABMEUCIQDN44JzryTTlAeF44avYWYiksmEP7jPBcqI7XCxgeSNhQIgUoYaeyEAUkJaP7YIfsynV8t/AE43lCR/kLFGsv8i5AcAAABmA0NETIqVykSKUsCt8AVLs0AtxeCc1rIyAAAAEgAAAAEwRAIgNXTsVsdc3jHpnk+TnFnDuePglkCbRoH5NyNOAEO0m9ECIANktGAqJluQ33BNyMTKVLRpZHnCpNKyu81x3JV6OqR2AAAAZwNDTkoApVN1AC882kADg/R5581XutApqQAAABIAAAABMEUCIQCrAyICI69WVPOlykrCt/OAPEoi7osphRlX/AWhtElihQIgU2sKW6FpHwP8OoWf0g/E64Q3vRYa8A08Lx3eczSxU4cAAABnBFhDT04BXfQtNryFHH8V+AvR1Ojb8CrtDAAAABIAAAABMEQCIAP68TI8dDMtAKL8s8/rycAfLx8tDmVSppLrcpre1KecAiArzAsyD3lPKOMu59od1x4PSX9qIhV01BGfQnwLDtt6kgAAAGcEQ05GSeq7iZbqFmLK0vf7cVEnhSzTJirpAAAAEgAAAAEwRAIgGeUPPRrPjUxR6vSNfGWIP1t1Wq7UHPwetxx6jPaznJUCIFpEKirKrKVvr96EWq1T5FT9Lw3zhbPdeE4HZbJW2Nl6AAAAZwNDSlQ6vf8y92tC52Nb235CXwIxpfOrFwAAABIAAAABMEUCIQCOKBPT4nM9HwuiH4qZcco7TaIJpYA+yU+MH0Gje0mujgIgcgthy/f0lmpbpGyJ1xt2NiQk7ZbJB95BWE6rpEfLuI8AAABnBENOVE0OXwDaiq7xlqcZ0EXbibXajzcbMgAAABIAAAABMEQCICkvEPFRouXdJOEiU1ylQL8k3eSIKfdASCIpcYmJ1TyMAiBKhwiDZJCNpEHRnKs8RdJWY9XtNCr+PHHwYE8kVUUgyAAAAGYDQ1NN2GmKmFuJZQ0KcPma0pCb0MC0tRwAAAASAAAAATBEAiA/D32xgXuHA+OYIrHbz8FHjcAkzjsylQwnWRe/q2E8sgIgIqhVZgYAMu9CrOCA9eQ952avVrH89eH1MnGTa2511AEAAABmA0RBR6gliryPKBHdSOzNIJ22jyXj40ZnAAAACAAAAAEwRAIgByRKvFAvH7iZxOQPdR6P1XI71SymCSQ9ue4wg/0FwOkCIF++l5MPNTjw1KFGoH9QeHiTlDP8h6vclmCE73OXhu/ZAAAAagZQRU9QTEV6WMC+cr4hi0HGCLf+fFu2MHNscQAAABIAAAABMEUCIQCxnErF6ygbcUQ+vb+rzCRffUfiGqe3l1Dom33iiAm7YAIget8Eq8Pj0RNW/93FnkfDwDBtcvBi/sHrJmFe7jm77jcAAABmA0JPWGP1hPpW5g5ND+iAKyfH5uOzPgB/AAAAEgAAAAEwRAIgVHumQ4ci2OyJB//bi3/9/WpJApY/QfDuv0bRCDw7DBMCIBwvk07EyB3oGpIPMoO00DElam3mvj9HYPz3/DDXHYkCAAAAZwNDT1NYmJGhmBlQYcuK0adTV6O3263XvAAAABIAAAABMEUCIQCuGPVX8G/Jwqz2qe6WIdm0LJcdgUX3O2o8UlikK3AycwIgQUCZbPZ/9p9rf4Oq1TkocnYkRMyF72A88/aJE2A60yQAAABmA0NQVJtiUTyKJykM9qep4pOG5gAkXqgZAAAAEgAAAAEwRAIgAeB+tlRiurBPX4j+V6Cp2rmvex5+J/o1OvC1JLfJuUcCIAsR9rIl6qxpqAwwzOtcpBncw1I3rWrxh0rX6voF62oNAAAAZwRDVENO/Wwxu28F/I22T0t0CrdYYFwnH9gAAAASAAAAATBEAiBmU5AOPSBkrVm/Bg1gBrxCQ+B9LmuNGxkgBGX8GdwjfwIgEyvneVdyuM+ol+YCdsf4tZuS313MvXUClmx6X1xyiVgAAABoBENEU0TeJUhsy0WIzl2fsYj7avcudopGagAAABIAAAABMEUCIQDzrUg1hKQJxEKMEwZyIjKor0HjNszqgDFu2Hawfk2U0QIgfmsTtSe21xmpzxZRHgvs806YjcCxZ7qsZTppQMwz3sYAAABoBFRSSULgkhbx00PdOdaqcyoIA2/uSFVa8AAAABIAAAABMEUCIQDuimOncss+xj0Hyg3RrbEMJ3CLu5YZVDwIlDDaIYpiYwIgPCwFRT5ipVZlcqFkQvWSxvpgSg/Ul9LD2CE93ci9eYsAAABnA0NPTk3Wcud8eVhE/jpGTvjvD6rmF8j7AAAAEgAAAAEwRQIhAMC5LaQVwq0kfLgqhu24TktWFPsTC3qwnc9CwpaNmmh+AiBmlz7LKJr0hSPwY82riUji76nuyLysL2nzvD17NJD13AAAAGgEQ1RHQ559Kb1Jm2x9oqWy6vz0o5072EXRAAAAEgAAAAEwRQIhAL8t+037FqQk3hbNVmr7a4sl/JvHSiR0PJTFWWx9QIkJAiArkZvabevSRcon2DkagrgCCGTwH7mSiyzwn7RkjJ88jQAAAGgEQ09OVsg0+plvo77HqtNpOvSGrlPYqotQAAAAEgAAAAEwRQIhAJjhb9/ATfnZ5+Rx8V6+P85gPMwDWudhzjs2BbTWaLvmAiBiutQLB5xYv8FJ/Hi1CKyPgUXCCbzp7lGVxkADXUar9gAAAGoGY3Z4Q1JWYrnHNWotxkoZaeGcI+T1efmBCqcAAAASAAAAATBFAiEA97enlQP1J/Rsra2m7zGTd08y3sKpyv1cG474MzBf6vYCIBDHZZ3sIE9IUA54iN+6iqbRzjmwp3bmVegW/TesiMyZAAAAZwNDVlhOP71WzVbD5ywUA+EDtF252ludKwAAABIAAAABMEUCIQCK6mOHhYT4WtNm/s3dl/TN9/AMoeSZAetmxpPXIOZPkgIgNZHExf83g7Vkxge8IMJ9fQbfnSxsHStaQdqOlUimfaAAAABnBENPT0v/dc7VdBm8rr5fBSVJg7ATsGRu9QAAABIAAAABMEQCIC9ihNH4QHwQJBRQt1VG1O7EEvsTQ+XD1IrBxJskbYGyAiBoaALAsLlOS82Qy+naAabw5LQNGr8ZOtkb5DPJ++aWuAAAAGgEQ09PTBFPE4j6tFbEujGxhQskTu3NAkE2AAAAEgAAAAEwRQIhANdq8xif8NlSjeF+gxv9t0t1XJrw8Hs8og2YycmFiFy9AiBsEBA0NKm0Ts6J+3t15Hwx8Yqxwrg6mNeB449CBOxwiwAAAGoGQ09PTDIwLatM40kLtQsupMB6sbapz+KdibMAAAASAAAAATBFAiEA+5shK4GD190XJuwaVQ+GCsihuYWSgdJve+LaczqPlCUCIFqG8hxEac8mfOY40z01hk7kiI7hNsfgbTgEsNYCDjQ8AAAAZgNDTULG21Vv2ewJurbf6jIOUthHb2HUJAAAABIAAAABMEQCIDRhOW4DB0xqmitFVKDunRv5HcGmlIIDDCogSAhHxS6NAiAAr5dxpqtbww05GoiWgKAwze3C1DrdRDjufAcLoEeRAAAAAGgEQ09PTS8+BU0jPJPFkUDAkFInx8YHxwy7AAAAEgAAAAEwRQIhAOVg+m3Yzx3cUgAAHaTH7LvUyWA/VGLdfat8RVwm25P0AiB0YsrK+hA04bX/BgjXvAsZWBIYytD4lv2rl9Qrbm166AAAAGgEQ09PUGic9fjdCbu0QXUUyIkJu2TrolR9AAAAEgAAAAEwRQIhAPICqw0J+dsjiIV51SejPCFl/TuIqMIoTJs/25Sz10uxAiBa2UJ9zZiIaQXM0LAAbjIhCSN+TpHFXY174TYLEkNdbQAAAGgEQ09QUxTfpc+q/onYHXvz304R6u2gQWYYAAAAEgAAAAEwRQIhALk+HASy59wWOCvHdau2QTS0BKbAc1iRqThn1wdkseZwAiApcpmZYazX1ps7HgVeAuqkKBD9Sr3CqUUKB09AhBquawAAAGYDQ1BMJIwn+BTvLJxRwmOY0JcVzTUUL8QAAAASAAAAATBEAiAJIBlcknDYvXXdQBJSFJqaqTSwcsWCPah9DKGbdmR22wIgU1zhbqmpu66uyCFzw677B9GWr3N0ci39rMSj0R0x2BwAAABmA0NQWfRHRfvUH2oboVHfGQ2wVkxfzEQQAAAAEgAAAAEwRAIgc2tikUwkUnNMGf3GbdGkyWzKESXuYbxY9rC+WhmpUiECIBupuO3w18qSmdeUQ806R3+DOrqJPJp5wNEfZiTLiy5JAAAAZwNDT1KcLcDDzCut3oSwAlz03xxa8ojYNQAAABIAAAABMEUCIQDgKt/CK4f+rrNC0yhULI6Eq8yHiWI+8O3LY8lnVgH+tAIgHrOhs9ttcKFszkPAMqGIXsJvf5Uxk14bjU/WcUlA6PwAAABoBUNPUkdJ5QAGeB9DWuQwliiDNK/ZrlulAGUAAAAKAAAAATBEAiBWSlpWtUzQ1wm53ifuAbTv2SidAep519vUiy1Z/aVCOAIgLa8w/tbbi5Tb/D/W0Cg6mipYbfRHHwUuIE2UCgj01gQAAABoBENPUlgmpgTf/j3as77oFgl/gdPEoqTPlwAAAAgAAAABMEUCIQDXgqUsfkhXAOvJE+hbrkcUAOfUuwg0gWp8IsGp/8jhrQIgceHiEbN3CIwbihn/IlcgAqmpXzhBgpFtR4ky5A7xLEAAAABoBENPUk6kVrUVMDss40Tp0mAfkScPjC/qXgAAABIAAAABMEUCIQDbUTTmNfgyULYH4iKSPBUM+Rls5d7JSM84Hu4nUPWSjAIgVCrDAnLHW/hH4XuafMDEAqio1LILJCPhnvrUeR8gkIEAAABnBENPUkEAd9J8uC/xIyKYeyJb/OC7bokxtAAAABIAAAABMEQCICrBVmcRHZjnW7szqcVbb+wRjvVMAmWf3Y7gMcD+5tYAAiACGHuoRZju4UcPGC+vu437aBMv53bzBSWyU3D/X6oaRgAAAGgEQ1RYQ+oRdVrkHYic7sOaY+b/daArwcANAAAAEgAAAAEwRQIhAPrvQyH/h8aloAacvc5vbdKw35b5/v9PnXznzkbiB9kWAiBrKRMLl3LnihjGIdVabmmXWXoHCWjof86EL65QEsVwywAAAGgFQ29TaGlmjFCxx/Ru/74/JCaHBx15CKqwCgAAAAkAAAABMEQCIDdg/EGHMQybNy5Hbax3R3qwjVa/OCHMg39YoKG+giKaAiApNWNPqnyUZEPzGgpqTb7CukvPgvLseIUbWEkoIAvGgQAAAGcEQ09TTcS81kyyFtSf08ZDoydi80YmtFoaAAAAEgAAAAEwRAIgTiiCcfS+pBykfNPfU9G7R+q1nshUH0LKi4Hk1Ghlz/sCIEQbOANHdppzWJTT2cgLmJ5lkxlP2nBSpegHUQGnXQFxAAAAZgNDT1RcrHGKOuMw02HjkkS/nmerF1FM6AAAABIAAAABMEQCIDVMOQ+3uwiudfDtnfas5cu84tuIC8fzZv7WuOjmUJqKAiA9ISyylDGZhrVkjj3K6r2Nj6+Pe3VHvHkafo3tNbpeGwAAAGgEQ09UX+1kFC99Ck2Uzg5/5F0S9xL+NgvQAAAAEgAAAAEwRQIhAJx61oG98T07b/NXyOLcLy0jAIXxiTmTvQfYkgxz7RU0AiAB8Jvvrs60okWFM9Ef564koIqibySCdQ3FFvH/2KGGSAAAAGgEQ09TU2UpLurfFCbNLfHEeTo9dRnyU5E7AAAAEgAAAAEwRQIhAP6o6hioDTsPm6F80i4nMxj6xt2MgpEwXb6UorJ9Rd8MAiAxdGv+a3aJESL3syxABHjeTWfFW4Ot1XvsPdxi+vetYgAAAGgEQ09TU56WYERF7Bn/7Zpejde1CinImaEMAAAAEgAAAAEwRQIhAPIWYmJma0YCsQu81c7FCbP/oLtxIwR1Nn58fBY3hmkjAiBCp1a8emmMq8Djx93TUiVnczxeRXaUXGooM8Wf/i5rVwAAAGcDQUtNXwLPPHraSd/Eo2RfyFyK6GgI3ZsAAAASAAAAATBFAiEA+mMSihfTE1jsMo1CqKUhabG8/9R3e2Hec0Ete3l27t8CIDeElv8HrBiP8hm4qgtaMm7fERlXEZHoXuRJ2Y5OnE3lAAAAZwRDT1RJ3bNCJJfmHhNUO+oGmJwHiRF1VcUAAAASAAAAATBEAiAaYaqi/e/EZwpHCSL8UiuvPTasMVw2dVeZ0wf5SY9U/wIgJ7xWLB1c1t7uswNtnu0DNqL8tPooHiVFzRKB52/G4EEAAABmA0NPVFyHJQDABWVQXzYkq0NcIi5Vjp/4AAAAEgAAAAEwRAIgVSiY/3zYU6jBUCpBSTnIXnIKmQey4QePQtNvZL5PMP4CID7V1hVYuRKsaWidu0d2u/FVo1ObOiwr7AwGuTrZNtKAAAAAZwNDT1Xwkc8JxRgRgZ23BXEOljS4vxjxZAAAABIAAAABMEUCIQCP4eo9DwgvRoNygtq6MGgkUaw+gx6pI7TVgCNnip8iGQIgNNARmCl1VkqOCpHDY63K75PS/OF4xmxK5rE/YRR4wkYAAABnA0NRVNQXFEMS2/UEZbHGQdAWliAX72JAAAAAEgAAAAEwRQIhAPPMzUTvR/Irf8t9PTVfyECbOFy4c7YKpXCeBq7DeulsAiARW24OFujF/+oXOiAogcffTdNT//soau8H9f8o4LwJyQAAAGgEQ09WQbN6dps3IkRJ2SqsV943nhJnzTsAAAAAEgAAAAEwRQIhAKaDxnspH/mGTOUqWsyHVEeejcNTuM4/iMqB0QEYlEPMAiBntMCuyT0hiXQSJaKxv8SVeqcEzKuSzTTJe4sjO2qpZgAAAGgFQ09WRVJGiKix8pL9qxfpqQyLw3ncHb2HEwAAABIAAAABMEQCIB9nHNV1nmKcZuSZaxWfjaBLkx9s+sbH6KxRxgB9hw6yAiBin8Zktm/ECrpSuArwlnx4IHhlAw6IyZwh4qGGdh0yKAAAAGYDQ09WrahrGzE9HVJn4/wLswPworZtDqcAAAASAAAAATBEAiBppuT5XuTJNStRGK7ybJhqo9tZFeIj3Viaex+rbdgSiwIgZjrOyCI2BpyjHXD1Uol3u32KEnbaeVDPbu0zawmhuCsAAABnA0NPVuL7ZSnvVmoIDm0j3gvTUTEQh9VnAAAAEgAAAAEwRQIhALk0U8bZq2kROWD/aWclaqHxKZuD0rEsCjX9WRpk1owHAiAmy0ZRGHI9KxcqzUI+332f9gc9YHEANvUfveyBbLIH4AAAAGYDQ1ZSJXiiCgfodh2R0JYdPqkuFFEIhaoAAAASAAAAATBEAiAvf0GeSTOwVjnnVu8e1qwH7nj/2WbCpgeo1LFYqDbIuQIgfMCuGPWhmaQzbpq+RgBeb77umF/jBi5skxr+BbYJhcUAAABnA0NPV97xyh+3+83Hd1IKp/OWtOAV9JerAAAAEgAAAAEwRQIhAIrkvsQjg2n1+uMz3C5aUryekURixJ9s7aK6fQfw1i0UAiBcsgdgM9J3D/MnZWCbd6BPdounGZMgHFLut4PJB7tMOgAAAGYDQ09X8L5Q7QYg4Lpgyn/JaO0Udi4KXdMAAAAJAAAAATBEAiAIOYFNHRC/S+kkY+6W0IpX2RSrU0KrLsVpIBKQENrQzwIgWFEvH5b5VN7Sd5CF6OIq4wtshcCI/WOhkI/JjGtZsFcAAABmA0NPV8PW3aYD/BX9S/kwMVD+EcfNYFncAAAAEgAAAAEwRAIgPDGXgQfB1JKMoK/5+efUQ2TAosgemr3rhNJP1joEyd8CIF6SssCe1EU43Ih4aO1HFyemCCtmw8ygIEyQtu15msWzAAAAZwNDWEMhNAV8C0YfiY03XOrWUqyuYrWVQQAAABIAAAABMEUCIQC4UQBgRvXxF2kOTSIb6ji7ecAWojxwFgDfMJWqoPhEjwIgQkJ7rLlmhH3+yVoxS5QNgagxouLQFsc9q1L65B+jmpQAAABnBENQM1J+8QgezItbWxMGVqQdTOT4nbvMjAAAABIAAAABMEQCIFfdtlM8WF/EKH0KW9SbbvmCY40dTz+rglCGXYj5FWgpAiAK/ALn+4kIHlo52CQGHJhFwF2nrV16uEwkREPy/J4E/QAAAGgEQ1BBWQ67YUIE5HwJtsP+uarsrY7gYOI+AAAAAAAAAAEwRQIhAJu71gbpBftnNJSuUZi9gY3AfHlvXnxscn4n35EisbPDAiAxPDmxhpD2oTjITuxr97/J6xDUqRyl4mwtrlnCfWIyhAAAAGYDQ1BD+uTuWc3Ybjvp6LkLU6qGYyfXwJAAAAASAAAAATBEAiAC7k4fInRsTD6t9KgP8O5b3t6oXcNBpn1ZtC9l2hTyDwIgXWgHw4pKZm73WtwGbVusymJf0cLzOWt+944DzQ547WsAAABnBENQTE9wZKqzmg/PciHDOWcZ0JF6ZeNVFQAAABIAAAABMEQCIDtBkEddD9rpRdDLk1kxpZkm8D2jfEnqcQ7pvV3IeIeXAiA6zwztBTvPdgXigAoUub7TRNwtKgWmIZqRzPfZnb8BYwAAAGkFQ1BST1APuEPTeqKpnbjYGvn+LwpkhcfAAgAAABIAAAABMEUCIQDuG7pJ67/F3Tlxy7r4oD68RcETJqkLqPOOjQvqJDYrBQIgY18P53J93ElqRZl/4c/PISYos2JO7j+FOS9EiaZNzl8AAABnA0NQVW1S3++xa7nNx4v8oJBh5EV0iGYmAAAAEgAAAAEwRQIhALQ7OYKmsY+xiENOkRVP301jreYomnZ67no7WZK7qOWqAiAYjw0jsFFje0UaEvApCPmcTUr0FdDCyHpOPLnbBIOnmAAAAGYDQ1I3f1hbkTDGTp6fRwthinut0D15yn4AAAASAAAAATBEAiB3+PDRBw8JL2/3hMiE+XF5IqdupFALRt3alf7snXgaiQIga5GW4YPNGIaCMgH1blY+aFo4zN6qFfaZpWs4bfQWsxgAAABnA0NSQ/sZwDoCpRmkRUI0OAPz1CV4y8JDAAAACAAAAAEwRQIhAL3EnEC/cEKryeg9vFkxVOMP4pSXVRMFr5zsH76wI95WAiAGUhbNR1n0pqhG2yws2n6fLDRcfGqHl5wJZNK8rBVUWgAAAGcDQ1JLVi31lL/ZyN3IlFcbuyEdrHiI6vYAAAASAAAAATBFAiEA0BSsCb7FCMNp0o9kSdSrJid/Zbd6gdvUTf+uUt/Bmt8CIHHtBqN8Eyhl63XMEpCNaW0Q+IHzlV1dBLhkZTOvsx5ZAAAAZwRDUkFEYI8Aa2gT+XCXNy0NMfsPEdHKPk4AAAASAAAAATBEAiAOTa6TByUMibmg1Y95b9p/uMiRgmVR1rdZEJVL1Ezb/QIgYDYitWFnbkgLvflkIFYWWNisU1EfajXTA/+Ki2jRVT8AAABnBENGVFlpVpg/izzhc7SrhDYaoK1S842TbwAAAAgAAAABMEQCIC/ODqoGCtjSH4JpgEaB6eAy3XScG/Sn1ZhM/CQwD8J6AiBUec/laU9eGA5OonDXGFBb1cU/SkTuhFSSnyoclkWq6wAAAGcEQ1JUU2eOhAxkD2GeF4SARdIwcoRCJN03AAAAEgAAAAEwRAIgGXlAdIfsSfgW9cPVkOjzF3SbC83B56zVpPQjlu7E+4gCIEJReZ0+6s6O56GHGd+adN/TYGJ5j/szGpO/SuLKyAdHAAAAZgNDUkKu84+/v5MtGu87gIvI+9jNjh+LxQAAAAgAAAABMEQCIAU1Zz/G4gCOQqnNUrXHKYoSj+UlRRCEjGQP8tDuM0LxAiAt14g5u+BPHvOct7NrTpiidIZ1Hus4Gx1ltiY28tmO9AAAAGkFQ1JFQU0rpZL3jbZDZSdymSmq9skISXyyAAAAABIAAAABMEUCIQDRtENvJxRjw0kPM9rPNSDSWsEO6nCw8psB0FeNHSuSmgIgXG5p7pRNNt3qr1ZyB80BCZAxAcTstwOytykpYW5yvVgAAABpBkNSRVRIMsvBBlJVy8OrQaaGjCLR8cVzq4n9AAAAEgAAAAEwRAIgWt9ulHtzovl1rJH0oThUheOnScgr50J0RVU5yE4eNDsCIG0WdugVsyO7bjhd9CRML9YHdlL3np+RNEa4eTcrYuQSAAAAaARDUlBUQI51wm5hgkdpQOzlsLpkkbTxM1kAAAASAAAAATBFAiEAzpvMdYi249+v6TwD7Xvn+Smxim1O+2gOmxSxdWI5nCgCIAKje0QiCdb6k8XhdXFnzGPur/GltmYVW3gwFb6exoCGAAAAaARDUlBUAlZjA6DoYOxm07eRaEWZeLGwDI4AAAASAAAAATBFAiEAmlxPK0hhtK89KomhvlbvLJQVoD84jBhvwgU4NgFZyMECIHXEPy5j7OfLEYkU3szzyQWWj+Mma+BQ+nTpjkXYljmgAAAAZwRDUlBUT9LZ1u8F4TvwsWdQkVGk7D1NS5MAAAASAAAAATBEAiA0wiQwsqbkCM3i0GZbsAxGpByjC+N+C8RGTtpHqY7gEwIgTARytarTQEgNFnuUfkSn5udc7LrjR8OrWVum3dBECKIAAABnBENSUFRlWtkF3sYeT7fUhAofRQaFgBURsgAAABIAAAABMEQCIBRj3vINGkJPpNzlFvSMvl9z7DdQ/ACDrDyxgYZBBF4TAiBRYZheFZ0IuymM+zmmG6v2MrFI2Rz7di1Befa0VNe+ogAAAGcEQ1JQVGYblNlq2xhkbnkaBldveQWo0b72AAAAEgAAAAEwRAIgFbKeH/2XExmswbjFFgbJOPKOeR2vGwzV27Nk/cHGw0ACIB4SzhQNMxxESclU4dG+xDJ7VbJmtk8xWfMM/bKU8h2lAAAAZwRDUlBUajuHWFT1UY6F75diDF5951u8P6AAAAASAAAAATBEAiA9P2a4yAUDY9SOBWL6H2f8/uqpYvJyEaULRTRo8Ce2CgIgAMD0CAJ04HAFvlCgJ2a3sE/MqrWRnIVHizyk9CVfHb4AAABoBENSUFRzUMbQDWOrWYglCuo0fyd8Gb6nhQAAABIAAAABMEUCIQCpRI9ERrAeyNcQmbw5DWbyxjAm3MC+WOKDCP3DGaOltgIgZS4ljFXAp1wp6mbVy6FAyPL4a9S2hH15s/4+z0d4aSwAAABoBENSUFSkmzx8Jgzop8Zl4gr4qm4JmobPigAAABIAAAABMEUCIQChfzzeL3jW8OM9HI2Jsx0cJwXQgMzblN7LYo36iuB/bQIgFM4zN3yzFD5MjI20t8YtdkVG5Mi4FfGUMSEGKLkSxYgAAABoBENSUFSmVAXg3TeMZTCN6uUdqeO867gSYQAAABIAAAABMEUCIQDX/db9eiU9EHkBsUufkcGKQK3S9VjZY9s9FE26aorUbgIgXYXc1ML4vd+rU0RVe+knEAkP5ebVNXcTBfAeYWEOUg4AAABnBENSUFSq+EH9ZAnBNvpLlg4iqStFsmybQQAAABIAAAABMEQCIA8Dk65yDdz/WJwfTgUk4emwNIBdMXwEeMDgTwTyzR36AiA6X3xVg1EKoPs5n934FmcfGlVadUd0hIu+HLHS9Qdz+gAAAGcEQ1JQVLMoTy8iVj8nzvKRJje2oA8WIxfEAAAAEgAAAAEwRAIgX/OTewdCk3GGNN4lSRtNAXDzE5N6s/NkGHF9m3xOuioCIDquaOwSSbi3xKhwh5TCDhAL6xLL8whUlhZQdFlHYurgAAAAZgNDUlTw2hGGpJdyJrkTXQYT7nLiKew/TQAAABIAAAABMEQCIDnGP0KT3MLWO80wjBKKCCQ62qvcgkqkV7CmcFEYfzHsAiA5JYO5Opy74aDTi3LX7A8pLA7/F6d5+B6tDNOuyaodogAAAGcEQ1BBTDGRCv9VRXhHVZcK4fvn/mXV8O6iAAAACAAAAAEwRAIgYDEF9QdOCVzlspKjqdSrWzA4CeInS1+9IhNk411i8SkCIFbAMAvQs2H2a9G5wIzU5Jz8DhH3j0zBCvcZXu+zfYXfAAAAZwRDUkVEZyoa1PZn+xijM68TZnqgrx9bW90AAAASAAAAATBEAiBrNtkgtNgsqyomMugfv016y79M79HWgkPd5QVQe2k/nAIgSv1AFpgadFmVe+v4fdFqhRXkx2VfDHrs/NZpYtm8SFAAAABqBkNSRURJVMTLV5O9WLrQa/Ufs3cXuGsCy+ikAAAAEgAAAAEwRQIhAJ3lkkQLueWmsoTEMevep1pkPaZUxN0MGzw6Hk8hdKNEAiAYR3XW+A0JHHrsJKlm8pJTzJ7MzTJvTfrWb8UXyOY4ZgAAAGUCQ1NGua2UTRBZRQ2hFjURBpxxj2mdMQAAAAYAAAABMEQCIDJkKp5mK0F3G3wk/VXReIxSpLG/1cRvaWW60thkgZFoAiBKYR73c3KGtlzwL+o3kDY8RK93HGKSv3X+pokDVdUTJgAAAGcDQ01LaM+4Lqy58ZjVCLUU2JikA8RJUz4AAAASAAAAATBFAiEAmTgC8eveJZI+EY1Vg4so/UO1mO8PiR5tJ1Luajcx/WgCIBsV+OuSSsDePQN7Gmg16H/UVCI7xlvwIEwhDFcan8+IAAAAaQVDUkVET04GA+KiejBIDl46T+VI4p7xL2S+AAAAEgAAAAEwRQIhAITI8OiQ0V2Ghj5nlO6kciQCB9zxvUHoI2q10Cdy2j7uAiAN6cXV+8S8CloLTLPNgR4bZZ8hTTDpiWKhwSj12WlckgAAAGgFQ1JFRURnXn2Sevfm0AguAVPcNIW2h6bwrQAAABIAAAABMEQCIEcwt+2bRhxBK0nZtmfhOvU8xybSHBSD5l46eeEyx2zLAiBQ4+QN5dlQSuBQVIqiz2NZpPzkowRZ4Paetf5O4l5+BQAAAGcEQ1JNVJI4v7eBpV6sw88F99+UA4wZjNm5AAAACAAAAAEwRAIgCxzStttdQVhyaxxKWOYebgHXcUbLchdSW87XATtIo9sCIHrey/ArZcs9UjfGeZXdy7eRsUaYAoCim7ccNCpB70o6AAAAZgNDU09eywJeUUFdup/ScsVRB2NXz0Bp9QAAABIAAAABMEQCIBzS7om9ShN3+voIptOaqFWgvt4WkwFX1kXC8WYrGRPiAiB/ZGw4U3oSYAd9jPribFO7DvKs0Ecen4MYxO2ieh4HeQAAAGcEV0lUSOEjo2YV18qV4qsnt8pKspMjEt0oAAAAEgAAAAEwRAIgdSLtDIdoJt5fE7GSZ4gvP9eQbjxqty30ymXPB11KobsCID5L541pot2PyXJ7scD7qJvIcMNP6rw7DJeJ6xIxvDKxAAAAZwNDUkJnZ2Fal6ggQpi7rETFfvGmFe7SRAAAABIAAAABMEUCIQCnq/XjKTiBAz1lD6uFY1qu6Lcrxdsgefcid92FnwpiZAIgVt/bvFgH/d8XTeeiMtWb6RtZoOvuJPeUSDL/fqSd1pEAAABnBENUUk+zqytnah79sWoifhUdwx9b04VnRAAAAAoAAAABMEQCIHF/h4DtDRMB41C/qOvMdZAu+qwXNkJHz6jVhcKqJvklAiADQVNs7qNH2dEYLlZ1o79MundwFbhplq9y2tJX4enBYwAAAGYDQ1JPoLc+H/C4CRSrb+BETmWEjEw0RQsAAAAIAAAAATBEAiB1FrlU7+hjhCz9E+xStSgiRBkK+xZwgG662heyIqMftAIgIgmFUYlYJFJjODZ1eUFISpiI9YGVVG5PnRB2C0PU12EAAABnBENSRkmISIEr0xru4zMTwQqED/wxaQeMWwAAABIAAAABMEQCIGGraoHh3aRPW4uxQ1QXM7l3SCVyzz/njdbjhMrVI2jpAiA5/3ocSBB7Pu1RSutu4cYApiyGnBjWYWL/GH2R3vsEgAAAAGkFQ1NXQVDgsMFgOIRb7T/PcDBNPhZ9+BziJQAAABIAAAABMEUCIQD/qcXKbn4l9yucsiMcrMOadFcbv0nm8FN3GxX3smZnLQIgWmTElcxScmB2e2QiTnoVIIpLpMmotGtlPwcKfaDBZvAAAABnBENNQ1RHvAFZd5jc11BtzKNqxDAvyTqM+wAAAAgAAAABMEQCIDrGSxnr23yk89lJNunzdy3coV0nPqX7ObvZcVRiDTiuAiBZx3LuZXgtUHPILqIzhF7qp0iUu+cXAIXDxB6RryA7rAAAAGcEQ1JXTnKlb3u+6TmoxEHIkeF1S7eV7gshAAAACAAAAAEwRAIgPVZpdYUD3PUsnN0yio/DDbZz9wzFK1iAxqor2NtXO40CIAhpNLD1BPHp9R7qNFvxzUqNl+mHL1N8VEt9E8pz+8kiAAAAZwNDV1OsAQTMqR0WeHO4YB0uces9TYwz4AAAABIAAAABMEUCIQCi1qOlfAi7eKRZ0XP8scv0zgrUpPig5TeyGNwCHl7BzQIgE7bSuZUWf5izbICpMGfzXZeGq2PSvi6kdxZ8pFiyakwAAABpBUNSV05Z293wcteq57kojjGk7r5sVOOhQ7EAAAASAAAAATBFAiEAzz7p8px5nuwy0en+2P8JXOWeF6veeG6Jkw8GdnRjI24CIDHTaCRsfbW/AxYwMBUjUZkjlEcqmveP924ckG6qygVuAAAAaARDUlBUCDiUlddFbhlR3ffDoTFKS/tkbYsAAAASAAAAATBFAiEA5XF2OyCSzkHEPPdaTWiZ/D3FrTt6l/yx4HgX4x0brRsCIHhK2VoJ9eNZVknU0tbifNdx6pyJeHY65egq5QIQSQY3AAAAaARDUkJULPYYwZBB2dszDYIiuGCmJAIfMPsAAAASAAAAATBFAiEAtK9NcsboLMZf3WHDo0puo49oZIEuLn2lYYRU61WUgTECIAEjrt0+nHXjyS4R6raRbFzDrnBxPweaNmrHLBW/inp5AAAAagZDUlVOQ0h0RR0iQO+ehrPOqBU3ivYVZrgYVgAAABIAAAABMEUCIQD7xMu5pEyNrcJ/fFXTWI1l9f6Jco+Q4XcUWYspZIWLrwIgAuYbvJrso5dCnjryy7C42Bpx4uQf5Y5zoapc7SoI1lQAAABnA0NSVTKnwC55xOoQCN1lZLNfExQoZzxBAAAAEgAAAAEwRQIhAId9sEALCCoVNhuyhYoQPZDwqrc4uM2X3Ld5efpJexSHAiAOSgViS/u+TRKeEVyC2DlzeekEYaTdAtcI0+Ly9r9aAAAAAGYDQ1NNJiBjjtqZ+efpAuokooVFbulDiGEAAAASAAAAATBEAiBgbcbk6YLD5l46BBJAPHKUrZ4hoUOn92JxRKOeigRDvQIgYgVpCcRpIskLjW20kQnqxWM9WJr2JwzeAex63OYlnj0AAABmA0NCVK9fWE15cB1b3JygReZq4TC2emitAAAAEgAAAAEwRAIgPWctSNeaZkwDmE26tag91H0Uj007lgZo/iKEh6Fbl50CIHci9eD7PK5m1GYLyL9rfX5vEZDCO++NKUloR+abrkGLAAAAZwNDUkP0Hl+8L2qsIA3YYZ4SHOHwXRUAdwAAABIAAAABMEUCIQD1u+FLHcihONfVn6wUrGa+aDNZrH0UZUq5PV7iA0PECQIgE4WveLzpTNzq9ojG1GIOGf3ThssfiCuvyWY+gxMm+FEAAABmA0NSRMqqk3Er2sN/c2wyPJPU1f3vzDHMAAAAEgAAAAEwRAIgFwEG1tb4NSZ8j8uIpvWVQrL+PM848fPeYNjhj2XoziYCIFln6HFRVlwtbb+lT7hzh/Yi+dhjnHC6tZf9nh3TJ/UgAAAAZwNDUFSI1QtGa+VSIgGdcfno+uF/X0X8oQAAAAgAAAABMEUCIQC/spEONNelnPgqKxUfBQuprifZbjqEWd19K53GxHfVywIgczovLKAuMcHdQK+yijkj7LmTy5IJlSN8Rg3s2+oyl78AAABnBENSUFSAp+BI83pQUANRwgTLQHdm+juufwAAABIAAAABMEQCIGx/OCkOxaDc/68OQ8bcLKr8lidXcG31A6jNC2hCQLRcAiAsVLpdNUUPqyE3MDRDsp1DDIiXrg6GZSdhKRjU7UUVWwAAAGYDQ1RYMhwv5ERsfJY9xB3ViHmvZIg4+Y0AAAASAAAAATBEAiB2VNNRLbyGYtxipGGRlRSiD9ROkpydlb/Q28+TM4LiCAIgIO9Imqxq7s+VQ3iAl73n5As9y4hHo9TPYYPHXwA6Qv8AAABmA0NGQ13/iaLKpNdrwob3TWe9cY64NNphAAAAEgAAAAEwRAIgLtk8OC56JgGvyayolaJ7YU8xMX3M5fXmeDTy5+a6uqMCICNP1l+1u/LToLq6KUEMXa6aBAdGJdcUukV3HZ5sKUCrAAAAZgNDSURFmYNsISzZiOrMxUyCDukmHNqscQAAABIAAAABMEQCIDrvFl+B24FB9ThEx6rT53tCckRPWASTjaJu9+pdL59MAiB7EvQubhCLLaA8ecd27FXPnyyxA/V4tYLrFHZyfOw3LwAAAGcDQ05UQph2xKb4n7Rw6SRWuDE4ed+YtjwAAAASAAAAATBFAiEAmvl8PGy073y1EM7O+By5/3y8Qs94KeL2Fb2kYdlk9e8CIEL2zP0z70fJpRPLTblRFws2HFO/oCg6rZBKLJklFdDgAAAAZgNDMTAADBAAUOmMkfkRT6Xddc5oab9PUwAAABIAAAABMEQCIFGKUnAFqGcTjX6kkG2LW/ZBmmJWpM5egaCW8iRnx5XLAiA24ZXe7MroCLU76MzXamJeLL/QWfTfpdLod3HtdlagxQAAAGYDQzIwJudTB/wMAhRy/rj3J4OVMfES8xcAAAASAAAAATBEAiBDIG/Y7/WlwR/Y9QJ3xBEaXCJ4m027F2LgyhUaws4ErAIgKaP+HgHKGZUy01X637PfjuV1gAgul3PMqV9Eh0xlM10AAABnBEFDUFTK0tTERp/wmrJNAqY7zt/NRL4GRQAAABIAAAABMEQCIC0orOoH6CDMjDP4HDdJxKTYrwEoE51rdZSuUbiV0ERTAiBxjmlQzWaMGvUZhIL421i/TZr6+mRd++qxZsdWQ006aAAAAGcEQ0FQUC6chhcTqMvUrKcqgy80e5Ug7buQAAAAEgAAAAEwRAIgAs1TvWmBFwq31D1ES8xcg2fTey2YDt3drwwiA9nnDw8CIFCVr0f7Zrhs5Kz+wI7ee/RJ/1SMvia8Rj62Fl/1dqdoAAAAaAVDQkFOS6XkErpvyh4HsV3vyqQjb/e1p/CGAAAAEgAAAAEwRAIgePh7t+t3waY3EzMuJqCW64fib27wfpEqq6uKGAwSbkQCIHuQJggA6Ca1fKh9AbvsdSuqd9jVLNmoJogOTdxStcqVAAAAZwRDQlMz1KgCJDUFKLfArowyWgtXeNkv2G4AAAASAAAAATBEAiBczXUhLV+WELmnTZdxr78YHKlslIO/u18cHfAJQgmz6gIgOkNTXNwGXGXF1fcn2jKrZxGXJYmfo4xg0CrvamjakvsAAABnA0NCQ3kL+srnFXYQfAaPSUyKYwKupkDLAAAAEgAAAAEwRQIhAMahXqdFymMthKN+oaKBuPS+YRHFlHpMAimSpCO64+kkAiAeeV/LqNebg9CHXp7w2H/FOhR3I5nLgUaNhLedzx7aJwAAAGcEQ0JSTKb6ZTGs3x+flu3dZqD5SB41wuQqAAAABgAAAAEwRAIgTu6BOCTWid6BUorM39y+q7VsjqEghU2+Nam9tzyu0ggCIBSfK6PKyJz6e4vXiadZFllkhLX2e6LlqnChrvEOq+ibAAAAaQVDQU5EWVQNMIeyHzH5qBA4XJRiegZ8/QsIAAAAEgAAAAEwRQIhALSx3YKQ1d4eM3mWSdtDyXfcJqFDlNmno3UGHDh+eEIMAiAWNF2x4VIhyy6rkKFd9YS7J/wzIe9mse9FTo/nqISs1wAAAGcEQ1lDRerdm2n5YUAoP5/3XaX9M7z1TmKWAAAABgAAAAEwRAIgQcuXf3fAnIe3tJPVgb/ORCzFGA3xH6xze6tHiMkSy14CIF+LR1RfAWlOiaS5Lb4MvWPECyQJFHnvKZ9gkZGqK7oTAAAAZgNNQ0+2O2BqyBClLMoV5Eu2MP1C2NHYPQAAAAgAAAABMEQCIFGwbb8EyEJDPMXtqO6FBEJGFB7Ffbk/6YUIKl5lfvx1AiBx2Hd3OndpzHKMUTuSB+ZC+VSZ5fx/EK1doIVjebtSlwAAAGgEQ1JEVNqrXmlbsOjOg4TuVro4+oKQYY5SAAAAEgAAAAEwRQIhANS6o6gt32yhM+ppMFU0l7sZyG7feiUf/cvgSb4JN9ARAiB3D3W9EXbHJVQ/ahouUDxhw+eynnUC2NnIRn/CKFdUkQAAAGUCQ0WPEt/HmB3nmoo0BwpzJHHy0zXuzgAAABIAAAABMEQCIBWeNNCy/xNZaaSyT++upHxBV2W6o/4ScnBvSZM0vIp/AiAY/Nij+eesA/g/TfMC6FkzdeBBCtmfBCVWEE3QL8P+wwAAAGcDQ0dCKFjtAiXpqgY4zNm1Ur7icSQm+iQAAAASAAAAATBFAiEAiIB60EI9/Bxd/K67xbcJySdhEfB/8lD1nyg5QWSQKEICIFZMqvK0oF+zbw7K8sgGryi6+gqIj9nH4P4ElvR9cO8yAAAAZwRDSEZUWAAqa25lmhbenwL1KbEFNuMHsNkAAAASAAAAATBEAiBz6ypxk9Jbj5Adt/wdlQ8wuzOOYkokqr9k1cUulBwAqgIgP1citJvLjDLC+XuDGoMDQnmjnmMBHeV35dZHVyXyg18AAABpBktPTUJBVIeM8UjMu1BCYEOpr/5UukCCIcf6AAAACAAAAAEwRAIgJrU73qqOkffhHBmchrf4UeRH+42ExTGDMJZbHESFk/YCIFiIyynGxovd1srVnecQAPXxtapnnOG0B3v62WvL1xUqAAAAZwRDTk5TbDvkBhdDSc+kUBZUMT2X5qMQcuEAAAASAAAAATBEAiA9P4DPt4yMBi8Pne+PlnWzx/G6a0meUwnsXYB8g0Rq1QIgZqkoisJ6KvH55El0YMWlMY7QM+sR0Q0WAXE2ZxLGvOUAAABoBENQUljG4UVCH9SUsm3PK/6xsCt8VyGXjwAAABIAAAABMEUCIQDICSr0ym41FC0ZJBMDwt3wnCsO6bveTdg2ofdhMmXdaQIgSTjqx4ez5xps9dBBMB0v7n2Jvp7SqqOfjNKviPimL1MAAABoBSRDUEhYhonYUM3zt0ofal62AwLHhbccL8cAAAASAAAAATBEAiB/xb3rU3SWDtz+FJtuGRqO+CMADzN0r7eXFqBt20GoHAIgPJrOmZ8WjjA7etIqw3tIcx6NoxkIprHPfOiZRFx842gAAABmA0NQSStn0ah6jYsoCiPpe8VQlSFe4OxTAAAAEgAAAAEwRAIgN3rQ0EpsRV6i9x8SMw7axmdrbUTMN7dC2vIZno84ojMCIBvPfyqtPv6FOdtRNlaGrt2OWNbDMUPmj9xH4siWuRRxAAAAaARDUFRF4L3+LOUfRFVjCWZdWYGMy1Qf8GcAAAASAAAAATBFAiEAv0CavnanPhfuYFPee+Kddv4Isya5etdlQa+w5sVp7FoCIHFN85ERKpmdHvhC8RhOcgx/T3O93WuwbhJzZgMefITCAAAAZwNDVUKoiSv8M/pEBTqeQCsYOZZvT+x0pAAAABIAAAABMEUCIQC5Ig/qHl3cDbUUBP3h/rMNTBkzFDl3xzIoy0xnUA+/yAIgG1pRCJfYBCm6FLJldV874TEd62ZKtRfQVgeeTVMHYj4AAABmA0NWQXilLhLHtj0FwS+WCDB1h89lTsPQAAAAEgAAAAEwRAIgFYUOZ68Kf+LUhPmNXV7T62pPZGXFf7AX/dbZxGWQjGwCIBbxugnIMW31bDRmXh4Jc8ds8/rJyX+vbns6dgf3vRPYAAAAaARDVkFHcqZuVLZokq47vlTfe7fdWuknpvkAAAASAAAAATBFAiEAvI2pk45hxgBD+4F60RVv9U5STPhCW1tf/vJx20H2zAICICFaxazPrbG2bV3k3Z6fGlXbeIs9V9AOFtdYy/7iREpPAAAAZwRDQVJUXIyNVgBI805ff4rXHy+BqJ29Jz4AAAASAAAAATBEAiBmlFbwMQvl3+eK920HIJ4MQ1T6lsx2W1S7N5jXUHUKigIga6WXtbR4qFJeaJIYRpe8QAv+03/pnwvaNfScqIr3ryYAAABoBENCRVQ13S6/IHRsbmWPrHXNgNRyL65i9gAAABIAAAABMEUCIQCbgsruchlz3lzxv613nuuuFBpYbSqotMek3niXn/hMvQIgFeHmtPwjSDSmJSE5OO9LU3oeBn1Pt0libm0FU9vw2zgAAABmA0NCTZXv0f5gmfZaftUk3vSHSDIhCUlHAAAAEgAAAAEwRAIgDi33eEbWTlwdoyzyLFeSX99kdRPmmFyjbkO2QwV0YsgCICRbtfUFa89c5q/WHpvNxM/tQ4ZNHP+X7tme1fmfSjg2AAAAaQZDQlVDS1MNK7nWjdRFGgnslMBeIL05UCK9jgAAAAIAAAABMEQCIARxSGw61Qk+N9dsoq7dHrXtzeNAGIOosAt1iJdKJJUrAiA6920cGwpUdoRZbmp0OETuNMYG4qBXfYFQf3ChdTzTaQAAAGYDWFBUCKoO0AQHNt0o1MixarRTs2gkjRkAAAASAAAAATBEAiAWAtpC03mdL+0usHKaVfShebY9fXwej7OhQvHa51YTfQIgCQGHw1yz/nBGUiAtsY5Zx6e473CN/T+uD2bpC0F/SL0AAABoBENDUkLkyU1F9673AYpdZvRK94DsYCM3jgAAAAYAAAABMEUCIQDHGPoNSWd7GEXEADPV6HBFB2lTjrW5VuNq5mvA23aaLwIgFH7UvQN17PQtA9PWNG+TpTFJSJmTH3j6JHG1jI38+RIAAABmAkNDnlRwYaNFAVhp0mx7buSrW2NCREEAAAASAAAAATBFAiEA7G9xRPd8CURZNZadcyKAtc9u8YJYqblTQuZVLffslTcCIHPydTa2FPvhyfs8UrjxoxQ0cnMpPiMRI0bdPK9WjwK2AAAAZwRDQ3YyYS4XJkNf443Umgs1tAZbVvScjxEAAAASAAAAATBEAiAzzExG/Skf66n8b9rrwfcYyjhRVT2yqj0dOVFs3sMozQIgaf6CUdf4Al5rA903bfM2l/Os4zUaCbBHYH0vshhvgpYAAABnA0NITVOKFR3ZEMHRIncZvUANbE+Z6gbQAAAAEgAAAAEwRQIhAOaFRyDSfOSqXF2TeGnU+mwon7OnYNQLho5W/tbXK8gHAiAdnBOcknNh1tcFji2+KOdQiKB7iankkB2GAG1gu1MG8AAAAGcDQ0NDKFd6bTFVm9JlzjrbYtBFhVD3uKcAAAASAAAAATBFAiEA2yDkxIdqzrI5Os496f4HLalwHioVrD+poVTwDjrXpbYCICV9Ka8EoEY/uff6APM2TP5drlKFusvNYsXGhBo8c/uYAAAAZgMzQ3NPViISUtEX814vark3o/d8rTiTTQAAABIAAAABMEQCIGmpWCD9bAgJdd/72GONOor5QY1SORN1gJZePNxgaQ8SAiBSupNgvKLgrw+5Z8ae7v9JyuUcwVJztP35rShzKzOc4wAAAGcDQ0JUPKaxhShWhOFPklF5mSOH+075CscAAAASAAAAATBFAiEAwPiPDG5Xq9zoibAenyBaxrxyQ4ZaMI3wYhfM1KSu/0cCIHppRb+XCjeFZFwR3LW5d9GO8q/ow3m+JIbu4bpUjECEAAAAZwRDQzEwF6wYjgmniQoYROXmVHH+iwzPrfMAAAASAAAAATBEAiAMaZq1E0BiKyAmHfCWXj9WfhrQLJ0l69w/8nt5FpxJqwIgJH6t9uA8/K0GXo3Pq2xH1Ig1NHTwJapOVxCU+1xOZ74AAABnBERFUE988nGWbzY0O/AVDyXlNk95YcWCAQAAAAAAAAABMEQCIDPfcS8ppuse4luvD6c8yz2r/0xk/yAsKriX18gXPlIjAiBy7TBYDwnbOFbhPlW4Pc/yVk7APIZcXjLIF4XwfqnLywAAAGcEQ05SR8IdvuZdYncJUwNfBDTFMtV4pmbJAAAAEgAAAAEwRAIgBYCTEcpYUc3xK1l68ycQvWMQTHFT46yySQ1Gb6Pha+oCIGHB8fNeKCn1o3aNn3PVf22E9Hbz95qZwWJbV6lwpZeOAAAAZwRYQ0hGtCcgceyt1p2TOtzRnKmf6AZk/AgAAAASAAAAATBEAiBbj6Rl1lI3PsULjaSYWyHFDEPJ3+/V8ZXjaVYkpXnOWwIgXT857/O4Si0AmEqSL8eTR/SMBv5RCAbzUuG3JyfXtjkAAABnA0NVTbALHlK99Rj/nQsWCE9Pvha6WKDnAAAACQAAAAEwRQIhAMAIaTrOs2211LpsZQfzG1zJqQesCOmool4XaWAxJ9WmAiBGUXJy9oFQBmp573Txklpd2w5PVSdAAsSXGlKu09AUJAAAAGoGQ0lYMTAwY5PoIodHKPivp+HJlE5BfTfKWHgAAAASAAAAATBFAiEApY/uQY49JP47SdJwhfF7sG82LsRiveDa4tKZV4PfIsMCIGN2KAmYeGdmxWtmPtAUhsRToisC3gpT1aLTSX++AzVKAAAAZwNLRUVy0yrBxeZr/FsIgGJx+O75FVRRZAAAAAAAAAABMEUCIQC+Vdp1giQSEYvgo9pZ1jVPLi09giWwBsyQyOT9nHnoNwIgC1OyjqCnRkao4HU5JrG0uaaEww5gYt7Vc5Jmuk6R4NIAAABmA0tFSz+kAEg0h6SJ7JsdspxBKQY+7EZUAAAAEgAAAAEwRAIgMSe3FDiDbUTMfr6j7oI0aE5pPMnkgtDdS1TZI4zCvdACIH1gbvQg3ke35OjAuDT1sp7W7rKMk0uGov4+ikpGx0mXAAAAaQVLSVRUWZufsibpjE6Q2ygwya76nPy+OwAKAAAAEgAAAAEwRQIhAIJbyr8YF9b9/a5ZiiJgw4y8x+Wa44jZ4U2Mdfb+lFvxAiB4TQu1RCJGySBT/BFJB54Ub8cf4RROU3L33pZeB/dyjQAAAGgFQ1JZUEwQYv3yULRGlyFtB+Qd+TgkUZ9HqgAAAAgAAAABMEQCIFUXbq9bShb5du0/g7FSTVs6++04iZtX3qxfScPpNvXwAiApT7JWuo0/vGZ8xg7A7NKt+ij68e69mDlcg4R7b1ZVaAAAAGYDQ0xQf84oVomaaAbu73CAeYX8dVTGY0AAAAAJAAAAATBEAiAkd2upsD49eSG9uOOadgX5PuTF406p+2USGo0IC92YFAIgadwA9P/feZ/F7vGGqUrWoagKofGESzHwC5K6uz872eMAAABmA0NMTD3JpC+nr+V74DxY/X9EEbHkZsUIAAAAEgAAAAEwRAIgIXGzM3DL5xEeBrMhFt03uChmjZ7NFr9Qd+hsOyLAAzoCIFXh9sor+dXzBQ2VddysigY9jY/AX2kZJLr/71WJsXqvAAAAZgNDTUN+ZnUlUhz2E1Li4BtQ+qrn3zl0mgAAABIAAAABMEQCIFC6ubuF0YF+gJ60vWmmV0wKjpVqNOoPYnqfE6ELi6S/AiAzcuq5Zs53/Ta//5SYhLUmZytmWQqVaKSdhEtylz3nVAAAAGgEVEVDSGKGqeb350Wm2IRWHYj5RULWcVaYAAAAEgAAAAEwRQIhAKuPbgc90cZjPaRz415iUMwMjuk4hSf7AXx3p56A2+v7AiAXRxJr361VQqmQRGL+5/AHCV/XKe/vn314UNKyhQIYzwAAAGYDQ01THyKtmcM05mibrnUcwiW8w4/lT4IAAAASAAAAATBEAiBOHERPk3264s0amnFJuv8J54W4+mu+ePhE9pDFKqiLmwIgE/fP9yhpW7Ddi+LoJ3mOb1INJ9Qt8NTJjPIGbxiX6nMAAABnA0NSVDaijHybPeoi8H9N9ngzy+dk/u60AAAAEgAAAAEwRQIhAPBjMK3DaYXNyKrmZWdJ7qNeMt6suiC51694jDS2/mBjAiAhCAHHMMiaD/c1lIDgxMWWEKffhoXzusYrUz5iyZ4MsAAAAGYDWUFFTuQ4vjj4aCq7CJ8r/qSIUcXnHq8AAAASAAAAATBEAiBHJnguY/8CvF8xvlGEaimI4fvi7GkkuKap2uSpra8h6QIgA8AxFIakMKwVcsAedNi+ffwvjtAlvQt11Pi4yUh5MVQAAABoBVBIVU5Ls5GF4z6MKOC7PbvOJNpd6mN5rpEAAAASAAAAATBEAiBpFGrnUbodK8VvLGJMhbk57+ibCat4KYKIlIbyLi2+7gIgEZ9L2YbrXQpC4h061fafpTlpf3oLmKSnH+euw6thX7wAAABoBFBJTkchzWrwE4NlHtEFVDlMBJf5215dvAAAAAgAAAABMEUCIQDNJjdO7yqykxEam3IuAl3+tlagxL6GFKebB9vkZg2IkQIgXcM7s/zo0AjErgHjTsyGZbsp6LRCOAOr24ZMqHK0udEAAABmAkNQBqb8I+bsiisq7u/XDXctw9a0UBAAAAASAAAAATBFAiEA8I4hqLG7fTGGpd1JzpiqIExDrbMUfUpUVjyDhpcWpdACIHNKwEj/yz5RE256VcmmxIu3LisMdka9srTs7Wmn7XZsAAAAaQZIT09ESUXf+jp/W0B4nHpDfb57MbR/mwj+dQAAABIAAAABMEQCIG7c7Kpx2YNWBvdPJ5ZRAsvfsqR3zxPUCMp60GGyQtjuAiBHaXF0TkRDuiFZ6XkzV3YilKh+Mz3ZdGhGaJyzddvR2gAAAGkFdVBVTkuNK//LsZ/xSmmMQk+83P0Xqrm5BQAAABIAAAABMEUCIQDa3OGmw8JjvVxFPbhsdW5YA7r5J/BRl0Qcxy2xTqMetAIgDc28L+nAJ5Ov6xpp4w9xAO8aWQGzmqInZqmHVShAsNMAAABoBFBVTksmlhbVSdfo6qgt+xcCjQshLREjKgAAABIAAAABMEUCIQDO7BmshLfHAbfsfJf6bCy6cHh4aQ6TiYsPNUvBjFMECwIgXvayh4U5I9g4t3hMQhPgRfGvvUhFABEDDfyWWUwg4S8AAABoBFBVUFPVOZjFNvyLWbOKoLSdvYFw1ev0wgAAABIAAAABMEUCIQDtyorYZz/Y6TTrYtxBQ49A5kGbarRjNIaql55ODoRJPQIgbYIgDt4kDcc9ct5buBIOAacjMDQZ/XZhrRpyvQ2QXNYAAABmA0NSU+x9PoNdo/YRgHn6miNrJn0ET9fKAAAAEgAAAAEwRAIgUtCJ2q8LGduecYswlJYTuYyrm6Jmyml5rRnP+Zl92csCIEIQqAJIZQVU1q+8NNIxsr5QwiiY9ekLIFrTi37TnY1yAAAAZgNDVEfHYHIetlqmsKY032oAiIfEiBP/YwAAAAgAAAABMEQCIAtR/HwUoMSFh6gLVb8DhJVJnEfDdoJ9KCxNCh4Y6xqsAiAA0hPI+87XmbNjXzChMZk39sF9Q6AKkQdmr36G4GuCHQAAAGYDQ1NUu0mlHuWmbKOoy+UpN5ukS6Z+Z3EAAAASAAAAATBEAiB9BPz5S4nFZKbjx6aiiR73rjA6q9JAOOxKU3484beUaQIgIDo/BGaI5AQLGxSqnC3fhj28E0Hb3nR3Kr3rGGQIYH0AAABnBFNPVUy7HyTAwVVLmZAiLwNrCq1u5MrsKQAAABIAAAABMEQCIDz8m0+k62dRH5EtcG7xKA2QozQHFoXDnOkV1sh782peAiA/6P1Ta54F3Ef3bE1+mg2twh1LEej6Xt2C83isQQdWUQAAAGcDQ1RGRUV1Dzmva+TyN7aGnU7MqSj9WoUAAAASAAAAATBFAiEAiDIBFEsvi1g9tiUjxwdFAPU7yv75Oao43rvihIgQ4nwCIAI0ZvLmzLgL92Lclt8KXCJwKwyFH9d5l2CnYcKDH3TQAAAAZwRDUlRTlMo30Qjol3XciuZfUa4owtlZn5oAAAAJAAAAATBEAiAkBgY6X9JaiV7xhGfty+FExfseq/zZ9wuipJIBb4UEyQIgS4nDdU1IKZ7KNgJOmq//vSJMAu9wg7FhwPoSNimh14QAAABnA0MyTxPKjrZAXPvi6uXQAgdlEAIIP7ydAAAAAgAAAAEwRQIhAKVlCH1M9EzOQd50mvk4CFFYBIYgOuzBAry6xQPkVAcUAiA1I8Qgexu+TX1agsuiNKmb9HbQDHgPs6hZXkS/OFkpQQAAAGgEQ1RSVIYGqPKOHi/VC5B01lwBVIsfBAsyAAAACAAAAAEwRQIhAMIiS9HDOuErAIynSyvM8coGHasmT2j2AspZmpJrDFSkAiA+cpRMQKfvwbROvsIK2NvKBkNs3CboQd/X/tRaRLd2FAAAAGcDQ0NUM29kb4fZ9rxu1C3Ubos/2dvRXCIAAAASAAAAATBFAiEAjRLI2+FD9gQ7lDwPhnMgXyqmz66HxMi2pju2d6rak7MCIAEiOHLsj+PH0nynrlxqRdRRmgAXKx24Y+IQ7V6ImXNOAAAAZgNDWUwmyzZBqqQ5EfHUyyzlROtlKqx8RwAAABIAAAABMEQCIF/YaUekvHKBEGgtPHGlApsSFKQwyX+yYpGAiWT+1mkwAiBQHkfYXLEOjxBjCfX+saqzUhPuTrJJldohDuAOZTmVhwAAAGcETkVCT38MixJQQPcHRBytnl7YqECGc7RVAAAAEgAAAAEwRAIgEYlRTMICCCGL43guGIxHCMSSLoSvqimpsQNNG/65EiwCIE8FT49u1pYxirIhQMP5zwnOM/a6aM1I5Qe6NY8ToIYbAAAAZgNDVEfIfF3Yaj1Wf/KHAYhvsHRaqomNpAAAABIAAAABMEQCIGbEjddB6FpvW6qsnRPe9Na6Flf0eH9wZFR+8SrQNBf5AiBGf8SH3EsEmvsr7qdwilgSlv5qYP9vpyBU6vZM27SU4wAAAGgFQ1RBU0sZbIE4W8U2RnQzAUBCeI63B3A5NAAAABIAAAABMEQCIFdFhI6JDLtoXuTlOXYdBqioZT1MIH6/cnTSOAO5T84ZAiAcrCjAek/+n/6E6dpN6t8PuCUp41R+b9hGFkoFO8gzpAAAAGYDQ1RMv0z9fR7e7qX2YAgnQRtBoh6wir0AAAACAAAAATBEAiA+xkxjvIYFveXMEX82970N1+9LelJLp5V8ReOYA+vW9AIgW3ou3o7sK9TfuBDzB8iEXj8sMoVHPgx+L93G5QtOBbMAAABnBEFVVE9iLf/MToPGS6lZUwpaVYBoeldYGwAAABIAAAABMEQCIFB2YuUqls9kILELl7sWgV8enevjr+8mTQ3pqqWhNFjAAiAlct4AjqjGlLSDxXRa05ltXfpaqZAff9x+iMgTsfOXbQAAAGcEQ0JJWBIvltWWOEiFtUvM3d8hJQGMQh2DAAAACAAAAAEwRAIgEhLa4mZRDoo/DcTxj0i+h2dHTaCOSksIqnQpNLZpWfECIHMDIwaZUiUIEDJKJp8V95499XlYUydGXoeg9X1CBA6uAAAAaARDQklYBcNhfL8TBLkmCqYeyWDxFdZ77OoAAAASAAAAATBFAiEApA1bF79NGbS/Ar8ljtnq55RVGenlxXUSyD7QUJ396N8CIFaSWvVdD0cH28kOdE8HoaHqQw0d8Q94ZYD88Yfzo5VqAAAAaARDVUJUv55y7rWtuLVYM0yGcpULejedQmYAAAASAAAAATBFAiEA5GholTTpF+4onFvnSilA9ia3SMF6YPRnbsYBLpWays0CICbfJ4vra6DFZcoyJwzXuRN4dmZC5QHeswNtJ3WqG0qQAAAAaARDVURM7NIPDrw9peUUtEVOPcOW59oYymoAAAASAAAAATBFAiEAstShCgQP51jjYN4vDXbPja7i8vFGFu4kMn/muR4qIVkCIHTx60VfRRE0jTsDdEyPKxBlsP2tlfblzAzqnkax77PXAAAAaAVDVURPU4F7vbw+ihIE82kdFLtEmShB49s1AAAAEgAAAAEwRAIgcgMKZxgama/LLBTu4DWSfZwZHpj2XhivYcxBQoyX9RkCIFUWOYYBgu+fsNUCtwKMY8rX63SLtJJKJF27nDJP46YnAAAAaARDVUxU8PnYlaylyGePcG+4IW+iKVdoWhMAAAASAAAAATBFAiEAizzTyZbV3gQ1N+bNKNO9/QlQWoqK4kYTmz5z7qOQVAkCIAd7qZkK9A4Lap71q2b73EyRahy34pQ2twF3wvhuInMfAAAAaARDVFBM9+QK+DCi7L/nLFIQwconLjqnyhsAAAASAAAAATBFAiEAh9hbTAJ//Uw4LY2DKLlPrMkTKoI7hQNcspLA07wBnZ0CIDn7VkZeFL67VK+86LIjP4Ez/6py1WrbWcBLHBobbA2bAAAAaQZDVU1JTlXWMnzh+51gIOjCwOEkoewj3Kt1NgAAABIAAAABMEQCIBy5FcKt5XTrUgp9dezwORY3txwuQX7pJc0yAUBqJCftAiBklOouwbQPMx3d91MtiEpu3dFsyZTCbMFS05QJawi8xQAAAGgEWENVUuHH4wxCwkWCiIx1iYT244IJZ4a9AAAACAAAAAEwRQIhAJAVdr1bg6yWyqRz23KqoMBhE9mRpo0xfgDGHwhQECpNAiBknYMXm83Pm3ugpBblPAao/ybUTqbSzRzP2ign5O38cwAAAGgEQ1VSRQiaUCAyFm4HroPrQ0wWeQyi+kZhAAAAEgAAAAEwRQIhAJK/lrGVtm25Oob17Okr+wew2j7pSVSZLFccOZYNk0lgAiBeVnON82uOz1Ds/e8Ma0Ur/CJzkfWWptpeP0XjNnJtWQAAAGYDQ0dU9WsWTv08/AK6c5txm2UmpvocoyoAAAASAAAAATBEAiBb9y6+hLnobXJ+OOc53qZkgYViXt2GTvBJ7C6JdbkHFgIgVa9D4eodFU4rd66ZUtc0He9tdsbv432XDDxPe46vmKkAAABnBENSTkPJoeZ4yQJfDUzxKdbeDYDwfZejbwAAAAMAAAABMEQCIDjcOdrjVkV1+/nJ3pgmy4bVrlFWaTAhpCTWwB2RvffmAiAzrV3z14m0yuuSv9/bG6jy0GjefrDok5J+7mlO0h1LbgAAAGkFQ1VSUlnC064pyDCcFJlNAuzSKM+G8+/edwAAABIAAAABMEUCIQD2fhP3Yl2kIH1dEB8QPPtNxA51u7kavpt/t69urPixuQIgONC5cQcuXtrOe2Ze2nG9gPhlY/Dayf8qzh9xQjj/ZcgAAABmA0NVUhMzn9B5NM1nQmlybt87XM7p3ZPeAAAAEgAAAAEwRAIgT46DAsp0ktOcM5SIbIJTBawd+1DgyQouH+lzeQWKnpcCIG4X8jFYJgO4NVzxTbM2xRLaL84i7uF5pc4RbZ6+wTVLAAAAbQljcnZDUlZFVEjtQGTzdsuNaPdw+x/wiKPQ8/9cTQAAABIAAAABMEUCIQD+o0qDymbe/fN0reM/1gK0DAk9GSBOiQ12E3J/IzTpgQIgWrMAyVU8ObWnKmfht5as/gkx2Uye6Ka6FGXEOsb7kdMAAABsCWNydkNWWEVUSDooPZwI6LVZZq+2TFFfUUPPkHYRAAAAEgAAAAEwRAIgOqT/voYSuXWqBnUKZiv7oXlGDhQovJnS3uYMQOvkijwCICW9rg6YWokAKuZ0eemPlBfV7Wwj9tm27k58o1/QG5XJAAAAZwNDUlbVM6lJdAuzMG0RnMd3+pALoDTNUgAAABIAAAABMEUCIQDkdiG8pdausyklt8Jw9Wg+28nTygDtTVbVlqjgWJB53QIgGPmYdn7ZNRzUELM3CihKgVeqHYhwacIUo/DMjos+1r8AAABrCGNFVVJUVVNEO2gxwAd6HkTtCiGEHDvE3BG86DMAAAASAAAAATBEAiAzZvskoIoTKcT892j3h9g9XEd7Vpiz6VWny3N479ZjcwIgcweCdP3uaUiCddogN0H1p51ix3ZvQA45F3jOu7IzkocAAABsCXlEQUl5VVNEQ99eDoHf9vrzp+UrppeCDF4y2AaoAAAAEgAAAAEwRAIgSdjAbWVcRJHSdQuSw5uw6UcfK8wf+pi+un329LtdpAMCIG0AEyp5wW+3vJ6iyamjW+XXjHqWsKBN2+A4dYd28+A0AAAAaAQzQ3J2bD+Q8EOnL6YSy6yBFe5+Ur3m5JAAAAASAAAAATBFAiEAiP5a0KpFbGGEPl6zjmpWFYyJ91zuVzyuQ0o+Jd9b/nwCIDOBoG9TyTf6TSUHxQm0HQCEywatGtQxUV+kGV4qDQuNAAAAbQljcnZhbmRVU0TCWjo7lpQVyARRCY+pB+xyJXKRfwAAABIAAAABMEUCIQD+YqS10dGDuR8rxC5vuJQMTJPKr3RA1xwRNHWgh2iKfAIgbZ4jbHstVZOy80zC1AAQbpvPoVCnyx5JFw3Tv79s+iYAAABoBGVDUlaj2H//zmO1Pg1U+qHMmDt+sLdKnAAAABIAAAABMEUCIQD47SI+8vA8A3wlluedjuSma3jGX6u9/Of/IPVPeU+mFgIgSHaTFIDbKO+KCh1c5qYJy+/uk2AkmjZIyr3OtqLGmuUAAABqB2V1cnNDUlYZTr0XP2zazgRsU+rM6blT8oQR0QAAABIAAAABMEQCIGT8TgZMKDP5uIPoZ0gtVJ9ecQhD9l21WVbLgzk9l59nAiA9p4ZpUDMP1tuZBPcixgeyC609K/ZaBE5Cz4O07mK4tQAAAGwIRlJBWDNDUlbWMvImkvrHYR0qocDVUpMNQ8rtOwAAABIAAAABMEUCIQDctmGNa7s4qJw0jWkKZOWocn3AMyA0jV6jtYNza584MQIgLN9+BV8J04fGBzPsIGR2Nh7j4gOdLd66Qt4xDvvttnEAAABtCWNydlJlbkJUQ0mEnJiuOf/xIoBsBnkfpzeE+zZ1AAAAEgAAAAEwRQIhAIEDvDCpo+TLVqLstshCodtfL02d2nqWBKaEcZ2H5QLEAiAitUm3E7uDL0h2BuupGiDUgbX0evOP2ljgtLvqHfMsxQAAAG0JY3J2UmVuQlRDB1sbuZeSyeEEG6E6/vgMkaHnD7MAAAASAAAAATBFAiEA0WtvBlPWxmzQHp7qCqghEWrBSOyTN5Vslmw9YStz5RYCIDQzw+Z2Nf0DjtOL4fmy6lmqMg5eW+RmhkVjJBHnkxmfAAAAaAVjcnZUQ8o9dawBG/WtB6mNAvGCJfm9mmvfAAAAEgAAAAEwRAIgXwrzcf8ykSw9f04LiWTDnJoGEGtBS+xVAMFulrTY7RACIAagLciicS9rUlzos3jxHHv0b7lmAkgARg6LAFwCwWtCAAAAawh1c2RrM0NSVpfido6Oc1EcqHRUXcX/gGfrGbeHAAAAEgAAAAEwRAIgXs/Siw4i0hgs6vN8GoXFSOsA5mGgKi2eOMWTyHvXFyMCIF87bWQdDR7GgIQBBTVexARr1qPuDS1IVcgYFD/xW+99AAAAaQZpYjNDUlZSgqTvZ9nDMTU0D7MonMFxHBNjjAAAABIAAAABMEQCIAmH/ky2shTX2bYYsszDx9Acr8mEy42at5bAluQSQYj9AiBuPPJICa1by1UxoZeldzEKpor3TeKDtGYOfHtryyR19AAAAGoIZHVzZDNDUlY6Zkq5Of2EggSGCfZS+aCwZ3M3uQAAABIAAAABMEMCIF83+KmC2X++4z1sG+tGluYxk3Xv+JxhwyqTtOqTsWWEAh9vVEUHYoPGO9SE51trhoONBppLkN/4Aj6uyHGlc/rVAAAAagdhbmtyQ1JWqheiNvK63JjdwM+ZmrtH1H/Aps8AAAASAAAAATBEAiBO65PgObf4OcV7dm4p9HF5CIVzF4kVG8zTj7R1Lx97QwIgUn5rXKzPrM+ZxO/ft8OdgIP31/oVDp0QSXty8A5fiS8AAABqBnN0ZUNSVgYyVEDQFOOXNlg8FlwpY7qZ+vFOAAAAEgAAAAEwRQIhALm08BJ5eWRK5SZp6E72Jstz5qSlrH3f7bAmeriXMADtAiB6ph3HyrVoTBnH5kVDxojOo4381fQwYLE6Sf8TgzLKtAAAAGsIWUZJRVRILWYpBZVou0A0RIfWL3RQ54uObHTg5QAAABIAAAABMEQCIFUIhrFk5zhPYBKj6Iiwet5zyUvFIcYzQSCdNHoGY6J+AiBEAmXWPYUd76Iv8CUDdVJlLpNAaCKHbYGIP2BlLcPhBwAAAGwIM0VVUnBvb2y5RGxO9evmYmjaZwDSb5YnPePVcQAAABIAAAABMEUCIQDdkPVIfbbrcpMXZB8k3bU8WnqYTsKlNKK5FgKWG12HHwIgd9beYIyixKjSw9I/O9WNpTavC6VhME9JHliUJmtvZqQAAABsCGN2eGNydi1mnQRkmWFwxrnnXu1xxouZ3e3yeegAAAASAAAAATBFAiEA9rzNKcWIFpHh81+mj3MaV9dQ4tXnrWAIyR/g4I2VCUICIFENpFWNvdOx79a4paA0EKxGtrggKnSd/lbOETot5rTZAAAAbAlpYkNIRnNDSEacLIkQ8RMYF4PCSdj2qkG1HN4PDAAAABIAAAABMEQCIET2UxWMcuvGFR4X5lCUWozS3F4foLOnb48fiESmzd9FAiBXF0DYcEW603ijBtCbcBrfzqdKHibGtF8KilDHAAnTAQAAAG0JaWJFVVJzRVVSGbCA/h/6BVNGnSDKNiGfF/zwOFkAAAASAAAAATBFAiEA+KdcCstvhsqcyyCf6xcoBCdWxvONRif3zO70kgRty54CIH7DHiXz7Czsq1FigrtIHb4xoJPS2rAsKpYsZMZH8zoHAAAAbAlpYkdCUHNHQlDWrBy5AZE3qJY0PaWd3m0Jf3EFOAAAABIAAAABMEQCIAy9HVokz+c/L0Or7VHXBLRgs5ytvtE5FTnaTTs424hGAiAUJNjOoU6rTi0pkcc5iSBFBS0j5A2CWlGWVVfRvQD6SQAAAGwJaWJLUldzS1JXhGGgBLUNMhyyK30DSWnOaAORGJkAAAASAAAAATBEAiB9VGLcCKos3XnxG8DeCvpvkDtvZONI7qQ+pXfwkBhaiwIgD6zn4uw4lqnx4eY0FHmyAc2N8AdZeGvrQugLkrQPvqQAAABrCEVVUk5FVVJUP7eOYXhMnGN9Vg7eI61XyhKUwUoAAAASAAAAATBEAiAPh5YKQg+xSIQq3Bf3NQJKGHvRKZxVX4Rx/6v8W5zcvgIgULqHZTmkcAw56f+u3d4TPRgC0voD+gFReztEyopdPuYAAABsCGFsRVRIRVRIxMMZ4tTWbMpEZMDCsyyb0j6+eE4AAAASAAAAATBFAiEAyaENjqnnegogDvsunSoXC4HmLBJF6H6LqeiZBMTid3cCIFzvjJDOCT/9RiYBT1BqE+FBtRuv6msIT0APeqkP/NvDAAAAbQlhbFVTRDNDUlZDtP39T/lpWHGFzbbwvYdcX8g/jAAAABIAAAABMEUCIQCZ41tko//MLrBf8mNnTSd1ZHMwy1PWKIeTla7AqO84qgIgOHoGqxRTtwD3pRiKINv+Uf+qN654cjYqxuozpzlbQAwAAABsCEJVU0QzQ1JWSAeGKqiyv2iDDkyNyG0OmpmOCFoAAAASAAAAATBFAiEA5MRStMYlGnrDAFIFM4+Ixi5A2gKrt21kV6P0J1WvL0ICIEDXknxgt2LD4AqhjY8apQo4krVaplJwcbixBND2q7KPAAAAbAhET0xBM0wzQ6paZ8JW4npdgHEsUZcUCNszcJJ9AAAAEgAAAAEwRQIhAOxdFknZT8irXymxmXMfc7NLEJE3qruDRs9kEiFDhvwxAiB+23RPpaThgJR9RYeMeZWcP9wh0QJNziubce84FmrUGQAAAGsITFVTRDNDUlbtJ5/dEcqEvu8Vr105u01L7iPwygAAABIAAAABMEQCIHSSY+mrHCLePnuFm5kF2MCCXE8xS9Eoq8ogw/VuNXzmAiBhFAL2ZcDYtI0mH2lkNrlEYnvd3+N5fsnhGnexjgPjzwAAAGoHTUlNM0wzQ1pqTVRFaBk4AXMnKl6Om5kEvfQbAAAAEgAAAAEwRAIgSUxu9VOt8nGLQe1hPnwkDUFM2N45X3xE7XruscPGz5ECIDSAF+NEt+Sm57SuO+XY86qKc/PTKXbjo7hWz7mNVtL/AAAAbAhPVVNEM0NSVodlDXu/w6nxBYfXd4IGZxcZ2ZENAAAAEgAAAAEwRQIhAL2XtUHGHgzDkIlXkJ5LJLDu5bUgFmEtJv6YtjfDyWWoAiAiWqQRuXz8rJN5y5hW2iEA3tss07nP2xGsxYNzzCQdNAAAAGkGVFVTRDND7NXnWvsC76EYr5FFFdZSGqvRifEAAAASAAAAATBEAiAbu4ph7xtzl8uhoC8/OK34pcqE53/QNqsHkU4u1ee8rQIgS/BckfbWVwY3/qhlNqfVQnKRSmbo5gpZanz6xTJ9ICIAAABrCGd1c2QzQ1JW0pZ/RcTzhN7qiA+Ae+kEdio96gcAAAASAAAAATBEAiAaXW7i61E0ei8GZ9mXxFpc4SdzHJYPvZEIJDiMcSRyXgIgEtOcUnpl9TNJrO86XmCnxl1I0cITDtg89Bh4tg8recYAAABnBGhDUlaxkFnrtDRmwyNYOSgoWkn1WOVy/QAAABIAAAABMEQCIGgzaoatS/4meMf4tFeZ1J+9Iuwlht980O/DH5M1gQthAiAlK6U5NPQlxyCmrCRBoMOqB1FgI6tFUBUpiRzSV8fYjQAAAGsIbXVzZDNDUlYa73PUne3EsXeNBwZYOZWVjchi5gAAABIAAAABMEQCIFgURjdIbvVQsbCcVhkE7RxUXVpGwTDe8gM6oZCj4ju2AiBubHCTseITHm3khgctjyEu3/kAoCRBnLXViCgCIkP7mQAAAG0Jb0JUQ3NidGNDL+lOo9XUoXUYQIFDl1PeFa751hQAAAASAAAAATBFAiEA91fOQ0twEVRQ6kaab3BfjmUW1orXh1qP00kjwsz9Z0ICIAmFHSghqYararDCqx9joKMvU1my4+ED/j2Kp0i+/z8rAAAAbQl0YnRjc2J0Y0Nk7aUdOtQNVrnfxVVOBvlOHdeG/QAAABIAAAABMEUCIQCKubDH9W0tQscm3flDqu8oJKakE1qNhFSIpgIjx07K1AIgEgTq57N+YTh1PNHSJjeptM3/yJXP/WsxOD+iqLAhvhoAAABrB2NydjNjcnnErSm6SzxYDm1ZEF//SEmZmXZ1/wAAABIAAAABMEUCIQD6W6EPqYanWEVtGEsEHNN+2Y2/oGludrSCH8JgDLRi/AIgG5BXzpUiMsQnuxmbPa5zp0NqrJxLocAILy8W32LJa54AAABsCHVzZG4zQ1JWTz6PQFz1r8BdaBQvN4O9/hOBFSIAAAASAAAAATBFAiEAqj704iXBoYqPMwZOFmIKq73qpR97HoqOnv3FvDNqk/ICID0V62sxT7glCvHn7tAYgrtqMuOVcAgStL3TYkLO7YIWAAAAaARDVVNU9qv/YWBDwtpXJXPcxYO2Vil7MOcAAAASAAAAATBFAiEAuoUhYWFGcdi6fBUyQu+mYpSJ7xf/TBJmV8UMve5Wku0CID28KOAZTrubg1Ny2fv2HCdCNQgmk1qwqz3yGpnbM5vQAAAAZQNDQ04XsmQAYhaVwtjC2IafYlnoLXVExAAAABIAAAABMEMCHzToZkhoJcq2qbJRaTGhaSGMFLFg2ScRnVEwJQNCdXoCIA7pADR15ZLd+TaAHKM/9KzKTeU+vq4fnCP+6aXPBS5wAAAAZwRDVVRFBHaG+yh+cmOiOHPepmtFAQFaIiYAAAASAAAAATBEAiAeFXbETKH3fT3/7f4+CqeAtN0E1ZhcCkfyOF7K6lu7NAIgOCU2lvAw69/Ju5c+rsZuFkT2N6HeYHjrPttE8Pk22nEAAABoBENPUkViNZ7XUF78Yf8dVv74IVjMr/oj1wAAABIAAAABMEUCIQDac6HtSspfxKgg6f6cJwC/rJFOR+oJlcQcjtOInZfC+gIgXZDnSYQzx4cqkzf+UafnX/48MFTXgDmzP15fUaCC+WEAAABnBENWTlRkALVSL41EjAgD5iRUNt0cgd8JzgAAAAgAAAABMEQCIEQk5wZBPxMIgJ7eFTCZAjdk8fbxEoHlRSHJZvumP0/NAiBm3Zi7tdONY1kLzm1WwJVJeDrkdb28iz262d7HwiLVFQAAAGYDQ1ZQGf1Mdgp9Sjiu6fImA1y8n99DT/4AAAASAAAAATBEAiAaM/hD4ggXsBEoc0L6qFyp8W2Oh325ZhsipPTq/RskawIgdMf8kONj9TIsJXWGnS1ohfT7heTmyHEf8J0WIgeUnSsAAABlAmNWULwuzAv99WZmQASAOMGrp7dSVoMAAAASAAAAATBEAiBnM08EdDuR4dR8hM7dYKNQKmGyfKmK12l6/mLf4mJsEwIgeRca95R92fZPxaugc/uP4gai01TXZy0HRQe+aXqKsqEAAABmAmNW2my1ig0MAWEKKcWmXDA+E+iFiHwAAAASAAAAATBFAiEAszQFCYZE1QFk1HuHRtJ/QYcE9dgxmMK+2IkJBH6xinUCIFQo1C2y9Ck6EN3P1gxRobXjeiaFOeA6kvcDsGxAVEXkAAAAZgNDWE60jg9p5qMGT1SY1JX3etg+CHSrKAAAABIAAAABMEQCIG94lwG1kfTssvAg64FRkl77JmHomxsCteyHXoG1NDs/AiBkuMoxaFQOJ6phlaSmzXlHLZ5jcIxM+2/6eSp/CjwkVQAAAGcDQ1lG2zPUm1pBqX0pa3JCqW69isd7O7gAAAASAAAAATBFAiEA10jS4Kk89erDa4HeNZwfOJrBc8Cuih52QDCN4ezVspYCIEVKPskgYREyGlyQxx60GKsc268mtSEwMlO4TgICpuDhAAAAaQZDeWJlckRIFXhCMiGjW5NYz+VADSAtK9xm8QAAABIAAAABMEQCIBSszhLgV8JYD7GkOjVHeik08krf/tTATnmoOW6SdBF1AiADBND9bmi0quAmmC7M9xaB9KLMrSJmgPIYfkZJcRJ9WgAAAGYDQ0JSS6AS9uQRob5VuY6eYsOkzrFuyIsAAAASAAAAATBEAiAIz0Vmh4IK1ADmqYbxPT6Tbv5pmdJlhI8GNY0Oj8/aMgIgHfTillbrTbAPJmjCz4ZqPIIL149nY4BmU8OEpImLceoAAABmA0NGaWO08+P6TkOGmM4zDjZegx98zR70AAAAEgAAAAEwRAIgM/N1GMtBH08IFdgrwxDVJ2NLCcnzic9G8twWRL2VBH4CID3Hu2TvSsHU53m69WGM3AXFriV8pNBOW4Z98uVgfRZsAAAAaARDWUZNSmIdnxsZKW0cD4djezqNSXjpv4IAAAASAAAAATBFAiEAs5IRma6g3xHTipZP56hukGjrPShBf22gMZ2l0a0sPqgCIEGZ8K7rdWx2xKgQ2teifwx7lbxScnqiDu7YpH6yB/mTAAAAawdLT05HWjIwnVnrpN6u4JRmup1Ac7+RK8cpgrAAAAASAAAAATBFAiEA65H8Si8A4xaFhVuaW7wRgagzRI4vsm8+uYNPFT+CdkoCID8xUb7/gUB3fNDjWkAyCntLZ1KVKHcHjRR2rXyJ/HSkAAAAZwNDTVT4X+6i/dgdURd/a4818OZzTORfXwAAABIAAAABMEUCIQCJLrfLdkgW7SBPyYnWyK15h9zhrgQplacoe5KOD3jJAQIgEuki59Mhp9pjU7HrrbioGjkMjbugpNYDVk7wYb9haVsAAABoBENZTVR4wpLRRF5rlVi/Qui8NpJx3tBi6gAAAAgAAAABMEUCIQCWkZxZKvGPqBoUXY/RJ/YJcYFJvSRI/7W69ubYo6zTHQIgDA6Gvftbg1sEMLp9klJCmQAgNbXSB9H1QRiIfQTBMuEAAABmA0NUQwC322tEMeNF7uXMI9IejbwdXK2jAAAAEgAAAAEwRAIgBIdR21Z3DfKtHlpw6lkbHeB1UlNheV/eSBkqijtmX2YCIActoiKLkjW+Pfufoa4mqHNzRxzXnoeLcsmg3Rg969VXAAAAZwNDVlS+Qow4Z/Bd6iqJ/HahArVE6sf3cgAAABIAAAABMEUCIQC6MQwqwE1XpY5RWDRC0m7ec4jEmLvcjatgalyF4xPkowIgUAmGXP9mY0LEIE1m8NNqAb6lDOHDauAuZbA/a4Tt9sMAAABnA0NZQ4hhz/I2bBEo/WmbaDBK2ZoHZO+aAAAAEgAAAAEwRQIhAND5G7TZwNH0Bwomzi7kwxoE2VTBIS5ntwMF76SS/wz/AiB9h35Va4ppewgCRq7uOP3DXER9UgNDCXMxoZjtPT8/4QAAAGgEQ1lUUr0Fzuh0EQABDY6TBIqA7XdkWse/AAAAEgAAAAEwRQIhAPRQe+2XWsCQrXSPjhrn++lGBfrBeLZBRxveRhxHjSB3AiB+CCgXZ/pdAsoe2FStnk9+5iFoGIDGl6Wz3gLjfKbE4AAAAGcDQ1pSAiP8cFdCFPZYE/4zbYcKxH4Uf64AAAASAAAAATBFAiEA12lTj66IoWgM0C8LlHsTBpQctntsPBsCAm7o0D9ajCUCIB/jsa3LiYCjx8YbBSxMiKUzlcXnZaMxFz1SLP5GA0AoAAAAaARESUxJN/dOmXlIU3d6EOodwIpkyGlY8GoAAAASAAAAATBFAiEA0+nLrvgyLbEpX46v+zMvccJJR+ihpnn6btT0rU/LcDICIDGdpYCRA1xsLcdVzHB5qS3U51i4mBkW7tC3KX5yGM5iAAAAZgNEQULasMMb80yJf7D+kNEuyUAcr1w27AAAAAAAAAABMEQCICfQYE8OSN4x2q94ii8Y3jewySQ/tGC6OvfwQ9maY8rpAiBRPH7vl9Nbkj+IEGFkjQfM37ntLI+jplCaMt2p256QeQAAAGcEREFDU6MRCOW6tUlFYNs0yVSSZYryOTV8AAAAEgAAAAEwRAIgbsRTBoCxfSj3yl1/mDAbgQwVzGFbLxc9Vuo5x9eeq64CIA3nc0LzIeqBr08QkU2+z6EeNMw6MXwb2URxqf9BiSl+AAAAaAREQUNY9rplm0GTkrci7WPU9SMoIuzv8mIAAAASAAAAATBFAiEAxp3bU8srEUMy9lf9t/Mj6lZYllsPA33VeFIJHo+7mI4CIG3XUYAQ1+s/wYEVeYv8VaUhf7zdG0OT/TsHLFdqRo4OAAAAaQVEQUNYSe+rckjTZYXiNA5dJfio0kPm4xk/AAAAEgAAAAEwRQIhAOENCwpFQ01HFGGdMyQGFQoPrapi/2X7qs1YKyybp1LiAiAjg4sHlAkEMmJ1z09weLvyYyAQk/HSKFCWdKB7L0J2YwAAAGYDREFEWzIlFP9yclMpJjfZBUMBYAwsgegAAAAJAAAAATBEAiA+nj0daAwDlFlVLZbKpDjldC/XpeLpSezTPUNfYnN/GgIgYCMUTP2dloOGh5aInw5vBxvdPqht9M4affEIliilqokAAABnBERBREn7LybyZvsoBaOHIw8qoKMxtNlvugAAABIAAAABMEQCIAHnb1lKRoysdRmTAiVwfMNIcRe5n6vBfvOIFGCDyFGmAiBfa6yDTLwoJG7VGLkHdFfwSZqB/NMgZPO5Gc0jS0h95gAAAGcDREFYC0vcR4eRiXJ0ZS3BXvXBNcrmHmAAAAASAAAAATBFAiEAsmEgTJcZF99e75NBQwRAG9FWnEZnywl+ofU3b8UxWocCIHEUEv+yPMpWVmViudAdhXv6+E+XuhGqnnUER2x1TSQWAAAAZwREQUZJ/JeQhzBagmwrKgBWz6ulCq0+ZDkAAAASAAAAATBEAiBmjbzeEAYWeZ8LegsCh+e6s8qaL7Sy8nkRiXKDCzrNRQIgTfZF06s8Oc0S8o8y3KgYtdJlvZ1meY+BA2VSZ8bDRWUAAABnA0RBRl4DGlvBxrboakngsPLnV4APHQ//AAAAEgAAAAEwRQIhAMk3/v9k+FTE3P2hcIMhgD987ujfO3aPTC323cIHsaJwAiAiac3kjljq9ZC1g4ecm+xeJYe3TUkr1BRFPDooBJ1k9gAAAGcDU0FJidJKa0zLG2+qJiX+VivdmiMmA1kAAAASAAAAATBFAiEAuXwtNYO1Pb2gsZRjoM+XGZ3RyoSP19g7ZnGp6f900OwCIAyRuKUHf+mCcG/umd3L2qruiNwD/8eFfA7ZlxakjDGjAAAAZwNEQUlrF1R06JCUxE2pi5VO7erElScdDwAAABIAAAABMEUCIQCzqpeWMyhOsPVUWQmTM6uSzwb91Y3JDpwHAADI6WiGTAIgexDsfWYJ9R3aU9CDpuFloKvzp34TJQ5vJgdygJtJr/UAAABnBERBSU7X1wbtNZijVKSt/OXYxTg9+ZpEYQAAABIAAAABMEQCIEPb2XWyfRBGlPsy0IKZtA/JPelGOm5zh7Ex84m8ffhXAiARXESEI0kSeYagAYJgT9emfmoOmayfD6uzsWFMOUdv3gAAAGcEREFJUXPZ4zVmlGLL3Wqjra/p7+6Go3/pAAAAEgAAAAEwRAIgN1SGlRcUVnGazdndtknSNfnHiAWo4VqFv/AwdFry7nMCIBXQMfx6rXj4KfFrzCkRepgwX8XKDOisGZN9Qcn1m/ZOAAAAaQVEQUlTWUCVXXf4cSO3GxRQmDWKYFc6x76WAAAAEgAAAAEwRQIhAL3SreY+fBZhzbVdojiDh/qJJbJoGiPKwlV9tHNBKPI7AiAFMH3+5c4C2e2g9SFnOsexcgSWTiTX3o3CY3NXoaRf5gAAAGcDREFSCBExQ0+TBjdRgTxhnsypxNx4YqMAAAAGAAAAATBFAiEAt68Ah3XChdKxJCcCin80yVRrKjNbONaUlHEBhdQojtkCIGW41TrFet1+3VHvPOZzMl0Lygw3iixlk+ce5yY35afJAAAAZwREQUxDB9nknqQCGUv0ioJ22vsW5O1jMxcAAAAIAAAAATBEAiB37sBIIgS0d24z5fJLHNnWDgKXsvVA3Kkoc4kRXcfVVAIgQzkGpTLtdGtiPixihYof6qYYPxhm4VGmkNZRhkrSwLYAAABmA0ROQw++nMhY161uJG/p0BrtIqvSpm8LAAAAEgAAAAEwRAIgEaJpMey8/JdCsOcd8MEdr8JjRTXKJuYj2mHMgw0aPuYCIHWXUvrZ6OGZ4brcy/jG3jHNSbLC3aeeEFToFEMzKdunAAAAaAVEQU5EWZ38S0M9NZAk6z6BDXfWD76LDZuCAAAAEgAAAAEwRAIge7ll3BQGI12ATySKWjP/CdIY3vDib4mZQqAMlbgqZtUCIHcIXvA8RH5tkwJztNoLweghzqcXcwbf24Sjr5mibPcjAAAAZwNEQU6bcHQOcIoIPG/zjfUilwIPXfql7gAAAAoAAAABMEUCIQDL4haVcgVemxidnHzPqqUdI5V5EfYKR9T3IYK+4pDyFAIgN04qdb6oNb4JF0TDOk5644ISMqa78Kiwgkhr0vNlxO8AAABnA0RBT7ubwkTXmBI/3ng/zBxy07uMGJQTAAAAEAAAAAEwRQIhAMUhey1/sGTja+a+EmiXlMpww521pVxHaQxjBGcJ7scFAiBhI8nkv0TlZjZqucBVHrHdkB0cMzXaSYDRGTWTfzKPdwAAAGcEREFPMc4/b2ZyYWw52LaFj42smQLspCyEAAAAEgAAAAEwRAIgF7zMMDN5l8LgtAptDyn3ev4u2/q4bbudf9nG4RKsxvcCIBfSSxdu1hhhqGm/q6b5mUYH02Kaj5FBarjuSF3xiGTuAAAAaARWRVNUHxn4P8miXzyGEmAUPjbBdwYleYYAAAASAAAAATBFAiEA9hdARSbLdpsN4WzvXnn21rS+MNF0SFakdydC/MuHUzcCIEyyrOhjx6Gil0wCmgQr2o4uZR7H290gWqcKTBtOb4H3AAAAZwNEQU8PUbsQEZcnp+XqNTgHT7NB9WsJrQAAABIAAAABMEUCIQD6DXvz4vsCqsKLciDiLCqRdQtyYSP+hInEKEdvoHB1JQIgVUIYk0bccVoRhuXtCj13Bb8dQoTp6g/+N+gXlYXeqi4AAABmA1BNVMEyLYrjsOLkN+CuNjiNDP0sAvHJAAAABAAAAAEwRAIgYXMA8jHTxqHcZla3OdjTOaxNx5SBnDPBkFnaeAs03zgCIGkRzxpK5+Xdpr9vpjLbqHKksBIotl/lad6/Z+naZJSQAAAAaAVEQU9madgruSShcHlQkD4sCmGYJAJOJUzRAAAAEgAAAAEwRAIgMStK/8PW3zn+/Pr2SEtpF7nzT2HdhjiBrdiJUXwibXACICAzbRJ5xaTKSMM3ysvqvLEHVdrt8ZydOr+94RT5mLd2AAAAaARIQVVT8gUVEbmxITlPp1uPfU50JDN69ocAAAASAAAAATBFAiEA0WlDEmCa1aZpUY6ySmkOLWAy+x0s8JxtEF+Sj5phYLMCIC/GMCfNWOUAvZXpI8B0wfUDndN9lYGBKazjmPmzOYDLAAAAZgNHRU5UP/In9kqhfqEyv5iGyrXbVdyt3wAAABIAAAABMEQCIHPFBqNLCNMbAxFl3WtSVoJypERM5PzU+8QAhlB4+r6pAiBmGDULtFVoCC0CEVG3hIwt6Y51dynSP3fyL78zcNmRaAAAAGcDRFZEd9zibAOpuDP8LXwxwi2k9C6dlYIAAAASAAAAATBFAiEA0xuS62eQ6Y01V5GpYpos9n0JB4Gx8wxeCIhm1prjmRsCICh7tv1J1X+AB9s+nNG+Dl0MGala2cA5ERX9pMndEYxjAAAAaQVEQVBQVJYYTZyBHqBiT8MMgCM7HXSbnkhbAAAAEgAAAAEwRQIhALkMB/Z0EyAFlH2tByqRadT8eHrdYM9cJGR2wUt9Ew5fAiAIVLGCr6u1SgMC3N98xdZwZIhIuMj7R4f+gczliDLxWAAAAGcEREFQUJObRi7jMR+JJsBH0rV2w4kJKxZJAAAABAAAAAEwRAIgF3e3NjCOp8aZcb73WjOh71pXNWcdaqNl0T01XMIhi7YCIB0juoMkDp2jOL2qLnZAP8NJ0nVkSku2vsq0hnJaenZWAAAAZwROT0RF2gB3d9hqxtmJzJ95pzJhs/xeDaAAAAASAAAAATBEAiBQcPWKD0GAmmSsTWxJF0baTaYQGfaNBnxQBz2FOYFeuAIgMWUI2vVMPmuDD4V6FvzFthwKpKv2oZy98CvefBVB/aUAAABoBVJBREFSRHCakg/M95X7xXuqQzzD3VPETb4AAAASAAAAATBEAiALciFachzqYgvrNJKkXzKKOI6QoNVVLUklZOqf3vWahwIgNhSzb/2W7K9fZyUZDaeA048za/Z6hj9wB69F8ADR3PIAAABpBURBUFBYANgxjkR4Dt7vzzAgpUSPY2eIiDwAAAASAAAAATBFAiEAzptg/Z8u4rKgnd9Onjm5H6l8IgjVeJS4iDlJpWQifIQCIDtAi6LhF8sr2NiLOrUlE9dBj5zYw9xTo4CE+U3OnkrOAAAAZwREQVBTkxkNvOm5vUqlRicKjR1lkFtf3SgAAAASAAAAATBEAiAzpY4PSSE6NCGrYMtvQyrjARLMaBklQUeQ3gTfWtMrYgIgMfJnoglYJK4dXlqHSgSbVZYAwgR9WyGfoqB0DSYz1yoAAABoBURCdW5kxtGaYE+9tcLus2MlX9Y8nuopKI4AAAASAAAAATBEAiBtjQvSNa/5LONQ5sLlrsgS4Glgcar3N4JOQdpvQ2TyUQIgZhUQtHWfe/9CTLCrVpcaJh+mfStgY3MHZfLOt0Z1SCwAAABnA0RNVHkSbTKobmZj86qsRSdzLQcBwa5sAAAAEgAAAAEwRQIhAJSSMHEZBFuwMuQ5Q/KtouVSf0MGHcod3jsBMGSEDHn6AiAVPyY3X0pro9wzLtEy0mhryVcDzN8p59wjAEEqnaFzxQAAAGcDREVDk5P9x3CQ8xx9uYk5DUP0VLGm5/MAAAADAAAAATBFAiEAtFAtqfUOuzK80WYFTE2icsGzcVHp4PtliGm0VCY+VFgCIDxd+fQEbc/ihZIziSWbutIaEQp8vyowCxxT0YcgMUhaAAAAZwREQVJLMQjM/ZaBb55mO6oOjFlR0inoxtoAAAASAAAAATBEAiAyhP06YlzN+S01nNvwpCpXYLt4fkqpP59bZfLqwEZ+xAIgG4Ndwrcc5b44T7FokJRPTAITV6Or8LGGJLBwbUiFnwQAAABoBGRBUlRaRiPzBajXkE7WhjivO0MoZ47dvwAAABIAAAABMEUCIQDSIxmBl7mkg8Mg0WGFMN6RC7GlTyjm3lxD88YfHnObFgIgN8etIiIujxJfCAqYN0+28XRrri5HO45QMdbjpydH08MAAABpBkRhcnVtYaiI2WFsIiJ4j6GfBfdyIaKQ7vcEAAAACQAAAAEwRAIge5EkumXA13LG03CPcTUzelnXxrakEnQQUD/Hb5PviWgCIBvv3jkcYYWxjoqXlheDTRyjzjfXOI6QHIIt1JkCZBVTAAAAaARLVE9OnyhOEzeoFf530v9K5GVEZFsgxf8AAAASAAAAATBFAiEAwCiANi4oCdR4vkSJcYNmTtZ7gL4RukyFzlLCJ64MjpkCICYvDi3NZp5tbfAwIe5lTIqhC8g6KPAS1GQBf659m+S0AAAAZwNEMlRN2UK6p1gQo8HoduedXNNeCcl6dgAAABIAAAABMEUCIQCFj3Icn7sApAJLKKxsCHSZNzALmBd5UOkZIMW1bro41AIgKwiH9eLb8V1DdJQMk54AFnZUGDFKMoNVE2DkF4ihkdAAAABnA0RUQWmxSDlc4AFcE+Nr/7rWP0nvh04DAAAAEgAAAAEwRQIhANPLnHw3Scx0/re2qkd03qGCA/kx6xlX1qYQb4InFV11AiAZCZ7XCFMCDVXptVfMp6pLtXCrIVIO2gvG7Cx8W8+fiAAAAGgEREFUQTPWO6HlflR3n33a6qcQk0k0TPXxAAAAEgAAAAEwRQIhANRorPg2KMs4/KoEHcABxOF8LBRdx9rJrQtSrZG3ZibEAiAN2Q1tULdICNKVTAswE1NZg5abwh2N4N8r0EsAYS90GwAAAGYDRFRYdl8MFtHdwnkpXBp8JLCIP2LTP3UAAAASAAAAATBEAiAz2vzQZOC6ZezyJK7m/uGuertO16oHU5R+xzXg7FvFUgIgc3BB7G0LjYeJvRgfbrBsb9cBmMHputymvOoXTAIJGX4AAABoBERLWUM40bDRV1Kb1dk2cZqKX4N5r7JPqgAAABIAAAABMEUCIQDA4IyCBg7vMsF1xU+Lc5SViCF5cClRtc30qE9ZioOacQIgSD5tzdShDL06WucFmQ8i5MW5OeNNod3gZfEJH3p+x20AAABtCURBVEFCcm9rZRtfIe6Y7tSNKS6OLT7YK0CpcooiAAAAEgAAAAEwRQIhAMQw7i4TuVHREy1dY26QModMqRbjZABtedXpP6FXgUNAAiB0aaX6G1vC5Sw4rtAeKCCTCYe1b/81Vxkh+0mgs1KljAAAAGwIREFUQUNvaW4M8O5jeIoISf5Sl/NAf3AeEizAIwAAABIAAAABMEUCIQDBXxc9cyRf3vSGxYPFVx+uRohsLZpqkUWdvnD3lrIxbwIgeYMkei0n0Njz7Kk7ICdNuiftfqr1KM0nzsLFfc7HN+8AAABnA0RBTfgNWJs9vhMMJwpp8aadBQ8mh4bfAAAAEgAAAAEwRQIhAMaVgaE9JBwTCY+JDpKs9zpbYdKTve2eg82KUDPF9KP3AiBpr0FX6/tv5gvDv/ekwTOSAThwLKirpK3d2IDCKcv5FQAAAGcERFRSQ8IEZODDc0htKzM1V26DohixYYpeAAAAEgAAAAEwRAIgBn/L7ksvv9PejgwrSMo9qeL18LG3gYmAMksCLzB2l8ICIF6NK6BBt9D+mMcWmIkklnSGhmk52A/TSudA7DecI7hGAAAAZgNEWFSNtUyladMBmiuhJtA8N8RLXvge9gAAAAgAAAABMEQCIDhHBapeNZpUEKf1lgPqqSFCHltvkMnDZrn2/2Rt1kYsAiBgv9DRfB3C+RkGaC0gj7ocO4a56JjQZd4EUBzhe5XZiQAAAGYDREJUwo1DQa2CJOGkJFWAdO8LRRX0JNUAAAAAAAAAATBEAiBVB/ezAVNsCIRDcno6clJet3pxsiV6DGSP+6cged9tCQIgZrogoF2lty2b5M82EYHh1JvyUkAguIdVhonRyj8u7A0AAABmA0RBVIHJFR3gyLr80yWlfj21pd8c6/ecAAAAEgAAAAEwRAIgGZdtvZGexTXdZdpFzmkkCibb/53SYZijTAcrxdO0CRkCIC92DQXHkvqO91nJAWNlntO6oHLCBWhOvzOhGypcHzcRAAAAaAREQVR4q7u2RHto/9YUHad8GMe1h27WxasAAAASAAAAATBFAiEA835IZSYH4CWi/SCVWjNUk4gJo0Jn+0ZTD7iHb3PPnJgCIBudBvXFdTnt74tAyFZBNLxmNqyQ+3yMatVitVlbDZxtAAAAZwNEQVbYLfCr0/UUJesV73WA/aVXJ4dfFAAAABIAAAABMEUCIQChQsJEWm5lgdEagIbNIS8f5kI4a4j35fhBersmgQaIvAIgLEliGBUQzmuXsi3kbpADBqM9Cg2qaIu+0EuL8iarI3wAAABnBEREVEdWzbvuyYKJYs7LPxtpUX1DApXZUgAAABIAAAABMEQCIGWQsZfKxrnKueiN5LKl/SS8XGS3SdXvkjIMYaH5TNG2AiBwb/uSL1x2V7F9aEwzvLSxdQjd+/GF2wVVgz4o+omwdwAAAGcDRFZT3Lz/7uNOsSgzb9Re1i/o9CDIhX0AAAAIAAAAATBFAiEAkd3MzAWtrr/GDW6GLA0iEP0UL3RKtDwS2nw80pNLNpwCIAkvRsWD4OIspt8bs4wXXu6/HBE/y9JCaXXfz1Dm73cAAAAAZwRESjE1XSafrDsuBVKw80zcJTvbQnaCpLkAAAAJAAAAATBEAiBfuqXhmN39mUEstY4/r9+RoYZe+DDOc0j5JIn68bCvZAIgelP6CQ9yIky+TJdoit524qt8FKsMWKyBdokMll5ftlEAAABnBERBV05YDIUg3toKRBUirq4Pn3pfKWKa+gAAABIAAAABMEQCICNwQuM4SityCqrPU+zCz73vFItxn4UPi8yMuqVFbScIAiB8CebP0chGhyuHmsxBTJsK4QRAxMKBXkfsl45UnWrw0wAAAGcDRFhIQokdELVQ0MXErC4XvNfioZxyMPAAAAASAAAAATBFAiEAtBK3W9qup15Bc5eEr9npEOs40kzCrUZFprFPmm1JOEICIGqKLmgl+rEFWM63lmBhA+xMP+JEgB97dCKfGzsYkMuBAAAAZwNEQVnoFK7pYKhSCMPbVCxT59SmyNX2DwAAABIAAAABMEUCIQD378RELAwyN4Txm1EkcKfWy7hpvybyw8o7sufgBVgyJgIgGoA15KmCuRYQZZUgAMrbHFpdbCSmJG1vkrL22rhD+00AAABmA0RTVOOkayvB2DxzHVjKt2XTtFvOeJCVAAAAEgAAAAEwRAIgJnuFiP+Aobipcm7gqXt25IJGb7b2R5QLyveQHH8NRzACICn5D3WB8nqTNh6AAKmJlLVSqxoDXLnu0H186QSrS121AAAAZgNEQlg8vHgNKTTVWgYGnoN/q9Pm/CPasAAAABIAAAABMEQCIFUHe+t+VGfp/2jduOVnAsYfPZT+Bcflf6Bf5c6BBq9lAiA4JNVOShXAb/Yv2KH2wQ+f9WDLvB6osoknSe8n830VagAAAGYDRENBOG+qRwOjSn/bGb7C4U/UJ8ljhBYAAAASAAAAATBEAiByO5A80l0pgWfPleYN1srO05flCx+jMuoumLZkDQ6NKQIgRkFIEFt/9E/XxAPGPp7NKKdUQszeoOGXTvlJPlc1TncAAABmA0RDTDmaDm++s9dMhTV0OfTIrtlnily/AAAAAwAAAAEwRAIgLgM0e1Oi22JlG7Uw+nt58Mw17bvARYLAu1mUutg/wfACIAc16zdXxzru92RJFQUHk3WR/Dol+fMcYh/LZJwyONxEAAAAaQVEQ09SRblEtGu9TMypDJYu8iXigE5GaRzPAAAAEgAAAAEwRQIhAJ7/OCnHbu3VLTPM9mhY2ab3M1JOa1GDaO1oUmMyTNsFAiALt+qNEwF58okpceOmcTx6Yiav2rQdmMaXdC8D3hIkDQAAAGUDRFJQYh148u8v2Te/ymlsq6+ad59Zs+0AAAACAAAAATBDAh9uW9fOAut22xKIJqdMdR31UisIqknboTAkFLOMzNgdAiATytoLjRHPNfrj8Gcko1pXWBEBLGWhO3F7rIWGny5G3AAAAGgERENURLVm6INVWuv1sdshEHC1MKsApLGKAAAAEgAAAAEwRQIhANotT8DNM7BuzOGl4xP8LliHUrlzVuh84cjnNxnIlF6gAiBOw/xcrDXTbGDrlF/WPtgYlbg/wCp5PtcPZu47fjQW7AAAAGcDRERGzE757q9lasGiq4hnQ+mOl+CQ7TgAAAASAAAAATBFAiEAgJTer1I1dzybeFeZCykh15vgUBu06leDT9OAPvh/RCICIG0Art5VOgB5nM1SvaAdviIJNBGHE7FlLJQc2POdTJLKAAAAZgNERFP5+6795xEvePqb/oEzQfD0n4iMswAAABIAAAABMEQCIH82SvwPPwtsWI6vjh3lQQigTJjOl99QjofZmByGs/evAiBw+qA55rjd1touSZeC5+tuBer+s10XeC2amezGvVGrRgAAAGcDREVBgKsUHzJMPW8rGLAw8cTpXU1lh3gAAAASAAAAATBFAiEAxUfMoe5J2TitISWWLMUwwFZ9QKLQZwCJzX3Uk9mc6G0CIASuHi5hxdNsILai0RG0qJ2jiNeU38kWGlbu8HZVM1YxAAAAZgNERVAaNJbBjVWL2cbI9gnhsSn2erCBYwAAABIAAAABMEQCIA/MPxOMeg1ru7KD4Eah52Vcs8O5rMMUG1r4l+FSUp7eAiBzIiBpLlY+VEBlLGx4CXHKez3iExRNcLalVTUh7ZS2UwAAAGoGREVCQVNFkkjEhbC4D3baRR8Weo2zDzPHCQcAAAASAAAAATBFAiEAuDGlKKbr5W2aMhdipw0bmWKtNS4NRsWWRssZErUGWR8CIEWRrMiTvfhFrC8FOZ9n1qzGa8S4ekO85AZCDcylSqy0AAAAZwNERUIVEgLJwY5JVlbzcigfST63aYlh1QAAABIAAAABMEUCIQCk77WZFe2F9GmE9aEmZIslE2InwU73Vri7dVnacipSZQIgQ/3Y+NU6LpwGlnGWQYO4hNHaUqH6gYvcHyStXM4yrnAAAABoBERCRVSbaL+uId9aUQkxomLOz2P0EzjyZAAAABIAAAABMEUCIQDo/r+kQgFzhUrBFv3alIdrUVOgs6WR8R3odhKDUCV7UwIgE/3+CeGvFxPIdcRAIvWfmS6d9+LPRby6cBIpMkZ3vWYAAABnA0RFQzDyccnobSt9AKY3bNlqHPvV8LmzAAAAEgAAAAEwRQIhAOxakFnUmbB3jZHzVVQoEBQGyFkS+z+jjGTKu57lc2mdAiAE6asRtDmXzxbp+CDU3LCFk4/xdjbsFFZmSN0Pz/HEwQAAAGgEREJOQoM4UL6IWHIs/F5edfL+YnXgVdiIAAAACQAAAAEwRQIhAPod2TDzlhCytQ+bvWIQp3FCO4J5TQBVbqU0ELOjE+WeAiAtgooNO/LumsHA1Oh3rDV34aL5Mb8ydR9riNwEP+OzLgAAAGcDJERH7gaoGmlXUOcaZitRBm8sdM9EeKAAAAASAAAAATBFAiEAjEQGHCkEaS1h8mmX5rsgmEjo/Pnx6M+T5eC9m+pN8cYCIA/uxUk1hq/X5y75xIVC+BOjhNpU5Ez7OUPC/fxIUL2RAAAAZQJER0tSDIEuhDBln8nxL20MOQJsg1iNAAAAEgAAAAEwRAIgB+wLx10DmEdEgTNbTi6BD4nY8zsosLMeCZ6x6yrWLnsCIC/O4PDsq/g673amPHUtytMrmKWmJfvOxlM0Y2YHhgQyAAAAZwN4REdPgceQWBskClyUiv0XNiDsyMccjQAAABIAAAABMEUCIQDSOjy0vTxMqzyVoUQrV4oV2mrjH986I1J7bg95g1VBZgIga9lfmeII4n7bTc08YSOkblIOglxYa4W8VCN5H7WIGIwAAABnBE1BTkEPXS+yn7fTz+5ESiACmPRokIzJQgAAABIAAAABMEQCIBXjg/4+fdYdW1u4AbjiiO4w/iAWEWfqWHZGRjs64RmTAiA8RmxHFDTnmZGWsIGPlOISSlVzZDiNjuGerNyprZwpTAAAAGYDRENBGKp8kNOuTFuyGdCigT9EFwQIRiUAAAASAAAAATBEAiBpO46CTjn37ShI9StL5QBpGTiFUCdvjAsqcHcKQNCkwgIgUaokgFpApyEhj1yYMJwYAJwYeMGut3yoXiRCNe+WYM8AAABoBERBQ0P4xZXQcNEEN39YcVzi5sk+Sah/PAAAAAYAAAABMEUCIQDQF6rUNaqHyu/ODXFGOuQ7GFwuPv4xN2m6uBL4evkXuAIgUTvZ3vjWBi4D8yK0oHvcBl9/Cg+aZvZt6f9CjvX9/DwAAABoBERBVFCBO0KK85ICJuBZtopi5MBJM9TqegAAAAgAAAABMEUCIQCepu1TMa65ml49RjsXLJFtaBXNrVYZxO3gNeKDnjaZAgIgN0PPh0BpJ2DgYJk4BmGF+C91QYGGqoYKCnjJvgMI0toAAABoBERCVEMMfiXhXp9oGPoncBB7O6VlRwvIxQAAABIAAAABMEUCIQDc5Q7BhZoSuLEiXnlvVvBn/i+XTe/Jrdn5krLz/5LG2QIgB6SMdQL5IhWZPBRGh+Ql5QVgoMLYXDIlRowRGNqhYY0AAABnA0RJUMcZ0BC2Plu/LAVRhyzVMW7Sas2DAAAAEgAAAAEwRQIhAN8yHTbijN+VCiJJmlLY63Qxx5L+Uuim2bXo1P2HQDh3AiBZAemjceuele3PrUEGabv6gw+1j+NNK//6rCNWCjb/awAAAGcDRFZQjjDqIynZWAL9gE9CkSILDi9XmBIAAAASAAAAATBFAiEAn6z3RNNZItqe1bI6wYe11KAtt7Jtrz+FkPUJdNCWrv0CIEnwL3vHCNRrsN9ap3NcmTg4LUCV/RIAsXcXCl3OgNyeAAAAaAREV0VC5/WKkkdgVmJ/n9uSKGd4q9g7KF8AAAASAAAAATBFAiEA2XqQAK5WZ9HeY1InJajMCjbMXey70tf0OijIsq4uVjECIEMOXWnvi7iUb+zoNbcpzj75nSAv6xN2EWs1mM8jqRTFAAAAaAREQ05UDObVoJPUFmI3x6n/jgVTsCkyFKEAAAASAAAAATBFAiEAgczWCGLnzvZy+qnDLrr0bhFLKEo/zDvRMACD3nQSmkICIDyd9NN+B6czw8A15IHJSW5c0B83aFOmNAqrydYYHU1QAAAAZwNFQ1XTzcTnV1DcHln4NCIAdCtrKUkOcAAAAAMAAAABMEUCIQDpeJjjWlJ88BW5P2rLj+o78HwDIt/1UibPcZkni4jlVQIgTwJ94u+NZWjztSnK/vyd1+oN6genMSPGVbPVK1eAbRgAAABnBERFRVBsvt7E8aydh0mH0naVllRODZFhqwAAABIAAAABMEQCIA0darJ+AetLrM1z7eHzThzNM6FB/4GnG+vSEFiQmoWhAiBxBwQP/B45Vrou6ncqUJPHcV5d+YfdTSrSCgXLQZmfIAAAAGcDRFBS865ddp4VPvcrTjWRrABOifSBB6EAAAASAAAAATBFAiEA15Bit8+Z9QWkGeEfH6Wk8HjvldCcMjCbbqz2Yec6JEMCIEL8bqk1Q9XBO2sK2YPvRTn4BZipk/UUy48uJEq4ZTxOAAAAZgNEWE9Siz6YxjziHG9oC3E5GOD4nfrlVQAAABIAAAABMEQCIHwdN+6r+IpAIgqTg6ZeLqL10LwLJCQWk+GiGZytjXuqAiBMk5myzZ7u6yxZOzykTT070rznyHqeykym2aKQHxkJaQAAAGkFRkFDVFLgvO7zbzpu/dXuv6zVkUI/hUm51QAAABIAAAABMEUCIQD89R2z070chqqf+CvEB6upBmjDwciWmM18pkveDNKdjgIgEMH6V57Of2ljWsVjAcdFqe+qY2oQfomjfszQB8vkQOUAAABnBERFRk/kgfIxHHdFZNUX0BXmeMJzaiXd0wAAABIAAAABMEQCIHvmruQvKkCd7FPa9yuTiYbxmBEhqCQyKMPwfHPtwzzYAiBLdIOy8GFBfA/9jc6XHsXA6l0uEMi6K4q2J/qQXYaHkwAAAGgERENWUvRK2JvLEvvokQ3vn5UpzpGIWtmdAAAAEgAAAAEwRQIhALl8XbSgRzC1/JeOkZ+dH9jhYT0qvaxY53PyW3kIvYrYAiBGqi3NDWvwisgQIDnVVu6lyv4KaIzt0xD3plmqoaJDuAAAAGgEREVGVN7x+se/CPFz0oa7vcvureaVEphAAAAAEgAAAAEwRQIhALsHANOdZMs6wBkwiCgNGQ3FeQ/hXuLGIRIhZ2yx1bkCAiApTAeBSwkwHlUYsxQ7mSkNJe8tyqlzuUjbVXEYevYW4wAAAGcEREZHTOOmSjxCFrgyVbU+x+oHixPyGn2tAAAAEgAAAAEwRAIgXINU/0JEsEWT8cIgZOrGMqre2bX7AiTe9KmXZIJDhhcCIH/zjz4JRBWbu4mJRo+Yz4W9BNjZyNLIohWhEq/MPjqdAAAAaARIQUxMyql27Hq7fYveUpq8khff21dPZUMAAAASAAAAATBFAiEAp3MJexVVwReUw+crRffG28lfuCnjdgJsP5+2zFiZxywCIFHHLCSHOI5r7zPtvVP+yg0oAGtSkrsgTT43dzGEBfmYAAAAZwNEU0QeOiRGxynTQ3O4f9LJy7OakxmGWAAAABIAAAABMEUCIQDemk179HPO8ycyYPXVopJZphhj+34yY66/JJ0PIZ6a6QIgHOGhWfYE+/Eui4wNgbD0Olt/yfA1VYVXyXqf7V72eRkAAABoBERvVHj6taBckz8aJGPjNOARmS6JfVbvCgAAABIAAAABMEUCIQDuUO6revQ3qRD0ZfGjvky+tQEiiFpV2TEgEAjEMFNhUAIgOhlfc9g4RL/jA4OIVkyXFQlWpJCFmAkwqMMoD/nPH6MAAABnBERGSU/uO5tTH0xWTHDhS3s7t9UW8zUT/wAAABIAAAABMEQCICZCDXX0mys7PUk5IbvslIjlRAHMdg2Oc0jiftYDa5T8AiAcbp3F61tdbI3eJQajSXEy4KAs03OqlnE3Ykluz9Se6gAAAGcDREZNDM1d1S3uQrFxpiNHjlJhwequCSoAAAASAAAAATBFAiEA+ULbU0yseM0du/pivxM33NOot8LtCF2TsjDvJ9QPBzYCIFlvbZfR0piZX1f2z8iHLtvvcsWOpkglBcx+iXpQOrRuAAAAaAVERUZJNfpt4ml9WeiO1/xN/loz2sQ1ZepBAAAAEgAAAAEwRAIgMwS9qqQOWcF/Yqfzk4v0//xPcQpB081+eD/zzqUUa+YCIAKJtxsTkLEHF7hHGhpYgSslnTkf/4ZRY5IQ3IiRVGCUAAAAZwNERlS27mA5M+Ak2NU93j+qC/mP4qPW8QAAABIAAAABMEUCIQCJNkSCV8OkJBfrzwvc7sqKVkC4Ho+DBVR6qxOhOZJ9CAIgAvznVs3QDKTLL25f4fQZ9hZ7YvhuJrQQnXn/wot2D+kAAABnA0JJRB2gHoTz1OZxbydMmHrkvuXcPIKIAAAAEgAAAAEwRQIhALFcKMdXsiw1/Il1AT0Qzmk+PZBM1WsjVVXdOpR0/IViAiAkI2S8x4jzV70zKp/XPkPS+EGmbWmtUVR7SmmY6RBCLAAAAGYDREZJj8j4Jp68o3bQRs4pLcfqxAyNNYoAAAAIAAAAATBEAiAOrxUN2fgSE6H6p3kmclrNe18fZ9EcNjUKlx9GuMNK7wIgabUlbk5WO9hqQ7K3MsjDQ5xSX4+A0wZ8hBHWsZm/cCYAAABoBERVU0Rbwl9kn8TiYGnd9M9AEPn3BsI4MQAAABIAAAABMEUCIQDrri+yC4SkeNkGlqnveapdqUP6VxTJb3E4FaBGzVFo2QIgbbcLjV+IhzykLml1Cfr1o7K//ZL4B24EgISp0iUGEdkAAABmA0RGRCDDbwYqMYZb7YpbHlEtmhogqjM6AAAAEgAAAAEwRAIgDdj+HobnyQDaWsDDdNnD2CF3uc6IEbbsJ0U+hMB7ajoCICXV8xIWUrhB/Do3Ow9UIEhowlztquDGKRbFVvCGgfyVAAAAZwNERkuhfeCrCpe8Xlb6iznr/IHMPx80ngAAABIAAAABMEUCIQDwsOI29U+1z1sSE0GFUSUb+MdIXw4xSJ2zX8F7YwKIhgIgRHbMacFWAzR/2FMqyc4Chuj8bgF9D2lfOS5nG2hGrqkAAABmA0RGTAnOK3RsMlKLfYZKHjl5vZfS8JWrAAAAEgAAAAEwRAIgOJThXR2pxctWEFysQJCgomYiZG4u07VX7kEKhSNzEtICID5Q8UbyWH8mbAGpt4nhDtG21zgHiBhcL+Je3twdwFyIAAAAZwRERklOhPQrx8qzkyvfHHe7CFKL/yCkQYAAAAAGAAAAATBEAiAa24/SZCrxioDd9KMt91XHk9zUwkI1muCW+A0ChZ2hTgIgU5Wj8iK+t0RmK2gGRch14/Gomo43PGQr1omL1VfbvxUAAABmA0RGQWKVnGmaUuxkdiLJHnnOczROQJn1AAAAEgAAAAEwRAIgM412tYEv28IP9GfDPybds9w8TpGzhakKwoVGUpehlRQCIEgLKMA6e3FGnAsfFyc0SUgzUnHXlr8BpkPCkYuD0+pVAAAAZgNGSU4FT3a+7WCrbb6yNQIXjFLWxd6+QAAAABIAAAABMEQCIGV415Lc3cgijKpz7X7pItkf9wNtDyBqYGuW7j+tjZ25AiAnrhqJhmzp1IompbmBH0zoA8gcGv/jZjWgmrzySLYJ/AAAAGcEREZOad8naiRCzLvfBwdCdmhDTW0TC3XrAAAAEgAAAAEwRAIgAvvKze2Ok64c8GhrbquTxZeiMJOhLk5qJPi+GGORTcECIETqvVZyDPXZ7RDd5Lu2RL0Qqg2GR3927lH69oMkOuSZAAAAZgNERljx9d5pycjZvop7AXc8wRZtTsbt4gAAABIAAAABMEQCIERG3ZgG8aiMEEhF6XVuZOun/Cpc2DtJ2R0hv1UAiONyAiAg7mfokt3ekiwNx805xoU1NHnJj9ioNeoZkTD1alvhcwAAAGgEREVGWF9HSQZje9zaBfKcdGU/aWK7D47aAAAAEgAAAAEwRQIhAKySRRU4Vtki1jsxMKycl4pC1l3MmE+MS8NCkBrtZq0zAiBU6zScOtAlQQfOl6fsUW8Qpgig81qP5dvWWeGZ4oSDmwAAAGcDUElFYHx5TNp377IfiEi3kQ7PJ0Ua6EIAAAASAAAAATBFAiEA6i9SxZys6qSQKgdfT9n7vl90YF/MGCZb5G+uczO2y2ICIFoX6+QH7rovKRo8iT2TACH8VrMJkBl6IFCCd654T5bGAAAAZwNEUEkUlMofEdSHwrvkVD6QCArrpLo8KwAAABIAAAABMEUCIQDdXHx5WLmzdzA7gW0Y5xsvTZcSXBtPTKaK46VVTfiRkwIgQ7vzwBUgriQk/eMSpPqGFYVrqrwO9XWUeatBpQtKWKcAAABoBENXQVDnTcQ4Z+DL6yCPGgEvxg3Lvw4wRAAAABIAAAABMEUCIQCnTzLfyLqEq+tVqzlLJpo09TJ59qba+gjjT/HHVrMCjQIgTsCVL1NAQDhEVe+90xp5JtG5+WjHCb+5B30mjPxbqqcAAABnA0RGQxsqdtp30Dt/whGJ2YOPVb2EkBSvAAAACAAAAAEwRQIhAPmZNaT6v7vQu3iHSPfPdpr+w0MrmXKEmZ2XRQZKOTA5AiAEthBmCB1mf36K6vmrTypMidJS3hELMOvCj6TzRmjIoAAAAGsIREZTb2NpYWxU7gG+tg50UynmqHEa0tbLIT441wAAABIAAAABMEQCIEXx00uEjl2NmF0LCCBlCYGA59HA8d3sPwWA+CvDkK6zAiAOO9JYnJJmHashFiVCFPV0PCR1w9jlWdHARoXVojXTOgAAAGgESVNMQSCmj540B2stwVznJtfuu4O2lHAtAAAAEgAAAAEwRQIhAOq82B4jDsQola7aBOPUM6EElfTh3iHBW/9lMk1Nr9osAiBhzoTeQmooMNCse/zcQNWYHNXmGHUWroBgAD47mSIK+QAAAGYDRFdafe5F3/A+xxN5eVhsogovSRe6yfoAAAASAAAAATBEAiBOakCswiqgjiIUGHVZkWt26uRflHBcn1+/N0wxhWX4+wIgfI/VWPLCv8ygILryTNrFnC6c4YOcFj6Ngiv/uS0mWtYAAABmA0RZUJYcjAsarQwLEKUf72qGfjCRvO8XAAAAEgAAAAEwRAIgKRYE1x8RgmgqXyGqBvwri+utvI34LHjIroRZP4yiCVkCICZlui6ko8xkpYHD5OBvwuwdh/yuys7AU9I8+hipMUl7AAAAaQZERUZMQ1Q6pfdJ1Ka89n2sEJHOtp0fXYb6UwAAAAkAAAABMEQCIAjsQrmDArKgFI0aqkkCNSBCt84swCpFEDHKWDcjtagpAiAkQNsePf6jIUdgF3Q+KMhQXZUV5+cVl+sLL79dHJKg+gAAAGUCREdTyDlUZahJVclRWYFEYUZgU97e3gAAABIAAAABMEQCIDjB9HTRpIqIibT+QzH4naFi8e2DjqRCfUy9o0c0YCluAiAcsTlN/hTLRN0KvliXinCeBTOmPnAiOIG2VupaPxI9ygAAAGoGREZOT1JNHuAWVGZTA6XdJ0TjC1dpQYgOOnMAAAASAAAAATBFAiEAmnR3A1jPs1kQj7xHzxo+5qWt4h+4K7uhcfZViUjw82QCIBIKS1SdLiEB7MRII3FucM6KNfSu4sMpPI05L7CE5B9nAAAAaQVERUdFThJsEh+Z4eIR3y5fjeLZb6NmR8hVAAAAEgAAAAEwRQIhAM0kybZz3bGLRnXy2k9vHnZMy1+9tXiS2DZfSDGiOTtyAiB+PeUt0Ra/pa2LwO9NQ9Qa0yhzuZ/Tji60CjGSOG6mJwAAAGcDREFDgoHuN/FkwOJua2+H52lbqsJW3wcAAAASAAAAATBFAiEA4ucrJXryT7PAGXPbMiechU1PXlNlwKtIdXBiUwapY54CIG83I0u9XqOYK6b3VYmrJfFRh7rutc9oGX99gzdGk6ibAAAAagZERUdFTlPdA5mQvVUc50N9O/VNFVIgt5iLcQAAABIAAAABMEUCIQCt74DfcdYZ6lto0GDTwB0qHSbDYuSK7Yyu2QC8ul+trgIgJaDptAl7X6DPk5mglmSz0JVI1DdBDcEq8nYNJrfO/F4AAABnBERHVkMm5DdZVRMz5X8HO7B3L1AympV7MAAAABIAAAABMEQCIGKhUZXikYfbq2Mrp6BcqwQQaE2vTxgLS8f6iBJ+CWBBAiAhpjRqi8sdwaqMz8nrjENsg2v2eAEdUtZFWOKVnyE/dgAAAGgGREVHT1YyPakyRW0ILLogj+sLCW1JsgK/icgAAAASAAAAATBDAh9wqSRQl1r7XpfSa44Lm+d0ioOvVPOisX3fT9TANN9hAiA+erWyeNYTEBcVmOUU71JXNXlGrLvJFibSEioVZQS3TQAAAGkFREVHT1+I7yfmkQiyYz+OHBhMw3lAoHXMAgAAABIAAAABMEUCIQCmu3JDxuRNyPei+CWLUJBkEp3BDAMpZMzevJyZy3oY6gIgJ75F984Yuuy4xSIxIhpaJ5KbrorbL6u4FWt9lJr1XxUAAABpBURFR09WRp5m4G/sNIOeXrEnO6haEZuNcC8AAAASAAAAATBFAiEAqQon01ddykzlwGHI96vXgfhJ33ZABQf7/2APOzjlpDcCIDRkvrY7vgo5NfEihC12kgHvatnDInPgxJXATg8pgI0wAAAAZwRER1JOceNo7QaBS/NdTmY+/5RkAKW8gRUAAAASAAAAATBEAiBILbDT9bjiEJ9cUFRn07wuPBaHqMIRZ203nK/y4jS9QAIgCFZKyyjerg7RU+xpSHN7GAJ4VW+Xih6TJv8z6DG5MDEAAABnA0RIVmLcSBdYjVOgVsu9GCMdkf/M00sqAAAAEgAAAAEwRQIhAMWVdEfkDDsquZRJIrPjDC8+sPWEjIo+t07z8el2WiCxAiA9lmnbVMcxfdq8COqQr9Qv0SZf321xrjnLGUxBG6w3BwAAAGYDRGlw0VF2Y4g+KswVQXj7GU6A6LvClzAAAAASAAAAATBEAiARBle/HgCiVjpAfHoWH77ij9HgDQFS1K3i8nN3UbP+BQIgdgHlq8dBGFLCZhqihVNRvPRjwdFpDDfeYz1aeXd68HwAAABoBVRTVUtBxfs23S+1nTuY3v+IQlo/Ql7kae0AAAAJAAAAATBEAiBS5ziVxSH4ks54oKK4nTBpHiPmTTZHbbAw2CmmkzOiQQIgM3q6/1zxYXPMODQRPFjq/d1TII9rNdAK9bJ1w5Z44VQAAABmA0RUVPn3wpz98Z/PHyqmuEqjZ7zxvRZ2AAAAEgAAAAEwRAIhALRQVTqtf799OliqMzQKP7SkeBUnNSu9Q2jzQE6CUBFrAh8js3MJYAnPnrEBkMqz6dQKFc8Dfz2VyANcFZpZ6kknAAAAZwNEUFlsKtwgc5lPsszFAyzCkG+iIemzkQAAABIAAAABMEUCIQCSX/5jqAOXEDWp02dDaiGYxWpvEbwK410NMQAR1L9nYQIgPBhQ1chMsvIx+dMSnrV6huEWzlr4aGXWe+OH1pnO1SUAAABoBERFVE+rk99hf1Hh5BW1tPgRHxIta0jlXAAAABIAAAABMEUCIQDvrNzfUtGJUrbt/bWCQYEZhdPSGBbtkDJv0aZOxMxs0QIgMk5sgsmn+7og1xpETgkCffNWUEjiUW3YSkgKixvYuKYAAABrCERFTFRBckxQ/PxDTuW/+SQiLghKiHbu506nz7oAAAASAAAAATBEAiBroHGcoUN64WOkeSyt4NLYo7zXsx/J+mMLsA7bvZq6RwIgIIAIMrAAk67pUU4AXFtFIqm7G3tfNGws3YvGBSMn3JEAAABpBURFTFRBnqO1tOwES3A3UjaigZhhBkV7IO8AAAASAAAAATBFAiEA9wC3IldaMtlWmSTPsmT6xGHquX2xjzHuElllZ6yq7UUCIHKUHwK3pdYXTYzpZeEmzTKN/ep0hFBnZ1x36OiSjwZ6AAAAZwRETFRBAAAADeQN+psXhUy8eGnYD5+Y2CMAAAASAAAAATBEAiAiSX9O31Iild/I8cMtsCSlZLXCf71h4bmk+PxEuLWB7AIgOvbWfVzw6pBagzg4SUZOrgRPA35hYhrt2GJlgeJSzlcAAABoBURFTFRB3h4K5hAbRlIM9m/cCxBZxcw9EGwAAAAIAAAAATBEAiAoBCLmB4TiR4JRNcsyoNdbcp0VQe1gzNisjeADJ3mTSwIgZOLPhYRc+ThqbPKK6d6n5qyIe1sTcIPYphuFsI6O4UMAAABnBERMVFgENTFrOrS5mYVghcmMOxqyHYXNTQAAABIAAAABMEQCIFkaVvSMRFcsz9milqtbdsbwu+3hT6wmXKZgqR9t7S0NAiBJXl8WfLDba7UIBUcqKPBDTErTqTkrsH/EgWtA7femMQAAAGcESE9OUjnqEOUHcgeDwn7dX5a/LW4ZlXm4AAAAEgAAAAEwRAIgYKRNtpySCbDH+SMzug0A89W8+mph2rBY4lKKHbkiJRECIGxChyIGot+EL0l2i9IJX2hOC+eqwHtqFN1CfczA+dO5AAAAZwNESEMVJoe8Sn/MiQSc8Rn5rD5azy7n7wAAABIAAAABMEUCIQCyX5X6s1AmwsHfj8t+gdiUWmeR5HCDwP1WgoYuPLo7rQIgdBF6JsvnDrf8ddRNHziXAdJr1IeNFZ2qwafc2Xz+zNIAAABoBERNT0RfbFwvsonbIijRWcaWISFeNUIY1wAAABIAAAABMEUCIQDml2MH9QCyD0oQHiXpwGPXKQjsmE2slPJWLt+RAqnoYwIgWxa+k5PdCcM231abSdV1RKXZ1mg6ydonQlpqeUC7DR4AAABmA0ROWOQ+IEHcN4bhZpYe2UhKVTkDPRD7AAAAEgAAAAEwRAIgRlLeUgz/xTEtFWDHljuHrA7qITqKHMDFmoG4rXU3PB8CIAHe/b+1P4T9pc1HunWaL2Tg+ZcqIAOTWlS7mf3fj39sAAAAaARERU5UNZe/1TOpnJqgg1h7B0Q05h6wolgAAAAIAAAAATBFAiEAskWII+WSrunums1oOu/hM/tJtzgCxdHG9SBbDnr7zC0CIAX93I6M99Yq9iLvamu18EJ1mJvrbdm1R4Max4wWkf1tAAAAZwNEQ04I0ysNpj4sO8+AGcnF2EnXqdeR5gAAAAAAAAABMEUCIQDsYwCP43Ht8IxzDCpQD9ZbmHGEkdYFYcMkRpV4Qwh4ZQIgErZG/VXqn6DPvvSlQHERiys8O5/OZt7+Bd9dIhQymE4AAABoBERFT1Jjcm2ufFfSXpDsgpzppcdF/9mE0wAAAAoAAAABMEUCIQC3dgBhP5zzUQDnpcrcnowLvMVyQFhKmmy+jQ8I7Id+OgIgC+y4hQBuiIUfFl8/DrClu9wUU/vJ7XKwBQ63z/JQKG4AAABoBURFUEFZoL7RJKCawr2UGxA0nY0iT+PJVesAAAASAAAAATBEAiBz2eBUHKb1tHlq4trD0xrGNq2SfynyXSMyQXztv/9qOwIgSbkROFIaxplhklISK+XyGI0vttN8yFo4yJLJna1SSDMAAABpBURFUE9OicvqxeihPw67THT638ab6BpQEQYAAAASAAAAATBFAiEAmlH4CC/Dti98C46JOqGJSYMqbEikN0YQfBOvJaxvO4MCIDOpfpFGaD7KXBTAf4gaLy7pVSLmeBslMFC1Cj/iXq+yAAAAZwRERVBPpd71Fc/Tc9F4MOfB3hY5yzUwoRIAAAASAAAAATBEAiANRMmlfhCFBSB+aVRVkWBcdjOT6nEntCwr9+XKvFmdeAIgZ/n6HgbzakN/c9jvu5UIIvxyUnjwXhVXPva0GeMIpdIAAABnBERFUkOfppU20c2koEz7UGiClN51tQWprgAAABIAAAABMEQCIBnh56Vy53RjjwpzXZM3JXN2m5vFE4MsGr0dQZHpT/LwAiBtD3LifU8VNgpKpZ+ui3gIVP+DPe69gCFc662qLVJhxwAAAGgEREVSSaSHv0PPOxDf/Jepp0TLtwNpZdO5AAAAEgAAAAEwRQIhAOeKTuD7PB1cNwEgOz5+duhtH1XPAPUNS40Sy/2TSILGAiA5itsNSh0QUPqQ7pekzHoVfE3ocLu0UmYizodTzjZ6KgAAAGYDRERYOogGUvR7+qdxkIwH3YZzp4fa7ToAAAASAAAAATBEAiAeY3WfIa+d/wfWv7gj2v4UnYgi333i8z+hVtCKnFx5NwIgDTRBLUnoDD8ecIgUlfI5/ar6ZpQxnxBnj4zTVKdglZwAAABnA0RWWJdXaVV1EBZ9Jb7tbjKAZTcXPiksAAAAEgAAAAEwRQIhAKTZPTLFJIzaRL3IZDc4lFP6egeOrPtg8/MU14VPJEKBAiBA7t+X/zkHK1UDE/JLb+w9i4fMtyk9JVp4ZftuDEu5XgAAAGcERFNHTlN6kJW3hRdZe18gWO3Nbhl4CVkJAAAABAAAAAEwRAIgAaqfFN1+1dToq5adC0mIENeAcv8u6FJPtQxvxloVxfcCIEoo2S+0cFl6LlTtdzS+N+4YR7xBMdD9RmSm6pDHBTPaAAAAaARERVNTWoC1CgQgolB+M1CKk+CqA3/JBjYAAAASAAAAATBFAiEAhNNzJwzjZCwfapWRLBJNCRr29SG8EjQ6hv6hG4HaLIwCIDfl+PIftZNSuXehfliET33wQaAmcBg2InMptRp893EgAAAAZgNEVEha3JYdasP3Bi0upF/vuNgWfUSxkAAAABIAAAABMEQCIBmskEObRrRPrmUH7rFwRWLGgL+NbrwoIOeKhUbs6S8gAiAclgLw9/hCPxeuHVclKsRORAazGooMQAFzPsLJ8GaGHQAAAGgEREVVU95e1258BexeRXLPyI0azqFlEJ5EAAAAEgAAAAEwRQIhAMHK5uDa+zgnKF7S1O0EfiwLSJtWb1oLDwwx2lRfbkMiAiBOYG7zrjww42CudYMMurY8miI8SB+d+zsWAfREjhVN/AAAAGkFREVVU187YvOCDgsDXMStYC3s5teWvDJTJQAAABIAAAABMEUCIQCATb3PB5gQ2RtLiqckgYBGBEbTXhYKTMp/V3yjJcSONAIgC9K9RUoeab7sOZvDW/FZ5PD6qF3KtKy77bPD65HHvU8AAABsCXdDT0lOQkFTRUGFz5l0Wyogcns37nmBk91KVs36AAAAEgAAAAEwRAIgKAOxUXf8WqDcPnRwjttE+OnmrjiqJQGJuK0Krfp+hjgCICqx/9GfZymaqhbUUA5yTxIHfnrrFTO85/+sJyHkJy5CAAAAZgNERVZcr0VLqS5vLJKd8UZn7jYO2f1bJgAAABIAAAABMEQCIHErKm5PtY0jDGXz72YgRKlvwt8QY7ifPt2fxJvrrnhKAiBiFyJn6Pn3h2bKqeuqV2OWbO6YJ7WaBHZkUhB4qkj4TwAAAGgEREVWQX7WIdN+MCFNXhl0VPCLHFyVWFF6AAAAEgAAAAEwRQIhAJeSLnOhcYSSjfgMl0jdyj005itGJI+dEqI+6w1sxv8WAiBEB5M2N5KGh9s+RrGHyBqCI0oaZX7GtO3aHDNdc90SjgAAAGsHRGV2Y29uMt2U3pz+BjV3BRpet0ZdCDF9iAi2AAAAAAAAAAEwRQIhAL6tJU9pcQgR/l7cZbeAFt6TdI034+X6QBLsi9cCQWAkAiAF3qZDQmajA316csyDm/YYIM39ua9eqHn3wOI9DFzfbAAAAGcDRFZG3d3dQwGgguYuhOQ/R08ERCOSGRgAAAASAAAAATBFAiEAvYpVwQsCu+cPcma+f19ecTIUBiO23j+ie92CDxG6oNkCIH65GsunwsUTHYKF+eui8NBryb47Tfwp0FsPJao7YgpBAAAAZwREUEFZ5aczaBu+bNjHZLuAeO+OE6V23XgAAAASAAAAATBEAiAtGzFPpB9+TMwT5kvSUxoTAszWgLkmbcVcvGMn4Ki6CwIgHmZFPOMNQycgoLRkEMJ7SMgy8KteLFX7N8SNsBXhWjgAAABnA0RFVyDpSGd5TboDDuKH8UBuEA0DyEzTAAAAEgAAAAEwRQIhAL9DFyDN1ENytogftK6xatUNzaFuv9RyNgK8/Ba4wzXCAiAI1EX+kWEzEJrYceTcQ7ztMjeoN8MBf7RbAtuJZ+1uZgAAAGcDREVXNL2GsRYuDfs+HPZt0ekEidKSKAsAAAASAAAAATBFAiEAgumCKF9n3T0gNrhFCV7hYtlVAsrsfK6JQJhWRcDRHnECID74Pot9NkMnU3P/b1OrS2f5N+Nnt5wSrhWESESx/lE+AAAAZwNERVhJe67ylMEaXw9b6j8q2zBz20SLVgAAABIAAAABMEUCIQCXdvgqsVc8UnBSOXtbbTbskUm7c6+2r7GpgVg+6MlTTQIgHzPoE9lw4rB/8PDPESa5VhzRr7JzVuGT4Gq07BQCnYQAAABnA0RYQ7Dplie8Ka3vEXjxYRe/SVNR6BmXAAAAEgAAAAEwRQIhAJ52HQCyE1DIxixphFhQvnhFETOAnLHliVrGeGo1L+8zAiARmC3l3EU/OTiHxa3mQ9SEFzwgP+1JHnVGyUInMevqNAAAAGcEREVYQXJUQFEst7eL9WszTlDjFwdBgjHLAAAAEgAAAAEwRAIgdick7hjil+zcyrcNfh5itR0DMlgOp1G0QWvXjcbM8VsCIAtcv/I97J57sGNaM+fVq79wT6VzyUDzUhrBcf7Irb5HAAAAaARERVhF3k7oBXeFp+joANtY+XhIRaXCy9YAAAASAAAAATBFAiEA7MhJfNTv9GORCAHVCTbiSL6qFR3nctXtv6R5m1CeWsMCIF86pE3vprDNPx4X6pINJDm3rwpIjB6++doXle/yiUsGAAAAZwNEWEYV6rt1AORLf9tuQFHKjeykMM+fuAAAABIAAAABMEUCIQCHnPgPLsBJqEHPXBRkV/DF+DE9VsqbqNx9T/Qj4J58SgIgFQWokaYEtT3+fj+zk/iNxggqtC75Z3g0g7VgR9Eu8HIAAABoBERYR01m9z0P1BYc+tQwLcFF/5lDdcE0dQAAABIAAAABMEUCIQCRuKmXwDJkpi7doi/JTtSt4kSOlgjcjGgke1iKjXXxogIgXmmfzlrcULb/3kMrSmTU2R89TlSg5D+4xaSQwsMI8nEAAABmA0tJVHhm5Ix0y/uBg80akpzZuVp6XLT0AAAAEgAAAAEwRAIgOHBwSjaEshaQXgcnsEC/xvlvnx4WolxfKP6OxBOp4dUCIHB1WM+pPAUd9dNmAK2a7gkn63KzpKu5X/+bfSofjB1JAAAAZwRERVhNACDYAimHe0ldK/MmmkwT9vHhudMAAAASAAAAATBEAiBciacIUS13H/9k/TmCoq4lVy7u+QNT+zchau+hr6zOCQIgTIFqrsFswOrRRAa4a9kNn5xg9LYH4cDjbEQzlHyFsC0AAABnA0RYUmXMonkQhydoVumbFLwB9GZMNWPdAAAAEgAAAAEwRQIhAJPaL8GdabGho2JbnGr9GtFKfkylgr/Esg4zjDpt/LbbAiAn11Q4OtVoRsmU97SLFSzcZ/g5u1GpPKGF8hllMhlN8QAAAGcDRFhHRXHzo4bRvRjiXXDRF+cGf6C9nQgAAAASAAAAATBFAiEAvGibVRGtvkuPB+y8jmnQGY0SqDJfnLrIaRZFMGFqzvQCIAFOiod8Co7DyYf2GTEKMnVjXc4P+S7BcPTu7mycuPkrAAAAaQVERVhURl9kqxVE0ocy8KJPRxPCyOwNoInwAAAAEgAAAAEwRQIhAOTarv7xTdQZWwQZjvTXJfGzKUk2y3R9TWCG5CNBB9MaAiASMi2n6ykmghPIszNdhmXf4LV79sFc7QARXqkhWjpZSQAAAGgEREVYR7gdcIAqgWtdrLoG1wi1rPGdzUNtAAAAEgAAAAEwRQIhAPfqyMnwZvmRMBBB1subYVy+FYZxjvJ23v3MTk8dJDrJAiBirEPNZBLCgtXXPZvdIB1qu4Lcaxx7fs6CKBwfdYh82QAAAGcEREVYVPt7RWRALlUA21u21jrmcTAnd8daAAAAEgAAAAEwRAIgASa4rVZLL6KawllEIuD6OXbHccO/hvBZmVv8RPXicbcCIH0fc+mtt9nNuueLEDDN5jQpRZxU1OlTQkx0PNn5F+mOAAAAZwRERVRT03lwCZn0gFzoCqMttGqU32RWEQgAAAASAAAAATBEAiBjDt/kC/vYmvER/fRe68VwS8HQk0yw5oTknOseKr5WEAIgBTD6cRy8GJi6SoGVx2GwNxmbvPNeK6aj65s/pRt63f8AAABmA0RGRdNc5P2BVSL/UiQ+tYcCDVV2F/TbAAAAEgAAAAEwRAIgfLbk6rwqLphyRm+p0GS0rAjIzRyTsV0+K7aeXHMfkxYCIFEHRnyZ0G3WjFxHM6PyodILaCn3mYjW1ud6WLGfitJKAAAAZwNYRknk6CLA1bMp6LtjeXJGfS4xOCTvoAAAABIAAAABMEUCIQCA5UP/y4AG8O0Dxfv5SkTKmr8jWPWO1iEs9ieLN83c9QIgQsAV07nMao0msXKcDQLsREX3g18KzOXI0G6J/m0FzoMAAABpBWJ1aWRsexI/U0IbG/hTMzm/vcfJiqlBY9sAAAASAAAAATBFAiEArNyBffas0E7f3q9Hjz8UEY8oywExmj30MiUVrm4xFBACIDZEkAcECZo4VUybOqjaPUrQukPsscDZBJu9BmxkVBHwAAAAZQJERkMa0v9qnDZYBeutR+4CEUjW99vgAAAAEgAAAAEwRAIgIg0TrJFkt23LD+B/Ey1vTuoM3o0zKCeNzgiiAWjWcRYCIBl+nxkow1wGFFe5KS7WfcPBfbc3QsPnAq8Q44uEreOjAAAAaARVU0R46yaXMqt1pv1h6mCwb+mUzTKoNUkAAAASAAAAATBFAiEAup6+P8seufLa3lSfnpCHziYB+muXkBrBXImL8FmcUDICIGEdm5CCW53l7qvbUwm69h3HEf0z6wKBtt8UjXw5gNArAAAAZwRERk5E0q3ByERDrQbwAXrco0a9m2/FLKsAAAASAAAAATBEAiA7QhFpIuY8Mg268hHfvVaHUbYbdavcUWDpv34UcOTngQIgIoOejNtChSxLAM9kb+XP/D8pgsHRnJZdvn7vdYmxp68AAABnA0RGVhTpYr+AwflYL0MhjlZEPsE7AS0DAAAAEgAAAAEwRQIhAKU3yypIF9pxpCJtPTVh/MmXIqBIaWIWISyAxApvpDcaAiBG3eYXf82MA1SawglYUkyrx1Xbg3hEWdPps2npOOZ1bwAAAGcDREZYiIiIQ1/ejn1MVMq2fyBuQZlFTGAAAAASAAAAATBFAiEAx3FmXuo4FUZ1AKS8FrVAbW/z6cM/SNbvQE35JgcotVYCIH3phwGZarFg9EpnrkbkvvcH+n7PrFqTIj+KDfxGrGz8AAAAZwRERllOlpXgEU4SwNOjY2+rWhjmtzdSkCMAAAASAAAAATBEAiA6+3yaXPIVSev5EfCZ1ANUunxyKz9QrUfuDHFyNIP33wIgDBr5CAb71gy9jLbNFMQCCKPj++bUiVdz6pqrNNMdqooAAABmA0RHUJJxWWcMUAQhCdfA9K7QzuiUUkM+AAAAEgAAAAEwRAIgfLqbmckcfELZ5a6TJSo5/Khy+0Vkliqf14qQ5V1963MCIHPiE1ljVxn6OroO0g4g2qVTJ+QqhYTzRs4q13Pq4adOAAAAZgNER1hPOv7E5aPypqGkEd7319/lDuBXvwAAAAkAAAABMEQCIAy2T34SyOnvNdHKV3FHCWo8KpdSSfnqHwZqdjlnMgyzAiBdKJHJv+RCnQvKCLVGDRR6NPwckss5ETQSM7zJWll6FgAAAGgEREdYMVW5oRwug1G0/8exFWEUi/rJl3hVAAAACQAAAAEwRQIhAKc+/1cB7aet3AEZ6x5epriBpVEy5Rxbzsnq5Ul+3f2DAiAg8+4cy8ZRFhKGvpgha6KfsksnaniK8hrYVMJCrxANJQAAAGcDREhEILS0Hdrs0YB5i9QyK6lx+hpU5RIAAAAAAAAAATBFAiEA9KGB9D9gqIdKQ3Ivrjo07SnS3fTul+6FM4qDk1AmXl0CIDcQ4h8f4SzaNnpyHPoP2fHxoSUWdmLBR097378bWba5AAAAZgNESFTKEgdkf/gUA5Uw19Nd8OHdLpH6hAAAABIAAAABMEQCIFSXnegvu5yd1oDdJlDUqwE8GrGtSFDm9YS0H7W4oS+JAiBgVysKtfdgjEsXdmjIL7hXQbrZJnsecwC90rOpQxQ+0AAAAGgERFRPUA9MABOWAqtQK8fBwOcdbLcqn7DnAAAAEgAAAAEwRQIhALXnUfoLwE3zwD5MehOohjLEFvaAQqGbHppyrdUbScRsAiAlooV/sjYuyen3zxfx6bdai5osAeYB5qYIIBooREvCjgAAAGcDREdOes6ErDlOQfHAFxHtE02bvPp3DOcAAAAGAAAAATBFAiEAj1n6t1YKNTe+ahX4Nw33kzU792FZ4UWx1+BrEQBnSU8CIBmEddMHmt30vu52T+eOaiTDLYnlukyH1Bc6kBM2miwJAAAAZgNESUGEyovHmXJyx8+00M09Vc2UKzyUGQAAABIAAAABMEQCIAgUsFk8T/CHj4z8I5kZ4xUXtu7VUJHm6TH0xdFhyRK+AiBtWoh4ONmop6X+gqRY4bgiu70v9WZqB/CH04BvKy+rYQAAAGYDQ0VU9mDKHiKOe+H6i09VgxReMRR/tXcAAAASAAAAATBEAiAAmoWp6jHNNBQhlmcyTxKM+JvZfJe2en8wJZstx+CH8AIgY5bX+I0AX91V9lRrLf0gqnK9J6GjEqpPBnhYjo8lgBwAAABmA0RJRW72YQ0kWTgFFE1zsT1EBeAKTkrHAAAAEgAAAAEwRAIgOQfuCUO3BLL9C0emlHU2HDr1E3HVF3AoB+W2z1zkFSECIBd5e9Q+CJDOvhFofC/QXEQkR+p3Wnrk/nl8eKJW3jDFAAAAZwNERk7IujzxA+WhZYIJw2YVMZesf6nJsQAAAAAAAAABMEUCIQDE7wNt1chQitMtz0j4MA4NlTUc8xuAPGMp6WjV47RQRwIgBLJ4s9T7GNRli99QoaFuxxOJP5kfr7ezxIiARfAx9oAAAABoBVlGSUlJS+QLyWgdCnwkqZtMkvhbkFP8KkUAAAASAAAAATBEAiBfa095GAyY4GFBrAzY5dElgcQbsClyI9Rfftqai0asRgIgRLB8FMxLFTmPwvvtOShppgminLW8vJSpQC/B/dTlN/AAAABoBURJR0VYdj+LT7BnGQ5zntassS9A8vOJCEAAAAAAAAAAATBEAiBY+chW1m8uiOz2dkZcfMy6E9z4QxLgK/7USIG3YhsgZQIgD1SJEzrISRmS5+k2Xde4gTir3s/+1ZqH9pXSkHXtY+YAAABnBERJR0d5jRvoQagqJzcgzjHIIsYaZ6YBwwAAAAkAAAABMEQCIF+2Ji7rRDLKjGIHkpDlx/gI/d0cdYA3ASGYt10aJwOVAiBHiv8Q5wEshMa1Y8F+h00ytE+2jRkX+SGeqPLvUmQuQAAAAGgERElHSTy/I8CB+qVBmBDOD2vB7LcwBthIAAAAEgAAAAEwRQIhANbRX0p0jldZC3gMrX5X7N1Qoxe+gYYuMvScmBoJqyo+AiAw/x5aAEceQt7aAcFAvi5VzRkrlf3jQa0Xo97ItrbeTgAAAGgEREdDTGO4t9Sj79BzXEv/vZWzMqVeTrhRAAAAEgAAAAEwRQIhAJISbWUFnGcgfbaRSiIlXZaF2dA+fPpTUSGY3eF3rAPGAiAoE26r9TJEQR0wi2i4Ld5aZBN7hKRba843q3DrpTwG1QAAAGkFRERSU1Q+821ToWjETtLsepgSnKAwi8GuRQAAAAgAAAABMEUCIQC2Tci+MeNM49NQZdgNgNHN1yPHwGROXxiTc9at64nqlgIga0jEgYg4CzFIJ6Xbt0sXGUKzYVxra4J1/w6vTREMOtcAAABoBEREUlSUUBtqFTyJc/0fMh/MgYjUDcXXLQAAAAgAAAABMEUCIQCjb8lp5rxKie3dcbMGAQZd3zyshi1R5WxB0UdIDCPhVwIgKVMaEU1N5zsVgfrE5Oe16bCYAgZktu/lQyjW7KC6NgEAAABoBERJR1NzM8v1sLhDtBKeI095GwBYNH9nGgAAAAkAAAABMEUCIQCXpRKhsvy6JKozwRqxGCjyLvNeief83Y9EL2ASZusSgQIgU1OK5NZCwRK1AdG8YmrLg68NPFhbx8DoZ3f9Kh90cfoAAABnBERHTVQNS02l+xp9VehfjiL3KHAc625EyQAAABIAAAABMEQCIFJ8JrvcGHNyznU1+S7e9/CL6R3kl49+/Mh/ZKYVfwlFAiAlv0OT0OpUr3CWlD7eK5vB7F/AJL1u25qh2p6YcYYPTQAAAGcDRFBIh1NT2kjE+WJ8TQuLjDexYvxDzmcAAAASAAAAATBFAiEAxc+DWYrJTpHtpm927dDe+lpGJ3D+4WkdzXYSnNFSKosCIEGNEl132tOzditnznN72hN57Q7H27Id0Uoe3El4oi/6AAAAZwRER1BU9s/lPW/rruoFH0AP9fwU8Mu9rKEAAAASAAAAATBEAiATf/F7xSsUGBUFlY9JVBB4bumPHE3vC99hGifbtnUHzAIgaharAmgDRKstqnPgROIRz8OJKPbyZwTeCnx2FJLKfXgAAABoBGRBTlS+PDk/tnDwopw/PmYP+xEyAONmdgAAABIAAAABMEUCIQC1NOncpylbt8q+anfs5WcMduzYD6hocOEv69PA+WTcvgIgTT2ZhX/qTkCAq4S72gJdetuOqTn1CXbSVnwRMsx+hdQAAABnBERBWFRhcl89tABK/gFHRbIdqx4Wd8wyiwAAABIAAAABMEQCICeKPlaiFAX3mFuFE1/DKoV8iJm8tLV5giyl4yxC5Z3sAiBdvje1DHe1VjfsugjC79v7nfC5SrXbVkORvSIfXA65agAAAGYDRFBQAbPsSq4bhylSm+tJZfJ9AIeIsOsAAAASAAAAATBEAiA+DcGKYxXY5p3ies8lfOql3cmbBV2ZOCcPMB0s+ct8FgIgQoPYcrKZjVDzcZ2hGVSkcH/8IaPkoyH48hBn4tifhd4AAABoBURFRklUhM/6eLL7vuyMNzkdKxKgTSAwhF4AAAASAAAAATBEAiAIoMK5p0k+XSTMe1AUl5RjcYBj+sGZJtVVlVpnFZ8BxwIgB1rwlMdPgDeezpbQRUmS0kLS6bi3ev/A3p3zU3h5I5oAAABnBERaQVKcsvJqI7jYmXPwjJV8TXzfdc00HAAAAAYAAAABMEQCIAfLA6rOydrWxtdSDqzTszD0V0aIhp/hYDWmNqOyLNYoAiBOs9hpPKP6f4je/V32NnShZwQE+tvG1MOahffdHu5NGQAAAGYDRFJDoVDbmx+mW0R5nU3ZSdkiwKM+5gYAAAAAAAAAATBEAiAkMA7z/lmC4HlNpqGZDJ8/fyjXwz284RWR5AnY+CC/UAIgCOSCdyw9XCOEmniiDOxEqUzQidSIOGx9/PjU6IpCsQcAAABmA0RTVWBdJvvVvnYQiSgdXOws6G7qZnEJAAAAEgAAAAEwRAIgOJTmNXAtikJkN5V3KEbZVBKicqIy4z2/XmJwfprm6wcCICS91L2VkY7d4GHyevTeYqCSWJjVEZ5M53qvnDXNKlQeAAAAZgNEV0PGJsniJHyKDIY61tqpftk54SeG3gAAAAgAAAABMEQCIDrw0HvVuh1I5R2rcbDwUqFmtaYraxhOj8QBhCB650BcAiBaes48vmy05oZgIsREGoP1rt8mYhoKcFQmdTtiQoRrJQAAAGYDWERCue78Sw1HKkS+k5cCVN9PQBZWnScAAAAHAAAAATBEAiAn6DnkzJwGO3HGSXAxzv8J0EAzX3mtm/IES0MpdAlY1gIgGopEJQqWqKkYa8dIW57gbVafU+rHS1cqtKCD5PIuffYAAABnA0RUeIL97ft2NUQapaknkdAB+nOI2oAlAAAAEgAAAAEwRQIhAIqqwrTbWLkyfpjJFBqkxgST9q6q9nteSGQ0pUH2DoYQAiApfjkCwugM0IdybziuFOng4UjYoKv+/MnVqrGpv8VyjwAAAGcEREdUWMZmCBBz6N/409HCKSoprhohU+wJAAAAEgAAAAEwRAIgOF+6Lrau8FCOHxTeGL/Z3Yyu46NKVAOVhpSyf/HCff8CIHq/lXR16wNjbr4H6GrYZBMxV0YtkWKm4ODKmXj2XD0ZAAAAaARER1RYHINQFHjxMgl3BHAISW2svWC7Fe8AAAASAAAAATBFAiEApBssgQ06HWgAxLkWywcuxMPvcV7BENWG0/JdzwvD2HECICT8jfQvUr9TnLhnGYfVwTQUQa6/KVCYE8C2mdF80pQYAAAAZwNER1eHuHp1g9jY8VtYvdKQMYOGrI7hdAAAABIAAAABMEUCIQD4HQFFYIMTKTzAoW5aX79PZ/xRfOCTU+y4H4CcCAnJfQIgTYu6KHA/MQy0UyW33yDrvmjnhlPbT7YZcd31auCcCiYAAABmA0RHROC3knxK8jdly1ExSg4FIalkXw4qAAAACQAAAAEwRAIgEGbLcQj2ZQpGw3xLTM98FY8eA3r7o/JUMm4h5POqbjgCIEoAvoSlWDRZEyYuX4V2/cuGI1Xx5e59kX+i76tJ+WpWAAAAZgNJUkGt57X0pCHYHdrYzob3eg7+iSHpzAAAAAgAAAABMEQCIDR+ux5Vn5LpjsgliAqMK48t/bWOqcOQtN73iGe+68GiAiA8imAeQzWuHgTcf9t6xoYnWptNNHDBLSf61L7oYvCiOgAAAGcDRFNUaNU0QcDiU/dsUA5VG96j0QIgbJoAAAASAAAAATBFAiEA73YrBL45LZ3aWAy3px63Hab+m+8lIlW1KDchRZhTetQCIEr8186aEwBQJ3KdyPhgxL+vWKTgyPWKMYA2H90y1KmoAAAAaARETVRSUcslN0QYnxEkG+yym+3T8bU4T9sAAAASAAAAATBFAiEA3jwzI4E0v5OB40DhArFI9pJkdaL/ed2WfIqBN3MSEKICIGavVjhkDjsjD+zt+x+yV/V9Z4NX7ur0bDFNzpUxLELkAAAAaARESU5PSWQhELcSwf1yYbwHQQXp5EZ2xo8AAAASAAAAATBFAiEA+B44eEP6YKbwLiAXIMtsKpdeYG0WfXboZbTClq6SjaICIB4Dn4kIPCnOt6r3SA8eak+m53B904rbddwf1jYwGlYuAAAAaARETlhDIKjOxf/+plvnEivKsv/jLtTr8DoAAAASAAAAATBFAiEAqve97KT04iUAvRMEqhw9Ggn6lNvMT9oFFPBjaDFEwHoCICPql+1itx0C+VeIaan4Kymbx7T47fBpBW03sTqVXiy4AAAAaQVEaW9uZYm2ny0a3/qaJT1AhAtrqn/JA9aXAAAACQAAAAEwRQIhAIXHU72vHOudBmGcA6hZ58a7S7dOla2x38EyuRHf0NLiAiB/p1BaEy/mBL9euHO9hYATtvF9VzfjNunOmjXo+EMxkAAAAGcDRGlweGRIQ52UAeCoQnrPfKZqURTrI2gAAAAIAAAAATBFAiEAk3maxj82harY+6hdzPk3FuApeJ1mG5YE3bfep3xoeOwCIHBcLsBiJU+tP0Vmus1vTEg/AlwWYrFlwV92RxCasBouAAAAaAREUkNUnVYdYzdWcqvQIRm5vE+5DrnjB8oAAAASAAAAATBFAiEAwfoR8eqVmZkU/1rae6HvDs/0c/YNJa11Hhf+gg3S6FkCIAf0xuSxb/8uHWPoM7PBtZvGluBDVRBWoVM9LNjX9zqZAAAAbAhESVJFV09MRr3qW7ZA2/xFk4Cd7sXNuPmbcEzSAAAAAgAAAAEwRQIhAJ/YxQdnW4Vpt+eE1YjVZC/s87+G2Hs4myXAoDjiey1jAiA58LY74ghWvBZQz6hGgEHTvPWlJiLwcsF6J/ujKws8gAAAAGcDREFIuea9y6ZTtfdo3S4vr2KI35BU5VQAAAASAAAAATBFAiEAil8GN9Gz12mg96dDcwu6H4uEr9lhudShiyhg3tAl7/UCIASSxUCxnDxj5crGhAq09wgTdL1GM8noHXoVUM6SCi/vAAAAZwNESFMwNl7UyoFzATrZSLmELzSscdAffAAAABIAAAABMEUCIQCd7Z0geUu9ho7nkB2hH4lxaal3xrPGxTdOCl4tbaTmAQIgW9o17KN4Txuja1ZxoMUhT297adMchO56EXlfccpYTBYAAABpBURJUlRZT6t0B3nHOqOUWlz2AlvxsOf2NJwAAAASAAAAATBFAiEA+OetSoKKx7OWFOk8EyvqOM/0kZ+b6zIRhEhgfdNdQ9wCID5Yl9EUv/1YgXSJUkqI5ZXEV2sji1LvT+wpYM7alvBsAAAAaARERE9Tf77Au2pxUud8MNAFtdScvAimAsMAAAASAAAAATBFAiEAlFQtKuNhUxnnMHcTsC0ebdHEndvF44NsH6jrsut4uzwCIAvEoN7Q9x0h/P7VjE85Kp1go1pdWETck/p+u7cEf7ePAAAAaAVEU0NQTN7OD2hkwVETaa4sMLkNufX+koMsAAAAEgAAAAEwRAIgL78IWDYde56FKxdJfe1L+D6GREH2Y8Me6w5FyM+eTskCIG0B2CbuibA3JFhdONL8M6ak5+b8PNdfDkPtVo+UHEITAAAAaAREU0NQA+Pwwlll8T27xYJGc4wYPieyalYAAAASAAAAATBFAiEAm2Lqp3LvPVVySOFXLqVW8SRMbcTLalcz2dH2QpeB9CkCICAS+NZK1ErgK6YdVU6psZhAiZRtoZ93EuflmYhwPaxSAAAAaAREVVNUvKPJeDejkJnsMILfl+KM6RvhRHIAAAAIAAAAATBFAiEAvyPDTyBz4WGnbBXN6bLF2UhzVqNLmsKAu0qzrQkJGfMCIGFqilJKh6x5vFNzT0xK3AQZCq102fnn5K0Iem3cB8QGAAAAZwNEQ0P/qTqs9JKX1R4hGBdFKDkFL9+5YQAAABIAAAABMEUCIQCTpa6QuyfXMknHrLHiRnYXCV7v/07jIfm0l1cPw9zm3QIgYi60/nk8Oa85lZ4dxDId8RliyjchqfhWpaOV8qbWOwQAAABmA0RFQ1g3m/aF6i4lGuY9PuJiacfDhIoXAAAACAAAAAEwRAIgZsJkP0OsSm4PKUBicBfzEV9iUASc+2EVJ68R+8Tet1UCIE3uo5pzgWdLQfoA5KVyRejYP1eW4Lv/6tFEfs3F3abSAAAAZwNETlQKvaznDTeQI1r0SMiFR2A7lFYE6gAAABIAAAABMEUCIQDB4QlGl22mwKpoR5olMg4+v6ApusnoMLDTXPyS20y2TAIgUQAvHKP2AS7f5BepVBGFvJdwNE8G1UwQuWlGjVg06UEAAABpBURJU1RYS0cB8/gn4TMfsi/44r6sJLF+sFUAAAASAAAAATBFAiEAmafFkm96ln3xFwpV4TuU7yyrBAdMbAb2bLiUGrL2ChkCIEsJTK5u+zRXlaAGamb04trh5jtr4H08RZ/xIwW0FMeWAAAAaARERVZF/bYV1qFfkp3avGuDpPHPnTYbBk4AAAASAAAAATBFAiEA1FNo5hRUUik11bRcxfpj+ZfaI7hcNDKRpq4yfj3v0XoCIGAl7v7zmoQY3S05xgEJ4hdA2xwaMZrE5GhcsZVR23yqAAAAZwRESVZP/xvtpcqSqD0FMj4zjQU0QQhYtqIAAAASAAAAATBEAiA0d02O835/03n7bydu/PDkd+xPT0K8+gBkeZxhqiLQJwIgXIr6N4kSpuxUadeM0IuEC5re+UsjD1UnpcLVo/0GeFAAAABnBERJVlgT8RyZBaCMp24+hTvmPU8JRDJscgAAABIAAAABMEQCICFw2OjpFK1usub7YZ2/9ujTWPuVKFH3Fmdz/+2pKr8QAiBoeSG6Gjt6yBjlJolApyaLUHJy+ujjSa/ywipt+YLTCgAAAGcERElYVEPmIotb8i6rdUSGCCypH92FhVIaAAAAEgAAAAEwRAIgXbKTC7V5MQkr0vLxp9Nwg0fTQrtbhh1qAeubvGhP1qECIEUpvQnxXcKzOK6iN2vsGmicaQFnXn9c4oxKOaJTtCEbAAAAZwNES0FdxgxNXnXSJYj6F//rkKY+U1784AAAABIAAAABMEUCIQCtNIAlH13vxAlxQLliFIO7/SVLRa0Tw5RqKiUTOoz2sAIgBABF5srkKVHUEHozwEXagLtK8jE7ChZKJjKSgsALqsAAAABnBERVQ0vAujacjbbrOSSWXlxP0LTBuR4wXwAAABIAAAABMEQCIGW3yrmoMu3M2QNfQu8kMCooQQLJ8IkVcrT6swXD0WyTAiBIdHvlmzVHVuSAZf9vBAAubnz1HEh13Df1vTqQNjMBHAAAAGYDRE1ULMv/OgQsaHFu0qLLDFRKnx0ZNeEAAAAIAAAAATBEAiAbJmfy51XrWHDJhQJ+zWPOwh5xgf9MGbD9fbiRp3xJBAIgPjDlllyNnTDm8h2fDefEcnq8SwnHyDj7EkplaQYVfn4AAABmA0RNTLzf4zjVXAYcCE2B/Xk97QCifyJtAAAAEgAAAAEwRAIgff9skEKo+6Q/QS9Ft8LDL5bc4pgH29poKFacHL5+XYUCIB2EjYPOQvOAMJTL12xbYZyfmxQo1X1CXEsMWRNzsZroAAAAZgNETUftkYeZGbcbtpBfI68KaNIx7Ph7FAAAABIAAAABMEQCIBWbV9kuNY1xRy0/EAfX60qurjkdh+F+Ba6tLAESeH4hAiBQfAL42y3grtYsZEwI8nidp7o/cP3EaVgBKGfQa8LjmQAAAGgERE1NRZVW+O55XZkf83H1RxYtXvsnaUJfAAAAEgAAAAEwRQIhALVli29a/rL0UHsfNydGTxo8vtOktK9c/ZwxN9o0UhU0AiAerXued1G2HEYvbg4tG6q6N0ODBkxp+8VZHgKb0D1BCQAAAGcERE1TVPKZkte1iaCmvS3nvimpem63Pq+FAAAAEgAAAAEwRAIgEa56qwIxCIN3XZdL0OE72pLnpGSVAX6OKifPl5xoImgCIH0Nmguo+vzuko4uHorLwA499MARTTVVJEfIvxOi1Wb8AAAAaARETVRDO+bnvyzY4aCpVZfnLKbTcJu+/3YAAAASAAAAATBFAiEAv6VEQsUkwLNvijawWlVAoCwFkd9wR4gNlvPXf0AJk2wCIDHTXRUgFe4vBJXLPVlG6TWCwVR1azpOOfzSKR+BVrotAAAAZwNETkGCsOUEeO6v3jktRdElntEHG2/agQAAABIAAAABMEUCIQCKIWuqQHxSaORjeEXtkLIiIlbibYmu9gr72R0n4A1vUgIgPjN4EARIMrCXkFG2eRCGb5kea20Jl3EkTFCO03yKgZkAAABoBERPQkXnq0UWL1l58JsL2hzH38l8Jw6j1QAAABIAAAABMEUCIQDsTvxnwNn4fnFZMKPTbljHNWmurkxwCOd9eepsKx2QTwIgci2BT063dvXEBC18lAxnFSUs7mklslOIndDGUFcRXkEAAABnA0RDSEpz5grbuFdVAP/GquphKJVAEcivAAAAEgAAAAEwRQIhAKTeBLBaeACTH1Dx/LotDdcWT6Tk73j9lm9McdGowoICAiB5OunIHuT4WbjW0wNVNoGXLcDbeETfyFd9xKrXFq1xsQAAAGcERE9DS+Xa2oCqZHfoXQl0fyhC95k9DfccAAAAEgAAAAEwRAIgVlwu099L0wtsgVoBNzkpkjY8OaYwtOZ7atja3VVLM8YCIAQUSI6ox3KgsmQBsBy3dE+Yzv88qguZvG931UGzt8ntAAAAZwRET0RPQ9/EFZ2G86N6Wks9RYC4iK19Td0AAAASAAAAATBEAiAyvmd9H/ZE6yaNl4X2fMYEVIvoybAYnKp2/1rFoWVxDQIgfdnQt8SANkVkfdrD1niBdKfZ210m+RE0UuXs8lSn4X8AAABmA0RSTYlVG5QOKo7Y7M9QmTW6ySE/4wWEAAAAEgAAAAEwRAIgCZxD5W/K9C5z/+KKCDdCaL1wjEQY99VjHOsHEesbCrUCIE+HsaF4PnAsqZnNn7rzuYM5twzb9TwtSzWaEz1Mc5hSAAAAawdEQ09MTEFSl4O4FDjCSEj4WEj43zGEUJc0F3EAAAASAAAAATBFAiEAk4maRobUp7UMTdlczdy+Uq3epYEcBLnpjH8RnCWpuiMCIAauOG9oX264Fq9DVtGfJvW2CZYlkzFfPCLI+pcLHX0tAAAAagdET0dERUZJgLsnf0NVpDzbuGqC+YdslGR22esAAAASAAAAATBEAiA+PVDHqwH31akssrlNqa6omoyj/vV4WAM1xMpM6MfGtgIgO89t5aWTmaf2a5N70QeOjySpj2fYiCeAM1VjZaVOmBoAAABpBUQyMDIzOdbqD7GcHMe2dcS69xoCD05d/4sAAAASAAAAATBFAiEAoSLk32JAh6NWEBHzAJVZvCsYjBAEHEQU1sXY0JCNT1cCIFEzrJwuZtPiHOPRRfRKYSwEqmUlTssJ1CR5tnMEBYDZAAAAaQVMRUFTSCfHDNGUZ5W2a+nZVEGFRpmLVGY0AAAAEgAAAAEwRQIhAKllIA0LAffh0q32uuQRyOssRS9AeA0Mzwy4YFKvr8ccAiARrDinals3xtqXyP4wah8z64u1ICAGGn4tlfwX9Vc+wgAAAGoGV1NET0dFy98d65NOlFpwtyibuY6XATd3+CAAAAAJAAAAATBFAiEAr5xLhfihN29rGyK3XtTRyMs6JCnpOpXJktaoIJ4QqTUCIBVI+hsSIDY1LY+WXFRHy1GRS1aa45XR8wqh4EuTUJJFAAAAaQVkb2dlcOfq7JvKedU3U5wAxYrpMRf7coC5AAAAEgAAAAEwRQIhAKKO1ef+IdHq/xXA8vvY+7z9JXKWZ9z60NA4XsLkEibFAiAoxoIi14C9ad1Ojs813C3o/WIM5AM3tZ9nVhpkBu9FnAAAAGsIUkVMT0FERUT2jfbfZC6Dh6/J0DIUt48wh++KmQAAAAkAAAABMEQCIFG9BrLtgPIalcaSkPmpopsQRzYkLaWG1tDBRBU1AnZSAiAwSMphOTXoIkmbhgu4Xi2J6y0jAmpyuET6UtY/cHoC1QAAAGgERFJBUIDHS5Fmsvql3GqVD3QfWagAJs2gAAAACQAAAAEwRQIhAMzTOhlEc76OMjynwUM5IK3+q28EDGUML2wKFsPFlVTFAiAGVYb1pRMVKqJJOyZ3vKIXSgQHe17Bqf+2x3vTmLYU4wAAAGwIRE9HRUJFQVLx0ylS4vuxqR5iCw/X+8ioh5pH8wAAABIAAAABMEUCIQDlLB56KILAsG4bRjq3uqbmRFnbAH7RazwdkENI9luCJgIgNTrxlGMtRNfzR35nlEDwV3LzrKZC18kUYhCKK616J+0AAABrCERPR0VCVUxMeqazP7fzld28p7ejMmSjx5n6Ym8AAAASAAAAATBEAiBPAm+ivdeEFTbfQw4GPr4n3ELhpVL+lB6n6pa6hkheqwIgAS9gDkLVEqj2JjIJWU5d9VcY0gG08DqWqZy77EQz4rEAAABlAkRDe0MowSe4U2nZ+CygUDsADQnPkYAAAAASAAAAATBEAiB6/M6iqWOFhV+zUPjpQWV4sRoiTpEE3ztlayiAC7kQlQIgK3q65SDK4QlSyC3g1pdMt7dhX1lRRvZOgMYIyKZa83YAAABnBERPR0VCBpMTN9wnOmMNMo2mRBeGv61mjwAAAAgAAAABMEQCICVfBRH2o1m5XVsQsHHYQlNcHMoWoheishuLWAot8THbAiAJDAg4ewOLeWFxtyitigFWJ6YB8fhMZi0jYY/ttWff3wAAAGwJRG9nZWZhdGhyc8Yd2eEh3oNKTz7WByY+4zswjAYAAAAJAAAAATBEAiASfdNS4DMsIP43fg3uYnG0zBWswTmfkLMyByrY/H+ofQIgMV1uFcyCE/ICWYagPEkGQ9SK8GWWHH7qBCAUrviFOwwAAABqBkRPR0VGSZuQh3Vuypl8XVlchAJjAByaJmRtAAAAEgAAAAEwRQIhANi3CXzVOChx55YuaJowod7JVDhodldZDnHvbJFtRHQmAiASD6pR9S3LKtJ5KWIJ9wbdxPfAkQworC4O4UrofuJ+EQAAAGoGRE9HRUdG+xMNk+SdyhMmQ0SWamEdx5pFa8UAAAASAAAAATBFAiEAyBKMDyA5ukOJlzTZSCgERrczFZnUSydECql0pyXmUjQCIGqKZbexHrzulfvB5HQWKAdW6+CHodLpyvLxDTI8undGAAAAZwRFTE9Odh045d32zPbPfFV1nVIQdQtdYPMAAAASAAAAATBEAiBDmNT/25rP+8qhxlmgSpOS6jNDAVJC+ZGTPsvHwTBl4AIgI502ZP/G1o0FoFKojxcJx0nbFW+LEysCU6xTkfkLfAwAAABoBURPR0VOF+tQ/dKZVpbugpEqgKl2b8uw7MoAAAASAAAAATBEAiAFPMqHsKhzbvBDdGo2bRvUjJZiz++w8NjEosLfd9vQfwIgYa6353xFdRoyu1OSCbvD1NTuRAOvd2PGa4zyfl7X74sAAABpBURPR0VTtPvtFhvryzevsctKb3yhi5d8yyUAAAASAAAAATBFAiEAjBrQWgQUYlnDYypoUfZpLGl7kVTn+h6dpYZc+xBPMmUCIEMeEs+zxo8JlvGxGu0ZeE2gHQHgUI6BLnztgc2Iy/OyAAAAZgNER1SLnDXHmvUxnHDdmj44UPNogi7WTgAAABIAAAABMEQCIE1skTaNnMs+cICaLaiXiklPdeLMReqggyPxlC590r1KAiAiwCOQWafmH7tanRD4zpyZ0782oFGfx06nlhsprbDI+QAAAGcERElOVbse4H1se663ApSZBAgOth9dXncyAAAAEgAAAAEwRAIgRdtl6/WkJZ98G7zmJU5OPMGvN5R3oLEXC/8JoajXvZACIH6Im1bqd71t6Yg2IonTYCbyb3oaB/Bn/5kLQaZx8D2iAAAAaARET0dZnEBaz4aIr7YbMZdCHN7sGiZsaDkAAAASAAAAATBFAiEAjRop1rHGzRaecIZeeUElZDpEGAbRjFI+WYzlcIwsBq0CIHsLAAs3NWuNI4+bCDRkJCUznwnSy3t8YiQZrWVfYpUqAAAAZwRET0dHVZ7+HXpU+xx/JaA2lS+EmM3wLtsAAAASAAAAATBEAiBH/k9P68HgJn0FgPDQiz+NrYejOJA1FT7FzzRitCm96AIgAYdA9plR4X+xXW9p3TffAZHDlk5rqGSHIwaKV2/nURwAAABqBkRPR0lSQUuG4ClefTJDP/pkEbgrT05WpYHhAAAAEgAAAAEwRQIhAMtOYUXXtPa7YbgZjfUbI+4OqLvWpGCprDJgyW6la9CyAiAL/S2PdsQAtMzc2NPBR+f7QIg+hazNj06stduoXIE4mAAAAGkGRE9HUEFEbzJ3rQeCp9o+tna4WoNGoQC/nBwAAAASAAAAATBEAiANgkyrCm8uY6XisulIph4mh5BPVvN4H/vzujLsajqwkwIgMptqs+izhWwQXCakzdQFJt1F4cojjlFuVimUUdDqIooAAABmA0RPRfjp8QwihAthPNoFoMX9tZpNbNfvAAAAEgAAAAEwRAIgXkgBsaiEfI+A4Qsb6BYHyp2kwMlWxGH64FdFmk9hE2YCIFDOaIwLp3eupZ5uTHY27vwYKiN5tOBBtIu1HApHwxknAAAAagZET0dQUk/np+9yRmFn/3jgitdrEsoME8SW4QAAABIAAAABMEUCIQD6Lza0PQ7FEB93pgET+paLeCLCcons4rTIu8KdIa+MRgIgcEEAgANlfk7Bx9iZjyBif7JvBlG0Z0ca2x61dtPyP/kAAABoBERPR1qCp3cQSVo1VJ0q3Xl0ErSkSX0z7wAAABIAAAABMEUCIQCR2a6jhTL/O4wTNpzlz73hPmabOg2S4E9G4IIIG6e5wQIgeNzbTDVq7/KAxiC0bUOzlIOLPcugteTmjyLTWAWfM+QAAABnBERPSk8YDa6R1tViNUU6iS0uVqPkC6gd+AAAABIAAAABMEQCIDL9P7yFiCLyho8KgoRJ7MhVXASY/xqXYVFHDIJbd/gSAiBei1qs0+1Tt5x3/qwLrdRyxQj7ndL4cRYgvmpAhH2fHQAAAGgFdURPS0l+bDjQB3QJMeS0Gb8Vpox5oPsMZgAAABIAAAABMEQCIEoRyJi4jLoM+MUXSYz7/W8yjBlvwZcrEJUxUdiG8dU7AiAD5dIM+tPjw6ep4m4fFDZbQIik2jTxZcKo8NC3nrpgcAAAAGcDQk5EhM1ow+Rw7O5Li2IS78uMa8s42h0AAAASAAAAATBFAiEA/OY7ecQ9Nl2iMmbd3NEYHKdyDd3wGXCURXWJjGi28o4CIBtJatpH1J6rAb3xALV6Uc63n/hGhx99kprajSQDU7EAAAAAaQVBWlVLSZEFJGeMCxsj/7koWoH5nCnBHLrtAAAAEgAAAAEwRQIhANWxFzCkOZgHF+H8uZgSdopYEv8+4TSzA9/cmZTRsr7WAiBK551VwqnrjIZEi66jXRIA15S1yUCpurhpxdCL/DJHGAAAAGgERE9LSZzrhPkqBWH6PMQTKrnAt2pZeHVEAAAAEgAAAAEwRQIhAK7nOvjFXm4nEKw1E1fSVwNMj/6+FPKtTcn6dq4TCsryAiBNM90e+m9SbsMp1XHIwIb8fEcp5xQ3vTR+AurK4qhrFQAAAGgERE9MQYZTdzZwVFFuFwFMze0efYFO3JzkAAAAEgAAAAEwRQIhAKRxNbWi7x2hnQaqvviBpEJS22507wOFKLIqLndqFCC+AiAbESAdhByzf0GWFuA5qCSL19qkOQSSq1D8NNOPRXxO2AAAAGYDVVNEL2CB41UrHIbORHm4AGKh3ajvI+MAAAAJAAAAATBEAiBrGI6cJGkfajwbALO+yjATTueFGuIgOkRtzRVmbjO5QwIgNk8P6ZKjwRQlb/T7Ukpw6US3tr+tTxtU759FMpnDBM0AAABnA1VTRNIz0fb9EWQAgau42xJfcitdxyncAAAACQAAAAEwRQIhAKH54yafH5VjwlVhJ0Dm3HcMQP/BfQTyNdQ4MWNQdal2AiA/unLy6jUiaXpSbtvI6M5bTThLHS1XDepujesiS8n/QQAAAGcDRFNFE2vO06+FMLgeTH/0XJIoN2cm0XMAAAASAAAAATBFAiEA8AtynJeYiYCKdki5OAqS4gdbMU9Z+7HIqR/3mqiWe3wCIEKjhD2+/czV5RUgh0+ncvkC3Uf+ShYGasvG1sym6ZGpAAAAaARET0xa6TnwEaPY/AqodMl+gVYFOpA9cXYAAAASAAAAATBFAiEA1MYhiqXv4V0kP013H6fbZxXgOJNuCX01s6OwTtFycQ4CIDaY/ZjpnO5JXTT9TxGMglA8RxieuFpGBgmLjWKMRxy1AAAAZwNEUlSa9PJpQWd8cGz+z20zef8Bu4XVqwAAAAgAAAABMEUCIQDxk1SCtFYokxTSQC/c0BCe5jf/JfI2FAxgxyGgrGj/LwIgShpKvPzD0LcA7WPwY9cAEm0kqnOuhWwhKb9U152HA+cAAABmA0RPTiF93q1hpCNpombx+3VOtdPrrciKAAAAEgAAAAEwRAIgBsHe23NYlqYrEnecI06Uf2K+DpkqigLlG7z9Znf7f8kCID9bXwHIszvEEH5kgm57916spr3nYAMgD2vz4OssrcVPAAAAaAVET05VVMD5vV+laYtlBfZDkA/6UV6l31SpAAAAEgAAAAEwRAIgRuSmHZYxL530LCDefXBNzvc8RQLxlJM3EynlUOY3jgsCIAm0E3Z2erHnCCS/Hd4OvMB0LGeZQsUPdoT99RN6Rh2JAAAAZwREQlVZTs5cXPublgpJquc54VzbbP3MV4IAAAAJAAAAATBEAiALjIZPTTTAlHcqc5Ik/60KOJ74GliFLOzZAZqA2UAedQIgT/hnCnEHLUt6EYlhLPiVCAHStXrsZjvWyOLTDExLx44AAABnBERPT1J9SPvgqHe7H1Efz5tX8SQgx1hB6QAAABIAAAABMEQCIBAMpDrcKQrC7tKALs2p/VtkoBX0oF0mXWioAKjN3qv+AiBFVEc4mosP7nsqprWGY84EUAFfb9mtO0nB2MzCC4ZlbQAAAGcDRFBY7sK+XJGuf4ozjh5fO13knQev3IEAAAASAAAAATBFAiEA0RM+Wf5GN7QFy4oSZIVUf980N5YwdCbWsQWq3NrNqkoCIDGUYtrhbi8+XBhBFIL7WKbJPKRFq3jprizRZlzkfXxwAAAAZwRyRFBYD/WoRRqDn18Ls1YmidmkQIlzjREAAAASAAAAATBEAiBxXgpUQ/IJHv/3o+zbNNT9VlkuA2/wQEzdz3WRFgvaiQIgI2fDsmdbYKCZg5zIIjIyxFuQUULJPMRXQxzT75ol55QAAABnA0RPUpBrP4t4RYQBiOq1PD9a00inh3UvAAAADwAAAAEwRQIhAIVEIUCZhJhTgteXFGSiB2pudstCNsgG101mDH+vMhepAiB/wR+y7+99AJ1Dqk1MWMv2Uafag39TVadcfem3ye6BvQAAAGgERE9SQbxBcfRe8O9m52+XnfAho0tG3MgdAAAAEgAAAAEwRQIhANE/SBnHbtqNDxHWKw4HzUCz8JPY5horaHhmGPEIP21EAiA/wR1g/02OJCuLUGHdqI5tC2UZ2shl4EfpT6GvjYqfygAAAGYDRFJFGXe+ScM9+s9lkMFsqanPoEY/ZjwAAAASAAAAATBEAiBShJXbSPRERf6/QO2eIieDlEciJ+uQJEAPdnd/lx3ZOAIgIv4BdQ/Yyz+5dSC8s3ExnBkrGjOBVj9ExSshtKHZ2YgAAABnA0RPUwqRO+rYDzIeesNShe4Q2dkiZZy3AAAAEgAAAAEwRQIhAK/zoPPPPa0ic4sTADL09JlgeSDaJZqg6r8ZyeYylPNlAiB1xR0Mco1YYYbtMd25YajnJL8SbFCnnQROrHVwxzC28QAAAGcERE9TRbMe+eUtlNQSDrRP4d395bRlSmUVAAAAEgAAAAEwRAIgXzhdgnnG9+ob9qxiwtpOqrR0jV7vc6cfEk4WB3Itl6UCIBCtRKLS723mwrTrBFSC9OV6lRK4toaTWUQ8Jc3Z31boAAAAaQVET1NIScfycjtk2I9NFPC+sun/znh5W7zGAAAACQAAAAEwRQIhAJ2OlgVl82ZAJ4EdVf4ArZk8BLJYG9ji0ovaDtmcvyZCAiAiIXSNXZxt1wvhZMAY4zUQrddRDnEcytiraRAcTCl0ygAAAGYDREZZfMyGPs4uFbxFrAVl1BDaejNArZgAAAASAAAAATBEAiAdmXxFbHmP22gD5DzGZ3LaOxuzg4K/Qb+zIAlLiWIY/gIgYjaD8VjNZHRLncCIS+UVkCWOrA2cVDK9yww+Z4ySTRMAAABoBE1PT1Yk7CyhMqv49vim4kobl5Q+MfJWpwAAABIAAAABMEUCIQCxhucShaB4K2aQDdlVPqPlKuJ6C1gnx9sqlbKIsZWUXgIgOTgFKvxIVn6J0GsgcGsUjjvFmJT/122+7ZgMrNrN4VcAAABnA0RBQZ9PHGefyEec1xSCqNjIjcYMFAP5AAAACAAAAAEwRQIhAOCED2BJee1Rhz3SU+ZDnYB/95Ztxn3S9MsGlzLvRjwdAiA7taalZc+JdqgsGRQyQqoudv5GUG4AyWMumHbHasONVQAAAGYDREhYlpTu0ZjBt6uBrdrzYlXqWKzxP6sAAAAJAAAAATBEAiB4C+sV9TvoGtzYcdugTcUusjHLPGHvkBHa6d583hiV0gIgEAMD+ei+/XlcgJTi6/eljkP08QqfCsJr4vkJeUd9i8sAAABnA0RPVqwyEaUCVBSvKGb/CcI/wYvJfnmxAAAAEgAAAAEwRQIhAOaDoUB+oEEKh+4GOtv6bj/7FLcfKrLqhBp6tfnTlEFsAiB8Ju97s37niyBPS91h+6eioX0zLb6NsEwZFWcPskhQLwAAAGYDRE9XdpdMe3ncimoQn9cf18655A7/U4IAAAASAAAAATBEAiBBi2mu4GSaIeEoIRCkn8n/uvDxnZhCQGdl299fUs3KGwIgb2GvTFbAtc4+m7BzuWuVsDD59w6YHJ7ak1bFxLlLPPoAAABnA0RZVHQGI9LHl7fY0ey5jptK/Pmewx4UAAAAEgAAAAEwRQIhAJBn4B8z+NM/Sa728U0eLvRwtZXnyC89atUrcXFMNMLxAiA83wv9FHLSyEidkLH7gogS2CXVV3UfT1cvhhbTb9Yn1wAAAGYDRFBUEMcVFWAkKcGdUwEepwQLh6SJSDgAAAASAAAAATBEAiAJLFjaoymx/vpM5CN7KlThfHUBdj4T698gD05VKTqErgIgb+AJZ11Rfb1k2kmBhMr6TNH1iayO51FD4iQzLWjoEjoAAABmA0RSQ7eLMyBJOk76oQKBMMW6JvC2CF74AAAAEgAAAAEwRAIgBRJ+jVbqdaGBgr9fBwGPZkUmQLwiVaeWwMqICNwUwswCIAth5uLXo05BY657Uu3cLH/+vy0+pJ10JDPX5JEAvc3eAAAAZwREUkdOQZxNtLniXW2yrZaRzLgyyNn9oF4AAAASAAAAATBEAiBfSac5k8sBZmbh9ORehSF1+H/KEyi4aB9NAVEhgJreqQIgPrLi1e5S4IYsAE7okch89wMA5+4Z53lnI2rcdo9FZdoAAABoBERSR0KdPgiS0R8Z9RgdSkxdBBh6ng1wMgAAABIAAAABMEUCIQDvBNPKyaI77BJGUL27eiIKYDflXRowB6mcwfl3TuyvmwIgNVUN3FrBxjXIpERx33T613F78JeIz7LEln7k0yKz638AAABoBEJJVEVO7Q+o3hLVqGUX8hTC8RWGui7YjQAAABIAAAABMEUCIQC7marktMY2GtvmHPaVkJTBBqThjEE2tIvarazf3VzBLAIgQoD8mz8BDr4U6NniHh8uFbUGVSdwnPbteFFJJOqu0DIAAABoBEdPTEQVCwuWkzt1zievi5JEH4+2g7+XOQAAABIAAAABMEUCIQD79TlGglgS7zqeLLJIFAgQ6OpoSlE7i3LmHEWjcdtPvQIgDpDaYaITmWAPN6Htc0EVS/BZIdx9xKyCdc/0HAQgtO4AAABnBERGTFlwptDRVhuphxHpNadrHBZ8YSl4ogAAAAkAAAABMEQCICy1u09ECeugBOahbzVl4Vtl3nKh8SxaMjYuMGDYFmQ8AiBMacxTPl8tU5d8zkafoaGq1fcC0Cpc1bfaTmI+tCwh3AAAAGcDREdTau2/jf8xQ3Ig3zUZULoqM2IWjRsAAAAIAAAAATBFAiEA2FpmHAsYOGsZzhEQAM/mNHpIfhYUybYJUV3cufQfbg8CIGFLyrZqQdAhZ4vtURzJ26mnpQnhBWh7XqP9XNRGYwQrAAAAZwNEVkMZRSQ1XyavZjRo1JlvIHqRjHPgEwAAAAgAAAABMEUCIQCyifWBWXg/0pt0Sy/Cn7JLlZSJWr7aBuApsjfOxDqF4QIgaGKmoWfwhJQN4OGP8Wk8N5iCQ4Qaangi4UYQnUftS9wAAABnA0RSSyNpaG/J+24f3EZUGJFWjC80GQbvAAAAEgAAAAEwRQIhAJViUpyJDXwvW0ZZ5jaiRmobAtGwSDFlQaqHS2DQj8jDAiBG5jJyaYsl/cHw63G/t2f/kV7h5DYVkkp7SxKqGm1ZAwAAAGgFRFJFQU2C9N7Zzsm1dQ+/9cIYWu41r8FlhwAAAAYAAAABMEQCIDcrmt8a77y2eLS9xVT/nEcI3uu+OqKrJiUovbpBXPKdAiBDw+5XkCUzkS7E6FGUfHWcG1jF6LiQiw5VW+1uGZVPtAAAAGYDRFJD1/XKvfaW19G/OE12iJJqS9sJLGcAAAASAAAAATBEAiAUcHLmTHJyaz0/h3O8SpwhVd0xZTqCizE/Qda6qy2/iQIgDJ8GxnHooGQFQOr66O7ihs6kY0IeHgJIqu0Q0GKTFY0AAABnA0RSQx9KlWfB+YqMnX8CaCfwmbQaLlTWAAAABgAAAAEwRQIhAP4bsY1ZnxBtdbyRiTUim+O8OUrfK4LPrwZvtSnwImHnAiBymoP6G66w9df4/g5MArkS7u5cZD3a0IuQwAf0ZLqK/gAAAGcERFJFUDq27WnvZjvZhu5ZIFzK2KIPmLTCAAAAEgAAAAEwRAIgT3b6lP+0UEzD2zwwGbZMHLDqAt5TgCSGiElG+6i4PTQCIGKwQ9wv7dfgD8K5NCI0HYx18JB7G3e8JN/P0cE+Kp4YAAAAaAREUkVQOspxxQjgbcaydY2rbrIPdlRXL7cAAAASAAAAATBFAiEArS5NdjOuLfZaCDcbJfn808TWE/fuSP14VaSAP4X6oIMCICaaVYunyuuKaiBXunBh5OO9XoyY7fxBesO+UHHbkpiLAAAAawhEUkdOQkVBUiI/tcFMAM+3DPVrtjwu7y10/hp4AAAAEgAAAAEwRAIgTMSgWsu+5isaXATPyGeijs8b7aLQ/t9uRWsPMs9+j0gCIAzYegwrP/1UD5zLVUZZUt5iooTXbaUFZnKE/Ui6J80pAAAAbAhEUkdOQlVMTDM18Wr5AIv9MvHubCvl1PhPoLnaAAAAEgAAAAEwRQIhAOLS0Rym1ZtLRlj/WMILa3VtQLMMkZqr1GlvP7dVkw/kAiAnHn0qy3/ImG9d7cLqpdMKPEEphYBAYbXcA38JsUrRnAAAAGYDRFJQJ5nZDG1Ey5ql+8N3F38Wwz4Fa4IAAAAAAAAAATBEAiAZt/kyn9urRXbe0PDewHKHNpGhAFkeqmqsbh4crgWWGQIgTDRd3YTQWxcj3jXi/8AYMcCZF52JhXHZddBQVe4EE1cAAABoBERSSVAjkRnEPjyshMii1FvLoORvUo5fdwAAAAkAAAABMEUCIQD213aYz2LXI1B7pAwfk736ITN1YDGR/8VjIOEe4xaqCgIge1KnDLXb743P0wLluoped/EydnpLQRJJnkgHWF1ApKQAAABnBERSWVC+H6EwPil5q01OXfPRxuNlasqwJwAAABIAAAABMEQCIFJz0oBKtjMDzFVcKEcZ0XbB8AIGoFbDTYjEd+pnta0cAiBMDHtfQZ1wy6eJNBCvoe7xxbIVWa5/pX5jtdCzIVW/OgAAAGcERFJWSGLUwEZEMU81houkxlzCendoHeepAAAAEgAAAAEwRAIgehZBAEWDewrRJm4GsYWzlSQ30w0rp7iemckjkc/Q3CwCIEoKSVN7PCyzIqo1y8Yso6X7oqvwTGi7oBUnZm+FmJl3AAAAZgNLREN+ALY0g8kpdaO+CnFDIneTUyamGAAAABIAAAABMEQCIGleitF2tAr0SI4EdBpqHdCTc3xZouE3q2URhlyKD8dtAiBkqmMH0pENCMoGpHGJ9SPscLb0VlVYrtKLZDpKM56JPAAAAGgERFJPUEZyutUnEHRxy1BnqIf0ZW1YWooxAAAAEgAAAAEwRQIhANJKUETGk9JvQrMLieshRDcgRW6rIqSwHsT6sBV1AVEHAiBtRnf3Ei70cEZZloNOHnFKNQpSGOywXHW9zH7QIoA2MgAAAGcERFJPUDx1ImVV/ElhaNSLiN+DuV8Wdx83AAAAAAAAAAEwRAIgLpgpSZt1YQaIaDV588+AxTWG04RpIugYTbyF5/AduRUCIBHXlHK82auwnTNdStbrQ9K1psBkxwZdfcoLk7hO7wHIAAAAZgNET1BrthIVKY8pbFWxmthC099pAh2i7wAAABIAAAABMEQCIAsoxmsgwb97DiCb4TT4M6gCope9XrqSIqtMQNh/pa7/AiA+kP9q5dnFlIYBtz3sGLtq9sW4tfMLyBAmkc/+bjGcegAAAGgERFJQVeMOAvBJlX4qWQdYnga6ZG+ywyG6AAAACAAAAAEwRQIhAPFyoItJErRaBTUIa2iWqn6OTy9110iRIOAXqTHNyrKRAiBq0KGDM/NgqCZDx0QdER88KAKsvpd7bPdTPa2MHVjDmgAAAGYCRFO2e+sm6+sNzuw1SuCUIlbQPAF3GwAAABIAAAABMEUCIQCDKfNg7D/RdgPgqT5JaTlFHk6f61GYJE9xjQo7e70woQIgKaEOxAjfSTBbsU9Soj0S77xGcRaSp0Zmiji10rC5IAwAAABoBURTQ1ZSPubkb1LEdcUgQLk0dFUB8qDOolIAAAASAAAAATBEAiBjjcbkBrGcsxneiw6v7YSJTVISBBku9+2WlDYea43wqQIgF4ZBcDHPptbvtqlspL9vM4Ltyd5BMGZo+jWqIPCIGNcAAABnBERTTEE6/8ymTCpvTjtr2cZM0slp79HsvgAAABIAAAABMEQCIDi0VB1V1i+P2kQ2ZC2dxKyTc+OrliHrqjiWalOsxZbDAiAvKS+/Hn+G1t621lQyveUtB1zch8fOTItE5j32dhN8EAAAAGYDRFNTITxTyWoBqJ5tzFaDzxZHMgPhdRMAAAASAAAAATBEAiAyKctcb60zkrFhDqppiYrkG5dV50SM/LIXKp9pPQMqiAIgQLZo18udB5/urtzwettWYiQKYJOlhTKYM66RsGSMS3EAAABnBERTWVMQo0u+mzxa1TbKI9Xu+oHKRI6S/wAAABIAAAABMEQCIDzo+ryNtuj6YugfbMe2l68VDFuQL5ciYVdnR2Drw1VgAiBcmJjVhctFYGR/swsgjliMLtKHHLBV4QJcI3jw+3bD9QAAAGgERFRPUFStdO3qtI4JzMQ+4yTyYDBx2tcrAAAAEgAAAAEwRQIhAPJ6PfVzPAiDbwcPlnDQRGP2b+wRN5ck6LG8eENTbA/lAiBjqknRcD8GJbVWnPVXKwcLdaa0++J61mQPMqQtt/lkXwAAAGcDRFRS0jS/JBCgAJ35w8Y7YQwJc48YzNcAAAAIAAAAATBFAiEAsPObbe1HH4FKMQTHuRXHZvzN/2BuKMzuKQ0kAUQTRGgCIHzJnYl2T8t9cIyowSgJeGRrixDZQgNJ8kR+ddAxxnHYAAAAZwMyREOfwFgyIOtE+u6eLcHmPzkgTd2QkAAAABIAAAABMEUCIQDJ+vlat0wcQxLa9LIUWxhymC+dOtrU3iwjfCYaWSJTXgIgCcDChkQkqyBJpC4IEU4TwkMWHivjoTL6VvmNwe6GCJoAAABpBUR1YmJ6OAKcYt+jDZ/Tyt9MZOmyqyHb2hcAAAASAAAAATBFAiEA/1HQcaNJNFPMc+ETFkfA4GBpqUoR5Igy2VEtt8zTYi0CICZcvhbynrJ8O+Dg1wK6G8CxMM+36yligVrAXJyjOXPaAAAAZwREVUJJ7X/qeMOTz3sXsVKowtDNl6wxeQsAAAASAAAAATBEAiBbWvMgj7oydJJPVMedY0Hu05dR9Qh7E/RVMgWsN04kvwIgUhOTOZ+ddRAOVpmMfv/YuYX7DK7d3HZNh8wp9cEEx7kAAABpBmR1Y2F0b4El8irgD94q6ugzXjCJ9i7aFlFfAAAAEgAAAAEwRAIgPJ51IMHoLSzaJjL8ek4KIoWPz+4GPp6GHmGnZKAYEO8CIBpI4+Z9Csmequxe3hbTA3sUd42dP93sDSfjAK6wTidXAAAAagZEVUNBVE+hF+ocDIXO9kjfK29A5Qu1R1wijQAAABIAAAABMEUCIQDt2lF3TL4T1qvgZ9wXEhK2BKd4MkM4mb1q/7T2r3DGagIgTlKoKA2KTTksFVDosXsFANQ7Ydx1C19wPJOCiwjoaZgAAABnBERESU377qHHXkxEZcsvzMnG1q/phFWOIAAAABIAAAABMEQCIEkx+1J++jEqYBujugTDbSxY1myU2I7FWYDqbf50S7CJAiArKfienezE/Xbh5moUdkanQmFr/JU8LaoHbLrIb/OJHAAAAGgERFVFVNaa55sBxK9/GbmoJOVkM2OyArOhAAAAEgAAAAEwRQIhANLl9sGUYcyrUWGEMIFnEYdpmoErFjekPq5GxuHp4ACAAiBd0bKIqpHNLBqK+VnJYfBekkesyB8cg5xLmeZDng69jwAAAGcDRFVLc/JlHqONSLO4CP/dvTmP1gCrW6cAAAAEAAAAATBFAiEAvSwn7NoTMc66EWpbFfGKNm9P6ObAUvmy9KE3O9SXoSACIF5HJs6KXs5oMdiMzV/ViNGGIiN1AekpvIoW5KpCeOS2AAAAZwNEVU9W4LLHaU5uEDkehwd02qRc9lg0hgAAABIAAAABMEUCIQD0ZHoLFJzQmo0RMWIJFwqoWZ54UPmusV3GICJzZmRGOwIgVOgHYSsj70U7UtApDThk8OvpgwJRgeOmAzNQ4V0ASRIAAABoBERVU0uUCi2xtwCLbHdtT6rKcp1tSkqlUQAAABIAAAABMEUCIQCwoZrMflQQpoESaJ0MEycavh6l0WoOz/2wXeLpn4xsRgIgYR0pn03pwYNbzfq/3jiXKUARq+k0Cx2gppoalp0b/gEAAABoBFZET0OCvVJr23GMbU3SKR7QE6UYbK4tygAAABIAAAABMEUCIQD68rrVAwFgA26FFgS14Qqxwg3dx+dt5APEJS7RyYBfiQIgfnqVRgNHNIgsVbPS8Ie3zyaTmX3qnvKwbgoByo4uUzcAAABmA0RWR1HgCpV0jb0qP0e8XDs+ez8P6mZsAAAAEgAAAAEwRAIgesGEAS/cbd6E1sh1eIifzVShxXrW0p892qVpBCjMumQCIH1WYPe8EJ4rRwbGcvMwRZ3L/Gdi97XOcMTvYGSBXOgjAAAAZgNEVkkQYzIW5+goHjPIbwK/jlZaY12XcAAAABIAAAABMEQCICHK+wgN1/eP1rX+KDLdK2iK9LMuDHGZGnfl6XpI7YJBAiBij03gd43DhmWvUR0/P9F1CXD7JlZEiZxsLLp6DIqMOQAAAGcDRFdT9LVIdM2KbIY+OpBMGP2pZGYew2MAAAASAAAAATBFAiEA/UXr+g+uOSCSb6ywbqLSnSPIvDPqDOgaAHsYhkYXs+sCIGldllY5jMEl5oUrzKlk9nen9kcy+mWEXTZleA9nGgM9AAAAZQJEWJc+UmkRdtNkU4aNnYZXJ4jScEGpAAAAEgAAAAEwRAIgAMPdjCoTCtQnsW5Gk+and4yPydpNt4ECezzDKeSekUkCIHAmIqT3evCX1HY6x7S8kot6j5u+eZBHdu/jFWiIltFMAAAAZwNEWESh1l6Ptuh7YP7MvFgvf5eAS3JVIQAAABIAAAABMEUCIQDv6T4fVX5Hmy0UnEyZZUlpreIHG+wkJYr2t1dLBzqpJwIgbv+YvvL3C9eZBTpb4PQ8yrWPaiKPhqJMfou+4cIyfY8AAABoBWRYSU9Ui23SS8stCuqSw6vU6xEQOl221xQAAAASAAAAATBEAiAVtPxx+KTWVpSjS487E5SjfkkcnYuqfaSouIcYrC3m5gIgAlpCmA1lsm9n5Al/5Z4qdXSQtkYk0nkbjU1mO3C/i/YAAABoBFNBTEXwY/4at6KRxdBqhuFHMLAL8ky1iQAAABIAAAABMEUCIQCJc37E9qfQy4ZcyhuNSywGKagH//CdqBxJxi0Rf63KHwIgfrv03qcbR6jZk21UjU7S/nAwrvjy3UgNlt5ikoFkUsQAAABmA0RYWTn6IGwWSJRPkuj3tibhy9941+nbAAAAEgAAAAEwRAIgd4yQlzo/Py30h+9YBdNpecrcrvyigc6Jf4pTji3SNF4CIBsD4iv2CFgUia89E5J4Zj4IWjYLbpfmbifx9K1A172JAAAAZwREWURYktbB4x4UUg5namh/CpN4i3Fr7/UAAAASAAAAATBEAiAFcZ1KenahjfbWe+c/twyr9KHzcBQmSbDEmarawRToJQIgEb4QYwuPngxSoJbZDedWpkxqAI8Hp5w3VnaQ92HHn1YAAABmA0RNWPBYUBWFAj0EDqlJMTTtcsCDVT7tAAAAEgAAAAEwRAIgKuD1t3n3XukXrP8DCEDIOlfDthyFE8CxuxHL65wfBScCIEkcar26rLWIJQAwyzCwGYVv0XFyisveXEpbawk+wQzUAAAAZwNEU0S9LwzQOeC/z4iQHJjAv6xasnVm4wAAABIAAAABMEUCIQCDAXGRkcGgesircX5g4HJEFonXKp4IQMgfLx1dgAnkswIgFOQ0d0WQQv/0tYUToYCoaC6FMNPD7ffeDJY7tczv1HMAAABpBURZTk1UO38kfyG/OgcIjC00I/ZCM9SwafcAAAACAAAAATBFAiEA8IGkvBz0XXPo4viMbmjUaXldGNcDpOTKH9aq8AFhd8gCIFuAei3k4/0iG3fDXNKmnovZCgbUsFXc8XM+aXP1hueLAAAAZgNEWU5lFn44E4i8gDqi8izZnQkwaOmABwAAABIAAAABMEQCICjCQDc94uINKBuShrG2T81iYOLBUN61YNtr8P91w/M5AiB5tGa//QQKiPzptf+cJ3I/wqp5HJyeC9XpvyCQAeCljwAAAGcDRFlYBC+XKsk0BPD8vk46Bynws5UjIQYAAAAIAAAAATBFAiEA5e7BFpyiBIZFPABPiALevdMZFx2U3wL8AE4+3JwOLHACICazkqZ7E6FTPUShzRfVF4A426f2FFzLrcN5ZY5tvFVbAAAAaARlWFJEZGjnmoDA6rD5orV0yNW8N0r1lBQAAAASAAAAATBFAiEA7vyIdgwwN8VhlFFeL1RVmKfa2CGAhQ3I0fqGjBDpHEICIFxr8GdttW/cJRmMRz/Q/D5vHUbBjLFi9R2TDEl0Z13YAAAAaARlWFJERwL4lldzmHWdXsgRXCD5mnMXR4EAAAASAAAAATBFAiEAp9x/xp7JiKMNT4s2EO6EaxALTmPoMn6BuuAbzIiVFd4CIG3AqUS6um2KqMOu6kJPXM5x3x0K6Pjwykm/NEJhKKGPAAAAZgNFMlCguERgoeeDOWksdGMAnDXwuaauTAAAABIAAAABMEQCIChb8ogEn4px0k8NVoZDkIGf4/Myq6bTPLDeNP+IyXFLAiBNZ7NFXDzT7Qc3TMLTyq8rp/xcusQPl7hXcpwbNcrtagAAAGgFRTRST1fOXGA8eNBH70MDLpa1t4UyT3U6TwAAAAIAAAABMEQCIDYN0xxaJhY6LvyCS//2k5sa8LWFEjePwij9RGnIecKTAiAgG3FqvsQdI8whzm01/t98dHZQheRuBz4hGvGfvww2DAAAAGgFRUFHTEWZTw3/264Lvwm2UtbxGkk/0z9CuQAAABIAAAABMEQCIFXR6RghugwgDNoA5d9KsTXjP+DCPer+dR3ftDJCUmgFAiBipDCtYGCutn3F4smvGe3TVLXEVniiMvMIAPlyqyv4jQAAAGkFRUFSTiQx6SMk73GFxl3U0VTPpPYya0icVQAAAAgAAAABMEUCIQCt1/PFLhqMMbAkqiC099Wk3hpJy4b8AVK1CbCRoM0m7gIgIi+JbkQVkYDWgwprlJnOvbrKBCZRU5KwibG5lafnnsIAAABmA0VOQqb7HfSDsk7qtWnhlEfg4QcAO54VAAAAEgAAAAEwRAIgEGdFNNO65/xAVHWhxb0DKjtTZRQGzsXK4+yyeGsSIBoCID4DgY94ARDiwdpU5AyBck8yqborqR58cQx09M+1iTU0AAAAZwRFSU5VwfoOgfXb7uDznTUQca7pbyCZxoQAAAASAAAAATBEAiAfpDxHjvHLC7Tryv7QnEOML03jKuI/6EHSF7wwM8A6HQIgMkxtsSDRh1hGhZtPfyy1K298X5HXXSzbCqobBqCIdJEAAABpBUVBUlRIkAtESSNqe7JrKGYB3RTSveemrGwAAAAIAAAAATBFAiEA6IxQJNdyiBe/XaGOxgQ7LBRmx6u0F4fyxJbC0Nz4CLECIH1cK/vq4grtom/eRB6wuNvy1RvMenhx0Q5YrJeDdJ86AAAAaQYxRUFSVEieBPUZsJT1+CEEQeKF9gP00rUAhAAAABIAAAABMEQCICxr9JVz2y6FnmjGg4e4iRGJWQjwheNRfAfjEcmoDOacAiBbovy+LrqTc3WD0RGVatSYZmHKBACVcswF9/cNczTv9gAAAGcERUFTRepe3vEoev3564pG+Xc6v8EIIMYcAAAAEgAAAAEwRAIgMsZxL5WDf0jNVKVFYCY/9keH0XgK3+nMdwDTkpXD3nYCICeesiV0sJYTLuxopKJbeZtDkmqZua/3/RsSJ794D9pnAAAAZwRFU1RJ85JN8UgSs9PbKRJKqdpDU+1eBKMAAAASAAAAATBEAiAOuf+MPsYc5ozuRjpAwqnREyClJKhJzjIirWDMBu5TLwIgLNxrpgfcwF438O2QPaVoaGFB4HiJr2ph57uKrKEL2qkAAABnBEVBU1mRPYrffOaYaoy/7lpUcl2e6k8HKQAAABIAAAABMEQCIB1vHoSNrbtkmFQb56a7vvwnVV7XbSy3nyG+Mf1KF9RpAiBgIMVzYOBQJPD4QicTje3yvpqYnK3SIXEBRkRYnX653QAAAGUCRVoAq6b+VVfeGh1WVljL3d33xxCh6wAAABIAAAABMEQCIFpu47YeJahv1qZEBJ4XMs9J8+k0p+Zof1yuOsaaeXeOAiBlpQE3wHxo0mgEfk7+O2o5uLBZ79fTcN/44eBGn+CxlwAAAGYCRVoet1S4NV0xhadCkQm9515HNDSyawAAABIAAAABMEUCIQCUB2yuz7n+EXvj96xlpm5QOk9itcPxjuihcBRHh8s8VgIgLBITKrDGnDGXVNoEmPQqluTLEBLhpXJmbfA89DkFIuwAAABnA0VIVPnw/HFnwxHdLx4h6SBPh+upAS+yAAAACAAAAAEwRQIhALZ1uYUUh8Ljo6kAuWiqvM+zwmow7Yqz4wxsPECPJeeDAiAU+vhd3zFBoIrE/aBuQf1upE4bEQFazhK1R+58RU6MpgAAAGcDRU1UlQG/xIiX3O6t9zET72NdL/fuS5cAAAASAAAAATBFAiEAyZ+xleoB5sDFbQ87vAyGyOUbiYbUL7TphEsTScHJIAMCID3Qnl6VozFQmbUMOsueJ9CPGdPS2lmAEMclMqC+Dzx0AAAAZwRFU1dBoEcc3VwNwmFFNf11BbF6ZRqPDasAAAAIAAAAATBEAiBNaLBTE5yxRSQDM3QDGosIH8nwFAHy242ZJ7EGKJCiDQIgTlz5gE5WqX4+DQF6bF2rRxJ7jqJ1a1MJb6vYQ1XhjCMAAABqBkVhdXJpY8NsZWk+qeIHrTXU7i+2xfb0O97IAAAAEgAAAAEwRQIhAOP/U5eSr7lOv6N65DsLc8Drov1yQxFHy2yCxXgdxFKZAiARY1rG9uwwNFknB0pthwrO5SP8hKQgwacEyqhkznQm6gAAAGYDQVRPtVHQjSGJ72e0eIviw1wHQ2k2JcoAAAASAAAAATBEAiAbg4HwlT823s9fNzV9SMZEJjfm4U4liMA+dCRww/PCYgIgYU886cvzyTbpyq0dbgtTCzPFm+neAxfA7+nC8mKxjEkAAABoBGVCQ0ivw5eIxR8MH/e1Uxfz5wKZ5SH/9gAAAAgAAAABMEUCIQDOB3rftsnrBoo/FGUU5+ht3K4dGboAm2EuPHXSZy0Q/AIgastglpbPuUuhGiQsXWFF8HX+4uh7b2xwMpG72WuXHMIAAABnA0VCQzHz2dG+zgwDP/ePptpgpgSPPhPFAAAAEgAAAAEwRQIhAMZjT1rVm08S9wPoLWTMGFFVnFGbqAZTjSXHozsq5LmfAiAvE7kZOzF1YuFRloE3JP4gSrhJGP0JfX52H7tRQITmfAAAAGgERUJTUG8GPA/NoOptzAHVp8swZu1PkNGoAAAAAAAAAAEwRQIhAPxbCuH1Vw36+sNk3ATZEC6vvsbbrtlvT9JMcqXRBwfjAiBwssApOwX9uJkHmTuiA0/d42ZTXZ0zx9/1joQhZz6lkgAAAGcEZUJUQ+t8IAJxcuXRQ/sDDVD5HOzi0UhdAAAACAAAAAEwRAIgLawIelCbJzjX4ML+lEeE5tp6LrI5OhLuQ+B20s6nI68CIETNP0JCjZnH5hQchU9KK7gZy9oi1d+L/xIrWHQCbya8AAAAZwRFQ0hPFxcGt9ETxo8sxops5jsdvc33sjMAAAASAAAAATBEAiBZPkiWBhcg7oLj9LKSK4dpVkpjS45/RJbjINazgAX4dgIgWfNTDZAaKQ9W1VkiXza7XBRuEV4tNPUKn6QA2OHZMbUAAABlAkVDEv0Z2sD6thvtXg8JCRtHDEUtTWEAAAASAAAAATBEAiANk4Gh3tRJdJQy6w5XP3VWWWPqb2EC8JpHNO5zRZAubwIgct5N/jK6y4ysYr67TmO6G8nDbpbY8wz6VQnuqb69pg4AAABmA0VLT6aoQOULyqUNoBe5Gg2GuLLUEVbuAAAAEgAAAAEwRAIgJe8Lz75maGrIN3FU/nbzrGXwAXBf9jGVtloMJCrrvhkCIH7xbe2o8SGBxlnxpYCzmz2+FJlx6+ENBghD9epQ+rZTAAAAZgNFQ0wI5BEiDkfj/EO/uDIYarqVEI8oYQAAABIAAAABMEQCIF30rW5Rypf0vcsLKJg7zwpg8Ss/U1R7ebdf79U7QVqcAiAI0jS6s85ffzpNIyjJQep0sLfcSv5qiQnzxDI/VQdg/AAAAGYDRUNOpXiswMt4dXgbeICQP0WU0Tz6i5gAAAACAAAAATBEAiAvfon0Cr/jBrk9KN28rAEDAZeu50amaUSen7x6Kzoe4QIgBSzAoqZgEjtK/xv5vbJELa4g+OpB+WG3yn2JYaN+C0IAAABnA0VDT42/mkyZWA/H/UAk7gjzmUQgA1cnAAAAEgAAAAEwRQIhAI54dnjAt4inOMKF+N76+CW6iZdSPjUFRcKzgGK41enDAiBh6I4A84jyfiNGogpZtntp7bbQjtDzzZCnpceewo+IRwAAAGcDRUNPGRVXco5NjKpKyU+Gr4QhSMD6j34AAAAIAAAAATBFAiEA1pHk6/qe69at1bMU7MvzRDnDSMRcWosVJycanHM1AZ0CIDaP0r03kvF7VW2qdVXhyt67WtHu9j5B1hkopb21rLyLAAAAZwNFVkOqhD9lhyol1ulVLqCzYPsdXjMxJAAAABIAAAABMEUCIQDqqVAKOaPjoQHkpN3I+UNOsyiZWDW1Pv3pxgoRiaGhdgIgTlWEAinJOlnEOzT7JoEtUTgQ33tm6KXtPqTCZWOBmNkAAABnA0VDT8JC645OJ+rmoqcopBIBFS8ZWVyDAAAAEgAAAAEwRQIhANdMSaxdTDQxdogUZrJmqi2XTrf1u+oPOnvVnn9PqdVZAiBGLHsDW+XUzFPAaOYyWB7vR2vq6nsxmMxwbmue4w4jQgAAAGcDRUdDwOyMrsVfN9R/v6WVcnQYhooh/UgAAAAIAAAAATBFAiEAqeiiqpAfUtRA9JVB9WOHCEVmMDRdhKdfGF7EVYSYVT4CIHWO84kM+ywSOTTdF68KT9yacYBOPOBasIPm/UQ+nkImAAAAZgNPTUlAJBPksXXwjO9G6x7ufp66UNrrbwAAABIAAAABMEQCIFXbllFfYyDAMrXuDDDK9FjHvvjXevbgq+WVTmpDSRjhAiBjFtF1M5KQkXNrNa0OiBCW8ySb2Se3+vS57QPgCrk1LwAAAGoHRUNPUkVBTH7LshNGxQH9B+sWXkBhIPoyOBwWAAAAEgAAAAEwRAIgdQUQ3IBYyGdaAv9jf60h/3Zdf5lEZ/ZDcuKPjn+Cog0CIET6P68BRj3go/kO95Y2etXRElKc2XskS3c2A8Z5zXugAAAAbAhFQ09SRUFMX7BS+KM9i7BoQU6t4Gr2lVGZ+fAQAAAAEgAAAAEwRQIhAOR1eyeQdnirR+OXT+WM8aKSINa7PVK/BouTtOcgZ629AiAJ0Wjk+YXWNWrlBbgnie19IcK+iHpvkrA97zzPUSd1IQAAAGYDRUNVj8m2NU6DmrHIsx9K+lNgcJK4wuUAAAASAAAAATBEAiBhRL9l60o8EW6u0LIKESQDtJ4FZBd9vGGmkzQPrbuysgIgWkK4C/JgQI/LvTmBPN+3TqmmN2tdnYuow9n4e2QEpzgAAABnBEVDT3jMzRup96zWEXg04NKPJWRd7LFzagAAABIAAAABMEQCICWaWCwWCN5ok5anIj5v0Lm1bKmRhebmSVSJ0e+WTkFSAiASdi5v0tL9ZcfJJBoabz56Snj+S4zN3slTppddVAmE+wAAAGcERUNQTrVXMqFbPcXW6NSt9AY083Rw2nH6AAAACAAAAAEwRAIgIUHfq2kdgKbxn2Z2tzQCIaoYrpIBlJedMSF75KJEq+4CIFGGAtbnj1Ml4GCri21FSx5pwnNYCl43zVW+nEsC8BgWAAAAZgNFQ1CIabH5vIskak1yIPg05W3f3YJV5wAAABIAAAABMEQCIHRzEOt5GOlNSJyGysD+Rzq+EMrfaECpoKFaSX6RHrwAAiAU9iqfxqEG789oDep0tGWPO/RF2JhGhYV+HRMV+DYYvQAAAGcDRURDnVljujLod4cd/z4uaXKD3GQGYnEAAAASAAAAATBFAiEAnLN6k452T40/ZJk/fm4NkRZOkYVyWHK764/MiCMriWUCIBSzW9N3O0kIDhpBitq1Z1jg5oFqfQXWxv9i9/EfVw04AAAAZwRFRERB+76bEULGmVElRfR5N+5vrg5LCqkAAAASAAAAATBEAiBSfOT07stScUDYqZhzpAgIh8KLIs/4GcLaKzojF+5K4gIgBmJqa5/75Tulj0pJ5sQoK2hwvCGlpW+/7ibmoqFIoEUAAABnBEVERU4VWfobjygjj9XXbZ9DSthv0g0VWQAAABIAAAABMEQCIBknI0i2JuGArSTf4HTSinjY4fdPZ0QbKfruSvxq5zYYAiAIWFz2GsBxOiQUYKAs3+K1HQ3u0PRiiTO495ctSQdfEgAAAGcDRUROiQIPDVxa9PNAfrX+GFQWxFew6T4AAAASAAAAATBFAiEA/xoXX1H+n8XYWpHXys3Ax04ZBAgwijsINMioBGkxZRwCIHoG9z0v5UKdkOsLLnR4YGOB4XOcXFxbhpQFypnFoa4iAAAAZwNFRE4Fhg1FPHl0y/RlCMBsuhTiEcYpzgAAABIAAAABMEUCIQDQ8Nexdw384tqEdHrN/CfLmMpOlvUJEN/R7Ehlw+wOOwIgEllpAoAwzMDUEr7GIihhqP3q6QBmDuu+19rNsl/CeQAAAABnA0VERwhxHTsCyHWPL7OrToAihBin+OOcAAAAAAAAAAEwRQIhAJmkTl/x1GhUGBuvs8Al8yRSdym1Cy25nGP0cIwPCxlrAiA8rbK8YlSnDFV/CmTiWtC6QL6GExw3glnr5icJyi2lfAAAAGoHJEVESVNPTu1YVp1RalvTdCfr1ZKmYZwMWBlTAAAACAAAAAEwRAIgPLFDNc7r6UcJ3T8gxO/BusJX4oY1Ku5tr+azZUae1xECIHVry2SGYEX8Y6jzB2c9Zz/K6Gz4rbnoJUWO6+ip6rS4AAAAZwNFRFUqIuXMoAo9YzCPo58pIC6xs57vUgAAABIAAAABMEUCIQDZ0NpPXOd8qFQeiX6mY8XsBD8SXrE4ODvIxNGowhHVwAIgPLbH2bgTAyZwf+weQOygrn4p00+HYJ1OFnhbhTdxRuQAAABnA0VLVLqxZd+UVaoPKu0fJWVSC5HdrbTIAAAACAAAAAEwRQIhAL1VIKNSf9x0tD4hqFgHAYHRm53uKBG5UIqmhoHsdQNHAiAwGvsHS+W0NBB/3ux3659BINTkLHzVJIpETqPCB3U5QQAAAGgETEVEVcdB8GCCqkf5NykHCtDdleIjvaCRAAAACAAAAAEwRQIhAJn7p0RNAe5vM01Q+x54FsTi2/lt4CbzeNNgXDX9uHj1AiBnXe5miFn7PK+UY4pnDrOhitAH7bACov76XjkAlUSf5gAAAGcDRURD+h3i7pfkwQyUyRyytQYrifsUC4IAAAAGAAAAATBFAiEA3g6/Ucq5DXWBC2V6vWnjg+yqWK5Ogy0Y2GHfBOJXEZYCIDPkhf2EVScz/0BZsMp9hEkIsaZHYXJJPEZ2nWnSzG1zAAAAZgNFRFXyYykuFNnY7NVbWNrR8d+CWodLfAAAABIAAAABMEQCIHN29wtHbT/KhNffjnF93WD9X0Tf6Y9pRYwTfgsmenpSAiBbWcRAOJhTC/S1cyUQBqEzRv/6mWWktNb6Vf5ES9cH0gAAAGYDRU1DCkJRIoUu01GUaoKLNIv9zaUe/9gAAAASAAAAATBEAiBR8xm82juMY6bmVLgsy1/glcFU0AO4Xx3/FgfvMSKkKQIgWbyFJ+yU4n3Z4d95gIvaWxwP1Elh8Q/+YkEnDliUCS4AAABnA0VUVBISto2FVc8LCPM3G5JrPhFItSDxAAAAEgAAAAEwRQIhAOyAFpwdYjAV7tDN1jmG5y38xtlaC7uNnWW5Mxtp1nRYAiBmtP6aCZfUI1H6BhJO0ARdNL92p90+6YmunkFnNKGf2wAAAGcEV09aWDSVD/K0h9nlKCxas0LQii9xLrefAAAAEgAAAAEwRAIgGwWGLf1a+EJsARVKFIZIXCbt067RLeoV0w1ikcUxqyACID7KNd4wTmp1KoeWd8QjD6LzC/KAQZYNRo8SAhDGGrJgAAAAZgNFRkllbADhvNlvJW8iStkRL/Qm7wU3MwAAABIAAAABMEQCICp0Fo/t1pWThJcTnYRkKCwz5E3cP3P4rFG0IOQYXJ6FAiA85kAYkQ53B7sOv9Cc0PDef/dw9bKLdnQ4nr+VFnNCCQAAAGcDZUdJt5Ak0Xe8j1BJkRjS+n9Csz+8cFYAAAAIAAAAATBFAiEAgaeXObIonAwtm0cANhMa3YLgASHpz4Ur4e7PBmgZOzQCIHsn3X4RtzppQoZPubgmpWVkqEfB3K8AY9TQmd14gPl+AAAAZgNFR0eZmqZIjwduZ2VEjwkKuoP7tHD8mQAAABIAAAABMEQCIDhZuvheYk3ridxZjzgX+64uzRynGfVESchRO/x+8HPLAiAsFo5SpIjEctE0yw0V6Tk4WYTXKsroS8m5IduLdGt8SgAAAGcDRUdUjhtEjset/H+jX8LohWeL0yMXbjQAAAASAAAAATBFAiEA7xYSpu4Xrit87S/mYpk1ds0q6aJG1dcdn7bRrNH0RkICIClbpGW5ha0EPFubSCsRFRADf3cywHf9E8ptQv+MVG2aAAAAaAVFSEFTSClC47OOMxI5Zb+8IegCvpQ6drvGAAAAEgAAAAEwRAIgQgkUdLuEAxr0RGWXhd28rIJEKum/UgiK5nrcuy9cB+QCIAdnkVyjXR24i45uMB+1DuJhHb6rAtgjXC5/W2g6iNbpAAAAZwNFRE/O1OkxmHNN2v+EktUlvSWNSes4jgAAABIAAAABMEUCIQDlQk5FH9SxfokiHwAVh9iiRksoyv7eqMITAQd+cN14SgIgGfNM4WavAnzXjo62zsE5xix4kyi1A02KlYzPXQc3xNMAAABnA0VLVE7NtjhfPbOEf5xKm/P5kXuyelRSAAAACAAAAAEwRQIhAJcS4uleEKAwfbVAtT9Tlxy5+M2N8D8Z5xvAvHt3MRh9AiBf+8BZVGI+GAxgKZmHaDvt0fMHYlRs6L2IR7fkrwLecwAAAGgFRUxBTUH7REwfK3GN38OFy4/Z8tHXdrJGaAAAABIAAAABMEQCIFMPi74TE+BlOnaEgN+B6krfHKPgnalVqgZcpaR6bXswAiAPytmOVoRw9XgAYAY6H7hvMF26Xk6bhd1Lapo0eJehnQAAAGYDRUxB5v11/zitykuX+82TjIa5h3JDGGcAAAASAAAAATBEAiAKdiax54sUyUAekmO5SRdJZ1mp+sNKKSgviarvrdjoggIgLNXl9pk58QO7B7yj+5MLaLooVc48Rd/J36/1df7iyywAAABnBEVMQU4bUDa+wbgtRNUvqVOjcLPGzZMotQAAABIAAAABMEQCIA/JgdsUD9yFjK2+/e4GWwc1I8DqlP5xP7TduA0XEnlwAiBI7MVHl5tGIUg4wWw0WwQKCDJ5riOpPItmPoRroobKXgAAAGcDWEJUZPuW0Dlfa/EF81IzkR498sW/TOgAAAAIAAAAATBFAiEAxiVU+jZVLjLPTLgZlcn/6eGfhbLuYAbAj6iwvNpeXTMCIAtarlQ+VseIUmKNfkJVmj+712HJmuIRIl5lvC3/PraEAAAAZwNFR1Qqpc45WwDMSGFZrb3ZfFW1Nc8s+QAAABIAAAABMEUCIQDHfbIFUmNExlV95VrQVMXsrlZPdyzQpmIxYRCsZzY2xQIgGWgoczG8tkRsRV4i6N2EZTOinWKnYHajkdG1cedZsKgAAABmA0VSRBLcdncoEFqkFd1yDfvQ6h2FhBFyAAAAAgAAAAEwRAIgZGaniM+yEa2QvX/Cu/80AXmvYN1GGM6nUHAmzpWcVNQCIDI1t1RamkMtxTJHw6AVFfAAzGM1dQWFze/pYOg63sFTAAAAZwNFVFJx5fuHk7Wi+wxJGJMBgPizZQDLuAAAAAgAAAABMEUCIQDC78qzlJg/7OBj13D03isfqlIhk332SfDUMczpwui68wIgFN3D7B7pc8s12B1B1BvSuD9Jw/dlFnSe9RR2ovQ1GOsAAABoBEVMRUPUn/E2YUUTE8oVU/1pVL0dm24CuQAAABIAAAABMEUCIQCfWfDzVpXtYG6QShGzLgRUNtIKfImYM5J6akpKPqLdcAIgDbBFVfd/97QOxalL7yPj+aiMRYQ/GKi3kOxQe0pOCYIAAABmA0VNUJtjlIb0pAwaemcoEU8kE5c/X6TGAAAAEgAAAAEwRAIhAOzMMTz16hlLXAqqkw9S+wp22zSta9fMnc2F75c9C7MnAh9PThSbcL0qKWta8VFgHPxs9T4IfFmevop+qf5ghvzQAAAAZwNFTER5bke4Wg11nzAPHelqNYMAQjXU2AAAABIAAAABMEUCIQD+OGy9XmRyJX2IG6R1MQvhs8goTFzzzWJL36ixqNPsRgIgMbd+KoEUuKnOKJuwgBVVNdVE2jrM3mfyc9nUjN00tTwAAABnBEVMRVRsN79PBCcSyXinPj/VbR9XON18QwAAABIAAAABMEQCIHjltKMec0+jw8W+xA72vucgzXtyQgvposUV+bsHro7yAiAxVWWRcRWPND4/nnZVG3pG1klAFBFmI+OYNPKNjRVNYgAAAGgFRUxFTkFvDyjO7mrmhu4Pk5N1Z0wBsVY2WgAAABIAAAABMEQCIC/8kDBp4U2iJ0AjGISH2yYeih2jUMXINaY61/vVp+ecAiA2wLtKxrJ9nZvGBM/BK4v7z9xAqhxZ2/aBP+crA0IWQAAAAGYDVVNFFH49ZE1Tra3RiiggG5HiuYrrf5QAAAASAAAAATBEAiB9AfBXN9AI4NshwbsugSCKSN8fSOQx3d69xAUKKNUJFAIgMbNVDNeO6PnixcOooqs+hmEFSIONFZh88DTBz0BMNqkAAABmA0VMRUi+hnskDS/6/2ngdGEw8sAn2NPSAAAACQAAAAEwRAIgFas0vOG1PdR8c5W6Zc6/RuD6gnWsM9udIG++skRwRR4CIGdhtkb0g4gnJi20430wTAnI+bqQtPJ9GFJ4xXb5eL2FAAAAZgNFVlRaqiGCRZN3tsoYsQcS+fYCFAdkrwAAAAgAAAABMEQCIC1XC8erTNR7UXO6xtbH4FypseSljUtoGeUXTVlDe1SyAiAcmsuEvFnpcP3P+r+PCKxBGfn59T1c1n0bxAlO5JvdzwAAAGYDRUxGvyF5hZ/G1b7pv5FYYy3FFnikEA4AAAASAAAAATBEAiA6MWdvv/tt4CfqFNClpenwdivsdq/NvaofB6XOP7pH1gIgMTo2kZqu7tW2H5HJOcfZs9iDebV6VvUqwLOAn5662a4AAABmA1hMU2yGL4A/9CqX1KSDq3YSVq2MkPT4AAAAEgAAAAEwRAIgLYw5nouUaM2Cy6iHqcinIE47XGkP9UZrKpq1WEWR5wgCIEq8R/BJEklZVjWQXcE1PgIOwtecPVBAclNrG/5vsvDoAAAAZwNFTFQ4ApGpqFk7OfEjzznMHMR0YzMLHwAAABIAAAABMEUCIQCyoB8U1nQz2wln4Awo/JTmP9L8SYJcC7yc+HjSTl5qgQIgFWMy24KjAUaJtH2pesiWlbVDlBJiHPLVwNSoB+foE1AAAABnA0VVTWq0p9dbCkK2vIPoUtq54SH5xhCqAAAAEgAAAAEwRQIhAIhUm7ibSTZP+G9Uep7Ey1TCgOZU3ANCQLWwzXSEs8fdAiBa6AbuImvhNfP7akAEgldEvHGZl7SfD2sDKFKaIIUG6QAAAGgERUxJWMjGoxpKgG03EKezi3spbS+rzNuoAAAAEgAAAAEwRQIhAOv/CZWwsJGkqRrlmuDQY4r9zqWd4j2StwCN96uesHrAAiBslvWDVpCWiEZavTHBiJ8OXUQciU33J38eiqp8MWzPngAAAGcDRURIOwRv3pEdO2+cqkdZ28+wNKh2SLoAAAAIAAAAATBFAiEAhMVAg4yopQ2U/IrYaODmcxdAeEP+R491/AqTG/4kJ5kCICyzjXuZfUh0RY7ugCZwHcIuGQZluiNt870Eb20QzGocAAAAawhFbG9uR2F0ZaYcQWpu+Vw+MVM2NqzbVdCEZjMVAAAAEgAAAAEwRAIgRpJ9U+P1ZmnLrjk7PfmruvqfidewPGa8FHPdoRSmvXICIFtWlryoocYJcXv+N7QO73ueeSxeGoSvCJyXd63ksD6KAAAAagZFTG9uZ0Q0i38xBrXaR0BTMlNNBgaf+c5NGwAAAAkAAAABMEUCIQCvNKgo2hF4e77wAyf1ExTgTzIzptVbhCyNXGbshTTjsQIgTfuJM6IfH81e79/ub8PrPd1JhD0DEvKN2SLfrJT7CSQAAABmA0VHVEUOf246LyR6UbmMOSl6mlv72zFwAAAACQAAAAEwRAIgaHyDwprE17OUw41GFObh2XScfWLhtrU6QsvU+DLKlv0CIH48SpML907TEuSG9zCNsBXS1WUMe6FJZbEEhFU21WRrAAAAZwNFUkT5mG1EXO0xiCN3tdal9Y6upyKIwwAAABIAAAABMEUCIQD6kWvhhUUG1BrrT4Ra1edgNft+ghXvvI6JNASXuAiAEgIgBtAwd7kLGegZDAmpf/cLSn38qglbMmnk8uQc8LuZYrgAAABqB0VMVENPSU5EGXpMRNagWSl8r2vk9+FyvVbKrwAAAAgAAAABMEQCIFRErUwbp0JBRd4STkgMq6hgLCBBzlMHUSKZipH55EyrAiBUlh+nT4S4jZFzjI+aP/2F4TLCv/SxI/UkSlC7r29znQAAAGcDRUxZqVWS3P+jwIC0tA5FnF9WkvZ9t/gAAAASAAAAATBFAiEAwiiofmcBRkiabiBiZaU066mbuQvCtdpqif7C66LXEUgCIEAlYzuY/esuladg6+tYMlA68jKeufWMPyubnzOGAxXUAAAAZgJFTCeBJG/nB7sVzuPl6jVOIVSih3sWAAAAEgAAAAEwRQIhALvfkTGC6tllF18zaQ2+B3bvSnho5kCR2xFGG2JaLDNaAiBNubwIks/mk2xllJM0LpcIpHFvflLqHj2kUEDgODyS/AAAAGcERUxZWIgafiXURZHEZ6N9qWrfPDcF5yUbAAAAEgAAAAEwRAIgR604zrOU6h2stb+k3MsxHbHvYGRtMQMRnN9Fhq5v6YECIFgRi4Sl/a/NgnSScl1xMkXkgqp4rge2CMgGvUkNLD1xAAAAaARNQlJTOGRn8fPdvoMkSGUEGDEaR57s/FcAAAAAAAAAATBFAiEA5o0W1hbbe6tnQb4tSZ26mNauLsLLZJfpwXmEJ/jinQsCIBHr3uiejX3sJydUID0KhPZ668pJ5Ui5KarEZ+XSmR0xAAAAZgNFTULbCswUOW0QizxVdEg6y4F4VcncjQAAAAgAAAABMEQCIAkoeF6jc8yTnvgVP83cTYiLwY768vxm2iS/e8pUjS/TAiARg0yLX8IHem8z1Q/yfkE4/E0HtHI5o4rkEDXUbJdImgAAAGcDRU1CKLlPWLEayUU0Eynb8uXvf4vUQiUAAAAIAAAAATBFAiEAoCPdg0Z6TP7QIIgQWukibeKmx/rGMhascwz0lOp0ArUCIAO+i8XC1Hs+5jw0EhOwcO/Rd7t7HVs1JSjBWD/IqusmAAAAaARFUk9Dm58NrSdRbCN8bqMCTUza6gxrLOkAAAAKAAAAATBFAiEA4vlVlQ0T7nbPxqu9EL44IZv//W+aeKOwI1VNJYK0Zt0CIAke+AOeKxucAJ1gAKeMMXEUqtflw0xGvVOSDk2Ix6dgAAAAZgJFTTWwhyKqJr4RnBYIApzLyXasXBCCAAAACAAAAAEwRQIhAJHgRLVSZhPX33CGwM4/Xm+4TwcwbTgWjhz7BIn+pocGAiB7N6lA0hYgXohHb3tr85YxZaQoAZzFyaGYKwFiTRegbAAAAGgERU1SWL28Klsy86UUGs0Yw5iDBm5Nq5d0AAAACAAAAAEwRQIhAO9e1MBie/PkTG1sUByZsVnXXsPJy4BKPI7aL1IsfYksAiAXz0sNwPnG7KKk8Rl6b031xBILW/Q1jwsVZeOezOQYEgAAAGYDRVNXWnWgk3R7cqDhQFY1J1Ht8DUYAx0AAAASAAAAATBEAiBgczb3axotNNXBV2ZZWWhPNhZCmp45mm6ZMULQiz9ycwIgF81VyA7Rk7shpffEbokx9KuyvJBg+b6hqxopoZ0O0JsAAABoBUVNT0pJy9OAwthN6v7Qn3mGNwU1NQV2TyYAAAASAAAAATBEAiBwKKW+XuOO3bcV9hCpglUmJ/jsumKRsyrZNwPYwPU4iQIgeBER9zMZV++Qx2y4NFW5CrJGjOCuacleATmuBmg7W+8AAABnA0VNVrgCsk4GN8K4fS6Ld4TAVbvpIQEaAAAAAgAAAAEwRQIhANvXe+rFO7ZOmIls2I7GeM1Qv4B2ocavda18anrqwRQ5AiAZCzw5quCxPSaeWAqmMqzjdaGD53Bnj34mKRmY/rSozAAAAGcDRVBZUO5nRonXXA+I6Pg8/oxLaej9WQ0AAAAIAAAAATBFAiEA2eT4keah94EXDQtovomHBscWGpvIrSp5kbAUCU1OwJgCIB9qFRw5AVVXPKN5qY95txQa1bkzh0pHD7o6ONSzVAQHAAAAZgNFU0Q28/1o5zJaNet2jxrtqunqBonXIwAAABIAAAABMEQCIC65Os3cep9MQuDgwGOvmljEuRVpuC83kbyXjVvOsWkcAiAn3LraGPmBEa/bqsYXLstZzX/+TAb8JZ7E+CKdMlI9hQAAAGcDRVNTJK4STEzDPWeR+Oi2NSDtcQesiz4AAAASAAAAATBFAiEAiW/xypNOtQn9Y9UctJpiReTDS9YWXUu+0QN4Eenv0TACIFHUq/tsqkJNT3lMhv9S3G6uZy4CbpZReJ70DvwE/+raAAAAZgNFTVUTKovo55kFJDYJBf2yY+GJbLWOywAAABIAAAABMEQCIB2nC0pQkfMcvLh/LsdKMva4c2w5xGpbA/xnk8NxBUFIAiAkLxoogyRUyH+Z+Ean+hwhfLF8ro21wiHiF4jsi+QP/gAAAGcDRURSxSjCj+wKkMCDMovEX1h+4hV2Cg8AAAASAAAAATBFAiEAt2qz13t5XBP/7AIboU43xVlZaqc3V8MG0KIPe6LeG1sCIGZ50Mx5RB5KNhTxqhplBQXTEiO5+JTjrBrN0cp8Zsl/AAAAZwNFTlEW6gGstLC8ogAO5UczSLaTfub3LwAAAAoAAAABMEUCIQCo5jn1pfJSgkJ7El9ukG+dIQPRL/KMoBcliHsdO0FgmgIgUmDD4zDFZVFJybXKeyOz+wltSl7wf7rzq0OjanMHahQAAABnA05SRxQWlGFiscLIcac7B+ky0vtskyBpAAAAEgAAAAEwRQIhAMDoZTNKeybqPVfYRJmp0nh+K+kaoOdaOn2U5T0Z9zcaAiBbV9mKLXRD39pYEYY2JniBecLzglJgGjrzMb/Fq9w5TwAAAGYDRVRLPEo//YE6EH/r1XsvAbw0QmTZD94AAAACAAAAATBEAiAQrowcbCbTXFHNGlJ/xJDTNopyuUPfUzX9i+k+niqdkgIgH61Ez5i38Llxgs97O8zxObAqwerA/3PEcwg/wDpgNCMAAABoBFRGRzFmamT1VnwxRfunyp73NkjNT6IAjwAAAAgAAAABMEUCIQDtQFdvAQOKc+2O/B3/CfE/SwyiQnvi1zUMGOuS2cbVYgIgbE84EWxubCjk4iM97rIx34xUpNSo/tVcpoM22rdpuoUAAABnBE5SR1nCmsrGR8Y9vYYY6BfUHqneaRdK4QAAAAYAAAABMEQCIDwa4bLdH8svk0RSqrWdeXgKMC9z16PNdouj4Go1aqfOAiAgnA9AS+eE3cqyQATU9FcAfKIJuKYBcJQoAS/9nIszdwAAAGYDRUxYkEjDPHuuC76a1wKxe0RTqDkA0VQAAAASAAAAATBEAiAW+v0gS5vU38WCGstkDlkU7hoR7rPQslQjemxlCobaQwIgBfdxBVSW6dmfpR4rB+CyA+32DGQxy7tGtIgaqM/uMBcAAABoBEVXVEIXjIIPhisU8xZQnsNrExI9oZpgVAAAABIAAAABMEUCIQCknTBOPwEvAA5GY4rkhXrsIGXlhmYxJI3p4r6dtDqVIQIgKbOKrqEkfDOBUCZCF4OC8fxa6Z1htwowlak4EUTXYrwAAABpBkVORVJHWf3pijv1x/YzauTOG0MUiuq3t8iaAAAAEgAAAAEwRAIgL8liLXE1JMV0IHUnULprMzGDTKnHPHDFkj577ICMVbMCIH/aCw5dTZMmPsADoARuWc4yVAzUyYeLXRvJbilcNRoUAAAAZwNFTljQ16nyAhlY5R1g1pZre77Z0csitQAAAAoAAAABMEUCIQCxLdzveOGUKX028Nh9BG8ISvGssIvZRRUvl9n0VLtNcQIgVggiBvPB22lUc/hH/i+c5w3mrMcWaUusC2JcZ2j/j6sAAABnA0VHVF26wk6Y4qT0OtwNyCr0A/ygY84sAAAAEgAAAAEwRQIhAIJDo0EVqRh5rGnzou0121AqJbytTlfu2qpFvMKTKqBfAiBwUsKVYGZJYIVUHxIy+FfDarXAhBo1nEH2HqyiIR2hqgAAAGcERUdDQ6+KIV6B+up8GAziK3JINSUSGBO9AAAAEgAAAAEwRAIgVi5WCPe84yx8H8i8wT/P/BT+8CUK46pwLpkarJ8EAskCIBF90gG9NIFU4LBkfZUZ8zAXzOrFHjaxvH2GvaZEjeR3AAAAZgNFTkfw7msnt1nJiTzk8JS0mtKP0Voj5AAAAAgAAAABMEQCIFnLY1qXAO/KUN2qjXHRltQwaim3Te4bzl5uQh0YRk1XAiBF1T4LFbxUWpyKeQpDOUt0J6AOe/gZq2RZjH4Q3pznbwAAAGcDRU5K9inL2U03kcklAVK9jfvfOA4qO5wAAAASAAAAATBFAiEAt6NHEO3Vtm80WUWPcvbm1d5aB0M+LqQ6yGKF2KZm9KECIBwhgiy4fvR4xTWVJuMp0EA6od025oVn1CVMDGH2kuV/AAAAZgNFSlOWYQGG86uNc+vuHPlQx1Dzsft5wgAAABIAAAABMEQCIBA5xnBMSzNH2xd+utn+HxS9PWpM66V8bN9wB/hmD7QlAiBoZFkGdi3N1IWMGX175705JWNRgpLFflJm40m5TFQZKgAAAGcDRU5LkrkU8d3LsdEXpxjoPJ7X6zL8RNEAAAASAAAAATBFAiEAkt/cy1piJFswKt4nT2ogqTRWoZ+xq2HR2+6m/B7nNY8CIFuzBK9c30041wPgIvXbpdFj9C23woPN023IqYCzM917AAAAaQVNT05LRZIOTMXFBUjtKCXenjgKTXsqf/FDAAAAEgAAAAEwRQIhAOb8vmn9NPW0jm6dQX3krZbnAQYKrTmbf0Cenh5Ex1b5AiBvNYkC+ZLiZc+Ktxc+MnoP60ndxCjIXlT17QxTHfFrcwAAAGgETlJDSGn6jn9r8cofsN5h4TZvdBK4J8xRAAAACQAAAAEwRQIhAPY0jMtOVyMk7E7hY2qBBsTdfKzWEQSGsxM88ol1mTI0AiAEY69ii9hOkDSefa8wz5d4xeEmpPWrkmjMETSic4N6PAAAAGcDRVRNYCDaD3wYV9vkQx7JKhXMMY2TPqoAAAASAAAAATBFAiEAhSFdtKRHCIaKiFeIbI+sI7l2Htqk87yfjocxBqjauhYCIGuXthyh56YAr0sJbBFZZHk9Sm/OBrE+GJE25NOPUWVsAAAAZwRFTlRS13nuqZNrTjI83f8lKetvE9Ck1m4AAAASAAAAATBEAiAIXT7775silOMLB1WBdUX+7McbGj7/UOlGEAiUtARQQAIgF++mT5nedJGGp9IBITda4u8r4UFmr7/kUZkr6TnWKnwAAABoBUVOVFJD2dAdTLgkIZqPSCoPrUecuXH9BigAAAAIAAAAATBEAiAWs0AEx6mrZx/Y0ikqsShicVapznARpMg+VkqpTIjnDAIgMJlKMUSOvtj8bY7HOTm+3eoMu0k2oXKxh1E/3hEvcvkAAABmA0VURsK1iBLCQCDqkkw9fCQcRBYF8S51AAAACAAAAAEwRAIgWt9yryHVN4W3hcVfVAluUVliqA9aJ9yxgF70JPvggz8CIGT3gjS8E1HsSddgedFazhSCg+7wBEfRbZKoNrW0HMO1AAAAaQZFTlRPTkXsGnGNGm+PjZTs7G/pFGVpe7K4jAAAAAgAAAABMEQCIDYmFbb+zoxA+C3TJcRk1hWpX12wNytF05FZ17hgMXNeAiBQ4MdL9v0gdXbRHlTreN/afLGHSDm6Z4VjZcg6UdehiwAAAGYDRVJQCg47/VqM5hDnNdRGm8GzsTBAImcAAAASAAAAATBEAiBPw0NkvbolQgA3Eyfi9s/29uB/SI7m1x+VSZQpvm52/AIgHSItfJOjlb7Yb54M8biz9vq+yFNYB9ATeDqSAf7DBTEAAABnBEVOVknIAgmFprMHc9hmy+9lp6Eflnc0EwAAABIAAAABMEQCIB93EAk9nPCWcypfYcpc4CdATS5Wf9cZFGjQTY9qmrZKAiBD9crI6dzUxaJCdN17xVsPHAqSkdsn0KVyu3GWbzY5/AAAAGYDRVZO14CuK/BM2W5XfT0BR2L4MdlxKdAAAAASAAAAATBEAiB6+HFZPlstIMs931WaEIF0p4RMTxsiODjFh3oL08Z1UwIgO+hINAIJpu4GoCDBdZ0BED8GDXyUA07/EeBNIstbYPYAAABmA0VPU4b6BJhX4CCap9nmFvfrOzt47P2wAAAAEgAAAAEwRAIgU5TPjGO8gyfNFJJJiJ1cEd8XR3cNS8bVw+2QrkLww0ICIGw+wkA6oFxN80lXka4j3cRCi41kTCA9oJdu546TioufAAAAZwRFT1NUhyEPHTQiunW2xAxjx415Mk2rzVUAAAASAAAAATBEAiA+IE7FmtC6xjBeRnM14J4vOWTvpdtHRFLcpcopnnRTHgIgQ81/2wOk3XAbDo1SnR2yrcehQN4QygdFS0GHu05mcR0AAABrB0VPU0JFQVI9PdYbD5pVh1miHaQhZgQrEU4S1QAAABIAAAABMEUCIQD9QA1EzKdQbjfTazec03qAP81fv+1eZaydk46aQyPQSQIgPmO9DytHfuwFduphq06TtXaT22VzI6VAIbHgDdg6P9sAAABrB0VPU0JVTEzq1/OuTguw2HhYUsw3zJ0LXnXAagAAABIAAAABMEUCIQCd/UKfW/kfbDXvoNL97A52XZdLL42KbpFGkf7gRgi5ugIgEwHbkhlCenRhnAwnzamO/WsQNlLrkmmkIJtVM31qflQAAABqBmVvc0RBQ36eQxoLjE1TLHRbEEPH+imkjU+6AAAAEgAAAAEwRQIhAL2RzBVFNt57pkmt9/ixEk1Ij6Dwu1XP2EVEL1+NcjlsAiA6EVKV5cuhTGrvmf9wcSwGPsnenErtE073nWo6yYYWOgAAAGwIRU9TSEVER0WzjyBmFTJTBt3esHlKZIJIa2t4uAAAABIAAAABMEUCIQDX/CXn2lhVHFs09PEWET8/jzji9ThCViIQeWJ+aDaRFAIgJuTYe6gf9Bw5Vr3oEcfZhzPmCLFeeAwitbjyxz+WI7kAAABnA0VQU1DsNdHhjUOfAvqJV0b8PhvvMReAAAAAEgAAAAEwRQIhANAlA3lTpbvRJlOUQ34fbUx2tVRGcJsxvy4RG3JI3tIqAiBzjPcrHEeJzo+4qgC2J83Z1GDZAY+Zwwzr7reAeas2ZwAAAGYDRUNQi4qKkde47C5qs37Y/7rO4GLG88cAAAAGAAAAATBEAiBBnedRQ5VoaelcRy6YwXJYGZCzP7jtxKDnEi0dV+nbUgIgTsJC/MLgoEl5XV8/BOAGGbXS/pS1uycBdDGiGTsmnLsAAABnBEVwaWO82eIWIANpgD7QWbd0T2+0zziHxwAAABIAAAABMEQCIHcRz0nj6c4Sr4wZKuCFSbmGGYhjMM4GhAAs14S/hs3VAiAUauwIe8VZFhIrowmIokRynivy/hw1BLZhsYo+69TViQAAAGcERVBJS02gxIN2wnfNvX/G/caTbe4+St91AAAAEgAAAAEwRAIgLgzH/7WAP9ftHDzBZrx9gyjtF8++03uYqiTtv60JKL4CIGOQwWw379aIJEh56Q+8ywu/hJoCwQOV1ZLnK2sTRA+DAAAAbAlFUkMyMC1FUEva+IkGrB3hK6Kx0ve/yU6WOKxAxAAAABIAAAABMEQCIBlGIIAkxnIEnZCCFS7Kk3gtWZfmNPgW5PBGYCHW9bapAiB5Wk9W6LSZiRcqtvHt55ZmIZbNFNxcdbT+7OMpQNh1NAAAAGgFZVBMQVRXsxQPUio+8vmMBG944NAwdZCFkQAAABIAAAABMEQCIC4xfLMW1KdNZxC76y0ifZNTWuZX6Upbzs8v1SLSlvt4AiAKnDctk2tHPCRi43ObQ36HNGp1aBUe7SJQWXvClqhxhQAAAGgFRVBMVVMC4wg6UehjLlcfvWpirDlsEMZTugAAAAgAAAABMEQCIA/NAJ9pqgwtZDQhRumhF+RgIctWhM+5/SYqU+KQK9pVAiAArwoBMlC76+1YbOKTSmPOWj0qCD0WHnIhRkzM7l0McAAAAGoHRVBTVEVJTgUc9RePYOne9dWjmyqYip+RQQfLAAAAEgAAAAEwRAIgCz2I8C49C0o7vCDy4fCjlu+3KARMo8wrGTqBVHbK/RgCIHlmdy5IIy1qb9I4oBpELxrCJiDjkvLMTmN1he1h/4ojAAAAZwNFUVi9PemgaWSMhNJ9dNcByfoyUwmLFQAAABIAAAABMEUCIQD0k3FvBN/4pjSiiNWmmrEfcRJRdWxgSsSPgLpSJmi20wIgFzl/ctz/46hVR0pwwMSaLXDi18d9gky+woW3z6Vp8rQAAABmA0VRTEfdYtTQdd6tcdDgApn8VqLXR767AAAAEgAAAAEwRAIgYtCzh77PEeGOyPZOjuZSphVYETILyTZlzgmCTRL8ORMCIERGOCHgrhEfpVRdFoDPkgw27qEjiaBHn7aKAS2RKNUeAAAAZwNFUVodqHsRTzXh3JH3K/V/wHp2itQLsAAAABIAAAABMEUCIQDQYf/Rv32cC7O9SaUtfZROgi+aBdj9eR5zkaQVmOaITgIgXzxvPvsCEpp06H3ZBWq8wnSuXswBYwRTIBO1HkxuWskAAABmA0VRT0bp/kNHD6/WkBAMhgN/nlZuJNSAAAAAEgAAAAEwRAIgJaee7gXDcxugV0d7mZgguCV+1BV1WCoxzEy0rlxSL7cCIAKPNR5dO7QOhYbi43XW26FsKM+uZPLCKJ/CjLkyO4C0AAAAaARFUU1UpGLQ5rt4jHgHsbHJaZLOH3Bp4ZUAAAASAAAAATBFAiEAppVyHlOXFSVUPpw3POn7dm7G6Cs1xr8xk9K+SvjVNtUCIA5nCIDxPsUlCUoRpafe+uSKmcKgXqP2wa1+hIcz2LtZAAAAZQJFU+8TRL34C+8/9EKNi+zsPupKLPV0AAAAEgAAAAEwRAIgBDpdU8e1Ewa/9bNriRgHK3gUCVDPAoroxTN0UDq8Nm8CIEPIKA2NJLBRvWpYqXUjOUeFXYlpzCJ3irCWloveGP58AAAAZQJFU3IQiozDJUgTxr4vG3e+U+GFq/3ZAAAAEgAAAAEwRAIgdytuMfC0Ev9QZuk0igH/fwat9KhzM3VOE6WpkQ6FPHQCIFBnbHMqKf8jQcAIPUx/ONN9lnXEHVx15wUHCqSvphjOAAAAaAVFUkMyMMN2HrkXzXkLMNrZn2zFtP+TxPnqAAAAEgAAAAEwRAIgJZy5/xMAPK/j18rGVg+qkmyReVWGLMu1WYltZbKTPI0CIExBOu5w4JzLn78p2nk3xTs4UV8E+W6guuoNaR6FuQ0hAAAAZwRFS1RBCAZn2nv1c6bsMmj8bQt3NqQu1uYAAAASAAAAATBEAiB0N3OhsOlEUYwFkI7Qa7LBk8h2Oaiuk4LcZmdXRvz+vgIgHV8F+TPxsQZDO1NCPjHF4wOULtR9efyFMt4DWkbrBL8AAABqBkVSQzIyM/jyN9B09jfXd7zSpHEr3nk/lCcrAAAACgAAAAEwRQIhAOxUO/aXu9nLJhJGpOVyVr1SQDb56I7W99a/IGxVxcoPAiAblmpguQMhSn+ZB5DSjPJt2/86oeRQYDocTzbhfDmrUwAAAGcEUkFVWGhJbugl2v4c9m1Ag/d2ueqrMeRHAAAAEgAAAAEwRAIgUuOqQ8/hfk94qrblqHIKP/MU+hoh6qm0szQtiv+P2ooCIBInioqi+iskNs6IjI3Hu7aUFUCGPa5br0ETuv+KCSvDAAAAZwNFUlSSpbBNDtXZTXoZPR0zTT0WmW9OEwAAABIAAAABMEUCIQCCVc2VwIgPpoFUTMoRI3eUo+VWo7Zh1XW0k5NXnQF2BAIgB7k8/qsGlVFlUP9/IEukvAaIQhOTnSPhWyZU6T6UX34AAABnA0VST3TO2ncoGzORQqNoF/pfnilBK6uFAAAACAAAAAEwRQIhAOCvL6MPDgNNxWYmQnLkASlMaqBQp5zXWuL/nel7+3p7AiBBBvG88A6olBAuwWgZqy4lHayRy1uTEg1ZaRiZTVlB9gAAAGsHRVJPVElDQcH6BuhZbD+pjM0hE8OLa2C276ANAAAAEgAAAAEwRQIhAPHmrNu8dDOM+ARqNQTzJDJsE5coVdnSuy51hjs+XOM2AiATcgWjUXPImf5f1UAAelZgTLbL9+Om8GoJhMZ9EoQVBwAAAGkGZXJvd2FuB7rDWEbl7VAqqRrfap56ohDy3L4AAAASAAAAATBEAiBStB2Kyfph+rKMlG4cD3x3sq3yMapOIm2G8FL8oEZ9FgIgYrbcaDMuX7iFy8sSBDMzqihPw1fjBBv1b6hDZZi6MD0AAABpBmVSdXBlZbZ3NFIeq76cdzcp23PhbMLfsgpYAAAAAgAAAAEwRAIgfTUpvTuVBt7SnYBGcwQRSHjAz1jfvl4JVTT75/PbY68CIE16EAu8kxiJeDFDHCKbaCqlCPmbcgfT9xO9+6M3Q4sTAAAAZwNFTEeiCFBzh4FSrDCQ6hPR5BvWnmDcmQAAABIAAAABMEUCIQCCK2kyCZ0c6E1fDBny0dlZYi3B78ttlLKodk5/+fdMkwIgOm1XoEmixQox7iakWR5Vtkjegps8OJisfqUfXWLQN34AAABnBEVTQ0VJYUZhc377/GoQLvru/cjhl/fMDgAAAAgAAAABMEQCIEWDpovI5QGODvn2VFIOjd6promAfmb0UyfbL0WadCsdAiAXL8E0aGBUoR+wZYFVmOr4UszvKxRFSR/82tgsowpMmwAAAGcERVNDWKjrsTuYleUqt9gVzn9jWRQCWBYkAAAACAAAAAEwRAIgVvTJqVcboRYoOH83BhqKpzLmpm+BU/xlpPwxKKJb7SgCIBmC3vtJByV3gst3Io1cfqcEFEyjpVIz7+DiSWGuEeqKAAAAaARlU09WvatyYC6a1A/GpoUsr0MlgRO496UAAAASAAAAATBFAiEAsy2ON48EWPEwmh/hm/XxaBJmvl6EPhTD+s0HFjq8XLUCIFHbHpKBpVoYA3OnYpPf82TQqR6NGpFbnHvv2poNPi7cAAAAZgNFUlTinFtSNZAWV5W719UjacKJWxiEHwAAABIAAAABMEQCIHkBWOnh2nMM6fxEebjfVHzveIu4fWt2OCXnjxw259QYAiAkjYJHdfxNiZBQu/tX6TQiCMHS2NLz1vZAz1XtvKAqtQAAAGkFRVNQUk8pxW58uchA0rI3Gxfii6tErTw+rQAAABIAAAABMEUCIQCBDE+O6dF+lVPMqs+AYFo08bV9hmOWbhaucRBDf0sKnwIgA2xfefA/VaLz+STFvb+y7RAV3smJ2FAls0sI+DKemagAAABnA0VTU/wFmHvSvkiazPD1CeRLAUXWgkD3AAAAEgAAAAEwRQIhAII2taydwWgNiRxoBXksLe9C4LP33MVQAaFdnffpvRoYAiAuFOKPsuprQyK8Q6AtcoSi6Z0dQt9gFrwXUIiyIZELKgAAAGcDRVNa6KHflYvjeQReK0ajGpi5Oi7N/e0AAAASAAAAATBFAiEA2f1CLyrDc2+QHRVFY+nwBxkdqYJgH0xpxHMay94HEPcCIEm9KEQ0o10ocn61PcnsdKJxx5T3zEiTGLAMDSOH/Z5eAAAAawdFVENCRUFSo0Dwk3qMANsRyDzBbOwSMQFg8LYAAAASAAAAATBFAiEAzhfYy+7G7jM9hJwfAMdGrApeYnz8i0IKxwkYw+E5LGgCIFo8epJkJCR8bWQjSzclMXiJ2AW6uxzWNGkR7rhi09xzAAAAagdFVENCVUxMl0yYvC6C+hjekrfml6HZvSVoLoAAAAASAAAAATBEAiAPcNnzZ9NYV6fUDqoLgCS87X6rbGlPfvfHfm06gEMJGQIgBODPezD/qKN5B0jUwke91vrbUXCPd8EUzoGTOusg1OoAAABoBEVUQ0jddKejdp+nJWGzpp5llo9JdIxpDAAAABIAAAABMEUCIQCXYArRvlYiTlMxUscRdAB4jmleja3WVLqefZ/kGx6iegIgMi3XGPQ1n8+GrbeBfDZXvEfGvX/0cNlGjIkevyEYLIsAAABsCEVUQ0hFREdFV+KwjnSyssBB6Le7tIvxzca4r7YAAAASAAAAATBFAiEA5KmkRtMltnbOKW221s/t6Ermbfn4EBuvOMAgHV8dEScCIBiOWzw5OD/bjpZu4s6pp7+e3kJibbIhiSTC/Dfxrpe3AAAAaQVYQkFTRU0T1iSoe6onhzPAaKF0QSr6nKbIAAAAEgAAAAEwRQIhAKQmuYsEz7wftfKL7FQq4eetibziUK7H4N7b5mecgG9lAiAZyWpC5g7dE5XLGcQNzNZB/NKqN1DW/Qdc6fFd0DhS2QAAAGgFWEJBU0Vb3AC2Z2V5swGydhmNseqa/7lDKQAAABIAAAABMEQCIBpfuwQyJwS76ukJqFeTdHEuGCEonSHGEevy/S1eBewPAiA2KZrI58hizMA2Oy3gf5DVEWvYKOQ20dyexDpQNt+HVwAAAGcDWEVUBUxkdB26/cGXhFBUlAKYI9icOxMAAAAIAAAAATBFAiEA6elOwM3uvExFwCE1JTB7ot1pPCzLUv7x8UAM0uk8EqACIFxnlm51KhZS0IWxbMggX791MGpyb3m8PD66dNQQGbjlAAAAaARFVEdGdGA+eAVF0CxCV+fSvhnHTee+GVIAAAASAAAAATBFAiEAhR1VFYsQxZEDYY3FC1J/mg7XlaczckHUF0SflVXtFS0CIFg6MFWRN7Br1NYtJVHHU8th7ucPevgjV7uXrqiFsfkAAAAAbQlFVEgyU09DS1PYB3a79ozeRmkApyFMdyp9F5xCDwAAABIAAAABMEUCIQCK83vFWyA0qFRCS6CXWjm4Zn78QuabaxGYSobQ11EpbAIgDtEx4KW6y0mWoMXrpVHawXEFuoilfeMSf/ftYBCuycIAAABsCEVUSDEyRU1BLFqZgLQYYdkdMNDgJx0cCTRS3KUAAAASAAAAATBFAiEAklghbDn2am1H3IaaipXqzH1rOOpqiHw0WhAZaC5wTmcCICwx49U2fNMGfZbmpfGAqhbNQr/5lnH7s/edWoKAbHNwAAAAawdFVEhNQUNP7w/aHUvXPdwvk6Tkbi5a28LWaPQAAAASAAAAATBFAiEA40bO8hslBt/sajI7i/5p/tD2FKqnnxyQT7F5xrRZ0OcCIAqJbtmoWKUS+R+pg4rt4s271WEIEZCXLFsqcWBp5rNrAAAAawhFVEgyMFNNQZ6kY+xM6enlvJz9AYfErDpw3ZUdAAAAEgAAAAEwRAIgC73+MDvSXicweLxtId2eLEU6O1e6Ku3FBNCupcmUWV4CIBUtLauJEql+JxvPjZBzduPz77gSAFFjtIHNA7i2l04XAAAAbQlFVEhNQUNPUFm2R6HXYzxsTUNOIu6XVrNvKyGVJQAAABIAAAABMEUCIQDVWKx5qCgw9AjUv2YeTfzZGi1KqxSTvEdegwYQmfktUwIgQCA7iQM+Xd2DXV2g8+VY135h3L51jBzIBTdNmhdtzygAAABsCEVUSDI2RU1BYUhXx1Vzk1TWiuCr1ThJz0XWpB0AAAASAAAAATBFAiEAiPHPFZWCThr35oOzA/bMXYBKE8FKdw0g6phQD7QLjpQCIH8H5SxQsFhjYDQwrlhtzG1o7ycB482HUzjixOtGudk9AAAAbQlFVEhFTUFBUFkxaxO5Ue/iWq0ctWU4WyOGmn1MSAAAABIAAAABMEUCIQCmxK6qA1AYAIpuXMdb4ZC7g7Jzhyc2/PEuKe51gpOD9gIgJDbAGp6F6xh6eoCZN+4B5aefRVbcrjU/VmA3aYQPJBUAAABsCUVUSEVNQUFQWVToNxwexD5Y+1PU707UY8F7qKa+AAAAEgAAAAEwRAIgIvpBN68OrV84rb18qWXZBBwWgEAwPdxgl2gElku8kdoCIDlIR3LFGkzvlgG+95nCANTvDsQQjmGOusc6oL68or//AAAAawhFVEgyeEZMSapugSeDHJ3kWuVrsbDU1NpuVmW9AAAAEgAAAAEwRAIgBE3mEO3j5HHUU3rMQkb/VNN9MhTYhI2ne8fFAHDREewCIGV136ETvsLHVIVuB/sxtrJoLt897XTWWrgd73rH5+zbAAAAbAhFVEg1MFNNQaNg8q8/lXkGRowP11Jjka7QiuPbAAAAEgAAAAEwRQIhAOB94gOPtNH2yoWqgo/UQ7IpmvZjBkruvqpCCoMjCs99AiAnOfo0bawrLmZLaS2D8vq8gOzUOeLwsD2//VVMSxryWgAAAGwJRVRIQlRDRU1Buf/guO4tGvlCAv/tNmUgMAdIpNgAAAASAAAAATBEAiBOCAX531UHDyIecbpUnhD3gbtIQzC88owf9idd/w2mVwIgRc/zqifJdusoMzHZN+XSaMadIlPlp1gUmeEAhItsLk0AAABtCUVUSEJUQ1JTSb9wozoT++jQEG3zIdoM9lTS6atQAAAAEgAAAAEwRQIhAKfrV7HD9OzSt19jWSHhf2v9BUufnQEIf+CN2gK7fn8/AiAJNJUOsyQkaXRM4cFwkJme68bQpMCiaTGimMFgUQXVFQAAAGgEZUdBU7U6lry92c943/ILq2wr57rsjwD4AAAACAAAAAEwRQIhAP5CyDjybhGpjSCcNBbZy/rwR6Ne0QhJ1ZwIeQNAN4SDAiAlN7jRA97sm48/3F6/tVcOHAQGLE90DlX3aJp+btReAAAAAGYDRUxE8MZSGx+K2cM6marwVvbGJHo4YroAAAASAAAAATBEAiAv0FtsRE7Z/dI6PjBqmDjwI92DBa415InA643YHPve2QIgV/9hc0bSzYNrv64v4TdPSy/Ar2snm758nOHkluKj5D4AAABrB0VUSE1BWFkP4g4PqceCeHArBcMzzAAANLtp4gAAABIAAAABMEUCIQCnPtAIO/QoxDk8BcH0S6dTqYkibna6DTZj+3I6Jt2FNwIgcZClUXhKqPpFMexO5AylpaXIodQo7kQgCDFAMlWrW4oAAABpBUVUSE1PmKJbpMN5O5ApZSy8Goh1y+Ij3xMAAAASAAAAATBFAiEAlmpe/MhT6pYN21DlHq+W1INsmRQXfBVw/uZ3oX+6qSgCICY301l0uKLYsgsVSLui1JIQm4QNSQ1hoEYXSy4TZFOMAAAAbAhFVEhNT09OWLHKfmcUJjpkZZo6ieHDE68w/WYKAAAAEgAAAAEwRQIhAPa/sPJnR0JZyC01NyqNImj4KcuOVrIJjLWz4vfnVW2BAiBQQPFSK8XfFS1XHMI+8o57dB73VgS9UuQ15EDamDaiSwAAAGkFRVRIUEEJ5L37JzJFBj716ADYke/30E+bgwAAABIAAAABMEUCIQCsmKMWc8FHyw92HCCdWp/tDyvKCpSbeTANk+USxAkmtwIgWiLlKC9oB+xifqVNgCZ44h9pM8moeg9ExUsQKEcpoOIAAABtCUVUSE1JTlZPTPHl8DCG4cDOVeVM2BRrycKENTRvAAAAEgAAAAEwRQIhAMfAoWp7CScD/Xijl9xmXZNj2PunCurqYk8CPM3f1w3IAiA49OfqhRHGuKf0IhyzeZsQhM5/z1iMOLIyRsPJg6S4OwAAAGwIRVRIUlNJNjCT4BiZwQUy12wOhkU3odJkM9u92wAAABIAAAABMEUCIQDxWp23W2uDYsCzSWZKFZ8cInNlKlQ4OEQCsH/O7akXaAIgMyzaLZPmBlRGBSm7nQj6Zd43VDltqhxc8aDscie6VkAAAABtCUVUSFJTSUFQWRNvrkMz6jaiS7dR4tUF1spP2fALAAAAEgAAAAEwRQIhAPVXCrhSVZdjx/msG4Kkp8vwqOtcWy3AH7P8f/5K/+3OAiAlAp3sN/vWBngEGupnc6b0v2nZHDX/miV33Q7fWnXkyAAAAG0JRVRIUlNJQVBZn0ntQ8kKVA0c8S9hcKzo0LiKFOYAAAASAAAAATBFAiEA8QF8pABg2dj1SN7o0rYDbipOw4dA4PMvjpMF2BCWgakCIHCSOMzuSpLHZ12NLxXd21IPOOgEYY/SmIF25HNb4uBVAAAAaARFVEFThWxDiMVsKmE8YFB6RwGvYnFX/tYAAAASAAAAATBFAiEAr46SPk90kzHcdh27qRnzzqtUaJxsrmzhhUFTaASeoIACIA5mQSCzV7DlER/zrGnbyQlrlwP+owfkyY7gwSMx0ya3AAAAZwRFVEhWxTNC/XV19XKw/0Vp4xlBpbghrHYAAAASAAAAATBEAiA+YYyUc4XoeRq4g/0ZgOisCtY2JPcnJ3X4Y2SeaSpdgwIgbVlwJjPprVQuJJUMv4/iqq32qu164NnK/wVgqEbzZFsAAABnBEVUSEFZ6SYSVWRMQRr90AvYkWLQnYYuOAAAABIAAAABMEQCIDkBBigWrDFBTNJJeg/U+GyQfsO+OGzqG2+JJOXy77mJAiBJu7txQXvlaeDqGZW8GD1elYG5Wu5dRzzYgiYugpoKegAAAGcERU5PTGPQ7qHXwNHonX5mVwjX6Jl8Cp7WAAAAEgAAAAEwRAIgPJbijDiF6yTUrAZiXpSeEvlhhUWb5HekhBdqaAjtH14CIASjZHpmz+E4WTVU5Zx/uzM7O6RaWpxsv0PanFwsPZpqAAAAaARhcnRlNGEpA9sHHoiKTa3KpBbT7iY6h7kAAAASAAAAATBFAiEAgYiTfA612Dq9caLgMc4pDDGGQnr+LTL9clGd5CyTA/gCIC+8OulZhWBRMy/9aN62OhStHfvF4MkY9Vni9FkCId7PAAAAagdFVEhCRUFSL14skALAWMBj0hoGtsq7UJUBMMgAAAASAAAAATBEAiAmIFixUzrIyrdkz5tbKlB6CWZyjNhPIN8TLs+72O7NuwIgNmwpsMA3whuC1VVZ6I6T2PVOSndGgXO36oKAgHbZOogAAABoBEVUQlMbl0P1VtZedXxMZQtFVbrzVMuL0wAAAAwAAAABMEUCIQCElJiZy/TlxvTXyn//KNko3bSBrAzoq7DnCzzdJOclIwIgJJGBJnP10TcGybjGa19j+srmRcH4N/s+FFxmuwEwq80AAABoBEVCT1gzhAAkF3p9rKNGiRI2O+2LQlAVxQAAABIAAAABMEUCIQCbOibm41VtTHBS7QawBl1n2UOUTG4YJJnc2Tfi9KRQ7QIgL3fbesAt+ZPdKVitOulKX3tSvd2TtMRkM3J5Ble21eEAAABpBkVCTE9BUCU0RL2ezxHlUW1tAJdOkcnwhXzLAAAAEgAAAAEwRAIgbxUb4ljIw4MN/W08diRKcThBxzjlE01skyw2D6fyw1ICIFpLOV4smgdPhT3woAzJD6aJvn1rVvXYrYVFN4nddRDVAAAAagdFVEhCVUxMhxuu1AiLhj/WQHFZ82ctcM00g30AAAASAAAAATBEAiAsBJhfxjBD+0j/iOV1EUx0C1KyrFuCfVYEwPC9WHatewIgbeMCUsLpH2aVhTyk5e+6dsdRABSQsTmpdQXJjVNfFIgAAABnBEhFQUz2/YLe274P+tteHswqKDq1K57SsAAAABIAAAABMEQCIDbqmZzFyuTzNwDuYrN6XQdoVw24UnmR9MTwhGLw/gDDAiBZGVNbGiAWoAp6Kg997pWmHgZl73nX7n8iVqoKrbwN/gAAAGcEQ0FSRNb3232xFhcOyxw7NfEsHmk7pwWGAAAAEgAAAAEwRAIgVpJr5jgz3UBHOwueN3X8li731woPz+mhGzs+3fTHB1QCIAvG7kOjEN1OgcAkim814FhH27CCl4Efp9+OtzmIYG61AAAAZgNJTVBI/1N3f3R8+2lBASIqlE3gcMFdNgAAAAcAAAABMEQCIDMM49Q09OrYTmTRQCF3YRfmt7tpgpZ5tQVbv0fXZEzzAiACawbaOF0bYHQfDtcB3F7q4yoZLgQhySJo4KBniHIdiwAAAGYDRVRIwIKUIcHSYL08s+DwbP4tUtss4xUAAAASAAAAATBEAiALGTVQQ1FNvfSO0xZ4aTQH15Za8OSZAnzZY/8yod5XqQIgeP4rwosnuK0ziiS5aEOkX9FsvvVvG1NgBpMXrHUwzX0AAABpBUVUSEJOlrUrW/jZAiUtBxShvSZRp4X9JmAAAAASAAAAATBFAiEA57B2D875Vq8wZ2ls7Bu4i5reH3qaNqwxrMZ6oztK9osCIGcSW1poJOavM/l9CEwuEmLMo8cMUDnIduTBq+9tO+thAAAAaARFVEhCOiZ0bdt5sbjkRQ4/T/4yhaMHOH4AAAAIAAAAATBFAiEA+D2gdWd9EKIvZdHhDZnw+iInVcn4VRNjV1wORJBDy4ECIExCGOy1dtqWs3Jcny2GmFi2PujKQvnlP0ALZ+BzW9s6AAAAaARFQ08yF/k0ddKpePUnw/fESr9ErfumDVwAAAACAAAAATBFAiEAyXkZKMKV1TbF5pA4f39eYy3tIOD32bQivviP+WwDkXoCIAkaTlLP684atrsfeUeGhUZnakr8h7CLIdzcdXcOhgeQAAAAaARFTU9OtnuIolcIo1rnwtc205jSaM5Pf4MAAAAIAAAAATBFAiEAth2qLh7itoIhOcvXRnJca7R9X0Xy9MJ1J3DVb/LMuHsCIALxDIv2Q+xR7R/E+fxA4uEuIRkPmNEyWdqhHNmcqzXAAAAAaAVFTU9OVJXaqrmARoRr9LKFPiPLojb6OUoxAAAACAAAAAEwRAIgKu+4yD3N+ODN6ct/P5mSHpE3OeElO6UUekwWPlz32sMCIHwdulYcR89MLVLGJutzhuZfU10wNx0uer9dXYyCQSDjAAAAaQVlQVBFWByqIC35JA17Rk2UhqbxVCdo7w0wAAAACQAAAAEwRQIhAJ62NnV1a6CNA3CbStuTBw7jzcSdyy/q+Oed8+CxNzI5AiAe3YEZsEF8kF2Zu7Qsj0pxlLEkqFWeVm1IJTF4u9TLWwAAAGkFZUNhc2iQZxCDXRroUnXrdw8GhzNAylQnSwAAAAkAAAABMEUCIQCPiloK62ZpCAqGJLN+2bw8eKPSUYrRqosQpm0xN7upjAIgOPF/QU2eFxtMd1pj5Js84FVVD6+kjiVdkK1RPNSvi7wAAABoBWVDZWxsm2LsFFPOpd3nYKr2YgSMpu62bn8AAAACAAAAATBEAiBa3wyxXvuBZ60u9Oz/2tRyyfceONw6IM/iVTMMZcUO2AIgBWHnjl1PsALOz1n2wbr3Y7U2k39uM7+aCf/g0AE3vCwAAABnA0VDVFnXEILYpbGOvGtlOuQirEODzSWXAAAACQAAAAEwRQIhAK41tCriqAMYIfp30PzVYUFWsRBQqTXzwv3fI747KRtaAiBV60cj96IXmL1XMQcQwdZZFJYtAN4TScEs8C8LhuudEQAAAGgERVRIRNv7Qj6bvxYpQ4jgdpalEg5M66DFAAAAEgAAAAEwRQIhAMtW0H+8+D7oyLQHrzaiiktq7OBrIgulLe4I9tzdoWh0AiBZozrMcInJdFg+2wwA8pUpyq8EMrXTRZqCvC2KKeqZXgAAAGcDRVRHKMjQH/Yz6pzY/GpFHXRXiJ5pjeYAAAAAAAAAATBFAiEAoziECXGUfsVNgYb0xCw3Yqbk9aqzMJUTo+JjJazozCECICoIG5qyydY2FmK/E4ujpp57XbxpWgem10ieVxkENzFBAAAAZwRFVEdQqW8x8cGHwomAF2w6J7pwafSKveQAAAAIAAAAATBEAiB6j9vNxc1wDQajQEXGdIQqgTkiQ+qHo0bO/W20wdz00AIgD1zVff3sokCa0F2nBABZZi0/mFhmLMsRGDg59b2u9lEAAABpBUVISVZFSuLNH1uIBqlzlTt2+c5tX6uc3P0AAAASAAAAATBFAiEA7Plzju/hCDLFnYwYu9W9O1fzuADYKcoc0mv8E4Vp420CIEbzLjBBAM4PFVsXHWBJmyJLhAghCvHIV1e8JDMbDFVBAAAAZgNFTVMX5mFsRdJnvCCpiStYoBYhxZK3LQAAABIAAAABMEQCID89ENoKTKD0qFcY0Wc3Xq3ozWJnzto626YkivOaZadMAiBzQW8zsQYSREkNAMjM9mJravd9Czu1k2akK9KA2BwA4gAAAGgERVRITf2VfyG9lecjZFwHxIotisuP+zeUAAAAEgAAAAEwRQIhAL9osfas/n3YQzmF3vcHrwVGzZ2d9vcbiKSc/kktarS/AiA7bRo9O91NXnB8flfeu0Z2Uk2Yf+3aajTAjDciJ7dORwAAAGkGRVRITU5Zv0ot2qFhSKnQ+iCT/6xFCtt81KoAAAACAAAAATBEAiALXIgfrUpoUSDgAVJkc6E44t32NL1AWUSs4o+sI83ZwAIgFn/UoYncF3OURz2FDzw4CmJeKrYeJgDqZ2EHvSQ3vWUAAABmA0VOU8GDYCF9j3q158UWVmdh6hLOf51yAAAAEgAAAAEwRAIgb5jvg9MW3aAM8TALm30qkI8b0x9V5WgQdJ7Ez7euja8CIHDu2Bw9kUNGEDGaiK5CsDGOWpJepD2RlhvRkn9EeW3VAAAAZwRFUFJPq24WPL6zlZtouQvsci9anu+CunIAAAASAAAAATBEAiBoX/NWaLgqaIDZ9YQII8kGB2hXIGY0D4dZiYMLc1/e3AIgOcMA0J3bSBozB/N4jL2mknKo4uveRWPm0ReoEoKR3xYAAABnBFBVU0j0GFiFItXdAYtCXkcpkeUuu+7u7gAAABIAAAABMEQCIGvnXvgi0pbdP9TSnzcgCz9kM1ez2CwBc0WmYh+JGqTBAiBdgfxTmSwooiKsPioHciAyJsTNAT4eFLot4X8vUSCeKAAAAGkFRVRIWVPQ0+vK1qIM5pvDvA4eyWQHVCXlMwAAABIAAAABMEUCIQDjP+k5OTl6HRh5hGz2MMX61JJqWRFqq/2xpyhL59oHyQIgQekUReJ6iQhzksPCQJ6G+51IHx6IeTn5qjzaax51BIsAAABrCGVTVVBSRU1FHr4eZN0knG/bYA0FqSen0mpKiV8AAAAJAAAAATBEAiB3QMthXFvG/xMN90+v3H/whsb+ZDoFNrfaeMHajObaIwIgJxB30GTLb1ccSB8Qm6JiPeg6jAPUM8mU1Dpenfq5VJMAAABnBEVUSFYFg0kpdnK2zHzLblmmecWt10pomAAAABIAAAABMEQCIFiYviltYnaoAjTPIfiXS3onml0XUn2oFg8aDZvpRo2BAiBcU0UHBmgsvWaY26MJLMAyXf4GK4Ha2CJENRRVC1oBXwAAAGoGZVZBVUxUHRWnDxyMKpk4uoA29aRgIRRtjBUAAAASAAAAATBFAiEA5D0HD+HkZkbasS7rCZF9v90mbxWYhCHPrbuzdSUom8cCIAclqZvN5wKGBHLJ97eGSCUuDF9b1qU20J4AJdU3wOpcAAAAZwRFVEhZ0a+8zJosIYfqVENjuYbqCrbvCLUAAAASAAAAATBEAiBKxj3npe4wtutP1DE8F5dHybFqsD9zYu2B+Y39FBi49gIgaCRMjaF8kEOW8nogzXacstw4PFAGyKWAxVasBKsBv+8AAABnBEJUQ0UIhpScG4xBKGDEJkzrgIPRNl6GzwAAAAgAAAABMEQCIFluIKWDmzTejaJRcWS89tErbOp8D8NrUrQGv646ook6AiAHemHX3iLZ8+YMVOVzihbs/fwIHm4RO6TOxHnEX3nfiAAAAGkFRUNBU0hdIe9fJamFOAtlyOlDoAgv7aDbhAAAABIAAAABMEUCIQDo5PxwRAhKZxeWQbyWUzgyFraDCs9MvAIyuQ83wi28cgIgc6q8kpK6++kN0N16n1o5bKWgoL1RzBcLrF8CfnPkjtkAAABnA0hJR6kkD7ysHwuaat+wSlPI47DMHRREAAAAEgAAAAEwRQIhAN3kVnBVJhXZL6lDO3HcDrvdQmeMpKexap0e5Qvh62imAiBtjTbEF6cYCuYKxRO97R8M/pq0EEmQMIDudWGzAzyFIgAAAGcEZU1heBWHTWXmSYgMJhTnpIDLfJpVeH/2AAAAEgAAAAEwRAIgAwcL4hF84t9hABJjYqQQNnmsSS2gs+gKTO7eE7G4n0sCIAfsOJ7QDRCWWfCFvWMUQWW8/Zyw4DB8tbDW+zgTxVKxAAAAaARFUEFZK1yi+VEM8eNZX/IZ8k111CRFheoAAAASAAAAATBFAiEA6k7X/t2wgoY0VGMNhV9eFSFnX2lfe45RbasH5vd2sWACIGWXAhoAEId8PAJVpNb+N/VsmqQ0j0CaapTTmHN2FmS9AAAAaQVFVEhTQ8/QaSR71fAaF/HKdkJMnkJCVpCNAAAAEgAAAAEwRQIhANa2YU4s7Wz8Bq9RiyoGmZfbkEZmPzwwaEO/KO+3w0QFAiBtI134j6bE6S8OQo/UTQ+tqmQlsxEGF34SYcX/Wy+mGQAAAGcEUklZQQsXJMyf2gGGkR72p1lJ6cDT8PLzAAAACAAAAAEwRAIgMHak8wIlJhoD6hREMGPnLV2bCRshbDgU4GmWAfS84ZkCIBFoiPEfByQGacd7LNS5oOzWA73BhC/X0RhezlzyO0ajAAAAaAVFTEFORDPgf1BVFzz4/r7eiyGxLR4rUjIFAAAAEgAAAAEwRAIgVyfkWwTGIjaNHryBfGPVmhKyBhmqa2OGDYyEY/NJTQYCIDq/+R53ZyymUhINCTnstb19mSMhm/NJd96PMAjSn4IvAAAAZwRFTU9O1qWrRurSb0mwO7sfnrGtXBdnl0oAAAASAAAAATBEAiAIhOyFrE8RyyKRjg/7S90uXJF6kzgJBzHMyN0uVCnlcgIgDg1QXuZTFJcGGlQfynexHJcAYFNxN115r4e/LzjQHCAAAABmA0VOQwOfUFDeSQj5td30Ck86o/MpCGOHAAAAEgAAAAEwRAIgI+tVlz3Ab8Xg+Dl42Pse4xk4CbUDWxe+WRBWyn3jQdYCID1MYVAAHGuWOUpnN/rNMv7Dih1rtj8kyEHwnLaYBeioAAAAZgNFUk67wq4Tsj1xXDByDwefzZtKdAk1BQAAABIAAAABMEQCIEO89sR+CndvBpcF81lH+XN0y4dHDaiC/aE2tahzFukaAiB884kMFjaaR5AM2bQmHwtoKsYQm9pB5mss6hrUQPgFOwAAAGgERElDRS4HHSlmqn2N7LEAWIW6GXfWA4plAAAAEAAAAAEwRQIhALFt4uR27Sa3rODUYSB8CGJ9qp4IXc++zOd6tYA2tZhmAiAWhmACM5Xu+Vxa7cPpF+p5ryfsJ3nDdZ8mC/CguYevoQAAAGcERlVFTOo46qPIbI+bdRUzui5WLeuaze1AAAAAEgAAAAEwRAIgQS0zrsV5ETmEx3c52hB8bFJmAZt0iaP+DbDCg0zew4sCIEs6AnY+O/a3fotrATLfesmFMM4f1kVXtcBPcGTkk9S9AAAAaAVFVEhQWWAZOJiPD92Tc3PqGFwzdRRisdGUAAAAEgAAAAEwRAIgBuG88rXshsukAtWndX9PFFp0yAUYOBrVDmR3+DtH//cCIHXs1t/XtWWPwd72ys9DsM02YRnECI+PtWVNSlTTY3mWAAAAagZQRUJCTEXcmMVUPzAE3r+q2JZuxAMJPQqkqAAAABIAAAABMEUCIQCeMa6h4bdomzBvrmfZDY3UtKpOcaNYukMVl9yg8dwkTwIgSjLHZSsl/Z98VjwV5YDxERUeNTzC4qdqEwByb0gXq4wAAABmA0VUTfPri5DHY7iytT54Gawn7Kj5TI7CAAAAEgAAAAEwRAIgIMgz0n96iVH4MEyDUAiTdpOV9TR+XCN6lbjOpOc7Rb4CIGyIBvVTKlOBamPsFdvVI+PUm3j70yMOdEoWBDI8e3sxAAAAZwNTT1gwCpAlE4FQKOl/x56SCCzmqY07dAAAABIAAAABMEUCIQCLNq7GIESWREvA8p6EOg0nvP7RxJCHwfW4dSUASt9pdwIgWL4Dm4VXhrzV6DkT6CBSweUIOgT2Tkl8wSYEYg5hQ0oAAABnA0VUUmknxp+02vIEP7sct7hsVmFBa+opAAAAEgAAAAEwRQIhANZ51mY8kBFuXDzJNUYBSrNPqOKTDEdMaub/aVLvSKoCAiBFpm0NQK3CpkbEfulxUWkhAwJZSh2ywH3GjRajjCnqZAAAAGcDTkVDzIDAUQV7d0zXUGfcSPiYfE65el4AAAASAAAAATBFAiEA67qipD297mmIEz3sVSi2UCD35sW97idH2s0kDuwPu2ACIHvpqnobEIiRZ+u3Nd5lTmSJIkWyJU5xaD2gd9KyzcfsAAAAawhFVEhIRURHRRDh6VPdullwEfi/qAarDMNBWmIrAAAAEgAAAAEwRAIgXwItt/OahDzNi9nVoDFEPd4AYIrjeyWQ0XatIlQT5ZACIDcGJbX2YhGtdR5+oCb5fnO1lGbAsJeVd0wRoPpuW0GCAAAAaQVFVEhJWP0JkREw5pML+H8rBVTET0AL2A0+AAAAEgAAAAEwRQIhAKr2EX6kj8qYLJcs1P1+4NUkV55/+gOTOItPom8piE+wAiBzRP/HHjb0nEfzRa0hxaNJOLsQxuPxHXy/Ym3XeG4LMgAAAG0JTElOS0VUSFBBVCFW1R0Q21rMuZ+dt+fJG3ToCiwAAAASAAAAATBFAiEAgUvuQQdUZH906RtnR8wEKnK6JMwILndbpvZsRjjJ2QcCICX6HCYKzC/8xySpYP7VyE7jqFnGwhM6mSc7IHIp7HazAAAAZwNPUFR9JdnxDNIk7M4LyCSi7IANuBwB1wAAABIAAAABMEUCIQDr5UHvxsYLI0C/7YEJY/yIDl+DRqnfVgrW0RhiIBJT9gIgLX4P3i1F1iPhJ1EJiqU9Sy4Jji9bCQqZtzJqh7eiFcIAAABpBUVUSE9TWvK+GTpqvKnIgXAB9FdEd32zB1YAAAAIAAAAATBFAiEA7pEOp+7nuDc1jCphDDagTn7o0ub3MP4TwZIlpst0vr0CIHcSGlsFsYCunyQKYE5IA2a2gp49z1HvW0KxJkufmwVIAAAAagZFVEhQQUSNsdKO4NgiNnr40iDA3Hy2/p3EQgAAABIAAAABMEUCIQCaiQQYfGVWZZ79M8ayfm9esBXuP6PhyeN7/4YeQD5JvQIgNql7RaAk92iTmaN8CtWX3k2bqWuOlf+zMsEGeFV+ULoAAABqBkVUSFBMT+DGzj5zAp8gHlwL7bl/Z1cqk3EcAAAABgAAAAEwRQIhALmSTPoIR1ae6V7QN0LbDP072dgWrlRKzlcYXrPx17NAAiANBpBZlQ+S9iBEISLrbXpVFWaP9M+Teit8+ZWzfza5ngAAAGcERVRIUO7XNrK4CVUNialBwgBd6TWIxijiAAAAEgAAAAEwRAIgVhKoI5oq49ZLbAVNDADio7iSAi7Bvg+J8JqKQhP2irwCICLk/O84mSwc8wEfYBikeTqM5uXfI6Uyvk9h2/VxfV/VAAAAZwNFUFg1uqcgOPEn+fjI+bSRBJ9k83eRTQAAAAQAAAABMEUCIQCHsh5mHpNiIL26E9zW1QwOddhmYMYCr/OH+jLrOgvL/AIgJz8G/F82cxvD+jNGq1E7h9HZRSyko0enmFt7Ppx5/TsAAABtCUVUSFVTREFETLgkO07sonpBkeh5dguI/iJwVheWAAAAEgAAAAEwRQIhAL0nohAGQMt4tOuJw4R7cT8vIdoAfo/Im8gesF+/QbCQAiAV5dj9Gy7R+Tm14etXBy/JkgqzIpPCfpCLYmouwV9YfQAAAGgERVRIVu7u7u7ir40OGUBnmGA5gwjg7yTWAAAAEgAAAAEwRQIhAIzqZaODVAYR42CIrBp0CG8oeE8EFq2P8NhujF52VrnnAiBnwB5u3v/Iah3hCD53hcXJ8oFmNtSgF16R0ypaKj7bZQAAAGgERVRPUjIWPC0tMTxzJ56HOY5/hLufU36dAAAAEgAAAAEwRQIhAJecHNmwS8R/thd0VorifP8cI2ZVMJL1zOrTu30p5HNeAiA3ZgLu+mNim4uPNBnqFOujtzZlnuUoVSKxM4UXlowKpQAAAGgERVVSWAWsED9o4F2jXnj2FluQgkMv5ktYAAAAEgAAAAEwRQIhAPjHuX6HK8bkZPJENF/+kKUHoWH8t2SQ1+RmJN8onI9XAiAQYGfI3an7P+Akq82ugYPDlF6KPD8OrmQ0i3OuniBkcQAAAGYDRVRUlStl2XboZpxM6SoXzOWyWGkSrbUAAAASAAAAATBEAiAwAfYAq5rfca8UMlClysHlNy2wdRhsS2fB375spNuHQAIgE0vTCQmtuNqYFQ89ejN+5NDWyjdcJt54KB/cZ9cLXuoAAABoBEVVQkPDfooxui0RDBLwnwI5lUposAvFmQAAAAgAAAABMEUCIQD9Oc4sr4Zd1p9lRLWoiDQACQ66aZb64yoXq7z2MlnpOgIgIrNf2bGvTwAeP82sbAq9/fxai97XgubHrcslwIpYy1EAAABnA0VVTNn82YwyKUIHWlw4YGk+n08DquB7AAAAEgAAAAEwRQIhANZdWt2JzlxW0nQ3NIcnbEpJx18G66ThGRxYBYxzhsbxAiBDXNKmBugaPQWJmyJ3RME1OaNhmfEOvafyelivOxlXLgAAAGgERVVSK1fa6DZT3Znodv8fEblwxoa5CpouAAAAAgAAAAEwRQIhAJbzNrjpuILhvUQR/OoEPboGzi1OeZw4inIcYImMklNYAiAh6bJtnRt/aw5pWmLM1U6le0eqmEyLT8b4NxGcSFbKtQAAAGcERVVSVKvfFHhwI1/Pw0FTgox2mnCz+uAfAAAABgAAAAEwRAIgdzYavU9Pwhr4YIOKOYi45OEhBTnKny+wYGTdvDi0q6UCIFS5ga6a7tBqfeqbcJ6jIb6yyMPKmBQbouxoWqrk5ntqAAAAaAVFQkFTRYb624DY0s/zw2gIGeTamcECMroPAAAAEgAAAAEwRAIgKP5yedoe4fXtR+k2hWEcks9o4NmjuPJhnRidMHVVdh0CIDlFMe6YhVvHDz4KpfGLFhqD/nR+G4CJWq22A95zjYlhAAAAaQVFQkFTRaaJ3OqPetWfshO+S8YkulUARY3GAAAAEgAAAAEwRQIhAPvdJrmrm7aCrg2sz7jl4P7/+jtSRPNsWYTHsF6QI/6WAiAPWH2Q3+VlIx/v0i/KphmKKJWfeY2kBzvX5JbJak6xjAAAAGkFRVVST0MauuoffIML2JrMZ+xK9RYoSxvDPAAAAAYAAAABMEUCIQD6rAC4jw+yXc0rYuv0uqPDgGZKTHTlrR+DicaVXjJ8+gIgR88wrp1PF2jiQ+RpxSOxod05eoQV7fizbIB4CdhFfc4AAABpBUVVUlNUsavXq6fZm777M9HfxmsN1SIzU1AAAAASAAAAATBFAiEA97Wq5cH8PQhn+5k2G7kweP3DFnxXAFDa5r05Lr7zVDoCIAPSI7UzeabteNYupfqzSuIfTADexIanAABZFfl2ilqAAAAAaARFVVJUxYG3NaFogHGhdGyWjgeY1kLt5JEAAAAGAAAAATBFAiEA60QnK/OPwEVC7vpjIoD6fF7GXVqftcibQy3T8xOdiDwCIHw/h5iKr7G/syGbyJ7TMpGY4X0kkfU9CnNt2zM9b5DLAAAAaARFQ1RF6foh5nG8+wTmhoeEuJwZ1aokJOoAAAASAAAAATBFAiEA0OrWeOfJvtHSZ6zhLq/wFZ5469SEuD27T0R0JDpyWZoCIF7a8BPPL72PJKYhifqj9Fy5ON95fy0dubI0ASrpGvO8AAAAZgNFVVDlMqKjewcHtDBrIbQS0ujCL5gk7AAAABIAAAABMEQCIG+USeLh+D48lehNWauGu3CIWirxrk9+kLwaLl2RB6g3AiAY6K8V+WsNUvUYrOd7H/CqXY6TNG43ApqsNxMLNTUYLwAAAGgFRVVSeGIL6tmhvMG4TQbj8t9n41Sf1VqwVAAAABIAAAABMEQCID8yE5ISFkrrGIyzFB9lZ25H7jz46/0+x2N4R5pWK494AiB3CzM6bPW/CmczGcPrmZTFyoKWlk5LU7chJVBPzl9EmgAAAGcDRVZBcBJr0BLjkDh5I2bJEVu2RAfVy+EAAAAJAAAAATBFAiEAkp+4MJpC95q06gMvWOCi3apiBx0Yfjj4eMix+/66T6wCIEwubHmTZhT8UJJJ1qqVHgxWJhxEFt/2N0DvwGuLsy+vAAAAZwNFVkO6FLJF1EmWW9vrYw6+E1tWlHT1sQAAAAYAAAABMEUCIQDvuESxHnt2ZfgEess7kld0AaIERY+kPtCGA+oPIadC1wIgC22WInmUrma7vgpYdHwmNw14dreW6l691jEn3dXrzecAAABmAkV2i9E1uyVDlVBFyohZwFAz0HY22WMAAAAIAAAAATBFAiEAyx4oCuvFsdePGJeua8PF1bH6/7JPRGzTmPefxuBV6VsCIGYYMcom/2RBOVmy4b28ZRtQseQ4AxegMLFNnXoLR3/aAAAAaARFVkFJUPCWKdCv30A5ij8xfMZ2ypEyBVwAAAAIAAAAATBFAiEAqx5uFhPkCa+VANLz/2UYFqTqQyZ/ZC8TOpPjoxJCqx0CICbeglGlVDr+p/x3m0v5uAxdXOJb6/8dtgBVZcFT67w4AAAAZwRFVkFOieOsbdacFekiO+dkkCXW9o2rHWoAAAASAAAAATBEAiAYG0FA99R+kJ+mDyG/LKB3vfyNspmDpeyT1vOkdzPkOQIgPOSwRIBRFzvsFmLxCMThrtT1+0F70XQDVfVDfRjftBEAAABmA0VWQdbK9b0jzwV/X8zOKV3MUMAcGYcHAAAAEgAAAAEwRAIgLcVZhgaIIddVYm1wL2kvZRxAKPIr/9R6+4FjfpSvHVkCIG/4F0LpWpUqZRax7Jf45CNFkKv2qnfpt8Sef6ZN2YpaAAAAZgNFVkWSMQikOcTowjFcT2Uh5c6VtE6bTAAAABIAAAABMEQCIH02GPIbzN1oPAo9hoT17I2w8sw/0YrbdwtiJbXXrMoZAiAjfNk3tDwE/iUarqux98Lx/J9DXCtWuBVzSFRHwvyQ8wAAAGcERVZFRFqu/oTg+z3R8Pz/b6dGgSSYa5G9AAAAEgAAAAEwRAIgEdn02Y412WenUXzm2Y7qFRHyaEKJ7KbF2pgUXMjJ9VUCIEhUaJmzJGT/kfU50bptReVv7eEj/hm1DqNcQOj/rmMFAAAAZwNFVk5okJ5YburI9HMV6EtMl4jdVO9luwAAABIAAAABMEUCIQCDR8zha0ByM1gKWc3S51X5Awlr5E0C+u0M2nNpS4q0wAIgdiVNjYq07mDz48t360XDyX/dM6R7C3H44kM3zIH1JsIAAABnA0VWQ7YtGN6nQEXoIjUs5LPudzGdxf8vAAAAEgAAAAEwRQIhAMVGrLqOfvntPhD+a65jqvIcs/kEBlGNRPIy2CBfELcGAiBYrOF3i7KCpqJE3HK0SYlnUUOuOhqXrQSliN+HTiEl2gAAAGgERVZFT2tA0xe8HeSwk4UZrHB642Rk9JFxAAAAEgAAAAEwRQIhAN2vx/PjqxPw+t2MTwj9xsMzkzFSpc+nUWjiZmf82CYGAiB16gLz39QjoSUGgHzdfKmKYu/ZfqxgJBuTx9nqx5SAHwAAAGwJRXZlckFwZTEyP5B4uPvLHE4DtB+p5aBTKiiEjbcAAAAJAAAAATBEAiBeA3XnkQRPZFsaTJUxrMtwCZwC+b2MTZUCJwrmTt2c7QIgBMd4Oc2eCjVLQClvcSuyZnVNA8jbLq+xbTKziD4838gAAABmAklE69nZmjmC1UfFu02347H58Utn64MAAAASAAAAATBFAiEAk65m3YW8Gjn9D1lFa7JJgkKJ9XTRZWjCtETmUnS4BC0CIHyrJnoxmZq0vgCgZ6Qhzm4JmRUmYaIoGNWhIJr8g56SAAAAZgJJUVec6hiJmR9orMNf9cPdBiH/KbDJAAAAEgAAAAEwRQIhAJv3w76Iai79hQIpwwOHGS3+RXehFt+n1297YuLhA//0AiBkT+fECdq3jT18rM7O2sIxjqfOcWDgUOy5EVx5IwFNUAAAAGYDRVZSMTdhlwW1/CKjBImJ+YOQXkVrWasAAAAIAAAAATBEAiAl+hHC9TfZUCBVo7o+8SOg10YPb+lhN2Rta5khNKgabQIgUGe8NYRiG0CACemNqf7+jYy0cQhAkWCv3O/g+5lc5CoAAABoBUVHQU1FYtPAW5w9kW+8ERgZu9PO5SkGwa4AAAASAAAAATBEAiArGepo6ieDYJi01E9VaTdWcqo+EpDR2nvq8JAvpWacQwIgKqKA4EAbGQIp+jzZ1h5fBDhkdfjDc7By1YWW1s4uGLkAAABpBUVWQVBFadH/hQBKRFqJLfvYjfANSPsK9jgAAAAJAAAAATBFAiEApjk1sLpB4abSvvzM3CtRRWl6yLXgr8EifqVBh6oa6M8CIB97k8Gz/2xKUlyy887St1QmJwCcsf+M3QA5hP8jtNKjAAAAZgNFVlnu0657D4tbm7jANamUE4KxgiZxzQAAAAwAAAABMEQCID9oGjNMP9Xy6eHh17+9CLO+VKL5HbsmtgoS3v6d6+IRAiB9h/ifKr4ZxrW+ROmCkrEVHntTCX8s2s7WUSOtx1zHPQAAAGcDRU9DqABuOsG9lOVOMTa45d112wFj5vQAAAASAAAAATBFAiEAmnTrX7Gb39/JuV221vG1FDkIHYKD0gNPodRsgvUg9tICIBPedPtAoO6fzTSFl6Hdf56A7UZC7ldNmD92cfBaaIjLAAAAaARFT1RP0+fnHSBAOm0L6tVYwL8ZRSo/0AIAAAASAAAAATBFAiEApGiH4r6QqVuM90mVvT1KwVIYR9kXR0wC7w3cDpIhOE8CIGO6gAjjgvX0d3WHRKI4ZVlUsXcNmf3wZn/rvciXqf/AAAAAZwNFVkmSDbbDjPWioSVU6BLUs6wtqo66TQAAABIAAAABMEUCIQCRd2ADYqJ+zB9FGrIxsvCTpvnoBB3wH+zz42xIrH4rogIgNtKG8hrfawTLtYyE197slAT0tuRozIZSzX35aSZsLysAAABnA0VWTprxXXuHdvopYBmXnnClvlPHFKfsAAAAEgAAAAEwRQIhAO6A6cXw+A6ZQaMQGmau/gpHAYb2HDQ8nSXkV+W0EuPOAiBsGLYTArFvW1h2PfGcCZ4pt1v/WOD2Xb+2qrOkqBZs0gAAAGgERVZOWZokuOim1FY8V1pwexJ1OBEZKY5gAAAAEgAAAAEwRQIhAOJYi/WOm1WH9Uw22lc3X8xFuXUxbsmLOImsS07WZ2GTAiAzMhZIXLJf4XogwhRMx8YOt1PSBOKVV8J4uq72FxUb4QAAAGcDRVZP771tfe83/66ZBQPs2xKRsvfjh4gAAAASAAAAATBFAiEA3udXhMi7RIqpZoBpP45Jd04Oh+D89QnQqI10F6yGhvMCIFNwLDmH9tcaRvFfCojmevWzuH1OoE88dZ1lrxpIteKHAAAAZwRSSU5HlGnQE4Bb/7fT3r5eeDkjflNexIMAAAASAAAAATBEAiBHZhwVotWwc3eJDCc0CKPqfeDDvTJekTuIigNeSYj83QIgSTSQGn3GD4I2xkC3M+7U6KV0pobrHJAbumRCJu4dI90AAABnA0VWWPPbX6LGa3rz6wwLeCUQgWy+SBO4AAAABAAAAAEwRQIhALWMnGQ09YC2LJbdh6ZvgupuSAd420FfJ4NK6wuYAeU4AiBOBxdchiAuYKe4l2TKx2lmGLfpEtkTlR4+EzD+K88OmwAAAGcDRVZaepObtxT9Kkjr6x5JWqmqp0up+mgAAAASAAAAATBFAiEAo9QSBVDW18J+nYp6AXCJXn1GEk8ryLh+Bf1jdzedC7ACIB5mmdrahiDdZk8kNbv5+PDzPoJDy2jKWRhnOBNV8jt2AAAAaARFV0lUVu4XX+N81GFIbOPDFm4Mr8zZhD8AAAAJAAAAATBFAiEA+1cHWWnyuvZrVxbR8CozB2JrQAfg1ECCl7BNwSBw6pUCIA8pcmnom0+EV17WwUQ+y2lro0t4ioS2KxxAJZNkBqOkAAAAZwNFV09ESZe35/yDDiAImv6jB4zVGPzyogAAABIAAAABMEUCIQCByicrhpwJ2jh+YX+eL8CnmPVH1qmPbczPGcJDuchYugIgFB0peQR5ogqFSC8rgp302jRa7OuxNChlb0/aDnLGBa8AAABmA0VYUFMwpYBbnbaOvPUke7yQlxY8HCRCAAAAEgAAAAEwRAIgNoaIFkGZqWeutAqqUNa4EfpZhS4R62gl9h0Ex91xNi8CIHPOHqUxErC7FMsk15Kofh6t873fGe1oyxazRSfdyI83AAAAbAhFWENIQkVBUmuqkc2KoHQxdg7y7t/tzvZiprizAAAAEgAAAAEwRQIhANexiAeBEzZ71nmXUwTAopUL1PMgFFwoFmM3WB3leZhjAiBg+UCEHthz3UEkL3UqKGhvuOVUs7UENjLMADcDw4d+SgAAAGsIRVhDSEJVTExZLvaMGPBaIsWJAmPepdlS3RQNKgAAABIAAAABMEQCIHceN6uofTXr30ALbVlsX29oMJ49/jikK/H0ssSSSFq5AiAoahl8hqk8MvXDhb95fPg773hisH8aYAfU10ml5CAu1AAAAGwJRVhDSEhFREdF+Mxn4wT44aNR7YO0275rQHbVE3YAAAASAAAAATBEAiBClqGE78SiI82B8Gr6+SjBm5ccrgh0ri4vvyWQjoMuJAIgSTN9/8a58DgW217o66UnrAeg3JhpN9xaAPTsuJXduDQAAABmA1hKUGBAJmlv2zxnIK4wScRtWaxgTeoKAAAAEgAAAAEwRAIgRn0d3lgjgpAKUiWOcme+oikb7nQzMRiBCrz9o2VrN14CIGfqLYWLowmyMRAbPiV8fns6MRLYK2kFUBhrpP5RA9dEAAAAZwNFWEOeTBQ7/jX4VWJLP4RGWrdAGhehIAAAABIAAAABMEUCIQCW5SsIeJNG1T5c5omhyIzn8c0YEVY8q8FbTxn+WrWDmQIge1ALxmvdbV0P9Jz68gQlMCSBCYRG4k4hhVHO3mmKu9AAAABnA1hFRO5XOpRbAbeIuSh84GKgz8Fb6f2GAAAAEgAAAAEwRQIhAPkgnENc4Fgp0nzdkSXu5q0nLM3JYZazhVlo8A34Lx3sAiAEudUYF/ztOJcOXpdSwZ/r/n17ocLx8yzAUJJeI9tQkwAAAGYDRVhHKhF00c1DSMsersPwAxCQjKKJ5b4AAAAGAAAAATBEAiB21/+GdFN93mCLi7hwFcWJtNRL+HqVLL2t+XliV1DWzwIgB4tjWNR/4f6aB7olzoAdPk2/guU6OG+bllGRVCkHQJ0AAABnA0VYQwDEs5hQBkXrXaAKGjeaiLEWg7oBAAAAEgAAAAEwRQIhAKlaNXvq3ICE2Ynp0fmuNTWD1zF+9tPl7Ubcm8awhy7lAiBIqvLO3G1Xqy0iVo3p6UNcoZcdcdGslB89wrUVJLJp9wAAAGYDRVhNg4ad52ua2BJeIrhX9RnwAViMD2IAAAAIAAAAATBEAiAuhDytOGoLvv5q8zxvBUYwire5iYfWCGkfqYuIBwCw0QIgCmVucX7et9SNFvF/R349jzdpe9p9qF3NgHJPiR91FYMAAABoBEVYTVIzH6bJfGTkdHUWS5/IFDtTPF71KQAAABIAAAABMEUCIQCEcc7dcPsrhQ3vKCgqLKAYX1zc09hgX7vSkqO4azy8SgIgSn3B821pnURACI3LwOFOQtpeKIjz11KOGld+IgyRJJIAAABnBEVYTVLJjgY5xtLsA3phU0HDaWZrEQ6A5QAAAAgAAAABMEQCIEo17FiCF+iTIfO/Y63WlyxGG5eStlZdguJQoP9el/E7AiA2zHzGiE3/VCsJUGn2yvvzFjoQ5lYon8WU8TM3pvtMfAAAAGYDRVhOB2bnmm/XRGlzPoMws7RhwDIP8FkAAAASAAAAATBEAiBb1xQCjuy+o/i+Ll7Gz48bbfXsYW5Qb4kFTPDQnwLwMQIgSCArWVhjkqlr0K8HEaQDa62nvvMTzJYTjWaYZZm1BvcAAABnA1hOQ4MXshbXw/mluEAeS2gU0Tp745DsAAAACAAAAAEwRQIhALVEryOC/ApR600RNgnWANN5AOak3y1i/EdoFpMoSTqoAiB56uTWatKrsLOJZCdwh4eXDdz1pucyA0m61/pO7r4+kAAAAGgERVhOVNbGe5OnskjfYIplPYKhAFVhRMXaAAAAEAAAAAEwRQIhAN/4woHZQqSjWXbtNZFPB3XS20ALVWA97+pjvTCsEe1UAiBVjt+4O1ARWGU/QJ4qCC13sv00d3qJBpnLVt8NOGGvwAAAAGYDRVhZXHQ6NekD9sWEUU7GF6zuBhHPRPMAAAASAAAAATBEAiB3aPgSHUwki2DDHAEJmhU/Vnm35o23FCwfcsNowks03gIgeE28xZXg/Z2zxqLMidx525egRtiR9KcNoB6plbxxK2MAAABnA1dJU97K3hxr8s2fuJr61z5KUZyGetz1AAAAEgAAAAEwRQIhAKWb/Y0WwWSQcpG6I4ZKnv1gh0G1HFXqpzbKKdzJAw27AiAQeYeBMghb2XvwiiOj1sRRfrcURJddfJgLVRquxv/mmgAAAGgERVhSTuRpxEc6+CIXswzxexC822yMeW51AAAAAAAAAAEwRQIhAP2s1AW1wOlUkl0LJY4/FGSbtmHKzQ+GffX6Bu0awrKLAiA92K20XubZSfMKmKQNPf0mATF1uBaqCqC9CwX8Ei/59wAAAGgERVhSVLIAQ/FJgXv/UyLxuSjomr/GWpklAAAACAAAAAEwRQIhALAsZDXZC/sG67M57U0IJxuD/CKmw0/drEqmr7ICwFfxAiAKBXOaVJni82Foi0yh9wIsF5WeQwrkJcMASbB0LuvMvAAAAGcERVlFUy3KGelERT5G2RMJUMoTVGGzvAwwAAAAEgAAAAEwRAIgS5/B4lcdILrmWeHJLo3K6XrUstXgBrQr4kMgWSOuX8ICIAbLd3YQyExte9de+yqdK7Es7wne3d2itlxn+4KSLYcbAAAAZgNFWliei/5G+a8nxepcnHK4bXG7hpU6DAAAABIAAAABMEQCIACysAPe8Tacs2NxFZyz/BGqaf2TwS1N8cGKCtNDgYPxAiBuR1B0j8gRdfcrkzLvybOo/HzUt5wgWGXRyLGPIQB92AAAAGYDRVpUXmAWrn18SdNH3Pg0hgufPuKCgSsAAAAIAAAAATBEAiBTd68opcnvIxzbEK6GmRRwk+7sXU1FUUF/WyaPARLH0AIgRq/VTG7+1mgAofRKsmh4GZyVy3OhafPrTPzkiSX9mzQAAABnA0VaWabVxyCpr1pAXftrn0T8RPq11KWNAAAACAAAAAEwRQIhAJXZG57EZbBQgEwkfKO33in6VcbTA+jNLu2hczfMAJ4UAiA8ngyNdakKf/JcFDHq4KEmcunv7pJaiXR1OCizojXi0AAAAGYCRlR4pztsvF0YPOVueG9ukFyt7GNUewAAABIAAAABMEUCIQDHWN22PYzZI+LB8ETH5CU6BQfclJUgXYAmoj0tcHaulQIgF74/YjUdtGmafOXFSFzrtedx0bJhmEsroGa7qZcsY90AAABoBEZBQ0UcyqDypyENduH97HQNXzI+LhsWcgAAABIAAAABMEUCIQC7xvIBe5G7NgOpILGPIpdLj6xRgI2jqYm9Tk81/0xDvgIgJD4DrMjZAPAl0z+gBBTmpwI6bJXZAvw+T8iM+k62uroAAABnBEZBSVKbINq87Hf2KJET5hiT977vrrGZCgAAABIAAAABMEQCIBg60/patHaiW8zlw/x9GndkMQbncOP0HzUEndGdaLaAAiAfea16RszdHB2DAfjIOLQYSBoZpXGyJku9LvY+SsyejwAAAGcDRkFJzaLxbGqoldUzUGtCav+Ce3Cch/UAAAASAAAAATBFAiEAjHdb99d/wW7jol5Lt86ZsLYbhomNAbRH3DhiiVHnYfgCIA7AGqhGLZaXvlCE9preKoW9fIqa7xJD2ns1mzMxI/qyAAAAaAVGQUlUSOUxZC6btdAn6cIOAyhCh7l5GamlAAAACAAAAAEwRAIgaK3K8NLAgZHCrefMjqrQFEtovZzBdyzOHqmXLBryntMCIE770Eh9MB4I7fffZVKvoKMBD5+4IRhu3eNzZhwQ+L6jAAAAZgNGTlTcWGTt4ovUQFqgTZPgWgUxeX2dWQAAAAYAAAABMEQCIDshuKWi06JlGWWiiyrx5XduFjLJpKXdwPU1kfMAcjKXAiAnVLrSeokGsCdqsSR1m66qgLifcjl1eVkdfGlRS/bWsQAAAGUCRjk4qU6SoZ6XDBRN7Qst1HJ4yhHMHwAAAAkAAAABMEQCIDqJOxpNvO4SfLaE3IV/7OlLEfqM0jiPm0SxkcqoLSCcAiA4xKrV3q4KgQaSAGGGCwRASov6FVqgiRmTDrAYcOp3lAAAAGYDRlNX//////Favzl9p28dzBoWBPRRJtsAAAASAAAAATBEAiBTjTJ2A+Cl5aH4CLLAlsyfiBQgqsTZERD+33G2iMprUQIgPBnjInHhxeu+ONKHs4HGpfDgbA8Ym96RRarOY7Y8/TwAAABmA0ZBTRkOVpvgcfQMcE4Vgl8oVIHLdLbMAAAADAAAAAEwRAIgFbGDWjwvff0++jE6LBx4FZJdJrGcfUWmB06jkCEYq+oCIHutzVGxIGhbPv1PSjUJPi7gaJuJ+chyZZMINoArDuasAAAAaQZGQU1PVVNIOJA9Yxnkg6uCrj8Joew2SJpBkwAAABIAAAABMEQCIAF7vEdE37KaheUQgk/bTwkIW1SqYbIzkPat9jlK8X6CAiBto5wDp5Om1f2spSriwQ21ZR3GBowdffEI/k9vxMYhlQAAAGcDRkFOkBYvQYhsCUbQmZlzbxwVyKEFpCEAAAASAAAAATBFAiEAp6aHGKploRORg7O/seXiIp58L3ma3OZfKlGhOp0Aj4UCICAw57lCTY788Ifb+0LB/knfsLWW8w9TTmkq5Zss87kZAAAAZwNGQlR6lxZoX4Uu4mj+uG3/pWLSFMwT2wAAAAYAAAABMEUCIQD82TrXugGXHW42UtXqh5AU720nzUF3QkG20Dvit5ylhwIgKnUrG2l8Af/vsLlZXuMLZmgHLJvQt6fJDSOJd9rurxIAAABnA0ZOQ38oDaxRUSHc2j6saetME6UjksrOAAAAEgAAAAEwRQIhAOTJA20/EM0fkm8Cd/6gyMIwUX0OW3zGcuc+IrMIlScsAiBMnWhu+2PB/PfVSbMSmAvnLVfQB2NmioX5lkiieMmNvgAAAGcERkFOU9M9DrHAwClcOiQJqRAd1RGCO/IXAAAAEgAAAAEwRAIgQssaTAHx1Rfm/OmTVLQT27Mw8OkUvkMORXF+9T/7qJ8CIAjepYHY6zeakMSemNsCMROs+xr8GFBr0r+GU/Is+2amAAAAZgNYRlMWr1v7Sufkdbmtw79csvHmpQ15QAAAAAgAAAABMEQCIBo5Ihu16mePHYsI5WaOTZtMmTb3kRfuy9kFhx/OOr8iAiB7fU7Y0r1dxn3MrmDg6Dlf3cx0iISpe7NXvHmMggzv+wAAAGcDREZTzsODBlWKMc27Kp1ihZR8W0SiTz4AAAASAAAAATBFAiEAomKf/BMLSJo0hT73We7HSZGV+hZymXNAgXo42zdz5b0CIAn234SLiAtt4b4oEYSqe6jdBNP869d8wpm0K35JzCynAAAAZgNGV0dKZuln1L8BcP50wmmABzAosfKAmgAAAAkAAAABMEQCIC5Q5k/3A4REbS/5G9ib9gOB0uAXiA3Qdzgo+ReRil7eAiBBznWaRR9zHZDbqFKzfBIOf0v+FayEw1OY1fyfswTJxwAAAGYDRlRNThU2H9a0u2CfpjyBor4Z2HNxeHAAAAASAAAAATBEAiA/G3JQknvYFWA+mUER8tB2FpMvENMj4TCPhWdW19uA2wIgc8SpA90i7AOrhY/qlN64OZrLPS1Aln58lZWtTTn50ycAAABoBEZBTlh9yzsjVsgi01d9TQYNDV14yGBIjAAAABIAAAABMEUCIQCMneXT4VJ/alGZFTGhA0Veq2hFql+oAJ98RpEEtIySmQIgMOUEkOliy1xfe/09ujbegMN9SvJL4eUqTwZRaYmJylYAAABmA0ZYMe0OIEG/taQm5e1CanN2ViTgi7t1AAAAEgAAAAEwRAIgJ/Flt1ci8ZAwu5WVMqWqeABIsA4oxZkgMCpLGkbVITICIBbvnjqCEbydKo1Kq2/2RoMqn/q1VywidNTeK9izZ4goAAAAZwNGQVJ89tx2lIKr7i/3V5XQAPOBqAYt7AAAABIAAAABMEUCIQCgh787RJp1UYrDq+oigcxZL46Um2h+AA+nEEbwppxu8QIgA8O7sRaMV75fPsReFgcs5soOtaCQ2lxGr1ZBFjZjnigAAABnA0ZSRAq++3YRyzoB6j+thfM8PJNPjiz0AAAAEgAAAAEwRQIhAJl+4HpHb/YjBBO314xgVdlrDSz+tarxzSMsAPLl7FS4AiBxwjQiyG9pZf//JfAY2Xmkp0XJ9hZuo3Au8cEUOwgjUAAAAGgEZkRBSehchYHmDXzTK7/YYwPSpPpqlR2sAAAAEgAAAAEwRQIhAM+RfaLdluUcUD7Ed5Dr4Ua7pG7deCTMQeKBKTNdC+18AiBt3m1Mz6wUZwK7XzRSusAxuh7BUD1p+9hHCuIMTpSenAAAAGgFUEZBUk1qjGbKtPdm5eMLTpRFWCCUMDzDIgAAABIAAAABMEQCID8EZe+OotNikXKq+5dRDS48bKzpJ5wFHilzeldu9sdSAiB1yIGBW6+KYbdK9mWHquK2y/MjKQK3UYv2YjqwChwNUwAAAGoHZnJlbkJUQ/vhItC6PHXh98gL0nYTyfNbgf7sAAAACAAAAAEwRAIgbxVaJQv4SIPdpVXMy5y5Lrr4EPeLtzW+8V8lKjFCOFACIBwtsTgleN4gL+yilbyGzWv7UL9S3GgmNy/DN8Rz2cwYAAAAaARGQVJNoCRskDK8OmAIIEFa5gDGOIYZoU0AAAASAAAAATBFAiEAxvQrbh1U3Ph8cmYRmPi1I0kigSzodvkgfSFG96gXK/UCIB425NhzqBUYfi70XtW21068Fg86Xrh/3ftURVqyBkSXAAAAaQVmVVNEQ8P3/7XVhps63pRI0JTYGwUh6DJvAAAABgAAAAEwRQIhAIGMShTjtjgNbRG/oFc6yBRtrbWMZY77qcfFZu+lXt2PAiAIw8/3+cLgpbpKMkNMeL23Sm9UhXMvAgeqEeLj/Au63wAAAGkFZlVTRFTH7iFAa7WB50H7uLIfITGIQz2fLwAAAAYAAAABMEUCIQCpb8mPVzYPj1ekRccvlmqwlTKDyuLVUiFyEXz00ZrpPwIgQ7XvJsIzF0nylYBvUnwf3VaPL2rJFvScka2Lneb9zxwAAABpBWZXQlRDwH65GWFmLSdeLShb3CGIWk2xNrAAAAAIAAAAATBFAiEAtT3x4ndctsizKnAEOMhPzVPjpLncktVEyOKI3W20h4QCIE9nb0vZ4MvuYqDpCX8TJrXAWevZh3Kjq69IkdJ62g+nAAAAaAVmV0VUSI4phzRoGtv8Qe5dF/+LDW2APnCYAAAAEgAAAAEwRAIgW4AdhDA0FqwqX2X6msvEMYTqz1xA9jnyDfTO+9JZ4h4CICBIqJrpPYQ0i8Mzg48DBPrTANIGMV8Vb1ZVPiyq4LuLAAAAZwNGVFQq7BjFUA8hNZzhvqXcF3c0TfTA3AAAABIAAAABMEUCIQCkdsaHDYfEAx9i/DxkitC8EcN28U5etlPqv59WyQptBgIgCNoqSoqukkKnpDJOHSfLcwsbIxHpisVTcAWsIxonNsMAAABnBE1FVEgRAD5BDKP80iB2Wz0vNDQzoLK//QAAABIAAAABMEQCID3iR7+qVn5Tbiqy0cgVeav8rNxNEWqK5GyH8ex0Y9lXAiAeh07bJ0ppm5ZAJ8ZMCTEvV5LWSGcZpdcrm8Fm5uDToQAAAGcDRkFSquPPmWjSaSW9tzzjhk4AhKIPRocAAAASAAAAATBFAiEAuZRebzAphIkdQ1UCtdzvVuJ7GP14hYUZoz5KIVJfJ0QCIBLIYec3NLTd922YnHf6K0dGsgm7AgwErImi8Ly6zP+lAAAAZwNGQVLosqP2BpfzxW/KRKlha5H8m5n5jwAAABIAAAABMEUCIQDbJdEi2j2QxP7bfjRd157ta7ALFdPx4Od5Agi6VVhS6QIgS98Beh3jItzJyVdkjtAvmrDSnpCP2GVIL9ASuS5KGRwAAABoBEZBU1TIiKCrSDGinmykMrq/UuNT0j2zwgAAABIAAAABMEUCIQC/6nmGuFXvnVe0jgtl2hEj0kmA4CTrwEsTGJvzIU1owgIgGMKxkcTQJDI7jpjlKXjyWL+OMygO0UPOdDoDlaV4ob8AAABnBEZPR0V2hRqTl3vqkmTDIlW2RXiCA1x1AQAAAAkAAAABMEQCIGE3Bkzc6YTPdLzrlH10c1xPDf9Lf468RSBtaxROWawNAiBnvwOCMO3kdkPzAC2ro8NwIrL+Raq4ng0p0PbID2eXygAAAGYDRkFULslbjtpUm3mhJIM1o50pnQDtMUwAAAASAAAAATBEAiBPhNvTOyl+PIs4M1mOnNRWsCEpK+92JkDh8rtSJFcx4AIgJSGhEKtvYfJ0mha+wubvb8a1l/hUFiHddYg9s2oDJF0AAABqBkdSRUVEMhWCKmTIyyfXgoxF4Kr8Pmxd7NFyAAAAEgAAAAEwRQIhAJeQaJ+h4PcIh8tTIgxWm9uF4MrXIKPDRvB0ZUHUKHUUAiBqKM2hsvzu1gG/Ux8M+0+WgRb7BFU/CoXFSSw/fVjqagAAAGcERkVBUoippS+UQxXVtOkXuWieZURcQB6DAAAAEgAAAAEwRAIgVhv/khl1BYawCi2//N+bepJ1f2tJoGDkKUlAPQCBwxMCIACNOY3ip3JG1sauevQ3xUcA4LnOkgzWEqNeGEyTVgOaAAAAaQVGRUFTVPLfhFgTDwDJS83i3T8ojPYIGH+HAAAACQAAAAEwRQIhANKjZgplGrnwiuPyx/p8jpwx/1NL/seGcx01/JJlHCp+AiBWNicxW7YULhmoDOcr8SNZiXzQfkRKsj5F+ZxHXdqY+QAAAGcERmFjdCOu/2ZMGyu6mEIqA5lYbpbMihySAAAAEgAAAAEwRAIgMh1zaR9pRM+Yj5cZuOBUkJOyxi2ElXv1qBY0qYwZdTACIB1vgWvEvO2GirzfQTChmSb14vD0x2chCFIxfCYjIjX5AAAAZgNGTEySNb2ga4gHFhuPux4QLLZUVVshLwAAAAMAAAABMEQCIAD9DnD9RYSEPFPTI2os5B+ujl7cpC91QILvp1VaW2moAiADS3iJmMuEEtEKzrkeLv4TKkr1BbE3/jhsuzyDak/kngAAAGYDRkVHOJmZIWhgq44BdTh6DJDlxSUiyUUAAAAJAAAAATBEAiA3o4PzbbPXtBH77AM9hVm2tkhpXKlRiYmbGDKoKgCdYgIgVL+Ceuha08EscDItFo5JhtIJbksNlHjZ1IufT5WUXr4AAABmA0ZFSZVvR/UKkQFj2L+VfPWEbVc+f4fKAAAAEgAAAAEwRAIgJeQh/O87V+KL8QOm2Uyp0NCUz0rux5iElowEns4KGuYCIE5RaTQ4PD0GVqjg8ng5+UxMRNLcIr2nXAMZfG+oZiPPAAAAZwNORkTf239ywfGVxZUaI06NuYBusGNTRgAAABIAAAABMEUCIQCQZD2rHcdPP9YYhhjO27SqsnZGlr0TeVTgWKcEtFNMRAIgKOjjq2dqqLIVU4mJYfYjXeE6AXcGq0v6ga8NCx0gH6MAAABnBEZFTUmyboubbPU+SZq9ssg+FTN76FqeWgAAABIAAAABMEQCICEEWEhPbFFjMl2D5XsYIla0xH+FN9IttoDsNBhdhAg9AiAnp5tH1uOh6dHGBNfJpVRP1/aJgyQX5ZpcTe7GceabpAAAAGYCRkL7GQddd6DxEXlvslmBmDD0eA8UKQAAAAYAAAABMEUCIQCM8tMmturiOrH3zFqChFVoPVICOJMkIfoOvuzPflb5fQIgVsBLv933ohNI0EN1Tw5IetJ2F4NXtQGhyRWKxLwRU7oAAABnBEZFUkFTnzYVwduvoNAI2HUEZnRYrL0W+gAAABIAAAABMEQCIDUco4qsDkC2HW9+5I87GWNnYk9Y9xz8TspS3Iqf5pNnAiAMpumIVwEv8eRtAzl2wr4pfZYXA3uFfEGZ5Fp3+uKK7QAAAGcDRlJN5crvSvh4DlnfklRwsFD7I8Q8powAAAAGAAAAATBFAiEAmcrU/A9JWp4dAYEvxXkHrvGSaRGCjTmmL9Wog/RHQgACIFS5gMhaZob3h+7QWqnf1LrISOpCER7ZpHcz8BEAJ+jKAAAAZwRGRVNT4JOU+LpkJDDtRIyiDzQux6obouEAAAASAAAAATBEAiBgdy54H855/bA4rb35S8glse8f7Uc15AQ2zOcS9QGA7gIgJR4/LlgrXJjuNcEs9/iKEANvshD+WfAqmbaP2D29qykAAABmA0ZFVK6kamA2invQYO7H34y6Q7fvQa2FAAAAEgAAAAEwRAIgUR3ZhtiDEcysa28Yjss6HQYVXmlpaJ4X2ovoh5LKHRcCIHq5v9giCd3tZX3M7u6gQ/+4aOW4ICtapsVgZHxkvkk2AAAAZwNGRVQdKHzCXa18yvdqJrxmDF98jioFvQAAABIAAAABMEUCIQCAlcdzTk65wFW0aPuUQ2AXPGJyWMuuiYiX5wmmsxRIjwIgbt/3+f22P8NsjFrdb6A/jx941g4XSbIfh81fh8SujK4AAABnA0ZFVO/Oxth+POYlyQhlpJ8rdIKWPXP+AAAABgAAAAEwRQIhAJ66mNkM9kBBuhMigEiaWvQpVDHzidjgE2wl+YKl/Qw7AiATrLZ/sdWJVbxFsdlSUmezTXO0rYKu5JmeZ7XtgMsDQwAAAGcDRkVZ6OBqVhPchtRZvI+5ieFzu4slYHIAAAASAAAAATBFAiEAo29ZZrEd+LHONy8CzZ4TNaavN4fI9a/Xq7wDFwdTpJ0CIB/GcqpVi+0va2tWExqNRdgO2tRx8jGWBuIpNCqFx0smAAAAZgNGSUjfw+hXyMzqdlfg7ZirkuBI443uDwAAABIAAAABMEQCIHc/rhlQZpYGggUh6I95sQp4/u1uX3u3ZuHSly4zfpjlAiBmyN/VWJd+RY9DE8PMgssYoa7vN4/bt6WPllj9c2BQUAAAAGcDRklEUvs2yDrTPBgkkS/IEHHKXuuKs5AAAAASAAAAATBFAiEAvhEpz7KCfrKf1jURvWH/3fZ8A33BJxfoQTfzSEDIi2ACIBeJWsoUMAtv2nihH6VU4V9Ib6EYhKIhDhR0xs6yOsuEAAAAagZGSURFTlo/pCx9/Dvf+rvBF2YZtaqP9hxDLwAAABIAAAABMEUCIQDtUsQKWsnPW6C7EmxVmbd8g3ildohsAcC3abtVO0gnbwIgKr8u0Rbgp25N2ic2RsXw8yi5bn/f9W55kUPzB1FN+ecAAABnA0ZFWBwcFKa1B0kFzl02ewp+CYtY6/1HAAAACAAAAAEwRQIhAJIBoImSi6ujKzETfCyR9yaJnKNk89XfjavU37ldlC0mAiAQZ5hUrPykedG4cnJicIwHjDEFNCEdDx5K6+l2oM0VgQAAAGcERklEVWpEXp9A4Ll8ktC4ozZs7x1n9wC/AAAAEgAAAAEwRAIgIXcGc8IrywrFi8KMHaMzyGxlVr/Y4Q2XH7ZCUcug/CkCICCr49MZ92gnludrbXLUdq8ncBYUUDdXFbHDSlSplWtxAAAAaARGR0hU4P/d+P19Y8+QfkM8kpMGlwTU1A0AAAASAAAAATBFAiEAm1AoQIhfH0cHbIE/SgxLozw2sV+R2+AeP+KL8krqIX4CIGVQ8W/YP40CCnAPv4mFW0xxswiN/HK3+SZhsSGrKW+YAAAAaARGTE1DBMx4O0ULjRHzx9AN0D/ff7Uf6fIAAAASAAAAATBFAiEA7Pv07N9YUnKDGOJGOuS6TWrQpQI4tU3utRU4laqV0ikCIC2Vw7uskT/PPGZVsZJjtArvK/gGL5+by1bXmHBi65m/AAAAaARGVUNLZb5Ex0eYj79gYgdpjJRN9EQu/hkAAAAEAAAAATBFAiEAz3FkWRv8NE3Xm2Rple3UJTF2n0PC32idEd355pSFUhkCIDIaCvHXfqFfGEICytctav10o9scRei/MdmgAgRzuE7DAAAAZgNGVlRFCAplMdZx3f8g20L5N5KkiWheMgAAABIAAAABMEQCIDLN1N/mbQxSrjDkCt4tcSmXHHuLifO62QGCRg5VMfldAiBFYjgPLXY4NbG0DVNqGVpDBWxNxzeSpwG6+kO0AjCBLgAAAGgERk5DVIr3jwyBgwIWT3OyNl/hUsLR/oDhAAAAEgAAAAEwRQIhAJRyYqG0oMkwIZOXk6gzmtrOh9wb9FORO81m7qjZdIWEAiBrL92s+QYdV3I1xDZCsZmxy2q/tOQDu1cjITNJL2eXfgAAAGcDQ0ZCVUn+btKA5aJxpMjIUnel8H7Ju9sAAAAIAAAAATBFAiEA/3xJxk4csgQ2ytD+eEhEWyEDYT10EZAyJfkYhXM+VikCICXXFHuz2zxWQYmb/w7m2KLMcK/aZcIm2Dn8hB4WD41tAAAAZgNGTkLm0sPLmG22aBjBTHAy2wXR0qbudAAAAAgAAAABMEQCIG2gz4MQrYAHWChi7vSVjVZnD57uGN8nQUtffTUp0OdOAiAeBcjPILHEp4M/mmbwsXlDpik2wCYZ8NkmGUyB0tYpbwAAAGYDRkdQ2ajP4hwjLUhQZctiqWhmeZ1GRfcAAAASAAAAATBEAiBYLoZWcxp5XicdAioejqOu9QiZ7wse9qeUTgB+Y6EgawIgTDsr9nCjHLcPlcV4ApVimndyJIVlow0JiwFOolJAvfgAAABqBlBSSU5UU03ShWjQXwmwIiCwnCyzB7/YN8uVAAAAEgAAAAEwRQIhAJeVdvhgQ7st1VoL8UIp6dtd1nBD+jyk0v+GhsEn6F44AiA2L/KlRV0PjABihjHpCWK0dpx6fQ1AT4z0m6DrEb8mpgAAAGYDRk5Ltf4JlHXTAw3eSYw7tvOFT3YqSK0AAAASAAAAATBEAiBieZF96BX9dxfRr0OFby0+CkqKeNeZ9dhUS5xDjCNohgIgV/UHaE0/60l1gCfKwWlkmuXL0BJQ/5uP72IQZJxayrkAAABnA0ZNVJnG5DXsJZp+jWXhlVyUI9tiS6VMAAAAEgAAAAEwRQIhAMZPJCUA9htwN5EO0uMCpGIFcydtVSN1qbZ4ooBWR3BxAiAJuy9lNaRTFf74KP9Z8kv1P+hVnqE69bc2pGKXDjU4VQAAAGYDRk5Y75zXiCwGdoZpG2/0nmULQ6+7zGsAAAASAAAAATBEAiBIEcG2J68QM0HfiQx4Uy6SgQI5ybgG3RLzcCV2uDtKoAIgUe5E8CfJga/p6+dsx82EXbz4OHIzHQqitkCH78I2gY0AAABlA0ZQVJ1ea5K6P3VYmUM3LfgtvTqKgC6AAAAAEgAAAAEwQwIfdS0r2OS73Q6RZBKPvRgW4kDpFiZNT1/Ikmli2CQtSwIgF8CWiX9/422q+O+W9CmhIAxSwHIv7gXdgUUPGY+o71oAAABnBEZOU1A7eNxXNqSb0pfdLk1i2qg9NaInSQAAABIAAAABMEQCIGnh2NjFY9BMj2RigsW7OL9u29wwNFL9NqCtZN4c/3jDAiBW2iBhxNpYQNBMQrxaE4RdHV9ehhWUijnKAMshMBPKsAAAAGcERk5UQr1LYKE4s/zjWE6gH1DAkIwY+Wd6AAAACAAAAAEwRAIgGBretnhjdAAfefGfn0ey8bGU7DaKmU6juxRE4rgxKD8CIB4OQ6ECZIjm7oBNnhQpXOhbsVrTiTzQe9g3OU/HANQuAAAAZwNGVFjVWfIClv9Ildo5tb2a3VS0QllqYQAAABIAAAABMEUCIQDr791i4g6thG26KNleom63sCi/GqlQ4XtVgL5c8yHpHgIgbKZ57ZAxH5O5P1ci5KvrS2c1LRrA/KZkjWy3smBhUPQAAABnA0ZYRopAwiKZb580MfY7+AJEw2giBg8SAAAAEgAAAAEwRQIhAOUeUJ0QXVu89ZHfVE8tYbW9VxFimuPKBPno9wN+j+NDAiA3uzPu5G4kcVyZgF4q73Ua95BOSjapMhTtZoscxPaJWQAAAGYDRkRPNhiHwdG3NVcBjEfIABcRFoEoz2kAAAASAAAAATBEAiA7xiW7Srxlwh37XFwZuHzsJ2fzfOsLNVfsgiAAG09ZSQIgemfxaB2y2iCep+//LgkOn5RqIcODqO9tEKM5xsYDElQAAABoBEZMT1QEk5mmsEjVKXH30SKuIaFTJyIoXwAAABIAAAABMEUCIQDNx/L6+xoyvi84jhpz+syPuIcby2bp44ugrtxE0k3l3AIgfgyVz95HJdTPILO6wa1qxUIh8nftTpqTPxljH6I07z4AAABoBEZJUkX5Ia4trF+hKNwPYWi/FT6glD0tQwAAAAgAAAABMEUCIQCFJMsO9RlQOrzGjhIWfnnoJu/wLdMSCbcto+Zn7YBYuAIgD9dzRm86GulIe5+WcsFybnAQizlXQp8STOtezlqDiO4AAABnBEFOVFOp+7g6Jon0/4YzmkuWh01xhnO2JwAAABIAAAABMEQCIE63gp08qJRyGuEwD6n78y3SZEYhY/NLrcIi+O2hbT8lAiA6O8SVhGtdOJozJ6RqR8UzKt2T38yZcJy4DCCyXn3g6wAAAGcDMVNUrzDSp+kNfcNhyMRYXpu30vbxW8cAAAASAAAAATBFAiEA2A86i0+1OedNKIW/7FuCCnqY2FIoowfdHHZEWQMLH/sCIDxuATcSAiuHchAnAqqF03RwbomVuM9SidvkO07XYY1AAAAAaARGSVJV4nYFb5JOFb6sJvexC20oBfnGS7UAAAAJAAAAATBFAiEA4tFKPkhODmT7kpJ6Z71D6zAy8g3ZsY1wH0yh2hJhw5sCICJo7Z9q66R34DyefcTfiXvIwERL1T/3rZhtm4tfV3+yAAAAZwRGU0NDB4nbrpT7GOV4m45Eiby3oa21hiIAAAAIAAAAATBEAiBwbYJlHChrQAE4oMg2puCsxp0OU2keuJD+a8xFvMuzLQIgdgUnbOPPNha1wj42ZozPEMk7O/Gh3JwEmywLK73x7I4AAABnBEZGWUnKdrqnd9dJ3mPKBEhT0i1WvHC7RwAAABIAAAABMEQCIBD2hDo2tZe0Kj+d8HsbhJMFZvEArYvaZGSnbxrWgcj4AiB3dZF5PPMbljwHD6zBMwKvwuahrvI/UQM3UHU2by/zNwAAAGcDRkNYC2YBW8QmAdWYa1QDc7TgLXODx8EAAAAJAAAAATBFAiEAi4na3FYdbBzuDQzhwOhuDE5hCmzicsDXJTgbvSUOe78CIEyyj4hrAVxQTkgCrLTz4fKXgY59Ojnr0HTtJ4SoH5CTAAAAZgNGUlZI304ClvkIzqsEKKUYLRmzH8A31gAAAAgAAAABMEQCIFd4rax7q9/f7O0m0LqFRKr4TClBr8LEaBZkANRylOi+AiAi1kngT1m5kka3cOjujdvJLMWv9JAZK169lkAEUnXgzQAAAGcDRlhZoCToBX7sR0qbI1aDNwfdBXnibvMAAAASAAAAATBFAiEApb/AkRT7PKRHvZgfdrMqDFCLfbC5HdNssennJF+/NaACIDwphy0iPChin2yBUz3dE/6z1BcoRimw1HKWvvMvLZBWAAAAZgJGS5A9eMp9iS5FGFhtC2T0GL1MqagtAAAAEgAAAAEwRQIhAK+u7d2GJBZTBfa6x4cHxzoRd+bxLYKsqN0EI38wX63IAiBOmLs3zg0aZ1gcIyWylF6HorjZrGk+vm21tx2GdeUVqwAAAGYDRkxSmu++Czw7qeqyYsuYVugVerdkjgkAAAASAAAAATBEAiBw13EI2zXYZ2niLOXNkU2Fy6tan11ILC06QOkx+O8bQQIgCJ4jIYmAZeg4tGdikaPGLfqHxxl587r9U7ftIzfiX4sAAABnA0ZNQQ+HlPZscXDE+RY6hJg3GnRxFPbEAAAAEgAAAAEwRQIhAPXl8Z/OAV6tjnKTNWwACT3rMV7ic1vorcilsnH+h13XAiAwIXW82k1regAlpM5wHR4zZkjlTz9le4KkfM2JVoHZUQAAAGcERkxBUM+3LtNkfMjn+lLk8SHs2r78MF5/AAAAEgAAAAEwRAIgQzTsBspb/qWAvG1GTBGde5ZaU/J4t8WVbrRb/dNQMh0CIHDxyQCgyDoDSaU1MLxkhknSyotMogi+skApB6jr8OIJAAAAaQVGTEFTSCA5itYrstkwZG1FptQpK6oLhgwfAAAAEgAAAAEwRQIhAIXC8K3tdOpowPR6LetgQc9qkYS2xSpZc68CH3w4ztxUAiA+m0uplfZTBP5mzrL3+I7pXjaErS3qAHwLbmswy97blQAAAGcDRlNQASjk/M9e+GsDCyjwqKApo8U5epQAAAASAAAAATBFAiEA7LJ4KCet3Blw0+PtC17I2n0dXBmbdUJfPCkEHu0r2jICIHImnWf9kmjUonXLHYfC9rKXuIcCFkzWMedLiCa+17iZAAAAaQVGTEVUQXeI11nyH1NTMFGprmV/oFoeBo/GAAAAEgAAAAEwRQIhAL/Jv6y0RNyoEnUSyB0krmntWuFhlq5bXXiVEJaqnNZtAiAmsviCGxduiA8DgSvb+wNHBDMmKqdcYqesjrKjZ3YjdgAAAGkFRkxFVEFAiXyHIhQwO29HmjflSe4VFrJkogAAABIAAAABMEUCIQDsValcvsyNDZBuIfyY91zRlI3Y0D6OY5+eY/OALgKKfwIgPhPeXxEs/R2PFuP0RP+odcmz7YqarprzBhF1TLc2BxQAAABoBEZMRVj8+O2gleN6QeAC4mbarX78FXm8CgAAABIAAAABMEUCIQCzTp1h/eNVpWp/45sfLEnA2OTuZ1P10hLda0waLokWMQIgBmQMCkVJFYG3YaBnE59+AALcOZjJTtHAB4mkmPc9Z5UAAABmA0ZMWGJD2M6iMGbQmKFVgtgaWYtOg5H0AAAAEgAAAAEwRAIgcsGQ8jEYxGf1NPL6ik0VPIlfFSVKYgWmi9Mpf+Qbl6kCIHYoorxzlY+fMu5v0KL7bY/RiY+wb8xxoq/dwxS3tpRdAAAAZwNGWENKV+aHuRJkNamxnkqAIRPiZq3r3gAAABIAAAABMEUCIQDtikQO5JBUMN1oIsd6or3k25h580JqVSMClC03sakuUQIgc0nQaLhZzVOJUsy5Ux9mpcvJyyXEG0Pd9DOHlRhL/HQAAABqB2ZsZXhVU0SndP+0r2sKkTMcCE4a665q1TXm8wAAABIAAAABMEQCIBGMjj43fcVRlGVvK5C6JwPGunP89YA6Rc7hK394CPXnAiAiEDfJ8nv4Eb4rMwurPQwnhQyH7DiaowiDfw6W2JpiEwAAAGcDRkxQOhvaKK21sKgSp88QoZUMkg95vNMAAAASAAAAATBFAiEAlQCfVST7LD5wXgXnFDlZdbH1n5dXKo1JTaOauBnkPPECIBhack/6lXyDSDhqIN0JbQu9jU/c4n3skNxm3WiC7/O0AAAAZgNGTFSzUdpv/r1d3dHaA3kp/PM01rSo1QAAABIAAAABMEQCIE3N0qKfGux2qCapU9Hq2Ly2yxrXbOy+ng6e4AfucHiGAiANmBuVm539YZBH+ARU68nmwW3MOSpArZMIH6fC9ScIMAAAAGgFRkxJWFjwSorFU/zttbqZpkeZFVgmwTawvgAAABIAAAABMEQCIGfD1SmQv5CPTJh6/gnUab4AAe81ZN/5xEZlzWv8Qys/AiADp+iOK6fNbU25GC7KD7Fs5cbrGvgmFSp7Y7k/GFh85QAAAGcEQkFOSySmo3V2N39j8ZTKpfUYpg9FtCkhAAAAEgAAAAEwRAIgIk069TujHJTQ8VXA4BqNpM97rLGtrCMnd8gGPkm9FB8CIFPnRXwuQvGIb9LMQ+4O43OfZhq5UOBhORVzTYmlGd5cAAAAaQVGTE9BVLBQl4SbykIaP1GySbpsykr0uXy5AAAAEgAAAAEwRQIhAJj/d2zydW6hdeV5yl1/qJZgxe1GzfTb4IEH6TCmWYrGAiAfRf020svhqoqnyykBAfcdfzz5Q8bDxtJ9DXdu4u0iJQAAAGgFRkxPS0nPDBIsa3P/gJxpPbdh57rr5itqLgAAAAkAAAABMEQCIHDYeT2qhMZWSxl4Ipos6+LwJUl7EXnowBK+ewfZ+hRLAiBYsroFgiz2iLwmF9enz1PgaBrCAcoO4PPLlyJGGkcdbgAAAGoGRkxPS0lfQ/EcAkOeJzaABDO0WUmUvUPNBm0AAAAJAAAAATBFAiEA6R2alp3xZF1YF4skFNu7qJ0/R8R5Nv58ipQOS5Z5cB8CIF3Mx866dH8SQSUEEQ2LFj76FxYJ90ln8G9gHlFtfDooAAAAaQVGTE9GRWvr+7Fwcme/3RqaOSNyiqb5iz90AAAAEgAAAAEwRQIhAMVTjgSQfTmkNWTxnZfoOIJtIT+eA0Eb9AQJ6scIj7hYAiA9yXoZVk2I7R/O9gEJN/jXEhpBF53N2codu8OOz9A0xgAAAGgERkxPV8bmRymTH2DSyLxwon1m2eDCjRv5AAAACQAAAAEwRQIhAPaYnRQFJEmo57+zdPZao7OtGWpOhF4umRm9q4o9zon7AiATyhRKY5drI/EVOKELMMZE2iPocS4eeULQKsRhcNETQgAAAGcDRkxDMsStuc9X+XK8N1Ep3pHIl7TzZPEAAAASAAAAATBFAiEAtXAVCT6QzLsQfbm0XFZfzKYNuEhqtink2SZeJI8TyRMCIBrajrosC897wgGKqphWkfaIRz048S/Eo9WgHV4pSMnpAAAAZgRGTFVYRp7aZK7To61vhoxEVkKRqkFcsdkAAAASAAAAATBDAiAhcaRLBraZs6ocH5CnBURk7F05zmzR851Yoz1oYA1ZWQIfUyyInstugZmGHCFyizespnMpVuxIeSpUGZUumoHergAAAGcERkxVWHIM0WsBG5h9o1GPvzjDBx1PDRSVAAAACAAAAAEwRAIgSiyJTTacBdlzGM9ry3OP27lLNwV/7P0oma7F/rDL/dkCICcRxp9ttMh5iNTSibltgdnPXafY6l82GqO3O2tIaU3hAAAAZwRGTFVYdkXd/uztpX5B+SZ5xKzYPFaoHRQAAAASAAAAATBEAiAFrmgFj+RppE1Kw6regECf6Y6mpG+cNEmv/YogWrMwKQIgE6OqKsyIhsUa++8b2cLCQbJNUdH7i5wgmboSF6EcdA4AAABnBEZMVVqVS13gmlXll1WsvaKeHrdKRdMBdQAAABIAAAABMEQCIFGwwVC9EbM7NxOdGPWLS70V2KjDnk238/TzIbw9cMqRAiAIMOSd67NvQ0IucS3VqBRqnm7T0abotfyAKppOQGKEXwAAAGYDRkZDToTp5fsKlyYoz0VoxAMWfvHUBDEAAAASAAAAATBEAiAHEOrPpTA27OaRRtiauovzyaxMCY0dE9BYN0ROqAGrNwIgVOeNftfbSSlNLo4J+DuF+WzcS/ZLggGNEj6KjhNQ/zoAAABoBEpBTU1WaHzymsl1HOKk52RoC2rX5miULgAAAAQAAAABMEUCIQCQcB1nmUbXwrC2i465+VUd1pInavfg0nCwIxdlFp0YzwIgIwIKUv8XVGprE+NdFV1y8vgj6ey1yYdt363ZP89pTHMAAABmA0ZZUI8JIfMFVWJBQ9Qns0CxFWkUiCwQAAAAEgAAAAEwRAIgbDgzKOSe3goUuJoMfORhJbYcktvIYwsjnmnAFv94VVsCIHl+FRPw3Z0eNHuMPz5R1Kxb9Ta74/VDQcg870i1FJeIAAAAZwNGTUcpkTQdKOrqJ3eF0g4dh41HjHukxwAAABIAAAABMEUCIQDx6WFdsXr7wCB7mRMwzTe0HQ/sUA2GWC1G4qS6tRLUMAIgQI+P2SMq/tRflNwRXHK1pLWClYw8/jlzTLY+l8sYr+QAAABmA0ZNRZR5ODOb9hyEZp4wO8OceU1lpSXQAAAAEgAAAAEwRAIgXCrHw87afEsMIDeI4AIFaNqEj7HMyta9PB+J2j+V8f4CIFSnfUYUVQ/RbTG2CT2VwWpQj8i+nZI6PpHst4yvMFTGAAAAZgNGTkJHso82W/TLONtLY1aGS957xLNRKQAAABIAAAABMEQCIECWiovEsPlN9jXNMPWo+01Bd64MW2CXCtE/EIJ0WvqEAiA/lREIQCSsNRRcW2S6YmtQOjNVjmJtqVtJEfwTAqwsnQAAAG0JRk5EMTA2NlhUAIc0MvCRQ1VswVbTz5ceTI9o2s4AAAAAAAAAATBFAiEAs3kT27y2YXanEBIqlZnfOk79ZhIkE3EMk9mtMwg2PEcCIAEEWRWo3uQqnE4GXQS7nNy5LY+vdLahRfkucJGOdTkyAAAAaQVGTktPUwcHaB80TeskGEA3/AIohW8hN7AuAAAAEgAAAAEwRQIhAKcerE6Ti4+OLxqkHSJEvwSnC9UWNGgu05BBqcJg7Nt2AiAqQeEhpdHtCZ//ZjawyeJWHT6CZARCZPfMfoEVgyZQlwAAAGcERk9BTUlG/Op8aSYG6JCAAuVaWCr0SsEhAAAAEgAAAAEwRAIgf8Gg0LWMGQZRmHbdjpFhgbiN5ZAGDbH7ApumFFbkkG4CIHkZvKr+f3aXCLRS9Gd9Q4VomM5otOB60q3h7bP5A078AAAAaARGT0hP3S6TkkvdTiDDz0qHNuWVUiT6RQ4AAAAIAAAAATBFAiEAn8z82ae5bY5ROVoqb+j24JMh3QTyY6RAP0e5aYB0ijICIGirr/qSv9wtQsze9GCfLDvn6PByKgOZ6LORffxfyv1aAAAAZwNGT0yoWA8zY2hNdgVb3GZgyu/ocJdE4QAAABIAAAABMEUCIQDi/Qj645vdQnktP78h/B78vrJM/glOslxYtbiuwiaxrAIgFtfTVk97yMHoZxYCj4A4KEGAYam/DnhJOxpRgevQgj0AAABoBEZPTVAFOFq9KpWozZtpb3OK7XPxr7wS4AAAABIAAAABMEUCIQDKmaQH1ur35MipxDINbBbPShufeWIXPCZABdEK2LG+tAIgSKotuYLtvXOUhAMr+iddlGVDaEl3oAmBN6JGOQHng+gAAABnBEZPTlRMJb3wJuoF8ycT8A9zylWFf79jQgAAABIAAAABMEQCIBNB4Aw/Ab11tOfIE/Uqnrb367zzn/1zISiium9JjCd/AiA2bCFx9mopQyzSA+F+pjy+XyrWvNd0dJC4cBYtoDyfyAAAAGcERk9PRCoJO88MmO90S7b2nXTy+FYFMkKQAAAACAAAAAEwRAIgVB1I0ITogfXhTKqxq68Zj3ekIQqXPhK/QbJatPhu5kcCIHeh7jmDRSZHO2KlOWKVjhZpJNu5BVDzfKeThMJYEMUiAAAAZwRmSU5VSKPZUQ98KqYaKFzLTqpboHJpJGgAAAAJAAAAATBEAiB9G73ACz5lvPOYTNp6jNpAI6l1/CKT5D71bYHY9up8QAIgZaMPQmeHNOtg3WRYLwoCLPfS8wHZP3yxx16d6YmzPsoAAABpBUZPUkNFaAfX999Tt3OfZDjqvUCrjCYsCqgAAAASAAAAATBFAiEAidwg+nRv6P8KG/g2n/dXNVKmYBY8b5ZqKZESHJqtlCcCIC6pBBVYMG2nUoF9u6ymTT3pJkRdYEUN3034uMBW7SmiAAAAaQVGT1JDRSwxsQykFrgs7Exek8YVyoUSE9SNAAAAEgAAAAEwRQIhAIPF5mjB2sB95+1H+1rbiu/4en82BdZN6XJIxSk8LY3gAiAoxc/j2VM35RXF4YjY6V8LbTb8p4wbvt3eWTJiPC7RIQAAAGYDRkZGIvCY8IxO2kvkrWtLpZhm8+mM75IAAAASAAAAATBEAiAypoazTUIhJ6FELYB86Z0j3j/6xXV+NSZViJtamSBTKwIgLO/WyicnICGK+OLhQXbSiFYPx/wgpdi4sJ4VNFSbDJ8AAABqBkZPUkNFUsH7bAFfxTWr0zHTAp3namLkEvsjAAAABAAAAAEwRQIhALXGTFod5cVBV2DTZKYBS5t3bLUiz8orVFDpQ9ShOaPgAiBMgPkYIvwJlPxySiItZPErKg0fSXoSAlMmCOiepg9cNAAAAGUCRkZ+nY8Hpk42PpemSJBKiftM1fuUzQAAABIAAAABMEQCIHCxetgIYzNm55zQ5fVK970e6ZFR5iZjPXL/XMqAuAe+AiAHATkfXqfVvFQsY7q+WxosNTx+/6h6jlQvK6sE5y7+LQAAAGcERk9SU7HsVI8pYnC8lrihs7PI8/BLSUIVAAAAEgAAAAEwRAIgPyyp3ScI9gr7bdgUxHB5SycCsc8uqhnpzKFwv487T8wCIADjdQf3h5JAHWsVaHTuupDPT6lNysvAKPebH5hL5z6XAAAAbQlGb3JldmVyVXCBr6isoZ1Wk4g7Cx4QrhzK8vQngQAAAAkAAAABMEUCIQDjcQn6vMAiuvww/B85rAAZVOgvFYXlFvXJO4po8xPJFQIgK7tl246+eiOa9o7/RMpb58pAh6qF3jYnNaL0XOx0ddgAAABmA0ZSWDanNVf1veUZXsOeyoLSi4o20hFBAAAAEgAAAAEwRAIga0xCGaRjoBIczdNf8r9ftqWa/fi29X4TYn/P+O73gFsCICUyscZ+8VhTsCWCUyT0BO2u1Bp41b21HZP8g7wL0VLcAAAAaQVGT1JFWKTpWE2qCTyxIF4XunN8P9AVdICHAAAAEgAAAAEwRQIhAPIk8pjFaoZo1QVeY+xjb2R9bHjb8SOLEVB8By3W9FXRAiAimj+Ajphwpab8/AZc2/lHrKF2DtrUWhzhe1phXhNlrAAAAGkGV0laQVJEh5MeetgZFOeJjQfGjxRfwKVT2PsAAAASAAAAATBEAiB0Mp19Ylp0Ug31gjh1Qs5CK2xvaeqOPrqggDhktG2BjgIgLEdjRwEK152jC9UjUyeev4XVK//OPoE2bWJTATZOvT4AAABnBEZPUk0hOB4CatbYJmJE8qWDs1+eRBP6KgAAABIAAAABMEQCIBM/xYp9WaD6cSUoAEbEvelXK/RZ3OQNFanACrL936hxAiBW6zuhxvWzrLaE6qv1QJrCraj+fbMWfsoM2rJoORN5vQAAAGcDRk1GtND9/ISXrvl9PCiSrmgu4GBkorwAAAASAAAAATBFAiEA7UbvhbbnzFPXUMh6dhoWehURquZH0ClCZQy4DcU0XeQCIGcsQzgTZb60VU8dbAQRI9tg1H9WXWPVjU4ZoTm0zVoHAAAAZgNGTUzeUioneORVRwfmqN82pIcc6ZZ7tQAAABIAAAABMEQCIA5OdUCdkj0fch+SFuiCeeIX2PT7ksJqMFFiuw//x9Z+AiAsFaXyn9adMBBk3Y2fz/j1PSJCNN1D0EH0G0sVM4k/6AAAAGkFdVJFVlZysZVYsFcGcIthL7voa3FEbq/AAgAAABIAAAABMEUCIQC1V/WUdPpUgIoa5f1UIcWPabNz4TsWZYCGanAYfLUeMQIgLht7kbRD4Qzh3qqlwniSTDfkDiSt8Xj8AW2nSgNiOE8AAABnBEZPUlSho5/v6GuHoFbxkBnbaxoU/ySr6wAAABIAAAABMEQCIEtliZMQEcnX//R5dlfTryJ4BSmkyx2H9pd3BW6s+EQbAiACf/VNhB2CP8iPDN9AhdVThsJxM8bhgoN72u9TzNar1wAAAGgERk9SVEFUX4uUctdYu2ae2Oru7NepxOwpAAAAEgAAAAEwRQIhAN1oRvOh/nP8Z6fezcYl/fAPkhkz8LKnHAUd9lSPusa/AiAlC6pvgru3wKQOwDWO5nl7F0/hNKXDt45RO7qYh9bEPQAAAGgERlNCVB7Xrh8OL6Qnbdfdx4YzSj34HVDAAAAAEgAAAAEwRQIhAMmCvKIKrSiUUdksTuNDXhtqLNsZR7NQjTtFQd0HokAAAiA/63z11d9xkr8Kw20EVBgXnCR9givcqOhSn0aJHuPe3AAAAGgERk9UQUJwuyOPbdixw8oB+WymWyZHwG08AAAAEgAAAAEwRQIhALqnEUTNuYa6KmBfIVa13xNEMvvsLqqVDRbarqq6kXHmAiAd/N29mQogUYHUO5u+DCVZ1Js1B8gnqTiTSnoqjJLm9AAAAGgERk9UT/bqDmDO5Ce5CqNvMn7mHR1Mq8SfAAAAEgAAAAEwRQIhAJwAfwx3DCLNlsc8x8RRzsl1izrr+GKGPhWRT9oaoRiKAiAM2PyzdlaTPQEjGGkDp9vF22JpaMFOblCBhHgeUnmElgAAAGYDRlJZbJcrcMUz4uBF8zPuKLn/uNcXvmkAAAASAAAAATBEAiBYNkupdvZWAr98B6du0kE3/vX5tswgxhH94GMlPI9sXwIgVKeTlFPyNg10eI84fsLc3F1HGeNP2eC2iGfBWONyHbsAAABmA0ZUTlYyXRgOw4eKkCivx7DtzudIbMnfAAAAEgAAAAEwRAIgUWTB2wulAVVbzwG4LGNfV+XVA4iOaOKxMI0uqexgjZUCID1w170nVCXCdT/3sZNnHYvQI0JnlEe/GGnn4g2IvoOeAAAAZgNGT1jHcO760gS1GA32oU7hl9mdgI7lLQAAABIAAAABMEQCIAsbasydP6mzIC0oM/sYWG94TzBHaqk+IYPkGRURIVO6AiA12riwAGWdzICNq1ZGgP6Zgj+KNRvaYkDLdDL5calR1wAAAGcERk9YVPvoeM7QgTK9g5aYhnG0UHk8RLwSAAAAEgAAAAEwRAIgQIXE6ToVbSS9Go9MvnCln41CinZ83naKWu987dvF2lACIE7UCpYMbVyEDo9XETLau8+Kx8ENwl1gmtGUiD7Jm9ySAAAAZwNGT1igsU3fXc2diwo9GRvNFAT7qa8z6AAAAAgAAAABMEUCIQD3SDE9kbejBLKgb0TE8wQ1p4zn/islInOucJTy7HADbQIgWHyU4UPsjbAh7hCBTUFGHmSIdNoQHGRSxE5jDvrJfpIAAABnA0ZDTPTYYVdezJSTQgo/WhT4WxPwtQ6zAAAAEgAAAAEwRQIhAMCKm4BL9YjQqz3C2pIzZfJCobAr5BmAcVe+SAP6Oc0qAiAF/9CPkJpVQAbqEqxjkCz1XH/lRJzVQd9F6SWCqgunWwAAAGcDRkx5hfbrK9WgYvX4VgvpP7cUfhbIFHIAAAAEAAAAATBFAiEAoRyRJQ/PIJjutSkYGSAztJiDjzhduzJWO0jQVDLrXpMCIBrOuZnzn4cTHqvNdanvB6ZPxDfyvyu2yp62N0F/Tg2FAAAAZwRGUkFYhT2VWs74ItsFjrhQWRHtd/F1uZ4AAAASAAAAATBEAiAJNs4ZwKMes4v/C4b/4kc9QiPQs3HhZqA1rczWPsVXaQIgEkGC7EZFB3WKIAbg1ThwTXEi6nP/YffvS2M+EtzhqycAAABoBEZQSVPCVEoyhyqR9KVTtATGlQ6J3pAf2wAAABIAAAABMEUCIQDQojE1/qI6rrIFqmXml6yQ9LS2vxITHk3TkVJQKztUtAIgR2k+Ua4p875v9xrp0afWtuNVz2jvxTkVRK18q8x16eIAAABnA0ZYUzQytqYNI8oN/Kd2G3q1ZFnZyWTQAAAAEgAAAAEwRQIhAO4H8t6yBOFq9UlhRQdbQmJVYJcyQuW63sLbXW3OmGF8AiAezwyb4ILxIOYjpJGUbIwhfAi9TCpRycx/vFO8ghN1OQAAAGkFRlJFRFjY4rFT6U2uxf5lekn/Wbto+mfxJgAAABIAAAABMEUCIQCcJCDtR94CNAqxACNX2Fy00fbDg4RWzPV1WGamXnu3HgIgN8AT3ZMElEnWBZtWsByamEDe9sTrBO/S0Y4QcbtSgcIAAABoBEZSRUUvFBzjZqJGLwLOo9Es+T5Nyknk/QAAABIAAAABMEUCIQCMbxRted8SRLOApOJboS0Kjia1ktLS6tstev2aEuEIrQIgcEV4bArCMocnymaIEkNh1IfzKmAVPjm05PStffW4cEUAAABmAkZSxibgYZrHmv6pKByOubGp+dP6tTIAAAASAAAAATBFAiEAg4RUCt1zhA/vB6/NTqRJdCMn4usUHJymMadK633jMCcCICO7oad0FYufKCwy6oY2JMNhUEYbtd8oMyyx3FDhefbpAAAAaARGUkVMKc7dzw2jwdgGin370PsGwuQ4/3AAAAASAAAAATBFAiEArytEdMrxKM2t181xgO4Yrj3imRJIDfZ51RVTHa0VL4YCIG2di6oJjSAuGtSDyeEd+IzzuK3S8wXpos0uXA2WRVlwAAAAZQJGTP/tVqGA8j/TK8ah2NPAnCg6tZSoAAAAEgAAAAEwRAIgQE+8p9m2jCvK88WT0iVQRYJlsVODTubxJ1oBBL7Zd9YCIAj7hw8F8e9l/Ka5X6GgXqjgj7eFzWGNmi7iuU54zLDUAAAAZwNGV1RKc5ewuGuw+UgqP08W3pQvBOiHAgAAABIAAAABMEUCIQDX6sBFmjSrn1qxUo6v/D9JSUUpt9eo2RxP5yEvZZfi3wIgCp2fGinHBVqnzCpA31WicyBNjVq6Q59QyTC6K6ryQYIAAABnBEZXVF/xUZgOengUgXCegZV0S/I5n7PLpAAAABIAAAABMEQCIG7RmTeftEXcjje6rMkCejlGTOXGDpRW/IavesDkz3cfAiAOQ3Vag+ngM/we/bpK/H9u7+t8R+DachR0YxyJdklemQAAAGYDRURJecWhrlhjIqB7+2C+NuGzHOjISh4AAAASAAAAATBEAiAzrv+WKyghtEFy5pCA8rnxbZhB1d5DiBxZQXifRVrQfQIgFJm+Zc+oklaeybANfL5f2FIojtYYFKLNml9sqE3S+jcAAABpBkZSRUNOWNi44eyonaAU5n/bwgFOqo4XEHm/AAAAEgAAAAEwRAIgNIluk2Qdo4EP4T4qXrzLGt8Xk/v1XqwfQ/FpN/6w6HkCIHXXy26biIomZ5PMVuh2/NRDrWDVOOmUDjxJgiqIPbi3AAAAaARGSUNPfkQiBtoFmQUFC6Ar5jy7hcVZ6wQAAAASAAAAATBFAiEA1T66U9ZCMavCtwjS+AfsNBZmrHErd88GIIx9VgTZid4CIBYzyVvEiYN08o9LgnmCoin/ktihD3iUbsh3Ur+8IYspAAAAZwNGWlmHIMhCm3jfJiNgsPOZF6A/m4lHRgAAAAgAAAABMEUCIQDzsaUDYmItHEd8ZRyTyyUlNsCXxWlncAtgOj1TUrRV6gIgBKfEa14kbfH2tzdh6NxoMCkqp8Z1mIlC+gCJDZgXXJcAAABnA0ZTRNJ68Dy3OinuLzcZTHDE7hO2j+jLAAAAEgAAAAEwRQIhAI55AFBDcdxZBG1Flb38FPQxs0bijBrZBCVjGQkdpAjNAiAme+IlLLSN6LfOjP8tb6wD0wRrZNh3/Rz07m0ScTLuxwAAAGgERlJFQxfmfRy040m5ykvD4Xx98qOXp7tkAAAAEgAAAAEwRQIhANs0nTPfJu0AANtWihjUmRLR1ARwqoP2dK2JN/1o7ESjAiBsv1M+FntCbhDQC8XDBlVwzvZ7YvRNvGYv8wPqTyGWRgAAAGcDRldCfZHmN1iew7tU2CE6npLcbo0S2pEAAAAEAAAAATBFAiEAtbUqZz9QFRTlgsNKdmVWqfEuOxYhfykYgUvPvHw+u8YCIBIT1QVAbKr6xvgwB8TDB7Kqr5H6B+oqaX1Q0J33dmwKAAAAZgNGV0I1vQH8nW1dgcqeBV24jcSaosaZqAAAABIAAAABMEQCIDqldpAlbLApGdl8PwJyFoqSJijA4ydDRIoO6dU4t2imAiBpOcJLWnPlSgMrlkg5PkxhBA3tDLLgV2OmcHm3Zh3WwAAAAGYDRkRaIzUgNukRoiz8aSteLhlmkmWK3tkAAAASAAAAATBEAiA48yG2K2VMQrlAcLNGf2J5ce24DNRCJ8xD6q60Hi9YGAIgHuypkV5c6ZoBwslBYbLBGA0CCg3pjp6ZkHCKiPcGSqsAAABnBEZSSU7J/m4cdiEL6D3BtbIOx/0BCwsdFQAAABIAAAABMEQCIBQCz9vq2KSoSVouAqmwRGLH/zbEzzuxCGLi/66BHUmbAiApKglQWi3MHpZAJwekTM5NuaqwILo0mICNVX5Lin12dAAAAGgERlJNWPaDLqIh6/3CNjcpchoUbmdFNUsUAAAAEgAAAAEwRQIhAMqzdb1aMJRSh+qptSLIE6UtJmgFfHvp4QMuMEJtFUyTAiBsplLNXsNuCfjCMJTUAAt+jbY2HPICXdjVWIgBYuk9WQAAAGcDRlJHcmUWsgxGkqa+o5AJcaN+DM96a/8AAAASAAAAATBFAiEA4bIN7fmPrL2+0y2HxGnDjCd2uzHE9xxC+D/V4UJ4E2ICIHmTWqBChK0mPN4NJfAm6uis3hkLsJO7CIqhC/mtnk9nAAAAZwQkRkREFM/HrqpGjox4l4XDngt1ORWutCYAAAASAAAAATBEAiAAgGNTJfPRcvJnZVGYOawwvncBun+x0oGeRFPmOt1IPwIgA6vqHei3Nu6qPmLzvIZP4SAuJYo+EVqHuVaZqcW6PlUAAABqBkZST0dFXylQL+TSM+8LRcNkcQH6ElLOBjS9AAAACQAAAAEwRQIhAJ0KE+41NXMbcd5QyvtkjzaKxhBB2VXAnNcS3b1ZM8xRAiA22bxehBrmY05Be8OLi0tbWKUr9+ntFSA8BJiLSgpfBAAAAGoGRlJPR0VYX6VP3fGHDDRNv6uzffq4cA7A3vEAAAAJAAAAATBFAiEA/Fl2bh7HEnEx1ySIU4s5ll5ShoZOMe7mgGlXDXm/iocCIEd4sNgraaWxLDPJbpbovFeHP1aYSfwbd0Di8jcs0JFzAAAAZwRGUk5Uo64iME5L7AUyfngSdosRJTtafIUAAAASAAAAATBEAiBVMa96LzkerBA5OUJbnB96VCVP1+7I5ebU3/Tx2/ksyQIgMvXM+xY13Ig2AO5doY1RI0hnsSMNqMYo7kV1sM4g1rUAAABoBUZST05U+MNSfMBDQLIIyFTphSQMAve3eT8AAAASAAAAATBEAiAIMZDcRTvI9jNIGCkrnBdpoZpHcI07ziWv3qMUg56qNwIgfP26tpVRMKfGYXpaeK7/o8iobRGK7JsAT7DCwwgCv1IAAABqBkZ6Y29pbuWu4WNRMRn091A3bHGHZrQPo3pfAAAAEgAAAAEwRQIhAPckS3ZmxgZHHKV9Y7hHOflBR5XbGRlSDSNYVh/Nmy4UAiAJWPkY8O2lKYhvMjPyew3NCLRPJ0npOnUWhHohBjFZ9AAAAGgERlJUUyKbI5t9AKoqQci3Sx21CoIfWNMaAAAACAAAAAEwRQIhAJNVBsJjOLRIgQSDLWUxme4KbCEFp58pZZhl3pKlzB2TAiBSl2drESimpxb6DARqsf1aZ7Ys9WMWF2cDOIL186aYUAAAAGcDRlRD5vdNz6DiCIMAjYwWttmjKRidDDAAAAACAAAAATBFAiEA4NBCgk98kFwhLKozPfvXqv/4ZtL8q0FZp6ZNuSnvyTICIHb38jkUQMImrIJ40n/IhL5kzDlrQKHW2xJyG+zsffDuAAAAZgNGVEmUPthS2ttcOTjs3GiDcY34FC3kyAAAABIAAAABMEQCIB4v2QYNnMV2QWUGC2m4nYyQP+XqRSmoq/FvWaSfLVw3AiAOqtxh1Zxr+ABK0bTEbwz0NeA81V5JJG67ElQUtiRY9wAAAGYDRlRUUNHJdxkCR2B27PyLKoOta5NVpMkAAAASAAAAATBEAiA1dUsDigWQ9ig3UQrvVjwdA4/h4gOZOl24CPfaVbEuugIgE8VAPjtiAIIfxtOIsf45sCuPHa3Do4nIkadsgW/CYsMAAABnA0ZVRCaIIT/t1Il2KigaZ65PIpXY4X7MAAAAEgAAAAEwRQIhAMthK1Hg+mELfW91WJZW8PkXsJu8MqQaeFuo63s6gB0kAiBR0cLl7sYnsFxbQ3DYLnfrh+t5Je2ESTf9RvEIK6Hw7QAAAGkFWUZVRUy9MBvgnreN9HAZqoM9Ke3F2BXYOAAAABIAAAABMEUCIQDE62WpphaKhwa0yLw01fghXPVIXY4b1TwYcokFVKry0gIgFPW/vHbWTS1krkjXVUCq3jiiqm8gmK5a0bGQrOl6gUsAAABmA0ZJTh3XsoeLbVZx7WAuYIGLDZoM0c33AAAAEgAAAAEwRAIgDQ2iPefYi+9o19XIeutt4yBidwUihGdX+DDjlJZtpBACIB3t7TiOwmrtnR8uAtI3vDMvmyhVWOsEMsBd+FRVst3OAAAAZgNOVE+Kme2KGyBJA+5G5zPywShvbSCxdwAAABIAAAABMEQCIGJHPSzh+uDkIPsFpHM5E7TmLmOrg4J4/671JG8wAjBDAiBfhIi4mYnBLwFUCQHrFXBFhzr5wUg3E+m5dBP2VNbK2QAAAGgEaURBSUk8V8R2OTIxWjKCaeGtrQllO5CBAAAAEgAAAAEwRQIhANyUNuIccHQ+sUgBqs6+9AnjJwgoCkpfx+7Jm5CIbtiuAiBWzHVbq3ecKfXxOF2kvrKE17TxRlitlLO1S3JeHJboiwAAAGUCRliMFe9bSyGVHVDlPk+9qCmP+tJQVwAAABIAAAABMEQCIClCDGSAoPsfI7cSlysH5xKXPjMXHxlK0AQAeJFZ3qduAiB6rarfDD6c61hg+VYViB674QyAjU3ldLZgHL9JXzgNDQAAAGgFRlVORF/SC8vVbZ1VHKwQprwqg2Nb+3Lz9AAAAAYAAAABMEQCIEo+gOs3POu60I2FxFAUJg7vK6WzKN1Qmlbq7QEHs8bhAiAnsVUbpUhiO/n6kN1bRR9vbKfmWnZ+zBIJWfCIkQ7SXQAAAGcDRk9Zr5Hor76HZC3GKHhhiKVLeFgKTXYAAAASAAAAATBFAiEAxEluVeawaOhnAI6xNLY8qjxtOgFRtbMI/rvW5+5XkY0CID/jsJXYBhJFxy+9ESLMigYW6KVxJqFafCTvSucxa3ZzAAAAZwNGWU6I/PvCLG09uqJa9HjFeJeDOb3negAAABIAAAABMEUCIQCIw6qujkGS3QAkBL8L3UnsPOrmMRt+sLl3Rbl0vJdPqQIgJByyEbqpuS6J/fHFAU7gikd2sqo3RgB0m4YrTN+w/xUAAABnBEZVTkRCPYMhvj3X6/9bbH2i72YUuFR6zwAAAAAAAAABMEQCIE2IpAEHD/nPsLko+H8bCtpkq3TAU2O+5YpU6WjrxrifAiAgav+HXyAFsh6P7cUsNFhsXPCQm9BCrxBhZvF2ORlJ4gAAAGgERk1UQaqdhmZmwqN0jWsj/2nmPlLwjZq0AAAAEgAAAAEwRQIhAMI6qRZC47I2mrfoft9owJV6Z72yFx50S9VbcFgReteFAiA7HkFSbpgKzs5yJvl4NRb7nMpT7lOm08NAkfWESwxt0wAAAGkFRlVORFgw2GK7vvO3X3ANa6fTI7lXCOqvqgAAABIAAAABMEUCIQDcuadoLx7KW4qJWS5UgvkwljC/+WAbJC2MXXUnN8rvpQIgGEeGyGyoT9KSt68IJSXVW9Q8eDGMSXYhwSHgxR6oiDcAAABmA0ZORE30e0lpspEclmUG41ksQTiUk5U7AAAAEgAAAAEwRAIgLOe5jbHXSMVX3RGne7XQetEYQPSK7DqVZ6mnsGnuhhcCICaoAE+NZajbdginvO4r3hK+601TV3TjosvtPDo4Ic+DAAAAZgNGTkS+bAGme9AWD+PnMVVa0BSJWyJd+gAAABIAAAABMEQCIHs8bBuikUAbH7ZKqzddfT3Xa0qvIs5XzgH9D6aYbqdqAiBKhX8Mpk821qT4fmdnnf4xBnW6v/Ii+w8FQI7MMsDPZgAAAGYDRlVOQZ0Ni92a9eYGriIy7Sha/xkOcRsAAAAIAAAAATBEAiBfDjp8s3uM7A4NHwpgzb4vi7auBovINlde6UT2ptiSkgIgZ4JCe1I/jKVIjKUbVRb+j9ouL3KKOGpiAdQOM4hxcJwAAABpBUNPTUJP/////yuo9m1OUYEcUZCZIXaTAngAAAASAAAAATBFAiEAi07UDxjkJnh6bUDPW81dzlOFYjFwvQaHtd6U53QLTWcCICou6KsaxRJeB4vhXhFZDzvsej5uObot12InG3I0EongAAAAaARGVVNFlwubssBET16B6dDvuEyMzc3K+E0AAAASAAAAATBFAiEA8ZVFz6Htsz2j20T06Bh4xPqsH19rjula6+qHnGgwSXQCIEq6vWQJt6Tv5Sv1owVsitW4LmOmacfZ8HkHLMAxiwZpAAAAZgNGU07QNSoBnpq511d3b1Mjd6rr02/VQQAAABIAAAABMEQCIC+ymUjhRNPAj3EiOcTbEDIDgBwCwSuASaZDc2tIx24yAiBVIHObNySiL6vDQRA0RkRLGFsCds5Lfq1b+BzbKzWsrwAAAGcDRlRSICPc98Q4yMjAsPKNuuFVILTz7iAAAAASAAAAATBFAiEAypFSDa3v1X3ZqZs6kYCqzo7Xnd6xv1pdJcT0xyIXTO8CIFTg0iA/uVDLw6thpc4+TslEMwf+YbE+hxmtrrgIK8MGAAAAaARGVFhUQYdcIzKwh3zfqmmbZBQCt9RkLDIAAAAIAAAAATBFAiEAmctgSTjx5Htxhvoi8RVlYuVItLmcdqlWv7wQtTL/g9cCIAWS1MAd/GYQSoPjeAVzeSvy2HlfdxNxJ3Wq8RsZoVckAAAAZgNGMUOwoKBwZAtFDrE23DdyCEae5PSfvAAAABIAAAABMEQCIB5IcMVdE9CsB8mbdwgk5Un5tl7SAj1YMnku2bawvkqYAiB6Emjtey/iPvBCRCcbe4wGM3TPbDYWrdBG5UIDg1T5UAAAAGcDRkNEdNuD/roVdP7IYEE+tQnR3fsbcwsAAAASAAAAATBFAiEAnGOzyU/RSwib20zvCd1v9TyFNUcMIMPW+ZOwjNoR1dsCICK2kwGl6Sg5zXtPXyIfRtySq/Rc2KQezFTeNzterMKbAAAAZgNGRkarr6UtPVosGKTBriRIDSK4MfwEEwAAABIAAAABMEQCIFaUD93ZgU0GMIKREx0/2dl6xKQyZ6Z5U4XuqNzPHMJJAiBk8H9ud3NhweIcsi9FeMuGkvp86dB2BQd7W/rDcAm67wAAAGUDRlNUDhktOCo23nAR95WsxDkc0wIANgYAAAASAAAAATBDAh8hkJNn7T8hYYWaFXMX6IhlhcF5/jMbaSO3ZNH8X6U/AiAB81hVvZaXx1Rin/wc6eRTBLnUFyvTyuiW7lQJRf9u6wAAAGgERlVaRRh9EBjo74eb5BlNbtdZCYdGPq2FAAAAEgAAAAEwRQIhAPKM4Al4CVqrG6WEVFXlhCbBzjDrQmcDt0sf7Acb4cPkAiBdBwVABN5t9QeunZv6oIV90GiY25vr1nUexdVJQ0eYPgAAAGYDRlhUGCmqBF4h4NWVgAJKlR20gJbgF4IAAAASAAAAATBEAiABCqR1BchEOw5Lq3z03SwEeNxdeZBt5uHJFdDT5VhdiwIgPH9bTMHwNh1yHk4XvZD+kfb6Vmu+UihwLfsIEZpNd24AAABoBUZVWlpZS83fz6jLkjlSvPFmRLNuXaXKMYQAAAAMAAAAATBEAiAikGVZjzoOiA/Aj8LZxqqXLN822hLFUd9CBROUQlLBtwIgIUvI6xauEppEHCxxWUEk1TVYvAz8RHS0srZyqHDFadwAAABmA0ZYUBTd2kRmiLcxYaoTgvTkNDNTr2/IAAAACAAAAAEwRAIgfU5oNHgithI+51ymz4YNhhg0tWUNtROvnCJRgmbPLFkCIB5bVegXB1mugcy+xbVRz3bDQxZjhSi9iCnt9jpGmiVoAAAAZgNGWFT4O/MgpKP0vzZcMRS28Z/D9rEijAAAAAYAAAABMEQCICk305xKoMT2+sbnaE3Hkgh7laGEfpsKM8W9cMj7mN6hAiBSLxFjkVRcUmdgTfeZhXF0SNu9aDNxad3pThLK6cwaOgAAAGcDRllaa/8v4klgHtDbOodCSi6SMRi7AxIAAAASAAAAATBFAiEAtCO62Bye9/ArgEe+E/UOFbkjw6ZeuVF9m+MW6kO9gzsCIG4lQO/hdBemvwyRjbBsIGgKUWPS21c55kmwOCcWOUK4AAAAagZGWVpORlQZos8qGy925S4rDFcr2AqVtPqGQwAAABIAAAABMEUCIQC2hRzkKPEU3Liz/D5Acciu0DaCNo48QO/nUDKz96VZbwIgcb1FrOWQNWe8ock655It1yFdNOemW74N6HL0+l2Qmk0AAABoBUdBSU5T2bMS13vHvtm5zstWY2MAvtT+XOkAAAASAAAAATBEAiA9OIAv5qoYSeGjjstwfiTCuro/dL84zMmS49wMRz4t2AIgUkefWPugkJeIxbv5GbBUZqKLvBlTU3Jp1HlzVRgSlVIAAABpBkdGQVJNMoMQkdoHVmUWjgGJjG2sAEqGfx4bAAAAEgAAAAEwRAIgBc1Rv72zj74xO9lNGbSL5EYAvrg8dDW8pk+paz7ezWwCIHbG1ESG0+ZIg98YIWuYr5mPp+Z7OOqLdsFMMWPcrOdWAAAAZwRHQUxBFdTASPg71+N9SepMg6ByZ+xCA9oAAAAIAAAAATBEAiB5lPK1xjV5ZbI71mfPb1K8wD/bKjQTmY1KdQNnLhgSMwIgP+LRwIMtTSr8+7bAFSz/MwnxMoV+U6m0IH/hhyyQrIIAAABnA0dCSctnvlxU6rlGKWfuPAPDW//+uAHNAAAAEgAAAAEwRQIhAJjx8woN/LRI3sun1utVZgHLad2KFPDpE4RLn08Cc1zmAiBpUXCMidXJQSsbK1UgvzYv9hYQ/thr4cdfo2gfXdf+PwAAAGYCR0NIanKBGuZcTIFLqSnW2jVJfSEpbwAAABIAAAABMEUCIQDHbDoxP+3gaZo1/xGFuPOheg3DTUhQUOOGHxXAUYShhwIgaX4vMp1m6pPA3LABlCVOnmkq7GBl98/x7heGldlbHBIAAABnA0dQT1z1AeZHhkROAlxbJAJfmDmVOOpdAAAAEgAAAAEwRQIhAMI0es7ML//xjFx5K8gvbUdOoZjkccLVHo/V9VY3Ap69AiAu6uspCSmrCo/oACo91AwdxaEctcdL+csTccwsa+gRFgAAAGYDR0FN9nRR3IQh8OCv61L6qBAQNO0IHtkAAAAIAAAAATBEAiAls1qGwArTjcas1kbvTrgam2oIvk69PqqyPj9FZ+oTTwIgG3VlnnV6Obvm+Ej+6ERwWa/dfQQ9h8oH5MMbqhtdvJcAAABpBkdTSElCQbiSJJk5rb9teFGGTKmlx9LVN6+XAAAAEgAAAAEwRAIgJaJBhk66ZqrIkmdUTPrxn99RJvKiEfeYiGE1PqsGT1wCICROo3R7Uj8UrXGTh8ePAQVjN//uTex5AqsNPsclvgiNAAAAZwRHQU1F1We18CuQc606mCoJmiO/AZ/xHRwAAAAFAAAAATBEAiBmv3RW7Br3nhgDRmohaeSayuwSgsgyLpMimMVpMLwlagIgddtm/C/JH8D7lMwNNWomhVRObesJH60oLzE0TBWouGcAAABoBEdBTUVj+IoimKXEruPCFqptkmsYSkskNwAAABIAAAABMEUCIQCkvj1BMW2TtVrpdE3tTn+iWvzus2L+98s0RhjjHlgrlAIgM3EWV1tI2Tl1M+SYQQXiwgoDn4CrBkXJ18iVO65ldIwAAABmA0dPQuQAAT34YkmDi3IOq1p/gWrYJDPAAAAABAAAAAEwRAIgS1BfC/osr/VPOrjya98xC6KIze+eRX9ZwxogWmTwyWsCIB7ZXRwYqWYHyZV6kN+8gDDnmD6Im0mnZZTtxXAmyejyAAAAaQVHT1BYMqCv7HhTOFdAxEMb7E6rNt/69B94AAAAEgAAAAEwRQIhAPSGW/xgwBq2/M0BAfW01v066/uHSLqKaELHCjy01zZlAiBcY9jgQBFT7IFs5pfPV8jWAYOWkjz3xHF1RcA3mx+jWQAAAGcDR1hDlT4ilFtBZzC60FAJrwW0IOWY5BIAAAASAAAAATBFAiEAtj/WJNRhVWmfylhpWMQqKfyFnX52Ds24af14kB4x5ewCIAW0u1QScKOQ5q4cj8GNnaQowVcva/pMiQO8whPKPcr8AAAAaARHTUNJXcdAKVCXUvTtmmCcK7UiFideTB0AAAAIAAAAATBFAiEA+7lwJh0JIn7KvsbxHVOjAgc59aW6yat0yq22Jb2iL/YCIBhYDmJdoJzQQ8B9bR6AIePNTgbjqcL9vVgpqgGgYeR7AAAAZwRHTUVF2QFqkH3A7Po8pCWrILa3hbQvI3MAAAASAAAAATBEAiBcd5VqnW3ArOYMwOmhm8DH+aabeqJziV4xL4oIHgHGDQIgTWNv3lIx3hqOYFi6VjxMFsXlB/+ZgyB1I4mpAT0thyQAAABnA0dGTjkw5N200k7y9MtUwfAJo2lLcIQoAAAACAAAAAEwRQIhAIaQ9QtmZXaaYiyNAF7VxTEr0l12njAq8grBzq5KCAhbAiB4ipZ6vl4NAz/yuRF+vXRny1JOHHB0e1MHEESFysraVwAAAGYDR0hYco8w+i8QB0LHlJ0ZYYBPqOCxOH0AAAASAAAAATBEAiBBEMVnxUTsFQjKFiIG6ACjuytFtEZOR7WzngOKaBwlUQIgPxLFy5PI0WPLSAlY26JLe3A8/jALPzMZC903ytads7MAAABnA0dTVGepCZ8ACMNcYcAAQs2fsDaERRCXAAAAEgAAAAEwRQIhAOPOLUfcjmGNPXfcyb2avyT7LT6/EMy+IxHWFhnyIS7yAiBFK+wBJlTaD7c/dfOPwGiLGAiL/aWUJPP0oU8iL/PqvQAAAGcDR01Fnra+NU2I/Yh5WgTeiZpXp3xUVZAAAAASAAAAATBFAiEA70gw66d9ccKlAbdRJJC5E8Qd1n8UDlE5DEEZyJNnJbICIAxKnfevnvCESJyeHB7O3OenwJHBAUUM/+S59anm7qSZAAAAaQVHU1dBUKrEHsUSgI1kYlV27d1YDn6kDviyAAAAEgAAAAEwRQIhAKAmz5IiY6I38BJ/oOSlDaLDTyN7rBjeRyagdd3gcETxAiAntNJmrPhdwB54iG0nDLPA/02TpyOgsARmqWSm0W/T1gAAAGgFR0FNTUFr6nz++APR49X3wBA/fe0GVkThlwAAABIAAAABMEQCIBS8MyGSSpfTPdOz3GCvFja26r4yd2pz4QP6JmvI5Bg7AiAnmab3gs4bfjfdHHBOf42AE9xTrGqwwPcYEgs6sEWXGAAAAGgFR0FNTUEeHu1i+Nguz9gjC40oPVtcG6gbVQAAABIAAAABMEQCIAOoFYAjDh6+shUiAENv4wQH3/JGrKylyO7rBbC1dkbJAiBqLnMv5lGqE2gxuh20T3v9gfBktVkzhFNtlCm4JnMD3gAAAGcDR0ZY5Po8V2wxaWMi6NcWXFll1aH2oaUAAAASAAAAATBFAiEAqCWKCTX7Jcy0uNmNfxFi+1o4Mpnbftd5onVw31Cg1qACICXJSeGSM5vxfr0jQKOdxpkce6MzHcd9QBNAhGakCvOGAAAAawhHUFVOS1MyMMzL8RrDAw7ozXoEz+FaNxjfbdAwAAAAEgAAAAEwRAIgISJUDVHce2x46xi9MlDGkVoASBg4NoroTRR74Wgf3LoCICa2MijkZQ/Mc3++Io6vR+IeRxQfuvEeTplPsYJTOcfPAAAAaARHQU5BwOpjBvY2D+fcq2XRa/Gjr5LHmqIAAAASAAAAATBFAiEAutt/dC0qQqxyablDAUhxNLMQ7Bxi1edsGYUbcuwJSzUCIEZoUeKgX22liay5xukce1/CN9EfY9JzO4USVvpdjtn5AAAAaARHTlNIfF/3GabHb+ZD6ezQ8R8Uai3gXxQAAAASAAAAATBFAiEArIvxZBC5uHnlTrsg9M3vl52yiv0ex/po2k4ESAi+uTICIDyNiEoo/oCxtST2g8DoIjfEJmC+uFM/72lXyjRFh8gVAAAAZgNHQVCVcOx6sF1hh3/36xgPg3x8B5xIRAAAABIAAAABMEQCIBWseRYhSedew1BjTk6h2MW+CS3xtTIeEZE3LRa0n0CfAiBfJNswIxzaXNo9vRhjQ9mMAxgg5iBpfj21tlEV93OPXQAAAGgER0FTR8WEZ7hVQB7z/4/akhbyNuKfDWJ3AAAAEgAAAAEwRQIhAKX6s06RUpqCJFs6zJoi+qPV/FWcpRnwN7F7FOUNZRFoAiA2gH9m+YyV7yYnmqp5ie822sigF2jImzRGum2R8nnhZgAAAGgER1NGWQLzoYGYUdEnvNb0aCU9ekmFZ+7gAAAAEgAAAAEwRQIhAIe2FcqBUONm/A8BdWxKAvV7vu83dP3i8Jdva7bth9HRAiArS43/HmjuhSZg0roDd0Pd7W9qkhDvIavxZOnBZ8cYjgAAAGgER1NUMgAAAAAAs/h5yzD+JDtN/uQ4aRwEAAAAAgAAAAEwRQIhAKFt9ysPAIqlRFeuWFw0thK04kYqQRY41R1oq6YJ0/QqAiAggm8Lksp3kKLWQ/4B7w0jprCKzuJC8gooI8+H0yGf9AAAAGcERk9SS1uxYy+gAj4ap2oa6StGNcjbpJ+iAAAAEgAAAAEwRAIgR6dnZEOz40t8dcSfWikXK6SgNiypZhZsyyfIaxD//UICIBeeTn/Ox5uSrd0MKHaCOu5rMrfIkcaqDZifzGbbzq7MAAAAZwNHQVRocXT4xJzrdynZJcOpYVB+pKx7KAAAABIAAAABMEUCIQDyQa8KhYgVjesJzcyfAH4u2MHJj3DYxFODttoSFEc7owIgNRalmBg73OPRmh8QUdKpKeeJT7T9FJow9AYreIyvi1AAAABoBEdBVEWddjCt96sLDLAK90fbdoZN8OyC5AAAABIAAAABMEUCIQD4vfcAYPNZ7DpD3FxUxZGdcwci0RKEvMJcfNjVkNu7PwIgSolBkz+fRdAqOWtsdfgH0MJ1QxnT76yMWehko+kD90UAAABmAkdU5mdHoQG/8tujaXGZ3M5bdDtFR1kAAAASAAAAATBFAiEAlKd2gFiwNINlMB+GHYEBa1j9kePUo3EWOke6VIMtQu8CIACcV0fFM/HSdohLlzfJ3ySiF4K5aglvYY7MTguhYb4kAAAAZwNHVEjrmG2plOShGNWVawLYt8PHzjc2dAAAABIAAAABMEUCIQCZC5NbUX3f+b7u1rfSdjq5rMi1xQggBSWQH/I+4N9wxgIgeB2OF3ZZc2iGERfFJempeFsKlTS5FBeUcJyA1v9C76UAAABoBEdUSF/Ddx1H4qtaUZ4pF+YeIweNDAXtfwAAABIAAAABMEUCIQCS+5Az7gfknC03knUdaOzFoxDZrzgp/bWogXKNUxBTjwIgQabuYdWCj5DOvQ7aDQKI8DRKQVZQQqd/0Kb8DPviCp8AAABpBUdBVkVMcIh29IbkSO6J6zMr+8jlk1UwWLkAAAASAAAAATBFAiEA9ipb3Gr234Vv9oRToDvG3O/xd8U/10GvHkywsXVO4ikCIEie8LJis6DBMLu3Cmjvm6AaxBU8lCdmoubZ2uniPX8ZAAAAZwNHWkVKwA8ofzamqtZVKB/hymeYyctyewAAABIAAAABMEUCIQD0xbxUk/csOOrsVQUolpdOALt07kJhvxlyodjZTmCrrQIgA2bd/wRQAXiSKe+Mo3lpKktkU19Xr+QvKc4ULK19SbYAAABmA0daRYxl6ZIpfV8JKnVt7yT0eBooAZj/AAAAEgAAAAEwRAIgEf3TGUshzHAA8ouyR1iaOGye88ns+rGEchG3DVgSLw4CIGKvA3BRUfzOTWt0nZ+yBh1/AmIcgwvNlBvTEKHdQV1XAAAAaARHQVpF0eBpUnCHcfcebdGPBu5Bj26PxWQAAAASAAAAATBFAiEA9IH9CnocrJAAxB1H3fXACbHYn+jczvHoBy+J4RRhp5cCIF6KIzbGMzSWYgcYK54Z+VFvua+eg+KFig0SvzmGmo/SAAAAZgNHQlR1hfg1ri1SJyLSaEMjoLqDQB8y9QAAABIAAAABMEQCIGihydbwiG9+TIz6S3SGjkhxldj2MeXRbJqEwwUdRsBBAiBgVv1u4jwVN1rTFn4IZ7mXmZu4e8Uc/kJNKiyr/j04AQAAAGgFR0NBU0jFP2wqw10wzEfd88Mgh0sh36OHkQAAAAQAAAABMEQCIC64+RwCAjA0DXFibcOl+V2s0gIl4Ld0fwS52OwqrPiGAiAUk6LE/gT6Ejr9byZWqOsAm3N6aC/0u+Hiymxw5DUGRwAAAGgER0NCThXDA7hARfZxVqz2ljlU5CR7UmcXAAAAEgAAAAEwRQIhANDKRixZT4NJjSDSpIQFtDmtVG3lav0op1esxaHQ1IiDAiAv7+Eut/KFvnkCAB7CTX0kkiXF6pfAjFYKg1m4ttclGwAAAGYDR0RUxnsSBJwtDPbkdrxkx/gvxsY8/8UAAAAIAAAAATBEAiBd9Ci/nvKBHtM0pluh2cNJte1EeeUyzwfgEVtv1xUp2gIgcCGO5IqFoJ7oRqitsnLcGDMc83jr3lzQdilCXMqx3S8AAABnA0dFRU9PDbTekDuI8rGihHlx4jHVT4/TAAAACAAAAAEwRQIhAOP7qySbSxibNtP1Gt9w5beA7LPaelk2lIs99M3eXt0MAiBScuHE1RsaAx+WoH1xE4J9xqO9q1hyBztq/L2i0Ni0vQAAAGgER0VFUWufAx1xjd7Q1oHCDLdU+Xs7uBt4AAAAEgAAAAEwRQIhAL8VQd3TtSRd6THzWsmLtab23ooIBmZoAS7IiKhw+KneAiB1vkL8FaGmK2KyJJWXrWL4GvahILtC4ea+Jb4JOHpeZQAAAGYDR0VMFbfAyQfkxrmtqqq8MAwImR1s6gUAAAASAAAAATBEAiBX/NRkvKS8QbVlCH4DNF26NeP6cHcST8MkWt4kJthcLwIgfG4lYwjIq1qGNN1FrJ9WCqVukEnRS6Gs8c2H841X2IkAAABoBEdFTEQkCDuzAHJkPDu5C0S3KFhgp1XmhwAAABIAAAABMEUCIQDcG093C/yv/ylt2XPQ05+j9RdiI8Kup+AM/cWrOY6qgAIgD/8rSgDX2Z2xvDtVWaQsNhqxejwn40OFLBCSeHq8dKkAAABnA0dYVCjT5Am7m8WPHKbgCfj8eKHbhea3AAAAEgAAAAEwRQIhAMCMpu4YTqW9H9CcuUol8O2xxfvFgWHPCYlTOGfA+k0OAiAuYw+jeG5fWvv6TJZ4PAgxCQXUqYDUDpDXvGRpkyPWqQAAAGgER1VTRAVv1Anh16EkvXAXRZ3+ovOHttXNAAAAAgAAAAEwRQIhAKXZ5wzL+Co6hyCXf5lThBBU54mx2PTwqy8YPgy6xF8IAiARaOHL/kHCRz3ufat6ks9OJLi0/Ar7qKZSuNp8avN73AAAAGcDR01DaP7AvMYXJ93sXOziaDAno4NJJxAAAAASAAAAATBFAiEA9lgGV+OiW3Qw4V+R2PWN9sD4fzJOZ0HglN4d5PXouxgCIAl4WIihLxpA8hSu6s0au+0YSTL7Bz/dTefyP9146UBgAAAAZgNHRU3Hu6W3ZVge+yzdJnnbW+qe55sgHwAAABIAAAABMEQCIAiE1f2suqWjY48Gc/uLoO2XsfOpOmbFZqA/43VZFL8jAiA/rDYnZ8grFw8qyZ3VAPM48H0R/Gd2IpdOMxyTDWFARQAAAGYDR0VNkPYrlqYoAUiLFR/zxl6sX64hqWIAAAASAAAAATBEAiBcaMePXRspbtJ/qgps/5Tiz+x5j4HEfsAp0QPRMFaZeAIgFLH0D3YA3X6J6ujMXUJbHWcxwEZ8F4Z+BAcnTJ8Vl10AAABnA0dWQ6VzklSAh0U97GEG5nC7+4SSdrNYAAAACAAAAAEwRQIhANC5SkZJpnXKcnhLtt6abvgDHzEU9AfDG7/kJIgH9y5fAiB+OCJiCeFWmn9Vq9YpSts1al1s8oNRdRCds2STOa1U3gAAAGYDR0VOvP2usiq24Q37mVRuYkAVXtwQhPcAAAASAAAAATBEAiBfTLC6Lrto8s7i0sG8qyFvAO274lNNU2KOvfNIrgDECwIgUBbWyepzPe8G4DvKUa0D9Q1nQb1SQcXKuVwu6Nn2aOUAAABlAkdT4Lmiw+n0DPdLLH9ZGysMygVcMRIAAAASAAAAATBEAiBDLcFHgSwRK5PmTidiNp6X4P+mDvKDdsDOtSyz214cIwIgc0ZN9dTrjNBV//4Q70J9wADVAmNmmpgChzHVPyrlktgAAABmA0dOWG7Iokyr3DOaBqFy+CI+pVcFWtqlAAAACQAAAAEwRAIgO4To3QvjaQfGW0+B21JsFV2vaQ/lNmq8Z2M8s0XPVCICIHwNCh/e12t319sxfIynDV3OoSM6mSjV0+Z5l56fGXMTAAAAaAVCVU5OWTPnDJ76vfFR9cZ0pK3cEEh0mAw/AAAAEgAAAAEwRAIge/1cd1Xtcxhy0SKOsrCxWF7xZSrI3bb37rvaMWbZW3kCIGX6vqxiEPg+pbW/GFXx60LTNdlN38bQTbWOwfirm+2PAAAAZwRHZW5liEGBVU36nleNNjeZGcBcJdxKFbsAAAASAAAAATBEAiBvLG/RDew59vyr7n2yYiopKZjY1Ze/w1QDNJ9s3wAOOwIgEIg+ds2JEoSux85MDpQIU/R5SxTAeu1mXcpcegI7yAMAAABnBEdFTkVt1OSq0ppA7dakCbnBYlGGyYVbTQAAAAgAAAABMEQCIAzYzVubIxp1t/1P4JozTA/Z6jFTLaWKZq457wo8i1G+AiAsp/FRtc71EwRK11xRbVFA9qDndmBnbqask+SMjW/3bAAAAGgER05CVHqkalH3F0BNlEBRrzB1u8tJsiiLAAAAEgAAAAEwRQIhAJfTxZ3Bev2xRklHNk8s+uHS1wZ0aZwU3thTR40WFoWvAiBNsELBQeZspYuMRzNSTpgMjurP5jZbs9AlMmVytZwHSAAAAGYDWUdZEbCowPpiZidgHtUYw1OKOdktYJ4AAAAGAAAAATBEAiBPBdpSEo2K/a81Ju/A2GxqlkhqPQvNjAzE8lsuMeO0cwIgA7/n8UFHTkg2LZDpmYXbSvbFqDx00Kb+gm+ItprkjZ4AAABoBUdFTkVTFnOmOqAEcpTXWVQibz8vmN53sW8AAAASAAAAATBEAiAfg9NOfEaYNGgH+V6zSXgya7jJGDNN7iJvG4RiVNGK4QIgOdsPWkvSzYlmDA1RqSmy1svO9Oz54ZB2gdvklGaO7XUAAABoBEdFTlQPdnM4JEQYMQNC1JsCGDcVaR2YjwAAABIAAAABMEUCIQDjxMgvfXl/PsvmoibwA/FcMqa7o0qj2dDHZHQHng92xgIgO9idrHEaHdzlTDMxAxO1DFhzu9C2FAAYjkludjz+79cAAABoBUtPTkdaWiNcC0y40OgKXDv00vrVwy5ECIQAAAASAAAAATBEAiAmNqYTy/JBLNp3WymvUJMeGIQ5ug0o5A4+l5zj1GSdUwIgDuYnqnsSKqEujVuoPlJXGY/szIaPNzIOzmV0NzXmlvYAAABnBHVHTUPU8iSd1sJkRvFBP22X8U/Kp3klRQAAABIAAAABMEQCIBL/Oy846WGwxsaa8Pv33i+RkIs5UE479mNEcERjz9o2AiBlVDdAva0sEMeNRl+ds+dNx0a3lOu/wVKFLoKakl1FuwAAAGkFR01DMjQGFB9g7lbI7Mhp9GVo4sseZrqvQQAAABIAAAABMEUCIQD2VKI2FC9DrKlIpy/p/ShKsAjSHm0mHr6wvDVJt0K7WQIgaXX9khWehs4Eso1+qp2eE9RR5HC1bV3hk8EfH1SGwd0AAABoBUdQT09MeX3h3Aufr14lwffv6N+VmROPoJ0AAAASAAAAATBEAiB8cZEkEGUT881NVYmj7wfy30QCabSCnRGv54WDeRB7SgIgdyxSKQlXbJ+q/0FaSYvXfW8+Gi0MLwu+Z/h7a7cJm4QAAABnA0dWVBA8OiCdpZ0+fEqJMH5mUh4IHP3wAAAAEgAAAAEwRQIhAOQbyjgteHl51U0d+J20pXEAqUf6c+VZ8Vpntfbe0di4AiAA0Yml8uZDVBs990YruiNnfyp9VyDgXtsWc9N0W3kVJwAAAGgER0VORfbsh9/h7TpyVswMOOPIE5ED6a87AAAAEgAAAAEwRQIhAJ/SjGLB+CZ2PK1j57Dik2k9wkjbDv3980pisY0Ct/YKAiBKjX9Dq4l/oJISkPXH0TI9g4CQoumj+6kDaAGiuPJ0vwAAAGcER1hWQyLwr414hRty7nmeBfVKdwAVhrGKAAAACgAAAAEwRAIgA+zMR9L0W2ImrNCg7o2lRcS+NkJ7ImVTYALqvcsoLwsCIAp6UP3fJCDih34XSwVL/MgJHTBUO8VoMvfjoHH20YeeAAAAZwNHRU8Uf6+N6djY2q4Smxh/DQLYGRJnUAAAABIAAAABMEUCIQCZ42OluLl4xOxr1S4cY/+70oFrDt3AqZ24J6Orb5cm/QIgAfw6t3HelDYxwlHe1cXjUkm8gBsSfR/UcqEfjRtPhNkAAABnA0pBTSOJTcnabJTstDmRHK99M3dGV1pyAAAAEgAAAAEwRQIhAI0oRARxr4RyvXbfc4oqwVcVm1yvuw8cc3jpyXzcQ47ZAiBfd8LZUcJoHe+Mx+MlWjTNAB13Jrk3hwlN8JrD3LfwgAAAAGgER0VSQd5eo3X/vciyWoD+E9Yx6LoKtLsCAAAAEgAAAAEwRQIhAPQekqikUnD2DKJrCXyxnvORmExmz5oQuUZtXYR6uZJ7AiAEuKmKurlrKdWvujt2woM1K3SzTQHF+87vJpMbW25muwAAAGgER0VSTzQx+Rs6OIEV8Axbqf24mYUdAF+1AAAAEgAAAAEwRQIhAO8NXSOpbO/W870E17ccfTO5vDsTJLvyWFB9COm9YNw7AiAqA8Iwc6TjZ8pDNwzBRCRJveZGChrRJnYWD4UGeb7lMwAAAGcDR0VUioVCiKWXYDanJYeRZMo+kdMMahsAAAASAAAAATBFAiEAzJS97x2e1p+lU6m35/ftvp3Hof3lLPhSoivLrRjno6cCIBUTuTlqF6Iovf28aKRz52wZc5EI74/3BC4M9SMXcyXjAAAAaARHWVNSvqmMBe6uLzvIw1Zdt1UetzjIzKsAAAASAAAAATBFAiEAq5fASy2LBUILXcZD8uOsJ+Nd2OARit6w6j5Mjys7LRACIHuE2cHq32djDHArjoHtiATrCh8aID8/9nI0O7Cnwfl5AAAAaAVHR1RLTh9+j+Aa66b9rqhRYXRvTVPcm9pPAAAAEgAAAAEwRAIgV8h3rzA7TCaPKk35agtfA+50iQOeKJMoMp2UQoKHfPYCIFKriYTxCyoZTlE+Q6TR8IjILHMbMGlfH6ae1K6lE1GMAAAAZgNHR0N/lpxNOIygrjmk/dsab4mHjKL7+AAAABIAAAABMEQCIAPGsB66AbfjZfOXXHd0eeRFjByCJs/+wRGWfXLQDrYYAiBHAHCLn634rAa5d26962oCuYkN4Kg0nk6k7ih23QOfDgAAAGcER0dUS/qZqHsUsC4iQMeSQMWiD5Rcpe92AAAAEgAAAAEwRAIgH7dBT7A9nU9Zg4oa67j3PCZynVMroOlShbGFufaS7kACIGwGCMiAaTyO2pO7crQLnPB+R6/eqhzzZ+c2FiWPJ6KTAAAAZQJHTTVgncWeFdA8XIZVB+E0j6WrsxmoAAAACAAAAAEwRAIgVwbKt5iq9lRDHp7KwY/nnQqJ3jH3R0+m+SG/+zTevIICIC9WX4JBRbsWF0hWn2vl4doIrrLewuXRydeReM0j45SZAAAAaQVHSE9VTDu4bYZ6nzrd+ZTNrbIQ+oLw1BV6AAAAEgAAAAEwRQIhALFuFrkykjxVozSrD1j4csungQawdw1E5m4Crml+ka3PAiAJi6Rn4zU4abEEttbVb8mjT4YJIupfGjKVTavlVMIz6wAAAGYDR0lG/NhimFYoslQGH3qRgDW4A0DQRdMAAAASAAAAATBEAiBVYNgAskoFXQKQdlhnA0tHh34pAHx+fBaSG7a9ZCCQLwIgL0QTabsMrkwasjXDAMKVEDJaRGPTCV4d8fChV0oVQBsAAABmA0dIRDtUTm/PbI3OnYtFpP3yHJsC+f2pAAAAEgAAAAEwRAIgE9ZiOqa3stAHs3IuTC9Kkc60fOtWteMQqqcIscJ+8fICIAb6FEggf5FyOcK2hESLDs1/w3TsBqEBvW+yFAbOY/MfAAAAZwNHVE/Fu65QeBvhZpMGueAB7/V6KVewnQAAAAUAAAABMEUCIQDNjCmaFyz7O8n2f6gQtIVI8TV6hWh3CBGPpNmrd0xfJAIgI59FOdU5WZ5LoXB2+Vp7QoMJbgam/rcXFgovX4pAGOgAAABnA0daQp2ui39tN+qOXTLGw+hWptih07NjAAAAEgAAAAEwRQIhAI0xFAhWtLONOnGXkGClnbRvnSWL0DZU1dR6+jyrsiWIAiBOqZJ8rIup7zI4wUkoJD8S40LCNzbZL7TWabAV66pZGgAAAGYDR0lNrk9W8HLDTApls64+TbeX2DFDnZMAAAAIAAAAATBEAiAYPKi0o2mSzHg8e9O7H17O/2VkhHBUnd5rzdMd5wzvqAIgT9mZVSpUiV6qZJMdTojt69+RspDWZliJRzCtDdkx87gAAABnA0dNUpuNXzQC90x6YdnwnDLTyge0XBRmAAAAEgAAAAEwRQIhAKeQQNO8fIbuFzg7mveeIOyTsSiXe+D86CZR9JO95NRQAiBOKInfI7oUIiTrr1RBSGTCB9IdZFrZh9iA5o4/zgfmNwAAAGcDR1RD3jDaOcRhBHmLtao/6Lng4fNIFj8AAAASAAAAATBFAiEArl8SCqJuHasxRru56yGIBfUZ46LbpQ5eJfI3/SxW/QICIGD66gSRmL0VyEc7n2ReEWO5H7IgkK6yeFJAo+aSMQvjAAAAZwRHSVZFuo5aTGTBvkIjCRD3s5pjiPPUKXwAAAASAAAAATBEAiB2HD4iM4waa/CvHT++foWjR0LMZxVKF68I3aum+m6UfwIgAwA3keqOEksYEuDuZ+7uPJoB64jtK3fzaxcjL9KQq5cAAABnBFNWQ1Oc7GhrpvB9YTWyCRFAx5UWbvW3YQAAABIAAAABMEQCIE8N+e1Rwl7hTjXR0ml2y9SWCtQUVPEv0ZtEPdgZitS/AiAWgUWx2AsdMHz1TvvoxI5fEPocLAc/TLmogawEjh9YRAAAAGYDU1ZTfKYlRaOA59cfj1z6FLkhEAIHWTAAAAASAAAAATBEAiAQvKnO6DuK0SpIF9OqZsFi893e8UZXlN5Uh1gyxRhzGwIga3GlG8Y8CCMa8qr6p2kOaOLW2cAYl9DM11zwBSCoGCkAAABnA0dJVvZTf+DffwzAmFzwB5LMmCSec++gAAAACAAAAAEwRQIhANiY2Q/2o2eaQLswAwnXuXup47XnaNegpCoOp6Crrbe+AiA4CJlFDUbKlBryA924csJMy2FOqAjrIJ+FT9408HXhmQAAAGcDR0lYvUNKCRkdQB2jKDpVRbs1FdAzuMQAAAASAAAAATBFAiEA5GYy4x0gz8YKXlLcgSmG6gxMQCiJCpGftH0RiOXSIgICIE6MCVSD4IcO0k+ME6yLX19QnbPrVs6qZt2ht3h83IaLAAAAZwNHWlLmONw5tq2+6FJrXCI4C0tF2vRtjgAAAAYAAAABMEUCIQDSYT6yYJOWNDRGJa1tXbQ/D2nSppS61KlzJw0UWfCw9QIgXMaI9YyXpNM/OKDYFObhfqC+H8MgPXwn8uIfKzfYvW4AAABnA0dMQXHQHbjWovvqf41DRZnCN5gMI05MAAAACAAAAAEwRQIhALoIADzwhsKy817ujsUXqSbtBJtZ0eCPozbM8wn8fGGCAiAEAa0N8r+J58SYZW6PM/w4jBOV8c1UUaVtNuURSw/DxwAAAGgER0xFWAoNt074tEgMwpt9aGR3J/7rHqTsAAAAEgAAAAEwRQIhALXfoerAFh9sFz6y+iKo/TbeAmV+SVkTs3fl2vpZTqZbAiBjac532F/S49orNFEMWd3U3uDpmvqg9AEX//P7zjBhDAAAAGgER0xDSAOKaP9ow5M3PsiUAVgW4zrUG9VkAAAAEgAAAAEwRQIhAMK/18T64ULri+iw/Rbg5QUIG+2TjlGks+L6x+tSIX6TAiBwF/z+Z5kBHWgcb/pfOUEGhMkCQmu72GBYNeJj5K9GRgAAAGYDR0FUJO/muHvxv+nqLMtanQqVnHFys2QAAAAAAAAAATBEAiB81dNszdIIhO2nZ5lgLvWsIaTqm1fKG7uiEQCaU2wauQIgKV6q0Isj75NqOQYpxTi21ob/R2d14ylSxq2k5HINDTcAAABnA0dDUmMHslpmXvyZLsHBvEA8OPPd18ZhAAAABAAAAAEwRQIhAM22QWGsTB1vO7qOKeL6KxBUyOJoDMFkiffaizAT596WAiAJiEyi1S/3xFRew4k109BSQEDE1mdZDxwU08KJnO5oLwAAAGcDR0NVpOyDyJB4iNAGo33r91XuOXZvOK4AAAASAAAAATBFAiEAuYCZV+748PuX9MvZg0hzyzFZMP6G2JrhsUjd/25pmxMCIFPTwvoWATCWVTeYYbAGJjlZQdQiwczuxjNCLkzCvyv2AAAAaQVHREVGSbXoiyKbGOdI46oWocK/79/IpVYNAAAAEgAAAAEwRQIhAL30jGna+2x6yBm/avyWb5Ckrgaf2Dg8ej3j+dazPOVwAiANlaPN70zNl1Tnlq2tsiJAxy6HDDnael9bd/kOmeM7pAAAAGcDR0RDMBx1W6D8oAsZI3aP/7Pff05jrzEAAAASAAAAATBFAiEAla8PvVF7jAD4C2i8mVkn2uRBadFvnl2GGI5yJ9INFIICICBX0eA3MfVSKa1jl8wzVP6hCQwa63qWSgAAZr/CbO1lAAAAZgNHSFS+MPaE1iyfeIOnWinBYsMywNmPIwAAABIAAAABMEQCIA6cj9qK9fm9Txr33lybmq1z79g9so/d08baX2vu+blKAiA29uFSDDEfr15TRXve+NIjxpn2/YX1yJSmhquBKCMkwAAAAGcDR1JUYg+imTBGpT3x82X6P9yebHdjr5YAAAAIAAAAATBFAiEAl5tnVCCzkNROOlKLv+s7LjkwnNN6PjodCUxuIKJc/H4CIDlH4pc8R+tEBrqegDgoSFe6fx7JXRBnv1IhlUgmtxaoAAAAZwRHTE9CRfKrDKIRay4acL9eEyk5R7JdAnIAAAASAAAAATBEAiBGmYucgMGwMZZrjEPKPtFbRnZ4Tp6czqINI3QynLkaYQIgCHQ/h0OOAaCpB4K8y2DUeBZ27QR/hd7r0ATKPWQ8vUoAAABnA0dTQyKLpRQwn/3wOoGiBabQQOQp1ugMAAAAEgAAAAEwRQIhAO0PgxpFlOmJRRs3o+wU9YNFf1bIYnPsa0RTSVhwxM0TAiAuXOcl0BrKTJhEAHlteMFezji4KUCInXOxVH5IFO+kLwAAAGkFR1VTRFQyQq683PjeSRAEscmOZZXpgn9sFwAAABIAAAABMEUCIQDqbA7RR8UUaHRAvEqyDEStXp61hMSBM+sw9XHlU8kb3QIgJkgJZWXU8HSdQ69p73ciK5YO5aYbRwBO4dZQWNiu9dkAAABnA0dURoe+/B02cZDyucvptong5cpljjtxAAAACAAAAAEwRQIhAPRvyshwodpur32uGqC3DcxbEkPw+8q6C89ErJx0JdHgAiAjsieE0bDHbFOIpx+09yXPsvtqM/dafcTEiBgCh7RuCgAAAGcDR1ZFgXBQgu+fDWYPB76ACT1G2CbUiyUAAAASAAAAATBFAiEAn5ODaqcmiqtbi59a/HCZBf826WHm3Sk3bI/2/VsAmUkCIHszHrxvExyZJs8rX7VYYFNBwWih1JC1PUrGUPp9UvgBAAAAZgNHQ1DbD2kwb/j5SfJY6D9rh+5dBS0LIwAAABIAAAABMEQCIB5dzBkc/Of1wCLNdgA5SDG70ST1y5zq40CSrJ7WP0/KAiBeC33S/wperYBxC+YY8Tdeiyvg4uiOhul11VKjfV6y3AAAAGYDR0VYAygvLXg0qXNpytWPiIraGe7EarYAAAAIAAAAATBEAiAwuGA/8ofm9FX2qFtoqT2YWMPRWGAkFcQGFTF/0Axm9AIgObni6wXzZvHu8jygdeus0V5Ovl+e0iPhK3+34OKqAhAAAABnA0dCWBL81kY+ZpdM97vCT/xNQNa+RYKDAAAACAAAAAEwRQIhAJ26i2NbfVjmIJcU+Ts8AdJa0fbA2ABZxFyxh0PUgRjEAiAVDyBiGrvqdRjOTHIVSRh7vXkOb3A0PdDthh2xLuGgygAAAGYDR0xPwOZzeineegDi9gEZJOslcQbLCC8AAAASAAAAATBEAiAmNxNrpsX/O35I0t33cg0oHjmzuaIZby6D0dke+XLiAgIgFTdIehwr9NmEsYr7u7AIWQdjFDeQPYt+5JwPIqC2oyQAAABnBEdMT1gCIr4fG4QTstfXbr/J4ChcEwBpLwAAABIAAAABMEQCIGA5TMxORrum3PSA5SPh/beVq4pG0oF8JQ5y937FRnleAiA5vAeCfzjpX+bio31msRlw2B1BWGI1YPDQiuLQPmLuWQAAAGgFRy1DUkWj7iHDBqcA5oKrzf6bqmoI84IEGQAAABIAAAABMEQCICSdnevGiBkuxHtp9kDMuwaxF6sPdE34NtiNZsi/iRfAAiBvMAuucVktJgFPPhlsPiT/hxWsV8s7Y+A33d65Eag+vQAAAGcDR0xZKZlIvCylSl6BSxmEkyem2aDn3hsAAAASAAAAATBFAiEA1CPz8U+/bXirtWEslfRTa9lYUju5qC3SGzL69b02yNYCIHCN2QrBQgsu1w3VXypquCtwnuR/U7mtKEisQvyj8iiEAAAAZgNHTUKgAI9RD+nuaW5+MgyeXL9h4neR7gAAABIAAAABMEQCIDTXI3FjMe1gxQ0DePHZx4Uns4A3qMCv4xGOTc0Y2uQzAiBxKbV2G8AdsA99CHHFBjeYeeMco4+68lvDHqbXAh8dqAAAAGcER01OR8+B5v2416dDw9TDVCpTVv8ZfqHAAAAACAAAAAEwRAIgaRtroM5SBjpDhtUK1xc/mDJm/noEOuT9GCcmGPDjNvACIGhga7m7yMzzleYY9pc5/FhzO6kOd8oLVNZLno247HjZAAAAZwRHWUVOwIUSkn0SNI9mIKaYEF4bqsbs2REAAAAGAAAAATBEAiAncmWIBQdfBg7c/j2uj4mJmoT1wz+6WxWxqq4idxHQiwIgX/RiqL6jsk20D9q1qXBsFHIVNa+vf4NzVRfw9H7Z5wkAAABmA0dNVLO9SeKPj4MrjR4kYQaZHlRsMjUCAAAAEgAAAAEwRAIgTlazKhbrI2ph83s6WTM3OQL4kR3wTePWpRPySfD7CRICICnQwJ3uOfXOIrxMeHxqTtqCkr85urbyXVeoCa7Q9W4PAAAAZgNHTk9oEOd2iAwCkz1H2xufwFkI5ThrlgAAABIAAAABMEQCIHwDd5BNvwHiQL7BKRmgMuC6ABH3Aa/nBfGwgELIldGMAiBy36JRwhE/ObiE8+klThgi2oreFcxmkRx77/qNJhh59wAAAGcDR05ZJHVR8uszYuIix0Lpx4i4lX2byH4AAAASAAAAATBFAiEAlupK/JyUg6N6xmBorEsgfsDaM1Ck4r5vEkYSnPvadeECIHWk8bu98dH488iLcjGmwTJDEmlnRY2mEFYTXojG+uijAAAAawhHTlllcmMyMLH4ca6UYvGyxoJuiKeCfnb4Z1HUAAAAEgAAAAEwRAIhAPUxuhg63gFpxNaLTlAK0zDGcKZerA+nLhCcd3r1SiMrAh97T56CdEZMEmu2Vox9ypoDa7D1/CH4IXtOHzD0gUoYAAAAZwNHVFiRaIVCYlUjXaegvZBEeYbABnX57AAAABIAAAABMEUCIQCc5+gIxILLTKnOKMb8T76zJs3A9gufl3W1AQhTOcuQiwIgXf+h9K8wV9mua8IpUV+RaUd6+rc8jnT+K5yQLqqZMy0AAABoBEdPQVQ3YRsorKVnN0QWHcM3Eoz90mV/aQAAAAkAAAABMEUCIQDlmw21G1ueT7lhBwF4SLZPVEqMjSkHveTJPlx4ylgSswIgH+bneq63obVT8HQ3XT/xdOOWqBSqZerOefbyHLvm2XAAAABpBUJMQU5LQaPbo9Z35XNja6aRpw/y1gbClmYAAAASAAAAATBFAiEA9W6mNlCMtb0gTsilIvPgMklerIK5AOQjKNXG2diYr1sCIHeXb/pmwUaDVo6IQ8NyHs7FNNZLDyn5cABbtXVnOwolAAAAZwRHT0NP5an31zioOek+YRub+hklFULHJCcAAAASAAAAATBEAiB/zcGQHEiUrFlJcxiFPJWf6WLMuhoRZTdwVg4nhaFrKQIgEsm/t2Z+7Iv3h82QAb0Vmn+6O9VPRzxKRqEZWRvwTlUAAABoBEdPREx/UJRlw4tmvezsLP3IQuEYCcyDVwAAABIAAAABMEUCIQD5QBwuE9acLX5TbdSpBpNMkCKRV6ZxXMLb1KA8JJ9NTQIgLfrHQDCEFRBuzRiqPMZm2+vpQwVficZRWY44ut5QwfUAAABoBEdPRFPMyMtSKbCsgGnFH9WDZ/0eYir9lwAAABIAAAABMEUCIQCLPBBI7G35egJmOxkO7mp70AH1/5wKg5/UXGQ/nRs07QIgM+CxQNcG1YY7Kw6a8+oaryGXURYH8lR6Qiut9gj/+QgAAABnBEdPR0+aludnv8zo6ANwvgCCHtW6KD1KFwAAABIAAAABMEQCIB23aCXo9sgQIoy2Kt/ILrMWNoBWDOq8vSGnGZkWGjkGAiAXR9sNtemvqlEDLo3sotDPFsKnnDVU3GPChylQS/tU4AAAAGcDR09MCD1B1t0h7pOPDAVcpPsSJo3w76wAAAAEAAAAATBFAiEA6BRxo9hZQD9YEPWyE8A4aI+KwqYd901ddzdHqct0pt8CIDOF4UhIR4Vlc8PZfa9duzCuYbdnjlL6xIW1wR749LUxAAAAZwNHT0kvNN09RoVSd+7nmh1yTCJJ93AFSwAAABIAAAABMEUCIQCtupiACfQQ7wT3eBsbxgg4IXnj+kDGf15vPuTMnre92wIgaZd/qQ0GGQie2zIa7lbCPUDFMjW2ftuSGaPGeNqb9FYAAABmA1hHR/a2qg7w9e3CwcXZJUd/l+r2YwPnAAAACAAAAAEwRAIgB2i8dj5hUBcP6TBJs41qJWPTPZ2xXFnVzumgg0wHCFYCICrwBGaOjPCmYlS2JTsiTXzTu8nWaShSUwyMK46CqXkuAAAAZwRHT0tVpk3+jYaWMVHmSWvuUT42b25C7XkAAAAJAAAAATBEAiAe0auoKDijK615bgj/PR0V1csI60+noLMwr3wSwtCuCwIgBPzHnt6uhw/oI8a/zBYOK0ES5SX4GOWZcia9XaUNWE0AAABmA0dNQ6YnI1m8N/Ya85gHG2XIk0rKdE1TAAAAEgAAAAEwRAIgKz9myEVUNtI7WTqNG92GPCMUEuvngDh0Q8u+s6F4tkcCIGutMGfOE5lxloowQFF52W6Lxhj9zytaMCmPDYd9TFvfAAAAZwRHT0xE4IG3HtCY++EQjqSOI1t08SInLmgAAAAIAAAAATBEAiBbKfs1opP4GQVHV9nwUPZitVyH05xMOVTZBCEek8cx9gIgPb9kk5Gwv3PpNHZYUL/6XMGez2r9OBy/zWQ6MYJP+uYAAABnA0dDUjf2+OtAneuf6vAywQmnIxn2ZcedAAAAEgAAAAEwRQIhAJToHtfAx8vuB6+1h5QQ7Zx5Lsrau2jfkJIvDQTUSiBtAiAvEG3MAmHvU+wEAC7XDoKkYT1QPFZ9bNHPNf5wJ0bDKwAAAGcDTkdMJlOJEgT0Y/sqL09BJWSxnpVRZq4AAAASAAAAATBFAiEA/gjykIYwMidbHlGtFInR7doPP8Y1sFLkhLi3AxJ3lkACIFMlX5A18BluyGUQNuSFuflVS+YvRqF9eZo1/H5QmFq3AAAAZwNHTU16+JyKBnGScaluYuKQ6p7Rkuc/wQAAABIAAAABMEUCIQDBIOmQyD8vqws+gSm3ErD03mdykNlcNE5M4cMeFP+QkQIgPGmQM5lf0F/MAxJONLIxb/cK4YMEZgw4VXUk9HchuQkAAABoBEdMRE7+600PVGOxsENRgjwka9uExDIMwgAAABIAAAABMEUCIQCMwlPxsrc75OaLvt6WD07LrN6ESLPpU6xxwivMNff6DgIgE01ojqZ6ruSO3tmTUTmOUQ1h639SUzQcUiJu21ZyPokAAABmA0FVUxcfnPwTbysqqhSPzGtmCiApurBIAAAABAAAAAEwRAIgHxtys1ysD4LIhtGjP2lTYjyn4navaD7KFVvUt2QAnXYCIEFaqUL0Fg8o/CI62p7HMgALZEWm+i9Cxlisn8JZCNBQAAAAZwVYQVV0X0kioBXEQH+HQysXm7IJ4SVDLkoqAAAABgAAAAEwQwIffHJ7QCbqMlotqOaHF5He3Y5Hv5vCOwIhRM7QQZ8PKwIgTXS2gZ0yLfn1b/7K4vzteQ8Ywo1m7O0e7PreJ1TxZDIAAABmA0dCSz5SLRRIFL1hScHz4MbNGdCUE3KsAAAAEgAAAAEwRAIgB2vBo9j30W6YtfeyD58lbXNQGs44gb5qt0kOLT6UizgCIGAKj0RzRg1ccyKwX1Uh9yVPR1PyyI29iSn0HdXnv6xIAAAAaARHT0xEQNH2O10gSOZ+m+2xtMLxqftLaBcAAAASAAAAATBFAiEA+4grqvlbTCIAeTf+PoUnxPsuS3Hvex+6nH5pXQ9ss7oCIAjm9mZ5oCo854KkYxLbtDmo8F+CqTRChXrI04LgQW+DAAAAaQVHT0xEUs/k8Dw6+7mFeyn8cGGAvwBEkA1ZAAAACAAAAAEwRQIhAPf6wu1/3MeNa2owoDXogpgdYwgXY94owieP2KjFcQnDAiB1oE7UTI0Lyc3n419y4SuK2t0D2w25Wk3wZmfLpfQTmwAAAGgER09MRDTWoPXC9dAIIUH+c9k7ndAMp84RAAAAEgAAAAEwRQIhAMmHImoLh3CWa00mYPhkyZ9RrgEVlD7/9CduAmYfMheOAiAdrklLJPxK5ETgQVXVEWAUD2eDZX3tl+Qa9OQv6viI1gAAAGcDR1JUuDzY05Rit2G7AJJDfTizeBLdgKIAAAASAAAAATBFAiEA/zVGXQBCWenPh7ZfdxPKOE80hCASAa94gJhdFElV798CIF5bdURCMy6OwJys2gHaHrtHAqi6dTfSLDUyCr9I8Gt5AAAAZwRHTlRPezKWGY+KVI7fib2xaGTajze32csAAAASAAAAATBEAiB5qv8OOok+0tlojvLfrzsnQOUBDEwJy4Q/W4rl3ZfpyQIgKJQMK3DvXw5y4DsOwLft6DonUQnI1pYK8kqlPMAznRQAAABoBEdMRFIXLyBAKvyAfIpVZrzu0Agxrbk4ygAAABIAAAABMEUCIQChYriHfM3RpUplYG0vmsPtNddOkrr2GVYEtAOLNCgDIAIgQexzJ8aqIrERkY4m0yWVpJF6faAl3mWmRa/AH6m6nwUAAABoBEdMRFjGMRIBVWIe5iWDXsgQuYhc3XZM1gAAAAgAAAABMEUCIQDyA+0qMl43wingKkGF9OCE8a9Y/arz3R9nMPqYHpy8bgIgQoGXT8zZRP8cHPcKr7o4627rF/YKQuoRLMyS92tCpXsAAABpBSRHT0xE8bh2Kn+owkTjb3I07fQM+uJDlOMAAAASAAAAATBFAiEA59srULnL47J7Xx005dkGFC9FZb1honnspIBIIO9imQkCIDqgAR0/S4wt2XHcHTiIfxl4jyLPlzVx0Rbhn1PLO0ugAAAAZgNHRknas5bM89hM8tB8RFThDIpvWwCNKwAAABIAAAABMEQCIEVjC7qNcEHrUq16wyCkLuvchSFPXFe0t1j1j8sfV5EpAiANIWLmvs192JzYQT2vITSNH0ZfzMg54IO4g4fYiCFAkgAAAGgER0ZVTpGdOjY3drHO7JNSYQyC36+A7cMtAAAAEgAAAAEwRQIhAOZ2PKvwSsozR/W6gne0qoexDRLtc99hIKHC6Ln5jc7jAiBuch5TKY8c714soE5o7ajm6ZEF+AypMc8FAzCV1bcAawAAAGgETU5UUIPO6eCGp35JLuC7k8KwQ3rW/ezMAAAAEgAAAAEwRQIhAMYOjxSHq1uwI9Um9wQb6dzXJgvrOjCnkAuyTb+n1L0GAiAzbedGPAkRiQ75ijDCGc1BQigu3Zh5Sz+VQgUqZWsuRgAAAGcDR1BPStegVhkfTJUZ+s1tdfqUyiYAOs4AAAASAAAAATBFAiEAvV6rj+rhT9nQVioefAsKknSEvG7yfhWx1lKmus7KTI8CIFRocE5lr+V9mCv/r3Im5ez3kmzg1NrEP6SFyolAh7GkAAAAaAVHT0xEWOq0MZPPBiMHPKidubcSeWNW+nQUAAAAEgAAAAEwRAIgQ/rS/QLXqdcHIiBwXUSEiQdEkjbJg4EoUVeD0CjRArMCIGsNtMCAuG0T1h6GGL35JwHItTxVMAnmhxi8tU3YgAEQAAAAZgNHTlSnRHZEMRmpQt5JhZD+HyRU19SsDQAAABIAAAABMEQCIEFGB0R3RUAQc5Mm82CmtaYAxytZQ9PrQPEqF3B4PaSAAiA9QydkpKLNmhi+0l8KIh8/ZYs/RoM/pgPu7QPehhHSkgAAAGcDR0xNfdnFy6BeFRyJX94c81XJodXaZCkAAAASAAAAATBFAiEAnJd5xO9xbs9CexnlV0ct9i+w5IGC7BdgiVQ6fjL/BOkCIEiUq54qLbMhcVJZpxKryDi2RCtv1UjLIUWosonync3vAAAAaQVHT0xGQwIMcQZG4jq4aNvluIAEiSeX/k77AAAAEgAAAAEwRQIhAP+DTl9zk1hjcJEqb8JX8Pga+0GgYwjaKoUhlxRIQ9xdAiAjUYzArnFsegIlhld4Pg905/qr4HqbJOkA18oX23MRLgAAAGYDR09GSI4Dafm8XEDAAup8H+T9AaGYgBwAAAASAAAAATBEAiApSA1v5Fkr3gvtR1pKkxOQsQifLvVuc4i141tCL6JwzgIgFNgdQK9CXaRpIHGCyvH3VbPEWpbanwGTUdkdYxM+ySoAAABoBEdPTEaZZlK2xcSxFUslUV2yG3u63UDd+gAAABIAAAABMEUCIQCLDe5+XbBE0cuCutO3j23i9J9Y+9EQxbh8AoSmUPUQwQIgC/1up+uFqlTLeLHYjdBzTaPUChnqTH5joFJBeyuoy9kAAABnA0dPTbjGrSWGu3HVGMKq9RDv6R+CAi9YAAAAEgAAAAEwRQIhAOLxK6bRfy/2HXvJYwMYhUjNVz6nQc+JzH7Wfvp0Jt8AAiBZNfYDPwIILKu6CYK8VWWjJm/OtfqmTPazZGOETkLdOAAAAGYDR01UfdxSxN4w6UvjpqCislmyhQ9CGYkAAAASAAAAATBEAiBSa86rOJqfYWedVHiS5iPvMfzW0gy6OTF4gx0CcuY+QgIgXuxyBnIGOMlUA9NgsOh5mU2lAgUSsWEMsoy0bNFJxQ4AAABnA0dPTdMUGs0/XcUyB3OW/zmEtnA1I09BAAAAAAAAAAEwRQIhAONp92HLihBFe+jPnvxUlZMKowllCDAfvHgOKL6UhMMwAiAZVYDXmeDUF9QEompb9sdlp9Dyt+oulWZWIfTEtIbr9QAAAGcER09NMkh4NIbd1/qF7KawxK6JILwl37zXAAAAAAAAAAEwRAIgfVLdjx5Gon0v8lmuvMtnpR0Y/lhgC5XhZ5nt/dTMqxgCIFkr0MXSm8Ar1xp9R3IXr0H+DHrYZGLsdCzc/yBEs7BqAAAAaAV1R09ORcnfDtLp70NXtR2xcf8IKX0Qh1KAAAAAEgAAAAEwRAIgWJA5kMxearkDM7bICUrXj7wv9wmfPCDWKn1b1yMCX2ECIDFyuxJmJuTNhdnB883lIIZWT9C/ZEknMVeFefWBwBbbAAAAZwRHT09OsDAtWSN+YQTD8NFFmWMC8ER5fKUAAAAJAAAAATBEAiBhTQTGg5p7NHeFUUe+WwS1saux/JTQ63AUi9KKGyTeGwIgMDuV7LgNv8trwczd33XHkw7Nct7CZk1VfDp7OynGgH4AAABoBU9HT0RTEFGgFOSz8r0I5aflJSLw9xYoFisAAAASAAAAATBEAiAOyr7CIdpPkCJvyWT065px4GOaxCjjXO/FaMNAd2DWqAIgGHMtg0BIs+y+ffq43SkJsohW5bN+B1rYQIcoywcMPeEAAABnA0dPVEI7X2KzKNDW1Ehw9O7jFr76Cy31AAAAEgAAAAEwRQIhAOJdifL/uSwveMV0qFuACbmkE9xhDit82nV3Nkw6PTBHAiBJTOnoyky1VzYuvC9LUZ6LbUKSLZdVDNsimh8mIbtCkAAAAGYDR09UYT+ipubapwxlkGDoa6FEPSZ5ydcAAAASAAAAATBEAiAWBdpFKoQaY1NNBxiPCPUMFBrctYAci0/ROTzxBSy28QIgLwwp372GlsKu9bvbc7v4ET4A8P8njO8gXtie3McRxvwAAABmA0dVTU9fqPLRLl63gPYILdZWxWXEjg8kAAAAEgAAAAEwRAIgHjUXwT3djegekcqGMEuE8lkhS5nbpZrsi0d9ryk67OkCIA36YQq/4MK/CTpzmEt/jTIWUiUf56yLhKkX+2KjZbR9AAAAaARnT0hNCrhwRvuzQdBY8Xy8TBEz8logpS8AAAASAAAAATBFAiEAn+HasPzCDLrS2zeZICBpA/Tp0vnq3XawR9ddLmiEugYCICNtGxtleEoE8MByanEbkieorWMmBr3yCHi58uCHtGSRAAAAZwNNRFRN/RSLUy6TSiom6mVonPYmh1PhMAAAABIAAAABMEUCIQDVADXXpJggRoyHCoDBzcDpkGAtS1oNEGnDHc3neCbHsQIgUlIkO5nzh0M2gqP2HSqI9UpanSjR943MljoWzbAGyBkAAABoBEdEQU9RXX6ddeK3bbYPigUc2JDrojKGvAAAABIAAAABMEUCIQCxOof/Ta1e6NEFZgvuxdjP2MYhzxY3kHJH9xeVXjSDjwIgVTjKEaeOosGfdf8yuyWj+2AG4f0qUt1mKkwPxZwFB14AAABoBEdPVknuqkCyii0bCwj2+Xux3Ut1MWxhBwAAABIAAAABMEUCIQC+usARRcWD0qTWHuKgNdoXkaDMJ5WwbhNNi+MNW88t6AIgbtoHNWI+uL/SrknWM53EQVRG6hGS+Mr9aXdz3mctzEwAAABoBEdNQVSxPeCUzFzubEzAo3N78CkBZtnKXQAAABIAAAABMEUCIQDkqASDyj6Q1oCzqeBQiSDOo4MhC0Zc3mkj9ImKtXeKfwIgfGGsVzxzGwXiWLwkINDgUbrVdEefiWpLepDnyJdh9l8AAABoBEFSVEdP0LQtFK1//RjS0dfqa0tF89VkYwAAABIAAAABMEUCIQDOfcCshDyF1gR11QQofuL4sy1LWy9G1/2QzcsFjIfwOgIgHx8V3Gl73OyKlBFehmSlSkmlp8cCGQ1WSWNQSlDWohkAAABnA0dCVMvUkYI0ZCHTtBCwSusXiTRtps5DAAAAEgAAAAEwRQIhAPNym42wkbbE+udU0Zgo6Nz0axVfuYMYiVuxqbsps5w/AiAMKe8wtv77YLGDyhuaHz/gQR4dler5tf0lACaKJAygowAAAGgER1NNVHcTvNpRBkJP9rCuHn+gXD9K4+ywAAAACAAAAAEwRQIhAPfrFTqDVJpZp+5ZFtA6o0WihJkSptLS5ryxyQjqepPZAiB9IA4/FoNPawVbndTaBO7HV7H1d6hdnc6Oikwgyw2LRgAAAGgFR1JBSU5lif4ScaDyk0Z5bGuvDN9hniXljgAAABIAAAABMEQCIH9aHjPSvFoFtTdULx+DLlTK5y8cG9M02JVvD7Ti/OkuAiBjSepPWGxYgkLyMLTstrxiHwBJ4jUToaVGCHN4Rh2dzgAAAGcDRllZbzkpe8DDhjVcd9o6AnXIZ7IbJFQAAAAIAAAAATBFAiEA4jKVcY/Ui8bxZAgWC2rZTG+RQHeP2KRVmxQv/3Ekj4ECIC+5dcfBoz1dGF2Iz4fC22smvbdng7/9L3Ss4PylhwJ4AAAAZwRHUkFQyNKrKm/evCVDLlSUHLhbVbnxUtsAAAASAAAAATBEAiAzJnU5a189MFh+V6pCvJjzVrI5W5wFOCdx42SPrd6/OwIgDDFnY9V/9cU/MoyapxRQsTCx4d6RipwnBmBMX1jR/OkAAABoBUdSUEZUZLmGIRwMxnUUP4lcQ3t5w8rfNkoAAAAIAAAAATBEAiAKpTZhJhlhqKTQWKekTMSsFBMPmFrTRKai+UKwmzBQnAIgRDaD9chW7HJCCLnCYXHu0uOzKDAuMIGKAB9duwAQrtsAAABnA0dSVMlE6QxkssB2YqKSvmJEvfBc2kSnAAAAEgAAAAEwRQIhAJqaHe0mZqKWBmKFLCiegzqfE9Z37bLVkAif4RG7CFjGAiBs4KUEbtcVEcvsKKGWCktnSd12cloffF1A5Wv7XABn1wAAAGYDR0xRn5yOw1NMPOFvkoOBNyv7+/ufTSQAAAASAAAAATBEAiBkjBBOsqHOSl5XsMVatbHByo01rLQHIk487JvgM5Do0AIgHTZNpt/7t/HqMxHgxFgX6iJNsQoTFUQy0VNjFkBByRcAAABoBEdUT04B4OLmH1VOyq7AzJM+c5rZDySobQAAABIAAAABMEUCIQDiRXcmZSeFY730OUqnEVaxG1MNSTK1/k6oaSrz5wn5vAIgTYHRDW7PdEkO8XCODAoR80GPFbdlUliaCLmzWI86wIkAAABnA0dTVDr6GQKx+KgCq8GOWtmC0bzTSv4iAAAAEgAAAAEwRQIhAI2MHfuH+D80t7I1RPw8G/3sXrhjEYqwHKBFB65uhis3AiABUZhqWFyg5zPfbgdstO3I6gEZJYSpP1W6g0He5V+xYQAAAGgFUkVTRVRGmP+KeVABkyewIB0sFzGuHJyNsgAAAAkAAAABMEQCIAiHnuFTYG/s0ZCWVk/BICs6q6ZGvblYH2m0WoUGpqX2AiBuAQPAtL+iiFOUqDcNCRovLIEMPaHWmKvk29HP62u9rgAAAGkFR1JFRU6yCJpwaYYcjZDI2jqsq46RiMDFMQAAAAgAAAABMEUCIQDIE/SS5NSW2KaKB6fByDCl1P4rX2bTqlHpL9rIi2UetQIgDdCgwOrK2bIUSf0aEvdcZ6huaWPuc/W/8qyZkWBazDkAAABmAkdMcPrb4fLMy6+YrIj9z5SgUJpI5G0AAAAIAAAAATBFAiEA5VGSrsywfTIxA99yGF2UJ7BNQTlrpycDnwTz8bFvjdICIDEp82S1AHkMjWa83BJrJlFd2geQVONzQ7vb+PR7jVajAAAAagdHcmVlbk1UMBm/Ki74BAwkLJpMXEvUyBZ4sqEAAAAIAAAAATBEAiBeiwlJZxJBdwxH//5S76tG3fsokn05mRPRVB+ZkDVwngIgPmlA5YZOOcRTJlKYTipIJiI4iE6bkQn0e4TaXdW3/DQAAABoBEdSRVTgoWQ130k70XpYyy7lhnX16gaVFwAAABIAAAABMEUCIQDq/fLvKvHXzxx15vUInD4n1PwIt9xcdASL5EyRuDO62wIgQj/AOSWQWewAZCIrdlMfDFR85SDUKwb0GSTof+g+qCEAAABnBEdSTUS0RCCMsFFsFQF4/PmlJgS8BKGs6gAAABIAAAABMEQCIESD3h3WUIWAqVe8rY/fk8eGGvhAVbd/CYbCmsk7kvRVAiA6EEccn2XOurcn0hhwImxIT/to9JB6URaNLgHZy+mQawAAAGYDR01U48QIvVPDHAhaF0avQBpAQpVP90AAAAAIAAAAATBEAiAPyRr3b4DcGKuRjI6awzkbTivJM8qcby3fBQ3GT19lvQIgVTsyzTEQ+mLYhTjmRibCqFU6yDDp7zHuzXfLRA7EqDIAAABnBEdSRVmbLYGhrjbo5moIdQU0KYFvC2uCngAAAAkAAAABMEQCIGIwPbSo0RrILDZqssQavYapVAn1sA2E7YOxizYpK4QgAiBTOre4wagIMQs3nUQgGndLj0aT0IvbDMGcLy920b7IbQAAAGUCR0NyDCyT9fmmuCIm6ECVVYsQ85mw+gAAABIAAAABMEQCIAkF+vNVU14F4p6ISKIiYjteaR77FfV6IAbiFAwMgEf2AiBsZGPwKTwXwaZ4IsYYoYIIGcQKjiUePvbtZ/nvl5bowAAAAGgER1JJRBKxnT4szBTaBPrjPmNlLORps/L9AAAADAAAAAEwRQIhAIzIWBRZvsfpslGfshXkj++Clw1stCEz13iBTWqPvucAAiBT/69+b2iPkyA8WsFbM9Pm7A4y1QLizHmlhHecR54o5wAAAGgEWk9ORcHZtaB3bXyLmLioOOWg3RvF/dU8AAAAEgAAAAEwRQIhAMGSPWuFm6suzcDcMoEYzRItBcAoNWwqyJzmqj3g1uS1AiBM0Pc7DTuSBT5kiEdhZXi2eJvHvjIRNNtLquPLsMfFrQAAAGgER1JJR2GKy5YBy1QkT1eA8JU22wfSx6z0AAAAAgAAAAEwRQIhAIrjiM8dLFxekwykbrbMrFhoYGI9mX46iOfNTUnWZ2jeAiBe1UJF1ba62XIHciW8GQTBbYMsVWmCGs6hn2gpUgB6wAAAAGgFR1JJTkTz3qSGkPPo9/Z2z7J5glTTIluThgAAAAkAAAABMEQCIHmaktwfKfI9EKZsMFn/oADprB6hzwG4ST2b6LQfQcmeAiAxVlC8oBZ7rrwAQBndS9pZNYI1XOkS45dX3SLj2uZAUQAAAGUCR1LOWTopkFlR6PxXm8CS7Kcld9pXXAAAAAYAAAABMEQCIEIWRJwlN+0hCKyK4dAhLoXbrQxFdrqcWQE+7vXgkSwdAiBAMdX0kJsobz3Ce7JDsB3VKx5Z2jMgh1+lJnPZXUMUOQAAAGgER1JPT8Fxlb3knXDO/Pip8u4XWf/Ce/CxAAAAEgAAAAEwRQIhAKOPOvUTcgkg9sO2miOIhQS4feuMqvLNcLTEH5BI7MTAAiAqx3k8TDD1w8FqZ4Kt8gRvW+qSyuT0OKKMBi/zU4q5wAAAAGYDR3Z5Mb4wIXmJdmIVZy6I7USZE+Bb8PUAAAASAAAAATBEAiAlKSaLGdq3XePuG7j+MsjwV66P+MjZFIxMhO2Cg9LcjwIgPFvT2sJr6wlqSs8SzbBRtE0DomwKKYkcLSyLH6rGvssAAABnA0dWUoT6j1LkN6wEEH7BdodksrOSh8s+AAAAEgAAAAEwRQIhAMFEHduhqMcVNISj9Atmte2MguZALwg9nNZNt3F264CMAiAom7/aQ86PIB/+eusSNXsRmACuquJa9gHYLEXlc/wPDwAAAGcER1JPVwqanOYA0Iv5t29J+k57OKZ+vrHmAAAACAAAAAEwRAIgFKhpsFxHcAst0ACzaOWcV54kCloCzB8Awl3qE85mHkQCIEi+9fDKXLwHDWpYv/1GPbXA/xxD7zsezGSidAJrTuLnAAAAZgNHUk8J5kwrYaXxaQ7m++2br11pkPjf0AAAABIAAAABMEQCIHGT53kLcVA8IoJh5Kq+thkjga1wj0izdCI0+fIWgzW6AiAW3obT08eDrknF/rEcJxJvuKk+VF7hw1XAUDdzDmPV+wAAAGgER1JQTBXkEy3Nky6JkOeU0TAAEaRygZy9AAAAEgAAAAEwRQIhAKlfQuC3xsaybNmyzuz/hDwyVRiBxz+xS6rvRnSCGeeEAiAn5FkKLljOXKDiBXMcKg4QenNyCkPhpjA48uWPYrjtbQAAAGkGR1JVTVBZk7L/+BT8rv+wFAboC07NicpqAhsAAAAJAAAAATBEAiBG5OquRKZ3V0LTCtOFgGXVhRY1G/D4fOJ38yKADr215gIgMMoIPJuBShuFuN0T0Lvn681Dk2nYzmIKmzIK3QHROpMAAABpBkdQVU5LU7JaYJC4VoEzD8HgtjCF1jfhlNhZAAAACQAAAAEwRAIgcCDdC6Md0jvKR0rDF+wCYgX4/50LQhT5lpqVCizi/dgCIAvhDbwm19dSpT04DurKUAoWI8P4vcbafgaxQykmI13BAAAAZgNHU0XlMEQfT3O9ttwvpa98P8X9VR7IOAAAAAQAAAABMEQCIBxV3uoRcFABy3aIJFOWdz9G2soDv9ZEBMi0TscCD9yiAiBpyKL2m/V+EnSrnyfg2Rimt95MzekUR2fRdYxLr6c4pQAAAGcDR1RTlRoQcKw5hR3MB7MCIwpo+BkppfEAAAAIAAAAATBFAiEAveQOpJUjkS6v/ZEP+lVIr6GuSKsVBGammKoW5l8Ql8ECIBhaDiyU6ZjNLBAvK6tBTRDd7KptbA/zNZ66VxNMR5YkAAAAaARHVENftwg114Iuu5QmtWVD45GEbBB70ywAAAASAAAAATBFAiEA5DUAzZu8xcu9kTYoYUP6QK6xosVRIT2BmwXU9gjedyUCIDwIIvnBRzTglD4ZJI7sYxMcwjLA5VFIhTRbEEY2x7SpAAAAZgNHVEPhOP2kQfwxs2FxEiOXqKEdbNLEeQAAAAAAAAABMEQCIEdiYzgtVUjz21rmxZf4yIc3B23GKCjmzXz/BSzbErHFAiBWh4ImyYWPn3xhXkbTrd4pQo88EWmzZSReStT/kw1p8QAAAGgER1RLVAJautnlGFFv2q+9zblwGzf7fvD6AAAAAAAAAAEwRQIhAKQOUyNlW9SgKRpNKRS+PtmNSgcjsGMDWYTuPBqgk9TkAiBIMYMXzdFOdWIvsY0Q0EHEhcjNqk4Q1F3uN0cB2FOzXQAAAGgER0VUSDgCwhgiE5ACW86rutXYxZ9A63S4AAAAEgAAAAEwRQIhALDFeJJfnaJ6pk37Qps0B2gAoJ9w4Mwjhl4JNcPOld6rAiAvFgmmwjiNbuQeWkG0JjBQfq3ur+HiRGX2kxtXbOg0hwAAAGgFR0VUSF+a0Dw0qrYEqeD95B2/jjg+EcQWxAAAABIAAAABMEQCIAb/Z4ZjA5vzuRUggigsXxs3acMokoTfLD56DP5jB9C3AiB825bcDq8l9MgRwmjEFOBC9cslBN/V9MmUonn+OgY8mAAAAGgFR1VFU1O9z79cTZGrwLyXCccobQAGPA5vIgAAAAIAAAABMEQCIH6R4C+gAQI8xVbjTJ/AJLU1hJEuP2jU1/bhyLtQeAV+AiAOD/Ag23BtacPHr10ZdWdEbZXJ8V9gFrluC+Qoi57ciwAAAGcDR0RSh01Mm5gPGhPdRMvNuRLiTvBnHtAAAAASAAAAATBFAiEA6hUqaWkLhJ2syEbKPYVlcW2Btp+x4MQo10upTSPd+4ACID1512dSMokjVEKaevsI5cUPCNjlxECDaWCnK3VRxmglAAAAZwNHT0eat7t/3GD0NX7P70OYaBiio1acYgAAABIAAAABMEUCIQCf7qPxdPW9OcV7hve9FNGG4hNuTlJd4NiDvP2zW3zyhQIgBF1Gw2AteCqXnXL0hn2WQCuWm0CxolT0k5VAboaDui4AAABmAkdGqu+IzqAUdRJVIuEXv+Rc8yBE4jgAAAASAAAAATBFAiEAr5iQ9hBCzbb00vdz8xW8LzjFmwR8wMA1WXPsXDCwvsUCIE8MjEjRtu6kA6iL7uJGnWoM5WEui54n+8QgKzxoR44hAAAAZwRHVUxEmEc0Xei2FMlWFGu+pUkzbZyNJrYAAAAIAAAAATBEAiAUztoFBWqRSSvV8orcupLDt6xXIptDmkzv5f45QHW3qAIgSdfgl/mEMl9+Jqz4qBBVal8wXwykRVvSNkTXyQDjU8kAAABpBkdVTlRIWTaEtYHbH5S3Ie4AImJDKf6xarZTAAAAEgAAAAEwRAIgDtXZmWJuipaNT4q0I7pDv7jECvk9hkp43VLrVCTlw5ECIB6Hn7foZ/KqgtZNySTicce9xFOTELcAuUqo12BsKCRnAAAAZwNHVVD3sJgpj3xp/BRhC/cdXgLGB5KJTAAAAAMAAAABMEUCIQCaLbhCNECQfpOAxcUbmMSSqoIPj3tGCFHI1Va5pdGqOAIgPbasL/8Spl23KXga701yzqCgzZseUgaiqjnXGev6rMkAAABoBEdVU1Pa5vaNo7q2hmdCp/QFA2b2rEh2DQAAABIAAAABMEUCIQCRfJRtZJvFy+gaX3KMg2ceXlrMP5smaGpdXg7A3nGgmwIgMMVuPfeyPczqC7c71dpv/u+/m17BNUZztAgYaQt3HQcAAABnA0dDR/3kPNkffxJ9u7wmM5RRlmkpY5bbAAAAEgAAAAEwRQIhAOJ2aqFKi1YHzIsaAgGC0pCusXS7vPSme+jkNtE83OdsAiBhYUGSeiiFTR7I+lsPht8Wdct9iezSO7KEf0EEd9tNGQAAAGcDR1hDWMowZcDyTHyWrujWBWtbXez5wvgAAAAKAAAAATBFAiEA6BCZxmLGMcRse4zYFEvgli2Gvdlr3fgWko2lPuvjhxECIB3SV8VCRewBMX/9ZkY/u0pBYlDTBTtciQGOceCNwVB1AAAAZwNIM1iF66VXwGw0g5X9SeNdhg9YpPfJWgAAABIAAAABMEUCIQDnbgiEWUrSDol1N2XVUr0ezwvFMqn7TMFsvbwmJOXUnAIgdNPRFNAsu6zXruj4Apllklgp6rcqhdfx8PrAaoVZINIAAABmA0hCVArOMvboesFFelOF+OsCCPNyY7QVAAAACgAAAAEwRAIgEz72qpt2BPDq25nF6x6v1k0g7aO8Dma28CJhdAp7IMgCIB2Jb37tj3kIW3CRylTnjzI7gTeEw9K8tz4GZAVzYg2iAAAAZwNIQUNDVn63hjilW75R6fn7Wy160fElqgAAAAQAAAABMEUCIQDLpjhr/GwmGqtuiBF0G8DCCd8stI+mJt41cyo+Tp5ojwIgSDBnhUwvBbQCU87DE0JbPOv2Kb4tIF9RhkUDFtzRNAQAAABqB0hBQ0hJS0/MrDZCPe9sGe5rVnkUTil24wnKRQAAABIAAAABMEQCIGtxhrRS1CG446UPrGo20jY/eOlXLqeisYg57hovi2qkAiA6Zkoc0ETpxewcDj5IDcpoBV8dkzM77gN6HjjmLFw6sgAAAGcDSEtOnmsrEVQvK8UvMCkHes436P2DjX8AAAAIAAAAATBFAiEAr9NKfP+z+xqJV065N/zn+yb6uFsV9VLZe9qsyLyKnbsCIHYO0zFLKQdM6QBKRq27rI/cvA4cMTGkL9KXPpNvdlb7AAAAZwNIQUkF+4Z3X9XBYpDx6Dj1yqpzQr2aYwAAAAgAAAABMEUCIQDspkYpT5p/fylXkY7/YwxaGWkXG865QNMydNanpuzYTwIgIcoUEhNC2O7B69D7sopywlgLop2d/3l/WQs6Z9W6o04AAABoBEhBS0n5DH9m6sfiEwv2d9aaJQshNs9mlwAAABIAAAABMEUCIQCNxg6gvyWQTCqwroZ4uBtihgnM0yit3nlNaSiD4OlHpAIgeDc8QBanMT2vgd5Js/62weA9l0JobftS6jwppT4iOpUAAABoBUhBS0tBDinlq7tf2I4ostNVd05zvUfeO80AAAASAAAAATBEAiAgl40TshRD+N7pJoaYNQhJGBYoWEQe7n6Jn5LPq7pbJQIgcpOsDQNGHsLpfG6qufM45/dmRtFEiQgf/wpDQh8Zyg4AAABmA0hMQ1jGntbNaIfAIl0fzOzAVRJ4Q8abAAAACQAAAAEwRAIgaLEdWzNh/+DYqAExkzTNq9FemfHlTj8MmUp50ySQQF0CIHmlKc5Rh2t7NhZ/bAwG19HuMxX9/TKdj1s4YgBZvPnLAAAAaARQSVpBNQyjPix1JpoiDHXTN+m5qxd/omkAAAASAAAAATBFAiEA9ZT32QHQ8UXynQWqTQwkiexe69IcDeyEFux2wN8iICACIGSr63gGZ2Oxnv92o+YDx20+T6lNZHaZUW1+oopH2PL5AAAAaARIQUxWnnyyNuQ8S9BC/kY99qF11Eee4YYAAAASAAAAATBFAiEAzQKFiqIQ7R9Onk8JPf9GOVIX3kwF1NlgY8fRXg4xG8kCIDXELhM3LSKpOInvAPHR2Abh1ngGi+a1mGYTtW4LtmpmAAAAZwRIQU5VcuU5Dtt3J+PU40NkUdra/2ddvMAAAAAMAAAAATBEAiBb4dEqBgdE65OKDbeS+TwsL7lTTjWqAal7APH55h/MAAIgBxNGpGrPEKmJImk2XN89NFBcbciYljSskwNWKzK8skEAAABoBEhOWk8jncAqKKB3RzhGPgYkVUSnJ0XVxQAAAAkAAAABMEUCIQD0hfrVT4sTrEZzL2ARFYaE1tkiSxgx2kaWJMeKap0BYQIgYTxWmunvPe1CBP39ruOEyRdTdxmyZyM4XSDBozr5p2IAAABoBEhBUEnZwtMZzX5hdzNrCpyTwhy0jYT7VAAAABIAAAABMEUCIQDuU8CSy/vhEkzUJD8lVJ7hJgw16P1wtroSUkHI4GRYjQIgK49wA1fiV6Fj3ED8Nr4FtmXCXUxUSDkCCLcbvpoyNvEAAABpBUhBUFBJWlZ+KNv6K70+8TwKAb4RR0U0llcAAAACAAAAATBFAiEA6CU1nrZcB+wPx3CigdwnIK99tA+Ng8B91s9s/nSm/1YCIApin3CMKVjavI+lfEyiIeganr7IJ55euGUorV+r2C4eAAAAZwRIQkRDOdMIKKFjcT2RxOrbuixJepE57FwAAAASAAAAATBEAiAk9fFEtMextTGbpajg9iuiOOUBXF2wgnN5U0d5BMt9qgIgYxheEXRChmwXi6TDaxRHNXy5MKCFlLjGmW6xSEldhFUAAABpBUhBUFBZMHn2FwTp76K88dtBL3NdjUz6JvQAAAASAAAAATBFAiEAtNThEIaeDFcck1+Nln0BO66lCkT3DT8NYJONQHPeeVECICzxCTV2hSAQrHibh/hHq9lej+y0Ojatzwm59iKs2g+7AAAAaARIQVJUUpKMlcTH6TTg78+rCIU6DkVYhh0AAAASAAAAATBFAiEAuCXuIneNwhLArSYqHjfyEYoOZuIM7Es6m2pojNCY/PcCIAzvTjVtYk/CkEiYSJPlz2RicFoU2WmmWndi/KgzG3AdAAAAaQVIQ09SRWCplc681EylZq4iqWZu0oxntZihAAAAEgAAAAEwRQIhALeyILlGnVbTx4iK//Mh6TN0mnGDstVJVDEiR4gx31tmAiBd+daLXPJ6FvJdwvX0gdhcD51o/QRt++QvCZMLvp9Y7AAAAGcDSERXyhdqisI0RGslYSk9t1Q+DNrcZicAAAAEAAAAATBFAiEAmCuOabVFP7wmUf/o4mJHjbxCL0/xRNUz/GfOPZ66NDACIG9ha/psq7xsQ8DK/IjV1jIoHrqpKkaFC7ulvDBpbylsAAAAaAVGSVJTVJkDpM1YnajkNPJk3q/EBoNkGFeOAAAABAAAAAEwRAIgeL7pQmIz8cTfGWNfU05Lcy8xfMrwASemnbN7YfexbR8CIEiPyBEVEZqXk/RSlvMkhiGdNCwm2Z3hZDURu6TcKPBYAAAAZwRIQVNI6xESrHjVN4UxUOKgfot2XinT8BkAAAASAAAAATBEAiAgUEc1T3jSFMIO4+L2H+P1N5hQ1HRbFkVYeYBoeiQZiQIgIFdtXDGz9vsDLsOq9ad+ch+T9qCoz5eiHTMdXuGX6c4AAABoBEhQT1SM0CTMj3P1zRMgBdFYRAOHezGMnQAAABIAAAABMEUCIQDiz0Q+ExlKUe0gyo0H0jyzCO4MxU6X2ZodlJI2WhqXgQIgXbyLb0Jxp2sfcvxO770GulWKOmfYQDpalycpnPwrn3cAAABmA0hCWG/jVcYsb69pRs6Ij/q6n9EjVa4nAAAAEgAAAAEwRAIgeo5ZtcF8b6lwkmoz6GKwy6tKOEBDi3wxpsvIh4pl1i4CIHX8WojPA5b1fMajDomo+tZBJXLSz2k1ap6WO0lgFYgPAAAAZgNIU0Mrujz23mBYzBtEV84A3rNZ4nA9fwAAABIAAAABMEQCIDflxlV/986be8jT3lPE1cXVbnNXdNuSlPAefQDc8EhVAiATHxXO52jYg5Z9XhVjR5PB4/3G6jlMG+z/zewZpazfvAAAAGcDSEZUs5mfZYwDkdlKN/f/Mo8/7JQrytwAAAASAAAAATBFAiEAsGJFIWEEWUlpCkXKJ1Nr5XEXy5wFHxtsN51Y2c4zxuACIFx/sdrV0PvCuMKPbh/nLFTrvQDvlWLQIC9jEYtwCMigAAAAZwRHQVJEXGQDHGIGGGXl/Q9T082u+A9y6Z0AAAASAAAAATBEAiAmf2ixvhZ5N8kHfS4HiHCi67vFlQD4DzMpBf6B6FiGpgIgMALYczKOhZ7UMtAdZA4/y7MXUsmXFq9R6yaEsag4eTsAAABpBXVNQVNLWHLmTD+TNjgi0rHkcXvjOY/c6lEAAAASAAAAATBFAiEApqFt0t2Lc4pjXv41BQvV5XMUw6E7HA5miCTKfifBdUUCIAxEZkMiz0NIjMlKdfgHQbCEK5ASLWOjWvR2epP92XdBAAAAaQZNQVNLMjDCveGi+iaJDI5qyxDJHMbZwR9KcwAAABIAAAABMEQCIHQocwJIRRC8+cMenGbtUNbHSYT4fVa6EkuBvAZZXh+4AiBq448ijs0VnM8XIiYFtOaq7yJ7vMckucwcpDs4g5lvJgAAAGcETUFTS8eotF4YQTgRTmCFyCk2qNuT3RVqAAAAEgAAAAEwRAIgCGU0VanZ+XLRIwHjRJGxvk9k3gZSmvL0sTq33khRNM8CIC0EFd55rUdjn3OfXU4v+MWe/FwgkEROdBKwocqz2SF5AAAAZwNITkKcGXxLWFJ/qqtnyzXjFFFmsj0kLgAAABIAAAABMEUCIQDnrZSzC/BHccgdrBJlI+6EfBIyebjeoIqth8OLU+bE8QIgO4RDm1faEIANBJVI6pUsh/3kwmYabONL0Zuue5Lo5YgAAABpBUhBVENIbzAJZjRwR18HSaa3YZU3X5VJX8sAAAASAAAAATBFAiEAnVPOolp7SLRH3H2y6/JXAugWAFeyx8xa8kD8j4NiUD8CIHd92+BoE+C9lhWSzXtOkxK+0cJlAN8ZeT9MTD1fO21YAAAAaARIQVVUMULa0zscbhNx2GJzZfLuIJXrazcAAAASAAAAATBFAiEA64hjy84xgKeEAybwxoAz8Ou8tWS2GuxmxhqPKvHEVgYCIDPCHT5PiUExRQSDpoYM4ixnNBtI6cj7HTUWzur2gSXdAAAAZwNIWE4OH+YLxKwOMQI0N1KufknQHURMCwAAABIAAAABMEUCIQCkndacMm9Wfr7MsXni8uUQyE+2QCGIENqkb1FRD1wRHAIgZD0KR6k8WQfmNjfkVVBrg99vzC4yeQ5fmmb2uhfiiAwAAABoBEhBVll8Llt+xXIZnThB9qOPfUhovQeY8QAAAAgAAAABMEUCIQDR2O0syhayl5oNZV2TUl3ZhG3oELRORDB/wlQ9z960uAIgOfYRkO2GdO5C7WGw/7oYUCT8qoKmUc9EPnaNCatql9AAAABmA0hBVJAC1EhbdZTj6FDwogZxOzBRE/aeAAAADAAAAAEwRAIgaBP6CJetVa7QwKXH2KL+9aaCtXQOFW+vY/vj8CnWQXoCIHSLiw63z2WBCzOEQlSVqLnCngKyQY1Ioa6tn5taNLSTAAAAZwRIQ1VU0xqdKNZqH35itVZUFuoUYHaQ94gAAAASAAAAATBEAiBXAQAEi/b2/7egXIsYiA89W++ZTzOzCk2Lzj0g9ypj4wIgZnUDASCOvNdcfE8JeOUkTOWlsmsfJs+czgSk+Cu6cgoAAABqBkhEUFVOS0K0335AKnHq50PGxUEM47u2Ou8iAAAAEgAAAAEwRQIhAIOudiBFP6e9ZghaiyIU537VlUoBwjt/m0a1TQi9YdzTAiBbrHr3T+CZRyuKwcROdtIHbXe/UhhWkS/rtgs7iueFKgAAAGcDSERU0Mt1KY1cHjsnfjzZXFazyqgamdMAAAAIAAAAATBFAiEA54XIBkHNNQO/3uL06x/zbscRN9o6R1c3qQXfKdN2CgYCIB6pFpT5V3NHhK+PvpTQpHQ22SJy3mlpglX5LnDPtwkjAAAAZgJIUKtVve9wV7dkgpFOefA3mZ9Ou2vxAAAACAAAAAEwRQIhANOvpWWBh9UC0g62cGPOrZwRzn/2/8/3nf9ait18k+U8AiBFo9Q/5kv79s1JxUO/35RtN3C0Sz30Rqo9/W7VNZt7KwAAAGkFU09MVkVEbJAz51FtggzJos4tC3MotXlAbwAAAAgAAAABMEUCIQDhkmXTNj/tddpIhnu3LKkBe2Ao3jvteidJ87Ayibn8GAIgetImVSMd7NgQ2bhnEIf99SKH/nxBQNrWSPx5x85o3oMAAABnA0hUTktLHTidT04IKzD3XGMZwM5ay9YZAAAAEgAAAAEwRQIhAPJfinCttqWKRDExK5zbVQ+sgorITD40S6a2MtkaQubsAiAUeg0tEkjRclw0M691A0pSKHzJIG9w3dLHQ+RRNM45QAAAAGYCSELiSS+NKiYY2HCcqZsdjXVxO9hAiQAAABIAAAABMEUCIQCtFaCWm6JXVk4pgiBRtTjV2a/FE4HZf5aaHTx+WxvgMwIgZOyUXIgJLcvv6mIrA/3idkXfCQYjICW+HeuAEonTyU8AAABlAkhQWksUrqI6YFq8Rj8Epriq9S3T58YAAAASAAAAATBEAiAbgBjLvHbQzi7PmFTd2N9Ck+I5NyCbtQP2nOSPcJBnXAIgZXS4ZltM6AyEu0hoZ818EeKKrkJMbHZOIp+lxE14GmMAAABnBEhBVEUFS9I2tCOFyTg1cRL0GdxZQ2h4hgAAABIAAAABMEQCIDwSf8xxJR5VoDDNb4slCah89zaqy26CvXeANHSJVGSQAiBTZrkuU1tBQ17K2yk1WQVRNiuAfMso2ScwE4PYs+UV0AAAAGkFSEVER0Ufo7yGC/gj15LwT2YvOqOlAKaIFAAAABIAAAABMEUCIQCs2kaY5mm7ZkZHS/RvsgENZzPM68BPWp9zVAF7ZR2FgQIgduF5EqccZgltbLDA/Vq2aOvitR7QnFQl/zVTJIi4/1YAAABnA0hER//oGWvCWeje3FRNk1eGqkcJ7D5kAAAAEgAAAAEwRQIhAOTTtt4W0WXUO2K3G4vS7wLs03a5H7aBve5QMgjhYPSRAiABEJn66CEZBd+eEKl8KsVY4EKLjhIBVzVy5icQ9mDNHAAAAGYDSFRHv/iThtBixgQO0ZVeGAyH3QC7ca8AAAASAAAAATBEAiA55p/IqKArNKtdRgxyDanCOfc+XK8oaqwwNaR9STXdgAIgNxHqgVeAf/UyF/Nm2H84NXq/5iIwVlALkcYH6GHA14QAAABtCUhFREdFU0hJVB2c0hgP1Ol3H8ooaBA00COQsU5MAAAAEgAAAAEwRQIhAIe43UpOfron5vBFTui1lsanvFHI96MjaO2Jk04r9ppbAiBzQymHhyLY+RaOjGN5toMfRH+Wq7AMb6CCfQ9QaU7UFwAAAGcESEdFVHlovGoDAX6i3lCaqoFvFj2w81FIAAAABgAAAAEwRAIgFVg0kSzcjYS64LK6l3NYsVrnnewVR988emDckMUzZr4CIB3MHi9HZoz0FqpqZBJbUaTnWM0Qtb8CJ7qF/Bf7NiMRAAAAZwRIRURH8SkEc+IQshCKhSN/vNe260LMZU8AAAASAAAAATBEAiBEavasC2SfN37jPf19nH/yB4gDBT+7GN3KLf0wXso/9gIgD5rxTVVGErev9yTpAgCtJMpk7njkwmwgneYrEOa0SOoAAABmA0hkcIRUP4aOwbH6xRDUnRPAafZM0tX5AAAAEgAAAAEwRAIgUm0WeJZLWPml+KjOSHtsJh7wsWQcde4QMrjUpADWBpMCIGyl7DEmbEZcX8JxpPqMBje7j39h7XsUJSPadGS1DcGMAAAAZwNIZHDp/weAnM/wXa50mQ4lgx0LxcvldQAAABIAAAABMEUCIQC80qolkXVIdskkGEAA/2pEwmKHVNHsB5fvBd2lgNVqlwIga4AN3tV+fgerH3bRkiJssWPEyKd2tW/bK63OnYH4JYkAAABnBEhEUk44GfZPKCvxNdYhaMHlEygNr5BeBgAAAAkAAAABMEQCIHRvLtAaQEUeXbG5DJNPOS+ABOtNJIxllOiU63/4SKI0AiBWTNTET6T8SDvdcRE8nORwuZ2RW5Y/BOtE9Cm5LZWlIQAAAGgFSEVHSUNYS8E8fUEcAMAaYugBlHLeaHaEMAAAABIAAAABMEQCICaN9SEiqP010KnJe2aKq+dFAIgHqYQ5zbtDKSxcsmGhAiAyBpAhEQhe2NkV8Pu7plsxbVzLCvgnwaJbVNTP8i6/KgAAAGoHckhFR0lDMq18oX4j8TmCeW0n0eZAY2be9u5fAAAAEgAAAAEwRAIgQJ8AIv3eeM/c5scFWO83RgLJ72SPENUpEgh0HpowACsCIAyIcX1c49aqL2Eug+xC0CErLwFZWPRndtkKjRFmkoEpAAAAZgNIRElYo1INc4smjCNT7O5RihrY4o5K5QAAAAIAAAABMEQCIFSLCj++2vr+sIHpk0PcN9yM9KKI1ver78bVgKFuHPzgAiBSE7mQwcdESVCAJFLgI+XwOSKaky1hFdQy0JR9VEDgNgAAAGYDSFpUeKWzgrmoP+BCpPfrI5nVY/2pMcMAAAACAAAAATBEAiAfteclZZO3+nZ8htQ6E5Ec+f98grcVn9YYV8+Xuh7HoAIgHLbgazDEPUOglgq9yJ+u98jsLru4sekHyUlscmYHaNwAAABmA0hCWuNOGUTndvObklJ5CgUn69pkeuZoAAAAEgAAAAEwRAIgcp2QOQ86l+rT7s+q2NxX4ws+hLt1H34jYp7+wADiUVoCIGW8QMN5/YntUHe4dn/U7jfS24dmfhEgDZl3q9iB3YXvAAAAZwNITFhm62XXq46VZ7oPpuN8MFlWxTQVdAAAAAUAAAABMEUCIQCMDhRdzSIH8aQq8TA6jDjKsYrzJy98gPQXmnZd8dq58gIgQDhnGSVGwkKcSa+eP/GMv5/6t/+L0y+l+4089GTSPBMAAABoBFRIUFSfWHAu8Z6+t2NjiENiQ5qGkePwMwAAAAQAAAABMEUCIQDy9k44BAkv160gQxFT6R5avbgz2Lz7PGu3b3pEtI//pwIgQCuu44MXMob4jbuu/ZX/VSuhJIRAOJ8EhckBFcdBjSwAAABmA0hOVAirrpr2cTrBQdheC2rYJbuF85IgAAAAEgAAAAEwRAIgFnAVabUhCbjaoNaez566UtJf1ty+lnn4jBQu9nPAsQMCIEGjoCpOpQgH0uhfJmbP6nMOqp4JbZPo7t0CtGtgLz7BAAAAawhIRUxMU0lOR7CHwhgOMTTbOWl3BlgXrtkf6m6tAAAACQAAAAEwRAIgVEeIy0zZdvr3nnzqUUxBM8exrFGgkOODJGOLPnsnF1wCIBF/xAIIU56OA8miXFBTlL8hHXFjUKDwLKKg2L2tGNnOAAAAZwRIRUxQu8IEXTNcsiQijxhQspFz2dfXuYkAAAASAAAAATBEAiB1FeEbBcyei4h6mkxl9efytlRbqPoi6GJImVUnVAgdtwIgNUVxl2ZztU8++EAt1DAwHWQVpswIKlwdjxa0kv9z1uIAAABmA0hMUDCFZNxSF8OThvXq6WVFFZ4dOWZhAAAAEgAAAAEwRAIgCGftAkxRoOx2ewk3Ptq8FxdFRZY+++jNCapQ0Ne0sTgCIEdq5sUIDPTwpMc/gKetfncYlxRvGINZtnAIVhnMPYoCAAAAZgNIRU0ZdHgWoDD+zaM5TGBizfa5tNsOCwAAAAgAAAABMEQCICqrPwHY2jxMPF2on9AE/7+dnJcCSoZBk4oFn5zrdXF6AiAbbhwNZ6u6cqq9mGLLkN36lYOQfpdRgjhaDqphyYkKwQAAAGgESEVSQgSgIDJQJPEwmIeCvVJ25TWV6NFuAAAACAAAAAEwRQIhALVIGIozuopmbIC9pZxAdCKT0vHJfZ7O8/XVWp+ughYsAiAnyPJgDmP9cW3taE5RDvakQsiNG45Ky14oFG6WuaPQmwAAAGYDSEVa7vnzOVFCmMaoV+/Pwadir4RDje4AAAASAAAAATBEAiBFkZKZmdZ5dJUhY4iwszJWhf0QFoI44qEfDmnKFrZcTQIgFGV0N1MjWCCmVfxsaedJh7IJaqD2zbSQv0IlW6ZKEfcAAABnBFBMQVnkdykvGzJoaHopN2EWsO0nqcdhcAAAABIAAAABMEQCIAfZqoDScNvWZEf36aZZVMhGs0yHf5Dqx5LERbRCEUBhAiADLds2oV0OTABgYQWLoSpHjUEVLSrUVMn+I+9yRgI40AAAAGcDSEVSSRyaI9uFYj7tRVqO/darqbkRxd8AAAASAAAAATBFAiEAjWIUVdFkoasLLvFsBT9TiWaZR+52+RFok5exHMlRquUCIAwwKaWnVwol+81qaCr+mhmZmZNk76dll+X1WIOhp9zmAAAAZgNIRVgrWR6Zr+nzLqpiFPe3YpdoxA7rOQAAAAgAAAABMEQCIByXuYfHIwQSI4SAoJizSg5IV5l9YO3mSTe6JJ+RPsZjAiBqjaXmMhMsn5fAfBpIPDp8VJtR7gWtKUdBm6LBKejMEAAAAGYDSFhZ86Ks6OSHUcll6godBkMDrKU4QrkAAAAIAAAAATBEAiAYmHcPD6Ue86vdNoMFLWofoASmuG5n7lzWALM+8B3tngIgKrRj0EcpR6wKCRbX5nlLkFyvrCHoCsHdcVng87RlTZYAAABnBEhZQk4gvK4WqLqV2Og2PiZd5Oz8Nuxc2QAAABIAAAABMEQCIBQ38dMRQTTWXf0MrUj8wip/IjOFru0Q5c3JWNB6/e+6AiAF9+qNPbuGkgbHSBP+MhsZLsHx+AZDYU7OZOaq4nlpJgAAAGYDSEVZ6cnn4dq+qDDJWMOdayWWSm9SFDoAAAASAAAAATBEAiBCjZEml42BJONmp2F5uTehyuvTVGLCjf+P71lGtA3FcwIgBSAXENuhnE3z6rz5RM2ZZYF3pLcIs+sQ2mQlDAUhdXIAAABoBUhHT0xEDJO2FpM7DNA7IBspzYoiaB3Z4NkAAAAIAAAAATBEAiAQpeCsOBmtdiP2rHQyhV2TSwmYZg2BJtj8225jDU8c+gIgVXKJ5v8RvnSGtTQO4Sfyq6AUtQi1qSRKSmX3Iw+3vOcAAABmA0hHVLohhFIKHMSaYVnFfmHhhE4IVhW2AAAACAAAAAEwRAIgIodYcn08CFlPLIlw2lOfJX6c2k4co5dUXCWe5sDTHqICIE9TPQvsrLyrXYM3ikyC9b4x/FU1WSvyF0+4iP+HzLg0AAAAZgJIScT26Trt3BHcIiaEiEZbq8rwk5msAAAAEgAAAAEwRQIhAPoJqyGGH9c9kB8wW13SIu7gn7FAFXxzaNh9RZ2LG7sJAiAQeCeLMsp7PtGIHZomEwfF76RiFt2BRgV6ajgF2CLc3AAAAGgESElCVJux2xRFuDITpW2Q0zGJSz8mIY5OAAAAEgAAAAEwRQIhAMs/n6eUim9NgPiLdX9C5JegvUYkSrzU4CM7X7uVpSx5AiAmM9ZvNogL1hYyYep2dj0ARmb5c0/oQjpp8JH7HH0yeQAAAGcDSEtZiKyU1dF1EwNH/JXhCdd6wJ2/WrcAAAASAAAAATBFAiEAzs+rG6wt3MhKeiaYA/TP1hrtxY/C0fq3Q/NNEkllY+wCICstu4E/XZjKP8FbBGA77rTMjs8XUA2p1cAMvuYgpew5AAAAaARIRFdZqyLnny38LlciI3gPpCXIJ7CJIXAAAAASAAAAATBFAiEAx7zQ1qN06w9vRPdegauQ165Gm7/cw4ZyOT7If4D7qI0CIGOKBtFUHGyJLZobQrGgP1Pe+uci7j8e8UUr8w06xZXJAAAAZwRISUZJS5J4uUoREsrUBASJA7jTQ6gQsH4AAAASAAAAATBEAiB5hzZEMPNAnO/kqoy1zUXq7LkmRZgp+3J5zRk4veMjiQIgEWWa+KdjHMDfXr7x21b04SnF6lMEQpNSiT4nc2Ix63sAAABmA0hHQ1taNT/CF+vvd7x2huoFoAPr230aAAAAEgAAAAEwRAIgP432sqPjqRxqImCgVStWn+Rsvposn3JHmfkisNGyxuMCIHvv6UqiIOnDGWBGcmLeS/XhfnZbUdIKCPc+zSYh5JD1AAAAZwRISUdIcat3t9u0+n4Be8FQkLIWMiFCAoIAAAASAAAAATBEAiAwGRbvZAwIicGFL6HiCCB6v2PRGzkInX71/Tl/tSWQvwIgYhv6v3wB0cFHL/d5vS2GP1yntrNu5FHLkrM9fjPWKZMAAABmAkhWFBq7A/AB3t7ZoCI9T/JtkpEXty4AAAASAAAAATBFAiEA5WoSHyRqd4PH62UsDAiQit2gACRsZe7iJqUQNNKtliwCICCLTl4GBGNHW2TzRoEb8mAjfoGyRz9+At8z5gmKKW+MAAAAaARISU5BvQpL8JgmFnPV5uYA/YfdzXVuZ2QAAAAJAAAAATBFAiEAq3sykYEpEBZ1UOqMh0oeEK16yzFpoHUHXvIGnx6BQU0CIFBIOmui8p3dv3U+fT4ju9LBOsT/o/1HhwCCmwGLO1TKAAAAZwRISU5UbOIeX1ODyVaR0kOHmoamAl4IcMAAAAASAAAAATBEAiAkODJJsRAtxpC7DKfmNb1PCkJmgJOtKm1MvRPhg0CxKgIgRoXeh8sK3Vsg6hJ9BEXD8MSAjiETW8QqHgbcRtUY+1gAAABoBUhJUFBPgTE/fFycgkI2yeTLo6xLBJmG51YAAAASAAAAATBEAiBiCpAwtfUW/NevToQy0vCzutE45762bz7otuqEQRXd8wIgHbTiWIwQksCGUiVdEYkKDkj5b4hVBFj5c97OckbRuhQAAABnA0hJVHSxrxFCdDNVmNpy9cbte5VKAW7tAAAAEgAAAAEwRQIhAMnqOkifhsbQz0xM1DaECethe6/Uo5ozfL1FWrVSqNl+AiAaS05BEPJU4D0on7ZaHreQiLsrNFid/2UndALFu63qQQAAAGcDSElUeZWrNrswevpqaDwkol2Q3B6oNWYAAAAGAAAAATBFAiEA+E7WKF60IhMKZ/2i8osU6IWtLV09/5zFXE+EdgO9MacCIFgwVW0kB+gHHqS4G3Q1k2FFnZ1OZQvrp7Szb4yhmMClAAAAZwNIVk7A64UoXYMhfNfIkXAry8D8QB4tnQAAAAgAAAABMEUCIQCMA67YPaGrNlLzHm1Js/YXJEIl5kI3MqTMG42SmdUGXwIgNk6tsGKK/GK6R/ZJJIIQKP+MIkmbw6Ol5AhQ1so7fCAAAABnA0hJWsdh0cyzipRwNnXSzbFffxs9z/e3AAAAEgAAAAEwRQIhAMEES4IxUX8MKXGE25gfSpAFJiTkDCoTrFH4WbUWGvYKAiAdjbf1LAtvTiJaDo1SOtzwEtDDS+IhBqsuHjC6MmlIFQAAAGcDSEtHFPN7V0JC02ZVjbYfMzUomlA1xQYAAAADAAAAATBFAiEAq9D+3pVQxjhfbjsojUVBpbB4oE16ls6ngFh/FRKQBKkCIGW6WuW3Cqb7ap9CxvjX1V0oAdfn0GRTb9nEDgSf115iAAAAaAVITEFORLp7LAlMGkdX+VNKN9KWo77X9UTcAAAAEgAAAAEwRAIgb4Wrm6ISW5cx9poySioPSvIx4rZLRcFfLUwV+VxK3UICIHU1T4E2kPRuVSrqSEyLSZP12Og7BBCozLLgUF+0XyueAAAAZgNITVHLzA8DbtR4j2P8D+4yhz1qdIe5CAAAAAgAAAABMEQCIFudnPkGhPyCdVIQBERrYLxtVNeFYylUiJ5m/F/bfPP2AiBpMzNiTPvEzwEPwl3IXtx3vPvbUcGg3Rndj7ARNSHIDQAAAGYDSE1DqguxDOwfo3LrOrwXyTP8a6hj3Z4AAAASAAAAATBEAiBgiQNwGJ5CVV9J/sduDdx1aW9eDs7X9YllnzenrFw4SwIgZar6np80yM2pLFC486LqJVr3FJ9IwCL/ObIq8/CVuC8AAABnA0hSRMYX1R46H2IdqK5nsvZS1qwC642VAAAAEgAAAAEwRQIhAJUsBHaQLSh4NbgE6RvYoHcmyV4Le0m/9uuBwStsTiMeAiAInRIIqDRPp0VJAUpy84v4cJTPizTxBQth8UV4SqdoPgAAAGcESE9CT27iq/v5jYXHCQtUWRAzNKNjhknEAAAACAAAAAEwRAIgDt97HRo/whpkxFHjTq7Jt2ouvLssFX8UJM68996kVa8CIFHvMVnKc1nPQMfc71To3+Y1HudVckn6DtlmmzVVaniLAAAAaARIT0RM4qCDOXUhlo6wVYWTJ1BjS+1LfVYAAAAJAAAAATBFAiEAxHVEov/ujHmmxkJ8cAgaLxhoMMqr/rFG/EB+6BO3zx4CIDriUhz7C/wq3sum78S5Zb0PWTRRTEzqAmiOZjeVGp3VAAAAaARIT0RMtF17xM68q5itCbq9+MgYsikrZywAAAASAAAAATBFAiEArTovM3qIfEyZ+GS70biydOU9Xg+zKrGyOfKp3zO+O9gCIFc4Sbxvivz7kWsYyOIQEmPJELvi3duKWrydkcZIGk86AAAAZwRIVFJF3qZ4RaUeJEYdX+2AhOabQmrz1dsAAAASAAAAATBEAiAqkzB/+dP1Pt3lyO4WZ2AGid7KfwqG3AHr/V9cJ4CNIgIgYuczZYBKE4R7ruGMkM7SnFIXicTdHEE2XrpF1NRYkiIAAABoBEhPR0X61F5HCD5GBzAqpDxl+zEG8c12BwAAAAkAAAABMEUCIQCNjjoSC7t4IAG/SRq/Tt1bvYLptZpfRhN3TmLPlHfpKAIgdbgeGjSllShQDO0nflOWd/mUST4SBCkYA4pwzly2wkkAAABpBkhPSUNIScTuCqLZk8p8kmPs+ibG9+EwCdK2AAAAEgAAAAEwRAIgM5KerBhzNjhYQckyeS5D6U6MqJcION+LPDYUGkpE6nMCIDwugZ1GrfAVDXpJLpMynqPcm2Aoh7EXOlqvAyN5xt2LAAAAaARIT0tL6H4VucfZiUdMttjFaz20761bIegAAAASAAAAATBFAiEApjcFLAjqgiT43c+OKjyojPjd0Dv1gyZwxmGqE9Nh0nMCIFdvdskvhZBvxFVmaUsZmho9GXw2TLY+9kWUlZdpBxGCAAAAaARIT0tLxArx5P7PoFzmuredzYs3PS5DbE4AAAAJAAAAATBFAiEAzLLzoQDqF3m17PlU8CEm/0tFBWB7LzuD9cb5L7QGoxECIFXD9xDllx4/QYROpqg25AS5vM8sdxY+hXeHLgwC1yjGAAAAZwNITETVIN29+BMj9Lmg6grbtpLr72zigAAAABIAAAABMEUCIQDmqQ+IKr2kqAQDnS+fe9+VL98nxnOKNALAktCpYAC3pwIgeSD5jFEuxe0EfOyZTGFDI/6g+8C9pw2wRY6A9X/BvIwAAABnA0hETJXEvoU01pwkjAYjxMmnoqABwXM3AAAAEgAAAAEwRQIhAO9rHz91XwzDR/QCWiIhvGxjziLDxlICzAFdfa14wM0rAiBlE7LoJeUnRKzB1iuz8ax2NSX6Jve0dACMTGRwWlIFbgAAAGgEN0FERO02SCx/jlhQ6RrAz2vyEwoaot+SAAAAEgAAAAEwRQIhAONlWHuqBSumUE2FOKcaJEjIDGXn3dhLbOa5swS9TeDxAiBzVEKlx955chSBPI1Md89LSCqInmJbCOIhlJNLnDNZrwAAAGwJVENCVENVU0RDdRDW+smKbsott8k1dhlxWn9QSdQAAAASAAAAATBEAiAkLlGdK7GXdvZ+3lcQMRI7z5YDa+JtX8qr8UDMwakn5wIgcjfANaECogeSNG+uQu9GCge3YS3cR3IQrwwvyOtlPrsAAABrCFRDRVRIREFJjk2/VAv4FMBEeFIYtYyTCyCla+EAAAASAAAAATBEAiAHw07jHLC4pDadW8vmSgonBBGjVh2xVAD2FkGc/aIfHQIgFZrp5B7Ew5bGYMQ7oNcFoWnHbxmr+xPnLDYOVHbrzWcAAABmA1hIVNPGJfVN7GR9uHgNu+DogO8hukMpAAAAEgAAAAEwRAIgS82360cfohE5jWUp3TVkQs+t6//Y+L5vy4C3jPUKOcwCIFZw31X/CpymHlIACSY671jECpVa79rEMNgPbvTv/WfXAAAAZwRIT0RPkshSXZJdLrajEIRY0s2zp5XUV9IAAAAJAAAAATBEAiBCZNe522sMoDs0sZqfcRjSMZKISaHbpkaIELoU8mTwxwIgWTSDEN96p/sjrfieicb30+X8Q7hhGXMxRKnUqO/RFrsAAABnA0hPVGxu5eMdgo3iQSgrlgbI6Y6khSbiAAAAEgAAAAEwRQIhAP3pGwPX7/Jb4CYXIDiZkV7k7q4FCUg+qCaqC4FFL4KCAiAlNkjAp5r8Pf+frwz4WD/uddSMApSBMgEBchYkt/3BpwAAAGcESE9MWTnq6Z5oWQb/HBGpYqdDRA0KGm4JAAAAEgAAAAEwRAIgJvHhN+Z/4CKOr0TKQSZMt6UC/Ny86r+67YSE5UTv29wCIHzsDxHvTDrnXnGepw5WRyYyhSXYjtFoT1P2nfXOKUcPAAAAZwRIT01U73qYXk/5tdzNbt31hXdIaIcohxEAAAAPAAAAATBEAiA2nlAtcsNEmzfbxyJndoyGnlI/Ot0WXUYcn3AKb+j3RwIgWLkJpOzB8UdzZMdHCUAzvMJKPhnHzse+MbKyL6S2OLUAAABnBEhPTUWvWFwV2rjDYwh8VydYrHXoLEZ1eQAAABIAAAABMEQCIG11S34h8H3VAzkcQEj1vE4GjQtQMiR4einNnoxsuRgbAiBc9O3AqH6kijN3V5zlGdFclS8HZSY9GK3svLtmo1DORQAAAGcDSE1SsaMIUeP32EGyMbCGR5YI4XGYNjoAAAASAAAAATBFAiEA6f2afSSdmn/3ZEUXH9pV3/ECRBaHCCWZWH+CUsSDJMgCIEVPn2laWV6cC9n4PkQIF/XPrktOOWuZ/r9EHoRASWAiAAAAaARIT01JyiCL/WmubSZn8fy+aBuuEnZ8AHgAAAAAAAAAATBFAiEAvUej+K5RExIfw+A2emvmsEDf44mI4xe7fYqHGiJqJ5ICIE3i5zwbKDA2gkx3LwfgspKqsqWMyZ/g7g1utEiFjh7jAAAAZwRITlNUnJ/jvWCyKpc1kIuViQEeePICXBEAAAASAAAAATBEAiBfe+3yjhpK1GQyH9vAf6WNAYQdlKzhNDOhPbqnvsKbDwIgcQA9kLKLr/+jPNPH9sqh3ZudQK022XrkFeQsUNVas2EAAABnBEhPVE9WMWxYcchSWpXMpVYez3NJqbzOuQAAAAAAAAABMEQCIC2ZVoCG3hp9KK+4Ww72QUXYoPMQtPpE/JlCCSz9tOhOAiA2yzzUx6I8Qazc9K/FNCN7EVRUqIHMWXrYMFiNpUcLHAAAAGkFSE9ORVlcubhH+6iq24qUP+GcHMhDnX4AxQAAAAIAAAABMEUCIQCUh9Ta+vTojTppCbJzUZz6uinUYL6kwXuN68d+QVUyWgIgdJH8B4n5bKnbn0FoGeYxkC6F5xM8VKCa42VPTOVkkvkAAABmA0hOWcNYn1a2hpgkgEpeop8smIavGw/OAAAAEgAAAAEwRAIgL9hJlMJseVTC0+YetmMj8BJSqdGVLN7/1M5Sl9qHaIUCIHS846lrSnR+D0OijZCV0nbFbpAEq0dx0cJTebTUkI15AAAAaAVTV0VFVB+p8cv4yaT7NDGlgJ8xcjA47SkbAAAAEgAAAAEwRAIgHtxi4fPjKNnkYC36/2VmVNZ1hWin3ZR1bBECvLaOWbcCIC+kVRYEqBBdIhmBxc7fggonAwmAtmWXYYPYJL0SKVUrAAAAZwNITlKE9j9I/RREYdQpWZqDzsll5HALmwAAAAgAAAABMEUCIQDvPC8DAf0fiEoL0UsmnPBKQh7XLTyeaij3XdkTeDgPZQIgc1iN/9u2Dnbz9sGnCsPjolK2bWZ34fNhRO+wUywn50cAAABnA0hPT9JB17XLDvn8ednk654h9eIJ9S99AAAACAAAAAEwRQIhANoQ8luboDCWf3hEhkW6wwjzBVHQZ1eVrf46+Q1yu/9CAiAaxjnNs6iDOW9OFh2eCLf1k4mSDpe2Bcu7MPxCFt02DwAAAGcDSE9QxRAv6TWf2aKPh3pn42sPBQ2Bo8wAAAASAAAAATBFAiEApl/VIXIU1zWI2LgGETX5fLywFd/NGdp+jsPJBaSLrl0CIAx31CFlB49z9ys+E4/hFE/xeSRnRWdG8L6P5O95i/D3AAAAZwRIT1BS9Vgd/v2PsOSuxSa+ZZz6sfjHgdoAAAASAAAAATBEAiA1RvFbY8Ytwg2faZejZepslxR4+253PKfSTtJn5/4zRAIgFLRTZiLgCfmK2p8DjsY9rUxppHjPf5u7MyCoC3GdkXcAAABnA0hRWBuVfcSu/u07SiNRpqbVy/u6DOz6AAAAEgAAAAEwRQIhAKWT77dme+oEPRl0mUYsTMuYbdLKgrhG6LkM2mnHcPpxAiByx8lQod8CSzjPMjyWX24Zox4KvueIiFD01ax83vj4bQAAAGgESE9SREOpaWIlSFXxa5JVVvnpe+Q2pDRIAAAAEgAAAAEwRQIhALH46rv5MdE3awf7xRauCPcyyp7W1bGHVwqeJaPRbT/eAiAwV05OWO4sqZPlYX7FTFH96HU9moeWs4ST0EFE+qIcKQAAAGgFSE9SU0VbB1FxOyUn1/ACwMTio34SGWEKawAAABIAAAABMEQCIBO5tZ1I9OM+PB3SPZkbla1hYKX5coJzUjxb1pOSpKmaAiAZBUybSC02FtFwWaUiYnsn+N7HVSJs/jdK9nlUxQHxeQAAAGsISE9UQ1JPU1NClzlMIIAOijimGaJD6bvnaB/yTgAAABIAAAABMEQCIC4+E2M5Gprnhbts5mqt+GbucGSgNIZkhtRB1Yd6j10ZAiB2whKbo9vIG7GTALaz5aWHKKEIljWvn1bIutyQbgpBmQAAAGcDSFRCa+YYM/xDgZkOgtfUqfTJs/Z+qUEAAAASAAAAATBFAiEAyB/P1G+fKCxyGKjEAyZYm9pkUqp6ILJtlrjwGfF44QoCIDKX2KxlhDotpNLuGOzOnIJbAlNCdlkng7cUW71DLvxPAAAAZwNIRFPK/icXgwg1GhL///3rFh2dcw2gggAAABIAAAABMEUCIQC9WluuWsic+x5PtJ7OlM5VB5qAD4V/kunoNqSffvGGIAIgPTOo0mIjzSUisJGxWMvZg4Sxkg4N1o2KAHOzp0UJZPYAAABmA1BPVAQq/ThppH4tXULMeH1cnhnfMhhfAAAAEgAAAAEwRAIgaunuV7FNWmkNyfpSV4Dy/1PYbT9YGByy9JyfY3B8akACIBc6x77RsqOzj0z+e3xU63nE6/jOcwuC9p0+dbG+7Cz9AAAAZwRXQUlUJVmBO7tQjEx56czORwO8sfFJ7dcAAAAJAAAAATBEAiAZ9WqlqtGjhLOhp6RrsDhMzjfGeX8NR7Q55TJku++1IgIgd8hxbPD03xR+clNFOLdOIHR0Hb7rifFqpa0s4ciQFAQAAABmA0hQQjjGpoMEze+5vsSLv6q6XFtHgYuyAAAAEgAAAAEwRAIgUA3c/z60OwcH68jKAkpL7tgUctjmIxWYLu5E8mp6UuQCID/wD58BP4ec8Xk4qMbQvmOV1FYvjKoTrAw4sgovXGijAAAAaQVIUExVU/90TyMVydYdgltYHJc1dgVcPaB+AAAAEgAAAAEwRQIhAPfZggQed3MQiMtqsGs+bk6Yj8cNlb/ROswpZD3qQgZBAiAIoKQg1yVyadvUnmZlwMNOddOM8220PmeOfXl/OedSTgAAAGcDSFNUVUwgt8SGvu5Dkne0VApDRWbcTAIAAAASAAAAATBFAiEArrEq0jyZ+mUwllED9+gfkoAYNAe3goCJJDLvhvBlBe8CICr+gnYawe+gpirJ3doWzV3Ip9f2tCB97Dca2eV8GZo9AAAAagZIVEJFQVKG63kUlb53fbdjFCosVH0RElVPuAAAABIAAAABMEUCIQDV+cH/P+5pLZ3rsEaFwKVSJoaDxWhpqnlokpqBUuTY+wIgTzaxi2lmVuJVczPEPDQ/3BlzMT3YVNEnFD0pkn8M/nsAAABqBkhUQlVMTA1eJoHSqtyR99pBRnQBgKIZDwx5AAAAEgAAAAEwRQIhAOsIJmi1HkIYXNdyEkF7fGT74AgcNYKL1wqcyzbeEO/jAiAX+SEgjMVb+PF20DP0x4UCB7u1vMilBKnY0wdlagQvZgAAAGsHSFRIRURHRTAIGG/m47ym0TYhBaSOxhhnLOWzAAAAEgAAAAEwRQIhALo+36Wsw1tWjZ5Bhy9KaxvRejTgCLfhz4Rz+iY6zrBaAiA4VHdDrioEHSyUsvnuSf8h87JEMKv0Oh3NrWpl8IuOZgAAAGUCSERs5lSslz0yb4nwaF50WVQmQUEO2QAAABIAAAABMEQCIDdh4BI7QSnyXCc+17zbOIU0Vi1j/08kidfeoG7mYM//AiAhhwiQaUMdw7mUhklL4lpMaEfq7cMx2nmwevFteBfwgAAAAGYDSFVCujWLb1tMAhVlBES4ww2HC1UFDS0AAAASAAAAATBEAiA7jocpfemuFIElW4ZQIFIBVFvo3ftX2OK/p30psqpecwIgHqsA9EynPo2PGwW3BrtiESPQ16KCGNNbUJH9cW5GOsAAAABnA0hCVN1saLsyRi4BcFARpOKtGmB0DyF/AAAADwAAAAEwRQIhAILwMf9zhKUjBNrjTm2FHF9PFwBZfIU6V0FXfrZmYUo4AiBcZOt2Da6d8F9z0GGYqYmj4QiAI1olwX0U1TSgTXz11QAAAGgESEtCWWRcUs9sXFiqQGRJT1tf/px+wNfUAAAAEgAAAAEwRQIhAI1//YGl8t81+k1KcrG9PK8LNpeQMg+lpKktERQ1oqqTAiARD/YDi7wQFNrbQ5ZOflTsCHVuhGOM5ogAIa5AwKQtzgAAAGYDSFVF3P4YvEb1oM0NOvDCFV0ry1reL8UAAAAEAAAAATBEAiAAgNx4YKaGbuhniNwo0sUqUVei20rM2ESY1ubp/fTzYwIget5yK8ZbLC2AuN8GDYeW1u8XaNif1nu8UP0U4Zasq9AAAABoBEhVTEuRpd4w5XgxUpo8GvY2p4p+ToPzqgAAABIAAAABMEUCIQCNga1SYX0t1lrQEN+F0M/v1hwmLQp/cQz66trOWH9O3AIgN9Z0Mdyy2lbv8er8MIWj14BAVIG+42ms+LPhYSEhF5MAAABmA0hNVNG6m6yVcyLW6MB6Fgo6jaEaDShnAAAAEgAAAAEwRAIgNxoJvfnOAKoRPrPPvY2BOtyOqIX/cqpGoxb911j+MVoCIBF753z3yNtSAzmhSLAU2qXtiejdoeoTT8ybyyxsF54RAAAAZwRITU5Dd+MdZ0pG01ay5liSved1i7JiOMoAAAAJAAAAATBEAiAM2088l89ElDilcsZdoiX4AwotPjNAIdGmeidYk0/OFwIgOV8hbrydzOTj3zWKpGuLwZVBfLue6l+1QpDFK95DnbgAAABoBUhFQVJUj6yAMeB59AkTV2bH1d4pzyLviXwAAAASAAAAATBEAiA/IDv1aMxiKsCPpMuKnBSi9oBWk5X7YJyM/2KTI4IoEQIgYdMb9y/BN3iqiUqn/6JL1DcEu4YLRUcVVp+mcjuN1o0AAABmA0hVTRdK/noDK1ozoycKn2wwdG4lcIUyAAAAEgAAAAEwRAIgHLBFDjM2grsDvA6C/A+0cQ/dhjuvm/+MShqyiPfOxQYCIAhmEsOqBCKurmvFEW7Fl7A9rDlyFndcqI6oh76yHk+wAAAAaARIVU5UmqsHG0EpsIOwHLWgy1E85+yib6UAAAASAAAAATBFAiEAmr99qvd7tQD9u+3WdEEbJaionHbdBugFO2yxDPBvHFcCIG/iKpD7cqdX4F01SYdGnkMwKCqt77za+KlqwnOlPYqkAAAAZwRIQlRDAxbrcUhbCrFBAzB79loCEELG04AAAAASAAAAATBEAiBDHFaRyXkXzH3YyjCLhDAsqpTrGuinio6jqc6zOz4fQAIgWo0Fw3jK9rdLWOp5a72rCRW3lk0eokskRn3SgWNi/1cAAABnBEhGSUya+5UJSMI3CXX7kaRB82/cAnN81AAAABIAAAABMEQCIDztQK0MLKIGnR0yPPpWtN/QDC7JfoX3XXRGu05FWMs8AiAgZ8FucsOXgtvIJa7RuuD3h79lTNOeqBu9XArKbUCcHAAAAGUCSFRvJZY33NdMdneB43vGEzzWpoqhYQAAABIAAAABMEQCIGUNlWkjCut8LCkDhw9X4rMYOYgbZotLwfJO/+KzD0F9AiAYIvwGV7EqkuMpb2adJqkVgZ4XRYx9GmjmvbOy8wUhQgAAAGYDSFVSzbfs/TQD7vOILGW3Ye+bUFSJCkcAAAASAAAAATBEAiBj1POWUyMNOtkcWVUpj2njegZW0AWQLHH3qej441ZNjAIgAO1M++UW3568GHrOyKWP/O2LBxEpWU8f45EydjrLNWUAAABnBEhVU0TfV0wkVF5f/suaZZwiklPUER2H4QAAAAgAAAABMEQCID51+m/wI2Y2J9UP6zxX34wACwcc6LI6/akHglS0StkVAiAnheJL9LOoGvhoCGSzX60pAWRj79qUGw6EBl/FJNVxKwAAAGgFSFVTS1nVKBuy0e6UhmsDoPzN1OkAyMtQkQAAAAkAAAABMEQCIDKhy1BMSMDcxIDCLc8zloxy/qZSDxJjYuKg+5uA3Vq3AiBJlAUCK99sJdHsA4paRDsdl239VVCrF84dGnW1wOBQkwAAAGgESFVTTFa+lNKeESXS1h0GYpwbJR1ywbOzAAAAEgAAAAEwRQIhAMlDY131Qg3xEYG/4Dfix4W+3iz2XupL4OrWhG1U7tYuAiBtnquVXJ9TuM9P2krtNvXJUAcouRP36nG+B24MF4EM3wAAAGgFRU5UUlBbx+Xwq4suENLQo/IXOfzmJFmu8wAAABIAAAABMEQCIDEUnkWG0NTpGfKQrTcb1ravQkxMOPXU8E+l16Q1lg01AiAwwYDCrAd/ZiFypKK7mhY8z48UoHf5RMkiDtreA6J+RAAAAGgESFhST0vXBVauP4puxsQICgwyeyQyVDjzAAAAEgAAAAEwRQIhAIe9MNV+doDKkc58mh/eGszInwGpYS1K4ePRhfrNYs3gAiBNzLweyfV/q8HF3T3PLj9OD0acnETufuUQBXx9DZpYcQAAAGYDSEJD+5VTr6K1wZxfjluO4XX8AavRVV8AAAASAAAAATBEAiAsa2FTt56v5qg3pnpLqGhb8shzzGoElD5jXygiaH7TZwIgfHBCZW/rmL2hNuavyLEPHKWKqgbwT0vXOdFWSZPfq+MAAABmAkhZm1PkKbC63ZjvfwHwNwKYbFFqVxUAAAASAAAAATBFAiEAypDVkapvF44PwCdt/wTtdDLqKvPU83refj/X2Z9DSEwCIGJ7uBVPurMnvMYGjTBSUBbbVm529+zqn5bNrlAmuc/lAAAAaQVIWURST+u98wLJQMa/1JxrFl9Ff9syRkm8AAAAEgAAAAEwRQIhALPVURyjgkPY3EE1FDC629RHIg/BoKQFPBEE5cpAbYqnAiAqeqP9NYEbKfveSuAYk1QA+Z/sgUOO9UonmMB5MKjyMwAAAGcDSE9Umvg5aH9slFQqxezi4xfarjVUk6EAAAASAAAAATBFAiEArF37sjGTdmkZiT6btt1T9D3A8qyr+HQeWnQxeIn+H28CICmYwr1K8PNndPWBYLcEzv+CdOKOt6lZbxW1esW9N6a3AAAAaQVIWURST5RhEu+rYcNjbL1S3i4TktenWm8BAAAAEgAAAAEwRQIhALQPMY+KLErS+i+mv0JgMV2IrdYnYOQ4rEVdB80E7l4BAiAv8zvRsRcGJSSWm2rm+faFySNnouJvColOnGTyhVU1wAAAAGYCSEcbyfMcMnzgS2+p1W/YTBTMCwpPRwAAABIAAAABMEUCIQDFvbEZxJp77Sf67UFtl3omkOaXJAXBu4v0qKPySNeX1gIgIC/TyMnhZKKDD/bWsJaWWCnb5zDbLA2m+4MWsZe+f48AAABnBEhZUEVP98In4ee9WTUd6GNTgcN5dQqAQAAAABIAAAABMEQCIGiCz+xAbRH5EtK1vwO9IK1sYJDmYC1P6KYBO7TR7sGvAiA8XZiekpGuNFdju9f0BB6zdh1d85TZUxqoEX9FPOBmlAAAAGcESFlQRWEMZ74Bilxb3HCs2NwZaIoRQhBzAAAAEgAAAAEwRAIgT6GwrEahXngJbWQuT9w3CsztpgS68Ahqv+JHUHm0wAQCIGZQfX3z2dj886ez5ZQONlScRxGFRZ89YUDmGUgykJd0AAAAaAVIQlVSTojTlWba6I3IOGUtmJjwqmqP8oGaAAAAEgAAAAEwRAIgX20A3QYS34xKtPOQoHUO3ZrixIAnAQ8y1DLtTeZ6OM0CIGaaGWUZu/qR6aucuqC0f0imLla1DxdFOcEn/m4zp8nMAAAAaARIUEFZ+D1/8uS0PrrS+lNOYh4xB29NJUwAAAASAAAAATBFAiEA9eMfDH7z0FVHBGuh8zzApvzmCP61gIxiQO5DKxJtfbcCIHoSThMo1z6Kd/O3KexNvKRvv/qFui30QpkjnCMSAEI8AAAAZgNIU042VULfPIydCWxfDeJKDYzzPBnI/QAAAAgAAAABMEQCIDEk6YVnp+aWBJs7tevLng0j35cB16Kg0euLTUHf56nbAiB3PxJB+l2heyRq0JywSQ/vOYbCxnFKrSHUExcI/SlL8wAAAGgESERBT3T6q2mGVg/RFAUI5CZtinuHJ0/9AAAAEgAAAAEwRQIhAPaGBpUBC2t7Q2C/Hux6SwRr9z4ZFrBLAjBPjCao/bFAAiBi/VUho13N8II3UY5zogRxhvvs9bvZTaxs/xmOPOsshwAAAGkFSFlQRVLrWo7v2uI6gVByvyjegRSoJcJ4dgAAABIAAAABMEUCIQChCxOzQ8L7JY6YEUIY7JyT+e9dH8fa8r0MD+tQy4zGDQIgI7Vs0BEA+RwByIAHLwbE9EkHjL7KLlCoNarrb0fz10IAAABnA0hZTumaiUpp18LjyS5htkxQWmpX0rwHAAAAEgAAAAEwRQIhAL2vj0CBWpWGSiQ1ixBaeic3z4FRRcHfUr5N7tEyrP9mAiBbCLoOj3Qy1GrhNApy6pnyTg3UmiWE/oLFCjkkfNyMIwAAAGYDSFFUPh1ahVrZ2Ug3OuaOT+HwlGErEyIAAAASAAAAATBEAiB/XW3ltK9nVy5jZdReTSO4iHoQiIRSI+YY5mRuSxU1pgIgO2xg40K/dbh/IDS9lCzusRDkyrdZURfM4skepeQHp+oAAABmA0hJRLFOv1ZlEbnmACuyhgFqskl7m5ydAAAAEgAAAAEwRAIgM6usyW5HfSOXCSRg6ar2ii0FvtT9BzXL9XjCS74l45oCIEYDeYIOTF0AJj+fW1f41EwiHaaVSO491+VR/QCjEnEtAAAAZwRIWVZF15TdHK2kz3nJ7rqrgyehsFB+99QAAAASAAAAATBEAiA6QivuaGbgn3CpgEZ6M7TSKKpdNtZCMmIxPOYxw2tNqwIge32/FSu2WyHcbGS4AX0NxL+tkCa3kw1CczcbHKRj9KYAAABnA0haTewbfrPTz6xwJ/pgtTduXq3vTxMAAAAACAAAAAEwRQIhAIUDpaBo5jJOHZ7DLcfEzuq9WPfcgnAQwF5DFjlPy3Q9AiA2BLKGaGCQCLZnaOn9I90AnnnZFxA9pG90pskXU+quPgAAAGYDSFpNBp+We+DKIcfXk9jDQ/ceWX2aSbMAAAAIAAAAATBEAiAochsv0KJLUzUySemeP8miMyWbJs3sC/07C6cjw41StQIgF+IPSiQJYynU/ZARh1qQ+n00sOQdRgrDgdoq9CWZ/kwAAABmA0k5Q3z3QjjUjOOD2wCh7/+NqZMDVSywAAAACAAAAAEwRAIgIPewPZuIEHHKUq+gN5O/olHI3qf9O7I7nfH+BqdJ1Q8CIEozaM78FqsAOjOyC+gtWARvEg2rxnZ8zfT8xGdSEhHAAAAAZwNJOVhgoWue/TO7RcGIM67UXKZgRbO3FAAAAAgAAAABMEUCIQCIr/3BS01jddjyQzNH3/csYw6JJ6yKhGUFJM99RtJ7rwIgKnSdtCTPyubDj2qT2Osn3m5H46ABKKOH+dl715MeUssAAABnA0lCWWpo3lmejgsYVuMizlvRHFw8eXErAAAAEgAAAAEwRQIhAIw23c+x0E8uSI9gwMH4faN7hQGkHEeb11s4oc84m7mGAiB7qHkqwV3zIOO3gcCzWB4hR0CR9TtDAkYu5P6B2pguwgAAAGYDSUhU7aiwFu+osRYSCM8EHNhpcu7g8x4AAAASAAAAATBEAiAfh7NiRiJ2Lb+EM7wIsXw/w/AxSF8MZ9qJPryEAtdK1AIgMd/Z1BsifCLH0f8jqOUEltgkjAC66BavpPFglkq4VgIAAABmA0lBR0DrdG3uh2rB54aXt8qFFC0Xih/IAAAAEgAAAAEwRAIgA4QsQUJnhuSYX7ZsL9KaNO6Cfkg9I92Sm911lPoOm5wCIBDUVbqBfq2SfuWOJyPZm6IZVwTgrZg7BWI3yGFx7bqbAAAAZgNJQUke4cRiUbgRB1/UgPtkGX9OScN+4AAAABIAAAABMEQCIFDX0tFn+n/KI5CYksrpQT/y2OIMR02QxTOKLpy4dBZoAiA1aNMq/rTyvylVZyQ7KTHj9WJa52iXEvKCeJ0oXINJbQAAAGcDSUJQfRS4QmMMvCUwyyiBCeVxngxNZ9cAAAASAAAAATBFAiEAj3BeLCL7i+EZpA0r6834VXnCS7OZeC1VcO82G4fkKtkCIGFwEyVD/4TIInWej2ClyS8izsuEfTRr9+yZXgGjCftqAAAAZwNJQ0HS8pdI+GmGBtyp9IuJZyQbWVq55QAAABIAAAABMEUCIQDY+KqtSaBuUFsNahDifUmH+sM9sjXr53vb0zbiHGMTkAIga5FAB+tMIIyYaa8PgliZr+GNoaHdtz9jiHKMfu6nDowAAABoBElDQlT98Gwes//RldxRX6EocApXhGD1BAAAABIAAAABMEUCIQC4ZZgJABdDhYokjenFDL7QJRYW/F9PhEBmZAIbOA7o7AIgb1TCnEPhpXfvDNtdagXkXSL3IaHWpxDnf8kDxICqzwsAAABmA0lDRVqElpu2Y/tk9tAV3Pn2Iq7ceWdQAAAAEgAAAAEwRAIgZ6grW/7QBYxH6hvMrkiFMf231LqwMYxYsvzX/vwyLaoCIGec5CzTA2QJx8+gXllMlCP73AxyQLQvHIijsm1l89D+AAAAawhST0NLMlBBWQ4947Dj1hf9jR2AiGObqHf+tNdCAAAAEgAAAAEwRAIgVVzviicsRvjuxpkbirgAZoFBGgpwqliEmsP2bjfC+zECIFsihNUfDiugUYQ9tYWSmFsEGmA+V/e99E3aacZ/JG6fAAAAaQVST0NLMsFrVC/0kOAfzA3FimDh79w+NXymAAAAAAAAAAEwRQIhAL0Kv1Rs3eEuQLN1xgVikDObtg8codaMbGs5jyWjWgpLAiA7ChbJa1y2czoPgsaayQcJeHHHl2jEi6C5KLnn0tWMfAAAAGcDSUNEPCDWe2sa4JhfkTq7c5e6vC+7Gh8AAAASAAAAATBFAiEAqse1AQRjPQsOjTD43aEPvr9B4PNp8fC+qKeNYqKxcHECICJr2/avIjyjZ/0Z/aItB5M+AQ7LFIN7QzGG4/li9AOFAAAAZwNJQ0XxboHc4VsI8yYiB0ICA3m4Vbh9+QAAABIAAAABMEUCIQDjj8wxBa20CAQ7ngllrLrEuPoR0/yNhPlPmVkOF7SmFAIgYH4awnHUV+N37lyvDGk/nTCU2ZQSugTJs/ektdrcr7UAAABoBElDSEmQO+8XNs3fKlNxds88ZFecOGeogQAAAAkAAAABMEUCIQDGbFrU/syPCJfZmN/DS9CqH61DXBp7H8EZV3xQaNsskgIgQC7IbYlLetEzeRcbsksND1r4q5fdFin1EVYlWbP7j2QAAABoBUlDSUNC/89fn+t+FIMzMbZod1XRYiOZMWwAAAAAAAAAATBEAiBKJtGlkokClKuU2O8ff7bpHzVkTl3H/i8w5eopjg4mYwIgek63Qs3trM0bslLxLcCifuVNuyLmckOgRJ5kQ5oSXE0AAABmA0lDToiGZspp4PF43tbXW1cmzumah9aYAAAAEgAAAAEwRAIgEJyne9BmcfwW0EEG9olGn9UfBCqtRZbh8tgkT6VDe6MCIBFIAho0EFgFjQSrU0EiAU2rD78MH3Tm5HlsjjJQIyaXAAAAZgNJQ0+jPnKb9P3rhotTTh8gUjRj2cRr7gAAAAoAAAABMEQCIBQtZtuz+Axikn4gP0JOtHOT6Uz0gBJwtrgfENcJ4a7JAiAF0dLtAISbbnSooETHSps1hayWXPTmOQy5meXyudmpUAAAAGYDSUNYtaXyJpQ1LBWwAyOEStVFq7KxECgAAAASAAAAATBEAiAXMXVvceBRJC+Dtgj0WPrNtfKJAk9vawSFxwcgsXCCFwIgYO1KWbe6Sd9mWH5KqLZCCBd2nvzqBG6m/ea+tRscTLIAAABoBElDTlGz4st8zP4Tn4/4QBOCO/ItprY5CgAAABIAAAABMEUCIQCb2Guz4dHVPn2GhUm2EwNEWmA0LJUGjbuNur9koo4jWQIgeHKOx0GuDoGuZJzVh1GkYOh49i1HQ1xdMnWV7DmbQoEAAABmA0JMWOWnwSly87v+cO0pUhyJSbivaglwAAAAEgAAAAEwRAIgEpYMOSyuB3NTOFodjAgRYUA0kznTLrmOLY+j0ihngMICIAnaaCowCkiKtuxXqcLzhilEJR2s5hBVGdvTqsu0btMQAAAAZwRJQ09TAUtQRmWQNA1BMHzFTc7pkMjViqgAAAAGAAAAATBEAiBMe/MuS9WZ7ogeboEIwk95sKUT9wDXVdDZaKXt/f3ZIAIgY+0mhi5uB0aGEQx2ffo6V0lR30WNVh/fS7bU0VMKhFEAAABnA0lEVpLsR98aoWeAbfpJFtnPuZ2mlTuPAAAAEgAAAAEwRQIhAM03p8QzYDGZGdgRqQyJlRwYiav9I+hh7AdPQHMm2heCAiAnWzxqJ8ekqUnNqXGqO3SQUHR0eseqOSZA/B2sdY3s6QAAAGcESURFQYFMr9R4LS5ygXD9poJXmD8DMhxYAAAAAAAAAAEwRAIgRLDDeKCXCMJzYBP390Z+eQc6wQTXp1S3kTEe4Y+XaAMCIFnPvjquzIxzJTFGgBneSC26HKSoDeHFRWxLUMrAUNz5AAAAZgNJQ0j4SD4tZWBYXALUa/ezGGvxVKlhZgAAAAgAAAABMEQCIDqm1bSsXZavtY134ACGqr5xz+jfdHaLXdsLQtOKap+sAiAL5BQ+TksFIXQb+9jXU6Gydx4Gdx7z/zZHwB2fscapygAAAGgESURFQV06T2ISRJgJLOZl+GXgs4/29fvqAAAAEgAAAAEwRQIhAOjspR3f6HCJFgmCaSu5pCwyWVFypSi9zgPKhq+wmSQfAiBLve6hVIAHIEGe+9yDFq7ad7kUMzQBpon0iyEy5MMWQgAAAGcESURYTcwT/GJ+/9bjXS0nBuo8TXOWxhDqAAAACAAAAAEwRAIgFULAgfjJt+W0CS0udU6KfiYeePAt1oOSbQr0drKmkiACIBzoswOWYY0s3RGmhR8JElaoA2X5uqac6tYasUKKlcOwAAAAaARJREVYtwUmghPVk7j9iNP97/k6/1y9z64AAAASAAAAATBFAiEA4xlSfCnJxDE2EMw5AbWL7u3FrhcMEKSMjosbKKxQMzICIH6XWWiy5SOE/562Et2kmQegs3Ff5N477ZQntQxF8AtJAAAAZgNJREth/RxiVRhQ0MBMdvzmFMvO0AlEmAAAAAgAAAABMEQCIFIayqb/n2nwPuMrO+y3TndVR5bMQv364FZlCYKMAWBMAiAdUx2/zZRQanSXZA7qDPXRTqMBgbc1Gliq4S2+vbgrSQAAAGYESURMRYdXc3hK+BNeoO9DtaN0qtEFxdOeAAAAEgAAAAEwQwIgQFNSHB3SSGmKpZpUiPlKnBeYb/MP0nrKYnntQDg8fnECHywFDOD7NdfMx/2cTk7VsZwwgOJ7kK06UI8A9D52mAwAAABrB0lETEVEQUkQ7A1JeCTjQryw7c4AlZFCqqdm3QAAABIAAAABMEUCIQCdRbnfzurdy95SsMcSKJ9chgKmW/sJDgx8Zg47oT3ruAIgRmtnbG8o7Hwp5tNOaVJQivU9mDo+/Okm+r4U4w+Mok4AAABoBERBSVk/55QGFuW8R7B3Wg3M9iN4kzU7tAAAABIAAAABMEUCIQCNQEf/ADWsqY1K5jXCcq6yslpPAApFsd3I01izv10IUgIgLrf2CLUZhTSoLPhgfawYopU8mYfO8G10PVASKu1N0yoAAABnBERBSVOhTqDhESHm6VHofGav5GCgC81qFgAAABIAAAABMEQCIBB9qlhvF56T0xr848FehQD3IuLrNxo/vSLx8HgCB1W9AiBXDJqH/S8EPumeFRv9iPIObyP4QC0ALqood19lg6IyaAAAAGkFU1VTRFn1LNzUWL9FWu13dRdDGA7EpZX9PwAAABIAAAABMEUCIQCdNVo5PFuBqRPWOmmrzH+z4rENjsor6hab7ybrMsTBeAIgbST0+LdlKgkIjCwmes1Zf2Wk368KIuCq7HM+lJlDEq8AAABpBVRVU0RZwngEH92CSf5MGq0Rk4doV+6j1owAAAASAAAAATBFAiEA8mT8LmCuB8aYninMhKdXM0R2tdaDM0sW/KhUZltz3JMCIDHwmxx16jtwSHunoMQs428fWrF4rX3zvUQUw2la33tUAAAAbAhJRExFVVNEQ+tmrMPQEQVrAOpSH4IDWAwuXTmRAAAAEgAAAAEwRQIhAMYkvAfWpIOiqsEJqZ32ynC7NLpxh9UZWLLCaIvJdIp4AiB5Tmh13MtdQ2E9t87VpgPcyRtHPqBnDkFoNnF7OzEEUAAAAGgFVVNEQ1lSdIkb7EIbOdI3YMBKZ1XstER5fAAAABIAAAABMEQCICgCZoaQQGdE/zFiuh7Bo1iIQPEbwc/49a1AtSmHSo9VAiB4PmxneLGTtcXN/RUH5f3FwuMw1yrX0uDtLxz0Z57ThwAAAGkFVVNEQ1MzkbwDTyk17w4eQWGURfmYsmgNNQAAABIAAAABMEUCIQCna3QhxBzkagEB/ooz+hafFGBlIgK86G8Sg1Em4upZ+wIgTrPW45jhp/oJzuIMmta9XHjEvPyneRnChJCD5ink1+QAAABoBVVTRFRZ80hC0FociIygJ2mmM983F3QVwvgAAAASAAAAATBEAiBa85UqoeD0q6RuGRdi24RIol1gOkoHxBf1OkB23i9SOQIgLhjwU41pfFVPVjgSvVw9FR8TRZELULEYdIidPn51gHIAAABoBVVTRFRTKPrFM0yfcmKzo/5wfiUOAQU+B7UAAAASAAAAATBEAiAea0XIqc/TWpeOu6bwlknxJPl5mIbYzEvjdAlNIizO4AIgRc7Xe1j3gVOMiM+4TrhmVFkzK4byQp6upraw7c2K4NwAAABpBVdCVENZjIESGxUZf6DuruHcdVM0Gdz9MVEAAAASAAAAATBFAiEAuBo6FzkmGT4+ufhhQaSIfYeRXJTb/2bxx+3DGUdzZHYCIB2FIATrQBtiYx5MQ6a9lSVirbvgrKvSUSU8onvqLmWmAAAAZwNJRExv69a+j6Rb5qXuthoXyC0zua3dQQAAABIAAAABMEUCIQC/fEq99TA0Odp/l5xJZd4XEClFizNjldMP4au6qRLlkQIgIrH2WNRjhs7/3OIyKYSO+oymr1Axqocu1ZGcBaInNJoAAABnBElETkGQFwVPJeJ0JYTjpAg/fz5rw3MsGQAAAAgAAAABMEQCIFl5rmdhl59weuaFDfx0IBvY2KkQ1fYb7vZhaY714t3UAiBbIwIDcBIuuadXAj6AwEjQw/B74pq/o8Fb2+n8G8vdEQAAAGgEaURPTHWRownfaL9DukLdEbA0QiCiYAIKAAAACAAAAAEwRQIhAIvrho6HBiO7wEoC+kZNdOPZMoTCt56oFMxJnXNWWAdHAiB1kotUrdGO4rCr26VZodoU6T0ka4jyJ24k9Npk0FKMXwAAAGgFeUJVU0QEvAq2c9iK6dvJ2iOAy2t5xLyprgAAABIAAAABMEQCICQz6+PjhRBFybi4jkJtb0gBwPnOno7UaheHkCLrGgyRAiBFGiZPmwKhmzl+uIuSxFa3wUHbJUy/L0EiVdrZkcS3tQAAAGgFeVRVU0RzoFJQAQUgXTTa8ATqswGRbagZDwAAABIAAAABMEQCIDdVy8yxUzz7W+rc0XRKjsN+PYHdn/vWiVLrUpMES5z4AiA8zd8i8jCBS30PWPwoVKIFJleufzo8kSHcCIbMnzDOBAAAAGkFeVVTREMm6nROW4h+UgVyf1XfvoaF47IZUQAAAAYAAAABMEUCIQCpnRepIo7IvkWWSKPxDBUw9+jA5ZM69NJLNc3/i2HiVwIgH8NGtc0d9LxgJmt5WUfBoSADvLaDbhTsuCI92M184DIAAABnBGlFVEiFmpwLRMtwZtlWqViwuC5UyeRLSwAAAAgAAAABMEQCIBKh6IQKpqznRQmWOMCPlS/Gfy+xxP9VhqgAph8xSIBTAiB+xIBUdQyWe1/VT91CnLb+xzfldPwPVlKqxgCzlArFUQAAAGcDUkxDYH9MW7ZyIw6GcghVMvfpAVRKc3UAAAAJAAAAATBFAiEA7k1zTayDRPKvmFn2y80+G7nGVkfnL3inrXvVLE64qD4CIGM4r/8TSX6mWwX6vNUaeR+YElwZnkVHQOyyqGDXvVw0AAAAaQVpRkFSTRVx7QvtTZh/4rSY3brn36GVGfZRAAAAEgAAAAEwRQIhAKCNFpGdNhN54wapm8YYRGpDjLHK5brwviGJQNEuzGmpAiBh+uUC5aJMo/8YnMWoGcNEezrx7GGmi4+GrkNvZdLLrQAAAGYDSUZUJzHRUcvfhKikxtnQuudAEttR5CgAAAASAAAAATBEAiBe8G1IyvvqwrKf9+2bW51phnbzdc8zZIeY6R7ZqcYG1wIgXRR0KPmFOAKwuo9fEDjIQn0EMhVWmJZ7GJ61dxm5Am0AAABlAklHiojwTgyQUFTS8zsmuzpG1wkaA5oAAAASAAAAATBEAiBe/V2skojz4bCPmZZmEx41xuF+LfBDZJLnLe1cylavPwIgSILFQ1lXcaA2hWMeFh6EXbDSCTZR2KtZCaQYIJiWEY8AAABmA0lHR4/+QKPQ+AwM5rID1c3BpqhtmsrqAAAABgAAAAEwRAIgba05lmbumJBBJJtFU4KMp8X3f1x3tsDwXGnq6EmVc5wCIGeLS0MoUGze+FGmDPmYOoBYQdggHE2fYEzqo+GgxFDGAAAAZwNJR07enUGgG7Ean0HnCSQoJOVMORcITgAAAAkAAAABMEUCIQDYBMKyBOmgAajmMkEALTLe4NNGbGg0biv7SFU6YWrr2AIgPDbeqPiGzsjsfNLOC/QP3ZtgpDzGqXm00lPdYo4Mi6kAAABmA0lJQxZmL3PfPnnlTGxZOLQxP5LFJMEgAAAAEgAAAAEwRAIgMxiZG6b6VxFj8dVOWfjvw99KKWSFOhYT2IQgFkQYQMMCIHTBtaY0HVySTG6JdOUiLzmCoCE99gBOPI0YOk7CBGGyAAAAZwNJSkPH/x4SbMgegWkV/0jJQO2dTm0F1gAAABIAAAABMEUCIQDbv5RIVV/zhPBJiy4LlS8HMX3K0paarrnN5MR26R7yeAIgVrIt7V/0Pz3EE1+tZXBbisc8djYsgggjj+g3Z1IfEwkAAABmA0lLQoiuloReFXVY71np/5DnZuIuSAOQAAAAAAAAAAEwRAIgT1Iy2mF/LuagrXwBIk2JQWo2OrXw+36ONja5+ykTadkCIGKHaXho7NpJoKNBqsIpAEiWbGjJvuopjIw4mseM+91yAAAAaQVJS09NUGpiXdsuKi3gJXxRKTZN2Au0r6O5AAAAEgAAAAEwRQIhAK0rqYHSQq0yQwPmFcYBM6LgqQtxjTdwWolSw4VyXpWhAiBAE4QUQNNupktsF9P19i+LIIbM2LeUFHJVCduMtSDFBgAAAGYDSUxWdn/p7cng35jgdFSEeQm16VnXyg4AAAASAAAAATBEAiALVXIxQ5h9HmfDjtLtmUejf91ZOQLffJ/1LmhZB5szTAIgOMdL7ygUmMdCWssmERbnykyeNa0Jn6RieUdmRwPInSQAAABoBExJTUWdC2WnYnRkWynkzEG48jCB+gn0owAAABIAAAABMEUCIQClIKZ9cV+gxiA4+fI5Aqj+6cmAKaTUqlVpEyaZO2GfbgIgMYOE9pUkrm9WjRA6X5L/R5/BUq1jOU622NPag1MZgC8AAABmA0lNQ+QrpVWLANLmEJzGBBLV1MlHP+mYAAAAEgAAAAEwRAIgScEnMwuoyapz3GpP8Qu7pIjcJ5Zozuc8Xmu48JZbJz0CIBMARNH0kzemgvQsoFy2GrXBQPbKl1G0APR3NmMf37TaAAAAZgNJTVQi5fYtD6GZdHSfqhlOPT722JwI1wAAAAAAAAABMEQCIA5Pw1TqvUGsZZJoCuftMQtEIWVBxfAVrCMsqg+2txkuAiBdwXZRkGXgCgdnbsMEiOnNYfCQ2mz/+LT1TJT+oJUXogAAAGcDSU1D44McWpgrJ5oZhFbVd8+5BCTLY0AAAAAGAAAAATBFAiEA5eX2Nvex8lVwVHF7+ncWEGANRqOgPn7uXdWKzbg2FGcCIEQhvqSPkrclubg35F0hr8JQSxnY650ySr8jaR1OL1kGAAAAZwNJTVj1fn58I5eMPK7Dw1SOPWFcNG55/wAAABIAAAABMEUCIQCbGpUyWGvmtWL2THtLYZsy23Mi74G6+fzIkIMb7ZYVqAIgeiCgv5F2OoRZq3Q0EfQcq0w6Yk9KZGriJU9ECX4AzbkAAABrCElNUEFDVFhQsSSUyIJPwGl1f0fRd+ZmxXHNSa4AAAAJAAAAATBEAiA+iZ7qRcEic87/ndpRIjgQ8hW8FnwmHnV+Hojs+hVhmQIgV4o+xYqXoq8o1BsEmrDWnuDY1Lth3PRLLKCngYYcnj0AAABoBElNUFh7Nc5SLLcuQHe665bLkjpVKXZKAAAAABIAAAABMEUCIQDkqbgWcXgEZpwSpOKcs9Ytp3qYiSdt7addfcr1pLEsywIgOvaMmo9r8eL1m7ckyvo6Phr4vPHxv5OhGmVpfL59Ph8AAABoBUdCWVRFMfad4SfIoP8QgZwJVUkKSuRvzCoAAAASAAAAATBEAiALac2mAzXl7voHr3ANmhJhbd6n6+L/ZQ5PN7dnYajALQIgURyjiOKsw4qmFYqTX7HxbAtD15yp83TzELZSz8WOZo8AAABoBElNUFQEwXudOymnj3vQYqV89E/GM+cfhQAAABIAAAABMEUCIQDJy9RhVwDeqn5FpFFoLiwsqnk9qTqFZTSagKYCJwOStQIgLnOTnVA5z19rLUQe8Peg6mZ5acYsWzoAmrrMUWOqY/UAAABpB0lNUFVMU0VpbB3k5/R11SMTcsR6Yn5M1s5VWgAAABIAAAABMEMCH1A4EI2M6nAsKxebZ/KB/k0WTcFZ0R+SJi1apmMUdhYCIEJUkGBlYvp/zDx6gqGR4p6M6O8A+XokG4JuZTNjU9UQAAAAZgJpN1YMx96BsqWU9lGHE8vhIrzyl6boAAAAEgAAAAEwRQIhAPZzWA9Z56Z5Zrqk8GUUwlvIjKdkDebY/x3/JSfHwylIAiBk3/AdfK/+5lAAgM/7bTgNjOHSgsu+wn/VH9wI0F+ulAAAAGoHSU1TTUFSVL/gNwett1tHit2aAZeAV4A/SA5EAAAACAAAAAEwRAIgTXM7F32uSat7AOsfE588Xwt5dZ4irTHH5VuxhQ4KewgCIGm2jsgFw97Yp6+e4QeMeH0Ovmlh6qvfmvo+ppbrto1bAAAAZgNJTVM8QDCDlwiiD9L7N5zxGBDd5IiNkwAAABIAAAABMEQCICPZcJeNFmoBs1EdLLdiBauIjOCC5+2/A0q1+ZA/kIL1AiAr102XfiVizYp3kTWe63TzlmqHFtmszDGLrwyMAHR+rQAAAGkFSW5hcmnKdcQ/jJr9NWxYXOeqRJC0ipXEZgAAAAkAAAABMEUCIQC+jekRy0qqIDzmUoBgHQ2KTnPUcloFSVz3tCf0pLfquAIgWPjAuh12youQmgM0qS/AJkqEzBNYHsmQePfmX+oS4jsAAABoBUluQml0nBLZsSIxMLZBFU2NPbNfkdgcjf0AAAASAAAAATBEAiBe+h55K0BmSZYIeYXqaOob9eb/TpngsXuiSoHZFva1FgIgPV9YRbW3+vEEGWPOE+nj+tz0nkA2E8Y7Oeq4iMiAdSUAAABmA0lESFE2yYqAgRw/Rr3ai1xFVc/Z+BLwAAAABgAAAAEwRAIgGv/6vGQQub1xEiyNmjae/6uMP7zprcOMnXgH8bxe+s4CIFuhwu2dW0vXsb27StnvnrMA7JH+G3F2yGo8wfnFBqCrAAAAaQVJTkRFWAlUkG2gvzLVR54l9GBW0i8IRkyrAAAAEgAAAAEwRQIhAJGeuBTdF1pGI34r+lT911XcV58LAmGM2YBMpxopkOvvAiBFmPrtDYn+jOwpLypHpjA8CYuAjgxffNaYoLNHf/VYBAAAAGcDTkRYhncrFAm2HGOeqsm6Cs+7biOOX4MAAAASAAAAATBFAiEAypDm/ZmvBVsy/2ftUATx1gGFZTdfhgbl1IwnBLjkHLgCICSqFHEHuic3qYCfxfZAbhDjJtbP/o/gfDyO8Cpy65sUAAAAZwNJTkT444btqFdIT1oS5LXaqZhOBuc3BQAAABIAAAABMEUCIQCKOoBYYv+kMkIz76/d0RHWhagorrwVCOiK4sa7qVL5VQIgdx1SXZlsrBCyyt5ZVS8/9G+pXKm+bV4Ah2OE7qMcCBcAAABrB0lORkVSTk+mrMUxxufHCQyWgfHc0YE6bdAgrwAAAAYAAAABMEUCIQDr9XrKacADoRMTzT1Zf2j9G2UsCrFxBeV9U2SDS6zL/wIgS/tFpg2lAEjkbVI6ur7bCOkpHZxn8uu+X+rh9v7nEt4AAABoBElORkkVl1EyOp4EFd09bUKhIS/p9KCEjAAAABIAAAABMEUCIQDOF9GtAusNDTokIyGbWTF5wCUSIFb9Vj9wNVU2DkJdpwIgIFcXlydLBJq1e9cMermeBvCSvIltvNha5We9QiwxYtIAAABoBElORlSD1g567VnGgp+yUSKQYaVfNUMsTQAAAAYAAAABMEUCIQD4Vigahlzjyrl7+1wS6VUWpTn/NYyRtgb26urT+slSdAIgNU5jEXcq3yGEoYCCee2iF1Q13/5OcvrDOeaScbe0uPYAAABnA0lJSfVu/WkcZO921qkNayhSzpD6jC3PAAAAEgAAAAEwRQIhAPhdGyyqHhunIqsIhjmgX7TNBQpctg71oGIq/Pv6QjdsAiAcqok0D6cxBSfJVEethycOpL3kpVlg1SQvCJYsLJuS2gAAAGgESU5GUxk0CMoFdrcxVu1Coup9b9P2UHFiAAAAAQAAAAEwRQIhAITJmLbKdpBpQ5X8mqqI5Uyc2W2PE9cMCgOjTYlQ2ja1AiB+FNLuFxVn4jzB2GLK5K568d0oNDOMnaooPZR0cYSMWAAAAGcESVBBRDbte6rZpXG12tVdCWwO2QIYjW08AAAAEgAAAAEwRAIgM3bbXx3XI7Gxo7Abzo3yYrMWTY5Nmi7wLjqwRHnpXxcCIB+Cso5pmSZ6Fmi6GBKnmNvhxqDNsOFqTqiEylcBtzG7AAAAZgJJVH/k+60f7hDWz44IGYYIIJqSdZRMAAAACQAAAAEwRQIhAP4xtTaWjEva5ufogaSV7f+PXsgkG8WjXCWfBavPD2dtAiAdYyEKyBZSZHLGFNar5R2MIoDw5dW572cqzJpOpTiDBwAAAGYDSU5K4os7MrbDRaNP9kZ0YGEk3VrOyjAAAAASAAAAATBEAiAqbylvifieTGMCtLyLIXpBnyjNF2oomNP+O7Vic5xYbgIgRNqvbq9s41OguaNPJ2jC0JcotKABsNiGpbWa3sO+BPcAAABmA1hOS7yGcn53DeaLEGDJH2u2lFxz4QOIAAAAEgAAAAEwRAIgKQv+nEmAld2W5Xx7hy5Crw9Thueft1OwwZ7nUtBBM9sCIFcOPXuobV+X/Zs4x+72OGgiHr6Yi4uz31bPiJhN21QPAAAAZwNJTEv3hGgsglJuJF9Ql1GQ7w//Tk/AdwAAAAgAAAABMEUCIQDQa7fLoyvCWmWZcHk+/fNWrv2mC+Rarymt8/ZwkXat7wIgLC0gaEUfPA2kU+2wVwZSahXrbcw0vqDW/FtbFIXAqscAAABmA0lOWAGNfReTUPG7mFPQSYKCDjfM4TqSAAAACAAAAAEwRAIgZMKcBRC67BYpZ30Y99lH1X+n4CNhASK1LTg/Cx5OWAgCIHJgdWrAyARVUXgpQWGBkWA+W03joN/UhIaT0zRrNoAwAAAAZgNESVTxSSIAGi+4VBpDOQVDeulUQZwkOQAAAAgAAAABMEQCIAv1DrtScUkvj4XN/hvqRm0bCSR7qtlbK+Gki66hOwYMAiBye2T+cpjIuoPqOuaGKLmM9F0wNnH9vqX76DicYFVfwgAAAGgETUlOWK41Pa7tjcx6mhICf34HDApQt7akAAAABgAAAAEwRQIhAK3PZ64XiNUz9zich87Mjoo9isn4Q5jcZ/CotFbkaKm/AiBlrwxakpnLFSH/TuDvaFBIFMWhN8+5gtkZYeSGzDlqfwAAAGkGSU5OQkNMDMn8z/gSUvS9jFxrNZsUri7YUc8AAAAGAAAAATBEAiA6JiWN/J5hE4MR3tEc+SV25gFG7nwZv5cNJVhs+/e4rAIgcshi2Dk+F4R3OHY5W8joW8hLAB8bhKcOqKUC2lHdOUIAAABpBUlOTkJDtncYuY1SMYJAxS5xqJgzXaSijEIAAAAGAAAAATBFAiEAuNMM0c2UpxVYSVTWhz7klvNIRoYVFK9fABHkJW3TtQcCIEmx54UCsNvMQESn0NzAsj4jOamdv+ugI92Gn6q+LbdqAAAAZwNJTk/JhZ/MyHbmtLPHScXSnqBPSKy3TwAAAAAAAAABMEUCIQCisNp8Qkj1UxcSZY5ukWY2Gkb0uIHaZBpx1Hr3G/xW9AIgUYdzSnKY9QCxHGwPmgOwACcwQ8iWj6aar2BeWlVAZfYAAABnA0lWSakUZKvUYlojq3GePw/OhNrdVOVGAAAAEgAAAAEwRQIhAJ5OFbBTDJlHAL9eAyobqeQn6gZBRzqujKYjGp5DhGdpAiAP4AGp0sTkYm6ZKvGcGZ5Ejn8iCqeCR2IrnHTCH305bAAAAGYDSU5TWy5KcA37xWAGHpV+3sj27ut0oyAAAAAKAAAAATBEAiBGrdxnKq/9LKYSVd/Jr+W7kCMTWcQMdbcnyB7dKTMPVgIgR+MkAkL1UQTs/8tByiwoJ06omYxGHhcba765U5SaB8AAAABnA0lOQheqGKS2SlWr7X+lQ/K6TpHy3OSCAAAAEgAAAAEwRQIhAL0grTqXJw9ntp4+xgCq8HHZ87ryRTU+t5ORLXZMJ2KqAiB16qmp26cLGIZhY6Nn8HFOwqLB3kdfd0epo4SjswVzqgAAAGcDSU5YhP4l85IfNCY5XIg3B5UNDAA2dXYAAAASAAAAATBFAiEA870Fjp8aeUadgQvJ2egN3dA4jBKSZUQX+TIpEWMO4Q4CIEUuY4nSUsm1r85+OJK1MQ+UdisMz16E4Nytb6pTNQjhAAAAagZJTlNUQVLHL+jj3VvvD58x8lk5nzAScu8qLQAAABIAAAABMEUCIQDXjXvpYuZMmCWHDiLAfvamr9UFf2y8UPhbaGiEIForGwIgNl9Dn6aTZaOVjFkWh9dt3xhXK8794a/H3o0rUP6JvH4AAABoBElOU1RvQNSmI3wlf/8tsA+gUQ3u7NMD6wAAABIAAAABMEUCIQD6JhLYfBdthSfcqYu+xTXgSbVtskUC8WJwXoMKDnHPNgIgK6TLjqumrsXIUS/YOfEzuIvT4P2ZQvXjiGCmmzIKmUQAAABnBElTTEFpfvMrSj9aTDneHLdWPyTKe/xZRwAAABIAAAABMEQCIFpNU+oIx7+JaUH8KZDRIk8ytMqGEedxnwH0wyDAosnxAiA1poz7ky4ocEqgWaqBsyHof6msKisuLIG/JaiEPI96dQAAAGgFSU5TVVJUTEL7uWs5sh32HPMite3Che50KQAAABIAAAABMEQCIHQPQGOrDkCw6VOi/kW/NNXnO7qAJHxKGQ/3hbL3CmKpAiBeE3zxpsktBFhhO5Kyg3SYtZwsYPgb/lDD4/NnF5bC1gAAAGcEU1VSRcuGxqIstWts9Ayv7bBroN8YikFuAAAAEgAAAAEwRAIgfH9YZ0Y3lzVUAU4WWep717R8QjvuDdMAx/Yw+Dl9p2oCICp6cxIWGTXMP+Hn/dRK2xmBlz2rMLlpE2nBRvhV8HL6AAAAaAVTVVJFX7WkrFsE53cjC6M4EZXv9qYMOTTyAAAAEgAAAAEwRAIgMaKWXL8/042Xj4DR0O/fp00g1wEEH3gxPhHJezGurRcCIE4+gqlZXXGpDKWdWNGburxixlp6UENGsy/2vJzF95XRAAAAaQVJRk5GVLLeP/2zQJ9gfIKxzXd9NPSJ6dukAAAAEgAAAAEwRQIhAL54b/srV+2wtk/fJwSOECvt0/iCS4je9cd7lNYr9esSAiAoDXmLYXLLhcXQMqSyBkF8RrSlDFmcj8mqQE04JqOrUAAAAGcDSVBMZM34GdPnWsjsIXs0ltfOFnvkLoAAAAASAAAAATBFAiEAv+fbF1lc5XFA1fB92WWWlbIBjvbZ3NyTWUCH1y9tRygCIH1f2/adMlzkD6/l6lHDA4PW8M+SlUPShsNQxmtZIBRoAAAAZwNJU1LUopOui7ngvhLpnrGdSCOejIOhNgAAABIAAAABMEUCIQC8/dMBsfHPAancOhjYvL2osrr+F/3GeWKI32K+0yjMMgIgDu/mFbiHr3bKhtzFlnmq/rE+hpR4Mxu88505F1m6LaIAAABoBElUR1LVAvSH4YQf3IBRMOE+roDGEYa8mAAAABIAAAABMEUCIQDi9ugr0lOFl1T5jZag8aGqhDIWgkmbai37xY0iUTcTwAIgOizSjUJ/0PBQ6B1H+M30asXVBpPJUgNRX25jOzn5+pQAAABnBElUR1JbyWAX3MrKU2AdkhJcXG24HQANpQAAABIAAAABMEQCIBZSJ9HiI50EIS2qCMrqLVMrcTwH+ZVKjBCqv1YBBfrtAiAlFLvR2628aIJlDRCtSJt4e4N/hwV8NbtdAcAs5BhhkwAAAGgESU5STUjlQTtzrdJDTkdQTioi0UlA2/54AAAAAwAAAAEwRQIhALNiJo4+Ol2jfknllGTGZ3NzBPz2m/JVWonXrEwJgABtAiBAfK9Xthm9NN4zwZxeGlS0LgxIBWgvz3cqs4cPCzBqzQAAAGwISU5UUkFUSU+6jqFbZH9U2f+ElnD8qs813yGkVwAAABIAAAABMEUCIQCtuzI1LHDc4hVK84BcVoVq54m3PjPI5IITOJc9A09fHgIgKritWUcs/aMDSeQFmbt7lKlYxeIN59iQJ0HiETzGEoQAAABoBWliQlRDxOFZc+b/KjXMgEws+dKhuBeotA8AAAASAAAAATBEAiBiAHYpnNArmMEv6bQ5xqvPHVUhK92WMAFOO/28evVLagIgXccJqPsnBjKkmymI7w+he+KIZiSmsMqEkEBgXmiIhJwAAABoBWliRVRIZ7ZsmdPrN/p2qj7R/zPo458LnHoAAAASAAAAATBEAiAeVE7wh3f4dwVmKNgJghISVH9nbRcIF+MM8hQZz3ZZ9AIgYmEfSrnk9GMh9eexIs9zIU+Qv9HLQuQRYIyA0cmcnUgAAABrB2liRVRIdjLuozESUP5MMmj45oT3yHqC/xg+wQAAAAgAAAABMEUCIQCuA7wjXfNEJbFlTHhAz7MQJy+c2Ou1k73+zVfN8btjTgIgTubr4Sb6SrmCHLd724nuwewsvdZuAI7oT419m5eyGdcAAABpBWltVVNEMGR6ctyC1/uxEj6nRxarijF+rBkAAAASAAAAATBFAiEA8H/4a+zvOZtQ/WNTCsXmdpOQD+MH1fvNSCZGxQq7gbECIBVH3D9r4QxcjF33S+pXfCYY3r+68ynQGpMerQ2gOiSmAAAAaQVpY0VUSHwH96vhDOjjPcbFrWj+AzCFJWqEAAAAEgAAAAEwRQIhAMZx9xtLUI/b2lKIK1lCLysKPLakN/bfF5EQZ3v9wTjpAiAJxaU0XKjdTTGQzZbZGHiOX4lfFi8z6Adk8LEjGpNjdQAAAGgESUZFWKiRz3Ku2mklcJKO/hqDI0LpeDzcAAAAEgAAAAEwRQIhANfwg7IifKgBIFiGxw+QPPtgXDq4PrZqpHkZvdXP7p2cAiB27F82YlqvI9nCruAIPjpDZ811jS2BPWorFXtHNlyXrgAAAGcESU5FWKLXf4NTyyr9cJq6SpZyV1Eez/cWAAAACAAAAAEwRAIgWjLjaBBfht5E24Se4zXG7VC18wdC2M7cHAjRS0WkGWMCIAY1ZNvGu+u7aGFB51oNXFJ37sKxBDrLQ2iOp6jq0qhRAAAAZwNJTlQLdlRPbEE6VV8wm/diYNHgI3fAKgAAAAYAAAABMEUCIQDxF/IkzIa8lVW3FeDraq+rHt+/5Z5gH5/ZzENpGUB9jAIgJeDr9tDN+Wp4B094wtYE1ZeJajvylQVhxMBrQBKa4KIAAABoBElPRU4eTka3vwPs6QjIj/fMSXVWABCJOgAAABIAAAABMEUCIQCnB3U6ZN+MMoLR4LW/Dcxk5oZy9L895kIUg/cEwo7bFQIgR5wga97c2/lOQMIgyyW7tEPgwBX4/V2agtXFlabVSBgAAABoBElOWFRKj1+W1UNuQxEsL7xqn3Dank4W1AAAAAgAAAABMEUCIQDmHul/2SYn2IDnIk56YAnM7UMd3txsy1ugpQUKMy2I9gIga5E65rh2nZK5c6p/SxY7jEY16MrNmNibuq7SzARRTgYAAABoBUlOWFRfqABsTKVvJNaDZyfRBjSTINt/74IAAAAIAAAAATBEAiAEwaorKOXNmS2VkeQDYxSb2gDziRPIfqGsStKbO9oH6AIgfsGo1SYMeHMeSz6uPx0FZAn57pg9QZ3q6UfMhsyTMwAAAABoBFRST1Aux1WJhWViZGr+OTRVmGytJsTMXwAAABIAAAABMEUCIQCsmXphSddsS+posAhlS5RcCEkWx2zfP+69L7ZAtBoU3AIgYUbetF07FLMagHt3xj3/G0SxALPSlhszu/PSVbjxR4MAAABoBElOVkXaxK4Yis48iYV2Xtxsm0c51IRd3AAAABIAAAABMEUCIQCAlxpw/jfObdyovX3I3nLTQV4BJPCnOZjicKSHiYXMKgIgU05IIzoSDF0RuNgIObXSZVSRJxdy4C30KBMBP7F4xrAAAABoBElOVFh1M9Y6JViWVHI5jvRzkI4TIFIK4gAAAAkAAAABMEUCIQC/V7df8OY+6ZuTmzx4YvHuonqAgEEaqP6CsDGL5b8y2AIgPQDYvrFesYKvudGMXxzyoJ3BZ9BiHG0Icn7INAS3OlYAAABnA0lUTyk7DNCZHbB8hSn+uwG8fQUjFcWrAAAAEgAAAAEwRQIhAPuFA2TDlJPgEJU8RHUfhZlGPIjyTCUYUCsuOX1HIn7pAiB0AzYFUQR51LMr24pnyZLdn+bjSA9zyzb10FrJP0i0oQAAAGcDSU5VAPKRcde83EZKB1jPMhf+gxc3crkAAAAJAAAAATBFAiEAyoIi4l70P2WZrieKwnjxwOBTwZxAZ7R+CgGbfb3YoWkCICHehxI/swLANV4c2tsxP86M2NbHEdQ/UOi+vM3KgQAJAAAAZwNJTlbs6DYX2yCK0lWtT0Xa+B4lE3U1uwAAAAgAAAABMEUCIQDqhrzWRytQm6xJ+6jPqaFB/QoHmz+jjTjteNMUB7Qy3wIgcZao777n60P6PElSGPb1Fpzx0GJ4Tws2FQEDuiSTJLMAAABmA1ZOVOkSuLolE9fim3suWxQ5jb93UD+0AAAAEgAAAAEwRAIgLQIV2q2FIyB1bKXPfWedhfEykwW2hlszsNrYcbHO0WgCIAZw8j8grbPtsANic7CckMB89kR7druXF+1d8iMR6B4tAAAAZwNYSVZE8mJiIkgCf44qj7EJDEz4UHI5LAAAABIAAAABMEUCIQDLN1VSLx2zT5sldc/It88MjxkKz9hdr+njAQhGOQH56QIgdf+gquQ2eWke+cpzBuFiyU8qtQMx7YvrCQzycH8ZNnEAAABoBUlCVk9MYn4u49vaVG4Wjqr/JaLFIS5KlaAAAAASAAAAATBEAiB2o5TXhjXk7YoKYs9HQbkd5K2pBvf/vQPV+XKwxNxuJwIgUTPrI3Ld5mIflhd00sd00e6Gd2rgKA1Ozfg7gn9vBYoAAABoBWlCVENWJZDx/RTvi7CkbHqInEy8FGUQ+cMAAAASAAAAATBEAiAA3o5UpvpbtsmUrehyWnYyhP7HQMN13AlvfVb4RGy5WQIgV/gr+H96XoG7aFY9UQhHMYAksukMUwxWs7WzQZgNuaMAAABnBElOVlJB1deUMakTxK59aaZo7N/l/537aAAAABIAAAABMEQCIHjD0I2VkPIRfUKFNfZI3aJJEUySvb08Bn4bJqdvC3dUAiBne3u87XPsUruesvyDBoPz9OgpssD4EiqQcNOl2MKdsgAAAGgFaUVUSFY6cH1W1TjoW3g+jOErNG5/tlEfkAAAABIAAAABMEQCICnDYL2adUUJbhaKlSUu/jhYmKbYPGc8tWh0Uo4apgG5AiBYAX+YESCzfzkup5fBSrqmrC0INHjBHiZx//wRJdcBMgAAAGcDSUZUdlSRWhuC1tLQr8N8Uq9VbqiYPH4AAAASAAAAATBFAiEAtWBM11wsBzlPPtvQYzH2InWBJkvt2pka0S1MIvVPbrACIA+KI3yCogkOiXVEiGs9FJ7RIBea2k03BAalN+ECHCryAAAAaARJTlZJNWpRYPKzS8jYj7CEdFRl67vtAXQAAAANAAAAATBFAiEAyJM4mjXq5/UA0ENfeZjGXNnSx/U3OProog8nlh8PLZQCIBqEVkOGNwcISZV++/IYyD63LcCubonPKRpv4n8rAy4tAAAAZwNJR1CN8b4P33Fhpv9WyBidfhA1hyepbAAAABIAAAABMEUCIQDUtjxw7TpSR/V+LecJrwSPEoQfVz3uBTi+WlIDDUPwswIgBqDyq2E3nJSvvZiH+XG6BpSesHP/BeREpZer7f087LkAAABmA0lIRq8SUPpo197NNP113odCvAOym9WOAAAAEgAAAAEwRAIgCNTv+z1N4tUcmH736qG5KNEMjc6VwgJddSUE60DswYwCIFFdLbEAFQ9NSyV97x0ok4nepZBN6jIEo+wBKiyN6Lf3AAAAZgNJTUx8pZimNmR7EUKSu2bhM2hl/CYtEQAAABIAAAABMEQCIFnUgTLgKV+EuEovZUA1yjAW12kR/y2Fdo59Z4XQGiPTAiAHx5dA5bX9igIphLt0sOmQcMzx7aytijrFiosNlTlw5QAAAGkFSU5WT1hEhVYdt2YU/3J/jgo+qVaQuLFgIgAAABIAAAABMEUCIQD38FtGD6qnBxT1AfuHP12uGOc44oSPiWTcXMb4jFa+HwIgQd/5mFc9Fsx5nPdOYdhISiLNcbOjdazpyQbKcCmDsqsAAABnA0lOWLvH96aq2sEDdpxmy8aatyD3+erjAAAAEgAAAAEwRQIhAKl6ZvjDp5i1aIKp44N3hTK9ktt69g07rabAjltUPbKYAiBkg6mGSxs1xVvHXg8MSbUBdKdSiyoE9txjZiKIa4UD8AAAAGUDSU9HHEt9DhiFvXZnrzN44MU4905xIAYAAAASAAAAATBDAh9HKtkUqskEMXukrpR4c7VUG3/S9GGaMc4LsoDs9XwQAiBBH9Uj6t0kxgf928O45JFGOLABwr091joRjDbIibuTlAAAAGYDSU9Jizhw30CP9NfDom34UtQQNO2hHYEAAAAGAAAAATBEAiAEHtHWBsh7nYhr0tvprz2m7blOYS9b76CFFlN/vstFTQIgB+xBa6blV6QIjgRWkvmfig1WCBW5IxXuGn1OooTNg00AAABnBElPTkO8ZHqtEBFLiVZMCnqr5UK9DPLFrwAAABIAAAABMEQCIBqbMljgupayGBIFx+J4zbHyE3RXqw/pOmiLbwcowNk2AiAHu+JB5nZ9US4PNtpfZ9lvkbqP/zyV05BdqicnBcEzgwAAAGYDTklBWcJLSQNnbLuzqPEHfvACnmQZzvIAAAASAAAAATBEAiBwAFJYQALv9YoJfIsTYacpuGJeSY4WT4AL7g7i9pZWDAIgTr8uHv18OM9CJ1jqWkVKv4VxhqmhbZCZsaem3S14zb8AAABnBElPU1T6GoVs+jQJz6FF+k4g6ycN8+shqwAAABIAAAABMEQCIFol+zNWpAw9CTp62TNqV4pYclOmcRQXkoWh8rYNqoPEAiAand7Ho6XW0iNY/ecRzF6XA7ic8yaAzZgX/A9X5tRBjAAAAGYDSW9Uw0sh9vjlHMllwjk7PM+juCvrJAMAAAAGAAAAATBEAiAOJ/lfxmWk6gH1zc8l16zTKAfv8HCS+rgtXS2nUbfDQwIgAwOJ6AnHrhkIL4L5p+kyu9xLwCEU15AnQ9XX+XtYhVwAAABmA0lUQ15rbZq62Qk/3IYeoWAOuhs1XNlAAAAAEgAAAAEwRAIgabvqNfygpXH2w5nzCdigQ8k+JPsmW56E1uf6BJsLYmYCIHo0qq2fLKzxA/ODWE5iMZYwBiGNgC8ATKyXUvdP2OvKAAAAaARJT1RYb7PgohdAfv/3ygYtRsJuXWChTWkAAAASAAAAATBFAiEAvOYWXsZawN5si1/c3u+4jYrxosZ52DrcEzh+r8D1fVUCIHDKMnhQmF6gsRI2bET42wZL4O2Wd8NuMDtyogTcVsx+AAAAZwRpT1dOVV0FFTjHoTcS8fWQ+mtMF2ykUp8AAAASAAAAATBEAiB8TOWVSiaqfCclbBQEKHqs+CJILTU3dNOJZnM+h88/hwIgOGUauFKtIbkvEfvYn6fSWZkJJYXlnQWW5/80QFBsHUwAAABnA0lQQ2Is1U3rK7egUVFRkkFxCbzz/gmPAAAACAAAAAEwRQIhAIH63w57r0vtGBX4Ody+vHZqrlgkJOvgDPI+gontUeuBAiA8msHe0KSU7xOl2oBM1URsbjOoRJbEi06arWfxlqI+ZgAAAGgEREVBTMhqOsmkmXkmYx5ljmMjXsi1Jsl/AAAAEgAAAAEwRQIhAKBN9kPPyDxsCFmP61sK+7+dqBZQw3E6bYqY9zjcqToGAiAbPUafvT6TZSWYn5iB1ZlZAz47egniEB9xhcTZbKmUjQAAAGgESVBTWAAfCqXaFVheWyMF26srrEJepxAHAAAAEgAAAAEwRQIhAPqQTKEi+uC2/byQsct9KRQCo3jf5BnxCq6Gva7pglfiAiAGs6W2dqG0dmVWmbeg70DprqlyqfcP8zSPSfMoOihMtQAAAGYDSVFODbjYt2vDYbrLty4sSR4GCFqXqzEAAAASAAAAATBEAiBOhFegSGGgJGC4/XLwK5qxIhlkb4KtL8wW7pGUvwWVzwIgWKBXJY0IhLHGXIqIcnZjjYsMHsf+MRqI3u6JGKLdERIAAABmA0lRUWip2S/hk5n+6+1qmgmAp+p2OAdMAAAAEgAAAAEwRAIgfqCWxzdm4LRcVuD3Qt1o/0m3WxKv69ipnYosHepqVPkCIEQ5fSWC8wrWQbB9JjvEUPYyXt+YzH/Kkzlplb6yTN8sAAAAaQVpYkVVUpbmFCK2qboOBotsWt1P+rxqSq4nAAAAEgAAAAEwRQIhAK95FCuI5CMWjwccIzmlnT3rjK6hmzq6mF2OS57APoQSAiBO+ojab93mKdW71XQIbOaOhnFTsOw0htcUSDxk8YO03wAAAGgESVNBTI4SvXldJgj5BEDITd3S2YUkBpbVAAAABwAAAAEwRQIhAKD7HCVkld7WYWdttu7cc9d0GP/8QXzXCRLCG2XG4Rv7AiAfS0xnJiUGUiAaW7BZLPO4LlewNaawgZJcyErJLyPaBAAAAGkFSVNJS0NCcm0HS7pozMFSAEQrcq+i1JWngwAAAAQAAAABMEUCIQCtXpeiZEEkAwVdqjJ9tWzgRol8o7ITVaCEpjjIldhpvAIgNBk1DBO8gkc04kj5mFVhzAlll/7Wd2iG6qGpQTWddA8AAABnBElTTEUWgby1ibPPzwwGFrDOmxmyQGQ9wQAAAAkAAAABMEQCIFLzVmCstiVPNMcJmsnmWEIlAzSDV+p3FvkMrAhlMk+zAiAstsEYDyh3H4v6hwciCM8EXs/UpzJgDPeCPDLDsOy0qQAAAGcDSVNQyIB/D1uj+kX/vcZpKNccUokkkBQAAAASAAAAATBFAiEA1LcFjXk7uvg18dU+YMsWMUrZi7kGSHHlhE9mTPnsYDgCIDM7wdcMqIFCaqLlw3NpUYFvVOEC9thKhGAmtZCpHW6VAAAAaQVJU1QzNAz3E7Ecm5huxA1lvU9/vVD2/y1kAAAAEgAAAAEwRQIhALYpLoiiENA6FgmoPRmLnyZRlbUc6bdMytXsY3rBa03gAiAb2HOVMdEDbP/n2gXaluzM5dwt9q5cGU2YGDEhxoAiVAAAAGgESVNEVPI1T3QPMXBIIPb8+6cLnaBlRZtiAAAAEgAAAAEwRQIhAJhHcT9ZCASQviFxjgJ6AMxkuA6YT2ub8rGfdKefxI4/AiAZCfZQDfXsAgwMIo4M0GvKL06ht77icYOJcHZRsMHKigAAAGgESVRFTmW2eJNsSJomOQNnVaohB+wJVpGYAAAAEgAAAAEwRQIhANp08SRW+Ay713R0JZ7q23qAVGmIVkXzp3rkFalVfiJ4AiABoTCavKh2AT7mr+n6nIQlJM8hF6yvmQmtRKX6qny4cwAAAGYDSVRTwyzFtwvuS9VKpiua77kTRtGIIcQAAAASAAAAATBEAiAviHd+CoDLv1kZzsErxDFDaVN89QbMP/rU6pF+9wvH9gIgW8ncCpTcoENND5wxaPIG2btjhHwAvV6RO1EnCTw7QT4AAABnA0lUTBIqhrXf8tCFr7SWALTNc3XQ2UpfAAAACAAAAAEwRQIhAKXnDI1zl3TWsQ4Nda4KrUPG2lLSNrvVkOIQxK9Z//YmAiB4AnnSY1HPsTXe6iNLTPn6qs9+QBrRrGKC6zTXzdI84gAAAGcDSVVU02oOe3QVQiCK4PuzVFPIk9ATZiUAAAAAAAAAATBFAiEAgS5LWOhchEUgecKbvScIh0I3GOmmrQfdFwYU9NIDgRYCIEK0Z5fL3lXD7b6cTm/tCdldcqyHOHZOMCeLtn5mQgdrAAAAaAQkSVRH+IsTfPpmcGWVWr0XUl6J7c9NZCYAAAASAAAAATBFAiEAxaBv4bkNxHdvK/A33XWi6x2LDaaKAT73fcOOD5QMbEACIDGg16HQFkDJFcRUWbte2VyQ4IFBi2iKtVls+Zv5zQiNAAAAZgNJVFQK7wbczMUx5YHwRABZ5v/MIGA57gAAAAgAAAABMEQCIENzfyT+U3AdpzqpYlTKfwEtK/clL85ZO8XxeVNzbBmUAiBU3Q+HJwL6OUXUQM5Y4+9eFsINA2keZOtzkWHpvmwz4AAAAGcDSU5HJN3/bYuKQtg1rztEDekfM4ZVSqQAAAASAAAAATBFAiEA/pFy9vYubivpcO9Hrft6JkNoJMXONKN2r4T1QfP37U8CIDUETiiShiOvBeSAF8r50AkDrmiOpJdAKgIoy/3K+j12AAAAZgNJVlmCkGfUCo0SM5J4kdmzOB1q7O4egAAAABIAAAABMEQCIDLGkLmN9yLJDsC30WXJ0vFWbFuXxLgkgFtDCVhnd5FtAiBy1W7fNmll1V5nSiJ8uaAS5wqQekwLf9W3EkZkUxAeeAAAAGcDSVZZpOpoeip/Kc8txms5xo5EEcDQDEkAAAASAAAAATBFAiEA6OavRbX5yf7XtFUgF4QBBaCzwIxQuDkXaDS+OxWro5YCIADlbrj/BYtRN794QltAfxU+Cigso+2c28EAnuf6YSARAAAAZwNJWFNz18hgmYyjwBzoyAj1V32U1UXRtAAAABIAAAABMEUCIQDBQ6tcS97ZuXfdJ7MHPHiBxvQrgpE4DDg1WRJT1+yhPQIgb0FoM3lKQd5QUaVvvuEAn1eHNj+v6j7Hq6qItPkIuX8AAABnA0lYVPykeWLUWt/f0astlyMV20znzPCUAAAACAAAAAEwRQIhAPKr8Mj6t07QQ+7/uagHcxT+XdBiXEcciEYTewluEv0YAiAByi75fhw9tP2xM+KJwcdel3LmPubCT9HowWNr1jCGBAAAAGcDSVpFaUTT44lzxIMdok6VT715DH5oi90AAAASAAAAATBFAiEA2ESyDHu9PQ7TA5N28rqN0FIbihApVDaliUJkuf+QvQUCIGYW6CsFjTTtD8/xgZ5tOCft8z02V9NOeX5lKwFtCRDkAAAAZgNJWknfWci6GbTRQ32Ag2tF8TGdmkKe7QAAAAQAAAABMEQCIGbp9wYPOopvlx3JdYFtSd71traz/A9JH/Q9O5a4tYhUAiBbcAlywG7IvDbwpkYuBvucYBmn0NB2tUbvT1/JjDcEoQAAAGcDSjhUDSYuXcSgag8ckM55x6YMCd/IhOQAAAAIAAAAATBFAiEA+k3G0M0rOcMpD41P8izHr1tL0Jim6pMzj0ip4PIafzMCIESj8SZ53GLvUEkoVEGuiHWi4NAiEQehx/ZZwYbu+NTmAAAAZwRKQUNLThLrjlBszRQn9rj3+qPoj7aY6ygAAAASAAAAATBEAiB7UFE/GAVSYCvBsx85n6wPpb1I/oguMj0YaxZ9M8vA7wIgZ18X2574FnTZP6XZGgk7MQ7Rkb+yezwqwn2EY3vWX/EAAABoBEpBQ1mRbF3gnPY/ZgLR4Xk/tB9kN4FKYgAAAAkAAAABMEUCIQCWv7OzlPZUwgVh2fiy7QzwPcbCrQ+h0yh7TTrNANM1DAIgYKRZDHsfIlwz4IiQsMcT9+ilVvoD6SmfrYgY0+t5vTcAAABoBEpBQ1kI8pkabv8mcc95G4KurmT7v90GMwAAAAkAAAABMEUCIQDASR9uypamL4tR17fL2UQ4BhbKt7uEyDHChopk6TdDBwIgLJUwEOAqyScahrqu8cSwita49f+wdj2593sscgERKWUAAABmA0pBUqJJ3mlIAieDdl/uSFDXuF5DEY/MAAAAEgAAAAEwRAIgdxsH20wCZ4D5bgvUStycv50wIVsEQyVsr1fTe8aukU0CIDAoqnhTZLuyeIp/SBeXfiW1CIUb37nT1E5mOZd6JWFVAAAAZgNKUlSKnGf+5kFXneugSSjEvEX2biY0OgAAABIAAAABMEQCIBDZ3IIjsDRC7swfd3us6hKA0MVZNGvqY+43lyRWD6GUAiAVv/0PnvVz47x5nTHqPC3aXsdlOVaq8eRVz9Z3A1zSZgAAAGgEakdCUHQJhWyuYo9dV4soW0VmmzbnAFKDAAAAEgAAAAEwRQIhALkG4qBGG25idoE/f9wkPvT9XLH3MyThlpLTWizz+5pmAiBFa1sYaAiPX3TTB/v6/AqcELlapu0as1SeRJKLaA8lzAAAAGgEakVVUg8XvJqZS4e1Ilz7aizU1mettPILAAAAEgAAAAEwRQIhAOd/mwVfBS3JXxOaTPG3N1c6mA4LLeQwC11m7bcOmorIAiBvbZr16QS1F4xM6AsZIw4MfVrgQFndbgVdbvp9pPi0lgAAAGgEakNIRlPf6gqMwqKi5CXhwXS8FimZcj6gAAAAEgAAAAEwRQIhAJuoLmf9uSdkV+xZvqmkxZjann4O1EzjVZp65AdiZyVPAiArF3N7UeL9A3ZmSd8IvbmpJCPNZjiFGkHjlWw9Mp/GJQAAAGkFSkFTTVl0ILS5oBEM3HH7cgkINAwD+bwD7AAAABIAAAABMEUCIQClYgKIPzwe0XEjtfEZCMssbJNwod2tSNneSSz9xzNm2AIgH59T3sD5OpXE3CKQ/qsulzlcNzOQcFg8ueApZiJE184AAABlAkpTUEboYP8nT7jGYQaw/7gVWEn7B4cAAAAIAAAAATBEAiBnaNCKxoCcJUilnAuE1y7ydmSDrjAtJkfzmg2o8CuUPQIgY/S7kPtblF7UIoV2ZByXsWj06+7AESigzWyQXZV2tpAAAABmA0pCWIhOOQLE1c+obeSs56lqqR68JcD/AAAAEgAAAAEwRAIgP+ZJlcJQa7UNv3KPXCk9a8hejYYPamY+HGrNWfNst5gCIA5h2dFZGkJJOdUDSLaqSKfBMuoKhvvTqvZ1Eg+Els2+AAAAZwNKREMv458i6sbTwcht2dFDZA67lGCfzgAAABIAAAABMEUCIQDrYm1FAnhHCpZifApNSsmpcbN4p31JqIsXVnIq1elETgIgQvTrSX4cEbxMIfV8OXl40avEiaLpL/FPjXgbWUiXWU4AAABnBEpFRkahCiEMJ8hvjGOCUJbjT2cf1hBBsQAAAAkAAAABMEQCIDXL4i4NhqTPcZbi5ExLJLM8HOgnrmaaNTB3C1e48OLzAiAn9JxE5G32qeN8mvBV1WfmZXXPTKMejvOmmW+f8NcT/QAAAGsISkVKVURPR0WTmnpXfZOtKbZMFZWxKEzmYKR5uQAAABIAAAABMEQCIHrer2HtLzyNYyiAzEJbaoHLMvu9lZRDpYJvM+Yj7z7nAiA4fX8xHezC4oxicR/5E8U4aqEM6FqsSerwq9j9zSbsYwAAAGYDSkVNIc8JvAZQgkeNzJzLX9IVqXjcjYYAAAASAAAAATBEAiBpf864lVOhAquHvZmxFbn2mdJ39r9FbhEk0T4e8fj17QIgECi7LhxpPgoqvMtnC0g041Lj8xV99EmzyhoC5fQeEmUAAABqBnVKRU5OWaSZZI/Q6A/ZEZcrvrBp5MIOaL8iAAAAEgAAAAEwRQIhALMtYcAV5oCo/HjSrbwrP5iLG4tHaorHh3tf7DKhhLpxAiBy662sIzRNqDy9Cb+xmnnMFxR85H0vP4c2cKR1nsf2mgAAAGYCSkPi2C3H2g5viC6WhGRR9Pq8yPkFKAAAABIAAAABMEUCIQCRH4EGdLxCSOHHnzG85PW7XThPtu//VUMKmvHC70obGAIgCtdqxSq7Obun/70YTvIYkdPN/GB2hktYe9zxuGiya20AAABmA0pFVIcnwRLHEsSgM3Gsh6dN1qsQSvdoAAAAEgAAAAEwRAIgLAhtIHQQaE607i/ONqR0Cu4rAHaB5MqAvqgc4RAGQuQCICMywyT/qIdChV6AAWoTpPIUgzxGbRrJDjBsme6qXjajAAAAbAhKZXRDb2luc3c0UDNe1Ow9tFr3TzTyyFNIZF05AAAAEgAAAAEwRQIhANJ7w7KSnKX0Oc1WGRlDfw7G1L9XCRS+FXkXKRy0qmujAiAsuI44bfVt7C4lDWRGMizZ+KSWWfm2mQFn6/WBlpGqmAAAAGcDSldMgnXr9SHcIXqnnIgTIBelvO8AHdkAAAASAAAAATBFAiEAot+liIr5kH5ZNheqqW6Un2BKwZz6TBkRo6o3bZnRHKcCIBpo3Bp9wW4ZDH6eg3gWcExR9eCtTdVGju5BGks/oLWhAAAAZwRKRklOlAvcuZoO5fsAimBneK6H7ZeJ8lcAAAASAAAAATBEAiBHNkSfIlohF1Yt2cOKKN3xjBg5YKNcx7TyJBKDz1tOCwIgRqJTvcu31bMPRsGW3vd82/vwYsZyNWNFHDkwQe0Kt+QAAABpBkpJQU9aSZSTnVUACzG3gIkEqAqnurBe9Z7WAAAAEgAAAAEwRAIgbwFD/98onL01RTEnLB1sv2dG5vbf2Ta7sWRDLz9l95UCIGl2w62y9ug2CvII3SRrM+cxhtQ6ro/8ht7mcM04TnQ0AAAAZwRTVEFLH4piaIPXck29We9Ry9S/HPIBbRMAAAASAAAAATBEAiBR5EHvAZ3NXTVCq0DfBskgGbEfcIIhryMfvtKM9QkgKgIgHCMjr1lkmVRNmbwUG9wAnHHKDL10YLzwfpTbfcQ0d08AAABmA0pOQiHVoU5iXXZ85rehZ0kcLRjgeF/aAAAAEgAAAAEwRAIgMDylf8sXL1yW1OKVA2i3g9yfOTGqAcCrU4sLt/KpqAgCIBG5Bloj2UF6wq+OZg7FU1UQ4zXi2LuFUKsLRhYE9CoKAAAAagdKSU5ET0dFP0zYMFQ9slJU7A8F6sBY1NboYWYAAAASAAAAATBEAiABMSCEFztLQYHpKJBTiVTIqNVuOgDscQ31HXkYiRLXmQIgdudDZvtmfA/VcBQ4j/gO+CUlcINrh7TGcVXn8fmYTk4AAABmA0pNVNoCLKkd+ZQT6MsMqrTRy6TpAYvqAAAAEgAAAAEwRAIgHv4VvTCYP9JUz/OnfovDpTgvZNCZsjZSIJWNNMTczJ0CIGxzWOlh8xyiNztt2i+lj0vdJReBFfg4JWYAR7Apz1axAAAAZwNKTlSl/Rp5HE38qsyWPU9zxq5YJBSepwAAABIAAAABMEUCIQDYZceuzQnFJNwMhC7cFg6tZrVHWGv2lDFO8RcwxNtr1AIgFYmxwYti5ya/guIbzd65zuGNZgf1eMG95w56b/jcTJEAAABoBUpOVFJlE2hFK/tc0SeXHI3iLFj76J01pr8AAAASAAAAATBEAiBT2dTVnZcJUWt3frvQngseApwoyAiFE3VGApEbcNWCuQIgZE4gbRKV36Xt+u5vszXNRJ+4M2DYOtx+S2+3t+g3QMIAAABnA0pPQt+8kFD1sB31NRLcw5tPKyu6zVF6AAAACAAAAAEwRQIhALvyCZ1IT+lSVVHCyIGwhPZWmEHIx4asTxISp89hd3OlAiBLNWEKUWLy20QkvRbtZzgFqY1qWUkxuTc+63J6PDKe0QAAAGgFSk9JTlQ0fAmfEQymdhd5Mp0oeZV7YGtqzgAAABIAAAABMEQCIA7SM9MeLfSmYeAsp/pRcmKdvUANiaAgRigWGN+tCcxtAiBsJ6C0fRwFHTPAcnchCLkUrcLPjTZF32CZmDnVfu96GAAAAGoGSlNISUJBFCbMbVLRsU4rOxywTVfqQrOcTHwAAAAJAAAAATBFAiEAn7T4922KMXxDDRBFHBLdUT35AqEi07S16jBa4W6YTxwCIHyCyhY9NDyBAhkeTiHLLMEwFUMkOCovlrJ9RKnOaPJPAAAAZwRKT09OF0iX7dPOQUCEoAnSLbMce3gmQA0AAAAEAAAAATBEAiBDkz25tPYvgFfbVc1lH7bN44uKMxooYyiBfBrpAvH+SAIgUcUrWQJws1m5R7gTBIMbRyczYQbLUPYiFHnJtC0F4ZQAAABnA0pJQ/BzdvDjv/VxFu1i5ejiuxNB5LTCAAAAEgAAAAEwRQIhAPm9EZxDT/hcVgmMWLuN+2/LOxs2RuAHapfCcrCanUXjAiBIbbjwQynJXF9Bp7EOYcLyherFh9nOIsWT5G5nR30BVAAAAGcESk9PUwX5q/SwxWYeg7ksBWqHkdXM18pSAAAAEgAAAAEwRAIgBeCPrlsb+nL4GuXJjoGs5mULC3nzWAYQ1rw7g9W8ctwCICF/N8910PIXes9GI9PNm0T8wx7pUKUtmKTGUqRczsoGAAAAZgNKT1nd4SoSpvZxVuDaZyvgXDdOGwo+VwAAAAYAAAABMEQCIDpmXfSNDSEK3MXYxVRGjC0D/2kCJJcOLk8bn36mfAU4AiAFI7litOdjwuHXDTM2JZtYXnVD9tUFxAwk6RT9RUvOjAAAAGcESlBFR+gMDNIE1lTOvo3WSkhXyra+g0WjAAAAEgAAAAEwRAIgdnkfCbptfB857EPC3ViYaWf6H9hNQvisCf20gD2CVTYCIBKZRtHBMntJ61UNbgez5dz+gfQtt0jL8I0PmeGknGUhAAAAZwNKUEcC56xUBAnTLJC/tREUADqeH/AknAAAABIAAAABMEUCIQCYvTievaynxGzNJgiqHH4zdiIf7hGNPGK8DB0ZTItvkwIgSkQwTJIPlDdfb6CsyehtvM17ggufFxPb7fZgsm4u3CQAAABnBEpQWUMjcPnVBMem53W/bhSz8ShGtZTNUwAAABIAAAABMEQCIAOW26Nx43yAel6T89lXb6/Lcny6sdFil7GIb9XRF2EdAiAFNkaAxfrV8S3eH97ArvPPUT6p8hSmWwjbd2XmzjpK+gAAAGcESlBZUVWKBpo6Gh5yOYYHueNXf84cZ+pjAAAAEgAAAAEwRAIgF8CEfgeDVmxcRSC1CofxPgogMgUwflO6gpkjgAXEfk8CIDUoxrZKnT+jK9Bs9e4bY2lgFUmZBd7F8Sp9Hq4U2GcxAAAAZQJKVOtzVcLyF7NIWlkTMv4TyMWnalgdAAAAEgAAAAEwRAIgTJ/tjDESkTs3T36EMhcU8Xgw758QxzU5LBVHAvqedmcCICmea/Ea7GZhb4KOaH5cKarE6tVzBz74THGyTXGoxceYAAAAZwNKR05zN06lGN563dTCtiTA6LETlV7gQQAAABIAAAABMEUCIQDvIiBkWkCoa1dLqrdA14jxSAz2sJwGGVc+U5/f9VchZwIgTe1iyaYbwsOBuKnaYyv2am0VaVzaDALPgw4v6c5VlLQAAABmA0pVSSyuMdLKEEqVFlRFb0YWi8n4j9xlAAAAEgAAAAEwRAIgG/iTPvn7pPog+yo9e7IVD/ak2en3vQEj9SCf0TwRDKgCID91MiQB7p/x63L81iJ+HMcfWils1d7jVopJ6I3h472/AAAAZgNKVUxVgKuX8ibDJMZxdGoXh1JK70LkFQAAABIAAAABMEQCIGHtuYDILiwg5WZ9S2gBoH7bYXSiYeQKeqLXByAVxTUnAiB/wFIt/4ML/n+21zosTal0Nn7SMbjF8w4TKrC2CR4ruAAAAGoGSlVMSUVO5nEODNoXjz2SH0VpAnB7DUxKMysAAAAEAAAAATBFAiEA9SKcrhAuKiKBNAwImYmAiYjn7dX5J+dYWha6EQPnD14CIHV3N0SZlGc9uQHLRrXXtJfLYawr6ENvIlSpuuXBEuOMAAAAZwRKTVBUQgokycZb1ExIv7HMjWzR6osayEAAAAASAAAAATBEAiB4amcyKmqNGK5RYMzvUGNgxYVu53jVpaHv0wtIXh3gZQIgaAYtNUvNVW4pa/hTt3BsRXJR6lJxurtU4t84DOK5X3cAAABnA0pDQ+p6oe3SFzWlqwXuPpCGkBYZHidOAAAAEgAAAAEwRQIhANiXPfXbPl8Q7ta7IIAJOeVGbe/Ow//a1ZhhLnjNyS5AAiAxDCHSd6jBivqlxGUc9cDf1WFNeFpoXqLiIKmgOlPVjwAAAGcDSlVQSx6AyskeIhbutj4puVfrka6cK+gAAAASAAAAATBFAiEAttWOipVMfRubi2JQXMCSvqEP1kGE51RrBRhe59hVBD8CIA4dQ0KXe6lTIpH8229h3cLPydBOZHAxDYMEqhb8s63GAAAAaARKUkVYY4FV9L2PhdQB2jJJjYhm7jmhULgAAAAIAAAAATBFAiEA9W1PDwdZhEaTzDUTYbe8PWaWjWK59cM9yqjlM9Jq4OUCIHbqJoxV9P3+FME/AflXiHFcO+MRlGO0pEwJ8ri/7joHAAAAZwNKT1TbRVxxwbwt5OgMpFEYQEHvMgVAAQAAABIAAAABMEUCIQDsCdbkZ/N81x6W9ufWScvTgz+KzAiHczBBUXm4ZqVSSgIgR9TeGWVhFlkE/6BdeHIXQch7kMDF34/YkFGtEsax09IAAABnA0pVUxTKQe7NfYHV0TCYWGwNIxTrooW+AAAAEgAAAAEwRQIhAI0TavNLLzufOop0D+/OTXyXS28SwNR8XFCXV0zd8PrGAiB+L9yc73zxyvz4KNJC9TWGYtF5z6GtXTNVe49Ue4z1nAAAAGgEV0lOUidGCqxLAF3nLiMmvYORwn+0F4D4AAAAEgAAAAEwRQIhAJcCyNXA39zZgyuEt2QzW2/BxuwyjFe97Zh0NIf7TVx6AiAUDPXIytB6i/X95i5pNd+IamOMp4AywprcBSTIxVf1vAAAAGcDS1RUFMyN+vIljhuLKGkwDbobc03A/kMAAAASAAAAATBFAiEAkPWpJoXMWp7HXDGMnWE7KIPpBwVpkbHT3nehuPTnIigCIHjAu6NDwGS9aZ6uo/IYsDShuwU+B3xNrEv+0FOCl2eBAAAAZwNLMjG52Zwz6i2G7F7GuKTdgW67pkQErwAAABIAAAABMEUCIQDJhkxKq9Gh4Z1qSh1edTErla+vL2yg1Q29JAnH61DsIgIgbGsCeAmnWtpmU8fTuUCyxZlvEcIb0cwmJvB3SrOgB1MAAABoBUtBQVNP9r90qX148iQjdnae8eeYhc8fDBwAAAASAAAAATBEAiBjcVRn8AXQQHAwcMY3WZK4nO8l3rSsmI6QzPF15AAAaAIgBL0TXxfOAM6kH2LsA7t5+zO+e1FYrxX1cTNKgt6OCzIAAABqBkthaWtlbpxodAO/KoOz6oCK8LUSlJOXvpsAAAAACQAAAAEwRQIhAO5f8jkC6h9dlmhJojF5oSegx9v5nUrbgj2t3x/FmyJHAiA5M+zH2UieSSbTkZArbm/dA8hBsnlQ0E0JFJIB1nbblQAAAGcDS1pOlUH9i5tfqXOBeDeDzr8vX6eTwmIAAAAIAAAAATBFAiEAlwNRR1r2c8rcYk0v6pYzJQL7JSDmG8F+MEwrri6FJoUCIGCLqEYjIF82LK2YQz33i0i++Pz3K40Roq8sH9v7dOBGAAAAaQVLQU1BWLLGLgofWDc1bjmTWezDT8xJoCCTAAAAEgAAAAEwRQIhAMW1RPhA8CN1SvUgl64QoKz24ohKttDaLjEUbAXwvwwrAiAlQSw6myBeFU5LbdvJxDDK0ExPuB491kUphKBqIzj8EwAAAGcDS0FN+Nn9SdBRmnuT886AwsBw8SlOrSYAAAASAAAAATBFAiEA8UWk0BHohhDFcIoDyrqa11rW9RtwlRmAX/AKJVf+xE4CIBWHGf3+YIJBuGdP0taBeZXN/5DGEMnYd/N1GXteZb1FAAAAZgNLQVQU2iMNZybFD3WbwYOHF/jOY3NQnAAAABIAAAABMEQCIGz9w2GCpyjXoAEYooTLP3IwYXC+LBHDMZb38/5q8kdoAiBWjkrKK1aiZv2VejQH9XkENa8CzrrU4qdk2xXdXXgVYgAAAGgES1lURaBTwbcBPnf+Coc84Mor1dC3QUxBAAAAEgAAAAEwRQIhAMTxVtemAZXOksk8nqdeQl7/XIIKyA0RU898cRILMawXAiBF4g5vKR+d3cFKOBI8tKcE7VHux0i0IVLJF4vWVhpnFQAAAGcDS0FOFBBDSwNG9b5njQ+1VOXHq2IPj0oAAAASAAAAATBFAiEA2Sc/rZJStaZ5m9iREqHHRp9I6nqOaSd+3Ru51mMwsuECIGqmMyoBhpFujRW+IhlUCQShFnzA264WQRtdsmdztgupAAAAZwRLTkRDjlYQq1450mgoFnZA6imCP+HdWEMAAAAIAAAAATBEAiB5RMjNBJzawTBlA0Z55/jF0nIK4x9ctjidZ69MH7GQYgIgD8501XnY+8fI44X1HtjjIxXvHqpUukta5wnmKyMGiwIAAABqB09raW5hbWkcSFPsDVXkIAAsXvq8ftjgunpBIQAAAAkAAAABMEQCIHecNlFNmkVU3Avr+YpV0yWUMvF4IMARwb8NJp3zl3MvAiAciviKViSshjFjbBr0iJTmILgli1y8RgkIWjQh8VvAiAAAAGkGS0FOR0FMbnZdJjiKF6bobEmo5B3z9Yq80zcAAAASAAAAATBEAiAXTxNk++qOSvpeHZTUhTewCTYBWs2J9uvTAasYQYFPTwIgSlRcyEZJplZOvr8ZMUBTbD4GXF+bQHNgkaYzDosfURkAAABpBUtBUFBBXSxlRdFuP5J6JbRWfjniz1B2vvQAAAASAAAAATBFAiEAx+KsWYCbZlnaricYMqzHSvLgZtBzFkiM7K5baKGJTBQCICGHVMVILF0ol1BzjRhi2WGhIahurkWy7puPAzYsDx4HAAAAZwNLQkPzWGaEEHzghZxEqisuD7jNhzGhWgAAAAcAAAABMEUCIQD5txwmZIdupeRPokwnTO0IUEs+Vu0+JJ59bJiOynB7GAIgUaMkknhVwUGkpqEEVNye3nlpGOOYoj2jFLWNlVH2zUwAAABnA0tBSdnsP/H4vkWbuTabTnnp689xQcCTAAAAEgAAAAEwRQIhAMUfryV42Mz+7y+GHrRGbzgru5TMQLAQ0+SiQUhppUzdAiAa37tP05KlLdDajDSQu1jbUSphnygwlK4Y7G3ogIw/xAAAAGYDS0FJvWRnoxiZWQR0zh6E9wWUxT1ijkYAAAASAAAAATBEAiAzVogCJ05TUSW0rK8L3UUNUS4WhpvnwyF6hmaFgjVXVAIgUgjjOMEEjx6eUuJy9/fbr81GQlpwBXcguKDvq0752u8AAABpBUtBUk1B3+aR83tiZKkP9QfrNZxF1VA3lRwAAAAEAAAAATBFAiEApjY6+ecTZ6M9slfBm5m/11aQWdPZXuUN3JYVrXWLmOgCICjq/mU2iK5uod+n0coo9fC2VMowmvTmFlUxq4bz/AdNAAAAaQVLQVNUQbk8f3rpl5m5WqvXAiUdN9CuQtXsAAAAEgAAAAEwRQIhAPVtmJdWUJaMScHVA92o6YGIpXnlOKu1f1hFBfEJ33I4AiBURx+BZBBpwYGYP0h+1wZmxGL2yYVk6v4pQy377jTT2QAAAGkFS1RMWU8k43lGBchOWA7qSXJzjWM+inEnyAAAABIAAAABMEUCIQCTgorTpwKl39R3H2FZP/O65ek3W7syrxYoiR/Pn5duawIgHZ5I2gIiKcIInbO+YZDiEMt0tiM6ERchU5WuR/lyGf4AAABoBEtBVEEuha4cR2AveSe8q8L/mcQKoiKuFQAAABIAAAABMEUCIQDWH+FO1mDXz6T9kZrsBdLiZrMny3kgws5a7D7bWycLlgIgRYAqCCaBpEXdfByep6dDODhmiu6/Z0W+VnF0niJBK9IAAABpBktBVEFOQeZBBWlgISRQZlj/mS8lhhbqLUo9AAAAEgAAAAEwRAIgHHhudOIdowhxIpTtX6A35gJDF9NnEQJ8oSlWE/63bFwCIGERcqxgJiB6TNsuVyU0yZpN8LH/rGh5FDSgZjLgl8BYAAAAZgNLVE5JHhNv9/8D5qsJflRzRpe7WAL8HAAAABIAAAABMEQCIH7/aveX2GRB1Pr/9eUrTU41bsw/8oy23tDPyr+wOpVDAiBocG25q3yC1u1lFv9Wqj7nCZuv1ksS3L1w/H42OOhHSgAAAGcDS0FV4XLzZmeOx7VZ9sKROkN7qt/U5sgAAAAIAAAAATBFAiEAqmdn/3t9jMgvks6ccj/BAVw1D5sXVWb/34KszQs6d+0CIG/veJyv1yg8NWPAsDrcjzAIFM+W/csfU6NH3Fx9kbEYAAAAZwRLQVZBCNHgp/vU7b9W2B2iHRsMnJX7UH8AAAASAAAAATBEAiApE4Rur5os5HVqVhdQVLcPhHI31yTpFV7PGcrOWQtCnwIgIxgftWdHci/LqbpH7v28jnTWifJ9smnK8oSaJzgz07MAAABoBEtBV0FVUuWomnDLLvWtu8Raa+RC/nFg7AAAAAkAAAABMEUCIQDyrsMRJrtgBpCzsVfrwmdz3+DqehvQKiOz6pSmeW5WaQIgNCvVwg++ZD+MSgNyyw2uLoiG1vOXGALxI5qTF9dHmlEAAABoBEtBV0EXpK6LHqddUasPKHW4BFL340wnKgAAABIAAAABMEUCIQDiVgcTVhJ6c7xvRFJEnubbyKGNfHxr4Po4UI9QSFfKIgIgbmiofvd73x/5v9b4nHAGTnXTpFt7olb1CWC6YvIgopIAAABnA0tHV1XrUojJtlA3pM0iiWN/OKT52zprAAAAEgAAAAEwRQIhAPZC1RLDIQgImL8sd22HnW2WIuBrBx1r5VkpeGIfXkPjAiBdOYLkh+bgmeedyc09AlE27AfC9UGfEK6r+PJ7+rH7JgAAAGcES0JUQ+bDUCmX+X+b3jTLFl+84ZEGXgaPAAAAEgAAAAEwRAIgHcaSmJHBBrInlK7sjciKUn9KCUjCfvrcJWLyAuf1WFoCIAzw2ckgaP17ZSKzlbp6bYWYhjO6Dxx4DBkjahRE51/3AAAAZwNLQ0OVb/Jz0KtczuuoMr/PDzQvYccTiAAAAAQAAAABMEUCIQDnUUvIArC0nxkBPIVrEqt0s5Ih39CkfXZlck5cMEwLMgIgR8AvmPKeM0lt5bJhK5aHrLjO93GPph9qEbbLShnmB90AAABoBUtFQU5VEGVSwRJyQgqtXX6U+KyrkJWmyVIAAAAJAAAAATBEAiBJzd90crS5xuGQyYliEiYubjAOFAzSO63TkwnmZ6GlUwIgWC6jxXGYpgCdxJSrl+2Uoi8S0Petdx+vPWPFpThshugAAABnBEtQM1Ic61y1fE1OKyQzZBuV3TMKMxhaRAAAABIAAAABMEQCIHxpp6qj+Hg547mPQ6SHN3+56b8psJWuzVWRi1XwcgL1AiBDgywJuo+PCP2wwYHFh9HMsqb9sDBP1af2qMKkG5x8HwAAAGgES1A0UqiaxuUprPORz7vTd/OsnZPq6WZOAAAAEgAAAAEwRQIhALEQL+KkOKWlfVx4dFI3fipDhhtjIh1YjQ3Bfy0mCSZ7AiBnuGNOEJbs67Av4xDFpWzj781JSxnYYWOhacbtfhYPAgAAAGcDS0NI24BzSwlKP5ZN7f0Q6JRnU64KwEwAAAASAAAAATBFAiEA1sGXZQMVIMnajVVvnbL9pCIOR3f9djpoE2VoU4vqpWkCIBAnt7NYLKgW5UfZwoq912xOUZAB+ot4sncqW2O0MUB2AAAAaARLRUVQhe7jDFKws3mwRvsPhfTz3DAJr+wAAAASAAAAATBFAiEAwtDN2z2xwzz6G7M1+Vl2y/k04lVAvilRcSvTB5Ao6dACICxtFOSm4EzxgFNiDIcvOyL/DHyLGm74gKYMK1Tn6QAcAAAAZwNLRkk7DhUI+uM/+6jT6mSFHPmMAvHGGwAAAAkAAAABMEUCIQDgAEkrhSToY3LMNWcHJbsMWwYErr0jnVsxJJYN44XUVwIgENwF4HhEcWZR1+enJQ8dILpJrDC0CgXOgj8fO7lk+4MAAABnA0tFScARTxRjijM6TVw7BPCbljcjSKhCAAAACQAAAAEwRQIhAMjK/ex++EgC/3qjYZyIvEojjNp2+3pXexP7CTgAVdlGAiAUBdovy1aUdbiEuesjXUqBzxlUGWS9vMkqsMWY5R9/WQAAAGkGS0VMUElFZy17MzPQ8Gmii3OiaLxursZfLhoAAAAJAAAAATBEAiAZSzRRipz3tuDX+xcGARabaYDM+ExxgT+b8v5YMYHPBwIgCRjXPydlY8ati6UKj/FTP8Pkff8/lAUSMSUZ9HsjwooAAABnA0tFTEq7nMZ709qeuWbRFZpxoOaL0VQyAAAAEgAAAAEwRQIhANeawpdPfMfWZjJ4VQt/OP4Qhr5LDdl0DBLZHUATWutyAiBGKSOM6j6ucTmGNEOhwC/F5F7ThCjn3aGlAAQA7HhuaAAAAGcDS0VOan70mY650PcGI4dWlJ8xGlngV0UAAAASAAAAATBFAiEAtHZrC9NlN60YqNhGJf5ppc0mxV3LuUXztjVJ+FgpbM4CIHOxOTSxvF/TvNvcorbunWTrC0hNai/xRfo2BszjZcdLAAAAagZLRVJNQU54QbKkjR9ueKzsNZ/tbYdOuKD2PAAAAAQAAAABMEUCIQCm0s5MxDUTxx1UQw999tCcEvRJ+QMk4ssbt+VTaRuP6wIgVfCUOfuPI5mQRTDx5kopAHKd3rVK8abIRIvEAy0dcAoAAABnA0tTRgSeEZQTqx8bD9g25lfj5Lo62cq4AAAAEgAAAAEwRQIhAOBFdbU/oc+83ogM8tEDlo/6EYbtqdx7Vxd2z3bntY+MAiApCskKX6vMdavIb5VNnWykyZZ0GsnTO8ANurkr07bviQAAAGkFS0VZRkm4ZH6QwGRRUvzPTZq7a1nrSqmQUgAAABIAAAABMEUCIQCCHoE0Xcwgq0AXEUPKXVsRr5xL7luqJrQAH3lql1hM8QIga7GPPtI0Xd7pS6mpjYop8y5tv2JzYWnx5sylnoH4XqcAAABoBEtFWVPgoYnJdeSSgiKXinRRdEIjmguG/wAAAAkAAAABMEUCIQCgY4oAGrc68mb0N+ZJqW6KwS5Hd1YAhZTDL3U5DSdepwIgIk4KSyv/RV8f9H8bCfqVlTgl3hdNqLR5qQdwjm2LmXQAAABpBVRBTkdPGC9MTJfNHCTh34/EwFPlxHv1O+8AAAASAAAAATBFAiEA3+GNrnTwG+rJiWMGvpfuBzf8YabImyttzGiEO7xtxaECIAbP7tqj6FFe2pP5NwTI8S628+v4ba2hZ/KRGfNagNP2AAAAZwNLSVBk5l01L2opSUY7OnWVkRthu6/GPgAAABIAAAABMEUCIQC1D5vhP3p4u4L7bSN24dcA3v0idaHutepCype4dLqsuwIgFikDYsMJ3T14+husc05HyUcwkOgUJ5sOc77vWjMSmpoAAABmA1hLSU9hA7rSMClbrPMPkU/afUJzt/WFAAAABgAAAAEwRAIgH+IuIC22K2MuBkehIHDCTzTeIAbmZ6vtrtXKbqKYaxgCIFTdTtpb9eREYBpI5TcM/PC1HMX+Ejcln2BmMRKG2/1VAAAAaARLSUJBAF0RI4ePxV+9VrVMc5Y7I0pkrzwAAAASAAAAATBFAiEAuql56EYdQ5syRBbf8x8ndmO1H6NuXmAAWTMpLVFR8yUCIAUohyhjzmtVAJOHvSxbZVa5Bxk+J/UGI2FJY0qXUYgiAAAAZwRLSUNLJ2leCRSa3HOKl46aZ4+Z5MOenrkAAAAIAAAAATBEAiAAsGv1Y/VdoGsUK2gW6CRJKkhiZz8phCqotG8jp9y+VwIgSTCUZOcSP3nfW86tBmorCvkpll09ncaDoyTtoy+XCwcAAABnBEtJQ0vBLRxz7n3DYVuk435Kv9vd+jiQfgAAAAgAAAABMEQCIGhPsXOVaQUfOJkrWu4IdLNgu5BINW+Dacq9P5UeB+woAiABJgMQ2L/i9EFHjT7/0mCeJ+XQRsenBp2No0+RZaIWxAAAAGcES0lDS4JKUN8zrBtBr8UvQZTi6DVsF8OsAAAACgAAAAEwRAIgGwENJGvxiN3eQL9q9lzpAURbTw42y/YkcOgRVAhs5IsCIFcSKQCCgB/+3nIXJvbgiNLpw7cz+hkEy5F4qhKyHMLGAAAAZwRLQVNILFC6HtXkV0wbYTsES9GHbwsLh6kAAAASAAAAATBEAiBPNyLENeguoqo4o5d+huTiSkPfEyj5vNDyCW8b041/rAIgKbHLXcbmTiHdBhoMfBcZuiL1cdqY5a4ukv/fLn0OrvcAAABnBGtNUEzo0XVC3+ef9PvUuFDy053GnESJogAAAAkAAAABMEQCIBaK2NO53HoiHTnOdN58fpXDmkzmC321YO8+VLW4sK+AAiAzbG4yj3FNu88LXi8bVFJnYobTw4hUIGo27k01hiU6EwAAAGkGS0lNQ0hJHhiCHmm5+qjm513/5U5+JXVL7aAAAAASAAAAATBEAiB4EGFjXVcZmqhm9LM7O8TbRjQKXp80bcM+TNR71HXmcAIgWxKN51vHqFGXoGpBi6XZY6uyyUaiLi5K/0nS93cxwasAAABnA0tNWJuMGEQ5JFt7skpbLsUeyBw5WJ6KAAAAEgAAAAEwRQIhAMJmpVBZWORbqouq8BJNL37vUj3RWLl0EVDAcc/jvUVjAiB7AGTsiLgFoPsf7Yp+0uCqq91OBvBwZvi58CiyJO+EwwAAAGYDS0lOgY/GwuxZhrxuLL8Ak52QVWqxLOUAAAASAAAAATBEAiBpynS4rD1MvIk3ovh5lq016ARMJo9BFca0/FWCodXBNQIgMpWfOrEJkUzjuFiqxKzZSxuQrEJ6CSLq8LxKk5/0WBQAAABoBEtJTkRGGFGd5MME80RP+n+BLd3ClxzGiAAAAAgAAAABMEUCIQDHRpz/QcFatr+fJpg0sCJTQ/gIAoCt0m7Y9ZiIOrvTBwIgU8PNR1Xf0JZHVZYu8YBFQT4xZXkikskuuMEl3luxC8YAAABnBEtJTkXL/vj91wbN5vIIRg8r85qpx4XwXQAAABIAAAABMEQCIA/HFnvnquE5tnWQKpbF7N9zGvVzATn16sBoh3C6Q4gMAiB/uhIpLzFK+gi8T/oRloEuafjrlS6zGikq5657vbTm9wAAAGcDS0tPNoxSkLE8qhAoTbWLStTz6e6L9MkAAAASAAAAATBFAiEAqXFTiKhGCuMdFyxAkjzxBG88JF8V0JGfQMQhw2Z9nEoCIFUmVgFaZuTOKObcawPoGCrmO4NH2EX9AqKnyIyrq9LvAAAAZwNLVlQ6hZuepJmNNEVHKDx86OvEq7d2VgAAAAAAAAABMEUCIQCh+6ad5Un207KGC3ESlnB91cKXv9TquO4VvYeydEw8PAIgZiYfvJC/CaDOvkVr+WNXE/R0LF0J8PZfspuo4hMI4Q8AAABoBUJLSU5HHKAt2V8/HjPaf1r+FeqGbasHrwQAAAAJAAAAATBEAiAP9r/xMrdr4JUrO1qolqCsgYIsEjT7ms1KBdVO4gwyVAIgeMtLUZNWH4AuZX4kFyFNvR2Ic0ts8UROqyxcron80JEAAABoBEtEQUeV5A4GWvswWdyr5Kr0BMH5J1ZgOgAAABIAAAABMEUCIQCIu+hivqGJQ2tkZAIE1/DtKH1o8QI1i5o5x7JAEeKb3QIgblEK3wWsKNfGOiynWhnlu6aNRAJsq6sblqptOIGovKYAAABoBSRLSU5H0gV9cf4/Ww3B4+dyKUDhkI/HIHgAAAASAAAAATBEAiBIe/+ZjtUoJb3mZoVTJWIOnMCpUG9tR8OkrAIixeHbgwIgBRfExF3IkKnc6hzm788YWcUpvFQR57PhmI5xBUcquFMAAABnA0tFWBaYCztKP52J4zMRtaqPgDA+XKT4AAAABgAAAAEwRQIhAM0E7674W4gudYW9hKm134WLUrTqcdrm8o+J/evLnxTZAiAtzCitnJ5OPD7jo/4nwQF8LUwyx9oh7YOI3lv+2X5sRgAAAGgFS0lSQlkf1+jHGMFT+pelUlwiegmAB9z92gAAAAkAAAABMEQCIDNaJSgrixHP0pxjAl9MOrCarqTIL3EYto6ZmD4bpQ3WAiAQmy4ky/5FGPy/j4m5ZuhwGBgb7R0HD7MC8x0sNzzg9gAAAGcES0lST7EZH2kaNVtDVCvqm4hHvHPnq7E3AAAAEgAAAAEwRAIgN94kc2eAKqmhdheBGyS7RqFGj2Ax9MRHw3lR9NgC558CIAH7L3xWGlfTfLm0DMBdhsMb7YQ6m9jB5wpOD7tEx0y3AAAAbAlLSVNISU1PVE/1sf0p0j6Y2y2eu4Q14QguOzj7ZQAAAAkAAAABMEQCIDscOrF627dwEbEgRPi0+vvMpajJnsei0ggXnlekTuo5AiBUv7ljrqZf3eRHPQjGYMMsYytxzqI6VY30TDMtRp05fgAAAGkFS0lTSFWitMCvGcwWps+szoHxkrAk1iWBfQAAAAkAAAABMEUCIQCPxiMn3D8kPCNoBkytpAptr3OtJWrTWP/vNwoQPgeZTwIgfL1PF/MET7xw2sjfmzEb4S8f6bI4SbxcDsQ8NJslKZ4AAABnBEtHTER23vIRKypWaHgvZ1RkC5gmg+rLywAAABIAAAABMEQCICbVHC3tKPILyo/UrWLbgaQRczxLwtcwxjamGDXWip4/AiBxptzvrEJfyJJqerN2Sa7ur53GD5lWJXJvVAzr0dHuYwAAAGcDS1RDmCf26N8MzFhP97NxRN6LrHxEY4UAAAASAAAAATBFAiEAmE3Wen9RKdcZ//kYBaX9DHWGyyu/TszrFIYZlbJWTh0CIHa9sPMElamyLrZCSgqY4b8yCcIxpYU5QfAO69Ni57QwAAAAagdLSVRTVU5F+zeBFXJqmrLg3M674tU9xiWuIBsAAAASAAAAATBEAiAbu73PyuZ71ammZmd7YHdM/TpXvvYOFCzoGqAneWQHHgIgYasNwk+liMOpUX9aQUaDawXA/OXRFPxyhd/dS0x2TJEAAABpBUtJVFNVbWRRkwAeZ05iqqDqxdVuTSG7zO8AAAASAAAAATBFAiEAlcoqcBFuY7yW9k3bJR3b8rePceFnL+bJVVsT1PhW1TsCICN195ayZCBCkT1AMdjQ9wxuC4/V3lz8f/ZpzPoI8tv8AAAAZwNLSUYXe6DKxRv8fqJLrTnYHc79WddPqgAAABIAAAABMEUCIQDTt4yt/SHf69Yn//SyHA3hWGiFIHnxFCaXf8/armtT9gIgDvnzQtQ9XXw0T0vrybVGm8YO9SHe5eDTuT4Tj65eDbIAAABnA0tJVAgOtyOAMfl/8BHic9bK1a0MLeUyAAAAEgAAAAEwRQIhALAjNPYfGXhH7KJb+tvRRmrdBK3NXbABJUSFgsNPWZxFAiBkgccTHjLCODx+vKuu9p3yEDI8TnuATM8UvTAfhLTx3AAAAGgES0lXSSv5HBjNSunC8oWO+f5RgYD3tQltAAAACAAAAAEwRQIhALDPlDcUxT4y98e/Ie3BcSAEhyTZKuA4TpZEvLhZRCDqAiAV/ghaHk+NHFazVkvAoo6D+UKEmv8ABqVsAAgaVUAxfAAAAGgES0xFRTgvAWDCT1xRWhnxVbrBTUeUM6QHAAAACQAAAAEwRQIhAKSDZqBo0AQkToWQYsPztYL0S0WrGTPQveEP94wr2SxtAiBBrpzvETqL82I7WSfBR9Q5vzK7VdiyXm28e0Qogs7xbwAAAGgES0xPTrl9XPKGT7DQizSkhP9I1UkrIySgAAAAEgAAAAEwRQIhAPSCTIyIt6Mx0qIwmDTlNqbxXhJzdmO+ohq5OkUFoZqPAiAqbFQ99VziJLD7k+QGpKsYlqUNTPpmwY8XHqiZBQWlTwAAAGkFS2xvbli/FXl7teR/b7CUpKvbLPxD93F57wAAABIAAAABMEUCIQDnNGIRJ+oCo11XqPGqBPKsm7kTUKjkbaermXQous2EtgIgfAH2SORaqqF64jjFzgluv9+kGs/xgzXa46zqqE1+jikAAABlAktDDW3Z9o0k7B1f4hdPPsjatStSuvUAAAASAAAAATBEAiA+ltHfk7aGRyhyz2N+DBlNvTYMD9yvRfm0ePxHbqNhzwIgJpwVUNbAGWifupJuvbKLUmbeVeg2W238JEjtg221bAcAAABnA0tGVO9TRig4AAGE8199mRRS5fJRELIHAAAAEgAAAAEwRQIhALKpHXD5Vy1e0+UPkyFsSwqSEfIoircSuCBXXIOj+4ojAiBESOXa0Vu9HVw76SnOCwHcoeHmZ9NtNtEMkeayTIrbUgAAAGYDRktYFkhNc6wI0jVfRm1EjSt50gOfbrsAAAASAAAAATBEAiBv4QlfB5tNIH7r7a+59p56WFuqX5jrML2eT9+kqNa7uQIgRLA0E3f/pUsH4+VXcFZtFwP9dlKyrZ7+FLvM0GZN0koAAABnA0ZLWACehkkjtJJjx/ENGbf4q3qaWq0zAAAAEgAAAAEwRQIhAKhKTeBdk0UxLSRI8Icvs7ljUzZJ5IzfNmZx8IR5ftBNAiB/NqVvBQR2XbOB4CPwNBVBV/TUYCgSqW35gbruDhjB1AAAAG0JS29hQ29tYmF0Z2nYb5xDD1rG2chhoBc2E/HFVEwAAAAJAAAAATBFAiEAzPu2QPvvePoLO+aAPH1B2WzsKc3a7kXrpxec+j8qj9ICIHPdaJ274leVzKwrvroE3vwXonpEgslEugxzwd0oZVzgAAAAawdLT0RBQ0hJV8QR6aNY4tLQprBYzttwkXXo/RYAAAASAAAAATBFAiEA0ZDG08xgp5pGNh22w8ceq8W0BIv+RTuJ00rsgbjcuzQCIAjtkLyCuAB4d/pb99Vna7prQMgOWilFvrstnWINIIE+AAAAZwRLT0lOZtKMtYSHp2CYd1UOGjRpGBCmufwAAAAIAAAAATBEAiBvjDjG4iOZdcZqRHFV5el2GKxusuugVGz4Qft454CQAgIgKO+Aof9XLWAnMe985Tefd+zr1NGsNp9yO/R3Wg7hgnoAAABnBEtPSkkcgmakNpr22A3yZZukezyY81y4vgAAABIAAAABMEQCIDVRCXle4oK1bQbK21mPbPgASswMtxMdp8eRPZBYeGJKAiBWEKUkBamTfkFa8llAkeL041oNfhtKbmeoLhKNLm/RMgAAAGYDS09Lm5ZHQxYyr0S+At3SJHftlNFKrKoAAAASAAAAATBEAiAR3Uy0uCficSmlfr20ErCnEaPesk2hg9dLM7HA5Xw8AgIgNNoum1lPK3KOc47OgxsyWfJ9rnpp/jyCC5gkwVZf//sAAABoBEtPS098Pj6uTYk9EcYedNUYfJYrpXRKOwAAABIAAAABMEUCIQD8Tkie3XwFawQkgrWUP8VvttSU4nOcpE2b9OtOzRr+HQIgDUmxJS8R5ahvrVDoosmoB3VBBiikXrR47CPIGl1XtPAAAABnBEtPTE+ydBUfRNdMBegMLTX3jVQwzpqPOwAAAAYAAAABMEQCIDFBaRGB+0xWdPMtRtEvOVhAVnI9dAYNB0rxTL7iZfAqAiAYJ4NcQeGfLTSVQsHCM8Fh0DbDAiCHX18YoSmd8Z5JOgAAAGkFS09NRVRs+231a72wAiau/82yzR/o2hq9pwAAABIAAAABMEUCIQDJ5XGlYkqaVd+AvrnmSZ0ltBA5N3bQhGZuTu8kZaJ7pAIgftbiNWQQZ+mYmNiDnXgKXpoY54LQk+sADNo2srLPAE0AAABoBEtPTVBBvAkT7XiUKOEHxOqe0AeBXFqCMAAAABIAAAABMEUCIQDQ4Fa2fGmp0XcPRBkOr6PsVHpNnLsFwz4Wz8mLwi/IcAIgNbyljO/6XN+5FYrYFxVFJXtlRRvLYRg3w1n3TW5F+X4AAABqB0tPTVBFVEUeCymSB5tiCqE6fC58iNLh4Y5G6QAAAAoAAAABMEQCIF/4JZugBRzojwTUbGYmab4KU+AJK681ZPlFDaeDQW2bAiAMM9Q65PLWdK8GOnnvcKz+LHiOzewHwI8Jvf2nr/rZbAAAAGoHQ0lUSVpFTnfwzEIN6grnJttr7xRgpLaRdqjqAAAAEgAAAAEwRAIgSTv32/mRX/PI63uJ0IY9U2/wXZ88mt8tgn5u63e69PkCICFyY+iH188k9IElCxlv0RB2CIPjQo40qykN7vBuFcfHAAAAZwRLT05HfDzy1DtQ544nqBKTpD/KxFeW+1QAAAAJAAAAATBEAiAZwCGQvG8L6/g2Ma/SQ46QMuY34RsNuI6pRASLli2zvwIgUxJq4K5YrGMnw1mqfWJN7tis++9Ppf9OGLY9KZ7MPsAAAABoBEtPTk+FCqtp8OAXGppJ24vj5xNRyCR99AAAABIAAAABMEUCIQCcui4d5LMoimfAlbv0Ul2forLFDPt4XoUuuSr8yKvMqwIgTFO88zqUtgauAN0YzGjLXmCP1auFwmiG/QcGZAmB5c8AAABmA0tOVP9cJdL0C0fEo3+Ynekz4mVi7wrAAAAAEAAAAAEwRAIgKKL5dkyQM++D7KtdmGgSMpq6xRi/J/X0md9Nn3F90VoCIG1rJdwN8c/PPLwQYz/hZ6w96ASVuK+w8S2ilKmJJH11AAAAaAVLTVRCQSvdbJvxvzlqN1AarlN1G5lGtQPaAAAAEgAAAAEwRAIgEuGRxvB0scgMzCaJA5pfNq3gVbOuI4GzVBpg8HbT/vQCIAajrUielTxMcU932CI6K1Kkvi0PSga9Oz2xS4mYd12JAAAAZwNLUlMimlabZz2QjO6JIGWK57ytaOfQHQAAABIAAAABMEUCIQDSXQvovfX2M92Du2vlUBQ5Qw2vhug1u8BrGGzIMWU9PQIgJlzDOmqpvJ8zMTvMxP8dVDZoN9+mbKLDzHUDCtfvW/oAAABnA0tUT2Fu9A1VwNLFBvTWhzvagJC3m/j8AAAACQAAAAEwRQIhAKKcziqoKVc+6KQztVbMmPzyfJayz8uXoCogIS6E/nvYAiA5TaPekeuc83z39FtInx3wm/1KVE9vtXDUWjPFDRqy7AAAAGcES1BFUsibSooSHdPnJv51FecDk2z4PjNQAAAAEgAAAAEwRAIgToUwhVoqZunychg6EUno2N8UpblWpN4tBBQsCbp7LH8CIEjX2D/Cj895bznEaAgcO1spMT/k/YmgHIbsXekVUQAFAAAAaARLUE9Qe3mDlnQJ/ORh6ou9+e03YxsdWckAAAASAAAAATBFAiEA4cK1dT236H5gJRrnZc4TV2IpFFSpYowBkiwb3PR62xkCIACH/YIJlpKKfXQxmLZK9x5C03yJKfMWC18tgXmKGFUKAAAAZgNLUFK1wz+WXIiZ0lXDTN0qPvqKvLs96gAAABIAAAABMEQCIChjXDDu2zTqVz7X5MUAEe1PTSohkpLvM3UennR8YFhlAiA1e9V2Nm7F4/d3/8VaPrpq654qIs7VDWAbb8ajuYMOIAAAAGYDS1Ja9UswTi5LKMfkZhnRo0D5srcjg9cAAAASAAAAATBEAiBE4VJY0XkcBUabR5FALcdEsPmP5hHs1ybHl30VXsTmUgIgLOf9jQHvDfmNjbfk+4UnxQp6k2/EIZV4hrOe73fTJocAAABmA0tSRzKozU0E1fLl3jCtc+8KN37KL92YAAAAEgAAAAEwRAIgbOz9Eo4SWkAs02yNpEBI+XTV6z1HZmiX5Idqmk9z7skCIHNJ0J9rSRijE4Erf9SaWqAmwHcaZgeN1WwcHCzG5N7HAAAAZwNHSUeDjY4RsWDeyI/mK/D3Q/twAJQeEwAAABIAAAABMEUCIQCio1voYMEOt1URI71lO+g2Y9nb8o/IcpHMjP/i9HRi7QIgJJUJ51jpAibnnTgWTtwds61PyD3sKnYnavSAo7WKk+sAAABnA0xQSyzHHASKgE2pMOKOk/MhHcA8cCmVAAAACAAAAAEwRQIhAJzqRemfwdPZmLPWtzNcfytya6zLqFJw43iz3ajOXJz+AiASq17Kyk+8IJnQ2Opegpu1oAPI29DFxyWLmYcNWQHe1gAAAGgES1JPTTrzO+8FwtyzxyiLd/4cjSrrpNeJAAAAEgAAAAEwRQIhAPq0YOI0m6HU7oRrIdKCI+Oyuwu4l0E0DauarGHF1js/AiA2Pxv+U7L7T0jEsE6AvyafQaJNX9xeLsv6433Hh+BxhwAAAGgES1JFWJWI/CSpeW+9hwlRos1UxvHySy58AAAACAAAAAEwRQIhAMqEGcav0RDflCXxIOjkm4VRxVLniRn7L+89HZ+wlhZsAiAcfi2DBnCbHMM4QiOVT5kgbTtpM00o/bWchOqf15L20wAAAGYDS1JMRk6+d8KT5HO0jP6W3c+I/Pe/2sAAAAASAAAAATBEAiAxbRgOSph0xH0XeNuRwDG9c1DruQ1RRAop05tprPP4LwIgawRasS7jhsmr4E//gs0dpD+Gk3LLNeeMud3ytDkdeU4AAABmA0tHQ6gmLrkT/M6kw/d/yVuLQEOzhM+7AAAAEgAAAAEwRAIgIsa2Ny5NcQHCYmHmFMs07Snuy0WCCSQZzy81Eaz67tUCIAsxukAPvfTkjeOE0IC+60VxfdofBMjiy0QHa7n1OGorAAAAZwNLWEEiI78dfBnvfAbauIk47HuFlSzNiQAAABIAAAABMEUCIQDrFtSe4QwzIb+us46It3nDMEzzM4IIbHDrSyOU0pQh4gIgTK4O3DYlEMTbmT791E9IfIIha/u7njUAFDlzyYZAv1cAAABnA0tTS0S7tomqEzFepdVuvaLSY+U8tLC3AAAAEgAAAAEwRQIhAKv62PAIqCuKjuHGTl8z7U8FEQuc6Uun5VI9MUogsnNaAiBSawkJvqXOlVzlUqJd8hUfblvvWHVbeZrGkc60rqQz9QAAAGcDS1NDmQ4IGnt9PMuiai9JdGpozE/3MoAAAAASAAAAATBFAiEAspT8CGN4kMBYm3cqeUDsgIYLiCRhY9o6rcgg1gszd88CIF/4QdFrC60PC2/ip3HDZ1MbL0Uq+Yq7/3yMKHvGtacaAAAAZwNLVULFnLIyleLe62a9CQrLawK+jTChHwAAAAoAAAABMEUCIQDdUVpVow4t2RyO875Z+/6/UEJl14pGr21f8XbE1wxXQgIgSNSmgCkggYkYJeLsspSzJAf8esntyk1Gpoe1oQT00dkAAABoBEtVQk9PduhdBn4hl3moY/8YV3hGsxUvHwAAAAgAAAABMEUCIQCpg85aI/bbm221LK+cbrewEqQsrzCxGApBuOOUIRB3egIgVZ+2BAusv6SF6jsq7mRUBnJZgd3yattsIDuOwqg0snQAAABmA0tDUwObVkmlmWfj6TbXRx+cNwAQDuGrAAAABgAAAAEwRAIgHRqGGWnlCcxaqqvijTDtVzis2dJHJzfeHZuqOSDkVXsCIAXc76Fs/We9QGyUcMMU25/hNn7Y8WZUggE0XNaBstnwAAAAZwNLQ1PzSWDZ1gvhjMHVr8Gm8BKnI6KIEQAAAAYAAAABMEUCIQCKmxYi5kPsClreonV87duUqRwo1xElTq4fA4r9DOKvNAIgSqJg5wsyIkMd0xdJQRARE0zIl6wSVXCme73Vy+4qNecAAABmA0tVRd8TOPuv568XiRUWJ7iGeBulVu+aAAAAEgAAAAEwRAIgfSjk4Bnf91VYNVI1fUJbx2H8mcOAYn/akiJXbRX9Oc4CICGePnh3vnGZr3uFtcvgHX2m8t+e8guxUGawA4Wd+4fwAAAAaARLVUtZ5rd0PiuaotCpsWPE5pGGq7V4F9kAAAASAAAAATBFAiEAzbLdHpP/GbrmGKEBR282TD+Y/NskYC+o+elefJGO4aoCIHYRXoKO5X6pF7RoXr7QjClT+PkzGGWts9fF4Qx/tuUnAAAAaARLVU1BSMJ26NA4EyJLseVflTrbbQL9PgIAAAASAAAAATBFAiEAmyWM9OaWzKfVMiMqXW7Y+7ZOeqOrujwnGFD+NBAKQNICIAwDNx77RKpIVn84ERlGRKWJ+eVJdYCb0a9saL9YacxFAAAAaARLVVBQxsYiTPMvWwhQ3fdAtHzR7TGr6tQAAAAIAAAAATBFAiEAy0yPZAvZPbMlgQa64hoYhfZh9b5AD7LYAzjw555bgs4CIDmJYdaPBKCiAgP8DpZeUPISFfuHHK9mD6WSU9YqEbX7AAAAaQVrU0VFRD8JQAMT6D1TNmFH4+oOTiJ52AhQAAAAEgAAAAEwRQIhANUV6Vrz+GvxSXTBBFihMAX0KHI3bIMz2Z2kqxGtA1TRAiAoG9nYNSy6QBaiEO8WZd1FnCiEMpo/23hVzFvjPaL6zAAAAGYDS1VW9w0WAQLPeiLB5DLWkoqdYl25EXAAAAASAAAAATBEAiBSKSEcl5LypJtNU1RyaL8igigrlF9yflBj2t0wyLavYAIgQFfdHXWuoTpFJZxyq3nth8qdDbTPhxQWG7FvHBiWpWsAAABnA0tWSYho/0iTETGTMTRloMzF8b03DXdRAAAAEgAAAAEwRQIhAPhZo/rBbleh0VvCMA68NRhcf23Ah0cVz91hgtIj2hcqAiAZ8dM0pzN8c2zvP/dNla4d/RgGWkem00Cj+8Dn5UuvmwAAAGgES1dJSyhsCTbH6vZlEJmrXaue5abLXSKdAAAAEgAAAAEwRQIhAPCkG/BoAcGOaPMI5wCFgZKtV93xS1kaKLjNiJS2v5PGAiBnw8nlyuvApLgQ36XS7k96G5pfNHIHtbWd6CQpzkLuwAAAAGgFS1hVU0RDJExoagFMSdPVuMSyC04/qwy9pwAAABIAAAABMEQCIAxTEL9DSct59zYn6Mgjb9Egr66LY1X7fJIn1lqOpXznAiA9o3kRwDboNWxUll6K72p8Mxn2ylJuBrwxZAJ1TBZ5zwAAAGcDS0dU/OEMv1Fx3BLCFbvMpd11y66nJQYAAAAAAAAAATBFAiEA4uQBApGj9tkOyrzQd22ccBV+LyIqCOLui35EbV7Ct1oCIFk+2nkflsFzl+9gHlQPqmGSnFvBdnZMjKvRyloIHlnAAAAAZgNLTkPe+k6Ke8ujRfaHovFFb17dnOlyAgAAABIAAAABMEQCIFT0FpqMSrPDBu7UqI3AEYIGHUOG2xf+/Cqdynr2GgWQAiB3Gd0wlZrYMAfB0yzUK5iVDb2Gf0z+Ozjwj8TSkNyE+AAAAGYDS05D3ZdNXC4pKN6l9xuYJbi2Rmhr0gAAAAASAAAAATBEAiAZ3C2cv/G/5WyafhVjLtEtL7JJsHcXAlMPM1X/uJGfIgIgKtcDqXDgyO8eqwVgNuhdK6wU2o9JDiez34m4xCiJ2VkAAABmA0tZTGe21HnHu0EsVOA9yo4bxnQM5rmcAAAAEgAAAAEwRAIgalzk4jPCHfxcHnC0PfTiF/GdphK6Ln2bRVht9FrVln4CIEOb1QKFuKyPLPGRRTaGuudbTLi1X33x5BvV/9P6rmosAAAAaQVMQUJSQRBtPGbSLS3QRG3yPX9ZYHUplNYAAAAACQAAAAEwRQIhALPIdo5012JJNxuxhXdoWN923PnCq4qoYzX5Be4fsbXvAiBRJKUHHA7VkQ79h45lq+DBYlvQait7mXiJiQiXEdNQ8gAAAGcETEFCU4sOQvNmulAteHuxNEeK366WbIeYAAAAEgAAAAEwRAIgCkVN8BK9FKh1xoos0s4ZhWk8tMPZE+BefKS1I0fP+6sCIBZFiQ0QihG2eKnnMa67hr+EhHKRdGXLPjWD4bCfDv14AAAAaARMVUNLCVWnPQFPBpOse1PP53cG2rArPvkAAAASAAAAATBFAiEA6HbKaaMBiGMn7MJ94ZFHaVfNZ9anxiz08D2doIUwuh4CIHPzhmZB1k42wktHQa7tXrhFzbdGB4eQkrqw/6ZULTBmAAAAaARMQURaEofAUJ35pHXvF4RxqyEyud/TErMAAAAEAAAAATBFAiEAjmbJU1NzfAx4k5Rb0yCuK/atPtBmKKQBaAimhUO43uECIHiGiRTzdGezQ0qCp/k0WXlhqvMO3PcPw7oTVxdDitmmAAAAaQVMQUlLQXf5zwvYxQDP/fQg5yNDiTrswuwLAAAAEgAAAAEwRQIhAOZtr40fRxMH8YmYtAsz82KTUoIaiuvoI52fx7VKTUdyAiBHjcxj453ggxCKmsMtbpjGMHHu0rch5v5IVs2+UgaMUwAAAGgFTEFJS0HLWEGKpRulJa7w/kdBCcA1TYRLfAAAAAkAAAABMEQCIDAE1NfWuKIG32csU15PormcZC7GUKe3kllEFkKeY8FYAiAYNdD2NYxlrCD6Jo/x6gfVzzgUAL5ST4y8u+ufOJfkWQAAAGgETEFMQf0Qe0c6uQ6PvYmHIUSj3JLED6jJAAAAEgAAAAEwRQIhAO3Ea7rssTOo+KBUNy3u1DeyyVvJb1FXwDTs69UCvpH+AiBrmDXC/rZ2sM7L3csXl8mj3MiGN6k06223Lxc+MUJS4AAAAGgETEFNQolx+f1xluXO4sEDK1D2VoVa990mAAAAEgAAAAEwRQIhALWqvFNlgbWKu2ezOoCyrHgLAn82ES2QAtUqBWUyqDgVAiB67xc11pYrHCUJ18sxO0tcfmnEWk9ZQghqs0Ra1Rv6BQAAAGcDVEFVwnovBfpXeoO6D9tMOEQ8Bxg1ZQEAAAASAAAAATBFAiEAxi315irCqQrgavJRv4x4c4vTM19ErganmLMtORRfjhoCICDtzHsQwlwC32zutIwi54UNFiIs6LNkrqZG5NXuPxiuAAAAZwNMQ0UsZEw7vqBT7ZWmvASpTJzpKP+YgQAAAAgAAAABMEUCIQD+ZnqlSsww/F7aC9krz8C8qqEvl8MchNF9QbsvTQOZIwIgZjcYb4q/XchVne/kRdG154/3kczpJ37x6hXucMQWXooAAABnA0xOQ2PmNDMKIBUNu2GxVki8c4VdbM8HAAAAEgAAAAEwRQIhAMKIEK/Lcwo6TjE7+I2qxZ2W4Ri5DTGPMUCFfsYl1EpBAiBjer/rXllATTExzpQbTIVNgpti2Q3zK2yRPPhZ2JlUygAAAGcETEFORA4u+K7LPAGtXVlvG2cTTheBmZhNAAAAEgAAAAEwRAIgaQ4ZR5buAOpX4fwO1yQDbOepc/6HzJjbDn6bPkAUMl4CIEucPF9hz4gSgbmVKAGfTdFBVA3xO82WouwmdwEDH5TyAAAAZwRMTUNIkgXAScIx3aUbrOC6Vp8Efj4emXkAAAASAAAAATBEAiBi1EMlqIXhNA1TcPZOQKhuLESqL+kLyAixOC58H3H+jwIgN8EFrQ+Rck2hCuGec7kJeAOda9RFBkFcF2a5SK0cNBwAAABnBExBVFgvheUCqYivdvfubYO3241sCoI7+QAAAAgAAAABMEQCIBkTvpmx+RpB4nemqORiSOFLJh2O0fF9dqN+fNpjt6bPAiAdyzYBIecEzwz0cUwglQBMGp1cE/19kqdqDf41fgwI5AAAAGUCTEHlA2X11nnLmKHdYtb25Y5ZMhvN3wAAABIAAAABMEQCIDASaKpfVsKV4wv+7GnT/S5CeJefJQf0USo+yfjZo7E/AiAsmi2e8CBqvRfRdH3IbuKCYTF4XPOp+ClW9yboLUUn7QAAAGYDTFRYo5NHPWTS+fAmtgtt94WaaJcV0JIAAAAIAAAAATBEAiB7hOhtLXRIsaw2njveoGX3rXNsIhdVNyMGup9Wo0FHeQIgQH2EyhYzXsjUKBnQnxlvgTLH3zirmoA/x6O+/eiadgMAAABoBUxQT09MYUnCbNL3tczbMgKa+BcSP24331sAAAASAAAAATBEAiAuDdM6ystmevtd3NHyMb9X6EcyDIkzJ+v95GUHqlslFAIgTAjN744KcafpIpwwA7yeB6LXRI5jwvDItgTBjYy/Gv4AAABmA0xUSWkzkRRNHgeeIMxk95XpRQyUlmFxAAAAEgAAAAEwRAIgefddWYEtm75Lqu8AHW2ouhmDQDV500GLqZ2TuiWd5KYCIGXOEDeLUG+1K6X/HlPGQcae6mKvhiJkRpeAikZKMpYKAAAAZwNMQkucsa6vzIqUBmMsWwhCRupy9i03tgAAAAgAAAABMEUCIQDnYbyCWOpb1TxX9E62o47kOqGHFVSEc9SZBmu7F16IggIgGXq8GNQR9xGHjZIBN7jTV7wycQBrUPK6H5J9ocNd2xgAAABmA0xDR24aWOfp6AHzK7gkYmNqii57ZeA2AAAAEgAAAAEwRAIgJGZSG/Sp+Xnw+XA0xGOYULpYKpCXz9Mj4d5698JvaRACIA72fmkaylLxywy1RvExdySYm7NW5ymlTcWgJm4z8pybAAAAZwRMQ01ThpEbgr+lluk3eDaDisHw2a1OzBkAAAASAAAAATBEAiBV4xQ5yTRG7Y1e46K3TlBEB2ukj8sFn416OH54ErWfZgIgGm3zPrfaVpXQL3PvIf2vekq/p8PyIQ6fyBejsQ4PgeEAAABnA0xDWAN6VKqwYmKMm7rh/bFYPBlVhf5BAAAAEgAAAAEwRQIhAP4Er5lb+Sg80+VOpnYyPS4oHvPHH+g0IWBzlEu8Zv0JAiBDB49xaj7T/zudgmF4V4sKUgFiLjcqjX7SCfAb+pTiUwAAAGcDWFBivIG/WzFzvM2+Ytul9baVUirWNVkAAAASAAAAATBFAiEApO636Kc/HeD4kddqFSYJ0KA4o40Lp89UdG6h7Xfet7QCIBBR00qxWCaRBcIqiURZVLlbOJXDsQmas2lFarqytj0LAAAAZgNMRENRAnkcoC/DWVOYQAv+DjPXtsgiZwAAABIAAAABMEQCIBTnuXhcbNvw9Uoot3mRKkg8Az6kbOBR/F1U1PcHUaHNAiBZ7C2vZ60cSySGk3gJMGcFCRlKfij44OIjDG5PAW804QAAAGgETE9LQWHpClATfh9kXJ70oNOk8BR3c4QGAAAAEgAAAAEwRQIhAM1iuRbrKxLhvLBUVCwHrEGMSnUDg8dcWIbdO+VUPe60AiABY9aSrn797dYamKuoKqk4GHGMnvYQ0wwTB7kelp+CXAAAAGcETEVBUFMmPZ73TbWDsV+8bV1Oi4ODP6E0AAAAEgAAAAEwRAIgYNCm4sAJIvVrSEgBdL5iI2P8Sgm2f6NEwnzgCy0jFY4CIEJCjvMs9mGyo3V1Ayi+d2cbRhxBYfwW9s+S+bqAYr8AAAAAZwNMRURy3oA7Z7arBbYe+rLv3NQU0W6/bQAAABIAAAABMEUCIQDaMi77bw3cSlsxOZhXqJITTE5xoVweAwseurylLFiByQIgNvOPHNjBaZVEXvhjG3575sq76xYJmnpd467C8Y+jLKsAAABmA0xFRAQaNrAVSGlBzo1fLH/y6I+XOQZAAAAABAAAAAEwRAIgTZNYTcbAYS54Xx3B0iyzS4WxJEUSHJFQpOg7gBAYxTcCIBTVa2TBu7aV05tTHoJaejLJgJ6Rw+isYo2jr8iZnstyAAAAZwNMVFmF/7NZVyA9/RIGHq7NcI22I71WfAAAABIAAAABMEUCIQCpIY25ULd47hj06ejIXHO5MYVgC3SccRKZPJYEKleefwIgP3oPXP8gt0A730G9CpuRfp7sgoqzK/ya8frozyq07YYAAABoBExFRFVbJsXQdy5busizGCrpoT+bstA3ZQAAAAgAAAABMEUCIQDMK9ErO5WZqQ27BYZxT2mHxa518rRZxb5p7PK7ctR2rgIgLmNemvEfcFxkrW4q10YXL2cGXeUOVNQNH9kJ6OqmH8oAAABmA0xCS9mvLRHXiNoAlwdvTrIb0cVTN0PZAAAAEgAAAAEwRAIgBdr61kF7w0RKMkr8LDoPSU/q1jqD+7feUuxeNthUyH0CID/yae68N19eJ0Wzp6DkEmYJ20Yimj9hO6KhJr9qF7iqAAAAZwNMR0RZBhtvJrtKnOWCihnTXP1aS4DwVgAAAAgAAAABMEUCIQCFkrGDR9uww8VHO81pNv2ZnHhDS/h0q074QYpbzjp7DAIgFaGVAdezYbadVrqpPVdvavf9v7RyfewWHDgjaNh3TKQAAABmAkxNe+yYYJy2N41vmV6PgJfueDdvvskAAAASAAAAATBFAiEAkgdma3C9Ne27qAhUvRTie3Mw2Gy7mAbGUH/OViuJ65ICID1dY8R5t/nPROHiUE42yYpRSWulyg3qBBGw+cv1eExQAAAAaARMRU1PYMJEB9AXgsIXXTL+fIkh7XMjcdEAAAASAAAAATBFAiEAtPxAZJHTK8+VBfnT5c/Y7UhU9Hu5sK+6VTdmXdDFyP8CIGBuURfjj78J58JkaJyjnWj0V3UA9hAHWcVHwKgGAK8RAAAAaARMQkVUky1EcnTc/7SupPCUTTyATogFZBYAAAASAAAAATBFAiEAxBz3HbEOIjfExjo/uU1sWtbUrnirvF5lBG7OdHMmtLsCIGfdajNAT6ofWZvY3u77OWW+Z1FEhEVSQJRmcFSdFyJpAAAAZwRMRU1E9F9si7PXfqdiF1uPfKTSUZQWSfoAAAASAAAAATBEAiAh53k7IVamV83GZoa5uZpRcB//KCcBWtDyoQQsZLrXbgIgJJLHzgD8iSkLhbask9YzIRQNmkp99Q8GySiiDzeM9LAAAABnA0xDVAXHBl1kQJak5MP+JK+G423gIQdLAAAAEgAAAAEwRQIhAPDNfnvSgYsJ3TOWFJWMYxLhVoz2LOCnnFHYRZcO7eUCAiAOh0C5Rtpx6xIjj6LkFWRPNdcC9twjKm5wR5b+6HwHkgAAAGYDTE5ECUew5tghN4gFyVmCkThc58eRprIAAAASAAAAATBEAiAJ5d5BwYy0BnVMfx4jIXNzleWXcGREzt3SdQE0JDj2vQIgNq9eCC2jtVV/3QwGL5qhhN4cQWRHnVkoODn/D6Tll7oAAABmA0xTVE3iVz4n5khge1Dhz/+SGjPko0QFAAAAEgAAAAEwRAIgeWTXK5dglbS5kQ50EPJfbBIWZTHx95ZmpXhaSJcmNHMCIC4OgCTTPwbT0PiW5PVcF4B+do7sZePqhRqGfQiKvFfGAAAAZgNMTlIszc/nzHkXRBdIBGPtQp5+SP2DQQAAAAMAAAABMEQCIBv/Vvb4J0vpZYKVymO2vj8Rc+g4hHP5BsLZIGvfNte3AiATEtKi12IKjLePT9KVgDij4ArCO2q2FjzP2YlPbXaJ1QAAAGcDTEVPKvXSrXZ0EZHRXf579qyS1L2RLKMAAAASAAAAATBFAiEA0GXKWxADpu77arg9moMomSD7tzNr+YORymd+AQ+PF9wCIC6KDrawqhwenOnHGcfea28cKHnKee8FeE0MJSSNd3Z6AAAAagdMRU9CRUFSPJVeNbbaH/Yj0411DIWzrtiaEMEAAAASAAAAATBEAiBBKPelM/5p09OvzsPHE1O+1SsTYc62EoilMF7w3dac3wIgB4dX/HQ+28rzwsCyj5NizirHuaVLVnVSssnkHDpgrYkAAABrB0xFT0JVTEzCaFMH7yuIQvvz3vQyQIxGvQQg/QAAABIAAAABMEUCIQDZ61SfT3t5N+902OVnuGx2gyZ9LnjR9O894qbdHtVWAgIgUunvP9WOUVZK1lMiBdLPnGa6BLLD6TXUcKIEC7ovDoMAAABnA0xFT/l7XWXaawRouQ1THdripphD5nl9AAAAEgAAAAEwRQIhAMAMw1cRL5cbGIWmg77NPz6WUdCBBBsrWzKze/9KajYDAiA5iK5MqoxTEHayewx0imNMLf04ipMqrV4J57UUHdrSDAAAAGsITEVPSEVER0XYPFw1eWlignLe+H3NtbZjUt/XlAAAABIAAAABMEQCIAItmitwt2gMbfj5IDGIISGxVoUSMyKF9ktlKGFZi08pAiA9g0XgZSyk5p9uKUli2lrOOJAxQ2qubxqYkDUJMGWjHwAAAGcDTDNQ3vHaAwYd3Spe9sWSIME13sYjEW0AAAASAAAAATBFAiEAmS5sbIZrnRlswZVKKK3zqPX0MJ7JvAx69EdOI8Xc9n0CIC0ymPa/xsBa5m4yQPvzk/tZcnp1My386+hvz6z18YVfAAAAaARMRVNTYnhu6sySRrQBjgFGy3o+/qzZRZ0AAAASAAAAATBFAiEAi5nmjgLgemub4k+uaf85B5ht3t8LsFRfleAa8UDeTs4CIDOzGIv02N9H+Ke7JfhGNbi6goUqn8XwFC5mmkLEE9XEAAAAZgNMVlgmFjjsjugQBIQTDr0v6/2twNh0KgAAABIAAAABMEQCIGyKt+i9d8pgE9v0akgJSa4EwInB1xkrO3m0cAKVfofLAiA/gRTD44U82gKoc8zy6R98L1J+xf6mvo0Jq/3DHoBHQwAAAGYDTFZMqO2p1K7g64gvh1LGun4W2SM8mtIAAAAIAAAAATBEAiBS+W5fw+nwmbv/GE/1waF89lkmhIxLkGGK6D1M8JbaEwIgfdQe5wlDWKPdjZJqOWJBgGQk0j8r3aq/HQBhhKsGovoAAABpBUxFVkVSS19JSH6ns2CbGtBUWb5CBUh4nx8AAAASAAAAATBFAiEA4RtJmLQaTcizZoZhem6w0ZkYIU3FijAAQz+UEV1ezo0CIE1mqM+RTiFaND0p+EavVlXsee5Z0cOkDO3wUTsTuvm+AAAAZgNMRVa8GU5vdIoiJ1TD6LmUaSLAnn1OkQAAABIAAAABMEQCIAi6RGQ/bhPB56tUXGruCdxLZ5mzt1Dy+aBuy/HOEIajAiAS8fSiFR1PsdfuUZX1v1yzUO1JHhJKq9hwsZnu0UTMUgAAAGYDTEVWD0ypJmDvrZeppwyw/pacdVQ5dywAAAAJAAAAATBEAiAR7SfLxFA2/qNWEX+WiBTn0ekGmc2hOf78KODg1Hr5MQIgSzCvXSTmp/ldbfvPhiagjXOt2Ft+x6rxSqA23dk31PkAAABlAkwyu/805H5VnvaABnprHJgGOe62TSQAAAASAAAAATBEAiBo8zLgDGQFegWBwmvYx8kGOjHprO79xqo5f22S7OwFJgIgO6EuyI2n46wFQkYmlKSmlsupdUz6+3sXe/HDFd7iXOkAAABnBExFVkwJlwrsdmtvMiOsqREVVemdxQ/xOgAAABIAAAABMEQCID3gSjUGpDiUOCShAiIqpxeqE3HICPYqKzykc58aZd8XAiA3/IJ58znuQWv3gX9YxMSvakjkCrfvBNGWnxBU+JtLsAAAAGUCTEfFIPOsMDoQfY9LCLMmtupmpPlhzQAAABIAAAABMEQCIGXoRi3ADI3pQ+9TPQYQd2iGqTO5CsRqpyvcI8rrjDg7AiB/Et8vs3q56K1ObzCToOLIGmNssXm3TXAguna499zNvgAAAGgETEdDWa5pf5lPxevAAPjiLr/+4EYS+YoNAAAAEgAAAAEwRQIhAOsRQ+N6IzctBhKpGnz0rbqrQ3Cj1RmP38dAlKo1BDw7AiAdMhiph0daSzsvTDdNx8tm0RzL4YmWOa+Dv0WM5iiHBgAAAGcDTEdPEjqxld04sbQFENRnpqNZsgGvBW8AAAAIAAAAATBFAiEAk358jU9bJsMyQxIMHLaET1WfYooSgvvL8nHOP9H5hpcCIGqQRhrlUATZFGEjvug93p0nkyL7tkSCHL05Mf1bshu4AAAAZwNMR08KUMk8di/dblbYYhXCSqrUOrYpqgAAAAgAAAABMEUCIQDI1wBD6s3LRVuPVWWyhCAP0jDAfM1Lzz8ZTJZvszqSkAIgYsevX6YSqC/yt63GHeCTbNHRcjiK4GS0sT0eZMi3Xb4AAABmA0xIQwd4zC6LutPUg+gjcWBtEAzIYEUiAAAACAAAAAEwRAIgU81tfaOdD1XeAp8wAuFtLk6sSfiTNW2QGOGYWIcRyygCICvmNTGffn222QyCY9NYHwr7XjFlaptqf/QtY50mISSjAAAAZgNMU1Q1U3bWRx4JpP/Kh5D1DaYlYwxScAAAABIAAAABMEQCIGPi8e2Oo5EYNp2NXN4O6lJT/UvIYpA0svjZO19aJ6stAiAqd4yb7g7g24ytoUpkDuXDOWpswrQCgbzQviNoZpNiWQAAAGcDTElCGV4dPNrpGxf99/Unat3yWO2a+8QAAAASAAAAATBFAiEA7xqpFhcoGG8dfH9/HyUy0kxjtZdTtF13d4JouBFMxTECIDgdit+tEppz0q/h6Zkxyre4foVi/g6gpPon4n83nC7QAAAAZwNMSUIL9iYSlxmNkdT6RgJCxpIyFGpXAwAAABIAAAABMEUCIQDWzNRc52IHZJaRVJvLtfCnIjc5r00E9w1unZaIMHFs2AIgQ0ywC558xKf+xL1GQNTwE4r1UueJB+a/haHC/4lfcR0AAABpBUxJQkVS5t+/H6ypUDa4524fsokz0CW3bMAAAAASAAAAATBFAiEAvBoQ4SqLX6C61GcpfQ3/22lmedHKznd4+RCoiMnLr2ACICQJIVGdLb86DVR1Zq/O5QxdEsrHyl5vOKbz7Dt8d3FNAAAAagZMSUJFUk8N/LRergcbO4RuIgVgu83ZWEFNeAAAABIAAAABMEUCIQCaISRBODkV72W1czwT6hwxDAixCY7YPLQfEwtoPJKx/gIgGFTTu+kVEuXlx/LA+xK1q/7YLZE3f0i/ljBQsPO1cs8AAABsCExJQkVSVEFTSRhOba6Mjs2J2L3BuVDFl7gWfJAAAAACAAAAATBFAiEAy86awPyNVyzQvmGTWRvCfk1yuvtbDnm/tbkfhvCxCzACICz+roZcU1VypbCnB3RTn/sQnp7xbe3dryVFKGd/GTzTAAAAaAVMaWJmeMDqgxEwOJh9l0/mZ4MaNuRC5mHnAAAAEgAAAAEwRAIgEFRygUbZO5whfQb+Ay7RMMCoY9XGMa5juTFsbs+wjxYCID5VT3Zv5CHxoD+Zz7MWD2RM67V7VotjiOiyWIIR0a/sAAAAZwNMQkH+XxQb+U/oS8KN7Qq5ZsFrF0kGVwAAABIAAAABMEUCIQDftjv/cDEkNIEdKr6g3ZCi0RIiPt4JfGWqkJLUIT5VrQIgGfsK0pIRtmEGPyHjanLjQ6fheHlD3XSv9lXKViiT5nQAAABpBkxpYnJlRkSe/kitfNQjurBWJ2Y5+BIM1PmjAAAAEgAAAAEwRAIgBcA6n0fYBtAMfSu6enke+s2/bQ/B1TYa3kHkJqWK+gcCIG6dN9jHtVIUcTXUpWvtGydHlWP1AiVyVNMwWqVWXSb6AAAAZwNMRE9amPy+pRbPBoVyFXef2BLKO+8bMgAAABIAAAABMEUCIQCQ3FCEkoIptu3ysoGgm9n5ikYBuNpQJrOd3vICVSGRHQIgViDSGxeHnPDN6QqlCd/XEcjGQse1IQjCm4ra/VePuzkAAABoBExJRU6rN+E1i2Of2HfwFQJ7ti092qdVfgAAAAgAAAABMEUCIQDcjQiIvmA5JiQZRSsh0PdlFE1w4nu9TOVdzbHgh1jqGgIgd61QARvDaYXF4IiiO1ks/1u4lhaxAl7Ol2jAWmf2/cQAAABoBExJRkX/GNvEh7TC4yItEVlSur/ai6UvXwAAABIAAAABMEUCIQCz0HxpsfGY+ZUeOn5dJjQHHbWY5IBKhye8cBC2iDyPtgIge6qT30Vb/ql4is/BVC8LM1+cIUp5Tc5LXeaGWWgOnn8AAABnBExJRkVsk21K6Y5tIXLbGMFsS2AcmZGO5gAAABIAAAABMEQCIDOjJ9eoMgP/POb39dDQSLb42jz3bRFpfBagnZN9mvSKAiAVLeTopUvySbmCa0zQVrajDD4fxZeTPA2iJdY7C5JcVwAAAGcDTEZSx5jNHEnbDilzEuTGgnUmaM4dsq0AAAAFAAAAATBFAiEA1SbLxYGzmzHUcx3uKC+MkLp4vbZmOebfwJ2YcF52oSgCIGNr1IPieItg5RfQYcfQPx/ew/tdF1B7WKDGs6ANCwWJAAAAaARMSUZU+SCdkA960dxFN2osqmHHj23qU7YAAAASAAAAATBFAiEA6AIdIv7c2l0WR0zq6e1x8VET2kt2pUcTkCt/V+VXzdECICoKFlBqBXb6tdQPijAN/+wFGL9NC34cZYgIyTE/r3l2AAAAaAVMRkJUQ6/Om3jUCb90mAys9hCvuFG/AvJXAAAAEgAAAAEwRAIgGadkQuvjb12VZeLrC0RXE3ViqyFCDilmwZlEH2P1EyICIFw2eKMA+DJvRm4mtNZPncmkt3nl4BX5XYb7joqtt/mAAAAAaQVMRkVUSOCbEO+ln24XBS6aLZR7rWIU58yQAAAAEgAAAAEwRQIhAMRRggJnNqvc4pANecc4EWHyy9KOPmPuWPbpLXOB3sVjAiAT0jJ4YmmjOjki80d/C4cU+2xXH5oqA1bqAvGVam89IwAAAGYDTElGnDhojlrLntYEnIUCZQ21rI75ZGUAAAASAAAAATBEAiBVxnTLZuq4d8IDQQsF6wsSk3EQDz/fh29mSoOG2CuyGAIgY4y54XykvW4shSOeWAmJW3AXWxUupEWHi3jBptw/OfkAAABoBEJFQU3Nm3L26XECbqhgnSkYx70C4WU5RQAAABIAAAABMEUCIQDmPeZFDTPsjiXWZI3yJDQ0AiNgaXGpfqyavTN6mCe2+gIgZhFPuRwt7htfwdLh4Ag+3jrlKSLYw0ZAlGOXSP1GZv8AAABoBExJS0UC9h/SZtpuixAtQSH1znuZJkDPmAAAABIAAAABMEUCIQCzdnVWn/gNQxVdmqiS7BX9jCA7kzU1vPLOwlcXKr+m7QIgHdwv046i3vO4o0EdfgFDo0Jmfv/g1T4rNJ2hakYjH3sAAABlAkx5hoZSXWYnolxo3oLCKESPQ8l5mfIAAAAJAAAAATBEAiBkLZDLkfXWwZPHNOHjPtYoendpjsDZlTXMqnmYjZRgzgIgAbjim2MPB8qPu4x+l5L2I/x5k/eqVg1xe7LXGDCa6ysAAABpBUxJTUVYQAsdin3YxHECayyMvhBisn0SBTgAAAAIAAAAATBFAiEA2wUsxTA98nKIRwnf/ozZ4epoewuxYHtKmJ2QLqWeTBECIGCDKQeJ7ehRr5pyTa8lKhcUNhOlgsgsTSRH5JPyUVulAAAAaAVMSU1JVBcSqtLHc+4EvckRSzIWPAWDIc2FAAAAEgAAAAEwRAIgHpPFtGIwlVJfn+BdpI/Jxf6TXAmcAhb8QXU27nUN+MUCIHkdqhLNKlr4XYUAygkUgu6B7KNfl5Qe4RJ6/oPo00AwAAAAZwRMSU5BwF0URCpRDeTT1xo9MWWFqgzjK1AAAAASAAAAATBEAiAD3wAyfYraaWrDv9RG8uPJq5REBix8khNMJ1vTOuwTIwIgFDgFhBMN5qtVWkdc4AoT/WiF79j5lpk0pE4RX5fSapUAAABoBExJTkE+m8IcmxicCd8+8bgkeYZY1QEZNwAAABIAAAABMEUCIQC5bZcqXDVji8/JSkCTnqhMmFjAgTp9NdY5vggFHkZLcgIgbuhxqDO5A8BE9vNQSJ7GrFXf2q27pKAHG3H2PlmhKPcAAABmA0xGVODICHzhoXvdXWwS61L41+/3eRmHAAAAEgAAAAEwRAIgV52fIJij9j/qZ+qxkcmPfDyO3aIyQ8hv+8pySzuuIo8CIEL897plWXB7zoLjeiMhmEa6qMdY2TYnIJH1nZV8cneOAAAAZwRMSU5LUUkQdxr5ymVq+EDf+D6CZOz5hsoAAAASAAAAATBEAiBlG97Yg7ixhaJghFAgaux5+aiEVAZzX1eyp3xVn9tRkgIgIWLTcuIJwEsDdDNns5BGKL2PZLGA8Tz7Hn3xYAYG3XIAAABoBExJTkvi5tS+CGxpOLU7IhRIVe72dCgWOQAAABIAAAABMEUCIQDTORPUDf0wPZ6jmrQuaIoG4383E8JFa8td3YRSzk+SFgIgFU/q6QANxjVHScgPKQ8KT78E2GQ1xvcxgAUsdIk/Z0kAAABpBkxJTktQVHjinTVXO+piZa7fy59FSBtxfr/eAAAAEgAAAAEwRAIgfV9xNtmXCChMgFf8o86vi1cOg6LwsjWp94ogRJh4yF4CIGQkjRuVtZrTOGS1AJggS6T2kiru0kw7+PbrRQOvl/yKAAAAbAlMSU5LUlNJQ08DKdI/x7Gx5sylevo/AJDxGJBp6AAAABIAAAABMEQCIHGO1rNQzWczktY5MNNrGjrc47gOaXFc+O3HTg8VSWgMAiBr9s6LZe93kzLUcSRpT04kTi3mEpJc8cr0j86ghMw7GgAAAGYDTEFSYibKoYV6+8bftspmBx6yQSKAMaEAAAASAAAAATBEAiA2/lkKj+U+NHXb64s6oU7U4YSs1ZPbbgqLQLmZqTbYfwIgL/7xD2Xs3QPJPUQBiFonjq5UjwOwx7N21jtW7TdOwaoAAABoBUxJTktBV4tJxFlh+Y2N+ShUtT8WQa8KUDYAAAASAAAAATBEAiB4y9nO8QMefcZY5e017Pms7lqUV48sNSXjk+HUR6JNbQIgJ5gqGxGhBl15Jhv+jI8aM4+QKqD5N3iX0nkcyEZYvx4AAABnA0xCRLFa4WUADI17adKoLkJeEQZoxzrVAAAACQAAAAEwRQIhANBKiaazhhfvqD1r9U0xEqIuvWPge5Xp8QqKFcdMIqP7AiA0NGofLGgyqSpDdTNXQBSKeTxI7t8ipNLfPDbRmccH9QAAAGwITElOS0JFQVKiCbo0wBonE6RFOmVmMMyd6KNivAAAABIAAAABMEUCIQC9K0eiGLK9Rm8jj4fD2EjM1oeH+CNcQvSxOaU087EM5AIgdFBEheduk2Dwa/c9TX53jj/N7vibrTSyRWG6PdZfjO8AAABrCExJTktCVUxMg62HyYisDGJ3wMYjTMgQiyC7XZsAAAASAAAAATBEAiAuEYxwdyexi6eeKf0Y+ZbHmYXKCp+kLsXaPpdCr/opNwIgSuGAxfjBLkEPGkRaGtFCJMGVsT6MTdYRfIbTnXgVFC4AAABnA0xLTp9Unr/Ul0zU7UoVUNQDlLRKc4KqAAAAEgAAAAEwRQIhAOndQKvBgtJNBGl5UKVQe3Q5NJLhr5ja5r1zMPoPNVlRAiAm1p8FN84qnIhgnE2gEy961n8JtyZ5XwkJF5hZggM4YgAAAGcDTE5Da+tBj8bhlYIErIut3PEJuOlpSWYAAAASAAAAATBFAiEAzKlJdr3eeoZNj7FlKa3vdNuqwtkEWE81OS1Ulu4WpOkCIHb941zfqnJzWfZpGjfF73stE4aWj/lNs9S0Z7toDAmRAAAAZwRMRUdBwWb5ds6ZJqMgWxRa8QTrDks4tcAAAAASAAAAATBEAiAf1R0WWitRU7P3tm/eGdyDZa7OYHOFJNJHbt3fhOuVEAIgc5AZhTpW1b1RF7GljhxhXEzffxjr+zy26yiZBCEU1eEAAABqB0xJTktFVEiJM+oc5nuUa98kNs6GD/u1POgU0gAAABIAAAABMEQCIHGJfRffUHBBdb89QwagHH0UmtvJSZ065PhuuaIN02c8AiBftUYK2r1FZznKorbw1/zf/AfD1q2p48hej3OJWxwwxgAAAGcDTEtZSb0tp1sfevHk39axEl/s3lnb7FgAAAASAAAAATBFAiEA6ZeM76FyOoHDInA5YF3bt3BL4RFOhIGnVQlD8i4vlB0CIALI5QVsyfiXs+qyR/CxRYUFecl9zF3AaT2DUtSSWIyGAAAAZwNMRVT6MRizRSJYDDWuJ/bPUtodu3ViiAAAAAYAAAABMEUCIQDHNFqR2fsOgI18HnEDt/6mrEBK3jW6MwydcjBwPkhBKgIgahkecI9ZdPnVaXBdgguRPLyrlmqz6d253ZyLzW4y4VwAAABlAkxGiGZadVbhs8k51mYSSBFohoRSSagAAAASAAAAATBEAiBf4CN858qRBzRPEk7xtgwkaJJqTITCDksSx0JhabMQRwIgQOgDPWfTEWDIP+V5z9Mrr/97Va4QOieb5IOoy0wZZGIAAABnA0xQTJkpXxFB1YqZ6Tn3vmu+c0kWqHW4AAAAEgAAAAEwRQIhAJL7HzKJhjIayEYzfiYHAYUbBxZ2SKHps4ZxkP2SB97mAiBdLmzqkX3OThWE8NChKyCxVAiqbK4hhzCuLSYVTQwe9AAAAGoHTElOS1VTRA4uxU/AtQn0RWMb9LkauBaCMMdSAAAAEgAAAAEwRAIgb1KlowClozLJrov6QFBKTTvpOFpq/RY4OEVCL++geAYCIAsVtJ4gXixsDKSDNp1E+XaHwVvHr6cqVksskegEklH6AAAAZwRMSU9OIWf7gjCc92UT6DslEj+LBVnWtI8AAAASAAAAATBEAiB44iK4VE2jl5JR3ZJvfQNOMQzMc5Tzu+3Gb6cJqAKgcwIgFqH/abvIy/2ChZ+dEwMU20YO3+RzDzZejO5nWGPzROkAAABnA0xJUXLKBQFCe7jwicHE92fLF9AX6AOpAAAAEgAAAAEwRQIhAL0gq1zz2GCzyay/ORD/Otle45yxeNnMGpwzbksefdDZAiAE0jWSTGTbi+1e25VaSQ88zXCiRefOl6jiOM3zcLO38wAAAGgFTElRTE9ZrWBhoL6CFV56zOnww3v1n5wePAAAABIAAAABMEQCIHZidRx8cirZJ+uJtm23r8RUvKvjCtKyamplGma3lGSQAiABtlyqWGHRpPLvEOoe30s6dg94Stix+Gx3Jryvsc4zZQAAAGgETUVUTPy+YV3vYQ6Aa7ZEJ1dKLFwftVUQAAAAEgAAAAEwRQIhAJXaoDrzjv0RofL7pUiDxy31/B70NDqHw+v3OW1q3L6DAiBwt4dolkOfjpEVztkslNt75ePm1W0VT4CkQiWp1yK5GwAAAGkGTWF0aWNY8Dp+tG0B2eyqEEVYxzLPgva2tkUAAAASAAAAATBEAiB8JhKYsbU7jkl17iCSvXo4w3jrALtlBF5hl6m1yTD8FQIgI9A8o3vOuVTLXfgo3UZIkzY4zeKchs/pTk7m0LvNUCEAAABnA0xJRAQXkSs6evdoBRdlBApVuwkl1N3PAAAAEgAAAAEwRQIhAPOznHm0tEnnH/K+uJaRAcynmwzEVzkpmJEWuMqBv4ZvAiAxc0pUHmOFNJNUbdqibXj0ak/BrcaFWozXTl8U9Kg2rQAAAGYDTFFE0p8LWz9QsH/pqVEffYb09LrD+MQAAAASAAAAATBEAiBmxLg3ZnnFaWfwANhzcU44Zila0+PU9A5T/XHyRAtvowIgW3EnlZmiksDJWz32hEkP/r9sya/7mQ2vNrEuDvxpu/IAAABmA0xDVEo3qR7sTJf5CQzmbSHTs6rfGuWtAAAAEgAAAAEwRAIgKt1HzQ6B/CI61Lam6ORwWX66JAzUHG0b251HlDjzWX4CIAaq4dXiQh9a+PhzJTenMEQNgkR0UbSiH8eX8RV+cIVIAAAAZwNMVEKhBcdAvAEqQ6NCq0oO9AFDRSyOiQAAABIAAAABMEUCIQCx4usA82PD//JcV/lX35G+uTgULgfSdvtO9VriIyGSvAIgODNaCDhJ37d29+uQPP0O8ZpHoh7DjMh+sUuUJ+GGhA0AAABnA0xUR7TJq8inS9Lg4LesXs4weS5l2GxZAAAACAAAAAEwRQIhALboAvUvxbDwvb8Izl68a6Mq82Xyb/w/KgOWC/K3+qP2AiBdZeMu4CT2+GzFDsVdztHQIUFL5Gl/8hZRdOnrCdo6BgAAAGYDTFNW7gWfDKFQfk4gxomyDP9xtekk970AAAASAAAAATBEAiBWc5vfxaesbllRS3MDcWnPCBRDNF14vRh7m2LwK25DiAIgGIEoueTyKuQFtISKfkMwzbvDy4BHHE+k7wdTsQf0COQAAABmA0xUS4pzK8kcM8Fn+Gjgr35vMeB3bQ9xAAAAEgAAAAEwRAIgQfj8KTCPM+YhNekNv5SWX1VR0kPaEPxXl5/Eu/c0RDcCIGrhE6jrvmd8wbtt5BxNljlQReAOWUivsMIrvr7MOvPMAAAAZgNMSVS1lJCrCaD1JsxzBYIqxl8qsS+XIwAAABIAAAABMEQCIGqAvMARjd7PFLeiYDEtWdgdG+NwINdwKjfcHWqaGfdMAiBIcvzm8VhuzW6N5CVhkpCOp3+J3XODUIt5aZWGimSVeAAAAGcDTFhUvEbZlho5MvfWtkq/3sgMGBbEuDUAAAASAAAAATBFAiEAx2dqQ98dCieNMytrIlP5D9F1EhB8ytT0kodrjxdyXpUCIA7MoclFwo+KC6xLhcO7kFu2BGFLa4IUj05Hzr7yI2GFAAAAaARMSVRI+KSkGcLXFA5J75UqfnrhvUqLa5wAAAASAAAAATBFAiEA+uCQYxOG1KkqMNPJCpoV1tQXunouDqCj+EKhdubDaCMCICZZ/sRd5Ku3VcEydAxm34G9JMHv70GGOKbTKKTHnsgEAAAAZwRMSVRIGI6BewLmNdSCrk2B4l3amKl8SkIAAAASAAAAATBEAiBFgCjLEzzoNpoc1XvD0ZJKYOdFoUJdgXXEuZIjDXtv3QIgN/2KKLjRmFkD6mFYHQNbbxTc6kFfylV3xiyCCu6byAEAAABnA0xJVHY/poBuGs9oEw0tDw33VMk8xUayAAAAEgAAAAEwRQIhAL7QOfBuRz3xTk2AhMjVFrPgThxJCYfCI8/tgHsrakF9AiAzcp2P26rjKD3AU+q7ihhGV8iT62KSmGMT6ysnWNpQIgAAAGcDTFNDBI65ucCOLfRWRM8Nsfyz6GbEAa0AAAASAAAAATBFAiEAjF8TBD89EqQRetgKRBMFfrxyNjztukt1/41chcRg9asCIBQGcMTYUkJz7gJT4xKhZ4dMeHQPh8zOZWYnQo6GroDSAAAAaARMSVZFJKd8HxfFRxBeFIE+UXvgawBAqnYAAAASAAAAATBFAiEAsTnPii9KbP/fwQfyXjOxYL3UeK4nnN7kLoGgWsaIw9oCIB+asyMGnKVu1WZr9P0ZHMQHwAd1R5N5W43YcbxXIRirAAAAZgNMVk7IysdnL0ZpaFgXzzMqM+sknwhUdQAAABIAAAABMEQCIEdZuQm3ipN9wq13DWPvtRJOFtYaf+od8+FMNRji7VfOAiBeay+qoMw+WuxZnZnuGoZgkvd8euE/5yYk9dp6QKUtLgAAAGYDTFBUWLaoozAjadrsODM0ZyQE7nM6sjkAAAASAAAAATBEAiBOT8w2gDXMc6febVy43rYgSgBWcdsXFoRmdnlsubBosAIgacVPC+KtGALjva8U85k0GoXV/lwXub+iMFp91iE1J/IAAABnA0xJWNA0XTD9kY12gjmKy83xOcgImYcJAAAAEgAAAAEwRQIhANrzTKrP9aVY6nz+0Bap2ZCS9eD55iHxZLzMEnsHhU2SAiBrMbi3nLTddpggIyR1vQkbjLGKblN3bivlOJ6Py4SyegAAAGcETE1BT2nvRc9k2DYCedqpdKq620LwaDpsAAAAEgAAAAEwRAIgAScuGUlMCb0J5GzLMe4ysA8k3eyRHp3CCxQRJW3TeqwCIAI9iICPeAC4hC0u526ypaW2jYTP7ecxDeQzRh8CWBkqAAAAZwNMTUwltjJfW7HB4Dz7w+U/Rw4fHKAi4wAAABIAAAABMEUCIQCiXu+igVMk16MLiAnN5/fPZdO1Fp6VbdfKHDpmtowvhgIgLH6kmgzYElRtCxnaPIvrYhFXaEbwsMBrc/OP3wYLyoAAAABoBExOS08Rr+f6eSWJ3RI2JX+Zugn1EEYK2QAAAAgAAAABMEUCIQCsPM+BV9snzExdRMpgaOBFMyQLcWhFpC0aJ5UamMflwgIgXa6rKOMbkMIVEgsYTS4KFQqZsClBz5bOZ6XhLLoPHjoAAABnA0xOWF44RaHXjbVEYT7b5D3B6klyZtO4AAAAEgAAAAEwRQIhAMhiFpn8rf1UYAdi41HnHsl1LDUvNdzjTlodJNU3hjYDAiBmUN7gHycw9gu/Lu5CirvZyPu141YF9pDcS8TZidhw1QAAAGcETE9BRKiD5ywSRz3tUKX7/6YOQAD6X+PIAAAACAAAAAEwRAIgdJ8YC5T5FSl9k9VcKUnSp2KeHoE0rL3qFJRuywVu+F0CIDqcjtwetz6Im9zHLeJoazwtVkTzHGiaqvEJPTRFsVrHAAAAagZMQnVyc3ST7NLs37kasv7iiod5pq3+KFHNpgAAABIAAAABMEUCIQCuRXOINpkbrO5Ad0boWP+C6COxwie7B8GO8w+Uv0jGtQIgJhisK0e9oV6xNBK4yJC0Vn8JeZEAHcSrc/wcs30ycMUAAABnA0xPQXRY/XhrL+jNgBwDgfiLYcUHGgBvAAAAEgAAAAEwRQIhALRdc7+W5qIETdczlqPexyvrmps3cF7/Va7/QrBJEyJ6AiA4qEcD0HAwK3JiAljiX3S/7HeGSNN4ZUg5LcGDFZl05wAAAGYDTENTqhmWG2uFjZ8YoRXyWqHZirwf26gAAAASAAAAATBEAiBq06+SU3GnzYbstZxJKNjfLmAR92F21DRrm+Vw3qcmmAIgERztBlkRkWkAG28TNPw/oYZDEdHZx7WVprPd2QbFUSsAAABnBExPQ0dg61fQhcWZMtX6psYCYmikOGkn0AAAABIAAAABMEQCIEjDiDkfwwUdqloSHeD1PjhP1dHNi81Mg2WmybWBEC2VAiAVuOUTFH72vOEnHGP6zlpVe4hvmdUT/6dbhjPuiItmggAAAGgETE9DSZwj1nrqe5XYCULjg2vN9+cIp0fCAAAAEgAAAAEwRQIhANLWnMTU6SsNhKlTRk1gF6Jb1cmfWViGXxnOBbMWk8pMAiAVtSdJ3wakE13r4WAjs+gTCEO4FZfr1WqAaeD4okzHagAAAGgETE9DS7lGTvgIgMWupUxzJMC43Wym0FqQAAAAEgAAAAEwRQIhAJMUzSqjix5/bc8F38quMvZSe5R800lQTn9uOnB/YA5IAiAtzHLe4ffirRqR0R2ELUBxhbPg2roxuvQfdGhg6Y094QAAAGYDTE9DXjNGREAQE1MiJopGMNLtX40JRGwAAAASAAAAATBEAiAeivgpD70MygET4cs2GSfsWQo14Z7CgdgQhSrdoqEP5wIgeHEOByjj+9gZUGRpWuAsOQdriwyjwWd44jehPUOPnVAAAABnA0xLVNm4nu6GsVY0xwyrUbr4VhWkq5GhAAAAEgAAAAEwRQIhAJYPPAmkmRRdesc8IzEaALBRXAk880X8BRPCZSPehckXAiAfbt+J5S8HzeowNDEnSb5EB7sSCCBhiGPI4Y4/C4Hw5gAAAGgFTE9DVVPGRQDdew8XlIB+Z4Avirv1+P+wVAAAABIAAAABMEQCICyNh3NCB2N97djTrrFVQ7IpVvp5RTvIrX6f+tb1lureAiAzmukNmbEQ4WwEFzJCpkO7VothpDas96W7QsSZU0C4HgAAAGYDTEdSLrhuj8Ug4Pa7XZrwj5JP5wVYq4kAAAAIAAAAATBEAiAXyrnF0m/hBDbv764YONK8pbDllFJIq08W0XVlgcn4/gIgaXMWRBhzL43iTKh3lGCmo1TohCHl2qRvfGCOHa1LyW8AAABmA0xPTFl4cI1szhzJZA7tR0ItZMkbvVFxAAAAEgAAAAEwRAIgWzwvwnkoX9IiOFa0gmnwpvTZeIsP14gMi2Zj7gxC7fMCIBZQkxBNSo/Otj1HwrHWO2j/f2FSCM5Pnuh+6te7KU7vAAAAZgNMT04AAAAAAAlUE6/CldGe3rGte3HJUgAAABIAAAABMEQCIAVFrIzTb/+oLUUF74XdmFf3hahkb84/wgRrSF1ZjS0DAiBW6Z3euKAlx+tu81wlnvJt8s5rqLRsge+L2+LlXxi7MwAAAGYDTERYnvoOI4fky6Aqbk5llLj03SCaC5MAAAAAAAAAATBEAiADjbxXHyUQnZqMh7zXnPIe/MBkzSXFoeaZnH1E+88+vQIgW8Z+oQg3papscfw6gVcJzYOZc/ufwDMrwkeUDwjKnwMAAABpBkxFTE9BUIpjvpDwlfZ3e+PtJdn8fNKmPdswAAAAEgAAAAEwRAIgI7cDt7T0MjS2X5Zgv/upDqK67Q24NMdaVsIzFbB+GnQCIE5rP+PMRm8qUTV8CI3DtbN05Fzbm0ay/2OD8hG8vpUIAAAAZwRMT09LJTx90HT0usswU4f5IiJaT3N8CL0AAAASAAAAATBEAiB46hnlYkiKk26AGznixDsQm191H0+HxRCR711OfwlJGAIgXs72C0dQKGYOfHjJWi3w6DS8ybyFQNbZkkE/r5NCNMYAAABmA0xPSyGuI7iCo0CiIoIWIIa8mNPitzAYAAAAEgAAAAEwRAIgUcy4AiunyYOAsoirLNFaZiCk2yy88f1+HrwBkrOZX4gCIGq+WuhM7RDNlPtwvHRfNxoKP38NB5YWIhAXVaXM69wCAAAAaAVMT09LU/TSiI0p1yIib6+l2bJPkWTAkkIeAAAAEgAAAAEwRAIgdbTyW2Afx10kwMytMiEMBNqrxNYxiGycDJGim+Ptn2ECIGsNX+ISHXsqASSEzw5d9AbmkRDoofo5b8EBnbTNdFQeAAAAaARMT09NpOjD7EVhB+pn0wdb+ePfOnWCPbAAAAASAAAAATBFAiEAsmEPDmRcwyGMTOaZsn/fW8Hy+USZ86Gm1q4EAng6OZkCIAtIzK83SeN6TJWvx6d6HugTNQTzaGZSoM0eb0VWZCSsAAAAZwRMT09NQkdvdEKSEH40UZ+cNXknB06j910AAAASAAAAATBEAiBcdj0nSw134F8sAgzspnelAqZJ7qv9g5lWNVGWzeXJ9wIgOFWSWEStnYtTCQSFGU0Mh9U4sMnXMiN3rZobB3LIEMEAAABnBExPT058XVEAszn+fZlaiTr2y0lrlHQ3PAAAABIAAAABMEQCIHnV8BONsi4eWPb0g9/I8ar7sdXhKYP0yx1wj0SFm7h6AiBuzPp9CcrZGITqPIMckIbp+vMWlpGcPCGNwFW5KcxTqgAAAGcDTFJD72jnxpT0DIICgh7fUl3jeCRYY58AAAASAAAAATBFAiEA8zhdzIB5nFrJKp9VjvVvgHM9ryrAVNVWK+kYQmX20yQCIBbvV0k0aVVFeYh0uZbl3RRzcmYqqZQrgFd5CtcQ6ESzAAAAZwNMUkO7u8pqkBySbyQLierLZB2K7Hrq/QAAABIAAAABMEUCIQCjoWBt3jC5GkVfKjdwUsjBKkLooVbPKO4jP/Xx2NcKNwIgAPVXezcSfF0BjE6QHr55eWQ0u0UUmEiHpwXydF3+JmkAAABpBUxPUkRTaG8kBOd6sNkHCkbN+wt/7N0jGLAAAAASAAAAATBFAiEAuKqu7gulkJgoT9/pyqj7d41tL7TIrfBlAz2+meSKTOYCIDn75fwY34IH7/3k4Kb/DFyo8hjGrLwXk2YDWBkduyaUAAAAZwNMU1M7m+B9YirMrtePR5vA7av9Y5fjIAAAABIAAAABMEUCIQCjrN0Uxkv84NphvsJ/e04+mdVStQgVoAs2xPpSBO/0gwIga00oLeRakE72vXT697c+CqktJfd42yuog4yoDfEzOqYAAABnBExPVE/5R7CCTDmVeH78iZAXo2vJ8oEmXgAAAAgAAAABMEQCIBn1mA+mQMIEHvInCFew/D877AYSGKw/A4s/OHA8GApYAiB+HTC3vSQjeSogeY3ktu64nNZrxDt86vON5xCqlQTMSAAAAGgFTE9UVE+w39KNPPeliXxpSQSs4pJTkkL4WAAAABIAAAABMEQCICJmomE3HUSS11fhpX2ffOoyGYrCD7/xOv2AHWWigHUoAiAs244dTtiTyKREfgyEz/iUI71hgetL6cUvSeuh3Y29vwAAAGYDTE5UOnP2FWxPvHG4/fOAkKnZlAEWNkQAAAASAAAAATBEAiARcUevG2rcrCoKO2RubtjtyIP3jNHnYVLnFB0wapynpgIgOlkWzTcv1qKOfBjGgZCmkTjMTPvt5d22UrptQfaV1vwAAABnA0xFQ/ow5i7tz4DUfUKUf7zANL7tXAn+AAAAEgAAAAEwRQIhAIZCUXlsms07YD5G1Cg34YQ0e17e+3atKuLmqZEq6pXTAiAG/DKm8RrSDGfGxToWvB8U1+QkklxtAVaj8+GUOyM5ygAAAGcDTEZH23oahRopd6byugZLK3ag955cpYcAAAAJAAAAATBFAiEA5DW8DZLA28tlyvmmsTrSMjFA4F51ZeWSM1W8ZQxRZoUCIAIfRUpROF0A+O/nrS4+uRpwPinlO6u4iy0tEg/1Ol0/AAAAZwRMT0NDVWk4YhwZ5erljJSoBtqdI3uWm9gAAAASAAAAATBEAiBYwaorR9XbmRO5UUaJIQEIaQE6k286EPsMh2M8WhjlSwIgd5WVcC4HJBrfyWVwWeyu7XFxzn1H4FIKEivJn8vdRusAAABoBExRVFlt6oHIFx0LpXR1Tvb4tBLy7YjFTQAAABIAAAABMEUCIQCDjMtWG/wYPrxpDp9CiIjnmCTEwNinuPz4ADO/RXlcNQIgWxoGcQQ2DEupz6m/xBQ3DwC880Tf1bH+ZBwktYC/IlEAAABrB0xUQ0JFQVK0IuYF+9dluA0sS12BlsL5QURDiwAAABIAAAABMEUCIQD1CskEqdlEoZimdACjyItRSUtB8pAWdleuL93c8KL7EQIgdcDhJaAcQ+cRO1zt6Pv682CYCKOEfJ06bVNYGJ/5N8YAAABrB0xUQ0JVTEzbYTVOnPIheil3DpgRgys2Co2q0wAAABIAAAABMEUCIQCx/u6NFJ+mK4knHPCNIv4hiVV46RTebmiUghwzXFZczAIgVauJFzkcF6a8dbrYeD7ohyX7yZaJzAJWNmFuXUUt9s4AAABrCExUQ0hFREdF0MZNbA6apT//2LgDE+A197gwg/MAAAASAAAAATBEAiAYrbuY+vXvsLPssg6bi78B3ibDoPKoAoYlqcobUQHxugIgGJ5vn4i2s+y3svjcWUS7prpmfWMTD2cKSaytXzvD/ncAAABnA0xUT9AUCTFKyzskXOqVAOzj9v1NcOowAAAACAAAAAEwRQIhALd7OB4e6iKCpEBzOqfJDqtuBwm6TgtkLbMAEiBNRTbzAiAO80L1COAeTa5FHLbKSBPoFsHMPvF+z/lqmznFdTptnwAAAGcDTFRPPba6arb5Xv7RpueUytSS+qq/KU0AAAAIAAAAATBFAiEAnJvIDIuUslG7x7iL/smN+/L/06Al1573uNqlFtJuLisCICCZVnGSFE9yoS/pWrQ59ETEofMzvpKaiG15OeFcbdd5AAAAZwNMVUGx9mmXpXYEKNOofWi5C/4K5kEhzAAAABIAAAABMEUCIQCoM7t8oo+EnyFgPgzh9usVJKygOFahG6fi9Er70bQkqwIgTTsBTf7gq3kWmhn9/uOFVSftarveywO+hvFjD4rVg+8AAABoBExVQ0v7EuPMqYO59Z2QkS/Rf410WospUwAAAAAAAAABMEUCIQC3eP7Y6uUm6NhxgdvaZgf1W/la5jo5Zkw5LIgZdHgQyAIgFy5hu8NtafFS8+Xx89yQALqeKt1rMvbPjbjz2/WFGSkAAABmA0xTVGgezFoL/RjDCKETj/YH+Bi6xeQXAAAAEgAAAAEwRAIgJK2ST8Mcb0/CCVKE/c8L/NA+lbNj/hdjOzHn51mN5+MCIBXMH2NYKyMJMwIJiEw2ySwsZEFNemdeW9/Pczqwk1uqAAAAaAVMVUNLWeR41PSofU1kGvl8oLXMPbYeJmNXAAAAEgAAAAEwRAIgTDUZwVDt2dIo8kZ97TWZzxPFlGxfhn/Z9cwF0LcQtXsCIGvMV/8+gwKVcHuLsUOmjfTLBfjAOeKeJcCqyPEazlC7AAAAagZNQU5FS0nHFs8BUymZ5d9F4b0JdDEoxZMoIQAAABIAAAABMEUCIQC4mvqCWoi5ZJI5JewF2lXzGWeekIJ31EOBI0NQ/Ya2kwIgHV2LckBx6BJo9QizZjCqoR0i21Ghh/lFfTVsVfuFitkAAABqBkxCbG9jayuGfv0t5K0rWDygyz35xAQO9NMpAAAACQAAAAEwRQIhAIljcasfXUTSSU5D8w/A6twPmiDyLSFmw97ZHTb9moxnAiAae+r0/q3/Vfioe3rNJEP7s9+KUNsgt3KuPXlXrgk6iAAAAGcDTFNUa58fCS4LEAFaQ5GoDNPmts79FygAAAASAAAAATBFAiEAz0w2e5x34bNPiDhIKGTxzyxbyOdxq28AtKUmo2I0Sh4CIAaRz/M+zOBMzFogl1LrzSOfUgeWOQJMmBOvvbrSZ+VJAAAAZgNMVUNdvilvl7I8SmqmGD1z5XTQK6XHGQAAABIAAAABMEQCID2vqpx1sxhDSghOFhUdY2B2Hz4ae1hjdYDFT9IcDZYBAiBdxrbzLgLxxQ1eOycHtb7Y1DfzQSmCgx5v75UvN2hHRwAAAGcDTEROspZjqk4ugeQlKUGTYWwbECtwoVgAAAASAAAAATBFAiEAq+4Y2WMzwLG1x7SUSSyY57odKvEmMvLXwu7qbqvZq00CIFVUPC/uPBv/QL2hZw7pT4L3JyHjvfnvQY/wpsNoj7b6AAAAZwNMVUTmS0eTHyj4nMegxpZez4nq20l19QAAABIAAAABMEUCIQCUr0M9dOtuwJ06ihG8epr+IFllKSVZVa7N4lTtTmq1VAIgatsx5ISUEAPfD49Yr1xaN0/KKUgiObC/M5fDGAfYZLAAAABoBUxVRkZZcSHQC0+hjxPabC4w0ZwEhE5q/cgAAAAJAAAAATBEAiA4We/iLDdxtsTOGaM1qtdBXeP7RB9Ix4457Fuyv0IUyQIgZYT203PhUkP3zTgEEpHCH6ffmhWNuNXxjGB0OeoxD8cAAABpBkxVRkZZX8G/zNTCmBPt4BnQDSF57qg4pncDAAAACQAAAAEwRAIgO6AEPej3iwuDguABBYp163+QkNNYmR8+H0EbtN5PVdMCID4rrRFaEApxNiWV0WvzAIGUwWAuu2pxq08YObjsxGp8AAAAZwRFVVJMqWfdlDszZoBUABFTbn2MPTMzNRUAAAAGAAAAATBEAiBQyBv7mEbdXWpzO52LxaGsSzBYBJIYp9ks0QxM6UzTwwIgUGmPm6BwmzIqfBGwMRsqebRhGbvSAlOVU+jEixRwm5sAAABnA0xPVGVW0uxNlto5z3XL5Q1Y+ukAeYAKAAAAEgAAAAEwRQIhALjGWc/Ucoh1ak0e9C0z/asbPgJJQxXCXREKFshD89wOAiBzLeQsEYYfsMkH5JM59YDLDbvhUh6R7PCtn2ZFVfEzbAAAAGgETFlYZai5GWgCWNNpEUkQURzIdZWuwL5tAAAAEgAAAAEwRQIhAOp4k1KfwKTYKeFUx3BWu7i7NCXoXelEp6kC2cjsN4o5AiAbiqolz2Gvf6qZeAlDffXwgGmWGCUQPwwGBnvjbroINAAAAGcDTEtUJDxW6OdAAlrGsRLXua9Zvo7vbjMAAAAGAAAAATBFAiEAoJu2HUcVWtfGucS9tV9uSTKTJ1V/MIUMnKdVrI8CGvMCICi+ivL171CKGTxCO5xMlz3S9fp5vHPtjI5vZ0yEeppyAAAAaARMVUxaiaZAFNQpUJz/2hrrx+s2uUNXlL0AAAASAAAAATBFAiEAx+vy4+HzfyZb3IW/HHcMXRsDJQ0A8fCYx71KLeCptdgCIDXGzIwWtAOOZiHUtLRmXe7yKqYgetSMyUiF6ZgaiwiTAAAAZwNMTVJLHQufCBRo14DKHV15EytkMBCF0QAAAAgAAAABMEUCIQCkyQxU/4sXkhr6Vy7t8NUMpkQNnsRw17hKDRmPrs6FigIgeOvmRSCR6dLbhkfD4JjK9FwUj1KIu4FgLe1aQ+RHdvUAAABnA0xVTaibWTSGNEf25PxTsxWpPoc72mmjAAAAEgAAAAEwRQIhAMk/obY3A5c0dNT1uQIkL+I2TiafXKRkoi7qmutvkPkvAiAbtN0H6FUajnqer7S2SSrpMbpq1/O2KoyV39EE68nRbAAAAGcDTFVO+gWnP/54748ac5Rz5GLFS65lZ9kAAAASAAAAATBFAiEApgdzNnlECeXHr7Xh1FViR3KVENY0lObzuVYXc4+Q5IQCIA02Rwn7Mp4z8iuyVttR7jc9AOMoCJ9bDp4XNfxpvgdLAAAAaARMSU5VeBMlQ9jiDSQX2KB9muGZ1Fig1YEAAAASAAAAATBFAiEAxTAGosivSDki5tO6zqDLH46ULUKoHAt0ErSpXPkxqr4CIHcqZAZ+rhw80gUbJj2ztxgICJxEVURG+x++O+PauYSmAAAAaQZMVUNIT1el73QGjQS6CAm3N53XavXONKt8VwAAABIAAAABMEQCICFoBWXEa2SVL+5zmotR2HVVBN1N/KQPhPaLAuyloJcpAiAssuMzsdyU/scZzrEC5owYfVDp1/qAHbRGnDUas7koEwAAAGcDTE1ZZv2Xp42IVP7ERc0cgKB4lrC0hR8AAAASAAAAATBFAiEA+lsOVFU9pCPmGKY3XeoWkYDTf7Wo9wSeeGa8KlryK6MCIG8KquOdLP+du8hgQ2MOrIl9zFwaY0difUSJ0xz/5tbeAAAAaQVMVU5DSHGij+rukClm3I01XnuKpCfUIefgAAAAEgAAAAEwRQIhAIBsGY+OXNWl5XWt9Hz0i4Q2E3MCICK7t6doYS9ychl9AiBJL3p0Hs0HvSBLYV3S3sFZj0IOg2mKHoFEIYgELvBaIwAAAGYDTDJQ7g8oZ3ZjnNNj2oENrz4GI/gldrAAAAASAAAAATBEAiAIWVYhIsR+NIIEMWWdu2BFced0plJNW77dvPOMwxbF1wIgGlVs9j170p+YEOEHyW6XaCoy/jxJiqYI7qqPQ5lc6ZwAAABoBExVU0RfmIBaToviVaMogP3sf2coxlaLoAAAABIAAAABMEUCIQDqkyjEJvmH8bqUZo7H+VcQbFXHMTsQ6F8jrecdL1E6cgIgYcCUcuEbUY1QHHhbpOWYpfWhvAxiVKa7xuAI0z9AXIIAAABmA0xVWIja/rt2kxHX+765ohQx+gJtQQDQAAAAEgAAAAEwRAIgVHY8+rJqzBgw1lpHOtdXwVeS8hXRwIj+fJtBow/QRooCICIkynE40E5T4eSU9b5eg7Z+lteEqeu0XseX6kzLhewbAAAAaARMQlhD/+UQqSQ0oN80bF5yo0lLBDzySesAAAASAAAAATBFAiEAlR+hjTZlxu08LSWnkBNrkqPNqmtaLsQv3ZFui6Wl2mgCIF8wXNQsSr0lGxZMXA+4kkK87joqc2fTSAdlffgO/2t/AAAAaAVMR09MRCd3jhTONtO4Xh7/60OBahe7twiKAAAAEgAAAAEwRAIgCo91/V6x4zTnF7btcU6QIwvOUW34QUfV+g6H4WK4kJkCIFng85u/9ev/kHDF6CkKbbz2Tl+f6T3NR8HcCp9IwZZVAAAAaQVMTEFOROW/Z5DROLFU8d89uNJFvkal0F7kAAAAEgAAAAEwRQIhAJmVgTxPp3tOSNCqISdYHFYCFTkhiMzIhV/w1psfeLFGAiBgjtHeRQFeBQ0XbiAUKdvq6gyvv+vxEx4wMZ/DHpkLYQAAAGsHTFNJTFZFUtZICfX313LZESpr03neAKdxiBmeAAAAEgAAAAEwRQIhAL+alUucn3LdbtVB7IYL5ezBCz20KhOCw0cu0UipY64NAiB2uNehPNd6K3GHXQttmYK9sTEtVT5Fo7tsSQMbmZl6EAAAAGYDTFlNV61nrPm/AV5IIPvWbqGiG+2IUuwAAAASAAAAATBEAiBWpRUHXhUxfLAqNcR8gg33q3K0TLpZdR8qSux3fWAU/AIgcNsu7XfwRyRBEWqDH1g/VQAAgWdpIBVvwTJTfk5TRYUAAABnA0xZTcaQ98f8/6aoK3n6t1CMRm/v38jFAAAAEgAAAAEwRQIhALFzarEc2ZzS5gxcdTn54G3p+S2AdiujhZWb5gYDwzXUAiAG7MBbqdn39mOkjl8qxxgbyigRPT9tJvhj+PXe6MZHMwAAAGcDTE1UMnZzrmszvT2Q8AlocAWZlPMNyK8AAAASAAAAATBFAiEAw27y/qsRoG7Y80RcT1o5+RbVjCBlqN6VOtDqgADXBUUCICzgWe1WKRlMMg6nEzrjgCwuab0Sejz3gD5YHyAzGwrRAAAAaARMWU5Dj4fsaq07KoxE8SmKGvVhabjldM8AAAASAAAAATBFAiEAxLFLaJKQEIL898PGNJy29xJg4VC2+0UgckC96s165doCIGJO2gp1+wZm54FMtHtEO2uV0QGLkiWpgwO2BTHvNtlWAAAAZwNMWU6wsWhfVYQ9A3OcfZsKIw8bfc8D1QAAABIAAAABMEUCIQDHxT4Y6ORL4Kfs1MKe2WJS/yjzjUoUCwN8hMvM00cxPgIgaiFbACFGsAym5ICH+0idIenePcfCaYsT5B1jO9mzeu4AAABoBE0zTTPGycQVMHadgLgSnEJ4hIAQ/llRWwAAABIAAAABMEUCIQD5zgLxZospKpR9mQEeOrynHlUzaq5WZthCuveqaq9d+AIgKnerNLKb23l6RNQaDTLmUGN//QWrFaWAdXWkugEIzK0AAABoBU0tRVRIP0tyZmjaRvXg51ql1His7J84IQ8AAAASAAAAATBEAiAusQx4bHqcTl4/Fre5VHcU1d1JjUvvEq6vat9O8NyBGwIgA/hUa/2dq7oUnuxOqUWndGdgxPxx5sxgawrWoxHd530AAABnA01BQ0wzRRBfzGzcKduRBY/6rjPMpbzbAAAAEgAAAAEwRQIhAOq3wKzmAclKMhobQNm03VRwwWyKoYkn8t1Q1tWl3halAiALfu0y5MPiv72AljfvewuVfaVI4kcEXWhjgjE/a5SInwAAAGcETUFDSLEZzpTQmMGP44CQTCTjWL2IfwC+AAAAEgAAAAEwRAIgYOCjNA5rnlR67kj9jbOJZFGp3cl2kEUfXRbLx7t6LDICIBtbuWJm0XyhL9b5UwGNL+//Kb85sYOUa04guatOkqKEAAAAZgNNWENco4G7+1jwCS3xSb09JDsIuag4bgAAABIAAAABMEQCIFXKfWLxyQ3/h7WNdqXKrMV2jr6Xiq+K/Sagwy9GOSzUAiBRGZfXGaXgnSW+ng70Tk4kPGzvd0yBgBpGYQSymz4IzgAAAGcDTUNY0V7Nz16mjjmVstBSegrgoyWDAvgAAAASAAAAATBFAiEA9HJcEA1q3ltr7kfGIvWiGMkJu/42lm584ogVeHsRSzECIC4XZPJCeL3SnFty2MjI00ZoGCw5SMx/Xk+rdpIvukSkAAAAZwNNQURbCaA3HB2kSo4k02v13rEUGoTYdQAAABIAAAABMEUCIQD1MRxhzzg+GqF4Mwvg4OvfAcCVEtIQA0C1r7AsaLrVxQIgcyoAGJ1UbQdZS1q3EJO/CxE1hG6Ji2hytQTp7mRT+ZMAAABnA01TQivFhv+/otbpww1a2V1UYJHbdgfPAAAACAAAAAEwRQIhAII05G3iXK/5lSOzA3A/VbXZw77MyqL6IiV6+kYxf45kAiBBv/q3EP+WXDe8G3466i4P0Xx1mFm1Xm4l7ocFFKmPcwAAAGcDTUlNmdipxFsuyohkNzom0UWePf8eF/MAAAASAAAAATBFAiEApUTtCuAsajt0uLtzK7CelCh6IG4nqGRwUkUEfI+PzGgCIC8NJJaJA4I3ebqJXpF6tHZ+l+jQ5LFmiCETPjH2grHmAAAAZwRNQ1JU3hbOYIBKiB6fjE67OCRkbt7NR40AAAAJAAAAATBEAiAGQBJYZkXcJCF+armtJIJ6cHRazFipiXdni2WfutOA7gIgFz9XIEDk1zvVfzkPsgITs5HuGX948Ct4NAQ8HA/SLh0AAABmA01HQ6brVBAvIAlWeYgttMhOcuZat4KkAAAACAAAAAEwRAIgZgzMtL7C5bq1ZYVio8eIgbhqvFCib2qU+d9czS5WzusCIHbkYlB3kHKZaBfCE55rFoge2hWD2mwmgvN9b7poyRqMAAAAZwRNQUhBdFQHyG3424kwEZEtOrKOaLYuSbAAAAASAAAAATBEAiBidA7jkTsHxUgtWCE+uMafpaFzyI4zPCi/cBC5jYaBRwIgapKKIPbNtZ0hS1iRNXFvAVxWQ1O5/2RfxS9bcGaxI24AAABpBU1BSEFftNkwJ5VSOXu6LuRzIp+J7CRbw2UAAAASAAAAATBFAiEAgUtkz24hjYY5zyfLgylAbwLk2tIAJ37mw+l6k1kQ1VoCIBp5Hl6nFk6Awk5XYy9plr+X/YBFnc+vITmReM9MH6jdAAAAaQUkTUFJREr2mLR50AmCKdxxVlXGZ862zYQzAAAAEgAAAAEwRQIhAIQHlU/tZ7u6iJd61LIECOrxbS1X23OwoKDkF7zJCL+AAiA2gytcjwJucaYCboAle5ER6HMiDtoeXV2NviHttOIwcQAAAGgFZU1BSUQynG5Fn/p0dXGIOBReXoWALbKjAwAAABIAAAABMEQCICDsrFKjAAk+ujFJCJWi28vvtsDcNxAa1tGz9tgoxZg+AiBpMD8QVr1iyHL0Vv8dVZw6JhGZqlj/cGl8EQZP90CbwwAAAGYDTU5Dnw8b4IWRq32ZD6+RCzjtXWDk1b8AAAASAAAAATBEAiAbOya1Lj2BA0Z03ddgNDYAgbJ9nzQ7W4BJbQa1WleWdwIgAmkpS2bnlVmsphehlTGDX9dUPW3A32GDksPq5gMDxywAAABnBE1GVF/fLHI4GYrYs4lmZXTy2LxBGkt0KAAAABIAAAABMEQCIBVx5uqK3ftMgQZwzxVXlr7ti2TH3E76vqjWH/nMgR9wAiB8efNmjD2n/9X92TGLnrPYtX0TTbvyWpU02+AVZ6VoDQAAAGgETUZUVQXUEs4Y8kBAuz+kXPLGnlBlhtjoAAAAEgAAAAEwRQIhALrpgUAB9wjOW3Ub/8YQVu7dB3tOOvi3zFKmOu3mrA5uAiAWXpbNOrx4s1bltSFHEx1B4999fL6Ne2YxvKSHcDAk4gAAAGYDTUlU4jzRYHYfY/w6HPeKoDS2zfl9PgwAAAASAAAAATBEAiBp/HwgAZO+8ZohAHom+i1RlfUQbM3hgyph4htan5UcGAIgA4o0PkcqoLPj9+fgVoQPxOYLfyaWE7uHO55orCm741wAAABmA01LUp+PcqqTBMi1k9VV8S72WJzDpXmiAAAAEgAAAAEwRAIgC8pGcVYDVTSk+orq//lns4Rfw8wR9u6kRtKDED2NI/YCIG6y5qkN1nsLxFqGYO9QHFYJUsZxwy9zlKwjp0GRrE8xAAAAagdPTERfTUtSxm6oAnF7+5gzQAJk3RLCvOqjSm0AAAASAAAAATBEAiAxZPCNNI66q5NJQ2MjAiM+1NnkKnulXrwbyqxCQZ7fUwIgEOIQf48Lzw0JrT2iuOWCoPQo+fPEX7f1Wf1R/uagsbUAAABmA01LU8/yDOIucezy6onIbsvUo89RN2jHAAAABgAAAAEwRAIgeldzEHTP4kUeEaFhmkttKi+ueHLMXT718MrFny2+iggCIFfHnIc8Bpsg0NGuXt/4Zn/ikRPGo9mfB8i4DsVzDzGHAAAAZwNNQU7iW87F04Ac46eUB5v5St8bjM2ALQAAABIAAAABMEUCIQC0mY4kU428g/uR7AIbKURA28tsCQNHT8wMEjOBHfBDgAIgfuDzAcF+GqzJ+wQyuilZGAChuCVyzlq8Wqy6yf+8HKoAAABnBE1BTkE1qbRA2kQQ3WPfjFRnK3KJcFYDKAAAABIAAAABMEQCIAvv1hFJUoEoUr8ONHXCoZzbPQpaMKaGiSnycrlgt6cdAiB0irWmwxkx5zo964muZpKuZ5wdEx2CcjYnAszg+eEzzwAAAGcDTURYlHrrAjBDkfj75bJdfZjWSbV7F4gAAAASAAAAATBFAiEA4Zn/DPSJLSQw6odGkpeqBNdVbQDTWo1D0Z36Psts0zwCIB5zjAZoKNE06Dgjt+zE7GCdnRnRrpgb+pPIRqHpomE7AAAAaARNQU5Exafr7c6CDwamECiTcMJDBZboH6gAAAASAAAAATBFAiEAwOk9Lv2INGqKIb8W/o6MrF6PWf9nMRJAWuQkjIaOwkgCIAkehWiUnXdQ3IqQW+s+qvpLICHvGNO6muQSIp6XcKJlAAAAaQVNYW5kaVqkhea3lLz1+DS/XH/0O5uDMidkAAAACAAAAAEwRQIhAOm2yBqoz+WRoNtDqyicq6vq6n8OeWT2DE0/+1sB3XF4AiBX8OOi5wAzjzz3NLIANnVbJtlk4qMu8aIjZ5NAjWxEAAAAAGkGTUFORE9YM9ID+gO7MLEz3g/i1lM8JouihrYAAAAJAAAAATBEAiBExvZfhSQmjxWITALtPpu0qhTLM0+QMD/FtC8xzIUrEAIgXgr0qbJRTjZX8CyvW+iLGEatUnsOa8AC4XlJFLeGNCcAAABrB01BTkRPWF+vvwMYGDOrTo3sJNcIoqJMK6qkpAAAAAkAAAABMEUCIQDxUH5PYCT0T+5106f9G0Aa/4/Dx2JWC/AH7QFKzPXskwIgIbjGzVtQGj5PtFi3gJ7yKVoiJVDMQmE5ktRhgg0kC1oAAABmA01HUIqEX8M5zrAippUoFVSJBCmjTfEgAAAAEgAAAAEwRAIgWIPkxfC+L+klDcxAXU0lSxINNsJGVdNFbSndvDL5nk4CIDC+1PRX6n13Uocb4sf73b+Gb/aosNwhR+BZtwSEujaqAAAAZwRGT0xE0ISUTTwFzRFcCdByufRLo+DkWSEAAAASAAAAATBEAiAXfE/lq7dWHdkyEiKHOUfUC4Dc8K/zNPin2h2eHxXGwQIgAmJzQyXoc9UkU/i90Un9k7zvPCj7hQdjBdHun6OIzl0AAABmAk9NNZPRJaT3hJobBZ5k9FF6ht1gyV0AAAASAAAAATBFAiEAyPkdNN49LlV1X/cFaqpD5lRi/duux8F/v3guuwdwNEMCIAMXm1iNXaIh0GTkm+IGxOHGN9XXxS+bufEACYmY0F1iAAAAZwRNQU5Zq3qvnkhaO8iFmFGEq+n8arpye9YAAAASAAAAATBEAiAYNoBd/PylTTA3ET3erzOHKl0uYPiERkFECZ3E3pFZJwIgCSznlfDTEMveD0oBNYYzS4jFLq/gCt7iWYkn2+fZ4M4AAABmA01BUJ6XbyEdrqDWUpEquZsNwhp/1yjkAAAAEgAAAAEwRAIgJg1Z4vtUn9nG9hIwTc5miearuXB0teDOYZLQUYay0dICIFIfnOVKDJu+O7Jhc8zRrP7FPB3BFUrfqBnzstjSeulDAAAAZwNNUEwzNJsoIGWwKE11bwV3+znBWPk15gAAABIAAAABMEUCIQD+/6jrObAPfQ/ppKP6e4/xOeQ/lWNz8OVEEisKytqrWwIgFQQqDRrncSjOBIDKpcwtp0bM6vwxX36qu30LqOdleq8AAABnBE1BUFMrkVtQXAF6uxVHqlqzVfvmmGXMbQAAAAYAAAABMEQCIE3hhSfPibnsUaaBK9JJPMnGk7Co7wdYUgLOvHqN9JlYAiByIWBZyk9QXVVnIX3q36LqfVWxbsM6lNMP4fpHVSFAvwAAAGYDTUFSqQgL98jlXyr1xmAyQ9WGX08yhxUAAAASAAAAATBEAiBn6/AMGWPzt16cOo143Hj9gENogXjYcr66sac21+kPjAIgSYavtrXVa/Zk9VlPdj4bZ1W6SADWy9AA38FO9rQCUp8AAABoBE1BUkFWkKims6K7OUtwn7Z4phv8Np8sTgAAAAAAAAABMEUCIQDt16Yaid3tUHKXe6ftYd2/08R9fEXp9LlPQNA2FYFzcwIgSQDNMH9mcwjcyDsC4AC+VclDGg3tJWGzSfTd5vhP0R8AAABmA01CQ4iIiJIT3U2oI+vdHiNbCVkGM8FQAAAAEgAAAAEwRAIgOoI+FfPzMMaWGVrKcF4Q8ZRTBCbSS8jjEDRI7i6Er40CIGSw8WsPo7BMTP/msNHYADYG0VXhtJlm0y6BpKUSvw8eAAAAZwNNUkyCElr+AYGd/xU10NYnbVcEUpG2wAAAABIAAAABMEUCIQCoXmvsq/9HjEJxCjnvvrEv3YskPmBSFdb9xagO+ybkiQIgfHHGzbHI2xyjIFeAOED1lHlqq7abLknXJTNUhcc1zGkAAABmA01GSapOPtsRr6k8QdtZhCsp3mS3LjVbAAAAEgAAAAEwRAIgX9cUPNcx1d+ra9aXUno5Iy3mtsCpZHXADZ2ue/8plKkCIB75BlHPok3i8k9lR5FEkS6AOAVxPzOGGvUch5FtxL/4AAAAZwNNR1gUEvaqWtx3xiBxW7KgIKppC4X2igAAABIAAAABMEUCIQCAd+Qxmb2bVBtipoZ8UMsCf3Z75SL5YsfuTCjF9z9w3QIgPGFDGf6n36HhnFrbeQWy4cj+crD/F2IyfFQGUAQmUSAAAABnA01SS/RTtbnU4LXGL/sla7I3jMK8joqJAAAACAAAAAEwRQIhAM34VJvJnislWhHW2q4s0KEgDngN7Qz8egoJBaihcM9+AiAHI9TDRhcqxxwIUKdH5ucjKwl5itF0q1dwQit28jcOHwAAAGcETUtDWfMoHFOXFqCMdU7EyPK0zuD6tku5AAAAEgAAAAEwRAIgVEXqrBgyBzA9sLmoL+zTkq9Rzvw7jxgcdgAk0bJM3YkCIG6TiDb7tIFyXgaflTeApUI/Er1swXf9Goa+6QPqiKjjAAAAZwRNVE9O46h6k0PSYvXxEoAFiugHtFqjRmkAAAASAAAAATBEAiAnpliMw7MGu7L+bBz0B11cIN21v9rkq5FyZShShQo8EQIgWfiMwb5U+nh9LYpmY8sAum5zwggdKdX7bzy7BrRMXb4AAABoBFBPTkRXuUYAiRO4Lk34X1Acuu2RDljSbAAAABIAAAABMEUCIQCBcyKzAVpoT1LiEFdT+NtyJwmMxZf06/xEoJAkCpMSggIgMCirYVMFTlV69X/ZWZaM8f2RuK1CwouDwCBNo2+yTdAAAABpBU1BUlM0Fs2kAo6ehyo4rLkDF2cZKZvq7YcAAAASAAAAATBFAiEAi3klJYFKwM7OgQVo1CuU2gGT/gwwbRv6DUW/hII3550CIBGXdPIjTLloRrYCUhz08Tc7sqtihLhUVzb3SgQFytOCAAAAZwRNQVJT7djaXCDrAU5VAAjfMwQhPd5eKfAAAAAIAAAAATBEAiAsvpWYuT4Z4F1xUIUjALpd74J2F+q0ghyYUYtr/x0hPQIgEwQZuuEvdQyDbiMdc0RX573xJU6WZDq2ZaxPJ4N4GRwAAABmA01SU5r1ogqsjYMjC6aFQrop0TLVDL4IAAAAEgAAAAEwRAIgIODFREGySukp8UiLfWPsZlMh0wwMZpKaykMCvC5YnHoCIBZNA3oJVzBw1XygnHK7ibmhKYLhoNBr0CCXDis2eT5xAAAAZwRNTEdDRTRJIDSizT6rNMjzV80TnJWwn1IAAAAAAAAAATBEAiALU9kUdCzVGEUP+i3deu9LXn9M4zIdu4lchrySDYYlYwIgCu49esFg3aNPRD9e4rl6irT7hxu2UNXZwDxotE7T8egAAABmA01SSQkT3a4kKDn4mVwDdUk/mho73cl3AAAAEgAAAAEwRAIgRG+p9Omse9TMiHTPK8AxF2LLioEdxMaA97uZBbSGt8ACIGtsJXF7Shk48q9yVArzdDLvIYYfF+ovfXHFL+Zbh0NDAAAAaARNYXJzZsDd7YQzyeqGyM+RI3sU4QtNcLcAAAASAAAAATBFAiEA0k6KZmUKQ2N2hcyZgh4YVuH1hwCkUe+M25mq8syptYkCIE314gfcwOB8rYEx1YHdICG5y6B32/2YENZGnleSvV0/AAAAaARNQVJU/cwHq2BmDeUzta0m4UV7VlqdWb0AAAASAAAAATBFAiEAhnvm83ue7l3qSPGQQ/Da00EN9JhTOxDqlLXNvfYQbWcCIDnhM3wt3dVGQrO9yQPRjYR84NjSrm2T+Lq1hh7Pz9TbAAAAZwNNU0nEx18qDLGprMM5KVEtyXM+of1v3gAAABIAAAABMEUCIQCGglOEWYByp5m0CC4Tod62i+SIjxNfPbdXfitd+6SADgIgZ/m5THa7eNZaJEMNchu5c/oDFp0BcB+Pon5kGwc12FkAAABoBE1BUlgrEAviMvkN0z07bkua1w0eisDiCAAAABIAAAABMEUCIQDiGNkiME4uQfR9x01VXZ8g4XJc7nR4Z6jbZTDsl3qsowIgU9Jx4CyEt6/ubq4CwXprCKmSyyd1mbX4DG/d3yQPDAsAAABnBE1BU0sP5inR6E4XH4/wwd7SzCIhyqSKPwAAABIAAAABMEQCIBXXgHwIoIfbVtNqwjc7TRyWUbCwUL6zokuSkTl0UHeQAiAMQF/KWC3ZQq/70T7vkLsmj2xBgQh0hjzqJ6J9+hS+TAAAAGcETUFTS2mvgec6c7QK3089QiPNmx7OYjB0AAAAEgAAAAEwRAIgCHVrN9PqwihGcFempLBXDwFxJtYKomsgK64m52UOoCECIGC8ogofwiQapc1qF9WDS8SpzLt6kbkzqMWLtMM1Wyt4AAAAZgNNU0v91zmeIpGLpyNPVWjMLvkiSJ97pgAAABIAAAABMEQCIDNSojvrDLu+z33fvQiTidPWbacIZISmnUjqQypPqznsAiA8J973AXYL5SvHuMlQKamY7LO5HOpJFWSWsxBlpp/QRwAAAGcETUFTUQbzwyPwI4xyvzUBEHHytbf0OgVMAAAAEgAAAAEwRAIgUmTvU+vICoaUrLNMQvJS9KM00+Z4GFSJ7Vzoi7oK19cCICjvqpGRCURHGjgppxuXGxcr3IID+/40ranI9T4kABy8AAAAZgNNVkyoSequmU+4avpzOC6b2IwraxjccQAAABIAAAABMEQCIHCTkEzGce333jP4u+UG2yldCo7C68L2d26eCqT9YlOPAiAsMn2yQCfa+pDHk0mefJF6VtZ71alf5FrHFFzbFwZdAQAAAGgETVVTRKUjg7ZluR3OQt1LbR4Ps30+/+SJAAAAEgAAAAEwRQIhAMOiK3csXQKUEVKm66/iEalH7TLbqQbyL6MwTIB1QP7qAiAryVV3qpfR5o6K4D5EoGZL5peA+zuAOvhFvbUkpDomuwAAAGcETUFTSKDUQMbaN4ktwG7nkwsu7eBjT9aBAAAACAAAAAEwRAIgPY4rhu3VtzDCVEWyOI/Mrxidc8luQqKxJaP3p/iZ9+cCIFaY0cyolP7IDx98gEzVqhkF4sxkuQJ55M7pgrtfKAhGAAAAaARNQVRICNlnuwE08tB/fPtuJGaAxTkn3TAAAAASAAAAATBFAiEA/AHyZ/MYCkYALuFqF818OKEyxR98AhKRv19Jr6rsUscCIC+2tIoxY071U1w0Y/64xHX42dDRTm8I6jvp6223wvRxAAAAaAVNQVRJQ30a+ntxj7iT2zCjq8DPxgiqz+uwAAAAEgAAAAEwRAIgANj6e25Amg3FVyO6l1F559EYHR/Hj8y+zk5aJkgUNmoCIDkn2EpxDIiS0C9zhq0gFHx1+6S91IawJW7NAFdwp8pbAAAAbQlNQVRJQ0JFQVK+iTtMIU2//BfvHjOPvbcGH/CSNwAAABIAAAABMEUCIQCC4ds1m/u2QoqzXkmrQx6PNnnb1hwsU276F9QBG5nH0wIgJMYW083BFeOmxMrFtEohQ/VyvnCcHVcjy0J6H3EGvmoAAABtCU1BVElDQlVMTH4DUhudqJHKP3moco4urrJIhsX5AAAAEgAAAAEwRQIhAKHfjXWybAc2LKts0/zi5et0TI31ejL+lJSi8+PLoNkMAiAgevCbksMSSRRuU/pj8Bgaul3xone2DOWuVHFjH7j+ZwAAAGcDTUFDw+LeC2Yc9Y9mvejolpBTmd7VivUAAAAAAAAAATBFAiEAqhkJ6Kvmtc8hPzFtyP7heyQIKpP9+Ma7kraRVwe2CjsCIGc5ZBwd93Q9vErh+vtpcRn/Awq1b6wteVFGnFBxTuEwAAAAZwNNQVjnl2xO/GDZ9MIAzBvO8aHjsCxz5wAAABIAAAABMEUCIQC1rpEdL3ZB/WGh5LDAPolBXsAm94/6zEdT/ev+HeKeOQIgd9/oaa7Xe55ZBBB/5m0t41nZLT+/huIwLaw5qMhd5AoAAABoBE1BWEkNhuufQ8V/b/O8niPY+dglA/DoSwAAAAgAAAABMEUCIQCOFPW4zq2pZqEZfaW6y89721IgCscYZ7QNWs7mDMjtVAIgC2rGQVGb/6ubHRL45moc5azbmbJiudbkRv3MRlC7dxoAAABnBERFQ0lrMgImkyEM0s/EZrmsAIXej8NOpgAAAAgAAAABMEQCIHvFCaBza0qQ8L0+zQnjZ0MCEX/Frj1IZ8XFlOGlaP11AiAR7Gj/NRY0g37SXX4xx0GVDF402y9oKUJP6Gvvr0cPpgAAAGcETVhYUprwlsDEbkE/5GiJJVAX5vH4vBjiAAAAEgAAAAEwRAIgThWbsIEUNGu4aJicgHun2F0YIqwZxJgy7kUwiKfJtLkCIFwL7wFsfeZ3WbP2kdFqKkoKWKkq4Qp2dOw6Ylzsv1K3AAAAaARNQVlBFEaP9rMk8cWoaeYrnEQoRufQuvEAAAASAAAAATBFAiEAn6RGuQrOD9sENGGsHJa/4o1o0HvGNiIJN9mKczaG9dgCIGfM+1zX6zKloYA2EVh8UqK078txhidQzzqQiIhzgTOTAAAAaQZNQkNBU0jvuz8QWP2ODJ1yBPUy4X11cq/8PgAAABIAAAABMEQCIDI0BSeVUfJ6CqQ2+IXhMNPYTiNx4KDzbFkVhJGl+QH2AiBlsmTEcU9H2rC08dOQVupMeNFn6cY2TezYhojAc28vPQAAAGgETUNBUJPmghB9Hp3vsLXucBxxcHpLLka8AAAACAAAAAEwRQIhAPtZmli/ka6QPOuCureqEZp+MwU5b8gyU368iSCR1kjtAiBu1bM9upRlJcDZk04fQyMQJbFtE0foKvXGmwi6+F2MxAAAAGYDTUNCTjUs8WTmSty60xjDoeIi6eukzkIAAAASAAAAATBEAiAeJbyiEHSjwB26DcWIpESTvdVvv7tWASIp5BrmwvozQgIgJBvi5bb9DV9A46UlE9UMkJ87CCa5YfiRocs8F+B92RgAAABmA01DRuM65OeVEUJ5chBHSE5a1cx98k/LAAAACgAAAAEwRAIgStjGsORvELOSvX/83Lgxs5GjbYt4sfiChyxplBdJbbECIHPI4AcxAiKvbXPwLKlKlLjS4dlo5/L4wU4yAgMV/1WZAAAAaARNQ0hD1p8wZUnp2W8YOxrsowuPQ1PC7MMAAAASAAAAATBFAiEAtPqmy+qwRXKVcIEQOknW0YxalI6iJ8wW7nEx9M0+Bp0CIGJ8e18MAq5b51hAHiyzkortYjdsE9Y7zJwiom3C5I1zAAAAZgNNQ0k7WMUsA8pethnroXEJHIbDTWA+XwAAAAkAAAABMEQCIC5xJrjLRPO9gDg4CKak4JLj/hoCuKiSb1HR2KVoHJAHAiAoiEK92ADEgdtaV9zfRP9HHY53Oc1ay/mvdIj77N1KrQAAAGYDTUNO2R6aD+98D6Tr2vTQrPVYiJSaKpsAAAASAAAAATBEAiBRFd/JC4nqrx5XHVTi+EGCW3f7kDs3F8bU4d/KIoKT1gIgUPJR4LvD0wX5yD4HzOMZuByV2CUNAvgAbskJZb5mWRYAAABnA01EQVHbWtNcZxqHIH2I/BHVk6wMhBW9AAAAEgAAAAEwRQIhAPh2QAgpVB7qsw5lKyC9JAbPHwjjdLlDEgcOzu8IxL3KAiBK/EtLjFMAndWqhwmSF2SJtrEnXSggmf8y3Krpx6rxjgAAAGgFTUQ5OTlC0l37pYaMNechNO+IbghITDE9SAAAABIAAAABMEQCIBroY2Ri01v5hdae1jj61fdSjEG0zyEgpT/TBkW3aEoeAiBwcY7aIRZ1cvOfyKDAwqH8YfjEmComqcGKgkQbkxT6EgAAAGgFTURDVFK+KQffrMASG7oHcLxtQiP559cOYQAAABIAAAABMEQCICXoDz62k01sZYJpInESq/0LeeaZxcpNDIAJXL48JZh0AiAScWTiT3Eg3kPrXFWQM9V8Sa36vhYwjaKs7vtckfn43wAAAGcDTURUgU4JCLEqmf7PW8EBu10Li1zffSYAAAASAAAAATBFAiEApviUsbaoLt+kmcap1b9g4FAxb84iKEj7EPAyoOO+KRMCIB8RD9cSrxNb29I1tkl5WtgAKR+vUZDeTT/oRNn2jNxxAAAAaARNRURJJLINp6L6DR1a/NaT4civ/yBQfv0AAAAJAAAAATBFAiEAhbblr8d4RG0yChxPt7+BY4YTVES1wVlnrIV6Kl44TrQCIEePZNNBeRlS3651OHH3xEMaK5yXwSZJXyWboS7TghgDAAAAZgNNTFSVBtN/cOtMPXnDmNMmyHGrvxBSHQAAABIAAAABMEQCICzuqA9LEFkfvvhycTBj5ogU+8C92qU33Wc+6NOScaQ2AiB5znVJbmzF9JQYt53VClYAnf/UVXZgqWba4z/0x+5E6AAAAGcDTU5UqYd7HgXQNYmRMdvR5AOCUWbQn5IAAAASAAAAATBFAiEAgxTSETYnwDxK8FKzsbXpzHQ9xUON7T84t1xgNicL6mYCIBpIDcgSH2T8C6dTqbBA/KHy0/sBLnzNPjVqc8umiRDxAAAAagdNRURJQklUc3+gNyyNABkErmrK8FUtQBX5yUcAAAASAAAAATBEAiA5nyT/7+L8OwR/cU/8po/mE5ExK9JlkA2OKfitkMNeFAIgGQiBc0twf4RFUD0dTFimJw2cd6hOIIf17bd0muQw5LsAAABoBE1DQU5yummfDzwp0PiGwmTsc1BTOjKz1QAAAAgAAAABMEUCIQDXMD2ujom9qn0bWsmiHg+JbteQc27OV2hP8R+OgFk1twIgboRJopNlCE0BQcDeBZGtFVHLZ8AuWnlETsIvZ6juxzAAAABmA01UQ5BeM3xshkUmPTUhIFqje/TQNOdFAAAAEgAAAAEwRAIgMPeUdAgPUrE46WTTWpj5EjQsSGfLXyx7BPONdQU6vaUCIB2eVCf3jAcvb8j7wTjLXa7L5uyvW/lM/X3f95P/nytgAAAAaAVNVkVEQcvnFC9cFnVdhoO6Mp76Gr97VEgtAAAACAAAAAEwRAIgX6rf3jXgbyNCNQxXJUhqr1hSK263cP0iwzHkr51ip9MCIBH9WN603ssxlzC8RGLUYAq8ClpqfOAG4vfqYkg3M1F3AAAAaARNS0VZ4VTVSJDDVjTKUl1UPtWMdBr3z3oAAAASAAAAATBFAiEAq0qkjR9z/kvPDgIhhKWSJpYMGe1n3lAqwpbBUBazRa0CIEmLg3f0RuOW44OJhm4iwd+oNr1I2qn6KEZCgHNa77VVAAAAZgNNRFNmGGAIwQUGJ/l51GTquyWIYFY9vgAAABIAAAABMEQCIBEAfmZ6O+AlknyxK8OkHyo3Uc1bd32Auu82/pa7mdT1AiBFsw10/6KrVBIvEdjHmUr69ruCmVMV9QkxYatAPC7dFAAAAGYDVEVM7DKpclxZhV2EG6fY2cmchP91RogAAAASAAAAATBEAiASnJ3S6gOn9TGUDlH5IN/DkAiNmF83pueHpTmFTeHjvQIgPznlcoim4ouEk2vV/oaZezuXgMkWLK4bNdaDswkfBSkAAABmA01ETdJN/2EXk2tv+XEIzybB3YhldD2HAAAAEgAAAAEwRAIgAi5pmdPD4C9cVEPLnlOijTIqHpKzrdyaEXzWvBsfPR8CIDWFHoOwoEAAJEUJjKqU4P6PT2zcxQl8V1XR55T4MBebAAAAZwRNRFpBDs3Xg9x7+CBhQES1GGLtKXFNK6UAAAASAAAAATBEAiAp3a1gsV5v+QzE9IFe5kCpDwZ67C30g/ZXKFInqIu4mQIgKDzE1IvURFEorjLdclSMtYYu6Tz43PrhTMTTE3cWdtUAAABmA01UTkHb7MHNxVF8b3b2pug2rb7idU3jAAAAEgAAAAEwRAIgbGWPZ/FkWw/2xpVrLEm1kUoXJ2lxf+ZlBUbkePLzdM4CID2PkbtgKXnl373EEy3JOup0ae8hNJJw4T8M1qPg1noKAAAAZwRNRURY/R6AUI8kPmTOI06oil/Sgnxx1LcAAAAIAAAAATBEAiB3HBjKdtKVk+KKuMokYUEZ/+TvyBKch0FevGPLgWVNJwIgdzbR4y9YJWJoypijxFuXlg0P7SFMq/0tZQhY7SzID58AAABmA01FReG1g9xm4KJP2a8txmX29eSJeOEGAAAAEgAAAAEwRAIgQWHpAUA/Ppp4u18DICY3a6KCgKilxeMtH+RXF0ulpA0CIBXX3xV1d/6DwjzBHP9ZAZoLMg/y6noMxRXJETBPxWFWAAAAaARNRUVCZBkn6XAiKxCy6M28lrG09CcxbxYAAAASAAAAATBFAiEAz1eUlY5S0dOlQhajcHz47L+hrnONtrZqUxmIQJjYmUsCIDylm0twVe7EDF+3Ej5oEDGYHa7WLfVJByFNlbNXKD8zAAAAbAlNZWViaXRzMjBhvm+scZ+HGiTZvc35e2yUdyx+KAAAABIAAAABMEQCIGZ0jS2hrJozBmNrTjlJSJCRn/TbCbtN+vqyuiokcq1ZAiBCpR8+pHqxR8qAdsLmj9Cf4Mz+pUAoOyXopiqg31fv+gAAAGcDTVBUR0gcG0TyocATXEWqQCzk9N3k0w4AAAASAAAAATBFAiEAjv9hZHTolvmo+k5FUCbNy4MWIUtNNgMwdgxY21B5XhMCIAjwjb6HgU6bB3AcfK4ANp2meI8+e2/p5pjaPqBAOeuiAAAAaQVtQk9OS6z+RcNSyQKuOj+ba/5uyZTF15G/AAAAEgAAAAEwRQIhANr2rsIBK41LS8nCsZ5HyPZqEviQGs/Bnze5CN0rGbtCAiB+SMQYM9L8oJG8HIr0O1FpEY/74/73/rc7SoGkCqMXGgAAAGcETUVHQTIYoC+Pi1w4lM4w6yVfELy6E+ZUAAAAEgAAAAEwRAIgfh/z3FJSmp/DmgyYsXSq+jpqbc08HqYhOJ98J8k936UCIFuMiDmMWpQSIySFPT8iWbnb7gdou6R64i9EQ/mwFN85AAAAZwNNRUztCIn34cfHJnQHIivid+Hx701IkgAAABIAAAABMEUCIQCIketjhFmAxuKxw9r1JZHU5c8YslpDhlEtuZ0DfOVOswIgJIGH/3iI4RNYrlgJp2nuzNVEY2/FWn67kUR8/KdbOLUAAABoBE1PUkG2TNT1YEP42AaRQz45XQixvr2t8AAAABIAAAABMEUCIQD3z/pQtDuFilm3aLSn3ZkxlAuL6AZBravlrTRUUoC8lQIgCAnKqzm5mpUKIq4Ze5Aozu6ad8ZkSz8dRlDGMZ/jwKgAAABnA01MTuxnAFxOSY7H9V4JK9HTXLxHyRiSAAAAEgAAAAEwRQIhAIgoy3Uzd8hJ1W0zS4sEgBHxj0YNnNN8pW9U7N79dgMyAiBRPR3oEE/YBcDZHQQMND7ZpIiG8c6pXvDio3ePbmtNrgAAAGYDTUxOvrnvUUo3m5l+B5j9zJAe5HS22aEAAAASAAAAATBEAiAbh4zbFqQGrXTaARfHgeAx0X5Ml4KF3chEZbuWpkm7FgIgS+L3sMq0gyP3pURClJivd6QUQVVAGUeBunuUqhN9RoIAAABnA01CTk7up7SLnDrI9wqckyqLHopctiTHAAAAEgAAAAEwRQIhAKoMMAzWoOcwHhiNJhEIvlePT3Xc+lp2jVcqPZ/boSsoAiAegbvmSzaSDcuwaJRFJ9THMKIHo8f7irDkplbN40pPKQAAAGgETUVNRdVSXTl4mOVQIHXqXoMNiRT28K/+AAAACAAAAAEwRQIhAOr6yH04BrrSjK5EpoOIZJSzQ/j3+jJyiRNUr8srj+H4AiAhHlI3bZoyKxAmVUFbWjlYgss4JT0Pgqf1DowgVL5NbQAAAGcDTUNIpOdBT8uhrxUgMDDG2qxjDfjxauoAAAASAAAAATBFAiEAzSXXWsQniUQI+xqL6ZJGs4oRQpENKpg8fGUBqnFWsocCIF2raKR8Q9zjThP18uTnuEDWjbAD3ASDUMAFeDVndHDvAAAAagZNR0FNRVMxH4CfFMww7FBXDFndxwjA1puGNAAAABIAAAABMEUCIQDEc5hy9o6r+NPjarZ+8ztWAuFgVPlALeo+fZa1ESpcsAIgRbBCPpDGF/KLnc2u2seeFydc/THS66h7guqsbHXywdgAAABpBk1FTUUyMGCs1Y0AsrzJqJJP2qVKL3wHk7OyAAAAEgAAAAEwRAIgeFnLRm+wEyPeipiJ/GbAzE4f+jXtpUirsOqxye4L998CIAa1R5rlMWTSyrkc9DrOfxZxRVWTcPxVi07fs583uyoUAAAAZgNNRU1C271a43P+ovwyD2LUTAWFIrs3WAAAABIAAAABMEQCIGtjsQt5xbiqjy34DZBVPQPpCrFWqiihq20ZmKuFe/ZiAiAoiWK2ghoEz7/R16y4JW61eL/CzTlxrYk8TYBt9jrydgAAAGgFTUZVTkTdrd1Pc6vDplUt5Dq6Ml9QYjL6igAAAAkAAAABMEQCIG8jI2tvZASpR4sRNIal74t4k5o6VXkox51T9IioZaU+AiA6nTNmUGUMIf0WyNqBqI86qbgrgQNcL7/ihhRgSmEe+QAAAGYDT05FTYB1Ca7OJMD6WhArajsFnsbhQ5IAAAASAAAAATBEAiBojpBzVGwAJ67/SRE6VmZ99ePAKWZRYtoXp1h+gHbcTQIgFyPZPlrIfxaFxqLWMra+hSl2Vep+3XMnOWUjxrtTUx8AAABnBE1FT1dlD0Ttbx/g4UF8tLMRXVJJS02bbQAAABIAAAABMEQCIHezCQ+4U6HRR23CMGlNqwP8lmd1dshemE02/UYOx1iBAiAZPomKzbzjBktYc9V+p+19Qt3i4Rfl78OQIKT9L0zClgAAAGYDTVRP5ms6o2C7eEaMAL6+FjYwJp2zMk8AAAASAAAAATBEAiAArz45IQ3egmajNHCpWrm/I2YGIeZil6dbFzuMPbhWVAIgRD5IgSi6hLcVAh8rK1Gvo4MIlSUTgap6rrTUDsX7G2sAAABoBE1SQ0i+1KsAGf82HYPd63SIPayKcPXqHgAAABIAAAABMEUCIQCDY1rjXt+8IHfZVQfLU+qXQxIkCtNimz3xvBogmHFYFAIgdSVXA+Y9Orxzj9nDFkrqY+al6sWuGmhJsEEUxvZVNycAAABnA01WUEMqLFTeLd6UGjbS64xCTtZm90rvAAAAEgAAAAEwRQIhAI35l463qIQupoAv6k0+oEKZkB4LV5ygaRT2CKsVJUYKAiAsnYAWlKxbB6B/n+EE8jXsx9ZPqGfjbvf3Cobc0/sRlAAAAGcDTVZQinfkCTa7wn6A6aP1JjaMlnhpyG0AAAASAAAAATBFAiEArtxTu9D5EnFoNAcWIqbr80FsuIofPmUHFidp624peBMCIHbe8NeB+LSLoXTGevQQPpPFqNqPg+o4tbL0maOfT5jhAAAAZwNNUFQDLF6Bnb3gYlLYDuwkb025yQWhjgAAABIAAAABMEUCIQDex7tcV5E1s/4HpwwSjKwTpUWsyByPAxDjnUf0zyXVVAIgWAAl/qcv1YUFFvgKXVE7HsBj/LTdXr0utZ2zVUnVpxkAAABmA01QVAo9TBHkh9jH1awgRcCM5W/GBgNuAAAAEgAAAAEwRAIgE3FqbXUkRMU5cXmoW8SR94oaWh46ke0N6oaaSjur1SgCIBRHCoVX3ZDJlePtPbRW8Ne1Ra+SFjswdt/A+nsnZ3aiAAAAZgNNUFQPYnBNNPtnUkLmhpnHfbju2Lhp8wAAABIAAAABMEQCIFamT3WkjHR2PezFZ8lX8H84oKSMFBop4oVTCxY/TFn6AiAmU98lpUnYg/QWoUgBtIsXO3NpHNUZ2i0OWJklgxwHsgAAAGYDTVBUIoDQm1XHYPJxd2mvXMd03GPhMwsAAAASAAAAATBEAiBr6A+G4NT5g759M7dcyn6pFHWD3YZQsG6lx4tnDsXOVAIgRmTTeBsnDyhSJKjruLmPth/AlPcVfq6Oxh5qE/eR3hwAAABnA01QVDuoDuOwKi8YBKrXBauX7rW0ufB1AAAAEgAAAAEwRQIhAMqb3k393kfR8zoh1YhjAqa8k2AiiXW8l0/LUJhpuVVBAiBnHlZGDNVj3OnmKffE57S2C7eJq7zacqkV04GihtKEvwAAAGYDTVBUUuNMjYGXfZ3fRbP8TpdolF7pWvYAAAASAAAAATBEAiBFymIidLPj8TedUduW0tf62c99nJtF+Zqe77l2V0ahHAIgbBd/49jggnfXHU7KSoAX7ZgDi7nYt9WUQcRIs5P7QXkAAABnA01QVG1CmLFkj8eFCpaN+VLUHL3AGmqTAAAAEgAAAAEwRQIhAL7MQo/cNf2o1j1i4kYgRigfEUdd1CgmA5huHG3gWJJoAiB4BLYWpKxs6I0phvQx48e/5XHF19sw6TgWPOb2+vL2mgAAAGYDTVBUhTKi7NZLMAbXv7uS9oTuAisdTTUAAAASAAAAATBEAiATZ8XiQE8enDx02lGX3xSFv0nclrnqV8o+IBDFByIQzQIgbSGib29aSae+fDHBXhxGOGbzBFmkXn6cgCCmxcNJmCQAAABnA01QVNnM6Unu0KUmfTSaQjvt19RoVhg0AAAAEgAAAAEwRQIhAJVSH6/JJzw0dEAQ21BZRHTf4IFUoBN4xzWI1fymAmaJAiARpbl2wF/vgR3iDZQ5P0lXhUoLNVyVcg6zsdYLNTCQGgAAAGcDTVBUqQrappTPZcW22+gDf8rPO3OF8z4AAAASAAAAATBFAiEA3iNkCl4FglNT8QuZcjE4X5fZUvgdWNDeg1fmqRbvRhACIB2dpIjJPkIp+dfTGjg7fZ26Khbr0r56in/qX5VDuTcVAAAAZwNNUFTqFUG0EVX61mUQVukshBtl34XOGQAAABIAAAABMEUCIQC7tsvkL295AVJWHyW6y3YXtPtbISg9Laq12WJ3/onOKgIgcjOtkmClYlcUzUOWVIpfxfufRKVPzAxF5c/wGWBXk2sAAABmA01QVPTs6hKvrCQ7rBeULxyXZu9EON5GAAAAEgAAAAEwRAIgGcPtCe27sRnqMOR3/GS4K3hlzKurThinOWQtVV0k6tsCID8ezy5y4Ik6+FP81tOifHxXO036wOolLN/o0/pmLUDTAAAAZwNNUFQbk91Jkpwa7g+uGJ3CmtVHop92RAAAABIAAAABMEUCIQCWCci6THBNYo2PfI+Qo6/XY6Pz7eGUK+2Er4fgvZz/ZQIgSWriE2+9cGO4NsUEf7QJ52av3DoSe9MtjYFnpIj5LQ0AAABnA01QVGPjy4V5rkbmQO7nouN0HDOao8PjAAAAEgAAAAEwRQIhAObBwhYPOXTkb/b1yPBqMx6PPqEBCGcZv3ZJpKCcCQGzAiBhiXrtuea4GFdLGDP/ziCvRyPxtozuwF7M3bLz9P7yCAAAAGYDTVBUZJoxS0X+ILPmoPQvDAsWNrGE3OUAAAASAAAAATBEAiAYnWl7Ek0HnPN/ujSNcjyOznfh2TslhVfQnKN7Loum+AIgXefn4+h0F6XWuhlmKMsljIGLeQt81pB9CGUdPxI0PL4AAABnA01QVINxk/kstU5ACeUb6/TiSq45yX4FAAAAEgAAAAEwRQIhAOp72ItEDBOk6lhr1Der8xmv4aQrnmi8YB3xNcSH7sqqAiBMNQ7YhxDftTMvNKlvpCfV633M2hVXCZomDY/sBnOmrwAAAGcDTVBU1YjTC5BwJH4axypFv+a3I9D+0X4AAAASAAAAATBFAiEAitdHXU73fFeBBDlC/533VohFUD5pNJxDnTOW3AdYWkACIHefwK/THO4pnyg6c3l9/T+s3gvYgpg9erdzFZmD8CZyAAAAZwRMT0NLlRcsy+g0T+zXPQow9UEjZSmBvW8AAAASAAAAATBEAiBkTSSb6LiQcRzlK6URKyNlIfyqUJQxi1j3JI1jAqUBDQIgYjk1Cl0FhCbgQK6ixzLsq1opNIIbFMRuV6//SxCMAeoAAABpBk1FUklUQ5SdSOymexcmlinHGU9Lcn1O+eXWAAAAEgAAAAEwRAIgBbNHGP2P/puMWKMSx8dQ/1fN+nc0NKABmIU4wquruakCIFDG8w4Jz5Xp7zolYqo1QuljbmaAyfdpXaOHaGAmrmOaAAAAZgNNRVOPETXqT4lGlJRBcW1m5TkMWpkN8AAAAAgAAAABMEQCIHvQkSlG6v3huuq6V/PQvLVpGnNUmqf6kaDxFKQ+G2cgAiAAxMpEgprmF+ImhV/WOymi8b00HgD50lCILPfM6FsffwAAAGgEU0VGQScgEjJXlJHOmxFqxvN9NUzHI6LzAAAACAAAAAEwRQIhALqYNdrgkAZAXMztZ/FS7OS/AS4OpD4eAo8AYw8g8rArAiAtUwRpHLR5lM+8afhgrr2aBr/6QMsFZfBC5ySxgBd1xAAAAGcETUVTR0IBZ9h9NcOiSbMu9iJYcvvZq4XSAAAAEgAAAAEwRAIgXUUGSl9hr6hdBGOYdV/Rdvmozq61eVO/0UyxZfWd904CIF7OohObiTg0amssVgvn7sLAANrJ5QEhiDO0wol6im21AAAAZwRNRVNIAfKs8pFIYDMcHLGprOzadHXgavgAAAASAAAAATBEAiAcpRNGtl6eDZXjpmM2libRtYw4PKOwINnYd0AmPESvswIgG/MeS/TC4zrKb1XTlIJn+3B3Wcck/RN+6Y0luVqjsA4AAABnA004N4r1/twPJjhBwY8x2dvMl6R+GrRiAAAAEgAAAAEwRQIhAI3oCVkZRaOa67Gm1gLhBD6UX7qLza1s0orLE46ICMG9AiBVnY4p0T1kD365jd6t56xn8lD0Ub2zS9BJ7ChBBPl1wAAAAGYDTVRBo77U4cddAPpvTl5pIttyYbXprNIAAAASAAAAATBEAiBwzf7rHkaYVYL+XN25zjIHwwmpHtffoLrFhjfUr+eDNAIgO9blyrbwPSAPs/1qdjwrTabYVetUDSJ6JXgg9+wNMjoAAABoBE1FVEEvXD3VGeilAsSMn8EE7uZP3/BfAwAAABIAAAABMEUCIQDjlwxXaQhdt4h9/GyIfweC3I64Fwz3IilaxfRbi2Fq6wIgaX0LoxspvwcEYQ3/vO3xjzf9pJxHgfQrea7ES1dsxicAAABnBE1ldGGIB+adwEFVr2QXLNbwtHOPgGjQ1AAAABIAAAABMEQCIEBNlcaHDwU7OPXDFzJppLfclGfnAFNATGDQt8VMsMk/AiBJsz/XcPXKgFUmGS9HlHHgbwHNR7EufNi3NCPrgOD8ZQAAAGgETUVUQd4vd2bIvxTKZxkxKFNeXHRU+Dh8AAAAEgAAAAEwRQIhAI2ESr0Ql5uyDkG3W53w3fnvxxMK/cBdsRQWI2solpwGAiB9o7Lkat2RReLN5HcYmgI9t72qKn+MszKxXi3f8oy07wAAAGoGRkFCUklDjG+mbCGuP8Q1eQ5FGUap6oLm5SMAAAASAAAAATBFAiEA0tbEcd6BwVP7NYoB79kAdcvwcw8AuAjS71soshKfgJoCIAMnAVvosM+SgC30JMDDeLGOI01ZLUK394wHSp5v1QmuAAAAaQVST0JPVPtUUzQMA9ta3kdLJ+aLapxrKCPrAAAAEgAAAAEwRQIhAOUrUJJFGb5kgBlurCpuI4Np43Bnza+EioS5wsflUP6ZAiBbqzV7Mf4qgOVZ9jdaQBeeo1LqtoO/8xq5IRyUxPmFRQAAAGgETUVUT6eHdbunpULykeXvfxPGIE5wSpC6AAAAEgAAAAEwRQIhAJQ9xuACLLLB+sUBdd2eckxiOe5ZJ6VYC+UnwCyHOYw/AiAH64UuOgk8DCRp47kr/1MI6SXCkPSONTCb+ZbzyMMR2wAAAGgEQktCVGonNISD1ZFQrnbvTA82IqeLDKaYAAAAEgAAAAEwRQIhALqbHCV74GhJjUiyMSJLuYoaMNjI09oqw248udYFENpDAiAkRW7ZLoFUS3P+FPEEHp0gXqSGZWP170b+JZ9oZREFfwAAAGcDTVRM9DMIk2aJnYOp8mp3PVnsfs8wNV4AAAAIAAAAATBFAiEAgyjdWdvTJvgRQwDWZ4lODY9+LwK9cTcsUkHzOcbkgNECIEYouBcPhQuZ4zGyl1TdXVouMmrbEuY3vkF93+qUkWlNAAAAZwRNRVRN/vOIS2A8M++O1BgzRuCToXPJTaYAAAASAAAAATBEAiAccg2LBkUZ9C5Uq9XE6Un20ta8xt1bUgcq37lJkgznfQIgIsHzE+VmJeq5yKg66aTvZmGPlPzEyb4hX8MeKwpMR9wAAABnBE5PSUEi48OjvaOciXpIJXvIIudGbxcXKQAAABIAAAABMEQCIHjWh9ektzE9GOWOzgWjjZZaXUeFrHoP6S1/h3iiakNnAiBM4HehuA0fBFSSvGc8hEKbf87HghiXzDrBccXgih2SRAAAAGcETUVUUBCNJ/nEsqmMAlyUx2ynjGzmx6TrAAAAEgAAAAEwRAIgUlNocs1zA9mjCBRp/rX8wnWNbhZm+1r3LN+cqL1wSGgCIBIbujSOC/BnGOm9ZzF3fcMLii37a7vFkRIxaao9EDpcAAAAZgJNUqTLPvX0Gk2J1vztIuqKHFeVdimqAAAAEgAAAAEwRQIhALEnyUbM21HKpArf5gWujspKKNwGMMm9VZQMRFOOCoQuAiB7xm/2Vrcym/M+MMiKu2KAORbIEb6VZqMwUBYcOj0HogAAAGYDTVNUpWrBt5csOOJ37zusX5SqYLLsRn4AAAASAAAAATBEAiBAAvIKr2nVFM8YQRMxNDZIFJCgjFPl3+Xx1SpflNbq+wIgaukeBkNCKw1jYBeFToOiXhPTijZGdaIuDZJ72vtyOF4AAABmAk1WrniPgPJ1aoaqL0EMZR8q+DY5uVsAAAASAAAAATBFAiEAqPEcvBySVzQQpOpwMQ0p0xdArQ1ZsnP2dHLBiQdBAPkCIBE64Ll2KhBNM2RLi8Q3uSL8DwbGiGQe4PLHpiL4upEEAAAAZgNNVkly42Tyq9x4i36Ri8I4sh8QnNY01wAAABIAAAABMEQCIH8+0Fr9XmXPxiFO4DzuvKTB7wHNyAZWaQO95Z+tWqZaAiB+XoeHcdyuVgy2DfFIiXhpIf0qsSR/jCFRl/36uElG1QAAAGgEUExBWTPhigkqk/8hrQR0bH2hLjXTTcfEAAAAEgAAAAEwRQIhAP8b8NbbnBmhE5sYlfb2MgaGAM7LaiqRJeV85lMajom5AiBfmGY/EBKGJ6/H1bJqsOpRRJd61o4BqQI/kfEfRaCepgAAAGkFbXdCVEM1IchcMAC/9X6sBEiesFu9MZOlMQAAABIAAAABMEUCIQCoHi1Cf1lgmzPSD0Rd/X88W/u4TLhdr1m2oNlBiRTU4AIgGk1Slnzb9+NxdZjgtUtK4fH0ddBUXE+StfiNPSzG+ZwAAABmA01XR0USjLdDlREh+3DLVwwHhEknMneKAAAAEgAAAAEwRAIgRtiYiYmxJAYS0r+aLLQKYsU+YYRWZvZsR/1yRs2uE8ECIFQ7cTr6NvepODcOKa0QUQeYxa/MEqAlIqAN7haYN+RqAAAAaQZNZXRlb3J2W678tUGPqffd2ssczAe9DokOTgAAAAkAAAABMEQCIAW1fsWxTLnKdeqybUmSpHWxmURfXhNXTuhCEzpIoW9jAiBo6iCWSHoyZHa/IGwYBMga6LlSadKx0+BbqnMcVLYWNQAAAGgFZU1UUke9KUn2fc3FScbr6YaWRJ+nnZiKnwAAABIAAAABMEQCIFw63MMx5FxaWZ0aNi+TDQUM8R3AvNbUIntSe3Jcf58kAiBeQLkFOoV+QnlggTbwl3xz68ojSkUUZ/NjmDVofWBHfQAAAGgEVVNETddgrd+yTZwB/kv+p0dcXjY2aEBYAAAAAgAAAAEwRQIhAKZ/ivdgUKsMWuUWljXYt3kvWqKoNM2gCiEC6SwPFHqBAiAXNZPH/lniPZlFbmwumhmKncQKTH/M5KDEp8KC60qJ+AAAAGcETVRIRIS6Suz9451paGqEG6tDTDLReaFpAAAAEgAAAAEwRAIgE+g4GHqb5RIifhbk+TAa1cGCpSO1kveeGsVE0x1w6xACIDbqzV/LwUdKdARSmsfwBV2BsOrVkRCBUq80lcVY2jOCAAAAZwNNVFOpWYMzuZ0U2QvIHK2K+CxMcGJedQAAABIAAAABMEUCIQDN28ji7saL7MkayePXiZ0aSiuW+fA0pPCck5O8TSbK/QIgc9bl8Y9ylY6ICYIKS+F5ciuWJz7dHfNqbi7P5eYzbsMAAABpBU1ldGlznjKxPOfy6AoBkytCVTZS4FPW7Y4AAAASAAAAATBFAiEAk3n22bDTw/AuRKkDcyxTs8wlnNrN3n7oeiOo2OgTVQYCIHkL3x0xrqrELKotCgtSSDoAvqEfAnXXOjwlHMWfIem6AAAAaQZNRVRSSUPvwcc6PYco3EzyoYrFcF/pPlkUrAAAABIAAAABMEQCIBozptoKjqXfGuqs1arnI9dco5gwBms5++So/7/ssz3fAiAoL+6ugH0eycNYkW7akw4OkNH9ud7UTJxKKttfE9jWBgAAAGcDTUVUo9WMTlb+3K46fEOnJa7ppx8Ozk4AAAASAAAAATBFAiEAmriIiWbGW8CAMGHTBZ1RWVcbGMxC9QznRqbqlNg6938CIDg8nzj6BvY7X4SXjbhWx8h+FllDdv2TprmLQRRd21VNAAAAZwRNVExYLh4VxE/+Tfagy3NxzQDVAo5XHRQAAAASAAAAATBEAiB15M4Y1A7lNpb4t4bkD1ukXXLOYAtx2nZqyH9kJJxZxgIgNjHDbb2IAq9IWVaDhsxpyHfijodhmiPjBPIIMDQt+vIAAABmA01FVrPLjVrv8PTR9DLzUzCfR7iF5ATjAAAAEgAAAAEwRAIgLDxexq5KbblINa86lBUPqlsgLUcriBZjCi4473SS85UCIGbsEG2G6aT8FYU8Nv8ugv385eBcw4HYqmgrhlkCjgvnAAAAaARNRVhDfeLRIwQplHNxBYAtKr0KEKe94nYAAAASAAAAATBFAiEA5AM3OkK5LNRDwwqbNyBa4AESUKmpl14BaI0MCWZqRxACICGRK/H9pFO7oKDj+K6RI+l6HQQcTl83SNV8znnQwAYPAAAAZwNNRknq3CGKxMt4laWlbmSEZGtI+EHEWgAAABIAAAABMEUCIQCKttXOu6FC2OvAauxOE0yOOWN/F5a20GK0rntqYLhiSAIgSUq/QccXtGziXD2V+xaH8YLZEb/SIQ5xMsr1h68XqXoAAABmA01HT0A5UESsPAxXBRkG2pOLVL1lV/ISAAAACAAAAAEwRAIgCKhvQo0uL6ApIeIl5PYxnEO0bKmeaDWESrgWRHs0gIQCIB3UHMQJ56xFn+zftwKi8XswtxxLVYT34enu/nwMdqShAAAAZgNNSUGNUgYa9DxSIExxfQYQ6o9S+VXOCwAAAAoAAAABMEQCIHJlJU3loiS8euvDxnxx0NtHQfkjNRxDsACY7kcPtK+7AiA1OqvvIn0cI0aZcrzIh277ry6RUlwthkc5qND8botOLAAAAGkFTUlBTUl0MD2dCFoNZH70f5wMQkxz87+mygAAAAgAAAABMEUCIQC14r5nm7tvUdtSiC1CvzJzQ2quvfg6K4054lW3emnJkgIgNiZEQKP3yE6Fg6rVcWJAabKVUFHqCWaSR+XFmNuh+n4AAABmA01JQzaLOli19JOS5cnkyZjLC7lmdS5RAAAAEgAAAAEwRAIgfDUWb1fDDT/xvHlczIZHQTNnPJEMPws9pWLhNH6nrBwCIC5CgceQzWq2A76snY5fTVWMxz8fS9vjq0hTyWYU4QxZAAAAaQVNSUNSTztBAt/hAew/wi9MlfvveO9iE2VrAAAAEgAAAAEwRQIhAO9qLfRHiJs0GU7/LgpzXc2pUyyc8+Nd8Svq9BODiSsxAiACzKkaxxQf7oH0GeQs1+TKt4cv8HfFDtcy97kkqsfnMwAAAGgETUlMQ9cXt1QEAi+xyFgq3xxmuaVTgRdUAAAAEgAAAAEwRQIhAM7Z5h4Qi8DdouRGrD4y7izQVSA0/6NBZR6FZKPBX485AiAQxBKjh0Ytm/yfkURIgF0afjjldygGG+vG+h+hQD98uwAAAGcDTUNUaHbroxcnL+IhxnQFxejrOyRTVUcAAAASAAAAATBFAiEAlxTOL1EI3M9/lQIZbwbQaqbQ5HDJM+IAhPfMY/Wyw5wCIAT03nhUXr56Au+W6A/+vM2DotTjn3lqMT9H7htEQcg1AAAAZwNNQlNTiTpKZ9Q5Lr698aaD6Y4cV3q2wQAAABIAAAABMEUCIQD44R8Rjs0sYns2CmR3urvPaZlacLMjZSOFca/fpyslzQIgBXzCsBBx1o2BKPeUvB/cD2g3VqBJsoBBxzXQsoBp0LQAAABoBU1JQ1JPvmyPKBDvOUINLcKQG4QUyMRf7m0AAAASAAAAATBEAiBCFYHpeKGp0qRnXJ3VzRtmybUi8Q5YIZOcMo9ZBkS9NwIgYrT7WlJcEr85T8Lrv0AjbVxOtG2Q9BERP0X0Yb9XDEYAAABnA0FNTYsfSUkUd+D7RqKf71Px6jINE8NJAAAABgAAAAEwRQIhAJJZmkfjdgUHJW+AG/G4tVllDLWRizf0kKu3I5EeBA0EAiBBL3AGdlAm7G6Lkjvq4H90yE3uMFZ0sNfN/JUpgtGhHQAAAGcDTUFTI8zEM2XZ3TiC6riPQ9UVII+DJDAAAAASAAAAATBFAiEAwpsXeeoi5zGqbTOJp2fKdEx+MZaXdX3VCvkDs+Y1v5UCIDVQtrceDQCPhgDe+ky0mYCWhCB7hVsG/kWWLkogeLF5AAAAagdNSURCRUFSyCq7UkJXyO5HkL/e+0UrLWo5XiEAAAASAAAAATBEAiAD3RxMw5J+ymcd4JGC2lgcRx+pMC6ZFLvEASs7W/0XPAIgUCfN/VqqkFwApA10pyl2RqchReOJnca3HUGYpfE2DGgAAABqB01JREJVTExZ22C9QbvIykwe/ubqKpfq4eMM9QAAABIAAAABMEQCIDE4Ovn5kgvCqXx5pUHrVHm1NlcWXBhZ+J8LovMOvHFBAiAbKc008+MD2oSsWCIyvUgYV9D8e88bEhfwUMeAhSGfygAAAGwITUlESEVER0W+0E1bo1H7KpNHC+4Eursy1/aBfAAAABIAAAABMEUCIQCh21B60whnKIoreyBhmFSeEV9yD9pziAA8LWAKDYyTbQIgD5zOILKvovL9VIszf34bjA+tl5aRmmUZBfBigdfndx0AAABmA01JRwWnj/6is1qhr0OMIc8GZozxGN8KAAAAEgAAAAEwRAIgHyXmHs+1FXbUW1D+kyARHlmvibAYEy6uMdAv4vKSSSgCICvkYSQ1k9/blB/GGVZxburx9V/SM9bdDeW5k9NpFxjgAAAAZwNNS1R5OYgrVPzwvK5rU97DmtboBhdkQgAAAAgAAAABMEUCIQD1lF/M4WzEaKINH1FM51zWo6RsNxZzCFNgzvQDWx8u6QIgJ0tRkgx/wKeu/aUAGDjkXb7LX9Hd3ERwpoDinNqXOy4AAABoBE1JS1P7r0jlfKtG9MLgPtuQpCHZ/Gx8vwAAABIAAAABMEUCIQDqovRjs+57R0UrZcvRKUCto0T1/icYqXzmg4OHw5gLbwIgBu0B2JyIOrgosHi4r4gZabaqgDzcIsQHHHH/EdlEyowAAABmA01WQ1gZEbNgtus6FO8pWoOpHcK84tb3AAAAEgAAAAEwRAIgeMFumhQnKZ6NPWLTsgzFfNi+31Z7YUWhoqFm5414tEQCIARuglDatRIBjRT78xu/ssk1rSe8B91kBgc2GJTNsSOSAAAAaQVNSUxLMoDIw9z7hU+VQlZ8jaw/RNcJ68HeAAAAEgAAAAEwRQIhANC0PuxP/tknKvLcbhGJ7wnZ+v9pM5wk3u1dfglU7JEPAiAXzquI2g7rnNOpNyY0zDD/3MGPmdHYhf2porGqYoTFPQAAAGYCTU3DwiH+KMM4FMKMgitjH9dgR+8aYwAAABIAAAABMEUCIQC2Oxcw225miTChcbDEglyocdLJ4ZQUH6K8nC1GCEwGWgIgdmxyKJQ98diiSoVn5tDIg9IFra++zumN8iids+mFOhsAAABmAk1Na0x6Xj8LmfzYPpwIm93Wx/zlxhEAAAASAAAAATBFAiEA/hdVSYYGLTZDCCyGSeVgsVCX+e7mg/iADnpLoUdgXycCIEKTwrNC3HkuJ90Alw1TELJLh/fOQt5n0agewxocssOUAAAAaQVNSU1JUnHcQGaGgqEkIxMBQUFn5M9/VTg8AAAAEgAAAAEwRQIhANd2T2y6f/2vUZ6UIJ5eO8Yy4kCXFR03guR3hzZ+cMNLAiAWue6p8Cs52CrOHmZCpUDwZs56MjQVdzFeJ8+O6GioBQAAAGgETUlNT5C4Mfo76/WOl0ShTWOOJbTuBvm8AAAAEgAAAAEwRQIhAMOTrn8GY+h/jgP/fFDzCH3sTJCV6CmcZdkBglQ2k/NvAiA8dV+jbdSZHD5rywAZYqNPv5T+7RMyX3q7hMsgvosFtwAAAGcDTURDnmxZMhzrIF1dO8bFOcAXr2FZsWwAAAASAAAAATBFAiEAoX8DH8xBlf3AcsFb7VFONiu9RVKJGSMYxrs3t+YeBqgCIDbhtln/lviF5rcoF4ZfEevahjX9b2Jug4E0r7bv0EvPAAAAZwNNSUM6EjfTjQ+5RRP4XWFnnK1/OFByQgAAABIAAAABMEUCIQCLE0iutqkS2vC/GFD4HlId/eTdhlNNCNig4FZ1s/olFQIgQFDtXmXxRyRCzguzosoyPwUaAIQSV4H+3ln2nUbEYVIAAABmA01JTl1k2FDINoAIr7OSJOkq0Nzv8884AAAAEgAAAAEwRAIgJFBlphG5e6h22R/Jq+fwyVcr8BM5PVAlfOMqrJ4Kqv8CIFDgPl6+2JnrNClGAJZqYX+uyCcFkeUd1YqaKxdO+ylPAAAAaQVNSU5EU7JmMcbdoGrYm5PHFADSVpLeicBoAAAAEgAAAAEwRQIhANZTAl1cgWAv+2BKov+iaa/FYRJrJqDN6nT/PzYYJ+RRAiBUDmGnkG8xpj6RPn4J6c1U+jv531EJOFo7CR6V+wPbQAAAAGYDTUFJdTh+EofdhUgqtmEC2p9ld+An9gkAAAASAAAAATBEAiA3lF+edTzzySQHD8yvymBHx14//sMuyRMcWIKVxlcMHAIgZulOuwQolUv+Jv+LKqXGFfcSU2QqBoS0z9sNjO9P3K0AAABoBE1ORVSCnJcJLAzJLv5zl90924McxYNbrgAAABIAAAABMEUCIQC1SGdie9SEQ8PSebP2yQALREN+kuW4kcNzPIEpbZsMogIgX08sLU6pAQHrNdupVAKD+TlmI5rROYmhqp4vPz9WNuIAAABlAk1CjYEpljKRdA3d2RerAa8Yx67UulgAAAASAAAAATBEAiBgmFMIijiwewSHS6yUe9r4Kg8/SCDTx/xdOi4z00CRKgIgQVlvbZ4aQcTifrAt/tutQ9Q02gYyoENqW2U4yYH0jocAAABmA09SRTWsSIt3PaxQbuhXiV7p3DSyUPMTAAAAEgAAAAEwRAIgXJCuS+UgAm4+QClkO3xk7/FWkexQ2qCDoN+2+nHH0EACIGP1OfZ7OYoxCi7m1eolFmTukMZX7k0No14HHcZJsL0mAAAAZgNNTkVCbKHqJAbAfXXblYXyJ4HAluPQ4AAAAAgAAAABMEQCID4ZYHpMcAfSaW/xyDoxsLDVMnf6GcohflZRtZ8K4mkGAiBYGtcqmh1jcukMtoGP9nzvyXOwKzfUIRSNgm24tSptEQAAAGcETUJUQ36MFJ9wQ366Z4X5BZGQpbCKvwPeAAAACAAAAAEwRAIgapowwiur7if9OBk4ZG/z4Sa94m5c5cpnh1FyCNX31NoCIGfaLU7L1PdDvY58Ca/UUv1B5FLaa7IkhGlsk4nEa6+VAAAAaARNSU5JTZU88HfAyVugkCJuWaGPz5fbROwAAAASAAAAATBFAiEAlyQFtID/9+MrB20IYKQnOxgOUguZipZq1h8jHoB7cjkCIBbl4RLBx9AqQYG0Gc32H0rLr1fyBj0Xne7CftFfVawUAAAAZwNIVUKOminn7SHbfFsuHNdeZ22gI237RQAAABIAAAABMEUCIQDQtDG65Ml3lx+TyfY+zemy6Bs7cQUATGKBSls4X5bH4wIgR5OSB+8R2QW3a2l5mxwmQ6GicNpdP6GKTivcXAmlV4QAAABoBU1JTlRZtsaSAyezP47sJnhsdGLF9AmNR+MAAAASAAAAATBEAiAped9wqY1XgqRoxtrhEIwMtQJZAxFlypUrt9YEKYjIVgIgUZ+LFmR7He0c23Ut6UGXoV6+uM3SbNYQdYTuNIR3mt8AAABpBk1JTlRZU7vZAOBbSvISQ5DSBvcLxOWDsb6FAAAACQAAAAEwRAIgWhJ1jled9QZ5tnuJcrB6+74eY8vj1Bnspwg9OKUQKBMCIHyZZGs5BcYDe0tmdzI4+uMXArt0fPZC9zbVa/kTnXaYAAAAZgNNUUxCjcImaObzRoJzY0Bn5VRe1UF6PgAAABIAAAABMEQCIDqcP7Z5APDGDpaMtTaZz/8s0WH4mE0TDuBdvx4rc2HmAiBbGfeeTuZ/U/J+6nVQtQuaEB99NpQBRi/fl8I9094LRgAAAGcETUlSTwFocDhy+gZ0Hsqp3/eAMWjoP3rgAAAACAAAAAEwRAIgQdRYK8PrJgpgDSmgJ2RHh//rLzo0mp/3VMj7uyGcV3ICIGPeTJyM3S6Jcu0JG6MUrIVlJQ9TAjFPFbfOyT/CQFDIAAAAZwNNSVNLTS6Jllj7WbHVGLaP6DaxAO6JWAAAABIAAAABMEUCIQD9EDPlDKo6Rt0/7SWGHdYdEEqYJ34RlU76nVOjFgDUdgIgMK2cRshmf8xGpcy03ZpRsh10ZXMyKbHYjnH9bgtm3AsAAABnBE1JUzMCS259wm9NVXm92Tb417wx8jOZmQAAABIAAAABMEQCIHAG+X5K7J81+PI3InKQtP6JkuJJuIdDomzQZhmcJVXRAiBqwQcjD2E/lg2YrnXqBhG3EqrTDu9NGIY1Xpo/78CPOwAAAGcDTVNChMci5vE2Po1cbbPqYAvvmgBtqCQAAAASAAAAATBFAiEAupENO27t/NBHBPTtENkVSW/1HFm3+CYkl6ul435sIjcCIFJsglPbXD7AjcKN8AoB/vP7zIZNq8s+JQ/f6LZGXZ56AAAAagZNSVNIS0GXYJFziXO1IKUU6iBqzdAIoJZJ3gAAAAkAAAABMEUCIQC4fcDZ84wR9sWbEtP2wRhhSNQqwOlj6PmQvJAUzIONJwIgU8yjM5CEcTUw5fQWao6rMRFzlSwZiUfnU7mPhWSE14sAAABoBE1JU1PmU5Z/C+tuMTxjUPILyppfTGNu7QAAABIAAAABMEUCIQCnE5HxPC3alq+OV9+2JIA1weiFcLbLSvC8rrIVv+ycGAIgbsFU3QjlSbzIB4JkrKOArNBMfzO9BkLpYr0OlXnxKzEAAABnBE1PUkVQEmIoGyugQ+L78UkEmAaJzdsMeAAAAAIAAAABMEQCID/WHFgcyJ6fLSyDxkivbT1wBhfWIOwaJ2Ya/HK3JcqIAiAWXtWy7cZ3M/jx3h30hJEdC955JBDhECcqwZ3Dkj+d2QAAAGgETUlUSDiTuUIs1dcKge3v/j1aHGqXgxC7AAAAEgAAAAEwRQIhALIA2PsXtpa7TS+HA2/Zms5w4xItnWLRekCI1ITU4VOvAiBpJBveitp90yv7jilU+BuyUR/jROB5jkhFQ+YsFCoc3wAAAGcDTVRSf8QIARFldg7jG+K/INr0UDVmkq8AAAAIAAAAATBFAiEAmWAq9XHwz2BkXwDT/61WRexcodbyaaXgOqlj/qIoTgMCIBeLaQC/oWBPy6yGmVQH0oOWX5QaxktqWS1WiOlutDj2AAAAZgNYSU6pdMcJz7RWZoZVOiB5BoWkes6qMwAAABIAAAABMEQCIEwdq5J7auGWQCTzuNwxsC2r9xZWdbLx6mx1EqPT57dLAiACIS7fHKPl6yQalYbhpcgRe308LvDnWRsJfa+Ez4GcQwAAAGYDTUlYXShfc1mY82Yx9nj/QftWoQpNBCkAAAASAAAAATBEAiEA5ruUxaJY720I8yWeLplwHABtphY/mSWev8ZiCCeX+sQCH150b0ziyTDz0JtkIxOb9MVv+oanDDx8f3N7xOdBmMIAAABnBFNPTUU+j/yMPLDbMIHfhd7JG2Oru+mfcQAAABIAAAABMEQCIAzwTU81yOnRfhL7C+jKHGzjv9vxKiFijlOE8Qw0E7h4AiAjPl4Orhfemn9RwJAOCcNAbY1UXKXdUK41QTuT+mosMQAAAGcDTVhUYlHnJc1F+xr5k1QDWkFKLAiQuSkAAAASAAAAATBFAiEAnLyhVQCADiLkphQeZd8vFPUXJl1rnRx9fLBt2Ol3J3gCIC/X2l3qk08HRMmfLFyn2lxZ15zQNAoX7GJEKN0D/jnrAAAAaAVNTUFPToMVRyuud/miuFamfrB5ZICq/NUcAAAAEgAAAAEwRAIgKsGuvnBhWTQ7PIHRhlE0gRaD8cS9RHf0RyWAQnPAm2YCIBg/JpxoJyg4Qm1hEa7nExtmsIR79mGg7n1VFmuL88AhAAAAZgJNTaKDqnz7sn7wz7yyST3Z9DMOD9MEAAAAEgAAAAEwRQIhAMMMuFe2r8XIN3hJoaVyve345ZKuEQEoINbiy1eqFI3PAiAjsoR1NxbFzvocVPwmztBDPkRejPmMtkzTI07t/6vjXwAAAGYDTU5FGpWycbBTXRX6SZMtq6MbphK1KUYAAAAIAAAAATBEAiAofBnAW34xAAYumHHXJ0pQ9MF3qbxLYqZcAltSsV3ntwIgDnfOT1FgmiFCtWsPDEdyL3hdsJgheNC/MSmejIW/4eQAAABnBE1ORlTbfrPt6XNmWxu58wFoYeMlUGLk7QAAAAQAAAABMEQCIBx9IWfMuvcp0cKMmQh9hMWJ2kz2spQrTqu/FhvqV0JCAiBh7F5ACy2ex7e0do7W9txYW7inGCxTIoO9GvWQomMAYwAAAGgETU5NQ/RQkfJdN0u+lWwLtku4XgLQeqdBAAAACAAAAAEwRQIhANagtNTYfoSpz0W61nS60ywescU2FoIi4nOpv07e4QAIAiABvIk1d8OZrtM81/YIVVIdRpmikh1IyFZ+iBqfmJPaIAAAAGgETU9BUhh+/5aQ4fGmHVeMfEkiluqrgnAaAAAAEgAAAAEwRQIhALdZ+/kDT9hmoZM6Ble8gwYtgpA7dIt7wAZRjiMhZrfSAiAjTx4CS8iB2VKqXa+YOFR3TVNLLCEIHHH+B9xgTun91AAAAGcETW9GabLb8U0LR+07oCvbfJVOBact63VEAAAAEgAAAAEwRAIgb28fZCQybmtAXUl2wLuH88gHL5XnTIvSGsC04012cGYCIDka9axkKuaIw/+UbgzDB8tIPixD+awzie03EJrOhX9qAAAAZgNNSUIUbY2UIEitUXR5ybqxeIcSrxgP3gAAABIAAAABMEQCICrC3evLbCaQTZrDrSAX9uDaRU0kiq6ND7iTms7G7qk8AiAk3bHen8pL8Bb/6jX62noRmS0rWZR4SoaAmbgb2mXCbQAAAGYDTUJOr4CVEgGg7/haD9Ot9McEPbhW0+YAAAASAAAAATBEAiBNxJjBQWi//EuG4B68gkCK6sv16a/pKU83CfnB8nHdkAIgGyeijDXl138tCCewstOqZwoye9Hs7kgfYparACpHpbsAAABnBE1PTEuXy1zBsuEMxW3BarkXnwbf7b5BogAAABIAAAABMEQCICHhyhzczCELfWDE6EBj+6QY4E4ZmLwOrp1I+qQSNHW9AiBj/wUKVPNpz2zP0OhcUgno9XzzFweKOoUbQQVBLA3lEgAAAGYDTUJNKB9bkUsNWJ+Bk81ecRxpIIdOAMgAAAASAAAAATBEAiBoohFihv8ie4oX68YJEKWL+YYMPdHcwLL0jP8YmtIN9wIgDsWYc3czs01+sJ3Wk1q8BXdbY4EUHMbInLyj3hM3DU0AAABnBE1PTUG9GEjhSR1DCK0YKHp0XdTbKkvVWwAAABIAAAABMEQCIFhvMajUOQLlBfAgTEzusk0wlcNZ6+hf+MH6YnM+xik1AiAv6JubtE2FTCM83aKY+YfVcTLvdtsH97ubseu9UwXF4AAAAGcDTU9E6h6gly+gkt1GPylo+btRzEyYHXEAAAASAAAAATBFAiEAppA1uFLeoJ09ALCUJ7bAS3QzmZ/wawQPNU7ciE/kAIMCIHIj6oaBzTfAJgJ4Jy7hAViLLiBMFnKlAb7aKue7MsPBAAAAZwRNT0RYPG2ndjyqDktoS7xzPwSo7AivN2IAAAAIAAAAATBEAiAN4nqoY8KQFWHIISBw1k3sf6ScM63kOCqiksITEPPydQIgEEJ7E4PhLfGekk9WlDSa5i9JCZBr8U/ZWSQYRwmlACcAAABoBU1PREVYS86l5ND27VPPReeij+uy02IddDgAAAASAAAAATBEAiBZ1YgJ2fjRZKaz6GxxQp3DBd8VtyJHVmsIwpM9igAfCgIgI8Ur3ojeiM2A75nFF9L+Xy2MS22Cqgda+Z6Sny8sDZ0AAABmA01PRJV8MKsEJuDJPNgkHixgOS0IxqyOAAAAAAAAAAEwRAIgAULN0lffWlD8Q2Wlqm2iDJptPRMsY6WbBrZeesWB/4sCIHy7o3recPx2RluTckIvcwyp4NKjWtoJ92FFv12VVLlWAAAAaARNT0dYvexFlSteI07dwpgbQ+7TYIJtUIcAAAASAAAAATBFAiEAhOAjpc3xz0q13/Kl/UlzoEVmAic5u0fr51t1FtWC5IwCIBi8ly46sAqzaWFdZAS4nlqQvHgjHH8Tmx1oCIG1oLa5AAAAaQVTVEFSU8VcIXXpCkZgL9Qukx9is6zBoBPKAAAAEgAAAAEwRQIhANIGWkrZFxVo7B9Jvhq5JsCnTRugClMF+wpFb2D12HnIAiAJ3B82LdgH9WIRsp7JpoZtOyuUKCe8K2AWtym4n9MQrAAAAGYDTU9GZTQwVgvoQ8Sj0UPQEQ6JbCq4rA0AAAAQAAAAATBEAiAgUU7mBHwC7bDT+p3Qfm2fjWGxQrQ+Mvmy271owrEcrwIgVw/XsV9n6GUoy9/ngFmMehuyVijdVW0VCY1uS1NPN1kAAABmA01PTBRD58HM5yZiVF2Ud5EgxZJRRH6RAAAAEgAAAAEwRAIgNhD2UEVUTAvQRmn797+X44MwEQKFHpWC+M2r2IOgrV0CIEH3gsjx5rVyPfs2T/ESHtmhwpCUDYYyn0KTPwy1ER18AAAAaAVNT01BVIZbuaKAQSWbS62v03eZooiqu/yMAAAAEgAAAAEwRAIgSUK2kAKO/o9rlO0UVjBPs0LFmQbIfwiGvu86LV5q2WcCIFnuMt7fuiVPI01cHWCa487+xW99+kKV2ZDfSBgoM4RQAAAAZwNYTU2aekwUGjvM5KMeQsEZKsat01BptAAAAAoAAAABMEUCIQDJHrxLspzI8l//lcuT2QqiReTu0jAXdXDXW6lKEFvExwIgfofWT8shS1NcgLWf9ZgsVnsYGJoVt5KZcC7C18YFlisAAABnBE1FU1RbjUP/3kopgrmlOHzfIdVOrWSsjQAAABIAAAABMEQCIGdP9RpZ77mUyw21lG92fh7uP+lPNDZSILMsUS9eQM4hAiA5tydUaMjyymnQNWqJ+qblZNn62wrQN+GLayHtddoEugAAAGgETU9OQSdfWtA74PoiG0xmSbiu4JpC2UEqAAAAEgAAAAEwRQIhAOJsf48M2IwIQrjY70fHHQq2bO42jRHczuyed8yfognEAiB1g6SRoZ7ibOVCXhz2rdOBepgaY7l7/7x+y0B9FyZ8egAAAGYDTVRIr03OFtood/jJ4AVEyTtirEBjHxYAAAAFAAAAATBEAiAvzrfnQaD1CIN9y9v2rEVz77Gv4a0g+fFIrd+a3xjAsgIgEkwF8kCQFr6AbM9X+eUoqF2mRTQmtvgOm10m0moXFp4AAABnA01DTTs4AfD8dlKOQjkN9wH1E/xiy/FUAAAAEgAAAAEwRQIhAIwrkpqQ46CDjVyBCwkrIQ/AJNQPO8HE16F02ZCTgoykAiAgFy8t/lsOLldJXNJd5qS1eMf/p/Ve3NGo4jv+ObcXAwAAAGgFUEFSVFkxS9dlyrR3Sy5UfrCqFQE+A/900gAAAAYAAAABMEQCIH3wVlTXaJJMGxwYeH/edaJFSP483I5CKWuLNcJ+DmlRAiBEiR3qFeETz0Jn398RIRAtivNasX9KpoZLKM286mUFtAAAAGgEQlJSUoq/OpWGJhmlX6AMs+Tu2+ET/0aMAAAAEgAAAAEwRQIhALHFBy7/0SKwhGYbeC9Bwuv3xfPQwlRYtUHa0HhS4p6ZAiBkHuaFCINrdN2sGrx758x1ShmHgsmpfeFURexZnPAYbAAAAGcEQmlQU1y4iBgvv/22LAj7S1o0ORTwD9/uAAAAEgAAAAEwRAIgaNVv0UCqURANmG2drY/j6BsLgQX7Yc5NKIPOfAdH6I0CIFNCkCApE2NfIgskmW2auo92MHULLcteKW2eu5oq04FBAAAAZgNNTkO6x6F5g1DN8tv+DCEMLJhhIj9LMQAAABIAAAABMEQCICANOiKfpPq//mB3Qf1oc+/dL5ikAJzKaB75Mp2Xl7DJAiAgiDzN9U5lkbu3xIm/tREi2At+cq3eahcaJM+8sRciGQAAAGcDTVJQIfDw/TFB7p4Rs9fxOhAozVFfRZwAAAASAAAAATBFAiEA+5rIktnNfDsjR+mfznWpkmJ0YEeIdsWX3wiwjGxJ3UICICgJaHA2SkZ0ettXRRyhV90Vrm5bWsmqviFWock8bepuAAAAaQVNU1dBUMAFIEhW7nA1oT2NfNu9wTAnr/+QAAAAAAAAAAEwRQIhAL7DwkB4d37rVjgDskqVhdLQwk0y9Om11CBI/hXkbNXqAiALghjxlfHmWWalY1B72TMzT8APL4/Lvb45Q3b5AUFviAAAAGcDSU1UExGeNOFACXpQewelVkveG8N12eYAAAASAAAAATBFAiEAlj5BX+o/aL9vNPzGmgvBN0ZOX4bup5PeCMgGZLfzs6QCIBbJG3+bJdsxK8SX01cckNFmJ47lO3xkMjzhl2eBRJmIAAAAZwNNT07KzBnFynfgbWV43srIBAjMA24EmQAAABIAAAABMEUCIQCgHAhVoxh3oI6JkUfucp/CVTmpa5/pfrVgHkFb+tuCewIgHXyontxhnkVNZq6LLRJLC20+9jcYjNFGUJV90/gNHcwAAABmA01LVBZVhVPkZHylAMNxjFbDVu22+bEcAAAABgAAAAEwRAIgBBBQi53SbX4Q2iDCLMxq9KuGp5ze7/xe63D0uU65VHYCIB7s3rMUfbAoPm3wAotgyVCt0NUr+i3ICNViMHYcz4+eAAAAZgJNQ6OLfunfeZVbkMxOLekEIfa6qDo9AAAAEgAAAAEwRQIhAP1vXXtvppnsBABhk/pDlKbH2uyJ96pFli1+uiSMIWB3AiAh5TRiaZKyi8UEcN9yEixliOTAVx+y//1rkjRyWusPHwAAAGYDTU5TU4hLYZYzUcKDEYqOH8BbpGShGVkAAAASAAAAATBEAiBtcpWPnf4+OdRarLrR/KD3Ji6oOD92xFaMN74cnb4pJgIgRbI2BGFt8+7DNVsfEyr2/PGDM+7jMDgA+e5KAeSxUXkAAABsCU1vbm9rZUludU2gihv/UL6Wve1ccBkicWS0nCv8AAAACQAAAAEwRAIgSXYHFEma8dqhx14fW++JsIfmjQwkXax/wKXlGfZ8VCICIE7CsNIT7T9krox/cdFPZ2ncaUi+59YH/u2DMixJRNoAAAAAaAVKVUlDRYie+1I8w5WQuEg+uUkYkKxxQH9kAAAAEgAAAAEwRAIgF1PRi6MUnzSH0XC+lYrzcHTASJzcFTXskRxCvdHL1QoCIHI98+/aTEIot21CwwtQC0gFfr/2gD6DPRWl09/4SH24AAAAZwRNWUZJHvsihr+J8BSIxrKiKyVWwPRelysAAAASAAAAATBEAiAMPRA2XDUZjjOxaS1c8Iqd0UpooxaIWoR1rdo6alfjYAIgRg/HdJdYjYU+ecJ7F2dn7VFZZ3ip9U/OFQm079SfvxIAAABpBk1PTzIwN9PInKxKQoPtumkn4pEP0evBT+AGAAAAEgAAAAEwRAIgW1FMYrt6nFHypOXmWpricrzDxDma3IWIfNFkKf9Z3PwCIG0VNiz8Oh1+P+XNKjTWRm5HMMwB0ybUg4wW6LhezsOZAAAAagdtYkJBU0VEJs+C5K5D0x6lHnK2Y9JuJqda9ykAAAASAAAAATBEAiApnb+PKwpC/vKt51C8bkeK44ZALND9ypnfiqN5dyKlRwIgb3R0M6lmOG23cUGTmr5vPGP7iwJJYxzi0KDBcvH54EwAAABrB01PT05DQVSYlo8HR+CiYVMsrMC+KWN19cCDmAAAABIAAAABMEUCIQDFTWU/1caSrXn5+5dVsw89XxxniId3j7ZXE0drrUruMAIgFWyOWH19pAk1+G8IeRdxYouQWbVvVMczw6MYYA5Lq4sAAABoBXVNT09OaDI5pMq0lkLG4CXPgdKD+ch7wH0AAAASAAAAATBEAiBhC7mv0w0orFg5ddeA3ysmmNZpnaeYCDPDfbmj36gk9QIgToYajWayDx++w3p4ym8xOQD9WNHFmbkjjUHSfn44jQYAAABrB01PT05EQVka1gat3pfAwovWrIVVQXa8VXg8AQAAABIAAAABMEUCIQCKs4w6rYsSAH1yDzopmERP4ZRCgzWyIIdFgIJQLzwgoAIgdOSA/DJLegN3JMivO5XXnCPEESY2AAHBCNKVhIeLjVUAAABmAk1Ey2lshpFxdd+08AN93E8uh3qfCBoAAAASAAAAATBFAiEA78KfnZpiUOMzSG2BySpB/pQfWEKUWh5JjR9s6AJZl34CIEMfL91E/5w8s5u+fMA8wKmzbTzIIE2x8NcZz3o7g6lTAAAAZwNBQUGMa/FsJzY2Ujwp232wQ5YUN3D2oAAAABIAAAABMEUCIQCDHKheZf4RDIXDMFNybaN7q+oYI+6P8tQKl4J1Csb51AIgGNagJCkYm/yvD0gYBVVQzrB1Nsi/qP7PTcKp7BXMOokAAABoBE1PT05oo2N7pudcD2a2GkJjnE6fzT1IJAAAABIAAAABMEUCIQDSq+Igo5R4do88mhqPde0ZcN7UAqiC6SivTfFwCza8dQIgbujhTjlIlDuKSKjEgzctvnT6hXNwSkbLfQmWshb8YuwAAABpBU1PT05TJg5j2R/MxJlga64/6UXE7Rz1alYAAAASAAAAATBFAiEA0Pih159oiZySeVHDxCEpNDAHc5Eh5i9eRcQ8IpDtkkYCIEA2AV4lRhvmr02Z0/UB9VWFsBFxrAmz4R/74u3ybb3YAAAAZQJNT0/VubXcyaXVkx0Ae6SuVz52DZtkAAAAEgAAAAEwRAIgLWdxD64BpMZcJMLc0ALIeH6IbIV8vBZl621cloWJbFECIDPv9j5Nm2xe1uQ2axDBYL02YkDUcrqvWVTWkHryAxFtAAAAZwRNT1JFMF3gcEiMhGnfrJVyJsnJAMS/uiIAAAAIAAAAATBEAiA9W4R6P1/9t8ku+CTw7pTMHUubtcORBzorgdFWqLQ95QIgZDYWeJw9hRD7oK0W83DoP4qTPf7n+YcA/u/k2d7PEMEAAABnA01HQxdL+mYAv5DIhcfAHHAxOJ7RRhq5AAAAEgAAAAEwRQIhAKTkXJudYkehXiRVA/ramqkcUqhSXfOWffnxaOLYPqysAiBh2KnTjHfqWM1L1quYIqbkct/+lU+7jYJMJbqBTNhBOwAAAGgETU9SS/VStlYCLCGMJtrUOtiIgfwEEW92AAAABAAAAAEwRQIhAJHX6zmYWfESSMg4gAb9FY3u3VX0X2JRdT2tOo05Mxd5AiAlR1YkFqJKH8U4Kd4+Ax81BMgT7Db//fK3NJTPbRp0uAAAAGYDTVBIY2nD2t/AAFSkK6iywJxIEx3UqjgAAAASAAAAATBEAiAuSn7Zzv94puDgSzBHYCDqn6EwLE5gC96lRKlGveY/8gIgeVniGMC7Y0js8ffqR9CmMEAwyqr9J4JMNFsedvZv7BQAAABoBE1JVHhKUn2PwTxSA6skuglE9MsUZY0dtgAAABIAAAABMEUCIQCaNR41Wk+sVkc9ax6eLWwriN2Lwz8WFNxZUhuHD7n4EgIgZol3mwxVMO7xPeIn4uClhF2IyuYdtjXE7Hp55M2tYAUAAABnA01OV9PkulaQRVRtCc8CHsxd/kKx1/bkAAAAEgAAAAEwRQIhAI+ft46B/gVVwWyV4dPoTX8VVaQgI3978k7AP1TByLb+AiBzzzUFtDGdo88+Jel1u3baQ1//U046wb4zEFbDQjvKTQAAAGcETVJQSHsMBgQ0aEaZZ9uiLRrzPXfUQFbIAAAABAAAAAEwRAIgC65gOmfObocPFt8IclHDCRV/oD4Q8mESxSGDywoCAxACIDZ8T5mPb5j8QMi4Oaj1ey7hQRB0DXi6VxOaC3HHZsiEAAAAZwRNQ08y/JjoJaImTYkPmh5o7VDhUmq8ys0AAAASAAAAATBEAiBN650V4JYa6nDWsC3ycfExRzIO2kULnybXArw9TPgeIgIgUKU8Lnw9lH3kCJazLfh2X+xfgpoopIZJvxJCEzRh/eUAAABnA01PQ4ZexYsGv2MFuIZ5OqIKLaMdA05oAAAAEgAAAAEwRQIhAMDqo0yHfJfAZq9bUclUWwCxHNQ4v9ZCM2UnZZr52fKEAiAU3YHDEWeYZQGgjqYEneUUWgDqMOKEXsV0WrVcJpJ7ZgAAAGcETU9TVHhFYbiaFgmQ9G3m2xlXHKG18UvOAAAACQAAAAEwRAIgcTfShdNhDqSgqfDW1k5T9IZTvp6r5OWrRYKQ8CThb6cCIDUrM8v7L8UBhiAwv5/XF/5zsqvjdBtmvLhGCJdOh1NHAAAAZgNNT1QmPGGEgNvjXDANjV7NoZu7mGrK7QAAABIAAAABMEQCIFgAi3TFjWxMlrcrEmEJQAUmULMkAHTJm6ne+uPpDF5OAiA+wIWLxT7wxr+YcHzu1tVYxVmbgtmvrrdty6MuYI6iWQAAAGYDTVNQaKo/Iy2pvcI0NGVUV5TvPupSCb0AAAASAAAAATBEAiAraCERxj6hbJOL4Q1o05jiJpcHkttMpUbVfMP5i+0IXgIgEzS+g9Il+ZRZeiN0+lHOCZjfpkftzilSJ2BTyIFQEu4AAABnA01PVkAoQQnDMJp8NDkRG/2Tv14Pu3BsAAAAEgAAAAEwRQIhAPV1Gj4qzn6bjpCOdSMJM2ezWhGU6C7/1X3PbANW8SXeAiBTIqyFULg6/zHYYKiNiP9B9LjR0UtSzEUmG2XGmZ2fngAAAGcETU9WRT+nKbRUi+y61Oq27xhBNHDm1TJMAAAAEgAAAAEwRAIgVFavE/P0nmkVodr6cLTokXNEBavZQniGEEKxXbE68xMCIFliEjjUebLNvGVASMQbThveKcL8O3HNxm0V3Nm8FXrUAAAAZgNNQky4edqLJMm4aF3oUmz0kulU8WXXSwAAABIAAAABMEQCIFheaG4naZU6aNo8OEV+JVdwYSjmsFeZtSIi9mkz+VWzAiB7B9v/ZGYSu6e30M0jjOpNSf1cB6Lo8a5Rz36BCOrqcAAAAGYDTVZIRclDlz5l0GmQaw3DPcMdHX2dCdwAAAAIAAAAATBEAiBcbXBInUJY5U9HBnvyg6tiY6ejQqna0CYMGP4P38PZhQIgZnN1upYMk7ylHPJehBLz8YXt+1Qs+I2Vtzn7r1yW0lgAAABmA01PWnvYKzIOvCjY6zxPX6KvexTaW5DDAAAAEgAAAAEwRAIgR11Pi9LZNScH9xGbBTJw1E+GdmYNl98Qx0tC4N8oiaoCIF7CCZ56cykmjw7loAvIF5SEMALyJ/Kx58SjiXMwoECeAAAAaAVNT1pPWOpJMb/PMmDabb8FUOJ/XCFOPCaLAAAAAgAAAAEwRAIgOHYudS20zodG9zg7oBZL2lDh6Cu5tVFE8AoQjWGFgkcCIGpA0J1Gm1uN2dKFp9ONMddgZbN9yCCh9GbnzrAfqYmSAAAAaARNT1pPRL8ilJ+cyEthuTKKnYhdG1yAa0EAAAACAAAAATBFAiEAswWK6Yym1XsYXziG6BN30/Lu+U69M0/8gF5bYIk1YHwCIBwOQFaXCVbihZLKae4TqaCw0oVLHi2YZtChmfUIqwvWAAAAZwNNUDMBj7WvnQFa8lWSoBTEJmqEFD3noAAAABIAAAABMEUCIQDjgWgdSanXgfhnyuLdpLp9go42VW+eAGaW1IqtCeBr5gIgd/CbozU7xKbkmjWjfGMddcYBO08wVgstRftjMLYpD/IAAABnA01QNOGg2mD4gCtJzDYxO6+t4/nhI0L9AAAAEgAAAAEwRQIhAMEy5E9f9cPlbcQf946HYs8GKK1ZpvBWQq9TDyuJGspLAiBcBXk01ds1odg5+T9toOLsA0S9RttPzErvPU8aojhjugAAAGgETVBBWTgQpN30HlhvoNuhRjp5UbdIzs/KAAAAEgAAAAEwRQIhAPirl5zj+f+431uPsrNmhvPRpq3QB3i266pFPWZtGk+ZAiAv63fMLCri5Qu0AmACFwWlRcicQ7Cejm8kPnvxqubN1QAAAGYDTVJWq2z4elDxfX9eH+r4G2/p/76Ov4QAAAASAAAAATBEAiB8Bao++uru+Cq6/zVlm8ZJdvB57UIdxaW7BTEBpeG2gwIgc0F9gg/E7Aa9ah9mMfhnIUofB0y+X5hE7ZVF1iSTXWsAAABnBG1CVEOUX6y5l0lMwlcAlsdLX2ajUHMwoQAAABIAAAABMEQCIBHuAkQFVsp2+oAXMbhJMIAwCHmtyJ0bSFHqOJH3AoQaAiB5izedsMeQRHA73AR9GsjWUKKbWeydoQJGJRmwn9gU1AAAAGgEbVVTROLypcKHmTNFqEDbOwhF+8cPWTWlAAAAEgAAAAEwRQIhANTTwFlyB2DIXuWy21oisjSERhoDr3Tf3YndWix911zpAiBOkO5YL++PqOf9K4701CYomppNxDatAW+pPOHF0scdeAAAAGUCTVSbTitLE9ElI4qgSA3UK09vxxs3zAAAABIAAAABMEQCIBmqSMTf6uOoaf+IOKkV0EeJlaeBBMdgwFggj+v3dJ6LAiBW4F8QllzEu3/u+BbeZP4LWckw7U8bNDTGP7lec+wJ4QAAAGcDTVRD39wNgtlvj9QMoM+0ooiVW+zsIIgAAAASAAAAATBFAiEAh8uPpwOwpOuVQ4aOX7ceMUIRiHRy7Hkk/io52YVbFJUCIBefFN1QXx5kbjcjCYLb9zPzWK11d7V0x4MVaKt04NF0AAAAZgNNVEmG0/OO2vfnlZ5djmrqWtMYe3jDRgAAABIAAAABMEQCIB3b/2V01wwITm+NmDHTOiFoeheyxpdE5xTvVNpmiV2XAiAx7/8jbx+fTn/zh0fnQ6sOzNtAONXJLbhNnEbGmKk0uwAAAGYDTVBTlsZF09Nwb3k+9SwZu6zkQZAO1H0AAAAAAAAAATBEAiBIXbSh6t3L0OHiAyn2G3QueWkX9RzWdbvEwV9JMEeaRQIgPpvcxj+zlrqTMvHk3BHeZoi+TVkN7IRxjVlQ/ETlLL4AAABoBE1UUmMeSf93w1Wj441mUc6EBK8OSMU5XwAAABIAAAABMEUCIQD1BMz2/hOcZJZRuSRLmYsh/37/E32TR4NFVt0uww39CwIgZ47cLRP1jJFjMIVuhHRsTIdoWJ698+G3zQCP17mB+8IAAABmA01UWAr0TieEY3IY3R0yoyLUTmA6jwxqAAAAEgAAAAEwRAIgc28v8GMm5TsXQFaPXhUHN8EZki2dyM9bUmIkOyp8KF4CIAW38lj+MqLbUQB9phWpSGjgWkeEvCSnUOio0J4++PUHAAAAZwREQU5LnqGuRsFaQWS3RGO8JviqOw7qLm4AAAASAAAAATBEAiAKpg1z4aEuyl3f6hSl91SHq7Ie4oV/SrQnwc8o5dSIHAIgd5wM9VH5x4ioqPGdQNhbKMpyOtskVRXFgvS9b2fjMC4AAABoBU1VTFRJZe9wP1WU0lc+txqvVbwMtUhJLfQAAAASAAAAATBEAiAEHMlG6lULPg3Z1l2JwcF/jW0uP1x0Vs/KE/mi3K4m5QIgXuK5mkpKOENFWQqNOm5is4JoH+BSeEhUNPJT2iq5YzgAAABnBE1UQ072EXzJLXJH9gXxHUyULw/tozmctQAAABIAAAABMEQCIC2/jsYy7QEChruxdD8zs4mRFw0zBm/t/4B77sSb7QnYAiBp7I9nsDyfAwt6mF/xlBt/GnmIzrW7Cm41ZveKBkFj2wAAAGcDTU1NW1WFZLV+T/iMa42Ofu7lmb95s2gAAAASAAAAATBFAiEA7aIFLpjCCunK7r8LtYcKysJ1xDaoplCNDClUkV6GdMkCIBC1ESreMQFBtXIhqmLDSEMXhyd48C2hE981nGNtVLuFAAAAZwNNWFiKbzv1KiaiFTFRTiMBburoun5wGAAAAAgAAAABMEUCIQDUkyA3R9KOil2zbWG1ihbn6uBpZtHnp+nA22+jtAfFewIgK71zl/RihbThoRXHgg5V6fvi9b7gaEkkYHWaghY07zQAAABmA01UVmIm4AvKxosP5VWDuQodcnwU+rd/AAAAEgAAAAEwRAIgdtBx7KYvE5wvFKrg1DcHf+BnmUmJXsdXisUrzLvlcMACICcPk70DyMK04Ubd31L4e4A17x79SL0tMRqR4JbDHXEVAAAAZgNNVFaKpoireJ0YSNExxl2YzqqIddl+8QAAABIAAAABMEQCIH2kO/h4O0zKElCWESxuxZ4PskpNwv3ZYFa2bb3yqc/qAiBv8/AR7Qlcn0iGhEJlWwNaZNtbQginRioEnKXR5Qo25wAAAGYCQUnJG1I6WazGOmT2H8e7+0v8gt0l8gAAABIAAAABMEUCIQCx/pgloSuWGS2dcQUiUJwf0AtaAgFT44NE4556DIj1HwIgApMg/qBg695odjrLubbIOGG/u1vFy/HJKkQehbUyqwEAAABpBU1VTkNIlE7ukwkzvl4jtpDIWJAh7IYZowEAAAAJAAAAATBFAiEAkR2rafZTfZ2XaLkh1OC6gXPfRXQgY1QkepoyRCd5UAQCIErKXr7Hu2SiN4w2tlfKx9O4Qbl9HMW3sLGqAMiT4IEHAAAAaARNVVNFtspzmbT5ylb8J8v/RPTS5O7x/IEAAAASAAAAATBFAiEAhsKAGBGP/FrKNFhpEgnQUqDT/oZvAu/A75fs8Z7vFvsCIAMbY4CE55EaDH7A5okVBemiLU1XNxPlgBAqHqgYOtsrAAAAaARNT0NBmsB2Nd295dsYZIw2De+wD18iU34AAAASAAAAATBFAiEAgZ4bYl2fw9qFx8k6eV5oJee9+efH3O/IMtnSU/WrSksCIDHfWc1wL+/u06qDy95XtWrAMe+FWKgtSeSU0qPHaApWAAAAaARNVVNI6mQS+zcOjRYF5q7qohrQfDx+nyQAAAASAAAAATBFAiEA43EDUS+vdJUVsoAFQz7zV3eTuIx3pQzQmEB75nif/mgCIAMvL4yZla/EPqqQ0nKwuYMq6owHQ4lBPBIXqlvRLD2dAAAAaAQkWE1VVhI5CKyom/YM6WWa6fRYnkbI0s8AAAAJAAAAATBFAiEAujbfy3rMUE7YNyaeWwz35La/2nQHKkN6Vad84UKOnx8CIDvrcXdXRKV1LigAPGU7w6thIjjFOPrICS/8GBaMnFslAAAAZgNNQ0kTiodSCT9Pmnmq7fSNS5JI+rk8nAAAABIAAAABMEQCICjez4zZQl5dxA1+V+VEEgpcwg6j+tbjI4IqEj2q3dtdAiAeeLJ+i57jaR99nQzQVHhcBDavmy1Yv/K4kk72Chd2ogAAAGgETVVTS1ADsWi0V7Zjw8GP/PW2okvuj1nHAAAAEgAAAAEwRQIhAOuk4MqVlDV7mhKoGQtdkzO/pxdDPPeLsLw6mSVlFZPcAiBBhOfhFJGMu8xI7CTqUXxo5fCLVWe+AztC5cBl5H0DswAAAGcETVVTVJx47kZtbLV6TQH9iH0rXfstRiiPAAAAEgAAAAEwRAIgW8aR9UAgLHuWFIQNh2qIoY+T32ulW6FfiURI7FhRjeECIHCCujNLStX+8/Uc6bUb0cTU6bfMZdv4LwlC8DT+wkfPAAAAagZNVVNVQkmO4E4elADU4gkf86RlCeJG4vNFQgAAAAkAAAABMEUCIQCYG4cYCGKETQnlscTel/wHNofUZtTzhyTxhK0GgmF7kQIgFvKRR3DPlbGMwYkihF0fGH7EcjSNiGDBGR+6TQOGqBsAAABoBE1VVEWknXSZJxrnHNirmsUV5mlMdV1ADAAAABIAAAABMEUCIQDL6bv2wefIOaskZj52U7Rlb3ngFgua24m0GlyLMEiCwwIgS14FJzwQwUXt4VnREZp0MRekrcPDH9wzYA0sPFzAlt8AAABoBE1VWEVRVmnTCPiH/YOkccd2T10ISIbTTQAAABIAAAABMEUCIQDSsAvRSpJdBrif0bhH/a4+M8Q3FBvesyqDnU+GTqdxowIgHaa1sKdMGvzSRG7ydI3jtcTm6Bs0uwFNQgdbdslyBE8AAABnA01WUGX8lNmcswHFYwxIXTEub/Xt3hPQAAAAEgAAAAEwRQIhALkV/457vRUjnQT4xHHw502zC6JuaB28Cz505kU/X5KFAiAyEfXlAaYuUI8JI1HS4vyBlokTViEKpn2ZAkA5PvcdXwAAAGUCTVgR7vBMiE4k2be0dg50dtBt33l/NgAAABIAAAABMEQCIFZQP8zXMD18UkYKsaygGZQjSEbk32mT9Uk15xit2WTVAiB/bRLB+/BOLdjD6WrGh6pwntZwEyaohXnn6bPOT7D6NQAAAGgERFBFVPtirjc6ygJxd9HBjuCGKBf5CA0IAAAAEgAAAAEwRQIhAJUJHM9/uOdMY/vsmDeJ5ZDZimRr+vpiW+XMEzuejVlfAiAppoiyThnaV0oHdJAlrx9XZ3vNleVMx9UBZS02ZriojAAAAGkGU09ESVVNxEOTDs1Z5V5C7+l2uKS6Blj1xQoAAAASAAAAATBEAiA0n4V11Tql6StifWt9gdb0m8K4PeygM8CnkSkAXHJcwQIgUMILpwLDhgAiD2vC8A7LpIlm0e3ZB7MdWhVB2Su738wAAABnBE1ZSURScwY3JaQ6MjMAxQJHjCL7tOksLQAAABIAAAABMEQCIBx57YgwqEbSjT2rz/fn7zwYdcXOrVQLGUSQdL9qVWXHAiAfFztT6QfEH4fS+r9SxZ2ytzxN/xowlZgnujjNohPMpQAAAGYDTVlMwRDo1Nf0oxmhqPFsqUs6/edmVZUAAAASAAAAATBEAiA46XcPTWwnIw3u6kxjayygBKOo99YA9kKIwL7i11NmyAIgaztu8aZqpAS2F2E/BWMOAcKo5f3bn9RNQMxPP1SERZAAAABmA01ZQl1g2NfvbTfhbrq8Mk3jvlfxNeC8AAAAEgAAAAEwRAIgPJpf3gnSz/wwWOcSQFDe3+XObpojCSYTd4SK54g6kzUCIC46Qxjr1dglFrNCwh5XwCdzbJAKLqFLK2AbmbIKSk4VAAAAZwNNSVStjdTHJd4dMbno+NFGCJ6dxoggkwAAAAYAAAABMEUCIQDWaTlVaiIwu7eFBfa7DNWqHm4JSUDHfe3ffjgGw8ZpzgIgDHK+s8TKtZg8g/vst4PwD4Y0+cp1+qx4Q6NfyVKr7ysAAABnA01ZT1CYfmvkBeusaR+JiDBFYuXvw7LqAAAAEgAAAAEwRQIhAI6xaOGFBKC3Q9q1zrL2MI/oWAAizXgx35zH5juBMtvBAiAF6caErnYyHwjwpsWtv9hfsfM6WPP3O0EyJLwDEt8wwAAAAGcDTUNQIYbss58bdlun148cQ8Lp1/wMHsoAAAASAAAAATBFAiEAipF4LH7C+dvtABmxFHBaT9/mU9KhwMhK6M1TZvQtjrkCIGJHVDJ+VSIm/7rqJ16hMq1z76lS8DkUC4dsC0JqFlcAAAAAZwNNWUT36YN4FgkBIwfyUU9j1SbYPST0ZgAAABAAAAABMEUCIQDVpKm0YhbEwgICiEF2PZ87YScZ+VAO4RU/ASzj3JDAnQIgU3HSjMEmnTq3Q+2siiFycBNQe/uEP46dNS2lQoMabgMAAABnA01MUOIgIPR7c3jf7c7dLIHUE3wi/hFSAAAAEgAAAAEwRQIhAIK2vOhMZHyWZCEQyRArOxeDxtBviYG8+tDhz5hHI5LtAiATMWa8s668sIIYF2uwtUy4Xe91bEro+4lKnwZNRyyf5QAAAGgETVlTVEz4nKBq2Ze8cy3Idu0qfyap5/NhAAAAEgAAAAEwRQIhAPfjd/z2VbyrNE16u8DKp1papQvEyjabfVky7N6wvw7rAiBP8YdPgX0+2Adv+zjHPDqGpB8lv/bcuwqtzILlrscEawAAAGgETVlTVKZFJkxWA+lsOwsHjNq2hzN5SwpxAAAACAAAAAEwRQIhAIx5wKQxv2+ig0x3ge7liPtYDhi+v3/b8HsEk93pq4IoAiAu5moJdssCAL+sVIUprsX+MiFOWoJ7wo55hVMwVMeb1AAAAGgFdUFYSUVoscrbjVqwyX/p2fvg62Cssyn+PwAAABIAAAABMEQCIBRM0+i1nBsay4fNyX/LCCcSYcwPqtIWmBe3BJ4wpqipAiBsScCB4Jo4AjBFDKaaI6YCinZNGAMjEO6d5W68L9Xo0QAAAGYDTVlDuDI8+vsObMYM4zLxGB1W6Rug2LoAAAASAAAAATBEAiAuFqJZmSh//AIw9CS55RykFRg6sJVkSQwF6CE+OP/hCgIgH4zvqyHXWPxkvhibydBDOE4PJozEh3OFqrR4giwph3wAAABoBE1ZVEihLX5TGfW0NHbvGdFWnhAJfKzf4gAAABIAAAABMEUCIQDHJfwU3rGVMKi7s/0iVCxDEXDFQZ3RHNwouOSpm9EYvgIgMUXizNV2z+JB1vLfZePpsdMBeHfbLMFbWUVP/4c8mLcAAABnBE1ZVEi6Qd3wa3/9idEme1qTv+8kJOsgAwAAABIAAAABMEQCIDogcuG4ozg5SDVUgjlFwQM+ZCYeTZXrAX7ZwscwhJjQAiB01i4J2M23Yeqmwma2hiU9J1XKH+y02Tn1DHgXSbTRIQAAAGgEV0lTSBsiwyzZNsuXwoxWkKBpWoKr9ojmAAAAEgAAAAEwRQIhAKuGNHUUbrc7Inh5jASKnTqf/IbK47SSoXL90BLhBgXqAiBPgyVm6D1HQoHYs3xeQN8gHK7T1bwBrR8FpEsaaJRi5QAAAGcDTVlYISn/YAC5WpcyNgILzSsgBrDY4BkAAAASAAAAATBFAiEAp2PHGqV7gTK5+7+MxIHpYWbF5r8VziE22SB6/hp8DlMCIFxdAlnFTwiGUb8Hx9yJ7L9kEqZiUWOuwdt6b7jbBh3XAAAAaAVNWU9CVXXRLk+R33Ifr8rkxs0dUoA4E3CsAAAACQAAAAEwRAIga4fU5gRLSv1vkrL6KaF6hr3tHsv6D2PgzI199KyiYSICIBuLBjbEBCXvLbPaokHJgj5ar4ZWThc7EzkEYg/OuMK9AAAAaAVOM1JEejLIaPYxjWM0siUPMj2RS8Ijnk7uAAAAEgAAAAEwRAIgUE+GycjWtGDiGroC+hY7V1UKMXMrD74+8j1ukYgDZWYCIAW4CvKb/z52lkqdroVg4YFRwT1kjjyxbtKKFqt14SddAAAAaAVOQUJPWGMLx90Kv8LRliic4J25R90sr658AAAAEgAAAAEwRAIgT/yT5/kqETHOasGBfydYlLeEZT0ISmzwvM3UtIEybmMCIGgMFrCp8UUfemZ8vUX6bzC+TnhN121XSMREGK1AhyDCAAAAZwNOR0Ny3Utr2FKjqhcr5NbFptvsWIzxMQAAABIAAAABMEUCIQCr67q4ukS5rGioWZ9FnUvDuuUuh7Nu/L4Qih1x8MrxEQIgO4pZoG3uUvxFsjsUeY9FvJVoaR33kkTDL14AYIkWzvMAAABmA05JSXyBVZCc04XxIKVu+Qco3VD5zL5SAAAADwAAAAEwRAIgLJtV6fx10B5f1KlWf9r4Cs+oshtjJ2t9SSmSCMbx0nECIBFL+XpKI7JwYpCkfAtapOL6ZSw7VSPl3iAHu3DqRDWSAAAAaAROQUtBLhA0juVj3sX+SD3lWNGUa3ozcsIAAAASAAAAATBFAiEA5voYaQ8XIUocFiuR0ulc4hYCFFmQXuanGgz9MG8iIrkCICIykJ3cE61l6TIqQRxcNY1U/agf5bmvDp4Ren084v5VAAAAaAROQUtB3ygvFw88MqycSfP1vh1o5a5ut0IAAAAIAAAAATBFAiEAvuWLonmY+76Dx5J8/QHoDUasb2QzndpaDYEnzk2yC9ECIAiI8eoY4+fSqg8hFe7DFjZJWYmttjX7jdxSEUE9s9YcAAAAZgNOQU0FmEAGcHWF9mRl6KZQU0H0a2T6egAAABIAAAABMEQCIF2Co5zNk+RaAvH29gEiHTiSLUw9AJemEaR2Hpkc57TwAiAC21FW3Xm5Qx0J0RB29EUn2fafQiLZrwuNQ5qrIFdOggAAAGYDTkNUipxN/oudiWKzHk4W+DIcRNSOJG4AAAASAAAAATBEAiA4DV/3HEXgr4RqS+ceqEj6DGYcufBGMAw6F1vi1ub/ggIgO2+A8UsqFh19RexrbT7/kr4qZV7KFbSDDbsECGc8n5oAAABnBE5BTUkve2GJk8w4SNbH7ZzdXoNeT+IrmAAAABIAAAABMEQCICbwAXkyTq9k9jT1HsX8JdhC36f2PE1tT+z66kiBJ1kiAiAMdZRspZHEYTqqAUfAAau8KD6zJcUet+G3QiCJltDK5wAAAGcDTkFDjYDeingZg5Yynfp2mtVNJL+Q56oAAAASAAAAATBFAiEA+aPuoZfVpmRS1x+IOf5UmQ3u/YEibkO9xaSkfkhvCVMCIC7LC4e2BtgrhnnLV0llLTQbGMoAN/T3oSVeerIlyH0kAAAAZwROQU5K/+Au5Mae3xs0D8rWT71rN6e54mUAAAAIAAAAATBEAiAsRWayA0RxAaD8QhY6+pR5XQZ9E5OxfTMFqhpaQ3ooDgIgMb+vAbwnbpSia342jZKP3leBKmrJdbRyw+niGXR/KMcAAABmA05BTrOTzQQa/BrKTDgMZjeT/ix7igISAAAAEgAAAAEwRAIgXb2zFHDlSsJQcJrE2mAEo5gISrlqZY7i+i79TMJisrECIE4QPV3QXjFSA/q/Ge60wrZkE27HunqbpaS8SKR50phUAAAAaAROQU9TSmFbtxZiEMziDmZCpvj7XU0ERJYAAAASAAAAATBFAiEAupZcwHtJ30a32TlyyyVyn8TcjNoWk14CpaZrGb/BJ8QCIBRxoSxhmDsWLhSiQ7psEuC7fcjhAgHDRWdFJiV4dC5nAAAAZwNOUFgoteEszlHxVZSwuR1bWtqnD2hKAgAAAAIAAAABMEUCIQDfrO4XWNQpPAjrRBu7mo/NhH/tCjIPbaoS/i+MlS6HuQIgIgC0wEu7msjSrZZFj8VK2M2hYksUoN0KXrzIzQGnJ6cAAABnBE5BV0F9UppbPEESZ2Cg+jwallLYp6B3kwAAABIAAAABMEQCIHWbVblGX7uB1cebPTcRdVUXIDTwofn1ARS2ugyZUfxsAiAlHo1XwXj4KMzoHaLY4nxrYJWeeI123ksPiWV37Tt9cwAAAGcDTkVY4twHBSSm4wXdtk2FE9xES2oeyEUAAAAIAAAAATBFAiEA/1LBis8HcFKfbv/MCPwR+wXX6wZhJXnsiVZSpAIvBaQCIH7fknGHofQuiswx0Ckfpv+ezQUHjg7iwsrhrNN5JmY2AAAAZgNOQVSQ1GqWNrlz8YGGVB0bBO02IaScsAAAABIAAAABMEQCIGBhzM6zmiFJmYOac4hxxYxdf2/rnH8AioUUo38Tr1ZwAiAwchgImXK9WkjR/cpLbNTryoebq9qKpU/0qEJIrjuIFgAAAGYDTkFU7Leam3VZFoF0xBsVOZe8Ritt/k4AAAASAAAAATBEAiBRaBO2qkg7XCkPNBrjcEoXgBRrK5SnRTCDTujcK1y85AIgSsC85Gex89hG5SuQz+8ibXhZDI9pacR8q+UqVFJrhDUAAABoBE5BVklYgEc2XfW6WJ+SNgSqwj1nNVXGIwAAABIAAAABMEUCIQDEjVXL6qPYuHDMcMgNdL5SgmE8WL6rbu3lmq7vl/IZVAIgChds4ck0a94/lniwq9kkmWvVGkqfMjlIiitPoKSaaEYAAABoBE5DRFTgyLKY20z/4F0b6guxukFFIrM8GwAAABIAAAABMEUCIQDAu5UYAX9jX/DYoKUytTbIL6ugdgCQG/1UTaNKsBwfQgIgSXkfDjM+QiWMrnPBr5tSthR1MwtqMl3LWXYsk59nBaoAAABnA05EWBlm1xilZVZujiAnkmWNe1/07ORpAAAAEgAAAAEwRQIhALAawK03r4Vo/YSw2Ojz1HK0pe1dYzlUJ4ZSgqoOMdPRAiBNXBWiezJ5uzFiDQn1qe4GFDiz7+AZ3X5ov/48ohQ1FgAAAGcDTkRObsR6F4qdUNTsRoMAPYMk8ZyjU4IAAAASAAAAATBFAiEA0eho1gQiTrE4r342oLSpzuy3UmeeCGnWr7zZ6B4rYpsCIHf50q0lODwUG3NZrnuLwczQ3795AD6E0vfZ6WAxaDrMAAAAZwNQQUTqfMdl68lMSAXjv/KNfkrkjQZGigAAABIAAAABMEUCIQC5w9QxZ4MLMqfbQ3cIk04L4bytbOfAr6Avgwlwyf70bgIgLoFrnORxpoLSib2tFpcrdD8WZj65UfYjwqKKQ5sbnYYAAABnA05BU11l2XGJXtxDj0ZcF9tpkmmKUjGNAAAAEgAAAAEwRQIhAPBuo2wuHgfq+GSD5uStz/DLT8IDdjc3Xobp3kQrUtGoAiAvdwHCQBWPfKR94eAHVTZW23c2K/afgN2nutCwxJpz1wAAAGgETkJBSRf4r7Y9/NzJDr5uhPBgzDBqmCV9AAAAEgAAAAEwRQIhAOSqd2kHzITAnwAqwYclwqCmwdetOSHqUhwd4+gmSGmkAiANP32bIrJB+3aXJxfJ8FlU/Ohw6KkgtVJ7h01vwhReCwAAAGYDTkNUnkajj12qvoaD4QeTsGdJ7vfXM9EAAAASAAAAATBEAiBxOG54Nl07Fe5wO8Zgl03W9oCDEwZqPXe/cRPLhjc9HwIgCVHHpODmE7OmWB97RffWUR+u4tf2VUa7M6IxbOr7UYwAAABnA05DQ5NEs4Ox1Ztc40aLI02rQ8cZC6c1AAAAEgAAAAEwRQIhAKq8pJd4lJ0bdSo8MBqqHWcARm5jpH1wja9kzkEqSZy/AiBgXPjJkqGUghyvdXaDYl/HuXHO11xpfHUfo0ghUATpCwAAAGgETkVFT9hEYjb6lbm1+f0Pjn3xqUSCPGg9AAAAEgAAAAEwRQIhAMqA1bDZcT8svLdKwQ65+CzPlksvzq8aAMVwTpuhk+EKAiAX+uNXdXXlzTQK4fq5XXLa4A3Av2J7TlWSDS2iZ8uADQAAAGcDTlZBOPfNQ2YtHP9Mw8LEt0n3z+0dHbMAAAASAAAAATBFAiEApmcnih66bsUjjWBM9azmm2c7wQYbRIAuD5ZCGJBccFsCICAKU0FhFDu31LeXOalP/NkyNYaKTi4LdxW7q40fR9ekAAAAZgNOSFSENC6TJ5f8YoFBifAfD7BfUlGXCAAAABIAAAABMEQCIDZHwzB+2uScYZL5agF+URlJ63LIinsN76eBKwVDCEUWAiA2ZlItxvI3qTMnD5+TnjX17g9VVeWz7yIZbAcvArEabgAAAGcETkVNT5V7KPk7DgFVfiHmxWSrJt3C0Y7FAAAAEgAAAAEwRAIgE4R/rJLy+cANCEnVdlTW689hqDxDQMCZ7jSs28W6tJ8CIFUPPrd3y7VoM8l18Nj30fSGuTYfDDI3hvCTtqCVN4JRAAAAZgNORU9farFgIGvGpdZjyl0PI32CxXInKwAAABIAAAABMEQCIDSD4Icdvum3kqjbWzxyaD294Rsvz5P5P/M6keUWiRO2AiADBwEXxk5fPqFYFWTdkbRB/7DK7hrfDJ2quiEWsviZ7gAAAGYDTkNS21w8RuKLU6OcJVqjmkEd1k5f7ZwAAAASAAAAATBEAiAvEbaKH/vK3+lLdHLoz3pjkLeDCMCXXQcq2C4oXdjYTAIgKxbJJePfWClZ+vPjVSH2KBSw36JC27HS8F9SRbGT+fsAAABnBEVOVlSM1uKdNobSTTwgGM7lRiHqD4kxOwAAABIAAAABMEQCIEyRPMmwZIrFTBqVTHQgR/E3VyDWhUBj7uJbOKEhSIBWAiAje9DA6Pp+YWrFCfBhU0Vrn/MnVorkV4DutCAKqVsR0gAAAGcDQ0tCwkSkvJ/JqnBS7q0xQIvis7VS388AAAASAAAAATBFAiEA1deg3vj+6EKQ7t1lEYebn0VS7whtJH3I/+rwrFQBSpYCIAxG7VwQ0K4US4JcbwH1HK7RHIISZwyPz8mqnKGxsPGEAAAAZwRORVNUBKvtogGFCsASQWHwN+/XDHTdx0wAAAASAAAAATBEAiAhu0oA6b4102JPAqoU6IW7+I/fHyNd+e2wm6V+Z+RtLgIgPnoWRftOSnFCOwwHqkx0QCceQzOmZKBovYJkCEAkQnEAAABnA0VHR2XM1ywIE85vJwNZO2MyAqDzymoMAAAAEgAAAAEwRQIhAPTFo8wqinhZnuef+zDXZlDKMgESrVeiynPkLEwPjL08AiARBZFWUDXQzFt/Um5nC98OgMfk95RjSOUS6QnUyWB49gAAAGcDTlRLXU1XzQb6f+meJv3EgbRo938FBzwAAAASAAAAATBFAiEA0h6Z7wZwvLXR32UA2CvnHfZtGitTldmW8uwdKeyI49QCIFZUNJO5H5iUEXJ54R+d52j6DXh2uKPZ5zNnSThCqJSiAAAAaQZMSVFVSUSsI4Xhg9kwHdXiuwjakyy/mADcnAAAABIAAAABMEQCIA+sLXab4ul2v6oexT5ddXmVVoQWvWfzckW0pigsaSFUAiBDhEPmQ22uEhg4/Vetqu3r66kM+aafLR0tJTgHYgNR2wAAAGgFTlRWUkv8DWzzPji858p9icDikidAMbcVegAAABIAAAABMEQCIDM3hIrvITt/mEcovN2ejEBpEuBuKGYn9diBEt6DnExRAiBG9YhQlRyXuW2MyxIPbLgyFahqSc1LNY2JDoowlnPhqAAAAGgETlRXSyIzeZ7iaD113++svNKibHjTS0cNAAAAEgAAAAEwRQIhAMd34dhStaEevcSXXA6V6Qfv3KqNpcrSt/g2oqjbWfiUAiAaoFs7inN+NH2NevTd+ZK8PfuJby25bCJVINpHTY9XAgAAAGYDTkVVqCPmciAGr+mekcMP9SlQUv5rjjIAAAASAAAAATBEAiBCSC4g4rXVNA9uakeOiFHqWZyg6BI4Uh8ff7RoPFjfAwIgYBzsMjuWFrBVTbyWo47f+voS4rPjNHCu83+/KmULe7YAAABnA05SUDkYxC8U8usRaDZfkR9j5UDlowa1AAAACAAAAAEwRQIhAIfxC+q+Fk2fD0No1slUBdnuIU29JwoDCKMl3aiY5w18AiA593aqvChkZXeCa+G4XzfRG99jaXWeiOUX08DOC6CAogAAAGYDTkNDXUjyk7rtJHotAYkFi6N6oji9RyUAAAASAAAAATBEAiB6bg3CCCaCSLp6jUrRmr9PgyshMh2qqc1csw0HmwYbNgIgD29LnU5DQOBiZsT+viiJCljuz0ScqO0d9hkLu40uUggAAABnA05US2m+q0A0OCU/E7bpLbkff7hJJYJjAAAAEgAAAAEwRQIhAM4noxlz10wurHyCep+uDqGJe8toWeKVVfvWuaPCB7HtAiBz+q2b9YVI5fuVTBNKloZrWFB1TGV9aoYBfBZTaxGOHQAAAGcETlNCVJ151bYd5Z2ILOkBJbGPdK9lCsuTAAAABgAAAAEwRAIgC02YxEZ1TrgU+YX2nP2zJVXdGh0d1u7X2W2cl49ZGxMCID8BSX9kEDnz85HnUxCrXhuIR4hjt9C7EXjppq8nq6OqAAAAZwRVU0ROZ0xq2S/QgOQASyMStF95ahktJ6AAAAASAAAAATBEAiBGMmROJp4+hH3oog8S/LLx99nO3tRkVaXE6xUZOrlrwQIgWr5HYXJj1raTILyvhS8jarMGFElzfXoe2HonC2e3iMMAAABnA05EQ6VN3Hs8zn/IseP6AlbQ24DSwQlwAAAAEgAAAAEwRQIhAKfuUpca2yhCT3gWY7xJvZSB+ql47VOpyNW6WKgA8C2aAiA2w668BbBKm88x08dtbJFsTg+BYbEg+nF2rB5xWU7igQAAAGcDTlNTTjvd1Gir/GyIvCXapdiUOAztW8gAAAASAAAAATBFAiEAwPYl6nVXedE5SNyDJBVdNPMrcKlk+UZ2l9OOBal3CB8CIGwj9LKiGSwEyt2bYUKFfDBAiIzkInvN+FoHqYFu7O0rAAAAaQZORVdJTlUZl4MLW+tyP1CJu4/Dh2bUGaBETQAAAAkAAAABMEQCIAjIqZJr6W2pI5llSY+8Yh0/vfGrCPlkMA+NXvECIqYNAiBYiUeldFM1mwjbMhUPx0hGvJ5eCI6XAjDaZ/3DfLymmAAAAGgFU1RBVEUAwpmciyrfSryDXMYyCVM5c3GOsQAAABIAAAABMEQCIEnXe3KwJZz7YbUVqSfCWMtA9+ckkGSRBFZt8OhMxOoEAiBgT3EDhgDC1AE8JweMOsU34SaQwOt3ssdWAp9TUOzszAAAAGYDTllCeYqQVamJE4Nbv7RaC7wglDjc/ZcAAAASAAAAATBEAiA0Mg9RzEHGbSDIVrXCWyNn3ijiPxThKFBH550jUHQp6wIgFo7k3MP/qtyTrqpLcdQOTjKHnToJlCzO0Bq0h3fh2OIAAABnBE5FV0KBSWSxvOryTiYpbQMerfE0ospBBQAAAAAAAAABMEQCIEuWQaiH8shWFJtn8WDc3gOUinHpghbZ7kJxsdCDZBB6AiAqphYiE7nWeZFtP8G2NQ+m8gCB958j7RaLkPX8ywbwbgAAAGYDTkxESOI00t3LMteAlxwN9/3eJbuhkt4AAAASAAAAATBEAiApOjitkM5LMudmylDtKWPAa47iDEkk3q/5EcoRbxk9OgIgC5vUtEhF68Ntq1GKbCrnMiLLYkXLsZ1SPkg0G0vxj2MAAABnA05XQ5aPb4mKbfk3/BhZsyOsLxRkPj/tAAAAEgAAAAEwRQIhAOmoglaifc6Kb2+dq0jaTV+AKdMgMZMMdnAvjzyR5gyuAiA2+vHJRSQoJPmFp1gIuMP53ai9tJWSqKSHydwJfnC9QQAAAGoGTkVXVE9Orpy+br9ypRyfzqODBIVhRIYxj9QAAAASAAAAATBFAiEAyW0XROg6cg6EED9PGkQM7Ni8kLsP15WXcY22fqtWt/gCIFFL/XKm+uQQsYOgd9p+CydhjKMS+Im4NPgvGWwmKv3XAAAAZgNOeENF5C1lnZ+UZs1d9iJQYDMUWpuJvAAAAAMAAAABMEQCIFpUoVVvGdhjFaw7ppyaMoFdfaOuTF/X8neDjG+AUgXrAiBvajIzz6M9x70zCucr4Ux+Ei3c3wMew3q6Z16G+oG7ugAAAGcETkVYT7YhMuNabBPuHuD4TcXUC62NgVIGAAAAEgAAAAEwRAIgdJBtIxwc6diS/bG1eV+eOKJ9ddIFQhs9XOgDp6IIhNQCIAQ2lj9Xm5FDGu1XOepiZlDe5AVO3ieYD3TPS2KlrdB9AAAAZwRORVhUN31VKRTnoQS8IrTztiaN3GlhW+cAAAASAAAAATBEAiAezGA0Z6RGCBZVYeC8wYp0Zj4ei8uOli9drvn+mU4sHwIgMxXvR6YobyfALG3G04Wlg4r6OjdJc7PtpnIPRwd9gY8AAABnA05HTe0NV0epqwOnX7/sMijNVYSCRbddAAAABgAAAAEwRQIhAPtdIR83OkztxUroQwr7BphkaJv3MxWNpyGBnG9eAqNHAiB+Lu7WSAFalEanEhUuDF2Nt03Kg0EVSBKiJ8jjPrHPiwAAAGcDTlhMaDmsXqgIJoi3Bsdz1dKv19UD/dQAAAAAAAAAATBFAiEAhaylC5rd27Qfa+jz7toMjHy9EoHtLc/ltOdd79ctJW0CIBEESDZv+jtDbYuiwkD6Jdq+18aqfWCvlCeLE8Jjgfb4AAAAZgNOWE3XxJzufpGIzKatj/JkwdouadTPOwAAABIAAAABMEQCIBZ17cWwLw52kMJqCoNKXvVSOEQg/1KXlk9xOJ867NMCAiA5pAlbxfOqKyyG5/fvj3NfsYLxHcmdD5+eFvetCEkcdgAAAGgFTkVYWE8nioO2TD4+ETn46KUtljYMo8aaPQAAABIAAAABMEQCIG9fZxXDwtzmJCSzOhn0MnMOupupgxH562XU7SCCCP5dAiAuWdXQK/cMCCULo+1l6ekVgTbt2W7CPHA2YWPc9XPjIgAAAGgETkZUSeX+6sCdNrGLP6dX5c8/jaa44n9MAAAAEgAAAAEwRQIhAIDoJKOhetp9K42B1ZrSDfI5XtWggzu08pKSj33YlmUYAiA1DPgUkK45YPSKMDF5Rl84VmskF3LbaHcQ6RVZv5fgqwAAAGcETkZUUGi7gbP2f3qrX9E5DssLjhqAbyRlAAAAEgAAAAEwRAIgCsELRQJ+30Il8GdmxVvyiyXHps8tAuJ82b1pLPIRDxsCIHODVpiXv5xbkZCPsC1csLkbCDKK+BLU4yChBLNOkcbcAAAAZgNORlTLjRJg+ckqOlRdQJRmKA/9169wQgAAABIAAAABMEQCIG1XW1qpAJ8FlTXjzeNtotDti/SW7yOHqS8ck7ZGGQQ+AiB0UyfH3/GYdBhvooebGzRRukXzzGhgAg45heI1YIH20wAAAGkFUkVIQUJsk8g402JlZDDYHhUM2+m2m6jvxAAAABIAAAABMEUCIQC6md2VQMhUHl2+0vLkFDa22d7CbVkz29/pWNl0ecIRLgIgfF+0bkZTfciS/MWzlNMB6Y74WZ/r6LO7OxNwRJUMN3sAAABnBE5GVFMIA3A2RRx2hGU2lDHaXGca2bN9vAAAABIAAAABMEQCIBAN2sIP3ygyUm9ZQtqZG3XTjh5lwdUCQIADpWKTm4c5AiB4ZpMVUpvGquVKvfkW9AW5FUWi6TZ+KFGxM1yu2gxV8wAAAGcDV0FSTXXZ43ZnotRnfsPXS92QSTJq2NYAAAASAAAAATBFAiEAq8WLFVQc9zQB/710A5u9/LXmUe7VmgPQmw0z3OxVIwQCIHlSWcaEt6WRDZ5E7n50+y8c9rvIG5RRBNo6tQklmw99AAAAZwRXUkxE1dhvyNXA6hrBrF36tuUpyZZ6RekAAAASAAAAATBEAiBCBxDpOf5LZP6GOoMnZhQIn0HhG0nC7jv4baH+qDOxUwIgaH+smSE8G22EUwP47PCcFEOL/Be9oYdIVPUrZN+Ii1gAAABnBE5GVEEYR+WdnC8wx/4DR7o+U9oa6Kfw6AAAABIAAAABMEQCIBfv1TyOaQis1R/Z8e/p9fCJ5VxE1JNtzebOW9li0tsiAiBkoYIzkhE90ZzbJH6H5zvV8ueSuCUF51/pyZlUuFHtUAAAAGgFTkZURlm/b/Sf/T0QQwLvCrDxD1qEMkwJHAAAABIAAAABMEQCIBoHLGrwYgHs3FaFmI8it0jpGpK2/h7d3XIi0IJxsm79AiBiF9ZuaKXfUjQIhmDvmNsrEHJ7Ocoh1x1vthTOUsxJuAAAAGYCTjGsvYJjlBic8mI8bfmKGLQfyP/BbQAAABIAAAABMEUCIQCXaxEasxPR4HeLTyhDt/YR7IDBxZQ8wF0svKtm4uzPAAIge+kZ6+MxFcOgNqFmsW96Hs9I9gOjCI4FRZgcwmeUHDEAAABoBExPT1R7PTbrYG+HOnWmq2j4yZmEiwT5NQAAABIAAAABMEUCIQDJIsvoQ2Zmu9mFhVqZTTypbAyt2dwpcgi8LbIklPX9SgIga3aRBhvso8nYouZ96UkvqJ6SYX4MpQnwu+kHNxdLWCgAAABoBE5GVFiH1z6RbXBXlFybzYzdlOQqb0f3dgAAABIAAAABMEUCIQDZvmUt4Gde/BF524W4mt/IlCC0XDi3P8zirc+IuzuyxQIgXwoiGq1iUqXhxRXCGIp7TtXL6rpXQ96IEZ7mD7f7uaUAAABnBE5GWEMtOexNpUMp0o0jC0lz9aoniGw67gAAABIAAAABMEQCICV4PypAd1wCksATAqvx5BseP/HcNhn5cQOlJAY4P5XpAiBS2gE4T6Re5bEZMNtvENPBUh04EAt/jTWG4PXudIqAjQAAAGYDTkhDYpR/9DYm6iZCe+WuTH3QO08cqHIAAAAIAAAAATBEAiA+74gqzJqCmOJVYG5MVcUwRuXFJjVszFamX6TIQml0wQIgKOOA0zZ+uUnv/3anewsG5Xkdq+Zp0owz6lhcg6yPcJ4AAABnBE5JQVj3GYJ2LRQfhnnrlE+uyM7EFfteIwAAABIAAAABMEQCIBaDn7OtkcZRRxYOrwyauy6mpgP5nqwxNX/+hwR9L93HAiACvw5M7K8TXrbMw03qX4yqCTSyNqgR3U5qmtZt8O33MQAAAGcETklDRVP2S+mdoA/sIk6vn4ziASFJ0vyIAAAAEgAAAAEwRAIgG2zce00iI7DqtSN4Yb6t+h/t/7t4sVvVUr9iN1+xveACIAiFLaX2QpNruu99Pl2jK4b7hFY2IdG9RJbSpijI2Z6fAAAAaQZOSUNLRUzEiV+UNA8w/BJtEUnWy9Sl/qUIkAAAABIAAAABMEQCIAuyGktavjIX5rvjnXvVtBBrhXoYTgO3mv03JcZsd4c5AiBXN0LoqCFnZXDpalCrM/lBD1gocMQEabRG7rF2EvBV4wAAAGkFTkxJRkUZUasIgUHmmjcTo1Gw1VujrNoZLAAAAAgAAAABMEUCIQDbLcO6KIVemVuah4opSfEGFQRUllxCGFV0wCnJ4Sc0swIgbaJ4zakoTf66hC5qa3JUVuKguOqMQUS6rBBjzxswOsEAAABpBU5JSUZJhS5UJ8hqO0bdJeX+AnuxX1PEvLgAAAAPAAAAATBFAiEAqGYracbFqfGB3JIOizuuO9lva4DLJ7l0gskpvvk2RtoCIF9NnelVPgYUcxVsnx2y2cSvRpNTqvr4g8Kcx/FO5sV2AAAAZgNOQlXrWDQ7NsdSjyPKrmOhUCQCQTEASQAAABIAAAABMEQCICifwhuPCwEFIOmxTl5o2GXfX0MDE1uqcHydhJQLhWaHAiArf8lnoUcTKZilwHEObmm/iNe0CeKOJeKXjezFYlL42wAAAGgER05CVWOa6PPu0YaQv0USKdFJU6WlYntyAAAAEgAAAAEwRQIhAJDuApaEGqagc4IV2YsIIYvPgmkSNjosNIg1C7B38uNiAiBjZnwtTBIFwJIQgyASrwVQXIbXGH/EW+zovOaqAMeUwwAAAGcDTkVUz7mGN7yuQ8EzI+qhcxztK3FpYv0AAAASAAAAATBFAiEAjG9Mha8qhlh049EYrbnyi650o/vs3F9txtRU9/q7NcECIHxBVVCVmfFU3x/lWtZz4Orqmvbch2PPaVItXUMQODEhAAAAaQVOSU1GQeJlF6mWcplFPT8bSKoAXmEn5nIQAAAAEgAAAAEwRQIhAI8deQr6I7ljrrkRQ8pGLIEJryeqZ3GdwfAnn0qknAOgAiAfUyPm5QgPDVIjhWQXqKJ/uDigiGpK580LST+tY8rYVwAAAGYDTkJDnxlWF/qPutlUDF0ROpmgoBcqrtwAAAASAAAAATBEAiByAAE0MVBWEuIV5M3+8y34VbpwvDrcrAUTohRJhFzV2AIgTS+5GMtO+k6rlZNH+5gdrBaL267wUObi8DDNzoRfV8cAAABoBFZBTkF5C68MkUiYxiFjph8VBjfUvRgGlwAAABIAAAABMEUCIQCDBPamWw+ilo7ld1XTIx3zpX5MSCz9H8Yysk9dqPL6/QIgCoRLqbuNF0huRFu8EFpbIa3HaCayzFbKAb71XpiJhxUAAABnBE5JVFj9sV5eZ5m+cnmLHM+uy/GGv3OgxAAAAAgAAAABMEQCIHTLAAMzqr1nlpVoT2DsHFSMkioF9b2C6+rArXkqPMebAiAcSIpg3tft7VAFKNH+tjQTU/SoD7F6FzTE1RxmWwygQwAAAGgFTktDTEPRtiTwek2bPjdG4zy1j0LfB5tURAAAABIAAAABMEQCIGwpfLRCFKpToJb4wKlwSKAvBo6BEQBQL0dM0v2JnoE5AiAOTMs5pLOH4DF/Vx0JGP4r/ZQPUDOfeA3baidbWibvzAAAAGcDTktOXPBHFrogEn8eIpet3PS1A1AAyesAAAASAAAAATBFAiEAva/AYg7X2BS7FodLcdYIU+/dbwKrfmvCcJ3DDmXzRL0CIF6wRQs1EjZbjsYeIF7k+/6GEuYk2yQv93wqhy32VJwnAAAAZwNOTVIXduHyb5ixpd+c00eVOibdPLRmcQAAABIAAAABMEUCIQDBioB9fP843gf+BErKEz7rtG8Ll9W+yortJalCMOpLcgIgflahg01Q1FSKvrScqPcfv8YB3MwHFSV6jwYt33OKj9gAAABnA05OQrZqITGmuEDdAgFR+Acjyu1gPvtRAAAAEgAAAAEwRQIhAOfxJpcb5EnCvDc3DA3CoANmHJxkz5xD1k8Hz5zjvrcdAiB0fYcmVaPaDthQ4S+Mi6z6TT/t5TnPOY3RijzSFL9HxQAAAGcETk9CU/T66kVVdTVNJpm8IJsKZcqZ9pmCAAAAEgAAAAEwRAIgXXRK2Dg7XsFdlT5RO2ySls9A4+WRCR9PG8QbH3OVA8ECIHv0lZcKkfnbCE1t+m2LPL4tMUEmzSr50MjvrEVyVZvrAAAAaQZuVHJ1bXBE6oSoVhb46c1xn8hD3jHYUq1yQAAAAA8AAAABMEQCIAunXBYmPfmfaRfH71bPKVPpLqTwrRTcis9C5vlCQrR7AiAmbikJGHRDCURynBxR14lm+vgcQCDrvQhqHvGXWmrrAgAAAGYDTk9BD9OCIHKtABqsHJCgnZUG8JfyRFgAAAAJAAAAATBEAiBnjQ1krA/t2Jj+cO3k8USiqWimfqsLl7dpYsW7DG7E2AIgLHpjZyCDqx4f7t07cAG0PCNyRRGZIzOWVt9pLzoVZ7QAAABoBU5PQUhQQbPxjGOE3Jo5wzr+ymDZuOYeqp8AAAASAAAAATBEAiBiSwfJ8p3y/UFspvufH/r+ZCZIl1T5C+jJNH/1sQL6RQIgH1wo8uMHqf3IykByL2+e2DSie3cBqaIxn6tHBIiKhhEAAABoBE5PQUhYpIhBgtnoNVl/QF5fJYKQ5GrnwgAAABIAAAABMEUCIQC7lBPoEYeP7kHMyEx7+89Z3etynBxfRYRzRi5TIZETWQIgV3n7Voz5+g6/qZQtTqiuq5ZOJqNORMjbUOGDYt662yoAAABoBUJSQUlO6jyxVnRajSgaX8F0GGyXby3QTC4AAAASAAAAATBEAiA2lxQN+5nJ7rKTmU7S8U5MEQF8xFUoZTrTAxWHZbyG9wIgerwuJ42/Ix5yI7cvAs0+uE+poZxAxRuhKp5/GX832vYAAABnBE5CTkeSdeg4alvdoWDA5iHppgZ7j9iOogAAABIAAAABMEQCIHR5InnPRJ+xqEAbg8jMn/ioJySLh2vZKblW5fMfWjKjAiBWqoPq3E0in+cP95b0jc04y5BJhqZJ/NmcowQA73QEbAAAAGgETk9ERUNdZk9y1vGU72fWO185NmUBh7ExAAAAEgAAAAEwRQIhAOg3FTERbQIEmxsPfyZg55SkK3vYV1h47oP1jZG8i5vVAiAWJ6JafTstC2+o5hloIMvRoBaK6fRkIz+p4QyYQdarLgAAAGcDTkRSc5djolhkCRmYH5umEK5lSSRVvlMAAAASAAAAATBFAiEAimOHK5brKztSTQHgWbzc5TrvU16yIk8ODi1QKjcY2qgCIFH7om2/6WcEpy42Gt9PBAEF1uw6VTEXjBWniYmKupJDAAAAZgNORFN0f1ZNJYYS7FxOJHQsX9QRC8vkawAAABIAAAABMEQCIBFygXjPoy7VdEJ0xl60B2+JHtmCTiL3lN4sLMDtFAjFAiAKGxOmiwuv1gqrcCNgkEgALArMuWe4wL9isD8dC5FHcwAAAGcETk9JQajIz7FBo7tZ/qHi6mt5tey817bKAAAAEgAAAAEwRAIgNSyUtf0OicumvRsI7sMCV1W4Y95B02XFnikut5uY5+kCICG2WZ1hAlxmp1Puf7exWiNIsrHsYmAFbxhMo1zwFErPAAAAaAROT0lB/IWBVMCyxKMyMEb7UFgR8RDr2lcAAAASAAAAATBFAiEAgYN24jWiiXozrnfLlbnCGtGCv4AsseeGhcmZJi/dNP0CIBKyslafTWjtzfF9m0hfLJt+XuQUT+VBKv3sqFSia7QXAAAAZwROT0laNhUXN7RQFyNOlXDPmhyslxOJU8IAAAASAAAAATBEAiBPzXz5xFqsE2SdfLXEyzqmDw8O2fhvZqo1zYmAEddhuQIgNX7oycMlmNptwrIScw0nUVJsMGNoqR+saTqrI86NZusAAABoBE5PS1UfxS8aut5FLdRnRHfUcRlRcAs9JwAAABIAAAABMEUCIQD3jeXHPhfqIK6g2YPVZ5T2SbFBIYa/cu24fm6nkjRuhgIgQGPiOxXUYmix3t3A2U0SjSFFfwChIjXmAnG4gihbXDwAAABnBE5MWUHO5AGf1B7NyLrp790gUQ9Lb6phlwAAABIAAAABMEQCIDNFtFwmEOGK4j2p0zGv/uYTxm0agitvrVi75Y5QpOoOAiAlNnizYP+VRri3gWThWo+lAt8ono1psCp5+7GW7GHYawAAAGgFbm9tYWRWhg2/lDfHEJ4bP2bADGjTPuEqUAAAAAIAAAABMEQCIH0WSourui6pwwd1A7dqIJqY/dhm7tBI6i2icL+0dSapAiAQcdDnk9qgsaJMJuTLp9MRymT9mzPEP6FcL0OUvkHtjQAAAGgEVE9LRZjdxyvQLUSPaMQibyYSLGbFvXEeAAAAEgAAAAEwRQIhAJdPGaxAc/9uvE5K4k9LPCAH84ctlvXclA0Hnx4DDyxFAiB+9JeZNPpiZb5EUzFBBnfBCQnCpp2/95HdKKf/KX7bLwAAAGcDTkZZHLuD681VLV6/gTHvjJzZ2bqzQrwAAAASAAAAATBFAiEAnNUlL9ngHSFsqzjLCSPGDuL8I3TrQV+IuSwwmG5WQWQCIAgTAH7yui0Es5j1q3a279TeHG8Y3ooOrn4TvXTecqGkAAAAaQUkTk9PQh/AXUgLHvEXWjESO/29Nr/uJWiJAAAAEgAAAAEwRQIhAKE+dndyQVOLMZYb+NVBErzsu1e/41m/xiyVgiI0lZwAAiA4Y8LnfV5fPcKtp/pAdN6Qb1b88/7H3CcvzH8fXAyRCAAAAGoGTk9PRExFQgq1SLGJEXF+18TMv0Y3HqdYRYwAAAASAAAAATBFAiEAvk5+ehpPzASrol0NNrgPlN9HSvuYdHyPXWrWZpBDa8UCIEQJ9+VPBqWoDlSZELJn45U3rJOoZxkALKWhzj2uYT00AAAAZwROT1JEbpcw7P++1D/YdqJkyYLiVO8FoN4AAAASAAAAATBEAiBJkRR7xSeqB5sGXpB6D6df/LzJR222g4BnSuAU7EIMCQIgSacGxDkOUIk+4qSc5BLMPSBWHTgngTJidD4iG3w4IRoAAABnA05PU3Bh7giWqywYZQeLbJFzH2eonqakAAAAEgAAAAEwRQIhAM4L1GD/ywIdpqtU0FspHqGbBB02h6s0x7EPZCP1/YxWAiAXUSf7IcAvM2rDK2jP2WtpgATpXGxsMnEwhuts5RVu0AAAAGgETlRSU+zPFaS1l2oTZbrtUpcFi0ykJ3fAAAAAEgAAAAEwRQIhAKZq/4X+RmAZeqne0ZflYr6giFZo6dRmP3fp6yP5/V+kAiA5Dx1Qp08gLskxJJImFtTkHh0WS1pgHBsi8m80y/GgAgAAAGgETk9URc/q6tSUfwcFoU7EKsPUQSnh7z7VAAAACAAAAAEwRQIhALkyyqwAyd8HqoSnAiKuDXHIvYw+rxMG1kyt4pmWUT2JAiA2lBReIJ394AKWHR2vyvutvutQUWsj5ktg05iwVA4EAwAAAGcDTk1U2aaAP0GgBsvzifIeVdemB53+jfMAAAASAAAAATBFAiEA1Kf56dLspE970rWaVQRkjgeWPaWVNZA74/LqN+r1sC0CIBoewRKPM0POkC41626j3rBzk6Z0+5zE4n2psY6bK/dHAAAAZwNOT1jsRvggfXZgEkVMQI3iELy8IkPnHAAAABIAAAABMEUCIQDOSW/+orM6GG88UaSa7LIbj27QcnUS4zlQm6w+Agl3ngIgShi6udEX27PBc56rUQ4zyM/EJQOJVZMLcZrgSlimxLIAAABoBE5QRVJM5rNivHeiSWbdqQePnO+Bs7iGpwAAABIAAAABMEUCIQDqvbzYc2x+0JJ6J3L5b5GFdSB2gl7ZtiNcTU+ibWYQmwIgWL/d0tz9E4RXFNXF+v5j2A8kITLXE7wetpdkvcmXsI4AAABoBU5zdXJlIJRcod9W0jf9QANtR+hmx9zNIRQAAAASAAAAATBEAiAOPSDRtu0ePFJuDU19QGbi7tbLsRSyCqziW1RcskOi5QIgMTZdyPsQRuNpzcE0Y5LPHef/Hzz0HzIKMDU5rlszblMAAABoBU4wMDMxB1GQxhMOoKOn5AgC8dd/Tqjzj+IAAAASAAAAATBEAiAbNFsV8BddmY7JSxQBe6YRitfog5x4yRqqhojfwspMzQIgQE4svjCfRkky/DcJn3ye/TJfC5VPiYtV9IFkvL1iASoAAABnBE5UT07PsVLluT/CyZBtT/QfyEB9+l6IUQAAABIAAAABMEQCIDt/ZJivumIfp8UO3aKu89KglXOPj7E0+kYbNTXCSA3BAiB0g0ukBK5+RsiO13MD03Y2HziOkQqs1do+l9hBk5JDLAAAAGkFbkNhc2iAmCbM6raMOHcmr5YnE7ZMtcs8ygAAABIAAAABMEUCIQDhsAeG1fb2Hg77lOJZflQIq0F+CehXVhwCXw6BsvYr7wIgBP2kT5LdvXPiZuqrC5OkpJzOzjCJ/MhbQwUrA8VUfSAAAABlAk5VT+gyE9VjCDMOwwKovWQfHQETpMwAAAASAAAAATBEAiBdCXOBX7Kbd0K+Bb+rIYYuiz1DG8p1aEM09bAdWl+exgIgfVsw35DHrfE4vXBmeHiJwcg0PargnPC4IuS6SqRxwAsAAABmA05VRyRe9H1NBQXs86xGP02B9Brejx/RAAAAEgAAAAEwRAIgMkBdhaCUs6JqTVnfpcXmsJBZP92q9Rephvzm4KisbOECICSVnND8y1l9Rwglg/sivD/+rTtjLgFKVX/VbrlQqi9QAAAAZwROVUxTuRMY81vbJi6UI7x8fCo6k92TySwAAAASAAAAATBEAiAIFpE/TJ7klal8/jqOsbOyL2dOkE2R2GP9KqmhSZTa2gIgKfCw9PrTqKTEn1z/AWjejP8AiCwhnUPZYZ4ly66dZNoAAABnA05VTTSWtSPlwApLQVDWchMgzdsjTDB5AAAAEgAAAAEwRQIhAOQf627R8d249X/ZJ8Jb0g5tz3gV0V/WJE6eJ8ZT+Ss/AiBZb9o+d9zo1hfkRK47lPJFnEQ1zzoUfJu5zNqkrI4IVgAAAGYDTlRY8NM77aTXNMcmhLX5q76/cV0KeTUAAAAGAAAAATBEAiAPQUTojOOLo/JI4FweuXL6G1DojkvHfQPLOinrUnpaSwIgZe+O6awACmyt/Y+Gr7ARX3VDY90yBTEpM67f/udS5kUAAABnBE5VVk/i25To1OQUTDNuRWaKeS0X1IpILAAAABIAAAABMEQCIBdcgmTl9xt9HhoNrIU4ZTVfWzZu+OJDEWMccc9gQpWWAiBwkREbTCUX4sSl3B9SddfzYTDMeeaC6uZC4LwEhC+uugAAAGYDTlVYib0ufjiPq0SuiL704a0StPHgkRwAAAASAAAAATBEAiA9F883L4vAMGVwAhq4A0cyvXZKFXabFEpLryCkHKIIaQIgQGszjYPxfaEGA8MB30WD/4orZ2vVikNJPCqFp6reUp0AAABmA05YWHYn3kuTJjpqdXC42vpkuugS5cOUAAAACAAAAAEwRAIgdS9km7EPhyCZJ6Tk4abI46j0+uBlC1gokRylt2r0bEkCIFOFDItILh0kaFJKIE+Ouk5Hy0Nn+ZLwUSPWHNWl7qYQAAAAZwNOWFhcYYPRCgDNdHptu19litUUOD6UGQAAAAgAAAABMEUCIQCmFoRsevy8y1EuQeJ86FOfbGExUwt7f3ZNoAqxfXZNDgIgFfFdSkZ4Jz15q1BVT2+Y8VCoXhSkeLDenKHKK0Asa70AAABmBE5ZQU7JznCjgZENCpCzDUCMycdwXuiC3gAAABIAAAABMEMCIGK4GfvBPCgARjK2iezPQ7T3DBO0H5ZKDDXUHIdwWrolAh8pRQrirHjdNzoK8zwbltkEqLjkroumYa0Oc9SbtIR7AAAAaQZOWUFOLTK/Spo37PwhglARKFIiw2qzXeUfFAAAABIAAAABMEQCIGwOogm6M2LQivYq1uvgvD2GFh5LQjBaL13sru5XJXt5AiATq29+LXXrJH5UP+T4Ufgny+UdO/utDCbwlmY5s0kKigAAAGoGTllBTlRFwSFZiPLlVawyTR4tKmFk8QEP8p8AAAAIAAAAATBFAiEA52iJ1h31/GCAA6v67qm8o7uOkJmiG6UNJnNw57wyer4CIDI3fZs6WGzypnZqdMz1p4tiFuTb1SLwgWJWfU5sakCaAAAAZgNOSUHbEfb8jhbAJxnpwus8THYv7o9cWwAAABIAAAABMEQCIAOGPedOObyvdMmRDy3IZyyU+41SRDhSSwyydknSS8fEAiBGru9+Q5VfwSxw5tIo45U65PAzrLdhj8E6j267+AHK2gAAAGcDTllNUlqPbzukdShozeJRZDgr+645kOEAAAAGAAAAATBFAiEAtzUCb26hSSKMVvVeTegsIRtJbaiLkH4vewZIfaLB7w0CIBOHi/YLpl6kfXSdFdWXO0jHvDRqcz/HDA6NaLHD3JjIAAAAZgNPMk/tAKLLoGZxSZnscDNQ4KW2t6tmywAAABIAAAABMEQCIHyxguEebNximNLPTbu1/8Xa+r6ypFT+rgdrif8dDlAsAiAJ0hezQVuv3EGXqNj3TdWtPd7CVB0Cf3pPVMItO3c42gAAAGYCTzPumAFmnGE46EvVDetQCCe3dnd9KAAAABIAAAABMEUCIQCIwrfFh02whaZJOEgYUm5/FDu599PqS4pawROZZumJEAIgGrjUktnMweiR3to62UTeEhxrBqn0+B23Qk2veNdzr0cAAABmA09BS16Ii4O3KH7tT7fae30KDUxzXZSzAAAAEgAAAAEwRAIgdnmCCXozZ8Ig3bAmepY6RYRp0DmmgjJgIyco/zO2iFkCIHUWIBEWuZy9G9GUWoqIbxwDjVyMLEeCoBKfR2pSgl2LAAAAZwRST1NFiOqLxuGiK4IB9EvgoGsYTOFfpy0AAAASAAAAATBEAiBUSAhsr2HhnMQV/CowA5+Oi4Ks6StPrlfbTti8LAEKdQIgEN4IW+ZDYPKo9zhKTNFPv1LsDZ1rQrMfR9CtU3L/gZUAAABmA09TQyRwCil5YOhHfOPKbFi3CnrzQQOYAAAAEgAAAAEwRAIgYTf1GOOUQjEUhkyY0HmAm0RptiCOHGApdhNXF3Av7z0CIGP5WYwA/EuGegyzik7NCBpjwE9wClhoyqZ6Ycgbr/TsAAAAZgNPQVhwHCRLmIpRPJRZc976Bd6TOyP+HQAAABIAAAABMEQCIE1izQn/3lO/sY7hG16tkTm/cNFfHRYArXIo+z8f8ABaAiB5u6XZ+l1MrT3dQikrWbrtm5OyIycH7x5trAKfvFwTsAAAAGcET0JFRTZ42MyesIh1o3IPNMHI0eGzH1oRAAAAEgAAAAEwRAIgS/mDpU6M/e5fE5KQ8puCSQ3sP94nt7kuqgUt0PCOaZ0CICl3py2Q3V/y2+WP5NDNtV/OCVjsL/jBK8iQ9pUr8yqRAAAAaARPQklDqLbQvQZ85bLk6eIlsuD/XrdN7YoAAAASAAAAATBFAiEAoebDwRtlYlOlhLFp0GRQg8bmebQ5p51crYhlt70HKcECIHL7iI3AOj0vIkH5HQ3cHR4MZCRtzDMPX6/sFmekThqPAAAAZgNPQkND5XczjWwHvJKgbIykt4FHBRXfqAAAABIAAAABMEQCIG069S0aKAybcSXUwDqMG4Sxq7r+D8qWAV1Ha7xftkTEAiAY1rIffP4yoZ9NxV6N8iLAGnFb2PdiPngcgJP+R8M+aAAAAGcET0JPVO2t61+qQT5shiNGGEnf0LfDeQwyAAAAEgAAAAEwRAIgVcyztURayqu2RMYcxca0UIrAyCnjqEKzNm4iqxv8L2kCIFFBeVTbqMNFJY96eZO4HSrsaCyZDRDffnFLck/jh3g0AAAAZwNPQlJZVkPYOzXfOOKQWJdsBAAKz6MVcAAAABIAAAABMEUCIQDFPuzCLk9lW6AquQl0kvSVPfXrMVOdbqXz9+D9j00ydwIgaJDDjEpZsI9enOKTJ1TVaY7cVRYNSuM4xbQG4Xfk2n0AAABmA09DQkZpErqpQwpKRgsUHujFgNgXRBRJAAAAEgAAAAEwRAIgbxTIAr5426aTrpGtpjEOrG7QIDONgcVb8mUYreAI9s8CIEwjVXCPbWpPZpkYKDskS18nWoU4rhYA5S/LKmAdoGdPAAAAZwNPQ0MvEJAhr+dblJQp/jBSPufA1bJyBwAAABIAAAABMEUCIQCMP1hJZMUg/biJ150WuaMUHC3pdHdvv6U405O5w8fbIAIgTmG3+V5E2OsMeGIUfWnyEpB3L0g0mM3ffBLHASjWTqIAAABpBU9DRUFOln2kBIzQerN4VcCQqvNm5M4bn0gAAAASAAAAATBFAiEAqG3msPfF6JgU106V8KzbQCfSL7q611KCwyA20kwHw6wCIBqSCrlD8FGQy6zWvAvN9qHvekhZezaaLjOjVUpOn9rHAAAAaQVPQ0VBTnr+u7Rv20ftF7Iu0HXN4kR2lPueAAAAEgAAAAEwRQIhAOA0fv2vnYnL+JiKoj1//pxzsTjqB3JeDezTSQRNBeAXAiBL8UEr6Ctel7LGVY5gvPn0EScWMny6CYLlYP4hW1S31gAAAGkFT0NFQU6YXdPULeHiVtCeHBDxErzLgBWtQQAAABIAAAABMEUCIQCtisL7bWLoGWpQwIBLWCubutijvwaEJcpcOGnSYN0dHAIgOO3AxDvnsLmScAvEi8Rt9isKv7FTTUsJ3AcnpI9DR8MAAABnA09DTkCSZ45OeCMPRqFTTA+8j6OXgIkrAAAAEgAAAAEwRQIhAONHfU0Utg1M3nLXLhUzGo3b9RVNGogWN8qqFdQZ0/4bAiBSNvLJf7Y2Rb0+i3e+Azajy3JYFYLNfiLGtbSvFLo3MAAAAGgET0NUQbmaS7Ul7OlitUnmhzIpxeaSG/8WAAAAEgAAAAEwRQIhAKxVFvGVkDwH7jw+iK3IKHiav0UtpXxNwXeO3S+pUzyEAiB8HMIP/ATUZdBoBTQGV5JOjrjrgd7zBs+SEtmoWAaQEgAAAGcET0NUT3JArJHwEjO6r4sGQkjoD+qlkSujAAAAEgAAAAEwRAIgaFJB1efYfcS+vujQc+4tGMzHu0hEgIv/lJedXR4K5PsCIClTB511bSK5QML7T7FLdlc6QIerxVkcCg4JJCDN8TsBAAAAZgNPQ1T1z7x0BXxhDI7xUaQ5JSaArGjG3AAAABIAAAABMEQCIGO58wZlv+nXxXRcjU6TluwlZ1KWpULK7Za2F1kgePCLAiApYLh+72jx77PSyfikLBsa12qWOePBAMjizOtOJ9ZUqAAAAGYDT0RDSekFN9XvZ3j9AA0fBb4gE0+fbcYAAAAIAAAAATBEAiAb+Jtqbo+nNGBN+oH52MeRwvtDOqVpM4oCoUnyrZ4PrwIgB2aF6MLGAU0ZS3Nc1bJEOtIEHosxMScbHD+jxrRCN0wAAABoBE9ERFrNKCj8TY6KDt6RuzjPZLGoHeZb9gAAABIAAAABMEUCIQDj3NQVdNIBkznd6hZ0rGf8E72o3S/LMT5EloTwcRjAjgIgTMzrrC1BkOO9N0QB0GaM0qEDLNkyKMlxd5emcvdfiJcAAABnA09ERb9S8qs54m4JUdKgK0m3cCq+MEBqAAAAEgAAAAEwRQIhAP32ppqdC9pOp8rFmX6JYAccH7Sp6bPR5Lea6y7HvzhwAiB0JH5TaeAN+c8i2Ay5L6SoPSYkrBi7oLNpw4z14NR+OgAAAGcET0RJTlfI1dW4ehWA/a+ZbO9nS7DX8UyYAAAAEgAAAAEwRAIgevqhg/OH+zuAgOEGPlRitgbQkDn3LltNtE2mnl3QguICIEgz9vMTXwQLI0cX0EY9CtpyaM9RCY74Ph5r8CpwtfBuAAAAZwNPREmkncBNEYvfSjRx9ZPBu6DJmyGH6gAAABIAAAABMEUCIQCXXhG6R6nxf3aRP5c/WTMU15+AGQBZaCDLZPQdR4M16AIgSa5DB5Cw5PagNNys6Z+hKbJMXJZ209o9KYOUK0pjtrYAAABnA09NVE4wkQhF8MtPZngbNcgy6vwJd0AiAAAAEgAAAAEwRQIhAJnZx8w1WNdNpJ0Nd6xgnevOi2FMsaA2tWjmuUsw8URBAiBOu5fpGrrs+iQ0+QON1XkiONiDw8MEDeUFeDxFXWs6ZgAAAGYDWEZUq+WA5+4VjaRktR7hqDrAKJYi5r4AAAASAAAAATBEAiB9XgUeyFnkqqGiB8DS0syGL7fJwofUcY27cNxHahokdQIgDCkRTW2+1bCVR/8q6dZLeoNIi+ut5HutEzadx2KXbwoAAABoBE9ITklvU5qUVqW8tjNKGkEgfDeI9YJSBwAAABIAAAABMEUCIQCoPK65hfV0Zk1rah7Awp2c+cQWpozOE/TerrKvAK/UxwIgMi5RY9+7BiDZnnEG6mADmADhr+1GFjrTvuaNhm1tsvEAAABnA09JTKKajjYMDLolo3GXY/3kOh7lcCcdAAAACAAAAAEwRQIhAL+9fsNz+Lo8FlHGmefN+xIIofspCZblQGD/RFFtbai3AiBYy7OUItX21Nij1LFB+IS0/np7IgqJ5/FCqqhy9ejdbQAAAGcDT0lMAnXhAB4pPEbP4VizcCqt4LmfiKUAAAASAAAAATBFAiEA+XIc91mTlgjO6deqNMmgrGgb/ENmazhPcYWiy4QjGjQCIFcnpO7vHNTk3v7dnts3gus8osApm/KazzXa1Rfi0IoAAAAAZwNPSU6a61D1QgUBcjWaDholqZM7yMASWQAAAAgAAAABMEUCIQCl7QoNALeLv1JikcPzX4fDEUvp27hu9RWXNVMVCXGqwQIgFLlmIVFM6/2cMbT5hePGfpdM+PbfMs6A/+kh3MmyiewAAABoBU9LQUdFjfyMwyAUJWafroA+HrElzd1BiewAAAASAAAAATBEAiAHKam+wU1zrHoz0X3U877zUGqUroLAPTKy3PNqrQS4ZgIgX2OuFBBpBk5nsm33jfJLL1mTvVDCYZuE1J7zybr039kAAABnA09LQnUjH1i0MkDJcY3Vi0lnxRFDQqhsAAAAEgAAAAEwRQIhAP5/4B7BY0x6MN1WJpH2dNfSGCDCuOXkgXwXAelkjUonAiAdwrJOKPWEB6WqLv4ntN+SJVHPRqxDIvSclQp1ymr5oQAAAGsHT0tCQkVBUgU+W6fLlmncwv6y0OHT1KCtaq45AAAAEgAAAAEwRQIhAME7i/1JVzuRT7nruPVlYHJOV3boCpzym32TFYz4gGDzAiB0KXcqQNc9L3+9CXsFJmXNv/l/W2KzIfJf0k6ImJpuqwAAAGoHT0tCQlVMTIr3hWh+6NdRFLAomXyco2tcxnvEAAAAEgAAAAEwRAIgCoxrZKb8L0dURYycuBDrRqa1ATcSqwQOWkn0EWOnsB8CIDRKxXMkPof0cn5c7Y6urvs5+MllN4rJAd35tJusFjaGAAAAawhPS0JIRURHRYibxi6Uu2kC0CK7grOPf81jffKMAAAAEgAAAAEwRAIgMYPFA2qqDaw9WH35/pUXmlihqxNZSp0BqxpqA4QvNakCIDzFrQPhoIsboVJiKnTNIRyHToJgdDa7IsO77zkAk544AAAAZwRPTENG7qo0r5WwNLraS69WUGMTLHZbH6UAAAASAAAAATBEAiBo1mmeluE4JJIInExu4pK1p2l0Yco2eH8hNZYmqEkaWQIgZf9eEucIjGpWqw1ejirds9ZaMuxZeouDkz6ycidwj14AAABoBUNPVkVSXY2fW5b0Q4GVvpuZ7uYRjtQwQoYAAAASAAAAATBEAiEAi0bBc25wnMkInH5+QrrDubRvaBxqCLeYEiPGyZ+MQkICH2L3yhdWZomXUg8Sh7G8pvRaZJGsqMT2stKwEfdI2gMAAABnA09MRZ2SI0Nt3UZvwkfp270gIH5kD+9YAAAAEgAAAAEwRQIhAO3CDkiN4gE3lWTTHoP6TRCM05Z4yFY5uznSMOdhH2RlAiBTiW+fO+Ev2KJvnyGnurdql2m6jAdJ5fSdgqANzgpJhgAAAGcDT0hNZKozZPF6TQHG8XUf2Xwr09fn8dUAAAAJAAAAATBFAiEAzYNXI1vE6iqnOOy7MjqK8kDJfsays2J6dfxOSdzkSvYCIC3f2gbEfzvb4uyMqTdSONurqJfMq2FH+ZJqOcaPFniqAAAAaARPSE1fODUYGIwMbXcw2RssA6A8g3gUqJkAAAAJAAAAATBFAiEAyv7J3r+CrWNLVIlDJV/5BZjrk3ngMLOzSv+l0f3mPdICIApbUMROMc2vIlsKfE0kJt69giXCCO6HHOY3lEhBbvtCAAAAZwNPTFlllbj9nJIMgVANypTlPNxxJRP7HwAAABIAAAABMEUCIQCzuus/BqmVSqujRudJKKzGvNp1Uo93NpavfJQHFIOhfgIgW6w3+VlPj3JCVtBxNbQGMQKRjxGQkutxbtvsRjVHsHkAAABnA09NTCJNteYYB2HfTD2JNlhfa4uDh5dwAAAAEgAAAAEwRQIhAIWoLoAuwMSF/Lc6yxpYG+4WCgzY2MftZ+jludbewbxSAiAVJ3LjEKAdLlGyQ0sE2Lwf6mV6L47lXWAeMkKzF0rWxwAAAGYCT00rrs30NzTyL9XBUtsI48JyM/DH0gAAABIAAAABMEUCIQDRMwunE4N20NLURNs55j8d6318EQkcOUSTWAs1DLfdgAIgUokZhquaTKpBAMVc0yILG1xrPMvwKMUZRFMzGXwIfk4AAABmA09QTfTBe8SXnB3HtMpQEVNY3sWMZ/2dAAAAEgAAAAEwRAIgI2dLkWMuTMVLkyzsKDuGrBaJgBX5L6XCl+53aHllyoICIBzkr3FygLjoJcRScXh3D3Jsk/tO4sS48EbKjH2WmHV1AAAAZgNPTUfSYRTNbuKJrM+CNQyNhIf+24oMBwAAABIAAAABMEQCIH8imUOgUQQltdyrXP/g9gRp09BcVVehu+nAoH1LcE5mAiARzRCTY8h17cvbXXpbOrXONybZo8wIFo9pK0hiyLT09wAAAGcDT01J7TWvFpr0agLuE7nXnrV9bWjBdJ4AAAASAAAAATBFAiEAiz/xkqC3k/PewDXtI/nb0f7+lVq4C9YDpmLqbfiUbd8CIAOZvhknKC2tMc/DaOnyYi7T5N12J4hfF4211c7iiLW3AAAAZgNPTUcjkvar8HtfzhRgPQ4o/JUiBbhwPQAAAAAAAAABMEQCIHjKctLAF/7EQxCkbeB1BCM9Fh6lceRxcUnU1oSxFdFuAiA6XTsiSoM5iqT7SnraATZ0rsvKhG/fIi1kMB8QyGGrtgAAAGYDT01YtdvG0884AHnfOycTVmS2vPRdGGkAAAAIAAAAATBEAiBrt078hswwlSZGp2z+YiVL6H6UDCCfMnzCjzuAuhB1agIgNBAod0l7zSvzcTiTHZ3wsGTh+QtRf4Pxmxi+NVVdnU4AAABoBE9NTkkhZoXoj99ZkWVRl9R/DEFFp/WA2gAAABIAAAABMEUCIQD8GqR6w9IWaU0T1+D6KqnZbQXD6blGZtgY3ARx0W0k2gIgJ4DmI0xHHe8psCb0h6oTRF9cipmpXt3/DCuhamVkVlsAAABnBEVDT00XHXUNQtZhtiwnemtIatuCNIw+ygAAABIAAAABMEQCIFbNqc+ms/+UMMlj74J7xfhuWLCe5O5X4pIoZ9qOG76zAiAJbPYgGx1UtnOwId54ZPUDvzFSP9hfmXqjsp/lqxZljwAAAGsIT01OSVVOSVTSLc8xyijPTc5TCg8SDiRPS0U56wAAABIAAAABMEQCIEqfk21nVIF38ILHr4+eFvsC23jlxd/T9WWVxwSgOSFnAiBB1fjxwL8cC15eB9KJ3G+sP5WHno8QPkLKVw3tvVPyUAAAAGYDT01TPR48X2WNdMWFJnNQysIv1E6NlRwAAAASAAAAATBEAiBg5Yplc4FrD/D74cMFc9inAC12x4133ALjVXnO6Tx+0wIgVvfaERP88iKril+cCF8uX4lSvOGaffCRfNmA5UnBDOgAAABnA09OTGhjvg58986GCldHYOkCDVGai9xHAAAAEgAAAAEwRQIhAJ3bgmMa2SftQm3Pi81P/uq+8IzvKV2maSWmG1O2PsKUAiBgW6MB2NBSN6EhA18Ue0jvH67PPnMty7Euw1lYYVsn9AAAAGcET05JVEEOcxwpcNzjrdNRBkrPXOnjP9vwAAAAEgAAAAEwRAIgUBo5eCkoPfB1Apftq8mnul44e2WOlrcw1iZiONpkvJACIFkoTtQ0jTt+DsdZAG5NdfV/Q2gVMQTCYVkcOvKgjmP0AAAAZwNPTkPZDmn2cgPr4CyRe1EoYp53tM2S3AAAABIAAAABMEUCIQDqpffJflKjspT1RhWGZQOOhnwNMaXcMZorY+SAcgaZOgIgTqEGNYLfF5JOIbYdlCCBA/lrbzGM2OJZW29CWXIKLNoAAABnBE9ORE/6um+OSl6KuC9i/nw5hZ+ldyab4wAAABIAAAABMEQCIHAa9UXr4EPiRMPbNGi3XFquH4QKyDp+RQFli8UXO0hkAiBHboCcUoYvAH2qg61Rgl+8Cj9vnSHrLfUCDN5MN2rUUwAAAGsIb25lMUlOQ0iFO7VcH0aZAvCIpinbjIgDqb44VwAAABIAAAABMEQCIAR0+6JSRB6kVGeZQk0TFQXdHHuXSp2QQyRlq106MLiOAiBpveu10ZUwLy5SixlEJGa/Dn4AqkKQcfI8i7+fnTX8vQAAAGcDT0FD8X6eTjLYQuTd++1XUKJve9d3d+4AAAASAAAAATBFAiEArc3LfTwUeDrzOvFVCAXPTV4iBt7xC6WPekRSglX+SOECICdIsbzBf8W56/5mRpgr7KGJMsF7p5X9tuNtoNKU1X/AAAAAZwRPREVYqWDSunAA1Ydz5/pXVN7Du0CgadUAAAASAAAAATBEAiBy5D6W2kSf/jfucVn1kVtzlHU61mh/bnrVMe0aR/wSuwIgJOGv/pgLVFXu4GJKH/S+AH3L/kWQQIBNhft90O7yXQcAAABmAk9HikSRk2qOWhZiyKdVkyuD2+ljSw0AAAASAAAAATBFAiEA3IRK9GrqdKC9k0vMqG0GB8l/+ERy9ABWekIiTeSTL5UCIAvekaGOfo0rfp0ndA7DkDokhzbML5iKgVTrY1cGD32QAAAAZwRPTkVLsjvnNXO8fgPbbl38YkBTaHFtKKgAAAASAAAAATBEAiBhD2OMFrAZSCZlrMPNwXasYZ0ThhLmexoW9Fobh3yErwIgEMAP7SSJIHCAN3ZE1ApRYObYM6FmdBlw+0pCYI1zo48AAABqBm9uZUJUQ8iPRwZ9suJYUTF6L9rnOiLAd3w3AAAACQAAAAEwRQIhAKxp6P/DXxJLXkn7Uuz9m65jUA0uU8cLvYjVqI3U7oaeAiB7kelZj2L7kUDEr1c4QZtTNZR7EPrBPQQKH+nGBSQWOQAAAGoGb25lRVRI7A13pYUoohjL9B+m4VhcjXoIWGgAAAAJAAAAATBFAiEA2FyZ1KH1P/MujANWBndf91ZmKb0li2C0vQu/Bl2UOgwCIDNbDcYYOYPlK8uFt/9JseNODvlawoeLYvccgkv9VNINAAAAagdvbmVGVVNFu84Dsuf1PK3KkyUcpMkorwHbZAQAAAASAAAAATBEAiBvXPN/8Ij4Ow9lRLR6rtKozdbUQqV8SnAz+8KRLSsrogIgG9giRDkSRg8Fb13LjamOn5xdH+LKU24GaGc7UlIbAeAAAABnA09MVGSmBJPYiHKM9CYW4DSg3+rjjvzwAAAAEgAAAAEwRQIhAPHdMEaN28FY9A72rkiKEg/Cl6NB64SvHZ1WaBFFo58gAiBvZdI2koNKiwqM3hcuOfxdmC7XtpXK6Za3v3gelnUQSQAAAGsHb25lTElOSxjMF6Hu03wCp3sLlreJDHcw4qLPAAAACQAAAAEwRQIhAI8pa0haMYxTqtZluEzbUs4asCtVPYcj4N8yEv6k+FatAiBM4BUTMUtA6nWql25eMAGSlypAv15WExSXXADgHzJmMgAAAGoHb25lUEVSTNmiRIXnG5FI4P1R8BYgcgmd8NtnAAAAEgAAAAEwRAIgE7efDphFNeymnnBKQXfb427o43pHYIVXspEKAsmi82kCIEEd1zIj6YofV/5hbWf3lEswc/PlbneVQN1FK6CRLfkVAAAAZgNSTlT/YD9DlGo6KN9eanMXJVXYyLAjhgAAABIAAAABMEQCIFoLTM5aRYE0STqaAplSS4U23+iOwy/BNErvyK/ANKCSAiAW0HW3upLE4uRqGFhUW6yQPjCV9LtLY6lTjKwBheaz4wAAAGgET05FUws0LFHRWSxBBo1dS02kpowKBNWkAAAAEgAAAAEwRQIhAIJ7w7V49xFvYS3GL9GGd8n2YD7X88nKcLef7zT+cJhKAiBaStteNZ65FiSGScQA5Vewl0HStO6ZyFvwM4gqxMrDqQAAAGkGb25lVU5JgpDXpk8l5rUALZg2foNnwbUytTQAAAASAAAAATBEAiB3tv/UuV+xqWBvsAgq1oKcoO+j6DF2TzeA0wDGdf/a9wIgGnk8cQU41ZsBG8m1c0T24V/49K8hvPlboOYU5mc4JTkAAABqB29uZVZCVEN70Zi5EHSW/VzD12Va9S9DqO28TAAAAAkAAAABMEQCIC2UtppgcQIt6F1RofpHBLEEb3jymFmIUuNV6l1PmEDzAiA1rHtY2RF5bTaHxjiU044BvHlFRgokWW0wF13S2T16bwAAAGoHb25lV0lOR48EGjlApeb7WAB1w3dOFfz6DhYYAAAACQAAAAEwRAIgDX1ZIu2hlSiG6KXTn2n1dxsYVfuXrs/vJIXc+en3rlwCIDbD48yQ2jsKLXiS46D3p6DHSpv/xKrD8fezqx2Q/NGdAAAAZgNvbkfTQdFoDu7jJVuMTHW8zn61fxRNrgAAABIAAAABMEQCIBO6Q5MJH3ssb1G8FxIrJZAL+do9/St9xx16812fj2RuAiAF4TwjXZ0FvwpOez4j8Zl9Xa275CJlfOT3PhHbIkxHbgAAAGoHT05JR0lSSc+caS9+Yq88Vx1Bc/1Kv5o+UzDQAAAAEgAAAAEwRAIgTY9qbeYqorwQI/Beg+4QcKJGYtN59DqEElgZanj8wnYCIDv8khwA6nRcSCoZBFbgdnOMDcwIVScS7PtXkw9krJ36AAAAawdvbkxFWHBhMzhK80sD6spj/RU/WVifUEdytXAAAAASAAAAATBFAiEA81gpgOVcxy8cu8iFYgWneTDYJGixz2W6hQqTySBLrl4CIFw0CucrVgEfK/37WTplapnPNBWnDq7ioGJD08EspyFRAAAAaARPTk9UsxwhmVngb5r76zaziKS60T6AJyUAAAASAAAAATBFAiEAi9ml7KTcYNfq5eBw8aFpoY0ten9atsrsWDJo3hz0H/oCIBGM0xWQvaKtP37Yav98wdIgM1V35JotNx08xi11CIydAAAAZwRPT0tTadmQWy5fb1QzISt/PJVEM/I8FXIAAAASAAAAATBEAiB39KSkckPRN2yE8/Z2Go8gHDoFtpM+diR1OGEPuz26iAIgNwYYaa67fTbh20HeXXB+qvcrdxEDIKtE6SEBRJDKubcAAABnA09OU1uynDPEo8KfVvispAtNuR2KX+LFAAAAEgAAAAEwRQIhAPPKYzxwJ+iQPIf8rjmhd5g3rE9x3PoNTV3MWCJFQIYwAiACpefINcfLLeu4IyyCsbVlrTO6Nr17DD87pG0OmKBR5QAAAGcDT1RPAozl6jKYpQwNiie5N7H0jPDWi1YAAAASAAAAATBFAiEA1svVBxyTwMp/5xs07VeblWYXNUc4CXe2PF+XjlzVNsQCIFar/dCjRzyaoocZU+/Q/hh3gf2BagVRUKUC13no3/RVAAAAZgNPTljgrRgG/T5+32/1L9uCJDLoR0EQMwAAABIAAAABMEQCIBNLIHSNCD/o1jkbATyqqVCEQjVlgAqniSTh9+FQROwRAiA/uVSC5JxQTrwxHiHA7O1y7h5faRQ9sBnakgE6AI/rpwAAAGYDT0JUB/lwLOCT24Lf3JLCxuV41uqNXiIAAAASAAAAATBEAiBpRTljhURaysjrSbBFasQ5gMVVz9yznikIopTGc5lStgIgeoxC9mwfxchlyT/8u9z/7l/CF4BnOtsbGynZYmyZ+YYAAABnBE9PS0kN4F9kR6tNIsiCdEnuS6LVwog3mwAAABIAAAABMEQCIBJpRWDtgi4NkVPkfZH+lMWSWiCoGwWbSGYwklfIMvJTAiBMulId4fUsJCo9TzTUTITZoKDAPdJcwSh6hQi5aT39hAAAAGcET1BDVNsF6gh3omIog5Qbk58LsR0ax8QAAAAAEgAAAAEwRAIgFmdYkrF3GfWjB4bdwGibBcnp/Zu0A5bHCUCAVIZFtbECIDYIGP9c3mw2gGCUT9j6JdJSBUrA8twUx0FZf1wTZuFvAAAAZgNPUFF3WZ0sbbFwIkJD4lXmZpKA8R8UcwAAABIAAAABMEQCIDMvcmzbQgcdmZ0yMnQ0COm/0yxRayGgWYmnZhTtGLWVAiBI/xdVyLSTUSI6By8ogt7Z/YPDIMFWcyTdRKGoRVLsfgAAAGgET1BFTmnEuyQM8F1R7qtphbqzVSfQSoxkAAAACAAAAAEwRQIhAP7JwPB9csbBDOvRU+73u424NWBAtlYMqHnv3h0FlfjaAiAIxuD9sKrEVYCjwkjDiSPzlxprvWCDW5j7c30Z7e+tgwAAAGYDT0FQF4hDBiCWD5pw49wUICo6Nd3hoxYAAAASAAAAATBEAiA964roqLZwqeophoHdMDeuXliMmztXbx26AMulvF8f7wIgf2QayYXtdLEz097+/6puPft7imgCvjEj+XLPaScUAkIAAABpBU9QRU5DnYaxslVOxBDsz/vxEaaZSRARE0AAAAAIAAAAATBFAiEA0SSetsImt8EmLvaNFmBJhbFjd1mJY1jqSivjO8oJ288CIEtaJTcIoOmBLAXnESgrfShrAjS1xau0mw7sScNBuFiYAAAAbAlPT0NFQU5NMjIk2MIWPWsTprh3C3lNAMmMtODLygAAABIAAAABMEQCIE70hh+h7bQXgdZ83cwYHsvhsiVgilDwI5pnriVYwJr7AiBgTtQRfjQ49wdLnI/4DJgspleG+rXGHdLPKrFhDz2JaQAAAGgET1BFTmnouVKMq9qJ/oRsZ2dbXXPUY6kWAAAAEgAAAAEwRQIhAJ+q3rWNztXJT+PcZSvDfMbqC3Ro3G5MF+4f2rm77X1yAiBj6KaeSSnLwbDOvZDKcDqKG7XeQnXsxCcUdf6ILI4JmwAAAGUCUFRP5YUcmvB9+eWtghevrh6nJzfr2gAAABIAAAABMEQCIAtbpw3WlNPszBJNEWyRhq2U7aNNVst+ChOclYLZ97i3AiBFGw80bDf9tr9OhwdCXkJxUnmZ81ANb1h56FLbJNOW4wAAAGYDT1ROiB70ghGYLQHiy3CSyRXmR81A2FwAAAASAAAAATBEAiAuuMQqgG7HYsDL9XXugKXNJOiHE18pbX2b6Hr2+2/qFwIgU6IHbbebB6mANlY1WKlqrFZPZECXQU0JPTvFupxkgJ8AAABnBE9QTk6oKflzcwae5dIxdeQQXfj9SSOL5wAAABIAAAABMEQCIGkObkgPiY0NNSe56jYZhbLunNMp9IxOniwk69Zd63tNAiAnvMMC0mmq2D7E+bJGbqV0I52fs93g5rNDVlq13819IQAAAGYDT09Fd3g2DwNcWJ/OL06leGy9izblOWsAAAASAAAAATBEAiB9dURWGcDcR8tIlN6LgM+4WfGvHQMiJWTmfKWsloY2XQIgMzurpddea1G5GkbDNxbPK/8Xge3sXZdfaOQzW32QO2gAAABpBU9TV0FQsyrDx5qUrB6yWPPIMLvbxnZIPJMAAAASAAAAATBFAiEAtIekYPcTXEgL7c4G2tf9EiOjgRBe4bP5wM4v9xgBzsECICVDFVTh81qLMIen79qN+TBgOQXx/VQcUvka9dng93eQAAAAZgN3UEXQdelUI8XEuh4SLK4PTN+hm4KIGwAAABIAAAABMEQCIHEHk04329SBozvR8DfgnOlBOIqzGVPbu6HQYN1PnKYvAiBHekUkPiKEL2F7McvwgGPI5/siaXwd5K6Odx+BYoWrrgAAAGgFT1BJVU2IiIiIiInADGdokCnXhWqsEGXsEQAAABIAAAABMEQCIGgWhSGjcUVa5z8wnGTbnet7BG+NUkJiXU+CPVtX/eC1AiA0Yo3SDV80OVuU4w/cO7N5J8FqNO6hrFYkLQay5C7sSQAAAGcEUk9PTa1PhqJbvCD/t1Hy+sMSoLTY+IxkAAAAEgAAAAEwRAIgQTxXgkhmXU/BtsHPSGL1RRwEs3N0wP1iKsBG2q7ZqHMCIHATtG9obHj7y0TUN7AatuBnIsnbmQyfNrLjNVHyu2CPAAAAZgNPU02bdYSBcmdwQiacYzZbV7ClHCHQMQAAABIAAAABMEQCIAOnfZDuQYLxF2Ey++wnZkuSktZfPrqpI1gqEhLaPQGZAiAQ42EVtQf1QmDxe/GFyyfHxyhXX9bgRRA8YKf7KirZXgAAAGgET1BUSYMpBIY5eLlIAhIxBubrSRvfDfkoAAAAEgAAAAEwRQIhAJ5H3w6rafDAfgnNqIm5TmkYMmDf+MxleEQavlz2R/FsAiAjS7poQmt6jfboVpTXUOZLVPtUtpczeg4fIaBaG7AY5wAAAGcET1BVTIDVXAMYA0n/9KIpEC9iMoIgqWREAAAAEgAAAAEwRAIgB9cjbLMStDggaUpJ9HFziEJslQ5vhXDxA4TV2PI0F9UCIBWJQfLJYFj6dryqUB8JfXiwgRZInSBIJ+C63WurfGPdAAAAZwNPUFRDVfwWD3Qyj5s4PfLsWJuz39groAAAABIAAAABMEUCIQCdxgy2y+2CxYY4vyHFXgkV0kq8ID9dh5OzBNTmtLyswQIgJ4Fmm7YbcihPOwvHuGiF4tL04qUWo7ESnKSbhW41kDEAAABoBW9jRGFpmMw71q8YgPz9oXrEd7L2EpgOXjMAAAAIAAAAATBEAiB8efR4sTp5bohvvsh8BPKe5myDdGXC5TnSYZ/7LUcv+wIgeFWNw/7bjrk/BBb2m7gyZBSxBrQ3Z34c8LNPgHn7iw4AAABqBm9jVVNEQ47Z+GI2P/39OgdUbmGCFLbVnwPUAAAACAAAAAEwRQIhAKBH4TX6rBqEZDwcYQtGyK9xR5kV9ht68pUvDZOgjxvEAiBdip6OOS1RucNAp9S1EDk332BIa1DFjeDZjyfWxpMdOQAAAGgFb1NRVEjxuZ4+VzoanF5rLOgYthfw5mToawAAABIAAAABMEQCIFnSwg5oH6Cjng2cL5gt3eQGWtt7wpjIiLMjZQdsWeHhAiAlalZQghgpR/GB01FHy0+eJwbIrtKmkZICbPpIp9IYKgAAAGgEb0NSVkuoxs4OhVwFHmXfw3iDNg7698grAAAADwAAAAEwRQIhAO9WsqUlvac74Zrii29KVDIOV7qvuSy5cTUGZfoQ34t+AiAw6UyTtcHdweRwLx7HGtSpev6+oVKo7NWEtqojxGnfQgAAAGcDT1JDMkry1TU/LdE44jSzWdMNZ8ZLGyAAAAASAAAAATBFAiEAvzDgkAVWRphajnyHgmpsmJprOl2eHtoXokbBkdDZH6wCIB697x8jc6M+ik2whgAzgvK0F/ekdupzL+kkLlhQ4/LPAAAAaAVPUkNMNdbLKt9HZVsbq93CFNeSVzSMvDmnAAAAEgAAAAEwRAIgGeZheKDUqFT6FWEEfwfjSQ2uFTSylTZuY0kAZXqw5bQCIFMBRbDsqQadwS+KDmMaGpTFZ61IVKynwaIIaxQck/YPAAAAaARPUkFJTBEkmBTxG5NGgIF5zwbnGsMowbUAAAASAAAAATBFAiEAzqUIhvVqKcWUunBC8wbPvQ/6svpr2lR4CpiX0zkDHuwCIECVONe/0c+UkYVpj0I1vScF9GTF895SyKsiEsZFOGlKAAAAZwRPUkFP7hzqdmW6eql+mC7erssmtZoE0DUAAAASAAAAATBEAiAP22de3HmIRYu0s5bMSVZ08AzOQGC2C2YcZR+pfu0BQQIgQoCpbIUqumDDizORSVRZyLOYNzUg9eOsShIyQmF+9RYAAABnBE9SQk6n+9klTxD44goxpZPJ6LwNBB4V9gAAAAkAAAABMEQCIB2kBomyG9zcWsLr4az8R6JGJU5Wt9MI6Pu47m8pAxRDAiB2jGegR/v7gD+hp9DRwd6qg73ghcKJmizyCVHIFxBVlAAAAGoGT1JCSXYyLeJ9NDLTGItTsCE34HtHiW00fUUAAAAJAAAAATBFAiEA788u0Q8udDBlf/yUZnl2OXvsZAvvd5SFyjYa1AGxfyECIBbG5Mr6i+guPbvwmBSl3zMWDfcGgGws8si91wHcIYa3AAAAZgNPUkNmK2fQChP6+TJUcU3WAfXtSe8vUQAAABIAAAABMEQCIBNFJ3OTlVYhn8wOaMr++BczNszkRupLe2RgjLJTgDtkAiBreXkwnqkCyCimoqAMIvEUjyroc0Cg5ZB13hPp4S+kjQAAAGgET1JCU/9WzGsebe00eqC3Z2yFqws9CLD6AAAAEgAAAAEwRQIhAL1aG6gj4HrMKQaQ8UUOLrCp6247Zfm7KRSDISOzZg/xAiB4xpajwjqy+IKkGBmASV19jxtkVQ4MtTf6WhFBuFbM1gAAAGcET1JDQW9Z4EYa5eJ5nx+zhH8FpjsW0Nv4AAAAEgAAAAEwRAIgQ+fzBp7y0mPkGV85ajAq3JCrQuntFTeedf3KNBXgn9gCIHxGDb7q1ZWh8GL4Y9JDfrWn27CUChBV9x3Xuy8zAp4XAAAAZgNPWFRFdfQTCOwUg/PTmaqaKCbXTaE96wAAABIAAAABMEQCIA674r3YQxcZeKHGP08u2FnQNMizYuSf4odQn+U+g4OVAiBSJUkYGqypjG6AJcsORs2hExOJUL3TlSaMl04MUCPa8gAAAGgFT1JJQ0EwRdGoQDZMNle432xvhqQ1nCNHKwAAABIAAAABMEQCIGSJC0LEGHnlMkLcekwoOWCGG5eDt7Bv04aAQgc/+Yg3AiBQAsBhqme+05AB1fT6ttcMsGT0BDAw4HC4LPLVLfLY8QAAAGYDT0ZUwKJaJMzkEuL7QHwI43hUN/7prR0AAAASAAAAATBEAiAP85h8ZOUt3siDfbJxE4/QaAMXcyrKQ2pcbwrfL1H6zAIgCeulQ/e61d2SP6g0VTL/OTal0EYCqJAdVMq4MUubTUoAAABnBE9SVFBu4QxMVmFmE1yN5XTOY/WDr8bSsgAAABIAAAABMEQCIHa+xQGAbA3gB4CgWwu2AM3Aq5Ar74MPbXIg9LN7OPX1AiA3xkQ+ZdrO5wx3PA1CU0bD3KyPnTjJLAReC9Gp1PyNWAAAAGcDT1JJ0vqPkupyq7NdvW3spXFz0i2yukkAAAASAAAAATBFAiEA9dHxTF5aNAWnnUdkbQimDAwLt2AGYJ8Ho4Z9y3jLW44CIHsLLduK6ACs6pXhoDgLsTrT6KBJHo0eFblHT0MBWvwsAAAAZwRPVVNEKo4eZ27CONipkjB7SVtFs/6qXoYAAAASAAAAATBEAiAnpTtnyQ1Iu9zLSuSlSA0v/TlPnkpoxhPwR26iVnqm3wIgXOZY//e5v3F6nH7pnR8GLiX6EpU3z9lOCCqWFQiHWogAAABnA09HVpw1RQPDhIGnp6UWKRQpY/mOzBLQAAAAEgAAAAEwRQIhAM8uXJJ1V+1s5uN8bXLhwQQVF5kUEEOxjysJNpXDwLXIAiAwc9H93rdTe3ksYvoSf3FTgQ/lF63cCY2EautXfOEA7QAAAGYDT0NDAjX+Yk4ESgXu16Q+FuMIO8ikKHoAAAASAAAAATBEAiAEPx/qUcyo2c2PJnsPpInFQuxMw+Xv5IiQq9H13RlqsgIgWn+orumTfTKTRCu9rcC6q7/kW9PTKML03tx1lLHohfEAAABnA09SU+uaSxhYFsNU25LbCcw7UL5guQG2AAAAEgAAAAEwRQIhAIWKDit9NmYzprccraDxlg9ze9U7ok+DkYfW0dg5SGM2AiBfW6Fx5y5bEw1O/8vf1FLdUsgMAgnxUKa1RoU9qvFvOAAAAGYDT0dOggfB/8W2gE9gJDIszzTynDVBriYAAAASAAAAATBEAiB7Ez56/d46VFWpSS7/xVFBieI+6izbzo5yBid16/zKmAIgFPnIRLQTYzEBEgnc/jf/9iSSNj+IPf7V757r4yU9zy0AAABnA09HT/8OXgFM+X4GFctQ9vOdpjiOL65uAAAAEgAAAAEwRQIhAKN9sZXEWS/zBRVGDDw31RW3lg9zFQrh9LdsCLxbjLdJAiB4PvCRmnNoRvZnJ++AYCsUv7qxdzSluYE5CLF7jSABGQAAAGcDT1JOAlj0dHht39N6vObfa7sd1d/EQ0oAAAAIAAAAATBFAiEA40YdBG7ZOH/5fhN1lFRbS147KgRwZ2JfzZLJuPAieWECIHMLHRgKDb3UvRK7xQ3Phf1bvMyGzg8AdDjdIju8tct1AAAAZgNPUk3VHoUmMN68JOnhBBoD2AoBB/jvDAAAAAAAAAABMEQCIGW4zsSv9bPzQ/L4MRDHkOTyFO6SaM+5mNH5vTDFS/M+AiBWYmJqJXBjR6F65oyw8K3gdFSREvRr10trk8GxUsw1IQAAAGYDT01D1r2XomIyugIXL/hrBV1de+eJM1sAAAASAAAAATBEAiB0u0FhvLUkfXK3eLb8sVgrK13e9XZlqPIf0hEeHeywLAIgNv4T/vE8MzBSHYtiQxlnEFRFzk5xIqiIaVL6LzKoUSQAAABoBE9STUVRblQ2uv3BEINlTee7m5U4LQjV3gAAAAgAAAABMEUCIQCF9uXrAbKlXnzxkDMp7D674akPxQ2YU5x5nfXli0S72QIgFmDCBa2QmOVuxll4s2U5UR1eaKIPHkR678XS2wi3trIAAABnBE9STUXJbfkhAJt5Df/KQSN1JR7RordcYAAAAAgAAAABMEQCIAdlKiAECMCs9fUg1iOnQiqfugvO/OZNt5gLAKvFUQRLAiBuBV+9HGAPeFBnlpDePB7ud8BaI86JF5RMXLwLLZU/7gAAAGYDT1JPw+smIhkMV0KarDkBgImURDtktGYAAAASAAAAATBEAiB89Oe7GJQ83rKTO261Zv761cP2H7z9wSgn7mClzqqeigIga1w4LPvaiG4NQLiQdMIYxrISV14arPw9fDfxX+DplYkAAABmA09SU6wuWKBuYmXxz1CE7ljaaOXXW0nKAAAAEgAAAAEwRAIgclEsdJ6BEslr1SV3SgeiHRjI4pOMi7nKPKCZqA4Y4s8CIBJ5cd2Rhp1+1NiHnh/LaHmK6qO8bI7V74NmnZfX2VDwAAAAZwRPUllYXAvCQ/sTYyxNJH9PC8J/L1iYLDkAAAASAAAAATBEAiBnDvMm6ksNGGELDzvFfd9Grs6LJDlfkG7YlQaai0cL4AIgYRs8aQs/UymzPBnXc5WtEFeZ8V19mj+uWzhliOQz4CsAAABoBU9TSU5BOa0iyRb0KvX2c3HW8vsNq0IyGokAAAAEAAAAATBEAiBaUQiMFoXkhwTl5z0shJvLkNzjqYP8aCKkQrFHf0voLwIgeFkJIF9fgXpVKwH0KqdqfVrrSROAjAxf3pU9cUkBWNsAAABrCGFVU0RDRDIyj8sXg79LcaUfcCrwwmZynEWSIEoAAAAGAAAAATBEAiADLYIjc42ck9NuGeweHFSQnGXLkKTx0JFchNNXhAN2NwIgHIqxwgTmY36D7n++cLwpF53HEkvnXjRntFLIqeLQx80AAABqB2NEQUlEMjI9Tn9S76+54McBebaI/Dllp1vP6gAAAAgAAAABMEQCIBUDHYNKtlHwqZRePPK17c6OGf6H3dfq+7rw3CAwjqOsAiB2JWQ1WdmwAngYReQE1DDbcAA5X7buHGf93sxQS+hiEwAAAGkGU0xQRDIyMi1saQSDMCRxZSMet4SKXICkiHgAAAASAAAAATBEAiA3piYPPS37BR7oSlEVflPGneC7gi8NltxZVWdM3t6GbAIgQkXnNoSmOn3unKYmBJIDA3bCMfcbX59VmSoqznYaaNYAAABqBlNMUEQyMr9oK9MaYVEj0o1hGziwrj0rZ1wsAAAAEgAAAAEwRQIhAKKgMXszgCJjekKsh41rHi9ccpOp5G+WYGS0DbkFCp4eAiAaDoOUAowV1JNMCS72GfUd6MaMNPtw/UFD9/U/X5HB6AAAAGcDT1RCqGoNqdBdB3GVXfBbRMoSBmGvFt4AAAASAAAAATBFAiEA4Usb8jUxsWHMjItdseZxZI59T/FRDSqeaF1ODQYYjPICIADIEuvxW9v92xv/SmP01vooXbJpaD+voYU8XKMJxQ/GAAAAZwNPVVLf89aaAHWUSfCRVhoK+ZohiYK9fwAAABIAAAABMEUCIQDyUBnSZ7P2BgfCDbTq4YePnYCIRpAsq3oi9l9Y1yWq1gIgUQJ35pg5LydaQ39xRbzaMwDkr1sfBJEV2mS6YDvYy2gAAABnA09WSWs3YPrN6395jNE8CvLkzZ3cCFEiAAAAEgAAAAEwRQIhAOYbmIzgFTMQxgr2Ds8BMu5FZjvTo43eFlLVB+yrbzj6AiALcUaLtDpjtwRuYQh7tWKTCMICQvgO5o7/VHbZS9ZodgAAAGYDT1ZSIb+9pHoLS1sSSMdn7kn3yqmyNpcAAAASAAAAATBEAiBhLrmnNCw4ucCS4MP7NTBjih/8u2p+hc2CZ2NrBSPbbgIgC7WLjsdoOd2OE1/Gu5RLyvStaXjTmsEd14SDXX8tIYgAAABnA09XTBpfk1Kvivl0v8AzmeN2ffY3DYLkAAAAEgAAAAEwRQIhAMxxPmHfXkRyZzwCMNyMFTMqM2XAuD+VEDGRBbmUPwBdAiA4E+Ggw103ld2ARYYd/6mxTuQ1Z5vTG5B+ulsYtVSfUQAAAGYDT1dMKn9wnuABBpdxzrbULoUDX30Y5zYAAAASAAAAATBEAiBd48qetRXdT62bnpOMFUvDv+JnX6ncshOUNAtz6TAd7QIgZ0in04Q3SnV5ckYiSEQMTyOsHI3MoRgOpwPCptjBlyUAAABnA09XTsxvFb6Fc8uCQ8QtMAVlVm0yghPdAAAAEgAAAAEwRQIhAO1qI3/jIqYWWsBJF8/NITjqZfpNiIukbqEy0FPxCDQvAiBBVylmbO0f1sq4FFes1g6bxicmbXs3hZ8GtGa1a4IIIgAAAGYDT1dOFwsnXO0In/+uv+kn9EWjUO2RYNwAAAAIAAAAATBEAiARQd8y/rR5dhsaTwSmXnMcDEs5S20G+p15GK24Z4QcogIgPQ+WoS9gxefJ5vUJ0YMqwjheJ4WwkOKhBBWpgTBjFl8AAABmA09OWM94x91w1vMPbjYJ6QXngwXamMhjAAAAEgAAAAEwRAIgC+tvJxCwrjsTkSzZiucGTuv9CHSTu6xVuIjQSOMHERYCIFYL8MDdydkQ3c6a0CMUpKzIeLpG/hM4Jkumy2OZR+6AAAAAZQJPeGWhUBSWTyEC/1hkfhahamueFLz2AAAAAwAAAAEwRAIgHep0bJH/+RlD5lWra8TS5YjPdA+wAXsf8ytIcwKf2rECIEicn/0TwW+km4arDglzbuEb4Rd+H5h5Gunt4hMACYG4AAAAZgNPWE9H2sa9gPAkV1ptNnr1uo6JICoJ/AAAABIAAAABMEQCIAmRFOi7ZcpuXYXTcSITHuT+R1G+5apOSDDkAmxMBdvOAiA5n+vsaDIWaEYixgVkb4VXEaMtPbb14Dp7lSn4NWwfxQAAAGYDT1hZhpsfVzgK5QHTh7GSYu/TwOt1AbAAAAASAAAAATBEAiAGXv9huVr4M79TkR8FFZCfE4Cr719Ak6WRZdzfikFgOwIgUCl50l0CD0kUQp4UKWKqe9qyH4Td31yhkrrk6rCcFI8AAABmA09ZVDPIUX6LG+79SlJ1q3Ks85zRgzGjAAAAEgAAAAEwRAIgbF5f+DSEeg8/h8r/1O/GnF7GN831LIUmplllB3C3f6cCIAMH3hiNZB0dizWOxVXrcV4QRCRFJC/HRmYFECK7bzwHAAAAZwNPWFmWVpe07wLw3gE4TQ1Pn3grFnDBYwAAAAYAAAABMEUCIQCvGgf06eXVH32hn04hNp8045NGnrRMYnOWwrFhqpC7TwIgZCkCV/+aIbjDjU/AHaRip5z0IeySsOYSCbTP2XeftMsAAABmA1BSTBhEshWTJiZotySND1eiIMqrpGq5AAAAEgAAAAEwRAIgJFC+5WU7UpMtzGYY4zLWY3zobzXith7nitbB52KLvs8CIGQtQLugEPC5M3hFEoRmrh/TK8cMwfnM+S27vgX5BDrpAAAAZwNTSEyFQjJbcsbZ/ArSypZaeENUE6kVoAAAABIAAAABMEUCIQDhFb3JTTA2zjUyrl+J2ISQ1a4W3SaXDvbUovqV83kowwIgUDtdWX0EJTW0HTksSGYivjr8Dhn+le1WrIc9YR/8jEgAAABmA1AyUKvpsuS71ajHGHUsQSVO2BqufZi/AAAACgAAAAEwRAIgX4VuOWmrRZWNQvHrXxKXoTy8jv3Jk4ehsxdTXlSZEaoCIBy0GgoLGyTqh06vzpKyZgZDxm8PqGBlIM6okG9Wdww3AAAAZwRQMlBTRSejtKihUEAwkKmbh+/8lvIZUEcAAAAIAAAAATBEAiAmoQ84mXkiNBMNposqSffOXk5BY+7Hvu9WKyiywXJw7wIgBK58xTApXso+D4E8JCRUX8zSYAhn4iWIy+T+RJRmWlcAAABnBFBBQ1Rm5841V4o3IJ0B+Z89L/Jx+YH1gQAAABIAAAABMEQCIG+BZ17mN9J/GUyB3P3bG58N1Y/WAzbjdnOWdk50GB9ZAiBEGzmiSsA+bYEbF+KINatEbyeIZlF42QO6h2W9qYkEqgAAAGYDUEFEUGcAb4MCJJYPtBnX8lo6U+mRm7AAAAASAAAAATBEAiATt9TFnZwxHO6Hlp1H3bCw5W/Z1pH0ocYU9kyGgFdfdQIgMHEJAfwAQFsx/RI2vwBg3S/mLmw73FUg7QUWD24BhggAAABnA1BBRJkqip9L3g+y7h9buzy3seZHSOE9AAAAEgAAAAEwRQIhALm32SV7cq1qDSmbvfiQ+RVOpylgpg6H0V2elPO+t+4eAiAcW6xIIAksmJt9+SUN0jP7NJUYdtkYucgDr1x10pIhFAAAAGcEUEFJRBYU8Y/JT0eWej++X/zUbU59o9eHAAAAEgAAAAEwRAIgIYxuTHcZ+QH7IzR4k9dcnzG7nVjmILULBA4WFOMgwa4CIFugPGlqGtsnulCqcBPVqS/Pv/wDawbi4gB5y+y6jPpXAAAAZwRQQUlEjIaH/JZVk9+y8LTq79VenY3zSN8AAAASAAAAATBEAiBAbBj+iauzhd9QD8K/9bGM/fHBFb7/3PEytut41VA0mAIgLGeZDU7G7CbI1vUQ6cxqTTc0daBNWC2AKgRjct146NUAAABoBVBBSU5UTG7AjPP8mHxsS+sDGE0zWi38QEIAAAASAAAAATBEAiADQSaaB61nqaor1GFYLNWCJYgW/GlzeLM/cS1FMr/XQwIgO2aa68ei+1xr4UL7swAbU/vAhByMQVpzb3NL+BZpUo8AAABmA1BKTWG8H1MKxhk9c68eGmoUy0S5w/kVAAAAEgAAAAEwRAIgISP7ZjB23st9dXTrlSDKOqrH+BtOa/FCFInmGrQXaooCIB8tnCOO3Slu2bFrUxqawA/53jobXvX61VES7jimec7oAAAAZwNQQUE9msjnqcm+Ed+sFnfdqQHijURSfwAAAAgAAAABMEUCIQDXx1v7U5axum46ndaElpagSyW1EuZHVlDcE4nkHWLwywIgV5yyqo/q2sUr1UKWt1iU+mepx8zXeDtiCrU4E9E83c8AAABmA1BBTKuEb7bIE3AyfnhK58u21qavb/S/AAAAEgAAAAEwRAIgauPeDJxg3k9GqCGYCkXfBWN6fKaMz4i4xPoMihpWnOwCIEWoRO1JrBcYSwS5mOheZjL6RYqyeu2ncY3v5uo57bFHAAAAZgNQVE7+dr6c7EZe0yGamXLCFlXVfSGuxgAAABIAAAABMEQCIAKZotzo5yArFOnj7koLx8busPAWn/11SGz/TCIkTyP/AiAd25rBSxmZG13DcsfS/hRT6m2e9pHCbrFv0CKYxzsoYgAAAGgEUEFNUH8PEY0IPVF1q50tNMTI+k9Dw/R7AAAACAAAAAEwRQIhALD/Yfn7QSjzb2YBj64R1qzNFtH9R+iFOmMZ6EdbY9Y1AiAib2q/UeOIVf0IYlAK7h70EWDdlEqDOs5O52bW3PYInQAAAGcEUEFNUPD6xxBKrFROSnzhpVrfK1olxlvRAAAAEgAAAAEwRAIgW6zYGrs0rOGm96XITn2sF9rMgQurZfOPdRPMKQC7rAgCIGT6iWz1mPyvUyrLLcnzPkgAzJCRWlLYHW2+Avvm9PD/AAAAaARQQU5EW8UrU2e2N77F+BjmkgjrnwPEJu4AAAAJAAAAATBFAiEAqLzz/TIOn9NuW+moY7+XCNerEaP/IHnYgMifYZwovsQCIFF59Q3BkIIYRNkHE5E5PO5zI3u/hWx9rmJc8MpVHAt2AAAAaQVQQU5ET3o8RfNOpd9v5favcQ7IoE04inHRAAAAEgAAAAEwRQIhAKdZ9so5bvl/Lv8VDZBFp5VAxXpol8P/9H3cevMkelWmAiBUO/XMGOIvMNGqQK6EZlviMa7XoEzSQPyVnLLFSbudewAAAGYDUE1X8Jo1WbaFQdbYrj3Hx3j5cNCb1TAAAAASAAAAATBEAiA4y+R5JN8cgHXaaA7lbBa8GMmULoAaVr+kAeYZj7h1fwIgZFY9NgXeNz4YDLxd8Pnj7sN1znuhnG26fBQjaZUvvRYAAABoBFhQQVS7H6T96zRZczv2frxviTAD+pdqggAAABIAAAABMEUCIQCbHRHwmcPaZAx66cy5g29WklLmIa/PwSkJPDeRoq1BtQIgbmjJCn1mdHK33nRWyxbcW5K8scaRLpB38CVbv8O8hSwAAABnA1hQTjueCU1WEDYR8Kzv2rQxgjR7pg30AAAAEgAAAAEwRQIhAOUgs2WuVGBTJWa379kyM/wYmBH3rTxKEoARrBeKyWKRAiB1yK3fyxQvHEH3TnC2S+HGdyPMRIThZQvT10yA6huUwQAAAGcDUEFOU2OBqGKNvMjHCsmjCnJYRC6rTJIAAAAIAAAAATBFAiEA0Zk7n9Jt9xytH2dQYkQM1DcAxerKYe3eNAu5omM2gPwCIDw1ON9RLo520/zoEPBZg4zJoPcuSD5AgvWpC+V6fdFDAAAAZgNQQU7VbaxzpNZ2ZGSzjsbZHrRc50V8RAAAABIAAAABMEQCIEuAhOriP8YACOmlcbjtOIspKfxHZYsFeYtN7leZeJxGAiAuRn4vSPithqfpcXxPWmI9QoOTXKoy4mICRjvosh6lKAAAAGkFUEhJQkHE1Ybve+nr6AvV7k+9Io/i218sTgAAAAkAAAABMEUCIQDPHSMw1MFEE5fzU7UAwpr14eUMBolpt0O2wSeTG3e6sgIgPuorKxrcyJXm7F9ZFfEjq/wVHnG5HH8XtxzKCVjR7zAAAABoBVBBUEVS3c4JOIjI3GNmd80pvGxo01z9rDMAAAASAAAAATBEAiBr7XJo8QVhs9uaCNHda/Qc7G68QsiF7BoQnU+HyBg8xQIgRXmVUtqaMu/+cO1lXy43+JCJDwP+4Wh4HloxZd/eDqsAAABmA1BBUmgDd5CgIp6c5uqoqZ6pKWQQbEcDAAAAEgAAAAEwRAIgav8vTvdy9LeGAXp1Vuv4k66vDz0cDrg9b58PYCMBCMICIHMd5CSnHI6gmuoM6x47IuGHUhEkSDsir7nCbIgqebF/AAAAaARQYXJh+xPfyfjz7t3XybWB0NfPNnUT/3wAAAASAAAAATBFAiEA3XhHnfvZyvTMKgej70YSPGxY+j9JxEQKrw/DGeutn1ECICP0WvR9qgzf/magaAIEfrkSP8jtDGX6Pm1Ga0R2PRUrAAAAZwNQQVIb7vMZRvu7QLh3py5K4EqNGlzuBgAAABIAAAABMEUCIQD/94LR4ufRdv333rY2xqNmNF6wIqr8et6tKoitnP1w/gIgGShO7pRUsDi6W/yXC9OTcSejIQ+N8py8QSVrpwmGD+AAAABoBFBBUkGmTAVfxcjg15b3kVEgJYJ2U2QPAwAAABIAAAABMEUCIQDBzMZplJAZ1RfKV/G69Z5LTRKgQaJjCUI3YSLPXGYxXAIgIWiWjwvVjj2R805litNzp2dABviGh/MooH2+IGkG6AQAAABnBFBBUkE6jVvIqJSLaN/AzpwUrEFQ4INRjAAAABIAAAABMEQCIFSPui93fZOAzbeGcqKn9WZFc1Lqf8VTckqSbeQN4/Y2AiADfZBnhS4I1lbSLlWrjpx7Cpa3dNf1kps6J6lSQvY7tgAAAGgEWFBMTLOwcDDhnmzvW2PZ042hrPLz64A2AAAAEgAAAAEwRQIhAKUA8o/01BnthQL/J+zk1w6gDOCvc9Mt5g1aj1XL5mwTAiBboeVC2GDN80z5VrxqyN1eFockmpkT1hGuZ+EHxOQSkwAAAGcDUFNQyv4AEGfN7yZq+361oobc/Sd/PeUAAAASAAAAATBFAiEA/Br8zzsBABj1HKb1K3dMOxItKqkGBqr6K9DC7VHlFEwCIC2hTs5RE48eQ8q2NXEGIVe9Vy1sQP8kN5KDANJIE+FPAAAAZwRQQVJB0W/ZXZSfmW44CO7qDjiBxZ527x4AAAASAAAAATBEAiA0RaPvNGi4W691IZeJAhNLzA5oUFT0u2OnKc3RdWjwjQIgYf9WZzx77wCiTI741pRwV9evKhsF9p6TjioyCWZpbKIAAABqBlBBUkVUT+pfiOVNmCy7DEQc3k55vDBeW0O8AAAAEgAAAAEwRQIhAKszweoUyGbxtWDHwSSdFNSbWr4aaqGo4+yQ94dPfE/mAiADG7/R+D6KigY+3dd1qIAozl7FcD/l3BxZ5r3i7LB7ZAAAAGYDUEJY1SjPLggfcpCOCG+IAJd9+Ca1pIMAAAASAAAAATBEAiAvOu9KY8sNAB20LivvsoIZSyXzsEld403a+cCdy0MThwIgcYKsPM0N4zRm4Fkq0iaPamU+0wVNUob0cJt5pUAXGbcAAABmA1BUQyqOmOJW8yJZteXLVd1jyOiRlQZmAAAAEgAAAAEwRAIgRFs4gVyCREL0jb3EhYTjTJ66Qrzpp2Mug21ymvTbCqUCIEuzYuD72qBv0br61DlVtyouKpc5SEE6Gov7Ktq14yrxAAAAZwRQUlNDoM4NeDoYvy/vYGblVX6fgMmKvBgAAAASAAAAATBEAiAH2lYDEdiOPio0uIen3I33vfopZzFdG+1DyD7EXn1NxQIgC5s1E2LQ92WsqPqXPLwCVgyGX0nHyVwPFJ7xmOtPVSYAAABsCFBSUUJPT1NUohH0UM6I3rMdPxKuPB6/aw5VpdkAAAASAAAAATBFAiEA8ZW3ssI9DXI+6EtcM/a2BFiE2hlU/6sUz3bw2ldH5qoCIBlrhS0L5OG9zGY7vE/yqBXoec4kU7ka3YzTMqkNFo/KAAAAZgNQUlH+J4bX0cyriwFfbvc5L2fXePjY1wAAABIAAAABMEQCIGZhTyenEYg16mMAuAmb1if8bMY2U5Bm7jONyhnuwjZxAiBmzle+cgQe3evjgiQscTHrXoDI286uXhbeg4Cne+01/wAAAGYDUFJRNivIR6OpY3069mJO7IU2GKQ+19IAAAASAAAAATBEAiA7TMRNele4aXsdu2u4ny+9f9teY26dOmXh2XDgl5wM+wIgHsvGT4UlLWfQOAAX5ftXv7DmXtr4wIkLXe1OkuEYWLMAAABoBERFQUQMcGC/BqeKqqs/rHaUExilKj9GEwAAABIAAAABMEUCIQDjhr87rgr/Gqe4BPIpAhEQg2x238W5k7gMnJEUZaow9QIgeZBOrEiE3T4svO1OB6daA3jsP0S+XLjoZebDwqFZW+IAAABnBFBBU1PuRFjgUrUzsaq9STtfjE2F17Jj3AAAAAYAAAABMEQCIBRzHG2GHBcRQeE6D59jnbW/8/2t40zHcyaJZAgGX1pgAiALB09oMpuK3HlsDd8yqwGrQfT+69TCsEf1rEwPjSbCtAAAAGgEUEFTU3d2HmPAWu5mSP2uqpuUJINRr5vNAAAAEgAAAAEwRQIhANaUqu+dbTtaVJ/1aCJK62k+sC7LqX46q0XDiwWUj8JIAiBznNoQeQ/Jh5a1E1BVFJwsKSEa7AyZ4v7jznfhjS5PcAAAAGcDUFNJ1MtGHqzoBwgHhFDkZYgVmdIjXxoAAAAJAAAAATBFAiEAycUP5MB/JzFVlJ9KEcAsVVPTEkBSotPD/q+1koFQiHkCIC4eAeiFfytIfg48r5C0lviJNkjlJby4RsEAOilWqBb8AAAAZwNQSUIbr/vCPyJGBAzOEvehQMOMXcc+RgAAABIAAAABMEUCIQCRB60V8MHdWJ88YwKTY8hrh5tS/liwRaZmKD0zJTFN2gIgEKoAFDmXEl5ZE39Z6g/0J+lTMxIKJkB/FJ08QcgSXMYAAABnBFBBU1NsRSLwA1vtIYC0D0xdnbqrZLQTJQAAABIAAAABMEQCIEQNy6fby2gRwG+jU+U9XyTdRzF65TCAQVP70oc+j8DEAiAVCF0KZmdqWRCZoV42MMeoFA6VGuWm3StsiP+OWEKkQAAAAGoHUEFURU5UU2lEBFleMHWpQjl/Rmqs1GL/GnvQAAAAEgAAAAEwRAIgQQLZ7gZ8TkJN8OXhrzeGFJrHiihnmww1cUgh21ETWFgCIB93rVA7WBY1NAQfWqOBAQvaTJELd3KjlVZp9cR4C0UQAAAAZwRQQVRI+BPzkCu8AKbc43hjTTt52E+YA9cAAAASAAAAATBEAiBAQizegVvDQLmNjYbYHfCOctyW6m2KMy9AikdUzU7o+gIgDcHdHotHjXGjEmq16xES/Jy3gAuThQLneljl72oYr6gAAABoBFBBVEhHjmd8C9JMhIvVkcxSczg91fMOSgAAABIAAAABMEUCIQCOMrWJYiMPQKqeddMTQhxhD/5AbcRGMi/tagp1rmEkZgIgZiMuOb7OqdOpqJRk6LLtQYiSJy6jO4H8iEVD3Ux1rssAAABnBFBBVFKfumhNd9LWoUCMJLYKH1U05x9bdQAAABIAAAABMEQCIBTIbFAAcecjjx4drHzAIzuF+Qg2NLIZ1Ul9Bw/9JbsZAiBuEJAFiGaYJI244ClHRcmZEO3X98oZ/OGeWDZNpUUEFwAAAGcDUEFU87PK0JS4k5L85fr9QLwDuA8rxiQAAAASAAAAATBFAiEArTvZ8R6/SOJdQjrrfNjDukY7fOEZyf+VYqE+gc+2y5kCIGE70gJyyE1wyaAJf0NdK4I3WAJSNYPzPawUHCmWRK+lAAAAZwRQQVVMjbbaISCzRvqn8gaEHy+wBbvg39gAAAAEAAAAATBEAiBAZmrnxNjBxAKAAYY7RddpUsVlkyVkOTV4x7vad3q15wIgbYoHowl7nS4xKQk7a6qYJv0sWLq8cg6HaxwMjby9cwUAAABoBVBBV1RIrswhenScJAW168mFehbVi9wcNn8AAAAJAAAAATBEAiBPEPQOS/EtXxD1+9u5S79wB4G5VrFTwMq7aMuetOHusAIgCnxca7kOwonjvF86SwUVFJ/KsPnizm7G3PM6oNK3YqQAAABnA1VQSXDSt8GTUrt25ECYWP9XRuUA8rZ8AAAAEgAAAAEwRQIhAOzFC16KdCFZj91k4lEa9+SaLKi3HszJnrjDVjymPVv1AiAnaiKp8+uvMI+4EMtSB7l5XX6mMv0cEg4phU8j3uPmtQAAAGsIUEFYR0JFQVI8SkbwwHWn8ZGnRZu1HrH4GsNvigAAABIAAAABMEQCIH+3tYMKAnAV+MeiqK3Bgd7GUQacxp6MBP5v2NVrKf4bAiAhwcjmwTpm5LAkqkakHLqadd4d58dsTVxOXu1hIpsKkAAAAGsIUEFYR0JVTEyB8J7UuYscjpmx+oOLcqy4Qq/pTAAAABIAAAABMEQCICOC+mPrxabnj3YP7tX05qML1OhYqyKr1QtE5oasyeNTAiBl+1IWdX2OHtDxo6xLHsm4t7ZDuWLrIxwuoUxSiBfczAAAAGcEUEFYR0WASIDeIpE9r+CfSYCEjs5uy694AAAAEgAAAAEwRAIgAPDldnW2NnOE/ILozSMHs0XYMdMdeVn9m4N11c4z/WYCIHwaeZ6G1N8wN4Sogu6vIx/QqKCgBOorPEk0ilsH/XzAAAAAaARVU0RQjocNZ/Zg2V1b5TA4DQ7AvTiCieEAAAASAAAAATBFAiEAln0tVYIchUzYWOAU7lHTUIsHrScRwv2CNzE6Ixfr76sCIGhZRg0iU1+tKonyasPIbfcRrjKjLAaCKlgKlo84Bb9LAAAAZwRQQVlUjvR1VYVvbOLgzXw2rvT6sxfS4uIAAAASAAAAATBEAiAqPM46FIqSkIf248tvg6fwwsbXi/nxQuJ6NF3vEIomvgIgcxtyUx8BBaGQgW88xMng9R+3YkSHx3okHEcFrokEHucAAABmA1BZTgFCw7L8UYGbWvXfxKpS35cieQhRAAAAEgAAAAEwRAIgG2j0Ws+lk4ipr0sjX2Eh0lQup9RYxEBieEZbY1DJFskCIC1Tmm1JeruOskJRjw9bBDsAih/ZCtWWRysp2aexXsmHAAAAZgNQRlIvoyo5/Bw5ngzHspNYaPUWXefOlwAAAAgAAAABMEQCIEa6w57dDJ4gyb+H5gOwPOSSHz/PfeuPeBj+ZXiRUBh7AiBFh3ISGSIzQc2mfY1aoXM+8j1kM75NfjSBk0HybZCeXAAAAGcDUEZSY1Pq340dRCEAIzK7kHQiKxTVSIEAAAAIAAAAATBFAiEAu3mR+a75pY3NqtrGM5MBAvvonI7PiUqMXq1P0WLgu3QCIGwc/6YKVsJPzAehwwXiMH50nTT1TbylPb8ZYw8+Dv/mAAAAZwRQTU5UgbTQhkXaETdKA3SasXCDbk5Tl2cAAAAJAAAAATBEAiBDjoEyNdKIbIo6wfOqr/QQ+m3e8BfmnoLGmqC+NAzchwIgFiKxckrRZoTICkxdcRXbyQgTpLFVd52SC5iseHCGDy8AAABoBVBBWU9Vyy+hX06nxVv275RWpmJBKxNwQ+kAAAASAAAAATBEAiAFdcI/i8PJ1A3XiadPtejPeS/sr9gZbWBFeeT78/CjZAIgPRSJUcftavvj91G/3aGOLmw7cO8JC6DG3R8cRMYtYaIAAABnA1BBWMHSBNd4Yd70m252k0eog7Few5f/AAAAEgAAAAEwRQIhAIoTV2ad4OdEVicYRsexhBKMNAm9WoE3dw3ew1Mdi/zRAiBLwoKD1x/9+cFTwIDagkB/pMsHdIzQLaU+GWQXsZ3ZwwAAAGYDUFBQxCIJrMwUApwQEvtWgNlfvWA24qAAAAASAAAAATBEAiAFBSnHjeBdPtVjiCfTVEyXjOYjvYvNBfo9jHdLb5ZrmgIgBcnM6Sof4kWbuwxTUtp0aJeKT3UE0fNT53av2ZC7Y5YAAABmA1BJVA/xYQceYnoObeE4EFxzlw+GynkiAAAAEgAAAAEwRAIgE0qm2CHUlCPXCWGVJ+YUrncQSAke/cazcaD/Dlh8g/wCIC4lj/AmP63unZhktvSxSP7iWkcZDF7IjQJvj020S9gIAAAAZwRFUEFOcmMLHjtCh0vzNQILoCSePp5HuvwAAAASAAAAATBEAiAD1FGS1H3K0OAhcmbroPiBW1j876ofT4Y7t9XjZjXPGQIgF5Jssr4hpKty9I1PXsKn1o6/gxjnSWtftLYUqzUVHSAAAABoBFBTSFCI1Zunlv32Od7TtecgmI1Z/bceuAAAABIAAAABMEUCIQDJd6Edx5uoHqOyZy/w/ZLtvyr/3bqjwvTwIYUxki7QTwIgMqS00LoHS5t34JYIG5ddzNHaRky6+73etQMKT3iFd8AAAABpBVBBWlpJvNh1bqSBYI6j3VpVVJMwXPCnlkAAAAASAAAAATBFAiEAk/R5pLtTAlc/QUCdLSL5RopW2VZ67p45OpMIjWnljZ8CIC/ZTi86T1J7Y+o83S8pvheoOT/hgBhnZtBkoRhPMn6SAAAAaAVQQVpaWXTCh61TKNrKJ2xqHB8UlBWxLBSNAAAAEgAAAAEwRAIgaKa9APH91nQAidHISt/NjSRqb3B2+NzpCpHkIzWRJmkCIFtOTepiNyIqroOEPOKz6+KzaKjvd9iz6aK/Lfw0RtUcAAAAZwNQQkxVZI3hmDYzhUkTCxr1h/Fr6kb2awAAABIAAAABMEUCIQCblC98OY0uAx+I0F3jWOOMa1Vd++77uH1qgmrbsQ/vwAIgPkPlXftLWlMpvp8KqCbu3ivlfY/rrA59rS5Brn3s4xkAAABnA1BBSbm7CKt+n6ChNWvUo57AyiZ+A7CzAAAAEgAAAAEwRQIhAKIXuGWQ7ie2n8vEi0EFJKPU3T4aI+lq2s93MwTI98OaAiB/JTIss73M2l1e1Yg3ah/5tqxfyHfaJv3jfxfpXjQsvQAAAGYDUENMNhhRb0XNPJE/gfmYevQQd5MrxA0AAAAIAAAAATBEAiAbS/FpclSn2zQTVXDqsR5Kxv+lQB99jbV+6kf8iJz8fQIgdHje39m3oHybi9aMwJowkQc4HAc9iOiSaQwWeAK+ipkAAABpBlBDTE9MRFMUi7RVFwft9RoejXqTaY0YkxIlAAAACAAAAAEwRAIgEoL25ehiwu2ZBCiqZ/0MCNZpm7Z3NQqornaIfbv7y/0CIE8OEzfopU8lJ2j2Q2TKB0wom7tx/mj769+m7M02QIQMAAAAaQVQREFUQQ2wO2zeCy1CfGSgT+r9glk4No8fAAAAEgAAAAEwRQIhALJQB8xJdwvNYnQuWzImGx2LPwS1GnCM53plbwzT5PFCAiBcFWEHGUWPMT691NzLmME9Wdi1YqXWQ02x4Sd2/6sLSwAAAGgFUEVFQ0gx2TncCaa7VWQvy/nVYWbrwL3smgAAABIAAAABMEQCIB9o0S0lRfJ4J08TNxBNmw3uh7YWamvRpmn+AcIYRylDAiBJJKSEtuiIAb5iXnJh07J6QF5n2E6mqrWwVmGLPeSElQAAAGcEUENIU6TGmE6BfAht3D667tvcwBRpWGkYAAAAEgAAAAEwRAIgKM/MZUXfB5c8b+ZFYqHPTpoygtIuyPA32mRjdRyXhjACIBlPtLYplYV6b4OoPBM3YRXU4tNvnbP00/f69sa3qv/kAAAAaARQRUtDOY3BwSomi2V6vQzYiZkVYiisuRoAAAAJAAAAATBFAiEAjoTSRFjqB4R633s22NObUb5gyoZZrPPLiVdaOSmh2ksCICgdYaWFKc7ytwXI3QjGu8+PWNCI6IG+e8IaSWI/DbtOAAAAaARQRUFLYw2YQk7+DqJ/sbOrd0GQff/qrXgAAAAIAAAAATBFAiEA50LzLUbtF7z0RG0hPDC+K+w1K1G8gJ6GW+Q0XZOiOtACIAEOTp0PtsJyuDSfNQ9PGeV29nvnh3svFpBB667OK2J1AAAAZwNQQ0wPAuJ3ReO26eExDRlGnitde17JmgAAAAgAAAABMEUCIQDS10kVJC+P+b2mfug0MmScD8fAawQeSMQsu8kmKDxekwIgRTFxjR2woAs/rOMFIxRYxFUVPD+x1k475RPfgi4oIswAAABnBFBFUlg8b/UMnsNi76NZMXAJQo1SEV/mQwAAABIAAAABMEQCIFxJmkPYa8GHHqH4mUZRxpIUizMrQj/ld6tol+ElRM6bAiBekUz8TSdaqHq/3nRnR9WH/OJa6YAdGvpSDnM+L3gqhwAAAGcDUFRFUbucYjImzngfSlT8j0pTCkcUK2sAAAASAAAAATBFAiEAzOef0zBEBlampDglGZebPiuqaj/fnR1GDr0tkkmGuh8CIF5+c8uahjUPaS46ADHgm4uMnigVow3OzZ+lp2AB5RqyAAAAZwNQRUeK5WpoUKfL6sPDqyyzEediAWfqyAAAABIAAAABMEUCIQCDrcaG55Aw5Z8MJanEH+7OIO5feHlvZFos2ercS2j9cAIgDaZzYhck9Xlm8BUKXKZlhRlr0CcxQIBs/xR+/uhndAwAAABmA1BHU5Ma0GKKoReRwm/01BziPkDDHF5OAAAACAAAAAEwRAIgJ81QYFVccmS0I7W0BkT5/bNaAckBm7jrOZsqkkU7QgECIGhGoZ/gox6NZ2iXyLNnP7ohP9QI/3O7CrO3gCrCcDfhAAAAaARQRUdTiL1u/jO8goYCeMBE76MzZMYoUDIAAAASAAAAATBFAiEAkufw9hpUVwwAfG55BOboVJ6KA7OguUf7oaAb0aMpZy8CIDQTUqN9u/HjpwQ2PB6icZrBN3JBjKR4Eil5Fn/Hf0CNAAAAagZQRU5ETEWAhQcSG4DAI4j60UcmSC4GG42oJwAAABIAAAABMEUCIQC7GQTSpDC8KVWJ9rwUDnLDnlySaU1W4gLLc11NblB4MQIgJF4drqU3pqFwiJ3gnIkNTuy92lmzNJqlMxVSC0kc4AAAAABnA1BGQkZ2DSvy9N1UBWRtmyzntyPv50pIAAAAEgAAAAEwRQIhANonWAZ8rDalxairXLHoyat+U9sW2fKLmWOA6liYn/b9AiByxhLAqOUKCnx4mQs/njtPfPIv1O2WWp6M6LmePgUBuwAAAGYDUE5UUwZs3bwAmetslnhdmz3yqu7eXaMAAAASAAAAATBEAiA3GHihaW4sYdtwg/GU4+MTDScRHC3lPCPt/x/4gPGQvQIgZ8H0nCzX8/rK5kcuHfe8Tlma86pKFcNMC8AFu0FlS8sAAABnBERERESMqaD72NtQHwE/Lp4zobncEppI4AAAABIAAAABMEQCID9jQrbeTk6vDZpL1N4dMnJb0MSyOIl8lp/PXCs6flScAiBGrvOOaXfK3mHPdFqI9BYJHzxJhqkGqeirf4Hs9UekbQAAAGYDUEVQuw755hf63fVLjRbikEb3K00+x38AAAASAAAAATBEAiA6orIj6G+Aztmk5IuDvNYfdxzBugwa8N1qkEAPvLci/QIgR6yoEQlUkUjvsW7AnUXaGml4YCe8ZwtR+OQGjmdp6qQAAABrB1BFUEVCRVQzz1GQMCNfdaE/Ka/P9db/T9EDUAAAABIAAAABMEUCIQDzFGBKzHK8Whc08wjrMUHowVGY50r16y2J0isXRYgZDAIgawfow2q4d4uRd1VLATzJzkIyZAjLxV4yN5eCxKepElMAAABpBVBQREVY8fUIx8nw0bFadvulZO7y2VYiDPcAAAASAAAAATBFAiEAgHeeqraN+NopXQRLC1P77ieuw+ROc1VeBU7jBZhgnRYCID0s2LBqGhjjLKCuTT1H2QWrbd9+y8ecHB4p0daiQC3dAAAAaAVQUEJMWk0u5drkbIbaL/Uh92V9rZiDT5e4AAAAEgAAAAEwRAIgI6FIKXppQC0lmgvbAlKjmSgtMLGwrOzvEhiwtiLoDUgCIEw8RTV2OhDMM2qiadgxPCUW9IGhmiTGvQI7+1rjzxSdAAAAZgNQQ1S8Ftqd8KIvAaFrwGIKJ+fW1kiFUAAAABIAAAABMEQCIGumiLUHaQGMacRyO85X8BwCUgLXA7OF2lqx6U8RsNlUAiBuD2DoGw+o4D70/XAXIoVobw7/h3cp77KWqwyfKLxZhQAAAGgEUEVSSV0wrZxjdL+SXQp1RU+jJ6rPd4SSAAAAEgAAAAEwRQIhAPLyBMO/dgy7Nn93h8SJJitI2bSiODsFX6OmdaRZGcErAiB8+e2LxC2Aa7ssVTIFCEUkXB3hSaMVd7PmP/yBVAo+1AAAAGgEUEVSTOyoIYWtzkfznGhDUrBDnwMPhgMYAAAAEgAAAAEwRQIhAJMtpIKoOvhBN7IqjPbTL1sAfweT7oelXPZDYrp6QInSAiBYXs/uZ0thOVJYVqmCe0Lp3ieggbqX3EyDVfHZ5E5iZAAAAGgEUEVSULw5ZomJPQZfQbwsbsvuXgCFIzRHAAAAEgAAAAEwRQIhAM23GPxC7SkJkoYkrPP1VWlQLf8myrTfIKgEVfVQLE+5AiB8Dgq4of/xwmkOMkBXQF99ayT+RmcTLsQ73Awo8fDxHQAAAGcDUFJTFjczvMKNvya0Goz6g+NptbOvdBsAAAASAAAAATBFAiEA98Vob2HExd0hdgDIA3E11jYOVTszfp5GgW2SwuCcXGECIFk/Gr7hyB3dxq3i0NNozYxg8i+KQhbzTQmGkMlpAdGAAAAAaARQTUdUr/zdllMbzWb67ZX8YeRD0I957+8AAAAFAAAAATBFAiEAm29x7dn2cxX9nWVUJ+byokNMA0HD0BaHiICsATTkpPcCICrJq+OOeIYtewNWFFq9OqG7gn/1K1EqAjbllGXfym/xAAAAaARQRVRD0dO2YtkfqqSl2AnYBPpwVQsrPpwAAAASAAAAATBFAiEA1MaYqBeMIXAZ2i47Tx6lSVTS2nmqBXo2xxYhtn53nXoCIHeEiQ6abz0q4Vbz1LXRbIG3hs4E0U+ZNN0bk0a/huGTAAAAZwNQRVRYhJaewEgFVuEdEZmAE2pMF+3e0QAAABIAAAABMEUCIQD3tYdwMUV0xGbcUyaBMNraYFJI5f/ahCWTriKswpfipQIgaDKPwmavR3M/T99IjspBPX3K8XkLKOrvRzhWFYMC368AAABpBVBFVFJP7Bj4mLQHaj4Y8QidMzdsw4C95h0AAAASAAAAATBFAiEA8jq7skAB16zMhgN2P3clI7Q3+Mt9B4WY7QZPD7dCohQCIH5xaSM6yzeNCfpLJjLWJJy1l+BOgESv/MOP5k2VihnTAAAAZwNPSUyubrb2wKFpSWi594pDFjGcJ7CWSwAAABIAAAABMEUCIQCET1/ttaeJ10DRK7PEfumLl7cincVlQixtmuKEzPDJYAIgbb5XZ1qfOtMR7tE58FLX8LOjre8XWQvT7aJIcYAftnwAAABoBFBFWFRVwqDBcdkghDVgWU3j1u7MCe/AmAAAAAQAAAABMEUCIQDQK9jSWnuOBo03oXTTVWDyI/qZM27TRsaHy5Xtrpo8QQIgKfVqLzzVjBxX4yr6LNk1Y0lFTUVuLVikWn5FbvEzA7kAAABoBVBHUEFZyUn8gqFZZPtbl+XPj5/+0TkIaCEAAAASAAAAATBEAiBtaTlmItGuuQuHk5BSeoXtI291szlqg0JzC48QfpDlmAIgPy0425iB/QYYGeJiR83v5QEFRCjucCYMhCdqOHVhZ0kAAABnA1BIQWxbqRZC8QKCtXbZGSKuZEjJ1S9OAAAAEgAAAAEwRQIhALeUVLZDvp2ooz7X9JW1RCzW4xwOmgMfekes5CQ3vZ3DAiBGIbHKrwq2vf3XtdYQzf1thKvnK27et+0W1yLkWV1ilAAAAGgES0NBTBTrYPXycLBZsMeI3g3cUdqG+KBtAAAACgAAAAEwRQIhAILa8C6Hx3cBkd/ahAjG5M/ZqbwGAlb1RCMFtqgV6f3hAiBvwZoDCQrBRG9+Crh6zDYgA+AtZS+Iz/jmVADw9ittzAAAAGcEU09VTHWFhnfifJMPtiJ1n+r/7it1SvB/AAAACAAAAAEwRAIgCv5YQxdl/3K2mzgmHLd8MDB2qyaXAtYEEi2Sj9rjSJwCIG9q84D0PaLL7/ZrIbeo2MH5Emq6MMn1bq6AE5w8atkrAAAAaAVTT1VMX3nHXi6HILOeJY9Bw3zE8wngsP+AAAAACAAAAAEwRAIgUBCZVGsNydCwqpvnQpizqKbIBbeHXfJz+PQCU3FP8gACICLzbjbSN9tXbxh01exl8Iy1NigbIoHPDwOPpftGYr+pAAAAZgNwaHRFelfpMcuk3/XOhQDMDf8YNW3wQQAAABIAAAABMEQCIFXXNP+81rWgfUMwIB27EgcObeavO/cYkJrXDjXIruvkAiAt9dV8p5YJNM2AdjqOA0ewV61kgr8SvWLAH4N4wqM5hgAAAGYDUFJQo9KcUr8J7xbyMxcCmgHEA2MTGCcAAAASAAAAATBEAiBEsT7SzCayKzGnL32IntBsVFuBdvrudoRgsl58lyPbiAIgUUHuq3auNJZ5xBQZkI3kKe5UB6az6UX6zxoIOoJpipgAAABnA1BISRPC+rY1TTeQ2Ozk8PGjKAtKJa2WAAAAEgAAAAEwRQIhAJCp9+mltq9rn9ZLGbCU48ONACmskmCpPV96Ia6M8ZnpAiAMnItQEbuV9YYil2al/93gnyfaoXWiGdU7zEv6HxhrigAAAGYDUEhO9z/Et0pMxvnqIDqdW7/0/846TEgAAAASAAAAATBEAiAPqq3cY8tXC48+wpxoTUAuW9ox04HfvKUw6Di1a7sVIQIgYrdSau05OTcRRkTmzc0L3+vWZ7IfirPXaLwfT4ZrKQ8AAABnA1BQQ4T3ELrjMWp0+w/LAZBNJXikzGomAAAAAQAAAAEwRQIhAMSRcrBCy6rIc/puSZKh3DTcfqK1U15ty2m3Q8TizWqZAiAZSjkcn2MBRvcpXKeA3Xz1GcBpcQ4w7yUVvNXyq7c2ngAAAGcDUEhYrsZUBN3DrzyJetiVcdV3LBppXyIAAAASAAAAATBFAiEAx0/XzclLKQoMEMvA1aY2Ct4NTCJvTTS1haxlG+16250CIDNGChWC/aH1mrSSc67qDF6Fni1rTUWyfwMRmcz8ejCUAAAAaARQSE5YOKL9wR9Sbd1aYHwfJRwGX0D78vcAAAASAAAAATBFAiEAqjaa09urOy0Ef3nzfCe7kX1koV69V8ifGbDrsZvZJucCIHAF4JyRYnRpjNYlk0iAoXgqe7qcpAlOn2dNb7o/2Ls1AAAAaARQSFRLH+5ViMsd4Zxwtq1TmRUtjGQ/rnsAAAASAAAAATBFAiEA96WbYFNm6HDHfjnSTiAaa/rCM0achPBXPqowlaTyjsoCIDQC4OPkAfr4dh4GT+lKlOeb2vDKs8xQ6GH8PL+P8x+XAAAAZwRQSFRS4fxEVfYqbolHbxByUwwgzxoGItoAAAASAAAAATBEAiAFU6habE7TT+RoEgzYjw42OLXkOLCTZ/RfVZYh8rEAAgIgZlssLr0R8fScUopS2sHGEzQTL3f+FU5aVftrB3Qu10sAAABmA1BESWMoBr9cjwYpMt0SEkTJ++e+y4tIAAAAEgAAAAEwRAIgXsHgbdgKVy/uuI3hGV2UFTcgsTvJedE7YeDgo1TlYtcCICOZl3QqvSL7Gjsy2AFqYyUSEXsOrJ0ShFnnhLkK6YkyAAAAZgNQSUIYZM4n6fdRcEeTPKrlMGdOjHC4pwAAABIAAAABMEQCIG4xvhkLhvyKebJDQjQpN0/ZewimanOCLWx8R1eHpR2RAiBH25fd5OCcTy4kzBaVj0V4M297yP474peEMRP0psM2YAAAAGgEUElDQR7OFzna4IJTrlgsQEURs3NVtCyEAAAABAAAAAEwRQIhALB6zPdAWVMxyJshgQ4bhXRmlC2wVt02RJZ8l8q36YSCAiBDM6/nft4dU9NX7KYNUTscJ0PUYUVUzcATPgxGctNb+QAAAGcEUElOVToTEbjEBGKeOPYdVmzv7+0IO5ZwAAAACQAAAAEwRAIganXrCmgGOSpwzTH4lAFr3NxaXNEynm2bHN07/czU0D4CIB7n6lqY51vsGGaBqHXq3Y2C3Q0ogJcQGLeX0M1n/xG+AAAAaARQSUNLKHYJoVpoNkClu8TZPU1fTta606AAAAASAAAAATBFAiEAoomW6KtsdD3l+xBsmU9KSxR1y2xxXl/i3JqeS//MDCQCIC2V/dJNmbZnrE4df6J24MFTdUVS7TDMfwNiIzZxKuQTAAAAaQZQSUNLTEVCmIFnK5rkK466DibNnHNxG4kcpQAAABIAAAABMEQCIGKboLzDd+HOZ0agKaNHr+AtEmUF97Ixf9twrSZJTmPxAiAfHl2+QGxm+kkkhZ9CBX8wdITP0NlQxlG27wExQlr4sAAAAGYDQkNQ5PcmrcjonGpgF/Aerad4Zdsi2hQAAAASAAAAATBEAiBeB0WH6EYkFdNCfgcbgiCKhgJW8KlusBd5PXzwW47wAgIgRelTeRYcyip8hwTRrh6ksx1EBUTAayafrZWls5EwbIwAAABoBUJUQysrAycRJCPzpo798fz0AvbFy598M/0AAAASAAAAATBEAiB7VxQa80FdF6eutcB0RQ1QbJafutar2n8Qt9QQEPbiTwIgYl8+6p1+2WnArQgxelmw5VKhFUASevAKGwj9uNqeRDUAAABpBkRFRkkrK40c42HraOngVXNEPEB9SjvtI7AzAAAAEgAAAAEwRAIgbfWajSu9NAW8oHanr1DUMD5ohqaUGainrbqU5+dn/8kCIDtG4JqZWAf3MijZLQ3TbW/9oRLsptW+HDAlvrxNa5byAAAAaQZERUZJK0x48iWGnAjUeMNOX2RdB6h9P+jreAAAABIAAAABMEQCIDh292NcyO7BzneTgi91dGCWL8NSbnc8D6VdgVC+MlzJAiBcjWEcDm2G+vN8G4cPCBep3OB9B3nVbQxJxQYhyyEZtQAAAGkGREVGSStTrWpiauK0PcsbOUMM5JbS+gNlupwAAAASAAAAATBEAiBYKRDZv326YyaU4BoM8oMyyvMSZa0aceXAjbCJrAu6+QIgZLYeAkBneXrm0sOLAQh3FkMGcof217zE7/5tR05zhNoAAABpBURPVUdIrTKo5iIHQRgpQMWr9hC96Z5zey0AAAASAAAAATBFAiEA1kAYuZakHA8Ukw65aSMMQJSXIyhYx9E5fN9flzwMQnICIHJhefSurLpS64kx6bluTHbuJl9pJcCg4Fr3rpcM6cIWAAAAaQVVU0QrK5pIvQ7AQOpPHTFHwCXNQHai5x4+AAAAEgAAAAEwRQIhAKzOa6xjE6YKMKGtkualE/zE/p/YgpDTvBSqYvmTSkFnAiAV+IabkQjGkP6Gyi6yITWVcG24OiFXIoYxuvrdw5xAXwAAAGgEWVBJRRdSXk9K9Z+8KVUbxOzmq2DtSc4xAAAAEgAAAAEwRQIhAM6GJmZm1FLCRUQdkujO5KxUPkd0/aapNxSkUGSqD3LXAiBAx0FJTWtBRd14Im7xvd7CExtYrWlSB9H2HrHZu56TegAAAGcEUElHWEfoIN+UMXCw4x+eGOzVvdZ7d/8fAAAAEgAAAAEwRAIgExj4UqvwTEbU51oAP1baeO1khFSzj8AGSoVcFrmPf8kCIA2r4n6qVu7LhHBT37Ju1qOCSM/4A5URgo03cowbh8UwAAAAaARQSUtBYPVnKiccfjnnh0J6GDU7pZpKNXgAAAASAAAAATBFAiEA60SjhLANzX9aJPuLn/J6ZzDcffYTYTs9oZwWK9bVn2UCIG3y/oOdEUd/d6fVUJF4E6cQBQ1Jj35H3v0KiNxiJJQCAAAAawdQaWthY2h14J+2Do1ufhzrvoIb1cP8Z6QPhr8AAAASAAAAATBFAiEAm9WAUSoNXOVYrckKChcn+m2i98dsKCBlsLao1WdOsX0CIGEEsUWuXdMDRmxqEAoJtAWpnjiyteFtrGty5sRHRhfwAAAAZgNQS1BqUysIxlShqGBpt0xWDY+g/4QiGAAAABIAAAABMEQCIC6CGf2waVvY9OFp3K2dMVpBQB9CaKmrvgxHCkBJAxeMAiBisTFzQ+s1ByL0FMd27NnrB50yRloJq8MUxOvtaHI9fgAAAGcDUExS44GFBMGzK/FVexbCOLLgH9MUnBcAAAASAAAAATBFAiEA6554gAQUkLnqm0LHPsWh/qcMHXrtMg9nyF1svxt14CICIDO0IKajSYQJQGnHsH+QAKnm9qTfZJ57bY91KRzscQHdAAAAZgNQTkuT7T++ISB+wujy08PebgWMtzvATQAAABIAAAABMEQCIDQqV3ZstHbVlSPYl4vGUM+Wi0Clza9Jq+GZVI/zsutqAiANm7aaycycj/5OgTGhjOU0PxSbWcpyRYpnf30FADhcYwAAAGgFUE5PREWvaRUIulfUFviV4yoWFtoQJOiC0gAAABIAAAABMEQCICSPMSQ8VNNY08hybygpvIw2568HGNDoAreN25jj6OLpAiA6GxY7bv9ZNWuRuzKUZmbpaRelvpUq3850mForLrbUYAAAAGgFUFNMSVA2znpSzaQEuPqHqY0NF+x90LFE7QAAABIAAAABMEQCICtjfJU2x9RTw68k8lsVI9D+2EZN6AV6pzasnSliTybTAiAkSvORjTlYvgg8mF/odNq2oXZuAQM0hWF0eCnqBQz+/QAAAGgEUElQTOZFCfC/B84tKafvGaipvAZUd8G0AAAACAAAAAEwRQIhANeQaCcQm2ChUReR1Isn8cFiWMuSHjRrhZjbyvgmcRBfAiAUr4Zqteacl7dpQBnHpidSq6YZDcuAdiKyMtVOHQFoDgAAAGgEUElTVDFdwbUk3leujoCaLpdpnbyJW4ohAAAACQAAAAEwRQIhAM6g4deTe05q7TK58bID4/qDHyjqIQnmFIEksSO1IW0yAiBnG8dN4ZNwddpPJ+SRF2poE5DqusUzP0bX8sqcFp1SgwAAAGYDUENI/Kx6dRXpqddhn6d6H6c4ER9mcn4AAAASAAAAATBEAiAG48GwKHlJB/4vWfUnIuxe9vmOqpibHXKokX9crWqVUQIgKri6o8SA+HsYHOpDWr5vpZnAe3rZH4FGnqcnzWOEMJYAAABoBVBJVFFE6CUCDi9gMx/oamG5rRXhI6RbJaYAAAAJAAAAATBEAiBUN1jyIZIN/9vfg6+ATnEw54XWLgyHojA4o3DTQ7ql5QIgUJrsc58/xOG/e8CFn7XSi+Wekyoax2ztqQ4pFRuTuKQAAABnA1BWVHhpxKGj9vhoT7zEIqIa16vjFng0AAAAEgAAAAEwRQIhAImIbZjgTnPKy/kCL7Gl8i2pqMxautBck9Y0mIA9ZLYKAiBDSyTTPtM0oRyoGcCNBREBn1OBOIa0QkvFfUKq1S/ONwAAAGYDUElYjv/UlOtpjMOZr2Ix/M054I/SCxUAAAAAAAAAATBEAiB5+DI/PH+kaPmnim2kIxgB+crrZlJN2qsa+RtMRx/gAQIgEwsQ51146rxzGIPE/ZDFjQOz0JKZ9oMlDpE8oXwSKsEAAABpBVBJWEVMHpBnF94uSkYA8TtpCXNrA0a93j4AAAAEAAAAATBFAiEAolV4NhmzYXM52qfbTRo/IHCCbMEkhyJwFACAldC7LUoCIFHFyXICQqLpktlISGMlSiSCiSlk14pLp0SqBqnaHiBiAAAAaARQSVhVrUxq0fAt7xcQotBsh1ox1IaL1woAAAAJAAAAATBFAiEAj8NmBtrMl4pncq1ccmoaXrKH+sLi8ZGa91Q0eqHBLhICIEAOjOdROrWE8NUEO+7p61ItbwqNMCggS3zBKa4UuXGIAAAAaAVQSVhJRZMYEFRgYm5/pYMI+kvOQORhbzVlAAAAEgAAAAEwRAIgaNaTQhRnQYpmQhpeyUY4EvZ4BbtYXVGUs+VLsANv+scCIFZabQk4tMKaJyibXs1j983ZJE/vJRLu2psp0lxAMiZGAAAAaQVQSVhJVTehXJLmdoaqJo3wPUyIGnY0CQfoAAAAAAAAAAEwRQIhAMJkiefbMDCiDbYTXX+I9bbJZChV+zswbovvPnUNN5QpAiAroXYnn1tTvn2Ew24QyE2zVo7wW8xsOe/rVocMTNQM0wAAAGcDUEtHAvLUoE5uAazoi9LNYyh1VDsu9XcAAAASAAAAATBFAiEA6TM9FJhrIWwJ3KeRmUwgneHYUAmslEs8BMurxz5belECIANAeNaAIYHkQ84k1UGCTlT6zck1h4K19z9QUdWbXlYUAAAAZwRQTFVHR9pUVrwuHOORtkXOgPLpcZLkl2oAAAASAAAAATBEAiAWGCAYAiFyDgYBqr7wImCzee3nR4L+nWXTqqJ6dlcyBwIgDsHzp8bp+1eFkbbEhV7bFqn1I5kA11YP/6shkgoQxAIAAABmA1BMQV9bF2VT5RFxgm0aYuVAvDBCLHcXAAAAEgAAAAEwRAIgRDTJ916DXjry7z081p4EwiteEYHfWzAZLZDcndzbyKECIAUm5aXgLAxviKli58Hhf47cms2mxk9QOXR+bEOkAFJtAAAAaQVQTEFBU2BXHpXhLHjLpSIwQmkpCPBklDWlAAAAEgAAAAEwRQIhAKu96wgZBRulfTMnUKX/e29XQx8zi3n+tpRqO28zCYR1AiAvAU67IJBx3cUibLHLGzPoNIEgC+oJgBTdQjvD5bW9iQAAAGYDUExBMH1Fr7t+hPgu89JRprsPAO32MuQAAAASAAAAATBEAiAV71eq26WcgJZBbW8X0H9toARB3dEEIOl3fVkKPbqAHQIgbUZtcsrEoiHZFfsUifLpXg1LlEdzwPCFIj1UIHvCETwAAABoBFBQQVkFTWS3PT2KIa89dk79dryqd087sgAAABIAAAABMEUCIQD6G6A8faEz2cOEOG3I0zHyt5Bf3fPSVMH6Pn9yYEP8fAIgDfzJ1fN+CHL6o9noVba2nXDPomlzrv3wSGdTbGlA540AAABqBlBMQVNNQVlBaiViina0cw7FFIYRTDLgtYKhAAAABgAAAAEwRQIhAIQsfCsltui9XV1xsctT84yrbeGcxzme9REolayRzkG6AiByuPu3SstI24nmznD2k5t77KIJYvRdK5cw9s57/qVUbAAAAGgEUExUQ0Kdg7sNy4zdUxHjRoCtyLEgcKB/AAAAEgAAAAEwRQIhAI0MF2V6VR5Cxs13K2NtLJHqSyNthlyyyP+16YgKULgjAiAzf2U5xL46DJvYxzfZHJA1/CbpnT1+vulmfrxI05npJwAAAGcEUENOVGV7g6AzZWHI9kOJpvWt5nXASww7AAAAEgAAAAEwRAIgF+xB94y33q0FVwKXZcW4simDQjFxXQSG2maHbK9v/kACID5/aN4gsr0Vtj8JYiqC+Y0MSEAiO9K81WsoR5FJIIByAAAAZwNQTEEBmPRvUg8zzUMpvUvjgKJakFNs1QAAABIAAAABMEUCIQCmsCwYpyWnrl4rEPrTHm6lQnMP2XFklQ1ruPtjs5VCiAIgPvOx1BHujAsNLbAcSxQhS5DtCFtrHSTGNoElcIDQJuUAAABmA1BMQTpPQGMaT5BsK601PtBt56XT/LQwAAAAEgAAAAEwRAIgZ4O9eGB5CdlCSVA/CsOqd1dkeMxFxhAq83Zh5b0FcbcCICarl6vhrDIN6AImNxTa38WZZpMPj6XhNAjrA0dFkT2GAAAAZwNQTEatpi98zWr2ys/wSsy8T1bz1P/U7wAAABIAAAABMEUCIQCX8Qqs+7R8/tpn/O5CGEuOUOjMdaJKN07BefZURxqaPQIgMNL6yMLefuUzKWXA9kdSbBPnBxAuoKWnzHC2enAdk/kAAABmA1BYR0fme6ZrBplQDxilP5Tiuds9R0N+AAAAEgAAAAEwRAIgXCiUwUw5FVbPn9s6zC2AvLzryCd6RfATzoV6PhdsdX4CIHhgDrJX1hvLgkQu8+OGXP4+5EmGb6yEQEUns+TupEevAAAAZgNQS1QmBPpAa+lX5UK+uJ5nVPzeaBXoPwAAABIAAAABMEQCIDCgk9AmIOqd9j5fIF516xNtD6bqA3fqwOOXYhxPad2tAiAZdnbSp76EoMmEqmUwtXqExE2cQ/j1y4hAlj7vaHvSCwAAAGcDUExH2zoHQlEi8snKqXqPcxj8yDGOTZQAAAASAAAAATBFAiEA0+veE200Ys/UWCc5jdx7+mYCjwIUhM0oybwKwYRwBw4CICJw0MWB2Q8qaQjud7Aa3vUSK4u1Qe7zz3iJQSnmWYDhAAAAZwNQTEU4c5Zec9miH4jmRc5At9sYf95JMQAAABIAAAABMEUCIQDXbyqpa4APeobVskU+LlIpgiQQmZI4MAF4gP2k7YfEDAIgEQqO4ZKY3QsVHX4fu7G37BiC+V7H8AQQ8EwnZdLHKAwAAABnBFBMRVgPZ6Imw4VQDGj/qLt/vg2xX+ZeJAAAAAYAAAABMEQCIGNpWBbdAg+JmmJmvRwQZEJ+6omXxZJD0+1mHyXTHJjOAiBM1aITCTqzUDCo49TAMKo2F5tATK7QHskpZBirh2GD9AAAAGYDUExHhcpnENDx1RHRMPaTXt2oisvZIb0AAAASAAAAATBEAiBOQtoENao4p4v81h9UQ+wOdGSx6LoS2x+KxfIhXIhK1AIgcgOt27r/pkaT34kj3NA9iLigO/9GulctJK0MnA4dlSAAAABnBFBMT1Ry8CD48+j9k4JwVyPNJjgPjQxmuwAAABIAAAABMEQCIBfUSGFAL3lDijwzmZBR5BQcwHtklr70FH7dhJllCayNAiADAqdNvU8+9PBNS57uojKiviE1pKRKVukFKPxzwwZsQAAAAGcDUExHugae5TuLUx86sRfJLKCaIEyeYoUAAAASAAAAATBFAiEAq3VG0VnjzHIB07cdon96QvhJ/dCDu0m3upRJe1AJXc4CICiByWDNekLPXY4J0xjHtkFOOz+TEU39Z6bZ/0pudituAAAAaAROUExDl/tvwq1TIDOvlwQ7VjExxSBPijUAAAASAAAAATBFAiEA56yGOu4XT5TFfItMyra0kH8HIGFJzUSE2h5gkkxZLkMCIGb+T7W6QYoV/grP/PZdSHr1LVVPMH58jsho6qx9ezjDAAAAaARQTFVU84AR+RU6z/rKP7/ELd+nZsmA2WcAAAASAAAAATBFAiEAkE8RSXiAasDA0XA1Hx7/RHY9WM/hECzBie9VDHS5WAoCIEWVx4AKYMhYkeyR22789ylVFvozUXG4W+tlXOarCyZUAAAAZgNQTFXYkSwQaB2LIf03QiRPRGWNuhImTgAAABIAAAABMEQCIHcLH1UCuUcMrhPopmBkdw0PuMoQup9hPeyWLW4MpTZxAiATFQklh5GW/t6bIL7cFGQ3TPp2BzQojO0DKoIr1ny2wwAAAGcDUExUn7/tZYkZqJa13HsARWziLXgPm2UAAAASAAAAATBFAiEA79oqwQkynOwja+iSDcZDw8UQsKw0T2vwlKGK2ANDAhkCIDc4dyQ1ryPxxvRl/rw1gtgmiH4FbDFzuJi0WPrPC4IuAAAAZgNQTlSJqzIVbkb0bQKt4/7L5fxCQ7mq7QAAABIAAAABMEQCIDBN7kqiyPZGeRSvQXd1K/CZzXfjK+FaNzXCbHHH4H/LAiAqCmUrCADuBRNo5Sfqjg1EHJtkrFmcWt6aaLqw5YPtnQAAAGYDUE5Mn8jwyhZo6HKUlBt/Yn6cFeoGtFkAAAASAAAAATBEAiBHDg+qZ6vH07rXwkJ5wkSMbkpkWfU1Bo2bwk032npILQIgMDcdm+zYPoWTyg/hx/lJMWMd/5mypsOYH4Ap3AYd53gAAABnA1BPRQ4JibH5uKOJg8K6gFMmnKYuybGVAAAACAAAAAEwRQIhANcDjUx3CjAtC6AGZMFzRfwGX5csjgBPv0N/72u2BBWRAiA9Tl9DzESgiyucFJ1yiW7F4+7oD0C/is5HklE/5p/IaQAAAGkFUE9BMjBnWLfUQalzm5hVKzc3A9jT0U+eYgAAABIAAAABMEUCIQD5opcdu0GMDSQouk44fhd1s6dKBQjE7xMZtGPF/r4svwIgCDSC9ltVdYWVWSz6zKt+Xsc69Lsg13PHJpgWUD7jM7IAAABnBFBPQ0OSa+E7TZPynqJU5OUY8zCZ5F1/BgAAABIAAAABMEQCIDfk/XY+nuQ1lCP3Ak4mriFeVuifZlKTmAdRmSeTUjWZAiBvI6xVO5lAhVl8qN1ZUIJjvJ2zcnecJwsu0Pm3qmkCFAAAAGcDUE9ExpdkgCGHDMJQ+81uqOd1JPV7RcAAAAASAAAAATBFAiEA0yoeFZ8DbkIVuRTqdkOjsZZvQoMQLwpWai/l3MzqpGACIGJ9rCCnJGY+ZoqjivR3/m+HrWbQlp68BbrgnyiXXxucAAAAaARQRklEh8S9MDgXYwHoHmaCzlGm/a76vQwAAAASAAAAATBFAiEAqZnwM98lm4dYF7TeLbTVHtoEJyvtTrmZ2+G98+6OINICIEjjKMVyCqjfkBUMVPWLJTwn6PM7syg5L1ZBStR7KxF/AAAAZgNQWFCVql0tvTwW7j/eqC1cbsPjjOMxTwAAABIAAAABMEQCIEpgw8hEVosH3rdp3OW7LrgpdkR7GY0vb74nv+P6sogzAiAl4iZVYW2qpxbM9+P8lJXAW1yzIdvxy46i0JaW8eDldAAAAGcEUFhQX48XkRQjWEKXjYkX4IchVBByxGWEAAAAAwAAAAEwRAIgJDwxn9sgqD8+XdcZA0aveSqUObOqqlf4DAsQpUWWDNgCIGQ/Gt2wCyDqY/+S09zxxlJXWlEu0RWCsjGfzguXlMMzAAAAZgNQS07fCaIW+sWtw+ZA20GMC5VgdlCVAwAAABIAAAABMEQCIC9wmoTPh6axbzuQBcwInvUiOCdUd83caWdE6sbfUEmNAiAfMN84NfclYbe+osR1a6AGDZMZFOYDmQXVVhK1+IJ8bgAAAGcDQ0hQ89t1YOggg0ZYtZDJYjTDM809Xl4AAAASAAAAATBFAiEAzzPU9S0lPNRHD61L8WWQRJ+ne1TWKjyyZPV5QYYq9JMCIHTWCRk/qBpVVv67bIOtOTLkxVZfwt1o+KRBmS2NGgHcAAAAZgNQT0u8je7onxz0tmFRQYWqGreAM2xMSgAAABIAAAABMEQCIAG9uIkQcGo3+Z5BHdnLZBMxj9fP/3XemIdPombnDniOAiBdY51UavS9dDrgFhmSOyDK6uGqfLD6wLJwZcmD5CsPfgAAAGgEUE9MQbvlyBQSutGYdzANY8yNgmShVAkeAAAAEgAAAAEwRQIhAPtW2+SoypsOtHl9uJrdFTVDAnP80fAZaGofECzWastlAiBcwtxjZEArraDD3TTofFU9dMPgMrVVyJgDT1AmXTNdHwAAAGcEUE9MQcaRvCmKME1ZGtmzUseo0hbenyztAAAAEgAAAAEwRAIgCWUFbgOWQfUtpZW5ytW/5BKAhhwBbjUD8HHo0MpD7GoCICYRTxpVJJlcEqzXXUGiHkGZhH1pZDUMgJ072TrhV6NWAAAAZwNQT0zBf74dcJ3fbAtmZd0FkQRoFax1VAAAABIAAAABMEUCIQCEUgRh2A210yKdhNxA2s+JU+5aAR8n5PRLY1gg30ntmAIgdgoPzL+/mKheb0t/NS6XCIS6e0miUQVXvV9RtOGuxg4AAABmA1BBTP7a5WQmaPhjahGYf/OGv9IV+ULuAAAAEgAAAAEwRAIgY0MBt/LGpwWnnNJ2O8lAVTxA7miQ5OtgdZnY7XOjeXgCIC+2YNxTSoWrrfQBnmTyIvcteCTwBP2842HXSgT+C0j2AAAAZwRQT0xJoaNtNTe743XMlpR5X2Y93I1RbbkAAAASAAAAATBEAiAcF+iAnzEY/pQoi3Zpx7WhiAyUde6KJE/pilkryyOB6QIgDhiAFf/ae3KdMrS5H3gd4y2gmwV6gzcsKQT5PFoqgJIAAABoBFBPTEOqgzD7K01dB6v+enImJ1KoUFxrNwAAABIAAAABMEUCIQDZXjmycabwcMXhaS9qjPI2upjMbYT/A6GqMiyqTbNz6AIgHf3yyTAPpxdmXJp3tHrLSu9aRagOLZGU/Uy7RNc1DB4AAABoBVBCQVNFRLU3tvlMc6VPe/ipto+BJdo8MwsAAAAJAAAAATBEAiBUJPzTEctLKIaxN7BBix1nym5VMSuQXZMhK12bBpPwNwIgRJFr28H1mWh85/EAPRPvc9doZYkdgBb7CGRk8DIxm7wAAABmA1BCUimNSS6MHZCdP2O8SjbGbGSss9aVAAAAEgAAAAEwRAIgQktaDC7lxa17hqiTyEUH/kMW841lQs4rFteGygfYrAgCIHicSn+6XLqaxpQ+iErST238P+bkFxoaLxotP1MBPJUJAAAAZgNDVlI8A7TslHeAkHL/nMkpLJsl1KjmxgAAABIAAAABMEQCIF1wMiAYs9d5/FpOlSO3ztDoPgJc5h/RH4J5Pi1x2LAxAiAJPWi/JGCuhxBUDJaZSrnaUbYqhw9AN+BreAveHbEDFQAAAGcEUERFWPWa6TT2/kRK/DCVhsxgqEoPiarqAAAAEgAAAAEwRAIgRmQU+JFwv3IRL3hYd5Res77Zr/SfqasEdo3URU+GBvkCIFfWcr3lWG6LNU9uIxHL0uHpZOb6h9XM2siMOdzqjeSxAAAAaAVQRE9HRRvmbBVzF4i65lm0vdQNSqmzu8qUAAAACQAAAAEwRAIgRtUcqRqsmAoW0Iv9eOXH/c+DZAevWJbKrKvNdj89HGACIAXdnLvtOMi6M0oxNfrZsiv2yP62S/5dZGo1Yd+locr7AAAAZwROQU1F4aTFu7cEqSWZ/tsZH0UeDToe2EIAAAASAAAAATBEAiBQXyllBvrExl0IN04wVnRGSL/F/zbjEQS+HCilH9KYqwIgHTygVwZVuBqDfg4tQXp1m9x31B1K0UJ5idNXPKMXxTMAAABlAlhQlIxw3GFpv7EAKP2+lsvHLpVisqwAAAASAAAAATBEAiBxt/lkRVZhKOCwLv6cnw2Ebl+eaWAfT/c4NNeArkFvQwIgS4Np81O7FLUm+8JuW/XP/sGdQUfhgil4L4X17uvaUtsAAABnA1BLRos5tw45qoEbaTZTmOCqzpvuI4rrAAAAEgAAAAEwRQIhAOvIvVBO1TykfGEB/LJHVAaOOicTOxRWz3JsVAuHL1upAiA/rTqgTcW/v0fj8ZEEbZkPmIGCeGnjYtvZuBaiU6Z6QAAAAGcDUElTg0znrRY6s74MX9TgqB5nrI9R4AwAAAASAAAAATBFAiEAqI7EcaKwSfSoW3/Gvb53N3eTyKdoiHac2jZmxzjGa/MCIG5ld1gOReV4jljsQduKlPt1AdDB7E2T1iDoNuaTEhZ9AAAAZwNMS1KAzjAnpw4Kko2SaJlOm4XQO9TNzwAAABIAAAABMEUCIQDEZIXzRphY09Yf2QXrhZxNKzaxevbzeVCdX7wPJfbRigIgeKaVUCggcA7cy2v+e1jiNMB/vkq4KsjDPK2H1Qzaiy8AAABnBFBPTEvUeBYclSNX8F8CkrVgEs2EV/HPvwAAABIAAAABMEQCIC+/HDgcF1vR4SAOdw8CJhPXfSellvYmKbaHEHMR36RwAiBY16T2JmhHIMN0u63rUvzF2ijAn43/4wLIaDnAizUr8wAAAGgEUE1PTheWrgsPpIYkhRBqDem2VO/jAdCyAAAAEgAAAAEwRQIhAPUJvvCCcsBk3b+T9jds3tEm2H2n645rY2UQLnjoGRPjAiBt0Cudndpvdv2vrQdoIMd42XNID8IN0Zz88YZ283+7nwAAAGcEUE9MUEhZLejN7Rb2u1bIlv4a/8N2MIicAAAAEgAAAAEwRAIgcHG1QlYke8qDw2GcLfhLcrW6QGbBjxYpAcArmIV8n3YCIC+KYi1xSkcrIxuK0J/4/h7FlFTSfgdewndSCB4CDRCOAAAAaAVQUkFSRSwvfnxWBNFi11ZBJWuA8b9vTceWAAAAEgAAAAEwRAIgCZCuuz1UpPnPrI7xYMW0Adt4FnIajb1MFi/KQTZ4iD8CIBv2UKzqR9+/O1KgMwB/06pbzXR/LcTEDtWSsRaCb6D1AAAAaARQT0xTg+bx5BzdKOrOsgy2SRVQSfrD1aoAAAASAAAAATBFAiEAuoBnzD9TCvHKisgE+CLZfvOCUGnla/jkcJTQDEJ1GBkCICgYTaVAKXEmYJBkgQ4Pe0v14NvVrepBz9eAmpfMdU8/AAAAaAVQU1dBUFGcEAHVUMCh2ufR/CIPfRTCpSG7AAAAEgAAAAEwRAIgM0/WhdpomUgtKVNtto3KtWZN28f0pYPOndrVg6WfDpgCID9YNgONEw+bYs4ulIkoLKACnXtt7kS5vhOUylAQx31XAAAAZwNaQ0vtt7eEL3mGp/IR15Ho8wbEzoK6MgAAABIAAAABMEUCIQCZswtoK8Tr3ILAlTxqYbaBRd6xqgovMiBjgOOcIlf2vQIgff3lra12L5S7jXXyEO85+psX0c8f3UOhWFYwR2gpDDIAAABnA1BLUgAaj/yw8D6ZFBZS683s2wOE471sAAAAEgAAAAEwRQIhAIApBejTC1pK9kEuU+RqO5pQlXcFhtsLN44ybN4Puw9AAiAmkcfFEiWDELkqKvIh5D2kHugcwRHFmTL/Hp68acO9QwAAAGkGUE9MVkVOSmq5eS6fBGw6si2GAkUN5Rhr6acAAAASAAAAATBEAiBfFb7uEIMkxUAekisqHD+nSsbgppMyKqi/Ztbv+OZvMwIgVZ2OSl3ss+/WRsFjuH0cpGhajCt12h/0epHmeJBmpewAAABmAkFJUSHjSOiX2u8e7yOVmrKQ5VV88nQAAAASAAAAATBFAiEAruGqLvgmnEsurWo4Y0CPY9Ze3/JY8hFvS/3z2Q1TXHECIEH3svKdW0xbCkxFQB6q/YCCkO1SliwLr+GwlR1FLQNMAAAAZwRQTEJUCv+gbn++W8mnZMl5qmboJWpjHwIAAAAGAAAAATBEAiArs/agX/vYpkOl6DWwzOLPQSjjNhzHNDAonrJxdbM/fgIgKQWC+ag+aw0gFQ+xvPNGWo0Y9jWubTWqH2d+hr5qecQAAABmA0dBSp/afO7EwYAICWwv4rhfBdwwD5TQAAAAEgAAAAEwRAIgNC8S+qCYjRMghT61pZqNczZXBRP2tmQnYDHL0il56yQCICyiBnvRaBGJsdBRucyBkW78VhSyS3XsJSfR1H4jhUlfAAAAZwNQR1TqzLbg8k1mz0qmy9ozlxuSMdMyoQAAABIAAAABMEUCIQC4D2suzXwkvCMonh5fEEjphdVOfLRR/tLX1k+dJHVKJgIgFo4l2M5+eF4WNoVjoSRWlxgj896mhjKYb/T08PWH+XMAAABnA1BHVZjDbA6VNGO9UUbIeDzggc4dGHrPAAAAEgAAAAEwRQIhAPL3T3roop9xBt+FbWs/bhm+eY6nMdEYMxlphM5nc7RgAiAgJRsxdDw5rbMy8ZCRPLYgov94+pS8jeQSsIDYLPP5BwAAAGcEUE9MWZmS7Dz2pVsAl4zd8rJ7xogtiNHsAAAAEgAAAAEwRAIgJ3FxGEEQza0SfZAqwoJQQ9v+EwzmG5+BK4pwNvN6n6ACIF1a83wV5wfaxH8UWCRZ6z9O3K7aAmHkUeL/TB3yy2AgAAAAaAVNT1JQSMw/FEHoTxJKZbyXmKaaXEzrwg3/AAAAEgAAAAEwRAIgFAePlX1DiQVcx1hA+dsWACUVp0lsczOI8KlhvOlhccYCIHD3LFFQGKL+mK9A14kcdl6upkV1OMWfz8ssD6wa8j3QAAAAZwRQTEFZEwlmYohGv9Nv8xqCJwV5boy4wY0AAAASAAAAATBEAiA8vwiT81KT4V/XjP+IgzrNUqIgmnyw/vTwn6sq0xhmLgIgUv6h983AySuvWCE+RYHU1avqZ8qUHVYmaRFvYnF4tsAAAABmA1BVWOJ3rDX50yemcMGj8+7ICoMCJDHkAAAACAAAAAEwRAIgXIhpvXGiKhF4vlUKt1loORAv+GjPo4x3LkSHz+XZ9ysCIDtBc653FI/m+edQgv8l9h2/q9BRvNJW7/k+6o0HEtJ/AAAAaAVUUkFERW5ZcNvW/H6x8pxtLt8rxMNhJMDBAAAAEgAAAAEwRAIgTR0RNxMQLaJhy7Oo4EmnyohctE97Q/3mCeAgd+B02agCIGq7D6UkfJ0bxlLo7jro6f1DctxiOOvUj8nnaZ01wOK2AAAAaAVQT05ZT/A/CCv0n+ccKrjfr0+NCuqh094UAAAAEgAAAAEwRAIgZ/i+Fa6HvQ2xyFsCJH6mGg8ak6pe0Y6NW+9w4a1oPBsCIAqUMKzlL6apPAfhDAigfM3Zc81LCDKNyOJfYu0eDT36AAAAaAVQT05aVdpMJ6n73eH1868DmDlr5GRNzscVAAAAEgAAAAEwRAIgYS0NMuu08IOAUNhrKVnY34A1R7R85yVC2LUsV2AJO7YCIBXGFjHLWZQ0WNLUrVJkXvfZ7l8gVW/vW/3mcnXtSVG7AAAAaQVQT09ETFapgDKK7jOqu1QKAuACyDIzJr82AAAACQAAAAEwRQIhANSCc4Yl3GOf05FOrurTwEZL5CvhyaiseShoJEDjWuB3AiBc/vgt9/HYN7eYWUrYQ33bzv62G5YB6CZwFxVnk9G+MQAAAGcDUFNLHF9DcQoXdrDqcZG36tddS5jWmFgAAAASAAAAATBFAiEAvrLX/qedV1+otbQP2bn1xqsIBKryF7+mJiEe5ydE7A4CIBDXGnkMX+FdF592Ds4hku/9CdJKwSlmpoNX4GpmFuJeAAAAZgNQU0s/hMQYSzXEiPf+ShJGlhDJscsDyQAAABIAAAABMEQCIEqqkKlBEN8qDW/PMRYdFKfmxL485nRGIGmBzdoS+heeAiBgp1Tq/wpZWmLTaU35/FWtmMC+3L3R3tRJ2ZyQTHwKagAAAGcEUE9PTAzsGpFU/4AueTT8kW7XylC95oROAAAAEgAAAAEwRAIgPvuUF45efgFMT2bSQtVcnb44lppF8iAD1VWy/RM5Yj0CIDd9Pi8WVRLH09vgIFLoREjnMVCRZorKvUYvGDSb7rECAAAAaQZQY1VTREPYGxqLGtALqi1mCeC64oo4cThy9wAAAAYAAAABMEQCIAtEAjp3TZs9OEjeNxM27kotvTdNHHHUpVDPdr4GJpfNAiBgikY8r9BEWE6TUrDONb59cb9gRKU7FrzdZqT9qnTRqQAAAGUCUFCVZcIDaWNpd4ZwUSD8WTEPdHvP0AAAABIAAAABMEQCIDHsOVkOpEFqNKJ3W/Olhh7NIb6+1vZsEzhTiIRcX9wjAiAj6mRURJXEAkSUL+C3fZ+pV/+9sDcnl4LHXGKm91fyZAAAAGYDUE9QXYWLzVPghZIGIFSSFKiyfOLwRnAAAAASAAAAATBEAiBZDiIH50tqfznWdXSojHc2fyJUmCmxYsmv4Gbp1oH42wIgF8AtqJTBd6W5piHWfIIqqE5+XZSmTJPHa6lT4Djqx28AAABmA1BDSOP0tKXZHly5Q1uUfwkKMZc3A2MSAAAAEgAAAAEwRAIgLqrC2yct5fo4F2Ejn8+vl0B9vwb84DQ8wCncm5hgSIACIA5ew9Yh0UaIkJHmRaXzBB5U6IXD3KKPEwU4QLDuCv9sAAAAZwRDT1JOMIDsKmlgQy8XnGbTiAmaSOguIEcAAAASAAAAATBEAiADE/mYpsgEyP8Q7ipv82yUS+K/kYDGIChZ15o9cdL8ywIgGu/TrGklv2/VOBLSQJu1P2BCiD1PMo3pHj2SB4RKl9IAAABmA1BQVNT6FGD1N7uQhdIse8y13UUO8o46AAAACAAAAAEwRAIgJCOFkJ2G18dxhvKu1nUyGBjlCn/lAAAlshfzcull7c0CIAiHFQ6cewESsHW4tjZscugDPFHIaWTakVd/fEJu5oXFAAAAZwNQWFTBSDDlOqNE6MFGA6kSKaC5JbCyYgAAAAgAAAABMEUCIQCvHjAyjfeyBA1GNX6UTFN3hCrAwDfTnHZ0NdPaYlYpugIgMGdEszsIVzrhEw84qS3x1Czlqg67H2RVY0o2/HNeQGIAAABnBENIT1BkZwckbX1cKobXIG9ByoGZ6pztaQAAABIAAAABMEQCIGCRJDkow5+yIgQK7EPbPz0rcVikTnrRDyv2g+jOBwl8AiASHkaHfAFCwtfqFqCzVOjUcCGA+eT8ClzfY5Mp01TjbQAAAGUCUFRmSXooPgoAe6OXToN3hMauMjRH3gAAABIAAAABMEQCIBhBsNLT+JfPfe7bT2fqd367svmnplCCvSRBCBFzxzLOAiBoqQURaGkwH5KyPq0kIAxNiGQupI/hhqdQa4nXdnoiIQAAAGgEUFRXT1US4danvkJLQyMSa0+ehtAj+VdkAAAAEgAAAAEwRQIhAPrMsrUEhG3cugWVWIQhdQvBtquExgqz6c+fnW//EeUFAiAfVzb8TeTtuX1DQhu17eabcFHLXIN6t8kxemD548YcLQAAAGkGUE9SVEFMjbkOPn0EyHWlGZcJL5F4/Kyd79sAAAASAAAAATBEAiA2jKw2DGqgCkXlOTnPMx35h94ZoxAXoIW/+KunRtQi+gIgUkFGo/c8NYozihZzPSb7KOWP+UGGMzboPxDSCOmAzwoAAABmA1BSVG0PUUnFAvryFciaswbsPlCxXiiSAAAAEgAAAAEwRAIgEYnZsvZMTeaVaApeUey6AEwHI1PWdkd0TwSOrMpkEW0CID+l6eulq/QT2bNT8XyR6SrfONfVc/5MamI8I7Z1OaVtAAAAZwNQT1PuYJ/ikhKMrQO3htu5vCY0zNvn/AAAABIAAAABMEUCIQCPosQygH7BSDBHY71D4itrYYhmKlOoXimMAvmdzp9iOgIgHf8pZ/UkIQKm4AVI5J5YGJfqOgNJ1O/TN3UUoEIHqkMAAABoBFBPSU5D9qG+mS3uQIchdISQdysVFDzgpwAAAAAAAAABMEUCIQDginkRcBr3qYFMeMFOFJaXEU9mn1W+mxdKRzvk4+mvDwIgT6yIMMxSVpE/ltPDc2yBtyA0jjoJB4mVpo1m1otZfMcAAABmA1BUTXwy2wZFoln65hNTwfiRFRouf4weAAAAEgAAAAEwRAIgd1aQZT/uNmkyiQe0Ou1m/HBbNiBgek1C60h5ztc8PXsCIAN/dEqn42L9vnQNYLobogXoxncMHf/9SeB320WsruQiAAAAaARHQlBUhrTb5dID5jShI2TA5Cj6JCo/upgAAAASAAAAATBFAiEAvbxh13VUqtHhddePoD51WiXdkk+WGNdhAhlbvEZFH24CIEZWnNymIxHy30RrQuVxfrSchtgj/HxjZCxQnc6wLftgAAAAZwNQVUPva0zoybyDdE+83iZXsy7Bh5BFigAAAAAAAAABMEUCIQCecWjHFI4waOkonE5T604Ujkz9qLp1qfYLFjltEz/nVgIgBpPlZvb9v2OWoYURzfaYDdQvZQjXptFs+EMgpVARS8oAAABmA1BFQ0Mr9zRDkJwztUXv7VNqUkbJpyLKAAAAEgAAAAEwRAIgd0pWhc1Bw+6IA+jHbB6ZmWGVRcL0TH/YxqXPq0JrmmkCIDWE6WXQhZCLuAYboO8aviD4iZAqXuZcWgaKl7orqv17AAAAagdwQlRDMzVBqLEsyQq/ZRkVMqErtTlKcUpG01gAAAASAAAAATBEAiBBph206hRMANZPVAtINxCy4JQcR/uZSMEULCmShmg1XQIgCsf2VOymUlxL1sXRAcB8AIxG9wDRWNeSnyYWafN7pZsAAABqB3BFVEgxOEOhVpDpIF3jhs6EmImDHBZowwDBrQAAABIAAAABMEQCIHh8Hw7zw1PmaDLbEv5k+E2ZC38l9lFk8vicTtzS9Xh4AiAkik6gtFqzXBSoaCBB3RjVmR6NT4B/w8u5gze6u/Ae6AAAAGgFUE9XRVIfEgczO4chlnfqU2GB0kBGKJrYIAAAABIAAAABMEQCIAtlDFwEOz98yILl4ZRSIV925P2g46+4h2TBuEHZMjS8AiB0yN5LbzGp5Z24W1M4dEdEoYxykDqFKRDsMuMWgwQrPAAAAGgEUElQVCZgesWZJmsh0Tx6z3lCx3Aai2mcAAAAEgAAAAEwRQIhANMnsX27kwt0cxRqrAgm+RsD4SsmjMVDo+k+4XjH4l5BAiB0eEL1nHGj0vrLJ2rcaW6EGAPsbVo+/TIYxPWm57qCPgAAAGgEUElQVJ+sVLHdrJlo32ezHyF8Y8TBGGVtAAAAEgAAAAEwRQIhAN4kfhRWMVYM6Ps/60lIAhysiwAea36oi3cXoZoW1bZLAiA7qNJZBb/CR37y5j6FCr1KeFcpFTZWbcZZ6BY5QBi9EQAAAGgEUE9XUllYMvj8a/WchcUn/sN0Cht6NhJpAAAABgAAAAEwRQIhAOkMDMkJ5UdJzqnFPfPAajWOlE+y+ZU/VWrfAwiveRbCAiB28QdBN4nmfk9In81tlX0yWLZyZ5fAOcdXHlo7cMbcXwAAAGcDUFRGxX1TPFC8IiR9SaNoiA+0mhyqOfcAAAASAAAAATBFAiEAsRyBEwpMDgoOCcSniuU448WpncgsuFkMHi0u7fPLMNACIG8qQHOWxIXr0VBPIJqurwWjPUYpfNgZ9D3PvARxxFcyAAAAZwRQUkRaTghQNqG3Msvk/7HBLd/dh+fDZk0AAAASAAAAATBEAiALg7OPurdPJptWnN9nOHg3rcuZH9BdHvyp6h1rmksbeQIgSu5sepEFkgSV/lOIknPLdStkYHZUwJLttHPZhSXu0q8AAABnBFBDUGkpJcKjEqSTT9aV+rcrHkJcxBl48gAAABIAAAABMEQCIFIWQwUTjFYuaDggObOd+GgK1ZNhg0007fc5Ao4+6OlpAiB+k5zYYnPEAsMbLDN1ON27USRca0lsj/iZL/SpQZA1/gAAAGcDUENNYJbSRgz1F35AtRUiNCjcAFrTUSMAAAASAAAAATBFAiEAsULBYa2jtqRpULE+s70/2Rs3ouS9nJkazHjfEHUgs78CIBqaFX6B59yHFEd1zJrXfUqTxSvq3ce/w43N32CNud8DAAAAZwNQUVT4wXyEBUmXTsF8ZXOzlj8eMEbA6wAAABIAAAABMEUCIQDnnh9T9GKbt1VILlSHdFc90TraS1VdhUHrzef/G2XZqQIgQi2MjJdgd9FIlN8JXR8NiBEr1LqnpQ7efFCAhFBh1dMAAABoBFBSRFhVYUhWLV3etyVF1+xLPsjtyPVbpwAAABIAAAABMEUCIQCAtZ6w2qzcG7dJVvMEHT3iVO74nPzUswIkdT/rvDSMRQIgQYvkUqL3ZkPnTwfz2dsFhoKohHNQCC6r74ucr8X9v5AAAABqBlBSRU1JQWOZyELdK+PeML+ZvH0bv2+jZQ5wAAAAEgAAAAEwRQIhAJ7klVPBsuNowUXxS5TERJCuuMD4d46tAplOaYi6GiwQAiBFH3HVPezBFLjbHCNZyF4J3edY9BmWNZ5NUTlSxaUGUwAAAGcDUFJF7CE/g977WDrzoACxwK2mYLGQKg8AAAASAAAAATBFAiEAkUZzBMXCdPhU7MN/upED0XfW58hSdjjOK8TnmHpZeCUCIE5qZv/lWjEfeujNm439WzMOIXb0k9Dg5KYelRfKF/93AAAAZwNQUkWIo+TzXWSq1BptQDCsmv5DVsuE+gAAABIAAAABMEUCIQDWNSqlWP/wK3t1CCvRdKuJgRlbmAHjpbkkj92zQl2F7wIgEBh6sGqoAffPMqHQVTvmbYK8k0D/jnHeQSltTKkPJxoAAABnA1BSU+DZVTCCCq/FGx2YAjqh/wALeNiyAAAAEgAAAAEwRQIhAI5ULKj6ksIYz4BqUtSeLkQYxaJo1CaLQH8UWLtMPU7vAiAQ0bovjGSUxj7xSztkOR1Pz48mCrAGKxp2GPbagsouVgAAAGcFUFJTVFgArSKrEAb8KCZ0iHr/ERTlrRQHfQAAABIAAAABMEMCIBEyO/XZLMFjAy1mmysaJ9GOPtQyWo+CwJmiZdIDRl7mAh9Axaas9hPmolNoTaM7QFyYzzesJQJc/fnYGikuv+yPAAAAZwRQUlZTo25ZwIyfJRprep62vm4y/WFXrNAAAAASAAAAATBEAiBHni2fL1M3zAtSxDkR/S62XN13+qp2f6rku1ubVTX6sgIgKgHeH4UeObULqt7Q+EXsHCb8lyoCxy6ipG+6G3NCFx8AAABnA1BSR3co3+9avUaGaet/m0in9wpQHtKdAAAABgAAAAEwRQIhALZGNdA+ix9dHfoHuuu7aa+ehH/krhUM76YWpaF56tGRAiBaQh9g08vlG2xUASeb3HloN3VC+1BvrpGsZ7VDuK+mygAAAGcEUFJJQbmHHLEHOOraY2Qy6G/Ay5INw94kAAAAEgAAAAEwRAIgWDgUG9MOwOwagVb3z8A78RA+dQSm2rEjD19BCM23zv8CIDPRrQqzHnoV76z6aGOko67ZgUkuy/oyrzrDRBHwp7QeAAAAZwNQQlT0wHsYZbwyajwBM5SSynU4/QOMwAAAAAQAAAABMEUCIQCB4NNu3BL9pp29N5h78jkB/Vc9mvz+XLxz2wPV8NufHwIgZbwTuN3IzX7z5oAte68wQpIv8bRlwCpmWCkgAwALcNYAAABnA1BTVOP+2uzUeqjqtrIyJ7DuVvCSyWepAAAAEgAAAAEwRQIhAMBcyoW5QywSgh9YZcJ7ykgZ8pHR1X2Q1ZeLYjFOJnFgAiA7XzHXb/PHcSpg7RMA5tPRDX319RtTgGE+X7GU/D0ydQAAAGcDUFNUXUq8d7hAWtF32KxmgtWE7L/UbOwAAAASAAAAATBFAiEAsx76g96cAgCJ2HUOemyQmASv+ypj9UhV/cYQ7dTtU1YCICXr4vf/chJX7pJ1Jc0RHFxFOt5m5gTNQWYLLAfLm2RAAAAAagdQUklNQVRFRumP/kDkCLpkEr62cFB+CDyLlf8AAAASAAAAATBEAiBPGkJTib2t1wOQjCzKbLbLfGZVFKQdimsLfqnSeWth6AIgLWTPtxbu4u1mjm/O6nz7Sx7lqdumPMxn/Gdp2nxZLN0AAABnA0QyREPUo82Q3dL49PaTFwycgJgWNQKtAAAAEgAAAAEwRQIhAM3DfU8GUViPQX4gdALHwY3GeWWsVDp9UFHm5Cbll9S7AiAvCoM/cHPh+JMNCZuyUcXqDaCsliTZ9kcSJVzwiuS5sgAAAGgEcERBSZBD1NUcnS4x4/Fp3kVR5BaXDCfvAAAAEgAAAAEwRQIhANR1BijyIAj/3uxd9ye0YpnxHwMh41ryfKamVlNHqpKZAiBKDw/8TA2j3MWBIlBbntF1yaXb+XjEXid+mj+QC+jo3AAAAGgFUFJJTUXlkGSoGF7R/KHReZliHv7fq0QlyQAAABIAAAABMEQCICcegbYumeyv33g4wZqZFOri3M24diO8RuSoFD6uXGLyAiA1whkXvYqNj+DCbCfTJaIUPTWJ15UvwO7fMpYOXUXUnAAAAGcDUEZJmJrEwfxasrjIaSTGJTqvHuaOnOkAAAASAAAAATBFAiEAkS4SGsCLJVgIKUJblUviM/p6Acnu5t2Jy3OsrSULZ3UCIGIs/5fYPj66evqkShSRm4obgRjXdyr2hVGK4K1gCG54AAAAZgNQV0Oj2TwGFtvDH+8eESx2ZaS6TdvwvgAAABIAAAABMEQCIBEwOAtDwbjgiWHmICpvMup88UMzVXMKf9JNOjVTQG0PAiArf/try1gCYtqEkL103d/7oBrgY+tokoTg8vQYdZkvbgAAAGgFUFJJTlRUuMmCaNoAVZcWUqlfK/06k0mjjAAAABIAAAABMEQCIFJkoOkc9ehK40kVRup87Axn+lCrvTlqKEeJP8y0cpaNAiBagmPz/DN8OgiWfZGkYDR5PvokQkovEEP0DakT5so7xgAAAGgFUFJJU03UbfVBFIkyaQuBCS9gDzUgiv1DJQAAABIAAAABMEQCIBMrIBQKzip8ydUc1R3Bc6z7wga01dBhm9H5dee01S33AiAHEACvREsHIUVp6Ue+TdjkDv/dUNpJeXqMt5MPTxHDVwAAAGcEUFJJWDrfxJmfd9BMg0G6xfOnb1jf9bN6AAAACAAAAAEwRAIgcxc41IXl0T/FvfYhWXYNuVLqV+bJW8VTtN6FiDeif9oCIBRbeZDU3s6/w9T0T1BVrXpuosYP5z3x+z9JxbYrPum8AAAAZgNQUk+QQf5bP96g9eSv3BfnUYBzjYd6AQAAABIAAAABMEQCIHhOEQHVos8QbbOw8YZ0WdkRta0eobPjj+yCQywHk/jSAiBPy9BoUMyi4T7yDHPyvTq6L5jZtB5APFY8lD+brdOfOwAAAGgEUFJPQvtVnOZ/9SLsC5un9dydx+9sE5gDAAAAEgAAAAEwRQIhAO7/1OG0Jup3ovbuR5RfVOUjs+kKIhUA+9+MwJWXuRZZAiBtzg5g+rr5pXvlU7fEnj83Ew/5V4LgQn38PJrybg40SQAAAGcDR0FMX6qYmvlq+FOEuKk4wu3kpzeNmHUAAAASAAAAATBFAiEAuVL43XufG5BaKkhyzPn9IYg+pHbhhK8X2XN/Ul+VVooCIEMua5kFjzzgkGDIgNETAYqq7AMRxz9EneLNvBBXbHfWAAAAZwNTUk1HbF4mp1vSAqloP/00NZwMwVvg/wAAAAYAAAABMEUCIQDCKaUGVmEzO3QqQiOEiQqMz5UVjcbn5L/OWFIX4oRXnAIgO493y1dp9SFnx3G3m/4WvPUbO1P4TW0Bb23GTK+2yXYAAABqBlNFTlBBSVpwV0U3OngIFMN57xeBBjDVKe/gAAAAEgAAAAEwRQIhAMYWf41K8DZMwnKxQFHD+ozTkWJGPeMSga/kK0IQ95YMAiBtnNez78zvma1wBz+Wa6cgjf2ARpqUd6w438ywH0146wAAAGoGRElBTU5EUxCf6eBE8sMk0ArYW/sLE843lIAAAAAJAAAAATBFAiEAxPTqySGZuktjdw3I2Drkqsj/ISSCLJr48tzlTH0alTwCIElYLER36YVVljau0RRG5O5jRnEP4OZTPqN9g3nYiecrAAAAagdHMTI4OTkz38YoozwY6FbNHFlYPLWs6NtwbxQAAAAJAAAAATBEAiAhBROKrGACMopBZfrIrHn/SikBS6KGIvG5W+/NlkKdegIgYS0xgcxQf8lC8+qlVFd+1HTWmWj442Ob8agyILKv/zcAAABmAlBDpnFKLl8LG9uXuJWwkTtPzTp3Xk0AAAAFAAAAATBFAiEA/0s/oVceuEq0nJ1F/C3VssqwKTb4gttwhX9Do/ZbzfACIFOVAuqr9CH9qV7iHsCvRaN7WAC2EcV1RP1/UNiRueb4AAAAZwRQUk9OoxSeD6AGGpAH+vMHB0zc0pDw4v0AAAAIAAAAATBEAiB5HFsp/sN6G2k80tx+S2jDiRKZEIQQ+WoTg/mS5rLTbQIgRZpX2qgqgJ9FUCyPuO9s8x8PhTVo5+LEIF4FQVVU3ncAAABpBUVUSDIwBKa23hFvuL9X5e6LBeApPqNjn+gAAAASAAAAATBFAiEAvIVeLJkqKM0mrG3hDwvoLNzuKN90MeWCqlqZNYp+PnMCID79iQCr5CtCDj8aU5uAZxdJ/VZR7aVZjJlyJKj01SiBAAAAZgNQUlk8gdSCFyzCc8O5HdnY6yEgI9AFIQAAABIAAAABMEQCIBPNIMwNuX/NyI+DqFDsoampODxXXwteKY9wEWyogHwqAiBQIluUjWyPOYFq1zExzFI/1opa2yOYHnMhbAInri9cXQAAAGoHUFJPUEhFVI1dsMHwaBBxyzijgq5nBFiNnaWHAAAACQAAAAEwRAIgRZStM7g0lW0vb8GNK4bgmuhSDvf33ybChXpPEL8MGSsCIEPnlJjSLrmyBI2g8pRQLQfHl3atJInd6NPsRInW4mCZAAAAaAVQUk9QU2/lbAvN1HE1kBn8vEiGPWw+nU9BAAAAEgAAAAEwRAIgT2JpP9te5JUcN606qrVwBgACeYwbL7wtAXsPtVN6WHsCIAekgihSFBpTbbcIs6ie0EIEs6e6gNaaXtrz/6a633K4AAAAZwNQUk8ia7WZoSyCZHbjp3FFRpfqUuniIAAAAAgAAAABMEUCIQCA9jdrWfE0Iy1sy7YplOTPCVL/lqBNZAuEJX7DxgZVDAIgWTpSr2YG358KRaLO8CmfNcRbjMH36AUAJoMzaiAIN7kAAABnBFBST1OGQqhJ0Ny3oVqXR5Rmitz75HlLVgAAABIAAAABMEQCIGYyR1Su5Tktn+QZ+VojyZAhgxf5VkTvn2NNjVuq4cn4AiAeVLPlfxarTw3R9lYfa0Ie/KUJr8hS5xlhxEIGx3qWLQAAAGcEUFJPVCNB3QqWoNq2KqHvuT1Z/38724kyAAAAEgAAAAEwRAIgLlQQ0zTX8iAIP9FJVnYkG1IOQDu3jJqZeoabpV63OX8CIFfl+kblaR1X9UNxeDOMDmAulsPMvqYPabnDuOuWHSDbAAAAaARQUk9TCU8Ay14xq2Fk48rLZU6NbCs7RxwAAAAGAAAAATBFAiEA2ECF1k8AAjITliS/Z8uYc1Ik9wBA5oh1Jg7KIP4B9gsCIHGVD+8vAD8MZyEtngi1FXJW7RFZbBzvWa5Rn61br6cpAAAAaQVQUk9HRSgtCtH6A9+9uIJDuVjnc0nHNzfRAAAACQAAAAEwRQIhAKyGp3VwjJFqq868iQF/bESjXgdayrdzl5b82lkLPj7eAiBqRQoy/9493yrfIa3UAjwC9jzI8KEZz1ghYDq/4Sfy3QAAAGYDUEZJe2nUZcD5+yKv+uVqqGFJlz6bCWYAAAASAAAAATBEAiAit8hQwzF/AXTOm93oXH7uHcjEByDv+b+imoOm2IXXmgIgPQ3qQUNvsiWCYfzMliEaQZYj9Qhy30HlWbljo/Uf4twAAABmA1pST9efQxE7ItHqnynPzHuyh0ifjuXgAAAAEgAAAAEwRAIgFXR6+o16CkflwPSWXFPcUrrcNQKqrbshz1FkuGEyXWECIA82kSEhppMrt9XCVrnM9wfdNj/vLOuzR4o57BIVbOriAAAAZwNQVFRGiaThaes5zJB4wJQOIf8aqKObnAAAABIAAAABMEUCIQD1Xpz03tZ3tDrsw1Lq2QNBuL4RlZ2j25Jg7qNt3Nz6lAIgBuCN41HBHEz84vhxtff8HbeZ5vL24S90Mzel6QNhU2AAAABmA1hQUtfvsA0SwsExMf0xkzb9+VJSXaKvAAAABAAAAAEwRAIgb1B4Mmft8CcjjNoqrIpW2ASWN6y04ubFhJ9F1yX2qQACIDH6UzoSd47H2cpHRz6Ez1cga0Qy2QZUCq052nKcyjbOAAAAaARWT0NPtcpGzx2gkkgSZoKnvXJAH9emsVEAAAASAAAAATBFAiEArvihrRTSzXiVRLAdHt986hbMOaaOSLlYoGHikviV564CIFwruqK7ucoXCmHhITzrF0GNLo/JOgQsBMTNPnIbGnMOAAAAZwNYRVOgF6xfrFlB+VAQsSVwuBLJdEacLAAAABIAAAABMEUCIQDG2xxnOM86q5GvuAdwWGq+1PoDmseP/VWNgJJk7BQYwAIgNv0vCNWVvHulm4HN+c2eA1qmjVyOPapGRplimUQsxMkAAABoBFBSWFkirK7oXduDo6M7fwkooOLDv9tqTwAAABIAAAABMEUCIQDn1IEOAZrOjgIHmpfrz4mTt+mdIqFjaJNeNnyAWss+zQIgPlbvj0p4mGTEnCj57hDt7Y5m/Ut3BSo8lyeWBzsZV0IAAABoBFBSU1AMBNTzMdqN91+eLicePz8UlMZsNgAAAAkAAAABMEUCIQCfjUVDnnHw68MSsFdoJXPHiZzh3Q1QaGaVP3Hn4N+2NQIgU6EhxEWQgApO0rciS9L03vf476woLUuZmp0n7X2RLb0AAABnBFBSVE5tEOAZRACgRgCIEFd4frnpwGPcoAAAABIAAAABMEQCIENBsLinNeFnxByM5iKR893Jz2Je3M00xSCNgB/NQeTYAiAp6L0Gk9AkvkdA+WxsWM+XDAbdXA3BD0ym1rbhrcw5PAAAAGoGUFNUQUtF+1xoFco6xyzp9QBoaa5n8Yv3cAYAAAASAAAAATBFAiEAjkrArdFvC9zaf/8PHi07ZH+dwCuYrVWlPEKyZVDZ/RYCIElQ7t/Cgf+MBDBTWrEsb0AS8DR1AieAPCUPcfBWuXzsAAAAaARVU0Qx9sCqfr/pmSIAxn5TiOT0LaSeF4MAAAACAAAAATBFAiEAk65v7jjy+mEo7RebGxlhaAyOqvs9Q5PbjyW5O41W7asCIApjBWNg0fmuegTodQiSCekLUs+qm/0g2ZtxO1YNK+ebAAAAagZQVEVSSUEC7KkQyzp9Q+vH6AKGUu1ca3AlmwAAABIAAAABMEUCIQDJjzvWbYvmU28KAC5u2Cf0yZSa4T1yL4XkJkfPZ9Y4QAIgLsPC0wJMv2a2G8Uh8MMnG2SwfpBDwwEAbCP7ZRsgUNwAAABoBHBCVENSKKIucszFLUFez9GZ+Z0GZedzOwAAABIAAAABMEUCIQDG79YKaBTRZfYCyuTgyblAaI9+IyQMmYJF25evupE12QIgaNazNOxuxWjuOILpXNTwovLCcIF4oKtWmohJwRRYEYYAAABoBHBMVENZefUPHUwI+aU4Y8LzmnsEksONDwAAABIAAAABMEUCIQCsGwpdlWV6KowL/3tMc6ei2UnLkGz2aC10DBggXTVacgIgS2i5u9P6JzZUHttMW/WF+jhqYjX3ZEc0fp7PK7TCG1MAAABnBFRMT1N4Jegz1JXz0cKIckFaSu4znSasiAAAABIAAAABMEQCIEMsP4NLJHz33Ikbmi89FX5NOr70gLXkW6IiKat4MuCqAiBtsy0rCU9bJjxo8CfkOkE0CWQibHYkIaySVf9wn/hdpwAAAGcEUFRPTklGWDxbhuAczTDHGgVhfQbj5zBgAAAAEgAAAAEwRAIgBIA36LJ2ppiGNytfYL3m7tTq88BfZMHjyfS2lbRIvy4CIESIQd0sDMOuB4FdFo6+Hi/cWuWCxNR7DTshVegsKZhIAAAAZwRQVE9ZiuS/LDOo5mfeNLVJOLDM0D64zAYAAAAIAAAAATBEAiBJ+HNhNIEcFBoclvug8cs/s66BtRveVeNpTu/ywdHHewIgGoUimBllFP5ufgMTqv2hmtMw1sDkNtBCCbCbXy0tN6QAAABoBFBJTlT+y6RyslQMWi03ALLJ4G8Kp9xkYgAAABIAAAABMEUCIQCnUQSI5toOh/htVNNRHsVlJph4jEO41oXdVfKpyPCzJQIgBFVvbILMbxVCMSJceA+ILwSlH0xKbE01v4L0BVNTZhsAAABmA1BJTsH5drkSF+JAiFU2r4tjvItSaam+AAAAEgAAAAEwRAIgPfKBejKSqwrPj3briHzWu/9biHt6KgCzbOgA2jTb1UgCIFHZ/0/RQXfSdUAUk0zWgG9zz+5AAD/AJryu5yuaKol5AAAAZwRNSU5UDN+azYfpQIN/8hu0DJ/VX2i7oFkAAAASAAAAATBEAiAse9KbBLpZ//JjqTmi2Ag8gZv/klw9RXNRCTtIuWF0oAIgXdRxAv6mX03H18iR6nwez0bSH7C/9/avqLhBxRdQp6kAAABoBFBVR0zbacP4l394lSMDmH6HFTwZiM9lqQAAABIAAAABMEUCIQCbeCGDohRh5rIef+W2m7eS5fTYm1ufCth7z09rzaIDDAIgNyult9dwbwW6IxKzkslk28N2shUlqdNh8Iyofx6HzhAAAABnBFJVR1rt+9bEjD3f9WEq3hS0W7GfkWgJugAAABIAAAABMEQCIG3F6lyOvpeFCOZxq86wAspvam3FH5tSVVsKPHgzswS8AiAyP1g2Ujx1uVP2gmMoV2bveEzYrL1zYgct4F1e3NhStgAAAGgEUExTVZCRcasGkJ/3TMGDA5Vn3cBxdUrNAAAAEgAAAAEwRQIhALSEsZKH6PNbQ0iC+QkfOJw3FZqGdH6xVyApeYnzciE1AiB6RMO/wIYhShx3KzdDBzQCHYiSmzqY7u43gJwcuctA3AAAAGcEUExTRDTwkVpfFaZuuob2pYvhpHH7eDanAAAADAAAAAEwRAIgH7ihsTDKSgc6SxzMbcjb0uwPv5gKlN/n7WxZYSVefLYCIA1322EMrxToE0CEWFGRfYlDUipBATgNTbMfQLAyjUSHAAAAZgNQTUGEbGbPccQ/gEA7Uf45BrNZnWMzbwAAABIAAAABMEQCIH0oMF29ZDVkwq64+gE6u0q07f0CH0Xnb5iCtrv2fy18AiBwOTJvCILUO/xZ2q9Bpk3HKJEnsBsdhn+HreuwO/NLogAAAGkGUFVORElYD9ELmJmIKm8vy1w3HhfnD97gDDgAAAASAAAAATBEAiAwJFjHv7dQG9qb3/ZSAaMx7PyGM19DKWaoa0rb8qcQ2gIgIcyv8VoNcnTwf+nyOsBH8TQ2P22ThYp63JXQ+0jZiCQAAABoBE5QWFOhXH6+HwfK9r/wl9ilifuKxJrlswAAABIAAAABMEUCIQDYJHYqU2JquUEkoIC29LmZIw4SsElbBIn9f/nYZx9aHAIgdzN1wNilfNIkiNjiQG5mDimwQhm+mRw4ulf3VQ1d5d4AAABoBFBVTkuc6i7Z5HBZJgyX1pf4K4oU76YepQAAABIAAAABMEUCIQDIKNkRn9jZA4poZyesnPL732kONHy5smlWAulEbb9mCwIgWiG1fnJ46/17yAnWCRzZEUeWEdOE8gwATqbyT4Pnki0AAABqBlBVTktBNElwaldruCPN4xgMkw+ZR9WeLe1NAAAAEgAAAAEwRQIhAPTYb9yFqgcs5i3nx1CUzWdHlDbWcyMu2w5lWQn3cjVSAiBsxMLVQ6h2T4TITEZ+YMQbVWKxWnpHnnelNgB0nMxzxAAAAGkGUFVOS0E1q5ySqTN6FJTG1UXkgYf6NxREA8gAAAASAAAAATBEAiAzlBwh1Uc+ofTG4hkTyKeQ0SdEKkgv1oL0QXHh7+PJGAIgOnCaphVCZEgEicISTZeQZ0Aqxsc8ESnXltdDNIfjkOwAAABpBVBVTktCabvi+gK02QqUT/MoZjZn3DJ4Y4UAAAASAAAAATBFAiEAuIv9J+zB40iIvPfWKV28EB29tUAMAg00zDfT85Qaf6oCIDQ1YuOQUFiQ/brDVqzNWfzhfo2XwyAyEiUTi9cFdgpvAAAAaQVQVU5LRif/7X5ZJvsnlfyFqqtVgkPygKiiAAAAEgAAAAEwRQIhANnbqF4UWND6rQF0H+pzMRjBeX9kdTs0gemkaAmgFY6IAiBjFIjBORyS4WmeTNWzgbYaMjzHJsJhz0DxMc85Er/49gAAAGkFRkxPT1KzXtXDnzcfLNS8Ltqx+NoxQWgYagAAABIAAAABMEUCIQD+gSv3ZwydHDlB2k6WO5+O64CADRv6Q3sWnA0CxSbqygIgfT4xa+BjbSa6ZG42JuT8eU41+9dJYwBzRK+VDyyFun0AAABmA1BVUIHbwcjkDDCVBxlJ7amADCIJpyeaAAAAEgAAAAEwRAIgXeOmYUzZ5o41A0XyAV87dymzayYt6xWDbVDujUNxjPcCIGACpI4QfN27TiI7GJNI9B3MEBMe/bf5CJys5lIhF80BAAAAZgNQUE6V9JrkOVN+UM7QN0wbUsQqqJl0HAAAAAkAAAABMEQCID1GPHXp/cP+shEKXog1nGdcPfRpLuGKSgBeDvE8TaaBAiBTbcMinuUrXLBH4kSgZ/aOxuocWlQka6k6ijtY5UkcDgAAAGYDVUZJzaToQEEcAKYUrZIFyuyAfHRYoOMAAAASAAAAATBEAiA6XIuYO+rb5YVpuYkO4apP9w9DG3uRjqnRfkXPvpC2bQIgGJ0/c/FKul0PgiJ6ON9efO6MbVXanfnEffN5IJJf7foAAABmA1BMROlUHH6iNjMvTQe+cxAWcPObJ9oCAAAAEgAAAAEwRAIgaOSaigBvwwVaR6QWLFm8/d3xZRiwouByblpEuJMng5ACICqQEcNdwI0Ul7bqixR8Qr16QAxl2VfWO5p7KqWUy7pnAAAAZwRQVVJFKQS5sWZS19BAjsz6I6GdSjNYIw8AAAASAAAAATBEAiBN1VTwHR8VZjFoIcIbiRtTvHzRfYLcmUBgC4El7DnYcwIgSzdwd4UaG5Mq/TOafvLIekpS47uTw8HKu2prQzkONX4AAABnBFBSUFPkDDdNiAWx3VjNzv+Zii9pIMtS/QAAABIAAAABMEQCID/Omi/lYeeDV3ZjK7UGbcskigZbGB134bvsBfizh3SdAiBKyheQ/qqqGurJCNAJOpLp7+zAh7OzNITq13W84kRkogAAAGgEUFVTREEuWja95xqiw44cDia6r38vC8JKAAAAEgAAAAEwRQIhANOl2xtKBAHuvTh0xbrpMlz0H7GtVGVDiScTSMQGCfh5AiBkvpRpC448k8/BfIwnXVHRl7E9WTHeqO52Yuj/DO9ICAAAAGgFUFVTU1mRluGLw0mx9kvAh4Tq4llSUymhrQAAABIAAAABMEQCIGHCG0+qUasVA1rtwMgr29ljYnAUrCiOMLH6bL01w6fRAiAL3H7SGuCWWffJY9NsBjKqtxVPlE0yn3wELGd9sjp1qQAAAGcEUFdBWVoU/mkj52eoI48p0+H7GpE5dfDXAAAAEgAAAAEwRAIgSw7irTdAQbH/Dz6CO6A/NwhohCymMB34+YW8tVDzBcsCIDRD3inkeYKfGGLjH845uzu4N0lKSr0RXCD6+wzhVTrDAAAAaQZweEdNMjJSR8DbQET7b5fzLH4bSHWAGaWpEgAAABIAAAABMEQCIAc3bN5uCxE/KmXZXYYi8KstYODs80uLGrjVNT7SqOQMAiBxUkbirEdn/0YCUi6aregc0tik/f/W667PmPtpY0JaqAAAAGkGcHhHTTIxWf7IPscJyJOu3RoUTPGCjrBBJ80AAAASAAAAATBEAiBPt4pJasj2EWMoqQLsHDek2EGSMLDO6rM4g5kKZzW0BAIgCzrWBYAuR1jmFxHa3dlKh3/JC1gmN0x7GCPMowazqVgAAABsCHB4VVNETTIyS2BunrIijHD0RFOv5ac+H+oljOEAAAASAAAAATBFAiEA6r254ms1VSwUe2I7uzqECd8si4lqZQFYFJx2hGrYviwCIF9aGwk4Kyia3dPFJQCH4Wr5JXZC9HXIsF0aO64uk6yqAAAAaAVQWUdPWruY/B/RCA0ri9rXXFHTC1DG9ZtiAAAABAAAAAEwRAIgQZx9OzPqmvpQIrn4C76iCNG4w38ucBZj/YPlkXWfk6kCIFLGfa2RcZIVtbULqKAHgZGfRkwG7dJMoemGHBr6Ho4OAAAAaQVQWUxOVNiSQ4XNRuavbzd4cccyveL46d0YAAAAEgAAAAEwRQIhALs9BCsoo2kuUf2IUEG1hHfEzcvx2TS0a+RoQxHyhCtlAiBbMJ2ViNX975PlHqdshGX8DbtcpRBFj7wlxi9zJf5p1QAAAGgFUFlMT07Xt9PAvaV3I/tUq5X9j56gM6838gAAABIAAAABMEQCIBfEAYP7YjYc63jR9Hh/5TpILA9K+CRkpMzR62aJ4j+4AiACkvzbbvn3BrfgHqMVnbnb/nj/QSIFdey3292/bt5ZvwAAAGkFUFlMTlR3A8Nc/9xc2o0nqj3y+bppZFRLbgAAABIAAAABMEUCIQCsyjcHpLYA4+v8xvmajeN1m4hgopSPP5OxZgfDlGtq9AIgDpiH7HKR6em5m7CFRsp8MUsiXyom1GAvvYzOHzGfhbAAAABmA1BZUpU0rWX7OY4nrI9CUdrheAuYnRNuAAAAEgAAAAEwRAIgPkMd9dOZ9inHAAxpKv1mm2K2J9JuuQtzjuaiGA11AxECIF0w6eA/mrhLxDz4uDoEmNYjws/u6jja8hr3qTqL3eDoAAAAaARQWVJPFECbD8XH+HtdrSB1T+ItKaPeghcAAAASAAAAATBFAiEAw0YiVJ/IvkmdfKTI/FiPjjJgUEJO1zpWukzq5A235FkCIEUzd42jAouQCvoyr2Ucch0q1DotPQhTjBo0wUbnaZd6AAAAaARQWVJPHi0jDHp/TGefsTePH1He3q6FzXIAAAASAAAAATBFAiEAh3UN2seFtIaUEq3G7wTN196x60gdmsUBq7Hl4wCNoNsCIGXG9Qki7VMg/7f7Rhl4gTujqIZyNQPxq3Gx0mtrWggeAAAAaAVROEUyMKMfejLbMp8nCg5rWVWII+ZNjvCmAAAACAAAAAEwRAIgL8clXWZw6TtG+IhuoMlttbMYXxF5WANNZU3YwGMDjcwCIE57r0vqkbFz0Tzij9+qiiV4hWz/qcMhRAa7cg6btMkCAAAAaARRREFPMWbFcJNafYVUyPTqeS/5ZdLv4fIAAAASAAAAATBFAiEAmbaweAHEYjatcMZwyj7fQm6hh0+pNbRogEZeHmZSewQCIHSCkeSRNC0AP/EMMTa1/Z3DpSawgiVLCi1/7aozpALWAAAAaQVRRGVGaf7k2+J1G/jRsbhhqvlmSWHxnOkaAAAAEgAAAAEwRQIhAKqra9bY64YPFzB5QOLFqcxkrYVG8+PdQoD/hJNy7uqLAiA5w/dqDl0IbHj3iNjrJ+sfEIWxoiyrRdXrRirl0fPhMAAAAGgEUUFOWKqnoQqO4jfqYeisRsUKjbi8wbqqAAAAEgAAAAEwRQIhAI3A/PDmBSTLOdK6AOMeL7hkAQNs6emLl+Nqn2q5SyfyAiB7dig+RFm7yZcgvWDKIfK5lfCe2x/2gJZWjTSuR6NMCgAAAGgEUUFSS2MSDM17QVdD6HU6/RZ/WtShcyxDAAAAEgAAAAEwRQIhAIrIVRVv+lKS6jvD5u7Q79kr1bkO2YxmQgREIy/P6WxjAiBaF2SGRLyYlC/O09YG0PkRgVNSNXZILBb3QRfku9GoHgAAAGgEUUFTSGGOdayQsSxgSbo7J/XV+GUbADf2AAAABgAAAAEwRQIhANqcvRJhk0N9F/WXFe0u5ghkWfXNPo5j9eaN9C+yKCrOAiAiJ+HQ2z5G8NH4slsVP8FrHUESV+pxK1cfq5kSMeXKzQAAAGYDUUFVZxq75c5lJJGYU0LoVCjrGwe8bGQAAAAIAAAAATBEAiB8SAK1WQy/LN54Fo4KrV+8IuWSYm9rR9a8yfGFSoBm+AIgQ87acoJFaDxNneXOPq3q0s7Oxoz4HzDQ5Cfv1mkdkNQAAABnBFFXTEEdlv1D7geqefj9ADy99AT7XOQa0gAAABIAAAABMEQCIFuYO61kot329hQHQBKX4yNDyk8z30ck09NW7gylyYbIAiBC+KEgJXdsFJbYi7HREiHsrdFKfLoBP8ZK1zZXaH8pvgAAAGYDUUJaOLyJzx9jTHGJZiC82AevI1y97NEAAAASAAAAATBEAiB3/7iTtn3UGosd0IcPatREOuNmUtukLOBA6kMmj3lQ5gIgKFxySxH9VRS4p8XfzAGTNAsonheg9Z69aGZ+c7yoatMAAABoBFFDQURKFrr0FLjmN+0SAZ+tXdcFc12y4AAAAAIAAAABMEUCIQCc0hRp/l4+t2OxneXpIr68PVmrkIJXCgkLtJ12luLxpQIgLFr4mEaptKUOaIEBfKFbjCo8qTgzVwIC+C3kTNoN/2kAAABlAlFD50s1Ql/n4z6hkLFJgFuvMROagpAAAAASAAAAATBEAiAhwJDRHsBcRPjDfYxVufYcNPPsTO4pQY+f7feBZfedVAIgCotyOfVGH4eK1XqOHbV+Fyyg7y2H3MA0+om0jVrklUkAAABnA1FDSGh7/D5z9q9V8MzKhFARTRB+eBoOAAAAEgAAAAEwRQIhAJyGt7kGAZ+x2cSvQGRP+F4MF47JS+u6kVbP765fBEevAiAWmLOxmBKFJ2JuCL/3x/1wMDUqJfeNWR4R92vlltCQaAAAAGcDUUhDXflHgPABQP5y0jnQ0mH3eX4/vRsAAAASAAAAATBFAiEAqiVqLO9xkhc3W2kFkzQSSUU14Pt7saYLEg+Hw0+0CFQCICkzfejn2iiWMsPTBOVa2KV6w0KtjQuI+WHWWH8SuHhwAAAAaQVRQ09SRYKGa0pxup2TD+M4w4a2pFpxM+s2AAAACQAAAAEwRQIhAK0zhavQYewgtpTGAXADpi39LW6ave7Tpjd9BR2RrdUsAiAWYTy8GiC4mMpQ2Kfc5lqjl6pZ7w/R54NQFw8HNZdbgwAAAGYDUUZJb+iKIRhj0NgYYIA2iAyaSw6oZ5UAAAASAAAAATBEAiALUSPUPJ5dOglle0v2YxyO3VNVtU2RICbfebokUKaIHAIgGNBBSgMXuODfTHDfZQjWjowDwlr4eRiHwj1oeQL7WwwAAABnA0tVTmXZvJcKqbJBMCf6M59/F5s/PyYEAAAAEgAAAAEwRQIhAK1RojxBSp/UNhnOnY8iWM1SctSyArnn+fohLaFgEarUAiAaLCMWaqGsXRAtT/CO5oyvBKgEA7MO7zOuLNq7dpxGCQAAAGcDUUJYJGeqa1ojUUFv1MPe+EYthB/u7OwAAAASAAAAATBFAiEAwECfABiswF35j1zuppJgIJnAJhyF5vYLxgeVL6V7z2ICIG2WOYQa/eC8k91Hdlt7YcUKQ5D/g5Ui5Ip4TKKn5DoeAAAAZwNRSVGYry6SYgbx61r0au3dFEcnJn0EhwAAABIAAAABMEUCIQCKyEc52ukSvY0QUmXhxy92yCeKTRUIkMFnhAuqj5DkOwIgLp0z2VndVZ5ksTdKO4Y1Zd6x3MVKLjFEmD4HFd/vxOEAAABnA1FPQr0ef1lGANyvf0g69V3qzsAVmgZOAAAACAAAAAEwRQIhAM9/C/IUcb9QeMIHd4t9dc5YjNmqePVogpPxSdVeeGyMAiBkzl1Szo/ISTZY6rM/dcfsSFEn2qlGstl2TMtKW3rIOAAAAGYDUVFRKCL20bL0H5PzPZN7x9hKjfpPTCEAAAASAAAAATBEAiBAKWM9xoYlOIhDTUXigSsr8KaJtBV+JNjcduXGQ21I4AIgIqnenTk6oPCqo2umr6cnGGO0MSG1Tzq9xaQm2qUHu8wAAABnBFFSRE9BI6EzrjxSH9E017E6Lew1tWwkYwAAAAgAAAABMEQCIH/tIaKSWSW05jzK5wBbKkQiDdfhdx5MwYij2XQU/zYoAiAFIW08GQ2icG37vFjnwAa7LoaR1BvEK0ipQMYsn0sOjgAAAGcDUVJH/6pf/EVdkTH4onE6dB/RlgMwUIsAAAASAAAAATBFAiEAmM9LZVoGwCsSRqO8NXgbSE81n5A2QI1kbhzMjQoFIrgCIEnqzJsxdVhWcbDsoWInWgaPo6Lke9CtUjQODjKVSrhZAAAAZgNRUkxpe+rCiwnhIsQzLRY5heinMSG5fwAAAAgAAAABMEQCIHJbKsFRIsOI+E8lhVbi179EvGh8OKyZrbMeI6l2eUg8AiA4FWsmnhmfGm6DjKxBnkvQKMk2tJqqlJjIzBm0/7iMtQAAAGYDUVRDGRMaiuQuMsdHwerTGPrbmLC+RbcAAAASAAAAATBEAiAc/gXCBsKIq0dg/qxjbNTzXvSGs6S0kn97CkiYqISvDwIgLfi2k0HSCR0AGAZymRHlGrtnmykvS57BZcRQzle2Fp4AAABoBVFUQ09OG/f9InCXM8zXxFqyfdAsfsjlAHgAAAASAAAAATBEAiA5pvGxk4zv4IoixKymfDxoeEjcGvt6Sn9a3c+6y+hKywIgIi8CSv21zu9snhGgqdEoPgh7OH4D8xr61QeInjTx9TMAAABnBFFUVU2aZC1rM2jdxmLKJEut8yzacWAFvAAAABIAAAABMEQCIDOQIltGeBOBXjtsduHoOjXO+bEyD4cLlLjQipKcRpJHAiAY/TEFKw6c4cs0Ysw0JV4n9H6dJrCQoHVnX8cGjcybZAAAAGgEUVVBRKsqe1h21wfgEms6de93gcd8iHfuAAAAEgAAAAEwRQIhANWEGDYRXg3ybAyoIp8MFxqTOsmH9Odrt7peTSU/d3EjAiBu2uYzlAXMWwGYTFknRW9WEueRqVkeLHVvvC+9rejdFwAAAGYDUURUmtx3EOnRsp2KeMBNUtMlMil8LvMAAAASAAAAATBEAiBGsXuT0yawHMYs/kSXKXdmLGxM0TMQRthbzOtyUljORgIgSlsZ9lO9AkZcFnAXLpjVBri+qVU+ajy9UPZUQT99c/EAAABoBWVRVUFEwo6TGBRyW7655nBnb6u8tpT+ffIAAAASAAAAATBEAiA/+NelZTvUqYgO0isE8AJSyv4QI3lKb2KjOdt5+A2apwIgZIegR47Ge9pxTy2bhyhAkdtkc0ttNiAQPVootscHBzkAAABoBFFVQUlAghzQdN/ssVJChpI7xpMVB1tciQAAABIAAAABMEUCIQC2tzJsiflQ1quiuKFZ0Ki2PLMcyNnp+Wv1DfEqT/dk0AIgQ7I36EKtW7T8nwEaZGxtut0kaK5MQYEWPXxrI68DQ6QAAABpBVFVQUtFNa+ZPvPonAduQeRj+9TNANMQXNEAAAASAAAAATBFAiEA1V35UAymKdddMRPICLQqYSfuuUrhnBl9fMUDfpHbR98CIGUCyy27VBi6MZ9DdS/iNmJsjuM+ALmiTWJq1iOCHIrpAAAAZwNRQlVE3PTcnsIot3SEIsUbbFxX9fIp7AAAABIAAAABMEUCIQCPDIoB0rxQUc6ZAspqVShEL3uwom3NhGiazo7a9dCegwIgbLigSE2jcVg+uoFydc3AUMq1dowfLXBJRLorom2NK5MAAABnA1FOVEoiDmCWsl6tuINYy0QGijJIJUZ1AAAAEgAAAAEwRQIhAP/factcpfLeWAoHltBAB7r6TbSgpt9z1rofP9sVA/guAiAR+UrFSSXuocazOGHLhbo+I397FoujKlL1Mpy8TArrQQAAAGYDUURU0YR1UhJFoSepM6T8r5noxFpBb34AAAAIAAAAATBEAiB4sndwAsTcbG9wUirxd3VjPrtFu5V+BpMtRfuG5jn/aAIgCvbsncV05wrF3hm+FRxIuHnIZjBnektLyn5PwszgJCYAAABnA1FURg/LwxxQO0qe2Q6H+P9GwxikoUJgAAAACAAAAAEwRQIhAMvup4+d14oqFzDh175JWb31Xsu47Gf9mI2LpcZW9ROOAiAF147ivfhd0Staux64eayh2vu2BqhIu3GADu2lhFji6AAAAGcDUVNQmepNue53rNQLEZvR3E4z4cBwuA0AAAASAAAAATBFAiEAm0n3D2ri+gyqVsyHEIsnSTEb80ujMSnfiKPARcMgaZgCIAErl359BS1J3oUbCyaa0v3JD00Oc4Y8snmCJOjMQoQxAAAAZgMzRkFCY6LwRWMF19EPikVV+MO1k7O4lQAAAAQAAAABMEQCICvEXIsyqmJv5xNvEcaTXc1ftI2Te16d0bIm/p2iL9IWAiBEhy9Z3FSwn52LMfp5Uxl3VI/0u6t8YzQHYvL1q9LiCgAAAGcDUVVB/Q/TKiBTKtaQcxwmhdd8NRAV67oAAAASAAAAATBFAiEA2D5R2m6S0K7Y/KmZ+qfCQRq/Dj77HAwy+LGt0ZZCfT4CIDNFfSrUUuErI1fUORqkbQlnbd7MQC1iG4Vc3z6Da5u9AAAAZgNRVUHTXAaieB9kjHUpCXbs9x5xWCGItwAAABIAAAABMEQCIGiJwr7tTHRYgCSILsuwgT5neu4zfUBSIBet+HFM8BIkAiBSifIoStwvqd+9UE0M1BSfUK/pqfXMI7cm+tzRCJvnTgAAAGcDUUtD6ibErBbUpaEGggvIruhf0LeytmQAAAASAAAAATBFAiEA2tMCDQRL3j3Nt5KhF0EN8WNQ7pxyaRui87eYea9DnCoCIBJFYHPeTx5OLzeubf4u1vGglxXwPEEGGA30MsO4i/p1AAAAZwRRQklUy16jwZDY+C3q33zlr4Vd2/M+OWIAAAAGAAAAATBEAiAh+XRUJ66RCK17BvN6MDb7pn/cVquDFEhwpd+7/Dv7RQIgMnLsmumhExI+OdBsWvroxf/uA7aDYMEIC0Cs4mQfnxYAAABnBFFCSVQWAq8seCzAP5JBmS4kMpD8z3O7EwAAABIAAAABMEQCIAPD/ZaJFlRhe0hoIRlp0JgawW/CCusVW/xWF++wY7OxAiA9wsrq/yUB857jLU6mQqLvh4bwCXbphb04R2cw/ayx0gAAAGUCUU23NAQoBpcIDaARbPrA5Xf6/fRLNwAAAAgAAAABMEQCIGF4jjHDj0MmhGbUfcLL6A8OWvWgZn/BhsqALP69wxDwAiB7nCQSPJ0FSbMwjMxCXGjAkTMKhxsCGVnlS3h/c4CZQQAAAGgFUVVJQ0vSuiPeihkxamONweeprdoddCMzaAAAABIAAAABMEQCID9504+qLo6hhWrh27xFXgIGbw4JUxecLADaYBqDoXpvAiA9F0vqYzC+PvmpUe3cd0akqs0QvJZONLuGr8mNWI9ZaQAAAGkGUVVJQ0tfbCiu+Jd8m3c5ltDoN20u43lEby8AAAASAAAAATBEAiBC/I+XBKomw392A1zZITtSg5tMI/KpDsbdhjn+TClYvgIgCKQanNrFVhKSYDk2m4DXPi1TuBgN6Ez23EAmrDpJr/EAAABnA1FDWPnlr3tC0x1RZ3x1u703wZhux5ruAAAACAAAAAEwRQIhAKCH0ye8geNeaFOjHKM90LDI90c++eMwQXXmEp3WQSD9AiBnmuj85t8GnmIaca5XL6h0QH3Qppoi1WynvVMSwp7EKQAAAGgFUVVJRETan9qyG8SlgRE0puC6bKBmJOZ8BwAAABIAAAABMEQCIAEvRWM6rLzArwa6zcvnttnxTzof82KwMwLw8jnhrrebAiA/Niho3iNuGsmfBLx9BPlXGdtvRhudSMJBR1MEJLwLxgAAAGcEUVVJTobkRUMWTZuXsU739vOre6ZwyrNGAAAAEgAAAAEwRAIgd/PnOxGgIV94dwC2ethpW9mliHXvQr2mvaCZYnnPtDACIDXWOZ93O6cFhjgk5G/KomvaLH7PP9WJiWLK7MH5zgOSAAAAZwNRUlhuDa3ljS2J6756/DhOPk8VtwsU2AAAABIAAAABMEUCIQDdukxbI3qjzRudkAtQn3LIzX+jpEyMZJbLWtIuH/GXBAIgSPIfhMnTxiBLRQt1tIhrbkIZ/g4/NH6EmGuG89F/XkMAAABmA1FVTiZNwt7c3LuJdWGlfLpQhcpBb7e0AAAAEgAAAAEwRAIgEBBd2TC9UKijE6dMtBFBI7kND9srn0Jd2Z5nGp3KY3kCIA8TEM+vsmGuPIQapaiNzSRHn4H3fWV56e6IDBz6gvQ/AAAAZgNRVU/v1yDJRlnyzLdngJNHJF+RehRe2AAAABIAAAABMEQCIECvp1quDT7GsPYveXMfw7Jmz8JwLN0/DSv8ZzEz9LntAiBi/c9U8WD3IO4Cpk2exyIUtDm1EU3PHCN3RyMnZlxdrgAAAGcDWFFDcNpI9LfoPDhu+YPUzvTljCwJ2KwAAAAIAAAAATBFAiEA1fVtDy+EOkSjAIOH2EPaf5hs+iS7N7JuyUDi3GhMKCYCIAF52jrmKuHRcimpkkXHtCyK0AQS8m75y3H+a/PE24lzAAAAaARRVVNEWdTMyUqcTD07S6KqNDqb35UUXdEAAAASAAAAATBFAiEAlpwKZJo50ruwhQnd/sGwbyRVVThPMVSCxhTuvc75KkYCIHFax79g0B9no92F6CSHQhL+kQHqWaOCCWBn+xtQ7/6hAAAAZwNRVlQRg/kqViTWjoX/uRcPFr8EQ7TCQgAAABIAAAABMEUCIQDlXnJnKhzMyBrfC6IaUcKPga2DT5oFxFO/bxBrLV+QCAIgJ33lERon8UJGPYlMqvAs/paUQM3XCUcX3nMvDdbRgtsAAABoBFIzNFDK6vg4HUsgtDr6QgYdb4AxmoiB9gAAAAgAAAABMEUCIQChFm+3c9WR41wkUxLNkpJdpt2lFe8hR1f9c93aJYKo5QIgb1gOGUirWyxmZxOtzpr1C4DmH9i6295D72g2QCN4TIIAAABnBFIzRkkTVyhREDvtSf90OvTEu1rOiLIuLwAAAAkAAAABMEQCIAo6PF2RLQ44UDgPp3fa8n0sKOFfsOQULu16SvXJByHPAiBkY0yNMKO0YAOxBeeQOT0F5cnPencVKPrWt8oTkHhz2gAAAGcEUjY0WPMRCyf0gfmsPBujxU3lQqzLLZE8AAAAEgAAAAEwRAIgWZvLtDuWH+zDSY1JFbf4XbZgF12es7RRqlZzkoPYH68CIC7cQJLtxZdnsJQi46UizBwOaWwuo7+p3L3ByZE9Y7x2AAAAZwNSQUPCKzDkzOa3iqqtrpHkTnNZOSmj6QAAABIAAAABMEUCIQDYuSLLa+pdCfdHDqS/RqfLGSYmbgRm1EY+irhAICyi7wIgUYW7hE1mV+S9Z3hQQXMTORj73Azo05AbUqItcawtDDoAAABnA1JQQ/GK9Gb4iF+eqT0rhcR6QnywG61SAAAAEgAAAAEwRQIhAOGCvUnGxm+bFayQSWNcqPQrdTWI00OMIVZxjAI/PZIIAiAa98ZPTyEENszF+29KPKe6erxOz7PADl67Kwr6riQr0wAAAGYDUkRSPJynPVMJ04xvLCG3i5rh9LJEEYgAAAAEAAAAATBEAiBKNyYqtja+fraT0H+SqQX3+5lduDxrJAnLvsuwAChdSQIgcLORcvhBz3yZlJkW2w9MxE8z8TtLiMrkReroo42pK+YAAABnA1JBRDHI6sv/3YdcdLlLB3iVvXjPHmSjAAAAEgAAAAEwRQIhAJwL+d3LbIPGUm9FC58fM80Mzju7/87j+gk7bzq+tIKdAiBfKJEUFKW7EOeaR67Md+vXD4msN0HaUJOLfcBFXfLvMQAAAGgEUkFDQRK7iQUIwSVmHgOwnsBuQEvJKJBAAAAAEgAAAAEwRQIhAMxjwOXuRua9yyDrnVr0Cyi3zUQOTPkVaqygMWrGwhH8AiB7N5Ks05g5jNn5z+T1472Kii80vj2dPi+Xho/l4xD5IgAAAGkFUkFESU96XTqdzTPLjVJ/e1+W60/vQ9VWNgAAABIAAAABMEUCIQC89kFJLu8TZfqJUqQs7+yaZN2oPmYyazTFZ9ZJFOBvXQIgBnQfhvF1KlAs6oM/rKrfEkgd2YN5DvX7FowHoMOofPwAAABnA1JBT0XttTWUKoyE2fS1034bJfkepIBMAAAAEgAAAAEwRQIhALAj8izoCj1RBW9YkKl6L68v3iFYEchKWkUzAwxsCrDsAiA3ZyWO85PRGU50vAmZKeDjfBaqvNtmkU41+VvZ2kbWpgAAAGcDUkFF5aMinMsitkhFlJc6A6OFHc2Uh1YAAAASAAAAATBFAiEA7mRTHiKWPETkDhQbLTTx/elTDQINcDUhlak3K49JhqoCIChBuo1AWBBOd2/WZBuxWkFvXBm3aNoQdFMwSJe65flRAAAAaARSQUdFlIBNxJSBhP/XNV9izLsiHJdliG8AAAASAAAAATBFAiEArGN91qfeqpwoHk3h3zHpjnvdh28JIfOzcseupaylZVkCIHS5EHJUdYd+OltoEjwDc357JOjUw5RgAYjXr0pNhiAbAAAAZgNSQUlMm7/B+9k9+1CecYQAl4++7fWQ6QAAABIAAAABMEQCIAV3YvlcGLLrmvnhthYiHFCtC69aRH3dGV37Mop86BDgAiBzHgKd+4FKd/8orH5BOMyMxHdCYfIsi5+BhVz2JMjdiAAAAGoHUkFJM0NSVmultOQ4+gqvfBvReSha9l0TvT2QAAAAEgAAAAEwRAIgeFj3NH3h14t8kBSgOhrNtwLWC2H63PDMgIX83YGydFUCIE1y9GQ+olOqwGg2/QP6SB33TdStHlEtwE3I7Aq/0NFuAAAAZwNSYWnzBUf/LfHxy+XI3XWLPdCYyFbjjwAAABIAAAABMEUCIQDLgGeN/1wWvYmphlD80D4f5XiIaqXZe8P9MSacAb9KigIgXaE5AjRAKmOJYVTwesKkVCTukM268NrYBeNrGdW0AWsAAABnA1JBSQOrRYY0kQqtIO9fHI7pbx1qxUkZAAAAEgAAAAEwRQIhAJHiOOQj4kXMsKLoEK5Ok6daRiLswbPECWHVaGPaEBFYAiAbEO7Vm9NYxlI//LJslwOkFGi8k2TmR3QZU785mk7dpwAAAGgEUkFJRBVONcKwAks+B5xcXk/DHJecGJzLAAAAEgAAAAEwRQIhAJIs4rO8dqS2V+6GbkjVb99mH1FD4a/h10eraxFZkWqqAiBN6gPLEG0oNrE7WaHLhG2Suw6GupTc5ZobAtzhYX8kUQAAAGcDUkROJVqm3wdUDLXT0pfw0NTYTLUryOYAAAASAAAAATBFAiEAhct3o++Wn2opukJhkvPRjrSPUYrRnLnF+kIbaOrKFuwCIHPJcnGt61u2la2ckSnRE4CuSRVg6lkYs16BfEN1GcqeAAAAaQZSQUlKSU7Ifisn90d2aMx7l+kplTgCWQBJ9wAAAAkAAAABMEQCIEsKktHjayTOqDV3s49mSd3KCWxc9YctJsB4GAtOuT5oAiB3KDuVwWXywstOMTqyenE2sOIlASjVqFo53EtSrYt7vwAAAGgEUkFJTOdsbIOvZOTGAkXYx96VPfZzp6M9AAAAEgAAAAEwRQIhALb9WqQcTk0Vsh1kHITAb0P4DxQEbS/ABfhxI7M38Y15AiAuPaGD9FT/hkgs96GdXlkQ1h7yc7jr/iIm8/8UY/UasAAAAGgEUkFJTmHNtm5W+tlCp7XOP0Gf/pN14xB1AAAAEgAAAAEwRQIhAMM+iuHaAJq//8L83xiHRMqAjW7h1j/OwlUr1ywAnl/LAiBb4/4ShMRuCXpDDcyMYf+iuTaplaSqHwKr9QEGc30eawAAAGgEUk5CV+lLl7a0NjniOMhRp+aT9QAz79dcAAAAEgAAAAEwRQIhAIWxiBVtQFCaeT2S8Mu5TC8jt8V90qdJF3X4OnrE4fg7AiAf2Xiiwe3FNS+1HPaCLXPWK2Syob5C62+nW9oqGtDDYgAAAGgFUkFJTknrlT7aDcZeMkb0Pcj6E/NWI73V7QAAABIAAAABMEQCIFyCs6fQCDVbbk1AbOwwOjdMKPp4fZEebURmHgyriwyaAiBNnmHRytLBdJoMDKujP3h51KlHCVFVpMjUyTfKvheY3AAAAGgFUkFJU0UQuoxCDpEr8HvtrAOqaQhyDbBODAAAABIAAAABMEQCIEkHY206/oSC9f/VfxfOA40KpfpmtiS7Aw+8YpGIPizRAiAmP1JGfiCuKCBoGQKyNZZANvK8bzkApdhogjQVXEDhAgAAAGYDUkFLqLDxVKaIwiFC42FwffZCd+CgvmYAAAASAAAAATBEAiA/rujzV7JRw35v9doS09zz1XQ/ybwssAxD/6rsDyR9VAIgHQivF+/U20jhKwjqzjpBeFpNtYoRMbsVUIorQaJrmgsAAABmA1JBUzk/rAdzx2XIDciHRRN31VPEb4OxAAAAEgAAAAEwRAIgAz/T/Vih0ttffoiWQ1d8ZQ68IOV34ncHpr8yzkiYp5QCIHXCtpmfI17hgR1kNweLlZ3446m6Wjgr73QdR8iJQ+zVAAAAaQVSQUtVQ3FFmfdgQUSj/hc3xECnD8D9ZQPqAAAAEgAAAAEwRQIhAPMEQRbKaBGgtB8EiQhkcf9ETWbdOv5owuqBEhIjZLIaAiB3zmzaVPkg/9B9lC7apdZguQKB/GAdw4aavMsUvgHZgAAAAGgEUkFLVVG8Der3u+gryQBrDDUxZopCBtJ/AAAAEgAAAAEwRQIhANVre2iiM5C1RB6pZL1zvF6cycimd6Glw1nZe+VL1b2EAiARZPQL5p9HKoZ7HuBSRyV99/GhBtT2WI0kSwGNyaD9wgAAAGYDUkxZ8flVAW7LzXMhxyZrzPuWxo6l5JsAAAASAAAAATBEAiB/VJWOieEGykRR3IMaReh4VTM5x5aJHY9Zr9BMrIpFRwIgeHXzw+nCJCGUys0kS2/0ffywZdQuUcDOFcNgb1r6u74AAABnA1JBTaxv6aprmW0V8j4umjhP5kYHu6fVAAAACQAAAAEwRQIhALniOtsfhNPioWW+Gxgt+2Xfvy9QReqBpnVXK5+LtX50AiAdNsz17OnBy1VYZw712U0IW8LheAU2PhAikhTN3ajI/gAAAGgEUkFNUDPQVolBwMZP9+D7T7oLEb033u2fAAAAEgAAAAEwRQIhAKwptoRBxeFap9+K3DYia4qYjVqCMC7B/K2TRkasGbEDAiAQy1Mw4f/INKUGzrOVoNcbEeDxFYYpjmTHuUH7ikMZyAAAAGoHUkFQRE9HRdja41tIfjRTz/2ZjGdUcTyBsPIAAAAAEgAAAAEwRAIgXPfQ2yPnCsC1DrbQX9undG4i0b+xT4gimEvqCj6qNRICID+qSrnyvOZc+Z9b892yVu9OWF+SlvByV5s41EC7w+cZAAAAZgNSUlITBsfZXlnPzf9648E9t/VqzFQ4FQAAAAkAAAABMEQCIDouS3oXIbag91/z2eCPQ3JFzL8cES9UE9WtrFFfwsc0AiBuMjFyNebMQKy7mFBxJWEhJLTzvawOysRsaeo1iAppGwAAAGcEUlBaWGg1DTDZ9YyBqqpBkp8b/FL/9OpJAAAAEgAAAAEwRAIgKQMerS8JXXzsjLjs/JD23rH8WOB77WGeXZ4Xn+nECBoCIDmzYyHzNEaxk8UPi2qKQq/ebfuYcBg/Ay3xTDsHkO6fAAAAZwRSQVJFgbG/1sua1C2zlcKif3PU3PV3fi0AAAAEAAAAATBEAiAZpGacxJaq5OEcYaoO2aZY9jTsdaud5Ghah6M9zn3xVwIgVFf0sYwhbuuWUnfENoRl2jee4nPPcEYvxXGtkk8xMG4AAABpBXJQZXBlDptW0iM+orWIOGF1RDX5xR28oUEAAAASAAAAATBFAiEAvrTt9OcJIkogDhrT2Ti+mR96t2CB3bSUc4HULmvSCvkCIFhQE90CND2lcEz4VPH7Y9vcCNakH86oHeHoWCohXAv5AAAAaARSQVJF598oN28MRLWDlv2iUxMjIQIeCM8AAAASAAAAATBFAiEAn/XPxmEqzGw2uoa6f7HgnXWWm7zYWG0jpamLAqhS7X4CIAT+XizGRxZmhpdNHDpxHzh1B01Ztx+jZFN+TYDQy5VeAAAAaARSQVJFk9+vV9mGucp335N2xQh44BPZx8gAAAASAAAAATBFAiEAsJF9f888cMujx1bnYwiCX/p/s+zjUBr7+YwqhgVhCacCIFXgj4YRIHPTLoTR/napn5oWhcCey+qL07/OrF32RVstAAAAZgNSR1TSkeegMoNkD9xRsSGsQBODpGzGIwAAABIAAAABMEQCIDkKZR/Kk+oPur/qQP9KUWX0WymKyTQFaBv+y+PVM2aBAiAgPiUT6a6tMBxl/bueGSc/rthoquDPFdOFT0mUeap5PgAAAGcEUkFSSfylnNgWqx6tZlNNgrwh51Fc5EHPAAAAEgAAAAEwRAIgGzLdmhDinJNNplLlpTooji/pztmKjksE48fDWo786xQCICPwOe+pwuVEKirWNCMJZWaHZqOSEyj7dGsIriwWp/BZAAAAZgNSVEVDbw86mCB0xKBQhEhdQhRmqZT+UwAAABIAAAABMEQCIGuU/Bpbq8tE5j52VkjiX5kCSJlYBNouiZ+xVZTg5sUpAiAWAuauihHJSHnmMuANoj2p6ZWG2/I3Z+k1ONQVgTzKPQAAAGoGUmF0aW5n6GY6ZKlhaf9NlbQpnnrpp2uQWzEAAAAIAAAAATBFAiEAp3D/aw4dsm3/h6U8KfoMYzIYKTJKNyW444ry5MwxWQ0CIBXsDm762S7AS84WE/wyQcotp8dNn3RoCDIdPNx8w3qcAAAAZwNSQVlSRcAknl7rKgg4JmgARx/TKtsQiQAAAAYAAAABMEUCIQCTzviEc3x1Cij4zDyY2slBr0Y/A7PRtbGqQ/CTEQ1x0wIgJfUPnq1lRSYnyHuRa4CoBwT6IcngcQcIZy5RazVw9skAAABoBFJBWkVeqmmyn5nIT+XeggA0C06bSrOOrAAAABIAAAABMEUCIQCYaXCvbAkMsMAiJbSPnZUMPs3ZcHA+jW6vezn2lwxDRgIgfDgXB8mdPv6a4SpBkQUqX2U86smpwk3COESAfsFL/jgAAABoBVJBWk9SUN5oVjWMw186mlfqqjS9TLcH0s0AAAASAAAAATBEAiAQO7B7atT3gmxuYag5QnHqOtpJM8KUUE7CfYaQSGDgXQIgOMBPlvllaW/mPp4LPbwZua1AwAPSI8UnbABQ+3fcgdAAAABpBVJCQVNF6LJRgi0AOiskZu4OODkcLbIEhzkAAAAJAAAAATBFAiEA0JNQIXhnhnb5Raprftdohs6FR2xn0aotMn/QGew2ZJUCIDJ14BmGhKI1MX99wvkOKRD3wuiXLmklHDuNUDIfhAPnAAAAZwNSQliCVOJuRT61q9KbPDesno2jLl0ymQAAABIAAAABMEUCIQDK1w2jkciWyomfHnjRIGpocs+Ia7pX43O5dtEecsVXdwIgeV0ApQxCDuwk4bAs10VbpiSU1gn+LhHr41YTnTFICikAAABnBFJDQ0Mzv9IGYO6vlS6NW8MjbhkYcB8X0AAAABIAAAABMEQCIFVyOIUgVDL9fhKgYsNPCWBYDf6mQ0IZEC4kYi1kP7HOAiAofUbaC92RUYGD8zx9Qjhn5b+7bgNuRAg+mek8pqQNWwAAAGYDUlRDf5oA4DwuU6OvYDHBehUNvtqqs9wAAAASAAAAATBEAiBiBYVjP1SRcdqmbvsxDQKK8g1zZbjWF48Ifefxz7IkKwIgClExynGCBBr7FlU99I1A9k7kDBLMIvayroYXh9l8xQcAAABnBFJFQUxrQ4mvs+JDplZotzEfqe8JKoo7ZAAAABIAAAABMEQCIARRtqN6fuWKfBdunroCjbmU22DG8nb4lIkJjs66G1qQAiBpQ/l6i6PwXuBby+E02egRX5p+7rdbD6dxp2wOW4jnZgAAAGcEUkVBTJIU7ALLccugraaJa42iYHNqZ6sQAAAAEgAAAAEwRAIgGURoVAguwCiDoWlqADByGnQpx1IALkN/aFxb9C86xIUCIBAP9lyIyPO625J7RHBP24YA0bpmiJlN7nExAlP627I1AAAAZgNSQ1QT8lzVKyFlDKqCJcmUIzfZFMmwMAAAABIAAAABMEQCIEjF6yQ849xlN0YtIegW7Ml+10AAfc06a02X3hR4iC1DAiBssNACXrVMdH+KByOQyLUNK1/X6FYHgWHRjZKz7KuKOAAAAGYDUklP8hZh0NHXbT7LjhufHJI9v/+uQJcAAAASAAAAATBEAiAoESEf0xI7baoDVQ+KJXMLGL/Pd1b/JAIb5aRSaexlzQIgPzrH8+s1s89ycCcljiLSgf3hugkP2ISnRhs4Uw7zJeAAAABmA1JFQXZ7opFew0QBWnk44+7f7CeFGV0FAAAAEgAAAAEwRAIgXquCQVHMmY+r9uJkDT9GOLYNjYezVn9xvRpCXU+O7RYCIFjgVAzvkO9lPVvmxAanUaAaWUDaxxw1hfipfLsxxeYsAAAAZgNSTETRYy76OSklCJeFtDQQxSn4lZqNmgAAAAgAAAABMEQCIBPPJt9kDiWRoFf2+WBCHudywTNsT0azLqQ+eQKlqqVNAiA+MxByOUBYrr+pHoAEme0C8w43L458FP8iOuatLI/JNgAAAGgFUkVBTE1GT9uK/8m6wYWnOT/UKYE3hm3PuAAAABIAAAABMEQCIDFhqWZF0CgZPWmkSNBg+deqi/eVirP6YjhQuWZUxeEDAiBB6txsTHOZ5f1l3aaKwnZoaaMwhJ0iOyHAjufJtJA9KwAAAGkGUlQxMDAwHrFuw3jwzo+BRJEgYp9SuiiWHUcAAAASAAAAATBEAiADERqywvSGUmQ+NfmzIcKHgLQgkcd8snx+M45MyfFILQIgIffhF5ObxverU82ie15oK3h2We1sQ0Rh4lV0+SSuJlMAAABrB1JUMTAwMjS10wwo+HrPZ17VufND5f/znsmULAAAABIAAAABMEUCIQD2Gmrc99+uBl5/uzqzQ/4R/qNBVOl8RSMlut0eaGUIzwIgHnGu1B7j41mZKz/7SyBXMkZlGRpOH7K+2fGSzIyaMt8AAABqB1JUMTAwODSSFhOFyd6HmK1fsBwL6Z/8vITf2AAAABIAAAABMEQCIDCP2+nJraTfqInFi9MRgCjJskznv8ucIMAq3t33t9HiAiA5YMXfF8Ux4T0DI9diWjdBWleTFMLNdRIWgpVt94tOqwAAAGsHUlQxMDYwNIYms4Jn5PwNjJLgu4b5esqz9qoFAAAAEgAAAAEwRQIhANonbEJznSeVnU/j3bbMhythDZVaa/nys56ZFLBqPTToAiBj8YSRHQYwxK9B2P4M1aHVoUr2gQeG8AFJKO9MameqewAAAGoHUlQxMDYxMtHBXOv9zRbwDZFma/ZMi2bL9em1AAAAEgAAAAEwRAIgN3lLVV50wY4v0JCblFkDjmhRavDvRGfZS/6QwWANCO4CIAIHdscgkSFOFePmMEBuICOtAg5HDINGg9wfdaY7aVViAAAAagdSVDEwNjE25c5jrJoIwesWCIkVHNhIVfFslNIAAAASAAAAATBEAiAfAqaNwQIacSx4awyrc9+adeyXddI/U6eBMKVnXebd1AIgM6+QsNGNXq5nK/x6rB0yO3gJ9o3Djk6Uz0lkCABPe+0AAABqB1JUMTA2MTcG0OWu5EMJOsVjW3CcigE0LlnfGQAAABIAAAABMEQCIHJAEemP2/B491iGhKEejzANjmbcBNGhZIm0mA7plckeAiBx1Zx5PSk82smM/rGyDgqJSjty9PPpmLCc8zf9gL/d8wAAAGoHUlQxMDYyOdXRrfVPv3OgCxl93P2tfMJ9kwAvAAAAEgAAAAEwRAIgRC5NV/kjWQiZTGHGx8lDwl/3LVqa0YLve3S16yIa6dICIBrPTFLsRTfuPUkYsRp1k/UqMROuc+53Xcye1n8CanqrAAAAawdSVDEwNjM5SpnMUJ9/rPWNe2fpkjbbXgkh74EAAAASAAAAATBFAiEA1Smp+aIjKM/t5v6QSvvYxazGtZBSKofQ6D2j96+m33ECIGWDotWjAmVpb793eA6ccIDHhn7JdKHWbDFEnIvhMqW4AAAAawdSVDEwNzAw6Cy7fCnQCkKW7lBdEqRzwmzZxCMAAAASAAAAATBFAiEA8d507uueCHOxX9SXmyACkh0DXeFlqJivum4FqnHml3ACIFzV1/lqm4AtTyxafMF3h3lylIgC9xcXXJsfX5Roj0QUAAAAagdSVDEwOTc0QrOHzfCVGg4IM201ZRVExHzQXJUAAAASAAAAATBEAiB4ZP6FVOKDp2T1RB5vDBx9v5QlBRa7k2KFRSbUkw0kaQIgSZZtCq/6hZcltFaPnwgH598oTvrYcvfM/3JHEO5q9CoAAABqB1JUMTEwNzjV/AxMTF/zFuHpFJTZY/8dUrol/wAAABIAAAABMEQCIFUpcIyuAkF/zwWtN1mJwDUy2npua8CUt0Mp1nlvTY4DAiBMl1xawhgKQesAvA2XESBJhxfffuHMJSCz+Yiy37PJVAAAAGsHUlQxMTA3OLhAO3cwNolCpb/lqsBKMbRAFbHMAAAAEgAAAAEwRQIhAKaTX7jnyLLjUuOfhWLRDwAaSeVwtev1xq9Mbt8TXCMKAiB+Xg4ibdmB/Smz9t44tQKB3qaXE1+mT0sQM716R/mQ/AAAAGoHUlQxMTIwMV4qCQZLLcqMRKrYpbaaabsYVP5yAAAAEgAAAAEwRAIgIVb4H8Nm8Egc/XynFxTxvcB9Uzz5caSOe85GQ2TiT20CIDCGHBhbvaBFYVWNe2JwZVhboGS1QzS3vplobwBUM6LyAAAAawdSVDExMzAwm1tIhgM7SrxesFUv/3wVpnw8R8cAAAASAAAAATBFAiEA6y+39KJJ8dINXz7T7RMm2wFA0+4aqM+A25ya/pwys/8CIALBYjbPn53SL+ha6SkXk9dh5Rf5QDZbzqD9IblkUZqbAAAAagdSVDExNjUzMYIK8tQ8CL2CvZSwiXQGJIK9mNMAAAASAAAAATBEAiA83fCSo4UXZPGT+HBOi373BYNk3EVKH8en3nZQUlWByAIga3iplPhDujKPIv51xHcWBuGloIiInDIvsLlkJsRhvFIAAABqB1JUMTE5NTfdgz0O721dfOx4GwPBnztCXzA53wAAABIAAAABMEQCIBfh1hhik8V6u1TkjrnfqrMn/wamoMT9wfgONmQ63GjeAiB4eMnR0UmDor1K/jgovlsHb2rdiZUwrRoWscysqizrCAAAAGoHUlQxMjMzNO4vIhKmTsP2vA91gOEMU8s4tXUIAAAAEgAAAAEwRAIgXezu1Ydfx3sDH3XcnF02fAPF0dl9wAAkqLueN6G/WZoCIAtp9FtSvwt9eEaXv/oh11UGpWjS8HMq/9+OfmVq+y9tAAAAawdSVDEyNDA1nZGO45o1a+jvmXNFmcfnAWDbTbYAAAASAAAAATBFAiEAx2TWP1MuMLdnY6TQ380bXolPPMOwjb+GnfWsgLse00wCIC63P0bq/yo0XHMYPX5Seu3KmWaF2t6aDDhnUq4Q6R48AAAAawdSVDEyNDA5lp1CrXAI5mUeH9UnQhU/h0MiXZgAAAASAAAAATBFAiEAhLAgNKh7eJfZnYO8jtB5nu9drgCMBkLbp0lKUiZxQVYCIGRLNI868PVePLP4FzI+eHb0J0M7XWTWpWybsrTbPpQSAAAAagZSVDEyNDSU+n+MuEU61XzRMzY7MBIERkcHjAAAABIAAAABMEUCIQCQBYRM3xs0qIv5yDr/t7ye0+/7q1GnOWQdFxcADIssIwIgQtY0S7GXyCcJWE0ciAvj/ZCyzP0+jCX/+E06JjtLT6oAAABqB1JUMTI4Nja13StuCgQi4Gnh0sw+0WUzSIoF4wAAABIAAAABMEQCIGEJIw+53d1iQDl9ntUkUxANxKvB3REYeQ92dLQhYfzrAiAawkDHwEVEzFmtRGM+sMz+4tAeGK+yma+FefmngbSBxwAAAGsHUlQxMzA0NVYA4ltPJMY6+mVcO9luPBeLZU+hAAAAEgAAAAEwRQIhAO//XQqxnmi4lI8O4axzOlGpoQmAws9C58Zee0ApCb/IAiAaNMXtMa+JvT5tZC8G3yylcjMp+alaeZlW3hRVwy1WUgAAAGoHUlQxMzExNJ+SNlOhlTe1obADhUoZIP5nqP/rAAAAEgAAAAEwRAIgTl6WZDIDv+d4kxrmn7EsbWb3Z8OTDZIKhMrxoUkToZICICC/nQYq+MQwYf4fKlsZPhfQR+8Lwndsx0+uuByau4SaAAAAawdSVDEzMTE2CK0fOki+HSPHI6bMhIayR/Xek1oAAAASAAAAATBFAiEA4XksF/QPfc0eOBwQEggZqxJG0F1LAtepyAvQ9JU5FggCIHhVhstfuCmKhpRCkORow/JaLQjMvqqY3uEbNwK+krn+AAAAawdSVDEzNjA2gE9rqhBhXIXktKW8Tv5RbZ96Q2UAAAASAAAAATBFAiEAovjzfGfUTIN9k9GwlK6PkNvxX9BfBaSU1j+JnVpTkHcCIEZRoCdFNrRdEkUd5oRaYXVBjbOGoBXr1dB3uHtsd+YSAAAAawdSVDEzODk1b0QtpYgjLcV78AlujeSNaWHVzIMAAAASAAAAATBFAiEA6ZPZhqlAHKu+TXmZyZy1uXuTZeUSNo4z60uaKkC8XzECIG04EWf67No6h0zqaTG1K5CBcPuOoSwUVw7Dg1EKm7o/AAAAagdSVDEzOTkxTphJOSCxbdZkLp1ISXyNCkkVD28AAAASAAAAATBEAiAoRF6M85Wu6Yp/jNTU3Rbg8JBZv1UW4iRcETCATAye9AIgNpb041AyJFBYX9AO8l5RG2zSrDWEtTxWd5FN7xoVFdQAAABrB1JUMTQwNjboh9xPy1JAwMCArquIcEIdPr0LKAAAABIAAAABMEUCIQCVSBEA7EIJ2UZ4oLz0IJvnWKm8hPmTDPTJUYOA8I1tLgIgJWYzWiZo3ZG4h1833FslP+jDVMe0PWO217z0FSj2YY0AAABqB1JUMTQwNzgxVpnxuog4PP8vLzD8rRh62y5NcgAAABIAAAABMEQCIFmfVrP3q5ar41CnjgaIUrUIPKcpEjyOSk7ZdJww2re7AiBMylYjiTG4dYtry9LUxw3fZUDkiXg5WwkwCxB0lRQ7gQAAAGoHUlQxNDIyObCYUOK5OqOqoUdr8MAHz8lg4t55AAAAEgAAAAEwRAIgPm+nHlmRHVZA+mUQw0ElI5mPkvnAsLsQLh3ptoqaDjoCIB5JtlAY5eNBC6Yu7mBINUo6jsgOPHGOhPpepHpBPUZiAAAAagdSVDE0MjMxlSinQCwP6FuBeqbhBur6A6ApJMQAAAASAAAAATBEAiAjlVrK/WwzQ9sOL04UoaMX5olpCIa3pQxMI04HZTmJ6gIgfPRPTmHctvmrGD76rMbbM7gRyWu6y8e956CorVS0w/oAAABrB1JUMTQzMTlBWZFJ8bUgNTkkAvnjEbHtsMn2mQAAABIAAAABMEUCIQDjSiEJwMyqcIjXg5lPDQzCXNKpN5hc4ygeTBTtZZIEZQIgVUityNibJ3vcjESvwiLho9gPtlHyj9g0ncfA7hbVBRcAAABqB1JUMTQ0OTQq3Bz6cmpFJkoyjZ0uLGks6sl0WAAAABIAAAABMEQCIFkTAkoSSckZ8zun+2Tn4gRjSpFoiQQbhXX+puP8uaJNAiBjxCHi18yiB1FiLlSKJPuzrIqCglKKtButmE9l6n5IswAAAGsHUlQxNDgyNUP+2fm/fe7csxS0MqjjghndYs6eAAAAEgAAAAEwRQIhAK8WUvhHjkwYBaWFFUz5jGegBCmiilTV9uSTUmH9o3JmAiBNoi0HgCIIatd5SaF0nXNn344M/akcHFBoehNgX1FN2wAAAGoHUlQxNDg4MjGqX6iV/Rhv3hI0em/K9UCHW2Q0AAAAEgAAAAEwRAIgesLdbtXz70tkU1QInQ8SH4q6wPwwREkCIUtsVVnWJaYCIG02JQI5ViNEXClDyzDqRUT2dCkHG6xjtweo1yHP3W8rAAAAagdSVDE0OTE4Y6GEm0fvWRPMxa2w4nCLEaS6aXIAAAASAAAAATBEAiByOqVdAZWQm9x3wZ2hiHEE7XJZpGzRnCFoxrmPmxNaSAIgQ0oJQZWOcw4fnBhc8wnwniQQEIUGxLwHrD9nHi/UveQAAABrB1JUMTUwMzl+lbMQckM0/3RTfcCL/TN30l5lzgAAABIAAAABMEUCIQDs+8wo5FT+ZtCYe3I/KGe/b4VS9rdc4Uuitenl1VTULAIgWa/MaSVh4CmhnK2y2K3jTJBOTbi8LmRI9lUzoqVfURYAAABrB1JUMTUwOTWf70T8TFcQELzNW2PhzcgH07NHvwAAABIAAAABMEUCIQD31ZBfsP/BLpHoPqc/MY7OKCNY5TkDfUNje4OYMfM/OgIgJG10JWcfJ4hh2OT5phb5a75t+HC1TYr0I2SNvBf80D8AAABrB1JUMTUzNTDaR70z6PXRe7gbh1J4S/tGwcRLKgAAABIAAAABMEUCIQCLW8Cak6YAUU1gZlZEg8SRyCYQ9Gju+65q+z+l+fxSNAIgEcZMk3Go4Acf6CDka5AnM1si4P23LgcZqOmdr/vetwQAAABrB1JUMTUzNzNNDaTnXUC9fZxPeikr+IO83zjEXQAAABIAAAABMEUCIQDIZLO36xA2BEyJp3qpDXqo9Pk2G6qwvrhOuiEPWamIXgIgT4jN/0vaNtAozpnsJfIkbmeYOof9HnKj+MJ/dqRJz/oAAABpBlJUMTU0MmnRtCsg897Qe+wyIlPQFAsEy7b1AAAAEgAAAAEwRAIgGZ+9xois1X99w0tlRnzRa2/spUkkOeZRVo/zty9Y0igCIDaBn4e+JCF35qTrFSNLVPutzufYEhsQyxCk1jySqf+4AAAAawdSVDE1NjM0qB936JiLKPt0JDuQes48gzU9yAoAAAASAAAAATBFAiEAvnB7fLrV5tXO32RO6ekNu/yygSZqCrUpcem3DCGzxYQCIE1HxZgBoMGjca0oIiO50jBCF3hJPNnc2xgrYWFGtb78AAAAawdSVDE1NzUzjRCQ33kP+v2szaAwFcBd87TMnCEAAAASAAAAATBFAiEAsgFlTWxUc5Yy9OSKLHYPPyQgiQMTdXlBZ8YWdCucFTkCIAcbFUbpMptjpueu40C1WyxPfh243Sso1dK7WSeZW68BAAAAagdSVDE1NzcwF1y9VNOPWLUweF4BRxouwNRZbrUAAAASAAAAATBEAiBZRaucssM7qdK2sGuQZEnqGwMZzoUmyUVISAE67Vyt/gIgWqifMRC3UtDDgGilFenPodpyw+0VNlpjBhu7LVNV2TwAAABrB1JUMTU3Nzf+F8PAtvOM872LqHK+56GKsWtD+wAAABIAAAABMEUCIQCv7FU3fLyNydiPg1GVEsnPzcu1inCZc7e8qUDKPe6xuAIgNLDTc9CQGcmnmlGbyCbKUGjCN3ELSc1j6TAiPblOVXIAAABqB1JUMTU3NzjyO4AhahDm8MDTta1ck0npQlytQAAAABIAAAABMEQCIDlUKxra6QBmGNrMjz38um8lRS56WppVE9lSpLxUgpTnAiBGdYgPdi/fIUvbit53biA6cDZw5935Weqtu9SvPF+LwwAAAGoHUlQxNTc4NH+UC1UJoi6B0pFnWBve6j+loKvuAAAAEgAAAAEwRAIgcBDMgVxIz6OAq3RXjrKvEsCzT+kj8Dcq9wBi8XoLRfoCICye/WkU0++DpZfCbFRcoq+u6AvZjj7K9rh3+Emv1ZRIAAAAagdSVDE1Nzk2s9PBu873NyBKrbT6bZDpdLwmIZcAAAASAAAAATBEAiAUVh76LL4cnfkweLKoidRdKAlQvuEqrHXPGXY9VuKJbAIgCReZbsNseM6nZlnaO3ctOQPZ1glM66C4FvwqUbQYwxMAAABqB1JUMTU4NjCp8wyQcyFxjmVbdEY8pmW2kLeIlAAAABIAAAABMEQCIDI32QJAojkUq3BSMtLESpIx9h/TexmiqIkFSzGTNL6MAiAVJujORzj4dQQnG3nolThnEJdG128EzGuFir7u4Nfv0QAAAGoGUlQxNjE39GV6sIaBIUvLGJOqjpx2E0WSUOwAAAASAAAAATBFAiEAuUHBnhBQYB2W2tqhH2IF7R8eENglsYi67mLx8YXNjcMCIDsuSI2GJqmSUZImNdaHrEY/RuuY4eX+wy1G0IarKSlUAAAAawdSVDE2MjAwAhuyOkXp/IJCYENeZw/Dg7e4y7sAAAASAAAAATBFAiEA6hCTMvrIduxut2RzDP5s4jp/cRf3qEIxTa65cnE1JvECIHGGWusnJYPlPM43m/7ShVVP3t+/RoAgy0VDl+Tyv5TsAAAAagdSVDE3NTAwH9tAFf1eAxxWQXUsHgO5c61eoWgAAAASAAAAATBEAiA92q6q3NSK9zLuGekeq029KvJOSAkUsXpsYNUVeQBEeAIgGNzKsnwxgTAjeMv91ZevjxRKjfmo/sCgT0TFIgcMIzEAAABrB1JUMTc4MDm6B5l/WUpS3xeWIChLUrUKTmYifQAAABIAAAABMEUCIQCIDNvnOvGmQjtSD5Le1l4gy87TtbuaKoje6A2VRkqovQIgGdhOigCtawg8bQMi+2ipo/geCuUDRMJx2LDaS52Nl60AAABqB1JUMTc4MTNJmmwZ9VN91gBeK1xuEmMQP1WLpAAAABIAAAABMEQCIGL0/SiOlEb6qo90d5FaA0stRlgGIb2OFTw/BHMA82O7AiBsdecLZtA6erSpBHib2deafBOutuGKsbrvYoI1KC6DjAAAAGoGUlQxODE1j8s5ol5jnI+9KOigGCJ9ZXDgI1IAAAASAAAAATBFAiEAnWih0JEurYGN4h5qEUyd80eSMfbaIxsImKuRefPzxrsCIE5eTHi1lMht1e5ORL9fhSnY/JhH3lUPZFbKm3p74X5hAAAAagdSVDE4MjczmFbFyhWkrJxlqsCQw4qfOes7XuwAAAASAAAAATBEAiAZS0WYGMgP3qFNWZ3cm4tuxKg9CLB8qanp1g2V4IP2rgIga6wWyiRwX6/0cYXwpWmKPLB1aiPW5Za7V3cUdKQnihoAAABqB1JUMTgyNzYh8a8+dRMXovfeffMdXQkuapB73gAAABIAAAABMEQCIDy9Z+++Y5DQlJqDwXwZxTOYN7xr2CEIvm6aj3t7uGkRAiAY/v2G0FXTN0ZZF+e4/W3tdmOoRWFD19RJrctiOUTgngAAAGoHUlQxODQzM0b4pgAzfexcqwOqm49n8dW3iM4oAAAAEgAAAAEwRAIgeltnvOz/5oze2yeHhKqygLDsr7RM2bZpKDheZ8g5UdkCICisYu/MEe3TsXfFh0LfWeEFAxpXOe7zpDhZjL9Zhb4rAAAAagdSVDE4NDY2mpnyg+H2w7fySQGZViTve3jpRHEAAAASAAAAATBEAiAD+KjuXL8xHuexwal6olr597YO5jVRzi6PQwJ/s6VCCQIgJu/DZK3T3ny+ImkETVW+cErYuqFHuMMkkziNBy3AbEAAAABqB1JUMTg0ODF18GtIKtv7BLh32O5oPi/N8YrRUwAAABIAAAABMEQCIA8Fd5rHx1rSI8pdv+edfrS4oA7DSE74jtNZ6buAHLz7AiAlfE/o5n4fC7m/mxvO9R79sOFekvF+i5uc9tkYuj82QQAAAGsHUlQxODc3NixvAKAgthPJQZu2wawiADbb6eYiAAAAEgAAAAEwRQIhAKFkLBQleKtMt7AhDzb1OWPYujFTr++KiDPt8uVVVWn+AiAyA58veK/T9PglX2jfTRv7tQBLAfKCYs1WcDHGFNoC8AAAAGoHUlQxODkwMJ65DsP6r8Igksm5FVn93eU4BCCTAAAAEgAAAAEwRAIgeEc1NQWJUB2mMdVG7Bn3G1zS0hkzgNHnReuxF7hY9HsCIGXoPWXNx4xj0xd1JgH9XfcGjc0i0YOGNzWtJmk5WQZnAAAAawdSVDE4OTgzrZGZn1NPQHWwC6QjHAGOV73rs0IAAAASAAAAATBFAiEAx7tJFTG7/SQjKSHKH8PAY5SY3esodyPzuXc847TnVpUCIDNYNEU/BgkVpaLn7EcqnIJ8Mi+DkqMF6Wvu31Phbip3AAAAawdSVDE5MDIwKA6e07IMWAovQhlle7kzLYC8AfEAAAASAAAAATBFAiEA+xgLLGwq1trqYZoi/YWMfykpj6EJbwFylZhFDeKjI0gCIH8I4PG+ZrkpA+DcRhyBkJNjY7cE6sM8JRbM4a9wkYeGAAAAagdSVDE5MTM2M3Iup3jfGX8bexzwsSTXqWIYHWUAAAASAAAAATBEAiAj0cuERFGHFcQUxKTgTnVAcG8jt0HKd9FgaZ6FjLoVYgIgT9ic1I/FN1eYLmvjEQG9jG6ugjEX6ldwc2bZojidwp4AAABrB1JUMTkxNjNMxT7l7zBqldQHMh1LSswwgUwE7gAAABIAAAABMEUCIQC+N/24agyWfll0l/A4VMtOWGOUfFlts4sYlRpy23JZSQIgSmfWPnVMQjNBHCk3UbgPCVRsrypdfDH9gTd06ONX4kEAAABrB1JUMTkyMDAhFhj6CTSRBmbywnMRAfWjrAE/2AAAABIAAAABMEUCIQD1cfVxrA9mODDkD0w4vsjf24pMryfIv92m5USH/9VngAIgOur5VAXml3YwAu55i6AezKiswhv1LSYEYdTE8U6zQO0AAABrB1JUMTkyMDGDCw6aXs820KiG0h4cIAQ80tFlFQAAABIAAAABMEUCIQCGVLAoMuXnShTIJql8d02xW7y6oDy1h0Wp2y5XUeFqTQIgK4WCNvLOCs0gDZMPHNmTCmsx3D0qzaegBxvSngKcTlgAAABrB1JUMTkyMTjHMeypcJec0toqEJSoCPSYlAcNNQAAABIAAAABMEUCIQCu7L2/rKGnlpeZCqx+b/rVzXKrTRIv34Uy3DFklXPX0gIgPgIw/dha4FqJVEs/yTE5BiXY7mj1dW7MZE86k9YFpSQAAABrB1JUMTkzMTGKn5BLTq1ql/OrME0NIZb1xgLIBwAAABIAAAABMEUCIQDFQjYdMQi0EJZoAD8Oxc30sWq6FeBordFnSaK9GtOBpwIgJeE+cfc0C56hijjC0rpuAibr0lIPiIE9AyoF6uEjGAkAAABrB1JUMTkzMTQ07Z5xRJUp4DTQMmz7s7XM3KAMvAAAABIAAAABMEUCIQCPaEQF9FWZ2Ie1KCuQz8iKIxBwldQk0GyPMw0Yy8PcEgIgbCLEojqQZMerspDT9xSCh2zXoZxm2du0eUe+QXEDxN0AAABrB1JUMTkzMzMkKTqyAVnPwPPXyHJ82Cf7pj1PZAAAABIAAAABMEUCIQD1Sk6O96TamIhazdXdOZpipVvQ80s8el0b9eyw1DxyswIgFA0tym4DVABSe1CGIvApfwwSJrcB1BAfom+ZoGlSVmUAAABrB1JUMTk1OTYxUPDrwO/uKAtTSLnIwnGtROuLEwAAABIAAAABMEUCIQC/5wr+j0XzQNCJzAGRnyuhbQx473vsW/vZJj4J9rNDlAIgXvu3VOxVUYeDSXPv5HphhKtoPnraCrkIaVPfx1AaNaIAAABrB1JUMTk5OTYxH8SF8f6gyMybXHg+efQxPd+nIAAAABIAAAABMEUCIQCw0KFsSRpGDN695R/jIWrDOoRUW36AWkuAVeRfGIb9gAIgOLt3qBQKgNco8E+9KD2X9t7MxlBa66zeK4Q3yIoiZlMAAABqB1JUMjAyMDDu3C9fTRImdZsaz576I6mWYd5mYwAAABIAAAABMEQCIFh046dHmf4MruGzJWr4MQePGo9Qlp7kYPTl7UXklKbpAiAYg2o6c8dxqUmwLsR+j1mi9FJcHpavtjOf8UARc/R+IgAAAGoHUlQyNTA5N/GM/7Uo7KDqMdHWsovIDS7KNNFNAAAAEgAAAAEwRAIgYzxE6wrI06DQ2wFx93HaWxxDuAvT+TqLWUC/h+JUB28CIB57Vqhag8csYe8Wp7whP69LOn4CN+UkAI2vhPxrcnkPAAAAaAVSVDI3Ms4RGhmOsE84is63jEDO1trxsFFKAAAAEgAAAAEwRAIgF2kVKFedkHmrty12/RWsXkfA9BJR/rB9UmQk+Oblus8CIGlrOeirn64huJGETjv8ggxd5t4//fDasXen4DQj7kVHAAAAaAZSVDM0MzJAC1cWsMI7bx8PKl/bA4lJliuAPgAAABIAAAABMEMCHxm0xdj9k7qzcHLX8C/DJbf/lci0IrCDOxILc/0XJWoCIGc6FYVSm4LWRi1v1UK2TWWViQncxg1FvpmTHemO1P9cAAAAaQVSVDQwMuJVyviJM4JGU2i44c1O+ENqzwreAAAAEgAAAAEwRQIhANb4IOrLvmWvTKxDgPCPubIf46upI5X1BPMKTgojDbr6AiByXYfIjUt9iSWOVBeT2b2a9berM/zdZIu40ZrUJ7iAPwAAAGkGUlQ0MDYx2eib/rrkR7QsH6hcWQcW7Igg9zcAAAASAAAAATBEAiA+ZjVoLcsW7MSzeRsuJ2KaddMH5e8Ud8kgbRrmB1W82QIgICu2OuHlwMpLZZNuMWJnkT/8VOmYCuhJRXUzhjLgA60AAABqBlJUNDM0MKaLd3lQSwrjct3MEJ+Hhtubkek+AAAAEgAAAAEwRQIhAM0ToAn+TnAVdUNCsyCZsmWhulAzq3kBS2d3xJidaYpBAiA8K3+nz91Ac1b5VzQf1+qFXN6EmdilZwouk+awHPAIhwAAAGkGUlQ0MzgwlnAP+uM8ZRvDKcPz+/5W4fKR8RcAAAASAAAAATBEAiBpRBNOHkN1mzpGbA/dT7KyZS05eBSAzYPZP9FAgbfK7QIgQ96CNiqQNlJnlvfHuvryyH89pOtB+O6PmOI0df0BtJ4AAABqBlJUNDY4MO/oLWuvDbcfkoieudAHIb1JEhMWAAAAEgAAAAEwRQIhAJJ5GL2hKUlmmZlUTtHfd/dTMKILEeGmr+UROpevj8NjAiBBTYoXDKaASWXck5BIZgqpmR4XjbWGw+RMLcQGYhOhpgAAAGkGUlQ0ODUy57becJ/8O9I3wvLIAOEAL5enYPMAAAASAAAAATBEAiAVLt47SNh3IvHtkqAFK02E65CzKnwKE/cVp0o+eUEQfAIgRRycLU4LM8lvvwmDS0aNvFtPqwRxrkRYCv/9u5rKuooAAABpBlJUNTYwMaE32CGX6kzf1fAIqRuoFrgyT1nhAAAAEgAAAAEwRAIgW8I8AQD2GrWieB8z635qOxR3g7ARWg5UnoXqpLNJcyMCIF2/MR+HCy748ejOU/x72ykQXGITajfhRe4UpP5JgpVaAAAAaQVSVDU4N6Ka4nK8ieXzFbJ5OSX3AARfhF2CAAAAEgAAAAEwRQIhALkzUQC6QGn0DApk3IJPYeJ3ngS2TQZQMlVCDr9+9ZsOAiByvgMg8/lpHt7eR2qzDfZY/1a3vGA9bOcvXUDz+pZ01gAAAGkGUlQ1OTQybbbVQPVhTmurdHWvP0MPRqCwg+IAAAASAAAAATBEAiAnwFQ948QO3Py9lvnRBVem4ICe6BDADj1UZv5z4dofHgIgIdeLf2JSMD+0e3YD08V36P27btCQlhoZK4kOuwmLIA8AAABpBlJUNjkyM9CNKxmenl30B0J9QIWHfR/f87HWAAAAEgAAAAEwRAIgJYiQhQOAF8xSchbQe1gM3OVagBtz+n1kBMJEUnGcgAACICJI9yBJfBw/uaWPH8Hy247Umbbn7iWkgpP1hBg0S+uFAAAAaQZSVDgxODGS0x4Z+IWX82iCW6FkEPJjqERSegAAABIAAAABMEQCIArxTC5l62VB/0ATK3uekqvqLX3smLh92tpNZExh1TXTAiBYQ84GM4dEPgeUhHd8fbP/spigBAMQ1m/dAe0ZIl1N1gAAAGoGUlQ4MzQydBhXwHsQDJwMEnLZWEXd3E8bZ8sAAAASAAAAATBFAiEAw3AXooIrsx2R/yLdTMzCKyk0sCm5AVDsFjivvoNM2yYCIFXpXb8nQAKuAT/9t8DHF0YteE2h2GasBAAJMF7ajDniAAAAagZSVDkxMzN22+t0Ds0fOwUqmvowKrx+tPtTkAAAABIAAAABMEUCIQDA86FvAZGb8LD138313onBPslqoXglLZ+5V3ZNr+yCfAIgRm6/nEaB1AH+azIdNNlhX0s7TLSLgwFrDHCHeXM5u3sAAABpBlJUOTE2NTxW1eiH2Pp64bplv37Mwl7Anq8YAAAAEgAAAAEwRAIgEpuwBB1+P9hX6ZGsenn87jgtUax+m6Rrcb4ir/SO7rcCIBSKSoa8a9SKXOQgrUIxIlet0foWDG8txTvOiwPGcgyoAAAAaQZSVDkxNjamnX1N3zl/PR5+uvEIVV0RB7OxFwAAABIAAAABMEQCIERfMk7r2esnrg7jStVQNfuAuURAkzKWSRiW0QUCAsBjAiBx1sCO5OZ3EGkq0t1Wd9BdiR0N5uttC4sKqyW1HawgOgAAAGkGUlQ5MTY5gGaQt6CT0s9kGaUVq+238oWVvF4AAAASAAAAATBEAiB/tjTNW11j7RyTUkzskZ4VXrJYt+STP6t0dE3nUBkOHQIgOuZkdAEUpMUM3Yd70hCbAJHbzgxYcBP7loQmq/2N1ZAAAABqBlJUOTMwOWeoOyj23YwHMBSV7ixvg7c/0hCSAAAAEgAAAAEwRQIhAN2StyMGXDVIyiH/S83Y0yNYi02nbNUnjyAJ4+zcSTEfAiAeHq3LGso3/nMw3+fI95YdnbMUMzDg4IvNsw2hHPRj/gAAAGkGUlQ5MzM2I2hFacBjbJrqJGVRh51FfQoOb1gAAAASAAAAATBEAiBEhA0bATuOEiax2tf34iu+py3wI6iCnji1sfMj7xSFPwIgCsRn/fYz+I5Ap0ocxyXa/wSFbsaYkNoANOK12ntTtTQAAABqBlJUOTQ2NXUPoSrlHRUVyJPBqqviwTWTeiyLAAAAEgAAAAEwRQIhAJjSsLDjwSCkZqU564x5zrNecODkEw84Ll1f3K50PiFSAiAa2CQZ/883iIq+KANci2ZQKh1WicUaI7CGi7c3nIdYdgAAAGkGUlQ5NDgxHgAXMKI8frr/NbyLyQ2lqbIIBKQAAAASAAAAATBEAiAwxZXt8kkgctYGDJqeQw6yYb3P7S3XAcJuZpzt5sK46wIgZaiaysrd2sJokZsj3xUh2g/vTRZgKEN0gtyh9A/OC5QAAABpBlJUOTcxN3O96IhmTfjd/RVrUuaZnuq6tXyUAAAAEgAAAAEwRAIgWgp+2Fysmh+TyDSw+iOhRDivlhhj/h//FBWd3sRGLeICIDVxWsoA5W4q8wxuUeT05xSYrsPJFE9y68tCdkm3NKwUAAAAaQZSVDk5MjCisq45dJLH7YpMHnUaxy0rWZR+awAAABIAAAABMEQCIBnYPoTs5sQXo1vo1AHQFbmbf6zDq3UvIALg0nP3YhgHAiAOW+up4IgTq8MPm+j49lPsetVLctBpnfDIkk3Dt0G+ugAAAGkGUlQ5OTQzV+rdKlQs/p8Ao39V301QYvhXwOgAAAASAAAAATBEAiBG3g98qVz1MxUq4mx8M8tEZvEblDRxwGCcPe2o8HivCwIgOCf/uEbUbmK0tNlhfvbKkxrIszmIleaxOdkt0htKi+AAAABnA1JFVNc5QIfh275Hf+Txzzc7mslFlWX/AAAACAAAAAEwRQIhAOXPLyIbR1jrXzQpgfqs6oi+xB8a3G3LopLFmYMXMjkvAiBZrzRkVAlSSwdO72PMrE9RlCU9DInHQM77Ahywfq9YngAAAGcEUkVBUB/F7wM3rqhcX5GYhTpuOleaemmHAAAAEgAAAAEwRAIgY4nNBncVUwEbaYOOyBBa89fwCuxRtYJ5sHpr6luZ2IkCIDndZqI+ytKNne0QFXeB0U6iT7ovbmGyLMTFfvNxmxBdAAAAaARSRUFQogtEwAFXjixSZlCYumKwDr+JY8sAAAASAAAAATBFAiEAuuUhE9hku3Y1UvvZcDhnUlDDQxIsasG3IFCpavXJX+cCICAkoGT7RzlVGO0+FwyFlO/fLS4DYj+CVSedciqVopnmAAAAZgNSRULmJ54cZd1Bswujdg3Kw82Lu0Qg1gAAAAkAAAABMEQCIDspUULex3YOT3JxdBE/b11s8RRGDriHiJE7nvGUaFNcAiAkEM3SO0tsZDNX5wVI8EjfZyJfXyyXb2cbaveZCmGgQQAAAGgEUkVCMof1+evkB4bUnTXhtZl7B8yqitv/AAAACQAAAAEwRQIhAJvFrgJ5w+LGHiI/u5Wee8tBD8fZR+a2jlziVnnchC8YAiALTkq4PoDD28h2gnVtcINhFs7uJd+JsFYMnmAQgA25QQAAAGcEUkVCTF9T96gHVhS2mbqtC8LImfS62Pu/AAAAEgAAAAEwRAIgWLDyiI1ivlD+KPW/Rv23OqokiM60KGu3fpg2ZRTaFcMCICFaJnxvXFm1Dr1f/g177Ow8tlT7fEplagmr6SKSGRFNAAAAaARLRVlUzhOrzg21qCJGFu8k05edRm8Zz5AAAAASAAAAATBFAiEA1Edn+QbMU+rqEntEUflDJ1+WjbchAIW1uzollV8wxekCIBu06e/TZIxecEcqnAklA4J5MYPaiZ5031qoZ1ZeI5J5AAAAZwRSRUJEf+qN2nRirJ8s5iz1LOmEDg5qjDsAAAASAAAAATBEAiBNy8v1qrcnwfszs3CfXx3c6k5ZWn07Y432L+lYJqEVqAIgKVTvIJq2KkUChvE+D/TQwgQpVn/v7HEF8LsAu9ZgAoIAAABnA1JDR+dL4HHzti9qSsI8po5eKjl5ejwwAAAAEgAAAAEwRQIhAIzf2y0CtdTgMPFl1cl+4CvWftInK1CWshWl+JXP+4tvAiBGP58KK1qNJrHf+urrCrXUDiMP+suXV9RXogAyW03/sgAAAGcDUkVEdpYNzNWh/nmffCm+nxnOtGJ66y8AAAASAAAAATBFAiEA8SjlAfHQAfuDEK/emFnSvZKtKhYKEJx3MffCk8RctJUCIEoUeEuln8Fzu7hlFQvvWjNjjz7zsx6faiRRkD0l7vabAAAAZwRNV0FUZCXGvpAtaSri23UrPCaK+tsJnTsAAAASAAAAATBEAiA5jWrxpEE1b/7VyE+ZkrhlZgnRvuQ9iu3v80jceHF65gIgU5spSX19gkajtZgdS/47F5AWOgwN9kNMG2v9n6hMOosAAABrCFJFRFBBTkRBUUzbnNii+yvc96O43dCYyvRm5UgAAAAJAAAAATBEAiAj+8yRIPMphz+ANxK+kRGw/o4EQXb6ZV0LQ9qzWV69WAIgSyjaHzIHSu0gvXj7Q6LYUzOpecpX0qc2W/4nUS/Ev1gAAABoBFJFREO1YzAKO6x5/Am5O2+Ezg1EZaKsJwAAABIAAAABMEUCIQDzTV8+VIj+PtrvzaKUTBdbhvYmmofJRpQ7cPhlDOhErQIgEmxqFcBNdEuE7FEmxcivmYAuS4LT+NMdc/9aHLEWP/oAAABnBFJFRGnr35p64ACblYxtCVAeuawdr+sxqwAAABIAAAABMEQCIBD6u0CwQUHoiILkAI7JJsWm4P6MjEIlimLSCREOJ2AMAiBbTGVI+3JEyGLBboIyR2DPglNExhWvZslnsQQZh0f5zwAAAGcEUkVFRv4+aiXmsZKkKkTs3c0TeWRxc1rPAAAAEgAAAAEwRAIgWW2a60TQ3m+IijfvLQ9nKXNu96Zid9UwXPP3RbSTNFECIFNP9uPm9RwhVemotc/sx8N5PJPxGFKUYwTkkvS8a9gSAAAAaAVSRUVUSOgElkwpbp+2Zvvmd2eDjB/5qzIJAAAAEgAAAAEwRAIgUompmnvEXeENJ8xdmj0bq5SkMzHWV7DnHsvMYgV0EiICICsO5shcGLvn89wU9ht9QLIUAbrj6c2sL27GCwwnNhbdAAAAZgNSRlLQkp1BGVTEdDjcHYcd1ggfXF4UnAAAAAQAAAABMEQCIHm7FGThwZf0/exJi2FBuqpDt/QpsQUKtdUc1wJPAZ+eAiAlC5hqPeXR6OSM4QU9gQo0PKwGjLdFMTY6qK/1Xw88QwAAAGcEUkVGSagIsi/9LEcq0SeAiPFtQBDmpU1fAAAAEgAAAAEwRAIgW/r59a3BlJpyTjwAJdlPxloFK7ti0i7O7jbB+3BfFRICIDOCi/VNA91B9GsKBnJfGDXx45IwRIyMGzBVDOoIh26eAAAAZgNYUk3hMp6/i3GYgVSZCdaJmH90aokx0QAAABIAAAABMEQCIH9sZMetg46Gs51zdSs0V58xtuO+730wZOFyO0NPECKaAiAzcD3v3ppmobc6SlHEL3HCwzfr/AC1m2JY/6Q4cwOsYAAAAGcDUkZJoa//4/TWEdJSAQ4+r29NdwiLDNcAAAAJAAAAATBFAiEAsbSSMKuoLxjyiCj6gag0sZZuHiUGRh3ErWstUIDr408CIFRK2dYcJGm89XeXmtMeU4qlekxRopsIT7dk48dfBkMxAAAAaAVSRkNUUhax64uOkFiAC/C6NoT4BaZxGh0sAAAACQAAAAEwRAIgXcwpnuPFBwLfbwIP6h+HORLuFW6/CLgDHi9VbcSHTU4CIAtm6ZW+YOXWPKjRyrpPyNgCOHl7SdYs9Ca+r8nORJzCAAAAZgNSRlgVmh364ZBX3lff/8uz2hrnhGeJZQAAAAgAAAABMEQCIEUJ4E8uWMqUglgFjo+xwa8ApVy0fwnbmpxeMAmz1facAiA1lydJdk9q81CknPgVMaSs7pohPBFBvY9KEegbTXh9/gAAAGcDRUZLZlPA0hUHVzzDnq0eYJ101eDKFuIAAAASAAAAATBFAiEA6fcllrz3sqAqKs9+BR6xBRsho5L/3WDb4+17jBneq7sCIAPyLKEUFY70Zq9J37C45B6mmesanTPgZA5sheco7Tk9AAAAZwNSRlLgvar9CqsjjFXWitVOYWMF1KIXcgAAAAkAAAABMEUCIQDaJvm5MfR78ruFNzGRRDNQ4Z0/0Sdui5eUk901+5ctMAIgDoZ3mGQQJDJBuZ0+o6XZqur/fybRyteNxly0KtuZfFAAAABtCVJFRlJBQ1RJTyGocMf84bzl2IvfhFrDMsdiBKmgAAAAEgAAAAEwRQIhAL7Sx9VfVTZgqrBEgwcyyzvYav5965WmnoiPk6fcLi0uAiBRp9pOtJI7A0mlnnlyvXOtZJ7MaVfaGoXuqR09720f7AAAAGcDUkVGiTA1AKer+xeLJ0/YnyRpwmSVHh8AAAAIAAAAATBFAiEAupYDWpEWOTnAXE/IUVkPD0QXXw3hIfUM8G6Vx7aBTmACIEzFkwhvJTg42Wd6mo0+ky2l7e0/f1lnZhXt7fS8gI2kAAAAaAVSRUxBWV2EP6lJXSPemXw5Qpase01yHoQcAAAAEgAAAAEwRAIgLYHtAH+A46z8gayHHL75ZlIEVVEHuKlsUtbMFFkY5RACIGEdy7XtfasydGrcmGCL2xldN62KAKgG3XkqaB4No0XMAAAAZwNSTFJbP2k+/VcQEG6y6sg5NoNkrLWnDwAAABIAAAABMEUCIQDCCwQLJjs3s4m+RAihzStz9C75AtpMmbOKnCMZNMBFPgIgZW4gwYMC2Fp34Mq20IFTh9k9ZvcDNh44C3Ly6jSVO5YAAABnA1JFTGG/yXnqgWDt6bhieYt4M6l7r6AqAAAAEgAAAAEwRQIhAJ/i14wKfIG7Z/nnWLAQdjkSazT/LLydYtGbPbeyAPDuAiBYUf90H/bEgYMFq8Yo4+ZwrV9+PNajzvqI8NZYKWRZKwAAAGcDUkVMtsQmfEh3uw1rFoXP2FsPvoLxBewAAAASAAAAATBFAiEAvhS2Sczz+sb2pfzpLkyiPxmWpCC3l9+axNBCenef1/YCIADg95PYJV7B5FXD1FCydkVIthD3Dv/9lqAXubpl4HKXAAAAZwNSTFhKQtLFgPg9zkBKytGNqybbEaF1DgAAABIAAAABMEUCIQDFvvlNBEDjuwGYLg9NosBNIMnDiZtfEYMHM1PI/GIzoQIgdVeFrcOFIOnPw9O1XubJ4br8UJ4IHfd+2G9I5NEFv4IAAABnBFJFTEkOWO1Y4VDbpf2OXUpJ9Ux+HogBJAAAABIAAAABMEQCIDmZNn0AUT/mcpQZVBXaKYnvpZymzkvl/73zeyNCos+HAiBRmVsN9UdGJ+HzmE8IWD6wjC2oWzRJsYm/G9NTFe4ISQAAAGgEUkVNSRPLhYI/eM/zjwsOkNPpdbjLOq1kAAAAEgAAAAEwRQIhAJhMHztKxpMUZnFyZRMtoDX6RELxlY531IqHobMCbN1AAiB2I9tgn+9sFj+EKKo+ki7D6bdns9HdQoVfNbZwOpUsmgAAAGYDUk1DfcT0EpRpenkDxAJ/asUoxdFM1+sAAAAIAAAAATBEAiAt4JCvt07FsZq+HoIDKiUj/ylqLfFPVtB754FJlDfElAIgXNy+nlu0lGO7RS5g3nFtENrD0S/+OlAwIRMv6jQa8u8AAABnA1JFTYOYTWFCk0u1NXk6gq2wpG7w9mttAAAABAAAAAEwRQIhANbw+dDzOV4Qp20Awq/M1x9HZWkPvdmS+PibgqJXi+AgAiBCl6uD2HQ0nlGsHaaqTV5fei5VWq/Jzf3lGJXIyTLw2gAAAGoGcmVuQlRD60wngeTrqATOmpgDxn0Ik0Nrsn0AAAAIAAAAATBFAiEAjt9MxaU2g9sjcu75W61vbBrSP0D6X1bP7O1cz9D+UocCIHz//A410aux0ncOQH/DU12mqFamcyiHcjoW47jKUSHRAAAAZwRSRU5BVt6LxhNGMh1PIhHjrDwKfwDbm3YAAAASAAAAATBEAiByRrKSSNg3SY4DLia5VB8RciLbshjt+FrMf1DfnCoyJAIgcq/tpArxfqdBVI/xolrJCVSPFopPjs38fOtSVBN13wgAAABpBnJlbkJDSEWQhvI3ZSW9zrpb3aE15OnT/vW/AAAACAAAAAEwRAIgFzbg6YCBrPBLE4iOm/9Dl2/wQ0BtI8CqygLfvtPmmn4CIFl+WbkpGXPN4CecY86lSYHUWz/p5fbPQeoJtjgoSTRhAAAAaARSTkRSbeA375rScl60ARi7FwLrsn5K6yQAAAASAAAAATBFAiEAhXSEwIs0/MUNfOy3YaZlKu/BV1P7m6xGbV3iXYqAeWgCIF6OOK2LhzLaZhVjP/R/+McKTwLaDePBd7X20iGNz3wlAAAAaARSTkRSCZa/tdBX+qI3ZA4lBr57T5xG3gsAAAASAAAAATBFAiEAnvon2HRC88cG56BOmpIh77C0mlnsgVtk/7VSSnrtTxkCIE3wpZiRcxRPz0Mr1tJXByXgU78/hhXVf53SHDEo048NAAAAaQZyZW5ER0Ljy0hvP1xjnpjMuvV9lTaTdWh/gAAAAAgAAAABMEQCICelRDYnFTBGw9UKk3jcwueLBI+X8+a6XGF4jA7aPW0hAiBCEWqOLKlMk6nn2UVdobLYRoZB/5ZhlfMYQpoxEmfZAwAAAGoHcmVuRE9HRTgy0vBZ5Vk0IgiB+DG+UB0YBnGnAAAACAAAAAEwRAIgJtFx8xGtuyQ7dyh03IxaUJ02gZC85OUCZke6qTURZPQCIGrsLcySjR8Q0hf+gQ+0jDO3J0oQ86Jz3BFu+0PRGZX6AAAAagZyZW5GSUzVFHvI44bZHMXb5yCZ2sbJuZJ29QAAABIAAAABMEUCIQCoOvpNjNZhvBpn+ut4wJ3ZTy/vIDTK9F6vYrRJgqsykgIgcpD6Jn0WPxVm9NY1UIYAyHWjVFTDVkcSftadJRGrNY4AAABmA0JSULIsJ4alSbAIUXtnYl9Sluj6+VieAAAAEgAAAAEwRAIgYprZYoC4CqFBqwXy88TZzbOhydTn9fqs7pMxNIh5kDICIGci+rQJprPTPRcSTSVm5IIHemTajNS03SLbOBCrkKqXAAAAZwNSTkIqA5sdm73Mu5G+KGkbcwyok+XnQwAAABIAAAABMEUCIQD4ZOOSf4D+N7ngyo1uAuGiHQNcpCO8vUurTNXuo/gqWQIgJE6frubCHK9BdT6wJlxvmHLCRaiO9BNRaQ2uZneCO+4AAABqBnJlblpFQxxdtXXi/4M+RqLphkwi9LIuCzfCAAAACAAAAAEwRQIhAIylEwvMsIF+E1lrdeGuEEYzMAqhVAz94G/uHgImjFnnAiAAgaH13BB7J9eOGImFxzroRnVKU9IebxFSTicLLRb/lwAAAGcDUkVOQI5Bh2zM3A+SIQYA71A3JlYFKjgAAAASAAAAATBFAiEAqRaydL28dANLr3XnhjxnMY1wM2qZ/FonvG2EPmEIHO4CIHS6PyIwFffVnAB3cfx2dK2XQ4/+bOhXVZmetIBbO3vzAAAAaAVSRVB2MiIWV3doRokJiadZuilz5Cff9cm7AAAAEgAAAAEwRAIgR7rBiQiHPheEinO4xrmqvmB2ah9SpX0Wk0iWu3tk1EcCICDD/a34XGhUrTQYYZdrkaASUuxea3p6ctjEXRrySlZKAAAAZwNSRVGPgiGvuzOZjYWEorBXSbpzw3qTigAAABIAAAABMEUCIQDEGPThyScyGMRDNiyXJt1Pg+IgvPfrgxFY8OuGXwHwqwIgbzbi9EnQhok5sKXQS5eFnWAd862aikTF91GXWhS/IcwAAABmA1JTVhlvRydSbqf7HheyBxs9jqo4SGmIAAAAEgAAAAEwRAIgFJwcUVGMCK0lm0RuoeY94/I25uJjqRDDVFGozhUXgmwCIFrnz32jJxfQXswiJYnDMCpmsdwhT/c5x7PMf+NnpR2nAAAAZwNSU1YcWFfhEM2EEQVGYPYLXeamlYz64gAAABIAAAABMEUCIQCwEOUIsW2IMYOi2vOiuCHqzBQPXsbIyObCxBexvPRf5QIgG9kWw/60bkEzTZF/6tcJoay0tOPq28sx9HR69k9ee1kAAABmA1JTUjIGI7jk/wM3OTF2mjH8UqTni11wAAAAEgAAAAEwRAIgA0eh9btik9Zcru3vZffHS7jBy/sAPclqfT5smdH4qp4CIHAs97QA+VISM8nLHR1GrnNVUnWMtjDDcP2pCj+Hf3x7AAAAaARSU1Jfh2LbEGssKgvMs6gNHtQSc1UmFugAAAASAAAAATBFAiEA7Zn8o+DsqZ5+9iU/p7KPgkd558rPcbaZzb3vkY4Xs8gCICHXfObxnwqOoM0Rdjk84pHa/3yFviQSIxdF+AS5x5LMAAAAZwNSRVMKn2k/zm8ApRqODbQ1G1qAeLQkLgAAAAUAAAABMEUCIQDpXphHXRs1e0VIJ+bSli4pOXD7R8yLDPe3AOhG+ratiAIgKPj/1eGNzjbClMLWrB5lM1UGbcfusqg2DsvEwxQLIocAAABpBUdDb2luYQTn97Rbz5djuCFXKNxGI1RnD2EAAAAIAAAAATBFAiEA8Ir60SkFO+Mg1S/+w7FyO8mABtLcV+CXAz3z6G6Kd0ICIHjU6deBEm7JIf0a8i38MR0kPRm6v0kGN2cN6nrgMiLSAAAAZwRSRVNUZ1N5XWftCytltX/EXHrA9TtV9P4AAAASAAAAATBEAiBPhx9eVGPjyOFhgFQ20pRReXV55COB5hNIcbrJ01LePQIgVWYojU+/EGoCy6O1C1+K8CXBe8KqAjTmE8flhBpZubgAAABmA1JFVi71LtfejFzgOk7w776bdFDy1+3JAAAABgAAAAEwRAIgUiTeAj2l/bJ6jQqWtbW28lxMatFmO5E+dHKqKsK2y5MCIEvroURVlOoZVkrCuew4FQXz/O92uQivEDq2yGgnjbmKAAAAZwNSRVbmvkNt8f+WlW3+Cyt3+rhO3jAjbwAAABIAAAABMEUCIQDYCH5ODRAxAjUMlc8sAVjVE5/CSXTr+mD2FPrcUJCoaAIgGnITm03GfNKRMxaGmMxYapaTq/PikPgnSwhpl0EMNgcAAABnBFJWU1QSCjh52oNaWvA3uy0UVr69a1TUugAAABIAAAABMEQCIB5ywXpo5kpfnoB0K3dMh+PaWDDmTECIktfb/fLwPNlOAiADxsMwMTCOLm7glWC9YiSrAd0s2JiqOMtXmdW3JRJ5ZwAAAGQBUkj3de++T17Obg3y97WTLfVoI7mQAAAAAAAAAAEwRAIgNVNXycmEbp0XpNoYaO3t/SCHlsNcJnJFGpdNKvadBL4CIDHaLRJbe+1Mwa4B3TLqDxE8ku0WRuIVLHMFEQEpgG4YAAAAZwRSVkxU3oZe0cUOdT0kig8snFrgK55Btq4AAAASAAAAATBEAiAgHira8HxyVaZxI0XNUWIWfGlrSPMO9UWsQHpV4nY4lgIgCjiGcl4AW+hzh80IzApwcMz1cod6mKIoA/1Gsa9xodsAAABmA1JWUBfvdaoi3V9sJ2O4MEqyT0DuVNSKAAAAEgAAAAEwRAIgVBjlO4D4UwbvmZJ6/KsJDuLBHSL/AM2CgeYsASUuEKQCIFh0Bboxs21ueRwsmObfxHki4cq9BQ/bEkguzDECcSSgAAAAZwRSRVZPFVBAYl164+nK2ppz4+RPdtPtFAkAAAASAAAAATBEAiBso15basZjsNJkggtokM8jBpYWdogD2FrMy7D3J7uRFgIgNyKCJAnGd1x1VJmNmMMCm1d593FdnaSjeDPCaY0r7/kAAABnBFJFVlZVe5M6fCxFZythD4lUo96zmlGoygAAABIAAAABMEQCIByrHc/CgIWYiawEQI+ebNGbVnV6XtOLD1rPESXfUhGjAiATHku5OhYg4rbgrEVtWV2ZQBIjJXMXSIGRTCU4ktSaiAAAAGoGckVUSC1oy+JtvJGwXBYAUBZxBxVHgPNs6qsAAAASAAAAATBFAiEAnJtb8ws6GUnXHBLEtSQedH4c84phVA/lgJRxA9Hpi0sCICbjOpmPvt76aOlWgiUmmRyhQPWBwCx/L+7yye/UH/WNAAAAZwNSRVc///qPPMlD5D+fF6g8uxj0u7n0rAAAABIAAAABMEUCIQCf52Gruhe3H3fOILSjQ+iIxF1+DIU4+5icLlq3NuaXMgIgZMnoAS6BhOqYHUGCHdiX0t5dqjOTsr/8L+ZpXv3y/eUAAABmA1JXRNgPcqZVjsM34NTPdrh1Kxf6dwhgAAAAEgAAAAEwRAIgEOxxFUwcP9oSoIwQKWkZKWUyTP62uF8mza6wAQEIz+0CIF0s/noK0ndUtNe3SSLCJ34IMtzgHHQ70h5SYXY+ILYPAAAAZgNSRVjwWpOCpMPynieEUCdUKT2IuDUQnAAAABIAAAABMEQCICFkfbx6lxWy2O3Yg9jku++dC9HCobU9/x59yu3odA7lAiA2qnXRqNixCFyBjeMeCT+qOix91NmnV9sTG3HyRb0xMgAAAGcEUlpSVucLlMIyD7AonbDKwMy9YN2PUf+JAAAACQAAAAEwRAIgUcyxyjTBqEbJvPVBiKyRFznNKUDi8S3gsgyFcmQqG74CIEENzp7NTkQtKDIVl4vyMW139ZvpchJbB+8yRt/5QtUDAAAAaARSRk9YodbfcU+R3r9OCAKlQuEwZ/MbgmIAAAASAAAAATBFAiEA+woApwaPI7OgGarstVbsLchQ/UyUpeuHfis+Y57oQ5ACIBIImWDaIHIxnOsqhOOPntkChBH5oRzOwM8DHMpZ0Jt3AAAAZwRSSEVB96IZ//6t5s2YeJ2lZCtof3QycOsAAAASAAAAATBEAiBpi1EBg7e0wZDBgvyVOnry4BS7AuOjlu2LsQcWmiKqWgIgFpk5XAoHxW8x06oCWTYceP+Scy4p89e1sHwf22QDOhIAAABmA1JITz881kLoHQMNe1FKKrXjpVNr65DsAAAAEgAAAAEwRAIgbD1bIyQLYfZ0D5F6lU1BnG3vaIC/8Tyq7S3zgXgDu1wCIBjmpfUYWBRSlWOslhfPbJ8lhmo+3C/nZLHJ7KrwIb57AAAAaARSSE9DFoKWuwniSoiAXLnDM1ZTa5gNP8UAAAAIAAAAATBFAiEAtjqEm3k8FWunRA1RNzW2WCyVvZ+S7PPlzHvDCELI1X0CIAuGS8G4BNaY8hXaTPPRWSlyl9Wd5XopycKmUVppETVGAAAAZgJSSTfoCPCEEB91eDYSQH58P1+S2O4/AAAAEgAAAAEwRQIhANKW8JcYHE+QNJQ8Rt0r5FPuMfFqnviHdrvZW+sEb+jlAiADTWgmA0pS5Cfr6ehixFZjZPp/dzejBhpjIUD2+rgdGwAAAGgEUklDRbzVFdbF3nDTox2Zmn+mopllfeKUAAAAEgAAAAEwRQIhAJuuRM7iET0ouYmjr3kbQ0FACpkeOHMYFNMNXQN7cqnFAiB4MM+Joq8okvkgHOHKF+so18ewLw2iNb0ZFSkHZYMfLgAAAGYDUlROVLKTImAAzL/ATfkC7sVny0w1qQMAAAASAAAAATBEAiANm9A5TzOe8AtCYFJHQyNXlc9doE10FxsCCS5+bSAatgIgHYRH6Q0e3Dw6XAwxmMU0SCn/ld12svMQWu79PdqIK5AAAABmA1JEVEdAc1qpjciqIyvQSfjwIQRY5/yjAAAAEgAAAAEwRAIgPvtFOJJf2FSy5NwEcctrsQQQDedYcH1U1FLNNumH+WICIHy6fsG3cQorgOYF7G26e6PyfSj1BnFek/p/neFUtCJTAAAAaAVSSUdFTEygZU9PwQJc8aF7dFnCCsBHlSKtAAAAEgAAAAEwRAIgX7kmcZ1ipRdol7cy0VE3A1WpFuMKoW0B3mNay9TkvMACIC1iCzaVk/bfi/gQEFB/6CKacCb54jQB+QCz/NV/UiVxAAAAZgNSR1BK9f8aYKbvbHyPnE4wTNkFH8o+wAAAABIAAAABMEQCIEX6VIGFuSXzULSXwBRYwqaJbh5iLZVE3xno/mK3mlvFAiBd08K/lRf+DGvSlLsF0jeiz8ZxeEk0NFcKIO0KRSnwNwAAAGgFUk1FU0iNVoKUHORWkAsS1HrAaoi0fHZM4QAAABIAAAABMEQCIHVboVC8GCPOOr32rIJ8OX0Jmd6FqwmqhSfStDTwbhoAAiADhIZhbkF/wupeEDK9G5Wf3J0WUOjnswloF6Yn5PS+UAAAAGcDR1JHT7s1AFK8pUF1ZvGI6y685bGbyWQAAAASAAAAATBFAiEAj5ryrj/NAdOcaptfwAestIk2+WO2vw432gDsYS9ANHkCIFstEjbKrZXUVH7fM1zJ1/O1957pPUo1zQtNGAGNOOzrAAAAaQVSSU5HWH+Gx4LsgCrEAuA2nS5tUAJW96vFAAAAEgAAAAEwRQIhAPbEj3jXZzd8dgaedEg0xOQnlK/AWzvU7sMOf1y0xhPJAiAWtsiimghkE3P3HhMQopvb1HYAI2Wr7dirSWLa9tZKeQAAAGoGUklOR0VSE+3Md1+IlZYbgdtcAgWImzr7OhYAAAASAAAAATBFAiEA4faQuobj3oR4iOgN+wZKnXRrGtfUVxAjPx2177csiioCIC9vnRfEGUsFWL/lwYRpvCV3DSPHEu7NxkfcdBjdg9rEAAAAaAVSRlVlbK+fVJd07O29CWbFLyUKzFSNPzblAAAAEgAAAAEwRAIgOhj8angb0nft8jm0S6JPzqhnnEfuO/C4rqy4NdNcqu0CIHlzIZl/JLwHLOiGVzfhvBQTVrNEQBdI8UiU15hrwiYFAAAAZgNSUEPtAlqf5LMLzWhGC8pCWDCQwiZkaAAAABIAAAABMEQCIDEp2VPQSDcYiPvcgoNtn28ELmmOwfNI3zlynKwqhQ/7AiACYPWJ29BS9KusKHZmRHghFvjcCFakkICGGC1vA7487QAAAGcDUkNO+XC4424j9/w/11LuqG+L6NgzdaYAAAASAAAAATBFAiEA8lzSgd6klulyLfzZNYmZzvgIskNzx8jlWcDKAXvJSp0CIDGlEAznhq9uLZMVzEtAW+CgDrM99BzVYFPaVn5PI2t+AAAAaARSSVBU3QByeLZn9r71L9CkwjYEqh+WA5oAAAAIAAAAATBFAiEAyoN5lYheZHAVhSxTImihZ+23WioNeE7pBVvFWjAglEsCIDFFwqer18WWt1VY3xpdFbqiZu30yPFRRBt9UaN6qeHzAAAAaARSSVNFP6gHtvjUxAfm5gU2j0Ny0UZYs4wAAAAJAAAAATBFAiEAuQvH74s3yFtsOxg0W8nMWSNtqOnDedbqYyK8mmjgjRACIAJvIYB0Tf+yeX4pR69IXrAj6j4JKQDlzM54g6RLnkP5AAAAaARSU0NUwnWGWmzOeDmOlMsq8p+g14e39+sAAAASAAAAATBFAiEAgpvpvB9V4FXxSIcPOOGPGAJB/BscwgQf5LmIP+3jjlMCIFG0h5NLS0dULRw8y3Hudst2fFVJoWwDFiY+ChwpbzT+AAAAZwRSVk1UQ65TuMkgxsafSr85P8topt1MurQAAAASAAAAATBEAiAQX753JLsajuJ8xL9pEbk8ruwiyqdTTsKiot1PKzCt3AIgCWvA+pVJf+rCETIhDCA4J5cXjFYkxZ1GFagDBJZ2F7UAAABmA1JWVD0bqb6fZrjuEBkRvDbT+1YurCJEAAAAEgAAAAEwRAIgMWsMvzFTCRd9t1/NC5AnRGMrRfLA3rmsZF1u1QUlATgCIFw1YyKJxSvKYJBNFvclsDFocssvIhk4qQ4ULg7tWFnjAAAAZwNSVliR1vbpAm5DJAzm8Gr2pLMxKevelAAAABIAAAABMEUCIQDdGPbne54HyBH9eBIgBnRjV1y8dRvCCk2RcTswPZ4gmQIgFd342bHct0+6XZmxAMNCVw7gwl7LE6GwMDwi0kxQtb0AAABmA1JaTtjIL7xNjtBkSn7ATPlz6ExhU8HXAAAAEgAAAAEwRAIgB9eQgXvLtX7PKnSbzTmMWfjGYgX0duaCU+XmizLDtNoCIDZlskWrT020wZtk2FTVUYunUwUpllCwuGq9MkzUX98wAAAAZwNSWkJCmsd/Bpv/SJ4tePlHnh6TMwXFKAAAAAgAAAABMEUCIQCjx2QUc3n+7GDybn5XUnGhzEnnF8VlHQ/4gBShm4IdqAIgfapUOiSfFnKKNPJauP3cFRXknrrkprICRgWpIqCqIIcAAABmA1JMVMztW4KICGvow44jVn5oTDdAvk1IAAAACgAAAAEwRAIgOqpfQJoT7liaaUZoYEAeHPbmebFdzuD/KnDDH7cbX5UCIA/PvRnNm0iXzvCLq9Z23ZcYJ3RTZ4DPJZ0c+YTv94GuAAAAaARSTVBM4X8BdHWnCd5Y6XYIHrkWCB/0ydUAAAAJAAAAATBFAiEAnLwTmwsVaZllpHLejdAQqTxoDymliomzuHhXlvnPwIwCIFBWDLEssxLJs2FGa6qhEWQwzgbp6HKUEmtYBNvWFur7AAAAaARSTlRCH+cL5zTkc+VyHqV8i1sB5sqlJoYAAAASAAAAATBFAiEAydRt9dtK0jf7XItvw0JcqUsvb4nPdwCpvCN5eCoWsBsCIGnOCuZsYUaNHU8ZiZyHh8/fXoDopaWw6UyLS1lCI87ZAAAAaAVST0JFVCNEhx9SPLsopPYARVMRhM8fA60kAAAAEgAAAAEwRAIgKrKQSATilREYb0Bw46k/iLZ+CnwQnchKG/4WwGq+MNgCIFxdhrarAluU/wYogDAjOCr6srb0mtTGyYINCSu6EBLYAAAAZgRST0JPb8LxBEo7m7PkOkPsj4QIQ+11MGEAAAASAAAAATBDAiBz1+/tjtnB9Mvsaac3gvnn8Ru4UxVq0A9khG8ztLRXEAIfW34XYN6ko6JAVKUFXvcoKYJuxr8uiL8zZ2ydImvfIAAAAGYDUjJSaI/0PDwZ5HFPC+t2347jlCB6tBEAAAASAAAAATBEAiAbvQKTFvgh/yvtrJrbf9UksBrIZfzSC7lEWqlRYWAzqQIgDCJF/q387FtIKZ6CMtax3jn605at04ipJLKEabzRwEEAAABnA1JCQdgYxll03u/psTBbTXCwPpE5D13TAAAACQAAAAEwRQIhALBqdiy1532ATLI6J/bJERVZwR9K/K8ZpWeZKdQyQSA0AiBl+/SPorBoA20LM6ljk2qX/cQL6bx7XGZ6xsBeF5UgWAAAAGcEUkMyMGGy0+qfHGs4fJhcc9QOj7+yhOXHAAAAEgAAAAEwRAIgA51mmueVYQiUb4HaFezNGMXOiy6XKPs/JZwK3Xpr8lwCICVq+S61pD0o0yhtpolBDRJatw0UM3he9zOBgXaJsG4aAAAAZwNYUlR96RsgTBxze87m8ACqplac9wYctwAAAAkAAAABMEUCIQCpErHwrMSje24gvgnps5xjFidUNN9BSpzKycrYiBI8/wIgZGL+w0lBVkjWYsNxk4k2RJkmRXGTxUtL1Zqaq2PlCUkAAABmA1JXUwitg9d5vfK74a2cwPeKoNJKuXgCAAAAEgAAAAEwRAIgZT5DmyWmULf4KPEowLnMWNF3yF/LEKm0kXDSFgmg2jgCIAiX6aG1P0Bs+1ZfDpwwE4hvHskKjIAD7Qm96dLXqt36AAAAZwNST1hXT4QQipjFdXlPdUg9gB0dXchhpQAAABIAAAABMEUCIQCoQllLz9YdToUIcjLmqH+laHdiXRCGoVHYsfsYBYzT4AIgeLaERrxPOfbV443biZo6ZW5SqF71h06ptwsTrAXX3RYAAABmA1JPQxvLxUFm9roUmTSHC2BQYZm2ydttAAAACgAAAAEwRAIgNEitu71ZpK5g7XSGfCnJcuo2L115ApQPQTF1tOyhOFgCICxWjTFhdszJHckv0hEz3uc5uhMC+J/EkNx+DoW81TowAAAAZwNSS1QQaqSSlbUl/PlZqnXsP33L9TUvHAAAABIAAAABMEUCIQDWVMYENVui/J75Cx6Yg7ftSrZ/kCribtRK5C5k5PpeegIgFkJF52yeiqC+Ea9uaQehB+KpWw5LQrqpygMbJuuVBGUAAABnA1IzVIx0JMMACULlqT3koBzi7IbAYzPLAAAAEgAAAAEwRQIhAPJHUZ2VYTehDTlwU6aM0cJps/ZVSus6nyp+WFqDJch4AiBYs4sISyPgnvYCWVG/sOU/4adlj8Qoleq5D/ie7AT9BwAAAGgEUkNLVL0DvZI8fVEBn9hFcdhOTrz3ITUJAAAAEgAAAAEwRQIhAKAiE1RnOMijm2U2w68pDFaEJVsuKEVeKz0BwDlq3nhCAiB56EctrmX2pPG6l+0vkUIeamNuH8JFNh7EDKGOEnoDNQAAAGgFQlVOTlk+pQt+9qfq9+lm4stytRnBZVdJfAAAAAkAAAABMEQCIE6YtkREbNkolyhTiqdI1tJipwCrMSCgewTwlLnSc+U2AiA4fNaHkIJVcV+uQtVwmT7Mg3VvYV5JxCCv1ipgXKmcpQAAAGcEUkNLVHhXGsyvJAUnlfmLEfCTtIii2eqkAAAAEgAAAAEwRAIgDDAak5wfjdQxa4hYfPUlaB1cuC+mghtt3AlZTCKrC7wCIF2+3Xhc7yMPTsBNp0SYIfs88xeKCvlLAPiBVE7nDa52AAAAZwNSUEzTNSYGjRFs5p8Zqe5G8L0wTyGlHwAAABIAAAABMEUCIQC3weetkwyVd+ElYy/HVlVCDHtqYKsPqTem8x8XdGmhgAIgGMZyVipzUPssU/3pufHKp0WUc/cMcRJzZmU1BkLoRfsAAABoBFJQTF+079hcGZmdhCUTBL2pnpC5IwC9kwAAABIAAAABMEUCIQC6AWJuqsTJp9pYRUJ8OTz92DMrcPHLzsggzLkdMMNrMwIgJit9xuVG9MyznyiwFMwCw3xQA5Bfa434pfvqfCBQWskAAABnBHJFVEiueHNs1hXzdNMIUSOiEESOdPxjkwAAABIAAAABMEQCIEmMXXuv8zkSeylfceLuvk+vDOp+HOyYW1GvNn+15RsCAiAUHkbydZBCwOgqMT1aLf5jK9TwlXME/zWHneKAns04/gAAAGgEUk9DS6QBBhNMW/TEFBFVTm25m5WhXtnYAAAAEgAAAAEwRQIhAM1f/eXdE49BYsXeK/uBDLb8bg6GwM5/oAwabjJBKhfnAiAka2h1PqoJc+Zq5upUr+uj/E8rWI1xN4wBh/nHjZarzwAAAGYDUlZG3Irwenhhvt0QS4CTrj6TdvyFltIAAAASAAAAATBEAiAQY/TP2SXVIzORiRD5KiSCm8dO/vw9ArQ9LXUTOM5GCQIgCRipynBtlgL+HsmdXnaz8y5fPp/aiF3MviwDQlwrUYoAAABnA1JPS8neS38MPZkelnFY5NS/pLUewLEUAAAAEgAAAAEwRQIhAJsFo9UmdoFxR9MQVWt7WhMZ0m7EJod71W3PRNssAdrAAiBuMeUpmg1vowg3uU+epjiL8q5FxRzgvNADth+rQc85SAAAAGgFUk9DS0n/RLk3eIIV7KGXuq+a9p29whSqBAAAABIAAAABMEQCIExIuIOUGsMBtEwfh8rhjp0gLut9+NZDC0jcDz84EghxAiBqC1712K5K2Bl73k8YicjoTRB2gaoOuJVhY41kU0UtDwAAAGgFUk9DS1OS7OSFIuGsvNpKqowvvyqp+xXWJAAAABIAAAABMEQCIGMkjFlycACx0SfT5dl+RT11hWCCx/w4WpH34ry96Gg6AiBx5DjJaPA1Oq35bIVACXRrekcU0iUpvnPQiigGTYqP5gAAAGcEUk9HRUVzSSf6L2FvvhnmX0Kg7z030cgKAAAACQAAAAEwRAIgGveGEP2P1xmxMwbkpP6N5kKXby2ju+NBNaiSqvK1/8oCIARuFTxPaMp/OiCeIQm2QnuU5nE7RL7jHkvYovCBmF93AAAAZwNST02srKW4gFY2YI4UxksL//wt6yxs7AAAABIAAAABMEUCIQDNEwWpSlTLd/4rZag6FEQKNFIuf0g7GHqQtuGi2NxdEwIgfdl9+pICeD7ARz43MX6IsLxl3eFJcr308BT42uqKyaUAAABpBlJPT0JFRaMbF2fgn4Quz9S8Rx/kT4MOOJGqAAAAEgAAAAEwRAIgKIpW9Dn/H8ZAJ5JYMjAVnutLc89kPX7+2+6GAArbX6gCIF+YCW3cUwsNnei7CLoarYQ9uMTxiHIbhBsyG5bIKQ65AAAAaARST09L+lBHyceLiHevl73Lhdt0P9cxPUoAAAASAAAAATBFAiEA/sAec4g5foHQ/TZUatnr6ElggzDWB7Ivg5qYkqc78tICICgqKiqMh9eViAGpIFmjNU1s7PlPWQKgkHhmZ6gd7AeuAAAAZgNSTlhypjRBhbODA11mZcP0Sp38xzhzyAAAABIAAAABMEQCIFQ90BmWKuKbh4ktriYgRtIqrqtxmpEhvZVtHfhUPbUKAiA1qk1ZNpqK4L4VOS+vw7cT4+dqnMpV4tsiAP0EXvt39gAAAGgEUk9PVMtfctN2hcPVrQu1+YJEO8j831cOAAAAEgAAAAEwRQIhALVLhU8MsJT8JSZXQlMijwCy2kTwsACBbCtcmu+Fhb35AiATauAZCiZPHw/h3NSGwykEQblT0AEWqbtkoi/bcAGUqAAAAGYDUlRIP9jzmpYu/aBJVpgcMauJ+rX7i8gAAAASAAAAATBEAiBPxDfMhAy4JhV87X5ydgvbPSOFLUQjSsdljAtKZQcDrQIgJ/gsmereaaJwuErj9OD3RMl9KT5wzcOakEDgSszw2s0AAABmA1JPVNBHhcTYGV5KVNnew6kEOHKHWuniAAAAEgAAAAEwRAIgXev+8keE6H9rb6lJr9sQxOnmt28MSbmsVqrPGY0O8mICIE2H2FKunScVhJvp0Di258ijsp6XDxCXp2/q/fdiuIXSAAAAZwRYUkdFocfUUBMLt3xqI9367LxKBgIVOEsAAAASAAAAATBEAiAMrpdxg4+1qxwKaROh/qVQozDAVOtpjhHRzxE5dZO1ewIgMYXMNn4hLfqGRe/wxx12WIRQ5aQtNAVuxzg1pBl2itMAAABpBVJPVU5ESZPLlcdEO9wGFVxfVoi+nY9pmaUAAAASAAAAATBFAiEAxpgUExgVg632pd/5Pp9V6uFORrOA6mMAkEmJ9DWBK90CICfbMlGwUl9avYJynrh9bVDQSnRzVTy+IabFCVHHkMCQAAAAaAVST1VURRbsz9u07hqFoz86myEXXNeudT20AAAAEgAAAAEwRAIgAyKo9hFIn2MaZx00RxiojwYnKTvILRCY41oDSIuvZK0CIFj3fmIQVMiEAk5hvOcrQHW4OT6IDwGDNpEdFEVC57HIAAAAaAVST1VURVJQJTU3XTK7NYEoOst+0ZUH8W3RAAAAEgAAAAEwRAIgAnYn/8YB7qcmkA4LXv8YgQm5NHUzsjBVOKihEz80dbQCICFDgtWjXtc65nYJ5/C4NCmYCRorVNUILDmNX/X5vAn0AAAAaARST1lBfq+ciQN+SBTcDZlSrH+IjHhFSNsAAAASAAAAATBFAiEAmgDGTLV9gWeyN7cgmX35jxkp4wrf0PkilT3UMb15s6oCIB6eVbUCXwemeJijwN+Sq9PVPkZ9VqGR+dUHhWwrOP1MAAAAaARSWUxU0wouk0etSOogjuVjqc39gOlipycAAAASAAAAATBFAiEAz+y13PrdhA2zWiUvtSwd1ObZcqtZgx4N0ySY4l682TsCICEaaoAWZ4+sbaqhWEd8iF1jr2uCFSFm4AClHpJjqo5fAAAAZwRSU1MzyY1k2nOmYWxCEXtYLoMoEue41X8AAAASAAAAATBEAiAL1Hw3Bc5E36uGDzGQHBCkmgJs6bcFsa7nE/IXXKFqVAIgQLz4Fi2PhXS8d5RnYet9FKnU53sUDntNd0i9802pPNUAAABmA1JCQ6Tu1j24UxHiLfRHP4fM/D2tz6PjAAAAEgAAAAEwRAIgZ5ZL9CXv1hMWdBRY/wpCFmZNUujXNs9PH8SGrO4ZYFgCIHbzxJeoeAwrFv05Y7AWtbyKwdU3KHrJZiSRqPk3tSlvAAAAaARSQkxY/CxNj5UALBTtCnqmUQLKyeWVO14AAAASAAAAATBFAiEAlEFXclylczEbGvaI5haXDo09Xy0P/NbQ+Efan9GBvu4CIFgNdrlNPltBKdvpJvtn+p8p6K6vN94uzUpOGNMRaNNPAAAAZwNSQkNVkOIveEQdowRjtVw9sLXqgMq8ygAAABIAAAABMEUCIQCJIqB9FomatoIbAO1EiLOCQzwwpj/3DXB5Ifv8MxoI9QIgF3O5qy8z2QZVKXZyXkOSUaILaHdfpUYPZ5ryoVwE8uoAAABnBFJVRkbyeMHKlpCV/93e0CApDPi1xCSs4gAAABIAAAABMEQCIDjt9WArj4tUmMtMhQCbUO/O8H8iXF7pCrvofqz17wEbAiADdwc+18EJbfMD3pqGgboO8tXydMP27srUhzvbbLDG1QAAAGcDUlVH0N87HPcpopt0BMQNYcdQAI5jG6cAAAASAAAAATBFAiEA2neZ2uSNEmoKFP8kir9MY4ZPVlxBR11FtxJ05LgyJtwCIH2AMSxyA5uQwo0qb6yvTuR5x431T4TT3p6xWxTbp8ZuAAAAZwNSUFSguwAnworeSsYot/gee5PscbTgIAAAABIAAAABMEUCIQDCDByMoqbEqQe3hMuVYH5w8QJJamjgE8dGUkVJuMJSLgIgXMFsgJQurPXnHB7brvA2yL0OQhjbhsigSua81HIhFL8AAABmAlJSINcIkRDClJjRcTf12WVgVRBQQdEAAAAJAAAAATBFAiEArL7rylQHb9jezYULN4aXhxq12l7uZ0UNE61gnFKOLMsCIAhblqO2OlaNASBkndOxcgm9TdMiiGNFJb5jBWiTemagAAAAaAVSVUxFUirsy0JILMZOCHttLl2jn1p6cAH4AAAAEgAAAAEwRAIgXgEYFOwH7UW0AAjOAKg1bJc7AO+Ny7DncF9u1GJc16ECIDc8ajZCZAZH8fgStcgRlJd9yRmIYqlwTyhVCU3gmk3dAAAAZwNSVEsfberctSbEcQz5QYcrhtzfu72SEQAAABIAAAABMEUCIQCsPZGxQaGx2r1Y9Bs1WPY1LZQWPBG1uKo3xrhjwPyzvAIgB7xKH7YqbMDBYENBiRaFlcw+mEpONGnIl1IayUUr5qwAAABnBFJVTkXe4C2Uvkkp0m9ntkraes8ZFAB/EAAAABIAAAABMEQCIC7lx/b8IpHs0HfQwsp8m55juSMeZXIemqn4bXX/S32bAiBz8a+Vn+Q6Pqo+MXsyehZb6+dD0vmNHlaTx3vifFcGsgAAAGcESURSVJmP/h5D+s/7lB3DN90EaNUrpbSKAAAAAgAAAAEwRAIgGwq3Fz6Xg+IA2tc2j72/cAGxpr7xcR/poUTaTmyyVaMCIEBr/DZbj6+eYJahRn1daBCXGyAcRADCAZwbcnt1zNzJAAAAZgNSR1NMODvcrlKm4cuBDHbHDW8xoknsmwAAAAgAAAABMEQCIAJ8/zPro0Ap9GLeX8jhTXzGS+5zXkKl+5mQHUMLiILtAiA/JZ2f2Li/g2gTf7T7YQQ+li/jD9TTeZB6OO6RV5+++QAAAGcDUlVDOVdorrFkhOV4VhKpjpQI5MwSaewAAAASAAAAATBFAiEAydgNtbTj15N1SjyQ6o8oVroZ5uSFtcvi1TJ8CyGMXmYCIFhX2Gawi5YOBy60Seb+bVo50fGT5a7hZvg5GbF+AuFTAAAAaARSWUlQ145bJKrhvQOkiK9kJ3Diq7mG+dUAAAASAAAAATBFAiEAnhj0U4qj5IORsawjOYnZ9/XwVj11pWnc0QMxgoomDJcCIByUGSYwMwYCnGxD0O21yMdUMWL93VhNhc7SBTW6yXxcAAAAaARSWU1BK4pmIBZlzYw2q585EnIhhHEQqo4AAAASAAAAATBFAiEA9vlvKOy2iHHl/IXToc7bXyXy8OSSYJ6aVM2+vq6YRzQCIFWy5suoDjbaTq5bDuZAxDZhb+O4B0/3YJEvr0LGy9AfAAAAagZSWU9TSEmaxZhik068NgctTYraN8Yjc6E4VgAAAAkAAAABMEUCIQD+MPMYN9zKgJzjszGtbXf/O/T7e7eI8lxsMAvvHY0JzgIgersdHpBWwL5Z0T3eTv66Y+Eftfq75+u0a6ZlWqhyq70AAABpBlJZT1NISXd+KuhFJyovVA6/aj0Dc0paj2GOAAAAEgAAAAEwRAIgXGBdCAvMmJ3YvouEEDStJP8+b4PZ1AyI0KqKIYe0XoACIBbFHNaI2uQNZFT9kFJAsfe3QLYBe8ACxBGj2/aOr6F0AAAAZgNTNEaux9EGnjqRSj61Dwv7F5Z1HyzkigAAABIAAAABMEQCIGZL0qs1s8nU0MlQlKOcl8f3XEPaYWMLus593DOe0YARAiAmALNgVjK82Xj6w6+xGV1WVUCGszJYMLXMrcDxsR85GwAAAGkFUy1FVEg+uR0jfkkeDe6FgsQC2Fy0QPtrVAAAABIAAAABMEUCIQCOcmbUqUL6JD+GxPIo9mitth+ChKL4UDrn4XCoNZ+ZawIgMkppSqa1oBaioK1eUo1vj7IC9rLx2N26wmG39OT2RBMAAABnA1NBQ6vBKAoBh6ICDMZ1Q3rtQAGF+G22AAAAEgAAAAEwRQIhAP2e4TCYygJ/+5HlGhjOmUcOI+vwHzyRweAmWwe0tVnJAiAiIre3yLI1B0CHsUu/yMIldRS/x084+oFCaxm7HnzoQgAAAGgFU0FDS1OmYQ7WBAR+e3bB2iiBctFbzaV1lgAAABIAAAABMEQCIFK3oIXxJ/ha3D1F1X2jZvpf5z+CI3ceaKemDFvPEf54AiAFi7Poj9kkbfGA6VZmIAQt3ceIV7RgESnnx5JFRJRs7gAAAGcEU0NBVIQkxawyaDS0BHQt4AZ7y2VOhr4wAAAAEgAAAAEwRAIgeT8JcYhiBFloWyswpKtm0DM34GtRflYmT6/ujnp8x44CIGDVlfrzlCchcOxe+6mc3Z6tlcyoNYE82AoBemy4NZEFAAAAZgNTRlJkjRnXdajUuvugnhiQkL3L+O8xwQAAAAgAAAABMEQCIQCLHO3pgZhvHzw8Egvjv0gseh05XAKgt4hAbjiB7b5Y4QIfbH3RyeSVjMs/mN9dMqijM0LRtFtQN06iA/ewuiCkPwAAAGgFU0FGRTIlCjUA9IZmVhOGgy8fHxAZuJommQAAABIAAAABMEQCIQCM0dNNvXWEzm+q7rZTeEfHl73EFbBzNU7p8YIZA4ZbEQIffTo2Yq0iwG+QzC0Tnzje1UZ1CR57sYo9/R0MEfBXqQAAAGoGU0ZTSExEEaYF1+ErZNcT6TxIcnfYGaHRS5kAAAAJAAAAATBFAiEAg5aQ+EFNpeZp2tT4A+wx2s2lyzOI0hVbco3Ox2zIl5kCIFNAkJuymx6LPsR03CaphU6/hy45Jn/ibI+FGI25PATAAAAAaQVzQkFOS0Os7dObpLC/zNkol/zmF/uQqXHYAAAACQAAAAEwRQIhANQXp1XCsylny1m8xvKEJsxLUxKEa+kd1qNADoi6qkFlAiASDPtCFxk2fxJL3x4ltn+bCjLLIOPLQ587Hhx5pr38LAAAAGsHJEJSRUFTVHeivwval3X7NSSmcg3TsWvUVeLCAAAACQAAAAEwRQIhAKz3pVLpLbDTp2dUPQaQQtsiyqEInB0xtn66fIkIoOa4AiAarReJy2j0NJduUUwgV5S7keKduhs7Gm++Y9x5l8axOQAAAGwJU0FGRUVBUlRI5vGWbQTPy5zRsdxOglbYtQGxHLoAAAAJAAAAATBEAiBmMI+8aqAyyfQ4z4U2ELX8Qceybo8zKC2/dzWMOus0FAIgXao1MnPye1+mtm9PIxf6ZKmRMhZmiTDAb0Evn36F+CgAAABnA1NNSc10ktsp4qtDboGbJJRS7hu99SIUAAAACAAAAAEwRQIhAIKnVRi2/vilYpUP1ITKps+iSEnWHwLYvCzD4aqtRKk2AiBoctCqO+BAC0iTS6MUkEJR1OKVDUHw2FBeiLpqIdR1DgAAAGsIU0FGRU1VU0tZ9ZgJ5g+ps9R+uIO1jyfLZcH/NgAAAAkAAAABMEQCIAs80AOboqPFWjBEb7poMprGqlK+guVStdVEhxf5Ykn3AiAHBt7cNqq6EupMLN52++TAlKkzqOqBpC8uqmnLOaomMQAAAGgEU1NHVC7MSLo0anPX1VqlpGteMU2dqmFhAAAAEgAAAAEwRQIhANsoGDGAObnAwu8qhZff+n18hzO4RDyrB6YDbT+LW98MAiBVtcHp5GqnR2tXFepUaxybt+SOjFq/lZ7/J7fgURDjNwAAAGgFU0FGVVXlukf9lMtkW6QRkiLjT7M/WcfNkAAAAAUAAAABMEQCIA0jlYtlOOsbsRu5Pxi90Qwr/4zJsWnHsVB+uX0DQzd5AiBidiC0UyfGNZXhO9RaimmVM923uPegLY9WEBt9e0IOuAAAAGcDU0FJx3hBfgYxQROfzgEJgngBQKoM1asAAAASAAAAATBFAiEA89OrMeo6NFyp85VVYNTqqcAOsUexl6KP1aUfeErq7rYCIDZaTzrpIzLYtZ89vKN3bU3KxAxddGKkl4Z1FAsCdoBWAAAAagdTQUlUQU1Bzj8I5mRpPKeSys5K8TZNXiIIJ7IAAAAJAAAAATBEAiBvGnM0cV0VdFQgjLVl1sL2QVhBNRcLjkLV4az6M+hTJAIgPOAT64xUMDir3pKFs+WrA9wk2buG1JNWKJI8wJbPLkUAAABrB1NBSVRBTUGLMZL17r2FeVaKLtQeb+tAL5P3PwAAAAkAAAABMEUCIQD/VL55lG+VsCuHAkPjzo7/3xy6BElBLLyneM8Mg8eqVAIgAuFqFrZnfcTvc2cRp63itNY5lIR5VWYgbUrHax1c2AMAAABsCVNBSVRBTUFWMiwpcCH/AT37nUXIjb2OJKPmEECzAAAAEgAAAAEwRAIgHBS7VVcxrCIpX6O8713qqqLrKruqfunafD5qL5PBGTECIGsHVI4Xr4ahmXH0efkHJUAdfj3MpV76iJ7gveWMlh15AAAAaQVTUkxUWRQqd06LUlUOiOGWzt16WDWstkbQAAAACQAAAAEwRQIhALWgCuC1nUe2PqwGfnwT6lF6cJ4gklWMJB2EsnDq8JgtAiBuLf0hY4hrsvdQWOgHZ4ftpx5numWJ41x+9O6ZgMm2awAAAGgFU0FJVE/6FPppWEATFIUaF9bFNgyin3S1ewAAABIAAAABMEQCID/Q1DuJlWpXAE2j9eU0XjyA8dsQxxwRGBmK0S87TcDmAiB13gkD7Fin5ovra/CgFTsVHDcEnpFJuskBVsM45+IBggAAAGoHU0FJVE9LSaPFZCdoOhn3V0ufwhnP0n1dbof6AAAACQAAAAEwRAIgaQmBRllA9xgQUJ6cigrTGEbU+jLAdcaPJNW9zZpd4U0CIGnXEcVyCxgkJSPnwuOgarzqKDjWvFAW29FOMGFYysc5AAAAZwRTYWphaYxqycpfFsq8WmNtOmGTKcCVjLoAAAAJAAAAATBEAiAh4WmH1p6ns8hVrCJ1haQixA2PE82FfgF9D5do4ecOGgIgVWK7A1wVbolIqzrSLFMfQQexBmzpCEro41AwZav3qR8AAABoBFNBSzPp+E3iZOkVKa8H+ix0bpNDl4EDNAAAABIAAAABMEUCIQCuitdymmupk3c4ohkp0v2cXAhECmn7E9wFTBlKc4GXFgIgfzF3Xxox9cNa0H6lyOPywoGJX72Rc06uBqXQxffIMJAAAABnBFNBS0UGZ5jZ7wgzzMcZB22rdxmey9F4sAAAABIAAAABMEQCIFf+gDGx4RBTbUguM8bL4rWWA/ObWdK90G+8YjwfOx7GAiBZUSQJanpl2pwnPTrftAJ2ntorSLC6EMALsEVyi11hrAAAAGgEU0FIVSsf4s6pJDbow0t8IVr2aqopMqiyAAAACQAAAAEwRQIhAMH/RKqkkcebSG5//fV5EdMcYmLTRRNuZXaOxHAPKn7XAiB96/gHAitvsU7dZDVl4KZNv7l1gVqX6haXql8mQIibOgAAAGYDU0tCSvMoxSkhcG3Lc58leGIQSZFpr+YAAAAIAAAAATBEAiB0hUS6hjeqgfP0AS02tb3jQJQ5BitwaOE9TRJMzWEXVgIgXq/+EY+YPWwuZOoUhb/85EB0/168rpgo4YIN+LJKTXkAAABmA1NJSG1yj/hiv+dL4qujBTfpkqJPJZoiAAAAEgAAAAEwRAIgbui8vAadsYi99EKLoi3DtQOGmZCB9i9sAa/yd3DG+kQCIGm2npFQwcit8FfpbAW9IpOMUiQpa1BF2h6RantyEQyyAAAAZwRTQUxUQVbTNC1cOFqH0mT5BlNzNZIABYEAAAAIAAAAATBEAiBm7fGSBNlvE6aFDF5La4IfnPA4tpv9W8PI+nIamRC0PgIgJDulf1FGBK2JWQlOg7P7tQ1bVeoweENcXAwlXCPiKEcAAABmA1NBTVM3iCXZUoFzeRSooqwOWpMErl7XAAAAEgAAAAEwRAIgVe+N6wTCq09WZzmq6qdDTif+GwjTiHMB5/WAzFlt4+oCIHPtLQoLWZgMpFmBZ+7PPK8Gr3/BqouslmfWO7Imbtj4AAAAZwRTQU5Bh83ALwgS8IzVD5Rnk3BvrZwmXi0AAAAQAAAAATBEAiBFKxo7ZRqYqObf3R3AtAUpNR6dkzz+RoanvoQYLxS9iQIgClO3CzJAHZHKOCKDDL/2m2sS96+Bkpc8G5zDPwlF/DoAAABoBFNBTkQ4Rbra3o5t/wSYIGgNHxS9OQOl0AAAABIAAAABMEUCIQCrnesPy1UCM6GGHIOAQrRkn+SfG5zwYjm0SD80z2Ir1wIgAhXeA2XdAoGcwWU0df5fdBYaXcyK1cGSQs+NKA8zCN4AAABqBlNCTEFORGOqnQXAJSefjpY7p4TxJUgUweErAAAAEgAAAAEwRQIhAM9yZGeN8saapsQQu7TTHtMj+mJCXPSNZvg0FFQBkAm8AiBvgzPYTA+PYo+jSw6xTx8RZso2JErGzlSnrwDhBjv7oQAAAGcDU05E8zOyrOmSrCu9h5i/V7xloGGEr7oAAAAAAAAAATBFAiEAxneru5q7xkxDcN0v+TFmYoMXVG6twaBOH7OWQGB+b1UCIFvKSZuBYOyqVTFSZHWbVZTofwJH2CeXS8mFMV6VQJOUAAAAaARTQU5JRSHJrWo9QjCAOrdS7SOL4R+LNC8AAAASAAAAATBFAiEA82feIbux5vftGSxsbs1WC28SK0iGrh3hcG31FVHd8AoCIChw6fwN5hNremg4Hj5UsE7hSj1bzpFsRT41gk1MGERoAAAAaQZTQU5TSFXHPBZ+ekuhCeQFL3DVRm0MMSo0TQAAAAkAAAABMEQCIDDxZDjkj3QEa04UM+4NgTs/+zplBTpbPfAVdkrBxPYIAiBh7ShXCDoxUjCv2K8uLmTbA4b5vP0irtEHDpA9hjCBWwAAAGYDU0FOfFoM6SZ+0Zsi+MrmU/GY4+ja8JgAAAASAAAAATBEAiAl9OAUhZDko4FcdvsFCbrjRtNwvZWHSX3nV7MTF2K/wAIgW4bm4zUYYojN7hfCqslyVphGRRIoEoc46nxhqwGI5VMAAABmA1NBUPbtJ2ppJwqJXW5BnZnctaqi88tKAAAAEgAAAAEwRAIgXyhyJpKdZNah6k+xRMZQqqaGaPbAmK52eMHkUqiNSkwCIEzt7Hj8pmWldbO5dIQ+kgucoDdQQVdR4k/cmkN4tvPCAAAAZgNTQVCR9SnpctbPQ9Nqv6kcERgSL/fxbAAAABIAAAABMEQCIGe9NcgmTFoTfqxP/PIxe4HIn4IsymbEJdKz4n46LQ5KAiBRA5ENxywdBgm9FeQKl7B7KRnSBnB7kovEW1DBtWrcUQAAAGYDU1BOIPej3fJE3JKZl1tNocOfjV118FoAAAAGAAAAATBEAiAnZ5solCvqjH6gfOnLYHHN28grPdO+vOkwii+6BelYZQIgbXiVYLP7fVu/tsIysxF3VYtqc3bj+xEikQ6Nd/7Zb2sAAABpBVNBUkNPdpe0YqfE/1+LVb28L0B2wq+c9RoAAAASAAAAATBFAiEAjKKJmVNLS2IbOfkJDaNxHWEs21BES4RXpfYXHRS0AgwCIFvxWOslV474wVuND22NNFFBV1O4oS+kKCAxvg5xd9F5AAAAZgNTQVK9SoWBObFVIZ4sjRATUAP973ILawAAABIAAAABMEQCIBQ0npqJt+zusVa5X492wLm6v57QcajceaIoenlq+/NhAiB2yTriEC8lq0IXODPDRjJpR95yjmMaf5OJdgLHhaExUQAAAGYDU0FTTDjQ5ya2yG9kwbKBNI5yWXNUIEMAAAASAAAAATBEAiBedbIU0s/aWuLFPgdl/Hg0YbiR+K8SgdvxlDj9ep540gIgcoWWDDF2XmPkKznMHaZLnGvn5b/1EnKOyyZe9FiTVJkAAABrB1NBU0hJTUnCjieHBVjPIq3YNUDSEm2i5LRkwgAAABIAAAABMEUCIQCgBfRTnMThedkG7ueAJ/pl88+JGEV339HfUKwXPIy7QwIgSCJ9w7MhIppJYULIibfzzMrss8yo5WtuSBgeoMUoGI4AAABoBFNBVFjpbyw4HiZ6lsKbu4qwWrfTUntFqwAAAAgAAAABMEUCIQDdmJXcsyI0aFALtfzpN7FzsMiBKZSsyVeYr0QXa4ep9wIgCWTjHlCwfHd+u65oY+yTMGXUpG5llH4klJQAdV83MgAAAABoBFNUT1CMPuT3eOKCtZ1C1pOpe4Cx7YD07gAAABIAAAABMEUCIQCRHjyL0Q1py2NckZ6Zerkm4R8ojIeG4pXttrNTkSFO6QIgWrFKVFSKKwowCRe74bhi4xB2KKkbtA6zsQCGNDcqB18AAABmA1NQWeSIO8uRk4a7X0jvWbfDHB2TpRpXAAAAEgAAAAEwRAIgf1v87DjNUXrtIIEOsxyyc8/DroKsBEut7WexVlTdG6ECIDCuf/6nRKbiMG8Tkcwtiqm2/ZwXq3UpZP7E1LJg/RUwAAAAZgNTVkNk6ixhBPHPMDXii+D3gbYobVCTTQAAABIAAAABMEQCIFXpH5dB0BTkg33Z5oJw/s5Att+nYFboliKneX0BhFZ9AiA6UWWnM3AMxcEy90gAL2fcFpxHuRW6hj/eSnUzrEUmoAAAAGYDU1ROWZNGd56Q/D9fmXtepxU0mCD5FXEAAAAEAAAAATBEAiAy8vdkwwTm2DMVOs9eLgraXXTtwFHw/2r201WiMI1OJwIge2axRuaobDNx/rBlrmfqAiYuglgkDVtHZHwWf8VXK5MAAABnBFNBVjNuEKrLiaKNb6D+aHkHd/7H5/AYkAAAABIAAAABMEQCIHGU5erksk/xIRDWemmfa4PODqBRUyBJU2zB6lqK+1NvAiAJiZxUH5MnNqeZZpcEV5eBSLwyXBR0WBwpvjrmvJzYfQAAAGcEU0JSVGBs5piuodylomJ6RYPaE6NAZn8JAAAAEgAAAAEwRAIgM8rCUDqIrH6ya/G5hQi5qHCRxnMnPfrZYddrmdw//b0CIB4/4aWzZPvioWmVqkWX/nYu8nzCWQB/AUMyeObvBCUQAAAAZgNTVkS960uDJR+xRmh/oZ0cZg+ZQR7v4wAAABIAAAABMEQCIDYcZOun05wcPcA/7i5Zg7Ija2H5NL/QUgzDr3dk++5sAiBpVB8UX6QArbmxNfrByTId9XK0R0HoWPR9f0wJHU+/0QAAAGgEU0FWRcHuzx9K+OuaKhn2wmtDSqls6FnhAAAACAAAAAEwRQIhAJQcz8bVimeiyK0DUveYOUR+CcUOy2tt1WixywLru3xlAiB5d4GMwqNSNgx9qaUWI8H55ZWtOmRjC0B5g2rjeUzxeQAAAGYDU1ZYxDSydzamiC0zCU00eSmZcChgoTwAAAAJAAAAATBEAiAOI21o86Ve0RQmu9JyUWafIa2+PCeAP80i8Bid8XjqKwIgF10nR7wgvJeak1B6MDzX1xISKUc+TCDLn5yZDphTPi4AAABmA1NDQR+9PfAH64p0d6HqssY0g9zCTv/WAAAAEgAAAAEwRAIgD+IYWd5LLG8GBvLzB+cWrMPDFeCXZfjoTnFCUgNd9agCIGgZdUO5/M9KdjvFj8j7SZptWtyRsg54ogZ7I3L8t6HtAAAAaARTQ0xQ8sluQCyRmWgtXe0m03ccaxksAa8AAAASAAAAATBFAiEAszIFrE2HZxcC6SdoqwdGzEcUrWRMWZhp9GcEFfUErFMCIEJSFqVPlIrOCgGBAkZqK7cruZ+Ibpq9dPE7LKrA1bpDAAAAagZTQ0FOREl4/hjkH0NuGYGjpg0VV8inqTcEYQAAAAIAAAABMEUCIQC5Nw6mc9f8HgH/4NSLntpLWMNAO9y3Xmtk6tiH4K+rUQIgVDodpdz0IqJIXtHFZfwiswv84NskdECyg7cWWGbwbjsAAABnA1NXQ634uAUGObYjaRX3UW1p3nFGcvC/AAAAEgAAAAEwRQIhANf0EFKsd8PbeC1T7yB3OcZyV4GxjcqaWBHlPY/+x4STAiAIk6ULmWsJ25mv5feJVbFswaaswtT5c71noLG+Nao5EQAAAGcDU0NYG4Vo+7R3COnp0x/zAyVPdIgFvyEAAAASAAAAATBFAiEAroEZxSVyKY8woU3pL2Rp4jzSynQsknHnxXmufMz6myUCIGlexJnDrB/NvpEakz0VWHZs+kQmQMcVGOmYV82ze9zlAAAAaQVTQ0FSRFjrva4qbwEzoHBtgso0frNJLu8FAAAAEgAAAAEwRQIhAIah5Je0nFMJtnjbNeSBFwekp8wC6ZXd8W4DV6pIdxr4AiAIoSPUVtb0OEckMndnjRgmVmP97MQAiHwPdjdhcxY5zAAAAGoGU0NBUkRfwQswgg95PiRzPcgNoSx5jfv/D/8AAAAJAAAAATBFAiEAw0FUT7ezjaa81YnJDYUTMHzXjbEs39w25PTnHYaxB3sCIEfN/6PCQ2KZAEwWLdOvN9EydzvEPPSdMjHDeHw4/3hMAAAAZwNTVFSsm7QnlTrH/dxWKtyobPQtmIBH/QAAABIAAAABMEUCIQDyJxYiEY0JrrwA68PGKEwnM33o1DbH3t9NKwyW/lELXgIgC+OoHsczPlpi9vjNaerzw8tbxvS5J34YTXOa5pMf3JcAAABnBFNDRFO3LHlO/7d1GXKH12fKgMIq6QlMtQAAABIAAAABMEQCIETw/xPgDSpjxfZe88ZADCM8pskEr7vq5vRSlZ7/qaDiAiAKsvvO917t07Z4/Xsw7rCcIQmHYAFKciCncM0A+KSZbAAAAGkFU05PT0TUV0CrnskgvtvZurLoY1GeWXMZQQAAABIAAAABMEUCIQCMoRrC71XtjykQhfOfy9vX0XCzW+8oIfPJg07CdE4A1AIgZqZLNHCrkwGUi4zKIfV40KEMv1faKK+Cgp4vtn4i4ZEAAABmAktELDOyhSemPN8TwLJM5M9b+cn7O8YAAAAJAAAAATBFAiEAs0TzLqWYnDofHERrgSqJ3owfzNfFDBJa2jzGaujTO34CIBeNWHvgk/pBZf03pA+Pnf8Ym4/pn5/GisaVwLRLZwkHAAAAZgNTQ0NKnwDeXYokSUQxP67iOEn/cl5oDQAAABIAAAABMEQCIFnHlgDEV7Dj/GfuGr1wAETb3wI/5y2ihSfh3dna439oAiBoH+o1oyt3SBwmWmE9gBemqSz+CDlpU9nrWu7kbwgtrgAAAGgFU0NJRkn9xKP8Nt8Wp47crxuDfTrKrtsstAAAABIAAAABMEQCIG9cZzPuG5yMieuoZkv7GtLwoQeXnA+wU0w0Khl5RphTAiBVmaE0PGBKAHbPFdy4D208pITMteKa30nY7buQAamXBwAAAGkGU0Nvb0JpBqh/av7EpznDZ772nu/jg9JxBr0AAAASAAAAATBEAiA6ppGS4W+28ZpHAV0X4q/3QC8URj95NUJ5eFIJYAR62QIgbw1xy6CeIMX4UcdS7yJC9eOlq9tSc7cIXmwzRGdPFc0AAABoBFNDT1Qo7U/W3tsiaxa5LOaZf3zf3wxRmwAAAAYAAAABMEUCIQCPlXjpKPkbbRMQ+Ag+az5n2rkJE86TOh4IdiNBvd5ILgIgF3ERt+Hiq26Za5kYd/vIIoCPPBF9j9W/gYVpZMwNackAAABoBVNDT1RUJ/1obbEOCuBH/o/h3pgwwODcPPoAAAAEAAAAATBEAiBpI5LNTInlvQpH4uWEhbz2EkxvPGC4oKw+jzp4w1X6VgIgcG+CRATVj1WyddUamBafngzpV3lh95+FnElfk8i9rzsAAABrB1NDUkFUQ0hXDbmjiLZBySciwPNVdMMwY6ly1wAAAAkAAAABMEUCIQDaMQcwxBrQXSfrVsRJ8jTH4WuPdLletaYR7Tag9zOjxwIgPDs2UEtTBR7UfhyLaa/1zZWfcoSxAzYgDqUz5MFjdXYAAABnBFNDUkwk3MiB591zBUaDRFLyGHLVy0tSkwAAABIAAAABMEQCIFF59SCMIDl/NaMVDCRcXM8736pv8Oh5aK0u6wAIA0PLAiA6DCZxc1QOU6SS7dvoETOa+o9R6Hm4pDuxEekRqlqNIwAAAGcDREREn188/XoycAyT+XFjdAf/F7kcc0IAAAASAAAAATBFAiEAv97f5UrCiit9CLKMuYDk6bHYOLOy+/Pdz9FBxaf61loCIFZzlfX34175DMbY9K5nxq/eAzsRTbo2eIDpAFKP81jVAAAAZwRTRE9HU37dUuvLn0j/L4ooxR/Nudam4NQAAAASAAAAATBEAiByXE31YJXXAtPUYvHjSHYLayXCGnJDGsJ7tkrlE5pINQIgeQgq4d7MiFMiFH6a5GgjBUScib5rpPCvV2ylJW2L+mYAAABmA1NDQ+a3Whlg+Rv6cBDeyFQ2herWf4z/AAAAEgAAAAEwRAIgYPsTyWSVYRL+YKzKxeZN+IAum9YcwON8SSVpLLSiJScCIE0xg53a7qxkVtLVqyaiDb9r3mdQjrZYmZ9ysdfR2/xuAAAAaARTZWFsM8Laf9WxJeYps5UPPDjX9yHXsw0AAAASAAAAATBFAiEA94dH7OASHM/rEprsYXuCsPWQhTrtSsyKvIPTdXyL9TUCIFGtKPPvFO8yZRnoY7uj/ktigR2O4hcK/gy8krOG3moIAAAAZwNTS1SCvftMb0iPxHcAzvEsRIovE/j/TwAAABIAAAABMEUCIQD9z9n9/TOBo3DJoWfgiN5qly7LylYCBYx1y21RbJFvlgIgHhQbtZEtwutoeREuS6M2MBLLyrDXE3cGzDGVzJmnJTMAAABnA1NOTvVxf130HqZ+9n39PB0C+ZQLz10IAAAAAwAAAAEwRQIhAMgSDV/Z2oh71il9T56O8ylvLD/pYzVrjyG1+/wi7JQOAiAb4CKjPQEywrEMGjO4dWqzTRIf3pBCSXhuhNWqstX73AAAAGcEU0VGSXcyWLA8cw+ErxDfyxv6p0h1WLisAAAABgAAAAEwRAIgTCugEEvdnTJUUCqbL6u7+boD+zZ517xYA1RuFOfxbOgCIFFK2vzQZrrl26aTxdB0F1FyQeGISsumtL46o26E4JfiAAAAaQVTRUNUWFhdPf/Vm1IBl5NjzFQyAg2RDcQMAAAAEgAAAAEwRQIhAKXjmVru2a9eSl0T52HS7GelT92+OMjtvG9u1Hn8FCnrAiB5ZYrd6yQlJCFeUqqeQdOwSjypI+x1btIgnn97qVNRzgAAAGgEU0VQQRCZSqL7jmul2fsrwSf/IoxP5hZ/AAAAEgAAAAEwRQIhAMQP1vLDEqPe3SGf4JVCSdZHbWTWfEEZrMegIrXoEeL5AiBYclD4JTWZ9DPIW9zjFDLGZDqtrHymIU1Pz5UTsh11bQAAAGYDU0NVi42XHIvDf2WpPEYJZE/vBZCvL8cAAAASAAAAATBEAiA8BhqJC2cwm+nEvYPXwe0uDEBiT3T69+VKwQrLKc4pJAIgEjsL3cuGaH4cVhLIAYk7UQ96ptyN58aDjnFQmimXhWIAAABoBFNFRUQwzyA7SO2qQsO0kY6VX+0mzQEqPwAAABIAAAABMEUCIQCHMmAoNOPFwEFhKF8kAWsIkxwJYVxlint9vNxsA+qRjQIgTDfNDRZyZiuYj5H6aJRy1VXjSMD6SRiptnVMKYKBaWAAAABnBENMVUL3bYAgAiasJQZlE5ueQ1YX5LpV+QAAABIAAAABMEQCIEUVAYlT1jsJhlVXYbOO8jTv9ZxsuSch1b4stPIGY9niAiBr9N/SN9ZkIKi48SWgyEeKRmllQJLJclORBt9y7L/i+AAAAGgEU05GVKPE3Eqc4qa0C1fyX4tQ3swsZN7CAAAAEgAAAAEwRQIhAKFbgQZh7DHB9RHESryRm9zJ1B/jIem5gkkxtADPXhTjAiAWr0VP1bNTqoYdmqm0X1XrLlNUWr5kcNaWBJ+1z14hrgAAAGgFU2VlbGWx6TI2q2Bz/axYraVWSJcXfUvMQwAAABIAAAABMEQCIDXFFlzUxjjtBFi1Jp6V9Z2oXBcSap3fpW3iu+rRDuQoAiBpXpQyiBIC8f+P+Z4zchTH6Lw22ZUrF7rV6E7BLDvfRAAAAGkFU2VlbGWx7vFHAo6fSA28XMqjJ31BfRuF8AAAABIAAAABMEUCIQDCZoRQilSTgSp0w4WwOro3WxkVDpxtrhIkYEh98mZLKQIgKauANkrSpdoTEkXGczSWPphkI6/hm5aIph0aVPDHSscAAABnBFNFRU7KP+BMfuER8LuwLDKMaZImrPn9MwAAABIAAAABMEQCIASefCZ4OVlChYxVweKewM/QRhgiI9KVkgEMa1j6wlobAiB7e3l6eCu8dKmBG/y2+yYz3bosEqS3QBujCeN795iUSwAAAGcEU0VFUg8e1mwlG8tS7PfmesZLtySCBIrbAAAAEgAAAAEwRAIgPBk5RfSHlUN6T+ciWNxIWnT5xUqkps705ih/69qaCFwCIDMw3qtrixNpkDeLnuKkPCsf3bh/U0lMmIIwNtYAQzhqAAAAaQVTSEFSRTl5U0TLzHbMP7lLnRsVwjwgcMZtAAAACQAAAAEwRQIhAL2Zbn84OjVL+nRhZgXo2HAvXV2kfQ1weBcT70sceVHkAiBLcSaLNc+HSdAcnR7xfr1CNupTuJjvAIL/Z0q4yPsQ3wAAAGcEU0tSVIhxaBIMuJ+wbz503EryDWffCXf2AAAAEgAAAAEwRAIgCTP2mpH4/QHibFcxHNgKgF62e+MYnYDP2uVwQ/eKfc4CIBVY3ew+zGzAscUZGsIQRbrPwrfIKMN+tFkHUox/crVLAAAAZwNTTEMqwi68E4/xJ1ZvaNtgCt2tffONOAAAABIAAAABMEUCIQCo5mGJ3NsI2gUCSDqejyvIevQ7+L+IJVi9WkxIIfQGAwIgCiPQXUVU2ywVs9FjvgZ5W3IJmCwVYYehkTTiThNas3EAAABoBFNUT1KjzqwKrFxdholz5UbORzG6kOhzwgAAAAgAAAABMEUCIQDtDgcvkG9ekojn8s/sAPALiRd2p7rQgCGBGQZODgf6pgIgXfy+ujg93jKGsijufUq42YlUkosBh0gnD3uSP8U/TqkAAABnBFNFTEZnqxEFjvI9ChkXj2GgUNPDj4GuIQAAABIAAAABMEQCIGPXbDr1ilhRfthJfDbEpdrDuVNvQmfMEgOUF4GZfcukAiAIf0va5ba3k+DF4lsnRpJZFwOgxMHd7kCEAF7CI37bYQAAAGcDU0dUN0J1djJP4fNiXJECZ0dy189xN30AAAASAAAAATBFAiEAjzblAL7mD/FxMWWSFYzcnjuwsBnU6bBMFMgxx6r+cqMCIC/gowto3jHpk/SVCxGgH55ZmNsk63r6+kh+noLVV+nUAAAAZgNLRVlMwZNW8tNzOLmAKqjo/FiwNzKW5wAAABIAAAABMEQCIHcExuwXbmHLTA5HX26a+FWOVtybEz4EHe5X6OBq3YQ6AiA9bSwbtgqEv35uAMemu7jRcry+pGk8NTEMt7jBJXLRIAAAAGcDU0xZeSjIq/H3Tvn5bU0KROO0IJ02B4UAAAASAAAAATBFAiEAnc81+xDDwYhqzQ1nyHDGQOLpGr5OJSjkHSc/6t84vtgCIDHTbqRrp1xzKOynj4jYyhQYLkWqWzvz1m/R11mCAVJPAAAAZwRTRU1JbXkXhkADqbsTy77I8c3U423fb8gAAAASAAAAATBEAiBvyU4/xFrzrbXa3MTUvGd+zAlXwvGGkw0lUUaUSDkDvQIgDHcKM2Hr1xyEzbUKWE5bu1GHDeu0S529uMvp0VXvE5oAAABqBlNFTkFURTS+W4ww7k/eBp3IeJiWhqvpiERwAAAAEgAAAAEwRQIhAKL/DDXAMOgkNOZ21zY2oOCqtU3Aq2XR+HVFSNFvAqCGAiBshsWv/SESNNwKniq4UH2xrxkSrtZsw0fcq3nCu+T9yAAAAGwJU2VuU2F0b3JJTKdBhVMtwXiVJxlOW5yGbdM/ToIAAAASAAAAATBEAiBt+Oret7RT52hcaeEakpZCZWPdYNuhHFRzSNK6105CSQIgYHLjt+bwUC9LUW4UtRoxhqsCVnZ/RyQ0BH/6exSKEl8AAABoBVNFTlNFZ0X6toAeN2zSTwNXK5ybDU7d3M8AAAAIAAAAATBEAiBL5QcF2eyZpCsco53hMi8dFqnQeKVfASS0W6DPGdU4SwIgdp8CbxuAwcoGtxgT9QRatnpb4svON/DKLhbR6KPO5D4AAABnBFNFVFME4K8K8bfwAjxrEq9alN9ZsOjPWQAAABIAAAABMEQCIFBl/1P9BUdtCME2gaQn8wLZ9F32/pCsP+O9Hu6f+PKZAiB+toE3cZAAVLu40EJEPKxWQtAyNfyzhP8lmaOkArFzgAAAAGkFU0VOU0/Bm2pKx8fMJEWfCJhLvQlmSvF70QAAAAAAAAABMEUCIQDbZFBVBM7w++RffKeOFC01QiIlABZwfPjqFHjolOaBWgIgZqiOQRfTDHtbprOtsFE3hn4v2G2M2zGtBUK7FuOWTuQAAABoBFNFTlSXq+4zzQdcWL/dF04IheCOjwNVbwAAABIAAAABMEUCIQD+1QkxTMPBBjVcMLg579dVARS/GkF+Zu45QI5gYwGd2gIgbACxz2/1xG8iDImRc8xqdKIifRFk3mZqOOxlt43ePaAAAABoBFNFTlSkTlE3KT6FWxt7x+LG+M15b/ywNwAAAAgAAAABMEUCIQCruDDls6n+uPbsMBhx8TQI83jn0AmokXfSw5fWRoSOEAIgSIYWlNUZh2Osx2AxCA8Q27cJRTGhwDSnbFvzwJ5F02cAAABnBFNFTkOhPwdDlRtPbj46oDn2guFyefUrwwAAABIAAAABMEQCICqjwRFufJNIVQ1/KRV836Bdr+qean4dew1vxWsXugQaAiBF7WBF2MkugqdMkAvgIGnxrc65Na36vxYbXSOscPHaOgAAAGYDVVBQyG0FSAliNDIhDBB68uP2Gdz79lIAAAASAAAAATBEAiAsDWPmwQe23qAvjFcWUj9CbVQh4IEV/07kgl1ssnLmJwIga7igrPfINVpdErOuW7JFtZCOGK0MgDzMgEoVbSgdyG4AAABpBVNOVFZUeGWvcc8LKItOf2VPT3hR60ait/gAAAASAAAAATBFAiEAtjyvJ6CI+dP0xntKn8TQUikwge3FkmT1ooGLfuTCLW4CIFMxXSjrVNS24ualISRFoJ65aYlXMIMstC4ruJLZUZ87AAAAbQlTZXJiQ0hlcm3nFhLQoG0foD9YHWAf6llxC0Z+UQAAAAkAAAABMEUCIQDk7NWZSQNvUdtJuZr0m6W5JyiQPTw+tra4rmP4AKuWygIgcguqc3IWFjyWNNm58rdjYSz6R7tWU8xnFMf2YiJjnB0AAABmA1NTTA2SJ/nEqzly+ZT8zG7royE8AwXEAAAAEgAAAAEwRAIgXe1ubp6QXgUS9Z24GfgwiZv79kdqFBAnupxmm2sjz/cCIDpIPkuaIG8ORF/hgPG1Q0HvwLxOK2UdOOuqg08z+bxoAAAAaQVTRVJHU3m6kt2ib84V4emvR9XP39Kgk+AAAAAAEgAAAAEwRQIhAIMxQ51OaaeOstE1NKGb8e8YEy794sESmJAQk5/Qr0BnAiApRyhuGSz3JQrBUtSvnu04FgpI9ZJA+pTHe0ubBaQtWgAAAGcDU0VSsZGJ+zbIFvPg8WBlBXsHt5CZj9wAAAASAAAAATBFAiEA8B2tr+Ho+0nHskdTmMLj1drT+mz+ljCDKo937huyxV0CIBSwIHdP8PMJ9+iC93tuau4CnCiAmVEpIkevH1ayLmDvAAAAZwNMU0PHfX4N17KgG5kOhm/rIdAx8UGMLgAAABIAAAABMEUCIQCyWIBwHUYwkwAJv7zN84Ky+pCCNQxW8nrvzOjbCR3O5AIgD9dhuVjrVlt1HTK3rX0dCYtG+kRrmPD73KaamX/YJRgAAABnBEtJQ0vZGmFi8UbvhZItmhXubrFKADRFhgAAABIAAAABMEQCIEE8PoUC4USqMixgBpmFVLduxE5T/vbSozX5gB5H/SIjAiBMXZ5RuJpx8hsc3BCGdKKaW5b50oWzsU8B0NZfi8m20wAAAGcDU0VU4G7adDW6dJsEc4DO1JEh3ekzNK4AAAAAAAAAATBFAiEA6Hv9dc8PP/HZLApdRZaKjIrW9AFzH/t4EA5wEqqoFMcCICqWJp+eEwI+/1afg54fdXVqZOa2azhcwJKl9MSiN9wYAAAAagZTRVRIRVJ4sDmSHoTnJuty57EhK7NVBMZFygAAABIAAAABMEUCIQCW1mIu7h+I3orMJukiQVXoV9rRp4hYWiWlYGSVWe4OcQIgbS8d7GdHvzdUQbD4khLHUc4xVSVmAO2sIlyN0j5f2TgAAABnA1NFVq9Q+L7B2+wBO3Al20RNoBnC9dSIAAAAEgAAAAEwRQIhAN32YlfayOHE4v4vtbTL0/jWmt6eS5Uk6LFfOFQ6uz05AiA+c9NFO2UaqkCKbZgNU0tTZzZEwodu7vsBUyxRLz9fwAAAAGgEU0VWXw8Ta/zmGT6Mzo7i8yEWoUIliBWuAAAAEgAAAAEwRQIhAJSp0mILPF9IF3+r0SCOzBajZu/I30y20MFPgk6QPQqZAiA0Bu2NsG1Q8kuWRG/jMJ/RslYDGbqQNk5ng/msk0UIhwAAAGgEU0VYWZj16bfw4zlWwEQ+gb9964tbHtVFAAAAEgAAAAEwRQIhAOVINKcra+BJ7DVB/+r2i1ttwXGEBejO+4pe9UmFbO4hAiBg00pu99CMg+ekaA5RTGIjS44lQX/Tgml/104QsTtDiwAAAGgEU0ZDUIts2lzFGMkE6IRPRF4afH0tsP8WAAAAEgAAAAEwRQIhAOSw7jLxktLFuEha63bPeFHHWMf1GTPF8NObQsiF5KR8AiBYWDdtYiIXvWx3/ucp43teSaK46ybqtbKVOF/X+5SVBwAAAGcEU0cyMJGndpr895ajyP/4ee2AsQ3XbTzNAAAAEgAAAAEwRAIgefPSsPD+y7G6E3CYZZlOsB/NA3KrABYohyieyyuvJYgCIBs0l1zKTfgc5Js4G4Q8F2pm/P8Dwj8Kko5Ujt7lmqUYAAAAZgNTR0JLTrXETVC/1EEkaIxnVGM/fiWLAQAAAAgAAAABMEQCIG4J63PD6W+J122WJr20jrvsWdxIh/fr0qRuC39YBJ9FAiBeWAF25bzpeibXv6N4YtKfVcdugkHLYelfJLMIxlkjYAAAAGcEU0dFTKHMwWb68OmYs+MyJaGgMBschhGdAAAAEgAAAAEwRAIgSuRDfXELpgFBmLCsHQglZHKl86oWn/3xBvc6/z30AhACIHADU+qpNHQq0uWer8nMboxSVCrhMriIMBRgu/Y/Klx5AAAAZwNTR1AzxiOiuq/rjRXfrzzkQJXv7IPXLAAAABIAAAABMEUCIQCRwewei/vhAhX7KBiOLv+YBFODraejWGaW0MpC58pxdQIgcNFN4ngZ9P/n1wjiSa2PXyLL3OBAprAX4TwphTAxKuYAAABnBEtPQkXLToyv7amV2lzt/aUgW9VmShK4SAAAABIAAAABMEQCIGOzGuPo2+HZtM6EBq2mCkzhVH3s3wqtdx2SW0PYyuBnAiBo7kaqJvNqGX+QzxLm29rxjZUKVn7Z2ywRMknr1gSTYwAAAGcDU0hEioIhYoNh+iUpSoOhct1PATMgezcAAAASAAAAATBFAiEAl6AnDBDgsHhQo12Aj1L6lYzVVihlRKJlGZBRiWeaZ4wCIBItCj7eGSJ6170ZOUf++WblWBx/oHC5lsE0rSTom37UAAAAZwNTQkO6WEEQnsOOWLYYTAq2W6Wak1X/4gAAAAgAAAABMEUCIQCy7ZGL0+z+ZnH3EcCWxe6P5d8boOvx5Q+d4Cr7qeBqwQIgV7saBT0Fp3IZs+FMobPio+nNF6yQSP7yAD9HUuPD//MAAABnBERPV1NmGrDtaAAEkdmMeWFGvPKMINfFWQAAABIAAAABMEQCIFthJeaSX+OisY0kV9540uPJcieZhbDIvo7L8UO3B/cXAiBHJpXo3GTxLEYgEKTxZaK/yQvo9mIQyzR5RUDR2E7PwAAAAGYDSEFLk6cXTa/THRNADNn6AfTltbqgDTkAAAASAAAAATBEAiBbqlzhiAe0SATLZw8A/uyAmNbHmEy4J/aedBBCglt/egIgWpfzscWpiYSAtWXUMLDH4T1Giz4yFQyyAvWImkXdKfcAAABoBVNIQUtFYAb8KoSf7auoMwzjb1Ez3gH5YYkAAAASAAAAATBEAiAlbHDDehp1O4rcvVyRr0u9LmycTcgYBYgnCuW1H+PXWwIgQ8lHIL3wLXQgwwggAZGzfryTn7Oj3M1UMEt0WvMJRIEAAABoBVNIQVJEvr2rbaBGvEn/u2H717MxV+snDQUAAAASAAAAATBEAiBGZBn+PFXXtyLwR210JTX5fLAPDC0JAB2A/bYgsUSW4AIgbSC51Hv3QGYiVH4E+CGUafl+ADbYraxD7+G+dA765D0AAABlAlNTu/+GLZBuNI6ZRr+yEy7LFX2j1LQAAAASAAAAATBEAiAYXg5TOeV/iZSrKQTGZV4JoiEcg/ChyKY20EBzOyWgBQIgOaoD39P5+385IobmHC1OogZokjWE9rlcc4jMyRvPCcsAAABnA1NIRFhFzQIFtdQ69pVBKnnPfBrt2wYPAAAAEgAAAAEwRQIhAPYyQ2UPiVuEJMuQeMGLLCx8iZRTjB9JV4LD/W2WWpqfAiBs01zL7fJ6Te1ir3OkakVjNot2yIbOXQCRM0VjZWXuaQAAAGcDWEFUAciFcFcya49k3LXLptgC3NEylG4AAAASAAAAATBFAiEAwr8b+Lb+4sHkAj2HRaBBdYzvIVdmoIhjPZ6fKoJJJzQCIEJznwjp8PHJ5H/0ZXMmMMh1C5l4unMFXAAuljYqo55eAAAAZgNTR1SEgQvPCHRNWGK4GB8S0Xv9V9OweAAAABIAAAABMEQCIFpTa/YhiatubMY+O6H0w06V98XGgF761ijHfxRbc+iXAiBpy0Qc4IKfM9gYuIA6AGBlqQTYdjZIr8m/Wzu4LwwH7gAAAGcDU0hS2Y91saMmHaue7UlWyT8zdJAnqWQAAAACAAAAATBFAiEAiBZtU9PdNdVLgkwUNfObgz/+tWHqNUdrn4lAErCbYdACIBAXtPtn2D302Pk370ktyB84OgZv0qbxhaMeaTsaWLJrAAAAZgNTSFLuX+JEQG812bTdtIimTVFFZjC+/AAAAAIAAAABMEQCIHURgVdwq93KRAVgbqZU6T9KFyKSaPLyUoKsFN/mbJ1MAiAr454dgc0BkGm+tVRINBDdlcyVaDujGIG/5OXm8RFl8wAAAGoGJFNoYXJpLfSIuKQnC6xcLOX/RnoMX9KqSdYAAAAJAAAAATBFAiEA/WxzGs0v7Yw+utuWgDOUgV8yg68rv041dKcjg9D0SQ0CIA73l9mru1pZ3rgrP+ZwJb9oPMpij1fFYcDYAHKmxwvmAAAAZQFTlrC/k52UYAlcFSUfcf2hHkHcvdsAAAASAAAAATBFAiEA2/jNGGyff7+qRd250dTskhUL1fjhUbmIW6ltnZUCA5sCIASwadYkn+wieuigoxiSUW27Zsj+4SaBBeQkzarTlCCsAAAAZwNTSFDvJGMJk2CghfHxCwdu1y72JUl6BgAAABIAAAABMEUCIQDKBRdgbRssYGA+HthtER3fQc7yMREufbyHDeXsZdYkvwIgJhiHfflPMVf0IHBKFYBMh7xZhoh3E3gtZNT+kdD40NUAAABnBFNIRUSb7c1HA1HLrf/zvTQAhWVbsmD9sgAAAAkAAAABMEQCIEly/7d7zgZDfefLuxVTSVHHwqqhgAEhDePqsbtBiS2vAiAmOXBZLi9jf6NC6DZgWwDX5qLGQX5p/gWY3zbBv+CJvAAAAGgFU0hJTlVxvv9VM91MCke3OdpQxWot0oYz+gAAABIAAAABMEQCIFSm7FI9QpFqcKPNde622kY+NpLSJj2TYIUBnJ0sgJ9MAiAp/CIV+3tYSzYVWf1qi/4rCAkDSTvFbP6ihcFplYbjSQAAAGgFU0hFTkci7zdT42WOgdWg0Iic4HgXj+ZllQAAABIAAAABMEQCIDT209PigrQBFQghaSPefKPaPzRfiWETyGwmeHRa5mzxAiAQDkHXTQENabuTo1p2z7mLL0BJzsrTaUlqbgGOLrwTOgAAAG0JU0hPQ08xMjc4MiCA2uZ1LuAvL7iFC9SnW588E3EAAAAJAAAAATBFAiEA/U7PFreolgDnDFCRkOVcyIOx9WQe9sAjRXvQB3aPpH4CID6FnwCmMoSxxQXOwbuA9puYLvswrq4ne9ip6OHlcX2nAAAAaQZOaW1idXNkUDXQCRgrSA/lVNKSZmQQXWLDCQAAAAkAAAABMEQCIDdWh5l2g4t0eVDm2CRT935jFPjtWy3s750rpKknZcSFAiBuvwTYOrdUWDAyaZdb3/ah/0EGGWXPj5C3YmKjrrNFIgAAAGoGU0hJQkNPxcQ62B5sduqh8t2Sy2oR/2ttCeoAAAAJAAAAATBFAiEAl42CnJHSPZYOlxinHEbIn5A8pFXdFArciU8IcedZjscCIAnj7B9OiDDkZiCN/uBlW287CauztPvPV5eGaC5rC8jnAAAAZwRTSElCla1hsKFQ15IZ3PZOHmzAHwtkxM4AAAASAAAAATBEAiBih5B2z8AdG4eyYwkgDEsVBqRTExjCtmz8tMtvjH+SyAIgJCCklj7nJn56RUOO/WEMD83RTWVfwPMfY8qV8nYtBJEAAABqBlNISUJBTHfznGHdrBIcobJP3qmE+rc0/c6PAAAACQAAAAEwRQIhAMjLoodScHMlXWQQc95ah/wskNdSST6tw52T5tlTy1IbAiAikP/LLNIyaCxQ1ERCrXT7COCtRldYHe4cH9U9urHeqAAAAGcDUU9Npx0FiOr0fxKxPPjsdQQw0h3wSXQAAAASAAAAATBFAiEAwNmMm0mV57C9v5sRXPLX0Qo1Bg8s4O2DVwqf6SGVo3ECIGmKS8tVdkl0vedofYtYJVn4Rk9eWtTwX5AvXK7L/0AAAAAAbQlTSElCUkFNRU6y4gUCx1k2dFCbg4TtkkCgOGn68wAAAAkAAAABMEUCIQD+t7I2iBN1sqXHtrsibezzKgEe4YLufYyG9OIFS4ASEAIgWx+U7+0zBHsMnydUXZja3esBGXnvXL0IoXYRYOCGuQwAAABpBVNTV0lNaTbx3NjC46aUaTEaEwhYF0+fChUAAAAJAAAAATBFAiEA4M6dGWjNjrd8M+/5lMWTXvc30IAjL3Ys9haUtHshJtACIANAhVAjV26q2Aorar0bvc8oPydy2ql4Q5uiZCKjmG4+AAAAawhTaGliRG9nZWrbLiaN4qoav2V45KgRm5YOApKPAAAACQAAAAEwRAIgYLDEAqbro7Fy26vV6gMVbs0i2gPL2Px+E19j7IZfivsCICaPUfDp/zbdR+eXNPQDf0ECF2JE1te5gsz46oC8XSixAAAAbAhTSElCQUtFTqTPKv07Fll1r/+/fkh83UDIlKtrAAAAAAAAAAEwRQIhAL2+zY/wZn/Rbc8KlLcBr4m5KCuw/1P5c3GV/I9qsobkAiAREcaSfYyzsm2c7I1evP06ewRglu3zr6GzV5obNQ8ONQAAAGkFU0xJTks95xSMQeOzIz8zEOeU9o2OcMpprwAAAAkAAAABMEUCIQDO5V+Btm34LqKknZZVVBp3zv7rxBjbJ6g0BgCH7vY/rAIgMjcYZNbCxNqknRAsQCcc7MaWfdZ3B8fBF6gvV2pBfmgAAABnBFNNQViPoCXoNC6tEDfSlUuVMz/yv1cWKwAAAAkAAAABMEQCIH9XgrXFJZETEX1lFotVP7jDK5gsrGkM2MTCDKdAAIYwAiAGv66SZbtpgpUKLyMkFWn+hW1sKbD0yd3We8qZdF2bSgAAAGoHU0hJQkFQRZXMjZLzOxYLZAZStCWjxkJ1C77LAAAAEgAAAAEwRAIgZT4ZPrXGeg+n8EVhvCzFezuHRTQHN5t1HRnZXOpAY1sCICQ5LNqu9Do0bEnBsmtiz+YHjbJOp45ax3wHnB+qJ9xiAAAAaQVWRVJTRXrg1C8jwzM43hW/qJx0BcBo2dwKAAAAEgAAAAEwRQIhAINcsU8Sj3zqAK06wU5Zcq5ePTz8DHC9SQTy+2cKB3NzAiA1LxFlqxVumGi80atHI7AiAdH+dCxSKZnJWjDU/B1AeQAAAGsIU0hJQkVSVVMt+sYyfc6fiOMf9G3hMEnspaffywAAAAkAAAABMEQCIDvk8KuZ1uiuSAEayZexR5MTXEOWbpeQ8Z24LIlKBeHrAiBJVjbcidal7eOHtJv26navMcla0z/sn8A/8B1+DkELswAAAGkGU0hJQkdGUFqEoD44IzGhvkh7YyzzV3SLZdYAAAASAAAAATBEAiAXW+9O5r2/vOVzIxVHMZ7JSGC0eUfS80Gv184McYaYRAIgAdPiHxYvgCKvYx5MvNZ9yL/2yFmGitvgkUAjO7mA93cAAABsCVNoaWJtZXJpY0QCOMwHGGrepmU6Loy5okc3YVYJAAAACQAAAAEwRAIgJG0HydVSaQJIlfoyU1A84Ic4PHt1bq6Ppt1Y5VM5EMICIHm2o0M9YWr/Q+8mAf8YmYVV8TxA0Qj86yruoSK2cBcsAAAAagZTSElOSkF9rCWxpmXhxw8l8fw32IyZJ0mE7QAAAAkAAAABMEUCIQC0RMOuYeIK9f0xhKelaDqAJzZB+0vAcVRn6Nx3kAE8YQIgWndOkr7oIqNLa9L3kWLbKt3AE16Xz213v6LkiX0M8uUAAABqB1NISU5KQV+rFn6Bbk12CJEZkA6UG+/fo31rMgAAAAkAAAABMEQCIHejWmTUuH8C9Cikdn1L7jBxMwlSue+fVJrPG6SkVrr5AiB/6y4+ZHG3BzrM0cPSzwZ62jvBi7YyKX53M7+z9FUBegAAAGgFU0hJRE8XPlUr+Xu9ULRVUUrFKZHvY5unAwAAAAkAAAABMEQCIGYq+fQHnWPSUHxh6G4MEz9gSBTP5fqVNhi1oLUNVFT8AiBDp5+LM0S7r8bfB4t5dP4kuWyeb73OE4mhTQg05yvo2QAAAGgEU0hMRNSe+nvA0znXT0h5WcVz1Ri6P4Q3AAAAEgAAAAEwRQIhALPWbqiLUZ/EozkKHvI9uAdRXJykUEqvpvM5x4slHGqqAiBlHEqRSfZiDPl+1egtnWLu3JwYf4RU9XLThb+W0oXavgAAAGYDU0xEHvan4slm+3xUA+/v3jgzixqVoIQAAAASAAAAATBEAiBJ79yv/RrH4q01fOuj2QyFbp5j0/5JmCqJ7bl1sjsR3wIgbF9Du3YWmlZZxypbV40k+U/4cHFUHIz8kGKS7s2BOhQAAABoBFNISUiEH7FIhjRUo7NXD1FUFHWb6QkUZQAAABIAAAABMEUCIQCjTJYUxkBslQj/q4qPLcbzgmN3t82/k1OdGF0sNNXfwQIgR0+kI9kRyf2IzqCzK3yVtqcwcUCaWgTFJtHOlE72/YwAAABoBVNIT0tL7Avw6TTQktMedp6MlyL/uqWC2zsAAAAJAAAAATBEAiA234os8wP4CE65GICP/VQ41J6tPq8z//svbPZdE7vQigIgV2nswuvEtz2sbWzZL1hUL2nH5JXuU+pu1ocDNU4yCO0AAABoBFBvU0hoWupPAuOeWlu39xF+iNsRUfODZAAAABIAAAABMEUCIQCzxkwOb1akdi5JlowGKMQuVnjEFX7NLKaF8lN9P/DRlgIgXLUMCc4QJPgOhj0+AvyeR9TxmUoLbaR+72aKNIx9noUAAABnA1NISSQ8rLTV/2gUrWaMPiJSRu+ohq1aAAAAEgAAAAEwRQIhAJ73ONUDZf3bM5qFBW7nFFjX+6SPX3wnERFxxlkrdrdkAiBe8wgRd3yRHWHCihF3FBq4a32MGvTL1zzQd/uuWxIlVgAAAGsIU2hpbkNoYW66qa+Kg1AKxBN8VVueWMyz4fImnQAAAAkAAAABMEQCIDnoNdyguujUxLXul6hsUbNul+AudT6Qf94IjRWll2KmAiAMw344NIzHcfKfE6o2hoIM1N7/YcrYhHu7BCmsqPahDgAAAGgFU0NPSU4/XfL5DfZ+EJdPvLFynADT+HwOtAAAAAYAAAABMEQCIDRJzUX+vtERwYoFmj73tVhrekqPfYo3TXgmB/Di3/vEAiBD/rfKJ2lU5s69X0AiXKqoBEuCvhY764ZL4VR3HLJVMQAAAGkFU0hJTlWhq0J0UfGd90RaIt6nBzgA6jtofwAAAAkAAAABMEUCIQDSYLkPPYHSt0F/gKjomSyGSTOBfgpHWcfCDhdsFjhqbQIgLp6OQ4/lKQ6uyadek9S960rBOVO18XC8ZB+RKiKUuLQAAABoBFNISVDiWwu6AdxWMDEraiGSfleAYaE/VQAAABIAAAABMEUCIQCJFDK5rFCUWFNUDxgDxn1o5UATATkmijQSz0l0oMsaMQIgJTMXvP2A1Q3f+iwHHbjkJC43z2E/k61YeqhzcdMiFggAAABnBFNIUFATseawNqwKFJX4djE/kqBwbMEIcQAAABIAAAABMEQCIGK0AKurBmD6lxV31oT6U4SczvJA54Ntgu+qZhK9KW0MAiAZUYPCHjfr4J3BtMJj5gEvwHM2orBx4HEHUVjKg2Ve0AAAAG0JU2hpcnlvSW51Hi8VMCuQ7d5pZZNge2vURLZOjwIAAAAJAAAAATBFAiEAhHv84JmIhA+5TKjcW803shm8IlQDP5nt3YvnVMD4V14CIBkzjvFIKqgIWyUgK3Ibz8PaVgeA0kZxY984bJ2EPh30AAAAZwRTSElU7y6ZZuthu0lOU3XV341nt9uKeA0AAAAAAAAAATBEAiAZN/PPMGowGsfHnyZJHDlRv1IbBD9nq+pdjWkRrJHH/wIgDLhksh6uLxC4xayO+drZ7Q+8tCbFZtT9CjShwcJ/ZS8AAABqBlNVWlVNRQtFIngiPTlU9KwFCUnXmY43Pn5DAAAAEgAAAAEwRQIhALZloYv87bKJhImE7sHtVHmHkXWsmDKq2qRzgIRQE5YbAiAcgHmWNiZ0urtEtlcAIsyBZwKhfsFuPWFmj2Q86ezLwQAAAGgEU0hJVKp/scjObxjU/Uqrthohk9TUQcVPAAAABgAAAAEwRQIhAKD2POZcDNWivVb3iw8hmIFwEQ2IZmcJbGZzAEfuJBdtAiBnRU4oo7QEKdJQ6ANS+/P3dw03+c9+niVURlFB/mTJMAAAAGcEU0hPRQ/We0zrm2B+8gaQTsc0WcSIATLJAAAAEgAAAAEwRAIge3D/7zwGNQdrM8G5sCJQFJ3+uRK7RHDsaeu2FkNBklECIHlyvQB7tVML9vT7nznfuBFmC5jtg4wJ+qZgWV/eRS/aAAAAaARTSE9QZLeDJddJXW1L6S8jT6PzuNiWS4sAAAASAAAAATBFAiEA2L/nzRLRlfVmBUHtvCGt0080OyRtZMOaCm+aA0BKlHACIAkxq4mXW+MSI1QI0dXnVsXpLFBEPPQYx98PF6zH8959AAAAZgNTUEmbAt05CmA63VwH+f2Rdbfavo1jtwAAABIAAAABMEQCIA/iiVY/5leKqr4wsn7cLBT2kSTCqJe+eapn00kxwOQ5AiBew5Si+lq8mGkbjK/i+xluBbeuwGM3WPl+hqpoLNBY/AAAAGcDU0hPzAAUzLOfboaxvg8XhZp4O2cici8AAAASAAAAATBFAiEAojmW2TgxlOmDQrWKcJQf4IyT4ne1P6deQSvmjZANZ5UCIASkwOTH7wRVdnM4nPV5N6dtEcukW/UjuzOr5rMSl2V/AAAAZwRIQU5ESMGy8++oX7r7KrlRv0uoYKCM27cAAAAAAAAAATBEAiA8F9IxXlV6/T1L2YNY9UlyLFzbWIzvqRd6r8wuH+aTewIgTgXaPYmLUgjyOpf5V7ZqeXVwv0XfwQbxmKRvs35fckQAAABpBlNIUklNUDjEEC0RiTNRztfvGH/PQ9M+savmAAAAEgAAAAEwRAIgQnqnosqCm48f3HRSNx/AsX/AUTj+1o6/7NCHBgy3CPgCIF0tjCOA4/1M9PwwXjirGsLjCAzX7AFDG+aD8csiYU9gAAAAagZTSFJPT03tBDnqz0xJZa5GE9d6XC7+EOXxgwAAABIAAAABMEUCIQDrNQWaJ5AjnXtEk+N8bKsph/1re0sQoqsfqSORYQYomQIgUTj2dx47Dl+BaXU5A7mQ5A8Pl8aNtvVJBr/UZ4uQV8wAAABoBFNIRkyMnQ6dJ/sVqWzYrXFJKVAvTxmVvwAAABIAAAABMEUCIQCfGs+r8m4o3LhoufRx26vZNJNA1Gvq8TTff0Ieut7EPwIgY7geeQuPfyJl7/RLwdAMCIat4JbtyM4+lnF8fJE8x9MAAABnBFNIVUY6n/9FPVDUrFKmiQZHuCM3m6NrngAAABIAAAABMEQCICfy7oXKYhKjIfGbD5RzpP/TAnI3J0a0YiAjcxgfmpvDAiAhvAaaw+kT6SdhN2RBLRe7xKI9bV1euXFI/fsvxniMKwAAAGcEU0hGVMuj6uf1XQ9COvQ8yF5nqw+/h7YcAAAAEgAAAAEwRAIgWxr8ujYZSYFnLZ+ZP+X7VGcP3hlQDb0HN7AF1z61djACIF7437YV7ktROYjCcVecVIJdLCiGlk4+UecO4O/lPhNvAAAAaARTSEZUsXyIvaB9KLODjgwd5qMOr7z1LYUAAAASAAAAATBFAiEAqerkm1gtkcworX+L7irfDmdSIiXct5o4oHHf9Q1RLMMCIB8WxBo1kbojtrO+caLli3WT7vX7W0VYpHyjO1dP2K4qAAAAZwRTaTE0i5jfTf9CnmTppW/G7r4jgMbDQJwAAAAIAAAAATBEAiAxCZ7XWMCMggjogIG1r9T0o4AzlPvIRIXcyLQPpHiy2AIgJcdemng6W6CX24WCEq3oyzOOx/uI4DANshjLOUtjcu0AAABmA1NDQ3T9UamKSh7L74zEO+gBzOYw4mC9AAAAEgAAAAEwRAIgZJ1DRXaFtYSKYgEw3jHnVkgDddhZPIyl3EvRPj7rVzcCIHbXj5KUwWrEts9jRM/ZboL9vPesd5er06DdbopMx8Q+AAAAaARzQlRDuOEDtgozWXE26pUR9GttvrZDo6UAAAASAAAAATBFAiEA05QYasRQ4lHO45GRjI6EByonDA7JAxdydgbKsQTvZkYCIEw1diUahnRAvfndJsy6bawZ1zGMiEvJfgaYCIoqnOBrAAAAagZTSFVTS1kjbVMUj4NwbD1nAGSAlXc4X5I6dQAAAAkAAAABMEUCIQDv7aVcmnmrblR32C8votaucnEDH4sxp6Y4atHgSYtOeQIgKhLS2Aiy3aL3o9MD5vlhcdV4hWBdYKcvEXQoow1sH98AAABmA1NJRO9MpklnVq5HKQToCYiolgD+1cxVAAAAAAAAAAEwRAIgW27HGP9c5GvGk/+Ykl+SkSAjwOg9aauE+ZCKZz84i2gCIARptAUZz0b7fREDLnY12vHGGgeiLx1CarBHfM12ObHmAAAAZgNYQUk154s5guh+z9Wz8yZbYBwEbNviMgAAABIAAAABMEQCIGRBWtFB+8aTSPY/ZLLsl4ocq/QhyS4pBtKyehFv7sxdAiApt5Di9oMkKfC7uHkjhr8exSOyGqBx0UcmzUbqAWISBwAAAGkFU0lEVVNUkCCpy4RSINZtPpxtn572HJgRAgAAABIAAAABMEUCIQDDeEYILRDZfywGwCERhg4G0ol9OQilHLcSo7pakCqB+wIgV/ez0yY2m43xberwaoMTRhLO5hS6PB9+3Tx1thWbhnQAAABqB3dTSUVOTkGbAObo14exN1brkZeGyXRQVNtk+QAAABIAAAABMEQCIFRBJHcPZIkBWmyx1quIviB0T6XM/epe2RoT+hJFiZ2tAiAE9fcgiea+uhG76aa34/FlUE+QSP/lClwnZwYnT7zNTgAAAGgEU0lGVIoYfVKF0xa8vJra/Ai1HXCg2OAAAAAAAAAAAAEwRQIhAJfDuNajzH2RjM6kS1oMt2YZqOVYmxKWdQ3CcyM/DKJ6AiATByLaJ6dkC1tAb8FDeptTp5UoutEaaMyC7DHfG+RmHQAAAGcDU0lHaIihbql5LBWk3PL2xiPQVcjt55IAAAASAAAAATBFAiEA3CVznouGy74ho4ztXSVcXLyGTkrzdWBUNrot4dUfzdACIFKPorXCTr2j8a0MA/L1vIg0OwRPhlbS8yhBLOeMAnkBAAAAZwNTR06yE1q5aVp2eN1ZCxqZbLDze8sHGAAAAAkAAAABMEUCIQCwb2358Iy5GHC1/ULqJWPEeS33elpMKBbcTstpcr3QBgIgaiIEx4iBDYwi4OiwvVOMnBFKvPxD0l/vBcEvfRoZtW4AAABoBFNBVEE+u0pOka2DvlH41ZZTOBiyRvS+4QAAABIAAAABMEUCIQCB3pJzf+nIe7njzbAZgDl5Fo7+zc1UH5BMHqMkyQ0VNQIgH94Xbq1eK57la8YWXw33DI0ot5qgFLMDgzVUOeQcb2cAAABoBFNLTzFJlOgYl6kgwP6iNeuM7e7Txv/2lwAAABIAAAABMEUCIQCaFaw7TI4mxkv1pT7AKE6CRcqVM+CG4hhf3tNr3uOGdwIgd169RyxJsXTuKxEdr1/jOkwr2jRccw+nn8nN95887x0AAABoBFNOVFIoWQIe5/LLEBYuZ/M68tInZLMa/wAAAAQAAAABMEUCIQDlxJul30zp3VJG5dh2yn8FIBggyhWeEicFxrfii+wzhQIgUXZs7hbgflcqAw2WVJey89j6DAuvjsI1mdZ2GmkPi3YAAABnBFNJTEtMHghdjC0qg3eDTQ17OPEsxbhomAAAABIAAAABMEQCIAIOQB646s41HrelveYrV3wRX876RAoio1xYnIJK9NS5AiBfZaPriOOueAaOAw82ElJFe+1RBAHgMYMzOVRM5+rzawAAAGgEU2lsb2+AMQyn8sZUaR0TgxSfoaV9irH4AAAAEgAAAAEwRQIhAPwXzwXCRPE5Ja6kRlOuyTaX3XZJSppvyE2nl/Xqv79dAiBRS+vE49awinLkVVufmkhsDiXd6CrQiY0hIfgLP8molgAAAGcDQUdThDya809phhj5DImOOWcniiYMjZoAAAAEAAAAATBFAiEAiEoVe8yneClex8vRdgPIm6C83QNcWaxNZgPKClsYZcYCIB/L5RhPk3rdu6LHYudYsa1yU3hquS3Uey7mwVmq64JyAAAAaARTTFZUZSWUCC+XOSoXA9gJhatXUIXzSk4AAAAIAAAAATBFAiEAxnvsdiVLxhnOeYM1izfaJHWQtf4japPuPcvLQvpfvC0CIBcK9JAWf2yG1qS2cqGLfTF+a2H1xAdwcz/+GmUJtmO/AAAAZwNTTFZMHElX0i2PNzrtVNCFOwkGZvb53gAAABIAAAABMEUCIQDvYeKROO2KHUvlvYfZvlnncwkAClkbJ/ru18IPC4lRXgIgKBLNv9ulh0X3aLhVVao0cvXld+v6Pq5o+fUeRTmMzeoAAABmA1NTVChjkWxuvbvwxvAvh7frR4UJKZhoAAAAEgAAAAEwRAIgEsVB3/J79jjcskiPGgcVWu1H4Mg3COSdKMnqsnwXKeMCIFVme4qNNMQloN+YQRqj+muJck0776S3DRuvlN5Nl5naAAAAaQVTSU1CQSVEF/e1Yyikj1VLFz3Ke92noqDSAAAAEgAAAAEwRQIhAMez6SnRQuKm+kxu3SU+SPu+WrGvWIPDKsQqDFmjZvIfAiAkYisOkVHsVO3pm1fY6nTmYeNTzaGlwSUWhetauHyYswAAAGgEU0lGSUr7CqybhilGg3skRFZripFNbQ2XAAAACQAAAAEwRQIhAPU6DkjFiPYj5C6L/uGkwduwM734n5MMx1ISJblxl3pHAiAGY6Gtbak1KLONshzE8tHKrikMYrRMXSHgilX66F5e+wAAAGYDT1NULE6PLXRhE9BpbOibNfDYv4jgrsoAAAASAAAAATBEAiBf2ODQccDldDwkyW5v1blrDNi00GHDrBLPtgO7Y9++HAIgKLuAo92O5HNA5Y0WR4P/iRYyQSIY1RX7i/KEpNIBEYoAAABmA1NCQey49Yjq9ajOnZZLCs7OXZVOEw4vAAAAEgAAAAEwRAIge+i00JWwH8CLpEzYgppMVAcwB01F6bWwwCEaTvlour0CIGbTiN4X+/dEAe5U+TN8rx0iqmUG99U0evtnNHmBNkpPAAAAZgNTUkMWWHz0PwRKugFl/6AKz0EmMRlOSwAAABIAAAABMEQCIEHa5yN8OkyPhDPrYB64kNIriuXkmuFFI8N2rSzvcyUvAiAUh1wsRnjS5L2Sz/jO9mUs6zDwQz04E8PJcXfIU0bPCwAAAGgEU0lORessDhGvIPscQcbnq+WtIU5Ic4UUAAAAEgAAAAEwRQIhAIP2gdAD557aPZVR70HscQ3hSutwy/+ojyRSScSX2oP2AiAzN4/dvweBrIIF24bLFXCEe80v8JuKKsrNP570C76rQQAAAGcDU05Hz9aui/E/Qt4UhnNR6v96ijufu+cAAAAIAAAAATBFAiEAyblc/kHBtVI04IoIe3jzWkfA3Jcrk8lLNsoIs0VvlsQCIDTKCrqBD6N+2nStP6Ns+eF7YBJEa4ZMT88YCGgO6PXUAAAAaAVTTkdMU67C6H4KI1Jm2cWtyd60suKbVNAJAAAAAAAAAAEwRAIgGzaa9sogkgsRcr2UzL17frfS6Y6i4FnRE8mpq+TWz5YCIAjIsWj5cPYuV0gBlUaOpbq9QGyaeO9GL0ESiFMQ38jdAAAAaARTREFPmThk5Dyqf38SlTrW/rHRymNbh18AAAASAAAAATBFAiEAuKrC9eAGCjVWnDKB3+iuGaVLRVtDTKK60GIGKlt+Z40CIGLaIEAUSKWjH5LyfiQFZq/mJAcNxQETEvKCf89q7otEAAAAZwNBR0mOskMZOTcWZo12jc7Ck1aunP/ihQAAAAgAAAABMEUCIQCk0sVq5o4NJYz1H5X3wrgtxdayzsefeTe/fn9uSS/CDwIgd2zkiG2NNMvFfawANSlQ33cTAVYR5ocjDEqinKOxnowAAABoBEFHSVhbdTOBJ1m0XCtEwZ4yC6LNJoG1QgAAAAgAAAABMEUCIQCOytl6a/hh/DxwSqYFq/lC0hdSwg2ga9MqyTvPfEzaPAIgKqBiOBL1X/EfWsr5zIss3Snz65gMtvfBMHkpxpxl+qQAAABpBVNJTk9Dy6gWJ3jmo+umDhz3wBKzJzQL0F0AAAASAAAAATBFAiEAljCUp5dWU2vmEcM8CGaZp81fhi1mMf36yuYHrAhKm0YCIBxVQhhgb1Vo70Lykssqle1LI/cuLxMKxyj/Vvb+ezUZAAAAZgJTSdI6wnFIr2ovM5vYLQ48/zgLUJPeAAAAEgAAAAEwRQIhANf+i7Eb1eAzaVX3s8YIwieoONDCX5wVYdN2FjcrbeFBAiBfLTjLVqp2gCxC+FEbwKF40bUE7oQP/T0GAFwQrGE5hwAAAGYDU1JOaNV8mhw19j4sg+6OSaZOnXBSjSUAAAASAAAAATBEAiBj8Cq5izArqyymr0LUSpP8Ksm4XWPwdF6+qm4IbApTDAIgePCWXSA+hAC9SgD7S0q+l0oBbauU8ebIbJMEBFpjV0oAAABoBFNJQ1SU01kY9rANbP/p/glzw30C9OhU3gAAABIAAAABMEUCIQDYfLxVyN/s+wCAsdo9oS7AVLHtNTAJlPNs9F1hnhcTrwIgbBial5fgTeo+2AFbw/CG+0sXUB6CVqckmJQ+ZRpzlxcAAABmA1NLTADIOuzHkOikRT5d07C0s2gFAaenAAAAEgAAAAEwRAIgZYq1++NCBQUfaBJZecUkupKI3nMyPtQ5phOM1arGckkCIEkaE0rY4ClkmMIFD0hIwYc3n+lyRmxxt6oQbDPa+P96AAAAZgNTS0mZbcXfyBlAjdmM2SyadvZLBzjcPQAAABIAAAABMEQCIFONeuJ2Rdcotzpjt/WrWBYCD9FTs+jxjQmx0Gi/ZJpDAiBBhR+0kJn3d3V4pZrKTASV0nHu/ab8AektGqyPQ5ySLQAAAGgEU0tJTivcDUKZYBf84hSyFgelFdpBqeDFAAAABgAAAAEwRQIhAN/nXiaNMDOVZv7wJhSF7ywokWtJXEE/rAmPPiTsDQeFAiAxZYmYEaWnZraWNSTSbqsmMr2ob6HVeY11GHuRSVziFgAAAGcDU0tDD+FWQ28gOxFMbFYssaKoGqKAEJAAAAASAAAAATBFAiEAipovBVYD3nF/NNmCHrM6lCnq2U+WVc9W+uBUPgQfYVUCIDWO1SyOg3avHA4DGkA/HEeporRcFcvxG8rycBmD6EISAAAAZgNTS1JMOC+OCWFayG4IzlgmbMIn59TZEwAAAAYAAAABMEQCIDpAck/mVJLcTjNXWWpdieWZVJ0VjjWKcBQXP+6exJ31AiBsdxpQJvs2XN7DS+0H4p7eeJ0EBuULgo1sL/yDwnVkjwAAAGcEU0tSUG402NhHZNQPbXs5zVaf0Be/Uxd9AAAAEgAAAAEwRAIgBhjfy5Ztaid4UJRPKkjy8cLAhv0zXYtgC6YY+AVjLa4CIH3+9sSS1M4Wx+ELT5Nx+oTkJDX3V84eNInsmv39ych4AAAAZwRTS1JQ/f6LerbPG9Hj0UU470BoYpbEIFIAAAASAAAAATBEAiBoXwd+c3PRMHEFvMxZjRrjGe6ONOZPLXeiU34ysNPpeAIgJtFnfacrIJisyJ+gDD3Cmv2Ey0B1j1II2c/7Vl/3zXcAAABnBFNLUlAySkjry7RuYZk5Me+dNfZpfNKQGwAAABIAAAABMEQCIF4zNDv5genCp9Ow2ivN3AMTKxHr3C5SqfMMIYXCc8bYAiBGYNLnKwfaLP92TcLN0MXVdCVjpwDxkuagGLSmxV4RIwAAAGYDU0tNBI/km+Mq38ntaMN9MrXsnfF7NgMAAAASAAAAATBEAiA9gKvy8+rMiBhzLgMfHDGSKBf+g7+2XgDMNVdOLELxIwIgYyCqpsG+tuq909t9L9ZTqR5frrzTcLktamQ3Lwoc73MAAABmA1NLTdmbin+kjiXM6DuBgSIgo+A79k5fAAAAEgAAAAEwRAIgOzwWt0y49oAEb8Ib/mk++qtOLchX8cWQP2lWHjhuEVwCIE5abSV6noyZx54om3VP5GPNQdvGveKraotGmfCwKvteAAAAaQVTS1VMTLzGbtKrSR6a57+DhlQfsXQh+p01AAAABAAAAAEwRQIhAPCuColHwM0mJ8P0nHK6Fv2CwbWVrgSvUcNu7olHNkbhAiADo5yGIip37o2WqDOI2ugssi5ggqKJujgJXDsq4Jcy4QAAAGgFQ0FORFlQ6zRvwpqA2XVjpQFGw/z5QjtVOAAAABIAAAABMEQCICGtlYDGi48mL19PIG6CXLLw/4kePJD1gd82DPwkKgVgAiBcn0p5lA3lX/BgO/c7EyXy71QsOt5IY6/1Rg6J+0FsJAAAAGcEU0tZTXKXhiuWcP8BUZJ5nMhJcmyIvx13AAAAEgAAAAEwRAIgEOAL6HFv3VlV6zxMa6J+cxag2ib0DRo6lJn0OElG1yoCIH8qNUKI+iDNpi6/NEXSu3XBiYLI9KgjW+r2arsHQboiAAAAaQZTS1lSSU0mEPC/wh7zif5NA8+33prB5smdbgAAABIAAAABMEQCICrB2Co71GcqRfJXV1rgDbHQNF109WKjKeM5t9ZbOhNNAiAn+1ezPCIgqVI5xlNcXp+jMaIJ+o4Mxi7E5unTmZ86AwAAAGgFU0xBU0h1XoP1YDNea7jkXkRGDsSvWY4kyQAAABIAAAABMEQCIDqixeTsmjuBXB8WvdWD8sJ70phjK526bwY5PhMrKffhAiAnkrpbwZjHnpzb7ViodGpOpq7iRy+IMTSytMV12VuV2wAAAGsHU0xFRVBFRYDNc7rbQG6ja5p83rjfBq76fhLZAAAAEgAAAAEwRQIhAK056qvnbakForAkFVLsBvaASvmq7PRIZCgY3WdKHREUAiA6+g98m0jNycveOXOfYIJ946iPUN5D6ZOqGlZ8B4lpSgAAAGcDU0xU6fPLAinrjQqvA+yEiDlQE07SDdwAAAAIAAAAATBFAiEA8R4KJzdo9Ad8t3W+PKvKtJghbIuWDOGn0eVE1jb3SKYCIGP8L/nuaWnvgOl0Xcehw4Z4E8iaAaxJdZEuK47SuAZ/AAAAZgNTTFA3I2zQWzTMedNxWvI4PpbddEPc8QAAAAAAAAABMEQCIH60yOQWQgNNHZ71BGi//hrYWuqG67SQmzFhccVVEJUYAiBxigqQin//G3eiAADHUaZJkYUGqLsNC21a1Z6rxaLUxgAAAGgEU0FUVN9JyfWZoKkEnZfP800MMORomHOJAAAAEgAAAAEwRQIhAPQ2dYYsT/kIyjFnEHB+WfkKGEDAjpFBSbj0wugx8dWpAiBolHKmGUR2o/bCCBr6YLMCpwlna4fYgThmu6qagLmv0wAAAGgFU01BUlRvbetdsMSZSoKDoB1s/usn/Du+nAAAAAAAAAABMEQCIEQYzH+vPAq8/WebgwnbQyFVPwnjIyu0Hpzf4vxJEoHmAiAPWGbmtwT+uMHUnYvHiE/MCFGyCsy7HJPvgGeq465dWQAAAGcDU01Dtu2oJZeAjJaWnCGoi/bHSbRBxEoAAAASAAAAATBFAiEAzYv1CjFHuKJRl9AeXjWWJrlZJlMY4nVeT6bwzlQB8U4CIHMr9O0nluzE1ys3Dwh9HoAi4KYBYmpAA1ttRhESCSweAAAAZgNTTVQtz6rBHJ7r2MbEIQP+nipq0jevJwAAABIAAAABMEQCICEFySJ+8oOrRKMB6AJOvuHH6fsgaltcq2XNYXnZ//eAAiBODD0zeTT26TXv3fO6zgQg4zhBggZnkmnPHfBhcELZ6gAAAGgFVFJBREVA5FiQ3/eefVM3l9lk5kosASH0mgAAAAcAAAABMEQCICHJqy4LbLnhOjPmcp60Uw4Tq0USwz2Z38MFHOXuhP75AiBW/IpdjgSZ5Mu0op0N8X5lN3uFd2qefuF56o7wHPECxgAAAGgEU1RONVUVDoN4uB+TDzENS2KrfhJSwwubAAAAEgAAAAEwRQIhAIAuIACdlEYZsnTM/8p7KzLwAtwvf/s3Zh0DO5DjdHYyAiAhdGSCSvCavj4PO7S2BY0pdclH16f/b0Wl8cwpsrSy6gAAAG0JU01BUlRDUkVEcunZA4zkhO6Yb+oYP42N+T+a2hMAAAASAAAAATBFAiEAhfB3/GfE6SKBW/80Z7+f/uFVcZhr0oMhGHcau1j7OloCIF/pN6wFqVMZFQKXF47arIlZwjb0xumoIS8k1ZG8/b+jAAAAaARTa2V5BqAaTVeUed1diE6/YaMXJ6PY1EIAAAAIAAAAATBFAiEAsw0ASq8Jo1iBp5vMRawr3PTRdmw7EgEa71ASxen6jm8CIDFnoCZpkUv/bUX4gin7cY1+EL8SK0+O5YqNEWeFiiewAAAAZgNTTFR6X/KV3II51cI3Tk2JQgKq8CnKtgAAAAMAAAABMEQCIC6OPAtSayPkoWthc9q/JfRXFn5GuMuagoGRLa5JmcMiAiBSfr/7nbxitoUpDj4r6b6OtOfhBvjWGNsZwnCLBZHIRwAAAGcDU01UVfk5hUMfyTBAd2h6NaG6ED3B4IEAAAASAAAAATBFAiEA+balE4Kglycx8ewdT2Gf5VYLp3PYWYTmB/FAQlrwhSkCIDyOrl5/DgnbPKHGUx4KeswQqeLOmFYbZmedyhZpBpR7AAAAZgNTTVQh8Vlm4HoQVUw2S5iOkdqwHTJ5SgAAABIAAAABMEQCIAm17X102OTVXWHzy5tPpSzXn/V2edBEjuCSeLTgmzqHAiAd0zMmBmDRDUL1TO84QdVIRoI2M2qhKkaEx4gU70f9uwAAAGcEUkxUWb6ZsJcJ/HU7Cbz1V6mS9mBdWZewAAAACAAAAAEwRAIgKXYrC63Yr9bR/jrO1X0Jl5BNovNceyLRIlnvjj6ZiH0CIDhHp2TXbkjvA35Rcl1gx6r3kPnFORxBm3m1yYq4D61fAAAAZwNTU1BiTVILqy5K2Dk1+lA/sTBhQ3ToUAAAAAQAAAABMEUCIQDmop0kEPlvgFDsjps26LwQvbU9RNRovyKZ2ivTYGgKPgIgJ/DvwD8a8gwQC+IU/BZykknahjI32jQf5avH6Iu9Z28AAABmA1NBVB8PRo7gOm2ZzYoJ3QcUlKg9wcDlAAAABAAAAAEwRAIgS6euF6QeWjvUcfEk2wM1gPl8B45za/3ckydi5H1NB2gCIB3cPLoLbkxacKAoEWIttVRZBkOTY2eMp73lhTdMsuwaAAAAZgNTRUN11mnFMUIwLIgm0WtWib/61Qp+GAAAABIAAAABMEQCIBuAublDpTsKXWbXXcfa2S6lAHXgLbmtebAEra4iQkEXAiB/go1hubDCiQadN89/C4g1uzONGmPPyLnjJECboo2/NQAAAGcEU01PTCIW6HPqQoLr73oCrFrqIgvmORp8AAAAEgAAAAEwRAIgFPUwXERm3ZiDImKk9GohX+tafdnwPRhyiIy3C7pGiywCIE2MeOPlsP1A8Fm8FieJcVO4/5oISRFo9FXQixoMwo54AAAAZgNTTFDMj6Il2AucfUL5bpVwFWxl1sqqJQAAAAAAAAABMEQCIF03+GG1KRTdY9RpCTvo8vmgpp00YfNPi+/bMj6jZzg5AiAdSKdvitXEimU+5V5DJP1kLEVBo/7DE6IDw6bYQIz9WwAAAGcEU01QTIv5LK0jL3Knxh60LpGF6NDqRw9rAAAAEgAAAAEwRAIgKOo19VsjdDtotKRkjLwkB1Eu36jVYZK2k7x2Gwqcp78CIBSimABFpq3rPvrw1+CZFk05b6rlYTSqqNIJIFvgnwj6AAAAaAVTTVNDVGaPffuMjXFoOfpdvqMX2HI+vmEQAAAAAAAAAAEwRAIgX5EHAvkzvnMMZooLbZtokvwr9YesGtNnyTJC8gDcwP8CIBLFxF1hA0utxsjTjR676cFSBjpbj/XJzcCqv6lfIlOHAAAAaARTTVRZv3duT8pmTXkcTuOnHicimQ4AMoMAAAASAAAAATBFAiEA9VxuDEFYLAJ8btdqi7PpsGY9JrYUJHMlJhdAi1nxFC8CID5fFahk9EAXiqtA4VK7igJmQkZKZ9SM9wjpg0U0PxAJAAAAZgNTTkP0E0FGry1RHdXqjNscSsiMV9YEBAAAABIAAAABMEQCIFoeW9Pddtw3ENqbNOon/RPuaiL341etii6z4INDjkV0AiAestJ0WryeErTsFexXoZxS41CwXshrHdiBh9X/Zw6J0AAAAGcEU05FVP8ZE4sDnZONtGvdoAZ9xLoTLsccAAAACAAAAAEwRAIgVToZBUfwVP37PSbwBLPRDKq7yot7J/mZykduVf6DuEwCIEUVijDE0AQoTDG7gI4PPf/Us1As63Ito87xZ+tPCmEAAAAAZgNTR1TEGZ+2/9swqClhS+ygMPkELxw5kgAAABIAAAABMEQCIEv0uth1faR6kCBCHMv+aYL+tX+PkN+YQqbH4IhV3Vb2AiBG1eAhuW3PHdU5hILjL4gVVrfUyYMDWk/svIuQxMe0yQAAAGgEU05JUET1iK7rjERHFDnRJws2A8ZqkmLxAAAAEgAAAAEwRQIhAKzfVyB2hmYM/8KFzr/TrvIrv/sAAZd7E5xresIrfiaPAiAXw5ausHBgidOu9p3RuV9rCjPrMa+npm8X5rMEuNU/rwAAAGcEU05NX5g/bWDbeeqMpOuZaMav+M+gSzxjAAAAEgAAAAEwRAIgAR351OlxEPlcc74Djut1BKMnzAiSDaa+/BlzIhi3Db4CIEITcrKD0Gq//NgRxOiY12kVqpE4gZN0n4jhDuP/FWNNAAAAaQVTTk9HRQcsRvOS5ynB8NkqMHwsbboGtdB4AAAACQAAAAEwRQIhAKSkhoZdYlU6zyq6brBolV0s6Au7QZyEhlI8lYgMCelpAiBz2XwxPdIQx/qz51M0TCg0MaxrQMYFXBqLSeyNgY24bQAAAGgEU05PVr3FusOdvhMrHgMOiYrjgwAX19lpAAAAEgAAAAEwRQIhAJSX4bZANM1hHjsSGkOFy7Hc0TukpwVTDx1UdQLk0/7BAiBhRnM11dODo6wU7/Hmhtc20LEoYlRbgUZNC8Rwfz6lcAAAAGgEU05CTBmKh7MRQUORPUIp+w9tS8tEqor/AAAACAAAAAEwRQIhAP4Twa9Q//3oU6CwoPTvF76dnpqxLc1QwjazDUeEeNOfAiB7cTiXBEL6yOnvOZdsvVm0e9clMpINYy+AkJ5qUIHBkgAAAGcEU05PV/6aKauSUi0U/GWIDYFyFCYdhHmuAAAAEgAAAAEwRAIgQ3IW7Zxjgn1IBr9cH3cAMjGu9hRgglUMRFY3XNhjD8ACIEhCFikgGY6XB4AIzMm3KVorGpt2vG+pfBCqXVhrEQOgAAAAZwNTTlB5Xb9idIT4JI09bAnDCYJcFWPocwAAABIAAAABMEUCIQDzE/eiqJ5RubC8eaPv+97/wQ2mA2G3FoI315fYQBRerAIgOYQUO2XMDHbGlvchr0B4YyxvUBZLx8tAwAXgm6tormcAAABnBFNPQVK65fLYoSmeXElj6v8zEjmSU/J8ywAAAAkAAAABMEQCIBqtW3/Cl4sqtS2YI2+99Yd8tJImqt5Wit/caPjikA+sAiAP2+IGBJqqZqb67zimJQ4zyQw2Th8U57ypGByJZy8TXgAAAGgEU29hctZZYPrLjkot/LLCISyy5EoC4qV+AAAABgAAAAEwRQIhAPCDEunF6Io9HSmAo7Y4eL9zVHbd25wPmso0OBkxhIFzAiBhcpjHqXoaM/WX6eCvk15559y3yeGOcqj4w9TBtJ3bLQAAAGcEU09CQWUDJgTasgKv+a34kwDNtL0NBZ9VAAAAEgAAAAEwRAIgHyepQ6Np12urX7JRiyinLJi6aHsXsoXp95EwMfvigmgCIACJVUVU1VviBiI8Y1cmcWkw+TlYeB7oqIGJdvWwPps2AAAAZwNTTVR4643GQQd/BJ+RBlm21YDoDcTSNwAAAAgAAAABMEUCIQCPZkIOY7quEV0P2Vs7KuJvCRMcdaFBcZrUENhnNJ/XfwIgQOFEVVbI3GxD5QadDc43XICBuzsM25+iduCH9iyu9YoAAABoBVJPQ0tTCCnS1cwJ09NB6BPIIbDPrictn7IAAAASAAAAATBEAiA5LqXLPWk6tfZGZsEg2853YjqkLV6gb6ddAwcj1SCuSgIgSZ3IVYhnRGShDWFxEIADzrFMJzzJ1EuTphG4RQ8jDGYAAABmA1NDTNdjF4e03Mh7ElTP0eXOSOloI97oAAAACAAAAAEwRAIgaGjf1TJQcwWIHRieA8g9VdzQ9S8DvoegD4KlQWDfFQYCIE5q/nOvpJ5dJ87jxoBWKjrScoSb6PUADLwqpZJNnPgCAAAAZwRTT0ZJrqXhHiLkR/qYN3OKDNKEiFd0it8AAAASAAAAATBEAiB9193qAAi5bIV9Z6o8Czq88IGEicYjAqPQFN7vEE4lhQIgaTVY4D/caa8nVCJlENoKUhLqzMnWxtGBQPNfkaXH9FkAAABlAlNH3ff9NF1U/0tAB5V51MRnBBXb/QoAAAASAAAAATBEAiB/PFWLmz/eFrbGF2iHaIy9yl5JQeqmKxEYdGjIU5KXBQIga13PP9S4OMhrpqmH6TNI72BI6pu8y76psrEgyT8gpsUAAABmA1NHRatFa9sKNzu6xsSnYXbp8VnKzVdSAAAACQAAAAEwRAIgSKhdmTB9DFfMcLr9S+ucl/pGitQqn28mtCeEDJcftz8CID4lWDyqtLp1If8mEjlhOdJ6FTLGdOFKmfKcXZnOQqPTAAAAagZTT0NLRVSmMSVn5BnnOVHEUf6roHttdKDozgAAABIAAAABMEUCIQCZj+JoIlLPFRjFAwjHLLOTiy3J437VaXXXMAMhzAQUswIgNbim3d8SGZmZ1mQV14nEhDQO20Awdi4xIVYZRywW+uIAAABnBFNPREF6+zmDf9JEplHk8MVmC0A3IU1K3wAAABIAAAABMEQCIF9IJRybI+53Xxff+saU9HxBUXtTJJilOVWv1YLiQN6NAiAD37nbdO6rLtYWjhbIQUgHg391wzSavj/L/D+6PZATBgAAAGcEU0JUQzCQE9VfsOjBc2O8x58l2S9xGlgCAAAACQAAAAEwRAIgWnHqzBWVH91/0U6vbvFIxDLjhJGgtb80TL8fF06BUscCICngUlvW5vD0xy3yuKfCBTAN9lQqEjfz0ezZQhP4HsxCAAAAaAVTTElOSxC65RJiSQtPSvQeEu1SoOdEwRN6AAAACQAAAAEwRAIgGUnG1LkhGCtzQa0tiJOGJmgAEhOGoR5WyPzvl3CeNIYCIE0bcYdywZi/m1zMvHeorI1B/D+AfUVgqgvCwWHjp16TAAAAZwRTWUZJMiEkEi30B7DQ2QLLcTs3FPsuLh8AAAAJAAAAATBEAiByQzgdTOPXkbirsM9jMVyl29u/eeTn6m/7qAGCapTQlAIgVzzFiCMKIzoA5Z3JBf83BLVJaeZ0u7W/AmaQuYPsZUgAAABmA1NDQ4ZpZDHWrKm65c5lNuz11Dfy5tuiAAAAEgAAAAEwRAIgIEkKKSCV/0lhjLtZdUEyD0zhJnq1WKi1omMw5PGpe7YCIB+nUYIbPbXYDSDmwG5Bl5XrjmxlNTazVFWgLVjzCZdlAAAAZgNTT0wfVGOLdzcZP/2GwZ7FGQenxBdV2AAAAAYAAAABMEQCIFtSUhsf2or0ORWcb69bptM634FpvPMxUplysEndNaowAiAyHMAILj1wWFtD2BDnEfhsdsnzHkK84+k0ptVbhfPXlgAAAGcEU0RBT2Rs7G7kLSWDNhZcu9XetK8U8PR2AAAABAAAAAEwRAIgQWMwvMrKGTum/S9v+ITE1LEEH2ddOUOA6pX8KAMYnk0CIG0sZ6Dpoqoig8l4fh/ZrIj3P22jEOsmaC4my1ueTI86AAAAZwRTTFJNVu6Mm9HURaMyStg+hti+MJ24+F0AAAASAAAAATBEAiAv6B2ThCsEQbSG99MkU4dLI9GwKn1eY4YCrtfmG/7BwQIgMWiNeZ2NveHj37uN7jXOojV8Q1y7craq842umml4/coAAABrCFNPTEFSSVRFkw7YGtgJYDuvcnEXOF0B8ENUYS4AAAASAAAAATBEAiBllJ1/zLBLHEdE5QN0wQANNroD1+C8fkrkscf8BQVXlAIgQIlS82/7pOioT12qcyYPAKWBTe608RcGo2cEt2yaEd8AAABpBVNvbGlkUBHUjUJltvuCKGAKERsvqh/aMTkAAAASAAAAATBFAiEA/EapfXANj0wJGQIS3CPlRK4LU9weBPyzEyYUEY2ShkQCIFlS6RYRqPFDR/FCXX9hSZbcTa9LJhGiPAWRAu++cpbbAAAAZgNTTE0HoK16nfw4VEZvjymhc78Eu6VobgAAABIAAAABMEQCIFeHc3jUnDh/a3bS40ze3wed1R4lk4aciXdTUQyms6m2AiBq/Yb4zY11Us53kcmqgBB/nnwK4/j8MxeFqbEqzA6t9gAAAGcDU0FUyfEBbTNu93rudfwRrWTF7PkSEzIAAAASAAAAATBFAiEA6Ct6+fh9PcBLGeItApw/JFT80LCtu0am2fuZMFlZnbMCIBujP/1DM4LMj7BekRwBNQfpJqtE3hNtPwD1TZ5GCL/dAAAAaAVTT01FRWX5opLxru1ddVqi/S+xerLpQxRHAAAAEgAAAAEwRAIgRKguIkWwT8yDcmg+W+5vFiZ+/FBiSe8zxZ7AYiQk+LgCIC2l2fjTdus5bvARaYcQsZyqb8paj7mTCHqAAVY9gr3NAAAAZwRTTURYfoU50eXLkdY+RrjhiEA7PyYqlJsAAAASAAAAATBEAiAu30d7Qp8U1+L4BjcLf/tr0VBs3lAOguAF8TcnQWjhpQIgTqCBOLsR/WWcDG5TdNjX9AoqPrKUiAeYGJcWAbjH10gAAABnBENVQkXfgBRoqAijJlbS7S0tgLcqEpc59AAAAAgAAAABMEQCICBWmeds6ycQnD+0aTQjUsCZXMfxTDd8/f6t86liEnSWAiAGbXcaLuZ9k0klMXD3kBshL7epjdRBMuedWRZkz3BytwAAAGYDU09OzmWd4pKtT6mq/YKwOJNs69kpHncAAAASAAAAATBEAiBqRSnxyJL1dxRlVMqWJOhMq6xFLIkgtURcl7X4YTIIBQIgBATj4m1qEpws6cU5bi5u18NWFBhTTMiCz0PW86Q9qFsAAABoBVNPTklRHGKsordgXbNgbqzae8Z6GFfduP8AAAASAAAAATBEAiBCGCnRlbfv0ukK/9LXFN1plsT0goO9F0a/Eqk4+b51FQIgHI2zcoRwtSPt46ta4UFPy6iOltvswRNP6RGs0ueiyO8AAABnA1NOTUbQ2sCSb6FnBwQsrcI/HrQUH+hrAAAAEgAAAAEwRQIhANjskQ1/uN6n7k46FE0FesiB7CHTxOR/zqf9oE3NcuH5AiAD+Ep4rSxy/7dL+y7BdMr832GwZOVThKAw2crHQw3J+wAAAGYDU09QB2ZBrxuPBrf4ySWHFWFDwQkALL4AAAASAAAAATBEAiBUO8ExqcSrFm1efvSCPD28+qsUvOxV4DZ543lIKSCMKwIgYtX4jfPTailIQ2+YIgjT8m9wf+F8pTvjXTLbqeS96wcAAABmA1hPUkD9ciV1l6oUxyMaexqqKfzoaPZ3AAAAEgAAAAEwRAIgO4OupblEMUO6UPCssL0JmWQPeN0rVJR2YS4++u4MYS4CIGSZlGAfTCFepT9h46WqgptTgN/Kx9PBj31aJb0WUtoZAAAAZgNWQUzoj4MT5hqXzsGHHuN/u+Kovz7R5AAAABIAAAABMEQCID+Ez7KPkp2XLmz30tuIjXe1gy7UHAaI9v4it3V/65peAiBtmXTXosj6kyaZPL2ROCbpSXE5MBAFxgAiqpxoqOnqlgAAAGcDU09TO0hLglZ6CeJYihPVTQMhU/DAruAAAAASAAAAATBFAiEA6TphU6nMcuCVcUlGTeA1YfOtvHTyHKlknXYoULKrCIYCIDgZBktzwsBRyG3yqKN9yrTmDqrPf1puU5GpijN9jJFKAAAAaARTT1RBDd5vbjRb/SPz9Bnw3+BOkxQ7RPsAAAASAAAAATBFAiEAi5H9UrEYfu3zIK4e+PrTe99VKAqKjkbl9ufiPdcaI1ACIFl6IHazM08C9ALThVOCzes6z2SrYGcHRiOeiWxIec/fAAAAZwRYWkFSSPBzAeninDw4qAro2a53HyJPEFQAAAASAAAAATBEAiAyBDvOuBIaVIK01PDPHHe8l5t5RPdsAG8ujb68BS44fQIgE6AjLopgTV14X1eUdhFc+GnHwoAgsAmv6WBBBPXwjXwAAABpBVJFSUdOF/Wd1/78LydlCe7SrWtlJxRYF34AAAASAAAAATBFAiEA9aVWMFDOkckBmKEpreHbZpGoTDN7kXJmTufc+zGw9bkCIB4pgS4/rYXdx6hMXSfMXCBW/zk+Zo5BN65vIru3x4PIAAAAZgNTUFgFqqqCmvpAfYMxXN7R1F6xYCWRDAAAABIAAAABMEQCIGiyhjaQbikAttugyTr0HAhZO+dsZ4ucJT5SI5uDY+FeAiBLm4sW7v3hkvQWbE7T7LfsKp6+c/cCMvUVkAOtipRfzgAAAGgEU1BJWqelwQWBlK+PAMGHrbf8wMlfHGwtAAAAEgAAAAEwRQIhAPlmW+x5pvtPDLP+NATkxmMVJ59XPQMxEMdOS5uWho8HAiBhj9hDhmTBfdhmtgVMKwNlgznJbg1NG978qtcy6nwUdgAAAG0JU3BhY2VEb2dlqiQJWU3ArvY8DzZ+MPa1EUnL5hMAAAAJAAAAATBFAiEAsl1WOuYq6tVU7BpAGY3/iljpIywwLswzh/YvnTift9ECIElFwk3zN+wpRVDl28bQUoVMMj3FwnzLFTEGlK4GVAUOAAAAZwRTT0dFQZM0ItxKHLjIIuBvEve1L6Xn4JQAAAASAAAAATBEAiAmQZ2BqYDRu+asNZhzDBfHKNVQmVCPwRFYFcNjwPnP3wIgILNBTVml/DdG0NTtvExi2qltYRI7CJFytUZ4cmngKcEAAABmA1NQQ4BpCAqSKDRGDDoJL7LBUQIk3AZrAAAAEgAAAAEwRAIgVTptptSxy7bGiznUY+OOo+FEaw6Io7a0dBtt1Fq66qYCIBcuTIXI3tyMi/ZkKLPeXZxW85/5cj33OXGMB9wK/uBMAAAAZwNTUEOG7ZObUA4SHAxfST85kITbWW2tIAAAABIAAAABMEUCIQC9cC38IJIesm4UFAwALfRgU2qPZOqqAcEEHXS+NbbNAQIgBYKXTx43DxWipg1N+1SdXHtzXqrcjrjZzS13xhcto9kAAABpBURBV0dTn47vYbGtg0tEwInb8z64VHRqa/kAAAAJAAAAATBFAiEAkyqS9RjlFdM+3HdxzHC3rCsbhz2dbGarJhNij7VSal0CIEG7k2F1qai7KNCT6xoVslb/YKkZRInPmubh3yFBc1CrAAAAaQVTUEFDRcx6uNeNuhh9yVvzu4bmXgwm0AQfAAAAEgAAAAEwRQIhALpPqm9YJ696JBqAnb4gLwP/XI1Dej1GW2FRGBLgJk7yAiAKTqINx7GkXscidnXq1JrM4Ibocw8HtljYVSByj7ZJ4AAAAGgEU1BNS1HT5MCyyD5i9dUX0lCz6FaJfSBSAAAACQAAAAEwRQIhAMT5VEbMhUc6wPaEZhxu22hR0h0gRojk+Mbc2Pfo2vU7AiACMwoff4Oq+O+fd7562hrceW9+Dcnj+3OcpUUqGqNBlAAAAGgEUE5HTkaajqdoPCfTHNmw3naRUdiotmxaAAAACQAAAAEwRQIhAN1ntys7zAuBBGCIPEiEfvqpzZU1pyv6AVxExIrrEfBaAiAk8b2Wpk4mh727atawnfkwql5U4lMfsh70fToe24MyAgAAAGkFUEFTVEHlT55quA68KFFa+LgjPBruZQahXgAAABIAAAABMEUCIQDeDKw1Mixh70h490T+mFcFe9WHOZFSBReThVyWipQJHgIgHyKRGUgp7eCpvJXl9Osk4GEjCRXwS3IeHxFDcSQHxxIAAABoBVBBU1RB6mwn0RzLkwYVT4fUfcFAXDckIIEAAAASAAAAATBEAiB6gmSLQR4uZbKt96of4TGCVCWo/51lp3k6BwaZNQmCJQIgJ9B94Cv529KT7O4E7hcjIRoUukDYYRAWNJwUKS2NhygAAABpBVNQQU5LQtZiLezjlLVJmfvXPRCBI4BvahgAAAASAAAAATBFAiEAvrOyplUC0U6cJHwCzXSU0KKd3tXjidodNX9VkRE5WQMCIE8W0c15XBIRPruAA6xabuFoPtHt/m2k0sMVrUei6QZ5AAAAaQVTUEFSQ1i/ffV9nacRPEzLSdhGPUkIxzXLAAAAEgAAAAEwRQIhANww+3pY7vh4Or5uGRHPmrcCJdQ+zY+XM5AbIW8PDc+xAiBVGw4Y0x11jJ5+r40gaUDl0UZ39cYiXwFSkT1GHR1ElgAAAGgFU1BSS0xLetOlaBADJ4KvzhLX0nEivblu/wAAAAgAAAABMEQCIFhFYE73KIvFYUfaGwRHapmcFjcNvFoektQ13uZdkEtiAiB0D8voJyzIaBJwKa7IH8Bbgece959o1oY8YV/mPTF3YwAAAGYDU1JLBIhAHD9TUZP6jfAp2f/mFaBudOYAAAASAAAAATBEAiBxL/fAmwXy7N+47dZ469aAtxGtpBv5j3DXi+ihz9VeoAIgS71vSsZb1xDSQOHkBFc2azwPI8yXgifA3EoOJsPuo4cAAABoBFNQUkuAp0DI/6KMjCw/H8i2waCkQiEucQAAABIAAAABMEUCIQCX+6h2IaFC2Gaaz1kV9ssbt51OAssXJpbFsnOpayPd7QIge4QANqtAcER2qyorUy+TCcK1NRtDfSpTK0bIwoGcMhkAAABqBlNQQVJUQSSu878aR1YVAPlDDXTtQJfEf1HyAAAABAAAAAEwRQIhANPSgBi2yp0wZn2YN2Rcbd9Soc7WGGEwSzRzVnCOzYWCAiBm/6NlhUHeCDN/+0WTSOsO8c73s7NntkJKD10m/fZwFwAAAGcEQ1RLTgj/fivjwjqzk4ttJ1GT1qSczvc+AAAAEgAAAAEwRAIgFbZ1Rbzhat7qVn84f1Yd1Bfxqkwp5ZvqdMOm4x+WyOkCIGvcFCpjcSeoXQSw9rhqAV5XLLYkHjkq10zkAJkWdDP+AAAAaARTWERUErMG+pj0y7jURX/f86CgpW8HzN8AAAASAAAAATBFAiEAk20pIfwAv7GSYiuwJVTJn5TpvdlWesYrFiZnqXYBkEMCIDdbBtkQy5jTO9AjVIZwZA3JT1AIlmRP0lk660p8ONv5AAAAaARTWFVULILHPVs0qgFZiUYrKUjNYWo3ZB8AAAASAAAAATBFAiEAvjzFn584wHN6QlE594fPvE7m/kbzNWg7Yz0tOwjYF18CIH8KVJxyXcbTUUZM9AzXXZTZKiSRvbTBXHPKBQ5K2n9bAAAAZwNTUFQBzEFR/l8A77jfL5D/gzcl06SCowAAAAgAAAABMEUCIQDLvl0weusSSwVjsFBAK+pLnvBvnE2jX+ih0XKwY2oRhQIgRr4FYYa5+1QteJPOoQeT7aHuPiCMNf2gW3DJlfpDKtMAAABnA1NNU+WGdgi1GiyceLlYc1XMCTFApJsKAAAAAwAAAAEwRQIhAMMZrsQgpFhvttzdkAfRO95FQ8S73uw1Fw4kk29TlBloAiBiXYVQz4N3qEbMfn7n8r/4sNoeFlS2hsvuGRMHyscd4wAAAGYDU01TOQE/lhw3jwLCuCpuHTHpgSeG/Z0AAAADAAAAATBEAiBmXbI/IUJtrg3qGhP+OWrVkhiHHwUv/vTAcwIPi6kjmAIgGdHb4NNJxmRKlSpwbK1dure1TCvCAT7s+4eCiQpl09EAAABmA1NDU4GZX/eu5ceAGStH4LQqeoZpLRQVAAAAEgAAAAEwRAIgKSMauISlTuwhnGNe0u/cqyFd8naf5XKOqxnBXrnkVtMCIEhz4odnAgoR+Q53ol2YIcXWT5AkBiGNFLDSUWBhVcrsAAAAaQVTUEVMTAkBhfITUwi60XUnAENk68wtN+X2AAAAEgAAAAEwRQIhANE+C5MEDfWW3TZ7TPJIBg1EeT3Bw+gYpggK3OQrZFBUAiA1lGF5UbzqBWM7jzvHDyqcgvOfGUGhao+UrmZrTZKybgAAAGcEU1BORN3UYLvZ95hH6ghoFWPoqWloZyEMAAAAEgAAAAEwRAIgQt4ucPx2dILb/BF/tUKac1NzG5O3YHatWM5eB4+GyugCICxTpMWDwFB+2ciEM6qAyG58hIOduIWf2DwxpLAzD9JgAAAAaARTUERYLHVudLcwnXhbXilg7yYsTxSoeTAAAAAAAAAAATBFAiEA2mQAl28LKh8cjZVzumGNlQa2N279RkV5fYjWlMLOO1ECIGsA5ijZVg/RXkkLOPfV/4O2wzxttMyJUPunAUdkO8TkAAAAZgNTUEG0o7D68KtT31gAGATdpb/Go9WQCAAAABIAAAABMEQCIF9H7s7yvJhFcKx2u7r0J6JI6MQlxY4fVVGWGa8wxor6AiBv+c6WoZ5kOyy+66eayIcXtViVg6L6gYscbE/mC53bqgAAAGcEU1BBX5YxSD8ot/XL99Q1qySb6PcJIVvDAAAAEgAAAAEwRAIgOQsU0Ft3bhDBM9/xyEdeg5Mz3762zKXoH1oEeI60OU4CIDYSdnNuiXQkgeTQ4biLwae2WaTdvWvRqx6s39AJ+LkeAAAAaQVTUEhSSYoM36ti7TW4NtwGM0gnmEIcgbPsAAAAEgAAAAEwRQIhAOHXrQJu4e9MjGxpmuuLdaASrbnXBivnfx+mQdMuRv7rAiAdKBJm2c2MHndBM5UjbcI9T82z/1VRaCG08hoozBZd6AAAAGcDU1BIoM9G6xUmVscJDnaZFutEoTiqpAYAAAASAAAAATBFAiEAoOYnxbfyXjh6Q37fgDvSsLz6nYOJNK/ru5JNFYJxWzUCIFPsu9hUfNVBSmYuxHg8Ei/e7yhTqvRPNqeoIL9GF168AAAAaQVTUEhUWDgz3aCutpR7mM5FTYk2bLqMxVUoAAAAEgAAAAEwRQIhAKbaQAS6+5PUYebC3nmHmxsbiasszxRzwWkNzHexWTG8AiAIKLtitrmF+ZIe4LHlr/wQswBlSKqjOoVpBxr0uAmHswAAAGgFU1BJQ0Uf2rKU7aURK30Gbtjy5OVi1bzGZAAAABIAAAABMEQCIHNSzAGOw1LqzHoT1vpAcE+R4qKcacPfAfOLgTQtrykIAiA0VD12HGMll4rQBcCpK/HyD24ERhCilVewWsZf+Poo9AAAAGYDU0ZJt1NCivJugQl+f9F/QMiKqj4EkCwAAAASAAAAATBEAiBXOeDHksUIsiCB5Hqefr5rDYuk4Xx7TBYSBHzvRx+yuwIgO8HAwb9xJLPMf22kMA4tjstwU1vP1S+aSWLSwjFwTGAAAABpBVNQSUNFAyTdGV0M1T+fB77mpI7nogutc48AAAAIAAAAATBFAiEAri7CzriXSBUtMJi8+6diec0APURDnJ2t+r3mHQegqFsCIGELqBo1elm9vc41ffcDm0qu9QclMBM9ELjjY5cuSto7AAAAaARFU1BJNaefzrhn7jOS7QyN7djcL2Ekyc0AAAASAAAAATBFAiEAsmdYaza2TPgjLSI9d79IZ2BfExov1rd3D1RFMOuZ5E0CIAt4nQ40KOGzvRxr0ONvP0OAV45Fm039DlP3iL7L7G/cAAAAZwRTUERSvNS33m/egQJfdEJtQxZaWw15D90AAAASAAAAATBEAiBf0Ekph5hIA4FZLOsCDgWGhf+HJ6Ya0jMcR4R0HoOEJwIgFNefKzD8ZnuCE1lnVI2eFv4GkZ51uYG1/pm5edXkhLsAAABoBVNQSUtFp/xdJFPj9orwzBt4vP7pShspNlAAAAAKAAAAATBEAiAXWucDqbRbwFdUIHkG5NLLI8KOceh26Ia5amoqpEFDvQIgDmP+qXeJMgbetjKRJY1VelW9d9QQxKIzY7B6Q9GkwuMAAABnA1NQRB3ql5rnbyYHGHD4JAiNp4l565HIAAAAEgAAAAEwRQIhALeSamYY0/tta198vSV2bVk3UGdEzxiGby2KuLOMzJC3AiAX27L8AYEY5v8ZeKgHHEo9PMcDZLL6Y11pQe+o7a3L6AAAAGkFU0hPUFh773EKV1nRl+wL9iHD34AsLWDYSAAAABIAAAABMEUCIQDt8VFA6rLUBrmGWuphQu0a5NbvOeYwIsFoxcgEq7G1IgIgR5NzEE68v49k1wQIfXROehAfyXKJmNmxgJztnFpouXYAAABnA1NQT8vncTI1h+oW2stgFuJp1/CKesxOAAAAEgAAAAEwRQIhAPmjIT8FuKjZ2qTp18O/u8B4yroOnsiUnIn9pU3IAeIrAiBHuLsUE/kksTnOKX5qpn21oGLNSYT0QEV61fE9anXrWwAAAGYDU25MqAaz/taJETaUDPgcQIVmFQCqJwkAAAAGAAAAATBEAiA9EYYlqtnmpjrwSK9Pnmwlv7GdGrgtE0R3ZCpSJoISTAIgBTvjZV3pxa06JifN6Dd44J3Nwl+zYh7kHx+A6R3Tc6gAAABmA1NQRoUIk4nBS9nHf8K48MPR3DNjvwbvAAAAEgAAAAEwRAIgaEhFzR790gltoZFX0+YPGniN1cTvyQb9aiQugEBys2gCIG3YoMbAa8Cv7usYwPVVGTlNAJW1+iYlfqsmTXGpMfbSAAAAZgNTQlglebsIOH8N56sTXt1sKphaP1d7awAAABIAAAABMEQCIG0C8scuNV6c84Ak/5GwkyRyQ5czbqUBwTKOKyOY9gAoAiBGJ/uA/jPwnctOmjSAlaFdKQouk38/Gebshz6xvorfTwAAAGYCU1iZ/jsTkVA6G8F4gFE0ehMkv/QUUgAAABIAAAABMEUCIQDCUj50RUfevzIKumUi2oHQ0phxlqEsbrOYGu9Gg2y4zgIgIAAHsa+EzfpiedN6kq5gMLbVG+kbbmLA4PHYWFx/gG8AAABoBVNQUlRaxWCYTYxM7SoOuleQsztvQ6/u91kAAAASAAAAATBEAiAqxzy6zP1GAo80MScstiSy7QuPjRrOKlFvPDDIYw1AqAIgS+5HvErLlpy0lsmabbM00NsnUBluGpY+K4Fo02l+dEYAAABpBVNQVU5Ll6qOFNsLwHPMfi1CrHFUJ3F9YEIAAAASAAAAATBFAiEApEUemosi9LIEOHyZScFd1/sTeEZwh8JUEJg4VSslJbgCIE1UNSWUyMPwRojo5sgmzOYKq6WXVq9tjIV6oc6A9au9AAAAZwNTUFXve84b4roDITEyaRCmwR5xba7b/wAAABIAAAABMEUCIQC+I4Hkdetz7f6gER+8l7Lgtn55zeL6hsOpYP0u4ROrZwIgQmU/+LsPFZ+YN1lCKpCzZNPbVSXw/i/nhmL90Gnq2c8AAABnBE5VVFOEKU/JcQ4SUtQH09gKhLw5ABvUqAAAABIAAAABMEQCIAKZhxIlOD+FDC/8MITT0lqZXzOwDLN4eXWtIRg5qzIwAiBEcBs1sg0BxYIqMuCXg2rp5/JaJOmnd29BAxKIzK1gDAAAAGYDU1JIw1DoRuLFf57s6Q/rwlPRTICAhxsAAAASAAAAATBEAiBfBWet55Ae5rhOx/AEpfQvuSrUde+8c1z8GsGv4Cg+KwIgYJmDnOSXKqL/zt/gY522aZTK607GtES324SIndWU9d0AAABmA1NTVp1l/4GjxIjVhbv7C/48dwfHkX9UAAAAEgAAAAEwRAIgMmCBGy7LihuZm6kagxmVRuMkDKJAr47QD+XPuQnloYMCIBdHJX87RA4tYVVh6VdO6wWeTRa8bfy3lBOXEWmQghu/AAAAZwNTVEEGh0+XPcPJbcIqEO8NBgn4d/M16gAAABIAAAABMEUCIQDQenfe+RAUaFtyEudAw4HgDeaJZJJZqv+QQxoi3ks3qAIgGSgllKwXAeGiPwpFCpSGcS93QMI7WnGac1F5b9jHixEAAABnBFNUQlq5h9SO2PLEaNUtZAViTq26XnbXIwAAABIAAAABMEQCICBDRtnsaKA4MTicTR4yJp32IEnanGlpKWYBODEZDKNQAiAn8uwrnA88ga6PwGSEWCxBnOF/9t5f18tLFXIsgt4XmwAAAGgEU1RPTE/1JT4jBOP17WVHrF2ZUqYrkePoAAAAEgAAAAEwRQIhAJAyksJtEKMSb1EgkBw1gj98dlshb740YjFXfmXHicuGAiBKU317juXK1zFtkntBCxua68DMGQ4jxIpVRE5054eWGwAAAGcDU1RB19Bb2kv1h2uhJUs+qvi0fS9WdusAAAASAAAAATBFAiEA2YnjfzDhJaLnWclJEMei1oMx3wEG+LmLFCnsEYF0zFkCIFDBxnJl5nZAYJUZg8a67dz0vPjBuE7G1dgl3w0RU66hAAAAZwNTRkeKaspxohgwHHCB1OltZCktOydc4AAAABIAAAABMEUCIQD1Fn+gN+Xv1EPd7awbk4JLDBngY4Dqoseb5JYmy9u2kAIgXZZ9ZRPoMpd6O0VqgNzXz/yEL3fCEPusi0rSxlwajAcAAABmA1NUQgm8puurBe4q6UW+TtpROT2Uv3uZAAAABAAAAAEwRAIgHRrX+cvUoZfWoCwTzY+p3V6q4f8dqRfvnzh+kAlzmIYCIAKXbgDo2ERPoFoP8Tkv34zVtDmqbazIbXz/ahqVb+68AAAAZwRVU0RTpL2xHcCivsiNJKOqHmuxcgERLr4AAAAGAAAAATBEAiBjt4bL9ynuIbpwXndGaQpBMzMq9ab2Tm1h4IuPLdnF7gIgRtRjh6nAUlfe/qtWCey5/8cUIZaGDpc8Wl4Nc4vkqAUAAABoBVNUQUNL4JVfJlFdIuNHsXZpmT/O/Mc8OgoAAAASAAAAATBEAiA2t6ipfZMAT9uH0Zafa0FC/QPemcm57xqLMDpAyy4JvgIgSzc5hdRUpa4WpxmlOLZuIwLCBnf1KATYiVXbGdiBYvcAAABpBVNUQUNLVqhtZIxDXccHyEBbeOKujrTmC6QAAAASAAAAATBFAiEAg32xxuE9cnUKhoT0xrW2bVSddwMwtq/o7YrqrXHMPX4CICSyhmaI1pU4VV7u9n3u+OuVwF9s1Qeu/hvPIizPT2XPAAAAaQVTVEFDUyhnCPBpIlkFGUZzdV8SNZ5q/2/hAAAAEgAAAAEwRQIhAKXMgT6xZencZJ9geJKvCxVw3bBlR2FZmH439rrYEC5CAiAPy8fF9UtE/Yz2hIU0Nc+/IRwxoN/TgmQWMMwu0RdX5QAAAGkFU1RBQ1nxLsDT2rZN3vvclkdL3iWvP+GzJwAAABIAAAABMEUCIQD87c+/GvBMGA3kqSgEeTO7pShjIupeTE8EBiktIKn7sgIgWkC2gFK12NrmdoVrJdta65T81Ib0G1dUlWG9MufNWv4AAABoBHJFVEiVWaqoLZZJx6eyIOfEYdLnTJo1kwAAABIAAAABMEUCIQD8i4+k9opGBneVBv9SijNU9pLhaXUgzI6iqBF2MTpqYgIgUjdvOe/thAS8oRUn3l4RgontzaMFwcA5iGogkv/J0GMAAABoBVNUQUtFCuBVCXxtFZh5Uhw4Tx0hI9HxleYAAAASAAAAATBEAiAczW8FjN5GAQt5JqMJrEMkH89dg7iT+jqqNEm0eegMzQIgVshgrQt5YI3+jhvFyk4wCHzJ2favmMUxsnEq3BBkVnIAAABnA1NEVHOWi5pXxuU9QTRf1XpuauJ9bNsvAAAAEgAAAAEwRQIhAL0pCuQ21cG/8Fq3YtSAvW4VxbRvSUgknIC2p6wYcrUjAiAUMpIDedZCbjyMqnDKRbYdEwW8lxeQpjzZObHKw4KLXgAAAGgEUE9PTHebe3E8huPmd09QQNnMwtQ603X4AAAACAAAAAEwRQIhAPw7dIUtmEVY4mnqVfd3GAyEKGZGQgsju3duCGFUu6XOAiBCKXyfRI7fVbI/2RXALfHv+mafa+VlodTenGwzFGWD4wAAAGsIU1RBTkRBUkTaDJTHPRJ+4ZGVX7RrrNf/mZsrzQAAABIAAAABMEQCIEdsuNqGx5H661Jk4O7SYSSaZ3n8UBkMpnlgOKiDKhVcAiAYkh66FPbrd78lxyUUoufID5D/FhJjbzP6t0Ais7ThjwAAAGsHc3RrQUFWRU2ielRcDFt1imuhAOOgSQAd6HD1AAAAEgAAAAEwRQIhAMDIS2DzXuhNMidikzFfyhoF7x1pPIuJ6dB2JzniXcdAAiBqZ7HZUazWhMF7rQL1iM1B4QRc2IcVkvyFGpWmmaczrgAAAGsHc3RrQUJQVKERaTAybSH7kX1aJ/HplDqVlftHAAAAEgAAAAEwRQIhAIelNhaFHri26RvyBc+wi3YaLvFyUB/oEZlFtsglghZaAiB2Bm5BnL80YrTk9iBjjKAukXtMyQGCouwfYUH3jzdPfgAAAGoGc0VUSC1oZQd/p9+OOOE1vUBSrCQ/YDcpiS0AAAASAAAAATBFAiEAu/Fd5jYOKhp2l9d5c4LXgtkzvjqYvGNUKD/rN6sU3msCIE8VvPcAMZeg2NXuXk51TbT7G64ecSyvtN3rGAw9yeBbAAAAagdzdE1BVElDnukfn0JvpjPSJ/epsADii539hZkAAAASAAAAATBEAiBmTKWaed5x7w4xXcxXSLdEsCn20RfkwXpA/TYZTc/RogIgKnf9E7CJZ2HbMpudexo9DJKbwu+bQ+rmx8E+I2wNu/UAAABnBHNPSE0E8mlMj87iPo/Q3+odT1u4w1IRHwAAAAkAAAABMEQCIGe4TR5iaMJS/AVJNS9NLmVg+rc8/TIqX7YF+F7dsbh5AiBNKVgfq4HBZphwFUelZ9sdqZbdqGvOLU3EMFnSQLpjLAAAAGgEeERWRt3dDjjTDdKcaDAz+gEy+GhZd2OrAAAAEgAAAAEwRQIhALag2EMVqZNdAkUza7Eu8w/EtFktMEB/M6tpXwH8RF7vAiAKdOfuMW51PhJ95eBaP++t5WsCWnyE0QdZSAhYI5mHLQAAAGkFc3RFVEjf5msU03x39OmxgM60M9GxZPAoHQAAABIAAAABMEUCIQCCCc3Gx8reyd0GpqYYw4kgTsv/LElPH5+TCVh5d8D8+AIgJNb192zliY/7c8U1Sfoy9jxg4IPrBtMFru1vuv3AyJgAAABqBnN0RklSTxYLHlqr/XCy/ECvgVAUkl1xzu1+AAAACAAAAAEwRQIhAKipqS97N6RNfD8bT0+6qhUtNTodSSJXTMMTI5xvs5hgAiA+UGP774xkgo4Rl6hYS73R3jvQaLvFzC7k0AZo+TNtBQAAAGkFc3RYRU0MY8rl/MLKPd5go15QNiIgZR6+yAAAAAgAAAABMEUCIQDsa2Hc+hfw1yRi38o/Sg9QSF0VEEE+mzxd2GFfWDDppQIgMwGxUFO/OIy/LuNxoHNRJRCA8wXlhKL5b0GyoaiX8WkAAABoBXN0WFlNj154iI+JM+1namK7a1iksnmr5AgAAAAGAAAAATBEAiA1YWQWvxb91gPpPG2wfak5v/+tbAMwJQY98tq3RLE7/AIgLDKvtOC4FP7r1Vnv4t+7N2AgXw0UVY4Lyh54Uze67OgAAABoBXN0WkVOMbWV58/bYk0Qo+elYu2Yw1Z+OGUAAAAIAAAAATBEAiAOMmwaZL1T/+6NH5pRng0PRAYJRTjC+fUNcW2hlkxyRgIgfXl4vkB4epN2tNdfTDppx99j/9w0jLdFO9t/XGl79OEAAABmA1NIQnw+O9zsiaP3BsmgJ5fsQn/6WWeHAAAAEgAAAAEwRAIgYAICTQwuQ4HVHBBECX0LBHSb5hVtD2zjrCT65Dx18IMCIHz2m9fHRByW0jXDLiT4K96bO7wYb6HVXrgQZUvIyJqpAAAAZgNTVFK64jWCPXJV2dSGNc7Uc1InJEzVgwAAABIAAAABMEQCIF/pCWQEY8ndAC8TF7+BDkdnd4MFjsAf+VlA5dwOva8CAiBlDDkbHqwuKxwy27hWCxoUo0IwvZgYalYhCRED4GhycgAAAGYDU1RSQmVn9450V3+KYjO2NZcOtyljHgUAAAASAAAAATBEAiBYsAithLwdYioKWmrbe8ImsXJPpt9H88yk6rWBcYJ8FAIgYB6xRM95BfyOAvARLRaq9jIC2iY8AMHCmt3JjVvErcQAAABoBVNXSVNFSMM5lxm1gt1j61qt8SpAtMP1L6IAAAASAAAAATBEAiBQheG9l9S6xA55cqeMKsxHpl9d/EwsOLiJ98sBneFSgAIgKUUd+Yb1uX5uWkC1F+efJRKllKd7/D2P1lGPmeu2Uv4AAABpBXJFVEgyILyDLKCBuRQz/2wX+FcBtukkhsUAAAASAAAAATBFAiEAs4urU50vIbPUB6f00cNEWvygznl3iHRpevHXtngLbkECIH3gfCBe8vDyvwRPWwWl0ob1dSQ+jnzBvzTwnHuUqYBGAAAAaQVzRVRIMv4uY3ICBW0wAWclR3xdoImrCgQ6AAAAEgAAAAEwRQIhAPO2Gt6X9QFDji3oMiPTSZJVfNNr5JWSo1nLKkcG1KvSAiAwqBkY8ENiMcfAonwKYPc8RiXzkA8c0kJnC9VIqxP55AAAAGkFU1RBTVBDr8kFij3r836t+ZE45EnOikgKigAAABIAAAABMEUCIQCOQ3At8zg8Gi1LQiRmt0rD2Wm6T5cexJ/8zU7Xxz3FAAIge2713hBk/ybMi+oX9A6Ya4/umNx9A7lf+cHek2wOAE0AAABnBFNUTkSQQOI3w78YNHuwCVfcIhZ9DyuZnQAAABIAAAABMEQCIECU98JO4L8lFvkiV3lJWguNq2nkPsFEpHVMydZ7XaWOAiAXfPfoTejB2r2Ro1V/WIJj0Xwvk6t5WtQYJ0l+kQbAigAAAGkFU1RBUkN/Zu9L4sEo8SHKd2iI5hQuwPO9dQAAAAkAAAABMEUCIQDia9ntv1LQHeiMimX1l7jTVzQRF/20RPnHOPFNgswVDQIgVYPRY6B3hu9jqvcUhoDoQOjb7PSSkNGmG/StQk8lvEcAAABnBEZPWFgx1FfnvP9byaXvhual6h21tcO/sAAAABIAAAABMEQCIBMexOL+Vr7yaKdUfyi/dAEuARSRppDALsvGYTBIVcqbAiBzr+tJ0yySt0gfzLM84LW+3LbEYAJoFfc5XozfTrVD2AAAAGgEU1RBUvcKZCvTh/lDgP+5BFHCyB1OuCy8AAAAEgAAAAEwRQIhAPk9v5PS1iKIf2VV1Y/ijsUfJSZV6f+VvVxDMRXk6I6xAiAil6en3+OS9s3r/I4wAcepbAnqzqkoJUba7gagq9ZI9gAAAGYDU1RCxIsawUF9snxOLC7T2uWj0vuwfcUAAAAIAAAAATBEAiBVgsrRCMYiKfgM4SP7G3DqkvJJJytzWkaEff/Nkf+XFQIgL3UldbY3SySSzv47qe7AAeW0OjHLM59AdAsaTwJTxWMAAABnBEJVR1O8PsTkkbg13OOUpT6amhCsGVZIOQAAABIAAAABMEQCIFe0IRX0S6ws/wblfS+9sZIbSZ6v0hZ8E56LeYSAtbSwAiAFbLWmfkQp3pM/Df2Z9LSvKL/i1iGRGcgRiuK5exeWswAAAGkFWFNUQVLA5HAH4ITu8+5Y6zPXd7O0yphiLwAAABIAAAABMEUCIQD+CA2XC35FG9ZGb+RaAgnDHC7hnr7resnR63i0gIk3OQIgEzE5s04PilPU/6v29o1kvxftFyatN0/nqxGvnHcP5sMAAABnA1NUR69RkbDeJ4xyhtbHzGq2u4pzuizWAAAAEgAAAAEwRQIhAM+adqWPpXL1GvShYQ1+POD7xRXNQJp7C2BIL8uZ4QChAiAKqzgvbxrBIw4Vnffb26FOtfGNxW50+6D8SOadvRf0HwAAAGgFU1RBUlNFRyVObjGVzle8UDUhk6JcL0uPzwAAAAYAAAABMEQCIAPc4l0JI3HH9Tui/qPDrPAqT7COf2YYqECTdepAMAYuAiBewjPBkBYUgZHb0Nth3rYgmNPE5FgmHH0UKTiWtkfhMwAAAGcEU1RHWqmoN3KH6pxri0JJ3VAuddNBSPxbAAAACQAAAAEwRAIgEQgooGE/Wjmp3DXkqNiIRVNQe8XUphU+07uxR7e5MqICIB44vm6nS7lL3+tdebFkl8ffpOD/g8nrfz5YuKh/Ic4iAAAAaAVTVEFSSx7cm6cp72+wF++caHsaN9SLahZsAAAAEgAAAAEwRAIgMUiG7xLHXxQA7auVr5LrEOE8+GnkK1OrjKdLTdkFso0CIGAu8WKi5IJPi99ToNMZX0GtkFqq03rwgWcWlAHd+0teAAAAaARTVFJLyhQAfv8NsfgTX0wls03kmrDUJ2YAAAASAAAAATBFAiEApTH8/2YTd5L3N6v/z9k7NUqlJ0LYbb/YYM3SSH0s4nECIGXDfI4qhrP9APUczkpgIsjeQsag4KcyrqgpZCABtIP/AAAAaAVTVEFSTI5s2VCta6ZR9t1gjccOWIaxqmskAAAAEgAAAAEwRAIgJFj8w5xBcMatObjAYnL0i71tCiNI82PDohR3sYpi2+0CIDeoDTA38jDK4e8h9wDgB/wJ0YNELjGFsUyz2d5rjHOFAAAAagZTdGFyU2JfQ1zYWPceQqPbQoIjHR7SW6B67QAAABIAAAABMEUCIQCn/0H7oKvwyWvOZ3UE3TV/By3lZcMNZxkKeGkKAXjlqAIgXCi9mlTJDrWQpV2motwvHNzzRf4zRx9LzVWMuuesjiEAAABoBVNUQVJTfM/u9PD/SLDgq9Gbu+uukJOfGA0AAAASAAAAATBEAiBSYYj/ZfczZcUsh6b60MyY28o6FAvoTxOAvQhgDKCOQgIgB7xzr9EQkTKhm3doyNU2fHMHy6Ro9/8DU+VDzFa0P08AAABoBFNUQUOaAFyaib1ypL0nch56CaPBHSsDxAAAABIAAAABMEUCIQD/tHChYINZzuwwkjhSYC19nqeQFWwuxtuApsgvSB2I+QIgAa6pDljXP92g3zwlAozyd4+4Ju/qp5PyE/YWNWPCsRAAAABoBFNURkn9nNjA0YzX4GlY8wVeDsOtvboLFwAAABIAAAABMEUCIQCcMIRbuW1YGIHhvVBtJUAilV+V2dkM4dftq1larAlkhQIgM/gyhFRzPENR6yjDiPr7GB59/Tp7dLUINUzgomWGd10AAABnA1NUUOzVcLv3R2G5YPoEzBD+LE6G/9o2AAAACAAAAAEwRQIhAIc8S9PYSGbM9VWPgISkiiNLep7LRZ6HTelPxnzmRi/nAiBBEeHa8mQ/wlCdhPYzKSPhR2kCCBrTi/gMqu1E5qU6AAAAAGoGU1RBU0lBY3TqkWk/Hsy093BaHLrZlMC4+HQAAAASAAAAATBFAiEA32WvzMITOCqM4MuJJq6TapxGrEMGODvh5J57B7wyTtACIAMhqD2zFlfKDRa7QisgH4CX2lxpH+Ju8CLs+2IXZ5a0AAAAZwRFVVJT2yXyEasFscl9WVUW9FeUUoqAetgAAAACAAAAATBEAiAbUpLy4sjPh1Xu59d9kCQatcbuxqQfFAHJOIyLbHCgMAIgS/YOjNwBBdkkXLWTjkBBsbv78cJ8CzxC/G9o/VyMoHsAAABmA1NUUoS7lH/O26a5x9zq1C3wfhE7sDAHAAAAEgAAAAEwRAIgCDqNhodNKt/+h0/4WY8K5EwTVSk2mf53F7WxxdwcOvsCIB1XmO3qmcd7LYHzrfHzaP1kn4BR+AGGUBmOJZ4TiwsqAAAAZgNTVEGn3ghzKb/NpWOSR/lhQPnavj3u0QAAABIAAAABMEQCIC8iKVj3Aygl+MHU5dVDmM1tly2NadVzZ3cZUFigziKCAiAy6UciCqAdRUBcyIB191lCUNxT1WoQ/cDatst7/8dA/QAAAGcDU05UdE1w/b4rpM+VExYmYUoXY9+AW54AAAASAAAAATBFAiEAlLwK5PBwUdsyJBWze/Eo3PXbEVJ6gAOTJUH2dypntPoCIH01hqciueww/lhHuMerS/t3X30yCmkAjT3grwWICFfhAAAAZgNTR1TSSLDUjkSq+cSa6gMSvn4TptwUaAAAAAEAAAABMEQCIFsCtHRYZaRWiXwM6BChOyHOj/9y/sK5Rkr/KA8JFtJ3AiADX33oW368B7L6g7mSB1LU7MjCjUaeN0ixI3dfFzLxeQAAAGYDU1RCMVTaiYlD/HFRvHfxbkPAxHteRS0AAAASAAAAATBEAiBAoGAv37vB5ydBsWli5xCukcLpAKGZvf9V6gqY77cGvQIgPllQLpTOsIYSYoA3COCmF3uHWwjFAoRNjof+z3kvn7sAAABpBVNURUFL7tnk8kUANdZCYnaoqiCElm7jsbsAAAASAAAAATBFAiEAoE7TgeokWep1V6qgs1Ls94D/qYGnSb/Pnr5jsyDwGN0CICXvVoaU1SZBo1x7W8cY+bdjD/HizDXRdluBhdkdh7H2AAAAaQVzdEVUSK56uWUg3joY5eERteqrCVMS1/6EAAAAEgAAAAEwRQIhAKvfYG08lWF+5lsOUhZa12j8ZfoVWpoElSW8zJceJrjeAiBfIkVkBN3pTe42P5SC8EO0cHaOEow4smLueXDOf+iZ3wAAAGcDc3RptSu9PVv6ODa/K1X+O3RnIZKAvC4AAAAIAAAAATBFAiEA5p2garUTFEQT0RyTHaoOV77skT2HawfbIJx91WQYTZUCIH83CIzm6mZQ3rkQwuuxzCCgZszkgwBDodoy3kO0Git0AAAAZwNTVE5ZJIGl9rTweMwwPCzeQzffotdvoAAAABIAAAABMEUCIQCQn52zEzz830jNL2OIDz7jKkLE//cQZOWlxnsW5pdaJgIgYQH6x7j/iA4DDyAaNba1T3MScturiM2J2DJfWZJ5xJIAAABmA1NUS65zs40cmosnQSfsMBYKSSfE1xgkAAAAEgAAAAEwRAIgaaTMMhWMlo1MZMc2Jtzc/Xa4as7ZPDpE+a2KtmsSHgMCIBgRFw4W5HxmaOQ8kgJ58y8HTfsg0pTd8vGIJeuSn0b8AAAAZwRTVEJVIS3WDUvw2oNy/oEWR0YC1Cnlc18AAAASAAAAATBEAiAzf8XDmy5CDlftuGEN2QP6JdzP5sVhkUrcRjXymIsiNgIgENVNMMbz7Y5rbTKXZ9gKmanWNiJqU1KacJaWALwXMIMAAABnA1NDQzVaRY1VUVHTsn+UInlgreFQTlJqAAAAEgAAAAEwRQIhAKl8WhQT2uEYgaa+QWKh/j0iGTRF5Pq697YJcS4xT3k9AiBc8+YqSZGx1eIyV8isLkyXoNl7RPGTS3I0sZCG4dqbEQAAAGYDU1RTTBQRTBB9Y3TsMZgfX2zCehPiL5oAAAASAAAAATBEAiAq+NwfdRg3lpyTJ7Ip1GUaiufmGiJS4c63MSRwzrx9dwIgDZ9o0gG1mdWx+oXXaiUG0ZkCVHpYhJ4qhQLkhm4N6zoAAABnBFNUT07cR/K6hSZpsXhplEnlBoLWzq+MBwAAABIAAAABMEQCIGO5aTLdbh14deZr0OILbyTRf76la+RR8FZtWui9+58bAiBflLKJuRyR9swYodWWZ8mzBxMLjxWz7ZBPwUMGFrSVcgAAAGYDU1RO5j1rMIvOD2GTrsa35uugBfQeNqsAAAASAAAAATBEAiAempevR2376NSjjPbJcPbkqmMR8j/ym7jpPSzq5f2h9gIgTtjubNb9D6rga8YC7rTNYtorMnUAIY500TC9dBEodQ0AAABpBVNUT0dFEpapI81PORFuApfZIf4l/iKFUsYAAAASAAAAATBFAiEAgNa2InZF0E3PuSytGNkMAi2uN9sEayGIQRzShPC8EIMCIEQ242SVFZcsJ0U/MbICHuZ2Dl1mmIkGi7cZTIJQCVuIAAAAaAVTVE9OS2DKJh4U8m6Nquixp/jng9ZIWRJsAAAAEgAAAAEwRAIgcQ0QlbAV2aKoMloqCBOBczhmognPU1xDM8dET/DetqsCIBeZD7BJnbn9tfhR9+nonMJFFM96P3TwF5+ZX5X75fCmAAAAaQVTVE9OSzW1XCVzHpsFsdhIC6OUY9UsnQIRAAAAEgAAAAEwRQIhAKpF0B2KKtG8uTOIt1mCx6f/U+EykzX5NlThq95SNsB2AiBwTVeeMvZtiP5X33/SpS/A3Dg0SuABPIDMsDyCuVG+zgAAAGoGJFNUT1JFLA9B6wegY1usNL19EdDKYFgnlgEAAAAIAAAAATBFAiEA/TsrH0/72QFpDm6E9rdmdsOOqg1ur0MJL0LhEICeMk4CIEhKLIPSf46t8Nbmr4tu1Vd8/SXnBLmc8NW/R4XlT3/KAAAAZwNTT1YK/udEttn/K3j3b+ELPgGZxBP9NAAAABIAAAABMEUCIQDNOqwsGwZPIBBeaRTjF2O0wue03XXgM96rJJraSYyJywIgAJjkMpl/QZO629ulHXSAakDLIhu8g+eE1/V1d3ydSdsAAABmA1NUT8s5w1AkFRUrLskP8H7hjMlPaBpyAAAAEgAAAAEwRAIgetJ8mSxs7CwWlv08FL4p/LGW3AGrfM97NAarLwv/9usCIDD8p5aNNrOOMRUQkSTqpm9uxl5N3LQGwJtslLLCYmKdAAAAaQVTVE9SSACcgO/09dj8orlh7mB7ALnGTvnyAAAABAAAAAEwRQIhAKTQXtA2HDlNHjeAxXwiDcToWrqbE2H6fvHJ3doU1S+1AiAH9/qpdP6mxAnLC7uCCPci94axNVlstItyqiwcDnPx8AAAAGgEVE9SScceIOVK38QV95vwqPERIpF5IAUOAAAAEgAAAAEwRQIhANhastZF0t1/g6pUPoG6oWXxoSM0dqr2InoRRKBo3yMXAiBnNZHGcLNODV8h3cRZli64iU1SSdr0lGJf0sLf3V2xZQAAAGYDU1RRXDoihRDSRreKN2XCAiHL8wgrRKQAAAASAAAAATBEAiAYADuY+jyTYJIOG6nN0+LvyxLZ/Rf1Jg3yIiGIohJOGgIgDjOijGn4sDja8bs0HAon0Xi5edUf2PpKZTlXgsVLjJ4AAABoBVNUT1JKtk71HIiJcskIz6z1m0fBr7wKuKwAAAAIAAAAATBEAiAUgAFGfkbV90Er6gKkR+AWCV+bwR1inEhWYaLxx8UJXgIgTVmg5anDIfyFdwxrdn3SKvaRG0zW7Gy9HHrAXBcc1HIAAABpBVNUT1JN0KS4lGy1LwZhJzv7xv0ODHX8ZDMAAAASAAAAATBFAiEAvrUc7WuB3LbyKSM9DNI5dXLWH9RY44WPClU9K6EwQzACIElMjiUroLhEJCuSGsQjt4eKzk3zmBqDCIMWi0VmEBBsAAAAZwRTVE1YpizDViWwyNwfrqOdM2JbtMFb1xwAAAASAAAAATBEAiBwe8wDLHxHFqWTbF4mCBJ5QOLTLPGpR2O/R3HrB/keIQIgZeWa4prT+qPlRgwYU8rHH1J0IU6eyNX1ICufkbF8E48AAABoBVNUTVhfvpN1xqQg0u6yWJYu+5VVGltyKAMAAAASAAAAATBEAiB0+Z5Z06nR7RM/kabcuXVokr+9FFtYTTHytjch1LKbLQIgRU+PFgUwaYnm6nLuDwIwp1xeKGm/r30SQihTGqer9U0AAABmA1NUWABr6kO6o/em92XxTxChobCDNO9FAAAAEgAAAAEwRAIgIrHPRphyNldBw/YVQjb2ObNl9O/Q/HWTr6la6DeOBhYCIHPsCLJDZkxXKsnLHSnp7ldUZvH94cNZspT1+sZMlYmbAAAAZwRTVFBDP7jYoor/BTzPRGvAde7Leg72XQwAAAASAAAAATBEAiB5PBsZvim0jCeDt1tXc6vHJl1sUu/52ZcZrfdBJN5s4QIgbLfZ733OlKg7cktaBVoEswGXqvaQzC+dDr7Uvdu/8tkAAABnBFNUUFTefYUVfZcU6t9ZUEXMEspKXz4q2wAAABIAAAABMEQCIDRYr6eamEMT1kf58SsEwBrYCnz/r2YvHh2Ccu3Zfu9SAiAfA/Y0FBVR7Gh66wIhRu48uUs07ri4+UFhvH7B2o3jdgAAAGgEU1RSTpC0JgZ74LD/XeJXvE3WpIFeoDtfAAAAEgAAAAEwRQIhAP6QnV0l8dBTgBJ7VlfbdWYl9pPecDf3HTIay3twnzM6AiB2kppFmmy3Ww6Y/Tf4R/vEo7x//zBtsitT5D9Xgy0ShwAAAGgEU1RPUwjDKwcmxWhAJOpuFBxQrelpC73MAAAAEgAAAAEwRQIhAJwuOqYc+H5xCKhICXfUzAhBay+RZNzN0enMkNDd01DNAiBF6MS6njIe7dxZSPhFDy0vmqnOSAPog5n+mPG1kIajrQAAAGkFQkVSUlnpRPK0b8/J0OiHu+qtlSaNlBbQ/QAAABIAAAABMEUCIQCY2eTMda1o/dFrWsL0gLLOBfKBp4zQvvhYxM6nWpmJHgIgJETLOHrjuI5nSDVbJ134a1c6dZA/6TBBGivAAn77R6UAAABnBFNUUkNGSSRzdV6N+WD4A0h39hcy1xjOlgAAAAgAAAABMEQCIHcLfq2x5XKo9S6VuKsNbJEv/v/QHuWQXB961DUaQkSEAiByHuFyRvadErTNMr+oT5DCgKlSYQYFXYM+G1bSAuptZwAAAGgEU1RQTJtcK+hpoZ6EvbyxOG2tg6Lsja6CAAAAEgAAAAEwRQIhANpd3YtA5qejhCJ0JOt5uTHKMViLH85ncJqlSwwS243rAiBoAi3NUld4kDgOsd/RRIWXFqxGbaOo4IWzUrY0hBqgtQAAAGcETUlYU7C/seL3JRHPi00ASFLiBU17mnbhAAAAEgAAAAEwRAIgG11w5MYTBmM1tsA5P+d/VZCBbdm79/WjIlGze8sJjJsCIEYruAzrCleoggxUhzwosZaTmq5Cf/2LTv4qbj621MKGAAAAZwREQVRBj2k8qNIbFXEHGE0p05io0IKzi3YAAAASAAAAATBEAiACmnNXqBYbseOrzz8c0v72FRYZccqdRbQkeIkuqkzdRQIgHlkdLLKb/YG4GXA62Bgo113HToQw4pjm+5PAxB/RahoAAABnA1NTSG4gUMv7Ptik05tkzJ9H5xGgOlqJAAAAEgAAAAEwRQIhAJmjInlIbMKs2Y7lTN7R1G3QqUbodTPxMQn+zlQDuuIYAiAxXiuv19m6zUxAhJ1Em7Ao8gNY99oJhg8f+YtN0keGyAAAAGcEQ1JFRO1/ohLhAN+zsTuDQjPktoAzKjQgAAAAEgAAAAEwRAIgIZu/YAIb1xQF3gYfmxNHDos/IX79geEGsC1qA4idPkACICaF5GSjqZRMWa3RlyJz1JHXpoVlUQ0Ly44FNAA/612LAAAAaARTVFJLdCMnBGWe83wImV44ai4mzCeo17EAAAASAAAAATBFAiEA/tyM2UoNYSKDhy6kpztHMWv94VfLBKW05BYqltKlhx8CIA11w/+wZpZio4brL5V6HaZWnWqVwsfioGixXYxteXiQAAAAZgNTVENimu5V7UlYHDOrJ/lAP3mSoon/1QAAABIAAAABMEQCIH+lrchY+oZcPZsgohcVeg8ObnMSaX3eQc8xDtxG27fMAiBmx4K1qMP4PU1l0Ge7/fuFACMKq009SA02+mHse7xDaQAAAGgFU1RSSVjW/d52uMHEWzN5DMh1HVuImExE7AAAABIAAAABMEQCIFohCpGQ5coRaAtX99VILeAFfO1fxjDCWzzZ4FDLaY1dAiAH6J9OjpA56RzSIr4zYAA9sk3wUaYWl2Eu9ib0vY9AFAAAAGcEU1RSUJeHLq/XmUDHsk97zB6tsUVzR63JAAAAEgAAAAEwRAIhAIJvKXt/nnq2jU7WBw97HQNqZMzbuHsWiaC4d+RSwliFAh9ePbwtMjfPSbAyHyMpiIpE28D2b+PMLDqKiIvHdHFQAAAAaQZTVFJPTkeZDzQZRqP9tQeuflLReFG4cWgBfAAAABIAAAABMEQCIBsCBksx9xivOGvGuy154hVhfQVj3FZXAe9dpVnirFdHAiBLUKzpW/8cNms0ouTcNhuUXVj16X+M763C1sCDCvebdAAAAGkGU1RSTkdS3AMn1Q5sc9svgRd2BZLIu/HNzzgAAAASAAAAATBEAiBZDUEE8cRIRj/8AP15nu76yaPzMJPLb0wKI8kliPLpGAIgV9WdDQlyvCmpM7ZAnH6bWKOZHE4c56+AGBMOeTOCK4EAAABoBVNUUk5HNQpqMMed82AMTg5n3qsKZLZF4sIAAAASAAAAATBEAiB1rqTe0VFYdxT7imxzeSwzS6puceZBwoyii4YnnRk6EgIgaz5Qoi5T6seqG6/VUCAm3Iu6nanz9JXoFMgVMP35DnYAAABpBSRUUkRMKX0z4X5hwt3YEjicIQUZP4NIGIoAAAASAAAAATBFAiEAqT8MUVj1Mfp47WUJBqBSD0lLyGuhHKrqW3apGVGn3GICICz30PvBjSueYd2fKbAU3+NfbAGTgxPFXt8+zj/Jwa8rAAAAZwNTVEMVtUPphrjDQHTfyZARNtk1WlN+fgAAABIAAAABMEUCIQCPqrb3mvsN/GsNDmcfPOAKEo4lvyquX0pXXHjrFtAovgIgaBF22Zj9BGVKBg4oEy+kdV6h6Xn/ad6wc790mY3U6YQAAABmA1NUVQNxqC5KnQpDEvPuKsnGlYUSiRNyAAAAEgAAAAEwRAIgGMx3OW0KKDKNg09B0Pt6AbpUohMB53zhJ1KPUjDPfhkCIFDJCvGNIcdCpGvP7p0Sr2A7NS+keI7vgB5u9Ybe8SmLAAAAZgNTVUISSA4k61vsGp1Dacq2qAytPAo3egAAAAIAAAABMEQCIBoK8ZjyDUkV0ooX1/a8CHMYS06K8u2s1uaEI8mI97r3AiBWAKHo5gc454fx/W7NyVyIVvtt81CV6e9PgMEyvmPFygAAAGYDU1VCjXWVnx5h7CVxqnJ5gjcQHwhN5joAAAASAAAAATBEAiA2/lgYcj9r+HWeaq3jbb9UoZ28yaNdvUcAw8KDiff/tgIgVz+yPoFZ1NRWLijWLeKg08j4pKwEHhvtsGb4L/E7nTwAAABnA1NYTCIu/oPYzEjkIkGdZc+C1BCidkmbAAAABAAAAAEwRQIhANRNqRXRnPoB4CfJX1V67JF0/3YrEUp8mpW3n6hiS6x1AiBZ1+m6HTLhuw2WAj8eVDQZbqJ1UVOcpL3iBUhkw0f7UwAAAGYDU0dSy1oFvvMldhPphMF9vPA5lSttiD8AAAAIAAAAATBEAiAj6jd8ZM/t55j49ccTEekbflLdenKPSeoQ56UZ0JNuRQIgMhKjROCz62b1YDDqsrVHiFMuEp5JICTaavg0tB2GEeEAAABmA1NLVAEuDmNCMIskfzbuUA7LFNx3p6jBAAAACAAAAAEwRAIgKn0ozfOAYAUTvn6/VP4kwRcQdCrrqoCP4joRCgtVyYMCIB9MtTGoAVxWKV5e1FybySp4zykBVGu7FZsqGBtDuCHRAAAAaARTVUtVB2P9zPGuVBpZYYFcCHKoxbxt5NcAAAASAAAAATBFAiEA15c0tC5XorYmNS6lHukJ0PL45bvX6LKgH0nEMB6qZoECIDjMOx+PY/F07a3B3x7WPQuweuzha7lwXW9jO1fUrVOvAAAAZgNTVU0EPDCLuKWultAJNES+f1ZFnxNAsQAAABIAAAABMEQCIHdj1iqQ18bFJmwENz6j5kDRQkndVcb2CbvJZnO/EuIPAiBjoD/gA/L1lGHrEUPUDKx7CwgDJ5BJRgbxVymCKk7NkAAAAGcDU1VOfMYeOuY2DpI+kpbIAjgux8ndNlIAAAAIAAAAATBFAiEAkRxkFfu5qdE3VGL6LJoOVNYPT4d7LSkBNi7kSAsx5aoCID5aDxUdWzRm+stiqyTAMegMg0rfreZmFceHXtjSnaRDAAAAZwRTVU5Daw17g1e7hR3p8ZUxmcOce8RnV5YAAAASAAAAATBEAiA3i9TpdZKo+Lo258efhdNdl5/7U3q10J2i5PLIkLJ9XAIgbrCKL5kUZgf8g0DFF0zucZies5LuCIj63TIere6f6EgAAABmA1NNVMdhyNwFrlKop4VmXlKN27AMCYrRAAAAEgAAAAEwRAIgYcSS1kwqYFLJhur+pBd/pxobiCAheDKCjNR7YSlnlPsCIGekplIuCoXUNd/ouYITj0Ea2Ss1mHN+DzfCGSVD/m26AAAAagZTdW5kZXK9vyRcaQ1UtnxuYQooSGosbeCL5gAAABIAAAABMEUCIQDOpTBHFpuIJk5kGNvdfy3DFNWG4nloWw+bL+fRHDiVNgIgEUTzpGhmyQduAwIKBe5NrQbGO3EfqX2WlOmGFYZZM50AAABoBFNVTklKIqaeRasp+fcnawJneXR02vHyfAAAABIAAAABMEUCIQDX+SqJEQsVhY9CF8T4IP0yvKlVClAK3yhfkDZFMQ0XOwIgQyWofz34Y99hRMrtiX9dHHw+wUhdSScthrS2sC1ZRRUAAABnBFNVTkNpKszdi4ZpJCfgqkdSrpF98BzFbwAAABIAAAABMEQCIB9uXgep86lBkqvWgDZo88u2rYoCNtdIy9XG5EGgQOzFAiAJqiOgMDCBrZq3w8oWHx7fqQvGJLujBl1nG37LJ0SYmAAAAGsHU1VQOEVNRUeTXt+zzdNYxQ9sCt0cwkZi4w9fAAAABgAAAAEwRQIhAOyR9zCrP1P/HdQEPlZ219aqAE2CcbUXkiw0xr6g7Y8GAiAf1lkXicHtvoVeD/UThw/S03JMhRfvRxU7FdpuVVEezgAAAGcEU0hCNND1e0J5cepgkJooZImHFBqB+NwDAAAAEgAAAAEwRAIgVrgaxDwHo4Ogo2t+lJMPA8yQzoYBzsu9iwBR+a8qdJ0CIECTY2VsJ8/TaH+3nXl72Pfm/eNakxJ4RPSynEZpSwigAAAAZwNTS0UT23Szz1EvZcS5FoOUC085VeBQhQAAAAgAAAABMEUCIQCEdaRiAuGIbuz2wVunjMPTsNcNznNbIdtUDwqo9rwaHQIgY9KWR4VJG45uigUCKi03ijaw73HTWq6hQGXMo0UYeZ8AAABnA1NTSrSuGUoNzxtAgLFkwdd17gbggXMFAAAAEgAAAAEwRQIhAPBn+kZuUos6tdueVpGl7pl8kRcnsKd/kdDLIyltyjpHAiAfB88fB05tXMl9PLGG9NdE3oL6GauSZzVntVpwtTHrUQAAAGcEU1VQVIaKtsnlYP9wWEuXcNG9G5Ya0J2CAAAACAAAAAEwRAIgBw3dcAte8jf1wzmeyIYjMcqeFJ8iRkKYbhSmVh4BxysCICxyTBahWlB/ScR2CHV/6h3Y1b7lGo00nVqe6UqnJlkFAAAAaARTVFJPwuNDEY+Tf4juH8MVDNwNbz0Ru6cAAAASAAAAATBFAiEA8aSjyWMDpYEJ3QEZ0QL1OfkvOS0zO4ehTd8SKxy6INECIBT9XhH7v6hVWI/BevElNYPKl0ZZ3Tn84S4zVS7f1Ev5AAAAawhTVVBFUkJJRAVj3OYT1VmkeHf/0Vk1SfudNRDWAAAAEgAAAAEwRAIgVzLSCAwVNPsna+34DPo+YYuWWEDcrSxvEEUcBcKT0YQCIFrKjAnlV4u6mC6TQP76QAUtl8USLjYbsnRRC5WfC9RdAAAAaAVTVVBFUuU+xyfb3rni1UVsO+QM/wMatApVAAAAEgAAAAEwRAIgHKSkazdFeltGRXEahZsS+dJJB6QQn91++8Nf6l7Riv8CIEiazFyLDxCfCt3k+hzWjfu4uv+oEH3Fx1wSr/vxGaaaAAAAaARSQVJFulveZiwX4q3/EHVhA4K5tpEpY1AAAAASAAAAATBFAiEAg/WwUkHfIjKZ8mhBc0tSHzB9/MWDKbspiSGJD2y+DT0CIDKyvHXnHzs0PCU0GffHptYzW7t5EpiZxYgQFWrgaWALAAAAZwNTU06ltG/5qIcYDI+y2XFGOY3fxf7xzQAAABIAAAABMEUCIQCSxhQkXJszKPtjmXz9xM7y/3+WC8NBKuC2vnKXOB7XEgIgVWCScJPTlZOUBWJmLpfs31nTLIel8N0/67OKUqm+qlsAAABqBlNVUEVSV/2J6pL27AfZVeKtu6JADKGmNpAoAAAAAAAAAAEwRQIhAMKDt+aCzagzyKvW4MgoA494WGyMWrbbiMSM1iDRaqEQAiBvtwcLfFtJia8eAsXu7/iQAa0tED7BgY4qjy4QoXpPdwAAAGcDU1VS4SDB7L/f6n8Kjw7jAGNJHowm/t8AAAAIAAAAATBFAiEApJyB27MfpQP6XlQEJsXQvB6QH4VRb/pje0XdsF8taOwCIFguNGIgbJhnkpXBDZWps8hFvsPuFe5sjrzZfvXM1LYgAAAAZwRTVVJG6jGeh88GID2uEH3Y5WchdePul2wAAAASAAAAATBEAiA/wFmCuzUOXOtqhSYnQs1rFiAHDzRku9SQDpKZtI64MAIgCPkhg3mn39AthLyU73z0d0pod40fGWov4FqvPiOugmwAAABoBFNVUkZG1HOgs+7sn1X63mQbxXbVvAsiRgAAABIAAAABMEUCIQC1O+o38oPsMEyOHpyiRdSueRoPYJfWRdHv+dCfs35iHgIgM03LKckODQswPEzZ7E6932SGW9XXf0jerhyZynTs+yEAAABoBVNVU0hJazWVBod43VkuOaEi9PWlzwnJD+IAAAASAAAAATBEAiBNUNBBpN/o9VCaGi1bGVa1+PFE5JJzEcx3iE/wUoPlmQIgIRoOjXX+Ow2IAIM+wd1YG/1bSLwWOmLkxA0BmjkMLwQAAABpBnhTVVNISYeYJJwuYHRG77etSeyJ3Rhl/0JyAAAAEgAAAAEwRAIgWTMnCuZtPBdgaqDLJL+eDwqnhqdyzAC0uyeK1jZ/s5UCIAtC74CVYrkxC5zQEFvCrqbpmEp8V6D8B96ya89TelRjAAAAbQlTREFJRVRITFDD0D5PBB/UzTiMVJ7iopqeUHWILwAAABIAAAABMEUCIQCuduTFnHWpAkVJsSV2CLtDIhOl4ieJldJFCOMlSNr3oAIgEesriLLBjG4lTmT61+sXsVDArWLzc2UDcotnZJx8SLcAAABsCFNFVEhVU0RUBtoP1DPBpdek+qAREcBEkQoYRVMAAAASAAAAATBFAiEA3JxqNqeZ99ldT66Xg990tTpV0rJzlmIRa2TaXWHz0boCIEAlsR+AuqydYvMENfcMM9rqMcr7ANABRbFx6MCVfVtXAAAAawhTVVNEQ0VUSDl/8VQvliB20L/ljqBF/6LTR6ygAAAAEgAAAAEwRAIgAWDd+IaFkSsPUS/z571Klago7sBcMrjre86iYHygpV0CIElsegsR0YGuSQvUZmxhVz2oyuWXjZjVajfBAZ4sjlN3AAAAbAhTV0JUQ0VUSM7/UXVsVs7/ygBs1BCwP/xG3TpYAAAAEgAAAAEwRQIhAL/ZKyJATGk2ogeR6wr+vOJ23Qk54iP94+5b35ad25E/AiByN9IePKOQXYMUbH+slqXqMXCO1PIaZbjYkOHIK5U5JgAAAGgFU3V0ZXKqLOeuZAZhdeC5BJfOfZwZDDFdtAAAABIAAAABMEQCIB9OHAmqif5N5THdgPCHuAIOQ6NUyuKsZtrUWkxYkfQ2AiANuuhUhdtad6EQ3CRI+YqEtiSvaiZi/GGjHoJuzrCElwAAAGkFU1dBQ0UDsVWvP0RZGTonY5XdduNXu0ctoQAAABIAAAABMEUCIQCoqHLL3DkmvCNgCBfiwcgZgVFoCxNI45nmO8j32pkO/gIgcnt4ZfI/u68WhdWnKNJfisbY5nQ6g/KQpi322fKY8PUAAABnBFNXQUeH7f/ePhTHpmyblyR0ehxWlrdC5gAAABIAAAABMEQCIBHAVZtDx8ej8rDTBsfP0K5FphOLq76OIDAfyo/GRfNHAiBji75Vub7Y/l+0Na16MDcSYTtX79TkDkA2YRB89mqk+AAAAGkFU1dBR0ehmkD71zdUMfqwE6SwjwCHG5onkQAAAAQAAAABMEUCIQD4ZSSWTSOGUAvW4evcAlKnaLLg4Bjn3H62WREnl1fZ0wIgWt7XNnkbD/ga9mJvXKLRp0/AaxPX+8qkv5BJv8hgnC0AAABoBFNQQVqBCQiyhfha9mj2NIzYsm12s+wS4QAAAAgAAAABMEUCIQDhIC5mA67NMaGFaAArYQNDYJ70Wip6d/QbUERJgv65qgIgPelwkDWrglgYVz/Sj5kS2B6R6d64cRR73vadBl4ZQP0AAABmA1NEWAQf3WY37P2Wr4gEJ4rBJmCsLRLAAAAABwAAAAEwRAIgCmt5Qb7uNIqie/M1Vdmf5UduIFdCwTaShk6fHBqg4yYCIH6LZnlaoRGekIH+4XPbq2zlkTG81pusokF4GR1hDAZ0AAAAaARTV0ZMuiHvTJ9DPt4Aut78wnVLjnS9U4oAAAASAAAAATBFAiEA5OlOypDpwRRFjmS7sqdT/68djjN0jYYi7+PC6SMSEZwCIDVWob5OtDcQ521GB3Ool97izIF8XV99wC8Qp/lCDy90AAAAaQVTV0FQUIy5JFg2gcv+SHpiFAqZSkn4M8JEAAAAEgAAAAEwRQIhAI+I6pNe5IB7r/+ELNhKY5/VxyAeQhI2YwHYyjOGFA2kAiBsT6QodWNrErBA4LKA0iFIZkzvasymmWjE/wFtuKoHAwAAAGcEU1dTSDrCq5Hd9X4jhQiSAsoiHDYM7QBiAAAAEgAAAAEwRAIgYRJxSao/5te4Xql/h++L6hBo3JmLDU3FPXg7ylVP+S4CIEud3nbjK4lz0TZf+WdMQultENXGg3GyojAhnz0nPL9lAAAAZgNTV001BfSUw/D+0LWU4B+kHdOWdkXKOQAAABIAAAABMEQCIE7uIM8JQqMlLE79puD/tVsHWyeo/uvmSTv7ALzIzYrpAiBIRLGzxb9R6/ifiROTqj1ZlcvSZcQvpBxJa338vuGpZQAAAGcDU1dUuef4Vo4I1WWfXSnEmXFz2EzfJgcAAAASAAAAATBFAiEAy4TqvKw+PIXprsdxDYh8gOatS3mh4Ng8+YdolMdmHFECIHNpDtJctU/MbaodWK2rxT/W6zHDXiodKst82qoEgUVrAAAAZwNTV02eiGE0GM8D3KVNaiz2rZNKeMehegAAABIAAAABMEUCIQDZbtTGJAXXOp60iMsDw89Ux+AW+ic9TaQpGr5oWs8ijAIgAJV5A2MuNiehO/eBaW7UpqQAWkd+9gU5pYuIMumdnwAAAABmA1NNVLF1SMe1EEJ7qsTiZ76mLoALJHFzAAAAEgAAAAEwRAIgG+VrDkkjfAYb0X+f8WA62gE4Mm729TVOiWcxkYShCJcCIDa7DCIoJD5p4Hkjes/4nc5DnqrJwFazsDtOVQOvp02TAAAAaAVTV0FTSKEw46M6TYSwTDkYxOV2IiOuJS+AAAAAEgAAAAEwRAIgQhExNCwBdajA5mmZoA8xL5zzjbiw+hvYIhDYdGGHmQ0CIEq9M0V1FScgAsXDrEBAe516l8b4ZetGoeKo3ew3DmraAAAAZwRTV1JWuLqg5Ch4kKX3mGOrYrfxdc7L1DMAAAASAAAAATBEAiAwBKKVq8CewDabFLfrX0YUqJ3a6QscSNnWRKQXmD2CxQIgZ7kjsa7c0KHVXXxKYexJrIjuFMC/5BpnVyITHZnksgkAAABoBXN3VVNEd8bkpYDA3OTlx6F9C8B3GIqDoFkAAAASAAAAATBEAiBSfWpOn6koT2PWUVylfAK+zMvlT1HRwj4tqAs3RUznJgIgRd0cVrfM40ixqWFivsN6ZxMvkcFyYdy+14Z/OWHT8HQAAABoBVNXRlRDC7IX5A+KXLea3wThqrYOWr0N/B4AAAAIAAAAATBEAiBDQ7BzgZO2e+Dun+6MAEWwwKWgKl3F0XM1uiOvIzCm/wIgQxP6O3zk8Np/mo+mnShooyIxvMw9I5WFlLoil5eSF28AAABrB1NXSU5HQlmCh8e5Y7QFt7jUZ9udee7EBiWxOgAAABIAAAABMEUCIQDAXq/YxMIYdhg+isUHohzH0jXKj2Gy3z3bc3fq4N1aegIgK2clBr74vQbeF+k7d0ktzFIFZvJyzP3Ge5XZneFt250AAABnA1NYUIzpE305MmrQzWSR+1zAy6DgibapAAAAEgAAAAEwRQIhAIq/MAWoqMY3j8tSB4ai8VEaGeuEs3VDq8fO8vN4pmB7AiAEhXrLBfJ/ECAh28IPCt1oG7jm6Xai0wD3aPJ+1LSRDwAAAGkFU1dJUEUT1xz8kKg80cwOWWdcP0uQ1BYqiwAAAAgAAAABMEUCIQDUoRwhTvyIxUnJ0qhC/sxrjxbiAK0C67I9qUR2c3RqQwIgTPbx3QNiIc9TsYykTCufoq1spzAL345lVARbogBC538AAABnA1NXR5LvT/v+DfAwg3tl1/zP4avWVJV5AAAAEgAAAAEwRQIhAJsXc1KreZz8LwIwx8e8yB+Iu+BT4Vcoi1tpa3UBBafhAiAO7P5LElpZ9Q+Z8DWbskXmJAFezotZ/mCzVpzSUjr+3gAAAGgFU1dJU1NpLrdz4LW3p576xaAVyLNqJXf2XAAAABIAAAABMEQCIGF+CQt4mPBcV8aSps2W+Zy8Rdl+Skmw+agbrJO0TJGVAiB4ggNzcoSPFQAwnYu6IDNzZCZQ3hrR2mOyImHQTzjZjAAAAGcDRVNI1qVcY4Za/9Z+L7nyhPh7ep5f870AAAASAAAAATBFAiEA4Ab4LA+wFNgm1eN1F99L/R0AaadmPDacZt6BU3G+y/8CIAFNzNJwge4T53SGaxnhHH/QJ2SNGfslcpId5dyo9ovXAAAAaARTV1RItDcdpTFAQXy7M2IFU3SxDZfkILsAAAAIAAAAATBFAiEAqtcLhBpXxrcWRT6hQV4o6bdDW7ZDq18UlkIn9KzPHGsCIBU9Y+6k1GEqqBFo1IF2TlevMKEfWw7j+9JWJD04GpULAAAAZwRTV0FUwPFyjZUT78MW0Ok6B1jJkviLCAkAAAAIAAAAATBEAiB1t82/JvJZtR/nUcewETEtQPwWP2+V4vKRrKJPzXqFlgIgKvCEyqsjyBimPgsg018f8EmSczA/wfcDtC4YvVu4ujsAAABqBlNXWUZUVKEkjHGNUnUrLMJX7rDrqQBAja64AAAAEgAAAAEwRQIhAKwt+ekhK/w+H6Pl3UVSrnYKuP6XcdiApL04THwc5JHAAiB4GCONkhx0cgDbLlgT43fAWkP7mFVYhFz6iji16YBlewAAAGYDU1hDaki6eV4yibkVEDbhieNS4+4sd5gAAAASAAAAATBEAiArcYm6ohUZhnG/tl5HjJ+fVLznCU+4BcCnsvyj962cDAIgPWZD1wmWsEgzbUQ8c/xXEx6tclbH7H4dDX4H+rh3wQEAAABnBFNZQkNpQou0Jy4xgd6ePKtGHhmwExhVyAAAAAgAAAABMEQCIFBkgXK3drvOoW4leCVwCUczUmjtCw2DQ5FLWCo56xUrAiBJ98Qm2qwuU2437TdWvjkPNOEZkftnUttKro/YSqMnwQAAAGcEU1lMT/KT0jvyzcBUEcoO3dWI6xl36NzUAAAAEgAAAAEwRAIgH+frxZIdjcwbqdRzRde77nHYnU/Nabr+Q4vwl6pxvEcCICsAmxgNGH1yksdIzg+Jsc/XgUh2RuB/2G2lAhFvfeqNAAAAZgNTWU0v1hVnwp5620yhfmDh9KP8/misuAAAABIAAAABMEQCIQCfhPokVB08cGi8+syFxEwRSGwqg5sQ9l7eWFmOH5Di/QIfRqTC/VMcPiY4tZ0jyFQ+Yrzgn5Po5SKkJEJzd/WuEwAAAGYDU1lOELEj/d3gAyQxmarQNSIGXcBYJ6AAAAASAAAAATBEAiBcQMQFClF/5zByFT64HvdhKbXGLfEuuqPOumpbGF/FhQIgR4kfFRITxBv9iNfa2AiidPjyyLLfdWhhTQv9HHn4LG0AAABmA1NOUGkR9VKEIja9no6o3bs/tBTixfqdAAAAEgAAAAEwRAIgeMgTRGn1c9lbzypYyX3IH9DcOnKA3PlyZuhVd+shLZMCIBNRLssQY2BnRpyxdGtMbGQz6MrRgZOSoiPN5WeM2TiMAAAAZgNTWU4PLXGUB/2+/wnYdVertyMmAf2fKQAAABIAAAABMEQCICKlvsRAEPYnp0eEN+Lyyrcnh+7kZtfTUBjThO62Le0oAiAp6nUuiNNsGr7+cP8q5oOqY+VIlF03j3TUznD0xFqejAAAAGcEU1lOQ7b/lrio0hRUTKDbybM/etZQPv0yAAAAEgAAAAEwRAIgbKgb7JFuTCfhAb2+QO06MOt8lx4ub3Q0DylcVmYG+GECIAR5uSz5WIv8HheBNhe5zH0vmaT6ZPurc+JOOVEskI28AAAAZgNNRkdnEMY0MqLeApVPwPhR2wcUamwDEgAAABIAAAABMEQCIFcHtAoyVl1OoMJ+L1qqO2qhSTHNVIBUJ3pRjAJPC1WYAiA3Zcw7cVCOI8KHpgP00BQayuXXBDKLd5JlWJmWDBqSygAAAGYDU05CF54x+yXkM0QaKDk4mnuOycRlS3sAAAASAAAAATBEAiBB6cCbpsYPemb6Nthp5Xblv55WBYJJXoBSMMKKqOyc1wIgHlzWTDKvRTL3+Wsnh620vNJeQUi9lyDjbAbYcpIj27AAAABnA1NZQ+SSFOTJLcm8s7VsEwmv4NYm3XMOAAAAEgAAAAEwRQIhAPm7BmY1qLyRvG26HUbH9mvMjbpOewg5frXIsbjq+z3wAiBEtLPe0/Y/rPE0L0HJ/eEO6c2ZRTtcllt38zaUhi79XgAAAGcDU1lOFpWTbWqVPfaZw4yiHCFA1JfAi9kAAAASAAAAATBFAiEA1zDDdzPol46qaTDeVHLyYCdqorU2Rua0GROo/ycE98ACIEgLEidtONZLfUuLEVOn2NWD7Rtv+/ftQxUBez3RjD3DAAAAaQVpQUFWRRdsZ07lM8YTmw3ItFjXKpPcs+cFAAAAEgAAAAEwRQIhAKEh3G6jD/nAd9v2BwInCx2B9X9IfjSfcdjTxh0Pg5+jAiAsKUNDucyU7rPBpiSUVQ7yDkZrkhxVm1itxymrnc0V3wAAAGgEaUFEQYqAeccUm4oWEeXF2Xjco74WVF+DAAAAEgAAAAEwRQIhALFUpt+aTz4Al2nEAK6b/9yEnIVGsNRt2vNqNhfSiMOLAiAzVHmW39D/lttu3d3pTUMUwqtEUCYK2byMerEQ+5N8rwAAAGcEaUJOQq/YcPMs5U79v2d0ZrYSv4rRZEVLAAAAEgAAAAEwRAIgQgYorIFtUdIByQTSFC2VkGsx1rTacMweg28BY0NV2v4CIAL0XcUabyBnN9L0essjHAmhXO9/VP3Kfpu0g9aBXXJ8AAAAaARpQlRD1gFOoFvekERIt0ODPd8Hw8eDdIEAAAASAAAAATBFAiEAhnT3vRmWbdvwzmlsvoSAj+iRxRIiEf+bjKGQOE5IRQYCIASwK65gos8yeuuCVjRqio3Cz2N8sjtHWF4TFWbQ2U+HAAAAaARpQ0VYM2IT4d38afRwH8P4b070oWDBFZ0AAAASAAAAATBFAiEAmsZ5Ocgj7VZqaStjqbdIbsKzPTdbTDhWaxfGfa/DV5UCIFBURiE9GxZF5ZvsosE5Fw/pwuGh60dytkuM0ExR2TDkAAAAaAVpQ09NUGNFcosczhbm+MUJlQtchP/4hTDZAAAAEgAAAAEwRAIgWgV+xL+9YvHvJJdL3ky0KdDvN2tcCm/xKaBxtinFyLwCIGMD2gPs17UnToXbk1dx/KSh3wAoIrptgl8ZENWpmDk3AAAAaQVpREFTSMuY9CIhssJRpOdKFglyLuCfDMCOAAAAEgAAAAEwRQIhAN1F2iEEIbjd1jwrbDmM+Z/1h+Bt1uJDuourPHUh4kqsAiAvRFXwHvsLnKJzSC+bu/iZ5yPyqRYoOxZiurRGLb64NQAAAGgFaURFRkkU0QADgHrGDQe7C6gsrqyNIIfBVwAAABIAAAABMEQCIDaKXDGXgHhHr8TPabZIUSAYHPJ6R2Ft19HNkmz5pyRbAiBU/QMHAzAM8QxuAsXg+t7Gx/myNyANBEctHasLYjzd5AAAAGgEaURPVEapdinJwfWN5uwYx/U25+bWpuzeAAAAEgAAAAEwRQIhAOXhDxnS0nptcMfBNQQa4DwwAEffa4luwKt4lkbAugmeAiBe6IU7CUb0HzzpUNPB9zYACBj3+kLNtBNa5Q8A/9XHhgAAAGcEaUVPU/TuvdBwQCHvKmu+mT/fkwMM14S0AAAAEgAAAAEwRAIgBlWSrub7Da3vzbH0PRgVlJnFeSyQ744YHFRD/FbtwGoCIEKfoZtOwJSea8cetX+CJ388V1jTGAaZQ46oae20HTp3AAAAZwRpRVRD1QwXRtg10ncN2jcDtpGHv/6xQSYAAAASAAAAATBEAiApOuwCbGL3+FDzS/5COTZnf66ec95LB5zTbLQ6Vu4hfgIgJ+c/82SP/EjVLJyNbLaR1Hsc//7IxeedDFD5sy6b+qgAAABoBGlFVEiphZh04XQ6MkCfdbsRVJiSE4u6HgAAABIAAAABMEUCIQC/d8MkO4WWODW4P84X9Y7MIV5RWUIoQP0vJXjwTQvAiwIgdVEDlNEAvhF7dmtn5Qh7eqiIJIAEDncNPGcuHPpxI4sAAABoBWlMSU5LLXrAYfw9tTw5/hYH+4zsGywWKwEAAAASAAAAATBEAiB/WgkeW57ify91KqsC1FRMgRZvS8N00hLTNYIOiCIsXwIgYiMI+IbZuWVV9SBME0//47eb/eWDouEWZsLwEUfF+icAAABoBGlMVEN52hQxFQybgtLl38HGizMhaEaFHgAAABIAAAABMEUCIQDXKyGmJjvm0Ln5XGF6n0TseXY1ssyV30fDw5F1HJpXjgIgP4s8I/d1enTHGUTqP/AGL0Hvbvb2N3zVQci5lqKEyNQAAABnBGlUUljFgHGDqWYaUzywjLwpdZSguGTcEgAAABIAAAABMEQCIGme/GkPRg41Jyr/xizp8wRieInn7wPCwmW48TIsuyiVAiA6luIDGdlvMJJJYGM/5TaG3fpGuW1zUDkrPsxPMbBeTAAAAGgEaVVOSTagD/kHJXDvS5KSEXhQuP4I2WzOAAAAEgAAAAEwRQIhAKVE4VlcFrQp8R2zBXETVglS+vEYbOeUf8OQDTDo5ZcnAiAvtcVn/FGKhgSxKnRRvws7vIayXG0eTZSPAxsNWjGfrQAAAGgEaVhNUkrfco4t9JRQgs3WBThp9RJ4+uGWAAAAEgAAAAEwRQIhAIGnoV/2JnReL5Wy4w+N49jWLvF/Q6qq/VbfgrLYGf0gAiA5sS5xGArr9Hnx878YLinwyrCWfEzkTtkYJpbc9s2kzgAAAGgEaVhSUCcmmz5FpNPnmj1r/uDI+xPQ1xGmAAAAEgAAAAEwRQIhAPD43BR8hYgxJWzrwmkIjMkgEFQAXn1XlYZbPLNcK5PaAiBv4k/OLm5aYF/Fn75Lxke8xrrCR9MZyvVt8dtEtFNsqwAAAGgEaVhUWo3u+JBYCQrFZVqZ7rRRpPkYPRZ4AAAAEgAAAAEwRQIhALiisM6rd7MX42xq7Zv70fYfta5aEwiARqvaec3Q2DpyAiBL74drORZ06TQnzKlfvJkQLVJGWK330TreWYL1btdoJAAAAGgEaVlGSVkiRDAc6pUtbasv3B/mvZ5TkXMGAAAAEgAAAAEwRQIhAKvhDNfMQL8rwtR6MPg1InIDwwEtJCGMG+VwZUjrqvk/AiAGWzLYlNdpfiwAECFi9q0AEOflXKruz0r+C0JdW+6bWgAAAGkGczFJTkNIzTm1Q0oKks9H0fVnp9+EvjVoFPAAAAASAAAAATBEAiAZXpKB259+11GTCTn8r/FlqLtHsJXPmTkcrtZ7k1kL6wIgagbYyYZWOa0fr7D1lpDmB8xPCvpQ9hH6Wam/4uhwXJYAAABpBXNBQVZF0t81XBlHHIvX2KOqJ/9OJqIbQHYAAAASAAAAATBFAiEA1EXPUEtlvr0hLD8CVjQ5UTyTnaGXe9rilAhx1yHJZQkCIC/GfE5zVJ5zV94lmqC6hxjt100MiutYLMQl91GOHimmAAAAZwRzQURB424tPHw0KB+jvHN5UKaFcXNogKEAAAASAAAAATBEAiBqBdbDbtf/UuCCHzLAacn5PRoU92FP9WVcIpd4F/OQSAIgMwvtlHmZygv0eSxD7fth3Um4o2B4XQfuBHmRmwMoyyUAAABpBXNBTVpOnPfmGFPqMKQbAhaTkbOTuQHqxFcAAAASAAAAATBFAiEA6hwtU184vin92dCfObAJvAQ1u3P7ZXsVFVkjhXKU2x8CIAHxYDzHu7w5aOhu4usUsOQvVOzyIn0tTdQwvFDSknnWAAAAZwRzQVVE9I4gDq+ZBjYrsUQvyjHgg1dzuLQAAAASAAAAATBEAiAakXEap4+VHuSg8zl0ea+wgaBMiGeTLqI7TZzXc6NnMwIgED2mDJ8PXDhJbBn3mOj2iRaUfyWGSAgXmgLu3MIBZLMAAABoBHNCTkJheuy2E3tRCNHn1JGONyXIzr24SAAAABIAAAABMEUCIQD7Ll8U0hO/I38tUNqcQ9Cw6We/XN9aZGu1PhkLq6mgjQIgZx6qynzIj2b4GJtqYWSSdTiJx70pbIpiPklJxHcPsN4AAABoBHNCVEP+GL5rO9iKLSp/ko0AKS56mWPPxgAAABIAAAABMEUCIQClZOM/Z57xXkOsUO40i/5VfQa2WO1Dc5nW8IqyqIEiHwIgGLhkyfbETldLY5h1+E+wopgRBO+CGTYDPGuxrUIPkwIAAABoBHNDRVjqus2EShltf6885Zbt6/mQA0G0IAAAABIAAAABMEUCIQCSwFpOrVVn1FbqnzN1+5qpyZOr7CMyAyuRiY/vu0/IcQIgGGJ93fBW2M1e2zLKFdBxP6GnF7n54q1gqKOCdLX8KDIAAABoBHNDSEYPgyh/92jRweF6QvRNZE1/IujuHQAAABIAAAABMEUCIQDYiTQYpMAQ6/wNsIXuEEOBEPKAjdNsZSEzLaySF2EnxwIgdTe4Am9ULQnR5dfs5KIaZJS+9T4ByeD9sZH4gWrJTtoAAABpBXNDT01Q6wKVB9PgQ91sh/KRfE6CuQLDVhgAAAASAAAAATBFAiEA8wV/wJdv9VoFwrASftysk7HmdQmyU3oH6mPbnBSTw90CIBCr77exHoavdQKhRMQgzLtnX0YSyXBKwlSj6yx5AZhtAAAAaARzQ1JW04rrdZiRiC546VfIBlZXJQPYwbEAAAASAAAAATBFAiEA4mZdzhEPTfqi/vOJdbCZrXBQfP9ivpFW8oxSzozo8IYCIFTicUaRxhsvMo5KaEYm9TMDv4PamAO63RDGW60iAlEJAAAAaQVzREFTSP4zrpWp8NqKhFrzNRbtwkDc1xHWAAAAEgAAAAEwRQIhAL5y6f+hC+eypnqmKcpai6n15vuLE7vJ5C1qXyBOQywaAiBpP6TenPaas6/hwXrWvnQg+yHp5PV+W/3ePmQ4F1vmlAAAAGkFc0RFRknhr+H9dv2I94y/WZ6hhGIxuLo7awAAABIAAAABMEUCIQDI7RQ2WD8QIQibI2hWF94ZDdKdHWWexttoh1SF1+ET/AIgQlb3fkFQ/N4lPQA2ij0rY17msXSTCWY8z+kCaNUZjTAAAABoBHNET1QXFawHQxAr9c1Y77ts8twmhdlntgAAABIAAAABMEUCIQCdebZ6E7YlBdnE+UBVYzCNHZp+oIOrbrhBXpMdB860PQIgJEuJ5oUkC1HYYwrTGd9IL3k48Pk1s1rh64zAgaTw8XEAAABoBHNFT1OIyM86ISwDaWmNE/6Y/LdmIDiYQQAAABIAAAABMEUCIQDONCckYF+PDLeIl31SOxBvbT7InzbUln7qnxgSBmbIPwIgchX+YLZqzAg4Ju5wSOIucrb/fkHwlR1k8neID6hVyboAAABoBHNFVEMiYCRp1wS/+wk2x6fPzRj3qiaTdQAAABIAAAABMEUCIQDsZEkg8sgEXVNC+QiI1/gxu6aDulJfVs+KjrD61L2XIQIgesA5op21BYW8SxyXw2g5DloCqvaSuvWdaFFf6Gq1giIAAABoBHNFVEhedMkDb7hr1+zcsISgZz78MuoxywAAABIAAAABMEUCIQCktBEB9FIy5PHaIJCuzFf7Zv488rTMzTY/xQcqmQV0tQIgb960FimClracXEgaL0+6i3XM7HnGqe6FYFU2VV746AwAAABoBHNFVVLXHs/5NCpc7WIASeYWxQNfHbmGIAAAABIAAAABMEUCIQDfsLHio/8GlG4oC9ckKZSTXa7LHuEBY+4RPv5+1B11tAIgVmgLGI7e4cz2GBAuHN7bhg9sCYbbEASbC4iK9Fvifz4AAABmA3NGQvULXlNfYqVqm9LY4kNCBOcmwCf6AAAAEgAAAAEwRAIgXIGoO/drQZdmC3dATcwG7nEHRu5tPUdnnwC7eUtIq3ICIGScezP0Jl3RDSK++y5A/ilAB+LePhsG+5o6gHRNfkJjAAAAaQVzRlRTRSM0gWDX9ayiEZXfK3Dyj84rC+n8AAAAEgAAAAEwRQIhAPiPbiEx0dL+2Oc8Ch9HJEPkmXe6clue7hHNLBnzbrvfAiBUUGrrIXVSEkKtmudErbBk7NIxS7E+vzv+0OFxyl/SoAAAAGcEc0dCUJf+Iuc0GgzY229sAhok3I9NrYVfAAAAEgAAAAEwRAIgcDt+DUz8vCiO1Tnh7e7bNacZaiW9+jpbUjrIw/1+mHICIFanCRIros3E59wITgoodN5tJ4PMkzl9NieF/0O2JI5tAAAAaQVzR09PR8Y7jszlarnEYYTsarheR3H+pMitAAAAEgAAAAEwRQIhAO33h91B08E6G2z4iqq252AeBJtoPnDLnaxE9Gc0YhiHAiBbHXnh4kys/XjgCA8erLdns5tEyz3DHLYDXZuxxwbkbAAAAGYEc0pQWfaxxifpW/w8G0ybgloDL/D78+B9AAAAEgAAAAEwQwIfH9syrjjnZcvxjI+cEJJsJgcBT55vI5xXa05jX72g8AIgBRHruGrmwLF8BYqwzCa3kbyhrCDu50rpc/s+EdEk2eAAAABoBXNMSU5Lu8RVy08bnkv8S3OXDTYMjwMu/uYAAAASAAAAATBEAiBk+NhpOduIuC95PKq3KPSi1n+qc8khFHzuyLNp8D9l+QIgEW9T6VrGcq0TrcF8IgiNKKUVaCA+hrpp3JZOjNESSWQAAABoBHNMVEPBQQPCFB6ELiKPusWUV555hhbOegAAABIAAAABMEUCIQCVFu5Q/FlL+p1rWffGmlebJ0LNt5T/AO5FTt9kHeCAAgIgEJ9wayjSd9Djtbye1z+C11z6Y+KACSJt3mNiQ+jsy0cAAABoBXNORkxYWn48B2BOtRXBazbNUZBqZfAh9gkAAAASAAAAATBEAiAR2skZRIqTqXSKAr18F68SIqSbPjTDCutMn3h6qCAwXgIgb/6jjOe85L003MeGObq2+Dbd2xi6QV5/rj6o2mjWrAUAAABqB3NOSUtLRUl1feOsa4MKkx7xeMZjTFxVF3MVXAAAABIAAAABMEQCIDQpMb4SyMPoIY4lvj+d5yLKvPWSYcOSo4/83a5qjyzOAiBG9kJK9jNEWZO7aa6Z54UyiA+iVoFeuevMhr2HrEcbGgAAAGgEc09JTG0Wzz7F92PU2ZywsLEQ7v2TsRtWAAAAEgAAAAEwRQIhANTEYTFgxg5UY55kBAwermPa0mEO0hLN+crbHOXSM6ToAiBdujhyP9w1pfiITj1BfbLWkCdsbh/g/87hW/tthalsgQAAAGgEc1JFTtMVM+jQ899iBg6Us/ExgTe7bjUlAAAAEgAAAAEwRQIhANFEoDOqRsxbTYI6BQJqWQ1yy/z8JBp4zLLf0EH+q5YeAiAgo6b/psbm2z0NFFok6HNLlEm6NrmIm+3cLFsqOHdwWAAAAGkFc1JVTkUDUlV7AHpKrhURwRRAm5MvBvni9AAAABIAAAABMEUCIQCge6i8wLo7W/qJMZiq8A0yPczlvoIKPlbWNLXQ+AzK7wIgCdUYxq3226mzHg6C9l3pr8bsXDlj8e8KOXfVUW60gdkAAABnBHNUUljy4INWWI7FzZ5DdVLah8AHa0lwsAAAABIAAAABMEQCIECUP1TZf833NPyeYOCar+RRIWJMoo2ga0LK2A+Gl0iAAiARqhEDjTpf3cS8XGnlj4DvKdDbHniwb7vfAmaCtJmMbwAAAGgFc1RTTEGRjakcy8MremoMxOzVmHu6tuMebQAAABIAAAABMEQCICyPOW670GR1Z6KeGMU+Zlm+/ysw/KjtuQMnxISOAxFZAiBAU7K3plu9nwY+dovDxoL5qdGrePIwnxQnHj+/JauorgAAAGcEc1VOSTBjUpfkULkw+Gkyl+uhYNnmyOvPAAAAEgAAAAEwRAIgcubVWllkeFUU6DUjf29tarz1qDT4plzgcMg8BarDsnYCIGkGNclCfbSpudvtybLBTab1vi8B9AKu8djxDXD4IYAPAAAAaARzVVNEV6sewo0SlwcFLfTfQY1YotRtX1EAAAASAAAAATBFAiEAoo23wEgg9ZRttk9ruhqsN8PJ1bQvrersThRngBNKHkECIEwxTVMTCVSNSM2TAitCAhi4+2zcaRPtYrjLOAozoSVxAAAAZwRzWEFHaiLl6UOIRkGBV4qnprhp4A/ieEYAAAASAAAAATBEAiA27nlsRBfEs770/9sFEMcT9pyrtKtl/tJsQXv/T6zmhgIgMbKFJK1m9FXJVCmB5gRtz0w0Gy715WBKsc+EqhiqrwcAAABnBHNYQVUmHvzdJM6phlK5cAgAoT37ykED/wAAABIAAAABMEQCIBzEDkuvaDasFtzJTknl3PxYLa4MgxqDKlXTHset/6rXAiBfdYzJO6w+n01ZKAgTfziCJNPWQ8wTnfwNilym+Ax6oQAAAGgEc1hNUlKZ1vdHLcwTfX88S8+7tRS6vzQaAAAAEgAAAAEwRQIhAM/s9k6T+4OgC5av6zgS7V6AnA/1WVkZyMwPCindZQ5eAiBs4MFHyShkwjzBVVUmCtkog8c8ab5VxJrt1GplNe3P4QAAAGgEc1hSUKKw/ebXEOIB0NYI6SSkhNGl/tV8AAAAEgAAAAEwRQIhAP/oUZ/QHYpOf80w7s0dkHvz8fC4YA4AnP0/TQl7a1yOAiBKtXoqUrTnmdubj8oDb6ZjhV68Re0EHWSBRXc53dYGHAAAAGgEc1hUWi5ZAFxcDwpNd8yoJlPUi0YyLuXNAAAAEgAAAAEwRQIhAN4F0Aq1VJSBFJijWvIKvYdzbD2cyjyyj4npeLK4GvX+AiAZRDE1/u7fJt9P4M9FZYiGDx4E05D2B7Zaibi9Qn49ewAAAGgEc1hUWvRbFN2r8PDideIVuU3SSuATon8SAAAAEgAAAAEwRQIhAPF70B4YZbQpkMRNcSW+9LmVvfiGTXvKFUFK893K9/JyAiAcfOZUf+UvhRgLfddzE5dy0KNih6A6bZMrPJiSOjwi5wAAAGgEc1lGSZkgWLfbCPlzTYRIW/vCQ8TuaVSnAAAAEgAAAAEwRQIhAIMgB5RAQmwCdjDrjsJO2c6Em7n0V55ygltyNtU8wADHAiBsp3CLQwXXihiW24nzggIrcgQviNUxvtaeuDhIjycb5AAAAGcDU05YwBGnPuhXb7RvXhxXUco7n+CvKm8AAAASAAAAATBFAiEAvZ5ROaoXS0hUn4jy3nvvpXw8y7ag3cY2DgkCOER2q4ICICI8FoRuDaPwN5GEZtJxQvTl60PEQeoxZ5dDAeSIHDYDAAAAbQlULUNTLVlVR0GSIXKdD+DNWDlmma6jEcPS5Qwd0AAAAAcAAAABMEUCIQCyFfsKC5ldh45o4fab/o9M7gabVDJrfiRnWgR6Y46EgQIgVMh9icQGBDfvJKSJXZe+I6zz/S5CflY3WwGhOaNKSHQAAABpBVQtRkJX4hoq6weMy11XKGGpY9MrHQv3w8IAAAAIAAAAATBFAiEAtILIj4JBYHrvCJmq3vtGFh49Vwj+kX5O/RUeFi/MjSgCIAfib011mvqTvaGiUiyH746tb3oSaq9xzFEGQ9pD6aUqAAAAaQVULUZER5Pvwn+RX8aYkup9FVtmQBiIlUFBAAAACAAAAAEwRQIhAJ6kudcyVeu2eM3+9ErxRADb4jCeEwBM2+ow9vxx7rkYAiA7/fOqBDHXA+kKBkyXGCTzTfikr+BrMvcc5z5AGg9tcAAAAGkGVC1ORVNUmkjC40VvngJC/e3XGSkyU0PVi08AAAAIAAAAATBEAiA9aS+1Y6Xqr6oAyaWXf7PqF4Q0Pd9ju+muLMsPHtMAeQIgIlzRtWenjCirdKlWqfNUfG5vZh/VEqnA0QOAfxLnDE8AAABoBVQtUE5D20INwd9XWudB2st9b0/zZtDwZ4oAAAAIAAAAATBEAiAS6Vg/lWs15Ro+gznJ7L5xkKDfdQQzXCW78cYM1kuLwwIgSBaGJUKbZJPodo74y/lJh1xU6xosQy0XvPb3Z8dJ5CEAAABnBFQtVEKquoKkMq0+5X9U6djdXC+1OL2BMQAAAAgAAAABMEQCIA1p1Dyd7Q54nwVkIEOSDK/rAGFAsgvd45FIyBGFhyVvAiBiJ0K8XTILclm1aya/D9iEZQxccZRgZt7/yEyLEbM4HAAAAGgEVEFDTwDReT18Oq5QYle6mFs0x2qvZCVXAAAAEgAAAAEwRQIhANzQik3BrRaxQ0M1Lm3X2prAyZ3YJYSMjzM/ohR/Lxd/AiAmPfPhlQwH12ZD85y/IXCm7mABW1yw1KJ1mDndfe46+AAAAGcEVEFDT0HAKKTB9GHr/Dr5FhmyQABOutIWAAAAEgAAAAEwRAIgfMNZfDNCIaJfg+y+6/5ZJ/w5c7+16f917oehBF32UmUCIHm+Ed5eR/sttQ2wmNmzrjqZPdsrFmN2ImvDKkf69Q4bAAAAZwNUQUSfcimvDEuXQOIH6ig7kJSYP3i6BAAAABIAAAABMEUCIQCdqs30b/2eBWWmOnWtuQN0Tahzj256j2srf20CI33yjAIgakSRwmX8BhFPGSc6w+t900+uInmqiFAUxQkiiOt6EkMAAABnA1RBQ97rYJGlrcePoDMr7lo4qJCLa1ZuAAAAEgAAAAEwRQIhAK6Miao+1KsvzYd3aYLG5rQnaPb9BoEQMJOWYLOYqwVnAiBiiXA6kffiD3VLU6P06dP4/SxqlE8exTA+BuXimlu5/AAAAGcDVEFHzErpQ3LaI26bETEy4MRsaHBCRrkAAAASAAAAATBFAiEA0zyHirmGg4O3oaLO+EeBNxPJMNE9YjeyhHqTfAGO9G8CIE7bV9Cv9cXd+j4tnvY/wQir+fvCrVgekHYy/FZ4rRc7AAAAaAVUQUlZTxPbkDTJymy3OYhyiPznkFRKR2+MAAAACQAAAAEwRAIgV2Hwdx3WdhLFwYNOJ9E6rtHD673EZlmaTN8ljU2JCzgCIF9qkgKe6LySZdWhQA6kFzLoWjXMbcwhn1Mc6kWd6RXFAAAAZwRUS0xOBnXaqUclpSiwWjqIY1wD6pZL+n4AAAASAAAAATBEAiArQ14ISp0v9wO5Co7MWcy3TQxx5PXInqee53wL5UzwmgIgH2YZI4ZtpJTucRtfS8eJYj0wVx41tM69XFKCoGidFn8AAABnA1RBTiw2IEoHEqKlDlSmL3xPAYZ+eMtTAAAAEgAAAAEwRQIhALkAoe6+NqPmm+OM3DxlluUN/zxQwH17O+pWN+pItq+sAiB2m8r++rXaO1ShHmrfxQZi9QUnQLhKW+eStGLZ9YI+CwAAAGkFVEFMQU8dTMwx2rbqIPRh0ymgViwcWEElFQAAABIAAAABMEUCIQCd6ikFuTFn/3bO0eHOpcCG6ZmKCuwCK1Wsk2xfqYYe0wIgIY3XhwvPTw/FQoT9akoynPgzJpnftktSt3AxIJf/rMgAAABnBFRMTlSfMAtKwL+Uytd+fi0/hQNSuLsmTAAAAAgAAAABMEQCIGApUDHU64MBRoHS/pGLy68lv+kGu/Suz6rIy3X7ZhVqAiA8B806OYCgJnYXwCboD+bDXDMlB9LiGZhDRzNBQw5NjQAAAGgFVEFMS0F2BiZ6S//yxQEMkpJDSMPkIhlV8gAAAAkAAAABMEQCIGo1ovu6sLhW9MpFoMm9iSwHZlSLuBkpnoKwOlXSmAkCAiAM0JtoEnImoYM85YKg60xhuu4pnlsweY6MfYYKe7Q7lwAAAGcEVEFMS8qryqTKQuHYbeGiAcgYY53vC6enAAAAEgAAAAEwRAIgLXvUEMlYgYl85CzSQnWld9Z08YxKVmJXiertrY/qrvsCIE8lFP3IupjI1LOaXmhNRkVahFa6LyM9staxO7SVKfUPAAAAZgNUTUVudC4pOVz1c2w1hTjw8Tcqs9/nMQAAABIAAAABMEQCIAmJ0w8kt+LdBi8tytU2J/49d9HWmZi6pbvgY/QKvm7QAiB6nh28EhOgCQMClwh3Kiq60JtNXCy+q3mLUBQXITie1AAAAGgEVEFNQRK2iTzibqY0GRn+KJIS73flFojIAAAAEgAAAAEwRQIhAM/BGXKZOarYcI8SPTmMOFoU1SW9eJ6sK1N688q5LLyKAiA+/ZnVSiclm00qNujdK5GX5qHDp1PdjSRzQuZR2M/FLwAAAGsIVEFNQURPR0WZxn7jsvdzicq6aegk3MZvVBDDvQAAAAkAAAABMEQCIAv9+ci/82oVdfW97YZrSlJicqDcWQbpN8ukaS53ZxlBAiBLigkoqE5kOusxOu7+KfuSe/bhBuVRZsYCls5nXZvMUwAAAGYDVE1Uuct5BZgRmK3YBZEUs7fccEK1L3sAAAASAAAAATBEAiBoeExOPlD969r9rrYMJ5JG+NOEms3TgVuo8A64cdZddQIgExMX/1PZs421UksmAywo1IJDeIJ29RvIJ1OtoS/Htm0AAABmA1RDQfoO9eA0yuGudS1ZvbitzeN+16uXAAAAEgAAAAEwRAIgQefC1PiMec2WceC6yXIWVPhvMSVpYYS0CGxmOX/FysICIEa9Kg6zkiT5h5kU0dIVK7oeQJ+0pPls2Qar5GC6AQPWAAAAZgNYVFBjaOHhjExBnd/GCKC+0cy4e5JQ/AAAABIAAAABMEQCICjJ/n49nmqYQ3FPzvYpFuDX03AI8W6R8CWR8K4aC8C4AiA/0fQuVumv4qHrClOGf5fHJ8qbO23cUUlWf54rAGtjhAAAAGYDVFRUn1mUENIH89KCiocS5eVDrC4EA4IAAAASAAAAATBEAiBXOWsvsCiYSM2H+EUF/6Fo/q/g37K/3tAkO+L6tIzIewIgd1uw8znKER7ARhSc93SpJtVy/s08TrYIeOi4fD8LdFcAAABmA1RBUH8fLT36mWeGdezhwkPT97w3RttdAAAAEgAAAAEwRAIgON+Tf3eUAHppB62tq8z/t0TSIMAQdhE0qeuOvRanng8CIAD/QGdyXrquO2a3R80kNAeL08pbUvw4PgHh9hL/jJlLAAAAaARUQVJB8AGTdlC7T2K1dSGCSywg9bkb6gUAAAASAAAAATBFAiEA+M9XhFkNkmfRH9CfEdJ+FOG6oZSJq/90gEs6jhWu8uECIFegb8qC69jVDv88hrXEyaByKSKw+RRlPzjkYkbUIvUAAAAAaARUUkRHkqQtuI7Q8Cxx1DnlWWLKfKsBaLUAAAAJAAAAATBFAiEAusc/7lKyAAH4fw3b71bbSPwzxZMNS/+p/UX3fZV0O60CIHvAlrDNS1c4DJjnum55oa7UaithCil1mBk6YVfUSAnlAAAAZgNUR1SsPaWH6sIpyYltkZq8I1yk/X9ywQAAAAEAAAABMEQCIBhFpGNz7sfKyCDx/+gio73dBI7uS6bLYUAtg2egabA1AiAkjSIHx16Ga3savTvdNYWgUZKv+Z1vPfrz+N7QscLbegAAAGcDVEFSxWe8pTGZI1IWYlLqUSHlNUMuge0AAAAIAAAAATBFAiEAoA7tBznKzRCVrDNjS1zYNrXL3ms+oW3kmmYQRZ1V7aQCIDPsqjTWUcgJc+5/qaReAZ4yqMaB10kOine5MSoHPrMrAAAAZwNUVFWc2opg3Vr6FWyVvZdEKNkaCBLgVAAAABIAAAABMEUCIQC0elUvcJv3kyO8VZ/T2iXJGkcRkOXXIyyssZSN32vGDAIgHUb1HF59vhB7vpqyNPu2MbYFHrVB7+nfiHMEq8TbqdYAAABmA1RBVDfueeC0SGaHbeL7f0FtBEPdWuSBAAAAEgAAAAEwRAIgIW76b/GmxalHJxgVf5EQVN5Pz3YAtv8IMkq1i03e6XgCIGYJGiRHlLM36dFokr0sVSqaZzCzqDDW/GkU7n6e9xwAAAAAZwRUQVQytIfQMosQnjArnYF7b0bL1zjqCMIAAAASAAAAATBEAiAFanfmNgL0GcVHSjvQpPJ0Pvgti34QZ+qDdrTURi+geQIgHijlTfUg3Qp6NHIG9Tghdg185PZEE98LPyiFuUIYB5MAAABnA1RSVDIFRSbfQPuwi3M6viVqjSHeWEMtAAAAEgAAAAEwRQIhAOOpcPs8GWw8Xx3T9qa1gO6uvLbdh2uMeNJCga/H59SzAiBOdiFdaRqwuanHAVWWeu8oNnOtu8BO4NCw/NAC/dsqkwAAAGkGVEFWSVRU3WkNiCTADITWRgb/sSZA6TLBr1YAAAAIAAAAATBEAiBvPbg+yzeuxx1azM0woPLjSni0Jtjh6qBxJf7ZT/IY8gIgYl77TLEFNzC6gxt+4CJbuV0hJ8yM45+WGXMhDo5Q1/4AAABpBVRISU5VZkxuIhx3MTMHRnsSFSitVjEHvQEAAAAJAAAAATBFAiEAzPJ1PyY0qlUY96/G438E/5cSgouaalYGnNK/sWohuD0CIHfqTXk7Am8Ui0cO7WcG23BIyOFqtEJiTToLwUsvQXedAAAAZwRUQkMy+szV/IPD5MPBrB7zXRWt8GvPIJwAAAAIAAAAATBEAiB4++UZy7hXOXNyvc+lp8eBEqpHoOWmCCUcMvPgwDwJVgIgKHdtWaq9KeN7qr3VygyEcYgWvdHoIU5Sb9/+NvsaTJEAAABmA1RNVG8CBV41Qd10oavYaSEWwi/6+txdAAAAEgAAAAEwRAIgdo0jPHj/g8Iby9JsNKLFtXY/Pgdkb4xvC8EXcojcQqACIGAKOYZrni8Iy3OkIMdmpoy3Q6o43eVK7z7yD5ZVXvA8AAAAZgNUQlSv5gURNBo3SI3iW+81GVJWLjH8wQAAAAgAAAABMEQCIHR/zwiPIi/ehvvwS1mVXL+htbgNp7Ywj9vYTdwpNA+/AiAuqchhW1AuvY0MVh/T8ajiPppYYDCo1mrBc9ynGPdNTAAAAGkFdEJPTkX3oDg3UP71q6zlfMTJ/5jjeQICswAAABIAAAABMEUCIQDV+2U1bbX6jFcoOphVnA0HdFox7RGZd0O5dwxsejHkoAIgPUnFzH2dPAzL7AekOj+sstyCK4mIY+I58XToJc+uvhMAAABnBFRCVEONrrreki33NcOMgMfr1wivUIFfqgAAABIAAAABMEQCIHrWxqfDDwNppn8qjDSAQVfzoVM7BMeHJ3mDkAnCW7rrAiA0AtF8V6c3cgrO/7dg85RzcaIXHzTv1gEOEBINxLDFlgAAAGcEVENBUBbFLO7OLtV9rYcxnZG142N9UK+kAAAAEgAAAAEwRAIgamAEGYThvAF7QLo/R0J9DJm4x5UgxxruUjGV+R7qvbYCIGa7AoRuJ4NwFruK5OGoYXZti6FM61u/rkqHu4TWD7+nAAAAaQVUQ0FTSHBRYg0RBCxDNQaaqk8QzTtCkMaBAAAACAAAAAEwRQIhAIvXUUjQaHs/sgVSPe99o3gWe+tZdtca5B/iwDqkZMuTAiAd+LJACZS3S/3SzTUPGTPDkw5gwRpqcUWOiTR57UfChgAAAGgEVENGWDbc/+Bpo/KHj6sqRtgeg9Ri0Mv3AAAAEgAAAAEwRQIhALFnTdT0kFHpwc0Xh1UVyJgSTM81XPUm2erm9rTaYGR0AiA9nRyNahSnUhQzJDvb3djO5ScKsiy8VDt7fqMGKEKsBQAAAGcDVENPAP+QLUsr/b0Ns4iHQSRHwwtWWqAAAAASAAAAATBFAiEAhhj8aF5i4Vqv6PicYAvH+5SVXso0D5gDFuxoO65xOvECIBxIZHurOeapn++8dGhLhm3bcrrQUYt47MqqOc75lHOcAAAAZwRUT05FKra7hAjKMZm4+myS1bRV+CCvA8QAAAASAAAAATBEAiA5H/+I+ow1OR/upbU+IYxysXq/plyExkBSJmLz8wHxowIgYBwjRCuO1APwwwJJwC1w26zM6Qyu2eyrXGVj3HrwpPoAAABmA1RGROXxZsDYhytoeQBhMXu2zKBFgskSAAAAEgAAAAEwRAIgXwshPpb0vlQv3SkRgM60mSQA/QxlMPbNuhedyZXWBhECIFqrVmx2meOmmvHklNZIHmu4/mnQibBYT+ldaI2tE+daAAAAZgNURUFdztPC+rYeIbJRd8YFDT8Wb2lhEAAAABIAAAABMEQCIHYWCjbuuSgSji1LaeQ+dFaoOQUS1vWq9tkS6CFxSdQMAiApom7Dr9VBqo/LmG9eoLCfa03WDxryVInKl3r03bjqnQAAAGgEVEVBS33X9W1pfMDytSvVXAV/N48f5qtLAAAAEgAAAAEwRQIhANClPBg3Z4pu749r2hZ/+VuuLFyK4W/8OrKGt43i/MSVAiBvOnlnly9raVy50butNGUbt6z3NuXMepK4H12Jk8vPyAAAAGgEVEVBVDjVi4LLJKPgQQp5kfJVF0yf2Ak7AAAAAAAAAAEwRQIhAI5bm6WSK2wLRUUF9HDyyBolvI+h6bnQYdOZ7+zRn0zWAiAay0v/LvA3kxg38h3it2SPPSt7kcFlVdMeX727WSD5IQAAAGcEVEVBTRx5qzLGasqh6egZUriqpYG0PlTnAAAABAAAAAEwRAIgBksT4osWMvesXC0vTH6LTZeauCBAmB5KmIovw1VvgqYCICbnQ+wPnvE8qQ1I97dihAB1iLm+XDF9+4u3yS83+VtfAAAAZgNUSVAH3lM8vHI5XDLriYHdzNLMam4cTgAAABIAAAABMEQCIFOxS+mlQmX3fgTHvCNqTKwmtJc3/+5sydg/rfJnrjaOAiBrsg8whfUvxDN9pM2pGBpwf5rk4fQD0OYjKvcZ1Z3puwAAAGcDVENS44ty1llf04hdHS93CqI+lHV/kaEAAAAIAAAAATBFAiEArzqtp1ONvJG3bRTam5P6wrfb94rv/cvEVdBUHpRq3zECIDtV6HTIOModQp7s5vBAx/YCO1a8PP3o43m8mJYUNbxbAAAAZwNURUxGe8zZ0p8iO86AQ7hOjIsoKCd5DwAAAAIAAAABMEUCIQDr5mZ+4NcG0f3oqB6aDi4uozToy1+/19EzKtdGvPDb1QIgaoCUYjQUB3KDuJSYtGdIjKQG8sGEhsUPCTO/EUAcmpMAAABnA1RFTIXgdjYcyBOpCP9nL5utFUFHRAKyAAAAAgAAAAEwRQIhAN2AkOs39DI4Ery0V0/r7UuSpInP37L1Uic9ko8bpYQmAiBjN8Oxdtl46ykf3JzNUo6QEYLNnbUPy52liMhSv8lUYwAAAGcDVExYs2FlUKvIr3nHpZAt7576O8mpUgAAAAAIAAAAATBFAiEAsPpnTYsZS24pHv3VV1gv+XySjNm+2vy9FXgKa09K4VUCIBzlYq/1w81m/d2CG4Ph/O/8rC0Db5sLFKsmkteU0Y4GAAAAZgNUUkKI31kvjrXXvTi/733rD7wCzzd4oAAAABIAAAABMEQCICRWLm209CyuWHD7vIJCbw6XYavw9SBM9iAt0QdgT4QIAiBWBGybdSFboEG7c8mAMzVkI24eg8l+fW3g6V2WV6SutwAAAGcDVFJCC6Rai11VdZNbgViojGMen5yVouUAAAASAAAAATBFAiEAr6I9S0yUf9h3HQHcXcXFa2bQ4Sw0Un9SQNjNrRQjjOACIGQ8+QnDJ2GfW+QCblQL0jjfoggj/Py4qjdcIZNNCrn6AAAAaAVURU1DTy/CRqpm8NpbsTaPaIVI7Lvpve5dAAAAEgAAAAEwRAIgSSAOhPFdT1vgTTB81XiGGO9awIr8YPZfjzXUBe0BEn0CIDNEyd3U0SZbO67q32UJInVoViL+EXixOnvmHBUz+7+SAAAAZgNUVEGqtgaBeAmEHosRaL6Hee6vZ0TvZAAAABIAAAABMEQCIHysIocT2Pmi7ONtiIamRp6BG7d2aV4zhdY0NouqA6keAiA1VWl+5GUym7A44Yl1awdSsDZAErhloVg2KSSHn0UULgAAAGcEVEVORBRT27iilVGt4R2JglyoEuBTF+rrAAAAEgAAAAEwRAIgfl5wgFGtuTp+l9QEYY38Zi5gc3MHsJ/gw7rNJ0wL0HACIEOJ0wcmyODrEIt4y60/F4SAEETRzDRYSbPv2jwYKqMRAAAAZgNURU50FZZRqZKVLivzQNdihFmqRZP8BQAAABIAAAABMEQCIENnQEkdBbn2P6iwOWE91ezSn2n5giiMsrDPxnXrRKZEAiBSEsv5jFovLTuiDSsfnOEqedX4xPZC0/HSK6YxsN8DUAAAAGkGVEVOU0hJUmYnF+RIvjbLVFiEmdWoMovZUpIAAAASAAAAATBEAiAgTD7zsNbFowI0fT0BZfKXvS2RfgmnL2VBNqG9xgT1PAIgHemr7B8gVawS6pas44tbXqGHzzndfwv4UDnk/jyEH5MAAABmA1RVUHcU8yCtymKxSd8leTYa/scpxf5qAAAAEgAAAAEwRAIgCvmpNKPOi+StD9Y/JEKGRJD3QtMFWraV3u4NcNCe+zwCIGaCMqbPM83BUd2z3bLFQtzzLxsNDNX3Knm4dFClwS+eAAAAZgNQQVm5cEhijba2YdTCqoM+ldvhqQWygAAAABIAAAABMEQCIGCxx2Rjxc/vKS0PLwf1T4mbxE0IEZU7dvhMqF4OtoPcAiAdyRVIG0cZz4mdqafzqBiJlFT23mF5WDxhUnhx201LawAAAGcEVEVOWFFboKLihq8QEVKE8VHPOYaIppFwAAAAEgAAAAEwRAIgQhYLILFjcuiSojJZkjR3oaEAZM7ymdtStut0kzESg6ECIFqsjc76i8QK+T0rga7uP3iUqeDLDzSrx8XMv83qeQ8aAAAAZwNUWEPBFVG7SXh1BQtpov3MwgpTqacCYwAAABIAAAABMEUCIQC2j+m3JYx28Ii89W37yqD2DidZzJFiiF8CMZ1Z2w039QIgXT0BcGLejneZm90uKaqH62BI/2+GGpHo1uFyvuRI1PcAAABmA1RFUC5l4StfD9HVhzjG842n1X9fGD0cAAAACAAAAAEwRAIgPeFDe/HcmLg/4kk3lSFhEHSMhJybj3/7p4Vuade/GjUCIGrNVvCLyyNPLWxYL3XhWi9nw/7xTHbILC4cVwfmWqWhAAAAZgNUQkOh7QNk1TOUIJ1hrov9uP9QSE2MkQAAABIAAAABMEQCIFCNG4k3lv0yWMHHtmHlCJVZsvNrAtz6GrWwHYYwx0IBAiA+ESkHONkM+q1Vnu2qpt3kiAtx64d8jh5O9DlBRLFX6gAAAGcEVEVSQQCWaKlpHkVpcsjsTMhOmUhjCLhNAAAAEgAAAAEwRAIgEDPpYvkeIcduzl8W7Co9yv5AjBvqjPyPETKJy8w3584CIH8eYyIesshMQRQAEmiSPFKWN/iZuxRkvvfnCqJIVUsGAAAAZwRUQ05YKNf0MtJLpgINHL1PKL7cWoLyQyAAAAASAAAAATBEAiAW65IgLJst7CYcYS5UTsIQNvQbu1fJ18CjliHp7O3K0AIgMzrV7h+F+pbhJj5f5o0wVaj1dg+jJX1J7aQXCuunxa4AAABnA1RSQUTSrGXBORaLAvGyeBtgYSXKOeruAAAAAAAAAAEwRQIhALDXKYgq1yUuHAuKC1810+rbNuOJFeT9NWEfGXXuYo6LAiB9jRTk1BgKLfcaRDP6UY3ceDe/WYJnlO483YdJXPzyVwAAAGcDVFZL0IS4PDBdr9dq4+G04fH+LszLOYgAAAASAAAAATBFAiEA/38Z/nekTzzsV5tpuZi40bKIcf66Gp990f8E2gx+udACIAqoVwOTLz6WQmvoFDq4l7io3wkjH97aZvFZM01NrMf7AAAAZgNUUlJJDj9K8T4WFuyXqMZgDBBhqNAlPgAAABIAAAABMEQCICtxW3YrMgKZlzNm0vFno5qIndb6eGwmEOg82c5pkEMFAiAzl/kfr0K7+IKkSCl38sN8MWKw3qa57bO5z/ZtnzBsjAAAAGYDVFNMA4Bs5e9pvZeA7fsEwp2h8j25YpQAAAASAAAAATBEAiA71TDiQtIDo+Vk0TXKriI5vBgs0EQAhgQsYQ3Yr89HQgIgbSAH/ukaevHE4Gt2QZ2aLZgQm4aNE9RiszwN4pmP+rQAAABqBlRFU0lOVf9p5IrxF02n8V0Mdxhhwz0/Ge2KAAAACQAAAAEwRQIhALX9hT8VyBqhizuzOQxm6VXG29mlcGr8QasO7HEWWWPiAiAtA+pDyJcuuhnUT90HoKhAJtMT35r/cxg51FHC+ZkjzwAAAGkFVEVTTEYtW+1jsP4yXtO4Za4s2qNknrJUYQAAABIAAAABMEUCIQCIOnSlsPW13tUV0oPmB+W4/Tz75lZ0E0eJ7crGOzjMRgIgJUzmdTlPaAqCkC+cYyOjBim6/PbWZFfJh0YOJ9cseJwAAABnA1RTV2uHmZvoc1gGW73kHooP4LexzSUUAAAAEgAAAAEwRQIhALq5WwUmvKUfcIdH5D2V7MLuNJ0WSCnIcpf8eNpU/Mi5AiBSUS3RGG8ludd8uXQIw4KI9f0m4RI8/Y+e4eTu/Cp+AgAAAGYDVFNSWJWeDHEIBDTyN71C0HzYS3TO9DgAAAAFAAAAATBEAiBpukDrAuZjRuxQ6+Alq+Z0J97E/B2x3nSzJ5SYZDD+cQIgQfpydpqSvG9+hghf6wpdMQ9mHzgJ2yiSs7+HCDF0nQEAAABoBFRTTEERD+XyHB7dTwOm4N4NltDC7tC5zAAAABIAAAABMEUCIQDUQyePaJLmkrWQV5IFrZJ2qLBHqWqDMmvf9J2pw1SXPgIgDPXrfY45CISLmhjGGfilmmVWNxSmgHOdQTjZRAmhq+8AAABoBFhBVXRodJZl/40tES+oWaopPwemIngvOAAAAAYAAAABMEUCIQCHjpSU3I2DOjBRb2+PfJW3EXBwFuUcONvo3EYIGsfekwIgXVspbQGDt8OlRqnletL0qClnEjY5arYVTWzt+Bm1zsYAAABoBVRFWEFOz8/+QypI21P1nDAUItLt13sqiNcAAAASAAAAATBEAiB1XHI4YWyu+gXcIj7AhtvXqrSP1V5Z3dPlZYf4GZ9ZAgIgDy5d75uUGodcL7sKOmYUwtyJzMn5EYJ4QQXQbO5QZMQAAABpBVRHQU1F+OBuTkqAKH/cpbAtzOyqnQlUhA8AAAASAAAAATBFAiEA5+u7U2o0wS+B344h2YhlK+LpWIKM7dcBRANrzBs7PS0CICiniDBzw6LdJH9kr9t5f4eNlq0c0Vy4GntWHDcHAS+XAAAAZgNUQUw3WgjOOkYPILuv0oK+HjV5osMfQQAAABIAAAABMEQCIFwEgUmx6N3BZv+lAjnuWL7Z1Kxl9hRJiGXUlgngqlDrAiBg2JK09zNnlvEHbn+HtVHL25BgoPh1ZblXUsdVj76cUAAAAGcEVGhhcpbDDVSZ726papwiG8GLw50pyX8nAAAAEgAAAAEwRAIgJrcBpgZFlTJJsNpBo21F3SsLLcTppVGtPni+JKv3Qs8CIF+MvTUBEekvDYNsobP6xI6LHjD9iYvamF/Sw44LlNUhAAAAaARGT1VSRzD7FGOm8fRK60X2xcQiQn839NAAAAASAAAAATBFAiEAwcGZb2Ew6aC39ZgnkwItJZ5YBZeUxRLTfaMGoiztuQUCIHrODFia7Z2TV9Zry4SPiGMvmbF86BvPN/aQAThkB7dUAAAAagZNQVNLRUSLVbwS1gdzgPlmEiY5rmtvQsvMDAAAAAkAAAABMEUCIQDEZjzaKb94n0UaNfTs/+12eH56uLC6emEDIMXVd+Q9oQIgD8ikm/HkrXJV9oUGaMS+/vNSNh7urZfxAxwcjH0X8OEAAABrB3VCRUVQTEXLSxe5+ni/H6xtI55bzikQNXULbAAAABIAAAABMEUCIQC/l/rsJcMydwq07t491PMFUlvYk8rj88AjkVu7A5dE3gIgXTcD+5TOXJeNkykx4tY1tgAwJxuMC0Qh6RuKZYr82ugAAABpBkZBTUlMWYM+TALEe3449bmoCybrB9I9GWH0AAAABAAAAAEwRAIgcJuv5jNTtMsK4ue3U4o23VMFCj0mBbFArrwo4M6wFmsCIFZcpEn65bhj8Cl/w3VXy/2lgRcRDrCs+Y5htWQCFcDHAAAAZwNUQkc5FhLmewJS4NHhRgUBtBVFkx+u+QAAABIAAAABMEUCIQD4IrhKMegYG/u+aZ3NSXb6PJAjhSm0UF60rDwhYN0NXQIgBTzV+WzYClQZhP0kgLmhQbStHQTJX7DK1BDsisTGiAUAAABmA1RDUAZXbrOyEtYFt5fcFVI9ncn09m20AAAAEgAAAAEwRAIgTipAhsxNBI+QMY+nfJ+MBlHDolGioLDYClDAcwTd1j4CIB1d+dJHBc7ooKvrIzrPYp1lzH7cNykska7OH5MMihWuAAAAZwR1QVJDREQL1oteSx4MuBBmkJfpVzF1YBsAAAASAAAAATBEAiBsCuBbDlUfm51qQ4tpUmHdrpWdfPyCgimQ0zZIuwg6RQIgZqCF6Wm3Gsn1MetKtvdBZXUxgDCCKSea0hdLXlxNzA0AAABnA0RPR7qsK0SRcn140reIFRRFcLny/oiZAAAAEgAAAAEwRQIhAOg8bxzUggabAJFzA5NSIE73+jWOxvNRWaw/7lUKEPt0AiBrcV+62zz+mHo+WNa3T5pKn+IIdWVqKt6SAE3EL1xnogAAAGcDVEZUrvTwLjHNvwB/jZjaSuNlGIoOnswAAAAIAAAAATBFAiEAnjeEXrBsJ3bQckWP4cCluyx+DsrzAz7F4SN/VjAJF6ECIHyWaVNOk5IDO5P/aKzfkuPuvaog2F8K74HnJSLp86O+AAAAaQV1RkVXT8zPg39A0zT4YC8DHmS1KtTNK2YBAAAAEgAAAAEwRQIhAKPZpSadsZR6RxICyWFcyE8Vq+IaecyU/4T0UHAmZCTqAiB05Qyirez8RLdC1R/V902mNuQvAM+jsYrpyq7PZKIt7AAAAGYDRk9SH83OWJWfU2Yh129bf/uVW6paZy8AAAASAAAAATBEAiBdQIo7SbkBc6Be1sw77rOgM+o2bZpK+b+d5d0QPOAK6AIgXkGTfNaTz8xyHru83zdCN/ERkod1essbdbBEyxJ5Jb4AAABmA0xPVuPIZDB7VZJARDFkneVBwllJfivRAAAACAAAAAEwRAIgAfkssTTTlbIXCPHxURBpcMsBVqCQrnBe/JrWGnV76wUCIH5YT+qA2nfGEWvxxzlRusZwk5SdEIUlfYlrtu6X8X8nAAAAaARNRVRBwL/rpygF8i3Bjd4xRnxaVcFv9XsAAAASAAAAATBFAiEA9fLlcwe9o5ClG/yDlt0gQbb9fitP7H9K5ZC5m2XlJmwCIF1xF37lgTsX08UJPkQqhy9ruVQdMqQ8Q771NYcmXXEnAAAAZwRUTVRHEAhjmd2MHj3nNnJK9SWHogRMn6IAAAASAAAAATBEAiBRSid6FdDCdLqmxKeF/v9pbmY2pgQ4eCwoSEpEk+xLIAIgUbNe42OQyJu7G4P9XVju63SM9Kvqv6gvqfXx36Eb6a0AAABnBE9ORVoSQZ7qCwU//qkvmvzXmGpJXizw3QAAABIAAAABMEQCIFM/LXVnCYkfdWPTIzltuVI+dpahF+8h6HFPRSm7m+u9AiA57qrJbw88Vl0SvhWKHg24jiqYqhK9YT5zokT95paqLgAAAGgEdVBBS6RvM2lPWzGm7SftoWzNRm6UyA8aAAAAEgAAAAEwRQIhAJsRUCx3Mvl58edQZEoV733oP0LyNqV1B1C7y7YyKsXOAiAWnXOMuMhT6DzEmYaSaInkUVEp83yOAXjO0P7QxzUc/gAAAGgFUEVFUFPhAwtIsgMzFJeRQ3ZtfcH0DvjOEQAAABIAAAABMEQCIDivkZ4cyfIRt1PVrr83N5sDkQP/qj31URKnBtIb7HxjAiBWa/EJGyr5mrJA1s4n/SVdhOPhft9bH9NVc8XPZO/sbQAAAGoGUE9SVEFMHZ+Ktt0c8Th0785g/DXa+AHGXXIAAAASAAAAATBFAiEAkjl8LekrpDwYeVHUvfbnKuzXznRV8nb5IdUyoyHLDOoCIBZbCO2PqlcImrDot+mg//fcrHygkFvYfg0ywZVBdXicAAAAZgNUSEUMumDKXvTUL5KlBwqP7dE76T4oYQAAABIAAAABMEQCIEGeP6jjOBhFq+cIB/Gx221KJ5T5nXpIgippeYA5XrTOAiBRZPbrZ2DnZs89mj+E8IABVGoAj4UcLHH88h9mMGJyEgAAAGgEVFJDTlZv15mbH8OYgCK9OFB6SPC88ix3AAAAEgAAAAEwRQIhAKs1SOHUHBsL2MqR+15BwDd3GM4/uiRpXUDqjpxI7KWUAiAVOnSfRWj9K/e7eJ1Nuee//Srse2d7shrWCb+JR0f7cQAAAGYDVFJDyz+QK/l2Jjkb+LqHJku8PcE0ab4AAAASAAAAATBEAiAzSYViI3myhn9AvyuPXig9KP+AyXjJhhfaWrnOlOq+VQIgYzPvPQPT7UCQ7IUMvhDLSXFW+s2m2EqPcTv3S/UOGeYAAABpBWltQlRDMhKynjNYegD7HIM0b12/pppFiSMAAAAIAAAAATBFAiEA8yHwADRLumXiFTnYGTY1ra/v3Jt0wF+kKIF+DRzTTqYCIBqfIxJPcIDphgVD/eMauwdFKywXSmFiwke44wMrVquAAAAAZgNUVFQklKaMFIQ3b++IC0wk2R8EnSmwKgAAABIAAAABMEQCIFbEdg8NkiQDiipYr8q5UnPnLIcYuylV+QcKP8JQZ1blAiBx+ragFudtaQhUEKU5oSCJPTSKt9KUZphBSbp2SICAMAAAAGYDVUZPJJ446kEC0M+CZNNwHxoOOcTy3DsAAAASAAAAATBEAiA4n+YqJO4NVdGDGiWcBs3oc/CNYqqSNgCXhFoIpLxYkAIgBKJd+OxXUwN/eoXsWaKk2kDscy6ba23or1DbAGg3sfgAAABnA1RXTi7xq4omGHxYu4qusRsvxtJcXAcWAAAAEgAAAAEwRQIhAMRac57tRvCkLDJruhrWnF0/fgDZSH94uz/+KdnIE6jJAiAI2w/i8LCaC39krKsiEKMAI/vr6rrMAgNAG89uWnNf1AAAAGYDVENIzUdTceOcDZToL8zJ3Q6nENDcDAsAAAASAAAAATBEAiAeyVaplE+TIA1lva+Z6AFqWHxLkuiJO1ohHk2hp1mQGgIgRxDc7SaJ6gm0gmBTtha0tEZ9boCA8Hmm72EC4T/d45wAAABnA01JU80csWpnk3/4r11ybiaBAQzh6YkaAAAACAAAAAEwRQIhALNGmMrnbz9mjfvmx4E9HFmQAeAlEvEnF022/um2iUSGAiASlE24VsrfZQea0cn5+gg4CvAWDcTaubbnPiqIdL0PIAAAAGcDVEhFtKZ3sONjw4FdRjJpVKTk0rGs41cAAAASAAAAATBFAiEA6BkUpaCyIfBSPh8tsiSmuOsVzpEO/Zr+ODl7Sl2+o0sCID56fU3VI6/fxjXinFWZeZxsJHRPn7nSGBhic+/C9sa1AAAAZwRPUkRSaf4RsEJ4m8bi/arQZK/TK7KYrgUAAAASAAAAATBEAiBiIMXuVipGmuDlLm9XZjjGNW92rGbG3achmvBIOxSR7wIgPXHDDdr3gimsj3WZuPbjrvo6hYttp8Ph7ksoU/FnKDoAAABpBVRIRVRBOIP14YH8yvhBD6YeErWbrZY/tkUAAAASAAAAATBFAiEAv6CJ7n9yu4AekwVU+vClXTjhjH7KcrjY9o/Z7aV40RwCICuLYuQkaxoniFpKxAPGelmM4RTuGSOdgHhEY30EewCfAAAAZgNUVEOv9KvcdfBzh0AbqbwPdevkxzS0yQAAABIAAAABMEQCIFNzps2palmSRG6Cd6bklFK7aN4pxFPoE4yQM4RNMyT1AiBU5o9xV2sUpMpAVGPWh+3sEOYFellX8u6Sd2PuTbnYHQAAAGYDVEhFMgTc3gxQt7LmBlh2Y6D+Lujftr8AAAAAAAAAATBEAiBGEU/xsiJKucyvhGsjY2Q6XAPLkN24qdQCttVrhNJDtgIgGGKbpAz+9HF4KhphHwgJQzKp9V3qUEG3qeTLDFMmxI0AAABnA1RPU/taVRN0tlbG45eHsdOgP+q386mOAAAAEgAAAAEwRQIhAJ0DPJrkU8wtw7Ihnkn4nM2PW7JLneUgOulQJlTD/cTBAiAOSiSzwojDX+Ot3Z+ZEKhIifyW5F/IWmScNQxL5ZtdtwAAAGcDVElDckMKYSrcAHxQ47aUbbsbsP0xAdEAAAAIAAAAATBFAiEAj2W6+50RP11GXiEtrjy6+YeMmkJ24tlJzI8fltfTha8CIA1P6A9t2q6TrYU5GY/d7oACzRj9h7uIcmeobFHXc2XPAAAAaQVUSElSTbUm/UE2DJiSkAbzvcvRbVXeSwBpAAAAEgAAAAEwRQIhANAb1VASJoRek8wNf9I3scwkmeh79pkbRWG3HFXPnsZXAiAQd45EQnXxJ6hm1cpxkOoSOQ/wOzWlKEETq1ObOSaRnAAAAGcEUlVORTFVuoXV+WstAwpJZq8gYjDkaEnLAAAAEgAAAAEwRAIgKJ5LDlyvOxbPlma9Nlefv8B6KczUVOiTQnTVDeCgSoECIEoOGQYpqg5sKTgPzTZF0yev/leJA6NRBWBNJ5yZMasuAAAAZwNUQ0jUVg8wv4+x8yVG5TYlbjeNe3WZeQAAAAAAAAABMEUCIQCDsyBizOqnYQR+FhGEO01v1OePYBa3sh4g0Ij0tDKRMAIgVkJcR7zqfJJFag4AckG85C1jMj7RVyWTP5aeTdTZViEAAABmA1RDSJlyoPJBlER+c6fots0mpS4C3frVAAAAAAAAAAEwRAIgKZzqRx0bXyXNRGXaTqDPnXbNH5EH8mict4KwkC3ZzKICIBYxmfXME9uEu/EPnM4cXd5btM1wcdvUIJFHNTP+DdFiAAAAZgNUSFIcsyCdRbKmC3+8oczb+H9nQjekqgAAAAQAAAABMEQCIH393bk9JbzK0vLKy9NI/d6UG0DtqUAhiRJdn5UMlUrhAiBjiMEvkvH/5edzm/obsrz4z89v8GkeLU6iElmfvlj7ygAAAGYDVEhY8IxovV9BlNmU/XByZ0a/Up7lphcAAAAAAAAAATBEAiBI9Q4s44pGk1GEESC8RByPyRnsC1oWA5abuuQ2iTaTcQIgdquxA8xL8krROB/nxkEvnztgTmUNQcj3fOoQn5RwbR0AAABoBFRIUk41pzW30dgRiHlmZWhV+HDAX9CobQAAABIAAAABMEUCIQDJICgZuOxG1NslP4+m+c+jbkp+scw2J4UYMnl8HD6ezAIgIIwLOAPu+euuQF2qc5BOKEBqqWvjoDjOBZjbiU799NkAAABoBFRIT1Kl8iEbm4Fw9pRCHyBGKBd16EaARAAAABIAAAABMEUCIQDOEQ/ZnF54ek2CF08tcuXD9FEAhiZjPQTf0ERrofOW2AIgC1xPhe4eKFcplIUmqrEYUOkYtFHedEIWcB4YtCgHlRAAAABmA1RHVBCKhQhW2z+F0CaaJpPYlrOUyAMlAAAAEgAAAAEwRAIgMcdq8DAp5rvFO3LjZrnKfrJWL0a8GuxqpE8gFkf8hnQCIF2RrJuSFhEEvf80ejITQ3orbQ2FLgyk8QNlozZMA9PFAAAAZAFUzfcCjOq4H6DGlxII6D+nhymUvuUAAAASAAAAATBEAiAY5W5kdk++zEiS0bC0dW41IaqoTbu3NjDFCkjSQNTZlgIgXuTvB//iHgGNyE1bkZcNKRUZ0M8XWCUC6xJzl5tRanQAAABoBFRIUlRPJwU/Mu2or4SVZDe8AOX/pwAyhwAAABIAAAABMEUCIQCjWTl7Iip8PM/4oBuuV9FWvz+9Rvv79isqkVM071VpxgIgBA82R9f7AiFOwKcuOhuDj9FOeiNVBDo4/J5ZKjTuaboAAABnA1RITi6VzqFN04RCnrPEMxt3bEz7tvzZAAAAEgAAAAEwRQIhAMq0VpWDoyS9PZaly6msXYMBe3wTPkAJ7y4jdwk6ONdfAiAvk5KSTCbE7+f0WKzydtZln005hx0ZP0iyLsExFpjzpgAAAGgEVEhVR/57kVoLqg55+FxVUyZlE/fBwD7QAAAAEgAAAAEwRQIhANdHEJWTlf02HsNUujqy9UALypFPTc+fH9gHL87XJhotAiAHAlFt1tKnUI5WuhtkMOpRTcRvZWFqA2p7tOO9rZZ61wAAAGgEVEhVTkOomBXzN0ftvsxYjWu34cEN2lWZAAAAEgAAAAEwRQIhANRrktkD5XsS8PDFq4n65VAE/hRgsLz6piLWTOB9gxAkAiBlenWvTiHEIBYHdqVZk4IqCiUUVNGEtgbj4uLSTyemmwAAAGcDVEhYqY7R/Sd+rSwA0UPL4UZfWeZaAGYAAAASAAAAATBFAiEA16gRFDIc79xMMeZGere5t8K1OaqcjJb5sj26OIMjAkcCIHoV3ETIx3xj6FgvgNS01inTtprHVf+ZOzIryKMHxKW1AAAAZwNUMky+XTRdBd1igo7WFRnvn3r3bwkiSAAAABIAAAABMEUCIQCqEO6uacxro2q1blhAj/mKWOmxBKzRncc7QrCn+TV6KQIgVbpwLcid1VbPzX1I165+YhB/W5VbWfaH1r1kSTKRfuEAAABnBFRJQ082tgpCW4JIMARIerx63LAAKRj8VgAAAAgAAAABMEQCIDSuSA0Q7bbK3PY2FB3j8Div9aZx6fpnXOL84P8vAe+NAiBydkFKce9VoQSc8gQ9gsRHpGn4g7vVm0awYfgjTQWaUwAAAGgFVElEQUwpy9BRDuwDJ5ks1gBuY/n6jn8ztwAAABIAAAABMEQCICeDiA3P6ovcVgfPLpPDI+5PatmEJqh1cxGDjKRukzKSAiAMt2GTQnoEC8mEL116RYBq6iQr3Dq5GaHF4FXUVGAaCQAAAGYDVE5UCPWpI1sIFzt1afg2RdLH+1XozNgAAAAIAAAAATBEAiAWZGP88wO7HNBHFJfCaLh/UYZ8/LKYkdf/QZekeWc5ZgIgZAXgNgblxgChlm66PRHZOoF9GP2qan8s7bpowuxUwLgAAABnA1RJRZmZZ+LsinS3yOnbGeA52SCzHTnQAAAAEgAAAAEwRQIhANTsF7i8C7eg3vtF/u0fUGtzTfiA6igpdqt+mZfcRv8jAiB3nHtJO1s5UL2IDAQyggLopDZMn91/Ed6g0xAndCk2rAAAAGkFVEtJTkfGJtlR7/jkIUSAdL0q14BcbVhXkwAAABIAAAABMEUCIQC/FJ3sd5gT1uum7+VSSfbg79XSh6JJBib6BawFtl8RUwIgac0WCus6hGQdRCnT3Aa5VXpqNuLw/DuLp8tOfUC9lRAAAABmA1RDSJs5oLlzGam9X+0hfB23sDBFO6yRAAAAEgAAAAEwRAIgY7EBPVPinnWm5x+X8hv6Nr23WMNVVvQHS6ZHYOvoW70CIDulM8KFz5AVLnAHEeH3N9rd1QhOp/Ayrg5JIeaxGNk+AAAAZgNUSUfu4tAOt9643WkkGH9ao0lrfQbmKgAAABIAAAABMEQCICmGZ2HRJqSVfCIvsrGxTzKy0lnWM0HJCLFBaRKMArGPAiBrfssYrnDAttIqPok74pyWRleu+IsLUut/xqqf8ho0bwAAAGcDUVRRLDwfBRh9unpfLdR9ylcoHE1PGD8AAAASAAAAATBFAiEA8Bdp+Sfr1IwqA8UoXkkdW/y4foUgDDXunu+95gYL09cCIAalQWYRf7i02pTGwOgVEZjg3mfpSh9HyXty8QHwK8L7AAAAagZUSUtUT0v07ad/C0VaEvPrRPhlODXzd+NrdgAAAAAAAAABMEUCIQDctpQYw9h89bA1sXWQgMndWKpB3Bpxv7+DB5HOdVtA/AIgZVqmTr/EtIL92SdM91NHX72g71g/ydhitTifOdkFDx8AAABnA1RMVwbzzauuVksFRlKbTdj+8bzUI1dTAAAACAAAAAEwRQIhAO+iK1qxxaq1EwhERs1yJe6RLvp1rGsIWjheVZggwd75AiBU30GiMIcEVYqni50A7KHPd0MYwYE225OO5IYrL97+/wAAAGYDVE5C95ILB2jssgoSP6wyMR0H0ZM4HW8AAAASAAAAATBEAiB/BQT3XyCp8qRJfv3xsN6OoVSI6BiuLezStVzdX1tc7gIgd31IpSeFNRLuHuiKAmDa6vR7nDn/KQKP7uRHQ+eEx7kAAABnBFRNQ05dRaoBtzyXHGXz30CcmzYnuP4nJgAAABIAAAABMEQCIEady2pyso4DWO/MDvh1rMWo+ecNBgvcV7lXTb7xoXylAiBsWhSXDXhnJId3ZQ7gus1LJtw+KVT/LAb6BkRwjxVtVgAAAGgEVElNRaVMZ70yDaT5clpvWFt2NaDAmxIuAAAABgAAAAEwRQIhAN1tki2ZmrOvDw4c14JnjAH2P/x11H3MObPTKfYMfEweAiAF4rN4IsrR/6+qTwEw+RHCRZOTUaxclCavvTRcenaEEAAAAGcDSVBNj+74YOn6kyb/nX4AWPY3voV5zCkAAAASAAAAATBFAiEA4tgam0r97JYDrC9nDEBO8+iN6pXIdwwIGOXO6QqpxlACIFkJ3rc9wNpSHAoWzUm0Jp/SKf5An5QI7D3Q3E28dQsLAAAAaARUSU5H0bGD9CX35qDIOrHNhM/eLYS6BJ0AAAAEAAAAATBFAiEAjMTonZR6426KJ4AQKcG45gF0twp+9RoYewAEs/SDjiMCIBKOBDv9+3mjCCJB37P26hjsXKglzOxLaJDFIzo0KbZoAAAAaQVUSU5LVUf6SybBxSvDVlT5jRDNYbnz4QJnAAAACQAAAAEwRQIhANB0Uuw4m5Wi0uBtbpwSuKatsepytZxcO7PztNMV0mvTAiAPcBPA6Z3QTAtv+UkATwdozOhWoN0GfmxnIoW9U64cFgAAAGcDVElPgLxVElYcf4WjqVCMffeQGzcPod8AAAASAAAAATBFAiEA0eXUo/qRpFo3uBO1Yx3guIDYbfMm6GDloYVoOG0DJW8CID5QzK5px15qHZ08+U8S/3iJPR7sxaHhuq7xQClnw/OyAAAAZwRUSU942UewzqsqiIWGa5oEoGrpnehSo9QAAAASAAAAATBEAiAq0K+CnaMeNNxrXZRNKBmY1U2H5Glhmzvli1gwrzIHZgIgc6KbV5iYYRcJ2TkLnvdfFBwiO0hT/5bRwdgytRxv7NMAAABpBlRJVEFOT7qWcxMk3hiOvB7YfKdFRN3rwH1/AAAAEgAAAAEwRAIgAvG1B5uQmg9ZA3j+RQjlwFqeToXbv9seOW3C3k3nZw0CIFUyS3AkOFXGsIvoAFdT0ylr2Q415MZeLGqoY6HEaKb7AAAAaAVUaXRhbjqMzLlpphUy0eYAXizhLCAMrs6HAAAAEgAAAAEwRAIgFNa1G2PcJfEO9u5n9iB5VOoiglb6UkTXGnANfklmphACIECS6Zfwo6g1z2YiksiWCxTVl1rhxje0+YlE4w/kPHMIAAAAZgNUWEyO71qC5qoiKmDwCawYwk7hLb9LQQAAABIAAAABMEQCIFH+eaE0OAeKdo3bLLlYvYHa8N9B2ncLEYjzqvlDQncvAiBO4H/zvmhTQOe1Rr3pAD884U+HOTSJzmwEMJj8swc/qAAAAGgEVEtOVLznvXlVjdqQsmFQZ2jyZcVUOp+QAAAAEgAAAAEwRQIhAJBh0ErI3XY0RY36pf5eI5ORrKI9x9oqPJkaL+qBB0H/AiBRrgR6kcRYTzsO3wsUl21tlvIrmuRmFAU/9H2/ETfpkAAAAGYDVEtStFpQVFvuq3PzjzHllzdoxCGAXl4AAAASAAAAATBEAiBhMjIGyu4su7jolineAM/qpggmOzHzVupVWydn4k6IIQIgARJz/DBLiY6XLSqauuk8QJVl/0OGDJJciGz2a5Sw2dwAAABnA1RMU0r62zK4/bM0z58gr7R2oGwfWxEaAAAACAAAAAEwRQIhAOTPHsZepJPz1bE26H3IzrjID5ySbuSo889EsZLosf4NAiAcp6EALLRZS0vt85wfdCZD7BDu3YVDuweWZwhobJ0pHAAAAGYDVE1D4TVZz27fhL0Ev2eeJR8oUAC5MF4AAAASAAAAATBEAiA7IEZvN3XsHAPUfvJc0J1tZhwPmaSKp3jj1OhRRC6WFgIgdakbMMX+PrHlGOceEcS46iVRpP+QlWLGHFrwfg5AMsAAAABnA1RNQxwVO6235Uq83LZfCgn81vEN42qjAAAAEgAAAAEwRQIhAJy9NyvLMW/hbm0YxWwQea5aLG4pdMgPnh6Dip6Z8Av8AiAq5zE5uaCBHNHpE3qt7ObC/cKoe4/RO6RRLG2giGWKkgAAAGgEVE1FRNMmQRkVeOqbIIEl3dTsXnuE/KtMAAAAEgAAAAEwRQIhANN+wOhtMieZc2CwAro9mpF6d11D8K2aT8CDUq+2oundAiBLyhiXBww7+XXup1nky5aSqaq1daqkYGJXJWaGiXUeIQAAAGcDVE5DOedD/uQApdmzbxFntwwQ6PBkQOUAAAASAAAAATBFAiEA1Vpc0wsiJ5GGe3ZVIvTBeD7ATfFK056YETkpOONeoNICIBt2+7R2bv+s4nBPBeV3KV1lu7EqCUMttsQlTPZvxU1tAAAAZgNUTk+tZoO382GMRPXKYECQKBLdiQ3eTQAAABIAAAABMEQCIFLNpCAI2s6Yv0CWnZbYhkRdarVYx+k1jfLa5bOKC8F9AiA832ChjQPkyyaHrc6CbrezIdw3Jz4X06FaCxhj/RqikQAAAGYDVFRNcUsf3tYQkKbEnrC00Ii45evWTmEAAAASAAAAATBEAiANAf+eogByBJrs/CB6P7+InlGKDWVY4MaMlCxLKd27ogIgfLnp94PwEqcKLAgGT18lWQsX+LFz0vJFsPbp7kc8+rYAAABpBUhPVVNFGYEFWd9j8Zz+iJIzEyUFUO2tt0MAAAAAAAAAATBFAiEAwxNYJt9FbfvTfs/9HQ4GPfsqkWt8jxPhQMFiSkAPLIICIESbxIxA/uQSQRCDUNI8F5Nr7hgUGJ3LB20186f0QJgBAAAAZgNUT0tPtyHvO/meDywZOEevopa5JX08MAAAAAgAAAABMEQCICbZeSwk3H+2b5vnmN0IBO3dKfazUO/SOb2lZGRh4fTiAiBjBF/5SU/agJ47Ylkzhy+LZ/CEVMFkVwXPKxY/Wzn0qgAAAGcEVE9LQUyoGdcG7lFcgbEWUb8akCNEIj0EAAAAEgAAAAEwRAIgKREj9iOfxAvZjk+TIInTGet3iQyQ20qiCS4tNxVPIU4CICMAIw/gDtgm2zmLKCtbGqGp2LsOHKktPwY2C8k7nV3HAAAAZgNUT04r5ejBCeIZfQd9E6gtrq1qmzQzxQAAABIAAAABMEQCIH7LLRAhxSi+Av1/zeBBWmRg8io+nWVaXUISKycm66QKAiAme19gZk40uiwFfM5ETGaKYrUswN/v969/08BCQog8oAAAAGgEVE9LRS6dY3iCSTcfHfyRilL415n0o4yUAAAAEgAAAAEwRQIhAMIiZ6hZ2f+jf17NQeYo1TiBz9QO6HEl3UbUZnakRmb2AiBN/1TDn41iCxMfpTQtdAU/SzQeCLC+Ct2r99qCm8iXcgAAAGwIdFN1c2hpTFCIWKc56h3T2A/ld+9ODQPohWH6owAAAAAAAAABMEUCIQDh3m+4ktvzz1+vQjRk0y4oHGttQXtPzwn7pxPKCtNQLwIgSs54bXfHUY59ORix4yU4Xf0bwstuLyz0ug3Z3NUNv8EAAABnBFRLTU4rUBbOocQl+RXhNyf3ZXAl3jII/gAAABIAAAABMEQCIDFBunbfNiQZhzt3UyqjShT7IsoRbK2bZPghYQr8tgGNAiBlGPxwqhBRCMrrE7SBgS2EZcD4OE+l5+5t153F8qaJiQAAAGwJVG9rZW4xMzM3NYcv6mpIQ/rLzbzpnjtpWWo2gLgAAAAEAAAAATBEAiBbC4iPZF/96vv1IK9GmHkWBVtMg6hR/EPcg4rIfRss9AIgf/xKYldoP638RcxpLNSQ7dDPi4AwfN1cAY+NhzEOzf8AAABoBFRhYVPnd1pum8+QTrOdoraMXvtPk2DgjAAAAAYAAAABMEUCIQCN7l3jaTmCYkbT9rY1VY1V9iC0MjN4Rt5q9FoEAwKXtwIgUYxcv1GlsvJUl+GMNSRuQtTEzUejpdplNXBj0plxNYkAAABnBENBUkW/GPJGuTAfIx6VYbNaOHl2m7RjdQAAABIAAAABMEQCIBruVK7c7V4WOk9R5fNwk2db6UmDp25T0E7FXQXLj3WbAiAJx9SIqBK8uB3jXCUmaIpGRyIkig4HFT9EPjAFGMtk1QAAAGYDVE9QDr1eyRaA07DO27HVu2GFEVTT7bYAAAASAAAAATBEAiBN1EkWzH/xzyRFbisRqM+MOrAv3PsATWjZI0LTnADbagIgNAtGrF74hDe9JNEDkeXj9LLfAr535Iuy7V8GTNsCQEQAAABnA1RQM592/zM2WX/qsw9aZqBTrkpKfr4TAAAAEgAAAAEwRQIhAOnsV1eJC6Hmy0vUf/AyayhUsDnTaMKlxq9qFj+zodNSAiA6JNpGGYZI92fU7EjfjRD5TCXmKBemDU4rOgOIzpbeQgAAAGcEUFJPTfyCu0uoYEWvbzJzI6RugEErkbJ9AAAAEgAAAAEwRAIga+/GCpKht0yZVabkzScL2aQDi1qsNldwijuxSxfFDxgCIDGl9CvIuPJEcA1S6VffEIT6D+jmFCU3h4ok//CkHNa+AAAAZgNOVEK+OTqlNPgsD/rDG/BqI+KDrLM1KwAAABIAAAABMEQCIDdTHe3CUDPPFnSqD8qGu4zEHhLXIIoDjxEVtkXELCqqAiALUNn+UDefttoQT4T1+KcFPx3eUXwarc1Wgc6xPokfpAAAAGcDVEJYOpK9OWrvgq+Y68CqkDDSWiOxHGsAAAASAAAAATBFAiEA+W2LglxEZFPMsBWYBiTxjFR4QOjhYOg5O+mgnHPtDakCIASnxH6ef2NBmRM+NWTLVDC0/CGA3ypWM+XHkQIQ6ot+AAAAZgNUS06qr5HZuQ34AN9PVcIF/WmJyXfnOgAAAAgAAAABMEQCIA8jZyFs7prqbTKrirlVXpbnjdqEY2ixWk+1s259doSOAiAccNLeIIflgVV1gjFQKPkQdvOOh7EiqyGEtDTT50HKQgAAAGcDVENUSCSntk45ZrATP09P+xuda+t1//cAAAASAAAAATBFAiEAqupcalFAudAHxEsgtRis8ATr3asUyUqz2XRlVYxNJ0oCIFRsa4VFf+v50/A/NhDdSpyz+gje0x1jOmN8+gBf6IZwAAAAZwNURFNilasr4Ephd0dIGyksOQv8pZLPKAAAABIAAAABMEUCIQCM5RDDKTSqtBK0lgeDWbl8m6EawWadwPAtJOdG9reg5gIgG6UD2V8bOXDz+yIOTrs4/o53LoHQwk9n1wZonU6ro98AAABnA1RLWGZxAr00E7/qo9/7SPqCiIGeSAqIAAAACAAAAAEwRQIhAJhOt8GcJUjvhynoDmIBXtCQcb4i6XaBxkq3kCNFGjs+AiAJUJxs38qqmc0SdxvWC8hYK5a0/usUwdHkYh7TFdFSNgAAAGcDVEVO3RbsD2blTUU+Z1ZxPlMzVZiQQOQAAAASAAAAATBFAiEAnFmZnGedE2HkKfndNN5UnDktpqsOIYGMKqT1BCkrwqgCIDQWYd/f9P9oEL2F7fp6lESl9gNQI4b7E6bBcuIZeMNIAAAAZwNUUFRBYXJdAZaQo+DeUPa+Z7B6hqn64QAAAAQAAAABMEUCIQCn3XHoZ5nP79NOWGfZ0j+AEwyx5IvrXukCQds6EjWQZQIgK31odmaWBsaLITcE21jBlu9rnPSohK/uZpZ6J3c/au8AAABmA1RPQnd3dw+KZjL/BDyIMzEOJF66kgnmAAAAEgAAAAEwRAIgSe2dWv7UBVYQ4zwoEGkLQrYIOp1tK3EqtzTVyDmW6l4CIFh9RFyalBzniAGe6pe/uNG06p2Lq+NsfzcSMItLhdd3AAAAaQVUVUJFUtF2aoWw1vgRhXgtwH8VMm1jw8uqAAAAEgAAAAEwRQIhAMan5RmICu4CLYS2qrCPQY/Oen7KuK3bbSyBSAcevfK8AiBCpxXZJoTz9eEIva/9QQ82Wrhg4mUdRkCF8OcQOUC8iAAAAGYDVEtB2uG68kmWS8S2rJjDEi8OPnhf0nkAAAASAAAAATBEAiAqZJk4lbnFGrYF6caLEKbbkbQ5x+xjN9r0Gta47HLQdQIgfk9eOIWUqFAv8sOFLQLoaDQeigalpXzqxnLQeGJ1O0IAAABoBFRPS0+g8FRutePufoz8XaEuWUnzrmImdQAAABIAAAABMEUCIQDhLKtFIe3cHiIQ8HKEqnaqndsiOOhu83XgFgOhCCDuugIgMmN0b34gL35FYEcIX8NcNsWMCYhhZ3Jk3hWZ0PHTxVAAAABmA1RPS5pJ8C4Sio6Ym0Q6j5SEPAkYv0XnAAAACAAAAAEwRAIgT3VI2UBzPBRyNwBKn58lE99SRKm1eLUlVPCCNJkHHMACIEifmeXeaoeS0LGkc7zSb0vz8kehE3n4T3nKlwFOS9rwAAAAZgNUS1DTFpWh015IklLOV7Ep/UsbBeasrAAAABIAAAABMEQCIEd5BUX73pdiOftWy0/Fl8tvDYmr5zRu6hOgDpejGHuyAiA2bTbRtl9SaxDwyiP3MPl+4VuGPoQycng1OCOsNW3x7wAAAGcDVE9M0H2f4tLMBnAV4rSRfSSTOAT0LPoAAAASAAAAATBFAiEAyjeYaL3nis8se+2LXkQ9snN/rEKJqUzIBPw1ZOqUlTQCIDXjrxCqT/N3k1E8JuqrJCFVrmDrqfKsnYlyobWqZEvSAAAAZwRUT0xMYJxxF4MpUgnZ8z9TWnylW4/4evIAAAASAAAAATBEAiBYzjhnKsP5RfWAso0DyHlfMuyWfAYIeUI2Rlut9IkmugIgWzy/zd0ZzqXZ2gYCNGmEt/A2g3pRNZAkO/pxNMVYbmgAAABmA1RPTfeXBJmBRlTNE8t7bnY0oSp6ipq8AAAAEgAAAAEwRAIgMYzIwwax/14IRmMm8EutCsUBC+7iHcihFZzReMFN0mACIBwTRt4qKEg8lsrcGNJMsthTnSJkIahdxKjFUiT4Ed1LAAAAaARUSU5VLQ5ktr8TZgpMDeQqC4gUSnwQmR8AAAAJAAAAATBFAiEA1gh8JDf3wLeFNX+ujQEtavWlXGdRg6Va82lNvBMzoMkCIDWl0LaCpHXsh3DQ/pXcY6tow+wAAaQZVTJtSgDmDkFwAAAAaQZUT01BVE+CvSkK+lzBt19Ggi/sQV4r5R19RgAAABIAAAABMEQCIFugQRhCzTaJ7mBW2VZUQLnihINZ1+xETEBAXHJpQZmOAiBqJI6t3fK9+62S0e6aVyVCvhyqEwWXL59oXVPa1WSXNwAAAGwIVE9NT0JFQVKhZTyzeFIknk8Y37xHOlzj+I+mrQAAABIAAAABMEUCIQDyLT6V+qWV4jxIn4E0qyw9Nthy0WLEsyLq9gZq7hSyhgIgC7bLZUZfswte+NchNk+fAaFEWxeRfcFC34dwdTJod1MAAABsCFRPTU9CVUxMo4kgwA0aUwPbU4o+oI2np3nh91EAAAASAAAAATBFAiEAxU6rRiUrb3EIp8CqfNpVRMKz2gUYAHxNNbmA37mU3isCIEvtZ0zwwgL20yw6D8K0P05RlwrEz8Qt2zBmCzrQSCcjAAAAaAVUT01PRQXTYG1cgeubexhTCZXsmynaBfq6AAAAEgAAAAEwRAIgOag9ETL+qEGOQBJMEAFpC2YBv3va18Co/qhxfDj+XdsCIGAaZtYYXf1faugxRXn8onagf4wfei27VGYaAmIeJ8cBAAAAaARUT01PizUwIRiTdVkXI+c4QmL0Vwmjw9wAAAASAAAAATBFAiEAlW2zY0CRCs4Pf4IOCr9qrNWuMVmdW1XGCQMPPSPFpnECIHHlSeM6/mzvCi5KQ72UScqjaRhDQXkv5T4SaTTCeMlPAAAAZgNUT1NAnE2M1dKSS5vFUJIw0WphKJyBUwAAABIAAAABMEQCIEZNvvSNxAAQxL0tSaEHBSN+R3PblFUDXvQvlbUPN4UDAiBffaMvOAcbhUCN1qk7MpqU4LpSGosB7BnA+z7FILCyxgAAAGYDVE9Oamwq2jzgU1YcL7w+4hHyPZuMUgoAAAASAAAAATBEAiB5IYy/N3XM1027IOTGMKqgVcSNPXKutJ/KztHsvV1+NgIgNXxcULoov5fIYF0eGZQOsx+ioUiLEU+nwQzZUOBXRE4AAABnBFRPT1KOuWXunM+852wKBiZEksCv78KCbQAAABIAAAABMEQCIF7sVcCjgHU1OfEaAq9Y38t6wVcfMtv75i7El2hIL+SaAiB5yk1aXo2VcCFzklqRUq9JjoFDslagGe2WnuzDL3AvWgAAAGkGVE9QRE9HxXuqJPcgN8IfnA00W7bxn0dAdEcAAAASAAAAATBEAiA5rRf7WVQZ8DpHLS23W1QIHaMjpd/HaXtaNhRdJyE84QIgIMEvz8nYcOL/1ytE+S4AZ5HD/1UOJfKJmQ+a4uDmw6UAAABmA1RPUNzYWRS4rijB5i8cSI4dlo1ar/4rAAAAEgAAAAEwRAIgKQusl3d+JB+fTIPW/rBJkJTJaWWrVYss+sf8vEBia58CIDmK71k0VgPn3SUN+zQQrERJvZ58Tt4EbTIHqZBgPEdlAAAAZgNCSUQAAAAAAABFFmxFrw/G5M8x2eFLmgAAABIAAAABMEQCIH/ZG625BHExO6fAvGAbS0cy+zljK7PX7N0XzSzrLRlJAiBanCvJsW1UCuwGC9Sfs3WMtEbPtgkjYH5/dHhcHomc4gAAAGgEVE9QQvYxfdmwQJep57AWzSPcqnz+GdnGAAAAEgAAAAEwRQIhAMe0n3DxPM4k8M4D8Uf3VVC0V1sU07eM1r8ySaNXW6K8AiBERNfJ1QBYLWjlzYwSz0ydvzY7qfmecklhyrjH7oWqxQAAAGcEVE9QQxtsWGQ3WzSvP/W9Ll9AvEJbSo15AAAABgAAAAEwRAIgHEnV4koAAINleY6Apf/Wtv6O/dD5AQQDJaZdU6MkU04CIBgPSdEcpnxcMDYPkBUtvqMIXM2FOKozw/2pF8oSdB0NAAAAZwRUSUNPf0sqaQYFp8u2b3qmiF69kGpeLp4AAAAIAAAAATBEAiAYtcZTvbEeEs32IPAhdqmUNIamy4qM3SbcWT+uRub4hQIgbcu62IRGszla63fdmqwQ65FU21evnVgSCVnsw7w15GMAAABnA1RPUk9fLupO00heXiOjlwTV/Z0KQjiGAAAAEgAAAAEwRQIhAOJ/UxWw42lLkFP/Naiv6G8msZjBgIg9UtvxiTLdf2etAiAS7uw/Tor7IYcQKC20WoFmEeJXF1f+hxDy1W7nnC0GxwAAAGYDVE9SnqIPv6pE77xgxnKPzboX8Bt+BP4AAAAIAAAAATBEAiB3+nHA6QYlPKtRO8YapfG2wDj46d0BJs33D/Zqm9jS3gIgMnL6ts/MpMalyDDGLbZT4xsWH/5slpx3DaTUJk6F+nQAAABnBFRPUkfPoIhRMfYC0R1NokjSxlpiBjVnqQAAABIAAAABMEQCID6Npf4/kQX/uWgfGPNroB1/SlqHi3dec+zWdehzwRZ4AiAuyedqG2QopboSqqfF6vBp57SQ+eg0/dq5/nA8RBRStAAAAGgEVE9STnd3f+3d3/wZ/4bbY3lnAT5sahFsAAAAEgAAAAEwRQIhALHkZoahNJLPZgG5+whlQ8gegzb5Xs/k29zx8tnf6JJXAiB6yswKfq/JQvsjDdKD0DrrqMy9SgSZE3GSdDULq4bBMwAAAGgFVENPUkV6PV1J1k5X29b7sh33ICvT7noiUwAAABIAAAABMEQCICR/XAQvY6vDfaRjEVwjz8/VOjkTNdK7tx0b2J/xvk0wAiBljRClfeJ66nafPXssvOSGj9uxcrrvrStwtLSKpIYABAAAAGsHVE9ST0NVU0Bq4lP7CqiY+ZEvsZLB5t65YjoHAAAAEgAAAAEwRQIhAPvQpM4XblmZ/uEK0toVSG4bQWLMy74EgUoxCKkImY9KAiBObsyZJB5irE7SY08cOxtBhZo6F17A+OFDvtXLPQlwCQAAAGcDRElTIgtxZxtknANxTanGIShZQ/PLzcYAAAASAAAAATBFAiEA9jKvK418T/oFTL+/2xoPvYc2JeygYaCsN0pIFAPfuSgCIA2YVwCHoM1nvEStsknFLNqViQI/gseys48I5fUwj4nVAAAAaAVUT1NISfE217C3rluG0h57eN+pU3WnNg8ZAAAAEgAAAAEwRAIgLVVfHEc5JdwS7EP3xBv+z4xk2QR3vGQDIXvo3Ur2F7kCIC2WZEfr4jlE2gqleofIr235U70q16HU/YaAEB7Elvt6AAAAZwNZRlSc052o8l7FDPLuJg5GSsI+oj9rsAAAABIAAAABMEUCIQDL1jS4Iymn+mrtTPL7kR2yWJAd+suxYVA+Tb1LmcczFAIgDlaYsA72/pTHrpJ//uoAFs+GfutqF+7O/MB9rcl/UV0AAABpBVRPU0hJG5qgtj4PAlzVROTTUO2BQptDtyQAAAASAAAAATBFAiEA+mHOAMEs8LHW6L/Rq+Zk38sNWXeKBGbOruxzIFaLRUQCICimDYRdNXTt/tHXACjKV3SqmOujV1InbUGJHs+Wml0oAAAAaARUT1RNb/G/oUpXWUpYdLN/9qxe+9n5WZoAAAASAAAAATBFAiEAtBSJbfSHGI0H6KVjzCmjH5iPVMwb7zQrzyO654bh7s8CICSodvY/SY9Ph0i3mwxcyIeuhIxZyVZeICUlvgQG2NcOAAAAZwNUU1TZuuOccloYZLETOtDvFkDQL3m3jAAAABIAAAABMEUCIQCCp3zrOIYJJLeOo/TEpBYm2Z9Ylbps9Eol4XqNCA/ruAIgfuKgWe01EK+TGAtSCFn2+GCdKXJmwrXdHfmXHonl3gIAAABmA1RPQ1SZBVGfngbVXX381NVIF3gPa5PoAAAAEgAAAAEwRAIgLHhZ+oMVzlJAgRORyOJB5tPJZlX66r7eeaOVLiq6TLcCIEQrtEhWi8Ty4r5JtrgDqLi8Nz5gPoXT82w3YKFv79/eAAAAaARUT1RP4yeN8+sghbqbaJmBKpmhD5yl4N8AAAAIAAAAATBFAiEA5yo7z+OkaROn6vVscNYSqsJGRYjd+ukeX951J0781oUCIHg0mLsfeJ0n9xLhugLkOXR5K+H5+YGXiFLfCT4WBjAMAAAAaQVUT1dFUhyZIjFO0UFclbn9RTw4GP1Bhn0LAAAAEgAAAAEwRQIhAINMANg6fCqFrtZH5nMn8GpWgp6oIXiAMg8nMk6Tyg32AiBEXDm6FedvWu4vMJUAArePiLKJWQLSiFXelV686B9ocQAAAGgEVE9XTj3ZjIoInbz/fo/I1PUyvUk1Aat/AAAACAAAAAEwRQIhALuYHmQANFy+sJOkW7dSs49br4X5bC76Z+tuoGpD7gfyAiBS45WxIxWklLNDv4uvCeU9t00cFyie7Fw7Q/psEWbJ0AAAAGYDVE9aKSOSQqg0eaQHTLHJ4qPmcFpKRFUAAAASAAAAATBEAiBBvqkf+/S7ld8zFl/SCbuuG6/RfhPbiVYnJOBrMLKsjgIgCMOjVaN093ux9NKeDc3KH6neBFHW8eNsjm1otOES9ekAAABnA1RSM/Yb9NGpSEh9Ybj6Y4CKrAa9pV+YAAAAEgAAAAEwRQIhALnXeNuHmZbNCx2/Nn9l2znNo588rhzLNidtjkQKihTaAiAONJ2MK/KXuruYlhGlezNhdAerIA0lJUAJueBi2vLgywAAAGcEVFJBQ6p6nKh9NpS1dV8hO10ECUuNDwpvAAAAEgAAAAEwRAIgdNbqyGD0ABlb5P3E2YEE6wEyjeGA/y1EOWCPhWn7BOoCIHew+MqaJVdU4eQ6jBZ8TEdgszYh9C2eGLQiC05FHeY3AAAAaAVUUkFDRZ9/xobP1kqlrhWzUdAwcekVMwlLAAAAEgAAAAEwRAIgDWEDRMUDISd0PjnhenC2PFUdRW3ADAbUGzQElmfSEy8CIAkrgazJ7JcK8e7+yGcUIbuYAzkU3l2rbR3jPgz3UcSSAAAAZgNUQUPKaU63nvNV6gmZSF0hHmjzmumEkwAAAAgAAAABMEQCIBiDMWCRcIwNTxsULQZQUH58UiVhdRSnbI+oQLY6R/0DAiA90u24ilc+lOjvqW1+L/tP4pkFCeQoQkfMCSRAZOI1sQAAAGcEVFJDVDDOy1RhpEmpAIH1pfVdtOBIOXurAAAACAAAAAEwRAIgapliGVT+Edj8liriWV403HRJXCaKJATKcxeOKRRZRzwCIHVlcTobTs0+ikSh0b5eQbmvPt1DXcODQ9iKBVQX0L43AAAAawhUUkFEQ29pbrCa2YUkeAIo0t9PNKpmXZ27mZnkAAAAEgAAAAEwRAIgDX6nhJDUF1iiF5U/31kg7k7Oh9cHml71x5dFPTSy09UCIEe/sghHzZSz0X0Wdc+TMlQuyWyPdSli6gCxGqrSW4BKAAAAZwNUQkJKetywg/5ePWtY7cPSYOLmFmjnogAAABIAAAABMEUCIQCwWsouRYhu8uQTpSiPrYaeDAvjwGkeDIAXiK+uwhq3pAIgaZYGm+mEo6mgRPbIz+Dq2+AgX0Uj6Ey6ZetOJeizVyIAAABmA1RXSdrSa859z1nNA6JFVVjk3XPhwHtmAAAAEgAAAAEwRAIgddoTCMH6J/BHiFDVq0W3qDOnHJOaEOi4XSi0vOj8wHoCIGENAHmLPBZjXE4UeWmLCY20QbokR+W6E3Mk8Uu2TAHkAAAAZwRUQ1NUmRD0rtSnVQpBIK19qN+LVukRl/oAAAAAAAAAATBEAiAcykuieApJtQBG4ZsiGfefEX9GpszAU6z3Xmx6wFhGpQIgT07IWirl19JkMKW/R2q3cbIkKiicz7j/gDRxoCsE23oAAABmA1RTWHNMkARKC6MbPy5kDBDcXTVASZv9AAAAEgAAAAEwRAIgERRiI8B9lbo6Tg+qc4X3X6QJLo/IxhwGXBa7a4ppL/UCIGv+bCqS9rq8V1FTJp+V0XWboeldRhMHgmFt57QITWYDAAAAaARUUkFLEnWVEtMmMDtF8c7I97b9lvOHd44AAAASAAAAATBFAiEAi0K1r18k1FavHhcTYNem5YZGhDeext58ODtrDTgqRAACIHzS+7sZwaZIfJzfde39AUC/IH6OlV1+nmXiJTZbH7cNAAAAaAVTTElDRQruhwPTTdmuEHOG0+/yKudd1hbRAAAAEgAAAAEwRAIgaRPBC5ZH6jzkDTQ4GAsGooVJ1zvihmxaCq6t1MhUk0QCIGaeiNGU30NwJU60L3ld4rTgihF814lYpUwT01jDdErSAAAAZgNUTlOwKAdDtEv320tr5IKyunt15doJbAAAABIAAAABMEQCIBa6eGuInjs5E34lVELJ9wxBtzx6AZYkQmd4F1nmbwLWAiB9oO+9ni8FCXj4cAeQLf9y1HmAY787B7Udpo6wZP2bIwAAAGkGVFJBTlNQTr4sUm7j7UeRoClg9T9lZF9ATtYAAAASAAAAATBEAiAyUTrLrjAGp5fJbtho9jpSITAaemjK2tBRCCRasVFG3gIgHaFamDLKhWlRcEfdhGCrofljCGv65N30eqZsqfVbrUgAAABmBFRSQVTiJayilSS7Zf2Cx5qWAvO0+cb+PwAAAAUAAAABMEMCIAFSrn3rhc4r9RcG93g8Cc1JD20Oshe6kfSgNoeaAn0WAh9/Wql+jLfV5hbHaI8bK6HpnvpK0bMHDcmxj3IwCDoYAAAAZwNBVkFEKxU/b2HAyZozqkFw3LMeGr2h0AAAABIAAAABMEUCIQC2hjQGjrwdHU9X9d6qViUTU3p3boTGUkXYopyMfYrapgIgGt+yqkGxHa5mlqLTev2ssb2l5NOrMvcrha3q0Fc3gkcAAABnBFRWTlRWNd3qv5zdpoaZX+kL61QRgxVj/AAAAAgAAAABMEQCIFTjXsUzfYjvOwv4EIHxeS8YSEh1x/ARZLIxw58mSbVUAiAZ86ahqUS4l2V9dB1M8K3yoerdVRHcGbDW2Jn2N8zDNwAAAGYDVE1UMgn5i+vwFJt2nOJtcfeuqOQ17+oAAAASAAAAATBEAiBGCrAWnP2IB608Q/buySnJZifbJIr2pdE+I0QKkuJmJAIgE1AX3Pxw3I+6IpgvKnj0rAUI/b7Sg22K43rxs6ahfKAAAABpBVRSQVhY1DvlTBrt9+5AmRBPLa5OqIsYokkAAAASAAAAATBFAiEAqr8DwIXNnPYySDkwUM8ElhMUFRDUsY+E0ypKL8uxOLcCIGFFvrCEPn5R/TOmuKK+2hrFpYL4wxE6Lo3kDNPbbZOnAAAAZwNUUlo5ShZ0Tc2AW7DKclLnBpHw3KxWqgAAABIAAAABMEUCIQDRvwYO8fMKUvbvbcojBm3NoS+bTK6bPt+T6ORE47V36wIgKbbaEtP3kGhMUl1huyz19WTDBYsuiqk3QOZvwspcZmUAAABnA1RGQ4aU7gW0XJ/hBYzlMt6NvPHYSkFUAAAABQAAAAEwRQIhAPw7m+oInYoyONWCutb2nxrTm+XEH1Il83JKryhahUxpAiBLELz8D6MTLSWx7IJj6yCcRRD2cEwlBRcEMIJdzk0f6gAAAGcDVFJCkB+GeabvQ11TNzL16km7gtVovpkAAAASAAAAATBFAiEA7mcGShII+ICjp77813TXXoFXSIOTDt0BnU4f7MghSAMCID54OCCzcTHXp58Lo3dyJCTGgno5hS/qXmZqZBpgucWZAAAAaARUUkNMCp1oiGoNfbg6MOwA1iUSSD5a1DcAAAAAAAAAATBFAiEAnPDQClSsPL6sejaxhcVhIgcmaBBi+kMsCZ/LQu4pSXUCIAWg1uMqEV8rCtn9VtaB0LWp1NTpsYKQYVfGNbsUP7tCAAAAZgNUUk5wlo/q8TKZ0Nv3j2aGC6udvjhWvAAAABIAAAABMEQCIHd9t040T1nHa/zEklLxX13QAxB82mhkL5JGg+Wk5f4+AiAFjl3/VJ+CLc3or4en8yzvNnveh6AAQd46F/dqSqLJgAAAAGgEVFJORMPdI6CoVLT5roBnD1KAlOnrYHzLAAAAEgAAAAEwRQIhAOT0GVCTBvP4BtG/bfgGNkPuG6UGtYQ1SeXhguuFIrWYAiAO+GDH9GTCZAI+q8vp60GhydetZ+9RmXbNCncK8+oW9AAAAGkFVFJJQVM6hW1O/6ZwxUWFpdUj6WUT4UjpXQAAABIAAAABMEUCIQD3t2pFqoWKcvry/LPZqua0L8ICkn3k/7/MyCWbTyIyywIgFNCiUqVIK5W2DHsYiwZcZEYtGBKEm10+j8+NzXQNgRIAAABpBVRSSUJFxyg7ZusetfuGMn8I4bWBawcgISsAAAASAAAAATBFAiEA907+ulUq/mFPEYsCNHyjQxWz4/xaMsqyURFWUAYraLwCIDHKwrFvmkfDGFMYRRd3hTfYfQyFltuLPH17DvkEtSf5AAAAZwRIQUtB2FrXg8yUvQQZahPcBCowVKm1IhAAAAASAAAAATBEAiAw24GXe0hcJJ3uFNAdXWIWJMPVgDoqDoYNIeiFcovcDwIgdkXypsT59WqROT7BKZqol4cvnDzxrq8DkzhEXi9IE04AAABnBFRSQlRwMauH3MRoGIBuwHr0b6jCrSor/AAAABIAAAABMEQCIG1sYYlNSlJEMXmpwgNzpaZ2KU0bhAL8sc4UVSSuGEIgAiARdAHVhMsFY7+bFcaS4xeMOOYXWvvBArhtmLtKPNYsHgAAAGcEVFJEVDP5De4Hxui5aC3SD3Pmw1iy7Q8DAAAAAAAAAAEwRAIgKa6BFVhk/5ruAkIMl/W7RZAHawrDRYFtFjYkHmBDePkCIGtuBpbJEMNl+OM48nnZZDQFbaknx1WpdhHAzMuapfzHAAAAZQJUVOysq2clrBcR2X5V3zXVJbhjuLn3AAAAEgAAAAEwRAIgB+5IPetPJmpyXi+VsLCCoCUS5yN5VDhh5S1OSGZK86sCIBgU+w6093zHaIYoPE5BsCZ7oV0XN+SkO/TkgnhIdSOwAAAAZgMzTFRDAkE2jB0pP9oh26i7evMgB8WRCQAAAAgAAAABMEQCIFI59wTHIsEpMPrHR0AsV34ujpQEQXibChZ5e+FgWjLsAiBuKc7PhNc5sB9IsfMssBfjjyb1cv3zNhGCcoafCHEcIQAAAGYDVFJJwpkASjEDA9HAAFyxTHDMwChjkk0AAAAJAAAAATBEAiBsvHPpDDRxR82AY89KkCt2NfYGSprawjcOlBF/KC4xSwIgIyjwdiX+c67uk76kzwNHRRjBE87hHVM0JPKrTs4+68AAAABnBFRSSVCuL6sXXSC3r6VvO7MlALJtxiv1cgAAABIAAAABMEQCIHXrYAE8OFjqSdoG2RHYKjYzwKTTbOIhW9K1uyRU0a1pAiBoN3UNx3WxpYKMWy5GGfQeBv/VcksRcuYW4IJYjAHhXwAAAGYEVFJJT4tAdhFCuaptyJZOYdBYWZVCXD2UAAAAEgAAAAEwQwIga32qVMSbJJkOABGJ7aUj8lul1je3BYDeN1WLbk1/l1gCH0AHIGO2EYPLVBWZXQ5NH9Rl9oipS351mNcXpD2IUDEAAABpBVRSSVBTE1D76M4ndi7BkTS/j8QFpCf+m/EAAAASAAAAATBFAiEA6zpUBpqIDujXcdrYhwuJTj8weOpwPoKacUFBifT5LV0CICail9CS4PRhaAf5c/zn+Zyje7x55ZS2niQ8a92ulQ4NAAAAaQVUUklTTVa0+MOeB9TV2RaSrPnQ9tTTSTdjAAAAEgAAAAEwRQIhALgMYxAEIwmrIaX+HSPetV5lNpbqZVOfBUKdZ9ABqmF4AiARUS/tRD+nZ32jVQmeMnFP9cAgBBgIOFhvUyuGhvkvdAAAAGgEVFJJWAVjVPP/IHQ6pMDaNlYDhxxwALCBAAAAEgAAAAEwRQIhAKozLBBD5xkkZK/8cSZ0Cbnf5aAAKurs3w4hWtkwtGW9AiBWJHOjnbsqda3xGoSkIw8EkYa/9FehBNIiYQg9dZhf6QAAAGgEVFJYQ61f5bC47I/0VlIEmQ5EBbLaEX2OAAAAAAAAAAEwRQIhAMxIc2lf4v3NQ+PGkCFZv8wyM1CcxkYsyXxxpjItU42fAiAW1eJ9N7CYGVFEJMgmU9/FRYwP3nPz/iOpyKZDnmOmiwAAAGcDVFJQmx4fyVi4PoAdE0L5+bp9o6Vboe8AAAAIAAAAATBFAiEA41JDfw/Lr5bOAvLjxI+6VZ/Xb5avNpDUNBVWWsxA/5oCIDDwvgt8GAt/1RLEXHGFvm9MJRymbrnRyF8PxUktorg0AAAAZwNUUljyMLeQ4FOQ/IKV9NP2AzLJO+1C4gAAAAYAAAABMEUCIQCwX0byzHy0NQNSbOPiI9PXSqu5//UygHifPq0i+UImoQIgEaA9XjaXUBNYlclUzCxW467yYQCT1JuTwYPMIlzEac8AAABoBFRST1lFdFYukxCpT5ypYr0jFo2KBodbGgAAABIAAAABMEUCIQD8W1b/xE4W13jmWjIPj7xXWD0gockI4iN+nOxiR9fp8gIgKCXPx51xdCs1nf/HIVNjkSQMKc8bzYuInSPEayADNQQAAABoBFRSU1TLlL5vE6EYLkpLYUDLe/ICXSjkGwAAAAYAAAABMEUCIQC5JQM+kNzgno/oBU1nr7JIcvXOuH8CmL08U2rW+NDtxgIgVtuqwZB2YqiICnTkedarLWONzYZ0Gy+wJ7vpJn5dpwYAAABpBlRSVUNDT/EOPo9rArWUt8lfylncflznNk31AAAACAAAAAEwRAIga6Jz4f4kusycNzWtEjJpM/gl1MRHUWcFOIq6LZqEpiwCIB6TySJ3+5SC1Ikdt+2kSUC+WyluqSxAs28s2T/LQkJsAAAAZwNUU0RIRiOf301MGusmcp+gZLAgWsqQ4QAAABIAAAABMEUCIQCEwj9VOaohlW9lNZ/fKRvV7qhc9Wk3yRkrq2iTjRbBVQIgUQbs+IcYipuzKUKmmWbQ3Z7X0G7yG59qnqfiqzD/tvsAAABnBFRBVUQAAGEA9wkAEABfG9euYSLDws8AkAAAABIAAAABMEQCIAvqAVv6bM0Efhud7NfWUl1AxwPrLlRCwo3h3Gn+rHkxAiBxIMN6rBvrhuVp5HgLev3n/5mtZnOeJitMVUrdD1DCDQAAAGYDVFJV9ltcUQTE+v1LcJ2dYKGF6uBjJ2wAAAASAAAAATBEAiAYORikueJGsocH8NqkER/LUzR7mwM50a20VxQ8EbN1MwIgKD1QDCWTxtBY5cAj5r4wYD01Hl9ckgDpGEK7Ky737UQAAABnBFRDQUQAAAEA8qK9AAcVABkg63DSKXAAhQAAABIAAAABMEQCIHWC4cOCozPZ6Z1FAQA/UEaIQcN7yBhHBCymLau4MMV7AiAJh92f5RHZ2ZxNL6qjg3gaWUCUIb414pG4GrzKwDJ/0QAAAGYDVERQWxGqy2vduf+rkI/c5zm/Su1VQycAAAASAAAAATBEAiAUeOBsuZrihy6vriyY24VVcug+TE+QU81WkUap8qsQYAIgJAG04LuDnUaW5+9E2pIJ2q8URVkVQjGcuNJF2VWySEsAAABoBFRGQlhAV9tb2fZ6VmqhDlWHsalkr/xqFgAAABIAAAABMEUCIQCjUtJFIDjDJH8R7gpFmhh3pdjsWz6rmy9vn3tudges4AIgeoFdhMk0UQ39+ujiyxaNUGpvsjWdFfdGIoMMH0xbpYUAAABnA1RGTKf5dsNg677URlwoVWhNGq5Sce+pAAAACAAAAAEwRQIhAJu/OmyRSn3Fv1gNMk3d0aK/Dct0fe5Zc5ME8GeWvHFbAiBm7jFAY20w0O7IuvLd/Dj4cyXTQcNQyw9s/9FzMWTq8gAAAGgEVEdCUAAAAABEE3gAjqZ/QoSleTKxwAClAAAAEgAAAAEwRQIhAN58+GYGqnhCvhGufGSS2+HA/pBHlzPJlR6xA0cmhGntAiAQE/hHDNCby4n48iRepS9YaekuTBCw1whabzOekA/klwAAAGcEVEhLRAAAhSYAzrAB4I4AvACL5iDWADHyAAAAEgAAAAEwRAIgALLl6eoOSAQA8mefmsVTGDyfc6fzZ5/QRuItU+RyCqcCIG5oNSYw5TISVtfJehU3IAO9bsTgze0cnrd5R3h1njbOAAAAZwRUVVNEAAAAAAAIXUeAtzEZtkSuXs0is3YAAAASAAAAATBEAiB5PKv1qE/061SOXcUsT9603eerpeBXYI+gn/DtdOu+bAIgbAaFYN5AMk/FmQaeBftbQAvjToEmm0WdsfdjnYOW768AAABoBFRVU0SN1fvOL2qVbDAiujZjdZAR3VHnPgAAABIAAAABMEUCIQCsRwJXst3FAJ0juHz25WGUiK1EdgOWDiCp+NLAYPeDQgIgU6nTrjpqvZ/w/wp6T138rOC2Ht484+YCm+KW6J+smjgAAABsCFRGSS1YTUFT6f/oXto5s5HUq6TnQZrh6/h+yjEAAAASAAAAATBFAiEA2rNAAJDUH07mzna5jnJl0UqIHG8otGGW4s1lICpQks0CIB91O0IZ2Bl1L8de6GNf1kiQgOrWWJIlXiT5UU+jfQKqAAAAZgNUTUiQH+CA7hg4O/VJQElTjxvKFV9NCwAAABIAAAABMEQCIAqwBLrFQsVoXgePZ1D4NuajS0rTEG7aWaHc4AKv5coOAiBzvITBjOzaLhBdeCgcWctPLJpiUEfeLzx8jeAwiTDpFgAAAGkFVFJVU1RXcAJEsg+EeZoxxsltrf83PKnWxQAAABIAAAABMEUCIQC1m5XcPXPlUIMQhXeXPhBo+vlLlQCtsyEBolfQUMfNhgIgL9Tp5HHbxLxvPJYOsHao8Dt/HBKjVJRJJeP9AApteYsAAABmA1RESCodur5lxZWwAi51IIw0AUE51dNXAAAAEgAAAAEwRAIgV396+Q4Vn+/7ycsJt6WByG9PpjrFlVZrytXWk4mrFm8CIDYMy7Wx2YqlwDFFh/C9RM9uivKo9EpOektDKcI3w2qjAAAAZgNUTE5nkTH1kbTzaay4zYxR5oWWgGw5FgAAABIAAAABMEQCIEK/qd4uVW5byvxL9OTQVlXii2NfujAe7O8U1OShtEXiAiA7KHutjy1JS5u/Yot3cFrIAxui6STyqy5mlyTjTl0bRAAAAGgEU1dBUMxDBKMdCSWLACnqf+Y9Ay9S5E7+AAAAEgAAAAEwRQIhAOgOuPdNmxcpV12kHBMPkEbYdl1ll/1B5Nq25tctsxG/AiB9j6Tg1Fs1WCZ0OP9vF6Xwv4tm2YEv3gBcWIApq4QvCQAAAGcDVFJVTBlZb1qv9Fn6OLD37ZLxGuZUN4QAAAAIAAAAATBFAiEAsTrcYaXAcI8f4aNWR2CmZutfAeC880Pc5gsjkn7RNFACIDNOXQwQyiG61FPtXWK4KkHsf7HmxepPNm64P5fTv2tDAAAAaAVUUlVTRN1Dag3OkkSzZZmueyLwNztOM5ktAAAAEgAAAAEwRAIgU1/BDhQlZtIMt0G/tV4S9/5TPVieIoqsLJDl3I9u03sCIDk5xM0XgvT1rjgCwkcboVkvfLvBERCVurrgDgdpKeBRAAAAZwNUUlZylV7P925I8sirzOEdVOVzTW82VwAAABIAAAABMEUCIQCNbwYOZiQzVtehequWJMyfNvuyhyl3Ivg2MOumvutbCgIgFoSKrQ9bGkrqgQuajiwqnk56xc460G1M0OPfkEepFWMAAABqB1RSWEJFQVKGgH2luS0x9n4Sh3HKy4XzV5ZG6gAAABIAAAABMEQCIG0P3aNK7a9VNsiyduQY5CNQKlnjS5zte9aM1OGmGAhsAiAq8j0QA9oSRfBy/oyE08JUpEhD0frmIItBS2AGfbg3gAAAAGsHVFJYQlVMTMF153sE8jQVFzNOo+0LGYoBqXODAAAAEgAAAAEwRQIhAJd4BYA6y3kDH7U1KUMuiTA0k/sbFbsXYe8mpuU+qMyNAiBskhlU5lc2fZb4BQPInF7QL3EnHz7y9W+18Fi6HVLjfwAAAGsIVFJYSEVER0XljI3wCIzyeybH1Uapg13qzClJbAAAABIAAAABMEQCIEz7dCeLxVVxrLmz4Xk4U2X+E0lzOUAU7seCqFCdX73TAiA+UM457Cnv7boyp+hUPuwYg18bMjIYgR6xZ5S3IMG9uQAAAGwIVFJZQkJFQVKl3fyouDfM0M+A/mwk4qkBj7UNugAAABIAAAABMEUCIQDXrZ5FgJkiOADfGNgRydIEW/umiFc+zsYcNgt9AMI9IAIgYu1G+dZEvzJG1Y4vKt7CmMeEkRFNYtg0aaRdH5ENpiEAAABsCFRSWUJCVUxMxwOMz2DkjFtxGeVVZqatny1mx8IAAAASAAAAATBFAiEA6W50xkvOF73RGKZNKPx22fh+28SFfwPgWLAGplyeSJkCIFX5fzAE4U/FwXKyXMeZ7f1Nx1/ZZN2xu8Aj9KkgZFfgAAAAZwNUUlnBLs7kbtZdlw7lyJn8x64TOv+bAwAAABIAAAABMEUCIQDM+ipclp73DRmGK4zTyulAe3TtYcZkKJ+6awWrvXwIoQIgGFgIKEBrn6IpjidSr98Vky17WOjn0fa6C6J774Bpk1QAAABsCVRTQU5HTllPTtAx7a+samrlQl53+TYCLlBkRMJCAAAAEgAAAAEwRAIgY6qFbty8lkS5pepkswUaQTsQiUseOIH4vEFHyMLU35gCIDRFZ8XmzjXk4V9sS9KYmE0PtY8EQjBVdcOwy+MqM9g7AAAAZwRUU0xB1Qgl9QOEvEDVoQEYmW71A7NnCv0AAAASAAAAATBEAiBURm1/EmIudNIZQ4hSwEkcWNtHRxWkIxqBBWBsfprEYgIgKXf0xkguLrU9gCkCoWnEt/mXfjBOlgNHOWWil8nTmaEAAABpBVRLSU5V2iPTAXYeTiv0dJUfl49t+288nxQAAAAJAAAAATBFAiEAxzHUNmwLiT4YDrRPvDfcNTm1BuHuGnw45IVo4RTDKbcCIDd+X6UXUpCsPPOcUEl3VZbfl8msVsnM4Hwq3j/B/cblAAAAZwRUWktJ9SfSQ5HHZ7hrjpE4XhzpxU0jCisAAAAJAAAAATBEAiBqk1rEkG7gavEwKZVNOZt9FPy4Jo+ViZ9Wm9eZdc8+ggIgYaa9ws8Gu5cUJMt9E9ILIccY1n4kOWc4Cek6MCu9SnkAAABnA1RUQ5OJQ0hSuUu61Miv7Vt728X/DCJ1AAAAEgAAAAEwRQIhAO4o4XlHG+hbJ31p259alethGswHJY28W3VEI2pejrGjAiBYJomzaaxe3vNEtHLK85UyQr2SlEI0lIJfPVRn87j57wAAAGYDVFRY7y4jmyGoFxmrqrxiOeLpCFm0TZsAAAASAAAAATBEAiAodPsAiAFeJX4NxceSnv+C1X7psLjYVLr44WNcr9N8BAIgIKsOEslQiH4dKvK5maN9BndR+rzcfxElkviawLm13WcAAABnBFRVREFeMALf9ZHF51u53triaASXQuaxOgAAAAgAAAABMEQCIEvS5XaOy4fe8llYbusGYYPR0CA/PtafgocxwnKJg5cUAiByHOhOXIwBVuhXv5Ox7DBJa/g1ksyVQYLGsjrg4KQ/MwAAAGgEVFVHWrWUPJayhXDWNRLdogaQRbMEmU2vAAAAEgAAAAEwRQIhAMwvuhCmpU1zeMM6AQ3fTS4JhCNmh+T4GJlDtqpA+3BSAiB8MCy7/9KT4GzY9PQHe4vgZb4sxZFUj2alzgZ8U8lSDwAAAGgEVFVORWtOBoSAb+U5AkabYoYCTbnGJx9TAAAAEgAAAAEwRQIhAKj3UdOb9Gt61JhN7jaYfcn1H/zppi/sG132+9CHxw0uAiAzJdgDy49k+dVsgx8cJITdLVZg/7tp5SMFCIslrtsbBgAAAGcDVFhUokKLbRz/qJdg15eptaJjQs30VF8AAAASAAAAATBFAiEA7ByM5R4CnMkE7Xf3cKWlcX1KP68O2i0PjEnCAsgP6ugCIDV0Dlc5VVyGVp2L/aQyU5V+mRyRmKU74sG1uw+tcgcnAAAAZgNUTkmloq8i6sbwUCJ9hEsQjCsqAR/TKQAAAAkAAAABMEQCIGTV7zs28sbYAk3H4Aw4y2ueukBLKbkx6WQbxK1/Tqd1AiBiu/IFT1YYxpkC9ge2hl11P4/cfiUbdcSsXS8G+o0IkwAAAGcDVFVSFgDC4IrLgw8qTuTTS0hZTa3khlEAAAASAAAAATBFAiEAusEugrIfBp5HjMrpqy7iUReaw7EynKjQLILaF+KoKisCIH/dT7hHrdB+zgS0Th0883VVb4mzJ9q8LhMOsosXteNvAAAAZgNUVFaoOL5uS3YOYGHUcy1rnxG/V4+adgAAABIAAAABMEQCIH2ZnGmKvHAlYA7GzFaVz+o0UZAQl8z9Sf85FHrkyriFAiBDYA5PYPZX7MIw6xV8AalVFOPLSCpEm5u+ml5UJXeUkgAAAGYDVFZUmOBDjT7hQE/qSOOOkoU7sIz6aL0AAAAIAAAAATBEAiB0N/c79KZw1ibF/Pq6HF62Kpng7dWrcj3k8ZapxXC2bwIgLGrirZ6nYndAfv+qF94EbT9ye1l3F+W+YKULSAFqvZkAAABoBFRXRUUrb/U/wkk8zVIC2ApsQ5dBQUxf8gAAABIAAAABMEUCIQCV4TLj8Jgs5YJIhuORZLbFTzyl41ywcwUb7XCs0sEpDAIgfapgc0/FoADDi6PwfLivodkmRy8mkEhFghWM6UPXfyEAAABoBVRXTktM+9DRx3tQF5ajXYbPkdZdl3ju5pUAAAADAAAAATBEAiAqy/+8ltEZYRLp8BejIIh03+pVaO3PU6jGRTmNK+H+PgIgVHxXg+ST4ajTA5J6zveWwwHHjkIP2hS+gUDOcq/SuUEAAABnA0ZGMVmvA1bN69H6I65drf+RcLv8MSeMAAAAEgAAAAEwRQIhAIIiCPXNmdMruB5uui0keChRTH3ETFDkA8YkTr3DqjUFAiA7FO//EZAmbwiNhmxow8VzRY57R+log9SaXFDms0X5qgAAAGcEMktFWeSJcvzYKidEEcAYNOLwMdQ3f6LAAAAAEgAAAAEwRAIgUsHqWBBkQktlOl8sz48kLHvAMb/w+OaA8mGDI/43UFwCIGjHeVfSfMg8t0Z3jYxSp875FT5iiZeBcsO9cHdnR4VeAAAAZgNUWEFEY+aj3tDb4/bhW8hCDfxV5f6oMAAAABIAAAABMEQCIDp11YPBPVSNFJi8zFVceX3W+UZF+cTfTpqNWRmudMxHAiA2S/powgHiDDtoNvwKri/Cgir+4fKl8+WQPIuIpvGAGwAAAGcDVFlDOoLTERq1+vOdhH1GAj2QkCYaZY8AAAASAAAAATBFAiEA5rtrnH0RYCuah9de2t/dKdB7clE84V6c3bR3adsmU8oCIC0g5fByiKTLIxL/AONaJvRAyB30EueohS8rwjrL1eirAAAAZwRUWVBF6vYfwVDNXDvqdXROgw2RbmDqWp8AAAAEAAAAATBEAiB2uqN6UIfcGwRURCmBDr5hySpA+D+Qh9iApQznmGiiFgIgYUHZQSuqj3FbH6y3xQMCahfm3npZxQcDXpAyuM5ieRgAAABoBVBIT09OeSVtsb22JZMVoaPX3SN/acrf2PwAAAASAAAAATBEAiBLp4J/Ftpjl/lePrFk0ZkINyfK+rQQOiqDtsFCzaBThgIgb0CZmbJ0QfU6bviiLhux1nnnCtIEUo/rIG81pua1D/AAAABmA1RZVGFP2PBs5Nk6ojYbNCyGVU61yznxAAAABgAAAAEwRAIgD6NwV3Zf6JIna2SlK1oTmpxufR1fRx11nEq4OXsVw8wCIEXfWi+TmotHtRl8Hvcp++eLJc1Cxc06w9q7sAes52gvAAAAZgNVVVU1Q2OO1KkAbkhAsQWUQnG86hVgXQAAABIAAAABMEQCIE6MiXAtuMbmtLK7vYR10hfErlbeIXYVTntPtAK2AvOjAiBWm2coHhSthtFrfK6DFUIWW2fRjU5ZtkXrZwQjQXTMLgAAAGcDVUNYPTr0TPCSpJKA4xbwnI8g7Pl7yTMAAAASAAAAATBFAiEAnDpZPxkPhJ4hPlxhOZi73nfZ1UpdxWbiBbdouBAffbYCIFfBXoY37+0xRsZ748Gb0+DyfQGzxh4Bp2JCgncbKAUaAAAAaARVQkVYZwS2c8cN6b90yPuktL10jw4hkOEAAAASAAAAATBFAiEA0XbTeUR8x8yKF+41WEu+l49gGUNKz24DqR1fGYxYoMQCIBTVcz3VGtCCQonEomHM+RokciaawD889bwVCoBEcev5AAAAaARVQklOuezrn3F4Uq0Nk2tGFVywwPQ8vo4AAAASAAAAATBFAiEA0nv0c59tr9xP8pQqLTC56fG1ga2kN8c/2IqqdnzuFCkCIHymE2Oczrz/iSdcXl7XxhDx+Srn7BWVqI288ISYC+SkAAAAaARVU05TL3ZqgxRvfq7ixjXJ+aKR5LhvQQgAAAASAAAAATBFAiEA9g4xlrrA5V2Jz0aYGGnwCFBwSHf9srgBYz3qBuaPw7ICIBwmJWk7nNYmzDXH0vpF+rjfWOJ9DNbbHvSycMe8X91OAAAAZgNVQk7bEwJbIZ215FKfSLZf8Amia2rnMwAAABIAAAABMEQCICMIVrEWwCi4U8t+k0KpBWpPJVQRP5BGPADYc4wzxWX0AiAnEWgj8+QO4MvsN+ezVfczgPIcpdVcflpXBQg+sDRHUwAAAGcDVUJVa3TdXQH4MgCBJH9c8fekgyRwDbYAAAAIAAAAATBFAiEA0rBW2iTBwvcFPAqlTiifNGs5lphzbrNXoHmukHmrP5ECIB4N2vk8vr8MfhRvtCm0WMgCXQhHnUYZSxndGWkuhVHtAAAAZgNVQlj1te/JBlE7Q0Trq89HoEkB+Z8J8wAAAAAAAAABMEQCID/VIcs5RcEN/qa6pcsy+Pn3UUnKecuLlo1tAf8Nu+ECAiAh7imyUOHYsxVkbzdQDRHa3cRI10QyL24vtMjgm6vz9QAAAGgFVUNBU0iS5SoaI12aED2XCQEGbOkQqs79NwAAAAgAAAABMEQCIGAn7GnQ/EMBiQyoQjv2KOxdgWus2mbWYdgtzxlpbuvCAiAkx6NfOzomZw1fnTa2jxCcc4EGLJWiB3v62UWnS1VVBAAAAGYDVUNOqvNwVRiP7uSGneY0ZJN+aD1hsqEAAAASAAAAATBEAiBwLQIGSfYlgtmC7tNPERIdmCQWGAlHgHNmDPaM86WNwgIgfL1LqS9vqx1M2sh873MkFYLZNMb/v+07bMQUksun53oAAABpBVVDb2luqRiJe9ENbe5hRHDCSgYbeLAhs6kAAAASAAAAATBFAiEA5Yzpqg+7fHwyEVvFOvtChlaiDb6LitD6pHcMgT6iG+ECIDYhz2M02Gx0h0MaAlJj49AhUxj4ibzqlaDbJ7Xr+YkcAAAAZwRVQ09T2NiHtWEaWz6Qv3ZAhdmFgDHSvmcAAAASAAAAATBEAiBjP7j8uoiemLZp72R0a8vNRrwefB8pTFPxq1V8dGebMgIgP4RFaXrM5iUU4FdTJ3wo+Y/uyt8gwVjtOOSGY+K5GbgAAABmA1VDVDxL6mJwOfC359IeNLucn+lil3UYAAAAEgAAAAEwRAIgBWiyfkWdea65prEwZfs5y6HC6YoNgjou1V+DsHKvwLICIFzcekW03UiGjj8uknJi6zFCgejFVuOrNTFigDcZBb6iAAAAZgNVQ01yL5ekNSeLc4Oh48R/QXc76/MjLAAAABIAAAABMEQCIArMRhi+DpvQ5aAet+78VUF4aGiG1A8JFMxI2NR+DbF9AiAI3icgjQR2mgRNWkWSDMMmfuEfTgP/mPzQ82KIKQmNmAAAAGYDVUNY580sVtPwH5+K5UK6Wy8Azyz5lLEAAAASAAAAATBEAiACDASdj+xdxU4U1ut/fMOGdoH3XvT+ItOLg1q5AyaCXwIgFBfiwHa1SelPLpcCGxUCeJ7susNVtWmF2nd4N5S1CsMAAABmA1VQWF93jsSzGlBsHf2LBvEx6bRRph05AAAAEgAAAAEwRAIgezpkLJ92OP9wu8qXn0jNKRh8UvvrjBMbrgCKCoRrL7cCIAoK+cd8w0rul4Otu2Z66C5RLtwcVRasA6pfyNITKy7IAAAAaAR1RE9PEvZJqegh+QuxQwiablaEaUWJL/sAAAASAAAAATBFAiEAvOZvumOVNIwua2/5XzK5HJTqCPQAvdMlOLVXOrr8MhsCICeQYAi80FcCrlCh4fQpy5IWgk6twTjEjBaWWgdXSwvfAAAAZgNVRkOZXePZYbQOxs3uAAkFnUh2jMvdSAAAAAgAAAABMEQCIB2CXX7kN+4pwR39GTSw2DBV6qaCcbvXmRcv6fcxGD4oAiBc60DCdcIw7JK+9aCtSn9FumKqoNsg2ajDsDRvinTWPAAAAGcDVUdD9IXF5nkjj5ME2Ya7L8KP4zeSAOUAAAASAAAAATBFAiEAzoFat0N6Q0O6aCnH/nmsPCK7YjVmm2pqxqh/ygl/TdcCIEDzEFVR8ID3kE/NY1NcjW10b4KK/tVcl8hrhV3odvBbAAAAaQZHQVNKMjGmudfj12zyNUkpP7IsSI4OpZGkTgAAABIAAAABMEQCIFkCklFdRZphakCEOUanwTu0mZkpBUOy3E59grC4bPIKAiAFRxcHOa1JhU06QbD8QH7exA4cbITujpaB+tz4BGgj0QAAAGcESFZFMtSHiSu0xX7b56tAHZ/oAcj+ZHP1AAAAEgAAAAEwRAIgKJyI5qiNoOicwKVGLSqwowvOdC2mWxD4HB4ulG9N5BYCIBCmy+TPHvk53qtTH973FHgqj3enbJepvyjPXeqtlIBgAAAAZwNVSFCRNdkuOjTiqU5EdLdLncLVERju1QAAABIAAAABMEUCIQDVQBYUnkLLPcz5DGJgmMSLuyUD7UbLBgv9DP92VZ8aZgIgMZo3kl77LNBfBT/tqs7JrTq808QOR+iv+dVlb3tC8cYAAABmA1VMVOiEzCeVucRb7qwGB9qVOf1XHM+FAAAAEgAAAAEwRAIgA0hkNOGo3zCFmGNKlCOieBeu2qp/n2AWq79dqBvDZ/ECIAJoCzHjPDsxFU+Klrn7gVCvhsnAv9GHr+NHXXsJ/hnOAAAAaARVR0FThxb8XaAJ06II8BeLY3pQ9O9CQA8AAAASAAAAATBFAiEApdmWUx7ifhCznQ9EPTo4RNkO3hvRyxM7FX8RSqbTf+4CIEil2KRLl2/mMSl8Fqxm/M+rLyw14WmL+8oTx+o2ko5tAAAAZwNVQVQBwJh+iPd432ZAeHImvJY1ThqXZgAAABIAAAABMEUCIQCIJRXjjWlCirteGzgDPta/A8oIOozcznmQIwtz7vr0TgIgU8Pgqz9m5xtp0dxaf7uC3b1UDRF4ynFhEppZf35x/RoAAABmA1VPU9E8c0Lh72h8WtIbJ8K2XXcsq1yMAAAABAAAAAEwRAIgF2kXskWm5jpmgpn6K8bEpYilTbY3fQ8nYaKty5p3zBYCIHnZ/9C6uLliXteOZRNvcw4yAzj572Dyjq7E0X36pS5NAAAAZwNVTUEE+g0jXEq/S89Hh69M9EfeVy74KAAAABIAAAABMEUCIQCkSs1U9YUV85synn2lfweI9IT4obzoLZ1T7xDbCdYc8gIgJvNekyYmPleRLZBSnj6Dvyjo/2K5czk6Vr7LlhaZRv4AAABmA1VNQm/BPqziZZC4DMyrG6XVGJBXfYOyAAAAEgAAAAEwRAIgDYfNT5kAZ6f7V7G3zCtawmQh04LhXG616vlcIinDRFoCIBgixtwILRY6kuHDXsFk+lKZiTyJySTkawxqRlwiA5viAAAAZgNVTUMZD7NCqmoV64KQMyOueAZv+GFnRgAAAAYAAAABMEQCIBChgCDypMVb85IaIN3TFnUmZAw9nr7gKxH5pn9VYNHeAiAEEBENT4dspw6vRXqlu+lnxuQNe3uAnyiXVRUN5reHZgAAAGcEVU1CUqS75m8VGyKxZxJ8dwAWsV/5fdNcAAAAEgAAAAEwRAIgAbhWofQtKKUjsUWrTWXfOuNoJSbDp/NVp5XXLbC7P7ACIB20iT1him7Q6pE9pWybINWCbeZo5weuaA8Pw7+KIHcAAAAAZwRVTUVFwKTfNVaPEWw3DmpqYCLOuQju3awAAAAGAAAAATBEAiAjmNeyz9ZSYNHb1hWb5csB1U0sW0gZCkP6t0Sl9aHs/wIgAI+Mh9HlAK1Fd3oAQj3ukxcty0vkMIfbwT8I/CqjruIAAABnA1VNSWEQekCf/+GWUSaqRWr2eXGWlcacAAAAEgAAAAEwRQIhAO8wEuxfAObH+FZmS152XgKYsZhprg1h2Xn1/I4M4x/9AiAvXyD7vF3i9cxddv2JIcoA0usqbypTEeMoLMcCrPm+AgAAAGgEVU1LQY5a/Gn2Ino6117TRshyO8Ys6XEjAAAABAAAAAEwRQIhAJLagO8WXLIasPfY2IhM3HzUBEZfTFNbv+yTUKUSmbyoAiBqUopyHmgp24hhEua9B+tubFd4GfTCZWvsWR6vREoCOgAAAGcEdURBSUrQuB+SsWYku89G/AAwz7v40CN2AAAAEgAAAAEwRAIgC/qxykXOMGTItj6672ldXksz4KY+d/eHZxksv5kkQAECIEKlO0gRyB/OpRfoyMCxtssve3IvWmKIjm0JH7fNeUQYAAAAaAR1RVRId2B1iCIuAb+JKimrq0V5aiBH/HsAAAASAAAAATBFAiEA65eZoDZuUgeXYemDwmm0dfTG2hM/XP1pe0dalDjiUTYCIDjArLfjUhmmp4TP6M7YTHPmKXxWVqWUxeFsQTU32OH0AAAAaQV1VVNEVBeL+P0EtH0t4+8/az0RIQY3WtWEAAAABgAAAAEwRQIhAK34F7uXOX1h4r/qC5/exsBR8AWj1SCoo5b9+Mlw7bmeAiBExGrlm8o0HKpRIIWNPa3qqWh2/YUyV3NEcGGjq5hWCAAAAGkFdVVTREO8WZHM2MrOugHtxEwruYMnEsKcqwAAAAYAAAABMEUCIQDw3AuSe9R1szzYe6eO14HuMnbazeKWKUZVVtzHIIfsngIgIUC3KRMhj8ElUjhXgADg1Y//k/uXSYgbYit/LhSyPhQAAABpBXVXQlRDOvW6lMKahAd4X19tkO9daajrJDYAAAAIAAAAATBFAiEA/NKqsAswcA8gQpoaFF0AvnrHcYzDh4tXBnHW8RrQ+fICIHvB+OSQSBNSVyLyXl24pgywdj+IGKbFvXZaKwfxXPMgAAAAaQVVTkJOSwa4hOYHlM4CqvqxN5G1mi5qB0QvAAAAEgAAAAEwRQIhAOawGKOLMNWSLg2vssMYWZ0wC9/RTw/ZtwwAXe31X7sLAiATRCKm9lr1ohn3+jwGiQCjogwDZnIk6bklxPhnPAI3gAAAAGYDVUxUCWF/b9bPinEnjshuI7urKcBDU6cAAAASAAAAATBEAiBXVtoSTjKBsNeTPIRk3Boo4CWHXXrmzM8u3YZIYdHN1QIgE3MzwplWCs2QmSFscPU7f/8ovSmfpCKQwNruoIlPtAcAAABmA1VOQo2yU6GUPd3xr5vPhwasmgzpOdkiAAAAEgAAAAEwRAIgMZtbY2J9CnnIHLfq+8cFyzGdD2d7bkRtVJmJ1u3eRrcCIA+csv9e4P8Y99tyeL2I4Pqeae7xne3oPkq8x8bkO3bQAAAAZgNVQkGBfirdzqpJB2I2ZqeACxVTyiEZLQAAABIAAAABMEQCIDUcpNddz9D0Najoj1XclPODirIoqpCALZg8xwvKHe/HAiBTFbUa4Npss4CFi4m2e7dYZZWZlegHO/f4YfS57Xwu5QAAAGcEVU5DTC9OtHobH0SIxx/BDjmkqlavM91JAAAAEgAAAAEwRAIgHYOBOl/rzRW7kmX1d32V1rAyd8nVbL75XVlEPbDEPRsCIDI9dS6qdjOTeIeuZqFwBrt3G3AH74BJL4Hy4PbB3/wxAAAAaQVVTkNMRS2UQI9Fsub6nv/hBot1EWGHxOOIAAAAEgAAAAEwRQIhAK+vuMjFPf294KCKbc31SPfA3lcRBkDtC7weYraS1BFWAiAkLUbBXFZDmY4hJmm8lAf7uSDoQ1mxWxRNd+dpHWEFTAAAAGkGQ1JPT0dFFQXJWnBzSMK8x1aYviWIkTh/AIsAAAAJAAAAATBEAiBh73HPP/IdvlBCfaCuLxR/E00MC8edkjHNGgc5+JWB2QIgNhnt/t3+yd6daZk7V8NSDletRuGNz89+oJYHJz9CORcAAABpBWVSU0RMUhjkcs/P4LZKBk8FW0O0zcnv06YAAAASAAAAATBFAiEAtLfBeTmmfZfmdNZUGZBVkrr3uxDOB8JeSP5p17jIXkoCIFqV9TSx3NUlisq9mmTqEdD4eut/6zUCpMSRM+KyyOplAAAAaARVTkZJRBdhMmSQys968plyW2KSWX7oIsIAAAASAAAAATBFAiEAxPcBe56KVN6trFu9Q/dV8upwhtcGo19g+4OnlTbkJnICIDWMan+1715FGCkPvwrtVGnrcTn4WXUO3niu4x8JdVM/AAAAZwR1QXBlgigIEE4XPLSyFUnY6SHK6eT2VekAAAAJAAAAATBEAiAIxb/SP1RjWRVTSXwQ9WsO2Ef77ywkrggkH5mz6XWYvQIgNlTxAYGqNDpumfU8rmM7B/PpBQM4SUL+b06df4YqvscAAABpBVVCT01CJlukLa8tIPPzWKc2HZ9py04o8OYAAAASAAAAATBFAiEAyIUAuoRc+4A28gzYQOkVvtbapccBxq5TnKOf89Pm4PkCIFaEOHgVzcDUz6wkUvCnRZZScTSRIXtxnAhl5lGHwQXCAAAAZwRVTkRC0Dtq6WyuJrdDpiB9zufL5gpCXHAAAAASAAAAATBEAiB5oEi9hN2GiO7o5+zvQrfbHwAy+kOkaCHfsTHQRa3ToQIgKuTcoP+ADXVeDVx/PUA3MJIl8HuWPbARcNPJozGlLRwAAABmA1VCVIQA2UpcsPoNBBo3iOOVKF1hye5eAAAACAAAAAEwRAIgWf9r3jU6nJS5WJnb5qeZpLdgtz2MnYHfmn+2Gm7FE3sCIHh7ENQIXjQkKyybovffvzNA/WuIj3AALDE7Z3XlHOnsAAAAZwRVTklDlOC6svarHxn0dQ5C1zSfJ0BROtUAAAASAAAAATBEAiAfy07DeGn4ysix84bYYp+4E7rij4Ila2ObTZVqfzM+FAIgPzjxYNQEhXT9Hpe9HJnIYW3AxBG2t8oG4A3Ax+cvtCcAAABnBFVDQVC6pwYUx6r7VoqT5iqY1VaWvMhd/gAAABIAAAABMEQCIBeCNuTP5fv3LnxBYDOc9Kipg3O7b50IPf7XcNyMUssAAiApo7QQ/L9XmX8EHvKABW0yusoBfP3Usmw1xRz4JOXJrAAAAGoHdVVOSUNMWT2SM/FbuTx4pPB7XF96AYYwIXyzAAAAEgAAAAEwRAIgLwd+wKA/6BuOjHY9Vy5EySw9L/xWs0j+K2VS4FErR1UCIHyC0OXnkJohfE8soqI+yXfl1h63Mdq77jG32uz4/ilrAAAAZgNJVUM1jXrLNgrqTUlbh+Ekb7dSt2hDUQAAABIAAAABMEQCIFQJYOuMmPk7DRCmCXOPyX2rL3HnzaEUrPTiU8xGpsHlAiB6o4CoN6ruN/e4dOFVzJJRV26EJ5rRTzvxyhjwYym61AAAAGoHVW5pY29ybokgWjo7Kmnebb9/Ae0TshCLLEPnAAAAAAAAAAEwRAIgCReYJemDTutiy8ynQw2ye9+9R5C8C+kH1jGRsSSSIMcCIERsqxirrI00zl9IAzNWprOP6YEGc/5l+zt63PK/+nU2AAAAagdVTklDUkFQZMVXLnoQCvmQHBSNddcsYZp/Hp0AAAASAAAAATBEAiBQnobvdKSUjpAXXe/aXh5ROdX4kn3ve/kz8pb+yWKw0wIgPN2ah22MOGhABBdOhuFEbME7QdxSMA4qpYHvDlPFyAUAAABoBFVOQ1itskN+b2VoK4X4FPvBL+wFCKex0AAAABIAAAABMEUCIQDh+xwrT8F3OWsSlzNSOHUHybKYNHxKqjN/musL3J2Y/gIgf/oQLseVJbTyPLSz1otYtq5K602AaHlF2w6o/WqBw3UAAABpBVVOSURYlbNJe7zMxGqPRfXPVLCHizn42WwAAAASAAAAATBFAiEAhLx8y34nbEAYjpZF8FyyoMEz6Q42Y2mQnfI6QqEnnxwCIAC50CNE9ERZc6G465ICohmxULT6pmbPNpG2VyzPg0SVAAAAZwRVTkRHpZWelBLScEEZTDw7y+hV+s4oZPcAAAASAAAAATBEAiAt9L5AmQoJhJ9ftISmoDXjvRAvAwtRTzcEAfxaijzIKwIgNeN7RYsL2coTeoiuWNkSFvVlZiZSAAHNGnhfFgkRihwAAABnA1VET+o5g/xtD7vEH7b2CR9o8+CIlNwGAAAAEgAAAAEwRQIhAJTg+JEp+lfSCBvbn17DwjRFOGZtKpek36jzp61XS8z9AiAG1DG8dacjzqQfFuylqtYZMICOcTCA+iee3S5UmMRa+wAAAGkGVU5JVVNEJWhF5yHAxG1U5q+9T6O1LLcjU+oAAAASAAAAATBEAiBZEyppJes3BAppF55iY5BRCNwtaEXByEeX9ZVRD01J0QIga8MyYGIvMT93FdcUVhMoi1eGX1piYkeI0Li1iVbuxisAAABoBVVGQVJNQJhqhbTPzbBUpsv7EhAZT+5Rr4gAAAASAAAAATBEAiAsVaQtwdAa02XZ55XuoPysCvEtCbKSqwsNi3K5a9D5mQIgfWQcGYiMpBXP2EOU2Wmwol36VOu5IpH32yjiPawHthAAAABpBVVuaUZpnni4J04danag27+QQYiU3yfLzrUAAAASAAAAATBFAiEAw4SEGftj9xU1sC5AvQDJJFv+cmLEtJKWu4o8uHSoiUUCIHVoXpTZ9usF3VnnUFwZ+QivwoLkkAI5g+pLpau5CUXSAAAAaARGVU5E6bB2tHbYhlzfedHPffQg7jl6f3UAAAAJAAAAATBFAiEAomzB0tYbVUgH/aef5unLjPSGM6QPaL/4oiTYqCtGZcYCICT6ry09b3vmZzUH2t4ZXdjvEutOZPeyWCH2F5UIfvOjAAAAZwN1U0RECGA1Q55nbALUEYgPzLmDfON8VwAAABIAAAABMEUCIQCl5ZRdJvRAUp9WJC1lXsPl6SKomHdhKRmdb/ATWYHKBgIgZDT474G9BRgTncZBS11n90EsD/pg0tcbvl78h0/ealAAAABmA05JRn4pGJCwHlGB9+zJjXn/vhKtI9+eAAAAEgAAAAEwRAIgI+jeWwDmoPzrwhkEI4/IIH3urKI3DmCsLZIemeD9/LQCIHkLKkN/qy8mUAb5CK9fONF28d+N1Cn7z1hjGoiD4UusAAAAaQVpRlVORAS14TAAxumjJV3AVwkfPj7u57DwAAAAEgAAAAEwRQIhAMDgmXT3aJZrGjnDhUm8epOE5zt2EM7/dI4iSr7+dUpJAiBwoUOFQ0Plf2iHhd2DErQ6/89nYO/SAmakiRWUfMBFuAAAAGcDR0xPh/taLnEuPuV2B8MsQ6sXewojTg8AAAASAAAAATBFAiEA0BC2qtYQaKeaDuSNZoKN5hM0LfY5O5dceSFgDaiJ7v4CIFB26wAkz7/Oa0QnyNySl9F7vEdwuEmroMB6Pf8Db9OqAAAAaAVHUkFQSBZUQANs6XLF+OvvZnCGcH5IsmI+AAAAEgAAAAEwRAIgVH/n5WGdA6Ie4MQIDkofkfi6YuX+GAPbMrKIjzVIr8ACIHKJK0TvWVMc3Q70kAVV+4Z+fhmdAod/dPZz6pkPX5HSAAAAaARVTklJglEwqhvu8HvfTziXBTIYFtBbDQ8AAAASAAAAATBFAiEArN2XdADNrjVNemH+Kt1FqlyrsIJZZ9ErRyJ1fmy9UMgCIEuzODRaQddvxqQpN6/cFwKQirC3zLhIRkVdpGKgxGkUAAAAZgNVS0ckaSeRvERMXNC4Hjy8q6SwSs0fOwAAABIAAAABMEQCIFhs4hLXDU+emQ0dVlBkAUmfwQutgiZmUuKy9fPAhko6AiAWZXbx1yRlw2XAGUWvdna4z1zK01w76YoA9Zj2BQMi3gAAAGkFTEFZRVIP9v/P2pLFP2FaSnXZgvOZyYk2awAAABIAAAABMEUCIQCeCnFD7jkPgFeOWbYFuKfL4FcQAK11lPmdT7/r6jN8SAIgY65kN0R+DzjDX/Sw0MSoejeNMVUCnAb/p+EsY5KMgU8AAABqBkxBWUVSWP5W6XTByF6TUTJfstYpY6AirWJPAAAAEgAAAAEwRQIhAJtu0yqEcpZWstrRwQZMTGi1FnT781ZsRPgK7wtwap3rAiAuN0bpJbXykxiqC+cS/PltITPT4H+iLBzCiRwzjEwETgAAAGYDVUZUAgK+NjuKSCDz9N5/r1Ik/wWUOrEAAAASAAAAATBEAiA0SUyDJ2EUwY6JlskzAqzpiFzATxwgxQ/p6FJ2cX1RsQIgcKJi0HLyMt4rWFP9/O6arA4mKmGDXzw68cMPn0NedbcAAABmA1VOTASrQ9MtAXLHb1KHtmGfCqUK+JMDAAAAEgAAAAEwRAIgNyf9F+zMF6SCUq8eCTJDGopJ5EOu+5WLLvY491i/8CQCIEpYTt+8lvpLXdKTAmXEJGstkeQkE4PaqdV5ATDUoSoXAAAAaARQRUVSXdEV6zmg/F2pAi5Lu46GecoGanQAAAASAAAAATBFAiEAiCipwDUrX7iR0NXcIujJmVB3ng1MNEYcReH6S6zbKh8CIGti18jljvAk5D3EOa1Tfz0yGWmeGZix0L+QR8a06E/yAAAAZwNVTVgQvpqNrkQdJ2pQJ5NsOq3tLYK8FQAAABIAAAABMEUCIQCJdE6pr2UoaIsoq2h9JMGMKRfRQkC2XjnnWoAFzRTCIgIgHHePrJ0QkgEYQGUtoh1JxAc3caInfhgcGsIcPGy2UuQAAABnA1VOTiJve4QuDwEgt+GU0FQys/0UdzqdAAAAEgAAAAEwRQIhAJpsxO1m4TGPFA3LpICJ4OSlRX1jYNhYrkEaPdB84A5jAiBxMgCKlwA1mCPdIki7HmhW0FZWt3zzu6rfXCfPhic4AwAAAGkFUElMT1Q3yZezXGGcITI/NRi5NXkU6LmVJQAAABIAAAABMEUCIQCu9ZPz4hYCRIAx4DRowVC14JUiH9F29sISy2oUED+uKwIgHUccs+9ChdCLpdTtM/gn4rfnZ8NHxUeXuVwr3SlOkkAAAABpBVBPV0VS8vmn6T+EWzzhVO++tk+5NG/M5QkAAAASAAAAATBFAiEAod7KY20BuVMNTd5diE5qG+3qo72L/BzpKaX3heb8GAYCIBqyGOB8SACghY5nelsH9EoON30z8Ys0pDyw87Y44EAtAAAAaARVTklRN1jgCxAIdshUY27422GYiTG7gCUAAAASAAAAATBFAiEAyXax2ZVIOX4QYYrF1VYBKD7+ChJUFmm/x4Iprou0ba4CICCv3g6VEFQjhBiG0XK82RFwEYpKAHnW3WUWtWmsKtNeAAAAaARVTlFUqA8sj2HFZUYAH1/C641uTnLEXUwAAAASAAAAATBFAiEAk10ZK1/6LM3HwVniDIeoUW6MieT2ryqgDmV9Zx8aN1UCIHEktn/iiUltAVnyZpravMnNRozoBwGvhmWsFclhZXM6AAAAZwNVQ0+KPXfp1paLeAVkk20VsJgFgnwh+gAAABIAAAABMEUCIQDoiet8uMRp09FhpH6/5VEqTwQPgleYWd22AhuA5sq/ngIgG9Xw650DhWwR373P5IOykIAuteJPIoRhtve8tgxg9H0AAABpBVNPQ0tTI7YIZ1orL7GJDTq72FxXdcUWkdUAAAASAAAAATBFAiEA+g9BFuVG//aHpC9LJntbArrB3F/lsAbNLQtT5LfCvE8CID0uRKIaCFPVTkQStOcH8u2f3knZsVbyFBpj2S3Z0DnsAAAAbAhVTklTVEFLRZ7Y58lgR5D37FifmblDYdiqtk5eAAAAEgAAAAEwRQIhAIg9Qk/142BnlMStDOA36DvwGe6EjfXEsfoCtloykveNAiBpfK8BBvh7R4VRw2XlvQhSksl173aHIynYpv7iuS8K2wAAAGcDVU5JH5hAqF1a9b8dF2L5Jb2t3EIB+YQAAAASAAAAATBFAiEArl1J6ZJwXJS7Wvx+7T6vOjzFZBsxHq2+ZnoE1c/MTM0CIHSuCEmk8RNmMSAtPZmcdE/Xa0IhItFNEUq3QU5yh6BBAAAAbQlVTklEQUlFVEikeMKXWrHqiegZaBH1Gnt63jPrEQAAABIAAAABMEUCIQCaFa36/gF/LvM6X0WCsfnmUmAG5mW4wO2guwz8GHcuQwIgA9ZZ+bZ9Gzrpr87r2TOUv/6zfNDJbXJ8cEMehBVd9F4AAABtCVVORVRIVVNEVA1KEdXuqsKOw/YdEA2vTUBHHxhSAAAAEgAAAAEwRQIhAPt97/YeM8apr20qIfS+MysqJuDp2jkX9nwI51imfsi1AiAIOTMSZ6ISkALXC3r6u5rqAIdUdiEXFmbpzQftPtv9dAAAAGoGVU5JLVYytOFtAWjlLTXKzSxhhbRCgewoydwAAAASAAAAATBFAiEAjExdxNkT3fX/HobFmP63vEZPkbPDnIh9Ip3ECCZU7EoCIGPg7Pn8hkmiUAi9W5qGruynb1joR17Er37s4VDASqQpAAAAagZVTkktVjEqFTDExB2wsLK7ZGy16xpntxWGZwAAABIAAAABMEUCIQDwsT96MfjhZAOvCE1eRVpYYZODKOYJtz+gbfMZPtA1GQIgAPkHvQAABLsHZPTfp/1Ci+2y3weuYbmww46h5INE+rUAAABqBlVOSS1WMZfeyHIBP2tftEOGEJCtkxVCh4EmAAAAEgAAAAEwRQIhAIS+w0RtNAOw4HfDOvvltXTnUUBrrKDMy4skAvHpsLy+AiBONIYBLwoSMsUxraxOJdVZ33zDXtuqeFgdNqIlpePBiwAAAGoGVU5JLVYx6c94h7kxUNTy2n38bVArIWQ48kQAAAASAAAAATBFAiEAvHJbEBuYrrPv+dl8H0q800Vq3/gSZ1VlrjV9cMR+YGACIHJM+Xa+U7Ac/pD2lrnsljlyVTZgwdm/pcQNUlZ9D+QJAAAAagZVTkktVjHKp+Rlb2orWfX5nHRfkasm0SENzgAAABIAAAABMEUCIQDkHLX+dOIksW7gpvl/kkt/mJNtq1WxuQMgV/vuVp6rnQIgBzbkxjulqzDInGJGng8pGIzjCbd90ASIKR++voAa1kYAAABqBlVOSS1WMSxL0GS5mIOAdvo0GoPQB/wvpQlXAAAAEgAAAAEwRQIhAOjGHpCOcnkTuTdFK4/D86exmbuXWbRrmpwE4/q2UGXAAiAKJuRRnmqXtT69umbpH7fCYWEY5xCQ3B3JC8CHrUjMTQAAAGoGVU5JLVYx8XMhTHIPWOA+GUCFsdsotQrN7q0AAAASAAAAATBFAiEA3U12nsctshddUpdPk2vh99q8pfig99usnakYwZLjJsMCIDcXlesPukno/XgAAfuCz16TI8hGhZ0hThBkBsEdUpooAAAAbAlVTldCVENFVEi7K4A4oWQBlvvj44gW8+Z8unLZQAAAABIAAAABMEQCIEAIeHniLel+zHTw8FBxu/s6XNkohnM0MCV9Mk6INH63AiBN6ZY1RBiZ1PA1WuzgFlG6J5fbjGDe6FTPWYTKt8QJ1QAAAGgERFVDS5Lhh6A7bNGctq8pO6F/J0X9I1fVAAAAEgAAAAEwRQIhAPah9TTbphXrylVsEVgvnDEXE0Ku3kAqCNqWnvXguNvZAiABzbD4EqQd2moXboIiE3dQfofrnTQGwzc786caZJqDHQAAAGcDVVRUFvgSvn//Asr2YrhdXVil2mVy1N8AAAAIAAAAATBFAiEArIU9CKWz6f9T1GAiLnca4ztAlChmgWCNpGSciOWUrqcCIHZPWVh7rZkz+y6bpOAuLSlHkfi/cpvN1k6Z421is5oiAAAAZgNVQ1RtHcOShgSwAYC7Vwva6UuWmNM7eQAAABIAAAABMEQCIDZCUj6zRRXwyhFaPYD3Im3kHxl41m+N0cpwmxHLGLFsAiBibK1gBNisIqkkx4FXptNRbfUJDgsKIePRngD373aoTgAAAGkFVFJBREVvh9dW2vBQPQjriZNobH/AHcRPsQAAABIAAAABMEUCIQCILm8AENdK6H0Cbxs4regCqY0EI7+JsR9XMcHIqpL69gIgUZV4Imt3MGj//hXZVaAXIJW9Lfr4wTxtsZ6F0/kEk3kAAABmA1VOVI1hDiBIH0xPOsuHu6nEa+93lf3+AAAAEgAAAAEwRAIgeF+/wBY/yMHkq+lhdFmaB765xR3Vmr/gpP/qyUkY9LcCIG8XaHvXIhfmLtqP5pvdrizQ78hVRZv41G41uwlHS8gqAAAAZwRVVE5QnjMZY24hJuPAvJ4xNK7F4VCKRscAAAASAAAAATBEAiAhe144+9+wmtYYSH/IJR6Lo8ogbRjudLdyX/r+xghfDgIgV5LxeGZdB/38DH5CBRNBfTSpP596Z8bmEfFlOW8HRnoAAABnA1VCSd0a2aIc5yLBUag2Nzur5CyGjOmkAAAAEgAAAAEwRQIhAJLYhkN8WCFXIZTY1rc/LHGdoZSemIuOdQIsZhM+evhOAiArDd1ggPOtD1mKm/7hf2SXis7ig1uuj3h4wlUB0u1A8QAAAGkFVVBCVEPHRhs5gAXlC8xDyOY2N4xnIudsAQAAAAgAAAABMEUCIQCEsNDtlQRwmPZdHokk3RxpT9ZLTg8DwOqa1olzoWbT/gIgX+mn5biK62I0VLvqd8KfWPAeb2pMbn+Nnuy95RRE238AAABnBVVQQ08yr5cA/KFids1pxONf7sxm0RFoJswAAAASAAAAATBDAh8l7/h6A6oI+hfWoVWg8d8whdgS8JFI0LHc/oqVx3S0AiBwd5MLEizMNc1rS4HSZdfufH7aAGb3G1A0ahzZzKwaPAAAAGcDVThEiIiIh3oYUyt40llXfQAFcFTFDdgAAAASAAAAATBFAiEAlpM+UU1eDzpOuFHsm6VbbLMB95JNpD5rRXHRxztz2XoCIBJlNZEWjVIQk3JbKqEuJMv6uVi/BfgI3uWtnxP15WbZAAAAaAVVUEVVUmwQPYXBUQfc4Z9adfx0YifmEKq9AAAAAgAAAAEwRAIgOpRdH3bKQ4Z3e2/Trlujdg5ZH3d/pj2bLIW6KAs4LC8CIGP83pCVfYHGCeOB4h4H2t4gaPQWSRQRr1qlsZw03nQKAAAAaQVVUFhBVQVX33Z0GSlkdMP1UbsKDtTC3TOAAAAABQAAAAEwRQIhAI2LdRIU+L64705q9zy4uhzB+fR4ykrbe+D9MLPSGZDkAiBlB/uu9/JEjPx0ffXsuyQ7lsS+yNTgDZPAx1u7J5Yf7wAAAGcDVUxVA1v+YFfhXqaSwN/cqzu0GmTdKtQAAAASAAAAATBFAiEArmck6ZnRl51sK8nTlroPrjsLAXqHMX6D5Fe5L7nYy1YCICO/UYQ/G66UWUjc2vBiffGzKeOk7zV6rTUWqo3tO8VHAAAAZwNVUFRsqIzI2SiPXK2CUFO2obF5sFx2/AAAABIAAAABMEUCIQDnvU/+CQPmGmhku06OdAcgbrR1B6Q12qx3aq1pTCDmmAIgHixlMqkaGR2zmd33xlS5muswWRqah1t1LQlkZC3f2/4AAABpBVVUUklOmfK2nuJGjINKY0/1DZMK5k4+UA8AAAASAAAAATBFAiEA5MMkHkDnUSqQIer5FWNNLVI5WKvJD94XdW/yf1JVcIQCIADYOc7yWfJW90NMyE+NMVtDPcx0JKCim4uZBvQXV4LhAAAAaAVVUFVTRIY2fA5RdiLazas3ny3jicPJUkNFAAAAAgAAAAEwRAIgKuMbYAGhMFY18gkMvPxdT2gDsgeA/32mcr3+8lqtduYCIG2GzL5ZKTketr0YP5+cAFjQddGNp3zO9do4b3piit1EAAAAaARVTklT7ch8q4vRLKOQiN6vn9+2NQPxn4UAAAASAAAAATBFAiEAv4fqUWM5a5tiimf/jLlQ5dVd5oDVKr7oX2HD3f7DP9gCIDdhDnejj5ZVVjdEBDULJSIOOjfHllBQYW3qgqyWW6CgAAAAZgNVV0zb3W81Wje5Tmx9Mv71SOmKKAuN9QAAABIAAAABMEQCICmldp9mkADLnkC4G4f6UxUYAEovmu5rknC7WyOlzTI8AiBnCYKK9nU0TMkwgLnYgjNTDZsUIo46jNLWVYaTUqu7pQAAAGcEVU5JWN3WoOzDxvbBAuXqPYr3uAHRp3rIAAAAEgAAAAEwRAIgBPs5cDBxhb6DTYY5qsIEwh7Hw8IJo8/kEWCL4sEV9IACICvzPD7CdLNKLf4wHIAYovhWuH4a6tAqRsflxnFI9CNqAAAAaQV1RkZZSQIVdncMs3KXFsz7aHr9tMa/cgy2AAAAEgAAAAEwRQIhALvLBd+TbXd+XUNDLRxwVXRox3n9lTYaD8qYDW8OOAn2AiBrXIh/vP2DaFBCgg/ayTcEwIMLnhIZOMqfCsNuX/5X4gAAAGYDVUlQQpBWPC18JVte7Ify070QOJ+ZHWgAAAASAAAAATBEAiAGh6LgFgChulvFNvsxhxcfurqieXqH7VqZ6OpkxDHtTwIgb+rkqQXgjUaeDYLmtSywTX1B7dJ1jdLrHFvIjFjauIQAAABmA1VEVJDedCZaQW4Tk6RQdSF1rtmP4RUXAAAAEgAAAAEwRAIgLRHkR8Nz71yiEK9/3Nd3uohm9J3JMfIoMM6vRgOw0rMCIB751oOpAQ6hfFOMeaHWcGORJS3jThG871+aS9zxi12WAAAAaAVNQVJTSFpmbH2S5fp+3LY5Dk79bQzdac83AAAAEgAAAAEwRAIgIpqikQ15wxzFIGaVPGJOF6mo+hovfkjVyfD75fWdsdYCIGtl+b/gl7pfIQ+zD9+keX1HPYQkCLWXFMwEbeF7x9wRAAAAZwNVTk9HQCGEXEZDETRY6kQUvbf7dKAadwAAABIAAAABMEUCIQCLGsGDI+SAlTfavpy/xOqHdflJJXvl/ut0m/MRYnGj9gIgA0sM+DXV2WCpFyZHmJ4iY1g/WolLOdx3TTat84pcCckAAABnBFVOT1PRioq+2SdO2+rOSxLYaoYzKDQ12gAAABIAAAABMEQCIDiNcT8T2X8f0bfOI14A6PRG7eQYSppQlzsbjbxsNZV9AiAFQJJUtaWmLRog/zElAC1Z6enTlEDVoogNGQROgqIJDwAAAGcDVUdUnPmOuKiyjIPoYSBGz1VwHOPrAGMAAAASAAAAATBFAiEAkMU6NqB85OpPReOqBS/t7cK2v9hoNU4THqaQFV3g4UoCIDB1kgU/9/Fk3rOlVSbgWx6kAOhxeHKuxAmYFuwethwWAAAAZwNVU0bg4FxDwJewmC22ydYmxOuelcO5zgAAABIAAAABMEUCIQCZPu+imKtxrgQpDchC/GgTyz3eLnIXrVaNcenEyICL7wIgf4tFjLJIh4ewSDyLOCx3GOxjXm1eArGsPklVJvOFwZ0AAABmA1VOVvAJ9VMd5pBnQ14yxLnTYHf0xKZzAAAAEgAAAAEwRAIgAYpCt4eWUiKvDzXkBCFJv0S9ZnyS7dd6oiwj2H2Pi0MCIEji42eJGvll13QKuKMGzVPYvGCmiENba2sEpK1ZH18cAAAAaARVQlhUhWRlOHmhjFYOfA6g4ITFFsYvVlMAAAASAAAAATBFAiEAliQeAnPr3WBObsfMzZMV38uf3+Sjn4tS5ymdnE4V+K0CIHsufC2FY6E1W+hCBGqhOCKSEAw6HEi6EUWEaE4Ad/XrAAAAZgNVRlLqCXorHbAGJ7L6F0YK0mDAFgFpdwAAABIAAAABMEQCICeRMK9zD5dfYfS4P63NkerDVUH5hr6FXP4hAAWDMPXrAiBCdOP4D4hDYOLsLgxphdC45IWXkhMiyugX2+ZIam08EgAAAGcDVVBMaspt4hHuF9ONBcevWD5D+bHsTAcAAAASAAAAATBFAiEAwyOamJK7ecqO1jWXh3Qlgadts/vYQCwBZgaSJaPYnvICIDVRX/ZeZwWLCKLlqrTcCDReXVOLopXF28FA5k3iFsaNAAAAaARVU0RVQaA+Qe9VU5LJ8K1g9PYeJjB4vxAAAAASAAAAATBFAiEArFgl6IzzI1VjcZhKqU4wNXbANDcHUuuSAtphcoTcpT4CIC1RMHReR8d3azvQdLKfiWJXleu/V7DMKCDO4rsPx+hQAAAAZwRFVVJVbBOTSe6U66r/Ve1S04JnPCY7ItYAAAASAAAAATBEAiBmUUfxCV+vgi67Izt4DSF2xjQa1hrGaaJjKfCSfKHqvQIgQ3P2kquJ00UNakOmTEf1eG9Uk8k/rLPfrBI8PvRbNRoAAABoBEdCUFUn7RKcKYxd8TA2QIP0keKSDlovKQAAABIAAAABMEUCIQCqqId7f4QiSOFhuNszfYmiFnzULXBZwcdszDeEKwxwvAIgaCh1rqKiIAtZ4tYDVv4D0L7h7kcQtPnNp9dS/nlcc4QAAABmAlVQa6Rgq3XNLFY0OzUX/+umB0hlTSYAAAAIAAAAATBFAiEAmJX1YLUDDStC7gAldp84/AbHldXDqKdmE9mK0RxIF0MCIBqnA8YVSjsnJq16FvhXlQJ3blmWuJKKbKRXluSUUKnuAAAAZgMxVVAHWXJVkQpRUJykaVaLBI8ll+clBAAAABIAAAABMEQCIAetCzh7tJZ5LgnnZurdIOHx/Av4bZPylM71hjfbrYkHAiB5kXzvBZ98KRiysiVHiqQ8Lb/4UuEebpLEsxuLe5fEcAAAAGYDVVFDiAaSaraOtae5Cdyvb9vl2TJx1uIAAAASAAAAATBEAiBidXzRVBSBCPE99JOhW/3FgZ/bOPeaLsI4rFksJ+ahNQIga9z5xgFrJWZ5hpRd6Aw2xnwuu+xyQ6e0ptonJbxpJboAAABmA1VRQ9Adtz4EeFXvtBTmICCYxL5M0kI7AAAAEgAAAAEwRAIgTxqfbCcXA760gfuDLpcoot3nLNyaa+u2Jvn1q2Yr2g8CIGT0pUXF7hj4/VTP8beI29nzANIZS4m7vG9iK8tpiNXBAAAAZwRVUkFD/4vksiztxEBZHcseZB6yoN2dJaUAAAASAAAAATBEAiAfCHOzEvzF6eMwh5fcT8HQEE2NX9he2SIx5NjaKVZBcAIgMSgafkglgJNMd2nY+rDCix/JusMA4+HnJedmXyzVPqEAAABnA1VSQpMWhBOfdWwk7Acx6fdP5Q5VSN3vAAAAEgAAAAEwRQIhAICZeZO2hDx1Nm6kiIhmWrvuOFFoxP3Wk3L3VCD5vd19AiA5m/7/KAH5C5yeQvZrhKHTjS2V/vuN1ezPBE48w1UrVAAAAGgEVVJRQRc122q1uqGepV0K3O7XvNwAizE2AAAAEgAAAAEwRQIhAMJEZLPQa0jz4KMaxJJow+5aCXtncrZKaEDs4G+lxo6SAiAL2ccEoixkuz1dfqJYvc/C2lFnd+iMJRPociv14vTSIgAAAGcEVVNEKz7PgHuKEOBT1SczEvI4Tl1Z+BBXAAAAAgAAAAEwRAIgOG3gK0JRADBo1+nD3greYskBiE4vGo3AJ69EhNv2YucCICZX0NimvxaW4tDWJPhbPdGzMll+2QTP4iCZ+i/n8SiNAAAAaARVU0RDoLhpkcYhizbB0Z1KLp6wzjYG60gAAAAGAAAAATBFAiEAsuNYcm5OamdSzzRAF8Dp1FuakEEgdY1F9hsoBPmtUpkCIBUWHvKNjESBvZQywTVi3vnM5oi8/siW7yRMmiE/EGzdAAAAZwRVU0REvb5NnkPo8wWv6UYoArhpHEXK9ZYAAAASAAAAATBEAiBharV4G1uqGMUXfaYj3Yv7/b6z//cmnqDSPJ9iatOBMQIgOkMRCVQL+HiSZ9go0Ksnn8gHB5xgZMwrHujt6dq5wfMAAABnBFVTRFTawX+VjS7lI6IgYgaZRZfBPYMexwAAAAYAAAABMEQCIHjGbM6j5N7bFaJOw8eD17WCzSYNr2L9Nq/pqCEqNErtAiAWC6jBxLaoqmVlvtIGMqCRru63v9rGf8ZYmmAxrL9RHAAAAGgEVVNEQTx7RkN223yZJ5MM9Q7v3qLv86ZqAAAACAAAAAEwRQIhAMimIjkCrtP9ARmBTqDZoUnbVooqYyndmLuNuVPbV+ErAiBTDjPXouncFlkhcX5K0KZ8d25Mhx9wQ2k8z887D2tWZAAAAGcEVVNEZgVGJnHAWtw5plIfpg1elEPp6dK5AAAACQAAAAEwRAIgO2j1i0d9mgwBLEBDFM3DL5HuO5QhL/OyVLtq+HNTP0sCIGRrddEQUBpQk+cjvQKar3jhzKa4MTiilXiNdJPT76UgAAAAaAVVU0RGTCtCAKjTc9SEmTw31j7hSu4Als0SAAAAEgAAAAEwRAIgJxEP7e8FacKoPjH7oqRY0Id6RD0B2PsNs+MGSfFW9EsCIBY6YYvE6AvOBVEJFDG81chsgSfJnYiGy0VVP8IHjcNNAAAAZwRVU0RLHEj4auVykfdoY0nxJgGRC9jUcLsAAAASAAAAATBEAiAPnLi/eCPUVZbC3LHlQ/Qw7EGginTseesa5bcGbS10iAIgP/U2NZv58OK4JerOkoA3KIjb6/PvODptaqNfVvEm5nkAAABoBFVTREw+mR2+wpbgBibljDO2LlO+ydVGNgAAABIAAAABMEUCIQCTqSuPF9t8RafDLBNMR9nnNF06IVvO6c+0n3uJq4agCwIgfyS2nMoJivkSXlFUGMFht4I/qdK49F/onr2bgsA7STIAAABqB1VTRFBfVVAUVmiDRVJ74fN+nmJ9oIN9bwjJJQAAABIAAAABMEQCIGhQwY84a1Yag0Q6DF8+7k3keCUgScWXk3EikNzcT6ZOAiBnYGsss6+Dc68B0kyiEAyEsxIAV8qyFmdk0bBYn/E8jAAAAGgEVVNEUUlU22OR9P61RotrlD1JNTU1lq7JAAAAEgAAAAEwRQIhAMLvezKhMFhWUszo4FDOj4OWxbYUyzRXXf4xzubymPpSAiBUDp2y8eSmlWq7j2ReM/flaB31vncWhHjmjKNUCbEyeAAAAGsIVVNEVEJFQVIM1sgWHxY4SFoaL1vxoBJ+RZE8LwAAABIAAAABMEQCIDN6i93tarq0k9uAMJ63Ff+tjZ94sHAOLafv/1+MoIc8AiBVngaDygt58q4VYVY9tB3PDOgQlgExmaNFFNoyaorfOQAAAGsIVVNEVEJVTEyMzhmUOgHni3wnd5T7CBgW9hUbqwAAABIAAAABMEQCIBr1QR+7ZgBOC4cwiGJ7tqO7OqJH9lCoGAVo/hJMqHkrAiA3BqVOcI7tyBBrgJ4Z6cG8zFJsn7YEoBp1flMoxCak2QAAAG0JVVNEVEhFREdF87jUsmB6ORFNrLkCus1N3ecYJWAAAAASAAAAATBFAiEAgRSmeTR0zkEARt0Sq+FQeRmxuFpbcJ0Xf4vtilpwR34CIDlbf1z3EmObDsWVjsr6Uy6sw9S91aSGdyD7DvDwjroiAAAAZgNVU0XZSFSZSZ1msXXPXtVMChnxpry2GgAAABIAAAABMEQCIGl4psSKyq8DSlbDic7HezwZGRSlAwmkUmRaWdv0WmBJAiAv6Wdhd0oMeKvL+SCOboCrBKpC4BBm7sbsG0ekf/SQFwAAAGcDVVAyT1SoP1kpokU8LhjiWyFfb48oKPkAAAASAAAAATBFAiEA6iEftZccO95mGcOiyYSiQ1uE9TFx1CH4+JOi1m9VVLYCIDseFA2wweY+gjyo6da0iH9Ct2LKuYjcyjpT/S+ZpqIXAAAAZwNVU0dAADaaz6Jcj+XRf+MxLjDDMr72MwAAAAkAAAABMEUCIQD+GDQkOAif4yuI3rfVH1khXyxG4y66meldmORkFnX3BwIgXmnrGv/vW/7RmTTMSSJLMQtctXpYtxzcgEXnGosVguAAAABnBFVTSEltyhgqxeP5mYW8TuD3JtZHKrHsVQAAABIAAAABMEQCIDIPpYPin2dUPngFYxlbKO9xUCw3pklpcsDAXLDfo0GXAiBd+tCu37bFQp1e77gH56aXtbnFK61SYlQg0bXgvzLEEwAAAGwJU1RPTktTQTIx7FjTrvyaqi4ANvpl9w1Wn0nZ0e0AAAAGAAAAATBEAiBT4zzCBq9WdCqZpMVDr1es9bH8kDumJ8eQrpNlGTlQHQIgDWSEoUad4gwrNFDKedeDemLkmPuPOSkJOnqoQhQnVVwAAABmA1VUS3CnKDPWv39QjIIkzlnqHvPQ6jo4AAAAEgAAAAEwRAIgVKM3hyA4vtG2YvTZiMmmktbtoxY4A4oUesmGUyNr4awCIGIFNdL19I94OyB7Lhb6q0QBgJ8/TmujAnY9OHP1PK0+AAAAZgNVT1DkroREjbXP4drx5vsXK0acFhy4XwAAABIAAAABMEQCIFutyt6qKJkDX/KBAqz06LiIMCewv1dYXHGvfFe7DWClAiA0hvo/Nj/s1m5jpe6b06fFmUsVjTnxZp6s7DRJ5WaTiwAAAGYDVVRL3JrDwg0e0LVA35sf7cEAOd8T+ZwAAAASAAAAATBEAiBJtgkoL23k1PXU1xFfKhktRCwCYD47lH0iqf6394Ps9wIgbiLqr1vgxpYclOiHLD1ZO/9OiHJhWcsLEbDMVjErirMAAABmA1VUVaWKT1xLsEPSzB4XBhO3TnZ8lBibAAAAEgAAAAEwRAIgeQ3kw3rZy1i8zneB6AcLThiok09UaxQinqqDCVR5Q+ACIGeiGXkrDnQkWBXceTJGznY6NGWrZWRv/ijA61UyxbjvAAAAaQVVVU5JT8t9LDG4fg6I1RSMiL1639+Ww935AAAACAAAAAEwRQIhAMabTcmjkekO5g5XtfikwYbhj6fP6kvdLiSC51DtLiqYAiBf7l8cV7FeBZYDVfPqM38wBx23Fq+raMNUGzmlooN7EgAAAGYDVVpFvc1fr+QzaoRCM+uwr/hF1rIQCJkAAAASAAAAATBEAiB1V98rF4zvndLfiHyJ4CbukqighrZ8eH5Q0fqbHUdyDAIgUYVgOdJeubebWhJFHcMW/PN4elQwkOR7KTo57vwUP24AAABnA1VaWmbl1AYyGaVKgkQHiv+0niOYLZZAAAAACAAAAAEwRQIhAJXTbXT6js7D5Z/P4/uieDLHHoHiMXyWaJ8crW6VDLbmAiAvu4bjLBEqsUBSU1lbvhPoGC6vqROnR09WMcVUK+a+QgAAAGgFdlJJU0U+ahfhkTsvSc62gD5GCUBm/1+ceAAAAAkAAAABMEQCIGiLPvCEbFpRTjHZG0YmvZ6Z3NB3rscu7bDZBNeBCKOnAiA5SbxRDTQneTXz38+yhdHQqOyVLxNh52DLH0yoN5nHogAAAGgEVklEVERfUSme8zB9vXUDbdiWVl9bS/elAAAAEgAAAAEwRQIhAOyIWt7mrXM97tRhTRs9iCkKHcu1LWWTZmD7i4F7c6t9AiBfxY8kgoWscQ851OVQNpLV4U9HCjfy06vh9puB4vaM9gAAAGcDVk5Tl5Qf8ZYgJpVYUulgniAtEFi8D0gAAAAIAAAAATBFAiEA5H+zfuJvybMoqe1u27nJHv8gNMuZAbCVlqbsfSG01YYCIF9O+wfkNPEIZPGKDdMFNiLHv4BvnJH+v3fUXt8DwJwJAAAAZgNWQULnrm0MVsrK8Ae35NMS+a9oap6aBAAAABIAAAABMEQCIEONePHQHavZUzPrAmaMZsIlTjpcTR2PdtQUW0dqcFAjAiBExlOLtBEYN6nTNsFxzyw5twX+0mOA/T6o521YTouvowAAAGkFVkFERVImAieO4YgoiblG6xHcDoEAdWUJgwAAABIAAAABMEUCIQC7TWZ7rWz2dirTSf9nMu9ASr372eH+LX9jK3SPnDuvWwIgJHB1JsEKEImyo3GWC1aEAMZpt2QltmRTzYQzF+x7alEAAABnBFZBSV+fgBwfAq8DzCQFRtre+OVs1G6i6QAAABIAAAABMEQCIEQa7AfYCJLXyYDVrURC3KY9lyhG6IRPtlQCdn/nYgOCAiBwBlnv/EksHAfjpJSJWrfWm4wVKcnDTX1760gGfOBdUgAAAGcDVkFJ0Tz9MTMjmjxzqeU1pcTa3uNrOVwAAAASAAAAATBFAiEAv6HFKYrLRH4fNdOr1ElgHcGgyjU4Bmzj22aMv96X1+wCIDSSQrwRUUSrjGTfrvH+s3/rHlZh3hql9UeBFkTm9DIsAAAAZgNWTESSKsRzo8wkH9OgBJ7RRTZFLVjXPAAAABIAAAABMEQCIC3oiAH8FXFOJmQ7fiaLDPyVW8Jj5fOvzOnSaNY20jMCAiAAgijZB/YKs3wF92VJqyV0sMxXxVgTp50rLerpiPZAYQAAAGgFdkVUSDKJi60ndOuXz2uUYFZ39DtBhxQQsQAAABIAAAABMEQCIGs+3hnVlf3/PpCOuR1U/su/9SiZvBKX3h22F8CgrOCZAiA1m9JiLahsVqy7nkLK2oNXRCVBKNOi2HQjiwfAqJ44qwAAAGYDVkxNOYnzZUAFJmjDQKU6rqy0bWzw3WwAAAASAAAAATBEAiBmDa74mfbDXs2oF1tYBzQ8EU+qs8y6xzAW1kbIutlpQgIgNYzM6cwoF97PRPF6uuw6ahX1K2Q/Z6/XClBqtNA25lgAAABoBFZCSVS4NmlItKPwe8vxTrFznapComsHxAAAABIAAAABMEUCIQCFIAXbdg62euM6KJanZS2ZgxHZQuLdxhA/9hvdDiipRgIgAJvW47qdNTD2DyHZYgMs2wgsxdEdwmrHp6Vt98sdl+YAAABoBVZBTE9SKX5OXlmtcrGwov1EaSnnYRe+DgoAAAASAAAAATBEAiBMQOC9Tw2bBlkNXhmQidzEhg1fyUbic5vHOSsd8xihnAIgAqe0+8SKUQ5HCsnOzEp7ux5wEJS+NuA1Q9paiO2cKuUAAABpBVZBTFVFSegzM37Oev43XkT04+hIECkhjlwAAAASAAAAATBFAiEAtbmAgqRG0FY/RxjmulFXGWjAfKSeIzUjA54bucaoBgwCIEJLWodXYhx8mRj+D4piSmklkMDCeCaf6OO2lYpT4E+3AAAAZgNWTFAEZJlOgAtKEQThFv8kjPbqdJTKRwAAABIAAAABMEQCIHBMPuL5dPBCJdF3bmEW3XCaPYH2Dp3VxhQFYzB+LVBsAiBDDTtiSo2lX5KsVQuE5e1b1sG/16Cn+zKhZVxPlG+LkgAAAGYDVkxQApVCOzTcITxw0k66FrbwXq3ew2YAAAASAAAAATBEAiBk68aFc7aVpLRlti3gl8NvntOgE6aUHuLgKBuya86HAAIgPVcQSYvVK11pojXP4iCbuihaGvXtiMqle1e4FagrPXUAAABnA1ZMUA2pysaCcCcrJdy1sTz5tTfbY3cSAAAAEgAAAAEwRQIhALZElry69rRT7zsZ+l+irYvfCia9ePKfltW5ufo4V/8aAiBzTCbJvHNpoCpUr4zDYcLC5/60/MvFczGpj7pA9t7HIQAAAGYDVkxQDi0a2rnBdN7dCje/wGNUmRyzNvYAAAASAAAAATBEAiAPD9wNxliBzSnEyKMtO/BknFrhvEss0SjwV4arKBMYrwIgKRfnB2NYkDBi9ULgL19vx6MofVGrLNuRkcpspNXD9owAAABnA1ZMUAp1JDH9/4T/92s8duPesNuRcNTeAAAAEgAAAAEwRQIhAL7ByqmeHg572eE9eJeIs4F+BBt88/TfJy2X88IrOMXOAiApaSY97XahS6zoyfAIblGpu+AeYcL2QN+RMUkTQdFUIQAAAGcDVkxQE6yIBj+ajrrycQ4w+yoa4fMEt2YAAAASAAAAATBFAiEA7jYnf4GLR+iQ0KL4g1YO8R7x82LjyylETslx43SDc3kCIGla+KQZtPqXC2oJOs7/MSTkax8EY8iit8/R0rgwSvUDAAAAZwNWTFAXjUk8giX8TT+WzIjdVegAOsp2DwAAABIAAAABMEUCIQClLG9bmUzY6BFbud6zyCBKH2D2QooA/v3EuJoJkPvaTQIgIpr5CI3+tszWSrGr+raaoKWrkroDioGNiPcnZtFDsqAAAABnA1ZMUBm3cMj51UOcQZhk2EWCVXkffnNsAAAAEgAAAAEwRQIhAO70g54GtDHuAFGsFvxso/WICbw5nVnPAEcXRipfSJ/JAiAIX535krtKQctqRSs2eeYRUiSnQnEOEvSBsos11xm5hQAAAGYDVkxQIA0pJM9QCOYHzgQoWZ4ZcrwWiC4AAAASAAAAATBEAiA/wfm07c5DxGk3T2e2126ZU+cgaDs2SogIG5N/PcP57QIgJT16tds9JQzfrVnRQdmMdpS3LM0FcaVB47AmtWWSZVEAAABnA1ZMUETzBnWjSW30vFeSlUtAInmNpt0bAAAAEgAAAAEwRQIhAN0aO5emUVDlfgWQ8Cb6X8AejDDlBzJ5GNICngIZAGfoAiBx89fjLZNoiF4P6LshecmhMj2zlyQ9RbeOYH5LfKEkrQAAAGYDVkxQUAB6a/SkU3SqUgbBq7qIof/eG68AAAASAAAAATBEAiBYWI1NRw+RwRKEwgTenroPb/YSB7wbELjb/pL63ROn6wIgR8miyzHohlewArOSn7z4NecARQWlFXW0cVtMbxovtY8AAABnA1ZMUFbZUPEQDhFpF89IkUnLTNYyLMR2AAAAEgAAAAEwRQIhAKfrjAiX6daMq1Mpe8R3xLSpmFCRrY/hr2epD7Uc8S/eAiAc4XIw7G/Dzkaet9zTyPLPgBx3hWo+4L0060ZVr1J3WAAAAGYDVkxQWQlo39eiRpZqYGg9l9G5ev5v3GoAAAASAAAAATBEAiAdXAh4TLgf4kT3APZfIotIFsjAjtolHu74b+KGNqVvbQIgMjmU4U/zUnZ3KHIdMuXb//supDQYDHU8HE1LEv8J2tcAAABnA1ZMUGAPA8KXtF9pe+Ncj2JkKbZP4zLgAAAAEgAAAAEwRQIhALwSkdISLf2/xPlaXbhw6YYJFZa0By4oDyvWzqEBO8uOAiA8/22qJUHQfiYGWPmwi/LHReEUIHL+K72xbwN+7G2SDQAAAGcDVkxQZ70t5UMzreaOUDIZnQW2q/0lpX8AAAASAAAAATBFAiEAkgblG2zyDb38+9Zfw9+XdLBL+MJufBjUJWERMtgM5dMCIH+H+0bXxapJePnQiMhhzc34T+EEKDqBM8NnvXoWYc5JAAAAZwNWTFBAa64aKgtPvbFnX8ItLEFEytD2rgAAABIAAAABMEUCIQDHqJUpUph4y25sirKoU3XhPCATLpDB+yv+inz9iGDI2wIgLfYuBu2YiPGFA6FhEuHV2JdO5khhGh4pHB8YbpMwX0oAAABnA1ZMUELSk29vuVGwqjJPXM1JEOr0FkBaAAAAEgAAAAEwRQIhAPrO3X8VWgpCwHrbLCiK/HwXWZjW98KmHxWTzLKa6ZtFAiB/fYTrObfedPwA4KGfc2RrPvVdt81jGkOx5vmDUmMsewAAAGcDVkxQee5VfH54WteVDA9ySAgTk8Du5DoAAAASAAAAATBFAiEAmnwYEfJUTSoF2Dp6ClqtxzpYzJdsblXnnc8NTZKqSIgCIAeBva4DUxMBdMtnfnkkOh4Ne1z0uZ9BB4ii2/fH5YPsAAAAZwNWTFB7Blp3HW5b+9Z9josVZA/u0G/gdQAAABIAAAABMEUCIQDOKmxCmXiqUYv6LIJUB8QLxnOw+6/tsQfHgl9mBUftTgIgdo6fAEOeJZm0cquguREC7p81uyDWeerpplCKH6Rtis8AAABnA1ZMUICdbLsyHCmxli1vUIpP1PVk7HSIAAAAEgAAAAEwRQIhAIWhByx10DsdJxMkRAcs7l3kTQC4ckBWxa0IfKgSlhjzAiBqVNbPJEvZi9UeUT8Fju0F2hBY2NFpCVQKvxQWbV6RTgAAAGcDVkxQg5tr1sGJEdk3JdMvgKKnhbQVFM8AAAASAAAAATBFAiEA1/4FqsXcA0dyPcEtGB789zPykgled6UFCx64vKJMczACIB25s7wKnW6tuZML3qNJBK12qMggxZnYzMAHQG6DkKaAAAAAZgNWTFBndVEk2OSWXFwwP/0VZB20/zZuRwAAABIAAAABMEQCIHsCkuVzi/Ad3NBiapkEX6nMmkXhsBURxsVDxv1ksVhIAiB+mC0vdPt0ju1qglnRZYwXE0khnWDBiMdkDhZBo0QqswAAAGYDVkxQhDjWTaWHcun3/OqhUGujAPk1q70AAAASAAAAATBEAiAv1ITSRTbiV0huKgm8SJXNdid6+X5NqbU5QmHrBkrIDAIgJjeyunDYAXC8CFuKACtf2Z1AANxdc18VgKZQK7E19DUAAABmA1ZMUIs9yO+TImBuNTWt72Y4Cmfp23YDAAAAEgAAAAEwRAIga8GnfVub54mDiJi35dVTsRN3vGtamtWdhczYXE+6/bkCIBbbl+qs+/oHUw1Ih189LRfYjYV8I61nRsSnIFgwgeiSAAAAZwNWTFCPP2KoM3mEzLilEsimQI33HCP/0wAAABIAAAABMEUCIQD1adPRuJIk/mFI2YZZg3fqAuzS3pIzudki8DmeMDRV5wIgGPLyNJZ9FH3LmY4D0s4taV0f0fgG7JZ4VwO5seQMdu4AAABmA1ZMUKNHkkXaXO2arisLDDfH4yuSKHphAAAAEgAAAAEwRAIgRP56A7M7Luf/XVcZsJJDHvAaVEQ+wgCzPVHPU27FiG8CIGTwKU7xd77x61i4sw4ZQ5zbvqAMv9dUaGjHNYcoYsj8AAAAZgNWTFClN20u4k9rUJcOh9wuaf61zR/PRgAAABIAAAABMEQCICGCL+I7yYJo9sk3BJVj0pZav78gNDjbQBXMQ0p+4TbSAiBnN5HCo9y3lncWSG7HMexOAOIQczORmoVyILKV3qOfAQAAAGcDVkxQffCw29ANBiA6DSIyKC4zpdLl1bAAAAASAAAAATBFAiEAjFdsvYM8IFEUh/Cz4tlGl90IZJcCBBPpOX9QtSbT9rsCIGqxJm/y8Jk99sE6UHFFYNPSBGMOc75Gu54bCJlDCIUNAAAAZgNWTFC5vMwm/gU25kdqrMHcl0YrJhtD1wAAABIAAAABMEQCIQCClbZEZDMiNKK8JzIzBauTWW6GN1JJMjmOyM7R1N4yRgIfAOh1oLLaZREFdyt2IjIafVOpD1g2k3zzild607S6CAAAAGYDVkxQvRTGu1pc19xjuiJFF7SSmDq/ddcAAAASAAAAATBEAiALAWBGL+CKkQsJU8fIp+XLwpa+suPotZ92as/KPGoCbgIgPOZF4uYMLFU+v00h5wGFj/+gXN9VAE8KyBu5oQfbOlEAAABmA1ZMUL1j1JK7sT0IHWgM4fKVeih/2MV8AAAAEgAAAAEwRAIgWduTms4oRTtOHYMCa0gpm1HqP/x/P8SxdDHG8Ppv0PUCIF8z6nU22p1cyS7xnAtFdNrmmqIfFkP1Cs88cFeGnR4kAAAAZwNWTFDBtiluVbbKGIKpzv1yrCRqzekUFAAAABIAAAABMEUCIQDRowDe6JIOQqTTzIbz0mUkFTbCA7pkRt34f+piD9U3BgIgE6p33PcFT/JujoFNb8otfxgm7mg3HcPfkavHK5FnQO4AAABnA1ZMUMK7MR2RM//u4SJO62mWlkaFWsr3AAAAEgAAAAEwRQIhAP7lZcbVo4gJQ8gxaS+RFDjlCcICrVb/DLHsjMPhi7DGAiBrUEsolHXroQUp1QIxqkFiYNZTtO7Bt6NDiZmHoVlBCAAAAGcDVkxQw36C1Zs+GPYk2v2MmeM/EfIkUFYAAAASAAAAATBFAiEAxpC6kyYQ8Zsabpn4lvpwp5ar6FHQmhcM956K4Usw6k8CIEuGTp0K8XZNLt4NIoylIntsAaBefULK/2rie0GkXIRXAAAAZgNWTFCDrUiswsoV90+mw65JEbFxlIZL9QAAABIAAAABMEQCIHo/cs5AzW1IBEJozzoS/eSNxmNPynpnx5ERuai/Kg7LAiBLy//uQTHROIBEDqghYB0j8SWULk/ciAniufE1bs+0PAAAAGcDVkxQyWCLjc7iAGpatXsc3gsaouQDkbAAAAASAAAAATBFAiEApLuhc4Uu2ByjuO1tYpI9EceiyNiIYlqgaI9Vpx/agMECIGjbmV0FGunYMVH8DHIWAHk18mJDIz+qRtvgIq0Q5CQCAAAAZwNWTFDN0r1h0HuNQoQxdd0JekhYqPdk5wAAABIAAAABMEUCIQDBsvZ07weiiBCFejZKrtQ0zJzlYEaFJ3qCceFv9MqyRgIgb42cukY9w9zS49in7eCYtoq3eIFnxlDHDdiIhl3IFRwAAABnA1ZMUNOcYWb+CQdGUDez7ul+7SGBzE7HAAAAEgAAAAEwRQIhAPQzmhU7i3pVcaHmz0PyxrV9ULQaY7qQDuS9reYDTgUnAiAp+nhUFvRxQuSDj4fryqCpOVaOvPoaPTxZiccCjqeYyQAAAGYDVkxQkwsOAv3VcnLZCZE+28u3TmSfCjIAAAASAAAAATBEAiAkxcHhzxS3r8RkDEk88kdBe2ql8MFeHluoOdF+EaZQ+gIgSNkBKroCIRsyVGctfCousJuiWPGbAiwMsNQBsUL839YAAABnA1ZMUN2C5CJ7rsH8QKcu+YlfOPLB309CAAAAEgAAAAEwRQIhAIByfbvOU0iINFHjJX8Y/nbL90MU31pjmLtjE4rgL4JTAiA/5LH3JvNGh/qySXIiPANUEKtyYw9kU7dBaehwbEZ/GwAAAGcDVkxQ4SwMWjANqK5Lw0bz602pv/wMposAAAASAAAAATBFAiEA4k6JUqnLlUz8V1ZwxdKkVHqhUUIQbSgINJf6CUlXhlICIFQ0fGHXZIKgcFynn9k/dPjFiEEo1BPriEn3j4OgPnLLAAAAZwNWTFDi3Ytgc17B/XXd9VfSIwZAu7O1cgAAABIAAAABMEUCIQCW9Gm7P1CVR1VUC5E9eA5jW/iQeayzT9fO2iyG0DcOjQIgYktPopf5Cw9jhx4DdTcpKZVDOI9BqwJThU1bXIEAuMIAAABmA1ZMUPDDKjLCmu4d35S/VILlJHxI1HVuAAAAEgAAAAEwRAIgVk2GvQUL2QIOg+qJejOzUS6ujCx1+PXVtFB4siFumA8CIC1hOw2x5fxr/iMiJkphdsHobAhN74l8BTEtSTCuwdVIAAAAZwNWTFD76p2eTBP1a7a6fVy7gU/yyMXEpQAAABIAAAABMEUCIQCWhcN9riHO+CGtQLi7y+O/Ha2zU6BLLxRQhTfSfcA66AIgZLQpoDI3aIWzX9MQMtTxrQ5A1FVwZ1aOkfOB9ApWvsMAAABmA1ZMUMzml3pHYlIvbDpYhG/zRusFb1QHAAAAEgAAAAEwRAIgEvzB3N8mAaCKQCgdSPG5zgnSWI7iK9b/SXXUEavo6osCIH4gvSHu8YJXULhC4QDROzd5L6Ru4mDi7l55BFapzQB1AAAAZwNWTFDZjnhwCjxuflK/N3qcgc8YRI6uUgAAABIAAAABMEUCIQDmr8UZDhqPJlGk2odLQD/69bTu/41lU8nFZ1lMiMLaJQIgKSZ90oFcPyfKSG1PfTwO5oARh0Y0se1lZKlxAwe8hgsAAABnA1ZMUObv4Wvlndxh3DLVSR3xqjPEcnhEAAAAEgAAAAEwRQIhAPLMVc98eeN8qHm39kH7jx0Jtz9UZPhk6jV4OAj3HnzXAiAoST0k+3N2V3pg4G//yAmkdit+JYCoL1vd9nS2duZGqAAAAGYDVkxQ2syYKo7MfV8Q4KvublNAqY0Q8q4AAAASAAAAATBEAiAkfG4mvoxwOJJtHrMZt9Ukp+eD+nllbmkfJnkmSQKvCQIgGZu8dlfNX75jpiw3WnRq4F/G2VXGDw4Qen7Pwr7zvFgAAABmA1ZMUGHMqcGtHexU5L3LE2JNLueGDA8MAAAAEgAAAAEwRAIgAyPfC/33GzACkQ23MJszlBNKyoC1Y7LSnjVTjjD29LYCIG1rhAOx0GefPZk79JS9UdrAPAqH0b7j9GCAoQ160rhmAAAAZgNWTFBjXkqNI9mt2XXpMRE93SrDZjpzJQAAABIAAAABMEQCIAx9+IrI7OYC6yZ3Ee7Ap4KItrPrv5yUSdXpTelRQCE1AiAvjFmmat9XI0ZYBZaRE8h12R69upd+VR42wm8JWXBKxwAAAGYDVkxQrQ2fcDEDXIS7s/3U7uabpVOrJeEAAAASAAAAATBEAiALuby9e/dGk+YAHlrHkwf5E4tthbYUc0KwcyMunXSY8gIgNpEfMDues0MJCRdaKDGJJN8dnx1y+igHAT7+ElhbuksAAABnA1ZMULgJjhy4ZF2mcjjjQFWOwchiWxDbAAAAEgAAAAEwRQIhAI168hSa5+9mIdAQrCZ1n4gSCQOCV+Ckh8v4sXPzrdh9AiAsdqgO3Y9/ouR1GKtmBhtWmIoMzbgjg38m7o0ucD6wlQAAAGcDVkxQ1IgxaB3v2chIEby09ywTtLb3vWwAAAASAAAAATBFAiEAg+0THjgE15lIgKHBmreVLV6cSybzueIngtzVZyowy8UCIHB9/8vn0dO12kKnJd2etXxbKbESr6Hw8NNewHWVVuoeAAAAZwRWTlRX0PBdPU5NEkOsgm2MYXEYDFjqqbwAAAASAAAAATBEAiARUvlvQVRuiY3ztRw7YM4Lh8krd+SO0fVXIrZIrKRS2gIgX9KWUBxqtabNbRm0zVFCuEB12L9YfhS5Hz8lAz6gzG8AAABnA1ZTRDXePsysywLmJwYrXWOqlBsTcoj+AAAAEgAAAAEwRQIhAPzLvcniO54sCFCofrgvEDrK3sSd+wUyXtroDLWyU/UgAiBiwCPRQROFowqMc+Vm8uvMWXEsLdaJ4tS+M4dwf3maTAAAAGgEdlVTRDR5sKz4dUBdeFP0QUL+BkcKQPbMAAAAEgAAAAEwRQIhAJ1B9A4jkPZrJ/IGK5zmOuAcH6kjChGMSCQHghFuDaTQAiBORZ1j/0Ptenes6Dbeh7se9LJfXGoWa4WSCVplTHY7QQAAAGcDVkNUl0aVP1sTJKeBMolc/SY/QXsPquMAAAASAAAAATBFAiEAoqvRE+5ZD6oYmi55dafXzd0rTfWTHXN6Ym67TGuTsHsCIBraPI+kwiV6pjmvOQFFGcrfYMPgPsFyVG3MqDrnLvJ8AAAAaARWQU1Qssgiobkj4G29GT0s/HrRU4jqCd0AAAASAAAAATBFAiEA64vFo86/jEjtbsEeGEDSWEnlPGaRTrheO/CPQPJmZoECIGYBXaFP6Msm5w6U5N7LwITwoa0L2wDcP4rWTa8C1O4FAAAAZwNWTky/kAgJ9Mc+WjR26xg9iwaifmH45QAAAAwAAAABMEUCIQCd4BLryOzoTD/MweBxfY8PnpQNzrbnepM24dzaBR9h9gIgcW6bmZazy1wJKLxyyxU4JQS7Bf0cuKFkzgPhNPiq07MAAABoBFZOTEG5f6+GAEVIPgx/CMVqyzEzMISpiAAAABIAAAABMEUCIQDybb8Vtb3bK9AXzWoTvEmzai3FZjZ1X/w+WVk/2MKPJQIgWtsLjdgwY1Tqs/4tbUDwNK5FAcu2XvTpBCfyaiuTzccAAABoBFZBTllO3WYjU0njU+uMuOQFllmWRL/pHAAAABIAAAABMEUCIQCgJ2Gm8Jc9Cs99WnQLt//csDNR30SIsSSwlVkMnD+hKAIgfM8M7WSvUrgo3SFKpkmy4XI4gJ7afweNm83FGizIQ9kAAABnA1ZSTnI3fzHjCkBSgrUi1Yiuu+ogK08jAAAAEgAAAAEwRQIhAMkXFr+7WuhT2/jHWeDNv6w74bQEwor0AMf7WaZaV3urAiB6iOmkhRhBDDf2t2BHPvf5r1RkayzKNN9ROXMmkCD9jwAAAGYDVkdUzDlPEFRa7vJEg9I0ezKjSkTyDm8AAAASAAAAATBEAiBzT3OCIJBiV6wpdiR7LRlPz23/W7yBd5OCNpQAHl7nTwIgWEwbqfdDeFfUVHgIayNCLN5+QlY9iyZyXeYKUW8ciQ4AAABpBlZBVUxUWoYbJFasGmq1+1xyqkVgkfI93sHMAAAAEgAAAAEwRAIgHGaGBGC6K61I0L2xUjwavPZnMUVLmnKI3DLgq9IlD0MCIFSjyr2yxtkeTx2A9aW7T4x+hnJF1UzmKSmanb9Lz3XMAAAAZwNWQlQf/iRinxs990/A9uXQhvL9CSWP8gAAABIAAAABMEUCIQDZILIbogcRffa1vOuD+JWdHEY0ZS8joM044MMrDuBEawIgGvOscrHLBCTlZEnbKBepJseCC3F83UTZfB7XloaaJdAAAABoBHZEQUnKDDSj81UguUkMHVizWhmrZAFNgAAAABIAAAABMEUCIQCZzsu3TNh2rpXA2f16WS+IQ2wej199sQ/uS8TTFzcxTAIgbizqfNo3q3okLw3OtboAyBLWCySGkLLD1q4HEfJAxA0AAABmA1ZTTFxUPnrgoRBPeEBsNA6cZP2fzlFwAAAAEgAAAAEwRAIgFNi7osaTfQ88/PFBthsKHwGlJWNJEpyCFyP25f4+BMwCIAdXUXN0m45Pmei2cQoe/VEF+3AM2FlDHeP47gC5LnSWAAAAZgNWRU7YUJQu+IEfKoZmkqYjARveUqRiwQAAABIAAAABMEQCIEyHACJsiW4RqINBJg9FWULIIm9bz6ctH+5dxppa/uk4AiBsQ3ybAM0BW9Xg5yWXtcPwLPaCuk/mvajWfDwK24MuygAAAG0JeXZlQ1JWREFPxb3fmEMwg4A3WmEcGLUPuTQfUCoAAAASAAAAATBFAiEAk9dZ9CsFaQbGchzSEkdBeDe/pwyLFGfYzkTzXdhNbGoCIG7q9/8zZhyzC98MO5WExcwuRky5I24izF/KAM6sxw+ZAAAAZgNWWFZ9KaZFBGKRcqQp5kGD1mc7nay/zgAAABIAAAABMEQCIGlYHVXlq33v1QIcv4EobKa3ctJGB3H7Ezp3dtOsAo2HAiB1sIZCtL0eRp9J4Epyxu6k/MUAeG8Mfdl4t3Pgh4vQdgAAAGgEVkVHQcuE1y5h44N2fE3+stj/f0+4mrxuAAAAEgAAAAEwRQIhALMSHnd08yt/hWgN5Did2IXYvKFqeMLWiNqx7fG/0tCiAiAXIdX0sKSU1tgFv4SeW0ax2TglpLmi1gG3DEgR2c7BwAAAAGgFVkVHQU763hege6O0gKoXFMNySlLUxX1BDgAAAAgAAAABMEQCIH3R938yUB8227Dto6mnoDp67grif/8R2g731c2WEEZCAiBm4HimaiDbuHE0V+OPeSrwpJt8QsqMIjRHhdKMEiBSAAAAAGcDVkdXlCNlkRJek19awSi7PVBilEwklYwAAAAFAAAAATBFAiEA87tNLWHJUQp/CvcvE43AdyjvEtrWsTy+qI0asWZkzboCIAtljE17jyZC6w3j8mUn/PVGqTN/n7lhsBBZNfY+ZeGKAAAAZwNWTE+YrZsy3RD42EhpJ9hG1N+Lrzmr4gAAABIAAAABMEUCIQCaoZaGcCaiMykLPPKBg7SesHNx+njwMP+Db79aqUqT/gIgBkquTJw25PEHkRNlRsxEvjyrApYpGXgCFuQ4kOVQH3cAAABnBFVTRFbA6UyPn9xifMs2gqN52R+ZNjGQ2AAAAAYAAAABMEQCIAjclFoEVJBo6uFi2RvMzrhyYqto+tHkx3nSEHzdHztqAiBN1nbhJfEqiQOx1IQcP1DVwuOyt8MOQ53BYS9QTQFtiQAAAGgEVkVNUM/rCcPF8PeK1yFm1V+ebppg6W7sAAAAEgAAAAEwRQIhAL5lPwn2FhK4Kf9S3cJ7x76gyfNsu0+G2e1m3Zh7RFZ7AiBByYPwKBplKEPw5owl8KwvsYAotZwqZ9Hk+/pL/7nHhQAAAGcEVk5EVF6Zl2hNBhJpVk+U5dEbps5vqVKMAAAAEgAAAAEwRAIgci0SPI3CGKEtMHYjGbYuYn3MS/gvwNeIRXyMltEIMFcCIEqZ/QchVpcHNiyomwMzD1xYTc8fBTTMxPHUVFidy4ZCAAAAZwNWSkNcYtqAQpjVlyoyPIC1ObjnUXoN3gAAABIAAAABMEUCIQD8mMw+J06a/lQ7iE0rFbcwLaxKOjcKgGu7xt+t7CcNKQIgcew7oRLChlmByiu2z96mVUSlGgjrfT5kBE2DRNVcaesAAABoBVZFTlVT6+1P+f40QT24/IKUVWu9FSik2soAAAADAAAAATBEAiAa7oCDyP775gYXK2tHjJS2c6ejGSdrnUwJX4tuItFjiQIgZ3D30xaBtYLx4olyoBXlNgepCznMuVUjda7/LcnsfxIAAABpBXZlT0dWDEV2yhw2WGjhYlVK+OOF3D58ZtkAAAASAAAAATBFAiEA/4Jjl2zBHuOU8xO5hsSdMezhgbQDSpII1Z/2lwf2r9ECIE+k9Cgx4BuYlfoqTjgpUGVz9ZS5GnJxvQSvhWVAdPE0AAAAZwNWUkHfHWQF35LZgaL7POaPagO6xsDkHwAAABIAAAABMEUCIQCUfHNeXXdTiLTFIXB9561YNqTOLlra92KqtG5mLE0/awIgI36/fXTu/OfaRHJBx7hUxsbp7w7lDQPRfThNLxYRCHAAAABnA1ZSQfQRkDy8cKdNIpAKXeZqLdpmUHJVAAAAEgAAAAEwRQIhAKkmKvkH4Ay2XCvrsL5/U2G5TQKdYiOsz6gCjyn0MEiDAiB3RIVb84QQMAlIUql0RvoyuCZM2hitQnomL/wRSTUegQAAAGcDVlJPELxRjDL7rl447LUKYSFgVxvYHkQAAAAIAAAAATBFAiEA7zXeexalvgo4Yh7GeBbOysOopN5s/7jADhVH/coMrKcCIGrV1jSB8UTF5yv4CQomppYlQY5+S/84B0VsOfT9L3fMAAAAZwNWREdXx17MyFVxNtMmGaGR+83IhWDXEQAAAAAAAAABMEUCIQDgUS/FlAnpa3/Maq9huo9+M2hcVINKQ3ucM/SDCOb2pAIgBgSA8EOerq0zhSDbtSRGKV/1KJlqTVj/vLIl6q0ozjAAAABnA1ZTRro6eddY8Z7+WIJHOIdUuOTW7dqBAAAAEgAAAAEwRQIhAOdbKs54swL2bPrPsnqMjiq3n0r68c7njpbkjUqpvgPeAiBXXm3uLXLQpyJezdEhUK51T+osW2yXJ23u181nI/zqTAAAAGcEVkVSSY80cKc4jAXuTnrz0B2McisP9SN0AAAAEgAAAAEwRAIgcFYAHQ5+tFXFOiDHQYi75LvpCkSvZv0dOcT2FBXf6O8CIFpk8CLl2OqHsPzscqLgo+LQ06m2XSo4Im6fgPuqcfZYAAAAZgNWUlOS542uExUGeogZ79bcpDLenc3i6QAAAAYAAAABMEQCIBEOa6xCcsnWwSJVmQYBkAzN8umR7HSVZTTAo0u7Cj8YAiBrf+2LoIeN+m0gClPkBWngerASHji4U35CCM/SLQWGMQAAAGcDVlJT7brzxRADAtzdpTJpMi83MLHwQW0AAAAFAAAAATBFAiEAmMFXhczWDZ6vHRHTTyaViT8Utz6lNcp45ymT4e3A7UsCIFDywKk13ckI1IJg3HqRi0qzz5BwMSFh/eeGObgg83IaAAAAZgNWUliH3jBTEdV4jo2jjRm7QnZFsJy05QAAABIAAAABMEQCIGBIl/pmrX5kAxCgCaUOQZdAgc4sqgrbiHFvguy2NvahAiBoR2igA/VeO3aHSx8a6i0ec9/JFVkw1sGXFbqeCiIrfgAAAGgFVkVSU0UknKgmF+w9+yWJxMF6t+yXZTUKGAAAABIAAAABMEQCIHealRERXK/51QfhYbBJEoNYicWw4lW2O+wBsFPQnErOAiBxRxh+bMYZ+gwlVqB2beGy+i7m8J0NuanUNIM8pX4lFAAAAGgFVkVSU0kbh504EvKt4SFCZGVbRzkQ4Mrx5gAAABIAAAABMEQCIDrkUXJb4Ae0ulBucdofGXPaT4NnV7ESIzk335P9OO9XAiACLL7t8jgq6EZPULjIC0L34dFIbRfLUlkOxyLuLLyipAAAAGcDVlZUdVvpIJQ+qV457i3EN7JokXtYDW4AAAASAAAAATBFAiEAoNx6MFRoLVdKdQYR2Zps8AtTyi4slYhee1bJ3Q2K1jACIAPyUzwAlXVBrPyykzC5JYUEF7Cw1T04Lz/kac1uioZZAAAAZwNWU1AbQBg++03XZvEb2np8OtiYLpmEIQAAABIAAAABMEUCIQCONvK33C1pPwnyjMlDXZWRDChBiBQ6pOHTKwAhR7r+AQIgHoTe4/0O+bZ+V1i1y8k7VU13FnNMv2ms3pIA2GCO448AAABoBXZlc3RhOu+OgDvZvkfmm582SHdI0w2UC5YAAAASAAAAATBEAiBO/6vpVfssWwWVggTAIHdzTqbKp0bp4ILKNt7KRwM5EAIgXo52Ps6WXhPTPQGYPtXVbN3vq4h/pTWDR2WqK5OqomcAAABoBFZFU1Q38E0sOuB1+tVIO7kYSR9laxK9tgAAAAgAAAABMEUCIQC4VcsS1b0hiPWbGaZfIup1kKUvn5YEasq3hU5iqtx2PAIgLVJiQSbIiVSfgLI2/hXWAMP1KNSCM2KZJQ/WIECi91EAAABnA1ZFUwNFLmn/zZxFyjT/TZuiIJ04qNVqAAAAEgAAAAEwRQIhAN2CIkoN6B+FFvVzp7VSUQnz8pXVmIE7OWptwLCpF/I3AiBc7kXFdHV3gTZJhR/qZT8p9ppCo4XTxHT2Zz6qK5UaowAAAGcEdkVUSBA8wXwrFYblzZutMIaQvNC75U1eAAAAEgAAAAEwRAIgahSxl/9rZdX9aq8A2TZjyPFWp0aufOHmexc/Uff8M0ACICAtMjBF/iGCIirovjsumy1PjS57W7gwB8HVxZb9zTW9AAAAaARWRVRIS6bd17ie2Dj+0l0gjU9kQQbjQnkAAAASAAAAATBFAiEAzTtiiu+fNmZtZqBqsf5CIy5ID0MAMK2TwixoYX+pApwCIEGe+RBq0j3YZUADS/KGuCbxQ22HTVsZwQdf7S0QqPBDAAAAZwNWWlSXILRnpxA4KiMqMvVAvc7X1mKhCwAAABIAAAABMEUCIQDlPH2qnzW0IKKN2rphZ6pH/SCqNUUGsQeg1malm/IzjgIgNj9NzRoYKWkrPdr5y++JW+TpeqnVqDZyAQz+kZW37SwAAABmA1ZHT46H8YEd4AJdIzUXTbxzOKQ99tfMAAAAEgAAAAEwRAIgbkSlnJD0tDHRYHKwWmiEfcfMMm0pGkBeH8bzJZcb+T8CIHexpdVg9fmRrWi0XcCWE+JOqnVm4XfOAvIM92fzlcKeAAAAaARWR1RH5h7s/boq0Wac7hOPGRnQjO0HC4MAAAASAAAAATBFAiEAs+D01B9I681cY+SGy2vu1B5DVPOyZNjXnW3I5Pvk3XkCIFdZ4fpS8GncAlPTwYNS4DFRkBPrY6+CP7wUj7yl//cEAAAAZgJWSYtsO3wB2dtDk/mqc0dQ823xVD6aAAAAEgAAAAEwRQIhANg0sWA+u3wrNnZbOFfzMCdAH6kEvwn0kl/yei3WSWXOAiAgCibfvPlKqBw4KTCT5pgYkmD0kqFeWunPCqtzd7dMrQAAAGUCVknTIcp816IzSDuM1aEaiekzfnDfhAAAABIAAAABMEQCIFuk4VMTgzICPXuVHwa16IPJHn4Bn/JKdS7LrOu8MFUaAiAIW+rA68HwwRUPKLqqw+I1B/s5in80hWrta8j1ScSyqQAAAGcDVklCLJdLLQuhcW5kTB/FmYKond0v9yQAAAASAAAAATBFAiEAgrMJMcLHcExOutRHpdsUSdZrK4bvjmLeXukZaz0CFcMCICgoeRIcIKH7HKpOCQwZ/3CcjAq2mq5LEqz15Y3+zsRYAAAAZwRWSUJF6P9cnHXes0asrEk8RjyJUL4D37oAAAASAAAAATBEAiAu3byoUwIAaqTBuWnz0HcqEXT2n/HQJmQTiakreoUKdQIgTZZtvNirJvoEcY9kW06YwHEH1NDdhfnjd+HsrihnKhgAAABpBVZJQkVYiCRI+D2Qsr9HevLqeTJ/3qEzXZMAAAASAAAAATBFAiEAhBGXaO6TGzBhV7xZBuRYaVOdHeMOlr8SfiMiTrNym5oCIGFu1KtJqoO/LpAFYvreWFVez2Q+6Cqw32CBcszzytyTAAAAZwNWSVQjt1vHqvKOLWYow/Qks4gvjwcqPAAAABIAAAABMEUCIQDIrurlAc52rDB9X4RjATsvrizeKKJcGagD1zaa7ax5FAIgZafyxpFi2xlv1GIJ1ph1cUV9V+WtsvN5y4MFbvnUdRgAAABoBVZJQ0V439W7bOhxaCKyybJVVgGUyjUJvrwAAAAJAAAAATBEAiA1EF1M8VDe4c9GpnyVxoNtM0TcZcO2BsUbTrIfTWgleQIgJ5J+EtX9O5gNetehaHvyfdM0zfYtOJrxp2zSD0g/NlQAAABmAlZSfVEhUFFJBltWLHiaAUXtdQ5ujN0AAAASAAAAATBFAiEAjkfTmbtWVSdv9HdGfYSLcRFZLLoUtVqoQcoicK3WCzwCIGZHKoAQiuESb6wrYznoTP5YgEvA3RotsUtDSQ/mUfeeAAAAZwNWSUQS19RaS5aTsxLt43UHSki5ufK27AAAAAUAAAABMEUCIQD4AWoyffNumI6sm7MaCTETJKY6wVDnSM4ybZLJURNi8wIgVbjYXQ48y/CQ8mOqZvfYHoqcVBbuPHA7DAQqyCkDn/UAAABmA1ZJRCyQI7vFcv+NwSKMeFiigARuqMnlAAAAEgAAAAEwRAIgL0MDvsoC1Z1i38H/m3fOrFu7iSUx2xGynzBVSwe6NFUCICHZC14sNMEbT0M1XJbRhEPyvQjGGHeAOoAk6jNP+y48AAAAZwRWSURUO+e/Gl8jvYM2eH0CibcGAvGUCHUAAAASAAAAATBEAiASNIU8T5jW5dLc0CFGiAub9SlVwnj7euiunIwg+ytlyAIgAyQOV5fHJmlOPgaTtrFUvwX56rYn6tSZc4I58/cTXSIAAABoBFZJRFT+9BhVlEVwUMycI5gNMBkI/gV7sQAAABIAAAABMEUCIQC6CR3YtflHhaaCDY7qRV6ImL4szdwI/8qFsqqsuvahCAIgUqEa/mPRaUD4vXPegIC7jTJZG7VZrKpZTP5NPjQ1eXkAAABpBVZJRFlBPT01u5vsI7BsoA/kcrUOekxpLDAAAAASAAAAATBFAiEAvRlw3Ytn9IG4eIsgOiGVbpo/n6/mfX6RKsGkoECW06UCIDivsK6Yh7tKyPO5ZyrrQefAjE20UrFEdJ2yVyhm8jqmAAAAZwRWSURZx3sjDzG1F/HvNi5ZwXPCvmVAtegAAAASAAAAATBEAiA8wts6X+d5Ut+4G0ftY7bw5Bn2ZEeJ2Bz5exLZ/3Rk9gIgdrCmVVOwd1whnjBGQGR95ie3VeIhopvlLiLGb9+jbwYAAABnBFZJRVfwP41luvpZhhHDSVEkCTxW6PY48AAAABIAAAABMEQCIE5DVodZME1btovB81q6l5NAE0JR3lAZ2TrBqtyosn7kAiA2CcVhd43CheThYLrv5tyL3DcfwLVcJTSdab82oQeR8QAAAGkFVklLS1nSlGvnhvNcPMQCwpsyNker2nmQcQAAAAgAAAABMEUCIQCmWMK6xkRodAPYvMuC37b2km2iQ44jLHWWdZpIEm0OZwIgM7ZvakVX1NjiEyaNg7/ziFDTX/9ledhyUVAyIG/tKvAAAABmA1ZJTvPgFP6BJnhwYkEy7zpka46DhTqWAAAAEgAAAAEwRAIgPMhcpLZHAlZuDiQHX4SgBpmrnzR474euS7apQzZhr4wCIHZvIGm+wBiihXLynaZEzKhPH/aq46UujTjknucO6tvtAAAAaQVWSU5DST25mrCABq78yWAJcuyowgI5a0MAAAAAEgAAAAEwRQIhAOOjz/HenniwAfcpU9SBEOot2kho9dIgJt8N3wWw48QNAiB/lQlsO/gU3kFgd9twm9mOkHY3TxI9bGRh+lwU4AQN7gAAAGcDVlhDFPChKkPDbEnUtAPdbhqbgiK+RWwAAAASAAAAATBFAiEAlAugxYI/6adEG/1Qx2t2nZvwT38omU/EMtzesMzcNrACIDoouYhCrM4KONqomXEVoxIScNkcHRSfKdKWEx+rVdrfAAAAaARWSU5YAQwoIRiqdhdM5ZUlcrpxXPYKDJsAAAASAAAAATBFAiEAw8odzi93keWCQreR/gKBbUJbyY1rcZs9WvhAFR5fR7YCID8TIV7ho7OXOcCfUrjWjGTPUmHYzcGgohT8Snmg0xA0AAAAZgNWWFSLoAnK1JPHZG4x1pQoq5pU9Hs3eQAAABIAAAABMEQCIAjmm2XTxYXzjErnRQQsirFqDn+C698+Fl5ExHZi/F3bAiAS+856XnFwZZzfod1uou6tA+jf5ob1rjVYdPDd4My/7QAAAGcDVlBQXuqi3LIwVvToZUo0nlfr5edrXm4AAAASAAAAATBFAiEA/Eh0do37MpwYHhp610sHwXU6PyPpgVEJOiPHpM7l9xACIAqfKr23LMmCrN2FeBSx7WxxS4+wM9mNgCsJRY0LNIswAAAAZwNWU05FauRcDOkB4ufJnAcYAxzsCnpZ/wAAABIAAAABMEUCIQCZ5wQFEyPxwJWqgIh6VGk2IG0Ilqmfik+KZ5o1bbxbaAIgQOJWNBdCd/yG1YHNwe6rT7IHYQW/fMi6PhKlwW1RPpcAAABqBlZJU0lPTvQG96kEZ5Mme8J2kId4spVjMjmWAAAAEgAAAAEwRQIhAM3D4qkso02It3D1/arHKBGCByr51PzxNPtjvmhbHxtxAiBzsV4Vp/o33fV3pRVFYvXzNzb9bFnpszBAyEuadUFE6AAAAGgEVklTUvk4Qk9yEPMd8q7jARKRtlj4cukeAAAAEgAAAAEwRQIhAL/IeTrt5zvXk3EB09dajiatigOKBvTSSdMDMqTV6b2bAiAvtrmOt+bPjDPbzBygi99OoHZG3hJym4cOPV8PbsoRSQAAAGgEVklOVa/N1PZmyE/tHYvYJap2LjcU9lLJAAAAEgAAAAEwRQIhANyDgtufOlUlAuezFsqqghEyfZLHtSFY92zbGL8WZKCKAiAjEeqwklUQm+9EkcjdRcS4WQJ9WqNud2jvjpuT/xM4BwAAAGgEVklUQYH48LscsqBmSeUZE6FR8Ofvb6MhAAAAEgAAAAEwRQIhAJr6GzChK2UZyqFydniYPzqxl7Sn79ifcwN/If3As77TAiAaO6VVtr/IdjRvBk8yMhXFcZA1q/N+evLJF5g6TUFh7QAAAGcEVklURa3V6IGYR4PdQy+AOB+1L0W1Pz5wAAAAEgAAAAEwRAIgZP4TNLnwGmhVDM4gtbDQcpV4peCGyF9mzIwmoZMBrGkCIDveNA3eO5tGsPXp0LPXdDaQKANXb+cXiVz+McdrjMnrAAAAaARWSVRFG3k+SSN3WNvYt1KvyetLMp1doBYAAAASAAAAATBFAiEAsrF60gq5rH1Fzjk76Au6whJ+EWn9W2Z5wJRMoUL0yogCIHt70M7AeP2abcXCvDZ9D3XC/Iym+pJjiTrpYkVcSiV5AAAAZgNWSVVRlHWzFlPkbSDNCfn9zzsSvay09QAAABIAAAABMEQCIEWIzvbhua8j9OhoqAeu+ylCwD5RxCZxWxBND3nqdVbqAiAwo3MpwF0nsJyTpvcDkVrqR/jTpB69Zbdj7rDU3PQCAgAAAGcDVklYSb8CIMnOF+UtzKPSFyMXRtZ2CFsAAAASAAAAATBFAiEAx+4937/oVIrRbqPp5cHe8yfc74Y5xenqhHS9+BCP3S4CIDLbf2v3eLO/fkbJVnZF90ZfASppqP465HMwuR8mUUWwAAAAaAV2TElOSwon6RCu6XTQUADgXquKS469k9QMAAAAEgAAAAEwRAIgRi3FzRIFXoKwltbGR1wiq1xOakbePv9W00eV2qGyeJ4CIDg467EanksVTs4Va0TspUvbbNAcfy3FxJ+4zjvO3uMoAAAAZwRWTkRDHz9nfsxY9qH54s9BDfR3aoVGtd4AAAAAAAAAATBEAiBHNC4B8pSwSPe3lxsORVUYYMxQgUS3N1kGGrxMZmpS5wIgQexP5bolSbYimjdeEOpr9XwhMEfskl9SCAIHi0epYs0AAABmA1ZOVGnSd5UzpNLHgGOXE1WLLMmMRqm3AAAACAAAAAEwRAIhAMDqSSESmB/sRcajypVziFOc5T/38cFk6YMbY9EZQa3TAh8uewaHYrPOD50h7uaAtQ6UyD07Mjigrv4DtuNCKzXOAAAAaAVWTlhMVQD8JwycwT6HirU2PQA1S+v28FwVAAAAEgAAAAEwRAIgdgSZpFzQhIv1ah5yRYTAaBWCBTRPmfXXjjHCI/qfer0CIFRDrBM0JtC848yxEBlOXcHsfDz6tum+63QXb+fZzP0YAAAAZgNXRFTRELuKJLEAw3r3MQQW5oWvgHwfEAAAABIAAAABMEQCIGMFKY+63VmdAu97Mc+5kVEVlAh3owtp/ooDA6A5jxLhAiBXzROJVXac/9y+L3P4wei6e6NvIPyV2oHVFJzdRmVGBgAAAGcDVkRYkeZPOcH+FEkuj99aiw8wW9IYyKEAAAASAAAAATBFAiEA1t9jbjTdC0uqpC/gVtxJpK5lPY2ptRwxLQ/eRIEpQM0CIAhZueAdcRN+l/Px7WhGjutaFubbwnDYxePiY2nvNU9YAAAAZgNWRFLtPU5EapbcOxgbZLdcPHDaQdw8vgAAABIAAAABMEQCIFZeH1nGfuRef3nmnygmjYLwCNfK+4GBMgiXyb+F07AWAiBQSHcMTsMUOSBLrzSRDzuUkIUYfIAjG3iUoa0b7UADsgAAAGgFVk9JQ0UuI2SWYme119LObNmptb0Z2cfGqQAAABIAAAABMEQCICqNfuoYjhOCVBFus/S6ZWFoxbHqURgiqC1aHxN7eLZuAiAF8laofzdc4JuDIB620u5L4jFVtKtUp0eyekQBAnD3kwAAAGgFVk9JU0WD7qANg4+S3sTRR1aXufTTU3tW4wAAAAgAAAABMEQCIFVDYqLm/aG/cFn5Feoo1I3MlQuS7M3oZfRhqKyFv1fqAiArPa/l+SMMxOyvFGvVDWzn3qEmGgXpM1J81qDjs/a6RgAAAGcDVk9MUWbglii2liheOhUehPuXdzaoNXUAAAASAAAAATBFAiEAmyPB/25k74fhIbqnZeRUUosA0KmLkDNRbqvlePvCidICIAQzbuZOowkGVYX+rXsrNh1NyVZxVbRjOy6coFxfMRXLAAAAZwRWMExS7Kilpz9Mmqg7s7jEf2J2TchqqzgAAAAIAAAAATBEAiADtQX9y9Zpq8ooAEhZRtVhiWCUf2VREZPiYX3C9xU06QIgYC0vqkPWKK5Pt2F6YTR2xySDJwg7MXY28XUgL3ghSS0AAABnBEFDREP8ROxRyA41qHvCFAKZsWNuyD37BAAAABIAAAABMEQCIHjdMS8F+ZGdsS29ax5cubFmT73mS9y/skq1NnvEJudwAiAilNIS0uaB2HIwlz+/EGJ/o50+olWkg3rnnu0EJw0CAwAAAGcFVk9MVEl9ta8rliThs7S7adbevZrRAWpYrAAAAAkAAAABMEMCIHdxDyxPnV7ZdeyyJQGjssNVjAJxizoOS6QQzeyROL4lAh990V+sarDBB7HJB/2DinhRWjPLlcrNNga2BCm31py7AAAAagZWT0xUSV8/ev8O8gqi5kYpDfpOZ2EbIiDFlwAAAAkAAAABMEUCIQDhwG1D7pIXPSdgix4sLiacbObaN8N0CswQoSvxhAwxFgIgU2m58s/NYGad/lMUPpQCQ9ox7Doog3vfra6pIJopwikAAABoBFZPTFT/vzFfcORY5JIpZU3qTOGS0m+bJQAAABIAAAABMEUCIQDnK51rFozGrbcgiNE3GO7F9iVMkooXCvIsFNXifyUywAIgfX55lGA6kkllLZfzn9qpZyYrKykwj4KJOM74Z/ZCK3gAAABoBFZMVE2vXbLMNe+bujz6X4+u7c+bTi8obwAAAAgAAAABMEUCIQC4+RQYmiDP4Asc1rIIptH1MKHq4sEATn+djkjLJQgC7AIgDPHB8h9uMddagyRc1+AQIuQHxp9Pu3CrlF5atciEmBkAAABoBVZPTFRTFNHIPfTezunesU7oUfEJ8BAaZjEAAAASAAAAATBEAiAdf/tRp/vVa4/12S8o2wrs7JDx/fOL/K2fcV2untTRNAIgBaOSq95HJ8loGXTQtymdm+xXV3JQ0zMI/91VSQMz9jgAAABoBVZPTFRaYHFeQ2w3RE4pdywNJqmK4ejhqYkAAAASAAAAATBEAiBgPo2VWapSJwrkRf+t+oUsxhPsyRSYVADnGcUo3gSiygIgOAI2cXxtPUY3gQfnitAm5RYQruXxP+uhcGDRmD0d1JEAAABnA1ZPQ8O8nrcfdexDmmtsjot0b89bYvcDAAAAEgAAAAEwRQIhALeAnbO5csZzLUfvP2W5jz1ntZZszEuBpfWUUokTVVE+AiA0v8gtp5C5szsd/pK4/u3JHQY7I2AWyGtFgTSnEetcLwAAAGYDVlRYzrKGyWBMVC08wItBqmyWdbB4qDIAAAASAAAAATBEAiAiKLXDcjPrH45qHYKKEiEqwiIumY0sXmiZQ5HTmLqc6QIgbwFCAZHsTLOWuE5o3Ls5HhkOErCMkg6IlC8w/Uq8yj8AAABnA1ZUWNlX4IrFQh4sKFEFhrV9CV5QlINqAAAAEgAAAAEwRQIhAPRUaJ8/LKWZpv6t1NcyhZrsOP29A7yxgkXrtsU/AHGRAiA5U/r5a19Idwi8iwnlVVYRAqHvXoK7UPMuNCIxCwXB7QAAAGgEdkVUSMPQiIQtzwLBNpn5NruD37vG9yGrAAAAEgAAAAEwRQIhAICoAQzBHEbZt2xwnQz1eFq2EJC1FPxn8d+NCyS8h2/TAiBEP2Hh9CI6OMmGXG/jTIWPFTFGbk8XIcYB6IPGGd+lcQAAAGcDVk9XG78l5x7Ei4TXc4CbS6Vbb0vpRvsAAAASAAAAATBFAiEAsQ6oa9NPTq+fbIutjsFXRbZoUGkZs8Ax/NP3e0C2eB8CIAyZUv/XLMeFRN9G+T7Ip2R9KOq5vKQDhAGhvJaX6A9WAAAAZwNWT1gS0QLwbaNcwBEetYAX/SzShTfQ4QAAABIAAAABMEUCIQDCfMBnblYs0dWU0cEqg/x9XqWMJoCDfT7B2MoNIonHzgIgVgifZY9vAaFZ0ChQWYQtSl6hv3nWi8UYPpK1IXOOp2IAAABmA1ZHUhaYfAIcFMoQRc0K/rszwSSli/FsAAAAAgAAAAEwRAIgUDYWVAb34FN++tSpEszTYJ85qpM3il1UlWUf796zFRMCIG2pKAHbETfrhQJmhfznZAZE9eakMgpC1DMIPmrwbMpEAAAAZwNWR1g8S25uHqPUhjcA1/drNrfz0/E+PQAAAAgAAAABMEUCIQDZpYxAlXAerudKHf200Ig6yP564QJEMUG/M3/Vgmrb9gIgaPIItwEbAwen6ZH7Zfrcb+uhisDlni5wwbs/DxCMOG4AAABnA1ZSRfcisBkQ+TuE7anKEoufBYIaQerhAAAAEgAAAAEwRQIhALpkBCRmLh/z+6RA88J8BwWcR1jNr23uqD/3zriNNii3AiAN9r0SIcCxf/p4k0iJxtCJzlf36YAlBwK8nu437vNRZwAAAGoHdlNQQUNFWETijyrMhMNjc7rc1oF0nTjgHizEAAAAEgAAAAEwRAIgOgFNeZDCjM6zHp71nRDog/1mOZZLrMVeuGydsNU8mdACIH6/A4SKWyEzy+Zyl6gLap/PKuKgMSGO0nq5CAghof4YAAAAZwNWVETw41Q3RK/O2AQhMVgvKhm2rrgnlAAAABIAAAABMEUCIQDz0aLs/ZAs8NOll2IZ6j4bElCKCAOAajzBsOjUFZ3NzAIgLqaloerZTHw1QVsaqWcpQLkyQiO8OzANrBd65xBJQngAAABpBXZUSE9SgVwj7KgyYbbsaJtgzEpYtUvCTY0AAAASAAAAATBFAiEArv3CWBI2l18bbP83YS2tuqJrkBgN0Pw+GUQqDdgdV3wCIHQRXut79SSN4dW/uJLwGkAmnE9zoYr8RW79AzbucNBVAAAAZwNQWVJDDvkmPnba5jyEKSw0CdYcWY6WggAAABIAAAABMEUCIQCGJNYD7XU61uIbUBSURbE34RmFqlSBYwvSPrkMt5243wIgXyBdaMDdh7MOt6tLw3Gzh04+EnMFtQ3i5tCRsab71pkAAABnBFZVU0RnfdvZGGN+Xyx54WTUAkVN59qGGQAAABIAAAABMEQCIFdToyfKI8OPxzyUyzRKveoGX/Puwg52nd0OPe8X+IdPAiBPn4k67ct721dRdNRDM7+TeoZ2XeLNupR4o5iXW/nZlAAAAGkFdlVTREMMSQZsCAjujGc1U7fL2ZvMmr8RPQAAABIAAAABMEUCIQDitrKNpRe5e96A6pAbiC8dJUY71axeAaN/4LO/4mzOOAIgcMPpmGLLTFAj3k+nWnhBdewBkKQpCmRYRG5NBAK+4scAAABmA1ZWU4OecWE/mqBuVwHPbeY+MDYWsN3jAAAAEgAAAAEwRAIgTDzhqgPC4oh9Q+KiYEeReHecW82m5ACrK5f70ipy58ACID42XwytzAR1z+1TdIGdg9W6wuUI4BO7tj7zaBRjelVLAAAAaAR2VlNQukz+V0GzV/o3G1BuXbB3Sr/s+PwAAAASAAAAATBFAiEAw+N+859I8RDHAtwBpi2823e7v9LmuxWHdS2CqImCVL4CIAn9sv0/dhfBRGjOhn6kz1S/FXVN7mquCsRTbnm9YIavAAAAaQV2V0JUQ0suduu8nykj2D9fveaV2HM9saF7AAAAEgAAAAEwRQIhANWHLudPvTqAwhZjTzTE4AN5AwKs95+Ni/+cYQ7zTbAiAiA3Qeafp1vx0qkisN/8rB/DNKxovaiSkPRS5jsP3f3BrAAAAGUCVli/OLoqkLgl+6AvYEWaCX+yAhNGhwAAABIAAAABMEQCICsLsiPt1nlyrhETllSmLGXlkvbnISQBgHQNnTaF0T9VAiBNKlekw66qYpFvjAGCtOSiGzXLHbZAHJ4IMEAqbb8I4wAAAGgEVllCRTocHRwGvgPN3E0zMvfCDhs3yXzpAAAAEgAAAAEwRQIhAJU+fK14+ce7JczvU2g+dm0Va9MWitGftxm9KUbFo5ccAiB9YYWDvEVWFcXpp3vSGjCd8OEqH1T4GYBAo5guHQhY1QAAAGcEVllOQ+4a44vkzgB0xKSo3IIcx4R3jzeMAAAABAAAAAEwRAIgJNawd5uRvgj3dzRleC7g8foWAUnyJQ1n9J92TJxeINMCIGB9ugckxTBD5xkjB20N/00sX99s5yJfr3pWqb+c/F4jAAAAZgNXM0J3e6TSOT6neJMyJ0PH2Bfv74ciBAAAABIAAAABMEQCIBabsu+vyg2UyjBda/zwRyflviBxOrFw/+CUbiGTyhvgAiAtCfF9GFSokcbxKwHBuji60dyBs/svc6D9KdFX00xphQAAAGcDV0dQ3ZSELBWr/kybr+QiKt4CiWvrBkwAAAASAAAAATBFAiEA5vQahIC+JlmkwGxOg2VXsSRiC5MEFFe6jqNkU6GGzzACIDjugTO146Eer9yk3qmI7zCSWGz64fNyjrUdPnIQX72aAAAAZwRXYUJpKGvaFBOi34FzHUkwzi+GKjWmCf4AAAASAAAAATBEAiBl/377T3/5CfWZMbCFK1/G3C/u7Ytb42kWuyzqRZAmaAIgY4wNwl4nbaUJtXSeJXYjIow5gFZUGg1ZrTp12NA0COAAAABmA1dBQku7xXrycBOO8v8sUNv61oTp4OYEAAAAEgAAAAEwRAIgcBgasLZICQ76yvLlYb2tdux46nbzdZnuS4Z8ZFarui8CIFbPjbfKpJUx76Wpq4uUr/bxp2zJA9Sic7pMexE+mezRAAAAZwRXVEtf351GdKQwvcwJajpAMSg1erNoRLoAAAACAAAAATBEAiBvCLxbVgoVkdIyU+XfTD53ZoX1CECfexeKRCnWu4FIowIgLBYUWFwUajZA1J8s0dz/Cv3/EC0oxwNN/Ow4PeOTO8kAAABmA1dUS0z/SdChntb/hFqRIvqRKrz7H2imAAAAEgAAAAEwRAIgP5+swXzF7vC0p71uNhyRenqpdssqNh1lFeWW9Op5E6gCIFHfay8LA+IxE4euqbNjd8IyuDw7/6reM4SfQHUBqx3GAAAAaARXR01J9j+ZoR4Bt+O4VoMWlHMk8k6D/dwAAAASAAAAATBFAiEAmNXQN8U7+V9y5hhSQ/QUHBAvIafDC+fwKCxDbh1ox90CIEi1KjQEds1WGWj9fdz/bQRMN7N6YPg0pvOdaiu5XZTNAAAAaQZXQUdNSUc7YEdHrRcgwB3tBFVyi2LA0vEA8AAAABIAAAABMEQCIE8BQahx1utDPA0gltOQ0eVpEGIRdljj7HQNnbMyiQNGAiBmdL8P3ljoIG0dUWT6npCriUFcM8LjLik1NitP/nQEnAAAAGcEV0FJRrInm2dpz7ppFBbwBgmxYkTAz0sgAAAAEgAAAAEwRAIgZWyteVzWCEXrAQ7qBwtK4BWFNZrl56NOhXhmA0R19j0CIGM0250FAfsFduOYAZ/F49N1nCcsmXikzbczK2f/JpbLAAAAaQZ1V0FJRlU6x6cblxg+PbdyLHXqqN8sGgut/AAAABIAAAABMEQCIHP1OD+3EReRk3EHnyecUWL1W7O7ryk2gGlNPWRuyINDAiBDqR0i9sZRRFpiIq1TAnwC3mah/v9ySY7dyb2kXf/TEQAAAGgFV0FJRlXn9MiQMqJIjTJzI1SKsEWWdiaTMQAAABIAAAABMEQCIBZJIfC5ITTaCZGcoPWgmp6aKLj5LxyB60/yRdYraiIMAiBhTgW8XKlM10LxjZ0aSVp6cFJrwg80fikgwP7o/4do1QAAAGYDV0FLn2UT7SsN6JIY6X20pRFboEvkSfEAAAASAAAAATBEAiBiE6C9s/X8zneAEZXwHfGeH3L3mxynIBfy2hJf3ej5OAIgKcl4JaSqcWikZpA5JkdeKBR9gAGFMET/gOVweIUPEmwAAABnA1dUTg6phOeJMCt7YSFH5OQUTmTyFCXrAAAACAAAAAEwRQIhAI/QESw7LNjvWbSc+wPuYejhEBGrwIV+OezBr05MClFnAiADtIR2PVymF7auZmsyYeayIM7xYsbnRr2VJNSjguBFrAAAAGgFV0xLUlLJAgarIb2/XpKv9Oa18Je2Ww7MBgAAABIAAAABMEQCIBCK3wSrIj+Z/Bwk66XYmPkaQw6mre+Op4Jq03LQW/2eAiBzoVHQo5F0X8Xm/DtXWoEHjYjifpF446RiDpWqyjlQLQAAAGcDV1NCYvjb3qN6TtQP89JjEAHkSQwTIY8AAAASAAAAATBFAiEA6o7AhThJxS2TBmcI9PqZftG6eGU9d1UqQyXSIydwRlsCIGnJTGaEvVgWyD0StqUnYXhuvyYigA/d4sCR+c390J+6AAAAZgNXUFizus5DMohkURT+joqpH4dlnL9mWwAAABIAAAABMEQCIGO2ELqBCZLwmA7o5gPTfZvbKGu7sgoP0ElCQx3Rc7+TAiAsZPiHf8dfzKIZM8iVh+CSJUcPbhJSxvrS2b97WaRQMAAAAGYDV1RGBQHnoCwoW5tSD9vxutx0rpMa110AAAASAAAAATBEAiArmbuRPl2awC2ZUsQowao5A9/8S+GljxagC2vdVdngEwIgEAya94vNK/DPcKo40q3mlIOeylerk+tKN8RatBpYw7wAAABmA1dUQ7fLHJbbayKw09lTbgEI0GK9SI90AAAAEgAAAAEwRAIgUPCznp/sd1EM9pKqfvVEdRtVhV1otlsLJQrmbmTUEfQCIFEAJiod0e+wsUEZwwpoInuWBWVlJenqM3uC+JKD7XEjAAAAaARXQU5EJ/YQvzbsoJOQkzQ6wosVNKch27QAAAASAAAAATBFAiEA9ckt/w4PyMdqInDosgRaMk8hlyPAy5OWXLTbvIk2FzgCIF9fxl0azplXKZwskM+QIFwYFSGxqcLmnFMvVOolNnhzAAAAZwRXQVJQ7UCDShMSlQmom+Oam+nA6WoN3XEAAAASAAAAATBEAiADsOzUsi9qycZqIcHCw3ZXxtMTd1AM7lFRrcwEcCOZqgIgFGkgMsvPuJ393s3Uj12UwPfTyGRh8FmeeERQhbPPshwAAABqBldBU0FCSYluFFVoYkpJjFqQkYc2OulHYxUDAAAAEgAAAAEwRQIhAOl0NlkosJxKJjhhVjccLgZbumISHyZuH6uCABk5bAx0AiBRxsnB4CmUkjQIoy1LAc0RDgKWF5h7g6WyzigO3Ws+7QAAAGcDV0FTDFclRKTuR5BNVKqmqXCvlrbwDhsAAAASAAAAATBFAiEA6pTHcaRbA8sEuJ5y5+1qBp48BCxJgJsdHqcPcqdPDHsCIGa/mrGQR8sPD0aeeWcvfRcgN672d8HkxQSKPXXliMlHAAAAZgNXRFDWG2DMva8JwuA2xyc0rbMnDtJxkgAAABIAAAABMEQCIGRJFEOgwPwJlJv2hZCTitP1n8TCnHRprvFjwLqVD9gQAiBSU07bs7ao3Q0V7SlYeeF8BkAaptmv0sCdmO9kE2w8TgAAAGYDV0FFL3uIRY9ObZq7GTlrWgi4un89SyAAAAAGAAAAATBEAiBhAj96CqxE2kMeeQ/RizbNk3MdvQQ7a+N/yqdYqKVisgIgeD3EklVBCmd0vNnA8XzfKbGv5TFHo8TJB8sQdktol7YAAABoBVdBVkVTHPRZLr/9cwx9ySwb3/38O5788poAAAASAAAAATBEAiAA5JyegJOGdM0lo0YEUyvViNygAQuvDDnlTlREhOpk1gIgf+8rkuSVzU7qCf59LvTkvEQj/GYzQaKTpy6UJdQbHk4AAABmA1dBWDm7JZ9m4cWdWr74g3WXm00g2YAiAAAACAAAAAEwRAIgTrG53J0EcB40IovnRq1z8upO2euf70KHGXuIbnI7uSUCIAVTIucwUUKQMWz0TPXRuImu4GepAs2jazByiMiqN7AzAAAAaARXQVhFeivHEeGbpq/2zoJGxUboxLSUTf0AAAAIAAAAATBFAiEAm+S3wInJvS2OK12RIqOusBHpMcu4lNMNlRqlwT0nN34CICOF4FsinY99vb0JOnr2Ud0jyFYI06I8Z0m0+QtNg4iOAAAAaARXQVhQKnkyTBnvK4nqmLI7xmm358n4pRcAAAAIAAAAATBFAiEAtWJQEMkdBNsaQ+Iqzu+FPKJpTGoCL5Nh4o6ZWWAhd6QCIDXnfvv6MnSZHdJrO0DgCics2BtNIGN3uyqO89N6jx2OAAAAZwNXQlSSUga4pwcJbtJq5HyEdH/gu3NPWQAAAAgAAAABMEUCIQC7ViSWN/3HLSpKCoYW8CepRQH/2fuYJSCkfFTCpRdrHAIgXXAB4bFSE89wb/S81HMlju8KbSqxKDBhg1vPjYCfUbAAAABnA1dJTomTOLhNJaxQWjMq3OdALWl9lHSUAAAACAAAAAEwRQIhAJxd9thpuJdXOs9k2oKwLb8kxRYva8Sedez1meCTAlFEAiBEl2odvXhLRMoxasYGE8Cm4QDFfLjd79EeCo/j621U2gAAAGcDV1RQFoDP2tddortW3tTza7lCPIb/p7cAAAASAAAAATBFAiEA5zk6Il8GklCX0q8GzYnmMx0yI3EyH7wp9KmvLSFhlecCIDEtqkglaZ+PFVUkNMZvz5RUai89JQWqvQz4uMs5SduGAAAAZgNXRUKED+dav63A8tVAN4KVcbJ4LpGc5AAAABIAAAABMEQCIHNIxCwMm3idfNxBfwQJuf4CyfzdCpbM3hoqLjoNp8IcAiANfEFMikZEaOsHLTFL2G5R9j5XPjh091ZIqqiiO+GG8gAAAGcDV0JBdJUbZ33jLVlu6FGiMzNpJuaizQkAAAAHAAAAATBFAiEAynlges3MlNJeJTDkYe6on84DtBQnwPuu0xTBjgIh0RMCIEtKq1f/paOSoHdUlf6v+T1xixzYel2Aa+MenkXY9H/yAAAAZgNXRli6HtIsaa0Ac57itKvXDicL6eh+4gAAABIAAAABMEQCIB4FuLJ2urr/S7cvUtbr4a6KDYWQMeGcIusSySBVZPKPAiA8rhiJIqlteIBP1jSUjPvL2/+f2FEj4E62LYoGiZMHmgAAAGgEV0VCThWmZEFuQnZqbMChIh2cCIVIpucxAAAACAAAAAEwRQIhAPPTZTOAjOJUJWlH04sDK1GzZxS89QqGzxxoQsmfM2qaAiArz2XFovbkohNPcTakZ25DThkUGvZMmJZcBYSFS3yoYAAAAGYDV0NYwBQYbPG6NgMqrsf5YIjwnrOTQ0cAAAASAAAAATBEAiBs0B4kKt/PQzhZch52VhCzFhwZkDFeP/iyJKDst1YNOQIgTMgYYLTv6PUckkMnVj/Aps4GxsJyxEmQHFvBlrdt8wAAAABnA1dNQWhe05CxasnfmrlwcpSkKhB8+2KvAAAAEgAAAAEwRQIhAM75AGeFe+/NnFVYEYfTBM5jtapYvELrPbHOiEhDMJh4AiB7RmW5HGGLCiEcZa9b1sbotcFupx3ny9KYZ297EXnvHgAAAGYDV1RMmgWH6ufvZLKzihBEKkTPpD7dfSoAAAASAAAAATBEAiBBV7iCBtl9j3F0KUrJABdYDhCFKxiuYcVzp5PFiBJmFQIgcxh+m4MG003rc7QrMe2s7RJk7nCEyB47qvpOaLqjJSsAAABnA1dNS7++UzLxctd4EbxsJyhE8+VKeyO7AAAAEgAAAAEwRQIhANrpI+1lK0xUcqghcCKg3XU4MeQTK3VZ5U0MTtOdsqigAiAZ3pxepeHUqzwforSXIhBEoF1XKxbB/mW7uds8kx0DrgAAAGcEV0VOQkb05CDHVAFJSjm3BlP0u7iK0tcoAAAABgAAAAEwRAIgJnJZvn/SEN81rAqlPmperadh9KAWRD3kL4hlogGM844CICvaX7vdxH1KfpF6MPCz9EQln0viJwP3fNrtNfFDxDTbAAAAZwNXQ1RqCpfkfRWq0dEyoax5pIDj8geQYwAAABIAAAABMEUCIQDE4AUkYB2uZMXO1WLcRTGC9s6ledckTmEQ4CTEz4ZwswIgRiGI4pIL+5b7ngStmehUlNQNpPBAczObfRelV6XzFkkAAABmA1dQUkz0iDh/A1/wjDcVFVYsunEvkBXUAAAAEgAAAAEwRAIgOrMvmpkiBy+7GTgTB0KKsNeiCxvyuV4oSTNTBmYGZdwCIDORtkFKev4lyix4TDzdMfBLI1CL9f06Y7RyXyPh2Hs4AAAAZgNXV0M4EYvbO0gPVwg3pMLoj6xug75miQAAABIAAAABMEQCIC8gZNeev3SghvM/sYaprxo3e9LYJbwOTB+5fI8C+YzqAiBPtS5lukLh3M3JD/FyqLPMUevRC/Y+JdX7Nh1trnsYMQAAAGYDV1NDLc2bGn7UCP9IvUkYofnAU13FTq0AAAAGAAAAATBEAiAVEV0RaJoPsErbqliAhQz6gmktca1GuB8oagRrXZfITQIgR6Uv8/rTpSOb8UP9vNxaSoscplEYehws91+t3hyQdKIAAABoBFdFVEjAKqo5siP+jQoOXE8n6tkIPHVswgAAABIAAAABMEUCIQC0fuhVHBWiz2gcZJZR6YfX5SfEgdJ8ONoflxqCQnkr0wIgacP2iKxUk6I9q1eY48mwdIR2UGnh1L4UMhquTZLLjL4AAABnA1dPTh7d7j+iFZGpY3+I2rlhXDPuY2udAAAAEgAAAAEwRQIhAO9p/BLVBlBhahQGzLOhSsMLqU/Ftu2wz3vZC4cRgA0rAiBZAAgoutSacP2uDIsbVXkV3PqdJj1eFeaQ/XsRshb53gAAAGcDV0dNIZgD0X8wZ+tT1SG6iUjSc09AL30AAAAEAAAAATBFAiEA6Zth0iUIP8MdNU6n6AzZD/WBHlh2ElYGE9VHjUy77TsCIAUVHauJJNOb2sB0weSWL9spRhZ8mmo1UHqmTnWiVShrAAAAagZXSEFDS0TPgzVye3dtGQ+dFaVOa5uTSEOe7gAAABIAAAABMEUCIQC9Jy7+aqv8NqrOMMObtI2M4BEgzWd9S1MoHkROJqW2qQIgYYoQiPWMI1QhwttVj9L8gptOizhcHqPCX1MzL9efcN0AAABpBVdIQUxFk1U3I5bj9trxM1m3tgejN0zGOOAAAAAEAAAAATBFAiEAnkiVW7yeUz7dFGbAPfoiQTkMuZE+x4W1OLFYN6abqMQCIE2LF7Q9MfrxfNN3LS3r1WyVMB2afKgN2PAvi76geLhmAAAAaQVXSEFMRYBOJsTv8LsZa4Bb37WymrgozwsfAAAAEgAAAAEwRQIhAJHvW9UVJaMn8NwVp8W0z+xIGifkUC5tOh6fMJHwGGFbAiAJ1e4YZ0prs5xyYa00oAbVkENaknat77Hjwc6144Q2lQAAAGYDV0hMKvcoUMUE3dPBh2xmqRTK7n/4pGoAAAASAAAAATBEAiBhSKqOx8U8Q7EiU+r/xnqidZb6UCLU28fnTp3a0rmMEgIgJOo8ArHfGK+zG3PV/AumCzQtpR5LeR3ouZ8oGANYLXoAAABmA1dCVOLuGsV7LlVkUist4GSkez+YsOnJAAAAEgAAAAEwRAIgFXIT+/2MdHh9mfMhUgvWc2zo6gkJYE2lCd75CBXeuPECIENAktGADIW9GACfJzVfCizkvH+y3La2hPSVac1H0u9sAAAAagYkSFJJTVCQd/nh7+DqcoZ6yJBGsqYmTLyu9QAAABIAAAABMEUCIQCmYDQBNHzNQsweV1Yty1zPT07gCy4EM8VJMYf/pDPLWQIgbZ2cXqRYKporjSc6Ji7lXSL9S/3vD4yk5pxNJ9QlqooAAABoBFdIRU70/pVgOIHQ4HlU/XYF4OmpFuQsRAAAABIAAAABMEUCIQDQYi6D+8RfF8Thv5V3cPChc7kp9vJ7udVlIdCmPKHE8AIgWgwZqjEG2pxqEuApJZ5j09Jo1uAPSl6km/DwiEqu+nIAAABnBFdIRVnKXSmz501Z683wkRFJXYbzGYhqQAAAABIAAAABMEQCICq3PSwMu2qHQwA/176GKF/pWGFZ9YbTeiG5ZpnMpXZtAiAofmknEHWp7viK7AQ8o6UnRPBEzB0jBij7cBbFjDMC7AAAAGgFV0hJVEVfDmKLaTAY9jnRDkpPWb1NiytrRAAAABIAAAABMEQCIG0ID9qfl8fv0agUx0CiMbYBjSkcYQgqGVn9GZEnJIb5AiAwJ3oOzBRmNi3FTIsBoVRa8bqzXKfZ23DqrGUSxsod1QAAAGcDV1JDfJ2Ps73j2epuiRcGGMLcPRZpXTYAAAASAAAAATBFAiEAq3J88cfSyO/XoXspLNXFqStwnaKzZP8ysJ5XnHWIrIwCIHUTBnmtaqVFSg2de+AAH67/vZnSzvf0ryChS+fXBSQuAAAAZwNXSE/pM8DNl4RBTV8njBFJBPWoSzlpGQAAABIAAAABMEUCIQDmA5G8vfiFlOMQSOGyYlnIevC/Fbn+tHH3hkbtAgR5xgIgX214oZN2q08z9FHAwL3He0Ui+eQnVkr6yP9JcXwXr5kAAABnBE5PREUMPvMvgCln23W51J/h52YgFRzLgQAAAAUAAAABMEQCICJwzo6F0oj5SOx5zma2Cp6+mEIo9eOQotW7ORb9CMfcAiBEFXtgYR6C2TitK5/IHRXfLj2xr9yHk0s0SxeBkgSNuAAAAGYDV0VDzBqL1Di+vEsqiFo0R1u5dPISQxcAAAASAAAAATBEAiA8TmowofMrfOT+sIJvikX1BvcEAjvhgdmuupeVo6+cIQIgOz7/0j6MHqdzjsuJ927M8h1sUklPl0YZnoMpj2+lMNkAAABnA1dpQ15KvmQZZQyoOc5bt9tCK4gaYGS7AAAAEgAAAAEwRQIhAOLtNoV1CsGgt92YzvhkLyOzg5u2VgRMhN3yxpckrCOeAiASaA3Y08L3hNPjmxb2W38q+G0BrTkvNmJtIiXZzpGUsQAAAGcDV0lCPxfdR2+vCkhVVy8LbtURXZu6Iq0AAAAJAAAAATBFAiEAwx8PLBhuPChp+N+wQi70WoD/2+WAERdiprEJRWoTlh0CIH33VA3dFSHG6pNC4WA2eBzRC+aSa1VB0/QI9fu2xS3EAAAAZgNXQli7l+OB8dHpT/oqWET2h15hRpgQCQAAABIAAAABMEQCICruyQ/jvfCD7oDRooUpL0dSyIHu39yUbI7DSbwHQFdjAiAvT3/bl4TKadGUnz0pNDDrsyvjDEbjA0q35NoGKxASZgAAAGcEV0lDS7vkYNxKxz98E6Ki/uz5rPbVCD+bAAAAEgAAAAEwRAIgVCXN4lae5rrMMPl08aTPQspEacQ1g6tnIBEzB59uF9kCIFlJDU6AAI3q++YTeTTxu0Z/LFcNnMkpx0MGiGFBl6cWAAAAZgNXSUNizQfUFOxQtox+yqhjoj00Ty0GLwAAAAAAAAABMEQCIDkkmej3/VwGq1tVgk+B4EkoIe2EdApjgD+xU93onZ3qAiBGcB2xIgkmOpdSdfYUUN5C4mJ/TZmaYfCF3crO2NdjegAAAGcEV0lGSeIChzB5kThY+bqHlbqVekrVYcokAAAAEgAAAAEwRAIgQU2prUtlZ3taxNDZNANDNTa1itAG5b7fLWaLUUgWB+QCIAlfYq8jS5vwKO/aE004ge0U5CzUkSNLU0uOvUEZR1u6AAAAZgNXWEOGIlSBdHx3SyTHw7rEwbc4L3h8fwAAABIAAAABMEQCIBEb0taSj58lCsftfGOpl2Le7q4FArI3UKqdaKWTEVHPAiAjDaqIYEvs6P7i3h3Wp4tQrDw2qI54ScLhIyDyFMM0iAAAAGcEV0lLSWa61UVZb7F6C069wAOoXe8Q6PauAAAAEgAAAAEwRAIgRoGovc+d4lJULWPncsK3TBluybFIkx4TmFf753uHIZ8CIGGd24U/nlL7BBnBQcPjuJOQjBGqtinP+SZ+71n5e7bdAAAAaARXSUxECKddvHFncUzqwajkOo1kOk7dYloAAAASAAAAATBFAiEAkAxUIDG+3xnHLvHxfxr73BRi7rDpLeXr2U9cL1HWW94CICwVm0emdZD2P2V5viXGQcdaS11ArgTalY4TlPXlvTzHAAAAaARXSUxE08AHcrJNmXqBIknKY3qSHoE1dwEAAAASAAAAATBFAiEAqdPDRjTfwh+0671n3GeNeWx+3H5Jlm8d0RBa0i+nMqICIDmf9BBN+tBOEy5X8npRnyBObAgz6PAKnVDYm+YhMltfAAAAZwRXQlRDiMc4WkAwCLY9wCi6WsutPtsdH6kAAAASAAAAATBEAiBZjD0bmsOen51yyiHUx2/K/3JUrT8SFx2ae+/tLcCM2gIgUrtMAqQglh8COzmOTY2lfI8bVLH/uZ9xma+T84aOHmYAAABnBFdJTEQqO/94t5oAmXbuoJalGpSKPcAONAAAABIAAAABMEQCIDmrNFEaf4j3kMezlNk45imcNTEwIDvo4qAChPsFFmv/AiBsed/flY9+aaACYTGM26xShZ8ec+o3TgekMxfynS6zRgAAAGcDV0NP1Eu2Zjk2yrExBYSid/fappQ9SQQAAAAIAAAAATBFAiEAl9LRqt4+JTEa/gqoo1XcvWEGURy005hdkfLR9VKgvVECIGW2BQBLQknUkXDCUihHaVjmlb84Dt7Jddv5JK+dJTddAAAAZwRXRE5UGDQzy7X0tSr/FQn3hkyi925NhTUAAAASAAAAATBEAiBRSqionN40NL8hfg84M97j8FUySetI5+iRijNRghTFDAIgfVvbksCY/bL/AdHmtzvTTChemhyShiLihwIeT0I4oMQAAABpBVdJTkdTZnCIshLOPQahtVOnIh4f0ZAA2a8AAAASAAAAATBFAiEA0D0DuN22m9HPm15acNivNIZIbC406l2pLsAseS7cqvICIH/O8tkhbnWm0oTjjURv0GAUHtJ7Ga8arFcKLdC8O7lDAAAAZwNXTkvhvaDDv6K+f3QPARm2o08Fe9WOugAAABIAAAABMEUCIQCaEjO/Mh0kHnlJwEmgwrDanXAT10tOH4ohNgKc8hvC3AIgE7h94CdOQTb16DGAlQ44mznrbvS+qQvNt1yN7ZAywyMAAABoBVdJTlJZGocHfE+DSIRpG4uk/ICNLsk6nzAAAAAJAAAAATBEAiABOY+g4fC6LMjK1PpL5jMvhD+i1iHVetn/vM2Tgi6z4wIgUnHhQJNGuvxNSMEa/A4SPf7FEN7oJWEWY8yx3pLQ31QAAABnA1dOTM+/cOM9UWPiWw2tc5VcG9nozYuiAAAAEgAAAAEwRQIhAMFN+l9Nx2Ujfcwak+byvMIqYNt8Le1WLKsNTiEyIi0fAiBA3+NNQS0abenZRFv3TVt0JT+V8t6vp+2RZfusIxplJAAAAGYDV1hUoCEgaWx7j+FsCcdJ5FmIGbKw6RUAAAASAAAAATBEAiBONJSah8YDVPivCiZ567Hxe9Uigqh2jErCV4w5FXYNzgIgJIwzm+oIe0RkViK3IKaZa4zwNKyH+KTC0nkEncjeVngAAABnBFdJU0VmoPZ2R5zuHXNz89wuKVJ3i/9b1gAAABIAAAABMEQCIFE/kKkIONeGzeiBibo4hIUumsFrzrnP8JZYj/twL2slAiAEV/8Kjs5n3XLf8EyE+cxTNqkdDItbBVnzr0OzqkD/vAAAAGgFV0lUQ0jcUk48aRAld0TB+TzxXp9HK1vSNgAAABIAAAABMEQCIFHV1KDlL8peE5Zu5VfahnOXLW/OE8Q/9h1xPfM5O+VmAiApiZs46lD76d/Mv9OYOOEfEAXXUNLOhUK2NfBopVljZgAAAGcEV0lWQaAAVebuTR9BaQluy2gvcMqowpmHAAAAEgAAAAEwRAIgRlIAtLM3FOBzhyGcNfJvvqpoAP84nobit4AaV8PVdfUCICsISIzkcxfTfy0Pid43JL4+B492qtRV3+wzSrhE5w2tAAAAZwNXSVh7oZt/fRBqmh4JhTl7lPOO7gtVXgAAAAIAAAABMEUCIQCQi6WTAvVEzHU3ZMQvNQQSWz5SEihOcGdwwjv8Z4MSQwIgXJRgG6szUxlUMJ2/goH7tqUl3VuWH+zrplQgxFzC6usAAABnA1dJWgGKYQbLVArxrm2phTYa/V4XbRwAAAAAEgAAAAEwRQIhANMHssUwknpp9r4nvScb8M2AooKpyaEb3/SgoIw4TlGDAiAvy0zjMC2GbyxTFnAxSYb1AhjE8f8l4DUpYZxL4qYhwQAAAGcDV0laeoLFc7N4zuopdyr7k4kfDQr6k7cAAAASAAAAATBFAiEA8yCrDBPetL2C1HnpA6HsCeBZDGNxBeHcEL1dJK00xXgCIFxIAZfPnG2ICAaO7+VsijQMUEgRUnSWFinIsq9FhqSoAAAAaQV3TElUSQtjEoxAc3sTZHVS4MkmvP7Mw1+TAAAAEgAAAAEwRQIhAMAA80gAtHpSMcLOIsyfkMkkT1fobVL+FpZUVm37s5LBAiB1o7BO0quFYN2fToLMhYi9wj3d/aOzuVy3F4y0zOJcjQAAAGcEV0xLUtZN7qXySTTjoap1KRKu6P/YMAw/AAAAEgAAAAEwRAIga5J50Yys2nV75an/N3sL34mtN41c9V6HuQb4srW84uACIGXtKxO4mUAxKg8YCjf07A5w7T5UDdwd7h3le+ngEWdvAAAAZwR3TUJYcbqR3GjGogbbCmqStLHeP5JxQy0AAAASAAAAATBEAiAOvoDPAbwVsHHFz7+eCN8gxQa7Op16HeeUmR4wrsxmTQIgBaOtVbZIbjMJFgiXf2lYFpONzEqxbvE81+Q4IOdM7fUAAABoBVdPTEZZfbvK4V1NsWjgFnNADXhEhwzB428AAAAJAAAAATBEAiBcAUMXhAXzFdd3qkyF/7mIepnnsa/gg6TERFAxfBiXwwIgU8SBcI7oNBZ20J9JJNvvY3LiJGNrFsdfVRBbtBYfy1EAAABnBFdPTEtyh4HnVzXcCWLfOlHX70fnmKcQfgAAABIAAAABMEQCICwyzXFm8uLt40/qlpKYYeCm8Q8gINZ691jyry48RuBQAiAfYrbyYMXTr/zA4A0Sc8zXgPHbvI0y1iBcp7eXHjgZhgAAAGcEV09MS/a1Wsu8SfRSSqSNGSgamnfFTeEPAAAAEgAAAAEwRAIgJpGLz12tBhbfwFPS1/i5ev6gwf/tUucKPcqvmluMfr0CIAWPgclOfegogYD0G5PO/omW7ZCrVWr6Uhefsw/x2AB+AAAAbAlXT0xWRVJJTlXKezumZVbE2i4qmv75xk+QmllDCgAAAAkAAAABMEQCIBOWT4KHiaJUK8IEQGLlT79ntVBnV7KHSfEcNSyGV3UMAiBvp0zZ73M5yTjnfkjlyNDm9padt0YTbF2gZzQlokzmzQAAAGcEV09XU2cu9+T+IwtcoUZsX91AWI0w/fkKAAAAEgAAAAEwRAIgCjzVoZ2Nk40CqnhCaU4kIgIk9SSXFOd8D7iJ7y6o4gcCICQTcTm8VNw3gtNAm0lHoEyZS2z0qxa4k6n6qLjl7EsbAAAAZgNXT029NWo5v/LK2o6SSFMt2HkUciHPdgAAABIAAAABMEQCIE3d1YtfpG5OPz1TFlKmA7XQXEEhYhruSjA4VggDMA+BAiBDmuTN14dq3aTaBawyPp7DdmwuyNmG4RF87hMqT7rfOAAAAGcDV09NqYKy4Z6Qstn3lI6cG2XRGfHOiNYAAAASAAAAATBFAiEAxL6zZnMmvihP7xmB50b427Y4TgmTDXTBZv9/qHC3F/0CIF0NI482amCDfg4GwcooIYj1mDnPvyor36GgDhVzIv4WAAAAaQZXT01CQVQMnHcSyDs8cOfF4REA0z2UAb353QAAABIAAAABMEQCIE6kcOmhhdkPnhccp8aEZtfQahCGmISfqq0TeUtBUg9LAiBUMeKN4bOKD/BtIT+Mfy1XtWjJfZkPmnpew68/8EE31QAAAGcEV09PRmvAhQmzapjoKd/61J/eXkEmRdCjAAAAEgAAAAEwRAIgOP243GWL05L27/vYcL2cGeYOq/hy2AzMe6ja0g/DALgCIB7nynpzxlKDQcsfJMMhsYIRKCKA2FUGEZ2GUvOW/IoEAAAAaQVXT09GWdBmDNQYpkodROkhStjkWTJNgVfxAAAADAAAAAEwRQIhAMOsR1RhzXSIxpcM1CsVwlpMBUfw7wDzml8d8E4OxPHwAiBZ6H43fjIdWo6kAxlm90pcl9s9JsEHm36Jpt5m+8CmxAAAAGgEV09PTINV2+iw4nWrrSfrhD8+rz/IVeUlAAAAEgAAAAEwRQIhAN3D89finirVf09kjY79gWtdFvGpzrQw4l0zB1nIau7RAiApdhrsjSCk6wHswv0uIquNp06Bq4tsPkT6yOVuw3YMiQAAAGcDV05L1zpmuPsmvosKzXxSvTJQVKx9RosAAAASAAAAATBFAiEA22LV19KYSXPEbUJNe1XFldf7+o3XcHQb8TDs1ICzqUYCIEgN3/zr5pKyWinW5hkZCt1Pf4nFrB2QiOaqbAiK68e1AAAAaAVXb29ua1o4brD8v+4/DXWeJjBTwJFi/xAtAAAAEgAAAAEwRAIgXrs0Azg+2R/qsc86v4vKoeeN/CGMRx1jJMtcyQ9ka4QCIFbDl9OR8ak+RkIjN9BZb3PXZlUmVWyUjod6VzlxqTg0AAAAZwNXT09GkZN6dQiGD4dsnAoqYX59npRdSwAAABIAAAABMEUCIQCPmvmHOtUlTum/hEbCd1CFlpeFmrlKnGMU8b8fpU4DQAIgSbGR4Pgbm2TG6FNfUsZAUR07Vmd2yIvyAy0tRszGHBYAAABmA1dRVAZnfcT+EtO6PHzP0N+M1F5NQJW/AAAAEgAAAAEwRAIgaFFQi7hi77d6M0b92/2de39+nUUGl2lDQOG78UV6anUCICZ3DwUMg0VzuqH1eBGZyRIAl9lWlXN0W0Ph4S+QT7m/AAAAZwRXQVRUgppMoTAzg/EIK2sfuTcRbks7VgUAAAASAAAAATBEAiBD3vOgrFSYNbpOvNvgf6aMl++cKvxFYlYmMWf5GsHSlgIgTVpewlbV2azuQfKhtW2IurqKiwTJiBaNvqZ5Wnin67oAAABmA1dSS3Ho10/xySPjadDnDfsJhmYpxN01AAAAEgAAAAEwRAIgG/cZ66zBbxFuHDp/Fiw8Q8KYiDGBzqf75AJE1BaLZ3MCIFpd+uZubxXnWkYs4GMG4pqzjydDwV26pnxh07drT6sqAAAAZwRXQ0RDq1HoNr3Lx8wG2SbFDYgyjxuxcUgAAAASAAAAATBEAiA9DmUJ36meqPA4pWGlEgAW+6SsRUSJti9hi2n8lyKdZgIgZDtPHkdua04PjCv+MkxQe6Pnzfj1BETRHt0QubUJ7BEAAABoBVdPUkxEv0lPAu4/3h8gvuYkK84tHtDBXkcAAAASAAAAATBEAiAzTZAxFRS//b8Vfp7PUT0rSzWeTnce94TRM89W37GVxAIgVNBp9ix7y5jxLjSGLBLfFugogx3zsapPxBvKNRFna64AAABmA1dSQ3KtrbRHeE3Xqx9HJGd1D8SF5MstAAAABgAAAAEwRAIgIHrT8wa27ZH6eottSKhG/9N4qqQA7i2nuEIg+D4B08MCIF8N1FEuhyGujbohvUQrhIcWRAi8nDv1QzonfE2ad3LuAAAAZwNXUFTgRJHWTqpGTsj99Tx6TJK/WyJ4zQAAABIAAAABMEUCIQDMm+cKrhmekROtVCl2uOMS1yuhKo8whLLVDLTzS2QCSgIgXJ1D19qz8GHmUILFH3TQgAwQ9zy7uYQraD2DNiC+2KcAAABnA1dZWAXt/72hA9kNUECCmhBfaHRD4Mo+AAAAEgAAAAEwRQIhANpKkDptHpfmJ6d7I8yepCN1JDll2KG7MMCtTI1ohCG4AiBWPDbOCn+H4f5u7g7ZanARcRHubgqYHlOs2+bdWjf4EgAAAGYDV1BQGVXXRPlDVSK+UI0bpg48EtBpC2oAAAASAAAAATBEAiAbR02g0JQqSwSMilnBTZtZR9E3tSZvyrEn18UY01mPjQIgbD+enQfuW2DO+qJF8w9f+/VDMfg29RLTTY4Q46mRxVcAAABoBXdER0xEEjFRQCB2/IGbdWRRCYnkdcnNk8oAAAAIAAAAATBEAiBMqHZ9E5HTHRQXU5PEQQde9vrd2IBYwNxSg5wIG4c6/AIgHosGbf9jW0uj5gqUiJ6pbU5J8CrK6o/iWD+f/hpRnwcAAABoBVdBTVBM7bFxwYzpC2M9tELypvcodAk7Se8AAAASAAAAATBEAiBMdt1gDaxMZdATVCX1ob2fbCLGNs9KJsfyrpR5lqm1GQIgbU4qsOW/YhlFe7znQY/OCuTc+k4GpfK/+r+21fCLccoAAABrB3dBTkFUSEEzg8Wolp3EE7/dyWVuuAoUCOS6IAAAABIAAAABMEUCIQCNOW5Bazguu5v4h+cPDsBOYERFGdjs3CoUU9LVsVIT7gIgFau/x3HwE6fEpPSAGtYFeKwPmuEVgyFkC3mQfgBylCoAAABmA0FOQw863CR+kcPFC8CHITVaQQN+ibwgAAAAEgAAAAEwRAIgOuD+57bZRdhgvWebmyV78rz808JwOui3zkRHQVzDq04CIDwtkUF1v4h6plcVH5cy/w49aaLGDtCQfYXaKnp8YRidAAAAZgNXQVJPrcepjy3JZRDkLdGnQUHurgwVQwAAAAwAAAABMEQCIG+Mo5cRv7trGl8hPn9q1WqdHloEXZ5KRzO2cUcUQ+C3AiBsMV8bwUMVZM8HRy62Slk8CVe+Hb8SLykzE6G/jpiMaAAAAGgEd0JBTuILniRttaDSG/kgnkhYvJo/96A0AAAAEgAAAAEwRQIhAL0Me+qYluPD9cf1B7h8gssxlpRcpDvDcsch+xKqhbh/AiAOTYLEAr00Z2HrQ+E8AyEWCB1gel80QBSS0OH0ADFoxQAAAGkFd0JJTkQVM03LFx6LZdZlAyFYHcqDvocBFQAAAAgAAAABMEUCIQDb4qqc5PZMtInIbnmoe116FXpKF8C4KtEU3SnO3a0wmQIgHIyClOiNHIjbloQZOnb+djaXxVWyeGTYDeBzalkiiggAAABoBFdCVEMiYPrF5VQqdzqkT7z+33wZO8LFmQAAAAgAAAABMEUCIQDXM7PRvEmgVpjhTYhpg0zxkRvvic2Y6o0498NyuBoAewIgb7Q97dx1CLVn8zC6KS7aEplBCTVDTLl5X+wm6hVg3SwAAABnBFdCVVk5bsQCtCBmhkxAbRrDvIa1dQA+2AAAAAIAAAABMEQCIFznOcDxXhvSKcvFWfFA6eawBoJnDE8cafMxY01LpMeFAiAuFThElbS2/5avCQaR/4sKsSIXRn6ax3wwbt0tdG9DzQAAAGkFV0JZVFoqrZ28gmEUhaUjJZI+EYdzTpUbeAAAAAgAAAABMEUCIQDk4hOWgvibaTod4itBMfc46GCjzfDqokCbC1c0AzXS+wIgHFtrt1AkJq3i3UhMKg4jGCQjjmWT2DanhurCyot5H4IAAABpBXdDRUxP5FLm6i3esBLiDbc79dOGOjrI13oAAAASAAAAATBFAiEAyZVQQgI6fbMFtN40hb+ibc6Z6j7zuMTH6Bun3NgT4JQCIDI2IGdv45w/XJxACtTdSb2KyhqzjT4rwcOUO+0uJm4SAAAAaAV3Q1VTRK0+P8Wd/zGL7OqrfQDrT2ix7PGVAAAAEgAAAAEwRAIgR4WZH9DxzHClqLbkbA9DUYgQP5D4Fm+4UKuIOCrB2eUCIEHRdDUQD0UEFrqFW83uZc6a/pVtc3CB6ATSUHLxqAXQAAAAZwR3Q0ZHwiG35l/8gN4jS7tmZ6vdRlk9NPAAAAASAAAAATBEAiBkW98CWnqVDJSv9GLY0dgGeaE9sv/J4shVnLS+SWlMGAIgDU8zNbOTqmUeWe6UZuFFFG4i1mVKcURL7e4mfcAqRxcAAABoBFdDSEltwCFk11ZRdYrHRDWAYJPkIbZGBQAAAAgAAAABMEUCIQDIOJksWncVUE5buAEDAwMOXw5+jTOTvVy0sJxgtV++YgIgEznc/f5XzgsZgPQn6jL1DyqRQspN9F+4AAhQyQiK5LQAAABoBXdDUkVToK+qKFzoWXTDyIElbLfyJeOhF4oAAAASAAAAATBEAiAEeeLpLnYMPGNmvm+MQnGaWWHWW2fhA9VKLBf3GKi5JgIgQ156855FahXiRV+dWFUWUFVMUbbERzOHZi4JrebMeRAAAABmA1dDSwn+XwI28OpdkwGX3OJU13sEEoB1AAAAEgAAAAEwRAIgSptcrmKD3ZRtpqKyn9BXSWFmc67YGY1dZV7WZLTDIR0CIB1rOmAtswj4G0T+/sHPLgqYAikU+0v/v33dpLj3oINAAAAAaAVXRE9HRYqpOBslRLSMJvO4UPbgfixRYes+AAAACAAAAAEwRAIgIHZBuQR+AXB/SmHEAwI3CUWyLOhIbn5KJt5LyOcyUCICIC8TpqenjyJt8FW0L6JqAf4BfXxUeeTPu90xfZ/rOrPyAAAAaAVXRE9HRTWlMtN2/9mnBdC7MZUyg3M3o5jnAAAAEgAAAAEwRAIgeQ6QVJC4DXYVbEhPAZxwAwYWHCpUbJKieaehMIm89gECIEjg+w/1nyj+wQoBZ0FGblGlI0P3xJGkWC9I14yTbpmCAAAAaAVEVFVCRdK+NyKxe2FsUe2biUSiJ9HOV5wkAAAAAgAAAAEwRAIgLgf031IrdMwMBgTGYUCkF9znmcrJgABfEUU5gz0sJggCIEZk+Tc4pWjX/OtYbaMWAbseFy4UQX6ZMtl+RRQ8wTqjAAAAZwRFVEhPmWdsn6THeEiusjg/z71+mA3CUCcAAAASAAAAATBEAiBfJGujT06XaR4r6mRzh7Ik/9mO2SSrDHPZ4L9/1VuClQIgWCSDfVJJCAW3B5Ym+WgA6hl+pY02qFIDK5l+vzsXW1EAAABoBFdGQ1RBWsw8ZjYhHmfiSNwoQAtFKs76aAAAAAgAAAABMEUCIQCCDPwlj6FIREO/88zHJFXnsEjnNHoZOATamWu5m5/v5gIgJlB13sCp57L6rxAxwwirLoZriLkc+I1dyKqeqQsMSQ8AAABnBFdGSUxuGhnyNb5+2OM2nvc7GWwHJXSU3gAAABIAAAABMEQCIHXMYcLHmI+OVPfHRxSA4CJ5JR7rXHyhi5roRv8KO3w8AiBgGpYIUklDEcppHs3KMG9PxO4czcdXrtZqWvqk8J0ZtQAAAGgFV0ZMT1dcFH501jsdMao/146yKbZRYZg7KwAAABIAAAABMEQCIGI22VKoDcJeBB5hRSv3Z3SiqkKxWRDSVoc9RH/1+vfPAiBmQpVxg0sfpNkiESk78pS5HctLSRXhUQ+SptsLIlYqFwAAAGcDV0cwoQdA/5/2hS6shM3P+RhOHW0nwFcAAAASAAAAATBFAiEAtxZkEN2WxmhU+dBiP2/c8oOwwpbMW4NhAz8tdCpThZcCIHDElo+2tGjFPqMsbwt3/YcyiBw2eJInWOFeRDOvUJ7WAAAAaARXSE5Tp3G0kGTaAR3wUQUoSEd/GNuh0qwAAAAGAAAAATBFAiEA4SoZ678WVESuihKBtYT/5pGGEz4IX7apSIT2luo0LbcCIFjiLeLGhyEAnFvrwc2rQIB0yaLog6YT4C0y7TFVZyu+AAAAZwRXSUxDyYqRDt5S59UwhSWEXxnhdHDbzPcAAAAIAAAAATBEAiBVpIyJfGjrB4vw/o4xCxYL/RqDsv1QMpegBezNYBKxVAIgV1bsNPpIbm6v/siwv6AW+bQrbZtR5tkJWhbhEomLmBQAAABnBFdMRU9zqftG4ihij4+buQBOyk9PUp05mAAAAAMAAAABMEQCIBPm2zUJph1ShdFeLQEuVt6UfQ40VTezUX8gwaNKhu2FAiAGMVgtsGb7Nkivc1875TxAO6MVocb85rLsYP297PAQGwAAAGkGd0xPVFRPN2Be7zVPqNHMp7kj2n5FEmnHT7wAAAASAAAAATBEAiAgbKWtajCW+EA/lEDdNSY4MeIBt8QTylGVv0xC5EPWIAIgcMeI3mGn4xz2bV/3zKQfwQX7/cpdWsTGTBc0pDMIbi8AAABnBExVTkPSh3cCZ15s65dbSh3/n7e69MkeqQAAABIAAAABMEQCIEANJYbO2TX4vY4qFM093LaXWjjvAi6al1YxZ6kB7KN8AiAtpTL86IuG2VczQ12+3LTiMWjhl/MbPhGqRG3t7V70XQAAAGcDTUlSCaPsr6gXJo93vhKDF2uUbE/y5ggAAAASAAAAATBFAiEAx5c5UWqMdm47glo/YWDk1QsA3bYLXZ3TXtq33V8G5NgCIGX2u+77LFnJUxvuEOrKOq0QkmgeJ6niOC9AjpMWXuU1AAAAaAVtQUFQTNNpMhQ/br3t2HLV+wZR9Lcv0VqEAAAAEgAAAAEwRAIgMUMeLldXOZXgo5NfljAzmW50u8IvIdB9yKVfxj3ah9gCIBsk2tjJFwOGDxXBeJVyweprpxYCPwQwZoybXkLO3z0mAAAAaQVtQU1aTgyunk1mN5PCoqCyEcHPS7yiucqnAAAAEgAAAAEwRQIhAIzJvJm+7Jy3eIZN9v+7z/PmSbt/2GWlMtzyFsYO4Cu/AiBT0Oc/69BniQybqOWGrfgyQu7l90qEFXG3lFc+DXT9dgAAAGkFbUJBQkFWqimKGck8aAH93ocPpj73XMCvcgAAABIAAAABMEUCIQDLsyxQF2qydFYwn5gSAVkHOJAVtS+PYY8di4MGgkEw+gIgdNWYsLz4RrppNEdGo6W9j8gTEUECqPqnkaJL09rAsbAAAABnA21GQg6ZzAU1u2JR9mefpuZdbTtDDoQLAAAAEgAAAAEwRQIhAIzzCuAjjRAV4guU2u+ZzMhBa8R63ztufm6yTBgKMV6WAiAdSSbDXRz+3yOFgRIVFobzs3yBWygs1RenQ+zUFCN8KAAAAGoGbUdPT0dMWakh2yfdbU2XR0W3/8XDOTJlNEIAAAASAAAAATBFAiEAuMevBPF9y8KAZIbH6eSydK5V7UQ4ycJV5UqCyZI3fVQCID06wUVQhm0XKL+vKcQRN4p/MYyWDcXSQrM/4GPjMNiDAAAAZwRtSUFVHTUEF9l4fgAMwbldcOlTbc2R83MAAAASAAAAATBEAiBMus2+KssjEAzLC1cVYmXnTNpdFcfymG/u48DslGEr3AIgXuYmtWhEev0QkoHxYVGPsbeLkrqUqLz+DJeqDOAe7WsAAABpBW1NU0ZUQbvt1yhtqrWRCh8V0Sy9qDmFK9cAAAASAAAAATBFAiEAgqMDRM+Bt+hDKz8xR8OisjEIdX6oA+1TTMLFq7W74A0CIFRADiW1BHHmF8NkhJtUJ26KYcFc9zjBMW6Fb6/IDFyEAAAAaQVtTkZMWMjWdBFLrJAUjRHTwdM8YYNaD53NAAAAEgAAAAEwRQIhAMNxZENlRxdqfgrPRzo71jteEyL7moG3DdCA//2MLVnwAiBDVTpS+XSrsp2h/sQsHkH0Agpi30E0biSCYove1I+rtwAAAGgEbVFRUROwLI3nFoDnHwggyZbkvkPC9X0VAAAAEgAAAAEwRQIhAJT9+lf1ZC/CUsKr1b7B2PsK2loXiFn/WiA2RWHa1j1VAiB3AjH78ElwOb2nhcP4/wQn8I8KfYOWIWRnwOymhSiGOQAAAGcEbVNMVp0VVdjLPIRrtPfVsbEICHLDFmZ2AAAAEgAAAAEwRAIgFR6ZQKdO63nkG+S4Ach9LGLxpf0tLOQNnsjjD3eIkI8CICkBjxOp4xNvO3DiEXqvH2xkVLQbG1pjd/X/sPW6RFe8AAAAaQVtVFNMQSHKOZQ+kdcEZ49dALZhZlDwZv1jAAAAEgAAAAEwRQIhALTTHSkZm8heOCYOPdL40yPv9YyqtVglzC02GZoJzeWdAiBd0agt2K2vlZQpce0IdDHCv/EV3ujdv99fFEGr5VqE7AAAAGgFbVRXVFLtsEFGJ+bx4/CC3mXNT5xpPXjMqQAAABIAAAABMEQCICpG0EKPuyx0S92m6+KC5vlLkebVRe8/KSA7eSnNoSXuAiBUXN5Srp4M2tbT8xHe9txc0ojye/ecKXr16YN9wdBLuAAAAGgEbVVTTzHGMUamNet0ZeWFMCCzlxOsNWmRAAAAEgAAAAEwRQIhAI324KE5ltc6DMruqciv5tHsttj8btHoAiBUxS3gsiGiAiBn8PmifLZFQuCgMAeVQM4yLtW6Lrt+3kjFRBu6/h5ROgAAAGkFbVZJWFn3L82dzwGQkj+t1EgR4kDvRTP8hgAAABIAAAABMEUCIQCXSROKZOer4P0zhzN0g4IxLKpY8mupi1YOYUePawhEbQIgQKm6e2Ps7AD7plvagHKd1PQo4WOeThuSGpYONnooWkUAAABoBFdYTVJGXgfWAogwEkvi5KpVH74SgF2w9QAAABIAAAABMEUCIQCdqiyHTCzOALW/TF8lcefFzsAlKSBHjtdW1O+QZx6+JwIgKdm6zbL1x5ptaopsd4stj29g7RkRjkss/PlZEgryQ8EAAABqBk1DQVQyMPlhofp8eB7NI2if4dC387bLsvlyAAAAEgAAAAEwRQIhAKQzr68IOzAJA5JXUq6Nd25NoIy3TEX5I7Bqan0ef5cWAiAp/YqWs5sF63D4MdcytZZdfQTiXxpKr4VBUQjSxUeeHQAAAGcEV05DR/IDyhdpyo6ej+HanRR9totskZgXAAAAEgAAAAEwRAIgUWGIam+N7K0/cG0HInEMQDXOE3gkbhc4aUk6GnscMywCIAnfEMZ4/hrqsLvez57f/XX/pRgTCQEBxfoCYCKLw9LgAAAAZwR3TlhNDUOPO1F1vrwmK/I3U8HlPQNDK94AAAASAAAAATBEAiB7NrJogAd2eQUO/5vqA+CaG8nDFAFuyMUq8vYc2LJCggIgOx5Hq0y2Ei56IkzqSAYFIx0aXKu7pypJio10RyOuDFgAAABoBHdPTUkElpzQQcDK+2rEYr1ltTalvbOmcAAAABIAAAABMEUCIQDARzsoIaxQNQjYN/JkvBfGjPOD3B07p8TF+ZNwlJaXiwIgLGIpKA1MltTB9gOdCSqUinyYxE6VTzkPwCoxwe2OKzYAAABnA1dPQewKCRWnw0Q4YrZ4sNRyHHqxM/3PAAAAEgAAAAEwRQIhAPQCiSkB0sWJ8ergXaqAmhPpc48YAgVwOxDawq5CK4KlAiARxQlje45Q/ryftMI8tVnlTdj4YB5J9uhw9rRD0+CTrgAAAGgFV09VU0TSr4MOjL3+1swRuraXuyVJbtb6YgAAABIAAAABMEQCIEzXeYYpQHvKKlcwpopa5Fu/ObEcK1kTCsS+/i2V6zdTAiB2EgDa/cUuAobEfzH0Cs3DkYDINnCAEyJkMkuhZML12wAAAGgFV1BSQ1nfw4KbEndhoyGL/O5/yS4SMsnRFgAAAAgAAAABMEQCIFGOGM/O7szHIJ8texkSZMu1JHqKgx9us552DpPilR2WAiA3QuRBAx5EW3Hef3vtPMSMUIEmcLd3kLfH6G4JMudhaAAAAGkFd1JPU0UmuA+/wBtxSV9HfVI3BxJC4NlZ1wAAABIAAAABMEUCIQCbZQ7PFsbMbsB9WbqiboG88Ydo+++JGW90g/c659nu+wIgfoLUKh4PVq1KblNRcweWQ+EMu3ZhncVRXlv1Fgfu/a8AAABpBVdTQ1JUK4m/i6hYzS/O4fraN41c1pNpaL4AAAAGAAAAATBFAiEAuP8CghTsYaInhDl6ZeCJiUjebWxT6lauxn8X5YK6ezACID/Kh6XILeGaKDz7YS8xta/DrnbDDk7nzT5cNcBs4u3yAAAAaAVXU0hJQg/PboQ4KC9WWKsB0pD7KKJKdBcAAAAACQAAAAEwRAIgZpx2grp1vmZ6JiTnD/JBRMsUXlt9CK4lXm9g53C+a90CIHi59U5eaEX3hoU2ed4EObIrMkWrUKAndZjKXoVyqG5aAAAAagZ3U0hJRlRLRXGSXpTM2MVGs5RionDMmz7R5AAAABIAAAABMEUCIQCQmusBFlF9XjsaFa2iEDyC1rSQheX3P25pyoH6yKRD1AIgDDuCh1iMvPXfWRj8xWhELUgiLFDSs5lYyDS8V1AS+f0AAABoBFdTVEHt7sVpHyPkkUzwGDpBlrvrMNAnoAAAABIAAAABMEUCIQDrxske1JAsUwC+aHXRrwRhHXWC5Pf9Ul+jsJFMdXv3EgIgOGReZQLw8kOuAAlD69QROyKSfOc2rWJW72qhOgPI4DwAAABrB1RPTkNPSU5YLYcqGwlPxI9d4x07c/LZvkfe8QAAAAkAAAABMEUCIQD9ugRbnVBbyWAOTDOTV+EJ1JvLqLDN1mp+TyUKiTjSpwIgEcu6ZpSfa9L7WdMPWI5i4NUNOt8vBPhLUzEiulSr9/gAAABoBFdVU0R8l0EE353X+5EgWrPWbRWv8QSd6AAAABIAAAABMEUCIQDQ/Gz+BjvRNQVsAPWowRG7R/Ir8tzKol7RIrMWoMpUoQIgT01wXH7Vv84NtS9JzXQcsZ1qqXLi6lhILPq8VifAf4MAAABnA1VTVKR8i/N/kqvtShJr2oB6e3SYZhrNAAAAEgAAAAEwRQIhAInTM0sQdAxY1mpjJZxiuMlFgpPJuBKPSQRg/uIO8wltAiBJALXNeeeBnKIsFvGG7KDfm/kIBSzT4KOj4vjL4KX2fwAAAGgEV1ZHMCXHtkqT6xJh4TDsIaPpkYyqOLYRAAAAEgAAAAEwRQIhAMJ4wB9TsY+pRTl8J3qYgO2tGi7WucXcgydRSGlaiVPVAiAK7Rb3W/038lRTk9ImTmWYokrUG5D5yyXUbmE9KlCtTwAAAGgEV1dHUsI3hoqcVym98xc93ayqM2oKW7bgAAAACAAAAAEwRQIhAK+79drXSvxLiTrDze3x7hq1qdX0VmMCCXux6y4FgdqJAiBnTKFs8plVBF8J+7CxF6S9h+zUHGRbXtsFitCuKJd6XgAAAGcEV1dDTlSjAXdUv7pz9x832JOjaIFMv/RXAAAACAAAAAEwRAIgcd8VSaJ/rn9prcqsHXSXmX87xRX8IHdHduEDir/tLkcCIDWFyhS7lwM2Kr1S+upb/ldMzFlihMHJQ83ME3YSeLvhAAAAaAVXV2lzaNEjV12Up62b/zrQN66dTVL0GnUYAAAACAAAAAEwRAIgbQ7Y96Op7wPHV6KOKqop07OH+W9Qe44uyxcyh/QJBAECIEIdmmZ1O+yuEKerwqjDC3cb4EEtYJXMe0kVn9KWbmmjAAAAaAV3eEJUQ1WSxaqJSS6pGNVbgE4Xe1yn3M1aAAAAEgAAAAEwRAIgbLHhnW6gagPky9TXhCADZi6CtbQnx+tlWBPDsF63lFQCIEsGgdEILrhlRUja4yBw6REU+hSf0LrjXcHkjHJ29O7qAAAAaARXWFJQOfu6vxFzgxekSAMZMHBs0+YS4bkAAAASAAAAATBFAiEA3JHweB8m601mtacmXltudQ40nEKTESzTSC97GNFlYpwCIFx3xyOcQPO+OE3YLv07GCuaPE3t0fG2DG6dVVLN0L/tAAAAaAR3WFRaKmllXCLtoy/0jTFbsm7UXxUHALQAAAAGAAAAATBFAiEAq91NjslKfFnNmlelePRosKpnBXIynMllVbipbSEfu74CIFxHMnz7zLqGjaoq44Bc9BZQJ5BzjLMOT64nzSP1nyLTAAAAaARXWkVDSmRRXl4dEHPoPzDLl77SBAC2bhAAAAASAAAAATBFAiEA+7w6rnaEacZI1A6/S9xvGt0Kaa0ZI4JXW7Y4aN69bAACIDg7PPD+x5c3xsR5G57BfVGyQ4ilxIN4ySwMUxu2f0IuAAAAagZXUE9MSVNiLylirnjoaG7MHjDPL5puWsNWJgAAABIAAAABMEUCIQD5KZRA6VJLct2HA4zaYrnZAlcIOCLF/NkfFI6NKrwqBQIgBid6K1PVMDs4vmaqL1IpW5rghG53etr0Aqa6YFf/tKYAAABpBndzdEVUSH85xYH1lbU8XLGb0LP42myTXiygAAAAEgAAAAEwRAIgfJbjUBGznZamcxfn4IiXer1HYJ4FMZ7Ej+YOS+7gg3wCIGNMRs/fWCUJftmq46YwfP6anFUSE6J3wpqSmRFLxPE9AAAAZwN3dGavv/drhpnDPpYqpJyqSfMMH0K5hAAAAAgAAAABMEUCIQDg0CMQ69saTeQwKCwmQsflizXNWKj3rQauMLUTyGkURAIgCgyjVVzA2NobdkaivNp7Zns3WUDgt+JQsIVUqFZCQu8AAABnA1dUVIQRnLM+j1kNdcLW6k5rB0GnSU7aAAAAAAAAAAEwRQIhAPRNubhSxzDkpKuWblKeJTph8oEPI2yDuTLk+Tz/y5M9AiAvgtzcL/9Dlu80L787A/xZGWxrKCSEQZ5WzC6Bq+9vcQAAAGcDV1lT2JUP3qoQMEt6f9A6L8Zrw588cRoAAAASAAAAATBFAiEAnqbmCWLsDieGgCKC6s4IYHl0cITPrpSihBQGnQA1S9gCIGJ2706MlBLztoQgGlMoNWhkWqnDZhaVuJQ3BKw2e16kAAAAZwNXWVYFYBfFWueuMtEq73xnnfg6hcp1/wAAABIAAAABMEUCIQCf9h7+76/iBTH7D7+cFK27Y3OZ6C9jlb23LHwyvDXn3QIgMqJae2BzjcEw00z3veZbHHwJ0EmAiUeyr9to4R1qi80AAABmA1hQTxo1ZIUtjt58gkmAXnFxi9eqk91tAAAAAgAAAAEwRAIgb1Xj3YPJwPasAt9HzbZC1GuwWKxPfZY8CIteokcRLG8CIGA9eKJFNWP+vb3x7d2esrBrJ+otKjvmRpNu2DlxGMdsAAAAZgNYMjJBBFKCkB6QvadXjWKOR55UIdHN1QAAABIAAAABMEQCIG5GSfvkpLVcbVw5wSeZ75bwuQtx0jjrUz/UGoL8jjaHAiAcufFp3ZrFz6SIlmOfzCoqlH/PBzR4vEIS24bviifP1AAAAGgEWDJZMh5O3jiMvJ9LXHloG3+U02oRq+vJAAAAEgAAAAEwRQIhALGTLNPd7T0r4/DBXPerd+MzDVqEm3Tfy3AjmkQ1E6hoAiBzBBpOvL9YAqXkJNdShwPTgupaEArVD9POL+pmLJU8uwAAAGcDWDdScACPGPxYko3OmCsKacLCH/gNylQAAAASAAAAATBFAiEAtY5FBR6ZoZ4CrrRMGfZ3ly2MdPFcuvblivJYiuALrUQCIFEF6UHfDaAKABBtLXfOjPfFzLeEKPLWkT/vQ8zNFZfTAAAAZwNYOFiRDfwY1uo9anEkpvi1RY8oEGD6TAAAABIAAAABMEUCIQCZBHyDdDPj0dXW9883aKNi7OHjN4YPUB6f8kTBWIKbrAIgcgcLrJqTFHoLej8QYR3jbo0mGPs70ZdYg2LeWBQrlIwAAABqBnhBQVZFYYDcRoZxMW5Q1OkCPT2zjTEFwcFGAAAAEgAAAAEwRQIhALh3riPAo/xrw6z/rrgyMk9EPWVRGCyvM7DhczPqyQrSAiAUbfzU4ziesdTSI8ydC9beOogmlAiJR4UnN/ILzPikoQAAAGcDWEFD3kxaeRkTg4AnohhXCemMXGAn6mMAAAAIAAAAATBFAiEAuZl2h2x2M9jgm8ihcxdokfoVnguUOG74i8DLQbVDCRwCIA1c0S1yDTf2l6BOWReK+CgY+HeXrxSqryHOsRrE6eGyAAAAZwRYQU5LDn956JuoxKE0MRKfstsNT0RLW5oAAAAQAAAAATBEAiBfraPqpGDXr7gFR81kIYedN/tZ0IRJpjLq2fMeP56kmAIgJBwMDIjbOecwpVQ0lo2dP2DkkfiB+UBfIhZKE9wXyy4AAABoBFhBVVJN+BL2Bk3vHl4CnxyoWHd8yY0tgQAAAAgAAAABMEUCIQDVQe4ZAHOZs0+0PkiqT1TnQ8M67QVHtyasjfkY+K9NxgIgLft2dHrWZIVIKNprCmksWuUZ3O3R2ImIPjGzi22b5sQAAABnA1hCRV3nzEvLyjHEc/bS8nglz7CcwLsWAAAAEgAAAAEwRQIhAKBs3kh/f/IxLIiBqtAWyx09fRpYIrofRZMa6NLGfp6vAiAZZ0Ablf7VbGJXt95zNtpw/OFHf4X5yGIpTJqShTRdpQAAAGYCSVhT8MnxtuKDpZvNZy6A4iIrl+U0ywAAABIAAAABMEUCIQDtPJh9svqyLNA52Nf2aLoM81cvN+oP+dSq9CaWcITCDgIgMCfzD2WL9WlLUujdef3RuAxmr8CBEqdJ1wz/txby9HYAAABoBXhCTlRhOfjmx4d0eN4GBP5pPGCAURvAptoAAAASAAAAATBEAiB28psqPjXLgDj+zThplShLtomRUTMDIN17xuSnzDuwEgIgb2tUSOt8ttD1vdM2LQSUsMNDWo1f0M3c4RBkKNdHlnYAAABnBHhCVEPsv1ZpRCUN3ogyJYECTmEUGXFfegAAAAkAAAABMEQCIBCgWdxKD8WZQ2gmPzF/tEzDUfUk7kWnPopQUShFKn65AiBCHEMVPSxgXMugSBDgBJ3fOfvecjSViZJGGUJgv+/OPQAAAGgER09MRGcPnZom09QgMHlP8DXTWmeqCS6tAAAACAAAAAEwRQIhAMDmAIDZsiuqJCypiqeQMwQ6GC8iyOgkb1AIIbwzJxWVAiBKM1G5S6xPDttX6vHuprrfh+GnlmjmY4iBIvjspL0nLQAAAGcEWENBRHZZzhR9DnFEVAc6XdcANUQjS2qgAAAAEgAAAAEwRAIgY2rvt+B3iMvyz0R1MK8U/MLSfCvmaBmfbLXiATAIdMoCIBW5Slb+FfyRzZ1yGr+uOmuwnxJrd6Rx4j1DaTR3iIHoAAAAZwRYTEFCjE5/gU1A+JKfkRLF0JAW+SPTRHIAAAASAAAAATBEAiAKAdl7WiPc0ayC7xOYUuNdYbzaZP4ruWvdVmux6sZmcQIgaevldZPkF7zJBhz5yiyWNcGXKiTQ98dckCX2QFgHHO4AAABnBE5YQ1RBq3VDVmiRm7UH+HHdAel2LC0XOgAAABIAAAABMEQCIF9lpRmGEbjWSukex5GWwbZeTA33EKGKVo8D5EDL/+NmAiAeQruUd175ac3D+4kTV86yftzfAS63Tm6A7OjX+r/1/gAAAGcEWEZZSWvn6T5FdAwxTImjvlJHOg3fJFD+AAAAEgAAAAEwRAIgQddiVFJPxOC6hvWujFKb7A+9bIC2kZ12uluLzThWVa4CIBCfXkuNs7TL5n3TXL4HT+y9PLuIPrpc4Et85EwJGGniAAAAZgNYQ1TSuxbPOMoIbKtRKNXCXelHfr1ZawAAABIAAAABMEQCIHXk1clbUskHf+F2YvsrVxQCFBG3EgUtmnxlevmCDuzmAiAVdmw+o3mU+rsSEDZJmzPkrxbwAoVv2K/ZMqke1DP1TAAAAGgFeERFRjJRZtTOebm/ffR32hEMVgzjBFqoiQAAAAkAAAABMEQCIDlEhclG2v93Ry1jAoaaFA5I5oSgD30a9s/JzD6lgl58AiALmmxy0hSDK2NpFENLovGX0X3zDIyTlOt2EMa1jzvt0wAAAGkFWERFRklyuIbQnBF2VKt9oToU1gMAHeC3dwAAABIAAAABMEUCIQC+eiH4BQNeaIO/JvJWIeUnV83Npg8OoKcTt2ffsc3/QwIgd94cYF4/z8g6fLhikeYaosTVHMZNidiDRUzfyhPjT4UAAABnBFhERVgAAAAAAADQFR50jSW3Zud+/ipsgwAAABIAAAABMEQCIHUfn99FCej5rPo/fe6eRXWK3dC5MPlJ8VnxZ9YWg52mAiAtzLhQMflThUYu57mTpLlMQl/csdIIcNNLMVSDrjTMxQAAAGcEWEVMU+dIJpSU52wc7D9ie7HlYeYH2pFhAAAACAAAAAEwRAIgPXqlyg/oaTPyyLLIdhUis+sFSIOqobHB7KEBrbxPqV8CIC1pa+au9bWRTWTs10kSSgm2JDLYviIKXF9nupk1LzwxAAAAZgNYRU4GRQ3uf9L7jjkGFDS6vPwFWZpvuAAAABIAAAABMEQCIDzw+Qn4ZnMznQNnxAmgOsJYmWWPXmrCsNOkvAc5z2xiAiACZOhpIhWxdFvYMd7psZosqgJqhYE5Ef2N3KLUgTobmAAAAGgEWEVOROTP6eqozbCUKoC3vGj9irD21EkDAAAAEgAAAAEwRQIhANFNMsJKrLjf2nL3rh9zAdzti6cf6eGe+im8DyUDouDzAiApX69q8J/pZZM/C8tjTVRSL5iD0mQFkJ1s24WGTyCyXQAAAGcEWEVNWFkyGs53yAh/+MuflMg4SAfk/Yo8AAAAEgAAAAEwRAIgdL1UG1AmBvKacSKKE/kAV4lzsB95gtzB7iMyIsh9J2kCIAOC542VRvjGsIAlU3DGtAFSahitHC6nFF0bRMfZAS7SAAAAZgNYTk8Fu+ckDeZvZIDJrtp3wTdrEzk/gwAAABIAAAABMEQCIB+u7SPXHdBYX/UYX+0elE43ihOXQHMEECBw72uIeWmmAiAIT/fA3MjAqjZ4TJbAV4brad9n5hGxWg39mLgcXy2w9wAAAGcDWE5Oq5XpFcEj/e1b37YyXjXvVRXx6mkAAAASAAAAATBFAiEAwBRzRuCXtA1rvXiBUPsg8aMQOnp6vr9jeEa0ET/Y69oCIGeceatvq7H1EMoO6R58pgFA5GZjIH9epsQrNa/sz39zAAAAZgNYU1RbyQHL6++wOlbUXlfk81bcTbMKtQAAABIAAAABMEQCIEeXIieLE/rXqAoVyWkMwBGpgZ6C2RPic0668aR9S1abAiBaBuzM2rLE0r6mTILX+J3MOfpJwJE80O/ngqc4TBLNnAAAAGcDWE5TeccdNDbznOOC0PWPGwEdiBALnZEAAAASAAAAATBFAiEAwNKxblDa5bLaqXuswYxUPLGVeNr/CctnygqgTI04EdACIAlQO7txi9dbKZ0heLnnbmdjiQGgD/81WQpLiig9V/djAAAAaAR4RVVS5XfgsgDQDr3sv8HNP36OBMcEdr4AAAAAAAAAATBFAiEAgwGof6h3Nk5p3w61av20t7j2s8Jn6u7A5mx+8vuexCICIBtkvY3cWeJiVrpdAuJDmXZMUEQFFfgQIJUVUYRYtRMzAAAAZwRYRklJH6IbICIgdtdGX7kB5fRZKJyV9moAAAASAAAAATBEAiAkIeZnoovhWNEW9R/1WdB7ALP0IvyW91ZHiA31kReSqAIgDwYhD3acncr692HroYzLhtfARZccMqNlDy/owVsIuWkAAABnA1hGSVvvuycikN1bhSHUqTj2xHV3QsQwAAAAEgAAAAEwRQIhAMAbwrwB0GB16xdO8A0dSc6a2Z2C2uNWvrqmMRAb93dcAiBfRy+eQpQfUhzvF54w1tZjLADH1su0eKNH/IJOTswISwAAAGcEWEZJVEqkG8FknJwxd+0WyqoRSCKV/HRBAAAAEgAAAAEwRAIgfBruj7gvbaKxCtEidIgX9Ah12iWj3zJwMqQwNvQVFMECIDqlgNhn8caPZ1b4tOgwZld8fNKbMoYz3fjy8+4a0dbxAAAAaQV4RlVORIkqb53wFH5fB5sJk/SG+ayjyHiBAAAACQAAAAEwRQIhAP3a9WToh1cFCf5grG0xNxoFa4pUIWBE4bSn2jJfCY7BAiAOQoTwH0VEung5mD9BHhz8JlWaNrT4Co5BFwHO1uIUwAAAAGYDWEdNUz7wmEsvqiJ6zGIMZ8zhKqOc2M0AAAAIAAAAATBEAiApEjLQCCJujnjZscm1GiRxz9vVwmk0OrvmuU0wBy58VwIgG8Df2doxJE9Lg0gwKDtmwwyYmF4dWcsfhXpI1KRk/ikAAABmA1hHVDD0o+CrenZzPYtguJ3ZPD0LTJ4vAAAAEgAAAAEwRAIgJgYqvwXf32WWqLXcUEtuiDN4AlYsF9H8xeHBFgeOgBICIGTB6VGoN6ORo6B5Y33Y27b+SxmTR7Or1tZ9/dUkVC0bAAAAZwR4SERYb8tkCEmafA8kLjLXfrUf+h3Sin4AAAAMAAAAATBEAiBfG53GhbeXTGWbusTpOBCWhscxAREfwZSzNJbKVLoQ7gIgWCGOjW9CnU1vB3mRAKD/6EIWnl3hPbC5DPW2Du29v4EAAABmAlhJKVtCaE+Qx32n6kYzYAEBDyeR7IwAAAASAAAAATBFAiEAtHTrgqBuAxYMMxoqbpJnG8qA9e35IIX9Ap/DwZf2WWsCIA2rSpoPMOzWfMp5bkUQVIo9Wp0D7OYRDVjDgKBUR0C/AAAAZgNYSUSxEOx7HcuPq43tvyj1O8Y+pb7dhAAAAAgAAAABMEQCIBYDnmOvw/AeXmQ//nqZktGulR9Vgwviwnlu4HRgf3nBAiBsYgxF4EhdgQ05XO1Mgv2nH5FnArTq31aAjwZ9oc0LKAAAAGcEWElET/ZlARcBf/1ItyW07FoAtBQJcQinAAAAEgAAAAEwRAIgfIERHtw7kQkFTriLqKiBvsHi2ZPEUj6P0dGnh2qs8r8CIE5fhPaapXOfr/rQeTH0jIPZ/pdHhrw+7eg8vyE38oQ3AAAAZwRYSURS6/IJbgFFUQi63Lr4bOMLblpyqlIAAAAGAAAAATBEAiB4YT2UfHl/qNwnkD80lDnIluzAHabuoviJGCQuuW3NkAIgYRk1RmIjmt8BNjbpGqYwDsyld14M4rr++RMSxAaOsfoAAABmA1hHQ4nTwCSTB65XCjFgMHZNEvU7sZH9AAAADgAAAAEwRAIgCgqX/fUnqm39sEUFDpOJwCKjxPKz0Fsbu/7CxUsXPgkCIBOZcH2Q6gW3elrBe6+Kjv1EWEaxgSUIjfOGAbbTb93yAAAAagZ4SU5DSGGPahk8izyUnhBG8VR8Oj8INpROSwAAABIAAAABMEUCIQCSW/n3qD8Ae0zGtcYs48b+SPd3Q1vjewznaPL9clk+ugIga8OUUoBW01v9xlGywGq/LSLUhNFWLDU2BFYbVB7DvEQAAABoBFhEQ0VBqxtvy7L6nc7YGsvewT6mMV8r8gAAABIAAAABMEUCIQCi5Ow2qZHGBzobMv/P+B2gc5nv19aeH270KK8ewldC+wIgKKLIZDps2TKFXtOsTNz4cdWqDMckla+5FgOXn8XqzxEAAABmA1hJTw9/lhZIrm20PHVmOsflQU63m1cEAAAAEgAAAAEwRAIgUv5HZr2S5JtF5MRhzJNDEzLtM3LynQ9OyaTFNMx/2xACIDQ2cfovSAM3+09izN+WVjcXo3tTR+sWKyFIa7TZVxu1AAAAaARYSU9UMQJKTD6a7rJWuCV5D1y3rGRefNUAAAADAAAAATBFAiEAisMpJ601oQNBhFl7Gn0Q6lrz+Y+4GVsEJMBwWvVrUDsCIBDm2TXsPAQfVcpBDc8toSooJuBrdMAGTnODV/DnuEZMAAAAaQV4S05DYQv+w1oaNVDe7T9vx23ef8QScpqRAAAAEgAAAAEwRQIhAKONC9sGV/soP/TzvjGAURTt5JimDdKVGOLiUQakw7CQAiABGrCNtHPeAaNoD8JT4sq0m7v8lCsIILcJon90OB3xZgAAAGYDWE1YD4xFuJZ4Sh5AhSa5MAUZ74ZgIJwAAAAIAAAAATBEAiARMtGpajmzh7o8dB524MTyjKwHDZqH+ftqdbmJwXZGmAIgQcEQ0BhZVSiDgIbYfz+CqwsVlSEbJzdCqMaFXM+FUA0AAABnBFhNQ1RERJ+k1gf4B9HtSmmtlClxcoORyAAAABIAAAABMEQCIC9Wm6IJtxfbBHe3Pf0kcl5lOXoQkw2dnpU2n5uOHxHdAiA4ueiHoe2+uSsiOvLdPWUCU/+/eIHKN3F4ehCjqGwZSQAAAGgEWE1PTjqto+ITq/hSlgaSTY0cVcvccL90AAAAEgAAAAEwRQIhAK3nU1tQNhbNVqs6U+7lRbsVwHJ+ybRHxGeeB4MsFzm9AiA5hTUw34lIhn9tbq+STvYELuXjGfg/UbiYz35UHexTpgAAAGUDWE5UVy5vMYBWugxdR6QiZTEThD0lBpEAAAAAAAAAATBDAiAyktCF5TFlkXdiF6UBIhs6GujgVY++UHw4xMvEm8EQwQIfO84PVVbX8CA6VE0KYf+Z+NgVHE7Pv6GTwXUOMXbMPwAAAGYDWE9WFT7ZzBt5KXnSveC79FzCp+Q2pfkAAAASAAAAATBEAiA5J/+dUdK6+mKjENMHItREMkdJVC/pyOgDqu82of+7EwIgHCub1+NyRmAdEpCJskWDaAe2unEqsjawlAAOqELNUJ0AAABnA1hQQZBSius6K3NreA/RtsR4u34dZDFwAAAAEgAAAAEwRQIhAJ2HgHqjjtAi+nthslCM6K1TgvvfghuWWtARGcEQUA5/AiBxjaZktKTU5eBQPTtE3E2LDr/OrSnvfFtB0I5QHhk/1AAAAGcDWFBU8IFNDkfyOQqAgsShvYGf3eUPm/wAAAAIAAAAATBFAiEAiNjJsCv9IS49GQVzNwcvZSzWFB790JP2k2ewR0BMM20CIF/kMV2Plj5OqZ01ACJ2qgPVlfFngha+6ZJ0AKlnMONZAAAAZwNPUlRcWaWxObBTjLEG13WgIsrZjdFLWgAAABIAAAABMEUCIQDR4nL27U3BqOblE40kQGXfK/BdqlvKJ+WmQTvRujigAwIgbWaAHYZZkigyLK9kchvGQOgmQQbPP54eywwZ8IdBgREAAABnA1hSTLJHVL55KBVT3BrcFg3fXNm3Q2GkAAAACQAAAAEwRQIhALR+0fVuysZvx/Tjqkd0UNaDO2VNJaSETMf6VKPT+OhCAiAvZ1SOAEfYY4KcDleBnQic24HBj3KIEKCzIVvjnyQOmwAAAGYDWFJJkoeu/lEEfvQ/aGEvgLrBd0WyOuwAAAAIAAAAATBEAiAdcBG02bWcgOrALwqCsOK+dK8j9HUn3iRuXkoUxKjRXQIgMZUL/vPgFY3QHW8mCmIH7/VEvDjcSdKCexhkIp3ytgsAAABnBFhSUEPUylwq/x7vsL6p6eqxb4jbKZDBgwAAAAgAAAABMEQCIDRmpDxPCsXj87d3CkXVFh9SYhoNBcy5ayvpY8jsZonqAiABWt3aHkKtLw5bHUxKI4BKqUkopzQo17gMtpNEEmksEQAAAGoHWFJQQkVBUpT8WTTPWXDpRKZ96AbutaS0k8bmAAAAEgAAAAEwRAIgJV6ENtq5kz9zMOvb1VU8MUKqhJUzY+fs0/940wtkB68CIDJM9NFkHNLQXXiRsn0j8HwwDSbEywxBbCGATOLv8EpQAAAAagdYUlBCVUxMJ8G6T4W43BwVAVeBZiOmzoC38YcAAAASAAAAATBEAiBegyK5mfUy28MbIgAJmVZdcLdUju40l+aOhVtnhBLF8wIgP61a2u3nM7Bi8DggdS8pIEuMqZ+VyLNBVEU46h5tfbAAAABsCFhSUEhFREdFVbVNj7FkDRMh1RZFkOewILpD3vIAAAASAAAAATBFAiEA9Zj6vkYY3QeUexmFZzgTEisLbfm8NRhz4OQCyR1RcQkCIFCDJ+udgXciHKKdJ3ape0kB1HSm3ASgPQyc4t6/70+1AAAAaQVYUlVORWn6D+4iGtEQErqw/bRdRE09LOccAAAAEgAAAAEwRQIhAKTv9cz6ImJoWVz+LzMaOvxtsO6fxDRJTBQFdgdS8BfJAiAIm+ArwDaAEtPiGDuk6ccXig/85YIIuoQ1N/3CwZ9ncQAAAGcDWFNDD1E/+0km/4LX9goFBpBHrKKVxBMAAAASAAAAATBFAiEA1jUdYfU75KhMaptQIoIEW9Bh6hrlJ8Rcg31mzhOa/wgCIAGSGlPED8dbuX/4JceKKJffv8YyVV1bibvHo1SSFDvlAAAAaARYU0dEcOjec85TjaK+7TXRQYf2lZqOypYAAAAGAAAAATBFAiEA6Gz/ZzRx2+TI+dxQdPQCHp1EfZuPTvEJPRGwNY29nssCIFdM3YMMJopSWAijcek5F8ZBOPw8T/91PR8TGmqG8fcCAAAAaAV4U0hJQrSoEmGxa5KvC598SoPx6IUTLYHkAAAAEgAAAAEwRAIgANnNALFeLI6geS3Lh3K4JGi1LawosTvblCHgdgNq8MwCIG3mH24N6EWqxjct3iXt09SY1sQRodHK9vWstLA2I2mYAAAAZwNTSUd3d3d3d2l8/uz4RqdjJtp5zGBlFwAAABIAAAABMEUCIQD+T1yzGDJKgaiKcYCb0X3dAuN7MPUWNkTLfztVp2vJCQIgbyRa4GAjVYlzN8aEe6TumYgpBxhg080shsuDLhPK6oMAAABnA1hTVJE4OhXDkcFCuABF2LRzDBw3rAN4AAAACQAAAAEwRQIhAKNhfA60/auOqMHUtIK7/OjlMNFGqFyWyrLng5PJYlLUAiBhKiCsbQnlDCs1CqPGT1Klhv2aZq0A5WLDaNgM0DjdMQAAAGcDWFNQmwbUjgUp7PBZBf9S3UJuvsDqMBEAAAASAAAAATBFAiEA3ZCAT5gMYO5ONoxXiMYG14aMv9jEl+a/cvKUrXNDzrMCIDXTmrNIb0UhXFEiCBirWinWsAACx+oo5PxK/Spou/DcAAAAZgJYVEvhDaR6B3Fq8orRmfvgIFAb3devAAAAEgAAAAEwRQIhAMzLbVniOFOEkLKtljwjAeueOOmhyQ7z16njpsK7hif+AiBqFs24lprtIYHbyaKUmHD39erOQVUq4DPkB9nhrTitDwAAAGcDWFRL+WRZMjAwE3cDSDtG/VmnHXEr8KoAAAAGAAAAATBFAiEA9bC3zDtOrTcFEBAqOBtipiJ642T94dvTvgC9dGFN9tYCIGiYoTy3VQzrHWPQjCyohgxpOfqaHPCyqP0O6oBhL/+RAAAAZgNYVFgYIhJv7ttMfWHuzb42gv5h6ROD1gAAABIAAAABMEQCIDT//DYiMYYOr0EWISYd/5JnwClYbQX8Gi8Hlp0Yo87mAiA1vzL5WM37qhFGBcjTa2GxFtASPPHjIhiodGh92V6K7wAAAGYDWFRLfz7c3RgNvkgZvZj+6JKbXO2zresAAAASAAAAATBEAiA9e4fltSmW628n2HCBKuI9Q3j/Ds0ktsCBUHj0FKyKLgIgPfJ9Iebf8f0b17GQ9dHkxDH6LE8AaUJFj23kTW+VurcAAABrB1hUWkJFQVK8QdBSh0mN7FgSlWDea9G41OOsHQAAABIAAAABMEUCIQCgbb3syCOLIBz6F2derZVyIK63iUvCkFIHMZCzzjlYuQIgA4Ycm6tsijwXTQ+xB1IZ1jW7Pvbx95dLXwDzwhJdDHEAAABqB1hUWkJVTEyK8XpjlsjzFfa228aqaGyF+bPlVAAAABIAAAABMEQCIAaLEklJfhC0VLAY2TAUaiBa+XKoWauR14cwJIA6OIhuAiBJFSkx0Y8hJuycQ3IKKZVmQ6F0mrxLX1OZle3jM4dGWwAAAGkFWFVTRFCh98nG0Z4tC/IHKcsL8DM4qQvtmwAAABIAAAABMEUCIQCAJF1m5S6kcHrUhyaoNfFjUEDWYJYQ23VPA1OSGAnfowIgK6HKRgtNPOJSYvZr11tsF/4yM5UtKzKD1A/x4GIvs4QAAABoBFhWSVhLrjgLXXYtVD1CYzG4Q3kmRDrp7AAAABIAAAABMEUCIQC4cNr7wGvUTPKyj9Wmsc+P+4h37XuGV3KMURcVWUBV3wIgDZouZfmP/wC4R82cf6NIrPRJobMNkP83s/iEyQA2qZgAAABmA1hZT1Upb2n0DqbSDkeFM8Faawi2VOdYAAAAEgAAAAEwRAIgFF1a9/tiYJCwmYZfX8ERcMylFRA0fNuhRAB1XtBP6+cCIBw2HuD76Ge+NPjymRjQoWJSi8+2WD5EAzf5xQYXiXjYAAAAZgNYWVphhnnfnvzRlpS7HaqNAHGOrPoogwAAABIAAAABMEQCIFUXewRCVabBxRm4WhNwwnatwmw2llTRsBecrvOyz4bHAiBtwbxs3ei7ylHokrKP3xATN/PGDIJuphyv2xHuCOA7tgAAAGcDWUNPPQKT8G2vQxG0glZDMNV8jbbBCJMAAAAIAAAAATBFAiEAi0BSw5K1Q6d8sGVsF324VE4pTlqCCruWhly/zgC2N0UCIG9LrXjAhZdg8xS9KkwLJJhSNk6H2BkQb6BtRFVqMfXpAAAAZgNZS1qHBHmG6OSWHBHS7c2UKF46EzHZewAAABIAAAABMEQCIHj/zKbUOOIq4pdUETbm1SNuWDhypHl3Qyl6JbgOIQKtAiB77smOc6Kb3Vi+OW6eoMxkMdwNVlxp8vShFKnCxrfybQAAAGcDWUFNCqz77GokdWwg1BkU8sq6gXwNhSEAAAASAAAAATBFAiEA198m1tnfPlFEoaPvMR8ONv7asMMrFc82T5io49tZ/a0CIHfxrDBJw7aDijSK2T+DY9WceczFru9PKPlY1ipjLjQSAAAAZgNZQU0OIpjjszkOO5RaVFb79Z7MP1XaFgAAABIAAAABMEQCIElW971qlNmpwHT5GlylSyoOlRQJ3bueKz4YAT7TkKLGAiBEXpx4BIysEK3msth1Ap9ombzou8gjMerBL54jO8EaMwAAAGgFWUFNdjKrqMrGhmuDrk7sl90H7SVCgvatigAAABgAAAABMEQCIHk2ROoVk14guvXGxTxCSRng+YhxETjTXWp+GZg5zKewAiBzKTfFiKM2Uv1izhrGI61Ih0b24uxtZGta5M0wSpspHQAAAGYDWU5OG8fB3grG70/ew1wFMDDZDPVMfpoAAAASAAAAATBEAiArXl5PXOCjmB0gzxJjCJb1J6i+jUUwmymTPWw3gxQTPgIgNYp5EeVWanyglBo7KQbvX/krq+/oCawL2Q5inS2PnF4AAABnA1lBUCRTku585zbsagkItn3F0KIYIwAFAAAAEgAAAAEwRQIhALccLPgdrFRofQb3WL90n4y4eyDFa5oyEH/FOxhVxBMwAiBHew/lqrdAD4d/H6xuyrz+NwO9AbvYMUPIut7psi0s0QAAAGcDWUFYsdyRJMOVwel3c6uFXWboefBTookAAAASAAAAATBFAiEAhjC10k7UJQVkXgvF2x3NkCu8QxcK3/nSKl2lQ99+Z6UCICu4M2E3tx62+dacc2bTKwh7L+HjOWawX3EUSKdYVTmwAAAAaQVZQVhJUwraGQyBuBRUjdwvatxKaJznwf5zAAAAEgAAAAEwRQIhAMoUBDoODauwSztcQe3mHKq1RYsNqc8FN3qxzDmYphw5AiAPRz1A/V7V+FcvsktmlhXF6eCCZ33jl1LH1SE6BtBblQAAAGcDWURSN1cjK1XmDaSoeTGDrAMM/OTDhl0AAAASAAAAATBFAiEA6U3Hh5WbMwdn/iO/8FjsGHhrJfoQJoiizFU683RWqBUCIH5JWWuHqUTO1P00eCNfvohSSHHXpbOlr63bIYPTZRrrAAAAZgNZRUFAuS/ON876A7r3YD55E8HTTdGk7AAAAAgAAAABMEQCICO4/Sad+vZl86uGSRrHyu1m5gZNv/bUY5fRU0kIctwGAiBzbD1ZnWJBSAvb9ZBksw8LGV3IPKDOEX3fMaz6utVWIAAAAGgFWU1GMjAWviHAjrJ5Uyc2CGKeQ5dVbFYdJgAAAAgAAAABMEQCIAHNrqiGTFJiB1qHn+aNsNqzDEdU2PoQz4emGK3rHJs1AiAwcHPkjInGkaAylctYGkBwwDigYbLXqKnZuCrOTHqP7gAAAGYDWUY0OKzvrTOLhwNz+4yBD+cFVp4cciUAAAASAAAAATBEAiAEoTyBG95m7tcOsCSv9duEzAGXZubVTvsW2m2OyoOZ9AIgQReWPJW+UE9KqsiD3RnOqYkEZhaRBO/McC3c55WGTqoAAABrB3l2Qk9PU1SdQJoKASz7qbFfbUs2rFekaWarmgAAABIAAAABMEUCIQDMzkjyCbVnQNdz0MLH84CgOsMgCcI2FGx/A1kGZgPxlgIgUqHhQj8LPfTt402TkKwz2++tEHwCTlpCQVkmlQa40qkAAABnBHl5eXldvPM9jC6XbGtWAkmHjm8UkbyiXAAAABIAAAABMEQCIDD/cWQdCIs4Ozo9mCsoWG9qzGTEx0qjMQX1gugGb7HnAiA1qi5LPvxGw4vkRmPzTlHuGzLL+08I9LSuFKc6N8sevgAAAGkFY3lEQUmOWVRw7XSbhcb3Zp3oPq4wTC7GjwAAAAgAAAABMEUCIQCl4AjpSLid46sOcTzbc9KdYMsksWb2DHPS3ESgCqFOKAIgQB+wxEhDn86AgsE8kLKx81EEyrhRbys7BOTgVQEGEKoAAABnBHlEQUms1D5ifmQ1XxhhzsbTpmiLMab5UgAAABIAAAABMEQCIB506AH3VOXWGxaG8BFFETcDKs+8E1X/bKmqhxcOcpdsAiAgy64llj72DNeEpxSGFcjI/afZLtb0MJANvkLgZ4Ui2gAAAGcEWUVUSbS+vTT22q/YCPc94NECNakvu2w9AAAAEgAAAAEwRAIgPHv94Wq/pQxaVgcMwsPUTKXl6zYsv1HeLk0sYdCtlM4CICQrwyMFC/axY0GyUotr5DJFl9VgzWol/MZi1CJ8YnP7AAAAaARZRUZJzygroLyR0qpud1vP2Q2mt5EvGxoAAAASAAAAATBFAiEA/dLLT6w35hl+NtJYmJOcnaYf67xxQfDvkvKvN0p06FoCIF6Vv+do7fQkpzMsGU3YC0WOV/W0pEv6WDqyRAUnVaDcAAAAZgNZRkkLxSnADGQBrvbSIL6MbqFmf2rZPgAAABIAAAABMEQCIDWf4RD+2yTrBsu6lQF2nc9OBCxHXi1dnl6xT+hsH61SAiAo0Cp/hh8fHhzw48amG/k/q+2fY/gSsLrksFKVT5sZogAAAGgEWUZCMlnntdub4L3Sb6BI054B/uRWq2dOAAAAEgAAAAEwRQIhAPJtrG4QXt8Nywdwtr3/HItCKpRqrl5Yeh/8OBqIuJu2AiB/WvKYAoqQnAl7ZaWjTcYO7TSKM5FIYXuz5NM+6zVI6QAAAGcDWUZD6O0IpYF3fxEmVOKN5QfhFhPaA3kAAAASAAAAATBFAiEAvZzjgUYgLMsFrDu6LiEEQVIAXDdS/mUMcfQSjwwClEoCIF9P6arjBowhombV0AWoCpUptrTceYDmymaDD6Crl4g2AAAAZwRZRkRUE3jsk6srB7paDq7xnPNUoz9kuf0AAAASAAAAATBEAiAyJRm9NtvgVBJGNIrG2hQkHiFdn/Hg5wVGPWetXj9OMQIgZJZuzKPX8FdXYpn9NTHqTnhvk1LHQawiAiFSnJfvTn4AAABoBVlGSUVDLm4VLSkFO2M35DS8m+F1BBcPilsAAAAIAAAAATBEAiAypnfdqZZURWf6xbcAyrRZCqyrC2M3+XEl2lWgbcYwVwIgO3xWVLyYWEBwvMxwmZSxcvZ1zIuIF20+q6YRUw5gk/sAAABpBVllRmlNSzTAy+7ycfiV0znF92Mi1xpgeCsAAAASAAAAATBFAiEAnpclLTY25yniqMBXI9HmG3PTihDF1TVmNqP72nmuT/QCICexr9pLgBLcGe48LwS0En65GicMZRX78wv9iOJbFCCtAAAAZwNZRk491mcyETr5mBqGHPSJQxUzrrozuAAAABIAAAABMEUCIQDZ4a4Fc81FtSXWRCZbZetQTZSDyOl6jskeGCzM0TA7NQIgHemfj5BGDJ5+oKjbmfwkdRTNRvS61jkAXgRNz0KAfaUAAABoBFlGUEkF0nzdI+Ispj5/nHxtG3nt6cT89QAAABIAAAABMEUCIQD5E5YVek454Qs7d/+paqlvwvKzovrEPXWTRmQldhEF7gIgOjoRgZbBf3vQ0HCFwDn9E9PrchgXdTzH4lhgJq8/eQAAAABmA1lGUJbWLNzRzEnLbumchny4gSvqhrn6AAAAEgAAAAEwRAIgSaHOtrtWnIFA2chNjzHVj82rDsSDkDtpyB9NMjGr9/kCIAVcNUHSdHC5enFGGlKDiqvrQa3YUxslwcNur5xPcEXxAAAAaARZRlJNvmhcXgaGbPuUpCQuPfjy+j58K3MAAAASAAAAATBFAiEA6F1UqNLu5lSGAuOBQ/U7AZLxe4EKR8KK58MIcQNanfsCICwl/2pYBJMAdumLikXhD20udW5cMqp2qM7KBYwtJ2MLAAAAaARZRklWUZCD/FOfIxMcO3BGmSWEWSdy0SoAAAASAAAAATBFAiEAs00A+O43YDmSs/J/ggITfqsNITFUiNFZl+XBi4QQGZwCIFsKWpfAzlwojcKCk7zzL8OAs5thtePtWtD9Hn/B9dhDAAAAaAVZRlVFTAnfalypNr5F9a5Fx+WMm0YCAR/NAAAAEgAAAAEwRAIgKij260sPiQt9D4/AqkrITPiFaI2k6mKEpYAOM8UwTiwCIB2rrXeyc20Teyg3WsEXGhHw3x2Cb7yZSj9SCV2ZrtetAAAAZgJZR9gR5IXLSrH61WIz3kRk+10cnz6ZAAAAEgAAAAEwRQIhAMNkkgqsQUQnpmSaBrCD63OmDJso2FddPcMviibFcRs5AiB9VcQCornA0O7sMsBNAmSNfh/BX4gaZEa8KHlQ/rBjRwAAAGcEWUhGSVoUP3i7ZilP83xHtRZFhEdbkyurAAAAEgAAAAEwRAIgSEskQDSvMuTwIKDqH051ME5UdaZ6JD9KxB+w4sES1ZQCIBcE2RCtYWNxke9yolUgYtDd88e4WlZAr+sfGhJFrvxoAAAAaAV5TGFuZNBlgyQHTWJJpRh2Q4kW98QjB1RRAAAAEgAAAAEwRAIgLVbSHR7BSYfKD9Lp48Kfcom2EF4ly2oLXp8QpEIkD0YCIGqcRPf+8Y33ij/WZZY9TEqbaU3jVy1wEPwujNRxD7vHAAAAZwNZTEGbpguphBOmDbTGUdSv5ck3u9gESwAAABIAAAABMEUCIQDPD0Lnm9HQfTGQX59th3VNlRCK2Pyuql5+83zHW+uA4gIgfp9WIzy98G+PwXF3VfhCWqN0HCmtgXDy1ln/K+53axAAAABoBFlTS0acZk8gwKAKSUnf/KdnSMAnVMh1qgAAABIAAAABMEUCIQCGlw/kUJ/uWRARLQoznTm45OnR02Fc80GsO4FjQdDnVAIgHrY5bfPQDNtwe/werUdJHltJmm+0uedKI1xpvhWL/eQAAABpBmN5VVNEVEh1nyIO2YPbUfp6jA0qq4885BZqAAAACAAAAAEwRAIgQ2r/yobiG7JrdcA4c3ixnTuN2vJOeqvxS+XfhLc3sCACIGHDuMA0yiz/UbE8YYmllfxmpG/MhwjoLZwmGhjUrNkNAAAAagZjeVVTREN26y/iizaz7pfzra4MaWBu7bKjfAAAAAgAAAABMEUCIQDANVdttMPUMwpG+I296jUcVHeL9ZX0YX+Drm/WIPjEygIgCV424lx83SoggYa1fWjfS+iMhB39k5vPkB1dbwHFvOgAAABoBFlTRUPuqa54fzpiAHLROyzcjKv/ucCrlgAAABIAAAABMEUCIQCappanlePBGSK4dR9OmMFBQaTX98bFRHHFbsswolCDHQIgVeiwdjohQx3VbKXQMa2/fN0Rdoyj+qMFcsVP5151CHwAAABnA1lFRZIhBfrYFT9Ra8+4KfVtwJeg4dcFAAAAEgAAAAEwRQIhAJCMc6FKG0gL+lndR6oHZCKNKEw0H29YZcEP1O+W2hHDAiADmJVm12Cr2uNk3zNWkUN20u69+xr5VfieNpMhDaT7SAAAAGYDRkFNnSQ2S5cnCWGylIc0r+jViDLv1DoAAAASAAAAATBEAiA1lmeXDxuUlQ8X9/Yzbqc4u326BvIyvndMgKNNib14OAIgQLohopVGKati+vInZ5xuolC5Uz9KizQyszm4tvAbYw0AAABmA1lFTHgVvaZiBQ2EcYuYhzUhjP/TL3XqAAAAEgAAAAEwRAIgIlPHUuseQbmMt+3uQphxCpd5m5HzI1f3FHGJoEFoRDsCIEeTIVW1fuSk3QtU4lxJrVRyTr5pqDibW6X+3sWQI1LoAAAAZwRZRUxERoqzsfY6HBSzYbw2fDzJIndYjaEAAAASAAAAATBEAiBlV7dyMuRCbBTdnt7s6tCbqYbw71ipmP5XRm3Kv0AE4gIgN8VllNInizMpp0Sp09zc2BPTql5sWTd2wnA5GEXe1tgAAABqB1lGQVJNRVJ7D2b6XPXMKCgMHnBRr4geBleTYgAAABIAAAABMEQCIAt37V9Akr0fXKXtoCpw8t6U9xSOIsWhMa2iYhjB63Z3AiBsH+DwidMuECmHDIK7zkB0zs/y9AEP/+ObugSF8SP3xwAAAGgFWUZBUk310P76q3SdixTCfw3mDMbp5/hI0QAAABIAAAABMEQCIAH8QeKuzHrShxO461RJrPTtk8zAkDNHdiFe0DWPoE+2AiA2ee11nL7jw3U8kAcy0jHQG5jmt7phSeOkU23Pqe381gAAAGkGWUZCRVRBie5Yr0hxtHTDAAGYLD10OckzyDgAAAASAAAAATBEAiAWyLDDqMkx9oC9vNU4djP7dJyrvz8rcslDKz5BDDhTaQIgSZ48HVoPeZ/k563jjbl37XUWufcATIiqY6kbwhGjYLsAAABpBVlGQlRD/wNNEjU4Z/xCKPSuPmic1tyq0SAAAAASAAAAATBFAiEAyFoB7AK/eWSyNShDIKnrvCDfirDu24fScOnF7xJWEeoCIFWXRPKY56hbdKnkXME201WrhfuOEsJEQRlDmI3I+3MGAAAAZgNZRkPG/36sRkyZ/w4a2Lz9CrDOvgjJowAAABIAAAABMEQCIB/+Z2WLOlmELvQhQ6s8E1gmkeeak84Lo+SoRJRvQnjwAiBi3QZCsW2KvkIe+o6tM7NWmUyUWZkVH1uggmnsBR6MGQAAAGoGWWYtREFJ9M09P9qNf9bFpQAgPjhkCnC/lXcAAAASAAAAATBFAiEAwmIrRO43QIkt16AEXqofHxIevcOzDLiLyWOpuXyltVoCIDHdV6FnRoND4jgaKRrrL4TMDnOKUrTnk7eQ/mVFDD7+AAAAZwNZRkRPTw73l4c3zpKL/zlVKRYbROJ62QAAABIAAAABMEUCIQC00V4K3361PFEzFaYwBtxa7npNSe1WMr7HYZQakvgJhwIgWM+WfsTrIBJ5TlOPawdvLj8bQ6ohETLnadZfP+LDNHIAAABoBVlGRE9ULmU57cO3bx4htx0hRSf6uodfcPMAAAASAAAAATBEAiAHzd/7wVGHq91HfYI9OQhduo910/vnRTp6kxFHP7S/XgIgb9cBobPkTlohQIw/iO/JvKe0nBbGwpBilkjYdI7vi7UAAABmA1lGRTOBHU7byu0QpoUlTrXTxOQ5hSDSAAAAEgAAAAEwRAIgEea4ewLroCKThOEmsdLbrtPZF9e8FD11bk3jK3Mw2d0CIGgMBdJRIOPpu8yWnvPp9E4JbVSc6UwXtF4LbHTwaOjHAAAAaARZRkVELb0zC8m386giqRc6tSFyvd3KzioAAAAIAAAAATBFAiEA/mdvRiFU0Ykwp2kqUnFBjNlZUBvuoZtpxXQc/9X29yECIBmAPdp2WpDMDLHuGaWnV/k01j9ZaPWwBWARnfKLsah+AAAAaARZRkVUwVHKZNZupE7kvp1Hw85+AxsvzLcAAAASAAAAATBFAiEA9rz/kIE432mI5pekfVfE3oAAR2PlJqpbMrNwMwJo9xACIDSFUtzelnJRv2AALrzNFWrqfWEDBornF9U+X4sVA3/nAAAAZwNZRkaL5qYVj2uKGf5gVpx1fRblRsIpbQAAABIAAAABMEUCIQC4wK9MicsRi1PP41CawxwU8wrwLeEtmP5W2WbCJPDeyQIgddY3C6Ths+8V0JB5w7k3KVb6ogayeG6J3VxAfsNgYUcAAABnBFlGRkPqAE6Po3AbjljkG3jVCZbg9xdsvQAAABIAAAABMEQCIA6FVSBWYGwNCNMXXDJznIFOpJ42WIRMVrO7qZAI2mcZAiAtSA/LjQ1ca6NQGHSG+C6goX1JuiMobyeNgHgCT9Et1gAAAGgEWUZGSc7h08OgImfjfms3MGD3nV17nhZpAAAAEgAAAAEwRQIhALUwrdA+zrjHpxCcfDcJvDPlXGW5qQZJlzssYq3uffWHAiBaG1uwualSPxSOosNjoKEjmuPmZ28UUegvmkPy1gjvmwAAAGkFWUZGSUlsS4XKsgwTr3J2YCXw4X4P5VilUwAAABIAAAABMEUCIQDtkTJIcHdoyVpOEjrjzBa1kerUfd6MqR8ZF78E1OXCoQIgPlnEgpFhpZFBuDZIxaG/Bu0oS9M1xqPCbzoAe/zHeiUAAABnBFlGRlOQ1wLwcdKvMwMpQxN60KtCgHBYFwAAABIAAAABMEQCIBvV8iPtK1TWnuMTPZZk8jD2TLQEY864yacaYdoZFJvVAiBCVDx28UyydQHEIJ4tfcMRAui6aQkzC4qIJfPuhx2b9wAAAGcEWUZJMwmEO5E3/Fk1t/ODIVL5B0210tHuAAAAEgAAAAEwRAIgbtRsJoZKjzDMlKENf4CUHkXUR/bKcz1teHSZR67GeF8CICzzc7eheQbeCPgBXrkDieZ/6ygHD0RK3crnYFQuBn/oAAAAaQVZRklDR5CA6SKWoXaIOqsdfRt+ULwFWwyqAAAAEgAAAAEwRQIhAM8i+hQ4VPeyesSNIpT9xNM2C11azzO68uXxGW7/B/bCAiAe7LekspfwVjB1f5bbcZ4freCZYyIsXREQibtQ8sk+3AAAAGcEWUZJTS4vMka2xlzMQjnJ7lVuwUOn5d4sAAAAEgAAAAEwRAIgYwc1o6KmADbvQyY44gqvkIowM8Ee70BnfXAZ2RjmJXoCIH+S6FLL3l2b9ftl52ELIW1ThDgwKpe2r7/JjNSn3dX9AAAAZwRZRklQuXglMvpwYqb3PfHOcddcDhYEbrwAAAAIAAAAATBEAiAI0Ap/DvifWZHQacv2nH/wk/1rfy+YaCoxPhAOFXCfnQIgTyMK0/iZzgF+M2yAImPokxUQ4xCJff2BF1Dy/T1b6RwAAABoBXl2WUZJ2yXKcDGB50hKFV3WErBvV+Er5fAAAAASAAAAATBEAiA8oT3cX1MjwolBmhweQRq+uLxwMGryzWQ8W1cQg+bCgQIgKRyN6G4+wKdlIAYiKDk1rmRzCuPIbZbIi/xa7jBjtYYAAABoBFlGSUHXeOT1RQ7eRyif74dKN7edt3xM8QAAABIAAAABMEUCIQDP6RlePLX/ZzpCOOK8UonnKQDmun9TqH1oTqWhVTJXxgIgF8A3POXhUBTTaLwAwKlqeG0dYWaP8H3BvKKHwonLTDMAAABnBFlGSUIDgp9WdfO1HQ+MKnRBenV2JazyLwAAABIAAAABMEQCIEwi2n+GKnbhWZs3RMgPNX+pTf4L4bP5yiFLk/o0SbtgAiBq2ZboW7ZI+BqGJCc9C9Gark/pZl6M+QsyXWKt9Qf8AwAAAGgEWUZJQkdjLakifjIu2ln552kerMZDCsh8AAAAEgAAAAEwRQIhANR6daX51O1dpt4EQ7NmkHq0bWQ7EeWpHUwfrT70t6gjAiAkHSKmX/HgzIOMcSe4qlsVXwnVbQZ7k2qYurG79tHfnAAAAGcEWUZJRGEmZCS5BNZc6ylFoUE6wyIYUYfVAAAAEgAAAAEwRAIgV3hgGwYR9zXgxFIDR6ZGsz9EKl0zaBN03IOh35xv5FcCIB5LHl1mRVSasZxCeFEnLkIjUgqqBNqgIYsReeo68aIvAAAAaARZRklJodDiFaI9cDCEL8Z85YKmr6PMq4MAAAASAAAAATBFAiEAmGZibgmVm+x7hz4QUTInEvuWi7nhbajmh3LeJvYgGOoCIEBLF4297KwkDAxFlUjfZtkLzEIXlBmfe+oWQ06k/WMhAAAAaQVZRklJR++LqMuob4GzEI9gGG/OnIG1CW1cAAAAEgAAAAEwRQIhANvCbVekxe5nOx9UDJD3pc0XluEeDzgwF5XPpXpex1vMAiAYTgBziu/PyJnmfOnH8OjVuLhUUQaMhMSwVgtGxT5vNgAAAGsHWUZJS0lOR19/oaCulLXda7a9Fwi1868BtXkIAAAAEgAAAAEwRQIhAKS1G5/ledzg7YzfxNaqUJFG5heoWv2M+P9Ro0XGxgmeAiA4mRoLp5N7B0vw6ag/4l2RpMLAnZ2xoMqoOA131fnSzQAAAGcEWUxBQkVMudCEW7SihGL5jCGk+v0WzrJfAAAAEgAAAAEwRAIgE73AvvHvsJ/+fxPGKi26wTThAdgytkyqmlJzVh07DysCIFGJRr8mNgHsaf5RE36ceh8M8SFyNecOl6V28na8FWwmAAAAaQVZZmlsZM7COH4E+YFb8SZw2/bPA7uibfJfAAAAEgAAAAEwRQIhALuMZE4rrlXHjb57Tz6QzU3O0bG7xSz9JaQ0rnPBj0NuAiAMxOxeJlC7lifFUwH5V9hCAWeppP/9BgwI/yJMVZ7LWwAAAGYDWUZPrAyNpKR0jY2CGglz0AsVeqeMRz0AAAASAAAAATBEAiAKdgA803l5HQXYxKXY5j65wa9u0gXG0Wz0zAvfCXPIlQIgURBMo0vEzJ/sdvNvsqhh+Gq/n4BEjnOZ3FaX5hj9Gb8AAABnBFlGSVOGllqGU54kRvnnJjTO/KeYPMIagQAAABIAAAABMEQCIH2ZE1/dcg5T7HmBTyOxSbaXqtzmwwWhjDWZYoo7RDdRAiAckfOy/U4903+5w6PMOOL2onr3Wbc6LPEJ32j8rGs8ogAAAGkFWUZJVkXT6GldK+8GHqs4te9SbA9xQQgRnAAAABIAAAABMEUCIQCfafA+0ZIHw7D5/AFSuo93Pd7EYKAeyzUTlm02MA+n4wIgGPee+HxmKA5A4zdEIfJYQKjUMicQ/2H64YG9cGynlIAAAABoBFlGSVik93kHSFDTILVVPJ21/GqKsVvTSgAAABIAAAABMEUCIQDqik2tUnR0GfusWqy+7EQWM9Q5LLG6okdgnkEqH/ZnhQIgfr3aOoQVXnWMBgCotyfLhiQOxOW/ogVVzr3msfvdo4wAAABmA1lGTCjLfoQe6XlHqGsG+kCQyEUfZMC+AAAAEgAAAAEwRAIgMDzWluKBWzZf96bcm1vEYjOxmzFIZFHfpFtvHHLet/0CIDg7YQogj5imkVLQ9V9zKgsRf3q5kntsg0ekvvBGyylcAAAAaARzWUZMgoLfIjrEAtBLIJfRb3WK9PcOfbAAAAASAAAAATBFAiEAuqHDUzIpF1zDX8mVoLMq6mnyWyhOgEyLYxuE5XzXEjUCIHIrqArylCxGc4gu2eIgBrsN7jWLpQq3CAHPJC7QFE2pAAAAaARZRk1CevrB2HjGakcmPc5Xl2w3GuLnSIIAAAASAAAAATBFAiEA9Ur029xyC6BSt76IswHvXuTlJ4l3wHr4t5zN3S0ow6wCIAV9vsik53MccGDrXCxFg7pxUrga4SjDgqqT2owN7+1rAAAAaARZRk1T/vO+9xpeuX4JcDkDh3b9lnrlsQYAAAASAAAAATBFAiEA2RwOZ27k2hybeDuWRs9HvE9uIm1xbQCV54KYsMH1jIYCIGsrOGwyZAn3Zy8l0KNJWwNItzBdDOw1MUWUFCFyvDiwAAAAZwRZRk9TzSVFaOv4jwiOQPRW254XcxJDyyUAAAASAAAAATBEAiBjYr++4S7u7Vi4NtILpcPrMioAG4ACd23ZLe3uYVrE2wIgXs0yTe3dk3qC8MzhUNEzciDfot38yPie0RQR0zfNzpkAAABoBFlGT1hwbLnnQcv+4ArVs/WsyL1E0WRKdAAAAAYAAAABMEUCIQDuQmLcHavRjG33IQEN3nS1/1r+WzMHL7aKa2R//raDbAIgZgGA6qDWQTBAv3X5CuMq3a52A5HGFU6zJf6MGZfuqnQAAABoBVlGUFJPD9xTEzM1M8wMAMInkr/3OD0wVfIAAAASAAAAATBEAiAvN0BsEoAuMi0V0F3ju1N9uxsMP9GE3hpEWQQVpdXijwIgOHWPwptRIQn6hVfgc2cJb7mB8/5t1DF8loJbfGlQkz4AAABnBFlGUkJdGxAZ0K+l5swEe554CB1EzFefxAAAABIAAAABMEQCIBC2Ymp/wPrT875jKtovpWhfkLFWzazWDYpTGjOE/RAWAiAW3uocy5xziMPv0UXqwDy04YXH231lbZJ/Y4Kz0+YzbwAAAGgEWUZTSR328bt0VOXkujvKiC0xSPv5tWl6AAAAEgAAAAEwRQIhAOavU0meN/MKLHAgQNxrplcrC/MZMgQfpOg9kN4/wGoqAiAaR0NXIeDVuyiBASa0GESP4CNcQvERI7981qmdFrOv+AAAAGcEWUZURZTzGsiWyYI9gc+cLJP+zu1JIyGPAAAAEgAAAAEwRAIgDTx1+6TU+pqu2lh7mtDDkb2UHyBJq15Zi3MEZIGu1hECIEKz4KVR/wjo+nAEXIOSgNQVDxUbVk96QsfUSMkeJbJYAAAAZwNZRlZF8kuu7yaLttY67lEpAV1pcCvN+gAAABIAAAABMEUCIQCHsxywQKtK4EqdKOwzuH5DTfQ2LUP3BXc8vGzKmM9HNgIgLJCcyoKgzWYHCBAd4i/Sr+yQE7KO48A/M3hoLK/j8C4AAABmA1lGWPVak7YT0XK4bCujmBqEna4q7N4vAAAAEgAAAAEwRAIgPf9+yTsJ7lFH6kBlXhfbjgVsisXNPFeAZG5NKg8SxbsCIHksDZ/FjIUZXFRlrWv3AyZ82agtGUM4sDdns/SSsqiRAAAAaARZRUVEyieW+fYdx7I4qrBDlx5JxhZN83UAAAASAAAAATBFAiEAyKAQaGH8hUxDUOyGw+RNk6Lg1qHRMKP9Sae55Fg6TuMCIEefU8JQ+Peow2PJt8xC+U8ZJnnSk0gudq1lck6Vx4F6AAAAZwRZSTEyA+S9zmERBCiTM/NcgXdViwTMmf8AAAASAAAAATBEAiBfMHm+tATr5c+eCmbTgXtMzT5He9LFFgSx9eu2IWDIxwIgBVB26oCS5E+hno6xnHtDvEqocSxLQNIurW4b77gY9tAAAABmA1lMRNywHMRkI4OW4hOm/dkz42eW6v+fAAAAEgAAAAEwRAIgMXhdedAOOrs5b9lW2ZwrlX/eKQmdAu4qSfucJ7kLLKwCIE3/7KGtGTezQrS3/w0VYTorMZNYFrzBKzu7SjbA5Ak2AAAAaQZZSUVMRFjlLVPIyapyVfjC+p9wk/6nGS0pMwAAABIAAAABMEQCIHAvRQS/aZgHc14gdV+Phf1FB232+RLiy4bwb4FxmHiNAiBYbCEhwFA+OVRxIrVroLuK4Gn6rUFR/TzsbdqiX+QBSAAAAGcDWUxE+UtcVlHIiNkoQ5q2UUuTlE7ub0gAAAASAAAAATBFAiEAjxzSivkJrAPJV0LPFZX1Ju+mwjMtSGQGsvK1AcHgTsICID6fxxzKWHv6ggi0e/hfpX7CzIxdZGoHpZXGJjK0rMYvAAAAZwNZTER/kn+YQXcyPErEnmsdOY5AzRp49gAAAAIAAAABMEUCIQC74oZrBiBGwvrgl7b0PEE1YOfjC4IBf6F5CTa7Aob/vAIgWBBwSBUQyMjEDFh/LFL43w4Ga/1Cy2OePoO1z2zilSEAAABpBllEQkoyMUt/tEjfkcjtlzSU+MjE8S2vOoUhAAAACAAAAAEwRAIgThY9ulNeYVlH/R72FQphgYbyU5PgDBgkr51+JuPoK3oCIG9QK+zGl7Q+ReWUV4DjLZbQcjVOEnd2cHx/Olt1U3B3AAAAagdZRVRISjIxy+QwknNw6VtLEM/HAsYBfser78MAAAASAAAAATBEAiAIlbbDuTzLwljdjc46sw//axjq0pLtFjo5Rfo7vu0lqQIgba0TZef5okYQXTwKoDrFq/DdPlPqErmtm6CAVL8/7GoAAABnBFlGS0FAhmktUyYrK+CxOQnYBPBJH/bsPgAAABIAAAABMEQCIA/kxAkJFnXbC3C04ihf4lm+HKDslreM288/M62895LsAiBiP2rEQrELwAv8EkY8sIYRylgqXcGShQGG+hhCjSL6cwAAAGcDWUZUJrMDin/BCzbEJoRqkIbvhzKNpwIAAAASAAAAATBFAiEAtN+AdUgmbLayxZXvHqtGPSzKnAYiWYslw2q9e2VaJsQCIECvdJikBBOf/N0OZbC5RBU7b4atbZtfBfdcftiFmQCuAAAAZgNZR0cl+Ah+rRc7c9bouEMpmJqO6hbPcwAAABIAAAABMEQCIBP1GUzfLKY6tCQ7g+06CRaLbjZJYCqiCCdjbGjMyxRCAiAu1Tp0nhQEkb8x1OVE4mCWSxbo3hWNePpJgzj9824NFwAAAGgFWUlFTESothz/UlZHWKIE+EHmNiZb68jbmwAAABIAAAABMEQCIGE5o7t6KnIqLatH0Rnkqyc2Yb/c64yAKqe05rJBTk/DAiALHuD2hmvulZBdsXR91NIVGa9ltoaRh0ajL7KAK1TYXAAAAGcEU0FGRRqmHBludoBfy+OU6gDk/87ST8RpAAAAEgAAAAEwRAIgLCcVlyjLg/fhnYT+6AxGEyIlOnCdGq/486Lzyg3KewECIBNRLFUy7enO6Bab4d3h7fHmUG3aoJw7Gur1WLuH4UT7AAAAZwNZREYw3LoEBQBM8SQEV5Phkzx5ivnmagAAABIAAAABMEUCIQCzf/6cO0udsIvHtEsaSFayo5pO0Hsz/QgV7g2HGfIx4wIgW/dwQ6NGZwcOFiKhAzs/H7uxD2k0PjYDculI51/Yx/4AAABoBFlMRFmIyyU9TIyrjN95SKklHbhaE2aeIwAAABIAAAABMEUCIQCa3MLiwFHd7bOOIM54h233R8bUsvKKMUTEgWb3bf3T7AIgL0EwblC7sJSsgR26j2EHRIaYSnGoNy8Z3n+kqpCvn6AAAABnA1dBUvSoHBiBbJsKuY+sUbNty2Ow5Y/eAAAAEgAAAAEwRQIhAI2Zy/tQrr2FFxQioYTp/rb1mvAIa7WykbcTdYKdGYylAiAq8bq8Z4+ukjjAByusp1uFWJfhZVEfeT9sFeM0nLf5mgAAAGgEWU1BWAYvkEgFUTeXkfvi7XTB/mmCGzDTAAAAEgAAAAEwRQIhALQW1gw/0VqE8YzXfHIkbiecpgOb3hJ0b+jwI03jKIF0AiAndWyB7OTv0V5pXuCJL3IVcGPbeVnUKgKQSAwe9rRUVgAAAGgEWU1FTtDFl5j5htMzVUaIzWZwM9RpwjmOAAAAEgAAAAEwRQIhAIg6u/jvz8pX3owGdkrrHnngyoUkxLftl6JC20yIls5nAiAvI/gn28/coNRQC8HPnC/TXjhoGKH5nF/Irjz+pkI+2QAAAGgEWU1QTLe6hGFmTeUmo65EGJcn38doYlkCAAAACQAAAAEwRQIhAM+0hloZcQieUfdyHTz3WUtsGMOLWjoH1jOGUitA4OWAAiBUUHOkhBSNle4a9/ApLnqu9z78MtXn0b1JT8wwAGQ7pQAAAGYDWU9U6/TKUxn0BmAu7/aNoWJh8SFgEbUAAAASAAAAATBEAiAjqifkbrnp3RiEcItUCRXBZc7YDxkjTW6ryoONhulR+gIgZ2nIACG/Pjm1nll+kBm16g4w15lUWA5y/nB4eXgNWeIAAABmA1lPVJ+XiqQlFIzdkiPrF1RGqHe4Zyf/AAAABgAAAAEwRAIgWpsO/cR+grAm6Ys+WOVJrY1i/09XuYHIuxefSv/YUwACIFcHOB1M3YeAWsjyfJlMeZiWsrf4mUpamImYg8lCOCkAAAAAZwNZb2/HWW8/yXrmA+HX/6Yebvt7alm+0gAAABIAAAABMEUCIQCKV87XZwZ8QbOBfBcyCXVYQdLsMo6BjmKOqM9wG9FhUAIgTw2RKZhWyPPBfPfjYIjri7RYehOORVbQX24PDQSySdoAAABnA1lOS4fACBer417UwJPlkEP65IgjjS90AAAAEgAAAAEwRQIhALHOm5KOwk2jBAsBTAovhcMJXmwHT72vvF5HgphD+Pl8AiBSYms/qYZP/HiQhUyQObuNqWMFPVCWgfuuQFiza1dMnQAAAGcDWU9LBfzHLPtBUKuuQVyIX3pDP/UjKW8AAAASAAAAATBFAiEAoqjp1PXuDJhlnr08ua9eF4fINv1boZ22PjIO/1erQ0MCID+9/KZWZeGqbHqfKBmEpfGzYDUwF3k4QSkMt/VWCOZ7AAAAZwNZTEMh1WeKYt/mOkcGJGnrsvrCgX2IMgAAAAgAAAABMEUCIQCntzhB0sZ7UBQg6X+yLTqGczwuH+cZtwNBXPhUsJ1afgIgeSRB27HbeS5K+evtm7XvtG4qu6BmqYCqv4rwBo5HX6sAAABnA1lPUK4equP2J6rKQ0EnZENxtnsYREBRAAAACAAAAAEwRQIhAK0pbkvfXIDj3kVBYqX0YXpGu79x4DvCZPz11zHRh0X1AiBdDsBPPHBzQx88sop8wseL8ZDdwc+bDuSly3bssd+SvAAAAGcDWVRBXtwaJm6LLF6AhtNzcl3waQr34+oAAAASAAAAATBFAiEAlwEgGSEcoJKSl2jIZiw15dXarGBK9f6HQuduSWrFSwMCIESx/LNrQtBsYLA1bRbhDjMkpp+5iVnfrnzCqXjEdnRwAAAAZwNZT1U0NkvuEWB7GWPWa8pmX96T/KZmqAAAABIAAAABMEUCIQCSFkLqwp7bBCfao3M+DR7QM19at/YDIwt2s3KwxW/figIgSvH5hclg6S68w0XAJ+ExeazXW9FZ4XcHmKlww63G+KEAAABoBFlPVUM9NxQT3VSJ86BMB8DCzjacIJhs6wAAAAoAAAABMEUCIQDQWVTBD79Ykg2yEjLt5+v1TIAD9Y0Y9MFca389AQ8wYgIgU8Pzs0DTBsd6zR6dNJjiu6pHCgWWvmKU/4G0yC/pbdMAAABmA1lGUtaUCh/9nzsCXR8QVavP2ffNqB75AAAAEgAAAAEwRAIgDbZGGCUkqnUu7od/T71YSSNai82zMg3BY/r4BzquKd4CIBOHJ2Y9dgFlkvp5nrxxUvTkKPF6pPz8d8hspO39dAeGAAAAaAVZT1lPV8vq7GmUMYV/2003rdu9wg4TLUkDAAAAEgAAAAEwRAIgUeWLxpV5bfmrXjKXwyeVkbCdZ6y8fkcXk7dVOdNJf+ECIAdgimHlXIQGskkXqf/st2q7DuG9jGY7GWI0LSGRdVyuAAAAZwR5UExUQOdwUlRJSn5h1bfIbaUCJd3D2q4AAAASAAAAATBEAiBcdu75laiR90pBUv7sPMFCA5YPOHB9H+C6RQRsfzg+bAIgTHKHwc97ZWlZKnNBgqxlgQ5zxB1LGBb/Se6G3xRghicAAABoBXlSaXNlYFHBNUzMUbTVYeQ7AnNd6uZHaLgAAAASAAAAATBEAiBJ2AehybIf//B/Kz0RhnRQ285AQNBgj3TM5X8CW4uiBwIgVd3Axqc13T1+53Mjj0kMPDW+kU/f/4tV+QDA6uua8foAAABmA1lTUtmpR3iZdLrZvnfkXCsycXSpxZ1xAAAAEgAAAAEwRAIgEziq+V8pDOEKD07RlNGgTFnlIJto2hiQ1mf1j95rcbUCICStp1t24n6Rv78Lce1r0YKKy3uJr6Q9LBw8E/qaiaDQAAAAaARZVEhPSM8OLsoi6uCtM/7haly25iIHqKsAAAASAAAAATBFAiEA/G36KmrHa5RYKrR3J8TugmHtMRLS9Inyh3B2zfsrBPMCICPHJdiQ5OZNnbmK8bauMqZs4WthkW+27R8ctesXfOWlAAAAaQV5VFNMQVMio1Vvl5ziGAsw5ompQ2/dyxAhAAAAEgAAAAEwRQIhAPkWyyRbd4pajc7JqV830c+CJ0jHt2KBmDSTo2TRXFIuAiArTd2KZRebqujPfdKBHLCD21XrPiMQrFJYOw2Z/4/L7AAAAGYDWUNDN+EWAYT33SnwC3jAUL8TIkeAsLAAAAAIAAAAATBEAiAF/TAM+VgUs8Qy78AAXS3dLZ/4h0ZpN7TL5kNj2qKoYgIgVekQthAJAoc3H4dWl/LkpUozObHwREJipbTsoZMW9RoAAABpBVlVQU5HiuAFyXqmhTR4x/NzsdD3KqkogKcAAAASAAAAATBFAiEA6haZXZ0QHVBazzX5XJ+ecQTph54DYTE6NZJI9WDjwLICIC0/aIVYDOOjVKsLaHCOPiO9DnzNuUdYgkUyHvdhOzDHAAAAZwNZVUlMEL0ZaIuQZmX71TQV8nnzS0Ts5wAAABIAAAABMEUCIQC2U0dBvr8Oo5dBY2GzYGvqdQXdJB6pTzxm3wmsGaMtIAIgeJlU1Ryaijpu8yf2k95fO3SMjQcyc8XQkoz/NFfoAOcAAABnBFlVS0lat5PjYHDw+sko6hWCawwbxTZRGQAAAAgAAAABMEQCIFqH+GStFMi3/7lLil50Ahd03ictlk8F/B3Ou7SftbF/AiBdrbrcolB51aAvVW7eOqBWGilDzhxX8hNv+Fri+ulZAQAAAGcEWVVNSSWFl0PtCGFmVhG4HkdoLoibSDE7AAAABAAAAAEwRAIgXT9rlF7e2R/7a7Ga658F7p/bdDrZAYShZMZWu8H1TdkCIF3jptDCiaBFRZOZDIk5H40OGTpuRZ5tVu3PsCv2Pw/cAAAAaARZVU5PS09ShuD5PpZSkrkiuc0Wd1EvEiIAAAASAAAAATBFAiEAzfmN4p1IPtnXuxZXgbIOhKTbDwgPhyUhpmrTCA/4S+0CIDhIV6s2WpVcDKgrr5VRT7bFhT1CKgwekHYawGmuOPfKAAAAZwNZVVDZoSzeA6hugASWRphY3oWB06U1PQAAABIAAAABMEUCIQCW9wZhU/YTKBKB7sDRgMPIDKk9//bRjMzrpIRWLbvqOAIgT6XUmg+MNMp9J12HwEVD7xL2+sySkcLxQzQWT//w0MgAAABpBVlVUElFDzO7IKKCp2Scezr/ZE8ISpNI6TMAAAASAAAAATBFAiEA/heX6zN3PuKhP8mf6EXlbCR+fQbqLu5v3RSYHOPQSH8CIBteuwnZKQN5imHsPU9udVExJnHBCEb4bn0RWvU2mxlhAAAAZwNZVlPsaB8o9FYcKpU0eZqjjg02qDz0eAAAABIAAAABMEUCIQCPV91fBGJB0Exwltd/fY51pbZ0Vx9HYV2C5pYEp5hCZQIgZG+djMTWm75YH+9wPgmf4fZEFoECB46CJCEjPo6H1EsAAABoBFlZRkmvILRMHGUdHSnPuRbuKgYwuCjregAAABIAAAABMEUCIQCP0WoN5I2lvZ8tdtHho8agEp4Joxo4WzXUe9bEcksqGwIgLbygpIILzrmrcjJdWPWa0SHVtD5Adjize2gwfVXN680AAABoBFpVU0TFbCt+cbVNOKq21S6UoEy/qPYE+gAAAAYAAAABMEUCIQCkmvW1zthg4VtN6cLxRXq3pgcIU6nVvmDI+tLlvldKMgIgfyJBYDajJoQ3wyGFhC5qx9xWReCOH+fEiB6vNygt8PwAAABnA1pBUGeBoPhMfp6EbcuEqaW9STMwZ7EEAAAAEgAAAAEwRQIhAPfz1r7kAuSkShobUv9QgpmbtcdMuD7l5vV0B2qk3QUCAiBxxOVZQwDfZtF9XYRK/1XruD+0UUmseLphqeGVRirI2AAAAGcDWkJLKSV5CIecV5LxuyVEmnIJIFQ03D8AAAASAAAAATBFAiEAlS730rR7b6sg3uADLeqkP8TgXGf5aMPy9TjS110oKC8CIE+OnZvlhwdQzulxKul/TskKer8k63Me11VM+9baP4oDAAAAZQJaQr0HkzMun7hEpSogWiM+8npbNLknAAAAEgAAAAEwRAIgDhpVTO2ahYmI6geIEC4luLqC+UAu+M6KBh62rqk/eAACIDSOTR3JegnObaTF/r0P7kKoN6pu2o6BGXv5goUguVwRAAAAaQVaQ05PWIuDEW4F9yJVThCJuYUOcx7iDdaSAAAAEgAAAAEwRQIhAI67XJl7rPjSFdp2o1TVkfol3YuKpyE5QlFTv7mnvNM6AiA4wZsRHAC1REWmpU/DH1iaVin2ReXrSFnow1IXogD/2QAAAGcEWkNPTkmS2KxA5VNQMwECq/LevtiGTnugAAAAEgAAAAEwRAIgXmqdw49Bmxe2wkYsE+L4CV5vyElgdKPtWrvH/eTl/xgCIBbxSJXSdNe0k8ZzXdfEKQd2eHb+OHNCPcodO81AErVoAAAAZwNaQ08gCOMFe9c04QrRPJ6uRf8TKrwXIgAAAAgAAAABMEUCIQDmp6s0ELYH4dNHmQMa9u1TqOLvkXA2VkgQlG4zxpeDMwIgVbomgngmnPme/0FgQ+PEyUzDsWTBiKnqT4z6dBW8iBUAAABnBFpERVhRUJVuCCx0jKg3pd+gp8EMpGl/nAAAABIAAAABMEQCIFOhbIKMS67UTqWOr2KIb7KyNqDVEnbT9enVFmVdiimGAiBH7wcV6DR5QF5VmtFDrgSEF3QMn03yoOnr5npIt9faEQAAAGcDWkxXUxnobw5BoG5J6zcEa4wR14vK1owAAAASAAAAATBFAiEAnXJMzphaAyDPoaXiz7evghOpsvaCEU/gbelQNH3EtAUCIARltjzc3Ndam4bvqRdT1KWr8O705snEPnqmi2tFA5aGAAAAZgNaQ1jFLDJjMenOQfBEhNO15WSBWAKIBAAAABIAAAABMEQCIF5J4A73SULAr+48rm22Z0+v0FpZUpoxjPZK2rCt6DfBAiAK9eFFXWI4QplICbqz0JRH7WHswSBme+23LW0xeLk3MQAAAGkGQk9OU0FJ8P4ah6vxIJm3c1K9zBD1qHBnspAAAAASAAAAATBEAiAyj4YwvrHYtLjQOtaSzg34Dwvv0PYIz1kwCQkkAV1EEAIgZi2YrU0YjsDkcaTHF2PmNA1nsan6YNx0q9Kz1OTuv+0AAABnBFpFRlWx6RV8L9zFqFbI2ostibbDKzwSKQAAABIAAAABMEQCIBKEpiDXeQZax0avS9+OYbvmFpWYvo0adQQMudNpJhuXAiADvHH0GfWTqXh8q8ce05G9A976RELGuFUF7aCW9o0/rwAAAGYDWk5U6VmQglqrGn8K9Mxkj3ajvMmfJbIAAAASAAAAATBEAiBo4YKWAABhKyvT6CpJ038Q8sjz0MAcf8uiDbdeJBBg0AIgQrdp9seW5Xo+5BeByMLdBOvf4JFP7VXtBsZY3TA0M+4AAABnBFpFT07luCbKLKAvCcFyXpvZjZqIdMMFMgAAABIAAAABMEQCIEK14+kwXn2bk1sT/2fCBBrZAVAcPbDLo52DPplkGRm9AiAbROTGIQJl/sVl+U95/kS3whDtNlvOeAOqba+1MEPskgAAAGcDWkFJnRIzzEZ5XpQCn9qBqq3BRV1RDxUAAAASAAAAATBFAiEA65WYr2ut4Gvxd88iu27NTt/uwWSBCWmRDQp/ibqXkyQCIAPVy+NunzZh9wA3ziq+4lp+50FAXQzzK+4suNcAOe0rAAAAaARaRVJP8JOQEam7lcO3kfDLVGN37SaTpXQAAAASAAAAATBFAiEA0a5D8ihaHkgSIOr4Aj/YRRx8ebfw5CqROct8JlNI3e4CIEpthW3sN8rPTKU4wWn658YQckSfivTnojz1hmWTewa2AAAAZgNSRUkBGGTTcDVDngeNZGMHd+xRgTivBQAAABIAAAABMEQCIA7T8tLlZBmJp1TgJivQC2PKVQkoBnsK15hW07jbRZ7aAiA1QqkO1suRQvKuegdLjIeVwolfGpUj8U2rKQjplWLIuwAAAGcEelVTRHZBfmYN8+XJDANhZ0wZLaFSqAbkAAAAEgAAAAEwRAIgekd6Cu4vNqT51ELsPZJHIGp/NImNIXANIZjRRVffyDcCIFjE6ehIWk+DPeiNgeSW0ienI8cBXn5rqv+RqkeRtov+AAAAZgNaRUUu3wlNtp1tzUh/Gz25/r4u7A3UxQAAABIAAAABMEQCIBStt+jc5FLM4b5Kiu1W5kMZrHh7Z/vn6wHPhfuG+BR/AiAH5kLwQtWFPoMgMdoCaH6A4xZI2tiI5Rvb/kHpnFOBYgAAAGcDWlVUg/hzOIzRS4Op9H+r3jyYULXHRUgAAAASAAAAATBFAiEAuf2iSO0Q26l9dBFqvaQgaQEmECiebSOTmzQD8gPGyhICIFEO218qYb4xAYTujwzQnFIxokWsktTyjzSxCqYBgItvAAAAaARaRVNUdXcDvVssS7z94L4sCw58LzH89OkAAAASAAAAATBFAiEAha3KukPO3k+AaJfeliqHK66/TSABhb/XqvWsIRcB5t0CIGXuPX1uQhWd4hOM01DXQkW6IGdXpIyqcBjiHnwhArUOAAAAZwNaVVogLxh34dsRIMo+mpjF1QXn8DXCSQAAABIAAAABMEUCIQCoQADlZ4FeE3p+K/oinShJhI03IdVNqO9E1apBsfrBkQIgCUTZEIKpIQZ9SG+WTKyaXHYu5ikdUoxF2QtU+/eN52UAAABnA1pTVOOGsTntNxXKSxj9Umcb3Ooc3+SxAAAACAAAAAEwRQIhAJSUfyTPQleJQM8fhp9lu06ziG5vg+VEE6R1cIaZUCptAiAsNzG+wcm6uNUaOHPsL5mt7j7GMg9zr+MDUGbcgAMB8wAAAGgEWkVVU+fkJ5uA0xnt4oiYVRNaIgIbrwkHAAAAEgAAAAEwRQIhAL8K9Ed8pCv9lXDkXGo625wIFNXS+vQx9koMPEuopImDAiBeuJh6SOyTNfP3nE+aOi3EGmzoWeZ8vhLoDugcEdxEjQAAAGYDWlNDekHgUXpeyk/bx/vrpNTEe5/23GMAAAASAAAAATBEAiAhNJTo5eP6rQhFgEl4/QCbMHUzoNqQLrnTJWdKzs6WZAIgK9kEUyfei2HR9kwJFppJjiko+EcSH6xc/DRqW/n3rFgAAABmA1pVQ2tGieRRSVdpnt6y7pHJR/GOQ5gGAAAAEgAAAAEwRAIgXmURmS55aAUqr6t+HIyGqPTvyrpoj/HcymqLnBoVXUgCIC6vOssuZ3H037ZqCyH7/UZLrAM6E+Nzk2+lKGKnlVG8AAAAaQZ6SEVHSUODcBBhmusq4kFBYFr8j2ZXf2+y5wAAABIAAAABMEQCIBdVxuPnLALTRr1yrxtneAqn3Qytss4/74hR++6vUXsEAiBRWW1bK1EqRYZOI0BI5dRKpyvJSwviSX94XLFj8uDGZQAAAGYDWklHsmFyRtDGwAh/GHA9V2gxiZypTwEAAAASAAAAATBEAiADNcjxcsFHsZ+3cqglQ0cKxlM4wlVH2ahl2q8bXxgzOwIgVtWk2l9Y6xPg+4VWZz6BllS3/pr/ojFlqrs+qm26UGAAAABnBFpJR19769ImFU6GWVSodlD676j0hdNggQAAABIAAAABMEQCIGq1KBDTQRyANQ96+wFMuWGrCkLHV6uGCRnfE5DqgexPAiAaks5Doq+2f+tEalprxBA5DIU/nLKDh0JA5rXYzK9ilgAAAGgEWmlsZABmmdNKowE2BdRo0nVaL+WaFrErAAAAEgAAAAEwRQIhAJiH/O/1K+ljYlNvx4qmhJKjtEj91k/FgpR+icHtMji2AiAlTzarSJ11sOAXjQkqhXk7ijPbpGnMjqLT99NWwnJSTgAAAGYDWkxB/Ylx1ejhdAzi0KhAlfyk3nKdDBYAAAASAAAAATBEAiAx1qmvYTLmiqiDVU8ENZz3mzAq3KT+EOcJM9zgD0+ojAIgWaHIz+Tjq59IN+u9btGaQaYNhc1ZSn2WtV1gbKVtFvsAAABnA1pJTAX0pC4lHy1SuO0V6f7arPzvH60nAAAADAAAAAEwRQIhAJXZiUsolGP5z8usN+RTOGv4MlZCImq1Tvs2CeYGOgKzAiBxvlzKYzy0vt7jG8cBKsEM3VmHEsNqsBWqEmwqXkBbJAAAAGcDWmluAz4iOHD3ZmRPf3pLfcLpFXNwfQYAAAASAAAAATBFAiEA5xf31aCCNjWBAswx98LDq3Kpw6ZDn+UkdUj7++yqy0UCIGoLvHjY1a2UZmJ9Mzb2nbUIprWu5BFEfM1kcSNKTV2KAAAAaARaSU5DSqxGHIar+nHp0A2aLN6NdOThruoAAAASAAAAATBFAiEApdS5XEcA92mTzR3HwZXzv7u2TRUuntZ39LBvIGxeYosCIH3Uob6Wl3pgbQjt8W7g6aylkqIvIf4/0PESbve5y/ZxAAAAZwRaSU5Vxf3zVpr3Tzs+l+RqGHpiY1LS1QgAAAAJAAAAATBEAiBqU5kvDcWoPtAS3A4tKQm2rqFEdnyjlgFLkMlf6M9lEgIgOzZjGmvYdiST6y1jf1T9pPfKarvyuRPNm+b0POLSbCsAAABoBHppb3T7Is7UGxJn2kEfaMh59N79C9R5agAAABIAAAABMEUCIQD1g1xr59ZyS2vllYFyIK7HrvSBtVVbUux170/r4C7+ngIgPWWC6iA+DV0g0f+TIbSLRveZcnFkyJLb0pK0wSuaWzwAAABoBFpJUEOO+biY21Y9PGF1ws3fzlAnw2OA/AAAABIAAAABMEUCIQCTlY5ZiqfpSmX26BAz2omPVBsRmAuN5Srki353ZhqHgQIgMa/cp/drOLd9fr5OAuGblY2wxnOfzpr8h34bamYmZqwAAABnA1pNVKpgLeUzR1efhrmW0q3XS7b3lGKyAAAAEgAAAAEwRQIhAIqR7Lu65SFOJdcNBI3ENq2AzUFgj2Zg9Jd9QKzJoyzoAiAe1c6pRamP+Frl3PfNxgTGDOV2E3DkhYxJmJCM1LR0ywAAAGYDWklQqdKSfToEMJ4Ai2r24uKCrilS5/0AAAASAAAAATBEAiBa40VHCbkCB1RWqF5eB+OR/saQEEdHT+faxNHIHiQ9iwIgRvFz4aT5WRea7pfJBxr8Fo3s9QAb7PmBIF7fae9PN4kAAABnBFpJUFTt18lP17SXG5FtFQZ7xFS54brZgAAAABIAAAABMEQCIDTrgApeivQBK2pOBEihcLn2/2xwLOPxLuCo6fyNZP11AiBWont0X5XMeCwraznHot5yYxtTIUSrF6ziO5oP1qUZnAAAAGgEWklUSY3UIoYF5GdnGUH/tMrhXPeVnI2dAAAACAAAAAEwRQIhAIX2RT/kFnsnL37q3oaJ0qci8cXDWQc7ErStp96Ow/TPAiBUyprzS1kr1NnyJS37ffbU148SLg0x50f0OcYpeKuAWwAAAGcDWklY88CSyozW09TKAE3B0PH+jMq1NZkAAAASAAAAATBFAiEA2j2tfEzc7ht3q+rnmGe/n6rIAetQLoxqfZmO5X9hqxoCIHWnp1QFQ5puuo/Ig951TA09A/RZAX3LMW6EiZuLB23GAAAAaARaSkxUvDSYW000WuqTPVysGfOoa9H7OY8AAAASAAAAATBFAiEA8gNt0ZdCLDHXCFGPpV0c9qiyoFaXCQfGKQzxYIBEGncCIGrsgYV6zbQEHhLdiLXWmX7Ozv9DHNnL075CHjTjivc3AAAAaQVDSEFPU7U94DFgLNgl/r6fLu35Ys2Mw4BdAAAAEgAAAAEwRQIhAPJLn/E36bMtY1umedBoB3n0Bb/7o2eDqwNZBCkl3apjAiAGl2pNwqwU5AUI+3DQiuC9u5m2c2tN3adw3JUAHMi6VAAAAGYDWktQkJ400/YSTDJKyD3MqEt0OYpvoXMAAAASAAAAATBEAiAA+5ia/7Ubd/czrleqbzy7akf6CSx+D45o4dRhik4r/wIgPK+d10W9ODXQuWvmxviaoHuc3D3jO/RKHe2wVLkVZVgAAABmA1pLU+SBWuU7Ek5yY/CNzbu3V9Qe1ljGAAAAEgAAAAEwRAIgERKrM8sn7DlVtSHTF0oHUyxLFl67KHbZIqyGVXPNDCsCIATpK+sqMOhQAM6r9I2cPFI/VtYoLEL3obWvSXlXD2pSAAAAZgNaRFK9+mVTMHSwsj68GMcZC+efp0swwgAAABIAAAABMEQCIDwTezP2W8ji6gPa4GQeSUH5GTY7qf+0K3FTU7/LYTv1AiBk0+ldd03p90OG0ERmwRB6E73ovvpHiWF1WFakRiBfswAAAGcEekxPVKjnrXfGDubzC6xU4ufAYXvXtaA+AAAAEgAAAAEwRAIgZbEbXl8WxIQfgpFJBRoKcSUc8bznMAmg+8QUF531/wkCIAxDOCMLxuf1nJreeLKZexsXhSA8OGD6oTX9Iy1sLSgKAAAAZgNaTU5VT/x39CUan7PA41kKaiBfjU4GfQAAABIAAAABMEQCIATaA2Zp0bGjC8LxSEjqlV+mLVgrBQ9uBbvKE4oKYuJhAiBGhB2Ha3ALgTkrpSCsbcLQ5UPIDpinL8ijlXaKLhUwFAAAAGYDWkRDHPQCE1170n3J0hwDri2DdbxD6ewAAAASAAAAATBEAiA4T1sQRXfI39jiz4ILn2BB+1/USQH9ao10WLWgxiELmgIgO3X9VTibDGFn4UP5/+JGr6Gwo8/ZjvZqBU+JVyZY7hkAAABnA1pPTUI4LznnyfGt1fpfDG4kqmL1C+OzAAAAEgAAAAEwRQIhAO3Gm8Y4DlQ1Bqo7IFTzE107uYMzmZ8rPDg453qnpAuDAiBtALNRobCHHDfmxQFLhBNpnfskMR0tysuZW9Al4OBL+QAAAGYDWk9NUJGu1SrUIZaSVOSNKaodGAfhhwsAAAASAAAAATBEAiB3kPoCGzNK2ndG5o1PEGEX9OC0ec8mwjyPhGzvXJ8mLQIgIJaKboZTLNWS4yFBEPoluPqpp8K17+WAFSs24hXImnYAAABnBFpJTlXFDvRJFxpR++r9fFYrBktkccNsqgAAAAkAAAABMEQCIA8poauvukazLb28knNJP91UVvsR9M4HNs6oUPzS5vG4AiAQsLlFKj63bnZx5nyZklnu6ELimVOKXZYWD+QpSQhKpgAAAGcEWk9PVBNBoiV/p7dwQg73Bhb4iAVvkJJsAAAACQAAAAEwRAIgNdySuDeSItsV54lodot+Lh1uvqiGesj5NVwEO6ypG2gCIFyVG9YzWfNsG08ighZnK9ylmjB3iXBAVyLe0zGA7vdBAAAAZgNaT00aIx51U4qTHDlXhe9dGlWB7GIrDgAAABIAAAABMEQCIFPCLctmIZ5FLoOXKrKa3ApsTbriT6zC8fkedTZE9phsAiBkte0fRdY9UqLm5hjchpmEC4GI/TBpG+hVlY3fQievLQAAAGgEWk9SQdjj+zsI66mC8nVJiNcNV+3ABVrmAAAACQAAAAEwRQIhAOYInMKSfXHVmh4f5L84EOHF7yNR3lHMbyJPc6YZWRdaAiA5kCJ3c2yDjNASL0MWYrVna26aCdUP4ifP1LYihJYf1wAAAGcEWk9SVIJc1CAfiiu7GmlmjqxOX6cSgyc9AAAAEgAAAAEwRAIgBa25fLDETZj4xA0uGJEmqi0188p4677y/3MSHERmn/0CIEpFuGj2DrD8IgiWUtO1Ozn5Gh5wcm42EljV3lfqNgj4AAAAZwRaUEFZ7/6lcGfgKZn9zQu0XA8QcaKUctkAAAASAAAAATBEAiAmItcMGo7kAj//Fq65DyZ4NNvi313ksBqjyGWcHALPGgIgQQsr82LauJIyFLW9lzjCDq2sNntDHNCBOoFPZ6CUOpAAAABmA1pQUrW49WFv5C1c7KPofz/dvdj0ltdgAAAAEgAAAAEwRAIgfTRx5+c6ESCaYbWHmpYlefaEw1bAGcapajyNu3ZC1FkCIHzVtJQueGZaYm1edXu1kKDwRkZ7Y4jGzQkMI1j3TQBBAAAAZwRaQ09Sg/9XKhdXueRQjLCPE6ee0WLHVsQAAAAAAAAAATBEAiBUe3SC99o14OBcrFn0dPT5u2PybYwka1o5gcyl1FMHXwIgEFSrFzzh4aXiMT0vmpUv1PRZCXU74HFb0s60HIZalYIAAABlAlpU/jnmoyrNKveVXLPUBrorVckB8kcAAAASAAAAATBEAiBTSdve0/3pCKWbSYv8K5U8q9jgH7cM4XV1xX6tT4KzIgIgPjMm/zr/EvIFPbg+56Cklj1pJLrxs5zBxC5FyFDpxaQAAABnA1pUWOj5+pd+pYVZHZ85RoExjBZVJXf7AAAAEgAAAAEwRQIhAMRg74L/+1vMaS1S0pBtmEiQEmrno/0tQS2RQtSjmxwnAiAnYQZ013zrmLApzUzqLShE9/pC/GkB+rPpPWm1fdfQhAAAAGYDWkZMGf/9EkzZCJ4hAm0Q2pf4zWtEK/8AAAAIAAAAATBEAiA07Ns1ujINtLclWhYDCCsOmKJdjrMPfeUn93jeRsnllAIgbCM7fZxrFTZgF0uw20EM1m0VOtkL25wGXRMeJfvNhKIAAABmA1pVTeC5vNVL+Kcw6l0/H/zgiF6RGlAsAAAACAAAAAEwRAIgZ2/9FClyGYwdrCjMRAoYn/kkA3LzLZT9xJokL4zSYi0CIHOD5d1R1VbvYf3FUj2aYZ95XE9jTZrFFlV25FipP3O1AAAAZgNaTFCU2NsUgxwsCJQ3mFQsRQ3yhEkT5QAAABIAAAABMEQCICm7PfeTFjwrUK+d8JyCvjYHDsEdiM3muggnXkrvc4OzAiBW1DO6bGktnHLUfgTpj4iyEt8FC0DleqIeLLNKudQGhgAAAGcDWllO5l7nwDu7PJUM/UiVwkmJr6Iz7wEAAAASAAAAATBFAiEAtKM6VVmyz1dSq17Um9SgWQxS6IGdgPSSQzUv1LQPbm4CIBpOfiD1qUBH3segKDxSmu8i7oZYJn4QuF7f7uhYNUEZAAAAZwRaWVJPH2vYdm+KiqWPdEHI3TcJr6OlYgIAAAAIAAAAATBEAiB24doZm46BOGn0V6gcQrfp88CJeCPZanwNKKjJLzd9GgIgRhaHcG0qJgLa+cJxRUjFNAKumVYUtUhxAr/FEAUvCfEAAABnBFpVU0S/DzzLj6OFoocQb7oi5rtyL5TWhgAAAAYAAAABMEQCIGXUpz+wAynpc8jTs0Zjh8V0MJv4FY7BXvUhit5ePDMUAiAgCultdBwvOfJj+En+lSpI2jkAQwbfeVKXGOWP9zKRrgAAAGYDWllY+XS1+aycZjL+6LdsYbAkLOacg50AAAASAAAAATBEAiA2zVZRaZrpL2lnjkLjL3Nei62cScFs/IrbddGEKjBd6AIgHDPvAMo29k9wTei5uYH9ZEFthUIm15d+FdL+uolpVOIAAABnA1paWsdfFa2lgSGclUhcV44STfOYXkzgAAAAEgAAAAEwRQIhAJ90obUDdw5tJWJBiof1Y7Yd2jxWd2Q6ARWJGE+0iuTJAiAfw9HiK+HuGjPf+q01ngHOwOzW4/oQxX0i6mIxrEs09AAAAGkFWlpaVjKT7RQBcv8iba0ffzZQSJuNqgeufwAAABIAAAABMEUCIQDIxEkMNUbiHHbsa4+PmdP0IRyyBFKdf1q216l6ggBdywIgWgfScad5lcNey035TKVyPtdkiXC+R3RAY0dlLlzBmuA="});var $C=U((xW,eG)=>{eG.exports="AAAAaARMSU5LMmyXfm78hOUSu5ww924wwWDtBvsAAAASAAAABTBFAiEA4Tv72JQTDa/KHKg/Bd+URfHFwJ26O3h7COGOc0Efe3wCIFn0JBOrUEsUm5d2KFur5IYnnMKYR4AM1OubTQ63lgSqAAAAZwNEQUkAie0z7VF/WKBk0O9WyeidwB7pogAAABIAAAAFMEUCIQDAmnx20pdZq+tsl2SadWnBtYpRk0oR9lmaAJ15HPy/awIgbmHVUwwjh6I+KETZ6c3AbVxgd71O6dXCrrIGFQT5wKsAAABnA0ZBVbpivPyq/GYihTzKK+asfYRbwPLcAAAAEgAAAAUwRQIhALN8jdA4FOfghYXIGFTxuhYmUoqpexK4IwWd7q7aojXVAiBSGHOpfqU5EzVcGwVHOZoQi/KVtb5beqJ6c2jcbXO/mAAAAGcERk5DVP3wbB6z/9GV3FFfoShwCleEYPUEAAAAEgAAAAUwRAIgA9s8RYxfzK3D4cvIPSDMuQSjY07eRFiMivxCjEfGTRACIGWHsn55eSXxwzjI1aR1NqdHfMJnK7lGG5RD4JGyPk0RAAAAaARJQ0JUJEjcECIGGyK2DOCyQMucOGoQuPkAAAASAAAABTBFAiEArq69YdK19ayYoBlrAf0M3521+5bY/xade+odMMfEeKoCICIhvo0UrvjNz6bqxk7EIC/7VkCeYlxsPJ3/LG4naBtdAAAAaAVtVVNEQ8LR0EkqXJrHNeX6COuTdvhQIi6/AAAABgAAAAUwRAIgUMA1MINjfmfbX0NcP4ZVBTuV09aH5nwL3gFMdiTmvU0CIHn9T/JEUOJxh259fyvAO1Cz6Hoo7q5bZee2yNjVURmZAAAAaARVU0RDB4Zcboe59wJVN34CSs5mMMHqo38AAAAGAAAABTBFAiEA/en3E8uZl4ClBLjtox/gGVkwk12LCtg24YO1xWteNC0CICwVoNGtALDayuWIUkz02xRZNOEMi6DonaNm4Xk/cj9wAAAAaARXRVRItPvycRQ/T797kaXe0xgF5CsiCNYAAAASAAAABTBFAiEAxZsSmfNPIgGoFylw4MTQ0ciK4bguJ7pDlqNEycCdueYCIHcECs/ue/EyZGkcX8wkCmJdO1n0prQmkN7jQr8REQYG"});var eg=U((pW,aG)=>{aG.exports=""});var ag=U((TW,AG)=>{AG.exports="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"});var Ag=U((wW,fG)=>{fG.exports=""});var fg=U((RW,cG)=>{cG.exports="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"});var cg=U((SW,dG)=>{dG.exports=""});var dg=U((vW,bG)=>{bG.exports="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"});var bg=U((kW,lG)=>{lG.exports="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"});var lg=U((QW,rG)=>{rG.exports="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"});var rg=U((yW,nG)=>{nG.exports=""});var ng=U(M2=>{"use strict";var o0=M2&&M2.__importDefault||function(A){return A&&A.__esModule?A:{default:A}};M2.__esModule=!0;M2.signatures=M2.tokens=void 0;var tG=o0(UC()),uG=o0(NC()),iG=o0(OC()),oG=o0(GC()),sG=o0(PC()),EG=o0(VC()),BG=o0(LC()),hG=o0(JC()),CG=o0(HC()),gG=o0(ZC()),IG=o0(YC()),FG=o0(XC()),DG=o0(WC()),mG=o0(KC()),xG=o0(qC()),pG=o0(zC()),TG=o0(jC()),wG=o0(_C()),RG=o0($C()),SG=o0(eg()),vG=o0(ag()),kG=o0(Ag()),QG=o0(fg()),yG=o0(cg()),MG=o0(dg()),UG=o0(bg()),NG=o0(lg()),OG=o0(rg());M2.tokens={42161:tG.default,56:uG.default,25:iG.default,1:oG.default,5:sG.default,4:EG.default,3:BG.default,11155111:hG.default,250:CG.default,14:gG.default,1284:IG.default,10:FG.default,137:DG.default,19:mG.default};M2.signatures={42161:xG.default,56:pG.default,25:TG.default,1:wG.default,5:RG.default,4:SG.default,3:vG.default,11155111:kG.default,250:QG.default,14:yG.default,1284:MG.default,10:UG.default,137:NG.default,19:OG.default};M2.default={tokens:M2.tokens,signatures:M2.signatures}});var ig=U(C2=>{"use strict";var GG=C2&&C2.__awaiter||function(A,a,e,f){function c(d){return d instanceof e?d:new e(function(b){b(d)})}return new(e||(e=Promise))(function(d,b){function r(t){try{l(f.next(t))}catch(B){b(B)}}function n(t){try{l(f.throw(t))}catch(B){b(B)}}function l(t){t.done?d(t.value):c(t.value).then(r,n)}l((f=f.apply(A,a||[])).next())})},PG=C2&&C2.__generator||function(A,a){var e={label:0,sent:function(){if(d[0]&1)throw d[1];return d[1]},trys:[],ops:[]},f,c,d,b;return b={next:r(0),throw:r(1),return:r(2)},typeof Symbol=="function"&&(b[Symbol.iterator]=function(){return this}),b;function r(l){return function(t){return n([l,t])}}function n(l){if(f)throw new TypeError("Generator is already executing.");for(;e;)try{if(f=1,c&&(d=l[0]&2?c.return:l[0]?c.throw||((d=c.return)&&d.call(c),0):c.next)&&!(d=d.call(c,l[1])).done)return d;switch(c=0,d&&(l=[l[0]&2,d.value]),l[0]){case 0:case 1:d=l;break;case 4:return e.label++,{value:l[1],done:!1};case 5:e.label++,c=l[1],l=[0];continue;case 7:l=e.ops.pop(),e.trys.pop();continue;default:if(d=e.trys,!(d=d.length>0&&d[d.length-1])&&(l[0]===6||l[0]===2)){e=0;continue}if(l[0]===3&&(!d||l[1]>d[0]&&l[1]{"use strict";var og=g2&&g2.__awaiter||function(A,a,e,f){function c(d){return d instanceof e?d:new e(function(b){b(d)})}return new(e||(e=Promise))(function(d,b){function r(t){try{l(f.next(t))}catch(B){b(B)}}function n(t){try{l(f.throw(t))}catch(B){b(B)}}function l(t){t.done?d(t.value):c(t.value).then(r,n)}l((f=f.apply(A,a||[])).next())})},sg=g2&&g2.__generator||function(A,a){var e={label:0,sent:function(){if(d[0]&1)throw d[1];return d[1]},trys:[],ops:[]},f,c,d,b;return b={next:r(0),throw:r(1),return:r(2)},typeof Symbol=="function"&&(b[Symbol.iterator]=function(){return this}),b;function r(l){return function(t){return n([l,t])}}function n(l){if(f)throw new TypeError("Generator is already executing.");for(;e;)try{if(f=1,c&&(d=l[0]&2?c.return:l[0]?c.throw||((d=c.return)&&d.call(c),0):c.next)&&!(d=d.call(c,l[1])).done)return d;switch(c=0,d&&(l=[l[0]&2,d.value]),l[0]){case 0:case 1:d=l;break;case 4:return e.label++,{value:l[1],done:!1};case 5:e.label++,c=l[1],l=[0];continue;case 7:l=e.ops.pop(),e.trys.pop();continue;default:if(d=e.trys,!(d=d.length>0&&d[d.length-1])&&(l[0]===6||l[0]===2)){e=0;continue}if(l[0]===3&&(!d||l[1]>d[0]&&l[1]{"use strict";var El=WA&&WA.__awaiter||function(A,a,e,f){function c(d){return d instanceof e?d:new e(function(b){b(d)})}return new(e||(e=Promise))(function(d,b){function r(t){try{l(f.next(t))}catch(B){b(B)}}function n(t){try{l(f.throw(t))}catch(B){b(B)}}function l(t){t.done?d(t.value):c(t.value).then(r,n)}l((f=f.apply(A,a||[])).next())})},Bl=WA&&WA.__generator||function(A,a){var e={label:0,sent:function(){if(d[0]&1)throw d[1];return d[1]},trys:[],ops:[]},f,c,d,b;return b={next:r(0),throw:r(1),return:r(2)},typeof Symbol=="function"&&(b[Symbol.iterator]=function(){return this}),b;function r(l){return function(t){return n([l,t])}}function n(l){if(f)throw new TypeError("Generator is already executing.");for(;e;)try{if(f=1,c&&(d=l[0]&2?c.return:l[0]?c.throw||((d=c.return)&&d.call(c),0):c.next)&&!(d=d.call(c,l[1])).done)return d;switch(c=0,d&&(l=[l[0]&2,d.value]),l[0]){case 0:case 1:d=l;break;case 4:return e.label++,{value:l[1],done:!1};case 5:e.label++,c=l[1],l=[0];continue;case 7:l=e.ops.pop(),e.trys.pop();continue;default:if(d=e.trys,!(d=d.length>0&&d[d.length-1])&&(l[0]===6||l[0]===2)){e=0;continue}if(l[0]===3&&(!d||l[1]>d[0]&&l[1]=A.length&&(A=void 0),{value:A&&A[f++],done:!A}}};throw new TypeError(a?"Object is not iterable.":"Symbol.iterator is not defined.")};WA.__esModule=!0;var y1=lc(),jG=$8(),_G=MC(),gg=ig(),Ig=Cg(),Y3=O3(),Fg=function(A,a,e,f){return El(void 0,void 0,void 0,function(){var c,d,b,r;return Bl(this,function(n){switch(n.label){case 0:return c={nfts:[],erc20Tokens:[]},f.nft?[4,(0,Ig.getNFTInfo)(A,a,e)]:[3,2];case 1:d=n.sent(),d?((0,y1.log)("ethereum","loaded nft info for "+d.contractAddress+" ("+d.collectionName+")"),c.nfts.push(d.data)):(0,y1.log)("ethereum","couldn't load nft info for "+A),n.label=2;case 2:return f.token?[4,(0,gg.findERC20SignaturesInfo)(e,a)]:[3,4];case 3:b=n.sent(),r=(0,gg.byContractAddressAndChainId)(A,a,b),r?((0,y1.log)("ethereum","loaded erc20token info for "+r.contractAddress+" ("+r.ticker+")"),c.erc20Tokens.push(r.data.toString("hex"))):(0,y1.log)("ethereum","couldn't load erc20token info for "+A),n.label=4;case 4:return[2,c]}})})},$G=function(A,a,e,f,c,d){return El(void 0,void 0,void 0,function(){var b,r,n,l,t,B,x,p,w,y,N,Q,P,V,q,_,Z,de;return Bl(this,function(ce){switch(ce.label){case 0:return b={externalPlugin:[],plugin:[],nfts:[],erc20Tokens:[]},d.nft?[4,(0,Ig.loadNftPlugin)(A,a,f,c)]:[3,2];case 1:r=ce.sent(),r?b.plugin.push(r):(0,y1.log)("ethereum","no NFT plugin payload for selector "+a+" and address "+A),ce.label=2;case 2:return d.externalPlugins?[4,(0,_G.loadInfosForContractMethod)(A,a,f,c)]:[3,13];case 3:if(n=ce.sent(),!n)return[3,12];if(l=n.plugin,t=n.payload,B=n.signature,x=n.erc20OfInterest,p=n.abi,l&&((0,y1.log)("ethereum","found plugin for "+a),b.externalPlugin.push({payload:t,signature:B})),!(x&&x.length&&p))return[3,11];w=new jG.Interface(p),y=w.parseTransaction(e).args,ce.label=4;case 4:ce.trys.push([4,9,10,11]),N=zG(x),Q=N.next(),ce.label=5;case 5:return Q.done?[3,8]:(P=Q.value,V=P.split(".").reduce(function(H,k){return k==="-1"&&Array.isArray(H)?H[H.length-1]:H[k]},y),[4,Fg(V,f,c,{nft:!1,externalPlugins:!1,token:!0})]);case 6:q=ce.sent(),b=(0,Y3.mergeResolutions)(b,q),ce.label=7;case 7:return Q=N.next(),[3,5];case 8:return[3,11];case 9:return _=ce.sent(),Z={error:_},[3,11];case 10:try{Q&&!Q.done&&(de=N.return)&&de.call(N)}finally{if(Z)throw Z.error}return[7];case 11:return[3,13];case 12:(0,y1.log)("ethereum","no infos for selector "+a),ce.label=13;case 13:return[2,b]}})})},eP={resolveTransaction:function(A,a,e){return El(void 0,void 0,void 0,function(){var f,c,d,b,r,n,l,t,B;return Bl(this,function(x){switch(x.label){case 0:return f=Buffer.from(A,"hex"),c=(0,Y3.decodeTxInfo)(f),d=c.decodedTx,b=c.chainIdTruncated,r=d.to,n=d.data.length>=10&&d.data.substring(0,10),l={},t={},n?(B={token:e.erc20&&Y3.tokenSelectors.includes(n),nft:e.nft&&Y3.nftSelectors.includes(n),externalPlugins:e.externalPlugins},[4,$G(r,n,d,b,a,B)]):[3,3];case 1:return l=x.sent(),[4,Fg(r,b,a,B)];case 2:t=x.sent(),x.label=3;case 3:return[2,(0,Y3.mergeResolutions)(l,t)]}})})}};WA.default=eP});var Tg=U(Fa=>{"use strict";var aP=Fa&&Fa.__extends||function(){var A=function(a,e){return A=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(f,c){f.__proto__=c}||function(f,c){for(var d in c)Object.prototype.hasOwnProperty.call(c,d)&&(f[d]=c[d])},A(a,e)};return function(a,e){if(typeof e!="function"&&e!==null)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");A(a,e);function f(){this.constructor=a}a.prototype=e===null?Object.create(e):(f.prototype=e.prototype,new f)}}(),AP=Fa&&Fa.__values||function(A){var a=typeof Symbol=="function"&&Symbol.iterator,e=a&&A[a],f=0;if(e)return e.call(A);if(A&&typeof A.length=="number")return{next:function(){return A&&f>=A.length&&(A=void 0),{value:A&&A[f++],done:!A}}};throw new TypeError(a?"Object is not iterable.":"Symbol.iterator is not defined.")};Fa.__esModule=!0;Fa.serializeError=Fa.deserializeError=Fa.createCustomErrorClass=Fa.addCustomErrorDeserializer=void 0;var mg={},xg={},fP=function(A,a){xg[A]=a};Fa.addCustomErrorDeserializer=fP;var cP=function(A){var a=function(e){aP(f,e);function f(c,d,b){var r=e.call(this,c||A,b)||this;if(Object.setPrototypeOf(r,f.prototype),r.name=A,d)for(var n in d)r[n]=d[n];if(b&&dP(b)&&"cause"in b&&!("cause"in r)){var l=b.cause;r.cause=l,"stack"in l&&(r.stack=r.stack+` +CAUSE: `+l.stack)}return r}return f}(Error);return mg[A]=a,a};Fa.createCustomErrorClass=cP;function dP(A){return typeof A=="object"}var bP=function(A){if(A&&typeof A=="object"){try{if(typeof A.message=="string"){var a=JSON.parse(A.message);a.message&&a.name&&(A=a)}}catch{}var e=void 0;if(typeof A.name=="string"){var f=A.name,c=xg[f];if(c)e=c(A);else{var d=f==="Error"?Error:mg[f];d||(console.warn("deserializing an unknown class '"+f+"'"),d=(0,Fa.createCustomErrorClass)(f)),e=Object.create(d.prototype);try{for(var b in A)A.hasOwnProperty(b)&&(e[b]=A[b])}catch{}}}else typeof A.message=="string"&&(e=new Error(A.message));return e&&!e.stack&&Error.captureStackTrace&&Error.captureStackTrace(e,Fa.deserializeError),e}return new Error(String(A))};Fa.deserializeError=bP;var lP=function(A){return A&&(typeof A=="object"?pg(A,[]):typeof A=="function"?"[Function: ".concat(A.name||"anonymous","]"):A)};Fa.serializeError=lP;function pg(A,a){var e,f,c={};a.push(A);try{for(var d=AP(Object.keys(A)),b=d.next();!b.done;b=d.next()){var r=b.value,n=A[r];if(typeof n!="function"){if(!n||typeof n!="object"){c[r]=n;continue}if(a.indexOf(A[r])===-1){c[r]=pg(A[r],a.slice(0));continue}c[r]="[Circular]"}}}catch(l){e={error:l}}finally{try{b&&!b.done&&(f=d.return)&&f.call(d)}finally{if(e)throw e.error}}return typeof A.name=="string"&&(c.name=A.name),typeof A.message=="string"&&(c.message=A.message),typeof A.stack=="string"&&(c.stack=A.stack),c}});var X3=U(L=>{"use strict";var wg=L&&L.__extends||function(){var A=function(a,e){return A=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(f,c){f.__proto__=c}||function(f,c){for(var d in c)Object.prototype.hasOwnProperty.call(c,d)&&(f[d]=c[d])},A(a,e)};return function(a,e){if(typeof e!="function"&&e!==null)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");A(a,e);function f(){this.constructor=a}a.prototype=e===null?Object.create(e):(f.prototype=e.prototype,new f)}}();L.__esModule=!0;L.NoAddressesFound=L.NetworkDown=L.ManagerUninstallBTCDep=L.ManagerNotEnoughSpaceError=L.ManagerFirmwareNotEnoughSpaceError=L.ManagerDeviceLockedError=L.ManagerAppDepUninstallRequired=L.ManagerAppDepInstallRequired=L.ManagerAppRelyOnBTCError=L.ManagerAppAlreadyInstalledError=L.LedgerAPINotAvailable=L.LedgerAPIErrorWithMessage=L.LedgerAPIError=L.UnknownMCU=L.LatestMCUInstalledError=L.InvalidAddressBecauseDestinationIsAlsoSource=L.InvalidAddress=L.InvalidXRPTag=L.HardResetFail=L.FirmwareNotRecognized=L.FeeEstimationFailed=L.EthAppPleaseEnableContractData=L.EnpointConfigError=L.DeviceOnboardingStatePollingError=L.DeviceExtractOnboardingStateError=L.DisconnectedDeviceDuringOperation=L.DisconnectedDevice=L.LockedDeviceError=L.DeviceSocketNoBulkStatus=L.DeviceSocketFail=L.DeviceNameInvalid=L.DeviceHalted=L.DeviceInOSUExpected=L.DeviceOnDashboardUnexpected=L.DeviceOnDashboardExpected=L.DeviceNotGenuineError=L.DeviceGenuineSocketEarlyClose=L.DeviceAppVerifyNotSupported=L.CurrencyNotSupported=L.CashAddrNotSupported=L.CantOpenDevice=L.BtcUnmatchedApp=L.BluetoothRequired=L.AmountRequired=L.AccountNotSupported=L.AccountNameRequiredError=L.addCustomErrorDeserializer=L.createCustomErrorClass=L.deserializeError=L.serializeError=void 0;L.PairingFailed=L.SyncError=L.PendingOperation=L.DustLimit=L.FeeTooHigh=L.FeeRequired=L.FeeNotLoaded=L.CantScanQRCode=L.ETHAddressNonEIP=L.WrongAppForCurrency=L.WrongDeviceForAccount=L.WebsocketConnectionFailed=L.WebsocketConnectionError=L.DeviceShouldStayInApp=L.TransportWebUSBGestureRequired=L.TransportRaceCondition=L.TransportInterfaceNotAvailable=L.TransportOpenUserCancelled=L.UserRefusedOnDevice=L.UserRefusedAllowManager=L.UserRefusedFirmwareUpdate=L.UserRefusedAddress=L.UserRefusedDeviceNameChange=L.UpdateYourApp=L.UpdateIncorrectSig=L.UpdateIncorrectHash=L.UpdateFetchFileFail=L.UnavailableTezosOriginatedAccountSend=L.UnavailableTezosOriginatedAccountReceive=L.RecipientRequired=L.MCUNotGenuineToDashboard=L.UnexpectedBootloader=L.TimeoutTagged=L.RecommendUndelegation=L.RecommendSubAccountsToEmpty=L.PasswordIncorrectError=L.PasswordsDontMatchError=L.MaxFeeTooLow=L.PriorityFeeHigherThanMaxFee=L.PriorityFeeTooHigh=L.PriorityFeeTooLow=L.GasLessThanEstimate=L.NotSupportedLegacyAddress=L.NotEnoughGas=L.NoAccessToCamera=L.NotEnoughBalanceBecauseDestinationNotCreated=L.NotEnoughSpendableBalance=L.NotEnoughBalanceInParentAccount=L.NotEnoughBalanceToDelegate=L.NotEnoughBalance=void 0;L.TransportStatusError=L.getAltStatusMessage=L.StatusCodes=L.TransportError=L.HwTransportError=L.HwTransportErrorType=L.DBNotReset=L.DBWrongPassword=L.NoDBPathGiven=L.LanguageNotFound=L.FirmwareOrAppUpdateRequired=L.LedgerAPI5xx=L.LedgerAPI4xx=L.GenuineCheckFailed=void 0;var le=Tg();L.serializeError=le.serializeError;L.deserializeError=le.deserializeError;L.createCustomErrorClass=le.createCustomErrorClass;L.addCustomErrorDeserializer=le.addCustomErrorDeserializer;L.AccountNameRequiredError=(0,le.createCustomErrorClass)("AccountNameRequired");L.AccountNotSupported=(0,le.createCustomErrorClass)("AccountNotSupported");L.AmountRequired=(0,le.createCustomErrorClass)("AmountRequired");L.BluetoothRequired=(0,le.createCustomErrorClass)("BluetoothRequired");L.BtcUnmatchedApp=(0,le.createCustomErrorClass)("BtcUnmatchedApp");L.CantOpenDevice=(0,le.createCustomErrorClass)("CantOpenDevice");L.CashAddrNotSupported=(0,le.createCustomErrorClass)("CashAddrNotSupported");L.CurrencyNotSupported=(0,le.createCustomErrorClass)("CurrencyNotSupported");L.DeviceAppVerifyNotSupported=(0,le.createCustomErrorClass)("DeviceAppVerifyNotSupported");L.DeviceGenuineSocketEarlyClose=(0,le.createCustomErrorClass)("DeviceGenuineSocketEarlyClose");L.DeviceNotGenuineError=(0,le.createCustomErrorClass)("DeviceNotGenuine");L.DeviceOnDashboardExpected=(0,le.createCustomErrorClass)("DeviceOnDashboardExpected");L.DeviceOnDashboardUnexpected=(0,le.createCustomErrorClass)("DeviceOnDashboardUnexpected");L.DeviceInOSUExpected=(0,le.createCustomErrorClass)("DeviceInOSUExpected");L.DeviceHalted=(0,le.createCustomErrorClass)("DeviceHalted");L.DeviceNameInvalid=(0,le.createCustomErrorClass)("DeviceNameInvalid");L.DeviceSocketFail=(0,le.createCustomErrorClass)("DeviceSocketFail");L.DeviceSocketNoBulkStatus=(0,le.createCustomErrorClass)("DeviceSocketNoBulkStatus");L.LockedDeviceError=(0,le.createCustomErrorClass)("LockedDeviceError");L.DisconnectedDevice=(0,le.createCustomErrorClass)("DisconnectedDevice");L.DisconnectedDeviceDuringOperation=(0,le.createCustomErrorClass)("DisconnectedDeviceDuringOperation");L.DeviceExtractOnboardingStateError=(0,le.createCustomErrorClass)("DeviceExtractOnboardingStateError");L.DeviceOnboardingStatePollingError=(0,le.createCustomErrorClass)("DeviceOnboardingStatePollingError");L.EnpointConfigError=(0,le.createCustomErrorClass)("EnpointConfig");L.EthAppPleaseEnableContractData=(0,le.createCustomErrorClass)("EthAppPleaseEnableContractData");L.FeeEstimationFailed=(0,le.createCustomErrorClass)("FeeEstimationFailed");L.FirmwareNotRecognized=(0,le.createCustomErrorClass)("FirmwareNotRecognized");L.HardResetFail=(0,le.createCustomErrorClass)("HardResetFail");L.InvalidXRPTag=(0,le.createCustomErrorClass)("InvalidXRPTag");L.InvalidAddress=(0,le.createCustomErrorClass)("InvalidAddress");L.InvalidAddressBecauseDestinationIsAlsoSource=(0,le.createCustomErrorClass)("InvalidAddressBecauseDestinationIsAlsoSource");L.LatestMCUInstalledError=(0,le.createCustomErrorClass)("LatestMCUInstalledError");L.UnknownMCU=(0,le.createCustomErrorClass)("UnknownMCU");L.LedgerAPIError=(0,le.createCustomErrorClass)("LedgerAPIError");L.LedgerAPIErrorWithMessage=(0,le.createCustomErrorClass)("LedgerAPIErrorWithMessage");L.LedgerAPINotAvailable=(0,le.createCustomErrorClass)("LedgerAPINotAvailable");L.ManagerAppAlreadyInstalledError=(0,le.createCustomErrorClass)("ManagerAppAlreadyInstalled");L.ManagerAppRelyOnBTCError=(0,le.createCustomErrorClass)("ManagerAppRelyOnBTC");L.ManagerAppDepInstallRequired=(0,le.createCustomErrorClass)("ManagerAppDepInstallRequired");L.ManagerAppDepUninstallRequired=(0,le.createCustomErrorClass)("ManagerAppDepUninstallRequired");L.ManagerDeviceLockedError=(0,le.createCustomErrorClass)("ManagerDeviceLocked");L.ManagerFirmwareNotEnoughSpaceError=(0,le.createCustomErrorClass)("ManagerFirmwareNotEnoughSpace");L.ManagerNotEnoughSpaceError=(0,le.createCustomErrorClass)("ManagerNotEnoughSpace");L.ManagerUninstallBTCDep=(0,le.createCustomErrorClass)("ManagerUninstallBTCDep");L.NetworkDown=(0,le.createCustomErrorClass)("NetworkDown");L.NoAddressesFound=(0,le.createCustomErrorClass)("NoAddressesFound");L.NotEnoughBalance=(0,le.createCustomErrorClass)("NotEnoughBalance");L.NotEnoughBalanceToDelegate=(0,le.createCustomErrorClass)("NotEnoughBalanceToDelegate");L.NotEnoughBalanceInParentAccount=(0,le.createCustomErrorClass)("NotEnoughBalanceInParentAccount");L.NotEnoughSpendableBalance=(0,le.createCustomErrorClass)("NotEnoughSpendableBalance");L.NotEnoughBalanceBecauseDestinationNotCreated=(0,le.createCustomErrorClass)("NotEnoughBalanceBecauseDestinationNotCreated");L.NoAccessToCamera=(0,le.createCustomErrorClass)("NoAccessToCamera");L.NotEnoughGas=(0,le.createCustomErrorClass)("NotEnoughGas");L.NotSupportedLegacyAddress=(0,le.createCustomErrorClass)("NotSupportedLegacyAddress");L.GasLessThanEstimate=(0,le.createCustomErrorClass)("GasLessThanEstimate");L.PriorityFeeTooLow=(0,le.createCustomErrorClass)("PriorityFeeTooLow");L.PriorityFeeTooHigh=(0,le.createCustomErrorClass)("PriorityFeeTooHigh");L.PriorityFeeHigherThanMaxFee=(0,le.createCustomErrorClass)("PriorityFeeHigherThanMaxFee");L.MaxFeeTooLow=(0,le.createCustomErrorClass)("MaxFeeTooLow");L.PasswordsDontMatchError=(0,le.createCustomErrorClass)("PasswordsDontMatch");L.PasswordIncorrectError=(0,le.createCustomErrorClass)("PasswordIncorrect");L.RecommendSubAccountsToEmpty=(0,le.createCustomErrorClass)("RecommendSubAccountsToEmpty");L.RecommendUndelegation=(0,le.createCustomErrorClass)("RecommendUndelegation");L.TimeoutTagged=(0,le.createCustomErrorClass)("TimeoutTagged");L.UnexpectedBootloader=(0,le.createCustomErrorClass)("UnexpectedBootloader");L.MCUNotGenuineToDashboard=(0,le.createCustomErrorClass)("MCUNotGenuineToDashboard");L.RecipientRequired=(0,le.createCustomErrorClass)("RecipientRequired");L.UnavailableTezosOriginatedAccountReceive=(0,le.createCustomErrorClass)("UnavailableTezosOriginatedAccountReceive");L.UnavailableTezosOriginatedAccountSend=(0,le.createCustomErrorClass)("UnavailableTezosOriginatedAccountSend");L.UpdateFetchFileFail=(0,le.createCustomErrorClass)("UpdateFetchFileFail");L.UpdateIncorrectHash=(0,le.createCustomErrorClass)("UpdateIncorrectHash");L.UpdateIncorrectSig=(0,le.createCustomErrorClass)("UpdateIncorrectSig");L.UpdateYourApp=(0,le.createCustomErrorClass)("UpdateYourApp");L.UserRefusedDeviceNameChange=(0,le.createCustomErrorClass)("UserRefusedDeviceNameChange");L.UserRefusedAddress=(0,le.createCustomErrorClass)("UserRefusedAddress");L.UserRefusedFirmwareUpdate=(0,le.createCustomErrorClass)("UserRefusedFirmwareUpdate");L.UserRefusedAllowManager=(0,le.createCustomErrorClass)("UserRefusedAllowManager");L.UserRefusedOnDevice=(0,le.createCustomErrorClass)("UserRefusedOnDevice");L.TransportOpenUserCancelled=(0,le.createCustomErrorClass)("TransportOpenUserCancelled");L.TransportInterfaceNotAvailable=(0,le.createCustomErrorClass)("TransportInterfaceNotAvailable");L.TransportRaceCondition=(0,le.createCustomErrorClass)("TransportRaceCondition");L.TransportWebUSBGestureRequired=(0,le.createCustomErrorClass)("TransportWebUSBGestureRequired");L.DeviceShouldStayInApp=(0,le.createCustomErrorClass)("DeviceShouldStayInApp");L.WebsocketConnectionError=(0,le.createCustomErrorClass)("WebsocketConnectionError");L.WebsocketConnectionFailed=(0,le.createCustomErrorClass)("WebsocketConnectionFailed");L.WrongDeviceForAccount=(0,le.createCustomErrorClass)("WrongDeviceForAccount");L.WrongAppForCurrency=(0,le.createCustomErrorClass)("WrongAppForCurrency");L.ETHAddressNonEIP=(0,le.createCustomErrorClass)("ETHAddressNonEIP");L.CantScanQRCode=(0,le.createCustomErrorClass)("CantScanQRCode");L.FeeNotLoaded=(0,le.createCustomErrorClass)("FeeNotLoaded");L.FeeRequired=(0,le.createCustomErrorClass)("FeeRequired");L.FeeTooHigh=(0,le.createCustomErrorClass)("FeeTooHigh");L.DustLimit=(0,le.createCustomErrorClass)("DustLimit");L.PendingOperation=(0,le.createCustomErrorClass)("PendingOperation");L.SyncError=(0,le.createCustomErrorClass)("SyncError");L.PairingFailed=(0,le.createCustomErrorClass)("PairingFailed");L.GenuineCheckFailed=(0,le.createCustomErrorClass)("GenuineCheckFailed");L.LedgerAPI4xx=(0,le.createCustomErrorClass)("LedgerAPI4xx");L.LedgerAPI5xx=(0,le.createCustomErrorClass)("LedgerAPI5xx");L.FirmwareOrAppUpdateRequired=(0,le.createCustomErrorClass)("FirmwareOrAppUpdateRequired");L.LanguageNotFound=(0,le.createCustomErrorClass)("LanguageNotFound");L.NoDBPathGiven=(0,le.createCustomErrorClass)("NoDBPathGiven");L.DBWrongPassword=(0,le.createCustomErrorClass)("DBWrongPassword");L.DBNotReset=(0,le.createCustomErrorClass)("DBNotReset");var rP;(function(A){A[A.Unknown=0]="Unknown",A[A.BleLocationServicesDisabled=1]="BleLocationServicesDisabled",A[A.BleBluetoothUnauthorized=2]="BleBluetoothUnauthorized",A[A.BleScanStartFailed=3]="BleScanStartFailed"})(rP=L.HwTransportErrorType||(L.HwTransportErrorType={}));var nP=function(A){wg(a,A);function a(e,f){var c=A.call(this,f)||this;return c.name="HwTransportError",c.type=e,Object.setPrototypeOf(c,a.prototype),c}return a}(Error);L.HwTransportError=nP;var Rg=function(A){wg(a,A);function a(e,f){var c=this,d="TransportError";return c=A.call(this,e||d)||this,c.name=d,c.message=e,c.stack=new Error().stack,c.id=f,c}return a}(Error);L.TransportError=Rg;(0,le.addCustomErrorDeserializer)("TransportError",function(A){return new Rg(A.message,A.id)});L.StatusCodes={ACCESS_CONDITION_NOT_FULFILLED:38916,ALGORITHM_NOT_SUPPORTED:38020,CLA_NOT_SUPPORTED:28160,CODE_BLOCKED:38976,CODE_NOT_INITIALIZED:38914,COMMAND_INCOMPATIBLE_FILE_STRUCTURE:27009,CONDITIONS_OF_USE_NOT_SATISFIED:27013,CONTRADICTION_INVALIDATION:38928,CONTRADICTION_SECRET_CODE_STATUS:38920,CUSTOM_IMAGE_BOOTLOADER:26159,CUSTOM_IMAGE_EMPTY:26158,FILE_ALREADY_EXISTS:27273,FILE_NOT_FOUND:37892,GP_AUTH_FAILED:25344,HALTED:28586,INCONSISTENT_FILE:37896,INCORRECT_DATA:27264,INCORRECT_LENGTH:26368,INCORRECT_P1_P2:27392,INS_NOT_SUPPORTED:27904,INVALID_KCV:38021,INVALID_OFFSET:37890,LICENSING:28482,LOCKED_DEVICE:21781,MAX_VALUE_REACHED:38992,MEMORY_PROBLEM:37440,MISSING_CRITICAL_PARAMETER:26624,NO_EF_SELECTED:37888,NOT_ENOUGH_MEMORY_SPACE:27268,OK:36864,PIN_REMAINING_ATTEMPTS:25536,REFERENCED_DATA_NOT_FOUND:27272,SECURITY_STATUS_NOT_SATISFIED:27010,TECHNICAL_PROBLEM:28416,UNKNOWN_APDU:27906,USER_REFUSED_ON_DEVICE:21761};function Sg(A){switch(A){case 26368:return"Incorrect length";case 26624:return"Missing critical parameter";case 27010:return"Security not satisfied (dongle locked or have invalid access rights)";case 27013:return"Condition of use not satisfied (denied by the user?)";case 27264:return"Invalid data received";case 27392:return"Invalid parameter received";case 21781:return"Locked device"}if(28416<=A&&A<=28671)return"Internal error, please report"}L.getAltStatusMessage=Sg;function hl(A){var a=Object.keys(L.StatusCodes).find(function(d){return L.StatusCodes[d]===A})||"UNKNOWN_ERROR",e=Sg(A)||a,f=A.toString(16),c="Ledger device: ".concat(e," (0x").concat(f,")");if(A===L.StatusCodes.LOCKED_DEVICE)throw new L.LockedDeviceError(c);this.name="TransportStatusError",this.message=c,this.stack=new Error().stack,this.statusCode=A,this.statusText=a}L.TransportStatusError=hl;hl.prototype=new Error;(0,le.addCustomErrorDeserializer)("TransportStatusError",function(A){return new hl(A.statusCode)})});var kg=U(hc=>{"use strict";hc.__esModule=!0;hc.EthAppNftNotSupported=hc.EthAppPleaseEnableContractData=void 0;var vg=X3();hc.EthAppPleaseEnableContractData=(0,vg.createCustomErrorClass)("EthAppPleaseEnableContractData");hc.EthAppNftNotSupported=(0,vg.createCustomErrorClass)("EthAppNftNotSupported")});var Cl=U((f6,Qg)=>{(function(A,a){typeof f6=="object"?Qg.exports=f6=a():typeof define=="function"&&define.amd?define([],a):A.CryptoJS=a()})(f6,function(){var A=A||function(a,e){var f;if(typeof window<"u"&&window.crypto&&(f=window.crypto),typeof self<"u"&&self.crypto&&(f=self.crypto),typeof globalThis<"u"&&globalThis.crypto&&(f=globalThis.crypto),!f&&typeof window<"u"&&window.msCrypto&&(f=window.msCrypto),!f&&typeof global<"u"&&global.crypto&&(f=global.crypto),!f&&typeof require=="function")try{f=require("crypto")}catch{}var c=function(){if(f){if(typeof f.getRandomValues=="function")try{return f.getRandomValues(new Uint32Array(1))[0]}catch{}if(typeof f.randomBytes=="function")try{return f.randomBytes(4).readInt32LE()}catch{}}throw new Error("Native crypto module could not be used to get secure random number.")},d=Object.create||function(){function Q(){}return function(P){var V;return Q.prototype=P,V=new Q,Q.prototype=null,V}}(),b={},r=b.lib={},n=r.Base=function(){return{extend:function(Q){var P=d(this);return Q&&P.mixIn(Q),(!P.hasOwnProperty("init")||this.init===P.init)&&(P.init=function(){P.$super.init.apply(this,arguments)}),P.init.prototype=P,P.$super=this,P},create:function(){var Q=this.extend();return Q.init.apply(Q,arguments),Q},init:function(){},mixIn:function(Q){for(var P in Q)Q.hasOwnProperty(P)&&(this[P]=Q[P]);Q.hasOwnProperty("toString")&&(this.toString=Q.toString)},clone:function(){return this.init.prototype.extend(this)}}}(),l=r.WordArray=n.extend({init:function(Q,P){Q=this.words=Q||[],P!=e?this.sigBytes=P:this.sigBytes=Q.length*4},toString:function(Q){return(Q||B).stringify(this)},concat:function(Q){var P=this.words,V=Q.words,q=this.sigBytes,_=Q.sigBytes;if(this.clamp(),q%4)for(var Z=0;Z<_;Z++){var de=V[Z>>>2]>>>24-Z%4*8&255;P[q+Z>>>2]|=de<<24-(q+Z)%4*8}else for(var ce=0;ce<_;ce+=4)P[q+ce>>>2]=V[ce>>>2];return this.sigBytes+=_,this},clamp:function(){var Q=this.words,P=this.sigBytes;Q[P>>>2]&=4294967295<<32-P%4*8,Q.length=a.ceil(P/4)},clone:function(){var Q=n.clone.call(this);return Q.words=this.words.slice(0),Q},random:function(Q){for(var P=[],V=0;V>>2]>>>24-_%4*8&255;q.push((Z>>>4).toString(16)),q.push((Z&15).toString(16))}return q.join("")},parse:function(Q){for(var P=Q.length,V=[],q=0;q>>3]|=parseInt(Q.substr(q,2),16)<<24-q%8*4;return new l.init(V,P/2)}},x=t.Latin1={stringify:function(Q){for(var P=Q.words,V=Q.sigBytes,q=[],_=0;_>>2]>>>24-_%4*8&255;q.push(String.fromCharCode(Z))}return q.join("")},parse:function(Q){for(var P=Q.length,V=[],q=0;q>>2]|=(Q.charCodeAt(q)&255)<<24-q%4*8;return new l.init(V,P)}},p=t.Utf8={stringify:function(Q){try{return decodeURIComponent(escape(x.stringify(Q)))}catch{throw new Error("Malformed UTF-8 data")}},parse:function(Q){return x.parse(unescape(encodeURIComponent(Q)))}},w=r.BufferedBlockAlgorithm=n.extend({reset:function(){this._data=new l.init,this._nDataBytes=0},_append:function(Q){typeof Q=="string"&&(Q=p.parse(Q)),this._data.concat(Q),this._nDataBytes+=Q.sigBytes},_process:function(Q){var P,V=this._data,q=V.words,_=V.sigBytes,Z=this.blockSize,de=Z*4,ce=_/de;Q?ce=a.ceil(ce):ce=a.max((ce|0)-this._minBufferSize,0);var H=ce*Z,k=a.min(H*4,_);if(H){for(var E=0;E{(function(A,a){typeof c6=="object"?yg.exports=c6=a(Cl()):typeof define=="function"&&define.amd?define(["./core"],a):a(A.CryptoJS)})(c6,function(A){return function(a){var e=A,f=e.lib,c=f.WordArray,d=f.Hasher,b=e.algo,r=[],n=[];(function(){function B(y){for(var N=a.sqrt(y),Q=2;Q<=N;Q++)if(!(y%Q))return!1;return!0}function x(y){return(y-(y|0))*4294967296|0}for(var p=2,w=0;w<64;)B(p)&&(w<8&&(r[w]=x(a.pow(p,1/2))),n[w]=x(a.pow(p,1/3)),w++),p++})();var l=[],t=b.SHA256=d.extend({_doReset:function(){this._hash=new c.init(r.slice(0))},_doProcessBlock:function(B,x){for(var p=this._hash.words,w=p[0],y=p[1],N=p[2],Q=p[3],P=p[4],V=p[5],q=p[6],_=p[7],Z=0;Z<64;Z++){if(Z<16)l[Z]=B[x+Z]|0;else{var de=l[Z-15],ce=(de<<25|de>>>7)^(de<<14|de>>>18)^de>>>3,H=l[Z-2],k=(H<<15|H>>>17)^(H<<13|H>>>19)^H>>>10;l[Z]=ce+l[Z-7]+k+l[Z-16]}var E=P&V^~P&q,D=w&y^w&N^y&N,h=(w<<30|w>>>2)^(w<<19|w>>>13)^(w<<10|w>>>22),u=(P<<26|P>>>6)^(P<<21|P>>>11)^(P<<7|P>>>25),o=_+u+E+n[Z]+l[Z],C=h+D;_=q,q=V,V=P,P=Q+o|0,Q=N,N=y,y=w,w=o+C|0}p[0]=p[0]+w|0,p[1]=p[1]+y|0,p[2]=p[2]+N|0,p[3]=p[3]+Q|0,p[4]=p[4]+P|0,p[5]=p[5]+V|0,p[6]=p[6]+q|0,p[7]=p[7]+_|0},_doFinalize:function(){var B=this._data,x=B.words,p=this._nDataBytes*8,w=B.sigBytes*8;return x[w>>>5]|=128<<24-w%32,x[(w+64>>>9<<4)+14]=a.floor(p/4294967296),x[(w+64>>>9<<4)+15]=p,B.sigBytes=x.length*4,this._process(),this._hash},clone:function(){var B=d.clone.call(this);return B._hash=this._hash.clone(),B}});e.SHA256=d._createHelper(t),e.HmacSHA256=d._createHmacHelper(t)}(Math),A.SHA256})});var Ng=U((d6,Ug)=>{(function(A,a,e){typeof d6=="object"?Ug.exports=d6=a(Cl(),Mg()):typeof define=="function"&&define.amd?define(["./core","./sha256"],a):a(A.CryptoJS)})(d6,function(A){return function(){var a=A,e=a.lib,f=e.WordArray,c=a.algo,d=c.SHA256,b=c.SHA224=d.extend({_doReset:function(){this._hash=new f.init([3238371032,914150663,812702999,4144912697,4290775857,1750603025,1694076839,3204075428])},_doFinalize:function(){var r=d._doFinalize.call(this);return r.sigBytes-=4,r}});a.SHA224=d._createHelper(b),a.HmacSHA224=d._createHmacHelper(b)}(),A.SHA224})});var Og=U(gl=>{"use strict";gl.__esModule=!0;gl.default={"1:0x7f268357a8c2552623316e2562d90e642bb538e5:d8e4f2bd77f7562e99ea5df4adb127291a2bfbc225ae55450038f27f":{contractName:{label:"OpenSea Listing",signature:"304402205f01e62b2331ecb9f1cb3f49a764d66015937cb20cb4c3af625146905ca4832402205076eeb4a74619b4552278836b548c8e525813faa9008399e43bfed7db016408"},fields:[{label:"Contract address",path:"exchange",signature:"3044022069df3b1c82dda9849a3df4cd0dd263d2b6c35e4fb8946865a35f5555830971b802201880d72b3d956867b597a2f5097d7f8799bad6e636d3de4030515634bba47155"},{label:"Price",path:"basePrice",signature:"3045022100db49dbd8426193b6012781f43c3b445d1cf845d99d738091c1f068951728333402204326a2da5203f25deec049deba760bb31a86507c73fe6828c68e0db2eabfc966"},{label:"Offer expiration",path:"expirationTime",signature:"3045022100e71a4921740fcdf4e489c517fc82f9b7e83cfbd675dff318acb91fbf8eaf175402203fac43650771c6523dad8d995ef414d035a92d262a9cf95885ef2704337a2382"}]},"1:0xe92b586627cca7a83dc919cc7127196d70f55a06:16c6594547c8c6af18ca0d8b500976bfb7f38764060cec3792c2aad3":{contractName:{label:"AugustusRFQ ERC20 order",signature:"3044022043fb323d3a064faa38bcabad3a3f797dff60f55b49c19e350a9d0b1f980818e202205c3dc14efcc49adf915f195ff29fa02dfd9d08fca532b76086e501f9e0d133ed"},fields:[{label:"Nonce and metadata",path:"nonceAndMeta",signature:"304402205b674138eb50ddbfdd05768f2c641109f6c8f341d27e10ea12d59e083746cb330220521d739a49ee57ff9a41cf00adc631d3dd33e9ce2b23ce50759fb33c0ffce0a5"},{label:"Expiration time",path:"expiry",signature:"304402203ba8d470649ae7cb5d02764fa48899ec0414075ed85cb9fd95e89ac5b3bb073e02200183233f30de996a8b87417a6febcbb56a544c38fd62b6f7702efa7e0d7b2ee3"},{label:"Maker asset address",path:"makerAsset",signature:"304402206f3c4055bd431c1ceddce5b147c3b5acec950b267205da655fb3d331b9c070830220570c9cfdcc02b10abbf9a335ab6a4067ab7cae2ae8a443f795225a7c3981cc0a"},{label:"Taker asset address",path:"takerAsset",signature:"3045022100fb93cbca6ee524729b138319a92316a37c56ae5f89b3d652af7f680c3f160df002203d1fc525b11cd30d2907f844d7774f49995b2be7e3ba2896dcd4a6e73c8a59d5"},{label:"Maker address",path:"maker",signature:"3044022002e75adf4733bf28d532647c54fb0000415737db37b7e5674f9bb20179d01eea02203834ebcfe81d98e745572349bb0da4ffdc8ec846d35e3812119e9a3491462724"},{label:"Taker address",path:"taker",signature:"3045022100966a77a69a7e0c060f154a8c7ed36087d8ba7da111d9bacc90b873421fe6a75c02207d92956d938a966cb98ddb6e8b3a56e4d8e7725182cf1bb02f03f67512460485"},{label:"Maker amount",path:"makerAmount",signature:"304402207ece45c0993fa46316022cffbdf64307cef2caede370f27fdfd78471c3550dd002200da74e8b3b5201e654e7e4674f7471a333a104288fdf8cf80fc3122126113d1b"},{label:"Taker amount",path:"takerAmount",signature:"3044022014183f10973ddc0ccb12472d2437e33f368f627b99022735044e5c4ebb4e345802203a3f5e8aa5c928981d2dabd0442342c605db1626dcd0d3ad5e3afcd98bb8c673"}]},"1:0xe92b586627cca7a83dc919cc7127196d70f55a06:affaa50b47c793acb6b9f912325d898538d409f735b8f312a1914623":{contractName:{label:"AugustusRFQ NFT order",signature:"304402206dfa1d54ee0a7ab236252618a5fac9c752152304f31838eab4ba4c6d2d3f844b02206658b1e9b2503577619080909be0f4c1d2a899b3d0085ed8c3f2a4309762dd94"},fields:[{label:"Nonce and metadata",path:"nonceAndMeta",signature:"3045022100ed9b0b91a8cace4d312f6d1bab076c057e954a9cd33c3dc5c350d030e41edd230220230e3050131157f6fc2fc578df7b1108f69d55d25ab837c661045877b148765b"},{label:"Expiration time",path:"expiry",signature:"304402205d4913092612fe78d75c181f3ed28ac7808e25ab0131e73bebd91c08aac65e7902203d63f1fd4d5cc11b1f8aa2af0ec6a8440a0ed59d440237bce96ed87874c2a26d"},{label:"Maker asset encoded",path:"makerAsset",signature:"304402205f9fb08bef206518e5bf48cb7fd968709a0ae317e903d9c87a41c934a0983af3022066264858ae4a1338d4daa1b4f9dc7376335ce9e57d4bed320b0d4c27a0012deb"},{label:"Maker asset NFT ID",path:"makerAssetId",signature:"3045022100ac653732f2acece7c47588bfff9a1059dc69bd3fa7e387cfef8246eb0ae2a70902204ffd7f89cd7223f8e52b7c44b02ac4fa1d06017015304f1a3a7459b20d54a5e7"},{label:"Taker asset encoded",path:"takerAsset",signature:"30450221008e59dfbed2dd4d1e2738b829d7a57fa23be737b652c0b01299f3d9482174aea80220138c8e948becda6dc1e7564358e574e7ac8d7016f2a1795059977f401535b27f"},{label:"Taker asset NFT ID",path:"takerAssetId",signature:"304402203408e2bf0210fa4454baf46374cf876299578df056ddaaf5a907306804ca41cb0220056f910e3c500e4a8f55d5c09dceed9753a2ca7b49a9ade1955a598f4e64d657"},{label:"Maker address",path:"maker",signature:"3045022100ce5db907819f4f36c77f1e3a849a3a6ac9483970128998d5add5941e1fcf6dc102200e1f26e08a3f48ef6fe1d40a4149cb8603c5e70e076755ddcf76894d31f2adc0"},{label:"Taker address",path:"taker",signature:"30440220015799beef248e4eb12f95368ef44cfbaf65e43da1a4110623006e46157ab22c022055f962e02e4cbdc05bab79cfbee523da8ff9d16529c4e98755b15d45bb34a16b"},{label:"Maker amount",path:"makerAmount",signature:"30450221008048cec54417376b3a659e3aeeb349a4352751a099443ea203b59e9d2cd954b702201b32704d89bd028a6794ef315bf2a204b7293f547d14282440f5aea041a27ee1"},{label:"Taker amount",path:"takerAmount",signature:"3045022100dad584a953b3c56c67913e76f1a6626cb72620e23bd16f41b2817a95ddb0bccb02206189e3b49d9f3475bd52baff2a40c7f026daf1d2dad9cfaa403eb08030836090"}]},"1:0x7f19564c35c681099c0c857a7141836cf7edaa53:139c059f886c2b9b41f05a6c4ec2578a048d18aaadbc095609e5df4b":{contractName:{label:"List Order",signature:"3045022100cfd82c26631445df34b327b31ad55ad7f26e0480ea7838ae83274ad83b8f9cd1022044b5a3db6b6052a5b818b1bc6cb28d523115033ca7ab3c4a269ec37e3cde890f"},fields:[{label:"Order maker address",path:"maker",signature:"30450221008ab1ef7012cf407a80348d6be16a98d375bf959de72f260cb92520dbb30fc2ce02200d9c0e02c8375d94077ebe16c849df5745654a1c499100286201407be47688f9"},{label:"Order make asset value",path:"makeAsset.value",signature:"3044022018c3ea3b1768f348094f151f8e28171d1325d5cc1621478b23474f4695acf2d3022040ad4bb4c8c138857e426128488ee5a3df8fa0a7cfaf58e9858765a0f72a8a02"},{label:"Order taker address",path:"taker",signature:"30440220482e1c1439ea879f243fdd47cf043bd271c7fb73ba095463e920ab34c38076c002207c095ec3307fa3a3ebcd125238caf3f7c50d196db444559d31c79916e514f370"},{label:"Order take asset value",path:"takeAsset.value",signature:"304402205d33c23ab575fa613d37d7fabaa719f5aa4dacf8de0f299e83dd189eeabfc31d0220535f67346b8ed7d175193929aebead42b92921465c1474f482fce88bfd00323a"},{label:"Order start time",path:"start",signature:"3045022100c178033effb772f141b46a9d5b5bcfc48468c6e5c499d8865043535947b1bb490220687dc9018a38c62e01c91e90fecf9e18febe995267d1bea27d3368f12f04bc9b"},{label:"Order end time",path:"end",signature:"3044022074ecdea3c58a28565af3336de33390aa7e592e5108f6d9151dd000a90a5eb60a0220163362373d11f177e41b914dc10c93b76adfa4c27f4662179329e66b32f8f139"}]},"1:0x9757f2d2b135150bbeb65308d4a91804107cd8d6:139c059f886c2b9b41f05a6c4ec2578a048d18aaadbc095609e5df4b":{contractName:{label:"List Order",signature:"3045022100892ab54a425fa1306df530b5ffeab2944133f1fbc68b99b92e61abf5c5051d1002205eff72d6f2c65f7835bcb2c6593b772d0a45e152988b4379cdb52327ce5da382"},fields:[{label:"Order maker address",path:"maker",signature:"304402205990b238b291ad1bb3cce7d2acce868761c6a73fa79e87c05530813aac8eba5f02207408c5e30e840195677fa60d411d2c2bc76fbe15a7ad2506a4636f001708bec5"},{label:"Order make asset value",path:"makeAsset.value",signature:"30440220646b1bd068a229a75f7f0558f03d2fbbe7dd441d318480dc8eb532c3452ed6a00220642fe4f065198bab191c682e55487cd6464a90c9527983dcd672d15a0a083d80"},{label:"Order taker address",path:"taker",signature:"3044022014dff71fc22c0b53e918ceed99de5aa86cc49fffc22f271a9586a9db1197e413022001125d415ad2eef46353bd8e812248fbf3fc2b60fb5fc7dad3853c9d2c85c6a1"},{label:"Order take asset value",path:"takeAsset.value",signature:"304402202416cd3b9b1b9b7fc4bd5434f0f8c54638d0f29e87f1f92de7006747f4e856aa02207afb4547d03de6247628f93c5ed49f9122e2780507bc601f5211c89c8905b93e"},{label:"Order start time",path:"start",signature:"304502210095c5b1927e171ce8f0b74bd311cb0f66bff5e3d23a7eb52e1d6b696378defb2502204114def9ce15f2b698ea00d43bee8e8692568a6394e24c8e0b53c90c29ab7ad0"},{label:"Order end time",path:"end",signature:"304402203f435338d8130399eaa6939c0cc8f4fc5efc92a34256ac450d6d55b0ac2e816f02204c116eb40b3c07810facd9117572147216fdb175b2ce31c6ef277501dff7f6d1"}]},"1:0xb66a603f4cfe17e3d27b87a8bfcad319856518b8:07bed12ab07fe09633d57ede321ed3dd0940d654b9d34a379c4997b9":{contractName:{label:"Lazy Mint ERC-1155",signature:"304402206bd24ac8c5cfa2b75e16ea0c315295368a7f780c4ec062555079cfe48d583a8602204300f968037f9ea84919cdc8ad3a22103b04e00b9c4dffe5c34ebf13d1b769cc"},fields:[{label:"Token ID",path:"tokenId",signature:"304402206e18eac55b89b17b4706547807a864f6c1b37eee09fff4ccad54e9842eb1abaf02204ef2984f87d6c0ebab26352ce82f8040aae5bd259ae55d9921d609b3936d15dc"},{label:"Token URI",path:"tokenURI",signature:"3044022067c04bf2be50a7660b11742d10dbcc84655c22a0d359c20b2abb54a4d23f2846022030bded842ae4208854c0d11d655b234465e2c9ee9fe9b1eb5074778ddcfa9426"},{label:"Token Supply",path:"supply",signature:"3045022100fc4ab75ab184e564ea297da785d4a749b913e58706dff4e6c7ae49f72a7e9701022067bfead2e11a323beca3821a3ba310d705ebb128f45bee1f394dcc7e60af8043"},{label:"Creator account address",path:"creators.[].account",signature:"304402203e5e5fe4636b283df4e4d027e8ba5e43d912f53125b052e603548fff051b37d702207ceae4257ccc801de3943fb68b1a0e2af546e12d3bc74481b7695a12de7eebd2"},{label:"Creator value (10000 = 100%)",path:"creators.[].value",signature:"3044022065a51fd2cafd0013215fb703e27052320d35951e5f9d26a3c3d03a050b7088340220193e98ad9282a96e3e7b5e6813bb5989c31cded994fed35d5383e68738905c1e"},{label:"Royalties account address",path:"royalties.[].account",signature:"304502210092d8aa5743b9fa52cc1d5caf4f83e65cf232b02394dae8e3056d29606377caf902205119918948d39a165950efb998e19aecb3bde611065e92fd5f5c10bafaacda22"},{label:"Royalties value (10000 = 100%)",path:"royalties.[].value",signature:"3045022100b7cc93e7abfcc00efbfeeb49cef4d2ceb5521e1c97b2bdee882e011292964be902203d7ebd7c328961e1ca66aa16e8c61aeefa3bbbcad419bc65315658cdb425e5b9"}]},"1:0xc9154424b823b10579895ccbe442d41b9abd96ed:4776d13d863bd29241312beab87bd487ba5648c8c71919e9e5025e7b":{contractName:{label:"Lazy Mint ERC-721",signature:"3044022001ca2f9abb569b76bfb8398ba150999d93fc6a02f5e637f4ac3a125b6c48b528022007ab8f1b776d1b2f5a0b44f90214b02f71c3535e468f03b681f133c3bc217946"},fields:[{label:"Token ID",path:"tokenId",signature:"3045022100e762ea781d76c81e5f3b28269e03f1cfe7e33b847dbe20a56289841579b0fb4f022033c6249fc155deb94850e6e30fd7fb854f07c63c2b8ffc8b3c7d412c01b8398d"},{label:"Token URI",path:"tokenURI",signature:"3045022100dc369275a5b2d6a3c934221e9f7483082cd5c52bb1b41a802d260c54757cf29002206dfcd13e32357144ed68b90c2308208bfa699d95d917a97d8bf438aed08269bc"},{label:"Creator account address",path:"creators.[].account",signature:"304502210089448beccdb19e680a7f8a6dd4f1e0dc8319b3458f0d5a491518bb97af0e1f5002200dc01550cc4d0d3398049938d2a498c142e2e82eb9086c7d6d6a8f1f90d1d25e"},{label:"Creator value (10000 = 100%)",path:"creators.[].value",signature:"3044022026ebacc1dce44b2815c6e53d9030836a4768ba0019c4b6f9d8eb83d8699ffac3022076b9bc2f89daa7e5e21b294163e64ed25d2bdfe5f2373f6aefba4f6da1d92d3f"},{label:"Royalties account address",path:"royalties.[].account",signature:"30440220626fdb56db8c34a282917aab1f7fddd36a060eb35f117ded7b675be946acfac002206770d35391e086e1ab31e9fd9cea07e90b09d38f0b882857e394283ecd6575a9"},{label:"Royalties value (10000 = 100%)",path:"royalties.[].value",signature:"3045022100e22f440fe2bb06d77a0afc50366689ede59570dc91796305ea62e5ca5da5286c022074bdc3dc840c7314abcf6bbaf35fe5e20318c54a911e7508942fecd38b70db9e"}]},"1:0x72e9d9038ce484ee986fea183f8d8df93f9ada13:65b962ff5c94fe989fdc9169a5dbf3662e79747c3932616d9f0a39cc":{contractName:{label:"SmartCredit.io",signature:"304402202d7247f61c8a08f5ea99fdbf628e88d487f12a6e4ed330bdc3e8a5886fee6f9202200524d6035cbdcd469b1d1d3fa8dcf83595112daf20f24286e1b0e3c820fa2127"},fields:[]},"56:0x8dcdfe88ef0351f27437284d0710cd65b20288bb:16c6594547c8c6af18ca0d8b500976bfb7f38764060cec3792c2aad3":{contractName:{label:"AugustusRFQ ERC20 order",signature:"3045022100cdd6ed9272614ffdedb2b2aa22418386928f1174a6214451d67b82c06b637d4102205ee814ca52cfbdab011e337727cfe91fa272b98246ecbfb1683bfc0de3086efc"},fields:[{label:"Nonce and metadata",path:"nonceAndMeta",signature:"3044022056e3fdb59c9ece3d411d03963edfcb9a186ccb753b4e984366e7ca6baa99b38902206a7267e31543659ba3bf8b796edec2d1c6f174a810b89862e43541f94b191eca"},{label:"Expiration time",path:"expiry",signature:"3045022100a4cc77374944e947748dd36408f48f43a94e67436231fad62191554d1ea5ff0e022001baa4fc0587af310bebe1c0044d7b4280bb5537192736fa3805584c735a6710"},{label:"Maker asset address",path:"makerAsset",signature:"30440220770b731ffb6091493ce2fcdb4163ad872add409a9c66e88e29b0d7a82b0ee79c02201e0130c1841c484e816b9f9ff3694eea3601e1569c1ddb87319b08d86e9823d5"},{label:"Taker asset address",path:"takerAsset",signature:"304502210094b700c3383bf0d8740e09d23dac120addc1c21029746f672d8f8c8b3a2a2995022008b5d3af862f7fb0510321cd9ae4f7172ab3b347f6556b3da79e2a95950ff34b"},{label:"Maker address",path:"maker",signature:"304402202dafdefb2181e5bbdf5816fc710400bae0846bc08dfc389ef8008048228e2fd0022002b89786ea578488cf6c6b751dac0c13dd6c2c57c8d6bb0fcb47a28d2b07b1b6"},{label:"Taker address",path:"taker",signature:"304402204c27aac1c07e8bde8a998bf06acd5eaf40e874a9b128a4f19ee8c39ce45c9cbe0220380d9438d10ce81f7545f3de8530a19c1eda78e4683fc2145b9715eb260f1d66"},{label:"Maker amount",path:"makerAmount",signature:"3045022100e7f19c15b49e6f40eddd2c8a24d8c55e9224262aa0b856a413f842fc5c0fc7d00220341e5eaf45d8335bb6143768b1c961b6c7e97897bda5ef485457020661ac3ae3"},{label:"Taker amount",path:"takerAmount",signature:"3045022100e36cd43f82fc0f99ec2770a26b245f6af13623cee69670d68dd696ff76d4630e02202057a0dd1faee909037429ba7489ccf3891a38d29a4da04648441105c1e89048"}]},"56:0x8dcdfe88ef0351f27437284d0710cd65b20288bb:affaa50b47c793acb6b9f912325d898538d409f735b8f312a1914623":{contractName:{label:"AugustusRFQ NFT order",signature:"3044022045bb3ce0d61f428537754555a0d69cfc5554de2dd58c1c5cc7ae81abe073b1df022039ba8d7e1230c3851fc08db58cda6222c420dce4b8cf96725891906fc5f7539b"},fields:[{label:"Nonce and metadata",path:"nonceAndMeta",signature:"3044022020d30ebe13aa1235ea25dcc247a1c494a6aa2ac4f121aadc3beb874b9de4b75e022078efc82c2343d6165960fc252d10313550b6d9d1faeb6f2ff611c288fb53f364"},{label:"Expiration time",path:"expiry",signature:"3045022100ee126c98d8ad5b000090d6c16131709618d803878a72ceb1f58f2b11b2e52324022076403ce3d181511afc9b59b3f4a0ce4de9ee76dd60c78eb61660d623294d4070"},{label:"Maker asset encoded",path:"makerAsset",signature:"3045022100ed1f432fe0c33307e397f846970f7de0fc18098f3d5b4cc1a25844f75dbbfb9902204075ef8e6d6dae438dac2a7e3aace3e27bc7c67fe22728395f92888e68361f20"},{label:"Maker asset NFT ID",path:"makerAssetId",signature:"3044022022be34e598b158445f7ff6a5565b04627b61789339aa956b03f5c8dcb81e0ca102201b970d57742618204906414d7d23dc42e9e566776e7bda9060bcde335817a8ce"},{label:"Taker asset encoded",path:"takerAsset",signature:"304402203ec8a77927b84388d5a0ba1bb0bfa38fcb862b8c43d988bbbbccbd547a4ae38e022002f2f736d3cfbf42829b750af704323f29b1eedcbde789c49052521ec47bafee"},{label:"Taker asset NFT ID",path:"takerAssetId",signature:"304402205defad5bc1514f254cece6e8dfbfe3b68c3818bef6d4268b40c59858a6a2187502206767bb96c040e523dfd88724a0ce4b4f6bde73c02a286772f2a73c973dab0bab"},{label:"Maker address",path:"maker",signature:"3045022100a273a21625a130728e0448f53a047d50867a9ba5e4a285d7e06d98fb3bd655c2022061e93ce13cedef0ebe9bc9340b988d0fc7353e99e2ec28b77102a14b3a129479"},{label:"Taker address",path:"taker",signature:"3045022100b74529d5cab0055f80732bcf7864f03db98bb9f779fa56171f3faafdfee2719e0220757505e2ba5df6184002e921f678f9f5bb073197652a45d86c6edf003067ce2c"},{label:"Maker amount",path:"makerAmount",signature:"3045022100c14e1f90619be9cc92da927b1c908a18133b043e138d908bf81117e1fc73fe000220503047ae5e75ee53c0ed60601644ec09f430c613edc6ec72cdae4021d29438ce"},{label:"Taker amount",path:"takerAmount",signature:"304402201096ca9ff9b886a77fcbc7fdc8ddfc0f42a9c8e7fccb783581ca3abc75ba61dd0220191d21eed8b4eed56975b580832a8b1891a5b674fe1a0e5d7314b7b6486d7104"}]},"137:0xDb46d1Dc155634FbC732f92E853b10B288AD5a1d:9e97b4d1d211350352bdbb5ef45c4cb52f988d93a2d4a8ec6e675d14":{contractName:{label:"Dispatch.xyz Follow Profile",signature:"3044022008ad0a8cfe8c2630848f05e54ab93cfd1f5c301eb52cc74537d67a56751932bc02206dd3e78f5055b6c65a73905f840963b2f696afd04d6d472f4185dce9f6262821"},fields:[{label:"Profile Ids",path:"profileIds",signature:"3044022079ab31498b3ef74e744d5414f4c51334e00b20a5ad7c0a0ea6f463462d0a3699022079b29776df1f5243794cc128f19478ba586cd3b9378b5809740e9980763f8d8c"},{label:"Data",path:"datas",signature:"3045022100c04fb22aecc349de63571095782ea34cde05e576095c980d5c86f054c1a248cc02207f5a41199516bed46221aebed4f0f377508d39d661ef7f6ea7b16877709aa4ce"},{label:"Nonce",path:"nonce",signature:"304502210090109424df964562737fd1b5ce2f06b427856ae933c37f279af199f64fc530760220290cf4491328fc947f4d73f0032e151aa09caf8e085d0f0306fa355c0624dcac"},{label:"Expiration Date",path:"deadline",signature:"3044022060825e02b00e4487917d073f701639b1ca812f21f1cf588fa8eb545a59b1fec8022073ca7918a322dfeb966dfe5239cc1a213c14e67a32f5f51e14e53c05f4149783"}]},"137:0x33c6eec1723b12c46732f7ab41398de45641fa42:2a4e40fa701836b6f11303b841424a6f3a47a5313c810b6651517fd1":{contractName:{label:"Mint",signature:"30440220513be6e618840924202f319870537e0c1f1eb2e684c0a2c61152fc4c20b41c550220026e22f2cd2e12a6b48f97bbe362600556ce3fe5e8b292c05c89c591ea446e2b"},fields:[{label:"Receiver",path:"receiver",signature:"304502210089eeb41d1ba1235fe8319c6a248e1ac66d2598979d265e2d4cf16abc34ba47f302205a59e802e42b3268441980b4708600ab6e05e4c55de7407610987532cf73462e"},{label:"Quest Type",path:"categoryId",signature:"3045022100bc6cc7ae4c2b3b4d43acea4c513e09d11736275fade4c0bd834d94f6ebd3893302203045ae14bfbaa4ef3bc0d9cf76f29cd4c90859464290632ee72b20f4b5c37f8b"},{label:"Collection",path:"collectionId",signature:"304402207537d928b803882aac63dadb7fd512f4b959c0e1a737ce7594c9b9e0a0c661170220587298e0e8e2eae94da28564b1bdd7f62273d7e3707665a7966f1b04a15f061b"}]},"137:0xf3cd476c3c4d3ac5ca2724767f269070ca09a043:16c6594547c8c6af18ca0d8b500976bfb7f38764060cec3792c2aad3":{contractName:{label:"AugustusRFQ ERC20 order",signature:"3045022100a887a8b2f40695509ac6e040feb1a4a088fee459fd7e76cb137ea7c06b0a0b930220617b514271c05679e7ce04860ffca703ad2a21f4a45cce34b40e38624cf7ec13"},fields:[{label:"Nonce and metadata",path:"nonceAndMeta",signature:"30450221009fcaf300fef36d00f64c3d5e92991e67fd93862f8eddba0b8472568b5c66e38d02203a26f3aad1c0cf6638dea961f8f5e4ba5f72272bc7f1e33afac897a3b5b51604"},{label:"Expiration time",path:"expiry",signature:"3045022100984f166ee1744b4b69e24ed1e49fbaf43a24e82dd5b7d2103cf8ca854ff49e0a0220326ab17879b902521fa032a89c5c984e52bf3e31c8336cd67a1ce198d7c36e2d"},{label:"Maker asset address",path:"makerAsset",signature:"3045022100f4ec14863e0512804fc69d82fe17bf576340ae8005d0c48520cefb3254b102f702205fea57ba3919071157ff3ee0c93472e936f1dc079bcb0c447bb87ad86e505ea2"},{label:"Taker asset address",path:"takerAsset",signature:"3045022100957771ad2eced04af9750c1df10cc5b5b913fd3f9fe83408baa766573ed34221022055a1ba30b3a8895a011719ac54adaf7bfd24fe2c5041a90348097f719bed0dc7"},{label:"Maker address",path:"maker",signature:"3045022100f25edb42b652d5c645de567c201a1e6a64b0d6b23274cde08046d955cd2573860220129bbded4e33150cc38b93033b2d70d5fa141066f1ed7c603b5515ab8cdb2fca"},{label:"Taker address",path:"taker",signature:"3045022100c8790938f88557986c769102d31603849dc8c560cc03a45db99ddc90d69306690220295950348fffc22fbb898d75e768edb1edcb1c8772cc3518ff9687e957a87e50"},{label:"Maker amount",path:"makerAmount",signature:"3045022100b5e1dc4e5f69fd80611a4f5c7d306ac6aca4a2a2103515d761557e532884ca8702204b86dd5c323345242f1c1b263ba035932a10a5b0eeaddbc79fa10db27aa9d7d4"},{label:"Taker amount",path:"takerAmount",signature:"3045022100bd1de29559311612a7d0bca3c61b10d9ddf0753be7c372ebb95e0b69b674c01102207d685aa2b0a2309ad094a5fc8e09210681781f9a4294e4c7973d0ecf1adabcbd"}]},"137:0xf3cd476c3c4d3ac5ca2724767f269070ca09a043:affaa50b47c793acb6b9f912325d898538d409f735b8f312a1914623":{contractName:{label:"AugustusRFQ NFT order",signature:"3045022100b9798555ab901ed3cefcdec4aabd9418f3561fba299833ceadbf9d3043a996a7022037388e3956ce02764088733d92384fb4e669754b037e8a913995d761ac0d5cdf"},fields:[{label:"Nonce and metadata",path:"nonceAndMeta",signature:"3045022100b57c5877ce124196316dde0e2fb0f18258521cc2c7c27405bde78008bca27d8d02202053d4696b28b40fd1a16e7a179020c7d633e4548da0bd92f9442c24da12d510"},{label:"Expiration time",path:"expiry",signature:"3045022100b35db3057953f7b747d4423f688d8a3fb3101729f37af65c4ac4fc9a7ee8fb8d022033f4d70422b437593f00af75828ff067f914f825bd3075f8462080bf4e0f9ae0"},{label:"Maker asset encoded",path:"makerAsset",signature:"3045022100e2e0f280d333692a776343669d6f17dac3ded8935d5875964d5ac6b05bb093f80220589afeaf7a7baf3b5964b439111d07deafe25be8a32b43640a2cc073a7257aa6"},{label:"Maker asset NFT ID",path:"makerAssetId",signature:"304302201e35015cc3bbd6ca28bd57eb970cf1eb05826a4988c1238e951574f8804f28c2021f0cae62ed8199b725a39e714e60c92fe522ac7992c3dc1a27866f749547de89"},{label:"Taker asset encoded",path:"takerAsset",signature:"304502210094d2c3de8a61bf940dc5c8132070ee0566ab6d0059f1eff5aec3ba1ec04740a202200fb41470f2693427466a9ce580d5c9ff12243f848351c7aa2ac070c1618896e2"},{label:"Taker asset NFT ID",path:"takerAssetId",signature:"3045022100f9b55eafa8d519298960b040f36a7479ace9d43b677d243d22c3194147dfa033022025f7a2962e342ee1572f814cd8b8cba1382deb20054475ba9df9dd321bc9fcc7"},{label:"Maker address",path:"maker",signature:"304402201aa4061287e14289ff1c4fdffe8ddd811775aae4bb6577970ebb87735102a5ba02207d9c89254e9698a7aff849a87c2a163ce9793212a5fe3745e446393c6a71ec46"},{label:"Taker address",path:"taker",signature:"304402207ca92ed4b465b4fe1d4b2dd65561165a70b54c8dd132dcf15031c799c8ab22fe022041d7bd664003c62e949cdb0ed09a744ac6adce7d6e676e4de22437a830edcf74"},{label:"Maker amount",path:"makerAmount",signature:"3044022038901c22513acf13bac39f553c763d26ee32c3e6e215ca3cb69da0274ca901c702204fce716fc91f3cb7ac7da446bd3432020d002c5a62c48d199d7b4379fe93c9f1"},{label:"Taker amount",path:"takerAmount",signature:"304402203361ee1439f545c9664035be586925b2fb4878de9dbcdc7a519b5eb95a44ca6e02205f905942febcf5342577b5af149ea4deea5e6d0e1ae17356bb1d0628d8ccf8ff"}]},"137:0x35f8aee672cde8e5fd09c93d2bfe4ff5a9cf0756:4776d13d863bd29241312beab87bd487ba5648c8c71919e9e5025e7b":{contractName:{label:"Lazy Mint ERC-721",signature:"3045022100977ad189fb3f8c809caef784ca6c66fcda1c98274d92219b07416e43f43187af022051b069af307aef8d7b3b3aaf815eaf0e7e91c55f994616f3ea88293dd69f217c"},fields:[{label:"Token ID",path:"tokenId",signature:"30440220403fc14ad30f3f3ea597f75d88371c83ef2e10130a5143faeda87dc507fb9aa2022056202bc01b283e0f625b82c73db84ca3f17eef6d9eea89709aa0a88eae17096c"},{label:"Token URI",path:"tokenURI",signature:"3045022100ce280997a6b39acd5dc3522401c205eb4719b4b43e7e673958f1c7b7b97a8f59022042eb6a70f1f45c771a697eb85b71ba58acc8074ac436d27840ec1325423d7e0c"},{label:"Creator account address",path:"creators.[].account",signature:"3045022100f072042cace3b6ce605bbf0db7c3941928cb1ac5b6011bf47e04d76f57bbf392022054eb24e12319d88144a5e4d15a22271f2f1285d51f1b7f48bfc46ff1724c1741"},{label:"Creator value (10000 = 100%)",path:"creators.[].value",signature:"3045022100b5517383a1f9f7281859e1e3ebcc588770ac08fe7961d83ebff3ff922674fa3302204c490c86d4d987875aa55c089a6c8bab4414a742bc7df19f67261a319d4d8c17"},{label:"Royalties account address",path:"royalties.[].account",signature:"304402203660c0f0da24c89206e992e46c399d75d4e0981dd86bc145f4ed0d0ef469b47402200948f415f220225eaa67fb03749b2d5ea1ca8dfa76eda34d15c8f95746e30bd4"},{label:"Royalties value (10000 = 100%)",path:"royalties.[].value",signature:"30440220747d86766a08b5bf78182dadf5ace3813cb8190266e5d1a72f2d94a387fd6ba5022006c69b8171a47fa15ef906fac4546856dd9467a8e1036d89e323614e64d29715"}]},"137:0x35f8aee672cde8e5fd09c93d2bfe4ff5a9cf0756:82dc7c771ad33e33d4e1b89d932d7574d87b8ef5d7d9c0d6f0be97a8":{contractName:{label:"Meta Transaction",signature:"304402203e256b1407f82dbe395bee10e34bf5b995c3fa91737172b58fb41bcf8e006eea0220046543fdb21b8f65e050b57081915c083fab2abc1cdd663ce53b1c792dbfdfb2"},fields:[{label:"User Address",path:"from",signature:"304402204576c4999dd6a70df131dfd032667a42695d333a07b3599ec6d72843c54b48b502202cf424d057bffceadbbcd9023b2241bab6d2faf8b7324fbdf87f5daa9789fe38"},{label:"Meta Transaction Nonce",path:"nonce",signature:"3045022100e094b23ebe8102c3c1aa5f802c33ed56f48bc94f6446b289ce358ea60ac375c0022013255aba7dc03fcfe30c7eacdf7a14ad0c51f389ddd51f7c4ba6e8d9bbf3dbb7"}]},"137:0x7f19564c35c681099c0c857a7141836cf7edaa53:139c059f886c2b9b41f05a6c4ec2578a048d18aaadbc095609e5df4b":{contractName:{label:"List Order",signature:"30450221008b4ee6f1b492d19243afc4715d1f0cd9bf79a1aeb61fbf58f0e1323bce9dbc99022001a8a548f081eba23f33f03e20f478c33bd264efb3d8bfa16ce96e0b69ad5428"},fields:[{label:"Order maker address",path:"maker",signature:"3045022100f9851e9dfd9706740307e7829705b3e049390755e36b26a059f28d6bb47ac949022029a4efc35a2264fbe8f88eee1f83c430fb5e96bbf55e6deb31a60826cb0203b3"},{label:"Order make asset value",path:"makeAsset.value",signature:"304402203bf13f37325f60973b02d5433857676ce135f94011047bbfdd2b97c30db1a069022029f409c7689891c222cdec4e63d143938ff73a4f6cffb0c5d56228d572d25fc2"},{label:"Order taker address",path:"taker",signature:"3045022100bcdc72ba9f16a3ac3b73ad04f445a60958a7ea644511d9b917c5ae52be52c76b02206a68b66cc24c79e45687c07a201f7e910444a66a657c615c5854ac7065b0c6fc"},{label:"Order take asset value",path:"takeAsset.value",signature:"3045022100c23622dc64172dfedc8fae04d5fa24e25f598bea659e703839dccf19736ba13a02207554a945d0e9c2816860ec7a6c4aab9088fb58f5316c1007d82f0add61693954"},{label:"Order start time",path:"start",signature:"304402200cfe7613b90190a2c4dafaa661e5778a7756444e593a8e16105da315231df264022025e1daecd1752763decb7c51389a5eb97037536ecea3781e70ab428d75e1278b"},{label:"Order end time",path:"end",signature:"3045022100d0047bfc769190c5a173c8bdf79a2fdef008f0674ac04f3a7fe100553f41dafc022030e7ef0a1dd8f6f4131da237f6c33a331add85dd747f7f9749806759767d0880"}]},"137:0x7f19564c35c681099c0c857a7141836cf7edaa53:82dc7c771ad33e33d4e1b89d932d7574d87b8ef5d7d9c0d6f0be97a8":{contractName:{label:"Meta Transaction",signature:"3045022100a2f95042a915f8ae76b54b1f012271a44356484ea6d4963b81e6806ed6fe80500220564155498a275d3fe5eec595fad3858cb2d7fa85178b98208d09a886a1485257"},fields:[{label:"User Address",path:"from",signature:"3044022051a39f6c809110faf6aa95fde98315c0c2b2cac34c31d927c058a2c0ebc158cd02206ccfac20b0327ac6e2ca08d5d53aef189b2bbe8bc010ae9002b25edcf43c2f06"},{label:"Meta Transaction Nonce",path:"nonce",signature:"3045022100c1e15f064b9cf3d8cb2c6b297318c543066a12868419121c7062ccb7fb2f619b02202c3079f47124d6a25178d4b8431acd0bb08f44e9a0ec302e71bb4cc9b49a05a9"}]},"137:0xa2d9ded6115b7b7208459450d676f0127418ae7a:07bed12ab07fe09633d57ede321ed3dd0940d654b9d34a379c4997b9":{contractName:{label:"Lazy Mint ERC-1155",signature:"3045022100b85f48fd591345542f9e2271b4f33e71287a703eda9f9f7b54458dea60fb59fa0220661f4281eff16352e5e8db92a254b6b74ac0f20e3d41c9042a3c7c9f7397bd08"},fields:[{label:"Token ID",path:"tokenId",signature:"304402203dfd604170efb9379c36e17439f15f441b437aecf2d9abd0dc8b0c757c15d1fa022007fde07992c2b3797e7aacb7309cb60d494856d7a9d5866981a8948abf4d6a9c"},{label:"Token URI",path:"tokenURI",signature:"3045022100a334814c15bfe1474472e56201aa83aa7016648b2a92aa2ae7c4d86b8a412eaf0220416654d59af289a253a96cbe4f5c9b75c2129d603d94cb3c7966cbea682f542a"},{label:"Token Supply",path:"supply",signature:"3045022100a180585fc34f26b83b50c1d7609a0623b85b76267e393bf2871f41790487bf5902206c296108c56f2a1557a66a04f05bbcd7f0e0e0cd7a7a9764783673c0cda21d1f"},{label:"Creator account address",path:"creators.[].account",signature:"304402200a32f52a36f61e3b62af734ceea6e02ebf44e9bbafccb92b2570b7ae9666638e02205e8a0ee1634919bab75369b611257e17c12cf379a4b83e3da2089de13863baa0"},{label:"Creator value (10000 = 100%)",path:"creators.[].value",signature:"304502210092c988b7806250d99ca2760167a0c72f4c7e20f8f9174c519421bba8adc03c0a022032f33a3843e31b8ad17991e8eb3e3b922c5c2b9570d930fa9456b6f59b8974d3"},{label:"Royalties account address",path:"royalties.[].account",signature:"304502210081e5ed5701d2bb497c4b1cadd0ca61220b1078357f7e3ace908c01fcfcd3abad02203b03cb75eeabcd49777362466e3af9a461ad39059238748ed7d902f988db3318"},{label:"Royalties value (10000 = 100%)",path:"royalties.[].value",signature:"3045022100cc555652ef532386da9ad2405536aaa7adbe4cdac73ae9b2a8d4b0659eb4013a0220030799c1a813bef66c6395c7305a1f98e3bfc0bd045917d63bf7bd24e09fbebf"}]},"137:0xa2d9ded6115b7b7208459450d676f0127418ae7a:82dc7c771ad33e33d4e1b89d932d7574d87b8ef5d7d9c0d6f0be97a8":{contractName:{label:"Meta Transaction",signature:"304402202e2b7810798bb8d8094ff46e47ae09c820b374420984f5c9845139f7995b5266022050244aa907e45d7ff4ffc0b383262c4425d32aee4190bfc09fff359163268b73"},fields:[{label:"User Address",path:"from",signature:"3045022100da2c6c45ce4014375aec27ce7dfc470a066a53a3ba812da7f4fac641fc48334502202ce049c05a76e19fc4195a323464383f3eca62f33a435ad5807716af1a83af4e"},{label:"Meta Transaction Nonce",path:"nonce",signature:"304402207b53dc30da4e7360a2deb22ab0ee2ddca9dda1c807095a57751dc395d7d503c602200f464f277a17558cab3b891fe8d4fb232b5783f26f6813da77ceeba527bbe1c5"}]}}});var Il=U(qe=>{"use strict";var tP=qe&&qe.__awaiter||function(A,a,e,f){function c(d){return d instanceof e?d:new e(function(b){b(d)})}return new(e||(e=Promise))(function(d,b){function r(t){try{l(f.next(t))}catch(B){b(B)}}function n(t){try{l(f.throw(t))}catch(B){b(B)}}function l(t){t.done?d(t.value):c(t.value).then(r,n)}l((f=f.apply(A,a||[])).next())})},uP=qe&&qe.__generator||function(A,a){var e={label:0,sent:function(){if(d[0]&1)throw d[1];return d[1]},trys:[],ops:[]},f,c,d,b;return b={next:r(0),throw:r(1),return:r(2)},typeof Symbol=="function"&&(b[Symbol.iterator]=function(){return this}),b;function r(l){return function(t){return n([l,t])}}function n(l){if(f)throw new TypeError("Generator is already executing.");for(;e;)try{if(f=1,c&&(d=l[0]&2?c.return:l[0]?c.throw||((d=c.return)&&d.call(c),0):c.next)&&!(d=d.call(c,l[1])).done)return d;switch(c=0,d&&(l=[l[0]&2,d.value]),l[0]){case 0:case 1:d=l;break;case 4:return e.label++,{value:l[1],done:!1};case 5:e.label++,c=l[1],l=[0];continue;case 7:l=e.ops.pop(),e.trys.pop();continue;default:if(d=e.trys,!(d=d.length>0&&d[d.length-1])&&(l[0]===6||l[0]===2)){e=0;continue}if(l[0]===3&&(!d||l[1]>d[0]&&l[1]0)&&!(c=f.next()).done;)d.push(c.value)}catch(r){b={error:r}}finally{try{c&&!c.done&&(e=f.return)&&e.call(f)}finally{if(b)throw b.error}}return d},iP=qe&&qe.__spreadArray||function(A,a,e){if(e||arguments.length===2)for(var f=0,c=a.length,d;f=16)throw new Error("Eth utils - constructTypeDescByteString - Cannot accept a typeValue >= 16 because the typeValue can only be 4 bits in binary"+{isArray:A,typeSize:a,typeValue:e});var f=A?"1":"0",c=typeof a=="number"?"1":"0",d="00",b=e.toString(2).padStart(4,"0");return(0,U2.intAsHexBytes)(parseInt(f+c+d+b,2),1)};qe.constructTypeDescByteString=hP;var CP=function(A){var a,e,f,c,d=A.name,b=A.type,r=W3((0,qe.destructTypeFromString)(b),2),n=r[0],l=r[1],t=Boolean(l.length),B=qe.EIP712_TYPE_PROPERTIES[((a=n?.name)===null||a===void 0?void 0:a.toUpperCase())||""]||qe.EIP712_TYPE_PROPERTIES.CUSTOM,x=B.key(n?.bits),p=B.sizeInBits(n?.bits),w=(0,qe.constructTypeDescByteString)(t,p,x),y=[Buffer.from(w,"hex")];return B===qe.EIP712_TYPE_PROPERTIES.CUSTOM&&(y.push(Buffer.from((0,U2.intAsHexBytes)((f=(e=n?.name)===null||e===void 0?void 0:e.length)!==null&&f!==void 0?f:0,1),"hex")),y.push(Buffer.from((c=n?.name)!==null&&c!==void 0?c:"","utf-8"))),typeof p=="number"&&y.push(Buffer.from((0,U2.intAsHexBytes)(p,1),"hex")),t&&(y.push(Buffer.from((0,U2.intAsHexBytes)(l.length,1),"hex")),l.forEach(function(N){typeof N=="number"?y.push(Buffer.from((0,U2.intAsHexBytes)(b6.FIXED,1),"hex"),Buffer.from((0,U2.intAsHexBytes)(N,1),"hex")):y.push(Buffer.from((0,U2.intAsHexBytes)(b6.DYNAMIC,1),"hex"))})),y.push(Buffer.from((0,U2.intAsHexBytes)(d.length,1),"hex"),Buffer.from(d,"utf-8")),Buffer.concat(y)};qe.makeTypeEntryStructBuffer=CP;function gP(A){return typeof A=="object"&&"types"in A&&"primaryType"in A&&"domain"in A&&"message"in A}qe.isEIP712Message=gP;var IP=function(A){var a=Object.keys(A).sort();return a.reduce(function(e,f){var c=function(){return Array.isArray(A[f])?A[f].map(function(d){return(0,qe.sortObjectAlphabetically)(d)}):A[f]}();return e[f]=c,e},{})};qe.sortObjectAlphabetically=IP;var FP=function(A){var a=A.types,e=(0,qe.sortObjectAlphabetically)(a);return(0,sP.default)(JSON.stringify(e).replace(" ","")).toString()};qe.getSchemaHashForMessage=FP;var DP=function(A,a){return tP(void 0,void 0,void 0,function(){var e,f,c,d,b,r,n,l;return uP(this,function(t){switch(t.label){case 0:e=(0,qe.getSchemaHashForMessage)(A),f="".concat((r=(b=A.domain)===null||b===void 0?void 0:b.chainId)!==null&&r!==void 0?r:0,":").concat((l=(n=A.domain)===null||n===void 0?void 0:n.verifyingContract)!==null&&l!==void 0?l:EP,":").concat(e),t.label=1;case 1:return t.trys.push([1,4,,5]),a?[4,oP.default.get("".concat(a,"/eip712.json"))]:[3,3];case 2:return c=t.sent().data,[2,c[f]||Gg.default[f]];case 3:throw new Error;case 4:return d=t.sent(),[2,Gg.default[f]];case 5:return[2]}})})};qe.getFiltersForMessage=DP});var Hg=U(R0=>{"use strict";var n6=R0&&R0.__assign||function(){return n6=Object.assign||function(A){for(var a,e=1,f=arguments.length;e0&&d[d.length-1])&&(l[0]===6||l[0]===2)){e=0;continue}if(l[0]===3&&(!d||l[1]>d[0]&&l[1]0)&&!(c=f.next()).done;)d.push(c.value)}catch(r){b={error:r}}finally{try{c&&!c.done&&(e=f.return)&&e.call(f)}finally{if(b)throw b.error}}return d},M1=R0&&R0.__values||function(A){var a=typeof Symbol=="function"&&Symbol.iterator,e=a&&A[a],f=0;if(e)return e.call(A);if(A&&typeof A.length=="number")return{next:function(){return A&&f>=A.length&&(A=void 0),{value:A&&A[f++],done:!A}}};throw new TypeError(a?"Object is not iterable.":"Symbol.iterator is not defined.")};R0.__esModule=!0;R0.getFiltersForMessage=R0.isEIP712Message=R0.signEIP712HashedMessage=R0.signEIP712Message=void 0;var I2=O3(),mP=Z3(),KA=Il(),xP=function(A,a,e){var f,c={};for(var d in a)c[d]=(f=a[d])===null||f===void 0?void 0:f.reduce(function(r,n){var l;return n6(n6({},r),(l={},l[n.name]=n.type,l))},{});var b=function(r,n,l){return l===void 0&&(l=""),u6(void 0,void 0,void 0,function(){var t,B,x,p,w,y,N,Q,P,V,q,_,Z,de,ce,H,k,E,D,h,u,o,C,m,g;return i6(this,function(i){switch(i.label){case 0:return t=r6(r,2),B=t[0],x=t[1],p=r6(x),w=p[0],y=p.slice(1),N=!KA.EIP712_TYPE_PROPERTIES[((m=B?.name)===null||m===void 0?void 0:m.toUpperCase())||""],Array.isArray(n)&&typeof w<"u"?[4,t6(A,{structType:"array",value:n.length})]:[3,10];case 1:i.sent(),i.label=2;case 2:i.trys.push([2,7,8,9]),Q=M1(n),P=Q.next(),i.label=3;case 3:return P.done?[3,6]:(V=P.value,[4,b([B,y],V,"".concat(l,".[]"))]);case 4:i.sent(),i.label=5;case 5:return P=Q.next(),[3,3];case 6:return[3,9];case 7:return q=i.sent(),h={error:q},[3,9];case 8:try{P&&!P.done&&(u=Q.return)&&u.call(Q)}finally{if(h)throw h.error}return[7];case 9:return[3,23];case 10:if(!N)return[3,19];i.label=11;case 11:i.trys.push([11,16,17,18]),_=M1(Object.entries(n)),Z=_.next(),i.label=12;case 12:return Z.done?[3,15]:(de=r6(Z.value,2),ce=de[0],H=de[1],k=(g=c[B?.name||""])===null||g===void 0?void 0:g[ce],k?[4,b((0,KA.destructTypeFromString)(k),H,"".concat(l,".").concat(ce))]:[3,14]);case 13:i.sent(),i.label=14;case 14:return Z=_.next(),[3,12];case 15:return[3,18];case 16:return E=i.sent(),o={error:E},[3,18];case 17:try{Z&&!Z.done&&(C=_.return)&&C.call(_)}finally{if(o)throw o.error}return[7];case 18:return[3,23];case 19:return D=e?.fields.find(function(I){return l===I.path}),D?[4,Fl(A,"showField",{displayName:D.label,sig:D.signature})]:[3,21];case 20:i.sent(),i.label=21;case 21:return[4,t6(A,{structType:"field",value:{data:n,type:B?.name||"",sizeInBits:B?.bits}})];case 22:i.sent(),i.label=23;case 23:return[2]}})})};return b},Vg=function(A,a){var e;(function(b){b[b.CLA=224]="CLA",b[b.INS=26]="INS",b[b.P1_complete=0]="P1_complete",b[b.P1_partial=1]="P1_partial",b[b.P2_name=0]="P2_name",b[b.P2_field=255]="P2_field"})(e||(e={}));var f=a.structType,c=a.value,d=f==="name"&&typeof c=="string"?Buffer.from(c,"utf-8"):c;return A.send(e.CLA,e.INS,e.P1_complete,f==="name"?e.P2_name:e.P2_field,d)},t6=function(A,a){return u6(void 0,void 0,void 0,function(){var e,f,c,d,b,r,n,l,t,B,x,p,w,y,N,Q,P,V;return i6(this,function(q){switch(q.label){case 0:if(function(_){_[_.CLA=224]="CLA",_[_.INS=28]="INS",_[_.P1_complete=0]="P1_complete",_[_.P1_partial=1]="P1_partial",_[_.P2_root=0]="P2_root",_[_.P2_array=15]="P2_array",_[_.P2_field=255]="P2_field"}(e||(e={})),f=a.structType,c=a.value,f==="root")return[2,A.send(e.CLA,e.INS,e.P1_complete,e.P2_root,Buffer.from(c,"utf-8"))];if(f==="array")return[2,A.send(e.CLA,e.INS,e.P1_complete,e.P2_array,Buffer.from((0,I2.intAsHexBytes)(c,1),"hex"))];if(f!=="field")return[3,8];if(d=c.data,b=c.type,r=c.sizeInBits,n=(V=KA.EIP712_TYPE_ENCODERS[b.toUpperCase()])===null||V===void 0?void 0:V.call(KA.EIP712_TYPE_ENCODERS,d,r),!n)return[3,8];l=Math.floor(n.length/256),t=n.length%256,B=Buffer.concat([Buffer.from((0,I2.intAsHexBytes)(l,1),"hex"),Buffer.from((0,I2.intAsHexBytes)(t,1),"hex"),n]),x=new Array(Math.ceil(B.length/256)).fill(null).map(function(_,Z){return B.slice(Z*255,(Z+1)*255)}),q.label=1;case 1:q.trys.push([1,6,7,8]),p=M1(x),w=p.next(),q.label=2;case 2:return w.done?[3,5]:(y=w.value,[4,A.send(e.CLA,e.INS,y!==x[x.length-1]?e.P1_partial:e.P1_complete,e.P2_field,y)]);case 3:q.sent(),q.label=4;case 4:return w=p.next(),[3,2];case 5:return[3,8];case 6:return N=q.sent(),Q={error:N},[3,8];case 7:try{w&&!w.done&&(P=p.return)&&P.call(p)}finally{if(Q)throw Q.error}return[7];case 8:return[2,Promise.resolve()]}})})};function Fl(A,a,e){return u6(this,void 0,void 0,function(){var f,c,n,d,l,t,B,b,x,p,w,r,n,l,t,B,x,p,w;return i6(this,function(y){switch(function(N){N[N.CLA=224]="CLA",N[N.INS=30]="INS",N[N.P1=0]="P1",N[N.P2_activate=0]="P2_activate",N[N.P2_contract_name=15]="P2_contract_name",N[N.P2_show_field=255]="P2_show_field"}(f||(f={})),a){case"activate":return[2,A.send(f.CLA,f.INS,f.P1,f.P2_activate)];case"contractName":return c=e,n=c.displayName,d=c.filtersCount,l=c.sig,t=Buffer.from((0,I2.intAsHexBytes)(n.length,1),"hex"),B=Buffer.from(n),b=Buffer.from((0,I2.intAsHexBytes)(d,1),"hex"),x=Buffer.from((0,I2.intAsHexBytes)(l.length/2,1),"hex"),p=Buffer.from(l,"hex"),w=Buffer.concat([t,B,b,x,p]),[2,A.send(f.CLA,f.INS,f.P1,f.P2_contract_name,w)];case"showField":return r=e,n=r.displayName,l=r.sig,t=Buffer.from((0,I2.intAsHexBytes)(n.length,1),"hex"),B=Buffer.from(n),x=Buffer.from((0,I2.intAsHexBytes)(l.length/2,1),"hex"),p=Buffer.from(l,"hex"),w=Buffer.concat([t,B,x,p]),[2,A.send(f.CLA,f.INS,f.P1,f.P2_show_field,w)]}return[2]})})}var pP=function(A,a,e,f,c){return f===void 0&&(f=!1),u6(void 0,void 0,void 0,function(){var d,b,r,n,l,t,B,x,p,w,y,N,Q,P,V,q,_,Z,W,de,ce,H,k,E,D,h,u,o,C,W,m,g,i,I,R,s,F,ee,T,J,W,Ae,S,M,v,O,K,G,X,j,Y,$,fe;return i6(this,function(ae){switch(ae.label){case 0:return function(be){be[be.CLA=224]="CLA",be[be.INS=12]="INS",be[be.P1=0]="P1",be[be.P2_v0=0]="P2_v0",be[be.P2_full=1]="P2_full"}(d||(d={})),b=e.primaryType,r=e.types,n=e.domain,l=e.message,t=(0,mP.getLoadConfig)(c).cryptoassetsBaseURL,B=(0,KA.sortObjectAlphabetically)(r),[4,(0,KA.getFiltersForMessage)(e,t)];case 1:x=ae.sent(),p=Object.entries(B),ae.label=2;case 2:ae.trys.push([2,14,15,16]),w=M1(p),y=w.next(),ae.label=3;case 3:return y.done?[3,13]:(N=r6(y.value,2),Q=N[0],P=N[1],[4,Vg(A,{structType:"name",value:Q})]);case 4:ae.sent(),ae.label=5;case 5:ae.trys.push([5,10,11,12]),V=(G=void 0,M1(P)),q=V.next(),ae.label=6;case 6:return q.done?[3,9]:(_=q.value,Z=_.name,W=_.type,de=(0,KA.makeTypeEntryStructBuffer)({name:Z,type:W}),[4,Vg(A,{structType:"field",value:de})]);case 7:ae.sent(),ae.label=8;case 8:return q=V.next(),[3,6];case 9:return[3,12];case 10:return ce=ae.sent(),G={error:ce},[3,12];case 11:try{q&&!q.done&&(X=V.return)&&X.call(V)}finally{if(G)throw G.error}return[7];case 12:return y=w.next(),[3,3];case 13:return[3,16];case 14:return H=ae.sent(),O={error:H},[3,16];case 15:try{y&&!y.done&&(K=w.return)&&K.call(w)}finally{if(O)throw O.error}return[7];case 16:return x?[4,Fl(A,"activate")]:[3,18];case 17:ae.sent(),ae.label=18;case 18:return k=xP(A,B,x),E="EIP712Domain",[4,t6(A,{structType:"root",value:E})];case 19:ae.sent(),D=B[E],ae.label=20;case 20:ae.trys.push([20,25,26,27]),h=M1(D),u=h.next(),ae.label=21;case 21:return u.done?[3,24]:(o=u.value,C=o.name,W=o.type,m=n[C],[4,k((0,KA.destructTypeFromString)(W),m)]);case 22:ae.sent(),ae.label=23;case 23:return u=h.next(),[3,21];case 24:return[3,27];case 25:return g=ae.sent(),j={error:g},[3,27];case 26:try{u&&!u.done&&(Y=h.return)&&Y.call(h)}finally{if(j)throw j.error}return[7];case 27:return x?(i=x.contractName,I=x.fields,R={displayName:i.label,filtersCount:I.length,sig:i.signature},[4,Fl(A,"contractName",R)]):[3,29];case 28:ae.sent(),ae.label=29;case 29:return[4,t6(A,{structType:"root",value:b})];case 30:ae.sent(),s=B[b],ae.label=31;case 31:ae.trys.push([31,36,37,38]),F=M1(s),ee=F.next(),ae.label=32;case 32:return ee.done?[3,35]:(T=ee.value,J=T.name,W=T.type,Ae=l[J],[4,k((0,KA.destructTypeFromString)(W),Ae,J)]);case 33:ae.sent(),ae.label=34;case 34:return ee=F.next(),[3,32];case 35:return[3,38];case 36:return S=ae.sent(),$={error:S},[3,38];case 37:try{ee&&!ee.done&&(fe=F.return)&&fe.call(F)}finally{if($)throw $.error}return[7];case 38:return M=(0,I2.splitPath)(a),v=Buffer.alloc(1+M.length*4),v[0]=M.length,M.forEach(function(be,oe){v.writeUInt32BE(be,1+4*oe)}),[2,A.send(d.CLA,d.INS,d.P1,f?d.P2_v0:d.P2_full,v).then(function(be){var oe=be[0],re=be.slice(1,1+32).toString("hex"),ue=be.slice(1+32,1+32+32).toString("hex");return{v:oe,r:re,s:ue}})]}})})};R0.signEIP712Message=pP;var TP=function(A,a,e,f){var c=(0,I2.hexBuffer)(e),d=(0,I2.hexBuffer)(f),b=(0,I2.splitPath)(a),r=Buffer.alloc(1+b.length*4+32+32,0),n=0;return r[0]=b.length,b.forEach(function(l,t){r.writeUInt32BE(l,1+4*t)}),n=1+4*b.length,c.copy(r,n),n+=32,d.copy(r,n),A.send(224,12,0,0,r).then(function(l){var t=l[0],B=l.slice(1,1+32).toString("hex"),x=l.slice(1+32,1+32+32).toString("hex");return{v:t,r:B,s:x}})};R0.signEIP712HashedMessage=TP;var Jg=Il();Lg(R0,Jg,"isEIP712Message");Lg(R0,Jg,"getFiltersForMessage")});var qg=U(la=>{"use strict";var Dl=la&&la.__awaiter||function(A,a,e,f){function c(d){return d instanceof e?d:new e(function(b){b(d)})}return new(e||(e=Promise))(function(d,b){function r(t){try{l(f.next(t))}catch(B){b(B)}}function n(t){try{l(f.throw(t))}catch(B){b(B)}}function l(t){t.done?d(t.value):c(t.value).then(r,n)}l((f=f.apply(A,a||[])).next())})},K3=la&&la.__generator||function(A,a){var e={label:0,sent:function(){if(d[0]&1)throw d[1];return d[1]},trys:[],ops:[]},f,c,d,b;return b={next:r(0),throw:r(1),return:r(2)},typeof Symbol=="function"&&(b[Symbol.iterator]=function(){return this}),b;function r(l){return function(t){return n([l,t])}}function n(l){if(f)throw new TypeError("Generator is already executing.");for(;e;)try{if(f=1,c&&(d=l[0]&2?c.return:l[0]?c.throw||((d=c.return)&&d.call(c),0):c.next)&&!(d=d.call(c,l[1])).done)return d;switch(c=0,d&&(l=[l[0]&2,d.value]),l[0]){case 0:case 1:d=l;break;case 4:return e.label++,{value:l[1],done:!1};case 5:e.label++,c=l[1],l=[0];continue;case 7:l=e.ops.pop(),e.trys.pop();continue;default:if(d=e.trys,!(d=d.length>0&&d[d.length-1])&&(l[0]===6||l[0]===2)){e=0;continue}if(l[0]===3&&(!d||l[1]>d[0]&&l[1]=A.length&&(A=void 0),{value:A&&A[f++],done:!A}}};throw new TypeError(a?"Object is not iterable.":"Symbol.iterator is not defined.")},wP=la&&la.__importDefault||function(A){return A&&A.__esModule?A:{default:A}};la.__esModule=!0;la.getFiltersForMessage=la.isEIP712Message=la.ledgerService=void 0;var h0=O3(),Wg=wP(Dg());la.ledgerService=Wg.default;var Kg=kg(),s6=Hg();la.isEIP712Message=s6.isEIP712Message;la.getFiltersForMessage=s6.getFiltersForMessage;var Gf={eth:1,erc20:2,erc721:3,erc20mintable:4,erc721mintable:5},RP=function(A){return A&&A.statusCode===27264?new Kg.EthAppPleaseEnableContractData("Please enable Blind signing or Contract data in the Ethereum app Settings"):A},SP=function(){function A(a,e,f){e===void 0&&(e="w0w"),f===void 0&&(f={}),this.transport=a,this.loadConfig=f,a.decorateAppAPIMethods(this,["getAddress","provideERC20TokenInformation","signTransaction","signPersonalMessage","getAppConfiguration","signEIP712Message","signEIP712HashedMessage","starkGetPublicKey","starkSignOrder","starkSignOrder_v2","starkSignTransfer","starkSignTransfer_v2","starkProvideQuantum","starkProvideQuantum_v2","starkUnsafeSign","eth2GetPublicKey","eth2SetWithdrawalIndex","setExternalPlugin","setPlugin","getEIP1024PublicEncryptionKey","getEIP1024SharedSecret"],e)}return A.prototype.setLoadConfig=function(a){this.loadConfig=a},A.prototype.getAddress=function(a,e,f){var c=(0,h0.splitPath)(a),d=Buffer.alloc(1+c.length*4);return d[0]=c.length,c.forEach(function(b,r){d.writeUInt32BE(b,1+4*r)}),this.transport.send(224,2,e?1:0,f?1:0,d).then(function(b){var r=b[0],n=b[1+r];return{publicKey:b.slice(1,1+r).toString("hex"),address:"0x"+b.slice(1+r+1,1+r+1+n).toString("ascii"),chainCode:f?b.slice(1+r+1+n,1+r+1+n+32).toString("hex"):void 0}})},A.prototype.signTransaction=function(a,e,f){return Dl(this,void 0,void 0,function(){var c,d,b,r,n,l,t,B,x,p,w,y,N,Q,P,V,q,_,Z,de,ce,H,k,E,D,h,u,o,C,m,g,i,I,R,s,F,ee,T,J,W,Ae,S,M;return K3(this,function(v){switch(v.label){case 0:return f!==void 0?[3,2]:(console.warn(`hw-app-eth: signTransaction(path, rawTxHex, resolution): please provide the 'resolution' parameter. See https://github.com/LedgerHQ/ledgerjs/blob/master/packages/hw-app-eth/README.md \u2013 the previous signature is deprecated and providing the 3rd 'resolution' parameter explicitly will become mandatory so you have the control on the resolution and the fallback mecanism (e.g. fallback to blind signing or not).// Possible solution: + + import { ledgerService } from '@ledgerhq/hw-app-eth'; + + const resolution = await ledgerService.resolveTransaction(rawTxHex);`),[4,Wg.default.resolveTransaction(e,this.loadConfig,{externalPlugins:!0,erc20:!0}).catch(function(O){return console.warn("an error occurred in resolveTransaction => fallback to blind signing: "+String(O)),null})]);case 1:f=v.sent(),v.label=2;case 2:if(!f)return[3,31];v.label=3;case 3:v.trys.push([3,8,9,10]),c=o6(f.plugin),d=c.next(),v.label=4;case 4:return d.done?[3,7]:(b=d.value,[4,Xg(this.transport,b)]);case 5:v.sent(),v.label=6;case 6:return d=c.next(),[3,4];case 7:return[3,10];case 8:return r=v.sent(),F={error:r},[3,10];case 9:try{d&&!d.done&&(ee=c.return)&&ee.call(c)}finally{if(F)throw F.error}return[7];case 10:v.trys.push([10,15,16,17]),n=o6(f.externalPlugin),l=n.next(),v.label=11;case 11:return l.done?[3,14]:(t=l.value,B=t.payload,x=t.signature,[4,Yg(this.transport,B,x)]);case 12:v.sent(),v.label=13;case 13:return l=n.next(),[3,11];case 14:return[3,17];case 15:return p=v.sent(),T={error:p},[3,17];case 16:try{l&&!l.done&&(J=n.return)&&J.call(n)}finally{if(T)throw T.error}return[7];case 17:v.trys.push([17,22,23,24]),w=o6(f.nfts),y=w.next(),v.label=18;case 18:return y.done?[3,21]:(N=y.value,[4,vP(this.transport,Buffer.from(N,"hex"))]);case 19:v.sent(),v.label=20;case 20:return y=w.next(),[3,18];case 21:return[3,24];case 22:return Q=v.sent(),W={error:Q},[3,24];case 23:try{y&&!y.done&&(Ae=w.return)&&Ae.call(w)}finally{if(W)throw W.error}return[7];case 24:v.trys.push([24,29,30,31]),P=o6(f.erc20Tokens),V=P.next(),v.label=25;case 25:return V.done?[3,28]:(q=V.value,[4,Zg(this.transport,Buffer.from(q,"hex"))]);case 26:v.sent(),v.label=27;case 27:return V=P.next(),[3,25];case 28:return[3,31];case 29:return _=v.sent(),S={error:_},[3,31];case 30:try{V&&!V.done&&(M=P.return)&&M.call(P)}finally{if(S)throw S.error}return[7];case 31:Z=Buffer.from(e,"hex"),de=(0,h0.decodeTxInfo)(Z),ce=de.vrsOffset,H=de.txType,k=de.chainId,E=de.chainIdTruncated,D=(0,h0.splitPath)(a),u=0,o=function(){var O,K,G,X;return K3(this,function(j){switch(j.label){case 0:return O=u===0,K=O?150-1-D.length*4:150,G=u+K>Z.length?Z.length-u:K,ce!=0&&u+G>=ce&&(G=Z.length-u),X=Buffer.alloc(O?1+D.length*4+G:G),O?(X[0]=D.length,D.forEach(function(Y,$){X.writeUInt32BE(Y,1+4*$)}),Z.copy(X,1+4*D.length,u,u+G)):Z.copy(X,0,u,u+G),[4,C.transport.send(224,4,O?0:128,0,X).catch(function(Y){throw RP(Y)})];case 1:return h=j.sent(),u+=G,[2]}})},C=this,v.label=32;case 32:return u===Z.length?[3,34]:[5,o()];case 33:return v.sent(),[3,32];case 34:return m=h[0],g="",k.times(2).plus(35).plus(1).isGreaterThan(255)?(i=(E*2+35)%256,I=Math.abs(m-i),H!=null?g=I%2==1?"00":"01":g=k.times(2).plus(35).plus(I).toString(16)):g=m.toString(16),g.length%2==1&&(g="0"+g),R=h.slice(1,1+32).toString("hex"),s=h.slice(1+32,1+32+32).toString("hex"),[2,{v:g,r:R,s}]}})})},A.prototype.getAppConfiguration=function(){return this.transport.send(224,6,0,0).then(function(a){return{arbitraryDataEnabled:a[0]&1,erc20ProvisioningNecessary:a[0]&2,starkEnabled:a[0]&4,starkv2Supported:a[0]&8,version:""+a[1]+"."+a[2]+"."+a[3]}})},A.prototype.signPersonalMessage=function(a,e){return Dl(this,void 0,void 0,function(){var f,c,d,b,r,n,l,t,B;return K3(this,function(x){switch(x.label){case 0:f=(0,h0.splitPath)(a),c=0,d=Buffer.from(e,"hex"),r=function(){var p,w,y;return K3(this,function(N){switch(N.label){case 0:return p=c===0?150-1-f.length*4-4:150,w=c+p>d.length?d.length-c:p,y=Buffer.alloc(c===0?1+f.length*4+4+w:w),c===0?(y[0]=f.length,f.forEach(function(Q,P){y.writeUInt32BE(Q,1+4*P)}),y.writeUInt32BE(d.length,1+4*f.length),d.copy(y,1+4*f.length+4,c,c+w)):d.copy(y,0,c,c+w),[4,n.transport.send(224,8,c===0?0:128,0,y)];case 1:return b=N.sent(),c+=w,[2]}})},n=this,x.label=1;case 1:return c===d.length?[3,3]:[5,r()];case 2:return x.sent(),[3,1];case 3:return l=b[0],t=b.slice(1,1+32).toString("hex"),B=b.slice(1+32,1+32+32).toString("hex"),[2,{v:l,r:t,s:B}]}})})},A.prototype.signEIP712HashedMessage=function(a,e,f){return(0,s6.signEIP712HashedMessage)(this.transport,a,e,f)},A.prototype.signEIP712Message=function(a,e,f){return f===void 0&&(f=!1),Dl(this,void 0,void 0,function(){return K3(this,function(c){return[2,(0,s6.signEIP712Message)(this.transport,a,e,f,this.loadConfig)]})})},A.prototype.starkGetPublicKey=function(a,e){var f=(0,h0.splitPath)(a),c=Buffer.alloc(1+f.length*4);return c[0]=f.length,f.forEach(function(d,b){c.writeUInt32BE(d,1+4*b)}),this.transport.send(240,2,e?1:0,0,c).then(function(d){return d.slice(0,d.length-2)})},A.prototype.starkSignOrder=function(a,e,f,c,d,b,r,n,l,t,B){var x=(0,h0.maybeHexBuffer)(e),p=(0,h0.maybeHexBuffer)(c),w=(0,h0.splitPath)(a),y=Buffer.alloc(1+w.length*4+20+32+20+32+4+4+8+8+4+4,0),N=0;return y[0]=w.length,w.forEach(function(Q,P){y.writeUInt32BE(Q,1+4*P)}),N=1+4*w.length,x&&x.copy(y,N),N+=20,Buffer.from(f.toString(16).padStart(64,"0"),"hex").copy(y,N),N+=32,p&&p.copy(y,N),N+=20,Buffer.from(d.toString(16).padStart(64,"0"),"hex").copy(y,N),N+=32,y.writeUInt32BE(b,N),N+=4,y.writeUInt32BE(r,N),N+=4,Buffer.from(n.toString(16).padStart(16,"0"),"hex").copy(y,N),N+=8,Buffer.from(l.toString(16).padStart(16,"0"),"hex").copy(y,N),N+=8,y.writeUInt32BE(t,N),N+=4,y.writeUInt32BE(B,N),this.transport.send(240,4,1,0,y).then(function(Q){var P=Q.slice(1,33).toString("hex"),V=Q.slice(1+32,1+32+32).toString("hex");return{r:P,s:V}})},A.prototype.starkSignOrder_v2=function(a,e,f,c,d,b,r,n,l,t,B,x,p,w,y){var N=(0,h0.maybeHexBuffer)(e),Q=(0,h0.maybeHexBuffer)(b);if(!(f in Gf))throw new Error("eth.starkSignOrderv2 invalid source quantization type="+f);if(!(r in Gf))throw new Error("eth.starkSignOrderv2 invalid destination quantization type="+r);var P=(0,h0.splitPath)(a),V=Buffer.alloc(1+P.length*4+1+20+32+32+1+20+32+32+4+4+8+8+4+4,0),q=0;return V[0]=P.length,P.forEach(function(_,Z){V.writeUInt32BE(_,1+4*Z)}),q=1+4*P.length,V[q]=Gf[f],q++,N&&N.copy(V,q),q+=20,c&&Buffer.from(c.toString(16).padStart(64,"0"),"hex").copy(V,q),q+=32,d&&Buffer.from(d.toString(16).padStart(64,"0"),"hex").copy(V,q),q+=32,V[q]=Gf[r],q++,Q&&Q.copy(V,q),q+=20,n&&Buffer.from(n.toString(16).padStart(64,"0"),"hex").copy(V,q),q+=32,l&&Buffer.from(l.toString(16).padStart(64,"0"),"hex").copy(V,q),q+=32,V.writeUInt32BE(t,q),q+=4,V.writeUInt32BE(B,q),q+=4,Buffer.from(x.toString(16).padStart(16,"0"),"hex").copy(V,q),q+=8,Buffer.from(p.toString(16).padStart(16,"0"),"hex").copy(V,q),q+=8,V.writeUInt32BE(w,q),q+=4,V.writeUInt32BE(y,q),this.transport.send(240,4,3,0,V).then(function(_){var Z=_.slice(1,33).toString("hex"),de=_.slice(1+32,1+32+32).toString("hex");return{r:Z,s:de}})},A.prototype.starkSignTransfer=function(a,e,f,c,d,b,r,n,l){var t=(0,h0.maybeHexBuffer)(e),B=(0,h0.hexBuffer)(c),x=(0,h0.splitPath)(a),p=Buffer.alloc(1+x.length*4+20+32+32+4+4+8+4+4,0),w=0;return p[0]=x.length,x.forEach(function(y,N){p.writeUInt32BE(y,1+4*N)}),w=1+4*x.length,t&&t.copy(p,w),w+=20,Buffer.from(f.toString(16).padStart(64,"0"),"hex").copy(p,w),w+=32,B.copy(p,w),w+=32,p.writeUInt32BE(d,w),w+=4,p.writeUInt32BE(b,w),w+=4,Buffer.from(r.toString(16).padStart(16,"0"),"hex").copy(p,w),w+=8,p.writeUInt32BE(n,w),w+=4,p.writeUInt32BE(l,w),this.transport.send(240,4,2,0,p).then(function(y){var N=y.slice(1,33).toString("hex"),Q=y.slice(1+32,1+32+32).toString("hex");return{r:N,s:Q}})},A.prototype.starkSignTransfer_v2=function(a,e,f,c,d,b,r,n,l,t,B,x,p){var w=(0,h0.maybeHexBuffer)(e),y=(0,h0.hexBuffer)(b),N=(0,h0.maybeHexBuffer)(x);if(!(f in Gf))throw new Error("eth.starkSignTransferv2 invalid quantization type="+f);var Q=(0,h0.splitPath)(a),P=Buffer.alloc(1+Q.length*4+1+20+32+32+32+4+4+8+4+4+(N?32+20:0),0),V=0;return P[0]=Q.length,Q.forEach(function(q,_){P.writeUInt32BE(q,1+4*_)}),V=1+4*Q.length,P[V]=Gf[f],V++,w&&w.copy(P,V),V+=20,c&&Buffer.from(c.toString(16).padStart(64,"0"),"hex").copy(P,V),V+=32,d&&Buffer.from(d.toString(16).padStart(64,"0"),"hex").copy(P,V),V+=32,y.copy(P,V),V+=32,P.writeUInt32BE(r,V),V+=4,P.writeUInt32BE(n,V),V+=4,Buffer.from(l.toString(16).padStart(16,"0"),"hex").copy(P,V),V+=8,P.writeUInt32BE(t,V),V+=4,P.writeUInt32BE(B,V),N&&p&&(V+=4,Buffer.from(p.toString(16).padStart(64,"0"),"hex").copy(P,V),V+=32,N.copy(P,V)),this.transport.send(240,4,N?5:4,0,P).then(function(q){var _=q.slice(1,33).toString("hex"),Z=q.slice(1+32,1+32+32).toString("hex");return{r:_,s:Z}})},A.prototype.starkProvideQuantum=function(a,e){var f=(0,h0.maybeHexBuffer)(a),c=Buffer.alloc(20+32,0);return f&&f.copy(c,0),Buffer.from(e.toString(16).padStart(64,"0"),"hex").copy(c,20),this.transport.send(240,8,0,0,c).then(function(){return!0},function(d){if(d&&d.statusCode===27904)return!1;throw d})},A.prototype.starkProvideQuantum_v2=function(a,e,f,c){var d=(0,h0.maybeHexBuffer)(a);if(!(e in Gf))throw new Error("eth.starkProvideQuantumV2 invalid quantization type="+e);var b=Buffer.alloc(20+32+32,0),r=0;return d&&d.copy(b,r),r+=20,f&&Buffer.from(f.toString(16).padStart(64,"0"),"hex").copy(b,r),r+=32,c&&Buffer.from(c.toString(16).padStart(64,"0"),"hex").copy(b,r),this.transport.send(240,8,Gf[e],0,b).then(function(){return!0},function(n){if(n&&n.statusCode===27904)return!1;throw n})},A.prototype.starkUnsafeSign=function(a,e){var f=(0,h0.hexBuffer)(e),c=(0,h0.splitPath)(a),d=Buffer.alloc(1+c.length*4+32),b=0;return d[0]=c.length,c.forEach(function(r,n){d.writeUInt32BE(r,1+4*n)}),b=1+4*c.length,f.copy(d,b),this.transport.send(240,10,0,0,d).then(function(r){var n=r.slice(1,33).toString("hex"),l=r.slice(1+32,1+32+32).toString("hex");return{r:n,s:l}})},A.prototype.eth2GetPublicKey=function(a,e){var f=(0,h0.splitPath)(a),c=Buffer.alloc(1+f.length*4);return c[0]=f.length,f.forEach(function(d,b){c.writeUInt32BE(d,1+4*b)}),this.transport.send(224,14,e?1:0,0,c).then(function(d){return{publicKey:d.slice(0,-2).toString("hex")}})},A.prototype.eth2SetWithdrawalIndex=function(a){var e=Buffer.alloc(4,0);return e.writeUInt32BE(a,0),this.transport.send(224,16,0,0,e).then(function(){return!0},function(f){if(f&&f.statusCode===27904)return!1;throw f})},A.prototype.getEIP1024PublicEncryptionKey=function(a,e){var f=(0,h0.splitPath)(a),c=Buffer.alloc(1+f.length*4);return c[0]=f.length,f.forEach(function(d,b){c.writeUInt32BE(d,1+4*b)}),this.transport.send(224,24,e?1:0,0,c).then(function(d){return{publicKey:d.slice(0,-2).toString("hex")}})},A.prototype.getEIP1024SharedSecret=function(a,e,f){var c=(0,h0.splitPath)(a),d=(0,h0.hexBuffer)(e),b=Buffer.alloc(1+c.length*4+32),r=0;return b[0]=c.length,c.forEach(function(n,l){b.writeUInt32BE(n,1+4*l)}),r=1+4*c.length,d.copy(b,r),this.transport.send(224,24,f?1:0,1,b).then(function(n){return{sharedSecret:n.slice(0,-2).toString("hex")}})},A.prototype.provideERC20TokenInformation=function(a){var e=a.data;return Zg(this.transport,e)},A.prototype.setExternalPlugin=function(a,e,f){return console.warn("hw-app-eth: eth.setExternalPlugin is deprecated. signTransaction solves this for you when providing it in `resolution`."),Yg(this.transport,a,f)},A.prototype.setPlugin=function(a){return console.warn("hw-app-eth: eth.setPlugin is deprecated. signTransaction solves this for you when providing it in `resolution`."),Xg(this.transport,a)},A}();la.default=SP;function Zg(A,a){return A.send(224,10,0,0,a).then(function(){return!0},function(e){if(e&&e.statusCode===27904)return!1;throw e})}function vP(A,a){return A.send(224,20,0,0,a).then(function(){return!0},function(e){throw e&&e.statusCode===27904?new Kg.EthAppNftNotSupported:e})}function Yg(A,a,e){var f=Buffer.from(a,"hex"),c=Buffer.from(e,"hex"),d=Buffer.concat([f,c]);return A.send(224,18,0,0,d).then(function(){return!0},function(b){if(b&&b.statusCode===27264)return!1;if(b&&b.statusCode===27012)return!1;if(b&&b.statusCode===27904)return!1;throw b})}function Xg(A,a){var e=Buffer.from(a,"hex");return A.send(224,22,0,0,e).then(function(){return!0},function(f){if(f&&f.statusCode===27264)return!1;if(f&&f.statusCode===27012)return!1;if(f&&f.statusCode===27904)return!1;throw f})}});var ml=U(m0=>{"use strict";var E6=m0&&m0.__awaiter||function(A,a,e,f){function c(d){return d instanceof e?d:new e(function(b){b(d)})}return new(e||(e=Promise))(function(d,b){function r(t){try{l(f.next(t))}catch(B){b(B)}}function n(t){try{l(f.throw(t))}catch(B){b(B)}}function l(t){t.done?d(t.value):c(t.value).then(r,n)}l((f=f.apply(A,a||[])).next())})},B6=m0&&m0.__generator||function(A,a){var e={label:0,sent:function(){if(d[0]&1)throw d[1];return d[1]},trys:[],ops:[]},f,c,d,b;return b={next:r(0),throw:r(1),return:r(2)},typeof Symbol=="function"&&(b[Symbol.iterator]=function(){return this}),b;function r(l){return function(t){return n([l,t])}}function n(l){if(f)throw new TypeError("Generator is already executing.");for(;e;)try{if(f=1,c&&(d=l[0]&2?c.return:l[0]?c.throw||((d=c.return)&&d.call(c),0):c.next)&&!(d=d.call(c,l[1])).done)return d;switch(c=0,d&&(l=[l[0]&2,d.value]),l[0]){case 0:case 1:d=l;break;case 4:return e.label++,{value:l[1],done:!1};case 5:e.label++,c=l[1],l=[0];continue;case 7:l=e.ops.pop(),e.trys.pop();continue;default:if(d=e.trys,!(d=d.length>0&&d[d.length-1])&&(l[0]===6||l[0]===2)){e=0;continue}if(l[0]===3&&(!d||l[1]>d[0]&&l[1]=A.length&&(A=void 0),{value:A&&A[f++],done:!A}}};throw new TypeError(a?"Object is not iterable.":"Symbol.iterator is not defined.")},kP=m0&&m0.__read||function(A,a){var e=typeof Symbol=="function"&&A[Symbol.iterator];if(!e)return A;var f=e.call(A),c,d=[],b;try{for(;(a===void 0||a-- >0)&&!(c=f.next()).done;)d.push(c.value)}catch(r){b={error:r}}finally{try{c&&!c.done&&(e=f.return)&&e.call(f)}finally{if(b)throw b.error}}return d},QP=m0&&m0.__spreadArray||function(A,a,e){if(e||arguments.length===2)for(var f=0,c=a.length,d;f=256)throw new Ha.TransportError("data.length exceed 256 bytes limit. Got: "+b.length,"DataLengthTooBig");return[4,this.exchange(Buffer.concat([Buffer.from([e,f,c,d]),Buffer.from([b.length]),b]))];case 1:if(n=t.sent(),l=n.readUInt16BE(n.length-2),!r.some(function(B){return B===l}))throw new Ha.TransportStatusError(l);return[2,n]}})})},this.exchangeAtomicImpl=function(e){return E6(a,void 0,void 0,function(){var f,c,d,b,r,n=this;return B6(this,function(l){switch(l.label){case 0:if(this.exchangeBusyPromise)throw new Ha.TransportRaceCondition("An action was already pending on the Ledger device. Please deny or reconnect.");c=new Promise(function(t){f=t}),this.exchangeBusyPromise=c,d=!1,b=setTimeout(function(){d=!0,n.emit("unresponsive")},this.unresponsiveTimeout),l.label=1;case 1:return l.trys.push([1,,3,4]),[4,e()];case 2:return r=l.sent(),d&&this.emit("responsive"),[2,r];case 3:return clearTimeout(b),f&&f(),this.exchangeBusyPromise=null,[7];case 4:return[2]}})})},this._appAPIlock=null}return A.prototype.exchange=function(a){throw new Error("exchange not implemented")},A.prototype.exchangeBulk=function(a,e){var f=this,c=!1,d=function(){c=!0},b=function(){return E6(f,void 0,void 0,function(){var r,n,l,t,B,x,p,w;return B6(this,function(y){switch(y.label){case 0:if(c)return[2];y.label=1;case 1:y.trys.push([1,6,7,8]),r=zg(a),n=r.next(),y.label=2;case 2:return n.done?[3,5]:(l=n.value,[4,this.exchange(l)]);case 3:if(t=y.sent(),c)return[2];if(B=t.readUInt16BE(t.length-2),B!==Ha.StatusCodes.OK)throw new Ha.TransportStatusError(B);e.next(t),y.label=4;case 4:return n=r.next(),[3,2];case 5:return[3,8];case 6:return x=y.sent(),p={error:x},[3,8];case 7:try{n&&!n.done&&(w=r.return)&&w.call(r)}finally{if(p)throw p.error}return[7];case 8:return[2]}})})};return b().then(function(){return!c&&e.complete()},function(r){return!c&&e.error(r)}),{unsubscribe:d}},A.prototype.setScrambleKey=function(a){},A.prototype.close=function(){return Promise.resolve()},A.prototype.on=function(a,e){this._events.on(a,e)},A.prototype.off=function(a,e){this._events.removeListener(a,e)},A.prototype.emit=function(a){for(var e,f=[],c=1;c{"use strict";Tl.__esModule=!0;var pl=X3(),_g=5;function NP(A){var a=Buffer.alloc(2);return a.writeUInt16BE(A,0),a}var OP={data:Buffer.alloc(0),dataLength:0,sequence:0},GP=function(A,a){return{makeBlocks:function(e){var f=Buffer.concat([NP(e.length),e]),c=a-5,d=Math.ceil(f.length/c);f=Buffer.concat([f,Buffer.alloc(d*c-f.length+1).fill(0)]);for(var b=[],r=0;rb&&(d=d.slice(0,b)),{data:d,dataLength:b,sequence:r}},getReducedResult:function(e){if(e&&e.dataLength===e.data.length)return e.data}}};Tl.default=GP});var q3=U((qW,eI)=>{var PP="2.0.0",VP=Number.MAX_SAFE_INTEGER||9007199254740991,LP=16;eI.exports={SEMVER_SPEC_VERSION:PP,MAX_LENGTH:256,MAX_SAFE_INTEGER:VP,MAX_SAFE_COMPONENT_LENGTH:LP}});var z3=U((zW,aI)=>{var JP=typeof process=="object"&&process.env&&process.env.NODE_DEBUG&&/\bsemver\b/i.test(process.env.NODE_DEBUG)?(...A)=>console.error("SEMVER",...A):()=>{};aI.exports=JP});var U1=U((Pf,AI)=>{var{MAX_SAFE_COMPONENT_LENGTH:wl}=q3(),HP=z3();Pf=AI.exports={};var ZP=Pf.re=[],se=Pf.src=[],Ee=Pf.t={},YP=0,We=(A,a,e)=>{let f=YP++;HP(A,f,a),Ee[A]=f,se[f]=a,ZP[f]=new RegExp(a,e?"g":void 0)};We("NUMERICIDENTIFIER","0|[1-9]\\d*");We("NUMERICIDENTIFIERLOOSE","[0-9]+");We("NONNUMERICIDENTIFIER","\\d*[a-zA-Z-][a-zA-Z0-9-]*");We("MAINVERSION",`(${se[Ee.NUMERICIDENTIFIER]})\\.(${se[Ee.NUMERICIDENTIFIER]})\\.(${se[Ee.NUMERICIDENTIFIER]})`);We("MAINVERSIONLOOSE",`(${se[Ee.NUMERICIDENTIFIERLOOSE]})\\.(${se[Ee.NUMERICIDENTIFIERLOOSE]})\\.(${se[Ee.NUMERICIDENTIFIERLOOSE]})`);We("PRERELEASEIDENTIFIER",`(?:${se[Ee.NUMERICIDENTIFIER]}|${se[Ee.NONNUMERICIDENTIFIER]})`);We("PRERELEASEIDENTIFIERLOOSE",`(?:${se[Ee.NUMERICIDENTIFIERLOOSE]}|${se[Ee.NONNUMERICIDENTIFIER]})`);We("PRERELEASE",`(?:-(${se[Ee.PRERELEASEIDENTIFIER]}(?:\\.${se[Ee.PRERELEASEIDENTIFIER]})*))`);We("PRERELEASELOOSE",`(?:-?(${se[Ee.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${se[Ee.PRERELEASEIDENTIFIERLOOSE]})*))`);We("BUILDIDENTIFIER","[0-9A-Za-z-]+");We("BUILD",`(?:\\+(${se[Ee.BUILDIDENTIFIER]}(?:\\.${se[Ee.BUILDIDENTIFIER]})*))`);We("FULLPLAIN",`v?${se[Ee.MAINVERSION]}${se[Ee.PRERELEASE]}?${se[Ee.BUILD]}?`);We("FULL",`^${se[Ee.FULLPLAIN]}$`);We("LOOSEPLAIN",`[v=\\s]*${se[Ee.MAINVERSIONLOOSE]}${se[Ee.PRERELEASELOOSE]}?${se[Ee.BUILD]}?`);We("LOOSE",`^${se[Ee.LOOSEPLAIN]}$`);We("GTLT","((?:<|>)?=?)");We("XRANGEIDENTIFIERLOOSE",`${se[Ee.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`);We("XRANGEIDENTIFIER",`${se[Ee.NUMERICIDENTIFIER]}|x|X|\\*`);We("XRANGEPLAIN",`[v=\\s]*(${se[Ee.XRANGEIDENTIFIER]})(?:\\.(${se[Ee.XRANGEIDENTIFIER]})(?:\\.(${se[Ee.XRANGEIDENTIFIER]})(?:${se[Ee.PRERELEASE]})?${se[Ee.BUILD]}?)?)?`);We("XRANGEPLAINLOOSE",`[v=\\s]*(${se[Ee.XRANGEIDENTIFIERLOOSE]})(?:\\.(${se[Ee.XRANGEIDENTIFIERLOOSE]})(?:\\.(${se[Ee.XRANGEIDENTIFIERLOOSE]})(?:${se[Ee.PRERELEASELOOSE]})?${se[Ee.BUILD]}?)?)?`);We("XRANGE",`^${se[Ee.GTLT]}\\s*${se[Ee.XRANGEPLAIN]}$`);We("XRANGELOOSE",`^${se[Ee.GTLT]}\\s*${se[Ee.XRANGEPLAINLOOSE]}$`);We("COERCE",`(^|[^\\d])(\\d{1,${wl}})(?:\\.(\\d{1,${wl}}))?(?:\\.(\\d{1,${wl}}))?(?:$|[^\\d])`);We("COERCERTL",se[Ee.COERCE],!0);We("LONETILDE","(?:~>?)");We("TILDETRIM",`(\\s*)${se[Ee.LONETILDE]}\\s+`,!0);Pf.tildeTrimReplace="$1~";We("TILDE",`^${se[Ee.LONETILDE]}${se[Ee.XRANGEPLAIN]}$`);We("TILDELOOSE",`^${se[Ee.LONETILDE]}${se[Ee.XRANGEPLAINLOOSE]}$`);We("LONECARET","(?:\\^)");We("CARETTRIM",`(\\s*)${se[Ee.LONECARET]}\\s+`,!0);Pf.caretTrimReplace="$1^";We("CARET",`^${se[Ee.LONECARET]}${se[Ee.XRANGEPLAIN]}$`);We("CARETLOOSE",`^${se[Ee.LONECARET]}${se[Ee.XRANGEPLAINLOOSE]}$`);We("COMPARATORLOOSE",`^${se[Ee.GTLT]}\\s*(${se[Ee.LOOSEPLAIN]})$|^$`);We("COMPARATOR",`^${se[Ee.GTLT]}\\s*(${se[Ee.FULLPLAIN]})$|^$`);We("COMPARATORTRIM",`(\\s*)${se[Ee.GTLT]}\\s*(${se[Ee.LOOSEPLAIN]}|${se[Ee.XRANGEPLAIN]})`,!0);Pf.comparatorTrimReplace="$1$2$3";We("HYPHENRANGE",`^\\s*(${se[Ee.XRANGEPLAIN]})\\s+-\\s+(${se[Ee.XRANGEPLAIN]})\\s*$`);We("HYPHENRANGELOOSE",`^\\s*(${se[Ee.XRANGEPLAINLOOSE]})\\s+-\\s+(${se[Ee.XRANGEPLAINLOOSE]})\\s*$`);We("STAR","(<|>)?=?\\s*\\*");We("GTE0","^\\s*>=\\s*0\\.0\\.0\\s*$");We("GTE0PRE","^\\s*>=\\s*0\\.0\\.0-0\\s*$")});var j3=U((jW,fI)=>{var XP=["includePrerelease","loose","rtl"],WP=A=>A?typeof A!="object"?{loose:!0}:XP.filter(a=>A[a]).reduce((a,e)=>(a[e]=!0,a),{}):{};fI.exports=WP});var Rl=U((_W,bI)=>{var cI=/^[0-9]+$/,dI=(A,a)=>{let e=cI.test(A),f=cI.test(a);return e&&f&&(A=+A,a=+a),A===a?0:e&&!f?-1:f&&!e?1:AdI(a,A);bI.exports={compareIdentifiers:dI,rcompareIdentifiers:KP}});var Da=U(($W,tI)=>{var h6=z3(),{MAX_LENGTH:lI,MAX_SAFE_INTEGER:C6}=q3(),{re:rI,t:nI}=U1(),qP=j3(),{compareIdentifiers:Cc}=Rl(),Za=class{constructor(a,e){if(e=qP(e),a instanceof Za){if(a.loose===!!e.loose&&a.includePrerelease===!!e.includePrerelease)return a;a=a.version}else if(typeof a!="string")throw new TypeError(`Invalid Version: ${a}`);if(a.length>lI)throw new TypeError(`version is longer than ${lI} characters`);h6("SemVer",a,e),this.options=e,this.loose=!!e.loose,this.includePrerelease=!!e.includePrerelease;let f=a.trim().match(e.loose?rI[nI.LOOSE]:rI[nI.FULL]);if(!f)throw new TypeError(`Invalid Version: ${a}`);if(this.raw=a,this.major=+f[1],this.minor=+f[2],this.patch=+f[3],this.major>C6||this.major<0)throw new TypeError("Invalid major version");if(this.minor>C6||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>C6||this.patch<0)throw new TypeError("Invalid patch version");f[4]?this.prerelease=f[4].split(".").map(c=>{if(/^[0-9]+$/.test(c)){let d=+c;if(d>=0&&d=0;)typeof this.prerelease[f]=="number"&&(this.prerelease[f]++,f=-2);f===-1&&this.prerelease.push(0)}e&&(Cc(this.prerelease[0],e)===0?isNaN(this.prerelease[1])&&(this.prerelease=[e,0]):this.prerelease=[e,0]);break;default:throw new Error(`invalid increment argument: ${a}`)}return this.format(),this.raw=this.version,this}};tI.exports=Za});var N1=U((eK,sI)=>{var{MAX_LENGTH:zP}=q3(),{re:uI,t:iI}=U1(),oI=Da(),jP=j3(),_P=(A,a)=>{if(a=jP(a),A instanceof oI)return A;if(typeof A!="string"||A.length>zP||!(a.loose?uI[iI.LOOSE]:uI[iI.FULL]).test(A))return null;try{return new oI(A,a)}catch{return null}};sI.exports=_P});var BI=U((aK,EI)=>{var $P=N1(),eV=(A,a)=>{let e=$P(A,a);return e?e.version:null};EI.exports=eV});var CI=U((AK,hI)=>{var aV=N1(),AV=(A,a)=>{let e=aV(A.trim().replace(/^[=v]+/,""),a);return e?e.version:null};hI.exports=AV});var FI=U((fK,II)=>{var gI=Da(),fV=(A,a,e,f)=>{typeof e=="string"&&(f=e,e=void 0);try{return new gI(A instanceof gI?A.version:A,e).inc(a,f).version}catch{return null}};II.exports=fV});var F2=U((cK,mI)=>{var DI=Da(),cV=(A,a,e)=>new DI(A,e).compare(new DI(a,e));mI.exports=cV});var g6=U((dK,xI)=>{var dV=F2(),bV=(A,a,e)=>dV(A,a,e)===0;xI.exports=bV});var wI=U((bK,TI)=>{var pI=N1(),lV=g6(),rV=(A,a)=>{if(lV(A,a))return null;{let e=pI(A),f=pI(a),c=e.prerelease.length||f.prerelease.length,d=c?"pre":"",b=c?"prerelease":"";for(let r in e)if((r==="major"||r==="minor"||r==="patch")&&e[r]!==f[r])return d+r;return b}};TI.exports=rV});var SI=U((lK,RI)=>{var nV=Da(),tV=(A,a)=>new nV(A,a).major;RI.exports=tV});var kI=U((rK,vI)=>{var uV=Da(),iV=(A,a)=>new uV(A,a).minor;vI.exports=iV});var yI=U((nK,QI)=>{var oV=Da(),sV=(A,a)=>new oV(A,a).patch;QI.exports=sV});var UI=U((tK,MI)=>{var EV=N1(),BV=(A,a)=>{let e=EV(A,a);return e&&e.prerelease.length?e.prerelease:null};MI.exports=BV});var OI=U((uK,NI)=>{var hV=F2(),CV=(A,a,e)=>hV(a,A,e);NI.exports=CV});var PI=U((iK,GI)=>{var gV=F2(),IV=(A,a)=>gV(A,a,!0);GI.exports=IV});var I6=U((oK,LI)=>{var VI=Da(),FV=(A,a,e)=>{let f=new VI(A,e),c=new VI(a,e);return f.compare(c)||f.compareBuild(c)};LI.exports=FV});var HI=U((sK,JI)=>{var DV=I6(),mV=(A,a)=>A.sort((e,f)=>DV(e,f,a));JI.exports=mV});var YI=U((EK,ZI)=>{var xV=I6(),pV=(A,a)=>A.sort((e,f)=>xV(f,e,a));ZI.exports=pV});var _3=U((BK,XI)=>{var TV=F2(),wV=(A,a,e)=>TV(A,a,e)>0;XI.exports=wV});var F6=U((hK,WI)=>{var RV=F2(),SV=(A,a,e)=>RV(A,a,e)<0;WI.exports=SV});var Sl=U((CK,KI)=>{var vV=F2(),kV=(A,a,e)=>vV(A,a,e)!==0;KI.exports=kV});var D6=U((gK,qI)=>{var QV=F2(),yV=(A,a,e)=>QV(A,a,e)>=0;qI.exports=yV});var m6=U((IK,zI)=>{var MV=F2(),UV=(A,a,e)=>MV(A,a,e)<=0;zI.exports=UV});var vl=U((FK,jI)=>{var NV=g6(),OV=Sl(),GV=_3(),PV=D6(),VV=F6(),LV=m6(),JV=(A,a,e,f)=>{switch(a){case"===":return typeof A=="object"&&(A=A.version),typeof e=="object"&&(e=e.version),A===e;case"!==":return typeof A=="object"&&(A=A.version),typeof e=="object"&&(e=e.version),A!==e;case"":case"=":case"==":return NV(A,e,f);case"!=":return OV(A,e,f);case">":return GV(A,e,f);case">=":return PV(A,e,f);case"<":return VV(A,e,f);case"<=":return LV(A,e,f);default:throw new TypeError(`Invalid operator: ${a}`)}};jI.exports=JV});var $I=U((DK,_I)=>{var HV=Da(),ZV=N1(),{re:x6,t:p6}=U1(),YV=(A,a)=>{if(A instanceof HV)return A;if(typeof A=="number"&&(A=String(A)),typeof A!="string")return null;a=a||{};let e=null;if(!a.rtl)e=A.match(x6[p6.COERCE]);else{let f;for(;(f=x6[p6.COERCERTL].exec(A))&&(!e||e.index+e[0].length!==A.length);)(!e||f.index+f[0].length!==e.index+e[0].length)&&(e=f),x6[p6.COERCERTL].lastIndex=f.index+f[1].length+f[2].length;x6[p6.COERCERTL].lastIndex=-1}return e===null?null:ZV(`${e[2]}.${e[3]||"0"}.${e[4]||"0"}`,a)};_I.exports=YV});var aF=U((mK,eF)=>{"use strict";eF.exports=function(A){A.prototype[Symbol.iterator]=function*(){for(let a=this.head;a;a=a.next)yield a.value}}});var fF=U((xK,AF)=>{"use strict";AF.exports=d0;d0.Node=O1;d0.create=d0;function d0(A){var a=this;if(a instanceof d0||(a=new d0),a.tail=null,a.head=null,a.length=0,A&&typeof A.forEach=="function")A.forEach(function(c){a.push(c)});else if(arguments.length>0)for(var e=0,f=arguments.length;e1)e=a;else if(this.head)f=this.head.next,e=this.head.value;else throw new TypeError("Reduce of empty list with no initial value");for(var c=0;f!==null;c++)e=A(e,f.value,c),f=f.next;return e};d0.prototype.reduceReverse=function(A,a){var e,f=this.tail;if(arguments.length>1)e=a;else if(this.tail)f=this.tail.prev,e=this.tail.value;else throw new TypeError("Reduce of empty list with no initial value");for(var c=this.length-1;f!==null;c--)e=A(e,f.value,c),f=f.prev;return e};d0.prototype.toArray=function(){for(var A=new Array(this.length),a=0,e=this.head;e!==null;a++)A[a]=e.value,e=e.next;return A};d0.prototype.toArrayReverse=function(){for(var A=new Array(this.length),a=0,e=this.tail;e!==null;a++)A[a]=e.value,e=e.prev;return A};d0.prototype.slice=function(A,a){a=a||this.length,a<0&&(a+=this.length),A=A||0,A<0&&(A+=this.length);var e=new d0;if(athis.length&&(a=this.length);for(var f=0,c=this.head;c!==null&&fthis.length&&(a=this.length);for(var f=this.length,c=this.tail;c!==null&&f>a;f--)c=c.prev;for(;c!==null&&f>A;f--,c=c.prev)e.push(c.value);return e};d0.prototype.splice=function(A,a,...e){A>this.length&&(A=this.length-1),A<0&&(A=this.length+A);for(var f=0,c=this.head;c!==null&&f{"use strict";var qV=fF(),G1=Symbol("max"),jA=Symbol("length"),gc=Symbol("lengthCalculator"),e8=Symbol("allowStale"),P1=Symbol("maxAge"),zA=Symbol("dispose"),cF=Symbol("noDisposeOnSet"),j0=Symbol("lruList"),N2=Symbol("cache"),bF=Symbol("updateAgeOnGet"),kl=()=>1,yl=class{constructor(a){if(typeof a=="number"&&(a={max:a}),a||(a={}),a.max&&(typeof a.max!="number"||a.max<0))throw new TypeError("max must be a non-negative number");let e=this[G1]=a.max||1/0,f=a.length||kl;if(this[gc]=typeof f!="function"?kl:f,this[e8]=a.stale||!1,a.maxAge&&typeof a.maxAge!="number")throw new TypeError("maxAge must be a number");this[P1]=a.maxAge||0,this[zA]=a.dispose,this[cF]=a.noDisposeOnSet||!1,this[bF]=a.updateAgeOnGet||!1,this.reset()}set max(a){if(typeof a!="number"||a<0)throw new TypeError("max must be a non-negative number");this[G1]=a||1/0,$3(this)}get max(){return this[G1]}set allowStale(a){this[e8]=!!a}get allowStale(){return this[e8]}set maxAge(a){if(typeof a!="number")throw new TypeError("maxAge must be a non-negative number");this[P1]=a,$3(this)}get maxAge(){return this[P1]}set lengthCalculator(a){typeof a!="function"&&(a=kl),a!==this[gc]&&(this[gc]=a,this[jA]=0,this[j0].forEach(e=>{e.length=this[gc](e.value,e.key),this[jA]+=e.length})),$3(this)}get lengthCalculator(){return this[gc]}get length(){return this[jA]}get itemCount(){return this[j0].length}rforEach(a,e){e=e||this;for(let f=this[j0].tail;f!==null;){let c=f.prev;dF(this,a,f,e),f=c}}forEach(a,e){e=e||this;for(let f=this[j0].head;f!==null;){let c=f.next;dF(this,a,f,e),f=c}}keys(){return this[j0].toArray().map(a=>a.key)}values(){return this[j0].toArray().map(a=>a.value)}reset(){this[zA]&&this[j0]&&this[j0].length&&this[j0].forEach(a=>this[zA](a.key,a.value)),this[N2]=new Map,this[j0]=new qV,this[jA]=0}dump(){return this[j0].map(a=>T6(this,a)?!1:{k:a.key,v:a.value,e:a.now+(a.maxAge||0)}).toArray().filter(a=>a)}dumpLru(){return this[j0]}set(a,e,f){if(f=f||this[P1],f&&typeof f!="number")throw new TypeError("maxAge must be a number");let c=f?Date.now():0,d=this[gc](e,a);if(this[N2].has(a)){if(d>this[G1])return Ic(this,this[N2].get(a)),!1;let n=this[N2].get(a).value;return this[zA]&&(this[cF]||this[zA](a,n.value)),n.now=c,n.maxAge=f,n.value=e,this[jA]+=d-n.length,n.length=d,this.get(a),$3(this),!0}let b=new Ml(a,e,d,c,f);return b.length>this[G1]?(this[zA]&&this[zA](a,e),!1):(this[jA]+=b.length,this[j0].unshift(b),this[N2].set(a,this[j0].head),$3(this),!0)}has(a){if(!this[N2].has(a))return!1;let e=this[N2].get(a).value;return!T6(this,e)}get(a){return Ql(this,a,!0)}peek(a){return Ql(this,a,!1)}pop(){let a=this[j0].tail;return a?(Ic(this,a),a.value):null}del(a){Ic(this,this[N2].get(a))}load(a){this.reset();let e=Date.now();for(let f=a.length-1;f>=0;f--){let c=a[f],d=c.e||0;if(d===0)this.set(c.k,c.v);else{let b=d-e;b>0&&this.set(c.k,c.v,b)}}}prune(){this[N2].forEach((a,e)=>Ql(this,e,!1))}},Ql=(A,a,e)=>{let f=A[N2].get(a);if(f){let c=f.value;if(T6(A,c)){if(Ic(A,f),!A[e8])return}else e&&(A[bF]&&(f.value.now=Date.now()),A[j0].unshiftNode(f));return c.value}},T6=(A,a)=>{if(!a||!a.maxAge&&!A[P1])return!1;let e=Date.now()-a.now;return a.maxAge?e>a.maxAge:A[P1]&&e>A[P1]},$3=A=>{if(A[jA]>A[G1])for(let a=A[j0].tail;A[jA]>A[G1]&&a!==null;){let e=a.prev;Ic(A,a),a=e}},Ic=(A,a)=>{if(a){let e=a.value;A[zA]&&A[zA](e.key,e.value),A[jA]-=e.length,A[N2].delete(e.key),A[j0].removeNode(a)}},Ml=class{constructor(a,e,f,c,d){this.key=a,this.value=e,this.length=f,this.now=c,this.maxAge=d||0}},dF=(A,a,e,f)=>{let c=e.value;T6(A,c)&&(Ic(A,e),A[e8]||(c=void 0)),c&&a.call(f,c.value,c.key,A)};lF.exports=yl});var D2=U((TK,iF)=>{var V1=class{constructor(a,e){if(e=jV(e),a instanceof V1)return a.loose===!!e.loose&&a.includePrerelease===!!e.includePrerelease?a:new V1(a.raw,e);if(a instanceof Ul)return this.raw=a.value,this.set=[[a]],this.format(),this;if(this.options=e,this.loose=!!e.loose,this.includePrerelease=!!e.includePrerelease,this.raw=a,this.set=a.split("||").map(f=>this.parseRange(f.trim())).filter(f=>f.length),!this.set.length)throw new TypeError(`Invalid SemVer Range: ${a}`);if(this.set.length>1){let f=this.set[0];if(this.set=this.set.filter(c=>!tF(c[0])),this.set.length===0)this.set=[f];else if(this.set.length>1){for(let c of this.set)if(c.length===1&&AL(c[0])){this.set=[c];break}}}this.format()}format(){return this.range=this.set.map(a=>a.join(" ").trim()).join("||").trim(),this.range}toString(){return this.range}parseRange(a){a=a.trim();let f=`parseRange:${Object.keys(this.options).join(",")}:${a}`,c=nF.get(f);if(c)return c;let d=this.options.loose,b=d?Ma[pa.HYPHENRANGELOOSE]:Ma[pa.HYPHENRANGE];a=a.replace(b,iL(this.options.includePrerelease)),x0("hyphen replace",a),a=a.replace(Ma[pa.COMPARATORTRIM],$V),x0("comparator trim",a),a=a.replace(Ma[pa.TILDETRIM],eL),a=a.replace(Ma[pa.CARETTRIM],aL),a=a.split(/\s+/).join(" ");let r=a.split(" ").map(B=>fL(B,this.options)).join(" ").split(/\s+/).map(B=>uL(B,this.options));d&&(r=r.filter(B=>(x0("loose invalid filter",B,this.options),!!B.match(Ma[pa.COMPARATORLOOSE])))),x0("range list",r);let n=new Map,l=r.map(B=>new Ul(B,this.options));for(let B of l){if(tF(B))return[B];n.set(B.value,B)}n.size>1&&n.has("")&&n.delete("");let t=[...n.values()];return nF.set(f,t),t}intersects(a,e){if(!(a instanceof V1))throw new TypeError("a Range is required");return this.set.some(f=>uF(f,e)&&a.set.some(c=>uF(c,e)&&f.every(d=>c.every(b=>d.intersects(b,e)))))}test(a){if(!a)return!1;if(typeof a=="string")try{a=new _V(a,this.options)}catch{return!1}for(let e=0;eA.value==="<0.0.0-0",AL=A=>A.value==="",uF=(A,a)=>{let e=!0,f=A.slice(),c=f.pop();for(;e&&f.length;)e=f.every(d=>c.intersects(d,a)),c=f.pop();return e},fL=(A,a)=>(x0("comp",A,a),A=bL(A,a),x0("caret",A),A=cL(A,a),x0("tildes",A),A=rL(A,a),x0("xrange",A),A=tL(A,a),x0("stars",A),A),Ta=A=>!A||A.toLowerCase()==="x"||A==="*",cL=(A,a)=>A.trim().split(/\s+/).map(e=>dL(e,a)).join(" "),dL=(A,a)=>{let e=a.loose?Ma[pa.TILDELOOSE]:Ma[pa.TILDE];return A.replace(e,(f,c,d,b,r)=>{x0("tilde",A,f,c,d,b,r);let n;return Ta(c)?n="":Ta(d)?n=`>=${c}.0.0 <${+c+1}.0.0-0`:Ta(b)?n=`>=${c}.${d}.0 <${c}.${+d+1}.0-0`:r?(x0("replaceTilde pr",r),n=`>=${c}.${d}.${b}-${r} <${c}.${+d+1}.0-0`):n=`>=${c}.${d}.${b} <${c}.${+d+1}.0-0`,x0("tilde return",n),n})},bL=(A,a)=>A.trim().split(/\s+/).map(e=>lL(e,a)).join(" "),lL=(A,a)=>{x0("caret",A,a);let e=a.loose?Ma[pa.CARETLOOSE]:Ma[pa.CARET],f=a.includePrerelease?"-0":"";return A.replace(e,(c,d,b,r,n)=>{x0("caret",A,c,d,b,r,n);let l;return Ta(d)?l="":Ta(b)?l=`>=${d}.0.0${f} <${+d+1}.0.0-0`:Ta(r)?d==="0"?l=`>=${d}.${b}.0${f} <${d}.${+b+1}.0-0`:l=`>=${d}.${b}.0${f} <${+d+1}.0.0-0`:n?(x0("replaceCaret pr",n),d==="0"?b==="0"?l=`>=${d}.${b}.${r}-${n} <${d}.${b}.${+r+1}-0`:l=`>=${d}.${b}.${r}-${n} <${d}.${+b+1}.0-0`:l=`>=${d}.${b}.${r}-${n} <${+d+1}.0.0-0`):(x0("no pr"),d==="0"?b==="0"?l=`>=${d}.${b}.${r}${f} <${d}.${b}.${+r+1}-0`:l=`>=${d}.${b}.${r}${f} <${d}.${+b+1}.0-0`:l=`>=${d}.${b}.${r} <${+d+1}.0.0-0`),x0("caret return",l),l})},rL=(A,a)=>(x0("replaceXRanges",A,a),A.split(/\s+/).map(e=>nL(e,a)).join(" ")),nL=(A,a)=>{A=A.trim();let e=a.loose?Ma[pa.XRANGELOOSE]:Ma[pa.XRANGE];return A.replace(e,(f,c,d,b,r,n)=>{x0("xRange",A,f,c,d,b,r,n);let l=Ta(d),t=l||Ta(b),B=t||Ta(r),x=B;return c==="="&&x&&(c=""),n=a.includePrerelease?"-0":"",l?c===">"||c==="<"?f="<0.0.0-0":f="*":c&&x?(t&&(b=0),r=0,c===">"?(c=">=",t?(d=+d+1,b=0,r=0):(b=+b+1,r=0)):c==="<="&&(c="<",t?d=+d+1:b=+b+1),c==="<"&&(n="-0"),f=`${c+d}.${b}.${r}${n}`):t?f=`>=${d}.0.0${n} <${+d+1}.0.0-0`:B&&(f=`>=${d}.${b}.0${n} <${d}.${+b+1}.0-0`),x0("xRange return",f),f})},tL=(A,a)=>(x0("replaceStars",A,a),A.trim().replace(Ma[pa.STAR],"")),uL=(A,a)=>(x0("replaceGTE0",A,a),A.trim().replace(Ma[a.includePrerelease?pa.GTE0PRE:pa.GTE0],"")),iL=A=>(a,e,f,c,d,b,r,n,l,t,B,x,p)=>(Ta(f)?e="":Ta(c)?e=`>=${f}.0.0${A?"-0":""}`:Ta(d)?e=`>=${f}.${c}.0${A?"-0":""}`:b?e=`>=${e}`:e=`>=${e}${A?"-0":""}`,Ta(l)?n="":Ta(t)?n=`<${+l+1}.0.0-0`:Ta(B)?n=`<${l}.${+t+1}.0-0`:x?n=`<=${l}.${t}.${B}-${x}`:A?n=`<${l}.${t}.${+B+1}-0`:n=`<=${n}`,`${e} ${n}`.trim()),oL=(A,a,e)=>{for(let f=0;f0){let c=A[f].semver;if(c.major===a.major&&c.minor===a.minor&&c.patch===a.patch)return!0}return!1}return!0}});var a8=U((wK,hF)=>{var A8=Symbol("SemVer ANY"),Fc=class{static get ANY(){return A8}constructor(a,e){if(e=sL(e),a instanceof Fc){if(a.loose===!!e.loose)return a;a=a.value}Ol("comparator",a,e),this.options=e,this.loose=!!e.loose,this.parse(a),this.semver===A8?this.value="":this.value=this.operator+this.semver.version,Ol("comp",this)}parse(a){let e=this.options.loose?oF[sF.COMPARATORLOOSE]:oF[sF.COMPARATOR],f=a.match(e);if(!f)throw new TypeError(`Invalid comparator: ${a}`);this.operator=f[1]!==void 0?f[1]:"",this.operator==="="&&(this.operator=""),f[2]?this.semver=new EF(f[2],this.options.loose):this.semver=A8}toString(){return this.value}test(a){if(Ol("Comparator.test",a,this.options.loose),this.semver===A8||a===A8)return!0;if(typeof a=="string")try{a=new EF(a,this.options)}catch{return!1}return Nl(a,this.operator,this.semver,this.options)}intersects(a,e){if(!(a instanceof Fc))throw new TypeError("a Comparator is required");if((!e||typeof e!="object")&&(e={loose:!!e,includePrerelease:!1}),this.operator==="")return this.value===""?!0:new BF(a.value,e).test(this.value);if(a.operator==="")return a.value===""?!0:new BF(this.value,e).test(a.semver);let f=(this.operator===">="||this.operator===">")&&(a.operator===">="||a.operator===">"),c=(this.operator==="<="||this.operator==="<")&&(a.operator==="<="||a.operator==="<"),d=this.semver.version===a.semver.version,b=(this.operator===">="||this.operator==="<=")&&(a.operator===">="||a.operator==="<="),r=Nl(this.semver,"<",a.semver,e)&&(this.operator===">="||this.operator===">")&&(a.operator==="<="||a.operator==="<"),n=Nl(this.semver,">",a.semver,e)&&(this.operator==="<="||this.operator==="<")&&(a.operator===">="||a.operator===">");return f||c||d&&b||r||n}};hF.exports=Fc;var sL=j3(),{re:oF,t:sF}=U1(),Nl=vl(),Ol=z3(),EF=Da(),BF=D2()});var f8=U((RK,CF)=>{var EL=D2(),BL=(A,a,e)=>{try{a=new EL(a,e)}catch{return!1}return a.test(A)};CF.exports=BL});var IF=U((SK,gF)=>{var hL=D2(),CL=(A,a)=>new hL(A,a).set.map(e=>e.map(f=>f.value).join(" ").trim().split(" "));gF.exports=CL});var DF=U((vK,FF)=>{var gL=Da(),IL=D2(),FL=(A,a,e)=>{let f=null,c=null,d=null;try{d=new IL(a,e)}catch{return null}return A.forEach(b=>{d.test(b)&&(!f||c.compare(b)===-1)&&(f=b,c=new gL(f,e))}),f};FF.exports=FL});var xF=U((kK,mF)=>{var DL=Da(),mL=D2(),xL=(A,a,e)=>{let f=null,c=null,d=null;try{d=new mL(a,e)}catch{return null}return A.forEach(b=>{d.test(b)&&(!f||c.compare(b)===1)&&(f=b,c=new DL(f,e))}),f};mF.exports=xL});var wF=U((QK,TF)=>{var Gl=Da(),pL=D2(),pF=_3(),TL=(A,a)=>{A=new pL(A,a);let e=new Gl("0.0.0");if(A.test(e)||(e=new Gl("0.0.0-0"),A.test(e)))return e;e=null;for(let f=0;f{let r=new Gl(b.semver.version);switch(b.operator){case">":r.prerelease.length===0?r.patch++:r.prerelease.push(0),r.raw=r.format();case"":case">=":(!d||pF(r,d))&&(d=r);break;case"<":case"<=":break;default:throw new Error(`Unexpected operation: ${b.operator}`)}}),d&&(!e||pF(e,d))&&(e=d)}return e&&A.test(e)?e:null};TF.exports=TL});var SF=U((yK,RF)=>{var wL=D2(),RL=(A,a)=>{try{return new wL(A,a).range||"*"}catch{return null}};RF.exports=RL});var w6=U((MK,yF)=>{var SL=Da(),QF=a8(),{ANY:vL}=QF,kL=D2(),QL=f8(),vF=_3(),kF=F6(),yL=m6(),ML=D6(),UL=(A,a,e,f)=>{A=new SL(A,f),a=new kL(a,f);let c,d,b,r,n;switch(e){case">":c=vF,d=yL,b=kF,r=">",n=">=";break;case"<":c=kF,d=ML,b=vF,r="<",n="<=";break;default:throw new TypeError('Must provide a hilo val of "<" or ">"')}if(QL(A,a,f))return!1;for(let l=0;l{p.semver===vL&&(p=new QF(">=0.0.0")),B=B||p,x=x||p,c(p.semver,B.semver,f)?B=p:b(p.semver,x.semver,f)&&(x=p)}),B.operator===r||B.operator===n||(!x.operator||x.operator===r)&&d(A,x.semver))return!1;if(x.operator===n&&b(A,x.semver))return!1}return!0};yF.exports=UL});var UF=U((UK,MF)=>{var NL=w6(),OL=(A,a,e)=>NL(A,a,">",e);MF.exports=OL});var OF=U((NK,NF)=>{var GL=w6(),PL=(A,a,e)=>GL(A,a,"<",e);NF.exports=PL});var VF=U((OK,PF)=>{var GF=D2(),VL=(A,a,e)=>(A=new GF(A,e),a=new GF(a,e),A.intersects(a));PF.exports=VL});var JF=U((GK,LF)=>{var LL=f8(),JL=F2();LF.exports=(A,a,e)=>{let f=[],c=null,d=null,b=A.sort((t,B)=>JL(t,B,e));for(let t of b)LL(t,a,e)?(d=t,c||(c=t)):(d&&f.push([c,d]),d=null,c=null);c&&f.push([c,null]);let r=[];for(let[t,B]of f)t===B?r.push(t):!B&&t===b[0]?r.push("*"):B?t===b[0]?r.push(`<=${B}`):r.push(`${t} - ${B}`):r.push(`>=${t}`);let n=r.join(" || "),l=typeof a.raw=="string"?a.raw:String(a);return n.length{var HF=D2(),R6=a8(),{ANY:Pl}=R6,c8=f8(),Vl=F2(),HL=(A,a,e={})=>{if(A===a)return!0;A=new HF(A,e),a=new HF(a,e);let f=!1;e:for(let c of A.set){for(let d of a.set){let b=ZL(c,d,e);if(f=f||b!==null,b)continue e}if(f)return!1}return!0},ZL=(A,a,e)=>{if(A===a)return!0;if(A.length===1&&A[0].semver===Pl){if(a.length===1&&a[0].semver===Pl)return!0;e.includePrerelease?A=[new R6(">=0.0.0-0")]:A=[new R6(">=0.0.0")]}if(a.length===1&&a[0].semver===Pl){if(e.includePrerelease)return!0;a=[new R6(">=0.0.0")]}let f=new Set,c,d;for(let p of A)p.operator===">"||p.operator===">="?c=ZF(c,p,e):p.operator==="<"||p.operator==="<="?d=YF(d,p,e):f.add(p.semver);if(f.size>1)return null;let b;if(c&&d){if(b=Vl(c.semver,d.semver,e),b>0)return null;if(b===0&&(c.operator!==">="||d.operator!=="<="))return null}for(let p of f){if(c&&!c8(p,String(c),e)||d&&!c8(p,String(d),e))return null;for(let w of a)if(!c8(p,String(w),e))return!1;return!0}let r,n,l,t,B=d&&!e.includePrerelease&&d.semver.prerelease.length?d.semver:!1,x=c&&!e.includePrerelease&&c.semver.prerelease.length?c.semver:!1;B&&B.prerelease.length===1&&d.operator==="<"&&B.prerelease[0]===0&&(B=!1);for(let p of a){if(t=t||p.operator===">"||p.operator===">=",l=l||p.operator==="<"||p.operator==="<=",c){if(x&&p.semver.prerelease&&p.semver.prerelease.length&&p.semver.major===x.major&&p.semver.minor===x.minor&&p.semver.patch===x.patch&&(x=!1),p.operator===">"||p.operator===">="){if(r=ZF(c,p,e),r===p&&r!==c)return!1}else if(c.operator===">="&&!c8(c.semver,String(p),e))return!1}if(d){if(B&&p.semver.prerelease&&p.semver.prerelease.length&&p.semver.major===B.major&&p.semver.minor===B.minor&&p.semver.patch===B.patch&&(B=!1),p.operator==="<"||p.operator==="<="){if(n=YF(d,p,e),n===p&&n!==d)return!1}else if(d.operator==="<="&&!c8(d.semver,String(p),e))return!1}if(!p.operator&&(d||c)&&b!==0)return!1}return!(c&&l&&!d&&b!==0||d&&t&&!c&&b!==0||x||B)},ZF=(A,a,e)=>{if(!A)return a;let f=Vl(A.semver,a.semver,e);return f>0?A:f<0||a.operator===">"&&A.operator===">="?a:A},YF=(A,a,e)=>{if(!A)return a;let f=Vl(A.semver,a.semver,e);return f<0?A:f>0||a.operator==="<"&&A.operator==="<="?a:A};XF.exports=HL});var zF=U((VK,qF)=>{var Ll=U1(),YL=q3(),XL=Da(),KF=Rl(),WL=N1(),KL=BI(),qL=CI(),zL=FI(),jL=wI(),_L=SI(),$L=kI(),eJ=yI(),aJ=UI(),AJ=F2(),fJ=OI(),cJ=PI(),dJ=I6(),bJ=HI(),lJ=YI(),rJ=_3(),nJ=F6(),tJ=g6(),uJ=Sl(),iJ=D6(),oJ=m6(),sJ=vl(),EJ=$I(),BJ=a8(),hJ=D2(),CJ=f8(),gJ=IF(),IJ=DF(),FJ=xF(),DJ=wF(),mJ=SF(),xJ=w6(),pJ=UF(),TJ=OF(),wJ=VF(),RJ=JF(),SJ=WF();qF.exports={parse:WL,valid:KL,clean:qL,inc:zL,diff:jL,major:_L,minor:$L,patch:eJ,prerelease:aJ,compare:AJ,rcompare:fJ,compareLoose:cJ,compareBuild:dJ,sort:bJ,rsort:lJ,gt:rJ,lt:nJ,eq:tJ,neq:uJ,gte:iJ,lte:oJ,cmp:sJ,coerce:EJ,Comparator:BJ,Range:hJ,satisfies:CJ,toComparators:gJ,maxSatisfying:IJ,minSatisfying:FJ,minVersion:DJ,validRange:mJ,outside:xJ,gtr:pJ,ltr:TJ,intersects:wJ,simplifyRange:RJ,subset:SJ,SemVer:XL,re:Ll.re,src:Ll.src,tokens:Ll.t,SEMVER_SPEC_VERSION:YL.SEMVER_SPEC_VERSION,compareIdentifiers:KF.compareIdentifiers,rcompareIdentifiers:KF.rcompareIdentifiers}});var Yl=U(f0=>{"use strict";var Hl=f0&&f0.__assign||function(){return Hl=Object.assign||function(A){for(var a,e=1,f=arguments.length;e>8,f=Q6.find(function(c){return c.productIdMM===e});return f};f0.identifyUSBProductId=MJ;var UJ=function(A){var a=Q6.find(function(e){return e.id===kJ[A]});return a};f0.identifyProductName=UJ;var $F=[],Zl={};for(_F in k6)if(Jl=k6[_F],S6=Jl.bluetoothSpec,S6)for(v6=0;v6{"use strict";var Xl=Ua&&Ua.__awaiter||function(A,a,e,f){function c(d){return d instanceof e?d:new e(function(b){b(d)})}return new(e||(e=Promise))(function(d,b){function r(t){try{l(f.next(t))}catch(B){b(B)}}function n(t){try{l(f.throw(t))}catch(B){b(B)}}function l(t){t.done?d(t.value):c(t.value).then(r,n)}l((f=f.apply(A,a||[])).next())})},Wl=Ua&&Ua.__generator||function(A,a){var e={label:0,sent:function(){if(d[0]&1)throw d[1];return d[1]},trys:[],ops:[]},f,c,d,b;return b={next:r(0),throw:r(1),return:r(2)},typeof Symbol=="function"&&(b[Symbol.iterator]=function(){return this}),b;function r(l){return function(t){return n([l,t])}}function n(l){if(f)throw new TypeError("Generator is already executing.");for(;e;)try{if(f=1,c&&(d=l[0]&2?c.return:l[0]?c.throw||((d=c.return)&&d.call(c),0):c.next)&&!(d=d.call(c,l[1])).done)return d;switch(c=0,d&&(l=[l[0]&2,d.value]),l[0]){case 0:case 1:d=l;break;case 4:return e.label++,{value:l[1],done:!1};case 5:e.label++,c=l[1],l=[0];continue;case 7:l=e.ops.pop(),e.trys.pop();continue;default:if(d=e.trys,!(d=d.length>0&&d[d.length-1])&&(l[0]===6||l[0]===2)){e=0;continue}if(l[0]===3&&(!d||l[1]>d[0]&&l[1]0?[2,A[0]]:[2,aD()]}})})}Ua.getFirstLedgerDevice=PJ;var VJ=function(){return Promise.resolve(!!navigator&&!!navigator.usb&&typeof navigator.usb.getDevices=="function")};Ua.isSupported=VJ});var nD=U(O2=>{"use strict";var LJ=O2&&O2.__extends||function(){var A=function(a,e){return A=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(f,c){f.__proto__=c}||function(f,c){for(var d in c)Object.prototype.hasOwnProperty.call(c,d)&&(f[d]=c[d])},A(a,e)};return function(a,e){if(typeof e!="function"&&e!==null)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");A(a,e);function f(){this.constructor=a}a.prototype=e===null?Object.create(e):(f.prototype=e.prototype,new f)}}(),J1=O2&&O2.__awaiter||function(A,a,e,f){function c(d){return d instanceof e?d:new e(function(b){b(d)})}return new(e||(e=Promise))(function(d,b){function r(t){try{l(f.next(t))}catch(B){b(B)}}function n(t){try{l(f.throw(t))}catch(B){b(B)}}function l(t){t.done?d(t.value):c(t.value).then(r,n)}l((f=f.apply(A,a||[])).next())})},H1=O2&&O2.__generator||function(A,a){var e={label:0,sent:function(){if(d[0]&1)throw d[1];return d[1]},trys:[],ops:[]},f,c,d,b;return b={next:r(0),throw:r(1),return:r(2)},typeof Symbol=="function"&&(b[Symbol.iterator]=function(){return this}),b;function r(l){return function(t){return n([l,t])}}function n(l){if(f)throw new TypeError("Generator is already executing.");for(;e;)try{if(f=1,c&&(d=l[0]&2?c.return:l[0]?c.throw||((d=c.return)&&d.call(c),0):c.next)&&!(d=d.call(c,l[1])).done)return d;switch(c=0,d&&(l=[l[0]&2,d.value]),l[0]){case 0:case 1:d=l;break;case 4:return e.label++,{value:l[1],done:!1};case 5:e.label++,c=l[1],l=[0];continue;case 7:l=e.ops.pop(),e.trys.pop();continue;default:if(d=e.trys,!(d=d.length>0&&d[d.length-1])&&(l[0]===6||l[0]===2)){e=0;continue}if(l[0]===3&&(!d||l[1]>d[0]&&l[1] "+e.toString("hex")),l=(0,HJ.default)(r,n),t=l.makeBlocks(e),B=0,N.label=1;case 1:return Bmc});module.exports=CD(jJ);var Ya=l8(WB()),y6=l8(qg());var jg=l8(ml());var xl=class extends jg.default{baseURL;eventStream;constructor(a){super(),this.baseURL=a}button=async a=>{let e={action:"press-and-release"};await fetch(`${this.baseURL}/button/${a}`,{method:"POST",body:JSON.stringify(e)})};async exchange(a){let e=a.toString("hex"),c=await(await fetch(`${this.baseURL}/apdu`,{method:"POST",body:JSON.stringify({data:e})})).json(),{data:d}=c;return Buffer.from(d,"hex")}async close(){return this.eventStream.close(),Promise.resolve()}},qA=xl;pc(qA,"isSupported",()=>Promise.resolve(!0)),pc(qA,"list",()=>Promise.resolve([])),pc(qA,"listen",()=>({unsubscribe:()=>{}})),pc(qA,"open",async a=>{try{a=a||"http://127.0.0.1:5000";let e=new xl(a),f=new EventSource(`${a}/events?stream=true`);return e.eventStream=f,e}catch(e){throw console.log(e),e}});var tD=l8(nD());function Kl(){async function A(){return await tD.default.create()}async function a(e){return await qA.open(e)}return{createUSBTransport:A,createSpeculosTransport:a}}var XJ="m/44'/60'/0'/0/0",WJ="usb",{createUSBTransport:KJ,createSpeculosTransport:qJ}=Kl(),zJ={usb:KJ,speculos:qJ},mc=class extends Ya.ethers.Signer{type;path;baseURL;_eth;constructor(a){super(),a.type||(a.type=WJ),a.path||(a.path=XJ),this.type=a.type,this.path=a.path,this.baseURL=a.baseURL,a.provider&&Ya.ethers.utils.defineReadOnly(this,"provider",a.provider);let e=this.type,f=zJ[e];f||console.log("Unknown or unsupported type",this.type),Ya.ethers.utils.defineReadOnly(this,"_eth",f(this.baseURL).then(c=>new y6.default(c)))}_retry(a,e){return new Promise(async(f,c)=>{let d="Please make sure Ledger is ready and retry";e&&e>0&&setTimeout(()=>c(new Error(d)),e);let b=await this._eth;for(let r=0;r<50;r++){try{let n=await a(b);return f(n)}catch(n){if(n.id!=="TransportLocked")return c(n)}await new Promise(n=>{setTimeout(n,100)})}return c(new Error(d))})}async getAddress(){let{address:a}=await this._retry(e=>e.getAddress(this.path));return Ya.ethers.utils.getAddress(a)}async signMessage(a){typeof a=="string"&&(a=Ya.ethers.utils.toUtf8Bytes(a));let e=Ya.ethers.utils.hexlify(a).substring(2),f=await this._retry(c=>c.signPersonalMessage(this.path,e));return f.r="0x"+f.r,f.s="0x"+f.s,Ya.ethers.utils.joinSignature(f)}async signTransaction(a){let e=await Ya.ethers.utils.resolveProperties(a),f={chainId:e.chainId||void 0,data:e.data||void 0,gasLimit:e.gasLimit||void 0,gasPrice:e.gasPrice||void 0,nonce:e.nonce?Ya.ethers.BigNumber.from(e.nonce).toNumber():void 0,to:e.to||void 0,value:e.value||void 0,type:e.type||void 0},c=Ya.ethers.utils.serializeTransaction(f).substring(2),d=await y6.ledgerService.resolveTransaction(c,{},{}),b=await this._retry(r=>r.signTransaction(this.path,c,d));return Ya.ethers.utils.serializeTransaction(f,{v:Ya.ethers.BigNumber.from("0x"+b.v).toNumber(),r:"0x"+b.r,s:"0x"+b.s})}async sendTransaction(a){this._checkProvider("sendTransaction");let e=await this.populateTransaction(a),f=await this.signTransaction(e);return await this.provider.sendTransaction(f)}connect(a){let e={provider:a,type:this.type,path:this.path,baseURL:this.baseURL};return new mc(e)}};0&&(module.exports={}); +/** + * [js-sha3]{@link https://github.com/emn178/js-sha3} + * + * @version 0.8.0 + * @author Chen, Yi-Cyuan [emn178@gmail.com] + * @copyright Chen, Yi-Cyuan 2015-2018 + * @license MIT + */ +//# sourceMappingURL=index.js.map diff --git a/common/ethers-ledger-signer/dist/index.js.map b/common/ethers-ledger-signer/dist/index.js.map new file mode 100644 index 000000000..8a2a08800 --- /dev/null +++ b/common/ethers-ledger-signer/dist/index.js.map @@ -0,0 +1,7 @@ +{ + "version": 3, + "sources": ["../../../node_modules/bn.js/lib/bn.js", "../../../node_modules/@ethersproject/logger/src.ts/_version.ts", "../../../node_modules/@ethersproject/logger/src.ts/index.ts", "../../../node_modules/@ethersproject/bytes/src.ts/_version.ts", "../../../node_modules/@ethersproject/bytes/src.ts/index.ts", "../../../node_modules/@ethersproject/bignumber/src.ts/_version.ts", "../../../node_modules/@ethersproject/bignumber/src.ts/bignumber.ts", "../../../node_modules/@ethersproject/bignumber/src.ts/fixednumber.ts", "../../../node_modules/@ethersproject/bignumber/src.ts/index.ts", "../../../node_modules/@ethersproject/properties/src.ts/_version.ts", "../../../node_modules/@ethersproject/properties/src.ts/index.ts", "../../../node_modules/@ethersproject/abi/src.ts/_version.ts", "../../../node_modules/@ethersproject/abi/src.ts/fragments.ts", "../../../node_modules/@ethersproject/abi/src.ts/coders/abstract-coder.ts", "../../../node_modules/js-sha3/src/sha3.js", "../../../node_modules/@ethersproject/keccak256/src.ts/index.ts", "../../../node_modules/@ethersproject/rlp/src.ts/_version.ts", "../../../node_modules/@ethersproject/rlp/src.ts/index.ts", "../../../node_modules/@ethersproject/address/src.ts/_version.ts", "../../../node_modules/@ethersproject/address/src.ts/index.ts", "../../../node_modules/@ethersproject/abi/src.ts/coders/address.ts", "../../../node_modules/@ethersproject/abi/src.ts/coders/anonymous.ts", "../../../node_modules/@ethersproject/abi/src.ts/coders/array.ts", "../../../node_modules/@ethersproject/abi/src.ts/coders/boolean.ts", "../../../node_modules/@ethersproject/abi/src.ts/coders/bytes.ts", "../../../node_modules/@ethersproject/abi/src.ts/coders/fixed-bytes.ts", "../../../node_modules/@ethersproject/abi/src.ts/coders/null.ts", "../../../node_modules/@ethersproject/constants/src.ts/addresses.ts", "../../../node_modules/@ethersproject/constants/src.ts/bignumbers.ts", "../../../node_modules/@ethersproject/constants/src.ts/hashes.ts", "../../../node_modules/@ethersproject/constants/src.ts/strings.ts", "../../../node_modules/@ethersproject/constants/src.ts/index.ts", "../../../node_modules/@ethersproject/abi/src.ts/coders/number.ts", "../../../node_modules/@ethersproject/strings/src.ts/_version.ts", "../../../node_modules/@ethersproject/strings/src.ts/utf8.ts", "../../../node_modules/@ethersproject/strings/src.ts/bytes32.ts", "../../../node_modules/@ethersproject/strings/src.ts/idna.ts", "../../../node_modules/@ethersproject/strings/src.ts/index.ts", "../../../node_modules/@ethersproject/abi/src.ts/coders/string.ts", "../../../node_modules/@ethersproject/abi/src.ts/coders/tuple.ts", "../../../node_modules/@ethersproject/abi/src.ts/abi-coder.ts", "../../../node_modules/@ethersproject/hash/src.ts/id.ts", "../../../node_modules/@ethersproject/hash/src.ts/_version.ts", "../../../node_modules/@ethersproject/base64/src.ts/base64.ts", "../../../node_modules/@ethersproject/base64/src.ts/index.ts", "../../../node_modules/@ethersproject/hash/src.ts/ens-normalize/decoder.ts", "../../../node_modules/@ethersproject/hash/src.ts/ens-normalize/include.ts", "../../../node_modules/@ethersproject/hash/src.ts/ens-normalize/lib.ts", "../../../node_modules/@ethersproject/hash/src.ts/namehash.ts", "../../../node_modules/@ethersproject/hash/src.ts/message.ts", "../../../node_modules/@ethersproject/hash/src.ts/typed-data.ts", "../../../node_modules/@ethersproject/hash/src.ts/index.ts", "../../../node_modules/@ethersproject/abi/src.ts/interface.ts", "../../../node_modules/@ethersproject/abi/src.ts/index.ts", "../../../node_modules/@ethersproject/abstract-provider/src.ts/_version.ts", "../../../node_modules/@ethersproject/abstract-provider/src.ts/index.ts", "../../../node_modules/@ethersproject/abstract-signer/src.ts/_version.ts", "../../../node_modules/@ethersproject/abstract-signer/src.ts/index.ts", "../../../node_modules/elliptic/node_modules/bn.js/lib/bn.js", "../../../node_modules/minimalistic-assert/index.js", "../../../node_modules/minimalistic-crypto-utils/lib/utils.js", "../../../node_modules/elliptic/lib/elliptic/utils.js", "../../../node_modules/brorand/index.js", "../../../node_modules/elliptic/lib/elliptic/curve/base.js", "../../../node_modules/inherits/inherits_browser.js", "../../../node_modules/inherits/inherits.js", "../../../node_modules/elliptic/lib/elliptic/curve/short.js", "../../../node_modules/elliptic/lib/elliptic/curve/mont.js", "../../../node_modules/elliptic/lib/elliptic/curve/edwards.js", "../../../node_modules/elliptic/lib/elliptic/curve/index.js", "../../../node_modules/hash.js/lib/hash/utils.js", "../../../node_modules/hash.js/lib/hash/common.js", "../../../node_modules/hash.js/lib/hash/sha/common.js", "../../../node_modules/hash.js/lib/hash/sha/1.js", "../../../node_modules/hash.js/lib/hash/sha/256.js", "../../../node_modules/hash.js/lib/hash/sha/224.js", "../../../node_modules/hash.js/lib/hash/sha/512.js", "../../../node_modules/hash.js/lib/hash/sha/384.js", "../../../node_modules/hash.js/lib/hash/sha.js", "../../../node_modules/hash.js/lib/hash/ripemd.js", "../../../node_modules/hash.js/lib/hash/hmac.js", "../../../node_modules/hash.js/lib/hash.js", "../../../node_modules/elliptic/lib/elliptic/precomputed/secp256k1.js", "../../../node_modules/elliptic/lib/elliptic/curves.js", "../../../node_modules/hmac-drbg/lib/hmac-drbg.js", "../../../node_modules/elliptic/lib/elliptic/ec/key.js", "../../../node_modules/elliptic/lib/elliptic/ec/signature.js", "../../../node_modules/elliptic/lib/elliptic/ec/index.js", "../../../node_modules/elliptic/lib/elliptic/eddsa/key.js", "../../../node_modules/elliptic/lib/elliptic/eddsa/signature.js", "../../../node_modules/elliptic/lib/elliptic/eddsa/index.js", "../../../node_modules/elliptic/lib/elliptic.js", "../../../node_modules/@ethersproject/signing-key/src.ts/elliptic.ts", "../../../node_modules/@ethersproject/signing-key/src.ts/_version.ts", "../../../node_modules/@ethersproject/signing-key/src.ts/index.ts", "../../../node_modules/@ethersproject/transactions/src.ts/_version.ts", "../../../node_modules/@ethersproject/transactions/src.ts/index.ts", "../../../node_modules/@ethersproject/contracts/src.ts/_version.ts", "../../../node_modules/@ethersproject/contracts/src.ts/index.ts", "../../../node_modules/@ethersproject/basex/src.ts/index.ts", "../../../node_modules/@ethersproject/pbkdf2/src.ts/pbkdf2.ts", "../../../node_modules/@ethersproject/pbkdf2/src.ts/index.ts", "../../../node_modules/@ethersproject/sha2/src.ts/types.ts", "../../../node_modules/@ethersproject/sha2/src.ts/_version.ts", "../../../node_modules/@ethersproject/sha2/src.ts/sha2.ts", "../../../node_modules/@ethersproject/sha2/src.ts/index.ts", "../../../node_modules/@ethersproject/wordlists/src.ts/_version.ts", "../../../node_modules/@ethersproject/wordlists/src.ts/wordlist.ts", "../../../node_modules/@ethersproject/wordlists/src.ts/lang-cz.ts", "../../../node_modules/@ethersproject/wordlists/src.ts/lang-en.ts", "../../../node_modules/@ethersproject/wordlists/src.ts/lang-es.ts", "../../../node_modules/@ethersproject/wordlists/src.ts/lang-fr.ts", "../../../node_modules/@ethersproject/wordlists/src.ts/lang-ja.ts", "../../../node_modules/@ethersproject/wordlists/src.ts/lang-ko.ts", "../../../node_modules/@ethersproject/wordlists/src.ts/lang-it.ts", "../../../node_modules/@ethersproject/wordlists/src.ts/lang-zh.ts", "../../../node_modules/@ethersproject/wordlists/src.ts/wordlists.ts", "../../../node_modules/@ethersproject/wordlists/src.ts/index.ts", "../../../node_modules/@ethersproject/hdnode/src.ts/_version.ts", "../../../node_modules/@ethersproject/hdnode/src.ts/index.ts", "../../../node_modules/@ethersproject/random/src.ts/random.ts", "../../../node_modules/@ethersproject/random/src.ts/shuffle.ts", "../../../node_modules/@ethersproject/random/src.ts/index.ts", "../../../node_modules/@ethersproject/json-wallets/node_modules/aes-js/index.js", "../../../node_modules/@ethersproject/json-wallets/src.ts/_version.ts", "../../../node_modules/@ethersproject/json-wallets/src.ts/utils.ts", "../../../node_modules/@ethersproject/json-wallets/src.ts/crowdsale.ts", "../../../node_modules/@ethersproject/json-wallets/src.ts/inspect.ts", "../../../node_modules/scrypt-js/scrypt.js", "../../../node_modules/@ethersproject/json-wallets/src.ts/keystore.ts", "../../../node_modules/@ethersproject/json-wallets/src.ts/index.ts", "../../../node_modules/@ethersproject/wallet/src.ts/_version.ts", "../../../node_modules/@ethersproject/wallet/src.ts/index.ts", "../../../node_modules/@ethersproject/networks/src.ts/_version.ts", "../../../node_modules/@ethersproject/networks/src.ts/index.ts", "../../../node_modules/@ethersproject/web/src.ts/_version.ts", "../../../node_modules/@ethersproject/web/src.ts/geturl.ts", "../../../node_modules/@ethersproject/web/src.ts/index.ts", "../../../node_modules/bech32/index.js", "../../../node_modules/@ethersproject/providers/src.ts/_version.ts", "../../../node_modules/@ethersproject/providers/src.ts/formatter.ts", "../../../node_modules/@ethersproject/providers/src.ts/base-provider.ts", "../../../node_modules/@ethersproject/providers/src.ts/json-rpc-provider.ts", "../../../node_modules/ws/lib/constants.js", "../../../node_modules/node-gyp-build/index.js", "../../../node_modules/bufferutil/fallback.js", "../../../node_modules/bufferutil/index.js", "../../../node_modules/ws/lib/buffer-util.js", "../../../node_modules/ws/lib/limiter.js", "../../../node_modules/ws/lib/permessage-deflate.js", "../../../node_modules/utf-8-validate/fallback.js", "../../../node_modules/utf-8-validate/index.js", "../../../node_modules/ws/lib/validation.js", "../../../node_modules/ws/lib/receiver.js", "../../../node_modules/ws/lib/sender.js", "../../../node_modules/ws/lib/event-target.js", "../../../node_modules/ws/lib/extension.js", "../../../node_modules/ws/lib/websocket.js", "../../../node_modules/ws/lib/stream.js", "../../../node_modules/ws/lib/websocket-server.js", "../../../node_modules/ws/index.js", "../../../node_modules/@ethersproject/providers/src.ts/ws.ts", "../../../node_modules/@ethersproject/providers/src.ts/websocket-provider.ts", "../../../node_modules/@ethersproject/providers/src.ts/url-json-rpc-provider.ts", "../../../node_modules/@ethersproject/providers/src.ts/alchemy-provider.ts", "../../../node_modules/@ethersproject/providers/src.ts/ankr-provider.ts", "../../../node_modules/@ethersproject/providers/src.ts/cloudflare-provider.ts", "../../../node_modules/@ethersproject/providers/src.ts/etherscan-provider.ts", "../../../node_modules/@ethersproject/providers/src.ts/fallback-provider.ts", "../../../node_modules/@ethersproject/providers/src.ts/ipc-provider.ts", "../../../node_modules/@ethersproject/providers/src.ts/infura-provider.ts", "../../../node_modules/@ethersproject/providers/src.ts/json-rpc-batch-provider.ts", "../../../node_modules/@ethersproject/providers/src.ts/nodesmith-provider.ts", "../../../node_modules/@ethersproject/providers/src.ts/pocket-provider.ts", "../../../node_modules/@ethersproject/providers/src.ts/web3-provider.ts", "../../../node_modules/@ethersproject/providers/src.ts/index.ts", "../../../node_modules/@ethersproject/solidity/src.ts/_version.ts", "../../../node_modules/@ethersproject/solidity/src.ts/index.ts", "../../../node_modules/@ethersproject/units/src.ts/_version.ts", "../../../node_modules/@ethersproject/units/src.ts/index.ts", "../../../node_modules/ethers/src.ts/utils.ts", "../../../node_modules/ethers/src.ts/_version.ts", "../../../node_modules/ethers/src.ts/ethers.ts", "../../../node_modules/ethers/src.ts/index.ts", "../../../node_modules/bignumber.js/bignumber.js", "../../../node_modules/@ledgerhq/hw-app-eth/src/utils.ts", "../../../node_modules/@ledgerhq/logs/src/index.ts", "../../../node_modules/@ledgerhq/hw-app-eth/node_modules/axios/lib/helpers/bind.js", "../../../node_modules/@ledgerhq/hw-app-eth/node_modules/axios/lib/utils.js", "../../../node_modules/@ledgerhq/hw-app-eth/node_modules/axios/lib/helpers/buildURL.js", "../../../node_modules/@ledgerhq/hw-app-eth/node_modules/axios/lib/core/InterceptorManager.js", "../../../node_modules/@ledgerhq/hw-app-eth/node_modules/axios/lib/helpers/normalizeHeaderName.js", "../../../node_modules/@ledgerhq/hw-app-eth/node_modules/axios/lib/core/enhanceError.js", "../../../node_modules/@ledgerhq/hw-app-eth/node_modules/axios/lib/defaults/transitional.js", "../../../node_modules/@ledgerhq/hw-app-eth/node_modules/axios/lib/core/createError.js", "../../../node_modules/@ledgerhq/hw-app-eth/node_modules/axios/lib/core/settle.js", "../../../node_modules/@ledgerhq/hw-app-eth/node_modules/axios/lib/helpers/cookies.js", "../../../node_modules/@ledgerhq/hw-app-eth/node_modules/axios/lib/helpers/isAbsoluteURL.js", "../../../node_modules/@ledgerhq/hw-app-eth/node_modules/axios/lib/helpers/combineURLs.js", "../../../node_modules/@ledgerhq/hw-app-eth/node_modules/axios/lib/core/buildFullPath.js", "../../../node_modules/@ledgerhq/hw-app-eth/node_modules/axios/lib/helpers/parseHeaders.js", "../../../node_modules/@ledgerhq/hw-app-eth/node_modules/axios/lib/helpers/isURLSameOrigin.js", "../../../node_modules/@ledgerhq/hw-app-eth/node_modules/axios/lib/cancel/Cancel.js", "../../../node_modules/@ledgerhq/hw-app-eth/node_modules/axios/lib/adapters/xhr.js", "../../../node_modules/ms/index.js", "../../../node_modules/debug/src/common.js", "../../../node_modules/debug/src/browser.js", "../../../node_modules/has-flag/index.js", "../../../node_modules/supports-color/index.js", "../../../node_modules/debug/src/node.js", "../../../node_modules/debug/src/index.js", "../../../node_modules/follow-redirects/debug.js", "../../../node_modules/follow-redirects/index.js", "../../../node_modules/@ledgerhq/hw-app-eth/node_modules/axios/lib/env/data.js", "../../../node_modules/@ledgerhq/hw-app-eth/node_modules/axios/lib/adapters/http.js", "../../../node_modules/@ledgerhq/hw-app-eth/node_modules/axios/lib/defaults/index.js", "../../../node_modules/@ledgerhq/hw-app-eth/node_modules/axios/lib/core/transformData.js", "../../../node_modules/@ledgerhq/hw-app-eth/node_modules/axios/lib/cancel/isCancel.js", "../../../node_modules/@ledgerhq/hw-app-eth/node_modules/axios/lib/core/dispatchRequest.js", "../../../node_modules/@ledgerhq/hw-app-eth/node_modules/axios/lib/core/mergeConfig.js", "../../../node_modules/@ledgerhq/hw-app-eth/node_modules/axios/lib/helpers/validator.js", "../../../node_modules/@ledgerhq/hw-app-eth/node_modules/axios/lib/core/Axios.js", "../../../node_modules/@ledgerhq/hw-app-eth/node_modules/axios/lib/cancel/CancelToken.js", "../../../node_modules/@ledgerhq/hw-app-eth/node_modules/axios/lib/helpers/spread.js", "../../../node_modules/@ledgerhq/hw-app-eth/node_modules/axios/lib/helpers/isAxiosError.js", "../../../node_modules/@ledgerhq/hw-app-eth/node_modules/axios/lib/axios.js", "../../../node_modules/@ledgerhq/hw-app-eth/node_modules/axios/index.js", "../../../node_modules/@ledgerhq/hw-app-eth/src/services/ledger/loadConfig.ts", "../../../node_modules/@ledgerhq/hw-app-eth/src/services/ledger/contracts.ts", "../../../node_modules/@ledgerhq/cryptoassets/src/data/evm/index.ts", "../../../node_modules/@ledgerhq/hw-app-eth/src/services/ledger/erc20.ts", "../../../node_modules/@ledgerhq/hw-app-eth/src/services/ledger/nfts.ts", "../../../node_modules/@ledgerhq/hw-app-eth/src/services/ledger/index.ts", "../../../node_modules/@ledgerhq/errors/src/helpers.ts", "../../../node_modules/@ledgerhq/errors/src/index.ts", "../../../node_modules/@ledgerhq/hw-app-eth/src/errors.ts", "../../../node_modules/crypto-js/core.js", "../../../node_modules/crypto-js/sha256.js", "../../../node_modules/crypto-js/sha224.js", "../../../node_modules/@ledgerhq/cryptoassets/src/data/eip712.ts", "../../../node_modules/@ledgerhq/hw-app-eth/src/modules/EIP712/EIP712.utils.ts", "../../../node_modules/@ledgerhq/hw-app-eth/src/modules/EIP712/index.ts", "../../../node_modules/@ledgerhq/hw-app-eth/src/Eth.ts", "../../../node_modules/@ledgerhq/hw-transport/src/Transport.ts", "../../../node_modules/@ledgerhq/devices/src/hid-framing.ts", "../../../node_modules/semver/internal/constants.js", "../../../node_modules/semver/internal/debug.js", "../../../node_modules/semver/internal/re.js", "../../../node_modules/semver/internal/parse-options.js", "../../../node_modules/semver/internal/identifiers.js", "../../../node_modules/semver/classes/semver.js", "../../../node_modules/semver/functions/parse.js", "../../../node_modules/semver/functions/valid.js", "../../../node_modules/semver/functions/clean.js", "../../../node_modules/semver/functions/inc.js", "../../../node_modules/semver/functions/compare.js", "../../../node_modules/semver/functions/eq.js", "../../../node_modules/semver/functions/diff.js", "../../../node_modules/semver/functions/major.js", "../../../node_modules/semver/functions/minor.js", "../../../node_modules/semver/functions/patch.js", "../../../node_modules/semver/functions/prerelease.js", "../../../node_modules/semver/functions/rcompare.js", "../../../node_modules/semver/functions/compare-loose.js", "../../../node_modules/semver/functions/compare-build.js", "../../../node_modules/semver/functions/sort.js", "../../../node_modules/semver/functions/rsort.js", "../../../node_modules/semver/functions/gt.js", "../../../node_modules/semver/functions/lt.js", "../../../node_modules/semver/functions/neq.js", "../../../node_modules/semver/functions/gte.js", "../../../node_modules/semver/functions/lte.js", "../../../node_modules/semver/functions/cmp.js", "../../../node_modules/semver/functions/coerce.js", "../../../node_modules/semver/node_modules/yallist/iterator.js", "../../../node_modules/semver/node_modules/yallist/yallist.js", "../../../node_modules/semver/node_modules/lru-cache/index.js", "../../../node_modules/semver/classes/range.js", "../../../node_modules/semver/classes/comparator.js", "../../../node_modules/semver/functions/satisfies.js", "../../../node_modules/semver/ranges/to-comparators.js", "../../../node_modules/semver/ranges/max-satisfying.js", "../../../node_modules/semver/ranges/min-satisfying.js", "../../../node_modules/semver/ranges/min-version.js", "../../../node_modules/semver/ranges/valid.js", "../../../node_modules/semver/ranges/outside.js", "../../../node_modules/semver/ranges/gtr.js", "../../../node_modules/semver/ranges/ltr.js", "../../../node_modules/semver/ranges/intersects.js", "../../../node_modules/semver/ranges/simplify.js", "../../../node_modules/semver/ranges/subset.js", "../../../node_modules/semver/index.js", "../../../node_modules/@ledgerhq/devices/src/index.ts", "../../../node_modules/@ledgerhq/hw-transport-webusb/src/webusb.ts", "../../../node_modules/@ledgerhq/hw-transport-webusb/src/TransportWebUSB.ts", "../src/index.ts", "../../transport-speculos-http/src/index.ts", "../src/providers/transports.ts"], + "sourcesContent": ["(function (module, exports) {\n 'use strict';\n\n // Utils\n function assert (val, msg) {\n if (!val) throw new Error(msg || 'Assertion failed');\n }\n\n // Could use `inherits` module, but don't want to move from single file\n // architecture yet.\n function inherits (ctor, superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function () {};\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n\n // BN\n\n function BN (number, base, endian) {\n if (BN.isBN(number)) {\n return number;\n }\n\n this.negative = 0;\n this.words = null;\n this.length = 0;\n\n // Reduction context\n this.red = null;\n\n if (number !== null) {\n if (base === 'le' || base === 'be') {\n endian = base;\n base = 10;\n }\n\n this._init(number || 0, base || 10, endian || 'be');\n }\n }\n if (typeof module === 'object') {\n module.exports = BN;\n } else {\n exports.BN = BN;\n }\n\n BN.BN = BN;\n BN.wordSize = 26;\n\n var Buffer;\n try {\n if (typeof window !== 'undefined' && typeof window.Buffer !== 'undefined') {\n Buffer = window.Buffer;\n } else {\n Buffer = require('buffer').Buffer;\n }\n } catch (e) {\n }\n\n BN.isBN = function isBN (num) {\n if (num instanceof BN) {\n return true;\n }\n\n return num !== null && typeof num === 'object' &&\n num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);\n };\n\n BN.max = function max (left, right) {\n if (left.cmp(right) > 0) return left;\n return right;\n };\n\n BN.min = function min (left, right) {\n if (left.cmp(right) < 0) return left;\n return right;\n };\n\n BN.prototype._init = function init (number, base, endian) {\n if (typeof number === 'number') {\n return this._initNumber(number, base, endian);\n }\n\n if (typeof number === 'object') {\n return this._initArray(number, base, endian);\n }\n\n if (base === 'hex') {\n base = 16;\n }\n assert(base === (base | 0) && base >= 2 && base <= 36);\n\n number = number.toString().replace(/\\s+/g, '');\n var start = 0;\n if (number[0] === '-') {\n start++;\n this.negative = 1;\n }\n\n if (start < number.length) {\n if (base === 16) {\n this._parseHex(number, start, endian);\n } else {\n this._parseBase(number, base, start);\n if (endian === 'le') {\n this._initArray(this.toArray(), base, endian);\n }\n }\n }\n };\n\n BN.prototype._initNumber = function _initNumber (number, base, endian) {\n if (number < 0) {\n this.negative = 1;\n number = -number;\n }\n if (number < 0x4000000) {\n this.words = [number & 0x3ffffff];\n this.length = 1;\n } else if (number < 0x10000000000000) {\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff\n ];\n this.length = 2;\n } else {\n assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff,\n 1\n ];\n this.length = 3;\n }\n\n if (endian !== 'le') return;\n\n // Reverse the bytes\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initArray = function _initArray (number, base, endian) {\n // Perhaps a Uint8Array\n assert(typeof number.length === 'number');\n if (number.length <= 0) {\n this.words = [0];\n this.length = 1;\n return this;\n }\n\n this.length = Math.ceil(number.length / 3);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n var off = 0;\n if (endian === 'be') {\n for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n } else if (endian === 'le') {\n for (i = 0, j = 0; i < number.length; i += 3) {\n w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n return this._strip();\n };\n\n function parseHex4Bits (string, index) {\n var c = string.charCodeAt(index);\n // '0' - '9'\n if (c >= 48 && c <= 57) {\n return c - 48;\n // 'A' - 'F'\n } else if (c >= 65 && c <= 70) {\n return c - 55;\n // 'a' - 'f'\n } else if (c >= 97 && c <= 102) {\n return c - 87;\n } else {\n assert(false, 'Invalid character in ' + string);\n }\n }\n\n function parseHexByte (string, lowerBound, index) {\n var r = parseHex4Bits(string, index);\n if (index - 1 >= lowerBound) {\n r |= parseHex4Bits(string, index - 1) << 4;\n }\n return r;\n }\n\n BN.prototype._parseHex = function _parseHex (number, start, endian) {\n // Create possibly bigger array to ensure that it fits the number\n this.length = Math.ceil((number.length - start) / 6);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n // 24-bits chunks\n var off = 0;\n var j = 0;\n\n var w;\n if (endian === 'be') {\n for (i = number.length - 1; i >= start; i -= 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n } else {\n var parseLength = number.length - start;\n for (i = parseLength % 2 === 0 ? start + 1 : start; i < number.length; i += 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n }\n\n this._strip();\n };\n\n function parseBase (str, start, end, mul) {\n var r = 0;\n var b = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r *= mul;\n\n // 'a'\n if (c >= 49) {\n b = c - 49 + 0xa;\n\n // 'A'\n } else if (c >= 17) {\n b = c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n b = c;\n }\n assert(c >= 0 && b < mul, 'Invalid character');\n r += b;\n }\n return r;\n }\n\n BN.prototype._parseBase = function _parseBase (number, base, start) {\n // Initialize as zero\n this.words = [0];\n this.length = 1;\n\n // Find length of limb in base\n for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n limbLen++;\n }\n limbLen--;\n limbPow = (limbPow / base) | 0;\n\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n\n var word = 0;\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n\n this.imuln(limbPow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n if (mod !== 0) {\n var pow = 1;\n word = parseBase(number, i, number.length, base);\n\n for (i = 0; i < mod; i++) {\n pow *= base;\n }\n\n this.imuln(pow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n this._strip();\n };\n\n BN.prototype.copy = function copy (dest) {\n dest.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n dest.words[i] = this.words[i];\n }\n dest.length = this.length;\n dest.negative = this.negative;\n dest.red = this.red;\n };\n\n function move (dest, src) {\n dest.words = src.words;\n dest.length = src.length;\n dest.negative = src.negative;\n dest.red = src.red;\n }\n\n BN.prototype._move = function _move (dest) {\n move(dest, this);\n };\n\n BN.prototype.clone = function clone () {\n var r = new BN(null);\n this.copy(r);\n return r;\n };\n\n BN.prototype._expand = function _expand (size) {\n while (this.length < size) {\n this.words[this.length++] = 0;\n }\n return this;\n };\n\n // Remove leading `0` from `this`\n BN.prototype._strip = function strip () {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\n return this._normSign();\n };\n\n BN.prototype._normSign = function _normSign () {\n // -0 = 0\n if (this.length === 1 && this.words[0] === 0) {\n this.negative = 0;\n }\n return this;\n };\n\n // Check Symbol.for because not everywhere where Symbol defined\n // See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol#Browser_compatibility\n if (typeof Symbol !== 'undefined' && typeof Symbol.for === 'function') {\n try {\n BN.prototype[Symbol.for('nodejs.util.inspect.custom')] = inspect;\n } catch (e) {\n BN.prototype.inspect = inspect;\n }\n } else {\n BN.prototype.inspect = inspect;\n }\n\n function inspect () {\n return (this.red ? '';\n }\n\n /*\n\n var zeros = [];\n var groupSizes = [];\n var groupBases = [];\n\n var s = '';\n var i = -1;\n while (++i < BN.wordSize) {\n zeros[i] = s;\n s += '0';\n }\n groupSizes[0] = 0;\n groupSizes[1] = 0;\n groupBases[0] = 0;\n groupBases[1] = 0;\n var base = 2 - 1;\n while (++base < 36 + 1) {\n var groupSize = 0;\n var groupBase = 1;\n while (groupBase < (1 << BN.wordSize) / base) {\n groupBase *= base;\n groupSize += 1;\n }\n groupSizes[base] = groupSize;\n groupBases[base] = groupBase;\n }\n\n */\n\n var zeros = [\n '',\n '0',\n '00',\n '000',\n '0000',\n '00000',\n '000000',\n '0000000',\n '00000000',\n '000000000',\n '0000000000',\n '00000000000',\n '000000000000',\n '0000000000000',\n '00000000000000',\n '000000000000000',\n '0000000000000000',\n '00000000000000000',\n '000000000000000000',\n '0000000000000000000',\n '00000000000000000000',\n '000000000000000000000',\n '0000000000000000000000',\n '00000000000000000000000',\n '000000000000000000000000',\n '0000000000000000000000000'\n ];\n\n var groupSizes = [\n 0, 0,\n 25, 16, 12, 11, 10, 9, 8,\n 8, 7, 7, 7, 7, 6, 6,\n 6, 6, 6, 6, 6, 5, 5,\n 5, 5, 5, 5, 5, 5, 5,\n 5, 5, 5, 5, 5, 5, 5\n ];\n\n var groupBases = [\n 0, 0,\n 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,\n 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,\n 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,\n 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,\n 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176\n ];\n\n BN.prototype.toString = function toString (base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n\n var out;\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = this.words[i];\n var word = (((w << off) | carry) & 0xffffff).toString(16);\n carry = (w >>> (24 - off)) & 0xffffff;\n off += 2;\n if (off >= 26) {\n off -= 26;\n i--;\n }\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n }\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n if (base === (base | 0) && base >= 2 && base <= 36) {\n // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n var groupSize = groupSizes[base];\n // var groupBase = Math.pow(base, groupSize);\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n while (!c.isZero()) {\n var r = c.modrn(groupBase).toString(base);\n c = c.idivn(groupBase);\n\n if (!c.isZero()) {\n out = zeros[groupSize - r.length] + r + out;\n } else {\n out = r + out;\n }\n }\n if (this.isZero()) {\n out = '0' + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n assert(false, 'Base should be between 2 and 36');\n };\n\n BN.prototype.toNumber = function toNumber () {\n var ret = this.words[0];\n if (this.length === 2) {\n ret += this.words[1] * 0x4000000;\n } else if (this.length === 3 && this.words[2] === 0x01) {\n // NOTE: at this stage it is known that the top bit is set\n ret += 0x10000000000000 + (this.words[1] * 0x4000000);\n } else if (this.length > 2) {\n assert(false, 'Number can only safely store up to 53 bits');\n }\n return (this.negative !== 0) ? -ret : ret;\n };\n\n BN.prototype.toJSON = function toJSON () {\n return this.toString(16, 2);\n };\n\n if (Buffer) {\n BN.prototype.toBuffer = function toBuffer (endian, length) {\n return this.toArrayLike(Buffer, endian, length);\n };\n }\n\n BN.prototype.toArray = function toArray (endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n var allocate = function allocate (ArrayType, size) {\n if (ArrayType.allocUnsafe) {\n return ArrayType.allocUnsafe(size);\n }\n return new ArrayType(size);\n };\n\n BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n this._strip();\n\n var byteLength = this.byteLength();\n var reqLength = length || Math.max(1, byteLength);\n assert(byteLength <= reqLength, 'byte array longer than desired length');\n assert(reqLength > 0, 'Requested array length <= 0');\n\n var res = allocate(ArrayType, reqLength);\n var postfix = endian === 'le' ? 'LE' : 'BE';\n this['_toArrayLike' + postfix](res, byteLength);\n return res;\n };\n\n BN.prototype._toArrayLikeLE = function _toArrayLikeLE (res, byteLength) {\n var position = 0;\n var carry = 0;\n\n for (var i = 0, shift = 0; i < this.length; i++) {\n var word = (this.words[i] << shift) | carry;\n\n res[position++] = word & 0xff;\n if (position < res.length) {\n res[position++] = (word >> 8) & 0xff;\n }\n if (position < res.length) {\n res[position++] = (word >> 16) & 0xff;\n }\n\n if (shift === 6) {\n if (position < res.length) {\n res[position++] = (word >> 24) & 0xff;\n }\n carry = 0;\n shift = 0;\n } else {\n carry = word >>> 24;\n shift += 2;\n }\n }\n\n if (position < res.length) {\n res[position++] = carry;\n\n while (position < res.length) {\n res[position++] = 0;\n }\n }\n };\n\n BN.prototype._toArrayLikeBE = function _toArrayLikeBE (res, byteLength) {\n var position = res.length - 1;\n var carry = 0;\n\n for (var i = 0, shift = 0; i < this.length; i++) {\n var word = (this.words[i] << shift) | carry;\n\n res[position--] = word & 0xff;\n if (position >= 0) {\n res[position--] = (word >> 8) & 0xff;\n }\n if (position >= 0) {\n res[position--] = (word >> 16) & 0xff;\n }\n\n if (shift === 6) {\n if (position >= 0) {\n res[position--] = (word >> 24) & 0xff;\n }\n carry = 0;\n shift = 0;\n } else {\n carry = word >>> 24;\n shift += 2;\n }\n }\n\n if (position >= 0) {\n res[position--] = carry;\n\n while (position >= 0) {\n res[position--] = 0;\n }\n }\n };\n\n if (Math.clz32) {\n BN.prototype._countBits = function _countBits (w) {\n return 32 - Math.clz32(w);\n };\n } else {\n BN.prototype._countBits = function _countBits (w) {\n var t = w;\n var r = 0;\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\n return r + t;\n };\n }\n\n BN.prototype._zeroBits = function _zeroBits (w) {\n // Short-cut\n if (w === 0) return 26;\n\n var t = w;\n var r = 0;\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n if ((t & 0x1) === 0) {\n r++;\n }\n return r;\n };\n\n // Return number of used bits in a BN\n BN.prototype.bitLength = function bitLength () {\n var w = this.words[this.length - 1];\n var hi = this._countBits(w);\n return (this.length - 1) * 26 + hi;\n };\n\n function toBitArray (num) {\n var w = new Array(num.bitLength());\n\n for (var bit = 0; bit < w.length; bit++) {\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n w[bit] = (num.words[off] >>> wbit) & 0x01;\n }\n\n return w;\n }\n\n // Number of trailing zero bits\n BN.prototype.zeroBits = function zeroBits () {\n if (this.isZero()) return 0;\n\n var r = 0;\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n r += b;\n if (b !== 26) break;\n }\n return r;\n };\n\n BN.prototype.byteLength = function byteLength () {\n return Math.ceil(this.bitLength() / 8);\n };\n\n BN.prototype.toTwos = function toTwos (width) {\n if (this.negative !== 0) {\n return this.abs().inotn(width).iaddn(1);\n }\n return this.clone();\n };\n\n BN.prototype.fromTwos = function fromTwos (width) {\n if (this.testn(width - 1)) {\n return this.notn(width).iaddn(1).ineg();\n }\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg () {\n return this.negative !== 0;\n };\n\n // Return negative clone of `this`\n BN.prototype.neg = function neg () {\n return this.clone().ineg();\n };\n\n BN.prototype.ineg = function ineg () {\n if (!this.isZero()) {\n this.negative ^= 1;\n }\n\n return this;\n };\n\n // Or `num` with `this` in-place\n BN.prototype.iuor = function iuor (num) {\n while (this.length < num.length) {\n this.words[this.length++] = 0;\n }\n\n for (var i = 0; i < num.length; i++) {\n this.words[i] = this.words[i] | num.words[i];\n }\n\n return this._strip();\n };\n\n BN.prototype.ior = function ior (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuor(num);\n };\n\n // Or `num` with `this`\n BN.prototype.or = function or (num) {\n if (this.length > num.length) return this.clone().ior(num);\n return num.clone().ior(this);\n };\n\n BN.prototype.uor = function uor (num) {\n if (this.length > num.length) return this.clone().iuor(num);\n return num.clone().iuor(this);\n };\n\n // And `num` with `this` in-place\n BN.prototype.iuand = function iuand (num) {\n // b = min-length(num, this)\n var b;\n if (this.length > num.length) {\n b = num;\n } else {\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = this.words[i] & num.words[i];\n }\n\n this.length = b.length;\n\n return this._strip();\n };\n\n BN.prototype.iand = function iand (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuand(num);\n };\n\n // And `num` with `this`\n BN.prototype.and = function and (num) {\n if (this.length > num.length) return this.clone().iand(num);\n return num.clone().iand(this);\n };\n\n BN.prototype.uand = function uand (num) {\n if (this.length > num.length) return this.clone().iuand(num);\n return num.clone().iuand(this);\n };\n\n // Xor `num` with `this` in-place\n BN.prototype.iuxor = function iuxor (num) {\n // a.length > b.length\n var a;\n var b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = a.words[i] ^ b.words[i];\n }\n\n if (this !== a) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = a.length;\n\n return this._strip();\n };\n\n BN.prototype.ixor = function ixor (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuxor(num);\n };\n\n // Xor `num` with `this`\n BN.prototype.xor = function xor (num) {\n if (this.length > num.length) return this.clone().ixor(num);\n return num.clone().ixor(this);\n };\n\n BN.prototype.uxor = function uxor (num) {\n if (this.length > num.length) return this.clone().iuxor(num);\n return num.clone().iuxor(this);\n };\n\n // Not ``this`` with ``width`` bitwidth\n BN.prototype.inotn = function inotn (width) {\n assert(typeof width === 'number' && width >= 0);\n\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26;\n\n // Extend the buffer with leading zeroes\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n }\n\n // Handle complete words\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n }\n\n // Handle the residue\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));\n }\n\n // And remove leading zeroes\n return this._strip();\n };\n\n BN.prototype.notn = function notn (width) {\n return this.clone().inotn(width);\n };\n\n // Set `bit` of `this`\n BN.prototype.setn = function setn (bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\n\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n this._expand(off + 1);\n\n if (val) {\n this.words[off] = this.words[off] | (1 << wbit);\n } else {\n this.words[off] = this.words[off] & ~(1 << wbit);\n }\n\n return this._strip();\n };\n\n // Add `num` to `this` in-place\n BN.prototype.iadd = function iadd (num) {\n var r;\n\n // negative + positive\n if (this.negative !== 0 && num.negative === 0) {\n this.negative = 0;\n r = this.isub(num);\n this.negative ^= 1;\n return this._normSign();\n\n // positive + negative\n } else if (this.negative === 0 && num.negative !== 0) {\n num.negative = 0;\n r = this.isub(num);\n num.negative = 1;\n return r._normSign();\n }\n\n // a.length > b.length\n var a, b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n this.length = a.length;\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++;\n // Copy the rest of the words\n } else if (a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n return this;\n };\n\n // Add `num` to `this`\n BN.prototype.add = function add (num) {\n var res;\n if (num.negative !== 0 && this.negative === 0) {\n num.negative = 0;\n res = this.sub(num);\n num.negative ^= 1;\n return res;\n } else if (num.negative === 0 && this.negative !== 0) {\n this.negative = 0;\n res = num.sub(this);\n this.negative = 1;\n return res;\n }\n\n if (this.length > num.length) return this.clone().iadd(num);\n\n return num.clone().iadd(this);\n };\n\n // Subtract `num` from `this` in-place\n BN.prototype.isub = function isub (num) {\n // this - (-num) = this + num\n if (num.negative !== 0) {\n num.negative = 0;\n var r = this.iadd(num);\n num.negative = 1;\n return r._normSign();\n\n // -this - num = -(this + num)\n } else if (this.negative !== 0) {\n this.negative = 0;\n this.iadd(num);\n this.negative = 1;\n return this._normSign();\n }\n\n // At this point both numbers are positive\n var cmp = this.cmp(num);\n\n // Optimization - zeroify\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n }\n\n // a > b\n var a, b;\n if (cmp > 0) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n\n // Copy rest of the words\n if (carry === 0 && i < a.length && a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = Math.max(this.length, i);\n\n if (a !== this) {\n this.negative = 1;\n }\n\n return this._strip();\n };\n\n // Subtract `num` from `this`\n BN.prototype.sub = function sub (num) {\n return this.clone().isub(num);\n };\n\n function smallMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n var len = (self.length + num.length) | 0;\n out.length = len;\n len = (len - 1) | 0;\n\n // Peel one iteration (compiler can't do it, because of code complexity)\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n var carry = (r / 0x4000000) | 0;\n out.words[0] = lo;\n\n for (var k = 1; k < len; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = carry >>> 26;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = (k - j) | 0;\n a = self.words[i] | 0;\n b = num.words[j] | 0;\n r = a * b + rword;\n ncarry += (r / 0x4000000) | 0;\n rword = r & 0x3ffffff;\n }\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out._strip();\n }\n\n // TODO(indutny): it may be reasonable to omit it for users who don't need\n // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n // multiplication (like elliptic secp256k1).\n var comb10MulTo = function comb10MulTo (self, num, out) {\n var a = self.words;\n var b = num.words;\n var o = out.words;\n var c = 0;\n var lo;\n var mid;\n var hi;\n var a0 = a[0] | 0;\n var al0 = a0 & 0x1fff;\n var ah0 = a0 >>> 13;\n var a1 = a[1] | 0;\n var al1 = a1 & 0x1fff;\n var ah1 = a1 >>> 13;\n var a2 = a[2] | 0;\n var al2 = a2 & 0x1fff;\n var ah2 = a2 >>> 13;\n var a3 = a[3] | 0;\n var al3 = a3 & 0x1fff;\n var ah3 = a3 >>> 13;\n var a4 = a[4] | 0;\n var al4 = a4 & 0x1fff;\n var ah4 = a4 >>> 13;\n var a5 = a[5] | 0;\n var al5 = a5 & 0x1fff;\n var ah5 = a5 >>> 13;\n var a6 = a[6] | 0;\n var al6 = a6 & 0x1fff;\n var ah6 = a6 >>> 13;\n var a7 = a[7] | 0;\n var al7 = a7 & 0x1fff;\n var ah7 = a7 >>> 13;\n var a8 = a[8] | 0;\n var al8 = a8 & 0x1fff;\n var ah8 = a8 >>> 13;\n var a9 = a[9] | 0;\n var al9 = a9 & 0x1fff;\n var ah9 = a9 >>> 13;\n var b0 = b[0] | 0;\n var bl0 = b0 & 0x1fff;\n var bh0 = b0 >>> 13;\n var b1 = b[1] | 0;\n var bl1 = b1 & 0x1fff;\n var bh1 = b1 >>> 13;\n var b2 = b[2] | 0;\n var bl2 = b2 & 0x1fff;\n var bh2 = b2 >>> 13;\n var b3 = b[3] | 0;\n var bl3 = b3 & 0x1fff;\n var bh3 = b3 >>> 13;\n var b4 = b[4] | 0;\n var bl4 = b4 & 0x1fff;\n var bh4 = b4 >>> 13;\n var b5 = b[5] | 0;\n var bl5 = b5 & 0x1fff;\n var bh5 = b5 >>> 13;\n var b6 = b[6] | 0;\n var bl6 = b6 & 0x1fff;\n var bh6 = b6 >>> 13;\n var b7 = b[7] | 0;\n var bl7 = b7 & 0x1fff;\n var bh7 = b7 >>> 13;\n var b8 = b[8] | 0;\n var bl8 = b8 & 0x1fff;\n var bh8 = b8 >>> 13;\n var b9 = b[9] | 0;\n var bl9 = b9 & 0x1fff;\n var bh9 = b9 >>> 13;\n\n out.negative = self.negative ^ num.negative;\n out.length = 19;\n /* k = 0 */\n lo = Math.imul(al0, bl0);\n mid = Math.imul(al0, bh0);\n mid = (mid + Math.imul(ah0, bl0)) | 0;\n hi = Math.imul(ah0, bh0);\n var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;\n w0 &= 0x3ffffff;\n /* k = 1 */\n lo = Math.imul(al1, bl0);\n mid = Math.imul(al1, bh0);\n mid = (mid + Math.imul(ah1, bl0)) | 0;\n hi = Math.imul(ah1, bh0);\n lo = (lo + Math.imul(al0, bl1)) | 0;\n mid = (mid + Math.imul(al0, bh1)) | 0;\n mid = (mid + Math.imul(ah0, bl1)) | 0;\n hi = (hi + Math.imul(ah0, bh1)) | 0;\n var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;\n w1 &= 0x3ffffff;\n /* k = 2 */\n lo = Math.imul(al2, bl0);\n mid = Math.imul(al2, bh0);\n mid = (mid + Math.imul(ah2, bl0)) | 0;\n hi = Math.imul(ah2, bh0);\n lo = (lo + Math.imul(al1, bl1)) | 0;\n mid = (mid + Math.imul(al1, bh1)) | 0;\n mid = (mid + Math.imul(ah1, bl1)) | 0;\n hi = (hi + Math.imul(ah1, bh1)) | 0;\n lo = (lo + Math.imul(al0, bl2)) | 0;\n mid = (mid + Math.imul(al0, bh2)) | 0;\n mid = (mid + Math.imul(ah0, bl2)) | 0;\n hi = (hi + Math.imul(ah0, bh2)) | 0;\n var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;\n w2 &= 0x3ffffff;\n /* k = 3 */\n lo = Math.imul(al3, bl0);\n mid = Math.imul(al3, bh0);\n mid = (mid + Math.imul(ah3, bl0)) | 0;\n hi = Math.imul(ah3, bh0);\n lo = (lo + Math.imul(al2, bl1)) | 0;\n mid = (mid + Math.imul(al2, bh1)) | 0;\n mid = (mid + Math.imul(ah2, bl1)) | 0;\n hi = (hi + Math.imul(ah2, bh1)) | 0;\n lo = (lo + Math.imul(al1, bl2)) | 0;\n mid = (mid + Math.imul(al1, bh2)) | 0;\n mid = (mid + Math.imul(ah1, bl2)) | 0;\n hi = (hi + Math.imul(ah1, bh2)) | 0;\n lo = (lo + Math.imul(al0, bl3)) | 0;\n mid = (mid + Math.imul(al0, bh3)) | 0;\n mid = (mid + Math.imul(ah0, bl3)) | 0;\n hi = (hi + Math.imul(ah0, bh3)) | 0;\n var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;\n w3 &= 0x3ffffff;\n /* k = 4 */\n lo = Math.imul(al4, bl0);\n mid = Math.imul(al4, bh0);\n mid = (mid + Math.imul(ah4, bl0)) | 0;\n hi = Math.imul(ah4, bh0);\n lo = (lo + Math.imul(al3, bl1)) | 0;\n mid = (mid + Math.imul(al3, bh1)) | 0;\n mid = (mid + Math.imul(ah3, bl1)) | 0;\n hi = (hi + Math.imul(ah3, bh1)) | 0;\n lo = (lo + Math.imul(al2, bl2)) | 0;\n mid = (mid + Math.imul(al2, bh2)) | 0;\n mid = (mid + Math.imul(ah2, bl2)) | 0;\n hi = (hi + Math.imul(ah2, bh2)) | 0;\n lo = (lo + Math.imul(al1, bl3)) | 0;\n mid = (mid + Math.imul(al1, bh3)) | 0;\n mid = (mid + Math.imul(ah1, bl3)) | 0;\n hi = (hi + Math.imul(ah1, bh3)) | 0;\n lo = (lo + Math.imul(al0, bl4)) | 0;\n mid = (mid + Math.imul(al0, bh4)) | 0;\n mid = (mid + Math.imul(ah0, bl4)) | 0;\n hi = (hi + Math.imul(ah0, bh4)) | 0;\n var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;\n w4 &= 0x3ffffff;\n /* k = 5 */\n lo = Math.imul(al5, bl0);\n mid = Math.imul(al5, bh0);\n mid = (mid + Math.imul(ah5, bl0)) | 0;\n hi = Math.imul(ah5, bh0);\n lo = (lo + Math.imul(al4, bl1)) | 0;\n mid = (mid + Math.imul(al4, bh1)) | 0;\n mid = (mid + Math.imul(ah4, bl1)) | 0;\n hi = (hi + Math.imul(ah4, bh1)) | 0;\n lo = (lo + Math.imul(al3, bl2)) | 0;\n mid = (mid + Math.imul(al3, bh2)) | 0;\n mid = (mid + Math.imul(ah3, bl2)) | 0;\n hi = (hi + Math.imul(ah3, bh2)) | 0;\n lo = (lo + Math.imul(al2, bl3)) | 0;\n mid = (mid + Math.imul(al2, bh3)) | 0;\n mid = (mid + Math.imul(ah2, bl3)) | 0;\n hi = (hi + Math.imul(ah2, bh3)) | 0;\n lo = (lo + Math.imul(al1, bl4)) | 0;\n mid = (mid + Math.imul(al1, bh4)) | 0;\n mid = (mid + Math.imul(ah1, bl4)) | 0;\n hi = (hi + Math.imul(ah1, bh4)) | 0;\n lo = (lo + Math.imul(al0, bl5)) | 0;\n mid = (mid + Math.imul(al0, bh5)) | 0;\n mid = (mid + Math.imul(ah0, bl5)) | 0;\n hi = (hi + Math.imul(ah0, bh5)) | 0;\n var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;\n w5 &= 0x3ffffff;\n /* k = 6 */\n lo = Math.imul(al6, bl0);\n mid = Math.imul(al6, bh0);\n mid = (mid + Math.imul(ah6, bl0)) | 0;\n hi = Math.imul(ah6, bh0);\n lo = (lo + Math.imul(al5, bl1)) | 0;\n mid = (mid + Math.imul(al5, bh1)) | 0;\n mid = (mid + Math.imul(ah5, bl1)) | 0;\n hi = (hi + Math.imul(ah5, bh1)) | 0;\n lo = (lo + Math.imul(al4, bl2)) | 0;\n mid = (mid + Math.imul(al4, bh2)) | 0;\n mid = (mid + Math.imul(ah4, bl2)) | 0;\n hi = (hi + Math.imul(ah4, bh2)) | 0;\n lo = (lo + Math.imul(al3, bl3)) | 0;\n mid = (mid + Math.imul(al3, bh3)) | 0;\n mid = (mid + Math.imul(ah3, bl3)) | 0;\n hi = (hi + Math.imul(ah3, bh3)) | 0;\n lo = (lo + Math.imul(al2, bl4)) | 0;\n mid = (mid + Math.imul(al2, bh4)) | 0;\n mid = (mid + Math.imul(ah2, bl4)) | 0;\n hi = (hi + Math.imul(ah2, bh4)) | 0;\n lo = (lo + Math.imul(al1, bl5)) | 0;\n mid = (mid + Math.imul(al1, bh5)) | 0;\n mid = (mid + Math.imul(ah1, bl5)) | 0;\n hi = (hi + Math.imul(ah1, bh5)) | 0;\n lo = (lo + Math.imul(al0, bl6)) | 0;\n mid = (mid + Math.imul(al0, bh6)) | 0;\n mid = (mid + Math.imul(ah0, bl6)) | 0;\n hi = (hi + Math.imul(ah0, bh6)) | 0;\n var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;\n w6 &= 0x3ffffff;\n /* k = 7 */\n lo = Math.imul(al7, bl0);\n mid = Math.imul(al7, bh0);\n mid = (mid + Math.imul(ah7, bl0)) | 0;\n hi = Math.imul(ah7, bh0);\n lo = (lo + Math.imul(al6, bl1)) | 0;\n mid = (mid + Math.imul(al6, bh1)) | 0;\n mid = (mid + Math.imul(ah6, bl1)) | 0;\n hi = (hi + Math.imul(ah6, bh1)) | 0;\n lo = (lo + Math.imul(al5, bl2)) | 0;\n mid = (mid + Math.imul(al5, bh2)) | 0;\n mid = (mid + Math.imul(ah5, bl2)) | 0;\n hi = (hi + Math.imul(ah5, bh2)) | 0;\n lo = (lo + Math.imul(al4, bl3)) | 0;\n mid = (mid + Math.imul(al4, bh3)) | 0;\n mid = (mid + Math.imul(ah4, bl3)) | 0;\n hi = (hi + Math.imul(ah4, bh3)) | 0;\n lo = (lo + Math.imul(al3, bl4)) | 0;\n mid = (mid + Math.imul(al3, bh4)) | 0;\n mid = (mid + Math.imul(ah3, bl4)) | 0;\n hi = (hi + Math.imul(ah3, bh4)) | 0;\n lo = (lo + Math.imul(al2, bl5)) | 0;\n mid = (mid + Math.imul(al2, bh5)) | 0;\n mid = (mid + Math.imul(ah2, bl5)) | 0;\n hi = (hi + Math.imul(ah2, bh5)) | 0;\n lo = (lo + Math.imul(al1, bl6)) | 0;\n mid = (mid + Math.imul(al1, bh6)) | 0;\n mid = (mid + Math.imul(ah1, bl6)) | 0;\n hi = (hi + Math.imul(ah1, bh6)) | 0;\n lo = (lo + Math.imul(al0, bl7)) | 0;\n mid = (mid + Math.imul(al0, bh7)) | 0;\n mid = (mid + Math.imul(ah0, bl7)) | 0;\n hi = (hi + Math.imul(ah0, bh7)) | 0;\n var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;\n w7 &= 0x3ffffff;\n /* k = 8 */\n lo = Math.imul(al8, bl0);\n mid = Math.imul(al8, bh0);\n mid = (mid + Math.imul(ah8, bl0)) | 0;\n hi = Math.imul(ah8, bh0);\n lo = (lo + Math.imul(al7, bl1)) | 0;\n mid = (mid + Math.imul(al7, bh1)) | 0;\n mid = (mid + Math.imul(ah7, bl1)) | 0;\n hi = (hi + Math.imul(ah7, bh1)) | 0;\n lo = (lo + Math.imul(al6, bl2)) | 0;\n mid = (mid + Math.imul(al6, bh2)) | 0;\n mid = (mid + Math.imul(ah6, bl2)) | 0;\n hi = (hi + Math.imul(ah6, bh2)) | 0;\n lo = (lo + Math.imul(al5, bl3)) | 0;\n mid = (mid + Math.imul(al5, bh3)) | 0;\n mid = (mid + Math.imul(ah5, bl3)) | 0;\n hi = (hi + Math.imul(ah5, bh3)) | 0;\n lo = (lo + Math.imul(al4, bl4)) | 0;\n mid = (mid + Math.imul(al4, bh4)) | 0;\n mid = (mid + Math.imul(ah4, bl4)) | 0;\n hi = (hi + Math.imul(ah4, bh4)) | 0;\n lo = (lo + Math.imul(al3, bl5)) | 0;\n mid = (mid + Math.imul(al3, bh5)) | 0;\n mid = (mid + Math.imul(ah3, bl5)) | 0;\n hi = (hi + Math.imul(ah3, bh5)) | 0;\n lo = (lo + Math.imul(al2, bl6)) | 0;\n mid = (mid + Math.imul(al2, bh6)) | 0;\n mid = (mid + Math.imul(ah2, bl6)) | 0;\n hi = (hi + Math.imul(ah2, bh6)) | 0;\n lo = (lo + Math.imul(al1, bl7)) | 0;\n mid = (mid + Math.imul(al1, bh7)) | 0;\n mid = (mid + Math.imul(ah1, bl7)) | 0;\n hi = (hi + Math.imul(ah1, bh7)) | 0;\n lo = (lo + Math.imul(al0, bl8)) | 0;\n mid = (mid + Math.imul(al0, bh8)) | 0;\n mid = (mid + Math.imul(ah0, bl8)) | 0;\n hi = (hi + Math.imul(ah0, bh8)) | 0;\n var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;\n w8 &= 0x3ffffff;\n /* k = 9 */\n lo = Math.imul(al9, bl0);\n mid = Math.imul(al9, bh0);\n mid = (mid + Math.imul(ah9, bl0)) | 0;\n hi = Math.imul(ah9, bh0);\n lo = (lo + Math.imul(al8, bl1)) | 0;\n mid = (mid + Math.imul(al8, bh1)) | 0;\n mid = (mid + Math.imul(ah8, bl1)) | 0;\n hi = (hi + Math.imul(ah8, bh1)) | 0;\n lo = (lo + Math.imul(al7, bl2)) | 0;\n mid = (mid + Math.imul(al7, bh2)) | 0;\n mid = (mid + Math.imul(ah7, bl2)) | 0;\n hi = (hi + Math.imul(ah7, bh2)) | 0;\n lo = (lo + Math.imul(al6, bl3)) | 0;\n mid = (mid + Math.imul(al6, bh3)) | 0;\n mid = (mid + Math.imul(ah6, bl3)) | 0;\n hi = (hi + Math.imul(ah6, bh3)) | 0;\n lo = (lo + Math.imul(al5, bl4)) | 0;\n mid = (mid + Math.imul(al5, bh4)) | 0;\n mid = (mid + Math.imul(ah5, bl4)) | 0;\n hi = (hi + Math.imul(ah5, bh4)) | 0;\n lo = (lo + Math.imul(al4, bl5)) | 0;\n mid = (mid + Math.imul(al4, bh5)) | 0;\n mid = (mid + Math.imul(ah4, bl5)) | 0;\n hi = (hi + Math.imul(ah4, bh5)) | 0;\n lo = (lo + Math.imul(al3, bl6)) | 0;\n mid = (mid + Math.imul(al3, bh6)) | 0;\n mid = (mid + Math.imul(ah3, bl6)) | 0;\n hi = (hi + Math.imul(ah3, bh6)) | 0;\n lo = (lo + Math.imul(al2, bl7)) | 0;\n mid = (mid + Math.imul(al2, bh7)) | 0;\n mid = (mid + Math.imul(ah2, bl7)) | 0;\n hi = (hi + Math.imul(ah2, bh7)) | 0;\n lo = (lo + Math.imul(al1, bl8)) | 0;\n mid = (mid + Math.imul(al1, bh8)) | 0;\n mid = (mid + Math.imul(ah1, bl8)) | 0;\n hi = (hi + Math.imul(ah1, bh8)) | 0;\n lo = (lo + Math.imul(al0, bl9)) | 0;\n mid = (mid + Math.imul(al0, bh9)) | 0;\n mid = (mid + Math.imul(ah0, bl9)) | 0;\n hi = (hi + Math.imul(ah0, bh9)) | 0;\n var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;\n w9 &= 0x3ffffff;\n /* k = 10 */\n lo = Math.imul(al9, bl1);\n mid = Math.imul(al9, bh1);\n mid = (mid + Math.imul(ah9, bl1)) | 0;\n hi = Math.imul(ah9, bh1);\n lo = (lo + Math.imul(al8, bl2)) | 0;\n mid = (mid + Math.imul(al8, bh2)) | 0;\n mid = (mid + Math.imul(ah8, bl2)) | 0;\n hi = (hi + Math.imul(ah8, bh2)) | 0;\n lo = (lo + Math.imul(al7, bl3)) | 0;\n mid = (mid + Math.imul(al7, bh3)) | 0;\n mid = (mid + Math.imul(ah7, bl3)) | 0;\n hi = (hi + Math.imul(ah7, bh3)) | 0;\n lo = (lo + Math.imul(al6, bl4)) | 0;\n mid = (mid + Math.imul(al6, bh4)) | 0;\n mid = (mid + Math.imul(ah6, bl4)) | 0;\n hi = (hi + Math.imul(ah6, bh4)) | 0;\n lo = (lo + Math.imul(al5, bl5)) | 0;\n mid = (mid + Math.imul(al5, bh5)) | 0;\n mid = (mid + Math.imul(ah5, bl5)) | 0;\n hi = (hi + Math.imul(ah5, bh5)) | 0;\n lo = (lo + Math.imul(al4, bl6)) | 0;\n mid = (mid + Math.imul(al4, bh6)) | 0;\n mid = (mid + Math.imul(ah4, bl6)) | 0;\n hi = (hi + Math.imul(ah4, bh6)) | 0;\n lo = (lo + Math.imul(al3, bl7)) | 0;\n mid = (mid + Math.imul(al3, bh7)) | 0;\n mid = (mid + Math.imul(ah3, bl7)) | 0;\n hi = (hi + Math.imul(ah3, bh7)) | 0;\n lo = (lo + Math.imul(al2, bl8)) | 0;\n mid = (mid + Math.imul(al2, bh8)) | 0;\n mid = (mid + Math.imul(ah2, bl8)) | 0;\n hi = (hi + Math.imul(ah2, bh8)) | 0;\n lo = (lo + Math.imul(al1, bl9)) | 0;\n mid = (mid + Math.imul(al1, bh9)) | 0;\n mid = (mid + Math.imul(ah1, bl9)) | 0;\n hi = (hi + Math.imul(ah1, bh9)) | 0;\n var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;\n w10 &= 0x3ffffff;\n /* k = 11 */\n lo = Math.imul(al9, bl2);\n mid = Math.imul(al9, bh2);\n mid = (mid + Math.imul(ah9, bl2)) | 0;\n hi = Math.imul(ah9, bh2);\n lo = (lo + Math.imul(al8, bl3)) | 0;\n mid = (mid + Math.imul(al8, bh3)) | 0;\n mid = (mid + Math.imul(ah8, bl3)) | 0;\n hi = (hi + Math.imul(ah8, bh3)) | 0;\n lo = (lo + Math.imul(al7, bl4)) | 0;\n mid = (mid + Math.imul(al7, bh4)) | 0;\n mid = (mid + Math.imul(ah7, bl4)) | 0;\n hi = (hi + Math.imul(ah7, bh4)) | 0;\n lo = (lo + Math.imul(al6, bl5)) | 0;\n mid = (mid + Math.imul(al6, bh5)) | 0;\n mid = (mid + Math.imul(ah6, bl5)) | 0;\n hi = (hi + Math.imul(ah6, bh5)) | 0;\n lo = (lo + Math.imul(al5, bl6)) | 0;\n mid = (mid + Math.imul(al5, bh6)) | 0;\n mid = (mid + Math.imul(ah5, bl6)) | 0;\n hi = (hi + Math.imul(ah5, bh6)) | 0;\n lo = (lo + Math.imul(al4, bl7)) | 0;\n mid = (mid + Math.imul(al4, bh7)) | 0;\n mid = (mid + Math.imul(ah4, bl7)) | 0;\n hi = (hi + Math.imul(ah4, bh7)) | 0;\n lo = (lo + Math.imul(al3, bl8)) | 0;\n mid = (mid + Math.imul(al3, bh8)) | 0;\n mid = (mid + Math.imul(ah3, bl8)) | 0;\n hi = (hi + Math.imul(ah3, bh8)) | 0;\n lo = (lo + Math.imul(al2, bl9)) | 0;\n mid = (mid + Math.imul(al2, bh9)) | 0;\n mid = (mid + Math.imul(ah2, bl9)) | 0;\n hi = (hi + Math.imul(ah2, bh9)) | 0;\n var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;\n w11 &= 0x3ffffff;\n /* k = 12 */\n lo = Math.imul(al9, bl3);\n mid = Math.imul(al9, bh3);\n mid = (mid + Math.imul(ah9, bl3)) | 0;\n hi = Math.imul(ah9, bh3);\n lo = (lo + Math.imul(al8, bl4)) | 0;\n mid = (mid + Math.imul(al8, bh4)) | 0;\n mid = (mid + Math.imul(ah8, bl4)) | 0;\n hi = (hi + Math.imul(ah8, bh4)) | 0;\n lo = (lo + Math.imul(al7, bl5)) | 0;\n mid = (mid + Math.imul(al7, bh5)) | 0;\n mid = (mid + Math.imul(ah7, bl5)) | 0;\n hi = (hi + Math.imul(ah7, bh5)) | 0;\n lo = (lo + Math.imul(al6, bl6)) | 0;\n mid = (mid + Math.imul(al6, bh6)) | 0;\n mid = (mid + Math.imul(ah6, bl6)) | 0;\n hi = (hi + Math.imul(ah6, bh6)) | 0;\n lo = (lo + Math.imul(al5, bl7)) | 0;\n mid = (mid + Math.imul(al5, bh7)) | 0;\n mid = (mid + Math.imul(ah5, bl7)) | 0;\n hi = (hi + Math.imul(ah5, bh7)) | 0;\n lo = (lo + Math.imul(al4, bl8)) | 0;\n mid = (mid + Math.imul(al4, bh8)) | 0;\n mid = (mid + Math.imul(ah4, bl8)) | 0;\n hi = (hi + Math.imul(ah4, bh8)) | 0;\n lo = (lo + Math.imul(al3, bl9)) | 0;\n mid = (mid + Math.imul(al3, bh9)) | 0;\n mid = (mid + Math.imul(ah3, bl9)) | 0;\n hi = (hi + Math.imul(ah3, bh9)) | 0;\n var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;\n w12 &= 0x3ffffff;\n /* k = 13 */\n lo = Math.imul(al9, bl4);\n mid = Math.imul(al9, bh4);\n mid = (mid + Math.imul(ah9, bl4)) | 0;\n hi = Math.imul(ah9, bh4);\n lo = (lo + Math.imul(al8, bl5)) | 0;\n mid = (mid + Math.imul(al8, bh5)) | 0;\n mid = (mid + Math.imul(ah8, bl5)) | 0;\n hi = (hi + Math.imul(ah8, bh5)) | 0;\n lo = (lo + Math.imul(al7, bl6)) | 0;\n mid = (mid + Math.imul(al7, bh6)) | 0;\n mid = (mid + Math.imul(ah7, bl6)) | 0;\n hi = (hi + Math.imul(ah7, bh6)) | 0;\n lo = (lo + Math.imul(al6, bl7)) | 0;\n mid = (mid + Math.imul(al6, bh7)) | 0;\n mid = (mid + Math.imul(ah6, bl7)) | 0;\n hi = (hi + Math.imul(ah6, bh7)) | 0;\n lo = (lo + Math.imul(al5, bl8)) | 0;\n mid = (mid + Math.imul(al5, bh8)) | 0;\n mid = (mid + Math.imul(ah5, bl8)) | 0;\n hi = (hi + Math.imul(ah5, bh8)) | 0;\n lo = (lo + Math.imul(al4, bl9)) | 0;\n mid = (mid + Math.imul(al4, bh9)) | 0;\n mid = (mid + Math.imul(ah4, bl9)) | 0;\n hi = (hi + Math.imul(ah4, bh9)) | 0;\n var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;\n w13 &= 0x3ffffff;\n /* k = 14 */\n lo = Math.imul(al9, bl5);\n mid = Math.imul(al9, bh5);\n mid = (mid + Math.imul(ah9, bl5)) | 0;\n hi = Math.imul(ah9, bh5);\n lo = (lo + Math.imul(al8, bl6)) | 0;\n mid = (mid + Math.imul(al8, bh6)) | 0;\n mid = (mid + Math.imul(ah8, bl6)) | 0;\n hi = (hi + Math.imul(ah8, bh6)) | 0;\n lo = (lo + Math.imul(al7, bl7)) | 0;\n mid = (mid + Math.imul(al7, bh7)) | 0;\n mid = (mid + Math.imul(ah7, bl7)) | 0;\n hi = (hi + Math.imul(ah7, bh7)) | 0;\n lo = (lo + Math.imul(al6, bl8)) | 0;\n mid = (mid + Math.imul(al6, bh8)) | 0;\n mid = (mid + Math.imul(ah6, bl8)) | 0;\n hi = (hi + Math.imul(ah6, bh8)) | 0;\n lo = (lo + Math.imul(al5, bl9)) | 0;\n mid = (mid + Math.imul(al5, bh9)) | 0;\n mid = (mid + Math.imul(ah5, bl9)) | 0;\n hi = (hi + Math.imul(ah5, bh9)) | 0;\n var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;\n w14 &= 0x3ffffff;\n /* k = 15 */\n lo = Math.imul(al9, bl6);\n mid = Math.imul(al9, bh6);\n mid = (mid + Math.imul(ah9, bl6)) | 0;\n hi = Math.imul(ah9, bh6);\n lo = (lo + Math.imul(al8, bl7)) | 0;\n mid = (mid + Math.imul(al8, bh7)) | 0;\n mid = (mid + Math.imul(ah8, bl7)) | 0;\n hi = (hi + Math.imul(ah8, bh7)) | 0;\n lo = (lo + Math.imul(al7, bl8)) | 0;\n mid = (mid + Math.imul(al7, bh8)) | 0;\n mid = (mid + Math.imul(ah7, bl8)) | 0;\n hi = (hi + Math.imul(ah7, bh8)) | 0;\n lo = (lo + Math.imul(al6, bl9)) | 0;\n mid = (mid + Math.imul(al6, bh9)) | 0;\n mid = (mid + Math.imul(ah6, bl9)) | 0;\n hi = (hi + Math.imul(ah6, bh9)) | 0;\n var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;\n w15 &= 0x3ffffff;\n /* k = 16 */\n lo = Math.imul(al9, bl7);\n mid = Math.imul(al9, bh7);\n mid = (mid + Math.imul(ah9, bl7)) | 0;\n hi = Math.imul(ah9, bh7);\n lo = (lo + Math.imul(al8, bl8)) | 0;\n mid = (mid + Math.imul(al8, bh8)) | 0;\n mid = (mid + Math.imul(ah8, bl8)) | 0;\n hi = (hi + Math.imul(ah8, bh8)) | 0;\n lo = (lo + Math.imul(al7, bl9)) | 0;\n mid = (mid + Math.imul(al7, bh9)) | 0;\n mid = (mid + Math.imul(ah7, bl9)) | 0;\n hi = (hi + Math.imul(ah7, bh9)) | 0;\n var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;\n w16 &= 0x3ffffff;\n /* k = 17 */\n lo = Math.imul(al9, bl8);\n mid = Math.imul(al9, bh8);\n mid = (mid + Math.imul(ah9, bl8)) | 0;\n hi = Math.imul(ah9, bh8);\n lo = (lo + Math.imul(al8, bl9)) | 0;\n mid = (mid + Math.imul(al8, bh9)) | 0;\n mid = (mid + Math.imul(ah8, bl9)) | 0;\n hi = (hi + Math.imul(ah8, bh9)) | 0;\n var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;\n w17 &= 0x3ffffff;\n /* k = 18 */\n lo = Math.imul(al9, bl9);\n mid = Math.imul(al9, bh9);\n mid = (mid + Math.imul(ah9, bl9)) | 0;\n hi = Math.imul(ah9, bh9);\n var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;\n w18 &= 0x3ffffff;\n o[0] = w0;\n o[1] = w1;\n o[2] = w2;\n o[3] = w3;\n o[4] = w4;\n o[5] = w5;\n o[6] = w6;\n o[7] = w7;\n o[8] = w8;\n o[9] = w9;\n o[10] = w10;\n o[11] = w11;\n o[12] = w12;\n o[13] = w13;\n o[14] = w14;\n o[15] = w15;\n o[16] = w16;\n o[17] = w17;\n o[18] = w18;\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n return out;\n };\n\n // Polyfill comb\n if (!Math.imul) {\n comb10MulTo = smallMulTo;\n }\n\n function bigMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n out.length = self.length + num.length;\n\n var carry = 0;\n var hncarry = 0;\n for (var k = 0; k < out.length - 1; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = hncarry;\n hncarry = 0;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j;\n var a = self.words[i] | 0;\n var b = num.words[j] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;\n lo = (lo + rword) | 0;\n rword = lo & 0x3ffffff;\n ncarry = (ncarry + (lo >>> 26)) | 0;\n\n hncarry += ncarry >>> 26;\n ncarry &= 0x3ffffff;\n }\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\n if (carry !== 0) {\n out.words[k] = carry;\n } else {\n out.length--;\n }\n\n return out._strip();\n }\n\n function jumboMulTo (self, num, out) {\n // Temporary disable, see https://github.com/indutny/bn.js/issues/211\n // var fftm = new FFTM();\n // return fftm.mulp(self, num, out);\n return bigMulTo(self, num, out);\n }\n\n BN.prototype.mulTo = function mulTo (num, out) {\n var res;\n var len = this.length + num.length;\n if (this.length === 10 && num.length === 10) {\n res = comb10MulTo(this, num, out);\n } else if (len < 63) {\n res = smallMulTo(this, num, out);\n } else if (len < 1024) {\n res = bigMulTo(this, num, out);\n } else {\n res = jumboMulTo(this, num, out);\n }\n\n return res;\n };\n\n // Cooley-Tukey algorithm for FFT\n // slightly revisited to rely on looping instead of recursion\n\n function FFTM (x, y) {\n this.x = x;\n this.y = y;\n }\n\n FFTM.prototype.makeRBT = function makeRBT (N) {\n var t = new Array(N);\n var l = BN.prototype._countBits(N) - 1;\n for (var i = 0; i < N; i++) {\n t[i] = this.revBin(i, l, N);\n }\n\n return t;\n };\n\n // Returns binary-reversed representation of `x`\n FFTM.prototype.revBin = function revBin (x, l, N) {\n if (x === 0 || x === N - 1) return x;\n\n var rb = 0;\n for (var i = 0; i < l; i++) {\n rb |= (x & 1) << (l - i - 1);\n x >>= 1;\n }\n\n return rb;\n };\n\n // Performs \"tweedling\" phase, therefore 'emulating'\n // behaviour of the recursive algorithm\n FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {\n for (var i = 0; i < N; i++) {\n rtws[i] = rws[rbt[i]];\n itws[i] = iws[rbt[i]];\n }\n };\n\n FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {\n this.permute(rbt, rws, iws, rtws, itws, N);\n\n for (var s = 1; s < N; s <<= 1) {\n var l = s << 1;\n\n var rtwdf = Math.cos(2 * Math.PI / l);\n var itwdf = Math.sin(2 * Math.PI / l);\n\n for (var p = 0; p < N; p += l) {\n var rtwdf_ = rtwdf;\n var itwdf_ = itwdf;\n\n for (var j = 0; j < s; j++) {\n var re = rtws[p + j];\n var ie = itws[p + j];\n\n var ro = rtws[p + j + s];\n var io = itws[p + j + s];\n\n var rx = rtwdf_ * ro - itwdf_ * io;\n\n io = rtwdf_ * io + itwdf_ * ro;\n ro = rx;\n\n rtws[p + j] = re + ro;\n itws[p + j] = ie + io;\n\n rtws[p + j + s] = re - ro;\n itws[p + j + s] = ie - io;\n\n /* jshint maxdepth : false */\n if (j !== l) {\n rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n\n itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n rtwdf_ = rx;\n }\n }\n }\n }\n };\n\n FFTM.prototype.guessLen13b = function guessLen13b (n, m) {\n var N = Math.max(m, n) | 1;\n var odd = N & 1;\n var i = 0;\n for (N = N / 2 | 0; N; N = N >>> 1) {\n i++;\n }\n\n return 1 << i + 1 + odd;\n };\n\n FFTM.prototype.conjugate = function conjugate (rws, iws, N) {\n if (N <= 1) return;\n\n for (var i = 0; i < N / 2; i++) {\n var t = rws[i];\n\n rws[i] = rws[N - i - 1];\n rws[N - i - 1] = t;\n\n t = iws[i];\n\n iws[i] = -iws[N - i - 1];\n iws[N - i - 1] = -t;\n }\n };\n\n FFTM.prototype.normalize13b = function normalize13b (ws, N) {\n var carry = 0;\n for (var i = 0; i < N / 2; i++) {\n var w = Math.round(ws[2 * i + 1] / N) * 0x2000 +\n Math.round(ws[2 * i] / N) +\n carry;\n\n ws[i] = w & 0x3ffffff;\n\n if (w < 0x4000000) {\n carry = 0;\n } else {\n carry = w / 0x4000000 | 0;\n }\n }\n\n return ws;\n };\n\n FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {\n var carry = 0;\n for (var i = 0; i < len; i++) {\n carry = carry + (ws[i] | 0);\n\n rws[2 * i] = carry & 0x1fff; carry = carry >>> 13;\n rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13;\n }\n\n // Pad with zeroes\n for (i = 2 * len; i < N; ++i) {\n rws[i] = 0;\n }\n\n assert(carry === 0);\n assert((carry & ~0x1fff) === 0);\n };\n\n FFTM.prototype.stub = function stub (N) {\n var ph = new Array(N);\n for (var i = 0; i < N; i++) {\n ph[i] = 0;\n }\n\n return ph;\n };\n\n FFTM.prototype.mulp = function mulp (x, y, out) {\n var N = 2 * this.guessLen13b(x.length, y.length);\n\n var rbt = this.makeRBT(N);\n\n var _ = this.stub(N);\n\n var rws = new Array(N);\n var rwst = new Array(N);\n var iwst = new Array(N);\n\n var nrws = new Array(N);\n var nrwst = new Array(N);\n var niwst = new Array(N);\n\n var rmws = out.words;\n rmws.length = N;\n\n this.convert13b(x.words, x.length, rws, N);\n this.convert13b(y.words, y.length, nrws, N);\n\n this.transform(rws, _, rwst, iwst, N, rbt);\n this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n for (var i = 0; i < N; i++) {\n var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n rwst[i] = rx;\n }\n\n this.conjugate(rwst, iwst, N);\n this.transform(rwst, iwst, rmws, _, N, rbt);\n this.conjugate(rmws, _, N);\n this.normalize13b(rmws, N);\n\n out.negative = x.negative ^ y.negative;\n out.length = x.length + y.length;\n return out._strip();\n };\n\n // Multiply `this` by `num`\n BN.prototype.mul = function mul (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return this.mulTo(num, out);\n };\n\n // Multiply employing FFT\n BN.prototype.mulf = function mulf (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return jumboMulTo(this, num, out);\n };\n\n // In-place Multiplication\n BN.prototype.imul = function imul (num) {\n return this.clone().mulTo(num, this);\n };\n\n BN.prototype.imuln = function imuln (num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n\n // Carry\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = (this.words[i] | 0) * num;\n var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n carry >>= 26;\n carry += (w / 0x4000000) | 0;\n // NOTE: lo is 27bit maximum\n carry += lo >>> 26;\n this.words[i] = lo & 0x3ffffff;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n\n return isNegNum ? this.ineg() : this;\n };\n\n BN.prototype.muln = function muln (num) {\n return this.clone().imuln(num);\n };\n\n // `this` * `this`\n BN.prototype.sqr = function sqr () {\n return this.mul(this);\n };\n\n // `this` * `this` in-place\n BN.prototype.isqr = function isqr () {\n return this.imul(this.clone());\n };\n\n // Math.pow(`this`, `num`)\n BN.prototype.pow = function pow (num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1);\n\n // Skip leading zeroes\n var res = this;\n for (var i = 0; i < w.length; i++, res = res.sqr()) {\n if (w[i] !== 0) break;\n }\n\n if (++i < w.length) {\n for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n if (w[i] === 0) continue;\n\n res = res.mul(q);\n }\n }\n\n return res;\n };\n\n // Shift-left in-place\n BN.prototype.iushln = function iushln (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);\n var i;\n\n if (r !== 0) {\n var carry = 0;\n\n for (i = 0; i < this.length; i++) {\n var newCarry = this.words[i] & carryMask;\n var c = ((this.words[i] | 0) - newCarry) << r;\n this.words[i] = c | carry;\n carry = newCarry >>> (26 - r);\n }\n\n if (carry) {\n this.words[i] = carry;\n this.length++;\n }\n }\n\n if (s !== 0) {\n for (i = this.length - 1; i >= 0; i--) {\n this.words[i + s] = this.words[i];\n }\n\n for (i = 0; i < s; i++) {\n this.words[i] = 0;\n }\n\n this.length += s;\n }\n\n return this._strip();\n };\n\n BN.prototype.ishln = function ishln (bits) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushln(bits);\n };\n\n // Shift-right in-place\n // NOTE: `hint` is a lowest bit before trailing zeroes\n // NOTE: if `extended` is present - it will be filled with destroyed bits\n BN.prototype.iushrn = function iushrn (bits, hint, extended) {\n assert(typeof bits === 'number' && bits >= 0);\n var h;\n if (hint) {\n h = (hint - (hint % 26)) / 26;\n } else {\n h = 0;\n }\n\n var r = bits % 26;\n var s = Math.min((bits - r) / 26, this.length);\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n var maskedWords = extended;\n\n h -= s;\n h = Math.max(0, h);\n\n // Extended mode, copy masked part\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n maskedWords.length = s;\n }\n\n if (s === 0) {\n // No-op, we should not move anything at all\n } else if (this.length > s) {\n this.length -= s;\n for (i = 0; i < this.length; i++) {\n this.words[i] = this.words[i + s];\n }\n } else {\n this.words[0] = 0;\n this.length = 1;\n }\n\n var carry = 0;\n for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n var word = this.words[i] | 0;\n this.words[i] = (carry << (26 - r)) | (word >>> r);\n carry = word & mask;\n }\n\n // Push carried bits as a mask\n if (maskedWords && carry !== 0) {\n maskedWords.words[maskedWords.length++] = carry;\n }\n\n if (this.length === 0) {\n this.words[0] = 0;\n this.length = 1;\n }\n\n return this._strip();\n };\n\n BN.prototype.ishrn = function ishrn (bits, hint, extended) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushrn(bits, hint, extended);\n };\n\n // Shift-left\n BN.prototype.shln = function shln (bits) {\n return this.clone().ishln(bits);\n };\n\n BN.prototype.ushln = function ushln (bits) {\n return this.clone().iushln(bits);\n };\n\n // Shift-right\n BN.prototype.shrn = function shrn (bits) {\n return this.clone().ishrn(bits);\n };\n\n BN.prototype.ushrn = function ushrn (bits) {\n return this.clone().iushrn(bits);\n };\n\n // Test if n bit is set\n BN.prototype.testn = function testn (bit) {\n assert(typeof bit === 'number' && bit >= 0);\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) return false;\n\n // Check bit and return\n var w = this.words[s];\n\n return !!(w & q);\n };\n\n // Return only lowers bits of number (in-place)\n BN.prototype.imaskn = function imaskn (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n\n assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n if (this.length <= s) {\n return this;\n }\n\n if (r !== 0) {\n s++;\n }\n this.length = Math.min(s, this.length);\n\n if (r !== 0) {\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n this.words[this.length - 1] &= mask;\n }\n\n return this._strip();\n };\n\n // Return only lowers bits of number\n BN.prototype.maskn = function maskn (bits) {\n return this.clone().imaskn(bits);\n };\n\n // Add plain number `num` to `this`\n BN.prototype.iaddn = function iaddn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.isubn(-num);\n\n // Possible sign change\n if (this.negative !== 0) {\n if (this.length === 1 && (this.words[0] | 0) <= num) {\n this.words[0] = num - (this.words[0] | 0);\n this.negative = 0;\n return this;\n }\n\n this.negative = 0;\n this.isubn(num);\n this.negative = 1;\n return this;\n }\n\n // Add without checks\n return this._iaddn(num);\n };\n\n BN.prototype._iaddn = function _iaddn (num) {\n this.words[0] += num;\n\n // Carry\n for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n this.words[i] -= 0x4000000;\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n this.length = Math.max(this.length, i + 1);\n\n return this;\n };\n\n // Subtract plain number `num` from `this`\n BN.prototype.isubn = function isubn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.iaddn(-num);\n\n if (this.negative !== 0) {\n this.negative = 0;\n this.iaddn(num);\n this.negative = 1;\n return this;\n }\n\n this.words[0] -= num;\n\n if (this.length === 1 && this.words[0] < 0) {\n this.words[0] = -this.words[0];\n this.negative = 1;\n } else {\n // Carry\n for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n this.words[i] += 0x4000000;\n this.words[i + 1] -= 1;\n }\n }\n\n return this._strip();\n };\n\n BN.prototype.addn = function addn (num) {\n return this.clone().iaddn(num);\n };\n\n BN.prototype.subn = function subn (num) {\n return this.clone().isubn(num);\n };\n\n BN.prototype.iabs = function iabs () {\n this.negative = 0;\n\n return this;\n };\n\n BN.prototype.abs = function abs () {\n return this.clone().iabs();\n };\n\n BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {\n var len = num.length + shift;\n var i;\n\n this._expand(len);\n\n var w;\n var carry = 0;\n for (i = 0; i < num.length; i++) {\n w = (this.words[i + shift] | 0) + carry;\n var right = (num.words[i] | 0) * mul;\n w -= right & 0x3ffffff;\n carry = (w >> 26) - ((right / 0x4000000) | 0);\n this.words[i + shift] = w & 0x3ffffff;\n }\n for (; i < this.length - shift; i++) {\n w = (this.words[i + shift] | 0) + carry;\n carry = w >> 26;\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n if (carry === 0) return this._strip();\n\n // Subtraction overflow\n assert(carry === -1);\n carry = 0;\n for (i = 0; i < this.length; i++) {\n w = -(this.words[i] | 0) + carry;\n carry = w >> 26;\n this.words[i] = w & 0x3ffffff;\n }\n this.negative = 1;\n\n return this._strip();\n };\n\n BN.prototype._wordDiv = function _wordDiv (num, mode) {\n var shift = this.length - num.length;\n\n var a = this.clone();\n var b = num;\n\n // Normalize\n var bhi = b.words[b.length - 1] | 0;\n var bhiBits = this._countBits(bhi);\n shift = 26 - bhiBits;\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n }\n\n // Initialize quotient\n var m = a.length - b.length;\n var q;\n\n if (mode !== 'mod') {\n q = new BN(null);\n q.length = m + 1;\n q.words = new Array(q.length);\n for (var i = 0; i < q.length; i++) {\n q.words[i] = 0;\n }\n }\n\n var diff = a.clone()._ishlnsubmul(b, 1, m);\n if (diff.negative === 0) {\n a = diff;\n if (q) {\n q.words[m] = 1;\n }\n }\n\n for (var j = m - 1; j >= 0; j--) {\n var qj = (a.words[b.length + j] | 0) * 0x4000000 +\n (a.words[b.length + j - 1] | 0);\n\n // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n // (0x7ffffff)\n qj = Math.min((qj / bhi) | 0, 0x3ffffff);\n\n a._ishlnsubmul(b, qj, j);\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n a._ishlnsubmul(b, 1, j);\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n if (q) {\n q.words[j] = qj;\n }\n }\n if (q) {\n q._strip();\n }\n a._strip();\n\n // Denormalize\n if (mode !== 'div' && shift !== 0) {\n a.iushrn(shift);\n }\n\n return {\n div: q || null,\n mod: a\n };\n };\n\n // NOTE: 1) `mode` can be set to `mod` to request mod only,\n // to `div` to request div only, or be absent to\n // request both div & mod\n // 2) `positive` is true if unsigned mod is requested\n BN.prototype.divmod = function divmod (num, mode, positive) {\n assert(!num.isZero());\n\n if (this.isZero()) {\n return {\n div: new BN(0),\n mod: new BN(0)\n };\n }\n\n var div, mod, res;\n if (this.negative !== 0 && num.negative === 0) {\n res = this.neg().divmod(num, mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.iadd(num);\n }\n }\n\n return {\n div: div,\n mod: mod\n };\n }\n\n if (this.negative === 0 && num.negative !== 0) {\n res = this.divmod(num.neg(), mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n return {\n div: div,\n mod: res.mod\n };\n }\n\n if ((this.negative & num.negative) !== 0) {\n res = this.neg().divmod(num.neg(), mode);\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n\n return {\n div: res.div,\n mod: mod\n };\n }\n\n // Both numbers are positive at this point\n\n // Strip both numbers to approximate shift value\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n }\n\n // Very short reduction\n if (num.length === 1) {\n if (mode === 'div') {\n return {\n div: this.divn(num.words[0]),\n mod: null\n };\n }\n\n if (mode === 'mod') {\n return {\n div: null,\n mod: new BN(this.modrn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modrn(num.words[0]))\n };\n }\n\n return this._wordDiv(num, mode);\n };\n\n // Find `this` / `num`\n BN.prototype.div = function div (num) {\n return this.divmod(num, 'div', false).div;\n };\n\n // Find `this` % `num`\n BN.prototype.mod = function mod (num) {\n return this.divmod(num, 'mod', false).mod;\n };\n\n BN.prototype.umod = function umod (num) {\n return this.divmod(num, 'mod', true).mod;\n };\n\n // Find Round(`this` / `num`)\n BN.prototype.divRound = function divRound (num) {\n var dm = this.divmod(num);\n\n // Fast case - exact division\n if (dm.mod.isZero()) return dm.div;\n\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half);\n\n // Round down\n if (cmp < 0 || (r2 === 1 && cmp === 0)) return dm.div;\n\n // Round up\n return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n };\n\n BN.prototype.modrn = function modrn (num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n\n assert(num <= 0x3ffffff);\n var p = (1 << 26) % num;\n\n var acc = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n acc = (p * acc + (this.words[i] | 0)) % num;\n }\n\n return isNegNum ? -acc : acc;\n };\n\n // WARNING: DEPRECATED\n BN.prototype.modn = function modn (num) {\n return this.modrn(num);\n };\n\n // In-place division by number\n BN.prototype.idivn = function idivn (num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n\n assert(num <= 0x3ffffff);\n\n var carry = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var w = (this.words[i] | 0) + carry * 0x4000000;\n this.words[i] = (w / num) | 0;\n carry = w % num;\n }\n\n this._strip();\n return isNegNum ? this.ineg() : this;\n };\n\n BN.prototype.divn = function divn (num) {\n return this.clone().idivn(num);\n };\n\n BN.prototype.egcd = function egcd (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var x = this;\n var y = p.clone();\n\n if (x.negative !== 0) {\n x = x.umod(p);\n } else {\n x = x.clone();\n }\n\n // A * x + B * y = x\n var A = new BN(1);\n var B = new BN(0);\n\n // C * x + D * y = y\n var C = new BN(0);\n var D = new BN(1);\n\n var g = 0;\n\n while (x.isEven() && y.isEven()) {\n x.iushrn(1);\n y.iushrn(1);\n ++g;\n }\n\n var yp = y.clone();\n var xp = x.clone();\n\n while (!x.isZero()) {\n for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n x.iushrn(i);\n while (i-- > 0) {\n if (A.isOdd() || B.isOdd()) {\n A.iadd(yp);\n B.isub(xp);\n }\n\n A.iushrn(1);\n B.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n y.iushrn(j);\n while (j-- > 0) {\n if (C.isOdd() || D.isOdd()) {\n C.iadd(yp);\n D.isub(xp);\n }\n\n C.iushrn(1);\n D.iushrn(1);\n }\n }\n\n if (x.cmp(y) >= 0) {\n x.isub(y);\n A.isub(C);\n B.isub(D);\n } else {\n y.isub(x);\n C.isub(A);\n D.isub(B);\n }\n }\n\n return {\n a: C,\n b: D,\n gcd: y.iushln(g)\n };\n };\n\n // This is reduced incarnation of the binary EEA\n // above, designated to invert members of the\n // _prime_ fields F(p) at a maximal speed\n BN.prototype._invmp = function _invmp (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var a = this;\n var b = p.clone();\n\n if (a.negative !== 0) {\n a = a.umod(p);\n } else {\n a = a.clone();\n }\n\n var x1 = new BN(1);\n var x2 = new BN(0);\n\n var delta = b.clone();\n\n while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n a.iushrn(i);\n while (i-- > 0) {\n if (x1.isOdd()) {\n x1.iadd(delta);\n }\n\n x1.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n b.iushrn(j);\n while (j-- > 0) {\n if (x2.isOdd()) {\n x2.iadd(delta);\n }\n\n x2.iushrn(1);\n }\n }\n\n if (a.cmp(b) >= 0) {\n a.isub(b);\n x1.isub(x2);\n } else {\n b.isub(a);\n x2.isub(x1);\n }\n }\n\n var res;\n if (a.cmpn(1) === 0) {\n res = x1;\n } else {\n res = x2;\n }\n\n if (res.cmpn(0) < 0) {\n res.iadd(p);\n }\n\n return res;\n };\n\n BN.prototype.gcd = function gcd (num) {\n if (this.isZero()) return num.abs();\n if (num.isZero()) return this.abs();\n\n var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0;\n\n // Remove common factor of two\n for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n a.iushrn(1);\n b.iushrn(1);\n }\n\n do {\n while (a.isEven()) {\n a.iushrn(1);\n }\n while (b.isEven()) {\n b.iushrn(1);\n }\n\n var r = a.cmp(b);\n if (r < 0) {\n // Swap `a` and `b` to make `a` always bigger than `b`\n var t = a;\n a = b;\n b = t;\n } else if (r === 0 || b.cmpn(1) === 0) {\n break;\n }\n\n a.isub(b);\n } while (true);\n\n return b.iushln(shift);\n };\n\n // Invert number in the field F(num)\n BN.prototype.invm = function invm (num) {\n return this.egcd(num).a.umod(num);\n };\n\n BN.prototype.isEven = function isEven () {\n return (this.words[0] & 1) === 0;\n };\n\n BN.prototype.isOdd = function isOdd () {\n return (this.words[0] & 1) === 1;\n };\n\n // And first word and num\n BN.prototype.andln = function andln (num) {\n return this.words[0] & num;\n };\n\n // Increment at the bit position in-line\n BN.prototype.bincn = function bincn (bit) {\n assert(typeof bit === 'number');\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) {\n this._expand(s + 1);\n this.words[s] |= q;\n return this;\n }\n\n // Add bit and propagate, if needed\n var carry = q;\n for (var i = s; carry !== 0 && i < this.length; i++) {\n var w = this.words[i] | 0;\n w += carry;\n carry = w >>> 26;\n w &= 0x3ffffff;\n this.words[i] = w;\n }\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n return this;\n };\n\n BN.prototype.isZero = function isZero () {\n return this.length === 1 && this.words[0] === 0;\n };\n\n BN.prototype.cmpn = function cmpn (num) {\n var negative = num < 0;\n\n if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n\n this._strip();\n\n var res;\n if (this.length > 1) {\n res = 1;\n } else {\n if (negative) {\n num = -num;\n }\n\n assert(num <= 0x3ffffff, 'Number is too big');\n\n var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Compare two numbers and return:\n // 1 - if `this` > `num`\n // 0 - if `this` == `num`\n // -1 - if `this` < `num`\n BN.prototype.cmp = function cmp (num) {\n if (this.negative !== 0 && num.negative === 0) return -1;\n if (this.negative === 0 && num.negative !== 0) return 1;\n\n var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Unsigned comparison\n BN.prototype.ucmp = function ucmp (num) {\n // At this point both numbers have the same sign\n if (this.length > num.length) return 1;\n if (this.length < num.length) return -1;\n\n var res = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var a = this.words[i] | 0;\n var b = num.words[i] | 0;\n\n if (a === b) continue;\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n break;\n }\n return res;\n };\n\n BN.prototype.gtn = function gtn (num) {\n return this.cmpn(num) === 1;\n };\n\n BN.prototype.gt = function gt (num) {\n return this.cmp(num) === 1;\n };\n\n BN.prototype.gten = function gten (num) {\n return this.cmpn(num) >= 0;\n };\n\n BN.prototype.gte = function gte (num) {\n return this.cmp(num) >= 0;\n };\n\n BN.prototype.ltn = function ltn (num) {\n return this.cmpn(num) === -1;\n };\n\n BN.prototype.lt = function lt (num) {\n return this.cmp(num) === -1;\n };\n\n BN.prototype.lten = function lten (num) {\n return this.cmpn(num) <= 0;\n };\n\n BN.prototype.lte = function lte (num) {\n return this.cmp(num) <= 0;\n };\n\n BN.prototype.eqn = function eqn (num) {\n return this.cmpn(num) === 0;\n };\n\n BN.prototype.eq = function eq (num) {\n return this.cmp(num) === 0;\n };\n\n //\n // A reduce context, could be using montgomery or something better, depending\n // on the `m` itself.\n //\n BN.red = function red (num) {\n return new Red(num);\n };\n\n BN.prototype.toRed = function toRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n assert(this.negative === 0, 'red works only with positives');\n return ctx.convertTo(this)._forceRed(ctx);\n };\n\n BN.prototype.fromRed = function fromRed () {\n assert(this.red, 'fromRed works only with numbers in reduction context');\n return this.red.convertFrom(this);\n };\n\n BN.prototype._forceRed = function _forceRed (ctx) {\n this.red = ctx;\n return this;\n };\n\n BN.prototype.forceRed = function forceRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n return this._forceRed(ctx);\n };\n\n BN.prototype.redAdd = function redAdd (num) {\n assert(this.red, 'redAdd works only with red numbers');\n return this.red.add(this, num);\n };\n\n BN.prototype.redIAdd = function redIAdd (num) {\n assert(this.red, 'redIAdd works only with red numbers');\n return this.red.iadd(this, num);\n };\n\n BN.prototype.redSub = function redSub (num) {\n assert(this.red, 'redSub works only with red numbers');\n return this.red.sub(this, num);\n };\n\n BN.prototype.redISub = function redISub (num) {\n assert(this.red, 'redISub works only with red numbers');\n return this.red.isub(this, num);\n };\n\n BN.prototype.redShl = function redShl (num) {\n assert(this.red, 'redShl works only with red numbers');\n return this.red.shl(this, num);\n };\n\n BN.prototype.redMul = function redMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.mul(this, num);\n };\n\n BN.prototype.redIMul = function redIMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.imul(this, num);\n };\n\n BN.prototype.redSqr = function redSqr () {\n assert(this.red, 'redSqr works only with red numbers');\n this.red._verify1(this);\n return this.red.sqr(this);\n };\n\n BN.prototype.redISqr = function redISqr () {\n assert(this.red, 'redISqr works only with red numbers');\n this.red._verify1(this);\n return this.red.isqr(this);\n };\n\n // Square root over p\n BN.prototype.redSqrt = function redSqrt () {\n assert(this.red, 'redSqrt works only with red numbers');\n this.red._verify1(this);\n return this.red.sqrt(this);\n };\n\n BN.prototype.redInvm = function redInvm () {\n assert(this.red, 'redInvm works only with red numbers');\n this.red._verify1(this);\n return this.red.invm(this);\n };\n\n // Return negative clone of `this` % `red modulo`\n BN.prototype.redNeg = function redNeg () {\n assert(this.red, 'redNeg works only with red numbers');\n this.red._verify1(this);\n return this.red.neg(this);\n };\n\n BN.prototype.redPow = function redPow (num) {\n assert(this.red && !num.red, 'redPow(normalNum)');\n this.red._verify1(this);\n return this.red.pow(this, num);\n };\n\n // Prime numbers with efficient reduction\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n };\n\n // Pseudo-Mersenne prime\n function MPrime (name, p) {\n // P = 2 ^ N - K\n this.name = name;\n this.p = new BN(p, 16);\n this.n = this.p.bitLength();\n this.k = new BN(1).iushln(this.n).isub(this.p);\n\n this.tmp = this._tmp();\n }\n\n MPrime.prototype._tmp = function _tmp () {\n var tmp = new BN(null);\n tmp.words = new Array(Math.ceil(this.n / 13));\n return tmp;\n };\n\n MPrime.prototype.ireduce = function ireduce (num) {\n // Assumes that `num` is less than `P^2`\n // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n var r = num;\n var rlen;\n\n do {\n this.split(r, this.tmp);\n r = this.imulK(r);\n r = r.iadd(this.tmp);\n rlen = r.bitLength();\n } while (rlen > this.n);\n\n var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n if (cmp === 0) {\n r.words[0] = 0;\n r.length = 1;\n } else if (cmp > 0) {\n r.isub(this.p);\n } else {\n if (r.strip !== undefined) {\n // r is a BN v4 instance\n r.strip();\n } else {\n // r is a BN v5 instance\n r._strip();\n }\n }\n\n return r;\n };\n\n MPrime.prototype.split = function split (input, out) {\n input.iushrn(this.n, 0, out);\n };\n\n MPrime.prototype.imulK = function imulK (num) {\n return num.imul(this.k);\n };\n\n function K256 () {\n MPrime.call(\n this,\n 'k256',\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n }\n inherits(K256, MPrime);\n\n K256.prototype.split = function split (input, output) {\n // 256 = 9 * 26 + 22\n var mask = 0x3fffff;\n\n var outLen = Math.min(input.length, 9);\n for (var i = 0; i < outLen; i++) {\n output.words[i] = input.words[i];\n }\n output.length = outLen;\n\n if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n }\n\n // Shift by 9 limbs\n var prev = input.words[9];\n output.words[output.length++] = prev & mask;\n\n for (i = 10; i < input.length; i++) {\n var next = input.words[i] | 0;\n input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22);\n prev = next;\n }\n prev >>>= 22;\n input.words[i - 10] = prev;\n if (prev === 0 && input.length > 10) {\n input.length -= 10;\n } else {\n input.length -= 9;\n }\n };\n\n K256.prototype.imulK = function imulK (num) {\n // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n num.words[num.length] = 0;\n num.words[num.length + 1] = 0;\n num.length += 2;\n\n // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n var lo = 0;\n for (var i = 0; i < num.length; i++) {\n var w = num.words[i] | 0;\n lo += w * 0x3d1;\n num.words[i] = lo & 0x3ffffff;\n lo = w * 0x40 + ((lo / 0x4000000) | 0);\n }\n\n // Fast length reduction\n if (num.words[num.length - 1] === 0) {\n num.length--;\n if (num.words[num.length - 1] === 0) {\n num.length--;\n }\n }\n return num;\n };\n\n function P224 () {\n MPrime.call(\n this,\n 'p224',\n 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n }\n inherits(P224, MPrime);\n\n function P192 () {\n MPrime.call(\n this,\n 'p192',\n 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n }\n inherits(P192, MPrime);\n\n function P25519 () {\n // 2 ^ 255 - 19\n MPrime.call(\n this,\n '25519',\n '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n }\n inherits(P25519, MPrime);\n\n P25519.prototype.imulK = function imulK (num) {\n // K = 0x13\n var carry = 0;\n for (var i = 0; i < num.length; i++) {\n var hi = (num.words[i] | 0) * 0x13 + carry;\n var lo = hi & 0x3ffffff;\n hi >>>= 26;\n\n num.words[i] = lo;\n carry = hi;\n }\n if (carry !== 0) {\n num.words[num.length++] = carry;\n }\n return num;\n };\n\n // Exported mostly for testing purposes, use plain name instead\n BN._prime = function prime (name) {\n // Cached version of prime\n if (primes[name]) return primes[name];\n\n var prime;\n if (name === 'k256') {\n prime = new K256();\n } else if (name === 'p224') {\n prime = new P224();\n } else if (name === 'p192') {\n prime = new P192();\n } else if (name === 'p25519') {\n prime = new P25519();\n } else {\n throw new Error('Unknown prime ' + name);\n }\n primes[name] = prime;\n\n return prime;\n };\n\n //\n // Base reduction engine\n //\n function Red (m) {\n if (typeof m === 'string') {\n var prime = BN._prime(m);\n this.m = prime.p;\n this.prime = prime;\n } else {\n assert(m.gtn(1), 'modulus must be greater than 1');\n this.m = m;\n this.prime = null;\n }\n }\n\n Red.prototype._verify1 = function _verify1 (a) {\n assert(a.negative === 0, 'red works only with positives');\n assert(a.red, 'red works only with red numbers');\n };\n\n Red.prototype._verify2 = function _verify2 (a, b) {\n assert((a.negative | b.negative) === 0, 'red works only with positives');\n assert(a.red && a.red === b.red,\n 'red works only with red numbers');\n };\n\n Red.prototype.imod = function imod (a) {\n if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n\n move(a, a.umod(this.m)._forceRed(this));\n return a;\n };\n\n Red.prototype.neg = function neg (a) {\n if (a.isZero()) {\n return a.clone();\n }\n\n return this.m.sub(a)._forceRed(this);\n };\n\n Red.prototype.add = function add (a, b) {\n this._verify2(a, b);\n\n var res = a.add(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.iadd = function iadd (a, b) {\n this._verify2(a, b);\n\n var res = a.iadd(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res;\n };\n\n Red.prototype.sub = function sub (a, b) {\n this._verify2(a, b);\n\n var res = a.sub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.isub = function isub (a, b) {\n this._verify2(a, b);\n\n var res = a.isub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res;\n };\n\n Red.prototype.shl = function shl (a, num) {\n this._verify1(a);\n return this.imod(a.ushln(num));\n };\n\n Red.prototype.imul = function imul (a, b) {\n this._verify2(a, b);\n return this.imod(a.imul(b));\n };\n\n Red.prototype.mul = function mul (a, b) {\n this._verify2(a, b);\n return this.imod(a.mul(b));\n };\n\n Red.prototype.isqr = function isqr (a) {\n return this.imul(a, a.clone());\n };\n\n Red.prototype.sqr = function sqr (a) {\n return this.mul(a, a);\n };\n\n Red.prototype.sqrt = function sqrt (a) {\n if (a.isZero()) return a.clone();\n\n var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1);\n\n // Fast case\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n }\n\n // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n //\n // Find Q and S, that Q * 2 ^ S = (P - 1)\n var q = this.m.subn(1);\n var s = 0;\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n assert(!q.isZero());\n\n var one = new BN(1).toRed(this);\n var nOne = one.redNeg();\n\n // Find quadratic non-residue\n // NOTE: Max is such because of generalized Riemann hypothesis.\n var lpow = this.m.subn(1).iushrn(1);\n var z = this.m.bitLength();\n z = new BN(2 * z * z).toRed(this);\n\n while (this.pow(z, lpow).cmp(nOne) !== 0) {\n z.redIAdd(nOne);\n }\n\n var c = this.pow(z, q);\n var r = this.pow(a, q.addn(1).iushrn(1));\n var t = this.pow(a, q);\n var m = s;\n while (t.cmp(one) !== 0) {\n var tmp = t;\n for (var i = 0; tmp.cmp(one) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\n\n r = r.redMul(b);\n c = b.redSqr();\n t = t.redMul(c);\n m = i;\n }\n\n return r;\n };\n\n Red.prototype.invm = function invm (a) {\n var inv = a._invmp(this.m);\n if (inv.negative !== 0) {\n inv.negative = 0;\n return this.imod(inv).redNeg();\n } else {\n return this.imod(inv);\n }\n };\n\n Red.prototype.pow = function pow (a, num) {\n if (num.isZero()) return new BN(1).toRed(this);\n if (num.cmpn(1) === 0) return a.clone();\n\n var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n for (var i = 2; i < wnd.length; i++) {\n wnd[i] = this.mul(wnd[i - 1], a);\n }\n\n var res = wnd[0];\n var current = 0;\n var currentLen = 0;\n var start = num.bitLength() % 26;\n if (start === 0) {\n start = 26;\n }\n\n for (i = num.length - 1; i >= 0; i--) {\n var word = num.words[i];\n for (var j = start - 1; j >= 0; j--) {\n var bit = (word >> j) & 1;\n if (res !== wnd[0]) {\n res = this.sqr(res);\n }\n\n if (bit === 0 && current === 0) {\n currentLen = 0;\n continue;\n }\n\n current <<= 1;\n current |= bit;\n currentLen++;\n if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n\n res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\n start = 26;\n }\n\n return res;\n };\n\n Red.prototype.convertTo = function convertTo (num) {\n var r = num.umod(this.m);\n\n return r === num ? r.clone() : r;\n };\n\n Red.prototype.convertFrom = function convertFrom (num) {\n var res = num.clone();\n res.red = null;\n return res;\n };\n\n //\n // Montgomery method engine\n //\n\n BN.mont = function mont (num) {\n return new Mont(num);\n };\n\n function Mont (m) {\n Red.call(this, m);\n\n this.shift = this.m.bitLength();\n if (this.shift % 26 !== 0) {\n this.shift += 26 - (this.shift % 26);\n }\n\n this.r = new BN(1).iushln(this.shift);\n this.r2 = this.imod(this.r.sqr());\n this.rinv = this.r._invmp(this.m);\n\n this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n this.minv = this.minv.umod(this.r);\n this.minv = this.r.sub(this.minv);\n }\n inherits(Mont, Red);\n\n Mont.prototype.convertTo = function convertTo (num) {\n return this.imod(num.ushln(this.shift));\n };\n\n Mont.prototype.convertFrom = function convertFrom (num) {\n var r = this.imod(num.mul(this.rinv));\n r.red = null;\n return r;\n };\n\n Mont.prototype.imul = function imul (a, b) {\n if (a.isZero() || b.isZero()) {\n a.words[0] = 0;\n a.length = 1;\n return a;\n }\n\n var t = a.imul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.mul = function mul (a, b) {\n if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n\n var t = a.mul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.invm = function invm (a) {\n // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n var res = this.imod(a._invmp(this.m).mul(this.r2));\n return res._forceRed(this);\n };\n})(typeof module === 'undefined' || module, this);\n", "export const version = \"logger/5.7.0\";\n", "\"use strict\";\n\nlet _permanentCensorErrors = false;\nlet _censorErrors = false;\n\nconst LogLevels: { [ name: string ]: number } = { debug: 1, \"default\": 2, info: 2, warning: 3, error: 4, off: 5 };\nlet _logLevel = LogLevels[\"default\"];\n\nimport { version } from \"./_version\";\n\nlet _globalLogger: Logger = null;\n\nfunction _checkNormalize(): string {\n try {\n const missing: Array = [ ];\n\n // Make sure all forms of normalization are supported\n [\"NFD\", \"NFC\", \"NFKD\", \"NFKC\"].forEach((form) => {\n try {\n if (\"test\".normalize(form) !== \"test\") {\n throw new Error(\"bad normalize\");\n };\n } catch(error) {\n missing.push(form);\n }\n });\n\n if (missing.length) {\n throw new Error(\"missing \" + missing.join(\", \"));\n }\n\n if (String.fromCharCode(0xe9).normalize(\"NFD\") !== String.fromCharCode(0x65, 0x0301)) {\n throw new Error(\"broken implementation\")\n }\n } catch (error) {\n return error.message;\n }\n\n return null;\n}\n\nconst _normalizeError = _checkNormalize();\n\nexport enum LogLevel {\n DEBUG = \"DEBUG\",\n INFO = \"INFO\",\n WARNING = \"WARNING\",\n ERROR = \"ERROR\",\n OFF = \"OFF\"\n}\n\n\nexport enum ErrorCode {\n\n ///////////////////\n // Generic Errors\n\n // Unknown Error\n UNKNOWN_ERROR = \"UNKNOWN_ERROR\",\n\n // Not Implemented\n NOT_IMPLEMENTED = \"NOT_IMPLEMENTED\",\n\n // Unsupported Operation\n // - operation\n UNSUPPORTED_OPERATION = \"UNSUPPORTED_OPERATION\",\n\n // Network Error (i.e. Ethereum Network, such as an invalid chain ID)\n // - event (\"noNetwork\" is not re-thrown in provider.ready; otherwise thrown)\n NETWORK_ERROR = \"NETWORK_ERROR\",\n\n // Some sort of bad response from the server\n SERVER_ERROR = \"SERVER_ERROR\",\n\n // Timeout\n TIMEOUT = \"TIMEOUT\",\n\n ///////////////////\n // Operational Errors\n\n // Buffer Overrun\n BUFFER_OVERRUN = \"BUFFER_OVERRUN\",\n\n // Numeric Fault\n // - operation: the operation being executed\n // - fault: the reason this faulted\n NUMERIC_FAULT = \"NUMERIC_FAULT\",\n\n\n ///////////////////\n // Argument Errors\n\n // Missing new operator to an object\n // - name: The name of the class\n MISSING_NEW = \"MISSING_NEW\",\n\n // Invalid argument (e.g. value is incompatible with type) to a function:\n // - argument: The argument name that was invalid\n // - value: The value of the argument\n INVALID_ARGUMENT = \"INVALID_ARGUMENT\",\n\n // Missing argument to a function:\n // - count: The number of arguments received\n // - expectedCount: The number of arguments expected\n MISSING_ARGUMENT = \"MISSING_ARGUMENT\",\n\n // Too many arguments\n // - count: The number of arguments received\n // - expectedCount: The number of arguments expected\n UNEXPECTED_ARGUMENT = \"UNEXPECTED_ARGUMENT\",\n\n\n ///////////////////\n // Blockchain Errors\n\n // Call exception\n // - transaction: the transaction\n // - address?: the contract address\n // - args?: The arguments passed into the function\n // - method?: The Solidity method signature\n // - errorSignature?: The EIP848 error signature\n // - errorArgs?: The EIP848 error parameters\n // - reason: The reason (only for EIP848 \"Error(string)\")\n CALL_EXCEPTION = \"CALL_EXCEPTION\",\n\n // Insufficient funds (< value + gasLimit * gasPrice)\n // - transaction: the transaction attempted\n INSUFFICIENT_FUNDS = \"INSUFFICIENT_FUNDS\",\n\n // Nonce has already been used\n // - transaction: the transaction attempted\n NONCE_EXPIRED = \"NONCE_EXPIRED\",\n\n // The replacement fee for the transaction is too low\n // - transaction: the transaction attempted\n REPLACEMENT_UNDERPRICED = \"REPLACEMENT_UNDERPRICED\",\n\n // The gas limit could not be estimated\n // - transaction: the transaction passed to estimateGas\n UNPREDICTABLE_GAS_LIMIT = \"UNPREDICTABLE_GAS_LIMIT\",\n\n // The transaction was replaced by one with a higher gas price\n // - reason: \"cancelled\", \"replaced\" or \"repriced\"\n // - cancelled: true if reason == \"cancelled\" or reason == \"replaced\")\n // - hash: original transaction hash\n // - replacement: the full TransactionsResponse for the replacement\n // - receipt: the receipt of the replacement\n TRANSACTION_REPLACED = \"TRANSACTION_REPLACED\",\n\n\n ///////////////////\n // Interaction Errors\n\n // The user rejected the action, such as signing a message or sending\n // a transaction\n ACTION_REJECTED = \"ACTION_REJECTED\",\n};\n\nconst HEX = \"0123456789abcdef\";\n\nexport class Logger {\n readonly version: string;\n\n static errors = ErrorCode;\n\n static levels = LogLevel;\n\n constructor(version: string) {\n Object.defineProperty(this, \"version\", {\n enumerable: true,\n value: version,\n writable: false\n });\n }\n\n _log(logLevel: LogLevel, args: Array): void {\n const level = logLevel.toLowerCase();\n if (LogLevels[level] == null) {\n this.throwArgumentError(\"invalid log level name\", \"logLevel\", logLevel);\n }\n if (_logLevel > LogLevels[level]) { return; }\n console.log.apply(console, args);\n }\n\n debug(...args: Array): void {\n this._log(Logger.levels.DEBUG, args);\n }\n\n info(...args: Array): void {\n this._log(Logger.levels.INFO, args);\n }\n\n warn(...args: Array): void {\n this._log(Logger.levels.WARNING, args);\n }\n\n makeError(message: string, code?: ErrorCode, params?: any): Error {\n // Errors are being censored\n if (_censorErrors) {\n return this.makeError(\"censored error\", code, { });\n }\n\n if (!code) { code = Logger.errors.UNKNOWN_ERROR; }\n if (!params) { params = {}; }\n\n const messageDetails: Array = [];\n Object.keys(params).forEach((key) => {\n const value = params[key];\n try {\n if (value instanceof Uint8Array) {\n let hex = \"\";\n for (let i = 0; i < value.length; i++) {\n hex += HEX[value[i] >> 4];\n hex += HEX[value[i] & 0x0f];\n }\n messageDetails.push(key + \"=Uint8Array(0x\" + hex + \")\");\n } else {\n messageDetails.push(key + \"=\" + JSON.stringify(value));\n }\n } catch (error) {\n messageDetails.push(key + \"=\" + JSON.stringify(params[key].toString()));\n }\n });\n messageDetails.push(`code=${ code }`);\n messageDetails.push(`version=${ this.version }`);\n\n const reason = message;\n\n let url = \"\";\n\n switch (code) {\n case ErrorCode.NUMERIC_FAULT: {\n url = \"NUMERIC_FAULT\";\n const fault = message;\n\n switch (fault) {\n case \"overflow\": case \"underflow\": case \"division-by-zero\":\n url += \"-\" + fault;\n break;\n case \"negative-power\": case \"negative-width\":\n url += \"-unsupported\";\n break;\n case \"unbound-bitwise-result\":\n url += \"-unbound-result\";\n break;\n }\n break;\n }\n case ErrorCode.CALL_EXCEPTION:\n case ErrorCode.INSUFFICIENT_FUNDS:\n case ErrorCode.MISSING_NEW:\n case ErrorCode.NONCE_EXPIRED:\n case ErrorCode.REPLACEMENT_UNDERPRICED:\n case ErrorCode.TRANSACTION_REPLACED:\n case ErrorCode.UNPREDICTABLE_GAS_LIMIT:\n url = code;\n break;\n }\n\n if (url) {\n message += \" [ See: https:/\\/links.ethers.org/v5-errors-\" + url + \" ]\";\n }\n\n if (messageDetails.length) {\n message += \" (\" + messageDetails.join(\", \") + \")\";\n }\n\n // @TODO: Any??\n const error: any = new Error(message);\n error.reason = reason;\n error.code = code\n\n Object.keys(params).forEach(function(key) {\n error[key] = params[key];\n });\n\n return error;\n }\n\n throwError(message: string, code?: ErrorCode, params?: any): never {\n throw this.makeError(message, code, params);\n }\n\n throwArgumentError(message: string, name: string, value: any): never {\n return this.throwError(message, Logger.errors.INVALID_ARGUMENT, {\n argument: name,\n value: value\n });\n }\n\n assert(condition: any, message: string, code?: ErrorCode, params?: any): void {\n if (!!condition) { return; }\n this.throwError(message, code, params);\n }\n\n assertArgument(condition: any, message: string, name: string, value: any): void {\n if (!!condition) { return; }\n this.throwArgumentError(message, name, value);\n }\n\n checkNormalize(message?: string): void {\n if (message == null) { message = \"platform missing String.prototype.normalize\"; }\n if (_normalizeError) {\n this.throwError(\"platform missing String.prototype.normalize\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"String.prototype.normalize\", form: _normalizeError\n });\n }\n }\n\n checkSafeUint53(value: number, message?: string): void {\n if (typeof(value) !== \"number\") { return; }\n\n if (message == null) { message = \"value not safe\"; }\n\n if (value < 0 || value >= 0x1fffffffffffff) {\n this.throwError(message, Logger.errors.NUMERIC_FAULT, {\n operation: \"checkSafeInteger\",\n fault: \"out-of-safe-range\",\n value: value\n });\n }\n\n if (value % 1) {\n this.throwError(message, Logger.errors.NUMERIC_FAULT, {\n operation: \"checkSafeInteger\",\n fault: \"non-integer\",\n value: value\n });\n }\n }\n\n checkArgumentCount(count: number, expectedCount: number, message?: string): void {\n if (message) {\n message = \": \" + message;\n } else {\n message = \"\";\n }\n\n if (count < expectedCount) {\n this.throwError(\"missing argument\" + message, Logger.errors.MISSING_ARGUMENT, {\n count: count,\n expectedCount: expectedCount\n });\n }\n\n if (count > expectedCount) {\n this.throwError(\"too many arguments\" + message, Logger.errors.UNEXPECTED_ARGUMENT, {\n count: count,\n expectedCount: expectedCount\n });\n }\n }\n\n checkNew(target: any, kind: any): void {\n if (target === Object || target == null) {\n this.throwError(\"missing new\", Logger.errors.MISSING_NEW, { name: kind.name });\n }\n }\n\n checkAbstract(target: any, kind: any): void {\n if (target === kind) {\n this.throwError(\n \"cannot instantiate abstract class \" + JSON.stringify(kind.name) + \" directly; use a sub-class\",\n Logger.errors.UNSUPPORTED_OPERATION,\n { name: target.name, operation: \"new\" }\n );\n } else if (target === Object || target == null) {\n this.throwError(\"missing new\", Logger.errors.MISSING_NEW, { name: kind.name });\n }\n }\n\n static globalLogger(): Logger {\n if (!_globalLogger) { _globalLogger = new Logger(version); }\n return _globalLogger;\n }\n\n static setCensorship(censorship: boolean, permanent?: boolean): void {\n if (!censorship && permanent) {\n this.globalLogger().throwError(\"cannot permanently disable censorship\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"setCensorship\"\n });\n }\n\n if (_permanentCensorErrors) {\n if (!censorship) { return; }\n this.globalLogger().throwError(\"error censorship permanent\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"setCensorship\"\n });\n }\n\n _censorErrors = !!censorship;\n _permanentCensorErrors = !!permanent;\n }\n\n static setLogLevel(logLevel: LogLevel): void {\n const level = LogLevels[logLevel.toLowerCase()];\n if (level == null) {\n Logger.globalLogger().warn(\"invalid log level - \" + logLevel);\n return;\n }\n _logLevel = level;\n }\n\n static from(version: string): Logger {\n return new Logger(version);\n }\n}\n", "export const version = \"bytes/5.7.0\";\n", "\"use strict\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\n///////////////////////////////\n// Exported Types\n\nexport type Bytes = ArrayLike;\n\nexport type BytesLike = Bytes | string;\n\nexport type DataOptions = {\n allowMissingPrefix?: boolean;\n hexPad?: \"left\" | \"right\" | null;\n};\n\nexport interface Hexable {\n toHexString(): string;\n}\n\n\n/*\nexport interface HexString {\n length: number;\n substring: (start: number, end?: number) => string;\n\n [index: number]: string;\n}\n*/\n\nexport type SignatureLike = {\n r: string;\n s?: string;\n _vs?: string,\n recoveryParam?: number;\n v?: number;\n} | BytesLike;\n\nexport interface Signature {\n r: string;\n\n s: string;\n _vs: string,\n\n recoveryParam: number;\n v: number;\n\n yParityAndS: string\n compact: string;\n}\n\n///////////////////////////////\n\n\nfunction isHexable(value: any): value is Hexable {\n return !!(value.toHexString);\n}\n\nfunction addSlice(array: Uint8Array): Uint8Array {\n if (array.slice) { return array; }\n\n array.slice = function() {\n const args = Array.prototype.slice.call(arguments);\n return addSlice(new Uint8Array(Array.prototype.slice.apply(array, args)));\n }\n\n return array;\n}\n\nexport function isBytesLike(value: any): value is BytesLike {\n return ((isHexString(value) && !(value.length % 2)) || isBytes(value));\n}\n\nfunction isInteger(value: number) {\n return (typeof(value) === \"number\" && value == value && (value % 1) === 0);\n}\n\nexport function isBytes(value: any): value is Bytes {\n if (value == null) { return false; }\n\n if (value.constructor === Uint8Array) { return true; }\n if (typeof(value) === \"string\") { return false; }\n if (!isInteger(value.length) || value.length < 0) { return false; }\n\n for (let i = 0; i < value.length; i++) {\n const v = value[i];\n if (!isInteger(v) || v < 0 || v >= 256) { return false; }\n }\n return true;\n}\n\n\nexport function arrayify(value: BytesLike | Hexable | number, options?: DataOptions): Uint8Array {\n if (!options) { options = { }; }\n\n if (typeof(value) === \"number\") {\n logger.checkSafeUint53(value, \"invalid arrayify value\");\n\n const result = [];\n while (value) {\n result.unshift(value & 0xff);\n value = parseInt(String(value / 256));\n }\n if (result.length === 0) { result.push(0); }\n\n return addSlice(new Uint8Array(result));\n }\n\n if (options.allowMissingPrefix && typeof(value) === \"string\" && value.substring(0, 2) !== \"0x\") {\n value = \"0x\" + value;\n }\n\n if (isHexable(value)) { value = value.toHexString(); }\n\n if (isHexString(value)) {\n let hex = (value).substring(2);\n if (hex.length % 2) {\n if (options.hexPad === \"left\") {\n hex = \"0\" + hex;\n } else if (options.hexPad === \"right\") {\n hex += \"0\";\n } else {\n logger.throwArgumentError(\"hex data is odd-length\", \"value\", value);\n }\n }\n\n const result = [];\n for (let i = 0; i < hex.length; i += 2) {\n result.push(parseInt(hex.substring(i, i + 2), 16));\n }\n\n return addSlice(new Uint8Array(result));\n }\n\n if (isBytes(value)) {\n return addSlice(new Uint8Array(value));\n }\n\n return logger.throwArgumentError(\"invalid arrayify value\", \"value\", value);\n}\n\nexport function concat(items: ReadonlyArray): Uint8Array {\n const objects = items.map(item => arrayify(item));\n const length = objects.reduce((accum, item) => (accum + item.length), 0);\n\n const result = new Uint8Array(length);\n\n objects.reduce((offset, object) => {\n result.set(object, offset);\n return offset + object.length;\n }, 0);\n\n return addSlice(result);\n}\n\nexport function stripZeros(value: BytesLike): Uint8Array {\n let result: Uint8Array = arrayify(value);\n\n if (result.length === 0) { return result; }\n\n // Find the first non-zero entry\n let start = 0;\n while (start < result.length && result[start] === 0) { start++ }\n\n // If we started with zeros, strip them\n if (start) {\n result = result.slice(start);\n }\n\n return result;\n}\n\nexport function zeroPad(value: BytesLike, length: number): Uint8Array {\n value = arrayify(value);\n\n if (value.length > length) {\n logger.throwArgumentError(\"value out of range\", \"value\", arguments[0]);\n }\n\n const result = new Uint8Array(length);\n result.set(value, length - value.length);\n return addSlice(result);\n}\n\n\nexport function isHexString(value: any, length?: number): boolean {\n if (typeof(value) !== \"string\" || !value.match(/^0x[0-9A-Fa-f]*$/)) {\n return false\n }\n if (length && value.length !== 2 + 2 * length) { return false; }\n return true;\n}\n\nconst HexCharacters: string = \"0123456789abcdef\";\n\nexport function hexlify(value: BytesLike | Hexable | number | bigint, options?: DataOptions): string {\n if (!options) { options = { }; }\n\n if (typeof(value) === \"number\") {\n logger.checkSafeUint53(value, \"invalid hexlify value\");\n\n let hex = \"\";\n while (value) {\n hex = HexCharacters[value & 0xf] + hex;\n value = Math.floor(value / 16);\n }\n\n if (hex.length) {\n if (hex.length % 2) { hex = \"0\" + hex; }\n return \"0x\" + hex;\n }\n\n return \"0x00\";\n }\n\n if (typeof(value) === \"bigint\") {\n value = value.toString(16);\n if (value.length % 2) { return (\"0x0\" + value); }\n return \"0x\" + value;\n }\n\n if (options.allowMissingPrefix && typeof(value) === \"string\" && value.substring(0, 2) !== \"0x\") {\n value = \"0x\" + value;\n }\n\n if (isHexable(value)) { return value.toHexString(); }\n\n if (isHexString(value)) {\n if ((value).length % 2) {\n if (options.hexPad === \"left\") {\n value = \"0x0\" + (value).substring(2);\n } else if (options.hexPad === \"right\") {\n value += \"0\";\n } else {\n logger.throwArgumentError(\"hex data is odd-length\", \"value\", value);\n }\n }\n return (value).toLowerCase();\n }\n\n if (isBytes(value)) {\n let result = \"0x\";\n for (let i = 0; i < value.length; i++) {\n let v = value[i];\n result += HexCharacters[(v & 0xf0) >> 4] + HexCharacters[v & 0x0f];\n }\n return result;\n }\n\n return logger.throwArgumentError(\"invalid hexlify value\", \"value\", value);\n}\n\n/*\nfunction unoddify(value: BytesLike | Hexable | number): BytesLike | Hexable | number {\n if (typeof(value) === \"string\" && value.length % 2 && value.substring(0, 2) === \"0x\") {\n return \"0x0\" + value.substring(2);\n }\n return value;\n}\n*/\nexport function hexDataLength(data: BytesLike) {\n if (typeof(data) !== \"string\") {\n data = hexlify(data);\n } else if (!isHexString(data) || (data.length % 2)) {\n return null;\n }\n\n return (data.length - 2) / 2;\n}\n\nexport function hexDataSlice(data: BytesLike, offset: number, endOffset?: number): string {\n if (typeof(data) !== \"string\") {\n data = hexlify(data);\n } else if (!isHexString(data) || (data.length % 2)) {\n logger.throwArgumentError(\"invalid hexData\", \"value\", data );\n }\n\n offset = 2 + 2 * offset;\n\n if (endOffset != null) {\n return \"0x\" + data.substring(offset, 2 + 2 * endOffset);\n }\n\n return \"0x\" + data.substring(offset);\n}\n\nexport function hexConcat(items: ReadonlyArray): string {\n let result = \"0x\";\n items.forEach((item) => {\n result += hexlify(item).substring(2);\n });\n return result;\n}\n\nexport function hexValue(value: BytesLike | Hexable | number | bigint): string {\n const trimmed = hexStripZeros(hexlify(value, { hexPad: \"left\" }));\n if (trimmed === \"0x\") { return \"0x0\"; }\n return trimmed;\n}\n\nexport function hexStripZeros(value: BytesLike): string {\n if (typeof(value) !== \"string\") { value = hexlify(value); }\n\n if (!isHexString(value)) {\n logger.throwArgumentError(\"invalid hex string\", \"value\", value);\n }\n value = value.substring(2);\n let offset = 0;\n while (offset < value.length && value[offset] === \"0\") { offset++; }\n return \"0x\" + value.substring(offset);\n}\n\nexport function hexZeroPad(value: BytesLike, length: number): string {\n if (typeof(value) !== \"string\") {\n value = hexlify(value);\n } else if (!isHexString(value)) {\n logger.throwArgumentError(\"invalid hex string\", \"value\", value);\n }\n\n if (value.length > 2 * length + 2) {\n logger.throwArgumentError(\"value out of range\", \"value\", arguments[1]);\n }\n\n while (value.length < 2 * length + 2) {\n value = \"0x0\" + value.substring(2);\n }\n\n return value;\n}\n\nexport function splitSignature(signature: SignatureLike): Signature {\n\n const result = {\n r: \"0x\",\n s: \"0x\",\n _vs: \"0x\",\n recoveryParam: 0,\n v: 0,\n yParityAndS: \"0x\",\n compact: \"0x\"\n };\n\n if (isBytesLike(signature)) {\n let bytes: Uint8Array = arrayify(signature);\n\n // Get the r, s and v\n if (bytes.length === 64) {\n // EIP-2098; pull the v from the top bit of s and clear it\n result.v = 27 + (bytes[32] >> 7);\n bytes[32] &= 0x7f;\n\n result.r = hexlify(bytes.slice(0, 32));\n result.s = hexlify(bytes.slice(32, 64));\n\n } else if (bytes.length === 65) {\n result.r = hexlify(bytes.slice(0, 32));\n result.s = hexlify(bytes.slice(32, 64));\n result.v = bytes[64];\n } else {\n\n logger.throwArgumentError(\"invalid signature string\", \"signature\", signature);\n }\n\n\n // Allow a recid to be used as the v\n if (result.v < 27) {\n if (result.v === 0 || result.v === 1) {\n result.v += 27;\n } else {\n logger.throwArgumentError(\"signature invalid v byte\", \"signature\", signature);\n }\n }\n\n // Compute recoveryParam from v\n result.recoveryParam = 1 - (result.v % 2);\n\n // Compute _vs from recoveryParam and s\n if (result.recoveryParam) { bytes[32] |= 0x80; }\n result._vs = hexlify(bytes.slice(32, 64))\n\n } else {\n result.r = signature.r;\n result.s = signature.s;\n result.v = signature.v;\n result.recoveryParam = signature.recoveryParam;\n result._vs = signature._vs;\n\n // If the _vs is available, use it to populate missing s, v and recoveryParam\n // and verify non-missing s, v and recoveryParam\n if (result._vs != null) {\n const vs = zeroPad(arrayify(result._vs), 32);\n result._vs = hexlify(vs);\n\n // Set or check the recid\n const recoveryParam = ((vs[0] >= 128) ? 1: 0);\n if (result.recoveryParam == null) {\n result.recoveryParam = recoveryParam;\n } else if (result.recoveryParam !== recoveryParam) {\n logger.throwArgumentError(\"signature recoveryParam mismatch _vs\", \"signature\", signature);\n }\n\n // Set or check the s\n vs[0] &= 0x7f;\n const s = hexlify(vs);\n if (result.s == null) {\n result.s = s;\n } else if (result.s !== s) {\n logger.throwArgumentError(\"signature v mismatch _vs\", \"signature\", signature);\n }\n }\n\n // Use recid and v to populate each other\n if (result.recoveryParam == null) {\n if (result.v == null) {\n logger.throwArgumentError(\"signature missing v and recoveryParam\", \"signature\", signature);\n } else if (result.v === 0 || result.v === 1) {\n result.recoveryParam = result.v;\n } else {\n result.recoveryParam = 1 - (result.v % 2);\n }\n } else {\n if (result.v == null) {\n result.v = 27 + result.recoveryParam;\n } else {\n const recId = (result.v === 0 || result.v === 1) ? result.v :(1 - (result.v % 2));\n if (result.recoveryParam !== recId) {\n logger.throwArgumentError(\"signature recoveryParam mismatch v\", \"signature\", signature);\n }\n }\n }\n\n if (result.r == null || !isHexString(result.r)) {\n logger.throwArgumentError(\"signature missing or invalid r\", \"signature\", signature);\n } else {\n result.r = hexZeroPad(result.r, 32);\n }\n\n if (result.s == null || !isHexString(result.s)) {\n logger.throwArgumentError(\"signature missing or invalid s\", \"signature\", signature);\n } else {\n result.s = hexZeroPad(result.s, 32);\n }\n\n const vs = arrayify(result.s);\n if (vs[0] >= 128) {\n logger.throwArgumentError(\"signature s out of range\", \"signature\", signature);\n }\n if (result.recoveryParam) { vs[0] |= 0x80; }\n const _vs = hexlify(vs);\n\n if (result._vs) {\n if (!isHexString(result._vs)) {\n logger.throwArgumentError(\"signature invalid _vs\", \"signature\", signature);\n }\n result._vs = hexZeroPad(result._vs, 32);\n }\n\n // Set or check the _vs\n if (result._vs == null) {\n result._vs = _vs;\n } else if (result._vs !== _vs) {\n logger.throwArgumentError(\"signature _vs mismatch v and s\", \"signature\", signature);\n }\n }\n\n result.yParityAndS = result._vs;\n result.compact = result.r + result.yParityAndS.substring(2);\n\n return result;\n}\n\nexport function joinSignature(signature: SignatureLike): string {\n signature = splitSignature(signature);\n\n return hexlify(concat([\n signature.r,\n signature.s,\n (signature.recoveryParam ? \"0x1c\": \"0x1b\")\n ]));\n}\n\n", "export const version = \"bignumber/5.7.0\";\n", "\"use strict\";\n\n/**\n * BigNumber\n *\n * A wrapper around the BN.js object. We use the BN.js library\n * because it is used by elliptic, so it is required regardless.\n *\n */\n\nimport _BN from \"bn.js\";\nimport BN = _BN.BN;\n\nimport { Bytes, Hexable, hexlify, isBytes, isHexString } from \"@ethersproject/bytes\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\nconst _constructorGuard = { };\n\nconst MAX_SAFE = 0x1fffffffffffff;\n\n\nexport type BigNumberish = BigNumber | Bytes | bigint | string | number;\n\nexport function isBigNumberish(value: any): value is BigNumberish {\n return (value != null) && (\n BigNumber.isBigNumber(value) ||\n (typeof(value) === \"number\" && (value % 1) === 0) ||\n (typeof(value) === \"string\" && !!value.match(/^-?[0-9]+$/)) ||\n isHexString(value) ||\n (typeof(value) === \"bigint\") ||\n isBytes(value)\n );\n}\n\n// Only warn about passing 10 into radix once\nlet _warnedToStringRadix = false;\n\nexport class BigNumber implements Hexable {\n readonly _hex: string;\n readonly _isBigNumber: boolean;\n\n constructor(constructorGuard: any, hex: string) {\n if (constructorGuard !== _constructorGuard) {\n logger.throwError(\"cannot call constructor directly; use BigNumber.from\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"new (BigNumber)\"\n });\n }\n\n this._hex = hex;\n this._isBigNumber = true;\n\n Object.freeze(this);\n }\n\n fromTwos(value: number): BigNumber {\n return toBigNumber(toBN(this).fromTwos(value));\n }\n\n toTwos(value: number): BigNumber {\n return toBigNumber(toBN(this).toTwos(value));\n }\n\n abs(): BigNumber {\n if (this._hex[0] === \"-\") {\n return BigNumber.from(this._hex.substring(1));\n }\n return this;\n }\n\n add(other: BigNumberish): BigNumber {\n return toBigNumber(toBN(this).add(toBN(other)));\n }\n\n sub(other: BigNumberish): BigNumber {\n return toBigNumber(toBN(this).sub(toBN(other)));\n }\n\n div(other: BigNumberish): BigNumber {\n const o = BigNumber.from(other);\n if (o.isZero()) {\n throwFault(\"division-by-zero\", \"div\");\n }\n return toBigNumber(toBN(this).div(toBN(other)));\n }\n\n mul(other: BigNumberish): BigNumber {\n return toBigNumber(toBN(this).mul(toBN(other)));\n }\n\n mod(other: BigNumberish): BigNumber {\n const value = toBN(other);\n if (value.isNeg()) {\n throwFault(\"division-by-zero\", \"mod\");\n }\n return toBigNumber(toBN(this).umod(value));\n }\n\n pow(other: BigNumberish): BigNumber {\n const value = toBN(other);\n if (value.isNeg()) {\n throwFault(\"negative-power\", \"pow\");\n }\n return toBigNumber(toBN(this).pow(value));\n }\n\n and(other: BigNumberish): BigNumber {\n const value = toBN(other);\n if (this.isNegative() || value.isNeg()) {\n throwFault(\"unbound-bitwise-result\", \"and\");\n }\n return toBigNumber(toBN(this).and(value));\n }\n\n or(other: BigNumberish): BigNumber {\n const value = toBN(other);\n if (this.isNegative() || value.isNeg()) {\n throwFault(\"unbound-bitwise-result\", \"or\");\n }\n return toBigNumber(toBN(this).or(value));\n }\n\n xor(other: BigNumberish): BigNumber {\n const value = toBN(other);\n if (this.isNegative() || value.isNeg()) {\n throwFault(\"unbound-bitwise-result\", \"xor\");\n }\n return toBigNumber(toBN(this).xor(value));\n }\n\n mask(value: number): BigNumber {\n if (this.isNegative() || value < 0) {\n throwFault(\"negative-width\", \"mask\");\n }\n return toBigNumber(toBN(this).maskn(value));\n }\n\n shl(value: number): BigNumber {\n if (this.isNegative() || value < 0) {\n throwFault(\"negative-width\", \"shl\");\n }\n return toBigNumber(toBN(this).shln(value));\n }\n\n shr(value: number): BigNumber {\n if (this.isNegative() || value < 0) {\n throwFault(\"negative-width\", \"shr\");\n }\n return toBigNumber(toBN(this).shrn(value));\n }\n\n eq(other: BigNumberish): boolean {\n return toBN(this).eq(toBN(other));\n }\n\n lt(other: BigNumberish): boolean {\n return toBN(this).lt(toBN(other));\n }\n\n lte(other: BigNumberish): boolean {\n return toBN(this).lte(toBN(other));\n }\n\n gt(other: BigNumberish): boolean {\n return toBN(this).gt(toBN(other));\n }\n\n gte(other: BigNumberish): boolean {\n return toBN(this).gte(toBN(other));\n }\n\n isNegative(): boolean {\n return (this._hex[0] === \"-\");\n }\n\n isZero(): boolean {\n return toBN(this).isZero();\n }\n\n toNumber(): number {\n try {\n return toBN(this).toNumber();\n } catch (error) {\n throwFault(\"overflow\", \"toNumber\", this.toString());\n }\n return null;\n }\n\n toBigInt(): bigint {\n try {\n return BigInt(this.toString());\n } catch (e) { }\n\n return logger.throwError(\"this platform does not support BigInt\", Logger.errors.UNSUPPORTED_OPERATION, {\n value: this.toString()\n });\n }\n\n toString(): string {\n // Lots of people expect this, which we do not support, so check (See: #889)\n if (arguments.length > 0) {\n if (arguments[0] === 10) {\n if (!_warnedToStringRadix) {\n _warnedToStringRadix = true;\n logger.warn(\"BigNumber.toString does not accept any parameters; base-10 is assumed\");\n }\n } else if (arguments[0] === 16) {\n logger.throwError(\"BigNumber.toString does not accept any parameters; use bigNumber.toHexString()\", Logger.errors.UNEXPECTED_ARGUMENT, { });\n } else {\n logger.throwError(\"BigNumber.toString does not accept parameters\", Logger.errors.UNEXPECTED_ARGUMENT, { });\n }\n }\n return toBN(this).toString(10);\n }\n\n toHexString(): string {\n return this._hex;\n }\n\n toJSON(key?: string): any {\n return { type: \"BigNumber\", hex: this.toHexString() };\n }\n\n static from(value: any): BigNumber {\n if (value instanceof BigNumber) { return value; }\n\n if (typeof(value) === \"string\") {\n if (value.match(/^-?0x[0-9a-f]+$/i)) {\n return new BigNumber(_constructorGuard, toHex(value));\n }\n\n if (value.match(/^-?[0-9]+$/)) {\n return new BigNumber(_constructorGuard, toHex(new BN(value)));\n }\n\n return logger.throwArgumentError(\"invalid BigNumber string\", \"value\", value);\n }\n\n if (typeof(value) === \"number\") {\n if (value % 1) {\n throwFault(\"underflow\", \"BigNumber.from\", value);\n }\n\n if (value >= MAX_SAFE || value <= -MAX_SAFE) {\n throwFault(\"overflow\", \"BigNumber.from\", value);\n }\n\n return BigNumber.from(String(value));\n }\n\n const anyValue = value;\n\n if (typeof(anyValue) === \"bigint\") {\n return BigNumber.from(anyValue.toString());\n }\n\n if (isBytes(anyValue)) {\n return BigNumber.from(hexlify(anyValue));\n }\n\n if (anyValue) {\n\n // Hexable interface (takes priority)\n if (anyValue.toHexString) {\n const hex = anyValue.toHexString();\n if (typeof(hex) === \"string\") {\n return BigNumber.from(hex);\n }\n\n } else {\n // For now, handle legacy JSON-ified values (goes away in v6)\n let hex = anyValue._hex;\n\n // New-form JSON\n if (hex == null && anyValue.type === \"BigNumber\") {\n hex = anyValue.hex;\n }\n\n if (typeof(hex) === \"string\") {\n if (isHexString(hex) || (hex[0] === \"-\" && isHexString(hex.substring(1)))) {\n return BigNumber.from(hex);\n }\n }\n }\n }\n\n return logger.throwArgumentError(\"invalid BigNumber value\", \"value\", value);\n }\n\n static isBigNumber(value: any): value is BigNumber {\n return !!(value && value._isBigNumber);\n }\n}\n\n// Normalize the hex string\nfunction toHex(value: string | BN): string {\n\n // For BN, call on the hex string\n if (typeof(value) !== \"string\") {\n return toHex(value.toString(16));\n }\n\n // If negative, prepend the negative sign to the normalized positive value\n if (value[0] === \"-\") {\n // Strip off the negative sign\n value = value.substring(1);\n\n // Cannot have multiple negative signs (e.g. \"--0x04\")\n if (value[0] === \"-\") { logger.throwArgumentError(\"invalid hex\", \"value\", value); }\n\n // Call toHex on the positive component\n value = toHex(value);\n\n // Do not allow \"-0x00\"\n if (value === \"0x00\") { return value; }\n\n // Negate the value\n return \"-\" + value;\n }\n\n // Add a \"0x\" prefix if missing\n if (value.substring(0, 2) !== \"0x\") { value = \"0x\" + value; }\n\n // Normalize zero\n if (value === \"0x\") { return \"0x00\"; }\n\n // Make the string even length\n if (value.length % 2) { value = \"0x0\" + value.substring(2); }\n\n // Trim to smallest even-length string\n while (value.length > 4 && value.substring(0, 4) === \"0x00\") {\n value = \"0x\" + value.substring(4);\n }\n\n return value;\n}\n\nfunction toBigNumber(value: BN): BigNumber {\n return BigNumber.from(toHex(value));\n}\n\nfunction toBN(value: BigNumberish): BN {\n const hex = BigNumber.from(value).toHexString();\n if (hex[0] === \"-\") {\n return (new BN(\"-\" + hex.substring(3), 16));\n }\n return new BN(hex.substring(2), 16);\n}\n\nfunction throwFault(fault: string, operation: string, value?: any): never {\n const params: any = { fault: fault, operation: operation };\n if (value != null) { params.value = value; }\n\n return logger.throwError(fault, Logger.errors.NUMERIC_FAULT, params);\n}\n\n// value should have no prefix\nexport function _base36To16(value: string): string {\n return (new BN(value, 36)).toString(16);\n}\n\n// value should have no prefix\nexport function _base16To36(value: string): string {\n return (new BN(value, 16)).toString(36);\n}\n", "\"use strict\";\n\nimport { arrayify, BytesLike, hexZeroPad, isBytes } from \"@ethersproject/bytes\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\nimport { BigNumber, BigNumberish, isBigNumberish } from \"./bignumber\";\n\nconst _constructorGuard = { };\n\nconst Zero = BigNumber.from(0);\nconst NegativeOne = BigNumber.from(-1);\n\nfunction throwFault(message: string, fault: string, operation: string, value?: any): never {\n const params: any = { fault: fault, operation: operation };\n if (value !== undefined) { params.value = value; }\n return logger.throwError(message, Logger.errors.NUMERIC_FAULT, params);\n}\n\n// Constant to pull zeros from for multipliers\nlet zeros = \"0\";\nwhile (zeros.length < 256) { zeros += zeros; }\n\n// Returns a string \"1\" followed by decimal \"0\"s\nfunction getMultiplier(decimals: BigNumberish): string {\n\n if (typeof(decimals) !== \"number\") {\n try {\n decimals = BigNumber.from(decimals).toNumber();\n } catch (e) { }\n }\n\n if (typeof(decimals) === \"number\" && decimals >= 0 && decimals <= 256 && !(decimals % 1)) {\n return (\"1\" + zeros.substring(0, decimals));\n }\n\n return logger.throwArgumentError(\"invalid decimal size\", \"decimals\", decimals);\n}\n\nexport function formatFixed(value: BigNumberish, decimals?: string | BigNumberish): string {\n if (decimals == null) { decimals = 0; }\n const multiplier = getMultiplier(decimals);\n\n // Make sure wei is a big number (convert as necessary)\n value = BigNumber.from(value);\n\n const negative = value.lt(Zero);\n if (negative) { value = value.mul(NegativeOne); }\n\n let fraction = value.mod(multiplier).toString();\n while (fraction.length < multiplier.length - 1) { fraction = \"0\" + fraction; }\n\n // Strip training 0\n fraction = fraction.match(/^([0-9]*[1-9]|0)(0*)/)[1];\n\n const whole = value.div(multiplier).toString();\n if (multiplier.length === 1) {\n value = whole;\n } else {\n value = whole + \".\" + fraction;\n }\n\n if (negative) { value = \"-\" + value; }\n\n return value;\n}\n\nexport function parseFixed(value: string, decimals?: BigNumberish): BigNumber {\n\n if (decimals == null) { decimals = 0; }\n const multiplier = getMultiplier(decimals);\n\n if (typeof(value) !== \"string\" || !value.match(/^-?[0-9.]+$/)) {\n logger.throwArgumentError(\"invalid decimal value\", \"value\", value);\n }\n\n // Is it negative?\n const negative = (value.substring(0, 1) === \"-\");\n if (negative) { value = value.substring(1); }\n\n if (value === \".\") {\n logger.throwArgumentError(\"missing value\", \"value\", value);\n }\n\n // Split it into a whole and fractional part\n const comps = value.split(\".\");\n if (comps.length > 2) {\n logger.throwArgumentError(\"too many decimal points\", \"value\", value);\n }\n\n let whole = comps[0], fraction = comps[1];\n if (!whole) { whole = \"0\"; }\n if (!fraction) { fraction = \"0\"; }\n\n // Trim trailing zeros\n while (fraction[fraction.length - 1] === \"0\") {\n fraction = fraction.substring(0, fraction.length - 1);\n }\n\n // Check the fraction doesn't exceed our decimals size\n if (fraction.length > multiplier.length - 1) {\n throwFault(\"fractional component exceeds decimals\", \"underflow\", \"parseFixed\");\n }\n\n // If decimals is 0, we have an empty string for fraction\n if (fraction === \"\") { fraction = \"0\"; }\n\n // Fully pad the string with zeros to get to wei\n while (fraction.length < multiplier.length - 1) { fraction += \"0\"; }\n\n const wholeValue = BigNumber.from(whole);\n const fractionValue = BigNumber.from(fraction);\n\n let wei = (wholeValue.mul(multiplier)).add(fractionValue);\n\n if (negative) { wei = wei.mul(NegativeOne); }\n\n return wei;\n}\n\n\nexport class FixedFormat {\n readonly signed: boolean;\n readonly width: number;\n readonly decimals: number;\n readonly name: string;\n readonly _multiplier: string;\n\n constructor(constructorGuard: any, signed: boolean, width: number, decimals: number) {\n if (constructorGuard !== _constructorGuard) {\n logger.throwError(\"cannot use FixedFormat constructor; use FixedFormat.from\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"new FixedFormat\"\n });\n }\n\n this.signed = signed;\n this.width = width;\n this.decimals = decimals;\n\n this.name = (signed ? \"\": \"u\") + \"fixed\" + String(width) + \"x\" + String(decimals);\n\n this._multiplier = getMultiplier(decimals);\n\n Object.freeze(this);\n }\n\n static from(value: any): FixedFormat {\n if (value instanceof FixedFormat) { return value; }\n\n if (typeof(value) === \"number\") {\n value = `fixed128x${value}`\n }\n\n let signed = true;\n let width = 128;\n let decimals = 18;\n\n if (typeof(value) === \"string\") {\n if (value === \"fixed\") {\n // defaults...\n } else if (value === \"ufixed\") {\n signed = false;\n } else {\n const match = value.match(/^(u?)fixed([0-9]+)x([0-9]+)$/);\n if (!match) { logger.throwArgumentError(\"invalid fixed format\", \"format\", value); }\n signed = (match[1] !== \"u\");\n width = parseInt(match[2]);\n decimals = parseInt(match[3]);\n }\n } else if (value) {\n const check = (key: string, type: string, defaultValue: any): any => {\n if (value[key] == null) { return defaultValue; }\n if (typeof(value[key]) !== type) {\n logger.throwArgumentError(\"invalid fixed format (\" + key + \" not \" + type +\")\", \"format.\" + key, value[key]);\n }\n return value[key];\n }\n signed = check(\"signed\", \"boolean\", signed);\n width = check(\"width\", \"number\", width);\n decimals = check(\"decimals\", \"number\", decimals);\n }\n\n if (width % 8) {\n logger.throwArgumentError(\"invalid fixed format width (not byte aligned)\", \"format.width\", width);\n }\n\n if (decimals > 80) {\n logger.throwArgumentError(\"invalid fixed format (decimals too large)\", \"format.decimals\", decimals);\n }\n\n return new FixedFormat(_constructorGuard, signed, width, decimals);\n }\n}\n\nexport class FixedNumber {\n readonly format: FixedFormat;\n readonly _hex: string;\n readonly _value: string;\n\n readonly _isFixedNumber: boolean;\n\n constructor(constructorGuard: any, hex: string, value: string, format?: FixedFormat) {\n if (constructorGuard !== _constructorGuard) {\n logger.throwError(\"cannot use FixedNumber constructor; use FixedNumber.from\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"new FixedFormat\"\n });\n }\n\n this.format = format;\n this._hex = hex;\n this._value = value;\n\n this._isFixedNumber = true;\n\n Object.freeze(this);\n }\n\n _checkFormat(other: FixedNumber): void {\n if (this.format.name !== other.format.name) {\n logger.throwArgumentError(\"incompatible format; use fixedNumber.toFormat\", \"other\", other);\n }\n }\n\n addUnsafe(other: FixedNumber): FixedNumber {\n this._checkFormat(other);\n const a = parseFixed(this._value, this.format.decimals);\n const b = parseFixed(other._value, other.format.decimals);\n return FixedNumber.fromValue(a.add(b), this.format.decimals, this.format);\n }\n\n subUnsafe(other: FixedNumber): FixedNumber {\n this._checkFormat(other);\n const a = parseFixed(this._value, this.format.decimals);\n const b = parseFixed(other._value, other.format.decimals);\n return FixedNumber.fromValue(a.sub(b), this.format.decimals, this.format);\n }\n\n mulUnsafe(other: FixedNumber): FixedNumber {\n this._checkFormat(other);\n const a = parseFixed(this._value, this.format.decimals);\n const b = parseFixed(other._value, other.format.decimals);\n return FixedNumber.fromValue(a.mul(b).div(this.format._multiplier), this.format.decimals, this.format);\n }\n\n divUnsafe(other: FixedNumber): FixedNumber {\n this._checkFormat(other);\n const a = parseFixed(this._value, this.format.decimals);\n const b = parseFixed(other._value, other.format.decimals);\n return FixedNumber.fromValue(a.mul(this.format._multiplier).div(b), this.format.decimals, this.format);\n }\n\n floor(): FixedNumber {\n const comps = this.toString().split(\".\");\n if (comps.length === 1) { comps.push(\"0\"); }\n\n let result = FixedNumber.from(comps[0], this.format);\n\n const hasFraction = !comps[1].match(/^(0*)$/);\n if (this.isNegative() && hasFraction) {\n result = result.subUnsafe(ONE.toFormat(result.format));\n }\n\n return result;\n }\n\n ceiling(): FixedNumber {\n const comps = this.toString().split(\".\");\n if (comps.length === 1) { comps.push(\"0\"); }\n\n let result = FixedNumber.from(comps[0], this.format);\n\n const hasFraction = !comps[1].match(/^(0*)$/);\n if (!this.isNegative() && hasFraction) {\n result = result.addUnsafe(ONE.toFormat(result.format));\n }\n\n return result;\n }\n\n // @TODO: Support other rounding algorithms\n round(decimals?: number): FixedNumber {\n if (decimals == null) { decimals = 0; }\n\n // If we are already in range, we're done\n const comps = this.toString().split(\".\");\n if (comps.length === 1) { comps.push(\"0\"); }\n\n if (decimals < 0 || decimals > 80 || (decimals % 1)) {\n logger.throwArgumentError(\"invalid decimal count\", \"decimals\", decimals);\n }\n\n if (comps[1].length <= decimals) { return this; }\n\n const factor = FixedNumber.from(\"1\" + zeros.substring(0, decimals), this.format);\n const bump = BUMP.toFormat(this.format);\n\n return this.mulUnsafe(factor).addUnsafe(bump).floor().divUnsafe(factor);\n }\n\n isZero(): boolean {\n return (this._value === \"0.0\" || this._value === \"0\");\n }\n\n isNegative(): boolean {\n return (this._value[0] === \"-\");\n }\n\n toString(): string { return this._value; }\n\n toHexString(width?: number): string {\n if (width == null) { return this._hex; }\n if (width % 8) { logger.throwArgumentError(\"invalid byte width\", \"width\", width); }\n const hex = BigNumber.from(this._hex).fromTwos(this.format.width).toTwos(width).toHexString();\n return hexZeroPad(hex, width / 8);\n }\n\n toUnsafeFloat(): number { return parseFloat(this.toString()); }\n\n toFormat(format: FixedFormat | string): FixedNumber {\n return FixedNumber.fromString(this._value, format);\n }\n\n\n static fromValue(value: BigNumber, decimals?: BigNumberish, format?: FixedFormat | string | number): FixedNumber {\n // If decimals looks more like a format, and there is no format, shift the parameters\n if (format == null && decimals != null && !isBigNumberish(decimals)) {\n format = decimals;\n decimals = null;\n }\n\n if (decimals == null) { decimals = 0; }\n if (format == null) { format = \"fixed\"; }\n\n return FixedNumber.fromString(formatFixed(value, decimals), FixedFormat.from(format));\n }\n\n\n static fromString(value: string, format?: FixedFormat | string | number): FixedNumber {\n if (format == null) { format = \"fixed\"; }\n\n const fixedFormat = FixedFormat.from(format);\n\n const numeric = parseFixed(value, fixedFormat.decimals);\n\n if (!fixedFormat.signed && numeric.lt(Zero)) {\n throwFault(\"unsigned value cannot be negative\", \"overflow\", \"value\", value);\n }\n\n let hex: string = null;\n if (fixedFormat.signed) {\n hex = numeric.toTwos(fixedFormat.width).toHexString();\n } else {\n hex = numeric.toHexString();\n hex = hexZeroPad(hex, fixedFormat.width / 8);\n }\n\n const decimal = formatFixed(numeric, fixedFormat.decimals);\n\n return new FixedNumber(_constructorGuard, hex, decimal, fixedFormat);\n }\n\n static fromBytes(value: BytesLike, format?: FixedFormat | string | number): FixedNumber {\n if (format == null) { format = \"fixed\"; }\n\n const fixedFormat = FixedFormat.from(format);\n\n if (arrayify(value).length > fixedFormat.width / 8) {\n throw new Error(\"overflow\");\n }\n\n let numeric = BigNumber.from(value);\n if (fixedFormat.signed) { numeric = numeric.fromTwos(fixedFormat.width); }\n\n const hex = numeric.toTwos((fixedFormat.signed ? 0: 1) + fixedFormat.width).toHexString();\n const decimal = formatFixed(numeric, fixedFormat.decimals);\n\n return new FixedNumber(_constructorGuard, hex, decimal, fixedFormat);\n }\n\n static from(value: any, format?: FixedFormat | string | number) {\n if (typeof(value) === \"string\") {\n return FixedNumber.fromString(value, format);\n }\n\n if (isBytes(value)) {\n return FixedNumber.fromBytes(value, format);\n }\n\n try {\n return FixedNumber.fromValue(value, 0, format);\n } catch (error) {\n // Allow NUMERIC_FAULT to bubble up\n if (error.code !== Logger.errors.INVALID_ARGUMENT) {\n throw error;\n }\n }\n\n return logger.throwArgumentError(\"invalid FixedNumber value\", \"value\", value);\n }\n\n static isFixedNumber(value: any): value is FixedNumber {\n return !!(value && value._isFixedNumber);\n }\n}\n\nconst ONE = FixedNumber.from(1);\nconst BUMP = FixedNumber.from(\"0.5\");\n", "export { BigNumber, BigNumberish } from \"./bignumber\";\nexport { formatFixed, FixedFormat, FixedNumber, parseFixed } from \"./fixednumber\";\n\n// Internal methods used by address\nexport { _base16To36, _base36To16 } from \"./bignumber\";\n", "export const version = \"properties/5.7.0\";\n", "\"use strict\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\nexport function defineReadOnly(object: T, name: K, value: T[K]): void {\n Object.defineProperty(object, name, {\n enumerable: true,\n value: value,\n writable: false,\n });\n}\n\n// Crawl up the constructor chain to find a static method\nexport function getStatic(ctor: any, key: string): T {\n for (let i = 0; i < 32; i++) {\n if (ctor[key]) { return ctor[key]; }\n if (!ctor.prototype || typeof(ctor.prototype) !== \"object\") { break; }\n ctor = Object.getPrototypeOf(ctor.prototype).constructor;\n }\n return null;\n}\n\nexport type Deferrable = {\n [ K in keyof T ]: T[K] | Promise;\n}\n\n\ntype Result = { key: string, value: any};\n\nexport async function resolveProperties(object: Readonly>): Promise {\n const promises: Array> = Object.keys(object).map((key) => {\n const value = object[>key];\n return Promise.resolve(value).then((v) => ({ key: key, value: v }));\n });\n\n const results = await Promise.all(promises);\n\n return results.reduce((accum, result) => {\n accum[(result.key)] = result.value;\n return accum;\n }, { });\n}\n\nexport function checkProperties(object: any, properties: { [ name: string ]: boolean }): void {\n if (!object || typeof(object) !== \"object\") {\n logger.throwArgumentError(\"invalid object\", \"object\", object);\n }\n\n Object.keys(object).forEach((key) => {\n if (!properties[key]) {\n logger.throwArgumentError(\"invalid object key - \" + key, \"transaction:\" + key, object);\n }\n });\n}\n\nexport function shallowCopy(object: T): T {\n const result: any = {};\n for (const key in object) { result[key] = object[key]; }\n return result;\n}\n\nconst opaque: { [key: string]: boolean } = { bigint: true, boolean: true, \"function\": true, number: true, string: true };\n\nfunction _isFrozen(object: any): boolean {\n\n // Opaque objects are not mutable, so safe to copy by assignment\n if (object === undefined || object === null || opaque[typeof(object)]) { return true; }\n\n if (Array.isArray(object) || typeof(object) === \"object\") {\n if (!Object.isFrozen(object)) { return false; }\n\n const keys = Object.keys(object);\n for (let i = 0; i < keys.length; i++) {\n let value: any = null;\n try {\n value = object[keys[i]];\n } catch (error) {\n // If accessing a value triggers an error, it is a getter\n // designed to do so (e.g. Result) and is therefore \"frozen\"\n continue;\n }\n\n if (!_isFrozen(value)) { return false; }\n }\n\n return true;\n }\n\n return logger.throwArgumentError(`Cannot deepCopy ${ typeof(object) }`, \"object\", object);\n}\n\n// Returns a new copy of object, such that no properties may be replaced.\n// New properties may be added only to objects.\nfunction _deepCopy(object: any): any {\n\n if (_isFrozen(object)) { return object; }\n\n // Arrays are mutable, so we need to create a copy\n if (Array.isArray(object)) {\n return Object.freeze(object.map((item) => deepCopy(item)));\n }\n\n if (typeof(object) === \"object\") {\n const result: { [ key: string ]: any } = {};\n for (const key in object) {\n const value = object[key];\n if (value === undefined) { continue; }\n defineReadOnly(result, key, deepCopy(value));\n }\n\n return result;\n }\n\n return logger.throwArgumentError(`Cannot deepCopy ${ typeof(object) }`, \"object\", object);\n}\n\nexport function deepCopy(object: T): T {\n return _deepCopy(object);\n}\n\nexport class Description {\n constructor(info: { [ K in keyof T ]: T[K] }) {\n for (const key in info) {\n (this)[key] = deepCopy(info[key]);\n }\n }\n}\n", "export const version = \"abi/5.7.0\";\n", "\"use strict\";\n\nimport { BigNumber } from \"@ethersproject/bignumber\";\nimport { defineReadOnly } from \"@ethersproject/properties\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\nexport interface JsonFragmentType {\n readonly name?: string;\n readonly indexed?: boolean;\n readonly type?: string;\n readonly internalType?: any; // @TODO: in v6 reduce type\n readonly components?: ReadonlyArray;\n}\n\nexport interface JsonFragment {\n readonly name?: string;\n readonly type?: string;\n\n readonly anonymous?: boolean;\n\n readonly payable?: boolean;\n readonly constant?: boolean;\n readonly stateMutability?: string;\n\n readonly inputs?: ReadonlyArray;\n readonly outputs?: ReadonlyArray;\n\n readonly gas?: string;\n};\n\nconst _constructorGuard = { };\n\n// AST Node parser state\ntype ParseState = {\n allowArray?: boolean,\n allowName?: boolean,\n allowParams?: boolean,\n allowType?: boolean,\n readArray?: boolean,\n};\n\n// AST Node\ntype ParseNode = {\n parent?: any,\n type?: string,\n name?: string,\n state?: ParseState,\n indexed?: boolean,\n components?: Array\n};\n\nlet ModifiersBytes: { [ name: string ]: boolean } = { calldata: true, memory: true, storage: true };\nlet ModifiersNest: { [ name: string ]: boolean } = { calldata: true, memory: true };\nfunction checkModifier(type: string, name: string): boolean {\n if (type === \"bytes\" || type === \"string\") {\n if (ModifiersBytes[name]) { return true; }\n } else if (type === \"address\") {\n if (name === \"payable\") { return true; }\n } else if (type.indexOf(\"[\") >= 0 || type === \"tuple\") {\n if (ModifiersNest[name]) { return true; }\n }\n if (ModifiersBytes[name] || name === \"payable\") {\n logger.throwArgumentError(\"invalid modifier\", \"name\", name);\n }\n return false;\n}\n\n// @TODO: Make sure that children of an indexed tuple are marked with a null indexed\nfunction parseParamType(param: string, allowIndexed: boolean): ParseNode {\n\n let originalParam = param;\n function throwError(i: number) {\n logger.throwArgumentError(`unexpected character at position ${ i }`, \"param\", param);\n }\n param = param.replace(/\\s/g, \" \");\n\n function newNode(parent: ParseNode): ParseNode {\n let node: ParseNode = { type: \"\", name: \"\", parent: parent, state: { allowType: true } };\n if (allowIndexed) { node.indexed = false; }\n return node\n }\n\n let parent: ParseNode = { type: \"\", name: \"\", state: { allowType: true } };\n let node = parent;\n\n for (let i = 0; i < param.length; i++) {\n let c = param[i];\n switch (c) {\n case \"(\":\n if (node.state.allowType && node.type === \"\") {\n node.type = \"tuple\";\n } else if (!node.state.allowParams) {\n throwError(i);\n }\n node.state.allowType = false;\n node.type = verifyType(node.type);\n node.components = [ newNode(node) ];\n node = node.components[0];\n break;\n\n case \")\":\n delete node.state;\n\n if (node.name === \"indexed\") {\n if (!allowIndexed) { throwError(i); }\n node.indexed = true;\n node.name = \"\";\n }\n\n if (checkModifier(node.type, node.name)) { node.name = \"\"; }\n\n node.type = verifyType(node.type);\n\n let child = node;\n node = node.parent;\n if (!node) { throwError(i); }\n delete child.parent;\n node.state.allowParams = false;\n node.state.allowName = true;\n node.state.allowArray = true;\n break;\n\n case \",\":\n delete node.state;\n\n if (node.name === \"indexed\") {\n if (!allowIndexed) { throwError(i); }\n node.indexed = true;\n node.name = \"\";\n }\n\n if (checkModifier(node.type, node.name)) { node.name = \"\"; }\n\n node.type = verifyType(node.type);\n\n let sibling: ParseNode = newNode(node.parent);\n //{ type: \"\", name: \"\", parent: node.parent, state: { allowType: true } };\n node.parent.components.push(sibling);\n delete node.parent;\n node = sibling;\n break;\n\n // Hit a space...\n case \" \":\n\n // If reading type, the type is done and may read a param or name\n if (node.state.allowType) {\n if (node.type !== \"\") {\n node.type = verifyType(node.type);\n delete node.state.allowType;\n node.state.allowName = true;\n node.state.allowParams = true;\n }\n }\n\n // If reading name, the name is done\n if (node.state.allowName) {\n if (node.name !== \"\") {\n if (node.name === \"indexed\") {\n if (!allowIndexed) { throwError(i); }\n if (node.indexed) { throwError(i); }\n node.indexed = true;\n node.name = \"\";\n } else if (checkModifier(node.type, node.name)) {\n node.name = \"\";\n } else {\n node.state.allowName = false;\n }\n }\n }\n\n break;\n\n case \"[\":\n if (!node.state.allowArray) { throwError(i); }\n\n node.type += c;\n\n node.state.allowArray = false;\n node.state.allowName = false;\n node.state.readArray = true;\n break;\n\n case \"]\":\n if (!node.state.readArray) { throwError(i); }\n\n node.type += c;\n\n node.state.readArray = false;\n node.state.allowArray = true;\n node.state.allowName = true;\n break;\n\n default:\n if (node.state.allowType) {\n node.type += c;\n node.state.allowParams = true;\n node.state.allowArray = true;\n } else if (node.state.allowName) {\n node.name += c;\n delete node.state.allowArray;\n } else if (node.state.readArray) {\n node.type += c;\n } else {\n throwError(i);\n }\n }\n }\n\n if (node.parent) { logger.throwArgumentError(\"unexpected eof\", \"param\", param); }\n\n delete parent.state;\n\n if (node.name === \"indexed\") {\n if (!allowIndexed) { throwError(originalParam.length - 7); }\n if (node.indexed) { throwError(originalParam.length - 7); }\n node.indexed = true;\n node.name = \"\";\n } else if (checkModifier(node.type, node.name)) {\n node.name = \"\";\n }\n\n parent.type = verifyType(parent.type);\n\n return parent;\n}\n\nfunction populate(object: any, params: any) {\n for (let key in params) { defineReadOnly(object, key, params[key]); }\n}\n\nexport const FormatTypes: { [ name: string ]: string } = Object.freeze({\n // Bare formatting, as is needed for computing a sighash of an event or function\n sighash: \"sighash\",\n\n // Human-Readable with Minimal spacing and without names (compact human-readable)\n minimal: \"minimal\",\n\n // Human-Readable with nice spacing, including all names\n full: \"full\",\n\n // JSON-format a la Solidity\n json: \"json\"\n});\n\nconst paramTypeArray = new RegExp(/^(.*)\\[([0-9]*)\\]$/);\n\nexport class ParamType {\n\n // The local name of the parameter (of null if unbound)\n readonly name: string;\n\n // The fully qualified type (e.g. \"address\", \"tuple(address)\", \"uint256[3][]\"\n readonly type: string;\n\n // The base type (e.g. \"address\", \"tuple\", \"array\")\n readonly baseType: string;\n\n // Indexable Paramters ONLY (otherwise null)\n readonly indexed: boolean;\n\n // Tuples ONLY: (otherwise null)\n // - sub-components\n readonly components: Array;\n\n // Arrays ONLY: (otherwise null)\n // - length of the array (-1 for dynamic length)\n // - child type\n readonly arrayLength: number;\n readonly arrayChildren: ParamType;\n\n readonly _isParamType: boolean;\n\n constructor(constructorGuard: any, params: any) {\n if (constructorGuard !== _constructorGuard) { logger.throwError(\"use fromString\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"new ParamType()\"\n }); }\n populate(this, params);\n\n let match = this.type.match(paramTypeArray);\n if (match) {\n populate(this, {\n arrayLength: parseInt(match[2] || \"-1\"),\n arrayChildren: ParamType.fromObject({\n type: match[1],\n components: this.components\n }),\n baseType: \"array\"\n });\n } else {\n populate(this, {\n arrayLength: null,\n arrayChildren: null,\n baseType: ((this.components != null) ? \"tuple\": this.type)\n });\n }\n\n this._isParamType = true;\n\n Object.freeze(this);\n }\n\n // Format the parameter fragment\n // - sighash: \"(uint256,address)\"\n // - minimal: \"tuple(uint256,address) indexed\"\n // - full: \"tuple(uint256 foo, address bar) indexed baz\"\n format(format?: string): string {\n if (!format) { format = FormatTypes.sighash; }\n if (!FormatTypes[format]) {\n logger.throwArgumentError(\"invalid format type\", \"format\", format);\n }\n\n if (format === FormatTypes.json) {\n let result: any = {\n type: ((this.baseType === \"tuple\") ? \"tuple\": this.type),\n name: (this.name || undefined)\n };\n if (typeof(this.indexed) === \"boolean\") { result.indexed = this.indexed; }\n if (this.components) {\n result.components = this.components.map((comp) => JSON.parse(comp.format(format)));\n }\n return JSON.stringify(result);\n }\n\n let result = \"\";\n\n // Array\n if (this.baseType === \"array\") {\n result += this.arrayChildren.format(format);\n result += \"[\" + (this.arrayLength < 0 ? \"\": String(this.arrayLength)) + \"]\";\n } else {\n if (this.baseType === \"tuple\") {\n if (format !== FormatTypes.sighash) {\n result += this.type;\n }\n result += \"(\" + this.components.map(\n (comp) => comp.format(format)\n ).join((format === FormatTypes.full) ? \", \": \",\") + \")\";\n } else {\n result += this.type;\n }\n }\n\n if (format !== FormatTypes.sighash) {\n if (this.indexed === true) { result += \" indexed\"; }\n if (format === FormatTypes.full && this.name) {\n result += \" \" + this.name;\n }\n }\n\n return result;\n }\n\n static from(value: string | JsonFragmentType | ParamType, allowIndexed?: boolean): ParamType {\n if (typeof(value) === \"string\") {\n return ParamType.fromString(value, allowIndexed);\n }\n return ParamType.fromObject(value);\n }\n\n static fromObject(value: JsonFragmentType | ParamType): ParamType {\n if (ParamType.isParamType(value)) { return value; }\n\n return new ParamType(_constructorGuard, {\n name: (value.name || null),\n type: verifyType(value.type),\n indexed: ((value.indexed == null) ? null: !!value.indexed),\n components: (value.components ? value.components.map(ParamType.fromObject): null)\n });\n }\n\n static fromString(value: string, allowIndexed?: boolean): ParamType {\n function ParamTypify(node: ParseNode): ParamType {\n return ParamType.fromObject({\n name: node.name,\n type: node.type,\n indexed: node.indexed,\n components: node.components\n });\n }\n\n return ParamTypify(parseParamType(value, !!allowIndexed));\n }\n\n static isParamType(value: any): value is ParamType {\n return !!(value != null && value._isParamType);\n }\n};\n\nfunction parseParams(value: string, allowIndex: boolean): Array {\n return splitNesting(value).map((param) => ParamType.fromString(param, allowIndex));\n}\n\ntype TypeCheck = { -readonly [ K in keyof T ]: T[K] };\n\ninterface _Fragment {\n readonly type: string;\n readonly name: string;\n readonly inputs: ReadonlyArray;\n}\n\nexport abstract class Fragment {\n\n readonly type: string;\n readonly name: string;\n readonly inputs: Array;\n\n readonly _isFragment: boolean;\n\n constructor(constructorGuard: any, params: any) {\n if (constructorGuard !== _constructorGuard) {\n logger.throwError(\"use a static from method\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"new Fragment()\"\n });\n }\n populate(this, params);\n\n this._isFragment = true;\n\n Object.freeze(this);\n }\n\n abstract format(format?: string): string;\n\n static from(value: Fragment | JsonFragment | string): Fragment {\n if (Fragment.isFragment(value)) { return value; }\n\n if (typeof(value) === \"string\") {\n return Fragment.fromString(value);\n }\n\n return Fragment.fromObject(value);\n }\n\n static fromObject(value: Fragment | JsonFragment): Fragment {\n if (Fragment.isFragment(value)) { return value; }\n\n switch (value.type) {\n case \"function\":\n return FunctionFragment.fromObject(value);\n case \"event\":\n return EventFragment.fromObject(value);\n case \"constructor\":\n return ConstructorFragment.fromObject(value);\n case \"error\":\n return ErrorFragment.fromObject(value);\n case \"fallback\":\n case \"receive\":\n // @TODO: Something? Maybe return a FunctionFragment? A custom DefaultFunctionFragment?\n return null;\n }\n\n return logger.throwArgumentError(\"invalid fragment object\", \"value\", value);\n }\n\n static fromString(value: string): Fragment {\n // Make sure the \"returns\" is surrounded by a space and all whitespace is exactly one space\n value = value.replace(/\\s/g, \" \");\n value = value.replace(/\\(/g, \" (\").replace(/\\)/g, \") \").replace(/\\s+/g, \" \");\n value = value.trim();\n\n if (value.split(\" \")[0] === \"event\") {\n return EventFragment.fromString(value.substring(5).trim());\n } else if (value.split(\" \")[0] === \"function\") {\n return FunctionFragment.fromString(value.substring(8).trim());\n } else if (value.split(\"(\")[0].trim() === \"constructor\") {\n return ConstructorFragment.fromString(value.trim());\n } else if (value.split(\" \")[0] === \"error\") {\n return ErrorFragment.fromString(value.substring(5).trim());\n }\n\n return logger.throwArgumentError(\"unsupported fragment\", \"value\", value);\n }\n\n static isFragment(value: any): value is Fragment {\n return !!(value && value._isFragment);\n }\n}\n\ninterface _EventFragment extends _Fragment {\n readonly anonymous: boolean;\n}\n\nexport class EventFragment extends Fragment {\n readonly anonymous: boolean;\n\n format(format?: string): string {\n if (!format) { format = FormatTypes.sighash; }\n if (!FormatTypes[format]) {\n logger.throwArgumentError(\"invalid format type\", \"format\", format);\n }\n\n if (format === FormatTypes.json) {\n return JSON.stringify({\n type: \"event\",\n anonymous: this.anonymous,\n name: this.name,\n inputs: this.inputs.map((input) => JSON.parse(input.format(format)))\n });\n }\n\n let result = \"\";\n\n if (format !== FormatTypes.sighash) {\n result += \"event \";\n }\n\n result += this.name + \"(\" + this.inputs.map(\n (input) => input.format(format)\n ).join((format === FormatTypes.full) ? \", \": \",\") + \") \";\n\n if (format !== FormatTypes.sighash) {\n if (this.anonymous) {\n result += \"anonymous \";\n }\n }\n\n return result.trim();\n }\n\n static from(value: EventFragment | JsonFragment | string): EventFragment {\n if (typeof(value) === \"string\") {\n return EventFragment.fromString(value);\n }\n return EventFragment.fromObject(value);\n }\n\n static fromObject(value: JsonFragment | EventFragment): EventFragment {\n if (EventFragment.isEventFragment(value)) { return value; }\n\n if (value.type !== \"event\") {\n logger.throwArgumentError(\"invalid event object\", \"value\", value);\n }\n\n const params: TypeCheck<_EventFragment> = {\n name: verifyIdentifier(value.name),\n anonymous: value.anonymous,\n inputs: (value.inputs ? value.inputs.map(ParamType.fromObject) : []),\n type: \"event\"\n };\n\n return new EventFragment(_constructorGuard, params);\n }\n\n static fromString(value: string): EventFragment {\n\n let match = value.match(regexParen);\n if (!match) {\n logger.throwArgumentError(\"invalid event string\", \"value\", value);\n }\n\n let anonymous = false;\n match[3].split(\" \").forEach((modifier) => {\n switch(modifier.trim()) {\n case \"anonymous\":\n anonymous = true;\n break;\n case \"\":\n break;\n default:\n logger.warn(\"unknown modifier: \" + modifier);\n }\n });\n\n return EventFragment.fromObject({\n name: match[1].trim(),\n anonymous: anonymous,\n inputs: parseParams(match[2], true),\n type: \"event\"\n });\n }\n\n static isEventFragment(value: any): value is EventFragment {\n return (value && value._isFragment && value.type === \"event\");\n }\n}\n\nfunction parseGas(value: string, params: any): string {\n params.gas = null;\n\n let comps = value.split(\"@\");\n if (comps.length !== 1) {\n if (comps.length > 2) {\n logger.throwArgumentError(\"invalid human-readable ABI signature\", \"value\", value);\n }\n if (!comps[1].match(/^[0-9]+$/)) {\n logger.throwArgumentError(\"invalid human-readable ABI signature gas\", \"value\", value);\n }\n params.gas = BigNumber.from(comps[1]);\n return comps[0];\n }\n\n return value;\n}\n\nfunction parseModifiers(value: string, params: any): void {\n params.constant = false;\n params.payable = false;\n params.stateMutability = \"nonpayable\";\n\n value.split(\" \").forEach((modifier) => {\n switch (modifier.trim()) {\n case \"constant\":\n params.constant = true;\n break;\n case \"payable\":\n params.payable = true;\n params.stateMutability = \"payable\";\n break;\n case \"nonpayable\":\n params.payable = false;\n params.stateMutability = \"nonpayable\";\n break;\n case \"pure\":\n params.constant = true;\n params.stateMutability = \"pure\";\n break;\n case \"view\":\n params.constant = true;\n params.stateMutability = \"view\";\n break;\n case \"external\":\n case \"public\":\n case \"\":\n break;\n default:\n console.log(\"unknown modifier: \" + modifier);\n }\n });\n}\n\ntype StateInputValue = {\n constant?: boolean;\n payable?: boolean;\n stateMutability?: string;\n type?: string;\n};\n\ntype StateOutputValue = {\n constant: boolean;\n payable: boolean;\n stateMutability: string;\n};\n\nfunction verifyState(value: StateInputValue): StateOutputValue {\n let result: any = {\n constant: false,\n payable: true,\n stateMutability: \"payable\"\n };\n\n if (value.stateMutability != null) {\n result.stateMutability = value.stateMutability;\n\n // Set (and check things are consistent) the constant property\n result.constant = (result.stateMutability === \"view\" || result.stateMutability === \"pure\");\n if (value.constant != null) {\n if ((!!value.constant) !== result.constant) {\n logger.throwArgumentError(\"cannot have constant function with mutability \" + result.stateMutability, \"value\", value);\n }\n }\n\n // Set (and check things are consistent) the payable property\n result.payable = (result.stateMutability === \"payable\");\n if (value.payable != null) {\n if ((!!value.payable) !== result.payable) {\n logger.throwArgumentError(\"cannot have payable function with mutability \" + result.stateMutability, \"value\", value);\n }\n }\n\n } else if (value.payable != null) {\n result.payable = !!value.payable;\n\n // If payable we can assume non-constant; otherwise we can't assume\n if (value.constant == null && !result.payable && value.type !== \"constructor\") {\n logger.throwArgumentError(\"unable to determine stateMutability\", \"value\", value);\n }\n\n result.constant = !!value.constant;\n\n if (result.constant) {\n result.stateMutability = \"view\";\n } else {\n result.stateMutability = (result.payable ? \"payable\": \"nonpayable\");\n }\n\n if (result.payable && result.constant) {\n logger.throwArgumentError(\"cannot have constant payable function\", \"value\", value);\n }\n\n } else if (value.constant != null) {\n result.constant = !!value.constant;\n result.payable = !result.constant;\n result.stateMutability = (result.constant ? \"view\": \"payable\");\n\n } else if (value.type !== \"constructor\") {\n logger.throwArgumentError(\"unable to determine stateMutability\", \"value\", value);\n }\n\n return result;\n}\n\ninterface _ConstructorFragment extends _Fragment {\n stateMutability: string;\n payable: boolean;\n gas?: BigNumber;\n}\n\nexport class ConstructorFragment extends Fragment {\n stateMutability: string;\n payable: boolean;\n gas?: BigNumber;\n\n format(format?: string): string {\n if (!format) { format = FormatTypes.sighash; }\n if (!FormatTypes[format]) {\n logger.throwArgumentError(\"invalid format type\", \"format\", format);\n }\n\n if (format === FormatTypes.json) {\n return JSON.stringify({\n type: \"constructor\",\n stateMutability: ((this.stateMutability !== \"nonpayable\") ? this.stateMutability: undefined),\n payable: this.payable,\n gas: (this.gas ? this.gas.toNumber(): undefined),\n inputs: this.inputs.map((input) => JSON.parse(input.format(format)))\n });\n }\n\n if (format === FormatTypes.sighash) {\n logger.throwError(\"cannot format a constructor for sighash\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"format(sighash)\"\n });\n }\n\n let result = \"constructor(\" + this.inputs.map(\n (input) => input.format(format)\n ).join((format === FormatTypes.full) ? \", \": \",\") + \") \";\n\n if (this.stateMutability && this.stateMutability !== \"nonpayable\") {\n result += this.stateMutability + \" \";\n }\n\n return result.trim();\n }\n\n static from(value: ConstructorFragment | JsonFragment | string): ConstructorFragment {\n if (typeof(value) === \"string\") {\n return ConstructorFragment.fromString(value);\n }\n return ConstructorFragment.fromObject(value);\n }\n\n static fromObject(value: ConstructorFragment | JsonFragment): ConstructorFragment {\n if (ConstructorFragment.isConstructorFragment(value)) { return value; }\n\n if (value.type !== \"constructor\") {\n logger.throwArgumentError(\"invalid constructor object\", \"value\", value);\n }\n\n let state = verifyState(value);\n if (state.constant) {\n logger.throwArgumentError(\"constructor cannot be constant\", \"value\", value);\n }\n\n const params: TypeCheck<_ConstructorFragment> = {\n name: null,\n type: value.type,\n inputs: (value.inputs ? value.inputs.map(ParamType.fromObject): []),\n payable: state.payable,\n stateMutability: state.stateMutability,\n gas: (value.gas ? BigNumber.from(value.gas): null)\n };\n\n return new ConstructorFragment(_constructorGuard, params);\n }\n\n static fromString(value: string): ConstructorFragment {\n let params: any = { type: \"constructor\" };\n\n value = parseGas(value, params);\n\n let parens = value.match(regexParen);\n if (!parens || parens[1].trim() !== \"constructor\") {\n logger.throwArgumentError(\"invalid constructor string\", \"value\", value);\n }\n\n params.inputs = parseParams(parens[2].trim(), false);\n\n parseModifiers(parens[3].trim(), params);\n\n return ConstructorFragment.fromObject(params);\n }\n\n static isConstructorFragment(value: any): value is ConstructorFragment {\n return (value && value._isFragment && value.type === \"constructor\");\n }\n}\n\ninterface _FunctionFragment extends _ConstructorFragment {\n constant: boolean;\n outputs?: Array;\n}\n\nexport class FunctionFragment extends ConstructorFragment {\n constant: boolean;\n outputs?: Array;\n\n format(format?: string): string {\n if (!format) { format = FormatTypes.sighash; }\n if (!FormatTypes[format]) {\n logger.throwArgumentError(\"invalid format type\", \"format\", format);\n }\n\n if (format === FormatTypes.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 ? this.gas.toNumber(): undefined),\n inputs: this.inputs.map((input) => JSON.parse(input.format(format))),\n outputs: this.outputs.map((output) => JSON.parse(output.format(format))),\n });\n }\n\n let result = \"\";\n\n if (format !== FormatTypes.sighash) {\n result += \"function \";\n }\n\n result += this.name + \"(\" + this.inputs.map(\n (input) => input.format(format)\n ).join((format === FormatTypes.full) ? \", \": \",\") + \") \";\n\n if (format !== FormatTypes.sighash) {\n if (this.stateMutability) {\n if (this.stateMutability !== \"nonpayable\") {\n result += (this.stateMutability + \" \");\n }\n } else if (this.constant) {\n result += \"view \";\n }\n\n if (this.outputs && this.outputs.length) {\n result += \"returns (\" + this.outputs.map(\n (output) => output.format(format)\n ).join(\", \") + \") \";\n }\n\n if (this.gas != null) {\n result += \"@\" + this.gas.toString() + \" \";\n }\n }\n\n return result.trim();\n }\n\n static from(value: FunctionFragment | JsonFragment | string): FunctionFragment {\n if (typeof(value) === \"string\") {\n return FunctionFragment.fromString(value);\n }\n return FunctionFragment.fromObject(value);\n }\n\n static fromObject(value: FunctionFragment | JsonFragment): FunctionFragment {\n if (FunctionFragment.isFunctionFragment(value)) { return value; }\n\n if (value.type !== \"function\") {\n logger.throwArgumentError(\"invalid function object\", \"value\", value);\n }\n\n let state = verifyState(value);\n\n const params: TypeCheck<_FunctionFragment> = {\n type: value.type,\n name: verifyIdentifier(value.name),\n constant: state.constant,\n inputs: (value.inputs ? value.inputs.map(ParamType.fromObject): []),\n outputs: (value.outputs ? value.outputs.map(ParamType.fromObject): [ ]),\n payable: state.payable,\n stateMutability: state.stateMutability,\n gas: (value.gas ? BigNumber.from(value.gas): null)\n };\n\n return new FunctionFragment(_constructorGuard, params);\n }\n\n static fromString(value: string): FunctionFragment {\n let params: any = { type: \"function\" };\n value = parseGas(value, params);\n\n let comps = value.split(\" returns \");\n if (comps.length > 2) {\n logger.throwArgumentError(\"invalid function string\", \"value\", value);\n }\n\n let parens = comps[0].match(regexParen);\n if (!parens) {\n logger.throwArgumentError(\"invalid function signature\", \"value\", value);\n }\n\n params.name = parens[1].trim();\n if (params.name) { verifyIdentifier(params.name); }\n\n params.inputs = parseParams(parens[2], false);\n\n parseModifiers(parens[3].trim(), params);\n\n // We have outputs\n if (comps.length > 1) {\n let returns = comps[1].match(regexParen);\n if (returns[1].trim() != \"\" || returns[3].trim() != \"\") {\n logger.throwArgumentError(\"unexpected tokens\", \"value\", value);\n }\n params.outputs = parseParams(returns[2], false);\n } else {\n params.outputs = [ ];\n }\n\n return FunctionFragment.fromObject(params);\n }\n\n static isFunctionFragment(value: any): value is FunctionFragment {\n return (value && value._isFragment && value.type === \"function\");\n }\n}\n\n//export class StructFragment extends Fragment {\n//}\n\nfunction checkForbidden(fragment: ErrorFragment): ErrorFragment {\n const sig = fragment.format();\n if (sig === \"Error(string)\" || sig === \"Panic(uint256)\") {\n logger.throwArgumentError(`cannot specify user defined ${ sig } error`, \"fragment\", fragment);\n }\n return fragment;\n}\n\nexport class ErrorFragment extends Fragment {\n\n format(format?: string): string {\n if (!format) { format = FormatTypes.sighash; }\n if (!FormatTypes[format]) {\n logger.throwArgumentError(\"invalid format type\", \"format\", format);\n }\n\n if (format === FormatTypes.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\n let result = \"\";\n\n if (format !== FormatTypes.sighash) {\n result += \"error \";\n }\n\n result += this.name + \"(\" + this.inputs.map(\n (input) => input.format(format)\n ).join((format === FormatTypes.full) ? \", \": \",\") + \") \";\n\n return result.trim();\n }\n\n static from(value: ErrorFragment | JsonFragment | string): ErrorFragment {\n if (typeof(value) === \"string\") {\n return ErrorFragment.fromString(value);\n }\n return ErrorFragment.fromObject(value);\n }\n\n static fromObject(value: ErrorFragment | JsonFragment): ErrorFragment {\n if (ErrorFragment.isErrorFragment(value)) { return value; }\n\n if (value.type !== \"error\") {\n logger.throwArgumentError(\"invalid error object\", \"value\", value);\n }\n\n const params: TypeCheck<_Fragment> = {\n type: value.type,\n name: verifyIdentifier(value.name),\n inputs: (value.inputs ? value.inputs.map(ParamType.fromObject): [])\n };\n\n return checkForbidden(new ErrorFragment(_constructorGuard, params));\n }\n\n static fromString(value: string): ErrorFragment {\n let params: any = { type: \"error\" };\n\n let parens = value.match(regexParen);\n if (!parens) {\n logger.throwArgumentError(\"invalid error signature\", \"value\", value);\n }\n\n params.name = parens[1].trim();\n if (params.name) { verifyIdentifier(params.name); }\n\n params.inputs = parseParams(parens[2], false);\n\n return checkForbidden(ErrorFragment.fromObject(params));\n }\n\n static isErrorFragment(value: any): value is ErrorFragment {\n return (value && value._isFragment && value.type === \"error\");\n }\n}\n\nfunction verifyType(type: string): string {\n\n // These need to be transformed to their full description\n if (type.match(/^uint($|[^1-9])/)) {\n type = \"uint256\" + type.substring(4);\n } else if (type.match(/^int($|[^1-9])/)) {\n type = \"int256\" + type.substring(3);\n }\n\n // @TODO: more verification\n\n return type;\n}\n\n// See: https://github.com/ethereum/solidity/blob/1f8f1a3db93a548d0555e3e14cfc55a10e25b60e/docs/grammar/SolidityLexer.g4#L234\nconst regexIdentifier = new RegExp(\"^[a-zA-Z$_][a-zA-Z0-9$_]*$\");\nfunction verifyIdentifier(value: string): string {\n if (!value || !value.match(regexIdentifier)) {\n logger.throwArgumentError(`invalid identifier \"${ value }\"`, \"value\", value);\n }\n return value;\n}\n\nconst regexParen = new RegExp(\"^([^)(]*)\\\\((.*)\\\\)([^)(]*)$\");\n\nfunction splitNesting(value: string): Array {\n value = value.trim();\n\n let result = [];\n let accum = \"\";\n let depth = 0;\n for (let offset = 0; offset < value.length; offset++) {\n let c = value[offset];\n if (c === \",\" && depth === 0) {\n result.push(accum);\n accum = \"\";\n } else {\n accum += c;\n if (c === \"(\") {\n depth++;\n } else if (c === \")\") {\n depth--;\n if (depth === -1) {\n logger.throwArgumentError(\"unbalanced parenthesis\", \"value\", value);\n }\n }\n }\n }\n if (accum) { result.push(accum); }\n\n return result;\n}\n\n", "\"use strict\";\n\nimport { arrayify, BytesLike, concat, hexConcat, hexlify } from \"@ethersproject/bytes\";\nimport { BigNumber, BigNumberish } from \"@ethersproject/bignumber\";\nimport { defineReadOnly } from \"@ethersproject/properties\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"../_version\";\nconst logger = new Logger(version);\n\nexport interface Result extends ReadonlyArray {\n readonly [key: string]: any;\n}\n\nexport function checkResultErrors(result: Result): Array<{ path: Array, error: Error }> {\n // Find the first error (if any)\n const errors: Array<{ path: Array, error: Error }> = [ ];\n\n const checkErrors = function(path: Array, object: any): void {\n if (!Array.isArray(object)) { return; }\n for (let key in object) {\n const childPath = path.slice();\n childPath.push(key);\n\n try {\n checkErrors(childPath, object[key]);\n } catch (error) {\n errors.push({ path: childPath, error: error });\n }\n }\n }\n checkErrors([ ], result);\n\n return errors;\n\n}\n\nexport type CoerceFunc = (type: string, value: any) => any;\n\nexport abstract class Coder {\n\n // The coder name:\n // - address, uint256, tuple, array, etc.\n readonly name: string;\n\n // The fully expanded type, including composite types:\n // - address, uint256, tuple(address,bytes), uint256[3][4][], etc.\n readonly type: string;\n\n // The localName bound in the signature, in this example it is \"baz\":\n // - tuple(address foo, uint bar) baz\n readonly localName: string;\n\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 readonly dynamic: boolean;\n\n constructor(name: string, type: string, localName: string, dynamic: boolean) {\n // @TODO: defineReadOnly these\n this.name = name;\n this.type = type;\n this.localName = localName;\n this.dynamic = dynamic;\n }\n\n _throwError(message: string, value: any): void {\n logger.throwArgumentError(message, this.localName, value);\n }\n\n abstract encode(writer: Writer, value: any): number;\n abstract decode(reader: Reader): any;\n\n abstract defaultValue(): any;\n}\n\nexport class Writer {\n readonly wordSize: number;\n\n _data: Array;\n _dataLength: number;\n _padding: Uint8Array;\n\n constructor(wordSize?: number) {\n defineReadOnly(this, \"wordSize\", wordSize || 32);\n this._data = [ ];\n this._dataLength = 0;\n this._padding = new Uint8Array(wordSize);\n }\n\n get data(): string {\n return hexConcat(this._data);\n }\n get length(): number { return this._dataLength; }\n\n _writeData(data: Uint8Array): number {\n this._data.push(data);\n this._dataLength += data.length;\n return data.length;\n }\n\n appendWriter(writer: Writer): number {\n return this._writeData(concat(writer._data));\n }\n\n // Arrayish items; padded on the right to wordSize\n writeBytes(value: BytesLike): number {\n let bytes = arrayify(value);\n const paddingOffset = bytes.length % this.wordSize;\n if (paddingOffset) {\n bytes = concat([ bytes, this._padding.slice(paddingOffset) ])\n }\n return this._writeData(bytes);\n }\n\n _getValue(value: BigNumberish): Uint8Array {\n let bytes = arrayify(BigNumber.from(value));\n if (bytes.length > this.wordSize) {\n logger.throwError(\"value out-of-bounds\", Logger.errors.BUFFER_OVERRUN, {\n length: this.wordSize,\n offset: bytes.length\n });\n }\n if (bytes.length % this.wordSize) {\n bytes = concat([ this._padding.slice(bytes.length % this.wordSize), bytes ]);\n }\n return bytes;\n }\n\n // BigNumberish items; padded on the left to wordSize\n writeValue(value: BigNumberish): number {\n return this._writeData(this._getValue(value));\n }\n\n writeUpdatableValue(): (value: BigNumberish) => void {\n const offset = this._data.length;\n this._data.push(this._padding);\n this._dataLength += this.wordSize;\n return (value: BigNumberish) => {\n this._data[offset] = this._getValue(value);\n };\n }\n}\n\nexport class Reader {\n readonly wordSize: number;\n readonly allowLoose: boolean;\n\n readonly _data: Uint8Array;\n readonly _coerceFunc: CoerceFunc;\n\n _offset: number;\n\n constructor(data: BytesLike, wordSize?: number, coerceFunc?: CoerceFunc, allowLoose?: boolean) {\n defineReadOnly(this, \"_data\", arrayify(data));\n defineReadOnly(this, \"wordSize\", wordSize || 32);\n defineReadOnly(this, \"_coerceFunc\", coerceFunc);\n defineReadOnly(this, \"allowLoose\", allowLoose);\n\n this._offset = 0;\n }\n\n get data(): string { return hexlify(this._data); }\n get consumed(): number { return this._offset; }\n\n // The default Coerce function\n static coerce(name: string, value: any): any {\n let match = name.match(\"^u?int([0-9]+)$\");\n if (match && parseInt(match[1]) <= 48) { value = value.toNumber(); }\n return value;\n }\n\n coerce(name: string, value: any): any {\n if (this._coerceFunc) { return this._coerceFunc(name, value); }\n return Reader.coerce(name, value);\n }\n\n _peekBytes(offset: number, length: number, loose?: boolean): Uint8Array {\n let alignedLength = Math.ceil(length / this.wordSize) * this.wordSize;\n if (this._offset + alignedLength > this._data.length) {\n if (this.allowLoose && loose && this._offset + length <= this._data.length) {\n alignedLength = length;\n } else {\n logger.throwError(\"data out-of-bounds\", Logger.errors.BUFFER_OVERRUN, {\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\n subReader(offset: number): Reader {\n return new Reader(this._data.slice(this._offset + offset), this.wordSize, this._coerceFunc, this.allowLoose);\n }\n\n readBytes(length: number, loose?: boolean): Uint8Array {\n let bytes = this._peekBytes(0, length, !!loose);\n this._offset += bytes.length;\n // @TODO: Make sure the length..end bytes are all 0?\n return bytes.slice(0, length);\n }\n\n readValue(): BigNumber {\n return BigNumber.from(this.readBytes(this.wordSize));\n }\n}\n", "/**\n * [js-sha3]{@link https://github.com/emn178/js-sha3}\n *\n * @version 0.8.0\n * @author Chen, Yi-Cyuan [emn178@gmail.com]\n * @copyright Chen, Yi-Cyuan 2015-2018\n * @license MIT\n */\n/*jslint bitwise: true */\n(function () {\n 'use strict';\n\n var INPUT_ERROR = 'input is invalid type';\n var FINALIZE_ERROR = 'finalize already called';\n var WINDOW = typeof window === 'object';\n var root = WINDOW ? window : {};\n if (root.JS_SHA3_NO_WINDOW) {\n WINDOW = false;\n }\n var WEB_WORKER = !WINDOW && typeof self === 'object';\n var NODE_JS = !root.JS_SHA3_NO_NODE_JS && typeof process === 'object' && process.versions && process.versions.node;\n if (NODE_JS) {\n root = global;\n } else if (WEB_WORKER) {\n root = self;\n }\n var COMMON_JS = !root.JS_SHA3_NO_COMMON_JS && typeof module === 'object' && module.exports;\n var AMD = typeof define === 'function' && define.amd;\n var ARRAY_BUFFER = !root.JS_SHA3_NO_ARRAY_BUFFER && typeof ArrayBuffer !== 'undefined';\n var HEX_CHARS = '0123456789abcdef'.split('');\n var SHAKE_PADDING = [31, 7936, 2031616, 520093696];\n var CSHAKE_PADDING = [4, 1024, 262144, 67108864];\n var KECCAK_PADDING = [1, 256, 65536, 16777216];\n var PADDING = [6, 1536, 393216, 100663296];\n var SHIFT = [0, 8, 16, 24];\n var RC = [1, 0, 32898, 0, 32906, 2147483648, 2147516416, 2147483648, 32907, 0, 2147483649,\n 0, 2147516545, 2147483648, 32777, 2147483648, 138, 0, 136, 0, 2147516425, 0,\n 2147483658, 0, 2147516555, 0, 139, 2147483648, 32905, 2147483648, 32771,\n 2147483648, 32770, 2147483648, 128, 2147483648, 32778, 0, 2147483658, 2147483648,\n 2147516545, 2147483648, 32896, 2147483648, 2147483649, 0, 2147516424, 2147483648];\n var BITS = [224, 256, 384, 512];\n var SHAKE_BITS = [128, 256];\n var OUTPUT_TYPES = ['hex', 'buffer', 'arrayBuffer', 'array', 'digest'];\n var CSHAKE_BYTEPAD = {\n '128': 168,\n '256': 136\n };\n\n if (root.JS_SHA3_NO_NODE_JS || !Array.isArray) {\n Array.isArray = function (obj) {\n return Object.prototype.toString.call(obj) === '[object Array]';\n };\n }\n\n if (ARRAY_BUFFER && (root.JS_SHA3_NO_ARRAY_BUFFER_IS_VIEW || !ArrayBuffer.isView)) {\n ArrayBuffer.isView = function (obj) {\n return typeof obj === 'object' && obj.buffer && obj.buffer.constructor === ArrayBuffer;\n };\n }\n\n var createOutputMethod = function (bits, padding, outputType) {\n return function (message) {\n return new Keccak(bits, padding, bits).update(message)[outputType]();\n };\n };\n\n var createShakeOutputMethod = function (bits, padding, outputType) {\n return function (message, outputBits) {\n return new Keccak(bits, padding, outputBits).update(message)[outputType]();\n };\n };\n\n var createCshakeOutputMethod = function (bits, padding, outputType) {\n return function (message, outputBits, n, s) {\n return methods['cshake' + bits].update(message, outputBits, n, s)[outputType]();\n };\n };\n\n var createKmacOutputMethod = function (bits, padding, outputType) {\n return function (key, message, outputBits, s) {\n return methods['kmac' + bits].update(key, message, outputBits, s)[outputType]();\n };\n };\n\n var createOutputMethods = function (method, createMethod, bits, padding) {\n for (var i = 0; i < OUTPUT_TYPES.length; ++i) {\n var type = OUTPUT_TYPES[i];\n method[type] = createMethod(bits, padding, type);\n }\n return method;\n };\n\n var createMethod = function (bits, padding) {\n var method = createOutputMethod(bits, padding, 'hex');\n method.create = function () {\n return new Keccak(bits, padding, bits);\n };\n method.update = function (message) {\n return method.create().update(message);\n };\n return createOutputMethods(method, createOutputMethod, bits, padding);\n };\n\n var createShakeMethod = function (bits, padding) {\n var method = createShakeOutputMethod(bits, padding, 'hex');\n method.create = function (outputBits) {\n return new Keccak(bits, padding, outputBits);\n };\n method.update = function (message, outputBits) {\n return method.create(outputBits).update(message);\n };\n return createOutputMethods(method, createShakeOutputMethod, bits, padding);\n };\n\n var createCshakeMethod = function (bits, padding) {\n var w = CSHAKE_BYTEPAD[bits];\n var method = createCshakeOutputMethod(bits, padding, 'hex');\n method.create = function (outputBits, n, s) {\n if (!n && !s) {\n return methods['shake' + bits].create(outputBits);\n } else {\n return new Keccak(bits, padding, outputBits).bytepad([n, s], w);\n }\n };\n method.update = function (message, outputBits, n, s) {\n return method.create(outputBits, n, s).update(message);\n };\n return createOutputMethods(method, createCshakeOutputMethod, bits, padding);\n };\n\n var createKmacMethod = function (bits, padding) {\n var w = CSHAKE_BYTEPAD[bits];\n var method = createKmacOutputMethod(bits, padding, 'hex');\n method.create = function (key, outputBits, s) {\n return new Kmac(bits, padding, outputBits).bytepad(['KMAC', s], w).bytepad([key], w);\n };\n method.update = function (key, message, outputBits, s) {\n return method.create(key, outputBits, s).update(message);\n };\n return createOutputMethods(method, createKmacOutputMethod, bits, padding);\n };\n\n var algorithms = [\n { name: 'keccak', padding: KECCAK_PADDING, bits: BITS, createMethod: createMethod },\n { name: 'sha3', padding: PADDING, bits: BITS, createMethod: createMethod },\n { name: 'shake', padding: SHAKE_PADDING, bits: SHAKE_BITS, createMethod: createShakeMethod },\n { name: 'cshake', padding: CSHAKE_PADDING, bits: SHAKE_BITS, createMethod: createCshakeMethod },\n { name: 'kmac', padding: CSHAKE_PADDING, bits: SHAKE_BITS, createMethod: createKmacMethod }\n ];\n\n var methods = {}, methodNames = [];\n\n for (var i = 0; i < algorithms.length; ++i) {\n var algorithm = algorithms[i];\n var bits = algorithm.bits;\n for (var j = 0; j < bits.length; ++j) {\n var methodName = algorithm.name + '_' + bits[j];\n methodNames.push(methodName);\n methods[methodName] = algorithm.createMethod(bits[j], algorithm.padding);\n if (algorithm.name !== 'sha3') {\n var newMethodName = algorithm.name + bits[j];\n methodNames.push(newMethodName);\n methods[newMethodName] = methods[methodName];\n }\n }\n }\n\n function Keccak(bits, padding, outputBits) {\n this.blocks = [];\n this.s = [];\n this.padding = padding;\n this.outputBits = outputBits;\n this.reset = true;\n this.finalized = false;\n this.block = 0;\n this.start = 0;\n this.blockCount = (1600 - (bits << 1)) >> 5;\n this.byteCount = this.blockCount << 2;\n this.outputBlocks = outputBits >> 5;\n this.extraBytes = (outputBits & 31) >> 3;\n\n for (var i = 0; i < 50; ++i) {\n this.s[i] = 0;\n }\n }\n\n Keccak.prototype.update = function (message) {\n if (this.finalized) {\n throw new Error(FINALIZE_ERROR);\n }\n var notString, type = typeof message;\n if (type !== 'string') {\n if (type === 'object') {\n if (message === null) {\n throw new Error(INPUT_ERROR);\n } else if (ARRAY_BUFFER && message.constructor === ArrayBuffer) {\n message = new Uint8Array(message);\n } else if (!Array.isArray(message)) {\n if (!ARRAY_BUFFER || !ArrayBuffer.isView(message)) {\n throw new Error(INPUT_ERROR);\n }\n }\n } else {\n throw new Error(INPUT_ERROR);\n }\n notString = true;\n }\n var blocks = this.blocks, byteCount = this.byteCount, length = message.length,\n blockCount = this.blockCount, index = 0, s = this.s, i, code;\n\n while (index < length) {\n if (this.reset) {\n this.reset = false;\n blocks[0] = this.block;\n for (i = 1; i < blockCount + 1; ++i) {\n blocks[i] = 0;\n }\n }\n if (notString) {\n for (i = this.start; index < length && i < byteCount; ++index) {\n blocks[i >> 2] |= message[index] << SHIFT[i++ & 3];\n }\n } else {\n for (i = this.start; index < length && i < byteCount; ++index) {\n code = message.charCodeAt(index);\n if (code < 0x80) {\n blocks[i >> 2] |= code << SHIFT[i++ & 3];\n } else if (code < 0x800) {\n blocks[i >> 2] |= (0xc0 | (code >> 6)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | (code & 0x3f)) << SHIFT[i++ & 3];\n } else if (code < 0xd800 || code >= 0xe000) {\n blocks[i >> 2] |= (0xe0 | (code >> 12)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | ((code >> 6) & 0x3f)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | (code & 0x3f)) << SHIFT[i++ & 3];\n } else {\n code = 0x10000 + (((code & 0x3ff) << 10) | (message.charCodeAt(++index) & 0x3ff));\n blocks[i >> 2] |= (0xf0 | (code >> 18)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | ((code >> 12) & 0x3f)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | ((code >> 6) & 0x3f)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | (code & 0x3f)) << SHIFT[i++ & 3];\n }\n }\n }\n this.lastByteIndex = i;\n if (i >= byteCount) {\n this.start = i - byteCount;\n this.block = blocks[blockCount];\n for (i = 0; i < blockCount; ++i) {\n s[i] ^= blocks[i];\n }\n f(s);\n this.reset = true;\n } else {\n this.start = i;\n }\n }\n return this;\n };\n\n Keccak.prototype.encode = function (x, right) {\n var o = x & 255, n = 1;\n var bytes = [o];\n x = x >> 8;\n o = x & 255;\n while (o > 0) {\n bytes.unshift(o);\n x = x >> 8;\n o = x & 255;\n ++n;\n }\n if (right) {\n bytes.push(n);\n } else {\n bytes.unshift(n);\n }\n this.update(bytes);\n return bytes.length;\n };\n\n Keccak.prototype.encodeString = function (str) {\n var notString, type = typeof str;\n if (type !== 'string') {\n if (type === 'object') {\n if (str === null) {\n throw new Error(INPUT_ERROR);\n } else if (ARRAY_BUFFER && str.constructor === ArrayBuffer) {\n str = new Uint8Array(str);\n } else if (!Array.isArray(str)) {\n if (!ARRAY_BUFFER || !ArrayBuffer.isView(str)) {\n throw new Error(INPUT_ERROR);\n }\n }\n } else {\n throw new Error(INPUT_ERROR);\n }\n notString = true;\n }\n var bytes = 0, length = str.length;\n if (notString) {\n bytes = length;\n } else {\n for (var i = 0; i < str.length; ++i) {\n var code = str.charCodeAt(i);\n if (code < 0x80) {\n bytes += 1;\n } else if (code < 0x800) {\n bytes += 2;\n } else if (code < 0xd800 || code >= 0xe000) {\n bytes += 3;\n } else {\n code = 0x10000 + (((code & 0x3ff) << 10) | (str.charCodeAt(++i) & 0x3ff));\n bytes += 4;\n }\n }\n }\n bytes += this.encode(bytes * 8);\n this.update(str);\n return bytes;\n };\n\n Keccak.prototype.bytepad = function (strs, w) {\n var bytes = this.encode(w);\n for (var i = 0; i < strs.length; ++i) {\n bytes += this.encodeString(strs[i]);\n }\n var paddingBytes = w - bytes % w;\n var zeros = [];\n zeros.length = paddingBytes;\n this.update(zeros);\n return this;\n };\n\n Keccak.prototype.finalize = function () {\n if (this.finalized) {\n return;\n }\n this.finalized = true;\n var blocks = this.blocks, i = this.lastByteIndex, blockCount = this.blockCount, s = this.s;\n blocks[i >> 2] |= this.padding[i & 3];\n if (this.lastByteIndex === this.byteCount) {\n blocks[0] = blocks[blockCount];\n for (i = 1; i < blockCount + 1; ++i) {\n blocks[i] = 0;\n }\n }\n blocks[blockCount - 1] |= 0x80000000;\n for (i = 0; i < blockCount; ++i) {\n s[i] ^= blocks[i];\n }\n f(s);\n };\n\n Keccak.prototype.toString = Keccak.prototype.hex = function () {\n this.finalize();\n\n var blockCount = this.blockCount, s = this.s, outputBlocks = this.outputBlocks,\n extraBytes = this.extraBytes, i = 0, j = 0;\n var hex = '', block;\n while (j < outputBlocks) {\n for (i = 0; i < blockCount && j < outputBlocks; ++i, ++j) {\n block = s[i];\n hex += HEX_CHARS[(block >> 4) & 0x0F] + HEX_CHARS[block & 0x0F] +\n HEX_CHARS[(block >> 12) & 0x0F] + HEX_CHARS[(block >> 8) & 0x0F] +\n HEX_CHARS[(block >> 20) & 0x0F] + HEX_CHARS[(block >> 16) & 0x0F] +\n HEX_CHARS[(block >> 28) & 0x0F] + HEX_CHARS[(block >> 24) & 0x0F];\n }\n if (j % blockCount === 0) {\n f(s);\n i = 0;\n }\n }\n if (extraBytes) {\n block = s[i];\n hex += HEX_CHARS[(block >> 4) & 0x0F] + HEX_CHARS[block & 0x0F];\n if (extraBytes > 1) {\n hex += HEX_CHARS[(block >> 12) & 0x0F] + HEX_CHARS[(block >> 8) & 0x0F];\n }\n if (extraBytes > 2) {\n hex += HEX_CHARS[(block >> 20) & 0x0F] + HEX_CHARS[(block >> 16) & 0x0F];\n }\n }\n return hex;\n };\n\n Keccak.prototype.arrayBuffer = function () {\n this.finalize();\n\n var blockCount = this.blockCount, s = this.s, outputBlocks = this.outputBlocks,\n extraBytes = this.extraBytes, i = 0, j = 0;\n var bytes = this.outputBits >> 3;\n var buffer;\n if (extraBytes) {\n buffer = new ArrayBuffer((outputBlocks + 1) << 2);\n } else {\n buffer = new ArrayBuffer(bytes);\n }\n var array = new Uint32Array(buffer);\n while (j < outputBlocks) {\n for (i = 0; i < blockCount && j < outputBlocks; ++i, ++j) {\n array[j] = s[i];\n }\n if (j % blockCount === 0) {\n f(s);\n }\n }\n if (extraBytes) {\n array[i] = s[i];\n buffer = buffer.slice(0, bytes);\n }\n return buffer;\n };\n\n Keccak.prototype.buffer = Keccak.prototype.arrayBuffer;\n\n Keccak.prototype.digest = Keccak.prototype.array = function () {\n this.finalize();\n\n var blockCount = this.blockCount, s = this.s, outputBlocks = this.outputBlocks,\n extraBytes = this.extraBytes, i = 0, j = 0;\n var array = [], offset, block;\n while (j < outputBlocks) {\n for (i = 0; i < blockCount && j < outputBlocks; ++i, ++j) {\n offset = j << 2;\n block = s[i];\n array[offset] = block & 0xFF;\n array[offset + 1] = (block >> 8) & 0xFF;\n array[offset + 2] = (block >> 16) & 0xFF;\n array[offset + 3] = (block >> 24) & 0xFF;\n }\n if (j % blockCount === 0) {\n f(s);\n }\n }\n if (extraBytes) {\n offset = j << 2;\n block = s[i];\n array[offset] = block & 0xFF;\n if (extraBytes > 1) {\n array[offset + 1] = (block >> 8) & 0xFF;\n }\n if (extraBytes > 2) {\n array[offset + 2] = (block >> 16) & 0xFF;\n }\n }\n return array;\n };\n\n function Kmac(bits, padding, outputBits) {\n Keccak.call(this, bits, padding, outputBits);\n }\n\n Kmac.prototype = new Keccak();\n\n Kmac.prototype.finalize = function () {\n this.encode(this.outputBits, true);\n return Keccak.prototype.finalize.call(this);\n };\n\n var f = function (s) {\n var h, l, n, c0, c1, c2, c3, c4, c5, c6, c7, c8, c9,\n b0, b1, b2, b3, b4, b5, b6, b7, b8, b9, b10, b11, b12, b13, b14, b15, b16, b17,\n b18, b19, b20, b21, b22, b23, b24, b25, b26, b27, b28, b29, b30, b31, b32, b33,\n b34, b35, b36, b37, b38, b39, b40, b41, b42, b43, b44, b45, b46, b47, b48, b49;\n for (n = 0; n < 48; n += 2) {\n c0 = s[0] ^ s[10] ^ s[20] ^ s[30] ^ s[40];\n c1 = s[1] ^ s[11] ^ s[21] ^ s[31] ^ s[41];\n c2 = s[2] ^ s[12] ^ s[22] ^ s[32] ^ s[42];\n c3 = s[3] ^ s[13] ^ s[23] ^ s[33] ^ s[43];\n c4 = s[4] ^ s[14] ^ s[24] ^ s[34] ^ s[44];\n c5 = s[5] ^ s[15] ^ s[25] ^ s[35] ^ s[45];\n c6 = s[6] ^ s[16] ^ s[26] ^ s[36] ^ s[46];\n c7 = s[7] ^ s[17] ^ s[27] ^ s[37] ^ s[47];\n c8 = s[8] ^ s[18] ^ s[28] ^ s[38] ^ s[48];\n c9 = s[9] ^ s[19] ^ s[29] ^ s[39] ^ s[49];\n\n h = c8 ^ ((c2 << 1) | (c3 >>> 31));\n l = c9 ^ ((c3 << 1) | (c2 >>> 31));\n s[0] ^= h;\n s[1] ^= l;\n s[10] ^= h;\n s[11] ^= l;\n s[20] ^= h;\n s[21] ^= l;\n s[30] ^= h;\n s[31] ^= l;\n s[40] ^= h;\n s[41] ^= l;\n h = c0 ^ ((c4 << 1) | (c5 >>> 31));\n l = c1 ^ ((c5 << 1) | (c4 >>> 31));\n s[2] ^= h;\n s[3] ^= l;\n s[12] ^= h;\n s[13] ^= l;\n s[22] ^= h;\n s[23] ^= l;\n s[32] ^= h;\n s[33] ^= l;\n s[42] ^= h;\n s[43] ^= l;\n h = c2 ^ ((c6 << 1) | (c7 >>> 31));\n l = c3 ^ ((c7 << 1) | (c6 >>> 31));\n s[4] ^= h;\n s[5] ^= l;\n s[14] ^= h;\n s[15] ^= l;\n s[24] ^= h;\n s[25] ^= l;\n s[34] ^= h;\n s[35] ^= l;\n s[44] ^= h;\n s[45] ^= l;\n h = c4 ^ ((c8 << 1) | (c9 >>> 31));\n l = c5 ^ ((c9 << 1) | (c8 >>> 31));\n s[6] ^= h;\n s[7] ^= l;\n s[16] ^= h;\n s[17] ^= l;\n s[26] ^= h;\n s[27] ^= l;\n s[36] ^= h;\n s[37] ^= l;\n s[46] ^= h;\n s[47] ^= l;\n h = c6 ^ ((c0 << 1) | (c1 >>> 31));\n l = c7 ^ ((c1 << 1) | (c0 >>> 31));\n s[8] ^= h;\n s[9] ^= l;\n s[18] ^= h;\n s[19] ^= l;\n s[28] ^= h;\n s[29] ^= l;\n s[38] ^= h;\n s[39] ^= l;\n s[48] ^= h;\n s[49] ^= l;\n\n b0 = s[0];\n b1 = s[1];\n b32 = (s[11] << 4) | (s[10] >>> 28);\n b33 = (s[10] << 4) | (s[11] >>> 28);\n b14 = (s[20] << 3) | (s[21] >>> 29);\n b15 = (s[21] << 3) | (s[20] >>> 29);\n b46 = (s[31] << 9) | (s[30] >>> 23);\n b47 = (s[30] << 9) | (s[31] >>> 23);\n b28 = (s[40] << 18) | (s[41] >>> 14);\n b29 = (s[41] << 18) | (s[40] >>> 14);\n b20 = (s[2] << 1) | (s[3] >>> 31);\n b21 = (s[3] << 1) | (s[2] >>> 31);\n b2 = (s[13] << 12) | (s[12] >>> 20);\n b3 = (s[12] << 12) | (s[13] >>> 20);\n b34 = (s[22] << 10) | (s[23] >>> 22);\n b35 = (s[23] << 10) | (s[22] >>> 22);\n b16 = (s[33] << 13) | (s[32] >>> 19);\n b17 = (s[32] << 13) | (s[33] >>> 19);\n b48 = (s[42] << 2) | (s[43] >>> 30);\n b49 = (s[43] << 2) | (s[42] >>> 30);\n b40 = (s[5] << 30) | (s[4] >>> 2);\n b41 = (s[4] << 30) | (s[5] >>> 2);\n b22 = (s[14] << 6) | (s[15] >>> 26);\n b23 = (s[15] << 6) | (s[14] >>> 26);\n b4 = (s[25] << 11) | (s[24] >>> 21);\n b5 = (s[24] << 11) | (s[25] >>> 21);\n b36 = (s[34] << 15) | (s[35] >>> 17);\n b37 = (s[35] << 15) | (s[34] >>> 17);\n b18 = (s[45] << 29) | (s[44] >>> 3);\n b19 = (s[44] << 29) | (s[45] >>> 3);\n b10 = (s[6] << 28) | (s[7] >>> 4);\n b11 = (s[7] << 28) | (s[6] >>> 4);\n b42 = (s[17] << 23) | (s[16] >>> 9);\n b43 = (s[16] << 23) | (s[17] >>> 9);\n b24 = (s[26] << 25) | (s[27] >>> 7);\n b25 = (s[27] << 25) | (s[26] >>> 7);\n b6 = (s[36] << 21) | (s[37] >>> 11);\n b7 = (s[37] << 21) | (s[36] >>> 11);\n b38 = (s[47] << 24) | (s[46] >>> 8);\n b39 = (s[46] << 24) | (s[47] >>> 8);\n b30 = (s[8] << 27) | (s[9] >>> 5);\n b31 = (s[9] << 27) | (s[8] >>> 5);\n b12 = (s[18] << 20) | (s[19] >>> 12);\n b13 = (s[19] << 20) | (s[18] >>> 12);\n b44 = (s[29] << 7) | (s[28] >>> 25);\n b45 = (s[28] << 7) | (s[29] >>> 25);\n b26 = (s[38] << 8) | (s[39] >>> 24);\n b27 = (s[39] << 8) | (s[38] >>> 24);\n b8 = (s[48] << 14) | (s[49] >>> 18);\n b9 = (s[49] << 14) | (s[48] >>> 18);\n\n s[0] = b0 ^ (~b2 & b4);\n s[1] = b1 ^ (~b3 & b5);\n s[10] = b10 ^ (~b12 & b14);\n s[11] = b11 ^ (~b13 & b15);\n s[20] = b20 ^ (~b22 & b24);\n s[21] = b21 ^ (~b23 & b25);\n s[30] = b30 ^ (~b32 & b34);\n s[31] = b31 ^ (~b33 & b35);\n s[40] = b40 ^ (~b42 & b44);\n s[41] = b41 ^ (~b43 & b45);\n s[2] = b2 ^ (~b4 & b6);\n s[3] = b3 ^ (~b5 & b7);\n s[12] = b12 ^ (~b14 & b16);\n s[13] = b13 ^ (~b15 & b17);\n s[22] = b22 ^ (~b24 & b26);\n s[23] = b23 ^ (~b25 & b27);\n s[32] = b32 ^ (~b34 & b36);\n s[33] = b33 ^ (~b35 & b37);\n s[42] = b42 ^ (~b44 & b46);\n s[43] = b43 ^ (~b45 & b47);\n s[4] = b4 ^ (~b6 & b8);\n s[5] = b5 ^ (~b7 & b9);\n s[14] = b14 ^ (~b16 & b18);\n s[15] = b15 ^ (~b17 & b19);\n s[24] = b24 ^ (~b26 & b28);\n s[25] = b25 ^ (~b27 & b29);\n s[34] = b34 ^ (~b36 & b38);\n s[35] = b35 ^ (~b37 & b39);\n s[44] = b44 ^ (~b46 & b48);\n s[45] = b45 ^ (~b47 & b49);\n s[6] = b6 ^ (~b8 & b0);\n s[7] = b7 ^ (~b9 & b1);\n s[16] = b16 ^ (~b18 & b10);\n s[17] = b17 ^ (~b19 & b11);\n s[26] = b26 ^ (~b28 & b20);\n s[27] = b27 ^ (~b29 & b21);\n s[36] = b36 ^ (~b38 & b30);\n s[37] = b37 ^ (~b39 & b31);\n s[46] = b46 ^ (~b48 & b40);\n s[47] = b47 ^ (~b49 & b41);\n s[8] = b8 ^ (~b0 & b2);\n s[9] = b9 ^ (~b1 & b3);\n s[18] = b18 ^ (~b10 & b12);\n s[19] = b19 ^ (~b11 & b13);\n s[28] = b28 ^ (~b20 & b22);\n s[29] = b29 ^ (~b21 & b23);\n s[38] = b38 ^ (~b30 & b32);\n s[39] = b39 ^ (~b31 & b33);\n s[48] = b48 ^ (~b40 & b42);\n s[49] = b49 ^ (~b41 & b43);\n\n s[0] ^= RC[n];\n s[1] ^= RC[n + 1];\n }\n };\n\n if (COMMON_JS) {\n module.exports = methods;\n } else {\n for (i = 0; i < methodNames.length; ++i) {\n root[methodNames[i]] = methods[methodNames[i]];\n }\n if (AMD) {\n define(function () {\n return methods;\n });\n }\n }\n})();\n", "\"use strict\";\n\nimport sha3 from \"js-sha3\";\n\nimport { arrayify, BytesLike } from \"@ethersproject/bytes\";\n\nexport function keccak256(data: BytesLike): string {\n return '0x' + sha3.keccak_256(arrayify(data));\n}\n", "export const version = \"rlp/5.7.0\";\n", "\"use strict\";\n\n//See: https://github.com/ethereum/wiki/wiki/RLP\n\nimport { arrayify, BytesLike, hexlify, isBytesLike } from \"@ethersproject/bytes\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\nfunction arrayifyInteger(value: number): Array {\n const result = [];\n while (value) {\n result.unshift(value & 0xff);\n value >>= 8;\n }\n return result;\n}\n\nfunction unarrayifyInteger(data: Uint8Array, offset: number, length: number): number {\n let result = 0;\n for (let i = 0; i < length; i++) {\n result = (result * 256) + data[offset + i];\n }\n return result;\n}\n\nfunction _encode(object: Array | string): Array {\n if (Array.isArray(object)) {\n let payload: Array = [];\n object.forEach(function(child) {\n payload = payload.concat(_encode(child));\n });\n\n if (payload.length <= 55) {\n payload.unshift(0xc0 + payload.length)\n return payload;\n }\n\n const length = arrayifyInteger(payload.length);\n length.unshift(0xf7 + length.length);\n\n return length.concat(payload);\n\n }\n\n if (!isBytesLike(object)) {\n logger.throwArgumentError(\"RLP object must be BytesLike\", \"object\", object);\n }\n\n const data: Array = Array.prototype.slice.call(arrayify(object));\n\n if (data.length === 1 && data[0] <= 0x7f) {\n return data;\n\n } else if (data.length <= 55) {\n data.unshift(0x80 + data.length);\n return data;\n }\n\n const length = arrayifyInteger(data.length);\n length.unshift(0xb7 + length.length);\n\n return length.concat(data);\n}\n\nexport function encode(object: any): string {\n return hexlify(_encode(object));\n}\n\ntype Decoded = {\n result: any;\n consumed: number;\n};\n\nfunction _decodeChildren(data: Uint8Array, offset: number, childOffset: number, length: number): Decoded {\n const result = [];\n\n while (childOffset < offset + 1 + length) {\n const decoded = _decode(data, childOffset);\n\n result.push(decoded.result);\n\n childOffset += decoded.consumed;\n if (childOffset > offset + 1 + length) {\n logger.throwError(\"child data too short\", Logger.errors.BUFFER_OVERRUN, { });\n }\n }\n\n return {consumed: (1 + length), result: result};\n}\n\n// returns { consumed: number, result: Object }\nfunction _decode(data: Uint8Array, offset: number): { consumed: number, result: any } {\n if (data.length === 0) {\n logger.throwError(\"data too short\", Logger.errors.BUFFER_OVERRUN, { });\n }\n\n // Array with extra length prefix\n if (data[offset] >= 0xf8) {\n const lengthLength = data[offset] - 0xf7;\n if (offset + 1 + lengthLength > data.length) {\n logger.throwError(\"data short segment too short\", Logger.errors.BUFFER_OVERRUN, { });\n }\n\n const length = unarrayifyInteger(data, offset + 1, lengthLength);\n if (offset + 1 + lengthLength + length > data.length) {\n logger.throwError(\"data long segment too short\", Logger.errors.BUFFER_OVERRUN, { });\n }\n\n return _decodeChildren(data, offset, offset + 1 + lengthLength, lengthLength + length);\n\n } else if (data[offset] >= 0xc0) {\n const length = data[offset] - 0xc0;\n if (offset + 1 + length > data.length) {\n logger.throwError(\"data array too short\", Logger.errors.BUFFER_OVERRUN, { });\n }\n\n return _decodeChildren(data, offset, offset + 1, length);\n\n } else if (data[offset] >= 0xb8) {\n const lengthLength = data[offset] - 0xb7;\n if (offset + 1 + lengthLength > data.length) {\n logger.throwError(\"data array too short\", Logger.errors.BUFFER_OVERRUN, { });\n }\n\n const length = unarrayifyInteger(data, offset + 1, lengthLength);\n if (offset + 1 + lengthLength + length > data.length) {\n logger.throwError(\"data array too short\", Logger.errors.BUFFER_OVERRUN, { });\n }\n\n const result = hexlify(data.slice(offset + 1 + lengthLength, offset + 1 + lengthLength + length));\n return { consumed: (1 + lengthLength + length), result: result }\n\n } else if (data[offset] >= 0x80) {\n const length = data[offset] - 0x80;\n if (offset + 1 + length > data.length) {\n logger.throwError(\"data too short\", Logger.errors.BUFFER_OVERRUN, { });\n }\n\n const result = hexlify(data.slice(offset + 1, offset + 1 + length));\n return { consumed: (1 + length), result: result }\n }\n return { consumed: 1, result: hexlify(data[offset]) };\n}\n\nexport function decode(data: BytesLike): any {\n const bytes = arrayify(data);\n const decoded = _decode(bytes, 0);\n if (decoded.consumed !== bytes.length) {\n logger.throwArgumentError(\"invalid rlp data\", \"data\", data);\n }\n return decoded.result;\n}\n\n", "export const version = \"address/5.7.0\";\n", "\"use strict\";\n\nimport { arrayify, BytesLike, concat, hexDataLength, hexDataSlice, isHexString, stripZeros } from \"@ethersproject/bytes\";\nimport { BigNumber, BigNumberish, _base16To36, _base36To16 } from \"@ethersproject/bignumber\";\nimport { keccak256 } from \"@ethersproject/keccak256\";\nimport { encode } from \"@ethersproject/rlp\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\nfunction getChecksumAddress(address: string): string {\n if (!isHexString(address, 20)) {\n logger.throwArgumentError(\"invalid address\", \"address\", address);\n }\n\n address = address.toLowerCase();\n\n const chars = address.substring(2).split(\"\");\n\n const expanded = new Uint8Array(40);\n for (let i = 0; i < 40; i++) {\n expanded[i] = chars[i].charCodeAt(0);\n }\n\n const hashed = arrayify(keccak256(expanded));\n\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\n return \"0x\" + chars.join(\"\");\n}\n\n// Shims for environments that are missing some required constants and functions\nconst MAX_SAFE_INTEGER: number = 0x1fffffffffffff;\n\nfunction log10(x: number): number {\n if (Math.log10) { return Math.log10(x); }\n return Math.log(x) / Math.LN10;\n}\n\n\n// See: https://en.wikipedia.org/wiki/International_Bank_Account_Number\n\n// Create lookup table\nconst ibanLookup: { [character: string]: string } = { };\nfor (let i = 0; i < 10; i++) { ibanLookup[String(i)] = String(i); }\nfor (let i = 0; i < 26; i++) { ibanLookup[String.fromCharCode(65 + i)] = String(10 + i); }\n\n// How many decimal digits can we process? (for 64-bit float, this is 15)\nconst safeDigits = Math.floor(log10(MAX_SAFE_INTEGER));\n\nfunction ibanChecksum(address: string): string {\n address = address.toUpperCase();\n address = address.substring(4) + address.substring(0, 2) + \"00\";\n\n let expanded = address.split(\"\").map((c) => { return ibanLookup[c]; }).join(\"\");\n\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\n let checksum = String(98 - (parseInt(expanded, 10) % 97));\n while (checksum.length < 2) { checksum = \"0\" + checksum; }\n\n return checksum;\n};\n\nexport function getAddress(address: string): string {\n let result = null;\n\n if (typeof(address) !== \"string\") {\n logger.throwArgumentError(\"invalid address\", \"address\", address);\n }\n\n if (address.match(/^(0x)?[0-9a-fA-F]{40}$/)) {\n\n // Missing the 0x prefix\n if (address.substring(0, 2) !== \"0x\") { address = \"0x\" + address; }\n\n result = getChecksumAddress(address);\n\n // It is a checksummed address with a bad checksum\n if (address.match(/([A-F].*[a-f])|([a-f].*[A-F])/) && result !== address) {\n logger.throwArgumentError(\"bad address checksum\", \"address\", address);\n }\n\n // Maybe ICAP? (we only support direct mode)\n } else if (address.match(/^XE[0-9]{2}[0-9A-Za-z]{30,31}$/)) {\n\n // It is an ICAP address with a bad checksum\n if (address.substring(2, 4) !== ibanChecksum(address)) {\n logger.throwArgumentError(\"bad icap checksum\", \"address\", address);\n }\n\n result = _base36To16(address.substring(4));\n while (result.length < 40) { result = \"0\" + result; }\n result = getChecksumAddress(\"0x\" + result);\n\n } else {\n logger.throwArgumentError(\"invalid address\", \"address\", address);\n }\n\n return result;\n}\n\nexport function isAddress(address: string): boolean {\n try {\n getAddress(address);\n return true;\n } catch (error) { }\n return false;\n}\n\nexport function getIcapAddress(address: string): string {\n let base36 = _base16To36(getAddress(address).substring(2)).toUpperCase();\n while (base36.length < 30) { base36 = \"0\" + base36; }\n return \"XE\" + ibanChecksum(\"XE00\" + base36) + base36;\n}\n\n// http://ethereum.stackexchange.com/questions/760/how-is-the-address-of-an-ethereum-contract-computed\nexport function getContractAddress(transaction: { from: string, nonce: BigNumberish }) {\n let from: string = null;\n try {\n from = getAddress(transaction.from);\n } catch (error) {\n logger.throwArgumentError(\"missing from address\", \"transaction\", transaction);\n }\n\n const nonce = stripZeros(arrayify(BigNumber.from(transaction.nonce).toHexString()));\n\n return getAddress(hexDataSlice(keccak256(encode([ from, nonce ])), 12));\n}\n\nexport function getCreate2Address(from: string, salt: BytesLike, initCodeHash: BytesLike): string {\n if (hexDataLength(salt) !== 32) {\n logger.throwArgumentError(\"salt must be 32 bytes\", \"salt\", salt);\n }\n if (hexDataLength(initCodeHash) !== 32) {\n logger.throwArgumentError(\"initCodeHash must be 32 bytes\", \"initCodeHash\", initCodeHash);\n }\n return getAddress(hexDataSlice(keccak256(concat([ \"0xff\", getAddress(from), salt, initCodeHash ])), 12))\n}\n", "\"use strict\";\n\nimport { getAddress } from \"@ethersproject/address\";\nimport { hexZeroPad } from \"@ethersproject/bytes\";\n\nimport { Coder, Reader, Writer } from \"./abstract-coder\";\n\nexport class AddressCoder extends Coder {\n\n constructor(localName: string) {\n super(\"address\", \"address\", localName, false);\n }\n\n defaultValue(): string {\n return \"0x0000000000000000000000000000000000000000\";\n }\n\n encode(writer: Writer, value: string): number {\n try {\n value = getAddress(value)\n } catch (error) {\n this._throwError(error.message, value);\n }\n return writer.writeValue(value);\n }\n\n decode(reader: Reader): any {\n return getAddress(hexZeroPad(reader.readValue().toHexString(), 20));\n }\n}\n\n", "\"use strict\";\n\nimport { Coder, Reader, Writer } from \"./abstract-coder\";\n\n// Clones the functionality of an existing Coder, but without a localName\nexport class AnonymousCoder extends Coder {\n private coder: Coder;\n\n constructor(coder: Coder) {\n super(coder.name, coder.type, undefined, coder.dynamic);\n this.coder = coder;\n }\n\n defaultValue(): any {\n return this.coder.defaultValue();\n }\n\n encode(writer: Writer, value: any): number {\n return this.coder.encode(writer, value);\n }\n\n decode(reader: Reader): any {\n return this.coder.decode(reader);\n }\n}\n", "\"use strict\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"../_version\";\nconst logger = new Logger(version);\n\nimport { Coder, Reader, Result, Writer } from \"./abstract-coder\";\nimport { AnonymousCoder } from \"./anonymous\";\n\nexport function pack(writer: Writer, coders: ReadonlyArray, values: Array | { [ name: string ]: any }): number {\n let arrayValues: Array = null;\n\n if (Array.isArray(values)) {\n arrayValues = values;\n\n } else if (values && typeof(values) === \"object\") {\n let unique: { [ name: string ]: boolean } = { };\n\n arrayValues = coders.map((coder) => {\n const name = coder.localName;\n if (!name) {\n logger.throwError(\"cannot encode object for signature with missing names\", Logger.errors.INVALID_ARGUMENT, {\n argument: \"values\",\n coder: coder,\n value: values\n });\n }\n\n if (unique[name]) {\n logger.throwError(\"cannot encode object for signature with duplicate names\", Logger.errors.INVALID_ARGUMENT, {\n argument: \"values\",\n coder: coder,\n value: values\n });\n }\n\n unique[name] = true;\n\n return values[name];\n });\n\n } else {\n logger.throwArgumentError(\"invalid tuple value\", \"tuple\", values);\n }\n\n if (coders.length !== arrayValues.length) {\n logger.throwArgumentError(\"types/value length mismatch\", \"tuple\", values);\n }\n\n let staticWriter = new Writer(writer.wordSize);\n let dynamicWriter = new Writer(writer.wordSize);\n\n let updateFuncs: Array<(baseOffset: number) => void> = [];\n coders.forEach((coder, index) => {\n let value = arrayValues[index];\n\n if (coder.dynamic) {\n // Get current dynamic offset (for the future pointer)\n let dynamicOffset = dynamicWriter.length;\n\n // Encode the dynamic value into the dynamicWriter\n coder.encode(dynamicWriter, value);\n\n // Prepare to populate the correct offset once we are done\n let updateFunc = staticWriter.writeUpdatableValue();\n updateFuncs.push((baseOffset: number) => {\n updateFunc(baseOffset + dynamicOffset);\n });\n\n } else {\n coder.encode(staticWriter, value);\n }\n });\n\n // Backfill all the dynamic offsets, now that we know the static length\n updateFuncs.forEach((func) => { func(staticWriter.length); });\n\n let length = writer.appendWriter(staticWriter);\n length += writer.appendWriter(dynamicWriter);\n return length;\n}\n\nexport function unpack(reader: Reader, coders: Array): Result {\n let values: any = [];\n\n // A reader anchored to this base\n let baseReader = reader.subReader(0);\n\n coders.forEach((coder) => {\n let value: any = null;\n\n if (coder.dynamic) {\n let offset = reader.readValue();\n let offsetReader = baseReader.subReader(offset.toNumber());\n try {\n value = coder.decode(offsetReader);\n } catch (error) {\n // Cannot recover from this\n if (error.code === Logger.errors.BUFFER_OVERRUN) { throw error; }\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 } catch (error) {\n // Cannot recover from this\n if (error.code === Logger.errors.BUFFER_OVERRUN) { throw error; }\n value = error;\n value.baseType = coder.name;\n value.name = coder.localName;\n value.type = coder.type;\n }\n }\n\n if (value != undefined) {\n values.push(value);\n }\n });\n\n // We only output named properties for uniquely named coders\n const uniqueNames = coders.reduce((accum, coder) => {\n const name = coder.localName;\n if (name) {\n if (!accum[name]) { accum[name] = 0; }\n accum[name]++;\n }\n return accum;\n }, <{ [ name: string ]: number }>{ });\n\n // Add any named parameters (i.e. tuples)\n coders.forEach((coder: Coder, index: number) => {\n let name = coder.localName;\n if (!name || uniqueNames[name] !== 1) { return; }\n\n if (name === \"length\") { name = \"_length\"; }\n\n if (values[name] != null) { return; }\n\n const value = values[index];\n\n if (value instanceof Error) {\n Object.defineProperty(values, name, {\n enumerable: true,\n get: () => { throw value; }\n });\n } else {\n values[name] = value;\n }\n });\n\n for (let i = 0; i < values.length; i++) {\n const value = values[i];\n if (value instanceof Error) {\n Object.defineProperty(values, i, {\n enumerable: true,\n get: () => { throw value; }\n });\n }\n }\n\n return Object.freeze(values);\n}\n\n\nexport class ArrayCoder extends Coder {\n readonly coder: Coder;\n readonly length: number;\n\n constructor(coder: Coder, length: number, localName: string) {\n const type = (coder.type + \"[\" + (length >= 0 ? length: \"\") + \"]\");\n const dynamic = (length === -1 || coder.dynamic);\n super(\"array\", type, localName, dynamic);\n\n this.coder = coder;\n this.length = length;\n }\n\n defaultValue(): Array {\n // Verifies the child coder is valid (even if the array is dynamic or 0-length)\n const defaultChild = this.coder.defaultValue();\n\n const result: Array = [];\n for (let i = 0; i < this.length; i++) {\n result.push(defaultChild);\n }\n return result;\n }\n\n encode(writer: Writer, value: Array): number {\n if (!Array.isArray(value)) {\n this._throwError(\"expected array value\", value);\n }\n\n let count = this.length;\n\n if (count === -1) {\n count = value.length;\n writer.writeValue(value.length);\n }\n\n logger.checkArgumentCount(value.length, count, \"coder array\" + (this.localName? (\" \"+ this.localName): \"\"));\n\n let coders = [];\n for (let i = 0; i < value.length; i++) { coders.push(this.coder); }\n\n return pack(writer, coders, value);\n }\n\n decode(reader: Reader): any {\n let count = this.length;\n if (count === -1) {\n count = reader.readValue().toNumber();\n\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 if (count * 32 > reader._data.length) {\n logger.throwError(\"insufficient data length\", Logger.errors.BUFFER_OVERRUN, {\n length: reader._data.length,\n count: count\n });\n }\n }\n let coders = [];\n for (let i = 0; i < count; i++) { coders.push(new AnonymousCoder(this.coder)); }\n\n return reader.coerce(this.name, unpack(reader, coders));\n }\n}\n\n", "\"use strict\";\n\nimport { Coder, Reader, Writer } from \"./abstract-coder\";\n\nexport class BooleanCoder extends Coder {\n\n constructor(localName: string) {\n super(\"bool\", \"bool\", localName, false);\n }\n\n defaultValue(): boolean {\n return false;\n }\n\n encode(writer: Writer, value: boolean): number {\n return writer.writeValue(value ? 1: 0);\n }\n\n decode(reader: Reader): any {\n return reader.coerce(this.type, !reader.readValue().isZero());\n }\n}\n\n", "\"use strict\";\n\nimport { arrayify, hexlify } from \"@ethersproject/bytes\";\n\nimport { Coder, Reader, Writer } from \"./abstract-coder\";\n\nexport class DynamicBytesCoder extends Coder {\n constructor(type: string, localName: string) {\n super(type, type, localName, true);\n }\n\n defaultValue(): string {\n return \"0x\";\n }\n\n encode(writer: Writer, value: any): number {\n value = arrayify(value);\n let length = writer.writeValue(value.length);\n length += writer.writeBytes(value);\n return length;\n }\n\n decode(reader: Reader): any {\n return reader.readBytes(reader.readValue().toNumber(), true);\n }\n}\n\nexport class BytesCoder extends DynamicBytesCoder {\n constructor(localName: string) {\n super(\"bytes\", localName);\n }\n\n decode(reader: Reader): any {\n return reader.coerce(this.name, hexlify(super.decode(reader)));\n }\n}\n\n\n", "\"use strict\";\n\nimport { arrayify, BytesLike, hexlify } from \"@ethersproject/bytes\";\n\nimport { Coder, Reader, Writer } from \"./abstract-coder\";\n\n// @TODO: Merge this with bytes\nexport class FixedBytesCoder extends Coder {\n readonly size: number;\n\n constructor(size: number, localName: string) {\n let name = \"bytes\" + String(size);\n super(name, name, localName, false);\n this.size = size;\n }\n\n defaultValue(): string {\n return (\"0x0000000000000000000000000000000000000000000000000000000000000000\").substring(0, 2 + this.size * 2);\n }\n\n encode(writer: Writer, value: BytesLike): number {\n let data = arrayify(value);\n if (data.length !== this.size) { this._throwError(\"incorrect data length\", value); }\n return writer.writeBytes(data);\n }\n\n decode(reader: Reader): any {\n return reader.coerce(this.name, hexlify(reader.readBytes(this.size)));\n }\n}\n", "\"use strict\";\n\nimport { Coder, Reader, Writer } from \"./abstract-coder\";\n\nexport class NullCoder extends Coder {\n\n constructor(localName: string) {\n super(\"null\", \"\", localName, false);\n }\n\n defaultValue(): null {\n return null;\n }\n\n encode(writer: Writer, value: any): number {\n if (value != null) { this._throwError(\"not null\", value); }\n return writer.writeBytes([ ]);\n }\n\n decode(reader: Reader): any {\n reader.readBytes(0);\n return reader.coerce(this.name, null);\n }\n}\n", "export const AddressZero = \"0x0000000000000000000000000000000000000000\";\n\n", "import { BigNumber } from \"@ethersproject/bignumber\";\n\nconst NegativeOne: BigNumber = (/*#__PURE__*/BigNumber.from(-1));\nconst Zero: BigNumber = (/*#__PURE__*/BigNumber.from(0));\nconst One: BigNumber = (/*#__PURE__*/BigNumber.from(1));\nconst Two: BigNumber = (/*#__PURE__*/BigNumber.from(2));\nconst WeiPerEther: BigNumber = (/*#__PURE__*/BigNumber.from(\"1000000000000000000\"));\nconst MaxUint256: BigNumber = (/*#__PURE__*/BigNumber.from(\"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"));\n\nconst MinInt256: BigNumber = (/*#__PURE__*/BigNumber.from(\"-0x8000000000000000000000000000000000000000000000000000000000000000\"));\nconst MaxInt256: BigNumber = (/*#__PURE__*/BigNumber.from(\"0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"));\n\nexport {\n NegativeOne,\n Zero,\n One,\n Two,\n WeiPerEther,\n MaxUint256,\n MinInt256,\n MaxInt256,\n};\n", "export const HashZero = \"0x0000000000000000000000000000000000000000000000000000000000000000\";\n\n", "// NFKC (composed) // (decomposed)\nexport const EtherSymbol = \"\\u039e\"; // \"\\uD835\\uDF63\";\n", "\"use strict\";\n\nexport { AddressZero } from \"./addresses\";\nexport {\n NegativeOne,\n Zero,\n One,\n Two,\n WeiPerEther,\n MaxUint256,\n MinInt256,\n MaxInt256\n} from \"./bignumbers\";\nexport { HashZero } from \"./hashes\";\nexport { EtherSymbol } from \"./strings\";\n\n", "\"use strict\";\n\nimport { BigNumber, BigNumberish } from \"@ethersproject/bignumber\";\nimport { MaxUint256, NegativeOne, One, Zero } from \"@ethersproject/constants\";\n\nimport { Coder, Reader, Writer } from \"./abstract-coder\";\n\nexport class NumberCoder extends Coder {\n readonly size: number;\n readonly signed: boolean;\n\n constructor(size: number, signed: boolean, localName: string) {\n const name = ((signed ? \"int\": \"uint\") + (size * 8));\n super(name, name, localName, false);\n\n this.size = size;\n this.signed = signed;\n }\n\n defaultValue(): number {\n return 0;\n }\n\n encode(writer: Writer, value: BigNumberish): number {\n let v = BigNumber.from(value);\n\n // Check bounds are safe for encoding\n let maxUintValue = MaxUint256.mask(writer.wordSize * 8);\n if (this.signed) {\n let bounds = maxUintValue.mask(this.size * 8 - 1);\n if (v.gt(bounds) || v.lt(bounds.add(One).mul(NegativeOne))) {\n this._throwError(\"value out-of-bounds\", value);\n }\n } else if (v.lt(Zero) || v.gt(maxUintValue.mask(this.size * 8))) {\n this._throwError(\"value out-of-bounds\", value);\n }\n\n v = v.toTwos(this.size * 8).mask(this.size * 8);\n\n if (this.signed) {\n v = v.fromTwos(this.size * 8).toTwos(8 * writer.wordSize);\n }\n\n return writer.writeValue(v);\n }\n\n decode(reader: Reader): any {\n let value = reader.readValue().mask(this.size * 8);\n\n if (this.signed) {\n value = value.fromTwos(this.size * 8);\n }\n\n return reader.coerce(this.name, value);\n }\n}\n\n", "export const version = \"strings/5.7.0\";\n", "\"use strict\";\n\nimport { arrayify, BytesLike } from \"@ethersproject/bytes\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\n///////////////////////////////\n\nexport enum UnicodeNormalizationForm {\n current = \"\",\n NFC = \"NFC\",\n NFD = \"NFD\",\n NFKC = \"NFKC\",\n NFKD = \"NFKD\"\n};\n\nexport enum Utf8ErrorReason {\n // A continuation byte was present where there was nothing to continue\n // - offset = the index the codepoint began in\n UNEXPECTED_CONTINUE = \"unexpected continuation byte\",\n\n // An invalid (non-continuation) byte to start a UTF-8 codepoint was found\n // - offset = the index the codepoint began in\n BAD_PREFIX = \"bad codepoint prefix\",\n\n // The string is too short to process the expected codepoint\n // - offset = the index the codepoint began in\n OVERRUN = \"string overrun\",\n\n // A missing continuation byte was expected but not found\n // - offset = the index the continuation byte was expected at\n MISSING_CONTINUE = \"missing continuation byte\",\n\n // The computed code point is outside the range for UTF-8\n // - offset = start of this codepoint\n // - badCodepoint = the computed codepoint; outside the UTF-8 range\n OUT_OF_RANGE = \"out of UTF-8 range\",\n\n // UTF-8 strings may not contain UTF-16 surrogate pairs\n // - offset = start of this codepoint\n // - badCodepoint = the computed codepoint; inside the UTF-16 surrogate range\n UTF16_SURROGATE = \"UTF-16 surrogate\",\n\n // The string is an overlong representation\n // - offset = start of this codepoint\n // - badCodepoint = the computed codepoint; already bounds checked\n OVERLONG = \"overlong representation\",\n};\n\n\nexport type Utf8ErrorFunc = (reason: Utf8ErrorReason, offset: number, bytes: ArrayLike, output: Array, badCodepoint?: number) => number;\n\nfunction errorFunc(reason: Utf8ErrorReason, offset: number, bytes: ArrayLike, output: Array, badCodepoint?: number): number {\n return logger.throwArgumentError(`invalid codepoint at offset ${ offset }; ${ reason }`, \"bytes\", bytes);\n}\n\nfunction ignoreFunc(reason: Utf8ErrorReason, offset: number, bytes: ArrayLike, output: Array, badCodepoint?: number): number {\n\n // If there is an invalid prefix (including stray continuation), skip any additional continuation bytes\n if (reason === Utf8ErrorReason.BAD_PREFIX || reason === Utf8ErrorReason.UNEXPECTED_CONTINUE) {\n let i = 0;\n for (let o = offset + 1; o < bytes.length; o++) {\n if (bytes[o] >> 6 !== 0x02) { break; }\n i++;\n }\n return i;\n }\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 === Utf8ErrorReason.OVERRUN) {\n return bytes.length - offset - 1;\n }\n\n // Nothing to skip\n return 0;\n}\n\nfunction replaceFunc(reason: Utf8ErrorReason, offset: number, bytes: ArrayLike, output: Array, badCodepoint?: number): number {\n\n // Overlong representations are otherwise \"valid\" code points; just non-deistingtished\n if (reason === Utf8ErrorReason.OVERLONG) {\n output.push(badCodepoint);\n return 0;\n }\n\n // Put the replacement character into the output\n output.push(0xfffd);\n\n // Otherwise, process as if ignoring errors\n return ignoreFunc(reason, offset, bytes, output, badCodepoint);\n}\n\n// Common error handing strategies\nexport const Utf8ErrorFuncs: { [ name: string ]: Utf8ErrorFunc } = Object.freeze({\n error: errorFunc,\n ignore: ignoreFunc,\n replace: replaceFunc\n});\n\n// http://stackoverflow.com/questions/13356493/decode-utf-8-with-javascript#13691499\nfunction getUtf8CodePoints(bytes: BytesLike, onError?: Utf8ErrorFunc): Array {\n if (onError == null) { onError = Utf8ErrorFuncs.error; }\n\n bytes = arrayify(bytes);\n\n const result: Array = [];\n let i = 0;\n\n // Invalid bytes are ignored\n while(i < bytes.length) {\n\n const c = bytes[i++];\n\n // 0xxx xxxx\n if (c >> 7 === 0) {\n result.push(c);\n continue;\n }\n\n // Multibyte; how many bytes left for this character?\n let extraLength = null;\n let overlongMask = null;\n\n // 110x xxxx 10xx xxxx\n if ((c & 0xe0) === 0xc0) {\n extraLength = 1;\n overlongMask = 0x7f;\n\n // 1110 xxxx 10xx xxxx 10xx xxxx\n } else if ((c & 0xf0) === 0xe0) {\n extraLength = 2;\n overlongMask = 0x7ff;\n\n // 1111 0xxx 10xx xxxx 10xx xxxx 10xx xxxx\n } else if ((c & 0xf8) === 0xf0) {\n extraLength = 3;\n overlongMask = 0xffff;\n\n } else {\n if ((c & 0xc0) === 0x80) {\n i += onError(Utf8ErrorReason.UNEXPECTED_CONTINUE, i - 1, bytes, result);\n } else {\n i += onError(Utf8ErrorReason.BAD_PREFIX, i - 1, bytes, result);\n }\n continue;\n }\n\n // Do we have enough bytes in our data?\n if (i - 1 + extraLength >= bytes.length) {\n i += onError(Utf8ErrorReason.OVERRUN, i - 1, bytes, result);\n continue;\n }\n\n // Remove the length prefix from the char\n let res = c & ((1 << (8 - extraLength - 1)) - 1);\n\n for (let j = 0; j < extraLength; j++) {\n let nextChar = bytes[i];\n\n // Invalid continuation byte\n if ((nextChar & 0xc0) != 0x80) {\n i += onError(Utf8ErrorReason.MISSING_CONTINUE, i, bytes, result);\n res = null;\n break;\n };\n\n res = (res << 6) | (nextChar & 0x3f);\n i++;\n }\n\n // See above loop for invalid continuation byte\n if (res === null) { continue; }\n\n // Maximum code point\n if (res > 0x10ffff) {\n i += onError(Utf8ErrorReason.OUT_OF_RANGE, i - 1 - extraLength, bytes, result, res);\n continue;\n }\n\n // Reserved for UTF-16 surrogate halves\n if (res >= 0xd800 && res <= 0xdfff) {\n i += onError(Utf8ErrorReason.UTF16_SURROGATE, i - 1 - extraLength, bytes, result, res);\n continue;\n }\n\n // Check for overlong sequences (more bytes than needed)\n if (res <= overlongMask) {\n i += onError(Utf8ErrorReason.OVERLONG, i - 1 - extraLength, bytes, result, res);\n continue;\n }\n\n result.push(res);\n }\n\n return result;\n}\n\n// http://stackoverflow.com/questions/18729405/how-to-convert-utf8-string-to-byte-array\nexport function toUtf8Bytes(str: string, form: UnicodeNormalizationForm = UnicodeNormalizationForm.current): Uint8Array {\n\n if (form != UnicodeNormalizationForm.current) {\n logger.checkNormalize();\n str = str.normalize(form);\n }\n\n let result = [];\n for (let i = 0; i < str.length; i++) {\n const c = str.charCodeAt(i);\n\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\n if (i >= str.length || (c2 & 0xfc00) !== 0xdc00) {\n throw new Error(\"invalid utf-8 string\");\n }\n\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\n return arrayify(result);\n};\n\nfunction escapeChar(value: number) {\n const hex = (\"0000\" + value.toString(16));\n return \"\\\\u\" + hex.substring(hex.length - 4);\n}\n\nexport function _toEscapedUtf8String(bytes: BytesLike, onError?: Utf8ErrorFunc): string {\n return '\"' + getUtf8CodePoints(bytes, onError).map((codePoint) => {\n if (codePoint < 256) {\n switch (codePoint) {\n case 8: return \"\\\\b\";\n case 9: return \"\\\\t\";\n case 10: return \"\\\\n\"\n case 13: return \"\\\\r\";\n case 34: return \"\\\\\\\"\";\n case 92: return \"\\\\\\\\\";\n }\n\n if (codePoint >= 32 && codePoint < 127) {\n return String.fromCharCode(codePoint);\n }\n }\n\n if (codePoint <= 0xffff) {\n return escapeChar(codePoint);\n }\n\n codePoint -= 0x10000;\n return escapeChar(((codePoint >> 10) & 0x3ff) + 0xd800) + escapeChar((codePoint & 0x3ff) + 0xdc00);\n }).join(\"\") + '\"';\n}\n\nexport function _toUtf8String(codePoints: Array): string {\n return codePoints.map((codePoint) => {\n if (codePoint <= 0xffff) {\n return String.fromCharCode(codePoint);\n }\n codePoint -= 0x10000;\n return String.fromCharCode(\n (((codePoint >> 10) & 0x3ff) + 0xd800),\n ((codePoint & 0x3ff) + 0xdc00)\n );\n }).join(\"\");\n}\n\nexport function toUtf8String(bytes: BytesLike, onError?: Utf8ErrorFunc): string {\n return _toUtf8String(getUtf8CodePoints(bytes, onError));\n}\n\nexport function toUtf8CodePoints(str: string, form: UnicodeNormalizationForm = UnicodeNormalizationForm.current): Array {\n return getUtf8CodePoints(toUtf8Bytes(str, form));\n}\n", "\"use strict\";\n\nimport { HashZero } from \"@ethersproject/constants\";\nimport { arrayify, BytesLike, concat, hexlify } from \"@ethersproject/bytes\";\n\nimport { toUtf8Bytes, toUtf8String } from \"./utf8\";\n\n\nexport function formatBytes32String(text: string): string {\n\n // Get the bytes\n const bytes = toUtf8Bytes(text);\n\n // Check we have room for null-termination\n if (bytes.length > 31) { throw new Error(\"bytes32 string must be less than 32 bytes\"); }\n\n // Zero-pad (implicitly null-terminates)\n return hexlify(concat([ bytes, HashZero ]).slice(0, 32));\n}\n\nexport function parseBytes32String(bytes: BytesLike): string {\n const data = arrayify(bytes);\n\n // Must be 32 bytes with a null-termination\n if (data.length !== 32) { throw new Error(\"invalid bytes32 - not 32 bytes long\"); }\n if (data[31] !== 0) { throw new Error(\"invalid bytes32 string - no null terminator\"); }\n\n // Find the null termination\n let length = 31;\n while (data[length - 1] === 0) { length--; }\n\n // Determine the string value\n return toUtf8String(data.slice(0, length));\n}\n\n", "\"use strict\";\n\nimport { toUtf8CodePoints, _toUtf8String, UnicodeNormalizationForm } from \"./utf8\";\n\ntype Ranged = {\n l: number, // Lo value\n h: number, // High value (less the lo)\n d?: number, // Delta/stride (default: 1)\n s?: number, // Shift (default: 1)\n e?: Array // Exceptions to skip\n};\n\ntype Table = { [ src: number ]: Array };\n\nfunction bytes2(data: string): Array {\n if ((data.length % 4) !== 0) { throw new Error(\"bad data\"); }\n let result = [];\n for (let i = 0; i < data.length; i += 4) {\n result.push(parseInt(data.substring(i, i + 4), 16));\n }\n return result;\n}\n\nfunction createTable(data: string, func?: (value: string) => Array): Table {\n if (!func) {\n func = function(value: string) { return [ parseInt(value, 16) ]; }\n }\n\n let lo = 0;\n\n let result: Table = { };\n data.split(\",\").forEach((pair) => {\n let comps = pair.split(\":\");\n lo += parseInt(comps[0], 16);\n result[lo] = func(comps[1]);\n });\n\n return result;\n}\n\nfunction createRangeTable(data: string): Array {\n let hi = 0;\n return data.split(\",\").map((v) => {\n let comps = v.split(\"-\");\n if (comps.length === 1) {\n comps[1] = \"0\";\n } else if (comps[1] === \"\") {\n comps[1] = \"1\";\n }\n\n let lo = hi + parseInt(comps[0], 16);\n hi = parseInt(comps[1], 16);\n return { l: lo, h: hi };\n });\n}\n\nfunction matchMap(value: number, ranges: Array): Ranged {\n let lo = 0;\n for (let i = 0; i < ranges.length; i++) {\n let range = ranges[i];\n lo += range.l;\n if (value >= lo && value <= lo + range.h && ((value - lo) % (range.d || 1)) === 0) {\n if (range.e && range.e.indexOf(value - lo) !== -1) { continue; }\n return range;\n }\n }\n return null;\n}\n\nconst Table_A_1_ranges = createRangeTable(\"221,13-1b,5f-,40-10,51-f,11-3,3-3,2-2,2-4,8,2,15,2d,28-8,88,48,27-,3-5,11-20,27-,8,28,3-5,12,18,b-a,1c-4,6-16,2-d,2-2,2,1b-4,17-9,8f-,10,f,1f-2,1c-34,33-14e,4,36-,13-,6-2,1a-f,4,9-,3-,17,8,2-2,5-,2,8-,3-,4-8,2-3,3,6-,16-6,2-,7-3,3-,17,8,3,3,3-,2,6-3,3-,4-a,5,2-6,10-b,4,8,2,4,17,8,3,6-,b,4,4-,2-e,2-4,b-10,4,9-,3-,17,8,3-,5-,9-2,3-,4-7,3-3,3,4-3,c-10,3,7-2,4,5-2,3,2,3-2,3-2,4-2,9,4-3,6-2,4,5-8,2-e,d-d,4,9,4,18,b,6-3,8,4,5-6,3-8,3-3,b-11,3,9,4,18,b,6-3,8,4,5-6,3-6,2,3-3,b-11,3,9,4,18,11-3,7-,4,5-8,2-7,3-3,b-11,3,13-2,19,a,2-,8-2,2-3,7,2,9-11,4-b,3b-3,1e-24,3,2-,3,2-,2-5,5,8,4,2,2-,3,e,4-,6,2,7-,b-,3-21,49,23-5,1c-3,9,25,10-,2-2f,23,6,3,8-2,5-5,1b-45,27-9,2a-,2-3,5b-4,45-4,53-5,8,40,2,5-,8,2,5-,28,2,5-,20,2,5-,8,2,5-,8,8,18,20,2,5-,8,28,14-5,1d-22,56-b,277-8,1e-2,52-e,e,8-a,18-8,15-b,e,4,3-b,5e-2,b-15,10,b-5,59-7,2b-555,9d-3,5b-5,17-,7-,27-,7-,9,2,2,2,20-,36,10,f-,7,14-,4,a,54-3,2-6,6-5,9-,1c-10,13-1d,1c-14,3c-,10-6,32-b,240-30,28-18,c-14,a0,115-,3,66-,b-76,5,5-,1d,24,2,5-2,2,8-,35-2,19,f-10,1d-3,311-37f,1b,5a-b,d7-19,d-3,41,57-,68-4,29-3,5f,29-37,2e-2,25-c,2c-2,4e-3,30,78-3,64-,20,19b7-49,51a7-59,48e-2,38-738,2ba5-5b,222f-,3c-94,8-b,6-4,1b,6,2,3,3,6d-20,16e-f,41-,37-7,2e-2,11-f,5-b,18-,b,14,5-3,6,88-,2,bf-2,7-,7-,7-,4-2,8,8-9,8-2ff,20,5-b,1c-b4,27-,27-cbb1,f7-9,28-2,b5-221,56,48,3-,2-,3-,5,d,2,5,3,42,5-,9,8,1d,5,6,2-2,8,153-3,123-3,33-27fd,a6da-5128,21f-5df,3-fffd,3-fffd,3-fffd,3-fffd,3-fffd,3-fffd,3-fffd,3-fffd,3-fffd,3-fffd,3-fffd,3,2-1d,61-ff7d\");\n\n// @TODO: Make this relative...\nconst Table_B_1_flags = \"ad,34f,1806,180b,180c,180d,200b,200c,200d,2060,feff\".split(\",\").map((v) => parseInt(v, 16));\n\nconst Table_B_2_ranges: Array = [\n { h: 25, s: 32, l: 65 },\n { h: 30, s: 32, e: [ 23 ], l: 127 },\n { h: 54, s: 1, e: [ 48 ], l: 64, d: 2 },\n { h: 14, s: 1, l: 57, d: 2 },\n { h: 44, s: 1, l: 17, d: 2 },\n { h: 10, s: 1, e: [ 2, 6, 8 ], l: 61, d: 2 },\n { h: 16, s: 1, l: 68, d: 2 },\n { h: 84, s: 1, e: [ 18, 24, 66 ], l: 19, d: 2 },\n { h: 26, s: 32, e: [ 17 ], l: 435 },\n { h: 22, s: 1, l: 71, d: 2 },\n { h: 15, s: 80, l: 40 },\n { h: 31, s: 32, l: 16 },\n { h: 32, s: 1, l: 80, d: 2 },\n { h: 52, s: 1, l: 42, d: 2 },\n { h: 12, s: 1, l: 55, d: 2 },\n { h: 40, s: 1, e: [ 38 ], l: 15, d: 2 },\n { h: 14, s: 1, l: 48, d: 2 },\n { h: 37, s: 48, l: 49 },\n { h: 148, s: 1, l: 6351, d: 2 },\n { h: 88, s: 1, l: 160, d: 2 },\n { h: 15, s: 16, l: 704 },\n { h: 25, s: 26, l: 854 },\n { h: 25, s: 32, l: 55915 },\n { h: 37, s: 40, l: 1247 },\n { h: 25, s: -119711, l: 53248 },\n { h: 25, s: -119763, l: 52 },\n { h: 25, s: -119815, l: 52 },\n { h: 25, s: -119867, e: [ 1, 4, 5, 7, 8, 11, 12, 17 ], l: 52 },\n { h: 25, s: -119919, l: 52 },\n { h: 24, s: -119971, e: [ 2, 7, 8, 17 ], l: 52 },\n { h: 24, s: -120023, e: [ 2, 7, 13, 15, 16, 17 ], l: 52 },\n { h: 25, s: -120075, l: 52 },\n { h: 25, s: -120127, l: 52 },\n { h: 25, s: -120179, l: 52 },\n { h: 25, s: -120231, l: 52 },\n { h: 25, s: -120283, l: 52 },\n { h: 25, s: -120335, l: 52 },\n { h: 24, s: -119543, e: [ 17 ], l: 56 },\n { h: 24, s: -119601, e: [ 17 ], l: 58 },\n { h: 24, s: -119659, e: [ 17 ], l: 58 },\n { h: 24, s: -119717, e: [ 17 ], l: 58 },\n { h: 24, s: -119775, e: [ 17 ], l: 58 }\n];\nconst Table_B_2_lut_abs = createTable(\"b5:3bc,c3:ff,7:73,2:253,5:254,3:256,1:257,5:259,1:25b,3:260,1:263,2:269,1:268,5:26f,1:272,2:275,7:280,3:283,5:288,3:28a,1:28b,5:292,3f:195,1:1bf,29:19e,125:3b9,8b:3b2,1:3b8,1:3c5,3:3c6,1:3c0,1a:3ba,1:3c1,1:3c3,2:3b8,1:3b5,1bc9:3b9,1c:1f76,1:1f77,f:1f7a,1:1f7b,d:1f78,1:1f79,1:1f7c,1:1f7d,107:63,5:25b,4:68,1:68,1:68,3:69,1:69,1:6c,3:6e,4:70,1:71,1:72,1:72,1:72,7:7a,2:3c9,2:7a,2:6b,1:e5,1:62,1:63,3:65,1:66,2:6d,b:3b3,1:3c0,6:64,1b574:3b8,1a:3c3,20:3b8,1a:3c3,20:3b8,1a:3c3,20:3b8,1a:3c3,20:3b8,1a:3c3\");\nconst Table_B_2_lut_rel = createTable(\"179:1,2:1,2:1,5:1,2:1,a:4f,a:1,8:1,2:1,2:1,3:1,5:1,3:1,4:1,2:1,3:1,4:1,8:2,1:1,2:2,1:1,2:2,27:2,195:26,2:25,1:25,1:25,2:40,2:3f,1:3f,33:1,11:-6,1:-9,1ac7:-3a,6d:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,9:-8,1:-8,1:-8,1:-8,1:-8,1:-8,b:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,9:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,9:-8,1:-8,1:-8,1:-8,1:-8,1:-8,c:-8,2:-8,2:-8,2:-8,9:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,49:-8,1:-8,1:-4a,1:-4a,d:-56,1:-56,1:-56,1:-56,d:-8,1:-8,f:-8,1:-8,3:-7\");\nconst Table_B_2_complex = createTable(\"df:00730073,51:00690307,19:02BC006E,a7:006A030C,18a:002003B9,16:03B903080301,20:03C503080301,1d7:05650582,190f:00680331,1:00740308,1:0077030A,1:0079030A,1:006102BE,b6:03C50313,2:03C503130300,2:03C503130301,2:03C503130342,2a:1F0003B9,1:1F0103B9,1:1F0203B9,1:1F0303B9,1:1F0403B9,1:1F0503B9,1:1F0603B9,1:1F0703B9,1:1F0003B9,1:1F0103B9,1:1F0203B9,1:1F0303B9,1:1F0403B9,1:1F0503B9,1:1F0603B9,1:1F0703B9,1:1F2003B9,1:1F2103B9,1:1F2203B9,1:1F2303B9,1:1F2403B9,1:1F2503B9,1:1F2603B9,1:1F2703B9,1:1F2003B9,1:1F2103B9,1:1F2203B9,1:1F2303B9,1:1F2403B9,1:1F2503B9,1:1F2603B9,1:1F2703B9,1:1F6003B9,1:1F6103B9,1:1F6203B9,1:1F6303B9,1:1F6403B9,1:1F6503B9,1:1F6603B9,1:1F6703B9,1:1F6003B9,1:1F6103B9,1:1F6203B9,1:1F6303B9,1:1F6403B9,1:1F6503B9,1:1F6603B9,1:1F6703B9,3:1F7003B9,1:03B103B9,1:03AC03B9,2:03B10342,1:03B1034203B9,5:03B103B9,6:1F7403B9,1:03B703B9,1:03AE03B9,2:03B70342,1:03B7034203B9,5:03B703B9,6:03B903080300,1:03B903080301,3:03B90342,1:03B903080342,b:03C503080300,1:03C503080301,1:03C10313,2:03C50342,1:03C503080342,b:1F7C03B9,1:03C903B9,1:03CE03B9,2:03C90342,1:03C9034203B9,5:03C903B9,ac:00720073,5b:00B00063,6:00B00066,d:006E006F,a:0073006D,1:00740065006C,1:0074006D,124f:006800700061,2:00610075,2:006F0076,b:00700061,1:006E0061,1:03BC0061,1:006D0061,1:006B0061,1:006B0062,1:006D0062,1:00670062,3:00700066,1:006E0066,1:03BC0066,4:0068007A,1:006B0068007A,1:006D0068007A,1:00670068007A,1:00740068007A,15:00700061,1:006B00700061,1:006D00700061,1:006700700061,8:00700076,1:006E0076,1:03BC0076,1:006D0076,1:006B0076,1:006D0076,1:00700077,1:006E0077,1:03BC0077,1:006D0077,1:006B0077,1:006D0077,1:006B03C9,1:006D03C9,2:00620071,3:00632215006B0067,1:0063006F002E,1:00640062,1:00670079,2:00680070,2:006B006B,1:006B006D,9:00700068,2:00700070006D,1:00700072,2:00730076,1:00770062,c723:00660066,1:00660069,1:0066006C,1:006600660069,1:00660066006C,1:00730074,1:00730074,d:05740576,1:05740565,1:0574056B,1:057E0576,1:0574056D\", bytes2);\n\nconst Table_C_ranges = createRangeTable(\"80-20,2a0-,39c,32,f71,18e,7f2-f,19-7,30-4,7-5,f81-b,5,a800-20ff,4d1-1f,110,fa-6,d174-7,2e84-,ffff-,ffff-,ffff-,ffff-,ffff-,ffff-,ffff-,ffff-,ffff-,ffff-,ffff-,ffff-,2,1f-5f,ff7f-20001\");\n\n\nfunction flatten(values: Array>): Array {\n return values.reduce((accum, value) => {\n value.forEach((value) => { accum.push(value); });\n return accum;\n }, [ ]);\n}\n\nexport function _nameprepTableA1(codepoint: number): boolean {\n return !!matchMap(codepoint, Table_A_1_ranges);\n}\n\nexport function _nameprepTableB2(codepoint: number): Array {\n let range = matchMap(codepoint, Table_B_2_ranges);\n if (range) { return [ codepoint + range.s ]; }\n\n let codes = Table_B_2_lut_abs[codepoint];\n if (codes) { return codes; }\n\n let shift = Table_B_2_lut_rel[codepoint];\n if (shift) { return [ codepoint + shift[0] ]; }\n\n let complex = Table_B_2_complex[codepoint];\n if (complex) { return complex; }\n\n return null;\n}\n\nexport function _nameprepTableC(codepoint: number): boolean {\n return !!matchMap(codepoint, Table_C_ranges);\n}\n\nexport function nameprep(value: string): string {\n\n // This allows platforms with incomplete normalize to bypass\n // it for very basic names which the built-in toLowerCase\n // will certainly handle correctly\n if (value.match(/^[a-z0-9-]*$/i) && value.length <= 59) { return value.toLowerCase(); }\n\n // Get the code points (keeping the current normalization)\n let codes = toUtf8CodePoints(value);\n\n codes = flatten(codes.map((code) => {\n // Substitute Table B.1 (Maps to Nothing)\n if (Table_B_1_flags.indexOf(code) >= 0) { return [ ]; }\n if (code >= 0xfe00 && code <= 0xfe0f) { return [ ]; }\n\n // Substitute Table B.2 (Case Folding)\n let codesTableB2 = _nameprepTableB2(code);\n if (codesTableB2) { return codesTableB2; }\n\n // No Substitution\n return [ code ];\n }));\n\n // Normalize using form KC\n codes = toUtf8CodePoints(_toUtf8String(codes), UnicodeNormalizationForm.NFKC);\n\n // Prohibit Tables C.1.2, C.2.2, C.3, C.4, C.5, C.6, C.7, C.8, C.9\n codes.forEach((code) => {\n if (_nameprepTableC(code)) {\n throw new Error(\"STRINGPREP_CONTAINS_PROHIBITED\");\n }\n });\n\n // Prohibit Unassigned Code Points (Table A.1)\n codes.forEach((code) => {\n if (_nameprepTableA1(code)) {\n throw new Error(\"STRINGPREP_CONTAINS_UNASSIGNED\");\n }\n });\n\n // IDNA extras\n let name = _toUtf8String(codes);\n\n // IDNA: 4.2.3.1\n if (name.substring(0, 1) === \"-\" || name.substring(2, 4) === \"--\" || name.substring(name.length - 1) === \"-\") {\n throw new Error(\"invalid hyphen\");\n }\n\n return name;\n}\n\n", "\"use strict\";\n\nimport { formatBytes32String, parseBytes32String } from \"./bytes32\";\nimport { nameprep } from \"./idna\";\nimport { _toEscapedUtf8String, toUtf8Bytes, toUtf8CodePoints, toUtf8String, UnicodeNormalizationForm, Utf8ErrorFunc, Utf8ErrorFuncs, Utf8ErrorReason } from \"./utf8\";\n\nexport {\n _toEscapedUtf8String,\n toUtf8Bytes,\n toUtf8CodePoints,\n toUtf8String,\n\n Utf8ErrorFunc,\n Utf8ErrorFuncs,\n Utf8ErrorReason,\n\n UnicodeNormalizationForm,\n\n formatBytes32String,\n parseBytes32String,\n\n nameprep\n}\n", "\"use strict\";\n\nimport { toUtf8Bytes, toUtf8String } from \"@ethersproject/strings\";\n\nimport { Reader, Writer } from \"./abstract-coder\";\nimport { DynamicBytesCoder } from \"./bytes\";\n\nexport class StringCoder extends DynamicBytesCoder {\n\n constructor(localName: string) {\n super(\"string\", localName);\n }\n\n defaultValue(): string {\n return \"\";\n }\n\n encode(writer: Writer, value: any): number {\n return super.encode(writer, toUtf8Bytes(value));\n }\n\n decode(reader: Reader): any {\n return toUtf8String(super.decode(reader));\n }\n}\n", "\"use strict\";\n\nimport { Coder, Reader, Writer } from \"./abstract-coder\";\nimport { pack, unpack } from \"./array\";\n\nexport class TupleCoder extends Coder {\n readonly coders: Array;\n\n constructor(coders: Array, localName: string) {\n let dynamic = false;\n const types: Array = [];\n coders.forEach((coder) => {\n if (coder.dynamic) { dynamic = true; }\n types.push(coder.type);\n });\n const type = (\"tuple(\" + types.join(\",\") + \")\");\n\n super(\"tuple\", type, localName, dynamic);\n this.coders = coders;\n }\n\n defaultValue(): any {\n const values: any = [ ];\n this.coders.forEach((coder) => {\n values.push(coder.defaultValue());\n });\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]) { accum[name] = 0; }\n accum[name]++;\n }\n return accum;\n }, <{ [ name: string ]: number }>{ });\n\n // Add named values\n this.coders.forEach((coder: Coder, index: number) => {\n let name = coder.localName;\n if (!name || uniqueNames[name] !== 1) { return; }\n\n if (name === \"length\") { name = \"_length\"; }\n\n if (values[name] != null) { return; }\n\n values[name] = values[index];\n });\n\n return Object.freeze(values);\n }\n\n encode(writer: Writer, value: Array | { [ name: string ]: any }): number {\n return pack(writer, this.coders, value);\n }\n\n decode(reader: Reader): any {\n return reader.coerce(this.name, unpack(reader, this.coders));\n }\n}\n\n", "\"use strict\";\n\n// See: https://github.com/ethereum/wiki/wiki/Ethereum-Contract-ABI\n\nimport { arrayify, BytesLike } from \"@ethersproject/bytes\";\nimport { defineReadOnly } from \"@ethersproject/properties\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\nimport { Coder, Reader, Result, Writer } from \"./coders/abstract-coder\";\nimport { AddressCoder } from \"./coders/address\";\nimport { ArrayCoder } from \"./coders/array\";\nimport { BooleanCoder } from \"./coders/boolean\";\nimport { BytesCoder } from \"./coders/bytes\";\nimport { FixedBytesCoder } from \"./coders/fixed-bytes\";\nimport { NullCoder } from \"./coders/null\";\nimport { NumberCoder } from \"./coders/number\";\nimport { StringCoder } from \"./coders/string\";\nimport { TupleCoder } from \"./coders/tuple\";\n\nimport { ParamType } from \"./fragments\";\n\n\nconst paramTypeBytes = new RegExp(/^bytes([0-9]*)$/);\nconst paramTypeNumber = new RegExp(/^(u?int)([0-9]*)$/);\n\n\nexport type CoerceFunc = (type: string, value: any) => any;\n\nexport class AbiCoder {\n readonly coerceFunc: CoerceFunc;\n\n constructor(coerceFunc?: CoerceFunc) {\n defineReadOnly(this, \"coerceFunc\", coerceFunc || null);\n }\n\n _getCoder(param: ParamType): Coder {\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 \"array\":\n return new ArrayCoder(this._getCoder(param.arrayChildren), param.arrayLength, param.name);\n case \"tuple\":\n return new TupleCoder((param.components || []).map((component) => {\n return this._getCoder(component);\n }), param.name);\n case \"\":\n return new NullCoder(param.name);\n }\n\n // u?int[0-9]*\n let match = param.type.match(paramTypeNumber);\n if (match) {\n let size = parseInt(match[2] || \"256\");\n if (size === 0 || size > 256 || (size % 8) !== 0) {\n logger.throwArgumentError(\"invalid \" + match[1] + \" bit length\", \"param\", param);\n }\n return new NumberCoder(size / 8, (match[1] === \"int\"), param.name);\n }\n\n // bytes[0-9]+\n match = param.type.match(paramTypeBytes);\n if (match) {\n let size = parseInt(match[1]);\n if (size === 0 || size > 32) {\n logger.throwArgumentError(\"invalid bytes length\", \"param\", param);\n }\n return new FixedBytesCoder(size, param.name);\n }\n\n return logger.throwArgumentError(\"invalid type\", \"type\", param.type);\n }\n\n _getWordSize(): number { return 32; }\n\n _getReader(data: Uint8Array, allowLoose?: boolean): Reader {\n return new Reader(data, this._getWordSize(), this.coerceFunc, allowLoose);\n }\n\n _getWriter(): Writer {\n return new Writer(this._getWordSize());\n }\n\n getDefaultValue(types: ReadonlyArray): Result {\n const coders: Array = types.map((type) => this._getCoder(ParamType.from(type)));\n const coder = new TupleCoder(coders, \"_\");\n return coder.defaultValue();\n }\n\n encode(types: ReadonlyArray, values: ReadonlyArray): string {\n if (types.length !== values.length) {\n logger.throwError(\"types/values length mismatch\", Logger.errors.INVALID_ARGUMENT, {\n count: { types: types.length, values: values.length },\n value: { types: types, values: values }\n });\n }\n\n const coders = types.map((type) => this._getCoder(ParamType.from(type)));\n const coder = (new TupleCoder(coders, \"_\"));\n\n const writer = this._getWriter();\n coder.encode(writer, values);\n return writer.data;\n }\n\n decode(types: ReadonlyArray, data: BytesLike, loose?: boolean): Result {\n const coders: Array = types.map((type) => this._getCoder(ParamType.from(type)));\n const coder = new TupleCoder(coders, \"_\");\n return coder.decode(this._getReader(arrayify(data), loose));\n }\n}\n\nexport const defaultAbiCoder: AbiCoder = new AbiCoder();\n\n", "import { keccak256 } from \"@ethersproject/keccak256\";\nimport { toUtf8Bytes } from \"@ethersproject/strings\";\n\nexport function id(text: string): string {\n return keccak256(toUtf8Bytes(text));\n}\n", "export const version = \"hash/5.7.0\";\n", "\"use strict\";\n\nimport { arrayify, BytesLike } from \"@ethersproject/bytes\";\n\n\nexport function decode(textData: string): Uint8Array {\n return arrayify(new Uint8Array(Buffer.from(textData, \"base64\")));\n};\n\nexport function encode(data: BytesLike): string {\n return Buffer.from(arrayify(data)).toString(\"base64\");\n}\n", "\"use strict\";\n\nexport { decode, encode } from \"./base64\";\n", "/**\n * MIT License\n *\n * Copyright (c) 2021 Andrew Raffensperger\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n *\n * This is a near carbon-copy of the original source (link below) with the\n * TypeScript typings added and a few tweaks to make it ES3-compatible.\n *\n * See: https://github.com/adraffy/ens-normalize.js\n */\n\nexport type Numbers = Uint8Array | Array;\nexport type NextFunc = (...args: Array) => number;\n\n// https://github.com/behnammodi/polyfill/blob/master/array.polyfill.js\nfunction flat(array: Array, depth?: number): Array {\n if (depth == null) { depth = 1; }\n const result: Array = [];\n\n const forEach = result.forEach;\n\n const flatDeep = function (arr: Array, depth: number) {\n forEach.call(arr, function (val: any) {\n if (depth > 0 && Array.isArray(val)) {\n flatDeep(val, depth - 1);\n } else {\n result.push(val);\n }\n });\n };\n\n flatDeep(array, depth);\n return result;\n}\n\nfunction fromEntries(array: Array<[T, U]>): Record {\n const result: Record = >{ };\n for (let i = 0; i < array.length; i++) {\n const value = array[i];\n result[value[0]] = value[1];\n }\n return result;\n}\n\nexport function decode_arithmetic(bytes: Numbers): Array {\n\tlet pos = 0;\n\tfunction u16() { return (bytes[pos++] << 8) | bytes[pos++]; }\n\t\n\t// decode the frequency table\n\tlet symbol_count = u16();\n\tlet total = 1;\n\tlet acc = [0, 1]; // first symbol has frequency 1\n\tfor (let i = 1; i < symbol_count; i++) {\n\t\tacc.push(total += u16());\n\t}\n\n\t// skip the sized-payload that the last 3 symbols index into\n\tlet skip = u16();\n\tlet pos_payload = pos;\n\tpos += skip;\n\n\tlet read_width = 0;\n\tlet read_buffer = 0; \n\tfunction read_bit() {\n\t\tif (read_width == 0) {\n\t\t\t// this will read beyond end of buffer\n\t\t\t// but (undefined|0) => zero pad\n\t\t\tread_buffer = (read_buffer << 8) | bytes[pos++];\n\t\t\tread_width = 8;\n\t\t}\n\t\treturn (read_buffer >> --read_width) & 1;\n\t}\n\n\tconst N = 31;\n\tconst FULL = 2**N;\n\tconst HALF = FULL >>> 1;\n\tconst QRTR = HALF >> 1;\n\tconst MASK = FULL - 1;\n\n\t// fill register\n\tlet register = 0;\n\tfor (let i = 0; i < N; i++) register = (register << 1) | read_bit();\n\n\tlet symbols = [];\n\tlet low = 0;\n\tlet range = FULL; // treat like a float\n\twhile (true) {\n\t\tlet value = Math.floor((((register - low + 1) * total) - 1) / range);\n\t\tlet start = 0;\n\t\tlet end = symbol_count;\n\t\twhile (end - start > 1) { // binary search\n\t\t\tlet mid = (start + end) >>> 1;\n\t\t\tif (value < acc[mid]) {\n\t\t\t\tend = mid;\n\t\t\t} else {\n\t\t\t\tstart = mid;\n\t\t\t}\n\t\t}\n\t\tif (start == 0) break; // first symbol is end mark\n\t\tsymbols.push(start);\n\t\tlet a = low + Math.floor(range * acc[start] / total);\n\t\tlet b = low + Math.floor(range * acc[start+1] / total) - 1\n\t\twhile (((a ^ b) & HALF) == 0) {\n\t\t\tregister = (register << 1) & MASK | read_bit();\n\t\t\ta = (a << 1) & MASK;\n\t\t\tb = (b << 1) & MASK | 1;\n\t\t}\n\t\twhile (a & ~b & QRTR) {\n\t\t\tregister = (register & HALF) | ((register << 1) & (MASK >>> 1)) | read_bit();\n\t\t\ta = (a << 1) ^ HALF;\n\t\t\tb = ((b ^ HALF) << 1) | HALF | 1;\n\t\t}\n\t\tlow = a;\n\t\trange = 1 + b - a;\n\t}\n\tlet offset = symbol_count - 4;\n\treturn symbols.map(x => { // index into payload\n\t\tswitch (x - offset) {\n\t\t\tcase 3: return offset + 0x10100 + ((bytes[pos_payload++] << 16) | (bytes[pos_payload++] << 8) | bytes[pos_payload++]);\n\t\t\tcase 2: return offset + 0x100 + ((bytes[pos_payload++] << 8) | bytes[pos_payload++]);\n\t\t\tcase 1: return offset + bytes[pos_payload++];\n\t\t\tdefault: return x - 1;\n\t\t}\n\t});\n}\t\n\n\n// returns an iterator which returns the next symbol\nexport function read_payload(v: Numbers): NextFunc {\n\tlet pos = 0;\n\treturn () => v[pos++];\n}\nexport function read_compressed_payload(bytes: Numbers): NextFunc {\n\treturn read_payload(decode_arithmetic(bytes));\n}\n\n// eg. [0,1,2,3...] => [0,-1,1,-2,...]\nexport function signed(i: number): number { \n\treturn (i & 1) ? (~i >> 1) : (i >> 1);\n}\n\nfunction read_counts(n: number, next: NextFunc): Array {\n\tlet v = Array(n);\n\tfor (let i = 0; i < n; i++) v[i] = 1 + next();\n\treturn v;\n}\n\nfunction read_ascending(n: number, next: NextFunc): Array {\n\tlet v = Array(n);\n\tfor (let i = 0, x = -1; i < n; i++) v[i] = x += 1 + next();\n\treturn v;\n}\n\nfunction read_deltas(n: number, next: NextFunc): Array {\n\tlet v = Array(n);\n\tfor (let i = 0, x = 0; i < n; i++) v[i] = x += signed(next());\n\treturn v;\n}\n\nexport function read_member_array(next: NextFunc, lookup?: Record) {\n let v = read_ascending(next(), next);\n let n = next();\n let vX = read_ascending(n, next);\n let vN = read_counts(n, next);\n for (let i = 0; i < n; i++) {\n for (let j = 0; j < vN[i]; j++) {\n v.push(vX[i] + j);\n }\n }\n return lookup ? v.map(x => lookup[x]) : v;\n}\n\n// returns array of \n// [x, ys] => single replacement rule\n// [x, ys, n, dx, dx] => linear map\nexport function read_mapped_map(next: NextFunc): Record> {\n\tlet ret = [];\n\twhile (true) {\n\t\tlet w = next();\n\t\tif (w == 0) break;\n\t\tret.push(read_linear_table(w, next));\n\t}\n\twhile (true) {\n\t\tlet w = next() - 1;\n\t\tif (w < 0) break;\n\t\tret.push(read_replacement_table(w, next));\n\t}\n\treturn fromEntries>(flat(ret));\n}\n\nexport function read_zero_terminated_array(next: NextFunc): Array {\n\tlet v = [];\n\twhile (true) {\n\t\tlet i = next();\n\t\tif (i == 0) break;\n\t\tv.push(i);\n\t}\n\treturn v;\n}\n\nfunction read_transposed(n: number, w: number, next: NextFunc): Array> {\n let m = Array(n).fill(undefined).map(() => []);\n for (let i = 0; i < w; i++) {\n read_deltas(n, next).forEach((x, j) => m[j].push(x));\n }\n return m;\n}\n\n\nfunction read_linear_table(w: number, next: NextFunc): Array>> {\n\tlet dx = 1 + next();\n\tlet dy = next();\n\tlet vN = read_zero_terminated_array(next);\n\tlet m = read_transposed(vN.length, 1+w, next);\n\treturn flat(m.map((v, i) => {\n\t const x = v[0], ys = v.slice(1);\n\t\t//let [x, ...ys] = v;\n\t\t//return Array(vN[i]).fill().map((_, j) => {\n\t\treturn Array(vN[i]).fill(undefined).map((_, j) => {\n\t\t\tlet j_dy = j * dy;\n\t\t\treturn [x + j * dx, ys.map(y => y + j_dy)];\n\t\t});\n\t}));\n}\n\nfunction read_replacement_table(w: number, next: NextFunc): Array<[ number, Array ]> {\n\tlet n = 1 + next();\n\tlet m = read_transposed(n, 1+w, next);\n\treturn m.map(v => [v[0], v.slice(1)]);\n}\n\nexport type Branch = {\n set: Set;\n node: Node;\n};\n\nexport type Node = {\n branches: Array;\n valid: number;\n fe0f: boolean;\n save: boolean;\n check: boolean;\n};\n\nexport function read_emoji_trie(next: NextFunc): Node {\n\tlet sorted = read_member_array(next).sort((a, b) => a - b);\n\treturn read();\n\tfunction read(): Node {\n\t\tlet branches = [];\n\t\twhile (true) {\n\t\t\tlet keys = read_member_array(next, sorted);\n\t\t\tif (keys.length == 0) break;\n\t\t\tbranches.push({set: new Set(keys), node: read()});\n\t\t}\n branches.sort((a, b) => b.set.size - a.set.size); // sort by likelihood\n \t\tlet temp = next();\n \t\tlet valid = temp % 3;\n \t\ttemp = (temp / 3)|0;\n \t\tlet fe0f = !!(temp & 1);\n \t\ttemp >>= 1;\n \t\tlet save = temp == 1;\n \t\tlet check = temp == 2;\n \t\treturn {branches, valid, fe0f, save, check};\n\t}\n}\n", "/**\n * MIT License\n *\n * Copyright (c) 2021 Andrew Raffensperger\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n *\n * This is a near carbon-copy of the original source (link below) with the\n * TypeScript typings added and a few tweaks to make it ES3-compatible.\n *\n * See: https://github.com/adraffy/ens-normalize.js\n */\n\nimport { decode } from \"@ethersproject/base64\";\n\nimport {read_compressed_payload} from './decoder.js';\n\nexport function getData(): () => number {\n return read_compressed_payload(decode('AEQF2AO2DEsA2wIrAGsBRABxAN8AZwCcAEwAqgA0AGwAUgByADcATAAVAFYAIQAyACEAKAAYAFgAGwAjABQAMAAmADIAFAAfABQAKwATACoADgAbAA8AHQAYABoAGQAxADgALAAoADwAEwA9ABMAGgARAA4ADwAWABMAFgAIAA8AHgQXBYMA5BHJAS8JtAYoAe4AExozi0UAH21tAaMnBT8CrnIyhrMDhRgDygIBUAEHcoFHUPe8AXBjAewCjgDQR8IICIcEcQLwATXCDgzvHwBmBoHNAqsBdBcUAykgDhAMShskMgo8AY8jqAQfAUAfHw8BDw87MioGlCIPBwZCa4ELatMAAMspJVgsDl8AIhckSg8XAHdvTwBcIQEiDT4OPhUqbyECAEoAS34Aej8Ybx83JgT/Xw8gHxZ/7w8RICxPHA9vBw+Pfw8PHwAPFv+fAsAvCc8vEr8ivwD/EQ8Bol8OEBa/A78hrwAPCU8vESNvvwWfHwNfAVoDHr+ZAAED34YaAdJPAK7PLwSEgDLHAGo1Pz8Pvx9fUwMrpb8O/58VTzAPIBoXIyQJNF8hpwIVAT8YGAUADDNBaX3RAMomJCg9EhUeA29MABsZBTMNJipjOhc19gcIDR8bBwQHEggCWi6DIgLuAQYA+BAFCha3A5XiAEsqM7UFFgFLhAMjFTMYE1Klnw74nRVBG/ASCm0BYRN/BrsU3VoWy+S0vV8LQx+vN8gF2AC2AK5EAWwApgYDKmAAroQ0NDQ0AT+OCg7wAAIHRAbpNgVcBV0APTA5BfbPFgMLzcYL/QqqA82eBALKCjQCjqYCht0/k2+OAsXQAoP3ASTKDgDw6ACKAUYCMpIKJpRaAE4A5womABzZvs0REEKiACIQAd5QdAECAj4Ywg/wGqY2AVgAYADYvAoCGAEubA0gvAY2ALAAbpbvqpyEAGAEpgQAJgAG7gAgAEACmghUFwCqAMpAINQIwC4DthRAAPcycKgApoIdABwBfCisABoATwBqASIAvhnSBP8aH/ECeAKXAq40NjgDBTwFYQU6AXs3oABgAD4XNgmcCY1eCl5tIFZeUqGgyoNHABgAEQAaABNwWQAmABMATPMa3T34ADldyprmM1M2XociUQgLzvwAXT3xABgAEQAaABNwIGFAnADD8AAgAD4BBJWzaCcIAIEBFMAWwKoAAdq9BWAF5wLQpALEtQAKUSGkahR4GnJM+gsAwCgeFAiUAECQ0BQuL8AAIAAAADKeIheclvFqQAAETr4iAMxIARMgAMIoHhQIAn0E0pDQFC4HhznoAAAAIAI2C0/4lvFqQAAETgBJJwYCAy4ABgYAFAA8MBKYEH4eRhTkAjYeFcgACAYAeABsOqyQ5gRwDayqugEgaIIAtgoACgDmEABmBAWGme5OBJJA2m4cDeoAmITWAXwrMgOgAGwBCh6CBXYF1Tzg1wKAAFdiuABRAFwAXQBsAG8AdgBrAHYAbwCEAHEwfxQBVE5TEQADVFhTBwBDANILAqcCzgLTApQCrQL6vAAMAL8APLhNBKkE6glGKTAU4Dr4N2EYEwBCkABKk8rHAbYBmwIoAiU4Ajf/Aq4CowCAANIChzgaNBsCsTgeODcFXrgClQKdAqQBiQGYAqsCsjTsNHsfNPA0ixsAWTWiOAMFPDQSNCk2BDZHNow2TTZUNhk28Jk9VzI3QkEoAoICoQKwAqcAQAAxBV4FXbS9BW47YkIXP1ciUqs05DS/FwABUwJW11e6nHuYZmSh/RAYA8oMKvZ8KASoUAJYWAJ6ILAsAZSoqjpgA0ocBIhmDgDWAAawRDQoAAcuAj5iAHABZiR2AIgiHgCaAU68ACxuHAG0ygM8MiZIAlgBdF4GagJqAPZOHAMuBgoATkYAsABiAHgAMLoGDPj0HpKEBAAOJgAuALggTAHWAeAMEDbd20Uege0ADwAWADkAQgA9OHd+2MUQZBBhBgNNDkxxPxUQArEPqwvqERoM1irQ090ANK4H8ANYB/ADWANYB/AH8ANYB/ADWANYA1gDWBwP8B/YxRBkD00EcgWTBZAE2wiIJk4RhgctCNdUEnQjHEwDSgEBIypJITuYMxAlR0wRTQgIATZHbKx9PQNMMbBU+pCnA9AyVDlxBgMedhKlAC8PeCE1uk6DekxxpQpQT7NX9wBFBgASqwAS5gBJDSgAUCwGPQBI4zTYABNGAE2bAE3KAExdGABKaAbgAFBXAFCOAFBJABI2SWdObALDOq0//QomCZhvwHdTBkIQHCemEPgMNAG2ATwN7kvZBPIGPATKH34ZGg/OlZ0Ipi3eDO4m5C6igFsj9iqEBe5L9TzeC05RaQ9aC2YJ5DpkgU8DIgEOIowK3g06CG4Q9ArKbA3mEUYHOgPWSZsApgcCCxIdNhW2JhFirQsKOXgG/Br3C5AmsBMqev0F1BoiBk4BKhsAANAu6IWxWjJcHU9gBgQLJiPIFKlQIQ0mQLh4SRocBxYlqgKSQ3FKiFE3HpQh9zw+DWcuFFF9B/Y8BhlQC4I8n0asRQ8R0z6OPUkiSkwtBDaALDAnjAnQD4YMunxzAVoJIgmyDHITMhEYN8YIOgcaLpclJxYIIkaWYJsE+KAD9BPSAwwFQAlCBxQDthwuEy8VKgUOgSXYAvQ21i60ApBWgQEYBcwPJh/gEFFH4Q7qCJwCZgOEJewALhUiABginAhEZABgj9lTBi7MCMhqbSN1A2gU6GIRdAeSDlgHqBw0FcAc4nDJXgyGCSiksAlcAXYJmgFgBOQICjVcjKEgQmdUi1kYnCBiQUBd/QIyDGYVoES+h3kCjA9sEhwBNgF0BzoNAgJ4Ee4RbBCWCOyGBTW2M/k6JgRQIYQgEgooA1BszwsoJvoM+WoBpBJjAw00PnfvZ6xgtyUX/gcaMsZBYSHyC5NPzgydGsIYQ1QvGeUHwAP0GvQn60FYBgADpAQUOk4z7wS+C2oIjAlAAEoOpBgH2BhrCnKM0QEyjAG4mgNYkoQCcJAGOAcMAGgMiAV65gAeAqgIpAAGANADWAA6Aq4HngAaAIZCAT4DKDABIuYCkAOUCDLMAZYwAfQqBBzEDBYA+DhuSwLDsgKAa2ajBd5ZAo8CSjYBTiYEBk9IUgOwcuIA3ABMBhTgSAEWrEvMG+REAeBwLADIAPwABjYHBkIBzgH0bgC4AWALMgmjtLYBTuoqAIQAFmwB2AKKAN4ANgCA8gFUAE4FWvoF1AJQSgESMhksWGIBvAMgATQBDgB6BsyOpsoIIARuB9QCEBwV4gLvLwe2AgMi4BPOQsYCvd9WADIXUu5eZwqoCqdeaAC0YTQHMnM9UQAPH6k+yAdy/BZIiQImSwBQ5gBQQzSaNTFWSTYBpwGqKQK38AFtqwBI/wK37gK3rQK3sAK6280C0gK33AK3zxAAUEIAUD9SklKDArekArw5AEQAzAHCO147WTteO1k7XjtZO147WTteO1kDmChYI03AVU0oJqkKbV9GYewMpw3VRMk6ShPcYFJgMxPJLbgUwhXPJVcZPhq9JwYl5VUKDwUt1GYxCC00dhe9AEApaYNCY4ceMQpMHOhTklT5LRwAskujM7ANrRsWREEFSHXuYisWDwojAmSCAmJDXE6wXDchAqH4AmiZAmYKAp+FOBwMAmY8AmYnBG8EgAN/FAN+kzkHOXgYOYM6JCQCbB4CMjc4CwJtyAJtr/CLADRoRiwBaADfAOIASwYHmQyOAP8MwwAOtgJ3MAJ2o0ACeUxEAni7Hl3cRa9G9AJ8QAJ6yQJ9CgJ88UgBSH5kJQAsFklZSlwWGErNAtECAtDNSygDiFADh+dExpEzAvKiXQQDA69Lz0wuJgTQTU1NsAKLQAKK2cIcCB5EaAa4Ao44Ao5dQZiCAo7aAo5deVG1UzYLUtVUhgKT/AKTDQDqAB1VH1WwVdEHLBwplocy4nhnRTw6ApegAu+zWCKpAFomApaQApZ9nQCqWa1aCoJOADwClrYClk9cRVzSApnMApllXMtdCBoCnJw5wzqeApwXAp+cAp65iwAeEDIrEAKd8gKekwC2PmE1YfACntQCoG8BqgKeoCACnk+mY8lkKCYsAiewAiZ/AqD8AqBN2AKmMAKlzwKoAAB+AqfzaH1osgAESmodatICrOQCrK8CrWgCrQMCVx4CVd0CseLYAx9PbJgCsr4OArLpGGzhbWRtSWADJc4Ctl08QG6RAylGArhfArlIFgK5K3hwN3DiAr0aAy2zAzISAr6JcgMDM3ICvhtzI3NQAsPMAsMFc4N0TDZGdOEDPKgDPJsDPcACxX0CxkgCxhGKAshqUgLIRQLJUALJLwJkngLd03h6YniveSZL0QMYpGcDAmH1GfSVJXsMXpNevBICz2wCz20wTFTT9BSgAMeuAs90ASrrA04TfkwGAtwoAtuLAtJQA1JdA1NgAQIDVY2AikABzBfuYUZ2AILPg44C2sgC2d+EEYRKpz0DhqYAMANkD4ZyWvoAVgLfZgLeuXR4AuIw7RUB8zEoAfScAfLTiALr9ALpcXoAAur6AurlAPpIAboC7ooC652Wq5cEAu5AA4XhmHpw4XGiAvMEAGoDjheZlAL3FAORbwOSiAL3mQL52gL4Z5odmqy8OJsfA52EAv77ARwAOp8dn7QDBY4DpmsDptoA0sYDBmuhiaIGCgMMSgFgASACtgNGAJwEgLpoBgC8BGzAEowcggCEDC6kdjoAJAM0C5IKRoABZCgiAIzw3AYBLACkfng9ogigkgNmWAN6AEQCvrkEVqTGAwCsBRbAA+4iQkMCHR072jI2PTbUNsk2RjY5NvA23TZKNiU3EDcZN5I+RTxDRTBCJkK5VBYKFhZfwQCWygU3AJBRHpu+OytgNxa61A40GMsYjsn7BVwFXQVcBV0FaAVdBVwFXQVcBV0FXAVdBVwFXUsaCNyKAK4AAQUHBwKU7oICoW1e7jAEzgPxA+YDwgCkBFDAwADABKzAAOxFLhitA1UFTDeyPkM+bj51QkRCuwTQWWQ8X+0AWBYzsACNA8xwzAGm7EZ/QisoCTAbLDs6fnLfb8H2GccsbgFw13M1HAVkBW/Jxsm9CNRO8E8FDD0FBQw9FkcClOYCoMFegpDfADgcMiA2AJQACB8AsigKAIzIEAJKeBIApY5yPZQIAKQiHb4fvj5BKSRPQrZCOz0oXyxgOywfKAnGbgMClQaCAkILXgdeCD9IIGUgQj5fPoY+dT52Ao5CM0dAX9BTVG9SDzFwWTQAbxBzJF/lOEIQQglCCkKJIAls5AcClQICoKPMODEFxhi6KSAbiyfIRrMjtCgdWCAkPlFBIitCsEJRzAbMAV/OEyQzDg0OAQQEJ36i328/Mk9AybDJsQlq3tDRApUKAkFzXf1d/j9uALYP6hCoFgCTGD8kPsFKQiobrm0+zj0KSD8kPnVCRBwMDyJRTHFgMTJa5rwXQiQ2YfI/JD7BMEJEHGINTw4TOFlIRzwJO0icMQpyPyQ+wzJCRBv6DVgnKB01NgUKj2bwYzMqCoBkznBgEF+zYDIocwRIX+NgHj4HICNfh2C4CwdwFWpTG/lgUhYGAwRfv2Ts8mAaXzVgml/XYIJfuWC4HI1gUF9pYJZgMR6ilQHMAOwLAlDRefC0in4AXAEJA6PjCwc0IamOANMMCAECRQDFNRTZBgd+CwQlRA+r6+gLBDEFBnwUBXgKATIArwAGRAAHA3cDdAN2A3kDdwN9A3oDdQN7A30DfAN4A3oDfQAYEAAlAtYASwMAUAFsAHcKAHcAmgB3AHUAdQB2AHVu8UgAygDAAHcAdQB1AHYAdQALCgB3AAsAmgB3AAsCOwB3AAtu8UgAygDAAHgKAJoAdwB3AHUAdQB2AHUAeAB1AHUAdgB1bvFIAMoAwAALCgCaAHcACwB3AAsCOwB3AAtu8UgAygDAAH4ACwGgALcBpwC6AahdAu0COwLtbvFIAMoAwAALCgCaAu0ACwLtAAsCOwLtAAtu8UgAygDAA24ACwNvAAu0VsQAAzsAABCkjUIpAAsAUIusOggWcgMeBxVsGwL67U/2HlzmWOEeOgALASvuAAseAfpKUpnpGgYJDCIZM6YyARUE9ThqAD5iXQgnAJYJPnOzw0ZAEZxEKsIAkA4DhAHnTAIDxxUDK0lxCQlPYgIvIQVYJQBVqE1GakUAKGYiDToSBA1EtAYAXQJYAIF8GgMHRyAAIAjOe9YncekRAA0KACUrjwE7Ayc6AAYWAqaiKG4McEcqANoN3+Mg9TwCBhIkuCny+JwUQ29L008JluRxu3K+oAdqiHOqFH0AG5SUIfUJ5SxCGfxdipRzqTmT4V5Zb+r1Uo4Vm+NqSSEl2mNvR2JhIa8SpYO6ntdwFXHCWTCK8f2+Hxo7uiG3drDycAuKIMP5bhi06ACnqArH1rz4Rqg//lm6SgJGEVbF9xJHISaR6HxqxSnkw6shDnelHKNEfGUXSJRJ1GcsmtJw25xrZMDK9gXSm1/YMkdX4/6NKYOdtk/NQ3/NnDASjTc3fPjIjW/5sVfVObX2oTDWkr1dF9f3kxBsD3/3aQO8hPfRz+e0uEiJqt1161griu7gz8hDDwtpy+F+BWtefnKHZPAxcZoWbnznhJpy0e842j36bcNzGnIEusgGX0a8ZxsnjcSsPDZ09yZ36fCQbriHeQ72JRMILNl6ePPf2HWoVwgWAm1fb3V2sAY0+B6rAXqSwPBgseVmoqsBTSrm91+XasMYYySI8eeRxH3ZvHkMz3BQ5aJ3iUVbYPNM3/7emRtjlsMgv/9VyTsyt/mK+8fgWeT6SoFaclXqn42dAIsvAarF5vNNWHzKSkKQ/8Hfk5ZWK7r9yliOsooyBjRhfkHP4Q2DkWXQi6FG/9r/IwbmkV5T7JSopHKn1pJwm9tb5Ot0oyN1Z2mPpKXHTxx2nlK08fKk1hEYA8WgVVWL5lgx0iTv+KdojJeU23ZDjmiubXOxVXJKKi2Wjuh2HLZOFLiSC7Tls5SMh4f+Pj6xUSrNjFqLGehRNB8lC0QSLNmkJJx/wSG3MnjE9T1CkPwJI0wH2lfzwETIiVqUxg0dfu5q39Gt+hwdcxkhhNvQ4TyrBceof3Mhs/IxFci1HmHr4FMZgXEEczPiGCx0HRwzAqDq2j9AVm1kwN0mRVLWLylgtoPNapF5cY4Y1wJh/e0BBwZj44YgZrDNqvD/9Hv7GFYdUQeDJuQ3EWI4HaKqavU1XjC/n41kT4L79kqGq0kLhdTZvgP3TA3fS0ozVz+5piZsoOtIvBUFoMKbNcmBL6YxxaUAusHB38XrS8dQMnQwJfUUkpRoGr5AUeWicvBTzyK9g77+yCkf5PAysL7r/JjcZgrbvRpMW9iyaxZvKO6ceZN2EwIxKwVFPuvFuiEPGCoagbMo+SpydLrXqBzNCDGFCrO/rkcwa2xhokQZ5CdZ0AsU3JfSqJ6n5I14YA+P/uAgfhPU84Tlw7cEFfp7AEE8ey4sP12PTt4Cods1GRgDOB5xvyiR5m+Bx8O5nBCNctU8BevfV5A08x6RHd5jcwPTMDSZJOedIZ1cGQ704lxbAzqZOP05ZxaOghzSdvFBHYqomATARyAADK4elP8Ly3IrUZKfWh23Xy20uBUmLS4Pfagu9+oyVa2iPgqRP3F2CTUsvJ7+RYnN8fFZbU/HVvxvcFFDKkiTqV5UBZ3Gz54JAKByi9hkKMZJvuGgcSYXFmw08UyoQyVdfTD1/dMkCHXcTGAKeROgArsvmRrQTLUOXioOHGK2QkjHuoYFgXciZoTJd6Fs5q1QX1G+p/e26hYsEf7QZD1nnIyl/SFkNtYYmmBhpBrxl9WbY0YpHWRuw2Ll/tj9mD8P4snVzJl4F9J+1arVeTb9E5r2ILH04qStjxQNwn3m4YNqxmaNbLAqW2TN6LidwuJRqS+NXbtqxoeDXpxeGWmxzSkWxjkyCkX4NQRme6q5SAcC+M7+9ETfA/EwrzQajKakCwYyeunP6ZFlxU2oMEn1Pz31zeStW74G406ZJFCl1wAXIoUKkWotYEpOuXB1uVNxJ63dpJEqfxBeptwIHNrPz8BllZoIcBoXwgfJ+8VAUnVPvRvexnw0Ma/WiGYuJO5y8QTvEYBigFmhUxY5RqzE8OcywN/8m4UYrlaniJO75XQ6KSo9+tWHlu+hMi0UVdiKQp7NelnoZUzNaIyBPVeOwK6GNp+FfHuPOoyhaWuNvTYFkvxscMQWDh+zeFCFkgwbXftiV23ywJ4+uwRqmg9k3KzwIQpzppt8DBBOMbrqwQM5Gb05sEwdKzMiAqOloaA/lr0KA+1pr0/+HiWoiIjHA/wir2nIuS3PeU/ji3O6ZwoxcR1SZ9FhtLC5S0FIzFhbBWcGVP/KpxOPSiUoAdWUpqKH++6Scz507iCcxYI6rdMBICPJZea7OcmeFw5mObJSiqpjg2UoWNIs+cFhyDSt6geV5qgi3FunmwwDoGSMgerFOZGX1m0dMCYo5XOruxO063dwENK9DbnVM9wYFREzh4vyU1WYYJ/LRRp6oxgjqP/X5a8/4Af6p6NWkQferzBmXme0zY/4nwMJm/wd1tIqSwGz+E3xPEAOoZlJit3XddD7/BT1pllzOx+8bmQtANQ/S6fZexc6qi3W+Q2xcmXTUhuS5mpHQRvcxZUN0S5+PL9lXWUAaRZhEH8hTdAcuNMMCuVNKTEGtSUKNi3O6KhSaTzck8csZ2vWRZ+d7mW8c4IKwXIYd25S/zIftPkwPzufjEvOHWVD1m+FjpDVUTV0DGDuHj6QnaEwLu/dEgdLQOg9E1Sro9XHJ8ykLAwtPu+pxqKDuFexqON1sKQm7rwbE1E68UCfA/erovrTCG+DBSNg0l4goDQvZN6uNlbyLpcZAwj2UclycvLpIZMgv4yRlpb3YuMftozorbcGVHt/VeDV3+Fdf1TP0iuaCsPi2G4XeGhsyF1ubVDxkoJhmniQ0/jSg/eYML9KLfnCFgISWkp91eauR3IQvED0nAPXK+6hPCYs+n3+hCZbiskmVMG2da+0EsZPonUeIY8EbfusQXjsK/eFDaosbPjEfQS0RKG7yj5GG69M7MeO1HmiUYocgygJHL6M1qzUDDwUSmr99V7Sdr2F3JjQAJY+F0yH33Iv3+C9M38eML7gTgmNu/r2bUMiPvpYbZ6v1/IaESirBHNa7mPKn4dEmYg7v/+HQgPN1G79jBQ1+soydfDC2r+h2Bl/KIc5KjMK7OH6nb1jLsNf0EHVe2KBiE51ox636uyG6Lho0t3J34L5QY/ilE3mikaF4HKXG1mG1rCevT1Vv6GavltxoQe/bMrpZvRggnBxSEPEeEzkEdOxTnPXHVjUYdw8JYvjB/o7Eegc3Ma+NUxLLnsK0kJlinPmUHzHGtrk5+CAbVzFOBqpyy3QVUnzTDfC/0XD94/okH+OB+i7g9lolhWIjSnfIb+Eq43ZXOWmwvjyV/qqD+t0e+7mTEM74qP/Ozt8nmC7mRpyu63OB4KnUzFc074SqoyPUAgM+/TJGFo6T44EHnQU4X4z6qannVqgw/U7zCpwcmXV1AubIrvOmkKHazJAR55ePjp5tLBsN8vAqs3NAHdcEHOR2xQ0lsNAFzSUuxFQCFYvXLZJdOj9p4fNq6p0HBGUik2YzaI4xySy91KzhQ0+q1hjxvImRwPRf76tChlRkhRCi74NXZ9qUNeIwP+s5p+3m5nwPdNOHgSLD79n7O9m1n1uDHiMntq4nkYwV5OZ1ENbXxFd4PgrlvavZsyUO4MqYlqqn1O8W/I1dEZq5dXhrbETLaZIbC2Kj/Aa/QM+fqUOHdf0tXAQ1huZ3cmWECWSXy/43j35+Mvq9xws7JKseriZ1pEWKc8qlzNrGPUGcVgOa9cPJYIJsGnJTAUsEcDOEVULO5x0rXBijc1lgXEzQQKhROf8zIV82w8eswc78YX11KYLWQRcgHNJElBxfXr72lS2RBSl07qTKorO2uUDZr3sFhYsvnhLZn0A94KRzJ/7DEGIAhW5ZWFpL8gEwu1aLA9MuWZzNwl8Oze9Y+bX+v9gywRVnoB5I/8kXTXU3141yRLYrIOOz6SOnyHNy4SieqzkBXharjfjqq1q6tklaEbA8Qfm2DaIPs7OTq/nvJBjKfO2H9bH2cCMh1+5gspfycu8f/cuuRmtDjyqZ7uCIMyjdV3a+p3fqmXsRx4C8lujezIFHnQiVTXLXuI1XrwN3+siYYj2HHTvESUx8DlOTXpak9qFRK+L3mgJ1WsD7F4cu1aJoFoYQnu+wGDMOjJM3kiBQWHCcvhJ/HRdxodOQp45YZaOTA22Nb4XKCVxqkbwMYFhzYQYIAnCW8FW14uf98jhUG2zrKhQQ0q0CEq0t5nXyvUyvR8DvD69LU+g3i+HFWQMQ8PqZuHD+sNKAV0+M6EJC0szq7rEr7B5bQ8BcNHzvDMc9eqB5ZCQdTf80Obn4uzjwpYU7SISdtV0QGa9D3Wrh2BDQtpBKxaNFV+/Cy2P/Sv+8s7Ud0Fd74X4+o/TNztWgETUapy+majNQ68Lq3ee0ZO48VEbTZYiH1Co4OlfWef82RWeyUXo7woM03PyapGfikTnQinoNq5z5veLpeMV3HCAMTaZmA1oGLAn7XS3XYsz+XK7VMQsc4XKrmDXOLU/pSXVNUq8dIqTba///3x6LiLS6xs1xuCAYSfcQ3+rQgmu7uvf3THKt5Ooo97TqcbRqxx7EASizaQCBQllG/rYxVapMLgtLbZS64w1MDBMXX+PQpBKNwqUKOf2DDRDUXQf9EhOS0Qj4nTmlA8dzSLz/G1d+Ud8MTy/6ghhdiLpeerGY/UlDOfiuqFsMUU5/UYlP+BAmgRLuNpvrUaLlVkrqDievNVEAwF+4CoM1MZTmjxjJMsKJq+u8Zd7tNCUFy6LiyYXRJQ4VyvEQFFaCGKsxIwQkk7EzZ6LTJq2hUuPhvAW+gQnSG6J+MszC+7QCRHcnqDdyNRJ6T9xyS87A6MDutbzKGvGktpbXqtzWtXb9HsfK2cBMomjN9a4y+TaJLnXxAeX/HWzmf4cR4vALt/P4w4qgKY04ml4ZdLOinFYS6cup3G/1ie4+t1eOnpBNlqGqs75ilzkT4+DsZQxNvaSKJ//6zIbbk/M7LOhFmRc/1R+kBtz7JFGdZm/COotIdvQoXpTqP/1uqEUmCb/QWoGLMwO5ANcHzxdY48IGP5+J+zKOTBFZ4Pid+GTM+Wq12MV/H86xEJptBa6T+p3kgpwLedManBHC2GgNrFpoN2xnrMz9WFWX/8/ygSBkavq2Uv7FdCsLEYLu9LLIvAU0bNRDtzYl+/vXmjpIvuJFYjmI0im6QEYqnIeMsNjXG4vIutIGHijeAG/9EDBozKV5cldkHbLxHh25vT+ZEzbhXlqvpzKJwcEgfNwLAKFeo0/pvEE10XDB+EXRTXtSzJozQKFFAJhMxYkVaCW+E9AL7tMeU8acxidHqzb6lX4691UsDpy/LLRmT+epgW56+5Cw8tB4kMUv6s9lh3eRKbyGs+H/4mQMaYzPTf2OOdokEn+zzgvoD3FqNKk8QqGAXVsqcGdXrT62fSPkR2vROFi68A6se86UxRUk4cajfPyCC4G5wDhD+zNq4jodQ4u4n/m37Lr36n4LIAAsVr02dFi9AiwA81MYs2rm4eDlDNmdMRvEKRHfBwW5DdMNp0jPFZMeARqF/wL4XBfd+EMLBfMzpH5GH6NaW+1vrvMdg+VxDzatk3MXgO3ro3P/DpcC6+Mo4MySJhKJhSR01SGGGp5hPWmrrUgrv3lDnP+HhcI3nt3YqBoVAVTBAQT5iuhTg8nvPtd8ZeYj6w1x6RqGUBrSku7+N1+BaasZvjTk64RoIDlL8brpEcJx3OmY7jLoZsswdtmhfC/G21llXhITOwmvRDDeTTPbyASOa16cF5/A1fZAidJpqju3wYAy9avPR1ya6eNp9K8XYrrtuxlqi+bDKwlfrYdR0RRiKRVTLOH85+ZY7XSmzRpfZBJjaTa81VDcJHpZnZnSQLASGYW9l51ZV/h7eVzTi3Hv6hUsgc/51AqJRTkpbFVLXXszoBL8nBX0u/0jBLT8nH+fJePbrwURT58OY+UieRjd1vs04w0VG5VN2U6MoGZkQzKN/ptz0Q366dxoTGmj7i1NQGHi9GgnquXFYdrCfZBmeb7s0T6yrdlZH5cZuwHFyIJ/kAtGsTg0xH5taAAq44BAk1CPk9KVVbqQzrCUiFdF/6gtlPQ8bHHc1G1W92MXGZ5HEHftyLYs8mbD/9xYRUWkHmlM0zC2ilJlnNgV4bfALpQghxOUoZL7VTqtCHIaQSXm+YUMnpkXybnV+A6xlm2CVy8fn0Xlm2XRa0+zzOa21JWWmixfiPMSCZ7qA4rS93VN3pkpF1s5TonQjisHf7iU9ZGvUPOAKZcR1pbeVf/Ul7OhepGCaId9wOtqo7pJ7yLcBZ0pFkOF28y4zEI/kcUNmutBHaQpBdNM8vjCS6HZRokkeo88TBAjGyG7SR+6vUgTcyK9Imalj0kuxz0wmK+byQU11AiJFk/ya5dNduRClcnU64yGu/ieWSeOos1t3ep+RPIWQ2pyTYVbZltTbsb7NiwSi3AV+8KLWk7LxCnfZUetEM8ThnsSoGH38/nyAwFguJp8FjvlHtcWZuU4hPva0rHfr0UhOOJ/F6vS62FW7KzkmRll2HEc7oUq4fyi5T70Vl7YVIfsPHUCdHesf9Lk7WNVWO75JDkYbMI8TOW8JKVtLY9d6UJRITO8oKo0xS+o99Yy04iniGHAaGj88kEWgwv0OrHdY/nr76DOGNS59hXCGXzTKUvDl9iKpLSWYN1lxIeyywdNpTkhay74w2jFT6NS8qkjo5CxA1yfSYwp6AJIZNKIeEK5PJAW7ORgWgwp0VgzYpqovMrWxbu+DGZ6Lhie1RAqpzm8VUzKJOH3mCzWuTOLsN3VT/dv2eeYe9UjbR8YTBsLz7q60VN1sU51k+um1f8JxD5pPhbhSC8rRaB454tmh6YUWrJI3+GWY0qeWioj/tbkYITOkJaeuGt4JrJvHA+l0Gu7kY7XOaa05alMnRWVCXqFgLIwSY4uF59Ue5SU4QKuc/HamDxbr0x6csCetXGoP7Qn1Bk/J9DsynO/UD6iZ1Hyrz+jit0hDCwi/E9OjgKTbB3ZQKQ/0ZOvevfNHG0NK4Aj3Cp7NpRk07RT1i/S0EL93Ag8GRgKI9CfpajKyK6+Jj/PI1KO5/85VAwz2AwzP8FTBb075IxCXv6T9RVvWT2tUaqxDS92zrGUbWzUYk9mSs82pECH+fkqsDt93VW++4YsR/dHCYcQSYTO/KaBMDj9LSD/J/+z20Kq8XvZUAIHtm9hRPP3ItbuAu2Hm5lkPs92pd7kCxgRs0xOVBnZ13ccdA0aunrwv9SdqElJRC3g+oCu+nXyCgmXUs9yMjTMAIHfxZV+aPKcZeUBWt057Xo85Ks1Ir5gzEHCWqZEhrLZMuF11ziGtFQUds/EESajhagzcKsxamcSZxGth4UII+adPhQkUnx2WyN+4YWR+r3f8MnkyGFuR4zjzxJS8WsQYR5PTyRaD9ixa6Mh741nBHbzfjXHskGDq179xaRNrCIB1z1xRfWfjqw2pHc1zk9xlPpL8sQWAIuETZZhbnmL54rceXVNRvUiKrrqIkeogsl0XXb17ylNb0f4GA9Wd44vffEG8FSZGHEL2fbaTGRcSiCeA8PmA/f6Hz8HCS76fXUHwgwkzSwlI71ekZ7Fapmlk/KC+Hs8hUcw3N2LN5LhkVYyizYFl/uPeVP5lsoJHhhfWvvSWruCUW1ZcJOeuTbrDgywJ/qG07gZJplnTvLcYdNaH0KMYOYMGX+rB4NGPFmQsNaIwlWrfCezxre8zXBrsMT+edVLbLqN1BqB76JH4BvZTqUIMfGwPGEn+EnmTV86fPBaYbFL3DFEhjB45CewkXEAtJxk4/Ms2pPXnaRqdky0HOYdcUcE2zcXq4vaIvW2/v0nHFJH2XXe22ueDmq/18XGtELSq85j9X8q0tcNSSKJIX8FTuJF/Pf8j5PhqG2u+osvsLxYrvvfeVJL+4tkcXcr9JV7v0ERmj/X6fM3NC4j6dS1+9Umr2oPavqiAydTZPLMNRGY23LO9zAVDly7jD+70G5TPPLdhRIl4WxcYjLnM+SNcJ26FOrkrISUtPObIz5Zb3AG612krnpy15RMW+1cQjlnWFI6538qky9axd2oJmHIHP08KyP0ubGO+TQNOYuv2uh17yCIvR8VcStw7o1g0NM60sk+8Tq7YfIBJrtp53GkvzXH7OA0p8/n/u1satf/VJhtR1l8Wa6Gmaug7haSpaCaYQax6ta0mkutlb+eAOSG1aobM81D9A4iS1RRlzBBoVX6tU1S6WE2N9ORY6DfeLRC4l9Rvr5h95XDWB2mR1d4WFudpsgVYwiTwT31ljskD8ZyDOlm5DkGh9N/UB/0AI5Xvb8ZBmai2hQ4BWMqFwYnzxwB26YHSOv9WgY3JXnvoN+2R4rqGVh/LLDMtpFP+SpMGJNWvbIl5SOodbCczW2RKleksPoUeGEzrjtKHVdtZA+kfqO+rVx/iclCqwoopepvJpSTDjT+b9GWylGRF8EDbGlw6eUzmJM95Ovoz+kwLX3c2fTjFeYEsE7vUZm3mqdGJuKh2w9/QGSaqRHs99aScGOdDqkFcACoqdbBoQqqjamhH6Q9ng39JCg3lrGJwd50Qk9ovnqBTr8MME7Ps2wiVfygUmPoUBJJfJWX5Nda0nuncbFkA=='));\n}\n\n", "/**\n * MIT License\n *\n * Copyright (c) 2021 Andrew Raffensperger\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n *\n * This is a near carbon-copy of the original source (link below) with the\n * TypeScript typings added and a few tweaks to make it ES3-compatible.\n *\n * See: https://github.com/adraffy/ens-normalize.js\n */\n\nimport { toUtf8CodePoints } from \"@ethersproject/strings\";\n\nimport { getData } from './include.js';\nconst r = getData();\n\nimport {read_member_array, read_mapped_map, read_emoji_trie} from './decoder.js';\n\n// @TODO: This should be lazily loaded\n\nconst VALID = new Set(read_member_array(r));\nconst IGNORED = new Set(read_member_array(r));\nconst MAPPED = read_mapped_map(r);\nconst EMOJI_ROOT = read_emoji_trie(r);\n//const NFC_CHECK = new Set(read_member_array(r, Array.from(VALID.values()).sort((a, b) => a - b)));\n\n//const STOP = 0x2E;\nconst HYPHEN = 0x2D;\nconst UNDERSCORE = 0x5F;\n\nfunction explode_cp(name: string): Array {\n return toUtf8CodePoints(name);\n}\n\nfunction filter_fe0f(cps: Array): Array {\n return cps.filter(cp => cp != 0xFE0F);\n}\n\nexport function ens_normalize_post_check(name: string): string {\n\tfor (let label of name.split('.')) {\n\t\tlet cps = explode_cp(label);\n\t\ttry {\n\t\t\tfor (let i = cps.lastIndexOf(UNDERSCORE) - 1; i >= 0; i--) {\n\t\t\t\tif (cps[i] !== UNDERSCORE) {\n\t\t\t\t\tthrow new Error(`underscore only allowed at start`);\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (cps.length >= 4 && cps.every(cp => cp < 0x80) && cps[2] === HYPHEN && cps[3] === HYPHEN) {\n\t\t\t\tthrow new Error(`invalid label extension`);\n\t\t\t}\n\t\t} catch (err) {\n\t\t\tthrow new Error(`Invalid label \"${label}\": ${err.message}`);\n\t\t}\n\t}\n\treturn name;\n}\n\nexport function ens_normalize(name: string): string {\n\treturn ens_normalize_post_check(normalize(name, filter_fe0f));\n}\n\nfunction normalize(name: string, emoji_filter: (a: Array) => Array): string {\n\tlet input = explode_cp(name).reverse(); // flip for pop\n\tlet output = [];\n\twhile (input.length) {\t\t\n\t\tlet emoji = consume_emoji_reversed(input);\n\t\tif (emoji) {\n\t\t\toutput.push(...emoji_filter(emoji));\n\t\t\tcontinue;\n\t\t}\n\t\tlet cp = input.pop();\n\t\tif (VALID.has(cp)) {\n\t\t\toutput.push(cp);\n\t\t\tcontinue;\n\t\t} \n\t\tif (IGNORED.has(cp)) {\n\t\t\tcontinue;\n\t\t}\n\t\tlet cps = MAPPED[cp];\n\t\tif (cps) {\n\t\t\toutput.push(...cps);\n\t\t\tcontinue;\n\t\t}\n\t\tthrow new Error(`Disallowed codepoint: 0x${cp.toString(16).toUpperCase()}`);\n\t}\n\treturn ens_normalize_post_check(nfc(String.fromCodePoint(...output)));\n}\n\nfunction nfc(s: string): string {\n return s.normalize('NFC');\n}\n\nfunction consume_emoji_reversed(cps: Array, eaten?: Array) {\n\tlet node = EMOJI_ROOT;\n\tlet emoji;\n\tlet saved;\n\tlet stack = [];\n\tlet pos = cps.length;\n\tif (eaten) eaten.length = 0; // clear input buffer (if needed)\n\twhile (pos) {\n\t\tlet cp = cps[--pos];\n\t\tnode = node.branches.find(x => x.set.has(cp))?.node;\n\t\tif (!node) break;\n\t\tif (node.save) { // remember\n\t\t\tsaved = cp;\n\t\t} else if (node.check) { // check exclusion\n\t\t\tif (cp === saved) break;\n\t\t}\n\t\tstack.push(cp);\n\t\tif (node.fe0f) {\n\t\t\tstack.push(0xFE0F);\n\t\t\tif (pos > 0 && cps[pos - 1] == 0xFE0F) pos--; // consume optional FE0F\n\t\t}\n\t\tif (node.valid) { // this is a valid emoji (so far)\n\t\t\temoji = stack.slice(); // copy stack\n\t\t\tif (node.valid == 2) emoji.splice(1, 1); // delete FE0F at position 1 (RGI ZWJ don't follow spec!)\n\t\t\tif (eaten) eaten.push(...cps.slice(pos).reverse()); // copy input (if needed)\n\t\t\tcps.length = pos; // truncate\n\t\t}\n\t}\n\treturn emoji;\n}\n", "import { concat, hexlify } from \"@ethersproject/bytes\";\nimport { toUtf8Bytes, toUtf8String } from \"@ethersproject/strings\";\nimport { keccak256 } from \"@ethersproject/keccak256\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\nimport { ens_normalize } from \"./ens-normalize/lib\";\n\nconst Zeros = new Uint8Array(32);\nZeros.fill(0);\n\nfunction checkComponent(comp: Uint8Array): Uint8Array {\n if (comp.length === 0) { throw new Error(\"invalid ENS name; empty component\"); }\n return comp;\n}\n\nfunction ensNameSplit(name: string): Array {\n const bytes = toUtf8Bytes(ens_normalize(name));\n const comps: Array = [ ];\n\n if (name.length === 0) { return comps; }\n\n let last = 0;\n for (let i = 0; i < bytes.length; i++) {\n const d = bytes[i];\n\n // A separator (i.e. \".\"); copy this component\n if (d === 0x2e) {\n comps.push(checkComponent(bytes.slice(last, i)));\n last = i + 1;\n }\n }\n\n // There was a stray separator at the end of the name\n if (last >= bytes.length) { throw new Error(\"invalid ENS name; empty component\"); }\n\n comps.push(checkComponent(bytes.slice(last)));\n return comps;\n}\n\nexport function ensNormalize(name: string): string {\n return ensNameSplit(name).map((comp) => toUtf8String(comp)).join(\".\");\n}\n\nexport function isValidName(name: string): boolean {\n try {\n return (ensNameSplit(name).length !== 0);\n } catch (error) { }\n return false;\n}\n\nexport function namehash(name: string): string {\n /* istanbul ignore if */\n if (typeof(name) !== \"string\") {\n logger.throwArgumentError(\"invalid ENS name; not a string\", \"name\", name);\n }\n\n let result: string | Uint8Array = Zeros;\n\n const comps = ensNameSplit(name);\n while (comps.length) {\n result = keccak256(concat([result, keccak256(comps.pop())]));\n }\n\n return hexlify(result);\n}\n\nexport function dnsEncode(name: string): string {\n return hexlify(concat(ensNameSplit(name).map((comp) => {\n // DNS does not allow components over 63 bytes in length\n if (comp.length > 63) {\n throw new Error(\"invalid DNS encoded entry; length exceeds 63 bytes\");\n }\n\n const bytes = new Uint8Array(comp.length + 1);\n bytes.set(comp, 1);\n bytes[0] = bytes.length - 1;\n return bytes;\n\n }))) + \"00\";\n}\n", "import { Bytes, concat } from \"@ethersproject/bytes\";\nimport { keccak256 } from \"@ethersproject/keccak256\";\nimport { toUtf8Bytes } from \"@ethersproject/strings\";\n\nexport const messagePrefix = \"\\x19Ethereum Signed Message:\\n\";\n\nexport function hashMessage(message: Bytes | string): string {\n if (typeof(message) === \"string\") { message = toUtf8Bytes(message); }\n return keccak256(concat([\n toUtf8Bytes(messagePrefix),\n toUtf8Bytes(String(message.length)),\n message\n ]));\n}\n\n", "import { TypedDataDomain, TypedDataField } from \"@ethersproject/abstract-signer\";\nimport { getAddress } from \"@ethersproject/address\";\nimport { BigNumber, BigNumberish } from \"@ethersproject/bignumber\";\nimport { arrayify, BytesLike, hexConcat, hexlify, hexZeroPad, isHexString } from \"@ethersproject/bytes\";\nimport { keccak256 } from \"@ethersproject/keccak256\";\nimport { deepCopy, defineReadOnly, shallowCopy } from \"@ethersproject/properties\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\nimport { id } from \"./id\";\n\nconst padding = new Uint8Array(32);\npadding.fill(0);\n\nconst NegativeOne: BigNumber = BigNumber.from(-1);\nconst Zero: BigNumber = BigNumber.from(0);\nconst One: BigNumber = BigNumber.from(1);\nconst MaxUint256: BigNumber = BigNumber.from(\"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\");\n\nfunction hexPadRight(value: BytesLike) {\n const bytes = arrayify(value);\n const padOffset = bytes.length % 32\n if (padOffset) {\n return hexConcat([ bytes, padding.slice(padOffset) ]);\n }\n return hexlify(bytes);\n}\n\nconst hexTrue = hexZeroPad(One.toHexString(), 32);\nconst hexFalse = hexZeroPad(Zero.toHexString(), 32);\n\nconst domainFieldTypes: Record = {\n name: \"string\",\n version: \"string\",\n chainId: \"uint256\",\n verifyingContract: \"address\",\n salt: \"bytes32\"\n};\n\nconst domainFieldNames: Array = [\n \"name\", \"version\", \"chainId\", \"verifyingContract\", \"salt\"\n];\n\nfunction checkString(key: string): (value: any) => string {\n return function (value: any){\n if (typeof(value) !== \"string\") {\n logger.throwArgumentError(`invalid domain value for ${ JSON.stringify(key) }`, `domain.${ key }`, value);\n }\n return value;\n }\n}\n\nconst domainChecks: Record any> = {\n name: checkString(\"name\"),\n version: checkString(\"version\"),\n chainId: function(value: any) {\n try {\n return BigNumber.from(value).toString()\n } catch (error) { }\n return logger.throwArgumentError(`invalid domain value for \"chainId\"`, \"domain.chainId\", value);\n },\n verifyingContract: function(value: any) {\n try {\n return getAddress(value).toLowerCase();\n } catch (error) { }\n return logger.throwArgumentError(`invalid domain value \"verifyingContract\"`, \"domain.verifyingContract\", value);\n },\n salt: function(value: any) {\n try {\n const bytes = arrayify(value);\n if (bytes.length !== 32) { throw new Error(\"bad length\"); }\n return hexlify(bytes);\n } catch (error) { }\n return logger.throwArgumentError(`invalid domain value \"salt\"`, \"domain.salt\", value);\n }\n}\n\nfunction getBaseEncoder(type: string): (value: any) => string {\n // intXX and uintXX\n {\n const match = type.match(/^(u?)int(\\d*)$/);\n if (match) {\n const signed = (match[1] === \"\");\n\n const width = parseInt(match[2] || \"256\");\n if (width % 8 !== 0 || width > 256 || (match[2] && match[2] !== String(width))) {\n logger.throwArgumentError(\"invalid numeric width\", \"type\", type);\n }\n\n const boundsUpper = MaxUint256.mask(signed ? (width - 1): width);\n const boundsLower = signed ? boundsUpper.add(One).mul(NegativeOne): Zero;\n\n return function(value: BigNumberish) {\n const v = BigNumber.from(value);\n\n if (v.lt(boundsLower) || v.gt(boundsUpper)) {\n logger.throwArgumentError(`value out-of-bounds for ${ type }`, \"value\", value);\n }\n\n return hexZeroPad(v.toTwos(256).toHexString(), 32);\n };\n }\n }\n\n // bytesXX\n {\n const match = type.match(/^bytes(\\d+)$/);\n if (match) {\n const width = parseInt(match[1]);\n if (width === 0 || width > 32 || match[1] !== String(width)) {\n logger.throwArgumentError(\"invalid bytes width\", \"type\", type);\n }\n\n return function(value: BytesLike) {\n const bytes = arrayify(value);\n if (bytes.length !== width) {\n logger.throwArgumentError(`invalid length for ${ type }`, \"value\", value);\n }\n return hexPadRight(value);\n };\n }\n }\n\n switch (type) {\n case \"address\": return function(value: string) {\n return hexZeroPad(getAddress(value), 32);\n };\n case \"bool\": return function(value: boolean) {\n return ((!value) ? hexFalse: hexTrue);\n };\n case \"bytes\": return function(value: BytesLike) {\n return keccak256(value);\n };\n case \"string\": return function(value: string) {\n return id(value);\n };\n }\n\n return null;\n}\n\nfunction encodeType(name: string, fields: Array): string {\n return `${ name }(${ fields.map(({ name, type }) => (type + \" \" + name)).join(\",\") })`;\n}\n\nexport class TypedDataEncoder {\n readonly primaryType: string;\n readonly types: Record>;\n\n readonly _encoderCache: Record string>;\n readonly _types: Record;\n\n constructor(types: Record>) {\n defineReadOnly(this, \"types\", Object.freeze(deepCopy(types)));\n\n defineReadOnly(this, \"_encoderCache\", { });\n defineReadOnly(this, \"_types\", { });\n\n // Link struct types to their direct child structs\n const links: Record> = { };\n\n // Link structs to structs which contain them as a child\n const parents: Record> = { };\n\n // Link all subtypes within a given struct\n const subtypes: Record> = { };\n\n Object.keys(types).forEach((type) => {\n links[type] = { };\n parents[type] = [ ];\n subtypes[type] = { }\n });\n\n for (const name in types) {\n\n const uniqueNames: Record = { };\n\n types[name].forEach((field) => {\n\n // Check each field has a unique name\n if (uniqueNames[field.name]) {\n logger.throwArgumentError(`duplicate variable name ${ JSON.stringify(field.name) } in ${ JSON.stringify(name) }`, \"types\", types);\n }\n uniqueNames[field.name] = true;\n\n // Get the base type (drop any array specifiers)\n const baseType = field.type.match(/^([^\\x5b]*)(\\x5b|$)/)[1];\n if (baseType === name) {\n logger.throwArgumentError(`circular type reference to ${ JSON.stringify(baseType) }`, \"types\", types);\n }\n\n // Is this a base encoding type?\n const encoder = getBaseEncoder(baseType);\n if (encoder) { return ;}\n\n if (!parents[baseType]) {\n logger.throwArgumentError(`unknown type ${ JSON.stringify(baseType) }`, \"types\", types);\n }\n\n // Add linkage\n parents[baseType].push(name);\n links[name][baseType] = true;\n });\n }\n\n // Deduce the primary type\n const primaryTypes = Object.keys(parents).filter((n) => (parents[n].length === 0));\n\n if (primaryTypes.length === 0) {\n logger.throwArgumentError(\"missing primary type\", \"types\", types);\n } else if (primaryTypes.length > 1) {\n logger.throwArgumentError(`ambiguous primary types or unused types: ${ primaryTypes.map((t) => (JSON.stringify(t))).join(\", \") }`, \"types\", types);\n }\n\n defineReadOnly(this, \"primaryType\", primaryTypes[0]);\n\n // Check for circular type references\n function checkCircular(type: string, found: Record) {\n if (found[type]) {\n logger.throwArgumentError(`circular type reference to ${ JSON.stringify(type) }`, \"types\", types);\n }\n\n found[type] = true;\n\n Object.keys(links[type]).forEach((child) => {\n if (!parents[child]) { return; }\n\n // Recursively check children\n checkCircular(child, found);\n\n // Mark all ancestors as having this decendant\n Object.keys(found).forEach((subtype) => {\n subtypes[subtype][child] = true;\n });\n });\n\n delete found[type];\n }\n checkCircular(this.primaryType, { });\n\n // Compute each fully describe type\n for (const name in subtypes) {\n const st = Object.keys(subtypes[name]);\n st.sort();\n this._types[name] = encodeType(name, types[name]) + st.map((t) => encodeType(t, types[t])).join(\"\");\n }\n }\n\n getEncoder(type: string): (value: any) => string {\n let encoder = this._encoderCache[type];\n if (!encoder) {\n encoder = this._encoderCache[type] = this._getEncoder(type);\n }\n return encoder;\n }\n\n _getEncoder(type: string): (value: any) => string {\n\n // Basic encoder type (address, bool, uint256, etc)\n {\n const encoder = getBaseEncoder(type);\n if (encoder) { return encoder; }\n }\n\n // Array\n const match = type.match(/^(.*)(\\x5b(\\d*)\\x5d)$/);\n if (match) {\n const subtype = match[1];\n const subEncoder = this.getEncoder(subtype);\n const length = parseInt(match[3]);\n return (value: Array) => {\n if (length >= 0 && value.length !== length) {\n logger.throwArgumentError(\"array length mismatch; expected length ${ arrayLength }\", \"value\", value);\n }\n\n let result = value.map(subEncoder);\n if (this._types[subtype]) {\n result = result.map(keccak256);\n }\n\n return keccak256(hexConcat(result));\n };\n }\n\n // Struct\n const fields = this.types[type];\n if (fields) {\n const encodedType = id(this._types[type]);\n return (value: Record) => {\n const values = fields.map(({ name, type }) => {\n const result = this.getEncoder(type)(value[name]);\n if (this._types[type]) { return keccak256(result); }\n return result;\n });\n values.unshift(encodedType);\n return hexConcat(values);\n }\n }\n\n return logger.throwArgumentError(`unknown type: ${ type }`, \"type\", type);\n }\n\n encodeType(name: string): string {\n const result = this._types[name];\n if (!result) {\n logger.throwArgumentError(`unknown type: ${ JSON.stringify(name) }`, \"name\", name);\n }\n return result;\n }\n\n encodeData(type: string, value: any): string {\n return this.getEncoder(type)(value);\n }\n\n hashStruct(name: string, value: Record): string {\n return keccak256(this.encodeData(name, value));\n }\n\n encode(value: Record): string {\n return this.encodeData(this.primaryType, value);\n }\n\n hash(value: Record): string {\n return this.hashStruct(this.primaryType, value);\n }\n\n _visit(type: string, value: any, callback: (type: string, data: any) => any): any {\n // Basic encoder type (address, bool, uint256, etc)\n {\n const encoder = getBaseEncoder(type);\n if (encoder) { return callback(type, value); }\n }\n\n // Array\n const match = type.match(/^(.*)(\\x5b(\\d*)\\x5d)$/);\n if (match) {\n const subtype = match[1];\n const length = parseInt(match[3]);\n if (length >= 0 && value.length !== length) {\n logger.throwArgumentError(\"array length mismatch; expected length ${ arrayLength }\", \"value\", value);\n }\n return value.map((v: any) => this._visit(subtype, v, callback));\n }\n\n // Struct\n const fields = this.types[type];\n if (fields) {\n return fields.reduce((accum, { name, type }) => {\n accum[name] = this._visit(type, value[name], callback);\n return accum;\n }, >{});\n }\n\n return logger.throwArgumentError(`unknown type: ${ type }`, \"type\", type);\n }\n\n visit(value: Record, callback: (type: string, data: any) => any): any {\n return this._visit(this.primaryType, value, callback);\n }\n\n static from(types: Record>): TypedDataEncoder {\n return new TypedDataEncoder(types);\n }\n\n static getPrimaryType(types: Record>): string {\n return TypedDataEncoder.from(types).primaryType;\n }\n\n static hashStruct(name: string, types: Record>, value: Record): string {\n return TypedDataEncoder.from(types).hashStruct(name, value);\n }\n\n static hashDomain(domain: TypedDataDomain): string {\n const domainFields: Array = [ ];\n for (const name in domain) {\n const type = domainFieldTypes[name];\n if (!type) {\n logger.throwArgumentError(`invalid typed-data domain key: ${ JSON.stringify(name) }`, \"domain\", domain);\n }\n domainFields.push({ name, type });\n }\n\n domainFields.sort((a, b) => {\n return domainFieldNames.indexOf(a.name) - domainFieldNames.indexOf(b.name);\n });\n\n return TypedDataEncoder.hashStruct(\"EIP712Domain\", { EIP712Domain: domainFields }, domain);\n }\n\n static encode(domain: TypedDataDomain, types: Record>, value: Record): string {\n return hexConcat([\n \"0x1901\",\n TypedDataEncoder.hashDomain(domain),\n TypedDataEncoder.from(types).hash(value)\n ]);\n }\n\n static hash(domain: TypedDataDomain, types: Record>, value: Record): string {\n return keccak256(TypedDataEncoder.encode(domain, types, value));\n }\n\n // Replaces all address types with ENS names with their looked up address\n static async resolveNames(domain: TypedDataDomain, types: Record>, value: Record, resolveName: (name: string) => Promise): Promise<{ domain: TypedDataDomain, value: any }> {\n // Make a copy to isolate it from the object passed in\n domain = shallowCopy(domain);\n\n // Look up all ENS names\n const ensCache: Record = { };\n\n // Do we need to look up the domain's verifyingContract?\n if (domain.verifyingContract && !isHexString(domain.verifyingContract, 20)) {\n ensCache[domain.verifyingContract] = \"0x\";\n }\n\n // We are going to use the encoder to visit all the base values\n const encoder = TypedDataEncoder.from(types);\n\n // Get a list of all the addresses\n encoder.visit(value, (type: string, value: any) => {\n if (type === \"address\" && !isHexString(value, 20)) {\n ensCache[value] = \"0x\";\n }\n return value;\n });\n\n // Lookup each name\n for (const name in ensCache) {\n ensCache[name] = await resolveName(name);\n }\n\n // Replace the domain verifyingContract if needed\n if (domain.verifyingContract && ensCache[domain.verifyingContract]) {\n domain.verifyingContract = ensCache[domain.verifyingContract];\n }\n\n // Replace all ENS names with their address\n value = encoder.visit(value, (type: string, value: any) => {\n if (type === \"address\" && ensCache[value]) { return ensCache[value]; }\n return value;\n });\n\n return { domain, value };\n }\n\n static getPayload(domain: TypedDataDomain, types: Record>, value: Record): any {\n // Validate the domain fields\n TypedDataEncoder.hashDomain(domain);\n\n // Derive the EIP712Domain Struct reference type\n const domainValues: Record = { };\n const domainTypes: Array<{ name: string, type:string }> = [ ];\n\n domainFieldNames.forEach((name) => {\n const value = (domain)[name];\n if (value == null) { return; }\n domainValues[name] = domainChecks[name](value);\n domainTypes.push({ name, type: domainFieldTypes[name] });\n });\n\n const encoder = TypedDataEncoder.from(types);\n\n const typesWithDomain = shallowCopy(types);\n if (typesWithDomain.EIP712Domain) {\n logger.throwArgumentError(\"types must not contain EIP712Domain type\", \"types.EIP712Domain\", types);\n } else {\n typesWithDomain.EIP712Domain = domainTypes;\n }\n\n // Validate the data structures and types\n encoder.encode(value);\n\n return {\n types: typesWithDomain,\n domain: domainValues,\n primaryType: encoder.primaryType,\n message: encoder.visit(value, (type: string, value: any) => {\n\n // bytes\n if (type.match(/^bytes(\\d*)/)) {\n return hexlify(arrayify(value));\n }\n\n // uint or int\n if (type.match(/^u?int/)) {\n return BigNumber.from(value).toString();\n }\n\n switch (type) {\n case \"address\":\n return value.toLowerCase();\n case \"bool\":\n return !!value;\n case \"string\":\n if (typeof(value) !== \"string\") {\n logger.throwArgumentError(`invalid string`, \"value\", value);\n }\n return value;\n }\n\n return logger.throwArgumentError(\"unsupported type\", \"type\", type);\n })\n };\n }\n}\n\n", "\"use strict\";\n\nimport { id } from \"./id\";\nimport { dnsEncode, isValidName, namehash } from \"./namehash\";\nimport { hashMessage, messagePrefix } from \"./message\";\n\nimport { ensNormalize } from \"./namehash\";\n\nimport { TypedDataEncoder as _TypedDataEncoder } from \"./typed-data\";\n\nexport {\n id,\n\n dnsEncode,\n namehash,\n isValidName,\n\n ensNormalize,\n\n messagePrefix,\n hashMessage,\n\n _TypedDataEncoder,\n}\n", "\"use strict\";\n\nimport { getAddress } from \"@ethersproject/address\";\nimport { BigNumber, BigNumberish } from \"@ethersproject/bignumber\";\nimport { arrayify, BytesLike, concat, hexDataSlice, hexlify, hexZeroPad, isHexString } from \"@ethersproject/bytes\";\nimport { id } from \"@ethersproject/hash\";\nimport { keccak256 } from \"@ethersproject/keccak256\"\nimport { defineReadOnly, Description, getStatic } from \"@ethersproject/properties\";\n\nimport { AbiCoder, defaultAbiCoder } from \"./abi-coder\";\nimport { checkResultErrors, Result } from \"./coders/abstract-coder\";\nimport { ConstructorFragment, ErrorFragment, EventFragment, FormatTypes, Fragment, FunctionFragment, JsonFragment, ParamType } from \"./fragments\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\nexport { checkResultErrors, Result };\n\nexport class LogDescription extends Description {\n readonly eventFragment: EventFragment;\n readonly name: string;\n readonly signature: string;\n readonly topic: string;\n readonly args: Result\n}\n\nexport class TransactionDescription extends Description {\n readonly functionFragment: FunctionFragment;\n readonly name: string;\n readonly args: Result;\n readonly signature: string;\n readonly sighash: string;\n readonly value: BigNumber;\n}\n\nexport class ErrorDescription extends Description {\n readonly errorFragment: ErrorFragment;\n readonly name: string;\n readonly args: Result;\n readonly signature: string;\n readonly sighash: string;\n}\n\nexport class Indexed extends Description {\n readonly hash: string;\n readonly _isIndexed: boolean;\n\n static isIndexed(value: any): value is Indexed {\n return !!(value && value._isIndexed);\n }\n}\n\nconst BuiltinErrors: Record, name: string, reason?: boolean }> = {\n \"0x08c379a0\": { signature: \"Error(string)\", name: \"Error\", inputs: [ \"string\" ], reason: true },\n \"0x4e487b71\": { signature: \"Panic(uint256)\", name: \"Panic\", inputs: [ \"uint256\" ] }\n}\n\nfunction wrapAccessError(property: string, error: Error): Error {\n const wrap = new Error(`deferred error during ABI decoding triggered accessing ${ property }`);\n (wrap).error = error;\n return wrap;\n}\n\n/*\nfunction checkNames(fragment: Fragment, type: \"input\" | \"output\", params: Array): void {\n params.reduce((accum, param) => {\n if (param.name) {\n if (accum[param.name]) {\n logger.throwArgumentError(`duplicate ${ type } parameter ${ JSON.stringify(param.name) } in ${ fragment.format(\"full\") }`, \"fragment\", fragment);\n }\n accum[param.name] = true;\n }\n return accum;\n }, <{ [ name: string ]: boolean }>{ });\n}\n*/\nexport class Interface {\n readonly fragments: ReadonlyArray;\n\n readonly errors: { [ name: string ]: ErrorFragment };\n readonly events: { [ name: string ]: EventFragment };\n readonly functions: { [ name: string ]: FunctionFragment };\n readonly structs: { [ name: string ]: any };\n\n readonly deploy: ConstructorFragment;\n\n readonly _abiCoder: AbiCoder;\n\n readonly _isInterface: boolean;\n\n constructor(fragments: string | ReadonlyArray) {\n let abi: ReadonlyArray = [ ];\n if (typeof(fragments) === \"string\") {\n abi = JSON.parse(fragments);\n } else {\n abi = fragments;\n }\n\n defineReadOnly(this, \"fragments\", abi.map((fragment) => {\n return Fragment.from(fragment);\n }).filter((fragment) => (fragment != null)));\n\n defineReadOnly(this, \"_abiCoder\", getStatic<() => AbiCoder>(new.target, \"getAbiCoder\")());\n\n defineReadOnly(this, \"functions\", { });\n defineReadOnly(this, \"errors\", { });\n defineReadOnly(this, \"events\", { });\n defineReadOnly(this, \"structs\", { });\n\n // Add all fragments by their signature\n this.fragments.forEach((fragment) => {\n let bucket: { [ name: string ]: Fragment } = null;\n switch (fragment.type) {\n case \"constructor\":\n if (this.deploy) {\n logger.warn(\"duplicate definition - constructor\");\n return;\n }\n //checkNames(fragment, \"input\", fragment.inputs);\n defineReadOnly(this, \"deploy\", fragment);\n return;\n case \"function\":\n //checkNames(fragment, \"input\", fragment.inputs);\n //checkNames(fragment, \"output\", (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\n let signature = fragment.format();\n if (bucket[signature]) {\n logger.warn(\"duplicate definition - \" + signature);\n return;\n }\n\n bucket[signature] = fragment;\n });\n\n // If we do not have a constructor add a default\n if (!this.deploy) {\n defineReadOnly(this, \"deploy\", ConstructorFragment.from({\n payable: false,\n type: \"constructor\"\n }));\n }\n\n defineReadOnly(this, \"_isInterface\", true);\n }\n\n format(format?: string): string | Array {\n if (!format) { format = FormatTypes.full; }\n if (format === FormatTypes.sighash) {\n logger.throwArgumentError(\"interface does not support formatting sighash\", \"format\", format);\n }\n\n const abi = this.fragments.map((fragment) => fragment.format(format));\n\n // We need to re-bundle the JSON fragments a bit\n if (format === FormatTypes.json) {\n return JSON.stringify(abi.map((j) => JSON.parse(j)));\n }\n\n return abi;\n }\n\n // Sub-classes can override these to handle other blockchains\n static getAbiCoder(): AbiCoder {\n return defaultAbiCoder;\n }\n\n static getAddress(address: string): string {\n return getAddress(address);\n }\n\n static getSighash(fragment: ErrorFragment | FunctionFragment): string {\n return hexDataSlice(id(fragment.format()), 0, 4);\n }\n\n static getEventTopic(eventFragment: EventFragment): string {\n return id(eventFragment.format());\n }\n\n // Find a function definition by any means necessary (unless it is ambiguous)\n getFunction(nameOrSignatureOrSighash: string): FunctionFragment {\n if (isHexString(nameOrSignatureOrSighash)) {\n for (const name in this.functions) {\n if (nameOrSignatureOrSighash === this.getSighash(name)) {\n return this.functions[name];\n }\n }\n logger.throwArgumentError(\"no matching function\", \"sighash\", nameOrSignatureOrSighash);\n }\n\n // It is a bare name, look up the function (will return null if ambiguous)\n if (nameOrSignatureOrSighash.indexOf(\"(\") === -1) {\n const name = nameOrSignatureOrSighash.trim();\n const matching = Object.keys(this.functions).filter((f) => (f.split(\"(\"/* fix:) */)[0] === name));\n if (matching.length === 0) {\n logger.throwArgumentError(\"no matching function\", \"name\", name);\n } else if (matching.length > 1) {\n logger.throwArgumentError(\"multiple matching functions\", \"name\", name);\n }\n\n return this.functions[matching[0]];\n }\n\n // Normalize the signature and lookup the function\n const result = this.functions[FunctionFragment.fromString(nameOrSignatureOrSighash).format()];\n if (!result) {\n logger.throwArgumentError(\"no matching function\", \"signature\", nameOrSignatureOrSighash);\n }\n return result;\n }\n\n // Find an event definition by any means necessary (unless it is ambiguous)\n getEvent(nameOrSignatureOrTopic: string): EventFragment {\n if (isHexString(nameOrSignatureOrTopic)) {\n const topichash = nameOrSignatureOrTopic.toLowerCase();\n for (const name in this.events) {\n if (topichash === this.getEventTopic(name)) {\n return this.events[name];\n }\n }\n logger.throwArgumentError(\"no matching event\", \"topichash\", topichash);\n }\n\n // It is a bare name, look up the function (will return null if ambiguous)\n if (nameOrSignatureOrTopic.indexOf(\"(\") === -1) {\n const name = nameOrSignatureOrTopic.trim();\n const matching = Object.keys(this.events).filter((f) => (f.split(\"(\"/* fix:) */)[0] === name));\n if (matching.length === 0) {\n logger.throwArgumentError(\"no matching event\", \"name\", name);\n } else if (matching.length > 1) {\n logger.throwArgumentError(\"multiple matching events\", \"name\", name);\n }\n\n return this.events[matching[0]];\n }\n\n // Normalize the signature and lookup the function\n const result = this.events[EventFragment.fromString(nameOrSignatureOrTopic).format()];\n if (!result) {\n logger.throwArgumentError(\"no matching event\", \"signature\", nameOrSignatureOrTopic);\n }\n return result;\n }\n\n // Find a function definition by any means necessary (unless it is ambiguous)\n getError(nameOrSignatureOrSighash: string): ErrorFragment {\n if (isHexString(nameOrSignatureOrSighash)) {\n const getSighash = getStatic<(f: ErrorFragment | FunctionFragment) => string>(this.constructor, \"getSighash\");\n for (const name in this.errors) {\n const error = this.errors[name];\n if (nameOrSignatureOrSighash === getSighash(error)) {\n return this.errors[name];\n }\n }\n logger.throwArgumentError(\"no matching error\", \"sighash\", nameOrSignatureOrSighash);\n }\n\n // It is a bare name, look up the function (will return null if ambiguous)\n if (nameOrSignatureOrSighash.indexOf(\"(\") === -1) {\n const name = nameOrSignatureOrSighash.trim();\n const matching = Object.keys(this.errors).filter((f) => (f.split(\"(\"/* fix:) */)[0] === name));\n if (matching.length === 0) {\n logger.throwArgumentError(\"no matching error\", \"name\", name);\n } else if (matching.length > 1) {\n logger.throwArgumentError(\"multiple matching errors\", \"name\", name);\n }\n\n return this.errors[matching[0]];\n }\n\n // Normalize the signature and lookup the function\n const result = this.errors[FunctionFragment.fromString(nameOrSignatureOrSighash).format()];\n if (!result) {\n logger.throwArgumentError(\"no matching error\", \"signature\", nameOrSignatureOrSighash);\n }\n return result;\n }\n\n // Get the sighash (the bytes4 selector) used by Solidity to identify a function\n getSighash(fragment: ErrorFragment | FunctionFragment | string): string {\n if (typeof(fragment) === \"string\") {\n try {\n fragment = this.getFunction(fragment);\n } catch (error) {\n try {\n fragment = this.getError(fragment);\n } catch (_) {\n throw error;\n }\n }\n }\n\n return getStatic<(f: ErrorFragment | FunctionFragment) => string>(this.constructor, \"getSighash\")(fragment);\n }\n\n // Get the topic (the bytes32 hash) used by Solidity to identify an event\n getEventTopic(eventFragment: EventFragment | string): string {\n if (typeof(eventFragment) === \"string\") {\n eventFragment = this.getEvent(eventFragment);\n }\n\n return getStatic<(e: EventFragment) => string>(this.constructor, \"getEventTopic\")(eventFragment);\n }\n\n\n _decodeParams(params: ReadonlyArray, data: BytesLike): Result {\n return this._abiCoder.decode(params, data)\n }\n\n _encodeParams(params: ReadonlyArray, values: ReadonlyArray): string {\n return this._abiCoder.encode(params, values)\n }\n\n encodeDeploy(values?: ReadonlyArray): string {\n return this._encodeParams(this.deploy.inputs, values || [ ]);\n }\n\n decodeErrorResult(fragment: ErrorFragment | string, data: BytesLike): Result {\n if (typeof(fragment) === \"string\") {\n fragment = this.getError(fragment);\n }\n\n const bytes = arrayify(data);\n\n if (hexlify(bytes.slice(0, 4)) !== this.getSighash(fragment)) {\n logger.throwArgumentError(`data signature does not match error ${ fragment.name }.`, \"data\", hexlify(bytes));\n }\n\n return this._decodeParams(fragment.inputs, bytes.slice(4));\n }\n\n encodeErrorResult(fragment: ErrorFragment | string, values?: ReadonlyArray): string {\n if (typeof(fragment) === \"string\") {\n fragment = this.getError(fragment);\n }\n\n return hexlify(concat([\n this.getSighash(fragment),\n this._encodeParams(fragment.inputs, values || [ ])\n ]));\n }\n\n // Decode the data for a function call (e.g. tx.data)\n decodeFunctionData(functionFragment: FunctionFragment | string, data: BytesLike): Result {\n if (typeof(functionFragment) === \"string\") {\n functionFragment = this.getFunction(functionFragment);\n }\n\n const bytes = arrayify(data);\n\n if (hexlify(bytes.slice(0, 4)) !== this.getSighash(functionFragment)) {\n logger.throwArgumentError(`data signature does not match function ${ functionFragment.name }.`, \"data\", hexlify(bytes));\n }\n\n return this._decodeParams(functionFragment.inputs, bytes.slice(4));\n }\n\n // Encode the data for a function call (e.g. tx.data)\n encodeFunctionData(functionFragment: FunctionFragment | string, values?: ReadonlyArray): string {\n if (typeof(functionFragment) === \"string\") {\n functionFragment = this.getFunction(functionFragment);\n }\n\n return hexlify(concat([\n this.getSighash(functionFragment),\n this._encodeParams(functionFragment.inputs, values || [ ])\n ]));\n }\n\n // Decode the result from a function call (e.g. from eth_call)\n decodeFunctionResult(functionFragment: FunctionFragment | string, data: BytesLike): Result {\n if (typeof(functionFragment) === \"string\") {\n functionFragment = this.getFunction(functionFragment);\n }\n\n let bytes = arrayify(data);\n\n let reason: string = null;\n let message = \"\";\n let errorArgs: Result = null;\n let errorName: string = null;\n let errorSignature: string = null;\n switch (bytes.length % this._abiCoder._getWordSize()) {\n case 0:\n try {\n return this._abiCoder.decode(functionFragment.outputs, bytes);\n } catch (error) { }\n break;\n\n case 4: {\n const selector = hexlify(bytes.slice(0, 4));\n const builtin = BuiltinErrors[selector];\n if (builtin) {\n errorArgs = this._abiCoder.decode(builtin.inputs, bytes.slice(4));\n errorName = builtin.name;\n errorSignature = builtin.signature;\n if (builtin.reason) { reason = errorArgs[0]; }\n if (errorName === \"Error\") {\n message = `; VM Exception while processing transaction: reverted with reason string ${ JSON.stringify(errorArgs[0]) }`;\n } else if (errorName === \"Panic\") {\n message = `; VM Exception while processing transaction: reverted with panic code ${ errorArgs[0] }`;\n }\n } else {\n try {\n const error = this.getError(selector);\n errorArgs = this._abiCoder.decode(error.inputs, bytes.slice(4));\n errorName = error.name;\n errorSignature = error.format();\n } catch (error) { }\n }\n break;\n }\n }\n\n return logger.throwError(\"call revert exception\" + message, Logger.errors.CALL_EXCEPTION, {\n method: functionFragment.format(),\n data: hexlify(data), errorArgs, errorName, errorSignature, reason\n });\n }\n\n // Encode the result for a function call (e.g. for eth_call)\n encodeFunctionResult(functionFragment: FunctionFragment | string, values?: ReadonlyArray): string {\n if (typeof(functionFragment) === \"string\") {\n functionFragment = this.getFunction(functionFragment);\n }\n\n return hexlify(this._abiCoder.encode(functionFragment.outputs, values || [ ]));\n }\n\n // Create the filter for the event with search criteria (e.g. for eth_filterLog)\n encodeFilterTopics(eventFragment: EventFragment | string, values: ReadonlyArray): Array> {\n if (typeof(eventFragment) === \"string\") {\n eventFragment = this.getEvent(eventFragment);\n }\n\n if (values.length > eventFragment.inputs.length) {\n logger.throwError(\"too many arguments for \" + eventFragment.format(), Logger.errors.UNEXPECTED_ARGUMENT, {\n argument: \"values\",\n value: values\n })\n }\n\n let topics: Array> = [];\n if (!eventFragment.anonymous) { topics.push(this.getEventTopic(eventFragment)); }\n\n const encodeTopic = (param: ParamType, value: any): string => {\n if (param.type === \"string\") {\n return id(value);\n } else if (param.type === \"bytes\") {\n return keccak256(hexlify(value));\n }\n\n if (param.type === \"bool\" && typeof(value) === \"boolean\") {\n value = (value ? \"0x01\": \"0x00\");\n }\n\n if (param.type.match(/^u?int/)) {\n value = BigNumber.from(value).toHexString();\n }\n\n // Check addresses are valid\n if (param.type === \"address\") { this._abiCoder.encode( [ \"address\" ], [ value ]); }\n return hexZeroPad(hexlify(value), 32);\n };\n\n values.forEach((value, index) => {\n\n let param = (eventFragment).inputs[index];\n\n if (!param.indexed) {\n if (value != null) {\n logger.throwArgumentError(\"cannot filter non-indexed parameters; must be null\", (\"contract.\" + param.name), value);\n }\n return;\n }\n\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 // Trim off trailing nulls\n while (topics.length && topics[topics.length - 1] === null) {\n topics.pop();\n }\n\n return topics;\n }\n\n encodeEventLog(eventFragment: EventFragment | string, values: ReadonlyArray): { data: string, topics: Array } {\n if (typeof(eventFragment) === \"string\") {\n eventFragment = this.getEvent(eventFragment);\n }\n\n const topics: Array = [ ];\n\n const dataTypes: Array = [ ];\n const dataValues: Array = [ ];\n\n if (!eventFragment.anonymous) {\n topics.push(this.getEventTopic(eventFragment));\n }\n\n if (values.length !== eventFragment.inputs.length) {\n logger.throwArgumentError(\"event arguments/values mismatch\", \"values\", values);\n }\n\n eventFragment.inputs.forEach((param, index) => {\n const value = values[index];\n if (param.indexed) {\n if (param.type === \"string\") {\n topics.push(id(value))\n } else if (param.type === \"bytes\") {\n topics.push(keccak256(value))\n } else if (param.baseType === \"tuple\" || param.baseType === \"array\") {\n // @TODO\n throw new Error(\"not implemented\");\n } else {\n topics.push(this._abiCoder.encode([ param.type] , [ value ]));\n }\n } else {\n dataTypes.push(param);\n dataValues.push(value);\n }\n });\n\n return {\n data: this._abiCoder.encode(dataTypes , dataValues),\n topics: topics\n };\n }\n\n // Decode a filter for the event and the search criteria\n decodeEventLog(eventFragment: EventFragment | string, data: BytesLike, topics?: ReadonlyArray): Result {\n if (typeof(eventFragment) === \"string\") {\n eventFragment = this.getEvent(eventFragment);\n }\n\n if (topics != null && !eventFragment.anonymous) {\n let topicHash = this.getEventTopic(eventFragment);\n if (!isHexString(topics[0], 32) || topics[0].toLowerCase() !== topicHash) {\n logger.throwError(\"fragment/topic mismatch\", Logger.errors.INVALID_ARGUMENT, { argument: \"topics[0]\", expected: topicHash, value: topics[0] });\n }\n topics = topics.slice(1);\n }\n\n let indexed: Array = [];\n let nonIndexed: Array = [];\n let dynamic: Array = [];\n\n eventFragment.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.fromObject({ type: \"bytes32\", name: param.name }));\n dynamic.push(true);\n } else {\n indexed.push(param);\n dynamic.push(false);\n }\n } else {\n nonIndexed.push(param);\n dynamic.push(false);\n }\n });\n\n let resultIndexed = (topics != null) ? this._abiCoder.decode(indexed, concat(topics)): null;\n let resultNonIndexed = this._abiCoder.decode(nonIndexed, data, true);\n\n let result: (Array & { [ key: string ]: any }) = [ ];\n let nonIndexedIndex = 0, indexedIndex = 0;\n eventFragment.inputs.forEach((param, index) => {\n if (param.indexed) {\n if (resultIndexed == null) {\n result[index] = new Indexed({ _isIndexed: true, hash: null });\n\n } else if (dynamic[index]) {\n result[index] = new Indexed({ _isIndexed: true, hash: resultIndexed[indexedIndex++] });\n\n } else {\n try {\n result[index] = resultIndexed[indexedIndex++];\n } catch (error) {\n result[index] = error;\n }\n }\n } else {\n try {\n result[index] = resultNonIndexed[nonIndexedIndex++];\n } catch (error) {\n result[index] = error;\n }\n }\n\n // Add the keyword argument if named and safe\n if (param.name && result[param.name] == null) {\n const value = result[index];\n\n // Make error named values throw on access\n if (value instanceof Error) {\n Object.defineProperty(result, param.name, {\n enumerable: true,\n get: () => { throw wrapAccessError(`property ${ JSON.stringify(param.name) }`, value); }\n });\n } else {\n result[param.name] = value;\n }\n }\n });\n\n // Make all error indexed values throw on access\n for (let i = 0; i < result.length; i++) {\n const value = result[i];\n if (value instanceof Error) {\n Object.defineProperty(result, i, {\n enumerable: true,\n get: () => { throw wrapAccessError(`index ${ i }`, value); }\n });\n }\n }\n\n return Object.freeze(result);\n }\n\n // Given a transaction, find the matching function fragment (if any) and\n // determine all its properties and call parameters\n parseTransaction(tx: { data: string, value?: BigNumberish }): TransactionDescription {\n let fragment = this.getFunction(tx.data.substring(0, 10).toLowerCase())\n\n if (!fragment) { return null; }\n\n return new TransactionDescription({\n args: this._abiCoder.decode(fragment.inputs, \"0x\" + tx.data.substring(10)),\n functionFragment: fragment,\n name: fragment.name,\n signature: fragment.format(),\n sighash: this.getSighash(fragment),\n value: BigNumber.from(tx.value || \"0\"),\n });\n }\n\n // @TODO\n //parseCallResult(data: BytesLike): ??\n\n // Given an event log, find the matching event fragment (if any) and\n // determine all its properties and values\n parseLog(log: { topics: Array, data: string}): LogDescription {\n let fragment = this.getEvent(log.topics[0]);\n\n if (!fragment || fragment.anonymous) { 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\n\n return new LogDescription({\n eventFragment: fragment,\n name: fragment.name,\n signature: fragment.format(),\n topic: this.getEventTopic(fragment),\n args: this.decodeEventLog(fragment, log.data, log.topics)\n });\n }\n\n parseError(data: BytesLike): ErrorDescription {\n const hexData = hexlify(data);\n let fragment = this.getError(hexData.substring(0, 10).toLowerCase())\n\n if (!fragment) { return null; }\n\n return new ErrorDescription({\n args: this._abiCoder.decode(fragment.inputs, \"0x\" + hexData.substring(10)),\n errorFragment: fragment,\n name: fragment.name,\n signature: fragment.format(),\n sighash: this.getSighash(fragment),\n });\n }\n\n\n /*\n static from(value: Array | string | Interface) {\n if (Interface.isInterface(value)) {\n return value;\n }\n if (typeof(value) === \"string\") {\n return new Interface(JSON.parse(value));\n }\n return new Interface(value);\n }\n */\n\n static isInterface(value: any): value is Interface {\n return !!(value && value._isInterface);\n }\n}\n\n", "\"use strict\";\n\nimport { ConstructorFragment, ErrorFragment, EventFragment, FormatTypes, Fragment, FunctionFragment, JsonFragment, JsonFragmentType, ParamType } from \"./fragments\";\nimport { AbiCoder, CoerceFunc, defaultAbiCoder } from \"./abi-coder\";\nimport { checkResultErrors, Indexed, Interface, LogDescription, Result, TransactionDescription } from \"./interface\";\n\nexport {\n ConstructorFragment,\n ErrorFragment,\n EventFragment,\n Fragment,\n FunctionFragment,\n ParamType,\n FormatTypes,\n\n AbiCoder,\n defaultAbiCoder,\n\n Interface,\n Indexed,\n\n /////////////////////////\n // Types\n\n CoerceFunc,\n JsonFragment,\n JsonFragmentType,\n\n Result,\n checkResultErrors,\n\n LogDescription,\n TransactionDescription\n};\n", "export const version = \"abstract-provider/5.7.0\";\n", "\"use strict\";\n\nimport { BigNumber, BigNumberish } from \"@ethersproject/bignumber\";\nimport { BytesLike, isHexString } from \"@ethersproject/bytes\";\nimport { Network } from \"@ethersproject/networks\";\nimport { Deferrable, Description, defineReadOnly, resolveProperties } from \"@ethersproject/properties\";\nimport { AccessListish, Transaction } from \"@ethersproject/transactions\";\nimport { OnceBlockable } from \"@ethersproject/web\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\n///////////////////////////////\n// Exported Types\n\n\nexport type TransactionRequest = {\n to?: string,\n from?: string,\n nonce?: BigNumberish,\n\n gasLimit?: BigNumberish,\n gasPrice?: BigNumberish,\n\n data?: BytesLike,\n value?: BigNumberish,\n chainId?: number\n\n type?: number;\n accessList?: AccessListish;\n\n maxPriorityFeePerGas?: BigNumberish;\n maxFeePerGas?: BigNumberish;\n\n customData?: Record;\n ccipReadEnabled?: boolean;\n}\n\nexport interface TransactionResponse extends Transaction {\n hash: string;\n\n // Only if a transaction has been mined\n blockNumber?: number,\n blockHash?: string,\n timestamp?: number,\n\n confirmations: number,\n\n // Not optional (as it is in Transaction)\n from: string;\n\n // The raw transaction\n raw?: string,\n\n // This function waits until the transaction has been mined\n wait: (confirmations?: number) => Promise\n};\n\nexport type BlockTag = string | number;\n\nexport interface _Block {\n hash: string;\n parentHash: string;\n number: number;\n\n timestamp: number;\n nonce: string;\n difficulty: number;\n _difficulty: BigNumber;\n\n gasLimit: BigNumber;\n gasUsed: BigNumber;\n\n miner: string;\n extraData: string;\n\n baseFeePerGas?: null | BigNumber;\n}\n\nexport interface Block extends _Block {\n transactions: Array;\n}\n\nexport interface BlockWithTransactions extends _Block {\n transactions: Array;\n}\n\n\nexport interface Log {\n blockNumber: number;\n blockHash: string;\n transactionIndex: number;\n\n removed: boolean;\n\n address: string;\n data: string;\n\n topics: Array;\n\n transactionHash: string;\n logIndex: number;\n}\n\nexport interface TransactionReceipt {\n to: string;\n from: string;\n contractAddress: string,\n transactionIndex: number,\n root?: string,\n gasUsed: BigNumber,\n logsBloom: string,\n blockHash: string,\n transactionHash: string,\n logs: Array,\n blockNumber: number,\n confirmations: number,\n cumulativeGasUsed: BigNumber,\n effectiveGasPrice: BigNumber,\n byzantium: boolean,\n type: number;\n status?: number\n};\n\nexport interface FeeData {\n lastBaseFeePerGas: null | BigNumber;\n maxFeePerGas: null | BigNumber;\n maxPriorityFeePerGas: null | BigNumber;\n gasPrice: null | BigNumber;\n}\n\nexport interface EventFilter {\n address?: string;\n topics?: Array | null>;\n}\n\nexport interface Filter extends EventFilter {\n fromBlock?: BlockTag,\n toBlock?: BlockTag,\n}\n\nexport interface FilterByBlockHash extends EventFilter {\n blockHash?: string;\n}\n\n//export type CallTransactionable = {\n// call(transaction: TransactionRequest): Promise;\n//};\n\nexport abstract class ForkEvent extends Description {\n readonly expiry: number;\n\n readonly _isForkEvent?: boolean;\n\n static isForkEvent(value: any): value is ForkEvent {\n return !!(value && value._isForkEvent);\n }\n}\n\nexport class BlockForkEvent extends ForkEvent {\n readonly blockHash: string;\n\n readonly _isBlockForkEvent?: boolean;\n\n constructor(blockHash: string, expiry?: number) {\n if (!isHexString(blockHash, 32)) {\n logger.throwArgumentError(\"invalid blockHash\", \"blockHash\", blockHash);\n }\n\n super({\n _isForkEvent: true,\n _isBlockForkEvent: true,\n expiry: (expiry || 0),\n blockHash: blockHash\n });\n }\n}\n\nexport class TransactionForkEvent extends ForkEvent {\n readonly hash: string;\n\n readonly _isTransactionOrderForkEvent?: boolean;\n\n constructor(hash: string, expiry?: number) {\n if (!isHexString(hash, 32)) {\n logger.throwArgumentError(\"invalid transaction hash\", \"hash\", hash);\n }\n\n super({\n _isForkEvent: true,\n _isTransactionForkEvent: true,\n expiry: (expiry || 0),\n hash: hash\n });\n }\n}\n\nexport class TransactionOrderForkEvent extends ForkEvent {\n readonly beforeHash: string;\n readonly afterHash: string;\n\n constructor(beforeHash: string, afterHash: string, expiry?: number) {\n if (!isHexString(beforeHash, 32)) {\n logger.throwArgumentError(\"invalid transaction hash\", \"beforeHash\", beforeHash);\n }\n if (!isHexString(afterHash, 32)) {\n logger.throwArgumentError(\"invalid transaction hash\", \"afterHash\", afterHash);\n }\n\n super({\n _isForkEvent: true,\n _isTransactionOrderForkEvent: true,\n expiry: (expiry || 0),\n beforeHash: beforeHash,\n afterHash: afterHash\n });\n }\n}\n\nexport type EventType = string | Array> | EventFilter | ForkEvent;\n\nexport type Listener = (...args: Array) => void;\n\n///////////////////////////////\n// Exported Abstracts\nexport abstract class Provider implements OnceBlockable {\n\n // Network\n abstract getNetwork(): Promise;\n\n // Latest State\n abstract getBlockNumber(): Promise;\n abstract getGasPrice(): Promise;\n async getFeeData(): Promise {\n const { block, gasPrice } = await resolveProperties({\n block: this.getBlock(\"latest\"),\n gasPrice: this.getGasPrice().catch((error) => {\n // @TODO: Why is this now failing on Calaveras?\n //console.log(error);\n return null;\n })\n });\n\n let lastBaseFeePerGas = null, maxFeePerGas = null, maxPriorityFeePerGas = null;\n\n if (block && block.baseFeePerGas) {\n // We may want to compute this more accurately in the future,\n // using the formula \"check if the base fee is correct\".\n // See: https://eips.ethereum.org/EIPS/eip-1559\n lastBaseFeePerGas = block.baseFeePerGas;\n maxPriorityFeePerGas = BigNumber.from(\"1500000000\");\n maxFeePerGas = block.baseFeePerGas.mul(2).add(maxPriorityFeePerGas);\n }\n\n return { lastBaseFeePerGas, maxFeePerGas, maxPriorityFeePerGas, gasPrice };\n }\n\n // Account\n abstract getBalance(addressOrName: string | Promise, blockTag?: BlockTag | Promise): Promise;\n abstract getTransactionCount(addressOrName: string | Promise, blockTag?: BlockTag | Promise): Promise;\n abstract getCode(addressOrName: string | Promise, blockTag?: BlockTag | Promise): Promise ;\n abstract getStorageAt(addressOrName: string | Promise, position: BigNumberish | Promise, blockTag?: BlockTag | Promise): Promise;\n\n // Execution\n abstract sendTransaction(signedTransaction: string | Promise): Promise;\n abstract call(transaction: Deferrable, blockTag?: BlockTag | Promise): Promise;\n abstract estimateGas(transaction: Deferrable): Promise;\n\n // Queries\n abstract getBlock(blockHashOrBlockTag: BlockTag | string | Promise): Promise;\n abstract getBlockWithTransactions(blockHashOrBlockTag: BlockTag | string | Promise): Promise;\n abstract getTransaction(transactionHash: string): Promise;\n abstract getTransactionReceipt(transactionHash: string): Promise;\n\n // Bloom-filter Queries\n abstract getLogs(filter: Filter): Promise>;\n\n // ENS\n abstract resolveName(name: string | Promise): Promise;\n abstract lookupAddress(address: string | Promise): Promise;\n\n // Event Emitter (ish)\n abstract on(eventName: EventType, listener: Listener): Provider;\n abstract once(eventName: EventType, listener: Listener): Provider;\n abstract emit(eventName: EventType, ...args: Array): boolean\n abstract listenerCount(eventName?: EventType): number;\n abstract listeners(eventName?: EventType): Array;\n abstract off(eventName: EventType, listener?: Listener): Provider;\n abstract removeAllListeners(eventName?: EventType): Provider;\n\n // Alias for \"on\"\n addListener(eventName: EventType, listener: Listener): Provider {\n return this.on(eventName, listener);\n }\n\n // Alias for \"off\"\n removeListener(eventName: EventType, listener: Listener): Provider {\n return this.off(eventName, listener);\n }\n\n // @TODO: This *could* be implemented here, but would pull in events...\n abstract waitForTransaction(transactionHash: string, confirmations?: number, timeout?: number): Promise;\n\n readonly _isProvider: boolean;\n\n constructor() {\n logger.checkAbstract(new.target, Provider);\n defineReadOnly(this, \"_isProvider\", true);\n }\n\n static isProvider(value: any): value is Provider {\n return !!(value && value._isProvider);\n }\n\n/*\n static getResolver(network: Network, callable: CallTransactionable, namehash: string): string {\n // No ENS...\n if (!network.ensAddress) {\n errors.throwError(\n \"network does support ENS\",\n errors.UNSUPPORTED_OPERATION,\n { operation: \"ENS\", network: network.name }\n );\n }\n\n // Not a namehash\n if (!isHexString(namehash, 32)) {\n errors.throwArgumentError(\"invalid name hash\", \"namehash\", namehash);\n }\n\n // keccak256(\"resolver(bytes32)\")\n let data = \"0x0178b8bf\" + namehash.substring(2);\n let transaction = { to: network.ensAddress, data: data };\n\n return provider.call(transaction).then((data) => {\n return provider.formatter.callAddress(data);\n });\n }\n\n static resolveNamehash(network: Network, callable: CallTransactionable, namehash: string): string {\n return this.getResolver(network, callable, namehash).then((resolverAddress) => {\n if (!resolverAddress) { return null; }\n\n // keccak256(\"addr(bytes32)\")\n let data = \"0x3b3b57de\" + namehash(name).substring(2);\n let transaction = { to: resolverAddress, data: data };\n return callable.call(transaction).then((data) => {\n return this.formatter.callAddress(data);\n });\n\n })\n }\n*/\n}\n", "export const version = \"abstract-signer/5.7.0\";\n", "\"use strict\";\n\nimport { BlockTag, FeeData, Provider, TransactionRequest, TransactionResponse } from \"@ethersproject/abstract-provider\";\nimport { BigNumber, BigNumberish } from \"@ethersproject/bignumber\";\nimport { Bytes, BytesLike } from \"@ethersproject/bytes\";\nimport { Deferrable, defineReadOnly, resolveProperties, shallowCopy } from \"@ethersproject/properties\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\nconst allowedTransactionKeys: Array = [\n \"accessList\", \"ccipReadEnabled\", \"chainId\", \"customData\", \"data\", \"from\", \"gasLimit\", \"gasPrice\", \"maxFeePerGas\", \"maxPriorityFeePerGas\", \"nonce\", \"to\", \"type\", \"value\"\n];\n\nconst forwardErrors = [\n Logger.errors.INSUFFICIENT_FUNDS,\n Logger.errors.NONCE_EXPIRED,\n Logger.errors.REPLACEMENT_UNDERPRICED,\n];\n\n// EIP-712 Typed Data\n// See: https://eips.ethereum.org/EIPS/eip-712\n\nexport interface TypedDataDomain {\n name?: string;\n version?: string;\n chainId?: BigNumberish;\n verifyingContract?: string;\n salt?: BytesLike;\n};\n\nexport interface TypedDataField {\n name: string;\n type: string;\n};\n\n// Sub-classes of Signer may optionally extend this interface to indicate\n// they have a private key available synchronously\nexport interface ExternallyOwnedAccount {\n readonly address: string;\n readonly privateKey: string;\n}\n\n// Sub-Class Notes:\n// - A Signer MUST always make sure, that if present, the \"from\" field\n// matches the Signer, before sending or signing a transaction\n// - A Signer SHOULD always wrap private information (such as a private\n// key or mnemonic) in a function, so that console.log does not leak\n// the data\n\n// @TODO: This is a temporary measure to preserve backwards compatibility\n// In v6, the method on TypedDataSigner will be added to Signer\nexport interface TypedDataSigner {\n _signTypedData(domain: TypedDataDomain, types: Record>, value: Record): Promise;\n}\n\nexport abstract class Signer {\n readonly provider?: Provider;\n\n ///////////////////\n // Sub-classes MUST implement these\n\n // Returns the checksum address\n abstract getAddress(): Promise\n\n // Returns the signed prefixed-message. This MUST treat:\n // - Bytes as a binary message\n // - string as a UTF8-message\n // i.e. \"0x1234\" is a SIX (6) byte string, NOT 2 bytes of data\n abstract signMessage(message: Bytes | string): Promise;\n\n // Signs a transaction and returns the fully serialized, signed transaction.\n // The EXACT transaction MUST be signed, and NO additional properties to be added.\n // - This MAY throw if signing transactions is not supports, but if\n // it does, sentTransaction MUST be overridden.\n abstract signTransaction(transaction: Deferrable): Promise;\n\n // Returns a new instance of the Signer, connected to provider.\n // This MAY throw if changing providers is not supported.\n abstract connect(provider: Provider): Signer;\n\n readonly _isSigner: boolean;\n\n\n ///////////////////\n // Sub-classes MUST call super\n constructor() {\n logger.checkAbstract(new.target, Signer);\n defineReadOnly(this, \"_isSigner\", true);\n }\n\n\n ///////////////////\n // Sub-classes MAY override these\n\n async getBalance(blockTag?: BlockTag): Promise {\n this._checkProvider(\"getBalance\");\n return await this.provider.getBalance(this.getAddress(), blockTag);\n }\n\n async getTransactionCount(blockTag?: BlockTag): Promise {\n this._checkProvider(\"getTransactionCount\");\n return await this.provider.getTransactionCount(this.getAddress(), blockTag);\n }\n\n // Populates \"from\" if unspecified, and estimates the gas for the transaction\n async estimateGas(transaction: Deferrable): Promise {\n this._checkProvider(\"estimateGas\");\n const tx = await resolveProperties(this.checkTransaction(transaction));\n return await this.provider.estimateGas(tx);\n }\n\n // Populates \"from\" if unspecified, and calls with the transaction\n async call(transaction: Deferrable, blockTag?: BlockTag): Promise {\n this._checkProvider(\"call\");\n const tx = await resolveProperties(this.checkTransaction(transaction));\n return await this.provider.call(tx, blockTag);\n }\n\n // Populates all fields in a transaction, signs it and sends it to the network\n async sendTransaction(transaction: Deferrable): Promise {\n this._checkProvider(\"sendTransaction\");\n const tx = await this.populateTransaction(transaction);\n const signedTx = await this.signTransaction(tx);\n return await this.provider.sendTransaction(signedTx);\n }\n\n async getChainId(): Promise {\n this._checkProvider(\"getChainId\");\n const network = await this.provider.getNetwork();\n return network.chainId;\n }\n\n async getGasPrice(): Promise {\n this._checkProvider(\"getGasPrice\");\n return await this.provider.getGasPrice();\n }\n\n async getFeeData(): Promise {\n this._checkProvider(\"getFeeData\");\n return await this.provider.getFeeData();\n }\n\n\n async resolveName(name: string): Promise {\n this._checkProvider(\"resolveName\");\n return await this.provider.resolveName(name);\n }\n\n\n\n // Checks a transaction does not contain invalid keys and if\n // no \"from\" is provided, populates it.\n // - does NOT require a provider\n // - adds \"from\" is not present\n // - returns a COPY (safe to mutate the result)\n // By default called from: (overriding these prevents it)\n // - call\n // - estimateGas\n // - populateTransaction (and therefor sendTransaction)\n checkTransaction(transaction: Deferrable): Deferrable {\n for (const key in transaction) {\n if (allowedTransactionKeys.indexOf(key) === -1) {\n logger.throwArgumentError(\"invalid transaction key: \" + key, \"transaction\", transaction);\n }\n }\n\n const tx = shallowCopy(transaction);\n\n if (tx.from == null) {\n tx.from = this.getAddress();\n\n } else {\n // Make sure any provided address matches this signer\n tx.from = Promise.all([\n Promise.resolve(tx.from),\n this.getAddress()\n ]).then((result) => {\n if (result[0].toLowerCase() !== result[1].toLowerCase()) {\n logger.throwArgumentError(\"from address mismatch\", \"transaction\", transaction);\n }\n return result[0];\n });\n }\n\n return tx;\n }\n\n // Populates ALL keys for a transaction and checks that \"from\" matches\n // this Signer. Should be used by sendTransaction but NOT by signTransaction.\n // By default called from: (overriding these prevents it)\n // - sendTransaction\n //\n // Notes:\n // - We allow gasPrice for EIP-1559 as long as it matches maxFeePerGas\n async populateTransaction(transaction: Deferrable): Promise {\n\n const tx: Deferrable = await resolveProperties(this.checkTransaction(transaction))\n\n if (tx.to != null) {\n tx.to = Promise.resolve(tx.to).then(async (to) => {\n if (to == null) { return null; }\n const address = await this.resolveName(to);\n if (address == null) {\n logger.throwArgumentError(\"provided ENS name resolves to null\", \"tx.to\", to);\n }\n return address;\n });\n\n // Prevent this error from causing an UnhandledPromiseException\n tx.to.catch((error) => { });\n }\n\n // Do not allow mixing pre-eip-1559 and eip-1559 properties\n const hasEip1559 = (tx.maxFeePerGas != null || tx.maxPriorityFeePerGas != null);\n if (tx.gasPrice != null && (tx.type === 2 || hasEip1559)) {\n logger.throwArgumentError(\"eip-1559 transaction do not support gasPrice\", \"transaction\", transaction);\n } else if ((tx.type === 0 || tx.type === 1) && hasEip1559) {\n logger.throwArgumentError(\"pre-eip-1559 transaction do not support maxFeePerGas/maxPriorityFeePerGas\", \"transaction\", transaction);\n }\n\n if ((tx.type === 2 || tx.type == null) && (tx.maxFeePerGas != null && tx.maxPriorityFeePerGas != null)) {\n // Fully-formed EIP-1559 transaction (skip getFeeData)\n tx.type = 2;\n\n } else if (tx.type === 0 || tx.type === 1) {\n // Explicit Legacy or EIP-2930 transaction\n\n // Populate missing gasPrice\n if (tx.gasPrice == null) { tx.gasPrice = this.getGasPrice(); }\n\n } else {\n\n // We need to get fee data to determine things\n const feeData = await this.getFeeData();\n\n if (tx.type == null) {\n // We need to auto-detect the intended type of this transaction...\n\n if (feeData.maxFeePerGas != null && feeData.maxPriorityFeePerGas != null) {\n // The network supports EIP-1559!\n\n // Upgrade transaction from null to eip-1559\n tx.type = 2;\n\n if (tx.gasPrice != null) {\n // Using legacy gasPrice property on an eip-1559 network,\n // so use gasPrice as both fee properties\n const gasPrice = tx.gasPrice;\n delete tx.gasPrice;\n tx.maxFeePerGas = gasPrice;\n tx.maxPriorityFeePerGas = gasPrice;\n\n } else {\n // Populate missing fee data\n if (tx.maxFeePerGas == null) { tx.maxFeePerGas = feeData.maxFeePerGas; }\n if (tx.maxPriorityFeePerGas == null) { tx.maxPriorityFeePerGas = feeData.maxPriorityFeePerGas; }\n }\n\n } else if (feeData.gasPrice != null) {\n // Network doesn't support EIP-1559...\n\n // ...but they are trying to use EIP-1559 properties\n if (hasEip1559) {\n logger.throwError(\"network does not support EIP-1559\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"populateTransaction\"\n });\n }\n\n // Populate missing fee data\n if (tx.gasPrice == null) { tx.gasPrice = feeData.gasPrice; }\n\n // Explicitly set untyped transaction to legacy\n tx.type = 0;\n\n } else {\n // getFeeData has failed us.\n logger.throwError(\"failed to get consistent fee data\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"signer.getFeeData\"\n });\n }\n\n } else if (tx.type === 2) {\n // Explicitly using EIP-1559\n\n // Populate missing fee data\n if (tx.maxFeePerGas == null) { tx.maxFeePerGas = feeData.maxFeePerGas; }\n if (tx.maxPriorityFeePerGas == null) { tx.maxPriorityFeePerGas = feeData.maxPriorityFeePerGas; }\n }\n }\n\n if (tx.nonce == null) { tx.nonce = this.getTransactionCount(\"pending\"); }\n\n if (tx.gasLimit == null) {\n tx.gasLimit = this.estimateGas(tx).catch((error) => {\n if (forwardErrors.indexOf(error.code) >= 0) {\n throw error;\n }\n\n return logger.throwError(\"cannot estimate gas; transaction may fail or may require manual gas limit\", Logger.errors.UNPREDICTABLE_GAS_LIMIT, {\n error: error,\n tx: tx\n });\n });\n }\n\n if (tx.chainId == null) {\n tx.chainId = this.getChainId();\n } else {\n tx.chainId = Promise.all([\n Promise.resolve(tx.chainId),\n this.getChainId()\n ]).then((results) => {\n if (results[1] !== 0 && results[0] !== results[1]) {\n logger.throwArgumentError(\"chainId address mismatch\", \"transaction\", transaction);\n }\n return results[0];\n });\n }\n\n return await resolveProperties(tx);\n }\n\n\n ///////////////////\n // Sub-classes SHOULD leave these alone\n\n _checkProvider(operation?: string): void {\n if (!this.provider) { logger.throwError(\"missing provider\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: (operation || \"_checkProvider\") });\n }\n }\n\n static isSigner(value: any): value is Signer {\n return !!(value && value._isSigner);\n }\n}\n\nexport class VoidSigner extends Signer implements TypedDataSigner {\n readonly address: string;\n\n constructor(address: string, provider?: Provider) {\n super();\n defineReadOnly(this, \"address\", address);\n defineReadOnly(this, \"provider\", provider || null);\n }\n\n getAddress(): Promise {\n return Promise.resolve(this.address);\n }\n\n _fail(message: string, operation: string): Promise {\n return Promise.resolve().then(() => {\n logger.throwError(message, Logger.errors.UNSUPPORTED_OPERATION, { operation: operation });\n });\n }\n\n signMessage(message: Bytes | string): Promise {\n return this._fail(\"VoidSigner cannot sign messages\", \"signMessage\");\n }\n\n signTransaction(transaction: Deferrable): Promise {\n return this._fail(\"VoidSigner cannot sign transactions\", \"signTransaction\");\n }\n\n _signTypedData(domain: TypedDataDomain, types: Record>, value: Record): Promise {\n return this._fail(\"VoidSigner cannot sign typed data\", \"signTypedData\");\n }\n\n connect(provider: Provider): VoidSigner {\n return new VoidSigner(this.address, provider);\n }\n}\n\n", "(function (module, exports) {\n 'use strict';\n\n // Utils\n function assert (val, msg) {\n if (!val) throw new Error(msg || 'Assertion failed');\n }\n\n // Could use `inherits` module, but don't want to move from single file\n // architecture yet.\n function inherits (ctor, superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function () {};\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n\n // BN\n\n function BN (number, base, endian) {\n if (BN.isBN(number)) {\n return number;\n }\n\n this.negative = 0;\n this.words = null;\n this.length = 0;\n\n // Reduction context\n this.red = null;\n\n if (number !== null) {\n if (base === 'le' || base === 'be') {\n endian = base;\n base = 10;\n }\n\n this._init(number || 0, base || 10, endian || 'be');\n }\n }\n if (typeof module === 'object') {\n module.exports = BN;\n } else {\n exports.BN = BN;\n }\n\n BN.BN = BN;\n BN.wordSize = 26;\n\n var Buffer;\n try {\n if (typeof window !== 'undefined' && typeof window.Buffer !== 'undefined') {\n Buffer = window.Buffer;\n } else {\n Buffer = require('buffer').Buffer;\n }\n } catch (e) {\n }\n\n BN.isBN = function isBN (num) {\n if (num instanceof BN) {\n return true;\n }\n\n return num !== null && typeof num === 'object' &&\n num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);\n };\n\n BN.max = function max (left, right) {\n if (left.cmp(right) > 0) return left;\n return right;\n };\n\n BN.min = function min (left, right) {\n if (left.cmp(right) < 0) return left;\n return right;\n };\n\n BN.prototype._init = function init (number, base, endian) {\n if (typeof number === 'number') {\n return this._initNumber(number, base, endian);\n }\n\n if (typeof number === 'object') {\n return this._initArray(number, base, endian);\n }\n\n if (base === 'hex') {\n base = 16;\n }\n assert(base === (base | 0) && base >= 2 && base <= 36);\n\n number = number.toString().replace(/\\s+/g, '');\n var start = 0;\n if (number[0] === '-') {\n start++;\n this.negative = 1;\n }\n\n if (start < number.length) {\n if (base === 16) {\n this._parseHex(number, start, endian);\n } else {\n this._parseBase(number, base, start);\n if (endian === 'le') {\n this._initArray(this.toArray(), base, endian);\n }\n }\n }\n };\n\n BN.prototype._initNumber = function _initNumber (number, base, endian) {\n if (number < 0) {\n this.negative = 1;\n number = -number;\n }\n if (number < 0x4000000) {\n this.words = [ number & 0x3ffffff ];\n this.length = 1;\n } else if (number < 0x10000000000000) {\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff\n ];\n this.length = 2;\n } else {\n assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff,\n 1\n ];\n this.length = 3;\n }\n\n if (endian !== 'le') return;\n\n // Reverse the bytes\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initArray = function _initArray (number, base, endian) {\n // Perhaps a Uint8Array\n assert(typeof number.length === 'number');\n if (number.length <= 0) {\n this.words = [ 0 ];\n this.length = 1;\n return this;\n }\n\n this.length = Math.ceil(number.length / 3);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n var off = 0;\n if (endian === 'be') {\n for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n } else if (endian === 'le') {\n for (i = 0, j = 0; i < number.length; i += 3) {\n w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n return this.strip();\n };\n\n function parseHex4Bits (string, index) {\n var c = string.charCodeAt(index);\n // 'A' - 'F'\n if (c >= 65 && c <= 70) {\n return c - 55;\n // 'a' - 'f'\n } else if (c >= 97 && c <= 102) {\n return c - 87;\n // '0' - '9'\n } else {\n return (c - 48) & 0xf;\n }\n }\n\n function parseHexByte (string, lowerBound, index) {\n var r = parseHex4Bits(string, index);\n if (index - 1 >= lowerBound) {\n r |= parseHex4Bits(string, index - 1) << 4;\n }\n return r;\n }\n\n BN.prototype._parseHex = function _parseHex (number, start, endian) {\n // Create possibly bigger array to ensure that it fits the number\n this.length = Math.ceil((number.length - start) / 6);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n // 24-bits chunks\n var off = 0;\n var j = 0;\n\n var w;\n if (endian === 'be') {\n for (i = number.length - 1; i >= start; i -= 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n } else {\n var parseLength = number.length - start;\n for (i = parseLength % 2 === 0 ? start + 1 : start; i < number.length; i += 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n }\n\n this.strip();\n };\n\n function parseBase (str, start, end, mul) {\n var r = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r *= mul;\n\n // 'a'\n if (c >= 49) {\n r += c - 49 + 0xa;\n\n // 'A'\n } else if (c >= 17) {\n r += c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n r += c;\n }\n }\n return r;\n }\n\n BN.prototype._parseBase = function _parseBase (number, base, start) {\n // Initialize as zero\n this.words = [ 0 ];\n this.length = 1;\n\n // Find length of limb in base\n for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n limbLen++;\n }\n limbLen--;\n limbPow = (limbPow / base) | 0;\n\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n\n var word = 0;\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n\n this.imuln(limbPow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n if (mod !== 0) {\n var pow = 1;\n word = parseBase(number, i, number.length, base);\n\n for (i = 0; i < mod; i++) {\n pow *= base;\n }\n\n this.imuln(pow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n this.strip();\n };\n\n BN.prototype.copy = function copy (dest) {\n dest.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n dest.words[i] = this.words[i];\n }\n dest.length = this.length;\n dest.negative = this.negative;\n dest.red = this.red;\n };\n\n BN.prototype.clone = function clone () {\n var r = new BN(null);\n this.copy(r);\n return r;\n };\n\n BN.prototype._expand = function _expand (size) {\n while (this.length < size) {\n this.words[this.length++] = 0;\n }\n return this;\n };\n\n // Remove leading `0` from `this`\n BN.prototype.strip = function strip () {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\n return this._normSign();\n };\n\n BN.prototype._normSign = function _normSign () {\n // -0 = 0\n if (this.length === 1 && this.words[0] === 0) {\n this.negative = 0;\n }\n return this;\n };\n\n BN.prototype.inspect = function inspect () {\n return (this.red ? '';\n };\n\n /*\n\n var zeros = [];\n var groupSizes = [];\n var groupBases = [];\n\n var s = '';\n var i = -1;\n while (++i < BN.wordSize) {\n zeros[i] = s;\n s += '0';\n }\n groupSizes[0] = 0;\n groupSizes[1] = 0;\n groupBases[0] = 0;\n groupBases[1] = 0;\n var base = 2 - 1;\n while (++base < 36 + 1) {\n var groupSize = 0;\n var groupBase = 1;\n while (groupBase < (1 << BN.wordSize) / base) {\n groupBase *= base;\n groupSize += 1;\n }\n groupSizes[base] = groupSize;\n groupBases[base] = groupBase;\n }\n\n */\n\n var zeros = [\n '',\n '0',\n '00',\n '000',\n '0000',\n '00000',\n '000000',\n '0000000',\n '00000000',\n '000000000',\n '0000000000',\n '00000000000',\n '000000000000',\n '0000000000000',\n '00000000000000',\n '000000000000000',\n '0000000000000000',\n '00000000000000000',\n '000000000000000000',\n '0000000000000000000',\n '00000000000000000000',\n '000000000000000000000',\n '0000000000000000000000',\n '00000000000000000000000',\n '000000000000000000000000',\n '0000000000000000000000000'\n ];\n\n var groupSizes = [\n 0, 0,\n 25, 16, 12, 11, 10, 9, 8,\n 8, 7, 7, 7, 7, 6, 6,\n 6, 6, 6, 6, 6, 5, 5,\n 5, 5, 5, 5, 5, 5, 5,\n 5, 5, 5, 5, 5, 5, 5\n ];\n\n var groupBases = [\n 0, 0,\n 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,\n 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,\n 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,\n 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,\n 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176\n ];\n\n BN.prototype.toString = function toString (base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n\n var out;\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = this.words[i];\n var word = (((w << off) | carry) & 0xffffff).toString(16);\n carry = (w >>> (24 - off)) & 0xffffff;\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n off += 2;\n if (off >= 26) {\n off -= 26;\n i--;\n }\n }\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n if (base === (base | 0) && base >= 2 && base <= 36) {\n // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n var groupSize = groupSizes[base];\n // var groupBase = Math.pow(base, groupSize);\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n while (!c.isZero()) {\n var r = c.modn(groupBase).toString(base);\n c = c.idivn(groupBase);\n\n if (!c.isZero()) {\n out = zeros[groupSize - r.length] + r + out;\n } else {\n out = r + out;\n }\n }\n if (this.isZero()) {\n out = '0' + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n assert(false, 'Base should be between 2 and 36');\n };\n\n BN.prototype.toNumber = function toNumber () {\n var ret = this.words[0];\n if (this.length === 2) {\n ret += this.words[1] * 0x4000000;\n } else if (this.length === 3 && this.words[2] === 0x01) {\n // NOTE: at this stage it is known that the top bit is set\n ret += 0x10000000000000 + (this.words[1] * 0x4000000);\n } else if (this.length > 2) {\n assert(false, 'Number can only safely store up to 53 bits');\n }\n return (this.negative !== 0) ? -ret : ret;\n };\n\n BN.prototype.toJSON = function toJSON () {\n return this.toString(16);\n };\n\n BN.prototype.toBuffer = function toBuffer (endian, length) {\n assert(typeof Buffer !== 'undefined');\n return this.toArrayLike(Buffer, endian, length);\n };\n\n BN.prototype.toArray = function toArray (endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n var byteLength = this.byteLength();\n var reqLength = length || Math.max(1, byteLength);\n assert(byteLength <= reqLength, 'byte array longer than desired length');\n assert(reqLength > 0, 'Requested array length <= 0');\n\n this.strip();\n var littleEndian = endian === 'le';\n var res = new ArrayType(reqLength);\n\n var b, i;\n var q = this.clone();\n if (!littleEndian) {\n // Assume big-endian\n for (i = 0; i < reqLength - byteLength; i++) {\n res[i] = 0;\n }\n\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[reqLength - i - 1] = b;\n }\n } else {\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[i] = b;\n }\n\n for (; i < reqLength; i++) {\n res[i] = 0;\n }\n }\n\n return res;\n };\n\n if (Math.clz32) {\n BN.prototype._countBits = function _countBits (w) {\n return 32 - Math.clz32(w);\n };\n } else {\n BN.prototype._countBits = function _countBits (w) {\n var t = w;\n var r = 0;\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\n return r + t;\n };\n }\n\n BN.prototype._zeroBits = function _zeroBits (w) {\n // Short-cut\n if (w === 0) return 26;\n\n var t = w;\n var r = 0;\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n if ((t & 0x1) === 0) {\n r++;\n }\n return r;\n };\n\n // Return number of used bits in a BN\n BN.prototype.bitLength = function bitLength () {\n var w = this.words[this.length - 1];\n var hi = this._countBits(w);\n return (this.length - 1) * 26 + hi;\n };\n\n function toBitArray (num) {\n var w = new Array(num.bitLength());\n\n for (var bit = 0; bit < w.length; bit++) {\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n w[bit] = (num.words[off] & (1 << wbit)) >>> wbit;\n }\n\n return w;\n }\n\n // Number of trailing zero bits\n BN.prototype.zeroBits = function zeroBits () {\n if (this.isZero()) return 0;\n\n var r = 0;\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n r += b;\n if (b !== 26) break;\n }\n return r;\n };\n\n BN.prototype.byteLength = function byteLength () {\n return Math.ceil(this.bitLength() / 8);\n };\n\n BN.prototype.toTwos = function toTwos (width) {\n if (this.negative !== 0) {\n return this.abs().inotn(width).iaddn(1);\n }\n return this.clone();\n };\n\n BN.prototype.fromTwos = function fromTwos (width) {\n if (this.testn(width - 1)) {\n return this.notn(width).iaddn(1).ineg();\n }\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg () {\n return this.negative !== 0;\n };\n\n // Return negative clone of `this`\n BN.prototype.neg = function neg () {\n return this.clone().ineg();\n };\n\n BN.prototype.ineg = function ineg () {\n if (!this.isZero()) {\n this.negative ^= 1;\n }\n\n return this;\n };\n\n // Or `num` with `this` in-place\n BN.prototype.iuor = function iuor (num) {\n while (this.length < num.length) {\n this.words[this.length++] = 0;\n }\n\n for (var i = 0; i < num.length; i++) {\n this.words[i] = this.words[i] | num.words[i];\n }\n\n return this.strip();\n };\n\n BN.prototype.ior = function ior (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuor(num);\n };\n\n // Or `num` with `this`\n BN.prototype.or = function or (num) {\n if (this.length > num.length) return this.clone().ior(num);\n return num.clone().ior(this);\n };\n\n BN.prototype.uor = function uor (num) {\n if (this.length > num.length) return this.clone().iuor(num);\n return num.clone().iuor(this);\n };\n\n // And `num` with `this` in-place\n BN.prototype.iuand = function iuand (num) {\n // b = min-length(num, this)\n var b;\n if (this.length > num.length) {\n b = num;\n } else {\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = this.words[i] & num.words[i];\n }\n\n this.length = b.length;\n\n return this.strip();\n };\n\n BN.prototype.iand = function iand (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuand(num);\n };\n\n // And `num` with `this`\n BN.prototype.and = function and (num) {\n if (this.length > num.length) return this.clone().iand(num);\n return num.clone().iand(this);\n };\n\n BN.prototype.uand = function uand (num) {\n if (this.length > num.length) return this.clone().iuand(num);\n return num.clone().iuand(this);\n };\n\n // Xor `num` with `this` in-place\n BN.prototype.iuxor = function iuxor (num) {\n // a.length > b.length\n var a;\n var b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = a.words[i] ^ b.words[i];\n }\n\n if (this !== a) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = a.length;\n\n return this.strip();\n };\n\n BN.prototype.ixor = function ixor (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuxor(num);\n };\n\n // Xor `num` with `this`\n BN.prototype.xor = function xor (num) {\n if (this.length > num.length) return this.clone().ixor(num);\n return num.clone().ixor(this);\n };\n\n BN.prototype.uxor = function uxor (num) {\n if (this.length > num.length) return this.clone().iuxor(num);\n return num.clone().iuxor(this);\n };\n\n // Not ``this`` with ``width`` bitwidth\n BN.prototype.inotn = function inotn (width) {\n assert(typeof width === 'number' && width >= 0);\n\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26;\n\n // Extend the buffer with leading zeroes\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n }\n\n // Handle complete words\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n }\n\n // Handle the residue\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));\n }\n\n // And remove leading zeroes\n return this.strip();\n };\n\n BN.prototype.notn = function notn (width) {\n return this.clone().inotn(width);\n };\n\n // Set `bit` of `this`\n BN.prototype.setn = function setn (bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\n\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n this._expand(off + 1);\n\n if (val) {\n this.words[off] = this.words[off] | (1 << wbit);\n } else {\n this.words[off] = this.words[off] & ~(1 << wbit);\n }\n\n return this.strip();\n };\n\n // Add `num` to `this` in-place\n BN.prototype.iadd = function iadd (num) {\n var r;\n\n // negative + positive\n if (this.negative !== 0 && num.negative === 0) {\n this.negative = 0;\n r = this.isub(num);\n this.negative ^= 1;\n return this._normSign();\n\n // positive + negative\n } else if (this.negative === 0 && num.negative !== 0) {\n num.negative = 0;\n r = this.isub(num);\n num.negative = 1;\n return r._normSign();\n }\n\n // a.length > b.length\n var a, b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n this.length = a.length;\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++;\n // Copy the rest of the words\n } else if (a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n return this;\n };\n\n // Add `num` to `this`\n BN.prototype.add = function add (num) {\n var res;\n if (num.negative !== 0 && this.negative === 0) {\n num.negative = 0;\n res = this.sub(num);\n num.negative ^= 1;\n return res;\n } else if (num.negative === 0 && this.negative !== 0) {\n this.negative = 0;\n res = num.sub(this);\n this.negative = 1;\n return res;\n }\n\n if (this.length > num.length) return this.clone().iadd(num);\n\n return num.clone().iadd(this);\n };\n\n // Subtract `num` from `this` in-place\n BN.prototype.isub = function isub (num) {\n // this - (-num) = this + num\n if (num.negative !== 0) {\n num.negative = 0;\n var r = this.iadd(num);\n num.negative = 1;\n return r._normSign();\n\n // -this - num = -(this + num)\n } else if (this.negative !== 0) {\n this.negative = 0;\n this.iadd(num);\n this.negative = 1;\n return this._normSign();\n }\n\n // At this point both numbers are positive\n var cmp = this.cmp(num);\n\n // Optimization - zeroify\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n }\n\n // a > b\n var a, b;\n if (cmp > 0) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n\n // Copy rest of the words\n if (carry === 0 && i < a.length && a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = Math.max(this.length, i);\n\n if (a !== this) {\n this.negative = 1;\n }\n\n return this.strip();\n };\n\n // Subtract `num` from `this`\n BN.prototype.sub = function sub (num) {\n return this.clone().isub(num);\n };\n\n function smallMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n var len = (self.length + num.length) | 0;\n out.length = len;\n len = (len - 1) | 0;\n\n // Peel one iteration (compiler can't do it, because of code complexity)\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n var carry = (r / 0x4000000) | 0;\n out.words[0] = lo;\n\n for (var k = 1; k < len; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = carry >>> 26;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = (k - j) | 0;\n a = self.words[i] | 0;\n b = num.words[j] | 0;\n r = a * b + rword;\n ncarry += (r / 0x4000000) | 0;\n rword = r & 0x3ffffff;\n }\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n // TODO(indutny): it may be reasonable to omit it for users who don't need\n // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n // multiplication (like elliptic secp256k1).\n var comb10MulTo = function comb10MulTo (self, num, out) {\n var a = self.words;\n var b = num.words;\n var o = out.words;\n var c = 0;\n var lo;\n var mid;\n var hi;\n var a0 = a[0] | 0;\n var al0 = a0 & 0x1fff;\n var ah0 = a0 >>> 13;\n var a1 = a[1] | 0;\n var al1 = a1 & 0x1fff;\n var ah1 = a1 >>> 13;\n var a2 = a[2] | 0;\n var al2 = a2 & 0x1fff;\n var ah2 = a2 >>> 13;\n var a3 = a[3] | 0;\n var al3 = a3 & 0x1fff;\n var ah3 = a3 >>> 13;\n var a4 = a[4] | 0;\n var al4 = a4 & 0x1fff;\n var ah4 = a4 >>> 13;\n var a5 = a[5] | 0;\n var al5 = a5 & 0x1fff;\n var ah5 = a5 >>> 13;\n var a6 = a[6] | 0;\n var al6 = a6 & 0x1fff;\n var ah6 = a6 >>> 13;\n var a7 = a[7] | 0;\n var al7 = a7 & 0x1fff;\n var ah7 = a7 >>> 13;\n var a8 = a[8] | 0;\n var al8 = a8 & 0x1fff;\n var ah8 = a8 >>> 13;\n var a9 = a[9] | 0;\n var al9 = a9 & 0x1fff;\n var ah9 = a9 >>> 13;\n var b0 = b[0] | 0;\n var bl0 = b0 & 0x1fff;\n var bh0 = b0 >>> 13;\n var b1 = b[1] | 0;\n var bl1 = b1 & 0x1fff;\n var bh1 = b1 >>> 13;\n var b2 = b[2] | 0;\n var bl2 = b2 & 0x1fff;\n var bh2 = b2 >>> 13;\n var b3 = b[3] | 0;\n var bl3 = b3 & 0x1fff;\n var bh3 = b3 >>> 13;\n var b4 = b[4] | 0;\n var bl4 = b4 & 0x1fff;\n var bh4 = b4 >>> 13;\n var b5 = b[5] | 0;\n var bl5 = b5 & 0x1fff;\n var bh5 = b5 >>> 13;\n var b6 = b[6] | 0;\n var bl6 = b6 & 0x1fff;\n var bh6 = b6 >>> 13;\n var b7 = b[7] | 0;\n var bl7 = b7 & 0x1fff;\n var bh7 = b7 >>> 13;\n var b8 = b[8] | 0;\n var bl8 = b8 & 0x1fff;\n var bh8 = b8 >>> 13;\n var b9 = b[9] | 0;\n var bl9 = b9 & 0x1fff;\n var bh9 = b9 >>> 13;\n\n out.negative = self.negative ^ num.negative;\n out.length = 19;\n /* k = 0 */\n lo = Math.imul(al0, bl0);\n mid = Math.imul(al0, bh0);\n mid = (mid + Math.imul(ah0, bl0)) | 0;\n hi = Math.imul(ah0, bh0);\n var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;\n w0 &= 0x3ffffff;\n /* k = 1 */\n lo = Math.imul(al1, bl0);\n mid = Math.imul(al1, bh0);\n mid = (mid + Math.imul(ah1, bl0)) | 0;\n hi = Math.imul(ah1, bh0);\n lo = (lo + Math.imul(al0, bl1)) | 0;\n mid = (mid + Math.imul(al0, bh1)) | 0;\n mid = (mid + Math.imul(ah0, bl1)) | 0;\n hi = (hi + Math.imul(ah0, bh1)) | 0;\n var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;\n w1 &= 0x3ffffff;\n /* k = 2 */\n lo = Math.imul(al2, bl0);\n mid = Math.imul(al2, bh0);\n mid = (mid + Math.imul(ah2, bl0)) | 0;\n hi = Math.imul(ah2, bh0);\n lo = (lo + Math.imul(al1, bl1)) | 0;\n mid = (mid + Math.imul(al1, bh1)) | 0;\n mid = (mid + Math.imul(ah1, bl1)) | 0;\n hi = (hi + Math.imul(ah1, bh1)) | 0;\n lo = (lo + Math.imul(al0, bl2)) | 0;\n mid = (mid + Math.imul(al0, bh2)) | 0;\n mid = (mid + Math.imul(ah0, bl2)) | 0;\n hi = (hi + Math.imul(ah0, bh2)) | 0;\n var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;\n w2 &= 0x3ffffff;\n /* k = 3 */\n lo = Math.imul(al3, bl0);\n mid = Math.imul(al3, bh0);\n mid = (mid + Math.imul(ah3, bl0)) | 0;\n hi = Math.imul(ah3, bh0);\n lo = (lo + Math.imul(al2, bl1)) | 0;\n mid = (mid + Math.imul(al2, bh1)) | 0;\n mid = (mid + Math.imul(ah2, bl1)) | 0;\n hi = (hi + Math.imul(ah2, bh1)) | 0;\n lo = (lo + Math.imul(al1, bl2)) | 0;\n mid = (mid + Math.imul(al1, bh2)) | 0;\n mid = (mid + Math.imul(ah1, bl2)) | 0;\n hi = (hi + Math.imul(ah1, bh2)) | 0;\n lo = (lo + Math.imul(al0, bl3)) | 0;\n mid = (mid + Math.imul(al0, bh3)) | 0;\n mid = (mid + Math.imul(ah0, bl3)) | 0;\n hi = (hi + Math.imul(ah0, bh3)) | 0;\n var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;\n w3 &= 0x3ffffff;\n /* k = 4 */\n lo = Math.imul(al4, bl0);\n mid = Math.imul(al4, bh0);\n mid = (mid + Math.imul(ah4, bl0)) | 0;\n hi = Math.imul(ah4, bh0);\n lo = (lo + Math.imul(al3, bl1)) | 0;\n mid = (mid + Math.imul(al3, bh1)) | 0;\n mid = (mid + Math.imul(ah3, bl1)) | 0;\n hi = (hi + Math.imul(ah3, bh1)) | 0;\n lo = (lo + Math.imul(al2, bl2)) | 0;\n mid = (mid + Math.imul(al2, bh2)) | 0;\n mid = (mid + Math.imul(ah2, bl2)) | 0;\n hi = (hi + Math.imul(ah2, bh2)) | 0;\n lo = (lo + Math.imul(al1, bl3)) | 0;\n mid = (mid + Math.imul(al1, bh3)) | 0;\n mid = (mid + Math.imul(ah1, bl3)) | 0;\n hi = (hi + Math.imul(ah1, bh3)) | 0;\n lo = (lo + Math.imul(al0, bl4)) | 0;\n mid = (mid + Math.imul(al0, bh4)) | 0;\n mid = (mid + Math.imul(ah0, bl4)) | 0;\n hi = (hi + Math.imul(ah0, bh4)) | 0;\n var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;\n w4 &= 0x3ffffff;\n /* k = 5 */\n lo = Math.imul(al5, bl0);\n mid = Math.imul(al5, bh0);\n mid = (mid + Math.imul(ah5, bl0)) | 0;\n hi = Math.imul(ah5, bh0);\n lo = (lo + Math.imul(al4, bl1)) | 0;\n mid = (mid + Math.imul(al4, bh1)) | 0;\n mid = (mid + Math.imul(ah4, bl1)) | 0;\n hi = (hi + Math.imul(ah4, bh1)) | 0;\n lo = (lo + Math.imul(al3, bl2)) | 0;\n mid = (mid + Math.imul(al3, bh2)) | 0;\n mid = (mid + Math.imul(ah3, bl2)) | 0;\n hi = (hi + Math.imul(ah3, bh2)) | 0;\n lo = (lo + Math.imul(al2, bl3)) | 0;\n mid = (mid + Math.imul(al2, bh3)) | 0;\n mid = (mid + Math.imul(ah2, bl3)) | 0;\n hi = (hi + Math.imul(ah2, bh3)) | 0;\n lo = (lo + Math.imul(al1, bl4)) | 0;\n mid = (mid + Math.imul(al1, bh4)) | 0;\n mid = (mid + Math.imul(ah1, bl4)) | 0;\n hi = (hi + Math.imul(ah1, bh4)) | 0;\n lo = (lo + Math.imul(al0, bl5)) | 0;\n mid = (mid + Math.imul(al0, bh5)) | 0;\n mid = (mid + Math.imul(ah0, bl5)) | 0;\n hi = (hi + Math.imul(ah0, bh5)) | 0;\n var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;\n w5 &= 0x3ffffff;\n /* k = 6 */\n lo = Math.imul(al6, bl0);\n mid = Math.imul(al6, bh0);\n mid = (mid + Math.imul(ah6, bl0)) | 0;\n hi = Math.imul(ah6, bh0);\n lo = (lo + Math.imul(al5, bl1)) | 0;\n mid = (mid + Math.imul(al5, bh1)) | 0;\n mid = (mid + Math.imul(ah5, bl1)) | 0;\n hi = (hi + Math.imul(ah5, bh1)) | 0;\n lo = (lo + Math.imul(al4, bl2)) | 0;\n mid = (mid + Math.imul(al4, bh2)) | 0;\n mid = (mid + Math.imul(ah4, bl2)) | 0;\n hi = (hi + Math.imul(ah4, bh2)) | 0;\n lo = (lo + Math.imul(al3, bl3)) | 0;\n mid = (mid + Math.imul(al3, bh3)) | 0;\n mid = (mid + Math.imul(ah3, bl3)) | 0;\n hi = (hi + Math.imul(ah3, bh3)) | 0;\n lo = (lo + Math.imul(al2, bl4)) | 0;\n mid = (mid + Math.imul(al2, bh4)) | 0;\n mid = (mid + Math.imul(ah2, bl4)) | 0;\n hi = (hi + Math.imul(ah2, bh4)) | 0;\n lo = (lo + Math.imul(al1, bl5)) | 0;\n mid = (mid + Math.imul(al1, bh5)) | 0;\n mid = (mid + Math.imul(ah1, bl5)) | 0;\n hi = (hi + Math.imul(ah1, bh5)) | 0;\n lo = (lo + Math.imul(al0, bl6)) | 0;\n mid = (mid + Math.imul(al0, bh6)) | 0;\n mid = (mid + Math.imul(ah0, bl6)) | 0;\n hi = (hi + Math.imul(ah0, bh6)) | 0;\n var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;\n w6 &= 0x3ffffff;\n /* k = 7 */\n lo = Math.imul(al7, bl0);\n mid = Math.imul(al7, bh0);\n mid = (mid + Math.imul(ah7, bl0)) | 0;\n hi = Math.imul(ah7, bh0);\n lo = (lo + Math.imul(al6, bl1)) | 0;\n mid = (mid + Math.imul(al6, bh1)) | 0;\n mid = (mid + Math.imul(ah6, bl1)) | 0;\n hi = (hi + Math.imul(ah6, bh1)) | 0;\n lo = (lo + Math.imul(al5, bl2)) | 0;\n mid = (mid + Math.imul(al5, bh2)) | 0;\n mid = (mid + Math.imul(ah5, bl2)) | 0;\n hi = (hi + Math.imul(ah5, bh2)) | 0;\n lo = (lo + Math.imul(al4, bl3)) | 0;\n mid = (mid + Math.imul(al4, bh3)) | 0;\n mid = (mid + Math.imul(ah4, bl3)) | 0;\n hi = (hi + Math.imul(ah4, bh3)) | 0;\n lo = (lo + Math.imul(al3, bl4)) | 0;\n mid = (mid + Math.imul(al3, bh4)) | 0;\n mid = (mid + Math.imul(ah3, bl4)) | 0;\n hi = (hi + Math.imul(ah3, bh4)) | 0;\n lo = (lo + Math.imul(al2, bl5)) | 0;\n mid = (mid + Math.imul(al2, bh5)) | 0;\n mid = (mid + Math.imul(ah2, bl5)) | 0;\n hi = (hi + Math.imul(ah2, bh5)) | 0;\n lo = (lo + Math.imul(al1, bl6)) | 0;\n mid = (mid + Math.imul(al1, bh6)) | 0;\n mid = (mid + Math.imul(ah1, bl6)) | 0;\n hi = (hi + Math.imul(ah1, bh6)) | 0;\n lo = (lo + Math.imul(al0, bl7)) | 0;\n mid = (mid + Math.imul(al0, bh7)) | 0;\n mid = (mid + Math.imul(ah0, bl7)) | 0;\n hi = (hi + Math.imul(ah0, bh7)) | 0;\n var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;\n w7 &= 0x3ffffff;\n /* k = 8 */\n lo = Math.imul(al8, bl0);\n mid = Math.imul(al8, bh0);\n mid = (mid + Math.imul(ah8, bl0)) | 0;\n hi = Math.imul(ah8, bh0);\n lo = (lo + Math.imul(al7, bl1)) | 0;\n mid = (mid + Math.imul(al7, bh1)) | 0;\n mid = (mid + Math.imul(ah7, bl1)) | 0;\n hi = (hi + Math.imul(ah7, bh1)) | 0;\n lo = (lo + Math.imul(al6, bl2)) | 0;\n mid = (mid + Math.imul(al6, bh2)) | 0;\n mid = (mid + Math.imul(ah6, bl2)) | 0;\n hi = (hi + Math.imul(ah6, bh2)) | 0;\n lo = (lo + Math.imul(al5, bl3)) | 0;\n mid = (mid + Math.imul(al5, bh3)) | 0;\n mid = (mid + Math.imul(ah5, bl3)) | 0;\n hi = (hi + Math.imul(ah5, bh3)) | 0;\n lo = (lo + Math.imul(al4, bl4)) | 0;\n mid = (mid + Math.imul(al4, bh4)) | 0;\n mid = (mid + Math.imul(ah4, bl4)) | 0;\n hi = (hi + Math.imul(ah4, bh4)) | 0;\n lo = (lo + Math.imul(al3, bl5)) | 0;\n mid = (mid + Math.imul(al3, bh5)) | 0;\n mid = (mid + Math.imul(ah3, bl5)) | 0;\n hi = (hi + Math.imul(ah3, bh5)) | 0;\n lo = (lo + Math.imul(al2, bl6)) | 0;\n mid = (mid + Math.imul(al2, bh6)) | 0;\n mid = (mid + Math.imul(ah2, bl6)) | 0;\n hi = (hi + Math.imul(ah2, bh6)) | 0;\n lo = (lo + Math.imul(al1, bl7)) | 0;\n mid = (mid + Math.imul(al1, bh7)) | 0;\n mid = (mid + Math.imul(ah1, bl7)) | 0;\n hi = (hi + Math.imul(ah1, bh7)) | 0;\n lo = (lo + Math.imul(al0, bl8)) | 0;\n mid = (mid + Math.imul(al0, bh8)) | 0;\n mid = (mid + Math.imul(ah0, bl8)) | 0;\n hi = (hi + Math.imul(ah0, bh8)) | 0;\n var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;\n w8 &= 0x3ffffff;\n /* k = 9 */\n lo = Math.imul(al9, bl0);\n mid = Math.imul(al9, bh0);\n mid = (mid + Math.imul(ah9, bl0)) | 0;\n hi = Math.imul(ah9, bh0);\n lo = (lo + Math.imul(al8, bl1)) | 0;\n mid = (mid + Math.imul(al8, bh1)) | 0;\n mid = (mid + Math.imul(ah8, bl1)) | 0;\n hi = (hi + Math.imul(ah8, bh1)) | 0;\n lo = (lo + Math.imul(al7, bl2)) | 0;\n mid = (mid + Math.imul(al7, bh2)) | 0;\n mid = (mid + Math.imul(ah7, bl2)) | 0;\n hi = (hi + Math.imul(ah7, bh2)) | 0;\n lo = (lo + Math.imul(al6, bl3)) | 0;\n mid = (mid + Math.imul(al6, bh3)) | 0;\n mid = (mid + Math.imul(ah6, bl3)) | 0;\n hi = (hi + Math.imul(ah6, bh3)) | 0;\n lo = (lo + Math.imul(al5, bl4)) | 0;\n mid = (mid + Math.imul(al5, bh4)) | 0;\n mid = (mid + Math.imul(ah5, bl4)) | 0;\n hi = (hi + Math.imul(ah5, bh4)) | 0;\n lo = (lo + Math.imul(al4, bl5)) | 0;\n mid = (mid + Math.imul(al4, bh5)) | 0;\n mid = (mid + Math.imul(ah4, bl5)) | 0;\n hi = (hi + Math.imul(ah4, bh5)) | 0;\n lo = (lo + Math.imul(al3, bl6)) | 0;\n mid = (mid + Math.imul(al3, bh6)) | 0;\n mid = (mid + Math.imul(ah3, bl6)) | 0;\n hi = (hi + Math.imul(ah3, bh6)) | 0;\n lo = (lo + Math.imul(al2, bl7)) | 0;\n mid = (mid + Math.imul(al2, bh7)) | 0;\n mid = (mid + Math.imul(ah2, bl7)) | 0;\n hi = (hi + Math.imul(ah2, bh7)) | 0;\n lo = (lo + Math.imul(al1, bl8)) | 0;\n mid = (mid + Math.imul(al1, bh8)) | 0;\n mid = (mid + Math.imul(ah1, bl8)) | 0;\n hi = (hi + Math.imul(ah1, bh8)) | 0;\n lo = (lo + Math.imul(al0, bl9)) | 0;\n mid = (mid + Math.imul(al0, bh9)) | 0;\n mid = (mid + Math.imul(ah0, bl9)) | 0;\n hi = (hi + Math.imul(ah0, bh9)) | 0;\n var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;\n w9 &= 0x3ffffff;\n /* k = 10 */\n lo = Math.imul(al9, bl1);\n mid = Math.imul(al9, bh1);\n mid = (mid + Math.imul(ah9, bl1)) | 0;\n hi = Math.imul(ah9, bh1);\n lo = (lo + Math.imul(al8, bl2)) | 0;\n mid = (mid + Math.imul(al8, bh2)) | 0;\n mid = (mid + Math.imul(ah8, bl2)) | 0;\n hi = (hi + Math.imul(ah8, bh2)) | 0;\n lo = (lo + Math.imul(al7, bl3)) | 0;\n mid = (mid + Math.imul(al7, bh3)) | 0;\n mid = (mid + Math.imul(ah7, bl3)) | 0;\n hi = (hi + Math.imul(ah7, bh3)) | 0;\n lo = (lo + Math.imul(al6, bl4)) | 0;\n mid = (mid + Math.imul(al6, bh4)) | 0;\n mid = (mid + Math.imul(ah6, bl4)) | 0;\n hi = (hi + Math.imul(ah6, bh4)) | 0;\n lo = (lo + Math.imul(al5, bl5)) | 0;\n mid = (mid + Math.imul(al5, bh5)) | 0;\n mid = (mid + Math.imul(ah5, bl5)) | 0;\n hi = (hi + Math.imul(ah5, bh5)) | 0;\n lo = (lo + Math.imul(al4, bl6)) | 0;\n mid = (mid + Math.imul(al4, bh6)) | 0;\n mid = (mid + Math.imul(ah4, bl6)) | 0;\n hi = (hi + Math.imul(ah4, bh6)) | 0;\n lo = (lo + Math.imul(al3, bl7)) | 0;\n mid = (mid + Math.imul(al3, bh7)) | 0;\n mid = (mid + Math.imul(ah3, bl7)) | 0;\n hi = (hi + Math.imul(ah3, bh7)) | 0;\n lo = (lo + Math.imul(al2, bl8)) | 0;\n mid = (mid + Math.imul(al2, bh8)) | 0;\n mid = (mid + Math.imul(ah2, bl8)) | 0;\n hi = (hi + Math.imul(ah2, bh8)) | 0;\n lo = (lo + Math.imul(al1, bl9)) | 0;\n mid = (mid + Math.imul(al1, bh9)) | 0;\n mid = (mid + Math.imul(ah1, bl9)) | 0;\n hi = (hi + Math.imul(ah1, bh9)) | 0;\n var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;\n w10 &= 0x3ffffff;\n /* k = 11 */\n lo = Math.imul(al9, bl2);\n mid = Math.imul(al9, bh2);\n mid = (mid + Math.imul(ah9, bl2)) | 0;\n hi = Math.imul(ah9, bh2);\n lo = (lo + Math.imul(al8, bl3)) | 0;\n mid = (mid + Math.imul(al8, bh3)) | 0;\n mid = (mid + Math.imul(ah8, bl3)) | 0;\n hi = (hi + Math.imul(ah8, bh3)) | 0;\n lo = (lo + Math.imul(al7, bl4)) | 0;\n mid = (mid + Math.imul(al7, bh4)) | 0;\n mid = (mid + Math.imul(ah7, bl4)) | 0;\n hi = (hi + Math.imul(ah7, bh4)) | 0;\n lo = (lo + Math.imul(al6, bl5)) | 0;\n mid = (mid + Math.imul(al6, bh5)) | 0;\n mid = (mid + Math.imul(ah6, bl5)) | 0;\n hi = (hi + Math.imul(ah6, bh5)) | 0;\n lo = (lo + Math.imul(al5, bl6)) | 0;\n mid = (mid + Math.imul(al5, bh6)) | 0;\n mid = (mid + Math.imul(ah5, bl6)) | 0;\n hi = (hi + Math.imul(ah5, bh6)) | 0;\n lo = (lo + Math.imul(al4, bl7)) | 0;\n mid = (mid + Math.imul(al4, bh7)) | 0;\n mid = (mid + Math.imul(ah4, bl7)) | 0;\n hi = (hi + Math.imul(ah4, bh7)) | 0;\n lo = (lo + Math.imul(al3, bl8)) | 0;\n mid = (mid + Math.imul(al3, bh8)) | 0;\n mid = (mid + Math.imul(ah3, bl8)) | 0;\n hi = (hi + Math.imul(ah3, bh8)) | 0;\n lo = (lo + Math.imul(al2, bl9)) | 0;\n mid = (mid + Math.imul(al2, bh9)) | 0;\n mid = (mid + Math.imul(ah2, bl9)) | 0;\n hi = (hi + Math.imul(ah2, bh9)) | 0;\n var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;\n w11 &= 0x3ffffff;\n /* k = 12 */\n lo = Math.imul(al9, bl3);\n mid = Math.imul(al9, bh3);\n mid = (mid + Math.imul(ah9, bl3)) | 0;\n hi = Math.imul(ah9, bh3);\n lo = (lo + Math.imul(al8, bl4)) | 0;\n mid = (mid + Math.imul(al8, bh4)) | 0;\n mid = (mid + Math.imul(ah8, bl4)) | 0;\n hi = (hi + Math.imul(ah8, bh4)) | 0;\n lo = (lo + Math.imul(al7, bl5)) | 0;\n mid = (mid + Math.imul(al7, bh5)) | 0;\n mid = (mid + Math.imul(ah7, bl5)) | 0;\n hi = (hi + Math.imul(ah7, bh5)) | 0;\n lo = (lo + Math.imul(al6, bl6)) | 0;\n mid = (mid + Math.imul(al6, bh6)) | 0;\n mid = (mid + Math.imul(ah6, bl6)) | 0;\n hi = (hi + Math.imul(ah6, bh6)) | 0;\n lo = (lo + Math.imul(al5, bl7)) | 0;\n mid = (mid + Math.imul(al5, bh7)) | 0;\n mid = (mid + Math.imul(ah5, bl7)) | 0;\n hi = (hi + Math.imul(ah5, bh7)) | 0;\n lo = (lo + Math.imul(al4, bl8)) | 0;\n mid = (mid + Math.imul(al4, bh8)) | 0;\n mid = (mid + Math.imul(ah4, bl8)) | 0;\n hi = (hi + Math.imul(ah4, bh8)) | 0;\n lo = (lo + Math.imul(al3, bl9)) | 0;\n mid = (mid + Math.imul(al3, bh9)) | 0;\n mid = (mid + Math.imul(ah3, bl9)) | 0;\n hi = (hi + Math.imul(ah3, bh9)) | 0;\n var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;\n w12 &= 0x3ffffff;\n /* k = 13 */\n lo = Math.imul(al9, bl4);\n mid = Math.imul(al9, bh4);\n mid = (mid + Math.imul(ah9, bl4)) | 0;\n hi = Math.imul(ah9, bh4);\n lo = (lo + Math.imul(al8, bl5)) | 0;\n mid = (mid + Math.imul(al8, bh5)) | 0;\n mid = (mid + Math.imul(ah8, bl5)) | 0;\n hi = (hi + Math.imul(ah8, bh5)) | 0;\n lo = (lo + Math.imul(al7, bl6)) | 0;\n mid = (mid + Math.imul(al7, bh6)) | 0;\n mid = (mid + Math.imul(ah7, bl6)) | 0;\n hi = (hi + Math.imul(ah7, bh6)) | 0;\n lo = (lo + Math.imul(al6, bl7)) | 0;\n mid = (mid + Math.imul(al6, bh7)) | 0;\n mid = (mid + Math.imul(ah6, bl7)) | 0;\n hi = (hi + Math.imul(ah6, bh7)) | 0;\n lo = (lo + Math.imul(al5, bl8)) | 0;\n mid = (mid + Math.imul(al5, bh8)) | 0;\n mid = (mid + Math.imul(ah5, bl8)) | 0;\n hi = (hi + Math.imul(ah5, bh8)) | 0;\n lo = (lo + Math.imul(al4, bl9)) | 0;\n mid = (mid + Math.imul(al4, bh9)) | 0;\n mid = (mid + Math.imul(ah4, bl9)) | 0;\n hi = (hi + Math.imul(ah4, bh9)) | 0;\n var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;\n w13 &= 0x3ffffff;\n /* k = 14 */\n lo = Math.imul(al9, bl5);\n mid = Math.imul(al9, bh5);\n mid = (mid + Math.imul(ah9, bl5)) | 0;\n hi = Math.imul(ah9, bh5);\n lo = (lo + Math.imul(al8, bl6)) | 0;\n mid = (mid + Math.imul(al8, bh6)) | 0;\n mid = (mid + Math.imul(ah8, bl6)) | 0;\n hi = (hi + Math.imul(ah8, bh6)) | 0;\n lo = (lo + Math.imul(al7, bl7)) | 0;\n mid = (mid + Math.imul(al7, bh7)) | 0;\n mid = (mid + Math.imul(ah7, bl7)) | 0;\n hi = (hi + Math.imul(ah7, bh7)) | 0;\n lo = (lo + Math.imul(al6, bl8)) | 0;\n mid = (mid + Math.imul(al6, bh8)) | 0;\n mid = (mid + Math.imul(ah6, bl8)) | 0;\n hi = (hi + Math.imul(ah6, bh8)) | 0;\n lo = (lo + Math.imul(al5, bl9)) | 0;\n mid = (mid + Math.imul(al5, bh9)) | 0;\n mid = (mid + Math.imul(ah5, bl9)) | 0;\n hi = (hi + Math.imul(ah5, bh9)) | 0;\n var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;\n w14 &= 0x3ffffff;\n /* k = 15 */\n lo = Math.imul(al9, bl6);\n mid = Math.imul(al9, bh6);\n mid = (mid + Math.imul(ah9, bl6)) | 0;\n hi = Math.imul(ah9, bh6);\n lo = (lo + Math.imul(al8, bl7)) | 0;\n mid = (mid + Math.imul(al8, bh7)) | 0;\n mid = (mid + Math.imul(ah8, bl7)) | 0;\n hi = (hi + Math.imul(ah8, bh7)) | 0;\n lo = (lo + Math.imul(al7, bl8)) | 0;\n mid = (mid + Math.imul(al7, bh8)) | 0;\n mid = (mid + Math.imul(ah7, bl8)) | 0;\n hi = (hi + Math.imul(ah7, bh8)) | 0;\n lo = (lo + Math.imul(al6, bl9)) | 0;\n mid = (mid + Math.imul(al6, bh9)) | 0;\n mid = (mid + Math.imul(ah6, bl9)) | 0;\n hi = (hi + Math.imul(ah6, bh9)) | 0;\n var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;\n w15 &= 0x3ffffff;\n /* k = 16 */\n lo = Math.imul(al9, bl7);\n mid = Math.imul(al9, bh7);\n mid = (mid + Math.imul(ah9, bl7)) | 0;\n hi = Math.imul(ah9, bh7);\n lo = (lo + Math.imul(al8, bl8)) | 0;\n mid = (mid + Math.imul(al8, bh8)) | 0;\n mid = (mid + Math.imul(ah8, bl8)) | 0;\n hi = (hi + Math.imul(ah8, bh8)) | 0;\n lo = (lo + Math.imul(al7, bl9)) | 0;\n mid = (mid + Math.imul(al7, bh9)) | 0;\n mid = (mid + Math.imul(ah7, bl9)) | 0;\n hi = (hi + Math.imul(ah7, bh9)) | 0;\n var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;\n w16 &= 0x3ffffff;\n /* k = 17 */\n lo = Math.imul(al9, bl8);\n mid = Math.imul(al9, bh8);\n mid = (mid + Math.imul(ah9, bl8)) | 0;\n hi = Math.imul(ah9, bh8);\n lo = (lo + Math.imul(al8, bl9)) | 0;\n mid = (mid + Math.imul(al8, bh9)) | 0;\n mid = (mid + Math.imul(ah8, bl9)) | 0;\n hi = (hi + Math.imul(ah8, bh9)) | 0;\n var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;\n w17 &= 0x3ffffff;\n /* k = 18 */\n lo = Math.imul(al9, bl9);\n mid = Math.imul(al9, bh9);\n mid = (mid + Math.imul(ah9, bl9)) | 0;\n hi = Math.imul(ah9, bh9);\n var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;\n w18 &= 0x3ffffff;\n o[0] = w0;\n o[1] = w1;\n o[2] = w2;\n o[3] = w3;\n o[4] = w4;\n o[5] = w5;\n o[6] = w6;\n o[7] = w7;\n o[8] = w8;\n o[9] = w9;\n o[10] = w10;\n o[11] = w11;\n o[12] = w12;\n o[13] = w13;\n o[14] = w14;\n o[15] = w15;\n o[16] = w16;\n o[17] = w17;\n o[18] = w18;\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n return out;\n };\n\n // Polyfill comb\n if (!Math.imul) {\n comb10MulTo = smallMulTo;\n }\n\n function bigMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n out.length = self.length + num.length;\n\n var carry = 0;\n var hncarry = 0;\n for (var k = 0; k < out.length - 1; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = hncarry;\n hncarry = 0;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j;\n var a = self.words[i] | 0;\n var b = num.words[j] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;\n lo = (lo + rword) | 0;\n rword = lo & 0x3ffffff;\n ncarry = (ncarry + (lo >>> 26)) | 0;\n\n hncarry += ncarry >>> 26;\n ncarry &= 0x3ffffff;\n }\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\n if (carry !== 0) {\n out.words[k] = carry;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n function jumboMulTo (self, num, out) {\n var fftm = new FFTM();\n return fftm.mulp(self, num, out);\n }\n\n BN.prototype.mulTo = function mulTo (num, out) {\n var res;\n var len = this.length + num.length;\n if (this.length === 10 && num.length === 10) {\n res = comb10MulTo(this, num, out);\n } else if (len < 63) {\n res = smallMulTo(this, num, out);\n } else if (len < 1024) {\n res = bigMulTo(this, num, out);\n } else {\n res = jumboMulTo(this, num, out);\n }\n\n return res;\n };\n\n // Cooley-Tukey algorithm for FFT\n // slightly revisited to rely on looping instead of recursion\n\n function FFTM (x, y) {\n this.x = x;\n this.y = y;\n }\n\n FFTM.prototype.makeRBT = function makeRBT (N) {\n var t = new Array(N);\n var l = BN.prototype._countBits(N) - 1;\n for (var i = 0; i < N; i++) {\n t[i] = this.revBin(i, l, N);\n }\n\n return t;\n };\n\n // Returns binary-reversed representation of `x`\n FFTM.prototype.revBin = function revBin (x, l, N) {\n if (x === 0 || x === N - 1) return x;\n\n var rb = 0;\n for (var i = 0; i < l; i++) {\n rb |= (x & 1) << (l - i - 1);\n x >>= 1;\n }\n\n return rb;\n };\n\n // Performs \"tweedling\" phase, therefore 'emulating'\n // behaviour of the recursive algorithm\n FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {\n for (var i = 0; i < N; i++) {\n rtws[i] = rws[rbt[i]];\n itws[i] = iws[rbt[i]];\n }\n };\n\n FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {\n this.permute(rbt, rws, iws, rtws, itws, N);\n\n for (var s = 1; s < N; s <<= 1) {\n var l = s << 1;\n\n var rtwdf = Math.cos(2 * Math.PI / l);\n var itwdf = Math.sin(2 * Math.PI / l);\n\n for (var p = 0; p < N; p += l) {\n var rtwdf_ = rtwdf;\n var itwdf_ = itwdf;\n\n for (var j = 0; j < s; j++) {\n var re = rtws[p + j];\n var ie = itws[p + j];\n\n var ro = rtws[p + j + s];\n var io = itws[p + j + s];\n\n var rx = rtwdf_ * ro - itwdf_ * io;\n\n io = rtwdf_ * io + itwdf_ * ro;\n ro = rx;\n\n rtws[p + j] = re + ro;\n itws[p + j] = ie + io;\n\n rtws[p + j + s] = re - ro;\n itws[p + j + s] = ie - io;\n\n /* jshint maxdepth : false */\n if (j !== l) {\n rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n\n itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n rtwdf_ = rx;\n }\n }\n }\n }\n };\n\n FFTM.prototype.guessLen13b = function guessLen13b (n, m) {\n var N = Math.max(m, n) | 1;\n var odd = N & 1;\n var i = 0;\n for (N = N / 2 | 0; N; N = N >>> 1) {\n i++;\n }\n\n return 1 << i + 1 + odd;\n };\n\n FFTM.prototype.conjugate = function conjugate (rws, iws, N) {\n if (N <= 1) return;\n\n for (var i = 0; i < N / 2; i++) {\n var t = rws[i];\n\n rws[i] = rws[N - i - 1];\n rws[N - i - 1] = t;\n\n t = iws[i];\n\n iws[i] = -iws[N - i - 1];\n iws[N - i - 1] = -t;\n }\n };\n\n FFTM.prototype.normalize13b = function normalize13b (ws, N) {\n var carry = 0;\n for (var i = 0; i < N / 2; i++) {\n var w = Math.round(ws[2 * i + 1] / N) * 0x2000 +\n Math.round(ws[2 * i] / N) +\n carry;\n\n ws[i] = w & 0x3ffffff;\n\n if (w < 0x4000000) {\n carry = 0;\n } else {\n carry = w / 0x4000000 | 0;\n }\n }\n\n return ws;\n };\n\n FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {\n var carry = 0;\n for (var i = 0; i < len; i++) {\n carry = carry + (ws[i] | 0);\n\n rws[2 * i] = carry & 0x1fff; carry = carry >>> 13;\n rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13;\n }\n\n // Pad with zeroes\n for (i = 2 * len; i < N; ++i) {\n rws[i] = 0;\n }\n\n assert(carry === 0);\n assert((carry & ~0x1fff) === 0);\n };\n\n FFTM.prototype.stub = function stub (N) {\n var ph = new Array(N);\n for (var i = 0; i < N; i++) {\n ph[i] = 0;\n }\n\n return ph;\n };\n\n FFTM.prototype.mulp = function mulp (x, y, out) {\n var N = 2 * this.guessLen13b(x.length, y.length);\n\n var rbt = this.makeRBT(N);\n\n var _ = this.stub(N);\n\n var rws = new Array(N);\n var rwst = new Array(N);\n var iwst = new Array(N);\n\n var nrws = new Array(N);\n var nrwst = new Array(N);\n var niwst = new Array(N);\n\n var rmws = out.words;\n rmws.length = N;\n\n this.convert13b(x.words, x.length, rws, N);\n this.convert13b(y.words, y.length, nrws, N);\n\n this.transform(rws, _, rwst, iwst, N, rbt);\n this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n for (var i = 0; i < N; i++) {\n var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n rwst[i] = rx;\n }\n\n this.conjugate(rwst, iwst, N);\n this.transform(rwst, iwst, rmws, _, N, rbt);\n this.conjugate(rmws, _, N);\n this.normalize13b(rmws, N);\n\n out.negative = x.negative ^ y.negative;\n out.length = x.length + y.length;\n return out.strip();\n };\n\n // Multiply `this` by `num`\n BN.prototype.mul = function mul (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return this.mulTo(num, out);\n };\n\n // Multiply employing FFT\n BN.prototype.mulf = function mulf (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return jumboMulTo(this, num, out);\n };\n\n // In-place Multiplication\n BN.prototype.imul = function imul (num) {\n return this.clone().mulTo(num, this);\n };\n\n BN.prototype.imuln = function imuln (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n\n // Carry\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = (this.words[i] | 0) * num;\n var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n carry >>= 26;\n carry += (w / 0x4000000) | 0;\n // NOTE: lo is 27bit maximum\n carry += lo >>> 26;\n this.words[i] = lo & 0x3ffffff;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n\n return this;\n };\n\n BN.prototype.muln = function muln (num) {\n return this.clone().imuln(num);\n };\n\n // `this` * `this`\n BN.prototype.sqr = function sqr () {\n return this.mul(this);\n };\n\n // `this` * `this` in-place\n BN.prototype.isqr = function isqr () {\n return this.imul(this.clone());\n };\n\n // Math.pow(`this`, `num`)\n BN.prototype.pow = function pow (num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1);\n\n // Skip leading zeroes\n var res = this;\n for (var i = 0; i < w.length; i++, res = res.sqr()) {\n if (w[i] !== 0) break;\n }\n\n if (++i < w.length) {\n for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n if (w[i] === 0) continue;\n\n res = res.mul(q);\n }\n }\n\n return res;\n };\n\n // Shift-left in-place\n BN.prototype.iushln = function iushln (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);\n var i;\n\n if (r !== 0) {\n var carry = 0;\n\n for (i = 0; i < this.length; i++) {\n var newCarry = this.words[i] & carryMask;\n var c = ((this.words[i] | 0) - newCarry) << r;\n this.words[i] = c | carry;\n carry = newCarry >>> (26 - r);\n }\n\n if (carry) {\n this.words[i] = carry;\n this.length++;\n }\n }\n\n if (s !== 0) {\n for (i = this.length - 1; i >= 0; i--) {\n this.words[i + s] = this.words[i];\n }\n\n for (i = 0; i < s; i++) {\n this.words[i] = 0;\n }\n\n this.length += s;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishln = function ishln (bits) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushln(bits);\n };\n\n // Shift-right in-place\n // NOTE: `hint` is a lowest bit before trailing zeroes\n // NOTE: if `extended` is present - it will be filled with destroyed bits\n BN.prototype.iushrn = function iushrn (bits, hint, extended) {\n assert(typeof bits === 'number' && bits >= 0);\n var h;\n if (hint) {\n h = (hint - (hint % 26)) / 26;\n } else {\n h = 0;\n }\n\n var r = bits % 26;\n var s = Math.min((bits - r) / 26, this.length);\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n var maskedWords = extended;\n\n h -= s;\n h = Math.max(0, h);\n\n // Extended mode, copy masked part\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n maskedWords.length = s;\n }\n\n if (s === 0) {\n // No-op, we should not move anything at all\n } else if (this.length > s) {\n this.length -= s;\n for (i = 0; i < this.length; i++) {\n this.words[i] = this.words[i + s];\n }\n } else {\n this.words[0] = 0;\n this.length = 1;\n }\n\n var carry = 0;\n for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n var word = this.words[i] | 0;\n this.words[i] = (carry << (26 - r)) | (word >>> r);\n carry = word & mask;\n }\n\n // Push carried bits as a mask\n if (maskedWords && carry !== 0) {\n maskedWords.words[maskedWords.length++] = carry;\n }\n\n if (this.length === 0) {\n this.words[0] = 0;\n this.length = 1;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishrn = function ishrn (bits, hint, extended) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushrn(bits, hint, extended);\n };\n\n // Shift-left\n BN.prototype.shln = function shln (bits) {\n return this.clone().ishln(bits);\n };\n\n BN.prototype.ushln = function ushln (bits) {\n return this.clone().iushln(bits);\n };\n\n // Shift-right\n BN.prototype.shrn = function shrn (bits) {\n return this.clone().ishrn(bits);\n };\n\n BN.prototype.ushrn = function ushrn (bits) {\n return this.clone().iushrn(bits);\n };\n\n // Test if n bit is set\n BN.prototype.testn = function testn (bit) {\n assert(typeof bit === 'number' && bit >= 0);\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) return false;\n\n // Check bit and return\n var w = this.words[s];\n\n return !!(w & q);\n };\n\n // Return only lowers bits of number (in-place)\n BN.prototype.imaskn = function imaskn (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n\n assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n if (this.length <= s) {\n return this;\n }\n\n if (r !== 0) {\n s++;\n }\n this.length = Math.min(s, this.length);\n\n if (r !== 0) {\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n this.words[this.length - 1] &= mask;\n }\n\n return this.strip();\n };\n\n // Return only lowers bits of number\n BN.prototype.maskn = function maskn (bits) {\n return this.clone().imaskn(bits);\n };\n\n // Add plain number `num` to `this`\n BN.prototype.iaddn = function iaddn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.isubn(-num);\n\n // Possible sign change\n if (this.negative !== 0) {\n if (this.length === 1 && (this.words[0] | 0) < num) {\n this.words[0] = num - (this.words[0] | 0);\n this.negative = 0;\n return this;\n }\n\n this.negative = 0;\n this.isubn(num);\n this.negative = 1;\n return this;\n }\n\n // Add without checks\n return this._iaddn(num);\n };\n\n BN.prototype._iaddn = function _iaddn (num) {\n this.words[0] += num;\n\n // Carry\n for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n this.words[i] -= 0x4000000;\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n this.length = Math.max(this.length, i + 1);\n\n return this;\n };\n\n // Subtract plain number `num` from `this`\n BN.prototype.isubn = function isubn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.iaddn(-num);\n\n if (this.negative !== 0) {\n this.negative = 0;\n this.iaddn(num);\n this.negative = 1;\n return this;\n }\n\n this.words[0] -= num;\n\n if (this.length === 1 && this.words[0] < 0) {\n this.words[0] = -this.words[0];\n this.negative = 1;\n } else {\n // Carry\n for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n this.words[i] += 0x4000000;\n this.words[i + 1] -= 1;\n }\n }\n\n return this.strip();\n };\n\n BN.prototype.addn = function addn (num) {\n return this.clone().iaddn(num);\n };\n\n BN.prototype.subn = function subn (num) {\n return this.clone().isubn(num);\n };\n\n BN.prototype.iabs = function iabs () {\n this.negative = 0;\n\n return this;\n };\n\n BN.prototype.abs = function abs () {\n return this.clone().iabs();\n };\n\n BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {\n var len = num.length + shift;\n var i;\n\n this._expand(len);\n\n var w;\n var carry = 0;\n for (i = 0; i < num.length; i++) {\n w = (this.words[i + shift] | 0) + carry;\n var right = (num.words[i] | 0) * mul;\n w -= right & 0x3ffffff;\n carry = (w >> 26) - ((right / 0x4000000) | 0);\n this.words[i + shift] = w & 0x3ffffff;\n }\n for (; i < this.length - shift; i++) {\n w = (this.words[i + shift] | 0) + carry;\n carry = w >> 26;\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n if (carry === 0) return this.strip();\n\n // Subtraction overflow\n assert(carry === -1);\n carry = 0;\n for (i = 0; i < this.length; i++) {\n w = -(this.words[i] | 0) + carry;\n carry = w >> 26;\n this.words[i] = w & 0x3ffffff;\n }\n this.negative = 1;\n\n return this.strip();\n };\n\n BN.prototype._wordDiv = function _wordDiv (num, mode) {\n var shift = this.length - num.length;\n\n var a = this.clone();\n var b = num;\n\n // Normalize\n var bhi = b.words[b.length - 1] | 0;\n var bhiBits = this._countBits(bhi);\n shift = 26 - bhiBits;\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n }\n\n // Initialize quotient\n var m = a.length - b.length;\n var q;\n\n if (mode !== 'mod') {\n q = new BN(null);\n q.length = m + 1;\n q.words = new Array(q.length);\n for (var i = 0; i < q.length; i++) {\n q.words[i] = 0;\n }\n }\n\n var diff = a.clone()._ishlnsubmul(b, 1, m);\n if (diff.negative === 0) {\n a = diff;\n if (q) {\n q.words[m] = 1;\n }\n }\n\n for (var j = m - 1; j >= 0; j--) {\n var qj = (a.words[b.length + j] | 0) * 0x4000000 +\n (a.words[b.length + j - 1] | 0);\n\n // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n // (0x7ffffff)\n qj = Math.min((qj / bhi) | 0, 0x3ffffff);\n\n a._ishlnsubmul(b, qj, j);\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n a._ishlnsubmul(b, 1, j);\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n if (q) {\n q.words[j] = qj;\n }\n }\n if (q) {\n q.strip();\n }\n a.strip();\n\n // Denormalize\n if (mode !== 'div' && shift !== 0) {\n a.iushrn(shift);\n }\n\n return {\n div: q || null,\n mod: a\n };\n };\n\n // NOTE: 1) `mode` can be set to `mod` to request mod only,\n // to `div` to request div only, or be absent to\n // request both div & mod\n // 2) `positive` is true if unsigned mod is requested\n BN.prototype.divmod = function divmod (num, mode, positive) {\n assert(!num.isZero());\n\n if (this.isZero()) {\n return {\n div: new BN(0),\n mod: new BN(0)\n };\n }\n\n var div, mod, res;\n if (this.negative !== 0 && num.negative === 0) {\n res = this.neg().divmod(num, mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.iadd(num);\n }\n }\n\n return {\n div: div,\n mod: mod\n };\n }\n\n if (this.negative === 0 && num.negative !== 0) {\n res = this.divmod(num.neg(), mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n return {\n div: div,\n mod: res.mod\n };\n }\n\n if ((this.negative & num.negative) !== 0) {\n res = this.neg().divmod(num.neg(), mode);\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n\n return {\n div: res.div,\n mod: mod\n };\n }\n\n // Both numbers are positive at this point\n\n // Strip both numbers to approximate shift value\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n }\n\n // Very short reduction\n if (num.length === 1) {\n if (mode === 'div') {\n return {\n div: this.divn(num.words[0]),\n mod: null\n };\n }\n\n if (mode === 'mod') {\n return {\n div: null,\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return this._wordDiv(num, mode);\n };\n\n // Find `this` / `num`\n BN.prototype.div = function div (num) {\n return this.divmod(num, 'div', false).div;\n };\n\n // Find `this` % `num`\n BN.prototype.mod = function mod (num) {\n return this.divmod(num, 'mod', false).mod;\n };\n\n BN.prototype.umod = function umod (num) {\n return this.divmod(num, 'mod', true).mod;\n };\n\n // Find Round(`this` / `num`)\n BN.prototype.divRound = function divRound (num) {\n var dm = this.divmod(num);\n\n // Fast case - exact division\n if (dm.mod.isZero()) return dm.div;\n\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half);\n\n // Round down\n if (cmp < 0 || r2 === 1 && cmp === 0) return dm.div;\n\n // Round up\n return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n };\n\n BN.prototype.modn = function modn (num) {\n assert(num <= 0x3ffffff);\n var p = (1 << 26) % num;\n\n var acc = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n acc = (p * acc + (this.words[i] | 0)) % num;\n }\n\n return acc;\n };\n\n // In-place division by number\n BN.prototype.idivn = function idivn (num) {\n assert(num <= 0x3ffffff);\n\n var carry = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var w = (this.words[i] | 0) + carry * 0x4000000;\n this.words[i] = (w / num) | 0;\n carry = w % num;\n }\n\n return this.strip();\n };\n\n BN.prototype.divn = function divn (num) {\n return this.clone().idivn(num);\n };\n\n BN.prototype.egcd = function egcd (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var x = this;\n var y = p.clone();\n\n if (x.negative !== 0) {\n x = x.umod(p);\n } else {\n x = x.clone();\n }\n\n // A * x + B * y = x\n var A = new BN(1);\n var B = new BN(0);\n\n // C * x + D * y = y\n var C = new BN(0);\n var D = new BN(1);\n\n var g = 0;\n\n while (x.isEven() && y.isEven()) {\n x.iushrn(1);\n y.iushrn(1);\n ++g;\n }\n\n var yp = y.clone();\n var xp = x.clone();\n\n while (!x.isZero()) {\n for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n x.iushrn(i);\n while (i-- > 0) {\n if (A.isOdd() || B.isOdd()) {\n A.iadd(yp);\n B.isub(xp);\n }\n\n A.iushrn(1);\n B.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n y.iushrn(j);\n while (j-- > 0) {\n if (C.isOdd() || D.isOdd()) {\n C.iadd(yp);\n D.isub(xp);\n }\n\n C.iushrn(1);\n D.iushrn(1);\n }\n }\n\n if (x.cmp(y) >= 0) {\n x.isub(y);\n A.isub(C);\n B.isub(D);\n } else {\n y.isub(x);\n C.isub(A);\n D.isub(B);\n }\n }\n\n return {\n a: C,\n b: D,\n gcd: y.iushln(g)\n };\n };\n\n // This is reduced incarnation of the binary EEA\n // above, designated to invert members of the\n // _prime_ fields F(p) at a maximal speed\n BN.prototype._invmp = function _invmp (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var a = this;\n var b = p.clone();\n\n if (a.negative !== 0) {\n a = a.umod(p);\n } else {\n a = a.clone();\n }\n\n var x1 = new BN(1);\n var x2 = new BN(0);\n\n var delta = b.clone();\n\n while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n a.iushrn(i);\n while (i-- > 0) {\n if (x1.isOdd()) {\n x1.iadd(delta);\n }\n\n x1.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n b.iushrn(j);\n while (j-- > 0) {\n if (x2.isOdd()) {\n x2.iadd(delta);\n }\n\n x2.iushrn(1);\n }\n }\n\n if (a.cmp(b) >= 0) {\n a.isub(b);\n x1.isub(x2);\n } else {\n b.isub(a);\n x2.isub(x1);\n }\n }\n\n var res;\n if (a.cmpn(1) === 0) {\n res = x1;\n } else {\n res = x2;\n }\n\n if (res.cmpn(0) < 0) {\n res.iadd(p);\n }\n\n return res;\n };\n\n BN.prototype.gcd = function gcd (num) {\n if (this.isZero()) return num.abs();\n if (num.isZero()) return this.abs();\n\n var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0;\n\n // Remove common factor of two\n for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n a.iushrn(1);\n b.iushrn(1);\n }\n\n do {\n while (a.isEven()) {\n a.iushrn(1);\n }\n while (b.isEven()) {\n b.iushrn(1);\n }\n\n var r = a.cmp(b);\n if (r < 0) {\n // Swap `a` and `b` to make `a` always bigger than `b`\n var t = a;\n a = b;\n b = t;\n } else if (r === 0 || b.cmpn(1) === 0) {\n break;\n }\n\n a.isub(b);\n } while (true);\n\n return b.iushln(shift);\n };\n\n // Invert number in the field F(num)\n BN.prototype.invm = function invm (num) {\n return this.egcd(num).a.umod(num);\n };\n\n BN.prototype.isEven = function isEven () {\n return (this.words[0] & 1) === 0;\n };\n\n BN.prototype.isOdd = function isOdd () {\n return (this.words[0] & 1) === 1;\n };\n\n // And first word and num\n BN.prototype.andln = function andln (num) {\n return this.words[0] & num;\n };\n\n // Increment at the bit position in-line\n BN.prototype.bincn = function bincn (bit) {\n assert(typeof bit === 'number');\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) {\n this._expand(s + 1);\n this.words[s] |= q;\n return this;\n }\n\n // Add bit and propagate, if needed\n var carry = q;\n for (var i = s; carry !== 0 && i < this.length; i++) {\n var w = this.words[i] | 0;\n w += carry;\n carry = w >>> 26;\n w &= 0x3ffffff;\n this.words[i] = w;\n }\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n return this;\n };\n\n BN.prototype.isZero = function isZero () {\n return this.length === 1 && this.words[0] === 0;\n };\n\n BN.prototype.cmpn = function cmpn (num) {\n var negative = num < 0;\n\n if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n\n this.strip();\n\n var res;\n if (this.length > 1) {\n res = 1;\n } else {\n if (negative) {\n num = -num;\n }\n\n assert(num <= 0x3ffffff, 'Number is too big');\n\n var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Compare two numbers and return:\n // 1 - if `this` > `num`\n // 0 - if `this` == `num`\n // -1 - if `this` < `num`\n BN.prototype.cmp = function cmp (num) {\n if (this.negative !== 0 && num.negative === 0) return -1;\n if (this.negative === 0 && num.negative !== 0) return 1;\n\n var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Unsigned comparison\n BN.prototype.ucmp = function ucmp (num) {\n // At this point both numbers have the same sign\n if (this.length > num.length) return 1;\n if (this.length < num.length) return -1;\n\n var res = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var a = this.words[i] | 0;\n var b = num.words[i] | 0;\n\n if (a === b) continue;\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n break;\n }\n return res;\n };\n\n BN.prototype.gtn = function gtn (num) {\n return this.cmpn(num) === 1;\n };\n\n BN.prototype.gt = function gt (num) {\n return this.cmp(num) === 1;\n };\n\n BN.prototype.gten = function gten (num) {\n return this.cmpn(num) >= 0;\n };\n\n BN.prototype.gte = function gte (num) {\n return this.cmp(num) >= 0;\n };\n\n BN.prototype.ltn = function ltn (num) {\n return this.cmpn(num) === -1;\n };\n\n BN.prototype.lt = function lt (num) {\n return this.cmp(num) === -1;\n };\n\n BN.prototype.lten = function lten (num) {\n return this.cmpn(num) <= 0;\n };\n\n BN.prototype.lte = function lte (num) {\n return this.cmp(num) <= 0;\n };\n\n BN.prototype.eqn = function eqn (num) {\n return this.cmpn(num) === 0;\n };\n\n BN.prototype.eq = function eq (num) {\n return this.cmp(num) === 0;\n };\n\n //\n // A reduce context, could be using montgomery or something better, depending\n // on the `m` itself.\n //\n BN.red = function red (num) {\n return new Red(num);\n };\n\n BN.prototype.toRed = function toRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n assert(this.negative === 0, 'red works only with positives');\n return ctx.convertTo(this)._forceRed(ctx);\n };\n\n BN.prototype.fromRed = function fromRed () {\n assert(this.red, 'fromRed works only with numbers in reduction context');\n return this.red.convertFrom(this);\n };\n\n BN.prototype._forceRed = function _forceRed (ctx) {\n this.red = ctx;\n return this;\n };\n\n BN.prototype.forceRed = function forceRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n return this._forceRed(ctx);\n };\n\n BN.prototype.redAdd = function redAdd (num) {\n assert(this.red, 'redAdd works only with red numbers');\n return this.red.add(this, num);\n };\n\n BN.prototype.redIAdd = function redIAdd (num) {\n assert(this.red, 'redIAdd works only with red numbers');\n return this.red.iadd(this, num);\n };\n\n BN.prototype.redSub = function redSub (num) {\n assert(this.red, 'redSub works only with red numbers');\n return this.red.sub(this, num);\n };\n\n BN.prototype.redISub = function redISub (num) {\n assert(this.red, 'redISub works only with red numbers');\n return this.red.isub(this, num);\n };\n\n BN.prototype.redShl = function redShl (num) {\n assert(this.red, 'redShl works only with red numbers');\n return this.red.shl(this, num);\n };\n\n BN.prototype.redMul = function redMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.mul(this, num);\n };\n\n BN.prototype.redIMul = function redIMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.imul(this, num);\n };\n\n BN.prototype.redSqr = function redSqr () {\n assert(this.red, 'redSqr works only with red numbers');\n this.red._verify1(this);\n return this.red.sqr(this);\n };\n\n BN.prototype.redISqr = function redISqr () {\n assert(this.red, 'redISqr works only with red numbers');\n this.red._verify1(this);\n return this.red.isqr(this);\n };\n\n // Square root over p\n BN.prototype.redSqrt = function redSqrt () {\n assert(this.red, 'redSqrt works only with red numbers');\n this.red._verify1(this);\n return this.red.sqrt(this);\n };\n\n BN.prototype.redInvm = function redInvm () {\n assert(this.red, 'redInvm works only with red numbers');\n this.red._verify1(this);\n return this.red.invm(this);\n };\n\n // Return negative clone of `this` % `red modulo`\n BN.prototype.redNeg = function redNeg () {\n assert(this.red, 'redNeg works only with red numbers');\n this.red._verify1(this);\n return this.red.neg(this);\n };\n\n BN.prototype.redPow = function redPow (num) {\n assert(this.red && !num.red, 'redPow(normalNum)');\n this.red._verify1(this);\n return this.red.pow(this, num);\n };\n\n // Prime numbers with efficient reduction\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n };\n\n // Pseudo-Mersenne prime\n function MPrime (name, p) {\n // P = 2 ^ N - K\n this.name = name;\n this.p = new BN(p, 16);\n this.n = this.p.bitLength();\n this.k = new BN(1).iushln(this.n).isub(this.p);\n\n this.tmp = this._tmp();\n }\n\n MPrime.prototype._tmp = function _tmp () {\n var tmp = new BN(null);\n tmp.words = new Array(Math.ceil(this.n / 13));\n return tmp;\n };\n\n MPrime.prototype.ireduce = function ireduce (num) {\n // Assumes that `num` is less than `P^2`\n // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n var r = num;\n var rlen;\n\n do {\n this.split(r, this.tmp);\n r = this.imulK(r);\n r = r.iadd(this.tmp);\n rlen = r.bitLength();\n } while (rlen > this.n);\n\n var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n if (cmp === 0) {\n r.words[0] = 0;\n r.length = 1;\n } else if (cmp > 0) {\n r.isub(this.p);\n } else {\n if (r.strip !== undefined) {\n // r is BN v4 instance\n r.strip();\n } else {\n // r is BN v5 instance\n r._strip();\n }\n }\n\n return r;\n };\n\n MPrime.prototype.split = function split (input, out) {\n input.iushrn(this.n, 0, out);\n };\n\n MPrime.prototype.imulK = function imulK (num) {\n return num.imul(this.k);\n };\n\n function K256 () {\n MPrime.call(\n this,\n 'k256',\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n }\n inherits(K256, MPrime);\n\n K256.prototype.split = function split (input, output) {\n // 256 = 9 * 26 + 22\n var mask = 0x3fffff;\n\n var outLen = Math.min(input.length, 9);\n for (var i = 0; i < outLen; i++) {\n output.words[i] = input.words[i];\n }\n output.length = outLen;\n\n if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n }\n\n // Shift by 9 limbs\n var prev = input.words[9];\n output.words[output.length++] = prev & mask;\n\n for (i = 10; i < input.length; i++) {\n var next = input.words[i] | 0;\n input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22);\n prev = next;\n }\n prev >>>= 22;\n input.words[i - 10] = prev;\n if (prev === 0 && input.length > 10) {\n input.length -= 10;\n } else {\n input.length -= 9;\n }\n };\n\n K256.prototype.imulK = function imulK (num) {\n // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n num.words[num.length] = 0;\n num.words[num.length + 1] = 0;\n num.length += 2;\n\n // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n var lo = 0;\n for (var i = 0; i < num.length; i++) {\n var w = num.words[i] | 0;\n lo += w * 0x3d1;\n num.words[i] = lo & 0x3ffffff;\n lo = w * 0x40 + ((lo / 0x4000000) | 0);\n }\n\n // Fast length reduction\n if (num.words[num.length - 1] === 0) {\n num.length--;\n if (num.words[num.length - 1] === 0) {\n num.length--;\n }\n }\n return num;\n };\n\n function P224 () {\n MPrime.call(\n this,\n 'p224',\n 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n }\n inherits(P224, MPrime);\n\n function P192 () {\n MPrime.call(\n this,\n 'p192',\n 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n }\n inherits(P192, MPrime);\n\n function P25519 () {\n // 2 ^ 255 - 19\n MPrime.call(\n this,\n '25519',\n '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n }\n inherits(P25519, MPrime);\n\n P25519.prototype.imulK = function imulK (num) {\n // K = 0x13\n var carry = 0;\n for (var i = 0; i < num.length; i++) {\n var hi = (num.words[i] | 0) * 0x13 + carry;\n var lo = hi & 0x3ffffff;\n hi >>>= 26;\n\n num.words[i] = lo;\n carry = hi;\n }\n if (carry !== 0) {\n num.words[num.length++] = carry;\n }\n return num;\n };\n\n // Exported mostly for testing purposes, use plain name instead\n BN._prime = function prime (name) {\n // Cached version of prime\n if (primes[name]) return primes[name];\n\n var prime;\n if (name === 'k256') {\n prime = new K256();\n } else if (name === 'p224') {\n prime = new P224();\n } else if (name === 'p192') {\n prime = new P192();\n } else if (name === 'p25519') {\n prime = new P25519();\n } else {\n throw new Error('Unknown prime ' + name);\n }\n primes[name] = prime;\n\n return prime;\n };\n\n //\n // Base reduction engine\n //\n function Red (m) {\n if (typeof m === 'string') {\n var prime = BN._prime(m);\n this.m = prime.p;\n this.prime = prime;\n } else {\n assert(m.gtn(1), 'modulus must be greater than 1');\n this.m = m;\n this.prime = null;\n }\n }\n\n Red.prototype._verify1 = function _verify1 (a) {\n assert(a.negative === 0, 'red works only with positives');\n assert(a.red, 'red works only with red numbers');\n };\n\n Red.prototype._verify2 = function _verify2 (a, b) {\n assert((a.negative | b.negative) === 0, 'red works only with positives');\n assert(a.red && a.red === b.red,\n 'red works only with red numbers');\n };\n\n Red.prototype.imod = function imod (a) {\n if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n return a.umod(this.m)._forceRed(this);\n };\n\n Red.prototype.neg = function neg (a) {\n if (a.isZero()) {\n return a.clone();\n }\n\n return this.m.sub(a)._forceRed(this);\n };\n\n Red.prototype.add = function add (a, b) {\n this._verify2(a, b);\n\n var res = a.add(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.iadd = function iadd (a, b) {\n this._verify2(a, b);\n\n var res = a.iadd(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res;\n };\n\n Red.prototype.sub = function sub (a, b) {\n this._verify2(a, b);\n\n var res = a.sub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.isub = function isub (a, b) {\n this._verify2(a, b);\n\n var res = a.isub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res;\n };\n\n Red.prototype.shl = function shl (a, num) {\n this._verify1(a);\n return this.imod(a.ushln(num));\n };\n\n Red.prototype.imul = function imul (a, b) {\n this._verify2(a, b);\n return this.imod(a.imul(b));\n };\n\n Red.prototype.mul = function mul (a, b) {\n this._verify2(a, b);\n return this.imod(a.mul(b));\n };\n\n Red.prototype.isqr = function isqr (a) {\n return this.imul(a, a.clone());\n };\n\n Red.prototype.sqr = function sqr (a) {\n return this.mul(a, a);\n };\n\n Red.prototype.sqrt = function sqrt (a) {\n if (a.isZero()) return a.clone();\n\n var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1);\n\n // Fast case\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n }\n\n // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n //\n // Find Q and S, that Q * 2 ^ S = (P - 1)\n var q = this.m.subn(1);\n var s = 0;\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n assert(!q.isZero());\n\n var one = new BN(1).toRed(this);\n var nOne = one.redNeg();\n\n // Find quadratic non-residue\n // NOTE: Max is such because of generalized Riemann hypothesis.\n var lpow = this.m.subn(1).iushrn(1);\n var z = this.m.bitLength();\n z = new BN(2 * z * z).toRed(this);\n\n while (this.pow(z, lpow).cmp(nOne) !== 0) {\n z.redIAdd(nOne);\n }\n\n var c = this.pow(z, q);\n var r = this.pow(a, q.addn(1).iushrn(1));\n var t = this.pow(a, q);\n var m = s;\n while (t.cmp(one) !== 0) {\n var tmp = t;\n for (var i = 0; tmp.cmp(one) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\n\n r = r.redMul(b);\n c = b.redSqr();\n t = t.redMul(c);\n m = i;\n }\n\n return r;\n };\n\n Red.prototype.invm = function invm (a) {\n var inv = a._invmp(this.m);\n if (inv.negative !== 0) {\n inv.negative = 0;\n return this.imod(inv).redNeg();\n } else {\n return this.imod(inv);\n }\n };\n\n Red.prototype.pow = function pow (a, num) {\n if (num.isZero()) return new BN(1).toRed(this);\n if (num.cmpn(1) === 0) return a.clone();\n\n var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n for (var i = 2; i < wnd.length; i++) {\n wnd[i] = this.mul(wnd[i - 1], a);\n }\n\n var res = wnd[0];\n var current = 0;\n var currentLen = 0;\n var start = num.bitLength() % 26;\n if (start === 0) {\n start = 26;\n }\n\n for (i = num.length - 1; i >= 0; i--) {\n var word = num.words[i];\n for (var j = start - 1; j >= 0; j--) {\n var bit = (word >> j) & 1;\n if (res !== wnd[0]) {\n res = this.sqr(res);\n }\n\n if (bit === 0 && current === 0) {\n currentLen = 0;\n continue;\n }\n\n current <<= 1;\n current |= bit;\n currentLen++;\n if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n\n res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\n start = 26;\n }\n\n return res;\n };\n\n Red.prototype.convertTo = function convertTo (num) {\n var r = num.umod(this.m);\n\n return r === num ? r.clone() : r;\n };\n\n Red.prototype.convertFrom = function convertFrom (num) {\n var res = num.clone();\n res.red = null;\n return res;\n };\n\n //\n // Montgomery method engine\n //\n\n BN.mont = function mont (num) {\n return new Mont(num);\n };\n\n function Mont (m) {\n Red.call(this, m);\n\n this.shift = this.m.bitLength();\n if (this.shift % 26 !== 0) {\n this.shift += 26 - (this.shift % 26);\n }\n\n this.r = new BN(1).iushln(this.shift);\n this.r2 = this.imod(this.r.sqr());\n this.rinv = this.r._invmp(this.m);\n\n this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n this.minv = this.minv.umod(this.r);\n this.minv = this.r.sub(this.minv);\n }\n inherits(Mont, Red);\n\n Mont.prototype.convertTo = function convertTo (num) {\n return this.imod(num.ushln(this.shift));\n };\n\n Mont.prototype.convertFrom = function convertFrom (num) {\n var r = this.imod(num.mul(this.rinv));\n r.red = null;\n return r;\n };\n\n Mont.prototype.imul = function imul (a, b) {\n if (a.isZero() || b.isZero()) {\n a.words[0] = 0;\n a.length = 1;\n return a;\n }\n\n var t = a.imul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.mul = function mul (a, b) {\n if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n\n var t = a.mul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.invm = function invm (a) {\n // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n var res = this.imod(a._invmp(this.m).mul(this.r2));\n return res._forceRed(this);\n };\n})(typeof module === 'undefined' || module, this);\n", "module.exports = assert;\n\nfunction assert(val, msg) {\n if (!val)\n throw new Error(msg || 'Assertion failed');\n}\n\nassert.equal = function assertEqual(l, r, msg) {\n if (l != r)\n throw new Error(msg || ('Assertion failed: ' + l + ' != ' + r));\n};\n", "'use strict';\n\nvar utils = exports;\n\nfunction toArray(msg, enc) {\n if (Array.isArray(msg))\n return msg.slice();\n if (!msg)\n return [];\n var res = [];\n if (typeof msg !== 'string') {\n for (var i = 0; i < msg.length; i++)\n res[i] = msg[i] | 0;\n return res;\n }\n if (enc === 'hex') {\n msg = msg.replace(/[^a-z0-9]+/ig, '');\n if (msg.length % 2 !== 0)\n msg = '0' + msg;\n for (var i = 0; i < msg.length; i += 2)\n res.push(parseInt(msg[i] + msg[i + 1], 16));\n } else {\n for (var i = 0; i < msg.length; i++) {\n var c = msg.charCodeAt(i);\n var hi = c >> 8;\n var lo = c & 0xff;\n if (hi)\n res.push(hi, lo);\n else\n res.push(lo);\n }\n }\n return res;\n}\nutils.toArray = toArray;\n\nfunction zero2(word) {\n if (word.length === 1)\n return '0' + word;\n else\n return word;\n}\nutils.zero2 = zero2;\n\nfunction toHex(msg) {\n var res = '';\n for (var i = 0; i < msg.length; i++)\n res += zero2(msg[i].toString(16));\n return res;\n}\nutils.toHex = toHex;\n\nutils.encode = function encode(arr, enc) {\n if (enc === 'hex')\n return toHex(arr);\n else\n return arr;\n};\n", "'use strict';\n\nvar utils = exports;\nvar BN = require('bn.js');\nvar minAssert = require('minimalistic-assert');\nvar minUtils = require('minimalistic-crypto-utils');\n\nutils.assert = minAssert;\nutils.toArray = minUtils.toArray;\nutils.zero2 = minUtils.zero2;\nutils.toHex = minUtils.toHex;\nutils.encode = minUtils.encode;\n\n// Represent num in a w-NAF form\nfunction getNAF(num, w, bits) {\n var naf = new Array(Math.max(num.bitLength(), bits) + 1);\n naf.fill(0);\n\n var ws = 1 << (w + 1);\n var k = num.clone();\n\n for (var i = 0; i < naf.length; i++) {\n var z;\n var mod = k.andln(ws - 1);\n if (k.isOdd()) {\n if (mod > (ws >> 1) - 1)\n z = (ws >> 1) - mod;\n else\n z = mod;\n k.isubn(z);\n } else {\n z = 0;\n }\n\n naf[i] = z;\n k.iushrn(1);\n }\n\n return naf;\n}\nutils.getNAF = getNAF;\n\n// Represent k1, k2 in a Joint Sparse Form\nfunction getJSF(k1, k2) {\n var jsf = [\n [],\n [],\n ];\n\n k1 = k1.clone();\n k2 = k2.clone();\n var d1 = 0;\n var d2 = 0;\n var m8;\n while (k1.cmpn(-d1) > 0 || k2.cmpn(-d2) > 0) {\n // First phase\n var m14 = (k1.andln(3) + d1) & 3;\n var m24 = (k2.andln(3) + d2) & 3;\n if (m14 === 3)\n m14 = -1;\n if (m24 === 3)\n m24 = -1;\n var u1;\n if ((m14 & 1) === 0) {\n u1 = 0;\n } else {\n m8 = (k1.andln(7) + d1) & 7;\n if ((m8 === 3 || m8 === 5) && m24 === 2)\n u1 = -m14;\n else\n u1 = m14;\n }\n jsf[0].push(u1);\n\n var u2;\n if ((m24 & 1) === 0) {\n u2 = 0;\n } else {\n m8 = (k2.andln(7) + d2) & 7;\n if ((m8 === 3 || m8 === 5) && m14 === 2)\n u2 = -m24;\n else\n u2 = m24;\n }\n jsf[1].push(u2);\n\n // Second phase\n if (2 * d1 === u1 + 1)\n d1 = 1 - d1;\n if (2 * d2 === u2 + 1)\n d2 = 1 - d2;\n k1.iushrn(1);\n k2.iushrn(1);\n }\n\n return jsf;\n}\nutils.getJSF = getJSF;\n\nfunction cachedProperty(obj, name, computer) {\n var key = '_' + name;\n obj.prototype[name] = function cachedProperty() {\n return this[key] !== undefined ? this[key] :\n this[key] = computer.call(this);\n };\n}\nutils.cachedProperty = cachedProperty;\n\nfunction parseBytes(bytes) {\n return typeof bytes === 'string' ? utils.toArray(bytes, 'hex') :\n bytes;\n}\nutils.parseBytes = parseBytes;\n\nfunction intFromLE(bytes) {\n return new BN(bytes, 'hex', 'le');\n}\nutils.intFromLE = intFromLE;\n\n", "var r;\n\nmodule.exports = function rand(len) {\n if (!r)\n r = new Rand(null);\n\n return r.generate(len);\n};\n\nfunction Rand(rand) {\n this.rand = rand;\n}\nmodule.exports.Rand = Rand;\n\nRand.prototype.generate = function generate(len) {\n return this._rand(len);\n};\n\n// Emulate crypto API using randy\nRand.prototype._rand = function _rand(n) {\n if (this.rand.getBytes)\n return this.rand.getBytes(n);\n\n var res = new Uint8Array(n);\n for (var i = 0; i < res.length; i++)\n res[i] = this.rand.getByte();\n return res;\n};\n\nif (typeof self === 'object') {\n if (self.crypto && self.crypto.getRandomValues) {\n // Modern browsers\n Rand.prototype._rand = function _rand(n) {\n var arr = new Uint8Array(n);\n self.crypto.getRandomValues(arr);\n return arr;\n };\n } else if (self.msCrypto && self.msCrypto.getRandomValues) {\n // IE\n Rand.prototype._rand = function _rand(n) {\n var arr = new Uint8Array(n);\n self.msCrypto.getRandomValues(arr);\n return arr;\n };\n\n // Safari's WebWorkers do not have `crypto`\n } else if (typeof window === 'object') {\n // Old junk\n Rand.prototype._rand = function() {\n throw new Error('Not implemented yet');\n };\n }\n} else {\n // Node.js or Web worker with no crypto support\n try {\n var crypto = require('crypto');\n if (typeof crypto.randomBytes !== 'function')\n throw new Error('Not supported');\n\n Rand.prototype._rand = function _rand(n) {\n return crypto.randomBytes(n);\n };\n } catch (e) {\n }\n}\n", "'use strict';\n\nvar BN = require('bn.js');\nvar utils = require('../utils');\nvar getNAF = utils.getNAF;\nvar getJSF = utils.getJSF;\nvar assert = utils.assert;\n\nfunction BaseCurve(type, conf) {\n this.type = type;\n this.p = new BN(conf.p, 16);\n\n // Use Montgomery, when there is no fast reduction for the prime\n this.red = conf.prime ? BN.red(conf.prime) : BN.mont(this.p);\n\n // Useful for many curves\n this.zero = new BN(0).toRed(this.red);\n this.one = new BN(1).toRed(this.red);\n this.two = new BN(2).toRed(this.red);\n\n // Curve configuration, optional\n this.n = conf.n && new BN(conf.n, 16);\n this.g = conf.g && this.pointFromJSON(conf.g, conf.gRed);\n\n // Temporary arrays\n this._wnafT1 = new Array(4);\n this._wnafT2 = new Array(4);\n this._wnafT3 = new Array(4);\n this._wnafT4 = new Array(4);\n\n this._bitLength = this.n ? this.n.bitLength() : 0;\n\n // Generalized Greg Maxwell's trick\n var adjustCount = this.n && this.p.div(this.n);\n if (!adjustCount || adjustCount.cmpn(100) > 0) {\n this.redN = null;\n } else {\n this._maxwellTrick = true;\n this.redN = this.n.toRed(this.red);\n }\n}\nmodule.exports = BaseCurve;\n\nBaseCurve.prototype.point = function point() {\n throw new Error('Not implemented');\n};\n\nBaseCurve.prototype.validate = function validate() {\n throw new Error('Not implemented');\n};\n\nBaseCurve.prototype._fixedNafMul = function _fixedNafMul(p, k) {\n assert(p.precomputed);\n var doubles = p._getDoubles();\n\n var naf = getNAF(k, 1, this._bitLength);\n var I = (1 << (doubles.step + 1)) - (doubles.step % 2 === 0 ? 2 : 1);\n I /= 3;\n\n // Translate into more windowed form\n var repr = [];\n var j;\n var nafW;\n for (j = 0; j < naf.length; j += doubles.step) {\n nafW = 0;\n for (var l = j + doubles.step - 1; l >= j; l--)\n nafW = (nafW << 1) + naf[l];\n repr.push(nafW);\n }\n\n var a = this.jpoint(null, null, null);\n var b = this.jpoint(null, null, null);\n for (var i = I; i > 0; i--) {\n for (j = 0; j < repr.length; j++) {\n nafW = repr[j];\n if (nafW === i)\n b = b.mixedAdd(doubles.points[j]);\n else if (nafW === -i)\n b = b.mixedAdd(doubles.points[j].neg());\n }\n a = a.add(b);\n }\n return a.toP();\n};\n\nBaseCurve.prototype._wnafMul = function _wnafMul(p, k) {\n var w = 4;\n\n // Precompute window\n var nafPoints = p._getNAFPoints(w);\n w = nafPoints.wnd;\n var wnd = nafPoints.points;\n\n // Get NAF form\n var naf = getNAF(k, w, this._bitLength);\n\n // Add `this`*(N+1) for every w-NAF index\n var acc = this.jpoint(null, null, null);\n for (var i = naf.length - 1; i >= 0; i--) {\n // Count zeroes\n for (var l = 0; i >= 0 && naf[i] === 0; i--)\n l++;\n if (i >= 0)\n l++;\n acc = acc.dblp(l);\n\n if (i < 0)\n break;\n var z = naf[i];\n assert(z !== 0);\n if (p.type === 'affine') {\n // J +- P\n if (z > 0)\n acc = acc.mixedAdd(wnd[(z - 1) >> 1]);\n else\n acc = acc.mixedAdd(wnd[(-z - 1) >> 1].neg());\n } else {\n // J +- J\n if (z > 0)\n acc = acc.add(wnd[(z - 1) >> 1]);\n else\n acc = acc.add(wnd[(-z - 1) >> 1].neg());\n }\n }\n return p.type === 'affine' ? acc.toP() : acc;\n};\n\nBaseCurve.prototype._wnafMulAdd = function _wnafMulAdd(defW,\n points,\n coeffs,\n len,\n jacobianResult) {\n var wndWidth = this._wnafT1;\n var wnd = this._wnafT2;\n var naf = this._wnafT3;\n\n // Fill all arrays\n var max = 0;\n var i;\n var j;\n var p;\n for (i = 0; i < len; i++) {\n p = points[i];\n var nafPoints = p._getNAFPoints(defW);\n wndWidth[i] = nafPoints.wnd;\n wnd[i] = nafPoints.points;\n }\n\n // Comb small window NAFs\n for (i = len - 1; i >= 1; i -= 2) {\n var a = i - 1;\n var b = i;\n if (wndWidth[a] !== 1 || wndWidth[b] !== 1) {\n naf[a] = getNAF(coeffs[a], wndWidth[a], this._bitLength);\n naf[b] = getNAF(coeffs[b], wndWidth[b], this._bitLength);\n max = Math.max(naf[a].length, max);\n max = Math.max(naf[b].length, max);\n continue;\n }\n\n var comb = [\n points[a], /* 1 */\n null, /* 3 */\n null, /* 5 */\n points[b], /* 7 */\n ];\n\n // Try to avoid Projective points, if possible\n if (points[a].y.cmp(points[b].y) === 0) {\n comb[1] = points[a].add(points[b]);\n comb[2] = points[a].toJ().mixedAdd(points[b].neg());\n } else if (points[a].y.cmp(points[b].y.redNeg()) === 0) {\n comb[1] = points[a].toJ().mixedAdd(points[b]);\n comb[2] = points[a].add(points[b].neg());\n } else {\n comb[1] = points[a].toJ().mixedAdd(points[b]);\n comb[2] = points[a].toJ().mixedAdd(points[b].neg());\n }\n\n var index = [\n -3, /* -1 -1 */\n -1, /* -1 0 */\n -5, /* -1 1 */\n -7, /* 0 -1 */\n 0, /* 0 0 */\n 7, /* 0 1 */\n 5, /* 1 -1 */\n 1, /* 1 0 */\n 3, /* 1 1 */\n ];\n\n var jsf = getJSF(coeffs[a], coeffs[b]);\n max = Math.max(jsf[0].length, max);\n naf[a] = new Array(max);\n naf[b] = new Array(max);\n for (j = 0; j < max; j++) {\n var ja = jsf[0][j] | 0;\n var jb = jsf[1][j] | 0;\n\n naf[a][j] = index[(ja + 1) * 3 + (jb + 1)];\n naf[b][j] = 0;\n wnd[a] = comb;\n }\n }\n\n var acc = this.jpoint(null, null, null);\n var tmp = this._wnafT4;\n for (i = max; i >= 0; i--) {\n var k = 0;\n\n while (i >= 0) {\n var zero = true;\n for (j = 0; j < len; j++) {\n tmp[j] = naf[j][i] | 0;\n if (tmp[j] !== 0)\n zero = false;\n }\n if (!zero)\n break;\n k++;\n i--;\n }\n if (i >= 0)\n k++;\n acc = acc.dblp(k);\n if (i < 0)\n break;\n\n for (j = 0; j < len; j++) {\n var z = tmp[j];\n p;\n if (z === 0)\n continue;\n else if (z > 0)\n p = wnd[j][(z - 1) >> 1];\n else if (z < 0)\n p = wnd[j][(-z - 1) >> 1].neg();\n\n if (p.type === 'affine')\n acc = acc.mixedAdd(p);\n else\n acc = acc.add(p);\n }\n }\n // Zeroify references\n for (i = 0; i < len; i++)\n wnd[i] = null;\n\n if (jacobianResult)\n return acc;\n else\n return acc.toP();\n};\n\nfunction BasePoint(curve, type) {\n this.curve = curve;\n this.type = type;\n this.precomputed = null;\n}\nBaseCurve.BasePoint = BasePoint;\n\nBasePoint.prototype.eq = function eq(/*other*/) {\n throw new Error('Not implemented');\n};\n\nBasePoint.prototype.validate = function validate() {\n return this.curve.validate(this);\n};\n\nBaseCurve.prototype.decodePoint = function decodePoint(bytes, enc) {\n bytes = utils.toArray(bytes, enc);\n\n var len = this.p.byteLength();\n\n // uncompressed, hybrid-odd, hybrid-even\n if ((bytes[0] === 0x04 || bytes[0] === 0x06 || bytes[0] === 0x07) &&\n bytes.length - 1 === 2 * len) {\n if (bytes[0] === 0x06)\n assert(bytes[bytes.length - 1] % 2 === 0);\n else if (bytes[0] === 0x07)\n assert(bytes[bytes.length - 1] % 2 === 1);\n\n var res = this.point(bytes.slice(1, 1 + len),\n bytes.slice(1 + len, 1 + 2 * len));\n\n return res;\n } else if ((bytes[0] === 0x02 || bytes[0] === 0x03) &&\n bytes.length - 1 === len) {\n return this.pointFromX(bytes.slice(1, 1 + len), bytes[0] === 0x03);\n }\n throw new Error('Unknown point format');\n};\n\nBasePoint.prototype.encodeCompressed = function encodeCompressed(enc) {\n return this.encode(enc, true);\n};\n\nBasePoint.prototype._encode = function _encode(compact) {\n var len = this.curve.p.byteLength();\n var x = this.getX().toArray('be', len);\n\n if (compact)\n return [ this.getY().isEven() ? 0x02 : 0x03 ].concat(x);\n\n return [ 0x04 ].concat(x, this.getY().toArray('be', len));\n};\n\nBasePoint.prototype.encode = function encode(enc, compact) {\n return utils.encode(this._encode(compact), enc);\n};\n\nBasePoint.prototype.precompute = function precompute(power) {\n if (this.precomputed)\n return this;\n\n var precomputed = {\n doubles: null,\n naf: null,\n beta: null,\n };\n precomputed.naf = this._getNAFPoints(8);\n precomputed.doubles = this._getDoubles(4, power);\n precomputed.beta = this._getBeta();\n this.precomputed = precomputed;\n\n return this;\n};\n\nBasePoint.prototype._hasDoubles = function _hasDoubles(k) {\n if (!this.precomputed)\n return false;\n\n var doubles = this.precomputed.doubles;\n if (!doubles)\n return false;\n\n return doubles.points.length >= Math.ceil((k.bitLength() + 1) / doubles.step);\n};\n\nBasePoint.prototype._getDoubles = function _getDoubles(step, power) {\n if (this.precomputed && this.precomputed.doubles)\n return this.precomputed.doubles;\n\n var doubles = [ this ];\n var acc = this;\n for (var i = 0; i < power; i += step) {\n for (var j = 0; j < step; j++)\n acc = acc.dbl();\n doubles.push(acc);\n }\n return {\n step: step,\n points: doubles,\n };\n};\n\nBasePoint.prototype._getNAFPoints = function _getNAFPoints(wnd) {\n if (this.precomputed && this.precomputed.naf)\n return this.precomputed.naf;\n\n var res = [ this ];\n var max = (1 << wnd) - 1;\n var dbl = max === 1 ? null : this.dbl();\n for (var i = 1; i < max; i++)\n res[i] = res[i - 1].add(dbl);\n return {\n wnd: wnd,\n points: res,\n };\n};\n\nBasePoint.prototype._getBeta = function _getBeta() {\n return null;\n};\n\nBasePoint.prototype.dblp = function dblp(k) {\n var r = this;\n for (var i = 0; i < k; i++)\n r = r.dbl();\n return r;\n};\n", "if (typeof Object.create === 'function') {\n // implementation from standard node.js 'util' module\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n })\n }\n };\n} else {\n // old school shim for old browsers\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor\n var TempCtor = function () {}\n TempCtor.prototype = superCtor.prototype\n ctor.prototype = new TempCtor()\n ctor.prototype.constructor = ctor\n }\n }\n}\n", "try {\n var util = require('util');\n /* istanbul ignore next */\n if (typeof util.inherits !== 'function') throw '';\n module.exports = util.inherits;\n} catch (e) {\n /* istanbul ignore next */\n module.exports = require('./inherits_browser.js');\n}\n", "'use strict';\n\nvar utils = require('../utils');\nvar BN = require('bn.js');\nvar inherits = require('inherits');\nvar Base = require('./base');\n\nvar assert = utils.assert;\n\nfunction ShortCurve(conf) {\n Base.call(this, 'short', conf);\n\n this.a = new BN(conf.a, 16).toRed(this.red);\n this.b = new BN(conf.b, 16).toRed(this.red);\n this.tinv = this.two.redInvm();\n\n this.zeroA = this.a.fromRed().cmpn(0) === 0;\n this.threeA = this.a.fromRed().sub(this.p).cmpn(-3) === 0;\n\n // If the curve is endomorphic, precalculate beta and lambda\n this.endo = this._getEndomorphism(conf);\n this._endoWnafT1 = new Array(4);\n this._endoWnafT2 = new Array(4);\n}\ninherits(ShortCurve, Base);\nmodule.exports = ShortCurve;\n\nShortCurve.prototype._getEndomorphism = function _getEndomorphism(conf) {\n // No efficient endomorphism\n if (!this.zeroA || !this.g || !this.n || this.p.modn(3) !== 1)\n return;\n\n // Compute beta and lambda, that lambda * P = (beta * Px; Py)\n var beta;\n var lambda;\n if (conf.beta) {\n beta = new BN(conf.beta, 16).toRed(this.red);\n } else {\n var betas = this._getEndoRoots(this.p);\n // Choose the smallest beta\n beta = betas[0].cmp(betas[1]) < 0 ? betas[0] : betas[1];\n beta = beta.toRed(this.red);\n }\n if (conf.lambda) {\n lambda = new BN(conf.lambda, 16);\n } else {\n // Choose the lambda that is matching selected beta\n var lambdas = this._getEndoRoots(this.n);\n if (this.g.mul(lambdas[0]).x.cmp(this.g.x.redMul(beta)) === 0) {\n lambda = lambdas[0];\n } else {\n lambda = lambdas[1];\n assert(this.g.mul(lambda).x.cmp(this.g.x.redMul(beta)) === 0);\n }\n }\n\n // Get basis vectors, used for balanced length-two representation\n var basis;\n if (conf.basis) {\n basis = conf.basis.map(function(vec) {\n return {\n a: new BN(vec.a, 16),\n b: new BN(vec.b, 16),\n };\n });\n } else {\n basis = this._getEndoBasis(lambda);\n }\n\n return {\n beta: beta,\n lambda: lambda,\n basis: basis,\n };\n};\n\nShortCurve.prototype._getEndoRoots = function _getEndoRoots(num) {\n // Find roots of for x^2 + x + 1 in F\n // Root = (-1 +- Sqrt(-3)) / 2\n //\n var red = num === this.p ? this.red : BN.mont(num);\n var tinv = new BN(2).toRed(red).redInvm();\n var ntinv = tinv.redNeg();\n\n var s = new BN(3).toRed(red).redNeg().redSqrt().redMul(tinv);\n\n var l1 = ntinv.redAdd(s).fromRed();\n var l2 = ntinv.redSub(s).fromRed();\n return [ l1, l2 ];\n};\n\nShortCurve.prototype._getEndoBasis = function _getEndoBasis(lambda) {\n // aprxSqrt >= sqrt(this.n)\n var aprxSqrt = this.n.ushrn(Math.floor(this.n.bitLength() / 2));\n\n // 3.74\n // Run EGCD, until r(L + 1) < aprxSqrt\n var u = lambda;\n var v = this.n.clone();\n var x1 = new BN(1);\n var y1 = new BN(0);\n var x2 = new BN(0);\n var y2 = new BN(1);\n\n // NOTE: all vectors are roots of: a + b * lambda = 0 (mod n)\n var a0;\n var b0;\n // First vector\n var a1;\n var b1;\n // Second vector\n var a2;\n var b2;\n\n var prevR;\n var i = 0;\n var r;\n var x;\n while (u.cmpn(0) !== 0) {\n var q = v.div(u);\n r = v.sub(q.mul(u));\n x = x2.sub(q.mul(x1));\n var y = y2.sub(q.mul(y1));\n\n if (!a1 && r.cmp(aprxSqrt) < 0) {\n a0 = prevR.neg();\n b0 = x1;\n a1 = r.neg();\n b1 = x;\n } else if (a1 && ++i === 2) {\n break;\n }\n prevR = r;\n\n v = u;\n u = r;\n x2 = x1;\n x1 = x;\n y2 = y1;\n y1 = y;\n }\n a2 = r.neg();\n b2 = x;\n\n var len1 = a1.sqr().add(b1.sqr());\n var len2 = a2.sqr().add(b2.sqr());\n if (len2.cmp(len1) >= 0) {\n a2 = a0;\n b2 = b0;\n }\n\n // Normalize signs\n if (a1.negative) {\n a1 = a1.neg();\n b1 = b1.neg();\n }\n if (a2.negative) {\n a2 = a2.neg();\n b2 = b2.neg();\n }\n\n return [\n { a: a1, b: b1 },\n { a: a2, b: b2 },\n ];\n};\n\nShortCurve.prototype._endoSplit = function _endoSplit(k) {\n var basis = this.endo.basis;\n var v1 = basis[0];\n var v2 = basis[1];\n\n var c1 = v2.b.mul(k).divRound(this.n);\n var c2 = v1.b.neg().mul(k).divRound(this.n);\n\n var p1 = c1.mul(v1.a);\n var p2 = c2.mul(v2.a);\n var q1 = c1.mul(v1.b);\n var q2 = c2.mul(v2.b);\n\n // Calculate answer\n var k1 = k.sub(p1).sub(p2);\n var k2 = q1.add(q2).neg();\n return { k1: k1, k2: k2 };\n};\n\nShortCurve.prototype.pointFromX = function pointFromX(x, odd) {\n x = new BN(x, 16);\n if (!x.red)\n x = x.toRed(this.red);\n\n var y2 = x.redSqr().redMul(x).redIAdd(x.redMul(this.a)).redIAdd(this.b);\n var y = y2.redSqrt();\n if (y.redSqr().redSub(y2).cmp(this.zero) !== 0)\n throw new Error('invalid point');\n\n // XXX Is there any way to tell if the number is odd without converting it\n // to non-red form?\n var isOdd = y.fromRed().isOdd();\n if (odd && !isOdd || !odd && isOdd)\n y = y.redNeg();\n\n return this.point(x, y);\n};\n\nShortCurve.prototype.validate = function validate(point) {\n if (point.inf)\n return true;\n\n var x = point.x;\n var y = point.y;\n\n var ax = this.a.redMul(x);\n var rhs = x.redSqr().redMul(x).redIAdd(ax).redIAdd(this.b);\n return y.redSqr().redISub(rhs).cmpn(0) === 0;\n};\n\nShortCurve.prototype._endoWnafMulAdd =\n function _endoWnafMulAdd(points, coeffs, jacobianResult) {\n var npoints = this._endoWnafT1;\n var ncoeffs = this._endoWnafT2;\n for (var i = 0; i < points.length; i++) {\n var split = this._endoSplit(coeffs[i]);\n var p = points[i];\n var beta = p._getBeta();\n\n if (split.k1.negative) {\n split.k1.ineg();\n p = p.neg(true);\n }\n if (split.k2.negative) {\n split.k2.ineg();\n beta = beta.neg(true);\n }\n\n npoints[i * 2] = p;\n npoints[i * 2 + 1] = beta;\n ncoeffs[i * 2] = split.k1;\n ncoeffs[i * 2 + 1] = split.k2;\n }\n var res = this._wnafMulAdd(1, npoints, ncoeffs, i * 2, jacobianResult);\n\n // Clean-up references to points and coefficients\n for (var j = 0; j < i * 2; j++) {\n npoints[j] = null;\n ncoeffs[j] = null;\n }\n return res;\n };\n\nfunction Point(curve, x, y, isRed) {\n Base.BasePoint.call(this, curve, 'affine');\n if (x === null && y === null) {\n this.x = null;\n this.y = null;\n this.inf = true;\n } else {\n this.x = new BN(x, 16);\n this.y = new BN(y, 16);\n // Force redgomery representation when loading from JSON\n if (isRed) {\n this.x.forceRed(this.curve.red);\n this.y.forceRed(this.curve.red);\n }\n if (!this.x.red)\n this.x = this.x.toRed(this.curve.red);\n if (!this.y.red)\n this.y = this.y.toRed(this.curve.red);\n this.inf = false;\n }\n}\ninherits(Point, Base.BasePoint);\n\nShortCurve.prototype.point = function point(x, y, isRed) {\n return new Point(this, x, y, isRed);\n};\n\nShortCurve.prototype.pointFromJSON = function pointFromJSON(obj, red) {\n return Point.fromJSON(this, obj, red);\n};\n\nPoint.prototype._getBeta = function _getBeta() {\n if (!this.curve.endo)\n return;\n\n var pre = this.precomputed;\n if (pre && pre.beta)\n return pre.beta;\n\n var beta = this.curve.point(this.x.redMul(this.curve.endo.beta), this.y);\n if (pre) {\n var curve = this.curve;\n var endoMul = function(p) {\n return curve.point(p.x.redMul(curve.endo.beta), p.y);\n };\n pre.beta = beta;\n beta.precomputed = {\n beta: null,\n naf: pre.naf && {\n wnd: pre.naf.wnd,\n points: pre.naf.points.map(endoMul),\n },\n doubles: pre.doubles && {\n step: pre.doubles.step,\n points: pre.doubles.points.map(endoMul),\n },\n };\n }\n return beta;\n};\n\nPoint.prototype.toJSON = function toJSON() {\n if (!this.precomputed)\n return [ this.x, this.y ];\n\n return [ this.x, this.y, this.precomputed && {\n doubles: this.precomputed.doubles && {\n step: this.precomputed.doubles.step,\n points: this.precomputed.doubles.points.slice(1),\n },\n naf: this.precomputed.naf && {\n wnd: this.precomputed.naf.wnd,\n points: this.precomputed.naf.points.slice(1),\n },\n } ];\n};\n\nPoint.fromJSON = function fromJSON(curve, obj, red) {\n if (typeof obj === 'string')\n obj = JSON.parse(obj);\n var res = curve.point(obj[0], obj[1], red);\n if (!obj[2])\n return res;\n\n function obj2point(obj) {\n return curve.point(obj[0], obj[1], red);\n }\n\n var pre = obj[2];\n res.precomputed = {\n beta: null,\n doubles: pre.doubles && {\n step: pre.doubles.step,\n points: [ res ].concat(pre.doubles.points.map(obj2point)),\n },\n naf: pre.naf && {\n wnd: pre.naf.wnd,\n points: [ res ].concat(pre.naf.points.map(obj2point)),\n },\n };\n return res;\n};\n\nPoint.prototype.inspect = function inspect() {\n if (this.isInfinity())\n return '';\n return '';\n};\n\nPoint.prototype.isInfinity = function isInfinity() {\n return this.inf;\n};\n\nPoint.prototype.add = function add(p) {\n // O + P = P\n if (this.inf)\n return p;\n\n // P + O = P\n if (p.inf)\n return this;\n\n // P + P = 2P\n if (this.eq(p))\n return this.dbl();\n\n // P + (-P) = O\n if (this.neg().eq(p))\n return this.curve.point(null, null);\n\n // P + Q = O\n if (this.x.cmp(p.x) === 0)\n return this.curve.point(null, null);\n\n var c = this.y.redSub(p.y);\n if (c.cmpn(0) !== 0)\n c = c.redMul(this.x.redSub(p.x).redInvm());\n var nx = c.redSqr().redISub(this.x).redISub(p.x);\n var ny = c.redMul(this.x.redSub(nx)).redISub(this.y);\n return this.curve.point(nx, ny);\n};\n\nPoint.prototype.dbl = function dbl() {\n if (this.inf)\n return this;\n\n // 2P = O\n var ys1 = this.y.redAdd(this.y);\n if (ys1.cmpn(0) === 0)\n return this.curve.point(null, null);\n\n var a = this.curve.a;\n\n var x2 = this.x.redSqr();\n var dyinv = ys1.redInvm();\n var c = x2.redAdd(x2).redIAdd(x2).redIAdd(a).redMul(dyinv);\n\n var nx = c.redSqr().redISub(this.x.redAdd(this.x));\n var ny = c.redMul(this.x.redSub(nx)).redISub(this.y);\n return this.curve.point(nx, ny);\n};\n\nPoint.prototype.getX = function getX() {\n return this.x.fromRed();\n};\n\nPoint.prototype.getY = function getY() {\n return this.y.fromRed();\n};\n\nPoint.prototype.mul = function mul(k) {\n k = new BN(k, 16);\n if (this.isInfinity())\n return this;\n else if (this._hasDoubles(k))\n return this.curve._fixedNafMul(this, k);\n else if (this.curve.endo)\n return this.curve._endoWnafMulAdd([ this ], [ k ]);\n else\n return this.curve._wnafMul(this, k);\n};\n\nPoint.prototype.mulAdd = function mulAdd(k1, p2, k2) {\n var points = [ this, p2 ];\n var coeffs = [ k1, k2 ];\n if (this.curve.endo)\n return this.curve._endoWnafMulAdd(points, coeffs);\n else\n return this.curve._wnafMulAdd(1, points, coeffs, 2);\n};\n\nPoint.prototype.jmulAdd = function jmulAdd(k1, p2, k2) {\n var points = [ this, p2 ];\n var coeffs = [ k1, k2 ];\n if (this.curve.endo)\n return this.curve._endoWnafMulAdd(points, coeffs, true);\n else\n return this.curve._wnafMulAdd(1, points, coeffs, 2, true);\n};\n\nPoint.prototype.eq = function eq(p) {\n return this === p ||\n this.inf === p.inf &&\n (this.inf || this.x.cmp(p.x) === 0 && this.y.cmp(p.y) === 0);\n};\n\nPoint.prototype.neg = function neg(_precompute) {\n if (this.inf)\n return this;\n\n var res = this.curve.point(this.x, this.y.redNeg());\n if (_precompute && this.precomputed) {\n var pre = this.precomputed;\n var negate = function(p) {\n return p.neg();\n };\n res.precomputed = {\n naf: pre.naf && {\n wnd: pre.naf.wnd,\n points: pre.naf.points.map(negate),\n },\n doubles: pre.doubles && {\n step: pre.doubles.step,\n points: pre.doubles.points.map(negate),\n },\n };\n }\n return res;\n};\n\nPoint.prototype.toJ = function toJ() {\n if (this.inf)\n return this.curve.jpoint(null, null, null);\n\n var res = this.curve.jpoint(this.x, this.y, this.curve.one);\n return res;\n};\n\nfunction JPoint(curve, x, y, z) {\n Base.BasePoint.call(this, curve, 'jacobian');\n if (x === null && y === null && z === null) {\n this.x = this.curve.one;\n this.y = this.curve.one;\n this.z = new BN(0);\n } else {\n this.x = new BN(x, 16);\n this.y = new BN(y, 16);\n this.z = new BN(z, 16);\n }\n if (!this.x.red)\n this.x = this.x.toRed(this.curve.red);\n if (!this.y.red)\n this.y = this.y.toRed(this.curve.red);\n if (!this.z.red)\n this.z = this.z.toRed(this.curve.red);\n\n this.zOne = this.z === this.curve.one;\n}\ninherits(JPoint, Base.BasePoint);\n\nShortCurve.prototype.jpoint = function jpoint(x, y, z) {\n return new JPoint(this, x, y, z);\n};\n\nJPoint.prototype.toP = function toP() {\n if (this.isInfinity())\n return this.curve.point(null, null);\n\n var zinv = this.z.redInvm();\n var zinv2 = zinv.redSqr();\n var ax = this.x.redMul(zinv2);\n var ay = this.y.redMul(zinv2).redMul(zinv);\n\n return this.curve.point(ax, ay);\n};\n\nJPoint.prototype.neg = function neg() {\n return this.curve.jpoint(this.x, this.y.redNeg(), this.z);\n};\n\nJPoint.prototype.add = function add(p) {\n // O + P = P\n if (this.isInfinity())\n return p;\n\n // P + O = P\n if (p.isInfinity())\n return this;\n\n // 12M + 4S + 7A\n var pz2 = p.z.redSqr();\n var z2 = this.z.redSqr();\n var u1 = this.x.redMul(pz2);\n var u2 = p.x.redMul(z2);\n var s1 = this.y.redMul(pz2.redMul(p.z));\n var s2 = p.y.redMul(z2.redMul(this.z));\n\n var h = u1.redSub(u2);\n var r = s1.redSub(s2);\n if (h.cmpn(0) === 0) {\n if (r.cmpn(0) !== 0)\n return this.curve.jpoint(null, null, null);\n else\n return this.dbl();\n }\n\n var h2 = h.redSqr();\n var h3 = h2.redMul(h);\n var v = u1.redMul(h2);\n\n var nx = r.redSqr().redIAdd(h3).redISub(v).redISub(v);\n var ny = r.redMul(v.redISub(nx)).redISub(s1.redMul(h3));\n var nz = this.z.redMul(p.z).redMul(h);\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.mixedAdd = function mixedAdd(p) {\n // O + P = P\n if (this.isInfinity())\n return p.toJ();\n\n // P + O = P\n if (p.isInfinity())\n return this;\n\n // 8M + 3S + 7A\n var z2 = this.z.redSqr();\n var u1 = this.x;\n var u2 = p.x.redMul(z2);\n var s1 = this.y;\n var s2 = p.y.redMul(z2).redMul(this.z);\n\n var h = u1.redSub(u2);\n var r = s1.redSub(s2);\n if (h.cmpn(0) === 0) {\n if (r.cmpn(0) !== 0)\n return this.curve.jpoint(null, null, null);\n else\n return this.dbl();\n }\n\n var h2 = h.redSqr();\n var h3 = h2.redMul(h);\n var v = u1.redMul(h2);\n\n var nx = r.redSqr().redIAdd(h3).redISub(v).redISub(v);\n var ny = r.redMul(v.redISub(nx)).redISub(s1.redMul(h3));\n var nz = this.z.redMul(h);\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.dblp = function dblp(pow) {\n if (pow === 0)\n return this;\n if (this.isInfinity())\n return this;\n if (!pow)\n return this.dbl();\n\n var i;\n if (this.curve.zeroA || this.curve.threeA) {\n var r = this;\n for (i = 0; i < pow; i++)\n r = r.dbl();\n return r;\n }\n\n // 1M + 2S + 1A + N * (4S + 5M + 8A)\n // N = 1 => 6M + 6S + 9A\n var a = this.curve.a;\n var tinv = this.curve.tinv;\n\n var jx = this.x;\n var jy = this.y;\n var jz = this.z;\n var jz4 = jz.redSqr().redSqr();\n\n // Reuse results\n var jyd = jy.redAdd(jy);\n for (i = 0; i < pow; i++) {\n var jx2 = jx.redSqr();\n var jyd2 = jyd.redSqr();\n var jyd4 = jyd2.redSqr();\n var c = jx2.redAdd(jx2).redIAdd(jx2).redIAdd(a.redMul(jz4));\n\n var t1 = jx.redMul(jyd2);\n var nx = c.redSqr().redISub(t1.redAdd(t1));\n var t2 = t1.redISub(nx);\n var dny = c.redMul(t2);\n dny = dny.redIAdd(dny).redISub(jyd4);\n var nz = jyd.redMul(jz);\n if (i + 1 < pow)\n jz4 = jz4.redMul(jyd4);\n\n jx = nx;\n jz = nz;\n jyd = dny;\n }\n\n return this.curve.jpoint(jx, jyd.redMul(tinv), jz);\n};\n\nJPoint.prototype.dbl = function dbl() {\n if (this.isInfinity())\n return this;\n\n if (this.curve.zeroA)\n return this._zeroDbl();\n else if (this.curve.threeA)\n return this._threeDbl();\n else\n return this._dbl();\n};\n\nJPoint.prototype._zeroDbl = function _zeroDbl() {\n var nx;\n var ny;\n var nz;\n // Z = 1\n if (this.zOne) {\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-0.html\n // #doubling-mdbl-2007-bl\n // 1M + 5S + 14A\n\n // XX = X1^2\n var xx = this.x.redSqr();\n // YY = Y1^2\n var yy = this.y.redSqr();\n // YYYY = YY^2\n var yyyy = yy.redSqr();\n // S = 2 * ((X1 + YY)^2 - XX - YYYY)\n var s = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);\n s = s.redIAdd(s);\n // M = 3 * XX + a; a = 0\n var m = xx.redAdd(xx).redIAdd(xx);\n // T = M ^ 2 - 2*S\n var t = m.redSqr().redISub(s).redISub(s);\n\n // 8 * YYYY\n var yyyy8 = yyyy.redIAdd(yyyy);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n\n // X3 = T\n nx = t;\n // Y3 = M * (S - T) - 8 * YYYY\n ny = m.redMul(s.redISub(t)).redISub(yyyy8);\n // Z3 = 2*Y1\n nz = this.y.redAdd(this.y);\n } else {\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-0.html\n // #doubling-dbl-2009-l\n // 2M + 5S + 13A\n\n // A = X1^2\n var a = this.x.redSqr();\n // B = Y1^2\n var b = this.y.redSqr();\n // C = B^2\n var c = b.redSqr();\n // D = 2 * ((X1 + B)^2 - A - C)\n var d = this.x.redAdd(b).redSqr().redISub(a).redISub(c);\n d = d.redIAdd(d);\n // E = 3 * A\n var e = a.redAdd(a).redIAdd(a);\n // F = E^2\n var f = e.redSqr();\n\n // 8 * C\n var c8 = c.redIAdd(c);\n c8 = c8.redIAdd(c8);\n c8 = c8.redIAdd(c8);\n\n // X3 = F - 2 * D\n nx = f.redISub(d).redISub(d);\n // Y3 = E * (D - X3) - 8 * C\n ny = e.redMul(d.redISub(nx)).redISub(c8);\n // Z3 = 2 * Y1 * Z1\n nz = this.y.redMul(this.z);\n nz = nz.redIAdd(nz);\n }\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype._threeDbl = function _threeDbl() {\n var nx;\n var ny;\n var nz;\n // Z = 1\n if (this.zOne) {\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-3.html\n // #doubling-mdbl-2007-bl\n // 1M + 5S + 15A\n\n // XX = X1^2\n var xx = this.x.redSqr();\n // YY = Y1^2\n var yy = this.y.redSqr();\n // YYYY = YY^2\n var yyyy = yy.redSqr();\n // S = 2 * ((X1 + YY)^2 - XX - YYYY)\n var s = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);\n s = s.redIAdd(s);\n // M = 3 * XX + a\n var m = xx.redAdd(xx).redIAdd(xx).redIAdd(this.curve.a);\n // T = M^2 - 2 * S\n var t = m.redSqr().redISub(s).redISub(s);\n // X3 = T\n nx = t;\n // Y3 = M * (S - T) - 8 * YYYY\n var yyyy8 = yyyy.redIAdd(yyyy);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n ny = m.redMul(s.redISub(t)).redISub(yyyy8);\n // Z3 = 2 * Y1\n nz = this.y.redAdd(this.y);\n } else {\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-3.html#doubling-dbl-2001-b\n // 3M + 5S\n\n // delta = Z1^2\n var delta = this.z.redSqr();\n // gamma = Y1^2\n var gamma = this.y.redSqr();\n // beta = X1 * gamma\n var beta = this.x.redMul(gamma);\n // alpha = 3 * (X1 - delta) * (X1 + delta)\n var alpha = this.x.redSub(delta).redMul(this.x.redAdd(delta));\n alpha = alpha.redAdd(alpha).redIAdd(alpha);\n // X3 = alpha^2 - 8 * beta\n var beta4 = beta.redIAdd(beta);\n beta4 = beta4.redIAdd(beta4);\n var beta8 = beta4.redAdd(beta4);\n nx = alpha.redSqr().redISub(beta8);\n // Z3 = (Y1 + Z1)^2 - gamma - delta\n nz = this.y.redAdd(this.z).redSqr().redISub(gamma).redISub(delta);\n // Y3 = alpha * (4 * beta - X3) - 8 * gamma^2\n var ggamma8 = gamma.redSqr();\n ggamma8 = ggamma8.redIAdd(ggamma8);\n ggamma8 = ggamma8.redIAdd(ggamma8);\n ggamma8 = ggamma8.redIAdd(ggamma8);\n ny = alpha.redMul(beta4.redISub(nx)).redISub(ggamma8);\n }\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype._dbl = function _dbl() {\n var a = this.curve.a;\n\n // 4M + 6S + 10A\n var jx = this.x;\n var jy = this.y;\n var jz = this.z;\n var jz4 = jz.redSqr().redSqr();\n\n var jx2 = jx.redSqr();\n var jy2 = jy.redSqr();\n\n var c = jx2.redAdd(jx2).redIAdd(jx2).redIAdd(a.redMul(jz4));\n\n var jxd4 = jx.redAdd(jx);\n jxd4 = jxd4.redIAdd(jxd4);\n var t1 = jxd4.redMul(jy2);\n var nx = c.redSqr().redISub(t1.redAdd(t1));\n var t2 = t1.redISub(nx);\n\n var jyd8 = jy2.redSqr();\n jyd8 = jyd8.redIAdd(jyd8);\n jyd8 = jyd8.redIAdd(jyd8);\n jyd8 = jyd8.redIAdd(jyd8);\n var ny = c.redMul(t2).redISub(jyd8);\n var nz = jy.redAdd(jy).redMul(jz);\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.trpl = function trpl() {\n if (!this.curve.zeroA)\n return this.dbl().add(this);\n\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-0.html#tripling-tpl-2007-bl\n // 5M + 10S + ...\n\n // XX = X1^2\n var xx = this.x.redSqr();\n // YY = Y1^2\n var yy = this.y.redSqr();\n // ZZ = Z1^2\n var zz = this.z.redSqr();\n // YYYY = YY^2\n var yyyy = yy.redSqr();\n // M = 3 * XX + a * ZZ2; a = 0\n var m = xx.redAdd(xx).redIAdd(xx);\n // MM = M^2\n var mm = m.redSqr();\n // E = 6 * ((X1 + YY)^2 - XX - YYYY) - MM\n var e = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);\n e = e.redIAdd(e);\n e = e.redAdd(e).redIAdd(e);\n e = e.redISub(mm);\n // EE = E^2\n var ee = e.redSqr();\n // T = 16*YYYY\n var t = yyyy.redIAdd(yyyy);\n t = t.redIAdd(t);\n t = t.redIAdd(t);\n t = t.redIAdd(t);\n // U = (M + E)^2 - MM - EE - T\n var u = m.redIAdd(e).redSqr().redISub(mm).redISub(ee).redISub(t);\n // X3 = 4 * (X1 * EE - 4 * YY * U)\n var yyu4 = yy.redMul(u);\n yyu4 = yyu4.redIAdd(yyu4);\n yyu4 = yyu4.redIAdd(yyu4);\n var nx = this.x.redMul(ee).redISub(yyu4);\n nx = nx.redIAdd(nx);\n nx = nx.redIAdd(nx);\n // Y3 = 8 * Y1 * (U * (T - U) - E * EE)\n var ny = this.y.redMul(u.redMul(t.redISub(u)).redISub(e.redMul(ee)));\n ny = ny.redIAdd(ny);\n ny = ny.redIAdd(ny);\n ny = ny.redIAdd(ny);\n // Z3 = (Z1 + E)^2 - ZZ - EE\n var nz = this.z.redAdd(e).redSqr().redISub(zz).redISub(ee);\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.mul = function mul(k, kbase) {\n k = new BN(k, kbase);\n\n return this.curve._wnafMul(this, k);\n};\n\nJPoint.prototype.eq = function eq(p) {\n if (p.type === 'affine')\n return this.eq(p.toJ());\n\n if (this === p)\n return true;\n\n // x1 * z2^2 == x2 * z1^2\n var z2 = this.z.redSqr();\n var pz2 = p.z.redSqr();\n if (this.x.redMul(pz2).redISub(p.x.redMul(z2)).cmpn(0) !== 0)\n return false;\n\n // y1 * z2^3 == y2 * z1^3\n var z3 = z2.redMul(this.z);\n var pz3 = pz2.redMul(p.z);\n return this.y.redMul(pz3).redISub(p.y.redMul(z3)).cmpn(0) === 0;\n};\n\nJPoint.prototype.eqXToP = function eqXToP(x) {\n var zs = this.z.redSqr();\n var rx = x.toRed(this.curve.red).redMul(zs);\n if (this.x.cmp(rx) === 0)\n return true;\n\n var xc = x.clone();\n var t = this.curve.redN.redMul(zs);\n for (;;) {\n xc.iadd(this.curve.n);\n if (xc.cmp(this.curve.p) >= 0)\n return false;\n\n rx.redIAdd(t);\n if (this.x.cmp(rx) === 0)\n return true;\n }\n};\n\nJPoint.prototype.inspect = function inspect() {\n if (this.isInfinity())\n return '';\n return '';\n};\n\nJPoint.prototype.isInfinity = function isInfinity() {\n // XXX This code assumes that zero is always zero in red\n return this.z.cmpn(0) === 0;\n};\n", "'use strict';\n\nvar BN = require('bn.js');\nvar inherits = require('inherits');\nvar Base = require('./base');\n\nvar utils = require('../utils');\n\nfunction MontCurve(conf) {\n Base.call(this, 'mont', conf);\n\n this.a = new BN(conf.a, 16).toRed(this.red);\n this.b = new BN(conf.b, 16).toRed(this.red);\n this.i4 = new BN(4).toRed(this.red).redInvm();\n this.two = new BN(2).toRed(this.red);\n this.a24 = this.i4.redMul(this.a.redAdd(this.two));\n}\ninherits(MontCurve, Base);\nmodule.exports = MontCurve;\n\nMontCurve.prototype.validate = function validate(point) {\n var x = point.normalize().x;\n var x2 = x.redSqr();\n var rhs = x2.redMul(x).redAdd(x2.redMul(this.a)).redAdd(x);\n var y = rhs.redSqrt();\n\n return y.redSqr().cmp(rhs) === 0;\n};\n\nfunction Point(curve, x, z) {\n Base.BasePoint.call(this, curve, 'projective');\n if (x === null && z === null) {\n this.x = this.curve.one;\n this.z = this.curve.zero;\n } else {\n this.x = new BN(x, 16);\n this.z = new BN(z, 16);\n if (!this.x.red)\n this.x = this.x.toRed(this.curve.red);\n if (!this.z.red)\n this.z = this.z.toRed(this.curve.red);\n }\n}\ninherits(Point, Base.BasePoint);\n\nMontCurve.prototype.decodePoint = function decodePoint(bytes, enc) {\n return this.point(utils.toArray(bytes, enc), 1);\n};\n\nMontCurve.prototype.point = function point(x, z) {\n return new Point(this, x, z);\n};\n\nMontCurve.prototype.pointFromJSON = function pointFromJSON(obj) {\n return Point.fromJSON(this, obj);\n};\n\nPoint.prototype.precompute = function precompute() {\n // No-op\n};\n\nPoint.prototype._encode = function _encode() {\n return this.getX().toArray('be', this.curve.p.byteLength());\n};\n\nPoint.fromJSON = function fromJSON(curve, obj) {\n return new Point(curve, obj[0], obj[1] || curve.one);\n};\n\nPoint.prototype.inspect = function inspect() {\n if (this.isInfinity())\n return '';\n return '';\n};\n\nPoint.prototype.isInfinity = function isInfinity() {\n // XXX This code assumes that zero is always zero in red\n return this.z.cmpn(0) === 0;\n};\n\nPoint.prototype.dbl = function dbl() {\n // http://hyperelliptic.org/EFD/g1p/auto-montgom-xz.html#doubling-dbl-1987-m-3\n // 2M + 2S + 4A\n\n // A = X1 + Z1\n var a = this.x.redAdd(this.z);\n // AA = A^2\n var aa = a.redSqr();\n // B = X1 - Z1\n var b = this.x.redSub(this.z);\n // BB = B^2\n var bb = b.redSqr();\n // C = AA - BB\n var c = aa.redSub(bb);\n // X3 = AA * BB\n var nx = aa.redMul(bb);\n // Z3 = C * (BB + A24 * C)\n var nz = c.redMul(bb.redAdd(this.curve.a24.redMul(c)));\n return this.curve.point(nx, nz);\n};\n\nPoint.prototype.add = function add() {\n throw new Error('Not supported on Montgomery curve');\n};\n\nPoint.prototype.diffAdd = function diffAdd(p, diff) {\n // http://hyperelliptic.org/EFD/g1p/auto-montgom-xz.html#diffadd-dadd-1987-m-3\n // 4M + 2S + 6A\n\n // A = X2 + Z2\n var a = this.x.redAdd(this.z);\n // B = X2 - Z2\n var b = this.x.redSub(this.z);\n // C = X3 + Z3\n var c = p.x.redAdd(p.z);\n // D = X3 - Z3\n var d = p.x.redSub(p.z);\n // DA = D * A\n var da = d.redMul(a);\n // CB = C * B\n var cb = c.redMul(b);\n // X5 = Z1 * (DA + CB)^2\n var nx = diff.z.redMul(da.redAdd(cb).redSqr());\n // Z5 = X1 * (DA - CB)^2\n var nz = diff.x.redMul(da.redISub(cb).redSqr());\n return this.curve.point(nx, nz);\n};\n\nPoint.prototype.mul = function mul(k) {\n var t = k.clone();\n var a = this; // (N / 2) * Q + Q\n var b = this.curve.point(null, null); // (N / 2) * Q\n var c = this; // Q\n\n for (var bits = []; t.cmpn(0) !== 0; t.iushrn(1))\n bits.push(t.andln(1));\n\n for (var i = bits.length - 1; i >= 0; i--) {\n if (bits[i] === 0) {\n // N * Q + Q = ((N / 2) * Q + Q)) + (N / 2) * Q\n a = a.diffAdd(b, c);\n // N * Q = 2 * ((N / 2) * Q + Q))\n b = b.dbl();\n } else {\n // N * Q = ((N / 2) * Q + Q) + ((N / 2) * Q)\n b = a.diffAdd(b, c);\n // N * Q + Q = 2 * ((N / 2) * Q + Q)\n a = a.dbl();\n }\n }\n return b;\n};\n\nPoint.prototype.mulAdd = function mulAdd() {\n throw new Error('Not supported on Montgomery curve');\n};\n\nPoint.prototype.jumlAdd = function jumlAdd() {\n throw new Error('Not supported on Montgomery curve');\n};\n\nPoint.prototype.eq = function eq(other) {\n return this.getX().cmp(other.getX()) === 0;\n};\n\nPoint.prototype.normalize = function normalize() {\n this.x = this.x.redMul(this.z.redInvm());\n this.z = this.curve.one;\n return this;\n};\n\nPoint.prototype.getX = function getX() {\n // Normalize coordinates\n this.normalize();\n\n return this.x.fromRed();\n};\n", "'use strict';\n\nvar utils = require('../utils');\nvar BN = require('bn.js');\nvar inherits = require('inherits');\nvar Base = require('./base');\n\nvar assert = utils.assert;\n\nfunction EdwardsCurve(conf) {\n // NOTE: Important as we are creating point in Base.call()\n this.twisted = (conf.a | 0) !== 1;\n this.mOneA = this.twisted && (conf.a | 0) === -1;\n this.extended = this.mOneA;\n\n Base.call(this, 'edwards', conf);\n\n this.a = new BN(conf.a, 16).umod(this.red.m);\n this.a = this.a.toRed(this.red);\n this.c = new BN(conf.c, 16).toRed(this.red);\n this.c2 = this.c.redSqr();\n this.d = new BN(conf.d, 16).toRed(this.red);\n this.dd = this.d.redAdd(this.d);\n\n assert(!this.twisted || this.c.fromRed().cmpn(1) === 0);\n this.oneC = (conf.c | 0) === 1;\n}\ninherits(EdwardsCurve, Base);\nmodule.exports = EdwardsCurve;\n\nEdwardsCurve.prototype._mulA = function _mulA(num) {\n if (this.mOneA)\n return num.redNeg();\n else\n return this.a.redMul(num);\n};\n\nEdwardsCurve.prototype._mulC = function _mulC(num) {\n if (this.oneC)\n return num;\n else\n return this.c.redMul(num);\n};\n\n// Just for compatibility with Short curve\nEdwardsCurve.prototype.jpoint = function jpoint(x, y, z, t) {\n return this.point(x, y, z, t);\n};\n\nEdwardsCurve.prototype.pointFromX = function pointFromX(x, odd) {\n x = new BN(x, 16);\n if (!x.red)\n x = x.toRed(this.red);\n\n var x2 = x.redSqr();\n var rhs = this.c2.redSub(this.a.redMul(x2));\n var lhs = this.one.redSub(this.c2.redMul(this.d).redMul(x2));\n\n var y2 = rhs.redMul(lhs.redInvm());\n var y = y2.redSqrt();\n if (y.redSqr().redSub(y2).cmp(this.zero) !== 0)\n throw new Error('invalid point');\n\n var isOdd = y.fromRed().isOdd();\n if (odd && !isOdd || !odd && isOdd)\n y = y.redNeg();\n\n return this.point(x, y);\n};\n\nEdwardsCurve.prototype.pointFromY = function pointFromY(y, odd) {\n y = new BN(y, 16);\n if (!y.red)\n y = y.toRed(this.red);\n\n // x^2 = (y^2 - c^2) / (c^2 d y^2 - a)\n var y2 = y.redSqr();\n var lhs = y2.redSub(this.c2);\n var rhs = y2.redMul(this.d).redMul(this.c2).redSub(this.a);\n var x2 = lhs.redMul(rhs.redInvm());\n\n if (x2.cmp(this.zero) === 0) {\n if (odd)\n throw new Error('invalid point');\n else\n return this.point(this.zero, y);\n }\n\n var x = x2.redSqrt();\n if (x.redSqr().redSub(x2).cmp(this.zero) !== 0)\n throw new Error('invalid point');\n\n if (x.fromRed().isOdd() !== odd)\n x = x.redNeg();\n\n return this.point(x, y);\n};\n\nEdwardsCurve.prototype.validate = function validate(point) {\n if (point.isInfinity())\n return true;\n\n // Curve: A * X^2 + Y^2 = C^2 * (1 + D * X^2 * Y^2)\n point.normalize();\n\n var x2 = point.x.redSqr();\n var y2 = point.y.redSqr();\n var lhs = x2.redMul(this.a).redAdd(y2);\n var rhs = this.c2.redMul(this.one.redAdd(this.d.redMul(x2).redMul(y2)));\n\n return lhs.cmp(rhs) === 0;\n};\n\nfunction Point(curve, x, y, z, t) {\n Base.BasePoint.call(this, curve, 'projective');\n if (x === null && y === null && z === null) {\n this.x = this.curve.zero;\n this.y = this.curve.one;\n this.z = this.curve.one;\n this.t = this.curve.zero;\n this.zOne = true;\n } else {\n this.x = new BN(x, 16);\n this.y = new BN(y, 16);\n this.z = z ? new BN(z, 16) : this.curve.one;\n this.t = t && new BN(t, 16);\n if (!this.x.red)\n this.x = this.x.toRed(this.curve.red);\n if (!this.y.red)\n this.y = this.y.toRed(this.curve.red);\n if (!this.z.red)\n this.z = this.z.toRed(this.curve.red);\n if (this.t && !this.t.red)\n this.t = this.t.toRed(this.curve.red);\n this.zOne = this.z === this.curve.one;\n\n // Use extended coordinates\n if (this.curve.extended && !this.t) {\n this.t = this.x.redMul(this.y);\n if (!this.zOne)\n this.t = this.t.redMul(this.z.redInvm());\n }\n }\n}\ninherits(Point, Base.BasePoint);\n\nEdwardsCurve.prototype.pointFromJSON = function pointFromJSON(obj) {\n return Point.fromJSON(this, obj);\n};\n\nEdwardsCurve.prototype.point = function point(x, y, z, t) {\n return new Point(this, x, y, z, t);\n};\n\nPoint.fromJSON = function fromJSON(curve, obj) {\n return new Point(curve, obj[0], obj[1], obj[2]);\n};\n\nPoint.prototype.inspect = function inspect() {\n if (this.isInfinity())\n return '';\n return '';\n};\n\nPoint.prototype.isInfinity = function isInfinity() {\n // XXX This code assumes that zero is always zero in red\n return this.x.cmpn(0) === 0 &&\n (this.y.cmp(this.z) === 0 ||\n (this.zOne && this.y.cmp(this.curve.c) === 0));\n};\n\nPoint.prototype._extDbl = function _extDbl() {\n // hyperelliptic.org/EFD/g1p/auto-twisted-extended-1.html\n // #doubling-dbl-2008-hwcd\n // 4M + 4S\n\n // A = X1^2\n var a = this.x.redSqr();\n // B = Y1^2\n var b = this.y.redSqr();\n // C = 2 * Z1^2\n var c = this.z.redSqr();\n c = c.redIAdd(c);\n // D = a * A\n var d = this.curve._mulA(a);\n // E = (X1 + Y1)^2 - A - B\n var e = this.x.redAdd(this.y).redSqr().redISub(a).redISub(b);\n // G = D + B\n var g = d.redAdd(b);\n // F = G - C\n var f = g.redSub(c);\n // H = D - B\n var h = d.redSub(b);\n // X3 = E * F\n var nx = e.redMul(f);\n // Y3 = G * H\n var ny = g.redMul(h);\n // T3 = E * H\n var nt = e.redMul(h);\n // Z3 = F * G\n var nz = f.redMul(g);\n return this.curve.point(nx, ny, nz, nt);\n};\n\nPoint.prototype._projDbl = function _projDbl() {\n // hyperelliptic.org/EFD/g1p/auto-twisted-projective.html\n // #doubling-dbl-2008-bbjlp\n // #doubling-dbl-2007-bl\n // and others\n // Generally 3M + 4S or 2M + 4S\n\n // B = (X1 + Y1)^2\n var b = this.x.redAdd(this.y).redSqr();\n // C = X1^2\n var c = this.x.redSqr();\n // D = Y1^2\n var d = this.y.redSqr();\n\n var nx;\n var ny;\n var nz;\n var e;\n var h;\n var j;\n if (this.curve.twisted) {\n // E = a * C\n e = this.curve._mulA(c);\n // F = E + D\n var f = e.redAdd(d);\n if (this.zOne) {\n // X3 = (B - C - D) * (F - 2)\n nx = b.redSub(c).redSub(d).redMul(f.redSub(this.curve.two));\n // Y3 = F * (E - D)\n ny = f.redMul(e.redSub(d));\n // Z3 = F^2 - 2 * F\n nz = f.redSqr().redSub(f).redSub(f);\n } else {\n // H = Z1^2\n h = this.z.redSqr();\n // J = F - 2 * H\n j = f.redSub(h).redISub(h);\n // X3 = (B-C-D)*J\n nx = b.redSub(c).redISub(d).redMul(j);\n // Y3 = F * (E - D)\n ny = f.redMul(e.redSub(d));\n // Z3 = F * J\n nz = f.redMul(j);\n }\n } else {\n // E = C + D\n e = c.redAdd(d);\n // H = (c * Z1)^2\n h = this.curve._mulC(this.z).redSqr();\n // J = E - 2 * H\n j = e.redSub(h).redSub(h);\n // X3 = c * (B - E) * J\n nx = this.curve._mulC(b.redISub(e)).redMul(j);\n // Y3 = c * E * (C - D)\n ny = this.curve._mulC(e).redMul(c.redISub(d));\n // Z3 = E * J\n nz = e.redMul(j);\n }\n return this.curve.point(nx, ny, nz);\n};\n\nPoint.prototype.dbl = function dbl() {\n if (this.isInfinity())\n return this;\n\n // Double in extended coordinates\n if (this.curve.extended)\n return this._extDbl();\n else\n return this._projDbl();\n};\n\nPoint.prototype._extAdd = function _extAdd(p) {\n // hyperelliptic.org/EFD/g1p/auto-twisted-extended-1.html\n // #addition-add-2008-hwcd-3\n // 8M\n\n // A = (Y1 - X1) * (Y2 - X2)\n var a = this.y.redSub(this.x).redMul(p.y.redSub(p.x));\n // B = (Y1 + X1) * (Y2 + X2)\n var b = this.y.redAdd(this.x).redMul(p.y.redAdd(p.x));\n // C = T1 * k * T2\n var c = this.t.redMul(this.curve.dd).redMul(p.t);\n // D = Z1 * 2 * Z2\n var d = this.z.redMul(p.z.redAdd(p.z));\n // E = B - A\n var e = b.redSub(a);\n // F = D - C\n var f = d.redSub(c);\n // G = D + C\n var g = d.redAdd(c);\n // H = B + A\n var h = b.redAdd(a);\n // X3 = E * F\n var nx = e.redMul(f);\n // Y3 = G * H\n var ny = g.redMul(h);\n // T3 = E * H\n var nt = e.redMul(h);\n // Z3 = F * G\n var nz = f.redMul(g);\n return this.curve.point(nx, ny, nz, nt);\n};\n\nPoint.prototype._projAdd = function _projAdd(p) {\n // hyperelliptic.org/EFD/g1p/auto-twisted-projective.html\n // #addition-add-2008-bbjlp\n // #addition-add-2007-bl\n // 10M + 1S\n\n // A = Z1 * Z2\n var a = this.z.redMul(p.z);\n // B = A^2\n var b = a.redSqr();\n // C = X1 * X2\n var c = this.x.redMul(p.x);\n // D = Y1 * Y2\n var d = this.y.redMul(p.y);\n // E = d * C * D\n var e = this.curve.d.redMul(c).redMul(d);\n // F = B - E\n var f = b.redSub(e);\n // G = B + E\n var g = b.redAdd(e);\n // X3 = A * F * ((X1 + Y1) * (X2 + Y2) - C - D)\n var tmp = this.x.redAdd(this.y).redMul(p.x.redAdd(p.y)).redISub(c).redISub(d);\n var nx = a.redMul(f).redMul(tmp);\n var ny;\n var nz;\n if (this.curve.twisted) {\n // Y3 = A * G * (D - a * C)\n ny = a.redMul(g).redMul(d.redSub(this.curve._mulA(c)));\n // Z3 = F * G\n nz = f.redMul(g);\n } else {\n // Y3 = A * G * (D - C)\n ny = a.redMul(g).redMul(d.redSub(c));\n // Z3 = c * F * G\n nz = this.curve._mulC(f).redMul(g);\n }\n return this.curve.point(nx, ny, nz);\n};\n\nPoint.prototype.add = function add(p) {\n if (this.isInfinity())\n return p;\n if (p.isInfinity())\n return this;\n\n if (this.curve.extended)\n return this._extAdd(p);\n else\n return this._projAdd(p);\n};\n\nPoint.prototype.mul = function mul(k) {\n if (this._hasDoubles(k))\n return this.curve._fixedNafMul(this, k);\n else\n return this.curve._wnafMul(this, k);\n};\n\nPoint.prototype.mulAdd = function mulAdd(k1, p, k2) {\n return this.curve._wnafMulAdd(1, [ this, p ], [ k1, k2 ], 2, false);\n};\n\nPoint.prototype.jmulAdd = function jmulAdd(k1, p, k2) {\n return this.curve._wnafMulAdd(1, [ this, p ], [ k1, k2 ], 2, true);\n};\n\nPoint.prototype.normalize = function normalize() {\n if (this.zOne)\n return this;\n\n // Normalize coordinates\n var zi = this.z.redInvm();\n this.x = this.x.redMul(zi);\n this.y = this.y.redMul(zi);\n if (this.t)\n this.t = this.t.redMul(zi);\n this.z = this.curve.one;\n this.zOne = true;\n return this;\n};\n\nPoint.prototype.neg = function neg() {\n return this.curve.point(this.x.redNeg(),\n this.y,\n this.z,\n this.t && this.t.redNeg());\n};\n\nPoint.prototype.getX = function getX() {\n this.normalize();\n return this.x.fromRed();\n};\n\nPoint.prototype.getY = function getY() {\n this.normalize();\n return this.y.fromRed();\n};\n\nPoint.prototype.eq = function eq(other) {\n return this === other ||\n this.getX().cmp(other.getX()) === 0 &&\n this.getY().cmp(other.getY()) === 0;\n};\n\nPoint.prototype.eqXToP = function eqXToP(x) {\n var rx = x.toRed(this.curve.red).redMul(this.z);\n if (this.x.cmp(rx) === 0)\n return true;\n\n var xc = x.clone();\n var t = this.curve.redN.redMul(this.z);\n for (;;) {\n xc.iadd(this.curve.n);\n if (xc.cmp(this.curve.p) >= 0)\n return false;\n\n rx.redIAdd(t);\n if (this.x.cmp(rx) === 0)\n return true;\n }\n};\n\n// Compatibility with BaseCurve\nPoint.prototype.toP = Point.prototype.normalize;\nPoint.prototype.mixedAdd = Point.prototype.add;\n", "'use strict';\n\nvar curve = exports;\n\ncurve.base = require('./base');\ncurve.short = require('./short');\ncurve.mont = require('./mont');\ncurve.edwards = require('./edwards');\n", "'use strict';\n\nvar assert = require('minimalistic-assert');\nvar inherits = require('inherits');\n\nexports.inherits = inherits;\n\nfunction isSurrogatePair(msg, i) {\n if ((msg.charCodeAt(i) & 0xFC00) !== 0xD800) {\n return false;\n }\n if (i < 0 || i + 1 >= msg.length) {\n return false;\n }\n return (msg.charCodeAt(i + 1) & 0xFC00) === 0xDC00;\n}\n\nfunction toArray(msg, enc) {\n if (Array.isArray(msg))\n return msg.slice();\n if (!msg)\n return [];\n var res = [];\n if (typeof msg === 'string') {\n if (!enc) {\n // Inspired by stringToUtf8ByteArray() in closure-library by Google\n // https://github.com/google/closure-library/blob/8598d87242af59aac233270742c8984e2b2bdbe0/closure/goog/crypt/crypt.js#L117-L143\n // Apache License 2.0\n // https://github.com/google/closure-library/blob/master/LICENSE\n var p = 0;\n for (var i = 0; i < msg.length; i++) {\n var c = msg.charCodeAt(i);\n if (c < 128) {\n res[p++] = c;\n } else if (c < 2048) {\n res[p++] = (c >> 6) | 192;\n res[p++] = (c & 63) | 128;\n } else if (isSurrogatePair(msg, i)) {\n c = 0x10000 + ((c & 0x03FF) << 10) + (msg.charCodeAt(++i) & 0x03FF);\n res[p++] = (c >> 18) | 240;\n res[p++] = ((c >> 12) & 63) | 128;\n res[p++] = ((c >> 6) & 63) | 128;\n res[p++] = (c & 63) | 128;\n } else {\n res[p++] = (c >> 12) | 224;\n res[p++] = ((c >> 6) & 63) | 128;\n res[p++] = (c & 63) | 128;\n }\n }\n } else if (enc === 'hex') {\n msg = msg.replace(/[^a-z0-9]+/ig, '');\n if (msg.length % 2 !== 0)\n msg = '0' + msg;\n for (i = 0; i < msg.length; i += 2)\n res.push(parseInt(msg[i] + msg[i + 1], 16));\n }\n } else {\n for (i = 0; i < msg.length; i++)\n res[i] = msg[i] | 0;\n }\n return res;\n}\nexports.toArray = toArray;\n\nfunction toHex(msg) {\n var res = '';\n for (var i = 0; i < msg.length; i++)\n res += zero2(msg[i].toString(16));\n return res;\n}\nexports.toHex = toHex;\n\nfunction htonl(w) {\n var res = (w >>> 24) |\n ((w >>> 8) & 0xff00) |\n ((w << 8) & 0xff0000) |\n ((w & 0xff) << 24);\n return res >>> 0;\n}\nexports.htonl = htonl;\n\nfunction toHex32(msg, endian) {\n var res = '';\n for (var i = 0; i < msg.length; i++) {\n var w = msg[i];\n if (endian === 'little')\n w = htonl(w);\n res += zero8(w.toString(16));\n }\n return res;\n}\nexports.toHex32 = toHex32;\n\nfunction zero2(word) {\n if (word.length === 1)\n return '0' + word;\n else\n return word;\n}\nexports.zero2 = zero2;\n\nfunction zero8(word) {\n if (word.length === 7)\n return '0' + word;\n else if (word.length === 6)\n return '00' + word;\n else if (word.length === 5)\n return '000' + word;\n else if (word.length === 4)\n return '0000' + word;\n else if (word.length === 3)\n return '00000' + word;\n else if (word.length === 2)\n return '000000' + word;\n else if (word.length === 1)\n return '0000000' + word;\n else\n return word;\n}\nexports.zero8 = zero8;\n\nfunction join32(msg, start, end, endian) {\n var len = end - start;\n assert(len % 4 === 0);\n var res = new Array(len / 4);\n for (var i = 0, k = start; i < res.length; i++, k += 4) {\n var w;\n if (endian === 'big')\n w = (msg[k] << 24) | (msg[k + 1] << 16) | (msg[k + 2] << 8) | msg[k + 3];\n else\n w = (msg[k + 3] << 24) | (msg[k + 2] << 16) | (msg[k + 1] << 8) | msg[k];\n res[i] = w >>> 0;\n }\n return res;\n}\nexports.join32 = join32;\n\nfunction split32(msg, endian) {\n var res = new Array(msg.length * 4);\n for (var i = 0, k = 0; i < msg.length; i++, k += 4) {\n var m = msg[i];\n if (endian === 'big') {\n res[k] = m >>> 24;\n res[k + 1] = (m >>> 16) & 0xff;\n res[k + 2] = (m >>> 8) & 0xff;\n res[k + 3] = m & 0xff;\n } else {\n res[k + 3] = m >>> 24;\n res[k + 2] = (m >>> 16) & 0xff;\n res[k + 1] = (m >>> 8) & 0xff;\n res[k] = m & 0xff;\n }\n }\n return res;\n}\nexports.split32 = split32;\n\nfunction rotr32(w, b) {\n return (w >>> b) | (w << (32 - b));\n}\nexports.rotr32 = rotr32;\n\nfunction rotl32(w, b) {\n return (w << b) | (w >>> (32 - b));\n}\nexports.rotl32 = rotl32;\n\nfunction sum32(a, b) {\n return (a + b) >>> 0;\n}\nexports.sum32 = sum32;\n\nfunction sum32_3(a, b, c) {\n return (a + b + c) >>> 0;\n}\nexports.sum32_3 = sum32_3;\n\nfunction sum32_4(a, b, c, d) {\n return (a + b + c + d) >>> 0;\n}\nexports.sum32_4 = sum32_4;\n\nfunction sum32_5(a, b, c, d, e) {\n return (a + b + c + d + e) >>> 0;\n}\nexports.sum32_5 = sum32_5;\n\nfunction sum64(buf, pos, ah, al) {\n var bh = buf[pos];\n var bl = buf[pos + 1];\n\n var lo = (al + bl) >>> 0;\n var hi = (lo < al ? 1 : 0) + ah + bh;\n buf[pos] = hi >>> 0;\n buf[pos + 1] = lo;\n}\nexports.sum64 = sum64;\n\nfunction sum64_hi(ah, al, bh, bl) {\n var lo = (al + bl) >>> 0;\n var hi = (lo < al ? 1 : 0) + ah + bh;\n return hi >>> 0;\n}\nexports.sum64_hi = sum64_hi;\n\nfunction sum64_lo(ah, al, bh, bl) {\n var lo = al + bl;\n return lo >>> 0;\n}\nexports.sum64_lo = sum64_lo;\n\nfunction sum64_4_hi(ah, al, bh, bl, ch, cl, dh, dl) {\n var carry = 0;\n var lo = al;\n lo = (lo + bl) >>> 0;\n carry += lo < al ? 1 : 0;\n lo = (lo + cl) >>> 0;\n carry += lo < cl ? 1 : 0;\n lo = (lo + dl) >>> 0;\n carry += lo < dl ? 1 : 0;\n\n var hi = ah + bh + ch + dh + carry;\n return hi >>> 0;\n}\nexports.sum64_4_hi = sum64_4_hi;\n\nfunction sum64_4_lo(ah, al, bh, bl, ch, cl, dh, dl) {\n var lo = al + bl + cl + dl;\n return lo >>> 0;\n}\nexports.sum64_4_lo = sum64_4_lo;\n\nfunction sum64_5_hi(ah, al, bh, bl, ch, cl, dh, dl, eh, el) {\n var carry = 0;\n var lo = al;\n lo = (lo + bl) >>> 0;\n carry += lo < al ? 1 : 0;\n lo = (lo + cl) >>> 0;\n carry += lo < cl ? 1 : 0;\n lo = (lo + dl) >>> 0;\n carry += lo < dl ? 1 : 0;\n lo = (lo + el) >>> 0;\n carry += lo < el ? 1 : 0;\n\n var hi = ah + bh + ch + dh + eh + carry;\n return hi >>> 0;\n}\nexports.sum64_5_hi = sum64_5_hi;\n\nfunction sum64_5_lo(ah, al, bh, bl, ch, cl, dh, dl, eh, el) {\n var lo = al + bl + cl + dl + el;\n\n return lo >>> 0;\n}\nexports.sum64_5_lo = sum64_5_lo;\n\nfunction rotr64_hi(ah, al, num) {\n var r = (al << (32 - num)) | (ah >>> num);\n return r >>> 0;\n}\nexports.rotr64_hi = rotr64_hi;\n\nfunction rotr64_lo(ah, al, num) {\n var r = (ah << (32 - num)) | (al >>> num);\n return r >>> 0;\n}\nexports.rotr64_lo = rotr64_lo;\n\nfunction shr64_hi(ah, al, num) {\n return ah >>> num;\n}\nexports.shr64_hi = shr64_hi;\n\nfunction shr64_lo(ah, al, num) {\n var r = (ah << (32 - num)) | (al >>> num);\n return r >>> 0;\n}\nexports.shr64_lo = shr64_lo;\n", "'use strict';\n\nvar utils = require('./utils');\nvar assert = require('minimalistic-assert');\n\nfunction BlockHash() {\n this.pending = null;\n this.pendingTotal = 0;\n this.blockSize = this.constructor.blockSize;\n this.outSize = this.constructor.outSize;\n this.hmacStrength = this.constructor.hmacStrength;\n this.padLength = this.constructor.padLength / 8;\n this.endian = 'big';\n\n this._delta8 = this.blockSize / 8;\n this._delta32 = this.blockSize / 32;\n}\nexports.BlockHash = BlockHash;\n\nBlockHash.prototype.update = function update(msg, enc) {\n // Convert message to array, pad it, and join into 32bit blocks\n msg = utils.toArray(msg, enc);\n if (!this.pending)\n this.pending = msg;\n else\n this.pending = this.pending.concat(msg);\n this.pendingTotal += msg.length;\n\n // Enough data, try updating\n if (this.pending.length >= this._delta8) {\n msg = this.pending;\n\n // Process pending data in blocks\n var r = msg.length % this._delta8;\n this.pending = msg.slice(msg.length - r, msg.length);\n if (this.pending.length === 0)\n this.pending = null;\n\n msg = utils.join32(msg, 0, msg.length - r, this.endian);\n for (var i = 0; i < msg.length; i += this._delta32)\n this._update(msg, i, i + this._delta32);\n }\n\n return this;\n};\n\nBlockHash.prototype.digest = function digest(enc) {\n this.update(this._pad());\n assert(this.pending === null);\n\n return this._digest(enc);\n};\n\nBlockHash.prototype._pad = function pad() {\n var len = this.pendingTotal;\n var bytes = this._delta8;\n var k = bytes - ((len + this.padLength) % bytes);\n var res = new Array(k + this.padLength);\n res[0] = 0x80;\n for (var i = 1; i < k; i++)\n res[i] = 0;\n\n // Append length\n len <<= 3;\n if (this.endian === 'big') {\n for (var t = 8; t < this.padLength; t++)\n res[i++] = 0;\n\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = (len >>> 24) & 0xff;\n res[i++] = (len >>> 16) & 0xff;\n res[i++] = (len >>> 8) & 0xff;\n res[i++] = len & 0xff;\n } else {\n res[i++] = len & 0xff;\n res[i++] = (len >>> 8) & 0xff;\n res[i++] = (len >>> 16) & 0xff;\n res[i++] = (len >>> 24) & 0xff;\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = 0;\n\n for (t = 8; t < this.padLength; t++)\n res[i++] = 0;\n }\n\n return res;\n};\n", "'use strict';\n\nvar utils = require('../utils');\nvar rotr32 = utils.rotr32;\n\nfunction ft_1(s, x, y, z) {\n if (s === 0)\n return ch32(x, y, z);\n if (s === 1 || s === 3)\n return p32(x, y, z);\n if (s === 2)\n return maj32(x, y, z);\n}\nexports.ft_1 = ft_1;\n\nfunction ch32(x, y, z) {\n return (x & y) ^ ((~x) & z);\n}\nexports.ch32 = ch32;\n\nfunction maj32(x, y, z) {\n return (x & y) ^ (x & z) ^ (y & z);\n}\nexports.maj32 = maj32;\n\nfunction p32(x, y, z) {\n return x ^ y ^ z;\n}\nexports.p32 = p32;\n\nfunction s0_256(x) {\n return rotr32(x, 2) ^ rotr32(x, 13) ^ rotr32(x, 22);\n}\nexports.s0_256 = s0_256;\n\nfunction s1_256(x) {\n return rotr32(x, 6) ^ rotr32(x, 11) ^ rotr32(x, 25);\n}\nexports.s1_256 = s1_256;\n\nfunction g0_256(x) {\n return rotr32(x, 7) ^ rotr32(x, 18) ^ (x >>> 3);\n}\nexports.g0_256 = g0_256;\n\nfunction g1_256(x) {\n return rotr32(x, 17) ^ rotr32(x, 19) ^ (x >>> 10);\n}\nexports.g1_256 = g1_256;\n", "'use strict';\n\nvar utils = require('../utils');\nvar common = require('../common');\nvar shaCommon = require('./common');\n\nvar rotl32 = utils.rotl32;\nvar sum32 = utils.sum32;\nvar sum32_5 = utils.sum32_5;\nvar ft_1 = shaCommon.ft_1;\nvar BlockHash = common.BlockHash;\n\nvar sha1_K = [\n 0x5A827999, 0x6ED9EBA1,\n 0x8F1BBCDC, 0xCA62C1D6\n];\n\nfunction SHA1() {\n if (!(this instanceof SHA1))\n return new SHA1();\n\n BlockHash.call(this);\n this.h = [\n 0x67452301, 0xefcdab89, 0x98badcfe,\n 0x10325476, 0xc3d2e1f0 ];\n this.W = new Array(80);\n}\n\nutils.inherits(SHA1, BlockHash);\nmodule.exports = SHA1;\n\nSHA1.blockSize = 512;\nSHA1.outSize = 160;\nSHA1.hmacStrength = 80;\nSHA1.padLength = 64;\n\nSHA1.prototype._update = function _update(msg, start) {\n var W = this.W;\n\n for (var i = 0; i < 16; i++)\n W[i] = msg[start + i];\n\n for(; i < W.length; i++)\n W[i] = rotl32(W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16], 1);\n\n var a = this.h[0];\n var b = this.h[1];\n var c = this.h[2];\n var d = this.h[3];\n var e = this.h[4];\n\n for (i = 0; i < W.length; i++) {\n var s = ~~(i / 20);\n var t = sum32_5(rotl32(a, 5), ft_1(s, b, c, d), e, W[i], sha1_K[s]);\n e = d;\n d = c;\n c = rotl32(b, 30);\n b = a;\n a = t;\n }\n\n this.h[0] = sum32(this.h[0], a);\n this.h[1] = sum32(this.h[1], b);\n this.h[2] = sum32(this.h[2], c);\n this.h[3] = sum32(this.h[3], d);\n this.h[4] = sum32(this.h[4], e);\n};\n\nSHA1.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h, 'big');\n else\n return utils.split32(this.h, 'big');\n};\n", "'use strict';\n\nvar utils = require('../utils');\nvar common = require('../common');\nvar shaCommon = require('./common');\nvar assert = require('minimalistic-assert');\n\nvar sum32 = utils.sum32;\nvar sum32_4 = utils.sum32_4;\nvar sum32_5 = utils.sum32_5;\nvar ch32 = shaCommon.ch32;\nvar maj32 = shaCommon.maj32;\nvar s0_256 = shaCommon.s0_256;\nvar s1_256 = shaCommon.s1_256;\nvar g0_256 = shaCommon.g0_256;\nvar g1_256 = shaCommon.g1_256;\n\nvar BlockHash = common.BlockHash;\n\nvar sha256_K = [\n 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5,\n 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5,\n 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3,\n 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174,\n 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc,\n 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,\n 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7,\n 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967,\n 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13,\n 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,\n 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3,\n 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,\n 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5,\n 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3,\n 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208,\n 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2\n];\n\nfunction SHA256() {\n if (!(this instanceof SHA256))\n return new SHA256();\n\n BlockHash.call(this);\n this.h = [\n 0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a,\n 0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19\n ];\n this.k = sha256_K;\n this.W = new Array(64);\n}\nutils.inherits(SHA256, BlockHash);\nmodule.exports = SHA256;\n\nSHA256.blockSize = 512;\nSHA256.outSize = 256;\nSHA256.hmacStrength = 192;\nSHA256.padLength = 64;\n\nSHA256.prototype._update = function _update(msg, start) {\n var W = this.W;\n\n for (var i = 0; i < 16; i++)\n W[i] = msg[start + i];\n for (; i < W.length; i++)\n W[i] = sum32_4(g1_256(W[i - 2]), W[i - 7], g0_256(W[i - 15]), W[i - 16]);\n\n var a = this.h[0];\n var b = this.h[1];\n var c = this.h[2];\n var d = this.h[3];\n var e = this.h[4];\n var f = this.h[5];\n var g = this.h[6];\n var h = this.h[7];\n\n assert(this.k.length === W.length);\n for (i = 0; i < W.length; i++) {\n var T1 = sum32_5(h, s1_256(e), ch32(e, f, g), this.k[i], W[i]);\n var T2 = sum32(s0_256(a), maj32(a, b, c));\n h = g;\n g = f;\n f = e;\n e = sum32(d, T1);\n d = c;\n c = b;\n b = a;\n a = sum32(T1, T2);\n }\n\n this.h[0] = sum32(this.h[0], a);\n this.h[1] = sum32(this.h[1], b);\n this.h[2] = sum32(this.h[2], c);\n this.h[3] = sum32(this.h[3], d);\n this.h[4] = sum32(this.h[4], e);\n this.h[5] = sum32(this.h[5], f);\n this.h[6] = sum32(this.h[6], g);\n this.h[7] = sum32(this.h[7], h);\n};\n\nSHA256.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h, 'big');\n else\n return utils.split32(this.h, 'big');\n};\n", "'use strict';\n\nvar utils = require('../utils');\nvar SHA256 = require('./256');\n\nfunction SHA224() {\n if (!(this instanceof SHA224))\n return new SHA224();\n\n SHA256.call(this);\n this.h = [\n 0xc1059ed8, 0x367cd507, 0x3070dd17, 0xf70e5939,\n 0xffc00b31, 0x68581511, 0x64f98fa7, 0xbefa4fa4 ];\n}\nutils.inherits(SHA224, SHA256);\nmodule.exports = SHA224;\n\nSHA224.blockSize = 512;\nSHA224.outSize = 224;\nSHA224.hmacStrength = 192;\nSHA224.padLength = 64;\n\nSHA224.prototype._digest = function digest(enc) {\n // Just truncate output\n if (enc === 'hex')\n return utils.toHex32(this.h.slice(0, 7), 'big');\n else\n return utils.split32(this.h.slice(0, 7), 'big');\n};\n\n", "'use strict';\n\nvar utils = require('../utils');\nvar common = require('../common');\nvar assert = require('minimalistic-assert');\n\nvar rotr64_hi = utils.rotr64_hi;\nvar rotr64_lo = utils.rotr64_lo;\nvar shr64_hi = utils.shr64_hi;\nvar shr64_lo = utils.shr64_lo;\nvar sum64 = utils.sum64;\nvar sum64_hi = utils.sum64_hi;\nvar sum64_lo = utils.sum64_lo;\nvar sum64_4_hi = utils.sum64_4_hi;\nvar sum64_4_lo = utils.sum64_4_lo;\nvar sum64_5_hi = utils.sum64_5_hi;\nvar sum64_5_lo = utils.sum64_5_lo;\n\nvar BlockHash = common.BlockHash;\n\nvar sha512_K = [\n 0x428a2f98, 0xd728ae22, 0x71374491, 0x23ef65cd,\n 0xb5c0fbcf, 0xec4d3b2f, 0xe9b5dba5, 0x8189dbbc,\n 0x3956c25b, 0xf348b538, 0x59f111f1, 0xb605d019,\n 0x923f82a4, 0xaf194f9b, 0xab1c5ed5, 0xda6d8118,\n 0xd807aa98, 0xa3030242, 0x12835b01, 0x45706fbe,\n 0x243185be, 0x4ee4b28c, 0x550c7dc3, 0xd5ffb4e2,\n 0x72be5d74, 0xf27b896f, 0x80deb1fe, 0x3b1696b1,\n 0x9bdc06a7, 0x25c71235, 0xc19bf174, 0xcf692694,\n 0xe49b69c1, 0x9ef14ad2, 0xefbe4786, 0x384f25e3,\n 0x0fc19dc6, 0x8b8cd5b5, 0x240ca1cc, 0x77ac9c65,\n 0x2de92c6f, 0x592b0275, 0x4a7484aa, 0x6ea6e483,\n 0x5cb0a9dc, 0xbd41fbd4, 0x76f988da, 0x831153b5,\n 0x983e5152, 0xee66dfab, 0xa831c66d, 0x2db43210,\n 0xb00327c8, 0x98fb213f, 0xbf597fc7, 0xbeef0ee4,\n 0xc6e00bf3, 0x3da88fc2, 0xd5a79147, 0x930aa725,\n 0x06ca6351, 0xe003826f, 0x14292967, 0x0a0e6e70,\n 0x27b70a85, 0x46d22ffc, 0x2e1b2138, 0x5c26c926,\n 0x4d2c6dfc, 0x5ac42aed, 0x53380d13, 0x9d95b3df,\n 0x650a7354, 0x8baf63de, 0x766a0abb, 0x3c77b2a8,\n 0x81c2c92e, 0x47edaee6, 0x92722c85, 0x1482353b,\n 0xa2bfe8a1, 0x4cf10364, 0xa81a664b, 0xbc423001,\n 0xc24b8b70, 0xd0f89791, 0xc76c51a3, 0x0654be30,\n 0xd192e819, 0xd6ef5218, 0xd6990624, 0x5565a910,\n 0xf40e3585, 0x5771202a, 0x106aa070, 0x32bbd1b8,\n 0x19a4c116, 0xb8d2d0c8, 0x1e376c08, 0x5141ab53,\n 0x2748774c, 0xdf8eeb99, 0x34b0bcb5, 0xe19b48a8,\n 0x391c0cb3, 0xc5c95a63, 0x4ed8aa4a, 0xe3418acb,\n 0x5b9cca4f, 0x7763e373, 0x682e6ff3, 0xd6b2b8a3,\n 0x748f82ee, 0x5defb2fc, 0x78a5636f, 0x43172f60,\n 0x84c87814, 0xa1f0ab72, 0x8cc70208, 0x1a6439ec,\n 0x90befffa, 0x23631e28, 0xa4506ceb, 0xde82bde9,\n 0xbef9a3f7, 0xb2c67915, 0xc67178f2, 0xe372532b,\n 0xca273ece, 0xea26619c, 0xd186b8c7, 0x21c0c207,\n 0xeada7dd6, 0xcde0eb1e, 0xf57d4f7f, 0xee6ed178,\n 0x06f067aa, 0x72176fba, 0x0a637dc5, 0xa2c898a6,\n 0x113f9804, 0xbef90dae, 0x1b710b35, 0x131c471b,\n 0x28db77f5, 0x23047d84, 0x32caab7b, 0x40c72493,\n 0x3c9ebe0a, 0x15c9bebc, 0x431d67c4, 0x9c100d4c,\n 0x4cc5d4be, 0xcb3e42b6, 0x597f299c, 0xfc657e2a,\n 0x5fcb6fab, 0x3ad6faec, 0x6c44198c, 0x4a475817\n];\n\nfunction SHA512() {\n if (!(this instanceof SHA512))\n return new SHA512();\n\n BlockHash.call(this);\n this.h = [\n 0x6a09e667, 0xf3bcc908,\n 0xbb67ae85, 0x84caa73b,\n 0x3c6ef372, 0xfe94f82b,\n 0xa54ff53a, 0x5f1d36f1,\n 0x510e527f, 0xade682d1,\n 0x9b05688c, 0x2b3e6c1f,\n 0x1f83d9ab, 0xfb41bd6b,\n 0x5be0cd19, 0x137e2179 ];\n this.k = sha512_K;\n this.W = new Array(160);\n}\nutils.inherits(SHA512, BlockHash);\nmodule.exports = SHA512;\n\nSHA512.blockSize = 1024;\nSHA512.outSize = 512;\nSHA512.hmacStrength = 192;\nSHA512.padLength = 128;\n\nSHA512.prototype._prepareBlock = function _prepareBlock(msg, start) {\n var W = this.W;\n\n // 32 x 32bit words\n for (var i = 0; i < 32; i++)\n W[i] = msg[start + i];\n for (; i < W.length; i += 2) {\n var c0_hi = g1_512_hi(W[i - 4], W[i - 3]); // i - 2\n var c0_lo = g1_512_lo(W[i - 4], W[i - 3]);\n var c1_hi = W[i - 14]; // i - 7\n var c1_lo = W[i - 13];\n var c2_hi = g0_512_hi(W[i - 30], W[i - 29]); // i - 15\n var c2_lo = g0_512_lo(W[i - 30], W[i - 29]);\n var c3_hi = W[i - 32]; // i - 16\n var c3_lo = W[i - 31];\n\n W[i] = sum64_4_hi(\n c0_hi, c0_lo,\n c1_hi, c1_lo,\n c2_hi, c2_lo,\n c3_hi, c3_lo);\n W[i + 1] = sum64_4_lo(\n c0_hi, c0_lo,\n c1_hi, c1_lo,\n c2_hi, c2_lo,\n c3_hi, c3_lo);\n }\n};\n\nSHA512.prototype._update = function _update(msg, start) {\n this._prepareBlock(msg, start);\n\n var W = this.W;\n\n var ah = this.h[0];\n var al = this.h[1];\n var bh = this.h[2];\n var bl = this.h[3];\n var ch = this.h[4];\n var cl = this.h[5];\n var dh = this.h[6];\n var dl = this.h[7];\n var eh = this.h[8];\n var el = this.h[9];\n var fh = this.h[10];\n var fl = this.h[11];\n var gh = this.h[12];\n var gl = this.h[13];\n var hh = this.h[14];\n var hl = this.h[15];\n\n assert(this.k.length === W.length);\n for (var i = 0; i < W.length; i += 2) {\n var c0_hi = hh;\n var c0_lo = hl;\n var c1_hi = s1_512_hi(eh, el);\n var c1_lo = s1_512_lo(eh, el);\n var c2_hi = ch64_hi(eh, el, fh, fl, gh, gl);\n var c2_lo = ch64_lo(eh, el, fh, fl, gh, gl);\n var c3_hi = this.k[i];\n var c3_lo = this.k[i + 1];\n var c4_hi = W[i];\n var c4_lo = W[i + 1];\n\n var T1_hi = sum64_5_hi(\n c0_hi, c0_lo,\n c1_hi, c1_lo,\n c2_hi, c2_lo,\n c3_hi, c3_lo,\n c4_hi, c4_lo);\n var T1_lo = sum64_5_lo(\n c0_hi, c0_lo,\n c1_hi, c1_lo,\n c2_hi, c2_lo,\n c3_hi, c3_lo,\n c4_hi, c4_lo);\n\n c0_hi = s0_512_hi(ah, al);\n c0_lo = s0_512_lo(ah, al);\n c1_hi = maj64_hi(ah, al, bh, bl, ch, cl);\n c1_lo = maj64_lo(ah, al, bh, bl, ch, cl);\n\n var T2_hi = sum64_hi(c0_hi, c0_lo, c1_hi, c1_lo);\n var T2_lo = sum64_lo(c0_hi, c0_lo, c1_hi, c1_lo);\n\n hh = gh;\n hl = gl;\n\n gh = fh;\n gl = fl;\n\n fh = eh;\n fl = el;\n\n eh = sum64_hi(dh, dl, T1_hi, T1_lo);\n el = sum64_lo(dl, dl, T1_hi, T1_lo);\n\n dh = ch;\n dl = cl;\n\n ch = bh;\n cl = bl;\n\n bh = ah;\n bl = al;\n\n ah = sum64_hi(T1_hi, T1_lo, T2_hi, T2_lo);\n al = sum64_lo(T1_hi, T1_lo, T2_hi, T2_lo);\n }\n\n sum64(this.h, 0, ah, al);\n sum64(this.h, 2, bh, bl);\n sum64(this.h, 4, ch, cl);\n sum64(this.h, 6, dh, dl);\n sum64(this.h, 8, eh, el);\n sum64(this.h, 10, fh, fl);\n sum64(this.h, 12, gh, gl);\n sum64(this.h, 14, hh, hl);\n};\n\nSHA512.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h, 'big');\n else\n return utils.split32(this.h, 'big');\n};\n\nfunction ch64_hi(xh, xl, yh, yl, zh) {\n var r = (xh & yh) ^ ((~xh) & zh);\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction ch64_lo(xh, xl, yh, yl, zh, zl) {\n var r = (xl & yl) ^ ((~xl) & zl);\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction maj64_hi(xh, xl, yh, yl, zh) {\n var r = (xh & yh) ^ (xh & zh) ^ (yh & zh);\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction maj64_lo(xh, xl, yh, yl, zh, zl) {\n var r = (xl & yl) ^ (xl & zl) ^ (yl & zl);\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction s0_512_hi(xh, xl) {\n var c0_hi = rotr64_hi(xh, xl, 28);\n var c1_hi = rotr64_hi(xl, xh, 2); // 34\n var c2_hi = rotr64_hi(xl, xh, 7); // 39\n\n var r = c0_hi ^ c1_hi ^ c2_hi;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction s0_512_lo(xh, xl) {\n var c0_lo = rotr64_lo(xh, xl, 28);\n var c1_lo = rotr64_lo(xl, xh, 2); // 34\n var c2_lo = rotr64_lo(xl, xh, 7); // 39\n\n var r = c0_lo ^ c1_lo ^ c2_lo;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction s1_512_hi(xh, xl) {\n var c0_hi = rotr64_hi(xh, xl, 14);\n var c1_hi = rotr64_hi(xh, xl, 18);\n var c2_hi = rotr64_hi(xl, xh, 9); // 41\n\n var r = c0_hi ^ c1_hi ^ c2_hi;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction s1_512_lo(xh, xl) {\n var c0_lo = rotr64_lo(xh, xl, 14);\n var c1_lo = rotr64_lo(xh, xl, 18);\n var c2_lo = rotr64_lo(xl, xh, 9); // 41\n\n var r = c0_lo ^ c1_lo ^ c2_lo;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction g0_512_hi(xh, xl) {\n var c0_hi = rotr64_hi(xh, xl, 1);\n var c1_hi = rotr64_hi(xh, xl, 8);\n var c2_hi = shr64_hi(xh, xl, 7);\n\n var r = c0_hi ^ c1_hi ^ c2_hi;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction g0_512_lo(xh, xl) {\n var c0_lo = rotr64_lo(xh, xl, 1);\n var c1_lo = rotr64_lo(xh, xl, 8);\n var c2_lo = shr64_lo(xh, xl, 7);\n\n var r = c0_lo ^ c1_lo ^ c2_lo;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction g1_512_hi(xh, xl) {\n var c0_hi = rotr64_hi(xh, xl, 19);\n var c1_hi = rotr64_hi(xl, xh, 29); // 61\n var c2_hi = shr64_hi(xh, xl, 6);\n\n var r = c0_hi ^ c1_hi ^ c2_hi;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction g1_512_lo(xh, xl) {\n var c0_lo = rotr64_lo(xh, xl, 19);\n var c1_lo = rotr64_lo(xl, xh, 29); // 61\n var c2_lo = shr64_lo(xh, xl, 6);\n\n var r = c0_lo ^ c1_lo ^ c2_lo;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n", "'use strict';\n\nvar utils = require('../utils');\n\nvar SHA512 = require('./512');\n\nfunction SHA384() {\n if (!(this instanceof SHA384))\n return new SHA384();\n\n SHA512.call(this);\n this.h = [\n 0xcbbb9d5d, 0xc1059ed8,\n 0x629a292a, 0x367cd507,\n 0x9159015a, 0x3070dd17,\n 0x152fecd8, 0xf70e5939,\n 0x67332667, 0xffc00b31,\n 0x8eb44a87, 0x68581511,\n 0xdb0c2e0d, 0x64f98fa7,\n 0x47b5481d, 0xbefa4fa4 ];\n}\nutils.inherits(SHA384, SHA512);\nmodule.exports = SHA384;\n\nSHA384.blockSize = 1024;\nSHA384.outSize = 384;\nSHA384.hmacStrength = 192;\nSHA384.padLength = 128;\n\nSHA384.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h.slice(0, 12), 'big');\n else\n return utils.split32(this.h.slice(0, 12), 'big');\n};\n", "'use strict';\n\nexports.sha1 = require('./sha/1');\nexports.sha224 = require('./sha/224');\nexports.sha256 = require('./sha/256');\nexports.sha384 = require('./sha/384');\nexports.sha512 = require('./sha/512');\n", "'use strict';\n\nvar utils = require('./utils');\nvar common = require('./common');\n\nvar rotl32 = utils.rotl32;\nvar sum32 = utils.sum32;\nvar sum32_3 = utils.sum32_3;\nvar sum32_4 = utils.sum32_4;\nvar BlockHash = common.BlockHash;\n\nfunction RIPEMD160() {\n if (!(this instanceof RIPEMD160))\n return new RIPEMD160();\n\n BlockHash.call(this);\n\n this.h = [ 0x67452301, 0xefcdab89, 0x98badcfe, 0x10325476, 0xc3d2e1f0 ];\n this.endian = 'little';\n}\nutils.inherits(RIPEMD160, BlockHash);\nexports.ripemd160 = RIPEMD160;\n\nRIPEMD160.blockSize = 512;\nRIPEMD160.outSize = 160;\nRIPEMD160.hmacStrength = 192;\nRIPEMD160.padLength = 64;\n\nRIPEMD160.prototype._update = function update(msg, start) {\n var A = this.h[0];\n var B = this.h[1];\n var C = this.h[2];\n var D = this.h[3];\n var E = this.h[4];\n var Ah = A;\n var Bh = B;\n var Ch = C;\n var Dh = D;\n var Eh = E;\n for (var j = 0; j < 80; j++) {\n var T = sum32(\n rotl32(\n sum32_4(A, f(j, B, C, D), msg[r[j] + start], K(j)),\n s[j]),\n E);\n A = E;\n E = D;\n D = rotl32(C, 10);\n C = B;\n B = T;\n T = sum32(\n rotl32(\n sum32_4(Ah, f(79 - j, Bh, Ch, Dh), msg[rh[j] + start], Kh(j)),\n sh[j]),\n Eh);\n Ah = Eh;\n Eh = Dh;\n Dh = rotl32(Ch, 10);\n Ch = Bh;\n Bh = T;\n }\n T = sum32_3(this.h[1], C, Dh);\n this.h[1] = sum32_3(this.h[2], D, Eh);\n this.h[2] = sum32_3(this.h[3], E, Ah);\n this.h[3] = sum32_3(this.h[4], A, Bh);\n this.h[4] = sum32_3(this.h[0], B, Ch);\n this.h[0] = T;\n};\n\nRIPEMD160.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h, 'little');\n else\n return utils.split32(this.h, 'little');\n};\n\nfunction f(j, x, y, z) {\n if (j <= 15)\n return x ^ y ^ z;\n else if (j <= 31)\n return (x & y) | ((~x) & z);\n else if (j <= 47)\n return (x | (~y)) ^ z;\n else if (j <= 63)\n return (x & z) | (y & (~z));\n else\n return x ^ (y | (~z));\n}\n\nfunction K(j) {\n if (j <= 15)\n return 0x00000000;\n else if (j <= 31)\n return 0x5a827999;\n else if (j <= 47)\n return 0x6ed9eba1;\n else if (j <= 63)\n return 0x8f1bbcdc;\n else\n return 0xa953fd4e;\n}\n\nfunction Kh(j) {\n if (j <= 15)\n return 0x50a28be6;\n else if (j <= 31)\n return 0x5c4dd124;\n else if (j <= 47)\n return 0x6d703ef3;\n else if (j <= 63)\n return 0x7a6d76e9;\n else\n return 0x00000000;\n}\n\nvar r = [\n 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,\n 7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8,\n 3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11, 5, 12,\n 1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2,\n 4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13\n];\n\nvar rh = [\n 5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12,\n 6, 11, 3, 7, 0, 13, 5, 10, 14, 15, 8, 12, 4, 9, 1, 2,\n 15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0, 4, 13,\n 8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14,\n 12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11\n];\n\nvar s = [\n 11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8,\n 7, 6, 8, 13, 11, 9, 7, 15, 7, 12, 15, 9, 11, 7, 13, 12,\n 11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5, 12, 7, 5,\n 11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12,\n 9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6\n];\n\nvar sh = [\n 8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6,\n 9, 13, 15, 7, 12, 8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11,\n 9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14, 13, 13, 7, 5,\n 15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8,\n 8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11\n];\n", "'use strict';\n\nvar utils = require('./utils');\nvar assert = require('minimalistic-assert');\n\nfunction Hmac(hash, key, enc) {\n if (!(this instanceof Hmac))\n return new Hmac(hash, key, enc);\n this.Hash = hash;\n this.blockSize = hash.blockSize / 8;\n this.outSize = hash.outSize / 8;\n this.inner = null;\n this.outer = null;\n\n this._init(utils.toArray(key, enc));\n}\nmodule.exports = Hmac;\n\nHmac.prototype._init = function init(key) {\n // Shorten key, if needed\n if (key.length > this.blockSize)\n key = new this.Hash().update(key).digest();\n assert(key.length <= this.blockSize);\n\n // Add padding to key\n for (var i = key.length; i < this.blockSize; i++)\n key.push(0);\n\n for (i = 0; i < key.length; i++)\n key[i] ^= 0x36;\n this.inner = new this.Hash().update(key);\n\n // 0x36 ^ 0x5c = 0x6a\n for (i = 0; i < key.length; i++)\n key[i] ^= 0x6a;\n this.outer = new this.Hash().update(key);\n};\n\nHmac.prototype.update = function update(msg, enc) {\n this.inner.update(msg, enc);\n return this;\n};\n\nHmac.prototype.digest = function digest(enc) {\n this.outer.update(this.inner.digest());\n return this.outer.digest(enc);\n};\n", "var hash = exports;\n\nhash.utils = require('./hash/utils');\nhash.common = require('./hash/common');\nhash.sha = require('./hash/sha');\nhash.ripemd = require('./hash/ripemd');\nhash.hmac = require('./hash/hmac');\n\n// Proxy hash functions to the main object\nhash.sha1 = hash.sha.sha1;\nhash.sha256 = hash.sha.sha256;\nhash.sha224 = hash.sha.sha224;\nhash.sha384 = hash.sha.sha384;\nhash.sha512 = hash.sha.sha512;\nhash.ripemd160 = hash.ripemd.ripemd160;\n", "module.exports = {\n doubles: {\n step: 4,\n points: [\n [\n 'e60fce93b59e9ec53011aabc21c23e97b2a31369b87a5ae9c44ee89e2a6dec0a',\n 'f7e3507399e595929db99f34f57937101296891e44d23f0be1f32cce69616821',\n ],\n [\n '8282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508',\n '11f8a8098557dfe45e8256e830b60ace62d613ac2f7b17bed31b6eaff6e26caf',\n ],\n [\n '175e159f728b865a72f99cc6c6fc846de0b93833fd2222ed73fce5b551e5b739',\n 'd3506e0d9e3c79eba4ef97a51ff71f5eacb5955add24345c6efa6ffee9fed695',\n ],\n [\n '363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff4640',\n '4e273adfc732221953b445397f3363145b9a89008199ecb62003c7f3bee9de9',\n ],\n [\n '8b4b5f165df3c2be8c6244b5b745638843e4a781a15bcd1b69f79a55dffdf80c',\n '4aad0a6f68d308b4b3fbd7813ab0da04f9e336546162ee56b3eff0c65fd4fd36',\n ],\n [\n '723cbaa6e5db996d6bf771c00bd548c7b700dbffa6c0e77bcb6115925232fcda',\n '96e867b5595cc498a921137488824d6e2660a0653779494801dc069d9eb39f5f',\n ],\n [\n 'eebfa4d493bebf98ba5feec812c2d3b50947961237a919839a533eca0e7dd7fa',\n '5d9a8ca3970ef0f269ee7edaf178089d9ae4cdc3a711f712ddfd4fdae1de8999',\n ],\n [\n '100f44da696e71672791d0a09b7bde459f1215a29b3c03bfefd7835b39a48db0',\n 'cdd9e13192a00b772ec8f3300c090666b7ff4a18ff5195ac0fbd5cd62bc65a09',\n ],\n [\n 'e1031be262c7ed1b1dc9227a4a04c017a77f8d4464f3b3852c8acde6e534fd2d',\n '9d7061928940405e6bb6a4176597535af292dd419e1ced79a44f18f29456a00d',\n ],\n [\n 'feea6cae46d55b530ac2839f143bd7ec5cf8b266a41d6af52d5e688d9094696d',\n 'e57c6b6c97dce1bab06e4e12bf3ecd5c981c8957cc41442d3155debf18090088',\n ],\n [\n 'da67a91d91049cdcb367be4be6ffca3cfeed657d808583de33fa978bc1ec6cb1',\n '9bacaa35481642bc41f463f7ec9780e5dec7adc508f740a17e9ea8e27a68be1d',\n ],\n [\n '53904faa0b334cdda6e000935ef22151ec08d0f7bb11069f57545ccc1a37b7c0',\n '5bc087d0bc80106d88c9eccac20d3c1c13999981e14434699dcb096b022771c8',\n ],\n [\n '8e7bcd0bd35983a7719cca7764ca906779b53a043a9b8bcaeff959f43ad86047',\n '10b7770b2a3da4b3940310420ca9514579e88e2e47fd68b3ea10047e8460372a',\n ],\n [\n '385eed34c1cdff21e6d0818689b81bde71a7f4f18397e6690a841e1599c43862',\n '283bebc3e8ea23f56701de19e9ebf4576b304eec2086dc8cc0458fe5542e5453',\n ],\n [\n '6f9d9b803ecf191637c73a4413dfa180fddf84a5947fbc9c606ed86c3fac3a7',\n '7c80c68e603059ba69b8e2a30e45c4d47ea4dd2f5c281002d86890603a842160',\n ],\n [\n '3322d401243c4e2582a2147c104d6ecbf774d163db0f5e5313b7e0e742d0e6bd',\n '56e70797e9664ef5bfb019bc4ddaf9b72805f63ea2873af624f3a2e96c28b2a0',\n ],\n [\n '85672c7d2de0b7da2bd1770d89665868741b3f9af7643397721d74d28134ab83',\n '7c481b9b5b43b2eb6374049bfa62c2e5e77f17fcc5298f44c8e3094f790313a6',\n ],\n [\n '948bf809b1988a46b06c9f1919413b10f9226c60f668832ffd959af60c82a0a',\n '53a562856dcb6646dc6b74c5d1c3418c6d4dff08c97cd2bed4cb7f88d8c8e589',\n ],\n [\n '6260ce7f461801c34f067ce0f02873a8f1b0e44dfc69752accecd819f38fd8e8',\n 'bc2da82b6fa5b571a7f09049776a1ef7ecd292238051c198c1a84e95b2b4ae17',\n ],\n [\n 'e5037de0afc1d8d43d8348414bbf4103043ec8f575bfdc432953cc8d2037fa2d',\n '4571534baa94d3b5f9f98d09fb990bddbd5f5b03ec481f10e0e5dc841d755bda',\n ],\n [\n 'e06372b0f4a207adf5ea905e8f1771b4e7e8dbd1c6a6c5b725866a0ae4fce725',\n '7a908974bce18cfe12a27bb2ad5a488cd7484a7787104870b27034f94eee31dd',\n ],\n [\n '213c7a715cd5d45358d0bbf9dc0ce02204b10bdde2a3f58540ad6908d0559754',\n '4b6dad0b5ae462507013ad06245ba190bb4850f5f36a7eeddff2c27534b458f2',\n ],\n [\n '4e7c272a7af4b34e8dbb9352a5419a87e2838c70adc62cddf0cc3a3b08fbd53c',\n '17749c766c9d0b18e16fd09f6def681b530b9614bff7dd33e0b3941817dcaae6',\n ],\n [\n 'fea74e3dbe778b1b10f238ad61686aa5c76e3db2be43057632427e2840fb27b6',\n '6e0568db9b0b13297cf674deccb6af93126b596b973f7b77701d3db7f23cb96f',\n ],\n [\n '76e64113f677cf0e10a2570d599968d31544e179b760432952c02a4417bdde39',\n 'c90ddf8dee4e95cf577066d70681f0d35e2a33d2b56d2032b4b1752d1901ac01',\n ],\n [\n 'c738c56b03b2abe1e8281baa743f8f9a8f7cc643df26cbee3ab150242bcbb891',\n '893fb578951ad2537f718f2eacbfbbbb82314eef7880cfe917e735d9699a84c3',\n ],\n [\n 'd895626548b65b81e264c7637c972877d1d72e5f3a925014372e9f6588f6c14b',\n 'febfaa38f2bc7eae728ec60818c340eb03428d632bb067e179363ed75d7d991f',\n ],\n [\n 'b8da94032a957518eb0f6433571e8761ceffc73693e84edd49150a564f676e03',\n '2804dfa44805a1e4d7c99cc9762808b092cc584d95ff3b511488e4e74efdf6e7',\n ],\n [\n 'e80fea14441fb33a7d8adab9475d7fab2019effb5156a792f1a11778e3c0df5d',\n 'eed1de7f638e00771e89768ca3ca94472d155e80af322ea9fcb4291b6ac9ec78',\n ],\n [\n 'a301697bdfcd704313ba48e51d567543f2a182031efd6915ddc07bbcc4e16070',\n '7370f91cfb67e4f5081809fa25d40f9b1735dbf7c0a11a130c0d1a041e177ea1',\n ],\n [\n '90ad85b389d6b936463f9d0512678de208cc330b11307fffab7ac63e3fb04ed4',\n 'e507a3620a38261affdcbd9427222b839aefabe1582894d991d4d48cb6ef150',\n ],\n [\n '8f68b9d2f63b5f339239c1ad981f162ee88c5678723ea3351b7b444c9ec4c0da',\n '662a9f2dba063986de1d90c2b6be215dbbea2cfe95510bfdf23cbf79501fff82',\n ],\n [\n 'e4f3fb0176af85d65ff99ff9198c36091f48e86503681e3e6686fd5053231e11',\n '1e63633ad0ef4f1c1661a6d0ea02b7286cc7e74ec951d1c9822c38576feb73bc',\n ],\n [\n '8c00fa9b18ebf331eb961537a45a4266c7034f2f0d4e1d0716fb6eae20eae29e',\n 'efa47267fea521a1a9dc343a3736c974c2fadafa81e36c54e7d2a4c66702414b',\n ],\n [\n 'e7a26ce69dd4829f3e10cec0a9e98ed3143d084f308b92c0997fddfc60cb3e41',\n '2a758e300fa7984b471b006a1aafbb18d0a6b2c0420e83e20e8a9421cf2cfd51',\n ],\n [\n 'b6459e0ee3662ec8d23540c223bcbdc571cbcb967d79424f3cf29eb3de6b80ef',\n '67c876d06f3e06de1dadf16e5661db3c4b3ae6d48e35b2ff30bf0b61a71ba45',\n ],\n [\n 'd68a80c8280bb840793234aa118f06231d6f1fc67e73c5a5deda0f5b496943e8',\n 'db8ba9fff4b586d00c4b1f9177b0e28b5b0e7b8f7845295a294c84266b133120',\n ],\n [\n '324aed7df65c804252dc0270907a30b09612aeb973449cea4095980fc28d3d5d',\n '648a365774b61f2ff130c0c35aec1f4f19213b0c7e332843967224af96ab7c84',\n ],\n [\n '4df9c14919cde61f6d51dfdbe5fee5dceec4143ba8d1ca888e8bd373fd054c96',\n '35ec51092d8728050974c23a1d85d4b5d506cdc288490192ebac06cad10d5d',\n ],\n [\n '9c3919a84a474870faed8a9c1cc66021523489054d7f0308cbfc99c8ac1f98cd',\n 'ddb84f0f4a4ddd57584f044bf260e641905326f76c64c8e6be7e5e03d4fc599d',\n ],\n [\n '6057170b1dd12fdf8de05f281d8e06bb91e1493a8b91d4cc5a21382120a959e5',\n '9a1af0b26a6a4807add9a2daf71df262465152bc3ee24c65e899be932385a2a8',\n ],\n [\n 'a576df8e23a08411421439a4518da31880cef0fba7d4df12b1a6973eecb94266',\n '40a6bf20e76640b2c92b97afe58cd82c432e10a7f514d9f3ee8be11ae1b28ec8',\n ],\n [\n '7778a78c28dec3e30a05fe9629de8c38bb30d1f5cf9a3a208f763889be58ad71',\n '34626d9ab5a5b22ff7098e12f2ff580087b38411ff24ac563b513fc1fd9f43ac',\n ],\n [\n '928955ee637a84463729fd30e7afd2ed5f96274e5ad7e5cb09eda9c06d903ac',\n 'c25621003d3f42a827b78a13093a95eeac3d26efa8a8d83fc5180e935bcd091f',\n ],\n [\n '85d0fef3ec6db109399064f3a0e3b2855645b4a907ad354527aae75163d82751',\n '1f03648413a38c0be29d496e582cf5663e8751e96877331582c237a24eb1f962',\n ],\n [\n 'ff2b0dce97eece97c1c9b6041798b85dfdfb6d8882da20308f5404824526087e',\n '493d13fef524ba188af4c4dc54d07936c7b7ed6fb90e2ceb2c951e01f0c29907',\n ],\n [\n '827fbbe4b1e880ea9ed2b2e6301b212b57f1ee148cd6dd28780e5e2cf856e241',\n 'c60f9c923c727b0b71bef2c67d1d12687ff7a63186903166d605b68baec293ec',\n ],\n [\n 'eaa649f21f51bdbae7be4ae34ce6e5217a58fdce7f47f9aa7f3b58fa2120e2b3',\n 'be3279ed5bbbb03ac69a80f89879aa5a01a6b965f13f7e59d47a5305ba5ad93d',\n ],\n [\n 'e4a42d43c5cf169d9391df6decf42ee541b6d8f0c9a137401e23632dda34d24f',\n '4d9f92e716d1c73526fc99ccfb8ad34ce886eedfa8d8e4f13a7f7131deba9414',\n ],\n [\n '1ec80fef360cbdd954160fadab352b6b92b53576a88fea4947173b9d4300bf19',\n 'aeefe93756b5340d2f3a4958a7abbf5e0146e77f6295a07b671cdc1cc107cefd',\n ],\n [\n '146a778c04670c2f91b00af4680dfa8bce3490717d58ba889ddb5928366642be',\n 'b318e0ec3354028add669827f9d4b2870aaa971d2f7e5ed1d0b297483d83efd0',\n ],\n [\n 'fa50c0f61d22e5f07e3acebb1aa07b128d0012209a28b9776d76a8793180eef9',\n '6b84c6922397eba9b72cd2872281a68a5e683293a57a213b38cd8d7d3f4f2811',\n ],\n [\n 'da1d61d0ca721a11b1a5bf6b7d88e8421a288ab5d5bba5220e53d32b5f067ec2',\n '8157f55a7c99306c79c0766161c91e2966a73899d279b48a655fba0f1ad836f1',\n ],\n [\n 'a8e282ff0c9706907215ff98e8fd416615311de0446f1e062a73b0610d064e13',\n '7f97355b8db81c09abfb7f3c5b2515888b679a3e50dd6bd6cef7c73111f4cc0c',\n ],\n [\n '174a53b9c9a285872d39e56e6913cab15d59b1fa512508c022f382de8319497c',\n 'ccc9dc37abfc9c1657b4155f2c47f9e6646b3a1d8cb9854383da13ac079afa73',\n ],\n [\n '959396981943785c3d3e57edf5018cdbe039e730e4918b3d884fdff09475b7ba',\n '2e7e552888c331dd8ba0386a4b9cd6849c653f64c8709385e9b8abf87524f2fd',\n ],\n [\n 'd2a63a50ae401e56d645a1153b109a8fcca0a43d561fba2dbb51340c9d82b151',\n 'e82d86fb6443fcb7565aee58b2948220a70f750af484ca52d4142174dcf89405',\n ],\n [\n '64587e2335471eb890ee7896d7cfdc866bacbdbd3839317b3436f9b45617e073',\n 'd99fcdd5bf6902e2ae96dd6447c299a185b90a39133aeab358299e5e9faf6589',\n ],\n [\n '8481bde0e4e4d885b3a546d3e549de042f0aa6cea250e7fd358d6c86dd45e458',\n '38ee7b8cba5404dd84a25bf39cecb2ca900a79c42b262e556d64b1b59779057e',\n ],\n [\n '13464a57a78102aa62b6979ae817f4637ffcfed3c4b1ce30bcd6303f6caf666b',\n '69be159004614580ef7e433453ccb0ca48f300a81d0942e13f495a907f6ecc27',\n ],\n [\n 'bc4a9df5b713fe2e9aef430bcc1dc97a0cd9ccede2f28588cada3a0d2d83f366',\n 'd3a81ca6e785c06383937adf4b798caa6e8a9fbfa547b16d758d666581f33c1',\n ],\n [\n '8c28a97bf8298bc0d23d8c749452a32e694b65e30a9472a3954ab30fe5324caa',\n '40a30463a3305193378fedf31f7cc0eb7ae784f0451cb9459e71dc73cbef9482',\n ],\n [\n '8ea9666139527a8c1dd94ce4f071fd23c8b350c5a4bb33748c4ba111faccae0',\n '620efabbc8ee2782e24e7c0cfb95c5d735b783be9cf0f8e955af34a30e62b945',\n ],\n [\n 'dd3625faef5ba06074669716bbd3788d89bdde815959968092f76cc4eb9a9787',\n '7a188fa3520e30d461da2501045731ca941461982883395937f68d00c644a573',\n ],\n [\n 'f710d79d9eb962297e4f6232b40e8f7feb2bc63814614d692c12de752408221e',\n 'ea98e67232d3b3295d3b535532115ccac8612c721851617526ae47a9c77bfc82',\n ],\n ],\n },\n naf: {\n wnd: 7,\n points: [\n [\n 'f9308a019258c31049344f85f89d5229b531c845836f99b08601f113bce036f9',\n '388f7b0f632de8140fe337e62a37f3566500a99934c2231b6cb9fd7584b8e672',\n ],\n [\n '2f8bde4d1a07209355b4a7250a5c5128e88b84bddc619ab7cba8d569b240efe4',\n 'd8ac222636e5e3d6d4dba9dda6c9c426f788271bab0d6840dca87d3aa6ac62d6',\n ],\n [\n '5cbdf0646e5db4eaa398f365f2ea7a0e3d419b7e0330e39ce92bddedcac4f9bc',\n '6aebca40ba255960a3178d6d861a54dba813d0b813fde7b5a5082628087264da',\n ],\n [\n 'acd484e2f0c7f65309ad178a9f559abde09796974c57e714c35f110dfc27ccbe',\n 'cc338921b0a7d9fd64380971763b61e9add888a4375f8e0f05cc262ac64f9c37',\n ],\n [\n '774ae7f858a9411e5ef4246b70c65aac5649980be5c17891bbec17895da008cb',\n 'd984a032eb6b5e190243dd56d7b7b365372db1e2dff9d6a8301d74c9c953c61b',\n ],\n [\n 'f28773c2d975288bc7d1d205c3748651b075fbc6610e58cddeeddf8f19405aa8',\n 'ab0902e8d880a89758212eb65cdaf473a1a06da521fa91f29b5cb52db03ed81',\n ],\n [\n 'd7924d4f7d43ea965a465ae3095ff41131e5946f3c85f79e44adbcf8e27e080e',\n '581e2872a86c72a683842ec228cc6defea40af2bd896d3a5c504dc9ff6a26b58',\n ],\n [\n 'defdea4cdb677750a420fee807eacf21eb9898ae79b9768766e4faa04a2d4a34',\n '4211ab0694635168e997b0ead2a93daeced1f4a04a95c0f6cfb199f69e56eb77',\n ],\n [\n '2b4ea0a797a443d293ef5cff444f4979f06acfebd7e86d277475656138385b6c',\n '85e89bc037945d93b343083b5a1c86131a01f60c50269763b570c854e5c09b7a',\n ],\n [\n '352bbf4a4cdd12564f93fa332ce333301d9ad40271f8107181340aef25be59d5',\n '321eb4075348f534d59c18259dda3e1f4a1b3b2e71b1039c67bd3d8bcf81998c',\n ],\n [\n '2fa2104d6b38d11b0230010559879124e42ab8dfeff5ff29dc9cdadd4ecacc3f',\n '2de1068295dd865b64569335bd5dd80181d70ecfc882648423ba76b532b7d67',\n ],\n [\n '9248279b09b4d68dab21a9b066edda83263c3d84e09572e269ca0cd7f5453714',\n '73016f7bf234aade5d1aa71bdea2b1ff3fc0de2a887912ffe54a32ce97cb3402',\n ],\n [\n 'daed4f2be3a8bf278e70132fb0beb7522f570e144bf615c07e996d443dee8729',\n 'a69dce4a7d6c98e8d4a1aca87ef8d7003f83c230f3afa726ab40e52290be1c55',\n ],\n [\n 'c44d12c7065d812e8acf28d7cbb19f9011ecd9e9fdf281b0e6a3b5e87d22e7db',\n '2119a460ce326cdc76c45926c982fdac0e106e861edf61c5a039063f0e0e6482',\n ],\n [\n '6a245bf6dc698504c89a20cfded60853152b695336c28063b61c65cbd269e6b4',\n 'e022cf42c2bd4a708b3f5126f16a24ad8b33ba48d0423b6efd5e6348100d8a82',\n ],\n [\n '1697ffa6fd9de627c077e3d2fe541084ce13300b0bec1146f95ae57f0d0bd6a5',\n 'b9c398f186806f5d27561506e4557433a2cf15009e498ae7adee9d63d01b2396',\n ],\n [\n '605bdb019981718b986d0f07e834cb0d9deb8360ffb7f61df982345ef27a7479',\n '2972d2de4f8d20681a78d93ec96fe23c26bfae84fb14db43b01e1e9056b8c49',\n ],\n [\n '62d14dab4150bf497402fdc45a215e10dcb01c354959b10cfe31c7e9d87ff33d',\n '80fc06bd8cc5b01098088a1950eed0db01aa132967ab472235f5642483b25eaf',\n ],\n [\n '80c60ad0040f27dade5b4b06c408e56b2c50e9f56b9b8b425e555c2f86308b6f',\n '1c38303f1cc5c30f26e66bad7fe72f70a65eed4cbe7024eb1aa01f56430bd57a',\n ],\n [\n '7a9375ad6167ad54aa74c6348cc54d344cc5dc9487d847049d5eabb0fa03c8fb',\n 'd0e3fa9eca8726909559e0d79269046bdc59ea10c70ce2b02d499ec224dc7f7',\n ],\n [\n 'd528ecd9b696b54c907a9ed045447a79bb408ec39b68df504bb51f459bc3ffc9',\n 'eecf41253136e5f99966f21881fd656ebc4345405c520dbc063465b521409933',\n ],\n [\n '49370a4b5f43412ea25f514e8ecdad05266115e4a7ecb1387231808f8b45963',\n '758f3f41afd6ed428b3081b0512fd62a54c3f3afbb5b6764b653052a12949c9a',\n ],\n [\n '77f230936ee88cbbd73df930d64702ef881d811e0e1498e2f1c13eb1fc345d74',\n '958ef42a7886b6400a08266e9ba1b37896c95330d97077cbbe8eb3c7671c60d6',\n ],\n [\n 'f2dac991cc4ce4b9ea44887e5c7c0bce58c80074ab9d4dbaeb28531b7739f530',\n 'e0dedc9b3b2f8dad4da1f32dec2531df9eb5fbeb0598e4fd1a117dba703a3c37',\n ],\n [\n '463b3d9f662621fb1b4be8fbbe2520125a216cdfc9dae3debcba4850c690d45b',\n '5ed430d78c296c3543114306dd8622d7c622e27c970a1de31cb377b01af7307e',\n ],\n [\n 'f16f804244e46e2a09232d4aff3b59976b98fac14328a2d1a32496b49998f247',\n 'cedabd9b82203f7e13d206fcdf4e33d92a6c53c26e5cce26d6579962c4e31df6',\n ],\n [\n 'caf754272dc84563b0352b7a14311af55d245315ace27c65369e15f7151d41d1',\n 'cb474660ef35f5f2a41b643fa5e460575f4fa9b7962232a5c32f908318a04476',\n ],\n [\n '2600ca4b282cb986f85d0f1709979d8b44a09c07cb86d7c124497bc86f082120',\n '4119b88753c15bd6a693b03fcddbb45d5ac6be74ab5f0ef44b0be9475a7e4b40',\n ],\n [\n '7635ca72d7e8432c338ec53cd12220bc01c48685e24f7dc8c602a7746998e435',\n '91b649609489d613d1d5e590f78e6d74ecfc061d57048bad9e76f302c5b9c61',\n ],\n [\n '754e3239f325570cdbbf4a87deee8a66b7f2b33479d468fbc1a50743bf56cc18',\n '673fb86e5bda30fb3cd0ed304ea49a023ee33d0197a695d0c5d98093c536683',\n ],\n [\n 'e3e6bd1071a1e96aff57859c82d570f0330800661d1c952f9fe2694691d9b9e8',\n '59c9e0bba394e76f40c0aa58379a3cb6a5a2283993e90c4167002af4920e37f5',\n ],\n [\n '186b483d056a033826ae73d88f732985c4ccb1f32ba35f4b4cc47fdcf04aa6eb',\n '3b952d32c67cf77e2e17446e204180ab21fb8090895138b4a4a797f86e80888b',\n ],\n [\n 'df9d70a6b9876ce544c98561f4be4f725442e6d2b737d9c91a8321724ce0963f',\n '55eb2dafd84d6ccd5f862b785dc39d4ab157222720ef9da217b8c45cf2ba2417',\n ],\n [\n '5edd5cc23c51e87a497ca815d5dce0f8ab52554f849ed8995de64c5f34ce7143',\n 'efae9c8dbc14130661e8cec030c89ad0c13c66c0d17a2905cdc706ab7399a868',\n ],\n [\n '290798c2b6476830da12fe02287e9e777aa3fba1c355b17a722d362f84614fba',\n 'e38da76dcd440621988d00bcf79af25d5b29c094db2a23146d003afd41943e7a',\n ],\n [\n 'af3c423a95d9f5b3054754efa150ac39cd29552fe360257362dfdecef4053b45',\n 'f98a3fd831eb2b749a93b0e6f35cfb40c8cd5aa667a15581bc2feded498fd9c6',\n ],\n [\n '766dbb24d134e745cccaa28c99bf274906bb66b26dcf98df8d2fed50d884249a',\n '744b1152eacbe5e38dcc887980da38b897584a65fa06cedd2c924f97cbac5996',\n ],\n [\n '59dbf46f8c94759ba21277c33784f41645f7b44f6c596a58ce92e666191abe3e',\n 'c534ad44175fbc300f4ea6ce648309a042ce739a7919798cd85e216c4a307f6e',\n ],\n [\n 'f13ada95103c4537305e691e74e9a4a8dd647e711a95e73cb62dc6018cfd87b8',\n 'e13817b44ee14de663bf4bc808341f326949e21a6a75c2570778419bdaf5733d',\n ],\n [\n '7754b4fa0e8aced06d4167a2c59cca4cda1869c06ebadfb6488550015a88522c',\n '30e93e864e669d82224b967c3020b8fa8d1e4e350b6cbcc537a48b57841163a2',\n ],\n [\n '948dcadf5990e048aa3874d46abef9d701858f95de8041d2a6828c99e2262519',\n 'e491a42537f6e597d5d28a3224b1bc25df9154efbd2ef1d2cbba2cae5347d57e',\n ],\n [\n '7962414450c76c1689c7b48f8202ec37fb224cf5ac0bfa1570328a8a3d7c77ab',\n '100b610ec4ffb4760d5c1fc133ef6f6b12507a051f04ac5760afa5b29db83437',\n ],\n [\n '3514087834964b54b15b160644d915485a16977225b8847bb0dd085137ec47ca',\n 'ef0afbb2056205448e1652c48e8127fc6039e77c15c2378b7e7d15a0de293311',\n ],\n [\n 'd3cc30ad6b483e4bc79ce2c9dd8bc54993e947eb8df787b442943d3f7b527eaf',\n '8b378a22d827278d89c5e9be8f9508ae3c2ad46290358630afb34db04eede0a4',\n ],\n [\n '1624d84780732860ce1c78fcbfefe08b2b29823db913f6493975ba0ff4847610',\n '68651cf9b6da903e0914448c6cd9d4ca896878f5282be4c8cc06e2a404078575',\n ],\n [\n '733ce80da955a8a26902c95633e62a985192474b5af207da6df7b4fd5fc61cd4',\n 'f5435a2bd2badf7d485a4d8b8db9fcce3e1ef8e0201e4578c54673bc1dc5ea1d',\n ],\n [\n '15d9441254945064cf1a1c33bbd3b49f8966c5092171e699ef258dfab81c045c',\n 'd56eb30b69463e7234f5137b73b84177434800bacebfc685fc37bbe9efe4070d',\n ],\n [\n 'a1d0fcf2ec9de675b612136e5ce70d271c21417c9d2b8aaaac138599d0717940',\n 'edd77f50bcb5a3cab2e90737309667f2641462a54070f3d519212d39c197a629',\n ],\n [\n 'e22fbe15c0af8ccc5780c0735f84dbe9a790badee8245c06c7ca37331cb36980',\n 'a855babad5cd60c88b430a69f53a1a7a38289154964799be43d06d77d31da06',\n ],\n [\n '311091dd9860e8e20ee13473c1155f5f69635e394704eaa74009452246cfa9b3',\n '66db656f87d1f04fffd1f04788c06830871ec5a64feee685bd80f0b1286d8374',\n ],\n [\n '34c1fd04d301be89b31c0442d3e6ac24883928b45a9340781867d4232ec2dbdf',\n '9414685e97b1b5954bd46f730174136d57f1ceeb487443dc5321857ba73abee',\n ],\n [\n 'f219ea5d6b54701c1c14de5b557eb42a8d13f3abbcd08affcc2a5e6b049b8d63',\n '4cb95957e83d40b0f73af4544cccf6b1f4b08d3c07b27fb8d8c2962a400766d1',\n ],\n [\n 'd7b8740f74a8fbaab1f683db8f45de26543a5490bca627087236912469a0b448',\n 'fa77968128d9c92ee1010f337ad4717eff15db5ed3c049b3411e0315eaa4593b',\n ],\n [\n '32d31c222f8f6f0ef86f7c98d3a3335ead5bcd32abdd94289fe4d3091aa824bf',\n '5f3032f5892156e39ccd3d7915b9e1da2e6dac9e6f26e961118d14b8462e1661',\n ],\n [\n '7461f371914ab32671045a155d9831ea8793d77cd59592c4340f86cbc18347b5',\n '8ec0ba238b96bec0cbdddcae0aa442542eee1ff50c986ea6b39847b3cc092ff6',\n ],\n [\n 'ee079adb1df1860074356a25aa38206a6d716b2c3e67453d287698bad7b2b2d6',\n '8dc2412aafe3be5c4c5f37e0ecc5f9f6a446989af04c4e25ebaac479ec1c8c1e',\n ],\n [\n '16ec93e447ec83f0467b18302ee620f7e65de331874c9dc72bfd8616ba9da6b5',\n '5e4631150e62fb40d0e8c2a7ca5804a39d58186a50e497139626778e25b0674d',\n ],\n [\n 'eaa5f980c245f6f038978290afa70b6bd8855897f98b6aa485b96065d537bd99',\n 'f65f5d3e292c2e0819a528391c994624d784869d7e6ea67fb18041024edc07dc',\n ],\n [\n '78c9407544ac132692ee1910a02439958ae04877151342ea96c4b6b35a49f51',\n 'f3e0319169eb9b85d5404795539a5e68fa1fbd583c064d2462b675f194a3ddb4',\n ],\n [\n '494f4be219a1a77016dcd838431aea0001cdc8ae7a6fc688726578d9702857a5',\n '42242a969283a5f339ba7f075e36ba2af925ce30d767ed6e55f4b031880d562c',\n ],\n [\n 'a598a8030da6d86c6bc7f2f5144ea549d28211ea58faa70ebf4c1e665c1fe9b5',\n '204b5d6f84822c307e4b4a7140737aec23fc63b65b35f86a10026dbd2d864e6b',\n ],\n [\n 'c41916365abb2b5d09192f5f2dbeafec208f020f12570a184dbadc3e58595997',\n '4f14351d0087efa49d245b328984989d5caf9450f34bfc0ed16e96b58fa9913',\n ],\n [\n '841d6063a586fa475a724604da03bc5b92a2e0d2e0a36acfe4c73a5514742881',\n '73867f59c0659e81904f9a1c7543698e62562d6744c169ce7a36de01a8d6154',\n ],\n [\n '5e95bb399a6971d376026947f89bde2f282b33810928be4ded112ac4d70e20d5',\n '39f23f366809085beebfc71181313775a99c9aed7d8ba38b161384c746012865',\n ],\n [\n '36e4641a53948fd476c39f8a99fd974e5ec07564b5315d8bf99471bca0ef2f66',\n 'd2424b1b1abe4eb8164227b085c9aa9456ea13493fd563e06fd51cf5694c78fc',\n ],\n [\n '336581ea7bfbbb290c191a2f507a41cf5643842170e914faeab27c2c579f726',\n 'ead12168595fe1be99252129b6e56b3391f7ab1410cd1e0ef3dcdcabd2fda224',\n ],\n [\n '8ab89816dadfd6b6a1f2634fcf00ec8403781025ed6890c4849742706bd43ede',\n '6fdcef09f2f6d0a044e654aef624136f503d459c3e89845858a47a9129cdd24e',\n ],\n [\n '1e33f1a746c9c5778133344d9299fcaa20b0938e8acff2544bb40284b8c5fb94',\n '60660257dd11b3aa9c8ed618d24edff2306d320f1d03010e33a7d2057f3b3b6',\n ],\n [\n '85b7c1dcb3cec1b7ee7f30ded79dd20a0ed1f4cc18cbcfcfa410361fd8f08f31',\n '3d98a9cdd026dd43f39048f25a8847f4fcafad1895d7a633c6fed3c35e999511',\n ],\n [\n '29df9fbd8d9e46509275f4b125d6d45d7fbe9a3b878a7af872a2800661ac5f51',\n 'b4c4fe99c775a606e2d8862179139ffda61dc861c019e55cd2876eb2a27d84b',\n ],\n [\n 'a0b1cae06b0a847a3fea6e671aaf8adfdfe58ca2f768105c8082b2e449fce252',\n 'ae434102edde0958ec4b19d917a6a28e6b72da1834aff0e650f049503a296cf2',\n ],\n [\n '4e8ceafb9b3e9a136dc7ff67e840295b499dfb3b2133e4ba113f2e4c0e121e5',\n 'cf2174118c8b6d7a4b48f6d534ce5c79422c086a63460502b827ce62a326683c',\n ],\n [\n 'd24a44e047e19b6f5afb81c7ca2f69080a5076689a010919f42725c2b789a33b',\n '6fb8d5591b466f8fc63db50f1c0f1c69013f996887b8244d2cdec417afea8fa3',\n ],\n [\n 'ea01606a7a6c9cdd249fdfcfacb99584001edd28abbab77b5104e98e8e3b35d4',\n '322af4908c7312b0cfbfe369f7a7b3cdb7d4494bc2823700cfd652188a3ea98d',\n ],\n [\n 'af8addbf2b661c8a6c6328655eb96651252007d8c5ea31be4ad196de8ce2131f',\n '6749e67c029b85f52a034eafd096836b2520818680e26ac8f3dfbcdb71749700',\n ],\n [\n 'e3ae1974566ca06cc516d47e0fb165a674a3dabcfca15e722f0e3450f45889',\n '2aeabe7e4531510116217f07bf4d07300de97e4874f81f533420a72eeb0bd6a4',\n ],\n [\n '591ee355313d99721cf6993ffed1e3e301993ff3ed258802075ea8ced397e246',\n 'b0ea558a113c30bea60fc4775460c7901ff0b053d25ca2bdeee98f1a4be5d196',\n ],\n [\n '11396d55fda54c49f19aa97318d8da61fa8584e47b084945077cf03255b52984',\n '998c74a8cd45ac01289d5833a7beb4744ff536b01b257be4c5767bea93ea57a4',\n ],\n [\n '3c5d2a1ba39c5a1790000738c9e0c40b8dcdfd5468754b6405540157e017aa7a',\n 'b2284279995a34e2f9d4de7396fc18b80f9b8b9fdd270f6661f79ca4c81bd257',\n ],\n [\n 'cc8704b8a60a0defa3a99a7299f2e9c3fbc395afb04ac078425ef8a1793cc030',\n 'bdd46039feed17881d1e0862db347f8cf395b74fc4bcdc4e940b74e3ac1f1b13',\n ],\n [\n 'c533e4f7ea8555aacd9777ac5cad29b97dd4defccc53ee7ea204119b2889b197',\n '6f0a256bc5efdf429a2fb6242f1a43a2d9b925bb4a4b3a26bb8e0f45eb596096',\n ],\n [\n 'c14f8f2ccb27d6f109f6d08d03cc96a69ba8c34eec07bbcf566d48e33da6593',\n 'c359d6923bb398f7fd4473e16fe1c28475b740dd098075e6c0e8649113dc3a38',\n ],\n [\n 'a6cbc3046bc6a450bac24789fa17115a4c9739ed75f8f21ce441f72e0b90e6ef',\n '21ae7f4680e889bb130619e2c0f95a360ceb573c70603139862afd617fa9b9f',\n ],\n [\n '347d6d9a02c48927ebfb86c1359b1caf130a3c0267d11ce6344b39f99d43cc38',\n '60ea7f61a353524d1c987f6ecec92f086d565ab687870cb12689ff1e31c74448',\n ],\n [\n 'da6545d2181db8d983f7dcb375ef5866d47c67b1bf31c8cf855ef7437b72656a',\n '49b96715ab6878a79e78f07ce5680c5d6673051b4935bd897fea824b77dc208a',\n ],\n [\n 'c40747cc9d012cb1a13b8148309c6de7ec25d6945d657146b9d5994b8feb1111',\n '5ca560753be2a12fc6de6caf2cb489565db936156b9514e1bb5e83037e0fa2d4',\n ],\n [\n '4e42c8ec82c99798ccf3a610be870e78338c7f713348bd34c8203ef4037f3502',\n '7571d74ee5e0fb92a7a8b33a07783341a5492144cc54bcc40a94473693606437',\n ],\n [\n '3775ab7089bc6af823aba2e1af70b236d251cadb0c86743287522a1b3b0dedea',\n 'be52d107bcfa09d8bcb9736a828cfa7fac8db17bf7a76a2c42ad961409018cf7',\n ],\n [\n 'cee31cbf7e34ec379d94fb814d3d775ad954595d1314ba8846959e3e82f74e26',\n '8fd64a14c06b589c26b947ae2bcf6bfa0149ef0be14ed4d80f448a01c43b1c6d',\n ],\n [\n 'b4f9eaea09b6917619f6ea6a4eb5464efddb58fd45b1ebefcdc1a01d08b47986',\n '39e5c9925b5a54b07433a4f18c61726f8bb131c012ca542eb24a8ac07200682a',\n ],\n [\n 'd4263dfc3d2df923a0179a48966d30ce84e2515afc3dccc1b77907792ebcc60e',\n '62dfaf07a0f78feb30e30d6295853ce189e127760ad6cf7fae164e122a208d54',\n ],\n [\n '48457524820fa65a4f8d35eb6930857c0032acc0a4a2de422233eeda897612c4',\n '25a748ab367979d98733c38a1fa1c2e7dc6cc07db2d60a9ae7a76aaa49bd0f77',\n ],\n [\n 'dfeeef1881101f2cb11644f3a2afdfc2045e19919152923f367a1767c11cceda',\n 'ecfb7056cf1de042f9420bab396793c0c390bde74b4bbdff16a83ae09a9a7517',\n ],\n [\n '6d7ef6b17543f8373c573f44e1f389835d89bcbc6062ced36c82df83b8fae859',\n 'cd450ec335438986dfefa10c57fea9bcc521a0959b2d80bbf74b190dca712d10',\n ],\n [\n 'e75605d59102a5a2684500d3b991f2e3f3c88b93225547035af25af66e04541f',\n 'f5c54754a8f71ee540b9b48728473e314f729ac5308b06938360990e2bfad125',\n ],\n [\n 'eb98660f4c4dfaa06a2be453d5020bc99a0c2e60abe388457dd43fefb1ed620c',\n '6cb9a8876d9cb8520609af3add26cd20a0a7cd8a9411131ce85f44100099223e',\n ],\n [\n '13e87b027d8514d35939f2e6892b19922154596941888336dc3563e3b8dba942',\n 'fef5a3c68059a6dec5d624114bf1e91aac2b9da568d6abeb2570d55646b8adf1',\n ],\n [\n 'ee163026e9fd6fe017c38f06a5be6fc125424b371ce2708e7bf4491691e5764a',\n '1acb250f255dd61c43d94ccc670d0f58f49ae3fa15b96623e5430da0ad6c62b2',\n ],\n [\n 'b268f5ef9ad51e4d78de3a750c2dc89b1e626d43505867999932e5db33af3d80',\n '5f310d4b3c99b9ebb19f77d41c1dee018cf0d34fd4191614003e945a1216e423',\n ],\n [\n 'ff07f3118a9df035e9fad85eb6c7bfe42b02f01ca99ceea3bf7ffdba93c4750d',\n '438136d603e858a3a5c440c38eccbaddc1d2942114e2eddd4740d098ced1f0d8',\n ],\n [\n '8d8b9855c7c052a34146fd20ffb658bea4b9f69e0d825ebec16e8c3ce2b526a1',\n 'cdb559eedc2d79f926baf44fb84ea4d44bcf50fee51d7ceb30e2e7f463036758',\n ],\n [\n '52db0b5384dfbf05bfa9d472d7ae26dfe4b851ceca91b1eba54263180da32b63',\n 'c3b997d050ee5d423ebaf66a6db9f57b3180c902875679de924b69d84a7b375',\n ],\n [\n 'e62f9490d3d51da6395efd24e80919cc7d0f29c3f3fa48c6fff543becbd43352',\n '6d89ad7ba4876b0b22c2ca280c682862f342c8591f1daf5170e07bfd9ccafa7d',\n ],\n [\n '7f30ea2476b399b4957509c88f77d0191afa2ff5cb7b14fd6d8e7d65aaab1193',\n 'ca5ef7d4b231c94c3b15389a5f6311e9daff7bb67b103e9880ef4bff637acaec',\n ],\n [\n '5098ff1e1d9f14fb46a210fada6c903fef0fb7b4a1dd1d9ac60a0361800b7a00',\n '9731141d81fc8f8084d37c6e7542006b3ee1b40d60dfe5362a5b132fd17ddc0',\n ],\n [\n '32b78c7de9ee512a72895be6b9cbefa6e2f3c4ccce445c96b9f2c81e2778ad58',\n 'ee1849f513df71e32efc3896ee28260c73bb80547ae2275ba497237794c8753c',\n ],\n [\n 'e2cb74fddc8e9fbcd076eef2a7c72b0ce37d50f08269dfc074b581550547a4f7',\n 'd3aa2ed71c9dd2247a62df062736eb0baddea9e36122d2be8641abcb005cc4a4',\n ],\n [\n '8438447566d4d7bedadc299496ab357426009a35f235cb141be0d99cd10ae3a8',\n 'c4e1020916980a4da5d01ac5e6ad330734ef0d7906631c4f2390426b2edd791f',\n ],\n [\n '4162d488b89402039b584c6fc6c308870587d9c46f660b878ab65c82c711d67e',\n '67163e903236289f776f22c25fb8a3afc1732f2b84b4e95dbda47ae5a0852649',\n ],\n [\n '3fad3fa84caf0f34f0f89bfd2dcf54fc175d767aec3e50684f3ba4a4bf5f683d',\n 'cd1bc7cb6cc407bb2f0ca647c718a730cf71872e7d0d2a53fa20efcdfe61826',\n ],\n [\n '674f2600a3007a00568c1a7ce05d0816c1fb84bf1370798f1c69532faeb1a86b',\n '299d21f9413f33b3edf43b257004580b70db57da0b182259e09eecc69e0d38a5',\n ],\n [\n 'd32f4da54ade74abb81b815ad1fb3b263d82d6c692714bcff87d29bd5ee9f08f',\n 'f9429e738b8e53b968e99016c059707782e14f4535359d582fc416910b3eea87',\n ],\n [\n '30e4e670435385556e593657135845d36fbb6931f72b08cb1ed954f1e3ce3ff6',\n '462f9bce619898638499350113bbc9b10a878d35da70740dc695a559eb88db7b',\n ],\n [\n 'be2062003c51cc3004682904330e4dee7f3dcd10b01e580bf1971b04d4cad297',\n '62188bc49d61e5428573d48a74e1c655b1c61090905682a0d5558ed72dccb9bc',\n ],\n [\n '93144423ace3451ed29e0fb9ac2af211cb6e84a601df5993c419859fff5df04a',\n '7c10dfb164c3425f5c71a3f9d7992038f1065224f72bb9d1d902a6d13037b47c',\n ],\n [\n 'b015f8044f5fcbdcf21ca26d6c34fb8197829205c7b7d2a7cb66418c157b112c',\n 'ab8c1e086d04e813744a655b2df8d5f83b3cdc6faa3088c1d3aea1454e3a1d5f',\n ],\n [\n 'd5e9e1da649d97d89e4868117a465a3a4f8a18de57a140d36b3f2af341a21b52',\n '4cb04437f391ed73111a13cc1d4dd0db1693465c2240480d8955e8592f27447a',\n ],\n [\n 'd3ae41047dd7ca065dbf8ed77b992439983005cd72e16d6f996a5316d36966bb',\n 'bd1aeb21ad22ebb22a10f0303417c6d964f8cdd7df0aca614b10dc14d125ac46',\n ],\n [\n '463e2763d885f958fc66cdd22800f0a487197d0a82e377b49f80af87c897b065',\n 'bfefacdb0e5d0fd7df3a311a94de062b26b80c61fbc97508b79992671ef7ca7f',\n ],\n [\n '7985fdfd127c0567c6f53ec1bb63ec3158e597c40bfe747c83cddfc910641917',\n '603c12daf3d9862ef2b25fe1de289aed24ed291e0ec6708703a5bd567f32ed03',\n ],\n [\n '74a1ad6b5f76e39db2dd249410eac7f99e74c59cb83d2d0ed5ff1543da7703e9',\n 'cc6157ef18c9c63cd6193d83631bbea0093e0968942e8c33d5737fd790e0db08',\n ],\n [\n '30682a50703375f602d416664ba19b7fc9bab42c72747463a71d0896b22f6da3',\n '553e04f6b018b4fa6c8f39e7f311d3176290d0e0f19ca73f17714d9977a22ff8',\n ],\n [\n '9e2158f0d7c0d5f26c3791efefa79597654e7a2b2464f52b1ee6c1347769ef57',\n '712fcdd1b9053f09003a3481fa7762e9ffd7c8ef35a38509e2fbf2629008373',\n ],\n [\n '176e26989a43c9cfeba4029c202538c28172e566e3c4fce7322857f3be327d66',\n 'ed8cc9d04b29eb877d270b4878dc43c19aefd31f4eee09ee7b47834c1fa4b1c3',\n ],\n [\n '75d46efea3771e6e68abb89a13ad747ecf1892393dfc4f1b7004788c50374da8',\n '9852390a99507679fd0b86fd2b39a868d7efc22151346e1a3ca4726586a6bed8',\n ],\n [\n '809a20c67d64900ffb698c4c825f6d5f2310fb0451c869345b7319f645605721',\n '9e994980d9917e22b76b061927fa04143d096ccc54963e6a5ebfa5f3f8e286c1',\n ],\n [\n '1b38903a43f7f114ed4500b4eac7083fdefece1cf29c63528d563446f972c180',\n '4036edc931a60ae889353f77fd53de4a2708b26b6f5da72ad3394119daf408f9',\n ],\n ],\n },\n};\n", "'use strict';\n\nvar curves = exports;\n\nvar hash = require('hash.js');\nvar curve = require('./curve');\nvar utils = require('./utils');\n\nvar assert = utils.assert;\n\nfunction PresetCurve(options) {\n if (options.type === 'short')\n this.curve = new curve.short(options);\n else if (options.type === 'edwards')\n this.curve = new curve.edwards(options);\n else\n this.curve = new curve.mont(options);\n this.g = this.curve.g;\n this.n = this.curve.n;\n this.hash = options.hash;\n\n assert(this.g.validate(), 'Invalid curve');\n assert(this.g.mul(this.n).isInfinity(), 'Invalid curve, G*N != O');\n}\ncurves.PresetCurve = PresetCurve;\n\nfunction defineCurve(name, options) {\n Object.defineProperty(curves, name, {\n configurable: true,\n enumerable: true,\n get: function() {\n var curve = new PresetCurve(options);\n Object.defineProperty(curves, name, {\n configurable: true,\n enumerable: true,\n value: curve,\n });\n return curve;\n },\n });\n}\n\ndefineCurve('p192', {\n type: 'short',\n prime: 'p192',\n p: 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff',\n a: 'ffffffff ffffffff ffffffff fffffffe ffffffff fffffffc',\n b: '64210519 e59c80e7 0fa7e9ab 72243049 feb8deec c146b9b1',\n n: 'ffffffff ffffffff ffffffff 99def836 146bc9b1 b4d22831',\n hash: hash.sha256,\n gRed: false,\n g: [\n '188da80e b03090f6 7cbf20eb 43a18800 f4ff0afd 82ff1012',\n '07192b95 ffc8da78 631011ed 6b24cdd5 73f977a1 1e794811',\n ],\n});\n\ndefineCurve('p224', {\n type: 'short',\n prime: 'p224',\n p: 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001',\n a: 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff fffffffe',\n b: 'b4050a85 0c04b3ab f5413256 5044b0b7 d7bfd8ba 270b3943 2355ffb4',\n n: 'ffffffff ffffffff ffffffff ffff16a2 e0b8f03e 13dd2945 5c5c2a3d',\n hash: hash.sha256,\n gRed: false,\n g: [\n 'b70e0cbd 6bb4bf7f 321390b9 4a03c1d3 56c21122 343280d6 115c1d21',\n 'bd376388 b5f723fb 4c22dfe6 cd4375a0 5a074764 44d58199 85007e34',\n ],\n});\n\ndefineCurve('p256', {\n type: 'short',\n prime: null,\n p: 'ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff ffffffff',\n a: 'ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff fffffffc',\n b: '5ac635d8 aa3a93e7 b3ebbd55 769886bc 651d06b0 cc53b0f6 3bce3c3e 27d2604b',\n n: 'ffffffff 00000000 ffffffff ffffffff bce6faad a7179e84 f3b9cac2 fc632551',\n hash: hash.sha256,\n gRed: false,\n g: [\n '6b17d1f2 e12c4247 f8bce6e5 63a440f2 77037d81 2deb33a0 f4a13945 d898c296',\n '4fe342e2 fe1a7f9b 8ee7eb4a 7c0f9e16 2bce3357 6b315ece cbb64068 37bf51f5',\n ],\n});\n\ndefineCurve('p384', {\n type: 'short',\n prime: null,\n p: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'fffffffe ffffffff 00000000 00000000 ffffffff',\n a: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'fffffffe ffffffff 00000000 00000000 fffffffc',\n b: 'b3312fa7 e23ee7e4 988e056b e3f82d19 181d9c6e fe814112 0314088f ' +\n '5013875a c656398d 8a2ed19d 2a85c8ed d3ec2aef',\n n: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff c7634d81 ' +\n 'f4372ddf 581a0db2 48b0a77a ecec196a ccc52973',\n hash: hash.sha384,\n gRed: false,\n g: [\n 'aa87ca22 be8b0537 8eb1c71e f320ad74 6e1d3b62 8ba79b98 59f741e0 82542a38 ' +\n '5502f25d bf55296c 3a545e38 72760ab7',\n '3617de4a 96262c6f 5d9e98bf 9292dc29 f8f41dbd 289a147c e9da3113 b5f0b8c0 ' +\n '0a60b1ce 1d7e819d 7a431d7c 90ea0e5f',\n ],\n});\n\ndefineCurve('p521', {\n type: 'short',\n prime: null,\n p: '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff ffffffff',\n a: '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff fffffffc',\n b: '00000051 953eb961 8e1c9a1f 929a21a0 b68540ee a2da725b ' +\n '99b315f3 b8b48991 8ef109e1 56193951 ec7e937b 1652c0bd ' +\n '3bb1bf07 3573df88 3d2c34f1 ef451fd4 6b503f00',\n n: '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff fffffffa 51868783 bf2f966b 7fcc0148 ' +\n 'f709a5d0 3bb5c9b8 899c47ae bb6fb71e 91386409',\n hash: hash.sha512,\n gRed: false,\n g: [\n '000000c6 858e06b7 0404e9cd 9e3ecb66 2395b442 9c648139 ' +\n '053fb521 f828af60 6b4d3dba a14b5e77 efe75928 fe1dc127 ' +\n 'a2ffa8de 3348b3c1 856a429b f97e7e31 c2e5bd66',\n '00000118 39296a78 9a3bc004 5c8a5fb4 2c7d1bd9 98f54449 ' +\n '579b4468 17afbd17 273e662c 97ee7299 5ef42640 c550b901 ' +\n '3fad0761 353c7086 a272c240 88be9476 9fd16650',\n ],\n});\n\ndefineCurve('curve25519', {\n type: 'mont',\n prime: 'p25519',\n p: '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed',\n a: '76d06',\n b: '1',\n n: '1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed',\n hash: hash.sha256,\n gRed: false,\n g: [\n '9',\n ],\n});\n\ndefineCurve('ed25519', {\n type: 'edwards',\n prime: 'p25519',\n p: '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed',\n a: '-1',\n c: '1',\n // -121665 * (121666^(-1)) (mod P)\n d: '52036cee2b6ffe73 8cc740797779e898 00700a4d4141d8ab 75eb4dca135978a3',\n n: '1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed',\n hash: hash.sha256,\n gRed: false,\n g: [\n '216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a',\n\n // 4/5\n '6666666666666666666666666666666666666666666666666666666666666658',\n ],\n});\n\nvar pre;\ntry {\n pre = require('./precomputed/secp256k1');\n} catch (e) {\n pre = undefined;\n}\n\ndefineCurve('secp256k1', {\n type: 'short',\n prime: 'k256',\n p: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f',\n a: '0',\n b: '7',\n n: 'ffffffff ffffffff ffffffff fffffffe baaedce6 af48a03b bfd25e8c d0364141',\n h: '1',\n hash: hash.sha256,\n\n // Precomputed endomorphism\n beta: '7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee',\n lambda: '5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72',\n basis: [\n {\n a: '3086d221a7d46bcde86c90e49284eb15',\n b: '-e4437ed6010e88286f547fa90abfe4c3',\n },\n {\n a: '114ca50f7a8e2f3f657c1108d9d44cfd8',\n b: '3086d221a7d46bcde86c90e49284eb15',\n },\n ],\n\n gRed: false,\n g: [\n '79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798',\n '483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8',\n pre,\n ],\n});\n", "'use strict';\n\nvar hash = require('hash.js');\nvar utils = require('minimalistic-crypto-utils');\nvar assert = require('minimalistic-assert');\n\nfunction HmacDRBG(options) {\n if (!(this instanceof HmacDRBG))\n return new HmacDRBG(options);\n this.hash = options.hash;\n this.predResist = !!options.predResist;\n\n this.outLen = this.hash.outSize;\n this.minEntropy = options.minEntropy || this.hash.hmacStrength;\n\n this._reseed = null;\n this.reseedInterval = null;\n this.K = null;\n this.V = null;\n\n var entropy = utils.toArray(options.entropy, options.entropyEnc || 'hex');\n var nonce = utils.toArray(options.nonce, options.nonceEnc || 'hex');\n var pers = utils.toArray(options.pers, options.persEnc || 'hex');\n assert(entropy.length >= (this.minEntropy / 8),\n 'Not enough entropy. Minimum is: ' + this.minEntropy + ' bits');\n this._init(entropy, nonce, pers);\n}\nmodule.exports = HmacDRBG;\n\nHmacDRBG.prototype._init = function init(entropy, nonce, pers) {\n var seed = entropy.concat(nonce).concat(pers);\n\n this.K = new Array(this.outLen / 8);\n this.V = new Array(this.outLen / 8);\n for (var i = 0; i < this.V.length; i++) {\n this.K[i] = 0x00;\n this.V[i] = 0x01;\n }\n\n this._update(seed);\n this._reseed = 1;\n this.reseedInterval = 0x1000000000000; // 2^48\n};\n\nHmacDRBG.prototype._hmac = function hmac() {\n return new hash.hmac(this.hash, this.K);\n};\n\nHmacDRBG.prototype._update = function update(seed) {\n var kmac = this._hmac()\n .update(this.V)\n .update([ 0x00 ]);\n if (seed)\n kmac = kmac.update(seed);\n this.K = kmac.digest();\n this.V = this._hmac().update(this.V).digest();\n if (!seed)\n return;\n\n this.K = this._hmac()\n .update(this.V)\n .update([ 0x01 ])\n .update(seed)\n .digest();\n this.V = this._hmac().update(this.V).digest();\n};\n\nHmacDRBG.prototype.reseed = function reseed(entropy, entropyEnc, add, addEnc) {\n // Optional entropy enc\n if (typeof entropyEnc !== 'string') {\n addEnc = add;\n add = entropyEnc;\n entropyEnc = null;\n }\n\n entropy = utils.toArray(entropy, entropyEnc);\n add = utils.toArray(add, addEnc);\n\n assert(entropy.length >= (this.minEntropy / 8),\n 'Not enough entropy. Minimum is: ' + this.minEntropy + ' bits');\n\n this._update(entropy.concat(add || []));\n this._reseed = 1;\n};\n\nHmacDRBG.prototype.generate = function generate(len, enc, add, addEnc) {\n if (this._reseed > this.reseedInterval)\n throw new Error('Reseed is required');\n\n // Optional encoding\n if (typeof enc !== 'string') {\n addEnc = add;\n add = enc;\n enc = null;\n }\n\n // Optional additional data\n if (add) {\n add = utils.toArray(add, addEnc || 'hex');\n this._update(add);\n }\n\n var temp = [];\n while (temp.length < len) {\n this.V = this._hmac().update(this.V).digest();\n temp = temp.concat(this.V);\n }\n\n var res = temp.slice(0, len);\n this._update(add);\n this._reseed++;\n return utils.encode(res, enc);\n};\n", "'use strict';\n\nvar BN = require('bn.js');\nvar utils = require('../utils');\nvar assert = utils.assert;\n\nfunction KeyPair(ec, options) {\n this.ec = ec;\n this.priv = null;\n this.pub = null;\n\n // KeyPair(ec, { priv: ..., pub: ... })\n if (options.priv)\n this._importPrivate(options.priv, options.privEnc);\n if (options.pub)\n this._importPublic(options.pub, options.pubEnc);\n}\nmodule.exports = KeyPair;\n\nKeyPair.fromPublic = function fromPublic(ec, pub, enc) {\n if (pub instanceof KeyPair)\n return pub;\n\n return new KeyPair(ec, {\n pub: pub,\n pubEnc: enc,\n });\n};\n\nKeyPair.fromPrivate = function fromPrivate(ec, priv, enc) {\n if (priv instanceof KeyPair)\n return priv;\n\n return new KeyPair(ec, {\n priv: priv,\n privEnc: enc,\n });\n};\n\nKeyPair.prototype.validate = function validate() {\n var pub = this.getPublic();\n\n if (pub.isInfinity())\n return { result: false, reason: 'Invalid public key' };\n if (!pub.validate())\n return { result: false, reason: 'Public key is not a point' };\n if (!pub.mul(this.ec.curve.n).isInfinity())\n return { result: false, reason: 'Public key * N != O' };\n\n return { result: true, reason: null };\n};\n\nKeyPair.prototype.getPublic = function getPublic(compact, enc) {\n // compact is optional argument\n if (typeof compact === 'string') {\n enc = compact;\n compact = null;\n }\n\n if (!this.pub)\n this.pub = this.ec.g.mul(this.priv);\n\n if (!enc)\n return this.pub;\n\n return this.pub.encode(enc, compact);\n};\n\nKeyPair.prototype.getPrivate = function getPrivate(enc) {\n if (enc === 'hex')\n return this.priv.toString(16, 2);\n else\n return this.priv;\n};\n\nKeyPair.prototype._importPrivate = function _importPrivate(key, enc) {\n this.priv = new BN(key, enc || 16);\n\n // Ensure that the priv won't be bigger than n, otherwise we may fail\n // in fixed multiplication method\n this.priv = this.priv.umod(this.ec.curve.n);\n};\n\nKeyPair.prototype._importPublic = function _importPublic(key, enc) {\n if (key.x || key.y) {\n // Montgomery points only have an `x` coordinate.\n // Weierstrass/Edwards points on the other hand have both `x` and\n // `y` coordinates.\n if (this.ec.curve.type === 'mont') {\n assert(key.x, 'Need x coordinate');\n } else if (this.ec.curve.type === 'short' ||\n this.ec.curve.type === 'edwards') {\n assert(key.x && key.y, 'Need both x and y coordinate');\n }\n this.pub = this.ec.curve.point(key.x, key.y);\n return;\n }\n this.pub = this.ec.curve.decodePoint(key, enc);\n};\n\n// ECDH\nKeyPair.prototype.derive = function derive(pub) {\n if(!pub.validate()) {\n assert(pub.validate(), 'public point not validated');\n }\n return pub.mul(this.priv).getX();\n};\n\n// ECDSA\nKeyPair.prototype.sign = function sign(msg, enc, options) {\n return this.ec.sign(msg, this, enc, options);\n};\n\nKeyPair.prototype.verify = function verify(msg, signature) {\n return this.ec.verify(msg, signature, this);\n};\n\nKeyPair.prototype.inspect = function inspect() {\n return '';\n};\n", "'use strict';\n\nvar BN = require('bn.js');\n\nvar utils = require('../utils');\nvar assert = utils.assert;\n\nfunction Signature(options, enc) {\n if (options instanceof Signature)\n return options;\n\n if (this._importDER(options, enc))\n return;\n\n assert(options.r && options.s, 'Signature without r or s');\n this.r = new BN(options.r, 16);\n this.s = new BN(options.s, 16);\n if (options.recoveryParam === undefined)\n this.recoveryParam = null;\n else\n this.recoveryParam = options.recoveryParam;\n}\nmodule.exports = Signature;\n\nfunction Position() {\n this.place = 0;\n}\n\nfunction getLength(buf, p) {\n var initial = buf[p.place++];\n if (!(initial & 0x80)) {\n return initial;\n }\n var octetLen = initial & 0xf;\n\n // Indefinite length or overflow\n if (octetLen === 0 || octetLen > 4) {\n return false;\n }\n\n var val = 0;\n for (var i = 0, off = p.place; i < octetLen; i++, off++) {\n val <<= 8;\n val |= buf[off];\n val >>>= 0;\n }\n\n // Leading zeroes\n if (val <= 0x7f) {\n return false;\n }\n\n p.place = off;\n return val;\n}\n\nfunction rmPadding(buf) {\n var i = 0;\n var len = buf.length - 1;\n while (!buf[i] && !(buf[i + 1] & 0x80) && i < len) {\n i++;\n }\n if (i === 0) {\n return buf;\n }\n return buf.slice(i);\n}\n\nSignature.prototype._importDER = function _importDER(data, enc) {\n data = utils.toArray(data, enc);\n var p = new Position();\n if (data[p.place++] !== 0x30) {\n return false;\n }\n var len = getLength(data, p);\n if (len === false) {\n return false;\n }\n if ((len + p.place) !== data.length) {\n return false;\n }\n if (data[p.place++] !== 0x02) {\n return false;\n }\n var rlen = getLength(data, p);\n if (rlen === false) {\n return false;\n }\n var r = data.slice(p.place, rlen + p.place);\n p.place += rlen;\n if (data[p.place++] !== 0x02) {\n return false;\n }\n var slen = getLength(data, p);\n if (slen === false) {\n return false;\n }\n if (data.length !== slen + p.place) {\n return false;\n }\n var s = data.slice(p.place, slen + p.place);\n if (r[0] === 0) {\n if (r[1] & 0x80) {\n r = r.slice(1);\n } else {\n // Leading zeroes\n return false;\n }\n }\n if (s[0] === 0) {\n if (s[1] & 0x80) {\n s = s.slice(1);\n } else {\n // Leading zeroes\n return false;\n }\n }\n\n this.r = new BN(r);\n this.s = new BN(s);\n this.recoveryParam = null;\n\n return true;\n};\n\nfunction constructLength(arr, len) {\n if (len < 0x80) {\n arr.push(len);\n return;\n }\n var octets = 1 + (Math.log(len) / Math.LN2 >>> 3);\n arr.push(octets | 0x80);\n while (--octets) {\n arr.push((len >>> (octets << 3)) & 0xff);\n }\n arr.push(len);\n}\n\nSignature.prototype.toDER = function toDER(enc) {\n var r = this.r.toArray();\n var s = this.s.toArray();\n\n // Pad values\n if (r[0] & 0x80)\n r = [ 0 ].concat(r);\n // Pad values\n if (s[0] & 0x80)\n s = [ 0 ].concat(s);\n\n r = rmPadding(r);\n s = rmPadding(s);\n\n while (!s[0] && !(s[1] & 0x80)) {\n s = s.slice(1);\n }\n var arr = [ 0x02 ];\n constructLength(arr, r.length);\n arr = arr.concat(r);\n arr.push(0x02);\n constructLength(arr, s.length);\n var backHalf = arr.concat(s);\n var res = [ 0x30 ];\n constructLength(res, backHalf.length);\n res = res.concat(backHalf);\n return utils.encode(res, enc);\n};\n", "'use strict';\n\nvar BN = require('bn.js');\nvar HmacDRBG = require('hmac-drbg');\nvar utils = require('../utils');\nvar curves = require('../curves');\nvar rand = require('brorand');\nvar assert = utils.assert;\n\nvar KeyPair = require('./key');\nvar Signature = require('./signature');\n\nfunction EC(options) {\n if (!(this instanceof EC))\n return new EC(options);\n\n // Shortcut `elliptic.ec(curve-name)`\n if (typeof options === 'string') {\n assert(Object.prototype.hasOwnProperty.call(curves, options),\n 'Unknown curve ' + options);\n\n options = curves[options];\n }\n\n // Shortcut for `elliptic.ec(elliptic.curves.curveName)`\n if (options instanceof curves.PresetCurve)\n options = { curve: options };\n\n this.curve = options.curve.curve;\n this.n = this.curve.n;\n this.nh = this.n.ushrn(1);\n this.g = this.curve.g;\n\n // Point on curve\n this.g = options.curve.g;\n this.g.precompute(options.curve.n.bitLength() + 1);\n\n // Hash for function for DRBG\n this.hash = options.hash || options.curve.hash;\n}\nmodule.exports = EC;\n\nEC.prototype.keyPair = function keyPair(options) {\n return new KeyPair(this, options);\n};\n\nEC.prototype.keyFromPrivate = function keyFromPrivate(priv, enc) {\n return KeyPair.fromPrivate(this, priv, enc);\n};\n\nEC.prototype.keyFromPublic = function keyFromPublic(pub, enc) {\n return KeyPair.fromPublic(this, pub, enc);\n};\n\nEC.prototype.genKeyPair = function genKeyPair(options) {\n if (!options)\n options = {};\n\n // Instantiate Hmac_DRBG\n var drbg = new HmacDRBG({\n hash: this.hash,\n pers: options.pers,\n persEnc: options.persEnc || 'utf8',\n entropy: options.entropy || rand(this.hash.hmacStrength),\n entropyEnc: options.entropy && options.entropyEnc || 'utf8',\n nonce: this.n.toArray(),\n });\n\n var bytes = this.n.byteLength();\n var ns2 = this.n.sub(new BN(2));\n for (;;) {\n var priv = new BN(drbg.generate(bytes));\n if (priv.cmp(ns2) > 0)\n continue;\n\n priv.iaddn(1);\n return this.keyFromPrivate(priv);\n }\n};\n\nEC.prototype._truncateToN = function _truncateToN(msg, truncOnly) {\n var delta = msg.byteLength() * 8 - this.n.bitLength();\n if (delta > 0)\n msg = msg.ushrn(delta);\n if (!truncOnly && msg.cmp(this.n) >= 0)\n return msg.sub(this.n);\n else\n return msg;\n};\n\nEC.prototype.sign = function sign(msg, key, enc, options) {\n if (typeof enc === 'object') {\n options = enc;\n enc = null;\n }\n if (!options)\n options = {};\n\n key = this.keyFromPrivate(key, enc);\n msg = this._truncateToN(new BN(msg, 16));\n\n // Zero-extend key to provide enough entropy\n var bytes = this.n.byteLength();\n var bkey = key.getPrivate().toArray('be', bytes);\n\n // Zero-extend nonce to have the same byte size as N\n var nonce = msg.toArray('be', bytes);\n\n // Instantiate Hmac_DRBG\n var drbg = new HmacDRBG({\n hash: this.hash,\n entropy: bkey,\n nonce: nonce,\n pers: options.pers,\n persEnc: options.persEnc || 'utf8',\n });\n\n // Number of bytes to generate\n var ns1 = this.n.sub(new BN(1));\n\n for (var iter = 0; ; iter++) {\n var k = options.k ?\n options.k(iter) :\n new BN(drbg.generate(this.n.byteLength()));\n k = this._truncateToN(k, true);\n if (k.cmpn(1) <= 0 || k.cmp(ns1) >= 0)\n continue;\n\n var kp = this.g.mul(k);\n if (kp.isInfinity())\n continue;\n\n var kpX = kp.getX();\n var r = kpX.umod(this.n);\n if (r.cmpn(0) === 0)\n continue;\n\n var s = k.invm(this.n).mul(r.mul(key.getPrivate()).iadd(msg));\n s = s.umod(this.n);\n if (s.cmpn(0) === 0)\n continue;\n\n var recoveryParam = (kp.getY().isOdd() ? 1 : 0) |\n (kpX.cmp(r) !== 0 ? 2 : 0);\n\n // Use complement of `s`, if it is > `n / 2`\n if (options.canonical && s.cmp(this.nh) > 0) {\n s = this.n.sub(s);\n recoveryParam ^= 1;\n }\n\n return new Signature({ r: r, s: s, recoveryParam: recoveryParam });\n }\n};\n\nEC.prototype.verify = function verify(msg, signature, key, enc) {\n msg = this._truncateToN(new BN(msg, 16));\n key = this.keyFromPublic(key, enc);\n signature = new Signature(signature, 'hex');\n\n // Perform primitive values validation\n var r = signature.r;\n var s = signature.s;\n if (r.cmpn(1) < 0 || r.cmp(this.n) >= 0)\n return false;\n if (s.cmpn(1) < 0 || s.cmp(this.n) >= 0)\n return false;\n\n // Validate signature\n var sinv = s.invm(this.n);\n var u1 = sinv.mul(msg).umod(this.n);\n var u2 = sinv.mul(r).umod(this.n);\n var p;\n\n if (!this.curve._maxwellTrick) {\n p = this.g.mulAdd(u1, key.getPublic(), u2);\n if (p.isInfinity())\n return false;\n\n return p.getX().umod(this.n).cmp(r) === 0;\n }\n\n // NOTE: Greg Maxwell's trick, inspired by:\n // https://git.io/vad3K\n\n p = this.g.jmulAdd(u1, key.getPublic(), u2);\n if (p.isInfinity())\n return false;\n\n // Compare `p.x` of Jacobian point with `r`,\n // this will do `p.x == r * p.z^2` instead of multiplying `p.x` by the\n // inverse of `p.z^2`\n return p.eqXToP(r);\n};\n\nEC.prototype.recoverPubKey = function(msg, signature, j, enc) {\n assert((3 & j) === j, 'The recovery param is more than two bits');\n signature = new Signature(signature, enc);\n\n var n = this.n;\n var e = new BN(msg);\n var r = signature.r;\n var s = signature.s;\n\n // A set LSB signifies that the y-coordinate is odd\n var isYOdd = j & 1;\n var isSecondKey = j >> 1;\n if (r.cmp(this.curve.p.umod(this.curve.n)) >= 0 && isSecondKey)\n throw new Error('Unable to find sencond key candinate');\n\n // 1.1. Let x = r + jn.\n if (isSecondKey)\n r = this.curve.pointFromX(r.add(this.curve.n), isYOdd);\n else\n r = this.curve.pointFromX(r, isYOdd);\n\n var rInv = signature.r.invm(n);\n var s1 = n.sub(e).mul(rInv).umod(n);\n var s2 = s.mul(rInv).umod(n);\n\n // 1.6.1 Compute Q = r^-1 (sR - eG)\n // Q = r^-1 (sR + -eG)\n return this.g.mulAdd(s1, r, s2);\n};\n\nEC.prototype.getKeyRecoveryParam = function(e, signature, Q, enc) {\n signature = new Signature(signature, enc);\n if (signature.recoveryParam !== null)\n return signature.recoveryParam;\n\n for (var i = 0; i < 4; i++) {\n var Qprime;\n try {\n Qprime = this.recoverPubKey(e, signature, i);\n } catch (e) {\n continue;\n }\n\n if (Qprime.eq(Q))\n return i;\n }\n throw new Error('Unable to find valid recovery factor');\n};\n", "'use strict';\n\nvar utils = require('../utils');\nvar assert = utils.assert;\nvar parseBytes = utils.parseBytes;\nvar cachedProperty = utils.cachedProperty;\n\n/**\n* @param {EDDSA} eddsa - instance\n* @param {Object} params - public/private key parameters\n*\n* @param {Array} [params.secret] - secret seed bytes\n* @param {Point} [params.pub] - public key point (aka `A` in eddsa terms)\n* @param {Array} [params.pub] - public key point encoded as bytes\n*\n*/\nfunction KeyPair(eddsa, params) {\n this.eddsa = eddsa;\n this._secret = parseBytes(params.secret);\n if (eddsa.isPoint(params.pub))\n this._pub = params.pub;\n else\n this._pubBytes = parseBytes(params.pub);\n}\n\nKeyPair.fromPublic = function fromPublic(eddsa, pub) {\n if (pub instanceof KeyPair)\n return pub;\n return new KeyPair(eddsa, { pub: pub });\n};\n\nKeyPair.fromSecret = function fromSecret(eddsa, secret) {\n if (secret instanceof KeyPair)\n return secret;\n return new KeyPair(eddsa, { secret: secret });\n};\n\nKeyPair.prototype.secret = function secret() {\n return this._secret;\n};\n\ncachedProperty(KeyPair, 'pubBytes', function pubBytes() {\n return this.eddsa.encodePoint(this.pub());\n});\n\ncachedProperty(KeyPair, 'pub', function pub() {\n if (this._pubBytes)\n return this.eddsa.decodePoint(this._pubBytes);\n return this.eddsa.g.mul(this.priv());\n});\n\ncachedProperty(KeyPair, 'privBytes', function privBytes() {\n var eddsa = this.eddsa;\n var hash = this.hash();\n var lastIx = eddsa.encodingLength - 1;\n\n var a = hash.slice(0, eddsa.encodingLength);\n a[0] &= 248;\n a[lastIx] &= 127;\n a[lastIx] |= 64;\n\n return a;\n});\n\ncachedProperty(KeyPair, 'priv', function priv() {\n return this.eddsa.decodeInt(this.privBytes());\n});\n\ncachedProperty(KeyPair, 'hash', function hash() {\n return this.eddsa.hash().update(this.secret()).digest();\n});\n\ncachedProperty(KeyPair, 'messagePrefix', function messagePrefix() {\n return this.hash().slice(this.eddsa.encodingLength);\n});\n\nKeyPair.prototype.sign = function sign(message) {\n assert(this._secret, 'KeyPair can only verify');\n return this.eddsa.sign(message, this);\n};\n\nKeyPair.prototype.verify = function verify(message, sig) {\n return this.eddsa.verify(message, sig, this);\n};\n\nKeyPair.prototype.getSecret = function getSecret(enc) {\n assert(this._secret, 'KeyPair is public only');\n return utils.encode(this.secret(), enc);\n};\n\nKeyPair.prototype.getPublic = function getPublic(enc) {\n return utils.encode(this.pubBytes(), enc);\n};\n\nmodule.exports = KeyPair;\n", "'use strict';\n\nvar BN = require('bn.js');\nvar utils = require('../utils');\nvar assert = utils.assert;\nvar cachedProperty = utils.cachedProperty;\nvar parseBytes = utils.parseBytes;\n\n/**\n* @param {EDDSA} eddsa - eddsa instance\n* @param {Array|Object} sig -\n* @param {Array|Point} [sig.R] - R point as Point or bytes\n* @param {Array|bn} [sig.S] - S scalar as bn or bytes\n* @param {Array} [sig.Rencoded] - R point encoded\n* @param {Array} [sig.Sencoded] - S scalar encoded\n*/\nfunction Signature(eddsa, sig) {\n this.eddsa = eddsa;\n\n if (typeof sig !== 'object')\n sig = parseBytes(sig);\n\n if (Array.isArray(sig)) {\n sig = {\n R: sig.slice(0, eddsa.encodingLength),\n S: sig.slice(eddsa.encodingLength),\n };\n }\n\n assert(sig.R && sig.S, 'Signature without R or S');\n\n if (eddsa.isPoint(sig.R))\n this._R = sig.R;\n if (sig.S instanceof BN)\n this._S = sig.S;\n\n this._Rencoded = Array.isArray(sig.R) ? sig.R : sig.Rencoded;\n this._Sencoded = Array.isArray(sig.S) ? sig.S : sig.Sencoded;\n}\n\ncachedProperty(Signature, 'S', function S() {\n return this.eddsa.decodeInt(this.Sencoded());\n});\n\ncachedProperty(Signature, 'R', function R() {\n return this.eddsa.decodePoint(this.Rencoded());\n});\n\ncachedProperty(Signature, 'Rencoded', function Rencoded() {\n return this.eddsa.encodePoint(this.R());\n});\n\ncachedProperty(Signature, 'Sencoded', function Sencoded() {\n return this.eddsa.encodeInt(this.S());\n});\n\nSignature.prototype.toBytes = function toBytes() {\n return this.Rencoded().concat(this.Sencoded());\n};\n\nSignature.prototype.toHex = function toHex() {\n return utils.encode(this.toBytes(), 'hex').toUpperCase();\n};\n\nmodule.exports = Signature;\n", "'use strict';\n\nvar hash = require('hash.js');\nvar curves = require('../curves');\nvar utils = require('../utils');\nvar assert = utils.assert;\nvar parseBytes = utils.parseBytes;\nvar KeyPair = require('./key');\nvar Signature = require('./signature');\n\nfunction EDDSA(curve) {\n assert(curve === 'ed25519', 'only tested with ed25519 so far');\n\n if (!(this instanceof EDDSA))\n return new EDDSA(curve);\n\n curve = curves[curve].curve;\n this.curve = curve;\n this.g = curve.g;\n this.g.precompute(curve.n.bitLength() + 1);\n\n this.pointClass = curve.point().constructor;\n this.encodingLength = Math.ceil(curve.n.bitLength() / 8);\n this.hash = hash.sha512;\n}\n\nmodule.exports = EDDSA;\n\n/**\n* @param {Array|String} message - message bytes\n* @param {Array|String|KeyPair} secret - secret bytes or a keypair\n* @returns {Signature} - signature\n*/\nEDDSA.prototype.sign = function sign(message, secret) {\n message = parseBytes(message);\n var key = this.keyFromSecret(secret);\n var r = this.hashInt(key.messagePrefix(), message);\n var R = this.g.mul(r);\n var Rencoded = this.encodePoint(R);\n var s_ = this.hashInt(Rencoded, key.pubBytes(), message)\n .mul(key.priv());\n var S = r.add(s_).umod(this.curve.n);\n return this.makeSignature({ R: R, S: S, Rencoded: Rencoded });\n};\n\n/**\n* @param {Array} message - message bytes\n* @param {Array|String|Signature} sig - sig bytes\n* @param {Array|String|Point|KeyPair} pub - public key\n* @returns {Boolean} - true if public key matches sig of message\n*/\nEDDSA.prototype.verify = function verify(message, sig, pub) {\n message = parseBytes(message);\n sig = this.makeSignature(sig);\n var key = this.keyFromPublic(pub);\n var h = this.hashInt(sig.Rencoded(), key.pubBytes(), message);\n var SG = this.g.mul(sig.S());\n var RplusAh = sig.R().add(key.pub().mul(h));\n return RplusAh.eq(SG);\n};\n\nEDDSA.prototype.hashInt = function hashInt() {\n var hash = this.hash();\n for (var i = 0; i < arguments.length; i++)\n hash.update(arguments[i]);\n return utils.intFromLE(hash.digest()).umod(this.curve.n);\n};\n\nEDDSA.prototype.keyFromPublic = function keyFromPublic(pub) {\n return KeyPair.fromPublic(this, pub);\n};\n\nEDDSA.prototype.keyFromSecret = function keyFromSecret(secret) {\n return KeyPair.fromSecret(this, secret);\n};\n\nEDDSA.prototype.makeSignature = function makeSignature(sig) {\n if (sig instanceof Signature)\n return sig;\n return new Signature(this, sig);\n};\n\n/**\n* * https://tools.ietf.org/html/draft-josefsson-eddsa-ed25519-03#section-5.2\n*\n* EDDSA defines methods for encoding and decoding points and integers. These are\n* helper convenience methods, that pass along to utility functions implied\n* parameters.\n*\n*/\nEDDSA.prototype.encodePoint = function encodePoint(point) {\n var enc = point.getY().toArray('le', this.encodingLength);\n enc[this.encodingLength - 1] |= point.getX().isOdd() ? 0x80 : 0;\n return enc;\n};\n\nEDDSA.prototype.decodePoint = function decodePoint(bytes) {\n bytes = utils.parseBytes(bytes);\n\n var lastIx = bytes.length - 1;\n var normed = bytes.slice(0, lastIx).concat(bytes[lastIx] & ~0x80);\n var xIsOdd = (bytes[lastIx] & 0x80) !== 0;\n\n var y = utils.intFromLE(normed);\n return this.curve.pointFromY(y, xIsOdd);\n};\n\nEDDSA.prototype.encodeInt = function encodeInt(num) {\n return num.toArray('le', this.encodingLength);\n};\n\nEDDSA.prototype.decodeInt = function decodeInt(bytes) {\n return utils.intFromLE(bytes);\n};\n\nEDDSA.prototype.isPoint = function isPoint(val) {\n return val instanceof this.pointClass;\n};\n", "'use strict';\n\nvar elliptic = exports;\n\nelliptic.version = require('../package.json').version;\nelliptic.utils = require('./elliptic/utils');\nelliptic.rand = require('brorand');\nelliptic.curve = require('./elliptic/curve');\nelliptic.curves = require('./elliptic/curves');\n\n// Protocols\nelliptic.ec = require('./elliptic/ec');\nelliptic.eddsa = require('./elliptic/eddsa');\n", "import _ec from \"elliptic\";\nimport EC = _ec.ec;\n\nexport { EC }\n", "export const version = \"signing-key/5.7.0\";\n", "\"use strict\";\n\nimport { EC } from \"./elliptic\";\n\nimport { arrayify, BytesLike, hexDataLength, hexlify, hexZeroPad, Signature, SignatureLike, splitSignature } from \"@ethersproject/bytes\";\nimport { defineReadOnly } from \"@ethersproject/properties\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\nlet _curve: EC = null\nfunction getCurve() {\n if (!_curve) {\n _curve = new EC(\"secp256k1\");\n }\n return _curve;\n}\n\nexport class SigningKey {\n\n readonly curve: string;\n\n readonly privateKey: string;\n readonly publicKey: string;\n readonly compressedPublicKey: string;\n\n //readonly address: string;\n\n readonly _isSigningKey: boolean;\n\n constructor(privateKey: BytesLike) {\n defineReadOnly(this, \"curve\", \"secp256k1\");\n\n defineReadOnly(this, \"privateKey\", hexlify(privateKey));\n if (hexDataLength(this.privateKey) !== 32) {\n logger.throwArgumentError(\"invalid private key\", \"privateKey\", \"[[ REDACTED ]]\");\n }\n\n const keyPair = getCurve().keyFromPrivate(arrayify(this.privateKey));\n\n defineReadOnly(this, \"publicKey\", \"0x\" + keyPair.getPublic(false, \"hex\"));\n defineReadOnly(this, \"compressedPublicKey\", \"0x\" + keyPair.getPublic(true, \"hex\"));\n\n defineReadOnly(this, \"_isSigningKey\", true);\n }\n\n _addPoint(other: BytesLike): string {\n const p0 = getCurve().keyFromPublic(arrayify(this.publicKey));\n const p1 = getCurve().keyFromPublic(arrayify(other));\n return \"0x\" + p0.pub.add(p1.pub).encodeCompressed(\"hex\");\n }\n\n signDigest(digest: BytesLike): Signature {\n const keyPair = getCurve().keyFromPrivate(arrayify(this.privateKey));\n const digestBytes = arrayify(digest);\n if (digestBytes.length !== 32) {\n logger.throwArgumentError(\"bad digest length\", \"digest\", digest);\n }\n const signature = keyPair.sign(digestBytes, { canonical: true });\n return splitSignature({\n recoveryParam: signature.recoveryParam,\n r: hexZeroPad(\"0x\" + signature.r.toString(16), 32),\n s: hexZeroPad(\"0x\" + signature.s.toString(16), 32),\n })\n }\n\n computeSharedSecret(otherKey: BytesLike): string {\n const keyPair = getCurve().keyFromPrivate(arrayify(this.privateKey));\n const otherKeyPair = getCurve().keyFromPublic(arrayify(computePublicKey(otherKey)));\n return hexZeroPad(\"0x\" + keyPair.derive(otherKeyPair.getPublic()).toString(16), 32);\n }\n\n static isSigningKey(value: any): value is SigningKey {\n return !!(value && value._isSigningKey);\n }\n}\n\nexport function recoverPublicKey(digest: BytesLike, signature: SignatureLike): string {\n const sig = splitSignature(signature);\n const rs = { r: arrayify(sig.r), s: arrayify(sig.s) };\n return \"0x\" + getCurve().recoverPubKey(arrayify(digest), rs, sig.recoveryParam).encode(\"hex\", false);\n}\n\nexport function computePublicKey(key: BytesLike, compressed?: boolean): string {\n const bytes = arrayify(key);\n\n if (bytes.length === 32) {\n const signingKey = new SigningKey(bytes);\n if (compressed) {\n return \"0x\" + getCurve().keyFromPrivate(bytes).getPublic(true, \"hex\");\n }\n return signingKey.publicKey;\n\n } else if (bytes.length === 33) {\n if (compressed) { return hexlify(bytes); }\n return \"0x\" + getCurve().keyFromPublic(bytes).getPublic(false, \"hex\");\n\n } else if (bytes.length === 65) {\n if (!compressed) { return hexlify(bytes); }\n return \"0x\" + getCurve().keyFromPublic(bytes).getPublic(true, \"hex\");\n }\n\n return logger.throwArgumentError(\"invalid public or private key\", \"key\", \"[REDACTED]\");\n}\n\n", "export const version = \"transactions/5.7.0\";\n", "\"use strict\";\n\nimport { getAddress } from \"@ethersproject/address\";\nimport { BigNumber, BigNumberish } from \"@ethersproject/bignumber\";\nimport { arrayify, BytesLike, DataOptions, hexConcat, hexDataLength, hexDataSlice, hexlify, hexZeroPad, isBytesLike, SignatureLike, splitSignature, stripZeros, } from \"@ethersproject/bytes\";\nimport { Zero } from \"@ethersproject/constants\";\nimport { keccak256 } from \"@ethersproject/keccak256\";\nimport { checkProperties } from \"@ethersproject/properties\";\nimport * as RLP from \"@ethersproject/rlp\";\nimport { computePublicKey, recoverPublicKey } from \"@ethersproject/signing-key\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\n///////////////////////////////\n// Exported Types\n\nexport type AccessList = Array<{ address: string, storageKeys: Array }>;\n\n// Input allows flexibility in describing an access list\nexport type AccessListish = AccessList |\n Array<[ string, Array ]> |\n Record>;\n\nexport enum TransactionTypes {\n legacy = 0,\n eip2930 = 1,\n eip1559 = 2,\n};\n\nexport type UnsignedTransaction = {\n to?: string;\n nonce?: number;\n\n gasLimit?: BigNumberish;\n gasPrice?: BigNumberish;\n\n data?: BytesLike;\n value?: BigNumberish;\n chainId?: number;\n\n // Typed-Transaction features\n type?: number | null;\n\n // EIP-2930; Type 1 & EIP-1559; Type 2\n accessList?: AccessListish;\n\n // EIP-1559; Type 2\n maxPriorityFeePerGas?: BigNumberish;\n maxFeePerGas?: BigNumberish;\n}\n\nexport interface Transaction {\n hash?: string;\n\n to?: string;\n from?: string;\n nonce: number;\n\n gasLimit: BigNumber;\n gasPrice?: BigNumber;\n\n data: string;\n value: BigNumber;\n chainId: number;\n\n r?: string;\n s?: string;\n v?: number;\n\n // Typed-Transaction features\n type?: number | null;\n\n // EIP-2930; Type 1 & EIP-1559; Type 2\n accessList?: AccessList;\n\n // EIP-1559; Type 2\n maxPriorityFeePerGas?: BigNumber;\n maxFeePerGas?: BigNumber;\n}\n\n///////////////////////////////\n\nfunction handleAddress(value: string): string {\n if (value === \"0x\") { return null; }\n return getAddress(value);\n}\n\nfunction handleNumber(value: string): BigNumber {\n if (value === \"0x\") { return Zero; }\n return BigNumber.from(value);\n}\n\n// Legacy Transaction Fields\nconst transactionFields = [\n { name: \"nonce\", maxLength: 32, numeric: true },\n { name: \"gasPrice\", maxLength: 32, numeric: true },\n { name: \"gasLimit\", maxLength: 32, numeric: true },\n { name: \"to\", length: 20 },\n { name: \"value\", maxLength: 32, numeric: true },\n { name: \"data\" },\n];\n\nconst allowedTransactionKeys: { [ key: string ]: boolean } = {\n chainId: true, data: true, gasLimit: true, gasPrice:true, nonce: true, to: true, type: true, value: true\n}\n\nexport function computeAddress(key: BytesLike | string): string {\n const publicKey = computePublicKey(key);\n return getAddress(hexDataSlice(keccak256(hexDataSlice(publicKey, 1)), 12));\n}\n\nexport function recoverAddress(digest: BytesLike, signature: SignatureLike): string {\n return computeAddress(recoverPublicKey(arrayify(digest), signature));\n}\n\nfunction formatNumber(value: BigNumberish, name: string): Uint8Array {\n const result = stripZeros(BigNumber.from(value).toHexString());\n if (result.length > 32) {\n logger.throwArgumentError(\"invalid length for \" + name, (\"transaction:\" + name), value);\n }\n return result;\n}\n\nfunction accessSetify(addr: string, storageKeys: Array): { address: string,storageKeys: Array } {\n return {\n address: getAddress(addr),\n storageKeys: (storageKeys || []).map((storageKey, index) => {\n if (hexDataLength(storageKey) !== 32) {\n logger.throwArgumentError(\"invalid access list storageKey\", `accessList[${ addr }:${ index }]`, storageKey)\n }\n return storageKey.toLowerCase();\n })\n };\n}\n\nexport function accessListify(value: AccessListish): AccessList {\n if (Array.isArray(value)) {\n return (] | { address: string, storageKeys: Array}>>value).map((set, index) => {\n if (Array.isArray(set)) {\n if (set.length > 2) {\n logger.throwArgumentError(\"access list expected to be [ address, storageKeys[] ]\", `value[${ index }]`, set);\n }\n return accessSetify(set[0], set[1])\n }\n return accessSetify(set.address, set.storageKeys);\n });\n }\n\n const result: Array<{ address: string, storageKeys: Array }> = Object.keys(value).map((addr) => {\n const storageKeys: Record = 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\nfunction formatAccessList(value: AccessListish): Array<[ string, Array ]> {\n return accessListify(value).map((set) => [ set.address, set.storageKeys ]);\n}\n\nfunction _serializeEip1559(transaction: UnsignedTransaction, signature?: SignatureLike): string {\n // If there is an explicit gasPrice, make sure it matches the\n // EIP-1559 fees; otherwise they may not understand what they\n // think they are setting in terms of fee.\n if (transaction.gasPrice != null) {\n const gasPrice = BigNumber.from(transaction.gasPrice);\n const maxFeePerGas = BigNumber.from(transaction.maxFeePerGas || 0);\n if (!gasPrice.eq(maxFeePerGas)) {\n logger.throwArgumentError(\"mismatch EIP-1559 gasPrice != maxFeePerGas\", \"tx\", {\n gasPrice, maxFeePerGas\n });\n }\n }\n\n const fields: any = [\n formatNumber(transaction.chainId || 0, \"chainId\"),\n formatNumber(transaction.nonce || 0, \"nonce\"),\n formatNumber(transaction.maxPriorityFeePerGas || 0, \"maxPriorityFeePerGas\"),\n formatNumber(transaction.maxFeePerGas || 0, \"maxFeePerGas\"),\n formatNumber(transaction.gasLimit || 0, \"gasLimit\"),\n ((transaction.to != null) ? getAddress(transaction.to): \"0x\"),\n formatNumber(transaction.value || 0, \"value\"),\n (transaction.data || \"0x\"),\n (formatAccessList(transaction.accessList || []))\n ];\n\n if (signature) {\n const sig = splitSignature(signature);\n fields.push(formatNumber(sig.recoveryParam, \"recoveryParam\"));\n fields.push(stripZeros(sig.r));\n fields.push(stripZeros(sig.s));\n }\n\n return hexConcat([ \"0x02\", RLP.encode(fields)]);\n}\n\nfunction _serializeEip2930(transaction: UnsignedTransaction, signature?: SignatureLike): string {\n const fields: any = [\n formatNumber(transaction.chainId || 0, \"chainId\"),\n formatNumber(transaction.nonce || 0, \"nonce\"),\n formatNumber(transaction.gasPrice || 0, \"gasPrice\"),\n formatNumber(transaction.gasLimit || 0, \"gasLimit\"),\n ((transaction.to != null) ? getAddress(transaction.to): \"0x\"),\n formatNumber(transaction.value || 0, \"value\"),\n (transaction.data || \"0x\"),\n (formatAccessList(transaction.accessList || []))\n ];\n\n if (signature) {\n const sig = splitSignature(signature);\n fields.push(formatNumber(sig.recoveryParam, \"recoveryParam\"));\n fields.push(stripZeros(sig.r));\n fields.push(stripZeros(sig.s));\n }\n\n return hexConcat([ \"0x01\", RLP.encode(fields)]);\n}\n\n// Legacy Transactions and EIP-155\nfunction _serialize(transaction: UnsignedTransaction, signature?: SignatureLike): string {\n checkProperties(transaction, allowedTransactionKeys);\n\n const raw: Array = [];\n\n transactionFields.forEach(function(fieldInfo) {\n let value = (transaction)[fieldInfo.name] || ([]);\n const options: DataOptions = { };\n if (fieldInfo.numeric) { options.hexPad = \"left\"; }\n value = arrayify(hexlify(value, options));\n\n // Fixed-width field\n if (fieldInfo.length && value.length !== fieldInfo.length && value.length > 0) {\n logger.throwArgumentError(\"invalid length for \" + fieldInfo.name, (\"transaction:\" + fieldInfo.name), value);\n }\n\n // Variable-width (with a maximum)\n if (fieldInfo.maxLength) {\n value = stripZeros(value);\n if (value.length > fieldInfo.maxLength) {\n logger.throwArgumentError(\"invalid length for \" + fieldInfo.name, (\"transaction:\" + fieldInfo.name), value );\n }\n }\n\n raw.push(hexlify(value));\n });\n\n let chainId = 0;\n if (transaction.chainId != null) {\n // A chainId was provided; if non-zero we'll use EIP-155\n chainId = transaction.chainId;\n\n if (typeof(chainId) !== \"number\") {\n logger.throwArgumentError(\"invalid transaction.chainId\", \"transaction\", transaction);\n }\n\n } else if (signature && !isBytesLike(signature) && signature.v > 28) {\n // No chainId provided, but the signature is signing with EIP-155; derive chainId\n chainId = Math.floor((signature.v - 35) / 2);\n }\n\n // We have an EIP-155 transaction (chainId was specified and non-zero)\n if (chainId !== 0) {\n raw.push(hexlify(chainId)); // @TODO: hexValue?\n raw.push(\"0x\");\n raw.push(\"0x\");\n }\n\n // Requesting an unsigned transaction\n if (!signature) {\n return RLP.encode(raw);\n }\n\n // The splitSignature will ensure the transaction has a recoveryParam in the\n // case that the signTransaction function only adds a v.\n const sig = splitSignature(signature);\n\n // We pushed a chainId and null r, s on for hashing only; remove those\n let v = 27 + sig.recoveryParam\n if (chainId !== 0) {\n raw.pop();\n raw.pop();\n raw.pop();\n v += chainId * 2 + 8;\n\n // If an EIP-155 v (directly or indirectly; maybe _vs) was provided, check it!\n if (sig.v > 28 && sig.v !== v) {\n logger.throwArgumentError(\"transaction.chainId/signature.v mismatch\", \"signature\", signature);\n }\n } else if (sig.v !== v) {\n logger.throwArgumentError(\"transaction.chainId/signature.v mismatch\", \"signature\", signature);\n }\n\n raw.push(hexlify(v));\n raw.push(stripZeros(arrayify(sig.r)));\n raw.push(stripZeros(arrayify(sig.s)));\n\n return RLP.encode(raw);\n}\n\nexport function serialize(transaction: UnsignedTransaction, signature?: SignatureLike): string {\n // Legacy and EIP-155 Transactions\n if (transaction.type == null || transaction.type === 0) {\n if (transaction.accessList != null) {\n logger.throwArgumentError(\"untyped transactions do not support accessList; include type: 1\", \"transaction\", transaction);\n }\n return _serialize(transaction, signature);\n }\n\n // Typed Transactions (EIP-2718)\n switch (transaction.type) {\n case 1:\n return _serializeEip2930(transaction, signature);\n case 2:\n return _serializeEip1559(transaction, signature);\n default:\n break;\n }\n\n return logger.throwError(`unsupported transaction type: ${ transaction.type }`, Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"serializeTransaction\",\n transactionType: transaction.type\n });\n}\n\nfunction _parseEipSignature(tx: Transaction, fields: Array, serialize: (tx: UnsignedTransaction) => string): void {\n try {\n const recid = handleNumber(fields[0]).toNumber();\n if (recid !== 0 && recid !== 1) { throw new Error(\"bad recid\"); }\n tx.v = recid;\n } catch (error) {\n logger.throwArgumentError(\"invalid v for transaction type: 1\", \"v\", fields[0]);\n }\n\n tx.r = hexZeroPad(fields[1], 32);\n tx.s = hexZeroPad(fields[2], 32);\n\n try {\n const digest = keccak256(serialize(tx));\n tx.from = recoverAddress(digest, { r: tx.r, s: tx.s, recoveryParam: tx.v });\n } catch (error) { }\n}\n\nfunction _parseEip1559(payload: Uint8Array): Transaction {\n const transaction = RLP.decode(payload.slice(1));\n\n if (transaction.length !== 9 && transaction.length !== 12) {\n logger.throwArgumentError(\"invalid component count for transaction type: 2\", \"payload\", hexlify(payload));\n }\n\n const maxPriorityFeePerGas = handleNumber(transaction[2]);\n const maxFeePerGas = handleNumber(transaction[3]);\n const tx: Transaction = {\n type: 2,\n chainId: handleNumber(transaction[0]).toNumber(),\n nonce: handleNumber(transaction[1]).toNumber(),\n maxPriorityFeePerGas: maxPriorityFeePerGas,\n maxFeePerGas: maxFeePerGas,\n gasPrice: null,\n gasLimit: handleNumber(transaction[4]),\n to: handleAddress(transaction[5]),\n value: handleNumber(transaction[6]),\n data: transaction[7],\n accessList: accessListify(transaction[8]),\n };\n\n // Unsigned EIP-1559 Transaction\n if (transaction.length === 9) { return tx; }\n\n tx.hash = keccak256(payload);\n\n _parseEipSignature(tx, transaction.slice(9), _serializeEip1559);\n\n return tx;\n}\n\nfunction _parseEip2930(payload: Uint8Array): Transaction {\n const transaction = RLP.decode(payload.slice(1));\n\n if (transaction.length !== 8 && transaction.length !== 11) {\n logger.throwArgumentError(\"invalid component count for transaction type: 1\", \"payload\", hexlify(payload));\n }\n\n const tx: Transaction = {\n type: 1,\n chainId: handleNumber(transaction[0]).toNumber(),\n nonce: handleNumber(transaction[1]).toNumber(),\n gasPrice: handleNumber(transaction[2]),\n gasLimit: handleNumber(transaction[3]),\n to: handleAddress(transaction[4]),\n value: handleNumber(transaction[5]),\n data: transaction[6],\n accessList: accessListify(transaction[7])\n };\n\n // Unsigned EIP-2930 Transaction\n if (transaction.length === 8) { return tx; }\n\n tx.hash = keccak256(payload);\n\n _parseEipSignature(tx, transaction.slice(8), _serializeEip2930);\n\n return tx;\n}\n\n// Legacy Transactions and EIP-155\nfunction _parse(rawTransaction: Uint8Array): Transaction {\n const transaction = RLP.decode(rawTransaction);\n\n if (transaction.length !== 9 && transaction.length !== 6) {\n logger.throwArgumentError(\"invalid raw transaction\", \"rawTransaction\", rawTransaction);\n }\n\n const tx: Transaction = {\n nonce: handleNumber(transaction[0]).toNumber(),\n gasPrice: handleNumber(transaction[1]),\n gasLimit: handleNumber(transaction[2]),\n to: handleAddress(transaction[3]),\n value: handleNumber(transaction[4]),\n data: transaction[5],\n chainId: 0\n };\n\n // Legacy unsigned transaction\n if (transaction.length === 6) { return tx; }\n\n try {\n tx.v = BigNumber.from(transaction[6]).toNumber();\n\n } catch (error) {\n // @TODO: What makes snese to do? The v is too big\n return tx;\n }\n\n tx.r = hexZeroPad(transaction[7], 32);\n tx.s = hexZeroPad(transaction[8], 32);\n\n if (BigNumber.from(tx.r).isZero() && BigNumber.from(tx.s).isZero()) {\n // EIP-155 unsigned transaction\n tx.chainId = tx.v;\n tx.v = 0;\n\n } else {\n // Signed Transaction\n\n tx.chainId = Math.floor((tx.v - 35) / 2);\n if (tx.chainId < 0) { tx.chainId = 0; }\n\n let recoveryParam = tx.v - 27;\n\n const raw = transaction.slice(0, 6);\n\n if (tx.chainId !== 0) {\n raw.push(hexlify(tx.chainId));\n raw.push(\"0x\");\n raw.push(\"0x\");\n recoveryParam -= tx.chainId * 2 + 8;\n }\n\n const digest = keccak256(RLP.encode(raw));\n try {\n tx.from = recoverAddress(digest, { r: hexlify(tx.r), s: hexlify(tx.s), recoveryParam: recoveryParam });\n } catch (error) { }\n\n tx.hash = keccak256(rawTransaction);\n }\n\n tx.type = null;\n\n return tx;\n}\n\n\nexport function parse(rawTransaction: BytesLike): Transaction {\n const payload = arrayify(rawTransaction);\n\n // Legacy and EIP-155 Transactions\n if (payload[0] > 0x7f) { return _parse(payload); }\n\n // Typed Transaction (EIP-2718)\n switch (payload[0]) {\n case 1:\n return _parseEip2930(payload);\n case 2:\n return _parseEip1559(payload);\n default:\n break;\n }\n\n return logger.throwError(`unsupported transaction type: ${ payload[0] }`, Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"parseTransaction\",\n transactionType: payload[0]\n });\n}\n\n", "export const version = \"contracts/5.7.0\";\n", "\"use strict\";\n\nimport { checkResultErrors, EventFragment, Fragment, FunctionFragment, Indexed, Interface, JsonFragment, LogDescription, ParamType, Result } from \"@ethersproject/abi\";\nimport { Block, BlockTag, Filter, FilterByBlockHash, Listener, Log, Provider, TransactionReceipt, TransactionRequest, TransactionResponse } from \"@ethersproject/abstract-provider\";\nimport { Signer, VoidSigner } from \"@ethersproject/abstract-signer\";\nimport { getAddress, getContractAddress } from \"@ethersproject/address\";\nimport { BigNumber, BigNumberish } from \"@ethersproject/bignumber\";\nimport { arrayify, BytesLike, concat, hexlify, isBytes, isHexString } from \"@ethersproject/bytes\";\nimport { Deferrable, defineReadOnly, deepCopy, getStatic, resolveProperties, shallowCopy } from \"@ethersproject/properties\";\nimport { AccessList, accessListify, AccessListish } from \"@ethersproject/transactions\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\n\nconst logger = new Logger(version);\n\nexport interface Overrides {\n gasLimit?: BigNumberish | Promise;\n gasPrice?: BigNumberish | Promise;\n maxFeePerGas?: BigNumberish | Promise;\n maxPriorityFeePerGas?: BigNumberish | Promise;\n nonce?: BigNumberish | Promise;\n type?: number;\n accessList?: AccessListish;\n customData?: Record;\n ccipReadEnabled?: boolean;\n};\n\nexport interface PayableOverrides extends Overrides {\n value?: BigNumberish | Promise;\n}\n\nexport interface CallOverrides extends PayableOverrides {\n blockTag?: BlockTag | Promise;\n from?: string | Promise;\n}\n\n// @TODO: Better hierarchy with: (in v6)\n// - abstract-provider:TransactionRequest\n// - transactions:Transaction\n// - transaction:UnsignedTransaction\n\nexport interface PopulatedTransaction {\n to?: string;\n from?: string;\n nonce?: number;\n\n gasLimit?: BigNumber;\n gasPrice?: BigNumber;\n\n data?: string;\n value?: BigNumber;\n chainId?: number;\n\n type?: number;\n accessList?: AccessList;\n\n maxFeePerGas?: BigNumber;\n maxPriorityFeePerGas?: BigNumber;\n\n customData?: Record;\n ccipReadEnabled?: boolean;\n};\n\nexport type EventFilter = {\n address?: string;\n topics?: Array>;\n};\n\n\nexport type ContractFunction = (...args: Array) => Promise;\n\n\n// The (n + 1)th parameter passed to contract event callbacks\nexport interface Event extends Log {\n\n // The event name\n event?: string;\n\n // The event signature\n eventSignature?: string;\n\n // The parsed arguments to the event\n args?: Result;\n\n // If parsing the arguments failed, this is the error\n decodeError?: Error;\n\n // A function that can be used to decode event data and topics\n decode?: (data: string, topics?: Array) => any;\n\n // A function that will remove the listener responsible for this event (if any)\n removeListener: () => void;\n\n // Get blockchain details about this event's block and transaction\n getBlock: () => Promise;\n getTransaction: () => Promise;\n getTransactionReceipt: () => Promise;\n}\n\nexport interface ContractReceipt extends TransactionReceipt {\n events?: Array;\n}\n\nexport interface ContractTransaction extends TransactionResponse {\n wait(confirmations?: number): Promise;\n}\n\n///////////////////////////////\n\nconst allowedTransactionKeys: { [ key: string ]: boolean } = {\n chainId: true, data: true, from: true, gasLimit: true, gasPrice:true, nonce: true, to: true, value: true,\n type: true, accessList: true,\n maxFeePerGas: true, maxPriorityFeePerGas: true,\n customData: true,\n ccipReadEnabled: true\n}\n\nasync function resolveName(resolver: Signer | Provider, nameOrPromise: string | Promise): Promise {\n const name = await nameOrPromise;\n\n if (typeof(name) !== \"string\") {\n logger.throwArgumentError(\"invalid address or ENS name\", \"name\", name);\n }\n\n // If it is already an address, just use it (after adding checksum)\n try {\n return getAddress(name);\n } catch (error) { }\n\n if (!resolver) {\n logger.throwError(\"a provider or signer is needed to resolve ENS names\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"resolveName\"\n });\n }\n\n const address = await resolver.resolveName(name);\n\n if (address == null) {\n logger.throwArgumentError(\"resolver or addr is not configured for ENS name\", \"name\", name);\n }\n\n return address;\n}\n\n// Recursively replaces ENS names with promises to resolve the name and resolves all properties\nasync function resolveAddresses(resolver: Signer | Provider, value: any, paramType: ParamType | Array): Promise {\n if (Array.isArray(paramType)) {\n return await Promise.all(paramType.map((paramType, index) => {\n return resolveAddresses(\n resolver,\n ((Array.isArray(value)) ? value[index]: value[paramType.name]),\n paramType\n );\n }));\n }\n\n if (paramType.type === \"address\") {\n return await resolveName(resolver, value);\n }\n\n if (paramType.type === \"tuple\") {\n return await resolveAddresses(resolver, value, paramType.components);\n }\n\n if (paramType.baseType === \"array\") {\n if (!Array.isArray(value)) {\n return Promise.reject(logger.makeError(\"invalid value for array\", Logger.errors.INVALID_ARGUMENT, {\n argument: \"value\",\n value\n }));\n }\n return await Promise.all(value.map((v) => resolveAddresses(resolver, v, paramType.arrayChildren)));\n }\n\n return value;\n}\n\nasync function populateTransaction(contract: Contract, fragment: FunctionFragment, args: Array): Promise {\n // If an extra argument is given, it is overrides\n let overrides: CallOverrides = { };\n if (args.length === fragment.inputs.length + 1 && typeof(args[args.length - 1]) === \"object\") {\n overrides = shallowCopy(args.pop());\n }\n\n // Make sure the parameter count matches\n logger.checkArgumentCount(args.length, fragment.inputs.length, \"passed to contract\");\n\n // Populate \"from\" override (allow promises)\n if (contract.signer) {\n if (overrides.from) {\n // Contracts with a Signer are from the Signer's frame-of-reference;\n // but we allow overriding \"from\" if it matches the signer\n overrides.from = resolveProperties({\n override: resolveName(contract.signer, overrides.from),\n signer: contract.signer.getAddress()\n }).then(async (check) => {\n if (getAddress(check.signer) !== check.override) {\n logger.throwError(\"Contract with a Signer cannot override from\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"overrides.from\"\n });\n }\n\n return check.override;\n });\n\n } else {\n overrides.from = contract.signer.getAddress();\n }\n\n } else if (overrides.from) {\n overrides.from = resolveName(contract.provider, overrides.from);\n\n //} else {\n // Contracts without a signer can override \"from\", and if\n // unspecified the zero address is used\n //overrides.from = AddressZero;\n }\n\n // Wait for all dependencies to be resolved (prefer the signer over the provider)\n const resolved = await resolveProperties({\n args: resolveAddresses(contract.signer || contract.provider, args, fragment.inputs),\n address: contract.resolvedAddress,\n overrides: (resolveProperties(overrides) || { })\n });\n\n // The ABI coded transaction\n const data = contract.interface.encodeFunctionData(fragment, resolved.args);\n const tx: PopulatedTransaction = {\n data: data,\n to: resolved.address\n };\n\n // Resolved Overrides\n const ro = resolved.overrides;\n\n // Populate simple overrides\n if (ro.nonce != null) { tx.nonce = BigNumber.from(ro.nonce).toNumber(); }\n if (ro.gasLimit != null) { tx.gasLimit = BigNumber.from(ro.gasLimit); }\n if (ro.gasPrice != null) { tx.gasPrice = BigNumber.from(ro.gasPrice); }\n if (ro.maxFeePerGas != null) { tx.maxFeePerGas = BigNumber.from(ro.maxFeePerGas); }\n if (ro.maxPriorityFeePerGas != null) { tx.maxPriorityFeePerGas = BigNumber.from(ro.maxPriorityFeePerGas); }\n if (ro.from != null) { tx.from = ro.from; }\n\n if (ro.type != null) { tx.type = ro.type; }\n if (ro.accessList != null) { tx.accessList = accessListify(ro.accessList); }\n\n // If there was no \"gasLimit\" override, but the ABI specifies a default, use it\n if (tx.gasLimit == null && fragment.gas != null) {\n // Compute the intrinsic gas cost for this transaction\n // @TODO: This is based on the yellow paper as of Petersburg; this is something\n // we may wish to parameterize in v6 as part of the Network object. Since this\n // is always a non-nil to address, we can ignore G_create, but may wish to add\n // similar logic to the ContractFactory.\n let intrinsic = 21000;\n const bytes = arrayify(data);\n for (let i = 0; i < bytes.length; i++) {\n intrinsic += 4;\n if (bytes[i]) { intrinsic += 64; }\n }\n tx.gasLimit = BigNumber.from(fragment.gas).add(intrinsic);\n }\n\n // Populate \"value\" override\n if (ro.value) {\n const roValue = BigNumber.from(ro.value);\n if (!roValue.isZero() && !fragment.payable) {\n logger.throwError(\"non-payable method cannot override value\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"overrides.value\",\n value: overrides.value\n });\n }\n tx.value = roValue;\n }\n\n if (ro.customData) {\n tx.customData = shallowCopy(ro.customData);\n }\n\n if (ro.ccipReadEnabled) {\n tx.ccipReadEnabled = !!ro.ccipReadEnabled;\n }\n\n // Remove the overrides\n delete overrides.nonce;\n delete overrides.gasLimit;\n delete overrides.gasPrice;\n delete overrides.from;\n delete overrides.value;\n\n delete overrides.type;\n delete overrides.accessList;\n\n delete overrides.maxFeePerGas;\n delete overrides.maxPriorityFeePerGas;\n\n delete overrides.customData;\n delete overrides.ccipReadEnabled;\n\n // Make sure there are no stray overrides, which may indicate a\n // typo or using an unsupported key.\n const leftovers = Object.keys(overrides).filter((key) => ((overrides)[key] != null));\n if (leftovers.length) {\n logger.throwError(`cannot override ${ leftovers.map((l) => JSON.stringify(l)).join(\",\") }`, Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"overrides\",\n overrides: leftovers\n });\n }\n\n return tx;\n}\n\n\nfunction buildPopulate(contract: Contract, fragment: FunctionFragment): ContractFunction {\n return function(...args: Array): Promise {\n return populateTransaction(contract, fragment, args);\n };\n}\n\nfunction buildEstimate(contract: Contract, fragment: FunctionFragment): ContractFunction {\n const signerOrProvider = (contract.signer || contract.provider);\n return async function(...args: Array): Promise {\n if (!signerOrProvider) {\n logger.throwError(\"estimate require a provider or signer\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"estimateGas\"\n })\n }\n\n const tx = await populateTransaction(contract, fragment, args);\n return await signerOrProvider.estimateGas(tx);\n };\n}\n\nfunction addContractWait(contract: Contract, tx: TransactionResponse) {\n const wait = tx.wait.bind(tx);\n tx.wait = (confirmations?: number) => {\n return wait(confirmations).then((receipt: ContractReceipt) => {\n receipt.events = receipt.logs.map((log) => {\n let event: Event = (deepCopy(log));\n let parsed: LogDescription = null;\n try {\n parsed = contract.interface.parseLog(log);\n } catch (e){ }\n\n // Successfully parsed the event log; include it\n if (parsed) {\n event.args = parsed.args;\n event.decode = (data: BytesLike, topics?: Array) => {\n return contract.interface.decodeEventLog(parsed.eventFragment, data, topics);\n };\n event.event = parsed.name;\n event.eventSignature = parsed.signature;\n }\n\n // Useful operations\n event.removeListener = () => { return contract.provider; }\n event.getBlock = () => {\n return contract.provider.getBlock(receipt.blockHash);\n }\n event.getTransaction = () => {\n return contract.provider.getTransaction(receipt.transactionHash);\n }\n event.getTransactionReceipt = () => {\n return Promise.resolve(receipt);\n }\n\n return event;\n });\n\n return receipt;\n });\n };\n}\n\nfunction buildCall(contract: Contract, fragment: FunctionFragment, collapseSimple: boolean): ContractFunction {\n const signerOrProvider = (contract.signer || contract.provider);\n\n return async function(...args: Array): Promise {\n // Extract the \"blockTag\" override if present\n let blockTag = undefined;\n if (args.length === fragment.inputs.length + 1 && typeof(args[args.length - 1]) === \"object\") {\n const overrides = shallowCopy(args.pop());\n if (overrides.blockTag != null) {\n blockTag = await overrides.blockTag;\n }\n delete overrides.blockTag;\n args.push(overrides);\n }\n\n // If the contract was just deployed, wait until it is mined\n if (contract.deployTransaction != null) {\n await contract._deployed(blockTag);\n }\n\n // Call a node and get the result\n const tx = await populateTransaction(contract, fragment, args);\n const result = await signerOrProvider.call(tx, blockTag);\n\n try {\n let value = contract.interface.decodeFunctionResult(fragment, result);\n if (collapseSimple && fragment.outputs.length === 1) {\n value = value[0];\n }\n return value;\n\n } catch (error) {\n if (error.code === Logger.errors.CALL_EXCEPTION) {\n error.address = contract.address;\n error.args = args;\n error.transaction = tx;\n }\n throw error;\n }\n };\n}\n\nfunction buildSend(contract: Contract, fragment: FunctionFragment): ContractFunction {\n return async function(...args: Array): Promise {\n if (!contract.signer) {\n logger.throwError(\"sending a transaction requires a signer\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"sendTransaction\"\n })\n }\n\n // If the contract was just deployed, wait until it is mined\n if (contract.deployTransaction != null) {\n await contract._deployed();\n }\n\n const txRequest = await populateTransaction(contract, fragment, args);\n\n const tx = await contract.signer.sendTransaction(txRequest);\n\n // Tweak the tx.wait so the receipt has extra properties\n addContractWait(contract, tx);\n\n return tx;\n };\n}\n\nfunction buildDefault(contract: Contract, fragment: FunctionFragment, collapseSimple: boolean): ContractFunction {\n if (fragment.constant) {\n return buildCall(contract, fragment, collapseSimple);\n }\n return buildSend(contract, fragment);\n}\n\nfunction getEventTag(filter: EventFilter): string {\n if (filter.address && (filter.topics == null || filter.topics.length === 0)) {\n return \"*\";\n }\n\n return (filter.address || \"*\") + \"@\" + (filter.topics ? filter.topics.map((topic) => {\n if (Array.isArray(topic)) {\n return topic.join(\"|\");\n }\n return topic;\n }).join(\":\"): \"\");\n}\n\nclass RunningEvent {\n readonly tag: string;\n readonly filter: EventFilter;\n private _listeners: Array<{ listener: Listener, once: boolean }>;\n\n constructor(tag: string, filter: EventFilter) {\n defineReadOnly(this, \"tag\", tag);\n defineReadOnly(this, \"filter\", filter);\n this._listeners = [ ];\n }\n\n addListener(listener: Listener, once: boolean): void {\n this._listeners.push({ listener: listener, once: once });\n }\n\n removeListener(listener: Listener): void {\n let done = false;\n this._listeners = this._listeners.filter((item) => {\n if (done || item.listener !== listener) { return true; }\n done = true;\n return false;\n });\n }\n\n removeAllListeners(): void {\n this._listeners = [];\n }\n\n listeners(): Array {\n return this._listeners.map((i) => i.listener);\n }\n\n listenerCount(): number {\n return this._listeners.length;\n }\n\n run(args: Array): number {\n const listenerCount = this.listenerCount();\n this._listeners = this._listeners.filter((item) => {\n\n const argsCopy = args.slice();\n\n // Call the callback in the next event loop\n setTimeout(() => {\n item.listener.apply(this, argsCopy);\n }, 0);\n\n // Reschedule it if it not \"once\"\n return !(item.once);\n });\n\n return listenerCount;\n }\n\n prepareEvent(event: Event): void {\n }\n\n // Returns the array that will be applied to an emit\n getEmit(event: Event): Array {\n return [ event ];\n }\n}\n\nclass ErrorRunningEvent extends RunningEvent {\n constructor() {\n super(\"error\", null);\n }\n}\n\n\n// @TODO Fragment should inherit Wildcard? and just override getEmit?\n// or have a common abstract super class, with enough constructor\n// options to configure both.\n\n// A Fragment Event will populate all the properties that Wildcard\n// will, and additionally dereference the arguments when emitting\nclass FragmentRunningEvent extends RunningEvent {\n readonly address: string;\n readonly interface: Interface;\n readonly fragment: EventFragment;\n\n constructor(address: string, contractInterface: Interface, fragment: EventFragment, topics?: Array>) {\n const filter: EventFilter = {\n address: address\n }\n\n let topic = contractInterface.getEventTopic(fragment);\n if (topics) {\n if (topic !== topics[0]) { logger.throwArgumentError(\"topic mismatch\", \"topics\", topics); }\n filter.topics = topics.slice();\n } else {\n filter.topics = [ topic ];\n }\n\n super(getEventTag(filter), filter);\n defineReadOnly(this, \"address\", address);\n defineReadOnly(this, \"interface\", contractInterface);\n defineReadOnly(this, \"fragment\", fragment);\n }\n\n\n prepareEvent(event: Event): void {\n super.prepareEvent(event);\n\n event.event = this.fragment.name;\n event.eventSignature = this.fragment.format();\n\n event.decode = (data: BytesLike, topics?: Array) => {\n return this.interface.decodeEventLog(this.fragment, data, topics);\n };\n\n try {\n event.args = this.interface.decodeEventLog(this.fragment, event.data, event.topics);\n } catch (error) {\n event.args = null;\n event.decodeError = error;\n }\n }\n\n getEmit(event: Event): Array {\n const errors = checkResultErrors(event.args);\n if (errors.length) { throw errors[0].error; }\n\n const args = (event.args || []).slice();\n args.push(event);\n return args;\n }\n}\n\n// A Wildcard Event will attempt to populate:\n// - event The name of the event name\n// - eventSignature The full signature of the event\n// - decode A function to decode data and topics\n// - args The decoded data and topics\nclass WildcardRunningEvent extends RunningEvent {\n readonly address: string;\n readonly interface: Interface;\n\n constructor(address: string, contractInterface: Interface) {\n super(\"*\", { address: address });\n defineReadOnly(this, \"address\", address);\n defineReadOnly(this, \"interface\", contractInterface);\n }\n\n prepareEvent(event: Event): void {\n super.prepareEvent(event);\n\n try {\n const parsed = this.interface.parseLog(event);\n event.event = parsed.name;\n event.eventSignature = parsed.signature;\n\n event.decode = (data: BytesLike, topics?: Array) => {\n return this.interface.decodeEventLog(parsed.eventFragment, data, topics);\n };\n\n event.args = parsed.args;\n } catch (error) {\n // No matching event\n }\n }\n}\n\nexport type ContractInterface = string | ReadonlyArray | Interface;\n\ntype InterfaceFunc = (contractInterface: ContractInterface) => Interface;\n\n\nexport class BaseContract {\n readonly address: string;\n readonly interface: Interface;\n\n readonly signer: Signer;\n readonly provider: Provider;\n\n readonly functions: { [ name: string ]: ContractFunction };\n\n readonly callStatic: { [ name: string ]: ContractFunction };\n readonly estimateGas: { [ name: string ]: ContractFunction };\n readonly populateTransaction: { [ name: string ]: ContractFunction };\n\n readonly filters: { [ name: string ]: (...args: Array) => EventFilter };\n\n // This will always be an address. This will only differ from\n // address if an ENS name was used in the constructor\n readonly resolvedAddress: Promise;\n\n // This is only set if the contract was created with a call to deploy\n readonly deployTransaction: TransactionResponse;\n\n _deployedPromise: Promise;\n\n // A list of RunningEvents to track listeners for each event tag\n _runningEvents: { [ eventTag: string ]: RunningEvent };\n\n // Wrapped functions to call emit and allow deregistration from the provider\n _wrappedEmits: { [ eventTag: string ]: (...args: Array) => void };\n\n constructor(addressOrName: string, contractInterface: ContractInterface, signerOrProvider?: Signer | Provider) {\n // @TODO: Maybe still check the addressOrName looks like a valid address or name?\n //address = getAddress(address);\n defineReadOnly(this, \"interface\", getStatic(new.target, \"getInterface\")(contractInterface));\n\n if (signerOrProvider == null) {\n defineReadOnly(this, \"provider\", null);\n defineReadOnly(this, \"signer\", null);\n } else if (Signer.isSigner(signerOrProvider)) {\n defineReadOnly(this, \"provider\", signerOrProvider.provider || null);\n defineReadOnly(this, \"signer\", signerOrProvider);\n } else if (Provider.isProvider(signerOrProvider)) {\n defineReadOnly(this, \"provider\", signerOrProvider);\n defineReadOnly(this, \"signer\", null);\n } else {\n logger.throwArgumentError(\"invalid signer or provider\", \"signerOrProvider\", signerOrProvider);\n }\n\n defineReadOnly(this, \"callStatic\", { });\n defineReadOnly(this, \"estimateGas\", { });\n defineReadOnly(this, \"functions\", { });\n defineReadOnly(this, \"populateTransaction\", { });\n\n defineReadOnly(this, \"filters\", { });\n\n {\n const uniqueFilters: { [ name: string ]: Array } = { };\n Object.keys(this.interface.events).forEach((eventSignature) => {\n const event = this.interface.events[eventSignature];\n defineReadOnly(this.filters, eventSignature, (...args: Array) => {\n return {\n address: this.address,\n topics: this.interface.encodeFilterTopics(event, args)\n }\n });\n if (!uniqueFilters[event.name]) { uniqueFilters[event.name] = [ ]; }\n uniqueFilters[event.name].push(eventSignature);\n });\n\n Object.keys(uniqueFilters).forEach((name) => {\n const filters = uniqueFilters[name];\n if (filters.length === 1) {\n defineReadOnly(this.filters, name, this.filters[filters[0]]);\n } else {\n logger.warn(`Duplicate definition of ${ name } (${ filters.join(\", \")})`);\n }\n });\n }\n\n defineReadOnly(this, \"_runningEvents\", { });\n defineReadOnly(this, \"_wrappedEmits\", { });\n\n if (addressOrName == null) {\n logger.throwArgumentError(\"invalid contract address or ENS name\", \"addressOrName\", addressOrName);\n }\n\n defineReadOnly(this, \"address\", addressOrName);\n if (this.provider) {\n defineReadOnly(this, \"resolvedAddress\", resolveName(this.provider, addressOrName));\n } else {\n try {\n defineReadOnly(this, \"resolvedAddress\", Promise.resolve(getAddress(addressOrName)));\n } catch (error) {\n // Without a provider, we cannot use ENS names\n logger.throwError(\"provider is required to use ENS name as contract address\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"new Contract\"\n });\n }\n }\n\n // Swallow bad ENS names to prevent Unhandled Exceptions\n this.resolvedAddress.catch((e) => { });\n\n const uniqueNames: { [ name: string ]: Array } = { };\n const uniqueSignatures: { [ signature: string ]: boolean } = { };\n Object.keys(this.interface.functions).forEach((signature) => {\n const fragment = this.interface.functions[signature];\n\n // Check that the signature is unique; if not the ABI generation has\n // not been cleaned or may be incorrectly generated\n if (uniqueSignatures[signature]) {\n logger.warn(`Duplicate ABI entry for ${ JSON.stringify(signature) }`);\n return;\n }\n uniqueSignatures[signature] = true;\n\n // Track unique names; we only expose bare named functions if they\n // are ambiguous\n {\n const name = fragment.name;\n if (!uniqueNames[`%${ name }`]) { uniqueNames[`%${ name }`] = [ ]; }\n uniqueNames[`%${ name }`].push(signature);\n }\n\n if ((this)[signature] == null) {\n defineReadOnly(this, signature, buildDefault(this, fragment, true));\n }\n\n // We do not collapse simple calls on this bucket, which allows\n // frameworks to safely use this without introspection as well as\n // allows decoding error recovery.\n if (this.functions[signature] == null) {\n defineReadOnly(this.functions, signature, buildDefault(this, fragment, false));\n }\n\n if (this.callStatic[signature] == null) {\n defineReadOnly(this.callStatic, signature, buildCall(this, fragment, true));\n }\n\n if (this.populateTransaction[signature] == null) {\n defineReadOnly(this.populateTransaction, signature, buildPopulate(this, fragment));\n }\n\n if (this.estimateGas[signature] == null) {\n defineReadOnly(this.estimateGas, signature, buildEstimate(this, fragment));\n }\n });\n\n Object.keys(uniqueNames).forEach((name) => {\n // Ambiguous names to not get attached as bare names\n const signatures = uniqueNames[name];\n if (signatures.length > 1) { return; }\n\n // Strip off the leading \"%\" used for prototype protection\n name = name.substring(1);\n\n const signature = signatures[0];\n\n // If overwriting a member property that is null, swallow the error\n try {\n if ((this)[name] == null) {\n defineReadOnly(this, name, (this)[signature]);\n }\n } catch (e) { }\n\n if (this.functions[name] == null) {\n defineReadOnly(this.functions, name, this.functions[signature]);\n }\n\n if (this.callStatic[name] == null) {\n defineReadOnly(this.callStatic, name, this.callStatic[signature]);\n }\n\n if (this.populateTransaction[name] == null) {\n defineReadOnly(this.populateTransaction, name, this.populateTransaction[signature]);\n }\n\n if (this.estimateGas[name] == null) {\n defineReadOnly(this.estimateGas, name, this.estimateGas[signature]);\n }\n });\n }\n\n static getContractAddress(transaction: { from: string, nonce: BigNumberish }): string {\n return getContractAddress(transaction);\n }\n\n static getInterface(contractInterface: ContractInterface): Interface {\n if (Interface.isInterface(contractInterface)) {\n return contractInterface;\n }\n return new Interface(contractInterface);\n }\n\n // @TODO: Allow timeout?\n deployed(): Promise {\n return this._deployed();\n }\n\n _deployed(blockTag?: BlockTag): Promise {\n if (!this._deployedPromise) {\n\n // If we were just deployed, we know the transaction we should occur in\n if (this.deployTransaction) {\n this._deployedPromise = this.deployTransaction.wait().then(() => {\n return this;\n });\n\n } else {\n // @TODO: Once we allow a timeout to be passed in, we will wait\n // up to that many blocks for getCode\n\n // Otherwise, poll for our code to be deployed\n this._deployedPromise = this.provider.getCode(this.address, blockTag).then((code) => {\n if (code === \"0x\") {\n logger.throwError(\"contract not deployed\", Logger.errors.UNSUPPORTED_OPERATION, {\n contractAddress: this.address,\n operation: \"getDeployed\"\n });\n }\n return this;\n });\n }\n }\n\n return this._deployedPromise;\n }\n\n // @TODO:\n // estimateFallback(overrides?: TransactionRequest): Promise\n\n // @TODO:\n // estimateDeploy(bytecode: string, ...args): Promise\n\n fallback(overrides?: TransactionRequest): Promise {\n if (!this.signer) {\n logger.throwError(\"sending a transactions require a signer\", Logger.errors.UNSUPPORTED_OPERATION, { operation: \"sendTransaction(fallback)\" })\n }\n\n const tx: Deferrable = shallowCopy(overrides || {});\n\n [\"from\", \"to\"].forEach(function(key) {\n if ((tx)[key] == null) { return; }\n logger.throwError(\"cannot override \" + key, Logger.errors.UNSUPPORTED_OPERATION, { operation: key })\n });\n\n tx.to = this.resolvedAddress;\n return this.deployed().then(() => {\n return this.signer.sendTransaction(tx);\n });\n }\n\n // Reconnect to a different signer or provider\n connect(signerOrProvider: Signer | Provider | string): Contract {\n if (typeof(signerOrProvider) === \"string\") {\n signerOrProvider = new VoidSigner(signerOrProvider, this.provider);\n }\n\n const contract = new (<{ new(...args: any[]): Contract }>(this.constructor))(this.address, this.interface, signerOrProvider);\n if (this.deployTransaction) {\n defineReadOnly(contract, \"deployTransaction\", this.deployTransaction);\n }\n\n return contract;\n }\n\n // Re-attach to a different on-chain instance of this contract\n attach(addressOrName: string): Contract {\n return new (<{ new(...args: any[]): Contract }>(this.constructor))(addressOrName, this.interface, this.signer || this.provider);\n }\n\n static isIndexed(value: any): value is Indexed {\n return Indexed.isIndexed(value);\n }\n\n private _normalizeRunningEvent(runningEvent: RunningEvent): RunningEvent {\n // Already have an instance of this event running; we can re-use it\n if (this._runningEvents[runningEvent.tag]) {\n return this._runningEvents[runningEvent.tag];\n }\n return runningEvent\n }\n\n private _getRunningEvent(eventName: EventFilter | string): RunningEvent {\n if (typeof(eventName) === \"string\") {\n\n // Listen for \"error\" events (if your contract has an error event, include\n // the full signature to bypass this special event keyword)\n if (eventName === \"error\") {\n return this._normalizeRunningEvent(new ErrorRunningEvent());\n }\n\n // Listen for any event that is registered\n if (eventName === \"event\") {\n return this._normalizeRunningEvent(new RunningEvent(\"event\", null));\n }\n\n // Listen for any event\n if (eventName === \"*\") {\n return this._normalizeRunningEvent(new WildcardRunningEvent(this.address, this.interface));\n }\n\n // Get the event Fragment (throws if ambiguous/unknown event)\n const fragment = this.interface.getEvent(eventName)\n return this._normalizeRunningEvent(new FragmentRunningEvent(this.address, this.interface, fragment));\n }\n\n // We have topics to filter by...\n if (eventName.topics && eventName.topics.length > 0) {\n\n // Is it a known topichash? (throws if no matching topichash)\n try {\n const topic = eventName.topics[0];\n if (typeof(topic) !== \"string\") {\n throw new Error(\"invalid topic\"); // @TODO: May happen for anonymous events\n }\n const fragment = this.interface.getEvent(topic);\n return this._normalizeRunningEvent(new FragmentRunningEvent(this.address, this.interface, fragment, eventName.topics));\n } catch (error) { }\n\n // Filter by the unknown topichash\n const filter: EventFilter = {\n address: this.address,\n topics: eventName.topics\n }\n\n return this._normalizeRunningEvent(new RunningEvent(getEventTag(filter), filter));\n }\n\n return this._normalizeRunningEvent(new WildcardRunningEvent(this.address, this.interface));\n }\n\n _checkRunningEvents(runningEvent: RunningEvent): void {\n if (runningEvent.listenerCount() === 0) {\n delete this._runningEvents[runningEvent.tag];\n\n // If we have a poller for this, remove it\n const emit = this._wrappedEmits[runningEvent.tag];\n if (emit && runningEvent.filter) {\n this.provider.off(runningEvent.filter, emit);\n delete this._wrappedEmits[runningEvent.tag];\n }\n }\n }\n\n // Subclasses can override this to gracefully recover\n // from parse errors if they wish\n _wrapEvent(runningEvent: RunningEvent, log: Log, listener: Listener): Event {\n const event = deepCopy(log);\n\n event.removeListener = () => {\n if (!listener) { return; }\n runningEvent.removeListener(listener);\n this._checkRunningEvents(runningEvent);\n };\n\n event.getBlock = () => { return this.provider.getBlock(log.blockHash); }\n event.getTransaction = () => { return this.provider.getTransaction(log.transactionHash); }\n event.getTransactionReceipt = () => { return this.provider.getTransactionReceipt(log.transactionHash); }\n\n // This may throw if the topics and data mismatch the signature\n runningEvent.prepareEvent(event);\n\n return event;\n }\n\n private _addEventListener(runningEvent: RunningEvent, listener: Listener, once: boolean): void {\n if (!this.provider) {\n logger.throwError(\"events require a provider or a signer with a provider\", Logger.errors.UNSUPPORTED_OPERATION, { operation: \"once\" })\n }\n\n runningEvent.addListener(listener, once);\n\n // Track this running event and its listeners (may already be there; but no hard in updating)\n this._runningEvents[runningEvent.tag] = runningEvent;\n\n // If we are not polling the provider, start polling\n if (!this._wrappedEmits[runningEvent.tag]) {\n const wrappedEmit = (log: Log) => {\n let event = this._wrapEvent(runningEvent, log, listener);\n\n // Try to emit the result for the parameterized event...\n if (event.decodeError == null) {\n try {\n const args = runningEvent.getEmit(event);\n this.emit(runningEvent.filter, ...args);\n } catch (error) {\n event.decodeError = error.error;\n }\n }\n\n // Always emit \"event\" for fragment-base events\n if (runningEvent.filter != null) {\n this.emit(\"event\", event);\n }\n\n // Emit \"error\" if there was an error\n if (event.decodeError != null) {\n this.emit(\"error\", event.decodeError, event);\n }\n };\n this._wrappedEmits[runningEvent.tag] = wrappedEmit;\n\n // Special events, like \"error\" do not have a filter\n if (runningEvent.filter != null) {\n this.provider.on(runningEvent.filter, wrappedEmit);\n }\n }\n }\n\n queryFilter(event: EventFilter | string, fromBlockOrBlockhash?: BlockTag | string, toBlock?: BlockTag): Promise> {\n const runningEvent = this._getRunningEvent(event);\n const filter = shallowCopy(runningEvent.filter);\n\n if (typeof(fromBlockOrBlockhash) === \"string\" && isHexString(fromBlockOrBlockhash, 32)) {\n if (toBlock != null) {\n logger.throwArgumentError(\"cannot specify toBlock with blockhash\", \"toBlock\", toBlock);\n }\n (filter).blockHash = fromBlockOrBlockhash;\n } else {\n (filter).fromBlock = ((fromBlockOrBlockhash != null) ? fromBlockOrBlockhash: 0);\n (filter).toBlock = ((toBlock != null) ? toBlock: \"latest\");\n }\n\n return this.provider.getLogs(filter).then((logs) => {\n return logs.map((log) => this._wrapEvent(runningEvent, log, null));\n });\n }\n\n on(event: EventFilter | string, listener: Listener): this {\n this._addEventListener(this._getRunningEvent(event), listener, false);\n return this;\n }\n\n once(event: EventFilter | string, listener: Listener): this {\n this._addEventListener(this._getRunningEvent(event), listener, true);\n return this;\n }\n\n emit(eventName: EventFilter | string, ...args: Array): boolean {\n if (!this.provider) { return false; }\n\n const runningEvent = this._getRunningEvent(eventName);\n const result = (runningEvent.run(args) > 0);\n\n // May have drained all the \"once\" events; check for living events\n this._checkRunningEvents(runningEvent);\n\n return result;\n }\n\n listenerCount(eventName?: EventFilter | string): number {\n if (!this.provider) { return 0; }\n if (eventName == null) {\n return Object.keys(this._runningEvents).reduce((accum, key) => {\n return accum + this._runningEvents[key].listenerCount();\n }, 0);\n }\n return this._getRunningEvent(eventName).listenerCount();\n }\n\n listeners(eventName?: EventFilter | string): Array {\n if (!this.provider) { return []; }\n\n if (eventName == null) {\n const result: Array = [ ];\n for (let tag in this._runningEvents) {\n this._runningEvents[tag].listeners().forEach((listener) => {\n result.push(listener)\n });\n }\n return result;\n }\n\n return this._getRunningEvent(eventName).listeners();\n }\n\n removeAllListeners(eventName?: EventFilter | string): this {\n if (!this.provider) { return this; }\n\n if (eventName == null) {\n for (const tag in this._runningEvents) {\n const runningEvent = this._runningEvents[tag];\n runningEvent.removeAllListeners();\n this._checkRunningEvents(runningEvent);\n }\n return this;\n }\n\n // Delete any listeners\n const runningEvent = this._getRunningEvent(eventName);\n runningEvent.removeAllListeners();\n this._checkRunningEvents(runningEvent);\n\n return this;\n }\n\n off(eventName: EventFilter | string, listener: Listener): this {\n if (!this.provider) { return this; }\n const runningEvent = this._getRunningEvent(eventName);\n runningEvent.removeListener(listener);\n this._checkRunningEvents(runningEvent);\n return this;\n }\n\n removeListener(eventName: EventFilter | string, listener: Listener): this {\n return this.off(eventName, listener);\n }\n\n}\n\nexport class Contract extends BaseContract {\n // The meta-class properties\n readonly [ key: string ]: ContractFunction | any;\n}\n\nexport class ContractFactory {\n\n readonly interface: Interface;\n readonly bytecode: string;\n readonly signer: Signer;\n\n constructor(contractInterface: ContractInterface, bytecode: BytesLike | { object: string }, signer?: Signer) {\n\n let bytecodeHex: string = null;\n\n if (typeof(bytecode) === \"string\") {\n bytecodeHex = bytecode;\n } else if (isBytes(bytecode)) {\n bytecodeHex = hexlify(bytecode);\n } else if (bytecode && typeof(bytecode.object) === \"string\") {\n // Allow the bytecode object from the Solidity compiler\n bytecodeHex = (bytecode).object;\n } else {\n // Crash in the next verification step\n bytecodeHex = \"!\";\n }\n\n // Make sure it is 0x prefixed\n if (bytecodeHex.substring(0, 2) !== \"0x\") { bytecodeHex = \"0x\" + bytecodeHex; }\n\n // Make sure the final result is valid bytecode\n if (!isHexString(bytecodeHex) || (bytecodeHex.length % 2)) {\n logger.throwArgumentError(\"invalid bytecode\", \"bytecode\", bytecode);\n }\n\n // If we have a signer, make sure it is valid\n if (signer && !Signer.isSigner(signer)) {\n logger.throwArgumentError(\"invalid signer\", \"signer\", signer);\n }\n\n defineReadOnly(this, \"bytecode\", bytecodeHex);\n defineReadOnly(this, \"interface\", getStatic(new.target, \"getInterface\")(contractInterface));\n defineReadOnly(this, \"signer\", signer || null);\n }\n\n // @TODO: Future; rename to populateTransaction?\n getDeployTransaction(...args: Array): TransactionRequest {\n let tx: TransactionRequest = { };\n\n // If we have 1 additional argument, we allow transaction overrides\n if (args.length === this.interface.deploy.inputs.length + 1 && typeof(args[args.length - 1]) === \"object\") {\n tx = shallowCopy(args.pop());\n for (const key in tx) {\n if (!allowedTransactionKeys[key]) {\n throw new Error(\"unknown transaction override \" + key);\n }\n }\n }\n\n // Do not allow these to be overridden in a deployment transaction\n [\"data\", \"from\", \"to\"].forEach((key) => {\n if ((tx)[key] == null) { return; }\n logger.throwError(\"cannot override \" + key, Logger.errors.UNSUPPORTED_OPERATION, { operation: key })\n });\n\n if (tx.value) {\n const value = BigNumber.from(tx.value);\n if (!value.isZero() && !this.interface.deploy.payable) {\n logger.throwError(\"non-payable constructor cannot override value\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"overrides.value\",\n value: tx.value\n });\n }\n }\n\n // Make sure the call matches the constructor signature\n logger.checkArgumentCount(args.length, this.interface.deploy.inputs.length, \" in Contract constructor\");\n\n // Set the data to the bytecode + the encoded constructor arguments\n tx.data = hexlify(concat([\n this.bytecode,\n this.interface.encodeDeploy(args)\n ]));\n\n return tx\n }\n\n async deploy(...args: Array): Promise {\n\n let overrides: any = { };\n\n // If 1 extra parameter was passed in, it contains overrides\n if (args.length === this.interface.deploy.inputs.length + 1) {\n overrides = args.pop();\n }\n\n // Make sure the call matches the constructor signature\n logger.checkArgumentCount(args.length, this.interface.deploy.inputs.length, \" in Contract constructor\");\n\n // Resolve ENS names and promises in the arguments\n const params = await resolveAddresses(this.signer, args, this.interface.deploy.inputs);\n params.push(overrides);\n\n // Get the deployment transaction (with optional overrides)\n const unsignedTx = this.getDeployTransaction(...params);\n\n // Send the deployment transaction\n const tx = await this.signer.sendTransaction(unsignedTx);\n\n const address = getStatic<(tx: TransactionResponse) => string>(this.constructor, \"getContractAddress\")(tx);\n const contract = getStatic<(address: string, contractInterface: ContractInterface, signer?: Signer) => Contract>(this.constructor, \"getContract\")(address, this.interface, this.signer);\n\n // Add the modified wait that wraps events\n addContractWait(contract, tx);\n\n defineReadOnly(contract, \"deployTransaction\", tx);\n return contract;\n }\n\n attach(address: string): Contract {\n return ((this.constructor)).getContract(address, this.interface, this.signer);\n }\n\n connect(signer: Signer) {\n return new (<{ new(...args: any[]): ContractFactory }>(this.constructor))(this.interface, this.bytecode, signer);\n }\n\n static fromSolidity(compilerOutput: any, signer?: Signer): ContractFactory {\n if (compilerOutput == null) {\n logger.throwError(\"missing compiler output\", Logger.errors.MISSING_ARGUMENT, { argument: \"compilerOutput\" });\n }\n\n if (typeof(compilerOutput) === \"string\") {\n compilerOutput = JSON.parse(compilerOutput);\n }\n\n const abi = compilerOutput.abi;\n\n let bytecode: any = null;\n if (compilerOutput.bytecode) {\n bytecode = compilerOutput.bytecode;\n } else if (compilerOutput.evm && compilerOutput.evm.bytecode) {\n bytecode = compilerOutput.evm.bytecode;\n }\n\n return new this(abi, bytecode, signer);\n }\n\n static getInterface(contractInterface: ContractInterface) {\n return Contract.getInterface(contractInterface);\n }\n\n static getContractAddress(tx: { from: string, nonce: BytesLike | BigNumber | number }): string {\n return getContractAddress(tx);\n }\n\n static getContract(address: string, contractInterface: ContractInterface, signer?: Signer): Contract {\n return new Contract(address, contractInterface, signer);\n }\n}\n", "/**\n * var basex = require(\"base-x\");\n *\n * This implementation is heavily based on base-x. The main reason to\n * deviate was to prevent the dependency of Buffer.\n *\n * Contributors:\n *\n * base-x encoding\n * Forked from https://github.com/cryptocoinjs/bs58\n * Originally written by Mike Hearn for BitcoinJ\n * Copyright (c) 2011 Google Inc\n * Ported to JavaScript by Stefan Thomas\n * Merged Buffer refactorings from base58-native by Stephen Pair\n * Copyright (c) 2013 BitPay Inc\n *\n * The MIT License (MIT)\n *\n * Copyright base-x contributors (c) 2016\n *\n * Permission is hereby granted, free of charge, to any person obtaining a\n * copy of this software and associated documentation files (the \"Software\"),\n * to deal in the Software without restriction, including without limitation\n * the rights to use, copy, modify, merge, publish, distribute, sublicense,\n * and/or sell copies of the Software, and to permit persons to whom the\n * Software is furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n *\n */\n\nimport { arrayify, BytesLike } from \"@ethersproject/bytes\";\nimport { defineReadOnly } from \"@ethersproject/properties\";\n\nexport class BaseX {\n readonly alphabet: string;\n readonly base: number;\n\n _alphabetMap: { [ character: string ]: number };\n _leader: string;\n\n constructor(alphabet: string) {\n defineReadOnly(this, \"alphabet\", alphabet);\n defineReadOnly(this, \"base\", alphabet.length);\n\n defineReadOnly(this, \"_alphabetMap\", { });\n defineReadOnly(this, \"_leader\", alphabet.charAt(0));\n\n // pre-compute lookup table\n for (let i = 0; i < alphabet.length; i++) {\n this._alphabetMap[alphabet.charAt(i)] = i;\n }\n }\n\n encode(value: BytesLike): string {\n let source = arrayify(value);\n\n if (source.length === 0) { return \"\"; }\n\n let digits = [ 0 ]\n for (let i = 0; i < source.length; ++i) {\n let carry = source[i];\n for (let j = 0; j < digits.length; ++j) {\n carry += digits[j] << 8;\n digits[j] = carry % this.base;\n carry = (carry / this.base) | 0;\n }\n\n while (carry > 0) {\n digits.push(carry % this.base);\n carry = (carry / this.base) | 0;\n }\n }\n\n let string = \"\"\n\n // deal with leading zeros\n for (let k = 0; source[k] === 0 && k < source.length - 1; ++k) {\n string += this._leader;\n }\n\n // convert digits to a string\n for (let q = digits.length - 1; q >= 0; --q) {\n string += this.alphabet[digits[q]];\n }\n\n return string;\n }\n\n decode(value: string): Uint8Array {\n if (typeof(value) !== \"string\") {\n throw new TypeError(\"Expected String\");\n }\n\n let bytes: Array = [];\n if (value.length === 0) { return new Uint8Array(bytes); }\n\n bytes.push(0);\n for (let i = 0; i < value.length; i++) {\n let byte = this._alphabetMap[value[i]];\n\n if (byte === undefined) {\n throw new Error(\"Non-base\" + this.base + \" character\");\n }\n\n let carry = byte;\n for (let j = 0; j < bytes.length; ++j) {\n carry += bytes[j] * this.base;\n bytes[j] = carry & 0xff;\n carry >>= 8;\n }\n\n while (carry > 0) {\n bytes.push(carry & 0xff);\n carry >>= 8;\n }\n }\n\n // deal with leading zeros\n for (let k = 0; value[k] === this._leader && k < value.length - 1; ++k) {\n bytes.push(0)\n }\n\n return arrayify(new Uint8Array(bytes.reverse()))\n }\n}\n\nconst Base32 = new BaseX(\"abcdefghijklmnopqrstuvwxyz234567\");\nconst Base58 = new BaseX(\"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz\");\n\nexport { Base32, Base58 };\n\n//console.log(Base58.decode(\"Qmd2V777o5XvJbYMeMb8k2nU5f8d3ciUQ5YpYuWhzv8iDj\"))\n//console.log(Base58.encode(Base58.decode(\"Qmd2V777o5XvJbYMeMb8k2nU5f8d3ciUQ5YpYuWhzv8iDj\")))\n", "\"use strict\";\n\nimport { pbkdf2Sync as _pbkdf2 } from \"crypto\";\n\nimport { arrayify, BytesLike, hexlify } from \"@ethersproject/bytes\";\n\n\nfunction bufferify(value: BytesLike): Buffer {\n return Buffer.from(arrayify(value));\n}\n\nexport function pbkdf2(password: BytesLike, salt: BytesLike, iterations: number, keylen: number, hashAlgorithm: string): string {\n return hexlify(_pbkdf2(bufferify(password), bufferify(salt), iterations, keylen, hashAlgorithm));\n}\n", "\nexport { pbkdf2 } from \"./pbkdf2\";\n", "export enum SupportedAlgorithm { sha256 = \"sha256\", sha512 = \"sha512\" };\n\n", "export const version = \"sha2/5.7.0\";\n", "\"use strict\";\n\nimport { createHash, createHmac } from \"crypto\";\n\nimport hash from \"hash.js\";\n\nimport { arrayify, BytesLike } from \"@ethersproject/bytes\";\n\nimport { SupportedAlgorithm } from \"./types\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\nexport function ripemd160(data: BytesLike): string {\n return \"0x\" + (hash.ripemd160().update(arrayify(data)).digest(\"hex\"));\n}\n\nexport function sha256(data: BytesLike): string {\n return \"0x\" + createHash(\"sha256\").update(Buffer.from(arrayify(data))).digest(\"hex\")\n}\n\nexport function sha512(data: BytesLike): string {\n return \"0x\" + createHash(\"sha512\").update(Buffer.from(arrayify(data))).digest(\"hex\")\n}\n\nexport function computeHmac(algorithm: SupportedAlgorithm, key: BytesLike, data: BytesLike): string {\n /* istanbul ignore if */\n if (!SupportedAlgorithm[algorithm]) {\n logger.throwError(\"unsupported algorithm - \" + algorithm, Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"computeHmac\",\n algorithm: algorithm\n });\n }\n\n return \"0x\" + createHmac(algorithm, Buffer.from(arrayify(key))).update(Buffer.from(arrayify(data))).digest(\"hex\");\n}\n\n", "import { computeHmac, ripemd160, sha256, sha512 } from \"./sha2\";\n\nimport { SupportedAlgorithm } from \"./types\";\n\nexport {\n computeHmac,\n\n ripemd160,\n\n sha256,\n sha512,\n\n SupportedAlgorithm\n}\n", "export const version = \"wordlists/5.7.0\";\n", "\"use strict\";\n\n// This gets overridden by rollup\nconst exportWordlist = false;\n\nimport { id } from \"@ethersproject/hash\";\nimport { defineReadOnly } from \"@ethersproject/properties\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nexport const logger = new Logger(version);\n\nexport abstract class Wordlist {\n readonly locale: string;\n\n constructor(locale: string) {\n logger.checkAbstract(new.target, Wordlist);\n defineReadOnly(this, \"locale\", locale);\n }\n\n abstract getWord(index: number): string;\n abstract getWordIndex(word: string): number;\n\n // Subclasses may override this\n split(mnemonic: string): Array {\n return mnemonic.toLowerCase().split(/ +/g)\n }\n\n // Subclasses may override this\n join(words: Array): string {\n return words.join(\" \");\n }\n\n static check(wordlist: Wordlist): string {\n const words = [];\n for (let i = 0; i < 2048; i++) {\n const word = wordlist.getWord(i);\n /* istanbul ignore if */\n if (i !== wordlist.getWordIndex(word)) { return \"0x\"; }\n words.push(word);\n }\n return id(words.join(\"\\n\") + \"\\n\");\n }\n\n static register(lang: Wordlist, name?: string): void {\n if (!name) { name = lang.locale; }\n\n /* istanbul ignore if */\n if (exportWordlist) {\n try {\n const anyGlobal = (window as any)\n if (anyGlobal._ethers && anyGlobal._ethers.wordlists) {\n if (!anyGlobal._ethers.wordlists[name]) {\n defineReadOnly(anyGlobal._ethers.wordlists, name, lang);\n }\n }\n } catch (error) { }\n }\n }\n\n}\n\n", "\"use strict\";\n\nimport { Wordlist } from \"./wordlist\";\n\nconst words = \"AbdikaceAbecedaAdresaAgreseAkceAktovkaAlejAlkoholAmputaceAnanasAndulkaAnekdotaAnketaAntikaAnulovatArchaAroganceAsfaltAsistentAspiraceAstmaAstronomAtlasAtletikaAtolAutobusAzylBabkaBachorBacilBaculkaBadatelBagetaBagrBahnoBakterieBaladaBaletkaBalkonBalonekBalvanBalzaBambusBankomatBarbarBaretBarmanBarokoBarvaBaterkaBatohBavlnaBazalkaBazilikaBazukaBednaBeranBesedaBestieBetonBezinkaBezmocBeztakBicyklBidloBiftekBikinyBilanceBiografBiologBitvaBizonBlahobytBlatouchBlechaBleduleBleskBlikatBliznaBlokovatBlouditBludBobekBobrBodlinaBodnoutBohatostBojkotBojovatBokorysBolestBorecBoroviceBotaBoubelBouchatBoudaBouleBouratBoxerBradavkaBramboraBrankaBratrBreptaBriketaBrkoBrlohBronzBroskevBrunetkaBrusinkaBrzdaBrzyBublinaBubnovatBuchtaBuditelBudkaBudovaBufetBujarostBukviceBuldokBulvaBundaBunkrBurzaButikBuvolBuzolaBydletBylinaBytovkaBzukotCapartCarevnaCedrCeduleCejchCejnCelaCelerCelkemCelniceCeninaCennostCenovkaCentrumCenzorCestopisCetkaChalupaChapadloCharitaChataChechtatChemieChichotChirurgChladChlebaChlubitChmelChmuraChobotChocholChodbaCholeraChomoutChopitChorobaChovChrapotChrlitChrtChrupChtivostChudinaChutnatChvatChvilkaChvostChybaChystatChytitCibuleCigaretaCihelnaCihlaCinkotCirkusCisternaCitaceCitrusCizinecCizostClonaCokolivCouvatCtitelCtnostCudnostCuketaCukrCupotCvaknoutCvalCvikCvrkotCyklistaDalekoDarebaDatelDatumDceraDebataDechovkaDecibelDeficitDeflaceDeklDekretDemokratDepreseDerbyDeskaDetektivDikobrazDiktovatDiodaDiplomDiskDisplejDivadloDivochDlahaDlouhoDluhopisDnesDobroDobytekDocentDochutitDodnesDohledDohodaDohraDojemDojniceDokladDokolaDoktorDokumentDolarDolevaDolinaDomaDominantDomluvitDomovDonutitDopadDopisDoplnitDoposudDoprovodDopustitDorazitDorostDortDosahDoslovDostatekDosudDosytaDotazDotekDotknoutDoufatDoutnatDovozceDozaduDoznatDozorceDrahotaDrakDramatikDravecDrazeDrdolDrobnostDrogerieDrozdDrsnostDrtitDrzostDubenDuchovnoDudekDuhaDuhovkaDusitDusnoDutostDvojiceDvorecDynamitEkologEkonomieElektronElipsaEmailEmiseEmoceEmpatieEpizodaEpochaEpopejEposEsejEsenceEskortaEskymoEtiketaEuforieEvoluceExekuceExkurzeExpediceExplozeExportExtraktFackaFajfkaFakultaFanatikFantazieFarmacieFavoritFazoleFederaceFejetonFenkaFialkaFigurantFilozofFiltrFinanceFintaFixaceFjordFlanelFlirtFlotilaFondFosforFotbalFotkaFotonFrakceFreskaFrontaFukarFunkceFyzikaGalejeGarantGenetikaGeologGilotinaGlazuraGlejtGolemGolfistaGotikaGrafGramofonGranuleGrepGrilGrogGroteskaGumaHadiceHadrHalaHalenkaHanbaHanopisHarfaHarpunaHavranHebkostHejkalHejnoHejtmanHektarHelmaHematomHerecHernaHesloHezkyHistorikHladovkaHlasivkyHlavaHledatHlenHlodavecHlohHloupostHltatHlubinaHluchotaHmatHmotaHmyzHnisHnojivoHnoutHoblinaHobojHochHodinyHodlatHodnotaHodovatHojnostHokejHolinkaHolkaHolubHomoleHonitbaHonoraceHoralHordaHorizontHorkoHorlivecHormonHorninaHoroskopHorstvoHospodaHostinaHotovostHoubaHoufHoupatHouskaHovorHradbaHraniceHravostHrazdaHrbolekHrdinaHrdloHrdostHrnekHrobkaHromadaHrotHroudaHrozenHrstkaHrubostHryzatHubenostHubnoutHudbaHukotHumrHusitaHustotaHvozdHybnostHydrantHygienaHymnaHysterikIdylkaIhnedIkonaIluzeImunitaInfekceInflaceInkasoInovaceInspekceInternetInvalidaInvestorInzerceIronieJablkoJachtaJahodaJakmileJakostJalovecJantarJarmarkJaroJasanJasnoJatkaJavorJazykJedinecJedleJednatelJehlanJekotJelenJelitoJemnostJenomJepiceJeseterJevitJezdecJezeroJinakJindyJinochJiskraJistotaJitrniceJizvaJmenovatJogurtJurtaKabaretKabelKabinetKachnaKadetKadidloKahanKajakKajutaKakaoKaktusKalamitaKalhotyKalibrKalnostKameraKamkolivKamnaKanibalKanoeKantorKapalinaKapelaKapitolaKapkaKapleKapotaKaprKapustaKapybaraKaramelKarotkaKartonKasaKatalogKatedraKauceKauzaKavalecKazajkaKazetaKazivostKdekolivKdesiKedlubenKempKeramikaKinoKlacekKladivoKlamKlapotKlasikaKlaunKlecKlenbaKlepatKlesnoutKlidKlimaKlisnaKloboukKlokanKlopaKloubKlubovnaKlusatKluzkostKmenKmitatKmotrKnihaKnotKoaliceKoberecKobkaKoblihaKobylaKocourKohoutKojenecKokosKoktejlKolapsKoledaKolizeKoloKomandoKometaKomikKomnataKomoraKompasKomunitaKonatKonceptKondiceKonecKonfeseKongresKoninaKonkursKontaktKonzervaKopanecKopieKopnoutKoprovkaKorbelKorektorKormidloKoroptevKorpusKorunaKorytoKorzetKosatecKostkaKotelKotletaKotoulKoukatKoupelnaKousekKouzloKovbojKozaKozorohKrabiceKrachKrajinaKralovatKrasopisKravataKreditKrejcarKresbaKrevetaKriketKritikKrizeKrkavecKrmelecKrmivoKrocanKrokKronikaKropitKroupaKrovkaKrtekKruhadloKrupiceKrutostKrvinkaKrychleKryptaKrystalKrytKudlankaKufrKujnostKuklaKulajdaKulichKulkaKulometKulturaKunaKupodivuKurtKurzorKutilKvalitaKvasinkaKvestorKynologKyselinaKytaraKyticeKytkaKytovecKyvadloLabradorLachtanLadnostLaikLakomecLamelaLampaLanovkaLasiceLasoLasturaLatinkaLavinaLebkaLeckdyLedenLedniceLedovkaLedvinaLegendaLegieLegraceLehceLehkostLehnoutLektvarLenochodLentilkaLepenkaLepidloLetadloLetecLetmoLetokruhLevhartLevitaceLevobokLibraLichotkaLidojedLidskostLihovinaLijavecLilekLimetkaLinieLinkaLinoleumListopadLitinaLitovatLobistaLodivodLogikaLogopedLokalitaLoketLomcovatLopataLopuchLordLososLotrLoudalLouhLoukaLouskatLovecLstivostLucernaLuciferLumpLuskLustraceLviceLyraLyrikaLysinaMadamMadloMagistrMahagonMajetekMajitelMajoritaMakakMakoviceMakrelaMalbaMalinaMalovatMalviceMaminkaMandleMankoMarnostMasakrMaskotMasopustMaticeMatrikaMaturitaMazanecMazivoMazlitMazurkaMdlobaMechanikMeditaceMedovinaMelasaMelounMentolkaMetlaMetodaMetrMezeraMigraceMihnoutMihuleMikinaMikrofonMilenecMilimetrMilostMimikaMincovnaMinibarMinometMinulostMiskaMistrMixovatMladostMlhaMlhovinaMlokMlsatMluvitMnichMnohemMobilMocnostModelkaModlitbaMohylaMokroMolekulaMomentkaMonarchaMonoklMonstrumMontovatMonzunMosazMoskytMostMotivaceMotorkaMotykaMouchaMoudrostMozaikaMozekMozolMramorMravenecMrkevMrtvolaMrzetMrzutostMstitelMudrcMuflonMulatMumieMuniceMusetMutaceMuzeumMuzikantMyslivecMzdaNabouratNachytatNadaceNadbytekNadhozNadobroNadpisNahlasNahnatNahodileNahraditNaivitaNajednouNajistoNajmoutNaklonitNakonecNakrmitNalevoNamazatNamluvitNanometrNaokoNaopakNaostroNapadatNapevnoNaplnitNapnoutNaposledNaprostoNaroditNarubyNarychloNasaditNasekatNaslepoNastatNatolikNavenekNavrchNavzdoryNazvatNebeNechatNeckyNedalekoNedbatNeduhNegaceNehetNehodaNejenNejprveNeklidNelibostNemilostNemocNeochotaNeonkaNepokojNerostNervNesmyslNesouladNetvorNeuronNevinaNezvykleNicotaNijakNikamNikdyNiklNikterakNitroNoclehNohaviceNominaceNoraNorekNositelNosnostNouzeNovinyNovotaNozdraNudaNudleNugetNutitNutnostNutrieNymfaObalObarvitObavaObdivObecObehnatObejmoutObezitaObhajobaObilniceObjasnitObjektObklopitOblastOblekOblibaOblohaObludaObnosObohatitObojekOboutObrazecObrnaObrubaObrysObsahObsluhaObstaratObuvObvazObvinitObvodObvykleObyvatelObzorOcasOcelOcenitOchladitOchotaOchranaOcitnoutOdbojOdbytOdchodOdcizitOdebratOdeslatOdevzdatOdezvaOdhadceOdhoditOdjetOdjinudOdkazOdkoupitOdlivOdlukaOdmlkaOdolnostOdpadOdpisOdploutOdporOdpustitOdpykatOdrazkaOdsouditOdstupOdsunOdtokOdtudOdvahaOdvetaOdvolatOdvracetOdznakOfinaOfsajdOhlasOhniskoOhradaOhrozitOhryzekOkapOkeniceOklikaOknoOkouzlitOkovyOkrasaOkresOkrsekOkruhOkupantOkurkaOkusitOlejninaOlizovatOmakOmeletaOmezitOmladinaOmlouvatOmluvaOmylOnehdyOpakovatOpasekOperaceOpiceOpilostOpisovatOporaOpoziceOpravduOprotiOrbitalOrchestrOrgieOrliceOrlojOrtelOsadaOschnoutOsikaOsivoOslavaOslepitOslnitOslovitOsnovaOsobaOsolitOspalecOstenOstrahaOstudaOstychOsvojitOteplitOtiskOtopOtrhatOtrlostOtrokOtrubyOtvorOvanoutOvarOvesOvlivnitOvoceOxidOzdobaPachatelPacientPadouchPahorekPaktPalandaPalecPalivoPalubaPamfletPamlsekPanenkaPanikaPannaPanovatPanstvoPantoflePaprikaParketaParodiePartaParukaParybaPasekaPasivitaPastelkaPatentPatronaPavoukPaznehtPazourekPeckaPedagogPejsekPekloPelotonPenaltaPendrekPenzePeriskopPeroPestrostPetardaPeticePetrolejPevninaPexesoPianistaPihaPijavicePiklePiknikPilinaPilnostPilulkaPinzetaPipetaPisatelPistolePitevnaPivnicePivovarPlacentaPlakatPlamenPlanetaPlastikaPlatitPlavidloPlazPlechPlemenoPlentaPlesPletivoPlevelPlivatPlnitPlnoPlochaPlodinaPlombaPloutPlukPlynPobavitPobytPochodPocitPoctivecPodatPodcenitPodepsatPodhledPodivitPodkladPodmanitPodnikPodobaPodporaPodrazPodstataPodvodPodzimPoeziePohankaPohnutkaPohovorPohromaPohybPointaPojistkaPojmoutPokazitPoklesPokojPokrokPokutaPokynPolednePolibekPolknoutPolohaPolynomPomaluPominoutPomlkaPomocPomstaPomysletPonechatPonorkaPonurostPopadatPopelPopisekPoplachPoprositPopsatPopudPoradcePorcePorodPoruchaPoryvPosaditPosedPosilaPoskokPoslanecPosouditPospoluPostavaPosudekPosypPotahPotkanPotleskPotomekPotravaPotupaPotvoraPoukazPoutoPouzdroPovahaPovidlaPovlakPovozPovrchPovstatPovykPovzdechPozdravPozemekPoznatekPozorPozvatPracovatPrahoryPraktikaPralesPraotecPraporekPrasePravdaPrincipPrknoProbuditProcentoProdejProfeseProhraProjektProlomitPromilePronikatPropadProrokProsbaProtonProutekProvazPrskavkaPrstenPrudkostPrutPrvekPrvohoryPsanecPsovodPstruhPtactvoPubertaPuchPudlPukavecPuklinaPukrlePultPumpaPuncPupenPusaPusinkaPustinaPutovatPutykaPyramidaPyskPytelRacekRachotRadiaceRadniceRadonRaftRagbyRaketaRakovinaRamenoRampouchRandeRarachRaritaRasovnaRastrRatolestRazanceRazidloReagovatReakceReceptRedaktorReferentReflexRejnokReklamaRekordRekrutRektorReputaceRevizeRevmaRevolverRezervaRiskovatRizikoRobotikaRodokmenRohovkaRokleRokokoRomanetoRopovodRopuchaRorejsRosolRostlinaRotmistrRotopedRotundaRoubenkaRouchoRoupRouraRovinaRovniceRozborRozchodRozdatRozeznatRozhodceRozinkaRozjezdRozkazRozlohaRozmarRozpadRozruchRozsahRoztokRozumRozvodRubrikaRuchadloRukaviceRukopisRybaRybolovRychlostRydloRypadloRytinaRyzostSadistaSahatSakoSamecSamizdatSamotaSanitkaSardinkaSasankaSatelitSazbaSazeniceSborSchovatSebrankaSeceseSedadloSedimentSedloSehnatSejmoutSekeraSektaSekundaSekvojeSemenoSenoServisSesaditSeshoraSeskokSeslatSestraSesuvSesypatSetbaSetinaSetkatSetnoutSetrvatSeverSeznamShodaShrnoutSifonSilniceSirkaSirotekSirupSituaceSkafandrSkaliskoSkanzenSkautSkeptikSkicaSkladbaSkleniceSkloSkluzSkobaSkokanSkoroSkriptaSkrzSkupinaSkvostSkvrnaSlabikaSladidloSlaninaSlastSlavnostSledovatSlepecSlevaSlezinaSlibSlinaSlizniceSlonSloupekSlovoSluchSluhaSlunceSlupkaSlzaSmaragdSmetanaSmilstvoSmlouvaSmogSmradSmrkSmrtkaSmutekSmyslSnadSnahaSnobSobotaSochaSodovkaSokolSopkaSotvaSoubojSoucitSoudceSouhlasSouladSoumrakSoupravaSousedSoutokSouvisetSpalovnaSpasitelSpisSplavSpodekSpojenecSpoluSponzorSpornostSpoustaSprchaSpustitSrandaSrazSrdceSrnaSrnecSrovnatSrpenSrstSrubStaniceStarostaStatikaStavbaStehnoStezkaStodolaStolekStopaStornoStoupatStrachStresStrhnoutStromStrunaStudnaStupniceStvolStykSubjektSubtropySucharSudostSuknoSundatSunoutSurikataSurovinaSvahSvalstvoSvetrSvatbaSvazekSvisleSvitekSvobodaSvodidloSvorkaSvrabSykavkaSykotSynekSynovecSypatSypkostSyrovostSyselSytostTabletkaTabuleTahounTajemnoTajfunTajgaTajitTajnostTaktikaTamhleTamponTancovatTanecTankerTapetaTaveninaTazatelTechnikaTehdyTekutinaTelefonTemnotaTendenceTenistaTenorTeplotaTepnaTeprveTerapieTermoskaTextilTichoTiskopisTitulekTkadlecTkaninaTlapkaTleskatTlukotTlupaTmelToaletaTopinkaTopolTorzoTouhaToulecTradiceTraktorTrampTrasaTraverzaTrefitTrestTrezorTrhavinaTrhlinaTrochuTrojiceTroskaTroubaTrpceTrpitelTrpkostTrubecTruchlitTruhliceTrusTrvatTudyTuhnoutTuhostTundraTuristaTurnajTuzemskoTvarohTvorbaTvrdostTvrzTygrTykevUbohostUbozeUbratUbrousekUbrusUbytovnaUchoUctivostUdivitUhraditUjednatUjistitUjmoutUkazatelUklidnitUklonitUkotvitUkrojitUliceUlitaUlovitUmyvadloUnavitUniformaUniknoutUpadnoutUplatnitUplynoutUpoutatUpravitUranUrazitUsednoutUsilovatUsmrtitUsnadnitUsnoutUsouditUstlatUstrnoutUtahovatUtkatUtlumitUtonoutUtopenecUtrousitUvalitUvolnitUvozovkaUzdravitUzelUzeninaUzlinaUznatVagonValchaValounVanaVandalVanilkaVaranVarhanyVarovatVcelkuVchodVdovaVedroVegetaceVejceVelbloudVeletrhVelitelVelmocVelrybaVenkovVerandaVerzeVeselkaVeskrzeVesniceVespoduVestaVeterinaVeverkaVibraceVichrVideohraVidinaVidleVilaViniceVisetVitalitaVizeVizitkaVjezdVkladVkusVlajkaVlakVlasecVlevoVlhkostVlivVlnovkaVloupatVnucovatVnukVodaVodivostVodoznakVodstvoVojenskyVojnaVojskoVolantVolbaVolitVolnoVoskovkaVozidloVozovnaVpravoVrabecVracetVrahVrataVrbaVrcholekVrhatVrstvaVrtuleVsaditVstoupitVstupVtipVybavitVybratVychovatVydatVydraVyfotitVyhledatVyhnoutVyhoditVyhraditVyhubitVyjasnitVyjetVyjmoutVyklopitVykonatVylekatVymazatVymezitVymizetVymysletVynechatVynikatVynutitVypadatVyplatitVypravitVypustitVyrazitVyrovnatVyrvatVyslovitVysokoVystavitVysunoutVysypatVytasitVytesatVytratitVyvinoutVyvolatVyvrhelVyzdobitVyznatVzaduVzbuditVzchopitVzdorVzduchVzdychatVzestupVzhledemVzkazVzlykatVznikVzorekVzpouraVztahVztekXylofonZabratZabydletZachovatZadarmoZadusitZafoukatZahltitZahoditZahradaZahynoutZajatecZajetZajistitZaklepatZakoupitZalepitZamezitZamotatZamysletZanechatZanikatZaplatitZapojitZapsatZarazitZastavitZasunoutZatajitZatemnitZatknoutZaujmoutZavalitZaveletZavinitZavolatZavrtatZazvonitZbavitZbrusuZbudovatZbytekZdalekaZdarmaZdatnostZdivoZdobitZdrojZdvihZdymadloZeleninaZemanZeminaZeptatZezaduZezdolaZhatitZhltnoutZhlubokaZhotovitZhrubaZimaZimniceZjemnitZklamatZkoumatZkratkaZkumavkaZlatoZlehkaZlobaZlomZlostZlozvykZmapovatZmarZmatekZmijeZmizetZmocnitZmodratZmrzlinaZmutovatZnakZnalostZnamenatZnovuZobrazitZotavitZoubekZoufaleZploditZpomalitZpravaZprostitZprudkaZprvuZradaZranitZrcadloZrnitostZrnoZrovnaZrychlitZrzavostZtichaZtratitZubovinaZubrZvednoutZvenkuZveselaZvonZvratZvukovodZvyk\";\n\nlet wordlist: Array = null;\n\nfunction loadWords(lang: Wordlist): void {\n if (wordlist != null) { return; }\n wordlist = words.replace(/([A-Z])/g, \" $1\").toLowerCase().substring(1).split(\" \");\n\n // Verify the computed list matches the official list\n /* istanbul ignore if */\n if (Wordlist.check(lang) !== \"0x25f44555f4af25b51a711136e1c7d6e50ce9f8917d39d6b1f076b2bb4d2fac1a\") {\n wordlist = null;\n throw new Error(\"BIP39 Wordlist for en (English) FAILED\");\n }\n}\n\nclass LangCz extends Wordlist {\n constructor() {\n super(\"cz\");\n }\n\n getWord(index: number): string {\n loadWords(this);\n return wordlist[index];\n }\n\n getWordIndex(word: string): number {\n loadWords(this);\n return wordlist.indexOf(word);\n }\n}\n\nconst langCz = new LangCz();\nWordlist.register(langCz);\n\nexport { langCz };\n\n", "\"use strict\";\n\nimport { Wordlist } from \"./wordlist\";\n\n\nconst words = \"AbandonAbilityAbleAboutAboveAbsentAbsorbAbstractAbsurdAbuseAccessAccidentAccountAccuseAchieveAcidAcousticAcquireAcrossActActionActorActressActualAdaptAddAddictAddressAdjustAdmitAdultAdvanceAdviceAerobicAffairAffordAfraidAgainAgeAgentAgreeAheadAimAirAirportAisleAlarmAlbumAlcoholAlertAlienAllAlleyAllowAlmostAloneAlphaAlreadyAlsoAlterAlwaysAmateurAmazingAmongAmountAmusedAnalystAnchorAncientAngerAngleAngryAnimalAnkleAnnounceAnnualAnotherAnswerAntennaAntiqueAnxietyAnyApartApologyAppearAppleApproveAprilArchArcticAreaArenaArgueArmArmedArmorArmyAroundArrangeArrestArriveArrowArtArtefactArtistArtworkAskAspectAssaultAssetAssistAssumeAsthmaAthleteAtomAttackAttendAttitudeAttractAuctionAuditAugustAuntAuthorAutoAutumnAverageAvocadoAvoidAwakeAwareAwayAwesomeAwfulAwkwardAxisBabyBachelorBaconBadgeBagBalanceBalconyBallBambooBananaBannerBarBarelyBargainBarrelBaseBasicBasketBattleBeachBeanBeautyBecauseBecomeBeefBeforeBeginBehaveBehindBelieveBelowBeltBenchBenefitBestBetrayBetterBetweenBeyondBicycleBidBikeBindBiologyBirdBirthBitterBlackBladeBlameBlanketBlastBleakBlessBlindBloodBlossomBlouseBlueBlurBlushBoardBoatBodyBoilBombBoneBonusBookBoostBorderBoringBorrowBossBottomBounceBoxBoyBracketBrainBrandBrassBraveBreadBreezeBrickBridgeBriefBrightBringBriskBroccoliBrokenBronzeBroomBrotherBrownBrushBubbleBuddyBudgetBuffaloBuildBulbBulkBulletBundleBunkerBurdenBurgerBurstBusBusinessBusyButterBuyerBuzzCabbageCabinCableCactusCageCakeCallCalmCameraCampCanCanalCancelCandyCannonCanoeCanvasCanyonCapableCapitalCaptainCarCarbonCardCargoCarpetCarryCartCaseCashCasinoCastleCasualCatCatalogCatchCategoryCattleCaughtCauseCautionCaveCeilingCeleryCementCensusCenturyCerealCertainChairChalkChampionChangeChaosChapterChargeChaseChatCheapCheckCheeseChefCherryChestChickenChiefChildChimneyChoiceChooseChronicChuckleChunkChurnCigarCinnamonCircleCitizenCityCivilClaimClapClarifyClawClayCleanClerkCleverClickClientCliffClimbClinicClipClockClogCloseClothCloudClownClubClumpClusterClutchCoachCoastCoconutCodeCoffeeCoilCoinCollectColorColumnCombineComeComfortComicCommonCompanyConcertConductConfirmCongressConnectConsiderControlConvinceCookCoolCopperCopyCoralCoreCornCorrectCostCottonCouchCountryCoupleCourseCousinCoverCoyoteCrackCradleCraftCramCraneCrashCraterCrawlCrazyCreamCreditCreekCrewCricketCrimeCrispCriticCropCrossCrouchCrowdCrucialCruelCruiseCrumbleCrunchCrushCryCrystalCubeCultureCupCupboardCuriousCurrentCurtainCurveCushionCustomCuteCycleDadDamageDampDanceDangerDaringDashDaughterDawnDayDealDebateDebrisDecadeDecemberDecideDeclineDecorateDecreaseDeerDefenseDefineDefyDegreeDelayDeliverDemandDemiseDenialDentistDenyDepartDependDepositDepthDeputyDeriveDescribeDesertDesignDeskDespairDestroyDetailDetectDevelopDeviceDevoteDiagramDialDiamondDiaryDiceDieselDietDifferDigitalDignityDilemmaDinnerDinosaurDirectDirtDisagreeDiscoverDiseaseDishDismissDisorderDisplayDistanceDivertDivideDivorceDizzyDoctorDocumentDogDollDolphinDomainDonateDonkeyDonorDoorDoseDoubleDoveDraftDragonDramaDrasticDrawDreamDressDriftDrillDrinkDripDriveDropDrumDryDuckDumbDuneDuringDustDutchDutyDwarfDynamicEagerEagleEarlyEarnEarthEasilyEastEasyEchoEcologyEconomyEdgeEditEducateEffortEggEightEitherElbowElderElectricElegantElementElephantElevatorEliteElseEmbarkEmbodyEmbraceEmergeEmotionEmployEmpowerEmptyEnableEnactEndEndlessEndorseEnemyEnergyEnforceEngageEngineEnhanceEnjoyEnlistEnoughEnrichEnrollEnsureEnterEntireEntryEnvelopeEpisodeEqualEquipEraEraseErodeErosionErrorEruptEscapeEssayEssenceEstateEternalEthicsEvidenceEvilEvokeEvolveExactExampleExcessExchangeExciteExcludeExcuseExecuteExerciseExhaustExhibitExileExistExitExoticExpandExpectExpireExplainExposeExpressExtendExtraEyeEyebrowFabricFaceFacultyFadeFaintFaithFallFalseFameFamilyFamousFanFancyFantasyFarmFashionFatFatalFatherFatigueFaultFavoriteFeatureFebruaryFederalFeeFeedFeelFemaleFenceFestivalFetchFeverFewFiberFictionFieldFigureFileFilmFilterFinalFindFineFingerFinishFireFirmFirstFiscalFishFitFitnessFixFlagFlameFlashFlatFlavorFleeFlightFlipFloatFlockFloorFlowerFluidFlushFlyFoamFocusFogFoilFoldFollowFoodFootForceForestForgetForkFortuneForumForwardFossilFosterFoundFoxFragileFrameFrequentFreshFriendFringeFrogFrontFrostFrownFrozenFruitFuelFunFunnyFurnaceFuryFutureGadgetGainGalaxyGalleryGameGapGarageGarbageGardenGarlicGarmentGasGaspGateGatherGaugeGazeGeneralGeniusGenreGentleGenuineGestureGhostGiantGiftGiggleGingerGiraffeGirlGiveGladGlanceGlareGlassGlideGlimpseGlobeGloomGloryGloveGlowGlueGoatGoddessGoldGoodGooseGorillaGospelGossipGovernGownGrabGraceGrainGrantGrapeGrassGravityGreatGreenGridGriefGritGroceryGroupGrowGruntGuardGuessGuideGuiltGuitarGunGymHabitHairHalfHammerHamsterHandHappyHarborHardHarshHarvestHatHaveHawkHazardHeadHealthHeartHeavyHedgehogHeightHelloHelmetHelpHenHeroHiddenHighHillHintHipHireHistoryHobbyHockeyHoldHoleHolidayHollowHomeHoneyHoodHopeHornHorrorHorseHospitalHostHotelHourHoverHubHugeHumanHumbleHumorHundredHungryHuntHurdleHurryHurtHusbandHybridIceIconIdeaIdentifyIdleIgnoreIllIllegalIllnessImageImitateImmenseImmuneImpactImposeImproveImpulseInchIncludeIncomeIncreaseIndexIndicateIndoorIndustryInfantInflictInformInhaleInheritInitialInjectInjuryInmateInnerInnocentInputInquiryInsaneInsectInsideInspireInstallIntactInterestIntoInvestInviteInvolveIronIslandIsolateIssueItemIvoryJacketJaguarJarJazzJealousJeansJellyJewelJobJoinJokeJourneyJoyJudgeJuiceJumpJungleJuniorJunkJustKangarooKeenKeepKetchupKeyKickKidKidneyKindKingdomKissKitKitchenKiteKittenKiwiKneeKnifeKnockKnowLabLabelLaborLadderLadyLakeLampLanguageLaptopLargeLaterLatinLaughLaundryLavaLawLawnLawsuitLayerLazyLeaderLeafLearnLeaveLectureLeftLegLegalLegendLeisureLemonLendLengthLensLeopardLessonLetterLevelLiarLibertyLibraryLicenseLifeLiftLightLikeLimbLimitLinkLionLiquidListLittleLiveLizardLoadLoanLobsterLocalLockLogicLonelyLongLoopLotteryLoudLoungeLoveLoyalLuckyLuggageLumberLunarLunchLuxuryLyricsMachineMadMagicMagnetMaidMailMainMajorMakeMammalManManageMandateMangoMansionManualMapleMarbleMarchMarginMarineMarketMarriageMaskMassMasterMatchMaterialMathMatrixMatterMaximumMazeMeadowMeanMeasureMeatMechanicMedalMediaMelodyMeltMemberMemoryMentionMenuMercyMergeMeritMerryMeshMessageMetalMethodMiddleMidnightMilkMillionMimicMindMinimumMinorMinuteMiracleMirrorMiseryMissMistakeMixMixedMixtureMobileModelModifyMomMomentMonitorMonkeyMonsterMonthMoonMoralMoreMorningMosquitoMotherMotionMotorMountainMouseMoveMovieMuchMuffinMuleMultiplyMuscleMuseumMushroomMusicMustMutualMyselfMysteryMythNaiveNameNapkinNarrowNastyNationNatureNearNeckNeedNegativeNeglectNeitherNephewNerveNestNetNetworkNeutralNeverNewsNextNiceNightNobleNoiseNomineeNoodleNormalNorthNoseNotableNoteNothingNoticeNovelNowNuclearNumberNurseNutOakObeyObjectObligeObscureObserveObtainObviousOccurOceanOctoberOdorOffOfferOfficeOftenOilOkayOldOliveOlympicOmitOnceOneOnionOnlineOnlyOpenOperaOpinionOpposeOptionOrangeOrbitOrchardOrderOrdinaryOrganOrientOriginalOrphanOstrichOtherOutdoorOuterOutputOutsideOvalOvenOverOwnOwnerOxygenOysterOzonePactPaddlePagePairPalacePalmPandaPanelPanicPantherPaperParadeParentParkParrotPartyPassPatchPathPatientPatrolPatternPausePavePaymentPeacePeanutPearPeasantPelicanPenPenaltyPencilPeoplePepperPerfectPermitPersonPetPhonePhotoPhrasePhysicalPianoPicnicPicturePiecePigPigeonPillPilotPinkPioneerPipePistolPitchPizzaPlacePlanetPlasticPlatePlayPleasePledgePluckPlugPlungePoemPoetPointPolarPolePolicePondPonyPoolPopularPortionPositionPossiblePostPotatoPotteryPovertyPowderPowerPracticePraisePredictPreferPreparePresentPrettyPreventPricePridePrimaryPrintPriorityPrisonPrivatePrizeProblemProcessProduceProfitProgramProjectPromoteProofPropertyProsperProtectProudProvidePublicPuddingPullPulpPulsePumpkinPunchPupilPuppyPurchasePurityPurposePursePushPutPuzzlePyramidQualityQuantumQuarterQuestionQuickQuitQuizQuoteRabbitRaccoonRaceRackRadarRadioRailRainRaiseRallyRampRanchRandomRangeRapidRareRateRatherRavenRawRazorReadyRealReasonRebelRebuildRecallReceiveRecipeRecordRecycleReduceReflectReformRefuseRegionRegretRegularRejectRelaxReleaseReliefRelyRemainRememberRemindRemoveRenderRenewRentReopenRepairRepeatReplaceReportRequireRescueResembleResistResourceResponseResultRetireRetreatReturnReunionRevealReviewRewardRhythmRibRibbonRiceRichRideRidgeRifleRightRigidRingRiotRippleRiskRitualRivalRiverRoadRoastRobotRobustRocketRomanceRoofRookieRoomRoseRotateRoughRoundRouteRoyalRubberRudeRugRuleRunRunwayRuralSadSaddleSadnessSafeSailSaladSalmonSalonSaltSaluteSameSampleSandSatisfySatoshiSauceSausageSaveSayScaleScanScareScatterSceneSchemeSchoolScienceScissorsScorpionScoutScrapScreenScriptScrubSeaSearchSeasonSeatSecondSecretSectionSecuritySeedSeekSegmentSelectSellSeminarSeniorSenseSentenceSeriesServiceSessionSettleSetupSevenShadowShaftShallowShareShedShellSheriffShieldShiftShineShipShiverShockShoeShootShopShortShoulderShoveShrimpShrugShuffleShySiblingSickSideSiegeSightSignSilentSilkSillySilverSimilarSimpleSinceSingSirenSisterSituateSixSizeSkateSketchSkiSkillSkinSkirtSkullSlabSlamSleepSlenderSliceSlideSlightSlimSloganSlotSlowSlushSmallSmartSmileSmokeSmoothSnackSnakeSnapSniffSnowSoapSoccerSocialSockSodaSoftSolarSoldierSolidSolutionSolveSomeoneSongSoonSorrySortSoulSoundSoupSourceSouthSpaceSpareSpatialSpawnSpeakSpecialSpeedSpellSpendSphereSpiceSpiderSpikeSpinSpiritSplitSpoilSponsorSpoonSportSpotSpraySpreadSpringSpySquareSqueezeSquirrelStableStadiumStaffStageStairsStampStandStartStateStaySteakSteelStemStepStereoStickStillStingStockStomachStoneStoolStoryStoveStrategyStreetStrikeStrongStruggleStudentStuffStumbleStyleSubjectSubmitSubwaySuccessSuchSuddenSufferSugarSuggestSuitSummerSunSunnySunsetSuperSupplySupremeSureSurfaceSurgeSurpriseSurroundSurveySuspectSustainSwallowSwampSwapSwarmSwearSweetSwiftSwimSwingSwitchSwordSymbolSymptomSyrupSystemTableTackleTagTailTalentTalkTankTapeTargetTaskTasteTattooTaxiTeachTeamTellTenTenantTennisTentTermTestTextThankThatThemeThenTheoryThereTheyThingThisThoughtThreeThriveThrowThumbThunderTicketTideTigerTiltTimberTimeTinyTipTiredTissueTitleToastTobaccoTodayToddlerToeTogetherToiletTokenTomatoTomorrowToneTongueTonightToolToothTopTopicToppleTorchTornadoTortoiseTossTotalTouristTowardTowerTownToyTrackTradeTrafficTragicTrainTransferTrapTrashTravelTrayTreatTreeTrendTrialTribeTrickTriggerTrimTripTrophyTroubleTruckTrueTrulyTrumpetTrustTruthTryTubeTuitionTumbleTunaTunnelTurkeyTurnTurtleTwelveTwentyTwiceTwinTwistTwoTypeTypicalUglyUmbrellaUnableUnawareUncleUncoverUnderUndoUnfairUnfoldUnhappyUniformUniqueUnitUniverseUnknownUnlockUntilUnusualUnveilUpdateUpgradeUpholdUponUpperUpsetUrbanUrgeUsageUseUsedUsefulUselessUsualUtilityVacantVacuumVagueValidValleyValveVanVanishVaporVariousVastVaultVehicleVelvetVendorVentureVenueVerbVerifyVersionVeryVesselVeteranViableVibrantViciousVictoryVideoViewVillageVintageViolinVirtualVirusVisaVisitVisualVitalVividVocalVoiceVoidVolcanoVolumeVoteVoyageWageWagonWaitWalkWallWalnutWantWarfareWarmWarriorWashWaspWasteWaterWaveWayWealthWeaponWearWeaselWeatherWebWeddingWeekendWeirdWelcomeWestWetWhaleWhatWheatWheelWhenWhereWhipWhisperWideWidthWifeWildWillWinWindowWineWingWinkWinnerWinterWireWisdomWiseWishWitnessWolfWomanWonderWoodWoolWordWorkWorldWorryWorthWrapWreckWrestleWristWriteWrongYardYearYellowYouYoungYouthZebraZeroZoneZoo\";\n\nlet wordlist: Array = null;\n\n\nfunction loadWords(lang: Wordlist): void {\n if (wordlist != null) { return; }\n wordlist = words.replace(/([A-Z])/g, \" $1\").toLowerCase().substring(1).split(\" \");\n\n // Verify the computed list matches the official list\n /* istanbul ignore if */\n if (Wordlist.check(lang) !== \"0x3c8acc1e7b08d8e76f9fda015ef48dc8c710a73cb7e0f77b2c18a9b5a7adde60\") {\n wordlist = null;\n throw new Error(\"BIP39 Wordlist for en (English) FAILED\");\n }\n}\n\nclass LangEn extends Wordlist {\n constructor() {\n super(\"en\");\n }\n\n getWord(index: number): string {\n loadWords(this);\n return wordlist[index];\n }\n\n getWordIndex(word: string): number {\n loadWords(this);\n return wordlist.indexOf(word);\n }\n}\n\nconst langEn = new LangEn();\nWordlist.register(langEn);\n\nexport { langEn };\n", "\"use strict\";\n\nimport { toUtf8Bytes, toUtf8String } from \"@ethersproject/strings\";\n\nimport { logger, Wordlist } from \"./wordlist\";\n\n\nconst words = \"A/bacoAbdomenAbejaAbiertoAbogadoAbonoAbortoAbrazoAbrirAbueloAbusoAcabarAcademiaAccesoAccio/nAceiteAcelgaAcentoAceptarA/cidoAclararAcne/AcogerAcosoActivoActoActrizActuarAcudirAcuerdoAcusarAdictoAdmitirAdoptarAdornoAduanaAdultoAe/reoAfectarAficio/nAfinarAfirmarA/gilAgitarAgoni/aAgostoAgotarAgregarAgrioAguaAgudoA/guilaAgujaAhogoAhorroAireAislarAjedrezAjenoAjusteAlacra/nAlambreAlarmaAlbaA/lbumAlcaldeAldeaAlegreAlejarAlertaAletaAlfilerAlgaAlgodo/nAliadoAlientoAlivioAlmaAlmejaAlmi/barAltarAltezaAltivoAltoAlturaAlumnoAlzarAmableAmanteAmapolaAmargoAmasarA/mbarA/mbitoAmenoAmigoAmistadAmorAmparoAmplioAnchoAncianoAnclaAndarAnde/nAnemiaA/nguloAnilloA/nimoAni/sAnotarAntenaAntiguoAntojoAnualAnularAnuncioA~adirA~ejoA~oApagarAparatoApetitoApioAplicarApodoAporteApoyoAprenderAprobarApuestaApuroAradoAra~aArarA/rbitroA/rbolArbustoArchivoArcoArderArdillaArduoA/reaA/ridoAriesArmoni/aArne/sAromaArpaArpo/nArregloArrozArrugaArteArtistaAsaAsadoAsaltoAscensoAsegurarAseoAsesorAsientoAsiloAsistirAsnoAsombroA/speroAstillaAstroAstutoAsumirAsuntoAtajoAtaqueAtarAtentoAteoA/ticoAtletaA/tomoAtraerAtrozAtu/nAudazAudioAugeAulaAumentoAusenteAutorAvalAvanceAvaroAveAvellanaAvenaAvestruzAvio/nAvisoAyerAyudaAyunoAzafra/nAzarAzoteAzu/carAzufreAzulBabaBaborBacheBahi/aBaileBajarBalanzaBalco/nBaldeBambu/BancoBandaBa~oBarbaBarcoBarnizBarroBa/sculaBasto/nBasuraBatallaBateri/aBatirBatutaBau/lBazarBebe/BebidaBelloBesarBesoBestiaBichoBienBingoBlancoBloqueBlusaBoaBobinaBoboBocaBocinaBodaBodegaBoinaBolaBoleroBolsaBombaBondadBonitoBonoBonsa/iBordeBorrarBosqueBoteBoti/nBo/vedaBozalBravoBrazoBrechaBreveBrilloBrincoBrisaBrocaBromaBronceBroteBrujaBruscoBrutoBuceoBucleBuenoBueyBufandaBufo/nBu/hoBuitreBultoBurbujaBurlaBurroBuscarButacaBuzo/nCaballoCabezaCabinaCabraCacaoCada/verCadenaCaerCafe/Cai/daCaima/nCajaCajo/nCalCalamarCalcioCaldoCalidadCalleCalmaCalorCalvoCamaCambioCamelloCaminoCampoCa/ncerCandilCanelaCanguroCanicaCantoCa~aCa~o/nCaobaCaosCapazCapita/nCapoteCaptarCapuchaCaraCarbo/nCa/rcelCaretaCargaCari~oCarneCarpetaCarroCartaCasaCascoCaseroCaspaCastorCatorceCatreCaudalCausaCazoCebollaCederCedroCeldaCe/lebreCelosoCe/lulaCementoCenizaCentroCercaCerdoCerezaCeroCerrarCertezaCe/spedCetroChacalChalecoChampu/ChanclaChapaCharlaChicoChisteChivoChoqueChozaChuletaChuparCiclo/nCiegoCieloCienCiertoCifraCigarroCimaCincoCineCintaCipre/sCircoCiruelaCisneCitaCiudadClamorClanClaroClaseClaveClienteClimaCli/nicaCobreCoccio/nCochinoCocinaCocoCo/digoCodoCofreCogerCoheteCoji/nCojoColaColchaColegioColgarColinaCollarColmoColumnaCombateComerComidaCo/modoCompraCondeConejoCongaConocerConsejoContarCopaCopiaCorazo/nCorbataCorchoCordo/nCoronaCorrerCoserCosmosCostaCra/neoCra/terCrearCrecerCrei/doCremaCri/aCrimenCriptaCrisisCromoCro/nicaCroquetaCrudoCruzCuadroCuartoCuatroCuboCubrirCucharaCuelloCuentoCuerdaCuestaCuevaCuidarCulebraCulpaCultoCumbreCumplirCunaCunetaCuotaCupo/nCu/pulaCurarCuriosoCursoCurvaCutisDamaDanzaDarDardoDa/tilDeberDe/bilDe/cadaDecirDedoDefensaDefinirDejarDelfi/nDelgadoDelitoDemoraDensoDentalDeporteDerechoDerrotaDesayunoDeseoDesfileDesnudoDestinoDesvi/oDetalleDetenerDeudaDi/aDiabloDiademaDiamanteDianaDiarioDibujoDictarDienteDietaDiezDifi/cilDignoDilemaDiluirDineroDirectoDirigirDiscoDise~oDisfrazDivaDivinoDobleDoceDolorDomingoDonDonarDoradoDormirDorsoDosDosisDrago/nDrogaDuchaDudaDueloDue~oDulceDu/oDuqueDurarDurezaDuroE/banoEbrioEcharEcoEcuadorEdadEdicio/nEdificioEditorEducarEfectoEficazEjeEjemploElefanteElegirElementoElevarElipseE/liteElixirElogioEludirEmbudoEmitirEmocio/nEmpateEmpe~oEmpleoEmpresaEnanoEncargoEnchufeEnci/aEnemigoEneroEnfadoEnfermoEnga~oEnigmaEnlaceEnormeEnredoEnsayoEnse~arEnteroEntrarEnvaseEnvi/oE/pocaEquipoErizoEscalaEscenaEscolarEscribirEscudoEsenciaEsferaEsfuerzoEspadaEspejoEspi/aEsposaEspumaEsqui/EstarEsteEstiloEstufaEtapaEternoE/ticaEtniaEvadirEvaluarEventoEvitarExactoExamenExcesoExcusaExentoExigirExilioExistirE/xitoExpertoExplicarExponerExtremoFa/bricaFa/bulaFachadaFa/cilFactorFaenaFajaFaldaFalloFalsoFaltarFamaFamiliaFamosoFarao/nFarmaciaFarolFarsaFaseFatigaFaunaFavorFaxFebreroFechaFelizFeoFeriaFerozFe/rtilFervorFesti/nFiableFianzaFiarFibraFiccio/nFichaFideoFiebreFielFieraFiestaFiguraFijarFijoFilaFileteFilialFiltroFinFincaFingirFinitoFirmaFlacoFlautaFlechaFlorFlotaFluirFlujoFlu/orFobiaFocaFogataFogo/nFolioFolletoFondoFormaForroFortunaForzarFosaFotoFracasoFra/gilFranjaFraseFraudeFrei/rFrenoFresaFri/oFritoFrutaFuegoFuenteFuerzaFugaFumarFuncio/nFundaFurgo/nFuriaFusilFu/tbolFuturoGacelaGafasGaitaGajoGalaGaleri/aGalloGambaGanarGanchoGangaGansoGarajeGarzaGasolinaGastarGatoGavila/nGemeloGemirGenGe/neroGenioGenteGeranioGerenteGermenGestoGiganteGimnasioGirarGiroGlaciarGloboGloriaGolGolfoGolosoGolpeGomaGordoGorilaGorraGotaGoteoGozarGradaGra/ficoGranoGrasaGratisGraveGrietaGrilloGripeGrisGritoGrosorGru/aGruesoGrumoGrupoGuanteGuapoGuardiaGuerraGui/aGui~oGuionGuisoGuitarraGusanoGustarHaberHa/bilHablarHacerHachaHadaHallarHamacaHarinaHazHaza~aHebillaHebraHechoHeladoHelioHembraHerirHermanoHe/roeHervirHieloHierroHi/gadoHigieneHijoHimnoHistoriaHocicoHogarHogueraHojaHombreHongoHonorHonraHoraHormigaHornoHostilHoyoHuecoHuelgaHuertaHuesoHuevoHuidaHuirHumanoHu/medoHumildeHumoHundirHuraca/nHurtoIconoIdealIdiomaI/doloIglesiaIglu/IgualIlegalIlusio/nImagenIma/nImitarImparImperioImponerImpulsoIncapazI/ndiceInerteInfielInformeIngenioInicioInmensoInmuneInnatoInsectoInstanteIntere/sI/ntimoIntuirInu/tilInviernoIraIrisIroni/aIslaIsloteJabali/Jabo/nJamo/nJarabeJardi/nJarraJaulaJazmi/nJefeJeringaJineteJornadaJorobaJovenJoyaJuergaJuevesJuezJugadorJugoJugueteJuicioJuncoJunglaJunioJuntarJu/piterJurarJustoJuvenilJuzgarKiloKoalaLabioLacioLacraLadoLadro/nLagartoLa/grimaLagunaLaicoLamerLa/minaLa/mparaLanaLanchaLangostaLanzaLa/pizLargoLarvaLa/stimaLataLa/texLatirLaurelLavarLazoLealLeccio/nLecheLectorLeerLegio/nLegumbreLejanoLenguaLentoLe~aLeo/nLeopardoLesio/nLetalLetraLeveLeyendaLibertadLibroLicorLi/derLidiarLienzoLigaLigeroLimaLi/miteLimo/nLimpioLinceLindoLi/neaLingoteLinoLinternaLi/quidoLisoListaLiteraLitioLitroLlagaLlamaLlantoLlaveLlegarLlenarLlevarLlorarLloverLluviaLoboLocio/nLocoLocuraLo/gicaLogroLombrizLomoLonjaLoteLuchaLucirLugarLujoLunaLunesLupaLustroLutoLuzMacetaMachoMaderaMadreMaduroMaestroMafiaMagiaMagoMai/zMaldadMaletaMallaMaloMama/MamboMamutMancoMandoManejarMangaManiqui/ManjarManoMansoMantaMa~anaMapaMa/quinaMarMarcoMareaMarfilMargenMaridoMa/rmolMarro/nMartesMarzoMasaMa/scaraMasivoMatarMateriaMatizMatrizMa/ximoMayorMazorcaMechaMedallaMedioMe/dulaMejillaMejorMelenaMelo/nMemoriaMenorMensajeMenteMenu/MercadoMerengueMe/ritoMesMeso/nMetaMeterMe/todoMetroMezclaMiedoMielMiembroMigaMilMilagroMilitarMillo/nMimoMinaMineroMi/nimoMinutoMiopeMirarMisaMiseriaMisilMismoMitadMitoMochilaMocio/nModaModeloMohoMojarMoldeMolerMolinoMomentoMomiaMonarcaMonedaMonjaMontoMo~oMoradaMorderMorenoMorirMorroMorsaMortalMoscaMostrarMotivoMoverMo/vilMozoMuchoMudarMuebleMuelaMuerteMuestraMugreMujerMulaMuletaMultaMundoMu~ecaMuralMuroMu/sculoMuseoMusgoMu/sicaMusloNa/carNacio/nNadarNaipeNaranjaNarizNarrarNasalNatalNativoNaturalNa/useaNavalNaveNavidadNecioNe/ctarNegarNegocioNegroNeo/nNervioNetoNeutroNevarNeveraNichoNidoNieblaNietoNi~ezNi~oNi/tidoNivelNoblezaNocheNo/minaNoriaNormaNorteNotaNoticiaNovatoNovelaNovioNubeNucaNu/cleoNudilloNudoNueraNueveNuezNuloNu/meroNutriaOasisObesoObispoObjetoObraObreroObservarObtenerObvioOcaOcasoOce/anoOchentaOchoOcioOcreOctavoOctubreOcultoOcuparOcurrirOdiarOdioOdiseaOesteOfensaOfertaOficioOfrecerOgroOi/doOi/rOjoOlaOleadaOlfatoOlivoOllaOlmoOlorOlvidoOmbligoOndaOnzaOpacoOpcio/nO/peraOpinarOponerOptarO/pticaOpuestoOracio/nOradorOralO/rbitaOrcaOrdenOrejaO/rganoOrgi/aOrgulloOrienteOrigenOrillaOroOrquestaOrugaOsadi/aOscuroOseznoOsoOstraOto~oOtroOvejaO/vuloO/xidoOxi/genoOyenteOzonoPactoPadrePaellaPa/ginaPagoPai/sPa/jaroPalabraPalcoPaletaPa/lidoPalmaPalomaPalparPanPanalPa/nicoPanteraPa~ueloPapa/PapelPapillaPaquetePararParcelaParedParirParoPa/rpadoParquePa/rrafoPartePasarPaseoPasio/nPasoPastaPataPatioPatriaPausaPautaPavoPayasoPeato/nPecadoPeceraPechoPedalPedirPegarPeinePelarPelda~oPeleaPeligroPellejoPeloPelucaPenaPensarPe~o/nPeo/nPeorPepinoPeque~oPeraPerchaPerderPerezaPerfilPericoPerlaPermisoPerroPersonaPesaPescaPe/simoPesta~aPe/taloPetro/leoPezPezu~aPicarPicho/nPiePiedraPiernaPiezaPijamaPilarPilotoPimientaPinoPintorPinzaPi~aPiojoPipaPirataPisarPiscinaPisoPistaPito/nPizcaPlacaPlanPlataPlayaPlazaPleitoPlenoPlomoPlumaPluralPobrePocoPoderPodioPoemaPoesi/aPoetaPolenPolici/aPolloPolvoPomadaPomeloPomoPompaPonerPorcio/nPortalPosadaPoseerPosiblePostePotenciaPotroPozoPradoPrecozPreguntaPremioPrensaPresoPrevioPrimoPri/ncipePrisio/nPrivarProaProbarProcesoProductoProezaProfesorProgramaProlePromesaProntoPropioPro/ximoPruebaPu/blicoPucheroPudorPuebloPuertaPuestoPulgaPulirPulmo/nPulpoPulsoPumaPuntoPu~alPu~oPupaPupilaPure/QuedarQuejaQuemarQuererQuesoQuietoQui/micaQuinceQuitarRa/banoRabiaRaboRacio/nRadicalRai/zRamaRampaRanchoRangoRapazRa/pidoRaptoRasgoRaspaRatoRayoRazaRazo/nReaccio/nRealidadReba~oReboteRecaerRecetaRechazoRecogerRecreoRectoRecursoRedRedondoReducirReflejoReformaRefra/nRefugioRegaloRegirReglaRegresoRehe/nReinoRei/rRejaRelatoRelevoRelieveRellenoRelojRemarRemedioRemoRencorRendirRentaRepartoRepetirReposoReptilResRescateResinaRespetoRestoResumenRetiroRetornoRetratoReunirReve/sRevistaReyRezarRicoRiegoRiendaRiesgoRifaRi/gidoRigorRinco/nRi~o/nRi/oRiquezaRisaRitmoRitoRizoRobleRoceRociarRodarRodeoRodillaRoerRojizoRojoRomeroRomperRonRoncoRondaRopaRoperoRosaRoscaRostroRotarRubi/RuborRudoRuedaRugirRuidoRuinaRuletaRuloRumboRumorRupturaRutaRutinaSa/badoSaberSabioSableSacarSagazSagradoSalaSaldoSaleroSalirSalmo/nSalo/nSalsaSaltoSaludSalvarSambaSancio/nSandi/aSanearSangreSanidadSanoSantoSapoSaqueSardinaSarte/nSastreSata/nSaunaSaxofo/nSeccio/nSecoSecretoSectaSedSeguirSeisSelloSelvaSemanaSemillaSendaSensorSe~alSe~orSepararSepiaSequi/aSerSerieSermo/nServirSesentaSesio/nSetaSetentaSeveroSexoSextoSidraSiestaSieteSigloSignoSi/labaSilbarSilencioSillaSi/mboloSimioSirenaSistemaSitioSituarSobreSocioSodioSolSolapaSoldadoSoledadSo/lidoSoltarSolucio/nSombraSondeoSonidoSonoroSonrisaSopaSoplarSoporteSordoSorpresaSorteoSoste/nSo/tanoSuaveSubirSucesoSudorSuegraSueloSue~oSuerteSufrirSujetoSulta/nSumarSuperarSuplirSuponerSupremoSurSurcoSure~oSurgirSustoSutilTabacoTabiqueTablaTabu/TacoTactoTajoTalarTalcoTalentoTallaTalo/nTama~oTamborTangoTanqueTapaTapeteTapiaTapo/nTaquillaTardeTareaTarifaTarjetaTarotTarroTartaTatuajeTauroTazaTazo/nTeatroTechoTeclaTe/cnicaTejadoTejerTejidoTelaTele/fonoTemaTemorTemploTenazTenderTenerTenisTensoTeori/aTerapiaTercoTe/rminoTernuraTerrorTesisTesoroTestigoTeteraTextoTezTibioTiburo/nTiempoTiendaTierraTiesoTigreTijeraTildeTimbreTi/midoTimoTintaTi/oTi/picoTipoTiraTiro/nTita/nTi/tereTi/tuloTizaToallaTobilloTocarTocinoTodoTogaToldoTomarTonoTontoToparTopeToqueTo/raxToreroTormentaTorneoToroTorpedoTorreTorsoTortugaTosToscoToserTo/xicoTrabajoTractorTraerTra/ficoTragoTrajeTramoTranceTratoTraumaTrazarTre/bolTreguaTreintaTrenTreparTresTribuTrigoTripaTristeTriunfoTrofeoTrompaTroncoTropaTroteTrozoTrucoTruenoTrufaTuberi/aTuboTuertoTumbaTumorTu/nelTu/nicaTurbinaTurismoTurnoTutorUbicarU/lceraUmbralUnidadUnirUniversoUnoUntarU~aUrbanoUrbeUrgenteUrnaUsarUsuarioU/tilUtopi/aUvaVacaVaci/oVacunaVagarVagoVainaVajillaValeVa/lidoValleValorVa/lvulaVampiroVaraVariarVaro/nVasoVecinoVectorVehi/culoVeinteVejezVelaVeleroVelozVenaVencerVendaVenenoVengarVenirVentaVenusVerVeranoVerboVerdeVeredaVerjaVersoVerterVi/aViajeVibrarVicioVi/ctimaVidaVi/deoVidrioViejoViernesVigorVilVillaVinagreVinoVi~edoVioli/nViralVirgoVirtudVisorVi/speraVistaVitaminaViudoVivazViveroVivirVivoVolca/nVolumenVolverVorazVotarVotoVozVueloVulgarYacerYateYeguaYemaYernoYesoYodoYogaYogurZafiroZanjaZapatoZarzaZonaZorroZumoZurdo\";\n\nconst lookup: { [word: string]: number } = {};\nlet wordlist: Array = null;\n\nfunction dropDiacritic(word: string): string {\n logger.checkNormalize();\n return toUtf8String(Array.prototype.filter.call(toUtf8Bytes(word.normalize(\"NFD\").toLowerCase()), (c: number) => {\n return ((c >= 65 && c <= 90) || (c >= 97 && c <= 123));\n }));\n}\n\nfunction expand(word: string): string {\n const output: Array = [];\n Array.prototype.forEach.call(toUtf8Bytes(word), (c: number) => {\n // Acute accent\n if (c === 47) {\n output.push(204);\n output.push(129);\n // n-tilde\n } else if (c === 126) {\n output.push(110);\n output.push(204);\n output.push(131);\n } else {\n output.push(c);\n }\n });\n\n return toUtf8String(output);\n}\n\nfunction loadWords(lang: Wordlist): void {\n if (wordlist != null) { return; }\n wordlist = words.replace(/([A-Z])/g, \" $1\").toLowerCase().substring(1).split(\" \").map((w) => expand(w));\n wordlist.forEach((word, index) => {\n lookup[dropDiacritic(word)] = index;\n });\n\n // Verify the computed list matches the official list\n /* istanbul ignore if */\n if (Wordlist.check(lang) !== \"0xf74fb7092aeacdfbf8959557de22098da512207fb9f109cb526994938cf40300\") {\n wordlist = null;\n throw new Error(\"BIP39 Wordlist for es (Spanish) FAILED\");\n }\n}\n\nclass LangEs extends Wordlist {\n constructor() {\n super(\"es\");\n }\n\n getWord(index: number): string {\n loadWords(this);\n return wordlist[index];\n }\n\n getWordIndex(word: string): number {\n loadWords(this);\n return lookup[dropDiacritic(word)];\n }\n}\n\nconst langEs = new LangEs();\nWordlist.register(langEs);\n\nexport { langEs };\n", "\"use strict\";\n\nimport { toUtf8Bytes, toUtf8String } from \"@ethersproject/strings\";\n\nimport { logger, Wordlist } from \"./wordlist\";\n\n\nconst words = \"AbaisserAbandonAbdiquerAbeilleAbolirAborderAboutirAboyerAbrasifAbreuverAbriterAbrogerAbruptAbsenceAbsoluAbsurdeAbusifAbyssalAcade/mieAcajouAcarienAccablerAccepterAcclamerAccoladeAccrocheAccuserAcerbeAchatAcheterAcidulerAcierAcompteAcque/rirAcronymeActeurActifActuelAdepteAde/quatAdhe/sifAdjectifAdjugerAdmettreAdmirerAdopterAdorerAdoucirAdresseAdroitAdulteAdverbeAe/rerAe/ronefAffaireAffecterAfficheAffreuxAffublerAgacerAgencerAgileAgiterAgraferAgre/ableAgrumeAiderAiguilleAilierAimableAisanceAjouterAjusterAlarmerAlchimieAlerteAlge-breAlgueAlie/nerAlimentAlle/gerAlliageAllouerAllumerAlourdirAlpagaAltesseAlve/oleAmateurAmbiguAmbreAme/nagerAmertumeAmidonAmiralAmorcerAmourAmovibleAmphibieAmpleurAmusantAnalyseAnaphoreAnarchieAnatomieAncienAne/antirAngleAngoisseAnguleuxAnimalAnnexerAnnonceAnnuelAnodinAnomalieAnonymeAnormalAntenneAntidoteAnxieuxApaiserApe/ritifAplanirApologieAppareilAppelerApporterAppuyerAquariumAqueducArbitreArbusteArdeurArdoiseArgentArlequinArmatureArmementArmoireArmureArpenterArracherArriverArroserArsenicArte/rielArticleAspectAsphalteAspirerAssautAsservirAssietteAssocierAssurerAsticotAstreAstuceAtelierAtomeAtriumAtroceAttaqueAttentifAttirerAttraperAubaineAubergeAudaceAudibleAugurerAuroreAutomneAutrucheAvalerAvancerAvariceAvenirAverseAveugleAviateurAvideAvionAviserAvoineAvouerAvrilAxialAxiomeBadgeBafouerBagageBaguetteBaignadeBalancerBalconBaleineBalisageBambinBancaireBandageBanlieueBannie-reBanquierBarbierBarilBaronBarqueBarrageBassinBastionBatailleBateauBatterieBaudrierBavarderBeletteBe/lierBeloteBe/ne/ficeBerceauBergerBerlineBermudaBesaceBesogneBe/tailBeurreBiberonBicycleBiduleBijouBilanBilingueBillardBinaireBiologieBiopsieBiotypeBiscuitBisonBistouriBitumeBizarreBlafardBlagueBlanchirBlessantBlinderBlondBloquerBlousonBobardBobineBoireBoiserBolideBonbonBondirBonheurBonifierBonusBordureBorneBotteBoucleBoueuxBougieBoulonBouquinBourseBoussoleBoutiqueBoxeurBrancheBrasierBraveBrebisBre-cheBreuvageBricolerBrigadeBrillantBriocheBriqueBrochureBroderBronzerBrousseBroyeurBrumeBrusqueBrutalBruyantBuffleBuissonBulletinBureauBurinBustierButinerButoirBuvableBuvetteCabanonCabineCachetteCadeauCadreCafe/ineCaillouCaissonCalculerCalepinCalibreCalmerCalomnieCalvaireCamaradeCame/raCamionCampagneCanalCanetonCanonCantineCanularCapableCaporalCapriceCapsuleCapterCapucheCarabineCarboneCaresserCaribouCarnageCarotteCarreauCartonCascadeCasierCasqueCassureCauserCautionCavalierCaverneCaviarCe/dilleCeintureCe/lesteCelluleCendrierCensurerCentralCercleCe/re/bralCeriseCernerCerveauCesserChagrinChaiseChaleurChambreChanceChapitreCharbonChasseurChatonChaussonChavirerChemiseChenilleChe/quierChercherChevalChienChiffreChignonChime-reChiotChlorureChocolatChoisirChoseChouetteChromeChuteCigareCigogneCimenterCine/maCintrerCirculerCirerCirqueCiterneCitoyenCitronCivilClaironClameurClaquerClasseClavierClientClignerClimatClivageClocheClonageCloporteCobaltCobraCocasseCocotierCoderCodifierCoffreCognerCohe/sionCoifferCoincerCole-reColibriCollineColmaterColonelCombatCome/dieCommandeCompactConcertConduireConfierCongelerConnoterConsonneContactConvexeCopainCopieCorailCorbeauCordageCornicheCorpusCorrectCorte-geCosmiqueCostumeCotonCoudeCoupureCourageCouteauCouvrirCoyoteCrabeCrainteCravateCrayonCre/atureCre/diterCre/meuxCreuserCrevetteCriblerCrierCristalCrite-reCroireCroquerCrotaleCrucialCruelCrypterCubiqueCueillirCuille-reCuisineCuivreCulminerCultiverCumulerCupideCuratifCurseurCyanureCycleCylindreCyniqueDaignerDamierDangerDanseurDauphinDe/battreDe/biterDe/borderDe/briderDe/butantDe/calerDe/cembreDe/chirerDe/ciderDe/clarerDe/corerDe/crireDe/cuplerDe/daleDe/ductifDe/esseDe/fensifDe/filerDe/frayerDe/gagerDe/givrerDe/glutirDe/graferDe/jeunerDe/liceDe/logerDemanderDemeurerDe/molirDe/nicherDe/nouerDentelleDe/nuderDe/partDe/penserDe/phaserDe/placerDe/poserDe/rangerDe/roberDe/sastreDescenteDe/sertDe/signerDe/sobe/irDessinerDestrierDe/tacherDe/testerDe/tourerDe/tresseDevancerDevenirDevinerDevoirDiableDialogueDiamantDicterDiffe/rerDige/rerDigitalDigneDiluerDimancheDiminuerDioxydeDirectifDirigerDiscuterDisposerDissiperDistanceDivertirDiviserDocileDocteurDogmeDoigtDomaineDomicileDompterDonateurDonjonDonnerDopamineDortoirDorureDosageDoseurDossierDotationDouanierDoubleDouceurDouterDoyenDragonDraperDresserDribblerDroitureDuperieDuplexeDurableDurcirDynastieE/blouirE/carterE/charpeE/chelleE/clairerE/clipseE/cloreE/cluseE/coleE/conomieE/corceE/couterE/craserE/cre/merE/crivainE/crouE/cumeE/cureuilE/difierE/duquerEffacerEffectifEffigieEffortEffrayerEffusionE/galiserE/garerE/jecterE/laborerE/largirE/lectronE/le/gantE/le/phantE/le-veE/ligibleE/litismeE/logeE/luciderE/luderEmballerEmbellirEmbryonE/meraudeE/missionEmmenerE/motionE/mouvoirEmpereurEmployerEmporterEmpriseE/mulsionEncadrerEnche-reEnclaveEncocheEndiguerEndosserEndroitEnduireE/nergieEnfanceEnfermerEnfouirEngagerEnginEngloberE/nigmeEnjamberEnjeuEnleverEnnemiEnnuyeuxEnrichirEnrobageEnseigneEntasserEntendreEntierEntourerEntraverE/nume/rerEnvahirEnviableEnvoyerEnzymeE/olienE/paissirE/pargneE/patantE/pauleE/picerieE/pide/mieE/pierE/pilogueE/pineE/pisodeE/pitapheE/poqueE/preuveE/prouverE/puisantE/querreE/quipeE/rigerE/rosionErreurE/ruptionEscalierEspadonEspe-ceEspie-gleEspoirEspritEsquiverEssayerEssenceEssieuEssorerEstimeEstomacEstradeE/tage-reE/talerE/tancheE/tatiqueE/teindreE/tendoirE/ternelE/thanolE/thiqueEthnieE/tirerE/tofferE/toileE/tonnantE/tourdirE/trangeE/troitE/tudeEuphorieE/valuerE/vasionE/ventailE/videnceE/viterE/volutifE/voquerExactExage/rerExaucerExcellerExcitantExclusifExcuseExe/cuterExempleExercerExhalerExhorterExigenceExilerExisterExotiqueExpe/dierExplorerExposerExprimerExquisExtensifExtraireExulterFableFabuleuxFacetteFacileFactureFaiblirFalaiseFameuxFamilleFarceurFarfeluFarineFaroucheFascinerFatalFatigueFauconFautifFaveurFavoriFe/brileFe/conderFe/de/rerFe/linFemmeFe/murFendoirFe/odalFermerFe/roceFerveurFestivalFeuilleFeutreFe/vrierFiascoFicelerFictifFide-leFigureFilatureFiletageFilie-reFilleulFilmerFilouFiltrerFinancerFinirFioleFirmeFissureFixerFlairerFlammeFlasqueFlatteurFle/auFle-cheFleurFlexionFloconFloreFluctuerFluideFluvialFolieFonderieFongibleFontaineForcerForgeronFormulerFortuneFossileFoudreFouge-reFouillerFoulureFourmiFragileFraiseFranchirFrapperFrayeurFre/gateFreinerFrelonFre/mirFre/ne/sieFre-reFriableFrictionFrissonFrivoleFroidFromageFrontalFrotterFruitFugitifFuiteFureurFurieuxFurtifFusionFuturGagnerGalaxieGalerieGambaderGarantirGardienGarnirGarrigueGazelleGazonGe/antGe/latineGe/luleGendarmeGe/ne/ralGe/nieGenouGentilGe/ologieGe/ome-treGe/raniumGermeGestuelGeyserGibierGiclerGirafeGivreGlaceGlaiveGlisserGlobeGloireGlorieuxGolfeurGommeGonflerGorgeGorilleGoudronGouffreGoulotGoupilleGourmandGoutteGraduelGraffitiGraineGrandGrappinGratuitGravirGrenatGriffureGrillerGrimperGrognerGronderGrotteGroupeGrugerGrutierGruye-reGue/pardGuerrierGuideGuimauveGuitareGustatifGymnasteGyrostatHabitudeHachoirHalteHameauHangarHannetonHaricotHarmonieHarponHasardHe/liumHe/matomeHerbeHe/rissonHermineHe/ronHe/siterHeureuxHibernerHibouHilarantHistoireHiverHomardHommageHomoge-neHonneurHonorerHonteuxHordeHorizonHorlogeHormoneHorribleHouleuxHousseHublotHuileuxHumainHumbleHumideHumourHurlerHydromelHygie-neHymneHypnoseIdylleIgnorerIguaneIlliciteIllusionImageImbiberImiterImmenseImmobileImmuableImpactImpe/rialImplorerImposerImprimerImputerIncarnerIncendieIncidentInclinerIncoloreIndexerIndiceInductifIne/ditIneptieInexactInfiniInfligerInformerInfusionInge/rerInhalerInhiberInjecterInjureInnocentInoculerInonderInscrireInsecteInsigneInsoliteInspirerInstinctInsulterIntactIntenseIntimeIntrigueIntuitifInutileInvasionInventerInviterInvoquerIroniqueIrradierIrre/elIrriterIsolerIvoireIvresseJaguarJaillirJambeJanvierJardinJaugerJauneJavelotJetableJetonJeudiJeunesseJoindreJoncherJonglerJoueurJouissifJournalJovialJoyauJoyeuxJubilerJugementJuniorJuponJuristeJusticeJuteuxJuve/nileKayakKimonoKiosqueLabelLabialLabourerLace/rerLactoseLaguneLaineLaisserLaitierLambeauLamelleLampeLanceurLangageLanterneLapinLargeurLarmeLaurierLavaboLavoirLectureLe/galLe/gerLe/gumeLessiveLettreLevierLexiqueLe/zardLiasseLibe/rerLibreLicenceLicorneLie-geLie-vreLigatureLigoterLigueLimerLimiteLimonadeLimpideLine/aireLingotLionceauLiquideLisie-reListerLithiumLitigeLittoralLivreurLogiqueLointainLoisirLombricLoterieLouerLourdLoutreLouveLoyalLubieLucideLucratifLueurLugubreLuisantLumie-reLunaireLundiLuronLutterLuxueuxMachineMagasinMagentaMagiqueMaigreMaillonMaintienMairieMaisonMajorerMalaxerMale/ficeMalheurMaliceMalletteMammouthMandaterManiableManquantManteauManuelMarathonMarbreMarchandMardiMaritimeMarqueurMarronMartelerMascotteMassifMate/rielMatie-reMatraqueMaudireMaussadeMauveMaximalMe/chantMe/connuMe/dailleMe/decinMe/diterMe/duseMeilleurMe/langeMe/lodieMembreMe/moireMenacerMenerMenhirMensongeMentorMercrediMe/riteMerleMessagerMesureMe/talMe/te/oreMe/thodeMe/tierMeubleMiaulerMicrobeMietteMignonMigrerMilieuMillionMimiqueMinceMine/ralMinimalMinorerMinuteMiracleMiroiterMissileMixteMobileModerneMoelleuxMondialMoniteurMonnaieMonotoneMonstreMontagneMonumentMoqueurMorceauMorsureMortierMoteurMotifMoucheMoufleMoulinMoussonMoutonMouvantMultipleMunitionMurailleMure-neMurmureMuscleMuse/umMusicienMutationMuterMutuelMyriadeMyrtilleMyste-reMythiqueNageurNappeNarquoisNarrerNatationNationNatureNaufrageNautiqueNavireNe/buleuxNectarNe/fasteNe/gationNe/gligerNe/gocierNeigeNerveuxNettoyerNeuroneNeutronNeveuNicheNickelNitrateNiveauNobleNocifNocturneNoirceurNoisetteNomadeNombreuxNommerNormatifNotableNotifierNotoireNourrirNouveauNovateurNovembreNoviceNuageNuancerNuireNuisibleNume/roNuptialNuqueNutritifObe/irObjectifObligerObscurObserverObstacleObtenirObturerOccasionOccuperOce/anOctobreOctroyerOctuplerOculaireOdeurOdorantOffenserOfficierOffrirOgiveOiseauOisillonOlfactifOlivierOmbrageOmettreOnctueuxOndulerOne/reuxOniriqueOpaleOpaqueOpe/rerOpinionOpportunOpprimerOpterOptiqueOrageuxOrangeOrbiteOrdonnerOreilleOrganeOrgueilOrificeOrnementOrqueOrtieOscillerOsmoseOssatureOtarieOuraganOursonOutilOutragerOuvrageOvationOxydeOxyge-neOzonePaisiblePalacePalmare-sPalourdePalperPanachePandaPangolinPaniquerPanneauPanoramaPantalonPapayePapierPapoterPapyrusParadoxeParcelleParesseParfumerParlerParoleParrainParsemerPartagerParureParvenirPassionPaste-quePaternelPatiencePatronPavillonPavoiserPayerPaysagePeignePeintrePelagePe/licanPellePelousePeluchePendulePe/ne/trerPe/niblePensifPe/nuriePe/pitePe/plumPerdrixPerforerPe/riodePermuterPerplexePersilPertePeserPe/talePetitPe/trirPeuplePharaonPhobiePhoquePhotonPhrasePhysiquePianoPicturalPie-cePierrePieuvrePilotePinceauPipettePiquerPiroguePiscinePistonPivoterPixelPizzaPlacardPlafondPlaisirPlanerPlaquePlastronPlateauPleurerPlexusPliagePlombPlongerPluiePlumagePochettePoe/siePoe-tePointePoirierPoissonPoivrePolairePolicierPollenPolygonePommadePompierPonctuelPonde/rerPoneyPortiquePositionPosse/derPosturePotagerPoteauPotionPoucePoulainPoumonPourprePoussinPouvoirPrairiePratiquePre/cieuxPre/direPre/fixePre/ludePre/nomPre/sencePre/textePre/voirPrimitifPrincePrisonPriverProble-meProce/derProdigeProfondProgre-sProieProjeterProloguePromenerPropreProspe-reProte/gerProuesseProverbePrudencePruneauPsychosePublicPuceronPuiserPulpePulsarPunaisePunitifPupitrePurifierPuzzlePyramideQuasarQuerelleQuestionQuie/tudeQuitterQuotientRacineRaconterRadieuxRagondinRaideurRaisinRalentirRallongeRamasserRapideRasageRatisserRavagerRavinRayonnerRe/actifRe/agirRe/aliserRe/animerRecevoirRe/citerRe/clamerRe/colterRecruterReculerRecyclerRe/digerRedouterRefaireRe/flexeRe/formerRefrainRefugeRe/galienRe/gionRe/glageRe/gulierRe/ite/rerRejeterRejouerRelatifReleverReliefRemarqueReme-deRemiseRemonterRemplirRemuerRenardRenfortReniflerRenoncerRentrerRenvoiReplierReporterRepriseReptileRequinRe/serveRe/sineuxRe/soudreRespectResterRe/sultatRe/tablirRetenirRe/ticuleRetomberRetracerRe/unionRe/ussirRevancheRevivreRe/volteRe/vulsifRichesseRideauRieurRigideRigolerRincerRiposterRisibleRisqueRituelRivalRivie-reRocheuxRomanceRompreRonceRondinRoseauRosierRotatifRotorRotuleRougeRouilleRouleauRoutineRoyaumeRubanRubisRucheRuelleRugueuxRuinerRuisseauRuserRustiqueRythmeSablerSaboterSabreSacocheSafariSagesseSaisirSaladeSaliveSalonSaluerSamediSanctionSanglierSarcasmeSardineSaturerSaugrenuSaumonSauterSauvageSavantSavonnerScalpelScandaleSce/le/ratSce/narioSceptreSche/maScienceScinderScoreScrutinSculpterSe/anceSe/cableSe/cherSecouerSe/cre/terSe/datifSe/duireSeigneurSe/jourSe/lectifSemaineSemblerSemenceSe/minalSe/nateurSensibleSentenceSe/parerSe/quenceSereinSergentSe/rieuxSerrureSe/rumServiceSe/sameSe/virSevrageSextupleSide/ralSie-cleSie/gerSifflerSigleSignalSilenceSiliciumSimpleSince-reSinistreSiphonSiropSismiqueSituerSkierSocialSocleSodiumSoigneuxSoldatSoleilSolitudeSolubleSombreSommeilSomnolerSondeSongeurSonnetteSonoreSorcierSortirSosieSottiseSoucieuxSoudureSouffleSouleverSoupapeSourceSoutirerSouvenirSpacieuxSpatialSpe/cialSphe-reSpiralStableStationSternumStimulusStipulerStrictStudieuxStupeurStylisteSublimeSubstratSubtilSubvenirSucce-sSucreSuffixeSugge/rerSuiveurSulfateSuperbeSupplierSurfaceSuricateSurmenerSurpriseSursautSurvieSuspectSyllabeSymboleSyme/trieSynapseSyntaxeSyste-meTabacTablierTactileTaillerTalentTalismanTalonnerTambourTamiserTangibleTapisTaquinerTarderTarifTartineTasseTatamiTatouageTaupeTaureauTaxerTe/moinTemporelTenailleTendreTeneurTenirTensionTerminerTerneTerribleTe/tineTexteThe-meThe/orieThe/rapieThoraxTibiaTie-deTimideTirelireTiroirTissuTitaneTitreTituberTobogganTole/rantTomateToniqueTonneauToponymeTorcheTordreTornadeTorpilleTorrentTorseTortueTotemToucherTournageTousserToxineTractionTraficTragiqueTrahirTrainTrancherTravailTre-fleTremperTre/sorTreuilTriageTribunalTricoterTrilogieTriompheTriplerTriturerTrivialTromboneTroncTropicalTroupeauTuileTulipeTumulteTunnelTurbineTuteurTutoyerTuyauTympanTyphonTypiqueTyranUbuesqueUltimeUltrasonUnanimeUnifierUnionUniqueUnitaireUniversUraniumUrbainUrticantUsageUsineUsuelUsureUtileUtopieVacarmeVaccinVagabondVagueVaillantVaincreVaisseauValableValiseVallonValveVampireVanilleVapeurVarierVaseuxVassalVasteVecteurVedetteVe/ge/talVe/hiculeVeinardVe/loceVendrediVe/ne/rerVengerVenimeuxVentouseVerdureVe/rinVernirVerrouVerserVertuVestonVe/te/ranVe/tusteVexantVexerViaducViandeVictoireVidangeVide/oVignetteVigueurVilainVillageVinaigreViolonVipe-reVirementVirtuoseVirusVisageViseurVisionVisqueuxVisuelVitalVitesseViticoleVitrineVivaceVivipareVocationVoguerVoileVoisinVoitureVolailleVolcanVoltigerVolumeVoraceVortexVoterVouloirVoyageVoyelleWagonXe/nonYachtZe-breZe/nithZesteZoologie\";\n\nlet wordlist: Array = null;\nconst lookup: { [word: string]: number } = { }\n\nfunction dropDiacritic(word: string): string {\n logger.checkNormalize();\n return toUtf8String(Array.prototype.filter.call(toUtf8Bytes(word.normalize(\"NFD\").toLowerCase()), (c: number) => {\n return ((c >= 65 && c <= 90) || (c >= 97 && c <= 123));\n }));\n}\n\nfunction expand(word: string): string {\n const output: Array = [];\n\n Array.prototype.forEach.call(toUtf8Bytes(word), (c: number) => {\n // Acute accent\n if (c === 47) {\n output.push(204);\n output.push(129);\n\n // Grave accent\n } else if (c === 45) {\n output.push(204);\n output.push(128);\n\n } else {\n output.push(c);\n }\n });\n\n return toUtf8String(output);\n}\n\nfunction loadWords(lang: Wordlist): void {\n if (wordlist != null) { return; }\n wordlist = words.replace(/([A-Z])/g, \" $1\").toLowerCase().substring(1).split(\" \").map((w) => expand(w));\n wordlist.forEach((word, index) => {\n lookup[dropDiacritic(word)] = index;\n });\n\n // Verify the computed list matches the official list\n /* istanbul ignore if */\n if (Wordlist.check(lang) !== \"0x51deb7ae009149dc61a6bd18a918eb7ac78d2775726c68e598b92d002519b045\") {\n wordlist = null;\n throw new Error(\"BIP39 Wordlist for fr (French) FAILED\");\n }\n}\n\nclass LangFr extends Wordlist {\n constructor() {\n super(\"fr\");\n }\n\n getWord(index: number): string {\n loadWords(this);\n return wordlist[index];\n }\n\n getWordIndex(word: string): number {\n loadWords(this);\n return lookup[dropDiacritic(word)];\n }\n}\n\nconst langFr = new LangFr();\nWordlist.register(langFr);\n\nexport { langFr };\n", "\"use strict\";\n\nimport { hexlify } from \"@ethersproject/bytes\";\nimport { toUtf8Bytes, toUtf8String } from \"@ethersproject/strings\";\n\nimport { logger, Wordlist } from \"./wordlist\";\n\n\nconst data = [\n\n // 4-kana words\n \"AQRASRAGBAGUAIRAHBAghAURAdBAdcAnoAMEAFBAFCBKFBQRBSFBCXBCDBCHBGFBEQBpBBpQBIkBHNBeOBgFBVCBhBBhNBmOBmRBiHBiFBUFBZDBvFBsXBkFBlcBjYBwDBMBBTBBTRBWBBWXXaQXaRXQWXSRXCFXYBXpHXOQXHRXhRXuRXmXXbRXlXXwDXTRXrCXWQXWGaBWaKcaYgasFadQalmaMBacAKaRKKBKKXKKjKQRKDRKCYKCRKIDKeVKHcKlXKjHKrYNAHNBWNaRNKcNIBNIONmXNsXNdXNnBNMBNRBNrXNWDNWMNFOQABQAHQBrQXBQXFQaRQKXQKDQKOQKFQNBQNDQQgQCXQCDQGBQGDQGdQYXQpBQpQQpHQLXQHuQgBQhBQhCQuFQmXQiDQUFQZDQsFQdRQkHQbRQlOQlmQPDQjDQwXQMBQMDQcFQTBQTHQrDDXQDNFDGBDGQDGRDpFDhFDmXDZXDbRDMYDRdDTRDrXSAhSBCSBrSGQSEQSHBSVRShYShkSyQSuFSiBSdcSoESocSlmSMBSFBSFKSFNSFdSFcCByCaRCKcCSBCSRCCrCGbCEHCYXCpBCpQCIBCIHCeNCgBCgFCVECVcCmkCmwCZXCZFCdRClOClmClFCjDCjdCnXCwBCwXCcRCFQCFjGXhGNhGDEGDMGCDGCHGIFGgBGVXGVEGVRGmXGsXGdYGoSGbRGnXGwXGwDGWRGFNGFLGFOGFdGFkEABEBDEBFEXOEaBEKSENBENDEYXEIgEIkEgBEgQEgHEhFEudEuFEiBEiHEiFEZDEvBEsXEsFEdXEdREkFEbBEbRElFEPCEfkEFNYAEYAhYBNYQdYDXYSRYCEYYoYgQYgRYuRYmCYZTYdBYbEYlXYjQYRbYWRpKXpQopQnpSFpCXpIBpISphNpdBpdRpbRpcZpFBpFNpFDpFopFrLADLBuLXQLXcLaFLCXLEhLpBLpFLHXLeVLhILdHLdRLoDLbRLrXIABIBQIBCIBsIBoIBMIBRIXaIaRIKYIKRINBINuICDIGBIIDIIkIgRIxFIyQIiHIdRIbYIbRIlHIwRIMYIcRIRVITRIFBIFNIFQOABOAFOBQOaFONBONMOQFOSFOCDOGBOEQOpBOLXOIBOIFOgQOgFOyQOycOmXOsXOdIOkHOMEOMkOWWHBNHXNHXWHNXHDuHDRHSuHSRHHoHhkHmRHdRHkQHlcHlRHwBHWcgAEgAggAkgBNgBQgBEgXOgYcgLXgHjgyQgiBgsFgdagMYgWSgFQgFEVBTVXEVKBVKNVKDVKYVKRVNBVNYVDBVDxVSBVSRVCjVGNVLXVIFVhBVhcVsXVdRVbRVlRhBYhKYhDYhGShxWhmNhdahdkhbRhjohMXhTRxAXxXSxKBxNBxEQxeNxeQxhXxsFxdbxlHxjcxFBxFNxFQxFOxFoyNYyYoybcyMYuBQuBRuBruDMuCouHBudQukkuoBulVuMXuFEmCYmCRmpRmeDmiMmjdmTFmFQiADiBOiaRiKRiNBiNRiSFiGkiGFiERipRiLFiIFihYibHijBijEiMXiWBiFBiFCUBQUXFUaRUNDUNcUNRUNFUDBUSHUCDUGBUGFUEqULNULoUIRUeEUeYUgBUhFUuRUiFUsXUdFUkHUbBUjSUjYUwXUMDUcHURdUTBUrBUrXUrQZAFZXZZaRZKFZNBZQFZCXZGBZYdZpBZLDZIFZHXZHNZeQZVRZVFZmXZiBZvFZdFZkFZbHZbFZwXZcCZcRZRBvBQvBGvBLvBWvCovMYsAFsBDsaRsKFsNFsDrsSHsSFsCXsCRsEBsEHsEfspBsLBsLDsIgsIRseGsbRsFBsFQsFSdNBdSRdCVdGHdYDdHcdVbdySduDdsXdlRdwXdWYdWcdWRkBMkXOkaRkNIkNFkSFkCFkYBkpRkeNkgBkhVkmXksFklVkMBkWDkFNoBNoaQoaFoNBoNXoNaoNEoSRoEroYXoYCoYbopRopFomXojkowXorFbBEbEIbdBbjYlaRlDElMXlFDjKjjSRjGBjYBjYkjpRjLXjIBjOFjeVjbRjwBnXQnSHnpFnLXnINnMBnTRwXBwXNwXYwNFwQFwSBwGFwLXwLDweNwgBwuHwjDwnXMBXMpFMIBMeNMTHcaQcNBcDHcSFcCXcpBcLXcLDcgFcuFcnXcwXccDcTQcrFTQErXNrCHrpFrgFrbFrTHrFcWNYWNbWEHWMXWTR\",\n\n // 5-kana words\n \"ABGHABIJAEAVAYJQALZJAIaRAHNXAHdcAHbRAZJMAZJRAZTRAdVJAklmAbcNAjdRAMnRAMWYAWpRAWgRAFgBAFhBAFdcBNJBBNJDBQKBBQhcBQlmBDEJBYJkBYJTBpNBBpJFBIJBBIJDBIcABOKXBOEJBOVJBOiJBOZJBepBBeLXBeIFBegBBgGJBVJXBuocBiJRBUJQBlXVBlITBwNFBMYVBcqXBTlmBWNFBWiJBWnRBFGHBFwXXKGJXNJBXNZJXDTTXSHSXSVRXSlHXCJDXGQJXEhXXYQJXYbRXOfXXeNcXVJFXhQJXhEJXdTRXjdXXMhBXcQTXRGBXTEBXTnQXFCXXFOFXFgFaBaFaBNJaBCJaBpBaBwXaNJKaNJDaQIBaDpRaEPDaHMFamDJalEJaMZJaFaFaFNBaFQJaFLDaFVHKBCYKBEBKBHDKXaFKXGdKXEJKXpHKXIBKXZDKXwXKKwLKNacKNYJKNJoKNWcKDGdKDTRKChXKGaRKGhBKGbRKEBTKEaRKEPTKLMDKLWRKOHDKVJcKdBcKlIBKlOPKFSBKFEPKFpFNBNJNJBQNBGHNBEPNBHXNBgFNBVXNBZDNBsXNBwXNNaRNNJDNNJENNJkNDCJNDVDNGJRNJiDNZJNNsCJNJFNNFSBNFCXNFEPNFLXNFIFQJBFQCaRQJEQQLJDQLJFQIaRQOqXQHaFQHHQQVJXQVJDQhNJQmEIQZJFQsJXQJrFQWbRDJABDBYJDXNFDXCXDXLXDXZDDXsJDQqXDSJFDJCXDEPkDEqXDYmQDpSJDOCkDOGQDHEIDVJDDuDuDWEBDJFgSBNDSBSFSBGHSBIBSBTQSKVYSJQNSJQiSJCXSEqXSJYVSIiJSOMYSHAHSHaQSeCFSepQSegBSHdHSHrFShSJSJuHSJUFSkNRSrSrSWEBSFaHSJFQSFCXSFGDSFYXSFODSFgBSFVXSFhBSFxFSFkFSFbBSFMFCADdCJXBCXaFCXKFCXNFCXCXCXGBCXEJCXYBCXLDCXIBCXOPCXHXCXgBCXhBCXiBCXlDCXcHCJNBCJNFCDCJCDGBCDVXCDhBCDiDCDJdCCmNCpJFCIaRCOqXCHCHCHZJCViJCuCuCmddCJiFCdNBCdHhClEJCnUJCreSCWlgCWTRCFBFCFNBCFYBCFVFCFhFCFdSCFTBCFWDGBNBGBQFGJBCGBEqGBpBGBgQGNBEGNJYGNkOGNJRGDUFGJpQGHaBGJeNGJeEGVBlGVKjGiJDGvJHGsVJGkEBGMIJGWjNGFBFGFCXGFGBGFYXGFpBGFMFEASJEAWpEJNFECJVEIXSEIQJEOqXEOcFEeNcEHEJEHlFEJgFEhlmEmDJEmZJEiMBEUqXEoSREPBFEPXFEPKFEPSFEPEFEPpFEPLXEPIBEJPdEPcFEPTBEJnXEqlHEMpREFCXEFODEFcFYASJYJAFYBaBYBVXYXpFYDhBYCJBYJGFYYbRYeNcYJeVYiIJYZJcYvJgYvJRYJsXYsJFYMYMYreVpBNHpBEJpBwXpQxFpYEJpeNDpJeDpeSFpeCHpHUJpHbBpHcHpmUJpiiJpUJrpsJuplITpFaBpFQqpFGBpFEfpFYBpFpBpFLJpFIDpFgBpFVXpFyQpFuFpFlFpFjDpFnXpFwXpJFMpFTBLXCJLXEFLXhFLXUJLXbFLalmLNJBLSJQLCLCLGJBLLDJLHaFLeNFLeSHLeCXLepFLhaRLZsJLsJDLsJrLocaLlLlLMdbLFNBLFSBLFEHLFkFIBBFIBXFIBaQIBKXIBSFIBpHIBLXIBgBIBhBIBuHIBmXIBiFIBZXIBvFIBbFIBjQIBwXIBWFIKTRIQUJIDGFICjQIYSRIINXIJeCIVaRImEkIZJFIvJRIsJXIdCJIJoRIbBQIjYBIcqXITFVIreVIFKFIFSFIFCJIFGFIFLDIFIBIJFOIFgBIFVXIJFhIFxFIFmXIFdHIFbBIJFrIJFWOBGBOQfXOOKjOUqXOfXBOqXEOcqXORVJOFIBOFlDHBIOHXiFHNTRHCJXHIaRHHJDHHEJHVbRHZJYHbIBHRsJHRkDHWlmgBKFgBSBgBCDgBGHgBpBgBIBgBVJgBuBgBvFgKDTgQVXgDUJgGSJgOqXgmUMgZIJgTUJgWIEgFBFgFNBgFDJgFSFgFGBgFYXgJFOgFgQgFVXgFhBgFbHgJFWVJABVQKcVDgFVOfXVeDFVhaRVmGdViJYVMaRVFNHhBNDhBCXhBEqhBpFhBLXhNJBhSJRheVXhhKEhxlmhZIJhdBQhkIJhbMNhMUJhMZJxNJgxQUJxDEkxDdFxSJRxplmxeSBxeCXxeGFxeYXxepQxegBxWVcxFEQxFLXxFIBxFgBxFxDxFZtxFdcxFbBxFwXyDJXyDlcuASJuDJpuDIBuCpJuGSJuIJFueEFuZIJusJXudWEuoIBuWGJuFBcuFKEuFNFuFQFuFDJuFGJuFVJuFUtuFdHuFTBmBYJmNJYmQhkmLJDmLJomIdXmiJYmvJRmsJRmklmmMBymMuCmclmmcnQiJABiJBNiJBDiBSFiBCJiBEFiBYBiBpFiBLXiBTHiJNciDEfiCZJiECJiJEqiOkHiHKFieNDiHJQieQcieDHieSFieCXieGFieEFieIHiegFihUJixNoioNXiFaBiFKFiFNDiFEPiFYXitFOitFHiFgBiFVEiFmXiFitiFbBiFMFiFrFUCXQUIoQUIJcUHQJUeCEUHwXUUJDUUqXUdWcUcqXUrnQUFNDUFSHUFCFUFEfUFLXUtFOZBXOZXSBZXpFZXVXZEQJZEJkZpDJZOqXZeNHZeCDZUqXZFBQZFEHZFLXvBAFvBKFvBCXvBEPvBpHvBIDvBgFvBuHvQNJvFNFvFGBvFIBvJFcsXCDsXLXsXsXsXlFsXcHsQqXsJQFsEqXseIFsFEHsFjDdBxOdNpRdNJRdEJbdpJRdhZJdnSJdrjNdFNJdFQHdFhNkNJDkYaRkHNRkHSRkVbRkuMRkjSJkcqDoSJFoEiJoYZJoOfXohEBoMGQocqXbBAFbBXFbBaFbBNDbBGBbBLXbBTBbBWDbGJYbIJHbFQqbFpQlDgQlOrFlVJRjGEBjZJRnXvJnXbBnEfHnOPDngJRnxfXnUJWwXEJwNpJwDpBwEfXwrEBMDCJMDGHMDIJMLJDcQGDcQpHcqXccqNFcqCXcFCJRBSBRBGBRBEJRBpQTBNFTBQJTBpBTBVXTFABTFSBTFCFTFGBTFMDrXCJrXLDrDNJrEfHrFQJrFitWNjdWNTR\",\n\n // 6-kana words\n \"AKLJMANOPFASNJIAEJWXAYJNRAIIbRAIcdaAeEfDAgidRAdjNYAMYEJAMIbRAFNJBAFpJFBBIJYBDZJFBSiJhBGdEBBEJfXBEJqXBEJWRBpaUJBLXrXBIYJMBOcfXBeEfFBestXBjNJRBcDJOBFEqXXNvJRXDMBhXCJNYXOAWpXONJWXHDEBXeIaRXhYJDXZJSJXMDJOXcASJXFVJXaBQqXaBZJFasXdQaFSJQaFEfXaFpJHaFOqXKBNSRKXvJBKQJhXKEJQJKEJGFKINJBKIJjNKgJNSKVElmKVhEBKiJGFKlBgJKjnUJKwsJYKMFIJKFNJDKFIJFKFOfXNJBSFNJBCXNBpJFNJBvQNJBMBNJLJXNJOqXNJeCXNJeGFNdsJCNbTKFNwXUJQNFEPQDiJcQDMSJQSFpBQGMQJQJeOcQyCJEQUJEBQJFBrQFEJqDXDJFDJXpBDJXIMDGiJhDIJGRDJeYcDHrDJDVXgFDkAWpDkIgRDjDEqDMvJRDJFNFDJFIBSKclmSJQOFSJQVHSJQjDSJGJBSJGJFSECJoSHEJqSJHTBSJVJDSViJYSZJNBSJsJDSFSJFSFEfXSJFLXCBUJVCJXSBCJXpBCXVJXCJXsXCJXdFCJNJHCLIJgCHiJFCVNJMChCJhCUHEJCsJTRCJdYcCoQJCCFEfXCFIJgCFUJxCFstFGJBaQGJBIDGQJqXGYJNRGJHKFGeQqDGHEJFGJeLXGHIiJGHdBlGUJEBGkIJTGFQPDGJFEqEAGegEJIJBEJVJXEhQJTEiJNcEJZJFEJoEqEjDEqEPDsXEPGJBEPOqXEPeQFEfDiDEJfEFEfepQEfMiJEqXNBEqDIDEqeSFEqVJXEMvJRYXNJDYXEJHYKVJcYYJEBYJeEcYJUqXYFpJFYFstXpAZJMpBSJFpNBNFpeQPDpHLJDpHIJFpHgJFpeitFpHZJFpJFADpFSJFpJFCJpFOqXpFitBpJFZJLXIJFLIJgRLVNJWLVHJMLwNpJLFGJBLFLJDLFOqXLJFUJIBDJXIBGJBIJBYQIJBIBIBOqXIBcqDIEGJFILNJTIIJEBIOiJhIJeNBIJeIBIhiJIIWoTRIJFAHIJFpBIJFuHIFUtFIJFTHOSBYJOEcqXOHEJqOvBpFOkVJrObBVJOncqDOcNJkHhNJRHuHJuHdMhBgBUqXgBsJXgONJBgHNJDgHHJQgJeitgHsJXgJyNagyDJBgZJDrgsVJQgkEJNgkjSJgJFAHgFCJDgFZtMVJXNFVXQfXVJXDJVXoQJVQVJQVDEfXVDvJHVEqNFVeQfXVHpJFVHxfXVVJSRVVmaRVlIJOhCXVJhHjYkhxCJVhWVUJhWiJcxBNJIxeEqDxfXBFxcFEPxFSJFxFYJXyBDQJydaUJyFOPDuYCJYuLvJRuHLJXuZJLDuFOPDuFZJHuFcqXmKHJdmCQJcmOsVJiJAGFitLCFieOfXiestXiZJMEikNJQirXzFiFQqXiFIJFiFZJFiFvtFUHpJFUteIcUteOcUVCJkUhdHcUbEJEUJqXQUMNJhURjYkUFitFZDGJHZJIxDZJVJXZJFDJZJFpQvBNJBvBSJFvJxBrseQqDsVFVJdFLJDkEJNBkmNJYkFLJDoQJOPoGsJRoEAHBoEJfFbBQqDbBZJHbFVJXlFIJBjYIrXjeitcjjCEBjWMNBwXQfXwXOaFwDsJXwCJTRwrCZJMDNJQcDDJFcqDOPRYiJFTBsJXTQIJBTFEfXTFLJDrXEJFrEJXMrFZJFWEJdEWYTlm\",\n\n // 7-kana words\n \"ABCDEFACNJTRAMBDJdAcNJVXBLNJEBXSIdWRXErNJkXYDJMBXZJCJaXMNJaYKKVJKcKDEJqXKDcNJhKVJrNYKbgJVXKFVJSBNBYBwDNJeQfXNJeEqXNhGJWENJFiJRQlIJbEQJfXxDQqXcfXQFNDEJQFwXUJDYcnUJDJIBgQDIUJTRDJFEqDSJQSJFSJQIJFSOPeZtSJFZJHCJXQfXCTDEqFGJBSJFGJBOfXGJBcqXGJHNJDGJRLiJEJfXEqEJFEJPEFpBEJYJBZJFYBwXUJYiJMEBYJZJyTYTONJXpQMFXFpeGIDdpJFstXpJFcPDLBVSJRLHQJqXLJFZJFIJBNJDIJBUqXIBkFDJIJEJPTIYJGWRIJeQPDIJeEfHIJFsJXOqGDSFHXEJqXgJCsJCgGQJqXgdQYJEgFMFNBgJFcqDVJwXUJVJFZJchIgJCCxOEJqXxOwXUJyDJBVRuscisciJBiJBieUtqXiJFDJkiFsJXQUGEZJcUJFsJXZtXIrXZDZJDrZJFNJDZJFstXvJFQqXvJFCJEsJXQJqkhkNGBbDJdTRbYJMEBlDwXUJMEFiJFcfXNJDRcNJWMTBLJXC\",\n\n // 8-kana words\n \"BraFUtHBFSJFdbNBLJXVJQoYJNEBSJBEJfHSJHwXUJCJdAZJMGjaFVJXEJPNJBlEJfFiJFpFbFEJqIJBVJCrIBdHiJhOPFChvJVJZJNJWxGFNIFLueIBQJqUHEJfUFstOZJDrlXEASJRlXVJXSFwVJNJWD\",\n\n // 9-kana words\n \"QJEJNNJDQJEJIBSFQJEJxegBQJEJfHEPSJBmXEJFSJCDEJqXLXNJFQqXIcQsFNJFIFEJqXUJgFsJXIJBUJEJfHNFvJxEqXNJnXUJFQqD\",\n\n // 10-kana words\n \"IJBEJqXZJ\"\n];\n\n// Maps each character into its kana value (the index)\nconst mapping = \"~~AzB~X~a~KN~Q~D~S~C~G~E~Y~p~L~I~O~eH~g~V~hxyumi~~U~~Z~~v~~s~~dkoblPjfnqwMcRTr~W~~~F~~~~~Jt\"\n\nlet wordlist: Array = null;\n\nfunction hex(word: string) {\n return hexlify(toUtf8Bytes(word));\n}\n\nconst KiYoKu = \"0xe3818de38284e3818f\";\nconst KyoKu = \"0xe3818de38283e3818f\"\n\nfunction loadWords(lang: Wordlist) {\n if (wordlist !== null) { return; }\n\n wordlist = [];\n\n // Transforms for normalizing (sort is a not quite UTF-8)\n const transform: { [key: string]: string | boolean } = {};\n\n // Delete the diacritic marks\n transform[toUtf8String([227, 130, 154])] = false;\n transform[toUtf8String([227, 130, 153])] = false;\n\n // Some simple transforms that sort out most of the order\n transform[toUtf8String([227, 130, 133])] = toUtf8String([227, 130, 134]);\n transform[toUtf8String([227, 129, 163])] = toUtf8String([227, 129, 164]);\n transform[toUtf8String([227, 130, 131])] = toUtf8String([227, 130, 132]);\n transform[toUtf8String([227, 130, 135])] = toUtf8String([227, 130, 136]);\n\n\n // Normalize words using the transform\n function normalize(word: string) {\n let result = \"\";\n for (let i = 0; i < word.length; i++) {\n let kana = word[i];\n const target = transform[kana];\n if (target === false) { continue; }\n if (target) { kana = target; }\n result += kana;\n }\n return result;\n }\n\n // Sort how the Japanese list is sorted\n function sortJapanese(a: string, b: string) {\n a = normalize(a);\n b = normalize(b);\n if (a < b) { return -1; }\n if (a > b) { return 1; }\n return 0;\n }\n\n // Load all the words\n for (let length = 3; length <= 9; length++) {\n const d = data[length - 3];\n for (let offset = 0; offset < d.length; offset += length) {\n const word = [];\n for (let i = 0; i < length; i++) {\n const k = mapping.indexOf(d[offset + i]);\n word.push(227);\n word.push((k & 0x40) ? 130: 129);\n word.push((k & 0x3f) + 128);\n }\n wordlist.push(toUtf8String(word));\n }\n }\n wordlist.sort(sortJapanese);\n\n // For some reason kyoku and kiyoku are flipped in node (!!).\n // The order SHOULD be:\n // - kyoku\n // - kiyoku\n\n // This should ignore \"if\", but that doesn't work here??\n /* istanbul ignore next */\n if (hex(wordlist[442]) === KiYoKu && hex(wordlist[443]) === KyoKu) {\n const tmp = wordlist[442];\n wordlist[442] = wordlist[443];\n wordlist[443] = tmp;\n }\n\n // Verify the computed list matches the official list\n /* istanbul ignore if */\n if (Wordlist.check(lang) !== \"0xcb36b09e6baa935787fd762ce65e80b0c6a8dabdfbc3a7f86ac0e2c4fd111600\") {\n wordlist = null;\n throw new Error(\"BIP39 Wordlist for ja (Japanese) FAILED\");\n }\n}\n\nclass LangJa extends Wordlist {\n constructor() {\n super(\"ja\");\n }\n\n getWord(index: number): string {\n loadWords(this);\n return wordlist[index];\n }\n\n getWordIndex(word: string): number {\n loadWords(this);\n return wordlist.indexOf(word);\n }\n\n split(mnemonic: string): Array {\n logger.checkNormalize();\n return mnemonic.split(/(?:\\u3000| )+/g);\n }\n\n join(words: Array): string {\n return words.join(\"\\u3000\");\n }\n}\n\nconst langJa = new LangJa();\nWordlist.register(langJa);\n\nexport { langJa };\n\n", "\"use strict\";\n\nimport { toUtf8String } from \"@ethersproject/strings\";\n\nimport { Wordlist } from \"./wordlist\";\n\n\nconst data = [\n \"OYAa\",\n \"ATAZoATBl3ATCTrATCl8ATDloATGg3ATHT8ATJT8ATJl3ATLlvATLn4ATMT8ATMX8ATMboATMgoAToLbAToMTATrHgATvHnAT3AnAT3JbAT3MTAT8DbAT8JTAT8LmAT8MYAT8MbAT#LnAUHT8AUHZvAUJXrAUJX8AULnrAXJnvAXLUoAXLgvAXMn6AXRg3AXrMbAX3JTAX3QbAYLn3AZLgvAZrSUAZvAcAZ8AaAZ8AbAZ8AnAZ8HnAZ8LgAZ8MYAZ8MgAZ8OnAaAboAaDTrAaFTrAaJTrAaJboAaLVoAaMXvAaOl8AaSeoAbAUoAbAg8AbAl4AbGnrAbMT8AbMXrAbMn4AbQb8AbSV8AbvRlAb8AUAb8AnAb8HgAb8JTAb8NTAb8RbAcGboAcLnvAcMT8AcMX8AcSToAcrAaAcrFnAc8AbAc8MgAfGgrAfHboAfJnvAfLV8AfLkoAfMT8AfMnoAfQb8AfScrAfSgrAgAZ8AgFl3AgGX8AgHZvAgHgrAgJXoAgJX8AgJboAgLZoAgLn4AgOX8AgoATAgoAnAgoCUAgoJgAgoLXAgoMYAgoSeAgrDUAgrJTAhrFnAhrLjAhrQgAjAgoAjJnrAkMX8AkOnoAlCTvAlCV8AlClvAlFg4AlFl6AlFn3AloSnAlrAXAlrAfAlrFUAlrFbAlrGgAlrOXAlvKnAlvMTAl3AbAl3MnAnATrAnAcrAnCZ3AnCl8AnDg8AnFboAnFl3AnHX4AnHbrAnHgrAnIl3AnJgvAnLXoAnLX4AnLbrAnLgrAnLhrAnMXoAnMgrAnOn3AnSbrAnSeoAnvLnAn3OnCTGgvCTSlvCTvAUCTvKnCTvNTCT3CZCT3GUCT3MTCT8HnCUCZrCULf8CULnvCU3HnCU3JUCY6NUCbDb8CbFZoCbLnrCboOTCboScCbrFnCbvLnCb8AgCb8HgCb$LnCkLfoClBn3CloDUDTHT8DTLl3DTSU8DTrAaDTrLXDTrLjDTrOYDTrOgDTvFXDTvFnDT3HUDT3LfDUCT9DUDT4DUFVoDUFV8DUFkoDUGgrDUJnrDULl8DUMT8DUMXrDUMX4DUMg8DUOUoDUOgvDUOg8DUSToDUSZ8DbDXoDbDgoDbGT8DbJn3DbLg3DbLn4DbMXrDbMg8DbOToDboJXGTClvGTDT8GTFZrGTLVoGTLlvGTLl3GTMg8GTOTvGTSlrGToCUGTrDgGTrJYGTrScGTtLnGTvAnGTvQgGUCZrGUDTvGUFZoGUHXrGULnvGUMT8GUoMgGXoLnGXrMXGXrMnGXvFnGYLnvGZOnvGZvOnGZ8LaGZ8LmGbAl3GbDYvGbDlrGbHX3GbJl4GbLV8GbLn3GbMn4GboJTGboRfGbvFUGb3GUGb4JnGgDX3GgFl$GgJlrGgLX6GgLZoGgLf8GgOXoGgrAgGgrJXGgrMYGgrScGgvATGgvOYGnAgoGnJgvGnLZoGnLg3GnLnrGnQn8GnSbrGnrMgHTClvHTDToHTFT3HTQT8HToJTHToJgHTrDUHTrMnHTvFYHTvRfHT8MnHT8SUHUAZ8HUBb4HUDTvHUoMYHXFl6HXJX6HXQlrHXrAUHXrMnHXrSbHXvFYHXvKXHX3LjHX3MeHYvQlHZrScHZvDbHbAcrHbFT3HbFl3HbJT8HbLTrHbMT8HbMXrHbMbrHbQb8HbSX3HboDbHboJTHbrFUHbrHgHbrJTHb8JTHb8MnHb8QgHgAlrHgDT3HgGgrHgHgrHgJTrHgJT8HgLX@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!Ln$CTGXMnCToLZ4CTrHT8CT3JTrCT3RZrCT#GTvCU6GgvCU8Db8CU8GZrCU8HT8CboLl3CbrGgrCbrMU8Cb8DT3Cb8GnrCb8LX4Cb8MT8Cb8ObrCgrGgvCgrKX4Cl8FZoDTrAbvDTrDboDTrGT6DTrJgrDTrMX3DTrRZrDTrRg8DTvAVvDTvFZoDT3DT8DT3Ln3DT4HZrDT4MT8DT8AlrDT8MT8DUAkGbDUDbJnDYLnQlDbDUOYDbMTAnDbMXSnDboAT3DboFn4DboLnvDj6JTrGTCgFTGTGgFnGTJTMnGTLnPlGToJT8GTrCT3GTrLVoGTrLnvGTrMX3GTrMboGTvKl3GZClFnGZrDT3GZ8DTrGZ8FZ8GZ8MXvGZ8On8GZ8ST3GbCnQXGbMbFnGboFboGboJg3GboMXoGb3JTvGb3JboGb3Mn6Gb3Qb8GgDXLjGgMnAUGgrDloGgrHX4GgrSToGgvAXrGgvAZvGgvFbrGgvLl3GgvMnvGnDnLXGnrATrGnrMboGnuLl3HTATMnHTAgCnHTCTCTHTrGTvHTrHTvHTrJX8HTrLl8HTrMT8HTrMgoHTrOTrHTuOn3HTvAZrHTvDTvHTvGboHTvJU8HTvLl3HTvMXrHTvQb4HT4GT6HT4JT8HT4Jb#HT8Al3HT8GZrHT8GgrHT8HX4HT8Jb8HT8JnoHT8LTrHT8LgvHT8SToHT8SV8HUoJUoHUoJX8HUoLnrHXrLZoHXvAl3HX3LnrHX4FkvHX4LhrHX4MXoHX4OnoHZrAZ8HZrDb8HZrGZ8HZrJnrHZvGZ8HZvLnvHZ8JnvHZ8LhrHbCXJlHbMTAnHboJl4HbpLl3HbrJX8HbrLnrHbrMnvHbvRYrHgoSTrHgrFV8HgrGZ8HgrJXoHgrRnvHgvBb!HgvGTrHgvHX4HgvHn!HgvLTrHgvSU8HnDnLbHnFbJbHnvDn8Hn6GgvHn!BTvJTCTLnJTQgFnJTrAnvJTrLX4JTrOUoJTvFn3JTvLnrJTvNToJT3AgoJT3Jn4JT3LhvJT3ObrJT8AcrJT8Al3JT8JT8JT8JnoJT8LX4JT8LnrJT8MX3JT8Rg3JT8Sc8JUoBTvJU8AToJU8GZ8JU8GgvJU8JTrJU8JXrJU8JnrJU8LnvJU8ScvJXHnJlJXrGgvJXrJU8JXrLhrJXrMT8JXrMXrJXrQUoJXvCTvJXvGZ8JXvGgrJXvQT8JX8Ab8JX8DT8JX8GZ8JX8HZvJX8LnrJX8MT8JX8MXoJX8MnvJX8ST3JYGnCTJbAkGbJbCTAnJbLTAcJboDT3JboLb6JbrAnvJbrCn3JbrDl8JbrGboJbrIZoJbrJnvJbrMnvJbrQb4Jb8RZrJeAbAnJgJnFbJgScAnJgrATrJgvHZ8JgvMn4JlJlFbJlLiQXJlLjOnJlRbOlJlvNXoJlvRl3Jl4AcrJl8AUoJl8MnrJnFnMlJnHgGbJnoDT8JnoFV8JnoGgvJnoIT8JnoQToJnoRg3JnrCZ3JnrGgrJnrHTvJnrLf8JnrOX8JnvAT3JnvFZoJnvGT8JnvJl4JnvMT8JnvMX8JnvOXrJnvPX6JnvSX3JnvSZrJn3MT8Jn3MX8Jn3RTrLTATKnLTJnLTLTMXKnLTRTQlLToGb8LTrAZ8LTrCZ8LTrDb8LTrHT8LT3PX6LT4FZoLT$CTvLT$GgrLUvHX3LVoATrLVoAgoLVoJboLVoMX3LVoRg3LV8CZ3LV8FZoLV8GTvLXrDXoLXrFbrLXvAgvLXvFlrLXvLl3LXvRn6LX4Mb8LX8GT8LYCXMnLYrMnrLZoSTvLZrAZvLZrAloLZrFToLZrJXvLZrJboLZrJl4LZrLnrLZrMT8LZrOgvLZrRnvLZrST4LZvMX8LZvSlvLZ8AgoLZ8CT3LZ8JT8LZ8LV8LZ8LZoLZ8Lg8LZ8SV8LZ8SbrLZ$HT8LZ$Mn4La6CTvLbFbMnLbRYFTLbSnFZLboJT8LbrAT9LbrGb3LbrQb8LcrJX8LcrMXrLerHTvLerJbrLerNboLgrDb8LgrGZ8LgrHTrLgrMXrLgrSU8LgvJTrLgvLl3Lg6Ll3LhrLnrLhrMT8LhvAl4LiLnQXLkoAgrLkoJT8LkoJn4LlrSU8Ll3FZoLl3HTrLl3JX8Ll3JnoLl3LToLmLeFbLnDUFbLnLVAnLnrATrLnrAZoLnrAb8LnrAlrLnrGgvLnrJU8LnrLZrLnrLhrLnrMb8LnrOXrLnrSZ8LnvAb4LnvDTrLnvDl8LnvHTrLnvHbrLnvJT8LnvJU8LnvJbrLnvLhvLnvMX8LnvMb8LnvNnoLnvSU8Ln3Al3Ln4FZoLn4GT6Ln4JgvLn4LhrLn4MT8Ln4SToMToCZrMToJX8MToLX4MToLf8MToRg3MTrEloMTvGb6MT3BTrMT3Lb6MT8AcrMT8AgrMT8GZrMT8JnoMT8LnrMT8MX3MUOUAnMXAbFnMXoAloMXoJX8MXoLf8MXoLl8MXrAb8MXrDTvMXrGT8MXrGgrMXrHTrMXrLf8MXrMU8MXrOXvMXrQb8MXvGT8MXvHTrMXvLVoMX3AX3MX3Jn3MX3LhrMX3MX3MX4AlrMX4OboMX8GTvMX8GZrMX8GgrMX8JT8MX8JX8MX8LhrMX8MT8MYDUFbMYMgDbMbGnFfMbvLX4MbvLl3Mb8Mb8Mb8ST4MgGXCnMg8ATrMg8AgoMg8CZrMg8DTrMg8DboMg8HTrMg8JgrMg8LT8MloJXoMl8AhrMl8JT8MnLgAUMnoJXrMnoLX4MnoLhrMnoMT8MnrAl4MnrDb8MnrOTvMnrOgvMnrQb8MnrSU8MnvGgrMnvHZ8Mn3MToMn4DTrMn4LTrMn4Mg8NnBXAnOTFTFnOToAToOTrGgvOTrJX8OT3JXoOT6MTrOT8GgrOT8HTpOT8MToOUoHT8OUoJT8OUoLn3OXrAgoOXrDg8OXrMT8OXvSToOX6CTvOX8CZrOX8OgrOb6HgvOb8AToOb8MT8OcvLZ8OgvAlrOgvHTvOgvJTrOgvJnrOgvLZrOgvLn4OgvMT8OgvRTrOg8AZoOg8DbvOnrOXoOnvJn4OnvLhvOnvRTrOn3GgoOn3JnvOn6JbvOn8OTrPTGYFTPbBnFnPbGnDnPgDYQTPlrAnvPlrETvPlrLnvPlrMXvPlvFX4QTMTAnQTrJU8QYCnJlQYJlQlQbGTQbQb8JnrQb8LZoQb8LnvQb8MT8Qb8Ml8Qb8ST4QloAl4QloHZvQloJX8QloMn8QnJZOlRTrAZvRTrDTrRTvJn4RTvLhvRT4Jb8RZrAZrRZ8AkrRZ8JU8RZ8LV8RZ8LnvRbJlQXRg3GboRg3MnvRg8AZ8Rg8JboRg8Jl4RnLTCbRnvFl3RnvQb8SToAl4SToCZrSToFZoSToHXrSToJU8SToJgvSToJl4SToLhrSToMX3STrAlvSTrCT9STrCgrSTrGgrSTrHXrSTrHboSTrJnoSTrNboSTvLnrST4AZoST8Ab8ST8JT8SUoJn3SU6HZ#SU6JTvSU8Db8SU8HboSU8LgrSV8JT8SZrAcrSZrAl3SZrJT8SZrJnvSZrMT8SZvLUoSZ4FZoSZ8JnoSZ8RZrScoLnrScoMT8ScoMX8ScrAT4ScrAZ8ScrLZ8ScrLkvScvDb8ScvLf8ScvNToSgrFZrShvKnrSloHUoSloLnrSlrMXoSl8HgrSmrJUoSn3BX6\",\n \"ATFlOn3ATLgrDYAT4MTAnAT8LTMnAYJnRTrAbGgJnrAbLV8LnAbvNTAnAeFbLg3AgOYMXoAlQbFboAnDboAfAnJgoJTBToDgAnBUJbAl3BboDUAnCTDlvLnCTFTrSnCYoQTLnDTwAbAnDUDTrSnDUHgHgrDX8LXFnDbJXAcrETvLTLnGTFTQbrGTMnGToGT3DUFbGUJlPX3GbQg8LnGboJbFnGb3GgAYGgAg8ScGgMbAXrGgvAbAnGnJTLnvGnvATFgHTDT6ATHTrDlJnHYLnMn8HZrSbJTHZ8LTFnHbFTJUoHgSeMT8HgrLjAnHgvAbAnHlFUrDlHnDgvAnHnHTFT3HnQTGnrJTAaMXvJTGbCn3JTOgrAnJXvAXMnJbMg8SnJbMnRg3Jb8LTMnJnAl3OnJnGYrQlJnJlQY3LTDlCn3LTJjLg3LTLgvFXLTMg3GTLV8HUOgLXFZLg3LXNXrMnLX8QXFnLX9AlMYLYLXPXrLZAbJU8LZDUJU8LZMXrSnLZ$AgFnLaPXrDULbFYrMnLbMn8LXLboJgJgLeFbLg3LgLZrSnLgOYAgoLhrRnJlLkCTrSnLkOnLhrLnFX%AYLnFZoJXLnHTvJbLnLloAbMTATLf8MTHgJn3MTMXrAXMT3MTFnMUITvFnMXFX%AYMXMXvFbMXrFTDbMYAcMX3MbLf8SnMb8JbFnMgMXrMTMgvAXFnMgvGgCmMnAloSnMnFnJTrOXvMXSnOX8HTMnObJT8ScObLZFl3ObMXCZoPTLgrQXPUFnoQXPU3RXJlPX3RkQXPbrJXQlPlrJbFnQUAhrDbQXGnCXvQYLnHlvQbLfLnvRTOgvJbRXJYrQlRYLnrQlRbLnrQlRlFT8JlRlFnrQXSTClCn3STHTrAnSTLZQlrSTMnGTrSToHgGbSTrGTDnSTvGXCnST3HgFbSU3HXAXSbAnJn3SbFT8LnScLfLnv\",\n \"AT3JgJX8AT8FZoSnAT8JgFV8AT8LhrDbAZ8JT8DbAb8GgLhrAb8SkLnvAe8MT8SnAlMYJXLVAl3GYDTvAl3LfLnvBUDTvLl3CTOn3HTrCT3DUGgrCU8MT8AbCbFTrJUoCgrDb8MTDTLV8JX8DTLnLXQlDT8LZrSnDUQb8FZ8DUST4JnvDb8ScOUoDj6GbJl4GTLfCYMlGToAXvFnGboAXvLnGgAcrJn3GgvFnSToGnLf8JnvGn#HTDToHTLnFXJlHTvATFToHTvHTDToHTvMTAgoHT3STClvHT4AlFl6HT8HTDToHUoDgJTrHUoScMX3HbRZrMXoHboJg8LTHgDb8JTrHgMToLf8HgvLnLnoHnHn3HT4Hn6MgvAnJTJU8ScvJT3AaQT8JT8HTrAnJXrRg8AnJbAloMXoJbrATFToJbvMnoSnJgDb6GgvJgDb8MXoJgSX3JU8JguATFToJlPYLnQlJlQkDnLbJlQlFYJlJl8Lf8OTJnCTFnLbJnLTHXMnJnLXGXCnJnoFfRg3JnrMYRg3Jn3HgFl3KT8Dg8LnLTRlFnPTLTvPbLbvLVoSbrCZLXMY6HT3LXNU7DlrLXNXDTATLX8DX8LnLZDb8JU8LZMnoLhrLZSToJU8LZrLaLnrLZvJn3SnLZ8LhrSnLaJnoMT8LbFlrHTvLbrFTLnrLbvATLlvLb6OTFn3LcLnJZOlLeAT6Mn4LeJT3ObrLg6LXFlrLhrJg8LnLhvDlPX4LhvLfLnvLj6JTFT3LnFbrMXoLnQluCTvLnrQXCY6LnvLfLnvLnvMgLnvLnvSeLf8MTMbrJn3MT3JgST3MT8AnATrMT8LULnrMUMToCZrMUScvLf8MXoDT8SnMX6ATFToMX8AXMT8MX8FkMT8MX8HTrDUMX8ScoSnMYJT6CTvMgAcrMXoMg8SToAfMlvAXLg3MnFl3AnvOT3AnFl3OUoATHT8OU3RnLXrOXrOXrSnObPbvFn6Og8HgrSnOg8OX8DbPTvAgoJgPU3RYLnrPXrDnJZrPb8CTGgvPlrLTDlvPlvFUJnoQUvFXrQlQeMnoAl3QlrQlrSnRTFTrJUoSTDlLiLXSTFg6HT3STJgoMn4STrFTJTrSTrLZFl3ST4FnMXoSUrDlHUoScvHTvSnSfLkvMXo\",\n \"AUoAcrMXoAZ8HboAg8AbOg6ATFgAg8AloMXoAl3AT8JTrAl8MX8MXoCT3SToJU8Cl8Db8MXoDT8HgrATrDboOT8MXoGTOTrATMnGT8LhrAZ8GnvFnGnQXHToGgvAcrHTvAXvLl3HbrAZoMXoHgBlFXLg3HgMnFXrSnHgrSb8JUoHn6HT8LgvITvATrJUoJUoLZrRnvJU8HT8Jb8JXvFX8QT8JXvLToJTrJYrQnGnQXJgrJnoATrJnoJU8ScvJnvMnvMXoLTCTLgrJXLTJlRTvQlLbRnJlQYvLbrMb8LnvLbvFn3RnoLdCVSTGZrLeSTvGXCnLg3MnoLn3MToLlrETvMT8SToAl3MbrDU6GTvMb8LX4LhrPlrLXGXCnSToLf8Rg3STrDb8LTrSTvLTHXMnSb3RYLnMnSgOg6ATFg\",\n \"HUDlGnrQXrJTrHgLnrAcJYMb8DULc8LTvFgGnCk3Mg8JbAnLX4QYvFYHnMXrRUoJnGnvFnRlvFTJlQnoSTrBXHXrLYSUJgLfoMT8Se8DTrHbDb\",\n \"AbDl8SToJU8An3RbAb8ST8DUSTrGnrAgoLbFU6Db8LTrMg8AaHT8Jb8ObDl8SToJU8Pb3RlvFYoJl\"\n]\n\nconst codes = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789!@#$%^&*\"\n\nfunction getHangul(code: number): string {\n if (code >= 40) {\n code = code + 168 - 40;\n } else if (code >= 19) {\n code = code + 97 - 19;\n }\n\n return toUtf8String([ 225, (code >> 6) + 132, (code & 0x3f) + 128]);\n}\n\nlet wordlist: Array = null;\n\nfunction loadWords(lang: Wordlist): void {\n if (wordlist != null) { return; }\n\n wordlist = [];\n\n data.forEach((data, length) => {\n length += 4;\n for (let i = 0; i < data.length; i += length) {\n let word = \"\";\n for (let j = 0; j < length; j++) {\n word += getHangul(codes.indexOf(data[i + j]));\n }\n wordlist.push(word)\n }\n });\n\n wordlist.sort();\n\n // Verify the computed list matches the official list\n /* istanbul ignore if */\n if (Wordlist.check(lang) !== \"0xf9eddeace9c5d3da9c93cf7d3cd38f6a13ed3affb933259ae865714e8a3ae71a\") {\n wordlist = null;\n throw new Error(\"BIP39 Wordlist for ko (Korean) FAILED\");\n }\n}\n\n\nclass LangKo extends Wordlist {\n constructor() {\n super(\"ko\");\n }\n\n getWord(index: number): string {\n loadWords(this);\n return wordlist[index];\n }\n\n getWordIndex(word: string): number {\n loadWords(this);\n return wordlist.indexOf(word);\n }\n}\n\nconst langKo = new LangKo();\nWordlist.register(langKo);\n\nexport { langKo }\n", "\"use strict\";\n\nimport { Wordlist } from \"./wordlist\";\n\nconst words = \"AbacoAbbaglioAbbinatoAbeteAbissoAbolireAbrasivoAbrogatoAccadereAccennoAccusatoAcetoneAchilleAcidoAcquaAcreAcrilicoAcrobataAcutoAdagioAddebitoAddomeAdeguatoAderireAdipeAdottareAdulareAffabileAffettoAffissoAffrantoAforismaAfosoAfricanoAgaveAgenteAgevoleAggancioAgireAgitareAgonismoAgricoloAgrumetoAguzzoAlabardaAlatoAlbatroAlberatoAlboAlbumeAlceAlcolicoAlettoneAlfaAlgebraAlianteAlibiAlimentoAllagatoAllegroAllievoAllodolaAllusivoAlmenoAlogenoAlpacaAlpestreAltalenaAlternoAlticcioAltroveAlunnoAlveoloAlzareAmalgamaAmanitaAmarenaAmbitoAmbratoAmebaAmericaAmetistaAmicoAmmassoAmmendaAmmirareAmmonitoAmoreAmpioAmpliareAmuletoAnacardoAnagrafeAnalistaAnarchiaAnatraAncaAncellaAncoraAndareAndreaAnelloAngeloAngolareAngustoAnimaAnnegareAnnidatoAnnoAnnuncioAnonimoAnticipoAnziApaticoAperturaApodeApparireAppetitoAppoggioApprodoAppuntoAprileArabicaArachideAragostaAraldicaArancioAraturaArazzoArbitroArchivioArditoArenileArgentoArgineArgutoAriaArmoniaArneseArredatoArringaArrostoArsenicoArsoArteficeArzilloAsciuttoAscoltoAsepsiAsetticoAsfaltoAsinoAsolaAspiratoAsproAssaggioAsseAssolutoAssurdoAstaAstenutoAsticeAstrattoAtavicoAteismoAtomicoAtonoAttesaAttivareAttornoAttritoAttualeAusilioAustriaAutistaAutonomoAutunnoAvanzatoAvereAvvenireAvvisoAvvolgereAzioneAzotoAzzimoAzzurroBabeleBaccanoBacinoBacoBadessaBadilataBagnatoBaitaBalconeBaldoBalenaBallataBalzanoBambinoBandireBaraondaBarbaroBarcaBaritonoBarlumeBaroccoBasilicoBassoBatostaBattutoBauleBavaBavosaBeccoBeffaBelgioBelvaBendaBenevoleBenignoBenzinaBereBerlinaBetaBibitaBiciBidoneBifidoBigaBilanciaBimboBinocoloBiologoBipedeBipolareBirbanteBirraBiscottoBisestoBisnonnoBisonteBisturiBizzarroBlandoBlattaBollitoBonificoBordoBoscoBotanicoBottinoBozzoloBraccioBradipoBramaBrancaBravuraBretellaBrevettoBrezzaBrigliaBrillanteBrindareBroccoloBrodoBronzinaBrulloBrunoBubboneBucaBudinoBuffoneBuioBulboBuonoBurloneBurrascaBussolaBustaCadettoCaducoCalamaroCalcoloCalesseCalibroCalmoCaloriaCambusaCamerataCamiciaCamminoCamolaCampaleCanapaCandelaCaneCaninoCanottoCantinaCapaceCapelloCapitoloCapogiroCapperoCapraCapsulaCarapaceCarcassaCardoCarismaCarovanaCarrettoCartolinaCasaccioCascataCasermaCasoCassoneCastelloCasualeCatastaCatenaCatrameCautoCavilloCedibileCedrataCefaloCelebreCellulareCenaCenoneCentesimoCeramicaCercareCertoCerumeCervelloCesoiaCespoCetoChelaChiaroChiccaChiedereChimeraChinaChirurgoChitarraCiaoCiclismoCifrareCignoCilindroCiottoloCircaCirrosiCitricoCittadinoCiuffoCivettaCivileClassicoClinicaCloroCoccoCodardoCodiceCoerenteCognomeCollareColmatoColoreColposoColtivatoColzaComaCometaCommandoComodoComputerComuneConcisoCondurreConfermaCongelareConiugeConnessoConoscereConsumoContinuoConvegnoCopertoCopioneCoppiaCopricapoCorazzaCordataCoricatoCorniceCorollaCorpoCorredoCorsiaCorteseCosmicoCostanteCotturaCovatoCratereCravattaCreatoCredereCremosoCrescitaCretaCricetoCrinaleCrisiCriticoCroceCronacaCrostataCrucialeCruscaCucireCuculoCuginoCullatoCupolaCuratoreCursoreCurvoCuscinoCustodeDadoDainoDalmataDamerinoDanielaDannosoDanzareDatatoDavantiDavveroDebuttoDecennioDecisoDeclinoDecolloDecretoDedicatoDefinitoDeformeDegnoDelegareDelfinoDelirioDeltaDemenzaDenotatoDentroDepositoDerapataDerivareDerogaDescrittoDesertoDesiderioDesumereDetersivoDevotoDiametroDicembreDiedroDifesoDiffusoDigerireDigitaleDiluvioDinamicoDinnanziDipintoDiplomaDipoloDiradareDireDirottoDirupoDisagioDiscretoDisfareDisgeloDispostoDistanzaDisumanoDitoDivanoDiveltoDividereDivoratoDobloneDocenteDoganaleDogmaDolceDomatoDomenicaDominareDondoloDonoDormireDoteDottoreDovutoDozzinaDragoDruidoDubbioDubitareDucaleDunaDuomoDupliceDuraturoEbanoEccessoEccoEclissiEconomiaEderaEdicolaEdileEditoriaEducareEgemoniaEgliEgoismoEgregioElaboratoElargireEleganteElencatoElettoElevareElficoElicaElmoElsaElusoEmanatoEmblemaEmessoEmiroEmotivoEmozioneEmpiricoEmuloEndemicoEnduroEnergiaEnfasiEnotecaEntrareEnzimaEpatiteEpilogoEpisodioEpocaleEppureEquatoreErarioErbaErbosoEredeEremitaErigereErmeticoEroeErosivoErranteEsagonoEsameEsanimeEsaudireEscaEsempioEsercitoEsibitoEsigenteEsistereEsitoEsofagoEsortatoEsosoEspansoEspressoEssenzaEssoEstesoEstimareEstoniaEstrosoEsultareEtilicoEtnicoEtruscoEttoEuclideoEuropaEvasoEvidenzaEvitatoEvolutoEvvivaFabbricaFaccendaFachiroFalcoFamigliaFanaleFanfaraFangoFantasmaFareFarfallaFarinosoFarmacoFasciaFastosoFasulloFaticareFatoFavolosoFebbreFecolaFedeFegatoFelpaFeltroFemminaFendereFenomenoFermentoFerroFertileFessuraFestivoFettaFeudoFiabaFiduciaFifaFiguratoFiloFinanzaFinestraFinireFioreFiscaleFisicoFiumeFlaconeFlamencoFleboFlemmaFloridoFluenteFluoroFobicoFocacciaFocosoFoderatoFoglioFolataFolcloreFolgoreFondenteFoneticoFoniaFontanaForbitoForchettaForestaFormicaFornaioForoFortezzaForzareFosfatoFossoFracassoFranaFrassinoFratelloFreccettaFrenataFrescoFrigoFrollinoFrondeFrugaleFruttaFucilataFucsiaFuggenteFulmineFulvoFumanteFumettoFumosoFuneFunzioneFuocoFurboFurgoneFuroreFusoFutileGabbianoGaffeGalateoGallinaGaloppoGamberoGammaGaranziaGarboGarofanoGarzoneGasdottoGasolioGastricoGattoGaudioGazeboGazzellaGecoGelatinaGelsoGemelloGemmatoGeneGenitoreGennaioGenotipoGergoGhepardoGhiaccioGhisaGialloGildaGineproGiocareGioielloGiornoGioveGiratoGironeGittataGiudizioGiuratoGiustoGlobuloGlutineGnomoGobbaGolfGomitoGommoneGonfioGonnaGovernoGracileGradoGraficoGrammoGrandeGrattareGravosoGraziaGrecaGreggeGrifoneGrigioGrinzaGrottaGruppoGuadagnoGuaioGuantoGuardareGufoGuidareIbernatoIconaIdenticoIdillioIdoloIdraIdricoIdrogenoIgieneIgnaroIgnoratoIlareIllesoIllogicoIlludereImballoImbevutoImboccoImbutoImmaneImmersoImmolatoImpaccoImpetoImpiegoImportoImprontaInalareInarcareInattivoIncantoIncendioInchinoIncisivoInclusoIncontroIncrocioIncuboIndagineIndiaIndoleIneditoInfattiInfilareInflittoIngaggioIngegnoIngleseIngordoIngrossoInnescoInodoreInoltrareInondatoInsanoInsettoInsiemeInsonniaInsulinaIntasatoInteroIntonacoIntuitoInumidireInvalidoInveceInvitoIperboleIpnoticoIpotesiIppicaIrideIrlandaIronicoIrrigatoIrrorareIsolatoIsotopoIstericoIstitutoIstriceItaliaIterareLabbroLabirintoLaccaLaceratoLacrimaLacunaLaddoveLagoLampoLancettaLanternaLardosoLargaLaringeLastraLatenzaLatinoLattugaLavagnaLavoroLegaleLeggeroLemboLentezzaLenzaLeoneLepreLesivoLessatoLestoLetteraleLevaLevigatoLiberoLidoLievitoLillaLimaturaLimitareLimpidoLineareLinguaLiquidoLiraLiricaLiscaLiteLitigioLivreaLocandaLodeLogicaLombareLondraLongevoLoquaceLorenzoLotoLotteriaLuceLucidatoLumacaLuminosoLungoLupoLuppoloLusingaLussoLuttoMacabroMacchinaMaceroMacinatoMadamaMagicoMagliaMagneteMagroMaiolicaMalafedeMalgradoMalintesoMalsanoMaltoMalumoreManaManciaMandorlaMangiareManifestoMannaroManovraMansardaMantideManubrioMappaMaratonaMarcireMarettaMarmoMarsupioMascheraMassaiaMastinoMaterassoMatricolaMattoneMaturoMazurcaMeandroMeccanicoMecenateMedesimoMeditareMegaMelassaMelisMelodiaMeningeMenoMensolaMercurioMerendaMerloMeschinoMeseMessereMestoloMetalloMetodoMettereMiagolareMicaMicelioMicheleMicroboMidolloMieleMiglioreMilanoMiliteMimosaMineraleMiniMinoreMirinoMirtilloMiscelaMissivaMistoMisurareMitezzaMitigareMitraMittenteMnemonicoModelloModificaModuloMoganoMogioMoleMolossoMonasteroMoncoMondinaMonetarioMonileMonotonoMonsoneMontatoMonvisoMoraMordereMorsicatoMostroMotivatoMotosegaMottoMovenzaMovimentoMozzoMuccaMucosaMuffaMughettoMugnaioMulattoMulinelloMultiploMummiaMuntoMuovereMuraleMusaMuscoloMusicaMutevoleMutoNababboNaftaNanometroNarcisoNariceNarratoNascereNastrareNaturaleNauticaNaviglioNebulosaNecrosiNegativoNegozioNemmenoNeofitaNerettoNervoNessunoNettunoNeutraleNeveNevroticoNicchiaNinfaNitidoNobileNocivoNodoNomeNominaNordicoNormaleNorvegeseNostranoNotareNotiziaNotturnoNovellaNucleoNullaNumeroNuovoNutrireNuvolaNuzialeOasiObbedireObbligoObeliscoOblioOboloObsoletoOccasioneOcchioOccidenteOccorrereOccultareOcraOculatoOdiernoOdorareOffertaOffrireOffuscatoOggettoOggiOgnunoOlandeseOlfattoOliatoOlivaOlogrammaOltreOmaggioOmbelicoOmbraOmegaOmissioneOndosoOnereOniceOnnivoroOnorevoleOntaOperatoOpinioneOppostoOracoloOrafoOrdineOrecchinoOreficeOrfanoOrganicoOrigineOrizzonteOrmaOrmeggioOrnativoOrologioOrrendoOrribileOrtensiaOrticaOrzataOrzoOsareOscurareOsmosiOspedaleOspiteOssaOssidareOstacoloOsteOtiteOtreOttagonoOttimoOttobreOvaleOvestOvinoOviparoOvocitoOvunqueOvviareOzioPacchettoPacePacificoPadellaPadronePaesePagaPaginaPalazzinaPalesarePallidoPaloPaludePandoroPannelloPaoloPaonazzoPapricaParabolaParcellaParerePargoloPariParlatoParolaPartireParvenzaParzialePassivoPasticcaPataccaPatologiaPattumePavonePeccatoPedalarePedonalePeggioPelosoPenarePendicePenisolaPennutoPenombraPensarePentolaPepePepitaPerbenePercorsoPerdonatoPerforarePergamenaPeriodoPermessoPernoPerplessoPersuasoPertugioPervasoPesatorePesistaPesoPestiferoPetaloPettinePetulantePezzoPiacerePiantaPiattinoPiccinoPicozzaPiegaPietraPifferoPigiamaPigolioPigroPilaPiliferoPillolaPilotaPimpantePinetaPinnaPinoloPioggiaPiomboPiramidePireticoPiritePirolisiPitonePizzicoPlaceboPlanarePlasmaPlatanoPlenarioPochezzaPoderosoPodismoPoesiaPoggiarePolentaPoligonoPollicePolmonitePolpettaPolsoPoltronaPolverePomicePomodoroPontePopolosoPorfidoPorosoPorporaPorrePortataPosaPositivoPossessoPostulatoPotassioPoterePranzoPrassiPraticaPreclusoPredicaPrefissoPregiatoPrelievoPremerePrenotarePreparatoPresenzaPretestoPrevalsoPrimaPrincipePrivatoProblemaProcuraProdurreProfumoProgettoProlungaPromessaPronomePropostaProrogaProtesoProvaPrudentePrugnaPruritoPsichePubblicoPudicaPugilatoPugnoPulcePulitoPulsantePuntarePupazzoPupillaPuroQuadroQualcosaQuasiQuerelaQuotaRaccoltoRaddoppioRadicaleRadunatoRafficaRagazzoRagioneRagnoRamarroRamingoRamoRandagioRantolareRapatoRapinaRappresoRasaturaRaschiatoRasenteRassegnaRastrelloRataRavvedutoRealeRecepireRecintoReclutaReconditoRecuperoRedditoRedimereRegalatoRegistroRegolaRegressoRelazioneRemareRemotoRennaReplicaReprimereReputareResaResidenteResponsoRestauroReteRetinaRetoricaRettificaRevocatoRiassuntoRibadireRibelleRibrezzoRicaricaRiccoRicevereRiciclatoRicordoRicredutoRidicoloRidurreRifasareRiflessoRiformaRifugioRigareRigettatoRighelloRilassatoRilevatoRimanereRimbalzoRimedioRimorchioRinascitaRincaroRinforzoRinnovoRinomatoRinsavitoRintoccoRinunciaRinvenireRiparatoRipetutoRipienoRiportareRipresaRipulireRisataRischioRiservaRisibileRisoRispettoRistoroRisultatoRisvoltoRitardoRitegnoRitmicoRitrovoRiunioneRivaRiversoRivincitaRivoltoRizomaRobaRoboticoRobustoRocciaRocoRodaggioRodereRoditoreRogitoRollioRomanticoRompereRonzioRosolareRospoRotanteRotondoRotulaRovescioRubizzoRubricaRugaRullinoRumineRumorosoRuoloRupeRussareRusticoSabatoSabbiareSabotatoSagomaSalassoSaldaturaSalgemmaSalivareSalmoneSaloneSaltareSalutoSalvoSapereSapidoSaporitoSaracenoSarcasmoSartoSassosoSatelliteSatiraSatolloSaturnoSavanaSavioSaziatoSbadiglioSbalzoSbancatoSbarraSbattereSbavareSbendareSbirciareSbloccatoSbocciatoSbrinareSbruffoneSbuffareScabrosoScadenzaScalaScambiareScandaloScapolaScarsoScatenareScavatoSceltoScenicoScettroSchedaSchienaSciarpaScienzaScindereScippoSciroppoScivoloSclerareScodellaScolpitoScompartoSconfortoScoprireScortaScossoneScozzeseScribaScrollareScrutinioScuderiaScultoreScuolaScuroScusareSdebitareSdoganareSeccaturaSecondoSedanoSeggiolaSegnalatoSegregatoSeguitoSelciatoSelettivoSellaSelvaggioSemaforoSembrareSemeSeminatoSempreSensoSentireSepoltoSequenzaSerataSerbatoSerenoSerioSerpenteSerraglioServireSestinaSetolaSettimanaSfaceloSfaldareSfamatoSfarzosoSfaticatoSferaSfidaSfilatoSfingeSfocatoSfoderareSfogoSfoltireSforzatoSfrattoSfruttatoSfuggitoSfumareSfusoSgabelloSgarbatoSgonfiareSgorbioSgrassatoSguardoSibiloSiccomeSierraSiglaSignoreSilenzioSillabaSimboloSimpaticoSimulatoSinfoniaSingoloSinistroSinoSintesiSinusoideSiparioSismaSistoleSituatoSlittaSlogaturaSlovenoSmarritoSmemoratoSmentitoSmeraldoSmilzoSmontareSmottatoSmussatoSnellireSnervatoSnodoSobbalzoSobrioSoccorsoSocialeSodaleSoffittoSognoSoldatoSolenneSolidoSollazzoSoloSolubileSolventeSomaticoSommaSondaSonettoSonniferoSopireSoppesoSopraSorgereSorpassoSorrisoSorsoSorteggioSorvolatoSospiroSostaSottileSpadaSpallaSpargereSpatolaSpaventoSpazzolaSpecieSpedireSpegnereSpelaturaSperanzaSpessoreSpettraleSpezzatoSpiaSpigolosoSpillatoSpinosoSpiraleSplendidoSportivoSposoSprangaSprecareSpronatoSpruzzoSpuntinoSquilloSradicareSrotolatoStabileStaccoStaffaStagnareStampatoStantioStarnutoStaseraStatutoSteloSteppaSterzoStilettoStimaStirpeStivaleStizzosoStonatoStoricoStrappoStregatoStriduloStrozzareStruttoStuccareStufoStupendoSubentroSuccosoSudoreSuggeritoSugoSultanoSuonareSuperboSupportoSurgelatoSurrogatoSussurroSuturaSvagareSvedeseSveglioSvelareSvenutoSveziaSviluppoSvistaSvizzeraSvoltaSvuotareTabaccoTabulatoTacciareTaciturnoTaleTalismanoTamponeTanninoTaraTardivoTargatoTariffaTarpareTartarugaTastoTatticoTavernaTavolataTazzaTecaTecnicoTelefonoTemerarioTempoTemutoTendoneTeneroTensioneTentacoloTeoremaTermeTerrazzoTerzettoTesiTesseratoTestatoTetroTettoiaTifareTigellaTimbroTintoTipicoTipografoTiraggioTiroTitanioTitoloTitubanteTizioTizzoneToccareTollerareToltoTombolaTomoTonfoTonsillaTopazioTopologiaToppaTorbaTornareTorroneTortoraToscanoTossireTostaturaTotanoTraboccoTracheaTrafilaTragediaTralcioTramontoTransitoTrapanoTrarreTraslocoTrattatoTraveTrecciaTremolioTrespoloTributoTrichecoTrifoglioTrilloTrinceaTrioTristezzaTrituratoTrivellaTrombaTronoTroppoTrottolaTrovareTruccatoTubaturaTuffatoTulipanoTumultoTunisiaTurbareTurchinoTutaTutelaUbicatoUccelloUccisoreUdireUditivoUffaUfficioUgualeUlisseUltimatoUmanoUmileUmorismoUncinettoUngereUnghereseUnicornoUnificatoUnisonoUnitarioUnteUovoUpupaUraganoUrgenzaUrloUsanzaUsatoUscitoUsignoloUsuraioUtensileUtilizzoUtopiaVacanteVaccinatoVagabondoVagliatoValangaValgoValicoVallettaValorosoValutareValvolaVampataVangareVanitosoVanoVantaggioVanveraVaporeVaranoVarcatoVarianteVascaVedettaVedovaVedutoVegetaleVeicoloVelcroVelinaVellutoVeloceVenatoVendemmiaVentoVeraceVerbaleVergognaVerificaVeroVerrucaVerticaleVescicaVessilloVestaleVeteranoVetrinaVetustoViandanteVibranteVicendaVichingoVicinanzaVidimareVigiliaVignetoVigoreVileVillanoViminiVincitoreViolaViperaVirgolaVirologoVirulentoViscosoVisioneVispoVissutoVisuraVitaVitelloVittimaVivandaVividoViziareVoceVogaVolatileVolereVolpeVoragineVulcanoZampognaZannaZappatoZatteraZavorraZefiroZelanteZeloZenzeroZerbinoZibettoZincoZirconeZittoZollaZoticoZuccheroZufoloZuluZuppa\";\n\nlet wordlist: Array = null;\n\nfunction loadWords(lang: Wordlist): void {\n if (wordlist != null) { return; }\n wordlist = words.replace(/([A-Z])/g, \" $1\").toLowerCase().substring(1).split(\" \");\n\n // Verify the computed list matches the official list\n /* istanbul ignore if */\n if (Wordlist.check(lang) !== \"0x5c1362d88fd4cf614a96f3234941d29f7d37c08c5292fde03bf62c2db6ff7620\") {\n wordlist = null;\n throw new Error(\"BIP39 Wordlist for it (Italian) FAILED\");\n }\n}\n\nclass LangIt extends Wordlist {\n constructor() {\n super(\"it\");\n }\n\n getWord(index: number): string {\n loadWords(this);\n return wordlist[index];\n }\n\n getWordIndex(word: string): number {\n loadWords(this);\n return wordlist.indexOf(word);\n }\n}\n\nconst langIt = new LangIt();\nWordlist.register(langIt);\n\nexport { langIt }\n", "\"use strict\";\n\nimport { toUtf8String } from \"@ethersproject/strings\";\n\nimport { Wordlist } from \"./wordlist\";\n\n\nconst data = \"}aE#4A=Yv&co#4N#6G=cJ&SM#66|/Z#4t&kn~46#4K~4q%b9=IR#7l,mB#7W_X2*dl}Uo~7s}Uf&Iw#9c&cw~6O&H6&wx&IG%v5=IQ~8a&Pv#47$PR&50%Ko&QM&3l#5f,D9#4L|/H&tQ;v0~6n]nN } = {\n zh_cn: null,\n zh_tw: null\n}\n\nconst Checks: { [key: string]: string } = {\n zh_cn: \"0x17bcc4d8547e5a7135e365d1ab443aaae95e76d8230c2782c67305d4f21497a1\",\n zh_tw: \"0x51e720e90c7b87bec1d70eb6e74a21a449bd3ec9c020b01d3a40ed991b60ce5d\"\n}\n\nconst codes = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\";\nconst style = \"~!@#$%^&*_-=[]{}|;:,.()<>?\"\n\nfunction loadWords(lang: Wordlist) {\n if (wordlist[lang.locale] !== null) { return; }\n\n wordlist[lang.locale] = [];\n\n let deltaOffset = 0;\n for (let i = 0; i < 2048; i++) {\n const s = style.indexOf(data[i * 3]);\n const bytes = [\n 228 + (s >> 2),\n 128 + codes.indexOf(data[i * 3 + 1]),\n 128 + codes.indexOf(data[i * 3 + 2]),\n ];\n\n if (lang.locale === \"zh_tw\") {\n const common = s % 4;\n for (let i = common; i < 3; i++) {\n bytes[i] = codes.indexOf(deltaData[deltaOffset++]) + ((i == 0) ? 228: 128);\n }\n }\n\n wordlist[lang.locale].push(toUtf8String(bytes));\n }\n\n // Verify the computed list matches the official list\n /* istanbul ignore if */\n if (Wordlist.check(lang) !== Checks[lang.locale]) {\n wordlist[lang.locale] = null;\n throw new Error(\"BIP39 Wordlist for \" + lang.locale + \" (Chinese) FAILED\");\n }\n}\n\nclass LangZh extends Wordlist {\n constructor(country: string) {\n super(\"zh_\" + country);\n }\n\n getWord(index: number): string {\n loadWords(this);\n return wordlist[this.locale][index];\n }\n\n getWordIndex(word: string): number {\n loadWords(this);\n return wordlist[this.locale].indexOf(word);\n }\n\n split(mnemonic: string): Array {\n mnemonic = mnemonic.replace(/(?:\\u3000| )+/g, \"\");\n return mnemonic.split(\"\");\n }\n}\n\nconst langZhCn = new LangZh(\"cn\");\nWordlist.register(langZhCn);\nWordlist.register(langZhCn, \"zh\");\n\nconst langZhTw = new LangZh(\"tw\");\nWordlist.register(langZhTw);\n\nexport { langZhCn, langZhTw };\n", "import { Wordlist } from \"./wordlist\";\n\nimport { langCz as cz } from \"./lang-cz\";\nimport { langEn as en } from \"./lang-en\";\nimport { langEs as es } from \"./lang-es\";\nimport { langFr as fr } from \"./lang-fr\";\nimport { langJa as ja } from \"./lang-ja\";\nimport { langKo as ko } from \"./lang-ko\";\nimport { langIt as it } from \"./lang-it\";\nimport { langZhCn as zh_cn, langZhTw as zh_tw } from \"./lang-zh\";\n\nexport const wordlists: { [ locale: string ]: Wordlist } = {\n cz: cz,\n en: en,\n es: es,\n fr: fr,\n it: it,\n ja: ja,\n ko: ko,\n zh: zh_cn,\n zh_cn: zh_cn,\n zh_tw: zh_tw\n};\n\n\n", "\"use strict\";\n\n// Wordlists\n// See: https://github.com/bitcoin/bips/blob/master/bip-0039/bip-0039-wordlists.md\n\nimport { logger, Wordlist } from \"./wordlist\";\n\nimport { wordlists } from \"./wordlists\";\n\nexport {\n logger,\n Wordlist,\n wordlists\n}\n", "export const version = \"hdnode/5.7.0\";\n", "\"use strict\";\n\n// See: https://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki\n// See: https://github.com/bitcoin/bips/blob/master/bip-0039.mediawiki\n\n\nimport { ExternallyOwnedAccount } from \"@ethersproject/abstract-signer\";\nimport { Base58 } from \"@ethersproject/basex\";\nimport { arrayify, BytesLike, concat, hexDataSlice, hexZeroPad, hexlify } from \"@ethersproject/bytes\";\nimport { BigNumber } from \"@ethersproject/bignumber\";\nimport { toUtf8Bytes, UnicodeNormalizationForm } from \"@ethersproject/strings\";\nimport { pbkdf2 } from \"@ethersproject/pbkdf2\";\nimport { defineReadOnly } from \"@ethersproject/properties\";\nimport { SigningKey } from \"@ethersproject/signing-key\";\nimport { computeHmac, ripemd160, sha256, SupportedAlgorithm } from \"@ethersproject/sha2\";\nimport { computeAddress } from \"@ethersproject/transactions\";\nimport { Wordlist, wordlists } from \"@ethersproject/wordlists\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\nconst N = BigNumber.from(\"0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141\");\n\n\n// \"Bitcoin seed\"\nconst MasterSecret = toUtf8Bytes(\"Bitcoin seed\");\n\nconst HardenedBit = 0x80000000;\n\n// Returns a byte with the MSB bits set\nfunction getUpperMask(bits: number): number {\n return ((1 << bits) - 1) << (8 - bits);\n}\n\n// Returns a byte with the LSB bits set\nfunction getLowerMask(bits: number): number {\n return (1 << bits) - 1;\n}\n\nfunction bytes32(value: BigNumber | Uint8Array): string {\n return hexZeroPad(hexlify(value), 32);\n}\n\nfunction base58check(data: Uint8Array): string {\n return Base58.encode(concat([ data, hexDataSlice(sha256(sha256(data)), 0, 4) ]));\n}\n\nfunction getWordlist(wordlist: string | Wordlist): Wordlist {\n if (wordlist == null) {\n return wordlists[\"en\"];\n }\n\n if (typeof(wordlist) === \"string\") {\n const words = wordlists[wordlist];\n if (words == null) {\n logger.throwArgumentError(\"unknown locale\", \"wordlist\", wordlist);\n }\n return words;\n }\n\n return wordlist;\n}\n\nconst _constructorGuard: any = {};\n\nexport const defaultPath = \"m/44'/60'/0'/0/0\";\n\nexport interface Mnemonic {\n readonly phrase: string;\n readonly path: string;\n readonly locale: string;\n};\n\nexport class HDNode implements ExternallyOwnedAccount {\n readonly privateKey: string;\n readonly publicKey: string;\n\n readonly fingerprint: string;\n readonly parentFingerprint: string;\n\n readonly address: string;\n\n readonly mnemonic?: Mnemonic;\n readonly path: string;\n\n readonly chainCode: string;\n\n readonly index: number;\n readonly depth: number;\n\n /**\n * This constructor should not be called directly.\n *\n * Please use:\n * - fromMnemonic\n * - fromSeed\n */\n constructor(constructorGuard: any, privateKey: string, publicKey: string, parentFingerprint: string, chainCode: string, index: number, depth: number, mnemonicOrPath: Mnemonic | string) {\n /* istanbul ignore if */\n if (constructorGuard !== _constructorGuard) {\n throw new Error(\"HDNode constructor cannot be called directly\");\n }\n\n if (privateKey) {\n const signingKey = new SigningKey(privateKey);\n defineReadOnly(this, \"privateKey\", signingKey.privateKey);\n defineReadOnly(this, \"publicKey\", signingKey.compressedPublicKey);\n } else {\n defineReadOnly(this, \"privateKey\", null);\n defineReadOnly(this, \"publicKey\", hexlify(publicKey));\n }\n\n defineReadOnly(this, \"parentFingerprint\", parentFingerprint);\n defineReadOnly(this, \"fingerprint\", hexDataSlice(ripemd160(sha256(this.publicKey)), 0, 4));\n\n defineReadOnly(this, \"address\", computeAddress(this.publicKey));\n\n defineReadOnly(this, \"chainCode\", chainCode);\n\n defineReadOnly(this, \"index\", index);\n defineReadOnly(this, \"depth\", depth);\n\n if (mnemonicOrPath == null) {\n // From a source that does not preserve the path (e.g. extended keys)\n defineReadOnly(this, \"mnemonic\", null);\n defineReadOnly(this, \"path\", null);\n\n } else if (typeof(mnemonicOrPath) === \"string\") {\n // From a source that does not preserve the mnemonic (e.g. neutered)\n defineReadOnly(this, \"mnemonic\", null);\n defineReadOnly(this, \"path\", mnemonicOrPath);\n\n } else {\n // From a fully qualified source\n defineReadOnly(this, \"mnemonic\", mnemonicOrPath);\n defineReadOnly(this, \"path\", mnemonicOrPath.path);\n }\n }\n\n get extendedKey(): string {\n // We only support the mainnet values for now, but if anyone needs\n // testnet values, let me know. I believe current sentiment is that\n // we should always use mainnet, and use BIP-44 to derive the network\n // - Mainnet: public=0x0488B21E, private=0x0488ADE4\n // - Testnet: public=0x043587CF, private=0x04358394\n\n if (this.depth >= 256) { throw new Error(\"Depth too large!\"); }\n\n return base58check(concat([\n ((this.privateKey != null) ? \"0x0488ADE4\": \"0x0488B21E\"),\n hexlify(this.depth),\n this.parentFingerprint,\n hexZeroPad(hexlify(this.index), 4),\n this.chainCode,\n ((this.privateKey != null) ? concat([ \"0x00\", this.privateKey ]): this.publicKey),\n ]));\n }\n\n neuter(): HDNode {\n return new HDNode(_constructorGuard, null, this.publicKey, this.parentFingerprint, this.chainCode, this.index, this.depth, this.path);\n }\n\n private _derive(index: number): HDNode {\n if (index > 0xffffffff) { throw new Error(\"invalid index - \" + String(index)); }\n\n // Base path\n let path = this.path;\n if (path) { path += \"/\" + (index & ~HardenedBit); }\n\n const data = new Uint8Array(37);\n\n if (index & HardenedBit) {\n if (!this.privateKey) {\n throw new Error(\"cannot derive child of neutered node\");\n }\n\n // Data = 0x00 || ser_256(k_par)\n data.set(arrayify(this.privateKey), 1);\n\n // Hardened path\n if (path) { path += \"'\"; }\n\n } else {\n // Data = ser_p(point(k_par))\n data.set(arrayify(this.publicKey));\n }\n\n // Data += ser_32(i)\n for (let i = 24; i >= 0; i -= 8) { data[33 + (i >> 3)] = ((index >> (24 - i)) & 0xff); }\n\n const I = arrayify(computeHmac(SupportedAlgorithm.sha512, this.chainCode, data));\n const IL = I.slice(0, 32);\n const IR = I.slice(32);\n\n // The private key\n let ki: string = null\n\n // The public key\n let Ki: string = null;\n\n if (this.privateKey) {\n ki = bytes32(BigNumber.from(IL).add(this.privateKey).mod(N));\n } else {\n const ek = new SigningKey(hexlify(IL));\n Ki = ek._addPoint(this.publicKey);\n }\n\n let mnemonicOrPath: Mnemonic | string = path;\n\n const srcMnemonic = this.mnemonic;\n if (srcMnemonic) {\n mnemonicOrPath = Object.freeze({\n phrase: srcMnemonic.phrase,\n path: path,\n locale: (srcMnemonic.locale || \"en\")\n });\n }\n\n return new HDNode(_constructorGuard, ki, Ki, this.fingerprint, bytes32(IR), index, this.depth + 1, mnemonicOrPath);\n }\n\n derivePath(path: string): HDNode {\n const components = path.split(\"/\");\n\n if (components.length === 0 || (components[0] === \"m\" && this.depth !== 0)) {\n throw new Error(\"invalid path - \" + path);\n }\n\n if (components[0] === \"m\") { components.shift(); }\n\n let result: HDNode = this;\n for (let i = 0; i < components.length; i++) {\n const component = components[i];\n if (component.match(/^[0-9]+'$/)) {\n const index = parseInt(component.substring(0, component.length - 1));\n if (index >= HardenedBit) { throw new Error(\"invalid path index - \" + component); }\n result = result._derive(HardenedBit + index);\n } else if (component.match(/^[0-9]+$/)) {\n const index = parseInt(component);\n if (index >= HardenedBit) { throw new Error(\"invalid path index - \" + component); }\n result = result._derive(index);\n } else {\n throw new Error(\"invalid path component - \" + component);\n }\n }\n\n return result;\n }\n\n\n static _fromSeed(seed: BytesLike, mnemonic: Mnemonic): HDNode {\n const seedArray: Uint8Array = arrayify(seed);\n if (seedArray.length < 16 || seedArray.length > 64) { throw new Error(\"invalid seed\"); }\n\n const I: Uint8Array = arrayify(computeHmac(SupportedAlgorithm.sha512, MasterSecret, seedArray));\n\n return new HDNode(_constructorGuard, bytes32(I.slice(0, 32)), null, \"0x00000000\", bytes32(I.slice(32)), 0, 0, mnemonic);\n }\n\n static fromMnemonic(mnemonic: string, password?: string, wordlist?: string | Wordlist): HDNode {\n\n // If a locale name was passed in, find the associated wordlist\n wordlist = getWordlist(wordlist);\n\n // Normalize the case and spacing in the mnemonic (throws if the mnemonic is invalid)\n mnemonic = entropyToMnemonic(mnemonicToEntropy(mnemonic, wordlist), wordlist);\n\n return HDNode._fromSeed(mnemonicToSeed(mnemonic, password), {\n phrase: mnemonic,\n path: \"m\",\n locale: wordlist.locale\n });\n }\n\n static fromSeed(seed: BytesLike): HDNode {\n return HDNode._fromSeed(seed, null);\n }\n\n static fromExtendedKey(extendedKey: string): HDNode {\n const bytes = Base58.decode(extendedKey);\n\n if (bytes.length !== 82 || base58check(bytes.slice(0, 78)) !== extendedKey) {\n logger.throwArgumentError(\"invalid extended key\", \"extendedKey\", \"[REDACTED]\");\n }\n\n const depth = bytes[4];\n const parentFingerprint = hexlify(bytes.slice(5, 9));\n const index = parseInt(hexlify(bytes.slice(9, 13)).substring(2), 16);\n const chainCode = hexlify(bytes.slice(13, 45));\n const key = bytes.slice(45, 78);\n\n switch (hexlify(bytes.slice(0, 4))) {\n // Public Key\n case \"0x0488b21e\": case \"0x043587cf\":\n return new HDNode(_constructorGuard, null, hexlify(key), parentFingerprint, chainCode, index, depth, null);\n\n // Private Key\n case \"0x0488ade4\": case \"0x04358394 \":\n if (key[0] !== 0) { break; }\n return new HDNode(_constructorGuard, hexlify(key.slice(1)), null, parentFingerprint, chainCode, index, depth, null);\n }\n\n return logger.throwArgumentError(\"invalid extended key\", \"extendedKey\", \"[REDACTED]\");\n }\n}\n\nexport function mnemonicToSeed(mnemonic: string, password?: string): string {\n if (!password) { password = \"\"; }\n\n const salt = toUtf8Bytes(\"mnemonic\" + password, UnicodeNormalizationForm.NFKD);\n\n return pbkdf2(toUtf8Bytes(mnemonic, UnicodeNormalizationForm.NFKD), salt, 2048, 64, \"sha512\");\n}\n\nexport function mnemonicToEntropy(mnemonic: string, wordlist?: string | Wordlist): string {\n wordlist = getWordlist(wordlist);\n\n logger.checkNormalize();\n\n const words = wordlist.split(mnemonic);\n if ((words.length % 3) !== 0) { throw new Error(\"invalid mnemonic\"); }\n\n const entropy = arrayify(new Uint8Array(Math.ceil(11 * words.length / 8)));\n\n let offset = 0;\n for (let i = 0; i < words.length; i++) {\n let index = wordlist.getWordIndex(words[i].normalize(\"NFKD\"));\n if (index === -1) { throw new Error(\"invalid mnemonic\"); }\n\n for (let bit = 0; bit < 11; bit++) {\n if (index & (1 << (10 - bit))) {\n entropy[offset >> 3] |= (1 << (7 - (offset % 8)));\n }\n offset++;\n }\n }\n\n const entropyBits = 32 * words.length / 3;\n\n const checksumBits = words.length / 3;\n const checksumMask = getUpperMask(checksumBits);\n\n const checksum = arrayify(sha256(entropy.slice(0, entropyBits / 8)))[0] & checksumMask;\n\n if (checksum !== (entropy[entropy.length - 1] & checksumMask)) {\n throw new Error(\"invalid checksum\");\n }\n\n return hexlify(entropy.slice(0, entropyBits / 8));\n}\n\nexport function entropyToMnemonic(entropy: BytesLike, wordlist?: string | Wordlist): string {\n wordlist = getWordlist(wordlist);\n\n entropy = arrayify(entropy);\n\n if ((entropy.length % 4) !== 0 || entropy.length < 16 || entropy.length > 32) {\n throw new Error(\"invalid entropy\");\n }\n\n const indices: Array = [ 0 ];\n\n let remainingBits = 11;\n for (let i = 0; i < entropy.length; i++) {\n\n // Consume the whole byte (with still more to go)\n if (remainingBits > 8) {\n indices[indices.length - 1] <<= 8;\n indices[indices.length - 1] |= entropy[i];\n\n remainingBits -= 8;\n\n // This byte will complete an 11-bit index\n } else {\n indices[indices.length - 1] <<= remainingBits;\n indices[indices.length - 1] |= entropy[i] >> (8 - remainingBits);\n\n // Start the next word\n indices.push(entropy[i] & getLowerMask(8 - remainingBits));\n\n remainingBits += 3;\n }\n }\n\n // Compute the checksum bits\n const checksumBits = entropy.length / 4;\n const checksum = arrayify(sha256(entropy))[0] & getUpperMask(checksumBits);\n\n // Shift the checksum into the word indices\n indices[indices.length - 1] <<= checksumBits;\n indices[indices.length - 1] |= (checksum >> (8 - checksumBits));\n\n return wordlist.join(indices.map((index) => (wordlist).getWord(index)));\n}\n\nexport function isValidMnemonic(mnemonic: string, wordlist?: Wordlist): boolean {\n try {\n mnemonicToEntropy(mnemonic, wordlist);\n return true;\n } catch (error) { }\n return false;\n}\n\nexport function getAccountPath(index: number): string {\n if (typeof(index) !== \"number\" || index < 0 || index >= HardenedBit || index % 1) {\n logger.throwArgumentError(\"invalid account index\", \"index\", index);\n }\n return `m/44'/60'/${ index }'/0/0`;\n}\n", "import { randomBytes as _randomBytes } from \"crypto\";\n\nimport { arrayify } from \"@ethersproject/bytes\";\n\nexport function randomBytes(length: number): Uint8Array {\n return arrayify(_randomBytes(length));\n}\n", "\"use strict\";\n\nexport function shuffled(array: Array): Array {\n array = array.slice();\n\n for (let i = array.length - 1; i > 0; i--) {\n const j = Math.floor(Math.random() * (i + 1));\n const tmp = array[i];\n array[i] = array[j];\n array[j] = tmp;\n }\n\n return array;\n}\n", "\"use strict\";\n\nexport { randomBytes } from \"./random\";\nexport { shuffled } from \"./shuffle\";\n", "\"use strict\";\n\n(function(root) {\n\n function checkInt(value) {\n return (parseInt(value) === value);\n }\n\n function checkInts(arrayish) {\n if (!checkInt(arrayish.length)) { return false; }\n\n for (var i = 0; i < arrayish.length; i++) {\n if (!checkInt(arrayish[i]) || arrayish[i] < 0 || arrayish[i] > 255) {\n return false;\n }\n }\n\n return true;\n }\n\n function coerceArray(arg, copy) {\n\n // ArrayBuffer view\n if (arg.buffer && ArrayBuffer.isView(arg) && arg.name === 'Uint8Array') {\n\n if (copy) {\n if (arg.slice) {\n arg = arg.slice();\n } else {\n arg = Array.prototype.slice.call(arg);\n }\n }\n\n return arg;\n }\n\n // It's an array; check it is a valid representation of a byte\n if (Array.isArray(arg)) {\n if (!checkInts(arg)) {\n throw new Error('Array contains invalid value: ' + arg);\n }\n\n return new Uint8Array(arg);\n }\n\n // Something else, but behaves like an array (maybe a Buffer? Arguments?)\n if (checkInt(arg.length) && checkInts(arg)) {\n return new Uint8Array(arg);\n }\n\n throw new Error('unsupported array-like object');\n }\n\n function createArray(length) {\n return new Uint8Array(length);\n }\n\n function copyArray(sourceArray, targetArray, targetStart, sourceStart, sourceEnd) {\n if (sourceStart != null || sourceEnd != null) {\n if (sourceArray.slice) {\n sourceArray = sourceArray.slice(sourceStart, sourceEnd);\n } else {\n sourceArray = Array.prototype.slice.call(sourceArray, sourceStart, sourceEnd);\n }\n }\n targetArray.set(sourceArray, targetStart);\n }\n\n\n\n var convertUtf8 = (function() {\n function toBytes(text) {\n var result = [], i = 0;\n text = encodeURI(text);\n while (i < text.length) {\n var c = text.charCodeAt(i++);\n\n // if it is a % sign, encode the following 2 bytes as a hex value\n if (c === 37) {\n result.push(parseInt(text.substr(i, 2), 16))\n i += 2;\n\n // otherwise, just the actual byte\n } else {\n result.push(c)\n }\n }\n\n return coerceArray(result);\n }\n\n function fromBytes(bytes) {\n var result = [], i = 0;\n\n while (i < bytes.length) {\n var c = bytes[i];\n\n if (c < 128) {\n result.push(String.fromCharCode(c));\n i++;\n } else if (c > 191 && c < 224) {\n result.push(String.fromCharCode(((c & 0x1f) << 6) | (bytes[i + 1] & 0x3f)));\n i += 2;\n } else {\n result.push(String.fromCharCode(((c & 0x0f) << 12) | ((bytes[i + 1] & 0x3f) << 6) | (bytes[i + 2] & 0x3f)));\n i += 3;\n }\n }\n\n return result.join('');\n }\n\n return {\n toBytes: toBytes,\n fromBytes: fromBytes,\n }\n })();\n\n var convertHex = (function() {\n function toBytes(text) {\n var result = [];\n for (var i = 0; i < text.length; i += 2) {\n result.push(parseInt(text.substr(i, 2), 16));\n }\n\n return result;\n }\n\n // http://ixti.net/development/javascript/2011/11/11/base64-encodedecode-of-utf8-in-browser-with-js.html\n var Hex = '0123456789abcdef';\n\n function fromBytes(bytes) {\n var result = [];\n for (var i = 0; i < bytes.length; i++) {\n var v = bytes[i];\n result.push(Hex[(v & 0xf0) >> 4] + Hex[v & 0x0f]);\n }\n return result.join('');\n }\n\n return {\n toBytes: toBytes,\n fromBytes: fromBytes,\n }\n })();\n\n\n // Number of rounds by keysize\n var numberOfRounds = {16: 10, 24: 12, 32: 14}\n\n // Round constant words\n var rcon = [0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36, 0x6c, 0xd8, 0xab, 0x4d, 0x9a, 0x2f, 0x5e, 0xbc, 0x63, 0xc6, 0x97, 0x35, 0x6a, 0xd4, 0xb3, 0x7d, 0xfa, 0xef, 0xc5, 0x91];\n\n // S-box and Inverse S-box (S is for Substitution)\n var S = [0x63, 0x7c, 0x77, 0x7b, 0xf2, 0x6b, 0x6f, 0xc5, 0x30, 0x01, 0x67, 0x2b, 0xfe, 0xd7, 0xab, 0x76, 0xca, 0x82, 0xc9, 0x7d, 0xfa, 0x59, 0x47, 0xf0, 0xad, 0xd4, 0xa2, 0xaf, 0x9c, 0xa4, 0x72, 0xc0, 0xb7, 0xfd, 0x93, 0x26, 0x36, 0x3f, 0xf7, 0xcc, 0x34, 0xa5, 0xe5, 0xf1, 0x71, 0xd8, 0x31, 0x15, 0x04, 0xc7, 0x23, 0xc3, 0x18, 0x96, 0x05, 0x9a, 0x07, 0x12, 0x80, 0xe2, 0xeb, 0x27, 0xb2, 0x75, 0x09, 0x83, 0x2c, 0x1a, 0x1b, 0x6e, 0x5a, 0xa0, 0x52, 0x3b, 0xd6, 0xb3, 0x29, 0xe3, 0x2f, 0x84, 0x53, 0xd1, 0x00, 0xed, 0x20, 0xfc, 0xb1, 0x5b, 0x6a, 0xcb, 0xbe, 0x39, 0x4a, 0x4c, 0x58, 0xcf, 0xd0, 0xef, 0xaa, 0xfb, 0x43, 0x4d, 0x33, 0x85, 0x45, 0xf9, 0x02, 0x7f, 0x50, 0x3c, 0x9f, 0xa8, 0x51, 0xa3, 0x40, 0x8f, 0x92, 0x9d, 0x38, 0xf5, 0xbc, 0xb6, 0xda, 0x21, 0x10, 0xff, 0xf3, 0xd2, 0xcd, 0x0c, 0x13, 0xec, 0x5f, 0x97, 0x44, 0x17, 0xc4, 0xa7, 0x7e, 0x3d, 0x64, 0x5d, 0x19, 0x73, 0x60, 0x81, 0x4f, 0xdc, 0x22, 0x2a, 0x90, 0x88, 0x46, 0xee, 0xb8, 0x14, 0xde, 0x5e, 0x0b, 0xdb, 0xe0, 0x32, 0x3a, 0x0a, 0x49, 0x06, 0x24, 0x5c, 0xc2, 0xd3, 0xac, 0x62, 0x91, 0x95, 0xe4, 0x79, 0xe7, 0xc8, 0x37, 0x6d, 0x8d, 0xd5, 0x4e, 0xa9, 0x6c, 0x56, 0xf4, 0xea, 0x65, 0x7a, 0xae, 0x08, 0xba, 0x78, 0x25, 0x2e, 0x1c, 0xa6, 0xb4, 0xc6, 0xe8, 0xdd, 0x74, 0x1f, 0x4b, 0xbd, 0x8b, 0x8a, 0x70, 0x3e, 0xb5, 0x66, 0x48, 0x03, 0xf6, 0x0e, 0x61, 0x35, 0x57, 0xb9, 0x86, 0xc1, 0x1d, 0x9e, 0xe1, 0xf8, 0x98, 0x11, 0x69, 0xd9, 0x8e, 0x94, 0x9b, 0x1e, 0x87, 0xe9, 0xce, 0x55, 0x28, 0xdf, 0x8c, 0xa1, 0x89, 0x0d, 0xbf, 0xe6, 0x42, 0x68, 0x41, 0x99, 0x2d, 0x0f, 0xb0, 0x54, 0xbb, 0x16];\n var Si =[0x52, 0x09, 0x6a, 0xd5, 0x30, 0x36, 0xa5, 0x38, 0xbf, 0x40, 0xa3, 0x9e, 0x81, 0xf3, 0xd7, 0xfb, 0x7c, 0xe3, 0x39, 0x82, 0x9b, 0x2f, 0xff, 0x87, 0x34, 0x8e, 0x43, 0x44, 0xc4, 0xde, 0xe9, 0xcb, 0x54, 0x7b, 0x94, 0x32, 0xa6, 0xc2, 0x23, 0x3d, 0xee, 0x4c, 0x95, 0x0b, 0x42, 0xfa, 0xc3, 0x4e, 0x08, 0x2e, 0xa1, 0x66, 0x28, 0xd9, 0x24, 0xb2, 0x76, 0x5b, 0xa2, 0x49, 0x6d, 0x8b, 0xd1, 0x25, 0x72, 0xf8, 0xf6, 0x64, 0x86, 0x68, 0x98, 0x16, 0xd4, 0xa4, 0x5c, 0xcc, 0x5d, 0x65, 0xb6, 0x92, 0x6c, 0x70, 0x48, 0x50, 0xfd, 0xed, 0xb9, 0xda, 0x5e, 0x15, 0x46, 0x57, 0xa7, 0x8d, 0x9d, 0x84, 0x90, 0xd8, 0xab, 0x00, 0x8c, 0xbc, 0xd3, 0x0a, 0xf7, 0xe4, 0x58, 0x05, 0xb8, 0xb3, 0x45, 0x06, 0xd0, 0x2c, 0x1e, 0x8f, 0xca, 0x3f, 0x0f, 0x02, 0xc1, 0xaf, 0xbd, 0x03, 0x01, 0x13, 0x8a, 0x6b, 0x3a, 0x91, 0x11, 0x41, 0x4f, 0x67, 0xdc, 0xea, 0x97, 0xf2, 0xcf, 0xce, 0xf0, 0xb4, 0xe6, 0x73, 0x96, 0xac, 0x74, 0x22, 0xe7, 0xad, 0x35, 0x85, 0xe2, 0xf9, 0x37, 0xe8, 0x1c, 0x75, 0xdf, 0x6e, 0x47, 0xf1, 0x1a, 0x71, 0x1d, 0x29, 0xc5, 0x89, 0x6f, 0xb7, 0x62, 0x0e, 0xaa, 0x18, 0xbe, 0x1b, 0xfc, 0x56, 0x3e, 0x4b, 0xc6, 0xd2, 0x79, 0x20, 0x9a, 0xdb, 0xc0, 0xfe, 0x78, 0xcd, 0x5a, 0xf4, 0x1f, 0xdd, 0xa8, 0x33, 0x88, 0x07, 0xc7, 0x31, 0xb1, 0x12, 0x10, 0x59, 0x27, 0x80, 0xec, 0x5f, 0x60, 0x51, 0x7f, 0xa9, 0x19, 0xb5, 0x4a, 0x0d, 0x2d, 0xe5, 0x7a, 0x9f, 0x93, 0xc9, 0x9c, 0xef, 0xa0, 0xe0, 0x3b, 0x4d, 0xae, 0x2a, 0xf5, 0xb0, 0xc8, 0xeb, 0xbb, 0x3c, 0x83, 0x53, 0x99, 0x61, 0x17, 0x2b, 0x04, 0x7e, 0xba, 0x77, 0xd6, 0x26, 0xe1, 0x69, 0x14, 0x63, 0x55, 0x21, 0x0c, 0x7d];\n\n // Transformations for encryption\n var T1 = [0xc66363a5, 0xf87c7c84, 0xee777799, 0xf67b7b8d, 0xfff2f20d, 0xd66b6bbd, 0xde6f6fb1, 0x91c5c554, 0x60303050, 0x02010103, 0xce6767a9, 0x562b2b7d, 0xe7fefe19, 0xb5d7d762, 0x4dababe6, 0xec76769a, 0x8fcaca45, 0x1f82829d, 0x89c9c940, 0xfa7d7d87, 0xeffafa15, 0xb25959eb, 0x8e4747c9, 0xfbf0f00b, 0x41adadec, 0xb3d4d467, 0x5fa2a2fd, 0x45afafea, 0x239c9cbf, 0x53a4a4f7, 0xe4727296, 0x9bc0c05b, 0x75b7b7c2, 0xe1fdfd1c, 0x3d9393ae, 0x4c26266a, 0x6c36365a, 0x7e3f3f41, 0xf5f7f702, 0x83cccc4f, 0x6834345c, 0x51a5a5f4, 0xd1e5e534, 0xf9f1f108, 0xe2717193, 0xabd8d873, 0x62313153, 0x2a15153f, 0x0804040c, 0x95c7c752, 0x46232365, 0x9dc3c35e, 0x30181828, 0x379696a1, 0x0a05050f, 0x2f9a9ab5, 0x0e070709, 0x24121236, 0x1b80809b, 0xdfe2e23d, 0xcdebeb26, 0x4e272769, 0x7fb2b2cd, 0xea75759f, 0x1209091b, 0x1d83839e, 0x582c2c74, 0x341a1a2e, 0x361b1b2d, 0xdc6e6eb2, 0xb45a5aee, 0x5ba0a0fb, 0xa45252f6, 0x763b3b4d, 0xb7d6d661, 0x7db3b3ce, 0x5229297b, 0xdde3e33e, 0x5e2f2f71, 0x13848497, 0xa65353f5, 0xb9d1d168, 0x00000000, 0xc1eded2c, 0x40202060, 0xe3fcfc1f, 0x79b1b1c8, 0xb65b5bed, 0xd46a6abe, 0x8dcbcb46, 0x67bebed9, 0x7239394b, 0x944a4ade, 0x984c4cd4, 0xb05858e8, 0x85cfcf4a, 0xbbd0d06b, 0xc5efef2a, 0x4faaaae5, 0xedfbfb16, 0x864343c5, 0x9a4d4dd7, 0x66333355, 0x11858594, 0x8a4545cf, 0xe9f9f910, 0x04020206, 0xfe7f7f81, 0xa05050f0, 0x783c3c44, 0x259f9fba, 0x4ba8a8e3, 0xa25151f3, 0x5da3a3fe, 0x804040c0, 0x058f8f8a, 0x3f9292ad, 0x219d9dbc, 0x70383848, 0xf1f5f504, 0x63bcbcdf, 0x77b6b6c1, 0xafdada75, 0x42212163, 0x20101030, 0xe5ffff1a, 0xfdf3f30e, 0xbfd2d26d, 0x81cdcd4c, 0x180c0c14, 0x26131335, 0xc3ecec2f, 0xbe5f5fe1, 0x359797a2, 0x884444cc, 0x2e171739, 0x93c4c457, 0x55a7a7f2, 0xfc7e7e82, 0x7a3d3d47, 0xc86464ac, 0xba5d5de7, 0x3219192b, 0xe6737395, 0xc06060a0, 0x19818198, 0x9e4f4fd1, 0xa3dcdc7f, 0x44222266, 0x542a2a7e, 0x3b9090ab, 0x0b888883, 0x8c4646ca, 0xc7eeee29, 0x6bb8b8d3, 0x2814143c, 0xa7dede79, 0xbc5e5ee2, 0x160b0b1d, 0xaddbdb76, 0xdbe0e03b, 0x64323256, 0x743a3a4e, 0x140a0a1e, 0x924949db, 0x0c06060a, 0x4824246c, 0xb85c5ce4, 0x9fc2c25d, 0xbdd3d36e, 0x43acacef, 0xc46262a6, 0x399191a8, 0x319595a4, 0xd3e4e437, 0xf279798b, 0xd5e7e732, 0x8bc8c843, 0x6e373759, 0xda6d6db7, 0x018d8d8c, 0xb1d5d564, 0x9c4e4ed2, 0x49a9a9e0, 0xd86c6cb4, 0xac5656fa, 0xf3f4f407, 0xcfeaea25, 0xca6565af, 0xf47a7a8e, 0x47aeaee9, 0x10080818, 0x6fbabad5, 0xf0787888, 0x4a25256f, 0x5c2e2e72, 0x381c1c24, 0x57a6a6f1, 0x73b4b4c7, 0x97c6c651, 0xcbe8e823, 0xa1dddd7c, 0xe874749c, 0x3e1f1f21, 0x964b4bdd, 0x61bdbddc, 0x0d8b8b86, 0x0f8a8a85, 0xe0707090, 0x7c3e3e42, 0x71b5b5c4, 0xcc6666aa, 0x904848d8, 0x06030305, 0xf7f6f601, 0x1c0e0e12, 0xc26161a3, 0x6a35355f, 0xae5757f9, 0x69b9b9d0, 0x17868691, 0x99c1c158, 0x3a1d1d27, 0x279e9eb9, 0xd9e1e138, 0xebf8f813, 0x2b9898b3, 0x22111133, 0xd26969bb, 0xa9d9d970, 0x078e8e89, 0x339494a7, 0x2d9b9bb6, 0x3c1e1e22, 0x15878792, 0xc9e9e920, 0x87cece49, 0xaa5555ff, 0x50282878, 0xa5dfdf7a, 0x038c8c8f, 0x59a1a1f8, 0x09898980, 0x1a0d0d17, 0x65bfbfda, 0xd7e6e631, 0x844242c6, 0xd06868b8, 0x824141c3, 0x299999b0, 0x5a2d2d77, 0x1e0f0f11, 0x7bb0b0cb, 0xa85454fc, 0x6dbbbbd6, 0x2c16163a];\n var T2 = [0xa5c66363, 0x84f87c7c, 0x99ee7777, 0x8df67b7b, 0x0dfff2f2, 0xbdd66b6b, 0xb1de6f6f, 0x5491c5c5, 0x50603030, 0x03020101, 0xa9ce6767, 0x7d562b2b, 0x19e7fefe, 0x62b5d7d7, 0xe64dabab, 0x9aec7676, 0x458fcaca, 0x9d1f8282, 0x4089c9c9, 0x87fa7d7d, 0x15effafa, 0xebb25959, 0xc98e4747, 0x0bfbf0f0, 0xec41adad, 0x67b3d4d4, 0xfd5fa2a2, 0xea45afaf, 0xbf239c9c, 0xf753a4a4, 0x96e47272, 0x5b9bc0c0, 0xc275b7b7, 0x1ce1fdfd, 0xae3d9393, 0x6a4c2626, 0x5a6c3636, 0x417e3f3f, 0x02f5f7f7, 0x4f83cccc, 0x5c683434, 0xf451a5a5, 0x34d1e5e5, 0x08f9f1f1, 0x93e27171, 0x73abd8d8, 0x53623131, 0x3f2a1515, 0x0c080404, 0x5295c7c7, 0x65462323, 0x5e9dc3c3, 0x28301818, 0xa1379696, 0x0f0a0505, 0xb52f9a9a, 0x090e0707, 0x36241212, 0x9b1b8080, 0x3ddfe2e2, 0x26cdebeb, 0x694e2727, 0xcd7fb2b2, 0x9fea7575, 0x1b120909, 0x9e1d8383, 0x74582c2c, 0x2e341a1a, 0x2d361b1b, 0xb2dc6e6e, 0xeeb45a5a, 0xfb5ba0a0, 0xf6a45252, 0x4d763b3b, 0x61b7d6d6, 0xce7db3b3, 0x7b522929, 0x3edde3e3, 0x715e2f2f, 0x97138484, 0xf5a65353, 0x68b9d1d1, 0x00000000, 0x2cc1eded, 0x60402020, 0x1fe3fcfc, 0xc879b1b1, 0xedb65b5b, 0xbed46a6a, 0x468dcbcb, 0xd967bebe, 0x4b723939, 0xde944a4a, 0xd4984c4c, 0xe8b05858, 0x4a85cfcf, 0x6bbbd0d0, 0x2ac5efef, 0xe54faaaa, 0x16edfbfb, 0xc5864343, 0xd79a4d4d, 0x55663333, 0x94118585, 0xcf8a4545, 0x10e9f9f9, 0x06040202, 0x81fe7f7f, 0xf0a05050, 0x44783c3c, 0xba259f9f, 0xe34ba8a8, 0xf3a25151, 0xfe5da3a3, 0xc0804040, 0x8a058f8f, 0xad3f9292, 0xbc219d9d, 0x48703838, 0x04f1f5f5, 0xdf63bcbc, 0xc177b6b6, 0x75afdada, 0x63422121, 0x30201010, 0x1ae5ffff, 0x0efdf3f3, 0x6dbfd2d2, 0x4c81cdcd, 0x14180c0c, 0x35261313, 0x2fc3ecec, 0xe1be5f5f, 0xa2359797, 0xcc884444, 0x392e1717, 0x5793c4c4, 0xf255a7a7, 0x82fc7e7e, 0x477a3d3d, 0xacc86464, 0xe7ba5d5d, 0x2b321919, 0x95e67373, 0xa0c06060, 0x98198181, 0xd19e4f4f, 0x7fa3dcdc, 0x66442222, 0x7e542a2a, 0xab3b9090, 0x830b8888, 0xca8c4646, 0x29c7eeee, 0xd36bb8b8, 0x3c281414, 0x79a7dede, 0xe2bc5e5e, 0x1d160b0b, 0x76addbdb, 0x3bdbe0e0, 0x56643232, 0x4e743a3a, 0x1e140a0a, 0xdb924949, 0x0a0c0606, 0x6c482424, 0xe4b85c5c, 0x5d9fc2c2, 0x6ebdd3d3, 0xef43acac, 0xa6c46262, 0xa8399191, 0xa4319595, 0x37d3e4e4, 0x8bf27979, 0x32d5e7e7, 0x438bc8c8, 0x596e3737, 0xb7da6d6d, 0x8c018d8d, 0x64b1d5d5, 0xd29c4e4e, 0xe049a9a9, 0xb4d86c6c, 0xfaac5656, 0x07f3f4f4, 0x25cfeaea, 0xafca6565, 0x8ef47a7a, 0xe947aeae, 0x18100808, 0xd56fbaba, 0x88f07878, 0x6f4a2525, 0x725c2e2e, 0x24381c1c, 0xf157a6a6, 0xc773b4b4, 0x5197c6c6, 0x23cbe8e8, 0x7ca1dddd, 0x9ce87474, 0x213e1f1f, 0xdd964b4b, 0xdc61bdbd, 0x860d8b8b, 0x850f8a8a, 0x90e07070, 0x427c3e3e, 0xc471b5b5, 0xaacc6666, 0xd8904848, 0x05060303, 0x01f7f6f6, 0x121c0e0e, 0xa3c26161, 0x5f6a3535, 0xf9ae5757, 0xd069b9b9, 0x91178686, 0x5899c1c1, 0x273a1d1d, 0xb9279e9e, 0x38d9e1e1, 0x13ebf8f8, 0xb32b9898, 0x33221111, 0xbbd26969, 0x70a9d9d9, 0x89078e8e, 0xa7339494, 0xb62d9b9b, 0x223c1e1e, 0x92158787, 0x20c9e9e9, 0x4987cece, 0xffaa5555, 0x78502828, 0x7aa5dfdf, 0x8f038c8c, 0xf859a1a1, 0x80098989, 0x171a0d0d, 0xda65bfbf, 0x31d7e6e6, 0xc6844242, 0xb8d06868, 0xc3824141, 0xb0299999, 0x775a2d2d, 0x111e0f0f, 0xcb7bb0b0, 0xfca85454, 0xd66dbbbb, 0x3a2c1616];\n var T3 = [0x63a5c663, 0x7c84f87c, 0x7799ee77, 0x7b8df67b, 0xf20dfff2, 0x6bbdd66b, 0x6fb1de6f, 0xc55491c5, 0x30506030, 0x01030201, 0x67a9ce67, 0x2b7d562b, 0xfe19e7fe, 0xd762b5d7, 0xabe64dab, 0x769aec76, 0xca458fca, 0x829d1f82, 0xc94089c9, 0x7d87fa7d, 0xfa15effa, 0x59ebb259, 0x47c98e47, 0xf00bfbf0, 0xadec41ad, 0xd467b3d4, 0xa2fd5fa2, 0xafea45af, 0x9cbf239c, 0xa4f753a4, 0x7296e472, 0xc05b9bc0, 0xb7c275b7, 0xfd1ce1fd, 0x93ae3d93, 0x266a4c26, 0x365a6c36, 0x3f417e3f, 0xf702f5f7, 0xcc4f83cc, 0x345c6834, 0xa5f451a5, 0xe534d1e5, 0xf108f9f1, 0x7193e271, 0xd873abd8, 0x31536231, 0x153f2a15, 0x040c0804, 0xc75295c7, 0x23654623, 0xc35e9dc3, 0x18283018, 0x96a13796, 0x050f0a05, 0x9ab52f9a, 0x07090e07, 0x12362412, 0x809b1b80, 0xe23ddfe2, 0xeb26cdeb, 0x27694e27, 0xb2cd7fb2, 0x759fea75, 0x091b1209, 0x839e1d83, 0x2c74582c, 0x1a2e341a, 0x1b2d361b, 0x6eb2dc6e, 0x5aeeb45a, 0xa0fb5ba0, 0x52f6a452, 0x3b4d763b, 0xd661b7d6, 0xb3ce7db3, 0x297b5229, 0xe33edde3, 0x2f715e2f, 0x84971384, 0x53f5a653, 0xd168b9d1, 0x00000000, 0xed2cc1ed, 0x20604020, 0xfc1fe3fc, 0xb1c879b1, 0x5bedb65b, 0x6abed46a, 0xcb468dcb, 0xbed967be, 0x394b7239, 0x4ade944a, 0x4cd4984c, 0x58e8b058, 0xcf4a85cf, 0xd06bbbd0, 0xef2ac5ef, 0xaae54faa, 0xfb16edfb, 0x43c58643, 0x4dd79a4d, 0x33556633, 0x85941185, 0x45cf8a45, 0xf910e9f9, 0x02060402, 0x7f81fe7f, 0x50f0a050, 0x3c44783c, 0x9fba259f, 0xa8e34ba8, 0x51f3a251, 0xa3fe5da3, 0x40c08040, 0x8f8a058f, 0x92ad3f92, 0x9dbc219d, 0x38487038, 0xf504f1f5, 0xbcdf63bc, 0xb6c177b6, 0xda75afda, 0x21634221, 0x10302010, 0xff1ae5ff, 0xf30efdf3, 0xd26dbfd2, 0xcd4c81cd, 0x0c14180c, 0x13352613, 0xec2fc3ec, 0x5fe1be5f, 0x97a23597, 0x44cc8844, 0x17392e17, 0xc45793c4, 0xa7f255a7, 0x7e82fc7e, 0x3d477a3d, 0x64acc864, 0x5de7ba5d, 0x192b3219, 0x7395e673, 0x60a0c060, 0x81981981, 0x4fd19e4f, 0xdc7fa3dc, 0x22664422, 0x2a7e542a, 0x90ab3b90, 0x88830b88, 0x46ca8c46, 0xee29c7ee, 0xb8d36bb8, 0x143c2814, 0xde79a7de, 0x5ee2bc5e, 0x0b1d160b, 0xdb76addb, 0xe03bdbe0, 0x32566432, 0x3a4e743a, 0x0a1e140a, 0x49db9249, 0x060a0c06, 0x246c4824, 0x5ce4b85c, 0xc25d9fc2, 0xd36ebdd3, 0xacef43ac, 0x62a6c462, 0x91a83991, 0x95a43195, 0xe437d3e4, 0x798bf279, 0xe732d5e7, 0xc8438bc8, 0x37596e37, 0x6db7da6d, 0x8d8c018d, 0xd564b1d5, 0x4ed29c4e, 0xa9e049a9, 0x6cb4d86c, 0x56faac56, 0xf407f3f4, 0xea25cfea, 0x65afca65, 0x7a8ef47a, 0xaee947ae, 0x08181008, 0xbad56fba, 0x7888f078, 0x256f4a25, 0x2e725c2e, 0x1c24381c, 0xa6f157a6, 0xb4c773b4, 0xc65197c6, 0xe823cbe8, 0xdd7ca1dd, 0x749ce874, 0x1f213e1f, 0x4bdd964b, 0xbddc61bd, 0x8b860d8b, 0x8a850f8a, 0x7090e070, 0x3e427c3e, 0xb5c471b5, 0x66aacc66, 0x48d89048, 0x03050603, 0xf601f7f6, 0x0e121c0e, 0x61a3c261, 0x355f6a35, 0x57f9ae57, 0xb9d069b9, 0x86911786, 0xc15899c1, 0x1d273a1d, 0x9eb9279e, 0xe138d9e1, 0xf813ebf8, 0x98b32b98, 0x11332211, 0x69bbd269, 0xd970a9d9, 0x8e89078e, 0x94a73394, 0x9bb62d9b, 0x1e223c1e, 0x87921587, 0xe920c9e9, 0xce4987ce, 0x55ffaa55, 0x28785028, 0xdf7aa5df, 0x8c8f038c, 0xa1f859a1, 0x89800989, 0x0d171a0d, 0xbfda65bf, 0xe631d7e6, 0x42c68442, 0x68b8d068, 0x41c38241, 0x99b02999, 0x2d775a2d, 0x0f111e0f, 0xb0cb7bb0, 0x54fca854, 0xbbd66dbb, 0x163a2c16];\n var T4 = [0x6363a5c6, 0x7c7c84f8, 0x777799ee, 0x7b7b8df6, 0xf2f20dff, 0x6b6bbdd6, 0x6f6fb1de, 0xc5c55491, 0x30305060, 0x01010302, 0x6767a9ce, 0x2b2b7d56, 0xfefe19e7, 0xd7d762b5, 0xababe64d, 0x76769aec, 0xcaca458f, 0x82829d1f, 0xc9c94089, 0x7d7d87fa, 0xfafa15ef, 0x5959ebb2, 0x4747c98e, 0xf0f00bfb, 0xadadec41, 0xd4d467b3, 0xa2a2fd5f, 0xafafea45, 0x9c9cbf23, 0xa4a4f753, 0x727296e4, 0xc0c05b9b, 0xb7b7c275, 0xfdfd1ce1, 0x9393ae3d, 0x26266a4c, 0x36365a6c, 0x3f3f417e, 0xf7f702f5, 0xcccc4f83, 0x34345c68, 0xa5a5f451, 0xe5e534d1, 0xf1f108f9, 0x717193e2, 0xd8d873ab, 0x31315362, 0x15153f2a, 0x04040c08, 0xc7c75295, 0x23236546, 0xc3c35e9d, 0x18182830, 0x9696a137, 0x05050f0a, 0x9a9ab52f, 0x0707090e, 0x12123624, 0x80809b1b, 0xe2e23ddf, 0xebeb26cd, 0x2727694e, 0xb2b2cd7f, 0x75759fea, 0x09091b12, 0x83839e1d, 0x2c2c7458, 0x1a1a2e34, 0x1b1b2d36, 0x6e6eb2dc, 0x5a5aeeb4, 0xa0a0fb5b, 0x5252f6a4, 0x3b3b4d76, 0xd6d661b7, 0xb3b3ce7d, 0x29297b52, 0xe3e33edd, 0x2f2f715e, 0x84849713, 0x5353f5a6, 0xd1d168b9, 0x00000000, 0xeded2cc1, 0x20206040, 0xfcfc1fe3, 0xb1b1c879, 0x5b5bedb6, 0x6a6abed4, 0xcbcb468d, 0xbebed967, 0x39394b72, 0x4a4ade94, 0x4c4cd498, 0x5858e8b0, 0xcfcf4a85, 0xd0d06bbb, 0xefef2ac5, 0xaaaae54f, 0xfbfb16ed, 0x4343c586, 0x4d4dd79a, 0x33335566, 0x85859411, 0x4545cf8a, 0xf9f910e9, 0x02020604, 0x7f7f81fe, 0x5050f0a0, 0x3c3c4478, 0x9f9fba25, 0xa8a8e34b, 0x5151f3a2, 0xa3a3fe5d, 0x4040c080, 0x8f8f8a05, 0x9292ad3f, 0x9d9dbc21, 0x38384870, 0xf5f504f1, 0xbcbcdf63, 0xb6b6c177, 0xdada75af, 0x21216342, 0x10103020, 0xffff1ae5, 0xf3f30efd, 0xd2d26dbf, 0xcdcd4c81, 0x0c0c1418, 0x13133526, 0xecec2fc3, 0x5f5fe1be, 0x9797a235, 0x4444cc88, 0x1717392e, 0xc4c45793, 0xa7a7f255, 0x7e7e82fc, 0x3d3d477a, 0x6464acc8, 0x5d5de7ba, 0x19192b32, 0x737395e6, 0x6060a0c0, 0x81819819, 0x4f4fd19e, 0xdcdc7fa3, 0x22226644, 0x2a2a7e54, 0x9090ab3b, 0x8888830b, 0x4646ca8c, 0xeeee29c7, 0xb8b8d36b, 0x14143c28, 0xdede79a7, 0x5e5ee2bc, 0x0b0b1d16, 0xdbdb76ad, 0xe0e03bdb, 0x32325664, 0x3a3a4e74, 0x0a0a1e14, 0x4949db92, 0x06060a0c, 0x24246c48, 0x5c5ce4b8, 0xc2c25d9f, 0xd3d36ebd, 0xacacef43, 0x6262a6c4, 0x9191a839, 0x9595a431, 0xe4e437d3, 0x79798bf2, 0xe7e732d5, 0xc8c8438b, 0x3737596e, 0x6d6db7da, 0x8d8d8c01, 0xd5d564b1, 0x4e4ed29c, 0xa9a9e049, 0x6c6cb4d8, 0x5656faac, 0xf4f407f3, 0xeaea25cf, 0x6565afca, 0x7a7a8ef4, 0xaeaee947, 0x08081810, 0xbabad56f, 0x787888f0, 0x25256f4a, 0x2e2e725c, 0x1c1c2438, 0xa6a6f157, 0xb4b4c773, 0xc6c65197, 0xe8e823cb, 0xdddd7ca1, 0x74749ce8, 0x1f1f213e, 0x4b4bdd96, 0xbdbddc61, 0x8b8b860d, 0x8a8a850f, 0x707090e0, 0x3e3e427c, 0xb5b5c471, 0x6666aacc, 0x4848d890, 0x03030506, 0xf6f601f7, 0x0e0e121c, 0x6161a3c2, 0x35355f6a, 0x5757f9ae, 0xb9b9d069, 0x86869117, 0xc1c15899, 0x1d1d273a, 0x9e9eb927, 0xe1e138d9, 0xf8f813eb, 0x9898b32b, 0x11113322, 0x6969bbd2, 0xd9d970a9, 0x8e8e8907, 0x9494a733, 0x9b9bb62d, 0x1e1e223c, 0x87879215, 0xe9e920c9, 0xcece4987, 0x5555ffaa, 0x28287850, 0xdfdf7aa5, 0x8c8c8f03, 0xa1a1f859, 0x89898009, 0x0d0d171a, 0xbfbfda65, 0xe6e631d7, 0x4242c684, 0x6868b8d0, 0x4141c382, 0x9999b029, 0x2d2d775a, 0x0f0f111e, 0xb0b0cb7b, 0x5454fca8, 0xbbbbd66d, 0x16163a2c];\n\n // Transformations for decryption\n var T5 = [0x51f4a750, 0x7e416553, 0x1a17a4c3, 0x3a275e96, 0x3bab6bcb, 0x1f9d45f1, 0xacfa58ab, 0x4be30393, 0x2030fa55, 0xad766df6, 0x88cc7691, 0xf5024c25, 0x4fe5d7fc, 0xc52acbd7, 0x26354480, 0xb562a38f, 0xdeb15a49, 0x25ba1b67, 0x45ea0e98, 0x5dfec0e1, 0xc32f7502, 0x814cf012, 0x8d4697a3, 0x6bd3f9c6, 0x038f5fe7, 0x15929c95, 0xbf6d7aeb, 0x955259da, 0xd4be832d, 0x587421d3, 0x49e06929, 0x8ec9c844, 0x75c2896a, 0xf48e7978, 0x99583e6b, 0x27b971dd, 0xbee14fb6, 0xf088ad17, 0xc920ac66, 0x7dce3ab4, 0x63df4a18, 0xe51a3182, 0x97513360, 0x62537f45, 0xb16477e0, 0xbb6bae84, 0xfe81a01c, 0xf9082b94, 0x70486858, 0x8f45fd19, 0x94de6c87, 0x527bf8b7, 0xab73d323, 0x724b02e2, 0xe31f8f57, 0x6655ab2a, 0xb2eb2807, 0x2fb5c203, 0x86c57b9a, 0xd33708a5, 0x302887f2, 0x23bfa5b2, 0x02036aba, 0xed16825c, 0x8acf1c2b, 0xa779b492, 0xf307f2f0, 0x4e69e2a1, 0x65daf4cd, 0x0605bed5, 0xd134621f, 0xc4a6fe8a, 0x342e539d, 0xa2f355a0, 0x058ae132, 0xa4f6eb75, 0x0b83ec39, 0x4060efaa, 0x5e719f06, 0xbd6e1051, 0x3e218af9, 0x96dd063d, 0xdd3e05ae, 0x4de6bd46, 0x91548db5, 0x71c45d05, 0x0406d46f, 0x605015ff, 0x1998fb24, 0xd6bde997, 0x894043cc, 0x67d99e77, 0xb0e842bd, 0x07898b88, 0xe7195b38, 0x79c8eedb, 0xa17c0a47, 0x7c420fe9, 0xf8841ec9, 0x00000000, 0x09808683, 0x322bed48, 0x1e1170ac, 0x6c5a724e, 0xfd0efffb, 0x0f853856, 0x3daed51e, 0x362d3927, 0x0a0fd964, 0x685ca621, 0x9b5b54d1, 0x24362e3a, 0x0c0a67b1, 0x9357e70f, 0xb4ee96d2, 0x1b9b919e, 0x80c0c54f, 0x61dc20a2, 0x5a774b69, 0x1c121a16, 0xe293ba0a, 0xc0a02ae5, 0x3c22e043, 0x121b171d, 0x0e090d0b, 0xf28bc7ad, 0x2db6a8b9, 0x141ea9c8, 0x57f11985, 0xaf75074c, 0xee99ddbb, 0xa37f60fd, 0xf701269f, 0x5c72f5bc, 0x44663bc5, 0x5bfb7e34, 0x8b432976, 0xcb23c6dc, 0xb6edfc68, 0xb8e4f163, 0xd731dcca, 0x42638510, 0x13972240, 0x84c61120, 0x854a247d, 0xd2bb3df8, 0xaef93211, 0xc729a16d, 0x1d9e2f4b, 0xdcb230f3, 0x0d8652ec, 0x77c1e3d0, 0x2bb3166c, 0xa970b999, 0x119448fa, 0x47e96422, 0xa8fc8cc4, 0xa0f03f1a, 0x567d2cd8, 0x223390ef, 0x87494ec7, 0xd938d1c1, 0x8ccaa2fe, 0x98d40b36, 0xa6f581cf, 0xa57ade28, 0xdab78e26, 0x3fadbfa4, 0x2c3a9de4, 0x5078920d, 0x6a5fcc9b, 0x547e4662, 0xf68d13c2, 0x90d8b8e8, 0x2e39f75e, 0x82c3aff5, 0x9f5d80be, 0x69d0937c, 0x6fd52da9, 0xcf2512b3, 0xc8ac993b, 0x10187da7, 0xe89c636e, 0xdb3bbb7b, 0xcd267809, 0x6e5918f4, 0xec9ab701, 0x834f9aa8, 0xe6956e65, 0xaaffe67e, 0x21bccf08, 0xef15e8e6, 0xbae79bd9, 0x4a6f36ce, 0xea9f09d4, 0x29b07cd6, 0x31a4b2af, 0x2a3f2331, 0xc6a59430, 0x35a266c0, 0x744ebc37, 0xfc82caa6, 0xe090d0b0, 0x33a7d815, 0xf104984a, 0x41ecdaf7, 0x7fcd500e, 0x1791f62f, 0x764dd68d, 0x43efb04d, 0xccaa4d54, 0xe49604df, 0x9ed1b5e3, 0x4c6a881b, 0xc12c1fb8, 0x4665517f, 0x9d5eea04, 0x018c355d, 0xfa877473, 0xfb0b412e, 0xb3671d5a, 0x92dbd252, 0xe9105633, 0x6dd64713, 0x9ad7618c, 0x37a10c7a, 0x59f8148e, 0xeb133c89, 0xcea927ee, 0xb761c935, 0xe11ce5ed, 0x7a47b13c, 0x9cd2df59, 0x55f2733f, 0x1814ce79, 0x73c737bf, 0x53f7cdea, 0x5ffdaa5b, 0xdf3d6f14, 0x7844db86, 0xcaaff381, 0xb968c43e, 0x3824342c, 0xc2a3405f, 0x161dc372, 0xbce2250c, 0x283c498b, 0xff0d9541, 0x39a80171, 0x080cb3de, 0xd8b4e49c, 0x6456c190, 0x7bcb8461, 0xd532b670, 0x486c5c74, 0xd0b85742];\n var T6 = [0x5051f4a7, 0x537e4165, 0xc31a17a4, 0x963a275e, 0xcb3bab6b, 0xf11f9d45, 0xabacfa58, 0x934be303, 0x552030fa, 0xf6ad766d, 0x9188cc76, 0x25f5024c, 0xfc4fe5d7, 0xd7c52acb, 0x80263544, 0x8fb562a3, 0x49deb15a, 0x6725ba1b, 0x9845ea0e, 0xe15dfec0, 0x02c32f75, 0x12814cf0, 0xa38d4697, 0xc66bd3f9, 0xe7038f5f, 0x9515929c, 0xebbf6d7a, 0xda955259, 0x2dd4be83, 0xd3587421, 0x2949e069, 0x448ec9c8, 0x6a75c289, 0x78f48e79, 0x6b99583e, 0xdd27b971, 0xb6bee14f, 0x17f088ad, 0x66c920ac, 0xb47dce3a, 0x1863df4a, 0x82e51a31, 0x60975133, 0x4562537f, 0xe0b16477, 0x84bb6bae, 0x1cfe81a0, 0x94f9082b, 0x58704868, 0x198f45fd, 0x8794de6c, 0xb7527bf8, 0x23ab73d3, 0xe2724b02, 0x57e31f8f, 0x2a6655ab, 0x07b2eb28, 0x032fb5c2, 0x9a86c57b, 0xa5d33708, 0xf2302887, 0xb223bfa5, 0xba02036a, 0x5ced1682, 0x2b8acf1c, 0x92a779b4, 0xf0f307f2, 0xa14e69e2, 0xcd65daf4, 0xd50605be, 0x1fd13462, 0x8ac4a6fe, 0x9d342e53, 0xa0a2f355, 0x32058ae1, 0x75a4f6eb, 0x390b83ec, 0xaa4060ef, 0x065e719f, 0x51bd6e10, 0xf93e218a, 0x3d96dd06, 0xaedd3e05, 0x464de6bd, 0xb591548d, 0x0571c45d, 0x6f0406d4, 0xff605015, 0x241998fb, 0x97d6bde9, 0xcc894043, 0x7767d99e, 0xbdb0e842, 0x8807898b, 0x38e7195b, 0xdb79c8ee, 0x47a17c0a, 0xe97c420f, 0xc9f8841e, 0x00000000, 0x83098086, 0x48322bed, 0xac1e1170, 0x4e6c5a72, 0xfbfd0eff, 0x560f8538, 0x1e3daed5, 0x27362d39, 0x640a0fd9, 0x21685ca6, 0xd19b5b54, 0x3a24362e, 0xb10c0a67, 0x0f9357e7, 0xd2b4ee96, 0x9e1b9b91, 0x4f80c0c5, 0xa261dc20, 0x695a774b, 0x161c121a, 0x0ae293ba, 0xe5c0a02a, 0x433c22e0, 0x1d121b17, 0x0b0e090d, 0xadf28bc7, 0xb92db6a8, 0xc8141ea9, 0x8557f119, 0x4caf7507, 0xbbee99dd, 0xfda37f60, 0x9ff70126, 0xbc5c72f5, 0xc544663b, 0x345bfb7e, 0x768b4329, 0xdccb23c6, 0x68b6edfc, 0x63b8e4f1, 0xcad731dc, 0x10426385, 0x40139722, 0x2084c611, 0x7d854a24, 0xf8d2bb3d, 0x11aef932, 0x6dc729a1, 0x4b1d9e2f, 0xf3dcb230, 0xec0d8652, 0xd077c1e3, 0x6c2bb316, 0x99a970b9, 0xfa119448, 0x2247e964, 0xc4a8fc8c, 0x1aa0f03f, 0xd8567d2c, 0xef223390, 0xc787494e, 0xc1d938d1, 0xfe8ccaa2, 0x3698d40b, 0xcfa6f581, 0x28a57ade, 0x26dab78e, 0xa43fadbf, 0xe42c3a9d, 0x0d507892, 0x9b6a5fcc, 0x62547e46, 0xc2f68d13, 0xe890d8b8, 0x5e2e39f7, 0xf582c3af, 0xbe9f5d80, 0x7c69d093, 0xa96fd52d, 0xb3cf2512, 0x3bc8ac99, 0xa710187d, 0x6ee89c63, 0x7bdb3bbb, 0x09cd2678, 0xf46e5918, 0x01ec9ab7, 0xa8834f9a, 0x65e6956e, 0x7eaaffe6, 0x0821bccf, 0xe6ef15e8, 0xd9bae79b, 0xce4a6f36, 0xd4ea9f09, 0xd629b07c, 0xaf31a4b2, 0x312a3f23, 0x30c6a594, 0xc035a266, 0x37744ebc, 0xa6fc82ca, 0xb0e090d0, 0x1533a7d8, 0x4af10498, 0xf741ecda, 0x0e7fcd50, 0x2f1791f6, 0x8d764dd6, 0x4d43efb0, 0x54ccaa4d, 0xdfe49604, 0xe39ed1b5, 0x1b4c6a88, 0xb8c12c1f, 0x7f466551, 0x049d5eea, 0x5d018c35, 0x73fa8774, 0x2efb0b41, 0x5ab3671d, 0x5292dbd2, 0x33e91056, 0x136dd647, 0x8c9ad761, 0x7a37a10c, 0x8e59f814, 0x89eb133c, 0xeecea927, 0x35b761c9, 0xede11ce5, 0x3c7a47b1, 0x599cd2df, 0x3f55f273, 0x791814ce, 0xbf73c737, 0xea53f7cd, 0x5b5ffdaa, 0x14df3d6f, 0x867844db, 0x81caaff3, 0x3eb968c4, 0x2c382434, 0x5fc2a340, 0x72161dc3, 0x0cbce225, 0x8b283c49, 0x41ff0d95, 0x7139a801, 0xde080cb3, 0x9cd8b4e4, 0x906456c1, 0x617bcb84, 0x70d532b6, 0x74486c5c, 0x42d0b857];\n var T7 = [0xa75051f4, 0x65537e41, 0xa4c31a17, 0x5e963a27, 0x6bcb3bab, 0x45f11f9d, 0x58abacfa, 0x03934be3, 0xfa552030, 0x6df6ad76, 0x769188cc, 0x4c25f502, 0xd7fc4fe5, 0xcbd7c52a, 0x44802635, 0xa38fb562, 0x5a49deb1, 0x1b6725ba, 0x0e9845ea, 0xc0e15dfe, 0x7502c32f, 0xf012814c, 0x97a38d46, 0xf9c66bd3, 0x5fe7038f, 0x9c951592, 0x7aebbf6d, 0x59da9552, 0x832dd4be, 0x21d35874, 0x692949e0, 0xc8448ec9, 0x896a75c2, 0x7978f48e, 0x3e6b9958, 0x71dd27b9, 0x4fb6bee1, 0xad17f088, 0xac66c920, 0x3ab47dce, 0x4a1863df, 0x3182e51a, 0x33609751, 0x7f456253, 0x77e0b164, 0xae84bb6b, 0xa01cfe81, 0x2b94f908, 0x68587048, 0xfd198f45, 0x6c8794de, 0xf8b7527b, 0xd323ab73, 0x02e2724b, 0x8f57e31f, 0xab2a6655, 0x2807b2eb, 0xc2032fb5, 0x7b9a86c5, 0x08a5d337, 0x87f23028, 0xa5b223bf, 0x6aba0203, 0x825ced16, 0x1c2b8acf, 0xb492a779, 0xf2f0f307, 0xe2a14e69, 0xf4cd65da, 0xbed50605, 0x621fd134, 0xfe8ac4a6, 0x539d342e, 0x55a0a2f3, 0xe132058a, 0xeb75a4f6, 0xec390b83, 0xefaa4060, 0x9f065e71, 0x1051bd6e, 0x8af93e21, 0x063d96dd, 0x05aedd3e, 0xbd464de6, 0x8db59154, 0x5d0571c4, 0xd46f0406, 0x15ff6050, 0xfb241998, 0xe997d6bd, 0x43cc8940, 0x9e7767d9, 0x42bdb0e8, 0x8b880789, 0x5b38e719, 0xeedb79c8, 0x0a47a17c, 0x0fe97c42, 0x1ec9f884, 0x00000000, 0x86830980, 0xed48322b, 0x70ac1e11, 0x724e6c5a, 0xfffbfd0e, 0x38560f85, 0xd51e3dae, 0x3927362d, 0xd9640a0f, 0xa621685c, 0x54d19b5b, 0x2e3a2436, 0x67b10c0a, 0xe70f9357, 0x96d2b4ee, 0x919e1b9b, 0xc54f80c0, 0x20a261dc, 0x4b695a77, 0x1a161c12, 0xba0ae293, 0x2ae5c0a0, 0xe0433c22, 0x171d121b, 0x0d0b0e09, 0xc7adf28b, 0xa8b92db6, 0xa9c8141e, 0x198557f1, 0x074caf75, 0xddbbee99, 0x60fda37f, 0x269ff701, 0xf5bc5c72, 0x3bc54466, 0x7e345bfb, 0x29768b43, 0xc6dccb23, 0xfc68b6ed, 0xf163b8e4, 0xdccad731, 0x85104263, 0x22401397, 0x112084c6, 0x247d854a, 0x3df8d2bb, 0x3211aef9, 0xa16dc729, 0x2f4b1d9e, 0x30f3dcb2, 0x52ec0d86, 0xe3d077c1, 0x166c2bb3, 0xb999a970, 0x48fa1194, 0x642247e9, 0x8cc4a8fc, 0x3f1aa0f0, 0x2cd8567d, 0x90ef2233, 0x4ec78749, 0xd1c1d938, 0xa2fe8cca, 0x0b3698d4, 0x81cfa6f5, 0xde28a57a, 0x8e26dab7, 0xbfa43fad, 0x9de42c3a, 0x920d5078, 0xcc9b6a5f, 0x4662547e, 0x13c2f68d, 0xb8e890d8, 0xf75e2e39, 0xaff582c3, 0x80be9f5d, 0x937c69d0, 0x2da96fd5, 0x12b3cf25, 0x993bc8ac, 0x7da71018, 0x636ee89c, 0xbb7bdb3b, 0x7809cd26, 0x18f46e59, 0xb701ec9a, 0x9aa8834f, 0x6e65e695, 0xe67eaaff, 0xcf0821bc, 0xe8e6ef15, 0x9bd9bae7, 0x36ce4a6f, 0x09d4ea9f, 0x7cd629b0, 0xb2af31a4, 0x23312a3f, 0x9430c6a5, 0x66c035a2, 0xbc37744e, 0xcaa6fc82, 0xd0b0e090, 0xd81533a7, 0x984af104, 0xdaf741ec, 0x500e7fcd, 0xf62f1791, 0xd68d764d, 0xb04d43ef, 0x4d54ccaa, 0x04dfe496, 0xb5e39ed1, 0x881b4c6a, 0x1fb8c12c, 0x517f4665, 0xea049d5e, 0x355d018c, 0x7473fa87, 0x412efb0b, 0x1d5ab367, 0xd25292db, 0x5633e910, 0x47136dd6, 0x618c9ad7, 0x0c7a37a1, 0x148e59f8, 0x3c89eb13, 0x27eecea9, 0xc935b761, 0xe5ede11c, 0xb13c7a47, 0xdf599cd2, 0x733f55f2, 0xce791814, 0x37bf73c7, 0xcdea53f7, 0xaa5b5ffd, 0x6f14df3d, 0xdb867844, 0xf381caaf, 0xc43eb968, 0x342c3824, 0x405fc2a3, 0xc372161d, 0x250cbce2, 0x498b283c, 0x9541ff0d, 0x017139a8, 0xb3de080c, 0xe49cd8b4, 0xc1906456, 0x84617bcb, 0xb670d532, 0x5c74486c, 0x5742d0b8];\n var T8 = [0xf4a75051, 0x4165537e, 0x17a4c31a, 0x275e963a, 0xab6bcb3b, 0x9d45f11f, 0xfa58abac, 0xe303934b, 0x30fa5520, 0x766df6ad, 0xcc769188, 0x024c25f5, 0xe5d7fc4f, 0x2acbd7c5, 0x35448026, 0x62a38fb5, 0xb15a49de, 0xba1b6725, 0xea0e9845, 0xfec0e15d, 0x2f7502c3, 0x4cf01281, 0x4697a38d, 0xd3f9c66b, 0x8f5fe703, 0x929c9515, 0x6d7aebbf, 0x5259da95, 0xbe832dd4, 0x7421d358, 0xe0692949, 0xc9c8448e, 0xc2896a75, 0x8e7978f4, 0x583e6b99, 0xb971dd27, 0xe14fb6be, 0x88ad17f0, 0x20ac66c9, 0xce3ab47d, 0xdf4a1863, 0x1a3182e5, 0x51336097, 0x537f4562, 0x6477e0b1, 0x6bae84bb, 0x81a01cfe, 0x082b94f9, 0x48685870, 0x45fd198f, 0xde6c8794, 0x7bf8b752, 0x73d323ab, 0x4b02e272, 0x1f8f57e3, 0x55ab2a66, 0xeb2807b2, 0xb5c2032f, 0xc57b9a86, 0x3708a5d3, 0x2887f230, 0xbfa5b223, 0x036aba02, 0x16825ced, 0xcf1c2b8a, 0x79b492a7, 0x07f2f0f3, 0x69e2a14e, 0xdaf4cd65, 0x05bed506, 0x34621fd1, 0xa6fe8ac4, 0x2e539d34, 0xf355a0a2, 0x8ae13205, 0xf6eb75a4, 0x83ec390b, 0x60efaa40, 0x719f065e, 0x6e1051bd, 0x218af93e, 0xdd063d96, 0x3e05aedd, 0xe6bd464d, 0x548db591, 0xc45d0571, 0x06d46f04, 0x5015ff60, 0x98fb2419, 0xbde997d6, 0x4043cc89, 0xd99e7767, 0xe842bdb0, 0x898b8807, 0x195b38e7, 0xc8eedb79, 0x7c0a47a1, 0x420fe97c, 0x841ec9f8, 0x00000000, 0x80868309, 0x2bed4832, 0x1170ac1e, 0x5a724e6c, 0x0efffbfd, 0x8538560f, 0xaed51e3d, 0x2d392736, 0x0fd9640a, 0x5ca62168, 0x5b54d19b, 0x362e3a24, 0x0a67b10c, 0x57e70f93, 0xee96d2b4, 0x9b919e1b, 0xc0c54f80, 0xdc20a261, 0x774b695a, 0x121a161c, 0x93ba0ae2, 0xa02ae5c0, 0x22e0433c, 0x1b171d12, 0x090d0b0e, 0x8bc7adf2, 0xb6a8b92d, 0x1ea9c814, 0xf1198557, 0x75074caf, 0x99ddbbee, 0x7f60fda3, 0x01269ff7, 0x72f5bc5c, 0x663bc544, 0xfb7e345b, 0x4329768b, 0x23c6dccb, 0xedfc68b6, 0xe4f163b8, 0x31dccad7, 0x63851042, 0x97224013, 0xc6112084, 0x4a247d85, 0xbb3df8d2, 0xf93211ae, 0x29a16dc7, 0x9e2f4b1d, 0xb230f3dc, 0x8652ec0d, 0xc1e3d077, 0xb3166c2b, 0x70b999a9, 0x9448fa11, 0xe9642247, 0xfc8cc4a8, 0xf03f1aa0, 0x7d2cd856, 0x3390ef22, 0x494ec787, 0x38d1c1d9, 0xcaa2fe8c, 0xd40b3698, 0xf581cfa6, 0x7ade28a5, 0xb78e26da, 0xadbfa43f, 0x3a9de42c, 0x78920d50, 0x5fcc9b6a, 0x7e466254, 0x8d13c2f6, 0xd8b8e890, 0x39f75e2e, 0xc3aff582, 0x5d80be9f, 0xd0937c69, 0xd52da96f, 0x2512b3cf, 0xac993bc8, 0x187da710, 0x9c636ee8, 0x3bbb7bdb, 0x267809cd, 0x5918f46e, 0x9ab701ec, 0x4f9aa883, 0x956e65e6, 0xffe67eaa, 0xbccf0821, 0x15e8e6ef, 0xe79bd9ba, 0x6f36ce4a, 0x9f09d4ea, 0xb07cd629, 0xa4b2af31, 0x3f23312a, 0xa59430c6, 0xa266c035, 0x4ebc3774, 0x82caa6fc, 0x90d0b0e0, 0xa7d81533, 0x04984af1, 0xecdaf741, 0xcd500e7f, 0x91f62f17, 0x4dd68d76, 0xefb04d43, 0xaa4d54cc, 0x9604dfe4, 0xd1b5e39e, 0x6a881b4c, 0x2c1fb8c1, 0x65517f46, 0x5eea049d, 0x8c355d01, 0x877473fa, 0x0b412efb, 0x671d5ab3, 0xdbd25292, 0x105633e9, 0xd647136d, 0xd7618c9a, 0xa10c7a37, 0xf8148e59, 0x133c89eb, 0xa927eece, 0x61c935b7, 0x1ce5ede1, 0x47b13c7a, 0xd2df599c, 0xf2733f55, 0x14ce7918, 0xc737bf73, 0xf7cdea53, 0xfdaa5b5f, 0x3d6f14df, 0x44db8678, 0xaff381ca, 0x68c43eb9, 0x24342c38, 0xa3405fc2, 0x1dc37216, 0xe2250cbc, 0x3c498b28, 0x0d9541ff, 0xa8017139, 0x0cb3de08, 0xb4e49cd8, 0x56c19064, 0xcb84617b, 0x32b670d5, 0x6c5c7448, 0xb85742d0];\n\n // Transformations for decryption key expansion\n var U1 = [0x00000000, 0x0e090d0b, 0x1c121a16, 0x121b171d, 0x3824342c, 0x362d3927, 0x24362e3a, 0x2a3f2331, 0x70486858, 0x7e416553, 0x6c5a724e, 0x62537f45, 0x486c5c74, 0x4665517f, 0x547e4662, 0x5a774b69, 0xe090d0b0, 0xee99ddbb, 0xfc82caa6, 0xf28bc7ad, 0xd8b4e49c, 0xd6bde997, 0xc4a6fe8a, 0xcaaff381, 0x90d8b8e8, 0x9ed1b5e3, 0x8ccaa2fe, 0x82c3aff5, 0xa8fc8cc4, 0xa6f581cf, 0xb4ee96d2, 0xbae79bd9, 0xdb3bbb7b, 0xd532b670, 0xc729a16d, 0xc920ac66, 0xe31f8f57, 0xed16825c, 0xff0d9541, 0xf104984a, 0xab73d323, 0xa57ade28, 0xb761c935, 0xb968c43e, 0x9357e70f, 0x9d5eea04, 0x8f45fd19, 0x814cf012, 0x3bab6bcb, 0x35a266c0, 0x27b971dd, 0x29b07cd6, 0x038f5fe7, 0x0d8652ec, 0x1f9d45f1, 0x119448fa, 0x4be30393, 0x45ea0e98, 0x57f11985, 0x59f8148e, 0x73c737bf, 0x7dce3ab4, 0x6fd52da9, 0x61dc20a2, 0xad766df6, 0xa37f60fd, 0xb16477e0, 0xbf6d7aeb, 0x955259da, 0x9b5b54d1, 0x894043cc, 0x87494ec7, 0xdd3e05ae, 0xd33708a5, 0xc12c1fb8, 0xcf2512b3, 0xe51a3182, 0xeb133c89, 0xf9082b94, 0xf701269f, 0x4de6bd46, 0x43efb04d, 0x51f4a750, 0x5ffdaa5b, 0x75c2896a, 0x7bcb8461, 0x69d0937c, 0x67d99e77, 0x3daed51e, 0x33a7d815, 0x21bccf08, 0x2fb5c203, 0x058ae132, 0x0b83ec39, 0x1998fb24, 0x1791f62f, 0x764dd68d, 0x7844db86, 0x6a5fcc9b, 0x6456c190, 0x4e69e2a1, 0x4060efaa, 0x527bf8b7, 0x5c72f5bc, 0x0605bed5, 0x080cb3de, 0x1a17a4c3, 0x141ea9c8, 0x3e218af9, 0x302887f2, 0x223390ef, 0x2c3a9de4, 0x96dd063d, 0x98d40b36, 0x8acf1c2b, 0x84c61120, 0xaef93211, 0xa0f03f1a, 0xb2eb2807, 0xbce2250c, 0xe6956e65, 0xe89c636e, 0xfa877473, 0xf48e7978, 0xdeb15a49, 0xd0b85742, 0xc2a3405f, 0xccaa4d54, 0x41ecdaf7, 0x4fe5d7fc, 0x5dfec0e1, 0x53f7cdea, 0x79c8eedb, 0x77c1e3d0, 0x65daf4cd, 0x6bd3f9c6, 0x31a4b2af, 0x3fadbfa4, 0x2db6a8b9, 0x23bfa5b2, 0x09808683, 0x07898b88, 0x15929c95, 0x1b9b919e, 0xa17c0a47, 0xaf75074c, 0xbd6e1051, 0xb3671d5a, 0x99583e6b, 0x97513360, 0x854a247d, 0x8b432976, 0xd134621f, 0xdf3d6f14, 0xcd267809, 0xc32f7502, 0xe9105633, 0xe7195b38, 0xf5024c25, 0xfb0b412e, 0x9ad7618c, 0x94de6c87, 0x86c57b9a, 0x88cc7691, 0xa2f355a0, 0xacfa58ab, 0xbee14fb6, 0xb0e842bd, 0xea9f09d4, 0xe49604df, 0xf68d13c2, 0xf8841ec9, 0xd2bb3df8, 0xdcb230f3, 0xcea927ee, 0xc0a02ae5, 0x7a47b13c, 0x744ebc37, 0x6655ab2a, 0x685ca621, 0x42638510, 0x4c6a881b, 0x5e719f06, 0x5078920d, 0x0a0fd964, 0x0406d46f, 0x161dc372, 0x1814ce79, 0x322bed48, 0x3c22e043, 0x2e39f75e, 0x2030fa55, 0xec9ab701, 0xe293ba0a, 0xf088ad17, 0xfe81a01c, 0xd4be832d, 0xdab78e26, 0xc8ac993b, 0xc6a59430, 0x9cd2df59, 0x92dbd252, 0x80c0c54f, 0x8ec9c844, 0xa4f6eb75, 0xaaffe67e, 0xb8e4f163, 0xb6edfc68, 0x0c0a67b1, 0x02036aba, 0x10187da7, 0x1e1170ac, 0x342e539d, 0x3a275e96, 0x283c498b, 0x26354480, 0x7c420fe9, 0x724b02e2, 0x605015ff, 0x6e5918f4, 0x44663bc5, 0x4a6f36ce, 0x587421d3, 0x567d2cd8, 0x37a10c7a, 0x39a80171, 0x2bb3166c, 0x25ba1b67, 0x0f853856, 0x018c355d, 0x13972240, 0x1d9e2f4b, 0x47e96422, 0x49e06929, 0x5bfb7e34, 0x55f2733f, 0x7fcd500e, 0x71c45d05, 0x63df4a18, 0x6dd64713, 0xd731dcca, 0xd938d1c1, 0xcb23c6dc, 0xc52acbd7, 0xef15e8e6, 0xe11ce5ed, 0xf307f2f0, 0xfd0efffb, 0xa779b492, 0xa970b999, 0xbb6bae84, 0xb562a38f, 0x9f5d80be, 0x91548db5, 0x834f9aa8, 0x8d4697a3];\n var U2 = [0x00000000, 0x0b0e090d, 0x161c121a, 0x1d121b17, 0x2c382434, 0x27362d39, 0x3a24362e, 0x312a3f23, 0x58704868, 0x537e4165, 0x4e6c5a72, 0x4562537f, 0x74486c5c, 0x7f466551, 0x62547e46, 0x695a774b, 0xb0e090d0, 0xbbee99dd, 0xa6fc82ca, 0xadf28bc7, 0x9cd8b4e4, 0x97d6bde9, 0x8ac4a6fe, 0x81caaff3, 0xe890d8b8, 0xe39ed1b5, 0xfe8ccaa2, 0xf582c3af, 0xc4a8fc8c, 0xcfa6f581, 0xd2b4ee96, 0xd9bae79b, 0x7bdb3bbb, 0x70d532b6, 0x6dc729a1, 0x66c920ac, 0x57e31f8f, 0x5ced1682, 0x41ff0d95, 0x4af10498, 0x23ab73d3, 0x28a57ade, 0x35b761c9, 0x3eb968c4, 0x0f9357e7, 0x049d5eea, 0x198f45fd, 0x12814cf0, 0xcb3bab6b, 0xc035a266, 0xdd27b971, 0xd629b07c, 0xe7038f5f, 0xec0d8652, 0xf11f9d45, 0xfa119448, 0x934be303, 0x9845ea0e, 0x8557f119, 0x8e59f814, 0xbf73c737, 0xb47dce3a, 0xa96fd52d, 0xa261dc20, 0xf6ad766d, 0xfda37f60, 0xe0b16477, 0xebbf6d7a, 0xda955259, 0xd19b5b54, 0xcc894043, 0xc787494e, 0xaedd3e05, 0xa5d33708, 0xb8c12c1f, 0xb3cf2512, 0x82e51a31, 0x89eb133c, 0x94f9082b, 0x9ff70126, 0x464de6bd, 0x4d43efb0, 0x5051f4a7, 0x5b5ffdaa, 0x6a75c289, 0x617bcb84, 0x7c69d093, 0x7767d99e, 0x1e3daed5, 0x1533a7d8, 0x0821bccf, 0x032fb5c2, 0x32058ae1, 0x390b83ec, 0x241998fb, 0x2f1791f6, 0x8d764dd6, 0x867844db, 0x9b6a5fcc, 0x906456c1, 0xa14e69e2, 0xaa4060ef, 0xb7527bf8, 0xbc5c72f5, 0xd50605be, 0xde080cb3, 0xc31a17a4, 0xc8141ea9, 0xf93e218a, 0xf2302887, 0xef223390, 0xe42c3a9d, 0x3d96dd06, 0x3698d40b, 0x2b8acf1c, 0x2084c611, 0x11aef932, 0x1aa0f03f, 0x07b2eb28, 0x0cbce225, 0x65e6956e, 0x6ee89c63, 0x73fa8774, 0x78f48e79, 0x49deb15a, 0x42d0b857, 0x5fc2a340, 0x54ccaa4d, 0xf741ecda, 0xfc4fe5d7, 0xe15dfec0, 0xea53f7cd, 0xdb79c8ee, 0xd077c1e3, 0xcd65daf4, 0xc66bd3f9, 0xaf31a4b2, 0xa43fadbf, 0xb92db6a8, 0xb223bfa5, 0x83098086, 0x8807898b, 0x9515929c, 0x9e1b9b91, 0x47a17c0a, 0x4caf7507, 0x51bd6e10, 0x5ab3671d, 0x6b99583e, 0x60975133, 0x7d854a24, 0x768b4329, 0x1fd13462, 0x14df3d6f, 0x09cd2678, 0x02c32f75, 0x33e91056, 0x38e7195b, 0x25f5024c, 0x2efb0b41, 0x8c9ad761, 0x8794de6c, 0x9a86c57b, 0x9188cc76, 0xa0a2f355, 0xabacfa58, 0xb6bee14f, 0xbdb0e842, 0xd4ea9f09, 0xdfe49604, 0xc2f68d13, 0xc9f8841e, 0xf8d2bb3d, 0xf3dcb230, 0xeecea927, 0xe5c0a02a, 0x3c7a47b1, 0x37744ebc, 0x2a6655ab, 0x21685ca6, 0x10426385, 0x1b4c6a88, 0x065e719f, 0x0d507892, 0x640a0fd9, 0x6f0406d4, 0x72161dc3, 0x791814ce, 0x48322bed, 0x433c22e0, 0x5e2e39f7, 0x552030fa, 0x01ec9ab7, 0x0ae293ba, 0x17f088ad, 0x1cfe81a0, 0x2dd4be83, 0x26dab78e, 0x3bc8ac99, 0x30c6a594, 0x599cd2df, 0x5292dbd2, 0x4f80c0c5, 0x448ec9c8, 0x75a4f6eb, 0x7eaaffe6, 0x63b8e4f1, 0x68b6edfc, 0xb10c0a67, 0xba02036a, 0xa710187d, 0xac1e1170, 0x9d342e53, 0x963a275e, 0x8b283c49, 0x80263544, 0xe97c420f, 0xe2724b02, 0xff605015, 0xf46e5918, 0xc544663b, 0xce4a6f36, 0xd3587421, 0xd8567d2c, 0x7a37a10c, 0x7139a801, 0x6c2bb316, 0x6725ba1b, 0x560f8538, 0x5d018c35, 0x40139722, 0x4b1d9e2f, 0x2247e964, 0x2949e069, 0x345bfb7e, 0x3f55f273, 0x0e7fcd50, 0x0571c45d, 0x1863df4a, 0x136dd647, 0xcad731dc, 0xc1d938d1, 0xdccb23c6, 0xd7c52acb, 0xe6ef15e8, 0xede11ce5, 0xf0f307f2, 0xfbfd0eff, 0x92a779b4, 0x99a970b9, 0x84bb6bae, 0x8fb562a3, 0xbe9f5d80, 0xb591548d, 0xa8834f9a, 0xa38d4697];\n var U3 = [0x00000000, 0x0d0b0e09, 0x1a161c12, 0x171d121b, 0x342c3824, 0x3927362d, 0x2e3a2436, 0x23312a3f, 0x68587048, 0x65537e41, 0x724e6c5a, 0x7f456253, 0x5c74486c, 0x517f4665, 0x4662547e, 0x4b695a77, 0xd0b0e090, 0xddbbee99, 0xcaa6fc82, 0xc7adf28b, 0xe49cd8b4, 0xe997d6bd, 0xfe8ac4a6, 0xf381caaf, 0xb8e890d8, 0xb5e39ed1, 0xa2fe8cca, 0xaff582c3, 0x8cc4a8fc, 0x81cfa6f5, 0x96d2b4ee, 0x9bd9bae7, 0xbb7bdb3b, 0xb670d532, 0xa16dc729, 0xac66c920, 0x8f57e31f, 0x825ced16, 0x9541ff0d, 0x984af104, 0xd323ab73, 0xde28a57a, 0xc935b761, 0xc43eb968, 0xe70f9357, 0xea049d5e, 0xfd198f45, 0xf012814c, 0x6bcb3bab, 0x66c035a2, 0x71dd27b9, 0x7cd629b0, 0x5fe7038f, 0x52ec0d86, 0x45f11f9d, 0x48fa1194, 0x03934be3, 0x0e9845ea, 0x198557f1, 0x148e59f8, 0x37bf73c7, 0x3ab47dce, 0x2da96fd5, 0x20a261dc, 0x6df6ad76, 0x60fda37f, 0x77e0b164, 0x7aebbf6d, 0x59da9552, 0x54d19b5b, 0x43cc8940, 0x4ec78749, 0x05aedd3e, 0x08a5d337, 0x1fb8c12c, 0x12b3cf25, 0x3182e51a, 0x3c89eb13, 0x2b94f908, 0x269ff701, 0xbd464de6, 0xb04d43ef, 0xa75051f4, 0xaa5b5ffd, 0x896a75c2, 0x84617bcb, 0x937c69d0, 0x9e7767d9, 0xd51e3dae, 0xd81533a7, 0xcf0821bc, 0xc2032fb5, 0xe132058a, 0xec390b83, 0xfb241998, 0xf62f1791, 0xd68d764d, 0xdb867844, 0xcc9b6a5f, 0xc1906456, 0xe2a14e69, 0xefaa4060, 0xf8b7527b, 0xf5bc5c72, 0xbed50605, 0xb3de080c, 0xa4c31a17, 0xa9c8141e, 0x8af93e21, 0x87f23028, 0x90ef2233, 0x9de42c3a, 0x063d96dd, 0x0b3698d4, 0x1c2b8acf, 0x112084c6, 0x3211aef9, 0x3f1aa0f0, 0x2807b2eb, 0x250cbce2, 0x6e65e695, 0x636ee89c, 0x7473fa87, 0x7978f48e, 0x5a49deb1, 0x5742d0b8, 0x405fc2a3, 0x4d54ccaa, 0xdaf741ec, 0xd7fc4fe5, 0xc0e15dfe, 0xcdea53f7, 0xeedb79c8, 0xe3d077c1, 0xf4cd65da, 0xf9c66bd3, 0xb2af31a4, 0xbfa43fad, 0xa8b92db6, 0xa5b223bf, 0x86830980, 0x8b880789, 0x9c951592, 0x919e1b9b, 0x0a47a17c, 0x074caf75, 0x1051bd6e, 0x1d5ab367, 0x3e6b9958, 0x33609751, 0x247d854a, 0x29768b43, 0x621fd134, 0x6f14df3d, 0x7809cd26, 0x7502c32f, 0x5633e910, 0x5b38e719, 0x4c25f502, 0x412efb0b, 0x618c9ad7, 0x6c8794de, 0x7b9a86c5, 0x769188cc, 0x55a0a2f3, 0x58abacfa, 0x4fb6bee1, 0x42bdb0e8, 0x09d4ea9f, 0x04dfe496, 0x13c2f68d, 0x1ec9f884, 0x3df8d2bb, 0x30f3dcb2, 0x27eecea9, 0x2ae5c0a0, 0xb13c7a47, 0xbc37744e, 0xab2a6655, 0xa621685c, 0x85104263, 0x881b4c6a, 0x9f065e71, 0x920d5078, 0xd9640a0f, 0xd46f0406, 0xc372161d, 0xce791814, 0xed48322b, 0xe0433c22, 0xf75e2e39, 0xfa552030, 0xb701ec9a, 0xba0ae293, 0xad17f088, 0xa01cfe81, 0x832dd4be, 0x8e26dab7, 0x993bc8ac, 0x9430c6a5, 0xdf599cd2, 0xd25292db, 0xc54f80c0, 0xc8448ec9, 0xeb75a4f6, 0xe67eaaff, 0xf163b8e4, 0xfc68b6ed, 0x67b10c0a, 0x6aba0203, 0x7da71018, 0x70ac1e11, 0x539d342e, 0x5e963a27, 0x498b283c, 0x44802635, 0x0fe97c42, 0x02e2724b, 0x15ff6050, 0x18f46e59, 0x3bc54466, 0x36ce4a6f, 0x21d35874, 0x2cd8567d, 0x0c7a37a1, 0x017139a8, 0x166c2bb3, 0x1b6725ba, 0x38560f85, 0x355d018c, 0x22401397, 0x2f4b1d9e, 0x642247e9, 0x692949e0, 0x7e345bfb, 0x733f55f2, 0x500e7fcd, 0x5d0571c4, 0x4a1863df, 0x47136dd6, 0xdccad731, 0xd1c1d938, 0xc6dccb23, 0xcbd7c52a, 0xe8e6ef15, 0xe5ede11c, 0xf2f0f307, 0xfffbfd0e, 0xb492a779, 0xb999a970, 0xae84bb6b, 0xa38fb562, 0x80be9f5d, 0x8db59154, 0x9aa8834f, 0x97a38d46];\n var U4 = [0x00000000, 0x090d0b0e, 0x121a161c, 0x1b171d12, 0x24342c38, 0x2d392736, 0x362e3a24, 0x3f23312a, 0x48685870, 0x4165537e, 0x5a724e6c, 0x537f4562, 0x6c5c7448, 0x65517f46, 0x7e466254, 0x774b695a, 0x90d0b0e0, 0x99ddbbee, 0x82caa6fc, 0x8bc7adf2, 0xb4e49cd8, 0xbde997d6, 0xa6fe8ac4, 0xaff381ca, 0xd8b8e890, 0xd1b5e39e, 0xcaa2fe8c, 0xc3aff582, 0xfc8cc4a8, 0xf581cfa6, 0xee96d2b4, 0xe79bd9ba, 0x3bbb7bdb, 0x32b670d5, 0x29a16dc7, 0x20ac66c9, 0x1f8f57e3, 0x16825ced, 0x0d9541ff, 0x04984af1, 0x73d323ab, 0x7ade28a5, 0x61c935b7, 0x68c43eb9, 0x57e70f93, 0x5eea049d, 0x45fd198f, 0x4cf01281, 0xab6bcb3b, 0xa266c035, 0xb971dd27, 0xb07cd629, 0x8f5fe703, 0x8652ec0d, 0x9d45f11f, 0x9448fa11, 0xe303934b, 0xea0e9845, 0xf1198557, 0xf8148e59, 0xc737bf73, 0xce3ab47d, 0xd52da96f, 0xdc20a261, 0x766df6ad, 0x7f60fda3, 0x6477e0b1, 0x6d7aebbf, 0x5259da95, 0x5b54d19b, 0x4043cc89, 0x494ec787, 0x3e05aedd, 0x3708a5d3, 0x2c1fb8c1, 0x2512b3cf, 0x1a3182e5, 0x133c89eb, 0x082b94f9, 0x01269ff7, 0xe6bd464d, 0xefb04d43, 0xf4a75051, 0xfdaa5b5f, 0xc2896a75, 0xcb84617b, 0xd0937c69, 0xd99e7767, 0xaed51e3d, 0xa7d81533, 0xbccf0821, 0xb5c2032f, 0x8ae13205, 0x83ec390b, 0x98fb2419, 0x91f62f17, 0x4dd68d76, 0x44db8678, 0x5fcc9b6a, 0x56c19064, 0x69e2a14e, 0x60efaa40, 0x7bf8b752, 0x72f5bc5c, 0x05bed506, 0x0cb3de08, 0x17a4c31a, 0x1ea9c814, 0x218af93e, 0x2887f230, 0x3390ef22, 0x3a9de42c, 0xdd063d96, 0xd40b3698, 0xcf1c2b8a, 0xc6112084, 0xf93211ae, 0xf03f1aa0, 0xeb2807b2, 0xe2250cbc, 0x956e65e6, 0x9c636ee8, 0x877473fa, 0x8e7978f4, 0xb15a49de, 0xb85742d0, 0xa3405fc2, 0xaa4d54cc, 0xecdaf741, 0xe5d7fc4f, 0xfec0e15d, 0xf7cdea53, 0xc8eedb79, 0xc1e3d077, 0xdaf4cd65, 0xd3f9c66b, 0xa4b2af31, 0xadbfa43f, 0xb6a8b92d, 0xbfa5b223, 0x80868309, 0x898b8807, 0x929c9515, 0x9b919e1b, 0x7c0a47a1, 0x75074caf, 0x6e1051bd, 0x671d5ab3, 0x583e6b99, 0x51336097, 0x4a247d85, 0x4329768b, 0x34621fd1, 0x3d6f14df, 0x267809cd, 0x2f7502c3, 0x105633e9, 0x195b38e7, 0x024c25f5, 0x0b412efb, 0xd7618c9a, 0xde6c8794, 0xc57b9a86, 0xcc769188, 0xf355a0a2, 0xfa58abac, 0xe14fb6be, 0xe842bdb0, 0x9f09d4ea, 0x9604dfe4, 0x8d13c2f6, 0x841ec9f8, 0xbb3df8d2, 0xb230f3dc, 0xa927eece, 0xa02ae5c0, 0x47b13c7a, 0x4ebc3774, 0x55ab2a66, 0x5ca62168, 0x63851042, 0x6a881b4c, 0x719f065e, 0x78920d50, 0x0fd9640a, 0x06d46f04, 0x1dc37216, 0x14ce7918, 0x2bed4832, 0x22e0433c, 0x39f75e2e, 0x30fa5520, 0x9ab701ec, 0x93ba0ae2, 0x88ad17f0, 0x81a01cfe, 0xbe832dd4, 0xb78e26da, 0xac993bc8, 0xa59430c6, 0xd2df599c, 0xdbd25292, 0xc0c54f80, 0xc9c8448e, 0xf6eb75a4, 0xffe67eaa, 0xe4f163b8, 0xedfc68b6, 0x0a67b10c, 0x036aba02, 0x187da710, 0x1170ac1e, 0x2e539d34, 0x275e963a, 0x3c498b28, 0x35448026, 0x420fe97c, 0x4b02e272, 0x5015ff60, 0x5918f46e, 0x663bc544, 0x6f36ce4a, 0x7421d358, 0x7d2cd856, 0xa10c7a37, 0xa8017139, 0xb3166c2b, 0xba1b6725, 0x8538560f, 0x8c355d01, 0x97224013, 0x9e2f4b1d, 0xe9642247, 0xe0692949, 0xfb7e345b, 0xf2733f55, 0xcd500e7f, 0xc45d0571, 0xdf4a1863, 0xd647136d, 0x31dccad7, 0x38d1c1d9, 0x23c6dccb, 0x2acbd7c5, 0x15e8e6ef, 0x1ce5ede1, 0x07f2f0f3, 0x0efffbfd, 0x79b492a7, 0x70b999a9, 0x6bae84bb, 0x62a38fb5, 0x5d80be9f, 0x548db591, 0x4f9aa883, 0x4697a38d];\n\n function convertToInt32(bytes) {\n var result = [];\n for (var i = 0; i < bytes.length; i += 4) {\n result.push(\n (bytes[i ] << 24) |\n (bytes[i + 1] << 16) |\n (bytes[i + 2] << 8) |\n bytes[i + 3]\n );\n }\n return result;\n }\n\n var AES = function(key) {\n if (!(this instanceof AES)) {\n throw Error('AES must be instanitated with `new`');\n }\n\n Object.defineProperty(this, 'key', {\n value: coerceArray(key, true)\n });\n\n this._prepare();\n }\n\n\n AES.prototype._prepare = function() {\n\n var rounds = numberOfRounds[this.key.length];\n if (rounds == null) {\n throw new Error('invalid key size (must be 16, 24 or 32 bytes)');\n }\n\n // encryption round keys\n this._Ke = [];\n\n // decryption round keys\n this._Kd = [];\n\n for (var i = 0; i <= rounds; i++) {\n this._Ke.push([0, 0, 0, 0]);\n this._Kd.push([0, 0, 0, 0]);\n }\n\n var roundKeyCount = (rounds + 1) * 4;\n var KC = this.key.length / 4;\n\n // convert the key into ints\n var tk = convertToInt32(this.key);\n\n // copy values into round key arrays\n var index;\n for (var i = 0; i < KC; i++) {\n index = i >> 2;\n this._Ke[index][i % 4] = tk[i];\n this._Kd[rounds - index][i % 4] = tk[i];\n }\n\n // key expansion (fips-197 section 5.2)\n var rconpointer = 0;\n var t = KC, tt;\n while (t < roundKeyCount) {\n tt = tk[KC - 1];\n tk[0] ^= ((S[(tt >> 16) & 0xFF] << 24) ^\n (S[(tt >> 8) & 0xFF] << 16) ^\n (S[ tt & 0xFF] << 8) ^\n S[(tt >> 24) & 0xFF] ^\n (rcon[rconpointer] << 24));\n rconpointer += 1;\n\n // key expansion (for non-256 bit)\n if (KC != 8) {\n for (var i = 1; i < KC; i++) {\n tk[i] ^= tk[i - 1];\n }\n\n // key expansion for 256-bit keys is \"slightly different\" (fips-197)\n } else {\n for (var i = 1; i < (KC / 2); i++) {\n tk[i] ^= tk[i - 1];\n }\n tt = tk[(KC / 2) - 1];\n\n tk[KC / 2] ^= (S[ tt & 0xFF] ^\n (S[(tt >> 8) & 0xFF] << 8) ^\n (S[(tt >> 16) & 0xFF] << 16) ^\n (S[(tt >> 24) & 0xFF] << 24));\n\n for (var i = (KC / 2) + 1; i < KC; i++) {\n tk[i] ^= tk[i - 1];\n }\n }\n\n // copy values into round key arrays\n var i = 0, r, c;\n while (i < KC && t < roundKeyCount) {\n r = t >> 2;\n c = t % 4;\n this._Ke[r][c] = tk[i];\n this._Kd[rounds - r][c] = tk[i++];\n t++;\n }\n }\n\n // inverse-cipher-ify the decryption round key (fips-197 section 5.3)\n for (var r = 1; r < rounds; r++) {\n for (var c = 0; c < 4; c++) {\n tt = this._Kd[r][c];\n this._Kd[r][c] = (U1[(tt >> 24) & 0xFF] ^\n U2[(tt >> 16) & 0xFF] ^\n U3[(tt >> 8) & 0xFF] ^\n U4[ tt & 0xFF]);\n }\n }\n }\n\n AES.prototype.encrypt = function(plaintext) {\n if (plaintext.length != 16) {\n throw new Error('invalid plaintext size (must be 16 bytes)');\n }\n\n var rounds = this._Ke.length - 1;\n var a = [0, 0, 0, 0];\n\n // convert plaintext to (ints ^ key)\n var t = convertToInt32(plaintext);\n for (var i = 0; i < 4; i++) {\n t[i] ^= this._Ke[0][i];\n }\n\n // apply round transforms\n for (var r = 1; r < rounds; r++) {\n for (var i = 0; i < 4; i++) {\n a[i] = (T1[(t[ i ] >> 24) & 0xff] ^\n T2[(t[(i + 1) % 4] >> 16) & 0xff] ^\n T3[(t[(i + 2) % 4] >> 8) & 0xff] ^\n T4[ t[(i + 3) % 4] & 0xff] ^\n this._Ke[r][i]);\n }\n t = a.slice();\n }\n\n // the last round is special\n var result = createArray(16), tt;\n for (var i = 0; i < 4; i++) {\n tt = this._Ke[rounds][i];\n result[4 * i ] = (S[(t[ i ] >> 24) & 0xff] ^ (tt >> 24)) & 0xff;\n result[4 * i + 1] = (S[(t[(i + 1) % 4] >> 16) & 0xff] ^ (tt >> 16)) & 0xff;\n result[4 * i + 2] = (S[(t[(i + 2) % 4] >> 8) & 0xff] ^ (tt >> 8)) & 0xff;\n result[4 * i + 3] = (S[ t[(i + 3) % 4] & 0xff] ^ tt ) & 0xff;\n }\n\n return result;\n }\n\n AES.prototype.decrypt = function(ciphertext) {\n if (ciphertext.length != 16) {\n throw new Error('invalid ciphertext size (must be 16 bytes)');\n }\n\n var rounds = this._Kd.length - 1;\n var a = [0, 0, 0, 0];\n\n // convert plaintext to (ints ^ key)\n var t = convertToInt32(ciphertext);\n for (var i = 0; i < 4; i++) {\n t[i] ^= this._Kd[0][i];\n }\n\n // apply round transforms\n for (var r = 1; r < rounds; r++) {\n for (var i = 0; i < 4; i++) {\n a[i] = (T5[(t[ i ] >> 24) & 0xff] ^\n T6[(t[(i + 3) % 4] >> 16) & 0xff] ^\n T7[(t[(i + 2) % 4] >> 8) & 0xff] ^\n T8[ t[(i + 1) % 4] & 0xff] ^\n this._Kd[r][i]);\n }\n t = a.slice();\n }\n\n // the last round is special\n var result = createArray(16), tt;\n for (var i = 0; i < 4; i++) {\n tt = this._Kd[rounds][i];\n result[4 * i ] = (Si[(t[ i ] >> 24) & 0xff] ^ (tt >> 24)) & 0xff;\n result[4 * i + 1] = (Si[(t[(i + 3) % 4] >> 16) & 0xff] ^ (tt >> 16)) & 0xff;\n result[4 * i + 2] = (Si[(t[(i + 2) % 4] >> 8) & 0xff] ^ (tt >> 8)) & 0xff;\n result[4 * i + 3] = (Si[ t[(i + 1) % 4] & 0xff] ^ tt ) & 0xff;\n }\n\n return result;\n }\n\n\n /**\n * Mode Of Operation - Electonic Codebook (ECB)\n */\n var ModeOfOperationECB = function(key) {\n if (!(this instanceof ModeOfOperationECB)) {\n throw Error('AES must be instanitated with `new`');\n }\n\n this.description = \"Electronic Code Block\";\n this.name = \"ecb\";\n\n this._aes = new AES(key);\n }\n\n ModeOfOperationECB.prototype.encrypt = function(plaintext) {\n plaintext = coerceArray(plaintext);\n\n if ((plaintext.length % 16) !== 0) {\n throw new Error('invalid plaintext size (must be multiple of 16 bytes)');\n }\n\n var ciphertext = createArray(plaintext.length);\n var block = createArray(16);\n\n for (var i = 0; i < plaintext.length; i += 16) {\n copyArray(plaintext, block, 0, i, i + 16);\n block = this._aes.encrypt(block);\n copyArray(block, ciphertext, i);\n }\n\n return ciphertext;\n }\n\n ModeOfOperationECB.prototype.decrypt = function(ciphertext) {\n ciphertext = coerceArray(ciphertext);\n\n if ((ciphertext.length % 16) !== 0) {\n throw new Error('invalid ciphertext size (must be multiple of 16 bytes)');\n }\n\n var plaintext = createArray(ciphertext.length);\n var block = createArray(16);\n\n for (var i = 0; i < ciphertext.length; i += 16) {\n copyArray(ciphertext, block, 0, i, i + 16);\n block = this._aes.decrypt(block);\n copyArray(block, plaintext, i);\n }\n\n return plaintext;\n }\n\n\n /**\n * Mode Of Operation - Cipher Block Chaining (CBC)\n */\n var ModeOfOperationCBC = function(key, iv) {\n if (!(this instanceof ModeOfOperationCBC)) {\n throw Error('AES must be instanitated with `new`');\n }\n\n this.description = \"Cipher Block Chaining\";\n this.name = \"cbc\";\n\n if (!iv) {\n iv = createArray(16);\n\n } else if (iv.length != 16) {\n throw new Error('invalid initialation vector size (must be 16 bytes)');\n }\n\n this._lastCipherblock = coerceArray(iv, true);\n\n this._aes = new AES(key);\n }\n\n ModeOfOperationCBC.prototype.encrypt = function(plaintext) {\n plaintext = coerceArray(plaintext);\n\n if ((plaintext.length % 16) !== 0) {\n throw new Error('invalid plaintext size (must be multiple of 16 bytes)');\n }\n\n var ciphertext = createArray(plaintext.length);\n var block = createArray(16);\n\n for (var i = 0; i < plaintext.length; i += 16) {\n copyArray(plaintext, block, 0, i, i + 16);\n\n for (var j = 0; j < 16; j++) {\n block[j] ^= this._lastCipherblock[j];\n }\n\n this._lastCipherblock = this._aes.encrypt(block);\n copyArray(this._lastCipherblock, ciphertext, i);\n }\n\n return ciphertext;\n }\n\n ModeOfOperationCBC.prototype.decrypt = function(ciphertext) {\n ciphertext = coerceArray(ciphertext);\n\n if ((ciphertext.length % 16) !== 0) {\n throw new Error('invalid ciphertext size (must be multiple of 16 bytes)');\n }\n\n var plaintext = createArray(ciphertext.length);\n var block = createArray(16);\n\n for (var i = 0; i < ciphertext.length; i += 16) {\n copyArray(ciphertext, block, 0, i, i + 16);\n block = this._aes.decrypt(block);\n\n for (var j = 0; j < 16; j++) {\n plaintext[i + j] = block[j] ^ this._lastCipherblock[j];\n }\n\n copyArray(ciphertext, this._lastCipherblock, 0, i, i + 16);\n }\n\n return plaintext;\n }\n\n\n /**\n * Mode Of Operation - Cipher Feedback (CFB)\n */\n var ModeOfOperationCFB = function(key, iv, segmentSize) {\n if (!(this instanceof ModeOfOperationCFB)) {\n throw Error('AES must be instanitated with `new`');\n }\n\n this.description = \"Cipher Feedback\";\n this.name = \"cfb\";\n\n if (!iv) {\n iv = createArray(16);\n\n } else if (iv.length != 16) {\n throw new Error('invalid initialation vector size (must be 16 size)');\n }\n\n if (!segmentSize) { segmentSize = 1; }\n\n this.segmentSize = segmentSize;\n\n this._shiftRegister = coerceArray(iv, true);\n\n this._aes = new AES(key);\n }\n\n ModeOfOperationCFB.prototype.encrypt = function(plaintext) {\n if ((plaintext.length % this.segmentSize) != 0) {\n throw new Error('invalid plaintext size (must be segmentSize bytes)');\n }\n\n var encrypted = coerceArray(plaintext, true);\n\n var xorSegment;\n for (var i = 0; i < encrypted.length; i += this.segmentSize) {\n xorSegment = this._aes.encrypt(this._shiftRegister);\n for (var j = 0; j < this.segmentSize; j++) {\n encrypted[i + j] ^= xorSegment[j];\n }\n\n // Shift the register\n copyArray(this._shiftRegister, this._shiftRegister, 0, this.segmentSize);\n copyArray(encrypted, this._shiftRegister, 16 - this.segmentSize, i, i + this.segmentSize);\n }\n\n return encrypted;\n }\n\n ModeOfOperationCFB.prototype.decrypt = function(ciphertext) {\n if ((ciphertext.length % this.segmentSize) != 0) {\n throw new Error('invalid ciphertext size (must be segmentSize bytes)');\n }\n\n var plaintext = coerceArray(ciphertext, true);\n\n var xorSegment;\n for (var i = 0; i < plaintext.length; i += this.segmentSize) {\n xorSegment = this._aes.encrypt(this._shiftRegister);\n\n for (var j = 0; j < this.segmentSize; j++) {\n plaintext[i + j] ^= xorSegment[j];\n }\n\n // Shift the register\n copyArray(this._shiftRegister, this._shiftRegister, 0, this.segmentSize);\n copyArray(ciphertext, this._shiftRegister, 16 - this.segmentSize, i, i + this.segmentSize);\n }\n\n return plaintext;\n }\n\n /**\n * Mode Of Operation - Output Feedback (OFB)\n */\n var ModeOfOperationOFB = function(key, iv) {\n if (!(this instanceof ModeOfOperationOFB)) {\n throw Error('AES must be instanitated with `new`');\n }\n\n this.description = \"Output Feedback\";\n this.name = \"ofb\";\n\n if (!iv) {\n iv = createArray(16);\n\n } else if (iv.length != 16) {\n throw new Error('invalid initialation vector size (must be 16 bytes)');\n }\n\n this._lastPrecipher = coerceArray(iv, true);\n this._lastPrecipherIndex = 16;\n\n this._aes = new AES(key);\n }\n\n ModeOfOperationOFB.prototype.encrypt = function(plaintext) {\n var encrypted = coerceArray(plaintext, true);\n\n for (var i = 0; i < encrypted.length; i++) {\n if (this._lastPrecipherIndex === 16) {\n this._lastPrecipher = this._aes.encrypt(this._lastPrecipher);\n this._lastPrecipherIndex = 0;\n }\n encrypted[i] ^= this._lastPrecipher[this._lastPrecipherIndex++];\n }\n\n return encrypted;\n }\n\n // Decryption is symetric\n ModeOfOperationOFB.prototype.decrypt = ModeOfOperationOFB.prototype.encrypt;\n\n\n /**\n * Counter object for CTR common mode of operation\n */\n var Counter = function(initialValue) {\n if (!(this instanceof Counter)) {\n throw Error('Counter must be instanitated with `new`');\n }\n\n // We allow 0, but anything false-ish uses the default 1\n if (initialValue !== 0 && !initialValue) { initialValue = 1; }\n\n if (typeof(initialValue) === 'number') {\n this._counter = createArray(16);\n this.setValue(initialValue);\n\n } else {\n this.setBytes(initialValue);\n }\n }\n\n Counter.prototype.setValue = function(value) {\n if (typeof(value) !== 'number' || parseInt(value) != value) {\n throw new Error('invalid counter value (must be an integer)');\n }\n\n for (var index = 15; index >= 0; --index) {\n this._counter[index] = value % 256;\n value = value >> 8;\n }\n }\n\n Counter.prototype.setBytes = function(bytes) {\n bytes = coerceArray(bytes, true);\n\n if (bytes.length != 16) {\n throw new Error('invalid counter bytes size (must be 16 bytes)');\n }\n\n this._counter = bytes;\n };\n\n Counter.prototype.increment = function() {\n for (var i = 15; i >= 0; i--) {\n if (this._counter[i] === 255) {\n this._counter[i] = 0;\n } else {\n this._counter[i]++;\n break;\n }\n }\n }\n\n\n /**\n * Mode Of Operation - Counter (CTR)\n */\n var ModeOfOperationCTR = function(key, counter) {\n if (!(this instanceof ModeOfOperationCTR)) {\n throw Error('AES must be instanitated with `new`');\n }\n\n this.description = \"Counter\";\n this.name = \"ctr\";\n\n if (!(counter instanceof Counter)) {\n counter = new Counter(counter)\n }\n\n this._counter = counter;\n\n this._remainingCounter = null;\n this._remainingCounterIndex = 16;\n\n this._aes = new AES(key);\n }\n\n ModeOfOperationCTR.prototype.encrypt = function(plaintext) {\n var encrypted = coerceArray(plaintext, true);\n\n for (var i = 0; i < encrypted.length; i++) {\n if (this._remainingCounterIndex === 16) {\n this._remainingCounter = this._aes.encrypt(this._counter._counter);\n this._remainingCounterIndex = 0;\n this._counter.increment();\n }\n encrypted[i] ^= this._remainingCounter[this._remainingCounterIndex++];\n }\n\n return encrypted;\n }\n\n // Decryption is symetric\n ModeOfOperationCTR.prototype.decrypt = ModeOfOperationCTR.prototype.encrypt;\n\n\n ///////////////////////\n // Padding\n\n // See:https://tools.ietf.org/html/rfc2315\n function pkcs7pad(data) {\n data = coerceArray(data, true);\n var padder = 16 - (data.length % 16);\n var result = createArray(data.length + padder);\n copyArray(data, result);\n for (var i = data.length; i < result.length; i++) {\n result[i] = padder;\n }\n return result;\n }\n\n function pkcs7strip(data) {\n data = coerceArray(data, true);\n if (data.length < 16) { throw new Error('PKCS#7 invalid length'); }\n\n var padder = data[data.length - 1];\n if (padder > 16) { throw new Error('PKCS#7 padding byte out of range'); }\n\n var length = data.length - padder;\n for (var i = 0; i < padder; i++) {\n if (data[length + i] !== padder) {\n throw new Error('PKCS#7 invalid padding byte');\n }\n }\n\n var result = createArray(length);\n copyArray(data, result, 0, 0, length);\n return result;\n }\n\n ///////////////////////\n // Exporting\n\n\n // The block cipher\n var aesjs = {\n AES: AES,\n Counter: Counter,\n\n ModeOfOperation: {\n ecb: ModeOfOperationECB,\n cbc: ModeOfOperationCBC,\n cfb: ModeOfOperationCFB,\n ofb: ModeOfOperationOFB,\n ctr: ModeOfOperationCTR\n },\n\n utils: {\n hex: convertHex,\n utf8: convertUtf8\n },\n\n padding: {\n pkcs7: {\n pad: pkcs7pad,\n strip: pkcs7strip\n }\n },\n\n _arrayTest: {\n coerceArray: coerceArray,\n createArray: createArray,\n copyArray: copyArray,\n }\n };\n\n\n // node.js\n if (typeof exports !== 'undefined') {\n module.exports = aesjs\n\n // RequireJS/AMD\n // http://www.requirejs.org/docs/api.html\n // https://github.com/amdjs/amdjs-api/wiki/AMD\n } else if (typeof(define) === 'function' && define.amd) {\n define(aesjs);\n\n // Web Browsers\n } else {\n\n // If there was an existing library at \"aesjs\" make sure it's still available\n if (root.aesjs) {\n aesjs._aesjs = root.aesjs;\n }\n\n root.aesjs = aesjs;\n }\n\n\n})(this);\n", "export const version = \"json-wallets/5.7.0\";\n", "\"use strict\";\n\nimport { arrayify, Bytes, BytesLike, hexlify } from \"@ethersproject/bytes\";\nimport { toUtf8Bytes, UnicodeNormalizationForm } from '@ethersproject/strings';\n\nexport function looseArrayify(hexString: string): Uint8Array {\n if (typeof(hexString) === 'string' && hexString.substring(0, 2) !== '0x') {\n hexString = '0x' + hexString;\n }\n return arrayify(hexString);\n}\n\nexport function zpad(value: String | number, length: number): String {\n value = String(value);\n while (value.length < length) { value = '0' + value; }\n return value;\n}\n\nexport function getPassword(password: Bytes | string): Uint8Array {\n if (typeof(password) === 'string') {\n return toUtf8Bytes(password, UnicodeNormalizationForm.NFKC);\n }\n return arrayify(password);\n}\n\nexport function searchPath(object: any, path: string): string {\n let currentChild = object;\n\n const comps = path.toLowerCase().split('/');\n for (let i = 0; i < comps.length; i++) {\n\n // Search for a child object with a case-insensitive matching key\n let matchingChild = null;\n for (const key in currentChild) {\n if (key.toLowerCase() === comps[i]) {\n matchingChild = currentChild[key];\n break;\n }\n }\n\n // Didn't find one. :'(\n if (matchingChild === null) {\n return null;\n }\n\n // Now check this child...\n currentChild = matchingChild;\n }\n\n return currentChild;\n}\n\n// See: https://www.ietf.org/rfc/rfc4122.txt (Section 4.4)\nexport function uuidV4(randomBytes: BytesLike): string {\n const bytes = arrayify(randomBytes);\n\n // Section: 4.1.3:\n // - time_hi_and_version[12:16] = 0b0100\n bytes[6] = (bytes[6] & 0x0f) | 0x40;\n\n // Section 4.4\n // - clock_seq_hi_and_reserved[6] = 0b0\n // - clock_seq_hi_and_reserved[7] = 0b1\n bytes[8] = (bytes[8] & 0x3f) | 0x80;\n\n const value = hexlify(bytes);\n\n return [\n value.substring(2, 10),\n value.substring(10, 14),\n value.substring(14, 18),\n value.substring(18, 22),\n value.substring(22, 34),\n ].join(\"-\");\n}\n\n", "\"use strict\";\n\nimport aes from \"aes-js\";\n\nimport { ExternallyOwnedAccount } from \"@ethersproject/abstract-signer\";\nimport { getAddress } from \"@ethersproject/address\";\nimport { arrayify, Bytes } from \"@ethersproject/bytes\";\nimport { keccak256 } from \"@ethersproject/keccak256\";\nimport { pbkdf2 } from \"@ethersproject/pbkdf2\";\nimport { toUtf8Bytes } from \"@ethersproject/strings\";\nimport { Description } from \"@ethersproject/properties\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\nimport { getPassword, looseArrayify, searchPath } from \"./utils\";\n\nexport interface _CrowdsaleAccount {\n address: string;\n privateKey: string;\n\n _isCrowdsaleAccount: boolean;\n}\n\nexport class CrowdsaleAccount extends Description<_CrowdsaleAccount> implements ExternallyOwnedAccount {\n readonly address: string;\n readonly privateKey: string;\n readonly mnemonic?: string;\n readonly path?: string;\n\n readonly _isCrowdsaleAccount: boolean;\n\n isCrowdsaleAccount(value: any): value is CrowdsaleAccount {\n return !!(value && value._isCrowdsaleAccount);\n }\n}\n\n// See: https://github.com/ethereum/pyethsaletool\nexport function decrypt(json: string, password: Bytes | string): ExternallyOwnedAccount {\n const data = JSON.parse(json);\n\n password = getPassword(password);\n\n // Ethereum Address\n const ethaddr = getAddress(searchPath(data, \"ethaddr\"));\n\n // Encrypted Seed\n const encseed = looseArrayify(searchPath(data, \"encseed\"));\n if (!encseed || (encseed.length % 16) !== 0) {\n logger.throwArgumentError(\"invalid encseed\", \"json\", json);\n }\n\n const key = arrayify(pbkdf2(password, password, 2000, 32, \"sha256\")).slice(0, 16);\n\n const iv = encseed.slice(0, 16);\n const encryptedSeed = encseed.slice(16);\n\n // Decrypt the seed\n const aesCbc = new aes.ModeOfOperation.cbc(key, iv);\n const seed = aes.padding.pkcs7.strip(arrayify(aesCbc.decrypt(encryptedSeed)));\n\n // This wallet format is weird... Convert the binary encoded hex to a string.\n let seedHex = \"\";\n for (let i = 0; i < seed.length; i++) {\n seedHex += String.fromCharCode(seed[i]);\n }\n\n const seedHexBytes = toUtf8Bytes(seedHex);\n\n const privateKey = keccak256(seedHexBytes);\n\n return new CrowdsaleAccount ({\n _isCrowdsaleAccount: true,\n address: ethaddr,\n privateKey: privateKey\n });\n}\n\n", "\"use strict\";\n\nimport { getAddress } from \"@ethersproject/address\";\n\n\nexport function isCrowdsaleWallet(json: string): boolean {\n let data: any = null;\n try {\n data = JSON.parse(json);\n } catch (error) { return false; }\n\n return (data.encseed && data.ethaddr);\n}\n\nexport function isKeystoreWallet(json: string): boolean {\n let data: any = null;\n try {\n data = JSON.parse(json);\n } catch (error) { return false; }\n\n if (!data.version || parseInt(data.version) !== data.version || parseInt(data.version) !== 3) {\n return false;\n }\n\n // @TODO: Put more checks to make sure it has kdf, iv and all that good stuff\n return true;\n}\n\n//export function isJsonWallet(json: string): boolean {\n// return (isSecretStorageWallet(json) || isCrowdsaleWallet(json));\n//}\n\nexport function getJsonWalletAddress(json: string): string {\n if (isCrowdsaleWallet(json)) {\n try {\n return getAddress(JSON.parse(json).ethaddr);\n } catch (error) { return null; }\n }\n\n if (isKeystoreWallet(json)) {\n try {\n return getAddress(JSON.parse(json).address);\n } catch (error) { return null; }\n }\n\n return null;\n}\n\n", "\"use strict\";\n\n(function(root) {\n const MAX_VALUE = 0x7fffffff;\n\n // The SHA256 and PBKDF2 implementation are from scrypt-async-js:\n // See: https://github.com/dchest/scrypt-async-js\n function SHA256(m) {\n const K = new Uint32Array([\n 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b,\n 0x59f111f1, 0x923f82a4, 0xab1c5ed5, 0xd807aa98, 0x12835b01,\n 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7,\n 0xc19bf174, 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc,\n 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da, 0x983e5152,\n 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147,\n 0x06ca6351, 0x14292967, 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc,\n 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,\n 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819,\n 0xd6990624, 0xf40e3585, 0x106aa070, 0x19a4c116, 0x1e376c08,\n 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f,\n 0x682e6ff3, 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208,\n 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2\n ]);\n\n let h0 = 0x6a09e667, h1 = 0xbb67ae85, h2 = 0x3c6ef372, h3 = 0xa54ff53a;\n let h4 = 0x510e527f, h5 = 0x9b05688c, h6 = 0x1f83d9ab, h7 = 0x5be0cd19;\n const w = new Uint32Array(64);\n\n function blocks(p) {\n let off = 0, len = p.length;\n while (len >= 64) {\n let a = h0, b = h1, c = h2, d = h3, e = h4, f = h5, g = h6, h = h7, u, i, j, t1, t2;\n\n for (i = 0; i < 16; i++) {\n j = off + i*4;\n w[i] = ((p[j] & 0xff)<<24) | ((p[j+1] & 0xff)<<16) |\n ((p[j+2] & 0xff)<<8) | (p[j+3] & 0xff);\n }\n\n for (i = 16; i < 64; i++) {\n u = w[i-2];\n t1 = ((u>>>17) | (u<<(32-17))) ^ ((u>>>19) | (u<<(32-19))) ^ (u>>>10);\n\n u = w[i-15];\n t2 = ((u>>>7) | (u<<(32-7))) ^ ((u>>>18) | (u<<(32-18))) ^ (u>>>3);\n\n w[i] = (((t1 + w[i-7]) | 0) + ((t2 + w[i-16]) | 0)) | 0;\n }\n\n for (i = 0; i < 64; i++) {\n t1 = ((((((e>>>6) | (e<<(32-6))) ^ ((e>>>11) | (e<<(32-11))) ^\n ((e>>>25) | (e<<(32-25)))) + ((e & f) ^ (~e & g))) | 0) +\n ((h + ((K[i] + w[i]) | 0)) | 0)) | 0;\n\n t2 = ((((a>>>2) | (a<<(32-2))) ^ ((a>>>13) | (a<<(32-13))) ^\n ((a>>>22) | (a<<(32-22)))) + ((a & b) ^ (a & c) ^ (b & c))) | 0;\n\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\n h0 = (h0 + a) | 0;\n h1 = (h1 + b) | 0;\n h2 = (h2 + c) | 0;\n h3 = (h3 + d) | 0;\n h4 = (h4 + e) | 0;\n h5 = (h5 + f) | 0;\n h6 = (h6 + g) | 0;\n h7 = (h7 + h) | 0;\n\n off += 64;\n len -= 64;\n }\n }\n\n blocks(m);\n\n let i, bytesLeft = m.length % 64,\n bitLenHi = (m.length / 0x20000000) | 0,\n bitLenLo = m.length << 3,\n numZeros = (bytesLeft < 56) ? 56 : 120,\n p = m.slice(m.length - bytesLeft, m.length);\n\n p.push(0x80);\n for (i = bytesLeft + 1; i < numZeros; i++) { p.push(0); }\n p.push((bitLenHi >>> 24) & 0xff);\n p.push((bitLenHi >>> 16) & 0xff);\n p.push((bitLenHi >>> 8) & 0xff);\n p.push((bitLenHi >>> 0) & 0xff);\n p.push((bitLenLo >>> 24) & 0xff);\n p.push((bitLenLo >>> 16) & 0xff);\n p.push((bitLenLo >>> 8) & 0xff);\n p.push((bitLenLo >>> 0) & 0xff);\n\n blocks(p);\n\n return [\n (h0 >>> 24) & 0xff, (h0 >>> 16) & 0xff, (h0 >>> 8) & 0xff, (h0 >>> 0) & 0xff,\n (h1 >>> 24) & 0xff, (h1 >>> 16) & 0xff, (h1 >>> 8) & 0xff, (h1 >>> 0) & 0xff,\n (h2 >>> 24) & 0xff, (h2 >>> 16) & 0xff, (h2 >>> 8) & 0xff, (h2 >>> 0) & 0xff,\n (h3 >>> 24) & 0xff, (h3 >>> 16) & 0xff, (h3 >>> 8) & 0xff, (h3 >>> 0) & 0xff,\n (h4 >>> 24) & 0xff, (h4 >>> 16) & 0xff, (h4 >>> 8) & 0xff, (h4 >>> 0) & 0xff,\n (h5 >>> 24) & 0xff, (h5 >>> 16) & 0xff, (h5 >>> 8) & 0xff, (h5 >>> 0) & 0xff,\n (h6 >>> 24) & 0xff, (h6 >>> 16) & 0xff, (h6 >>> 8) & 0xff, (h6 >>> 0) & 0xff,\n (h7 >>> 24) & 0xff, (h7 >>> 16) & 0xff, (h7 >>> 8) & 0xff, (h7 >>> 0) & 0xff\n ];\n }\n\n function PBKDF2_HMAC_SHA256_OneIter(password, salt, dkLen) {\n // compress password if it's longer than hash block length\n password = (password.length <= 64) ? password : SHA256(password);\n\n const innerLen = 64 + salt.length + 4;\n const inner = new Array(innerLen);\n const outerKey = new Array(64);\n\n let i;\n let dk = [];\n\n // inner = (password ^ ipad) || salt || counter\n for (i = 0; i < 64; i++) { inner[i] = 0x36; }\n for (i = 0; i < password.length; i++) { inner[i] ^= password[i]; }\n for (i = 0; i < salt.length; i++) { inner[64 + i] = salt[i]; }\n for (i = innerLen - 4; i < innerLen; i++) { inner[i] = 0; }\n\n // outerKey = password ^ opad\n for (i = 0; i < 64; i++) outerKey[i] = 0x5c;\n for (i = 0; i < password.length; i++) outerKey[i] ^= password[i];\n\n // increments counter inside inner\n function incrementCounter() {\n for (let i = innerLen - 1; i >= innerLen - 4; i--) {\n inner[i]++;\n if (inner[i] <= 0xff) return;\n inner[i] = 0;\n }\n }\n\n // output blocks = SHA256(outerKey || SHA256(inner)) ...\n while (dkLen >= 32) {\n incrementCounter();\n dk = dk.concat(SHA256(outerKey.concat(SHA256(inner))));\n dkLen -= 32;\n }\n if (dkLen > 0) {\n incrementCounter();\n dk = dk.concat(SHA256(outerKey.concat(SHA256(inner))).slice(0, dkLen));\n }\n\n return dk;\n }\n\n // The following is an adaptation of scryptsy\n // See: https://www.npmjs.com/package/scryptsy\n function blockmix_salsa8(BY, Yi, r, x, _X) {\n let i;\n\n arraycopy(BY, (2 * r - 1) * 16, _X, 0, 16);\n for (i = 0; i < 2 * r; i++) {\n blockxor(BY, i * 16, _X, 16);\n salsa20_8(_X, x);\n arraycopy(_X, 0, BY, Yi + (i * 16), 16);\n }\n\n for (i = 0; i < r; i++) {\n arraycopy(BY, Yi + (i * 2) * 16, BY, (i * 16), 16);\n }\n\n for (i = 0; i < r; i++) {\n arraycopy(BY, Yi + (i * 2 + 1) * 16, BY, (i + r) * 16, 16);\n }\n }\n\n function R(a, b) {\n return (a << b) | (a >>> (32 - b));\n }\n\n function salsa20_8(B, x) {\n arraycopy(B, 0, x, 0, 16);\n\n for (let i = 8; i > 0; i -= 2) {\n x[ 4] ^= R(x[ 0] + x[12], 7);\n x[ 8] ^= R(x[ 4] + x[ 0], 9);\n x[12] ^= R(x[ 8] + x[ 4], 13);\n x[ 0] ^= R(x[12] + x[ 8], 18);\n x[ 9] ^= R(x[ 5] + x[ 1], 7);\n x[13] ^= R(x[ 9] + x[ 5], 9);\n x[ 1] ^= R(x[13] + x[ 9], 13);\n x[ 5] ^= R(x[ 1] + x[13], 18);\n x[14] ^= R(x[10] + x[ 6], 7);\n x[ 2] ^= R(x[14] + x[10], 9);\n x[ 6] ^= R(x[ 2] + x[14], 13);\n x[10] ^= R(x[ 6] + x[ 2], 18);\n x[ 3] ^= R(x[15] + x[11], 7);\n x[ 7] ^= R(x[ 3] + x[15], 9);\n x[11] ^= R(x[ 7] + x[ 3], 13);\n x[15] ^= R(x[11] + x[ 7], 18);\n x[ 1] ^= R(x[ 0] + x[ 3], 7);\n x[ 2] ^= R(x[ 1] + x[ 0], 9);\n x[ 3] ^= R(x[ 2] + x[ 1], 13);\n x[ 0] ^= R(x[ 3] + x[ 2], 18);\n x[ 6] ^= R(x[ 5] + x[ 4], 7);\n x[ 7] ^= R(x[ 6] + x[ 5], 9);\n x[ 4] ^= R(x[ 7] + x[ 6], 13);\n x[ 5] ^= R(x[ 4] + x[ 7], 18);\n x[11] ^= R(x[10] + x[ 9], 7);\n x[ 8] ^= R(x[11] + x[10], 9);\n x[ 9] ^= R(x[ 8] + x[11], 13);\n x[10] ^= R(x[ 9] + x[ 8], 18);\n x[12] ^= R(x[15] + x[14], 7);\n x[13] ^= R(x[12] + x[15], 9);\n x[14] ^= R(x[13] + x[12], 13);\n x[15] ^= R(x[14] + x[13], 18);\n }\n\n for (let i = 0; i < 16; ++i) {\n B[i] += x[i];\n }\n }\n\n // naive approach... going back to loop unrolling may yield additional performance\n function blockxor(S, Si, D, len) {\n for (let i = 0; i < len; i++) {\n D[i] ^= S[Si + i]\n }\n }\n\n function arraycopy(src, srcPos, dest, destPos, length) {\n while (length--) {\n dest[destPos++] = src[srcPos++];\n }\n }\n\n function checkBufferish(o) {\n if (!o || typeof(o.length) !== 'number') { return false; }\n\n for (let i = 0; i < o.length; i++) {\n const v = o[i];\n if (typeof(v) !== 'number' || v % 1 || v < 0 || v >= 256) {\n return false;\n }\n }\n\n return true;\n }\n\n function ensureInteger(value, name) {\n if (typeof(value) !== \"number\" || (value % 1)) { throw new Error('invalid ' + name); }\n return value;\n }\n\n // N = Cpu cost, r = Memory cost, p = parallelization cost\n // callback(error, progress, key)\n function _scrypt(password, salt, N, r, p, dkLen, callback) {\n\n N = ensureInteger(N, 'N');\n r = ensureInteger(r, 'r');\n p = ensureInteger(p, 'p');\n\n dkLen = ensureInteger(dkLen, 'dkLen');\n\n if (N === 0 || (N & (N - 1)) !== 0) { throw new Error('N must be power of 2'); }\n\n if (N > MAX_VALUE / 128 / r) { throw new Error('N too large'); }\n if (r > MAX_VALUE / 128 / p) { throw new Error('r too large'); }\n\n if (!checkBufferish(password)) {\n throw new Error('password must be an array or buffer');\n }\n password = Array.prototype.slice.call(password);\n\n if (!checkBufferish(salt)) {\n throw new Error('salt must be an array or buffer');\n }\n salt = Array.prototype.slice.call(salt);\n\n let b = PBKDF2_HMAC_SHA256_OneIter(password, salt, p * 128 * r);\n const B = new Uint32Array(p * 32 * r)\n for (let i = 0; i < B.length; i++) {\n const j = i * 4;\n B[i] = ((b[j + 3] & 0xff) << 24) |\n ((b[j + 2] & 0xff) << 16) |\n ((b[j + 1] & 0xff) << 8) |\n ((b[j + 0] & 0xff) << 0);\n }\n\n const XY = new Uint32Array(64 * r);\n const V = new Uint32Array(32 * r * N);\n\n const Yi = 32 * r;\n\n // scratch space\n const x = new Uint32Array(16); // salsa20_8\n const _X = new Uint32Array(16); // blockmix_salsa8\n\n const totalOps = p * N * 2;\n let currentOp = 0;\n let lastPercent10 = null;\n\n // Set this to true to abandon the scrypt on the next step\n let stop = false;\n\n // State information\n let state = 0;\n let i0 = 0, i1;\n let Bi;\n\n // How many blockmix_salsa8 can we do per step?\n const limit = callback ? parseInt(1000 / r): 0xffffffff;\n\n // Trick from scrypt-async; if there is a setImmediate shim in place, use it\n const nextTick = (typeof(setImmediate) !== 'undefined') ? setImmediate : setTimeout;\n\n // This is really all I changed; making scryptsy a state machine so we occasionally\n // stop and give other evnts on the evnt loop a chance to run. ~RicMoo\n const incrementalSMix = function() {\n if (stop) {\n return callback(new Error('cancelled'), currentOp / totalOps);\n }\n\n let steps;\n\n switch (state) {\n case 0:\n // for (var i = 0; i < p; i++)...\n Bi = i0 * 32 * r;\n\n arraycopy(B, Bi, XY, 0, Yi); // ROMix - 1\n\n state = 1; // Move to ROMix 2\n i1 = 0;\n\n // Fall through\n\n case 1:\n\n // Run up to 1000 steps of the first inner smix loop\n steps = N - i1;\n if (steps > limit) { steps = limit; }\n for (let i = 0; i < steps; i++) { // ROMix - 2\n arraycopy(XY, 0, V, (i1 + i) * Yi, Yi) // ROMix - 3\n blockmix_salsa8(XY, Yi, r, x, _X); // ROMix - 4\n }\n\n // for (var i = 0; i < N; i++)\n i1 += steps;\n currentOp += steps;\n\n if (callback) {\n // Call the callback with the progress (optionally stopping us)\n const percent10 = parseInt(1000 * currentOp / totalOps);\n if (percent10 !== lastPercent10) {\n stop = callback(null, currentOp / totalOps);\n if (stop) { break; }\n lastPercent10 = percent10;\n }\n }\n\n if (i1 < N) { break; }\n\n i1 = 0; // Move to ROMix 6\n state = 2;\n\n // Fall through\n\n case 2:\n\n // Run up to 1000 steps of the second inner smix loop\n steps = N - i1;\n if (steps > limit) { steps = limit; }\n for (let i = 0; i < steps; i++) { // ROMix - 6\n const offset = (2 * r - 1) * 16; // ROMix - 7\n const j = XY[offset] & (N - 1);\n blockxor(V, j * Yi, XY, Yi); // ROMix - 8 (inner)\n blockmix_salsa8(XY, Yi, r, x, _X); // ROMix - 9 (outer)\n }\n\n // for (var i = 0; i < N; i++)...\n i1 += steps;\n currentOp += steps;\n\n // Call the callback with the progress (optionally stopping us)\n if (callback) {\n const percent10 = parseInt(1000 * currentOp / totalOps);\n if (percent10 !== lastPercent10) {\n stop = callback(null, currentOp / totalOps);\n if (stop) { break; }\n lastPercent10 = percent10;\n }\n }\n\n if (i1 < N) { break; }\n\n arraycopy(XY, 0, B, Bi, Yi); // ROMix - 10\n\n // for (var i = 0; i < p; i++)...\n i0++;\n if (i0 < p) {\n state = 0;\n break;\n }\n\n b = [];\n for (let i = 0; i < B.length; i++) {\n b.push((B[i] >> 0) & 0xff);\n b.push((B[i] >> 8) & 0xff);\n b.push((B[i] >> 16) & 0xff);\n b.push((B[i] >> 24) & 0xff);\n }\n\n const derivedKey = PBKDF2_HMAC_SHA256_OneIter(password, b, dkLen);\n\n // Send the result to the callback\n if (callback) { callback(null, 1.0, derivedKey); }\n\n // Done; don't break (which would reschedule)\n return derivedKey;\n }\n\n // Schedule the next steps\n if (callback) { nextTick(incrementalSMix); }\n }\n\n // Run the smix state machine until completion\n if (!callback) {\n while (true) {\n const derivedKey = incrementalSMix();\n if (derivedKey != undefined) { return derivedKey; }\n }\n }\n\n // Bootstrap the async incremental smix\n incrementalSMix();\n }\n\n const lib = {\n scrypt: function(password, salt, N, r, p, dkLen, progressCallback) {\n return new Promise(function(resolve, reject) {\n let lastProgress = 0;\n if (progressCallback) { progressCallback(0); }\n _scrypt(password, salt, N, r, p, dkLen, function(error, progress, key) {\n if (error) {\n reject(error);\n } else if (key) {\n if (progressCallback && lastProgress !== 1) {\n progressCallback(1);\n }\n resolve(new Uint8Array(key));\n } else if (progressCallback && progress !== lastProgress) {\n lastProgress = progress;\n return progressCallback(progress);\n }\n });\n });\n },\n syncScrypt: function(password, salt, N, r, p, dkLen) {\n return new Uint8Array(_scrypt(password, salt, N, r, p, dkLen));\n }\n };\n\n // node.js\n if (typeof(exports) !== 'undefined') {\n module.exports = lib;\n\n // RequireJS/AMD\n // http://www.requirejs.org/docs/api.html\n // https://github.com/amdjs/amdjs-api/wiki/AMD\n } else if (typeof(define) === 'function' && define.amd) {\n define(lib);\n\n // Web Browsers\n } else if (root) {\n\n // If there was an existing library \"scrypt\", make sure it is still available\n if (root.scrypt) {\n root._scrypt = root.scrypt;\n }\n\n root.scrypt = lib;\n }\n\n})(this);\n", "\"use strict\";\n\nimport aes from \"aes-js\";\nimport scrypt from \"scrypt-js\";\n\nimport { ExternallyOwnedAccount } from \"@ethersproject/abstract-signer\";\nimport { getAddress } from \"@ethersproject/address\";\nimport { arrayify, Bytes, BytesLike, concat, hexlify } from \"@ethersproject/bytes\";\nimport { defaultPath, entropyToMnemonic, HDNode, Mnemonic, mnemonicToEntropy } from \"@ethersproject/hdnode\";\nimport { keccak256 } from \"@ethersproject/keccak256\";\nimport { pbkdf2 as _pbkdf2 } from \"@ethersproject/pbkdf2\";\nimport { randomBytes } from \"@ethersproject/random\";\nimport { Description } from \"@ethersproject/properties\";\nimport { computeAddress } from \"@ethersproject/transactions\";\n\nimport { getPassword, looseArrayify, searchPath, uuidV4, zpad } from \"./utils\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\n// Exported Types\n\nfunction hasMnemonic(value: any): value is { mnemonic: Mnemonic } {\n return (value != null && value.mnemonic && value.mnemonic.phrase);\n}\n\nexport interface _KeystoreAccount {\n address: string;\n privateKey: string;\n mnemonic?: Mnemonic;\n\n _isKeystoreAccount: boolean;\n}\n\nexport class KeystoreAccount extends Description<_KeystoreAccount> implements ExternallyOwnedAccount {\n readonly address: string;\n readonly privateKey: string;\n readonly mnemonic?: Mnemonic;\n\n readonly _isKeystoreAccount: boolean;\n\n isKeystoreAccount(value: any): value is KeystoreAccount {\n return !!(value && value._isKeystoreAccount);\n }\n}\n\nexport type ProgressCallback = (percent: number) => void;\n\nexport type EncryptOptions = {\n iv?: BytesLike;\n entropy?: BytesLike;\n client?: string;\n salt?: BytesLike;\n uuid?: string;\n scrypt?: {\n N?: number;\n r?: number;\n p?: number;\n }\n}\n\nfunction _decrypt(data: any, key: Uint8Array, ciphertext: Uint8Array): Uint8Array {\n const cipher = searchPath(data, \"crypto/cipher\");\n if (cipher === \"aes-128-ctr\") {\n const iv = looseArrayify(searchPath(data, \"crypto/cipherparams/iv\"))\n const counter = new aes.Counter(iv);\n\n const aesCtr = new aes.ModeOfOperation.ctr(key, counter);\n\n return arrayify(aesCtr.decrypt(ciphertext));\n }\n\n return null;\n}\n\nfunction _getAccount(data: any, key: Uint8Array): KeystoreAccount {\n const ciphertext = looseArrayify(searchPath(data, \"crypto/ciphertext\"));\n\n const computedMAC = hexlify(keccak256(concat([ key.slice(16, 32), ciphertext ]))).substring(2);\n if (computedMAC !== searchPath(data, \"crypto/mac\").toLowerCase()) {\n throw new Error(\"invalid password\");\n }\n\n const privateKey = _decrypt(data, key.slice(0, 16), ciphertext);\n\n if (!privateKey) {\n logger.throwError(\"unsupported cipher\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"decrypt\"\n });\n }\n\n const mnemonicKey = key.slice(32, 64);\n\n const address = computeAddress(privateKey);\n if (data.address) {\n let check = data.address.toLowerCase();\n if (check.substring(0, 2) !== \"0x\") { check = \"0x\" + check; }\n\n if (getAddress(check) !== address) {\n throw new Error(\"address mismatch\");\n }\n }\n\n const account: _KeystoreAccount = {\n _isKeystoreAccount: true,\n address: address,\n privateKey: hexlify(privateKey)\n };\n\n // Version 0.1 x-ethers metadata must contain an encrypted mnemonic phrase\n if (searchPath(data, \"x-ethers/version\") === \"0.1\") {\n const mnemonicCiphertext = looseArrayify(searchPath(data, \"x-ethers/mnemonicCiphertext\"));\n const mnemonicIv = looseArrayify(searchPath(data, \"x-ethers/mnemonicCounter\"));\n\n const mnemonicCounter = new aes.Counter(mnemonicIv);\n const mnemonicAesCtr = new aes.ModeOfOperation.ctr(mnemonicKey, mnemonicCounter);\n\n const path = searchPath(data, \"x-ethers/path\") || defaultPath;\n const locale = searchPath(data, \"x-ethers/locale\") || \"en\";\n\n const entropy = arrayify(mnemonicAesCtr.decrypt(mnemonicCiphertext));\n\n try {\n const mnemonic = entropyToMnemonic(entropy, locale);\n const node = HDNode.fromMnemonic(mnemonic, null, locale).derivePath(path);\n\n if (node.privateKey != account.privateKey) {\n throw new Error(\"mnemonic mismatch\");\n }\n\n account.mnemonic = node.mnemonic;\n\n } catch (error) {\n // If we don't have the locale wordlist installed to\n // read this mnemonic, just bail and don't set the\n // mnemonic\n if (error.code !== Logger.errors.INVALID_ARGUMENT || error.argument !== \"wordlist\") {\n throw error;\n }\n }\n }\n\n return new KeystoreAccount(account);\n}\n\ntype ScryptFunc = (pw: Uint8Array, salt: Uint8Array, n: number, r: number, p: number, dkLen: number, callback?: ProgressCallback) => T;\ntype Pbkdf2Func = (pw: Uint8Array, salt: Uint8Array, c: number, dkLen: number, prfFunc: string) => T;\n\nfunction pbkdf2Sync(passwordBytes: Uint8Array, salt: Uint8Array, count: number, dkLen: number, prfFunc: string): Uint8Array {\n return arrayify(_pbkdf2(passwordBytes, salt, count, dkLen, prfFunc));\n}\n\nfunction pbkdf2(passwordBytes: Uint8Array, salt: Uint8Array, count: number, dkLen: number, prfFunc: string): Promise {\n return Promise.resolve(pbkdf2Sync(passwordBytes, salt, count, dkLen, prfFunc));\n}\n\nfunction _computeKdfKey(data: any, password: Bytes | string, pbkdf2Func: Pbkdf2Func, scryptFunc: ScryptFunc, progressCallback?: ProgressCallback): T {\n const passwordBytes = getPassword(password);\n\n const kdf = searchPath(data, \"crypto/kdf\");\n\n if (kdf && typeof(kdf) === \"string\") {\n const throwError = function(name: string, value: any): never {\n return logger.throwArgumentError(\"invalid key-derivation function parameters\", name, value);\n }\n\n if (kdf.toLowerCase() === \"scrypt\") {\n const salt = looseArrayify(searchPath(data, \"crypto/kdfparams/salt\"));\n const N = parseInt(searchPath(data, \"crypto/kdfparams/n\"));\n const r = parseInt(searchPath(data, \"crypto/kdfparams/r\"));\n const p = parseInt(searchPath(data, \"crypto/kdfparams/p\"));\n\n // Check for all required parameters\n if (!N || !r || !p) { throwError(\"kdf\", kdf); }\n\n // Make sure N is a power of 2\n if ((N & (N - 1)) !== 0) { throwError(\"N\", N); }\n\n const dkLen = parseInt(searchPath(data, \"crypto/kdfparams/dklen\"));\n if (dkLen !== 32) { throwError(\"dklen\", dkLen); }\n\n return scryptFunc(passwordBytes, salt, N, r, p, 64, progressCallback);\n\n } else if (kdf.toLowerCase() === \"pbkdf2\") {\n\n const salt = looseArrayify(searchPath(data, \"crypto/kdfparams/salt\"));\n\n let prfFunc: string = null;\n const prf = searchPath(data, \"crypto/kdfparams/prf\");\n if (prf === \"hmac-sha256\") {\n prfFunc = \"sha256\";\n } else if (prf === \"hmac-sha512\") {\n prfFunc = \"sha512\";\n } else {\n throwError(\"prf\", prf);\n }\n\n const count = parseInt(searchPath(data, \"crypto/kdfparams/c\"));\n\n const dkLen = parseInt(searchPath(data, \"crypto/kdfparams/dklen\"));\n if (dkLen !== 32) { throwError(\"dklen\", dkLen); }\n\n return pbkdf2Func(passwordBytes, salt, count, dkLen, prfFunc);\n }\n }\n\n return logger.throwArgumentError(\"unsupported key-derivation function\", \"kdf\", kdf);\n}\n\n\nexport function decryptSync(json: string, password: Bytes | string): KeystoreAccount {\n const data = JSON.parse(json);\n\n const key = _computeKdfKey(data, password, pbkdf2Sync, scrypt.syncScrypt);\n return _getAccount(data, key);\n}\n\nexport async function decrypt(json: string, password: Bytes | string, progressCallback?: ProgressCallback): Promise {\n const data = JSON.parse(json);\n\n const key = await _computeKdfKey(data, password, pbkdf2, scrypt.scrypt, progressCallback);\n return _getAccount(data, key);\n}\n\n\nexport function encrypt(account: ExternallyOwnedAccount, password: Bytes | string, options?: EncryptOptions, progressCallback?: ProgressCallback): Promise {\n\n try {\n // Check the address matches the private key\n if (getAddress(account.address) !== computeAddress(account.privateKey)) {\n throw new Error(\"address/privateKey mismatch\");\n }\n\n // Check the mnemonic (if any) matches the private key\n if (hasMnemonic(account)) {\n const mnemonic = account.mnemonic;\n const node = HDNode.fromMnemonic(mnemonic.phrase, null, mnemonic.locale).derivePath(mnemonic.path || defaultPath);\n\n if (node.privateKey != account.privateKey) {\n throw new Error(\"mnemonic mismatch\");\n }\n }\n\n } catch (e) {\n return Promise.reject(e);\n }\n\n // The options are optional, so adjust the call as needed\n if (typeof(options) === \"function\" && !progressCallback) {\n progressCallback = options;\n options = {};\n }\n if (!options) { options = {}; }\n\n const privateKey: Uint8Array = arrayify(account.privateKey);\n const passwordBytes = getPassword(password);\n\n let entropy: Uint8Array = null\n let path: string = null;\n let locale: string = null;\n if (hasMnemonic(account)) {\n const srcMnemonic = account.mnemonic;\n entropy = arrayify(mnemonicToEntropy(srcMnemonic.phrase, srcMnemonic.locale || \"en\"));\n path = srcMnemonic.path || defaultPath;\n locale = srcMnemonic.locale || \"en\";\n }\n\n let client = options.client;\n if (!client) { client = \"ethers.js\"; }\n\n // Check/generate the salt\n let salt: Uint8Array = null;\n if (options.salt) {\n salt = arrayify(options.salt);\n } else {\n salt = randomBytes(32);;\n }\n\n // Override initialization vector\n let iv: Uint8Array = null;\n if (options.iv) {\n iv = arrayify(options.iv);\n if (iv.length !== 16) { throw new Error(\"invalid iv\"); }\n } else {\n iv = randomBytes(16);\n }\n\n // Override the uuid\n let uuidRandom: Uint8Array = null;\n if (options.uuid) {\n uuidRandom = arrayify(options.uuid);\n if (uuidRandom.length !== 16) { throw new Error(\"invalid uuid\"); }\n } else {\n uuidRandom = randomBytes(16);\n }\n\n // Override the scrypt password-based key derivation function parameters\n let N = (1 << 17), r = 8, p = 1;\n if (options.scrypt) {\n if (options.scrypt.N) { N = options.scrypt.N; }\n if (options.scrypt.r) { r = options.scrypt.r; }\n if (options.scrypt.p) { p = options.scrypt.p; }\n }\n\n // We take 64 bytes:\n // - 32 bytes As normal for the Web3 secret storage (derivedKey, macPrefix)\n // - 32 bytes AES key to encrypt mnemonic with (required here to be Ethers Wallet)\n return scrypt.scrypt(passwordBytes, salt, N, r, p, 64, progressCallback).then((key) => {\n key = arrayify(key);\n\n // This will be used to encrypt the wallet (as per Web3 secret storage)\n const derivedKey = key.slice(0, 16);\n const macPrefix = key.slice(16, 32);\n\n // This will be used to encrypt the mnemonic phrase (if any)\n const mnemonicKey = key.slice(32, 64);\n\n // Encrypt the private key\n const counter = new aes.Counter(iv);\n const aesCtr = new aes.ModeOfOperation.ctr(derivedKey, counter);\n const ciphertext = arrayify(aesCtr.encrypt(privateKey));\n\n // Compute the message authentication code, used to check the password\n const mac = keccak256(concat([macPrefix, ciphertext]))\n\n // See: https://github.com/ethereum/wiki/wiki/Web3-Secret-Storage-Definition\n const data: { [key: string]: any } = {\n address: account.address.substring(2).toLowerCase(),\n id: uuidV4(uuidRandom),\n version: 3,\n crypto: {\n cipher: \"aes-128-ctr\",\n cipherparams: {\n iv: hexlify(iv).substring(2),\n },\n ciphertext: hexlify(ciphertext).substring(2),\n kdf: \"scrypt\",\n kdfparams: {\n salt: hexlify(salt).substring(2),\n n: N,\n dklen: 32,\n p: p,\n r: r\n },\n mac: mac.substring(2)\n }\n };\n\n // If we have a mnemonic, encrypt it into the JSON wallet\n if (entropy) {\n const mnemonicIv = randomBytes(16);\n const mnemonicCounter = new aes.Counter(mnemonicIv);\n const mnemonicAesCtr = new aes.ModeOfOperation.ctr(mnemonicKey, mnemonicCounter);\n const mnemonicCiphertext = arrayify(mnemonicAesCtr.encrypt(entropy));\n const now = new Date();\n const timestamp = (now.getUTCFullYear() + \"-\" +\n zpad(now.getUTCMonth() + 1, 2) + \"-\" +\n zpad(now.getUTCDate(), 2) + \"T\" +\n zpad(now.getUTCHours(), 2) + \"-\" +\n zpad(now.getUTCMinutes(), 2) + \"-\" +\n zpad(now.getUTCSeconds(), 2) + \".0Z\"\n );\n data[\"x-ethers\"] = {\n client: client,\n gethFilename: (\"UTC--\" + timestamp + \"--\" + data.address),\n mnemonicCounter: hexlify(mnemonicIv).substring(2),\n mnemonicCiphertext: hexlify(mnemonicCiphertext).substring(2),\n path: path,\n locale: locale,\n version: \"0.1\"\n };\n }\n\n return JSON.stringify(data);\n });\n}\n", "\"use strict\";\n\nimport { Bytes } from \"@ethersproject/bytes\";\nimport { ExternallyOwnedAccount } from \"@ethersproject/abstract-signer\";\n\nimport { decrypt as decryptCrowdsale } from \"./crowdsale\";\nimport { getJsonWalletAddress, isCrowdsaleWallet, isKeystoreWallet } from \"./inspect\";\nimport { decrypt as decryptKeystore, decryptSync as decryptKeystoreSync, encrypt as encryptKeystore, EncryptOptions, ProgressCallback } from \"./keystore\";\n\nfunction decryptJsonWallet(json: string, password: Bytes | string, progressCallback?: ProgressCallback): Promise {\n if (isCrowdsaleWallet(json)) {\n if (progressCallback) { progressCallback(0); }\n const account = decryptCrowdsale(json, password)\n if (progressCallback) { progressCallback(1); }\n return Promise.resolve(account);\n }\n\n if (isKeystoreWallet(json)) {\n return decryptKeystore(json, password, progressCallback);\n }\n\n return Promise.reject(new Error(\"invalid JSON wallet\"));\n}\n\nfunction decryptJsonWalletSync(json: string, password: Bytes | string): ExternallyOwnedAccount {\n if (isCrowdsaleWallet(json)) {\n return decryptCrowdsale(json, password)\n }\n\n if (isKeystoreWallet(json)) {\n return decryptKeystoreSync(json, password);\n }\n\n throw new Error(\"invalid JSON wallet\");\n}\n\nexport {\n decryptCrowdsale,\n\n decryptKeystore,\n decryptKeystoreSync,\n encryptKeystore,\n\n isCrowdsaleWallet,\n isKeystoreWallet,\n getJsonWalletAddress,\n\n decryptJsonWallet,\n decryptJsonWalletSync,\n\n ProgressCallback,\n EncryptOptions,\n};\n", "export const version = \"wallet/5.7.0\";\n", "\"use strict\";\n\nimport { getAddress } from \"@ethersproject/address\";\nimport { Provider, TransactionRequest } from \"@ethersproject/abstract-provider\";\nimport { ExternallyOwnedAccount, Signer, TypedDataDomain, TypedDataField, TypedDataSigner } from \"@ethersproject/abstract-signer\";\nimport { arrayify, Bytes, BytesLike, concat, hexDataSlice, isHexString, joinSignature, SignatureLike } from \"@ethersproject/bytes\";\nimport { hashMessage, _TypedDataEncoder } from \"@ethersproject/hash\";\nimport { defaultPath, HDNode, entropyToMnemonic, Mnemonic } from \"@ethersproject/hdnode\";\nimport { keccak256 } from \"@ethersproject/keccak256\";\nimport { defineReadOnly, resolveProperties } from \"@ethersproject/properties\";\nimport { randomBytes } from \"@ethersproject/random\";\nimport { SigningKey } from \"@ethersproject/signing-key\";\nimport { decryptJsonWallet, decryptJsonWalletSync, encryptKeystore, ProgressCallback } from \"@ethersproject/json-wallets\";\nimport { computeAddress, recoverAddress, serialize, UnsignedTransaction } from \"@ethersproject/transactions\";\nimport { Wordlist } from \"@ethersproject/wordlists\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\nfunction isAccount(value: any): value is ExternallyOwnedAccount {\n return (value != null && isHexString(value.privateKey, 32) && value.address != null);\n}\n\nfunction hasMnemonic(value: any): value is { mnemonic: Mnemonic } {\n const mnemonic = value.mnemonic;\n return (mnemonic && mnemonic.phrase);\n}\n\nexport class Wallet extends Signer implements ExternallyOwnedAccount, TypedDataSigner {\n\n readonly address: string;\n readonly provider: Provider;\n\n // Wrapping the _signingKey and _mnemonic in a getter function prevents\n // leaking the private key in console.log; still, be careful! :)\n readonly _signingKey: () => SigningKey;\n readonly _mnemonic: () => Mnemonic;\n\n constructor(privateKey: BytesLike | ExternallyOwnedAccount | SigningKey, provider?: Provider) {\n super();\n\n if (isAccount(privateKey)) {\n const signingKey = new SigningKey(privateKey.privateKey);\n defineReadOnly(this, \"_signingKey\", () => signingKey);\n defineReadOnly(this, \"address\", computeAddress(this.publicKey));\n\n if (this.address !== getAddress(privateKey.address)) {\n logger.throwArgumentError(\"privateKey/address mismatch\", \"privateKey\", \"[REDACTED]\");\n }\n\n if (hasMnemonic(privateKey)) {\n const srcMnemonic = privateKey.mnemonic;\n defineReadOnly(this, \"_mnemonic\", () => (\n {\n phrase: srcMnemonic.phrase,\n path: srcMnemonic.path || defaultPath,\n locale: srcMnemonic.locale || \"en\"\n }\n ));\n const mnemonic = this.mnemonic;\n const node = HDNode.fromMnemonic(mnemonic.phrase, null, mnemonic.locale).derivePath(mnemonic.path);\n if (computeAddress(node.privateKey) !== this.address) {\n logger.throwArgumentError(\"mnemonic/address mismatch\", \"privateKey\", \"[REDACTED]\");\n }\n } else {\n defineReadOnly(this, \"_mnemonic\", (): Mnemonic => null);\n }\n\n\n } else {\n if (SigningKey.isSigningKey(privateKey)) {\n /* istanbul ignore if */\n if (privateKey.curve !== \"secp256k1\") {\n logger.throwArgumentError(\"unsupported curve; must be secp256k1\", \"privateKey\", \"[REDACTED]\");\n }\n defineReadOnly(this, \"_signingKey\", () => (privateKey));\n\n } else {\n // A lot of common tools do not prefix private keys with a 0x (see: #1166)\n if (typeof(privateKey) === \"string\") {\n if (privateKey.match(/^[0-9a-f]*$/i) && privateKey.length === 64) {\n privateKey = \"0x\" + privateKey;\n }\n }\n\n const signingKey = new SigningKey(privateKey);\n defineReadOnly(this, \"_signingKey\", () => signingKey);\n }\n\n defineReadOnly(this, \"_mnemonic\", (): Mnemonic => null);\n defineReadOnly(this, \"address\", computeAddress(this.publicKey));\n }\n\n /* istanbul ignore if */\n if (provider && !Provider.isProvider(provider)) {\n logger.throwArgumentError(\"invalid provider\", \"provider\", provider);\n }\n\n defineReadOnly(this, \"provider\", provider || null);\n }\n\n get mnemonic(): Mnemonic { return this._mnemonic(); }\n get privateKey(): string { return this._signingKey().privateKey; }\n get publicKey(): string { return this._signingKey().publicKey; }\n\n getAddress(): Promise {\n return Promise.resolve(this.address);\n }\n\n connect(provider: Provider): Wallet {\n return new Wallet(this, provider);\n }\n\n signTransaction(transaction: TransactionRequest): Promise {\n return resolveProperties(transaction).then((tx) => {\n if (tx.from != null) {\n if (getAddress(tx.from) !== this.address) {\n logger.throwArgumentError(\"transaction from address mismatch\", \"transaction.from\", transaction.from);\n }\n delete tx.from;\n }\n\n const signature = this._signingKey().signDigest(keccak256(serialize(tx)));\n return serialize(tx, signature);\n });\n }\n\n async signMessage(message: Bytes | string): Promise {\n return joinSignature(this._signingKey().signDigest(hashMessage(message)));\n }\n\n async _signTypedData(domain: TypedDataDomain, types: Record>, value: Record): Promise {\n // Populate any ENS names\n const populated = await _TypedDataEncoder.resolveNames(domain, types, value, (name: string) => {\n if (this.provider == null) {\n logger.throwError(\"cannot resolve ENS names without a provider\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"resolveName\",\n value: name\n });\n }\n return this.provider.resolveName(name);\n });\n\n return joinSignature(this._signingKey().signDigest(_TypedDataEncoder.hash(populated.domain, types, populated.value)));\n }\n\n encrypt(password: Bytes | string, options?: any, progressCallback?: ProgressCallback): Promise {\n if (typeof(options) === \"function\" && !progressCallback) {\n progressCallback = options;\n options = {};\n }\n\n if (progressCallback && typeof(progressCallback) !== \"function\") {\n throw new Error(\"invalid callback\");\n }\n\n if (!options) { options = {}; }\n\n return encryptKeystore(this, password, options, progressCallback);\n }\n\n\n /**\n * Static methods to create Wallet instances.\n */\n static createRandom(options?: any): Wallet {\n let entropy: Uint8Array = randomBytes(16);\n\n if (!options) { options = { }; }\n\n if (options.extraEntropy) {\n entropy = arrayify(hexDataSlice(keccak256(concat([ entropy, options.extraEntropy ])), 0, 16));\n }\n\n const mnemonic = entropyToMnemonic(entropy, options.locale);\n return Wallet.fromMnemonic(mnemonic, options.path, options.locale);\n }\n\n static fromEncryptedJson(json: string, password: Bytes | string, progressCallback?: ProgressCallback): Promise {\n return decryptJsonWallet(json, password, progressCallback).then((account) => {\n return new Wallet(account);\n });\n }\n\n static fromEncryptedJsonSync(json: string, password: Bytes | string): Wallet {\n return new Wallet(decryptJsonWalletSync(json, password));\n }\n\n static fromMnemonic(mnemonic: string, path?: string, wordlist?: Wordlist): Wallet {\n if (!path) { path = defaultPath; }\n return new Wallet(HDNode.fromMnemonic(mnemonic, null, wordlist).derivePath(path));\n }\n}\n\nexport function verifyMessage(message: Bytes | string, signature: SignatureLike): string {\n return recoverAddress(hashMessage(message), signature);\n}\n\nexport function verifyTypedData(domain: TypedDataDomain, types: Record>, value: Record, signature: SignatureLike): string {\n return recoverAddress(_TypedDataEncoder.hash(domain, types, value), signature);\n}\n", "export const version = \"networks/5.7.1\";\n", "\"use strict\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\nimport { Network, Networkish } from \"./types\";\n\nexport {\n Network,\n Networkish\n};\n\ntype DefaultProviderFunc = (providers: any, options?: any) => any;\n\ninterface Renetworkable extends DefaultProviderFunc {\n renetwork: (network: Network) => DefaultProviderFunc;\n};\n\nfunction isRenetworkable(value: any): value is Renetworkable {\n return (value && typeof(value.renetwork) === \"function\");\n}\n\nfunction ethDefaultProvider(network: string | Network): Renetworkable {\n const func = function(providers: any, options?: any): any {\n if (options == null) { options = { }; }\n const providerList: Array = [];\n\n if (providers.InfuraProvider && options.infura !== \"-\") {\n try {\n providerList.push(new providers.InfuraProvider(network, options.infura));\n } catch(error) { }\n }\n\n if (providers.EtherscanProvider && options.etherscan !== \"-\") {\n try {\n providerList.push(new providers.EtherscanProvider(network, options.etherscan));\n } catch(error) { }\n }\n\n if (providers.AlchemyProvider && options.alchemy !== \"-\") {\n try {\n providerList.push(new providers.AlchemyProvider(network, options.alchemy));\n } catch(error) { }\n }\n\n if (providers.PocketProvider && options.pocket !== \"-\") {\n // These networks are currently faulty on Pocket as their\n // network does not handle the Berlin hardfork, which is\n // live on these ones.\n // @TODO: This goes away once Pocket has upgraded their nodes\n const skip = [ \"goerli\", \"ropsten\", \"rinkeby\", \"sepolia\" ];\n try {\n const provider = new providers.PocketProvider(network, options.pocket);\n if (provider.network && skip.indexOf(provider.network.name) === -1) {\n providerList.push(provider);\n }\n } catch(error) { }\n }\n\n if (providers.CloudflareProvider && options.cloudflare !== \"-\") {\n try {\n providerList.push(new providers.CloudflareProvider(network));\n } catch(error) { }\n }\n\n if (providers.AnkrProvider && options.ankr !== \"-\") {\n try {\n const skip = [ \"ropsten\" ];\n const provider = new providers.AnkrProvider(network, options.ankr);\n if (provider.network && skip.indexOf(provider.network.name) === -1) {\n providerList.push(provider);\n }\n } catch(error) { }\n }\n\n if (providerList.length === 0) { return null; }\n\n if (providers.FallbackProvider) {\n let quorum = 1;\n if (options.quorum != null) {\n quorum = options.quorum;\n } else if (network === \"homestead\") {\n quorum = 2;\n }\n return new providers.FallbackProvider(providerList, quorum);\n }\n\n return providerList[0];\n };\n\n func.renetwork = function(network: Network) {\n return ethDefaultProvider(network);\n };\n\n return func;\n}\n\nfunction etcDefaultProvider(url: string, network: string | Network): Renetworkable {\n const func = function(providers: any, options?: any): any {\n if (providers.JsonRpcProvider) {\n return new providers.JsonRpcProvider(url, network);\n }\n\n return null;\n };\n\n func.renetwork = function(network: Network) {\n return etcDefaultProvider(url, network);\n };\n\n return func;\n}\n\nconst homestead: Network = {\n chainId: 1,\n ensAddress: \"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e\",\n name: \"homestead\",\n _defaultProvider: ethDefaultProvider(\"homestead\")\n};\n\nconst ropsten: Network = {\n chainId: 3,\n ensAddress: \"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e\",\n name: \"ropsten\",\n _defaultProvider: ethDefaultProvider(\"ropsten\")\n};\n\nconst classicMordor: Network = {\n chainId: 63,\n name: \"classicMordor\",\n _defaultProvider: etcDefaultProvider(\"https://www.ethercluster.com/mordor\", \"classicMordor\")\n};\n\n// See: https://chainlist.org\nconst networks: { [name: string]: Network } = {\n unspecified: { chainId: 0, name: \"unspecified\" },\n\n homestead: homestead,\n mainnet: homestead,\n\n morden: { chainId: 2, name: \"morden\" },\n\n ropsten: ropsten,\n testnet: ropsten,\n\n rinkeby: {\n chainId: 4,\n ensAddress: \"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e\",\n name: \"rinkeby\",\n _defaultProvider: ethDefaultProvider(\"rinkeby\")\n },\n\n kovan: {\n chainId: 42,\n name: \"kovan\",\n _defaultProvider: ethDefaultProvider(\"kovan\")\n },\n\n goerli: {\n chainId: 5,\n ensAddress: \"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e\",\n name: \"goerli\",\n _defaultProvider: ethDefaultProvider(\"goerli\")\n },\n\n kintsugi: { chainId: 1337702, name: \"kintsugi\" },\n\n sepolia: {\n chainId: 11155111,\n name: \"sepolia\",\n _defaultProvider: ethDefaultProvider(\"sepolia\")\n },\n\n\n // ETC (See: #351)\n classic: {\n chainId: 61,\n name: \"classic\",\n _defaultProvider: etcDefaultProvider(\"https:/\\/www.ethercluster.com/etc\", \"classic\")\n },\n\n classicMorden: { chainId: 62, name: \"classicMorden\" },\n\n classicMordor: classicMordor,\n classicTestnet: classicMordor,\n\n classicKotti: {\n chainId: 6,\n name: \"classicKotti\",\n _defaultProvider: etcDefaultProvider(\"https:/\\/www.ethercluster.com/kotti\", \"classicKotti\")\n },\n\n xdai: { chainId: 100, name: \"xdai\" },\n\n matic: {\n chainId: 137,\n name: \"matic\",\n _defaultProvider: ethDefaultProvider(\"matic\")\n },\n maticmum: { chainId: 80001, name: \"maticmum\" },\n\n optimism: {\n chainId: 10,\n name: \"optimism\",\n _defaultProvider: ethDefaultProvider(\"optimism\")\n },\n \"optimism-kovan\": { chainId: 69, name: \"optimism-kovan\" },\n \"optimism-goerli\": { chainId: 420, name: \"optimism-goerli\" },\n\n arbitrum: { chainId: 42161, name: \"arbitrum\" },\n \"arbitrum-rinkeby\": { chainId: 421611, name: \"arbitrum-rinkeby\" },\n \"arbitrum-goerli\": { chainId: 421613, name: \"arbitrum-goerli\" },\n\n bnb: { chainId: 56, name: \"bnb\" },\n bnbt: { chainId: 97, name: \"bnbt\" },\n}\n\n/**\n * getNetwork\n *\n * Converts a named common networks or chain ID (network ID) to a Network\n * and verifies a network is a valid Network..\n */\nexport function getNetwork(network: Networkish): Network {\n // No network (null)\n if (network == null) { return null; }\n\n if (typeof(network) === \"number\") {\n for (const name in networks) {\n const standard = networks[name];\n if (standard.chainId === network) {\n return {\n name: standard.name,\n chainId: standard.chainId,\n ensAddress: (standard.ensAddress || null),\n _defaultProvider: (standard._defaultProvider || null)\n };\n }\n }\n\n return {\n chainId: network,\n name: \"unknown\"\n };\n }\n\n if (typeof(network) === \"string\") {\n const standard = networks[network];\n if (standard == null) { return null; }\n return {\n name: standard.name,\n chainId: standard.chainId,\n ensAddress: standard.ensAddress,\n _defaultProvider: (standard._defaultProvider || null)\n };\n }\n\n const standard = networks[network.name];\n\n // Not a standard network; check that it is a valid network in general\n if (!standard) {\n if (typeof(network.chainId) !== \"number\") {\n logger.throwArgumentError(\"invalid network chainId\", \"network\", network);\n }\n return network;\n }\n\n // Make sure the chainId matches the expected network chainId (or is 0; disable EIP-155)\n if (network.chainId !== 0 && network.chainId !== standard.chainId) {\n logger.throwArgumentError(\"network chainId mismatch\", \"network\", network);\n }\n\n // @TODO: In the next major version add an attach function to a defaultProvider\n // class and move the _defaultProvider internal to this file (extend Network)\n let defaultProvider: DefaultProviderFunc = network._defaultProvider || null;\n if (defaultProvider == null && standard._defaultProvider) {\n if (isRenetworkable(standard._defaultProvider)) {\n defaultProvider = standard._defaultProvider.renetwork(network);\n } else {\n defaultProvider = standard._defaultProvider;\n }\n }\n\n // Standard Network (allow overriding the ENS address)\n return {\n name: network.name,\n chainId: standard.chainId,\n ensAddress: (network.ensAddress || standard.ensAddress || null),\n _defaultProvider: defaultProvider\n };\n}\n", "export const version = \"web/5.7.1\";\n", "\"use strict\";\n\nimport http from \"http\";\nimport https from \"https\";\nimport { gunzipSync } from \"zlib\";\nimport { parse } from \"url\"\n\nimport { arrayify, concat } from \"@ethersproject/bytes\";\nimport { shallowCopy } from \"@ethersproject/properties\";\n\nimport type { GetUrlResponse, Options } from \"./types\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\nexport { GetUrlResponse, Options };\n\nfunction getResponse(request: http.ClientRequest): Promise {\n return new Promise((resolve, reject) => {\n request.once(\"response\", (resp: http.IncomingMessage) => {\n const response: GetUrlResponse = {\n statusCode: resp.statusCode,\n statusMessage: resp.statusMessage,\n headers: Object.keys(resp.headers).reduce((accum, name) => {\n let value = resp.headers[name];\n if (Array.isArray(value)) {\n value = value.join(\", \");\n }\n accum[name] = value;\n return accum;\n }, <{ [ name: string ]: string }>{ }),\n body: null\n };\n //resp.setEncoding(\"utf8\");\n\n resp.on(\"data\", (chunk: Uint8Array) => {\n if (response.body == null) { response.body = new Uint8Array(0); }\n response.body = concat([ response.body, chunk ]);\n });\n\n resp.on(\"end\", () => {\n if (response.headers[\"content-encoding\"] === \"gzip\") {\n //const size = response.body.length;\n response.body = arrayify(gunzipSync(response.body));\n //console.log(\"Delta:\", response.body.length - size, Buffer.from(response.body).toString());\n }\n resolve(response);\n });\n\n resp.on(\"error\", (error) => {\n /* istanbul ignore next */\n (error).response = response;\n reject(error);\n });\n });\n\n request.on(\"error\", (error) => { reject(error); });\n });\n}\n\n// The URL.parse uses null instead of the empty string\nfunction nonnull(value: string): string {\n if (value == null) { return \"\"; }\n return value;\n}\n\nexport async function getUrl(href: string, options?: Options): Promise {\n if (options == null) { options = { }; }\n\n // @TODO: Once we drop support for node 8, we can pass the href\n // directly into request and skip adding the components\n // to this request object\n const url = parse(href);\n\n const request = {\n protocol: nonnull(url.protocol),\n hostname: nonnull(url.hostname),\n port: nonnull(url.port),\n path: (nonnull(url.pathname) + nonnull(url.search)),\n\n method: (options.method || \"GET\"),\n headers: shallowCopy(options.headers || { }),\n };\n\n if (options.allowGzip) {\n request.headers[\"accept-encoding\"] = \"gzip\";\n }\n\n let req: http.ClientRequest = null;\n switch (nonnull(url.protocol)) {\n case \"http:\":\n req = http.request(request);\n break;\n case \"https:\":\n req = https.request(request);\n break;\n default:\n /* istanbul ignore next */\n logger.throwError(`unsupported protocol ${ url.protocol }`, Logger.errors.UNSUPPORTED_OPERATION, {\n protocol: url.protocol,\n operation: \"request\"\n });\n }\n\n if (options.body) {\n req.write(Buffer.from(options.body));\n }\n req.end();\n\n const response = await getResponse(req);\n return response;\n}\n\n", "\"use strict\";\n\nimport { decode as base64Decode, encode as base64Encode } from \"@ethersproject/base64\";\nimport { hexlify, isBytesLike } from \"@ethersproject/bytes\";\nimport { shallowCopy } from \"@ethersproject/properties\";\nimport { toUtf8Bytes, toUtf8String } from \"@ethersproject/strings\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\nimport { getUrl, GetUrlResponse, Options } from \"./geturl\";\n\nfunction staller(duration: number): Promise {\n return new Promise((resolve) => {\n setTimeout(resolve, duration);\n });\n}\n\nfunction bodyify(value: any, type: string): string {\n if (value == null) { return null; }\n\n if (typeof(value) === \"string\") { return value; }\n\n if (isBytesLike(value)) {\n if (type && (type.split(\"/\")[0] === \"text\" || type.split(\";\")[0].trim() === \"application/json\")) {\n try {\n return toUtf8String(value);\n } catch (error) { };\n }\n return hexlify(value);\n }\n\n return value;\n}\n\n// Exported Types\nexport type ConnectionInfo = {\n url: string,\n headers?: { [key: string]: string | number }\n\n user?: string,\n password?: string,\n\n allowInsecureAuthentication?: boolean,\n allowGzip?: boolean,\n\n throttleLimit?: number,\n throttleSlotInterval?: number;\n throttleCallback?: (attempt: number, url: string) => Promise,\n\n skipFetchSetup?: boolean;\n fetchOptions?: Record;\n errorPassThrough?: boolean;\n\n timeout?: number,\n};\n\nexport interface OnceBlockable {\n once(eventName: \"block\", handler: () => void): void;\n}\n\nexport interface OncePollable {\n once(eventName: \"poll\", handler: () => void): void;\n}\n\nexport type PollOptions = {\n timeout?: number,\n floor?: number,\n ceiling?: number,\n interval?: number,\n retryLimit?: number,\n onceBlock?: OnceBlockable\n oncePoll?: OncePollable\n};\n\nexport type FetchJsonResponse = {\n statusCode: number;\n headers: { [ header: string ]: string };\n};\n\n\ntype Header = { key: string, value: string };\n\nfunction unpercent(value: string): Uint8Array {\n return toUtf8Bytes(value.replace(/%([0-9a-f][0-9a-f])/gi, (all, code) => {\n return String.fromCharCode(parseInt(code, 16));\n }));\n}\n\n// This API is still a work in progress; the future changes will likely be:\n// - ConnectionInfo => FetchDataRequest\n// - FetchDataRequest.body? = string | Uint8Array | { contentType: string, data: string | Uint8Array }\n// - If string => text/plain, Uint8Array => application/octet-stream (if content-type unspecified)\n// - FetchDataRequest.processFunc = (body: Uint8Array, response: FetchDataResponse) => T\n// For this reason, it should be considered internal until the API is finalized\nexport function _fetchData(connection: string | ConnectionInfo, body?: Uint8Array, processFunc?: (value: Uint8Array, response: FetchJsonResponse) => T): Promise {\n\n // How many times to retry in the event of a throttle\n const attemptLimit = (typeof(connection) === \"object\" && connection.throttleLimit != null) ? connection.throttleLimit: 12;\n logger.assertArgument((attemptLimit > 0 && (attemptLimit % 1) === 0),\n \"invalid connection throttle limit\", \"connection.throttleLimit\", attemptLimit);\n\n const throttleCallback = ((typeof(connection) === \"object\") ? connection.throttleCallback: null);\n const throttleSlotInterval = ((typeof(connection) === \"object\" && typeof(connection.throttleSlotInterval) === \"number\") ? connection.throttleSlotInterval: 100);\n logger.assertArgument((throttleSlotInterval > 0 && (throttleSlotInterval % 1) === 0),\n \"invalid connection throttle slot interval\", \"connection.throttleSlotInterval\", throttleSlotInterval);\n\n const errorPassThrough = ((typeof(connection) === \"object\") ? !!(connection.errorPassThrough): false);\n\n const headers: { [key: string]: Header } = { };\n\n let url: string = null;\n\n // @TODO: Allow ConnectionInfo to override some of these values\n const options: Options = {\n method: \"GET\",\n };\n\n let allow304 = false;\n\n let timeout = 2 * 60 * 1000;\n\n if (typeof(connection) === \"string\") {\n url = connection;\n\n } else if (typeof(connection) === \"object\") {\n if (connection == null || connection.url == null) {\n logger.throwArgumentError(\"missing URL\", \"connection.url\", connection);\n }\n\n url = connection.url;\n\n if (typeof(connection.timeout) === \"number\" && connection.timeout > 0) {\n timeout = connection.timeout;\n }\n\n if (connection.headers) {\n for (const key in connection.headers) {\n headers[key.toLowerCase()] = { key: key, value: String(connection.headers[key]) };\n if ([\"if-none-match\", \"if-modified-since\"].indexOf(key.toLowerCase()) >= 0) {\n allow304 = true;\n }\n }\n }\n\n options.allowGzip = !!connection.allowGzip;\n\n if (connection.user != null && connection.password != null) {\n if (url.substring(0, 6) !== \"https:\" && connection.allowInsecureAuthentication !== true) {\n logger.throwError(\n \"basic authentication requires a secure https url\",\n Logger.errors.INVALID_ARGUMENT,\n { argument: \"url\", url: url, user: connection.user, password: \"[REDACTED]\" }\n );\n }\n\n const authorization = connection.user + \":\" + connection.password;\n headers[\"authorization\"] = {\n key: \"Authorization\",\n value: \"Basic \" + base64Encode(toUtf8Bytes(authorization))\n };\n }\n\n if (connection.skipFetchSetup != null) {\n options.skipFetchSetup = !!connection.skipFetchSetup;\n }\n\n if (connection.fetchOptions != null) {\n options.fetchOptions = shallowCopy(connection.fetchOptions);\n }\n }\n\n const reData = new RegExp(\"^data:([^;:]*)?(;base64)?,(.*)$\", \"i\");\n const dataMatch = ((url) ? url.match(reData): null);\n if (dataMatch) {\n try {\n const response = {\n statusCode: 200,\n statusMessage: \"OK\",\n headers: { \"content-type\": (dataMatch[1] || \"text/plain\")},\n body: (dataMatch[2] ? base64Decode(dataMatch[3]): unpercent(dataMatch[3]))\n };\n\n let result: T = response.body;\n if (processFunc) {\n result = processFunc(response.body, response);\n }\n return Promise.resolve(result);\n\n } catch (error) {\n logger.throwError(\"processing response error\", Logger.errors.SERVER_ERROR, {\n body: bodyify(dataMatch[1], dataMatch[2]),\n error: error,\n requestBody: null,\n requestMethod: \"GET\",\n url: url\n });\n }\n }\n\n if (body) {\n options.method = \"POST\";\n options.body = body;\n if (headers[\"content-type\"] == null) {\n headers[\"content-type\"] = { key: \"Content-Type\", value: \"application/octet-stream\" };\n }\n if (headers[\"content-length\"] == null) {\n headers[\"content-length\"] = { key: \"Content-Length\", value: String(body.length) };\n }\n }\n\n const flatHeaders: { [ key: string ]: string } = { };\n Object.keys(headers).forEach((key) => {\n const header = headers[key];\n flatHeaders[header.key] = header.value;\n });\n options.headers = flatHeaders;\n\n const runningTimeout = (function() {\n let timer: NodeJS.Timer = null;\n const promise: Promise = new Promise(function(resolve, reject) {\n if (timeout) {\n timer = setTimeout(() => {\n if (timer == null) { return; }\n timer = null;\n\n reject(logger.makeError(\"timeout\", Logger.errors.TIMEOUT, {\n requestBody: bodyify(options.body, flatHeaders[\"content-type\"]),\n requestMethod: options.method,\n timeout: timeout,\n url: url\n }));\n }, timeout);\n }\n });\n\n const cancel = function() {\n if (timer == null) { return; }\n clearTimeout(timer);\n timer = null;\n }\n\n return { promise, cancel };\n })();\n\n const runningFetch = (async function() {\n\n for (let attempt = 0; attempt < attemptLimit; attempt++) {\n let response: GetUrlResponse = null;\n\n try {\n response = await getUrl(url, options);\n\n if (attempt < attemptLimit) {\n if (response.statusCode === 301 || response.statusCode === 302) {\n // Redirection; for now we only support absolute locataions\n const location = response.headers.location || \"\";\n if (options.method === \"GET\" && location.match(/^https:/)) {\n url = response.headers.location;\n continue;\n }\n\n } else if (response.statusCode === 429) {\n // Exponential back-off throttling\n let tryAgain = true;\n if (throttleCallback) {\n tryAgain = await throttleCallback(attempt, url);\n }\n\n if (tryAgain) {\n let stall = 0;\n\n const retryAfter = response.headers[\"retry-after\"];\n if (typeof(retryAfter) === \"string\" && retryAfter.match(/^[1-9][0-9]*$/)) {\n stall = parseInt(retryAfter) * 1000;\n } else {\n stall = throttleSlotInterval * parseInt(String(Math.random() * Math.pow(2, attempt)));\n }\n\n //console.log(\"Stalling 429\");\n await staller(stall);\n continue;\n }\n }\n }\n\n } catch (error) {\n response = (error).response;\n if (response == null) {\n runningTimeout.cancel();\n logger.throwError(\"missing response\", Logger.errors.SERVER_ERROR, {\n requestBody: bodyify(options.body, flatHeaders[\"content-type\"]),\n requestMethod: options.method,\n serverError: error,\n url: url\n });\n }\n }\n\n\n let body = response.body;\n\n if (allow304 && response.statusCode === 304) {\n body = null;\n } else if (!errorPassThrough && (response.statusCode < 200 || response.statusCode >= 300)) {\n runningTimeout.cancel();\n logger.throwError(\"bad response\", Logger.errors.SERVER_ERROR, {\n status: response.statusCode,\n headers: response.headers,\n body: bodyify(body, ((response.headers) ? response.headers[\"content-type\"]: null)),\n requestBody: bodyify(options.body, flatHeaders[\"content-type\"]),\n requestMethod: options.method,\n url: url\n });\n }\n\n if (processFunc) {\n try {\n const result = await processFunc(body, response);\n runningTimeout.cancel();\n return result;\n\n } catch (error) {\n // Allow the processFunc to trigger a throttle\n if (error.throttleRetry && attempt < attemptLimit) {\n let tryAgain = true;\n if (throttleCallback) {\n tryAgain = await throttleCallback(attempt, url);\n }\n\n if (tryAgain) {\n const timeout = throttleSlotInterval * parseInt(String(Math.random() * Math.pow(2, attempt)));\n //console.log(\"Stalling callback\");\n await staller(timeout);\n continue;\n }\n }\n\n runningTimeout.cancel();\n logger.throwError(\"processing response error\", Logger.errors.SERVER_ERROR, {\n body: bodyify(body, ((response.headers) ? response.headers[\"content-type\"]: null)),\n error: error,\n requestBody: bodyify(options.body, flatHeaders[\"content-type\"]),\n requestMethod: options.method,\n url: url\n });\n }\n }\n\n runningTimeout.cancel();\n\n // If we had a processFunc, it either returned a T or threw above.\n // The \"body\" is now a Uint8Array.\n return (body);\n }\n\n return logger.throwError(\"failed response\", Logger.errors.SERVER_ERROR, {\n requestBody: bodyify(options.body, flatHeaders[\"content-type\"]),\n requestMethod: options.method,\n url: url\n });\n })();\n\n return Promise.race([ runningTimeout.promise, runningFetch ]);\n}\n\nexport function fetchJson(connection: string | ConnectionInfo, json?: string, processFunc?: (value: any, response: FetchJsonResponse) => any): Promise {\n let processJsonFunc = (value: Uint8Array, response: FetchJsonResponse) => {\n let result: any = null;\n if (value != null) {\n try {\n result = JSON.parse(toUtf8String(value));\n } catch (error) {\n logger.throwError(\"invalid JSON\", Logger.errors.SERVER_ERROR, {\n body: value,\n error: error\n });\n }\n }\n\n if (processFunc) {\n result = processFunc(result, response);\n }\n\n return result;\n }\n\n // If we have json to send, we must\n // - add content-type of application/json (unless already overridden)\n // - convert the json to bytes\n let body: Uint8Array = null;\n if (json != null) {\n body = toUtf8Bytes(json);\n\n // Create a connection with the content-type set for JSON\n const updated: ConnectionInfo = (typeof(connection) === \"string\") ? ({ url: connection }): shallowCopy(connection);\n if (updated.headers) {\n const hasContentType = (Object.keys(updated.headers).filter((k) => (k.toLowerCase() === \"content-type\")).length) !== 0;\n if (!hasContentType) {\n updated.headers = shallowCopy(updated.headers);\n updated.headers[\"content-type\"] = \"application/json\";\n }\n } else {\n updated.headers = { \"content-type\": \"application/json\" };\n }\n connection = updated;\n }\n\n return _fetchData(connection, body, processJsonFunc);\n}\n\nexport function poll(func: () => Promise, options?: PollOptions): Promise {\n if (!options) { options = {}; }\n options = shallowCopy(options);\n if (options.floor == null) { options.floor = 0; }\n if (options.ceiling == null) { options.ceiling = 10000; }\n if (options.interval == null) { options.interval = 250; }\n\n return new Promise(function(resolve, reject) {\n\n let timer: NodeJS.Timer = null;\n let done: boolean = false;\n\n // Returns true if cancel was successful. Unsuccessful cancel means we're already done.\n const cancel = (): boolean => {\n if (done) { return false; }\n done = true;\n if (timer) { clearTimeout(timer); }\n return true;\n };\n\n if (options.timeout) {\n timer = setTimeout(() => {\n if (cancel()) { reject(new Error(\"timeout\")); }\n }, options.timeout)\n }\n\n const retryLimit = options.retryLimit;\n\n let attempt = 0;\n function check() {\n return func().then(function(result) {\n\n // If we have a result, or are allowed null then we're done\n if (result !== undefined) {\n if (cancel()) { resolve(result); }\n\n } else if (options.oncePoll) {\n options.oncePoll.once(\"poll\", check);\n\n } else if (options.onceBlock) {\n options.onceBlock.once(\"block\", check);\n\n // Otherwise, exponential back-off (up to 10s) our next request\n } else if (!done) {\n attempt++;\n if (attempt > retryLimit) {\n if (cancel()) { reject(new Error(\"retry limit reached\")); }\n return;\n }\n\n let timeout = options.interval * parseInt(String(Math.random() * Math.pow(2, attempt)));\n if (timeout < options.floor) { timeout = options.floor; }\n if (timeout > options.ceiling) { timeout = options.ceiling; }\n\n setTimeout(check, timeout);\n }\n\n return null;\n }, function(error) {\n if (cancel()) { reject(error); }\n });\n }\n check();\n });\n}\n\n", "'use strict'\nvar ALPHABET = 'qpzry9x8gf2tvdw0s3jn54khce6mua7l'\n\n// pre-compute lookup table\nvar ALPHABET_MAP = {}\nfor (var z = 0; z < ALPHABET.length; z++) {\n var x = ALPHABET.charAt(z)\n\n if (ALPHABET_MAP[x] !== undefined) throw new TypeError(x + ' is ambiguous')\n ALPHABET_MAP[x] = z\n}\n\nfunction polymodStep (pre) {\n var b = pre >> 25\n return ((pre & 0x1FFFFFF) << 5) ^\n (-((b >> 0) & 1) & 0x3b6a57b2) ^\n (-((b >> 1) & 1) & 0x26508e6d) ^\n (-((b >> 2) & 1) & 0x1ea119fa) ^\n (-((b >> 3) & 1) & 0x3d4233dd) ^\n (-((b >> 4) & 1) & 0x2a1462b3)\n}\n\nfunction prefixChk (prefix) {\n var chk = 1\n for (var i = 0; i < prefix.length; ++i) {\n var c = prefix.charCodeAt(i)\n if (c < 33 || c > 126) return 'Invalid prefix (' + prefix + ')'\n\n chk = polymodStep(chk) ^ (c >> 5)\n }\n chk = polymodStep(chk)\n\n for (i = 0; i < prefix.length; ++i) {\n var v = prefix.charCodeAt(i)\n chk = polymodStep(chk) ^ (v & 0x1f)\n }\n return chk\n}\n\nfunction encode (prefix, words, LIMIT) {\n LIMIT = LIMIT || 90\n if ((prefix.length + 7 + words.length) > LIMIT) throw new TypeError('Exceeds length limit')\n\n prefix = prefix.toLowerCase()\n\n // determine chk mod\n var chk = prefixChk(prefix)\n if (typeof chk === 'string') throw new Error(chk)\n\n var result = prefix + '1'\n for (var i = 0; i < words.length; ++i) {\n var x = words[i]\n if ((x >> 5) !== 0) throw new Error('Non 5-bit word')\n\n chk = polymodStep(chk) ^ x\n result += ALPHABET.charAt(x)\n }\n\n for (i = 0; i < 6; ++i) {\n chk = polymodStep(chk)\n }\n chk ^= 1\n\n for (i = 0; i < 6; ++i) {\n var v = (chk >> ((5 - i) * 5)) & 0x1f\n result += ALPHABET.charAt(v)\n }\n\n return result\n}\n\nfunction __decode (str, LIMIT) {\n LIMIT = LIMIT || 90\n if (str.length < 8) return str + ' too short'\n if (str.length > LIMIT) return 'Exceeds length limit'\n\n // don't allow mixed case\n var lowered = str.toLowerCase()\n var uppered = str.toUpperCase()\n if (str !== lowered && str !== uppered) return 'Mixed-case string ' + str\n str = lowered\n\n var split = str.lastIndexOf('1')\n if (split === -1) return 'No separator character for ' + str\n if (split === 0) return 'Missing prefix for ' + str\n\n var prefix = str.slice(0, split)\n var wordChars = str.slice(split + 1)\n if (wordChars.length < 6) return 'Data too short'\n\n var chk = prefixChk(prefix)\n if (typeof chk === 'string') return chk\n\n var words = []\n for (var i = 0; i < wordChars.length; ++i) {\n var c = wordChars.charAt(i)\n var v = ALPHABET_MAP[c]\n if (v === undefined) return 'Unknown character ' + c\n chk = polymodStep(chk) ^ v\n\n // not in the checksum?\n if (i + 6 >= wordChars.length) continue\n words.push(v)\n }\n\n if (chk !== 1) return 'Invalid checksum for ' + str\n return { prefix: prefix, words: words }\n}\n\nfunction decodeUnsafe () {\n var res = __decode.apply(null, arguments)\n if (typeof res === 'object') return res\n}\n\nfunction decode (str) {\n var res = __decode.apply(null, arguments)\n if (typeof res === 'object') return res\n\n throw new Error(res)\n}\n\nfunction convert (data, inBits, outBits, pad) {\n var value = 0\n var bits = 0\n var maxV = (1 << outBits) - 1\n\n var result = []\n for (var i = 0; i < data.length; ++i) {\n value = (value << inBits) | data[i]\n bits += inBits\n\n while (bits >= outBits) {\n bits -= outBits\n result.push((value >> bits) & maxV)\n }\n }\n\n if (pad) {\n if (bits > 0) {\n result.push((value << (outBits - bits)) & maxV)\n }\n } else {\n if (bits >= inBits) return 'Excess padding'\n if ((value << (outBits - bits)) & maxV) return 'Non-zero padding'\n }\n\n return result\n}\n\nfunction toWordsUnsafe (bytes) {\n var res = convert(bytes, 8, 5, true)\n if (Array.isArray(res)) return res\n}\n\nfunction toWords (bytes) {\n var res = convert(bytes, 8, 5, true)\n if (Array.isArray(res)) return res\n\n throw new Error(res)\n}\n\nfunction fromWordsUnsafe (words) {\n var res = convert(words, 5, 8, false)\n if (Array.isArray(res)) return res\n}\n\nfunction fromWords (words) {\n var res = convert(words, 5, 8, false)\n if (Array.isArray(res)) return res\n\n throw new Error(res)\n}\n\nmodule.exports = {\n decodeUnsafe: decodeUnsafe,\n decode: decode,\n encode: encode,\n toWordsUnsafe: toWordsUnsafe,\n toWords: toWords,\n fromWordsUnsafe: fromWordsUnsafe,\n fromWords: fromWords\n}\n", "export const version = \"providers/5.7.2\";\n", "\"use strict\";\n\nimport { Block, TransactionReceipt, TransactionResponse } from \"@ethersproject/abstract-provider\";\nimport { getAddress, getContractAddress } from \"@ethersproject/address\";\nimport { BigNumber } from \"@ethersproject/bignumber\";\nimport { hexDataLength, hexDataSlice, hexValue, hexZeroPad, isHexString } from \"@ethersproject/bytes\";\nimport { AddressZero } from \"@ethersproject/constants\";\nimport { shallowCopy } from \"@ethersproject/properties\";\nimport { AccessList, accessListify, parse as parseTransaction } from \"@ethersproject/transactions\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\nexport type FormatFunc = (value: any) => any;\n\nexport type FormatFuncs = { [ key: string ]: FormatFunc };\n\nexport type Formats = {\n transaction: FormatFuncs,\n transactionRequest: FormatFuncs,\n receipt: FormatFuncs,\n receiptLog: FormatFuncs,\n block: FormatFuncs,\n blockWithTransactions: FormatFuncs,\n filter: FormatFuncs,\n filterLog: FormatFuncs,\n};\n\nexport class Formatter {\n readonly formats: Formats;\n\n constructor() {\n this.formats = this.getDefaultFormats();\n }\n\n getDefaultFormats(): Formats {\n const formats: Formats = ({ });\n\n const address = this.address.bind(this);\n const bigNumber = this.bigNumber.bind(this);\n const blockTag = this.blockTag.bind(this);\n const data = this.data.bind(this);\n const hash = this.hash.bind(this);\n const hex = this.hex.bind(this);\n const number = this.number.bind(this);\n const type = this.type.bind(this);\n\n const strictData = (v: any) => { return this.data(v, true); };\n\n formats.transaction = {\n hash: hash,\n\n type: type,\n accessList: Formatter.allowNull(this.accessList.bind(this), null),\n\n blockHash: Formatter.allowNull(hash, null),\n blockNumber: Formatter.allowNull(number, null),\n transactionIndex: Formatter.allowNull(number, null),\n\n confirmations: Formatter.allowNull(number, null),\n\n from: address,\n\n // either (gasPrice) or (maxPriorityFeePerGas + maxFeePerGas)\n // must be set\n gasPrice: Formatter.allowNull(bigNumber),\n maxPriorityFeePerGas: Formatter.allowNull(bigNumber),\n maxFeePerGas: Formatter.allowNull(bigNumber),\n\n gasLimit: bigNumber,\n to: Formatter.allowNull(address, null),\n value: bigNumber,\n nonce: number,\n data: data,\n\n r: Formatter.allowNull(this.uint256),\n s: Formatter.allowNull(this.uint256),\n v: Formatter.allowNull(number),\n\n creates: Formatter.allowNull(address, null),\n\n raw: Formatter.allowNull(data),\n };\n\n formats.transactionRequest = {\n from: Formatter.allowNull(address),\n nonce: Formatter.allowNull(number),\n gasLimit: Formatter.allowNull(bigNumber),\n gasPrice: Formatter.allowNull(bigNumber),\n maxPriorityFeePerGas: Formatter.allowNull(bigNumber),\n maxFeePerGas: Formatter.allowNull(bigNumber),\n to: Formatter.allowNull(address),\n value: Formatter.allowNull(bigNumber),\n data: Formatter.allowNull(strictData),\n type: Formatter.allowNull(number),\n accessList: Formatter.allowNull(this.accessList.bind(this), null),\n };\n\n formats.receiptLog = {\n transactionIndex: number,\n blockNumber: number,\n transactionHash: hash,\n address: address,\n topics: Formatter.arrayOf(hash),\n data: data,\n logIndex: number,\n blockHash: hash,\n };\n\n formats.receipt = {\n to: Formatter.allowNull(this.address, null),\n from: Formatter.allowNull(this.address, null),\n contractAddress: Formatter.allowNull(address, null),\n transactionIndex: number,\n // should be allowNull(hash), but broken-EIP-658 support is handled in receipt\n root: Formatter.allowNull(hex),\n gasUsed: bigNumber,\n logsBloom: Formatter.allowNull(data),// @TODO: should this be data?\n blockHash: hash,\n transactionHash: hash,\n logs: Formatter.arrayOf(this.receiptLog.bind(this)),\n blockNumber: number,\n confirmations: Formatter.allowNull(number, null),\n cumulativeGasUsed: bigNumber,\n effectiveGasPrice: Formatter.allowNull(bigNumber),\n status: Formatter.allowNull(number),\n type: type\n };\n\n formats.block = {\n hash: Formatter.allowNull(hash),\n parentHash: hash,\n number: number,\n\n timestamp: number,\n nonce: Formatter.allowNull(hex),\n difficulty: this.difficulty.bind(this),\n\n gasLimit: bigNumber,\n gasUsed: bigNumber,\n\n miner: Formatter.allowNull(address),\n extraData: data,\n\n transactions: Formatter.allowNull(Formatter.arrayOf(hash)),\n\n baseFeePerGas: Formatter.allowNull(bigNumber)\n };\n\n formats.blockWithTransactions = shallowCopy(formats.block);\n formats.blockWithTransactions.transactions = Formatter.allowNull(Formatter.arrayOf(this.transactionResponse.bind(this)));\n\n formats.filter = {\n fromBlock: Formatter.allowNull(blockTag, undefined),\n toBlock: Formatter.allowNull(blockTag, undefined),\n blockHash: Formatter.allowNull(hash, undefined),\n address: Formatter.allowNull(address, undefined),\n topics: Formatter.allowNull(this.topics.bind(this), undefined),\n };\n\n formats.filterLog = {\n blockNumber: Formatter.allowNull(number),\n blockHash: Formatter.allowNull(hash),\n transactionIndex: number,\n\n removed: Formatter.allowNull(this.boolean.bind(this)),\n\n address: address,\n data: Formatter.allowFalsish(data, \"0x\"),\n\n topics: Formatter.arrayOf(hash),\n\n transactionHash: hash,\n logIndex: number,\n };\n\n return formats;\n }\n\n accessList(accessList: Array): AccessList {\n return accessListify(accessList || []);\n }\n\n // Requires a BigNumberish that is within the IEEE754 safe integer range; returns a number\n // Strict! Used on input.\n number(number: any): number {\n if (number === \"0x\") { return 0; }\n return BigNumber.from(number).toNumber();\n }\n\n type(number: any): number {\n if (number === \"0x\" || number == null) { return 0; }\n return BigNumber.from(number).toNumber();\n }\n\n // Strict! Used on input.\n bigNumber(value: any): BigNumber {\n return BigNumber.from(value);\n }\n\n // Requires a boolean, \"true\" or \"false\"; returns a boolean\n boolean(value: any): boolean {\n if (typeof(value) === \"boolean\") { return value; }\n if (typeof(value) === \"string\") {\n value = value.toLowerCase();\n if (value === \"true\") { return true; }\n if (value === \"false\") { return false; }\n }\n throw new Error(\"invalid boolean - \" + value);\n }\n\n hex(value: any, strict?: boolean): string {\n if (typeof(value) === \"string\") {\n if (!strict && value.substring(0, 2) !== \"0x\") { value = \"0x\" + value; }\n if (isHexString(value)) {\n return value.toLowerCase();\n }\n }\n return logger.throwArgumentError(\"invalid hash\", \"value\", value);\n }\n\n data(value: any, strict?: boolean): string {\n const result = this.hex(value, strict);\n if ((result.length % 2) !== 0) {\n throw new Error(\"invalid data; odd-length - \" + value);\n }\n return result;\n }\n\n // Requires an address\n // Strict! Used on input.\n address(value: any): string {\n return getAddress(value);\n }\n\n callAddress(value: any): string {\n if (!isHexString(value, 32)) { return null; }\n const address = getAddress(hexDataSlice(value, 12));\n return (address === AddressZero) ? null: address;\n }\n\n contractAddress(value: any): string {\n return getContractAddress(value);\n }\n\n // Strict! Used on input.\n blockTag(blockTag: any): string {\n if (blockTag == null) { return \"latest\"; }\n\n if (blockTag === \"earliest\") { return \"0x0\"; }\n\n switch (blockTag) {\n case \"earliest\": return \"0x0\";\n case \"latest\": case \"pending\": case \"safe\": case \"finalized\":\n return blockTag;\n }\n\n if (typeof(blockTag) === \"number\" || isHexString(blockTag)) {\n return hexValue(blockTag);\n }\n\n throw new Error(\"invalid blockTag\");\n }\n\n // Requires a hash, optionally requires 0x prefix; returns prefixed lowercase hash.\n hash(value: any, strict?: boolean): string {\n const result = this.hex(value, strict);\n if (hexDataLength(result) !== 32) {\n return logger.throwArgumentError(\"invalid hash\", \"value\", value);\n }\n return result;\n }\n\n // Returns the difficulty as a number, or if too large (i.e. PoA network) null\n difficulty(value: any): number {\n if (value == null) { return null; }\n\n const v = BigNumber.from(value);\n\n try {\n return v.toNumber();\n } catch (error) { }\n\n return null;\n }\n\n uint256(value: any): string {\n if (!isHexString(value)) {\n throw new Error(\"invalid uint256\");\n }\n return hexZeroPad(value, 32);\n }\n\n _block(value: any, format: any): Block {\n if (value.author != null && value.miner == null) {\n value.miner = value.author;\n }\n // The difficulty may need to come from _difficulty in recursed blocks\n const difficulty = (value._difficulty != null) ? value._difficulty: value.difficulty;\n const result = Formatter.check(format, value);\n result._difficulty = ((difficulty == null) ? null: BigNumber.from(difficulty));\n return result;\n }\n\n block(value: any): Block {\n return this._block(value, this.formats.block);\n }\n\n blockWithTransactions(value: any): Block {\n return this._block(value, this.formats.blockWithTransactions);\n }\n\n // Strict! Used on input.\n transactionRequest(value: any): any {\n return Formatter.check(this.formats.transactionRequest, value);\n }\n\n transactionResponse(transaction: any): TransactionResponse {\n\n // Rename gas to gasLimit\n if (transaction.gas != null && transaction.gasLimit == null) {\n transaction.gasLimit = transaction.gas;\n }\n\n // Some clients (TestRPC) do strange things like return 0x0 for the\n // 0 address; correct this to be a real address\n if (transaction.to && BigNumber.from(transaction.to).isZero()) {\n transaction.to = \"0x0000000000000000000000000000000000000000\";\n }\n\n // Rename input to data\n if (transaction.input != null && transaction.data == null) {\n transaction.data = transaction.input;\n }\n\n // If to and creates are empty, populate the creates from the transaction\n if (transaction.to == null && transaction.creates == null) {\n transaction.creates = this.contractAddress(transaction);\n }\n\n if ((transaction.type === 1 || transaction.type === 2)&& transaction.accessList == null) {\n transaction.accessList = [ ];\n }\n\n const result: TransactionResponse = Formatter.check(this.formats.transaction, transaction);\n\n if (transaction.chainId != null) {\n let chainId = transaction.chainId;\n\n if (isHexString(chainId)) {\n chainId = BigNumber.from(chainId).toNumber();\n }\n\n result.chainId = chainId;\n\n } else {\n let chainId = transaction.networkId;\n\n // geth-etc returns chainId\n if (chainId == null && result.v == null) {\n chainId = transaction.chainId;\n }\n\n if (isHexString(chainId)) {\n chainId = BigNumber.from(chainId).toNumber();\n }\n\n if (typeof(chainId) !== \"number\" && result.v != null) {\n chainId = (result.v - 35) / 2;\n if (chainId < 0) { chainId = 0; }\n chainId = parseInt(chainId);\n }\n\n if (typeof(chainId) !== \"number\") { chainId = 0; }\n\n result.chainId = chainId;\n }\n\n // 0x0000... should actually be null\n if (result.blockHash && result.blockHash.replace(/0/g, \"\") === \"x\") {\n result.blockHash = null;\n }\n\n return result;\n }\n\n transaction(value: any): any {\n return parseTransaction(value);\n }\n\n receiptLog(value: any): any {\n return Formatter.check(this.formats.receiptLog, value);\n }\n\n receipt(value: any): TransactionReceipt {\n const result: TransactionReceipt = Formatter.check(this.formats.receipt, value);\n\n // RSK incorrectly implemented EIP-658, so we munge things a bit here for it\n if (result.root != null) {\n if (result.root.length <= 4) {\n // Could be 0x00, 0x0, 0x01 or 0x1\n const value = BigNumber.from(result.root).toNumber();\n if (value === 0 || value === 1) {\n // Make sure if both are specified, they match\n if (result.status != null && (result.status !== value)) {\n logger.throwArgumentError(\"alt-root-status/status mismatch\", \"value\", { root: result.root, status: result.status });\n }\n result.status = value;\n delete result.root;\n } else {\n logger.throwArgumentError(\"invalid alt-root-status\", \"value.root\", result.root);\n }\n } else if (result.root.length !== 66) {\n // Must be a valid bytes32\n logger.throwArgumentError(\"invalid root hash\", \"value.root\", result.root);\n }\n }\n\n if (result.status != null) {\n result.byzantium = true;\n }\n\n return result;\n }\n\n topics(value: any): any {\n if (Array.isArray(value)) {\n return value.map((v) => this.topics(v));\n\n } else if (value != null) {\n return this.hash(value, true);\n }\n\n return null;\n }\n\n filter(value: any): any {\n return Formatter.check(this.formats.filter, value);\n }\n\n filterLog(value: any): any {\n return Formatter.check(this.formats.filterLog, value);\n }\n\n static check(format: { [ name: string ]: FormatFunc }, object: any): any {\n const result: any = {};\n for (const key in format) {\n try {\n const value = format[key](object[key]);\n if (value !== undefined) { result[key] = value; }\n } catch (error) {\n error.checkKey = key;\n error.checkValue = object[key];\n throw error;\n }\n }\n return result;\n }\n\n // if value is null-ish, nullValue is returned\n static allowNull(format: FormatFunc, nullValue?: any): FormatFunc {\n return (function(value: any) {\n if (value == null) { return nullValue; }\n return format(value);\n });\n }\n\n // If value is false-ish, replaceValue is returned\n static allowFalsish(format: FormatFunc, replaceValue: any): FormatFunc {\n return (function(value: any) {\n if (!value) { return replaceValue; }\n return format(value);\n });\n }\n\n // Requires an Array satisfying check\n static arrayOf(format: FormatFunc): FormatFunc {\n return (function(array: any): Array {\n if (!Array.isArray(array)) { throw new Error(\"not an array\"); }\n\n const result: any = [];\n\n array.forEach(function(value) {\n result.push(format(value));\n });\n\n return result;\n });\n }\n}\n\nexport interface CommunityResourcable {\n isCommunityResource(): boolean;\n}\n\nexport function isCommunityResourcable(value: any): value is CommunityResourcable {\n return (value && typeof(value.isCommunityResource) === \"function\");\n}\n\nexport function isCommunityResource(value: any): boolean {\n return (isCommunityResourcable(value) && value.isCommunityResource());\n}\n\n// Show the throttle message only once\nlet throttleMessage = false;\nexport function showThrottleMessage() {\n if (throttleMessage) { return; }\n throttleMessage = true;\n\n console.log(\"========= NOTICE =========\")\n console.log(\"Request-Rate Exceeded (this message will not be repeated)\");\n console.log(\"\");\n console.log(\"The default API keys for each service are provided as a highly-throttled,\");\n console.log(\"community resource for low-traffic projects and early prototyping.\");\n console.log(\"\");\n console.log(\"While your application will continue to function, we highly recommended\");\n console.log(\"signing up for your own API keys to improve performance, increase your\");\n console.log(\"request rate/limit and enable other perks, such as metrics and advanced APIs.\");\n console.log(\"\");\n console.log(\"For more details: https:/\\/docs.ethers.io/api-keys/\");\n console.log(\"==========================\");\n}\n\n", "\"use strict\";\n\nimport {\n Block, BlockTag, BlockWithTransactions, EventType, Filter, FilterByBlockHash, ForkEvent,\n Listener, Log, Provider, TransactionReceipt, TransactionRequest, TransactionResponse\n} from \"@ethersproject/abstract-provider\";\nimport { encode as base64Encode } from \"@ethersproject/base64\";\nimport { Base58 } from \"@ethersproject/basex\";\nimport { BigNumber, BigNumberish } from \"@ethersproject/bignumber\";\nimport { arrayify, BytesLike, concat, hexConcat, hexDataLength, hexDataSlice, hexlify, hexValue, hexZeroPad, isHexString } from \"@ethersproject/bytes\";\nimport { HashZero } from \"@ethersproject/constants\";\nimport { dnsEncode, namehash } from \"@ethersproject/hash\";\nimport { getNetwork, Network, Networkish } from \"@ethersproject/networks\";\nimport { Deferrable, defineReadOnly, getStatic, resolveProperties } from \"@ethersproject/properties\";\nimport { Transaction } from \"@ethersproject/transactions\";\nimport { sha256 } from \"@ethersproject/sha2\";\nimport { toUtf8Bytes, toUtf8String } from \"@ethersproject/strings\";\nimport { fetchJson, poll } from \"@ethersproject/web\";\n\nimport bech32 from \"bech32\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\nimport { Formatter } from \"./formatter\";\n\nconst MAX_CCIP_REDIRECTS = 10;\n\n//////////////////////////////\n// Event Serializeing\n\nfunction checkTopic(topic: string): string {\n if (topic == null) { return \"null\"; }\n if (hexDataLength(topic) !== 32) {\n logger.throwArgumentError(\"invalid topic\", \"topic\", topic);\n }\n return topic.toLowerCase();\n}\n\nfunction serializeTopics(topics: Array>): string {\n // Remove trailing null AND-topics; they are redundant\n topics = topics.slice();\n while (topics.length > 0 && topics[topics.length - 1] == null) { topics.pop(); }\n\n return topics.map((topic) => {\n if (Array.isArray(topic)) {\n\n // Only track unique OR-topics\n const unique: { [ topic: string ]: boolean } = { }\n topic.forEach((topic) => {\n unique[checkTopic(topic)] = true;\n });\n\n // The order of OR-topics does not matter\n const sorted = Object.keys(unique);\n sorted.sort();\n\n return sorted.join(\"|\");\n\n } else {\n return checkTopic(topic);\n }\n }).join(\"&\");\n}\n\nfunction deserializeTopics(data: string): Array> {\n if (data === \"\") { return [ ]; }\n\n return data.split(/&/g).map((topic) => {\n if (topic === \"\") { return [ ]; }\n\n const comps = topic.split(\"|\").map((topic) => {\n return ((topic === \"null\") ? null: topic);\n });\n\n return ((comps.length === 1) ? comps[0]: comps);\n });\n}\n\nfunction getEventTag(eventName: EventType): string {\n if (typeof(eventName) === \"string\") {\n eventName = eventName.toLowerCase();\n\n if (hexDataLength(eventName) === 32) {\n return \"tx:\" + eventName;\n }\n\n if (eventName.indexOf(\":\") === -1) {\n return eventName;\n }\n\n } else if (Array.isArray(eventName)) {\n return \"filter:*:\" + serializeTopics(eventName);\n\n } else if (ForkEvent.isForkEvent(eventName)) {\n logger.warn(\"not implemented\");\n throw new Error(\"not implemented\");\n\n } else if (eventName && typeof(eventName) === \"object\") {\n return \"filter:\" + (eventName.address || \"*\") + \":\" + serializeTopics(eventName.topics || []);\n }\n\n throw new Error(\"invalid event - \" + eventName);\n}\n\n//////////////////////////////\n// Helper Object\n\nfunction getTime() {\n return (new Date()).getTime();\n}\n\nfunction stall(duration: number): Promise {\n return new Promise((resolve) => {\n setTimeout(resolve, duration);\n });\n}\n\n//////////////////////////////\n// Provider Object\n\n\n/**\n * EventType\n * - \"block\"\n * - \"poll\"\n * - \"didPoll\"\n * - \"pending\"\n * - \"error\"\n * - \"network\"\n * - filter\n * - topics array\n * - transaction hash\n */\n\nconst PollableEvents = [ \"block\", \"network\", \"pending\", \"poll\" ];\n\nexport class Event {\n readonly listener: Listener;\n readonly once: boolean;\n readonly tag: string;\n\n _lastBlockNumber: number\n _inflight: boolean;\n\n constructor(tag: string, listener: Listener, once: boolean) {\n defineReadOnly(this, \"tag\", tag);\n defineReadOnly(this, \"listener\", listener);\n defineReadOnly(this, \"once\", once);\n\n this._lastBlockNumber = -2;\n this._inflight = false;\n }\n\n get event(): EventType {\n switch (this.type) {\n case \"tx\":\n return this.hash;\n case \"filter\":\n return this.filter;\n }\n return this.tag;\n }\n\n get type(): string {\n return this.tag.split(\":\")[0]\n }\n\n get hash(): string {\n const comps = this.tag.split(\":\");\n if (comps[0] !== \"tx\") { return null; }\n return comps[1];\n }\n\n get filter(): Filter {\n const comps = this.tag.split(\":\");\n if (comps[0] !== \"filter\") { return null; }\n const address = comps[1];\n\n const topics = deserializeTopics(comps[2]);\n const filter: Filter = { };\n\n if (topics.length > 0) { filter.topics = topics; }\n if (address && address !== \"*\") { filter.address = address; }\n\n return filter;\n }\n\n pollable(): boolean {\n return (this.tag.indexOf(\":\") >= 0 || PollableEvents.indexOf(this.tag) >= 0);\n }\n}\n\nexport interface EnsResolver {\n\n // Name this Resolver is associated with\n readonly name: string;\n\n // The address of the resolver\n readonly address: string;\n\n // Multichain address resolution (also normal address resolution)\n // See: https://eips.ethereum.org/EIPS/eip-2304\n getAddress(coinType?: 60): Promise\n\n // Contenthash field\n // See: https://eips.ethereum.org/EIPS/eip-1577\n getContentHash(): Promise;\n\n // Storage of text records\n // See: https://eips.ethereum.org/EIPS/eip-634\n getText(key: string): Promise;\n};\n\nexport interface EnsProvider {\n resolveName(name: string): Promise;\n lookupAddress(address: string): Promise;\n getResolver(name: string): Promise;\n}\n\ntype CoinInfo = {\n symbol: string,\n ilk?: string, // General family\n prefix?: string, // Bech32 prefix\n p2pkh?: number, // Pay-to-Public-Key-Hash Version\n p2sh?: number, // Pay-to-Script-Hash Version\n};\n\n// https://github.com/satoshilabs/slips/blob/master/slip-0044.md\nconst coinInfos: { [ coinType: string ]: CoinInfo } = {\n \"0\": { symbol: \"btc\", p2pkh: 0x00, p2sh: 0x05, prefix: \"bc\" },\n \"2\": { symbol: \"ltc\", p2pkh: 0x30, p2sh: 0x32, prefix: \"ltc\" },\n \"3\": { symbol: \"doge\", p2pkh: 0x1e, p2sh: 0x16 },\n \"60\": { symbol: \"eth\", ilk: \"eth\" },\n \"61\": { symbol: \"etc\", ilk: \"eth\" },\n \"700\": { symbol: \"xdai\", ilk: \"eth\" },\n};\n\nfunction bytes32ify(value: number): string {\n return hexZeroPad(BigNumber.from(value).toHexString(), 32);\n}\n\n// Compute the Base58Check encoded data (checksum is first 4 bytes of sha256d)\nfunction base58Encode(data: Uint8Array): string {\n return Base58.encode(concat([ data, hexDataSlice(sha256(sha256(data)), 0, 4) ]));\n}\n\nexport interface Avatar {\n url: string;\n linkage: Array<{ type: string, content: string }>;\n}\n\nconst matcherIpfs = new RegExp(\"^(ipfs):/\\/(.*)$\", \"i\");\nconst matchers = [\n new RegExp(\"^(https):/\\/(.*)$\", \"i\"),\n new RegExp(\"^(data):(.*)$\", \"i\"),\n matcherIpfs,\n new RegExp(\"^eip155:[0-9]+/(erc[0-9]+):(.*)$\", \"i\"),\n];\n\nfunction _parseString(result: string, start: number): null | string {\n try {\n return toUtf8String(_parseBytes(result, start));\n } catch(error) { }\n return null;\n}\n\nfunction _parseBytes(result: string, start: number): null | string {\n if (result === \"0x\") { return null; }\n\n const offset = BigNumber.from(hexDataSlice(result, start, start + 32)).toNumber();\n const length = BigNumber.from(hexDataSlice(result, offset, offset + 32)).toNumber();\n\n return hexDataSlice(result, offset + 32, offset + 32 + length);\n}\n\n// Trim off the ipfs:// prefix and return the default gateway URL\nfunction getIpfsLink(link: string): string {\n if (link.match(/^ipfs:\\/\\/ipfs\\//i)) {\n link = link.substring(12);\n } else if (link.match(/^ipfs:\\/\\//i)) {\n link = link.substring(7);\n } else {\n logger.throwArgumentError(\"unsupported IPFS format\", \"link\", link);\n }\n\n return `https:/\\/gateway.ipfs.io/ipfs/${ link }`;\n}\n\nfunction numPad(value: number): Uint8Array {\n const result = arrayify(value);\n if (result.length > 32) { throw new Error(\"internal; should not happen\"); }\n\n const padded = new Uint8Array(32);\n padded.set(result, 32 - result.length);\n return padded;\n}\n\nfunction bytesPad(value: Uint8Array): Uint8Array {\n if ((value.length % 32) === 0) { return value; }\n\n const result = new Uint8Array(Math.ceil(value.length / 32) * 32);\n result.set(value);\n return result;\n}\n\n// ABI Encodes a series of (bytes, bytes, ...)\nfunction encodeBytes(datas: Array) {\n const result: Array = [ ];\n\n let byteCount = 0;\n\n // Add place-holders for pointers as we add items\n for (let i = 0; i < datas.length; i++) {\n result.push(null);\n byteCount += 32;\n }\n\n for (let i = 0; i < datas.length; i++) {\n const data = arrayify(datas[i]);\n\n // Update the bytes offset\n result[i] = numPad(byteCount);\n\n // The length and padded value of data\n result.push(numPad(data.length));\n result.push(bytesPad(data));\n byteCount += 32 + Math.ceil(data.length / 32) * 32;\n }\n\n return hexConcat(result);\n}\n\nexport class Resolver implements EnsResolver {\n readonly provider: BaseProvider;\n\n readonly name: string;\n readonly address: string;\n\n readonly _resolvedAddress: null | string;\n\n // For EIP-2544 names, the ancestor that provided the resolver\n _supportsEip2544: null | Promise;\n\n // The resolvedAddress is only for creating a ReverseLookup resolver\n constructor(provider: BaseProvider, address: string, name: string, resolvedAddress?: string) {\n defineReadOnly(this, \"provider\", provider);\n defineReadOnly(this, \"name\", name);\n defineReadOnly(this, \"address\", provider.formatter.address(address));\n defineReadOnly(this, \"_resolvedAddress\", resolvedAddress);\n }\n\n supportsWildcard(): Promise {\n if (!this._supportsEip2544) {\n // supportsInterface(bytes4 = selector(\"resolve(bytes,bytes)\"))\n this._supportsEip2544 = this.provider.call({\n to: this.address,\n data: \"0x01ffc9a79061b92300000000000000000000000000000000000000000000000000000000\"\n }).then((result) => {\n return BigNumber.from(result).eq(1);\n }).catch((error) => {\n if (error.code === Logger.errors.CALL_EXCEPTION) { return false; }\n // Rethrow the error: link is down, etc. Let future attempts retry.\n this._supportsEip2544 = null;\n throw error;\n });\n }\n\n return this._supportsEip2544;\n }\n\n async _fetch(selector: string, parameters?: string): Promise {\n\n // e.g. keccak256(\"addr(bytes32,uint256)\")\n const tx = {\n to: this.address,\n ccipReadEnabled: true,\n data: hexConcat([ selector, namehash(this.name), (parameters || \"0x\") ])\n };\n\n // Wildcard support; use EIP-2544 to resolve the request\n let parseBytes = false;\n if (await this.supportsWildcard()) {\n parseBytes = true;\n\n // selector(\"resolve(bytes,bytes)\")\n tx.data = hexConcat([ \"0x9061b923\", encodeBytes([ dnsEncode(this.name), tx.data ]) ]);\n }\n\n try {\n let result = await this.provider.call(tx);\n if ((arrayify(result).length % 32) === 4) {\n logger.throwError(\"resolver threw error\", Logger.errors.CALL_EXCEPTION, {\n transaction: tx, data: result\n });\n }\n if (parseBytes) { result = _parseBytes(result, 0); }\n return result;\n } catch (error) {\n if (error.code === Logger.errors.CALL_EXCEPTION) { return null; }\n throw error;\n }\n }\n\n async _fetchBytes(selector: string, parameters?: string): Promise {\n const result = await this._fetch(selector, parameters);\n if (result != null) { return _parseBytes(result, 0); }\n return null;\n }\n\n _getAddress(coinType: number, hexBytes: string): string {\n const coinInfo = coinInfos[String(coinType)];\n\n if (coinInfo == null) {\n logger.throwError(`unsupported coin type: ${ coinType }`, Logger.errors.UNSUPPORTED_OPERATION, {\n operation: `getAddress(${ coinType })`\n });\n }\n\n if (coinInfo.ilk === \"eth\") {\n return this.provider.formatter.address(hexBytes);\n }\n\n const bytes = arrayify(hexBytes);\n\n // P2PKH: OP_DUP OP_HASH160 OP_EQUALVERIFY OP_CHECKSIG\n if (coinInfo.p2pkh != null) {\n const p2pkh = hexBytes.match(/^0x76a9([0-9a-f][0-9a-f])([0-9a-f]*)88ac$/);\n if (p2pkh) {\n const length = parseInt(p2pkh[1], 16);\n if (p2pkh[2].length === length * 2 && length >= 1 && length <= 75) {\n return base58Encode(concat([ [ coinInfo.p2pkh ], (\"0x\" + p2pkh[2]) ]));\n }\n }\n }\n\n // P2SH: OP_HASH160 OP_EQUAL\n if (coinInfo.p2sh != null) {\n const p2sh = hexBytes.match(/^0xa9([0-9a-f][0-9a-f])([0-9a-f]*)87$/);\n if (p2sh) {\n const length = parseInt(p2sh[1], 16);\n if (p2sh[2].length === length * 2 && length >= 1 && length <= 75) {\n return base58Encode(concat([ [ coinInfo.p2sh ], (\"0x\" + p2sh[2]) ]));\n }\n }\n }\n\n // Bech32\n if (coinInfo.prefix != null) {\n const length = bytes[1];\n\n // https://github.com/bitcoin/bips/blob/master/bip-0141.mediawiki#witness-program\n let version = bytes[0];\n if (version === 0x00) {\n if (length !== 20 && length !== 32) {\n version = -1;\n }\n } else {\n version = -1;\n }\n\n if (version >= 0 && bytes.length === 2 + length && length >= 1 && length <= 75) {\n const words = bech32.toWords(bytes.slice(2));\n words.unshift(version);\n return bech32.encode(coinInfo.prefix, words);\n }\n }\n\n return null;\n }\n\n\n async getAddress(coinType?: number): Promise {\n if (coinType == null) { coinType = 60; }\n\n // If Ethereum, use the standard `addr(bytes32)`\n if (coinType === 60) {\n try {\n // keccak256(\"addr(bytes32)\")\n const result = await this._fetch(\"0x3b3b57de\");\n\n // No address\n if (result === \"0x\" || result === HashZero) { return null; }\n\n return this.provider.formatter.callAddress(result);\n } catch (error) {\n if (error.code === Logger.errors.CALL_EXCEPTION) { return null; }\n throw error;\n }\n }\n\n // keccak256(\"addr(bytes32,uint256\")\n const hexBytes = await this._fetchBytes(\"0xf1cb7e06\", bytes32ify(coinType));\n\n // No address\n if (hexBytes == null || hexBytes === \"0x\") { return null; }\n\n // Compute the address\n const address = this._getAddress(coinType, hexBytes);\n\n if (address == null) {\n logger.throwError(`invalid or unsupported coin data`, Logger.errors.UNSUPPORTED_OPERATION, {\n operation: `getAddress(${ coinType })`,\n coinType: coinType,\n data: hexBytes\n });\n }\n\n return address;\n }\n\n async getAvatar(): Promise {\n const linkage: Array<{ type: string, content: string }> = [ { type: \"name\", content: this.name } ];\n try {\n // test data for ricmoo.eth\n //const avatar = \"eip155:1/erc721:0x265385c7f4132228A0d54EB1A9e7460b91c0cC68/29233\";\n const avatar = await this.getText(\"avatar\");\n if (avatar == null) { return null; }\n\n for (let i = 0; i < matchers.length; i++) {\n const match = avatar.match(matchers[i]);\n if (match == null) { continue; }\n\n const scheme = match[1].toLowerCase();\n\n switch (scheme) {\n case \"https\":\n linkage.push({ type: \"url\", content: avatar });\n return { linkage, url: avatar };\n\n case \"data\":\n linkage.push({ type: \"data\", content: avatar });\n return { linkage, url: avatar };\n\n case \"ipfs\":\n linkage.push({ type: \"ipfs\", content: avatar });\n return { linkage, url: getIpfsLink(avatar) };\n\n case \"erc721\":\n case \"erc1155\": {\n // Depending on the ERC type, use tokenURI(uint256) or url(uint256)\n const selector = (scheme === \"erc721\") ? \"0xc87b56dd\": \"0x0e89341c\";\n linkage.push({ type: scheme, content: avatar });\n\n // The owner of this name\n const owner = (this._resolvedAddress || await this.getAddress());\n\n const comps = (match[2] || \"\").split(\"/\");\n if (comps.length !== 2) { return null; }\n\n const addr = await this.provider.formatter.address(comps[0]);\n const tokenId = hexZeroPad(BigNumber.from(comps[1]).toHexString(), 32);\n\n // Check that this account owns the token\n if (scheme === \"erc721\") {\n // ownerOf(uint256 tokenId)\n const tokenOwner = this.provider.formatter.callAddress(await this.provider.call({\n to: addr, data: hexConcat([ \"0x6352211e\", tokenId ])\n }));\n if (owner !== tokenOwner) { return null; }\n linkage.push({ type: \"owner\", content: tokenOwner });\n\n } else if (scheme === \"erc1155\") {\n // balanceOf(address owner, uint256 tokenId)\n const balance = BigNumber.from(await this.provider.call({\n to: addr, data: hexConcat([ \"0x00fdd58e\", hexZeroPad(owner, 32), tokenId ])\n }));\n if (balance.isZero()) { return null; }\n linkage.push({ type: \"balance\", content: balance.toString() });\n }\n\n // Call the token contract for the metadata URL\n const tx = {\n to: this.provider.formatter.address(comps[0]),\n data: hexConcat([ selector, tokenId ])\n };\n\n let metadataUrl = _parseString(await this.provider.call(tx), 0);\n if (metadataUrl == null) { return null; }\n linkage.push({ type: \"metadata-url-base\", content: metadataUrl });\n\n // ERC-1155 allows a generic {id} in the URL\n if (scheme === \"erc1155\") {\n metadataUrl = metadataUrl.replace(\"{id}\", tokenId.substring(2));\n linkage.push({ type: \"metadata-url-expanded\", content: metadataUrl });\n }\n\n // Transform IPFS metadata links\n if (metadataUrl.match(/^ipfs:/i)) {\n metadataUrl = getIpfsLink(metadataUrl);\n }\n\n linkage.push({ type: \"metadata-url\", content: metadataUrl });\n\n // Get the token metadata\n const metadata = await fetchJson(metadataUrl);\n if (!metadata) { return null; }\n linkage.push({ type: \"metadata\", content: JSON.stringify(metadata) });\n\n // Pull the image URL out\n let imageUrl = metadata.image;\n if (typeof(imageUrl) !== \"string\") { return null; }\n\n if (imageUrl.match(/^(https:\\/\\/|data:)/i)) {\n // Allow\n } else {\n // Transform IPFS link to gateway\n const ipfs = imageUrl.match(matcherIpfs);\n if (ipfs == null) { return null; }\n\n linkage.push({ type: \"url-ipfs\", content: imageUrl });\n imageUrl = getIpfsLink(imageUrl);\n }\n\n linkage.push({ type: \"url\", content: imageUrl });\n\n return { linkage, url: imageUrl };\n }\n }\n }\n } catch (error) { }\n\n return null;\n }\n\n async getContentHash(): Promise {\n\n // keccak256(\"contenthash()\")\n const hexBytes = await this._fetchBytes(\"0xbc1c58d1\");\n\n // No contenthash\n if (hexBytes == null || hexBytes === \"0x\") { return null; }\n\n // IPFS (CID: 1, Type: DAG-PB)\n const ipfs = hexBytes.match(/^0xe3010170(([0-9a-f][0-9a-f])([0-9a-f][0-9a-f])([0-9a-f]*))$/);\n if (ipfs) {\n const length = parseInt(ipfs[3], 16);\n if (ipfs[4].length === length * 2) {\n return \"ipfs:/\\/\" + Base58.encode(\"0x\" + ipfs[1]);\n }\n }\n\n // IPNS (CID: 1, Type: libp2p-key)\n const ipns = hexBytes.match(/^0xe5010172(([0-9a-f][0-9a-f])([0-9a-f][0-9a-f])([0-9a-f]*))$/);\n if (ipns) {\n const length = parseInt(ipns[3], 16);\n if (ipns[4].length === length * 2) {\n return \"ipns:/\\/\" + Base58.encode(\"0x\" + ipns[1]);\n }\n }\n\n // Swarm (CID: 1, Type: swarm-manifest; hash/length hard-coded to keccak256/32)\n const swarm = hexBytes.match(/^0xe40101fa011b20([0-9a-f]*)$/)\n if (swarm) {\n if (swarm[1].length === (32 * 2)) {\n return \"bzz:/\\/\" + swarm[1]\n }\n }\n\n const skynet = hexBytes.match(/^0x90b2c605([0-9a-f]*)$/);\n if (skynet) {\n if (skynet[1].length === (34 * 2)) {\n // URL Safe base64; https://datatracker.ietf.org/doc/html/rfc4648#section-5\n const urlSafe: Record = { \"=\": \"\", \"+\": \"-\", \"/\": \"_\" };\n const hash = base64Encode(\"0x\" + skynet[1]).replace(/[=+\\/]/g, (a) => (urlSafe[a]));\n return \"sia:/\\/\" + hash;\n }\n }\n\n return logger.throwError(`invalid or unsupported content hash data`, Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"getContentHash()\",\n data: hexBytes\n });\n }\n\n async getText(key: string): Promise {\n\n // The key encoded as parameter to fetchBytes\n let keyBytes = toUtf8Bytes(key);\n\n // The nodehash consumes the first slot, so the string pointer targets\n // offset 64, with the length at offset 64 and data starting at offset 96\n keyBytes = concat([ bytes32ify(64), bytes32ify(keyBytes.length), keyBytes ]);\n\n // Pad to word-size (32 bytes)\n if ((keyBytes.length % 32) !== 0) {\n keyBytes = concat([ keyBytes, hexZeroPad(\"0x\", 32 - (key.length % 32)) ])\n }\n\n const hexBytes = await this._fetchBytes(\"0x59d1d43c\", hexlify(keyBytes));\n if (hexBytes == null || hexBytes === \"0x\") { return null; }\n\n return toUtf8String(hexBytes);\n }\n}\n\nlet defaultFormatter: Formatter = null;\n\nlet nextPollId = 1;\n\nexport class BaseProvider extends Provider implements EnsProvider {\n _networkPromise: Promise;\n _network: Network;\n\n _events: Array;\n\n formatter: Formatter;\n\n // To help mitigate the eventually consistent nature of the blockchain\n // we keep a mapping of events we emit. If we emit an event X, we expect\n // that a user should be able to query for that event in the callback,\n // if the node returns null, we stall the response until we get back a\n // meaningful value, since we may be hitting a re-org, or a node that\n // has not indexed the event yet.\n // Events:\n // - t:{hash} - Transaction hash\n // - b:{hash} - BlockHash\n // - block - The most recent emitted block\n _emitted: { [ eventName: string ]: number | \"pending\" };\n\n _pollingInterval: number;\n _poller: NodeJS.Timer;\n _bootstrapPoll: NodeJS.Timer;\n\n _lastBlockNumber: number;\n _maxFilterBlockRange: number;\n\n _fastBlockNumber: number;\n _fastBlockNumberPromise: Promise;\n _fastQueryDate: number;\n\n _maxInternalBlockNumber: number;\n _internalBlockNumber: Promise<{ blockNumber: number, reqTime: number, respTime: number }>;\n\n readonly anyNetwork: boolean;\n\n disableCcipRead: boolean;\n\n\n /**\n * ready\n *\n * A Promise that resolves only once the provider is ready.\n *\n * Sub-classes that call the super with a network without a chainId\n * MUST set this. Standard named networks have a known chainId.\n *\n */\n\n constructor(network: Networkish | Promise) {\n super();\n\n // Events being listened to\n this._events = [];\n\n this._emitted = { block: -2 };\n\n this.disableCcipRead = false;\n\n this.formatter = new.target.getFormatter();\n\n // If network is any, this Provider allows the underlying\n // network to change dynamically, and we auto-detect the\n // current network\n defineReadOnly(this, \"anyNetwork\", (network === \"any\"));\n if (this.anyNetwork) { network = this.detectNetwork(); }\n\n if (network instanceof Promise) {\n this._networkPromise = network;\n\n // Squash any \"unhandled promise\" errors; that do not need to be handled\n network.catch((error) => { });\n\n // Trigger initial network setting (async)\n this._ready().catch((error) => { });\n\n } else {\n const knownNetwork = getStatic<(network: Networkish) => Network>(new.target, \"getNetwork\")(network);\n if (knownNetwork) {\n defineReadOnly(this, \"_network\", knownNetwork);\n this.emit(\"network\", knownNetwork, null);\n\n } else {\n logger.throwArgumentError(\"invalid network\", \"network\", network);\n }\n }\n\n this._maxInternalBlockNumber = -1024;\n\n this._lastBlockNumber = -2;\n this._maxFilterBlockRange = 10;\n\n this._pollingInterval = 4000;\n\n this._fastQueryDate = 0;\n }\n\n async _ready(): Promise {\n if (this._network == null) {\n let network: Network = null;\n if (this._networkPromise) {\n try {\n network = await this._networkPromise;\n } catch (error) { }\n }\n\n // Try the Provider's network detection (this MUST throw if it cannot)\n if (network == null) {\n network = await this.detectNetwork();\n }\n\n // This should never happen; every Provider sub-class should have\n // suggested a network by here (or have thrown).\n if (!network) {\n logger.throwError(\"no network detected\", Logger.errors.UNKNOWN_ERROR, { });\n }\n\n // Possible this call stacked so do not call defineReadOnly again\n if (this._network == null) {\n if (this.anyNetwork) {\n this._network = network;\n } else {\n defineReadOnly(this, \"_network\", network);\n }\n this.emit(\"network\", network, null);\n }\n }\n\n return this._network;\n }\n\n // This will always return the most recently established network.\n // For \"any\", this can change (a \"network\" event is emitted before\n // any change is reflected); otherwise this cannot change\n get ready(): Promise {\n return poll(() => {\n return this._ready().then((network) => {\n return network;\n }, (error) => {\n // If the network isn't running yet, we will wait\n if (error.code === Logger.errors.NETWORK_ERROR && error.event === \"noNetwork\") {\n return undefined;\n }\n throw error;\n });\n });\n }\n\n // @TODO: Remove this and just create a singleton formatter\n static getFormatter(): Formatter {\n if (defaultFormatter == null) {\n defaultFormatter = new Formatter();\n }\n return defaultFormatter;\n }\n\n // @TODO: Remove this and just use getNetwork\n static getNetwork(network: Networkish): Network {\n return getNetwork((network == null) ? \"homestead\": network);\n }\n\n async ccipReadFetch(tx: Transaction, calldata: string, urls: Array): Promise {\n if (this.disableCcipRead || urls.length === 0) { return null; }\n\n const sender = tx.to.toLowerCase();\n const data = calldata.toLowerCase();\n\n const errorMessages: Array = [ ];\n\n for (let i = 0; i < urls.length; i++) {\n const url = urls[i];\n\n // URL expansion\n const href = url.replace(\"{sender}\", sender).replace(\"{data}\", data);\n\n // If no {data} is present, use POST; otherwise GET\n const json: string | null = (url.indexOf(\"{data}\") >= 0) ? null: JSON.stringify({ data, sender });\n\n const result = await fetchJson({ url: href, errorPassThrough: true }, json, (value, response) => {\n value.status = response.statusCode;\n return value;\n });\n\n if (result.data) { return result.data; }\n\n const errorMessage = (result.message || \"unknown error\");\n\n // 4xx indicates the result is not present; stop\n if (result.status >= 400 && result.status < 500) {\n return logger.throwError(`response not found during CCIP fetch: ${ errorMessage }`, Logger.errors.SERVER_ERROR, { url, errorMessage });\n }\n\n // 5xx indicates server issue; try the next url\n errorMessages.push(errorMessage);\n }\n\n return logger.throwError(`error encountered during CCIP fetch: ${ errorMessages.map((m) => JSON.stringify(m)).join(\", \") }`, Logger.errors.SERVER_ERROR, {\n urls, errorMessages\n });\n }\n\n // Fetches the blockNumber, but will reuse any result that is less\n // than maxAge old or has been requested since the last request\n async _getInternalBlockNumber(maxAge: number): Promise {\n await this._ready();\n\n // Allowing stale data up to maxAge old\n if (maxAge > 0) {\n\n // While there are pending internal block requests...\n while (this._internalBlockNumber) {\n\n // ...\"remember\" which fetch we started with\n const internalBlockNumber = this._internalBlockNumber;\n\n try {\n // Check the result is not too stale\n const result = await internalBlockNumber;\n if ((getTime() - result.respTime) <= maxAge) {\n return result.blockNumber;\n }\n\n // Too old; fetch a new value\n break;\n\n } catch(error) {\n\n // The fetch rejected; if we are the first to get the\n // rejection, drop through so we replace it with a new\n // fetch; all others blocked will then get that fetch\n // which won't match the one they \"remembered\" and loop\n if (this._internalBlockNumber === internalBlockNumber) {\n break;\n }\n }\n }\n }\n\n const reqTime = getTime();\n\n const checkInternalBlockNumber = resolveProperties({\n blockNumber: this.perform(\"getBlockNumber\", { }),\n networkError: this.getNetwork().then((network) => (null), (error) => (error))\n }).then(({ blockNumber, networkError }) => {\n if (networkError) {\n // Unremember this bad internal block number\n if (this._internalBlockNumber === checkInternalBlockNumber) {\n this._internalBlockNumber = null;\n }\n throw networkError;\n }\n\n const respTime = getTime();\n\n blockNumber = BigNumber.from(blockNumber).toNumber();\n if (blockNumber < this._maxInternalBlockNumber) { blockNumber = this._maxInternalBlockNumber; }\n\n this._maxInternalBlockNumber = blockNumber;\n this._setFastBlockNumber(blockNumber); // @TODO: Still need this?\n return { blockNumber, reqTime, respTime };\n });\n\n this._internalBlockNumber = checkInternalBlockNumber;\n\n // Swallow unhandled exceptions; if needed they are handled else where\n checkInternalBlockNumber.catch((error) => {\n // Don't null the dead (rejected) fetch, if it has already been updated\n if (this._internalBlockNumber === checkInternalBlockNumber) {\n this._internalBlockNumber = null;\n }\n });\n\n return (await checkInternalBlockNumber).blockNumber;\n }\n\n async poll(): Promise {\n const pollId = nextPollId++;\n\n // Track all running promises, so we can trigger a post-poll once they are complete\n const runners: Array> = [];\n\n let blockNumber: number = null;\n try {\n blockNumber = await this._getInternalBlockNumber(100 + this.pollingInterval / 2);\n } catch (error) {\n this.emit(\"error\", error);\n return;\n }\n this._setFastBlockNumber(blockNumber);\n\n // Emit a poll event after we have the latest (fast) block number\n this.emit(\"poll\", pollId, blockNumber);\n\n // If the block has not changed, meh.\n if (blockNumber === this._lastBlockNumber) {\n this.emit(\"didPoll\", pollId);\n return;\n }\n\n // First polling cycle, trigger a \"block\" events\n if (this._emitted.block === -2) {\n this._emitted.block = blockNumber - 1;\n }\n\n if (Math.abs(((this._emitted.block)) - blockNumber) > 1000) {\n logger.warn(`network block skew detected; skipping block events (emitted=${ this._emitted.block } blockNumber${ blockNumber })`);\n this.emit(\"error\", logger.makeError(\"network block skew detected\", Logger.errors.NETWORK_ERROR, {\n blockNumber: blockNumber,\n event: \"blockSkew\",\n previousBlockNumber: this._emitted.block\n }));\n this.emit(\"block\", blockNumber);\n\n } else {\n // Notify all listener for each block that has passed\n for (let i = (this._emitted.block) + 1; i <= blockNumber; i++) {\n this.emit(\"block\", i);\n }\n }\n\n // The emitted block was updated, check for obsolete events\n if ((this._emitted.block) !== blockNumber) {\n this._emitted.block = blockNumber;\n\n Object.keys(this._emitted).forEach((key) => {\n // The block event does not expire\n if (key === \"block\") { return; }\n\n // The block we were at when we emitted this event\n const eventBlockNumber = this._emitted[key];\n\n // We cannot garbage collect pending transactions or blocks here\n // They should be garbage collected by the Provider when setting\n // \"pending\" events\n if (eventBlockNumber === \"pending\") { return; }\n\n // Evict any transaction hashes or block hashes over 12 blocks\n // old, since they should not return null anyways\n if (blockNumber - eventBlockNumber > 12) {\n delete this._emitted[key];\n }\n });\n }\n\n // First polling cycle\n if (this._lastBlockNumber === -2) {\n this._lastBlockNumber = blockNumber - 1;\n }\n // Find all transaction hashes we are waiting on\n this._events.forEach((event) => {\n switch (event.type) {\n case \"tx\": {\n const hash = event.hash;\n let runner = this.getTransactionReceipt(hash).then((receipt) => {\n if (!receipt || receipt.blockNumber == null) { return null; }\n this._emitted[\"t:\" + hash] = receipt.blockNumber;\n this.emit(hash, receipt);\n return null;\n }).catch((error: Error) => { this.emit(\"error\", error); });\n\n runners.push(runner);\n\n break;\n }\n\n case \"filter\": {\n // We only allow a single getLogs to be in-flight at a time\n if (!event._inflight) {\n event._inflight = true;\n\n // This is the first filter for this event, so we want to\n // restrict events to events that happened no earlier than now\n if (event._lastBlockNumber === -2) {\n event._lastBlockNumber = blockNumber - 1;\n }\n\n // Filter from the last *known* event; due to load-balancing\n // and some nodes returning updated block numbers before\n // indexing events, a logs result with 0 entries cannot be\n // trusted and we must retry a range which includes it again\n const filter = event.filter;\n filter.fromBlock = event._lastBlockNumber + 1;\n filter.toBlock = blockNumber;\n\n // Prevent fitler ranges from growing too wild, since it is quite\n // likely there just haven't been any events to move the lastBlockNumber.\n const minFromBlock = filter.toBlock - this._maxFilterBlockRange;\n if (minFromBlock > filter.fromBlock) { filter.fromBlock = minFromBlock; }\n\n if (filter.fromBlock < 0) { filter.fromBlock = 0; }\n\n const runner = this.getLogs(filter).then((logs) => {\n // Allow the next getLogs\n event._inflight = false;\n\n if (logs.length === 0) { return; }\n\n logs.forEach((log: Log) => {\n // Only when we get an event for a given block number\n // can we trust the events are indexed\n if (log.blockNumber > event._lastBlockNumber) {\n event._lastBlockNumber = log.blockNumber;\n }\n\n // Make sure we stall requests to fetch blocks and txs\n this._emitted[\"b:\" + log.blockHash] = log.blockNumber;\n this._emitted[\"t:\" + log.transactionHash] = log.blockNumber;\n\n this.emit(filter, log);\n });\n }).catch((error: Error) => {\n this.emit(\"error\", error);\n\n // Allow another getLogs (the range was not updated)\n event._inflight = false;\n });\n runners.push(runner);\n }\n\n break;\n }\n }\n });\n\n this._lastBlockNumber = blockNumber;\n\n // Once all events for this loop have been processed, emit \"didPoll\"\n Promise.all(runners).then(() => {\n this.emit(\"didPoll\", pollId);\n }).catch((error) => { this.emit(\"error\", error); });\n\n return;\n }\n\n // Deprecated; do not use this\n resetEventsBlock(blockNumber: number): void {\n this._lastBlockNumber = blockNumber - 1;\n if (this.polling) { this.poll(); }\n }\n\n get network(): Network {\n return this._network;\n }\n\n // This method should query the network if the underlying network\n // can change, such as when connected to a JSON-RPC backend\n async detectNetwork(): Promise {\n return logger.throwError(\"provider does not support network detection\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"provider.detectNetwork\"\n });\n }\n\n async getNetwork(): Promise {\n const network = await this._ready();\n\n // Make sure we are still connected to the same network; this is\n // only an external call for backends which can have the underlying\n // network change spontaneously\n const currentNetwork = await this.detectNetwork();\n if (network.chainId !== currentNetwork.chainId) {\n\n // We are allowing network changes, things can get complex fast;\n // make sure you know what you are doing if you use \"any\"\n if (this.anyNetwork) {\n this._network = currentNetwork;\n\n // Reset all internal block number guards and caches\n this._lastBlockNumber = -2;\n this._fastBlockNumber = null;\n this._fastBlockNumberPromise = null;\n this._fastQueryDate = 0;\n this._emitted.block = -2;\n this._maxInternalBlockNumber = -1024;\n this._internalBlockNumber = null;\n\n // The \"network\" event MUST happen before this method resolves\n // so any events have a chance to unregister, so we stall an\n // additional event loop before returning from /this/ call\n this.emit(\"network\", currentNetwork, network);\n await stall(0);\n\n return this._network;\n }\n\n const error = logger.makeError(\"underlying network changed\", Logger.errors.NETWORK_ERROR, {\n event: \"changed\",\n network: network,\n detectedNetwork: currentNetwork\n });\n\n this.emit(\"error\", error);\n throw error;\n }\n\n return network;\n }\n\n get blockNumber(): number {\n this._getInternalBlockNumber(100 + this.pollingInterval / 2).then((blockNumber) => {\n this._setFastBlockNumber(blockNumber);\n }, (error) => { });\n\n return (this._fastBlockNumber != null) ? this._fastBlockNumber: -1;\n }\n\n get polling(): boolean {\n return (this._poller != null);\n }\n\n set polling(value: boolean) {\n if (value && !this._poller) {\n this._poller = setInterval(() => { this.poll(); }, this.pollingInterval);\n\n if (!this._bootstrapPoll) {\n this._bootstrapPoll = setTimeout(() => {\n this.poll();\n\n // We block additional polls until the polling interval\n // is done, to prevent overwhelming the poll function\n this._bootstrapPoll = setTimeout(() => {\n // If polling was disabled, something may require a poke\n // since starting the bootstrap poll and it was disabled\n if (!this._poller) { this.poll(); }\n\n // Clear out the bootstrap so we can do another\n this._bootstrapPoll = null;\n }, this.pollingInterval);\n }, 0);\n }\n\n } else if (!value && this._poller) {\n clearInterval(this._poller);\n this._poller = null;\n }\n }\n\n get pollingInterval(): number {\n return this._pollingInterval;\n }\n\n set pollingInterval(value: number) {\n if (typeof(value) !== \"number\" || value <= 0 || parseInt(String(value)) != value) {\n throw new Error(\"invalid polling interval\");\n }\n\n this._pollingInterval = value;\n\n if (this._poller) {\n clearInterval(this._poller);\n this._poller = setInterval(() => { this.poll(); }, this._pollingInterval);\n }\n }\n\n _getFastBlockNumber(): Promise {\n const now = getTime();\n\n // Stale block number, request a newer value\n if ((now - this._fastQueryDate) > 2 * this._pollingInterval) {\n this._fastQueryDate = now;\n this._fastBlockNumberPromise = this.getBlockNumber().then((blockNumber) => {\n if (this._fastBlockNumber == null || blockNumber > this._fastBlockNumber) {\n this._fastBlockNumber = blockNumber;\n }\n return this._fastBlockNumber;\n });\n }\n\n return this._fastBlockNumberPromise;\n }\n\n _setFastBlockNumber(blockNumber: number): void {\n // Older block, maybe a stale request\n if (this._fastBlockNumber != null && blockNumber < this._fastBlockNumber) { return; }\n\n // Update the time we updated the blocknumber\n this._fastQueryDate = getTime();\n\n // Newer block number, use it\n if (this._fastBlockNumber == null || blockNumber > this._fastBlockNumber) {\n this._fastBlockNumber = blockNumber;\n this._fastBlockNumberPromise = Promise.resolve(blockNumber);\n }\n }\n\n async waitForTransaction(transactionHash: string, confirmations?: number, timeout?: number): Promise {\n return this._waitForTransaction(transactionHash, (confirmations == null) ? 1: confirmations, timeout || 0, null);\n }\n\n async _waitForTransaction(transactionHash: string, confirmations: number, timeout: number, replaceable: { data: string, from: string, nonce: number, to: string, value: BigNumber, startBlock: number }): Promise {\n const receipt = await this.getTransactionReceipt(transactionHash);\n\n // Receipt is already good\n if ((receipt ? receipt.confirmations: 0) >= confirmations) { return receipt; }\n\n // Poll until the receipt is good...\n return new Promise((resolve, reject) => {\n const cancelFuncs: Array<() => void> = [];\n\n let done = false;\n const alreadyDone = function() {\n if (done) { return true; }\n done = true;\n cancelFuncs.forEach((func) => { func(); });\n return false;\n };\n\n const minedHandler = (receipt: TransactionReceipt) => {\n if (receipt.confirmations < confirmations) { return; }\n if (alreadyDone()) { return; }\n resolve(receipt);\n }\n this.on(transactionHash, minedHandler);\n cancelFuncs.push(() => { this.removeListener(transactionHash, minedHandler); });\n\n if (replaceable) {\n let lastBlockNumber = replaceable.startBlock;\n let scannedBlock: number = null;\n const replaceHandler = async (blockNumber: number) => {\n if (done) { return; }\n\n // Wait 1 second; this is only used in the case of a fault, so\n // we will trade off a little bit of latency for more consistent\n // results and fewer JSON-RPC calls\n await stall(1000);\n\n this.getTransactionCount(replaceable.from).then(async (nonce) => {\n if (done) { return; }\n\n if (nonce <= replaceable.nonce) {\n lastBlockNumber = blockNumber;\n\n } else {\n // First check if the transaction was mined\n {\n const mined = await this.getTransaction(transactionHash);\n if (mined && mined.blockNumber != null) { return; }\n }\n\n // First time scanning. We start a little earlier for some\n // wiggle room here to handle the eventually consistent nature\n // of blockchain (e.g. the getTransactionCount was for a\n // different block)\n if (scannedBlock == null) {\n scannedBlock = lastBlockNumber - 3;\n if (scannedBlock < replaceable.startBlock) {\n scannedBlock = replaceable.startBlock;\n }\n }\n\n while (scannedBlock <= blockNumber) {\n if (done) { return; }\n\n const block = await this.getBlockWithTransactions(scannedBlock);\n for (let ti = 0; ti < block.transactions.length; ti++) {\n const tx = block.transactions[ti];\n\n // Successfully mined!\n if (tx.hash === transactionHash) { return; }\n\n // Matches our transaction from and nonce; its a replacement\n if (tx.from === replaceable.from && tx.nonce === replaceable.nonce) {\n if (done) { return; }\n\n // Get the receipt of the replacement\n const receipt = await this.waitForTransaction(tx.hash, confirmations);\n\n // Already resolved or rejected (prolly a timeout)\n if (alreadyDone()) { return; }\n\n // The reason we were replaced\n let reason = \"replaced\";\n if (tx.data === replaceable.data && tx.to === replaceable.to && tx.value.eq(replaceable.value)) {\n reason = \"repriced\";\n } else if (tx.data === \"0x\" && tx.from === tx.to && tx.value.isZero()) {\n reason = \"cancelled\"\n }\n\n // Explain why we were replaced\n reject(logger.makeError(\"transaction was replaced\", Logger.errors.TRANSACTION_REPLACED, {\n cancelled: (reason === \"replaced\" || reason === \"cancelled\"),\n reason,\n replacement: this._wrapTransaction(tx),\n hash: transactionHash,\n receipt\n }));\n\n return;\n }\n }\n scannedBlock++;\n }\n }\n\n if (done) { return; }\n this.once(\"block\", replaceHandler);\n\n }, (error) => {\n if (done) { return; }\n this.once(\"block\", replaceHandler);\n });\n };\n\n if (done) { return; }\n this.once(\"block\", replaceHandler);\n\n cancelFuncs.push(() => {\n this.removeListener(\"block\", replaceHandler);\n });\n }\n\n if (typeof(timeout) === \"number\" && timeout > 0) {\n const timer = setTimeout(() => {\n if (alreadyDone()) { return; }\n reject(logger.makeError(\"timeout exceeded\", Logger.errors.TIMEOUT, { timeout: timeout }));\n }, timeout);\n if (timer.unref) { timer.unref(); }\n\n cancelFuncs.push(() => { clearTimeout(timer); });\n }\n });\n }\n\n async getBlockNumber(): Promise {\n return this._getInternalBlockNumber(0);\n }\n\n async getGasPrice(): Promise {\n await this.getNetwork();\n\n const result = await this.perform(\"getGasPrice\", { });\n try {\n return BigNumber.from(result);\n } catch (error) {\n return logger.throwError(\"bad result from backend\", Logger.errors.SERVER_ERROR, {\n method: \"getGasPrice\",\n result, error\n });\n }\n }\n\n async getBalance(addressOrName: string | Promise, blockTag?: BlockTag | Promise): Promise {\n await this.getNetwork();\n const params = await resolveProperties({\n address: this._getAddress(addressOrName),\n blockTag: this._getBlockTag(blockTag)\n });\n\n const result = await this.perform(\"getBalance\", params);\n try {\n return BigNumber.from(result);\n } catch (error) {\n return logger.throwError(\"bad result from backend\", Logger.errors.SERVER_ERROR, {\n method: \"getBalance\",\n params, result, error\n });\n }\n }\n\n async getTransactionCount(addressOrName: string | Promise, blockTag?: BlockTag | Promise): Promise {\n await this.getNetwork();\n const params = await resolveProperties({\n address: this._getAddress(addressOrName),\n blockTag: this._getBlockTag(blockTag)\n });\n\n const result = await this.perform(\"getTransactionCount\", params);\n try {\n return BigNumber.from(result).toNumber();\n } catch (error) {\n return logger.throwError(\"bad result from backend\", Logger.errors.SERVER_ERROR, {\n method: \"getTransactionCount\",\n params, result, error\n });\n }\n }\n\n async getCode(addressOrName: string | Promise, blockTag?: BlockTag | Promise): Promise {\n await this.getNetwork();\n const params = await resolveProperties({\n address: this._getAddress(addressOrName),\n blockTag: this._getBlockTag(blockTag)\n });\n\n const result = await this.perform(\"getCode\", params);\n try {\n return hexlify(result);\n } catch (error) {\n return logger.throwError(\"bad result from backend\", Logger.errors.SERVER_ERROR, {\n method: \"getCode\",\n params, result, error\n });\n }\n }\n\n async getStorageAt(addressOrName: string | Promise, position: BigNumberish | Promise, blockTag?: BlockTag | Promise): Promise {\n await this.getNetwork();\n const params = await resolveProperties({\n address: this._getAddress(addressOrName),\n blockTag: this._getBlockTag(blockTag),\n position: Promise.resolve(position).then((p) => hexValue(p))\n });\n const result = await this.perform(\"getStorageAt\", params);\n try {\n return hexlify(result);\n } catch (error) {\n return logger.throwError(\"bad result from backend\", Logger.errors.SERVER_ERROR, {\n method: \"getStorageAt\",\n params, result, error\n });\n }\n }\n\n // This should be called by any subclass wrapping a TransactionResponse\n _wrapTransaction(tx: Transaction, hash?: string, startBlock?: number): TransactionResponse {\n if (hash != null && hexDataLength(hash) !== 32) { throw new Error(\"invalid response - sendTransaction\"); }\n\n const result = tx;\n\n // Check the hash we expect is the same as the hash the server reported\n if (hash != null && tx.hash !== hash) {\n logger.throwError(\"Transaction hash mismatch from Provider.sendTransaction.\", Logger.errors.UNKNOWN_ERROR, { expectedHash: tx.hash, returnedHash: hash });\n }\n\n result.wait = async (confirms?: number, timeout?: number) => {\n if (confirms == null) { confirms = 1; }\n if (timeout == null) { timeout = 0; }\n\n // Get the details to detect replacement\n let replacement = undefined;\n if (confirms !== 0 && startBlock != null) {\n replacement = {\n data: tx.data,\n from: tx.from,\n nonce: tx.nonce,\n to: tx.to,\n value: tx.value,\n startBlock\n };\n }\n\n const receipt = await this._waitForTransaction(tx.hash, confirms, timeout, replacement);\n if (receipt == null && confirms === 0) { return null; }\n\n // No longer pending, allow the polling loop to garbage collect this\n this._emitted[\"t:\" + tx.hash] = receipt.blockNumber;\n\n if (receipt.status === 0) {\n logger.throwError(\"transaction failed\", Logger.errors.CALL_EXCEPTION, {\n transactionHash: tx.hash,\n transaction: tx,\n receipt: receipt\n });\n }\n return receipt;\n };\n\n return result;\n }\n\n async sendTransaction(signedTransaction: string | Promise): Promise {\n await this.getNetwork();\n const hexTx = await Promise.resolve(signedTransaction).then(t => hexlify(t));\n const tx = this.formatter.transaction(signedTransaction);\n if (tx.confirmations == null) { tx.confirmations = 0; }\n const blockNumber = await this._getInternalBlockNumber(100 + 2 * this.pollingInterval);\n try {\n const hash = await this.perform(\"sendTransaction\", { signedTransaction: hexTx });\n return this._wrapTransaction(tx, hash, blockNumber);\n } catch (error) {\n (error).transaction = tx;\n (error).transactionHash = tx.hash;\n throw error;\n }\n }\n\n async _getTransactionRequest(transaction: Deferrable): Promise {\n const values: any = await transaction;\n\n const tx: any = { };\n\n [\"from\", \"to\"].forEach((key) => {\n if (values[key] == null) { return; }\n tx[key] = Promise.resolve(values[key]).then((v) => (v ? this._getAddress(v): null))\n });\n\n [\"gasLimit\", \"gasPrice\", \"maxFeePerGas\", \"maxPriorityFeePerGas\", \"value\"].forEach((key) => {\n if (values[key] == null) { return; }\n tx[key] = Promise.resolve(values[key]).then((v) => (v ? BigNumber.from(v): null));\n });\n\n [\"type\"].forEach((key) => {\n if (values[key] == null) { return; }\n tx[key] = Promise.resolve(values[key]).then((v) => ((v != null) ? v: null));\n });\n\n if (values.accessList) {\n tx.accessList = this.formatter.accessList(values.accessList);\n }\n\n [\"data\"].forEach((key) => {\n if (values[key] == null) { return; }\n tx[key] = Promise.resolve(values[key]).then((v) => (v ? hexlify(v): null));\n });\n\n return this.formatter.transactionRequest(await resolveProperties(tx));\n }\n\n async _getFilter(filter: Filter | FilterByBlockHash | Promise): Promise {\n filter = await filter;\n\n const result: any = { };\n\n if (filter.address != null) {\n result.address = this._getAddress(filter.address);\n }\n\n [\"blockHash\", \"topics\"].forEach((key) => {\n if ((filter)[key] == null) { return; }\n result[key] = (filter)[key];\n });\n\n [\"fromBlock\", \"toBlock\"].forEach((key) => {\n if ((filter)[key] == null) { return; }\n result[key] = this._getBlockTag((filter)[key]);\n });\n\n return this.formatter.filter(await resolveProperties(result));\n }\n\n async _call(transaction: TransactionRequest, blockTag: BlockTag, attempt: number): Promise {\n if (attempt >= MAX_CCIP_REDIRECTS) {\n logger.throwError(\"CCIP read exceeded maximum redirections\", Logger.errors.SERVER_ERROR, {\n redirects: attempt, transaction\n });\n }\n\n const txSender = transaction.to;\n\n const result = await this.perform(\"call\", { transaction, blockTag });\n\n // CCIP Read request via OffchainLookup(address,string[],bytes,bytes4,bytes)\n if (attempt >= 0 && blockTag === \"latest\" && txSender != null && result.substring(0, 10) === \"0x556f1830\" && (hexDataLength(result) % 32 === 4)) {\n try {\n const data = hexDataSlice(result, 4);\n\n // Check the sender of the OffchainLookup matches the transaction\n const sender = hexDataSlice(data, 0, 32);\n if (!BigNumber.from(sender).eq(txSender)) {\n logger.throwError(\"CCIP Read sender did not match\", Logger.errors.CALL_EXCEPTION, {\n name: \"OffchainLookup\",\n signature: \"OffchainLookup(address,string[],bytes,bytes4,bytes)\",\n transaction, data: result\n });\n }\n\n // Read the URLs from the response\n const urls: Array = [];\n const urlsOffset = BigNumber.from(hexDataSlice(data, 32, 64)).toNumber();\n const urlsLength = BigNumber.from(hexDataSlice(data, urlsOffset, urlsOffset + 32)).toNumber();\n const urlsData = hexDataSlice(data, urlsOffset + 32);\n for (let u = 0; u < urlsLength; u++) {\n const url = _parseString(urlsData, u * 32);\n if (url == null) {\n logger.throwError(\"CCIP Read contained corrupt URL string\", Logger.errors.CALL_EXCEPTION, {\n name: \"OffchainLookup\",\n signature: \"OffchainLookup(address,string[],bytes,bytes4,bytes)\",\n transaction, data: result\n });\n }\n urls.push(url);\n }\n\n // Get the CCIP calldata to forward\n const calldata = _parseBytes(data, 64);\n\n // Get the callbackSelector (bytes4)\n if (!BigNumber.from(hexDataSlice(data, 100, 128)).isZero()) {\n logger.throwError(\"CCIP Read callback selector included junk\", Logger.errors.CALL_EXCEPTION, {\n name: \"OffchainLookup\",\n signature: \"OffchainLookup(address,string[],bytes,bytes4,bytes)\",\n transaction, data: result\n });\n }\n const callbackSelector = hexDataSlice(data, 96, 100);\n\n // Get the extra data to send back to the contract as context\n const extraData = _parseBytes(data, 128);\n\n const ccipResult = await this.ccipReadFetch(transaction, calldata, urls);\n if (ccipResult == null) {\n logger.throwError(\"CCIP Read disabled or provided no URLs\", Logger.errors.CALL_EXCEPTION, {\n name: \"OffchainLookup\",\n signature: \"OffchainLookup(address,string[],bytes,bytes4,bytes)\",\n transaction, data: result\n });\n }\n\n const tx = {\n to: txSender,\n data: hexConcat([ callbackSelector, encodeBytes([ ccipResult, extraData ]) ])\n };\n\n return this._call(tx, blockTag, attempt + 1);\n\n } catch (error) {\n if (error.code === Logger.errors.SERVER_ERROR) { throw error; }\n }\n }\n\n try {\n return hexlify(result);\n } catch (error) {\n return logger.throwError(\"bad result from backend\", Logger.errors.SERVER_ERROR, {\n method: \"call\",\n params: { transaction, blockTag }, result, error\n });\n }\n\n }\n\n async call(transaction: Deferrable, blockTag?: BlockTag | Promise): Promise {\n await this.getNetwork();\n const resolved = await resolveProperties({\n transaction: this._getTransactionRequest(transaction),\n blockTag: this._getBlockTag(blockTag),\n ccipReadEnabled: Promise.resolve(transaction.ccipReadEnabled)\n });\n return this._call(resolved.transaction, resolved.blockTag, resolved.ccipReadEnabled ? 0: -1);\n }\n\n async estimateGas(transaction: Deferrable): Promise {\n await this.getNetwork();\n const params = await resolveProperties({\n transaction: this._getTransactionRequest(transaction)\n });\n\n const result = await this.perform(\"estimateGas\", params);\n try {\n return BigNumber.from(result);\n } catch (error) {\n return logger.throwError(\"bad result from backend\", Logger.errors.SERVER_ERROR, {\n method: \"estimateGas\",\n params, result, error\n });\n }\n }\n\n async _getAddress(addressOrName: string | Promise): Promise {\n addressOrName = await addressOrName;\n if (typeof(addressOrName) !== \"string\") {\n logger.throwArgumentError(\"invalid address or ENS name\", \"name\", addressOrName);\n }\n\n const address = await this.resolveName(addressOrName);\n if (address == null) {\n logger.throwError(\"ENS name not configured\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: `resolveName(${ JSON.stringify(addressOrName) })`\n });\n }\n return address;\n }\n\n async _getBlock(blockHashOrBlockTag: BlockTag | string | Promise, includeTransactions?: boolean): Promise {\n await this.getNetwork();\n\n blockHashOrBlockTag = await blockHashOrBlockTag;\n\n // If blockTag is a number (not \"latest\", etc), this is the block number\n let blockNumber = -128;\n\n const params: { [key: string]: any } = {\n includeTransactions: !!includeTransactions\n };\n\n if (isHexString(blockHashOrBlockTag, 32)) {\n params.blockHash = blockHashOrBlockTag;\n } else {\n try {\n params.blockTag = await this._getBlockTag(blockHashOrBlockTag);\n if (isHexString(params.blockTag)) {\n blockNumber = parseInt(params.blockTag.substring(2), 16);\n }\n } catch (error) {\n logger.throwArgumentError(\"invalid block hash or block tag\", \"blockHashOrBlockTag\", blockHashOrBlockTag);\n }\n }\n\n return poll(async () => {\n const block = await this.perform(\"getBlock\", params);\n\n // Block was not found\n if (block == null) {\n\n // For blockhashes, if we didn't say it existed, that blockhash may\n // not exist. If we did see it though, perhaps from a log, we know\n // it exists, and this node is just not caught up yet.\n if (params.blockHash != null) {\n if (this._emitted[\"b:\" + params.blockHash] == null) { return null; }\n }\n\n // For block tags, if we are asking for a future block, we return null\n if (params.blockTag != null) {\n if (blockNumber > this._emitted.block) { return null; }\n }\n\n // Retry on the next block\n return undefined;\n }\n\n // Add transactions\n if (includeTransactions) {\n let blockNumber: number = null;\n for (let i = 0; i < block.transactions.length; i++) {\n const tx = block.transactions[i];\n if (tx.blockNumber == null) {\n tx.confirmations = 0;\n\n } else if (tx.confirmations == null) {\n if (blockNumber == null) {\n blockNumber = await this._getInternalBlockNumber(100 + 2 * this.pollingInterval);\n }\n\n // Add the confirmations using the fast block number (pessimistic)\n let confirmations = (blockNumber - tx.blockNumber) + 1;\n if (confirmations <= 0) { confirmations = 1; }\n tx.confirmations = confirmations;\n }\n }\n\n const blockWithTxs: any = this.formatter.blockWithTransactions(block);\n blockWithTxs.transactions = blockWithTxs.transactions.map((tx: TransactionResponse) => this._wrapTransaction(tx));\n return blockWithTxs;\n }\n\n return this.formatter.block(block);\n\n }, { oncePoll: this });\n }\n\n getBlock(blockHashOrBlockTag: BlockTag | string | Promise): Promise {\n return >(this._getBlock(blockHashOrBlockTag, false));\n }\n\n getBlockWithTransactions(blockHashOrBlockTag: BlockTag | string | Promise): Promise {\n return >(this._getBlock(blockHashOrBlockTag, true));\n }\n\n async getTransaction(transactionHash: string | Promise): Promise {\n await this.getNetwork();\n transactionHash = await transactionHash;\n\n const params = { transactionHash: this.formatter.hash(transactionHash, true) };\n\n return poll(async () => {\n const result = await this.perform(\"getTransaction\", params);\n\n if (result == null) {\n if (this._emitted[\"t:\" + transactionHash] == null) {\n return null;\n }\n return undefined;\n }\n\n const tx = this.formatter.transactionResponse(result);\n\n if (tx.blockNumber == null) {\n tx.confirmations = 0;\n\n } else if (tx.confirmations == null) {\n const blockNumber = await this._getInternalBlockNumber(100 + 2 * this.pollingInterval);\n\n // Add the confirmations using the fast block number (pessimistic)\n let confirmations = (blockNumber - tx.blockNumber) + 1;\n if (confirmations <= 0) { confirmations = 1; }\n tx.confirmations = confirmations;\n }\n\n return this._wrapTransaction(tx);\n }, { oncePoll: this });\n }\n\n async getTransactionReceipt(transactionHash: string | Promise): Promise {\n await this.getNetwork();\n\n transactionHash = await transactionHash;\n\n const params = { transactionHash: this.formatter.hash(transactionHash, true) };\n\n return poll(async () => {\n const result = await this.perform(\"getTransactionReceipt\", params);\n\n if (result == null) {\n if (this._emitted[\"t:\" + transactionHash] == null) {\n return null;\n }\n return undefined;\n }\n\n // \"geth-etc\" returns receipts before they are ready\n if (result.blockHash == null) { return undefined; }\n\n const receipt = this.formatter.receipt(result);\n\n if (receipt.blockNumber == null) {\n receipt.confirmations = 0;\n\n } else if (receipt.confirmations == null) {\n const blockNumber = await this._getInternalBlockNumber(100 + 2 * this.pollingInterval);\n\n // Add the confirmations using the fast block number (pessimistic)\n let confirmations = (blockNumber - receipt.blockNumber) + 1;\n if (confirmations <= 0) { confirmations = 1; }\n receipt.confirmations = confirmations;\n }\n\n return receipt;\n }, { oncePoll: this });\n }\n\n async getLogs(filter: Filter | FilterByBlockHash | Promise): Promise> {\n await this.getNetwork();\n const params = await resolveProperties({ filter: this._getFilter(filter) });\n const logs: Array = await this.perform(\"getLogs\", params);\n logs.forEach((log) => {\n if (log.removed == null) { log.removed = false; }\n });\n return Formatter.arrayOf(this.formatter.filterLog.bind(this.formatter))(logs);\n }\n\n async getEtherPrice(): Promise {\n await this.getNetwork();\n return this.perform(\"getEtherPrice\", { });\n }\n\n async _getBlockTag(blockTag: BlockTag | Promise): Promise {\n blockTag = await blockTag;\n\n if (typeof(blockTag) === \"number\" && blockTag < 0) {\n if (blockTag % 1) {\n logger.throwArgumentError(\"invalid BlockTag\", \"blockTag\", blockTag);\n }\n\n let blockNumber = await this._getInternalBlockNumber(100 + 2 * this.pollingInterval);\n blockNumber += blockTag;\n if (blockNumber < 0) { blockNumber = 0; }\n return this.formatter.blockTag(blockNumber)\n }\n\n return this.formatter.blockTag(blockTag);\n }\n\n\n async getResolver(name: string): Promise {\n let currentName = name;\n while (true) {\n if (currentName === \"\" || currentName === \".\") { return null; }\n\n // Optimization since the eth node cannot change and does\n // not have a wildcard resolver\n if (name !== \"eth\" && currentName === \"eth\") { return null; }\n\n // Check the current node for a resolver\n const addr = await this._getResolver(currentName, \"getResolver\");\n\n // Found a resolver!\n if (addr != null) {\n const resolver = new Resolver(this, addr, name);\n\n // Legacy resolver found, using EIP-2544 so it isn't safe to use\n if (currentName !== name && !(await resolver.supportsWildcard())) { return null; }\n\n return resolver;\n }\n\n // Get the parent node\n currentName = currentName.split(\".\").slice(1).join(\".\");\n }\n\n }\n\n async _getResolver(name: string, operation?: string): Promise {\n if (operation == null) { operation = \"ENS\"; }\n\n const network = await this.getNetwork();\n\n // No ENS...\n if (!network.ensAddress) {\n logger.throwError(\n \"network does not support ENS\",\n Logger.errors.UNSUPPORTED_OPERATION,\n { operation, network: network.name }\n );\n }\n\n try {\n // keccak256(\"resolver(bytes32)\")\n const addrData = await this.call({\n to: network.ensAddress,\n data: (\"0x0178b8bf\" + namehash(name).substring(2))\n });\n return this.formatter.callAddress(addrData);\n } catch (error) {\n // ENS registry cannot throw errors on resolver(bytes32)\n }\n\n return null;\n }\n\n async resolveName(name: string | Promise): Promise {\n name = await name;\n\n // If it is already an address, nothing to resolve\n try {\n return Promise.resolve(this.formatter.address(name));\n } catch (error) {\n // If is is a hexstring, the address is bad (See #694)\n if (isHexString(name)) { throw error; }\n }\n\n if (typeof(name) !== \"string\") {\n logger.throwArgumentError(\"invalid ENS name\", \"name\", name);\n }\n\n // Get the addr from the resolver\n const resolver = await this.getResolver(name);\n if (!resolver) { return null; }\n\n return await resolver.getAddress();\n }\n\n async lookupAddress(address: string | Promise): Promise {\n address = await address;\n address = this.formatter.address(address);\n\n const node = address.substring(2).toLowerCase() + \".addr.reverse\";\n\n const resolverAddr = await this._getResolver(node, \"lookupAddress\");\n if (resolverAddr == null) { return null; }\n\n // keccak(\"name(bytes32)\")\n const name = _parseString(await this.call({\n to: resolverAddr,\n data: (\"0x691f3431\" + namehash(node).substring(2))\n }), 0);\n\n const addr = await this.resolveName(name);\n if (addr != address) { return null; }\n\n return name;\n }\n\n async getAvatar(nameOrAddress: string): Promise {\n let resolver: Resolver = null;\n if (isHexString(nameOrAddress)) {\n // Address; reverse lookup\n const address = this.formatter.address(nameOrAddress);\n\n const node = address.substring(2).toLowerCase() + \".addr.reverse\";\n\n const resolverAddress = await this._getResolver(node, \"getAvatar\");\n if (!resolverAddress) { return null; }\n\n // Try resolving the avatar against the addr.reverse resolver\n resolver = new Resolver(this, resolverAddress, node);\n try {\n const avatar = await resolver.getAvatar();\n if (avatar) { return avatar.url; }\n } catch (error) {\n if (error.code !== Logger.errors.CALL_EXCEPTION) { throw error; }\n }\n\n // Try getting the name and performing forward lookup; allowing wildcards\n try {\n // keccak(\"name(bytes32)\")\n const name = _parseString(await this.call({\n to: resolverAddress,\n data: (\"0x691f3431\" + namehash(node).substring(2))\n }), 0);\n resolver = await this.getResolver(name);\n } catch (error) {\n if (error.code !== Logger.errors.CALL_EXCEPTION) { throw error; }\n return null;\n }\n\n } else {\n // ENS name; forward lookup with wildcard\n resolver = await this.getResolver(nameOrAddress);\n if (!resolver) { return null; }\n }\n\n const avatar = await resolver.getAvatar();\n if (avatar == null) { return null; }\n\n return avatar.url;\n }\n\n perform(method: string, params: any): Promise {\n return logger.throwError(method + \" not implemented\", Logger.errors.NOT_IMPLEMENTED, { operation: method });\n }\n\n _startEvent(event: Event): void {\n this.polling = (this._events.filter((e) => e.pollable()).length > 0);\n }\n\n _stopEvent(event: Event): void {\n this.polling = (this._events.filter((e) => e.pollable()).length > 0);\n }\n\n _addEventListener(eventName: EventType, listener: Listener, once: boolean): this {\n const event = new Event(getEventTag(eventName), listener, once)\n this._events.push(event);\n this._startEvent(event);\n\n return this;\n }\n\n on(eventName: EventType, listener: Listener): this {\n return this._addEventListener(eventName, listener, false);\n }\n\n once(eventName: EventType, listener: Listener): this {\n return this._addEventListener(eventName, listener, true);\n }\n\n\n emit(eventName: EventType, ...args: Array): boolean {\n let result = false;\n\n let stopped: Array = [ ];\n\n let eventTag = getEventTag(eventName);\n this._events = this._events.filter((event) => {\n if (event.tag !== eventTag) { return true; }\n\n setTimeout(() => {\n event.listener.apply(this, args);\n }, 0);\n\n result = true;\n\n if (event.once) {\n stopped.push(event);\n return false;\n }\n\n return true;\n });\n\n stopped.forEach((event) => { this._stopEvent(event); });\n\n return result;\n }\n\n listenerCount(eventName?: EventType): number {\n if (!eventName) { return this._events.length; }\n\n let eventTag = getEventTag(eventName);\n return this._events.filter((event) => {\n return (event.tag === eventTag);\n }).length;\n }\n\n listeners(eventName?: EventType): Array {\n if (eventName == null) {\n return this._events.map((event) => event.listener);\n }\n\n let eventTag = getEventTag(eventName);\n return this._events\n .filter((event) => (event.tag === eventTag))\n .map((event) => event.listener);\n }\n\n off(eventName: EventType, listener?: Listener): this {\n if (listener == null) {\n return this.removeAllListeners(eventName);\n }\n\n const stopped: Array = [ ];\n\n let found = false;\n\n let eventTag = getEventTag(eventName);\n this._events = this._events.filter((event) => {\n if (event.tag !== eventTag || event.listener != listener) { return true; }\n if (found) { return true; }\n found = true;\n stopped.push(event);\n return false;\n });\n\n stopped.forEach((event) => { this._stopEvent(event); });\n\n return this;\n }\n\n removeAllListeners(eventName?: EventType): this {\n let stopped: Array = [ ];\n if (eventName == null) {\n stopped = this._events;\n\n this._events = [ ];\n } else {\n const eventTag = getEventTag(eventName);\n this._events = this._events.filter((event) => {\n if (event.tag !== eventTag) { return true; }\n stopped.push(event);\n return false;\n });\n }\n\n stopped.forEach((event) => { this._stopEvent(event); });\n\n return this;\n }\n}\n", "\"use strict\";\n\n// See: https://github.com/ethereum/wiki/wiki/JSON-RPC\n\nimport { Provider, TransactionRequest, TransactionResponse } from \"@ethersproject/abstract-provider\";\nimport { Signer, TypedDataDomain, TypedDataField, TypedDataSigner } from \"@ethersproject/abstract-signer\";\nimport { BigNumber } from \"@ethersproject/bignumber\";\nimport { Bytes, hexlify, hexValue, hexZeroPad, isHexString } from \"@ethersproject/bytes\";\nimport { _TypedDataEncoder } from \"@ethersproject/hash\";\nimport { Network, Networkish } from \"@ethersproject/networks\";\nimport { checkProperties, deepCopy, Deferrable, defineReadOnly, getStatic, resolveProperties, shallowCopy } from \"@ethersproject/properties\";\nimport { toUtf8Bytes } from \"@ethersproject/strings\";\nimport { AccessList, accessListify } from \"@ethersproject/transactions\";\nimport { ConnectionInfo, fetchJson, poll } from \"@ethersproject/web\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\nimport { BaseProvider, Event } from \"./base-provider\";\n\n\nconst errorGas = [ \"call\", \"estimateGas\" ];\n\nfunction spelunk(value: any, requireData: boolean): null | { message: string, data: null | string } {\n if (value == null) { return null; }\n\n // These *are* the droids we're looking for.\n if (typeof(value.message) === \"string\" && value.message.match(\"reverted\")) {\n const data = isHexString(value.data) ? value.data: null;\n if (!requireData || data) {\n return { message: value.message, data };\n }\n }\n\n // Spelunk further...\n if (typeof(value) === \"object\") {\n for (const key in value) {\n const result = spelunk(value[key], requireData);\n if (result) { return result; }\n }\n return null;\n }\n\n // Might be a JSON string we can further descend...\n if (typeof(value) === \"string\") {\n try {\n return spelunk(JSON.parse(value), requireData);\n } catch (error) { }\n }\n\n return null;\n}\n\nfunction checkError(method: string, error: any, params: any): any {\n\n const transaction = params.transaction || params.signedTransaction;\n\n // Undo the \"convenience\" some nodes are attempting to prevent backwards\n // incompatibility; maybe for v6 consider forwarding reverts as errors\n if (method === \"call\") {\n const result = spelunk(error, true);\n if (result) { return result.data; }\n\n // Nothing descriptive..\n logger.throwError(\"missing revert data in call exception; Transaction reverted without a reason string\", Logger.errors.CALL_EXCEPTION, {\n data: \"0x\", transaction, error\n });\n }\n\n if (method === \"estimateGas\") {\n // Try to find something, with a preference on SERVER_ERROR body\n let result = spelunk(error.body, false);\n if (result == null) { result = spelunk(error, false); }\n\n // Found \"reverted\", this is a CALL_EXCEPTION\n if (result) {\n logger.throwError(\"cannot estimate gas; transaction may fail or may require manual gas limit\", Logger.errors.UNPREDICTABLE_GAS_LIMIT, {\n reason: result.message, method, transaction, error\n });\n }\n }\n\n // @TODO: Should we spelunk for message too?\n\n let message = error.message;\n if (error.code === Logger.errors.SERVER_ERROR && error.error && typeof(error.error.message) === \"string\") {\n message = error.error.message;\n } else if (typeof(error.body) === \"string\") {\n message = error.body;\n } else if (typeof(error.responseText) === \"string\") {\n message = error.responseText;\n }\n message = (message || \"\").toLowerCase();\n\n // \"insufficient funds for gas * price + value + cost(data)\"\n if (message.match(/insufficient funds|base fee exceeds gas limit|InsufficientFunds/i)) {\n logger.throwError(\"insufficient funds for intrinsic transaction cost\", Logger.errors.INSUFFICIENT_FUNDS, {\n error, method, transaction\n });\n }\n\n // \"nonce too low\"\n if (message.match(/nonce (is )?too low/i)) {\n logger.throwError(\"nonce has already been used\", Logger.errors.NONCE_EXPIRED, {\n error, method, transaction\n });\n }\n\n // \"replacement transaction underpriced\"\n if (message.match(/replacement transaction underpriced|transaction gas price.*too low/i)) {\n logger.throwError(\"replacement fee too low\", Logger.errors.REPLACEMENT_UNDERPRICED, {\n error, method, transaction\n });\n }\n\n // \"replacement transaction underpriced\"\n if (message.match(/only replay-protected/i)) {\n logger.throwError(\"legacy pre-eip-155 transactions not supported\", Logger.errors.UNSUPPORTED_OPERATION, {\n error, method, transaction\n });\n }\n\n if (errorGas.indexOf(method) >= 0 && message.match(/gas required exceeds allowance|always failing transaction|execution reverted|revert/)) {\n logger.throwError(\"cannot estimate gas; transaction may fail or may require manual gas limit\", Logger.errors.UNPREDICTABLE_GAS_LIMIT, {\n error, method, transaction\n });\n }\n\n throw error;\n}\n\nfunction timer(timeout: number): Promise {\n return new Promise(function(resolve) {\n setTimeout(resolve, timeout);\n });\n}\n\nfunction getResult(payload: { error?: { code?: number, data?: any, message?: string }, result?: any }): any {\n if (payload.error) {\n // @TODO: not any\n const error: any = new Error(payload.error.message);\n error.code = payload.error.code;\n error.data = payload.error.data;\n throw error;\n }\n\n return payload.result;\n}\n\nfunction getLowerCase(value: string): string {\n if (value) { return value.toLowerCase(); }\n return value;\n}\n\nconst _constructorGuard = {};\n\nexport class JsonRpcSigner extends Signer implements TypedDataSigner {\n readonly provider: JsonRpcProvider;\n _index: number;\n _address: string;\n\n constructor(constructorGuard: any, provider: JsonRpcProvider, addressOrIndex?: string | number) {\n super();\n\n if (constructorGuard !== _constructorGuard) {\n throw new Error(\"do not call the JsonRpcSigner constructor directly; use provider.getSigner\");\n }\n\n defineReadOnly(this, \"provider\", provider);\n\n if (addressOrIndex == null) { addressOrIndex = 0; }\n\n if (typeof(addressOrIndex) === \"string\") {\n defineReadOnly(this, \"_address\", this.provider.formatter.address(addressOrIndex));\n defineReadOnly(this, \"_index\", null);\n\n } else if (typeof(addressOrIndex) === \"number\") {\n defineReadOnly(this, \"_index\", addressOrIndex);\n defineReadOnly(this, \"_address\", null);\n\n } else {\n logger.throwArgumentError(\"invalid address or index\", \"addressOrIndex\", addressOrIndex);\n }\n }\n\n connect(provider: Provider): JsonRpcSigner {\n return logger.throwError(\"cannot alter JSON-RPC Signer connection\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"connect\"\n });\n }\n\n connectUnchecked(): JsonRpcSigner {\n return new UncheckedJsonRpcSigner(_constructorGuard, this.provider, this._address || this._index);\n }\n\n getAddress(): Promise {\n if (this._address) {\n return Promise.resolve(this._address);\n }\n\n return this.provider.send(\"eth_accounts\", []).then((accounts) => {\n if (accounts.length <= this._index) {\n logger.throwError(\"unknown account #\" + this._index, Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"getAddress\"\n });\n }\n return this.provider.formatter.address(accounts[this._index])\n });\n }\n\n sendUncheckedTransaction(transaction: Deferrable): Promise {\n transaction = shallowCopy(transaction);\n\n const fromAddress = this.getAddress().then((address) => {\n if (address) { address = address.toLowerCase(); }\n return address;\n });\n\n // The JSON-RPC for eth_sendTransaction uses 90000 gas; if the user\n // wishes to use this, it is easy to specify explicitly, otherwise\n // we look it up for them.\n if (transaction.gasLimit == null) {\n const estimate = shallowCopy(transaction);\n estimate.from = fromAddress;\n transaction.gasLimit = this.provider.estimateGas(estimate);\n }\n\n if (transaction.to != null) {\n transaction.to = Promise.resolve(transaction.to).then(async (to) => {\n if (to == null) { return null; }\n const address = await this.provider.resolveName(to);\n if (address == null) {\n logger.throwArgumentError(\"provided ENS name resolves to null\", \"tx.to\", to);\n }\n return address;\n });\n }\n\n return resolveProperties({\n tx: resolveProperties(transaction),\n sender: fromAddress\n }).then(({ tx, sender }) => {\n\n if (tx.from != null) {\n if (tx.from.toLowerCase() !== sender) {\n logger.throwArgumentError(\"from address mismatch\", \"transaction\", transaction);\n }\n } else {\n tx.from = sender;\n }\n\n const hexTx = (this.provider.constructor).hexlifyTransaction(tx, { from: true });\n\n return this.provider.send(\"eth_sendTransaction\", [ hexTx ]).then((hash) => {\n return hash;\n }, (error) => {\n if (typeof(error.message) === \"string\" && error.message.match(/user denied/i)) {\n logger.throwError(\"user rejected transaction\", Logger.errors.ACTION_REJECTED, {\n action: \"sendTransaction\",\n transaction: tx\n });\n }\n\n return checkError(\"sendTransaction\", error, hexTx);\n });\n });\n }\n\n signTransaction(transaction: Deferrable): Promise {\n return logger.throwError(\"signing transactions is unsupported\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"signTransaction\"\n });\n }\n\n async sendTransaction(transaction: Deferrable): Promise {\n // This cannot be mined any earlier than any recent block\n const blockNumber = await this.provider._getInternalBlockNumber(100 + 2 * this.provider.pollingInterval);\n\n // Send the transaction\n const hash = await this.sendUncheckedTransaction(transaction);\n\n try {\n // Unfortunately, JSON-RPC only provides and opaque transaction hash\n // for a response, and we need the actual transaction, so we poll\n // for it; it should show up very quickly\n return await poll(async () => {\n const tx = await this.provider.getTransaction(hash);\n if (tx === null) { return undefined; }\n return this.provider._wrapTransaction(tx, hash, blockNumber);\n }, { oncePoll: this.provider });\n } catch (error) {\n (error).transactionHash = hash;\n throw error;\n }\n }\n\n async signMessage(message: Bytes | string): Promise {\n const data = ((typeof(message) === \"string\") ? toUtf8Bytes(message): message);\n const address = await this.getAddress();\n try {\n return await this.provider.send(\"personal_sign\", [ hexlify(data), address.toLowerCase() ]);\n } catch (error) {\n if (typeof(error.message) === \"string\" && error.message.match(/user denied/i)) {\n logger.throwError(\"user rejected signing\", Logger.errors.ACTION_REJECTED, {\n action: \"signMessage\",\n from: address,\n messageData: message\n });\n }\n throw error;\n }\n }\n\n async _legacySignMessage(message: Bytes | string): Promise {\n const data = ((typeof(message) === \"string\") ? toUtf8Bytes(message): message);\n const address = await this.getAddress();\n\n try {\n // https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_sign\n return await this.provider.send(\"eth_sign\", [ address.toLowerCase(), hexlify(data) ]);\n } catch (error) {\n if (typeof(error.message) === \"string\" && error.message.match(/user denied/i)) {\n logger.throwError(\"user rejected signing\", Logger.errors.ACTION_REJECTED, {\n action: \"_legacySignMessage\",\n from: address,\n messageData: message\n });\n }\n throw error;\n }\n }\n\n async _signTypedData(domain: TypedDataDomain, types: Record>, value: Record): Promise {\n // Populate any ENS names (in-place)\n const populated = await _TypedDataEncoder.resolveNames(domain, types, value, (name: string) => {\n return this.provider.resolveName(name);\n });\n\n const address = await this.getAddress();\n\n try {\n return await this.provider.send(\"eth_signTypedData_v4\", [\n address.toLowerCase(),\n JSON.stringify(_TypedDataEncoder.getPayload(populated.domain, types, populated.value))\n ]);\n } catch (error) {\n if (typeof(error.message) === \"string\" && error.message.match(/user denied/i)) {\n logger.throwError(\"user rejected signing\", Logger.errors.ACTION_REJECTED, {\n action: \"_signTypedData\",\n from: address,\n messageData: { domain: populated.domain, types, value: populated.value }\n });\n }\n throw error;\n }\n }\n\n async unlock(password: string): Promise {\n const provider = this.provider;\n\n const address = await this.getAddress();\n\n return provider.send(\"personal_unlockAccount\", [ address.toLowerCase(), password, null ]);\n }\n}\n\nclass UncheckedJsonRpcSigner extends JsonRpcSigner {\n sendTransaction(transaction: Deferrable): Promise {\n return this.sendUncheckedTransaction(transaction).then((hash) => {\n return {\n hash: hash,\n nonce: null,\n gasLimit: null,\n gasPrice: null,\n data: null,\n value: null,\n chainId: null,\n confirmations: 0,\n from: null,\n wait: (confirmations?: number) => { return this.provider.waitForTransaction(hash, confirmations); }\n };\n });\n }\n}\n\nconst allowedTransactionKeys: { [ key: string ]: boolean } = {\n chainId: true, data: true, gasLimit: true, gasPrice:true, nonce: true, to: true, value: true,\n type: true, accessList: true,\n maxFeePerGas: true, maxPriorityFeePerGas: true\n}\n\nexport class JsonRpcProvider extends BaseProvider {\n readonly connection: ConnectionInfo;\n\n _pendingFilter: Promise;\n _nextId: number;\n\n // During any given event loop, the results for a given call will\n // all be the same, so we can dedup the calls to save requests and\n // bandwidth. @TODO: Try out generalizing this against send?\n _eventLoopCache: Record>;\n get _cache(): Record> {\n if (this._eventLoopCache == null) {\n this._eventLoopCache = { };\n }\n return this._eventLoopCache;\n }\n\n constructor(url?: ConnectionInfo | string, network?: Networkish) {\n let networkOrReady: Networkish | Promise = network;\n\n // The network is unknown, query the JSON-RPC for it\n if (networkOrReady == null) {\n networkOrReady = new Promise((resolve, reject) => {\n setTimeout(() => {\n this.detectNetwork().then((network) => {\n resolve(network);\n }, (error) => {\n reject(error);\n });\n }, 0);\n });\n }\n\n super(networkOrReady);\n\n // Default URL\n if (!url) { url = getStatic<() => string>(this.constructor, \"defaultUrl\")(); }\n\n if (typeof(url) === \"string\") {\n defineReadOnly(this, \"connection\",Object.freeze({\n url: url\n }));\n } else {\n defineReadOnly(this, \"connection\", Object.freeze(shallowCopy(url)));\n }\n\n this._nextId = 42;\n }\n\n static defaultUrl(): string {\n return \"http:/\\/localhost:8545\";\n }\n\n detectNetwork(): Promise {\n if (!this._cache[\"detectNetwork\"]) {\n this._cache[\"detectNetwork\"] = this._uncachedDetectNetwork();\n\n // Clear this cache at the beginning of the next event loop\n setTimeout(() => {\n this._cache[\"detectNetwork\"] = null;\n }, 0);\n }\n return this._cache[\"detectNetwork\"];\n }\n\n async _uncachedDetectNetwork(): Promise {\n await timer(0);\n\n let chainId = null;\n try {\n chainId = await this.send(\"eth_chainId\", [ ]);\n } catch (error) {\n try {\n chainId = await this.send(\"net_version\", [ ]);\n } catch (error) { }\n }\n\n if (chainId != null) {\n const getNetwork = getStatic<(network: Networkish) => Network>(this.constructor, \"getNetwork\");\n try {\n return getNetwork(BigNumber.from(chainId).toNumber());\n } catch (error) {\n return logger.throwError(\"could not detect network\", Logger.errors.NETWORK_ERROR, {\n chainId: chainId,\n event: \"invalidNetwork\",\n serverError: error\n });\n }\n }\n\n return logger.throwError(\"could not detect network\", Logger.errors.NETWORK_ERROR, {\n event: \"noNetwork\"\n });\n }\n\n getSigner(addressOrIndex?: string | number): JsonRpcSigner {\n return new JsonRpcSigner(_constructorGuard, this, addressOrIndex);\n }\n\n getUncheckedSigner(addressOrIndex?: string | number): UncheckedJsonRpcSigner {\n return this.getSigner(addressOrIndex).connectUnchecked();\n }\n\n listAccounts(): Promise> {\n return this.send(\"eth_accounts\", []).then((accounts: Array) => {\n return accounts.map((a) => this.formatter.address(a));\n });\n }\n\n send(method: string, params: Array): Promise {\n const request = {\n method: method,\n params: params,\n id: (this._nextId++),\n jsonrpc: \"2.0\"\n };\n\n this.emit(\"debug\", {\n action: \"request\",\n request: deepCopy(request),\n provider: this\n });\n\n // We can expand this in the future to any call, but for now these\n // are the biggest wins and do not require any serializing parameters.\n const cache = ([ \"eth_chainId\", \"eth_blockNumber\" ].indexOf(method) >= 0);\n if (cache && this._cache[method]) {\n return this._cache[method];\n }\n\n const result = fetchJson(this.connection, JSON.stringify(request), getResult).then((result) => {\n this.emit(\"debug\", {\n action: \"response\",\n request: request,\n response: result,\n provider: this\n });\n\n return result;\n\n }, (error) => {\n this.emit(\"debug\", {\n action: \"response\",\n error: error,\n request: request,\n provider: this\n });\n\n throw error;\n });\n\n // Cache the fetch, but clear it on the next event loop\n if (cache) {\n this._cache[method] = result;\n setTimeout(() => {\n this._cache[method] = null;\n }, 0);\n }\n\n return result;\n }\n\n prepareRequest(method: string, params: any): [ string, Array ] {\n switch (method) {\n case \"getBlockNumber\":\n return [ \"eth_blockNumber\", [] ];\n\n case \"getGasPrice\":\n return [ \"eth_gasPrice\", [] ];\n\n case \"getBalance\":\n return [ \"eth_getBalance\", [ getLowerCase(params.address), params.blockTag ] ];\n\n case \"getTransactionCount\":\n return [ \"eth_getTransactionCount\", [ getLowerCase(params.address), params.blockTag ] ];\n\n case \"getCode\":\n return [ \"eth_getCode\", [ getLowerCase(params.address), params.blockTag ] ];\n\n case \"getStorageAt\":\n return [ \"eth_getStorageAt\", [ getLowerCase(params.address), hexZeroPad(params.position, 32), params.blockTag ] ];\n\n case \"sendTransaction\":\n return [ \"eth_sendRawTransaction\", [ params.signedTransaction ] ]\n\n case \"getBlock\":\n if (params.blockTag) {\n return [ \"eth_getBlockByNumber\", [ params.blockTag, !!params.includeTransactions ] ];\n } else if (params.blockHash) {\n return [ \"eth_getBlockByHash\", [ params.blockHash, !!params.includeTransactions ] ];\n }\n return null;\n\n case \"getTransaction\":\n return [ \"eth_getTransactionByHash\", [ params.transactionHash ] ];\n\n case \"getTransactionReceipt\":\n return [ \"eth_getTransactionReceipt\", [ params.transactionHash ] ];\n\n case \"call\": {\n const hexlifyTransaction = getStatic<(t: TransactionRequest, a?: { [key: string]: boolean }) => { [key: string]: string }>(this.constructor, \"hexlifyTransaction\");\n return [ \"eth_call\", [ hexlifyTransaction(params.transaction, { from: true }), params.blockTag ] ];\n }\n\n case \"estimateGas\": {\n const hexlifyTransaction = getStatic<(t: TransactionRequest, a?: { [key: string]: boolean }) => { [key: string]: string }>(this.constructor, \"hexlifyTransaction\");\n return [ \"eth_estimateGas\", [ hexlifyTransaction(params.transaction, { from: true }) ] ];\n }\n\n case \"getLogs\":\n if (params.filter && params.filter.address != null) {\n params.filter.address = getLowerCase(params.filter.address);\n }\n return [ \"eth_getLogs\", [ params.filter ] ];\n\n default:\n break;\n }\n\n return null;\n }\n\n async perform(method: string, params: any): Promise {\n // Legacy networks do not like the type field being passed along (which\n // is fair), so we delete type if it is 0 and a non-EIP-1559 network\n if (method === \"call\" || method === \"estimateGas\") {\n const tx = params.transaction;\n if (tx && tx.type != null && BigNumber.from(tx.type).isZero()) {\n // If there are no EIP-1559 properties, it might be non-EIP-1559\n if (tx.maxFeePerGas == null && tx.maxPriorityFeePerGas == null) {\n const feeData = await this.getFeeData();\n if (feeData.maxFeePerGas == null && feeData.maxPriorityFeePerGas == null) {\n // Network doesn't know about EIP-1559 (and hence type)\n params = shallowCopy(params);\n params.transaction = shallowCopy(tx);\n delete params.transaction.type;\n }\n }\n }\n }\n\n const args = this.prepareRequest(method, params);\n\n if (args == null) {\n logger.throwError(method + \" not implemented\", Logger.errors.NOT_IMPLEMENTED, { operation: method });\n }\n try {\n return await this.send(args[0], args[1])\n } catch (error) {\n return checkError(method, error, params);\n }\n }\n\n _startEvent(event: Event): void {\n if (event.tag === \"pending\") { this._startPending(); }\n super._startEvent(event);\n }\n\n _startPending(): void {\n if (this._pendingFilter != null) { return; }\n const self = this;\n\n const pendingFilter: Promise = this.send(\"eth_newPendingTransactionFilter\", []);\n this._pendingFilter = pendingFilter;\n\n pendingFilter.then(function(filterId) {\n function poll() {\n self.send(\"eth_getFilterChanges\", [ filterId ]).then(function(hashes: Array) {\n if (self._pendingFilter != pendingFilter) { return null; }\n\n let seq = Promise.resolve();\n hashes.forEach(function(hash) {\n // @TODO: This should be garbage collected at some point... How? When?\n self._emitted[\"t:\" + hash.toLowerCase()] = \"pending\";\n seq = seq.then(function() {\n return self.getTransaction(hash).then(function(tx) {\n self.emit(\"pending\", tx);\n return null;\n });\n });\n });\n\n return seq.then(function() {\n return timer(1000);\n });\n }).then(function() {\n if (self._pendingFilter != pendingFilter) {\n self.send(\"eth_uninstallFilter\", [ filterId ]);\n return;\n }\n setTimeout(function() { poll(); }, 0);\n\n return null;\n }).catch((error: Error) => { });\n }\n poll();\n\n return filterId;\n }).catch((error: Error) => { });\n }\n\n _stopEvent(event: Event): void {\n if (event.tag === \"pending\" && this.listenerCount(\"pending\") === 0) {\n this._pendingFilter = null;\n }\n super._stopEvent(event);\n }\n\n // Convert an ethers.js transaction into a JSON-RPC transaction\n // - gasLimit => gas\n // - All values hexlified\n // - All numeric values zero-striped\n // - All addresses are lowercased\n // NOTE: This allows a TransactionRequest, but all values should be resolved\n // before this is called\n // @TODO: This will likely be removed in future versions and prepareRequest\n // will be the preferred method for this.\n static hexlifyTransaction(transaction: TransactionRequest, allowExtra?: { [key: string]: boolean }): { [key: string]: string | AccessList } {\n // Check only allowed properties are given\n const allowed = shallowCopy(allowedTransactionKeys);\n if (allowExtra) {\n for (const key in allowExtra) {\n if (allowExtra[key]) { allowed[key] = true; }\n }\n }\n\n checkProperties(transaction, allowed);\n\n const result: { [key: string]: string | AccessList } = {};\n\n // JSON-RPC now requires numeric values to be \"quantity\" values\n [\"chainId\", \"gasLimit\", \"gasPrice\", \"type\", \"maxFeePerGas\", \"maxPriorityFeePerGas\", \"nonce\", \"value\"].forEach(function(key) {\n if ((transaction)[key] == null) { return; }\n const value = hexValue(BigNumber.from((transaction)[key]));\n if (key === \"gasLimit\") { key = \"gas\"; }\n result[key] = value;\n });\n\n [\"from\", \"to\", \"data\"].forEach(function(key) {\n if ((transaction)[key] == null) { return; }\n result[key] = hexlify((transaction)[key]);\n });\n\n if ((transaction).accessList) {\n result[\"accessList\"] = accessListify((transaction).accessList);\n }\n\n return result;\n }\n}\n", "'use strict';\n\nmodule.exports = {\n BINARY_TYPES: ['nodebuffer', 'arraybuffer', 'fragments'],\n GUID: '258EAFA5-E914-47DA-95CA-C5AB0DC85B11',\n kStatusCode: Symbol('status-code'),\n kWebSocket: Symbol('websocket'),\n EMPTY_BUFFER: Buffer.alloc(0),\n NOOP: () => {}\n};\n", "var fs = require('fs')\nvar path = require('path')\nvar os = require('os')\n\n// Workaround to fix webpack's build warnings: 'the request of a dependency is an expression'\nvar runtimeRequire = typeof __webpack_require__ === 'function' ? __non_webpack_require__ : require // eslint-disable-line\n\nvar vars = (process.config && process.config.variables) || {}\nvar prebuildsOnly = !!process.env.PREBUILDS_ONLY\nvar abi = process.versions.modules // TODO: support old node where this is undef\nvar runtime = isElectron() ? 'electron' : 'node'\nvar arch = os.arch()\nvar platform = os.platform()\nvar libc = process.env.LIBC || (isAlpine(platform) ? 'musl' : 'glibc')\nvar armv = process.env.ARM_VERSION || (arch === 'arm64' ? '8' : vars.arm_version) || ''\nvar uv = (process.versions.uv || '').split('.')[0]\n\nmodule.exports = load\n\nfunction load (dir) {\n return runtimeRequire(load.path(dir))\n}\n\nload.path = function (dir) {\n dir = path.resolve(dir || '.')\n\n try {\n var name = runtimeRequire(path.join(dir, 'package.json')).name.toUpperCase().replace(/-/g, '_')\n if (process.env[name + '_PREBUILD']) dir = process.env[name + '_PREBUILD']\n } catch (err) {}\n\n if (!prebuildsOnly) {\n var release = getFirst(path.join(dir, 'build/Release'), matchBuild)\n if (release) return release\n\n var debug = getFirst(path.join(dir, 'build/Debug'), matchBuild)\n if (debug) return debug\n }\n\n var prebuild = resolve(dir)\n if (prebuild) return prebuild\n\n var nearby = resolve(path.dirname(process.execPath))\n if (nearby) return nearby\n\n var target = [\n 'platform=' + platform,\n 'arch=' + arch,\n 'runtime=' + runtime,\n 'abi=' + abi,\n 'uv=' + uv,\n armv ? 'armv=' + armv : '',\n 'libc=' + libc,\n 'node=' + process.versions.node,\n process.versions.electron ? 'electron=' + process.versions.electron : '',\n typeof __webpack_require__ === 'function' ? 'webpack=true' : '' // eslint-disable-line\n ].filter(Boolean).join(' ')\n\n throw new Error('No native build was found for ' + target + '\\n loaded from: ' + dir + '\\n')\n\n function resolve (dir) {\n // Find matching \"prebuilds/-\" directory\n var tuples = readdirSync(path.join(dir, 'prebuilds')).map(parseTuple)\n var tuple = tuples.filter(matchTuple(platform, arch)).sort(compareTuples)[0]\n if (!tuple) return\n\n // Find most specific flavor first\n var prebuilds = path.join(dir, 'prebuilds', tuple.name)\n var parsed = readdirSync(prebuilds).map(parseTags)\n var candidates = parsed.filter(matchTags(runtime, abi))\n var winner = candidates.sort(compareTags(runtime))[0]\n if (winner) return path.join(prebuilds, winner.file)\n }\n}\n\nfunction readdirSync (dir) {\n try {\n return fs.readdirSync(dir)\n } catch (err) {\n return []\n }\n}\n\nfunction getFirst (dir, filter) {\n var files = readdirSync(dir).filter(filter)\n return files[0] && path.join(dir, files[0])\n}\n\nfunction matchBuild (name) {\n return /\\.node$/.test(name)\n}\n\nfunction parseTuple (name) {\n // Example: darwin-x64+arm64\n var arr = name.split('-')\n if (arr.length !== 2) return\n\n var platform = arr[0]\n var architectures = arr[1].split('+')\n\n if (!platform) return\n if (!architectures.length) return\n if (!architectures.every(Boolean)) return\n\n return { name, platform, architectures }\n}\n\nfunction matchTuple (platform, arch) {\n return function (tuple) {\n if (tuple == null) return false\n if (tuple.platform !== platform) return false\n return tuple.architectures.includes(arch)\n }\n}\n\nfunction compareTuples (a, b) {\n // Prefer single-arch prebuilds over multi-arch\n return a.architectures.length - b.architectures.length\n}\n\nfunction parseTags (file) {\n var arr = file.split('.')\n var extension = arr.pop()\n var tags = { file: file, specificity: 0 }\n\n if (extension !== 'node') return\n\n for (var i = 0; i < arr.length; i++) {\n var tag = arr[i]\n\n if (tag === 'node' || tag === 'electron' || tag === 'node-webkit') {\n tags.runtime = tag\n } else if (tag === 'napi') {\n tags.napi = true\n } else if (tag.slice(0, 3) === 'abi') {\n tags.abi = tag.slice(3)\n } else if (tag.slice(0, 2) === 'uv') {\n tags.uv = tag.slice(2)\n } else if (tag.slice(0, 4) === 'armv') {\n tags.armv = tag.slice(4)\n } else if (tag === 'glibc' || tag === 'musl') {\n tags.libc = tag\n } else {\n continue\n }\n\n tags.specificity++\n }\n\n return tags\n}\n\nfunction matchTags (runtime, abi) {\n return function (tags) {\n if (tags == null) return false\n if (tags.runtime !== runtime && !runtimeAgnostic(tags)) return false\n if (tags.abi !== abi && !tags.napi) return false\n if (tags.uv && tags.uv !== uv) return false\n if (tags.armv && tags.armv !== armv) return false\n if (tags.libc && tags.libc !== libc) return false\n\n return true\n }\n}\n\nfunction runtimeAgnostic (tags) {\n return tags.runtime === 'node' && tags.napi\n}\n\nfunction compareTags (runtime) {\n // Precedence: non-agnostic runtime, abi over napi, then by specificity.\n return function (a, b) {\n if (a.runtime !== b.runtime) {\n return a.runtime === runtime ? -1 : 1\n } else if (a.abi !== b.abi) {\n return a.abi ? -1 : 1\n } else if (a.specificity !== b.specificity) {\n return a.specificity > b.specificity ? -1 : 1\n } else {\n return 0\n }\n }\n}\n\nfunction isElectron () {\n if (process.versions && process.versions.electron) return true\n if (process.env.ELECTRON_RUN_AS_NODE) return true\n return typeof window !== 'undefined' && window.process && window.process.type === 'renderer'\n}\n\nfunction isAlpine (platform) {\n return platform === 'linux' && fs.existsSync('/etc/alpine-release')\n}\n\n// Exposed for unit tests\n// TODO: move to lib\nload.parseTags = parseTags\nload.matchTags = matchTags\nload.compareTags = compareTags\nload.parseTuple = parseTuple\nload.matchTuple = matchTuple\nload.compareTuples = compareTuples\n", "'use strict';\n\n/**\n * Masks a buffer using the given mask.\n *\n * @param {Buffer} source The buffer to mask\n * @param {Buffer} mask The mask to use\n * @param {Buffer} output The buffer where to store the result\n * @param {Number} offset The offset at which to start writing\n * @param {Number} length The number of bytes to mask.\n * @public\n */\nconst mask = (source, mask, output, offset, length) => {\n for (var i = 0; i < length; i++) {\n output[offset + i] = source[i] ^ mask[i & 3];\n }\n};\n\n/**\n * Unmasks a buffer using the given mask.\n *\n * @param {Buffer} buffer The buffer to unmask\n * @param {Buffer} mask The mask to use\n * @public\n */\nconst unmask = (buffer, mask) => {\n // Required until https://github.com/nodejs/node/issues/9006 is resolved.\n const length = buffer.length;\n for (var i = 0; i < length; i++) {\n buffer[i] ^= mask[i & 3];\n }\n};\n\nmodule.exports = { mask, unmask };\n", "'use strict';\n\ntry {\n module.exports = require('node-gyp-build')(__dirname);\n} catch (e) {\n module.exports = require('./fallback');\n}\n", "'use strict';\n\nconst { EMPTY_BUFFER } = require('./constants');\n\n/**\n * Merges an array of buffers into a new buffer.\n *\n * @param {Buffer[]} list The array of buffers to concat\n * @param {Number} totalLength The total length of buffers in the list\n * @return {Buffer} The resulting buffer\n * @public\n */\nfunction concat(list, totalLength) {\n if (list.length === 0) return EMPTY_BUFFER;\n if (list.length === 1) return list[0];\n\n const target = Buffer.allocUnsafe(totalLength);\n let offset = 0;\n\n for (let i = 0; i < list.length; i++) {\n const buf = list[i];\n target.set(buf, offset);\n offset += buf.length;\n }\n\n if (offset < totalLength) return target.slice(0, offset);\n\n return target;\n}\n\n/**\n * Masks a buffer using the given mask.\n *\n * @param {Buffer} source The buffer to mask\n * @param {Buffer} mask The mask to use\n * @param {Buffer} output The buffer where to store the result\n * @param {Number} offset The offset at which to start writing\n * @param {Number} length The number of bytes to mask.\n * @public\n */\nfunction _mask(source, mask, output, offset, length) {\n for (let i = 0; i < length; i++) {\n output[offset + i] = source[i] ^ mask[i & 3];\n }\n}\n\n/**\n * Unmasks a buffer using the given mask.\n *\n * @param {Buffer} buffer The buffer to unmask\n * @param {Buffer} mask The mask to use\n * @public\n */\nfunction _unmask(buffer, mask) {\n // Required until https://github.com/nodejs/node/issues/9006 is resolved.\n const length = buffer.length;\n for (let i = 0; i < length; i++) {\n buffer[i] ^= mask[i & 3];\n }\n}\n\n/**\n * Converts a buffer to an `ArrayBuffer`.\n *\n * @param {Buffer} buf The buffer to convert\n * @return {ArrayBuffer} Converted buffer\n * @public\n */\nfunction toArrayBuffer(buf) {\n if (buf.byteLength === buf.buffer.byteLength) {\n return buf.buffer;\n }\n\n return buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength);\n}\n\n/**\n * Converts `data` to a `Buffer`.\n *\n * @param {*} data The data to convert\n * @return {Buffer} The buffer\n * @throws {TypeError}\n * @public\n */\nfunction toBuffer(data) {\n toBuffer.readOnly = true;\n\n if (Buffer.isBuffer(data)) return data;\n\n let buf;\n\n if (data instanceof ArrayBuffer) {\n buf = Buffer.from(data);\n } else if (ArrayBuffer.isView(data)) {\n buf = Buffer.from(data.buffer, data.byteOffset, data.byteLength);\n } else {\n buf = Buffer.from(data);\n toBuffer.readOnly = false;\n }\n\n return buf;\n}\n\ntry {\n const bufferUtil = require('bufferutil');\n const bu = bufferUtil.BufferUtil || bufferUtil;\n\n module.exports = {\n concat,\n mask(source, mask, output, offset, length) {\n if (length < 48) _mask(source, mask, output, offset, length);\n else bu.mask(source, mask, output, offset, length);\n },\n toArrayBuffer,\n toBuffer,\n unmask(buffer, mask) {\n if (buffer.length < 32) _unmask(buffer, mask);\n else bu.unmask(buffer, mask);\n }\n };\n} catch (e) /* istanbul ignore next */ {\n module.exports = {\n concat,\n mask: _mask,\n toArrayBuffer,\n toBuffer,\n unmask: _unmask\n };\n}\n", "'use strict';\n\nconst kDone = Symbol('kDone');\nconst kRun = Symbol('kRun');\n\n/**\n * A very simple job queue with adjustable concurrency. Adapted from\n * https://github.com/STRML/async-limiter\n */\nclass Limiter {\n /**\n * Creates a new `Limiter`.\n *\n * @param {Number} [concurrency=Infinity] The maximum number of jobs allowed\n * to run concurrently\n */\n constructor(concurrency) {\n this[kDone] = () => {\n this.pending--;\n this[kRun]();\n };\n this.concurrency = concurrency || Infinity;\n this.jobs = [];\n this.pending = 0;\n }\n\n /**\n * Adds a job to the queue.\n *\n * @param {Function} job The job to run\n * @public\n */\n add(job) {\n this.jobs.push(job);\n this[kRun]();\n }\n\n /**\n * Removes a job from the queue and runs it if possible.\n *\n * @private\n */\n [kRun]() {\n if (this.pending === this.concurrency) return;\n\n if (this.jobs.length) {\n const job = this.jobs.shift();\n\n this.pending++;\n job(this[kDone]);\n }\n }\n}\n\nmodule.exports = Limiter;\n", "'use strict';\n\nconst zlib = require('zlib');\n\nconst bufferUtil = require('./buffer-util');\nconst Limiter = require('./limiter');\nconst { kStatusCode, NOOP } = require('./constants');\n\nconst TRAILER = Buffer.from([0x00, 0x00, 0xff, 0xff]);\nconst kPerMessageDeflate = Symbol('permessage-deflate');\nconst kTotalLength = Symbol('total-length');\nconst kCallback = Symbol('callback');\nconst kBuffers = Symbol('buffers');\nconst kError = Symbol('error');\n\n//\n// We limit zlib concurrency, which prevents severe memory fragmentation\n// as documented in https://github.com/nodejs/node/issues/8871#issuecomment-250915913\n// and https://github.com/websockets/ws/issues/1202\n//\n// Intentionally global; it's the global thread pool that's an issue.\n//\nlet zlibLimiter;\n\n/**\n * permessage-deflate implementation.\n */\nclass PerMessageDeflate {\n /**\n * Creates a PerMessageDeflate instance.\n *\n * @param {Object} [options] Configuration options\n * @param {Boolean} [options.serverNoContextTakeover=false] Request/accept\n * disabling of server context takeover\n * @param {Boolean} [options.clientNoContextTakeover=false] Advertise/\n * acknowledge disabling of client context takeover\n * @param {(Boolean|Number)} [options.serverMaxWindowBits] Request/confirm the\n * use of a custom server window size\n * @param {(Boolean|Number)} [options.clientMaxWindowBits] Advertise support\n * for, or request, a custom client window size\n * @param {Object} [options.zlibDeflateOptions] Options to pass to zlib on\n * deflate\n * @param {Object} [options.zlibInflateOptions] Options to pass to zlib on\n * inflate\n * @param {Number} [options.threshold=1024] Size (in bytes) below which\n * messages should not be compressed\n * @param {Number} [options.concurrencyLimit=10] The number of concurrent\n * calls to zlib\n * @param {Boolean} [isServer=false] Create the instance in either server or\n * client mode\n * @param {Number} [maxPayload=0] The maximum allowed message length\n */\n constructor(options, isServer, maxPayload) {\n this._maxPayload = maxPayload | 0;\n this._options = options || {};\n this._threshold =\n this._options.threshold !== undefined ? this._options.threshold : 1024;\n this._isServer = !!isServer;\n this._deflate = null;\n this._inflate = null;\n\n this.params = null;\n\n if (!zlibLimiter) {\n const concurrency =\n this._options.concurrencyLimit !== undefined\n ? this._options.concurrencyLimit\n : 10;\n zlibLimiter = new Limiter(concurrency);\n }\n }\n\n /**\n * @type {String}\n */\n static get extensionName() {\n return 'permessage-deflate';\n }\n\n /**\n * Create an extension negotiation offer.\n *\n * @return {Object} Extension parameters\n * @public\n */\n offer() {\n const params = {};\n\n if (this._options.serverNoContextTakeover) {\n params.server_no_context_takeover = true;\n }\n if (this._options.clientNoContextTakeover) {\n params.client_no_context_takeover = true;\n }\n if (this._options.serverMaxWindowBits) {\n params.server_max_window_bits = this._options.serverMaxWindowBits;\n }\n if (this._options.clientMaxWindowBits) {\n params.client_max_window_bits = this._options.clientMaxWindowBits;\n } else if (this._options.clientMaxWindowBits == null) {\n params.client_max_window_bits = true;\n }\n\n return params;\n }\n\n /**\n * Accept an extension negotiation offer/response.\n *\n * @param {Array} configurations The extension negotiation offers/reponse\n * @return {Object} Accepted configuration\n * @public\n */\n accept(configurations) {\n configurations = this.normalizeParams(configurations);\n\n this.params = this._isServer\n ? this.acceptAsServer(configurations)\n : this.acceptAsClient(configurations);\n\n return this.params;\n }\n\n /**\n * Releases all resources used by the extension.\n *\n * @public\n */\n cleanup() {\n if (this._inflate) {\n this._inflate.close();\n this._inflate = null;\n }\n\n if (this._deflate) {\n const callback = this._deflate[kCallback];\n\n this._deflate.close();\n this._deflate = null;\n\n if (callback) {\n callback(\n new Error(\n 'The deflate stream was closed while data was being processed'\n )\n );\n }\n }\n }\n\n /**\n * Accept an extension negotiation offer.\n *\n * @param {Array} offers The extension negotiation offers\n * @return {Object} Accepted configuration\n * @private\n */\n acceptAsServer(offers) {\n const opts = this._options;\n const accepted = offers.find((params) => {\n if (\n (opts.serverNoContextTakeover === false &&\n params.server_no_context_takeover) ||\n (params.server_max_window_bits &&\n (opts.serverMaxWindowBits === false ||\n (typeof opts.serverMaxWindowBits === 'number' &&\n opts.serverMaxWindowBits > params.server_max_window_bits))) ||\n (typeof opts.clientMaxWindowBits === 'number' &&\n !params.client_max_window_bits)\n ) {\n return false;\n }\n\n return true;\n });\n\n if (!accepted) {\n throw new Error('None of the extension offers can be accepted');\n }\n\n if (opts.serverNoContextTakeover) {\n accepted.server_no_context_takeover = true;\n }\n if (opts.clientNoContextTakeover) {\n accepted.client_no_context_takeover = true;\n }\n if (typeof opts.serverMaxWindowBits === 'number') {\n accepted.server_max_window_bits = opts.serverMaxWindowBits;\n }\n if (typeof opts.clientMaxWindowBits === 'number') {\n accepted.client_max_window_bits = opts.clientMaxWindowBits;\n } else if (\n accepted.client_max_window_bits === true ||\n opts.clientMaxWindowBits === false\n ) {\n delete accepted.client_max_window_bits;\n }\n\n return accepted;\n }\n\n /**\n * Accept the extension negotiation response.\n *\n * @param {Array} response The extension negotiation response\n * @return {Object} Accepted configuration\n * @private\n */\n acceptAsClient(response) {\n const params = response[0];\n\n if (\n this._options.clientNoContextTakeover === false &&\n params.client_no_context_takeover\n ) {\n throw new Error('Unexpected parameter \"client_no_context_takeover\"');\n }\n\n if (!params.client_max_window_bits) {\n if (typeof this._options.clientMaxWindowBits === 'number') {\n params.client_max_window_bits = this._options.clientMaxWindowBits;\n }\n } else if (\n this._options.clientMaxWindowBits === false ||\n (typeof this._options.clientMaxWindowBits === 'number' &&\n params.client_max_window_bits > this._options.clientMaxWindowBits)\n ) {\n throw new Error(\n 'Unexpected or invalid parameter \"client_max_window_bits\"'\n );\n }\n\n return params;\n }\n\n /**\n * Normalize parameters.\n *\n * @param {Array} configurations The extension negotiation offers/reponse\n * @return {Array} The offers/response with normalized parameters\n * @private\n */\n normalizeParams(configurations) {\n configurations.forEach((params) => {\n Object.keys(params).forEach((key) => {\n let value = params[key];\n\n if (value.length > 1) {\n throw new Error(`Parameter \"${key}\" must have only a single value`);\n }\n\n value = value[0];\n\n if (key === 'client_max_window_bits') {\n if (value !== true) {\n const num = +value;\n if (!Number.isInteger(num) || num < 8 || num > 15) {\n throw new TypeError(\n `Invalid value for parameter \"${key}\": ${value}`\n );\n }\n value = num;\n } else if (!this._isServer) {\n throw new TypeError(\n `Invalid value for parameter \"${key}\": ${value}`\n );\n }\n } else if (key === 'server_max_window_bits') {\n const num = +value;\n if (!Number.isInteger(num) || num < 8 || num > 15) {\n throw new TypeError(\n `Invalid value for parameter \"${key}\": ${value}`\n );\n }\n value = num;\n } else if (\n key === 'client_no_context_takeover' ||\n key === 'server_no_context_takeover'\n ) {\n if (value !== true) {\n throw new TypeError(\n `Invalid value for parameter \"${key}\": ${value}`\n );\n }\n } else {\n throw new Error(`Unknown parameter \"${key}\"`);\n }\n\n params[key] = value;\n });\n });\n\n return configurations;\n }\n\n /**\n * Decompress data. Concurrency limited.\n *\n * @param {Buffer} data Compressed data\n * @param {Boolean} fin Specifies whether or not this is the last fragment\n * @param {Function} callback Callback\n * @public\n */\n decompress(data, fin, callback) {\n zlibLimiter.add((done) => {\n this._decompress(data, fin, (err, result) => {\n done();\n callback(err, result);\n });\n });\n }\n\n /**\n * Compress data. Concurrency limited.\n *\n * @param {Buffer} data Data to compress\n * @param {Boolean} fin Specifies whether or not this is the last fragment\n * @param {Function} callback Callback\n * @public\n */\n compress(data, fin, callback) {\n zlibLimiter.add((done) => {\n this._compress(data, fin, (err, result) => {\n done();\n callback(err, result);\n });\n });\n }\n\n /**\n * Decompress data.\n *\n * @param {Buffer} data Compressed data\n * @param {Boolean} fin Specifies whether or not this is the last fragment\n * @param {Function} callback Callback\n * @private\n */\n _decompress(data, fin, callback) {\n const endpoint = this._isServer ? 'client' : 'server';\n\n if (!this._inflate) {\n const key = `${endpoint}_max_window_bits`;\n const windowBits =\n typeof this.params[key] !== 'number'\n ? zlib.Z_DEFAULT_WINDOWBITS\n : this.params[key];\n\n this._inflate = zlib.createInflateRaw({\n ...this._options.zlibInflateOptions,\n windowBits\n });\n this._inflate[kPerMessageDeflate] = this;\n this._inflate[kTotalLength] = 0;\n this._inflate[kBuffers] = [];\n this._inflate.on('error', inflateOnError);\n this._inflate.on('data', inflateOnData);\n }\n\n this._inflate[kCallback] = callback;\n\n this._inflate.write(data);\n if (fin) this._inflate.write(TRAILER);\n\n this._inflate.flush(() => {\n const err = this._inflate[kError];\n\n if (err) {\n this._inflate.close();\n this._inflate = null;\n callback(err);\n return;\n }\n\n const data = bufferUtil.concat(\n this._inflate[kBuffers],\n this._inflate[kTotalLength]\n );\n\n if (this._inflate._readableState.endEmitted) {\n this._inflate.close();\n this._inflate = null;\n } else {\n this._inflate[kTotalLength] = 0;\n this._inflate[kBuffers] = [];\n\n if (fin && this.params[`${endpoint}_no_context_takeover`]) {\n this._inflate.reset();\n }\n }\n\n callback(null, data);\n });\n }\n\n /**\n * Compress data.\n *\n * @param {Buffer} data Data to compress\n * @param {Boolean} fin Specifies whether or not this is the last fragment\n * @param {Function} callback Callback\n * @private\n */\n _compress(data, fin, callback) {\n const endpoint = this._isServer ? 'server' : 'client';\n\n if (!this._deflate) {\n const key = `${endpoint}_max_window_bits`;\n const windowBits =\n typeof this.params[key] !== 'number'\n ? zlib.Z_DEFAULT_WINDOWBITS\n : this.params[key];\n\n this._deflate = zlib.createDeflateRaw({\n ...this._options.zlibDeflateOptions,\n windowBits\n });\n\n this._deflate[kTotalLength] = 0;\n this._deflate[kBuffers] = [];\n\n //\n // An `'error'` event is emitted, only on Node.js < 10.0.0, if the\n // `zlib.DeflateRaw` instance is closed while data is being processed.\n // This can happen if `PerMessageDeflate#cleanup()` is called at the wrong\n // time due to an abnormal WebSocket closure.\n //\n this._deflate.on('error', NOOP);\n this._deflate.on('data', deflateOnData);\n }\n\n this._deflate[kCallback] = callback;\n\n this._deflate.write(data);\n this._deflate.flush(zlib.Z_SYNC_FLUSH, () => {\n if (!this._deflate) {\n //\n // The deflate stream was closed while data was being processed.\n //\n return;\n }\n\n let data = bufferUtil.concat(\n this._deflate[kBuffers],\n this._deflate[kTotalLength]\n );\n\n if (fin) data = data.slice(0, data.length - 4);\n\n //\n // Ensure that the callback will not be called again in\n // `PerMessageDeflate#cleanup()`.\n //\n this._deflate[kCallback] = null;\n\n this._deflate[kTotalLength] = 0;\n this._deflate[kBuffers] = [];\n\n if (fin && this.params[`${endpoint}_no_context_takeover`]) {\n this._deflate.reset();\n }\n\n callback(null, data);\n });\n }\n}\n\nmodule.exports = PerMessageDeflate;\n\n/**\n * The listener of the `zlib.DeflateRaw` stream `'data'` event.\n *\n * @param {Buffer} chunk A chunk of data\n * @private\n */\nfunction deflateOnData(chunk) {\n this[kBuffers].push(chunk);\n this[kTotalLength] += chunk.length;\n}\n\n/**\n * The listener of the `zlib.InflateRaw` stream `'data'` event.\n *\n * @param {Buffer} chunk A chunk of data\n * @private\n */\nfunction inflateOnData(chunk) {\n this[kTotalLength] += chunk.length;\n\n if (\n this[kPerMessageDeflate]._maxPayload < 1 ||\n this[kTotalLength] <= this[kPerMessageDeflate]._maxPayload\n ) {\n this[kBuffers].push(chunk);\n return;\n }\n\n this[kError] = new RangeError('Max payload size exceeded');\n this[kError][kStatusCode] = 1009;\n this.removeListener('data', inflateOnData);\n this.reset();\n}\n\n/**\n * The listener of the `zlib.InflateRaw` stream `'error'` event.\n *\n * @param {Error} err The emitted error\n * @private\n */\nfunction inflateOnError(err) {\n //\n // There is no need to call `Zlib#close()` as the handle is automatically\n // closed when an error is emitted.\n //\n this[kPerMessageDeflate]._inflate = null;\n err[kStatusCode] = 1007;\n this[kCallback](err);\n}\n", "'use strict';\n\n/**\n * Checks if a given buffer contains only correct UTF-8.\n * Ported from https://www.cl.cam.ac.uk/%7Emgk25/ucs/utf8_check.c by\n * Markus Kuhn.\n *\n * @param {Buffer} buf The buffer to check\n * @return {Boolean} `true` if `buf` contains only correct UTF-8, else `false`\n * @public\n */\nfunction isValidUTF8(buf) {\n const len = buf.length;\n let i = 0;\n\n while (i < len) {\n if ((buf[i] & 0x80) === 0x00) { // 0xxxxxxx\n i++;\n } else if ((buf[i] & 0xe0) === 0xc0) { // 110xxxxx 10xxxxxx\n if (\n i + 1 === len ||\n (buf[i + 1] & 0xc0) !== 0x80 ||\n (buf[i] & 0xfe) === 0xc0 // overlong\n ) {\n return false;\n }\n\n i += 2;\n } else if ((buf[i] & 0xf0) === 0xe0) { // 1110xxxx 10xxxxxx 10xxxxxx\n if (\n i + 2 >= len ||\n (buf[i + 1] & 0xc0) !== 0x80 ||\n (buf[i + 2] & 0xc0) !== 0x80 ||\n buf[i] === 0xe0 && (buf[i + 1] & 0xe0) === 0x80 || // overlong\n buf[i] === 0xed && (buf[i + 1] & 0xe0) === 0xa0 // surrogate (U+D800 - U+DFFF)\n ) {\n return false;\n }\n\n i += 3;\n } else if ((buf[i] & 0xf8) === 0xf0) { // 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx\n if (\n i + 3 >= len ||\n (buf[i + 1] & 0xc0) !== 0x80 ||\n (buf[i + 2] & 0xc0) !== 0x80 ||\n (buf[i + 3] & 0xc0) !== 0x80 ||\n buf[i] === 0xf0 && (buf[i + 1] & 0xf0) === 0x80 || // overlong\n buf[i] === 0xf4 && buf[i + 1] > 0x8f || buf[i] > 0xf4 // > U+10FFFF\n ) {\n return false;\n }\n\n i += 4;\n } else {\n return false;\n }\n }\n\n return true;\n}\n\nmodule.exports = isValidUTF8;\n", "'use strict';\n\ntry {\n module.exports = require('node-gyp-build')(__dirname);\n} catch (e) {\n module.exports = require('./fallback');\n}\n", "'use strict';\n\n/**\n * Checks if a status code is allowed in a close frame.\n *\n * @param {Number} code The status code\n * @return {Boolean} `true` if the status code is valid, else `false`\n * @public\n */\nfunction isValidStatusCode(code) {\n return (\n (code >= 1000 &&\n code <= 1014 &&\n code !== 1004 &&\n code !== 1005 &&\n code !== 1006) ||\n (code >= 3000 && code <= 4999)\n );\n}\n\n/**\n * Checks if a given buffer contains only correct UTF-8.\n * Ported from https://www.cl.cam.ac.uk/%7Emgk25/ucs/utf8_check.c by\n * Markus Kuhn.\n *\n * @param {Buffer} buf The buffer to check\n * @return {Boolean} `true` if `buf` contains only correct UTF-8, else `false`\n * @public\n */\nfunction _isValidUTF8(buf) {\n const len = buf.length;\n let i = 0;\n\n while (i < len) {\n if ((buf[i] & 0x80) === 0) {\n // 0xxxxxxx\n i++;\n } else if ((buf[i] & 0xe0) === 0xc0) {\n // 110xxxxx 10xxxxxx\n if (\n i + 1 === len ||\n (buf[i + 1] & 0xc0) !== 0x80 ||\n (buf[i] & 0xfe) === 0xc0 // Overlong\n ) {\n return false;\n }\n\n i += 2;\n } else if ((buf[i] & 0xf0) === 0xe0) {\n // 1110xxxx 10xxxxxx 10xxxxxx\n if (\n i + 2 >= len ||\n (buf[i + 1] & 0xc0) !== 0x80 ||\n (buf[i + 2] & 0xc0) !== 0x80 ||\n (buf[i] === 0xe0 && (buf[i + 1] & 0xe0) === 0x80) || // Overlong\n (buf[i] === 0xed && (buf[i + 1] & 0xe0) === 0xa0) // Surrogate (U+D800 - U+DFFF)\n ) {\n return false;\n }\n\n i += 3;\n } else if ((buf[i] & 0xf8) === 0xf0) {\n // 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx\n if (\n i + 3 >= len ||\n (buf[i + 1] & 0xc0) !== 0x80 ||\n (buf[i + 2] & 0xc0) !== 0x80 ||\n (buf[i + 3] & 0xc0) !== 0x80 ||\n (buf[i] === 0xf0 && (buf[i + 1] & 0xf0) === 0x80) || // Overlong\n (buf[i] === 0xf4 && buf[i + 1] > 0x8f) ||\n buf[i] > 0xf4 // > U+10FFFF\n ) {\n return false;\n }\n\n i += 4;\n } else {\n return false;\n }\n }\n\n return true;\n}\n\ntry {\n let isValidUTF8 = require('utf-8-validate');\n\n /* istanbul ignore if */\n if (typeof isValidUTF8 === 'object') {\n isValidUTF8 = isValidUTF8.Validation.isValidUTF8; // utf-8-validate@<3.0.0\n }\n\n module.exports = {\n isValidStatusCode,\n isValidUTF8(buf) {\n return buf.length < 150 ? _isValidUTF8(buf) : isValidUTF8(buf);\n }\n };\n} catch (e) /* istanbul ignore next */ {\n module.exports = {\n isValidStatusCode,\n isValidUTF8: _isValidUTF8\n };\n}\n", "'use strict';\n\nconst { Writable } = require('stream');\n\nconst PerMessageDeflate = require('./permessage-deflate');\nconst {\n BINARY_TYPES,\n EMPTY_BUFFER,\n kStatusCode,\n kWebSocket\n} = require('./constants');\nconst { concat, toArrayBuffer, unmask } = require('./buffer-util');\nconst { isValidStatusCode, isValidUTF8 } = require('./validation');\n\nconst GET_INFO = 0;\nconst GET_PAYLOAD_LENGTH_16 = 1;\nconst GET_PAYLOAD_LENGTH_64 = 2;\nconst GET_MASK = 3;\nconst GET_DATA = 4;\nconst INFLATING = 5;\n\n/**\n * HyBi Receiver implementation.\n *\n * @extends stream.Writable\n */\nclass Receiver extends Writable {\n /**\n * Creates a Receiver instance.\n *\n * @param {String} [binaryType=nodebuffer] The type for binary data\n * @param {Object} [extensions] An object containing the negotiated extensions\n * @param {Boolean} [isServer=false] Specifies whether to operate in client or\n * server mode\n * @param {Number} [maxPayload=0] The maximum allowed message length\n */\n constructor(binaryType, extensions, isServer, maxPayload) {\n super();\n\n this._binaryType = binaryType || BINARY_TYPES[0];\n this[kWebSocket] = undefined;\n this._extensions = extensions || {};\n this._isServer = !!isServer;\n this._maxPayload = maxPayload | 0;\n\n this._bufferedBytes = 0;\n this._buffers = [];\n\n this._compressed = false;\n this._payloadLength = 0;\n this._mask = undefined;\n this._fragmented = 0;\n this._masked = false;\n this._fin = false;\n this._opcode = 0;\n\n this._totalPayloadLength = 0;\n this._messageLength = 0;\n this._fragments = [];\n\n this._state = GET_INFO;\n this._loop = false;\n }\n\n /**\n * Implements `Writable.prototype._write()`.\n *\n * @param {Buffer} chunk The chunk of data to write\n * @param {String} encoding The character encoding of `chunk`\n * @param {Function} cb Callback\n * @private\n */\n _write(chunk, encoding, cb) {\n if (this._opcode === 0x08 && this._state == GET_INFO) return cb();\n\n this._bufferedBytes += chunk.length;\n this._buffers.push(chunk);\n this.startLoop(cb);\n }\n\n /**\n * Consumes `n` bytes from the buffered data.\n *\n * @param {Number} n The number of bytes to consume\n * @return {Buffer} The consumed bytes\n * @private\n */\n consume(n) {\n this._bufferedBytes -= n;\n\n if (n === this._buffers[0].length) return this._buffers.shift();\n\n if (n < this._buffers[0].length) {\n const buf = this._buffers[0];\n this._buffers[0] = buf.slice(n);\n return buf.slice(0, n);\n }\n\n const dst = Buffer.allocUnsafe(n);\n\n do {\n const buf = this._buffers[0];\n const offset = dst.length - n;\n\n if (n >= buf.length) {\n dst.set(this._buffers.shift(), offset);\n } else {\n dst.set(new Uint8Array(buf.buffer, buf.byteOffset, n), offset);\n this._buffers[0] = buf.slice(n);\n }\n\n n -= buf.length;\n } while (n > 0);\n\n return dst;\n }\n\n /**\n * Starts the parsing loop.\n *\n * @param {Function} cb Callback\n * @private\n */\n startLoop(cb) {\n let err;\n this._loop = true;\n\n do {\n switch (this._state) {\n case GET_INFO:\n err = this.getInfo();\n break;\n case GET_PAYLOAD_LENGTH_16:\n err = this.getPayloadLength16();\n break;\n case GET_PAYLOAD_LENGTH_64:\n err = this.getPayloadLength64();\n break;\n case GET_MASK:\n this.getMask();\n break;\n case GET_DATA:\n err = this.getData(cb);\n break;\n default:\n // `INFLATING`\n this._loop = false;\n return;\n }\n } while (this._loop);\n\n cb(err);\n }\n\n /**\n * Reads the first two bytes of a frame.\n *\n * @return {(RangeError|undefined)} A possible error\n * @private\n */\n getInfo() {\n if (this._bufferedBytes < 2) {\n this._loop = false;\n return;\n }\n\n const buf = this.consume(2);\n\n if ((buf[0] & 0x30) !== 0x00) {\n this._loop = false;\n return error(RangeError, 'RSV2 and RSV3 must be clear', true, 1002);\n }\n\n const compressed = (buf[0] & 0x40) === 0x40;\n\n if (compressed && !this._extensions[PerMessageDeflate.extensionName]) {\n this._loop = false;\n return error(RangeError, 'RSV1 must be clear', true, 1002);\n }\n\n this._fin = (buf[0] & 0x80) === 0x80;\n this._opcode = buf[0] & 0x0f;\n this._payloadLength = buf[1] & 0x7f;\n\n if (this._opcode === 0x00) {\n if (compressed) {\n this._loop = false;\n return error(RangeError, 'RSV1 must be clear', true, 1002);\n }\n\n if (!this._fragmented) {\n this._loop = false;\n return error(RangeError, 'invalid opcode 0', true, 1002);\n }\n\n this._opcode = this._fragmented;\n } else if (this._opcode === 0x01 || this._opcode === 0x02) {\n if (this._fragmented) {\n this._loop = false;\n return error(RangeError, `invalid opcode ${this._opcode}`, true, 1002);\n }\n\n this._compressed = compressed;\n } else if (this._opcode > 0x07 && this._opcode < 0x0b) {\n if (!this._fin) {\n this._loop = false;\n return error(RangeError, 'FIN must be set', true, 1002);\n }\n\n if (compressed) {\n this._loop = false;\n return error(RangeError, 'RSV1 must be clear', true, 1002);\n }\n\n if (this._payloadLength > 0x7d) {\n this._loop = false;\n return error(\n RangeError,\n `invalid payload length ${this._payloadLength}`,\n true,\n 1002\n );\n }\n } else {\n this._loop = false;\n return error(RangeError, `invalid opcode ${this._opcode}`, true, 1002);\n }\n\n if (!this._fin && !this._fragmented) this._fragmented = this._opcode;\n this._masked = (buf[1] & 0x80) === 0x80;\n\n if (this._isServer) {\n if (!this._masked) {\n this._loop = false;\n return error(RangeError, 'MASK must be set', true, 1002);\n }\n } else if (this._masked) {\n this._loop = false;\n return error(RangeError, 'MASK must be clear', true, 1002);\n }\n\n if (this._payloadLength === 126) this._state = GET_PAYLOAD_LENGTH_16;\n else if (this._payloadLength === 127) this._state = GET_PAYLOAD_LENGTH_64;\n else return this.haveLength();\n }\n\n /**\n * Gets extended payload length (7+16).\n *\n * @return {(RangeError|undefined)} A possible error\n * @private\n */\n getPayloadLength16() {\n if (this._bufferedBytes < 2) {\n this._loop = false;\n return;\n }\n\n this._payloadLength = this.consume(2).readUInt16BE(0);\n return this.haveLength();\n }\n\n /**\n * Gets extended payload length (7+64).\n *\n * @return {(RangeError|undefined)} A possible error\n * @private\n */\n getPayloadLength64() {\n if (this._bufferedBytes < 8) {\n this._loop = false;\n return;\n }\n\n const buf = this.consume(8);\n const num = buf.readUInt32BE(0);\n\n //\n // The maximum safe integer in JavaScript is 2^53 - 1. An error is returned\n // if payload length is greater than this number.\n //\n if (num > Math.pow(2, 53 - 32) - 1) {\n this._loop = false;\n return error(\n RangeError,\n 'Unsupported WebSocket frame: payload length > 2^53 - 1',\n false,\n 1009\n );\n }\n\n this._payloadLength = num * Math.pow(2, 32) + buf.readUInt32BE(4);\n return this.haveLength();\n }\n\n /**\n * Payload length has been read.\n *\n * @return {(RangeError|undefined)} A possible error\n * @private\n */\n haveLength() {\n if (this._payloadLength && this._opcode < 0x08) {\n this._totalPayloadLength += this._payloadLength;\n if (this._totalPayloadLength > this._maxPayload && this._maxPayload > 0) {\n this._loop = false;\n return error(RangeError, 'Max payload size exceeded', false, 1009);\n }\n }\n\n if (this._masked) this._state = GET_MASK;\n else this._state = GET_DATA;\n }\n\n /**\n * Reads mask bytes.\n *\n * @private\n */\n getMask() {\n if (this._bufferedBytes < 4) {\n this._loop = false;\n return;\n }\n\n this._mask = this.consume(4);\n this._state = GET_DATA;\n }\n\n /**\n * Reads data bytes.\n *\n * @param {Function} cb Callback\n * @return {(Error|RangeError|undefined)} A possible error\n * @private\n */\n getData(cb) {\n let data = EMPTY_BUFFER;\n\n if (this._payloadLength) {\n if (this._bufferedBytes < this._payloadLength) {\n this._loop = false;\n return;\n }\n\n data = this.consume(this._payloadLength);\n if (this._masked) unmask(data, this._mask);\n }\n\n if (this._opcode > 0x07) return this.controlMessage(data);\n\n if (this._compressed) {\n this._state = INFLATING;\n this.decompress(data, cb);\n return;\n }\n\n if (data.length) {\n //\n // This message is not compressed so its lenght is the sum of the payload\n // length of all fragments.\n //\n this._messageLength = this._totalPayloadLength;\n this._fragments.push(data);\n }\n\n return this.dataMessage();\n }\n\n /**\n * Decompresses data.\n *\n * @param {Buffer} data Compressed data\n * @param {Function} cb Callback\n * @private\n */\n decompress(data, cb) {\n const perMessageDeflate = this._extensions[PerMessageDeflate.extensionName];\n\n perMessageDeflate.decompress(data, this._fin, (err, buf) => {\n if (err) return cb(err);\n\n if (buf.length) {\n this._messageLength += buf.length;\n if (this._messageLength > this._maxPayload && this._maxPayload > 0) {\n return cb(\n error(RangeError, 'Max payload size exceeded', false, 1009)\n );\n }\n\n this._fragments.push(buf);\n }\n\n const er = this.dataMessage();\n if (er) return cb(er);\n\n this.startLoop(cb);\n });\n }\n\n /**\n * Handles a data message.\n *\n * @return {(Error|undefined)} A possible error\n * @private\n */\n dataMessage() {\n if (this._fin) {\n const messageLength = this._messageLength;\n const fragments = this._fragments;\n\n this._totalPayloadLength = 0;\n this._messageLength = 0;\n this._fragmented = 0;\n this._fragments = [];\n\n if (this._opcode === 2) {\n let data;\n\n if (this._binaryType === 'nodebuffer') {\n data = concat(fragments, messageLength);\n } else if (this._binaryType === 'arraybuffer') {\n data = toArrayBuffer(concat(fragments, messageLength));\n } else {\n data = fragments;\n }\n\n this.emit('message', data);\n } else {\n const buf = concat(fragments, messageLength);\n\n if (!isValidUTF8(buf)) {\n this._loop = false;\n return error(Error, 'invalid UTF-8 sequence', true, 1007);\n }\n\n this.emit('message', buf.toString());\n }\n }\n\n this._state = GET_INFO;\n }\n\n /**\n * Handles a control message.\n *\n * @param {Buffer} data Data to handle\n * @return {(Error|RangeError|undefined)} A possible error\n * @private\n */\n controlMessage(data) {\n if (this._opcode === 0x08) {\n this._loop = false;\n\n if (data.length === 0) {\n this.emit('conclude', 1005, '');\n this.end();\n } else if (data.length === 1) {\n return error(RangeError, 'invalid payload length 1', true, 1002);\n } else {\n const code = data.readUInt16BE(0);\n\n if (!isValidStatusCode(code)) {\n return error(RangeError, `invalid status code ${code}`, true, 1002);\n }\n\n const buf = data.slice(2);\n\n if (!isValidUTF8(buf)) {\n return error(Error, 'invalid UTF-8 sequence', true, 1007);\n }\n\n this.emit('conclude', code, buf.toString());\n this.end();\n }\n } else if (this._opcode === 0x09) {\n this.emit('ping', data);\n } else {\n this.emit('pong', data);\n }\n\n this._state = GET_INFO;\n }\n}\n\nmodule.exports = Receiver;\n\n/**\n * Builds an error object.\n *\n * @param {(Error|RangeError)} ErrorCtor The error constructor\n * @param {String} message The error message\n * @param {Boolean} prefix Specifies whether or not to add a default prefix to\n * `message`\n * @param {Number} statusCode The status code\n * @return {(Error|RangeError)} The error\n * @private\n */\nfunction error(ErrorCtor, message, prefix, statusCode) {\n const err = new ErrorCtor(\n prefix ? `Invalid WebSocket frame: ${message}` : message\n );\n\n Error.captureStackTrace(err, error);\n err[kStatusCode] = statusCode;\n return err;\n}\n", "'use strict';\n\nconst { randomFillSync } = require('crypto');\n\nconst PerMessageDeflate = require('./permessage-deflate');\nconst { EMPTY_BUFFER } = require('./constants');\nconst { isValidStatusCode } = require('./validation');\nconst { mask: applyMask, toBuffer } = require('./buffer-util');\n\nconst mask = Buffer.alloc(4);\n\n/**\n * HyBi Sender implementation.\n */\nclass Sender {\n /**\n * Creates a Sender instance.\n *\n * @param {net.Socket} socket The connection socket\n * @param {Object} [extensions] An object containing the negotiated extensions\n */\n constructor(socket, extensions) {\n this._extensions = extensions || {};\n this._socket = socket;\n\n this._firstFragment = true;\n this._compress = false;\n\n this._bufferedBytes = 0;\n this._deflating = false;\n this._queue = [];\n }\n\n /**\n * Frames a piece of data according to the HyBi WebSocket protocol.\n *\n * @param {Buffer} data The data to frame\n * @param {Object} options Options object\n * @param {Number} options.opcode The opcode\n * @param {Boolean} [options.readOnly=false] Specifies whether `data` can be\n * modified\n * @param {Boolean} [options.fin=false] Specifies whether or not to set the\n * FIN bit\n * @param {Boolean} [options.mask=false] Specifies whether or not to mask\n * `data`\n * @param {Boolean} [options.rsv1=false] Specifies whether or not to set the\n * RSV1 bit\n * @return {Buffer[]} The framed data as a list of `Buffer` instances\n * @public\n */\n static frame(data, options) {\n const merge = options.mask && options.readOnly;\n let offset = options.mask ? 6 : 2;\n let payloadLength = data.length;\n\n if (data.length >= 65536) {\n offset += 8;\n payloadLength = 127;\n } else if (data.length > 125) {\n offset += 2;\n payloadLength = 126;\n }\n\n const target = Buffer.allocUnsafe(merge ? data.length + offset : offset);\n\n target[0] = options.fin ? options.opcode | 0x80 : options.opcode;\n if (options.rsv1) target[0] |= 0x40;\n\n target[1] = payloadLength;\n\n if (payloadLength === 126) {\n target.writeUInt16BE(data.length, 2);\n } else if (payloadLength === 127) {\n target.writeUInt32BE(0, 2);\n target.writeUInt32BE(data.length, 6);\n }\n\n if (!options.mask) return [target, data];\n\n randomFillSync(mask, 0, 4);\n\n target[1] |= 0x80;\n target[offset - 4] = mask[0];\n target[offset - 3] = mask[1];\n target[offset - 2] = mask[2];\n target[offset - 1] = mask[3];\n\n if (merge) {\n applyMask(data, mask, target, offset, data.length);\n return [target];\n }\n\n applyMask(data, mask, data, 0, data.length);\n return [target, data];\n }\n\n /**\n * Sends a close message to the other peer.\n *\n * @param {Number} [code] The status code component of the body\n * @param {String} [data] The message component of the body\n * @param {Boolean} [mask=false] Specifies whether or not to mask the message\n * @param {Function} [cb] Callback\n * @public\n */\n close(code, data, mask, cb) {\n let buf;\n\n if (code === undefined) {\n buf = EMPTY_BUFFER;\n } else if (typeof code !== 'number' || !isValidStatusCode(code)) {\n throw new TypeError('First argument must be a valid error code number');\n } else if (data === undefined || data === '') {\n buf = Buffer.allocUnsafe(2);\n buf.writeUInt16BE(code, 0);\n } else {\n const length = Buffer.byteLength(data);\n\n if (length > 123) {\n throw new RangeError('The message must not be greater than 123 bytes');\n }\n\n buf = Buffer.allocUnsafe(2 + length);\n buf.writeUInt16BE(code, 0);\n buf.write(data, 2);\n }\n\n if (this._deflating) {\n this.enqueue([this.doClose, buf, mask, cb]);\n } else {\n this.doClose(buf, mask, cb);\n }\n }\n\n /**\n * Frames and sends a close message.\n *\n * @param {Buffer} data The message to send\n * @param {Boolean} [mask=false] Specifies whether or not to mask `data`\n * @param {Function} [cb] Callback\n * @private\n */\n doClose(data, mask, cb) {\n this.sendFrame(\n Sender.frame(data, {\n fin: true,\n rsv1: false,\n opcode: 0x08,\n mask,\n readOnly: false\n }),\n cb\n );\n }\n\n /**\n * Sends a ping message to the other peer.\n *\n * @param {*} data The message to send\n * @param {Boolean} [mask=false] Specifies whether or not to mask `data`\n * @param {Function} [cb] Callback\n * @public\n */\n ping(data, mask, cb) {\n const buf = toBuffer(data);\n\n if (buf.length > 125) {\n throw new RangeError('The data size must not be greater than 125 bytes');\n }\n\n if (this._deflating) {\n this.enqueue([this.doPing, buf, mask, toBuffer.readOnly, cb]);\n } else {\n this.doPing(buf, mask, toBuffer.readOnly, cb);\n }\n }\n\n /**\n * Frames and sends a ping message.\n *\n * @param {Buffer} data The message to send\n * @param {Boolean} [mask=false] Specifies whether or not to mask `data`\n * @param {Boolean} [readOnly=false] Specifies whether `data` can be modified\n * @param {Function} [cb] Callback\n * @private\n */\n doPing(data, mask, readOnly, cb) {\n this.sendFrame(\n Sender.frame(data, {\n fin: true,\n rsv1: false,\n opcode: 0x09,\n mask,\n readOnly\n }),\n cb\n );\n }\n\n /**\n * Sends a pong message to the other peer.\n *\n * @param {*} data The message to send\n * @param {Boolean} [mask=false] Specifies whether or not to mask `data`\n * @param {Function} [cb] Callback\n * @public\n */\n pong(data, mask, cb) {\n const buf = toBuffer(data);\n\n if (buf.length > 125) {\n throw new RangeError('The data size must not be greater than 125 bytes');\n }\n\n if (this._deflating) {\n this.enqueue([this.doPong, buf, mask, toBuffer.readOnly, cb]);\n } else {\n this.doPong(buf, mask, toBuffer.readOnly, cb);\n }\n }\n\n /**\n * Frames and sends a pong message.\n *\n * @param {Buffer} data The message to send\n * @param {Boolean} [mask=false] Specifies whether or not to mask `data`\n * @param {Boolean} [readOnly=false] Specifies whether `data` can be modified\n * @param {Function} [cb] Callback\n * @private\n */\n doPong(data, mask, readOnly, cb) {\n this.sendFrame(\n Sender.frame(data, {\n fin: true,\n rsv1: false,\n opcode: 0x0a,\n mask,\n readOnly\n }),\n cb\n );\n }\n\n /**\n * Sends a data message to the other peer.\n *\n * @param {*} data The message to send\n * @param {Object} options Options object\n * @param {Boolean} [options.compress=false] Specifies whether or not to\n * compress `data`\n * @param {Boolean} [options.binary=false] Specifies whether `data` is binary\n * or text\n * @param {Boolean} [options.fin=false] Specifies whether the fragment is the\n * last one\n * @param {Boolean} [options.mask=false] Specifies whether or not to mask\n * `data`\n * @param {Function} [cb] Callback\n * @public\n */\n send(data, options, cb) {\n const buf = toBuffer(data);\n const perMessageDeflate = this._extensions[PerMessageDeflate.extensionName];\n let opcode = options.binary ? 2 : 1;\n let rsv1 = options.compress;\n\n if (this._firstFragment) {\n this._firstFragment = false;\n if (rsv1 && perMessageDeflate) {\n rsv1 = buf.length >= perMessageDeflate._threshold;\n }\n this._compress = rsv1;\n } else {\n rsv1 = false;\n opcode = 0;\n }\n\n if (options.fin) this._firstFragment = true;\n\n if (perMessageDeflate) {\n const opts = {\n fin: options.fin,\n rsv1,\n opcode,\n mask: options.mask,\n readOnly: toBuffer.readOnly\n };\n\n if (this._deflating) {\n this.enqueue([this.dispatch, buf, this._compress, opts, cb]);\n } else {\n this.dispatch(buf, this._compress, opts, cb);\n }\n } else {\n this.sendFrame(\n Sender.frame(buf, {\n fin: options.fin,\n rsv1: false,\n opcode,\n mask: options.mask,\n readOnly: toBuffer.readOnly\n }),\n cb\n );\n }\n }\n\n /**\n * Dispatches a data message.\n *\n * @param {Buffer} data The message to send\n * @param {Boolean} [compress=false] Specifies whether or not to compress\n * `data`\n * @param {Object} options Options object\n * @param {Number} options.opcode The opcode\n * @param {Boolean} [options.readOnly=false] Specifies whether `data` can be\n * modified\n * @param {Boolean} [options.fin=false] Specifies whether or not to set the\n * FIN bit\n * @param {Boolean} [options.mask=false] Specifies whether or not to mask\n * `data`\n * @param {Boolean} [options.rsv1=false] Specifies whether or not to set the\n * RSV1 bit\n * @param {Function} [cb] Callback\n * @private\n */\n dispatch(data, compress, options, cb) {\n if (!compress) {\n this.sendFrame(Sender.frame(data, options), cb);\n return;\n }\n\n const perMessageDeflate = this._extensions[PerMessageDeflate.extensionName];\n\n this._bufferedBytes += data.length;\n this._deflating = true;\n perMessageDeflate.compress(data, options.fin, (_, buf) => {\n if (this._socket.destroyed) {\n const err = new Error(\n 'The socket was closed while data was being compressed'\n );\n\n if (typeof cb === 'function') cb(err);\n\n for (let i = 0; i < this._queue.length; i++) {\n const callback = this._queue[i][4];\n\n if (typeof callback === 'function') callback(err);\n }\n\n return;\n }\n\n this._bufferedBytes -= data.length;\n this._deflating = false;\n options.readOnly = false;\n this.sendFrame(Sender.frame(buf, options), cb);\n this.dequeue();\n });\n }\n\n /**\n * Executes queued send operations.\n *\n * @private\n */\n dequeue() {\n while (!this._deflating && this._queue.length) {\n const params = this._queue.shift();\n\n this._bufferedBytes -= params[1].length;\n Reflect.apply(params[0], this, params.slice(1));\n }\n }\n\n /**\n * Enqueues a send operation.\n *\n * @param {Array} params Send operation parameters.\n * @private\n */\n enqueue(params) {\n this._bufferedBytes += params[1].length;\n this._queue.push(params);\n }\n\n /**\n * Sends a frame.\n *\n * @param {Buffer[]} list The frame to send\n * @param {Function} [cb] Callback\n * @private\n */\n sendFrame(list, cb) {\n if (list.length === 2) {\n this._socket.cork();\n this._socket.write(list[0]);\n this._socket.write(list[1], cb);\n this._socket.uncork();\n } else {\n this._socket.write(list[0], cb);\n }\n }\n}\n\nmodule.exports = Sender;\n", "'use strict';\n\n/**\n * Class representing an event.\n *\n * @private\n */\nclass Event {\n /**\n * Create a new `Event`.\n *\n * @param {String} type The name of the event\n * @param {Object} target A reference to the target to which the event was\n * dispatched\n */\n constructor(type, target) {\n this.target = target;\n this.type = type;\n }\n}\n\n/**\n * Class representing a message event.\n *\n * @extends Event\n * @private\n */\nclass MessageEvent extends Event {\n /**\n * Create a new `MessageEvent`.\n *\n * @param {(String|Buffer|ArrayBuffer|Buffer[])} data The received data\n * @param {WebSocket} target A reference to the target to which the event was\n * dispatched\n */\n constructor(data, target) {\n super('message', target);\n\n this.data = data;\n }\n}\n\n/**\n * Class representing a close event.\n *\n * @extends Event\n * @private\n */\nclass CloseEvent extends Event {\n /**\n * Create a new `CloseEvent`.\n *\n * @param {Number} code The status code explaining why the connection is being\n * closed\n * @param {String} reason A human-readable string explaining why the\n * connection is closing\n * @param {WebSocket} target A reference to the target to which the event was\n * dispatched\n */\n constructor(code, reason, target) {\n super('close', target);\n\n this.wasClean = target._closeFrameReceived && target._closeFrameSent;\n this.reason = reason;\n this.code = code;\n }\n}\n\n/**\n * Class representing an open event.\n *\n * @extends Event\n * @private\n */\nclass OpenEvent extends Event {\n /**\n * Create a new `OpenEvent`.\n *\n * @param {WebSocket} target A reference to the target to which the event was\n * dispatched\n */\n constructor(target) {\n super('open', target);\n }\n}\n\n/**\n * Class representing an error event.\n *\n * @extends Event\n * @private\n */\nclass ErrorEvent extends Event {\n /**\n * Create a new `ErrorEvent`.\n *\n * @param {Object} error The error that generated this event\n * @param {WebSocket} target A reference to the target to which the event was\n * dispatched\n */\n constructor(error, target) {\n super('error', target);\n\n this.message = error.message;\n this.error = error;\n }\n}\n\n/**\n * This provides methods for emulating the `EventTarget` interface. It's not\n * meant to be used directly.\n *\n * @mixin\n */\nconst EventTarget = {\n /**\n * Register an event listener.\n *\n * @param {String} type A string representing the event type to listen for\n * @param {Function} listener The listener to add\n * @param {Object} [options] An options object specifies characteristics about\n * the event listener\n * @param {Boolean} [options.once=false] A `Boolean`` indicating that the\n * listener should be invoked at most once after being added. If `true`,\n * the listener would be automatically removed when invoked.\n * @public\n */\n addEventListener(type, listener, options) {\n if (typeof listener !== 'function') return;\n\n function onMessage(data) {\n listener.call(this, new MessageEvent(data, this));\n }\n\n function onClose(code, message) {\n listener.call(this, new CloseEvent(code, message, this));\n }\n\n function onError(error) {\n listener.call(this, new ErrorEvent(error, this));\n }\n\n function onOpen() {\n listener.call(this, new OpenEvent(this));\n }\n\n const method = options && options.once ? 'once' : 'on';\n\n if (type === 'message') {\n onMessage._listener = listener;\n this[method](type, onMessage);\n } else if (type === 'close') {\n onClose._listener = listener;\n this[method](type, onClose);\n } else if (type === 'error') {\n onError._listener = listener;\n this[method](type, onError);\n } else if (type === 'open') {\n onOpen._listener = listener;\n this[method](type, onOpen);\n } else {\n this[method](type, listener);\n }\n },\n\n /**\n * Remove an event listener.\n *\n * @param {String} type A string representing the event type to remove\n * @param {Function} listener The listener to remove\n * @public\n */\n removeEventListener(type, listener) {\n const listeners = this.listeners(type);\n\n for (let i = 0; i < listeners.length; i++) {\n if (listeners[i] === listener || listeners[i]._listener === listener) {\n this.removeListener(type, listeners[i]);\n }\n }\n }\n};\n\nmodule.exports = EventTarget;\n", "'use strict';\n\n//\n// Allowed token characters:\n//\n// '!', '#', '$', '%', '&', ''', '*', '+', '-',\n// '.', 0-9, A-Z, '^', '_', '`', a-z, '|', '~'\n//\n// tokenChars[32] === 0 // ' '\n// tokenChars[33] === 1 // '!'\n// tokenChars[34] === 0 // '\"'\n// ...\n//\n// prettier-ignore\nconst tokenChars = [\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 0 - 15\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 16 - 31\n 0, 1, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, // 32 - 47\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, // 48 - 63\n 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 64 - 79\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, // 80 - 95\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 96 - 111\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0 // 112 - 127\n];\n\n/**\n * Adds an offer to the map of extension offers or a parameter to the map of\n * parameters.\n *\n * @param {Object} dest The map of extension offers or parameters\n * @param {String} name The extension or parameter name\n * @param {(Object|Boolean|String)} elem The extension parameters or the\n * parameter value\n * @private\n */\nfunction push(dest, name, elem) {\n if (dest[name] === undefined) dest[name] = [elem];\n else dest[name].push(elem);\n}\n\n/**\n * Parses the `Sec-WebSocket-Extensions` header into an object.\n *\n * @param {String} header The field value of the header\n * @return {Object} The parsed object\n * @public\n */\nfunction parse(header) {\n const offers = Object.create(null);\n\n if (header === undefined || header === '') return offers;\n\n let params = Object.create(null);\n let mustUnescape = false;\n let isEscaping = false;\n let inQuotes = false;\n let extensionName;\n let paramName;\n let start = -1;\n let end = -1;\n let i = 0;\n\n for (; i < header.length; i++) {\n const code = header.charCodeAt(i);\n\n if (extensionName === undefined) {\n if (end === -1 && tokenChars[code] === 1) {\n if (start === -1) start = i;\n } else if (code === 0x20 /* ' ' */ || code === 0x09 /* '\\t' */) {\n if (end === -1 && start !== -1) end = i;\n } else if (code === 0x3b /* ';' */ || code === 0x2c /* ',' */) {\n if (start === -1) {\n throw new SyntaxError(`Unexpected character at index ${i}`);\n }\n\n if (end === -1) end = i;\n const name = header.slice(start, end);\n if (code === 0x2c) {\n push(offers, name, params);\n params = Object.create(null);\n } else {\n extensionName = name;\n }\n\n start = end = -1;\n } else {\n throw new SyntaxError(`Unexpected character at index ${i}`);\n }\n } else if (paramName === undefined) {\n if (end === -1 && tokenChars[code] === 1) {\n if (start === -1) start = i;\n } else if (code === 0x20 || code === 0x09) {\n if (end === -1 && start !== -1) end = i;\n } else if (code === 0x3b || code === 0x2c) {\n if (start === -1) {\n throw new SyntaxError(`Unexpected character at index ${i}`);\n }\n\n if (end === -1) end = i;\n push(params, header.slice(start, end), true);\n if (code === 0x2c) {\n push(offers, extensionName, params);\n params = Object.create(null);\n extensionName = undefined;\n }\n\n start = end = -1;\n } else if (code === 0x3d /* '=' */ && start !== -1 && end === -1) {\n paramName = header.slice(start, i);\n start = end = -1;\n } else {\n throw new SyntaxError(`Unexpected character at index ${i}`);\n }\n } else {\n //\n // The value of a quoted-string after unescaping must conform to the\n // token ABNF, so only token characters are valid.\n // Ref: https://tools.ietf.org/html/rfc6455#section-9.1\n //\n if (isEscaping) {\n if (tokenChars[code] !== 1) {\n throw new SyntaxError(`Unexpected character at index ${i}`);\n }\n if (start === -1) start = i;\n else if (!mustUnescape) mustUnescape = true;\n isEscaping = false;\n } else if (inQuotes) {\n if (tokenChars[code] === 1) {\n if (start === -1) start = i;\n } else if (code === 0x22 /* '\"' */ && start !== -1) {\n inQuotes = false;\n end = i;\n } else if (code === 0x5c /* '\\' */) {\n isEscaping = true;\n } else {\n throw new SyntaxError(`Unexpected character at index ${i}`);\n }\n } else if (code === 0x22 && header.charCodeAt(i - 1) === 0x3d) {\n inQuotes = true;\n } else if (end === -1 && tokenChars[code] === 1) {\n if (start === -1) start = i;\n } else if (start !== -1 && (code === 0x20 || code === 0x09)) {\n if (end === -1) end = i;\n } else if (code === 0x3b || code === 0x2c) {\n if (start === -1) {\n throw new SyntaxError(`Unexpected character at index ${i}`);\n }\n\n if (end === -1) end = i;\n let value = header.slice(start, end);\n if (mustUnescape) {\n value = value.replace(/\\\\/g, '');\n mustUnescape = false;\n }\n push(params, paramName, value);\n if (code === 0x2c) {\n push(offers, extensionName, params);\n params = Object.create(null);\n extensionName = undefined;\n }\n\n paramName = undefined;\n start = end = -1;\n } else {\n throw new SyntaxError(`Unexpected character at index ${i}`);\n }\n }\n }\n\n if (start === -1 || inQuotes) {\n throw new SyntaxError('Unexpected end of input');\n }\n\n if (end === -1) end = i;\n const token = header.slice(start, end);\n if (extensionName === undefined) {\n push(offers, token, params);\n } else {\n if (paramName === undefined) {\n push(params, token, true);\n } else if (mustUnescape) {\n push(params, paramName, token.replace(/\\\\/g, ''));\n } else {\n push(params, paramName, token);\n }\n push(offers, extensionName, params);\n }\n\n return offers;\n}\n\n/**\n * Builds the `Sec-WebSocket-Extensions` header field value.\n *\n * @param {Object} extensions The map of extensions and parameters to format\n * @return {String} A string representing the given object\n * @public\n */\nfunction format(extensions) {\n return Object.keys(extensions)\n .map((extension) => {\n let configurations = extensions[extension];\n if (!Array.isArray(configurations)) configurations = [configurations];\n return configurations\n .map((params) => {\n return [extension]\n .concat(\n Object.keys(params).map((k) => {\n let values = params[k];\n if (!Array.isArray(values)) values = [values];\n return values\n .map((v) => (v === true ? k : `${k}=${v}`))\n .join('; ');\n })\n )\n .join('; ');\n })\n .join(', ');\n })\n .join(', ');\n}\n\nmodule.exports = { format, parse };\n", "'use strict';\n\nconst EventEmitter = require('events');\nconst https = require('https');\nconst http = require('http');\nconst net = require('net');\nconst tls = require('tls');\nconst { randomBytes, createHash } = require('crypto');\nconst { URL } = require('url');\n\nconst PerMessageDeflate = require('./permessage-deflate');\nconst Receiver = require('./receiver');\nconst Sender = require('./sender');\nconst {\n BINARY_TYPES,\n EMPTY_BUFFER,\n GUID,\n kStatusCode,\n kWebSocket,\n NOOP\n} = require('./constants');\nconst { addEventListener, removeEventListener } = require('./event-target');\nconst { format, parse } = require('./extension');\nconst { toBuffer } = require('./buffer-util');\n\nconst readyStates = ['CONNECTING', 'OPEN', 'CLOSING', 'CLOSED'];\nconst protocolVersions = [8, 13];\nconst closeTimeout = 30 * 1000;\n\n/**\n * Class representing a WebSocket.\n *\n * @extends EventEmitter\n */\nclass WebSocket extends EventEmitter {\n /**\n * Create a new `WebSocket`.\n *\n * @param {(String|url.URL)} address The URL to which to connect\n * @param {(String|String[])} [protocols] The subprotocols\n * @param {Object} [options] Connection options\n */\n constructor(address, protocols, options) {\n super();\n\n this._binaryType = BINARY_TYPES[0];\n this._closeCode = 1006;\n this._closeFrameReceived = false;\n this._closeFrameSent = false;\n this._closeMessage = '';\n this._closeTimer = null;\n this._extensions = {};\n this._protocol = '';\n this._readyState = WebSocket.CONNECTING;\n this._receiver = null;\n this._sender = null;\n this._socket = null;\n\n if (address !== null) {\n this._bufferedAmount = 0;\n this._isServer = false;\n this._redirects = 0;\n\n if (Array.isArray(protocols)) {\n protocols = protocols.join(', ');\n } else if (typeof protocols === 'object' && protocols !== null) {\n options = protocols;\n protocols = undefined;\n }\n\n initAsClient(this, address, protocols, options);\n } else {\n this._isServer = true;\n }\n }\n\n /**\n * This deviates from the WHATWG interface since ws doesn't support the\n * required default \"blob\" type (instead we define a custom \"nodebuffer\"\n * type).\n *\n * @type {String}\n */\n get binaryType() {\n return this._binaryType;\n }\n\n set binaryType(type) {\n if (!BINARY_TYPES.includes(type)) return;\n\n this._binaryType = type;\n\n //\n // Allow to change `binaryType` on the fly.\n //\n if (this._receiver) this._receiver._binaryType = type;\n }\n\n /**\n * @type {Number}\n */\n get bufferedAmount() {\n if (!this._socket) return this._bufferedAmount;\n\n return this._socket._writableState.length + this._sender._bufferedBytes;\n }\n\n /**\n * @type {String}\n */\n get extensions() {\n return Object.keys(this._extensions).join();\n }\n\n /**\n * @type {String}\n */\n get protocol() {\n return this._protocol;\n }\n\n /**\n * @type {Number}\n */\n get readyState() {\n return this._readyState;\n }\n\n /**\n * @type {String}\n */\n get url() {\n return this._url;\n }\n\n /**\n * Set up the socket and the internal resources.\n *\n * @param {net.Socket} socket The network socket between the server and client\n * @param {Buffer} head The first packet of the upgraded stream\n * @param {Number} [maxPayload=0] The maximum allowed message size\n * @private\n */\n setSocket(socket, head, maxPayload) {\n const receiver = new Receiver(\n this.binaryType,\n this._extensions,\n this._isServer,\n maxPayload\n );\n\n this._sender = new Sender(socket, this._extensions);\n this._receiver = receiver;\n this._socket = socket;\n\n receiver[kWebSocket] = this;\n socket[kWebSocket] = this;\n\n receiver.on('conclude', receiverOnConclude);\n receiver.on('drain', receiverOnDrain);\n receiver.on('error', receiverOnError);\n receiver.on('message', receiverOnMessage);\n receiver.on('ping', receiverOnPing);\n receiver.on('pong', receiverOnPong);\n\n socket.setTimeout(0);\n socket.setNoDelay();\n\n if (head.length > 0) socket.unshift(head);\n\n socket.on('close', socketOnClose);\n socket.on('data', socketOnData);\n socket.on('end', socketOnEnd);\n socket.on('error', socketOnError);\n\n this._readyState = WebSocket.OPEN;\n this.emit('open');\n }\n\n /**\n * Emit the `'close'` event.\n *\n * @private\n */\n emitClose() {\n if (!this._socket) {\n this._readyState = WebSocket.CLOSED;\n this.emit('close', this._closeCode, this._closeMessage);\n return;\n }\n\n if (this._extensions[PerMessageDeflate.extensionName]) {\n this._extensions[PerMessageDeflate.extensionName].cleanup();\n }\n\n this._receiver.removeAllListeners();\n this._readyState = WebSocket.CLOSED;\n this.emit('close', this._closeCode, this._closeMessage);\n }\n\n /**\n * Start a closing handshake.\n *\n * +----------+ +-----------+ +----------+\n * - - -|ws.close()|-->|close frame|-->|ws.close()|- - -\n * | +----------+ +-----------+ +----------+ |\n * +----------+ +-----------+ |\n * CLOSING |ws.close()|<--|close frame|<--+-----+ CLOSING\n * +----------+ +-----------+ |\n * | | | +---+ |\n * +------------------------+-->|fin| - - - -\n * | +---+ | +---+\n * - - - - -|fin|<---------------------+\n * +---+\n *\n * @param {Number} [code] Status code explaining why the connection is closing\n * @param {String} [data] A string explaining why the connection is closing\n * @public\n */\n close(code, data) {\n if (this.readyState === WebSocket.CLOSED) return;\n if (this.readyState === WebSocket.CONNECTING) {\n const msg = 'WebSocket was closed before the connection was established';\n return abortHandshake(this, this._req, msg);\n }\n\n if (this.readyState === WebSocket.CLOSING) {\n if (this._closeFrameSent && this._closeFrameReceived) this._socket.end();\n return;\n }\n\n this._readyState = WebSocket.CLOSING;\n this._sender.close(code, data, !this._isServer, (err) => {\n //\n // This error is handled by the `'error'` listener on the socket. We only\n // want to know if the close frame has been sent here.\n //\n if (err) return;\n\n this._closeFrameSent = true;\n if (this._closeFrameReceived) this._socket.end();\n });\n\n //\n // Specify a timeout for the closing handshake to complete.\n //\n this._closeTimer = setTimeout(\n this._socket.destroy.bind(this._socket),\n closeTimeout\n );\n }\n\n /**\n * Send a ping.\n *\n * @param {*} [data] The data to send\n * @param {Boolean} [mask] Indicates whether or not to mask `data`\n * @param {Function} [cb] Callback which is executed when the ping is sent\n * @public\n */\n ping(data, mask, cb) {\n if (this.readyState === WebSocket.CONNECTING) {\n throw new Error('WebSocket is not open: readyState 0 (CONNECTING)');\n }\n\n if (typeof data === 'function') {\n cb = data;\n data = mask = undefined;\n } else if (typeof mask === 'function') {\n cb = mask;\n mask = undefined;\n }\n\n if (typeof data === 'number') data = data.toString();\n\n if (this.readyState !== WebSocket.OPEN) {\n sendAfterClose(this, data, cb);\n return;\n }\n\n if (mask === undefined) mask = !this._isServer;\n this._sender.ping(data || EMPTY_BUFFER, mask, cb);\n }\n\n /**\n * Send a pong.\n *\n * @param {*} [data] The data to send\n * @param {Boolean} [mask] Indicates whether or not to mask `data`\n * @param {Function} [cb] Callback which is executed when the pong is sent\n * @public\n */\n pong(data, mask, cb) {\n if (this.readyState === WebSocket.CONNECTING) {\n throw new Error('WebSocket is not open: readyState 0 (CONNECTING)');\n }\n\n if (typeof data === 'function') {\n cb = data;\n data = mask = undefined;\n } else if (typeof mask === 'function') {\n cb = mask;\n mask = undefined;\n }\n\n if (typeof data === 'number') data = data.toString();\n\n if (this.readyState !== WebSocket.OPEN) {\n sendAfterClose(this, data, cb);\n return;\n }\n\n if (mask === undefined) mask = !this._isServer;\n this._sender.pong(data || EMPTY_BUFFER, mask, cb);\n }\n\n /**\n * Send a data message.\n *\n * @param {*} data The message to send\n * @param {Object} [options] Options object\n * @param {Boolean} [options.compress] Specifies whether or not to compress\n * `data`\n * @param {Boolean} [options.binary] Specifies whether `data` is binary or\n * text\n * @param {Boolean} [options.fin=true] Specifies whether the fragment is the\n * last one\n * @param {Boolean} [options.mask] Specifies whether or not to mask `data`\n * @param {Function} [cb] Callback which is executed when data is written out\n * @public\n */\n send(data, options, cb) {\n if (this.readyState === WebSocket.CONNECTING) {\n throw new Error('WebSocket is not open: readyState 0 (CONNECTING)');\n }\n\n if (typeof options === 'function') {\n cb = options;\n options = {};\n }\n\n if (typeof data === 'number') data = data.toString();\n\n if (this.readyState !== WebSocket.OPEN) {\n sendAfterClose(this, data, cb);\n return;\n }\n\n const opts = {\n binary: typeof data !== 'string',\n mask: !this._isServer,\n compress: true,\n fin: true,\n ...options\n };\n\n if (!this._extensions[PerMessageDeflate.extensionName]) {\n opts.compress = false;\n }\n\n this._sender.send(data || EMPTY_BUFFER, opts, cb);\n }\n\n /**\n * Forcibly close the connection.\n *\n * @public\n */\n terminate() {\n if (this.readyState === WebSocket.CLOSED) return;\n if (this.readyState === WebSocket.CONNECTING) {\n const msg = 'WebSocket was closed before the connection was established';\n return abortHandshake(this, this._req, msg);\n }\n\n if (this._socket) {\n this._readyState = WebSocket.CLOSING;\n this._socket.destroy();\n }\n }\n}\n\nreadyStates.forEach((readyState, i) => {\n const descriptor = { enumerable: true, value: i };\n\n Object.defineProperty(WebSocket.prototype, readyState, descriptor);\n Object.defineProperty(WebSocket, readyState, descriptor);\n});\n\n[\n 'binaryType',\n 'bufferedAmount',\n 'extensions',\n 'protocol',\n 'readyState',\n 'url'\n].forEach((property) => {\n Object.defineProperty(WebSocket.prototype, property, { enumerable: true });\n});\n\n//\n// Add the `onopen`, `onerror`, `onclose`, and `onmessage` attributes.\n// See https://html.spec.whatwg.org/multipage/comms.html#the-websocket-interface\n//\n['open', 'error', 'close', 'message'].forEach((method) => {\n Object.defineProperty(WebSocket.prototype, `on${method}`, {\n configurable: true,\n enumerable: true,\n /**\n * Return the listener of the event.\n *\n * @return {(Function|undefined)} The event listener or `undefined`\n * @public\n */\n get() {\n const listeners = this.listeners(method);\n for (let i = 0; i < listeners.length; i++) {\n if (listeners[i]._listener) return listeners[i]._listener;\n }\n\n return undefined;\n },\n /**\n * Add a listener for the event.\n *\n * @param {Function} listener The listener to add\n * @public\n */\n set(listener) {\n const listeners = this.listeners(method);\n for (let i = 0; i < listeners.length; i++) {\n //\n // Remove only the listeners added via `addEventListener`.\n //\n if (listeners[i]._listener) this.removeListener(method, listeners[i]);\n }\n this.addEventListener(method, listener);\n }\n });\n});\n\nWebSocket.prototype.addEventListener = addEventListener;\nWebSocket.prototype.removeEventListener = removeEventListener;\n\nmodule.exports = WebSocket;\n\n/**\n * Initialize a WebSocket client.\n *\n * @param {WebSocket} websocket The client to initialize\n * @param {(String|url.URL)} address The URL to which to connect\n * @param {String} [protocols] The subprotocols\n * @param {Object} [options] Connection options\n * @param {(Boolean|Object)} [options.perMessageDeflate=true] Enable/disable\n * permessage-deflate\n * @param {Number} [options.handshakeTimeout] Timeout in milliseconds for the\n * handshake request\n * @param {Number} [options.protocolVersion=13] Value of the\n * `Sec-WebSocket-Version` header\n * @param {String} [options.origin] Value of the `Origin` or\n * `Sec-WebSocket-Origin` header\n * @param {Number} [options.maxPayload=104857600] The maximum allowed message\n * size\n * @param {Boolean} [options.followRedirects=false] Whether or not to follow\n * redirects\n * @param {Number} [options.maxRedirects=10] The maximum number of redirects\n * allowed\n * @private\n */\nfunction initAsClient(websocket, address, protocols, options) {\n const opts = {\n protocolVersion: protocolVersions[1],\n maxPayload: 100 * 1024 * 1024,\n perMessageDeflate: true,\n followRedirects: false,\n maxRedirects: 10,\n ...options,\n createConnection: undefined,\n socketPath: undefined,\n hostname: undefined,\n protocol: undefined,\n timeout: undefined,\n method: undefined,\n host: undefined,\n path: undefined,\n port: undefined\n };\n\n if (!protocolVersions.includes(opts.protocolVersion)) {\n throw new RangeError(\n `Unsupported protocol version: ${opts.protocolVersion} ` +\n `(supported versions: ${protocolVersions.join(', ')})`\n );\n }\n\n let parsedUrl;\n\n if (address instanceof URL) {\n parsedUrl = address;\n websocket._url = address.href;\n } else {\n parsedUrl = new URL(address);\n websocket._url = address;\n }\n\n const isUnixSocket = parsedUrl.protocol === 'ws+unix:';\n\n if (!parsedUrl.host && (!isUnixSocket || !parsedUrl.pathname)) {\n throw new Error(`Invalid URL: ${websocket.url}`);\n }\n\n const isSecure =\n parsedUrl.protocol === 'wss:' || parsedUrl.protocol === 'https:';\n const defaultPort = isSecure ? 443 : 80;\n const key = randomBytes(16).toString('base64');\n const get = isSecure ? https.get : http.get;\n let perMessageDeflate;\n\n opts.createConnection = isSecure ? tlsConnect : netConnect;\n opts.defaultPort = opts.defaultPort || defaultPort;\n opts.port = parsedUrl.port || defaultPort;\n opts.host = parsedUrl.hostname.startsWith('[')\n ? parsedUrl.hostname.slice(1, -1)\n : parsedUrl.hostname;\n opts.headers = {\n 'Sec-WebSocket-Version': opts.protocolVersion,\n 'Sec-WebSocket-Key': key,\n Connection: 'Upgrade',\n Upgrade: 'websocket',\n ...opts.headers\n };\n opts.path = parsedUrl.pathname + parsedUrl.search;\n opts.timeout = opts.handshakeTimeout;\n\n if (opts.perMessageDeflate) {\n perMessageDeflate = new PerMessageDeflate(\n opts.perMessageDeflate !== true ? opts.perMessageDeflate : {},\n false,\n opts.maxPayload\n );\n opts.headers['Sec-WebSocket-Extensions'] = format({\n [PerMessageDeflate.extensionName]: perMessageDeflate.offer()\n });\n }\n if (protocols) {\n opts.headers['Sec-WebSocket-Protocol'] = protocols;\n }\n if (opts.origin) {\n if (opts.protocolVersion < 13) {\n opts.headers['Sec-WebSocket-Origin'] = opts.origin;\n } else {\n opts.headers.Origin = opts.origin;\n }\n }\n if (parsedUrl.username || parsedUrl.password) {\n opts.auth = `${parsedUrl.username}:${parsedUrl.password}`;\n }\n\n if (isUnixSocket) {\n const parts = opts.path.split(':');\n\n opts.socketPath = parts[0];\n opts.path = parts[1];\n }\n\n let req = (websocket._req = get(opts));\n\n if (opts.timeout) {\n req.on('timeout', () => {\n abortHandshake(websocket, req, 'Opening handshake has timed out');\n });\n }\n\n req.on('error', (err) => {\n if (req === null || req.aborted) return;\n\n req = websocket._req = null;\n websocket._readyState = WebSocket.CLOSING;\n websocket.emit('error', err);\n websocket.emitClose();\n });\n\n req.on('response', (res) => {\n const location = res.headers.location;\n const statusCode = res.statusCode;\n\n if (\n location &&\n opts.followRedirects &&\n statusCode >= 300 &&\n statusCode < 400\n ) {\n if (++websocket._redirects > opts.maxRedirects) {\n abortHandshake(websocket, req, 'Maximum redirects exceeded');\n return;\n }\n\n req.abort();\n\n const addr = new URL(location, address);\n\n initAsClient(websocket, addr, protocols, options);\n } else if (!websocket.emit('unexpected-response', req, res)) {\n abortHandshake(\n websocket,\n req,\n `Unexpected server response: ${res.statusCode}`\n );\n }\n });\n\n req.on('upgrade', (res, socket, head) => {\n websocket.emit('upgrade', res);\n\n //\n // The user may have closed the connection from a listener of the `upgrade`\n // event.\n //\n if (websocket.readyState !== WebSocket.CONNECTING) return;\n\n req = websocket._req = null;\n\n const digest = createHash('sha1')\n .update(key + GUID)\n .digest('base64');\n\n if (res.headers['sec-websocket-accept'] !== digest) {\n abortHandshake(websocket, socket, 'Invalid Sec-WebSocket-Accept header');\n return;\n }\n\n const serverProt = res.headers['sec-websocket-protocol'];\n const protList = (protocols || '').split(/, */);\n let protError;\n\n if (!protocols && serverProt) {\n protError = 'Server sent a subprotocol but none was requested';\n } else if (protocols && !serverProt) {\n protError = 'Server sent no subprotocol';\n } else if (serverProt && !protList.includes(serverProt)) {\n protError = 'Server sent an invalid subprotocol';\n }\n\n if (protError) {\n abortHandshake(websocket, socket, protError);\n return;\n }\n\n if (serverProt) websocket._protocol = serverProt;\n\n if (perMessageDeflate) {\n try {\n const extensions = parse(res.headers['sec-websocket-extensions']);\n\n if (extensions[PerMessageDeflate.extensionName]) {\n perMessageDeflate.accept(extensions[PerMessageDeflate.extensionName]);\n websocket._extensions[PerMessageDeflate.extensionName] =\n perMessageDeflate;\n }\n } catch (err) {\n abortHandshake(\n websocket,\n socket,\n 'Invalid Sec-WebSocket-Extensions header'\n );\n return;\n }\n }\n\n websocket.setSocket(socket, head, opts.maxPayload);\n });\n}\n\n/**\n * Create a `net.Socket` and initiate a connection.\n *\n * @param {Object} options Connection options\n * @return {net.Socket} The newly created socket used to start the connection\n * @private\n */\nfunction netConnect(options) {\n options.path = options.socketPath;\n return net.connect(options);\n}\n\n/**\n * Create a `tls.TLSSocket` and initiate a connection.\n *\n * @param {Object} options Connection options\n * @return {tls.TLSSocket} The newly created socket used to start the connection\n * @private\n */\nfunction tlsConnect(options) {\n options.path = undefined;\n\n if (!options.servername && options.servername !== '') {\n options.servername = net.isIP(options.host) ? '' : options.host;\n }\n\n return tls.connect(options);\n}\n\n/**\n * Abort the handshake and emit an error.\n *\n * @param {WebSocket} websocket The WebSocket instance\n * @param {(http.ClientRequest|net.Socket)} stream The request to abort or the\n * socket to destroy\n * @param {String} message The error message\n * @private\n */\nfunction abortHandshake(websocket, stream, message) {\n websocket._readyState = WebSocket.CLOSING;\n\n const err = new Error(message);\n Error.captureStackTrace(err, abortHandshake);\n\n if (stream.setHeader) {\n stream.abort();\n\n if (stream.socket && !stream.socket.destroyed) {\n //\n // On Node.js >= 14.3.0 `request.abort()` does not destroy the socket if\n // called after the request completed. See\n // https://github.com/websockets/ws/issues/1869.\n //\n stream.socket.destroy();\n }\n\n stream.once('abort', websocket.emitClose.bind(websocket));\n websocket.emit('error', err);\n } else {\n stream.destroy(err);\n stream.once('error', websocket.emit.bind(websocket, 'error'));\n stream.once('close', websocket.emitClose.bind(websocket));\n }\n}\n\n/**\n * Handle cases where the `ping()`, `pong()`, or `send()` methods are called\n * when the `readyState` attribute is `CLOSING` or `CLOSED`.\n *\n * @param {WebSocket} websocket The WebSocket instance\n * @param {*} [data] The data to send\n * @param {Function} [cb] Callback\n * @private\n */\nfunction sendAfterClose(websocket, data, cb) {\n if (data) {\n const length = toBuffer(data).length;\n\n //\n // The `_bufferedAmount` property is used only when the peer is a client and\n // the opening handshake fails. Under these circumstances, in fact, the\n // `setSocket()` method is not called, so the `_socket` and `_sender`\n // properties are set to `null`.\n //\n if (websocket._socket) websocket._sender._bufferedBytes += length;\n else websocket._bufferedAmount += length;\n }\n\n if (cb) {\n const err = new Error(\n `WebSocket is not open: readyState ${websocket.readyState} ` +\n `(${readyStates[websocket.readyState]})`\n );\n cb(err);\n }\n}\n\n/**\n * The listener of the `Receiver` `'conclude'` event.\n *\n * @param {Number} code The status code\n * @param {String} reason The reason for closing\n * @private\n */\nfunction receiverOnConclude(code, reason) {\n const websocket = this[kWebSocket];\n\n websocket._socket.removeListener('data', socketOnData);\n websocket._socket.resume();\n\n websocket._closeFrameReceived = true;\n websocket._closeMessage = reason;\n websocket._closeCode = code;\n\n if (code === 1005) websocket.close();\n else websocket.close(code, reason);\n}\n\n/**\n * The listener of the `Receiver` `'drain'` event.\n *\n * @private\n */\nfunction receiverOnDrain() {\n this[kWebSocket]._socket.resume();\n}\n\n/**\n * The listener of the `Receiver` `'error'` event.\n *\n * @param {(RangeError|Error)} err The emitted error\n * @private\n */\nfunction receiverOnError(err) {\n const websocket = this[kWebSocket];\n\n websocket._socket.removeListener('data', socketOnData);\n\n websocket._readyState = WebSocket.CLOSING;\n websocket._closeCode = err[kStatusCode];\n websocket.emit('error', err);\n websocket._socket.destroy();\n}\n\n/**\n * The listener of the `Receiver` `'finish'` event.\n *\n * @private\n */\nfunction receiverOnFinish() {\n this[kWebSocket].emitClose();\n}\n\n/**\n * The listener of the `Receiver` `'message'` event.\n *\n * @param {(String|Buffer|ArrayBuffer|Buffer[])} data The message\n * @private\n */\nfunction receiverOnMessage(data) {\n this[kWebSocket].emit('message', data);\n}\n\n/**\n * The listener of the `Receiver` `'ping'` event.\n *\n * @param {Buffer} data The data included in the ping frame\n * @private\n */\nfunction receiverOnPing(data) {\n const websocket = this[kWebSocket];\n\n websocket.pong(data, !websocket._isServer, NOOP);\n websocket.emit('ping', data);\n}\n\n/**\n * The listener of the `Receiver` `'pong'` event.\n *\n * @param {Buffer} data The data included in the pong frame\n * @private\n */\nfunction receiverOnPong(data) {\n this[kWebSocket].emit('pong', data);\n}\n\n/**\n * The listener of the `net.Socket` `'close'` event.\n *\n * @private\n */\nfunction socketOnClose() {\n const websocket = this[kWebSocket];\n\n this.removeListener('close', socketOnClose);\n this.removeListener('end', socketOnEnd);\n\n websocket._readyState = WebSocket.CLOSING;\n\n //\n // The close frame might not have been received or the `'end'` event emitted,\n // for example, if the socket was destroyed due to an error. Ensure that the\n // `receiver` stream is closed after writing any remaining buffered data to\n // it. If the readable side of the socket is in flowing mode then there is no\n // buffered data as everything has been already written and `readable.read()`\n // will return `null`. If instead, the socket is paused, any possible buffered\n // data will be read as a single chunk and emitted synchronously in a single\n // `'data'` event.\n //\n websocket._socket.read();\n websocket._receiver.end();\n\n this.removeListener('data', socketOnData);\n this[kWebSocket] = undefined;\n\n clearTimeout(websocket._closeTimer);\n\n if (\n websocket._receiver._writableState.finished ||\n websocket._receiver._writableState.errorEmitted\n ) {\n websocket.emitClose();\n } else {\n websocket._receiver.on('error', receiverOnFinish);\n websocket._receiver.on('finish', receiverOnFinish);\n }\n}\n\n/**\n * The listener of the `net.Socket` `'data'` event.\n *\n * @param {Buffer} chunk A chunk of data\n * @private\n */\nfunction socketOnData(chunk) {\n if (!this[kWebSocket]._receiver.write(chunk)) {\n this.pause();\n }\n}\n\n/**\n * The listener of the `net.Socket` `'end'` event.\n *\n * @private\n */\nfunction socketOnEnd() {\n const websocket = this[kWebSocket];\n\n websocket._readyState = WebSocket.CLOSING;\n websocket._receiver.end();\n this.end();\n}\n\n/**\n * The listener of the `net.Socket` `'error'` event.\n *\n * @private\n */\nfunction socketOnError() {\n const websocket = this[kWebSocket];\n\n this.removeListener('error', socketOnError);\n this.on('error', NOOP);\n\n if (websocket) {\n websocket._readyState = WebSocket.CLOSING;\n this.destroy();\n }\n}\n", "'use strict';\n\nconst { Duplex } = require('stream');\n\n/**\n * Emits the `'close'` event on a stream.\n *\n * @param {stream.Duplex} The stream.\n * @private\n */\nfunction emitClose(stream) {\n stream.emit('close');\n}\n\n/**\n * The listener of the `'end'` event.\n *\n * @private\n */\nfunction duplexOnEnd() {\n if (!this.destroyed && this._writableState.finished) {\n this.destroy();\n }\n}\n\n/**\n * The listener of the `'error'` event.\n *\n * @param {Error} err The error\n * @private\n */\nfunction duplexOnError(err) {\n this.removeListener('error', duplexOnError);\n this.destroy();\n if (this.listenerCount('error') === 0) {\n // Do not suppress the throwing behavior.\n this.emit('error', err);\n }\n}\n\n/**\n * Wraps a `WebSocket` in a duplex stream.\n *\n * @param {WebSocket} ws The `WebSocket` to wrap\n * @param {Object} [options] The options for the `Duplex` constructor\n * @return {stream.Duplex} The duplex stream\n * @public\n */\nfunction createWebSocketStream(ws, options) {\n let resumeOnReceiverDrain = true;\n\n function receiverOnDrain() {\n if (resumeOnReceiverDrain) ws._socket.resume();\n }\n\n if (ws.readyState === ws.CONNECTING) {\n ws.once('open', function open() {\n ws._receiver.removeAllListeners('drain');\n ws._receiver.on('drain', receiverOnDrain);\n });\n } else {\n ws._receiver.removeAllListeners('drain');\n ws._receiver.on('drain', receiverOnDrain);\n }\n\n const duplex = new Duplex({\n ...options,\n autoDestroy: false,\n emitClose: false,\n objectMode: false,\n writableObjectMode: false\n });\n\n ws.on('message', function message(msg) {\n if (!duplex.push(msg)) {\n resumeOnReceiverDrain = false;\n ws._socket.pause();\n }\n });\n\n ws.once('error', function error(err) {\n if (duplex.destroyed) return;\n\n duplex.destroy(err);\n });\n\n ws.once('close', function close() {\n if (duplex.destroyed) return;\n\n duplex.push(null);\n });\n\n duplex._destroy = function (err, callback) {\n if (ws.readyState === ws.CLOSED) {\n callback(err);\n process.nextTick(emitClose, duplex);\n return;\n }\n\n let called = false;\n\n ws.once('error', function error(err) {\n called = true;\n callback(err);\n });\n\n ws.once('close', function close() {\n if (!called) callback(err);\n process.nextTick(emitClose, duplex);\n });\n ws.terminate();\n };\n\n duplex._final = function (callback) {\n if (ws.readyState === ws.CONNECTING) {\n ws.once('open', function open() {\n duplex._final(callback);\n });\n return;\n }\n\n // If the value of the `_socket` property is `null` it means that `ws` is a\n // client websocket and the handshake failed. In fact, when this happens, a\n // socket is never assigned to the websocket. Wait for the `'error'` event\n // that will be emitted by the websocket.\n if (ws._socket === null) return;\n\n if (ws._socket._writableState.finished) {\n callback();\n if (duplex._readableState.endEmitted) duplex.destroy();\n } else {\n ws._socket.once('finish', function finish() {\n // `duplex` is not destroyed here because the `'end'` event will be\n // emitted on `duplex` after this `'finish'` event. The EOF signaling\n // `null` chunk is, in fact, pushed when the websocket emits `'close'`.\n callback();\n });\n ws.close();\n }\n };\n\n duplex._read = function () {\n if (ws.readyState === ws.OPEN && !resumeOnReceiverDrain) {\n resumeOnReceiverDrain = true;\n if (!ws._receiver._writableState.needDrain) ws._socket.resume();\n }\n };\n\n duplex._write = function (chunk, encoding, callback) {\n if (ws.readyState === ws.CONNECTING) {\n ws.once('open', function open() {\n duplex._write(chunk, encoding, callback);\n });\n return;\n }\n\n ws.send(chunk, callback);\n };\n\n duplex.on('end', duplexOnEnd);\n duplex.on('error', duplexOnError);\n return duplex;\n}\n\nmodule.exports = createWebSocketStream;\n", "'use strict';\n\nconst EventEmitter = require('events');\nconst { createHash } = require('crypto');\nconst { createServer, STATUS_CODES } = require('http');\n\nconst PerMessageDeflate = require('./permessage-deflate');\nconst WebSocket = require('./websocket');\nconst { format, parse } = require('./extension');\nconst { GUID, kWebSocket } = require('./constants');\n\nconst keyRegex = /^[+/0-9A-Za-z]{22}==$/;\n\n/**\n * Class representing a WebSocket server.\n *\n * @extends EventEmitter\n */\nclass WebSocketServer extends EventEmitter {\n /**\n * Create a `WebSocketServer` instance.\n *\n * @param {Object} options Configuration options\n * @param {Number} [options.backlog=511] The maximum length of the queue of\n * pending connections\n * @param {Boolean} [options.clientTracking=true] Specifies whether or not to\n * track clients\n * @param {Function} [options.handleProtocols] A hook to handle protocols\n * @param {String} [options.host] The hostname where to bind the server\n * @param {Number} [options.maxPayload=104857600] The maximum allowed message\n * size\n * @param {Boolean} [options.noServer=false] Enable no server mode\n * @param {String} [options.path] Accept only connections matching this path\n * @param {(Boolean|Object)} [options.perMessageDeflate=false] Enable/disable\n * permessage-deflate\n * @param {Number} [options.port] The port where to bind the server\n * @param {http.Server} [options.server] A pre-created HTTP/S server to use\n * @param {Function} [options.verifyClient] A hook to reject connections\n * @param {Function} [callback] A listener for the `listening` event\n */\n constructor(options, callback) {\n super();\n\n options = {\n maxPayload: 100 * 1024 * 1024,\n perMessageDeflate: false,\n handleProtocols: null,\n clientTracking: true,\n verifyClient: null,\n noServer: false,\n backlog: null, // use default (511 as implemented in net.js)\n server: null,\n host: null,\n path: null,\n port: null,\n ...options\n };\n\n if (options.port == null && !options.server && !options.noServer) {\n throw new TypeError(\n 'One of the \"port\", \"server\", or \"noServer\" options must be specified'\n );\n }\n\n if (options.port != null) {\n this._server = createServer((req, res) => {\n const body = STATUS_CODES[426];\n\n res.writeHead(426, {\n 'Content-Length': body.length,\n 'Content-Type': 'text/plain'\n });\n res.end(body);\n });\n this._server.listen(\n options.port,\n options.host,\n options.backlog,\n callback\n );\n } else if (options.server) {\n this._server = options.server;\n }\n\n if (this._server) {\n const emitConnection = this.emit.bind(this, 'connection');\n\n this._removeListeners = addListeners(this._server, {\n listening: this.emit.bind(this, 'listening'),\n error: this.emit.bind(this, 'error'),\n upgrade: (req, socket, head) => {\n this.handleUpgrade(req, socket, head, emitConnection);\n }\n });\n }\n\n if (options.perMessageDeflate === true) options.perMessageDeflate = {};\n if (options.clientTracking) this.clients = new Set();\n this.options = options;\n }\n\n /**\n * Returns the bound address, the address family name, and port of the server\n * as reported by the operating system if listening on an IP socket.\n * If the server is listening on a pipe or UNIX domain socket, the name is\n * returned as a string.\n *\n * @return {(Object|String|null)} The address of the server\n * @public\n */\n address() {\n if (this.options.noServer) {\n throw new Error('The server is operating in \"noServer\" mode');\n }\n\n if (!this._server) return null;\n return this._server.address();\n }\n\n /**\n * Close the server.\n *\n * @param {Function} [cb] Callback\n * @public\n */\n close(cb) {\n if (cb) this.once('close', cb);\n\n //\n // Terminate all associated clients.\n //\n if (this.clients) {\n for (const client of this.clients) client.terminate();\n }\n\n const server = this._server;\n\n if (server) {\n this._removeListeners();\n this._removeListeners = this._server = null;\n\n //\n // Close the http server if it was internally created.\n //\n if (this.options.port != null) {\n server.close(() => this.emit('close'));\n return;\n }\n }\n\n process.nextTick(emitClose, this);\n }\n\n /**\n * See if a given request should be handled by this server instance.\n *\n * @param {http.IncomingMessage} req Request object to inspect\n * @return {Boolean} `true` if the request is valid, else `false`\n * @public\n */\n shouldHandle(req) {\n if (this.options.path) {\n const index = req.url.indexOf('?');\n const pathname = index !== -1 ? req.url.slice(0, index) : req.url;\n\n if (pathname !== this.options.path) return false;\n }\n\n return true;\n }\n\n /**\n * Handle a HTTP Upgrade request.\n *\n * @param {http.IncomingMessage} req The request object\n * @param {net.Socket} socket The network socket between the server and client\n * @param {Buffer} head The first packet of the upgraded stream\n * @param {Function} cb Callback\n * @public\n */\n handleUpgrade(req, socket, head, cb) {\n socket.on('error', socketOnError);\n\n const key =\n req.headers['sec-websocket-key'] !== undefined\n ? req.headers['sec-websocket-key'].trim()\n : false;\n const version = +req.headers['sec-websocket-version'];\n const extensions = {};\n\n if (\n req.method !== 'GET' ||\n req.headers.upgrade.toLowerCase() !== 'websocket' ||\n !key ||\n !keyRegex.test(key) ||\n (version !== 8 && version !== 13) ||\n !this.shouldHandle(req)\n ) {\n return abortHandshake(socket, 400);\n }\n\n if (this.options.perMessageDeflate) {\n const perMessageDeflate = new PerMessageDeflate(\n this.options.perMessageDeflate,\n true,\n this.options.maxPayload\n );\n\n try {\n const offers = parse(req.headers['sec-websocket-extensions']);\n\n if (offers[PerMessageDeflate.extensionName]) {\n perMessageDeflate.accept(offers[PerMessageDeflate.extensionName]);\n extensions[PerMessageDeflate.extensionName] = perMessageDeflate;\n }\n } catch (err) {\n return abortHandshake(socket, 400);\n }\n }\n\n //\n // Optionally call external client verification handler.\n //\n if (this.options.verifyClient) {\n const info = {\n origin:\n req.headers[`${version === 8 ? 'sec-websocket-origin' : 'origin'}`],\n secure: !!(req.socket.authorized || req.socket.encrypted),\n req\n };\n\n if (this.options.verifyClient.length === 2) {\n this.options.verifyClient(info, (verified, code, message, headers) => {\n if (!verified) {\n return abortHandshake(socket, code || 401, message, headers);\n }\n\n this.completeUpgrade(key, extensions, req, socket, head, cb);\n });\n return;\n }\n\n if (!this.options.verifyClient(info)) return abortHandshake(socket, 401);\n }\n\n this.completeUpgrade(key, extensions, req, socket, head, cb);\n }\n\n /**\n * Upgrade the connection to WebSocket.\n *\n * @param {String} key The value of the `Sec-WebSocket-Key` header\n * @param {Object} extensions The accepted extensions\n * @param {http.IncomingMessage} req The request object\n * @param {net.Socket} socket The network socket between the server and client\n * @param {Buffer} head The first packet of the upgraded stream\n * @param {Function} cb Callback\n * @throws {Error} If called more than once with the same socket\n * @private\n */\n completeUpgrade(key, extensions, req, socket, head, cb) {\n //\n // Destroy the socket if the client has already sent a FIN packet.\n //\n if (!socket.readable || !socket.writable) return socket.destroy();\n\n if (socket[kWebSocket]) {\n throw new Error(\n 'server.handleUpgrade() was called more than once with the same ' +\n 'socket, possibly due to a misconfiguration'\n );\n }\n\n const digest = createHash('sha1')\n .update(key + GUID)\n .digest('base64');\n\n const headers = [\n 'HTTP/1.1 101 Switching Protocols',\n 'Upgrade: websocket',\n 'Connection: Upgrade',\n `Sec-WebSocket-Accept: ${digest}`\n ];\n\n const ws = new WebSocket(null);\n let protocol = req.headers['sec-websocket-protocol'];\n\n if (protocol) {\n protocol = protocol.split(',').map(trim);\n\n //\n // Optionally call external protocol selection handler.\n //\n if (this.options.handleProtocols) {\n protocol = this.options.handleProtocols(protocol, req);\n } else {\n protocol = protocol[0];\n }\n\n if (protocol) {\n headers.push(`Sec-WebSocket-Protocol: ${protocol}`);\n ws._protocol = protocol;\n }\n }\n\n if (extensions[PerMessageDeflate.extensionName]) {\n const params = extensions[PerMessageDeflate.extensionName].params;\n const value = format({\n [PerMessageDeflate.extensionName]: [params]\n });\n headers.push(`Sec-WebSocket-Extensions: ${value}`);\n ws._extensions = extensions;\n }\n\n //\n // Allow external modification/inspection of handshake headers.\n //\n this.emit('headers', headers, req);\n\n socket.write(headers.concat('\\r\\n').join('\\r\\n'));\n socket.removeListener('error', socketOnError);\n\n ws.setSocket(socket, head, this.options.maxPayload);\n\n if (this.clients) {\n this.clients.add(ws);\n ws.on('close', () => this.clients.delete(ws));\n }\n\n cb(ws, req);\n }\n}\n\nmodule.exports = WebSocketServer;\n\n/**\n * Add event listeners on an `EventEmitter` using a map of \n * pairs.\n *\n * @param {EventEmitter} server The event emitter\n * @param {Object.} map The listeners to add\n * @return {Function} A function that will remove the added listeners when\n * called\n * @private\n */\nfunction addListeners(server, map) {\n for (const event of Object.keys(map)) server.on(event, map[event]);\n\n return function removeListeners() {\n for (const event of Object.keys(map)) {\n server.removeListener(event, map[event]);\n }\n };\n}\n\n/**\n * Emit a `'close'` event on an `EventEmitter`.\n *\n * @param {EventEmitter} server The event emitter\n * @private\n */\nfunction emitClose(server) {\n server.emit('close');\n}\n\n/**\n * Handle premature socket errors.\n *\n * @private\n */\nfunction socketOnError() {\n this.destroy();\n}\n\n/**\n * Close the connection when preconditions are not fulfilled.\n *\n * @param {net.Socket} socket The socket of the upgrade request\n * @param {Number} code The HTTP response status code\n * @param {String} [message] The HTTP response body\n * @param {Object} [headers] Additional HTTP response headers\n * @private\n */\nfunction abortHandshake(socket, code, message, headers) {\n if (socket.writable) {\n message = message || STATUS_CODES[code];\n headers = {\n Connection: 'close',\n 'Content-Type': 'text/html',\n 'Content-Length': Buffer.byteLength(message),\n ...headers\n };\n\n socket.write(\n `HTTP/1.1 ${code} ${STATUS_CODES[code]}\\r\\n` +\n Object.keys(headers)\n .map((h) => `${h}: ${headers[h]}`)\n .join('\\r\\n') +\n '\\r\\n\\r\\n' +\n message\n );\n }\n\n socket.removeListener('error', socketOnError);\n socket.destroy();\n}\n\n/**\n * Remove whitespace characters from both ends of a string.\n *\n * @param {String} str The string\n * @return {String} A new string representing `str` stripped of whitespace\n * characters from both its beginning and end\n * @private\n */\nfunction trim(str) {\n return str.trim();\n}\n", "'use strict';\n\nconst WebSocket = require('./lib/websocket');\n\nWebSocket.createWebSocketStream = require('./lib/stream');\nWebSocket.Server = require('./lib/websocket-server');\nWebSocket.Receiver = require('./lib/receiver');\nWebSocket.Sender = require('./lib/sender');\n\nmodule.exports = WebSocket;\n", "import WebSocket from \"ws\";\n\nexport { WebSocket }\n", "\"use strict\";\n\nimport { BigNumber } from \"@ethersproject/bignumber\";\nimport { Network, Networkish } from \"@ethersproject/networks\";\nimport { defineReadOnly } from \"@ethersproject/properties\";\n\nimport { Event } from \"./base-provider\";\nimport { JsonRpcProvider } from \"./json-rpc-provider\";\nimport { WebSocket } from \"./ws\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\n/**\n * Notes:\n *\n * This provider differs a bit from the polling providers. One main\n * difference is how it handles consistency. The polling providers\n * will stall responses to ensure a consistent state, while this\n * WebSocket provider assumes the connected backend will manage this.\n *\n * For example, if a polling provider emits an event which indicates\n * the event occurred in blockhash XXX, a call to fetch that block by\n * its hash XXX, if not present will retry until it is present. This\n * can occur when querying a pool of nodes that are mildly out of sync\n * with each other.\n */\n\nlet NextId = 1;\n\nexport type InflightRequest = {\n callback: (error: Error, result: any) => void;\n payload: string;\n};\n\nexport type Subscription = {\n tag: string;\n processFunc: (payload: any) => void;\n};\n\nexport interface WebSocketLike {\n onopen: ((...args: Array) => any) | null;\n onmessage: ((...args: Array) => any) | null;\n onerror: ((...args: Array) => any) | null;\n\n readyState: number;\n\n send(payload: any): void;\n close(code?: number, reason?: string): void;\n}\n\n// For more info about the Real-time Event API see:\n// https://geth.ethereum.org/docs/rpc/pubsub\n\nexport class WebSocketProvider extends JsonRpcProvider {\n readonly _websocket: any;\n readonly _requests: { [ name: string ]: InflightRequest };\n readonly _detectNetwork: Promise;\n\n // Maps event tag to subscription ID (we dedupe identical events)\n readonly _subIds: { [ tag: string ]: Promise };\n\n // Maps Subscription ID to Subscription\n readonly _subs: { [ name: string ]: Subscription };\n\n _wsReady: boolean;\n\n constructor(url: string | WebSocketLike, network?: Networkish) {\n\n // This will be added in the future; please open an issue to expedite\n if (network === \"any\") {\n logger.throwError(\"WebSocketProvider does not support 'any' network yet\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"network:any\"\n });\n }\n\n if (typeof(url) === \"string\") {\n super(url, network);\n } else {\n super(\"_websocket\", network);\n }\n\n this._pollingInterval = -1;\n\n this._wsReady = false;\n\n if (typeof(url) === \"string\") {\n defineReadOnly(this, \"_websocket\", new WebSocket(this.connection.url));\n } else {\n defineReadOnly(this, \"_websocket\", url);\n }\n\n defineReadOnly(this, \"_requests\", { });\n defineReadOnly(this, \"_subs\", { });\n defineReadOnly(this, \"_subIds\", { });\n defineReadOnly(this, \"_detectNetwork\", super.detectNetwork());\n\n // Stall sending requests until the socket is open...\n this.websocket.onopen = () => {\n this._wsReady = true;\n Object.keys(this._requests).forEach((id) => {\n this.websocket.send(this._requests[id].payload);\n });\n };\n\n this.websocket.onmessage = (messageEvent: { data: string }) => {\n const data = messageEvent.data;\n const result = JSON.parse(data);\n if (result.id != null) {\n const id = String(result.id);\n const request = this._requests[id];\n delete this._requests[id];\n\n if (result.result !== undefined) {\n request.callback(null, result.result);\n\n this.emit(\"debug\", {\n action: \"response\",\n request: JSON.parse(request.payload),\n response: result.result,\n provider: this\n });\n\n } else {\n let error: Error = null;\n if (result.error) {\n error = new Error(result.error.message || \"unknown error\");\n defineReadOnly(error, \"code\", result.error.code || null);\n defineReadOnly(error, \"response\", data);\n } else {\n error = new Error(\"unknown error\");\n }\n\n request.callback(error, undefined);\n\n this.emit(\"debug\", {\n action: \"response\",\n error: error,\n request: JSON.parse(request.payload),\n provider: this\n });\n\n }\n\n } else if (result.method === \"eth_subscription\") {\n // Subscription...\n const sub = this._subs[result.params.subscription];\n if (sub) {\n //this.emit.apply(this, );\n sub.processFunc(result.params.result)\n }\n\n } else {\n console.warn(\"this should not happen\");\n }\n };\n\n // This Provider does not actually poll, but we want to trigger\n // poll events for things that depend on them (like stalling for\n // block and transaction lookups)\n const fauxPoll = setInterval(() => {\n this.emit(\"poll\");\n }, 1000);\n if (fauxPoll.unref) { fauxPoll.unref(); }\n }\n\n // Cannot narrow the type of _websocket, as that is not backwards compatible\n // so we add a getter and let the WebSocket be a public API.\n get websocket(): WebSocketLike { return this._websocket; }\n\n detectNetwork(): Promise {\n return this._detectNetwork;\n }\n\n get pollingInterval(): number {\n return 0;\n }\n\n resetEventsBlock(blockNumber: number): void {\n logger.throwError(\"cannot reset events block on WebSocketProvider\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"resetEventBlock\"\n });\n }\n\n set pollingInterval(value: number) {\n logger.throwError(\"cannot set polling interval on WebSocketProvider\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"setPollingInterval\"\n });\n }\n\n async poll(): Promise {\n return null;\n }\n\n set polling(value: boolean) {\n if (!value) { return; }\n\n logger.throwError(\"cannot set polling on WebSocketProvider\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"setPolling\"\n });\n }\n\n send(method: string, params?: Array): Promise {\n const rid = NextId++;\n\n return new Promise((resolve, reject) => {\n function callback(error: Error, result: any) {\n if (error) { return reject(error); }\n return resolve(result);\n }\n\n const payload = JSON.stringify({\n method: method,\n params: params,\n id: rid,\n jsonrpc: \"2.0\"\n });\n\n this.emit(\"debug\", {\n action: \"request\",\n request: JSON.parse(payload),\n provider: this\n });\n\n this._requests[String(rid)] = { callback, payload };\n\n if (this._wsReady) { this.websocket.send(payload); }\n });\n }\n\n static defaultUrl(): string {\n return \"ws:/\\/localhost:8546\";\n }\n\n async _subscribe(tag: string, param: Array, processFunc: (result: any) => void): Promise {\n let subIdPromise = this._subIds[tag];\n if (subIdPromise == null) {\n subIdPromise = Promise.all(param).then((param) => {\n return this.send(\"eth_subscribe\", param);\n });\n this._subIds[tag] = subIdPromise;\n }\n const subId = await subIdPromise;\n this._subs[subId] = { tag, processFunc };\n }\n\n _startEvent(event: Event): void {\n switch (event.type) {\n case \"block\":\n this._subscribe(\"block\", [ \"newHeads\" ], (result: any) => {\n const blockNumber = BigNumber.from(result.number).toNumber();\n this._emitted.block = blockNumber;\n this.emit(\"block\", blockNumber);\n });\n break;\n\n case \"pending\":\n this._subscribe(\"pending\", [ \"newPendingTransactions\" ], (result: any) => {\n this.emit(\"pending\", result);\n });\n break;\n\n case \"filter\":\n this._subscribe(event.tag, [ \"logs\", this._getFilter(event.filter) ], (result: any) => {\n if (result.removed == null) { result.removed = false; }\n this.emit(event.filter, this.formatter.filterLog(result));\n });\n break;\n\n case \"tx\": {\n const emitReceipt = (event: Event) => {\n const hash = event.hash;\n this.getTransactionReceipt(hash).then((receipt) => {\n if (!receipt) { return; }\n this.emit(hash, receipt);\n });\n };\n\n // In case it is already mined\n emitReceipt(event);\n\n // To keep things simple, we start up a single newHeads subscription\n // to keep an eye out for transactions we are watching for.\n // Starting a subscription for an event (i.e. \"tx\") that is already\n // running is (basically) a nop.\n this._subscribe(\"tx\", [ \"newHeads\" ], (result: any) => {\n this._events.filter((e) => (e.type === \"tx\")).forEach(emitReceipt);\n });\n break;\n }\n\n // Nothing is needed\n case \"debug\":\n case \"poll\":\n case \"willPoll\":\n case \"didPoll\":\n case \"error\":\n break;\n\n default:\n console.log(\"unhandled:\", event);\n break;\n }\n }\n\n _stopEvent(event: Event): void {\n let tag = event.tag;\n\n if (event.type === \"tx\") {\n // There are remaining transaction event listeners\n if (this._events.filter((e) => (e.type === \"tx\")).length) {\n return;\n }\n tag = \"tx\";\n } else if (this.listenerCount(event.event)) {\n // There are remaining event listeners\n return;\n }\n\n const subId = this._subIds[tag];\n if (!subId) { return; }\n\n delete this._subIds[tag];\n subId.then((subId) => {\n if (!this._subs[subId]) { return; }\n delete this._subs[subId];\n this.send(\"eth_unsubscribe\", [ subId ]);\n });\n }\n\n async destroy(): Promise {\n // Wait until we have connected before trying to disconnect\n if (this.websocket.readyState === WebSocket.CONNECTING) {\n await (new Promise((resolve) => {\n this.websocket.onopen = function() {\n resolve(true);\n };\n\n this.websocket.onerror = function() {\n resolve(false);\n };\n }));\n }\n\n // Hangup\n // See: https://developer.mozilla.org/en-US/docs/Web/API/CloseEvent#Status_codes\n this.websocket.close(1000);\n }\n}\n", "\n\"use strict\";\n\nimport { Network, Networkish } from \"@ethersproject/networks\";\nimport { defineReadOnly, getStatic } from \"@ethersproject/properties\";\nimport { ConnectionInfo } from \"@ethersproject/web\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\nimport { CommunityResourcable } from \"./formatter\";\nimport { JsonRpcProvider, JsonRpcSigner } from \"./json-rpc-provider\";\n\ntype getUrlFunc = (network: Network, apiKey: string) => string | ConnectionInfo;\n\n// A StaticJsonRpcProvider is useful when you *know* for certain that\n// the backend will never change, as it never calls eth_chainId to\n// verify its backend. However, if the backend does change, the effects\n// are undefined and may include:\n// - inconsistent results\n// - locking up the UI\n// - block skew warnings\n// - wrong results\n// If the network is not explicit (i.e. auto-detection is expected), the\n// node MUST be running and available to respond to requests BEFORE this\n// is instantiated.\nexport class StaticJsonRpcProvider extends JsonRpcProvider {\n async detectNetwork(): Promise {\n let network = this.network;\n if (network == null) {\n network = await super.detectNetwork();\n\n if (!network) {\n logger.throwError(\"no network detected\", Logger.errors.UNKNOWN_ERROR, { });\n }\n\n // If still not set, set it\n if (this._network == null) {\n // A static network does not support \"any\"\n defineReadOnly(this, \"_network\", network);\n\n this.emit(\"network\", network, null);\n }\n }\n return network;\n }\n}\n\nexport abstract class UrlJsonRpcProvider extends StaticJsonRpcProvider implements CommunityResourcable {\n readonly apiKey: any;\n\n constructor(network?: Networkish, apiKey?: any) {\n logger.checkAbstract(new.target, UrlJsonRpcProvider);\n\n // Normalize the Network and API Key\n network = getStatic<(network: Networkish) => Network>(new.target, \"getNetwork\")(network);\n apiKey = getStatic<(apiKey: string) => string>(new.target, \"getApiKey\")(apiKey);\n\n const connection = getStatic(new.target, \"getUrl\")(network, apiKey);\n\n super(connection, network);\n\n if (typeof(apiKey) === \"string\") {\n defineReadOnly(this, \"apiKey\", apiKey);\n } else if (apiKey != null) {\n Object.keys(apiKey).forEach((key) => {\n defineReadOnly(this, key, apiKey[key]);\n });\n }\n }\n\n _startPending(): void {\n logger.warn(\"WARNING: API provider does not support pending filters\");\n }\n\n isCommunityResource(): boolean {\n return false;\n }\n\n getSigner(address?: string): JsonRpcSigner {\n return logger.throwError(\n \"API provider does not support signing\",\n Logger.errors.UNSUPPORTED_OPERATION,\n { operation: \"getSigner\" }\n );\n }\n\n listAccounts(): Promise> {\n return Promise.resolve([]);\n }\n\n // Return a defaultApiKey if null, otherwise validate the API key\n static getApiKey(apiKey: any): any {\n return apiKey;\n }\n\n // Returns the url or connection for the given network and API key. The\n // API key will have been sanitized by the getApiKey first, so any validation\n // or transformations can be done there.\n static getUrl(network: Network, apiKey: any): string | ConnectionInfo {\n return logger.throwError(\"not implemented; sub-classes must override getUrl\", Logger.errors.NOT_IMPLEMENTED, {\n operation: \"getUrl\"\n });\n }\n}\n", "\"use strict\";\n\nimport { Network, Networkish } from \"@ethersproject/networks\";\nimport { defineReadOnly } from \"@ethersproject/properties\";\nimport { ConnectionInfo } from \"@ethersproject/web\";\n\nimport { CommunityResourcable, showThrottleMessage } from \"./formatter\";\nimport { WebSocketProvider } from \"./websocket-provider\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\nimport { UrlJsonRpcProvider } from \"./url-json-rpc-provider\";\n\n// This key was provided to ethers.js by Alchemy to be used by the\n// default provider, but it is recommended that for your own\n// production environments, that you acquire your own API key at:\n// https://dashboard.alchemyapi.io\n\nconst defaultApiKey = \"_gg7wSSi0KMBsdKnGVfHDueq6xMB9EkC\"\n\nexport class AlchemyWebSocketProvider extends WebSocketProvider implements CommunityResourcable {\n readonly apiKey: string;\n\n constructor(network?: Networkish, apiKey?: any) {\n const provider = new AlchemyProvider(network, apiKey);\n\n const url = provider.connection.url.replace(/^http/i, \"ws\")\n .replace(\".alchemyapi.\", \".ws.alchemyapi.\");\n\n super(url, provider.network);\n defineReadOnly(this, \"apiKey\", provider.apiKey);\n }\n\n isCommunityResource(): boolean {\n return (this.apiKey === defaultApiKey);\n }\n}\n\nexport class AlchemyProvider extends UrlJsonRpcProvider {\n\n static getWebSocketProvider(network?: Networkish, apiKey?: any): AlchemyWebSocketProvider {\n return new AlchemyWebSocketProvider(network, apiKey);\n }\n\n static getApiKey(apiKey: any): any {\n if (apiKey == null) { return defaultApiKey; }\n if (apiKey && typeof(apiKey) !== \"string\") {\n logger.throwArgumentError(\"invalid apiKey\", \"apiKey\", apiKey);\n }\n return apiKey;\n }\n\n static getUrl(network: Network, apiKey: string): ConnectionInfo {\n let host = null;\n switch (network.name) {\n case \"homestead\":\n host = \"eth-mainnet.alchemyapi.io/v2/\";\n break;\n case \"goerli\":\n host = \"eth-goerli.g.alchemy.com/v2/\";\n break;\n case \"matic\":\n host = \"polygon-mainnet.g.alchemy.com/v2/\";\n break;\n case \"maticmum\":\n host = \"polygon-mumbai.g.alchemy.com/v2/\";\n break;\n case \"arbitrum\":\n host = \"arb-mainnet.g.alchemy.com/v2/\";\n break;\n case \"arbitrum-goerli\":\n host = \"arb-goerli.g.alchemy.com/v2/\";\n break;\n case \"optimism\":\n host = \"opt-mainnet.g.alchemy.com/v2/\";\n break;\n case \"optimism-goerli\":\n host = \"opt-goerli.g.alchemy.com/v2/\"\n break;\n default:\n logger.throwArgumentError(\"unsupported network\", \"network\", arguments[0]);\n }\n\n return {\n allowGzip: true,\n url: (\"https:/\" + \"/\" + host + apiKey),\n throttleCallback: (attempt: number, url: string) => {\n if (apiKey === defaultApiKey) {\n showThrottleMessage();\n }\n return Promise.resolve(true);\n }\n };\n }\n\n isCommunityResource(): boolean {\n return (this.apiKey === defaultApiKey);\n }\n}\n", "\nimport { Network } from \"@ethersproject/networks\";\n\nimport { showThrottleMessage } from \"./formatter\";\nimport { UrlJsonRpcProvider } from \"./url-json-rpc-provider\";\n\nimport type { ConnectionInfo } from \"@ethersproject/web\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\n\nconst defaultApiKey = \"9f7d929b018cdffb338517efa06f58359e86ff1ffd350bc889738523659e7972\";\n\nfunction getHost(name: string): string {\n switch (name) {\n case \"homestead\":\n return \"rpc.ankr.com/eth/\";\n case \"ropsten\":\n return \"rpc.ankr.com/eth_ropsten/\";\n case \"rinkeby\":\n return \"rpc.ankr.com/eth_rinkeby/\";\n case \"goerli\":\n return \"rpc.ankr.com/eth_goerli/\";\n\n case \"matic\":\n return \"rpc.ankr.com/polygon/\";\n\n case \"arbitrum\":\n return \"rpc.ankr.com/arbitrum/\";\n }\n return logger.throwArgumentError(\"unsupported network\", \"name\", name);\n}\n\nexport class AnkrProvider extends UrlJsonRpcProvider {\n readonly apiKey: string;\n\n isCommunityResource(): boolean {\n return (this.apiKey === defaultApiKey);\n }\n\n static getApiKey(apiKey: any): any {\n if (apiKey == null) { return defaultApiKey; }\n return apiKey;\n }\n\n static getUrl(network: Network, apiKey: any): ConnectionInfo {\n if (apiKey == null) { apiKey = defaultApiKey; }\n const connection: ConnectionInfo = {\n allowGzip: true,\n url: (\"https:/\\/\" + getHost(network.name) + apiKey),\n throttleCallback: (attempt: number, url: string) => {\n if (apiKey.apiKey === defaultApiKey) {\n showThrottleMessage();\n }\n return Promise.resolve(true);\n }\n };\n\n if (apiKey.projectSecret != null) {\n connection.user = \"\";\n connection.password = apiKey.projectSecret\n }\n\n return connection;\n }\n}\n", "\"use strict\";\n\nimport { Network } from \"@ethersproject/networks\";\nimport { UrlJsonRpcProvider } from \"./url-json-rpc-provider\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\nexport class CloudflareProvider extends UrlJsonRpcProvider {\n\n static getApiKey(apiKey: any): any {\n if (apiKey != null) {\n logger.throwArgumentError(\"apiKey not supported for cloudflare\", \"apiKey\", apiKey);\n }\n return null;\n }\n\n static getUrl(network: Network, apiKey?: any): string {\n let host = null;\n switch (network.name) {\n case \"homestead\":\n host = \"https://cloudflare-eth.com/\";\n break;\n default:\n logger.throwArgumentError(\"unsupported network\", \"network\", arguments[0]);\n }\n\n return host;\n }\n\n async perform(method: string, params: any): Promise {\n // The Cloudflare provider does not support eth_blockNumber,\n // so we get the latest block and pull it from that\n if (method === \"getBlockNumber\") {\n const block = await super.perform(\"getBlock\", { blockTag: \"latest\" });\n return block.number;\n }\n\n return super.perform(method, params);\n }\n}\n", "\"use strict\";\n\nimport { BlockTag, TransactionRequest, TransactionResponse } from \"@ethersproject/abstract-provider\";\nimport { hexlify, hexValue, isHexString } from \"@ethersproject/bytes\";\nimport { Network, Networkish } from \"@ethersproject/networks\";\nimport { deepCopy, defineReadOnly } from \"@ethersproject/properties\";\nimport { accessListify } from \"@ethersproject/transactions\";\nimport { ConnectionInfo, fetchJson } from \"@ethersproject/web\";\n\nimport { showThrottleMessage } from \"./formatter\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\nimport { BaseProvider } from \"./base-provider\";\n\n\n// The transaction has already been sanitized by the calls in Provider\nfunction getTransactionPostData(transaction: TransactionRequest): Record {\n const result: Record = { };\n for (let key in transaction) {\n if ((transaction)[key] == null) { continue; }\n let value = (transaction)[key];\n if (key === \"type\" && value === 0) { continue; }\n\n // Quantity-types require no leading zero, unless 0\n if (({ type: true, gasLimit: true, gasPrice: true, maxFeePerGs: true, maxPriorityFeePerGas: true, nonce: true, value: true })[key]) {\n value = hexValue(hexlify(value));\n } else if (key === \"accessList\") {\n value = \"[\" + accessListify(value).map((set) => {\n return `{address:\"${ set.address }\",storageKeys:[\"${ set.storageKeys.join('\",\"') }\"]}`;\n }).join(\",\") + \"]\";\n } else {\n value = hexlify(value);\n }\n result[key] = value;\n }\n return result;\n}\n\nfunction getResult(result: { status?: number, message?: string, result?: any }): any {\n // getLogs, getHistory have weird success responses\n if (result.status == 0 && (result.message === \"No records found\" || result.message === \"No transactions found\")) {\n return result.result;\n }\n\n if (result.status != 1 || typeof(result.message) !== \"string\" || !result.message.match(/^OK/)) {\n const error: any = new Error(\"invalid response\");\n error.result = JSON.stringify(result);\n if ((result.result || \"\").toLowerCase().indexOf(\"rate limit\") >= 0) {\n error.throttleRetry = true;\n }\n throw error;\n }\n\n return result.result;\n}\n\nfunction getJsonResult(result: { jsonrpc: string, result?: any, error?: { code?: number, data?: any, message?: string} } ): any {\n // This response indicates we are being throttled\n if (result && (result).status == 0 && (result).message == \"NOTOK\" && (result.result || \"\").toLowerCase().indexOf(\"rate limit\") >= 0) {\n const error: any = new Error(\"throttled response\");\n error.result = JSON.stringify(result);\n error.throttleRetry = true;\n throw error;\n }\n\n if (result.jsonrpc != \"2.0\") {\n // @TODO: not any\n const error: any = new Error(\"invalid response\");\n error.result = JSON.stringify(result);\n throw error;\n }\n\n if (result.error) {\n // @TODO: not any\n const error: any = new Error(result.error.message || \"unknown error\");\n if (result.error.code) { error.code = result.error.code; }\n if (result.error.data) { error.data = result.error.data; }\n throw error;\n }\n\n return result.result;\n}\n\n// The blockTag was normalized as a string by the Provider pre-perform operations\nfunction checkLogTag(blockTag: string): number | \"latest\" {\n if (blockTag === \"pending\") { throw new Error(\"pending not supported\"); }\n if (blockTag === \"latest\") { return blockTag; }\n\n return parseInt(blockTag.substring(2), 16);\n}\n\n\nfunction checkError(method: string, error: any, transaction: any): any {\n // Undo the \"convenience\" some nodes are attempting to prevent backwards\n // incompatibility; maybe for v6 consider forwarding reverts as errors\n if (method === \"call\" && error.code === Logger.errors.SERVER_ERROR) {\n const e = error.error;\n\n // Etherscan keeps changing their string\n if (e && (e.message.match(/reverted/i) || e.message.match(/VM execution error/i))) {\n // Etherscan prefixes the data like \"Reverted 0x1234\"\n let data = e.data;\n if (data) { data = \"0x\" + data.replace(/^.*0x/i, \"\"); }\n\n if (isHexString(data)) { return data; }\n\n logger.throwError(\"missing revert data in call exception\", Logger.errors.CALL_EXCEPTION, {\n error, data: \"0x\"\n });\n }\n }\n\n // Get the message from any nested error structure\n let message = error.message;\n if (error.code === Logger.errors.SERVER_ERROR) {\n if (error.error && typeof(error.error.message) === \"string\") {\n message = error.error.message;\n } else if (typeof(error.body) === \"string\") {\n message = error.body;\n } else if (typeof(error.responseText) === \"string\") {\n message = error.responseText;\n }\n }\n message = (message || \"\").toLowerCase();\n\n // \"Insufficient funds. The account you tried to send transaction from does not have enough funds. Required 21464000000000 and got: 0\"\n if (message.match(/insufficient funds/)) {\n logger.throwError(\"insufficient funds for intrinsic transaction cost\", Logger.errors.INSUFFICIENT_FUNDS, {\n error, method, transaction\n });\n }\n\n // \"Transaction with the same hash was already imported.\"\n if (message.match(/same hash was already imported|transaction nonce is too low|nonce too low/)) {\n logger.throwError(\"nonce has already been used\", Logger.errors.NONCE_EXPIRED, {\n error, method, transaction\n });\n }\n\n // \"Transaction gas price is too low. There is another transaction with same nonce in the queue. Try increasing the gas price or incrementing the nonce.\"\n if (message.match(/another transaction with same nonce/)) {\n logger.throwError(\"replacement fee too low\", Logger.errors.REPLACEMENT_UNDERPRICED, {\n error, method, transaction\n });\n }\n\n if (message.match(/execution failed due to an exception|execution reverted/)) {\n logger.throwError(\"cannot estimate gas; transaction may fail or may require manual gas limit\", Logger.errors.UNPREDICTABLE_GAS_LIMIT, {\n error, method, transaction\n });\n }\n\n throw error;\n}\n\nexport class EtherscanProvider extends BaseProvider{\n readonly baseUrl: string;\n readonly apiKey: string | null;\n\n constructor(network?: Networkish, apiKey?: string) {\n super(network);\n\n defineReadOnly(this, \"baseUrl\", this.getBaseUrl());\n defineReadOnly(this, \"apiKey\", apiKey || null);\n }\n\n getBaseUrl(): string {\n switch(this.network ? this.network.name: \"invalid\") {\n case \"homestead\":\n return \"https:/\\/api.etherscan.io\";\n case \"goerli\":\n return \"https:/\\/api-goerli.etherscan.io\";\n case \"sepolia\":\n return \"https:/\\/api-sepolia.etherscan.io\";\n case \"matic\":\n return \"https:/\\/api.polygonscan.com\";\n case \"maticmum\":\n return \"https:/\\/api-testnet.polygonscan.com\";\n case \"arbitrum\":\n return \"https:/\\/api.arbiscan.io\";\n case \"arbitrum-goerli\":\n return \"https:/\\/api-goerli.arbiscan.io\";\n case \"optimism\":\n return \"https:/\\/api-optimistic.etherscan.io\";\n case \"optimism-goerli\":\n return \"https:/\\/api-goerli-optimistic.etherscan.io\";\n default:\n }\n\n return logger.throwArgumentError(\"unsupported network\", \"network\", this.network.name);\n }\n\n getUrl(module: string, params: Record): string {\n const query = Object.keys(params).reduce((accum, key) => {\n const value = params[key];\n if (value != null) {\n accum += `&${ key }=${ value }`\n }\n return accum\n }, \"\");\n const apiKey = ((this.apiKey) ? `&apikey=${ this.apiKey }`: \"\");\n return `${ this.baseUrl }/api?module=${ module }${ query }${ apiKey }`;\n }\n\n getPostUrl(): string {\n return `${ this.baseUrl }/api`;\n }\n\n getPostData(module: string, params: Record): Record {\n params.module = module;\n params.apikey = this.apiKey;\n return params;\n }\n\n async fetch(module: string, params: Record, post?: boolean): Promise {\n const url = (post ? this.getPostUrl(): this.getUrl(module, params));\n const payload = (post ? this.getPostData(module, params): null);\n const procFunc = (module === \"proxy\") ? getJsonResult: getResult;\n\n this.emit(\"debug\", {\n action: \"request\",\n request: url,\n provider: this\n });\n\n const connection: ConnectionInfo = {\n url: url,\n throttleSlotInterval: 1000,\n throttleCallback: (attempt: number, url: string) => {\n if (this.isCommunityResource()) {\n showThrottleMessage();\n }\n return Promise.resolve(true);\n }\n };\n\n let payloadStr: string = null;\n if (payload) {\n connection.headers = { \"content-type\": \"application/x-www-form-urlencoded; charset=UTF-8\" };\n payloadStr = Object.keys(payload).map((key) => {\n return `${ key }=${ payload[key] }`\n }).join(\"&\");\n }\n\n const result = await fetchJson(connection, payloadStr, procFunc || getJsonResult);\n\n this.emit(\"debug\", {\n action: \"response\",\n request: url,\n response: deepCopy(result),\n provider: this\n });\n\n return result;\n }\n\n async detectNetwork(): Promise {\n return this.network;\n }\n\n async perform(method: string, params: any): Promise {\n\n switch (method) {\n case \"getBlockNumber\":\n return this.fetch(\"proxy\", { action: \"eth_blockNumber\" });\n\n case \"getGasPrice\":\n return this.fetch(\"proxy\", { action: \"eth_gasPrice\" });\n\n case \"getBalance\":\n // Returns base-10 result\n return this.fetch(\"account\", {\n action: \"balance\",\n address: params.address,\n tag: params.blockTag\n });\n\n case \"getTransactionCount\":\n return this.fetch(\"proxy\", {\n action: \"eth_getTransactionCount\",\n address: params.address,\n tag: params.blockTag\n });\n\n case \"getCode\":\n return this.fetch(\"proxy\", {\n action: \"eth_getCode\",\n address: params.address,\n tag: params.blockTag\n });\n\n case \"getStorageAt\":\n return this.fetch(\"proxy\", {\n action: \"eth_getStorageAt\",\n address: params.address,\n position: params.position,\n tag: params.blockTag\n });\n\n case \"sendTransaction\":\n return this.fetch(\"proxy\", {\n action: \"eth_sendRawTransaction\",\n hex: params.signedTransaction\n }, true).catch((error) => {\n return checkError(\"sendTransaction\", error, params.signedTransaction);\n });\n\n case \"getBlock\":\n if (params.blockTag) {\n return this.fetch(\"proxy\", {\n action: \"eth_getBlockByNumber\",\n tag: params.blockTag,\n boolean: (params.includeTransactions ? \"true\": \"false\")\n });\n }\n throw new Error(\"getBlock by blockHash not implemented\");\n\n case \"getTransaction\":\n return this.fetch(\"proxy\", {\n action: \"eth_getTransactionByHash\",\n txhash: params.transactionHash\n });\n\n case \"getTransactionReceipt\":\n return this.fetch(\"proxy\", {\n action: \"eth_getTransactionReceipt\",\n txhash: params.transactionHash\n });\n\n case \"call\": {\n if (params.blockTag !== \"latest\") {\n throw new Error(\"EtherscanProvider does not support blockTag for call\");\n }\n\n const postData = getTransactionPostData(params.transaction);\n postData.module = \"proxy\";\n postData.action = \"eth_call\";\n\n try {\n return await this.fetch(\"proxy\", postData, true);\n } catch (error) {\n return checkError(\"call\", error, params.transaction);\n }\n }\n\n case \"estimateGas\": {\n const postData = getTransactionPostData(params.transaction);\n postData.module = \"proxy\";\n postData.action = \"eth_estimateGas\";\n\n try {\n return await this.fetch(\"proxy\", postData, true);\n } catch (error) {\n return checkError(\"estimateGas\", error, params.transaction);\n }\n }\n\n case \"getLogs\": {\n const args: Record = { action: \"getLogs\" }\n\n if (params.filter.fromBlock) {\n args.fromBlock = checkLogTag(params.filter.fromBlock);\n }\n\n if (params.filter.toBlock) {\n args.toBlock = checkLogTag(params.filter.toBlock);\n }\n\n if (params.filter.address) {\n args.address = params.filter.address;\n }\n\n // @TODO: We can handle slightly more complicated logs using the logs API\n if (params.filter.topics && params.filter.topics.length > 0) {\n if (params.filter.topics.length > 1) {\n logger.throwError(\"unsupported topic count\", Logger.errors.UNSUPPORTED_OPERATION, { topics: params.filter.topics });\n }\n\n if (params.filter.topics.length === 1) {\n const topic0 = params.filter.topics[0];\n if (typeof(topic0) !== \"string\" || topic0.length !== 66) {\n logger.throwError(\"unsupported topic format\", Logger.errors.UNSUPPORTED_OPERATION, { topic0: topic0 });\n }\n args.topic0 = topic0;\n }\n }\n\n const logs: Array = await this.fetch(\"logs\", args);\n\n // Cache txHash => blockHash\n let blocks: { [tag: string]: string } = {};\n\n // Add any missing blockHash to the logs\n for (let i = 0; i < logs.length; i++) {\n const log = logs[i];\n if (log.blockHash != null) { continue; }\n if (blocks[log.blockNumber] == null) {\n const block = await this.getBlock(log.blockNumber);\n if (block) {\n blocks[log.blockNumber] = block.hash;\n }\n }\n log.blockHash = blocks[log.blockNumber];\n }\n\n return logs;\n }\n\n case \"getEtherPrice\":\n if (this.network.name !== \"homestead\") { return 0.0; }\n return parseFloat((await this.fetch(\"stats\", { action: \"ethprice\" })).ethusd);\n\n default:\n break;\n }\n\n return super.perform(method, params);\n }\n\n // Note: The `page` page parameter only allows pagination within the\n // 10,000 window available without a page and offset parameter\n // Error: Result window is too large, PageNo x Offset size must\n // be less than or equal to 10000\n async getHistory(addressOrName: string | Promise, startBlock?: BlockTag, endBlock?: BlockTag): Promise> {\n const params = {\n action: \"txlist\",\n address: (await this.resolveName(addressOrName)),\n startblock: ((startBlock == null) ? 0: startBlock),\n endblock: ((endBlock == null) ? 99999999: endBlock),\n sort: \"asc\"\n };\n\n const result = await this.fetch(\"account\", params);\n\n return result.map((tx: any) => {\n [\"contractAddress\", \"to\"].forEach(function(key) {\n if (tx[key] == \"\") { delete tx[key]; }\n });\n if (tx.creates == null && tx.contractAddress != null) {\n tx.creates = tx.contractAddress;\n }\n const item = this.formatter.transactionResponse(tx);\n if (tx.timeStamp) { item.timestamp = parseInt(tx.timeStamp); }\n return item;\n });\n }\n\n isCommunityResource(): boolean {\n return (this.apiKey == null);\n }\n}\n", "\"use strict\";\n\nimport { Block, BlockWithTransactions, Provider } from \"@ethersproject/abstract-provider\";\nimport { BigNumber } from \"@ethersproject/bignumber\";\nimport { isHexString } from \"@ethersproject/bytes\";\nimport { Network } from \"@ethersproject/networks\";\nimport { deepCopy, defineReadOnly, shallowCopy } from \"@ethersproject/properties\";\nimport { shuffled } from \"@ethersproject/random\";\nimport { poll } from \"@ethersproject/web\";\n\nimport { BaseProvider } from \"./base-provider\";\nimport { isCommunityResource } from \"./formatter\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\nfunction now() { return (new Date()).getTime(); }\n\n// Returns to network as long as all agree, or null if any is null.\n// Throws an error if any two networks do not match.\nfunction checkNetworks(networks: Array): Network {\n let result = null;\n\n for (let i = 0; i < networks.length; i++) {\n const network = networks[i];\n\n // Null! We do not know our network; bail.\n if (network == null) { return null; }\n\n if (result) {\n // Make sure the network matches the previous networks\n if (!(result.name === network.name && result.chainId === network.chainId &&\n ((result.ensAddress === network.ensAddress) || (result.ensAddress == null && network.ensAddress == null)))) {\n\n logger.throwArgumentError(\"provider mismatch\", \"networks\", networks);\n }\n } else {\n result = network;\n }\n }\n\n return result;\n}\n\nfunction median(values: Array, maxDelta?: number): number {\n values = values.slice().sort();\n const middle = Math.floor(values.length / 2);\n\n // Odd length; take the middle\n if (values.length % 2) {\n return values[middle];\n }\n\n // Even length; take the average of the two middle\n const a = values[middle - 1], b = values[middle];\n\n if (maxDelta != null && Math.abs(a - b) > maxDelta) {\n return null;\n }\n\n return (a + b) / 2;\n}\n\nfunction serialize(value: any): string {\n if (value === null) {\n return \"null\";\n } else if (typeof(value) === \"number\" || typeof(value) === \"boolean\") {\n return JSON.stringify(value);\n } else if (typeof(value) === \"string\") {\n return value;\n } else if (BigNumber.isBigNumber(value)) {\n return value.toString();\n } else if (Array.isArray(value)) {\n return JSON.stringify(value.map((i) => serialize(i)));\n } else if (typeof(value) === \"object\") {\n const keys = Object.keys(value);\n keys.sort();\n return \"{\" + keys.map((key) => {\n let v = value[key];\n if (typeof(v) === \"function\") {\n v = \"[function]\";\n } else {\n v = serialize(v);\n }\n return JSON.stringify(key) + \":\" + v;\n }).join(\",\") + \"}\";\n }\n\n throw new Error(\"unknown value type: \" + typeof(value));\n}\n\n// Next request ID to use for emitting debug info\nlet nextRid = 1;\n\n\nexport interface FallbackProviderConfig {\n // The Provider\n provider: Provider;\n\n // The priority to favour this Provider; lower values are used first (higher priority)\n priority?: number;\n\n // Timeout before also triggering the next provider; this does not stop\n // this provider and if its result comes back before a quorum is reached\n // it will be incorporated into the vote\n // - lower values will cause more network traffic but may result in a\n // faster result.\n stallTimeout?: number;\n\n // How much this provider contributes to the quorum; sometimes a specific\n // provider may be more reliable or trustworthy than others, but usually\n // this should be left as the default\n weight?: number;\n};\n\n// A Staller is used to provide a delay to give a Provider a chance to response\n// before asking the next Provider to try.\ntype Staller = {\n wait: (func: () => void) => Promise\n getPromise: () => Promise,\n cancel: () => void\n};\n\nfunction stall(duration: number): Staller {\n let cancel: () => void = null;\n\n let timer: NodeJS.Timer = null;\n let promise = >(new Promise((resolve) => {\n cancel = function() {\n if (timer) {\n clearTimeout(timer);\n timer = null;\n }\n resolve();\n }\n timer = setTimeout(cancel, duration);\n }));\n\n const wait = (func: () => void) => {\n promise = promise.then(func);\n return promise;\n }\n\n function getPromise(): Promise {\n return promise;\n }\n\n return { cancel, getPromise, wait };\n}\n\nconst ForwardErrors = [\n Logger.errors.CALL_EXCEPTION,\n Logger.errors.INSUFFICIENT_FUNDS,\n Logger.errors.NONCE_EXPIRED,\n Logger.errors.REPLACEMENT_UNDERPRICED,\n Logger.errors.UNPREDICTABLE_GAS_LIMIT\n];\n\nconst ForwardProperties = [\n \"address\",\n \"args\",\n \"errorArgs\",\n \"errorSignature\",\n \"method\",\n \"transaction\",\n];\n\n\n// @TODO: Make this an object with staller and cancel built-in\ninterface RunningConfig extends FallbackProviderConfig {\n start?: number;\n done?: boolean;\n cancelled?: boolean;\n runner?: Promise;\n staller?: Staller;\n result?: any;\n error?: Error;\n};\n\nfunction exposeDebugConfig(config: RunningConfig, now?: number): any {\n const result: any = {\n weight: config.weight\n };\n Object.defineProperty(result, \"provider\", { get: () => config.provider });\n if (config.start) { result.start = config.start; }\n if (now) { result.duration = (now - config.start); }\n if (config.done) {\n if (config.error) {\n result.error = config.error;\n } else {\n result.result = config.result || null;\n }\n }\n return result;\n}\n\nfunction normalizedTally(normalize: (value: any) => string, quorum: number): (configs: Array) => any {\n return function(configs: Array): any {\n\n // Count the votes for each result\n const tally: { [ key: string]: { count: number, result: any } } = { };\n configs.forEach((c) => {\n const value = normalize(c.result);\n if (!tally[value]) { tally[value] = { count: 0, result: c.result }; }\n tally[value].count++;\n });\n\n // Check for a quorum on any given result\n const keys = Object.keys(tally);\n for (let i = 0; i < keys.length; i++) {\n const check = tally[keys[i]];\n if (check.count >= quorum) {\n return check.result;\n }\n }\n\n // No quroum\n return undefined;\n }\n}\nfunction getProcessFunc(provider: FallbackProvider, method: string, params: { [ key: string ]: any }): (configs: Array) => any {\n\n let normalize = serialize;\n\n switch (method) {\n case \"getBlockNumber\":\n // Return the median value, unless there is (median + 1) is also\n // present, in which case that is probably true and the median\n // is going to be stale soon. In the event of a malicious node,\n // the lie will be true soon enough.\n return function(configs: Array): number {\n const values = configs.map((c) => c.result);\n\n // Get the median block number\n let blockNumber = median(configs.map((c) => c.result), 2);\n if (blockNumber == null) { return undefined; }\n\n blockNumber = Math.ceil(blockNumber);\n\n // If the next block height is present, its prolly safe to use\n if (values.indexOf(blockNumber + 1) >= 0) { blockNumber++; }\n\n // Don't ever roll back the blockNumber\n if (blockNumber >= provider._highestBlockNumber) {\n provider._highestBlockNumber = blockNumber;\n }\n\n return provider._highestBlockNumber;\n };\n\n case \"getGasPrice\":\n // Return the middle (round index up) value, similar to median\n // but do not average even entries and choose the higher.\n // Malicious actors must compromise 50% of the nodes to lie.\n return function(configs: Array): BigNumber {\n const values = configs.map((c) => c.result);\n values.sort();\n return values[Math.floor(values.length / 2)];\n }\n\n case \"getEtherPrice\":\n // Returns the median price. Malicious actors must compromise at\n // least 50% of the nodes to lie (in a meaningful way).\n return function(configs: Array): number {\n return median(configs.map((c) => c.result));\n }\n\n // No additional normalizing required; serialize is enough\n case \"getBalance\":\n case \"getTransactionCount\":\n case \"getCode\":\n case \"getStorageAt\":\n case \"call\":\n case \"estimateGas\":\n case \"getLogs\":\n break;\n\n // We drop the confirmations from transactions as it is approximate\n case \"getTransaction\":\n case \"getTransactionReceipt\":\n normalize = function(tx: any): string {\n if (tx == null) { return null; }\n\n tx = shallowCopy(tx);\n tx.confirmations = -1;\n return serialize(tx);\n }\n break;\n\n // We drop the confirmations from transactions as it is approximate\n case \"getBlock\":\n // We drop the confirmations from transactions as it is approximate\n if (params.includeTransactions) {\n normalize = function(block: BlockWithTransactions): string {\n if (block == null) { return null; }\n\n block = shallowCopy(block);\n block.transactions = block.transactions.map((tx) => {\n tx = shallowCopy(tx);\n tx.confirmations = -1;\n return tx;\n });\n return serialize(block);\n };\n } else {\n normalize = function(block: Block): string {\n if (block == null) { return null; }\n return serialize(block);\n }\n }\n break;\n\n default:\n throw new Error(\"unknown method: \" + method);\n }\n\n // Return the result if and only if the expected quorum is\n // satisfied and agreed upon for the final result.\n return normalizedTally(normalize, provider.quorum);\n\n}\n\n// If we are doing a blockTag query, we need to make sure the backend is\n// caught up to the FallbackProvider, before sending a request to it.\nasync function waitForSync(config: RunningConfig, blockNumber: number): Promise {\n const provider = (config.provider);\n\n if ((provider.blockNumber != null && provider.blockNumber >= blockNumber) || blockNumber === -1) {\n return provider;\n }\n\n return poll(() => {\n return new Promise((resolve, reject) => {\n setTimeout(function() {\n\n // We are synced\n if (provider.blockNumber >= blockNumber) { return resolve(provider); }\n\n // We're done; just quit\n if (config.cancelled) { return resolve(null); }\n\n // Try again, next block\n return resolve(undefined);\n }, 0);\n });\n }, { oncePoll: provider });\n}\n\nasync function getRunner(config: RunningConfig, currentBlockNumber: number, method: string, params: { [ key: string]: any }): Promise {\n let provider = config.provider;\n\n switch (method) {\n case \"getBlockNumber\":\n case \"getGasPrice\":\n return provider[method]();\n case \"getEtherPrice\":\n if ((provider).getEtherPrice) {\n return (provider).getEtherPrice();\n }\n break;\n case \"getBalance\":\n case \"getTransactionCount\":\n case \"getCode\":\n if (params.blockTag && isHexString(params.blockTag)) {\n provider = await waitForSync(config, currentBlockNumber)\n }\n return provider[method](params.address, params.blockTag || \"latest\");\n case \"getStorageAt\":\n if (params.blockTag && isHexString(params.blockTag)) {\n provider = await waitForSync(config, currentBlockNumber)\n }\n return provider.getStorageAt(params.address, params.position, params.blockTag || \"latest\");\n case \"getBlock\":\n if (params.blockTag && isHexString(params.blockTag)) {\n provider = await waitForSync(config, currentBlockNumber)\n }\n return provider[(params.includeTransactions ? \"getBlockWithTransactions\": \"getBlock\")](params.blockTag || params.blockHash);\n case \"call\":\n case \"estimateGas\":\n if (params.blockTag && isHexString(params.blockTag)) {\n provider = await waitForSync(config, currentBlockNumber)\n }\n if (method === \"call\" && params.blockTag) {\n return provider[method](params.transaction, params.blockTag);\n }\n return provider[method](params.transaction);\n case \"getTransaction\":\n case \"getTransactionReceipt\":\n return provider[method](params.transactionHash);\n case \"getLogs\": {\n let filter = params.filter;\n if ((filter.fromBlock && isHexString(filter.fromBlock)) || (filter.toBlock && isHexString(filter.toBlock))) {\n provider = await waitForSync(config, currentBlockNumber)\n }\n return provider.getLogs(filter);\n }\n }\n\n return logger.throwError(\"unknown method error\", Logger.errors.UNKNOWN_ERROR, {\n method: method,\n params: params\n });\n}\n\nexport class FallbackProvider extends BaseProvider {\n readonly providerConfigs: ReadonlyArray;\n readonly quorum: number;\n\n // Due to the highly asyncronous nature of the blockchain, we need\n // to make sure we never unroll the blockNumber due to our random\n // sample of backends\n _highestBlockNumber: number;\n\n constructor(providers: Array, quorum?: number) {\n if (providers.length === 0) {\n logger.throwArgumentError(\"missing providers\", \"providers\", providers);\n }\n\n const providerConfigs: Array = providers.map((configOrProvider, index) => {\n if (Provider.isProvider(configOrProvider)) {\n const stallTimeout = isCommunityResource(configOrProvider) ? 2000: 750;\n const priority = 1;\n return Object.freeze({ provider: configOrProvider, weight: 1, stallTimeout, priority });\n }\n\n const config: FallbackProviderConfig = shallowCopy(configOrProvider);\n\n if (config.priority == null) { config.priority = 1; }\n if (config.stallTimeout == null) {\n config.stallTimeout = isCommunityResource(configOrProvider) ? 2000: 750;\n }\n if (config.weight == null) { config.weight = 1; }\n\n const weight = config.weight;\n if (weight % 1 || weight > 512 || weight < 1) {\n logger.throwArgumentError(\"invalid weight; must be integer in [1, 512]\", `providers[${ index }].weight`, weight);\n }\n\n return Object.freeze(config);\n });\n\n const total = providerConfigs.reduce((accum, c) => (accum + c.weight), 0);\n\n if (quorum == null) {\n quorum = total / 2;\n } else if (quorum > total) {\n logger.throwArgumentError(\"quorum will always fail; larger than total weight\", \"quorum\", quorum);\n }\n\n // Are all providers' networks are known\n let networkOrReady: Network | Promise = checkNetworks(providerConfigs.map((c) => ((c.provider)).network));\n\n // Not all networks are known; we must stall\n if (networkOrReady == null) {\n networkOrReady = new Promise((resolve, reject) => {\n setTimeout(() => {\n this.detectNetwork().then(resolve, reject);\n }, 0);\n });\n }\n\n super(networkOrReady);\n\n // Preserve a copy, so we do not get mutated\n defineReadOnly(this, \"providerConfigs\", Object.freeze(providerConfigs));\n defineReadOnly(this, \"quorum\", quorum);\n\n this._highestBlockNumber = -1;\n }\n\n async detectNetwork(): Promise {\n const networks = await Promise.all(this.providerConfigs.map((c) => c.provider.getNetwork()));\n return checkNetworks(networks);\n }\n\n async perform(method: string, params: { [name: string]: any }): Promise {\n // Sending transactions is special; always broadcast it to all backends\n if (method === \"sendTransaction\") {\n const results: Array = await Promise.all(this.providerConfigs.map((c) => {\n return c.provider.sendTransaction(params.signedTransaction).then((result) => {\n return result.hash;\n }, (error) => {\n return error;\n });\n }));\n\n // Any success is good enough (other errors are likely \"already seen\" errors\n for (let i = 0; i < results.length; i++) {\n const result = results[i];\n if (typeof(result) === \"string\") { return result; }\n }\n\n // They were all an error; pick the first error\n throw results[0];\n }\n\n // We need to make sure we are in sync with our backends, so we need\n // to know this before we can make a lot of calls\n if (this._highestBlockNumber === -1 && method !== \"getBlockNumber\") {\n await this.getBlockNumber();\n }\n\n const processFunc = getProcessFunc(this, method, params);\n\n // Shuffle the providers and then sort them by their priority; we\n // shallowCopy them since we will store the result in them too\n const configs: Array = shuffled(this.providerConfigs.map(shallowCopy));\n configs.sort((a, b) => (a.priority - b.priority));\n\n const currentBlockNumber = this._highestBlockNumber;\n\n let i = 0;\n let first = true;\n while (true) {\n const t0 = now();\n\n // Compute the inflight weight (exclude anything past)\n let inflightWeight = configs.filter((c) => (c.runner && ((t0 - c.start) < c.stallTimeout)))\n .reduce((accum, c) => (accum + c.weight), 0);\n\n // Start running enough to meet quorum\n while (inflightWeight < this.quorum && i < configs.length) {\n const config = configs[i++];\n\n const rid = nextRid++;\n\n config.start = now();\n config.staller = stall(config.stallTimeout);\n config.staller.wait(() => { config.staller = null; });\n\n config.runner = getRunner(config, currentBlockNumber, method, params).then((result) => {\n config.done = true;\n config.result = result;\n\n if (this.listenerCount(\"debug\")) {\n this.emit(\"debug\", {\n action: \"request\",\n rid: rid,\n backend: exposeDebugConfig(config, now()),\n request: { method: method, params: deepCopy(params) },\n provider: this\n });\n }\n\n }, (error) => {\n config.done = true;\n config.error = error;\n\n if (this.listenerCount(\"debug\")) {\n this.emit(\"debug\", {\n action: \"request\",\n rid: rid,\n backend: exposeDebugConfig(config, now()),\n request: { method: method, params: deepCopy(params) },\n provider: this\n });\n }\n });\n\n if (this.listenerCount(\"debug\")) {\n this.emit(\"debug\", {\n action: \"request\",\n rid: rid,\n backend: exposeDebugConfig(config, null),\n request: { method: method, params: deepCopy(params) },\n provider: this\n });\n }\n\n inflightWeight += config.weight;\n }\n\n // Wait for anything meaningful to finish or stall out\n const waiting: Array> = [ ];\n configs.forEach((c) => {\n if (c.done || !c.runner) { return; }\n waiting.push(c.runner);\n if (c.staller) { waiting.push(c.staller.getPromise()); }\n });\n\n if (waiting.length) { await Promise.race(waiting); }\n\n // Check the quorum and process the results; the process function\n // may additionally decide the quorum is not met\n const results = configs.filter((c) => (c.done && c.error == null));\n if (results.length >= this.quorum) {\n const result = processFunc(results);\n if (result !== undefined) {\n // Shut down any stallers\n configs.forEach(c => {\n if (c.staller) { c.staller.cancel(); }\n c.cancelled = true;\n });\n return result;\n }\n if (!first) { await stall(100).getPromise(); }\n first = false;\n }\n\n // No result, check for errors that should be forwarded\n const errors = configs.reduce((accum, c) => {\n if (!c.done || c.error == null) { return accum; }\n\n const code = ((c.error)).code;\n if (ForwardErrors.indexOf(code) >= 0) {\n if (!accum[code]) { accum[code] = { error: c.error, weight: 0 }; }\n accum[code].weight += c.weight;\n }\n\n return accum;\n }, <{ [ code: string ]: { error: Error, weight: number } }>({ }));\n\n Object.keys(errors).forEach((errorCode: string) => {\n const tally = errors[errorCode];\n if (tally.weight < this.quorum) { return; }\n\n // Shut down any stallers\n configs.forEach(c => {\n if (c.staller) { c.staller.cancel(); }\n c.cancelled = true;\n });\n\n const e = (tally.error);\n\n const props: { [ name: string ]: any } = { };\n ForwardProperties.forEach((name) => {\n if (e[name] == null) { return; }\n props[name] = e[name];\n });\n\n logger.throwError(e.reason || e.message, errorCode, props);\n });\n\n // All configs have run to completion; we will never get more data\n if (configs.filter((c) => !c.done).length === 0) { break; }\n }\n\n // Shut down any stallers; shouldn't be any\n configs.forEach(c => {\n if (c.staller) { c.staller.cancel(); }\n c.cancelled = true;\n });\n\n return logger.throwError(\"failed to meet quorum\", Logger.errors.SERVER_ERROR, {\n method: method,\n params: params,\n //results: configs.map((c) => c.result),\n //errors: configs.map((c) => c.error),\n results: configs.map((c) => exposeDebugConfig(c)),\n provider: this\n });\n }\n}\n", "\"use strict\";\n\nimport { connect } from \"net\";\n\nimport { defineReadOnly } from \"@ethersproject/properties\";\nimport { Networkish } from \"@ethersproject/networks\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\nimport { JsonRpcProvider } from \"./json-rpc-provider\";\n\n\nexport class IpcProvider extends JsonRpcProvider {\n readonly path: string;\n\n constructor(path: string, network?: Networkish) {\n if (path == null) {\n logger.throwError(\"missing path\", Logger.errors.MISSING_ARGUMENT, { arg: \"path\" });\n }\n\n super(\"ipc://\" + path, network);\n\n defineReadOnly(this, \"path\", path);\n }\n\n // @TODO: Create a connection to the IPC path and use filters instead of polling for block\n\n send(method: string, params: Array): Promise {\n // This method is very simple right now. We create a new socket\n // connection each time, which may be slower, but the main\n // advantage we are aiming for now is security. This simplifies\n // multiplexing requests (since we do not need to multiplex).\n\n let payload = JSON.stringify({\n method: method,\n params: params,\n id: 42,\n jsonrpc: \"2.0\"\n });\n\n return new Promise((resolve, reject) => {\n let response = Buffer.alloc(0);\n\n let stream = connect(this.path);\n\n stream.on(\"data\", (data) => {\n response = Buffer.concat([ response, data ]);\n });\n\n stream.on(\"end\", () => {\n try {\n resolve(JSON.parse(response.toString()).result);\n // @TODO: Better pull apart the error\n stream.destroy();\n } catch (error) {\n reject(error);\n stream.destroy();\n }\n });\n\n stream.on(\"error\", (error) => {\n reject(error);\n stream.destroy();\n });\n\n stream.write(payload);\n stream.end();\n });\n }\n}\n", "\"use strict\";\n\nimport { Network, Networkish } from \"@ethersproject/networks\";\nimport { defineReadOnly } from \"@ethersproject/properties\";\nimport { ConnectionInfo } from \"@ethersproject/web\";\n\nimport { WebSocketProvider } from \"./websocket-provider\";\nimport { CommunityResourcable, showThrottleMessage } from \"./formatter\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\nimport { UrlJsonRpcProvider } from \"./url-json-rpc-provider\";\n\n\nconst defaultProjectId = \"84842078b09946638c03157f83405213\"\n\nexport class InfuraWebSocketProvider extends WebSocketProvider implements CommunityResourcable {\n readonly apiKey: string;\n readonly projectId: string;\n readonly projectSecret: string;\n\n constructor(network?: Networkish, apiKey?: any) {\n const provider = new InfuraProvider(network, apiKey);\n const connection = provider.connection;\n if (connection.password) {\n logger.throwError(\"INFURA WebSocket project secrets unsupported\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"InfuraProvider.getWebSocketProvider()\"\n });\n }\n\n const url = connection.url.replace(/^http/i, \"ws\").replace(\"/v3/\", \"/ws/v3/\");\n super(url, network);\n\n defineReadOnly(this, \"apiKey\", provider.projectId);\n defineReadOnly(this, \"projectId\", provider.projectId);\n defineReadOnly(this, \"projectSecret\", provider.projectSecret);\n }\n\n isCommunityResource(): boolean {\n return (this.projectId === defaultProjectId);\n }\n}\n\nexport class InfuraProvider extends UrlJsonRpcProvider {\n readonly projectId: string;\n readonly projectSecret: string;\n\n static getWebSocketProvider(network?: Networkish, apiKey?: any): InfuraWebSocketProvider {\n return new InfuraWebSocketProvider(network, apiKey);\n }\n\n static getApiKey(apiKey: any): any {\n const apiKeyObj: { apiKey: string, projectId: string, projectSecret: string } = {\n apiKey: defaultProjectId,\n projectId: defaultProjectId,\n projectSecret: null\n };\n\n if (apiKey == null) { return apiKeyObj; }\n\n if (typeof(apiKey) === \"string\") {\n apiKeyObj.projectId = apiKey;\n\n } else if (apiKey.projectSecret != null) {\n logger.assertArgument((typeof(apiKey.projectId) === \"string\"),\n \"projectSecret requires a projectId\", \"projectId\", apiKey.projectId);\n logger.assertArgument((typeof(apiKey.projectSecret) === \"string\"),\n \"invalid projectSecret\", \"projectSecret\", \"[REDACTED]\");\n\n apiKeyObj.projectId = apiKey.projectId;\n apiKeyObj.projectSecret = apiKey.projectSecret;\n\n } else if (apiKey.projectId) {\n apiKeyObj.projectId = apiKey.projectId;\n }\n\n apiKeyObj.apiKey = apiKeyObj.projectId;\n\n return apiKeyObj;\n }\n\n static getUrl(network: Network, apiKey: any): ConnectionInfo {\n let host: string = null;\n switch(network ? network.name: \"unknown\") {\n case \"homestead\":\n host = \"mainnet.infura.io\";\n break;\n case \"goerli\":\n host = \"goerli.infura.io\";\n break;\n case \"sepolia\":\n host = \"sepolia.infura.io\";\n break;\n case \"matic\":\n host = \"polygon-mainnet.infura.io\";\n break;\n case \"maticmum\":\n host = \"polygon-mumbai.infura.io\";\n break;\n case \"optimism\":\n host = \"optimism-mainnet.infura.io\";\n break;\n case \"optimism-goerli\":\n host = \"optimism-goerli.infura.io\";\n break;\n case \"arbitrum\":\n host = \"arbitrum-mainnet.infura.io\";\n break;\n case \"arbitrum-goerli\":\n host = \"arbitrum-goerli.infura.io\";\n break;\n default:\n logger.throwError(\"unsupported network\", Logger.errors.INVALID_ARGUMENT, {\n argument: \"network\",\n value: network\n });\n }\n\n const connection: ConnectionInfo = {\n allowGzip: true,\n url: (\"https:/\" + \"/\" + host + \"/v3/\" + apiKey.projectId),\n throttleCallback: (attempt: number, url: string) => {\n if (apiKey.projectId === defaultProjectId) {\n showThrottleMessage();\n }\n return Promise.resolve(true);\n }\n };\n\n if (apiKey.projectSecret != null) {\n connection.user = \"\";\n connection.password = apiKey.projectSecret\n }\n\n return connection;\n }\n\n isCommunityResource(): boolean {\n return (this.projectId === defaultProjectId);\n }\n}\n", "\nimport { deepCopy } from \"@ethersproject/properties\";\nimport { fetchJson } from \"@ethersproject/web\";\n\nimport { JsonRpcProvider } from \"./json-rpc-provider\";\n\n// Experimental\n\nexport class JsonRpcBatchProvider extends JsonRpcProvider {\n _pendingBatchAggregator: NodeJS.Timer;\n _pendingBatch: Array<{\n request: { method: string, params: Array, id: number, jsonrpc: \"2.0\" },\n resolve: (result: any) => void,\n reject: (error: Error) => void\n }>;\n\n send(method: string, params: Array): Promise {\n const request = {\n method: method,\n params: params,\n id: (this._nextId++),\n jsonrpc: \"2.0\"\n };\n\n if (this._pendingBatch == null) {\n this._pendingBatch = [ ];\n }\n\n const inflightRequest: any = { request, resolve: null, reject: null };\n\n const promise = new Promise((resolve, reject) => {\n inflightRequest.resolve = resolve;\n inflightRequest.reject = reject;\n });\n\n this._pendingBatch.push(inflightRequest);\n\n if (!this._pendingBatchAggregator) {\n // Schedule batch for next event loop + short duration\n this._pendingBatchAggregator = setTimeout(() => {\n\n // Get teh current batch and clear it, so new requests\n // go into the next batch\n const batch = this._pendingBatch;\n this._pendingBatch = null;\n this._pendingBatchAggregator = null;\n\n // Get the request as an array of requests\n const request = batch.map((inflight) => inflight.request);\n\n this.emit(\"debug\", {\n action: \"requestBatch\",\n request: deepCopy(request),\n provider: this\n });\n\n return fetchJson(this.connection, JSON.stringify(request)).then((result) => {\n this.emit(\"debug\", {\n action: \"response\",\n request: request,\n response: result,\n provider: this\n });\n\n // For each result, feed it to the correct Promise, depending\n // on whether it was a success or error\n batch.forEach((inflightRequest, index) => {\n const payload = result[index];\n if (payload.error) {\n const error = new Error(payload.error.message);\n (error).code = payload.error.code;\n (error).data = payload.error.data;\n inflightRequest.reject(error);\n } else {\n inflightRequest.resolve(payload.result);\n }\n });\n\n }, (error) => {\n this.emit(\"debug\", {\n action: \"response\",\n error: error,\n request: request,\n provider: this\n });\n\n batch.forEach((inflightRequest) => {\n inflightRequest.reject(error);\n });\n });\n\n }, 10);\n }\n\n return promise;\n }\n}\n", "/* istanbul ignore file */\n\n\"use strict\";\n\nimport { Network } from \"@ethersproject/networks\";\nimport { UrlJsonRpcProvider } from \"./url-json-rpc-provider\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\n// Special API key provided by Nodesmith for ethers.js\nconst defaultApiKey = \"ETHERS_JS_SHARED\";\n\nexport class NodesmithProvider extends UrlJsonRpcProvider {\n\n static getApiKey(apiKey: any): any {\n if (apiKey && typeof(apiKey) !== \"string\") {\n logger.throwArgumentError(\"invalid apiKey\", \"apiKey\", apiKey);\n }\n return apiKey || defaultApiKey;\n }\n\n static getUrl(network: Network, apiKey?: any): string {\n logger.warn(\"NodeSmith will be discontinued on 2019-12-20; please migrate to another platform.\");\n\n let host = null;\n switch (network.name) {\n case \"homestead\":\n host = \"https://ethereum.api.nodesmith.io/v1/mainnet/jsonrpc\";\n break;\n case \"ropsten\":\n host = \"https://ethereum.api.nodesmith.io/v1/ropsten/jsonrpc\";\n break;\n case \"rinkeby\":\n host = \"https://ethereum.api.nodesmith.io/v1/rinkeby/jsonrpc\";\n break;\n case \"goerli\":\n host = \"https://ethereum.api.nodesmith.io/v1/goerli/jsonrpc\";\n break;\n case \"kovan\":\n host = \"https://ethereum.api.nodesmith.io/v1/kovan/jsonrpc\";\n break;\n default:\n logger.throwArgumentError(\"unsupported network\", \"network\", arguments[0]);\n }\n\n return (host + \"?apiKey=\" + apiKey);\n }\n}\n", "\"use strict\";\n\nimport { Network } from \"@ethersproject/networks\";\nimport { ConnectionInfo } from \"@ethersproject/web\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\nimport { UrlJsonRpcProvider } from \"./url-json-rpc-provider\";\n\nconst defaultApplicationId = \"62e1ad51b37b8e00394bda3b\";\n\n\nexport class PocketProvider extends UrlJsonRpcProvider {\n readonly applicationId: string;\n readonly applicationSecretKey: string;\n readonly loadBalancer: boolean;\n\n static getApiKey(apiKey: any): any {\n const apiKeyObj: { applicationId: string, applicationSecretKey: string, loadBalancer: boolean } = {\n applicationId: null,\n loadBalancer: true,\n applicationSecretKey: null\n };\n\n // Parse applicationId and applicationSecretKey\n if (apiKey == null) {\n apiKeyObj.applicationId = defaultApplicationId;\n\n } else if (typeof (apiKey) === \"string\") {\n apiKeyObj.applicationId = apiKey;\n\n } else if (apiKey.applicationSecretKey != null) {\n apiKeyObj.applicationId = apiKey.applicationId;\n apiKeyObj.applicationSecretKey = apiKey.applicationSecretKey;\n\n } else if (apiKey.applicationId) {\n apiKeyObj.applicationId = apiKey.applicationId;\n\n } else {\n logger.throwArgumentError(\"unsupported PocketProvider apiKey\", \"apiKey\", apiKey);\n }\n\n return apiKeyObj;\n }\n\n static getUrl(network: Network, apiKey: any): ConnectionInfo {\n let host: string = null;\n switch (network ? network.name : \"unknown\") {\n case \"goerli\":\n host = \"eth-goerli.gateway.pokt.network\";\n break;\n case \"homestead\":\n host = \"eth-mainnet.gateway.pokt.network\";\n break;\n case \"kovan\":\n host = \"poa-kovan.gateway.pokt.network\";\n break;\n case \"matic\":\n host = \"poly-mainnet.gateway.pokt.network\";\n break;\n case \"maticmum\":\n host = \"polygon-mumbai-rpc.gateway.pokt.network\";\n break;\n case \"rinkeby\":\n host = \"eth-rinkeby.gateway.pokt.network\";\n break;\n case \"ropsten\":\n host = \"eth-ropsten.gateway.pokt.network\";\n break;\n default:\n logger.throwError(\"unsupported network\", Logger.errors.INVALID_ARGUMENT, {\n argument: \"network\",\n value: network\n });\n }\n\n const url = `https:/\\/${ host }/v1/lb/${ apiKey.applicationId }`\n\n const connection: ConnectionInfo = { headers: { }, url };\n if (apiKey.applicationSecretKey != null) {\n connection.user = \"\";\n connection.password = apiKey.applicationSecretKey\n }\n\n return connection;\n }\n\n isCommunityResource(): boolean {\n return (this.applicationId === defaultApplicationId);\n }\n}\n", "\"use strict\";\n\nimport { Networkish } from \"@ethersproject/networks\";\nimport { deepCopy, defineReadOnly } from \"@ethersproject/properties\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\nimport { JsonRpcProvider } from \"./json-rpc-provider\";\n\n// Exported Types\nexport type ExternalProvider = {\n isMetaMask?: boolean;\n isStatus?: boolean;\n host?: string;\n path?: string;\n sendAsync?: (request: { method: string, params?: Array }, callback: (error: any, response: any) => void) => void\n send?: (request: { method: string, params?: Array }, callback: (error: any, response: any) => void) => void\n request?: (request: { method: string, params?: Array }) => Promise\n}\n\nlet _nextId = 1;\n\nexport type JsonRpcFetchFunc = (method: string, params?: Array) => Promise;\n\ntype Web3LegacySend = (request: any, callback: (error: Error, response: any) => void) => void;\n\nfunction buildWeb3LegacyFetcher(provider: ExternalProvider, sendFunc: Web3LegacySend) : JsonRpcFetchFunc {\n const fetcher = \"Web3LegacyFetcher\";\n\n return function(method: string, params: Array): Promise {\n const request = {\n method: method,\n params: params,\n id: (_nextId++),\n jsonrpc: \"2.0\"\n };\n\n return new Promise((resolve, reject) => {\n this.emit(\"debug\", {\n action: \"request\",\n fetcher,\n request: deepCopy(request),\n provider: this\n });\n\n sendFunc(request, (error, response) => {\n\n if (error) {\n this.emit(\"debug\", {\n action: \"response\",\n fetcher,\n error,\n request,\n provider: this\n });\n\n return reject(error);\n }\n\n this.emit(\"debug\", {\n action: \"response\",\n fetcher,\n request,\n response,\n provider: this\n });\n\n if (response.error) {\n const error = new Error(response.error.message);\n (error).code = response.error.code;\n (error).data = response.error.data;\n return reject(error);\n }\n\n resolve(response.result);\n });\n });\n }\n}\n\nfunction buildEip1193Fetcher(provider: ExternalProvider): JsonRpcFetchFunc {\n return function(method: string, params: Array): Promise {\n if (params == null) { params = [ ]; }\n\n const request = { method, params };\n\n this.emit(\"debug\", {\n action: \"request\",\n fetcher: \"Eip1193Fetcher\",\n request: deepCopy(request),\n provider: this\n });\n\n return provider.request(request).then((response) => {\n this.emit(\"debug\", {\n action: \"response\",\n fetcher: \"Eip1193Fetcher\",\n request,\n response,\n provider: this\n });\n\n return response;\n\n }, (error) => {\n this.emit(\"debug\", {\n action: \"response\",\n fetcher: \"Eip1193Fetcher\",\n request,\n error,\n provider: this\n });\n\n throw error;\n });\n }\n}\n\nexport class Web3Provider extends JsonRpcProvider {\n readonly provider: ExternalProvider;\n readonly jsonRpcFetchFunc: JsonRpcFetchFunc;\n\n constructor(provider: ExternalProvider | JsonRpcFetchFunc, network?: Networkish) {\n if (provider == null) {\n logger.throwArgumentError(\"missing provider\", \"provider\", provider);\n }\n\n let path: string = null;\n let jsonRpcFetchFunc: JsonRpcFetchFunc = null;\n let subprovider: ExternalProvider = null;\n\n if (typeof(provider) === \"function\") {\n path = \"unknown:\";\n jsonRpcFetchFunc = provider;\n\n } else {\n path = provider.host || provider.path || \"\";\n if (!path && provider.isMetaMask) {\n path = \"metamask\";\n }\n\n subprovider = provider;\n\n if (provider.request) {\n if (path === \"\") { path = \"eip-1193:\"; }\n jsonRpcFetchFunc = buildEip1193Fetcher(provider);\n } else if (provider.sendAsync) {\n jsonRpcFetchFunc = buildWeb3LegacyFetcher(provider, provider.sendAsync.bind(provider));\n } else if (provider.send) {\n jsonRpcFetchFunc = buildWeb3LegacyFetcher(provider, provider.send.bind(provider));\n } else {\n logger.throwArgumentError(\"unsupported provider\", \"provider\", provider);\n }\n\n if (!path) { path = \"unknown:\"; }\n }\n\n super(path, network);\n\n defineReadOnly(this, \"jsonRpcFetchFunc\", jsonRpcFetchFunc);\n defineReadOnly(this, \"provider\", subprovider);\n }\n\n send(method: string, params: Array): Promise {\n return this.jsonRpcFetchFunc(method, params);\n }\n}\n", "\"use strict\";\n\nimport {\n Block,\n BlockTag,\n EventType,\n FeeData,\n Filter,\n Log,\n Listener,\n Provider,\n TransactionReceipt,\n TransactionRequest,\n TransactionResponse\n} from \"@ethersproject/abstract-provider\";\n\nimport { getNetwork } from \"@ethersproject/networks\";\nimport { Network, Networkish } from \"@ethersproject/networks\";\n\nimport { BaseProvider, EnsProvider, EnsResolver, Resolver } from \"./base-provider\";\n\nimport { AlchemyProvider, AlchemyWebSocketProvider } from \"./alchemy-provider\";\nimport { AnkrProvider } from \"./ankr-provider\";\nimport { CloudflareProvider } from \"./cloudflare-provider\";\nimport { EtherscanProvider } from \"./etherscan-provider\";\nimport { FallbackProvider, FallbackProviderConfig } from \"./fallback-provider\";\nimport { IpcProvider } from \"./ipc-provider\";\nimport { InfuraProvider, InfuraWebSocketProvider } from \"./infura-provider\";\nimport { JsonRpcProvider, JsonRpcSigner } from \"./json-rpc-provider\";\nimport { JsonRpcBatchProvider } from \"./json-rpc-batch-provider\";\nimport { NodesmithProvider } from \"./nodesmith-provider\";\nimport { PocketProvider } from \"./pocket-provider\";\nimport { StaticJsonRpcProvider, UrlJsonRpcProvider } from \"./url-json-rpc-provider\";\nimport { Web3Provider } from \"./web3-provider\";\nimport { WebSocketProvider } from \"./websocket-provider\";\nimport { ExternalProvider, JsonRpcFetchFunc } from \"./web3-provider\";\n\nimport { CommunityResourcable, Formatter, isCommunityResourcable, isCommunityResource, showThrottleMessage } from \"./formatter\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\n////////////////////////\n// Helper Functions\n\nfunction getDefaultProvider(network?: Networkish, options?: any): BaseProvider {\n if (network == null) { network = \"homestead\"; }\n\n // If passed a URL, figure out the right type of provider based on the scheme\n if (typeof(network) === \"string\") {\n // @TODO: Add support for IpcProvider; maybe if it ends in \".ipc\"?\n\n // Handle http and ws (and their secure variants)\n const match = network.match(/^(ws|http)s?:/i);\n if (match) {\n switch (match[1].toLowerCase()) {\n case \"http\": case \"https\":\n return new JsonRpcProvider(network);\n case \"ws\": case \"wss\":\n return new WebSocketProvider(network);\n default:\n logger.throwArgumentError(\"unsupported URL scheme\", \"network\", network);\n }\n }\n }\n\n const n = getNetwork(network);\n if (!n || !n._defaultProvider) {\n logger.throwError(\"unsupported getDefaultProvider network\", Logger.errors.NETWORK_ERROR, {\n operation: \"getDefaultProvider\",\n network: network\n });\n }\n\n return n._defaultProvider({\n FallbackProvider,\n\n AlchemyProvider,\n AnkrProvider,\n CloudflareProvider,\n EtherscanProvider,\n InfuraProvider,\n JsonRpcProvider,\n NodesmithProvider,\n PocketProvider,\n Web3Provider,\n\n IpcProvider,\n }, options);\n}\n\n////////////////////////\n// Exports\n\nexport {\n\n // Abstract Providers (or Abstract-ish)\n Provider,\n BaseProvider,\n\n Resolver,\n\n UrlJsonRpcProvider,\n\n ///////////////////////\n // Concrete Providers\n\n FallbackProvider,\n\n AlchemyProvider,\n AlchemyWebSocketProvider,\n AnkrProvider,\n CloudflareProvider,\n EtherscanProvider,\n InfuraProvider,\n InfuraWebSocketProvider,\n JsonRpcProvider,\n JsonRpcBatchProvider,\n NodesmithProvider,\n PocketProvider,\n StaticJsonRpcProvider,\n Web3Provider,\n WebSocketProvider,\n\n IpcProvider,\n\n\n ///////////////////////\n // Signer\n\n JsonRpcSigner,\n\n\n ///////////////////////\n // Functions\n\n getDefaultProvider,\n getNetwork,\n isCommunityResource,\n isCommunityResourcable,\n showThrottleMessage,\n\n\n ///////////////////////\n // Objects\n\n Formatter,\n\n\n ///////////////////////\n // Types\n\n Block,\n BlockTag,\n EventType,\n FeeData,\n Filter,\n Log,\n Listener,\n TransactionReceipt,\n TransactionRequest,\n TransactionResponse,\n\n ExternalProvider,\n JsonRpcFetchFunc,\n\n FallbackProviderConfig,\n\n Network,\n Networkish,\n\n EnsProvider,\n EnsResolver,\n\n CommunityResourcable\n};\n\n", "export const version = \"solidity/5.7.0\";\n", "\"use strict\";\n\nimport { BigNumber } from \"@ethersproject/bignumber\";\nimport { arrayify, concat, hexlify, zeroPad } from \"@ethersproject/bytes\";\nimport { keccak256 as hashKeccak256 } from \"@ethersproject/keccak256\";\nimport { sha256 as hashSha256 } from \"@ethersproject/sha2\";\nimport { toUtf8Bytes } from \"@ethersproject/strings\";\n\nconst regexBytes = new RegExp(\"^bytes([0-9]+)$\");\nconst regexNumber = new RegExp(\"^(u?int)([0-9]*)$\");\nconst regexArray = new RegExp(\"^(.*)\\\\[([0-9]*)\\\\]$\");\n\nconst Zeros = \"0000000000000000000000000000000000000000000000000000000000000000\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\n\nfunction _pack(type: string, value: any, isArray?: boolean): Uint8Array {\n switch(type) {\n case \"address\":\n if (isArray) { return zeroPad(value, 32); }\n return arrayify(value);\n case \"string\":\n return toUtf8Bytes(value);\n case \"bytes\":\n return arrayify(value);\n case \"bool\":\n value = (value ? \"0x01\": \"0x00\");\n if (isArray) { return zeroPad(value, 32); }\n return arrayify(value);\n }\n\n let match = type.match(regexNumber);\n if (match) {\n //let signed = (match[1] === \"int\")\n let size = parseInt(match[2] || \"256\")\n\n if ((match[2] && String(size) !== match[2]) || (size % 8 !== 0) || size === 0 || size > 256) {\n logger.throwArgumentError(\"invalid number type\", \"type\", type)\n }\n\n if (isArray) { size = 256; }\n\n value = BigNumber.from(value).toTwos(size);\n\n return zeroPad(value, size / 8);\n }\n\n match = type.match(regexBytes);\n if (match) {\n const size = parseInt(match[1]);\n\n if (String(size) !== match[1] || size === 0 || size > 32) {\n logger.throwArgumentError(\"invalid bytes type\", \"type\", type)\n }\n if (arrayify(value).byteLength !== size) {\n logger.throwArgumentError(`invalid value for ${ type }`, \"value\", value)\n }\n if (isArray) { return arrayify((value + Zeros).substring(0, 66)); }\n return value;\n }\n\n match = type.match(regexArray);\n if (match && Array.isArray(value)) {\n const baseType = match[1];\n const count = parseInt(match[2] || String(value.length));\n if (count != value.length) {\n logger.throwArgumentError(`invalid array length for ${ type }`, \"value\", value)\n }\n const result: Array = [];\n value.forEach(function(value) {\n result.push(_pack(baseType, value, true));\n });\n return concat(result);\n }\n\n return logger.throwArgumentError(\"invalid type\", \"type\", type)\n}\n\n// @TODO: Array Enum\n\nexport function pack(types: ReadonlyArray, values: ReadonlyArray) {\n if (types.length != values.length) {\n logger.throwArgumentError(\"wrong number of values; expected ${ types.length }\", \"values\", values)\n }\n const tight: Array = [];\n types.forEach(function(type, index) {\n tight.push(_pack(type, values[index]));\n });\n return hexlify(concat(tight));\n}\n\nexport function keccak256(types: ReadonlyArray, values: ReadonlyArray) {\n return hashKeccak256(pack(types, values));\n}\n\nexport function sha256(types: ReadonlyArray, values: ReadonlyArray) {\n return hashSha256(pack(types, values));\n}\n", "export const version = \"units/5.7.0\";\n", "\"use strict\";\n\nimport { BigNumber, BigNumberish } from \"@ethersproject/bignumber\";\nimport { formatFixed, parseFixed } from \"@ethersproject/bignumber\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\nconst names = [\n \"wei\",\n \"kwei\",\n \"mwei\",\n \"gwei\",\n \"szabo\",\n \"finney\",\n \"ether\",\n];\n\n\n// Some environments have issues with RegEx that contain back-tracking, so we cannot\n// use them.\nexport function commify(value: string | number): string {\n const comps = String(value).split(\".\");\n\n if (comps.length > 2 || !comps[0].match(/^-?[0-9]*$/) || (comps[1] && !comps[1].match(/^[0-9]*$/)) || value === \".\" || value === \"-.\") {\n logger.throwArgumentError(\"invalid value\", \"value\", value);\n }\n\n // Make sure we have at least one whole digit (0 if none)\n let whole = comps[0];\n\n let negative = \"\";\n if (whole.substring(0, 1) === \"-\") {\n negative = \"-\";\n whole = whole.substring(1);\n }\n\n // Make sure we have at least 1 whole digit with no leading zeros\n while (whole.substring(0, 1) === \"0\") { whole = whole.substring(1); }\n if (whole === \"\") { whole = \"0\"; }\n\n let suffix = \"\";\n if (comps.length === 2) { suffix = \".\" + (comps[1] || \"0\"); }\n while (suffix.length > 2 && suffix[suffix.length - 1] === \"0\") {\n suffix = suffix.substring(0, suffix.length - 1);\n }\n\n const formatted = [];\n while (whole.length) {\n if (whole.length <= 3) {\n formatted.unshift(whole);\n break;\n } else {\n const index = whole.length - 3;\n formatted.unshift(whole.substring(index));\n whole = whole.substring(0, index);\n }\n }\n\n return negative + formatted.join(\",\") + suffix;\n}\n\nexport function formatUnits(value: BigNumberish, unitName?: string | BigNumberish): string {\n if (typeof(unitName) === \"string\") {\n const index = names.indexOf(unitName);\n if (index !== -1) { unitName = 3 * index; }\n }\n return formatFixed(value, (unitName != null) ? unitName: 18);\n}\n\nexport function parseUnits(value: string, unitName?: BigNumberish): BigNumber {\n if (typeof(value) !== \"string\") {\n logger.throwArgumentError(\"value must be a string\", \"value\", value);\n }\n if (typeof(unitName) === \"string\") {\n const index = names.indexOf(unitName);\n if (index !== -1) { unitName = 3 * index; }\n }\n return parseFixed(value, (unitName != null) ? unitName: 18);\n}\n\nexport function formatEther(wei: BigNumberish): string {\n return formatUnits(wei, 18);\n}\n\nexport function parseEther(ether: string): BigNumber {\n return parseUnits(ether, 18);\n}\n\n", "\"use strict\";\n\nimport { AbiCoder, checkResultErrors, ConstructorFragment, defaultAbiCoder, ErrorFragment, EventFragment, FormatTypes, Fragment, FunctionFragment, Indexed, Interface, LogDescription, ParamType, Result, TransactionDescription }from \"@ethersproject/abi\";\nimport { getAddress, getCreate2Address, getContractAddress, getIcapAddress, isAddress } from \"@ethersproject/address\";\nimport * as base64 from \"@ethersproject/base64\";\nimport { Base58 as base58 } from \"@ethersproject/basex\";\nimport { arrayify, concat, hexConcat, hexDataSlice, hexDataLength, hexlify, hexStripZeros, hexValue, hexZeroPad, isBytes, isBytesLike, isHexString, joinSignature, zeroPad, splitSignature, stripZeros } from \"@ethersproject/bytes\";\nimport { _TypedDataEncoder, dnsEncode, hashMessage, id, isValidName, namehash } from \"@ethersproject/hash\";\nimport { defaultPath, entropyToMnemonic, getAccountPath, HDNode, isValidMnemonic, mnemonicToEntropy, mnemonicToSeed } from \"@ethersproject/hdnode\";\nimport { getJsonWalletAddress } from \"@ethersproject/json-wallets\";\nimport { keccak256 } from \"@ethersproject/keccak256\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { computeHmac, ripemd160, sha256, sha512 } from \"@ethersproject/sha2\";\nimport { keccak256 as solidityKeccak256, pack as solidityPack, sha256 as soliditySha256 } from \"@ethersproject/solidity\";\nimport { randomBytes, shuffled } from \"@ethersproject/random\";\nimport { checkProperties, deepCopy, defineReadOnly, getStatic, resolveProperties, shallowCopy } from \"@ethersproject/properties\";\nimport * as RLP from \"@ethersproject/rlp\";\nimport { computePublicKey, recoverPublicKey, SigningKey } from \"@ethersproject/signing-key\";\nimport { formatBytes32String, nameprep, parseBytes32String, _toEscapedUtf8String, toUtf8Bytes, toUtf8CodePoints, toUtf8String, Utf8ErrorFuncs } from \"@ethersproject/strings\";\nimport { accessListify, computeAddress, parse as parseTransaction, recoverAddress, serialize as serializeTransaction, TransactionTypes } from \"@ethersproject/transactions\";\nimport { commify, formatEther, parseEther, formatUnits, parseUnits } from \"@ethersproject/units\";\nimport { verifyMessage, verifyTypedData } from \"@ethersproject/wallet\";\nimport { _fetchData, fetchJson, poll } from \"@ethersproject/web\";\n\n////////////////////////\n// Enums\n\nimport { SupportedAlgorithm } from \"@ethersproject/sha2\";\nimport { UnicodeNormalizationForm, Utf8ErrorReason } from \"@ethersproject/strings\";\nimport { UnsignedTransaction } from \"@ethersproject/transactions\";\n\n////////////////////////\n// Types and Interfaces\n\nimport { CoerceFunc } from \"@ethersproject/abi\";\nimport { Bytes, BytesLike, Hexable } from \"@ethersproject/bytes\"\nimport { Mnemonic } from \"@ethersproject/hdnode\";\nimport { EncryptOptions, ProgressCallback } from \"@ethersproject/json-wallets\";\nimport { Deferrable } from \"@ethersproject/properties\";\nimport { Utf8ErrorFunc } from \"@ethersproject/strings\";\nimport { AccessList, AccessListish } from \"@ethersproject/transactions\";\nimport { ConnectionInfo, FetchJsonResponse, OnceBlockable, OncePollable, PollOptions } from \"@ethersproject/web\";\n\n////////////////////////\n// Exports\n\nexport {\n AbiCoder,\n defaultAbiCoder,\n\n Fragment,\n ConstructorFragment,\n ErrorFragment,\n EventFragment,\n FunctionFragment,\n ParamType,\n FormatTypes,\n\n checkResultErrors,\n Result,\n\n Logger,\n\n RLP,\n\n _fetchData,\n fetchJson,\n poll,\n\n checkProperties,\n deepCopy,\n defineReadOnly,\n getStatic,\n resolveProperties,\n shallowCopy,\n\n arrayify,\n\n concat,\n stripZeros,\n zeroPad,\n\n isBytes,\n isBytesLike,\n\n defaultPath,\n HDNode,\n SigningKey,\n\n Interface,\n\n LogDescription,\n TransactionDescription,\n\n base58,\n base64,\n\n hexlify,\n isHexString,\n hexConcat,\n hexStripZeros,\n hexValue,\n hexZeroPad,\n hexDataLength,\n hexDataSlice,\n\n nameprep,\n _toEscapedUtf8String,\n toUtf8Bytes,\n toUtf8CodePoints,\n toUtf8String,\n Utf8ErrorFuncs,\n\n formatBytes32String,\n parseBytes32String,\n\n dnsEncode,\n hashMessage,\n namehash,\n isValidName,\n id,\n\n _TypedDataEncoder,\n\n getAddress,\n getIcapAddress,\n getContractAddress,\n getCreate2Address,\n isAddress,\n\n formatEther,\n parseEther,\n\n formatUnits,\n parseUnits,\n\n commify,\n\n computeHmac,\n keccak256,\n ripemd160,\n sha256,\n sha512,\n\n randomBytes,\n shuffled,\n\n solidityPack,\n solidityKeccak256,\n soliditySha256,\n\n splitSignature,\n joinSignature,\n\n accessListify,\n parseTransaction,\n serializeTransaction,\n TransactionTypes,\n\n getJsonWalletAddress,\n\n computeAddress,\n recoverAddress,\n\n computePublicKey,\n recoverPublicKey,\n\n verifyMessage,\n verifyTypedData,\n\n getAccountPath,\n mnemonicToEntropy,\n entropyToMnemonic,\n isValidMnemonic,\n mnemonicToSeed,\n\n\n ////////////////////////\n // Enums\n\n SupportedAlgorithm,\n\n UnicodeNormalizationForm,\n Utf8ErrorReason,\n\n ////////////////////////\n // Types\n\n Bytes,\n BytesLike,\n Hexable,\n\n AccessList,\n AccessListish,\n UnsignedTransaction,\n\n CoerceFunc,\n\n Indexed,\n\n Mnemonic,\n\n Deferrable,\n\n Utf8ErrorFunc,\n\n ConnectionInfo,\n OnceBlockable,\n OncePollable,\n PollOptions,\n FetchJsonResponse,\n\n EncryptOptions,\n ProgressCallback\n}\n\n", "export const version = \"ethers/5.7.2\";\n", "\"use strict\";\n\nimport { BaseContract, Contract, ContractFactory } from \"@ethersproject/contracts\";\n\nimport { BigNumber, FixedNumber } from \"@ethersproject/bignumber\";\n\nimport { Signer, VoidSigner } from \"@ethersproject/abstract-signer\";\nimport { Wallet } from \"@ethersproject/wallet\";\n\nimport * as constants from \"@ethersproject/constants\";\n\nimport * as providers from \"@ethersproject/providers\";\nimport { getDefaultProvider } from \"@ethersproject/providers\";\n\nimport { Wordlist, wordlists} from \"@ethersproject/wordlists\";\n\nimport * as utils from \"./utils\";\n\nimport { ErrorCode as errors, Logger } from \"@ethersproject/logger\";\n\n////////////////////////\n// Types\n\nimport type { TypedDataDomain, TypedDataField } from \"@ethersproject/abstract-signer\";\nimport { BigNumberish } from \"@ethersproject/bignumber\";\nimport { Bytes, BytesLike, Signature } from \"@ethersproject/bytes\";\nimport { Transaction, UnsignedTransaction } from \"@ethersproject/transactions\";\n\n\n////////////////////////\n// Compile-Time Constants\n\n// This is generated by \"npm run dist\"\nimport { version } from \"./_version\";\n\nconst logger = new Logger(version);\n\n////////////////////////\n// Types\n\nimport {\n ContractFunction,\n ContractReceipt,\n ContractTransaction,\n\n Event,\n EventFilter,\n\n Overrides,\n PayableOverrides,\n CallOverrides,\n\n PopulatedTransaction,\n\n ContractInterface\n} from \"@ethersproject/contracts\";\n\n\n////////////////////////\n// Exports\n\nexport {\n Signer,\n\n Wallet,\n VoidSigner,\n\n getDefaultProvider,\n providers,\n\n BaseContract,\n Contract,\n ContractFactory,\n\n BigNumber,\n FixedNumber,\n\n constants,\n errors,\n\n logger,\n\n utils,\n\n wordlists,\n\n\n ////////////////////////\n // Compile-Time Constants\n\n version,\n\n\n ////////////////////////\n // Types\n\n ContractFunction,\n ContractReceipt,\n ContractTransaction,\n Event,\n EventFilter,\n\n Overrides,\n PayableOverrides,\n CallOverrides,\n\n PopulatedTransaction,\n\n ContractInterface,\n\n TypedDataDomain,\n TypedDataField,\n\n BigNumberish,\n\n Bytes,\n BytesLike,\n\n Signature,\n\n Transaction,\n UnsignedTransaction,\n\n Wordlist\n};\n\n", "\"use strict\";\n\n// To modify this file, you must update ./misc/admin/lib/cmds/update-exports.js\n\nimport * as ethers from \"./ethers\";\n\ntry {\n const anyGlobal = (window as any);\n\n if (anyGlobal._ethers == null) {\n anyGlobal._ethers = ethers;\n }\n} catch (error) { }\n\nexport { ethers };\n\nexport {\n Signer,\n\n Wallet,\n VoidSigner,\n\n getDefaultProvider,\n providers,\n\n BaseContract,\n Contract,\n ContractFactory,\n\n BigNumber,\n FixedNumber,\n\n constants,\n errors,\n\n logger,\n\n utils,\n\n wordlists,\n\n\n ////////////////////////\n // Compile-Time Constants\n\n version,\n\n\n ////////////////////////\n // Types\n\n ContractFunction,\n ContractReceipt,\n ContractTransaction,\n Event,\n EventFilter,\n\n Overrides,\n PayableOverrides,\n CallOverrides,\n\n PopulatedTransaction,\n\n ContractInterface,\n\n TypedDataDomain,\n TypedDataField,\n\n BigNumberish,\n\n Bytes,\n BytesLike,\n\n Signature,\n\n Transaction,\n UnsignedTransaction,\n\n Wordlist\n} from \"./ethers\";\n", ";(function (globalObject) {\r\n 'use strict';\r\n\r\n/*\r\n * bignumber.js v9.1.1\r\n * A JavaScript library for arbitrary-precision arithmetic.\r\n * https://github.com/MikeMcl/bignumber.js\r\n * Copyright (c) 2022 Michael Mclaughlin \r\n * MIT Licensed.\r\n *\r\n * BigNumber.prototype methods | BigNumber methods\r\n * |\r\n * absoluteValue abs | clone\r\n * comparedTo | config set\r\n * decimalPlaces dp | DECIMAL_PLACES\r\n * dividedBy div | ROUNDING_MODE\r\n * dividedToIntegerBy idiv | EXPONENTIAL_AT\r\n * exponentiatedBy pow | RANGE\r\n * integerValue | CRYPTO\r\n * isEqualTo eq | MODULO_MODE\r\n * isFinite | POW_PRECISION\r\n * isGreaterThan gt | FORMAT\r\n * isGreaterThanOrEqualTo gte | ALPHABET\r\n * isInteger | isBigNumber\r\n * isLessThan lt | maximum max\r\n * isLessThanOrEqualTo lte | minimum min\r\n * isNaN | random\r\n * isNegative | sum\r\n * isPositive |\r\n * isZero |\r\n * minus |\r\n * modulo mod |\r\n * multipliedBy times |\r\n * negated |\r\n * plus |\r\n * precision sd |\r\n * shiftedBy |\r\n * squareRoot sqrt |\r\n * toExponential |\r\n * toFixed |\r\n * toFormat |\r\n * toFraction |\r\n * toJSON |\r\n * toNumber |\r\n * toPrecision |\r\n * toString |\r\n * valueOf |\r\n *\r\n */\r\n\r\n\r\n var BigNumber,\r\n isNumeric = /^-?(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:e[+-]?\\d+)?$/i,\r\n mathceil = Math.ceil,\r\n mathfloor = Math.floor,\r\n\r\n bignumberError = '[BigNumber Error] ',\r\n tooManyDigits = bignumberError + 'Number primitive has more than 15 significant digits: ',\r\n\r\n BASE = 1e14,\r\n LOG_BASE = 14,\r\n MAX_SAFE_INTEGER = 0x1fffffffffffff, // 2^53 - 1\r\n // MAX_INT32 = 0x7fffffff, // 2^31 - 1\r\n POWS_TEN = [1, 10, 100, 1e3, 1e4, 1e5, 1e6, 1e7, 1e8, 1e9, 1e10, 1e11, 1e12, 1e13],\r\n SQRT_BASE = 1e7,\r\n\r\n // EDITABLE\r\n // The limit on the value of DECIMAL_PLACES, TO_EXP_NEG, TO_EXP_POS, MIN_EXP, MAX_EXP, and\r\n // the arguments to toExponential, toFixed, toFormat, and toPrecision.\r\n MAX = 1E9; // 0 to MAX_INT32\r\n\r\n\r\n /*\r\n * Create and return a BigNumber constructor.\r\n */\r\n function clone(configObject) {\r\n var div, convertBase, parseNumeric,\r\n P = BigNumber.prototype = { constructor: BigNumber, toString: null, valueOf: null },\r\n ONE = new BigNumber(1),\r\n\r\n\r\n //----------------------------- EDITABLE CONFIG DEFAULTS -------------------------------\r\n\r\n\r\n // The default values below must be integers within the inclusive ranges stated.\r\n // The values can also be changed at run-time using BigNumber.set.\r\n\r\n // The maximum number of decimal places for operations involving division.\r\n DECIMAL_PLACES = 20, // 0 to MAX\r\n\r\n // The rounding mode used when rounding to the above decimal places, and when using\r\n // toExponential, toFixed, toFormat and toPrecision, and round (default value).\r\n // UP 0 Away from zero.\r\n // DOWN 1 Towards zero.\r\n // CEIL 2 Towards +Infinity.\r\n // FLOOR 3 Towards -Infinity.\r\n // HALF_UP 4 Towards nearest neighbour. If equidistant, up.\r\n // HALF_DOWN 5 Towards nearest neighbour. If equidistant, down.\r\n // HALF_EVEN 6 Towards nearest neighbour. If equidistant, towards even neighbour.\r\n // HALF_CEIL 7 Towards nearest neighbour. If equidistant, towards +Infinity.\r\n // HALF_FLOOR 8 Towards nearest neighbour. If equidistant, towards -Infinity.\r\n ROUNDING_MODE = 4, // 0 to 8\r\n\r\n // EXPONENTIAL_AT : [TO_EXP_NEG , TO_EXP_POS]\r\n\r\n // The exponent value at and beneath which toString returns exponential notation.\r\n // Number type: -7\r\n TO_EXP_NEG = -7, // 0 to -MAX\r\n\r\n // The exponent value at and above which toString returns exponential notation.\r\n // Number type: 21\r\n TO_EXP_POS = 21, // 0 to MAX\r\n\r\n // RANGE : [MIN_EXP, MAX_EXP]\r\n\r\n // The minimum exponent value, beneath which underflow to zero occurs.\r\n // Number type: -324 (5e-324)\r\n MIN_EXP = -1e7, // -1 to -MAX\r\n\r\n // The maximum exponent value, above which overflow to Infinity occurs.\r\n // Number type: 308 (1.7976931348623157e+308)\r\n // For MAX_EXP > 1e7, e.g. new BigNumber('1e100000000').plus(1) may be slow.\r\n MAX_EXP = 1e7, // 1 to MAX\r\n\r\n // Whether to use cryptographically-secure random number generation, if available.\r\n CRYPTO = false, // true or false\r\n\r\n // The modulo mode used when calculating the modulus: a mod n.\r\n // The quotient (q = a / n) is calculated according to the corresponding rounding mode.\r\n // The remainder (r) is calculated as: r = a - n * q.\r\n //\r\n // UP 0 The remainder is positive if the dividend is negative, else is negative.\r\n // DOWN 1 The remainder has the same sign as the dividend.\r\n // This modulo mode is commonly known as 'truncated division' and is\r\n // equivalent to (a % n) in JavaScript.\r\n // FLOOR 3 The remainder has the same sign as the divisor (Python %).\r\n // HALF_EVEN 6 This modulo mode implements the IEEE 754 remainder function.\r\n // EUCLID 9 Euclidian division. q = sign(n) * floor(a / abs(n)).\r\n // The remainder is always positive.\r\n //\r\n // The truncated division, floored division, Euclidian division and IEEE 754 remainder\r\n // modes are commonly used for the modulus operation.\r\n // Although the other rounding modes can also be used, they may not give useful results.\r\n MODULO_MODE = 1, // 0 to 9\r\n\r\n // The maximum number of significant digits of the result of the exponentiatedBy operation.\r\n // If POW_PRECISION is 0, there will be unlimited significant digits.\r\n POW_PRECISION = 0, // 0 to MAX\r\n\r\n // The format specification used by the BigNumber.prototype.toFormat method.\r\n FORMAT = {\r\n prefix: '',\r\n groupSize: 3,\r\n secondaryGroupSize: 0,\r\n groupSeparator: ',',\r\n decimalSeparator: '.',\r\n fractionGroupSize: 0,\r\n fractionGroupSeparator: '\\xA0', // non-breaking space\r\n suffix: ''\r\n },\r\n\r\n // The alphabet used for base conversion. It must be at least 2 characters long, with no '+',\r\n // '-', '.', whitespace, or repeated character.\r\n // '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ$_'\r\n ALPHABET = '0123456789abcdefghijklmnopqrstuvwxyz',\r\n alphabetHasNormalDecimalDigits = true;\r\n\r\n\r\n //------------------------------------------------------------------------------------------\r\n\r\n\r\n // CONSTRUCTOR\r\n\r\n\r\n /*\r\n * The BigNumber constructor and exported function.\r\n * Create and return a new instance of a BigNumber object.\r\n *\r\n * v {number|string|BigNumber} A numeric value.\r\n * [b] {number} The base of v. Integer, 2 to ALPHABET.length inclusive.\r\n */\r\n function BigNumber(v, b) {\r\n var alphabet, c, caseChanged, e, i, isNum, len, str,\r\n x = this;\r\n\r\n // Enable constructor call without `new`.\r\n if (!(x instanceof BigNumber)) return new BigNumber(v, b);\r\n\r\n if (b == null) {\r\n\r\n if (v && v._isBigNumber === true) {\r\n x.s = v.s;\r\n\r\n if (!v.c || v.e > MAX_EXP) {\r\n x.c = x.e = null;\r\n } else if (v.e < MIN_EXP) {\r\n x.c = [x.e = 0];\r\n } else {\r\n x.e = v.e;\r\n x.c = v.c.slice();\r\n }\r\n\r\n return;\r\n }\r\n\r\n if ((isNum = typeof v == 'number') && v * 0 == 0) {\r\n\r\n // Use `1 / n` to handle minus zero also.\r\n x.s = 1 / v < 0 ? (v = -v, -1) : 1;\r\n\r\n // Fast path for integers, where n < 2147483648 (2**31).\r\n if (v === ~~v) {\r\n for (e = 0, i = v; i >= 10; i /= 10, e++);\r\n\r\n if (e > MAX_EXP) {\r\n x.c = x.e = null;\r\n } else {\r\n x.e = e;\r\n x.c = [v];\r\n }\r\n\r\n return;\r\n }\r\n\r\n str = String(v);\r\n } else {\r\n\r\n if (!isNumeric.test(str = String(v))) return parseNumeric(x, str, isNum);\r\n\r\n x.s = str.charCodeAt(0) == 45 ? (str = str.slice(1), -1) : 1;\r\n }\r\n\r\n // Decimal point?\r\n if ((e = str.indexOf('.')) > -1) str = str.replace('.', '');\r\n\r\n // Exponential form?\r\n if ((i = str.search(/e/i)) > 0) {\r\n\r\n // Determine exponent.\r\n if (e < 0) e = i;\r\n e += +str.slice(i + 1);\r\n str = str.substring(0, i);\r\n } else if (e < 0) {\r\n\r\n // Integer.\r\n e = str.length;\r\n }\r\n\r\n } else {\r\n\r\n // '[BigNumber Error] Base {not a primitive number|not an integer|out of range}: {b}'\r\n intCheck(b, 2, ALPHABET.length, 'Base');\r\n\r\n // Allow exponential notation to be used with base 10 argument, while\r\n // also rounding to DECIMAL_PLACES as with other bases.\r\n if (b == 10 && alphabetHasNormalDecimalDigits) {\r\n x = new BigNumber(v);\r\n return round(x, DECIMAL_PLACES + x.e + 1, ROUNDING_MODE);\r\n }\r\n\r\n str = String(v);\r\n\r\n if (isNum = typeof v == 'number') {\r\n\r\n // Avoid potential interpretation of Infinity and NaN as base 44+ values.\r\n if (v * 0 != 0) return parseNumeric(x, str, isNum, b);\r\n\r\n x.s = 1 / v < 0 ? (str = str.slice(1), -1) : 1;\r\n\r\n // '[BigNumber Error] Number primitive has more than 15 significant digits: {n}'\r\n if (BigNumber.DEBUG && str.replace(/^0\\.0*|\\./, '').length > 15) {\r\n throw Error\r\n (tooManyDigits + v);\r\n }\r\n } else {\r\n x.s = str.charCodeAt(0) === 45 ? (str = str.slice(1), -1) : 1;\r\n }\r\n\r\n alphabet = ALPHABET.slice(0, b);\r\n e = i = 0;\r\n\r\n // Check that str is a valid base b number.\r\n // Don't use RegExp, so alphabet can contain special characters.\r\n for (len = str.length; i < len; i++) {\r\n if (alphabet.indexOf(c = str.charAt(i)) < 0) {\r\n if (c == '.') {\r\n\r\n // If '.' is not the first character and it has not be found before.\r\n if (i > e) {\r\n e = len;\r\n continue;\r\n }\r\n } else if (!caseChanged) {\r\n\r\n // Allow e.g. hexadecimal 'FF' as well as 'ff'.\r\n if (str == str.toUpperCase() && (str = str.toLowerCase()) ||\r\n str == str.toLowerCase() && (str = str.toUpperCase())) {\r\n caseChanged = true;\r\n i = -1;\r\n e = 0;\r\n continue;\r\n }\r\n }\r\n\r\n return parseNumeric(x, String(v), isNum, b);\r\n }\r\n }\r\n\r\n // Prevent later check for length on converted number.\r\n isNum = false;\r\n str = convertBase(str, b, 10, x.s);\r\n\r\n // Decimal point?\r\n if ((e = str.indexOf('.')) > -1) str = str.replace('.', '');\r\n else e = str.length;\r\n }\r\n\r\n // Determine leading zeros.\r\n for (i = 0; str.charCodeAt(i) === 48; i++);\r\n\r\n // Determine trailing zeros.\r\n for (len = str.length; str.charCodeAt(--len) === 48;);\r\n\r\n if (str = str.slice(i, ++len)) {\r\n len -= i;\r\n\r\n // '[BigNumber Error] Number primitive has more than 15 significant digits: {n}'\r\n if (isNum && BigNumber.DEBUG &&\r\n len > 15 && (v > MAX_SAFE_INTEGER || v !== mathfloor(v))) {\r\n throw Error\r\n (tooManyDigits + (x.s * v));\r\n }\r\n\r\n // Overflow?\r\n if ((e = e - i - 1) > MAX_EXP) {\r\n\r\n // Infinity.\r\n x.c = x.e = null;\r\n\r\n // Underflow?\r\n } else if (e < MIN_EXP) {\r\n\r\n // Zero.\r\n x.c = [x.e = 0];\r\n } else {\r\n x.e = e;\r\n x.c = [];\r\n\r\n // Transform base\r\n\r\n // e is the base 10 exponent.\r\n // i is where to slice str to get the first element of the coefficient array.\r\n i = (e + 1) % LOG_BASE;\r\n if (e < 0) i += LOG_BASE; // i < 1\r\n\r\n if (i < len) {\r\n if (i) x.c.push(+str.slice(0, i));\r\n\r\n for (len -= LOG_BASE; i < len;) {\r\n x.c.push(+str.slice(i, i += LOG_BASE));\r\n }\r\n\r\n i = LOG_BASE - (str = str.slice(i)).length;\r\n } else {\r\n i -= len;\r\n }\r\n\r\n for (; i--; str += '0');\r\n x.c.push(+str);\r\n }\r\n } else {\r\n\r\n // Zero.\r\n x.c = [x.e = 0];\r\n }\r\n }\r\n\r\n\r\n // CONSTRUCTOR PROPERTIES\r\n\r\n\r\n BigNumber.clone = clone;\r\n\r\n BigNumber.ROUND_UP = 0;\r\n BigNumber.ROUND_DOWN = 1;\r\n BigNumber.ROUND_CEIL = 2;\r\n BigNumber.ROUND_FLOOR = 3;\r\n BigNumber.ROUND_HALF_UP = 4;\r\n BigNumber.ROUND_HALF_DOWN = 5;\r\n BigNumber.ROUND_HALF_EVEN = 6;\r\n BigNumber.ROUND_HALF_CEIL = 7;\r\n BigNumber.ROUND_HALF_FLOOR = 8;\r\n BigNumber.EUCLID = 9;\r\n\r\n\r\n /*\r\n * Configure infrequently-changing library-wide settings.\r\n *\r\n * Accept an object with the following optional properties (if the value of a property is\r\n * a number, it must be an integer within the inclusive range stated):\r\n *\r\n * DECIMAL_PLACES {number} 0 to MAX\r\n * ROUNDING_MODE {number} 0 to 8\r\n * EXPONENTIAL_AT {number|number[]} -MAX to MAX or [-MAX to 0, 0 to MAX]\r\n * RANGE {number|number[]} -MAX to MAX (not zero) or [-MAX to -1, 1 to MAX]\r\n * CRYPTO {boolean} true or false\r\n * MODULO_MODE {number} 0 to 9\r\n * POW_PRECISION {number} 0 to MAX\r\n * ALPHABET {string} A string of two or more unique characters which does\r\n * not contain '.'.\r\n * FORMAT {object} An object with some of the following properties:\r\n * prefix {string}\r\n * groupSize {number}\r\n * secondaryGroupSize {number}\r\n * groupSeparator {string}\r\n * decimalSeparator {string}\r\n * fractionGroupSize {number}\r\n * fractionGroupSeparator {string}\r\n * suffix {string}\r\n *\r\n * (The values assigned to the above FORMAT object properties are not checked for validity.)\r\n *\r\n * E.g.\r\n * BigNumber.config({ DECIMAL_PLACES : 20, ROUNDING_MODE : 4 })\r\n *\r\n * Ignore properties/parameters set to null or undefined, except for ALPHABET.\r\n *\r\n * Return an object with the properties current values.\r\n */\r\n BigNumber.config = BigNumber.set = function (obj) {\r\n var p, v;\r\n\r\n if (obj != null) {\r\n\r\n if (typeof obj == 'object') {\r\n\r\n // DECIMAL_PLACES {number} Integer, 0 to MAX inclusive.\r\n // '[BigNumber Error] DECIMAL_PLACES {not a primitive number|not an integer|out of range}: {v}'\r\n if (obj.hasOwnProperty(p = 'DECIMAL_PLACES')) {\r\n v = obj[p];\r\n intCheck(v, 0, MAX, p);\r\n DECIMAL_PLACES = v;\r\n }\r\n\r\n // ROUNDING_MODE {number} Integer, 0 to 8 inclusive.\r\n // '[BigNumber Error] ROUNDING_MODE {not a primitive number|not an integer|out of range}: {v}'\r\n if (obj.hasOwnProperty(p = 'ROUNDING_MODE')) {\r\n v = obj[p];\r\n intCheck(v, 0, 8, p);\r\n ROUNDING_MODE = v;\r\n }\r\n\r\n // EXPONENTIAL_AT {number|number[]}\r\n // Integer, -MAX to MAX inclusive or\r\n // [integer -MAX to 0 inclusive, 0 to MAX inclusive].\r\n // '[BigNumber Error] EXPONENTIAL_AT {not a primitive number|not an integer|out of range}: {v}'\r\n if (obj.hasOwnProperty(p = 'EXPONENTIAL_AT')) {\r\n v = obj[p];\r\n if (v && v.pop) {\r\n intCheck(v[0], -MAX, 0, p);\r\n intCheck(v[1], 0, MAX, p);\r\n TO_EXP_NEG = v[0];\r\n TO_EXP_POS = v[1];\r\n } else {\r\n intCheck(v, -MAX, MAX, p);\r\n TO_EXP_NEG = -(TO_EXP_POS = v < 0 ? -v : v);\r\n }\r\n }\r\n\r\n // RANGE {number|number[]} Non-zero integer, -MAX to MAX inclusive or\r\n // [integer -MAX to -1 inclusive, integer 1 to MAX inclusive].\r\n // '[BigNumber Error] RANGE {not a primitive number|not an integer|out of range|cannot be zero}: {v}'\r\n if (obj.hasOwnProperty(p = 'RANGE')) {\r\n v = obj[p];\r\n if (v && v.pop) {\r\n intCheck(v[0], -MAX, -1, p);\r\n intCheck(v[1], 1, MAX, p);\r\n MIN_EXP = v[0];\r\n MAX_EXP = v[1];\r\n } else {\r\n intCheck(v, -MAX, MAX, p);\r\n if (v) {\r\n MIN_EXP = -(MAX_EXP = v < 0 ? -v : v);\r\n } else {\r\n throw Error\r\n (bignumberError + p + ' cannot be zero: ' + v);\r\n }\r\n }\r\n }\r\n\r\n // CRYPTO {boolean} true or false.\r\n // '[BigNumber Error] CRYPTO not true or false: {v}'\r\n // '[BigNumber Error] crypto unavailable'\r\n if (obj.hasOwnProperty(p = 'CRYPTO')) {\r\n v = obj[p];\r\n if (v === !!v) {\r\n if (v) {\r\n if (typeof crypto != 'undefined' && crypto &&\r\n (crypto.getRandomValues || crypto.randomBytes)) {\r\n CRYPTO = v;\r\n } else {\r\n CRYPTO = !v;\r\n throw Error\r\n (bignumberError + 'crypto unavailable');\r\n }\r\n } else {\r\n CRYPTO = v;\r\n }\r\n } else {\r\n throw Error\r\n (bignumberError + p + ' not true or false: ' + v);\r\n }\r\n }\r\n\r\n // MODULO_MODE {number} Integer, 0 to 9 inclusive.\r\n // '[BigNumber Error] MODULO_MODE {not a primitive number|not an integer|out of range}: {v}'\r\n if (obj.hasOwnProperty(p = 'MODULO_MODE')) {\r\n v = obj[p];\r\n intCheck(v, 0, 9, p);\r\n MODULO_MODE = v;\r\n }\r\n\r\n // POW_PRECISION {number} Integer, 0 to MAX inclusive.\r\n // '[BigNumber Error] POW_PRECISION {not a primitive number|not an integer|out of range}: {v}'\r\n if (obj.hasOwnProperty(p = 'POW_PRECISION')) {\r\n v = obj[p];\r\n intCheck(v, 0, MAX, p);\r\n POW_PRECISION = v;\r\n }\r\n\r\n // FORMAT {object}\r\n // '[BigNumber Error] FORMAT not an object: {v}'\r\n if (obj.hasOwnProperty(p = 'FORMAT')) {\r\n v = obj[p];\r\n if (typeof v == 'object') FORMAT = v;\r\n else throw Error\r\n (bignumberError + p + ' not an object: ' + v);\r\n }\r\n\r\n // ALPHABET {string}\r\n // '[BigNumber Error] ALPHABET invalid: {v}'\r\n if (obj.hasOwnProperty(p = 'ALPHABET')) {\r\n v = obj[p];\r\n\r\n // Disallow if less than two characters,\r\n // or if it contains '+', '-', '.', whitespace, or a repeated character.\r\n if (typeof v == 'string' && !/^.?$|[+\\-.\\s]|(.).*\\1/.test(v)) {\r\n alphabetHasNormalDecimalDigits = v.slice(0, 10) == '0123456789';\r\n ALPHABET = v;\r\n } else {\r\n throw Error\r\n (bignumberError + p + ' invalid: ' + v);\r\n }\r\n }\r\n\r\n } else {\r\n\r\n // '[BigNumber Error] Object expected: {v}'\r\n throw Error\r\n (bignumberError + 'Object expected: ' + obj);\r\n }\r\n }\r\n\r\n return {\r\n DECIMAL_PLACES: DECIMAL_PLACES,\r\n ROUNDING_MODE: ROUNDING_MODE,\r\n EXPONENTIAL_AT: [TO_EXP_NEG, TO_EXP_POS],\r\n RANGE: [MIN_EXP, MAX_EXP],\r\n CRYPTO: CRYPTO,\r\n MODULO_MODE: MODULO_MODE,\r\n POW_PRECISION: POW_PRECISION,\r\n FORMAT: FORMAT,\r\n ALPHABET: ALPHABET\r\n };\r\n };\r\n\r\n\r\n /*\r\n * Return true if v is a BigNumber instance, otherwise return false.\r\n *\r\n * If BigNumber.DEBUG is true, throw if a BigNumber instance is not well-formed.\r\n *\r\n * v {any}\r\n *\r\n * '[BigNumber Error] Invalid BigNumber: {v}'\r\n */\r\n BigNumber.isBigNumber = function (v) {\r\n if (!v || v._isBigNumber !== true) return false;\r\n if (!BigNumber.DEBUG) return true;\r\n\r\n var i, n,\r\n c = v.c,\r\n e = v.e,\r\n s = v.s;\r\n\r\n out: if ({}.toString.call(c) == '[object Array]') {\r\n\r\n if ((s === 1 || s === -1) && e >= -MAX && e <= MAX && e === mathfloor(e)) {\r\n\r\n // If the first element is zero, the BigNumber value must be zero.\r\n if (c[0] === 0) {\r\n if (e === 0 && c.length === 1) return true;\r\n break out;\r\n }\r\n\r\n // Calculate number of digits that c[0] should have, based on the exponent.\r\n i = (e + 1) % LOG_BASE;\r\n if (i < 1) i += LOG_BASE;\r\n\r\n // Calculate number of digits of c[0].\r\n //if (Math.ceil(Math.log(c[0] + 1) / Math.LN10) == i) {\r\n if (String(c[0]).length == i) {\r\n\r\n for (i = 0; i < c.length; i++) {\r\n n = c[i];\r\n if (n < 0 || n >= BASE || n !== mathfloor(n)) break out;\r\n }\r\n\r\n // Last element cannot be zero, unless it is the only element.\r\n if (n !== 0) return true;\r\n }\r\n }\r\n\r\n // Infinity/NaN\r\n } else if (c === null && e === null && (s === null || s === 1 || s === -1)) {\r\n return true;\r\n }\r\n\r\n throw Error\r\n (bignumberError + 'Invalid BigNumber: ' + v);\r\n };\r\n\r\n\r\n /*\r\n * Return a new BigNumber whose value is the maximum of the arguments.\r\n *\r\n * arguments {number|string|BigNumber}\r\n */\r\n BigNumber.maximum = BigNumber.max = function () {\r\n return maxOrMin(arguments, P.lt);\r\n };\r\n\r\n\r\n /*\r\n * Return a new BigNumber whose value is the minimum of the arguments.\r\n *\r\n * arguments {number|string|BigNumber}\r\n */\r\n BigNumber.minimum = BigNumber.min = function () {\r\n return maxOrMin(arguments, P.gt);\r\n };\r\n\r\n\r\n /*\r\n * Return a new BigNumber with a random value equal to or greater than 0 and less than 1,\r\n * and with dp, or DECIMAL_PLACES if dp is omitted, decimal places (or less if trailing\r\n * zeros are produced).\r\n *\r\n * [dp] {number} Decimal places. Integer, 0 to MAX inclusive.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {dp}'\r\n * '[BigNumber Error] crypto unavailable'\r\n */\r\n BigNumber.random = (function () {\r\n var pow2_53 = 0x20000000000000;\r\n\r\n // Return a 53 bit integer n, where 0 <= n < 9007199254740992.\r\n // Check if Math.random() produces more than 32 bits of randomness.\r\n // If it does, assume at least 53 bits are produced, otherwise assume at least 30 bits.\r\n // 0x40000000 is 2^30, 0x800000 is 2^23, 0x1fffff is 2^21 - 1.\r\n var random53bitInt = (Math.random() * pow2_53) & 0x1fffff\r\n ? function () { return mathfloor(Math.random() * pow2_53); }\r\n : function () { return ((Math.random() * 0x40000000 | 0) * 0x800000) +\r\n (Math.random() * 0x800000 | 0); };\r\n\r\n return function (dp) {\r\n var a, b, e, k, v,\r\n i = 0,\r\n c = [],\r\n rand = new BigNumber(ONE);\r\n\r\n if (dp == null) dp = DECIMAL_PLACES;\r\n else intCheck(dp, 0, MAX);\r\n\r\n k = mathceil(dp / LOG_BASE);\r\n\r\n if (CRYPTO) {\r\n\r\n // Browsers supporting crypto.getRandomValues.\r\n if (crypto.getRandomValues) {\r\n\r\n a = crypto.getRandomValues(new Uint32Array(k *= 2));\r\n\r\n for (; i < k;) {\r\n\r\n // 53 bits:\r\n // ((Math.pow(2, 32) - 1) * Math.pow(2, 21)).toString(2)\r\n // 11111 11111111 11111111 11111111 11100000 00000000 00000000\r\n // ((Math.pow(2, 32) - 1) >>> 11).toString(2)\r\n // 11111 11111111 11111111\r\n // 0x20000 is 2^21.\r\n v = a[i] * 0x20000 + (a[i + 1] >>> 11);\r\n\r\n // Rejection sampling:\r\n // 0 <= v < 9007199254740992\r\n // Probability that v >= 9e15, is\r\n // 7199254740992 / 9007199254740992 ~= 0.0008, i.e. 1 in 1251\r\n if (v >= 9e15) {\r\n b = crypto.getRandomValues(new Uint32Array(2));\r\n a[i] = b[0];\r\n a[i + 1] = b[1];\r\n } else {\r\n\r\n // 0 <= v <= 8999999999999999\r\n // 0 <= (v % 1e14) <= 99999999999999\r\n c.push(v % 1e14);\r\n i += 2;\r\n }\r\n }\r\n i = k / 2;\r\n\r\n // Node.js supporting crypto.randomBytes.\r\n } else if (crypto.randomBytes) {\r\n\r\n // buffer\r\n a = crypto.randomBytes(k *= 7);\r\n\r\n for (; i < k;) {\r\n\r\n // 0x1000000000000 is 2^48, 0x10000000000 is 2^40\r\n // 0x100000000 is 2^32, 0x1000000 is 2^24\r\n // 11111 11111111 11111111 11111111 11111111 11111111 11111111\r\n // 0 <= v < 9007199254740992\r\n v = ((a[i] & 31) * 0x1000000000000) + (a[i + 1] * 0x10000000000) +\r\n (a[i + 2] * 0x100000000) + (a[i + 3] * 0x1000000) +\r\n (a[i + 4] << 16) + (a[i + 5] << 8) + a[i + 6];\r\n\r\n if (v >= 9e15) {\r\n crypto.randomBytes(7).copy(a, i);\r\n } else {\r\n\r\n // 0 <= (v % 1e14) <= 99999999999999\r\n c.push(v % 1e14);\r\n i += 7;\r\n }\r\n }\r\n i = k / 7;\r\n } else {\r\n CRYPTO = false;\r\n throw Error\r\n (bignumberError + 'crypto unavailable');\r\n }\r\n }\r\n\r\n // Use Math.random.\r\n if (!CRYPTO) {\r\n\r\n for (; i < k;) {\r\n v = random53bitInt();\r\n if (v < 9e15) c[i++] = v % 1e14;\r\n }\r\n }\r\n\r\n k = c[--i];\r\n dp %= LOG_BASE;\r\n\r\n // Convert trailing digits to zeros according to dp.\r\n if (k && dp) {\r\n v = POWS_TEN[LOG_BASE - dp];\r\n c[i] = mathfloor(k / v) * v;\r\n }\r\n\r\n // Remove trailing elements which are zero.\r\n for (; c[i] === 0; c.pop(), i--);\r\n\r\n // Zero?\r\n if (i < 0) {\r\n c = [e = 0];\r\n } else {\r\n\r\n // Remove leading elements which are zero and adjust exponent accordingly.\r\n for (e = -1 ; c[0] === 0; c.splice(0, 1), e -= LOG_BASE);\r\n\r\n // Count the digits of the first element of c to determine leading zeros, and...\r\n for (i = 1, v = c[0]; v >= 10; v /= 10, i++);\r\n\r\n // adjust the exponent accordingly.\r\n if (i < LOG_BASE) e -= LOG_BASE - i;\r\n }\r\n\r\n rand.e = e;\r\n rand.c = c;\r\n return rand;\r\n };\r\n })();\r\n\r\n\r\n /*\r\n * Return a BigNumber whose value is the sum of the arguments.\r\n *\r\n * arguments {number|string|BigNumber}\r\n */\r\n BigNumber.sum = function () {\r\n var i = 1,\r\n args = arguments,\r\n sum = new BigNumber(args[0]);\r\n for (; i < args.length;) sum = sum.plus(args[i++]);\r\n return sum;\r\n };\r\n\r\n\r\n // PRIVATE FUNCTIONS\r\n\r\n\r\n // Called by BigNumber and BigNumber.prototype.toString.\r\n convertBase = (function () {\r\n var decimal = '0123456789';\r\n\r\n /*\r\n * Convert string of baseIn to an array of numbers of baseOut.\r\n * Eg. toBaseOut('255', 10, 16) returns [15, 15].\r\n * Eg. toBaseOut('ff', 16, 10) returns [2, 5, 5].\r\n */\r\n function toBaseOut(str, baseIn, baseOut, alphabet) {\r\n var j,\r\n arr = [0],\r\n arrL,\r\n i = 0,\r\n len = str.length;\r\n\r\n for (; i < len;) {\r\n for (arrL = arr.length; arrL--; arr[arrL] *= baseIn);\r\n\r\n arr[0] += alphabet.indexOf(str.charAt(i++));\r\n\r\n for (j = 0; j < arr.length; j++) {\r\n\r\n if (arr[j] > baseOut - 1) {\r\n if (arr[j + 1] == null) arr[j + 1] = 0;\r\n arr[j + 1] += arr[j] / baseOut | 0;\r\n arr[j] %= baseOut;\r\n }\r\n }\r\n }\r\n\r\n return arr.reverse();\r\n }\r\n\r\n // Convert a numeric string of baseIn to a numeric string of baseOut.\r\n // If the caller is toString, we are converting from base 10 to baseOut.\r\n // If the caller is BigNumber, we are converting from baseIn to base 10.\r\n return function (str, baseIn, baseOut, sign, callerIsToString) {\r\n var alphabet, d, e, k, r, x, xc, y,\r\n i = str.indexOf('.'),\r\n dp = DECIMAL_PLACES,\r\n rm = ROUNDING_MODE;\r\n\r\n // Non-integer.\r\n if (i >= 0) {\r\n k = POW_PRECISION;\r\n\r\n // Unlimited precision.\r\n POW_PRECISION = 0;\r\n str = str.replace('.', '');\r\n y = new BigNumber(baseIn);\r\n x = y.pow(str.length - i);\r\n POW_PRECISION = k;\r\n\r\n // Convert str as if an integer, then restore the fraction part by dividing the\r\n // result by its base raised to a power.\r\n\r\n y.c = toBaseOut(toFixedPoint(coeffToString(x.c), x.e, '0'),\r\n 10, baseOut, decimal);\r\n y.e = y.c.length;\r\n }\r\n\r\n // Convert the number as integer.\r\n\r\n xc = toBaseOut(str, baseIn, baseOut, callerIsToString\r\n ? (alphabet = ALPHABET, decimal)\r\n : (alphabet = decimal, ALPHABET));\r\n\r\n // xc now represents str as an integer and converted to baseOut. e is the exponent.\r\n e = k = xc.length;\r\n\r\n // Remove trailing zeros.\r\n for (; xc[--k] == 0; xc.pop());\r\n\r\n // Zero?\r\n if (!xc[0]) return alphabet.charAt(0);\r\n\r\n // Does str represent an integer? If so, no need for the division.\r\n if (i < 0) {\r\n --e;\r\n } else {\r\n x.c = xc;\r\n x.e = e;\r\n\r\n // The sign is needed for correct rounding.\r\n x.s = sign;\r\n x = div(x, y, dp, rm, baseOut);\r\n xc = x.c;\r\n r = x.r;\r\n e = x.e;\r\n }\r\n\r\n // xc now represents str converted to baseOut.\r\n\r\n // THe index of the rounding digit.\r\n d = e + dp + 1;\r\n\r\n // The rounding digit: the digit to the right of the digit that may be rounded up.\r\n i = xc[d];\r\n\r\n // Look at the rounding digits and mode to determine whether to round up.\r\n\r\n k = baseOut / 2;\r\n r = r || d < 0 || xc[d + 1] != null;\r\n\r\n r = rm < 4 ? (i != null || r) && (rm == 0 || rm == (x.s < 0 ? 3 : 2))\r\n : i > k || i == k &&(rm == 4 || r || rm == 6 && xc[d - 1] & 1 ||\r\n rm == (x.s < 0 ? 8 : 7));\r\n\r\n // If the index of the rounding digit is not greater than zero, or xc represents\r\n // zero, then the result of the base conversion is zero or, if rounding up, a value\r\n // such as 0.00001.\r\n if (d < 1 || !xc[0]) {\r\n\r\n // 1^-dp or 0\r\n str = r ? toFixedPoint(alphabet.charAt(1), -dp, alphabet.charAt(0)) : alphabet.charAt(0);\r\n } else {\r\n\r\n // Truncate xc to the required number of decimal places.\r\n xc.length = d;\r\n\r\n // Round up?\r\n if (r) {\r\n\r\n // Rounding up may mean the previous digit has to be rounded up and so on.\r\n for (--baseOut; ++xc[--d] > baseOut;) {\r\n xc[d] = 0;\r\n\r\n if (!d) {\r\n ++e;\r\n xc = [1].concat(xc);\r\n }\r\n }\r\n }\r\n\r\n // Determine trailing zeros.\r\n for (k = xc.length; !xc[--k];);\r\n\r\n // E.g. [4, 11, 15] becomes 4bf.\r\n for (i = 0, str = ''; i <= k; str += alphabet.charAt(xc[i++]));\r\n\r\n // Add leading zeros, decimal point and trailing zeros as required.\r\n str = toFixedPoint(str, e, alphabet.charAt(0));\r\n }\r\n\r\n // The caller will add the sign.\r\n return str;\r\n };\r\n })();\r\n\r\n\r\n // Perform division in the specified base. Called by div and convertBase.\r\n div = (function () {\r\n\r\n // Assume non-zero x and k.\r\n function multiply(x, k, base) {\r\n var m, temp, xlo, xhi,\r\n carry = 0,\r\n i = x.length,\r\n klo = k % SQRT_BASE,\r\n khi = k / SQRT_BASE | 0;\r\n\r\n for (x = x.slice(); i--;) {\r\n xlo = x[i] % SQRT_BASE;\r\n xhi = x[i] / SQRT_BASE | 0;\r\n m = khi * xlo + xhi * klo;\r\n temp = klo * xlo + ((m % SQRT_BASE) * SQRT_BASE) + carry;\r\n carry = (temp / base | 0) + (m / SQRT_BASE | 0) + khi * xhi;\r\n x[i] = temp % base;\r\n }\r\n\r\n if (carry) x = [carry].concat(x);\r\n\r\n return x;\r\n }\r\n\r\n function compare(a, b, aL, bL) {\r\n var i, cmp;\r\n\r\n if (aL != bL) {\r\n cmp = aL > bL ? 1 : -1;\r\n } else {\r\n\r\n for (i = cmp = 0; i < aL; i++) {\r\n\r\n if (a[i] != b[i]) {\r\n cmp = a[i] > b[i] ? 1 : -1;\r\n break;\r\n }\r\n }\r\n }\r\n\r\n return cmp;\r\n }\r\n\r\n function subtract(a, b, aL, base) {\r\n var i = 0;\r\n\r\n // Subtract b from a.\r\n for (; aL--;) {\r\n a[aL] -= i;\r\n i = a[aL] < b[aL] ? 1 : 0;\r\n a[aL] = i * base + a[aL] - b[aL];\r\n }\r\n\r\n // Remove leading zeros.\r\n for (; !a[0] && a.length > 1; a.splice(0, 1));\r\n }\r\n\r\n // x: dividend, y: divisor.\r\n return function (x, y, dp, rm, base) {\r\n var cmp, e, i, more, n, prod, prodL, q, qc, rem, remL, rem0, xi, xL, yc0,\r\n yL, yz,\r\n s = x.s == y.s ? 1 : -1,\r\n xc = x.c,\r\n yc = y.c;\r\n\r\n // Either NaN, Infinity or 0?\r\n if (!xc || !xc[0] || !yc || !yc[0]) {\r\n\r\n return new BigNumber(\r\n\r\n // Return NaN if either NaN, or both Infinity or 0.\r\n !x.s || !y.s || (xc ? yc && xc[0] == yc[0] : !yc) ? NaN :\r\n\r\n // Return \u00B10 if x is \u00B10 or y is \u00B1Infinity, or return \u00B1Infinity as y is \u00B10.\r\n xc && xc[0] == 0 || !yc ? s * 0 : s / 0\r\n );\r\n }\r\n\r\n q = new BigNumber(s);\r\n qc = q.c = [];\r\n e = x.e - y.e;\r\n s = dp + e + 1;\r\n\r\n if (!base) {\r\n base = BASE;\r\n e = bitFloor(x.e / LOG_BASE) - bitFloor(y.e / LOG_BASE);\r\n s = s / LOG_BASE | 0;\r\n }\r\n\r\n // Result exponent may be one less then the current value of e.\r\n // The coefficients of the BigNumbers from convertBase may have trailing zeros.\r\n for (i = 0; yc[i] == (xc[i] || 0); i++);\r\n\r\n if (yc[i] > (xc[i] || 0)) e--;\r\n\r\n if (s < 0) {\r\n qc.push(1);\r\n more = true;\r\n } else {\r\n xL = xc.length;\r\n yL = yc.length;\r\n i = 0;\r\n s += 2;\r\n\r\n // Normalise xc and yc so highest order digit of yc is >= base / 2.\r\n\r\n n = mathfloor(base / (yc[0] + 1));\r\n\r\n // Not necessary, but to handle odd bases where yc[0] == (base / 2) - 1.\r\n // if (n > 1 || n++ == 1 && yc[0] < base / 2) {\r\n if (n > 1) {\r\n yc = multiply(yc, n, base);\r\n xc = multiply(xc, n, base);\r\n yL = yc.length;\r\n xL = xc.length;\r\n }\r\n\r\n xi = yL;\r\n rem = xc.slice(0, yL);\r\n remL = rem.length;\r\n\r\n // Add zeros to make remainder as long as divisor.\r\n for (; remL < yL; rem[remL++] = 0);\r\n yz = yc.slice();\r\n yz = [0].concat(yz);\r\n yc0 = yc[0];\r\n if (yc[1] >= base / 2) yc0++;\r\n // Not necessary, but to prevent trial digit n > base, when using base 3.\r\n // else if (base == 3 && yc0 == 1) yc0 = 1 + 1e-15;\r\n\r\n do {\r\n n = 0;\r\n\r\n // Compare divisor and remainder.\r\n cmp = compare(yc, rem, yL, remL);\r\n\r\n // If divisor < remainder.\r\n if (cmp < 0) {\r\n\r\n // Calculate trial digit, n.\r\n\r\n rem0 = rem[0];\r\n if (yL != remL) rem0 = rem0 * base + (rem[1] || 0);\r\n\r\n // n is how many times the divisor goes into the current remainder.\r\n n = mathfloor(rem0 / yc0);\r\n\r\n // Algorithm:\r\n // product = divisor multiplied by trial digit (n).\r\n // Compare product and remainder.\r\n // If product is greater than remainder:\r\n // Subtract divisor from product, decrement trial digit.\r\n // Subtract product from remainder.\r\n // If product was less than remainder at the last compare:\r\n // Compare new remainder and divisor.\r\n // If remainder is greater than divisor:\r\n // Subtract divisor from remainder, increment trial digit.\r\n\r\n if (n > 1) {\r\n\r\n // n may be > base only when base is 3.\r\n if (n >= base) n = base - 1;\r\n\r\n // product = divisor * trial digit.\r\n prod = multiply(yc, n, base);\r\n prodL = prod.length;\r\n remL = rem.length;\r\n\r\n // Compare product and remainder.\r\n // If product > remainder then trial digit n too high.\r\n // n is 1 too high about 5% of the time, and is not known to have\r\n // ever been more than 1 too high.\r\n while (compare(prod, rem, prodL, remL) == 1) {\r\n n--;\r\n\r\n // Subtract divisor from product.\r\n subtract(prod, yL < prodL ? yz : yc, prodL, base);\r\n prodL = prod.length;\r\n cmp = 1;\r\n }\r\n } else {\r\n\r\n // n is 0 or 1, cmp is -1.\r\n // If n is 0, there is no need to compare yc and rem again below,\r\n // so change cmp to 1 to avoid it.\r\n // If n is 1, leave cmp as -1, so yc and rem are compared again.\r\n if (n == 0) {\r\n\r\n // divisor < remainder, so n must be at least 1.\r\n cmp = n = 1;\r\n }\r\n\r\n // product = divisor\r\n prod = yc.slice();\r\n prodL = prod.length;\r\n }\r\n\r\n if (prodL < remL) prod = [0].concat(prod);\r\n\r\n // Subtract product from remainder.\r\n subtract(rem, prod, remL, base);\r\n remL = rem.length;\r\n\r\n // If product was < remainder.\r\n if (cmp == -1) {\r\n\r\n // Compare divisor and new remainder.\r\n // If divisor < new remainder, subtract divisor from remainder.\r\n // Trial digit n too low.\r\n // n is 1 too low about 5% of the time, and very rarely 2 too low.\r\n while (compare(yc, rem, yL, remL) < 1) {\r\n n++;\r\n\r\n // Subtract divisor from remainder.\r\n subtract(rem, yL < remL ? yz : yc, remL, base);\r\n remL = rem.length;\r\n }\r\n }\r\n } else if (cmp === 0) {\r\n n++;\r\n rem = [0];\r\n } // else cmp === 1 and n will be 0\r\n\r\n // Add the next digit, n, to the result array.\r\n qc[i++] = n;\r\n\r\n // Update the remainder.\r\n if (rem[0]) {\r\n rem[remL++] = xc[xi] || 0;\r\n } else {\r\n rem = [xc[xi]];\r\n remL = 1;\r\n }\r\n } while ((xi++ < xL || rem[0] != null) && s--);\r\n\r\n more = rem[0] != null;\r\n\r\n // Leading zero?\r\n if (!qc[0]) qc.splice(0, 1);\r\n }\r\n\r\n if (base == BASE) {\r\n\r\n // To calculate q.e, first get the number of digits of qc[0].\r\n for (i = 1, s = qc[0]; s >= 10; s /= 10, i++);\r\n\r\n round(q, dp + (q.e = i + e * LOG_BASE - 1) + 1, rm, more);\r\n\r\n // Caller is convertBase.\r\n } else {\r\n q.e = e;\r\n q.r = +more;\r\n }\r\n\r\n return q;\r\n };\r\n })();\r\n\r\n\r\n /*\r\n * Return a string representing the value of BigNumber n in fixed-point or exponential\r\n * notation rounded to the specified decimal places or significant digits.\r\n *\r\n * n: a BigNumber.\r\n * i: the index of the last digit required (i.e. the digit that may be rounded up).\r\n * rm: the rounding mode.\r\n * id: 1 (toExponential) or 2 (toPrecision).\r\n */\r\n function format(n, i, rm, id) {\r\n var c0, e, ne, len, str;\r\n\r\n if (rm == null) rm = ROUNDING_MODE;\r\n else intCheck(rm, 0, 8);\r\n\r\n if (!n.c) return n.toString();\r\n\r\n c0 = n.c[0];\r\n ne = n.e;\r\n\r\n if (i == null) {\r\n str = coeffToString(n.c);\r\n str = id == 1 || id == 2 && (ne <= TO_EXP_NEG || ne >= TO_EXP_POS)\r\n ? toExponential(str, ne)\r\n : toFixedPoint(str, ne, '0');\r\n } else {\r\n n = round(new BigNumber(n), i, rm);\r\n\r\n // n.e may have changed if the value was rounded up.\r\n e = n.e;\r\n\r\n str = coeffToString(n.c);\r\n len = str.length;\r\n\r\n // toPrecision returns exponential notation if the number of significant digits\r\n // specified is less than the number of digits necessary to represent the integer\r\n // part of the value in fixed-point notation.\r\n\r\n // Exponential notation.\r\n if (id == 1 || id == 2 && (i <= e || e <= TO_EXP_NEG)) {\r\n\r\n // Append zeros?\r\n for (; len < i; str += '0', len++);\r\n str = toExponential(str, e);\r\n\r\n // Fixed-point notation.\r\n } else {\r\n i -= ne;\r\n str = toFixedPoint(str, e, '0');\r\n\r\n // Append zeros?\r\n if (e + 1 > len) {\r\n if (--i > 0) for (str += '.'; i--; str += '0');\r\n } else {\r\n i += e - len;\r\n if (i > 0) {\r\n if (e + 1 == len) str += '.';\r\n for (; i--; str += '0');\r\n }\r\n }\r\n }\r\n }\r\n\r\n return n.s < 0 && c0 ? '-' + str : str;\r\n }\r\n\r\n\r\n // Handle BigNumber.max and BigNumber.min.\r\n function maxOrMin(args, method) {\r\n var n,\r\n i = 1,\r\n m = new BigNumber(args[0]);\r\n\r\n for (; i < args.length; i++) {\r\n n = new BigNumber(args[i]);\r\n\r\n // If any number is NaN, return NaN.\r\n if (!n.s) {\r\n m = n;\r\n break;\r\n } else if (method.call(m, n)) {\r\n m = n;\r\n }\r\n }\r\n\r\n return m;\r\n }\r\n\r\n\r\n /*\r\n * Strip trailing zeros, calculate base 10 exponent and check against MIN_EXP and MAX_EXP.\r\n * Called by minus, plus and times.\r\n */\r\n function normalise(n, c, e) {\r\n var i = 1,\r\n j = c.length;\r\n\r\n // Remove trailing zeros.\r\n for (; !c[--j]; c.pop());\r\n\r\n // Calculate the base 10 exponent. First get the number of digits of c[0].\r\n for (j = c[0]; j >= 10; j /= 10, i++);\r\n\r\n // Overflow?\r\n if ((e = i + e * LOG_BASE - 1) > MAX_EXP) {\r\n\r\n // Infinity.\r\n n.c = n.e = null;\r\n\r\n // Underflow?\r\n } else if (e < MIN_EXP) {\r\n\r\n // Zero.\r\n n.c = [n.e = 0];\r\n } else {\r\n n.e = e;\r\n n.c = c;\r\n }\r\n\r\n return n;\r\n }\r\n\r\n\r\n // Handle values that fail the validity test in BigNumber.\r\n parseNumeric = (function () {\r\n var basePrefix = /^(-?)0([xbo])(?=\\w[\\w.]*$)/i,\r\n dotAfter = /^([^.]+)\\.$/,\r\n dotBefore = /^\\.([^.]+)$/,\r\n isInfinityOrNaN = /^-?(Infinity|NaN)$/,\r\n whitespaceOrPlus = /^\\s*\\+(?=[\\w.])|^\\s+|\\s+$/g;\r\n\r\n return function (x, str, isNum, b) {\r\n var base,\r\n s = isNum ? str : str.replace(whitespaceOrPlus, '');\r\n\r\n // No exception on \u00B1Infinity or NaN.\r\n if (isInfinityOrNaN.test(s)) {\r\n x.s = isNaN(s) ? null : s < 0 ? -1 : 1;\r\n } else {\r\n if (!isNum) {\r\n\r\n // basePrefix = /^(-?)0([xbo])(?=\\w[\\w.]*$)/i\r\n s = s.replace(basePrefix, function (m, p1, p2) {\r\n base = (p2 = p2.toLowerCase()) == 'x' ? 16 : p2 == 'b' ? 2 : 8;\r\n return !b || b == base ? p1 : m;\r\n });\r\n\r\n if (b) {\r\n base = b;\r\n\r\n // E.g. '1.' to '1', '.1' to '0.1'\r\n s = s.replace(dotAfter, '$1').replace(dotBefore, '0.$1');\r\n }\r\n\r\n if (str != s) return new BigNumber(s, base);\r\n }\r\n\r\n // '[BigNumber Error] Not a number: {n}'\r\n // '[BigNumber Error] Not a base {b} number: {n}'\r\n if (BigNumber.DEBUG) {\r\n throw Error\r\n (bignumberError + 'Not a' + (b ? ' base ' + b : '') + ' number: ' + str);\r\n }\r\n\r\n // NaN\r\n x.s = null;\r\n }\r\n\r\n x.c = x.e = null;\r\n }\r\n })();\r\n\r\n\r\n /*\r\n * Round x to sd significant digits using rounding mode rm. Check for over/under-flow.\r\n * If r is truthy, it is known that there are more digits after the rounding digit.\r\n */\r\n function round(x, sd, rm, r) {\r\n var d, i, j, k, n, ni, rd,\r\n xc = x.c,\r\n pows10 = POWS_TEN;\r\n\r\n // if x is not Infinity or NaN...\r\n if (xc) {\r\n\r\n // rd is the rounding digit, i.e. the digit after the digit that may be rounded up.\r\n // n is a base 1e14 number, the value of the element of array x.c containing rd.\r\n // ni is the index of n within x.c.\r\n // d is the number of digits of n.\r\n // i is the index of rd within n including leading zeros.\r\n // j is the actual index of rd within n (if < 0, rd is a leading zero).\r\n out: {\r\n\r\n // Get the number of digits of the first element of xc.\r\n for (d = 1, k = xc[0]; k >= 10; k /= 10, d++);\r\n i = sd - d;\r\n\r\n // If the rounding digit is in the first element of xc...\r\n if (i < 0) {\r\n i += LOG_BASE;\r\n j = sd;\r\n n = xc[ni = 0];\r\n\r\n // Get the rounding digit at index j of n.\r\n rd = n / pows10[d - j - 1] % 10 | 0;\r\n } else {\r\n ni = mathceil((i + 1) / LOG_BASE);\r\n\r\n if (ni >= xc.length) {\r\n\r\n if (r) {\r\n\r\n // Needed by sqrt.\r\n for (; xc.length <= ni; xc.push(0));\r\n n = rd = 0;\r\n d = 1;\r\n i %= LOG_BASE;\r\n j = i - LOG_BASE + 1;\r\n } else {\r\n break out;\r\n }\r\n } else {\r\n n = k = xc[ni];\r\n\r\n // Get the number of digits of n.\r\n for (d = 1; k >= 10; k /= 10, d++);\r\n\r\n // Get the index of rd within n.\r\n i %= LOG_BASE;\r\n\r\n // Get the index of rd within n, adjusted for leading zeros.\r\n // The number of leading zeros of n is given by LOG_BASE - d.\r\n j = i - LOG_BASE + d;\r\n\r\n // Get the rounding digit at index j of n.\r\n rd = j < 0 ? 0 : n / pows10[d - j - 1] % 10 | 0;\r\n }\r\n }\r\n\r\n r = r || sd < 0 ||\r\n\r\n // Are there any non-zero digits after the rounding digit?\r\n // The expression n % pows10[d - j - 1] returns all digits of n to the right\r\n // of the digit at j, e.g. if n is 908714 and j is 2, the expression gives 714.\r\n xc[ni + 1] != null || (j < 0 ? n : n % pows10[d - j - 1]);\r\n\r\n r = rm < 4\r\n ? (rd || r) && (rm == 0 || rm == (x.s < 0 ? 3 : 2))\r\n : rd > 5 || rd == 5 && (rm == 4 || r || rm == 6 &&\r\n\r\n // Check whether the digit to the left of the rounding digit is odd.\r\n ((i > 0 ? j > 0 ? n / pows10[d - j] : 0 : xc[ni - 1]) % 10) & 1 ||\r\n rm == (x.s < 0 ? 8 : 7));\r\n\r\n if (sd < 1 || !xc[0]) {\r\n xc.length = 0;\r\n\r\n if (r) {\r\n\r\n // Convert sd to decimal places.\r\n sd -= x.e + 1;\r\n\r\n // 1, 0.1, 0.01, 0.001, 0.0001 etc.\r\n xc[0] = pows10[(LOG_BASE - sd % LOG_BASE) % LOG_BASE];\r\n x.e = -sd || 0;\r\n } else {\r\n\r\n // Zero.\r\n xc[0] = x.e = 0;\r\n }\r\n\r\n return x;\r\n }\r\n\r\n // Remove excess digits.\r\n if (i == 0) {\r\n xc.length = ni;\r\n k = 1;\r\n ni--;\r\n } else {\r\n xc.length = ni + 1;\r\n k = pows10[LOG_BASE - i];\r\n\r\n // E.g. 56700 becomes 56000 if 7 is the rounding digit.\r\n // j > 0 means i > number of leading zeros of n.\r\n xc[ni] = j > 0 ? mathfloor(n / pows10[d - j] % pows10[j]) * k : 0;\r\n }\r\n\r\n // Round up?\r\n if (r) {\r\n\r\n for (; ;) {\r\n\r\n // If the digit to be rounded up is in the first element of xc...\r\n if (ni == 0) {\r\n\r\n // i will be the length of xc[0] before k is added.\r\n for (i = 1, j = xc[0]; j >= 10; j /= 10, i++);\r\n j = xc[0] += k;\r\n for (k = 1; j >= 10; j /= 10, k++);\r\n\r\n // if i != k the length has increased.\r\n if (i != k) {\r\n x.e++;\r\n if (xc[0] == BASE) xc[0] = 1;\r\n }\r\n\r\n break;\r\n } else {\r\n xc[ni] += k;\r\n if (xc[ni] != BASE) break;\r\n xc[ni--] = 0;\r\n k = 1;\r\n }\r\n }\r\n }\r\n\r\n // Remove trailing zeros.\r\n for (i = xc.length; xc[--i] === 0; xc.pop());\r\n }\r\n\r\n // Overflow? Infinity.\r\n if (x.e > MAX_EXP) {\r\n x.c = x.e = null;\r\n\r\n // Underflow? Zero.\r\n } else if (x.e < MIN_EXP) {\r\n x.c = [x.e = 0];\r\n }\r\n }\r\n\r\n return x;\r\n }\r\n\r\n\r\n function valueOf(n) {\r\n var str,\r\n e = n.e;\r\n\r\n if (e === null) return n.toString();\r\n\r\n str = coeffToString(n.c);\r\n\r\n str = e <= TO_EXP_NEG || e >= TO_EXP_POS\r\n ? toExponential(str, e)\r\n : toFixedPoint(str, e, '0');\r\n\r\n return n.s < 0 ? '-' + str : str;\r\n }\r\n\r\n\r\n // PROTOTYPE/INSTANCE METHODS\r\n\r\n\r\n /*\r\n * Return a new BigNumber whose value is the absolute value of this BigNumber.\r\n */\r\n P.absoluteValue = P.abs = function () {\r\n var x = new BigNumber(this);\r\n if (x.s < 0) x.s = 1;\r\n return x;\r\n };\r\n\r\n\r\n /*\r\n * Return\r\n * 1 if the value of this BigNumber is greater than the value of BigNumber(y, b),\r\n * -1 if the value of this BigNumber is less than the value of BigNumber(y, b),\r\n * 0 if they have the same value,\r\n * or null if the value of either is NaN.\r\n */\r\n P.comparedTo = function (y, b) {\r\n return compare(this, new BigNumber(y, b));\r\n };\r\n\r\n\r\n /*\r\n * If dp is undefined or null or true or false, return the number of decimal places of the\r\n * value of this BigNumber, or null if the value of this BigNumber is \u00B1Infinity or NaN.\r\n *\r\n * Otherwise, if dp is a number, return a new BigNumber whose value is the value of this\r\n * BigNumber rounded to a maximum of dp decimal places using rounding mode rm, or\r\n * ROUNDING_MODE if rm is omitted.\r\n *\r\n * [dp] {number} Decimal places: integer, 0 to MAX inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {dp|rm}'\r\n */\r\n P.decimalPlaces = P.dp = function (dp, rm) {\r\n var c, n, v,\r\n x = this;\r\n\r\n if (dp != null) {\r\n intCheck(dp, 0, MAX);\r\n if (rm == null) rm = ROUNDING_MODE;\r\n else intCheck(rm, 0, 8);\r\n\r\n return round(new BigNumber(x), dp + x.e + 1, rm);\r\n }\r\n\r\n if (!(c = x.c)) return null;\r\n n = ((v = c.length - 1) - bitFloor(this.e / LOG_BASE)) * LOG_BASE;\r\n\r\n // Subtract the number of trailing zeros of the last number.\r\n if (v = c[v]) for (; v % 10 == 0; v /= 10, n--);\r\n if (n < 0) n = 0;\r\n\r\n return n;\r\n };\r\n\r\n\r\n /*\r\n * n / 0 = I\r\n * n / N = N\r\n * n / I = 0\r\n * 0 / n = 0\r\n * 0 / 0 = N\r\n * 0 / N = N\r\n * 0 / I = 0\r\n * N / n = N\r\n * N / 0 = N\r\n * N / N = N\r\n * N / I = N\r\n * I / n = I\r\n * I / 0 = I\r\n * I / N = N\r\n * I / I = N\r\n *\r\n * Return a new BigNumber whose value is the value of this BigNumber divided by the value of\r\n * BigNumber(y, b), rounded according to DECIMAL_PLACES and ROUNDING_MODE.\r\n */\r\n P.dividedBy = P.div = function (y, b) {\r\n return div(this, new BigNumber(y, b), DECIMAL_PLACES, ROUNDING_MODE);\r\n };\r\n\r\n\r\n /*\r\n * Return a new BigNumber whose value is the integer part of dividing the value of this\r\n * BigNumber by the value of BigNumber(y, b).\r\n */\r\n P.dividedToIntegerBy = P.idiv = function (y, b) {\r\n return div(this, new BigNumber(y, b), 0, 1);\r\n };\r\n\r\n\r\n /*\r\n * Return a BigNumber whose value is the value of this BigNumber exponentiated by n.\r\n *\r\n * If m is present, return the result modulo m.\r\n * If n is negative round according to DECIMAL_PLACES and ROUNDING_MODE.\r\n * If POW_PRECISION is non-zero and m is not present, round to POW_PRECISION using ROUNDING_MODE.\r\n *\r\n * The modular power operation works efficiently when x, n, and m are integers, otherwise it\r\n * is equivalent to calculating x.exponentiatedBy(n).modulo(m) with a POW_PRECISION of 0.\r\n *\r\n * n {number|string|BigNumber} The exponent. An integer.\r\n * [m] {number|string|BigNumber} The modulus.\r\n *\r\n * '[BigNumber Error] Exponent not an integer: {n}'\r\n */\r\n P.exponentiatedBy = P.pow = function (n, m) {\r\n var half, isModExp, i, k, more, nIsBig, nIsNeg, nIsOdd, y,\r\n x = this;\r\n\r\n n = new BigNumber(n);\r\n\r\n // Allow NaN and \u00B1Infinity, but not other non-integers.\r\n if (n.c && !n.isInteger()) {\r\n throw Error\r\n (bignumberError + 'Exponent not an integer: ' + valueOf(n));\r\n }\r\n\r\n if (m != null) m = new BigNumber(m);\r\n\r\n // Exponent of MAX_SAFE_INTEGER is 15.\r\n nIsBig = n.e > 14;\r\n\r\n // If x is NaN, \u00B1Infinity, \u00B10 or \u00B11, or n is \u00B1Infinity, NaN or \u00B10.\r\n if (!x.c || !x.c[0] || x.c[0] == 1 && !x.e && x.c.length == 1 || !n.c || !n.c[0]) {\r\n\r\n // The sign of the result of pow when x is negative depends on the evenness of n.\r\n // If +n overflows to \u00B1Infinity, the evenness of n would be not be known.\r\n y = new BigNumber(Math.pow(+valueOf(x), nIsBig ? n.s * (2 - isOdd(n)) : +valueOf(n)));\r\n return m ? y.mod(m) : y;\r\n }\r\n\r\n nIsNeg = n.s < 0;\r\n\r\n if (m) {\r\n\r\n // x % m returns NaN if abs(m) is zero, or m is NaN.\r\n if (m.c ? !m.c[0] : !m.s) return new BigNumber(NaN);\r\n\r\n isModExp = !nIsNeg && x.isInteger() && m.isInteger();\r\n\r\n if (isModExp) x = x.mod(m);\r\n\r\n // Overflow to \u00B1Infinity: >=2**1e10 or >=1.0000024**1e15.\r\n // Underflow to \u00B10: <=0.79**1e10 or <=0.9999975**1e15.\r\n } else if (n.e > 9 && (x.e > 0 || x.e < -1 || (x.e == 0\r\n // [1, 240000000]\r\n ? x.c[0] > 1 || nIsBig && x.c[1] >= 24e7\r\n // [80000000000000] [99999750000000]\r\n : x.c[0] < 8e13 || nIsBig && x.c[0] <= 9999975e7))) {\r\n\r\n // If x is negative and n is odd, k = -0, else k = 0.\r\n k = x.s < 0 && isOdd(n) ? -0 : 0;\r\n\r\n // If x >= 1, k = \u00B1Infinity.\r\n if (x.e > -1) k = 1 / k;\r\n\r\n // If n is negative return \u00B10, else return \u00B1Infinity.\r\n return new BigNumber(nIsNeg ? 1 / k : k);\r\n\r\n } else if (POW_PRECISION) {\r\n\r\n // Truncating each coefficient array to a length of k after each multiplication\r\n // equates to truncating significant digits to POW_PRECISION + [28, 41],\r\n // i.e. there will be a minimum of 28 guard digits retained.\r\n k = mathceil(POW_PRECISION / LOG_BASE + 2);\r\n }\r\n\r\n if (nIsBig) {\r\n half = new BigNumber(0.5);\r\n if (nIsNeg) n.s = 1;\r\n nIsOdd = isOdd(n);\r\n } else {\r\n i = Math.abs(+valueOf(n));\r\n nIsOdd = i % 2;\r\n }\r\n\r\n y = new BigNumber(ONE);\r\n\r\n // Performs 54 loop iterations for n of 9007199254740991.\r\n for (; ;) {\r\n\r\n if (nIsOdd) {\r\n y = y.times(x);\r\n if (!y.c) break;\r\n\r\n if (k) {\r\n if (y.c.length > k) y.c.length = k;\r\n } else if (isModExp) {\r\n y = y.mod(m); //y = y.minus(div(y, m, 0, MODULO_MODE).times(m));\r\n }\r\n }\r\n\r\n if (i) {\r\n i = mathfloor(i / 2);\r\n if (i === 0) break;\r\n nIsOdd = i % 2;\r\n } else {\r\n n = n.times(half);\r\n round(n, n.e + 1, 1);\r\n\r\n if (n.e > 14) {\r\n nIsOdd = isOdd(n);\r\n } else {\r\n i = +valueOf(n);\r\n if (i === 0) break;\r\n nIsOdd = i % 2;\r\n }\r\n }\r\n\r\n x = x.times(x);\r\n\r\n if (k) {\r\n if (x.c && x.c.length > k) x.c.length = k;\r\n } else if (isModExp) {\r\n x = x.mod(m); //x = x.minus(div(x, m, 0, MODULO_MODE).times(m));\r\n }\r\n }\r\n\r\n if (isModExp) return y;\r\n if (nIsNeg) y = ONE.div(y);\r\n\r\n return m ? y.mod(m) : k ? round(y, POW_PRECISION, ROUNDING_MODE, more) : y;\r\n };\r\n\r\n\r\n /*\r\n * Return a new BigNumber whose value is the value of this BigNumber rounded to an integer\r\n * using rounding mode rm, or ROUNDING_MODE if rm is omitted.\r\n *\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {rm}'\r\n */\r\n P.integerValue = function (rm) {\r\n var n = new BigNumber(this);\r\n if (rm == null) rm = ROUNDING_MODE;\r\n else intCheck(rm, 0, 8);\r\n return round(n, n.e + 1, rm);\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is equal to the value of BigNumber(y, b),\r\n * otherwise return false.\r\n */\r\n P.isEqualTo = P.eq = function (y, b) {\r\n return compare(this, new BigNumber(y, b)) === 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is a finite number, otherwise return false.\r\n */\r\n P.isFinite = function () {\r\n return !!this.c;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is greater than the value of BigNumber(y, b),\r\n * otherwise return false.\r\n */\r\n P.isGreaterThan = P.gt = function (y, b) {\r\n return compare(this, new BigNumber(y, b)) > 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is greater than or equal to the value of\r\n * BigNumber(y, b), otherwise return false.\r\n */\r\n P.isGreaterThanOrEqualTo = P.gte = function (y, b) {\r\n return (b = compare(this, new BigNumber(y, b))) === 1 || b === 0;\r\n\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is an integer, otherwise return false.\r\n */\r\n P.isInteger = function () {\r\n return !!this.c && bitFloor(this.e / LOG_BASE) > this.c.length - 2;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is less than the value of BigNumber(y, b),\r\n * otherwise return false.\r\n */\r\n P.isLessThan = P.lt = function (y, b) {\r\n return compare(this, new BigNumber(y, b)) < 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is less than or equal to the value of\r\n * BigNumber(y, b), otherwise return false.\r\n */\r\n P.isLessThanOrEqualTo = P.lte = function (y, b) {\r\n return (b = compare(this, new BigNumber(y, b))) === -1 || b === 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is NaN, otherwise return false.\r\n */\r\n P.isNaN = function () {\r\n return !this.s;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is negative, otherwise return false.\r\n */\r\n P.isNegative = function () {\r\n return this.s < 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is positive, otherwise return false.\r\n */\r\n P.isPositive = function () {\r\n return this.s > 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is 0 or -0, otherwise return false.\r\n */\r\n P.isZero = function () {\r\n return !!this.c && this.c[0] == 0;\r\n };\r\n\r\n\r\n /*\r\n * n - 0 = n\r\n * n - N = N\r\n * n - I = -I\r\n * 0 - n = -n\r\n * 0 - 0 = 0\r\n * 0 - N = N\r\n * 0 - I = -I\r\n * N - n = N\r\n * N - 0 = N\r\n * N - N = N\r\n * N - I = N\r\n * I - n = I\r\n * I - 0 = I\r\n * I - N = N\r\n * I - I = N\r\n *\r\n * Return a new BigNumber whose value is the value of this BigNumber minus the value of\r\n * BigNumber(y, b).\r\n */\r\n P.minus = function (y, b) {\r\n var i, j, t, xLTy,\r\n x = this,\r\n a = x.s;\r\n\r\n y = new BigNumber(y, b);\r\n b = y.s;\r\n\r\n // Either NaN?\r\n if (!a || !b) return new BigNumber(NaN);\r\n\r\n // Signs differ?\r\n if (a != b) {\r\n y.s = -b;\r\n return x.plus(y);\r\n }\r\n\r\n var xe = x.e / LOG_BASE,\r\n ye = y.e / LOG_BASE,\r\n xc = x.c,\r\n yc = y.c;\r\n\r\n if (!xe || !ye) {\r\n\r\n // Either Infinity?\r\n if (!xc || !yc) return xc ? (y.s = -b, y) : new BigNumber(yc ? x : NaN);\r\n\r\n // Either zero?\r\n if (!xc[0] || !yc[0]) {\r\n\r\n // Return y if y is non-zero, x if x is non-zero, or zero if both are zero.\r\n return yc[0] ? (y.s = -b, y) : new BigNumber(xc[0] ? x :\r\n\r\n // IEEE 754 (2008) 6.3: n - n = -0 when rounding to -Infinity\r\n ROUNDING_MODE == 3 ? -0 : 0);\r\n }\r\n }\r\n\r\n xe = bitFloor(xe);\r\n ye = bitFloor(ye);\r\n xc = xc.slice();\r\n\r\n // Determine which is the bigger number.\r\n if (a = xe - ye) {\r\n\r\n if (xLTy = a < 0) {\r\n a = -a;\r\n t = xc;\r\n } else {\r\n ye = xe;\r\n t = yc;\r\n }\r\n\r\n t.reverse();\r\n\r\n // Prepend zeros to equalise exponents.\r\n for (b = a; b--; t.push(0));\r\n t.reverse();\r\n } else {\r\n\r\n // Exponents equal. Check digit by digit.\r\n j = (xLTy = (a = xc.length) < (b = yc.length)) ? a : b;\r\n\r\n for (a = b = 0; b < j; b++) {\r\n\r\n if (xc[b] != yc[b]) {\r\n xLTy = xc[b] < yc[b];\r\n break;\r\n }\r\n }\r\n }\r\n\r\n // x < y? Point xc to the array of the bigger number.\r\n if (xLTy) {\r\n t = xc;\r\n xc = yc;\r\n yc = t;\r\n y.s = -y.s;\r\n }\r\n\r\n b = (j = yc.length) - (i = xc.length);\r\n\r\n // Append zeros to xc if shorter.\r\n // No need to add zeros to yc if shorter as subtract only needs to start at yc.length.\r\n if (b > 0) for (; b--; xc[i++] = 0);\r\n b = BASE - 1;\r\n\r\n // Subtract yc from xc.\r\n for (; j > a;) {\r\n\r\n if (xc[--j] < yc[j]) {\r\n for (i = j; i && !xc[--i]; xc[i] = b);\r\n --xc[i];\r\n xc[j] += BASE;\r\n }\r\n\r\n xc[j] -= yc[j];\r\n }\r\n\r\n // Remove leading zeros and adjust exponent accordingly.\r\n for (; xc[0] == 0; xc.splice(0, 1), --ye);\r\n\r\n // Zero?\r\n if (!xc[0]) {\r\n\r\n // Following IEEE 754 (2008) 6.3,\r\n // n - n = +0 but n - n = -0 when rounding towards -Infinity.\r\n y.s = ROUNDING_MODE == 3 ? -1 : 1;\r\n y.c = [y.e = 0];\r\n return y;\r\n }\r\n\r\n // No need to check for Infinity as +x - +y != Infinity && -x - -y != Infinity\r\n // for finite x and y.\r\n return normalise(y, xc, ye);\r\n };\r\n\r\n\r\n /*\r\n * n % 0 = N\r\n * n % N = N\r\n * n % I = n\r\n * 0 % n = 0\r\n * -0 % n = -0\r\n * 0 % 0 = N\r\n * 0 % N = N\r\n * 0 % I = 0\r\n * N % n = N\r\n * N % 0 = N\r\n * N % N = N\r\n * N % I = N\r\n * I % n = N\r\n * I % 0 = N\r\n * I % N = N\r\n * I % I = N\r\n *\r\n * Return a new BigNumber whose value is the value of this BigNumber modulo the value of\r\n * BigNumber(y, b). The result depends on the value of MODULO_MODE.\r\n */\r\n P.modulo = P.mod = function (y, b) {\r\n var q, s,\r\n x = this;\r\n\r\n y = new BigNumber(y, b);\r\n\r\n // Return NaN if x is Infinity or NaN, or y is NaN or zero.\r\n if (!x.c || !y.s || y.c && !y.c[0]) {\r\n return new BigNumber(NaN);\r\n\r\n // Return x if y is Infinity or x is zero.\r\n } else if (!y.c || x.c && !x.c[0]) {\r\n return new BigNumber(x);\r\n }\r\n\r\n if (MODULO_MODE == 9) {\r\n\r\n // Euclidian division: q = sign(y) * floor(x / abs(y))\r\n // r = x - qy where 0 <= r < abs(y)\r\n s = y.s;\r\n y.s = 1;\r\n q = div(x, y, 0, 3);\r\n y.s = s;\r\n q.s *= s;\r\n } else {\r\n q = div(x, y, 0, MODULO_MODE);\r\n }\r\n\r\n y = x.minus(q.times(y));\r\n\r\n // To match JavaScript %, ensure sign of zero is sign of dividend.\r\n if (!y.c[0] && MODULO_MODE == 1) y.s = x.s;\r\n\r\n return y;\r\n };\r\n\r\n\r\n /*\r\n * n * 0 = 0\r\n * n * N = N\r\n * n * I = I\r\n * 0 * n = 0\r\n * 0 * 0 = 0\r\n * 0 * N = N\r\n * 0 * I = N\r\n * N * n = N\r\n * N * 0 = N\r\n * N * N = N\r\n * N * I = N\r\n * I * n = I\r\n * I * 0 = N\r\n * I * N = N\r\n * I * I = I\r\n *\r\n * Return a new BigNumber whose value is the value of this BigNumber multiplied by the value\r\n * of BigNumber(y, b).\r\n */\r\n P.multipliedBy = P.times = function (y, b) {\r\n var c, e, i, j, k, m, xcL, xlo, xhi, ycL, ylo, yhi, zc,\r\n base, sqrtBase,\r\n x = this,\r\n xc = x.c,\r\n yc = (y = new BigNumber(y, b)).c;\r\n\r\n // Either NaN, \u00B1Infinity or \u00B10?\r\n if (!xc || !yc || !xc[0] || !yc[0]) {\r\n\r\n // Return NaN if either is NaN, or one is 0 and the other is Infinity.\r\n if (!x.s || !y.s || xc && !xc[0] && !yc || yc && !yc[0] && !xc) {\r\n y.c = y.e = y.s = null;\r\n } else {\r\n y.s *= x.s;\r\n\r\n // Return \u00B1Infinity if either is \u00B1Infinity.\r\n if (!xc || !yc) {\r\n y.c = y.e = null;\r\n\r\n // Return \u00B10 if either is \u00B10.\r\n } else {\r\n y.c = [0];\r\n y.e = 0;\r\n }\r\n }\r\n\r\n return y;\r\n }\r\n\r\n e = bitFloor(x.e / LOG_BASE) + bitFloor(y.e / LOG_BASE);\r\n y.s *= x.s;\r\n xcL = xc.length;\r\n ycL = yc.length;\r\n\r\n // Ensure xc points to longer array and xcL to its length.\r\n if (xcL < ycL) {\r\n zc = xc;\r\n xc = yc;\r\n yc = zc;\r\n i = xcL;\r\n xcL = ycL;\r\n ycL = i;\r\n }\r\n\r\n // Initialise the result array with zeros.\r\n for (i = xcL + ycL, zc = []; i--; zc.push(0));\r\n\r\n base = BASE;\r\n sqrtBase = SQRT_BASE;\r\n\r\n for (i = ycL; --i >= 0;) {\r\n c = 0;\r\n ylo = yc[i] % sqrtBase;\r\n yhi = yc[i] / sqrtBase | 0;\r\n\r\n for (k = xcL, j = i + k; j > i;) {\r\n xlo = xc[--k] % sqrtBase;\r\n xhi = xc[k] / sqrtBase | 0;\r\n m = yhi * xlo + xhi * ylo;\r\n xlo = ylo * xlo + ((m % sqrtBase) * sqrtBase) + zc[j] + c;\r\n c = (xlo / base | 0) + (m / sqrtBase | 0) + yhi * xhi;\r\n zc[j--] = xlo % base;\r\n }\r\n\r\n zc[j] = c;\r\n }\r\n\r\n if (c) {\r\n ++e;\r\n } else {\r\n zc.splice(0, 1);\r\n }\r\n\r\n return normalise(y, zc, e);\r\n };\r\n\r\n\r\n /*\r\n * Return a new BigNumber whose value is the value of this BigNumber negated,\r\n * i.e. multiplied by -1.\r\n */\r\n P.negated = function () {\r\n var x = new BigNumber(this);\r\n x.s = -x.s || null;\r\n return x;\r\n };\r\n\r\n\r\n /*\r\n * n + 0 = n\r\n * n + N = N\r\n * n + I = I\r\n * 0 + n = n\r\n * 0 + 0 = 0\r\n * 0 + N = N\r\n * 0 + I = I\r\n * N + n = N\r\n * N + 0 = N\r\n * N + N = N\r\n * N + I = N\r\n * I + n = I\r\n * I + 0 = I\r\n * I + N = N\r\n * I + I = I\r\n *\r\n * Return a new BigNumber whose value is the value of this BigNumber plus the value of\r\n * BigNumber(y, b).\r\n */\r\n P.plus = function (y, b) {\r\n var t,\r\n x = this,\r\n a = x.s;\r\n\r\n y = new BigNumber(y, b);\r\n b = y.s;\r\n\r\n // Either NaN?\r\n if (!a || !b) return new BigNumber(NaN);\r\n\r\n // Signs differ?\r\n if (a != b) {\r\n y.s = -b;\r\n return x.minus(y);\r\n }\r\n\r\n var xe = x.e / LOG_BASE,\r\n ye = y.e / LOG_BASE,\r\n xc = x.c,\r\n yc = y.c;\r\n\r\n if (!xe || !ye) {\r\n\r\n // Return \u00B1Infinity if either \u00B1Infinity.\r\n if (!xc || !yc) return new BigNumber(a / 0);\r\n\r\n // Either zero?\r\n // Return y if y is non-zero, x if x is non-zero, or zero if both are zero.\r\n if (!xc[0] || !yc[0]) return yc[0] ? y : new BigNumber(xc[0] ? x : a * 0);\r\n }\r\n\r\n xe = bitFloor(xe);\r\n ye = bitFloor(ye);\r\n xc = xc.slice();\r\n\r\n // Prepend zeros to equalise exponents. Faster to use reverse then do unshifts.\r\n if (a = xe - ye) {\r\n if (a > 0) {\r\n ye = xe;\r\n t = yc;\r\n } else {\r\n a = -a;\r\n t = xc;\r\n }\r\n\r\n t.reverse();\r\n for (; a--; t.push(0));\r\n t.reverse();\r\n }\r\n\r\n a = xc.length;\r\n b = yc.length;\r\n\r\n // Point xc to the longer array, and b to the shorter length.\r\n if (a - b < 0) {\r\n t = yc;\r\n yc = xc;\r\n xc = t;\r\n b = a;\r\n }\r\n\r\n // Only start adding at yc.length - 1 as the further digits of xc can be ignored.\r\n for (a = 0; b;) {\r\n a = (xc[--b] = xc[b] + yc[b] + a) / BASE | 0;\r\n xc[b] = BASE === xc[b] ? 0 : xc[b] % BASE;\r\n }\r\n\r\n if (a) {\r\n xc = [a].concat(xc);\r\n ++ye;\r\n }\r\n\r\n // No need to check for zero, as +x + +y != 0 && -x + -y != 0\r\n // ye = MAX_EXP + 1 possible\r\n return normalise(y, xc, ye);\r\n };\r\n\r\n\r\n /*\r\n * If sd is undefined or null or true or false, return the number of significant digits of\r\n * the value of this BigNumber, or null if the value of this BigNumber is \u00B1Infinity or NaN.\r\n * If sd is true include integer-part trailing zeros in the count.\r\n *\r\n * Otherwise, if sd is a number, return a new BigNumber whose value is the value of this\r\n * BigNumber rounded to a maximum of sd significant digits using rounding mode rm, or\r\n * ROUNDING_MODE if rm is omitted.\r\n *\r\n * sd {number|boolean} number: significant digits: integer, 1 to MAX inclusive.\r\n * boolean: whether to count integer-part trailing zeros: true or false.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {sd|rm}'\r\n */\r\n P.precision = P.sd = function (sd, rm) {\r\n var c, n, v,\r\n x = this;\r\n\r\n if (sd != null && sd !== !!sd) {\r\n intCheck(sd, 1, MAX);\r\n if (rm == null) rm = ROUNDING_MODE;\r\n else intCheck(rm, 0, 8);\r\n\r\n return round(new BigNumber(x), sd, rm);\r\n }\r\n\r\n if (!(c = x.c)) return null;\r\n v = c.length - 1;\r\n n = v * LOG_BASE + 1;\r\n\r\n if (v = c[v]) {\r\n\r\n // Subtract the number of trailing zeros of the last element.\r\n for (; v % 10 == 0; v /= 10, n--);\r\n\r\n // Add the number of digits of the first element.\r\n for (v = c[0]; v >= 10; v /= 10, n++);\r\n }\r\n\r\n if (sd && x.e + 1 > n) n = x.e + 1;\r\n\r\n return n;\r\n };\r\n\r\n\r\n /*\r\n * Return a new BigNumber whose value is the value of this BigNumber shifted by k places\r\n * (powers of 10). Shift to the right if n > 0, and to the left if n < 0.\r\n *\r\n * k {number} Integer, -MAX_SAFE_INTEGER to MAX_SAFE_INTEGER inclusive.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {k}'\r\n */\r\n P.shiftedBy = function (k) {\r\n intCheck(k, -MAX_SAFE_INTEGER, MAX_SAFE_INTEGER);\r\n return this.times('1e' + k);\r\n };\r\n\r\n\r\n /*\r\n * sqrt(-n) = N\r\n * sqrt(N) = N\r\n * sqrt(-I) = N\r\n * sqrt(I) = I\r\n * sqrt(0) = 0\r\n * sqrt(-0) = -0\r\n *\r\n * Return a new BigNumber whose value is the square root of the value of this BigNumber,\r\n * rounded according to DECIMAL_PLACES and ROUNDING_MODE.\r\n */\r\n P.squareRoot = P.sqrt = function () {\r\n var m, n, r, rep, t,\r\n x = this,\r\n c = x.c,\r\n s = x.s,\r\n e = x.e,\r\n dp = DECIMAL_PLACES + 4,\r\n half = new BigNumber('0.5');\r\n\r\n // Negative/NaN/Infinity/zero?\r\n if (s !== 1 || !c || !c[0]) {\r\n return new BigNumber(!s || s < 0 && (!c || c[0]) ? NaN : c ? x : 1 / 0);\r\n }\r\n\r\n // Initial estimate.\r\n s = Math.sqrt(+valueOf(x));\r\n\r\n // Math.sqrt underflow/overflow?\r\n // Pass x to Math.sqrt as integer, then adjust the exponent of the result.\r\n if (s == 0 || s == 1 / 0) {\r\n n = coeffToString(c);\r\n if ((n.length + e) % 2 == 0) n += '0';\r\n s = Math.sqrt(+n);\r\n e = bitFloor((e + 1) / 2) - (e < 0 || e % 2);\r\n\r\n if (s == 1 / 0) {\r\n n = '5e' + e;\r\n } else {\r\n n = s.toExponential();\r\n n = n.slice(0, n.indexOf('e') + 1) + e;\r\n }\r\n\r\n r = new BigNumber(n);\r\n } else {\r\n r = new BigNumber(s + '');\r\n }\r\n\r\n // Check for zero.\r\n // r could be zero if MIN_EXP is changed after the this value was created.\r\n // This would cause a division by zero (x/t) and hence Infinity below, which would cause\r\n // coeffToString to throw.\r\n if (r.c[0]) {\r\n e = r.e;\r\n s = e + dp;\r\n if (s < 3) s = 0;\r\n\r\n // Newton-Raphson iteration.\r\n for (; ;) {\r\n t = r;\r\n r = half.times(t.plus(div(x, t, dp, 1)));\r\n\r\n if (coeffToString(t.c).slice(0, s) === (n = coeffToString(r.c)).slice(0, s)) {\r\n\r\n // The exponent of r may here be one less than the final result exponent,\r\n // e.g 0.0009999 (e-4) --> 0.001 (e-3), so adjust s so the rounding digits\r\n // are indexed correctly.\r\n if (r.e < e) --s;\r\n n = n.slice(s - 3, s + 1);\r\n\r\n // The 4th rounding digit may be in error by -1 so if the 4 rounding digits\r\n // are 9999 or 4999 (i.e. approaching a rounding boundary) continue the\r\n // iteration.\r\n if (n == '9999' || !rep && n == '4999') {\r\n\r\n // On the first iteration only, check to see if rounding up gives the\r\n // exact result as the nines may infinitely repeat.\r\n if (!rep) {\r\n round(t, t.e + DECIMAL_PLACES + 2, 0);\r\n\r\n if (t.times(t).eq(x)) {\r\n r = t;\r\n break;\r\n }\r\n }\r\n\r\n dp += 4;\r\n s += 4;\r\n rep = 1;\r\n } else {\r\n\r\n // If rounding digits are null, 0{0,4} or 50{0,3}, check for exact\r\n // result. If not, then there are further digits and m will be truthy.\r\n if (!+n || !+n.slice(1) && n.charAt(0) == '5') {\r\n\r\n // Truncate to the first rounding digit.\r\n round(r, r.e + DECIMAL_PLACES + 2, 1);\r\n m = !r.times(r).eq(x);\r\n }\r\n\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n\r\n return round(r, r.e + DECIMAL_PLACES + 1, ROUNDING_MODE, m);\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this BigNumber in exponential notation and\r\n * rounded using ROUNDING_MODE to dp fixed decimal places.\r\n *\r\n * [dp] {number} Decimal places. Integer, 0 to MAX inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {dp|rm}'\r\n */\r\n P.toExponential = function (dp, rm) {\r\n if (dp != null) {\r\n intCheck(dp, 0, MAX);\r\n dp++;\r\n }\r\n return format(this, dp, rm, 1);\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this BigNumber in fixed-point notation rounding\r\n * to dp fixed decimal places using rounding mode rm, or ROUNDING_MODE if rm is omitted.\r\n *\r\n * Note: as with JavaScript's number type, (-0).toFixed(0) is '0',\r\n * but e.g. (-0.00001).toFixed(0) is '-0'.\r\n *\r\n * [dp] {number} Decimal places. Integer, 0 to MAX inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {dp|rm}'\r\n */\r\n P.toFixed = function (dp, rm) {\r\n if (dp != null) {\r\n intCheck(dp, 0, MAX);\r\n dp = dp + this.e + 1;\r\n }\r\n return format(this, dp, rm);\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this BigNumber in fixed-point notation rounded\r\n * using rm or ROUNDING_MODE to dp decimal places, and formatted according to the properties\r\n * of the format or FORMAT object (see BigNumber.set).\r\n *\r\n * The formatting object may contain some or all of the properties shown below.\r\n *\r\n * FORMAT = {\r\n * prefix: '',\r\n * groupSize: 3,\r\n * secondaryGroupSize: 0,\r\n * groupSeparator: ',',\r\n * decimalSeparator: '.',\r\n * fractionGroupSize: 0,\r\n * fractionGroupSeparator: '\\xA0', // non-breaking space\r\n * suffix: ''\r\n * };\r\n *\r\n * [dp] {number} Decimal places. Integer, 0 to MAX inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n * [format] {object} Formatting options. See FORMAT pbject above.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {dp|rm}'\r\n * '[BigNumber Error] Argument not an object: {format}'\r\n */\r\n P.toFormat = function (dp, rm, format) {\r\n var str,\r\n x = this;\r\n\r\n if (format == null) {\r\n if (dp != null && rm && typeof rm == 'object') {\r\n format = rm;\r\n rm = null;\r\n } else if (dp && typeof dp == 'object') {\r\n format = dp;\r\n dp = rm = null;\r\n } else {\r\n format = FORMAT;\r\n }\r\n } else if (typeof format != 'object') {\r\n throw Error\r\n (bignumberError + 'Argument not an object: ' + format);\r\n }\r\n\r\n str = x.toFixed(dp, rm);\r\n\r\n if (x.c) {\r\n var i,\r\n arr = str.split('.'),\r\n g1 = +format.groupSize,\r\n g2 = +format.secondaryGroupSize,\r\n groupSeparator = format.groupSeparator || '',\r\n intPart = arr[0],\r\n fractionPart = arr[1],\r\n isNeg = x.s < 0,\r\n intDigits = isNeg ? intPart.slice(1) : intPart,\r\n len = intDigits.length;\r\n\r\n if (g2) {\r\n i = g1;\r\n g1 = g2;\r\n g2 = i;\r\n len -= i;\r\n }\r\n\r\n if (g1 > 0 && len > 0) {\r\n i = len % g1 || g1;\r\n intPart = intDigits.substr(0, i);\r\n for (; i < len; i += g1) intPart += groupSeparator + intDigits.substr(i, g1);\r\n if (g2 > 0) intPart += groupSeparator + intDigits.slice(i);\r\n if (isNeg) intPart = '-' + intPart;\r\n }\r\n\r\n str = fractionPart\r\n ? intPart + (format.decimalSeparator || '') + ((g2 = +format.fractionGroupSize)\r\n ? fractionPart.replace(new RegExp('\\\\d{' + g2 + '}\\\\B', 'g'),\r\n '$&' + (format.fractionGroupSeparator || ''))\r\n : fractionPart)\r\n : intPart;\r\n }\r\n\r\n return (format.prefix || '') + str + (format.suffix || '');\r\n };\r\n\r\n\r\n /*\r\n * Return an array of two BigNumbers representing the value of this BigNumber as a simple\r\n * fraction with an integer numerator and an integer denominator.\r\n * The denominator will be a positive non-zero value less than or equal to the specified\r\n * maximum denominator. If a maximum denominator is not specified, the denominator will be\r\n * the lowest value necessary to represent the number exactly.\r\n *\r\n * [md] {number|string|BigNumber} Integer >= 1, or Infinity. The maximum denominator.\r\n *\r\n * '[BigNumber Error] Argument {not an integer|out of range} : {md}'\r\n */\r\n P.toFraction = function (md) {\r\n var d, d0, d1, d2, e, exp, n, n0, n1, q, r, s,\r\n x = this,\r\n xc = x.c;\r\n\r\n if (md != null) {\r\n n = new BigNumber(md);\r\n\r\n // Throw if md is less than one or is not an integer, unless it is Infinity.\r\n if (!n.isInteger() && (n.c || n.s !== 1) || n.lt(ONE)) {\r\n throw Error\r\n (bignumberError + 'Argument ' +\r\n (n.isInteger() ? 'out of range: ' : 'not an integer: ') + valueOf(n));\r\n }\r\n }\r\n\r\n if (!xc) return new BigNumber(x);\r\n\r\n d = new BigNumber(ONE);\r\n n1 = d0 = new BigNumber(ONE);\r\n d1 = n0 = new BigNumber(ONE);\r\n s = coeffToString(xc);\r\n\r\n // Determine initial denominator.\r\n // d is a power of 10 and the minimum max denominator that specifies the value exactly.\r\n e = d.e = s.length - x.e - 1;\r\n d.c[0] = POWS_TEN[(exp = e % LOG_BASE) < 0 ? LOG_BASE + exp : exp];\r\n md = !md || n.comparedTo(d) > 0 ? (e > 0 ? d : n1) : n;\r\n\r\n exp = MAX_EXP;\r\n MAX_EXP = 1 / 0;\r\n n = new BigNumber(s);\r\n\r\n // n0 = d1 = 0\r\n n0.c[0] = 0;\r\n\r\n for (; ;) {\r\n q = div(n, d, 0, 1);\r\n d2 = d0.plus(q.times(d1));\r\n if (d2.comparedTo(md) == 1) break;\r\n d0 = d1;\r\n d1 = d2;\r\n n1 = n0.plus(q.times(d2 = n1));\r\n n0 = d2;\r\n d = n.minus(q.times(d2 = d));\r\n n = d2;\r\n }\r\n\r\n d2 = div(md.minus(d0), d1, 0, 1);\r\n n0 = n0.plus(d2.times(n1));\r\n d0 = d0.plus(d2.times(d1));\r\n n0.s = n1.s = x.s;\r\n e = e * 2;\r\n\r\n // Determine which fraction is closer to x, n0/d0 or n1/d1\r\n r = div(n1, d1, e, ROUNDING_MODE).minus(x).abs().comparedTo(\r\n div(n0, d0, e, ROUNDING_MODE).minus(x).abs()) < 1 ? [n1, d1] : [n0, d0];\r\n\r\n MAX_EXP = exp;\r\n\r\n return r;\r\n };\r\n\r\n\r\n /*\r\n * Return the value of this BigNumber converted to a number primitive.\r\n */\r\n P.toNumber = function () {\r\n return +valueOf(this);\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this BigNumber rounded to sd significant digits\r\n * using rounding mode rm or ROUNDING_MODE. If sd is less than the number of digits\r\n * necessary to represent the integer part of the value in fixed-point notation, then use\r\n * exponential notation.\r\n *\r\n * [sd] {number} Significant digits. Integer, 1 to MAX inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {sd|rm}'\r\n */\r\n P.toPrecision = function (sd, rm) {\r\n if (sd != null) intCheck(sd, 1, MAX);\r\n return format(this, sd, rm, 2);\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this BigNumber in base b, or base 10 if b is\r\n * omitted. If a base is specified, including base 10, round according to DECIMAL_PLACES and\r\n * ROUNDING_MODE. If a base is not specified, and this BigNumber has a positive exponent\r\n * that is equal to or greater than TO_EXP_POS, or a negative exponent equal to or less than\r\n * TO_EXP_NEG, return exponential notation.\r\n *\r\n * [b] {number} Integer, 2 to ALPHABET.length inclusive.\r\n *\r\n * '[BigNumber Error] Base {not a primitive number|not an integer|out of range}: {b}'\r\n */\r\n P.toString = function (b) {\r\n var str,\r\n n = this,\r\n s = n.s,\r\n e = n.e;\r\n\r\n // Infinity or NaN?\r\n if (e === null) {\r\n if (s) {\r\n str = 'Infinity';\r\n if (s < 0) str = '-' + str;\r\n } else {\r\n str = 'NaN';\r\n }\r\n } else {\r\n if (b == null) {\r\n str = e <= TO_EXP_NEG || e >= TO_EXP_POS\r\n ? toExponential(coeffToString(n.c), e)\r\n : toFixedPoint(coeffToString(n.c), e, '0');\r\n } else if (b === 10 && alphabetHasNormalDecimalDigits) {\r\n n = round(new BigNumber(n), DECIMAL_PLACES + e + 1, ROUNDING_MODE);\r\n str = toFixedPoint(coeffToString(n.c), n.e, '0');\r\n } else {\r\n intCheck(b, 2, ALPHABET.length, 'Base');\r\n str = convertBase(toFixedPoint(coeffToString(n.c), e, '0'), 10, b, s, true);\r\n }\r\n\r\n if (s < 0 && n.c[0]) str = '-' + str;\r\n }\r\n\r\n return str;\r\n };\r\n\r\n\r\n /*\r\n * Return as toString, but do not accept a base argument, and include the minus sign for\r\n * negative zero.\r\n */\r\n P.valueOf = P.toJSON = function () {\r\n return valueOf(this);\r\n };\r\n\r\n\r\n P._isBigNumber = true;\r\n\r\n if (configObject != null) BigNumber.set(configObject);\r\n\r\n return BigNumber;\r\n }\r\n\r\n\r\n // PRIVATE HELPER FUNCTIONS\r\n\r\n // These functions don't need access to variables,\r\n // e.g. DECIMAL_PLACES, in the scope of the `clone` function above.\r\n\r\n\r\n function bitFloor(n) {\r\n var i = n | 0;\r\n return n > 0 || n === i ? i : i - 1;\r\n }\r\n\r\n\r\n // Return a coefficient array as a string of base 10 digits.\r\n function coeffToString(a) {\r\n var s, z,\r\n i = 1,\r\n j = a.length,\r\n r = a[0] + '';\r\n\r\n for (; i < j;) {\r\n s = a[i++] + '';\r\n z = LOG_BASE - s.length;\r\n for (; z--; s = '0' + s);\r\n r += s;\r\n }\r\n\r\n // Determine trailing zeros.\r\n for (j = r.length; r.charCodeAt(--j) === 48;);\r\n\r\n return r.slice(0, j + 1 || 1);\r\n }\r\n\r\n\r\n // Compare the value of BigNumbers x and y.\r\n function compare(x, y) {\r\n var a, b,\r\n xc = x.c,\r\n yc = y.c,\r\n i = x.s,\r\n j = y.s,\r\n k = x.e,\r\n l = y.e;\r\n\r\n // Either NaN?\r\n if (!i || !j) return null;\r\n\r\n a = xc && !xc[0];\r\n b = yc && !yc[0];\r\n\r\n // Either zero?\r\n if (a || b) return a ? b ? 0 : -j : i;\r\n\r\n // Signs differ?\r\n if (i != j) return i;\r\n\r\n a = i < 0;\r\n b = k == l;\r\n\r\n // Either Infinity?\r\n if (!xc || !yc) return b ? 0 : !xc ^ a ? 1 : -1;\r\n\r\n // Compare exponents.\r\n if (!b) return k > l ^ a ? 1 : -1;\r\n\r\n j = (k = xc.length) < (l = yc.length) ? k : l;\r\n\r\n // Compare digit by digit.\r\n for (i = 0; i < j; i++) if (xc[i] != yc[i]) return xc[i] > yc[i] ^ a ? 1 : -1;\r\n\r\n // Compare lengths.\r\n return k == l ? 0 : k > l ^ a ? 1 : -1;\r\n }\r\n\r\n\r\n /*\r\n * Check that n is a primitive number, an integer, and in range, otherwise throw.\r\n */\r\n function intCheck(n, min, max, name) {\r\n if (n < min || n > max || n !== mathfloor(n)) {\r\n throw Error\r\n (bignumberError + (name || 'Argument') + (typeof n == 'number'\r\n ? n < min || n > max ? ' out of range: ' : ' not an integer: '\r\n : ' not a primitive number: ') + String(n));\r\n }\r\n }\r\n\r\n\r\n // Assumes finite n.\r\n function isOdd(n) {\r\n var k = n.c.length - 1;\r\n return bitFloor(n.e / LOG_BASE) == k && n.c[k] % 2 != 0;\r\n }\r\n\r\n\r\n function toExponential(str, e) {\r\n return (str.length > 1 ? str.charAt(0) + '.' + str.slice(1) : str) +\r\n (e < 0 ? 'e' : 'e+') + e;\r\n }\r\n\r\n\r\n function toFixedPoint(str, e, z) {\r\n var len, zs;\r\n\r\n // Negative exponent?\r\n if (e < 0) {\r\n\r\n // Prepend zeros.\r\n for (zs = z + '.'; ++e; zs += z);\r\n str = zs + str;\r\n\r\n // Positive exponent\r\n } else {\r\n len = str.length;\r\n\r\n // Append zeros.\r\n if (++e > len) {\r\n for (zs = z, e -= len; --e; zs += z);\r\n str += zs;\r\n } else if (e < len) {\r\n str = str.slice(0, e) + '.' + str.slice(e);\r\n }\r\n }\r\n\r\n return str;\r\n }\r\n\r\n\r\n // EXPORT\r\n\r\n\r\n BigNumber = clone();\r\n BigNumber['default'] = BigNumber.BigNumber = BigNumber;\r\n\r\n // AMD.\r\n if (typeof define == 'function' && define.amd) {\r\n define(function () { return BigNumber; });\r\n\r\n // Node.js and other environments that support module.exports.\r\n } else if (typeof module != 'undefined' && module.exports) {\r\n module.exports = BigNumber;\r\n\r\n // Browser.\r\n } else {\r\n if (!globalObject) {\r\n globalObject = typeof self != 'undefined' && self ? self : window;\r\n }\r\n\r\n globalObject.BigNumber = BigNumber;\r\n }\r\n})(this);\r\n", "import { encode, decode } from \"@ethersproject/rlp\";\nimport { BigNumber } from \"bignumber.js\";\nimport { LedgerEthTransactionResolution } from \"./services/types\";\n\nexport function splitPath(path: string): number[] {\n const result: number[] = [];\n const components = path.split(\"/\");\n components.forEach((element) => {\n let number = parseInt(element, 10);\n if (isNaN(number)) {\n return; // FIXME shouldn't it throws instead?\n }\n if (element.length > 1 && element[element.length - 1] === \"'\") {\n number += 0x80000000;\n }\n result.push(number);\n });\n return result;\n}\n\nexport function hexBuffer(str: string): Buffer {\n return Buffer.from(str.startsWith(\"0x\") ? str.slice(2) : str, \"hex\");\n}\n\nexport function maybeHexBuffer(\n str: string | null | undefined\n): Buffer | null | undefined {\n if (!str) return null;\n return hexBuffer(str);\n}\n\nexport const decodeTxInfo = (rawTx: Buffer) => {\n const VALID_TYPES = [1, 2];\n const txType = VALID_TYPES.includes(rawTx[0]) ? rawTx[0] : null;\n const rlpData = txType === null ? rawTx : rawTx.slice(1);\n const rlpTx = decode(rlpData).map((hex) => Buffer.from(hex.slice(2), \"hex\"));\n let chainIdTruncated = 0;\n const rlpDecoded = decode(rlpData);\n\n let decodedTx;\n if (txType === 2) {\n // EIP1559\n decodedTx = {\n data: rlpDecoded[7],\n to: rlpDecoded[5],\n chainId: rlpTx[0],\n };\n } else if (txType === 1) {\n // EIP2930\n decodedTx = {\n data: rlpDecoded[6],\n to: rlpDecoded[4],\n chainId: rlpTx[0],\n };\n } else {\n // Legacy tx\n decodedTx = {\n data: rlpDecoded[5],\n to: rlpDecoded[3],\n // Default to 1 for non EIP 155 txs\n chainId: rlpTx.length > 6 ? rlpTx[6] : Buffer.from(\"0x01\", \"hex\"),\n };\n }\n\n const chainIdSrc = decodedTx.chainId;\n let chainId = new BigNumber(0);\n if (chainIdSrc) {\n // Using BigNumber because chainID could be any uint256.\n chainId = new BigNumber(chainIdSrc.toString(\"hex\"), 16);\n const chainIdTruncatedBuf = Buffer.alloc(4);\n if (chainIdSrc.length > 4) {\n chainIdSrc.copy(chainIdTruncatedBuf);\n } else {\n chainIdSrc.copy(chainIdTruncatedBuf, 4 - chainIdSrc.length);\n }\n chainIdTruncated = chainIdTruncatedBuf.readUInt32BE(0);\n }\n\n let vrsOffset = 0;\n if (txType === null && rlpTx.length > 6) {\n const rlpVrs = Buffer.from(encode(rlpTx.slice(-3)).slice(2), \"hex\");\n\n vrsOffset = rawTx.length - (rlpVrs.length - 1);\n\n // First byte > 0xf7 means the length of the list length doesn't fit in a single byte.\n if (rlpVrs[0] > 0xf7) {\n // Increment vrsOffset to account for that extra byte.\n vrsOffset++;\n\n // Compute size of the list length.\n const sizeOfListLen = rlpVrs[0] - 0xf7;\n\n // Increase rlpOffset by the size of the list length.\n vrsOffset += sizeOfListLen - 1;\n }\n }\n\n return {\n decodedTx,\n txType,\n chainId,\n chainIdTruncated,\n vrsOffset,\n };\n};\n\n/**\n * @ignore for the README\n *\n * Helper to convert an integer as a hexadecimal string with the right amount of digits\n * to respect the number of bytes given as parameter\n *\n * @param int Integer\n * @param bytes Number of bytes it should be represented as (1 byte = 2 caraters)\n * @returns The given integer as an hexa string padded with the right number of 0\n */\nexport const intAsHexBytes = (int: number, bytes: number): string =>\n int.toString(16).padStart(2 * bytes, \"0\");\n\n/**\n * @ignore for the README\n *\n * List of selectors (hexadecimal representation of the used method's signature) related to\n * ERC20 (Tokens), ERC721/ERC1155 (NFT).\n * You can verify and/or get more info about them on http://4byte.directory\n */\n\nexport enum ERC20_CLEAR_SIGNED_SELECTORS {\n APPROVE = \"0x095ea7b3\",\n TRANSFER = \"0xa9059cbb\",\n}\n\nexport enum ERC721_CLEAR_SIGNED_SELECTORS {\n APPROVE = \"0x095ea7b3\",\n SET_APPROVAL_FOR_ALL = \"0xa22cb465\",\n TRANSFER_FROM = \"0x23b872dd\",\n SAFE_TRANSFER_FROM = \"0x42842e0e\",\n SAFE_TRANSFER_FROM_WITH_DATA = \"0xb88d4fde\",\n}\n\nexport enum ERC1155_CLEAR_SIGNED_SELECTORS {\n SET_APPROVAL_FOR_ALL = \"0xa22cb465\",\n SAFE_TRANSFER_FROM = \"0xf242432a\",\n SAFE_BATCH_TRANSFER_FROM = \"0x2eb2c2d6\",\n}\n\nexport const tokenSelectors = Object.values(ERC20_CLEAR_SIGNED_SELECTORS);\nexport const nftSelectors = [\n ...Object.values(ERC721_CLEAR_SIGNED_SELECTORS),\n ...Object.values(ERC1155_CLEAR_SIGNED_SELECTORS),\n];\n\nexport const mergeResolutions = (\n oldResolution: Partial,\n newResolution: Partial\n): LedgerEthTransactionResolution => {\n const resolutions: LedgerEthTransactionResolution = {\n nfts: [],\n erc20Tokens: [],\n externalPlugin: [],\n plugin: [],\n };\n\n for (const key in oldResolution) {\n resolutions[key].push(...oldResolution[key]);\n }\n\n for (const key in newResolution) {\n resolutions[key].push(...newResolution[key]);\n }\n\n return resolutions;\n};\n", "/**\n * A Log object\n */\nexport interface Log {\n type: string;\n message?: string;\n data?: any;\n // unique amount all logs\n id: string;\n // date of the log\n date: Date;\n}\nexport type Unsubscribe = () => void;\nexport type Subscriber = (arg0: Log) => void;\nlet id = 0;\nconst subscribers: Subscriber[] = [];\n\n/**\n * log something\n * @param type a namespaced identifier of the log (it is not a level like \"debug\", \"error\" but more like \"apdu-in\", \"apdu-out\", etc...)\n * @param message a clear message of the log associated to the type\n */\nexport const log = (type: string, message?: string, data?: any) => {\n const obj: Log = {\n type,\n id: String(++id),\n date: new Date(),\n };\n if (message) obj.message = message;\n if (data) obj.data = data;\n dispatch(obj);\n};\n\n/**\n * listen to logs.\n * @param cb that is called for each future log() with the Log object\n * @return a function that can be called to unsubscribe the listener\n */\nexport const listen = (cb: Subscriber): Unsubscribe => {\n subscribers.push(cb);\n return () => {\n const i = subscribers.indexOf(cb);\n\n if (i !== -1) {\n // equivalent of subscribers.splice(i, 1) // https://twitter.com/Rich_Harris/status/1125850391155965952\n subscribers[i] = subscribers[subscribers.length - 1];\n subscribers.pop();\n }\n };\n};\n\nfunction dispatch(log: Log) {\n for (let i = 0; i < subscribers.length; i++) {\n try {\n subscribers[i](log);\n } catch (e) {\n console.error(e);\n }\n }\n}\n\n// for debug purpose\n\ndeclare global {\n interface Window {\n __ledgerLogsListen: any;\n }\n}\n\nif (typeof window !== \"undefined\") {\n window.__ledgerLogsListen = listen;\n}\n", "'use strict';\n\nmodule.exports = function bind(fn, thisArg) {\n return function wrap() {\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n return fn.apply(thisArg, args);\n };\n};\n", "'use strict';\n\nvar bind = require('./helpers/bind');\n\n// utils is a library of generic helper functions non-specific to axios\n\nvar toString = Object.prototype.toString;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Array, otherwise false\n */\nfunction isArray(val) {\n return Array.isArray(val);\n}\n\n/**\n * Determine if a value is undefined\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nfunction isUndefined(val) {\n return typeof val === 'undefined';\n}\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {Object} val The value to test\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 && typeof val.constructor.isBuffer === 'function' && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nfunction isArrayBuffer(val) {\n return toString.call(val) === '[object ArrayBuffer]';\n}\n\n/**\n * Determine if a value is a FormData\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nfunction isFormData(val) {\n return toString.call(val) === '[object FormData]';\n}\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n var 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 {Object} val The value to test\n * @returns {boolean} True if value is a String, otherwise false\n */\nfunction isString(val) {\n return typeof val === 'string';\n}\n\n/**\n * Determine if a value is a Number\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Number, otherwise false\n */\nfunction isNumber(val) {\n return typeof val === 'number';\n}\n\n/**\n * Determine if a value is an Object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Object, otherwise false\n */\nfunction isObject(val) {\n return val !== null && typeof val === 'object';\n}\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {Object} val The value to test\n * @return {boolean} True if value is a plain Object, otherwise false\n */\nfunction isPlainObject(val) {\n if (toString.call(val) !== '[object Object]') {\n return false;\n }\n\n var prototype = Object.getPrototypeOf(val);\n return prototype === null || prototype === Object.prototype;\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Date, otherwise false\n */\nfunction isDate(val) {\n return toString.call(val) === '[object Date]';\n}\n\n/**\n * Determine if a value is a File\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\nfunction isFile(val) {\n return toString.call(val) === '[object File]';\n}\n\n/**\n * Determine if a value is a Blob\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nfunction isBlob(val) {\n return toString.call(val) === '[object Blob]';\n}\n\n/**\n * Determine if a value is a Function\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nfunction isFunction(val) {\n return toString.call(val) === '[object Function]';\n}\n\n/**\n * Determine if a value is a Stream\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nfunction isStream(val) {\n return isObject(val) && isFunction(val.pipe);\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nfunction isURLSearchParams(val) {\n return toString.call(val) === '[object URLSearchParams]';\n}\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n * @returns {String} The String freed of excess whitespace\n */\nfunction trim(str) {\n return str.trim ? str.trim() : str.replace(/^\\s+|\\s+$/g, '');\n}\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 */\nfunction isStandardBrowserEnv() {\n if (typeof navigator !== 'undefined' && (navigator.product === 'ReactNative' ||\n navigator.product === 'NativeScript' ||\n navigator.product === 'NS')) {\n return false;\n }\n return (\n typeof window !== 'undefined' &&\n typeof document !== 'undefined'\n );\n}\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 */\nfunction forEach(obj, fn) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\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 (var 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 for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n fn.call(null, obj[key], key, obj);\n }\n }\n }\n}\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 * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n var result = {};\n function assignValue(val, key) {\n if (isPlainObject(result[key]) && isPlainObject(val)) {\n result[key] = merge(result[key], val);\n } else if (isPlainObject(val)) {\n result[key] = merge({}, val);\n } else if (isArray(val)) {\n result[key] = val.slice();\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n 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 * @return {Object} The resulting value of object a\n */\nfunction extend(a, b, thisArg) {\n forEach(b, function assignValue(val, key) {\n if (thisArg && typeof val === 'function') {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n });\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 * @return {string} content value without BOM\n */\nfunction stripBOM(content) {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n}\n\nmodule.exports = {\n isArray: isArray,\n isArrayBuffer: isArrayBuffer,\n isBuffer: isBuffer,\n isFormData: isFormData,\n isArrayBufferView: isArrayBufferView,\n isString: isString,\n isNumber: isNumber,\n isObject: isObject,\n isPlainObject: isPlainObject,\n isUndefined: isUndefined,\n isDate: isDate,\n isFile: isFile,\n isBlob: isBlob,\n isFunction: isFunction,\n isStream: isStream,\n isURLSearchParams: isURLSearchParams,\n isStandardBrowserEnv: isStandardBrowserEnv,\n forEach: forEach,\n merge: merge,\n extend: extend,\n trim: trim,\n stripBOM: stripBOM\n};\n", "'use strict';\n\nvar utils = require('./../utils');\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 * @returns {string} The formatted url\n */\nmodule.exports = function buildURL(url, params, paramsSerializer) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n\n var serializedParams;\n if (paramsSerializer) {\n serializedParams = paramsSerializer(params);\n } else if (utils.isURLSearchParams(params)) {\n serializedParams = params.toString();\n } else {\n var parts = [];\n\n utils.forEach(params, function serialize(val, key) {\n if (val === null || typeof val === 'undefined') {\n return;\n }\n\n if (utils.isArray(val)) {\n key = key + '[]';\n } else {\n val = [val];\n }\n\n utils.forEach(val, function parseValue(v) {\n if (utils.isDate(v)) {\n v = v.toISOString();\n } else if (utils.isObject(v)) {\n v = JSON.stringify(v);\n }\n parts.push(encode(key) + '=' + encode(v));\n });\n });\n\n serializedParams = parts.join('&');\n }\n\n if (serializedParams) {\n var hashmarkIndex = url.indexOf('#');\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n};\n", "'use strict';\n\nvar utils = require('./../utils');\n\nfunction InterceptorManager() {\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 */\nInterceptorManager.prototype.use = function use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled: fulfilled,\n rejected: 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 */\nInterceptorManager.prototype.eject = function eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\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 */\nInterceptorManager.prototype.forEach = function forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n};\n\nmodule.exports = InterceptorManager;\n", "'use strict';\n\nvar utils = require('../utils');\n\nmodule.exports = function normalizeHeaderName(headers, normalizedName) {\n utils.forEach(headers, function processHeader(value, name) {\n if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) {\n headers[normalizedName] = value;\n delete headers[name];\n }\n });\n};\n", "'use strict';\n\n/**\n * Update an Error with the specified config, error code, and response.\n *\n * @param {Error} error The error to update.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The error.\n */\nmodule.exports = function enhanceError(error, config, code, request, response) {\n error.config = config;\n if (code) {\n error.code = code;\n }\n\n error.request = request;\n error.response = response;\n error.isAxiosError = true;\n\n error.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: this.config,\n code: this.code,\n status: this.response && this.response.status ? this.response.status : null\n };\n };\n return error;\n};\n", "'use strict';\n\nmodule.exports = {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false\n};\n", "'use strict';\n\nvar enhanceError = require('./enhanceError');\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 {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The created error.\n */\nmodule.exports = function createError(message, config, code, request, response) {\n var error = new Error(message);\n return enhanceError(error, config, code, request, response);\n};\n", "'use strict';\n\nvar createError = require('./createError');\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 */\nmodule.exports = function settle(resolve, reject, response) {\n var validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(createError(\n 'Request failed with status code ' + response.status,\n response.config,\n null,\n response.request,\n response\n ));\n }\n};\n", "'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs support document.cookie\n (function standardBrowserEnv() {\n return {\n write: function write(name, value, expires, path, domain, secure) {\n var cookie = [];\n cookie.push(name + '=' + encodeURIComponent(value));\n\n if (utils.isNumber(expires)) {\n cookie.push('expires=' + new Date(expires).toGMTString());\n }\n\n if (utils.isString(path)) {\n cookie.push('path=' + path);\n }\n\n if (utils.isString(domain)) {\n cookie.push('domain=' + domain);\n }\n\n if (secure === true) {\n cookie.push('secure');\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read: function read(name) {\n var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove: function remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n };\n })() :\n\n // Non standard browser env (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return {\n write: function write() {},\n read: function read() { return null; },\n remove: function remove() {}\n };\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 * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nmodule.exports = function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" 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 * @returns {string} The combined URL\n */\nmodule.exports = function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n};\n", "'use strict';\n\nvar isAbsoluteURL = require('../helpers/isAbsoluteURL');\nvar combineURLs = require('../helpers/combineURLs');\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 * @returns {string} The combined full path\n */\nmodule.exports = function buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n};\n", "'use strict';\n\nvar utils = require('./../utils');\n\n// Headers whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nvar ignoreDuplicateOf = [\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} headers Headers needing to be parsed\n * @returns {Object} Headers parsed into an object\n */\nmodule.exports = function parseHeaders(headers) {\n var parsed = {};\n var key;\n var val;\n var i;\n\n if (!headers) { return parsed; }\n\n utils.forEach(headers.split('\\n'), function parser(line) {\n i = line.indexOf(':');\n key = utils.trim(line.substr(0, i)).toLowerCase();\n val = utils.trim(line.substr(i + 1));\n\n if (key) {\n if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) {\n return;\n }\n if (key === 'set-cookie') {\n parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]);\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n }\n });\n\n return parsed;\n};\n", "'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\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 var msie = /(msie|trident)/i.test(navigator.userAgent);\n var urlParsingNode = document.createElement('a');\n var originURL;\n\n /**\n * Parse a URL to discover it's components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n var 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 var 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);\n", "'use strict';\n\n/**\n * A `Cancel` is an object that is thrown when an operation is canceled.\n *\n * @class\n * @param {string=} message The message.\n */\nfunction Cancel(message) {\n this.message = message;\n}\n\nCancel.prototype.toString = function toString() {\n return 'Cancel' + (this.message ? ': ' + this.message : '');\n};\n\nCancel.prototype.__CANCEL__ = true;\n\nmodule.exports = Cancel;\n", "'use strict';\n\nvar utils = require('./../utils');\nvar settle = require('./../core/settle');\nvar cookies = require('./../helpers/cookies');\nvar buildURL = require('./../helpers/buildURL');\nvar buildFullPath = require('../core/buildFullPath');\nvar parseHeaders = require('./../helpers/parseHeaders');\nvar isURLSameOrigin = require('./../helpers/isURLSameOrigin');\nvar createError = require('../core/createError');\nvar transitionalDefaults = require('../defaults/transitional');\nvar Cancel = require('../cancel/Cancel');\n\nmodule.exports = function xhrAdapter(config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n var requestData = config.data;\n var requestHeaders = config.headers;\n var responseType = config.responseType;\n var 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 if (utils.isFormData(requestData)) {\n delete requestHeaders['Content-Type']; // Let the browser set it\n }\n\n var request = new XMLHttpRequest();\n\n // HTTP basic authentication\n if (config.auth) {\n var username = config.auth.username || '';\n var password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : '';\n requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\n }\n\n var fullPath = buildFullPath(config.baseURL, config.url);\n request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), 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 var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n var responseData = !responseType || responseType === 'text' || responseType === 'json' ?\n request.responseText : request.response;\n var response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config: config,\n request: 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(createError('Request aborted', config, 'ECONNABORTED', 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(createError('Network Error', config, null, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n var timeoutErrorMessage = config.timeout ? 'timeout of ' + config.timeout + 'ms exceeded' : 'timeout exceeded';\n var transitional = config.transitional || transitionalDefaults;\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n reject(createError(\n timeoutErrorMessage,\n config,\n transitional.clarifyTimeoutError ? 'ETIMEDOUT' : 'ECONNABORTED',\n request));\n\n // Clean up request\n request = null;\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 if (utils.isStandardBrowserEnv()) {\n // Add xsrf header\n var xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath)) && config.xsrfCookieName ?\n cookies.read(config.xsrfCookieName) :\n undefined;\n\n if (xsrfValue) {\n requestHeaders[config.xsrfHeaderName] = xsrfValue;\n }\n }\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders, function setRequestHeader(val, key) {\n if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\n // Remove Content-Type if data is undefined\n delete requestHeaders[key];\n } else {\n // Otherwise add header to the request\n request.setRequestHeader(key, val);\n }\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', config.onDownloadProgress);\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', config.onUploadProgress);\n }\n\n if (config.cancelToken || config.signal) {\n // Handle cancellation\n // eslint-disable-next-line func-names\n onCanceled = function(cancel) {\n if (!request) {\n return;\n }\n reject(!cancel || (cancel && cancel.type) ? new Cancel('canceled') : 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 if (!requestData) {\n requestData = null;\n }\n\n // Send the request\n request.send(requestData);\n });\n};\n", "/**\n * Helpers.\n */\n\nvar s = 1000;\nvar m = s * 60;\nvar h = m * 60;\nvar d = h * 24;\nvar w = d * 7;\nvar y = d * 365.25;\n\n/**\n * Parse or format the given `val`.\n *\n * Options:\n *\n * - `long` verbose formatting [false]\n *\n * @param {String|Number} val\n * @param {Object} [options]\n * @throws {Error} throw an error if val is not a non-empty string or a number\n * @return {String|Number}\n * @api public\n */\n\nmodule.exports = function(val, options) {\n options = options || {};\n var type = typeof val;\n if (type === 'string' && val.length > 0) {\n return parse(val);\n } else if (type === 'number' && isFinite(val)) {\n return options.long ? fmtLong(val) : fmtShort(val);\n }\n throw new Error(\n 'val is not a non-empty string or a valid number. val=' +\n JSON.stringify(val)\n );\n};\n\n/**\n * Parse the given `str` and return milliseconds.\n *\n * @param {String} str\n * @return {Number}\n * @api private\n */\n\nfunction parse(str) {\n str = String(str);\n if (str.length > 100) {\n return;\n }\n var match = /^(-?(?:\\d+)?\\.?\\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(\n str\n );\n if (!match) {\n return;\n }\n var n = parseFloat(match[1]);\n var type = (match[2] || 'ms').toLowerCase();\n switch (type) {\n case 'years':\n case 'year':\n case 'yrs':\n case 'yr':\n case 'y':\n return n * y;\n case 'weeks':\n case 'week':\n case 'w':\n return n * w;\n case 'days':\n case 'day':\n case 'd':\n return n * d;\n case 'hours':\n case 'hour':\n case 'hrs':\n case 'hr':\n case 'h':\n return n * h;\n case 'minutes':\n case 'minute':\n case 'mins':\n case 'min':\n case 'm':\n return n * m;\n case 'seconds':\n case 'second':\n case 'secs':\n case 'sec':\n case 's':\n return n * s;\n case 'milliseconds':\n case 'millisecond':\n case 'msecs':\n case 'msec':\n case 'ms':\n return n;\n default:\n return undefined;\n }\n}\n\n/**\n * Short format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtShort(ms) {\n var msAbs = Math.abs(ms);\n if (msAbs >= d) {\n return Math.round(ms / d) + 'd';\n }\n if (msAbs >= h) {\n return Math.round(ms / h) + 'h';\n }\n if (msAbs >= m) {\n return Math.round(ms / m) + 'm';\n }\n if (msAbs >= s) {\n return Math.round(ms / s) + 's';\n }\n return ms + 'ms';\n}\n\n/**\n * Long format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtLong(ms) {\n var msAbs = Math.abs(ms);\n if (msAbs >= d) {\n return plural(ms, msAbs, d, 'day');\n }\n if (msAbs >= h) {\n return plural(ms, msAbs, h, 'hour');\n }\n if (msAbs >= m) {\n return plural(ms, msAbs, m, 'minute');\n }\n if (msAbs >= s) {\n return plural(ms, msAbs, s, 'second');\n }\n return ms + ' ms';\n}\n\n/**\n * Pluralization helper.\n */\n\nfunction plural(ms, msAbs, n, name) {\n var isPlural = msAbs >= n * 1.5;\n return Math.round(ms / n) + ' ' + name + (isPlural ? 's' : '');\n}\n", "\n/**\n * This is the common logic for both the Node.js and web browser\n * implementations of `debug()`.\n */\n\nfunction setup(env) {\n\tcreateDebug.debug = createDebug;\n\tcreateDebug.default = createDebug;\n\tcreateDebug.coerce = coerce;\n\tcreateDebug.disable = disable;\n\tcreateDebug.enable = enable;\n\tcreateDebug.enabled = enabled;\n\tcreateDebug.humanize = require('ms');\n\tcreateDebug.destroy = destroy;\n\n\tObject.keys(env).forEach(key => {\n\t\tcreateDebug[key] = env[key];\n\t});\n\n\t/**\n\t* The currently active debug mode names, and names to skip.\n\t*/\n\n\tcreateDebug.names = [];\n\tcreateDebug.skips = [];\n\n\t/**\n\t* Map of special \"%n\" handling functions, for the debug \"format\" argument.\n\t*\n\t* Valid key names are a single, lower or upper-case letter, i.e. \"n\" and \"N\".\n\t*/\n\tcreateDebug.formatters = {};\n\n\t/**\n\t* Selects a color for a debug namespace\n\t* @param {String} namespace The namespace string for the debug instance to be colored\n\t* @return {Number|String} An ANSI color code for the given namespace\n\t* @api private\n\t*/\n\tfunction selectColor(namespace) {\n\t\tlet hash = 0;\n\n\t\tfor (let i = 0; i < namespace.length; i++) {\n\t\t\thash = ((hash << 5) - hash) + namespace.charCodeAt(i);\n\t\t\thash |= 0; // Convert to 32bit integer\n\t\t}\n\n\t\treturn createDebug.colors[Math.abs(hash) % createDebug.colors.length];\n\t}\n\tcreateDebug.selectColor = selectColor;\n\n\t/**\n\t* Create a debugger with the given `namespace`.\n\t*\n\t* @param {String} namespace\n\t* @return {Function}\n\t* @api public\n\t*/\n\tfunction createDebug(namespace) {\n\t\tlet prevTime;\n\t\tlet enableOverride = null;\n\t\tlet namespacesCache;\n\t\tlet enabledCache;\n\n\t\tfunction debug(...args) {\n\t\t\t// Disabled?\n\t\t\tif (!debug.enabled) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst self = debug;\n\n\t\t\t// Set `diff` timestamp\n\t\t\tconst curr = Number(new Date());\n\t\t\tconst ms = curr - (prevTime || curr);\n\t\t\tself.diff = ms;\n\t\t\tself.prev = prevTime;\n\t\t\tself.curr = curr;\n\t\t\tprevTime = curr;\n\n\t\t\targs[0] = createDebug.coerce(args[0]);\n\n\t\t\tif (typeof args[0] !== 'string') {\n\t\t\t\t// Anything else let's inspect with %O\n\t\t\t\targs.unshift('%O');\n\t\t\t}\n\n\t\t\t// Apply any `formatters` transformations\n\t\t\tlet index = 0;\n\t\t\targs[0] = args[0].replace(/%([a-zA-Z%])/g, (match, format) => {\n\t\t\t\t// If we encounter an escaped % then don't increase the array index\n\t\t\t\tif (match === '%%') {\n\t\t\t\t\treturn '%';\n\t\t\t\t}\n\t\t\t\tindex++;\n\t\t\t\tconst formatter = createDebug.formatters[format];\n\t\t\t\tif (typeof formatter === 'function') {\n\t\t\t\t\tconst val = args[index];\n\t\t\t\t\tmatch = formatter.call(self, val);\n\n\t\t\t\t\t// Now we need to remove `args[index]` since it's inlined in the `format`\n\t\t\t\t\targs.splice(index, 1);\n\t\t\t\t\tindex--;\n\t\t\t\t}\n\t\t\t\treturn match;\n\t\t\t});\n\n\t\t\t// Apply env-specific formatting (colors, etc.)\n\t\t\tcreateDebug.formatArgs.call(self, args);\n\n\t\t\tconst logFn = self.log || createDebug.log;\n\t\t\tlogFn.apply(self, args);\n\t\t}\n\n\t\tdebug.namespace = namespace;\n\t\tdebug.useColors = createDebug.useColors();\n\t\tdebug.color = createDebug.selectColor(namespace);\n\t\tdebug.extend = extend;\n\t\tdebug.destroy = createDebug.destroy; // XXX Temporary. Will be removed in the next major release.\n\n\t\tObject.defineProperty(debug, 'enabled', {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: false,\n\t\t\tget: () => {\n\t\t\t\tif (enableOverride !== null) {\n\t\t\t\t\treturn enableOverride;\n\t\t\t\t}\n\t\t\t\tif (namespacesCache !== createDebug.namespaces) {\n\t\t\t\t\tnamespacesCache = createDebug.namespaces;\n\t\t\t\t\tenabledCache = createDebug.enabled(namespace);\n\t\t\t\t}\n\n\t\t\t\treturn enabledCache;\n\t\t\t},\n\t\t\tset: v => {\n\t\t\t\tenableOverride = v;\n\t\t\t}\n\t\t});\n\n\t\t// Env-specific initialization logic for debug instances\n\t\tif (typeof createDebug.init === 'function') {\n\t\t\tcreateDebug.init(debug);\n\t\t}\n\n\t\treturn debug;\n\t}\n\n\tfunction extend(namespace, delimiter) {\n\t\tconst newDebug = createDebug(this.namespace + (typeof delimiter === 'undefined' ? ':' : delimiter) + namespace);\n\t\tnewDebug.log = this.log;\n\t\treturn newDebug;\n\t}\n\n\t/**\n\t* Enables a debug mode by namespaces. This can include modes\n\t* separated by a colon and wildcards.\n\t*\n\t* @param {String} namespaces\n\t* @api public\n\t*/\n\tfunction enable(namespaces) {\n\t\tcreateDebug.save(namespaces);\n\t\tcreateDebug.namespaces = namespaces;\n\n\t\tcreateDebug.names = [];\n\t\tcreateDebug.skips = [];\n\n\t\tlet i;\n\t\tconst split = (typeof namespaces === 'string' ? namespaces : '').split(/[\\s,]+/);\n\t\tconst len = split.length;\n\n\t\tfor (i = 0; i < len; i++) {\n\t\t\tif (!split[i]) {\n\t\t\t\t// ignore empty strings\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tnamespaces = split[i].replace(/\\*/g, '.*?');\n\n\t\t\tif (namespaces[0] === '-') {\n\t\t\t\tcreateDebug.skips.push(new RegExp('^' + namespaces.slice(1) + '$'));\n\t\t\t} else {\n\t\t\t\tcreateDebug.names.push(new RegExp('^' + namespaces + '$'));\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t* Disable debug output.\n\t*\n\t* @return {String} namespaces\n\t* @api public\n\t*/\n\tfunction disable() {\n\t\tconst namespaces = [\n\t\t\t...createDebug.names.map(toNamespace),\n\t\t\t...createDebug.skips.map(toNamespace).map(namespace => '-' + namespace)\n\t\t].join(',');\n\t\tcreateDebug.enable('');\n\t\treturn namespaces;\n\t}\n\n\t/**\n\t* Returns true if the given mode name is enabled, false otherwise.\n\t*\n\t* @param {String} name\n\t* @return {Boolean}\n\t* @api public\n\t*/\n\tfunction enabled(name) {\n\t\tif (name[name.length - 1] === '*') {\n\t\t\treturn true;\n\t\t}\n\n\t\tlet i;\n\t\tlet len;\n\n\t\tfor (i = 0, len = createDebug.skips.length; i < len; i++) {\n\t\t\tif (createDebug.skips[i].test(name)) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\n\t\tfor (i = 0, len = createDebug.names.length; i < len; i++) {\n\t\t\tif (createDebug.names[i].test(name)) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t}\n\n\t/**\n\t* Convert regexp to namespace\n\t*\n\t* @param {RegExp} regxep\n\t* @return {String} namespace\n\t* @api private\n\t*/\n\tfunction toNamespace(regexp) {\n\t\treturn regexp.toString()\n\t\t\t.substring(2, regexp.toString().length - 2)\n\t\t\t.replace(/\\.\\*\\?$/, '*');\n\t}\n\n\t/**\n\t* Coerce `val`.\n\t*\n\t* @param {Mixed} val\n\t* @return {Mixed}\n\t* @api private\n\t*/\n\tfunction coerce(val) {\n\t\tif (val instanceof Error) {\n\t\t\treturn val.stack || val.message;\n\t\t}\n\t\treturn val;\n\t}\n\n\t/**\n\t* XXX DO NOT USE. This is a temporary stub function.\n\t* XXX It WILL be removed in the next major release.\n\t*/\n\tfunction destroy() {\n\t\tconsole.warn('Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.');\n\t}\n\n\tcreateDebug.enable(createDebug.load());\n\n\treturn createDebug;\n}\n\nmodule.exports = setup;\n", "/* eslint-env browser */\n\n/**\n * This is the web browser implementation of `debug()`.\n */\n\nexports.formatArgs = formatArgs;\nexports.save = save;\nexports.load = load;\nexports.useColors = useColors;\nexports.storage = localstorage();\nexports.destroy = (() => {\n\tlet warned = false;\n\n\treturn () => {\n\t\tif (!warned) {\n\t\t\twarned = true;\n\t\t\tconsole.warn('Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.');\n\t\t}\n\t};\n})();\n\n/**\n * Colors.\n */\n\nexports.colors = [\n\t'#0000CC',\n\t'#0000FF',\n\t'#0033CC',\n\t'#0033FF',\n\t'#0066CC',\n\t'#0066FF',\n\t'#0099CC',\n\t'#0099FF',\n\t'#00CC00',\n\t'#00CC33',\n\t'#00CC66',\n\t'#00CC99',\n\t'#00CCCC',\n\t'#00CCFF',\n\t'#3300CC',\n\t'#3300FF',\n\t'#3333CC',\n\t'#3333FF',\n\t'#3366CC',\n\t'#3366FF',\n\t'#3399CC',\n\t'#3399FF',\n\t'#33CC00',\n\t'#33CC33',\n\t'#33CC66',\n\t'#33CC99',\n\t'#33CCCC',\n\t'#33CCFF',\n\t'#6600CC',\n\t'#6600FF',\n\t'#6633CC',\n\t'#6633FF',\n\t'#66CC00',\n\t'#66CC33',\n\t'#9900CC',\n\t'#9900FF',\n\t'#9933CC',\n\t'#9933FF',\n\t'#99CC00',\n\t'#99CC33',\n\t'#CC0000',\n\t'#CC0033',\n\t'#CC0066',\n\t'#CC0099',\n\t'#CC00CC',\n\t'#CC00FF',\n\t'#CC3300',\n\t'#CC3333',\n\t'#CC3366',\n\t'#CC3399',\n\t'#CC33CC',\n\t'#CC33FF',\n\t'#CC6600',\n\t'#CC6633',\n\t'#CC9900',\n\t'#CC9933',\n\t'#CCCC00',\n\t'#CCCC33',\n\t'#FF0000',\n\t'#FF0033',\n\t'#FF0066',\n\t'#FF0099',\n\t'#FF00CC',\n\t'#FF00FF',\n\t'#FF3300',\n\t'#FF3333',\n\t'#FF3366',\n\t'#FF3399',\n\t'#FF33CC',\n\t'#FF33FF',\n\t'#FF6600',\n\t'#FF6633',\n\t'#FF9900',\n\t'#FF9933',\n\t'#FFCC00',\n\t'#FFCC33'\n];\n\n/**\n * Currently only WebKit-based Web Inspectors, Firefox >= v31,\n * and the Firebug extension (any Firefox version) are known\n * to support \"%c\" CSS customizations.\n *\n * TODO: add a `localStorage` variable to explicitly enable/disable colors\n */\n\n// eslint-disable-next-line complexity\nfunction useColors() {\n\t// NB: In an Electron preload script, document will be defined but not fully\n\t// initialized. Since we know we're in Chrome, we'll just detect this case\n\t// explicitly\n\tif (typeof window !== 'undefined' && window.process && (window.process.type === 'renderer' || window.process.__nwjs)) {\n\t\treturn true;\n\t}\n\n\t// Internet Explorer and Edge do not support colors.\n\tif (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/(edge|trident)\\/(\\d+)/)) {\n\t\treturn false;\n\t}\n\n\t// Is webkit? http://stackoverflow.com/a/16459606/376773\n\t// document is undefined in react-native: https://github.com/facebook/react-native/pull/1632\n\treturn (typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance) ||\n\t\t// Is firebug? http://stackoverflow.com/a/398120/376773\n\t\t(typeof window !== 'undefined' && window.console && (window.console.firebug || (window.console.exception && window.console.table))) ||\n\t\t// Is firefox >= v31?\n\t\t// https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages\n\t\t(typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\\/(\\d+)/) && parseInt(RegExp.$1, 10) >= 31) ||\n\t\t// Double check webkit in userAgent just in case we are in a worker\n\t\t(typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\\/(\\d+)/));\n}\n\n/**\n * Colorize log arguments if enabled.\n *\n * @api public\n */\n\nfunction formatArgs(args) {\n\targs[0] = (this.useColors ? '%c' : '') +\n\t\tthis.namespace +\n\t\t(this.useColors ? ' %c' : ' ') +\n\t\targs[0] +\n\t\t(this.useColors ? '%c ' : ' ') +\n\t\t'+' + module.exports.humanize(this.diff);\n\n\tif (!this.useColors) {\n\t\treturn;\n\t}\n\n\tconst c = 'color: ' + this.color;\n\targs.splice(1, 0, c, 'color: inherit');\n\n\t// The final \"%c\" is somewhat tricky, because there could be other\n\t// arguments passed either before or after the %c, so we need to\n\t// figure out the correct index to insert the CSS into\n\tlet index = 0;\n\tlet lastC = 0;\n\targs[0].replace(/%[a-zA-Z%]/g, match => {\n\t\tif (match === '%%') {\n\t\t\treturn;\n\t\t}\n\t\tindex++;\n\t\tif (match === '%c') {\n\t\t\t// We only are interested in the *last* %c\n\t\t\t// (the user may have provided their own)\n\t\t\tlastC = index;\n\t\t}\n\t});\n\n\targs.splice(lastC, 0, c);\n}\n\n/**\n * Invokes `console.debug()` when available.\n * No-op when `console.debug` is not a \"function\".\n * If `console.debug` is not available, falls back\n * to `console.log`.\n *\n * @api public\n */\nexports.log = console.debug || console.log || (() => {});\n\n/**\n * Save `namespaces`.\n *\n * @param {String} namespaces\n * @api private\n */\nfunction save(namespaces) {\n\ttry {\n\t\tif (namespaces) {\n\t\t\texports.storage.setItem('debug', namespaces);\n\t\t} else {\n\t\t\texports.storage.removeItem('debug');\n\t\t}\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n}\n\n/**\n * Load `namespaces`.\n *\n * @return {String} returns the previously persisted debug modes\n * @api private\n */\nfunction load() {\n\tlet r;\n\ttry {\n\t\tr = exports.storage.getItem('debug');\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n\n\t// If debug isn't set in LS, and we're in Electron, try to load $DEBUG\n\tif (!r && typeof process !== 'undefined' && 'env' in process) {\n\t\tr = process.env.DEBUG;\n\t}\n\n\treturn r;\n}\n\n/**\n * Localstorage attempts to return the localstorage.\n *\n * This is necessary because safari throws\n * when a user disables cookies/localstorage\n * and you attempt to access it.\n *\n * @return {LocalStorage}\n * @api private\n */\n\nfunction localstorage() {\n\ttry {\n\t\t// TVMLKit (Apple TV JS Runtime) does not have a window object, just localStorage in the global context\n\t\t// The Browser also has localStorage in the global context.\n\t\treturn localStorage;\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n}\n\nmodule.exports = require('./common')(exports);\n\nconst {formatters} = module.exports;\n\n/**\n * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default.\n */\n\nformatters.j = function (v) {\n\ttry {\n\t\treturn JSON.stringify(v);\n\t} catch (error) {\n\t\treturn '[UnexpectedJSONParseError]: ' + error.message;\n\t}\n};\n", "'use strict';\n\nmodule.exports = (flag, argv = process.argv) => {\n\tconst prefix = flag.startsWith('-') ? '' : (flag.length === 1 ? '-' : '--');\n\tconst position = argv.indexOf(prefix + flag);\n\tconst terminatorPosition = argv.indexOf('--');\n\treturn position !== -1 && (terminatorPosition === -1 || position < terminatorPosition);\n};\n", "'use strict';\nconst os = require('os');\nconst tty = require('tty');\nconst hasFlag = require('has-flag');\n\nconst {env} = process;\n\nlet forceColor;\nif (hasFlag('no-color') ||\n\thasFlag('no-colors') ||\n\thasFlag('color=false') ||\n\thasFlag('color=never')) {\n\tforceColor = 0;\n} else if (hasFlag('color') ||\n\thasFlag('colors') ||\n\thasFlag('color=true') ||\n\thasFlag('color=always')) {\n\tforceColor = 1;\n}\n\nif ('FORCE_COLOR' in env) {\n\tif (env.FORCE_COLOR === 'true') {\n\t\tforceColor = 1;\n\t} else if (env.FORCE_COLOR === 'false') {\n\t\tforceColor = 0;\n\t} else {\n\t\tforceColor = env.FORCE_COLOR.length === 0 ? 1 : Math.min(parseInt(env.FORCE_COLOR, 10), 3);\n\t}\n}\n\nfunction translateLevel(level) {\n\tif (level === 0) {\n\t\treturn false;\n\t}\n\n\treturn {\n\t\tlevel,\n\t\thasBasic: true,\n\t\thas256: level >= 2,\n\t\thas16m: level >= 3\n\t};\n}\n\nfunction supportsColor(haveStream, streamIsTTY) {\n\tif (forceColor === 0) {\n\t\treturn 0;\n\t}\n\n\tif (hasFlag('color=16m') ||\n\t\thasFlag('color=full') ||\n\t\thasFlag('color=truecolor')) {\n\t\treturn 3;\n\t}\n\n\tif (hasFlag('color=256')) {\n\t\treturn 2;\n\t}\n\n\tif (haveStream && !streamIsTTY && forceColor === undefined) {\n\t\treturn 0;\n\t}\n\n\tconst min = forceColor || 0;\n\n\tif (env.TERM === 'dumb') {\n\t\treturn min;\n\t}\n\n\tif (process.platform === 'win32') {\n\t\t// Windows 10 build 10586 is the first Windows release that supports 256 colors.\n\t\t// Windows 10 build 14931 is the first release that supports 16m/TrueColor.\n\t\tconst osRelease = os.release().split('.');\n\t\tif (\n\t\t\tNumber(osRelease[0]) >= 10 &&\n\t\t\tNumber(osRelease[2]) >= 10586\n\t\t) {\n\t\t\treturn Number(osRelease[2]) >= 14931 ? 3 : 2;\n\t\t}\n\n\t\treturn 1;\n\t}\n\n\tif ('CI' in env) {\n\t\tif (['TRAVIS', 'CIRCLECI', 'APPVEYOR', 'GITLAB_CI', 'GITHUB_ACTIONS', 'BUILDKITE'].some(sign => sign in env) || env.CI_NAME === 'codeship') {\n\t\t\treturn 1;\n\t\t}\n\n\t\treturn min;\n\t}\n\n\tif ('TEAMCITY_VERSION' in env) {\n\t\treturn /^(9\\.(0*[1-9]\\d*)\\.|\\d{2,}\\.)/.test(env.TEAMCITY_VERSION) ? 1 : 0;\n\t}\n\n\tif (env.COLORTERM === 'truecolor') {\n\t\treturn 3;\n\t}\n\n\tif ('TERM_PROGRAM' in env) {\n\t\tconst version = parseInt((env.TERM_PROGRAM_VERSION || '').split('.')[0], 10);\n\n\t\tswitch (env.TERM_PROGRAM) {\n\t\t\tcase 'iTerm.app':\n\t\t\t\treturn version >= 3 ? 3 : 2;\n\t\t\tcase 'Apple_Terminal':\n\t\t\t\treturn 2;\n\t\t\t// No default\n\t\t}\n\t}\n\n\tif (/-256(color)?$/i.test(env.TERM)) {\n\t\treturn 2;\n\t}\n\n\tif (/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(env.TERM)) {\n\t\treturn 1;\n\t}\n\n\tif ('COLORTERM' in env) {\n\t\treturn 1;\n\t}\n\n\treturn min;\n}\n\nfunction getSupportLevel(stream) {\n\tconst level = supportsColor(stream, stream && stream.isTTY);\n\treturn translateLevel(level);\n}\n\nmodule.exports = {\n\tsupportsColor: getSupportLevel,\n\tstdout: translateLevel(supportsColor(true, tty.isatty(1))),\n\tstderr: translateLevel(supportsColor(true, tty.isatty(2)))\n};\n", "/**\n * Module dependencies.\n */\n\nconst tty = require('tty');\nconst util = require('util');\n\n/**\n * This is the Node.js implementation of `debug()`.\n */\n\nexports.init = init;\nexports.log = log;\nexports.formatArgs = formatArgs;\nexports.save = save;\nexports.load = load;\nexports.useColors = useColors;\nexports.destroy = util.deprecate(\n\t() => {},\n\t'Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.'\n);\n\n/**\n * Colors.\n */\n\nexports.colors = [6, 2, 3, 4, 5, 1];\n\ntry {\n\t// Optional dependency (as in, doesn't need to be installed, NOT like optionalDependencies in package.json)\n\t// eslint-disable-next-line import/no-extraneous-dependencies\n\tconst supportsColor = require('supports-color');\n\n\tif (supportsColor && (supportsColor.stderr || supportsColor).level >= 2) {\n\t\texports.colors = [\n\t\t\t20,\n\t\t\t21,\n\t\t\t26,\n\t\t\t27,\n\t\t\t32,\n\t\t\t33,\n\t\t\t38,\n\t\t\t39,\n\t\t\t40,\n\t\t\t41,\n\t\t\t42,\n\t\t\t43,\n\t\t\t44,\n\t\t\t45,\n\t\t\t56,\n\t\t\t57,\n\t\t\t62,\n\t\t\t63,\n\t\t\t68,\n\t\t\t69,\n\t\t\t74,\n\t\t\t75,\n\t\t\t76,\n\t\t\t77,\n\t\t\t78,\n\t\t\t79,\n\t\t\t80,\n\t\t\t81,\n\t\t\t92,\n\t\t\t93,\n\t\t\t98,\n\t\t\t99,\n\t\t\t112,\n\t\t\t113,\n\t\t\t128,\n\t\t\t129,\n\t\t\t134,\n\t\t\t135,\n\t\t\t148,\n\t\t\t149,\n\t\t\t160,\n\t\t\t161,\n\t\t\t162,\n\t\t\t163,\n\t\t\t164,\n\t\t\t165,\n\t\t\t166,\n\t\t\t167,\n\t\t\t168,\n\t\t\t169,\n\t\t\t170,\n\t\t\t171,\n\t\t\t172,\n\t\t\t173,\n\t\t\t178,\n\t\t\t179,\n\t\t\t184,\n\t\t\t185,\n\t\t\t196,\n\t\t\t197,\n\t\t\t198,\n\t\t\t199,\n\t\t\t200,\n\t\t\t201,\n\t\t\t202,\n\t\t\t203,\n\t\t\t204,\n\t\t\t205,\n\t\t\t206,\n\t\t\t207,\n\t\t\t208,\n\t\t\t209,\n\t\t\t214,\n\t\t\t215,\n\t\t\t220,\n\t\t\t221\n\t\t];\n\t}\n} catch (error) {\n\t// Swallow - we only care if `supports-color` is available; it doesn't have to be.\n}\n\n/**\n * Build up the default `inspectOpts` object from the environment variables.\n *\n * $ DEBUG_COLORS=no DEBUG_DEPTH=10 DEBUG_SHOW_HIDDEN=enabled node script.js\n */\n\nexports.inspectOpts = Object.keys(process.env).filter(key => {\n\treturn /^debug_/i.test(key);\n}).reduce((obj, key) => {\n\t// Camel-case\n\tconst prop = key\n\t\t.substring(6)\n\t\t.toLowerCase()\n\t\t.replace(/_([a-z])/g, (_, k) => {\n\t\t\treturn k.toUpperCase();\n\t\t});\n\n\t// Coerce string value into JS value\n\tlet val = process.env[key];\n\tif (/^(yes|on|true|enabled)$/i.test(val)) {\n\t\tval = true;\n\t} else if (/^(no|off|false|disabled)$/i.test(val)) {\n\t\tval = false;\n\t} else if (val === 'null') {\n\t\tval = null;\n\t} else {\n\t\tval = Number(val);\n\t}\n\n\tobj[prop] = val;\n\treturn obj;\n}, {});\n\n/**\n * Is stdout a TTY? Colored output is enabled when `true`.\n */\n\nfunction useColors() {\n\treturn 'colors' in exports.inspectOpts ?\n\t\tBoolean(exports.inspectOpts.colors) :\n\t\ttty.isatty(process.stderr.fd);\n}\n\n/**\n * Adds ANSI color escape codes if enabled.\n *\n * @api public\n */\n\nfunction formatArgs(args) {\n\tconst {namespace: name, useColors} = this;\n\n\tif (useColors) {\n\t\tconst c = this.color;\n\t\tconst colorCode = '\\u001B[3' + (c < 8 ? c : '8;5;' + c);\n\t\tconst prefix = ` ${colorCode};1m${name} \\u001B[0m`;\n\n\t\targs[0] = prefix + args[0].split('\\n').join('\\n' + prefix);\n\t\targs.push(colorCode + 'm+' + module.exports.humanize(this.diff) + '\\u001B[0m');\n\t} else {\n\t\targs[0] = getDate() + name + ' ' + args[0];\n\t}\n}\n\nfunction getDate() {\n\tif (exports.inspectOpts.hideDate) {\n\t\treturn '';\n\t}\n\treturn new Date().toISOString() + ' ';\n}\n\n/**\n * Invokes `util.format()` with the specified arguments and writes to stderr.\n */\n\nfunction log(...args) {\n\treturn process.stderr.write(util.format(...args) + '\\n');\n}\n\n/**\n * Save `namespaces`.\n *\n * @param {String} namespaces\n * @api private\n */\nfunction save(namespaces) {\n\tif (namespaces) {\n\t\tprocess.env.DEBUG = namespaces;\n\t} else {\n\t\t// If you set a process.env field to null or undefined, it gets cast to the\n\t\t// string 'null' or 'undefined'. Just delete instead.\n\t\tdelete process.env.DEBUG;\n\t}\n}\n\n/**\n * Load `namespaces`.\n *\n * @return {String} returns the previously persisted debug modes\n * @api private\n */\n\nfunction load() {\n\treturn process.env.DEBUG;\n}\n\n/**\n * Init logic for `debug` instances.\n *\n * Create a new `inspectOpts` object in case `useColors` is set\n * differently for a particular `debug` instance.\n */\n\nfunction init(debug) {\n\tdebug.inspectOpts = {};\n\n\tconst keys = Object.keys(exports.inspectOpts);\n\tfor (let i = 0; i < keys.length; i++) {\n\t\tdebug.inspectOpts[keys[i]] = exports.inspectOpts[keys[i]];\n\t}\n}\n\nmodule.exports = require('./common')(exports);\n\nconst {formatters} = module.exports;\n\n/**\n * Map %o to `util.inspect()`, all on a single line.\n */\n\nformatters.o = function (v) {\n\tthis.inspectOpts.colors = this.useColors;\n\treturn util.inspect(v, this.inspectOpts)\n\t\t.split('\\n')\n\t\t.map(str => str.trim())\n\t\t.join(' ');\n};\n\n/**\n * Map %O to `util.inspect()`, allowing multiple lines if needed.\n */\n\nformatters.O = function (v) {\n\tthis.inspectOpts.colors = this.useColors;\n\treturn util.inspect(v, this.inspectOpts);\n};\n", "/**\n * Detect Electron renderer / nwjs process, which is node, but we should\n * treat as a browser.\n */\n\nif (typeof process === 'undefined' || process.type === 'renderer' || process.browser === true || process.__nwjs) {\n\tmodule.exports = require('./browser.js');\n} else {\n\tmodule.exports = require('./node.js');\n}\n", "var debug;\n\nmodule.exports = function () {\n if (!debug) {\n try {\n /* eslint global-require: off */\n debug = require(\"debug\")(\"follow-redirects\");\n }\n catch (error) { /* */ }\n if (typeof debug !== \"function\") {\n debug = function () { /* */ };\n }\n }\n debug.apply(null, arguments);\n};\n", "var url = require(\"url\");\nvar URL = url.URL;\nvar http = require(\"http\");\nvar https = require(\"https\");\nvar Writable = require(\"stream\").Writable;\nvar assert = require(\"assert\");\nvar debug = require(\"./debug\");\n\n// Create handlers that pass events from native requests\nvar events = [\"abort\", \"aborted\", \"connect\", \"error\", \"socket\", \"timeout\"];\nvar eventHandlers = Object.create(null);\nevents.forEach(function (event) {\n eventHandlers[event] = function (arg1, arg2, arg3) {\n this._redirectable.emit(event, arg1, arg2, arg3);\n };\n});\n\nvar InvalidUrlError = createErrorType(\n \"ERR_INVALID_URL\",\n \"Invalid URL\",\n TypeError\n);\n// Error types with codes\nvar RedirectionError = createErrorType(\n \"ERR_FR_REDIRECTION_FAILURE\",\n \"Redirected request failed\"\n);\nvar TooManyRedirectsError = createErrorType(\n \"ERR_FR_TOO_MANY_REDIRECTS\",\n \"Maximum number of redirects exceeded\"\n);\nvar MaxBodyLengthExceededError = createErrorType(\n \"ERR_FR_MAX_BODY_LENGTH_EXCEEDED\",\n \"Request body larger than maxBodyLength limit\"\n);\nvar WriteAfterEndError = createErrorType(\n \"ERR_STREAM_WRITE_AFTER_END\",\n \"write after end\"\n);\n\n// An HTTP(S) request that can be redirected\nfunction RedirectableRequest(options, responseCallback) {\n // Initialize the request\n Writable.call(this);\n this._sanitizeOptions(options);\n this._options = options;\n this._ended = false;\n this._ending = false;\n this._redirectCount = 0;\n this._redirects = [];\n this._requestBodyLength = 0;\n this._requestBodyBuffers = [];\n\n // Attach a callback if passed\n if (responseCallback) {\n this.on(\"response\", responseCallback);\n }\n\n // React to responses of native requests\n var self = this;\n this._onNativeResponse = function (response) {\n self._processResponse(response);\n };\n\n // Perform the first request\n this._performRequest();\n}\nRedirectableRequest.prototype = Object.create(Writable.prototype);\n\nRedirectableRequest.prototype.abort = function () {\n abortRequest(this._currentRequest);\n this.emit(\"abort\");\n};\n\n// Writes buffered data to the current native request\nRedirectableRequest.prototype.write = function (data, encoding, callback) {\n // Writing is not allowed if end has been called\n if (this._ending) {\n throw new WriteAfterEndError();\n }\n\n // Validate input and shift parameters if necessary\n if (!isString(data) && !isBuffer(data)) {\n throw new TypeError(\"data should be a string, Buffer or Uint8Array\");\n }\n if (isFunction(encoding)) {\n callback = encoding;\n encoding = null;\n }\n\n // Ignore empty buffers, since writing them doesn't invoke the callback\n // https://github.com/nodejs/node/issues/22066\n if (data.length === 0) {\n if (callback) {\n callback();\n }\n return;\n }\n // Only write when we don't exceed the maximum body length\n if (this._requestBodyLength + data.length <= this._options.maxBodyLength) {\n this._requestBodyLength += data.length;\n this._requestBodyBuffers.push({ data: data, encoding: encoding });\n this._currentRequest.write(data, encoding, callback);\n }\n // Error when we exceed the maximum body length\n else {\n this.emit(\"error\", new MaxBodyLengthExceededError());\n this.abort();\n }\n};\n\n// Ends the current native request\nRedirectableRequest.prototype.end = function (data, encoding, callback) {\n // Shift parameters if necessary\n if (isFunction(data)) {\n callback = data;\n data = encoding = null;\n }\n else if (isFunction(encoding)) {\n callback = encoding;\n encoding = null;\n }\n\n // Write data if needed and end\n if (!data) {\n this._ended = this._ending = true;\n this._currentRequest.end(null, null, callback);\n }\n else {\n var self = this;\n var currentRequest = this._currentRequest;\n this.write(data, encoding, function () {\n self._ended = true;\n currentRequest.end(null, null, callback);\n });\n this._ending = true;\n }\n};\n\n// Sets a header value on the current native request\nRedirectableRequest.prototype.setHeader = function (name, value) {\n this._options.headers[name] = value;\n this._currentRequest.setHeader(name, value);\n};\n\n// Clears a header value on the current native request\nRedirectableRequest.prototype.removeHeader = function (name) {\n delete this._options.headers[name];\n this._currentRequest.removeHeader(name);\n};\n\n// Global timeout for all underlying requests\nRedirectableRequest.prototype.setTimeout = function (msecs, callback) {\n var self = this;\n\n // Destroys the socket on timeout\n function destroyOnTimeout(socket) {\n socket.setTimeout(msecs);\n socket.removeListener(\"timeout\", socket.destroy);\n socket.addListener(\"timeout\", socket.destroy);\n }\n\n // Sets up a timer to trigger a timeout event\n function startTimer(socket) {\n if (self._timeout) {\n clearTimeout(self._timeout);\n }\n self._timeout = setTimeout(function () {\n self.emit(\"timeout\");\n clearTimer();\n }, msecs);\n destroyOnTimeout(socket);\n }\n\n // Stops a timeout from triggering\n function clearTimer() {\n // Clear the timeout\n if (self._timeout) {\n clearTimeout(self._timeout);\n self._timeout = null;\n }\n\n // Clean up all attached listeners\n self.removeListener(\"abort\", clearTimer);\n self.removeListener(\"error\", clearTimer);\n self.removeListener(\"response\", clearTimer);\n if (callback) {\n self.removeListener(\"timeout\", callback);\n }\n if (!self.socket) {\n self._currentRequest.removeListener(\"socket\", startTimer);\n }\n }\n\n // Attach callback if passed\n if (callback) {\n this.on(\"timeout\", callback);\n }\n\n // Start the timer if or when the socket is opened\n if (this.socket) {\n startTimer(this.socket);\n }\n else {\n this._currentRequest.once(\"socket\", startTimer);\n }\n\n // Clean up on events\n this.on(\"socket\", destroyOnTimeout);\n this.on(\"abort\", clearTimer);\n this.on(\"error\", clearTimer);\n this.on(\"response\", clearTimer);\n\n return this;\n};\n\n// Proxy all other public ClientRequest methods\n[\n \"flushHeaders\", \"getHeader\",\n \"setNoDelay\", \"setSocketKeepAlive\",\n].forEach(function (method) {\n RedirectableRequest.prototype[method] = function (a, b) {\n return this._currentRequest[method](a, b);\n };\n});\n\n// Proxy all public ClientRequest properties\n[\"aborted\", \"connection\", \"socket\"].forEach(function (property) {\n Object.defineProperty(RedirectableRequest.prototype, property, {\n get: function () { return this._currentRequest[property]; },\n });\n});\n\nRedirectableRequest.prototype._sanitizeOptions = function (options) {\n // Ensure headers are always present\n if (!options.headers) {\n options.headers = {};\n }\n\n // Since http.request treats host as an alias of hostname,\n // but the url module interprets host as hostname plus port,\n // eliminate the host property to avoid confusion.\n if (options.host) {\n // Use hostname if set, because it has precedence\n if (!options.hostname) {\n options.hostname = options.host;\n }\n delete options.host;\n }\n\n // Complete the URL object when necessary\n if (!options.pathname && options.path) {\n var searchPos = options.path.indexOf(\"?\");\n if (searchPos < 0) {\n options.pathname = options.path;\n }\n else {\n options.pathname = options.path.substring(0, searchPos);\n options.search = options.path.substring(searchPos);\n }\n }\n};\n\n\n// Executes the next native request (initial or redirect)\nRedirectableRequest.prototype._performRequest = function () {\n // Load the native protocol\n var protocol = this._options.protocol;\n var nativeProtocol = this._options.nativeProtocols[protocol];\n if (!nativeProtocol) {\n this.emit(\"error\", new TypeError(\"Unsupported protocol \" + protocol));\n return;\n }\n\n // If specified, use the agent corresponding to the protocol\n // (HTTP and HTTPS use different types of agents)\n if (this._options.agents) {\n var scheme = protocol.slice(0, -1);\n this._options.agent = this._options.agents[scheme];\n }\n\n // Create the native request and set up its event handlers\n var request = this._currentRequest =\n nativeProtocol.request(this._options, this._onNativeResponse);\n request._redirectable = this;\n for (var event of events) {\n request.on(event, eventHandlers[event]);\n }\n\n // RFC7230\u00A75.3.1: When making a request directly to an origin server, [\u2026]\n // a client MUST send only the absolute path [\u2026] as the request-target.\n this._currentUrl = /^\\//.test(this._options.path) ?\n url.format(this._options) :\n // When making a request to a proxy, [\u2026]\n // a client MUST send the target URI in absolute-form [\u2026].\n this._options.path;\n\n // End a redirected request\n // (The first request must be ended explicitly with RedirectableRequest#end)\n if (this._isRedirect) {\n // Write the request entity and end\n var i = 0;\n var self = this;\n var buffers = this._requestBodyBuffers;\n (function writeNext(error) {\n // Only write if this request has not been redirected yet\n /* istanbul ignore else */\n if (request === self._currentRequest) {\n // Report any write errors\n /* istanbul ignore if */\n if (error) {\n self.emit(\"error\", error);\n }\n // Write the next buffer if there are still left\n else if (i < buffers.length) {\n var buffer = buffers[i++];\n /* istanbul ignore else */\n if (!request.finished) {\n request.write(buffer.data, buffer.encoding, writeNext);\n }\n }\n // End the request if `end` has been called on us\n else if (self._ended) {\n request.end();\n }\n }\n }());\n }\n};\n\n// Processes a response from the current native request\nRedirectableRequest.prototype._processResponse = function (response) {\n // Store the redirected response\n var statusCode = response.statusCode;\n if (this._options.trackRedirects) {\n this._redirects.push({\n url: this._currentUrl,\n headers: response.headers,\n statusCode: statusCode,\n });\n }\n\n // RFC7231\u00A76.4: The 3xx (Redirection) class of status code indicates\n // that further action needs to be taken by the user agent in order to\n // fulfill the request. If a Location header field is provided,\n // the user agent MAY automatically redirect its request to the URI\n // referenced by the Location field value,\n // even if the specific status code is not understood.\n\n // If the response is not a redirect; return it as-is\n var location = response.headers.location;\n if (!location || this._options.followRedirects === false ||\n statusCode < 300 || statusCode >= 400) {\n response.responseUrl = this._currentUrl;\n response.redirects = this._redirects;\n this.emit(\"response\", response);\n\n // Clean up\n this._requestBodyBuffers = [];\n return;\n }\n\n // The response is a redirect, so abort the current request\n abortRequest(this._currentRequest);\n // Discard the remainder of the response to avoid waiting for data\n response.destroy();\n\n // RFC7231\u00A76.4: A client SHOULD detect and intervene\n // in cyclical redirections (i.e., \"infinite\" redirection loops).\n if (++this._redirectCount > this._options.maxRedirects) {\n this.emit(\"error\", new TooManyRedirectsError());\n return;\n }\n\n // Store the request headers if applicable\n var requestHeaders;\n var beforeRedirect = this._options.beforeRedirect;\n if (beforeRedirect) {\n requestHeaders = Object.assign({\n // The Host header was set by nativeProtocol.request\n Host: response.req.getHeader(\"host\"),\n }, this._options.headers);\n }\n\n // RFC7231\u00A76.4: Automatic redirection needs to done with\n // care for methods not known to be safe, [\u2026]\n // RFC7231\u00A76.4.2\u20133: For historical reasons, a user agent MAY change\n // the request method from POST to GET for the subsequent request.\n var method = this._options.method;\n if ((statusCode === 301 || statusCode === 302) && this._options.method === \"POST\" ||\n // RFC7231\u00A76.4.4: The 303 (See Other) status code indicates that\n // the server is redirecting the user agent to a different resource [\u2026]\n // A user agent can perform a retrieval request targeting that URI\n // (a GET or HEAD request if using HTTP) [\u2026]\n (statusCode === 303) && !/^(?:GET|HEAD)$/.test(this._options.method)) {\n this._options.method = \"GET\";\n // Drop a possible entity and headers related to it\n this._requestBodyBuffers = [];\n removeMatchingHeaders(/^content-/i, this._options.headers);\n }\n\n // Drop the Host header, as the redirect might lead to a different host\n var currentHostHeader = removeMatchingHeaders(/^host$/i, this._options.headers);\n\n // If the redirect is relative, carry over the host of the last request\n var currentUrlParts = url.parse(this._currentUrl);\n var currentHost = currentHostHeader || currentUrlParts.host;\n var currentUrl = /^\\w+:/.test(location) ? this._currentUrl :\n url.format(Object.assign(currentUrlParts, { host: currentHost }));\n\n // Determine the URL of the redirection\n var redirectUrl;\n try {\n redirectUrl = url.resolve(currentUrl, location);\n }\n catch (cause) {\n this.emit(\"error\", new RedirectionError({ cause: cause }));\n return;\n }\n\n // Create the redirected request\n debug(\"redirecting to\", redirectUrl);\n this._isRedirect = true;\n var redirectUrlParts = url.parse(redirectUrl);\n Object.assign(this._options, redirectUrlParts);\n\n // Drop confidential headers when redirecting to a less secure protocol\n // or to a different domain that is not a superdomain\n if (redirectUrlParts.protocol !== currentUrlParts.protocol &&\n redirectUrlParts.protocol !== \"https:\" ||\n redirectUrlParts.host !== currentHost &&\n !isSubdomain(redirectUrlParts.host, currentHost)) {\n removeMatchingHeaders(/^(?:authorization|cookie)$/i, this._options.headers);\n }\n\n // Evaluate the beforeRedirect callback\n if (isFunction(beforeRedirect)) {\n var responseDetails = {\n headers: response.headers,\n statusCode: statusCode,\n };\n var requestDetails = {\n url: currentUrl,\n method: method,\n headers: requestHeaders,\n };\n try {\n beforeRedirect(this._options, responseDetails, requestDetails);\n }\n catch (err) {\n this.emit(\"error\", err);\n return;\n }\n this._sanitizeOptions(this._options);\n }\n\n // Perform the redirected request\n try {\n this._performRequest();\n }\n catch (cause) {\n this.emit(\"error\", new RedirectionError({ cause: cause }));\n }\n};\n\n// Wraps the key/value object of protocols with redirect functionality\nfunction wrap(protocols) {\n // Default settings\n var exports = {\n maxRedirects: 21,\n maxBodyLength: 10 * 1024 * 1024,\n };\n\n // Wrap each protocol\n var nativeProtocols = {};\n Object.keys(protocols).forEach(function (scheme) {\n var protocol = scheme + \":\";\n var nativeProtocol = nativeProtocols[protocol] = protocols[scheme];\n var wrappedProtocol = exports[scheme] = Object.create(nativeProtocol);\n\n // Executes a request, following redirects\n function request(input, options, callback) {\n // Parse parameters\n if (isString(input)) {\n var parsed;\n try {\n parsed = urlToOptions(new URL(input));\n }\n catch (err) {\n /* istanbul ignore next */\n parsed = url.parse(input);\n }\n if (!isString(parsed.protocol)) {\n throw new InvalidUrlError({ input });\n }\n input = parsed;\n }\n else if (URL && (input instanceof URL)) {\n input = urlToOptions(input);\n }\n else {\n callback = options;\n options = input;\n input = { protocol: protocol };\n }\n if (isFunction(options)) {\n callback = options;\n options = null;\n }\n\n // Set defaults\n options = Object.assign({\n maxRedirects: exports.maxRedirects,\n maxBodyLength: exports.maxBodyLength,\n }, input, options);\n options.nativeProtocols = nativeProtocols;\n if (!isString(options.host) && !isString(options.hostname)) {\n options.hostname = \"::1\";\n }\n\n assert.equal(options.protocol, protocol, \"protocol mismatch\");\n debug(\"options\", options);\n return new RedirectableRequest(options, callback);\n }\n\n // Executes a GET request, following redirects\n function get(input, options, callback) {\n var wrappedRequest = wrappedProtocol.request(input, options, callback);\n wrappedRequest.end();\n return wrappedRequest;\n }\n\n // Expose the properties on the wrapped protocol\n Object.defineProperties(wrappedProtocol, {\n request: { value: request, configurable: true, enumerable: true, writable: true },\n get: { value: get, configurable: true, enumerable: true, writable: true },\n });\n });\n return exports;\n}\n\n/* istanbul ignore next */\nfunction noop() { /* empty */ }\n\n// from https://github.com/nodejs/node/blob/master/lib/internal/url.js\nfunction urlToOptions(urlObject) {\n var options = {\n protocol: urlObject.protocol,\n hostname: urlObject.hostname.startsWith(\"[\") ?\n /* istanbul ignore next */\n urlObject.hostname.slice(1, -1) :\n urlObject.hostname,\n hash: urlObject.hash,\n search: urlObject.search,\n pathname: urlObject.pathname,\n path: urlObject.pathname + urlObject.search,\n href: urlObject.href,\n };\n if (urlObject.port !== \"\") {\n options.port = Number(urlObject.port);\n }\n return options;\n}\n\nfunction removeMatchingHeaders(regex, headers) {\n var lastValue;\n for (var header in headers) {\n if (regex.test(header)) {\n lastValue = headers[header];\n delete headers[header];\n }\n }\n return (lastValue === null || typeof lastValue === \"undefined\") ?\n undefined : String(lastValue).trim();\n}\n\nfunction createErrorType(code, message, baseClass) {\n // Create constructor\n function CustomError(properties) {\n Error.captureStackTrace(this, this.constructor);\n Object.assign(this, properties || {});\n this.code = code;\n this.message = this.cause ? message + \": \" + this.cause.message : message;\n }\n\n // Attach constructor and set default properties\n CustomError.prototype = new (baseClass || Error)();\n CustomError.prototype.constructor = CustomError;\n CustomError.prototype.name = \"Error [\" + code + \"]\";\n return CustomError;\n}\n\nfunction abortRequest(request) {\n for (var event of events) {\n request.removeListener(event, eventHandlers[event]);\n }\n request.on(\"error\", noop);\n request.abort();\n}\n\nfunction isSubdomain(subdomain, domain) {\n assert(isString(subdomain) && isString(domain));\n var dot = subdomain.length - domain.length - 1;\n return dot > 0 && subdomain[dot] === \".\" && subdomain.endsWith(domain);\n}\n\nfunction isString(value) {\n return typeof value === \"string\" || value instanceof String;\n}\n\nfunction isFunction(value) {\n return typeof value === \"function\";\n}\n\nfunction isBuffer(value) {\n return typeof value === \"object\" && (\"length\" in value);\n}\n\n// Exports\nmodule.exports = wrap({ http: http, https: https });\nmodule.exports.wrap = wrap;\n", "module.exports = {\n \"version\": \"0.26.1\"\n};", "'use strict';\n\nvar utils = require('./../utils');\nvar settle = require('./../core/settle');\nvar buildFullPath = require('../core/buildFullPath');\nvar buildURL = require('./../helpers/buildURL');\nvar http = require('http');\nvar https = require('https');\nvar httpFollow = require('follow-redirects').http;\nvar httpsFollow = require('follow-redirects').https;\nvar url = require('url');\nvar zlib = require('zlib');\nvar VERSION = require('./../env/data').version;\nvar createError = require('../core/createError');\nvar enhanceError = require('../core/enhanceError');\nvar transitionalDefaults = require('../defaults/transitional');\nvar Cancel = require('../cancel/Cancel');\n\nvar isHttps = /https:?/;\n\n/**\n *\n * @param {http.ClientRequestArgs} options\n * @param {AxiosProxyConfig} proxy\n * @param {string} location\n */\nfunction setProxy(options, proxy, location) {\n options.hostname = proxy.host;\n options.host = proxy.host;\n options.port = proxy.port;\n options.path = location;\n\n // Basic proxy authorization\n if (proxy.auth) {\n var base64 = Buffer.from(proxy.auth.username + ':' + proxy.auth.password, 'utf8').toString('base64');\n options.headers['Proxy-Authorization'] = 'Basic ' + base64;\n }\n\n // If a proxy is used, any redirects must also pass through the proxy\n options.beforeRedirect = function beforeRedirect(redirection) {\n redirection.headers.host = redirection.host;\n setProxy(redirection, proxy, redirection.href);\n };\n}\n\n/*eslint consistent-return:0*/\nmodule.exports = function httpAdapter(config) {\n return new Promise(function dispatchHttpRequest(resolvePromise, rejectPromise) {\n var 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 var resolve = function resolve(value) {\n done();\n resolvePromise(value);\n };\n var rejected = false;\n var reject = function reject(value) {\n done();\n rejected = true;\n rejectPromise(value);\n };\n var data = config.data;\n var headers = config.headers;\n var headerNames = {};\n\n Object.keys(headers).forEach(function storeLowerName(name) {\n headerNames[name.toLowerCase()] = name;\n });\n\n // Set User-Agent (required by some servers)\n // See https://github.com/axios/axios/issues/69\n if ('user-agent' in headerNames) {\n // User-Agent is specified; handle case where no UA header is desired\n if (!headers[headerNames['user-agent']]) {\n delete headers[headerNames['user-agent']];\n }\n // Otherwise, use specified value\n } else {\n // Only set header if it hasn't been set in config\n headers['User-Agent'] = 'axios/' + VERSION;\n }\n\n if (data && !utils.isStream(data)) {\n if (Buffer.isBuffer(data)) {\n // Nothing to do...\n } else if (utils.isArrayBuffer(data)) {\n data = Buffer.from(new Uint8Array(data));\n } else if (utils.isString(data)) {\n data = Buffer.from(data, 'utf-8');\n } else {\n return reject(createError(\n 'Data after transformation must be a string, an ArrayBuffer, a Buffer, or a Stream',\n config\n ));\n }\n\n if (config.maxBodyLength > -1 && data.length > config.maxBodyLength) {\n return reject(createError('Request body larger than maxBodyLength limit', config));\n }\n\n // Add Content-Length header if data exists\n if (!headerNames['content-length']) {\n headers['Content-Length'] = data.length;\n }\n }\n\n // HTTP basic authentication\n var auth = undefined;\n if (config.auth) {\n var username = config.auth.username || '';\n var password = config.auth.password || '';\n auth = username + ':' + password;\n }\n\n // Parse url\n var fullPath = buildFullPath(config.baseURL, config.url);\n var parsed = url.parse(fullPath);\n var protocol = parsed.protocol || 'http:';\n\n if (!auth && parsed.auth) {\n var urlAuth = parsed.auth.split(':');\n var urlUsername = urlAuth[0] || '';\n var urlPassword = urlAuth[1] || '';\n auth = urlUsername + ':' + urlPassword;\n }\n\n if (auth && headerNames.authorization) {\n delete headers[headerNames.authorization];\n }\n\n var isHttpsRequest = isHttps.test(protocol);\n var agent = isHttpsRequest ? config.httpsAgent : config.httpAgent;\n\n try {\n buildURL(parsed.path, config.params, config.paramsSerializer).replace(/^\\?/, '');\n } catch (err) {\n var customErr = new Error(err.message);\n customErr.config = config;\n customErr.url = config.url;\n customErr.exists = true;\n reject(customErr);\n }\n\n var options = {\n path: buildURL(parsed.path, config.params, config.paramsSerializer).replace(/^\\?/, ''),\n method: config.method.toUpperCase(),\n headers: headers,\n agent: agent,\n agents: { http: config.httpAgent, https: config.httpsAgent },\n auth: auth\n };\n\n if (config.socketPath) {\n options.socketPath = config.socketPath;\n } else {\n options.hostname = parsed.hostname;\n options.port = parsed.port;\n }\n\n var proxy = config.proxy;\n if (!proxy && proxy !== false) {\n var proxyEnv = protocol.slice(0, -1) + '_proxy';\n var proxyUrl = process.env[proxyEnv] || process.env[proxyEnv.toUpperCase()];\n if (proxyUrl) {\n var parsedProxyUrl = url.parse(proxyUrl);\n var noProxyEnv = process.env.no_proxy || process.env.NO_PROXY;\n var shouldProxy = true;\n\n if (noProxyEnv) {\n var noProxy = noProxyEnv.split(',').map(function trim(s) {\n return s.trim();\n });\n\n shouldProxy = !noProxy.some(function proxyMatch(proxyElement) {\n if (!proxyElement) {\n return false;\n }\n if (proxyElement === '*') {\n return true;\n }\n if (proxyElement[0] === '.' &&\n parsed.hostname.substr(parsed.hostname.length - proxyElement.length) === proxyElement) {\n return true;\n }\n\n return parsed.hostname === proxyElement;\n });\n }\n\n if (shouldProxy) {\n proxy = {\n host: parsedProxyUrl.hostname,\n port: parsedProxyUrl.port,\n protocol: parsedProxyUrl.protocol\n };\n\n if (parsedProxyUrl.auth) {\n var proxyUrlAuth = parsedProxyUrl.auth.split(':');\n proxy.auth = {\n username: proxyUrlAuth[0],\n password: proxyUrlAuth[1]\n };\n }\n }\n }\n }\n\n if (proxy) {\n options.headers.host = parsed.hostname + (parsed.port ? ':' + parsed.port : '');\n setProxy(options, proxy, protocol + '//' + parsed.hostname + (parsed.port ? ':' + parsed.port : '') + options.path);\n }\n\n var transport;\n var isHttpsProxy = isHttpsRequest && (proxy ? isHttps.test(proxy.protocol) : true);\n if (config.transport) {\n transport = config.transport;\n } else if (config.maxRedirects === 0) {\n transport = isHttpsProxy ? https : http;\n } else {\n if (config.maxRedirects) {\n options.maxRedirects = config.maxRedirects;\n }\n transport = isHttpsProxy ? httpsFollow : httpFollow;\n }\n\n if (config.maxBodyLength > -1) {\n options.maxBodyLength = config.maxBodyLength;\n }\n\n if (config.insecureHTTPParser) {\n options.insecureHTTPParser = config.insecureHTTPParser;\n }\n\n // Create the request\n var req = transport.request(options, function handleResponse(res) {\n if (req.aborted) return;\n\n // uncompress the response body transparently if required\n var stream = res;\n\n // return the last request in case of redirects\n var lastRequest = res.req || req;\n\n\n // if no content, is HEAD request or decompress disabled we should not decompress\n if (res.statusCode !== 204 && lastRequest.method !== 'HEAD' && config.decompress !== false) {\n switch (res.headers['content-encoding']) {\n /*eslint default-case:0*/\n case 'gzip':\n case 'compress':\n case 'deflate':\n // add the unzipper to the body stream processing pipeline\n stream = stream.pipe(zlib.createUnzip());\n\n // remove the content-encoding in order to not confuse downstream operations\n delete res.headers['content-encoding'];\n break;\n }\n }\n\n var response = {\n status: res.statusCode,\n statusText: res.statusMessage,\n headers: res.headers,\n config: config,\n request: lastRequest\n };\n\n if (config.responseType === 'stream') {\n response.data = stream;\n settle(resolve, reject, response);\n } else {\n var responseBuffer = [];\n var totalResponseBytes = 0;\n stream.on('data', function handleStreamData(chunk) {\n responseBuffer.push(chunk);\n totalResponseBytes += chunk.length;\n\n // make sure the content length is not over the maxContentLength if specified\n if (config.maxContentLength > -1 && totalResponseBytes > config.maxContentLength) {\n // stream.destoy() emit aborted event before calling reject() on Node.js v16\n rejected = true;\n stream.destroy();\n reject(createError('maxContentLength size of ' + config.maxContentLength + ' exceeded',\n config, null, lastRequest));\n }\n });\n\n stream.on('aborted', function handlerStreamAborted() {\n if (rejected) {\n return;\n }\n stream.destroy();\n reject(createError('error request aborted', config, 'ERR_REQUEST_ABORTED', lastRequest));\n });\n\n stream.on('error', function handleStreamError(err) {\n if (req.aborted) return;\n reject(enhanceError(err, config, null, lastRequest));\n });\n\n stream.on('end', function handleStreamEnd() {\n try {\n var responseData = responseBuffer.length === 1 ? responseBuffer[0] : Buffer.concat(responseBuffer);\n if (config.responseType !== 'arraybuffer') {\n responseData = responseData.toString(config.responseEncoding);\n if (!config.responseEncoding || config.responseEncoding === 'utf8') {\n responseData = utils.stripBOM(responseData);\n }\n }\n response.data = responseData;\n } catch (err) {\n reject(enhanceError(err, config, err.code, response.request, response));\n }\n settle(resolve, reject, response);\n });\n }\n });\n\n // Handle errors\n req.on('error', function handleRequestError(err) {\n if (req.aborted && err.code !== 'ERR_FR_TOO_MANY_REDIRECTS') return;\n reject(enhanceError(err, config, null, req));\n });\n\n // set tcp keep alive to prevent drop connection by peer\n req.on('socket', function handleRequestSocket(socket) {\n // default interval of sending ack packet is 1 minute\n socket.setKeepAlive(true, 1000 * 60);\n });\n\n // Handle request timeout\n if (config.timeout) {\n // This is forcing a int timeout to avoid problems if the `req` interface doesn't handle other types.\n var timeout = parseInt(config.timeout, 10);\n\n if (isNaN(timeout)) {\n reject(createError(\n 'error trying to parse `config.timeout` to int',\n config,\n 'ERR_PARSE_TIMEOUT',\n req\n ));\n\n return;\n }\n\n // Sometime, the response will be very slow, and does not respond, the connect event will be block by event loop system.\n // And timer callback will be fired, and abort() will be invoked before connection, then get \"socket hang up\" and code ECONNRESET.\n // At this time, if we have a large number of request, nodejs will hang up some socket on background. and the number will up and up.\n // And then these socket which be hang up will devoring CPU little by little.\n // ClientRequest.setTimeout will be fired on the specify milliseconds, and can make sure that abort() will be fired after connect.\n req.setTimeout(timeout, function handleRequestTimeout() {\n req.abort();\n var timeoutErrorMessage = '';\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n } else {\n timeoutErrorMessage = 'timeout of ' + config.timeout + 'ms exceeded';\n }\n var transitional = config.transitional || transitionalDefaults;\n reject(createError(\n timeoutErrorMessage,\n config,\n transitional.clarifyTimeoutError ? 'ETIMEDOUT' : 'ECONNABORTED',\n req\n ));\n });\n }\n\n if (config.cancelToken || config.signal) {\n // Handle cancellation\n // eslint-disable-next-line func-names\n onCanceled = function(cancel) {\n if (req.aborted) return;\n\n req.abort();\n reject(!cancel || (cancel && cancel.type) ? new Cancel('canceled') : cancel);\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\n // Send the request\n if (utils.isStream(data)) {\n data.on('error', function handleStreamError(err) {\n reject(enhanceError(err, config, null, req));\n }).pipe(req);\n } else {\n req.end(data);\n }\n });\n};\n", "'use strict';\n\nvar utils = require('../utils');\nvar normalizeHeaderName = require('../helpers/normalizeHeaderName');\nvar enhanceError = require('../core/enhanceError');\nvar transitionalDefaults = require('./transitional');\n\nvar DEFAULT_CONTENT_TYPE = {\n 'Content-Type': 'application/x-www-form-urlencoded'\n};\n\nfunction setContentTypeIfUnset(headers, value) {\n if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {\n headers['Content-Type'] = value;\n }\n}\n\nfunction getDefaultAdapter() {\n var adapter;\n if (typeof XMLHttpRequest !== 'undefined') {\n // For browsers use XHR adapter\n adapter = require('../adapters/xhr');\n } else if (typeof process !== 'undefined' && Object.prototype.toString.call(process) === '[object process]') {\n // For node use HTTP adapter\n adapter = require('../adapters/http');\n }\n return adapter;\n}\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\nvar defaults = {\n\n transitional: transitionalDefaults,\n\n adapter: getDefaultAdapter(),\n\n transformRequest: [function transformRequest(data, headers) {\n normalizeHeaderName(headers, 'Accept');\n normalizeHeaderName(headers, 'Content-Type');\n\n if (utils.isFormData(data) ||\n utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');\n return data.toString();\n }\n if (utils.isObject(data) || (headers && headers['Content-Type'] === 'application/json')) {\n setContentTypeIfUnset(headers, 'application/json');\n return stringifySafely(data);\n }\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n var transitional = this.transitional || defaults.transitional;\n var silentJSONParsing = transitional && transitional.silentJSONParsing;\n var forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n var strictJSONParsing = !silentJSONParsing && this.responseType === 'json';\n\n if (strictJSONParsing || (forcedJSONParsing && utils.isString(data) && data.length)) {\n try {\n return JSON.parse(data);\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw enhanceError(e, this, 'E_JSON_PARSE');\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 validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n },\n\n headers: {\n common: {\n 'Accept': 'application/json, text/plain, */*'\n }\n }\n};\n\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n defaults.headers[method] = {};\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\n\nmodule.exports = defaults;\n", "'use strict';\n\nvar utils = require('./../utils');\nvar defaults = require('../defaults');\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Object|String} data The data to be transformed\n * @param {Array} headers The headers for the request or response\n * @param {Array|Function} fns A single function or Array of functions\n * @returns {*} The resulting transformed data\n */\nmodule.exports = function transformData(data, headers, fns) {\n var context = this || defaults;\n /*eslint no-param-reassign:0*/\n utils.forEach(fns, function transform(fn) {\n data = fn.call(context, data, headers);\n });\n\n return data;\n};\n", "'use strict';\n\nmodule.exports = function isCancel(value) {\n return !!(value && value.__CANCEL__);\n};\n", "'use strict';\n\nvar utils = require('./../utils');\nvar transformData = require('./transformData');\nvar isCancel = require('../cancel/isCancel');\nvar defaults = require('../defaults');\nvar Cancel = require('../cancel/Cancel');\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n\n if (config.signal && config.signal.aborted) {\n throw new Cancel('canceled');\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 * @returns {Promise} The Promise to be fulfilled\n */\nmodule.exports = function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n // Ensure headers exist\n config.headers = config.headers || {};\n\n // Transform request data\n config.data = transformData.call(\n config,\n config.data,\n config.headers,\n config.transformRequest\n );\n\n // Flatten headers\n config.headers = utils.merge(\n config.headers.common || {},\n config.headers[config.method] || {},\n config.headers\n );\n\n utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n function cleanHeaderConfig(method) {\n delete config.headers[method];\n }\n );\n\n var adapter = 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 response.data,\n response.headers,\n config.transformResponse\n );\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 reason.response.data,\n reason.response.headers,\n config.transformResponse\n );\n }\n }\n\n return Promise.reject(reason);\n });\n};\n", "'use strict';\n\nvar utils = require('../utils');\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 * @returns {Object} New object resulting from merging config2 to config1\n */\nmodule.exports = function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n var config = {};\n\n function getMergedValue(target, source) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge(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(prop) {\n if (!utils.isUndefined(config2[prop])) {\n return getMergedValue(config1[prop], config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n return getMergedValue(undefined, config1[prop]);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function valueFromConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n return getMergedValue(undefined, config2[prop]);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function defaultToConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n return getMergedValue(undefined, config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n return getMergedValue(undefined, config1[prop]);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDirectKeys(prop) {\n if (prop in config2) {\n return getMergedValue(config1[prop], config2[prop]);\n } else if (prop in config1) {\n return getMergedValue(undefined, config1[prop]);\n }\n }\n\n var 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 '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 'transport': defaultToConfig2,\n 'httpAgent': defaultToConfig2,\n 'httpsAgent': defaultToConfig2,\n 'cancelToken': defaultToConfig2,\n 'socketPath': defaultToConfig2,\n 'responseEncoding': defaultToConfig2,\n 'validateStatus': mergeDirectKeys\n };\n\n utils.forEach(Object.keys(config1).concat(Object.keys(config2)), function computeConfigValue(prop) {\n var merge = mergeMap[prop] || mergeDeepProperties;\n var configValue = merge(prop);\n (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);\n });\n\n return config;\n};\n", "'use strict';\n\nvar VERSION = require('../env/data').version;\n\nvar validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach(function(type, i) {\n validators[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nvar deprecatedWarnings = {};\n\n/**\n * Transitional option validator\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 * @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 function(value, opt, opts) {\n if (validator === false) {\n throw new Error(formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')));\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 * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new TypeError('options must be an object');\n }\n var keys = Object.keys(options);\n var i = keys.length;\n while (i-- > 0) {\n var opt = keys[i];\n var validator = schema[opt];\n if (validator) {\n var value = options[opt];\n var result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new TypeError('option ' + opt + ' must be ' + result);\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw Error('Unknown option ' + opt);\n }\n }\n}\n\nmodule.exports = {\n assertOptions: assertOptions,\n validators: validators\n};\n", "'use strict';\n\nvar utils = require('./../utils');\nvar buildURL = require('../helpers/buildURL');\nvar InterceptorManager = require('./InterceptorManager');\nvar dispatchRequest = require('./dispatchRequest');\nvar mergeConfig = require('./mergeConfig');\nvar validator = require('../helpers/validator');\n\nvar validators = validator.validators;\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n */\nfunction Axios(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 {Object} config The config specific for this request (merged with this.defaults)\n */\nAxios.prototype.request = function 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 // Set config.method\n if (config.method) {\n config.method = config.method.toLowerCase();\n } else if (this.defaults.method) {\n config.method = this.defaults.method.toLowerCase();\n } else {\n config.method = 'get';\n }\n\n var transitional = config.transitional;\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 // filter out skipped interceptors\n var requestInterceptorChain = [];\n var 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 var responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n var promise;\n\n if (!synchronousRequestInterceptors) {\n var chain = [dispatchRequest, undefined];\n\n Array.prototype.unshift.apply(chain, requestInterceptorChain);\n chain = chain.concat(responseInterceptorChain);\n\n promise = Promise.resolve(config);\n while (chain.length) {\n promise = promise.then(chain.shift(), chain.shift());\n }\n\n return promise;\n }\n\n\n var newConfig = config;\n while (requestInterceptorChain.length) {\n var onFulfilled = requestInterceptorChain.shift();\n var onRejected = requestInterceptorChain.shift();\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected(error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest(newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n while (responseInterceptorChain.length) {\n promise = promise.then(responseInterceptorChain.shift(), responseInterceptorChain.shift());\n }\n\n return promise;\n};\n\nAxios.prototype.getUri = function getUri(config) {\n config = mergeConfig(this.defaults, config);\n return buildURL(config.url, config.params, config.paramsSerializer).replace(/^\\?/, '');\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: method,\n url: url,\n data: (config || {}).data\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: data\n }));\n };\n});\n\nmodule.exports = Axios;\n", "'use strict';\n\nvar Cancel = require('./Cancel');\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @class\n * @param {Function} executor The executor function.\n */\nfunction CancelToken(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n var resolvePromise;\n\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n var token = this;\n\n // eslint-disable-next-line func-names\n this.promise.then(function(cancel) {\n if (!token._listeners) return;\n\n var i;\n var l = token._listeners.length;\n\n for (i = 0; i < l; i++) {\n token._listeners[i](cancel);\n }\n token._listeners = null;\n });\n\n // eslint-disable-next-line func-names\n this.promise.then = function(onfulfilled) {\n var _resolve;\n // eslint-disable-next-line func-names\n var promise = new Promise(function(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) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new Cancel(message);\n resolvePromise(token.reason);\n });\n}\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nCancelToken.prototype.throwIfRequested = function throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n};\n\n/**\n * Subscribe to the cancel signal\n */\n\nCancelToken.prototype.subscribe = function 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\nCancelToken.prototype.unsubscribe = function unsubscribe(listener) {\n if (!this._listeners) {\n return;\n }\n var 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 */\nCancelToken.source = function source() {\n var cancel;\n var token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token: token,\n cancel: cancel\n };\n};\n\nmodule.exports = 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 * @returns {Function}\n */\nmodule.exports = function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n};\n", "'use strict';\n\nvar utils = require('./../utils');\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nmodule.exports = function isAxiosError(payload) {\n return utils.isObject(payload) && (payload.isAxiosError === true);\n};\n", "'use strict';\n\nvar utils = require('./utils');\nvar bind = require('./helpers/bind');\nvar Axios = require('./core/Axios');\nvar mergeConfig = require('./core/mergeConfig');\nvar defaults = require('./defaults');\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n * @return {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n var context = new Axios(defaultConfig);\n var instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context);\n\n // Copy context to instance\n utils.extend(instance, context);\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\nvar axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Expose Cancel & CancelToken\naxios.Cancel = require('./cancel/Cancel');\naxios.CancelToken = require('./cancel/CancelToken');\naxios.isCancel = require('./cancel/isCancel');\naxios.VERSION = require('./env/data').version;\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\naxios.spread = require('./helpers/spread');\n\n// Expose isAxiosError\naxios.isAxiosError = require('./helpers/isAxiosError');\n\nmodule.exports = axios;\n\n// Allow use of default import syntax in TypeScript\nmodule.exports.default = axios;\n", "module.exports = require('./lib/axios');", "import type { LoadConfig } from \"../types\";\n\nconst defaultLoadConfig = {\n nftExplorerBaseURL: \"https://nft.api.live.ledger.com/v1/ethereum\",\n pluginBaseURL: \"https://cdn.live.ledger.com\",\n extraPlugins: null,\n cryptoassetsBaseURL: \"https://cdn.live.ledger.com/cryptoassets\",\n};\n\nexport function getLoadConfig(userLoadConfig?: LoadConfig): LoadConfig {\n return {\n ...defaultLoadConfig,\n ...userLoadConfig,\n };\n}\n", "import axios from \"axios\";\nimport { getLoadConfig } from \"./loadConfig\";\nimport type { LoadConfig } from \"../types\";\nimport { log } from \"@ledgerhq/logs\";\n\ntype ContractMethod = {\n payload: string;\n signature: string;\n plugin: string;\n erc20OfInterest: string[];\n abi: any;\n};\n\n/**\n * Retrieve the metadatas a given contract address and a method selector\n */\nexport const loadInfosForContractMethod = async (\n contractAddress: string,\n selector: string,\n chainId: number,\n userLoadConfig: LoadConfig\n): Promise => {\n const { pluginBaseURL, extraPlugins } = getLoadConfig(userLoadConfig);\n\n let data = {};\n\n if (pluginBaseURL) {\n const url = `${pluginBaseURL}/plugins/ethereum.json`;\n data = await axios\n .get(`${pluginBaseURL}/plugins/ethereum.json`)\n .then((r) => r.data as any)\n .catch((e) => {\n log(\"error\", \"could not fetch from \" + url + \": \" + String(e));\n return null;\n });\n }\n\n if (extraPlugins) {\n data = { ...data, ...extraPlugins };\n }\n\n if (!data) return;\n\n const lcSelector = selector.toLowerCase();\n const lcContractAddress = contractAddress.toLowerCase();\n\n if (lcContractAddress in data) {\n const contractSelectors = data[lcContractAddress];\n\n if (lcSelector in contractSelectors) {\n return {\n payload: contractSelectors[lcSelector][\"serialized_data\"],\n signature: contractSelectors[lcSelector][\"signature\"],\n plugin: contractSelectors[lcSelector][\"plugin\"],\n erc20OfInterest: contractSelectors[lcSelector][\"erc20OfInterest\"],\n abi: contractSelectors[\"abi\"],\n };\n }\n }\n};\n", "import arbitrum_tokens from \"./42161/erc20.json\";\nimport bsc_tokens from \"./56/erc20.json\";\nimport cronos_tokens from \"./25/erc20.json\";\nimport ethereum_tokens from \"./1/erc20.json\";\nimport ethereum_goerli_tokens from \"./5/erc20.json\";\nimport ethereum_rinkeby_tokens from \"./4/erc20.json\";\nimport ethereum_ropsten_tokens from \"./3/erc20.json\";\nimport ethereum_sepolia_tokens from \"./11155111/erc20.json\";\nimport fantom_tokens from \"./250/erc20.json\";\nimport flare_tokens from \"./14/erc20.json\";\nimport moonbeam_tokens from \"./1284/erc20.json\";\nimport optimism_tokens from \"./10/erc20.json\";\nimport polygon_tokens from \"./137/erc20.json\";\nimport songbird_tokens from \"./19/erc20.json\";\nimport arbitrum_signatures from \"./42161/erc20-signatures.json\";\nimport bsc_signatures from \"./56/erc20-signatures.json\";\nimport cronos_signatures from \"./25/erc20-signatures.json\";\nimport ethereum_signatures from \"./1/erc20-signatures.json\";\nimport ethereum_goerli_signatures from \"./5/erc20-signatures.json\";\nimport ethereum_rinkeby_signatures from \"./4/erc20-signatures.json\";\nimport ethereum_ropsten_signatures from \"./3/erc20-signatures.json\";\nimport ethereum_sepolia_signatures from \"./11155111/erc20-signatures.json\";\nimport fantom_signatures from \"./250/erc20-signatures.json\";\nimport flare_signatures from \"./14/erc20-signatures.json\";\nimport moonbeam_signatures from \"./1284/erc20-signatures.json\";\nimport optimism_signatures from \"./10/erc20-signatures.json\";\nimport polygon_signatures from \"./137/erc20-signatures.json\";\nimport songbird_signatures from \"./19/erc20-signatures.json\";\n\nexport const tokens = {\n 42161: arbitrum_tokens,\n 56: bsc_tokens,\n 25: cronos_tokens,\n 1: ethereum_tokens,\n 5: ethereum_goerli_tokens,\n 4: ethereum_rinkeby_tokens,\n 3: ethereum_ropsten_tokens,\n 11155111: ethereum_sepolia_tokens,\n 250: fantom_tokens,\n 14: flare_tokens,\n 1284: moonbeam_tokens,\n 10: optimism_tokens,\n 137: polygon_tokens,\n 19: songbird_tokens,\n};\n\nexport const signatures = {\n 42161: arbitrum_signatures,\n 56: bsc_signatures,\n 25: cronos_signatures,\n 1: ethereum_signatures,\n 5: ethereum_goerli_signatures,\n 4: ethereum_rinkeby_signatures,\n 3: ethereum_ropsten_signatures,\n 11155111: ethereum_sepolia_signatures,\n 250: fantom_signatures,\n 14: flare_signatures,\n 1284: moonbeam_signatures,\n 10: optimism_signatures,\n 137: polygon_signatures,\n 19: songbird_signatures,\n};\n\nexport default {\n tokens,\n signatures,\n};\n", "import axios from \"axios\";\nimport { log } from \"@ledgerhq/logs\";\nimport { signatures as signaturesByChainId } from \"@ledgerhq/cryptoassets/data/evm/index\";\nimport { getLoadConfig } from \"./loadConfig\";\nimport { LoadConfig } from \"../types\";\n\nconst asContractAddress = (addr: string) => {\n const a = addr.toLowerCase();\n return a.startsWith(\"0x\") ? a : \"0x\" + a;\n};\n\nexport const findERC20SignaturesInfo = async (\n userLoadConfig: LoadConfig,\n chainId: number\n): Promise => {\n const { cryptoassetsBaseURL } = getLoadConfig(userLoadConfig);\n if (!cryptoassetsBaseURL) return null;\n\n const url = `${cryptoassetsBaseURL}/evm/${chainId}/erc20-signatures.json`;\n const blob = await axios\n .get(url)\n .then(({ data }) => {\n if (!data || typeof data !== \"string\") {\n throw new Error(\n `ERC20 signatures for chainId ${chainId} file is malformed ${url}`\n );\n }\n return data;\n })\n .catch((e) => {\n log(\"error\", \"could not fetch from \" + url + \": \" + String(e));\n return null;\n });\n\n return blob;\n};\n\n/**\n * Retrieve the token information by a given contract address if any\n */\nexport const byContractAddressAndChainId = (\n contract: string,\n chainId: number,\n erc20SignaturesBlob?: string | null\n): ReturnType => {\n // If we are able to fetch data from s3 bucket that contains dynamic CAL\n if (erc20SignaturesBlob) {\n try {\n return parse(erc20SignaturesBlob).byContractAndChainId(\n asContractAddress(contract),\n chainId\n );\n } catch (e) {\n return get(chainId)?.byContractAndChainId(\n asContractAddress(contract),\n chainId\n );\n }\n }\n\n // the static fallback when dynamic cal is not provided\n return get(chainId)?.byContractAndChainId(\n asContractAddress(contract),\n chainId\n );\n};\n\nexport type TokenInfo = {\n contractAddress: string;\n ticker: string;\n decimals: number;\n chainId: number;\n signature: Buffer;\n data: Buffer;\n};\nexport type API = {\n byContractAndChainId: (\n addr: string,\n id: number\n ) => TokenInfo | null | undefined;\n list: () => TokenInfo[];\n};\n\nconst parse = (erc20SignaturesBlob: string): API => {\n const buf = Buffer.from(erc20SignaturesBlob, \"base64\");\n const map = {};\n const entries: TokenInfo[] = [];\n let i = 0;\n\n while (i < buf.length) {\n const length = buf.readUInt32BE(i);\n i += 4;\n const item = buf.slice(i, i + length);\n let j = 0;\n const tickerLength = item.readUInt8(j);\n j += 1;\n const ticker = item.slice(j, j + tickerLength).toString(\"ascii\");\n j += tickerLength;\n const contractAddress = asContractAddress(\n item.slice(j, j + 20).toString(\"hex\")\n );\n j += 20;\n const decimals = item.readUInt32BE(j);\n j += 4;\n const chainId = item.readUInt32BE(j);\n j += 4;\n const signature = item.slice(j);\n const entry: TokenInfo = {\n ticker,\n contractAddress,\n decimals,\n chainId,\n signature,\n data: item,\n };\n entries.push(entry);\n map[String(chainId) + \":\" + contractAddress] = entry;\n i += length;\n }\n\n return {\n list: () => entries,\n byContractAndChainId: (contractAddress, chainId) =>\n map[String(chainId) + \":\" + contractAddress],\n };\n};\n\n// this internal get() will lazy load and cache the data from the erc20 data blob\nconst get: (chainId: number) => API | null = (() => {\n const cache: Record = {};\n return (chainId) => {\n if (cache[chainId]) return cache[chainId];\n\n const signatureBlob: string | undefined = signaturesByChainId[chainId];\n if (!signatureBlob) return null;\n\n const api = parse(signatureBlob);\n cache[chainId] = api;\n return api;\n };\n})();\n", "import axios from \"axios\";\nimport { getLoadConfig } from \"./loadConfig\";\nimport type { LoadConfig } from \"../types\";\nimport { log } from \"@ledgerhq/logs\";\n\ntype NftInfo = {\n contractAddress: string;\n collectionName: string;\n data: string;\n};\n\ntype BackendResponse = {\n payload: string;\n};\n\nexport const getNFTInfo = async (\n contractAddress: string,\n chainId: number,\n userLoadConfig: LoadConfig\n): Promise => {\n const { nftExplorerBaseURL } = getLoadConfig(userLoadConfig);\n if (!nftExplorerBaseURL) return;\n const url = `${nftExplorerBaseURL}/${chainId}/contracts/${contractAddress}`;\n const response = await axios\n .get(url)\n .then((r) => r.data)\n .catch((e) => {\n log(\"error\", \"could not fetch from \" + url + \": \" + String(e));\n return null;\n });\n if (!response) return;\n\n // APDU response specification: https://ledgerhq.atlassian.net/wiki/spaces/WALLETCO/pages/3269984297/NFT-1+NFT+Backend+design#NFT-Metadata-BLOB\n const payload = response[\"payload\"];\n // Collection name length position: 3rd byte -> caracter 4 to 6\n const collectionNameLength = parseInt(payload.slice(4, 6), 16);\n const collectionNameHex = payload.substr(6, collectionNameLength * 2);\n const collectionName = collectionNameHex\n .match(/.{2}/g) // split every 2 characters\n ?.reduce(\n (acc, curr) => (acc += String.fromCharCode(parseInt(curr, 16))),\n \"\"\n ); // convert hex to string\n\n return {\n contractAddress: contractAddress,\n collectionName: collectionName || \"\",\n data: payload,\n };\n};\n\nexport const loadNftPlugin = async (\n contractAddress: string,\n selector: string,\n chainId: number,\n userLoadConfig: LoadConfig\n): Promise => {\n const { nftExplorerBaseURL } = getLoadConfig(userLoadConfig);\n if (!nftExplorerBaseURL) return;\n const url = `${nftExplorerBaseURL}/${chainId}/contracts/${contractAddress}/plugin-selector/${selector}`;\n\n const response = await axios\n .get(url)\n .then((r) => r.data)\n .catch((e) => {\n log(\"error\", \"could not fetch from \" + url + \": \" + String(e));\n return null;\n });\n if (!response) return;\n\n const payload = response[\"payload\"];\n return payload;\n};\n", "// This implements the resolution of a Transaction using Ledger's own API\nimport { log } from \"@ledgerhq/logs\";\nimport { Interface } from \"@ethersproject/abi\";\n\nimport {\n LedgerEthTransactionResolution,\n LedgerEthTransactionService,\n LoadConfig,\n} from \"../types\";\nimport { loadInfosForContractMethod } from \"./contracts\";\nimport { byContractAddressAndChainId, findERC20SignaturesInfo } from \"./erc20\";\nimport { getNFTInfo, loadNftPlugin } from \"./nfts\";\nimport {\n decodeTxInfo,\n tokenSelectors,\n nftSelectors,\n mergeResolutions,\n} from \"../../utils\";\n\ntype potentialResolutions = {\n token: boolean | undefined;\n nft: boolean | undefined;\n externalPlugins: boolean | undefined;\n};\n\n/**\n * @ignore for external documentation\n *\n * Providing additionnal data for some transactions (Token or NFT related) can enable clear signing\n * of initially impossible to decode data.\n * This method will add necessary APDUs to the resolution paramter in order to provide this data to the nano app\n */\nconst getAdditionalDataForContract = async (\n contractAddress: string,\n chainIdTruncated: number,\n loadConfig: LoadConfig,\n shouldResolve: potentialResolutions\n): Promise> => {\n const resolution: Pick<\n LedgerEthTransactionResolution,\n \"nfts\" | \"erc20Tokens\"\n > = {\n nfts: [],\n erc20Tokens: [],\n };\n\n if (shouldResolve.nft) {\n const nftInfo = await getNFTInfo(\n contractAddress,\n chainIdTruncated,\n loadConfig\n );\n\n if (nftInfo) {\n log(\n \"ethereum\",\n \"loaded nft info for \" +\n nftInfo.contractAddress +\n \" (\" +\n nftInfo.collectionName +\n \")\"\n );\n resolution.nfts.push(nftInfo.data);\n } else {\n log(\"ethereum\", \"couldn't load nft info for \" + contractAddress);\n }\n }\n\n if (shouldResolve.token) {\n const erc20SignaturesBlob = await findERC20SignaturesInfo(\n loadConfig,\n chainIdTruncated\n );\n const erc20Info = byContractAddressAndChainId(\n contractAddress,\n chainIdTruncated,\n erc20SignaturesBlob\n );\n\n if (erc20Info) {\n log(\n \"ethereum\",\n \"loaded erc20token info for \" +\n erc20Info.contractAddress +\n \" (\" +\n erc20Info.ticker +\n \")\"\n );\n resolution.erc20Tokens.push(erc20Info.data.toString(\"hex\"));\n } else {\n log(\"ethereum\", \"couldn't load erc20token info for \" + contractAddress);\n }\n }\n\n return resolution;\n};\n\n/**\n * @ignore for external documentation\n *\n * Depending on the transaction, it might be necessary to load internal plugins in the nano app\n * in order to clear sign it.\n * This method will add necessary APDUs to the resolution parameter in order to load those internal plugins\n */\nconst loadNanoAppPlugins = async (\n contractAddress: string,\n selector: string,\n decodedTx,\n chainIdTruncated: number,\n loadConfig: LoadConfig,\n shouldResolve: potentialResolutions\n): Promise => {\n let resolution: LedgerEthTransactionResolution = {\n externalPlugin: [],\n plugin: [],\n nfts: [],\n erc20Tokens: [],\n };\n\n if (shouldResolve.nft) {\n const nftPluginPayload = await loadNftPlugin(\n contractAddress,\n selector,\n chainIdTruncated,\n loadConfig\n );\n\n if (nftPluginPayload) {\n resolution.plugin.push(nftPluginPayload);\n } else {\n log(\n \"ethereum\",\n \"no NFT plugin payload for selector \" +\n selector +\n \" and address \" +\n contractAddress\n );\n }\n }\n\n if (shouldResolve.externalPlugins) {\n const contractMethodInfos = await loadInfosForContractMethod(\n contractAddress,\n selector,\n chainIdTruncated,\n loadConfig\n );\n\n if (contractMethodInfos) {\n const { plugin, payload, signature, erc20OfInterest, abi } =\n contractMethodInfos;\n\n if (plugin) {\n log(\"ethereum\", \"found plugin for \" + selector);\n resolution.externalPlugin.push({ payload, signature });\n }\n\n if (erc20OfInterest && erc20OfInterest.length && abi) {\n const contract = new Interface(abi);\n const args = contract.parseTransaction(decodedTx).args;\n\n for (const path of erc20OfInterest) {\n const erc20ContractAddress = path.split(\".\").reduce((value, seg) => {\n if (seg === \"-1\" && Array.isArray(value)) {\n return value[value.length - 1];\n }\n return value[seg];\n }, args) as unknown as string; // impossible(?) to type correctly as the initializer is different from the returned type\n\n const externalPluginResolution = await getAdditionalDataForContract(\n erc20ContractAddress,\n chainIdTruncated,\n loadConfig,\n {\n nft: false,\n externalPlugins: false,\n token: true, // enforcing resolution of tokens for external plugins that need info on assets (e.g. for a swap)\n }\n );\n resolution = mergeResolutions(resolution, externalPluginResolution);\n }\n }\n } else {\n log(\"ethereum\", \"no infos for selector \" + selector);\n }\n }\n\n return resolution;\n};\n\nconst ledgerService: LedgerEthTransactionService = {\n resolveTransaction: async (rawTxHex, loadConfig, resolutionConfig) => {\n const rawTx = Buffer.from(rawTxHex, \"hex\");\n const { decodedTx, chainIdTruncated } = decodeTxInfo(rawTx);\n\n const contractAddress = decodedTx.to;\n const selector =\n decodedTx.data.length >= 10 && decodedTx.data.substring(0, 10);\n\n let pluginsResolution: Partial = {};\n let contractResolution: Partial = {};\n if (selector) {\n const shouldResolve: potentialResolutions = {\n token: resolutionConfig.erc20 && tokenSelectors.includes(selector),\n nft: resolutionConfig.nft && nftSelectors.includes(selector),\n externalPlugins: resolutionConfig.externalPlugins,\n };\n\n pluginsResolution = await loadNanoAppPlugins(\n contractAddress,\n selector,\n decodedTx,\n chainIdTruncated,\n loadConfig,\n shouldResolve\n );\n\n contractResolution = await getAdditionalDataForContract(\n contractAddress,\n chainIdTruncated,\n loadConfig,\n shouldResolve\n );\n }\n\n return mergeResolutions(pluginsResolution, contractResolution);\n },\n};\n\nexport default ledgerService;\n", "/* eslint-disable no-continue */\n/* eslint-disable no-unused-vars */\n/* eslint-disable no-param-reassign */\n/* eslint-disable no-prototype-builtins */\n\nconst errorClasses = {};\nconst deserializers = {};\n\nexport const addCustomErrorDeserializer = (\n name: string,\n deserializer: (obj: any) => any\n): void => {\n deserializers[name] = deserializer;\n};\n\nexport interface LedgerErrorConstructor\n extends ErrorConstructor {\n new (message?: string, fields?: F, options?: any): Error;\n (message?: string, fields?: F, options?: any): Error;\n readonly prototype: Error;\n}\n\nexport const createCustomErrorClass = <\n F extends { [key: string]: unknown },\n T extends LedgerErrorConstructor\n>(\n name: string\n): T => {\n class CustomErrorClass extends Error {\n cause?: Error;\n constructor(message?: string, fields?: F, options?: any) {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n super(message || name, options);\n // Set the prototype explicitly. See https://github.com/Microsoft/TypeScript/wiki/Breaking-Changes#extending-built-ins-like-error-array-and-map-may-no-longer-work\n Object.setPrototypeOf(this, CustomErrorClass.prototype);\n this.name = name;\n if (fields) {\n for (const k in fields) {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n this[k] = fields[k];\n }\n }\n if (\n options &&\n isObject(options) &&\n \"cause\" in options &&\n !(\"cause\" in this)\n ) {\n // .cause was specified but the superconstructor\n // did not create an instance property.\n const cause = options.cause;\n this.cause = cause;\n if (\"stack\" in cause) {\n this.stack = this.stack + \"\\nCAUSE: \" + cause.stack;\n }\n }\n }\n }\n\n errorClasses[name] = CustomErrorClass;\n\n return CustomErrorClass as unknown as T;\n};\n\nfunction isObject(value) {\n return typeof value === \"object\";\n}\n\n// inspired from https://github.com/programble/errio/blob/master/index.js\nexport const deserializeError = (object: any): Error | undefined => {\n if (object && typeof object === \"object\") {\n try {\n if (typeof object.message === \"string\") {\n const msg = JSON.parse(object.message);\n if (msg.message && msg.name) {\n object = msg;\n }\n }\n } catch (e) {\n // nothing\n }\n\n let error;\n if (typeof object.name === \"string\") {\n const { name } = object;\n const des = deserializers[name];\n if (des) {\n error = des(object);\n } else {\n let constructor = name === \"Error\" ? Error : errorClasses[name];\n\n if (!constructor) {\n console.warn(\"deserializing an unknown class '\" + name + \"'\");\n constructor = createCustomErrorClass(name);\n }\n\n error = Object.create(constructor.prototype);\n try {\n for (const prop in object) {\n if (object.hasOwnProperty(prop)) {\n error[prop] = object[prop];\n }\n }\n } catch (e) {\n // sometimes setting a property can fail (e.g. .name)\n }\n }\n } else {\n if (typeof object.message === \"string\") {\n error = new Error(object.message);\n }\n }\n\n if (error && !error.stack && Error.captureStackTrace) {\n Error.captureStackTrace(error, deserializeError);\n }\n return error;\n }\n return new Error(String(object));\n};\n\n// inspired from https://github.com/sindresorhus/serialize-error/blob/master/index.js\nexport const serializeError = (\n value: undefined | To | string | (() => unknown)\n): undefined | To | string => {\n if (!value) return value;\n if (typeof value === \"object\") {\n return destroyCircular(value, []);\n }\n if (typeof value === \"function\") {\n return `[Function: ${value.name || \"anonymous\"}]`;\n }\n return value;\n};\n\ninterface To {\n name?: string;\n message?: string;\n stack?: string;\n}\n\n// https://www.npmjs.com/package/destroy-circular\nfunction destroyCircular(from: To, seen: Array): To {\n const to: To = {};\n seen.push(from);\n for (const key of Object.keys(from)) {\n const value = from[key];\n if (typeof value === \"function\") {\n continue;\n }\n if (!value || typeof value !== \"object\") {\n to[key] = value;\n continue;\n }\n if (seen.indexOf(from[key]) === -1) {\n to[key] = destroyCircular(from[key], seen.slice(0));\n continue;\n }\n to[key] = \"[Circular]\";\n }\n if (typeof from.name === \"string\") {\n to.name = from.name;\n }\n if (typeof from.message === \"string\") {\n to.message = from.message;\n }\n if (typeof from.stack === \"string\") {\n to.stack = from.stack;\n }\n return to;\n}\n", "import {\n serializeError,\n deserializeError,\n createCustomErrorClass,\n addCustomErrorDeserializer,\n LedgerErrorConstructor,\n} from \"./helpers\";\n\nexport {\n serializeError,\n deserializeError,\n createCustomErrorClass,\n addCustomErrorDeserializer,\n};\n\nexport const AccountNameRequiredError = createCustomErrorClass(\n \"AccountNameRequired\"\n);\nexport const AccountNotSupported = createCustomErrorClass(\n \"AccountNotSupported\"\n);\nexport const AmountRequired = createCustomErrorClass(\"AmountRequired\");\nexport const BluetoothRequired = createCustomErrorClass(\"BluetoothRequired\");\nexport const BtcUnmatchedApp = createCustomErrorClass(\"BtcUnmatchedApp\");\nexport const CantOpenDevice = createCustomErrorClass(\"CantOpenDevice\");\nexport const CashAddrNotSupported = createCustomErrorClass(\n \"CashAddrNotSupported\"\n);\nexport const CurrencyNotSupported = createCustomErrorClass<\n { currencyName: string },\n LedgerErrorConstructor<{ currencyName: string }>\n>(\"CurrencyNotSupported\");\nexport const DeviceAppVerifyNotSupported = createCustomErrorClass(\n \"DeviceAppVerifyNotSupported\"\n);\nexport const DeviceGenuineSocketEarlyClose = createCustomErrorClass(\n \"DeviceGenuineSocketEarlyClose\"\n);\nexport const DeviceNotGenuineError = createCustomErrorClass(\"DeviceNotGenuine\");\nexport const DeviceOnDashboardExpected = createCustomErrorClass(\n \"DeviceOnDashboardExpected\"\n);\nexport const DeviceOnDashboardUnexpected = createCustomErrorClass(\n \"DeviceOnDashboardUnexpected\"\n);\nexport const DeviceInOSUExpected = createCustomErrorClass(\n \"DeviceInOSUExpected\"\n);\nexport const DeviceHalted = createCustomErrorClass(\"DeviceHalted\");\nexport const DeviceNameInvalid = createCustomErrorClass(\"DeviceNameInvalid\");\nexport const DeviceSocketFail = createCustomErrorClass(\"DeviceSocketFail\");\nexport const DeviceSocketNoBulkStatus = createCustomErrorClass(\n \"DeviceSocketNoBulkStatus\"\n);\nexport const LockedDeviceError = createCustomErrorClass(\"LockedDeviceError\");\nexport const DisconnectedDevice = createCustomErrorClass(\"DisconnectedDevice\");\nexport const DisconnectedDeviceDuringOperation = createCustomErrorClass(\n \"DisconnectedDeviceDuringOperation\"\n);\nexport const DeviceExtractOnboardingStateError = createCustomErrorClass(\n \"DeviceExtractOnboardingStateError\"\n);\nexport const DeviceOnboardingStatePollingError = createCustomErrorClass(\n \"DeviceOnboardingStatePollingError\"\n);\nexport const EnpointConfigError = createCustomErrorClass(\"EnpointConfig\");\nexport const EthAppPleaseEnableContractData = createCustomErrorClass(\n \"EthAppPleaseEnableContractData\"\n);\nexport const FeeEstimationFailed = createCustomErrorClass(\n \"FeeEstimationFailed\"\n);\nexport const FirmwareNotRecognized = createCustomErrorClass(\n \"FirmwareNotRecognized\"\n);\nexport const HardResetFail = createCustomErrorClass(\"HardResetFail\");\nexport const InvalidXRPTag = createCustomErrorClass(\"InvalidXRPTag\");\nexport const InvalidAddress = createCustomErrorClass(\"InvalidAddress\");\nexport const InvalidAddressBecauseDestinationIsAlsoSource =\n createCustomErrorClass(\"InvalidAddressBecauseDestinationIsAlsoSource\");\nexport const LatestMCUInstalledError = createCustomErrorClass(\n \"LatestMCUInstalledError\"\n);\nexport const UnknownMCU = createCustomErrorClass(\"UnknownMCU\");\nexport const LedgerAPIError = createCustomErrorClass(\"LedgerAPIError\");\nexport const LedgerAPIErrorWithMessage = createCustomErrorClass(\n \"LedgerAPIErrorWithMessage\"\n);\nexport const LedgerAPINotAvailable = createCustomErrorClass(\n \"LedgerAPINotAvailable\"\n);\nexport const ManagerAppAlreadyInstalledError = createCustomErrorClass(\n \"ManagerAppAlreadyInstalled\"\n);\nexport const ManagerAppRelyOnBTCError = createCustomErrorClass(\n \"ManagerAppRelyOnBTC\"\n);\nexport const ManagerAppDepInstallRequired = createCustomErrorClass(\n \"ManagerAppDepInstallRequired\"\n);\nexport const ManagerAppDepUninstallRequired = createCustomErrorClass(\n \"ManagerAppDepUninstallRequired\"\n);\nexport const ManagerDeviceLockedError = createCustomErrorClass(\n \"ManagerDeviceLocked\"\n);\nexport const ManagerFirmwareNotEnoughSpaceError = createCustomErrorClass(\n \"ManagerFirmwareNotEnoughSpace\"\n);\nexport const ManagerNotEnoughSpaceError = createCustomErrorClass(\n \"ManagerNotEnoughSpace\"\n);\nexport const ManagerUninstallBTCDep = createCustomErrorClass(\n \"ManagerUninstallBTCDep\"\n);\nexport const NetworkDown = createCustomErrorClass(\"NetworkDown\");\nexport const NoAddressesFound = createCustomErrorClass(\"NoAddressesFound\");\nexport const NotEnoughBalance = createCustomErrorClass(\"NotEnoughBalance\");\nexport const NotEnoughBalanceToDelegate = createCustomErrorClass(\n \"NotEnoughBalanceToDelegate\"\n);\nexport const NotEnoughBalanceInParentAccount = createCustomErrorClass(\n \"NotEnoughBalanceInParentAccount\"\n);\nexport const NotEnoughSpendableBalance = createCustomErrorClass(\n \"NotEnoughSpendableBalance\"\n);\nexport const NotEnoughBalanceBecauseDestinationNotCreated =\n createCustomErrorClass(\"NotEnoughBalanceBecauseDestinationNotCreated\");\nexport const NoAccessToCamera = createCustomErrorClass(\"NoAccessToCamera\");\nexport const NotEnoughGas = createCustomErrorClass(\"NotEnoughGas\");\nexport const NotSupportedLegacyAddress = createCustomErrorClass(\n \"NotSupportedLegacyAddress\"\n);\nexport const GasLessThanEstimate = createCustomErrorClass(\n \"GasLessThanEstimate\"\n);\nexport const PriorityFeeTooLow = createCustomErrorClass(\"PriorityFeeTooLow\");\nexport const PriorityFeeTooHigh = createCustomErrorClass(\"PriorityFeeTooHigh\");\nexport const PriorityFeeHigherThanMaxFee = createCustomErrorClass(\n \"PriorityFeeHigherThanMaxFee\"\n);\nexport const MaxFeeTooLow = createCustomErrorClass(\"MaxFeeTooLow\");\nexport const PasswordsDontMatchError =\n createCustomErrorClass(\"PasswordsDontMatch\");\nexport const PasswordIncorrectError =\n createCustomErrorClass(\"PasswordIncorrect\");\nexport const RecommendSubAccountsToEmpty = createCustomErrorClass(\n \"RecommendSubAccountsToEmpty\"\n);\nexport const RecommendUndelegation = createCustomErrorClass(\n \"RecommendUndelegation\"\n);\nexport const TimeoutTagged = createCustomErrorClass(\"TimeoutTagged\");\nexport const UnexpectedBootloader = createCustomErrorClass(\n \"UnexpectedBootloader\"\n);\nexport const MCUNotGenuineToDashboard = createCustomErrorClass(\n \"MCUNotGenuineToDashboard\"\n);\nexport const RecipientRequired = createCustomErrorClass(\"RecipientRequired\");\nexport const UnavailableTezosOriginatedAccountReceive = createCustomErrorClass(\n \"UnavailableTezosOriginatedAccountReceive\"\n);\nexport const UnavailableTezosOriginatedAccountSend = createCustomErrorClass(\n \"UnavailableTezosOriginatedAccountSend\"\n);\nexport const UpdateFetchFileFail = createCustomErrorClass(\n \"UpdateFetchFileFail\"\n);\nexport const UpdateIncorrectHash = createCustomErrorClass(\n \"UpdateIncorrectHash\"\n);\nexport const UpdateIncorrectSig = createCustomErrorClass(\"UpdateIncorrectSig\");\nexport const UpdateYourApp = createCustomErrorClass(\"UpdateYourApp\");\nexport const UserRefusedDeviceNameChange = createCustomErrorClass(\n \"UserRefusedDeviceNameChange\"\n);\nexport const UserRefusedAddress = createCustomErrorClass(\"UserRefusedAddress\");\nexport const UserRefusedFirmwareUpdate = createCustomErrorClass(\n \"UserRefusedFirmwareUpdate\"\n);\nexport const UserRefusedAllowManager = createCustomErrorClass(\n \"UserRefusedAllowManager\"\n);\nexport const UserRefusedOnDevice = createCustomErrorClass(\n \"UserRefusedOnDevice\"\n); // TODO rename because it's just for transaction refusal\nexport const TransportOpenUserCancelled = createCustomErrorClass(\n \"TransportOpenUserCancelled\"\n);\nexport const TransportInterfaceNotAvailable = createCustomErrorClass(\n \"TransportInterfaceNotAvailable\"\n);\nexport const TransportRaceCondition = createCustomErrorClass(\n \"TransportRaceCondition\"\n);\nexport const TransportWebUSBGestureRequired = createCustomErrorClass(\n \"TransportWebUSBGestureRequired\"\n);\nexport const DeviceShouldStayInApp = createCustomErrorClass(\n \"DeviceShouldStayInApp\"\n);\nexport const WebsocketConnectionError = createCustomErrorClass(\n \"WebsocketConnectionError\"\n);\nexport const WebsocketConnectionFailed = createCustomErrorClass(\n \"WebsocketConnectionFailed\"\n);\nexport const WrongDeviceForAccount = createCustomErrorClass(\n \"WrongDeviceForAccount\"\n);\nexport const WrongAppForCurrency = createCustomErrorClass(\n \"WrongAppForCurrency\"\n);\nexport const ETHAddressNonEIP = createCustomErrorClass(\"ETHAddressNonEIP\");\nexport const CantScanQRCode = createCustomErrorClass(\"CantScanQRCode\");\nexport const FeeNotLoaded = createCustomErrorClass(\"FeeNotLoaded\");\nexport const FeeRequired = createCustomErrorClass(\"FeeRequired\");\nexport const FeeTooHigh = createCustomErrorClass(\"FeeTooHigh\");\nexport const DustLimit = createCustomErrorClass(\"DustLimit\");\nexport const PendingOperation = createCustomErrorClass(\"PendingOperation\");\nexport const SyncError = createCustomErrorClass(\"SyncError\");\nexport const PairingFailed = createCustomErrorClass(\"PairingFailed\");\nexport const GenuineCheckFailed = createCustomErrorClass(\"GenuineCheckFailed\");\nexport const LedgerAPI4xx = createCustomErrorClass(\"LedgerAPI4xx\");\nexport const LedgerAPI5xx = createCustomErrorClass(\"LedgerAPI5xx\");\nexport const FirmwareOrAppUpdateRequired = createCustomErrorClass(\n \"FirmwareOrAppUpdateRequired\"\n);\n\nexport const LanguageNotFound = createCustomErrorClass(\"LanguageNotFound\");\n\n// db stuff, no need to translate\nexport const NoDBPathGiven = createCustomErrorClass(\"NoDBPathGiven\");\nexport const DBWrongPassword = createCustomErrorClass(\"DBWrongPassword\");\nexport const DBNotReset = createCustomErrorClass(\"DBNotReset\");\n\n/**\n * Type of a Transport error used to represent all equivalent errors coming from all possible implementation of Transport\n */\nexport enum HwTransportErrorType {\n Unknown = 0,\n BleLocationServicesDisabled = 1,\n BleBluetoothUnauthorized = 2,\n BleScanStartFailed = 3,\n}\n\n/**\n * Represents an error coming from any Transport implementation.\n *\n * Needed to map a specific implementation error into an error that\n * can be managed by any code unaware of the specific Transport implementation\n * that was used.\n */\nexport class HwTransportError extends Error {\n type: HwTransportErrorType;\n\n constructor(type: HwTransportErrorType, message: string) {\n super(message);\n this.name = \"HwTransportError\";\n this.type = type;\n\n // Needed as long as we target < ES6\n Object.setPrototypeOf(this, HwTransportError.prototype);\n }\n}\n\n/**\n * TransportError is used for any generic transport errors.\n * e.g. Error thrown when data received by exchanges are incorrect or if exchanged failed to communicate with the device for various reason.\n */\nexport class TransportError extends Error {\n id: string;\n constructor(message: string, id: string) {\n const name = \"TransportError\";\n super(message || name);\n this.name = name;\n this.message = message;\n this.stack = new Error().stack;\n this.id = id;\n }\n}\n\naddCustomErrorDeserializer(\n \"TransportError\",\n (e) => new TransportError(e.message, e.id)\n);\n\nexport const StatusCodes = {\n ACCESS_CONDITION_NOT_FULFILLED: 0x9804,\n ALGORITHM_NOT_SUPPORTED: 0x9484,\n CLA_NOT_SUPPORTED: 0x6e00,\n CODE_BLOCKED: 0x9840,\n CODE_NOT_INITIALIZED: 0x9802,\n COMMAND_INCOMPATIBLE_FILE_STRUCTURE: 0x6981,\n CONDITIONS_OF_USE_NOT_SATISFIED: 0x6985,\n CONTRADICTION_INVALIDATION: 0x9810,\n CONTRADICTION_SECRET_CODE_STATUS: 0x9808,\n CUSTOM_IMAGE_BOOTLOADER: 0x662f,\n CUSTOM_IMAGE_EMPTY: 0x662e,\n FILE_ALREADY_EXISTS: 0x6a89,\n FILE_NOT_FOUND: 0x9404,\n GP_AUTH_FAILED: 0x6300,\n HALTED: 0x6faa,\n INCONSISTENT_FILE: 0x9408,\n INCORRECT_DATA: 0x6a80,\n INCORRECT_LENGTH: 0x6700,\n INCORRECT_P1_P2: 0x6b00,\n INS_NOT_SUPPORTED: 0x6d00,\n INVALID_KCV: 0x9485,\n INVALID_OFFSET: 0x9402,\n LICENSING: 0x6f42,\n LOCKED_DEVICE: 0x5515,\n MAX_VALUE_REACHED: 0x9850,\n MEMORY_PROBLEM: 0x9240,\n MISSING_CRITICAL_PARAMETER: 0x6800,\n NO_EF_SELECTED: 0x9400,\n NOT_ENOUGH_MEMORY_SPACE: 0x6a84,\n OK: 0x9000,\n PIN_REMAINING_ATTEMPTS: 0x63c0,\n REFERENCED_DATA_NOT_FOUND: 0x6a88,\n SECURITY_STATUS_NOT_SATISFIED: 0x6982,\n TECHNICAL_PROBLEM: 0x6f00,\n UNKNOWN_APDU: 0x6d02,\n USER_REFUSED_ON_DEVICE: 0x5501,\n};\n\nexport function getAltStatusMessage(code: number): string | undefined | null {\n switch (code) {\n // improve text of most common errors\n case 0x6700:\n return \"Incorrect length\";\n case 0x6800:\n return \"Missing critical parameter\";\n case 0x6982:\n return \"Security not satisfied (dongle locked or have invalid access rights)\";\n case 0x6985:\n return \"Condition of use not satisfied (denied by the user?)\";\n case 0x6a80:\n return \"Invalid data received\";\n case 0x6b00:\n return \"Invalid parameter received\";\n case 0x5515:\n return \"Locked device\";\n }\n if (0x6f00 <= code && code <= 0x6fff) {\n return \"Internal error, please report\";\n }\n}\n\n/**\n * Error thrown when a device returned a non success status.\n * the error.statusCode is one of the `StatusCodes` exported by this library.\n */\nexport function TransportStatusError(statusCode: number): void {\n const statusText =\n Object.keys(StatusCodes).find((k) => StatusCodes[k] === statusCode) ||\n \"UNKNOWN_ERROR\";\n const smsg = getAltStatusMessage(statusCode) || statusText;\n const statusCodeStr = statusCode.toString(16);\n const message = `Ledger device: ${smsg} (0x${statusCodeStr})`;\n\n // Maps to a LockedDeviceError\n if (statusCode === StatusCodes.LOCKED_DEVICE) {\n throw new LockedDeviceError(message);\n }\n\n this.name = \"TransportStatusError\";\n this.message = message;\n this.stack = new Error().stack;\n this.statusCode = statusCode;\n this.statusText = statusText;\n}\nTransportStatusError.prototype = new Error();\n\naddCustomErrorDeserializer(\n \"TransportStatusError\",\n (e) => new TransportStatusError(e.statusCode)\n);\n", "import { createCustomErrorClass } from \"@ledgerhq/errors\";\n\nexport const EthAppPleaseEnableContractData = createCustomErrorClass(\n \"EthAppPleaseEnableContractData\"\n);\nexport const EthAppNftNotSupported = createCustomErrorClass(\n \"EthAppNftNotSupported\"\n);\n", ";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory();\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\troot.CryptoJS = factory();\n\t}\n}(this, function () {\n\n\t/*globals window, global, require*/\n\n\t/**\n\t * CryptoJS core components.\n\t */\n\tvar CryptoJS = CryptoJS || (function (Math, undefined) {\n\n\t var crypto;\n\n\t // Native crypto from window (Browser)\n\t if (typeof window !== 'undefined' && window.crypto) {\n\t crypto = window.crypto;\n\t }\n\n\t // Native crypto in web worker (Browser)\n\t if (typeof self !== 'undefined' && self.crypto) {\n\t crypto = self.crypto;\n\t }\n\n\t // Native crypto from worker\n\t if (typeof globalThis !== 'undefined' && globalThis.crypto) {\n\t crypto = globalThis.crypto;\n\t }\n\n\t // Native (experimental IE 11) crypto from window (Browser)\n\t if (!crypto && typeof window !== 'undefined' && window.msCrypto) {\n\t crypto = window.msCrypto;\n\t }\n\n\t // Native crypto from global (NodeJS)\n\t if (!crypto && typeof global !== 'undefined' && global.crypto) {\n\t crypto = global.crypto;\n\t }\n\n\t // Native crypto import via require (NodeJS)\n\t if (!crypto && typeof require === 'function') {\n\t try {\n\t crypto = require('crypto');\n\t } catch (err) {}\n\t }\n\n\t /*\n\t * Cryptographically secure pseudorandom number generator\n\t *\n\t * As Math.random() is cryptographically not safe to use\n\t */\n\t var cryptoSecureRandomInt = function () {\n\t if (crypto) {\n\t // Use getRandomValues method (Browser)\n\t if (typeof crypto.getRandomValues === 'function') {\n\t try {\n\t return crypto.getRandomValues(new Uint32Array(1))[0];\n\t } catch (err) {}\n\t }\n\n\t // Use randomBytes method (NodeJS)\n\t if (typeof crypto.randomBytes === 'function') {\n\t try {\n\t return crypto.randomBytes(4).readInt32LE();\n\t } catch (err) {}\n\t }\n\t }\n\n\t throw new Error('Native crypto module could not be used to get secure random number.');\n\t };\n\n\t /*\n\t * Local polyfill of Object.create\n\n\t */\n\t var create = Object.create || (function () {\n\t function F() {}\n\n\t return function (obj) {\n\t var subtype;\n\n\t F.prototype = obj;\n\n\t subtype = new F();\n\n\t F.prototype = null;\n\n\t return subtype;\n\t };\n\t }());\n\n\t /**\n\t * CryptoJS namespace.\n\t */\n\t var C = {};\n\n\t /**\n\t * Library namespace.\n\t */\n\t var C_lib = C.lib = {};\n\n\t /**\n\t * Base object for prototypal inheritance.\n\t */\n\t var Base = C_lib.Base = (function () {\n\n\n\t return {\n\t /**\n\t * Creates a new object that inherits from this object.\n\t *\n\t * @param {Object} overrides Properties to copy into the new object.\n\t *\n\t * @return {Object} The new object.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var MyType = CryptoJS.lib.Base.extend({\n\t * field: 'value',\n\t *\n\t * method: function () {\n\t * }\n\t * });\n\t */\n\t extend: function (overrides) {\n\t // Spawn\n\t var subtype = create(this);\n\n\t // Augment\n\t if (overrides) {\n\t subtype.mixIn(overrides);\n\t }\n\n\t // Create default initializer\n\t if (!subtype.hasOwnProperty('init') || this.init === subtype.init) {\n\t subtype.init = function () {\n\t subtype.$super.init.apply(this, arguments);\n\t };\n\t }\n\n\t // Initializer's prototype is the subtype object\n\t subtype.init.prototype = subtype;\n\n\t // Reference supertype\n\t subtype.$super = this;\n\n\t return subtype;\n\t },\n\n\t /**\n\t * Extends this object and runs the init method.\n\t * Arguments to create() will be passed to init().\n\t *\n\t * @return {Object} The new object.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var instance = MyType.create();\n\t */\n\t create: function () {\n\t var instance = this.extend();\n\t instance.init.apply(instance, arguments);\n\n\t return instance;\n\t },\n\n\t /**\n\t * Initializes a newly created object.\n\t * Override this method to add some logic when your objects are created.\n\t *\n\t * @example\n\t *\n\t * var MyType = CryptoJS.lib.Base.extend({\n\t * init: function () {\n\t * // ...\n\t * }\n\t * });\n\t */\n\t init: function () {\n\t },\n\n\t /**\n\t * Copies properties into this object.\n\t *\n\t * @param {Object} properties The properties to mix in.\n\t *\n\t * @example\n\t *\n\t * MyType.mixIn({\n\t * field: 'value'\n\t * });\n\t */\n\t mixIn: function (properties) {\n\t for (var propertyName in properties) {\n\t if (properties.hasOwnProperty(propertyName)) {\n\t this[propertyName] = properties[propertyName];\n\t }\n\t }\n\n\t // IE won't copy toString using the loop above\n\t if (properties.hasOwnProperty('toString')) {\n\t this.toString = properties.toString;\n\t }\n\t },\n\n\t /**\n\t * Creates a copy of this object.\n\t *\n\t * @return {Object} The clone.\n\t *\n\t * @example\n\t *\n\t * var clone = instance.clone();\n\t */\n\t clone: function () {\n\t return this.init.prototype.extend(this);\n\t }\n\t };\n\t }());\n\n\t /**\n\t * An array of 32-bit words.\n\t *\n\t * @property {Array} words The array of 32-bit words.\n\t * @property {number} sigBytes The number of significant bytes in this word array.\n\t */\n\t var WordArray = C_lib.WordArray = Base.extend({\n\t /**\n\t * Initializes a newly created word array.\n\t *\n\t * @param {Array} words (Optional) An array of 32-bit words.\n\t * @param {number} sigBytes (Optional) The number of significant bytes in the words.\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.lib.WordArray.create();\n\t * var wordArray = CryptoJS.lib.WordArray.create([0x00010203, 0x04050607]);\n\t * var wordArray = CryptoJS.lib.WordArray.create([0x00010203, 0x04050607], 6);\n\t */\n\t init: function (words, sigBytes) {\n\t words = this.words = words || [];\n\n\t if (sigBytes != undefined) {\n\t this.sigBytes = sigBytes;\n\t } else {\n\t this.sigBytes = words.length * 4;\n\t }\n\t },\n\n\t /**\n\t * Converts this word array to a string.\n\t *\n\t * @param {Encoder} encoder (Optional) The encoding strategy to use. Default: CryptoJS.enc.Hex\n\t *\n\t * @return {string} The stringified word array.\n\t *\n\t * @example\n\t *\n\t * var string = wordArray + '';\n\t * var string = wordArray.toString();\n\t * var string = wordArray.toString(CryptoJS.enc.Utf8);\n\t */\n\t toString: function (encoder) {\n\t return (encoder || Hex).stringify(this);\n\t },\n\n\t /**\n\t * Concatenates a word array to this word array.\n\t *\n\t * @param {WordArray} wordArray The word array to append.\n\t *\n\t * @return {WordArray} This word array.\n\t *\n\t * @example\n\t *\n\t * wordArray1.concat(wordArray2);\n\t */\n\t concat: function (wordArray) {\n\t // Shortcuts\n\t var thisWords = this.words;\n\t var thatWords = wordArray.words;\n\t var thisSigBytes = this.sigBytes;\n\t var thatSigBytes = wordArray.sigBytes;\n\n\t // Clamp excess bits\n\t this.clamp();\n\n\t // Concat\n\t if (thisSigBytes % 4) {\n\t // Copy one byte at a time\n\t for (var i = 0; i < thatSigBytes; i++) {\n\t var thatByte = (thatWords[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;\n\t thisWords[(thisSigBytes + i) >>> 2] |= thatByte << (24 - ((thisSigBytes + i) % 4) * 8);\n\t }\n\t } else {\n\t // Copy one word at a time\n\t for (var j = 0; j < thatSigBytes; j += 4) {\n\t thisWords[(thisSigBytes + j) >>> 2] = thatWords[j >>> 2];\n\t }\n\t }\n\t this.sigBytes += thatSigBytes;\n\n\t // Chainable\n\t return this;\n\t },\n\n\t /**\n\t * Removes insignificant bits.\n\t *\n\t * @example\n\t *\n\t * wordArray.clamp();\n\t */\n\t clamp: function () {\n\t // Shortcuts\n\t var words = this.words;\n\t var sigBytes = this.sigBytes;\n\n\t // Clamp\n\t words[sigBytes >>> 2] &= 0xffffffff << (32 - (sigBytes % 4) * 8);\n\t words.length = Math.ceil(sigBytes / 4);\n\t },\n\n\t /**\n\t * Creates a copy of this word array.\n\t *\n\t * @return {WordArray} The clone.\n\t *\n\t * @example\n\t *\n\t * var clone = wordArray.clone();\n\t */\n\t clone: function () {\n\t var clone = Base.clone.call(this);\n\t clone.words = this.words.slice(0);\n\n\t return clone;\n\t },\n\n\t /**\n\t * Creates a word array filled with random bytes.\n\t *\n\t * @param {number} nBytes The number of random bytes to generate.\n\t *\n\t * @return {WordArray} The random word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.lib.WordArray.random(16);\n\t */\n\t random: function (nBytes) {\n\t var words = [];\n\n\t for (var i = 0; i < nBytes; i += 4) {\n\t words.push(cryptoSecureRandomInt());\n\t }\n\n\t return new WordArray.init(words, nBytes);\n\t }\n\t });\n\n\t /**\n\t * Encoder namespace.\n\t */\n\t var C_enc = C.enc = {};\n\n\t /**\n\t * Hex encoding strategy.\n\t */\n\t var Hex = C_enc.Hex = {\n\t /**\n\t * Converts a word array to a hex string.\n\t *\n\t * @param {WordArray} wordArray The word array.\n\t *\n\t * @return {string} The hex string.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hexString = CryptoJS.enc.Hex.stringify(wordArray);\n\t */\n\t stringify: function (wordArray) {\n\t // Shortcuts\n\t var words = wordArray.words;\n\t var sigBytes = wordArray.sigBytes;\n\n\t // Convert\n\t var hexChars = [];\n\t for (var i = 0; i < sigBytes; i++) {\n\t var bite = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;\n\t hexChars.push((bite >>> 4).toString(16));\n\t hexChars.push((bite & 0x0f).toString(16));\n\t }\n\n\t return hexChars.join('');\n\t },\n\n\t /**\n\t * Converts a hex string to a word array.\n\t *\n\t * @param {string} hexStr The hex string.\n\t *\n\t * @return {WordArray} The word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.enc.Hex.parse(hexString);\n\t */\n\t parse: function (hexStr) {\n\t // Shortcut\n\t var hexStrLength = hexStr.length;\n\n\t // Convert\n\t var words = [];\n\t for (var i = 0; i < hexStrLength; i += 2) {\n\t words[i >>> 3] |= parseInt(hexStr.substr(i, 2), 16) << (24 - (i % 8) * 4);\n\t }\n\n\t return new WordArray.init(words, hexStrLength / 2);\n\t }\n\t };\n\n\t /**\n\t * Latin1 encoding strategy.\n\t */\n\t var Latin1 = C_enc.Latin1 = {\n\t /**\n\t * Converts a word array to a Latin1 string.\n\t *\n\t * @param {WordArray} wordArray The word array.\n\t *\n\t * @return {string} The Latin1 string.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var latin1String = CryptoJS.enc.Latin1.stringify(wordArray);\n\t */\n\t stringify: function (wordArray) {\n\t // Shortcuts\n\t var words = wordArray.words;\n\t var sigBytes = wordArray.sigBytes;\n\n\t // Convert\n\t var latin1Chars = [];\n\t for (var i = 0; i < sigBytes; i++) {\n\t var bite = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;\n\t latin1Chars.push(String.fromCharCode(bite));\n\t }\n\n\t return latin1Chars.join('');\n\t },\n\n\t /**\n\t * Converts a Latin1 string to a word array.\n\t *\n\t * @param {string} latin1Str The Latin1 string.\n\t *\n\t * @return {WordArray} The word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.enc.Latin1.parse(latin1String);\n\t */\n\t parse: function (latin1Str) {\n\t // Shortcut\n\t var latin1StrLength = latin1Str.length;\n\n\t // Convert\n\t var words = [];\n\t for (var i = 0; i < latin1StrLength; i++) {\n\t words[i >>> 2] |= (latin1Str.charCodeAt(i) & 0xff) << (24 - (i % 4) * 8);\n\t }\n\n\t return new WordArray.init(words, latin1StrLength);\n\t }\n\t };\n\n\t /**\n\t * UTF-8 encoding strategy.\n\t */\n\t var Utf8 = C_enc.Utf8 = {\n\t /**\n\t * Converts a word array to a UTF-8 string.\n\t *\n\t * @param {WordArray} wordArray The word array.\n\t *\n\t * @return {string} The UTF-8 string.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var utf8String = CryptoJS.enc.Utf8.stringify(wordArray);\n\t */\n\t stringify: function (wordArray) {\n\t try {\n\t return decodeURIComponent(escape(Latin1.stringify(wordArray)));\n\t } catch (e) {\n\t throw new Error('Malformed UTF-8 data');\n\t }\n\t },\n\n\t /**\n\t * Converts a UTF-8 string to a word array.\n\t *\n\t * @param {string} utf8Str The UTF-8 string.\n\t *\n\t * @return {WordArray} The word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.enc.Utf8.parse(utf8String);\n\t */\n\t parse: function (utf8Str) {\n\t return Latin1.parse(unescape(encodeURIComponent(utf8Str)));\n\t }\n\t };\n\n\t /**\n\t * Abstract buffered block algorithm template.\n\t *\n\t * The property blockSize must be implemented in a concrete subtype.\n\t *\n\t * @property {number} _minBufferSize The number of blocks that should be kept unprocessed in the buffer. Default: 0\n\t */\n\t var BufferedBlockAlgorithm = C_lib.BufferedBlockAlgorithm = Base.extend({\n\t /**\n\t * Resets this block algorithm's data buffer to its initial state.\n\t *\n\t * @example\n\t *\n\t * bufferedBlockAlgorithm.reset();\n\t */\n\t reset: function () {\n\t // Initial values\n\t this._data = new WordArray.init();\n\t this._nDataBytes = 0;\n\t },\n\n\t /**\n\t * Adds new data to this block algorithm's buffer.\n\t *\n\t * @param {WordArray|string} data The data to append. Strings are converted to a WordArray using UTF-8.\n\t *\n\t * @example\n\t *\n\t * bufferedBlockAlgorithm._append('data');\n\t * bufferedBlockAlgorithm._append(wordArray);\n\t */\n\t _append: function (data) {\n\t // Convert string to WordArray, else assume WordArray already\n\t if (typeof data == 'string') {\n\t data = Utf8.parse(data);\n\t }\n\n\t // Append\n\t this._data.concat(data);\n\t this._nDataBytes += data.sigBytes;\n\t },\n\n\t /**\n\t * Processes available data blocks.\n\t *\n\t * This method invokes _doProcessBlock(offset), which must be implemented by a concrete subtype.\n\t *\n\t * @param {boolean} doFlush Whether all blocks and partial blocks should be processed.\n\t *\n\t * @return {WordArray} The processed data.\n\t *\n\t * @example\n\t *\n\t * var processedData = bufferedBlockAlgorithm._process();\n\t * var processedData = bufferedBlockAlgorithm._process(!!'flush');\n\t */\n\t _process: function (doFlush) {\n\t var processedWords;\n\n\t // Shortcuts\n\t var data = this._data;\n\t var dataWords = data.words;\n\t var dataSigBytes = data.sigBytes;\n\t var blockSize = this.blockSize;\n\t var blockSizeBytes = blockSize * 4;\n\n\t // Count blocks ready\n\t var nBlocksReady = dataSigBytes / blockSizeBytes;\n\t if (doFlush) {\n\t // Round up to include partial blocks\n\t nBlocksReady = Math.ceil(nBlocksReady);\n\t } else {\n\t // Round down to include only full blocks,\n\t // less the number of blocks that must remain in the buffer\n\t nBlocksReady = Math.max((nBlocksReady | 0) - this._minBufferSize, 0);\n\t }\n\n\t // Count words ready\n\t var nWordsReady = nBlocksReady * blockSize;\n\n\t // Count bytes ready\n\t var nBytesReady = Math.min(nWordsReady * 4, dataSigBytes);\n\n\t // Process blocks\n\t if (nWordsReady) {\n\t for (var offset = 0; offset < nWordsReady; offset += blockSize) {\n\t // Perform concrete-algorithm logic\n\t this._doProcessBlock(dataWords, offset);\n\t }\n\n\t // Remove processed words\n\t processedWords = dataWords.splice(0, nWordsReady);\n\t data.sigBytes -= nBytesReady;\n\t }\n\n\t // Return processed words\n\t return new WordArray.init(processedWords, nBytesReady);\n\t },\n\n\t /**\n\t * Creates a copy of this object.\n\t *\n\t * @return {Object} The clone.\n\t *\n\t * @example\n\t *\n\t * var clone = bufferedBlockAlgorithm.clone();\n\t */\n\t clone: function () {\n\t var clone = Base.clone.call(this);\n\t clone._data = this._data.clone();\n\n\t return clone;\n\t },\n\n\t _minBufferSize: 0\n\t });\n\n\t /**\n\t * Abstract hasher template.\n\t *\n\t * @property {number} blockSize The number of 32-bit words this hasher operates on. Default: 16 (512 bits)\n\t */\n\t var Hasher = C_lib.Hasher = BufferedBlockAlgorithm.extend({\n\t /**\n\t * Configuration options.\n\t */\n\t cfg: Base.extend(),\n\n\t /**\n\t * Initializes a newly created hasher.\n\t *\n\t * @param {Object} cfg (Optional) The configuration options to use for this hash computation.\n\t *\n\t * @example\n\t *\n\t * var hasher = CryptoJS.algo.SHA256.create();\n\t */\n\t init: function (cfg) {\n\t // Apply config defaults\n\t this.cfg = this.cfg.extend(cfg);\n\n\t // Set initial values\n\t this.reset();\n\t },\n\n\t /**\n\t * Resets this hasher to its initial state.\n\t *\n\t * @example\n\t *\n\t * hasher.reset();\n\t */\n\t reset: function () {\n\t // Reset data buffer\n\t BufferedBlockAlgorithm.reset.call(this);\n\n\t // Perform concrete-hasher logic\n\t this._doReset();\n\t },\n\n\t /**\n\t * Updates this hasher with a message.\n\t *\n\t * @param {WordArray|string} messageUpdate The message to append.\n\t *\n\t * @return {Hasher} This hasher.\n\t *\n\t * @example\n\t *\n\t * hasher.update('message');\n\t * hasher.update(wordArray);\n\t */\n\t update: function (messageUpdate) {\n\t // Append\n\t this._append(messageUpdate);\n\n\t // Update the hash\n\t this._process();\n\n\t // Chainable\n\t return this;\n\t },\n\n\t /**\n\t * Finalizes the hash computation.\n\t * Note that the finalize operation is effectively a destructive, read-once operation.\n\t *\n\t * @param {WordArray|string} messageUpdate (Optional) A final message update.\n\t *\n\t * @return {WordArray} The hash.\n\t *\n\t * @example\n\t *\n\t * var hash = hasher.finalize();\n\t * var hash = hasher.finalize('message');\n\t * var hash = hasher.finalize(wordArray);\n\t */\n\t finalize: function (messageUpdate) {\n\t // Final message update\n\t if (messageUpdate) {\n\t this._append(messageUpdate);\n\t }\n\n\t // Perform concrete-hasher logic\n\t var hash = this._doFinalize();\n\n\t return hash;\n\t },\n\n\t blockSize: 512/32,\n\n\t /**\n\t * Creates a shortcut function to a hasher's object interface.\n\t *\n\t * @param {Hasher} hasher The hasher to create a helper for.\n\t *\n\t * @return {Function} The shortcut function.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var SHA256 = CryptoJS.lib.Hasher._createHelper(CryptoJS.algo.SHA256);\n\t */\n\t _createHelper: function (hasher) {\n\t return function (message, cfg) {\n\t return new hasher.init(cfg).finalize(message);\n\t };\n\t },\n\n\t /**\n\t * Creates a shortcut function to the HMAC's object interface.\n\t *\n\t * @param {Hasher} hasher The hasher to use in this HMAC helper.\n\t *\n\t * @return {Function} The shortcut function.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var HmacSHA256 = CryptoJS.lib.Hasher._createHmacHelper(CryptoJS.algo.SHA256);\n\t */\n\t _createHmacHelper: function (hasher) {\n\t return function (message, key) {\n\t return new C_algo.HMAC.init(hasher, key).finalize(message);\n\t };\n\t }\n\t });\n\n\t /**\n\t * Algorithm namespace.\n\t */\n\t var C_algo = C.algo = {};\n\n\t return C;\n\t}(Math));\n\n\n\treturn CryptoJS;\n\n}));", ";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function (Math) {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var WordArray = C_lib.WordArray;\n\t var Hasher = C_lib.Hasher;\n\t var C_algo = C.algo;\n\n\t // Initialization and round constants tables\n\t var H = [];\n\t var K = [];\n\n\t // Compute constants\n\t (function () {\n\t function isPrime(n) {\n\t var sqrtN = Math.sqrt(n);\n\t for (var factor = 2; factor <= sqrtN; factor++) {\n\t if (!(n % factor)) {\n\t return false;\n\t }\n\t }\n\n\t return true;\n\t }\n\n\t function getFractionalBits(n) {\n\t return ((n - (n | 0)) * 0x100000000) | 0;\n\t }\n\n\t var n = 2;\n\t var nPrime = 0;\n\t while (nPrime < 64) {\n\t if (isPrime(n)) {\n\t if (nPrime < 8) {\n\t H[nPrime] = getFractionalBits(Math.pow(n, 1 / 2));\n\t }\n\t K[nPrime] = getFractionalBits(Math.pow(n, 1 / 3));\n\n\t nPrime++;\n\t }\n\n\t n++;\n\t }\n\t }());\n\n\t // Reusable object\n\t var W = [];\n\n\t /**\n\t * SHA-256 hash algorithm.\n\t */\n\t var SHA256 = C_algo.SHA256 = Hasher.extend({\n\t _doReset: function () {\n\t this._hash = new WordArray.init(H.slice(0));\n\t },\n\n\t _doProcessBlock: function (M, offset) {\n\t // Shortcut\n\t var H = this._hash.words;\n\n\t // Working variables\n\t var a = H[0];\n\t var b = H[1];\n\t var c = H[2];\n\t var d = H[3];\n\t var e = H[4];\n\t var f = H[5];\n\t var g = H[6];\n\t var h = H[7];\n\n\t // Computation\n\t for (var i = 0; i < 64; i++) {\n\t if (i < 16) {\n\t W[i] = M[offset + i] | 0;\n\t } else {\n\t var gamma0x = W[i - 15];\n\t var gamma0 = ((gamma0x << 25) | (gamma0x >>> 7)) ^\n\t ((gamma0x << 14) | (gamma0x >>> 18)) ^\n\t (gamma0x >>> 3);\n\n\t var gamma1x = W[i - 2];\n\t var gamma1 = ((gamma1x << 15) | (gamma1x >>> 17)) ^\n\t ((gamma1x << 13) | (gamma1x >>> 19)) ^\n\t (gamma1x >>> 10);\n\n\t W[i] = gamma0 + W[i - 7] + gamma1 + W[i - 16];\n\t }\n\n\t var ch = (e & f) ^ (~e & g);\n\t var maj = (a & b) ^ (a & c) ^ (b & c);\n\n\t var sigma0 = ((a << 30) | (a >>> 2)) ^ ((a << 19) | (a >>> 13)) ^ ((a << 10) | (a >>> 22));\n\t var sigma1 = ((e << 26) | (e >>> 6)) ^ ((e << 21) | (e >>> 11)) ^ ((e << 7) | (e >>> 25));\n\n\t var t1 = h + sigma1 + ch + K[i] + W[i];\n\t var t2 = sigma0 + maj;\n\n\t h = g;\n\t g = f;\n\t f = e;\n\t e = (d + t1) | 0;\n\t d = c;\n\t c = b;\n\t b = a;\n\t a = (t1 + t2) | 0;\n\t }\n\n\t // Intermediate hash value\n\t H[0] = (H[0] + a) | 0;\n\t H[1] = (H[1] + b) | 0;\n\t H[2] = (H[2] + c) | 0;\n\t H[3] = (H[3] + d) | 0;\n\t H[4] = (H[4] + e) | 0;\n\t H[5] = (H[5] + f) | 0;\n\t H[6] = (H[6] + g) | 0;\n\t H[7] = (H[7] + h) | 0;\n\t },\n\n\t _doFinalize: function () {\n\t // Shortcuts\n\t var data = this._data;\n\t var dataWords = data.words;\n\n\t var nBitsTotal = this._nDataBytes * 8;\n\t var nBitsLeft = data.sigBytes * 8;\n\n\t // Add padding\n\t dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32);\n\t dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 14] = Math.floor(nBitsTotal / 0x100000000);\n\t dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 15] = nBitsTotal;\n\t data.sigBytes = dataWords.length * 4;\n\n\t // Hash final blocks\n\t this._process();\n\n\t // Return final computed hash\n\t return this._hash;\n\t },\n\n\t clone: function () {\n\t var clone = Hasher.clone.call(this);\n\t clone._hash = this._hash.clone();\n\n\t return clone;\n\t }\n\t });\n\n\t /**\n\t * Shortcut function to the hasher's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t *\n\t * @return {WordArray} The hash.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hash = CryptoJS.SHA256('message');\n\t * var hash = CryptoJS.SHA256(wordArray);\n\t */\n\t C.SHA256 = Hasher._createHelper(SHA256);\n\n\t /**\n\t * Shortcut function to the HMAC's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t * @param {WordArray|string} key The secret key.\n\t *\n\t * @return {WordArray} The HMAC.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hmac = CryptoJS.HmacSHA256(message, key);\n\t */\n\t C.HmacSHA256 = Hasher._createHmacHelper(SHA256);\n\t}(Math));\n\n\n\treturn CryptoJS.SHA256;\n\n}));", ";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./sha256\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./sha256\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var WordArray = C_lib.WordArray;\n\t var C_algo = C.algo;\n\t var SHA256 = C_algo.SHA256;\n\n\t /**\n\t * SHA-224 hash algorithm.\n\t */\n\t var SHA224 = C_algo.SHA224 = SHA256.extend({\n\t _doReset: function () {\n\t this._hash = new WordArray.init([\n\t 0xc1059ed8, 0x367cd507, 0x3070dd17, 0xf70e5939,\n\t 0xffc00b31, 0x68581511, 0x64f98fa7, 0xbefa4fa4\n\t ]);\n\t },\n\n\t _doFinalize: function () {\n\t var hash = SHA256._doFinalize.call(this);\n\n\t hash.sigBytes -= 4;\n\n\t return hash;\n\t }\n\t });\n\n\t /**\n\t * Shortcut function to the hasher's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t *\n\t * @return {WordArray} The hash.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hash = CryptoJS.SHA224('message');\n\t * var hash = CryptoJS.SHA224(wordArray);\n\t */\n\t C.SHA224 = SHA256._createHelper(SHA224);\n\n\t /**\n\t * Shortcut function to the HMAC's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t * @param {WordArray|string} key The secret key.\n\t *\n\t * @return {WordArray} The HMAC.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hmac = CryptoJS.HmacSHA224(message, key);\n\t */\n\t C.HmacSHA224 = SHA256._createHmacHelper(SHA224);\n\t}());\n\n\n\treturn CryptoJS.SHA224;\n\n}));", "export default {\"1:0x7f268357a8c2552623316e2562d90e642bb538e5:d8e4f2bd77f7562e99ea5df4adb127291a2bfbc225ae55450038f27f\":{\"contractName\":{\"label\":\"OpenSea Listing\",\"signature\":\"304402205f01e62b2331ecb9f1cb3f49a764d66015937cb20cb4c3af625146905ca4832402205076eeb4a74619b4552278836b548c8e525813faa9008399e43bfed7db016408\"},\"fields\":[{\"label\":\"Contract address\",\"path\":\"exchange\",\"signature\":\"3044022069df3b1c82dda9849a3df4cd0dd263d2b6c35e4fb8946865a35f5555830971b802201880d72b3d956867b597a2f5097d7f8799bad6e636d3de4030515634bba47155\"},{\"label\":\"Price\",\"path\":\"basePrice\",\"signature\":\"3045022100db49dbd8426193b6012781f43c3b445d1cf845d99d738091c1f068951728333402204326a2da5203f25deec049deba760bb31a86507c73fe6828c68e0db2eabfc966\"},{\"label\":\"Offer expiration\",\"path\":\"expirationTime\",\"signature\":\"3045022100e71a4921740fcdf4e489c517fc82f9b7e83cfbd675dff318acb91fbf8eaf175402203fac43650771c6523dad8d995ef414d035a92d262a9cf95885ef2704337a2382\"}]},\"1:0xe92b586627cca7a83dc919cc7127196d70f55a06:16c6594547c8c6af18ca0d8b500976bfb7f38764060cec3792c2aad3\":{\"contractName\":{\"label\":\"AugustusRFQ ERC20 order\",\"signature\":\"3044022043fb323d3a064faa38bcabad3a3f797dff60f55b49c19e350a9d0b1f980818e202205c3dc14efcc49adf915f195ff29fa02dfd9d08fca532b76086e501f9e0d133ed\"},\"fields\":[{\"label\":\"Nonce and metadata\",\"path\":\"nonceAndMeta\",\"signature\":\"304402205b674138eb50ddbfdd05768f2c641109f6c8f341d27e10ea12d59e083746cb330220521d739a49ee57ff9a41cf00adc631d3dd33e9ce2b23ce50759fb33c0ffce0a5\"},{\"label\":\"Expiration time\",\"path\":\"expiry\",\"signature\":\"304402203ba8d470649ae7cb5d02764fa48899ec0414075ed85cb9fd95e89ac5b3bb073e02200183233f30de996a8b87417a6febcbb56a544c38fd62b6f7702efa7e0d7b2ee3\"},{\"label\":\"Maker asset address\",\"path\":\"makerAsset\",\"signature\":\"304402206f3c4055bd431c1ceddce5b147c3b5acec950b267205da655fb3d331b9c070830220570c9cfdcc02b10abbf9a335ab6a4067ab7cae2ae8a443f795225a7c3981cc0a\"},{\"label\":\"Taker asset address\",\"path\":\"takerAsset\",\"signature\":\"3045022100fb93cbca6ee524729b138319a92316a37c56ae5f89b3d652af7f680c3f160df002203d1fc525b11cd30d2907f844d7774f49995b2be7e3ba2896dcd4a6e73c8a59d5\"},{\"label\":\"Maker address\",\"path\":\"maker\",\"signature\":\"3044022002e75adf4733bf28d532647c54fb0000415737db37b7e5674f9bb20179d01eea02203834ebcfe81d98e745572349bb0da4ffdc8ec846d35e3812119e9a3491462724\"},{\"label\":\"Taker address\",\"path\":\"taker\",\"signature\":\"3045022100966a77a69a7e0c060f154a8c7ed36087d8ba7da111d9bacc90b873421fe6a75c02207d92956d938a966cb98ddb6e8b3a56e4d8e7725182cf1bb02f03f67512460485\"},{\"label\":\"Maker amount\",\"path\":\"makerAmount\",\"signature\":\"304402207ece45c0993fa46316022cffbdf64307cef2caede370f27fdfd78471c3550dd002200da74e8b3b5201e654e7e4674f7471a333a104288fdf8cf80fc3122126113d1b\"},{\"label\":\"Taker amount\",\"path\":\"takerAmount\",\"signature\":\"3044022014183f10973ddc0ccb12472d2437e33f368f627b99022735044e5c4ebb4e345802203a3f5e8aa5c928981d2dabd0442342c605db1626dcd0d3ad5e3afcd98bb8c673\"}]},\"1:0xe92b586627cca7a83dc919cc7127196d70f55a06:affaa50b47c793acb6b9f912325d898538d409f735b8f312a1914623\":{\"contractName\":{\"label\":\"AugustusRFQ NFT order\",\"signature\":\"304402206dfa1d54ee0a7ab236252618a5fac9c752152304f31838eab4ba4c6d2d3f844b02206658b1e9b2503577619080909be0f4c1d2a899b3d0085ed8c3f2a4309762dd94\"},\"fields\":[{\"label\":\"Nonce and metadata\",\"path\":\"nonceAndMeta\",\"signature\":\"3045022100ed9b0b91a8cace4d312f6d1bab076c057e954a9cd33c3dc5c350d030e41edd230220230e3050131157f6fc2fc578df7b1108f69d55d25ab837c661045877b148765b\"},{\"label\":\"Expiration time\",\"path\":\"expiry\",\"signature\":\"304402205d4913092612fe78d75c181f3ed28ac7808e25ab0131e73bebd91c08aac65e7902203d63f1fd4d5cc11b1f8aa2af0ec6a8440a0ed59d440237bce96ed87874c2a26d\"},{\"label\":\"Maker asset encoded\",\"path\":\"makerAsset\",\"signature\":\"304402205f9fb08bef206518e5bf48cb7fd968709a0ae317e903d9c87a41c934a0983af3022066264858ae4a1338d4daa1b4f9dc7376335ce9e57d4bed320b0d4c27a0012deb\"},{\"label\":\"Maker asset NFT ID\",\"path\":\"makerAssetId\",\"signature\":\"3045022100ac653732f2acece7c47588bfff9a1059dc69bd3fa7e387cfef8246eb0ae2a70902204ffd7f89cd7223f8e52b7c44b02ac4fa1d06017015304f1a3a7459b20d54a5e7\"},{\"label\":\"Taker asset encoded\",\"path\":\"takerAsset\",\"signature\":\"30450221008e59dfbed2dd4d1e2738b829d7a57fa23be737b652c0b01299f3d9482174aea80220138c8e948becda6dc1e7564358e574e7ac8d7016f2a1795059977f401535b27f\"},{\"label\":\"Taker asset NFT ID\",\"path\":\"takerAssetId\",\"signature\":\"304402203408e2bf0210fa4454baf46374cf876299578df056ddaaf5a907306804ca41cb0220056f910e3c500e4a8f55d5c09dceed9753a2ca7b49a9ade1955a598f4e64d657\"},{\"label\":\"Maker address\",\"path\":\"maker\",\"signature\":\"3045022100ce5db907819f4f36c77f1e3a849a3a6ac9483970128998d5add5941e1fcf6dc102200e1f26e08a3f48ef6fe1d40a4149cb8603c5e70e076755ddcf76894d31f2adc0\"},{\"label\":\"Taker address\",\"path\":\"taker\",\"signature\":\"30440220015799beef248e4eb12f95368ef44cfbaf65e43da1a4110623006e46157ab22c022055f962e02e4cbdc05bab79cfbee523da8ff9d16529c4e98755b15d45bb34a16b\"},{\"label\":\"Maker amount\",\"path\":\"makerAmount\",\"signature\":\"30450221008048cec54417376b3a659e3aeeb349a4352751a099443ea203b59e9d2cd954b702201b32704d89bd028a6794ef315bf2a204b7293f547d14282440f5aea041a27ee1\"},{\"label\":\"Taker amount\",\"path\":\"takerAmount\",\"signature\":\"3045022100dad584a953b3c56c67913e76f1a6626cb72620e23bd16f41b2817a95ddb0bccb02206189e3b49d9f3475bd52baff2a40c7f026daf1d2dad9cfaa403eb08030836090\"}]},\"1:0x7f19564c35c681099c0c857a7141836cf7edaa53:139c059f886c2b9b41f05a6c4ec2578a048d18aaadbc095609e5df4b\":{\"contractName\":{\"label\":\"List Order\",\"signature\":\"3045022100cfd82c26631445df34b327b31ad55ad7f26e0480ea7838ae83274ad83b8f9cd1022044b5a3db6b6052a5b818b1bc6cb28d523115033ca7ab3c4a269ec37e3cde890f\"},\"fields\":[{\"label\":\"Order maker address\",\"path\":\"maker\",\"signature\":\"30450221008ab1ef7012cf407a80348d6be16a98d375bf959de72f260cb92520dbb30fc2ce02200d9c0e02c8375d94077ebe16c849df5745654a1c499100286201407be47688f9\"},{\"label\":\"Order make asset value\",\"path\":\"makeAsset.value\",\"signature\":\"3044022018c3ea3b1768f348094f151f8e28171d1325d5cc1621478b23474f4695acf2d3022040ad4bb4c8c138857e426128488ee5a3df8fa0a7cfaf58e9858765a0f72a8a02\"},{\"label\":\"Order taker address\",\"path\":\"taker\",\"signature\":\"30440220482e1c1439ea879f243fdd47cf043bd271c7fb73ba095463e920ab34c38076c002207c095ec3307fa3a3ebcd125238caf3f7c50d196db444559d31c79916e514f370\"},{\"label\":\"Order take asset value\",\"path\":\"takeAsset.value\",\"signature\":\"304402205d33c23ab575fa613d37d7fabaa719f5aa4dacf8de0f299e83dd189eeabfc31d0220535f67346b8ed7d175193929aebead42b92921465c1474f482fce88bfd00323a\"},{\"label\":\"Order start time\",\"path\":\"start\",\"signature\":\"3045022100c178033effb772f141b46a9d5b5bcfc48468c6e5c499d8865043535947b1bb490220687dc9018a38c62e01c91e90fecf9e18febe995267d1bea27d3368f12f04bc9b\"},{\"label\":\"Order end time\",\"path\":\"end\",\"signature\":\"3044022074ecdea3c58a28565af3336de33390aa7e592e5108f6d9151dd000a90a5eb60a0220163362373d11f177e41b914dc10c93b76adfa4c27f4662179329e66b32f8f139\"}]},\"1:0x9757f2d2b135150bbeb65308d4a91804107cd8d6:139c059f886c2b9b41f05a6c4ec2578a048d18aaadbc095609e5df4b\":{\"contractName\":{\"label\":\"List Order\",\"signature\":\"3045022100892ab54a425fa1306df530b5ffeab2944133f1fbc68b99b92e61abf5c5051d1002205eff72d6f2c65f7835bcb2c6593b772d0a45e152988b4379cdb52327ce5da382\"},\"fields\":[{\"label\":\"Order maker address\",\"path\":\"maker\",\"signature\":\"304402205990b238b291ad1bb3cce7d2acce868761c6a73fa79e87c05530813aac8eba5f02207408c5e30e840195677fa60d411d2c2bc76fbe15a7ad2506a4636f001708bec5\"},{\"label\":\"Order make asset value\",\"path\":\"makeAsset.value\",\"signature\":\"30440220646b1bd068a229a75f7f0558f03d2fbbe7dd441d318480dc8eb532c3452ed6a00220642fe4f065198bab191c682e55487cd6464a90c9527983dcd672d15a0a083d80\"},{\"label\":\"Order taker address\",\"path\":\"taker\",\"signature\":\"3044022014dff71fc22c0b53e918ceed99de5aa86cc49fffc22f271a9586a9db1197e413022001125d415ad2eef46353bd8e812248fbf3fc2b60fb5fc7dad3853c9d2c85c6a1\"},{\"label\":\"Order take asset value\",\"path\":\"takeAsset.value\",\"signature\":\"304402202416cd3b9b1b9b7fc4bd5434f0f8c54638d0f29e87f1f92de7006747f4e856aa02207afb4547d03de6247628f93c5ed49f9122e2780507bc601f5211c89c8905b93e\"},{\"label\":\"Order start time\",\"path\":\"start\",\"signature\":\"304502210095c5b1927e171ce8f0b74bd311cb0f66bff5e3d23a7eb52e1d6b696378defb2502204114def9ce15f2b698ea00d43bee8e8692568a6394e24c8e0b53c90c29ab7ad0\"},{\"label\":\"Order end time\",\"path\":\"end\",\"signature\":\"304402203f435338d8130399eaa6939c0cc8f4fc5efc92a34256ac450d6d55b0ac2e816f02204c116eb40b3c07810facd9117572147216fdb175b2ce31c6ef277501dff7f6d1\"}]},\"1:0xb66a603f4cfe17e3d27b87a8bfcad319856518b8:07bed12ab07fe09633d57ede321ed3dd0940d654b9d34a379c4997b9\":{\"contractName\":{\"label\":\"Lazy Mint ERC-1155\",\"signature\":\"304402206bd24ac8c5cfa2b75e16ea0c315295368a7f780c4ec062555079cfe48d583a8602204300f968037f9ea84919cdc8ad3a22103b04e00b9c4dffe5c34ebf13d1b769cc\"},\"fields\":[{\"label\":\"Token ID\",\"path\":\"tokenId\",\"signature\":\"304402206e18eac55b89b17b4706547807a864f6c1b37eee09fff4ccad54e9842eb1abaf02204ef2984f87d6c0ebab26352ce82f8040aae5bd259ae55d9921d609b3936d15dc\"},{\"label\":\"Token URI\",\"path\":\"tokenURI\",\"signature\":\"3044022067c04bf2be50a7660b11742d10dbcc84655c22a0d359c20b2abb54a4d23f2846022030bded842ae4208854c0d11d655b234465e2c9ee9fe9b1eb5074778ddcfa9426\"},{\"label\":\"Token Supply\",\"path\":\"supply\",\"signature\":\"3045022100fc4ab75ab184e564ea297da785d4a749b913e58706dff4e6c7ae49f72a7e9701022067bfead2e11a323beca3821a3ba310d705ebb128f45bee1f394dcc7e60af8043\"},{\"label\":\"Creator account address\",\"path\":\"creators.[].account\",\"signature\":\"304402203e5e5fe4636b283df4e4d027e8ba5e43d912f53125b052e603548fff051b37d702207ceae4257ccc801de3943fb68b1a0e2af546e12d3bc74481b7695a12de7eebd2\"},{\"label\":\"Creator value (10000 = 100%)\",\"path\":\"creators.[].value\",\"signature\":\"3044022065a51fd2cafd0013215fb703e27052320d35951e5f9d26a3c3d03a050b7088340220193e98ad9282a96e3e7b5e6813bb5989c31cded994fed35d5383e68738905c1e\"},{\"label\":\"Royalties account address\",\"path\":\"royalties.[].account\",\"signature\":\"304502210092d8aa5743b9fa52cc1d5caf4f83e65cf232b02394dae8e3056d29606377caf902205119918948d39a165950efb998e19aecb3bde611065e92fd5f5c10bafaacda22\"},{\"label\":\"Royalties value (10000 = 100%)\",\"path\":\"royalties.[].value\",\"signature\":\"3045022100b7cc93e7abfcc00efbfeeb49cef4d2ceb5521e1c97b2bdee882e011292964be902203d7ebd7c328961e1ca66aa16e8c61aeefa3bbbcad419bc65315658cdb425e5b9\"}]},\"1:0xc9154424b823b10579895ccbe442d41b9abd96ed:4776d13d863bd29241312beab87bd487ba5648c8c71919e9e5025e7b\":{\"contractName\":{\"label\":\"Lazy Mint ERC-721\",\"signature\":\"3044022001ca2f9abb569b76bfb8398ba150999d93fc6a02f5e637f4ac3a125b6c48b528022007ab8f1b776d1b2f5a0b44f90214b02f71c3535e468f03b681f133c3bc217946\"},\"fields\":[{\"label\":\"Token ID\",\"path\":\"tokenId\",\"signature\":\"3045022100e762ea781d76c81e5f3b28269e03f1cfe7e33b847dbe20a56289841579b0fb4f022033c6249fc155deb94850e6e30fd7fb854f07c63c2b8ffc8b3c7d412c01b8398d\"},{\"label\":\"Token URI\",\"path\":\"tokenURI\",\"signature\":\"3045022100dc369275a5b2d6a3c934221e9f7483082cd5c52bb1b41a802d260c54757cf29002206dfcd13e32357144ed68b90c2308208bfa699d95d917a97d8bf438aed08269bc\"},{\"label\":\"Creator account address\",\"path\":\"creators.[].account\",\"signature\":\"304502210089448beccdb19e680a7f8a6dd4f1e0dc8319b3458f0d5a491518bb97af0e1f5002200dc01550cc4d0d3398049938d2a498c142e2e82eb9086c7d6d6a8f1f90d1d25e\"},{\"label\":\"Creator value (10000 = 100%)\",\"path\":\"creators.[].value\",\"signature\":\"3044022026ebacc1dce44b2815c6e53d9030836a4768ba0019c4b6f9d8eb83d8699ffac3022076b9bc2f89daa7e5e21b294163e64ed25d2bdfe5f2373f6aefba4f6da1d92d3f\"},{\"label\":\"Royalties account address\",\"path\":\"royalties.[].account\",\"signature\":\"30440220626fdb56db8c34a282917aab1f7fddd36a060eb35f117ded7b675be946acfac002206770d35391e086e1ab31e9fd9cea07e90b09d38f0b882857e394283ecd6575a9\"},{\"label\":\"Royalties value (10000 = 100%)\",\"path\":\"royalties.[].value\",\"signature\":\"3045022100e22f440fe2bb06d77a0afc50366689ede59570dc91796305ea62e5ca5da5286c022074bdc3dc840c7314abcf6bbaf35fe5e20318c54a911e7508942fecd38b70db9e\"}]},\"1:0x72e9d9038ce484ee986fea183f8d8df93f9ada13:65b962ff5c94fe989fdc9169a5dbf3662e79747c3932616d9f0a39cc\":{\"contractName\":{\"label\":\"SmartCredit.io\",\"signature\":\"304402202d7247f61c8a08f5ea99fdbf628e88d487f12a6e4ed330bdc3e8a5886fee6f9202200524d6035cbdcd469b1d1d3fa8dcf83595112daf20f24286e1b0e3c820fa2127\"},\"fields\":[]},\"56:0x8dcdfe88ef0351f27437284d0710cd65b20288bb:16c6594547c8c6af18ca0d8b500976bfb7f38764060cec3792c2aad3\":{\"contractName\":{\"label\":\"AugustusRFQ ERC20 order\",\"signature\":\"3045022100cdd6ed9272614ffdedb2b2aa22418386928f1174a6214451d67b82c06b637d4102205ee814ca52cfbdab011e337727cfe91fa272b98246ecbfb1683bfc0de3086efc\"},\"fields\":[{\"label\":\"Nonce and metadata\",\"path\":\"nonceAndMeta\",\"signature\":\"3044022056e3fdb59c9ece3d411d03963edfcb9a186ccb753b4e984366e7ca6baa99b38902206a7267e31543659ba3bf8b796edec2d1c6f174a810b89862e43541f94b191eca\"},{\"label\":\"Expiration time\",\"path\":\"expiry\",\"signature\":\"3045022100a4cc77374944e947748dd36408f48f43a94e67436231fad62191554d1ea5ff0e022001baa4fc0587af310bebe1c0044d7b4280bb5537192736fa3805584c735a6710\"},{\"label\":\"Maker asset address\",\"path\":\"makerAsset\",\"signature\":\"30440220770b731ffb6091493ce2fcdb4163ad872add409a9c66e88e29b0d7a82b0ee79c02201e0130c1841c484e816b9f9ff3694eea3601e1569c1ddb87319b08d86e9823d5\"},{\"label\":\"Taker asset address\",\"path\":\"takerAsset\",\"signature\":\"304502210094b700c3383bf0d8740e09d23dac120addc1c21029746f672d8f8c8b3a2a2995022008b5d3af862f7fb0510321cd9ae4f7172ab3b347f6556b3da79e2a95950ff34b\"},{\"label\":\"Maker address\",\"path\":\"maker\",\"signature\":\"304402202dafdefb2181e5bbdf5816fc710400bae0846bc08dfc389ef8008048228e2fd0022002b89786ea578488cf6c6b751dac0c13dd6c2c57c8d6bb0fcb47a28d2b07b1b6\"},{\"label\":\"Taker address\",\"path\":\"taker\",\"signature\":\"304402204c27aac1c07e8bde8a998bf06acd5eaf40e874a9b128a4f19ee8c39ce45c9cbe0220380d9438d10ce81f7545f3de8530a19c1eda78e4683fc2145b9715eb260f1d66\"},{\"label\":\"Maker amount\",\"path\":\"makerAmount\",\"signature\":\"3045022100e7f19c15b49e6f40eddd2c8a24d8c55e9224262aa0b856a413f842fc5c0fc7d00220341e5eaf45d8335bb6143768b1c961b6c7e97897bda5ef485457020661ac3ae3\"},{\"label\":\"Taker amount\",\"path\":\"takerAmount\",\"signature\":\"3045022100e36cd43f82fc0f99ec2770a26b245f6af13623cee69670d68dd696ff76d4630e02202057a0dd1faee909037429ba7489ccf3891a38d29a4da04648441105c1e89048\"}]},\"56:0x8dcdfe88ef0351f27437284d0710cd65b20288bb:affaa50b47c793acb6b9f912325d898538d409f735b8f312a1914623\":{\"contractName\":{\"label\":\"AugustusRFQ NFT order\",\"signature\":\"3044022045bb3ce0d61f428537754555a0d69cfc5554de2dd58c1c5cc7ae81abe073b1df022039ba8d7e1230c3851fc08db58cda6222c420dce4b8cf96725891906fc5f7539b\"},\"fields\":[{\"label\":\"Nonce and metadata\",\"path\":\"nonceAndMeta\",\"signature\":\"3044022020d30ebe13aa1235ea25dcc247a1c494a6aa2ac4f121aadc3beb874b9de4b75e022078efc82c2343d6165960fc252d10313550b6d9d1faeb6f2ff611c288fb53f364\"},{\"label\":\"Expiration time\",\"path\":\"expiry\",\"signature\":\"3045022100ee126c98d8ad5b000090d6c16131709618d803878a72ceb1f58f2b11b2e52324022076403ce3d181511afc9b59b3f4a0ce4de9ee76dd60c78eb61660d623294d4070\"},{\"label\":\"Maker asset encoded\",\"path\":\"makerAsset\",\"signature\":\"3045022100ed1f432fe0c33307e397f846970f7de0fc18098f3d5b4cc1a25844f75dbbfb9902204075ef8e6d6dae438dac2a7e3aace3e27bc7c67fe22728395f92888e68361f20\"},{\"label\":\"Maker asset NFT ID\",\"path\":\"makerAssetId\",\"signature\":\"3044022022be34e598b158445f7ff6a5565b04627b61789339aa956b03f5c8dcb81e0ca102201b970d57742618204906414d7d23dc42e9e566776e7bda9060bcde335817a8ce\"},{\"label\":\"Taker asset encoded\",\"path\":\"takerAsset\",\"signature\":\"304402203ec8a77927b84388d5a0ba1bb0bfa38fcb862b8c43d988bbbbccbd547a4ae38e022002f2f736d3cfbf42829b750af704323f29b1eedcbde789c49052521ec47bafee\"},{\"label\":\"Taker asset NFT ID\",\"path\":\"takerAssetId\",\"signature\":\"304402205defad5bc1514f254cece6e8dfbfe3b68c3818bef6d4268b40c59858a6a2187502206767bb96c040e523dfd88724a0ce4b4f6bde73c02a286772f2a73c973dab0bab\"},{\"label\":\"Maker address\",\"path\":\"maker\",\"signature\":\"3045022100a273a21625a130728e0448f53a047d50867a9ba5e4a285d7e06d98fb3bd655c2022061e93ce13cedef0ebe9bc9340b988d0fc7353e99e2ec28b77102a14b3a129479\"},{\"label\":\"Taker address\",\"path\":\"taker\",\"signature\":\"3045022100b74529d5cab0055f80732bcf7864f03db98bb9f779fa56171f3faafdfee2719e0220757505e2ba5df6184002e921f678f9f5bb073197652a45d86c6edf003067ce2c\"},{\"label\":\"Maker amount\",\"path\":\"makerAmount\",\"signature\":\"3045022100c14e1f90619be9cc92da927b1c908a18133b043e138d908bf81117e1fc73fe000220503047ae5e75ee53c0ed60601644ec09f430c613edc6ec72cdae4021d29438ce\"},{\"label\":\"Taker amount\",\"path\":\"takerAmount\",\"signature\":\"304402201096ca9ff9b886a77fcbc7fdc8ddfc0f42a9c8e7fccb783581ca3abc75ba61dd0220191d21eed8b4eed56975b580832a8b1891a5b674fe1a0e5d7314b7b6486d7104\"}]},\"137:0xDb46d1Dc155634FbC732f92E853b10B288AD5a1d:9e97b4d1d211350352bdbb5ef45c4cb52f988d93a2d4a8ec6e675d14\":{\"contractName\":{\"label\":\"Dispatch.xyz Follow Profile\",\"signature\":\"3044022008ad0a8cfe8c2630848f05e54ab93cfd1f5c301eb52cc74537d67a56751932bc02206dd3e78f5055b6c65a73905f840963b2f696afd04d6d472f4185dce9f6262821\"},\"fields\":[{\"label\":\"Profile Ids\",\"path\":\"profileIds\",\"signature\":\"3044022079ab31498b3ef74e744d5414f4c51334e00b20a5ad7c0a0ea6f463462d0a3699022079b29776df1f5243794cc128f19478ba586cd3b9378b5809740e9980763f8d8c\"},{\"label\":\"Data\",\"path\":\"datas\",\"signature\":\"3045022100c04fb22aecc349de63571095782ea34cde05e576095c980d5c86f054c1a248cc02207f5a41199516bed46221aebed4f0f377508d39d661ef7f6ea7b16877709aa4ce\"},{\"label\":\"Nonce\",\"path\":\"nonce\",\"signature\":\"304502210090109424df964562737fd1b5ce2f06b427856ae933c37f279af199f64fc530760220290cf4491328fc947f4d73f0032e151aa09caf8e085d0f0306fa355c0624dcac\"},{\"label\":\"Expiration Date\",\"path\":\"deadline\",\"signature\":\"3044022060825e02b00e4487917d073f701639b1ca812f21f1cf588fa8eb545a59b1fec8022073ca7918a322dfeb966dfe5239cc1a213c14e67a32f5f51e14e53c05f4149783\"}]},\"137:0x33c6eec1723b12c46732f7ab41398de45641fa42:2a4e40fa701836b6f11303b841424a6f3a47a5313c810b6651517fd1\":{\"contractName\":{\"label\":\"Mint\",\"signature\":\"30440220513be6e618840924202f319870537e0c1f1eb2e684c0a2c61152fc4c20b41c550220026e22f2cd2e12a6b48f97bbe362600556ce3fe5e8b292c05c89c591ea446e2b\"},\"fields\":[{\"label\":\"Receiver\",\"path\":\"receiver\",\"signature\":\"304502210089eeb41d1ba1235fe8319c6a248e1ac66d2598979d265e2d4cf16abc34ba47f302205a59e802e42b3268441980b4708600ab6e05e4c55de7407610987532cf73462e\"},{\"label\":\"Quest Type\",\"path\":\"categoryId\",\"signature\":\"3045022100bc6cc7ae4c2b3b4d43acea4c513e09d11736275fade4c0bd834d94f6ebd3893302203045ae14bfbaa4ef3bc0d9cf76f29cd4c90859464290632ee72b20f4b5c37f8b\"},{\"label\":\"Collection\",\"path\":\"collectionId\",\"signature\":\"304402207537d928b803882aac63dadb7fd512f4b959c0e1a737ce7594c9b9e0a0c661170220587298e0e8e2eae94da28564b1bdd7f62273d7e3707665a7966f1b04a15f061b\"}]},\"137:0xf3cd476c3c4d3ac5ca2724767f269070ca09a043:16c6594547c8c6af18ca0d8b500976bfb7f38764060cec3792c2aad3\":{\"contractName\":{\"label\":\"AugustusRFQ ERC20 order\",\"signature\":\"3045022100a887a8b2f40695509ac6e040feb1a4a088fee459fd7e76cb137ea7c06b0a0b930220617b514271c05679e7ce04860ffca703ad2a21f4a45cce34b40e38624cf7ec13\"},\"fields\":[{\"label\":\"Nonce and metadata\",\"path\":\"nonceAndMeta\",\"signature\":\"30450221009fcaf300fef36d00f64c3d5e92991e67fd93862f8eddba0b8472568b5c66e38d02203a26f3aad1c0cf6638dea961f8f5e4ba5f72272bc7f1e33afac897a3b5b51604\"},{\"label\":\"Expiration time\",\"path\":\"expiry\",\"signature\":\"3045022100984f166ee1744b4b69e24ed1e49fbaf43a24e82dd5b7d2103cf8ca854ff49e0a0220326ab17879b902521fa032a89c5c984e52bf3e31c8336cd67a1ce198d7c36e2d\"},{\"label\":\"Maker asset address\",\"path\":\"makerAsset\",\"signature\":\"3045022100f4ec14863e0512804fc69d82fe17bf576340ae8005d0c48520cefb3254b102f702205fea57ba3919071157ff3ee0c93472e936f1dc079bcb0c447bb87ad86e505ea2\"},{\"label\":\"Taker asset address\",\"path\":\"takerAsset\",\"signature\":\"3045022100957771ad2eced04af9750c1df10cc5b5b913fd3f9fe83408baa766573ed34221022055a1ba30b3a8895a011719ac54adaf7bfd24fe2c5041a90348097f719bed0dc7\"},{\"label\":\"Maker address\",\"path\":\"maker\",\"signature\":\"3045022100f25edb42b652d5c645de567c201a1e6a64b0d6b23274cde08046d955cd2573860220129bbded4e33150cc38b93033b2d70d5fa141066f1ed7c603b5515ab8cdb2fca\"},{\"label\":\"Taker address\",\"path\":\"taker\",\"signature\":\"3045022100c8790938f88557986c769102d31603849dc8c560cc03a45db99ddc90d69306690220295950348fffc22fbb898d75e768edb1edcb1c8772cc3518ff9687e957a87e50\"},{\"label\":\"Maker amount\",\"path\":\"makerAmount\",\"signature\":\"3045022100b5e1dc4e5f69fd80611a4f5c7d306ac6aca4a2a2103515d761557e532884ca8702204b86dd5c323345242f1c1b263ba035932a10a5b0eeaddbc79fa10db27aa9d7d4\"},{\"label\":\"Taker amount\",\"path\":\"takerAmount\",\"signature\":\"3045022100bd1de29559311612a7d0bca3c61b10d9ddf0753be7c372ebb95e0b69b674c01102207d685aa2b0a2309ad094a5fc8e09210681781f9a4294e4c7973d0ecf1adabcbd\"}]},\"137:0xf3cd476c3c4d3ac5ca2724767f269070ca09a043:affaa50b47c793acb6b9f912325d898538d409f735b8f312a1914623\":{\"contractName\":{\"label\":\"AugustusRFQ NFT order\",\"signature\":\"3045022100b9798555ab901ed3cefcdec4aabd9418f3561fba299833ceadbf9d3043a996a7022037388e3956ce02764088733d92384fb4e669754b037e8a913995d761ac0d5cdf\"},\"fields\":[{\"label\":\"Nonce and metadata\",\"path\":\"nonceAndMeta\",\"signature\":\"3045022100b57c5877ce124196316dde0e2fb0f18258521cc2c7c27405bde78008bca27d8d02202053d4696b28b40fd1a16e7a179020c7d633e4548da0bd92f9442c24da12d510\"},{\"label\":\"Expiration time\",\"path\":\"expiry\",\"signature\":\"3045022100b35db3057953f7b747d4423f688d8a3fb3101729f37af65c4ac4fc9a7ee8fb8d022033f4d70422b437593f00af75828ff067f914f825bd3075f8462080bf4e0f9ae0\"},{\"label\":\"Maker asset encoded\",\"path\":\"makerAsset\",\"signature\":\"3045022100e2e0f280d333692a776343669d6f17dac3ded8935d5875964d5ac6b05bb093f80220589afeaf7a7baf3b5964b439111d07deafe25be8a32b43640a2cc073a7257aa6\"},{\"label\":\"Maker asset NFT ID\",\"path\":\"makerAssetId\",\"signature\":\"304302201e35015cc3bbd6ca28bd57eb970cf1eb05826a4988c1238e951574f8804f28c2021f0cae62ed8199b725a39e714e60c92fe522ac7992c3dc1a27866f749547de89\"},{\"label\":\"Taker asset encoded\",\"path\":\"takerAsset\",\"signature\":\"304502210094d2c3de8a61bf940dc5c8132070ee0566ab6d0059f1eff5aec3ba1ec04740a202200fb41470f2693427466a9ce580d5c9ff12243f848351c7aa2ac070c1618896e2\"},{\"label\":\"Taker asset NFT ID\",\"path\":\"takerAssetId\",\"signature\":\"3045022100f9b55eafa8d519298960b040f36a7479ace9d43b677d243d22c3194147dfa033022025f7a2962e342ee1572f814cd8b8cba1382deb20054475ba9df9dd321bc9fcc7\"},{\"label\":\"Maker address\",\"path\":\"maker\",\"signature\":\"304402201aa4061287e14289ff1c4fdffe8ddd811775aae4bb6577970ebb87735102a5ba02207d9c89254e9698a7aff849a87c2a163ce9793212a5fe3745e446393c6a71ec46\"},{\"label\":\"Taker address\",\"path\":\"taker\",\"signature\":\"304402207ca92ed4b465b4fe1d4b2dd65561165a70b54c8dd132dcf15031c799c8ab22fe022041d7bd664003c62e949cdb0ed09a744ac6adce7d6e676e4de22437a830edcf74\"},{\"label\":\"Maker amount\",\"path\":\"makerAmount\",\"signature\":\"3044022038901c22513acf13bac39f553c763d26ee32c3e6e215ca3cb69da0274ca901c702204fce716fc91f3cb7ac7da446bd3432020d002c5a62c48d199d7b4379fe93c9f1\"},{\"label\":\"Taker amount\",\"path\":\"takerAmount\",\"signature\":\"304402203361ee1439f545c9664035be586925b2fb4878de9dbcdc7a519b5eb95a44ca6e02205f905942febcf5342577b5af149ea4deea5e6d0e1ae17356bb1d0628d8ccf8ff\"}]},\"137:0x35f8aee672cde8e5fd09c93d2bfe4ff5a9cf0756:4776d13d863bd29241312beab87bd487ba5648c8c71919e9e5025e7b\":{\"contractName\":{\"label\":\"Lazy Mint ERC-721\",\"signature\":\"3045022100977ad189fb3f8c809caef784ca6c66fcda1c98274d92219b07416e43f43187af022051b069af307aef8d7b3b3aaf815eaf0e7e91c55f994616f3ea88293dd69f217c\"},\"fields\":[{\"label\":\"Token ID\",\"path\":\"tokenId\",\"signature\":\"30440220403fc14ad30f3f3ea597f75d88371c83ef2e10130a5143faeda87dc507fb9aa2022056202bc01b283e0f625b82c73db84ca3f17eef6d9eea89709aa0a88eae17096c\"},{\"label\":\"Token URI\",\"path\":\"tokenURI\",\"signature\":\"3045022100ce280997a6b39acd5dc3522401c205eb4719b4b43e7e673958f1c7b7b97a8f59022042eb6a70f1f45c771a697eb85b71ba58acc8074ac436d27840ec1325423d7e0c\"},{\"label\":\"Creator account address\",\"path\":\"creators.[].account\",\"signature\":\"3045022100f072042cace3b6ce605bbf0db7c3941928cb1ac5b6011bf47e04d76f57bbf392022054eb24e12319d88144a5e4d15a22271f2f1285d51f1b7f48bfc46ff1724c1741\"},{\"label\":\"Creator value (10000 = 100%)\",\"path\":\"creators.[].value\",\"signature\":\"3045022100b5517383a1f9f7281859e1e3ebcc588770ac08fe7961d83ebff3ff922674fa3302204c490c86d4d987875aa55c089a6c8bab4414a742bc7df19f67261a319d4d8c17\"},{\"label\":\"Royalties account address\",\"path\":\"royalties.[].account\",\"signature\":\"304402203660c0f0da24c89206e992e46c399d75d4e0981dd86bc145f4ed0d0ef469b47402200948f415f220225eaa67fb03749b2d5ea1ca8dfa76eda34d15c8f95746e30bd4\"},{\"label\":\"Royalties value (10000 = 100%)\",\"path\":\"royalties.[].value\",\"signature\":\"30440220747d86766a08b5bf78182dadf5ace3813cb8190266e5d1a72f2d94a387fd6ba5022006c69b8171a47fa15ef906fac4546856dd9467a8e1036d89e323614e64d29715\"}]},\"137:0x35f8aee672cde8e5fd09c93d2bfe4ff5a9cf0756:82dc7c771ad33e33d4e1b89d932d7574d87b8ef5d7d9c0d6f0be97a8\":{\"contractName\":{\"label\":\"Meta Transaction\",\"signature\":\"304402203e256b1407f82dbe395bee10e34bf5b995c3fa91737172b58fb41bcf8e006eea0220046543fdb21b8f65e050b57081915c083fab2abc1cdd663ce53b1c792dbfdfb2\"},\"fields\":[{\"label\":\"User Address\",\"path\":\"from\",\"signature\":\"304402204576c4999dd6a70df131dfd032667a42695d333a07b3599ec6d72843c54b48b502202cf424d057bffceadbbcd9023b2241bab6d2faf8b7324fbdf87f5daa9789fe38\"},{\"label\":\"Meta Transaction Nonce\",\"path\":\"nonce\",\"signature\":\"3045022100e094b23ebe8102c3c1aa5f802c33ed56f48bc94f6446b289ce358ea60ac375c0022013255aba7dc03fcfe30c7eacdf7a14ad0c51f389ddd51f7c4ba6e8d9bbf3dbb7\"}]},\"137:0x7f19564c35c681099c0c857a7141836cf7edaa53:139c059f886c2b9b41f05a6c4ec2578a048d18aaadbc095609e5df4b\":{\"contractName\":{\"label\":\"List Order\",\"signature\":\"30450221008b4ee6f1b492d19243afc4715d1f0cd9bf79a1aeb61fbf58f0e1323bce9dbc99022001a8a548f081eba23f33f03e20f478c33bd264efb3d8bfa16ce96e0b69ad5428\"},\"fields\":[{\"label\":\"Order maker address\",\"path\":\"maker\",\"signature\":\"3045022100f9851e9dfd9706740307e7829705b3e049390755e36b26a059f28d6bb47ac949022029a4efc35a2264fbe8f88eee1f83c430fb5e96bbf55e6deb31a60826cb0203b3\"},{\"label\":\"Order make asset value\",\"path\":\"makeAsset.value\",\"signature\":\"304402203bf13f37325f60973b02d5433857676ce135f94011047bbfdd2b97c30db1a069022029f409c7689891c222cdec4e63d143938ff73a4f6cffb0c5d56228d572d25fc2\"},{\"label\":\"Order taker address\",\"path\":\"taker\",\"signature\":\"3045022100bcdc72ba9f16a3ac3b73ad04f445a60958a7ea644511d9b917c5ae52be52c76b02206a68b66cc24c79e45687c07a201f7e910444a66a657c615c5854ac7065b0c6fc\"},{\"label\":\"Order take asset value\",\"path\":\"takeAsset.value\",\"signature\":\"3045022100c23622dc64172dfedc8fae04d5fa24e25f598bea659e703839dccf19736ba13a02207554a945d0e9c2816860ec7a6c4aab9088fb58f5316c1007d82f0add61693954\"},{\"label\":\"Order start time\",\"path\":\"start\",\"signature\":\"304402200cfe7613b90190a2c4dafaa661e5778a7756444e593a8e16105da315231df264022025e1daecd1752763decb7c51389a5eb97037536ecea3781e70ab428d75e1278b\"},{\"label\":\"Order end time\",\"path\":\"end\",\"signature\":\"3045022100d0047bfc769190c5a173c8bdf79a2fdef008f0674ac04f3a7fe100553f41dafc022030e7ef0a1dd8f6f4131da237f6c33a331add85dd747f7f9749806759767d0880\"}]},\"137:0x7f19564c35c681099c0c857a7141836cf7edaa53:82dc7c771ad33e33d4e1b89d932d7574d87b8ef5d7d9c0d6f0be97a8\":{\"contractName\":{\"label\":\"Meta Transaction\",\"signature\":\"3045022100a2f95042a915f8ae76b54b1f012271a44356484ea6d4963b81e6806ed6fe80500220564155498a275d3fe5eec595fad3858cb2d7fa85178b98208d09a886a1485257\"},\"fields\":[{\"label\":\"User Address\",\"path\":\"from\",\"signature\":\"3044022051a39f6c809110faf6aa95fde98315c0c2b2cac34c31d927c058a2c0ebc158cd02206ccfac20b0327ac6e2ca08d5d53aef189b2bbe8bc010ae9002b25edcf43c2f06\"},{\"label\":\"Meta Transaction Nonce\",\"path\":\"nonce\",\"signature\":\"3045022100c1e15f064b9cf3d8cb2c6b297318c543066a12868419121c7062ccb7fb2f619b02202c3079f47124d6a25178d4b8431acd0bb08f44e9a0ec302e71bb4cc9b49a05a9\"}]},\"137:0xa2d9ded6115b7b7208459450d676f0127418ae7a:07bed12ab07fe09633d57ede321ed3dd0940d654b9d34a379c4997b9\":{\"contractName\":{\"label\":\"Lazy Mint ERC-1155\",\"signature\":\"3045022100b85f48fd591345542f9e2271b4f33e71287a703eda9f9f7b54458dea60fb59fa0220661f4281eff16352e5e8db92a254b6b74ac0f20e3d41c9042a3c7c9f7397bd08\"},\"fields\":[{\"label\":\"Token ID\",\"path\":\"tokenId\",\"signature\":\"304402203dfd604170efb9379c36e17439f15f441b437aecf2d9abd0dc8b0c757c15d1fa022007fde07992c2b3797e7aacb7309cb60d494856d7a9d5866981a8948abf4d6a9c\"},{\"label\":\"Token URI\",\"path\":\"tokenURI\",\"signature\":\"3045022100a334814c15bfe1474472e56201aa83aa7016648b2a92aa2ae7c4d86b8a412eaf0220416654d59af289a253a96cbe4f5c9b75c2129d603d94cb3c7966cbea682f542a\"},{\"label\":\"Token Supply\",\"path\":\"supply\",\"signature\":\"3045022100a180585fc34f26b83b50c1d7609a0623b85b76267e393bf2871f41790487bf5902206c296108c56f2a1557a66a04f05bbcd7f0e0e0cd7a7a9764783673c0cda21d1f\"},{\"label\":\"Creator account address\",\"path\":\"creators.[].account\",\"signature\":\"304402200a32f52a36f61e3b62af734ceea6e02ebf44e9bbafccb92b2570b7ae9666638e02205e8a0ee1634919bab75369b611257e17c12cf379a4b83e3da2089de13863baa0\"},{\"label\":\"Creator value (10000 = 100%)\",\"path\":\"creators.[].value\",\"signature\":\"304502210092c988b7806250d99ca2760167a0c72f4c7e20f8f9174c519421bba8adc03c0a022032f33a3843e31b8ad17991e8eb3e3b922c5c2b9570d930fa9456b6f59b8974d3\"},{\"label\":\"Royalties account address\",\"path\":\"royalties.[].account\",\"signature\":\"304502210081e5ed5701d2bb497c4b1cadd0ca61220b1078357f7e3ace908c01fcfcd3abad02203b03cb75eeabcd49777362466e3af9a461ad39059238748ed7d902f988db3318\"},{\"label\":\"Royalties value (10000 = 100%)\",\"path\":\"royalties.[].value\",\"signature\":\"3045022100cc555652ef532386da9ad2405536aaa7adbe4cdac73ae9b2a8d4b0659eb4013a0220030799c1a813bef66c6395c7305a1f98e3bfc0bd045917d63bf7bd24e09fbebf\"}]},\"137:0xa2d9ded6115b7b7208459450d676f0127418ae7a:82dc7c771ad33e33d4e1b89d932d7574d87b8ef5d7d9c0d6f0be97a8\":{\"contractName\":{\"label\":\"Meta Transaction\",\"signature\":\"304402202e2b7810798bb8d8094ff46e47ae09c820b374420984f5c9845139f7995b5266022050244aa907e45d7ff4ffc0b383262c4425d32aee4190bfc09fff359163268b73\"},\"fields\":[{\"label\":\"User Address\",\"path\":\"from\",\"signature\":\"3045022100da2c6c45ce4014375aec27ce7dfc470a066a53a3ba812da7f4fac641fc48334502202ce049c05a76e19fc4195a323464383f3eca62f33a435ad5807716af1a83af4e\"},{\"label\":\"Meta Transaction Nonce\",\"path\":\"nonce\",\"signature\":\"304402207b53dc30da4e7360a2deb22ab0ee2ddca9dda1c807095a57751dc395d7d503c602200f464f277a17558cab3b891fe8d4fb232b5783f26f6813da77ceeba527bbe1c5\"}]}};\n", "import axios from \"axios\";\nimport SHA224 from \"crypto-js/sha224\";\nimport { hexBuffer, intAsHexBytes } from \"../../utils\";\nimport {\n EIP712Message,\n EIP712MessageTypesEntry,\n MessageFilters,\n} from \"./EIP712.types\";\nimport EIP712CAL from \"@ledgerhq/cryptoassets/data/eip712\";\nimport BigNumber from \"bignumber.js\";\n\nconst NULL_ADDRESS = \"0x0000000000000000000000000000000000000000\";\n\n/**\n * @ignore for the README\n *\n * A Map of helpers to get the wanted binary value for\n * each type of array possible in a type definition\n */\nenum EIP712_ARRAY_TYPE_VALUE {\n DYNAMIC = 0,\n FIXED = 1,\n}\n\n/**\n * @ignore for the README\n *\n * A Map of helpers to get the id and size to return for each\n * type that can be used in EIP712\n */\nexport const EIP712_TYPE_PROPERTIES: Record<\n string,\n {\n key: (size?: number) => number;\n sizeInBits: (size?: number) => number | null;\n }\n> = {\n CUSTOM: {\n key: () => 0,\n sizeInBits: () => null,\n },\n INT: {\n key: () => 1,\n sizeInBits: (size) => Number(size) / 8,\n },\n UINT: {\n key: () => 2,\n sizeInBits: (size) => Number(size) / 8,\n },\n ADDRESS: {\n key: () => 3,\n sizeInBits: () => null,\n },\n BOOL: {\n key: () => 4,\n sizeInBits: () => null,\n },\n STRING: {\n key: () => 5,\n sizeInBits: () => null,\n },\n BYTES: {\n key: (size) => (typeof size !== \"undefined\" ? 6 : 7),\n sizeInBits: (size) => (typeof size !== \"undefined\" ? Number(size) : null),\n },\n};\n\n/**\n * @ignore for the README\n *\n * A Map of encoders to transform a value to formatted buffer\n */\nexport const EIP712_TYPE_ENCODERS = {\n INT(value: string | null, sizeInBits = 256): Buffer {\n const failSafeValue = value ?? \"0\";\n\n if (typeof failSafeValue === \"string\" && failSafeValue?.startsWith(\"0x\")) {\n return hexBuffer(failSafeValue);\n }\n\n let valueAsBN = new BigNumber(failSafeValue);\n // If negative we'll use `two's complement` method to\n // \"reversibly convert a positive binary number into a negative binary number with equivalent (but negative) value\".\n // thx wikipedia\n if (valueAsBN.lt(0)) {\n const sizeInBytes = sizeInBits / 8;\n // Creates BN from a buffer serving as a mask filled by maximum value 0xff\n const maskAsBN = new BigNumber(\n `0x${Buffer.alloc(sizeInBytes, 0xff).toString(\"hex\")}`\n );\n\n // two's complement version of value\n valueAsBN = maskAsBN.plus(valueAsBN).plus(1);\n }\n\n const paddedHexString =\n valueAsBN.toString(16).length % 2\n ? \"0\" + valueAsBN.toString(16)\n : valueAsBN.toString(16);\n\n return Buffer.from(paddedHexString, \"hex\");\n },\n\n UINT(value: string): Buffer {\n return this.INT(value);\n },\n\n BOOL(value: number | string | boolean | null): Buffer {\n return this.INT(\n typeof value === \"boolean\" ? Number(value).toString() : value\n );\n },\n\n ADDRESS(value: string | null): Buffer {\n // Only sending the first 10 bytes (why ?)\n return hexBuffer(value ?? \"\").slice(0, 20);\n },\n\n STRING(value: string | null): Buffer {\n return Buffer.from(value ?? \"\", \"utf-8\");\n },\n\n BYTES(value: string | null, sizeInBits?: number): Buffer {\n const failSafeValue = value ?? \"\";\n // Why slice again ?\n return hexBuffer(failSafeValue).slice(\n 0,\n sizeInBits ?? (failSafeValue?.length - 2) / 2\n );\n },\n};\n\n/**\n * @ignore for the README\n *\n * Helper parsing an EIP712 Type name to return its type and size(s)\n * if it's an array or nested arrays\n *\n * @see EIP712MessageTypes\n *\n * @example \"uint8[2][][4]\" => [{name: \"uint\", bits: 8}, [2, null, 4]]\n * @example \"bool\" => [{name: \"bool\", bits: null}, []]\n *\n * @param {String} typeName\n * @returns {[{ name: string; bits: Number | null }, Array]}\n */\nexport const destructTypeFromString = (\n typeName?: string\n): [\n { name: string; bits: number | undefined } | null,\n Array\n] => {\n // Will split \"any[][1][10]\" in \"any\", \"[][1][10]\"\n const splitNameAndArraysRegex = new RegExp(/^([^[\\]]*)(\\[.*\\])*/g);\n // Will match all numbers (or null) inside each array. [0][10][] => [0,10,null]\n const splitArraysRegex = new RegExp(/\\[(\\d*)\\]/g);\n // Will separate the the name from the potential bits allocation. uint8 => [uint,8]\n const splitNameAndNumberRegex = new RegExp(/(\\D*)(\\d*)/);\n\n const [, type, maybeArrays] =\n splitNameAndArraysRegex.exec(typeName || \"\") || [];\n const [, name, bits] = splitNameAndNumberRegex.exec(type || \"\") || [];\n const typeDescription = name\n ? { name, bits: bits ? Number(bits) : undefined }\n : null;\n\n const arrays = maybeArrays ? [...maybeArrays.matchAll(splitArraysRegex)] : [];\n // Parse each size to either a Number or null\n const arraySizes = arrays.map(([, size]) => (size ? Number(size) : null));\n\n return [typeDescription, arraySizes];\n};\n\n/**\n * @ignore for the README\n *\n * Helper to construct the hexadecimal ByteString for the description\n * of a field in an EIP712 Message\n *\n * @param isArray\n * @param typeSize\n * @param typeValue\n * @returns {String} HexByteString\n */\nexport const constructTypeDescByteString = (\n isArray: boolean,\n typeSize: number | null | undefined,\n typeValue: number\n): string => {\n if (typeValue >= 16) {\n throw new Error(\n \"Eth utils - constructTypeDescByteString - Cannot accept a typeValue >= 16 because the typeValue can only be 4 bits in binary\" +\n { isArray, typeSize, typeValue }\n );\n }\n // 1 is array, 0 is not array\n const isArrayBit = isArray ? \"1\" : \"0\";\n // 1 has type size, 0 has no type size\n const hasTypeSize = typeof typeSize === \"number\" ? \"1\" : \"0\";\n // 2 unused bits\n const unusedBits = \"00\";\n // type key as 4 bits\n const typeValueBits = typeValue.toString(2).padStart(4, \"0\");\n\n return intAsHexBytes(\n parseInt(isArrayBit + hasTypeSize + unusedBits + typeValueBits, 2),\n 1\n );\n};\n\n/**\n * @ignore for the README\n *\n * Helper to create the buffer to describe an EIP712 types' entry structure\n *\n * @param {EIP712MessageTypesEntry} entry\n * @returns {Buffer}\n */\nexport const makeTypeEntryStructBuffer = ({\n name,\n type,\n}: EIP712MessageTypesEntry): Buffer => {\n const [typeDescription, arrSizes] = destructTypeFromString(type as string);\n const isTypeAnArray = Boolean(arrSizes.length);\n const typeProperties =\n EIP712_TYPE_PROPERTIES[typeDescription?.name?.toUpperCase() || \"\"] ||\n EIP712_TYPE_PROPERTIES.CUSTOM;\n\n const typeKey = typeProperties.key(typeDescription?.bits);\n const typeSizeInBits = typeProperties.sizeInBits(typeDescription?.bits);\n\n const typeDescData = constructTypeDescByteString(\n isTypeAnArray,\n typeSizeInBits,\n typeKey\n );\n\n const bufferArray: Buffer[] = [Buffer.from(typeDescData, \"hex\")];\n\n if (typeProperties === EIP712_TYPE_PROPERTIES.CUSTOM) {\n bufferArray.push(\n Buffer.from(intAsHexBytes(typeDescription?.name?.length ?? 0, 1), \"hex\")\n );\n bufferArray.push(Buffer.from(typeDescription?.name ?? \"\", \"utf-8\"));\n }\n\n if (typeof typeSizeInBits === \"number\") {\n bufferArray.push(Buffer.from(intAsHexBytes(typeSizeInBits, 1), \"hex\"));\n }\n\n if (isTypeAnArray) {\n bufferArray.push(Buffer.from(intAsHexBytes(arrSizes.length, 1), \"hex\"));\n\n arrSizes.forEach((size) => {\n if (typeof size === \"number\") {\n bufferArray.push(\n Buffer.from(intAsHexBytes(EIP712_ARRAY_TYPE_VALUE.FIXED, 1), \"hex\"),\n Buffer.from(intAsHexBytes(size, 1), \"hex\")\n );\n } else {\n bufferArray.push(\n Buffer.from(intAsHexBytes(EIP712_ARRAY_TYPE_VALUE.DYNAMIC, 1), \"hex\")\n );\n }\n });\n }\n\n bufferArray.push(\n Buffer.from(intAsHexBytes(name.length, 1), \"hex\"),\n Buffer.from(name, \"utf-8\")\n );\n\n return Buffer.concat(bufferArray);\n};\n\n// As defined in [spec](https://eips.ethereum.org/EIPS/eip-712), the properties below are all required.\nexport function isEIP712Message(\n message: Record | string\n): message is EIP712Message {\n return (\n typeof message === \"object\" &&\n \"types\" in message &&\n \"primaryType\" in message &&\n \"domain\" in message &&\n \"message\" in message\n );\n}\n\nexport const sortObjectAlphabetically = (\n obj: Record\n): Record => {\n const keys = Object.keys(obj).sort();\n\n return keys.reduce((acc, curr) => {\n const value = (() => {\n if (Array.isArray(obj[curr])) {\n return obj[curr].map((field) =>\n sortObjectAlphabetically(field as Record)\n );\n }\n return obj[curr];\n })();\n\n acc[curr] = value;\n return acc;\n }, {});\n};\n\nexport const getSchemaHashForMessage = (message: EIP712Message): string => {\n const { types } = message;\n const sortedTypes = sortObjectAlphabetically(types);\n\n return SHA224(JSON.stringify(sortedTypes).replace(\" \", \"\")).toString();\n};\n\n/**\n * @ignore for the README\n *\n * Tries to find the proper filters for a given EIP712 message\n * in the CAL\n *\n * @param {EIP712Message} message\n * @returns {MessageFilters | undefined}\n */\nexport const getFiltersForMessage = async (\n message: EIP712Message,\n remoteCryptoAssetsListURI?: string | null\n): Promise => {\n const schemaHash = getSchemaHashForMessage(message);\n const messageId = `${message.domain?.chainId ?? 0}:${\n message.domain?.verifyingContract ?? NULL_ADDRESS\n }:${schemaHash}`;\n\n try {\n if (remoteCryptoAssetsListURI) {\n const { data: dynamicCAL } = await axios.get<\n Record\n >(`${remoteCryptoAssetsListURI}/eip712.json`);\n return dynamicCAL[messageId] || EIP712CAL[messageId];\n }\n throw new Error();\n } catch (e) {\n return EIP712CAL[messageId];\n }\n};\n", "import Transport from \"@ledgerhq/hw-transport\";\nimport {\n EIP712Message,\n EIP712MessageTypes,\n EIP712MessageTypesEntry,\n FilteringInfoContractName,\n FilteringInfoShowField,\n MessageFilters,\n StructDefData,\n StructImplemData,\n} from \"./EIP712.types\";\nimport { hexBuffer, intAsHexBytes, splitPath } from \"../../utils\";\nimport { getLoadConfig } from \"../../services/ledger/loadConfig\";\nimport { LoadConfig } from \"../../services/types\";\nimport {\n destructTypeFromString,\n EIP712_TYPE_ENCODERS,\n EIP712_TYPE_PROPERTIES,\n getFiltersForMessage,\n makeTypeEntryStructBuffer,\n sortObjectAlphabetically,\n} from \"./EIP712.utils\";\n\n/**\n * @ignore for the README\n *\n * Factory to create the recursive function that will pass on each\n * field level and APDUs to describe its structure implementation\n *\n * @param {Eth[\"sendStructImplem\"]} sendStructImplem\n * @param {EIP712MessageTypes} types\n * @returns {void}\n */\nconst makeRecursiveFieldStructImplem = (\n transport: Transport,\n types: EIP712MessageTypes,\n filters?: MessageFilters\n): ((\n destructedType: ReturnType,\n data: unknown,\n path?: string\n) => Promise) => {\n const typesMap = {} as Record>;\n for (const type in types) {\n typesMap[type] = types[type]?.reduce(\n (acc, curr) => ({ ...acc, [curr.name]: curr.type }),\n {}\n );\n }\n\n // This recursion will call itself to handle each level of each field\n // in order to send APDUs for each of them\n const recursiveFieldStructImplem = async (\n destructedType: ReturnType,\n data,\n path = \"\"\n ) => {\n const [typeDescription, arrSizes] = destructedType;\n const [currSize, ...restSizes] = arrSizes;\n const isCustomType =\n !EIP712_TYPE_PROPERTIES[typeDescription?.name?.toUpperCase() || \"\"];\n\n if (Array.isArray(data) && typeof currSize !== \"undefined\") {\n await sendStructImplem(transport, {\n structType: \"array\",\n value: data.length,\n });\n for (const entry of data) {\n await recursiveFieldStructImplem(\n [typeDescription, restSizes],\n entry,\n `${path}.[]`\n );\n }\n } else if (isCustomType) {\n for (const [fieldName, fieldValue] of Object.entries(\n data as EIP712Message[\"message\"]\n )) {\n const fieldType = typesMap[typeDescription?.name || \"\"]?.[fieldName];\n\n if (fieldType) {\n await recursiveFieldStructImplem(\n destructTypeFromString(fieldType),\n fieldValue,\n `${path}.${fieldName}`\n );\n }\n }\n } else {\n const filter = filters?.fields.find((f) => path === f.path);\n\n if (filter) {\n await sendFilteringInfo(transport, \"showField\", {\n displayName: filter.label,\n sig: filter.signature,\n });\n }\n\n await sendStructImplem(transport, {\n structType: \"field\",\n value: {\n data,\n type: typeDescription?.name || \"\",\n sizeInBits: typeDescription?.bits,\n },\n });\n }\n };\n\n return recursiveFieldStructImplem;\n};\n\n/**\n * @ignore for the README\n *\n * This method is used to send the message definition with all its types.\n * This method should be used before the sendStructImplem one\n *\n * @param {String} structType\n * @param {String|Buffer} value\n * @returns {Promise}\n */\nconst sendStructDef = (\n transport: Transport,\n structDef: StructDefData\n): Promise => {\n enum APDU_FIELDS {\n CLA = 0xe0,\n INS = 0x1a,\n P1_complete = 0x00,\n P1_partial = 0x01,\n P2_name = 0x00,\n P2_field = 0xff,\n }\n\n const { structType, value } = structDef;\n const data =\n structType === \"name\" && typeof value === \"string\"\n ? Buffer.from(value, \"utf-8\")\n : (value as Buffer);\n\n return transport.send(\n APDU_FIELDS.CLA,\n APDU_FIELDS.INS,\n APDU_FIELDS.P1_complete,\n structType === \"name\" ? APDU_FIELDS.P2_name : APDU_FIELDS.P2_field,\n data\n );\n};\n\n/**\n * @ignore for the README\n *\n * This method provides a trusted new display name to use for the upcoming field.\n * This method should be used after the sendStructDef one.\n *\n * If the method describes an empty name (length of 0), the upcoming field will be taken\n * into account but won\u2019t be shown on the device.\n *\n * The signature is computed on :\n * json key length || json key || display name length || display name\n *\n * signed by the following secp256k1 public key:\n * 0482bbf2f34f367b2e5bc21847b6566f21f0976b22d3388a9a5e446ac62d25cf725b62a2555b2dd464a4da0ab2f4d506820543af1d242470b1b1a969a27578f353\n *\n * @param {String} structType \"root\" | \"array\" | \"field\"\n * @param {string | number | StructFieldData} value\n * @returns {Promise}\n */\nconst sendStructImplem = async (\n transport: Transport,\n structImplem: StructImplemData\n): Promise => {\n enum APDU_FIELDS {\n CLA = 0xe0,\n INS = 0x1c,\n P1_complete = 0x00,\n P1_partial = 0x01,\n P2_root = 0x00,\n P2_array = 0x0f,\n P2_field = 0xff,\n }\n\n const { structType, value } = structImplem;\n\n if (structType === \"root\") {\n return transport.send(\n APDU_FIELDS.CLA,\n APDU_FIELDS.INS,\n APDU_FIELDS.P1_complete,\n APDU_FIELDS.P2_root,\n Buffer.from(value, \"utf-8\")\n );\n }\n\n if (structType === \"array\") {\n return transport.send(\n APDU_FIELDS.CLA,\n APDU_FIELDS.INS,\n APDU_FIELDS.P1_complete,\n APDU_FIELDS.P2_array,\n Buffer.from(intAsHexBytes(value, 1), \"hex\")\n );\n }\n\n if (structType === \"field\") {\n const { data: rawData, type, sizeInBits } = value;\n const encodedData: Buffer | null = EIP712_TYPE_ENCODERS[\n type.toUpperCase()\n ]?.(rawData, sizeInBits);\n\n if (encodedData) {\n // const dataLengthPer16Bits = (encodedData.length & 0xff00) >> 8;\n const dataLengthPer16Bits = Math.floor(encodedData.length / 256);\n // const dataLengthModulo16Bits = encodedData.length & 0xff;\n const dataLengthModulo16Bits = encodedData.length % 256;\n\n const data = Buffer.concat([\n Buffer.from(intAsHexBytes(dataLengthPer16Bits, 1), \"hex\"),\n Buffer.from(intAsHexBytes(dataLengthModulo16Bits, 1), \"hex\"),\n encodedData,\n ]);\n\n const bufferSlices = new Array(Math.ceil(data.length / 256))\n .fill(null)\n .map((_, i) => data.slice(i * 255, (i + 1) * 255));\n\n for (const bufferSlice of bufferSlices) {\n await transport.send(\n APDU_FIELDS.CLA,\n APDU_FIELDS.INS,\n bufferSlice !== bufferSlices[bufferSlices.length - 1]\n ? APDU_FIELDS.P1_partial\n : APDU_FIELDS.P1_complete,\n APDU_FIELDS.P2_field,\n bufferSlice\n );\n }\n }\n }\n\n return Promise.resolve();\n};\n\nasync function sendFilteringInfo(\n transport: Transport,\n type: \"activate\"\n): Promise;\nasync function sendFilteringInfo(\n transport: Transport,\n type: \"contractName\",\n data: FilteringInfoContractName\n): Promise;\nasync function sendFilteringInfo(\n transport: Transport,\n type: \"showField\",\n data: FilteringInfoShowField\n): Promise;\nasync function sendFilteringInfo(\n transport: Transport,\n type: \"activate\" | \"contractName\" | \"showField\",\n data?: FilteringInfoContractName | FilteringInfoShowField\n): Promise {\n enum APDU_FIELDS {\n CLA = 0xe0,\n INS = 0x1e,\n P1 = 0x00,\n P2_activate = 0x00,\n P2_contract_name = 0x0f, // officially named \"message info\"\n P2_show_field = 0xff,\n }\n\n switch (type) {\n case \"activate\":\n return transport.send(\n APDU_FIELDS.CLA,\n APDU_FIELDS.INS,\n APDU_FIELDS.P1,\n APDU_FIELDS.P2_activate\n );\n\n case \"contractName\": {\n const { displayName, filtersCount, sig } =\n data as FilteringInfoContractName;\n const displayNameLengthBuffer = Buffer.from(\n intAsHexBytes(displayName.length, 1),\n \"hex\"\n );\n const displayNameBuffer = Buffer.from(displayName);\n const filtersCountBuffer = Buffer.from(\n intAsHexBytes(filtersCount, 1),\n \"hex\"\n );\n const sigLengthBuffer = Buffer.from(\n intAsHexBytes(sig.length / 2, 1),\n \"hex\"\n );\n const sigBuffer = Buffer.from(sig, \"hex\");\n\n const callData = Buffer.concat([\n displayNameLengthBuffer,\n displayNameBuffer,\n filtersCountBuffer,\n sigLengthBuffer,\n sigBuffer,\n ]);\n\n return transport.send(\n APDU_FIELDS.CLA,\n APDU_FIELDS.INS,\n APDU_FIELDS.P1,\n APDU_FIELDS.P2_contract_name,\n callData\n );\n }\n\n case \"showField\": {\n const { displayName, sig } = data as FilteringInfoShowField;\n const displayNameLengthBuffer = Buffer.from(\n intAsHexBytes(displayName.length, 1),\n \"hex\"\n );\n const displayNameBuffer = Buffer.from(displayName);\n const sigLengthBuffer = Buffer.from(\n intAsHexBytes(sig.length / 2, 1),\n \"hex\"\n );\n const sigBuffer = Buffer.from(sig, \"hex\");\n\n const callData = Buffer.concat([\n displayNameLengthBuffer,\n displayNameBuffer,\n sigLengthBuffer,\n sigBuffer,\n ]);\n\n return transport.send(\n APDU_FIELDS.CLA,\n APDU_FIELDS.INS,\n APDU_FIELDS.P1,\n APDU_FIELDS.P2_show_field,\n callData\n );\n }\n }\n}\n\n/**\n * @ignore for the README\n *\n * Sign an EIP-721 formatted message following the specification here:\n * https://github.com/LedgerHQ/app-ethereum/blob/develop/doc/ethapp.asc#sign-eth-eip-712\n * @example\n eth.signEIP721Message(\"44'/60'/0'/0/0\", {\n domain: {\n chainId: 69,\n name: \"Da Domain\",\n verifyingContract: \"0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC\",\n version: \"1\"\n },\n types: {\n \"EIP712Domain\": [\n { name: \"name\", type: \"string\" },\n { name: \"version\", type: \"string\" },\n { name: \"chainId\", type: \"uint256\" },\n { name: \"verifyingContract\", type: \"address\" }\n ],\n \"Test\": [\n { name: \"contents\", type: \"string\" }\n ]\n },\n primaryType: \"Test\",\n message: {contents: \"Hello, Bob!\"},\n })\n *\n * @param {String} path derivationPath\n * @param {Object} jsonMessage message to sign\n * @param {Boolean} fullImplem use the legacy implementation\n * @returns {Promise}\n */\nexport const signEIP712Message = async (\n transport: Transport,\n path: string,\n jsonMessage: EIP712Message,\n fullImplem = false,\n loadConfig: LoadConfig\n): Promise<{\n v: number;\n s: string;\n r: string;\n}> => {\n enum APDU_FIELDS {\n CLA = 0xe0,\n INS = 0x0c,\n P1 = 0x00,\n P2_v0 = 0x00,\n P2_full = 0x01,\n }\n const { primaryType, types: unsortedTypes, domain, message } = jsonMessage;\n const { cryptoassetsBaseURL } = getLoadConfig(loadConfig);\n // Types are sorted by alphabetical order in order to get the same schema hash no matter the JSON format\n const types = sortObjectAlphabetically(unsortedTypes) as EIP712MessageTypes;\n const filters = await getFiltersForMessage(jsonMessage, cryptoassetsBaseURL);\n\n const typeEntries = Object.entries(types) as [\n keyof EIP712MessageTypes,\n EIP712MessageTypesEntry[]\n ][];\n // Looping on all types entries and fields to send structures' definitions\n for (const [typeName, entries] of typeEntries) {\n await sendStructDef(transport, {\n structType: \"name\",\n value: typeName as string,\n });\n\n for (const { name, type } of entries) {\n const typeEntryBuffer = makeTypeEntryStructBuffer({ name, type });\n await sendStructDef(transport, {\n structType: \"field\",\n value: typeEntryBuffer,\n });\n }\n }\n\n if (filters) {\n await sendFilteringInfo(transport, \"activate\");\n }\n // Create the recursion that should pass on each entry\n // of the domain fields and primaryType fields\n const recursiveFieldStructImplem = makeRecursiveFieldStructImplem(\n transport,\n types,\n filters\n );\n\n // Looping on all domain type's entries and fields to send\n // structures' implementations\n const domainName = \"EIP712Domain\";\n await sendStructImplem(transport, {\n structType: \"root\",\n value: domainName,\n });\n const domainTypeFields = types[domainName];\n for (const { name, type } of domainTypeFields) {\n const domainFieldValue = domain[name];\n await recursiveFieldStructImplem(\n destructTypeFromString(type as string),\n domainFieldValue\n );\n }\n\n if (filters) {\n const { contractName, fields } = filters;\n const contractNameInfos = {\n displayName: contractName.label,\n filtersCount: fields.length,\n sig: contractName.signature,\n };\n await sendFilteringInfo(transport, \"contractName\", contractNameInfos);\n }\n\n // Looping on all primaryType type's entries and fields to send\n // structures' implementations\n await sendStructImplem(transport, {\n structType: \"root\",\n value: primaryType,\n });\n const primaryTypeFields = types[primaryType];\n for (const { name, type } of primaryTypeFields) {\n const primaryTypeValue = message[name];\n await recursiveFieldStructImplem(\n destructTypeFromString(type as string),\n primaryTypeValue,\n name\n );\n }\n\n // Sending the final signature.\n const paths = splitPath(path);\n const signatureBuffer = Buffer.alloc(1 + paths.length * 4);\n signatureBuffer[0] = paths.length;\n paths.forEach((element, index) => {\n signatureBuffer.writeUInt32BE(element, 1 + 4 * index);\n });\n\n return transport\n .send(\n APDU_FIELDS.CLA,\n APDU_FIELDS.INS,\n APDU_FIELDS.P1,\n fullImplem ? APDU_FIELDS.P2_v0 : APDU_FIELDS.P2_full,\n signatureBuffer\n )\n .then((response) => {\n const v = response[0];\n const r = response.slice(1, 1 + 32).toString(\"hex\");\n const s = response.slice(1 + 32, 1 + 32 + 32).toString(\"hex\");\n\n return {\n v,\n r,\n s,\n };\n });\n};\n\n/**\n * @ignore for the README\n * Sign a prepared message following web3.eth.signTypedData specification. The host computes the domain separator and hashStruct(message)\n * @example\n eth.signEIP712HashedMessage(\"44'/60'/0'/0/0\", Buffer.from(\"0101010101010101010101010101010101010101010101010101010101010101\").toString(\"hex\"), Buffer.from(\"0202020202020202020202020202020202020202020202020202020202020202\").toString(\"hex\")).then(result => {\n var v = result['v'] - 27;\n v = v.toString(16);\n if (v.length < 2) {\n v = \"0\" + v;\n }\n console.log(\"Signature 0x\" + result['r'] + result['s'] + v);\n })\n */\nexport const signEIP712HashedMessage = (\n transport: Transport,\n path: string,\n domainSeparatorHex: string,\n hashStructMessageHex: string\n): Promise<{\n v: number;\n s: string;\n r: string;\n}> => {\n const domainSeparator = hexBuffer(domainSeparatorHex);\n const hashStruct = hexBuffer(hashStructMessageHex);\n const paths = splitPath(path);\n const buffer = Buffer.alloc(1 + paths.length * 4 + 32 + 32, 0);\n let offset = 0;\n buffer[0] = paths.length;\n paths.forEach((element, index) => {\n buffer.writeUInt32BE(element, 1 + 4 * index);\n });\n offset = 1 + 4 * paths.length;\n domainSeparator.copy(buffer, offset);\n offset += 32;\n hashStruct.copy(buffer, offset);\n\n return transport.send(0xe0, 0x0c, 0x00, 0x00, buffer).then((response) => {\n const v = response[0];\n const r = response.slice(1, 1 + 32).toString(\"hex\");\n const s = response.slice(1 + 32, 1 + 32 + 32).toString(\"hex\");\n return {\n v,\n r,\n s,\n };\n });\n};\n\nexport type { EIP712Message } from \"./EIP712.types\";\nexport { isEIP712Message, getFiltersForMessage } from \"./EIP712.utils\";\n", "/********************************************************************************\n * Ledger Node JS API\n * (c) 2016-2017 Ledger\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 * http://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 ********************************************************************************/\n// FIXME drop:\nimport type Transport from \"@ledgerhq/hw-transport\";\nimport { BigNumber } from \"bignumber.js\";\nimport { decodeTxInfo, hexBuffer, maybeHexBuffer, splitPath } from \"./utils\";\n// NB: these are temporary import for the deprecated fallback mechanism\nimport { LedgerEthTransactionResolution, LoadConfig } from \"./services/types\";\nimport ledgerService from \"./services/ledger\";\nimport {\n EthAppNftNotSupported,\n EthAppPleaseEnableContractData,\n} from \"./errors\";\nimport {\n signEIP712HashedMessage,\n signEIP712Message,\n EIP712Message,\n isEIP712Message,\n getFiltersForMessage,\n} from \"./modules/EIP712\";\n\nexport { ledgerService, isEIP712Message, getFiltersForMessage };\n\nexport type StarkQuantizationType =\n | \"eth\"\n | \"erc20\"\n | \"erc721\"\n | \"erc20mintable\"\n | \"erc721mintable\";\nconst starkQuantizationTypeMap = {\n eth: 1,\n erc20: 2,\n erc721: 3,\n erc20mintable: 4,\n erc721mintable: 5,\n};\n\nconst remapTransactionRelatedErrors = (e) => {\n if (e && e.statusCode === 0x6a80) {\n return new EthAppPleaseEnableContractData(\n \"Please enable Blind signing or Contract data in the Ethereum app Settings\"\n );\n }\n\n return e;\n};\n\n/**\n * Ethereum API\n *\n * @example\n * import Eth from \"@ledgerhq/hw-app-eth\";\n * const eth = new Eth(transport)\n */\n\nexport default class Eth {\n transport: Transport;\n loadConfig: LoadConfig;\n\n setLoadConfig(loadConfig: LoadConfig): void {\n this.loadConfig = loadConfig;\n }\n\n constructor(\n transport: Transport,\n scrambleKey = \"w0w\",\n loadConfig: LoadConfig = {}\n ) {\n this.transport = transport;\n this.loadConfig = loadConfig;\n transport.decorateAppAPIMethods(\n this,\n [\n \"getAddress\",\n \"provideERC20TokenInformation\",\n \"signTransaction\",\n \"signPersonalMessage\",\n \"getAppConfiguration\",\n \"signEIP712Message\",\n \"signEIP712HashedMessage\",\n \"starkGetPublicKey\",\n \"starkSignOrder\",\n \"starkSignOrder_v2\",\n \"starkSignTransfer\",\n \"starkSignTransfer_v2\",\n \"starkProvideQuantum\",\n \"starkProvideQuantum_v2\",\n \"starkUnsafeSign\",\n \"eth2GetPublicKey\",\n \"eth2SetWithdrawalIndex\",\n \"setExternalPlugin\",\n \"setPlugin\",\n \"getEIP1024PublicEncryptionKey\",\n \"getEIP1024SharedSecret\",\n ],\n scrambleKey\n );\n }\n\n /**\n * get Ethereum address for a given BIP 32 path.\n * @param path a path in BIP 32 format\n * @option boolDisplay optionally enable or not the display\n * @option boolChaincode optionally enable or not the chaincode request\n * @return an object with a publicKey, address and (optionally) chainCode\n * @example\n * eth.getAddress(\"44'/60'/0'/0/0\").then(o => o.address)\n */\n getAddress(\n path: string,\n boolDisplay?: boolean,\n boolChaincode?: boolean\n ): Promise<{\n publicKey: string;\n address: string;\n chainCode?: string;\n }> {\n const paths = splitPath(path);\n const buffer = Buffer.alloc(1 + paths.length * 4);\n buffer[0] = paths.length;\n paths.forEach((element, index) => {\n buffer.writeUInt32BE(element, 1 + 4 * index);\n });\n return this.transport\n .send(\n 0xe0,\n 0x02,\n boolDisplay ? 0x01 : 0x00,\n boolChaincode ? 0x01 : 0x00,\n buffer\n )\n .then((response) => {\n const publicKeyLength = response[0];\n const addressLength = response[1 + publicKeyLength];\n\n return {\n publicKey: response.slice(1, 1 + publicKeyLength).toString(\"hex\"),\n address:\n \"0x\" +\n response\n .slice(\n 1 + publicKeyLength + 1,\n 1 + publicKeyLength + 1 + addressLength\n )\n .toString(\"ascii\"),\n chainCode: boolChaincode\n ? response\n .slice(\n 1 + publicKeyLength + 1 + addressLength,\n 1 + publicKeyLength + 1 + addressLength + 32\n )\n .toString(\"hex\")\n : undefined,\n };\n });\n }\n\n /**\n * You can sign a transaction and retrieve v, r, s given the raw transaction and the BIP 32 path of the account to sign.\n *\n * @param path: the BIP32 path to sign the transaction on\n * @param rawTxHex: the raw ethereum transaction in hexadecimal to sign\n * @param resolution: resolution is an object with all \"resolved\" metadata necessary to allow the device to clear sign information. This includes: ERC20 token information, plugins, contracts, NFT signatures,... You must explicitly provide something to avoid having a warning. By default, you can use Ledger's service or your own resolution service. See services/types.js for the contract. Setting the value to \"null\" will fallback everything to blind signing but will still allow the device to sign the transaction.\n * @example\n import { ledgerService } from \"@ledgerhq/hw-app-eth\"\n const tx = \"e8018504e3b292008252089428ee52a8f3d6e5d15f8b131996950d7f296c7952872bd72a2487400080\"; // raw tx to sign\n const resolution = await ledgerService.resolveTransaction(tx);\n const result = eth.signTransaction(\"44'/60'/0'/0/0\", tx, resolution);\n console.log(result);\n */\n async signTransaction(\n path: string,\n rawTxHex: string,\n resolution?: LedgerEthTransactionResolution | null\n ): Promise<{\n s: string;\n v: string;\n r: string;\n }> {\n if (resolution === undefined) {\n console.warn(\n \"hw-app-eth: signTransaction(path, rawTxHex, resolution): \" +\n \"please provide the 'resolution' parameter. \" +\n \"See https://github.com/LedgerHQ/ledgerjs/blob/master/packages/hw-app-eth/README.md \" +\n \"\u2013 the previous signature is deprecated and providing the 3rd 'resolution' parameter explicitly will become mandatory so you have the control on the resolution and the fallback mecanism (e.g. fallback to blind signing or not).\" +\n \"// Possible solution:\\n\" +\n \" + import { ledgerService } from '@ledgerhq/hw-app-eth';\\n\" +\n \" + const resolution = await ledgerService.resolveTransaction(rawTxHex);\"\n );\n resolution = await ledgerService\n .resolveTransaction(rawTxHex, this.loadConfig, {\n externalPlugins: true,\n erc20: true,\n })\n .catch((e) => {\n console.warn(\n \"an error occurred in resolveTransaction => fallback to blind signing: \" +\n String(e)\n );\n return null;\n });\n }\n\n // provide to the device resolved information to make it clear sign the signature\n if (resolution) {\n for (const plugin of resolution.plugin) {\n await setPlugin(this.transport, plugin);\n }\n for (const { payload, signature } of resolution.externalPlugin) {\n await setExternalPlugin(this.transport, payload, signature);\n }\n for (const nft of resolution.nfts) {\n await provideNFTInformation(this.transport, Buffer.from(nft, \"hex\"));\n }\n for (const data of resolution.erc20Tokens) {\n await provideERC20TokenInformation(\n this.transport,\n Buffer.from(data, \"hex\")\n );\n }\n }\n\n const rawTx = Buffer.from(rawTxHex, \"hex\");\n const { vrsOffset, txType, chainId, chainIdTruncated } =\n decodeTxInfo(rawTx);\n\n const paths = splitPath(path);\n let response;\n let offset = 0;\n while (offset !== rawTx.length) {\n const first = offset === 0;\n const maxChunkSize = first ? 150 - 1 - paths.length * 4 : 150;\n let chunkSize =\n offset + maxChunkSize > rawTx.length\n ? rawTx.length - offset\n : maxChunkSize;\n\n if (vrsOffset != 0 && offset + chunkSize >= vrsOffset) {\n // Make sure that the chunk doesn't end right on the EIP 155 marker if set\n chunkSize = rawTx.length - offset;\n }\n\n const buffer = Buffer.alloc(\n first ? 1 + paths.length * 4 + chunkSize : chunkSize\n );\n\n if (first) {\n buffer[0] = paths.length;\n paths.forEach((element, index) => {\n buffer.writeUInt32BE(element, 1 + 4 * index);\n });\n rawTx.copy(buffer, 1 + 4 * paths.length, offset, offset + chunkSize);\n } else {\n rawTx.copy(buffer, 0, offset, offset + chunkSize);\n }\n\n response = await this.transport\n .send(0xe0, 0x04, first ? 0x00 : 0x80, 0x00, buffer)\n .catch((e) => {\n throw remapTransactionRelatedErrors(e);\n });\n\n offset += chunkSize;\n }\n\n const response_byte: number = response[0];\n let v = \"\";\n\n if (chainId.times(2).plus(35).plus(1).isGreaterThan(255)) {\n const oneByteChainId = (chainIdTruncated * 2 + 35) % 256;\n\n const ecc_parity = Math.abs(response_byte - oneByteChainId);\n\n if (txType != null) {\n // For EIP2930 and EIP1559 tx, v is simply the parity.\n v = ecc_parity % 2 == 1 ? \"00\" : \"01\";\n } else {\n // Legacy type transaction with a big chain ID\n v = chainId.times(2).plus(35).plus(ecc_parity).toString(16);\n }\n } else {\n v = response_byte.toString(16);\n }\n\n // Make sure v has is prefixed with a 0 if its length is odd (\"1\" -> \"01\").\n if (v.length % 2 == 1) {\n v = \"0\" + v;\n }\n\n const r = response.slice(1, 1 + 32).toString(\"hex\");\n const s = response.slice(1 + 32, 1 + 32 + 32).toString(\"hex\");\n return { v, r, s };\n }\n\n /**\n */\n getAppConfiguration(): Promise<{\n arbitraryDataEnabled: number;\n erc20ProvisioningNecessary: number;\n starkEnabled: number;\n starkv2Supported: number;\n version: string;\n }> {\n return this.transport.send(0xe0, 0x06, 0x00, 0x00).then((response) => {\n return {\n arbitraryDataEnabled: response[0] & 0x01,\n erc20ProvisioningNecessary: response[0] & 0x02,\n starkEnabled: response[0] & 0x04,\n starkv2Supported: response[0] & 0x08,\n version: \"\" + response[1] + \".\" + response[2] + \".\" + response[3],\n };\n });\n }\n\n /**\n * You can sign a message according to eth_sign RPC call and retrieve v, r, s given the message and the BIP 32 path of the account to sign.\n * @example\n eth.signPersonalMessage(\"44'/60'/0'/0/0\", Buffer.from(\"test\").toString(\"hex\")).then(result => {\n var v = result['v'] - 27;\n v = v.toString(16);\n if (v.length < 2) {\n v = \"0\" + v;\n }\n console.log(\"Signature 0x\" + result['r'] + result['s'] + v);\n })\n */\n async signPersonalMessage(\n path: string,\n messageHex: string\n ): Promise<{\n v: number;\n s: string;\n r: string;\n }> {\n const paths = splitPath(path);\n let offset = 0;\n const message = Buffer.from(messageHex, \"hex\");\n let response;\n\n while (offset !== message.length) {\n const maxChunkSize = offset === 0 ? 150 - 1 - paths.length * 4 - 4 : 150;\n const chunkSize =\n offset + maxChunkSize > message.length\n ? message.length - offset\n : maxChunkSize;\n const buffer = Buffer.alloc(\n offset === 0 ? 1 + paths.length * 4 + 4 + chunkSize : chunkSize\n );\n\n if (offset === 0) {\n buffer[0] = paths.length;\n paths.forEach((element, index) => {\n buffer.writeUInt32BE(element, 1 + 4 * index);\n });\n buffer.writeUInt32BE(message.length, 1 + 4 * paths.length);\n message.copy(\n buffer,\n 1 + 4 * paths.length + 4,\n offset,\n offset + chunkSize\n );\n } else {\n message.copy(buffer, 0, offset, offset + chunkSize);\n }\n\n response = await this.transport.send(\n 0xe0,\n 0x08,\n offset === 0 ? 0x00 : 0x80,\n 0x00,\n buffer\n );\n\n offset += chunkSize;\n }\n\n const v = response[0];\n const r = response.slice(1, 1 + 32).toString(\"hex\");\n const s = response.slice(1 + 32, 1 + 32 + 32).toString(\"hex\");\n return { v, r, s };\n }\n\n /**\n * Sign a prepared message following web3.eth.signTypedData specification. The host computes the domain separator and hashStruct(message)\n * @example\n eth.signEIP712HashedMessage(\"44'/60'/0'/0/0\", Buffer.from(\"0101010101010101010101010101010101010101010101010101010101010101\").toString(\"hex\"), Buffer.from(\"0202020202020202020202020202020202020202020202020202020202020202\").toString(\"hex\")).then(result => {\n var v = result['v'] - 27;\n v = v.toString(16);\n if (v.length < 2) {\n v = \"0\" + v;\n }\n console.log(\"Signature 0x\" + result['r'] + result['s'] + v);\n })\n */\n signEIP712HashedMessage(\n path: string,\n domainSeparatorHex: string,\n hashStructMessageHex: string\n ): Promise<{\n v: number;\n s: string;\n r: string;\n }> {\n return signEIP712HashedMessage(\n this.transport,\n path,\n domainSeparatorHex,\n hashStructMessageHex\n );\n }\n\n /**\n * Sign an EIP-721 formatted message following the specification here:\n * https://github.com/LedgerHQ/app-ethereum/blob/develop/doc/ethapp.asc#sign-eth-eip-712\n * \u26A0\uFE0F This method is not compatible with nano S (LNS). Make sure to use a try/catch to fallback on the signEIP712HashedMessage method \u26A0\uFE0F \n @example\n eth.signEIP721Message(\"44'/60'/0'/0/0\", {\n domain: {\n chainId: 69,\n name: \"Da Domain\",\n verifyingContract: \"0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC\",\n version: \"1\"\n },\n types: {\n \"EIP712Domain\": [\n { name: \"name\", type: \"string\" },\n { name: \"version\", type: \"string\" },\n { name: \"chainId\", type: \"uint256\" },\n { name: \"verifyingContract\", type: \"address\" }\n ],\n \"Test\": [\n { name: \"contents\", type: \"string\" }\n ]\n },\n primaryType: \"Test\",\n message: {contents: \"Hello, Bob!\"},\n })\n *\n * @param {String} path derivationPath\n * @param {Object} jsonMessage message to sign\n * @param {Boolean} fullImplem use the legacy implementation\n * @returns {Promise}\n */\n async signEIP712Message(\n path: string,\n jsonMessage: EIP712Message,\n fullImplem = false\n ): Promise<{\n v: number;\n s: string;\n r: string;\n }> {\n return signEIP712Message(\n this.transport,\n path,\n jsonMessage,\n fullImplem,\n this.loadConfig\n );\n }\n\n /**\n * get Stark public key for a given BIP 32 path.\n * @param path a path in BIP 32 format\n * @option boolDisplay optionally enable or not the display\n * @return the Stark public key\n */\n starkGetPublicKey(path: string, boolDisplay?: boolean): Promise {\n const paths = splitPath(path);\n const buffer = Buffer.alloc(1 + paths.length * 4);\n buffer[0] = paths.length;\n paths.forEach((element, index) => {\n buffer.writeUInt32BE(element, 1 + 4 * index);\n });\n return this.transport\n .send(0xf0, 0x02, boolDisplay ? 0x01 : 0x00, 0x00, buffer)\n .then((response) => {\n return response.slice(0, response.length - 2);\n });\n }\n\n /**\n * sign a Stark order\n * @param path a path in BIP 32 format\n * @option sourceTokenAddress contract address of the source token (not present for ETH)\n * @param sourceQuantization quantization used for the source token\n * @option destinationTokenAddress contract address of the destination token (not present for ETH)\n * @param destinationQuantization quantization used for the destination token\n * @param sourceVault ID of the source vault\n * @param destinationVault ID of the destination vault\n * @param amountSell amount to sell\n * @param amountBuy amount to buy\n * @param nonce transaction nonce\n * @param timestamp transaction validity timestamp\n * @return the signature\n */\n starkSignOrder(\n path: string,\n sourceTokenAddress: string | undefined,\n sourceQuantization: BigNumber,\n destinationTokenAddress: string | undefined,\n destinationQuantization: BigNumber,\n sourceVault: number,\n destinationVault: number,\n amountSell: BigNumber,\n amountBuy: BigNumber,\n nonce: number,\n timestamp: number\n ): Promise {\n const sourceTokenAddressHex = maybeHexBuffer(sourceTokenAddress);\n const destinationTokenAddressHex = maybeHexBuffer(destinationTokenAddress);\n const paths = splitPath(path);\n const buffer = Buffer.alloc(\n 1 + paths.length * 4 + 20 + 32 + 20 + 32 + 4 + 4 + 8 + 8 + 4 + 4,\n 0\n );\n let offset = 0;\n buffer[0] = paths.length;\n paths.forEach((element, index) => {\n buffer.writeUInt32BE(element, 1 + 4 * index);\n });\n offset = 1 + 4 * paths.length;\n\n if (sourceTokenAddressHex) {\n sourceTokenAddressHex.copy(buffer, offset);\n }\n\n offset += 20;\n Buffer.from(sourceQuantization.toString(16).padStart(64, \"0\"), \"hex\").copy(\n buffer,\n offset\n );\n offset += 32;\n\n if (destinationTokenAddressHex) {\n destinationTokenAddressHex.copy(buffer, offset);\n }\n\n offset += 20;\n Buffer.from(\n destinationQuantization.toString(16).padStart(64, \"0\"),\n \"hex\"\n ).copy(buffer, offset);\n offset += 32;\n buffer.writeUInt32BE(sourceVault, offset);\n offset += 4;\n buffer.writeUInt32BE(destinationVault, offset);\n offset += 4;\n Buffer.from(amountSell.toString(16).padStart(16, \"0\"), \"hex\").copy(\n buffer,\n offset\n );\n offset += 8;\n Buffer.from(amountBuy.toString(16).padStart(16, \"0\"), \"hex\").copy(\n buffer,\n offset\n );\n offset += 8;\n buffer.writeUInt32BE(nonce, offset);\n offset += 4;\n buffer.writeUInt32BE(timestamp, offset);\n return this.transport\n .send(0xf0, 0x04, 0x01, 0x00, buffer)\n .then((response) => {\n const r = response.slice(1, 1 + 32).toString(\"hex\");\n const s = response.slice(1 + 32, 1 + 32 + 32).toString(\"hex\");\n return {\n r,\n s,\n };\n });\n }\n\n /**\n * sign a Stark order using the Starkex V2 protocol\n * @param path a path in BIP 32 format\n * @option sourceTokenAddress contract address of the source token (not present for ETH)\n * @param sourceQuantizationType quantization type used for the source token\n * @option sourceQuantization quantization used for the source token (not present for erc 721 or mintable erc 721)\n * @option sourceMintableBlobOrTokenId mintable blob (mintable erc 20 / mintable erc 721) or token id (erc 721) associated to the source token\n * @option destinationTokenAddress contract address of the destination token (not present for ETH)\n * @param destinationQuantizationType quantization type used for the destination token\n * @option destinationQuantization quantization used for the destination token (not present for erc 721 or mintable erc 721)\n * @option destinationMintableBlobOrTokenId mintable blob (mintable erc 20 / mintable erc 721) or token id (erc 721) associated to the destination token\n * @param sourceVault ID of the source vault\n * @param destinationVault ID of the destination vault\n * @param amountSell amount to sell\n * @param amountBuy amount to buy\n * @param nonce transaction nonce\n * @param timestamp transaction validity timestamp\n * @return the signature\n */\n starkSignOrder_v2(\n path: string,\n sourceTokenAddress: string | undefined,\n sourceQuantizationType: StarkQuantizationType,\n sourceQuantization: BigNumber | undefined,\n sourceMintableBlobOrTokenId: BigNumber | undefined,\n destinationTokenAddress: string | undefined,\n destinationQuantizationType: StarkQuantizationType,\n destinationQuantization: BigNumber | undefined,\n destinationMintableBlobOrTokenId: BigNumber | undefined,\n sourceVault: number,\n destinationVault: number,\n amountSell: BigNumber,\n amountBuy: BigNumber,\n nonce: number,\n timestamp: number\n ): Promise {\n const sourceTokenAddressHex = maybeHexBuffer(sourceTokenAddress);\n const destinationTokenAddressHex = maybeHexBuffer(destinationTokenAddress);\n\n if (!(sourceQuantizationType in starkQuantizationTypeMap)) {\n throw new Error(\n \"eth.starkSignOrderv2 invalid source quantization type=\" +\n sourceQuantizationType\n );\n }\n\n if (!(destinationQuantizationType in starkQuantizationTypeMap)) {\n throw new Error(\n \"eth.starkSignOrderv2 invalid destination quantization type=\" +\n destinationQuantizationType\n );\n }\n\n const paths = splitPath(path);\n const buffer = Buffer.alloc(\n 1 +\n paths.length * 4 +\n 1 +\n 20 +\n 32 +\n 32 +\n 1 +\n 20 +\n 32 +\n 32 +\n 4 +\n 4 +\n 8 +\n 8 +\n 4 +\n 4,\n 0\n );\n let offset = 0;\n buffer[0] = paths.length;\n paths.forEach((element, index) => {\n buffer.writeUInt32BE(element, 1 + 4 * index);\n });\n offset = 1 + 4 * paths.length;\n buffer[offset] = starkQuantizationTypeMap[sourceQuantizationType];\n offset++;\n\n if (sourceTokenAddressHex) {\n sourceTokenAddressHex.copy(buffer, offset);\n }\n\n offset += 20;\n\n if (sourceQuantization) {\n Buffer.from(\n sourceQuantization.toString(16).padStart(64, \"0\"),\n \"hex\"\n ).copy(buffer, offset);\n }\n\n offset += 32;\n\n if (sourceMintableBlobOrTokenId) {\n Buffer.from(\n sourceMintableBlobOrTokenId.toString(16).padStart(64, \"0\"),\n \"hex\"\n ).copy(buffer, offset);\n }\n\n offset += 32;\n buffer[offset] = starkQuantizationTypeMap[destinationQuantizationType];\n offset++;\n\n if (destinationTokenAddressHex) {\n destinationTokenAddressHex.copy(buffer, offset);\n }\n\n offset += 20;\n\n if (destinationQuantization) {\n Buffer.from(\n destinationQuantization.toString(16).padStart(64, \"0\"),\n \"hex\"\n ).copy(buffer, offset);\n }\n\n offset += 32;\n\n if (destinationMintableBlobOrTokenId) {\n Buffer.from(\n destinationMintableBlobOrTokenId.toString(16).padStart(64, \"0\"),\n \"hex\"\n ).copy(buffer, offset);\n }\n\n offset += 32;\n buffer.writeUInt32BE(sourceVault, offset);\n offset += 4;\n buffer.writeUInt32BE(destinationVault, offset);\n offset += 4;\n Buffer.from(amountSell.toString(16).padStart(16, \"0\"), \"hex\").copy(\n buffer,\n offset\n );\n offset += 8;\n Buffer.from(amountBuy.toString(16).padStart(16, \"0\"), \"hex\").copy(\n buffer,\n offset\n );\n offset += 8;\n buffer.writeUInt32BE(nonce, offset);\n offset += 4;\n buffer.writeUInt32BE(timestamp, offset);\n return this.transport\n .send(0xf0, 0x04, 0x03, 0x00, buffer)\n .then((response) => {\n const r = response.slice(1, 1 + 32).toString(\"hex\");\n const s = response.slice(1 + 32, 1 + 32 + 32).toString(\"hex\");\n return {\n r,\n s,\n };\n });\n }\n\n /**\n * sign a Stark transfer\n * @param path a path in BIP 32 format\n * @option transferTokenAddress contract address of the token to be transferred (not present for ETH)\n * @param transferQuantization quantization used for the token to be transferred\n * @param targetPublicKey target Stark public key\n * @param sourceVault ID of the source vault\n * @param destinationVault ID of the destination vault\n * @param amountTransfer amount to transfer\n * @param nonce transaction nonce\n * @param timestamp transaction validity timestamp\n * @return the signature\n */\n starkSignTransfer(\n path: string,\n transferTokenAddress: string | undefined,\n transferQuantization: BigNumber,\n targetPublicKey: string,\n sourceVault: number,\n destinationVault: number,\n amountTransfer: BigNumber,\n nonce: number,\n timestamp: number\n ): Promise {\n const transferTokenAddressHex = maybeHexBuffer(transferTokenAddress);\n const targetPublicKeyHex = hexBuffer(targetPublicKey);\n const paths = splitPath(path);\n const buffer = Buffer.alloc(\n 1 + paths.length * 4 + 20 + 32 + 32 + 4 + 4 + 8 + 4 + 4,\n 0\n );\n let offset = 0;\n buffer[0] = paths.length;\n paths.forEach((element, index) => {\n buffer.writeUInt32BE(element, 1 + 4 * index);\n });\n offset = 1 + 4 * paths.length;\n\n if (transferTokenAddressHex) {\n transferTokenAddressHex.copy(buffer, offset);\n }\n\n offset += 20;\n Buffer.from(\n transferQuantization.toString(16).padStart(64, \"0\"),\n \"hex\"\n ).copy(buffer, offset);\n offset += 32;\n targetPublicKeyHex.copy(buffer, offset);\n offset += 32;\n buffer.writeUInt32BE(sourceVault, offset);\n offset += 4;\n buffer.writeUInt32BE(destinationVault, offset);\n offset += 4;\n Buffer.from(amountTransfer.toString(16).padStart(16, \"0\"), \"hex\").copy(\n buffer,\n offset\n );\n offset += 8;\n buffer.writeUInt32BE(nonce, offset);\n offset += 4;\n buffer.writeUInt32BE(timestamp, offset);\n return this.transport\n .send(0xf0, 0x04, 0x02, 0x00, buffer)\n .then((response) => {\n const r = response.slice(1, 1 + 32).toString(\"hex\");\n const s = response.slice(1 + 32, 1 + 32 + 32).toString(\"hex\");\n return {\n r,\n s,\n };\n });\n }\n\n /**\n * sign a Stark transfer or conditional transfer using the Starkex V2 protocol\n * @param path a path in BIP 32 format\n * @option transferTokenAddress contract address of the token to be transferred (not present for ETH)\n * @param transferQuantizationType quantization type used for the token to be transferred\n * @option transferQuantization quantization used for the token to be transferred (not present for erc 721 or mintable erc 721)\n * @option transferMintableBlobOrTokenId mintable blob (mintable erc 20 / mintable erc 721) or token id (erc 721) associated to the token to be transferred\n * @param targetPublicKey target Stark public key\n * @param sourceVault ID of the source vault\n * @param destinationVault ID of the destination vault\n * @param amountTransfer amount to transfer\n * @param nonce transaction nonce\n * @param timestamp transaction validity timestamp\n * @option conditionalTransferAddress onchain address of the condition for a conditional transfer\n * @option conditionalTransferFact fact associated to the condition for a conditional transfer\n * @return the signature\n */\n starkSignTransfer_v2(\n path: string,\n transferTokenAddress: string | undefined,\n transferQuantizationType: StarkQuantizationType,\n transferQuantization: BigNumber | undefined,\n transferMintableBlobOrTokenId: BigNumber | undefined,\n targetPublicKey: string,\n sourceVault: number,\n destinationVault: number,\n amountTransfer: BigNumber,\n nonce: number,\n timestamp: number,\n conditionalTransferAddress?: string,\n conditionalTransferFact?: BigNumber\n ): Promise {\n const transferTokenAddressHex = maybeHexBuffer(transferTokenAddress);\n const targetPublicKeyHex = hexBuffer(targetPublicKey);\n const conditionalTransferAddressHex = maybeHexBuffer(\n conditionalTransferAddress\n );\n\n if (!(transferQuantizationType in starkQuantizationTypeMap)) {\n throw new Error(\n \"eth.starkSignTransferv2 invalid quantization type=\" +\n transferQuantizationType\n );\n }\n\n const paths = splitPath(path);\n const buffer = Buffer.alloc(\n 1 +\n paths.length * 4 +\n 1 +\n 20 +\n 32 +\n 32 +\n 32 +\n 4 +\n 4 +\n 8 +\n 4 +\n 4 +\n (conditionalTransferAddressHex ? 32 + 20 : 0),\n 0\n );\n let offset = 0;\n buffer[0] = paths.length;\n paths.forEach((element, index) => {\n buffer.writeUInt32BE(element, 1 + 4 * index);\n });\n offset = 1 + 4 * paths.length;\n buffer[offset] = starkQuantizationTypeMap[transferQuantizationType];\n offset++;\n\n if (transferTokenAddressHex) {\n transferTokenAddressHex.copy(buffer, offset);\n }\n\n offset += 20;\n\n if (transferQuantization) {\n Buffer.from(\n transferQuantization.toString(16).padStart(64, \"0\"),\n \"hex\"\n ).copy(buffer, offset);\n }\n\n offset += 32;\n\n if (transferMintableBlobOrTokenId) {\n Buffer.from(\n transferMintableBlobOrTokenId.toString(16).padStart(64, \"0\"),\n \"hex\"\n ).copy(buffer, offset);\n }\n\n offset += 32;\n targetPublicKeyHex.copy(buffer, offset);\n offset += 32;\n buffer.writeUInt32BE(sourceVault, offset);\n offset += 4;\n buffer.writeUInt32BE(destinationVault, offset);\n offset += 4;\n Buffer.from(amountTransfer.toString(16).padStart(16, \"0\"), \"hex\").copy(\n buffer,\n offset\n );\n offset += 8;\n buffer.writeUInt32BE(nonce, offset);\n offset += 4;\n buffer.writeUInt32BE(timestamp, offset);\n\n if (conditionalTransferAddressHex && conditionalTransferFact) {\n offset += 4;\n Buffer.from(\n conditionalTransferFact.toString(16).padStart(64, \"0\"),\n \"hex\"\n ).copy(buffer, offset);\n offset += 32;\n conditionalTransferAddressHex.copy(buffer, offset);\n }\n\n return this.transport\n .send(\n 0xf0,\n 0x04,\n conditionalTransferAddressHex ? 0x05 : 0x04,\n 0x00,\n buffer\n )\n .then((response) => {\n const r = response.slice(1, 1 + 32).toString(\"hex\");\n const s = response.slice(1 + 32, 1 + 32 + 32).toString(\"hex\");\n return {\n r,\n s,\n };\n });\n }\n\n /**\n * provide quantization information before singing a deposit or withdrawal Stark powered contract call\n *\n * It shall be run following a provideERC20TokenInformation call for the given contract\n *\n * @param operationContract contract address of the token to be transferred (not present for ETH)\n * @param operationQuantization quantization used for the token to be transferred\n */\n starkProvideQuantum(\n operationContract: string | undefined,\n operationQuantization: BigNumber\n ): Promise {\n const operationContractHex = maybeHexBuffer(operationContract);\n const buffer = Buffer.alloc(20 + 32, 0);\n\n if (operationContractHex) {\n operationContractHex.copy(buffer, 0);\n }\n\n Buffer.from(\n operationQuantization.toString(16).padStart(64, \"0\"),\n \"hex\"\n ).copy(buffer, 20);\n return this.transport.send(0xf0, 0x08, 0x00, 0x00, buffer).then(\n () => true,\n (e) => {\n if (e && e.statusCode === 0x6d00) {\n // this case happen for ETH application versions not supporting Stark extensions\n return false;\n }\n\n throw e;\n }\n );\n }\n\n /**\n * provide quantization information before singing a deposit or withdrawal Stark powered contract call using the Starkex V2 protocol\n *\n * It shall be run following a provideERC20TokenInformation call for the given contract\n *\n * @param operationContract contract address of the token to be transferred (not present for ETH)\n * @param operationQuantizationType quantization type of the token to be transferred\n * @option operationQuantization quantization used for the token to be transferred (not present for erc 721 or mintable erc 721)\n * @option operationMintableBlobOrTokenId mintable blob (mintable erc 20 / mintable erc 721) or token id (erc 721) of the token to be transferred\n */\n starkProvideQuantum_v2(\n operationContract: string | undefined,\n operationQuantizationType: StarkQuantizationType,\n operationQuantization?: BigNumber,\n operationMintableBlobOrTokenId?: BigNumber\n ): Promise {\n const operationContractHex = maybeHexBuffer(operationContract);\n\n if (!(operationQuantizationType in starkQuantizationTypeMap)) {\n throw new Error(\n \"eth.starkProvideQuantumV2 invalid quantization type=\" +\n operationQuantizationType\n );\n }\n\n const buffer = Buffer.alloc(20 + 32 + 32, 0);\n let offset = 0;\n\n if (operationContractHex) {\n operationContractHex.copy(buffer, offset);\n }\n\n offset += 20;\n\n if (operationQuantization) {\n Buffer.from(\n operationQuantization.toString(16).padStart(64, \"0\"),\n \"hex\"\n ).copy(buffer, offset);\n }\n\n offset += 32;\n\n if (operationMintableBlobOrTokenId) {\n Buffer.from(\n operationMintableBlobOrTokenId.toString(16).padStart(64, \"0\"),\n \"hex\"\n ).copy(buffer, offset);\n }\n\n return this.transport\n .send(\n 0xf0,\n 0x08,\n starkQuantizationTypeMap[operationQuantizationType],\n 0x00,\n buffer\n )\n .then(\n () => true,\n (e) => {\n if (e && e.statusCode === 0x6d00) {\n // this case happen for ETH application versions not supporting Stark extensions\n return false;\n }\n\n throw e;\n }\n );\n }\n\n /**\n * sign the given hash over the Stark curve\n * It is intended for speed of execution in case an unknown Stark model is pushed and should be avoided as much as possible.\n * @param path a path in BIP 32 format\n * @param hash hexadecimal hash to sign\n * @return the signature\n */\n starkUnsafeSign(\n path: string,\n hash: string\n ): Promise {\n const hashHex = hexBuffer(hash);\n const paths = splitPath(path);\n const buffer = Buffer.alloc(1 + paths.length * 4 + 32);\n let offset = 0;\n buffer[0] = paths.length;\n paths.forEach((element, index) => {\n buffer.writeUInt32BE(element, 1 + 4 * index);\n });\n offset = 1 + 4 * paths.length;\n hashHex.copy(buffer, offset);\n return this.transport\n .send(0xf0, 0x0a, 0x00, 0x00, buffer)\n .then((response) => {\n const r = response.slice(1, 1 + 32).toString(\"hex\");\n const s = response.slice(1 + 32, 1 + 32 + 32).toString(\"hex\");\n return {\n r,\n s,\n };\n });\n }\n\n /**\n * get an Ethereum 2 BLS-12 381 public key for a given BIP 32 path.\n * @param path a path in BIP 32 format\n * @option boolDisplay optionally enable or not the display\n * @return an object with a publicKey\n * @example\n * eth.eth2GetPublicKey(\"12381/3600/0/0\").then(o => o.publicKey)\n */\n eth2GetPublicKey(\n path: string,\n boolDisplay?: boolean\n ): Promise<{\n publicKey: string;\n }> {\n const paths = splitPath(path);\n const buffer = Buffer.alloc(1 + paths.length * 4);\n buffer[0] = paths.length;\n paths.forEach((element, index) => {\n buffer.writeUInt32BE(element, 1 + 4 * index);\n });\n return this.transport\n .send(0xe0, 0x0e, boolDisplay ? 0x01 : 0x00, 0x00, buffer)\n .then((response) => {\n return {\n publicKey: response.slice(0, -2).toString(\"hex\"),\n };\n });\n }\n\n /**\n * Set the index of a Withdrawal key used as withdrawal credentials in an ETH 2 deposit contract call signature\n *\n * It shall be run before the ETH 2 deposit transaction is signed. If not called, the index is set to 0\n *\n * @param withdrawalIndex index path in the EIP 2334 path m/12381/3600/withdrawalIndex/0\n * @return True if the method was executed successfully\n */\n eth2SetWithdrawalIndex(withdrawalIndex: number): Promise {\n const buffer = Buffer.alloc(4, 0);\n buffer.writeUInt32BE(withdrawalIndex, 0);\n return this.transport.send(0xe0, 0x10, 0x00, 0x00, buffer).then(\n () => true,\n (e) => {\n if (e && e.statusCode === 0x6d00) {\n // this case happen for ETH application versions not supporting ETH 2\n return false;\n }\n\n throw e;\n }\n );\n }\n\n /**\n * get a public encryption key on Curve25519 according to EIP 1024\n * @param path a path in BIP 32 format\n * @option boolDisplay optionally enable or not the display\n * @return an object with a publicKey\n * @example\n * eth.getEIP1024PublicEncryptionKey(\"44'/60'/0'/0/0\").then(o => o.publicKey)\n */\n getEIP1024PublicEncryptionKey(\n path: string,\n boolDisplay?: boolean\n ): Promise<{\n publicKey: string;\n }> {\n const paths = splitPath(path);\n const buffer = Buffer.alloc(1 + paths.length * 4);\n buffer[0] = paths.length;\n paths.forEach((element, index) => {\n buffer.writeUInt32BE(element, 1 + 4 * index);\n });\n return this.transport\n .send(0xe0, 0x18, boolDisplay ? 0x01 : 0x00, 0x00, buffer)\n .then((response) => {\n return {\n publicKey: response.slice(0, -2).toString(\"hex\"),\n };\n });\n }\n\n /**\n * get a shared secret on Curve25519 according to EIP 1024\n * @param path a path in BIP 32 format\n * @param remotePublicKeyHex remote Curve25519 public key\n * @option boolDisplay optionally enable or not the display\n * @return an object with a shared secret\n * @example\n * eth.getEIP1024SharedSecret(\"44'/60'/0'/0/0\", \"87020e80af6e07a6e4697f091eacadb9e7e6629cb7e5a8a371689a3ed53b3d64\").then(o => o.sharedSecret)\n */\n getEIP1024SharedSecret(\n path: string,\n remotePublicKeyHex: string,\n boolDisplay?: boolean\n ): Promise<{\n sharedSecret: string;\n }> {\n const paths = splitPath(path);\n const remotePublicKey = hexBuffer(remotePublicKeyHex);\n const buffer = Buffer.alloc(1 + paths.length * 4 + 32);\n let offset = 0;\n buffer[0] = paths.length;\n paths.forEach((element, index) => {\n buffer.writeUInt32BE(element, 1 + 4 * index);\n });\n offset = 1 + 4 * paths.length;\n remotePublicKey.copy(buffer, offset);\n return this.transport\n .send(0xe0, 0x18, boolDisplay ? 0x01 : 0x00, 0x01, buffer)\n .then((response) => {\n return {\n sharedSecret: response.slice(0, -2).toString(\"hex\"),\n };\n });\n }\n\n provideERC20TokenInformation({ data }: { data: Buffer }): Promise {\n return provideERC20TokenInformation(this.transport, data);\n }\n\n setExternalPlugin(\n pluginName: string,\n contractAddress: string,\n selector: string\n ): Promise {\n console.warn(\n \"hw-app-eth: eth.setExternalPlugin is deprecated. signTransaction solves this for you when providing it in `resolution`.\"\n );\n return setExternalPlugin(this.transport, pluginName, selector);\n }\n\n setPlugin(data: string): Promise {\n console.warn(\n \"hw-app-eth: eth.setPlugin is deprecated. signTransaction solves this for you when providing it in `resolution`.\"\n );\n return setPlugin(this.transport, data);\n }\n}\n\n// internal helpers\n\nfunction provideERC20TokenInformation(\n transport: Transport,\n data: Buffer\n): Promise {\n return transport.send(0xe0, 0x0a, 0x00, 0x00, data).then(\n () => true,\n (e) => {\n if (e && e.statusCode === 0x6d00) {\n // this case happen for older version of ETH app, since older app version had the ERC20 data hardcoded, it's fine to assume it worked.\n // we return a flag to know if the call was effective or not\n return false;\n }\n throw e;\n }\n );\n}\n\nfunction provideNFTInformation(\n transport: Transport,\n data: Buffer\n): Promise {\n return transport.send(0xe0, 0x14, 0x00, 0x00, data).then(\n () => true,\n (e) => {\n if (e && e.statusCode === 0x6d00) {\n // older version of ETH app => error because we don't allow blind sign when NFT is explicitly requested to be resolved.\n throw new EthAppNftNotSupported();\n }\n throw e;\n }\n );\n}\n\nfunction setExternalPlugin(\n transport: Transport,\n payload: string,\n signature: string\n): Promise {\n const payloadBuffer = Buffer.from(payload, \"hex\");\n const signatureBuffer = Buffer.from(signature, \"hex\");\n const buffer = Buffer.concat([payloadBuffer, signatureBuffer]);\n return transport.send(0xe0, 0x12, 0x00, 0x00, buffer).then(\n () => true,\n (e) => {\n if (e && e.statusCode === 0x6a80) {\n // this case happen when the plugin name is too short or too long\n return false;\n } else if (e && e.statusCode === 0x6984) {\n // this case happen when the plugin requested is not installed on the device\n return false;\n } else if (e && e.statusCode === 0x6d00) {\n // this case happen for older version of ETH app\n return false;\n }\n throw e;\n }\n );\n}\n\nfunction setPlugin(transport: Transport, data: string): Promise {\n const buffer = Buffer.from(data, \"hex\");\n return transport.send(0xe0, 0x16, 0x00, 0x00, buffer).then(\n () => true,\n (e) => {\n if (e && e.statusCode === 0x6a80) {\n // this case happen when the plugin name is too short or too long\n return false;\n } else if (e && e.statusCode === 0x6984) {\n // this case happen when the plugin requested is not installed on the device\n return false;\n } else if (e && e.statusCode === 0x6d00) {\n // this case happen for older version of ETH app\n return false;\n }\n throw e;\n }\n );\n}\n", "import EventEmitter from \"events\";\nimport type { DeviceModel } from \"@ledgerhq/devices\";\nimport {\n TransportRaceCondition,\n TransportError,\n StatusCodes,\n getAltStatusMessage,\n TransportStatusError,\n} from \"@ledgerhq/errors\";\nexport {\n TransportError,\n TransportStatusError,\n StatusCodes,\n getAltStatusMessage,\n};\n\n/**\n */\nexport type Subscription = {\n unsubscribe: () => void;\n};\n\n/**\n */\nexport type Device = any; // Should be a union type of all possible Device object's shape\n\nexport type DescriptorEventType = \"add\" | \"remove\";\n/**\n * A \"descriptor\" is a parameter that is specific to the implementation, and can be an ID, file path, or URL.\n * type: add or remove event\n * descriptor: a parameter that can be passed to open(descriptor)\n * deviceModel: device info on the model (is it a nano s, nano x, ...)\n * device: transport specific device info\n */\nexport interface DescriptorEvent {\n type: DescriptorEventType;\n descriptor: Descriptor;\n deviceModel?: DeviceModel | null | undefined;\n device?: Device;\n}\n\n/**\n * Observer generic type, following the Observer pattern\n */\nexport type Observer = Readonly<{\n next: (event: EventType) => unknown;\n error: (e: EventError) => unknown;\n complete: () => unknown;\n}>;\n\n/**\n * The Transport class defines a generic interface for communicating with a Ledger hardware wallet.\n * There are different kind of transports based on the technology (channels like U2F, HID, Bluetooth, Webusb) and environment (Node, Web,...).\n * It is an abstract class that needs to be implemented.\n */\nexport default class Transport {\n exchangeTimeout = 30000;\n unresponsiveTimeout = 15000;\n deviceModel: DeviceModel | null | undefined = null;\n\n /**\n * Check if the transport is supported on the current platform/browser.\n * @returns {Promise} A promise that resolves with a boolean indicating support.\n */\n static readonly isSupported: () => Promise;\n\n /**\n * List all available descriptors for the transport.\n * For a better granularity, checkout `listen()`.\n *\n * @returns {Promise>} A promise that resolves with an array of descriptors.\n * @example\n * TransportFoo.list().then(descriptors => ...)\n */\n static readonly list: () => Promise>;\n\n /**\n * Listen for device events for the transport. The method takes an observer of DescriptorEvent and returns a Subscription.\n * A DescriptorEvent is an object containing a \"descriptor\" and a \"type\" field. The \"type\" field can be \"add\" or \"remove\", and the \"descriptor\" field can be passed to the \"open\" method.\n * The \"listen\" method will first emit all currently connected devices and then will emit events as they occur, such as when a USB device is plugged in or a Bluetooth device becomes discoverable.\n * @param {Observer>} observer - An object with \"next\", \"error\", and \"complete\" functions, following the observer pattern.\n * @returns {Subscription} A Subscription object on which you can call \".unsubscribe()\" to stop listening to descriptors.\n * @example\n const sub = TransportFoo.listen({\n next: e => {\n if (e.type===\"add\") {\n sub.unsubscribe();\n const transport = await TransportFoo.open(e.descriptor);\n ...\n }\n },\n error: error => {},\n complete: () => {}\n })\n */\n static readonly listen: (\n observer: Observer>\n ) => Subscription;\n\n /**\n * Attempt to create a Transport instance with a specific descriptor.\n * @param {any} descriptor - The descriptor to open the transport with.\n * @param {number} timeout - An optional timeout for the transport connection.\n * @returns {Promise} A promise that resolves with a Transport instance.\n * @example\n TransportFoo.open(descriptor).then(transport => ...)\n */\n static readonly open: (\n descriptor?: any,\n timeout?: number\n ) => Promise;\n\n /**\n * Send data to the device using a low level API.\n * It's recommended to use the \"send\" method for a higher level API.\n * @param {Buffer} apdu - The data to send.\n * @returns {Promise} A promise that resolves with the response data from the device.\n */\n exchange(_apdu: Buffer): Promise {\n throw new Error(\"exchange not implemented\");\n }\n\n /**\n * Send apdus in batch to the device using a low level API.\n * The default implementation is to call exchange for each apdu.\n * @param {Array} apdus - array of apdus to send.\n * @param {Observer} observer - an observer that will receive the response of each apdu.\n * @returns {Subscription} A Subscription object on which you can call \".unsubscribe()\" to stop sending apdus.\n */\n exchangeBulk(apdus: Buffer[], observer: Observer): Subscription {\n let unsubscribed = false;\n const unsubscribe = () => {\n unsubscribed = true;\n };\n\n const main = async () => {\n if (unsubscribed) return;\n for (const apdu of apdus) {\n const r = await this.exchange(apdu);\n if (unsubscribed) return;\n const status = r.readUInt16BE(r.length - 2);\n if (status !== StatusCodes.OK) {\n throw new TransportStatusError(status);\n }\n observer.next(r);\n }\n };\n\n main().then(\n () => !unsubscribed && observer.complete(),\n (e) => !unsubscribed && observer.error(e)\n );\n\n return { unsubscribe };\n }\n\n /**\n * Set the \"scramble key\" for the next data exchanges with the device.\n * Each app can have a different scramble key and it is set internally during instantiation.\n * @param {string} key - The scramble key to set.\n * @deprecated This method is no longer needed for modern transports and should be migrated away from.\n */\n setScrambleKey(_key: string) {}\n\n /**\n * Close the connection with the device.\n * @returns {Promise} A promise that resolves when the transport is closed.\n */\n close(): Promise {\n return Promise.resolve();\n }\n\n _events = new EventEmitter();\n\n /**\n * Listen for an event on the transport instance.\n * Transport implementations may have specific events. Common events include:\n * \"disconnect\" : triggered when the transport is disconnected.\n * @param {string} eventName - The name of the event to listen for.\n * @param {(...args: Array) => any} cb - The callback function to be invoked when the event occurs.\n */\n on(eventName: string, cb: (...args: Array) => any): void {\n this._events.on(eventName, cb);\n }\n\n /**\n * Stop listening to an event on an instance of transport.\n */\n off(eventName: string, cb: (...args: Array) => any): void {\n this._events.removeListener(eventName, cb);\n }\n\n emit(event: string, ...args: any): void {\n this._events.emit(event, ...args);\n }\n\n /**\n * Enable or not logs of the binary exchange\n */\n setDebugMode() {\n console.warn(\n \"setDebugMode is deprecated. use @ledgerhq/logs instead. No logs are emitted in this anymore.\"\n );\n }\n\n /**\n * Set a timeout (in milliseconds) for the exchange call. Only some transport might implement it. (e.g. U2F)\n */\n setExchangeTimeout(exchangeTimeout: number): void {\n this.exchangeTimeout = exchangeTimeout;\n }\n\n /**\n * Define the delay before emitting \"unresponsive\" on an exchange that does not respond\n */\n setExchangeUnresponsiveTimeout(unresponsiveTimeout: number): void {\n this.unresponsiveTimeout = unresponsiveTimeout;\n }\n\n /**\n * Send data to the device using the higher level API.\n * @param {number} cla - The instruction class for the command.\n * @param {number} ins - The instruction code for the command.\n * @param {number} p1 - The first parameter for the instruction.\n * @param {number} p2 - The second parameter for the instruction.\n * @param {Buffer} data - The data to be sent. Defaults to an empty buffer.\n * @param {Array} statusList - A list of acceptable status codes for the response. Defaults to [StatusCodes.OK].\n * @returns {Promise} A promise that resolves with the response data from the device.\n */\n send = async (\n cla: number,\n ins: number,\n p1: number,\n p2: number,\n data: Buffer = Buffer.alloc(0),\n statusList: Array = [StatusCodes.OK]\n ): Promise => {\n if (data.length >= 256) {\n throw new TransportError(\n \"data.length exceed 256 bytes limit. Got: \" + data.length,\n \"DataLengthTooBig\"\n );\n }\n\n const response = await this.exchange(\n Buffer.concat([\n Buffer.from([cla, ins, p1, p2]),\n Buffer.from([data.length]),\n data,\n ])\n );\n const sw = response.readUInt16BE(response.length - 2);\n\n if (!statusList.some((s) => s === sw)) {\n throw new TransportStatusError(sw);\n }\n\n return response;\n };\n\n /**\n * create() allows to open the first descriptor available or\n * throw if there is none or if timeout is reached.\n * This is a light helper, alternative to using listen() and open() (that you may need for any more advanced usecase)\n * @example\n TransportFoo.create().then(transport => ...)\n */\n static create(\n openTimeout = 3000,\n listenTimeout?: number\n ): Promise {\n return new Promise((resolve, reject) => {\n let found = false;\n const sub = this.listen({\n next: (e) => {\n found = true;\n if (sub) sub.unsubscribe();\n if (listenTimeoutId) clearTimeout(listenTimeoutId);\n this.open(e.descriptor, openTimeout).then(resolve, reject);\n },\n error: (e) => {\n if (listenTimeoutId) clearTimeout(listenTimeoutId);\n reject(e);\n },\n complete: () => {\n if (listenTimeoutId) clearTimeout(listenTimeoutId);\n\n if (!found) {\n reject(\n new TransportError(\n this.ErrorMessage_NoDeviceFound,\n \"NoDeviceFound\"\n )\n );\n }\n },\n });\n const listenTimeoutId = listenTimeout\n ? setTimeout(() => {\n sub.unsubscribe();\n reject(\n new TransportError(\n this.ErrorMessage_ListenTimeout,\n \"ListenTimeout\"\n )\n );\n }, listenTimeout)\n : null;\n });\n }\n\n exchangeBusyPromise: Promise | null | undefined;\n exchangeAtomicImpl = async (\n f: () => Promise\n ): Promise => {\n if (this.exchangeBusyPromise) {\n throw new TransportRaceCondition(\n \"An action was already pending on the Ledger device. Please deny or reconnect.\"\n );\n }\n\n let resolveBusy;\n const busyPromise: Promise = new Promise((r) => {\n resolveBusy = r;\n });\n this.exchangeBusyPromise = busyPromise;\n let unresponsiveReached = false;\n const timeout = setTimeout(() => {\n unresponsiveReached = true;\n this.emit(\"unresponsive\");\n }, this.unresponsiveTimeout);\n\n try {\n const res = await f();\n\n if (unresponsiveReached) {\n this.emit(\"responsive\");\n }\n\n return res;\n } finally {\n clearTimeout(timeout);\n if (resolveBusy) resolveBusy();\n this.exchangeBusyPromise = null;\n }\n };\n\n decorateAppAPIMethods(\n self: Record,\n methods: Array,\n scrambleKey: string\n ) {\n for (const methodName of methods) {\n self[methodName] = this.decorateAppAPIMethod(\n methodName,\n self[methodName],\n self,\n scrambleKey\n );\n }\n }\n\n _appAPIlock: string | null = null;\n\n decorateAppAPIMethod(\n methodName: string,\n f: (...args: A) => Promise,\n ctx: any,\n scrambleKey: string\n ): (...args: A) => Promise {\n return async (...args) => {\n const { _appAPIlock } = this;\n\n if (_appAPIlock) {\n return Promise.reject(\n new TransportError(\n \"Ledger Device is busy (lock \" + _appAPIlock + \")\",\n \"TransportLocked\"\n )\n );\n }\n\n try {\n this._appAPIlock = methodName;\n this.setScrambleKey(scrambleKey);\n return await f.apply(ctx, args);\n } finally {\n this._appAPIlock = null;\n }\n };\n }\n\n static ErrorMessage_ListenTimeout = \"No Ledger device found (timeout)\";\n static ErrorMessage_NoDeviceFound = \"No Ledger device found\";\n}\n", "import { TransportError } from \"@ledgerhq/errors\";\nexport type ResponseAcc =\n | {\n data: Buffer;\n dataLength: number;\n sequence: number;\n }\n | null\n | undefined;\nconst Tag = 0x05;\n\nfunction asUInt16BE(value) {\n const b = Buffer.alloc(2);\n b.writeUInt16BE(value, 0);\n return b;\n}\n\nconst initialAcc = {\n data: Buffer.alloc(0),\n dataLength: 0,\n sequence: 0,\n};\n\n/**\n *\n */\nconst createHIDframing = (channel: number, packetSize: number) => {\n return {\n makeBlocks(apdu: Buffer): Buffer[] {\n let data = Buffer.concat([asUInt16BE(apdu.length), apdu]);\n const blockSize = packetSize - 5;\n const nbBlocks = Math.ceil(data.length / blockSize);\n data = Buffer.concat([\n data, // fill data with padding\n Buffer.alloc(nbBlocks * blockSize - data.length + 1).fill(0),\n ]);\n const blocks: Buffer[] = [];\n\n for (let i = 0; i < nbBlocks; i++) {\n const head = Buffer.alloc(5);\n head.writeUInt16BE(channel, 0);\n head.writeUInt8(Tag, 2);\n head.writeUInt16BE(i, 3);\n const chunk = data.slice(i * blockSize, (i + 1) * blockSize);\n blocks.push(Buffer.concat([head, chunk]));\n }\n\n return blocks;\n },\n\n reduceResponse(acc: ResponseAcc, chunk: Buffer): ResponseAcc {\n let { data, dataLength, sequence } = acc || initialAcc;\n\n if (chunk.readUInt16BE(0) !== channel) {\n throw new TransportError(\"Invalid channel\", \"InvalidChannel\");\n }\n\n if (chunk.readUInt8(2) !== Tag) {\n throw new TransportError(\"Invalid tag\", \"InvalidTag\");\n }\n\n if (chunk.readUInt16BE(3) !== sequence) {\n throw new TransportError(\"Invalid sequence\", \"InvalidSequence\");\n }\n\n if (!acc) {\n dataLength = chunk.readUInt16BE(5);\n }\n\n sequence++;\n const chunkData = chunk.slice(acc ? 5 : 7);\n data = Buffer.concat([data, chunkData]);\n\n if (data.length > dataLength) {\n data = data.slice(0, dataLength);\n }\n\n return {\n data,\n dataLength,\n sequence,\n };\n },\n\n getReducedResult(acc: ResponseAcc): Buffer | null | undefined {\n if (acc && acc.dataLength === acc.data.length) {\n return acc.data;\n }\n },\n };\n};\n\nexport default createHIDframing;\n", "// Note: this is the semver.org version of the spec that it implements\n// Not necessarily the package version of this code.\nconst SEMVER_SPEC_VERSION = '2.0.0'\n\nconst MAX_LENGTH = 256\nconst MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER ||\n/* istanbul ignore next */ 9007199254740991\n\n// Max safe segment length for coercion.\nconst MAX_SAFE_COMPONENT_LENGTH = 16\n\nmodule.exports = {\n SEMVER_SPEC_VERSION,\n MAX_LENGTH,\n MAX_SAFE_INTEGER,\n MAX_SAFE_COMPONENT_LENGTH,\n}\n", "const debug = (\n typeof process === 'object' &&\n process.env &&\n process.env.NODE_DEBUG &&\n /\\bsemver\\b/i.test(process.env.NODE_DEBUG)\n) ? (...args) => console.error('SEMVER', ...args)\n : () => {}\n\nmodule.exports = debug\n", "const { MAX_SAFE_COMPONENT_LENGTH } = require('./constants')\nconst debug = require('./debug')\nexports = module.exports = {}\n\n// The actual regexps go on exports.re\nconst re = exports.re = []\nconst src = exports.src = []\nconst t = exports.t = {}\nlet R = 0\n\nconst createToken = (name, value, isGlobal) => {\n const index = R++\n debug(name, index, value)\n t[name] = index\n src[index] = value\n re[index] = new RegExp(value, isGlobal ? 'g' : undefined)\n}\n\n// The following Regular Expressions can be used for tokenizing,\n// validating, and parsing SemVer version strings.\n\n// ## Numeric Identifier\n// A single `0`, or a non-zero digit followed by zero or more digits.\n\ncreateToken('NUMERICIDENTIFIER', '0|[1-9]\\\\d*')\ncreateToken('NUMERICIDENTIFIERLOOSE', '[0-9]+')\n\n// ## Non-numeric Identifier\n// Zero or more digits, followed by a letter or hyphen, and then zero or\n// more letters, digits, or hyphens.\n\ncreateToken('NONNUMERICIDENTIFIER', '\\\\d*[a-zA-Z-][a-zA-Z0-9-]*')\n\n// ## Main Version\n// Three dot-separated numeric identifiers.\n\ncreateToken('MAINVERSION', `(${src[t.NUMERICIDENTIFIER]})\\\\.` +\n `(${src[t.NUMERICIDENTIFIER]})\\\\.` +\n `(${src[t.NUMERICIDENTIFIER]})`)\n\ncreateToken('MAINVERSIONLOOSE', `(${src[t.NUMERICIDENTIFIERLOOSE]})\\\\.` +\n `(${src[t.NUMERICIDENTIFIERLOOSE]})\\\\.` +\n `(${src[t.NUMERICIDENTIFIERLOOSE]})`)\n\n// ## Pre-release Version Identifier\n// A numeric identifier, or a non-numeric identifier.\n\ncreateToken('PRERELEASEIDENTIFIER', `(?:${src[t.NUMERICIDENTIFIER]\n}|${src[t.NONNUMERICIDENTIFIER]})`)\n\ncreateToken('PRERELEASEIDENTIFIERLOOSE', `(?:${src[t.NUMERICIDENTIFIERLOOSE]\n}|${src[t.NONNUMERICIDENTIFIER]})`)\n\n// ## Pre-release Version\n// Hyphen, followed by one or more dot-separated pre-release version\n// identifiers.\n\ncreateToken('PRERELEASE', `(?:-(${src[t.PRERELEASEIDENTIFIER]\n}(?:\\\\.${src[t.PRERELEASEIDENTIFIER]})*))`)\n\ncreateToken('PRERELEASELOOSE', `(?:-?(${src[t.PRERELEASEIDENTIFIERLOOSE]\n}(?:\\\\.${src[t.PRERELEASEIDENTIFIERLOOSE]})*))`)\n\n// ## Build Metadata Identifier\n// Any combination of digits, letters, or hyphens.\n\ncreateToken('BUILDIDENTIFIER', '[0-9A-Za-z-]+')\n\n// ## Build Metadata\n// Plus sign, followed by one or more period-separated build metadata\n// identifiers.\n\ncreateToken('BUILD', `(?:\\\\+(${src[t.BUILDIDENTIFIER]\n}(?:\\\\.${src[t.BUILDIDENTIFIER]})*))`)\n\n// ## Full Version String\n// A main version, followed optionally by a pre-release version and\n// build metadata.\n\n// Note that the only major, minor, patch, and pre-release sections of\n// the version string are capturing groups. The build metadata is not a\n// capturing group, because it should not ever be used in version\n// comparison.\n\ncreateToken('FULLPLAIN', `v?${src[t.MAINVERSION]\n}${src[t.PRERELEASE]}?${\n src[t.BUILD]}?`)\n\ncreateToken('FULL', `^${src[t.FULLPLAIN]}$`)\n\n// like full, but allows v1.2.3 and =1.2.3, which people do sometimes.\n// also, 1.0.0alpha1 (prerelease without the hyphen) which is pretty\n// common in the npm registry.\ncreateToken('LOOSEPLAIN', `[v=\\\\s]*${src[t.MAINVERSIONLOOSE]\n}${src[t.PRERELEASELOOSE]}?${\n src[t.BUILD]}?`)\n\ncreateToken('LOOSE', `^${src[t.LOOSEPLAIN]}$`)\n\ncreateToken('GTLT', '((?:<|>)?=?)')\n\n// Something like \"2.*\" or \"1.2.x\".\n// Note that \"x.x\" is a valid xRange identifer, meaning \"any version\"\n// Only the first item is strictly required.\ncreateToken('XRANGEIDENTIFIERLOOSE', `${src[t.NUMERICIDENTIFIERLOOSE]}|x|X|\\\\*`)\ncreateToken('XRANGEIDENTIFIER', `${src[t.NUMERICIDENTIFIER]}|x|X|\\\\*`)\n\ncreateToken('XRANGEPLAIN', `[v=\\\\s]*(${src[t.XRANGEIDENTIFIER]})` +\n `(?:\\\\.(${src[t.XRANGEIDENTIFIER]})` +\n `(?:\\\\.(${src[t.XRANGEIDENTIFIER]})` +\n `(?:${src[t.PRERELEASE]})?${\n src[t.BUILD]}?` +\n `)?)?`)\n\ncreateToken('XRANGEPLAINLOOSE', `[v=\\\\s]*(${src[t.XRANGEIDENTIFIERLOOSE]})` +\n `(?:\\\\.(${src[t.XRANGEIDENTIFIERLOOSE]})` +\n `(?:\\\\.(${src[t.XRANGEIDENTIFIERLOOSE]})` +\n `(?:${src[t.PRERELEASELOOSE]})?${\n src[t.BUILD]}?` +\n `)?)?`)\n\ncreateToken('XRANGE', `^${src[t.GTLT]}\\\\s*${src[t.XRANGEPLAIN]}$`)\ncreateToken('XRANGELOOSE', `^${src[t.GTLT]}\\\\s*${src[t.XRANGEPLAINLOOSE]}$`)\n\n// Coercion.\n// Extract anything that could conceivably be a part of a valid semver\ncreateToken('COERCE', `${'(^|[^\\\\d])' +\n '(\\\\d{1,'}${MAX_SAFE_COMPONENT_LENGTH}})` +\n `(?:\\\\.(\\\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?` +\n `(?:\\\\.(\\\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?` +\n `(?:$|[^\\\\d])`)\ncreateToken('COERCERTL', src[t.COERCE], true)\n\n// Tilde ranges.\n// Meaning is \"reasonably at or greater than\"\ncreateToken('LONETILDE', '(?:~>?)')\n\ncreateToken('TILDETRIM', `(\\\\s*)${src[t.LONETILDE]}\\\\s+`, true)\nexports.tildeTrimReplace = '$1~'\n\ncreateToken('TILDE', `^${src[t.LONETILDE]}${src[t.XRANGEPLAIN]}$`)\ncreateToken('TILDELOOSE', `^${src[t.LONETILDE]}${src[t.XRANGEPLAINLOOSE]}$`)\n\n// Caret ranges.\n// Meaning is \"at least and backwards compatible with\"\ncreateToken('LONECARET', '(?:\\\\^)')\n\ncreateToken('CARETTRIM', `(\\\\s*)${src[t.LONECARET]}\\\\s+`, true)\nexports.caretTrimReplace = '$1^'\n\ncreateToken('CARET', `^${src[t.LONECARET]}${src[t.XRANGEPLAIN]}$`)\ncreateToken('CARETLOOSE', `^${src[t.LONECARET]}${src[t.XRANGEPLAINLOOSE]}$`)\n\n// A simple gt/lt/eq thing, or just \"\" to indicate \"any version\"\ncreateToken('COMPARATORLOOSE', `^${src[t.GTLT]}\\\\s*(${src[t.LOOSEPLAIN]})$|^$`)\ncreateToken('COMPARATOR', `^${src[t.GTLT]}\\\\s*(${src[t.FULLPLAIN]})$|^$`)\n\n// An expression to strip any whitespace between the gtlt and the thing\n// it modifies, so that `> 1.2.3` ==> `>1.2.3`\ncreateToken('COMPARATORTRIM', `(\\\\s*)${src[t.GTLT]\n}\\\\s*(${src[t.LOOSEPLAIN]}|${src[t.XRANGEPLAIN]})`, true)\nexports.comparatorTrimReplace = '$1$2$3'\n\n// Something like `1.2.3 - 1.2.4`\n// Note that these all use the loose form, because they'll be\n// checked against either the strict or loose comparator form\n// later.\ncreateToken('HYPHENRANGE', `^\\\\s*(${src[t.XRANGEPLAIN]})` +\n `\\\\s+-\\\\s+` +\n `(${src[t.XRANGEPLAIN]})` +\n `\\\\s*$`)\n\ncreateToken('HYPHENRANGELOOSE', `^\\\\s*(${src[t.XRANGEPLAINLOOSE]})` +\n `\\\\s+-\\\\s+` +\n `(${src[t.XRANGEPLAINLOOSE]})` +\n `\\\\s*$`)\n\n// Star ranges basically just allow anything at all.\ncreateToken('STAR', '(<|>)?=?\\\\s*\\\\*')\n// >=0.0.0 is like a star\ncreateToken('GTE0', '^\\\\s*>=\\\\s*0\\\\.0\\\\.0\\\\s*$')\ncreateToken('GTE0PRE', '^\\\\s*>=\\\\s*0\\\\.0\\\\.0-0\\\\s*$')\n", "// parse out just the options we care about so we always get a consistent\n// obj with keys in a consistent order.\nconst opts = ['includePrerelease', 'loose', 'rtl']\nconst parseOptions = options =>\n !options ? {}\n : typeof options !== 'object' ? { loose: true }\n : opts.filter(k => options[k]).reduce((o, k) => {\n o[k] = true\n return o\n }, {})\nmodule.exports = parseOptions\n", "const numeric = /^[0-9]+$/\nconst compareIdentifiers = (a, b) => {\n const anum = numeric.test(a)\n const bnum = numeric.test(b)\n\n if (anum && bnum) {\n a = +a\n b = +b\n }\n\n return a === b ? 0\n : (anum && !bnum) ? -1\n : (bnum && !anum) ? 1\n : a < b ? -1\n : 1\n}\n\nconst rcompareIdentifiers = (a, b) => compareIdentifiers(b, a)\n\nmodule.exports = {\n compareIdentifiers,\n rcompareIdentifiers,\n}\n", "const debug = require('../internal/debug')\nconst { MAX_LENGTH, MAX_SAFE_INTEGER } = require('../internal/constants')\nconst { re, t } = require('../internal/re')\n\nconst parseOptions = require('../internal/parse-options')\nconst { compareIdentifiers } = require('../internal/identifiers')\nclass SemVer {\n constructor (version, options) {\n options = parseOptions(options)\n\n if (version instanceof SemVer) {\n if (version.loose === !!options.loose &&\n version.includePrerelease === !!options.includePrerelease) {\n return version\n } else {\n version = version.version\n }\n } else if (typeof version !== 'string') {\n throw new TypeError(`Invalid Version: ${version}`)\n }\n\n if (version.length > MAX_LENGTH) {\n throw new TypeError(\n `version is longer than ${MAX_LENGTH} characters`\n )\n }\n\n debug('SemVer', version, options)\n this.options = options\n this.loose = !!options.loose\n // this isn't actually relevant for versions, but keep it so that we\n // don't run into trouble passing this.options around.\n this.includePrerelease = !!options.includePrerelease\n\n const m = version.trim().match(options.loose ? re[t.LOOSE] : re[t.FULL])\n\n if (!m) {\n throw new TypeError(`Invalid Version: ${version}`)\n }\n\n this.raw = version\n\n // these are actually numbers\n this.major = +m[1]\n this.minor = +m[2]\n this.patch = +m[3]\n\n if (this.major > MAX_SAFE_INTEGER || this.major < 0) {\n throw new TypeError('Invalid major version')\n }\n\n if (this.minor > MAX_SAFE_INTEGER || this.minor < 0) {\n throw new TypeError('Invalid minor version')\n }\n\n if (this.patch > MAX_SAFE_INTEGER || this.patch < 0) {\n throw new TypeError('Invalid patch version')\n }\n\n // numberify any prerelease numeric ids\n if (!m[4]) {\n this.prerelease = []\n } else {\n this.prerelease = m[4].split('.').map((id) => {\n if (/^[0-9]+$/.test(id)) {\n const num = +id\n if (num >= 0 && num < MAX_SAFE_INTEGER) {\n return num\n }\n }\n return id\n })\n }\n\n this.build = m[5] ? m[5].split('.') : []\n this.format()\n }\n\n format () {\n this.version = `${this.major}.${this.minor}.${this.patch}`\n if (this.prerelease.length) {\n this.version += `-${this.prerelease.join('.')}`\n }\n return this.version\n }\n\n toString () {\n return this.version\n }\n\n compare (other) {\n debug('SemVer.compare', this.version, this.options, other)\n if (!(other instanceof SemVer)) {\n if (typeof other === 'string' && other === this.version) {\n return 0\n }\n other = new SemVer(other, this.options)\n }\n\n if (other.version === this.version) {\n return 0\n }\n\n return this.compareMain(other) || this.comparePre(other)\n }\n\n compareMain (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n return (\n compareIdentifiers(this.major, other.major) ||\n compareIdentifiers(this.minor, other.minor) ||\n compareIdentifiers(this.patch, other.patch)\n )\n }\n\n comparePre (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n // NOT having a prerelease is > having one\n if (this.prerelease.length && !other.prerelease.length) {\n return -1\n } else if (!this.prerelease.length && other.prerelease.length) {\n return 1\n } else if (!this.prerelease.length && !other.prerelease.length) {\n return 0\n }\n\n let i = 0\n do {\n const a = this.prerelease[i]\n const b = other.prerelease[i]\n debug('prerelease compare', i, a, b)\n if (a === undefined && b === undefined) {\n return 0\n } else if (b === undefined) {\n return 1\n } else if (a === undefined) {\n return -1\n } else if (a === b) {\n continue\n } else {\n return compareIdentifiers(a, b)\n }\n } while (++i)\n }\n\n compareBuild (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n let i = 0\n do {\n const a = this.build[i]\n const b = other.build[i]\n debug('prerelease compare', i, a, b)\n if (a === undefined && b === undefined) {\n return 0\n } else if (b === undefined) {\n return 1\n } else if (a === undefined) {\n return -1\n } else if (a === b) {\n continue\n } else {\n return compareIdentifiers(a, b)\n }\n } while (++i)\n }\n\n // preminor will bump the version up to the next minor release, and immediately\n // down to pre-release. premajor and prepatch work the same way.\n inc (release, identifier) {\n switch (release) {\n case 'premajor':\n this.prerelease.length = 0\n this.patch = 0\n this.minor = 0\n this.major++\n this.inc('pre', identifier)\n break\n case 'preminor':\n this.prerelease.length = 0\n this.patch = 0\n this.minor++\n this.inc('pre', identifier)\n break\n case 'prepatch':\n // If this is already a prerelease, it will bump to the next version\n // drop any prereleases that might already exist, since they are not\n // relevant at this point.\n this.prerelease.length = 0\n this.inc('patch', identifier)\n this.inc('pre', identifier)\n break\n // If the input is a non-prerelease version, this acts the same as\n // prepatch.\n case 'prerelease':\n if (this.prerelease.length === 0) {\n this.inc('patch', identifier)\n }\n this.inc('pre', identifier)\n break\n\n case 'major':\n // If this is a pre-major version, bump up to the same major version.\n // Otherwise increment major.\n // 1.0.0-5 bumps to 1.0.0\n // 1.1.0 bumps to 2.0.0\n if (\n this.minor !== 0 ||\n this.patch !== 0 ||\n this.prerelease.length === 0\n ) {\n this.major++\n }\n this.minor = 0\n this.patch = 0\n this.prerelease = []\n break\n case 'minor':\n // If this is a pre-minor version, bump up to the same minor version.\n // Otherwise increment minor.\n // 1.2.0-5 bumps to 1.2.0\n // 1.2.1 bumps to 1.3.0\n if (this.patch !== 0 || this.prerelease.length === 0) {\n this.minor++\n }\n this.patch = 0\n this.prerelease = []\n break\n case 'patch':\n // If this is not a pre-release version, it will increment the patch.\n // If it is a pre-release it will bump up to the same patch version.\n // 1.2.0-5 patches to 1.2.0\n // 1.2.0 patches to 1.2.1\n if (this.prerelease.length === 0) {\n this.patch++\n }\n this.prerelease = []\n break\n // This probably shouldn't be used publicly.\n // 1.0.0 'pre' would become 1.0.0-0 which is the wrong direction.\n case 'pre':\n if (this.prerelease.length === 0) {\n this.prerelease = [0]\n } else {\n let i = this.prerelease.length\n while (--i >= 0) {\n if (typeof this.prerelease[i] === 'number') {\n this.prerelease[i]++\n i = -2\n }\n }\n if (i === -1) {\n // didn't increment anything\n this.prerelease.push(0)\n }\n }\n if (identifier) {\n // 1.2.0-beta.1 bumps to 1.2.0-beta.2,\n // 1.2.0-beta.fooblz or 1.2.0-beta bumps to 1.2.0-beta.0\n if (compareIdentifiers(this.prerelease[0], identifier) === 0) {\n if (isNaN(this.prerelease[1])) {\n this.prerelease = [identifier, 0]\n }\n } else {\n this.prerelease = [identifier, 0]\n }\n }\n break\n\n default:\n throw new Error(`invalid increment argument: ${release}`)\n }\n this.format()\n this.raw = this.version\n return this\n }\n}\n\nmodule.exports = SemVer\n", "const { MAX_LENGTH } = require('../internal/constants')\nconst { re, t } = require('../internal/re')\nconst SemVer = require('../classes/semver')\n\nconst parseOptions = require('../internal/parse-options')\nconst parse = (version, options) => {\n options = parseOptions(options)\n\n if (version instanceof SemVer) {\n return version\n }\n\n if (typeof version !== 'string') {\n return null\n }\n\n if (version.length > MAX_LENGTH) {\n return null\n }\n\n const r = options.loose ? re[t.LOOSE] : re[t.FULL]\n if (!r.test(version)) {\n return null\n }\n\n try {\n return new SemVer(version, options)\n } catch (er) {\n return null\n }\n}\n\nmodule.exports = parse\n", "const parse = require('./parse')\nconst valid = (version, options) => {\n const v = parse(version, options)\n return v ? v.version : null\n}\nmodule.exports = valid\n", "const parse = require('./parse')\nconst clean = (version, options) => {\n const s = parse(version.trim().replace(/^[=v]+/, ''), options)\n return s ? s.version : null\n}\nmodule.exports = clean\n", "const SemVer = require('../classes/semver')\n\nconst inc = (version, release, options, identifier) => {\n if (typeof (options) === 'string') {\n identifier = options\n options = undefined\n }\n\n try {\n return new SemVer(\n version instanceof SemVer ? version.version : version,\n options\n ).inc(release, identifier).version\n } catch (er) {\n return null\n }\n}\nmodule.exports = inc\n", "const SemVer = require('../classes/semver')\nconst compare = (a, b, loose) =>\n new SemVer(a, loose).compare(new SemVer(b, loose))\n\nmodule.exports = compare\n", "const compare = require('./compare')\nconst eq = (a, b, loose) => compare(a, b, loose) === 0\nmodule.exports = eq\n", "const parse = require('./parse')\nconst eq = require('./eq')\n\nconst diff = (version1, version2) => {\n if (eq(version1, version2)) {\n return null\n } else {\n const v1 = parse(version1)\n const v2 = parse(version2)\n const hasPre = v1.prerelease.length || v2.prerelease.length\n const prefix = hasPre ? 'pre' : ''\n const defaultResult = hasPre ? 'prerelease' : ''\n for (const key in v1) {\n if (key === 'major' || key === 'minor' || key === 'patch') {\n if (v1[key] !== v2[key]) {\n return prefix + key\n }\n }\n }\n return defaultResult // may be undefined\n }\n}\nmodule.exports = diff\n", "const SemVer = require('../classes/semver')\nconst major = (a, loose) => new SemVer(a, loose).major\nmodule.exports = major\n", "const SemVer = require('../classes/semver')\nconst minor = (a, loose) => new SemVer(a, loose).minor\nmodule.exports = minor\n", "const SemVer = require('../classes/semver')\nconst patch = (a, loose) => new SemVer(a, loose).patch\nmodule.exports = patch\n", "const parse = require('./parse')\nconst prerelease = (version, options) => {\n const parsed = parse(version, options)\n return (parsed && parsed.prerelease.length) ? parsed.prerelease : null\n}\nmodule.exports = prerelease\n", "const compare = require('./compare')\nconst rcompare = (a, b, loose) => compare(b, a, loose)\nmodule.exports = rcompare\n", "const compare = require('./compare')\nconst compareLoose = (a, b) => compare(a, b, true)\nmodule.exports = compareLoose\n", "const SemVer = require('../classes/semver')\nconst compareBuild = (a, b, loose) => {\n const versionA = new SemVer(a, loose)\n const versionB = new SemVer(b, loose)\n return versionA.compare(versionB) || versionA.compareBuild(versionB)\n}\nmodule.exports = compareBuild\n", "const compareBuild = require('./compare-build')\nconst sort = (list, loose) => list.sort((a, b) => compareBuild(a, b, loose))\nmodule.exports = sort\n", "const compareBuild = require('./compare-build')\nconst rsort = (list, loose) => list.sort((a, b) => compareBuild(b, a, loose))\nmodule.exports = rsort\n", "const compare = require('./compare')\nconst gt = (a, b, loose) => compare(a, b, loose) > 0\nmodule.exports = gt\n", "const compare = require('./compare')\nconst lt = (a, b, loose) => compare(a, b, loose) < 0\nmodule.exports = lt\n", "const compare = require('./compare')\nconst neq = (a, b, loose) => compare(a, b, loose) !== 0\nmodule.exports = neq\n", "const compare = require('./compare')\nconst gte = (a, b, loose) => compare(a, b, loose) >= 0\nmodule.exports = gte\n", "const compare = require('./compare')\nconst lte = (a, b, loose) => compare(a, b, loose) <= 0\nmodule.exports = lte\n", "const eq = require('./eq')\nconst neq = require('./neq')\nconst gt = require('./gt')\nconst gte = require('./gte')\nconst lt = require('./lt')\nconst lte = require('./lte')\n\nconst cmp = (a, op, b, loose) => {\n switch (op) {\n case '===':\n if (typeof a === 'object') {\n a = a.version\n }\n if (typeof b === 'object') {\n b = b.version\n }\n return a === b\n\n case '!==':\n if (typeof a === 'object') {\n a = a.version\n }\n if (typeof b === 'object') {\n b = b.version\n }\n return a !== b\n\n case '':\n case '=':\n case '==':\n return eq(a, b, loose)\n\n case '!=':\n return neq(a, b, loose)\n\n case '>':\n return gt(a, b, loose)\n\n case '>=':\n return gte(a, b, loose)\n\n case '<':\n return lt(a, b, loose)\n\n case '<=':\n return lte(a, b, loose)\n\n default:\n throw new TypeError(`Invalid operator: ${op}`)\n }\n}\nmodule.exports = cmp\n", "const SemVer = require('../classes/semver')\nconst parse = require('./parse')\nconst { re, t } = require('../internal/re')\n\nconst coerce = (version, options) => {\n if (version instanceof SemVer) {\n return version\n }\n\n if (typeof version === 'number') {\n version = String(version)\n }\n\n if (typeof version !== 'string') {\n return null\n }\n\n options = options || {}\n\n let match = null\n if (!options.rtl) {\n match = version.match(re[t.COERCE])\n } else {\n // Find the right-most coercible string that does not share\n // a terminus with a more left-ward coercible string.\n // Eg, '1.2.3.4' wants to coerce '2.3.4', not '3.4' or '4'\n //\n // Walk through the string checking with a /g regexp\n // Manually set the index so as to pick up overlapping matches.\n // Stop when we get a match that ends at the string end, since no\n // coercible string can be more right-ward without the same terminus.\n let next\n while ((next = re[t.COERCERTL].exec(version)) &&\n (!match || match.index + match[0].length !== version.length)\n ) {\n if (!match ||\n next.index + next[0].length !== match.index + match[0].length) {\n match = next\n }\n re[t.COERCERTL].lastIndex = next.index + next[1].length + next[2].length\n }\n // leave it in a clean state\n re[t.COERCERTL].lastIndex = -1\n }\n\n if (match === null) {\n return null\n }\n\n return parse(`${match[2]}.${match[3] || '0'}.${match[4] || '0'}`, options)\n}\nmodule.exports = coerce\n", "'use strict'\nmodule.exports = function (Yallist) {\n Yallist.prototype[Symbol.iterator] = function* () {\n for (let walker = this.head; walker; walker = walker.next) {\n yield walker.value\n }\n }\n}\n", "'use strict'\nmodule.exports = Yallist\n\nYallist.Node = Node\nYallist.create = Yallist\n\nfunction Yallist (list) {\n var self = this\n if (!(self instanceof Yallist)) {\n self = new Yallist()\n }\n\n self.tail = null\n self.head = null\n self.length = 0\n\n if (list && typeof list.forEach === 'function') {\n list.forEach(function (item) {\n self.push(item)\n })\n } else if (arguments.length > 0) {\n for (var i = 0, l = arguments.length; i < l; i++) {\n self.push(arguments[i])\n }\n }\n\n return self\n}\n\nYallist.prototype.removeNode = function (node) {\n if (node.list !== this) {\n throw new Error('removing node which does not belong to this list')\n }\n\n var next = node.next\n var prev = node.prev\n\n if (next) {\n next.prev = prev\n }\n\n if (prev) {\n prev.next = next\n }\n\n if (node === this.head) {\n this.head = next\n }\n if (node === this.tail) {\n this.tail = prev\n }\n\n node.list.length--\n node.next = null\n node.prev = null\n node.list = null\n\n return next\n}\n\nYallist.prototype.unshiftNode = function (node) {\n if (node === this.head) {\n return\n }\n\n if (node.list) {\n node.list.removeNode(node)\n }\n\n var head = this.head\n node.list = this\n node.next = head\n if (head) {\n head.prev = node\n }\n\n this.head = node\n if (!this.tail) {\n this.tail = node\n }\n this.length++\n}\n\nYallist.prototype.pushNode = function (node) {\n if (node === this.tail) {\n return\n }\n\n if (node.list) {\n node.list.removeNode(node)\n }\n\n var tail = this.tail\n node.list = this\n node.prev = tail\n if (tail) {\n tail.next = node\n }\n\n this.tail = node\n if (!this.head) {\n this.head = node\n }\n this.length++\n}\n\nYallist.prototype.push = function () {\n for (var i = 0, l = arguments.length; i < l; i++) {\n push(this, arguments[i])\n }\n return this.length\n}\n\nYallist.prototype.unshift = function () {\n for (var i = 0, l = arguments.length; i < l; i++) {\n unshift(this, arguments[i])\n }\n return this.length\n}\n\nYallist.prototype.pop = function () {\n if (!this.tail) {\n return undefined\n }\n\n var res = this.tail.value\n this.tail = this.tail.prev\n if (this.tail) {\n this.tail.next = null\n } else {\n this.head = null\n }\n this.length--\n return res\n}\n\nYallist.prototype.shift = function () {\n if (!this.head) {\n return undefined\n }\n\n var res = this.head.value\n this.head = this.head.next\n if (this.head) {\n this.head.prev = null\n } else {\n this.tail = null\n }\n this.length--\n return res\n}\n\nYallist.prototype.forEach = function (fn, thisp) {\n thisp = thisp || this\n for (var walker = this.head, i = 0; walker !== null; i++) {\n fn.call(thisp, walker.value, i, this)\n walker = walker.next\n }\n}\n\nYallist.prototype.forEachReverse = function (fn, thisp) {\n thisp = thisp || this\n for (var walker = this.tail, i = this.length - 1; walker !== null; i--) {\n fn.call(thisp, walker.value, i, this)\n walker = walker.prev\n }\n}\n\nYallist.prototype.get = function (n) {\n for (var i = 0, walker = this.head; walker !== null && i < n; i++) {\n // abort out of the list early if we hit a cycle\n walker = walker.next\n }\n if (i === n && walker !== null) {\n return walker.value\n }\n}\n\nYallist.prototype.getReverse = function (n) {\n for (var i = 0, walker = this.tail; walker !== null && i < n; i++) {\n // abort out of the list early if we hit a cycle\n walker = walker.prev\n }\n if (i === n && walker !== null) {\n return walker.value\n }\n}\n\nYallist.prototype.map = function (fn, thisp) {\n thisp = thisp || this\n var res = new Yallist()\n for (var walker = this.head; walker !== null;) {\n res.push(fn.call(thisp, walker.value, this))\n walker = walker.next\n }\n return res\n}\n\nYallist.prototype.mapReverse = function (fn, thisp) {\n thisp = thisp || this\n var res = new Yallist()\n for (var walker = this.tail; walker !== null;) {\n res.push(fn.call(thisp, walker.value, this))\n walker = walker.prev\n }\n return res\n}\n\nYallist.prototype.reduce = function (fn, initial) {\n var acc\n var walker = this.head\n if (arguments.length > 1) {\n acc = initial\n } else if (this.head) {\n walker = this.head.next\n acc = this.head.value\n } else {\n throw new TypeError('Reduce of empty list with no initial value')\n }\n\n for (var i = 0; walker !== null; i++) {\n acc = fn(acc, walker.value, i)\n walker = walker.next\n }\n\n return acc\n}\n\nYallist.prototype.reduceReverse = function (fn, initial) {\n var acc\n var walker = this.tail\n if (arguments.length > 1) {\n acc = initial\n } else if (this.tail) {\n walker = this.tail.prev\n acc = this.tail.value\n } else {\n throw new TypeError('Reduce of empty list with no initial value')\n }\n\n for (var i = this.length - 1; walker !== null; i--) {\n acc = fn(acc, walker.value, i)\n walker = walker.prev\n }\n\n return acc\n}\n\nYallist.prototype.toArray = function () {\n var arr = new Array(this.length)\n for (var i = 0, walker = this.head; walker !== null; i++) {\n arr[i] = walker.value\n walker = walker.next\n }\n return arr\n}\n\nYallist.prototype.toArrayReverse = function () {\n var arr = new Array(this.length)\n for (var i = 0, walker = this.tail; walker !== null; i++) {\n arr[i] = walker.value\n walker = walker.prev\n }\n return arr\n}\n\nYallist.prototype.slice = function (from, to) {\n to = to || this.length\n if (to < 0) {\n to += this.length\n }\n from = from || 0\n if (from < 0) {\n from += this.length\n }\n var ret = new Yallist()\n if (to < from || to < 0) {\n return ret\n }\n if (from < 0) {\n from = 0\n }\n if (to > this.length) {\n to = this.length\n }\n for (var i = 0, walker = this.head; walker !== null && i < from; i++) {\n walker = walker.next\n }\n for (; walker !== null && i < to; i++, walker = walker.next) {\n ret.push(walker.value)\n }\n return ret\n}\n\nYallist.prototype.sliceReverse = function (from, to) {\n to = to || this.length\n if (to < 0) {\n to += this.length\n }\n from = from || 0\n if (from < 0) {\n from += this.length\n }\n var ret = new Yallist()\n if (to < from || to < 0) {\n return ret\n }\n if (from < 0) {\n from = 0\n }\n if (to > this.length) {\n to = this.length\n }\n for (var i = this.length, walker = this.tail; walker !== null && i > to; i--) {\n walker = walker.prev\n }\n for (; walker !== null && i > from; i--, walker = walker.prev) {\n ret.push(walker.value)\n }\n return ret\n}\n\nYallist.prototype.splice = function (start, deleteCount, ...nodes) {\n if (start > this.length) {\n start = this.length - 1\n }\n if (start < 0) {\n start = this.length + start;\n }\n\n for (var i = 0, walker = this.head; walker !== null && i < start; i++) {\n walker = walker.next\n }\n\n var ret = []\n for (var i = 0; walker && i < deleteCount; i++) {\n ret.push(walker.value)\n walker = this.removeNode(walker)\n }\n if (walker === null) {\n walker = this.tail\n }\n\n if (walker !== this.head && walker !== this.tail) {\n walker = walker.prev\n }\n\n for (var i = 0; i < nodes.length; i++) {\n walker = insert(this, walker, nodes[i])\n }\n return ret;\n}\n\nYallist.prototype.reverse = function () {\n var head = this.head\n var tail = this.tail\n for (var walker = head; walker !== null; walker = walker.prev) {\n var p = walker.prev\n walker.prev = walker.next\n walker.next = p\n }\n this.head = tail\n this.tail = head\n return this\n}\n\nfunction insert (self, node, value) {\n var inserted = node === self.head ?\n new Node(value, null, node, self) :\n new Node(value, node, node.next, self)\n\n if (inserted.next === null) {\n self.tail = inserted\n }\n if (inserted.prev === null) {\n self.head = inserted\n }\n\n self.length++\n\n return inserted\n}\n\nfunction push (self, item) {\n self.tail = new Node(item, self.tail, null, self)\n if (!self.head) {\n self.head = self.tail\n }\n self.length++\n}\n\nfunction unshift (self, item) {\n self.head = new Node(item, null, self.head, self)\n if (!self.tail) {\n self.tail = self.head\n }\n self.length++\n}\n\nfunction Node (value, prev, next, list) {\n if (!(this instanceof Node)) {\n return new Node(value, prev, next, list)\n }\n\n this.list = list\n this.value = value\n\n if (prev) {\n prev.next = this\n this.prev = prev\n } else {\n this.prev = null\n }\n\n if (next) {\n next.prev = this\n this.next = next\n } else {\n this.next = null\n }\n}\n\ntry {\n // add if support for Symbol.iterator is present\n require('./iterator.js')(Yallist)\n} catch (er) {}\n", "'use strict'\n\n// A linked list to keep track of recently-used-ness\nconst Yallist = require('yallist')\n\nconst MAX = Symbol('max')\nconst LENGTH = Symbol('length')\nconst LENGTH_CALCULATOR = Symbol('lengthCalculator')\nconst ALLOW_STALE = Symbol('allowStale')\nconst MAX_AGE = Symbol('maxAge')\nconst DISPOSE = Symbol('dispose')\nconst NO_DISPOSE_ON_SET = Symbol('noDisposeOnSet')\nconst LRU_LIST = Symbol('lruList')\nconst CACHE = Symbol('cache')\nconst UPDATE_AGE_ON_GET = Symbol('updateAgeOnGet')\n\nconst naiveLength = () => 1\n\n// lruList is a yallist where the head is the youngest\n// item, and the tail is the oldest. the list contains the Hit\n// objects as the entries.\n// Each Hit object has a reference to its Yallist.Node. This\n// never changes.\n//\n// cache is a Map (or PseudoMap) that matches the keys to\n// the Yallist.Node object.\nclass LRUCache {\n constructor (options) {\n if (typeof options === 'number')\n options = { max: options }\n\n if (!options)\n options = {}\n\n if (options.max && (typeof options.max !== 'number' || options.max < 0))\n throw new TypeError('max must be a non-negative number')\n // Kind of weird to have a default max of Infinity, but oh well.\n const max = this[MAX] = options.max || Infinity\n\n const lc = options.length || naiveLength\n this[LENGTH_CALCULATOR] = (typeof lc !== 'function') ? naiveLength : lc\n this[ALLOW_STALE] = options.stale || false\n if (options.maxAge && typeof options.maxAge !== 'number')\n throw new TypeError('maxAge must be a number')\n this[MAX_AGE] = options.maxAge || 0\n this[DISPOSE] = options.dispose\n this[NO_DISPOSE_ON_SET] = options.noDisposeOnSet || false\n this[UPDATE_AGE_ON_GET] = options.updateAgeOnGet || false\n this.reset()\n }\n\n // resize the cache when the max changes.\n set max (mL) {\n if (typeof mL !== 'number' || mL < 0)\n throw new TypeError('max must be a non-negative number')\n\n this[MAX] = mL || Infinity\n trim(this)\n }\n get max () {\n return this[MAX]\n }\n\n set allowStale (allowStale) {\n this[ALLOW_STALE] = !!allowStale\n }\n get allowStale () {\n return this[ALLOW_STALE]\n }\n\n set maxAge (mA) {\n if (typeof mA !== 'number')\n throw new TypeError('maxAge must be a non-negative number')\n\n this[MAX_AGE] = mA\n trim(this)\n }\n get maxAge () {\n return this[MAX_AGE]\n }\n\n // resize the cache when the lengthCalculator changes.\n set lengthCalculator (lC) {\n if (typeof lC !== 'function')\n lC = naiveLength\n\n if (lC !== this[LENGTH_CALCULATOR]) {\n this[LENGTH_CALCULATOR] = lC\n this[LENGTH] = 0\n this[LRU_LIST].forEach(hit => {\n hit.length = this[LENGTH_CALCULATOR](hit.value, hit.key)\n this[LENGTH] += hit.length\n })\n }\n trim(this)\n }\n get lengthCalculator () { return this[LENGTH_CALCULATOR] }\n\n get length () { return this[LENGTH] }\n get itemCount () { return this[LRU_LIST].length }\n\n rforEach (fn, thisp) {\n thisp = thisp || this\n for (let walker = this[LRU_LIST].tail; walker !== null;) {\n const prev = walker.prev\n forEachStep(this, fn, walker, thisp)\n walker = prev\n }\n }\n\n forEach (fn, thisp) {\n thisp = thisp || this\n for (let walker = this[LRU_LIST].head; walker !== null;) {\n const next = walker.next\n forEachStep(this, fn, walker, thisp)\n walker = next\n }\n }\n\n keys () {\n return this[LRU_LIST].toArray().map(k => k.key)\n }\n\n values () {\n return this[LRU_LIST].toArray().map(k => k.value)\n }\n\n reset () {\n if (this[DISPOSE] &&\n this[LRU_LIST] &&\n this[LRU_LIST].length) {\n this[LRU_LIST].forEach(hit => this[DISPOSE](hit.key, hit.value))\n }\n\n this[CACHE] = new Map() // hash of items by key\n this[LRU_LIST] = new Yallist() // list of items in order of use recency\n this[LENGTH] = 0 // length of items in the list\n }\n\n dump () {\n return this[LRU_LIST].map(hit =>\n isStale(this, hit) ? false : {\n k: hit.key,\n v: hit.value,\n e: hit.now + (hit.maxAge || 0)\n }).toArray().filter(h => h)\n }\n\n dumpLru () {\n return this[LRU_LIST]\n }\n\n set (key, value, maxAge) {\n maxAge = maxAge || this[MAX_AGE]\n\n if (maxAge && typeof maxAge !== 'number')\n throw new TypeError('maxAge must be a number')\n\n const now = maxAge ? Date.now() : 0\n const len = this[LENGTH_CALCULATOR](value, key)\n\n if (this[CACHE].has(key)) {\n if (len > this[MAX]) {\n del(this, this[CACHE].get(key))\n return false\n }\n\n const node = this[CACHE].get(key)\n const item = node.value\n\n // dispose of the old one before overwriting\n // split out into 2 ifs for better coverage tracking\n if (this[DISPOSE]) {\n if (!this[NO_DISPOSE_ON_SET])\n this[DISPOSE](key, item.value)\n }\n\n item.now = now\n item.maxAge = maxAge\n item.value = value\n this[LENGTH] += len - item.length\n item.length = len\n this.get(key)\n trim(this)\n return true\n }\n\n const hit = new Entry(key, value, len, now, maxAge)\n\n // oversized objects fall out of cache automatically.\n if (hit.length > this[MAX]) {\n if (this[DISPOSE])\n this[DISPOSE](key, value)\n\n return false\n }\n\n this[LENGTH] += hit.length\n this[LRU_LIST].unshift(hit)\n this[CACHE].set(key, this[LRU_LIST].head)\n trim(this)\n return true\n }\n\n has (key) {\n if (!this[CACHE].has(key)) return false\n const hit = this[CACHE].get(key).value\n return !isStale(this, hit)\n }\n\n get (key) {\n return get(this, key, true)\n }\n\n peek (key) {\n return get(this, key, false)\n }\n\n pop () {\n const node = this[LRU_LIST].tail\n if (!node)\n return null\n\n del(this, node)\n return node.value\n }\n\n del (key) {\n del(this, this[CACHE].get(key))\n }\n\n load (arr) {\n // reset the cache\n this.reset()\n\n const now = Date.now()\n // A previous serialized cache has the most recent items first\n for (let l = arr.length - 1; l >= 0; l--) {\n const hit = arr[l]\n const expiresAt = hit.e || 0\n if (expiresAt === 0)\n // the item was created without expiration in a non aged cache\n this.set(hit.k, hit.v)\n else {\n const maxAge = expiresAt - now\n // dont add already expired items\n if (maxAge > 0) {\n this.set(hit.k, hit.v, maxAge)\n }\n }\n }\n }\n\n prune () {\n this[CACHE].forEach((value, key) => get(this, key, false))\n }\n}\n\nconst get = (self, key, doUse) => {\n const node = self[CACHE].get(key)\n if (node) {\n const hit = node.value\n if (isStale(self, hit)) {\n del(self, node)\n if (!self[ALLOW_STALE])\n return undefined\n } else {\n if (doUse) {\n if (self[UPDATE_AGE_ON_GET])\n node.value.now = Date.now()\n self[LRU_LIST].unshiftNode(node)\n }\n }\n return hit.value\n }\n}\n\nconst isStale = (self, hit) => {\n if (!hit || (!hit.maxAge && !self[MAX_AGE]))\n return false\n\n const diff = Date.now() - hit.now\n return hit.maxAge ? diff > hit.maxAge\n : self[MAX_AGE] && (diff > self[MAX_AGE])\n}\n\nconst trim = self => {\n if (self[LENGTH] > self[MAX]) {\n for (let walker = self[LRU_LIST].tail;\n self[LENGTH] > self[MAX] && walker !== null;) {\n // We know that we're about to delete this one, and also\n // what the next least recently used key will be, so just\n // go ahead and set it now.\n const prev = walker.prev\n del(self, walker)\n walker = prev\n }\n }\n}\n\nconst del = (self, node) => {\n if (node) {\n const hit = node.value\n if (self[DISPOSE])\n self[DISPOSE](hit.key, hit.value)\n\n self[LENGTH] -= hit.length\n self[CACHE].delete(hit.key)\n self[LRU_LIST].removeNode(node)\n }\n}\n\nclass Entry {\n constructor (key, value, length, now, maxAge) {\n this.key = key\n this.value = value\n this.length = length\n this.now = now\n this.maxAge = maxAge || 0\n }\n}\n\nconst forEachStep = (self, fn, node, thisp) => {\n let hit = node.value\n if (isStale(self, hit)) {\n del(self, node)\n if (!self[ALLOW_STALE])\n hit = undefined\n }\n if (hit)\n fn.call(thisp, hit.value, hit.key, self)\n}\n\nmodule.exports = LRUCache\n", "// hoisted class for cyclic dependency\nclass Range {\n constructor (range, options) {\n options = parseOptions(options)\n\n if (range instanceof Range) {\n if (\n range.loose === !!options.loose &&\n range.includePrerelease === !!options.includePrerelease\n ) {\n return range\n } else {\n return new Range(range.raw, options)\n }\n }\n\n if (range instanceof Comparator) {\n // just put it in the set and return\n this.raw = range.value\n this.set = [[range]]\n this.format()\n return this\n }\n\n this.options = options\n this.loose = !!options.loose\n this.includePrerelease = !!options.includePrerelease\n\n // First, split based on boolean or ||\n this.raw = range\n this.set = range\n .split('||')\n // map the range to a 2d array of comparators\n .map(r => this.parseRange(r.trim()))\n // throw out any comparator lists that are empty\n // this generally means that it was not a valid range, which is allowed\n // in loose mode, but will still throw if the WHOLE range is invalid.\n .filter(c => c.length)\n\n if (!this.set.length) {\n throw new TypeError(`Invalid SemVer Range: ${range}`)\n }\n\n // if we have any that are not the null set, throw out null sets.\n if (this.set.length > 1) {\n // keep the first one, in case they're all null sets\n const first = this.set[0]\n this.set = this.set.filter(c => !isNullSet(c[0]))\n if (this.set.length === 0) {\n this.set = [first]\n } else if (this.set.length > 1) {\n // if we have any that are *, then the range is just *\n for (const c of this.set) {\n if (c.length === 1 && isAny(c[0])) {\n this.set = [c]\n break\n }\n }\n }\n }\n\n this.format()\n }\n\n format () {\n this.range = this.set\n .map((comps) => {\n return comps.join(' ').trim()\n })\n .join('||')\n .trim()\n return this.range\n }\n\n toString () {\n return this.range\n }\n\n parseRange (range) {\n range = range.trim()\n\n // memoize range parsing for performance.\n // this is a very hot path, and fully deterministic.\n const memoOpts = Object.keys(this.options).join(',')\n const memoKey = `parseRange:${memoOpts}:${range}`\n const cached = cache.get(memoKey)\n if (cached) {\n return cached\n }\n\n const loose = this.options.loose\n // `1.2.3 - 1.2.4` => `>=1.2.3 <=1.2.4`\n const hr = loose ? re[t.HYPHENRANGELOOSE] : re[t.HYPHENRANGE]\n range = range.replace(hr, hyphenReplace(this.options.includePrerelease))\n debug('hyphen replace', range)\n // `> 1.2.3 < 1.2.5` => `>1.2.3 <1.2.5`\n range = range.replace(re[t.COMPARATORTRIM], comparatorTrimReplace)\n debug('comparator trim', range)\n\n // `~ 1.2.3` => `~1.2.3`\n range = range.replace(re[t.TILDETRIM], tildeTrimReplace)\n\n // `^ 1.2.3` => `^1.2.3`\n range = range.replace(re[t.CARETTRIM], caretTrimReplace)\n\n // normalize spaces\n range = range.split(/\\s+/).join(' ')\n\n // At this point, the range is completely trimmed and\n // ready to be split into comparators.\n\n let rangeList = range\n .split(' ')\n .map(comp => parseComparator(comp, this.options))\n .join(' ')\n .split(/\\s+/)\n // >=0.0.0 is equivalent to *\n .map(comp => replaceGTE0(comp, this.options))\n\n if (loose) {\n // in loose mode, throw out any that are not valid comparators\n rangeList = rangeList.filter(comp => {\n debug('loose invalid filter', comp, this.options)\n return !!comp.match(re[t.COMPARATORLOOSE])\n })\n }\n debug('range list', rangeList)\n\n // if any comparators are the null set, then replace with JUST null set\n // if more than one comparator, remove any * comparators\n // also, don't include the same comparator more than once\n const rangeMap = new Map()\n const comparators = rangeList.map(comp => new Comparator(comp, this.options))\n for (const comp of comparators) {\n if (isNullSet(comp)) {\n return [comp]\n }\n rangeMap.set(comp.value, comp)\n }\n if (rangeMap.size > 1 && rangeMap.has('')) {\n rangeMap.delete('')\n }\n\n const result = [...rangeMap.values()]\n cache.set(memoKey, result)\n return result\n }\n\n intersects (range, options) {\n if (!(range instanceof Range)) {\n throw new TypeError('a Range is required')\n }\n\n return this.set.some((thisComparators) => {\n return (\n isSatisfiable(thisComparators, options) &&\n range.set.some((rangeComparators) => {\n return (\n isSatisfiable(rangeComparators, options) &&\n thisComparators.every((thisComparator) => {\n return rangeComparators.every((rangeComparator) => {\n return thisComparator.intersects(rangeComparator, options)\n })\n })\n )\n })\n )\n })\n }\n\n // if ANY of the sets match ALL of its comparators, then pass\n test (version) {\n if (!version) {\n return false\n }\n\n if (typeof version === 'string') {\n try {\n version = new SemVer(version, this.options)\n } catch (er) {\n return false\n }\n }\n\n for (let i = 0; i < this.set.length; i++) {\n if (testSet(this.set[i], version, this.options)) {\n return true\n }\n }\n return false\n }\n}\nmodule.exports = Range\n\nconst LRU = require('lru-cache')\nconst cache = new LRU({ max: 1000 })\n\nconst parseOptions = require('../internal/parse-options')\nconst Comparator = require('./comparator')\nconst debug = require('../internal/debug')\nconst SemVer = require('./semver')\nconst {\n re,\n t,\n comparatorTrimReplace,\n tildeTrimReplace,\n caretTrimReplace,\n} = require('../internal/re')\n\nconst isNullSet = c => c.value === '<0.0.0-0'\nconst isAny = c => c.value === ''\n\n// take a set of comparators and determine whether there\n// exists a version which can satisfy it\nconst isSatisfiable = (comparators, options) => {\n let result = true\n const remainingComparators = comparators.slice()\n let testComparator = remainingComparators.pop()\n\n while (result && remainingComparators.length) {\n result = remainingComparators.every((otherComparator) => {\n return testComparator.intersects(otherComparator, options)\n })\n\n testComparator = remainingComparators.pop()\n }\n\n return result\n}\n\n// comprised of xranges, tildes, stars, and gtlt's at this point.\n// already replaced the hyphen ranges\n// turn into a set of JUST comparators.\nconst parseComparator = (comp, options) => {\n debug('comp', comp, options)\n comp = replaceCarets(comp, options)\n debug('caret', comp)\n comp = replaceTildes(comp, options)\n debug('tildes', comp)\n comp = replaceXRanges(comp, options)\n debug('xrange', comp)\n comp = replaceStars(comp, options)\n debug('stars', comp)\n return comp\n}\n\nconst isX = id => !id || id.toLowerCase() === 'x' || id === '*'\n\n// ~, ~> --> * (any, kinda silly)\n// ~2, ~2.x, ~2.x.x, ~>2, ~>2.x ~>2.x.x --> >=2.0.0 <3.0.0-0\n// ~2.0, ~2.0.x, ~>2.0, ~>2.0.x --> >=2.0.0 <2.1.0-0\n// ~1.2, ~1.2.x, ~>1.2, ~>1.2.x --> >=1.2.0 <1.3.0-0\n// ~1.2.3, ~>1.2.3 --> >=1.2.3 <1.3.0-0\n// ~1.2.0, ~>1.2.0 --> >=1.2.0 <1.3.0-0\n// ~0.0.1 --> >=0.0.1 <0.1.0-0\nconst replaceTildes = (comp, options) =>\n comp.trim().split(/\\s+/).map((c) => {\n return replaceTilde(c, options)\n }).join(' ')\n\nconst replaceTilde = (comp, options) => {\n const r = options.loose ? re[t.TILDELOOSE] : re[t.TILDE]\n return comp.replace(r, (_, M, m, p, pr) => {\n debug('tilde', comp, _, M, m, p, pr)\n let ret\n\n if (isX(M)) {\n ret = ''\n } else if (isX(m)) {\n ret = `>=${M}.0.0 <${+M + 1}.0.0-0`\n } else if (isX(p)) {\n // ~1.2 == >=1.2.0 <1.3.0-0\n ret = `>=${M}.${m}.0 <${M}.${+m + 1}.0-0`\n } else if (pr) {\n debug('replaceTilde pr', pr)\n ret = `>=${M}.${m}.${p}-${pr\n } <${M}.${+m + 1}.0-0`\n } else {\n // ~1.2.3 == >=1.2.3 <1.3.0-0\n ret = `>=${M}.${m}.${p\n } <${M}.${+m + 1}.0-0`\n }\n\n debug('tilde return', ret)\n return ret\n })\n}\n\n// ^ --> * (any, kinda silly)\n// ^2, ^2.x, ^2.x.x --> >=2.0.0 <3.0.0-0\n// ^2.0, ^2.0.x --> >=2.0.0 <3.0.0-0\n// ^1.2, ^1.2.x --> >=1.2.0 <2.0.0-0\n// ^1.2.3 --> >=1.2.3 <2.0.0-0\n// ^1.2.0 --> >=1.2.0 <2.0.0-0\n// ^0.0.1 --> >=0.0.1 <0.0.2-0\n// ^0.1.0 --> >=0.1.0 <0.2.0-0\nconst replaceCarets = (comp, options) =>\n comp.trim().split(/\\s+/).map((c) => {\n return replaceCaret(c, options)\n }).join(' ')\n\nconst replaceCaret = (comp, options) => {\n debug('caret', comp, options)\n const r = options.loose ? re[t.CARETLOOSE] : re[t.CARET]\n const z = options.includePrerelease ? '-0' : ''\n return comp.replace(r, (_, M, m, p, pr) => {\n debug('caret', comp, _, M, m, p, pr)\n let ret\n\n if (isX(M)) {\n ret = ''\n } else if (isX(m)) {\n ret = `>=${M}.0.0${z} <${+M + 1}.0.0-0`\n } else if (isX(p)) {\n if (M === '0') {\n ret = `>=${M}.${m}.0${z} <${M}.${+m + 1}.0-0`\n } else {\n ret = `>=${M}.${m}.0${z} <${+M + 1}.0.0-0`\n }\n } else if (pr) {\n debug('replaceCaret pr', pr)\n if (M === '0') {\n if (m === '0') {\n ret = `>=${M}.${m}.${p}-${pr\n } <${M}.${m}.${+p + 1}-0`\n } else {\n ret = `>=${M}.${m}.${p}-${pr\n } <${M}.${+m + 1}.0-0`\n }\n } else {\n ret = `>=${M}.${m}.${p}-${pr\n } <${+M + 1}.0.0-0`\n }\n } else {\n debug('no pr')\n if (M === '0') {\n if (m === '0') {\n ret = `>=${M}.${m}.${p\n }${z} <${M}.${m}.${+p + 1}-0`\n } else {\n ret = `>=${M}.${m}.${p\n }${z} <${M}.${+m + 1}.0-0`\n }\n } else {\n ret = `>=${M}.${m}.${p\n } <${+M + 1}.0.0-0`\n }\n }\n\n debug('caret return', ret)\n return ret\n })\n}\n\nconst replaceXRanges = (comp, options) => {\n debug('replaceXRanges', comp, options)\n return comp.split(/\\s+/).map((c) => {\n return replaceXRange(c, options)\n }).join(' ')\n}\n\nconst replaceXRange = (comp, options) => {\n comp = comp.trim()\n const r = options.loose ? re[t.XRANGELOOSE] : re[t.XRANGE]\n return comp.replace(r, (ret, gtlt, M, m, p, pr) => {\n debug('xRange', comp, ret, gtlt, M, m, p, pr)\n const xM = isX(M)\n const xm = xM || isX(m)\n const xp = xm || isX(p)\n const anyX = xp\n\n if (gtlt === '=' && anyX) {\n gtlt = ''\n }\n\n // if we're including prereleases in the match, then we need\n // to fix this to -0, the lowest possible prerelease value\n pr = options.includePrerelease ? '-0' : ''\n\n if (xM) {\n if (gtlt === '>' || gtlt === '<') {\n // nothing is allowed\n ret = '<0.0.0-0'\n } else {\n // nothing is forbidden\n ret = '*'\n }\n } else if (gtlt && anyX) {\n // we know patch is an x, because we have any x at all.\n // replace X with 0\n if (xm) {\n m = 0\n }\n p = 0\n\n if (gtlt === '>') {\n // >1 => >=2.0.0\n // >1.2 => >=1.3.0\n gtlt = '>='\n if (xm) {\n M = +M + 1\n m = 0\n p = 0\n } else {\n m = +m + 1\n p = 0\n }\n } else if (gtlt === '<=') {\n // <=0.7.x is actually <0.8.0, since any 0.7.x should\n // pass. Similarly, <=7.x is actually <8.0.0, etc.\n gtlt = '<'\n if (xm) {\n M = +M + 1\n } else {\n m = +m + 1\n }\n }\n\n if (gtlt === '<') {\n pr = '-0'\n }\n\n ret = `${gtlt + M}.${m}.${p}${pr}`\n } else if (xm) {\n ret = `>=${M}.0.0${pr} <${+M + 1}.0.0-0`\n } else if (xp) {\n ret = `>=${M}.${m}.0${pr\n } <${M}.${+m + 1}.0-0`\n }\n\n debug('xRange return', ret)\n\n return ret\n })\n}\n\n// Because * is AND-ed with everything else in the comparator,\n// and '' means \"any version\", just remove the *s entirely.\nconst replaceStars = (comp, options) => {\n debug('replaceStars', comp, options)\n // Looseness is ignored here. star is always as loose as it gets!\n return comp.trim().replace(re[t.STAR], '')\n}\n\nconst replaceGTE0 = (comp, options) => {\n debug('replaceGTE0', comp, options)\n return comp.trim()\n .replace(re[options.includePrerelease ? t.GTE0PRE : t.GTE0], '')\n}\n\n// This function is passed to string.replace(re[t.HYPHENRANGE])\n// M, m, patch, prerelease, build\n// 1.2 - 3.4.5 => >=1.2.0 <=3.4.5\n// 1.2.3 - 3.4 => >=1.2.0 <3.5.0-0 Any 3.4.x will do\n// 1.2 - 3.4 => >=1.2.0 <3.5.0-0\nconst hyphenReplace = incPr => ($0,\n from, fM, fm, fp, fpr, fb,\n to, tM, tm, tp, tpr, tb) => {\n if (isX(fM)) {\n from = ''\n } else if (isX(fm)) {\n from = `>=${fM}.0.0${incPr ? '-0' : ''}`\n } else if (isX(fp)) {\n from = `>=${fM}.${fm}.0${incPr ? '-0' : ''}`\n } else if (fpr) {\n from = `>=${from}`\n } else {\n from = `>=${from}${incPr ? '-0' : ''}`\n }\n\n if (isX(tM)) {\n to = ''\n } else if (isX(tm)) {\n to = `<${+tM + 1}.0.0-0`\n } else if (isX(tp)) {\n to = `<${tM}.${+tm + 1}.0-0`\n } else if (tpr) {\n to = `<=${tM}.${tm}.${tp}-${tpr}`\n } else if (incPr) {\n to = `<${tM}.${tm}.${+tp + 1}-0`\n } else {\n to = `<=${to}`\n }\n\n return (`${from} ${to}`).trim()\n}\n\nconst testSet = (set, version, options) => {\n for (let i = 0; i < set.length; i++) {\n if (!set[i].test(version)) {\n return false\n }\n }\n\n if (version.prerelease.length && !options.includePrerelease) {\n // Find the set of versions that are allowed to have prereleases\n // For example, ^1.2.3-pr.1 desugars to >=1.2.3-pr.1 <2.0.0\n // That should allow `1.2.3-pr.2` to pass.\n // However, `1.2.4-alpha.notready` should NOT be allowed,\n // even though it's within the range set by the comparators.\n for (let i = 0; i < set.length; i++) {\n debug(set[i].semver)\n if (set[i].semver === Comparator.ANY) {\n continue\n }\n\n if (set[i].semver.prerelease.length > 0) {\n const allowed = set[i].semver\n if (allowed.major === version.major &&\n allowed.minor === version.minor &&\n allowed.patch === version.patch) {\n return true\n }\n }\n }\n\n // Version has a -pre, but it's not one of the ones we like.\n return false\n }\n\n return true\n}\n", "const ANY = Symbol('SemVer ANY')\n// hoisted class for cyclic dependency\nclass Comparator {\n static get ANY () {\n return ANY\n }\n\n constructor (comp, options) {\n options = parseOptions(options)\n\n if (comp instanceof Comparator) {\n if (comp.loose === !!options.loose) {\n return comp\n } else {\n comp = comp.value\n }\n }\n\n debug('comparator', comp, options)\n this.options = options\n this.loose = !!options.loose\n this.parse(comp)\n\n if (this.semver === ANY) {\n this.value = ''\n } else {\n this.value = this.operator + this.semver.version\n }\n\n debug('comp', this)\n }\n\n parse (comp) {\n const r = this.options.loose ? re[t.COMPARATORLOOSE] : re[t.COMPARATOR]\n const m = comp.match(r)\n\n if (!m) {\n throw new TypeError(`Invalid comparator: ${comp}`)\n }\n\n this.operator = m[1] !== undefined ? m[1] : ''\n if (this.operator === '=') {\n this.operator = ''\n }\n\n // if it literally is just '>' or '' then allow anything.\n if (!m[2]) {\n this.semver = ANY\n } else {\n this.semver = new SemVer(m[2], this.options.loose)\n }\n }\n\n toString () {\n return this.value\n }\n\n test (version) {\n debug('Comparator.test', version, this.options.loose)\n\n if (this.semver === ANY || version === ANY) {\n return true\n }\n\n if (typeof version === 'string') {\n try {\n version = new SemVer(version, this.options)\n } catch (er) {\n return false\n }\n }\n\n return cmp(version, this.operator, this.semver, this.options)\n }\n\n intersects (comp, options) {\n if (!(comp instanceof Comparator)) {\n throw new TypeError('a Comparator is required')\n }\n\n if (!options || typeof options !== 'object') {\n options = {\n loose: !!options,\n includePrerelease: false,\n }\n }\n\n if (this.operator === '') {\n if (this.value === '') {\n return true\n }\n return new Range(comp.value, options).test(this.value)\n } else if (comp.operator === '') {\n if (comp.value === '') {\n return true\n }\n return new Range(this.value, options).test(comp.semver)\n }\n\n const sameDirectionIncreasing =\n (this.operator === '>=' || this.operator === '>') &&\n (comp.operator === '>=' || comp.operator === '>')\n const sameDirectionDecreasing =\n (this.operator === '<=' || this.operator === '<') &&\n (comp.operator === '<=' || comp.operator === '<')\n const sameSemVer = this.semver.version === comp.semver.version\n const differentDirectionsInclusive =\n (this.operator === '>=' || this.operator === '<=') &&\n (comp.operator === '>=' || comp.operator === '<=')\n const oppositeDirectionsLessThan =\n cmp(this.semver, '<', comp.semver, options) &&\n (this.operator === '>=' || this.operator === '>') &&\n (comp.operator === '<=' || comp.operator === '<')\n const oppositeDirectionsGreaterThan =\n cmp(this.semver, '>', comp.semver, options) &&\n (this.operator === '<=' || this.operator === '<') &&\n (comp.operator === '>=' || comp.operator === '>')\n\n return (\n sameDirectionIncreasing ||\n sameDirectionDecreasing ||\n (sameSemVer && differentDirectionsInclusive) ||\n oppositeDirectionsLessThan ||\n oppositeDirectionsGreaterThan\n )\n }\n}\n\nmodule.exports = Comparator\n\nconst parseOptions = require('../internal/parse-options')\nconst { re, t } = require('../internal/re')\nconst cmp = require('../functions/cmp')\nconst debug = require('../internal/debug')\nconst SemVer = require('./semver')\nconst Range = require('./range')\n", "const Range = require('../classes/range')\nconst satisfies = (version, range, options) => {\n try {\n range = new Range(range, options)\n } catch (er) {\n return false\n }\n return range.test(version)\n}\nmodule.exports = satisfies\n", "const Range = require('../classes/range')\n\n// Mostly just for testing and legacy API reasons\nconst toComparators = (range, options) =>\n new Range(range, options).set\n .map(comp => comp.map(c => c.value).join(' ').trim().split(' '))\n\nmodule.exports = toComparators\n", "const SemVer = require('../classes/semver')\nconst Range = require('../classes/range')\n\nconst maxSatisfying = (versions, range, options) => {\n let max = null\n let maxSV = null\n let rangeObj = null\n try {\n rangeObj = new Range(range, options)\n } catch (er) {\n return null\n }\n versions.forEach((v) => {\n if (rangeObj.test(v)) {\n // satisfies(v, range, options)\n if (!max || maxSV.compare(v) === -1) {\n // compare(max, v, true)\n max = v\n maxSV = new SemVer(max, options)\n }\n }\n })\n return max\n}\nmodule.exports = maxSatisfying\n", "const SemVer = require('../classes/semver')\nconst Range = require('../classes/range')\nconst minSatisfying = (versions, range, options) => {\n let min = null\n let minSV = null\n let rangeObj = null\n try {\n rangeObj = new Range(range, options)\n } catch (er) {\n return null\n }\n versions.forEach((v) => {\n if (rangeObj.test(v)) {\n // satisfies(v, range, options)\n if (!min || minSV.compare(v) === 1) {\n // compare(min, v, true)\n min = v\n minSV = new SemVer(min, options)\n }\n }\n })\n return min\n}\nmodule.exports = minSatisfying\n", "const SemVer = require('../classes/semver')\nconst Range = require('../classes/range')\nconst gt = require('../functions/gt')\n\nconst minVersion = (range, loose) => {\n range = new Range(range, loose)\n\n let minver = new SemVer('0.0.0')\n if (range.test(minver)) {\n return minver\n }\n\n minver = new SemVer('0.0.0-0')\n if (range.test(minver)) {\n return minver\n }\n\n minver = null\n for (let i = 0; i < range.set.length; ++i) {\n const comparators = range.set[i]\n\n let setMin = null\n comparators.forEach((comparator) => {\n // Clone to avoid manipulating the comparator's semver object.\n const compver = new SemVer(comparator.semver.version)\n switch (comparator.operator) {\n case '>':\n if (compver.prerelease.length === 0) {\n compver.patch++\n } else {\n compver.prerelease.push(0)\n }\n compver.raw = compver.format()\n /* fallthrough */\n case '':\n case '>=':\n if (!setMin || gt(compver, setMin)) {\n setMin = compver\n }\n break\n case '<':\n case '<=':\n /* Ignore maximum versions */\n break\n /* istanbul ignore next */\n default:\n throw new Error(`Unexpected operation: ${comparator.operator}`)\n }\n })\n if (setMin && (!minver || gt(minver, setMin))) {\n minver = setMin\n }\n }\n\n if (minver && range.test(minver)) {\n return minver\n }\n\n return null\n}\nmodule.exports = minVersion\n", "const Range = require('../classes/range')\nconst validRange = (range, options) => {\n try {\n // Return '*' instead of '' so that truthiness works.\n // This will throw if it's invalid anyway\n return new Range(range, options).range || '*'\n } catch (er) {\n return null\n }\n}\nmodule.exports = validRange\n", "const SemVer = require('../classes/semver')\nconst Comparator = require('../classes/comparator')\nconst { ANY } = Comparator\nconst Range = require('../classes/range')\nconst satisfies = require('../functions/satisfies')\nconst gt = require('../functions/gt')\nconst lt = require('../functions/lt')\nconst lte = require('../functions/lte')\nconst gte = require('../functions/gte')\n\nconst outside = (version, range, hilo, options) => {\n version = new SemVer(version, options)\n range = new Range(range, options)\n\n let gtfn, ltefn, ltfn, comp, ecomp\n switch (hilo) {\n case '>':\n gtfn = gt\n ltefn = lte\n ltfn = lt\n comp = '>'\n ecomp = '>='\n break\n case '<':\n gtfn = lt\n ltefn = gte\n ltfn = gt\n comp = '<'\n ecomp = '<='\n break\n default:\n throw new TypeError('Must provide a hilo val of \"<\" or \">\"')\n }\n\n // If it satisfies the range it is not outside\n if (satisfies(version, range, options)) {\n return false\n }\n\n // From now on, variable terms are as if we're in \"gtr\" mode.\n // but note that everything is flipped for the \"ltr\" function.\n\n for (let i = 0; i < range.set.length; ++i) {\n const comparators = range.set[i]\n\n let high = null\n let low = null\n\n comparators.forEach((comparator) => {\n if (comparator.semver === ANY) {\n comparator = new Comparator('>=0.0.0')\n }\n high = high || comparator\n low = low || comparator\n if (gtfn(comparator.semver, high.semver, options)) {\n high = comparator\n } else if (ltfn(comparator.semver, low.semver, options)) {\n low = comparator\n }\n })\n\n // If the edge version comparator has a operator then our version\n // isn't outside it\n if (high.operator === comp || high.operator === ecomp) {\n return false\n }\n\n // If the lowest version comparator has an operator and our version\n // is less than it then it isn't higher than the range\n if ((!low.operator || low.operator === comp) &&\n ltefn(version, low.semver)) {\n return false\n } else if (low.operator === ecomp && ltfn(version, low.semver)) {\n return false\n }\n }\n return true\n}\n\nmodule.exports = outside\n", "// Determine if version is greater than all the versions possible in the range.\nconst outside = require('./outside')\nconst gtr = (version, range, options) => outside(version, range, '>', options)\nmodule.exports = gtr\n", "const outside = require('./outside')\n// Determine if version is less than all the versions possible in the range\nconst ltr = (version, range, options) => outside(version, range, '<', options)\nmodule.exports = ltr\n", "const Range = require('../classes/range')\nconst intersects = (r1, r2, options) => {\n r1 = new Range(r1, options)\n r2 = new Range(r2, options)\n return r1.intersects(r2)\n}\nmodule.exports = intersects\n", "// given a set of versions and a range, create a \"simplified\" range\n// that includes the same versions that the original range does\n// If the original range is shorter than the simplified one, return that.\nconst satisfies = require('../functions/satisfies.js')\nconst compare = require('../functions/compare.js')\nmodule.exports = (versions, range, options) => {\n const set = []\n let first = null\n let prev = null\n const v = versions.sort((a, b) => compare(a, b, options))\n for (const version of v) {\n const included = satisfies(version, range, options)\n if (included) {\n prev = version\n if (!first) {\n first = version\n }\n } else {\n if (prev) {\n set.push([first, prev])\n }\n prev = null\n first = null\n }\n }\n if (first) {\n set.push([first, null])\n }\n\n const ranges = []\n for (const [min, max] of set) {\n if (min === max) {\n ranges.push(min)\n } else if (!max && min === v[0]) {\n ranges.push('*')\n } else if (!max) {\n ranges.push(`>=${min}`)\n } else if (min === v[0]) {\n ranges.push(`<=${max}`)\n } else {\n ranges.push(`${min} - ${max}`)\n }\n }\n const simplified = ranges.join(' || ')\n const original = typeof range.raw === 'string' ? range.raw : String(range)\n return simplified.length < original.length ? simplified : range\n}\n", "const Range = require('../classes/range.js')\nconst Comparator = require('../classes/comparator.js')\nconst { ANY } = Comparator\nconst satisfies = require('../functions/satisfies.js')\nconst compare = require('../functions/compare.js')\n\n// Complex range `r1 || r2 || ...` is a subset of `R1 || R2 || ...` iff:\n// - Every simple range `r1, r2, ...` is a null set, OR\n// - Every simple range `r1, r2, ...` which is not a null set is a subset of\n// some `R1, R2, ...`\n//\n// Simple range `c1 c2 ...` is a subset of simple range `C1 C2 ...` iff:\n// - If c is only the ANY comparator\n// - If C is only the ANY comparator, return true\n// - Else if in prerelease mode, return false\n// - else replace c with `[>=0.0.0]`\n// - If C is only the ANY comparator\n// - if in prerelease mode, return true\n// - else replace C with `[>=0.0.0]`\n// - Let EQ be the set of = comparators in c\n// - If EQ is more than one, return true (null set)\n// - Let GT be the highest > or >= comparator in c\n// - Let LT be the lowest < or <= comparator in c\n// - If GT and LT, and GT.semver > LT.semver, return true (null set)\n// - If any C is a = range, and GT or LT are set, return false\n// - If EQ\n// - If GT, and EQ does not satisfy GT, return true (null set)\n// - If LT, and EQ does not satisfy LT, return true (null set)\n// - If EQ satisfies every C, return true\n// - Else return false\n// - If GT\n// - If GT.semver is lower than any > or >= comp in C, return false\n// - If GT is >=, and GT.semver does not satisfy every C, return false\n// - If GT.semver has a prerelease, and not in prerelease mode\n// - If no C has a prerelease and the GT.semver tuple, return false\n// - If LT\n// - If LT.semver is greater than any < or <= comp in C, return false\n// - If LT is <=, and LT.semver does not satisfy every C, return false\n// - If GT.semver has a prerelease, and not in prerelease mode\n// - If no C has a prerelease and the LT.semver tuple, return false\n// - Else return true\n\nconst subset = (sub, dom, options = {}) => {\n if (sub === dom) {\n return true\n }\n\n sub = new Range(sub, options)\n dom = new Range(dom, options)\n let sawNonNull = false\n\n OUTER: for (const simpleSub of sub.set) {\n for (const simpleDom of dom.set) {\n const isSub = simpleSubset(simpleSub, simpleDom, options)\n sawNonNull = sawNonNull || isSub !== null\n if (isSub) {\n continue OUTER\n }\n }\n // the null set is a subset of everything, but null simple ranges in\n // a complex range should be ignored. so if we saw a non-null range,\n // then we know this isn't a subset, but if EVERY simple range was null,\n // then it is a subset.\n if (sawNonNull) {\n return false\n }\n }\n return true\n}\n\nconst simpleSubset = (sub, dom, options) => {\n if (sub === dom) {\n return true\n }\n\n if (sub.length === 1 && sub[0].semver === ANY) {\n if (dom.length === 1 && dom[0].semver === ANY) {\n return true\n } else if (options.includePrerelease) {\n sub = [new Comparator('>=0.0.0-0')]\n } else {\n sub = [new Comparator('>=0.0.0')]\n }\n }\n\n if (dom.length === 1 && dom[0].semver === ANY) {\n if (options.includePrerelease) {\n return true\n } else {\n dom = [new Comparator('>=0.0.0')]\n }\n }\n\n const eqSet = new Set()\n let gt, lt\n for (const c of sub) {\n if (c.operator === '>' || c.operator === '>=') {\n gt = higherGT(gt, c, options)\n } else if (c.operator === '<' || c.operator === '<=') {\n lt = lowerLT(lt, c, options)\n } else {\n eqSet.add(c.semver)\n }\n }\n\n if (eqSet.size > 1) {\n return null\n }\n\n let gtltComp\n if (gt && lt) {\n gtltComp = compare(gt.semver, lt.semver, options)\n if (gtltComp > 0) {\n return null\n } else if (gtltComp === 0 && (gt.operator !== '>=' || lt.operator !== '<=')) {\n return null\n }\n }\n\n // will iterate one or zero times\n for (const eq of eqSet) {\n if (gt && !satisfies(eq, String(gt), options)) {\n return null\n }\n\n if (lt && !satisfies(eq, String(lt), options)) {\n return null\n }\n\n for (const c of dom) {\n if (!satisfies(eq, String(c), options)) {\n return false\n }\n }\n\n return true\n }\n\n let higher, lower\n let hasDomLT, hasDomGT\n // if the subset has a prerelease, we need a comparator in the superset\n // with the same tuple and a prerelease, or it's not a subset\n let needDomLTPre = lt &&\n !options.includePrerelease &&\n lt.semver.prerelease.length ? lt.semver : false\n let needDomGTPre = gt &&\n !options.includePrerelease &&\n gt.semver.prerelease.length ? gt.semver : false\n // exception: <1.2.3-0 is the same as <1.2.3\n if (needDomLTPre && needDomLTPre.prerelease.length === 1 &&\n lt.operator === '<' && needDomLTPre.prerelease[0] === 0) {\n needDomLTPre = false\n }\n\n for (const c of dom) {\n hasDomGT = hasDomGT || c.operator === '>' || c.operator === '>='\n hasDomLT = hasDomLT || c.operator === '<' || c.operator === '<='\n if (gt) {\n if (needDomGTPre) {\n if (c.semver.prerelease && c.semver.prerelease.length &&\n c.semver.major === needDomGTPre.major &&\n c.semver.minor === needDomGTPre.minor &&\n c.semver.patch === needDomGTPre.patch) {\n needDomGTPre = false\n }\n }\n if (c.operator === '>' || c.operator === '>=') {\n higher = higherGT(gt, c, options)\n if (higher === c && higher !== gt) {\n return false\n }\n } else if (gt.operator === '>=' && !satisfies(gt.semver, String(c), options)) {\n return false\n }\n }\n if (lt) {\n if (needDomLTPre) {\n if (c.semver.prerelease && c.semver.prerelease.length &&\n c.semver.major === needDomLTPre.major &&\n c.semver.minor === needDomLTPre.minor &&\n c.semver.patch === needDomLTPre.patch) {\n needDomLTPre = false\n }\n }\n if (c.operator === '<' || c.operator === '<=') {\n lower = lowerLT(lt, c, options)\n if (lower === c && lower !== lt) {\n return false\n }\n } else if (lt.operator === '<=' && !satisfies(lt.semver, String(c), options)) {\n return false\n }\n }\n if (!c.operator && (lt || gt) && gtltComp !== 0) {\n return false\n }\n }\n\n // if there was a < or >, and nothing in the dom, then must be false\n // UNLESS it was limited by another range in the other direction.\n // Eg, >1.0.0 <1.0.1 is still a subset of <2.0.0\n if (gt && hasDomLT && !lt && gtltComp !== 0) {\n return false\n }\n\n if (lt && hasDomGT && !gt && gtltComp !== 0) {\n return false\n }\n\n // we needed a prerelease range in a specific tuple, but didn't get one\n // then this isn't a subset. eg >=1.2.3-pre is not a subset of >=1.0.0,\n // because it includes prereleases in the 1.2.3 tuple\n if (needDomGTPre || needDomLTPre) {\n return false\n }\n\n return true\n}\n\n// >=1.2.3 is lower than >1.2.3\nconst higherGT = (a, b, options) => {\n if (!a) {\n return b\n }\n const comp = compare(a.semver, b.semver, options)\n return comp > 0 ? a\n : comp < 0 ? b\n : b.operator === '>' && a.operator === '>=' ? b\n : a\n}\n\n// <=1.2.3 is higher than <1.2.3\nconst lowerLT = (a, b, options) => {\n if (!a) {\n return b\n }\n const comp = compare(a.semver, b.semver, options)\n return comp < 0 ? a\n : comp > 0 ? b\n : b.operator === '<' && a.operator === '<=' ? b\n : a\n}\n\nmodule.exports = subset\n", "// just pre-load all the stuff that index.js lazily exports\nconst internalRe = require('./internal/re')\nconst constants = require('./internal/constants')\nconst SemVer = require('./classes/semver')\nconst identifiers = require('./internal/identifiers')\nconst parse = require('./functions/parse')\nconst valid = require('./functions/valid')\nconst clean = require('./functions/clean')\nconst inc = require('./functions/inc')\nconst diff = require('./functions/diff')\nconst major = require('./functions/major')\nconst minor = require('./functions/minor')\nconst patch = require('./functions/patch')\nconst prerelease = require('./functions/prerelease')\nconst compare = require('./functions/compare')\nconst rcompare = require('./functions/rcompare')\nconst compareLoose = require('./functions/compare-loose')\nconst compareBuild = require('./functions/compare-build')\nconst sort = require('./functions/sort')\nconst rsort = require('./functions/rsort')\nconst gt = require('./functions/gt')\nconst lt = require('./functions/lt')\nconst eq = require('./functions/eq')\nconst neq = require('./functions/neq')\nconst gte = require('./functions/gte')\nconst lte = require('./functions/lte')\nconst cmp = require('./functions/cmp')\nconst coerce = require('./functions/coerce')\nconst Comparator = require('./classes/comparator')\nconst Range = require('./classes/range')\nconst satisfies = require('./functions/satisfies')\nconst toComparators = require('./ranges/to-comparators')\nconst maxSatisfying = require('./ranges/max-satisfying')\nconst minSatisfying = require('./ranges/min-satisfying')\nconst minVersion = require('./ranges/min-version')\nconst validRange = require('./ranges/valid')\nconst outside = require('./ranges/outside')\nconst gtr = require('./ranges/gtr')\nconst ltr = require('./ranges/ltr')\nconst intersects = require('./ranges/intersects')\nconst simplifyRange = require('./ranges/simplify')\nconst subset = require('./ranges/subset')\nmodule.exports = {\n parse,\n valid,\n clean,\n inc,\n diff,\n major,\n minor,\n patch,\n prerelease,\n compare,\n rcompare,\n compareLoose,\n compareBuild,\n sort,\n rsort,\n gt,\n lt,\n eq,\n neq,\n gte,\n lte,\n cmp,\n coerce,\n Comparator,\n Range,\n satisfies,\n toComparators,\n maxSatisfying,\n minSatisfying,\n minVersion,\n validRange,\n outside,\n gtr,\n ltr,\n intersects,\n simplifyRange,\n subset,\n SemVer,\n re: internalRe.re,\n src: internalRe.src,\n tokens: internalRe.t,\n SEMVER_SPEC_VERSION: constants.SEMVER_SPEC_VERSION,\n compareIdentifiers: identifiers.compareIdentifiers,\n rcompareIdentifiers: identifiers.rcompareIdentifiers,\n}\n", "import semver from \"semver\";\n\n/**\n * The USB product IDs will be defined as MMII, encoding a model (MM) and an interface bitfield (II)\n *\n ** Model\n * Ledger Nano S : 0x10\n * Ledger Blue : 0x00\n * Ledger Nano X : 0x40\n *\n ** Interface support bitfield\n * Generic HID : 0x01\n * Keyboard HID : 0x02\n * U2F : 0x04\n * CCID : 0x08\n * WebUSB : 0x10\n */\nexport const IIGenericHID = 0x01;\nexport const IIKeyboardHID = 0x02;\nexport const IIU2F = 0x04;\nexport const IICCID = 0x08;\nexport const IIWebUSB = 0x10;\n\nexport enum DeviceModelId {\n blue = \"blue\",\n nanoS = \"nanoS\",\n nanoSP = \"nanoSP\",\n nanoX = \"nanoX\",\n stax = \"stax\",\n}\n\nconst devices: { [key in DeviceModelId]: DeviceModel } = {\n [DeviceModelId.blue]: {\n id: DeviceModelId.blue,\n productName: \"Ledger\u00A0Blue\",\n productIdMM: 0x00,\n legacyUsbProductId: 0x0000,\n usbOnly: true,\n memorySize: 480 * 1024,\n masks: [0x31000000, 0x31010000],\n getBlockSize: (_firwareVersion: string): number => 4 * 1024,\n },\n [DeviceModelId.nanoS]: {\n id: DeviceModelId.nanoS,\n productName: \"Ledger\u00A0Nano\u00A0S\",\n productIdMM: 0x10,\n legacyUsbProductId: 0x0001,\n usbOnly: true,\n memorySize: 320 * 1024,\n masks: [0x31100000],\n getBlockSize: (firmwareVersion: string): number =>\n semver.lt(semver.coerce(firmwareVersion) ?? \"\", \"2.0.0\")\n ? 4 * 1024\n : 2 * 1024,\n },\n [DeviceModelId.nanoSP]: {\n id: DeviceModelId.nanoSP,\n productName: \"Ledger Nano S Plus\",\n productIdMM: 0x50,\n legacyUsbProductId: 0x0005,\n usbOnly: true,\n memorySize: 1536 * 1024,\n masks: [0x33100000],\n getBlockSize: (_firmwareVersion: string): number => 32,\n },\n [DeviceModelId.nanoX]: {\n id: DeviceModelId.nanoX,\n productName: \"Ledger\u00A0Nano\u00A0X\",\n productIdMM: 0x40,\n legacyUsbProductId: 0x0004,\n usbOnly: false,\n memorySize: 2 * 1024 * 1024,\n masks: [0x33000000],\n getBlockSize: (_firwareVersion: string): number => 4 * 1024,\n bluetoothSpec: [\n {\n serviceUuid: \"13d63400-2c97-0004-0000-4c6564676572\",\n notifyUuid: \"13d63400-2c97-0004-0001-4c6564676572\",\n writeUuid: \"13d63400-2c97-0004-0002-4c6564676572\",\n writeCmdUuid: \"13d63400-2c97-0004-0003-4c6564676572\",\n },\n ],\n },\n [DeviceModelId.stax]: {\n id: DeviceModelId.stax,\n productName: \"Ledger\u00A0Stax\",\n productIdMM: 0x60,\n legacyUsbProductId: 0x0006,\n usbOnly: false,\n memorySize: 1536 * 1024,\n masks: [0x33200000],\n getBlockSize: (_firmwareVersion: string): number => 32,\n bluetoothSpec: [\n {\n serviceUuid: \"13d63400-2c97-6004-0000-4c6564676572\",\n notifyUuid: \"13d63400-2c97-6004-0001-4c6564676572\",\n writeUuid: \"13d63400-2c97-6004-0002-4c6564676572\",\n writeCmdUuid: \"13d63400-2c97-6004-0003-4c6564676572\",\n },\n ],\n },\n};\n\nconst productMap = {\n Blue: DeviceModelId.blue,\n \"Nano S\": DeviceModelId.nanoS,\n \"Nano S Plus\": DeviceModelId.nanoSP,\n \"Nano X\": DeviceModelId.nanoX,\n Stax: DeviceModelId.stax,\n};\n\nconst devicesList: DeviceModel[] = Object.values(devices);\n\n/**\n *\n */\nexport const ledgerUSBVendorId = 0x2c97;\n\n/**\n *\n */\nexport const getDeviceModel = (id: DeviceModelId): DeviceModel => {\n const info = devices[id];\n if (!info) throw new Error(\"device '\" + id + \"' does not exist\");\n return info;\n};\n\n/**\n * Given a `targetId`, return the deviceModel associated to it,\n * based on the first two bytes.\n */\nexport const identifyTargetId = (\n targetId: number\n): DeviceModel | null | undefined => {\n const deviceModel = devicesList.find(({ masks }) =>\n masks.find((mask) => (targetId & 0xffff0000) === mask)\n );\n\n return deviceModel;\n};\n\n/**\n *\n */\nexport const identifyUSBProductId = (\n usbProductId: number\n): DeviceModel | null | undefined => {\n const legacy = devicesList.find((d) => d.legacyUsbProductId === usbProductId);\n if (legacy) return legacy;\n const mm = usbProductId >> 8;\n const deviceModel = devicesList.find((d) => d.productIdMM === mm);\n return deviceModel;\n};\n\nexport const identifyProductName = (\n productName: string\n): DeviceModel | null | undefined => {\n const deviceModel = devicesList.find((d) => d.id === productMap[productName]);\n return deviceModel;\n};\n\nconst bluetoothServices: string[] = [];\nconst serviceUuidToInfos: Record = {};\n\nfor (const id in devices) {\n const deviceModel = devices[id];\n const { bluetoothSpec } = deviceModel;\n if (bluetoothSpec) {\n for (let i = 0; i < bluetoothSpec.length; i++) {\n const spec = bluetoothSpec[i];\n bluetoothServices.push(spec.serviceUuid);\n serviceUuidToInfos[spec.serviceUuid] = serviceUuidToInfos[\n spec.serviceUuid.replace(/-/g, \"\")\n ] = {\n deviceModel,\n ...spec,\n };\n }\n }\n}\n\n/**\n *\n */\nexport const getBluetoothServiceUuids = (): string[] => bluetoothServices;\n\n/**\n *\n */\nexport const getInfosForServiceUuid = (\n uuid: string\n): BluetoothInfos | undefined => serviceUuidToInfos[uuid.toLowerCase()];\n\n/**\n *\n */\nexport interface DeviceModel {\n id: DeviceModelId;\n productName: string;\n productIdMM: number;\n legacyUsbProductId: number;\n usbOnly: boolean;\n memorySize: number;\n masks: number[];\n // blockSize: number, // THIS FIELD IS DEPRECATED, use getBlockSize\n getBlockSize: (firmwareVersion: string) => number;\n bluetoothSpec?: {\n serviceUuid: string;\n writeUuid: string;\n writeCmdUuid: string;\n notifyUuid: string;\n }[];\n}\n\n/**\n *\n */\nexport interface BluetoothInfos {\n deviceModel: DeviceModel;\n serviceUuid: string;\n writeUuid: string;\n writeCmdUuid: string;\n notifyUuid: string;\n}\n", "import { ledgerUSBVendorId } from \"@ledgerhq/devices\";\n\nconst ledgerDevices = [\n {\n vendorId: ledgerUSBVendorId,\n },\n];\n\nexport async function requestLedgerDevice(): Promise {\n const device = await navigator.usb.requestDevice({\n filters: ledgerDevices,\n });\n return device;\n}\n\nexport async function getLedgerDevices(): Promise {\n const devices = await navigator.usb.getDevices();\n return devices.filter((d) => d.vendorId === ledgerUSBVendorId);\n}\n\nexport async function getFirstLedgerDevice(): Promise {\n const existingDevices = await getLedgerDevices();\n if (existingDevices.length > 0) return existingDevices[0];\n return requestLedgerDevice();\n}\n\nexport const isSupported = (): Promise =>\n Promise.resolve(\n !!navigator &&\n !!navigator.usb &&\n typeof navigator.usb.getDevices === \"function\"\n );\n", "import Transport from \"@ledgerhq/hw-transport\";\nimport type {\n Observer,\n DescriptorEvent,\n Subscription,\n} from \"@ledgerhq/hw-transport\";\nimport hidFraming from \"@ledgerhq/devices/hid-framing\";\nimport { identifyUSBProductId } from \"@ledgerhq/devices\";\nimport type { DeviceModel } from \"@ledgerhq/devices\";\nimport { log } from \"@ledgerhq/logs\";\nimport {\n TransportOpenUserCancelled,\n TransportInterfaceNotAvailable,\n TransportWebUSBGestureRequired,\n DisconnectedDeviceDuringOperation,\n DisconnectedDevice,\n} from \"@ledgerhq/errors\";\nimport {\n getLedgerDevices,\n getFirstLedgerDevice,\n requestLedgerDevice,\n isSupported,\n} from \"./webusb\";\n\nconst configurationValue = 1;\nconst endpointNumber = 3;\n\n/**\n * WebUSB Transport implementation\n * @example\n * import TransportWebUSB from \"@ledgerhq/hw-transport-webusb\";\n * ...\n * TransportWebUSB.create().then(transport => ...)\n */\nexport default class TransportWebUSB extends Transport {\n device: USBDevice;\n deviceModel: DeviceModel | null | undefined;\n channel = Math.floor(Math.random() * 0xffff);\n packetSize = 64;\n interfaceNumber: number;\n\n constructor(device: USBDevice, interfaceNumber: number) {\n super();\n this.device = device;\n this.interfaceNumber = interfaceNumber;\n this.deviceModel = identifyUSBProductId(device.productId);\n }\n\n /**\n * Check if WebUSB transport is supported.\n */\n static isSupported = isSupported;\n\n /**\n * List the WebUSB devices that was previously authorized by the user.\n */\n static list = getLedgerDevices;\n\n /**\n * Actively listen to WebUSB devices and emit ONE device\n * that was either accepted before, if not it will trigger the native permission UI.\n *\n * Important: it must be called in the context of a UI click!\n */\n static listen = (\n observer: Observer>\n ): Subscription => {\n let unsubscribed = false;\n getFirstLedgerDevice().then(\n (device) => {\n if (!unsubscribed) {\n const deviceModel = identifyUSBProductId(device.productId);\n observer.next({\n type: \"add\",\n descriptor: device,\n deviceModel,\n });\n observer.complete();\n }\n },\n (error) => {\n if (\n window.DOMException &&\n error instanceof window.DOMException &&\n error.code === 18\n ) {\n observer.error(new TransportWebUSBGestureRequired(error.message));\n } else {\n observer.error(new TransportOpenUserCancelled(error.message));\n }\n }\n );\n\n function unsubscribe() {\n unsubscribed = true;\n }\n\n return {\n unsubscribe,\n };\n };\n\n /**\n * Similar to create() except it will always display the device permission (even if some devices are already accepted).\n */\n static async request() {\n const device = await requestLedgerDevice();\n return TransportWebUSB.open(device);\n }\n\n /**\n * Similar to create() except it will never display the device permission (it returns a Promise, null if it fails to find a device).\n */\n static async openConnected() {\n const devices = await getLedgerDevices();\n if (devices.length === 0) return null;\n return TransportWebUSB.open(devices[0]);\n }\n\n /**\n * Create a Ledger transport with a USBDevice\n */\n static async open(device: USBDevice) {\n await device.open();\n\n if (device.configuration === null) {\n await device.selectConfiguration(configurationValue);\n }\n\n await gracefullyResetDevice(device);\n const iface = device.configurations[0].interfaces.find(({ alternates }) =>\n alternates.some((a) => a.interfaceClass === 255)\n );\n\n if (!iface) {\n throw new TransportInterfaceNotAvailable(\n \"No WebUSB interface found for your Ledger device. Please upgrade firmware or contact techsupport.\"\n );\n }\n\n const interfaceNumber = iface.interfaceNumber;\n\n try {\n await device.claimInterface(interfaceNumber);\n } catch (e: any) {\n await device.close();\n throw new TransportInterfaceNotAvailable(e.message);\n }\n\n const transport = new TransportWebUSB(device, interfaceNumber);\n\n const onDisconnect = (e) => {\n if (device === e.device) {\n // $FlowFixMe\n navigator.usb.removeEventListener(\"disconnect\", onDisconnect);\n\n transport._emitDisconnect(new DisconnectedDevice());\n }\n };\n\n // $FlowFixMe\n navigator.usb.addEventListener(\"disconnect\", onDisconnect);\n return transport;\n }\n\n _disconnectEmitted = false;\n _emitDisconnect = (e: Error) => {\n if (this._disconnectEmitted) return;\n this._disconnectEmitted = true;\n this.emit(\"disconnect\", e);\n };\n\n /**\n * Release the transport device\n */\n async close(): Promise {\n await this.exchangeBusyPromise;\n await this.device.releaseInterface(this.interfaceNumber);\n await gracefullyResetDevice(this.device);\n await this.device.close();\n }\n\n /**\n * Exchange with the device using APDU protocol.\n * @param apdu\n * @returns a promise of apdu response\n */\n async exchange(apdu: Buffer): Promise {\n const b = await this.exchangeAtomicImpl(async () => {\n const { channel, packetSize } = this;\n log(\"apdu\", \"=> \" + apdu.toString(\"hex\"));\n const framing = hidFraming(channel, packetSize);\n // Write...\n const blocks = framing.makeBlocks(apdu);\n\n for (let i = 0; i < blocks.length; i++) {\n await this.device.transferOut(endpointNumber, blocks[i]);\n }\n\n // Read...\n let result;\n let acc;\n\n while (!(result = framing.getReducedResult(acc))) {\n const r = await this.device.transferIn(endpointNumber, packetSize);\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n const buffer = Buffer.from(r.data.buffer);\n acc = framing.reduceResponse(acc, buffer);\n }\n\n log(\"apdu\", \"<= \" + result.toString(\"hex\"));\n return result;\n }).catch((e) => {\n if (e && e.message && e.message.includes(\"disconnected\")) {\n this._emitDisconnect(e);\n\n throw new DisconnectedDeviceDuringOperation(e.message);\n }\n\n throw e;\n });\n\n return b as Buffer;\n }\n\n setScrambleKey() {}\n}\n\nasync function gracefullyResetDevice(device: USBDevice) {\n try {\n await device.reset();\n } catch (err) {\n console.warn(err);\n }\n}\n", "import { ethers } from 'ethers'\nimport Eth, { ledgerService } from '@ledgerhq/hw-app-eth'\nimport useTransports from './providers/transports'\nimport { EthersLedgerSignerOptions } from './interfaces/EthersLedgerSignerOptions'\n\nconst defaultPath = 'm/44\\'/60\\'/0\\'/0/0'\nconst defaultType = 'usb'\nconst { createUSBTransport, createSpeculosTransport } = useTransports()\nconst transportCreators = {\n 'usb': createUSBTransport,\n 'speculos': createSpeculosTransport\n}\n\nexport default class EthersLedgerSigner extends ethers.Signer {\n readonly type: string\n readonly path: string\n readonly baseURL?: string\n readonly _eth?: Promise\n\n constructor(options: EthersLedgerSignerOptions) {\n super()\n\n if (!options.type) options.type = defaultType\n if (!options.path) options.path = defaultPath\n this.type = options.type\n this.path = options.path\n this.baseURL = options.baseURL\n\n // Override readonly provider for ethers.Signer\n if (options.provider) {\n ethers.utils.defineReadOnly(this, 'provider', options.provider)\n }\n\n // Set readonly _eth to Promise\n const transportCreatorType = this.type as keyof typeof transportCreators\n const transportCreator = transportCreators[transportCreatorType]\n if (!transportCreator) console.log('Unknown or unsupported type', this.type)\n ethers.utils.defineReadOnly(this, '_eth', transportCreator(this.baseURL).then(transport => {\n return new Eth(transport)\n }))\n }\n\n _retry(callback: (eth: Eth) => Promise, timeout?: number): Promise {\n // The async-promise-executor is ok since _retry handles necessary errors \n // eslint-disable-next-line no-async-promise-executor\n return new Promise(async (resolve, reject) => {\n const ledgerConnectionError = 'Please make sure Ledger is ready and retry'\n if (timeout && timeout > 0) {\n setTimeout(() => reject(new Error(ledgerConnectionError)), timeout)\n }\n\n const eth = await this._eth as Eth\n\n // Wait up to 5 seconds\n for (let i = 0; i < 50; i++) {\n try {\n const result = await callback(eth)\n return resolve(result)\n } catch (error) {\n if ((error as { id: string }).id !== 'TransportLocked') {\n return reject(error)\n }\n }\n await new Promise((resolve) => {\n setTimeout(resolve, 100)\n })\n }\n\n return reject(new Error(ledgerConnectionError))\n })\n }\n\n async getAddress(): Promise {\n const { address } = await this._retry((eth) => eth.getAddress(this.path))\n return ethers.utils.getAddress(address)\n }\n\n async signMessage(message: ethers.utils.Bytes | string): Promise {\n if (typeof (message) === 'string') {\n message = ethers.utils.toUtf8Bytes(message)\n }\n const messageHex = ethers.utils.hexlify(message).substring(2)\n\n const signature = await this._retry((eth) => eth.signPersonalMessage(this.path, messageHex))\n signature.r = '0x' + signature.r\n signature.s = '0x' + signature.s\n return ethers.utils.joinSignature(signature)\n }\n\n async signTransaction(transaction: ethers.providers.TransactionRequest): Promise {\n const tx = await ethers.utils.resolveProperties(transaction)\n const baseTx: ethers.utils.UnsignedTransaction = {\n chainId: (tx.chainId || undefined),\n data: (tx.data || undefined),\n gasLimit: (tx.gasLimit || undefined),\n gasPrice: (tx.gasPrice || undefined),\n nonce: (tx.nonce ? ethers.BigNumber.from(tx.nonce).toNumber(): undefined),\n to: (tx.to || undefined),\n value: (tx.value || undefined),\n type: (tx.type || undefined)\n }\n\n const unsignedTx = ethers.utils.serializeTransaction(baseTx).substring(2)\n const resolution = await ledgerService.resolveTransaction(unsignedTx, {}, {})\n const signature = await this._retry((eth) => eth.signTransaction(this.path, unsignedTx, resolution))\n\n return ethers.utils.serializeTransaction(baseTx, {\n v: ethers.BigNumber.from('0x' + signature.v).toNumber(),\n r: ('0x' + signature.r),\n s: ('0x' + signature.s),\n })\n }\n\n // Populates all fields in a transaction, signs it and sends it to the network\n async sendTransaction(transaction: ethers.utils.Deferrable): Promise {\n this._checkProvider('sendTransaction')\n const tx = await this.populateTransaction(transaction)\n const signedTx = await this.signTransaction(tx)\n return await (this.provider as ethers.providers.JsonRpcProvider).sendTransaction(signedTx)\n }\n\n connect(provider: ethers.providers.Provider): ethers.Signer {\n const options = {\n provider,\n type: this.type,\n path: this.path,\n baseURL: this.baseURL\n }\n return new EthersLedgerSigner(options)\n }\n}", "import Transport from '@ledgerhq/hw-transport'\n\n/**\n * Speculos TCP transport implementation\n *\n * @example\n * import TransportSpeculosHTTP from \"@casimir/speculos-transport\"\n * const transport = await TransportSpeculosHTTP.create()\n * const res = await transport.send(0xE0, 0x01, 0, 0)\n */\nexport default class TransportSpeculosHTTP extends Transport {\n baseURL: string\n eventStream!: EventSource\n\n constructor(baseURL: string) {\n super()\n this.baseURL = baseURL\n }\n\n static isSupported = (): Promise => Promise.resolve(true)\n // this transport is not discoverable\n static list = (): Promise => Promise.resolve([])\n static listen = () => ({\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n unsubscribe: () => {},\n })\n\n static open = async (\n baseURL?: string\n ): Promise => {\n try {\n baseURL = baseURL || 'http://127.0.0.1:5000'\n const transport = new TransportSpeculosHTTP(baseURL)\n const eventSource = new EventSource(`${baseURL}/events?stream=true`)\n // eventSource.addEventListener('open', (event: Event) => console.warn('Ledger', event.type), false)\n // eventSource.addEventListener('error', (event: Event) => console.warn('Ledger', event.type, eventSource.readyState), false)\n // eventSource.addEventListener('message', (message: MessageEvent) => console.warn('Ledger', message.type, message.data), false)\n transport.eventStream = eventSource\n return transport\n } catch (error) {\n console.log(error)\n throw error\n }\n }\n\n /**\n * Press and release button\n * buttons available: left, right, both\n * @param {*} but\n */\n button = async (but: string): Promise => {\n const action = { action: 'press-and-release' }\n await fetch(`${this.baseURL}/button/${but}`, { method: 'POST', body: JSON.stringify(action) })\n }\n\n async exchange(apdu: Buffer): Promise {\n const hex = apdu.toString('hex')\n const response = await fetch(`${this.baseURL}/apdu`, { method: 'POST', body: JSON.stringify({ data: hex }) })\n const json = await response.json()\n const { data } = json\n return Buffer.from(data, 'hex')\n }\n\n async close() {\n // close event stream\n this.eventStream.close()\n return Promise.resolve()\n }\n}\n", "import Transport from '@ledgerhq/hw-transport'\nimport TransportSpeculosHTTP from '@casimir/transport-speculos-http'\nimport TransportWebUSB from '@ledgerhq/hw-transport-webusb'\n\nexport default function useTransports() {\n\n async function createUSBTransport(): Promise {\n return await TransportWebUSB.create()\n }\n\n async function createSpeculosTransport(baseURL?: string): Promise {\n return await TransportSpeculosHTTP.open(baseURL)\n }\n\n return { createUSBTransport, createSpeculosTransport }\n}"], + "mappings": "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EACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,kEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,kEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,iEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,iEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,gEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,kEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,iEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,kEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,CACF,CACF,EACA,IAAK,CACH,IAAK,EACL,OAAQ,CACN,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,iEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,iEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,iEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,iEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,kEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,iEACF,EACA,CACE,mEACA,iEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,iEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,iEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,kEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,iEACF,EACA,CACE,mEACA,iEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,kEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,iEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,iEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,kEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,iEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,kEACA,kEACF,EACA,CACE,mEACA,iEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,iEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,iEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,iEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,iEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,EACA,CACE,mEACA,kEACF,CACF,CACF,CACF,IC3wBA,IAAAC,GAAAC,EAAAC,IAAA,cAEA,IAAIC,GAASD,GAETE,GAAO,KACPC,GAAQ,KACRC,GAAQ,KAERC,GAASD,GAAM,OAEnB,SAASE,GAAYC,EAAS,CACxBA,EAAQ,OAAS,QACnB,KAAK,MAAQ,IAAIJ,GAAM,MAAMI,CAAO,EAC7BA,EAAQ,OAAS,UACxB,KAAK,MAAQ,IAAIJ,GAAM,QAAQI,CAAO,EAEtC,KAAK,MAAQ,IAAIJ,GAAM,KAAKI,CAAO,EACrC,KAAK,EAAI,KAAK,MAAM,EACpB,KAAK,EAAI,KAAK,MAAM,EACpB,KAAK,KAAOA,EAAQ,KAEpBF,GAAO,KAAK,EAAE,SAAS,EAAG,eAAe,EACzCA,GAAO,KAAK,EAAE,IAAI,KAAK,CAAC,EAAE,WAAW,EAAG,yBAAyB,CACnE,CACAJ,GAAO,YAAcK,GAErB,SAASE,GAAYC,EAAMF,EAAS,CAClC,OAAO,eAAeN,GAAQQ,EAAM,CAClC,aAAc,GACd,WAAY,GACZ,IAAK,UAAW,CACd,IAAIN,EAAQ,IAAIG,GAAYC,CAAO,EACnC,cAAO,eAAeN,GAAQQ,EAAM,CAClC,aAAc,GACd,WAAY,GACZ,M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GAAM,IAAM,GAAM,GAAM,IAAM,IAAM,GAAM,IAAM,IAAM,GAAM,IAAM,GAAM,GAAM,IAAM,IAAM,GAAM,GAAM,GAAM,GAAM,EAAM,GAAM,GAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,GAAM,IAAM,IAAM,IAAM,IAAM,IAAM,EAAM,IAAM,IAAM,GAAM,GAAM,GAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,GAAM,GAAM,IAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,GAAM,EAAM,IAAM,GAAM,GAAM,GAAM,GAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,IAAM,GAAM,GAAM,IAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,GAAM,IAAM,GAAM,IAAM,GAAM,GAAM,IAAM,GAAM,IAAM,EAAI,EACngDC,EAAI,CAAC,GAAM,EAAM,IAAM,IAAM,GAAM,GAAM,IAAM,GAAM,IAAM,GAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,GAAM,IAAM,IAAM,GAAM,IAAM,GAAM,GAAM,IAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,GAAM,IAAM,IAAM,GAAM,GAAM,IAAM,GAAM,IAAM,GAAM,GAAM,IAAM,IAAM,GAAM,EAAM,GAAM,IAAM,IAAM,GAAM,IAAM,GAAM,IAAM,IAAM,GAAM,IAAM,GAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,GAAM,IAAM,GAAM,IAAM,IAAM,IAAM,IAAM,IAAM,GAAM,GAAM,IAAM,IAAM,IAAM,IAAM,GAAM,GAAM,GAAM,GAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,EAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,GAAM,EAAM,IAAM,IAAM,GAAM,EAAM,IAAM,GAAM,GAAM,IAAM,IAAM,GAAM,GAAM,EAAM,IAAM,IAAM,IAAM,EAAM,EAAM,GAAM,IAAM,IAAM,GAAM,IAAM,GAAM,GAAM,GAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,GAAM,IAAM,IAAM,IAAM,GAAM,IAAM,GAAM,IAAM,IAAM,IAAM,GAAM,IAAM,GAAM,IAAM,GAAM,GAAM,IAAM,IAAM,IAAM,IAAM,GAAM,GAAM,IAAM,GAAM,IAAM,GAAM,IAAM,GAAM,GAAM,GAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,GAAM,IAAM,GAAM,IAAM,IAAM,GAAM,IAAM,EAAM,IAAM,GAAM,IAAM,GAAM,GAAM,GAAM,GAAM,IAAM,IAAM,GAAM,GAAM,GAAM,IAAM,IAAM,GAAM,IAAM,GAAM,GAAM,GAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,GAAM,GAAM,IAAM,GAAM,IAAM,IAAM,IAAM,IAAM,IAAM,GAAM,IAAM,GAAM,IAAM,GAAM,GAAM,GAAM,EAAM,IAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,GAAM,GAAM,GAAM,GAAM,GAAM,GAAI,EAGngDC,EAAK,CAAC,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,SAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,EAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,SAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,SAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,SAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,UAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,UAAY,UAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,SAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,SAAU,EACpgGC,EAAK,CAAC,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,SAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,SAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,UAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,EAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,SAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,UAAY,WAAY,WAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,SAAY,SAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,SAAU,EACpgGC,EAAK,CAAC,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,SAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,SAAY,WAAY,UAAY,WAAY,UAAY,WAAY,SAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,EAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,SAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,UAAY,UAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,SAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,SAAU,EACpgGC,EAAK,CAAC,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,SAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,SAAY,WAAY,UAAY,WAAY,UAAY,WAAY,SAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,EAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,SAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,UAAY,UAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,SAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,SAAU,EAGpgGC,EAAK,CAAC,WAAY,WAAY,UAAY,UAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,SAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,UAAY,SAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,SAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,SAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,EAAY,UAAY,UAAY,UAAY,WAAY,WAAY,UAAY,WAAY,UAAY,UAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,SAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,UAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAU,EACpgGC,EAAK,CAAC,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,SAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,UAAY,SAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,SAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,EAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,UAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,SAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,SAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAU,EACpgGC,EAAK,CAAC,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,SAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,SAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,SAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,UAAY,EAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,UAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,UAAY,WAAY,UAAY,WAAY,UAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,SAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,SAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAU,EACpgGC,EAAK,CAAC,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,SAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,SAAY,WAAY,SAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,SAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,EAAY,WAAY,UAAY,UAAY,WAAY,UAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,UAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,SAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,SAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAU,EAGpgGC,EAAK,CAAC,EAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,UAAY,SAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,UAAY,SAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,UAAY,UAAY,WAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,SAAY,UAAY,UAAY,UAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,SAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,UAAY,UAAY,UAAY,SAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAU,EACpgGC,EAAK,CAAC,EAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,UAAY,WAAY,UAAY,SAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,UAAY,SAAY,UAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,UAAY,SAAY,UAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,SAAY,UAAY,UAAY,UAAY,UAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,UAAY,WAAY,UAAY,SAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAU,EACpgGC,EAAK,CAAC,EAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,SAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,SAAY,UAAY,UAAY,UAAY,UAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,UAAY,UAAY,UAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,SAAY,UAAY,UAAY,WAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,SAAY,UAAY,UAAY,WAAY,UAAY,UAAY,UAAY,UAAY,SAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAU,EACpgGC,GAAK,CAAC,EAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,SAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,SAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,SAAY,UAAY,UAAY,UAAY,UAAY,SAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,W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", + "names": ["require_bn", "__commonJSMin", "exports", "module", "assert", "val", "msg", "inherits", "ctor", "superCtor", "TempCtor", "BN", "number", "base", "endian", "Buffer", "num", "left", "right", "start", "i", "j", "w", "off", "parseHex4Bits", "string", "index", "c", "parseHexByte", "lowerBound", "r", "parseLength", "parseBase", "str", "end", "mul", "b", "len", "limbLen", "limbPow", "total", "mod", "word", "pow", "dest", "move", "src", "size", "inspect", "zeros", "groupSizes", "groupBases", "padding", "out", "carry", "groupSize", "groupBase", "ret", "length", "allocate", "ArrayType", "byteLength", "reqLength", "res", "postfix", "position", "shift", "t", "hi", "toBitArray", "bit", "wbit", "width", "a", "bytesNeeded", "bitsLeft", "cmp", "smallMulTo", "self", "lo", "k", "ncarry", "rword", "maxJ", "comb10MulTo", "o", "mid", "a0", "al0", "ah0", "a1", "al1", "ah1", "a2", "al2", "ah2", "a3", "al3", "ah3", "a4", "al4", "ah4", "a5", "al5", "ah5", "a6", "al6", "ah6", "a7", "al7", "ah7", "a8", "al8", "ah8", "a9", "al9", "ah9", "b0", "bl0", "bh0", "b1", "bl1", "bh1", "b2", "bl2", "bh2", "b3", "bl3", "bh3", "b4", "bl4", "bh4", "b5", "bl5", "bh5", "b6", "bl6", "bh6", "b7", "bl7", "bh7", "b8", "bl8", "bh8", "b9", "bl9", "bh9", "w0", "w1", "w2", "w3", "w4", "w5", "w6", "w7", "w8", "w9", "w10", "w11", "w12", "w13", "w14", "w15", "w16", "w17", "w18", "bigMulTo", "hncarry", "jumboMulTo", "FFTM", "x", "y", "N", "l", "rb", "rbt", "rws", "iws", "rtws", "itws", "s", "rtwdf", "itwdf", "p", "rtwdf_", "itwdf_", "re", "ie", "ro", "io", "rx", "n", "m", "odd", "ws", "ph", "_", "rwst", "iwst", "nrws", "nrwst", "niwst", "rmws", "isNegNum", "q", "bits", "carryMask", "newCarry", "hint", "extended", "h", "mask", "maskedWords", "mode", "bhi", "bhiBits", "diff", "qj", "positive", "div", "dm", "half", "r2", "acc", "A", "B", "C", "D", "g", "yp", "xp", "im", "jm", "x1", "x2", "delta", "negative", "Red", "ctx", "primes", "MPrime", "name", "tmp", "rlen", "input", "K256", "output", "outLen", "prev", "next", "P224", "P192", "P25519", "prime", "mod3", "one", "nOne", "lpow", "z", "inv", "windowSize", "wnd", "current", "currentLen", "Mont", "u", "exports", "require_lib", "__commonJSMin", "exports", "_permanentCensorErrors", "_censorErrors", "LogLevels", "_logLevel", "_version_1", "_globalLogger", "_checkNormalize", "missing_1", "form", "error", "_normalizeError", "LogLevel", "ErrorCode", "HEX", "Logger", "version", "logLevel", "args", "level", "_i", "message", "code", "params", "messageDetails", "key", "value", "hex", "i", "reason", "url", "fault", "name", "condition", "count", "expectedCount", "target", "kind", "censorship", "permanent", "exports", "require_lib", "__commonJSMin", "exports", "logger_1", "_version_1", "logger", "isHexable", "value", "addSlice", "array", "args", "isBytesLike", "isHexString", "isBytes", "isInteger", "i", "v", "arrayify", "options", "result", "hex", "concat", "items", "objects", "item", "length", "accum", "offset", "object", "stripZeros", "start", "zeroPad", "HexCharacters", "hexlify", "hexDataLength", "data", "hexDataSlice", "endOffset", "hexConcat", "hexValue", "trimmed", "hexStripZeros", "hexZeroPad", "splitSignature", "signature", "bytes", "vs_1", "recoveryParam", "s", "recId", "vs", "_vs", "joinSignature", "exports", "require_bignumber", "__commonJSMin", "exports", "bn_js_1", "__importDefault", "BN", "bytes_1", "logger_1", "_version_1", "logger", "_constructorGuard", "MAX_SAFE", "isBigNumberish", "value", "BigNumber", "_warnedToStringRadix", "constructorGuard", "hex", "toBigNumber", "toBN", "other", "o", "throwFault", "key", "toHex", "anyValue", "fault", "operation", "params", "_base36To16", "_base16To36", "require_fixednumber", "__commonJSMin", "exports", "bytes_1", "logger_1", "_version_1", "logger", "bignumber_1", "_constructorGuard", "Zero", "NegativeOne", "throwFault", "message", "fault", "operation", "value", "params", "zeros", "getMultiplier", "decimals", "formatFixed", "multiplier", "negative", "fraction", "whole", "parseFixed", "comps", "wholeValue", "fractionValue", "wei", "FixedFormat", "constructorGuard", "signed", "width", "match", "check", "key", "type", "defaultValue", "FixedNumber", "hex", "format", "other", "a", "b", "result", "hasFraction", "ONE", "factor", "bump", "BUMP", "fixedFormat", "numeric", "decimal", "error", "bignumber_1", "exports", "fixednumber_1", "bignumber_2", "exports", "require_lib", "__commonJSMin", "exports", "logger_1", "_version_1", "logger", "defineReadOnly", "object", "name", "value", "getStatic", "ctor", "key", "i", "resolveProperties", "promises", "v", "results", "_a", "accum", "result", "checkProperties", "properties", "shallowCopy", "opaque", "_isFrozen", "keys", "_deepCopy", "item", "deepCopy", "Description", "info", "exports", "require_fragments", "__commonJSMin", "exports", "bignumber_1", "properties_1", "logger_1", "_version_1", "logger", "_constructorGuard", "ModifiersBytes", "ModifiersNest", "checkModifier", "type", "name", "parseParamType", "param", "allowIndexed", "originalParam", "throwError", "i", "newNode", "parent", "node", "c", "verifyType", "child", "sibling", "populate", "object", "params", "key", "paramTypeArray", "ParamType", "constructorGuard", "match", "format", "result_1", "comp", "result", "value", "ParamTypify", "parseParams", "allowIndex", "splitNesting", "Fragment", "FunctionFragment", "EventFragment", "ConstructorFragment", "ErrorFragment", "_super", "__extends", "input", "verifyIdentifier", "regexParen", "anonymous", "modifier", "parseGas", "comps", "parseModifiers", "verifyState", "state", "parens", "output", "returns", "checkForbidden", "fragment", "sig", "regexIdentifier", "accum", "depth", "offset", "require_abstract_coder", "__commonJSMin", "exports", "bytes_1", "bignumber_1", "properties_1", "logger_1", "_version_1", "logger", "checkResultErrors", "result", "errors", "checkErrors", "path", "object", "key", "childPath", "error", "Coder", "name", "type", "localName", "dynamic", "message", "value", "Writer", "wordSize", "data", "writer", "bytes", "paddingOffset", "_this", "offset", "Reader", "coerceFunc", "allowLoose", "match", "length", "loose", "alignedLength", "require_sha3", "__commonJSMin", "exports", "module", "INPUT_ERROR", "FINALIZE_ERROR", "WINDOW", "root", "WEB_WORKER", "NODE_JS", "COMMON_JS", "AMD", "ARRAY_BUFFER", "HEX_CHARS", "SHAKE_PADDING", "CSHAKE_PADDING", "KECCAK_PADDING", "PADDING", "SHIFT", "RC", "BITS", "SHAKE_BITS", "OUTPUT_TYPES", "CSHAKE_BYTEPAD", "obj", "createOutputMethod", "bits", "padding", "outputType", "message", "Keccak", "createShakeOutputMethod", "outputBits", "createCshakeOutputMethod", "n", "s", "methods", "createKmacOutputMethod", "key", "createOutputMethods", "method", "createMethod", "i", "type", "createShakeMethod", "createCshakeMethod", "w", "createKmacMethod", "Kmac", "algorithms", "methodNames", "algorithm", "j", "methodName", "newMethodName", "notString", "blocks", "byteCount", "length", "blockCount", "index", "code", "f", "x", "right", "o", "bytes", "str", "strs", "paddingBytes", "zeros", "outputBlocks", "extraBytes", "hex", "block", "buffer", "array", "offset", "h", "l", "c0", "c1", "c2", "c3", "c4", "c5", "c6", "c7", "c8", "c9", "b0", "b1", "b2", "b3", "b4", "b5", "b6", "b7", "b8", "b9", "b10", "b11", "b12", "b13", "b14", "b15", "b16", "b17", "b18", "b19", "b20", "b21", "b22", "b23", "b24", "b25", "b26", "b27", "b28", "b29", "b30", "b31", "b32", "b33", "b34", "b35", "b36", "b37", "b38", "b39", "b40", "b41", "b42", "b43", "b44", "b45", "b46", "b47", "b48", "b49", "require_lib", "__commonJSMin", "exports", "js_sha3_1", "__importDefault", "bytes_1", "keccak256", "data", "exports", "require_lib", "__commonJSMin", "exports", "bytes_1", "logger_1", "_version_1", "logger", "arrayifyInteger", "value", "result", "unarrayifyInteger", "data", "offset", "length", "i", "_encode", "object", "payload_1", "child", "length_1", "encode", "_decodeChildren", "childOffset", "decoded", "_decode", "lengthLength", "length_2", "length_3", "length_4", "length_5", "decode", "bytes", "exports", "require_lib", "__commonJSMin", "exports", "bytes_1", "bignumber_1", "keccak256_1", "rlp_1", "logger_1", "_version_1", "logger", "getChecksumAddress", "address", "chars", "expanded", "i", "hashed", "MAX_SAFE_INTEGER", "log10", "x", "ibanLookup", "safeDigits", "ibanChecksum", "block", "checksum", "getAddress", "result", "isAddress", "getIcapAddress", "base36", "getContractAddress", "transaction", "from", "nonce", "getCreate2Address", "salt", "initCodeHash", "require_address", "__commonJSMin", "exports", "address_1", "bytes_1", "abstract_coder_1", "AddressCoder", "_super", "__extends", "localName", "writer", "value", "error", "reader", "require_anonymous", "__commonJSMin", "exports", "abstract_coder_1", "AnonymousCoder", "_super", "__extends", "coder", "_this", "writer", "value", "reader", "require_array", "__commonJSMin", "exports", "logger_1", "_version_1", "logger", "abstract_coder_1", "anonymous_1", "pack", "writer", "coders", "values", "arrayValues", "unique_1", "coder", "name", "staticWriter", "dynamicWriter", "updateFuncs", "index", "value", "dynamicOffset_1", "updateFunc_1", "baseOffset", "func", "length", "unpack", "reader", "baseReader", "offset", "offsetReader", "error", "uniqueNames", "accum", "i", "ArrayCoder", "_super", "__extends", "localName", "_this", "type", "dynamic", "defaultChild", "result", "count", "require_boolean", "__commonJSMin", "exports", "abstract_coder_1", "BooleanCoder", "_super", "__extends", "localName", "writer", "value", "reader", "require_bytes", "__commonJSMin", "exports", "bytes_1", "abstract_coder_1", "DynamicBytesCoder", "_super", "__extends", "type", "localName", "writer", "value", "length", "reader", "BytesCoder", "require_fixed_bytes", "__commonJSMin", "exports", "bytes_1", "abstract_coder_1", "FixedBytesCoder", "_super", "__extends", "size", "localName", "_this", "name", "writer", "value", "data", "reader", "require_null", "__commonJSMin", "exports", "abstract_coder_1", "NullCoder", "_super", "__extends", "localName", "writer", "value", "reader", "exports", "bignumber_1", "NegativeOne", "exports", "Zero", "One", "Two", "WeiPerEther", "MaxUint256", "MinInt256", "MaxInt256", "exports", "exports", "require_lib", "__commonJSMin", "exports", "addresses_1", "bignumbers_1", "hashes_1", "strings_1", "require_number", "__commonJSMin", "exports", "bignumber_1", "constants_1", "abstract_coder_1", "NumberCoder", "_super", "__extends", "size", "signed", "localName", "_this", "name", "writer", "value", "v", "maxUintValue", "bounds", "reader", "exports", "require_utf8", "__commonJSMin", "exports", "bytes_1", "logger_1", "_version_1", "logger", "UnicodeNormalizationForm", "Utf8ErrorReason", "errorFunc", "reason", "offset", "bytes", "output", "badCodepoint", "ignoreFunc", "i", "o", "replaceFunc", "getUtf8CodePoints", "onError", "result", "extraLength", "overlongMask", "res", "j", "nextChar", "toUtf8Bytes", "str", "form", "c2", "pair", "escapeChar", "value", "hex", "_toEscapedUtf8String", "codePoint", "_toUtf8String", "codePoints", "toUtf8String", "toUtf8CodePoints", "require_bytes32", "__commonJSMin", "exports", "constants_1", "bytes_1", "utf8_1", "formatBytes32String", "text", "bytes", "parseBytes32String", "data", "length", "require_idna", "__commonJSMin", "exports", "utf8_1", "bytes2", "data", "result", "i", "createTable", "func", "value", "lo", "pair", "comps", "createRangeTable", "hi", "v", "matchMap", "ranges", "range", "Table_A_1_ranges", "Table_B_1_flags", "Table_B_2_ranges", "Table_B_2_lut_abs", "Table_B_2_lut_rel", "Table_B_2_complex", "Table_C_ranges", "flatten", "values", "accum", "_nameprepTableA1", "codepoint", "_nameprepTableB2", "codes", "shift", "complex", "_nameprepTableC", "nameprep", "code", "codesTableB2", "name", "require_lib", "__commonJSMin", "exports", "bytes32_1", "idna_1", "utf8_1", "require_string", "__commonJSMin", "exports", "strings_1", "bytes_1", "StringCoder", "_super", "__extends", "localName", "writer", "value", "reader", "require_tuple", "__commonJSMin", "exports", "abstract_coder_1", "array_1", "TupleCoder", "_super", "__extends", "coders", "localName", "_this", "dynamic", "types", "coder", "type", "values", "uniqueNames", "accum", "name", "index", "writer", "value", "reader", "require_abi_coder", "__commonJSMin", "exports", "bytes_1", "properties_1", "logger_1", "_version_1", "logger", "abstract_coder_1", "address_1", "array_1", "boolean_1", "bytes_2", "fixed_bytes_1", "null_1", "number_1", "string_1", "tuple_1", "fragments_1", "paramTypeBytes", "paramTypeNumber", "AbiCoder", "coerceFunc", "param", "_this", "component", "match", "size", "data", "allowLoose", "types", "coders", "type", "coder", "values", "writer", "loose", "keccak256_1", "strings_1", "id", "text", "exports", "exports", "require_base64", "__commonJSMin", "exports", "bytes_1", "decode", "textData", "encode", "data", "require_lib", "__commonJSMin", "exports", "base64_1", "flat", "array", "depth", "result", "forEach", "flatDeep", "arr", "val", "fromEntries", "i", "value", "decode_arithmetic", "bytes", "pos", "u16", "symbol_count", "total", "acc", "skip", "pos_payload", "read_width", "read_buffer", "read_bit", "N", "FULL", "HALF", "QRTR", "MASK", "register", "symbols", "low", "range", "start", "end", "mid", "a", "b", "offset", "x", "exports", "read_payload", "v", "read_compressed_payload", "signed", "read_counts", "n", "next", "read_ascending", "read_deltas", "read_member_array", "lookup", "vX", "vN", "j", "read_mapped_map", "ret", "w", "read_linear_table", "read_replacement_table", "read_zero_terminated_array", "read_transposed", "m", "dx", "dy", "ys", "_", "j_dy", "y", "read_emoji_trie", "sorted", "read", "branches", "keys", "temp", "valid", "fe0f", "save", "check", "base64_1", "decoder_js_1", "getData", "exports", "strings_1", "include_js_1", "r", "decoder_js_1", "VALID", "IGNORED", "MAPPED", "EMOJI_ROOT", "HYPHEN", "UNDERSCORE", "explode_cp", "name", "filter_fe0f", "cps", "cp", "ens_normalize_post_check", "_i", "_a", "label", "i", "err", "exports", "ens_normalize", "normalize", "emoji_filter", "input", "output", "emoji", "consume_emoji_reversed", "nfc", "s", "eaten", "node", "saved", "stack", "pos", "x", "bytes_1", "strings_1", "keccak256_1", "logger_1", "_version_1", "logger", "lib_1", "Zeros", "checkComponent", "comp", "ensNameSplit", "name", "bytes", "comps", "last", "i", "ensNormalize", "exports", "isValidName", "namehash", "result", "dnsEncode", "bytes_1", "keccak256_1", "strings_1", "exports", "hashMessage", "message", "address_1", "bignumber_1", "bytes_1", "keccak256_1", "properties_1", "logger_1", "_version_1", "logger", "id_1", "padding", "NegativeOne", "Zero", "One", "MaxUint256", "hexPadRight", "value", "bytes", "padOffset", "hexTrue", "hexFalse", "domainFieldTypes", "domainFieldNames", "checkString", "key", "domainChecks", "getBaseEncoder", "type", "match", "signed", "width", "boundsUpper_1", "boundsLower_1", "v", "width_1", "encodeType", "name", "fields", "_a", "TypedDataEncoder", "types", "links", "parents", "subtypes", "name_1", "uniqueNames", "field", "baseType", "encoder", "primaryTypes", "n", "t", "checkCircular", "found", "child", "subtype", "name_2", "st", "_this", "subtype_1", "subEncoder_1", "length_1", "result", "encodedType_1", "values", "callback", "subtype_2", "length_2", "accum", "domain", "domainFields", "name_3", "a", "resolveName", "ensCache", "_c", "_d", "name_4", "_e", "domainValues", "domainTypes", "typesWithDomain", "exports", "require_lib", "__commonJSMin", "exports", "id_1", "namehash_1", "message_1", "namehash_2", "typed_data_1", "require_interface", "__commonJSMin", "exports", "address_1", "bignumber_1", "bytes_1", "hash_1", "keccak256_1", "properties_1", "abi_coder_1", "abstract_coder_1", "fragments_1", "logger_1", "_version_1", "logger", "LogDescription", "_super", "__extends", "TransactionDescription", "ErrorDescription", "Indexed", "value", "BuiltinErrors", "wrapAccessError", "property", "error", "wrap", "Interface", "fragments", "_this", "abi", "fragment", "_newTarget", "bucket", "signature", "format", "j", "address", "eventFragment", "nameOrSignatureOrSighash", "name_1", "name_2", "matching", "f", "result", "nameOrSignatureOrTopic", "topichash", "name_3", "name_4", "getSighash", "name_5", "name_6", "params", "data", "values", "bytes", "functionFragment", "reason", "message", "errorArgs", "errorName", "errorSignature", "selector", "builtin", "topics", "encodeTopic", "param", "index", "dataTypes", "dataValues", "topicHash", "indexed", "nonIndexed", "dynamic", "resultIndexed", "resultNonIndexed", "nonIndexedIndex", "indexedIndex", "value_1", "i", "tx", "log", "hexData", "require_lib", "__commonJSMin", "exports", "fragments_1", "abi_coder_1", "interface_1", "exports", "require_lib", "__commonJSMin", "exports", "bignumber_1", "bytes_1", "properties_1", "logger_1", "_version_1", "logger", "ForkEvent", "_super", "__extends", "value", "BlockForkEvent", "blockHash", "expiry", "_this", "TransactionForkEvent", "hash", "TransactionOrderForkEvent", "beforeHash", "afterHash", "Provider", "_newTarget", "error", "_a", "_b", "block", "gasPrice", "lastBaseFeePerGas", "maxFeePerGas", "maxPriorityFeePerGas", "eventName", "listener", "exports", "require_lib", "__commonJSMin", "exports", "properties_1", "logger_1", "_version_1", "logger", "allowedTransactionKeys", "forwardErrors", "Signer", "_newTarget", "blockTag", "_a", "transaction", "tx", "signedTx", "network", "name", "key", "result", "to", "__awaiter", "_this", "address", "error", "hasEip1559", "feeData", "gasPrice", "results", "operation", "value", "VoidSigner", "_super", "__extends", "provider", "message", "domain", "types", "require_bn", "__commonJSMin", "exports", "module", "assert", "val", "msg", "inherits", "ctor", "superCtor", "TempCtor", "BN", "number", "base", "endian", "Buffer", "num", "left", "right", "start", "i", "j", "w", "off", "parseHex4Bits", "string", "index", "c", "parseHexByte", "lowerBound", "r", "parseLength", "parseBase", "str", "end", "mul", "len", "limbLen", "limbPow", "total", "mod", "word", "pow", "dest", "size", "zeros", "groupSizes", "groupBases", "padding", "out", "carry", "groupSize", "groupBase", "ret", "length", "ArrayType", "byteLength", "reqLength", "littleEndian", "res", "b", "q", "t", "hi", "toBitArray", "bit", "wbit", "width", "a", "bytesNeeded", "bitsLeft", "cmp", "smallMulTo", "self", "lo", "k", "ncarry", "rword", "maxJ", "comb10MulTo", "o", "mid", "a0", "al0", "ah0", "a1", "al1", "ah1", "a2", "al2", "ah2", "a3", "al3", "ah3", "a4", "al4", "ah4", "a5", "al5", "ah5", "a6", "al6", "ah6", "a7", "al7", "ah7", "a8", "al8", "ah8", "a9", "al9", "ah9", "b0", "bl0", "bh0", "b1", "bl1", "bh1", "b2", "bl2", "bh2", "b3", "bl3", "bh3", "b4", "bl4", "bh4", "b5", "bl5", "bh5", "b6", "bl6", "bh6", "b7", "bl7", "bh7", "b8", "bl8", "bh8", "b9", "bl9", "bh9", "w0", "w1", "w2", "w3", "w4", "w5", "w6", "w7", "w8", "w9", "w10", "w11", "w12", "w13", "w14", "w15", "w16", "w17", "w18", "bigMulTo", "hncarry", "jumboMulTo", "fftm", "FFTM", "x", "y", "N", "l", "rb", "rbt", "rws", "iws", "rtws", "itws", "s", "rtwdf", "itwdf", "p", "rtwdf_", "itwdf_", "re", "ie", "ro", "io", "rx", "n", "m", "odd", "ws", "ph", "_", "rwst", "iwst", "nrws", "nrwst", "niwst", "rmws", "bits", "carryMask", "newCarry", "hint", "extended", "h", "mask", "maskedWords", "shift", "mode", "bhi", "bhiBits", "diff", "qj", "positive", "div", "dm", "half", "r2", "acc", "A", "B", "D", "yp", "xp", "im", "jm", "x1", "x2", "delta", "negative", "Red", "ctx", "primes", "MPrime", "name", "tmp", "rlen", "input", "K256", "output", "outLen", "prev", "next", "P224", "P192", "P25519", "prime", "mod3", "one", "nOne", "lpow", "z", "inv", "windowSize", "wnd", "current", "currentLen", "Mont", "u", "require_minimalistic_assert", "__commonJSMin", "exports", "module", "assert", "val", "msg", "l", "r", "require_utils", "__commonJSMin", "exports", "utils", "toArray", "msg", "enc", "res", "i", "hi", "lo", "zero2", "word", "toHex", "arr", "require_utils", "__commonJSMin", "exports", "utils", "BN", "minAssert", "minUtils", "getNAF", "num", "w", "bits", "naf", "ws", "k", "i", "z", "mod", "getJSF", "k1", "k2", "jsf", "d1", "d2", "m8", "m14", "m24", "u1", "u2", "cachedProperty", "obj", "name", "computer", "key", "parseBytes", "bytes", "intFromLE", "require_brorand", "__commonJSMin", "exports", "module", "r", "len", "Rand", "rand", "n", "res", "i", "arr", "crypto", "require_base", "__commonJSMin", "exports", "module", "BN", "utils", "getNAF", "getJSF", "assert", "BaseCurve", "type", "conf", "adjustCount", "p", "k", "doubles", "naf", "I", "repr", "j", "nafW", "a", "b", "i", "w", "nafPoints", "wnd", "acc", "z", "defW", "points", "coeffs", "len", "jacobianResult", "wndWidth", "max", "comb", "index", "jsf", "ja", "jb", "tmp", "zero", "BasePoint", "curve", "bytes", "enc", "res", "compact", "x", "power", "precomputed", "step", "dbl", "r", "require_inherits_browser", "__commonJSMin", "exports", "module", "ctor", "superCtor", "TempCtor", "require_inherits", "__commonJSMin", "exports", "module", "util", "require_short", "__commonJSMin", "exports", "module", "utils", "BN", "inherits", "Base", "assert", "ShortCurve", "conf", "beta", "lambda", "betas", "lambdas", "basis", "vec", "num", "red", "tinv", "ntinv", "s", "l1", "l2", "aprxSqrt", "u", "v", "x1", "y1", "x2", "y2", "a0", "b0", "a1", "b1", "a2", "b2", "prevR", "i", "r", "x", "q", "y", "len1", "len2", "k", "v1", "v2", "c1", "c2", "p1", "p2", "q1", "q2", "k1", "k2", "odd", "isOdd", "point", "ax", "rhs", "points", "coeffs", "jacobianResult", "npoints", "ncoeffs", "split", "p", "res", "j", "Point", "curve", "isRed", "obj", "pre", "endoMul", "obj2point", "c", "nx", "ny", "ys1", "a", "dyinv", "_precompute", "negate", "JPoint", "z", "zinv", "zinv2", "ay", "pz2", "z2", "u1", "u2", "s1", "s2", "h", "h2", "h3", "nz", "pow", "jx", "jy", "jz", "jz4", "jyd", "jx2", "jyd2", "jyd4", "t1", "t2", "dny", "xx", "yy", "yyyy", "m", "t", "yyyy8", "b", "d", "e", "f", "c8", "delta", "gamma", "alpha", "beta4", "beta8", "ggamma8", "jy2", "jxd4", "jyd8", "zz", "mm", "ee", "yyu4", "kbase", "z3", "pz3", "zs", "rx", "xc", "require_mont", "__commonJSMin", "exports", "module", "BN", "inherits", "Base", "utils", "MontCurve", "conf", "point", "x", "x2", "rhs", "y", "Point", "curve", "z", "bytes", "enc", "obj", "aa", "b", "bb", "c", "nx", "nz", "p", "diff", "a", "d", "da", "cb", "k", "t", "bits", "i", "other", "require_edwards", "__commonJSMin", "exports", "module", "utils", "BN", "inherits", "Base", "assert", "EdwardsCurve", "conf", "num", "x", "y", "z", "t", "odd", "x2", "rhs", "lhs", "y2", "isOdd", "point", "Point", "curve", "obj", "b", "c", "d", "e", "g", "f", "h", "nx", "ny", "nt", "nz", "j", "p", "a", "tmp", "k", "k1", "k2", "zi", "other", "rx", "xc", "require_curve", "__commonJSMin", "exports", "curve", "require_utils", "__commonJSMin", "exports", "assert", "inherits", "isSurrogatePair", "msg", "i", "toArray", "enc", "res", "p", "c", "toHex", "zero2", "htonl", "w", "toHex32", "endian", "zero8", "word", "join32", "start", "end", "len", "k", "split32", "m", "rotr32", "b", "rotl32", "sum32", "a", "sum32_3", "sum32_4", "d", "sum32_5", "e", "sum64", "buf", "pos", "ah", "al", "bh", "bl", "lo", "hi", "sum64_hi", "sum64_lo", "sum64_4_hi", "ch", "cl", "dh", "dl", "carry", "sum64_4_lo", "sum64_5_hi", "eh", "el", "sum64_5_lo", "rotr64_hi", "num", "r", "rotr64_lo", "shr64_hi", "shr64_lo", "require_common", "__commonJSMin", "exports", "utils", "assert", "BlockHash", "msg", "enc", "r", "i", "len", "bytes", "k", "res", "t", "require_common", "__commonJSMin", "exports", "utils", "rotr32", "ft_1", "s", "x", "y", "z", "ch32", "p32", "maj32", "s0_256", "s1_256", "g0_256", "g1_256", "require__", "__commonJSMin", "exports", "module", "utils", "common", "shaCommon", "rotl32", "sum32", "sum32_5", "ft_1", "BlockHash", "sha1_K", "SHA1", "msg", "start", "W", "i", "a", "c", "d", "e", "s", "t", "enc", "require__", "__commonJSMin", "exports", "module", "utils", "common", "shaCommon", "assert", "sum32", "sum32_4", "sum32_5", "ch32", "maj32", "s0_256", "s1_256", "g0_256", "g1_256", "BlockHash", "sha256_K", "SHA256", "msg", "start", "W", "i", "a", "c", "d", "e", "f", "g", "h", "T1", "T2", "enc", "require__", "__commonJSMin", "exports", "module", "utils", "SHA256", "SHA224", "enc", "require__", "__commonJSMin", "exports", "module", "utils", "common", "assert", "rotr64_hi", "rotr64_lo", "shr64_hi", "shr64_lo", "sum64", "sum64_hi", "sum64_lo", "sum64_4_hi", "sum64_4_lo", "sum64_5_hi", "sum64_5_lo", "BlockHash", "sha512_K", "SHA512", "msg", "start", "W", "i", "c0_hi", "g1_512_hi", "c0_lo", "g1_512_lo", "c1_hi", "c1_lo", "c2_hi", "g0_512_hi", "c2_lo", "g0_512_lo", "c3_hi", "c3_lo", "ah", "al", "bh", "bl", "ch", "cl", "dh", "dl", "eh", "el", "fh", "fl", "gh", "gl", "hh", "hl", "s1_512_hi", "s1_512_lo", "ch64_hi", "ch64_lo", "c4_hi", "c4_lo", "T1_hi", "T1_lo", "s0_512_hi", "s0_512_lo", "maj64_hi", "maj64_lo", "T2_hi", "T2_lo", "enc", "xh", "xl", "yh", "yl", "zh", "r", "zl", "require__", "__commonJSMin", "exports", "module", "utils", "SHA512", "SHA384", "enc", "require_sha", "__commonJSMin", "exports", "require_ripemd", "__commonJSMin", "exports", "utils", "common", "rotl32", "sum32", "sum32_3", "sum32_4", "BlockHash", "RIPEMD160", "msg", "start", "A", "B", "C", "D", "E", "Ah", "Bh", "Ch", "Dh", "Eh", "j", "T", "f", "r", "K", "s", "rh", "Kh", "sh", "enc", "x", "y", "z", "require_hmac", "__commonJSMin", "exports", "module", "utils", "assert", "Hmac", "hash", "key", "enc", "i", "msg", "require_hash", "__commonJSMin", "exports", "hash", "require_secp256k1", "__commonJSMin", "exports", "module", "require_curves", "__commonJSMin", "exports", "curves", "hash", "curve", "utils", "assert", "PresetCurve", "options", "defineCurve", "name", "pre", "require_hmac_drbg", "__commonJSMin", "exports", "module", "hash", "utils", "assert", "HmacDRBG", "options", "entropy", "nonce", "pers", "seed", "i", "kmac", "entropyEnc", "add", "addEnc", "len", "enc", "temp", "res", "require_key", "__commonJSMin", "exports", "module", "BN", "utils", "assert", "KeyPair", "ec", "options", "pub", "enc", "priv", "compact", "key", "msg", "signature", "require_signature", "__commonJSMin", "exports", "module", "BN", "utils", "assert", "Signature", "options", "enc", "Position", "getLength", "buf", "p", "initial", "octetLen", "val", "i", "off", "rmPadding", "len", "data", "rlen", "r", "slen", "s", "constructLength", "arr", "octets", "backHalf", "res", "require_ec", "__commonJSMin", "exports", "module", "BN", "HmacDRBG", "utils", "curves", "rand", "assert", "KeyPair", "Signature", "EC", "options", "priv", "enc", "pub", "drbg", "bytes", "ns2", "msg", "truncOnly", "delta", "key", "bkey", "nonce", "ns1", "iter", "k", "kp", "kpX", "r", "s", "recoveryParam", "signature", "sinv", "u1", "u2", "p", "j", "n", "e", "isYOdd", "isSecondKey", "rInv", "s1", "s2", "Q", "i", "Qprime", "require_key", "__commonJSMin", "exports", "module", "utils", "assert", "parseBytes", "cachedProperty", "KeyPair", "eddsa", "params", "pub", "secret", "hash", "lastIx", "a", "message", "sig", "enc", "require_signature", "__commonJSMin", "exports", "module", "BN", "utils", "assert", "cachedProperty", "parseBytes", "Signature", "eddsa", "sig", "require_eddsa", "__commonJSMin", "exports", "module", "hash", "curves", "utils", "assert", "parseBytes", "KeyPair", "Signature", "EDDSA", "curve", "message", "secret", "key", "r", "R", "Rencoded", "s_", "S", "sig", "pub", "h", "SG", "RplusAh", "i", "point", "enc", "bytes", "lastIx", "normed", "xIsOdd", "y", "num", "val", "require_elliptic", "__commonJSMin", "exports", "elliptic", "elliptic_1", "__importDefault", "EC", "exports", "exports", "require_lib", "__commonJSMin", "exports", "elliptic_1", "bytes_1", "properties_1", "logger_1", "_version_1", "logger", "_curve", "getCurve", "SigningKey", "privateKey", "keyPair", "other", "p0", "p1", "digest", "digestBytes", "signature", "otherKey", "otherKeyPair", "computePublicKey", "value", "recoverPublicKey", "sig", "rs", "key", "compressed", "bytes", "signingKey", "exports", "require_lib", "__commonJSMin", "exports", "address_1", "bignumber_1", "bytes_1", "constants_1", "keccak256_1", "properties_1", "RLP", "__importStar", "signing_key_1", "logger_1", "_version_1", "logger", "TransactionTypes", "handleAddress", "value", "handleNumber", "transactionFields", "allowedTransactionKeys", "computeAddress", "key", "publicKey", "recoverAddress", "digest", "signature", "formatNumber", "name", "result", "accessSetify", "addr", "storageKeys", "storageKey", "index", "accessListify", "set", "accum", "a", "b", "formatAccessList", "_serializeEip1559", "transaction", "gasPrice", "maxFeePerGas", "fields", "sig", "_serializeEip2930", "_serialize", "raw", "fieldInfo", "options", "chainId", "v", "serialize", "_parseEipSignature", "tx", "recid", "_parseEip1559", "payload", "maxPriorityFeePerGas", "_parseEip2930", "_parse", "rawTransaction", "recoveryParam", "parse", "exports", "require_lib", "__commonJSMin", "exports", "abi_1", "abstract_provider_1", "abstract_signer_1", "address_1", "bignumber_1", "bytes_1", "properties_1", "transactions_1", "logger_1", "_version_1", "logger", "allowedTransactionKeys", "resolveName", "resolver", "nameOrPromise", "name", "_a", "address", "resolveAddresses", "value", "paramType", "index", "v", "populateTransaction", "contract", "fragment", "args", "overrides", "check", "__awaiter", "_this", "resolved", "data", "tx", "ro", "intrinsic", "bytes", "i", "roValue", "leftovers", "key", "l", "buildPopulate", "_i", "buildEstimate", "signerOrProvider", "addContractWait", "wait", "confirmations", "receipt", "log", "event", "parsed", "topics", "buildCall", "collapseSimple", "blockTag", "result", "error", "buildSend", "txRequest", "buildDefault", "getEventTag", "filter", "topic", "RunningEvent", "tag", "listener", "once", "done", "item", "listenerCount", "argsCopy", "ErrorRunningEvent", "_super", "__extends", "FragmentRunningEvent", "contractInterface", "errors", "WildcardRunningEvent", "parsed_1", "BaseContract", "addressOrName", "_newTarget", "uniqueFilters_1", "eventSignature", "filters", "e", "uniqueNames", "uniqueSignatures", "signature", "name_1", "signatures", "transaction", "code", "runningEvent", "eventName", "emit", "wrappedEmit", "__spreadArray", "fromBlockOrBlockhash", "toBlock", "logs", "accum", "result_1", "runningEvent_1", "Contract", "ContractFactory", "bytecode", "signer", "bytecodeHex", "params", "unsignedTx", "compilerOutput", "abi", "bytes_1", "properties_1", "BaseX", "alphabet", "i", "value", "source", "digits", "carry", "j", "string", "k", "q", "bytes", "byte", "exports", "Base32", "Base58", "require_pbkdf2", "__commonJSMin", "exports", "crypto_1", "bytes_1", "bufferify", "value", "pbkdf2", "password", "salt", "iterations", "keylen", "hashAlgorithm", "pbkdf2_1", "exports", "SupportedAlgorithm", "exports", "exports", "require_sha2", "__commonJSMin", "exports", "crypto_1", "hash_js_1", "__importDefault", "bytes_1", "types_1", "logger_1", "_version_1", "logger", "ripemd160", "data", "sha256", "sha512", "computeHmac", "algorithm", "key", "sha2_1", "exports", "types_1", "exports", "require_wordlist", "__commonJSMin", "exports", "exportWordlist", "hash_1", "properties_1", "logger_1", "_version_1", "Wordlist", "locale", "_newTarget", "mnemonic", "words", "wordlist", "i", "word", "lang", "name", "anyGlobal", "require_lang_cz", "__commonJSMin", "exports", "wordlist_1", "words", "wordlist", "loadWords", "lang", "LangCz", "_super", "__extends", "index", "word", "langCz", "require_lang_en", "__commonJSMin", "exports", "wordlist_1", "words", "wordlist", "loadWords", "lang", "LangEn", "_super", "__extends", "index", "word", "langEn", "require_lang_es", "__commonJSMin", "exports", "strings_1", "wordlist_1", "words", "lookup", "wordlist", "dropDiacritic", "word", "c", "expand", "output", "loadWords", "lang", "w", "index", "LangEs", "_super", "__extends", "langEs", "require_lang_fr", "__commonJSMin", "exports", "strings_1", "wordlist_1", "words", "wordlist", "lookup", "dropDiacritic", "word", "c", "expand", "output", "loadWords", "lang", "w", "index", "LangFr", "_super", "__extends", "langFr", "require_lang_ja", "__commonJSMin", "exports", "bytes_1", "strings_1", "wordlist_1", "data", "mapping", "wordlist", "hex", "word", "KiYoKu", "KyoKu", "loadWords", "lang", "transform", "normalize", "result", "i", "kana", "target", "sortJapanese", "a", "b", "length_1", "offset", "k", "tmp", "LangJa", "_super", "__extends", "index", "mnemonic", "words", "langJa", "require_lang_ko", "__commonJSMin", "exports", "strings_1", "wordlist_1", "data", "codes", "getHangul", "code", "wordlist", "loadWords", "lang", "length", "i", "word", "j", "LangKo", "_super", "__extends", "index", "langKo", "require_lang_it", "__commonJSMin", "exports", "wordlist_1", "words", "wordlist", "loadWords", "lang", "LangIt", "_super", "__extends", "index", "word", "langIt", "require_lang_zh", "__commonJSMin", "exports", "strings_1", "wordlist_1", "data", "deltaData", "wordlist", "Checks", "codes", "style", "loadWords", "lang", "deltaOffset", "i", "s", "bytes", "common", "i_1", "LangZh", "_super", "__extends", "country", "index", "word", "mnemonic", "langZhCn", "langZhTw", "lang_cz_1", "lang_en_1", "lang_es_1", "lang_fr_1", "lang_ja_1", "lang_ko_1", "lang_it_1", "lang_zh_1", "exports", "require_lib", "__commonJSMin", "exports", "wordlist_1", "wordlists_1", "exports", "require_lib", "__commonJSMin", "exports", "basex_1", "bytes_1", "bignumber_1", "strings_1", "pbkdf2_1", "properties_1", "signing_key_1", "sha2_1", "transactions_1", "wordlists_1", "logger_1", "_version_1", "logger", "N", "MasterSecret", "HardenedBit", "getUpperMask", "bits", "getLowerMask", "bytes32", "value", "base58check", "data", "getWordlist", "wordlist", "words", "_constructorGuard", "HDNode", "constructorGuard", "privateKey", "publicKey", "parentFingerprint", "chainCode", "index", "depth", "mnemonicOrPath", "signingKey", "path", "i", "I", "IL", "IR", "ki", "Ki", "ek", "srcMnemonic", "components", "result", "component", "seed", "mnemonic", "seedArray", "password", "entropyToMnemonic", "mnemonicToEntropy", "mnemonicToSeed", "extendedKey", "bytes", "key", "salt", "entropy", "offset", "bit", "entropyBits", "checksumBits", "checksumMask", "checksum", "indices", "remainingBits", "isValidMnemonic", "getAccountPath", "crypto_1", "bytes_1", "randomBytes", "length", "exports", "require_shuffle", "__commonJSMin", "exports", "shuffled", "array", "i", "j", "tmp", "require_lib", "__commonJSMin", "exports", "random_1", "shuffle_1", "require_aes_js", "__commonJSMin", "exports", "module", "root", "checkInt", "value", "checkInts", "arrayish", "i", "coerceArray", "arg", "copy", "createArray", "length", "copyArray", "sourceArray", "targetArray", "targetStart", "sourceStart", "sourceEnd", "convertUtf8", "toBytes", "text", "result", "c", "fromBytes", "bytes", "convertHex", "Hex", "v", "numberOfRounds", "rcon", "S", "Si", "T1", "T2", "T3", "T4", "T5", "T6", "T7", "T8", "U1", "U2", "U3", "U4", "convertToInt32", "AES", "key", "rounds", "roundKeyCount", "KC", "tk", "index", "rconpointer", "t", "tt", "r", "plaintext", "a", "ciphertext", "ModeOfOperationECB", "block", "ModeOfOperationCBC", "iv", "j", "ModeOfOperationCFB", "segmentSize", "encrypted", "xorSegment", "ModeOfOperationOFB", "Counter", "initialValue", "ModeOfOperationCTR", "counter", "pkcs7pad", "data", "padder", "pkcs7strip", "aesjs", "exports", "require_utils", "__commonJSMin", "exports", "bytes_1", "strings_1", "looseArrayify", "hexString", "zpad", "value", "length", "getPassword", "password", "searchPath", "object", "path", "currentChild", "comps", "i", "matchingChild", "key", "uuidV4", "randomBytes", "bytes", "require_crowdsale", "__commonJSMin", "exports", "aes_js_1", "__importDefault", "address_1", "bytes_1", "keccak256_1", "pbkdf2_1", "strings_1", "properties_1", "logger_1", "_version_1", "logger", "utils_1", "CrowdsaleAccount", "_super", "__extends", "value", "decrypt", "json", "password", "data", "ethaddr", "encseed", "key", "iv", "encryptedSeed", "aesCbc", "seed", "seedHex", "i", "seedHexBytes", "privateKey", "require_inspect", "__commonJSMin", "exports", "address_1", "isCrowdsaleWallet", "json", "data", "isKeystoreWallet", "getJsonWalletAddress", "require_scrypt", "__commonJSMin", "exports", "module", "root", "SHA256", "m", "K", "h0", "h1", "h2", "h3", "h4", "h5", "h6", "h7", "w", "blocks", "p", "off", "len", "a", "b", "c", "d", "e", "f", "g", "h", "u", "i", "j", "t1", "t2", "bytesLeft", "bitLenHi", "bitLenLo", "numZeros", "PBKDF2_HMAC_SHA256_OneIter", "password", "salt", "dkLen", "innerLen", "inner", "outerKey", "dk", "incrementCounter", "blockmix_salsa8", "BY", "Yi", "r", "x", "_X", "arraycopy", "blockxor", "salsa20_8", "R", "B", "S", "Si", "D", "src", "srcPos", "dest", "destPos", "length", "checkBufferish", "o", "v", "ensureInteger", "value", "name", "_scrypt", "N", "callback", "XY", "V", "totalOps", "currentOp", "lastPercent10", "stop", "state", "i0", "i1", "Bi", "limit", "nextTick", "incrementalSMix", "steps", "percent10", "offset", "derivedKey", "lib", "progressCallback", "resolve", "reject", "lastProgress", "error", "progress", "key", "require_keystore", "__commonJSMin", "exports", "aes_js_1", "__importDefault", "scrypt_js_1", "address_1", "bytes_1", "hdnode_1", "keccak256_1", "pbkdf2_1", "random_1", "properties_1", "transactions_1", "utils_1", "logger_1", "_version_1", "logger", "hasMnemonic", "value", "KeystoreAccount", "_super", "__extends", "_decrypt", "data", "key", "ciphertext", "cipher", "iv", "counter", "aesCtr", "_getAccount", "computedMAC", "privateKey", "mnemonicKey", "address", "check", "account", "mnemonicCiphertext", "mnemonicIv", "mnemonicCounter", "mnemonicAesCtr", "path", "locale", "entropy", "mnemonic", "node", "error", "pbkdf2Sync", "passwordBytes", "salt", "count", "dkLen", "prfFunc", "pbkdf2", "_computeKdfKey", "password", "pbkdf2Func", "scryptFunc", "progressCallback", "kdf", "throwError", "name", "N", "r", "p", "prf", "decryptSync", "json", "decrypt", "_a", "encrypt", "options", "e", "srcMnemonic", "client", "uuidRandom", "derivedKey", "macPrefix", "mac", "now", "timestamp", "require_lib", "__commonJSMin", "exports", "crowdsale_1", "inspect_1", "keystore_1", "decryptJsonWallet", "json", "password", "progressCallback", "account", "decryptJsonWalletSync", "exports", "require_lib", "__commonJSMin", "exports", "address_1", "abstract_provider_1", "abstract_signer_1", "bytes_1", "hash_1", "hdnode_1", "keccak256_1", "properties_1", "random_1", "signing_key_1", "json_wallets_1", "transactions_1", "logger_1", "_version_1", "logger", "isAccount", "value", "hasMnemonic", "mnemonic", "Wallet", "_super", "__extends", "privateKey", "provider", "_this", "signingKey_1", "srcMnemonic_1", "node", "signingKey_2", "transaction", "tx", "signature", "message", "domain", "types", "name", "populated", "_a", "password", "options", "progressCallback", "entropy", "json", "account", "path", "wordlist", "verifyMessage", "verifyTypedData", "exports", "require_lib", "__commonJSMin", "exports", "logger_1", "_version_1", "logger", "isRenetworkable", "value", "ethDefaultProvider", "network", "func", "providers", "options", "providerList", "skip", "provider", "quorum", "etcDefaultProvider", "url", "homestead", "ropsten", "classicMordor", "networks", "getNetwork", "name_1", "standard_1", "standard_2", "standard", "defaultProvider", "exports", "require_geturl", "__commonJSMin", "exports", "http_1", "__importDefault", "https_1", "zlib_1", "url_1", "bytes_1", "properties_1", "logger_1", "_version_1", "logger", "getResponse", "request", "resolve", "reject", "resp", "response", "accum", "name", "value", "chunk", "error", "nonnull", "getUrl", "href", "options", "url", "req", "_a", "require_lib", "__commonJSMin", "exports", "base64_1", "bytes_1", "properties_1", "strings_1", "logger_1", "_version_1", "logger", "geturl_1", "staller", "duration", "resolve", "bodyify", "value", "type", "unpercent", "all", "code", "_fetchData", "connection", "body", "processFunc", "attemptLimit", "throttleCallback", "throttleSlotInterval", "errorPassThrough", "headers", "url", "options", "allow304", "timeout", "key", "authorization", "reData", "dataMatch", "response", "result", "error", "flatHeaders", "header", "runningTimeout", "timer", "promise", "reject", "cancel", "runningFetch", "attempt", "_a", "location_1", "tryAgain", "stall", "retryAfter", "error_1", "body_1", "error_2", "timeout_1", "fetchJson", "json", "processJsonFunc", "updated", "hasContentType", "k", "poll", "func", "done", "retryLimit", "check", "require_bech32", "__commonJSMin", "exports", "module", "ALPHABET", "ALPHABET_MAP", "z", "x", "polymodStep", "pre", "b", "prefixChk", "prefix", "chk", "i", "c", "v", "encode", "words", "LIMIT", "result", "__decode", "str", "lowered", "uppered", "split", "wordChars", "decodeUnsafe", "res", "decode", "convert", "data", "inBits", "outBits", "pad", "value", "bits", "maxV", "toWordsUnsafe", "bytes", "toWords", "fromWordsUnsafe", "fromWords", "exports", "require_formatter", "__commonJSMin", "exports", "address_1", "bignumber_1", "bytes_1", "constants_1", "properties_1", "transactions_1", "logger_1", "_version_1", "logger", "Formatter", "_this", "formats", "address", "bigNumber", "blockTag", "data", "hash", "hex", "number", "type", "strictData", "v", "accessList", "value", "strict", "result", "format", "difficulty", "transaction", "chainId", "value_1", "object", "key", "error", "nullValue", "replaceValue", "array", "isCommunityResourcable", "isCommunityResource", "throttleMessage", "showThrottleMessage", "require_base_provider", "__commonJSMin", "exports", "abstract_provider_1", "base64_1", "basex_1", "bignumber_1", "bytes_1", "constants_1", "hash_1", "networks_1", "properties_1", "sha2_1", "strings_1", "web_1", "bech32_1", "__importDefault", "logger_1", "_version_1", "logger", "formatter_1", "MAX_CCIP_REDIRECTS", "checkTopic", "topic", "serializeTopics", "topics", "unique_1", "sorted", "deserializeTopics", "data", "comps", "getEventTag", "eventName", "getTime", "stall", "duration", "resolve", "PollableEvents", "Event", "tag", "listener", "once", "address", "filter", "coinInfos", "bytes32ify", "value", "base58Encode", "matcherIpfs", "matchers", "_parseString", "result", "start", "_parseBytes", "offset", "length", "getIpfsLink", "link", "numPad", "padded", "bytesPad", "encodeBytes", "datas", "byteCount", "i", "Resolver", "provider", "name", "resolvedAddress", "_this", "error", "selector", "parameters", "tx", "parseBytes", "_a", "error_1", "coinType", "hexBytes", "coinInfo", "bytes", "p2pkh", "length_1", "p2sh", "length_2", "length_3", "version_1", "words", "error_2", "linkage", "avatar", "_h", "match", "scheme", "_b", "owner", "addr", "tokenId", "_d", "_c", "tokenOwner", "_f", "_e", "balance", "_g", "metadataUrl", "metadata", "imageUrl", "ipfs", "length_4", "ipns", "length_5", "swarm", "skynet", "urlSafe_1", "hash", "a", "key", "keyBytes", "defaultFormatter", "nextPollId", "BaseProvider", "_super", "__extends", "network", "_newTarget", "knownNetwork", "calldata", "urls", "sender", "errorMessages", "url", "href", "json", "response", "errorMessage", "m", "maxAge", "internalBlockNumber", "reqTime", "checkInternalBlockNumber", "blockNumber", "networkError", "respTime", "pollId", "runners", "error_6", "eventBlockNumber", "event", "hash_2", "runner", "receipt", "filter_1", "minFromBlock", "logs", "log", "currentNetwork", "now", "transactionHash", "confirmations", "timeout", "replaceable", "reject", "cancelFuncs", "done", "alreadyDone", "func", "minedHandler", "lastBlockNumber_1", "scannedBlock_1", "replaceHandler_1", "__awaiter", "nonce", "mined", "block", "ti", "receipt_1", "reason", "timer_1", "addressOrName", "blockTag", "params", "position", "p", "startBlock", "confirms", "replacement", "signedTransaction", "t", "hexTx", "error_7", "transaction", "values", "v", "attempt", "txSender", "urlsOffset", "urlsLength", "urlsData", "u", "callbackSelector", "extraData", "ccipResult", "error_8", "resolved", "blockHashOrBlockTag", "includeTransactions", "blockNumber_1", "blockWithTxs", "currentName", "resolver", "operation", "addrData", "node", "resolverAddr", "nameOrAddress", "resolverAddress", "avatar_1", "error_11", "name_1", "error_12", "method", "e", "args", "_i", "stopped", "eventTag", "found", "eventTag_1", "require_json_rpc_provider", "__commonJSMin", "exports", "abstract_signer_1", "bignumber_1", "bytes_1", "hash_1", "properties_1", "strings_1", "transactions_1", "web_1", "logger_1", "_version_1", "logger", "base_provider_1", "errorGas", "spelunk", "value", "requireData", "data", "key", "result", "checkError", "method", "error", "params", "transaction", "message", "timer", "timeout", "resolve", "getResult", "payload", "getLowerCase", "_constructorGuard", "JsonRpcSigner", "_super", "__extends", "constructorGuard", "provider", "addressOrIndex", "_this", "UncheckedJsonRpcSigner", "accounts", "fromAddress", "address", "estimate", "to", "__awaiter", "_a", "tx", "sender", "hexTx", "hash", "blockNumber", "error_1", "error_2", "error_3", "domain", "types", "name", "populated", "error_4", "password", "confirmations", "allowedTransactionKeys", "JsonRpcProvider", "url", "network", "networkOrReady", "reject", "chainId", "getNetwork", "a", "request", "cache", "hexlifyTransaction", "feeData", "args", "error_7", "event", "self", "pendingFilter", "filterId", "poll", "hashes", "seq", "allowExtra", "allowed", "require_constants", "__commonJSMin", "exports", "module", "require_node_gyp_build", "__commonJSMin", "exports", "module", "fs", "path", "os", "runtimeRequire", "vars", "prebuildsOnly", "abi", "runtime", "isElectron", "arch", "platform", "libc", "isAlpine", "armv", "uv", "load", "dir", "name", "release", "getFirst", "matchBuild", "debug", "prebuild", "resolve", "nearby", "target", "tuples", "readdirSync", "parseTuple", "tuple", "matchTuple", "compareTuples", "prebuilds", "parsed", "parseTags", "candidates", "matchTags", "winner", "compareTags", "filter", "files", "arr", "architectures", "a", "b", "file", "extension", "tags", "i", "tag", "runtimeAgnostic", "require_fallback", "__commonJSMin", "exports", "module", "mask", "source", "output", "offset", "length", "i", "unmask", "buffer", "require_bufferutil", "__commonJSMin", "exports", "module", "require_buffer_util", "__commonJSMin", "exports", "module", "EMPTY_BUFFER", "concat", "list", "totalLength", "target", "offset", "i", "buf", "_mask", "source", "mask", "output", "length", "_unmask", "buffer", "toArrayBuffer", "toBuffer", "data", "bufferUtil", "bu", "require_limiter", "__commonJSMin", "exports", "module", "kDone", "kRun", "Limiter", "concurrency", "job", "require_permessage_deflate", "__commonJSMin", "exports", "module", "zlib", "bufferUtil", "Limiter", "kStatusCode", "NOOP", "TRAILER", "kPerMessageDeflate", "kTotalLength", "kCallback", "kBuffers", "kError", "zlibLimiter", "PerMessageDeflate", "options", "isServer", "maxPayload", "concurrency", "params", "configurations", "callback", "offers", "opts", "accepted", "response", "key", "value", "num", "data", "fin", "done", "err", "result", "endpoint", "windowBits", "inflateOnError", "inflateOnData", "deflateOnData", "chunk", "require_fallback", "__commonJSMin", "exports", "module", "isValidUTF8", "buf", "len", "i", "require_utf_8_validate", "__commonJSMin", "exports", "module", "require_validation", "__commonJSMin", "exports", "module", "isValidStatusCode", "code", "_isValidUTF8", "buf", "len", "i", "isValidUTF8", "require_receiver", "__commonJSMin", "exports", "module", "Writable", "PerMessageDeflate", "BINARY_TYPES", "EMPTY_BUFFER", "kStatusCode", "kWebSocket", "concat", "toArrayBuffer", "unmask", "isValidStatusCode", "isValidUTF8", "GET_INFO", "GET_PAYLOAD_LENGTH_16", "GET_PAYLOAD_LENGTH_64", "GET_MASK", "GET_DATA", "INFLATING", "Receiver", "binaryType", "extensions", "isServer", "maxPayload", "chunk", "encoding", "cb", "n", "buf", "dst", "offset", "err", "error", "compressed", "num", "data", "er", "messageLength", "fragments", "code", "ErrorCtor", "message", "prefix", "statusCode", "require_sender", "__commonJSMin", "exports", "module", "randomFillSync", "PerMessageDeflate", "EMPTY_BUFFER", "isValidStatusCode", "applyMask", "toBuffer", "mask", "Sender", "socket", "extensions", "data", "options", "merge", "offset", "payloadLength", "target", "code", "cb", "buf", "length", "readOnly", "perMessageDeflate", "opcode", "rsv1", "opts", "compress", "_", "err", "i", "callback", "params", "list", "require_event_target", "__commonJSMin", "exports", "module", "Event", "type", "target", "MessageEvent", "data", "CloseEvent", "code", "reason", "OpenEvent", "ErrorEvent", "error", "EventTarget", "listener", "options", "onMessage", "onClose", "message", "onError", "onOpen", "method", "listeners", "i", "require_extension", "__commonJSMin", "exports", "module", "tokenChars", "push", "dest", "name", "elem", "parse", "header", "offers", "params", "mustUnescape", "isEscaping", "inQuotes", "extensionName", "paramName", "start", "end", "i", "code", "value", "token", "format", "extensions", "extension", "configurations", "k", "values", "v", "require_websocket", "__commonJSMin", "exports", "module", "EventEmitter", "https", "http", "net", "tls", "randomBytes", "createHash", "URL", "PerMessageDeflate", "Receiver", "Sender", "BINARY_TYPES", "EMPTY_BUFFER", "GUID", "kStatusCode", "kWebSocket", "NOOP", "addEventListener", "removeEventListener", "format", "parse", "toBuffer", "readyStates", "protocolVersions", "closeTimeout", "WebSocket", "address", "protocols", "options", "initAsClient", "type", "socket", "head", "maxPayload", "receiver", "receiverOnConclude", "receiverOnDrain", "receiverOnError", "receiverOnMessage", "receiverOnPing", "receiverOnPong", "socketOnClose", "socketOnData", "socketOnEnd", "socketOnError", "code", "data", "msg", "abortHandshake", "err", "mask", "cb", "sendAfterClose", "opts", "readyState", "i", "descriptor", "property", "method", "listeners", "listener", "websocket", "parsedUrl", "isUnixSocket", "isSecure", "defaultPort", "key", "get", "perMessageDeflate", "tlsConnect", "netConnect", "parts", "req", "res", "location", "statusCode", "addr", "digest", "serverProt", "protList", "protError", "extensions", "stream", "message", "length", "reason", "receiverOnFinish", "chunk", "require_stream", "__commonJSMin", "exports", "module", "Duplex", "emitClose", "stream", "duplexOnEnd", "duplexOnError", "err", "createWebSocketStream", "ws", "options", "resumeOnReceiverDrain", "receiverOnDrain", "duplex", "msg", "callback", "called", "chunk", "encoding", "require_websocket_server", "__commonJSMin", "exports", "module", "EventEmitter", "createHash", "createServer", "STATUS_CODES", "PerMessageDeflate", "WebSocket", "format", "parse", "GUID", "kWebSocket", "keyRegex", "WebSocketServer", "options", "callback", "req", "res", "body", "emitConnection", "addListeners", "socket", "head", "cb", "client", "server", "emitClose", "index", "socketOnError", "key", "version", "extensions", "abortHandshake", "perMessageDeflate", "offers", "info", "verified", "code", "message", "headers", "ws", "protocol", "trim", "params", "value", "map", "event", "h", "str", "require_ws", "__commonJSMin", "exports", "module", "WebSocket", "ws_1", "__importDefault", "exports", "require_websocket_provider", "__commonJSMin", "exports", "bignumber_1", "properties_1", "json_rpc_provider_1", "ws_1", "logger_1", "_version_1", "logger", "NextId", "WebSocketProvider", "_super", "__extends", "url", "network", "_this", "id", "messageEvent", "data", "result", "request", "error", "sub", "fauxPoll", "value", "blockNumber", "method", "params", "rid", "resolve", "reject", "callback", "payload", "tag", "param", "processFunc", "subIdPromise", "subId", "_a", "event", "emitReceipt_1", "hash", "receipt", "e", "require_url_json_rpc_provider", "__commonJSMin", "exports", "properties_1", "logger_1", "_version_1", "logger", "json_rpc_provider_1", "StaticJsonRpcProvider", "_super", "__extends", "network", "_a", "UrlJsonRpcProvider", "apiKey", "_this", "_newTarget", "connection", "key", "address", "require_alchemy_provider", "__commonJSMin", "exports", "properties_1", "formatter_1", "websocket_provider_1", "logger_1", "_version_1", "logger", "url_json_rpc_provider_1", "defaultApiKey", "AlchemyWebSocketProvider", "_super", "__extends", "network", "apiKey", "_this", "provider", "AlchemyProvider", "url", "host", "attempt", "formatter_1", "url_json_rpc_provider_1", "logger_1", "_version_1", "logger", "defaultApiKey", "getHost", "name", "AnkrProvider", "_super", "__extends", "apiKey", "network", "connection", "attempt", "url", "exports", "require_cloudflare_provider", "__commonJSMin", "exports", "url_json_rpc_provider_1", "logger_1", "_version_1", "logger", "CloudflareProvider", "_super", "__extends", "apiKey", "network", "host", "method", "params", "block", "_a", "require_etherscan_provider", "__commonJSMin", "exports", "bytes_1", "properties_1", "transactions_1", "web_1", "formatter_1", "logger_1", "_version_1", "logger", "base_provider_1", "getTransactionPostData", "transaction", "result", "key", "value", "set", "getResult", "error", "getJsonResult", "checkLogTag", "blockTag", "checkError", "method", "e", "data", "message", "EtherscanProvider", "_super", "__extends", "network", "apiKey", "_this", "module", "params", "query", "accum", "post", "url", "payload", "procFunc", "connection", "attempt", "payloadStr", "_a", "postData", "_c", "error_1", "error_2", "args", "topic0", "logs", "blocks", "i", "log", "block", "_b", "addressOrName", "startBlock", "endBlock", "tx", "item", "require_fallback_provider", "__commonJSMin", "exports", "abstract_provider_1", "bignumber_1", "bytes_1", "properties_1", "random_1", "web_1", "base_provider_1", "formatter_1", "logger_1", "_version_1", "logger", "now", "checkNetworks", "networks", "result", "i", "network", "median", "values", "maxDelta", "middle", "a", "b", "serialize", "value", "keys", "key", "v", "nextRid", "stall", "duration", "cancel", "timer", "promise", "resolve", "wait", "func", "getPromise", "ForwardErrors", "ForwardProperties", "exposeDebugConfig", "config", "normalizedTally", "normalize", "quorum", "configs", "tally", "c", "check", "getProcessFunc", "provider", "method", "params", "blockNumber", "tx", "block", "waitForSync", "reject", "getRunner", "currentBlockNumber", "_a", "_b", "filter", "FallbackProvider", "_super", "__extends", "providers", "_this", "providerConfigs", "configOrProvider", "index", "stallTimeout", "priority", "weight", "total", "accum", "networkOrReady", "error", "results", "i_1", "processFunc", "first", "t0", "inflightWeight", "rid", "this_1", "waiting", "errors", "code", "errorCode", "e", "props", "name", "require_ipc_provider", "__commonJSMin", "exports", "net_1", "properties_1", "logger_1", "_version_1", "logger", "json_rpc_provider_1", "IpcProvider", "_super", "__extends", "path", "network", "_this", "method", "params", "payload", "resolve", "reject", "response", "stream", "data", "error", "require_infura_provider", "__commonJSMin", "exports", "properties_1", "websocket_provider_1", "formatter_1", "logger_1", "_version_1", "logger", "url_json_rpc_provider_1", "defaultProjectId", "InfuraWebSocketProvider", "_super", "__extends", "network", "apiKey", "_this", "provider", "InfuraProvider", "connection", "url", "apiKeyObj", "host", "attempt", "properties_1", "web_1", "json_rpc_provider_1", "JsonRpcBatchProvider", "_super", "__extends", "method", "params", "_this", "request", "inflightRequest", "promise", "resolve", "reject", "batch", "inflight", "result", "index", "payload", "error", "exports", "require_nodesmith_provider", "__commonJSMin", "exports", "url_json_rpc_provider_1", "logger_1", "_version_1", "logger", "defaultApiKey", "NodesmithProvider", "_super", "__extends", "apiKey", "network", "host", "require_pocket_provider", "__commonJSMin", "exports", "logger_1", "_version_1", "logger", "url_json_rpc_provider_1", "defaultApplicationId", "PocketProvider", "_super", "__extends", "apiKey", "apiKeyObj", "network", "host", "url", "connection", "require_web3_provider", "__commonJSMin", "exports", "properties_1", "logger_1", "_version_1", "logger", "json_rpc_provider_1", "_nextId", "buildWeb3LegacyFetcher", "provider", "sendFunc", "fetcher", "method", "params", "_this", "request", "resolve", "reject", "error", "response", "error_1", "buildEip1193Fetcher", "Web3Provider", "_super", "__extends", "network", "path", "jsonRpcFetchFunc", "subprovider", "require_lib", "__commonJSMin", "exports", "abstract_provider_1", "networks_1", "base_provider_1", "alchemy_provider_1", "ankr_provider_1", "cloudflare_provider_1", "etherscan_provider_1", "fallback_provider_1", "ipc_provider_1", "infura_provider_1", "json_rpc_provider_1", "json_rpc_batch_provider_1", "nodesmith_provider_1", "pocket_provider_1", "url_json_rpc_provider_1", "web3_provider_1", "websocket_provider_1", "formatter_1", "logger_1", "_version_1", "logger", "getDefaultProvider", "network", "options", "match", "n", "exports", "require_lib", "__commonJSMin", "exports", "bignumber_1", "bytes_1", "keccak256_1", "sha2_1", "strings_1", "regexBytes", "regexNumber", "regexArray", "Zeros", "logger_1", "_version_1", "logger", "_pack", "type", "value", "isArray", "match", "size", "baseType_1", "count", "result_1", "pack", "types", "values", "tight", "index", "keccak256", "sha256", "exports", "require_lib", "__commonJSMin", "exports", "bignumber_1", "logger_1", "_version_1", "logger", "names", "commify", "value", "comps", "whole", "negative", "suffix", "formatted", "index", "formatUnits", "unitName", "parseUnits", "formatEther", "wei", "parseEther", "ether", "require_utils", "__commonJSMin", "exports", "abi_1", "address_1", "base64", "__importStar", "basex_1", "bytes_1", "hash_1", "hdnode_1", "json_wallets_1", "keccak256_1", "logger_1", "sha2_1", "solidity_1", "random_1", "properties_1", "RLP", "signing_key_1", "strings_1", "transactions_1", "units_1", "wallet_1", "web_1", "sha2_2", "strings_2", "exports", "require_ethers", "__commonJSMin", "exports", "contracts_1", "bignumber_1", "abstract_signer_1", "wallet_1", "constants", "__importStar", "providers", "providers_1", "wordlists_1", "utils", "logger_1", "_version_1", "logger", "require_lib", "__commonJSMin", "exports", "ethers", "__importStar", "anyGlobal", "ethers_1", "require_bignumber", "__commonJSMin", "exports", "module", "globalObject", "BigNumber", "isNumeric", "mathceil", "mathfloor", "bignumberError", "tooManyDigits", "BASE", "LOG_BASE", "MAX_SAFE_INTEGER", "POWS_TEN", "SQRT_BASE", "MAX", "clone", "configObject", "div", "convertBase", "parseNumeric", "P", "ONE", "DECIMAL_PLACES", "ROUNDING_MODE", "TO_EXP_NEG", "TO_EXP_POS", "MIN_EXP", "MAX_EXP", "CRYPTO", "MODULO_MODE", "POW_PRECISION", "FORMAT", "ALPHABET", "alphabetHasNormalDecimalDigits", "v", "b", "alphabet", "c", "caseChanged", "e", "i", "isNum", "len", "str", "x", "intCheck", "round", "obj", "p", "n", "s", "out", "maxOrMin", "pow2_53", "random53bitInt", "dp", "a", "k", "rand", "args", "sum", "decimal", "toBaseOut", "baseIn", "baseOut", "j", "arr", "arrL", "sign", "callerIsToString", "d", "r", "xc", "y", "rm", "toFixedPoint", "coeffToString", "multiply", "base", "m", "temp", "xlo", "xhi", "carry", "klo", "khi", "compare", "aL", "bL", "cmp", "subtract", "more", "prod", "prodL", "q", "qc", "rem", "remL", "rem0", "xi", "xL", "yc0", "yL", "yz", "yc", "bitFloor", "format", "id", "c0", "ne", "toExponential", "method", "normalise", "basePrefix", "dotAfter", "dotBefore", "isInfinityOrNaN", "whitespaceOrPlus", "p1", "p2", "sd", "ni", "rd", "pows10", "valueOf", "half", "isModExp", "nIsBig", "nIsNeg", "nIsOdd", "isOdd", "t", "xLTy", "xe", "ye", "xcL", "ycL", "ylo", "yhi", "zc", "sqrtBase", "rep", "g1", "g2", "groupSeparator", "intPart", "fractionPart", "isNeg", "intDigits", "md", "d0", "d1", "d2", "exp", "n0", "n1", "z", "l", "min", "max", "name", "zs", "rlp_1", "bignumber_js_1", "splitPath", "path", "result", "components", "element", "number", "exports", "hexBuffer", "str", "maybeHexBuffer", "decodeTxInfo", "rawTx", "VALID_TYPES", "txType", "rlpData", "rlpTx", "hex", "chainIdTruncated", "rlpDecoded", "decodedTx", "chainIdSrc", "chainId", "chainIdTruncatedBuf", "vrsOffset", "rlpVrs", "sizeOfListLen", "intAsHexBytes", "int", "bytes", "ERC20_CLEAR_SIGNED_SELECTORS", "ERC721_CLEAR_SIGNED_SELECTORS", "ERC1155_CLEAR_SIGNED_SELECTORS", "__spreadArray", "__read", "mergeResolutions", "oldResolution", "newResolution", "resolutions", "key", "_a", "_b", "id", "subscribers", "log", "type", "message", "data", "obj", "dispatch", "exports", "listen", "cb", "i", "require_bind", "__commonJSMin", "exports", "module", "fn", "thisArg", "args", "i", "require_utils", "__commonJSMin", "exports", "module", "bind", "toString", "isArray", "val", "isUndefined", "isBuffer", "isArrayBuffer", "isFormData", "isArrayBufferView", "result", "isString", "isNumber", "isObject", "isPlainObject", "prototype", "isDate", "isFile", "isBlob", "isFunction", "isStream", "isURLSearchParams", "trim", "str", "isStandardBrowserEnv", "forEach", "obj", "fn", "i", "l", "key", "merge", "assignValue", "extend", "a", "b", "thisArg", "stripBOM", "content", "require_buildURL", "__commonJSMin", "exports", "module", "utils", "encode", "val", "url", "params", "paramsSerializer", "serializedParams", "parts", "key", "v", "hashmarkIndex", "require_InterceptorManager", "__commonJSMin", "exports", "module", "utils", "InterceptorManager", "fulfilled", "rejected", "options", "id", "fn", "h", "require_normalizeHeaderName", "__commonJSMin", "exports", "module", "utils", "headers", "normalizedName", "value", "name", "require_enhanceError", "__commonJSMin", "exports", "module", "error", "config", "code", "request", "response", "require_transitional", "__commonJSMin", "exports", "module", "require_createError", "__commonJSMin", "exports", "module", "enhanceError", "message", "config", "code", "request", "response", "error", "require_settle", "__commonJSMin", "exports", "module", "createError", "resolve", "reject", "response", "validateStatus", "require_cookies", "__commonJSMin", "exports", "module", "utils", "name", "value", "expires", "path", "domain", "secure", "cookie", "match", "require_isAbsoluteURL", "__commonJSMin", "exports", "module", "url", "require_combineURLs", "__commonJSMin", "exports", "module", "baseURL", "relativeURL", "require_buildFullPath", "__commonJSMin", "exports", "module", "isAbsoluteURL", "combineURLs", "baseURL", "requestedURL", "require_parseHeaders", "__commonJSMin", "exports", "module", "utils", "ignoreDuplicateOf", "headers", "parsed", "key", "val", "i", "line", "require_isURLSameOrigin", "__commonJSMin", "exports", "module", "utils", "msie", "urlParsingNode", "originURL", "resolveURL", "url", "href", "requestURL", "parsed", "require_Cancel", "__commonJSMin", "exports", "module", "Cancel", "message", "require_xhr", "__commonJSMin", "exports", "module", "utils", "settle", "cookies", "buildURL", "buildFullPath", "parseHeaders", "isURLSameOrigin", "createError", "transitionalDefaults", "Cancel", "config", "resolve", "reject", "requestData", "requestHeaders", "responseType", "onCanceled", "done", "request", "username", "password", "fullPath", "onloadend", "responseHeaders", "responseData", "response", "value", "err", "timeoutErrorMessage", "transitional", "xsrfValue", "val", "key", "cancel", "require_ms", "__commonJSMin", "exports", "module", "s", "m", "h", "d", "w", "y", "val", "options", "type", "parse", "fmtLong", "fmtShort", "str", "match", "n", "ms", "msAbs", "plural", "name", "isPlural", "require_common", "__commonJSMin", "exports", "module", "setup", "env", "createDebug", "coerce", "disable", "enable", "enabled", "destroy", "key", "selectColor", "namespace", "hash", "i", "prevTime", "enableOverride", "namespacesCache", "enabledCache", "debug", "args", "self", "curr", "ms", "index", "match", "format", "formatter", "val", "extend", "v", "delimiter", "newDebug", "namespaces", "split", "len", "toNamespace", "name", "regexp", "require_browser", "__commonJSMin", "exports", "module", "formatArgs", "save", "load", "useColors", "localstorage", "warned", "args", "c", "index", "lastC", "match", "namespaces", "r", "formatters", "v", "error", "require_has_flag", "__commonJSMin", "exports", "module", "flag", "argv", "prefix", "position", "terminatorPosition", "require_supports_color", "__commonJSMin", "exports", "module", "os", "tty", "hasFlag", "env", "forceColor", "translateLevel", "level", "supportsColor", "haveStream", "streamIsTTY", "min", "osRelease", "sign", "version", "getSupportLevel", "stream", "require_node", "__commonJSMin", "exports", "module", "tty", "util", "init", "log", "formatArgs", "save", "load", "useColors", "supportsColor", "key", "obj", "prop", "_", "k", "val", "args", "name", "c", "colorCode", "prefix", "getDate", "namespaces", "debug", "keys", "i", "formatters", "v", "str", "require_src", "__commonJSMin", "exports", "module", "require_debug", "__commonJSMin", "exports", "module", "debug", "require_follow_redirects", "__commonJSMin", "exports", "module", "url", "URL", "http", "https", "Writable", "assert", "debug", "events", "eventHandlers", "event", "arg1", "arg2", "arg3", "InvalidUrlError", "createErrorType", "RedirectionError", "TooManyRedirectsError", "MaxBodyLengthExceededError", "WriteAfterEndError", "RedirectableRequest", "options", "responseCallback", "self", "response", "abortRequest", "data", "encoding", "callback", "isString", "isBuffer", "isFunction", "currentRequest", "name", "value", "msecs", "destroyOnTimeout", "socket", "startTimer", "clearTimer", "method", "b", "property", "searchPos", "protocol", "nativeProtocol", "scheme", "request", "i", "buffers", "writeNext", "error", "buffer", "statusCode", "location", "requestHeaders", "beforeRedirect", "removeMatchingHeaders", "currentHostHeader", "currentUrlParts", "currentHost", "currentUrl", "redirectUrl", "cause", "redirectUrlParts", "isSubdomain", "responseDetails", "requestDetails", "err", "wrap", "protocols", "nativeProtocols", "wrappedProtocol", "input", "parsed", "urlToOptions", "get", "wrappedRequest", "noop", "urlObject", "regex", "headers", "lastValue", "header", "code", "message", "baseClass", "CustomError", "properties", "subdomain", "domain", "dot", "require_data", "__commonJSMin", "exports", "module", "require_http", "__commonJSMin", "exports", "module", "utils", "settle", "buildFullPath", "buildURL", "http", "https", "httpFollow", "httpsFollow", "url", "zlib", "VERSION", "createError", "enhanceError", "transitionalDefaults", "Cancel", "isHttps", "setProxy", "options", "proxy", "location", "base64", "redirection", "config", "resolvePromise", "rejectPromise", "onCanceled", "done", "resolve", "value", "rejected", "reject", "data", "headers", "headerNames", "name", "auth", "username", "password", "fullPath", "parsed", "protocol", "urlAuth", "urlUsername", "urlPassword", "isHttpsRequest", "agent", "err", "customErr", "proxyEnv", "proxyUrl", "parsedProxyUrl", "noProxyEnv", "shouldProxy", "noProxy", "s", "proxyElement", "proxyUrlAuth", "transport", "isHttpsProxy", "req", "res", "stream", "lastRequest", "response", "responseBuffer", "totalResponseBytes", "chunk", "responseData", "socket", "timeout", "timeoutErrorMessage", "transitional", "cancel", "require_defaults", "__commonJSMin", "exports", "module", "utils", "normalizeHeaderName", "enhanceError", "transitionalDefaults", "DEFAULT_CONTENT_TYPE", "setContentTypeIfUnset", "headers", "value", "getDefaultAdapter", "adapter", "stringifySafely", "rawValue", "parser", "encoder", "e", "defaults", "data", "transitional", "silentJSONParsing", "forcedJSONParsing", "strictJSONParsing", "status", "method", "require_transformData", "__commonJSMin", "exports", "module", "utils", "defaults", "data", "headers", "fns", "context", "fn", "require_isCancel", "__commonJSMin", "exports", "module", "value", "require_dispatchRequest", "__commonJSMin", "exports", "module", "utils", "transformData", "isCancel", "defaults", "Cancel", "throwIfCancellationRequested", "config", "method", "adapter", "response", "reason", "require_mergeConfig", "__commonJSMin", "exports", "module", "utils", "config1", "config2", "config", "getMergedValue", "target", "source", "mergeDeepProperties", "prop", "valueFromConfig2", "defaultToConfig2", "mergeDirectKeys", "mergeMap", "merge", "configValue", "require_validator", "__commonJSMin", "exports", "module", "VERSION", "validators", "type", "i", "thing", "deprecatedWarnings", "validator", "version", "message", "formatMessage", "opt", "desc", "value", "opts", "assertOptions", "options", "schema", "allowUnknown", "keys", "result", "require_Axios", "__commonJSMin", "exports", "module", "utils", "buildURL", "InterceptorManager", "dispatchRequest", "mergeConfig", "validator", "validators", "Axios", "instanceConfig", "configOrUrl", "config", "transitional", "requestInterceptorChain", "synchronousRequestInterceptors", "interceptor", "responseInterceptorChain", "promise", "chain", "newConfig", "onFulfilled", "onRejected", "error", "method", "url", "data", "require_CancelToken", "__commonJSMin", "exports", "module", "Cancel", "CancelToken", "executor", "resolvePromise", "resolve", "token", "cancel", "i", "l", "onfulfilled", "_resolve", "promise", "message", "listener", "index", "require_spread", "__commonJSMin", "exports", "module", "callback", "arr", "require_isAxiosError", "__commonJSMin", "exports", "module", "utils", "payload", "require_axios", "__commonJSMin", "exports", "module", "utils", "bind", "Axios", "mergeConfig", "defaults", "createInstance", "defaultConfig", "context", "instance", "instanceConfig", "axios", "promises", "require_axios", "__commonJSMin", "exports", "module", "defaultLoadConfig", "getLoadConfig", "userLoadConfig", "__assign", "exports", "axios_1", "__importDefault", "loadConfig_1", "logs_1", "loadInfosForContractMethod", "contractAddress", "selector", "chainId", "userLoadConfig", "__awaiter", "_a", "pluginBaseURL", "extraPlugins", "data", "url_1", "r", "e", "_b", "__assign", "lcSelector", "lcContractAddress", "contractSelectors", "exports", "erc20_json_1", "__importDefault", "erc20_json_2", "erc20_json_3", "erc20_json_4", "erc20_json_5", "erc20_json_6", "erc20_json_7", "erc20_json_8", "erc20_json_9", "erc20_json_10", "erc20_json_11", "erc20_json_12", "erc20_json_13", "erc20_json_14", "erc20_signatures_json_1", "erc20_signatures_json_2", "erc20_signatures_json_3", "erc20_signatures_json_4", "erc20_signatures_json_5", "erc20_signatures_json_6", "erc20_signatures_json_7", "erc20_signatures_json_8", "erc20_signatures_json_9", "erc20_signatures_json_10", "erc20_signatures_json_11", "erc20_signatures_json_12", "erc20_signatures_json_13", "erc20_signatures_json_14", "exports", "axios_1", "__importDefault", "logs_1", "index_1", "loadConfig_1", "asContractAddress", "addr", "findERC20SignaturesInfo", "userLoadConfig", "chainId", "__awaiter", "cryptoassetsBaseURL", "url", "_a", "data", "e", "blob", "exports", "byContractAddressAndChainId", "contract", "erc20SignaturesBlob", "parse", "get", "_b", "buf", "map", "entries", "i", "length_1", "item", "j", "tickerLength", "ticker", "contractAddress", "decimals", "signature", "entry", "cache", "signatureBlob", "api", "axios_1", "__importDefault", "loadConfig_1", "logs_1", "getNFTInfo", "contractAddress", "chainId", "userLoadConfig", "__awaiter", "nftExplorerBaseURL", "url", "r", "e", "response", "_b", "payload", "collectionNameLength", "collectionNameHex", "collectionName", "_a", "acc", "curr", "exports", "loadNftPlugin", "selector", "logs_1", "abi_1", "contracts_1", "erc20_1", "nfts_1", "utils_1", "getAdditionalDataForContract", "contractAddress", "chainIdTruncated", "loadConfig", "shouldResolve", "__awaiter", "resolution", "nftInfo", "_a", "erc20SignaturesBlob", "erc20Info", "loadNanoAppPlugins", "selector", "decodedTx", "nftPluginPayload", "_b", "contractMethodInfos", "plugin", "payload", "signature", "erc20OfInterest", "abi", "contract", "args", "erc20OfInterest_1", "__values", "erc20OfInterest_1_1", "path", "erc20ContractAddress", "value", "seg", "externalPluginResolution", "ledgerService", "rawTxHex", "resolutionConfig", "rawTx", "pluginsResolution", "contractResolution", "exports", "errorClasses", "deserializers", "addCustomErrorDeserializer", "name", "deserializer", "exports", "createCustomErrorClass", "CustomErrorClass", "_super", "__extends", "message", "fields", "options", "_this", "k", "isObject", "cause", "value", "deserializeError", "object", "msg", "error", "name_1", "des", "constructor", "prop", "serializeError", "destroyCircular", "from", "seen", "to", "_b", "__values", "_c", "key", "helpers_1", "exports", "HwTransportErrorType", "HwTransportError", "_super", "__extends", "type", "message", "_this", "TransportError", "id", "name", "e", "getAltStatusMessage", "code", "TransportStatusError", "statusCode", "statusText", "k", "smsg", "statusCodeStr", "errors_1", "exports", "require_core", "__commonJSMin", "exports", "module", "root", "factory", "CryptoJS", "Math", "undefined", "crypto", "cryptoSecureRandomInt", "create", "F", "obj", "subtype", "C", "C_lib", "Base", "overrides", "instance", "properties", "propertyName", "WordArray", "words", "sigBytes", "encoder", "Hex", "wordArray", "thisWords", "thatWords", "thisSigBytes", "thatSigBytes", "i", "thatByte", "j", "clone", "nBytes", "C_enc", "hexChars", "bite", "hexStr", "hexStrLength", "Latin1", "latin1Chars", "latin1Str", "latin1StrLength", "Utf8", "utf8Str", "BufferedBlockAlgorithm", "data", "doFlush", "processedWords", "dataWords", "dataSigBytes", "blockSize", "blockSizeBytes", "nBlocksReady", "nWordsReady", "nBytesReady", "offset", "Hasher", "cfg", "messageUpdate", "hash", "hasher", "message", "key", "C_algo", "require_sha256", "__commonJSMin", "exports", "module", "root", "factory", "CryptoJS", "Math", "C", "C_lib", "WordArray", "Hasher", "C_algo", "H", "K", "isPrime", "n", "sqrtN", "factor", "getFractionalBits", "nPrime", "W", "SHA256", "M", "offset", "a", "b", "c", "d", "e", "f", "g", "h", "i", "gamma0x", "gamma0", "gamma1x", "gamma1", "ch", "maj", "sigma0", "sigma1", "t1", "t2", "data", "dataWords", "nBitsTotal", "nBitsLeft", "clone", "require_sha224", "__commonJSMin", "exports", "module", "root", "factory", "undef", "CryptoJS", "C", "C_lib", "WordArray", "C_algo", "SHA256", "SHA224", "hash", "exports", "axios_1", "__importDefault", "sha224_1", "utils_1", "eip712_1", "bignumber_js_1", "NULL_ADDRESS", "EIP712_ARRAY_TYPE_VALUE", "exports", "size", "value", "sizeInBits", "failSafeValue", "valueAsBN", "sizeInBytes", "maskAsBN", "paddedHexString", "destructTypeFromString", "typeName", "splitNameAndArraysRegex", "splitArraysRegex", "splitNameAndNumberRegex", "_a", "__read", "type", "maybeArrays", "_b", "name", "bits", "typeDescription", "arrays", "__spreadArray", "arraySizes", "constructTypeDescByteString", "isArray", "typeSize", "typeValue", "isArrayBit", "hasTypeSize", "unusedBits", "typeValueBits", "makeTypeEntryStructBuffer", "_f", "arrSizes", "isTypeAnArray", "typeProperties", "typeKey", "typeSizeInBits", "typeDescData", "bufferArray", "_d", "_c", "_e", "isEIP712Message", "message", "sortObjectAlphabetically", "obj", "keys", "acc", "curr", "field", "getSchemaHashForMessage", "types", "sortedTypes", "getFiltersForMessage", "remoteCryptoAssetsListURI", "__awaiter", "schemaHash", "messageId", "dynamicCAL", "utils_1", "loadConfig_1", "EIP712_utils_1", "makeRecursiveFieldStructImplem", "transport", "types", "filters", "typesMap", "type", "_a", "acc", "curr", "__assign", "recursiveFieldStructImplem", "destructedType", "data", "path", "__read", "typeDescription", "arrSizes", "_b", "currSize", "restSizes", "isCustomType", "_h", "sendStructImplem", "_k", "data_1", "__values", "data_1_1", "entry", "_c", "_d", "_e", "fieldName", "fieldValue", "fieldType", "_j", "filter", "f", "sendFilteringInfo", "sendStructDef", "structDef", "APDU_FIELDS", "structType", "value", "structImplem", "__awaiter", "rawData", "sizeInBits", "encodedData", "dataLengthPer16Bits", "dataLengthModulo16Bits", "data_2", "bufferSlices", "i", "bufferSlices_1", "bufferSlices_1_1", "bufferSlice", "displayName", "filtersCount", "sig", "displayNameLengthBuffer", "displayNameBuffer", "filtersCountBuffer", "sigLengthBuffer", "sigBuffer", "callData", "signEIP712Message", "jsonMessage", "fullImplem", "loadConfig", "primaryType", "unsortedTypes", "domain", "message", "cryptoassetsBaseURL", "typeEntries", "typeEntries_1", "typeEntries_1_1", "typeName", "entries", "entries_1", "e_4", "entries_1_1", "name_1", "typeEntryBuffer", "domainName", "domainTypeFields", "domainTypeFields_1", "domainTypeFields_1_1", "name_2", "domainFieldValue", "contractName", "fields", "contractNameInfos", "primaryTypeFields", "primaryTypeFields_1", "primaryTypeFields_1_1", "name_3", "primaryTypeValue", "paths", "signatureBuffer", "element", "index", "response", "v", "r", "s", "exports", "signEIP712HashedMessage", "domainSeparatorHex", "hashStructMessageHex", "domainSeparator", "hashStruct", "buffer", "offset", "EIP712_utils_2", "__createBinding", "utils_1", "ledger_1", "__importDefault", "exports", "errors_1", "EIP712_1", "starkQuantizationTypeMap", "remapTransactionRelatedErrors", "e", "Eth", "transport", "scrambleKey", "loadConfig", "path", "boolDisplay", "boolChaincode", "paths", "buffer", "element", "index", "response", "publicKeyLength", "addressLength", "rawTxHex", "resolution", "_q", "_a", "__values", "_b", "plugin", "setPlugin", "_c", "_d", "_e", "payload", "signature", "setExternalPlugin", "_f", "_g", "nft", "provideNFTInformation", "_h", "_j", "data", "provideERC20TokenInformation", "rawTx", "_k", "vrsOffset", "txType", "chainId", "chainIdTruncated", "offset", "first", "maxChunkSize", "chunkSize", "this_1", "_r", "response_byte", "v", "oneByteChainId", "ecc_parity", "r", "messageHex", "message", "this_2", "s", "domainSeparatorHex", "hashStructMessageHex", "jsonMessage", "fullImplem", "sourceTokenAddress", "sourceQuantization", "destinationTokenAddress", "destinationQuantization", "sourceVault", "destinationVault", "amountSell", "amountBuy", "nonce", "timestamp", "sourceTokenAddressHex", "destinationTokenAddressHex", "sourceQuantizationType", "sourceMintableBlobOrTokenId", "destinationQuantizationType", "destinationMintableBlobOrTokenId", "transferTokenAddress", "transferQuantization", "targetPublicKey", "amountTransfer", "transferTokenAddressHex", "targetPublicKeyHex", "transferQuantizationType", "transferMintableBlobOrTokenId", "conditionalTransferAddress", "conditionalTransferFact", "conditionalTransferAddressHex", "operationContract", "operationQuantization", "operationContractHex", "operationQuantizationType", "operationMintableBlobOrTokenId", "hash", "hashHex", "withdrawalIndex", "remotePublicKeyHex", "remotePublicKey", "pluginName", "contractAddress", "selector", "payloadBuffer", "signatureBuffer", "events_1", "__importDefault", "errors_1", "exports", "Transport", "_this", "cla", "ins", "p1", "p2", "data", "statusList", "response", "_a", "sw", "s", "f", "__awaiter", "busyPromise", "r", "resolveBusy", "unresponsiveReached", "timeout", "res", "_apdu", "apdus", "observer", "unsubscribed", "unsubscribe", "main", "apdus_1", "__values", "apdus_1_1", "apdu", "_b", "status_1", "e", "_key", "eventName", "cb", "event", "args", "_i", "__spreadArray", "__read", "exchangeTimeout", "unresponsiveTimeout", "openTimeout", "listenTimeout", "resolve", "reject", "found", "sub", "listenTimeoutId", "self", "methods", "scrambleKey", "methods_1", "methods_1_1", "methodName", "ctx", "_appAPIlock", "errors_1", "Tag", "asUInt16BE", "value", "b", "initialAcc", "createHIDframing", "channel", "packetSize", "apdu", "data", "blockSize", "nbBlocks", "blocks", "i", "head", "chunk", "acc", "_a", "dataLength", "sequence", "chunkData", "exports", "require_constants", "__commonJSMin", "exports", "module", "SEMVER_SPEC_VERSION", "MAX_SAFE_INTEGER", "MAX_SAFE_COMPONENT_LENGTH", "require_debug", "__commonJSMin", "exports", "module", "debug", "args", "require_re", "__commonJSMin", "exports", "module", "MAX_SAFE_COMPONENT_LENGTH", "debug", "re", "src", "t", "R", "createToken", "name", "value", "isGlobal", "index", "require_parse_options", "__commonJSMin", "exports", "module", "opts", "parseOptions", "options", "k", "o", "require_identifiers", "__commonJSMin", "exports", "module", "numeric", "compareIdentifiers", "a", "b", "anum", "bnum", "rcompareIdentifiers", "require_semver", "__commonJSMin", "exports", "module", "debug", "MAX_LENGTH", "MAX_SAFE_INTEGER", "re", "t", "parseOptions", "compareIdentifiers", "SemVer", "version", "options", "m", "id", "num", "other", "i", "a", "b", "release", "identifier", "require_parse", "__commonJSMin", "exports", "module", "MAX_LENGTH", "re", "t", "SemVer", "parseOptions", "parse", "version", "options", "require_valid", "__commonJSMin", "exports", "module", "parse", "valid", "version", "options", "v", "require_clean", "__commonJSMin", "exports", "module", "parse", "clean", "version", "options", "s", "require_inc", "__commonJSMin", "exports", "module", "SemVer", "inc", "version", "release", "options", "identifier", "require_compare", "__commonJSMin", "exports", "module", "SemVer", "compare", "a", "b", "loose", "require_eq", "__commonJSMin", "exports", "module", "compare", "eq", "a", "b", "loose", "require_diff", "__commonJSMin", "exports", "module", "parse", "eq", "diff", "version1", "version2", "v1", "v2", "hasPre", "prefix", "defaultResult", "key", "require_major", "__commonJSMin", "exports", "module", "SemVer", "major", "a", "loose", "require_minor", "__commonJSMin", "exports", "module", "SemVer", "minor", "a", "loose", "require_patch", "__commonJSMin", "exports", "module", "SemVer", "patch", "a", "loose", "require_prerelease", "__commonJSMin", "exports", "module", "parse", "prerelease", "version", "options", "parsed", "require_rcompare", "__commonJSMin", "exports", "module", "compare", "rcompare", "a", "b", "loose", "require_compare_loose", "__commonJSMin", "exports", "module", "compare", "compareLoose", "a", "b", "require_compare_build", "__commonJSMin", "exports", "module", "SemVer", "compareBuild", "a", "b", "loose", "versionA", "versionB", "require_sort", "__commonJSMin", "exports", "module", "compareBuild", "sort", "list", "loose", "a", "b", "require_rsort", "__commonJSMin", "exports", "module", "compareBuild", "rsort", "list", "loose", "a", "b", "require_gt", "__commonJSMin", "exports", "module", "compare", "gt", "a", "b", "loose", "require_lt", "__commonJSMin", "exports", "module", "compare", "lt", "a", "b", "loose", "require_neq", "__commonJSMin", "exports", "module", "compare", "neq", "a", "b", "loose", "require_gte", "__commonJSMin", "exports", "module", "compare", "gte", "a", "b", "loose", "require_lte", "__commonJSMin", "exports", "module", "compare", "lte", "a", "b", "loose", "require_cmp", "__commonJSMin", "exports", "module", "eq", "neq", "gt", "gte", "lt", "lte", "cmp", "a", "op", "b", "loose", "require_coerce", "__commonJSMin", "exports", "module", "SemVer", "parse", "re", "t", "coerce", "version", "options", "match", "next", "require_iterator", "__commonJSMin", "exports", "module", "Yallist", "walker", "require_yallist", "__commonJSMin", "exports", "module", "Yallist", "Node", "list", "self", "item", "i", "l", "node", "next", "prev", "head", "tail", "push", "unshift", "res", "fn", "thisp", "walker", "n", "initial", "acc", "arr", "from", "to", "ret", "start", "deleteCount", "nodes", "insert", "p", "value", "inserted", "require_lru_cache", "__commonJSMin", "exports", "module", "Yallist", "MAX", "LENGTH", "LENGTH_CALCULATOR", "ALLOW_STALE", "MAX_AGE", "DISPOSE", "NO_DISPOSE_ON_SET", "LRU_LIST", "CACHE", "UPDATE_AGE_ON_GET", "naiveLength", "LRUCache", "options", "max", "lc", "mL", "trim", "allowStale", "mA", "lC", "hit", "fn", "thisp", "walker", "prev", "forEachStep", "next", "k", "isStale", "h", "key", "value", "maxAge", "now", "len", "del", "item", "Entry", "get", "node", "arr", "l", "expiresAt", "self", "doUse", "diff", "length", "require_range", "__commonJSMin", "exports", "module", "Range", "range", "options", "parseOptions", "Comparator", "r", "c", "first", "isNullSet", "isAny", "comps", "memoKey", "cached", "cache", "loose", "hr", "re", "t", "hyphenReplace", "debug", "comparatorTrimReplace", "tildeTrimReplace", "caretTrimReplace", "rangeList", "comp", "parseComparator", "replaceGTE0", "rangeMap", "comparators", "result", "thisComparators", "isSatisfiable", "rangeComparators", "thisComparator", "rangeComparator", "version", "SemVer", "i", "testSet", "LRU", "remainingComparators", "testComparator", "otherComparator", "replaceCarets", "replaceTildes", "replaceXRanges", "replaceStars", "isX", "id", "replaceTilde", "_", "M", "m", "p", "pr", "ret", "replaceCaret", "z", "replaceXRange", "gtlt", "xM", "xm", "xp", "anyX", "incPr", "$0", "from", "fM", "fm", "fp", "fpr", "fb", "to", "tM", "tm", "tp", "tpr", "tb", "set", "allowed", "require_comparator", "__commonJSMin", "exports", "module", "ANY", "Comparator", "comp", "options", "parseOptions", "debug", "r", "re", "t", "m", "SemVer", "version", "cmp", "Range", "sameDirectionIncreasing", "sameDirectionDecreasing", "sameSemVer", "differentDirectionsInclusive", "oppositeDirectionsLessThan", "oppositeDirectionsGreaterThan", "require_satisfies", "__commonJSMin", "exports", "module", "Range", "satisfies", "version", "range", "options", "require_to_comparators", "__commonJSMin", "exports", "module", "Range", "toComparators", "range", "options", "comp", "c", "require_max_satisfying", "__commonJSMin", "exports", "module", "SemVer", "Range", "maxSatisfying", "versions", "range", "options", "max", "maxSV", "rangeObj", "v", "require_min_satisfying", "__commonJSMin", "exports", "module", "SemVer", "Range", "minSatisfying", "versions", "range", "options", "min", "minSV", "rangeObj", "v", "require_min_version", "__commonJSMin", "exports", "module", "SemVer", "Range", "gt", "minVersion", "range", "loose", "minver", "i", "comparators", "setMin", "comparator", "compver", "require_valid", "__commonJSMin", "exports", "module", "Range", "validRange", "range", "options", "require_outside", "__commonJSMin", "exports", "module", "SemVer", "Comparator", "ANY", "Range", "satisfies", "gt", "lt", "lte", "gte", "outside", "version", "range", "hilo", "options", "gtfn", "ltefn", "ltfn", "comp", "ecomp", "i", "comparators", "high", "low", "comparator", "require_gtr", "__commonJSMin", "exports", "module", "outside", "gtr", "version", "range", "options", "require_ltr", "__commonJSMin", "exports", "module", "outside", "ltr", "version", "range", "options", "require_intersects", "__commonJSMin", "exports", "module", "Range", "intersects", "r1", "r2", "options", "require_simplify", "__commonJSMin", "exports", "module", "satisfies", "compare", "versions", "range", "options", "set", "first", "prev", "v", "a", "b", "version", "ranges", "min", "max", "simplified", "original", "require_subset", "__commonJSMin", "exports", "module", "Range", "Comparator", "ANY", "satisfies", "compare", "subset", "sub", "dom", "options", "sawNonNull", "OUTER", "simpleSub", "simpleDom", "isSub", "simpleSubset", "eqSet", "gt", "lt", "c", "higherGT", "lowerLT", "gtltComp", "eq", "higher", "lower", "hasDomLT", "hasDomGT", "needDomLTPre", "needDomGTPre", "a", "b", "comp", "require_semver", "__commonJSMin", "exports", "module", "internalRe", "constants", "SemVer", "identifiers", "parse", "valid", "clean", "inc", "diff", "major", "minor", "patch", "prerelease", "compare", "rcompare", "compareLoose", "compareBuild", "sort", "rsort", "gt", "lt", "eq", "neq", "gte", "lte", "cmp", "coerce", "Comparator", "Range", "satisfies", "toComparators", "maxSatisfying", "minSatisfying", "minVersion", "validRange", "outside", "gtr", "ltr", "intersects", "simplifyRange", "subset", "semver_1", "__importDefault", "exports", "DeviceModelId", "devices", "_a", "_firwareVersion", "firmwareVersion", "_firmwareVersion", "productMap", "devicesList", "getDeviceModel", "id", "info", "identifyTargetId", "targetId", "deviceModel", "masks", "mask", "identifyUSBProductId", "usbProductId", "legacy", "d", "mm", "identifyProductName", "productName", "bluetoothServices", "serviceUuidToInfos", "bluetoothSpec", "i", "spec", "__assign", "getBluetoothServiceUuids", "getInfosForServiceUuid", "uuid", "devices_1", "ledgerDevices", "requestLedgerDevice", "device", "_a", "exports", "getLedgerDevices", "devices", "d", "getFirstLedgerDevice", "existingDevices", "isSupported", "hw_transport_1", "__importDefault", "hid_framing_1", "devices_1", "logs_1", "errors_1", "webusb_1", "configurationValue", "endpointNumber", "TransportWebUSB", "_super", "__extends", "device", "interfaceNumber", "_this", "e", "_a", "devices", "gracefullyResetDevice", "iface", "alternates", "a", "e_1", "transport", "onDisconnect", "apdu", "__awaiter", "channel", "packetSize", "framing", "blocks", "i", "_b", "result", "acc", "r", "buffer", "b", "observer", "unsubscribed", "deviceModel", "error", "unsubscribe", "err_1", "src_exports", "__export", "EthersLedgerSigner", "__toCommonJS", "import_ethers", "import_hw_app_eth", "import_hw_transport", "_TransportSpeculosHTTP", "Transport", "baseURL", "but", "action", "apdu", "hex", "json", "data", "TransportSpeculosHTTP", "__publicField", "transport", "eventSource", "error", "import_hw_transport_webusb", "useTransports", "createUSBTransport", "TransportWebUSB", "createSpeculosTransport", "baseURL", "TransportSpeculosHTTP", "defaultPath", "defaultType", "createUSBTransport", "createSpeculosTransport", "useTransports", "transportCreators", "EthersLedgerSigner", "options", "transportCreatorType", "transportCreator", "transport", "Eth", "callback", "timeout", "resolve", "reject", "ledgerConnectionError", "eth", "i", "result", "error", "address", "message", "messageHex", "signature", "transaction", "tx", "baseTx", "unsignedTx", "resolution", "signedTx", "provider"] +} diff --git a/common/ethers-trezor-signer/dist/index.js b/common/ethers-trezor-signer/dist/index.js new file mode 100644 index 000000000..bde9de4a4 --- /dev/null +++ b/common/ethers-trezor-signer/dist/index.js @@ -0,0 +1,409 @@ +"use strict";var gTe=Object.create;var Z8=Object.defineProperty;var yTe=Object.getOwnPropertyDescriptor;var vTe=Object.getOwnPropertyNames;var bTe=Object.getPrototypeOf,_Te=Object.prototype.hasOwnProperty;var x=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),wTe=(t,e)=>{for(var r in e)Z8(t,r,{get:e[r],enumerable:!0})},LJ=(t,e,r,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of vTe(e))!_Te.call(t,n)&&n!==r&&Z8(t,n,{get:()=>e[n],enumerable:!(i=yTe(e,n))||i.enumerable});return t};var UJ=(t,e,r)=>(r=t!=null?gTe(bTe(t)):{},LJ(e||!t||!t.__esModule?Z8(r,"default",{value:t,enumerable:!0}):r,t)),xTe=t=>LJ(Z8({},"__esModule",{value:!0}),t);var ac=x((jJ,MO)=>{(function(t,e){"use strict";function r(w,y){if(!w)throw new Error(y||"Assertion failed")}function i(w,y){w.super_=y;var _=function(){};_.prototype=y.prototype,w.prototype=new _,w.prototype.constructor=w}function n(w,y,_){if(n.isBN(w))return w;this.negative=0,this.words=null,this.length=0,this.red=null,w!==null&&((y==="le"||y==="be")&&(_=y,y=10),this._init(w||0,y||10,_||"be"))}typeof t=="object"?t.exports=n:e.BN=n,n.BN=n,n.wordSize=26;var a;try{typeof window<"u"&&typeof window.Buffer<"u"?a=window.Buffer:a=require("buffer").Buffer}catch{}n.isBN=function(y){return y instanceof n?!0:y!==null&&typeof y=="object"&&y.constructor.wordSize===n.wordSize&&Array.isArray(y.words)},n.max=function(y,_){return y.cmp(_)>0?y:_},n.min=function(y,_){return y.cmp(_)<0?y:_},n.prototype._init=function(y,_,P){if(typeof y=="number")return this._initNumber(y,_,P);if(typeof y=="object")return this._initArray(y,_,P);_==="hex"&&(_=16),r(_===(_|0)&&_>=2&&_<=36),y=y.toString().replace(/\s+/g,"");var M=0;y[0]==="-"&&(M++,this.negative=1),M=0;M-=3)h=y[M]|y[M-1]<<8|y[M-2]<<16,this.words[E]|=h<>>26-A&67108863,A+=24,A>=26&&(A-=26,E++);else if(P==="le")for(M=0,E=0;M>>26-A&67108863,A+=24,A>=26&&(A-=26,E++);return this._strip()};function s(w,y){var _=w.charCodeAt(y);if(_>=48&&_<=57)return _-48;if(_>=65&&_<=70)return _-55;if(_>=97&&_<=102)return _-87;r(!1,"Invalid character in "+w)}function o(w,y,_){var P=s(w,_);return _-1>=y&&(P|=s(w,_-1)<<4),P}n.prototype._parseHex=function(y,_,P){this.length=Math.ceil((y.length-_)/6),this.words=new Array(this.length);for(var M=0;M=_;M-=2)A=o(y,_,M)<=18?(E-=18,h+=1,this.words[h]|=A>>>26):E+=8;else{var F=y.length-_;for(M=F%2===0?_+1:_;M=18?(E-=18,h+=1,this.words[h]|=A>>>26):E+=8}this._strip()};function c(w,y,_,P){for(var M=0,E=0,h=Math.min(w.length,_),A=y;A=49?E=F-49+10:F>=17?E=F-17+10:E=F,r(F>=0&&E1&&this.words[this.length-1]===0;)this.length--;return this._normSign()},n.prototype._normSign=function(){return this.length===1&&this.words[0]===0&&(this.negative=0),this},typeof Symbol<"u"&&typeof Symbol.for=="function")try{n.prototype[Symbol.for("nodejs.util.inspect.custom")]=f}catch{n.prototype.inspect=f}else n.prototype.inspect=f;function f(){return(this.red?""}var d=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],p=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],b=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];n.prototype.toString=function(y,_){y=y||10,_=_|0||1;var P;if(y===16||y==="hex"){P="";for(var M=0,E=0,h=0;h>>24-M&16777215,M+=2,M>=26&&(M-=26,h--),E!==0||h!==this.length-1?P=d[6-F.length]+F+P:P=F+P}for(E!==0&&(P=E.toString(16)+P);P.length%_!==0;)P="0"+P;return this.negative!==0&&(P="-"+P),P}if(y===(y|0)&&y>=2&&y<=36){var O=p[y],N=b[y];P="";var xe=this.clone();for(xe.negative=0;!xe.isZero();){var q=xe.modrn(N).toString(y);xe=xe.idivn(N),xe.isZero()?P=q+P:P=d[O-q.length]+q+P}for(this.isZero()&&(P="0"+P);P.length%_!==0;)P="0"+P;return this.negative!==0&&(P="-"+P),P}r(!1,"Base should be between 2 and 36")},n.prototype.toNumber=function(){var y=this.words[0];return this.length===2?y+=this.words[1]*67108864:this.length===3&&this.words[2]===1?y+=4503599627370496+this.words[1]*67108864:this.length>2&&r(!1,"Number can only safely store up to 53 bits"),this.negative!==0?-y:y},n.prototype.toJSON=function(){return this.toString(16,2)},a&&(n.prototype.toBuffer=function(y,_){return this.toArrayLike(a,y,_)}),n.prototype.toArray=function(y,_){return this.toArrayLike(Array,y,_)};var T=function(y,_){return y.allocUnsafe?y.allocUnsafe(_):new y(_)};n.prototype.toArrayLike=function(y,_,P){this._strip();var M=this.byteLength(),E=P||Math.max(1,M);r(M<=E,"byte array longer than desired length"),r(E>0,"Requested array length <= 0");var h=T(y,E),A=_==="le"?"LE":"BE";return this["_toArrayLike"+A](h,M),h},n.prototype._toArrayLikeLE=function(y,_){for(var P=0,M=0,E=0,h=0;E>8&255),P>16&255),h===6?(P>24&255),M=0,h=0):(M=A>>>24,h+=2)}if(P=0&&(y[P--]=A>>8&255),P>=0&&(y[P--]=A>>16&255),h===6?(P>=0&&(y[P--]=A>>24&255),M=0,h=0):(M=A>>>24,h+=2)}if(P>=0)for(y[P--]=M;P>=0;)y[P--]=0},Math.clz32?n.prototype._countBits=function(y){return 32-Math.clz32(y)}:n.prototype._countBits=function(y){var _=y,P=0;return _>=4096&&(P+=13,_>>>=13),_>=64&&(P+=7,_>>>=7),_>=8&&(P+=4,_>>>=4),_>=2&&(P+=2,_>>>=2),P+_},n.prototype._zeroBits=function(y){if(y===0)return 26;var _=y,P=0;return(_&8191)===0&&(P+=13,_>>>=13),(_&127)===0&&(P+=7,_>>>=7),(_&15)===0&&(P+=4,_>>>=4),(_&3)===0&&(P+=2,_>>>=2),(_&1)===0&&P++,P},n.prototype.bitLength=function(){var y=this.words[this.length-1],_=this._countBits(y);return(this.length-1)*26+_};function I(w){for(var y=new Array(w.bitLength()),_=0;_>>M&1}return y}n.prototype.zeroBits=function(){if(this.isZero())return 0;for(var y=0,_=0;_y.length?this.clone().ior(y):y.clone().ior(this)},n.prototype.uor=function(y){return this.length>y.length?this.clone().iuor(y):y.clone().iuor(this)},n.prototype.iuand=function(y){var _;this.length>y.length?_=y:_=this;for(var P=0;P<_.length;P++)this.words[P]=this.words[P]&y.words[P];return this.length=_.length,this._strip()},n.prototype.iand=function(y){return r((this.negative|y.negative)===0),this.iuand(y)},n.prototype.and=function(y){return this.length>y.length?this.clone().iand(y):y.clone().iand(this)},n.prototype.uand=function(y){return this.length>y.length?this.clone().iuand(y):y.clone().iuand(this)},n.prototype.iuxor=function(y){var _,P;this.length>y.length?(_=this,P=y):(_=y,P=this);for(var M=0;My.length?this.clone().ixor(y):y.clone().ixor(this)},n.prototype.uxor=function(y){return this.length>y.length?this.clone().iuxor(y):y.clone().iuxor(this)},n.prototype.inotn=function(y){r(typeof y=="number"&&y>=0);var _=Math.ceil(y/26)|0,P=y%26;this._expand(_),P>0&&_--;for(var M=0;M<_;M++)this.words[M]=~this.words[M]&67108863;return P>0&&(this.words[M]=~this.words[M]&67108863>>26-P),this._strip()},n.prototype.notn=function(y){return this.clone().inotn(y)},n.prototype.setn=function(y,_){r(typeof y=="number"&&y>=0);var P=y/26|0,M=y%26;return this._expand(P+1),_?this.words[P]=this.words[P]|1<y.length?(P=this,M=y):(P=y,M=this);for(var E=0,h=0;h>>26;for(;E!==0&&h>>26;if(this.length=P.length,E!==0)this.words[this.length]=E,this.length++;else if(P!==this)for(;hy.length?this.clone().iadd(y):y.clone().iadd(this)},n.prototype.isub=function(y){if(y.negative!==0){y.negative=0;var _=this.iadd(y);return y.negative=1,_._normSign()}else if(this.negative!==0)return this.negative=0,this.iadd(y),this.negative=1,this._normSign();var P=this.cmp(y);if(P===0)return this.negative=0,this.length=1,this.words[0]=0,this;var M,E;P>0?(M=this,E=y):(M=y,E=this);for(var h=0,A=0;A>26,this.words[A]=_&67108863;for(;h!==0&&A>26,this.words[A]=_&67108863;if(h===0&&A>>26,xe=F&67108863,q=Math.min(O,y.length-1),fe=Math.max(0,O-w.length+1);fe<=q;fe++){var Te=O-fe|0;M=w.words[Te]|0,E=y.words[fe]|0,h=M*E+xe,N+=h/67108864|0,xe=h&67108863}_.words[O]=xe|0,F=N|0}return F!==0?_.words[O]=F|0:_.length--,_._strip()}var U=function(y,_,P){var M=y.words,E=_.words,h=P.words,A=0,F,O,N,xe=M[0]|0,q=xe&8191,fe=xe>>>13,Te=M[1]|0,_e=Te&8191,H=Te>>>13,Y=M[2]|0,Q=Y&8191,se=Y>>>13,Se=M[3]|0,ue=Se&8191,he=Se>>>13,Oe=M[4]|0,ye=Oe&8191,we=Oe>>>13,Ne=M[5]|0,Ae=Ne&8191,je=Ne>>>13,j=M[6]|0,W=j&8191,C=j>>>13,D=M[7]|0,G=D&8191,X=D>>>13,le=M[8]|0,ie=le&8191,de=le>>>13,Be=M[9]|0,Pe=Be&8191,De=Be>>>13,et=E[0]|0,Le=et&8191,Ve=et>>>13,Mr=E[1]|0,rt=Mr&8191,at=Mr>>>13,Ki=E[2]|0,ft=Ki&8191,pt=Ki>>>13,Aa=E[3]|0,ht=Aa&8191,dt=Aa>>>13,Pa=E[4]|0,mt=Pa&8191,gt=Pa>>>13,jn=E[5]|0,yt=jn&8191,ct=jn>>>13,Oa=E[6]|0,vt=Oa&8191,bt=Oa>>>13,Ra=E[7]|0,_t=Ra&8191,wt=Ra>>>13,Ma=E[8]|0,xt=Ma&8191,lt=Ma>>>13,k=E[9]|0,V=k&8191,z=k>>>13;P.negative=y.negative^_.negative,P.length=19,F=Math.imul(q,Le),O=Math.imul(q,Ve),O=O+Math.imul(fe,Le)|0,N=Math.imul(fe,Ve);var J=(A+F|0)+((O&8191)<<13)|0;A=(N+(O>>>13)|0)+(J>>>26)|0,J&=67108863,F=Math.imul(_e,Le),O=Math.imul(_e,Ve),O=O+Math.imul(H,Le)|0,N=Math.imul(H,Ve),F=F+Math.imul(q,rt)|0,O=O+Math.imul(q,at)|0,O=O+Math.imul(fe,rt)|0,N=N+Math.imul(fe,at)|0;var Z=(A+F|0)+((O&8191)<<13)|0;A=(N+(O>>>13)|0)+(Z>>>26)|0,Z&=67108863,F=Math.imul(Q,Le),O=Math.imul(Q,Ve),O=O+Math.imul(se,Le)|0,N=Math.imul(se,Ve),F=F+Math.imul(_e,rt)|0,O=O+Math.imul(_e,at)|0,O=O+Math.imul(H,rt)|0,N=N+Math.imul(H,at)|0,F=F+Math.imul(q,ft)|0,O=O+Math.imul(q,pt)|0,O=O+Math.imul(fe,ft)|0,N=N+Math.imul(fe,pt)|0;var $=(A+F|0)+((O&8191)<<13)|0;A=(N+(O>>>13)|0)+($>>>26)|0,$&=67108863,F=Math.imul(ue,Le),O=Math.imul(ue,Ve),O=O+Math.imul(he,Le)|0,N=Math.imul(he,Ve),F=F+Math.imul(Q,rt)|0,O=O+Math.imul(Q,at)|0,O=O+Math.imul(se,rt)|0,N=N+Math.imul(se,at)|0,F=F+Math.imul(_e,ft)|0,O=O+Math.imul(_e,pt)|0,O=O+Math.imul(H,ft)|0,N=N+Math.imul(H,pt)|0,F=F+Math.imul(q,ht)|0,O=O+Math.imul(q,dt)|0,O=O+Math.imul(fe,ht)|0,N=N+Math.imul(fe,dt)|0;var pe=(A+F|0)+((O&8191)<<13)|0;A=(N+(O>>>13)|0)+(pe>>>26)|0,pe&=67108863,F=Math.imul(ye,Le),O=Math.imul(ye,Ve),O=O+Math.imul(we,Le)|0,N=Math.imul(we,Ve),F=F+Math.imul(ue,rt)|0,O=O+Math.imul(ue,at)|0,O=O+Math.imul(he,rt)|0,N=N+Math.imul(he,at)|0,F=F+Math.imul(Q,ft)|0,O=O+Math.imul(Q,pt)|0,O=O+Math.imul(se,ft)|0,N=N+Math.imul(se,pt)|0,F=F+Math.imul(_e,ht)|0,O=O+Math.imul(_e,dt)|0,O=O+Math.imul(H,ht)|0,N=N+Math.imul(H,dt)|0,F=F+Math.imul(q,mt)|0,O=O+Math.imul(q,gt)|0,O=O+Math.imul(fe,mt)|0,N=N+Math.imul(fe,gt)|0;var Ee=(A+F|0)+((O&8191)<<13)|0;A=(N+(O>>>13)|0)+(Ee>>>26)|0,Ee&=67108863,F=Math.imul(Ae,Le),O=Math.imul(Ae,Ve),O=O+Math.imul(je,Le)|0,N=Math.imul(je,Ve),F=F+Math.imul(ye,rt)|0,O=O+Math.imul(ye,at)|0,O=O+Math.imul(we,rt)|0,N=N+Math.imul(we,at)|0,F=F+Math.imul(ue,ft)|0,O=O+Math.imul(ue,pt)|0,O=O+Math.imul(he,ft)|0,N=N+Math.imul(he,pt)|0,F=F+Math.imul(Q,ht)|0,O=O+Math.imul(Q,dt)|0,O=O+Math.imul(se,ht)|0,N=N+Math.imul(se,dt)|0,F=F+Math.imul(_e,mt)|0,O=O+Math.imul(_e,gt)|0,O=O+Math.imul(H,mt)|0,N=N+Math.imul(H,gt)|0,F=F+Math.imul(q,yt)|0,O=O+Math.imul(q,ct)|0,O=O+Math.imul(fe,yt)|0,N=N+Math.imul(fe,ct)|0;var Ie=(A+F|0)+((O&8191)<<13)|0;A=(N+(O>>>13)|0)+(Ie>>>26)|0,Ie&=67108863,F=Math.imul(W,Le),O=Math.imul(W,Ve),O=O+Math.imul(C,Le)|0,N=Math.imul(C,Ve),F=F+Math.imul(Ae,rt)|0,O=O+Math.imul(Ae,at)|0,O=O+Math.imul(je,rt)|0,N=N+Math.imul(je,at)|0,F=F+Math.imul(ye,ft)|0,O=O+Math.imul(ye,pt)|0,O=O+Math.imul(we,ft)|0,N=N+Math.imul(we,pt)|0,F=F+Math.imul(ue,ht)|0,O=O+Math.imul(ue,dt)|0,O=O+Math.imul(he,ht)|0,N=N+Math.imul(he,dt)|0,F=F+Math.imul(Q,mt)|0,O=O+Math.imul(Q,gt)|0,O=O+Math.imul(se,mt)|0,N=N+Math.imul(se,gt)|0,F=F+Math.imul(_e,yt)|0,O=O+Math.imul(_e,ct)|0,O=O+Math.imul(H,yt)|0,N=N+Math.imul(H,ct)|0,F=F+Math.imul(q,vt)|0,O=O+Math.imul(q,bt)|0,O=O+Math.imul(fe,vt)|0,N=N+Math.imul(fe,bt)|0;var Re=(A+F|0)+((O&8191)<<13)|0;A=(N+(O>>>13)|0)+(Re>>>26)|0,Re&=67108863,F=Math.imul(G,Le),O=Math.imul(G,Ve),O=O+Math.imul(X,Le)|0,N=Math.imul(X,Ve),F=F+Math.imul(W,rt)|0,O=O+Math.imul(W,at)|0,O=O+Math.imul(C,rt)|0,N=N+Math.imul(C,at)|0,F=F+Math.imul(Ae,ft)|0,O=O+Math.imul(Ae,pt)|0,O=O+Math.imul(je,ft)|0,N=N+Math.imul(je,pt)|0,F=F+Math.imul(ye,ht)|0,O=O+Math.imul(ye,dt)|0,O=O+Math.imul(we,ht)|0,N=N+Math.imul(we,dt)|0,F=F+Math.imul(ue,mt)|0,O=O+Math.imul(ue,gt)|0,O=O+Math.imul(he,mt)|0,N=N+Math.imul(he,gt)|0,F=F+Math.imul(Q,yt)|0,O=O+Math.imul(Q,ct)|0,O=O+Math.imul(se,yt)|0,N=N+Math.imul(se,ct)|0,F=F+Math.imul(_e,vt)|0,O=O+Math.imul(_e,bt)|0,O=O+Math.imul(H,vt)|0,N=N+Math.imul(H,bt)|0,F=F+Math.imul(q,_t)|0,O=O+Math.imul(q,wt)|0,O=O+Math.imul(fe,_t)|0,N=N+Math.imul(fe,wt)|0;var qe=(A+F|0)+((O&8191)<<13)|0;A=(N+(O>>>13)|0)+(qe>>>26)|0,qe&=67108863,F=Math.imul(ie,Le),O=Math.imul(ie,Ve),O=O+Math.imul(de,Le)|0,N=Math.imul(de,Ve),F=F+Math.imul(G,rt)|0,O=O+Math.imul(G,at)|0,O=O+Math.imul(X,rt)|0,N=N+Math.imul(X,at)|0,F=F+Math.imul(W,ft)|0,O=O+Math.imul(W,pt)|0,O=O+Math.imul(C,ft)|0,N=N+Math.imul(C,pt)|0,F=F+Math.imul(Ae,ht)|0,O=O+Math.imul(Ae,dt)|0,O=O+Math.imul(je,ht)|0,N=N+Math.imul(je,dt)|0,F=F+Math.imul(ye,mt)|0,O=O+Math.imul(ye,gt)|0,O=O+Math.imul(we,mt)|0,N=N+Math.imul(we,gt)|0,F=F+Math.imul(ue,yt)|0,O=O+Math.imul(ue,ct)|0,O=O+Math.imul(he,yt)|0,N=N+Math.imul(he,ct)|0,F=F+Math.imul(Q,vt)|0,O=O+Math.imul(Q,bt)|0,O=O+Math.imul(se,vt)|0,N=N+Math.imul(se,bt)|0,F=F+Math.imul(_e,_t)|0,O=O+Math.imul(_e,wt)|0,O=O+Math.imul(H,_t)|0,N=N+Math.imul(H,wt)|0,F=F+Math.imul(q,xt)|0,O=O+Math.imul(q,lt)|0,O=O+Math.imul(fe,xt)|0,N=N+Math.imul(fe,lt)|0;var He=(A+F|0)+((O&8191)<<13)|0;A=(N+(O>>>13)|0)+(He>>>26)|0,He&=67108863,F=Math.imul(Pe,Le),O=Math.imul(Pe,Ve),O=O+Math.imul(De,Le)|0,N=Math.imul(De,Ve),F=F+Math.imul(ie,rt)|0,O=O+Math.imul(ie,at)|0,O=O+Math.imul(de,rt)|0,N=N+Math.imul(de,at)|0,F=F+Math.imul(G,ft)|0,O=O+Math.imul(G,pt)|0,O=O+Math.imul(X,ft)|0,N=N+Math.imul(X,pt)|0,F=F+Math.imul(W,ht)|0,O=O+Math.imul(W,dt)|0,O=O+Math.imul(C,ht)|0,N=N+Math.imul(C,dt)|0,F=F+Math.imul(Ae,mt)|0,O=O+Math.imul(Ae,gt)|0,O=O+Math.imul(je,mt)|0,N=N+Math.imul(je,gt)|0,F=F+Math.imul(ye,yt)|0,O=O+Math.imul(ye,ct)|0,O=O+Math.imul(we,yt)|0,N=N+Math.imul(we,ct)|0,F=F+Math.imul(ue,vt)|0,O=O+Math.imul(ue,bt)|0,O=O+Math.imul(he,vt)|0,N=N+Math.imul(he,bt)|0,F=F+Math.imul(Q,_t)|0,O=O+Math.imul(Q,wt)|0,O=O+Math.imul(se,_t)|0,N=N+Math.imul(se,wt)|0,F=F+Math.imul(_e,xt)|0,O=O+Math.imul(_e,lt)|0,O=O+Math.imul(H,xt)|0,N=N+Math.imul(H,lt)|0,F=F+Math.imul(q,V)|0,O=O+Math.imul(q,z)|0,O=O+Math.imul(fe,V)|0,N=N+Math.imul(fe,z)|0;var Xe=(A+F|0)+((O&8191)<<13)|0;A=(N+(O>>>13)|0)+(Xe>>>26)|0,Xe&=67108863,F=Math.imul(Pe,rt),O=Math.imul(Pe,at),O=O+Math.imul(De,rt)|0,N=Math.imul(De,at),F=F+Math.imul(ie,ft)|0,O=O+Math.imul(ie,pt)|0,O=O+Math.imul(de,ft)|0,N=N+Math.imul(de,pt)|0,F=F+Math.imul(G,ht)|0,O=O+Math.imul(G,dt)|0,O=O+Math.imul(X,ht)|0,N=N+Math.imul(X,dt)|0,F=F+Math.imul(W,mt)|0,O=O+Math.imul(W,gt)|0,O=O+Math.imul(C,mt)|0,N=N+Math.imul(C,gt)|0,F=F+Math.imul(Ae,yt)|0,O=O+Math.imul(Ae,ct)|0,O=O+Math.imul(je,yt)|0,N=N+Math.imul(je,ct)|0,F=F+Math.imul(ye,vt)|0,O=O+Math.imul(ye,bt)|0,O=O+Math.imul(we,vt)|0,N=N+Math.imul(we,bt)|0,F=F+Math.imul(ue,_t)|0,O=O+Math.imul(ue,wt)|0,O=O+Math.imul(he,_t)|0,N=N+Math.imul(he,wt)|0,F=F+Math.imul(Q,xt)|0,O=O+Math.imul(Q,lt)|0,O=O+Math.imul(se,xt)|0,N=N+Math.imul(se,lt)|0,F=F+Math.imul(_e,V)|0,O=O+Math.imul(_e,z)|0,O=O+Math.imul(H,V)|0,N=N+Math.imul(H,z)|0;var St=(A+F|0)+((O&8191)<<13)|0;A=(N+(O>>>13)|0)+(St>>>26)|0,St&=67108863,F=Math.imul(Pe,ft),O=Math.imul(Pe,pt),O=O+Math.imul(De,ft)|0,N=Math.imul(De,pt),F=F+Math.imul(ie,ht)|0,O=O+Math.imul(ie,dt)|0,O=O+Math.imul(de,ht)|0,N=N+Math.imul(de,dt)|0,F=F+Math.imul(G,mt)|0,O=O+Math.imul(G,gt)|0,O=O+Math.imul(X,mt)|0,N=N+Math.imul(X,gt)|0,F=F+Math.imul(W,yt)|0,O=O+Math.imul(W,ct)|0,O=O+Math.imul(C,yt)|0,N=N+Math.imul(C,ct)|0,F=F+Math.imul(Ae,vt)|0,O=O+Math.imul(Ae,bt)|0,O=O+Math.imul(je,vt)|0,N=N+Math.imul(je,bt)|0,F=F+Math.imul(ye,_t)|0,O=O+Math.imul(ye,wt)|0,O=O+Math.imul(we,_t)|0,N=N+Math.imul(we,wt)|0,F=F+Math.imul(ue,xt)|0,O=O+Math.imul(ue,lt)|0,O=O+Math.imul(he,xt)|0,N=N+Math.imul(he,lt)|0,F=F+Math.imul(Q,V)|0,O=O+Math.imul(Q,z)|0,O=O+Math.imul(se,V)|0,N=N+Math.imul(se,z)|0;var zt=(A+F|0)+((O&8191)<<13)|0;A=(N+(O>>>13)|0)+(zt>>>26)|0,zt&=67108863,F=Math.imul(Pe,ht),O=Math.imul(Pe,dt),O=O+Math.imul(De,ht)|0,N=Math.imul(De,dt),F=F+Math.imul(ie,mt)|0,O=O+Math.imul(ie,gt)|0,O=O+Math.imul(de,mt)|0,N=N+Math.imul(de,gt)|0,F=F+Math.imul(G,yt)|0,O=O+Math.imul(G,ct)|0,O=O+Math.imul(X,yt)|0,N=N+Math.imul(X,ct)|0,F=F+Math.imul(W,vt)|0,O=O+Math.imul(W,bt)|0,O=O+Math.imul(C,vt)|0,N=N+Math.imul(C,bt)|0,F=F+Math.imul(Ae,_t)|0,O=O+Math.imul(Ae,wt)|0,O=O+Math.imul(je,_t)|0,N=N+Math.imul(je,wt)|0,F=F+Math.imul(ye,xt)|0,O=O+Math.imul(ye,lt)|0,O=O+Math.imul(we,xt)|0,N=N+Math.imul(we,lt)|0,F=F+Math.imul(ue,V)|0,O=O+Math.imul(ue,z)|0,O=O+Math.imul(he,V)|0,N=N+Math.imul(he,z)|0;var Ct=(A+F|0)+((O&8191)<<13)|0;A=(N+(O>>>13)|0)+(Ct>>>26)|0,Ct&=67108863,F=Math.imul(Pe,mt),O=Math.imul(Pe,gt),O=O+Math.imul(De,mt)|0,N=Math.imul(De,gt),F=F+Math.imul(ie,yt)|0,O=O+Math.imul(ie,ct)|0,O=O+Math.imul(de,yt)|0,N=N+Math.imul(de,ct)|0,F=F+Math.imul(G,vt)|0,O=O+Math.imul(G,bt)|0,O=O+Math.imul(X,vt)|0,N=N+Math.imul(X,bt)|0,F=F+Math.imul(W,_t)|0,O=O+Math.imul(W,wt)|0,O=O+Math.imul(C,_t)|0,N=N+Math.imul(C,wt)|0,F=F+Math.imul(Ae,xt)|0,O=O+Math.imul(Ae,lt)|0,O=O+Math.imul(je,xt)|0,N=N+Math.imul(je,lt)|0,F=F+Math.imul(ye,V)|0,O=O+Math.imul(ye,z)|0,O=O+Math.imul(we,V)|0,N=N+Math.imul(we,z)|0;var ii=(A+F|0)+((O&8191)<<13)|0;A=(N+(O>>>13)|0)+(ii>>>26)|0,ii&=67108863,F=Math.imul(Pe,yt),O=Math.imul(Pe,ct),O=O+Math.imul(De,yt)|0,N=Math.imul(De,ct),F=F+Math.imul(ie,vt)|0,O=O+Math.imul(ie,bt)|0,O=O+Math.imul(de,vt)|0,N=N+Math.imul(de,bt)|0,F=F+Math.imul(G,_t)|0,O=O+Math.imul(G,wt)|0,O=O+Math.imul(X,_t)|0,N=N+Math.imul(X,wt)|0,F=F+Math.imul(W,xt)|0,O=O+Math.imul(W,lt)|0,O=O+Math.imul(C,xt)|0,N=N+Math.imul(C,lt)|0,F=F+Math.imul(Ae,V)|0,O=O+Math.imul(Ae,z)|0,O=O+Math.imul(je,V)|0,N=N+Math.imul(je,z)|0;var xr=(A+F|0)+((O&8191)<<13)|0;A=(N+(O>>>13)|0)+(xr>>>26)|0,xr&=67108863,F=Math.imul(Pe,vt),O=Math.imul(Pe,bt),O=O+Math.imul(De,vt)|0,N=Math.imul(De,bt),F=F+Math.imul(ie,_t)|0,O=O+Math.imul(ie,wt)|0,O=O+Math.imul(de,_t)|0,N=N+Math.imul(de,wt)|0,F=F+Math.imul(G,xt)|0,O=O+Math.imul(G,lt)|0,O=O+Math.imul(X,xt)|0,N=N+Math.imul(X,lt)|0,F=F+Math.imul(W,V)|0,O=O+Math.imul(W,z)|0,O=O+Math.imul(C,V)|0,N=N+Math.imul(C,z)|0;var Ni=(A+F|0)+((O&8191)<<13)|0;A=(N+(O>>>13)|0)+(Ni>>>26)|0,Ni&=67108863,F=Math.imul(Pe,_t),O=Math.imul(Pe,wt),O=O+Math.imul(De,_t)|0,N=Math.imul(De,wt),F=F+Math.imul(ie,xt)|0,O=O+Math.imul(ie,lt)|0,O=O+Math.imul(de,xt)|0,N=N+Math.imul(de,lt)|0,F=F+Math.imul(G,V)|0,O=O+Math.imul(G,z)|0,O=O+Math.imul(X,V)|0,N=N+Math.imul(X,z)|0;var Fr=(A+F|0)+((O&8191)<<13)|0;A=(N+(O>>>13)|0)+(Fr>>>26)|0,Fr&=67108863,F=Math.imul(Pe,xt),O=Math.imul(Pe,lt),O=O+Math.imul(De,xt)|0,N=Math.imul(De,lt),F=F+Math.imul(ie,V)|0,O=O+Math.imul(ie,z)|0,O=O+Math.imul(de,V)|0,N=N+Math.imul(de,z)|0;var Wi=(A+F|0)+((O&8191)<<13)|0;A=(N+(O>>>13)|0)+(Wi>>>26)|0,Wi&=67108863,F=Math.imul(Pe,V),O=Math.imul(Pe,z),O=O+Math.imul(De,V)|0,N=Math.imul(De,z);var ec=(A+F|0)+((O&8191)<<13)|0;return A=(N+(O>>>13)|0)+(ec>>>26)|0,ec&=67108863,h[0]=J,h[1]=Z,h[2]=$,h[3]=pe,h[4]=Ee,h[5]=Ie,h[6]=Re,h[7]=qe,h[8]=He,h[9]=Xe,h[10]=St,h[11]=zt,h[12]=Ct,h[13]=ii,h[14]=xr,h[15]=Ni,h[16]=Fr,h[17]=Wi,h[18]=ec,A!==0&&(h[19]=A,P.length++),P};Math.imul||(U=L);function re(w,y,_){_.negative=y.negative^w.negative,_.length=w.length+y.length;for(var P=0,M=0,E=0;E<_.length-1;E++){var h=M;M=0;for(var A=P&67108863,F=Math.min(E,y.length-1),O=Math.max(0,E-w.length+1);O<=F;O++){var N=E-O,xe=w.words[N]|0,q=y.words[O]|0,fe=xe*q,Te=fe&67108863;h=h+(fe/67108864|0)|0,Te=Te+A|0,A=Te&67108863,h=h+(Te>>>26)|0,M+=h>>>26,h&=67108863}_.words[E]=A,P=h,h=M}return P!==0?_.words[E]=P:_.length--,_._strip()}function oe(w,y,_){return re(w,y,_)}n.prototype.mulTo=function(y,_){var P,M=this.length+y.length;return this.length===10&&y.length===10?P=U(this,y,_):M<63?P=L(this,y,_):M<1024?P=re(this,y,_):P=oe(this,y,_),P};function ge(w,y){this.x=w,this.y=y}ge.prototype.makeRBT=function(y){for(var _=new Array(y),P=n.prototype._countBits(y)-1,M=0;M>=1;return M},ge.prototype.permute=function(y,_,P,M,E,h){for(var A=0;A>>1)E++;return 1<>>13,P[2*h+1]=E&8191,E=E>>>13;for(h=2*_;h>=26,P+=E/67108864|0,P+=h>>>26,this.words[M]=h&67108863}return P!==0&&(this.words[M]=P,this.length++),_?this.ineg():this},n.prototype.muln=function(y){return this.clone().imuln(y)},n.prototype.sqr=function(){return this.mul(this)},n.prototype.isqr=function(){return this.imul(this.clone())},n.prototype.pow=function(y){var _=I(y);if(_.length===0)return new n(1);for(var P=this,M=0;M<_.length&&_[M]===0;M++,P=P.sqr());if(++M<_.length)for(var E=P.sqr();M<_.length;M++,E=E.sqr())_[M]!==0&&(P=P.mul(E));return P},n.prototype.iushln=function(y){r(typeof y=="number"&&y>=0);var _=y%26,P=(y-_)/26,M=67108863>>>26-_<<26-_,E;if(_!==0){var h=0;for(E=0;E>>26-_}h&&(this.words[E]=h,this.length++)}if(P!==0){for(E=this.length-1;E>=0;E--)this.words[E+P]=this.words[E];for(E=0;E=0);var M;_?M=(_-_%26)/26:M=0;var E=y%26,h=Math.min((y-E)/26,this.length),A=67108863^67108863>>>E<h)for(this.length-=h,O=0;O=0&&(N!==0||O>=M);O--){var xe=this.words[O]|0;this.words[O]=N<<26-E|xe>>>E,N=xe&A}return F&&N!==0&&(F.words[F.length++]=N),this.length===0&&(this.words[0]=0,this.length=1),this._strip()},n.prototype.ishrn=function(y,_,P){return r(this.negative===0),this.iushrn(y,_,P)},n.prototype.shln=function(y){return this.clone().ishln(y)},n.prototype.ushln=function(y){return this.clone().iushln(y)},n.prototype.shrn=function(y){return this.clone().ishrn(y)},n.prototype.ushrn=function(y){return this.clone().iushrn(y)},n.prototype.testn=function(y){r(typeof y=="number"&&y>=0);var _=y%26,P=(y-_)/26,M=1<<_;if(this.length<=P)return!1;var E=this.words[P];return!!(E&M)},n.prototype.imaskn=function(y){r(typeof y=="number"&&y>=0);var _=y%26,P=(y-_)/26;if(r(this.negative===0,"imaskn works only with positive numbers"),this.length<=P)return this;if(_!==0&&P++,this.length=Math.min(P,this.length),_!==0){var M=67108863^67108863>>>_<<_;this.words[this.length-1]&=M}return this._strip()},n.prototype.maskn=function(y){return this.clone().imaskn(y)},n.prototype.iaddn=function(y){return r(typeof y=="number"),r(y<67108864),y<0?this.isubn(-y):this.negative!==0?this.length===1&&(this.words[0]|0)<=y?(this.words[0]=y-(this.words[0]|0),this.negative=0,this):(this.negative=0,this.isubn(y),this.negative=1,this):this._iaddn(y)},n.prototype._iaddn=function(y){this.words[0]+=y;for(var _=0;_=67108864;_++)this.words[_]-=67108864,_===this.length-1?this.words[_+1]=1:this.words[_+1]++;return this.length=Math.max(this.length,_+1),this},n.prototype.isubn=function(y){if(r(typeof y=="number"),r(y<67108864),y<0)return this.iaddn(-y);if(this.negative!==0)return this.negative=0,this.iaddn(y),this.negative=1,this;if(this.words[0]-=y,this.length===1&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var _=0;_>26)-(F/67108864|0),this.words[E+P]=h&67108863}for(;E>26,this.words[E+P]=h&67108863;if(A===0)return this._strip();for(r(A===-1),A=0,E=0;E>26,this.words[E]=h&67108863;return this.negative=1,this._strip()},n.prototype._wordDiv=function(y,_){var P=this.length-y.length,M=this.clone(),E=y,h=E.words[E.length-1]|0,A=this._countBits(h);P=26-A,P!==0&&(E=E.ushln(P),M.iushln(P),h=E.words[E.length-1]|0);var F=M.length-E.length,O;if(_!=="mod"){O=new n(null),O.length=F+1,O.words=new Array(O.length);for(var N=0;N=0;q--){var fe=(M.words[E.length+q]|0)*67108864+(M.words[E.length+q-1]|0);for(fe=Math.min(fe/h|0,67108863),M._ishlnsubmul(E,fe,q);M.negative!==0;)fe--,M.negative=0,M._ishlnsubmul(E,1,q),M.isZero()||(M.negative^=1);O&&(O.words[q]=fe)}return O&&O._strip(),M._strip(),_!=="div"&&P!==0&&M.iushrn(P),{div:O||null,mod:M}},n.prototype.divmod=function(y,_,P){if(r(!y.isZero()),this.isZero())return{div:new n(0),mod:new n(0)};var M,E,h;return this.negative!==0&&y.negative===0?(h=this.neg().divmod(y,_),_!=="mod"&&(M=h.div.neg()),_!=="div"&&(E=h.mod.neg(),P&&E.negative!==0&&E.iadd(y)),{div:M,mod:E}):this.negative===0&&y.negative!==0?(h=this.divmod(y.neg(),_),_!=="mod"&&(M=h.div.neg()),{div:M,mod:h.mod}):(this.negative&y.negative)!==0?(h=this.neg().divmod(y.neg(),_),_!=="div"&&(E=h.mod.neg(),P&&E.negative!==0&&E.isub(y)),{div:h.div,mod:E}):y.length>this.length||this.cmp(y)<0?{div:new n(0),mod:this}:y.length===1?_==="div"?{div:this.divn(y.words[0]),mod:null}:_==="mod"?{div:null,mod:new n(this.modrn(y.words[0]))}:{div:this.divn(y.words[0]),mod:new n(this.modrn(y.words[0]))}:this._wordDiv(y,_)},n.prototype.div=function(y){return this.divmod(y,"div",!1).div},n.prototype.mod=function(y){return this.divmod(y,"mod",!1).mod},n.prototype.umod=function(y){return this.divmod(y,"mod",!0).mod},n.prototype.divRound=function(y){var _=this.divmod(y);if(_.mod.isZero())return _.div;var P=_.div.negative!==0?_.mod.isub(y):_.mod,M=y.ushrn(1),E=y.andln(1),h=P.cmp(M);return h<0||E===1&&h===0?_.div:_.div.negative!==0?_.div.isubn(1):_.div.iaddn(1)},n.prototype.modrn=function(y){var _=y<0;_&&(y=-y),r(y<=67108863);for(var P=(1<<26)%y,M=0,E=this.length-1;E>=0;E--)M=(P*M+(this.words[E]|0))%y;return _?-M:M},n.prototype.modn=function(y){return this.modrn(y)},n.prototype.idivn=function(y){var _=y<0;_&&(y=-y),r(y<=67108863);for(var P=0,M=this.length-1;M>=0;M--){var E=(this.words[M]|0)+P*67108864;this.words[M]=E/y|0,P=E%y}return this._strip(),_?this.ineg():this},n.prototype.divn=function(y){return this.clone().idivn(y)},n.prototype.egcd=function(y){r(y.negative===0),r(!y.isZero());var _=this,P=y.clone();_.negative!==0?_=_.umod(y):_=_.clone();for(var M=new n(1),E=new n(0),h=new n(0),A=new n(1),F=0;_.isEven()&&P.isEven();)_.iushrn(1),P.iushrn(1),++F;for(var O=P.clone(),N=_.clone();!_.isZero();){for(var xe=0,q=1;(_.words[0]&q)===0&&xe<26;++xe,q<<=1);if(xe>0)for(_.iushrn(xe);xe-- >0;)(M.isOdd()||E.isOdd())&&(M.iadd(O),E.isub(N)),M.iushrn(1),E.iushrn(1);for(var fe=0,Te=1;(P.words[0]&Te)===0&&fe<26;++fe,Te<<=1);if(fe>0)for(P.iushrn(fe);fe-- >0;)(h.isOdd()||A.isOdd())&&(h.iadd(O),A.isub(N)),h.iushrn(1),A.iushrn(1);_.cmp(P)>=0?(_.isub(P),M.isub(h),E.isub(A)):(P.isub(_),h.isub(M),A.isub(E))}return{a:h,b:A,gcd:P.iushln(F)}},n.prototype._invmp=function(y){r(y.negative===0),r(!y.isZero());var _=this,P=y.clone();_.negative!==0?_=_.umod(y):_=_.clone();for(var M=new n(1),E=new n(0),h=P.clone();_.cmpn(1)>0&&P.cmpn(1)>0;){for(var A=0,F=1;(_.words[0]&F)===0&&A<26;++A,F<<=1);if(A>0)for(_.iushrn(A);A-- >0;)M.isOdd()&&M.iadd(h),M.iushrn(1);for(var O=0,N=1;(P.words[0]&N)===0&&O<26;++O,N<<=1);if(O>0)for(P.iushrn(O);O-- >0;)E.isOdd()&&E.iadd(h),E.iushrn(1);_.cmp(P)>=0?(_.isub(P),M.isub(E)):(P.isub(_),E.isub(M))}var xe;return _.cmpn(1)===0?xe=M:xe=E,xe.cmpn(0)<0&&xe.iadd(y),xe},n.prototype.gcd=function(y){if(this.isZero())return y.abs();if(y.isZero())return this.abs();var _=this.clone(),P=y.clone();_.negative=0,P.negative=0;for(var M=0;_.isEven()&&P.isEven();M++)_.iushrn(1),P.iushrn(1);do{for(;_.isEven();)_.iushrn(1);for(;P.isEven();)P.iushrn(1);var E=_.cmp(P);if(E<0){var h=_;_=P,P=h}else if(E===0||P.cmpn(1)===0)break;_.isub(P)}while(!0);return P.iushln(M)},n.prototype.invm=function(y){return this.egcd(y).a.umod(y)},n.prototype.isEven=function(){return(this.words[0]&1)===0},n.prototype.isOdd=function(){return(this.words[0]&1)===1},n.prototype.andln=function(y){return this.words[0]&y},n.prototype.bincn=function(y){r(typeof y=="number");var _=y%26,P=(y-_)/26,M=1<<_;if(this.length<=P)return this._expand(P+1),this.words[P]|=M,this;for(var E=M,h=P;E!==0&&h>>26,A&=67108863,this.words[h]=A}return E!==0&&(this.words[h]=E,this.length++),this},n.prototype.isZero=function(){return this.length===1&&this.words[0]===0},n.prototype.cmpn=function(y){var _=y<0;if(this.negative!==0&&!_)return-1;if(this.negative===0&&_)return 1;this._strip();var P;if(this.length>1)P=1;else{_&&(y=-y),r(y<=67108863,"Number is too big");var M=this.words[0]|0;P=M===y?0:My.length)return 1;if(this.length=0;P--){var M=this.words[P]|0,E=y.words[P]|0;if(M!==E){ME&&(_=1);break}}return _},n.prototype.gtn=function(y){return this.cmpn(y)===1},n.prototype.gt=function(y){return this.cmp(y)===1},n.prototype.gten=function(y){return this.cmpn(y)>=0},n.prototype.gte=function(y){return this.cmp(y)>=0},n.prototype.ltn=function(y){return this.cmpn(y)===-1},n.prototype.lt=function(y){return this.cmp(y)===-1},n.prototype.lten=function(y){return this.cmpn(y)<=0},n.prototype.lte=function(y){return this.cmp(y)<=0},n.prototype.eqn=function(y){return this.cmpn(y)===0},n.prototype.eq=function(y){return this.cmp(y)===0},n.red=function(y){return new g(y)},n.prototype.toRed=function(y){return r(!this.red,"Already a number in reduction context"),r(this.negative===0,"red works only with positives"),y.convertTo(this)._forceRed(y)},n.prototype.fromRed=function(){return r(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},n.prototype._forceRed=function(y){return this.red=y,this},n.prototype.forceRed=function(y){return r(!this.red,"Already a number in reduction context"),this._forceRed(y)},n.prototype.redAdd=function(y){return r(this.red,"redAdd works only with red numbers"),this.red.add(this,y)},n.prototype.redIAdd=function(y){return r(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,y)},n.prototype.redSub=function(y){return r(this.red,"redSub works only with red numbers"),this.red.sub(this,y)},n.prototype.redISub=function(y){return r(this.red,"redISub works only with red numbers"),this.red.isub(this,y)},n.prototype.redShl=function(y){return r(this.red,"redShl works only with red numbers"),this.red.shl(this,y)},n.prototype.redMul=function(y){return r(this.red,"redMul works only with red numbers"),this.red._verify2(this,y),this.red.mul(this,y)},n.prototype.redIMul=function(y){return r(this.red,"redMul works only with red numbers"),this.red._verify2(this,y),this.red.imul(this,y)},n.prototype.redSqr=function(){return r(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},n.prototype.redISqr=function(){return r(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},n.prototype.redSqrt=function(){return r(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},n.prototype.redInvm=function(){return r(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},n.prototype.redNeg=function(){return r(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},n.prototype.redPow=function(y){return r(this.red&&!y.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,y)};var be={k256:null,p224:null,p192:null,p25519:null};function ce(w,y){this.name=w,this.p=new n(y,16),this.n=this.p.bitLength(),this.k=new n(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}ce.prototype._tmp=function(){var y=new n(null);return y.words=new Array(Math.ceil(this.n/13)),y},ce.prototype.ireduce=function(y){var _=y,P;do this.split(_,this.tmp),_=this.imulK(_),_=_.iadd(this.tmp),P=_.bitLength();while(P>this.n);var M=P0?_.isub(this.p):_.strip!==void 0?_.strip():_._strip(),_},ce.prototype.split=function(y,_){y.iushrn(this.n,0,_)},ce.prototype.imulK=function(y){return y.imul(this.k)};function me(){ce.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}i(me,ce),me.prototype.split=function(y,_){for(var P=4194303,M=Math.min(y.length,9),E=0;E>>22,h=A}h>>>=22,y.words[E-10]=h,h===0&&y.length>10?y.length-=10:y.length-=9},me.prototype.imulK=function(y){y.words[y.length]=0,y.words[y.length+1]=0,y.length+=2;for(var _=0,P=0;P>>=26,y.words[P]=E,_=M}return _!==0&&(y.words[y.length++]=_),y},n._prime=function(y){if(be[y])return be[y];var _;if(y==="k256")_=new me;else if(y==="p224")_=new ne;else if(y==="p192")_=new ee;else if(y==="p25519")_=new R;else throw new Error("Unknown prime "+y);return be[y]=_,_};function g(w){if(typeof w=="string"){var y=n._prime(w);this.m=y.p,this.prime=y}else r(w.gtn(1),"modulus must be greater than 1"),this.m=w,this.prime=null}g.prototype._verify1=function(y){r(y.negative===0,"red works only with positives"),r(y.red,"red works only with red numbers")},g.prototype._verify2=function(y,_){r((y.negative|_.negative)===0,"red works only with positives"),r(y.red&&y.red===_.red,"red works only with red numbers")},g.prototype.imod=function(y){return this.prime?this.prime.ireduce(y)._forceRed(this):(u(y,y.umod(this.m)._forceRed(this)),y)},g.prototype.neg=function(y){return y.isZero()?y.clone():this.m.sub(y)._forceRed(this)},g.prototype.add=function(y,_){this._verify2(y,_);var P=y.add(_);return P.cmp(this.m)>=0&&P.isub(this.m),P._forceRed(this)},g.prototype.iadd=function(y,_){this._verify2(y,_);var P=y.iadd(_);return P.cmp(this.m)>=0&&P.isub(this.m),P},g.prototype.sub=function(y,_){this._verify2(y,_);var P=y.sub(_);return P.cmpn(0)<0&&P.iadd(this.m),P._forceRed(this)},g.prototype.isub=function(y,_){this._verify2(y,_);var P=y.isub(_);return P.cmpn(0)<0&&P.iadd(this.m),P},g.prototype.shl=function(y,_){return this._verify1(y),this.imod(y.ushln(_))},g.prototype.imul=function(y,_){return this._verify2(y,_),this.imod(y.imul(_))},g.prototype.mul=function(y,_){return this._verify2(y,_),this.imod(y.mul(_))},g.prototype.isqr=function(y){return this.imul(y,y.clone())},g.prototype.sqr=function(y){return this.mul(y,y)},g.prototype.sqrt=function(y){if(y.isZero())return y.clone();var _=this.m.andln(3);if(r(_%2===1),_===3){var P=this.m.add(new n(1)).iushrn(2);return this.pow(y,P)}for(var M=this.m.subn(1),E=0;!M.isZero()&&M.andln(1)===0;)E++,M.iushrn(1);r(!M.isZero());var h=new n(1).toRed(this),A=h.redNeg(),F=this.m.subn(1).iushrn(1),O=this.m.bitLength();for(O=new n(2*O*O).toRed(this);this.pow(O,F).cmp(A)!==0;)O.redIAdd(A);for(var N=this.pow(O,M),xe=this.pow(y,M.addn(1).iushrn(1)),q=this.pow(y,M),fe=E;q.cmp(h)!==0;){for(var Te=q,_e=0;Te.cmp(h)!==0;_e++)Te=Te.redSqr();r(_e=0;E--){for(var N=_.words[E],xe=O-1;xe>=0;xe--){var q=N>>xe&1;if(h!==M[0]&&(h=this.sqr(h)),q===0&&A===0){F=0;continue}A<<=1,A|=q,F++,!(F!==P&&(E!==0||xe!==0))&&(h=this.mul(h,M[A]),F=0,A=0)}O=26}return h},g.prototype.convertTo=function(y){var _=y.umod(this.m);return _===y?_.clone():_},g.prototype.convertFrom=function(y){var _=y.clone();return _.red=null,_},n.mont=function(y){return new v(y)};function v(w){g.call(this,w),this.shift=this.m.bitLength(),this.shift%26!==0&&(this.shift+=26-this.shift%26),this.r=new n(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}i(v,g),v.prototype.convertTo=function(y){return this.imod(y.ushln(this.shift))},v.prototype.convertFrom=function(y){var _=this.imod(y.mul(this.rinv));return _.red=null,_},v.prototype.imul=function(y,_){if(y.isZero()||_.isZero())return y.words[0]=0,y.length=1,y;var P=y.imul(_),M=P.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),E=P.isub(M).iushrn(this.shift),h=E;return E.cmp(this.m)>=0?h=E.isub(this.m):E.cmpn(0)<0&&(h=E.iadd(this.m)),h._forceRed(this)},v.prototype.mul=function(y,_){if(y.isZero()||_.isZero())return new n(0)._forceRed(this);var P=y.mul(_),M=P.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),E=P.isub(M).iushrn(this.shift),h=E;return E.cmp(this.m)>=0?h=E.isub(this.m):E.cmpn(0)<0&&(h=E.iadd(this.m)),h._forceRed(this)},v.prototype.invm=function(y){var _=this.imod(y._invmp(this.m).mul(this.r2));return _._forceRed(this)}})(typeof MO>"u"||MO,jJ)});var VJ=x($8=>{"use strict";Object.defineProperty($8,"__esModule",{value:!0});$8.version=void 0;$8.version="logger/5.7.0"});var Ht=x(ld=>{"use strict";Object.defineProperty(ld,"__esModule",{value:!0});ld.Logger=ld.ErrorCode=ld.LogLevel=void 0;var HJ=!1,zJ=!1,Q8={debug:1,default:2,info:2,warning:3,error:4,off:5},GJ=Q8.default,STe=VJ(),CO=null;function ETe(){try{var t=[];if(["NFD","NFC","NFKD","NFKC"].forEach(function(e){try{if("test".normalize(e)!=="test")throw new Error("bad normalize")}catch{t.push(e)}}),t.length)throw new Error("missing "+t.join(", "));if(String.fromCharCode(233).normalize("NFD")!==String.fromCharCode(101,769))throw new Error("broken implementation")}catch(e){return e.message}return null}var JJ=ETe(),KJ;(function(t){t.DEBUG="DEBUG",t.INFO="INFO",t.WARNING="WARNING",t.ERROR="ERROR",t.OFF="OFF"})(KJ=ld.LogLevel||(ld.LogLevel={}));var dd;(function(t){t.UNKNOWN_ERROR="UNKNOWN_ERROR",t.NOT_IMPLEMENTED="NOT_IMPLEMENTED",t.UNSUPPORTED_OPERATION="UNSUPPORTED_OPERATION",t.NETWORK_ERROR="NETWORK_ERROR",t.SERVER_ERROR="SERVER_ERROR",t.TIMEOUT="TIMEOUT",t.BUFFER_OVERRUN="BUFFER_OVERRUN",t.NUMERIC_FAULT="NUMERIC_FAULT",t.MISSING_NEW="MISSING_NEW",t.INVALID_ARGUMENT="INVALID_ARGUMENT",t.MISSING_ARGUMENT="MISSING_ARGUMENT",t.UNEXPECTED_ARGUMENT="UNEXPECTED_ARGUMENT",t.CALL_EXCEPTION="CALL_EXCEPTION",t.INSUFFICIENT_FUNDS="INSUFFICIENT_FUNDS",t.NONCE_EXPIRED="NONCE_EXPIRED",t.REPLACEMENT_UNDERPRICED="REPLACEMENT_UNDERPRICED",t.UNPREDICTABLE_GAS_LIMIT="UNPREDICTABLE_GAS_LIMIT",t.TRANSACTION_REPLACED="TRANSACTION_REPLACED",t.ACTION_REJECTED="ACTION_REJECTED"})(dd=ld.ErrorCode||(ld.ErrorCode={}));var XJ="0123456789abcdef",TTe=function(){function t(e){Object.defineProperty(this,"version",{enumerable:!0,value:e,writable:!1})}return t.prototype._log=function(e,r){var i=e.toLowerCase();Q8[i]==null&&this.throwArgumentError("invalid log level name","logLevel",e),!(GJ>Q8[i])&&console.log.apply(console,r)},t.prototype.debug=function(){for(var e=[],r=0;r>4],d+=XJ[f[p]&15];n.push(u+"=Uint8Array(0x"+d+")")}else n.push(u+"="+JSON.stringify(f))}catch{n.push(u+"="+JSON.stringify(i[u].toString()))}}),n.push("code="+r),n.push("version="+this.version);var a=e,s="";switch(r){case dd.NUMERIC_FAULT:{s="NUMERIC_FAULT";var o=e;switch(o){case"overflow":case"underflow":case"division-by-zero":s+="-"+o;break;case"negative-power":case"negative-width":s+="-unsupported";break;case"unbound-bitwise-result":s+="-unbound-result";break}break}case dd.CALL_EXCEPTION:case dd.INSUFFICIENT_FUNDS:case dd.MISSING_NEW:case dd.NONCE_EXPIRED:case dd.REPLACEMENT_UNDERPRICED:case dd.TRANSACTION_REPLACED:case dd.UNPREDICTABLE_GAS_LIMIT:s=r;break}s&&(e+=" [ See: https://links.ethers.org/v5-errors-"+s+" ]"),n.length&&(e+=" ("+n.join(", ")+")");var c=new Error(e);return c.reason=a,c.code=r,Object.keys(i).forEach(function(u){c[u]=i[u]}),c},t.prototype.throwError=function(e,r,i){throw this.makeError(e,r,i)},t.prototype.throwArgumentError=function(e,r,i){return this.throwError(e,t.errors.INVALID_ARGUMENT,{argument:r,value:i})},t.prototype.assert=function(e,r,i,n){e||this.throwError(r,i,n)},t.prototype.assertArgument=function(e,r,i,n){e||this.throwArgumentError(r,i,n)},t.prototype.checkNormalize=function(e){e==null&&(e="platform missing String.prototype.normalize"),JJ&&this.throwError("platform missing String.prototype.normalize",t.errors.UNSUPPORTED_OPERATION,{operation:"String.prototype.normalize",form:JJ})},t.prototype.checkSafeUint53=function(e,r){typeof e=="number"&&(r==null&&(r="value not safe"),(e<0||e>=9007199254740991)&&this.throwError(r,t.errors.NUMERIC_FAULT,{operation:"checkSafeInteger",fault:"out-of-safe-range",value:e}),e%1&&this.throwError(r,t.errors.NUMERIC_FAULT,{operation:"checkSafeInteger",fault:"non-integer",value:e}))},t.prototype.checkArgumentCount=function(e,r,i){i?i=": "+i:i="",er&&this.throwError("too many arguments"+i,t.errors.UNEXPECTED_ARGUMENT,{count:e,expectedCount:r})},t.prototype.checkNew=function(e,r){(e===Object||e==null)&&this.throwError("missing new",t.errors.MISSING_NEW,{name:r.name})},t.prototype.checkAbstract=function(e,r){e===r?this.throwError("cannot instantiate abstract class "+JSON.stringify(r.name)+" directly; use a sub-class",t.errors.UNSUPPORTED_OPERATION,{name:e.name,operation:"new"}):(e===Object||e==null)&&this.throwError("missing new",t.errors.MISSING_NEW,{name:r.name})},t.globalLogger=function(){return CO||(CO=new t(STe.version)),CO},t.setCensorship=function(e,r){if(!e&&r&&this.globalLogger().throwError("cannot permanently disable censorship",t.errors.UNSUPPORTED_OPERATION,{operation:"setCensorship"}),HJ){if(!e)return;this.globalLogger().throwError("error censorship permanent",t.errors.UNSUPPORTED_OPERATION,{operation:"setCensorship"})}zJ=!!e,HJ=!!r},t.setLogLevel=function(e){var r=Q8[e.toLowerCase()];if(r==null){t.globalLogger().warn("invalid log level - "+e);return}GJ=r},t.from=function(e){return new t(e)},t.errors=dd,t.levels=KJ,t}();ld.Logger=TTe});var WJ=x(Y8=>{"use strict";Object.defineProperty(Y8,"__esModule",{value:!0});Y8.version=void 0;Y8.version="bytes/5.7.0"});var or=x(Dr=>{"use strict";Object.defineProperty(Dr,"__esModule",{value:!0});Dr.joinSignature=Dr.splitSignature=Dr.hexZeroPad=Dr.hexStripZeros=Dr.hexValue=Dr.hexConcat=Dr.hexDataSlice=Dr.hexDataLength=Dr.hexlify=Dr.isHexString=Dr.zeroPad=Dr.stripZeros=Dr.concat=Dr.arrayify=Dr.isBytes=Dr.isBytesLike=void 0;var ATe=Ht(),PTe=WJ(),nn=new ATe.Logger(PTe.version);function $J(t){return!!t.toHexString}function J2(t){return t.slice||(t.slice=function(){var e=Array.prototype.slice.call(arguments);return J2(new Uint8Array(Array.prototype.slice.apply(t,e)))}),t}function QJ(t){return sc(t)&&!(t.length%2)||t5(t)}Dr.isBytesLike=QJ;function ZJ(t){return typeof t=="number"&&t==t&&t%1===0}function t5(t){if(t==null)return!1;if(t.constructor===Uint8Array)return!0;if(typeof t=="string"||!ZJ(t.length)||t.length<0)return!1;for(var e=0;e=256)return!1}return!0}Dr.isBytes=t5;function D1(t,e){if(e||(e={}),typeof t=="number"){nn.checkSafeUint53(t,"invalid arrayify value");for(var r=[];t;)r.unshift(t&255),t=parseInt(String(t/256));return r.length===0&&r.push(0),J2(new Uint8Array(r))}if(e.allowMissingPrefix&&typeof t=="string"&&t.substring(0,2)!=="0x"&&(t="0x"+t),$J(t)&&(t=t.toHexString()),sc(t)){var i=t.substring(2);i.length%2&&(e.hexPad==="left"?i="0"+i:e.hexPad==="right"?i+="0":nn.throwArgumentError("hex data is odd-length","value",t));for(var r=[],n=0;ne&&nn.throwArgumentError("value out of range","value",arguments[0]);var r=new Uint8Array(e);return r.set(t,e-t.length),J2(r)}Dr.zeroPad=eX;function sc(t,e){return!(typeof t!="string"||!t.match(/^0x[0-9A-Fa-f]*$/)||e&&t.length!==2+2*e)}Dr.isHexString=sc;var IO="0123456789abcdef";function $a(t,e){if(e||(e={}),typeof t=="number"){nn.checkSafeUint53(t,"invalid hexlify value");for(var r="";t;)r=IO[t&15]+r,t=Math.floor(t/16);return r.length?(r.length%2&&(r="0"+r),"0x"+r):"0x00"}if(typeof t=="bigint")return t=t.toString(16),t.length%2?"0x0"+t:"0x"+t;if(e.allowMissingPrefix&&typeof t=="string"&&t.substring(0,2)!=="0x"&&(t="0x"+t),$J(t))return t.toHexString();if(sc(t))return t.length%2&&(e.hexPad==="left"?t="0x0"+t.substring(2):e.hexPad==="right"?t+="0":nn.throwArgumentError("hex data is odd-length","value",t)),t.toLowerCase();if(t5(t)){for(var i="0x",n=0;n>4]+IO[a&15]}return i}return nn.throwArgumentError("invalid hexlify value","value",t)}Dr.hexlify=$a;function RTe(t){if(typeof t!="string")t=$a(t);else if(!sc(t)||t.length%2)return null;return(t.length-2)/2}Dr.hexDataLength=RTe;function MTe(t,e,r){return typeof t!="string"?t=$a(t):(!sc(t)||t.length%2)&&nn.throwArgumentError("invalid hexData","value",t),e=2+2*e,r!=null?"0x"+t.substring(e,2+2*r):"0x"+t.substring(e)}Dr.hexDataSlice=MTe;function CTe(t){var e="0x";return t.forEach(function(r){e+=$a(r).substring(2)}),e}Dr.hexConcat=CTe;function ITe(t){var e=tX($a(t,{hexPad:"left"}));return e==="0x"?"0x0":e}Dr.hexValue=ITe;function tX(t){typeof t!="string"&&(t=$a(t)),sc(t)||nn.throwArgumentError("invalid hex string","value",t),t=t.substring(2);for(var e=0;e2*e+2&&nn.throwArgumentError("value out of range","value",arguments[1]);t.length<2*e+2;)t="0x0"+t.substring(2);return t}Dr.hexZeroPad=e5;function rX(t){var e={r:"0x",s:"0x",_vs:"0x",recoveryParam:0,v:0,yParityAndS:"0x",compact:"0x"};if(QJ(t)){var r=D1(t);r.length===64?(e.v=27+(r[32]>>7),r[32]&=127,e.r=$a(r.slice(0,32)),e.s=$a(r.slice(32,64))):r.length===65?(e.r=$a(r.slice(0,32)),e.s=$a(r.slice(32,64)),e.v=r[64]):nn.throwArgumentError("invalid signature string","signature",t),e.v<27&&(e.v===0||e.v===1?e.v+=27:nn.throwArgumentError("signature invalid v byte","signature",t)),e.recoveryParam=1-e.v%2,e.recoveryParam&&(r[32]|=128),e._vs=$a(r.slice(32,64))}else{if(e.r=t.r,e.s=t.s,e.v=t.v,e.recoveryParam=t.recoveryParam,e._vs=t._vs,e._vs!=null){var i=eX(D1(e._vs),32);e._vs=$a(i);var n=i[0]>=128?1:0;e.recoveryParam==null?e.recoveryParam=n:e.recoveryParam!==n&&nn.throwArgumentError("signature recoveryParam mismatch _vs","signature",t),i[0]&=127;var a=$a(i);e.s==null?e.s=a:e.s!==a&&nn.throwArgumentError("signature v mismatch _vs","signature",t)}if(e.recoveryParam==null)e.v==null?nn.throwArgumentError("signature missing v and recoveryParam","signature",t):e.v===0||e.v===1?e.recoveryParam=e.v:e.recoveryParam=1-e.v%2;else if(e.v==null)e.v=27+e.recoveryParam;else{var s=e.v===0||e.v===1?e.v:1-e.v%2;e.recoveryParam!==s&&nn.throwArgumentError("signature recoveryParam mismatch v","signature",t)}e.r==null||!sc(e.r)?nn.throwArgumentError("signature missing or invalid r","signature",t):e.r=e5(e.r,32),e.s==null||!sc(e.s)?nn.throwArgumentError("signature missing or invalid s","signature",t):e.s=e5(e.s,32);var o=D1(e.s);o[0]>=128&&nn.throwArgumentError("signature s out of range","signature",t),e.recoveryParam&&(o[0]|=128);var c=$a(o);e._vs&&(sc(e._vs)||nn.throwArgumentError("signature invalid _vs","signature",t),e._vs=e5(e._vs,32)),e._vs==null?e._vs=c:e._vs!==c&&nn.throwArgumentError("signature _vs mismatch v and s","signature",t)}return e.yParityAndS=e._vs,e.compact=e.r+e.yParityAndS.substring(2),e}Dr.splitSignature=rX;function NTe(t){return t=rX(t),$a(YJ([t.r,t.s,t.recoveryParam?"0x1c":"0x1b"]))}Dr.joinSignature=NTe});var NO=x(r5=>{"use strict";Object.defineProperty(r5,"__esModule",{value:!0});r5.version=void 0;r5.version="bignumber/5.7.0"});var n5=x(su=>{"use strict";var kTe=su&&su.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(su,"__esModule",{value:!0});su._base16To36=su._base36To16=su.BigNumber=su.isBigNumberish=void 0;var BTe=kTe(ac()),_4=BTe.default.BN,X2=or(),K2=Ht(),FTe=NO(),Yl=new K2.Logger(FTe.version),kO={},iX=9007199254740991;function DTe(t){return t!=null&&(i5.isBigNumber(t)||typeof t=="number"&&t%1===0||typeof t=="string"&&!!t.match(/^-?[0-9]+$/)||(0,X2.isHexString)(t)||typeof t=="bigint"||(0,X2.isBytes)(t))}su.isBigNumberish=DTe;var nX=!1,i5=function(){function t(e,r){e!==kO&&Yl.throwError("cannot call constructor directly; use BigNumber.from",K2.Logger.errors.UNSUPPORTED_OPERATION,{operation:"new (BigNumber)"}),this._hex=r,this._isBigNumber=!0,Object.freeze(this)}return t.prototype.fromTwos=function(e){return Vs(Or(this).fromTwos(e))},t.prototype.toTwos=function(e){return Vs(Or(this).toTwos(e))},t.prototype.abs=function(){return this._hex[0]==="-"?t.from(this._hex.substring(1)):this},t.prototype.add=function(e){return Vs(Or(this).add(Or(e)))},t.prototype.sub=function(e){return Vs(Or(this).sub(Or(e)))},t.prototype.div=function(e){var r=t.from(e);return r.isZero()&&au("division-by-zero","div"),Vs(Or(this).div(Or(e)))},t.prototype.mul=function(e){return Vs(Or(this).mul(Or(e)))},t.prototype.mod=function(e){var r=Or(e);return r.isNeg()&&au("division-by-zero","mod"),Vs(Or(this).umod(r))},t.prototype.pow=function(e){var r=Or(e);return r.isNeg()&&au("negative-power","pow"),Vs(Or(this).pow(r))},t.prototype.and=function(e){var r=Or(e);return(this.isNegative()||r.isNeg())&&au("unbound-bitwise-result","and"),Vs(Or(this).and(r))},t.prototype.or=function(e){var r=Or(e);return(this.isNegative()||r.isNeg())&&au("unbound-bitwise-result","or"),Vs(Or(this).or(r))},t.prototype.xor=function(e){var r=Or(e);return(this.isNegative()||r.isNeg())&&au("unbound-bitwise-result","xor"),Vs(Or(this).xor(r))},t.prototype.mask=function(e){return(this.isNegative()||e<0)&&au("negative-width","mask"),Vs(Or(this).maskn(e))},t.prototype.shl=function(e){return(this.isNegative()||e<0)&&au("negative-width","shl"),Vs(Or(this).shln(e))},t.prototype.shr=function(e){return(this.isNegative()||e<0)&&au("negative-width","shr"),Vs(Or(this).shrn(e))},t.prototype.eq=function(e){return Or(this).eq(Or(e))},t.prototype.lt=function(e){return Or(this).lt(Or(e))},t.prototype.lte=function(e){return Or(this).lte(Or(e))},t.prototype.gt=function(e){return Or(this).gt(Or(e))},t.prototype.gte=function(e){return Or(this).gte(Or(e))},t.prototype.isNegative=function(){return this._hex[0]==="-"},t.prototype.isZero=function(){return Or(this).isZero()},t.prototype.toNumber=function(){try{return Or(this).toNumber()}catch{au("overflow","toNumber",this.toString())}return null},t.prototype.toBigInt=function(){try{return BigInt(this.toString())}catch{}return Yl.throwError("this platform does not support BigInt",K2.Logger.errors.UNSUPPORTED_OPERATION,{value:this.toString()})},t.prototype.toString=function(){return arguments.length>0&&(arguments[0]===10?nX||(nX=!0,Yl.warn("BigNumber.toString does not accept any parameters; base-10 is assumed")):arguments[0]===16?Yl.throwError("BigNumber.toString does not accept any parameters; use bigNumber.toHexString()",K2.Logger.errors.UNEXPECTED_ARGUMENT,{}):Yl.throwError("BigNumber.toString does not accept parameters",K2.Logger.errors.UNEXPECTED_ARGUMENT,{})),Or(this).toString(10)},t.prototype.toHexString=function(){return this._hex},t.prototype.toJSON=function(e){return{type:"BigNumber",hex:this.toHexString()}},t.from=function(e){if(e instanceof t)return e;if(typeof e=="string")return e.match(/^-?0x[0-9a-f]+$/i)?new t(kO,w4(e)):e.match(/^-?[0-9]+$/)?new t(kO,w4(new _4(e))):Yl.throwArgumentError("invalid BigNumber string","value",e);if(typeof e=="number")return e%1&&au("underflow","BigNumber.from",e),(e>=iX||e<=-iX)&&au("overflow","BigNumber.from",e),t.from(String(e));var r=e;if(typeof r=="bigint")return t.from(r.toString());if((0,X2.isBytes)(r))return t.from((0,X2.hexlify)(r));if(r)if(r.toHexString){var i=r.toHexString();if(typeof i=="string")return t.from(i)}else{var i=r._hex;if(i==null&&r.type==="BigNumber"&&(i=r.hex),typeof i=="string"&&((0,X2.isHexString)(i)||i[0]==="-"&&(0,X2.isHexString)(i.substring(1))))return t.from(i)}return Yl.throwArgumentError("invalid BigNumber value","value",e)},t.isBigNumber=function(e){return!!(e&&e._isBigNumber)},t}();su.BigNumber=i5;function w4(t){if(typeof t!="string")return w4(t.toString(16));if(t[0]==="-")return t=t.substring(1),t[0]==="-"&&Yl.throwArgumentError("invalid hex","value",t),t=w4(t),t==="0x00"?t:"-"+t;if(t.substring(0,2)!=="0x"&&(t="0x"+t),t==="0x")return"0x00";for(t.length%2&&(t="0x0"+t.substring(2));t.length>4&&t.substring(0,4)==="0x00";)t="0x"+t.substring(4);return t}function Vs(t){return i5.from(w4(t))}function Or(t){var e=i5.from(t).toHexString();return e[0]==="-"?new _4("-"+e.substring(3),16):new _4(e.substring(2),16)}function au(t,e,r){var i={fault:t,operation:e};return r!=null&&(i.value=r),Yl.throwError(t,K2.Logger.errors.NUMERIC_FAULT,i)}function qTe(t){return new _4(t,36).toString(16)}su._base36To16=qTe;function LTe(t){return new _4(t,16).toString(36)}su._base16To36=LTe});var cX=x(pd=>{"use strict";Object.defineProperty(pd,"__esModule",{value:!0});pd.FixedNumber=pd.FixedFormat=pd.parseFixed=pd.formatFixed=void 0;var a5=or(),E4=Ht(),UTe=NO(),Os=new E4.Logger(UTe.version),ef=n5(),x4={},sX=ef.BigNumber.from(0),oX=ef.BigNumber.from(-1);function uX(t,e,r,i){var n={fault:e,operation:r};return i!==void 0&&(n.value=i),Os.throwError(t,E4.Logger.errors.NUMERIC_FAULT,n)}var S4="0";for(;S4.length<256;)S4+=S4;function BO(t){if(typeof t!="number")try{t=ef.BigNumber.from(t).toNumber()}catch{}return typeof t=="number"&&t>=0&&t<=256&&!(t%1)?"1"+S4.substring(0,t):Os.throwArgumentError("invalid decimal size","decimals",t)}function s5(t,e){e==null&&(e=0);var r=BO(e);t=ef.BigNumber.from(t);var i=t.lt(sX);i&&(t=t.mul(oX));for(var n=t.mod(r).toString();n.length2&&Os.throwArgumentError("too many decimal points","value",t);var a=n[0],s=n[1];for(a||(a="0"),s||(s="0");s[s.length-1]==="0";)s=s.substring(0,s.length-1);for(s.length>r.length-1&&uX("fractional component exceeds decimals","underflow","parseFixed"),s===""&&(s="0");s.length80&&Os.throwArgumentError("invalid fixed format (decimals too large)","format.decimals",n),new t(x4,r,i,n)},t}();pd.FixedFormat=o5;var FO=function(){function t(e,r,i,n){e!==x4&&Os.throwError("cannot use FixedNumber constructor; use FixedNumber.from",E4.Logger.errors.UNSUPPORTED_OPERATION,{operation:"new FixedFormat"}),this.format=n,this._hex=r,this._value=i,this._isFixedNumber=!0,Object.freeze(this)}return t.prototype._checkFormat=function(e){this.format.name!==e.format.name&&Os.throwArgumentError("incompatible format; use fixedNumber.toFormat","other",e)},t.prototype.addUnsafe=function(e){this._checkFormat(e);var r=fd(this._value,this.format.decimals),i=fd(e._value,e.format.decimals);return t.fromValue(r.add(i),this.format.decimals,this.format)},t.prototype.subUnsafe=function(e){this._checkFormat(e);var r=fd(this._value,this.format.decimals),i=fd(e._value,e.format.decimals);return t.fromValue(r.sub(i),this.format.decimals,this.format)},t.prototype.mulUnsafe=function(e){this._checkFormat(e);var r=fd(this._value,this.format.decimals),i=fd(e._value,e.format.decimals);return t.fromValue(r.mul(i).div(this.format._multiplier),this.format.decimals,this.format)},t.prototype.divUnsafe=function(e){this._checkFormat(e);var r=fd(this._value,this.format.decimals),i=fd(e._value,e.format.decimals);return t.fromValue(r.mul(this.format._multiplier).div(i),this.format.decimals,this.format)},t.prototype.floor=function(){var e=this.toString().split(".");e.length===1&&e.push("0");var r=t.from(e[0],this.format),i=!e[1].match(/^(0*)$/);return this.isNegative()&&i&&(r=r.subUnsafe(aX.toFormat(r.format))),r},t.prototype.ceiling=function(){var e=this.toString().split(".");e.length===1&&e.push("0");var r=t.from(e[0],this.format),i=!e[1].match(/^(0*)$/);return!this.isNegative()&&i&&(r=r.addUnsafe(aX.toFormat(r.format))),r},t.prototype.round=function(e){e==null&&(e=0);var r=this.toString().split(".");if(r.length===1&&r.push("0"),(e<0||e>80||e%1)&&Os.throwArgumentError("invalid decimal count","decimals",e),r[1].length<=e)return this;var i=t.from("1"+S4.substring(0,e),this.format),n=jTe.toFormat(this.format);return this.mulUnsafe(i).addUnsafe(n).floor().divUnsafe(i)},t.prototype.isZero=function(){return this._value==="0.0"||this._value==="0"},t.prototype.isNegative=function(){return this._value[0]==="-"},t.prototype.toString=function(){return this._value},t.prototype.toHexString=function(e){if(e==null)return this._hex;e%8&&Os.throwArgumentError("invalid byte width","width",e);var r=ef.BigNumber.from(this._hex).fromTwos(this.format.width).toTwos(e).toHexString();return(0,a5.hexZeroPad)(r,e/8)},t.prototype.toUnsafeFloat=function(){return parseFloat(this.toString())},t.prototype.toFormat=function(e){return t.fromString(this._value,e)},t.fromValue=function(e,r,i){return i==null&&r!=null&&!(0,ef.isBigNumberish)(r)&&(i=r,r=null),r==null&&(r=0),i==null&&(i="fixed"),t.fromString(s5(e,r),o5.from(i))},t.fromString=function(e,r){r==null&&(r="fixed");var i=o5.from(r),n=fd(e,i.decimals);!i.signed&&n.lt(sX)&&uX("unsigned value cannot be negative","overflow","value",e);var a=null;i.signed?a=n.toTwos(i.width).toHexString():(a=n.toHexString(),a=(0,a5.hexZeroPad)(a,i.width/8));var s=s5(n,i.decimals);return new t(x4,a,s,i)},t.fromBytes=function(e,r){r==null&&(r="fixed");var i=o5.from(r);if((0,a5.arrayify)(e).length>i.width/8)throw new Error("overflow");var n=ef.BigNumber.from(e);i.signed&&(n=n.fromTwos(i.width));var a=n.toTwos((i.signed?0:1)+i.width).toHexString(),s=s5(n,i.decimals);return new t(x4,a,s,i)},t.from=function(e,r){if(typeof e=="string")return t.fromString(e,r);if((0,a5.isBytes)(e))return t.fromBytes(e,r);try{return t.fromValue(e,0,r)}catch(i){if(i.code!==E4.Logger.errors.INVALID_ARGUMENT)throw i}return Os.throwArgumentError("invalid FixedNumber value","value",e)},t.isFixedNumber=function(e){return!!(e&&e._isFixedNumber)},t}();pd.FixedNumber=FO;var aX=FO.from(1),jTe=FO.from("0.5")});var Rn=x(Qa=>{"use strict";Object.defineProperty(Qa,"__esModule",{value:!0});Qa._base36To16=Qa._base16To36=Qa.parseFixed=Qa.FixedNumber=Qa.FixedFormat=Qa.formatFixed=Qa.BigNumber=void 0;var VTe=n5();Object.defineProperty(Qa,"BigNumber",{enumerable:!0,get:function(){return VTe.BigNumber}});var u5=cX();Object.defineProperty(Qa,"formatFixed",{enumerable:!0,get:function(){return u5.formatFixed}});Object.defineProperty(Qa,"FixedFormat",{enumerable:!0,get:function(){return u5.FixedFormat}});Object.defineProperty(Qa,"FixedNumber",{enumerable:!0,get:function(){return u5.FixedNumber}});Object.defineProperty(Qa,"parseFixed",{enumerable:!0,get:function(){return u5.parseFixed}});var dX=n5();Object.defineProperty(Qa,"_base16To36",{enumerable:!0,get:function(){return dX._base16To36}});Object.defineProperty(Qa,"_base36To16",{enumerable:!0,get:function(){return dX._base36To16}})});var lX=x(c5=>{"use strict";Object.defineProperty(c5,"__esModule",{value:!0});c5.version=void 0;c5.version="properties/5.7.0"});var Xr=x(Mn=>{"use strict";var HTe=Mn&&Mn.__awaiter||function(t,e,r,i){function n(a){return a instanceof r?a:new r(function(s){s(a)})}return new(r||(r=Promise))(function(a,s){function o(f){try{u(i.next(f))}catch(d){s(d)}}function c(f){try{u(i.throw(f))}catch(d){s(d)}}function u(f){f.done?a(f.value):n(f.value).then(o,c)}u((i=i.apply(t,e||[])).next())})},zTe=Mn&&Mn.__generator||function(t,e){var r={label:0,sent:function(){if(a[0]&1)throw a[1];return a[1]},trys:[],ops:[]},i,n,a,s;return s={next:o(0),throw:o(1),return:o(2)},typeof Symbol=="function"&&(s[Symbol.iterator]=function(){return this}),s;function o(u){return function(f){return c([u,f])}}function c(u){if(i)throw new TypeError("Generator is already executing.");for(;r;)try{if(i=1,n&&(a=u[0]&2?n.return:u[0]?n.throw||((a=n.return)&&a.call(n),0):n.next)&&!(a=a.call(n,u[1])).done)return a;switch(n=0,a&&(u=[u[0]&2,a.value]),u[0]){case 0:case 1:a=u;break;case 4:return r.label++,{value:u[1],done:!1};case 5:r.label++,n=u[1],u=[0];continue;case 7:u=r.ops.pop(),r.trys.pop();continue;default:if(a=r.trys,!(a=a.length>0&&a[a.length-1])&&(u[0]===6||u[0]===2)){r=0;continue}if(u[0]===3&&(!a||u[1]>a[0]&&u[1]{"use strict";Object.defineProperty(f5,"__esModule",{value:!0});f5.version=void 0;f5.version="abi/5.7.0"});var b5=x(Jt=>{"use strict";var g5=Jt&&Jt.__extends||function(){var t=function(e,r){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var a in n)Object.prototype.hasOwnProperty.call(n,a)&&(i[a]=n[a])},t(e,r)};return function(e,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");t(e,r);function i(){this.constructor=e}e.prototype=r===null?Object.create(r):(i.prototype=r.prototype,new i)}}();Object.defineProperty(Jt,"__esModule",{value:!0});Jt.ErrorFragment=Jt.FunctionFragment=Jt.ConstructorFragment=Jt.EventFragment=Jt.Fragment=Jt.ParamType=Jt.FormatTypes=void 0;var UO=Rn(),eAe=Xr(),y5=Ht(),tAe=W2(),Ir=new y5.Logger(tAe.version),q1={},hX={calldata:!0,memory:!0,storage:!0},rAe={calldata:!0,memory:!0};function p5(t,e){if(t==="bytes"||t==="string"){if(hX[e])return!0}else if(t==="address"){if(e==="payable")return!0}else if((t.indexOf("[")>=0||t==="tuple")&&rAe[e])return!0;return(hX[e]||e==="payable")&&Ir.throwArgumentError("invalid modifier","name",e),!1}function iAe(t,e){var r=t;function i(d){Ir.throwArgumentError("unexpected character at position "+d,"param",t)}t=t.replace(/\s/g," ");function n(d){var p={type:"",name:"",parent:d,state:{allowType:!0}};return e&&(p.indexed=!1),p}for(var a={type:"",name:"",state:{allowType:!0}},s=a,o=0;o2&&Ir.throwArgumentError("invalid human-readable ABI signature","value",t),r[1].match(/^[0-9]+$/)||Ir.throwArgumentError("invalid human-readable ABI signature gas","value",t),e.gas=UO.BigNumber.from(r[1]),r[0]):t}function yX(t,e){e.constant=!1,e.payable=!1,e.stateMutability="nonpayable",t.split(" ").forEach(function(r){switch(r.trim()){case"constant":e.constant=!0;break;case"payable":e.payable=!0,e.stateMutability="payable";break;case"nonpayable":e.payable=!1,e.stateMutability="nonpayable";break;case"pure":e.constant=!0,e.stateMutability="pure";break;case"view":e.constant=!0,e.stateMutability="view";break;case"external":case"public":case"":break;default:console.log("unknown modifier: "+r)}})}function vX(t){var e={constant:!1,payable:!0,stateMutability:"payable"};return t.stateMutability!=null?(e.stateMutability=t.stateMutability,e.constant=e.stateMutability==="view"||e.stateMutability==="pure",t.constant!=null&&!!t.constant!==e.constant&&Ir.throwArgumentError("cannot have constant function with mutability "+e.stateMutability,"value",t),e.payable=e.stateMutability==="payable",t.payable!=null&&!!t.payable!==e.payable&&Ir.throwArgumentError("cannot have payable function with mutability "+e.stateMutability,"value",t)):t.payable!=null?(e.payable=!!t.payable,t.constant==null&&!e.payable&&t.type!=="constructor"&&Ir.throwArgumentError("unable to determine stateMutability","value",t),e.constant=!!t.constant,e.constant?e.stateMutability="view":e.stateMutability=e.payable?"payable":"nonpayable",e.payable&&e.constant&&Ir.throwArgumentError("cannot have constant payable function","value",t)):t.constant!=null?(e.constant=!!t.constant,e.payable=!e.constant,e.stateMutability=e.constant?"view":"payable"):t.type!=="constructor"&&Ir.throwArgumentError("unable to determine stateMutability","value",t),e}var m5=function(t){g5(e,t);function e(){return t!==null&&t.apply(this,arguments)||this}return e.prototype.format=function(r){if(r||(r=Jt.FormatTypes.sighash),Jt.FormatTypes[r]||Ir.throwArgumentError("invalid format type","format",r),r===Jt.FormatTypes.json)return JSON.stringify({type:"constructor",stateMutability:this.stateMutability!=="nonpayable"?this.stateMutability:void 0,payable:this.payable,gas:this.gas?this.gas.toNumber():void 0,inputs:this.inputs.map(function(n){return JSON.parse(n.format(r))})});r===Jt.FormatTypes.sighash&&Ir.throwError("cannot format a constructor for sighash",y5.Logger.errors.UNSUPPORTED_OPERATION,{operation:"format(sighash)"});var i="constructor("+this.inputs.map(function(n){return n.format(r)}).join(r===Jt.FormatTypes.full?", ":",")+") ";return this.stateMutability&&this.stateMutability!=="nonpayable"&&(i+=this.stateMutability+" "),i.trim()},e.from=function(r){return typeof r=="string"?e.fromString(r):e.fromObject(r)},e.fromObject=function(r){if(e.isConstructorFragment(r))return r;r.type!=="constructor"&&Ir.throwArgumentError("invalid constructor object","value",r);var i=vX(r);i.constant&&Ir.throwArgumentError("constructor cannot be constant","value",r);var n={name:null,type:r.type,inputs:r.inputs?r.inputs.map(L1.fromObject):[],payable:i.payable,stateMutability:i.stateMutability,gas:r.gas?UO.BigNumber.from(r.gas):null};return new e(q1,n)},e.fromString=function(r){var i={type:"constructor"};r=gX(r,i);var n=r.match(P4);return(!n||n[1].trim()!=="constructor")&&Ir.throwArgumentError("invalid constructor string","value",r),i.inputs=T4(n[2].trim(),!1),yX(n[3].trim(),i),e.fromObject(i)},e.isConstructorFragment=function(r){return r&&r._isFragment&&r.type==="constructor"},e}(v5);Jt.ConstructorFragment=m5;var qO=function(t){g5(e,t);function e(){return t!==null&&t.apply(this,arguments)||this}return e.prototype.format=function(r){if(r||(r=Jt.FormatTypes.sighash),Jt.FormatTypes[r]||Ir.throwArgumentError("invalid format type","format",r),r===Jt.FormatTypes.json)return JSON.stringify({type:"function",name:this.name,constant:this.constant,stateMutability:this.stateMutability!=="nonpayable"?this.stateMutability:void 0,payable:this.payable,gas:this.gas?this.gas.toNumber():void 0,inputs:this.inputs.map(function(n){return JSON.parse(n.format(r))}),outputs:this.outputs.map(function(n){return JSON.parse(n.format(r))})});var i="";return r!==Jt.FormatTypes.sighash&&(i+="function "),i+=this.name+"("+this.inputs.map(function(n){return n.format(r)}).join(r===Jt.FormatTypes.full?", ":",")+") ",r!==Jt.FormatTypes.sighash&&(this.stateMutability?this.stateMutability!=="nonpayable"&&(i+=this.stateMutability+" "):this.constant&&(i+="view "),this.outputs&&this.outputs.length&&(i+="returns ("+this.outputs.map(function(n){return n.format(r)}).join(", ")+") "),this.gas!=null&&(i+="@"+this.gas.toString()+" ")),i.trim()},e.from=function(r){return typeof r=="string"?e.fromString(r):e.fromObject(r)},e.fromObject=function(r){if(e.isFunctionFragment(r))return r;r.type!=="function"&&Ir.throwArgumentError("invalid function object","value",r);var i=vX(r),n={type:r.type,name:A4(r.name),constant:i.constant,inputs:r.inputs?r.inputs.map(L1.fromObject):[],outputs:r.outputs?r.outputs.map(L1.fromObject):[],payable:i.payable,stateMutability:i.stateMutability,gas:r.gas?UO.BigNumber.from(r.gas):null};return new e(q1,n)},e.fromString=function(r){var i={type:"function"};r=gX(r,i);var n=r.split(" returns ");n.length>2&&Ir.throwArgumentError("invalid function string","value",r);var a=n[0].match(P4);if(a||Ir.throwArgumentError("invalid function signature","value",r),i.name=a[1].trim(),i.name&&A4(i.name),i.inputs=T4(a[2],!1),yX(a[3].trim(),i),n.length>1){var s=n[1].match(P4);(s[1].trim()!=""||s[3].trim()!="")&&Ir.throwArgumentError("unexpected tokens","value",r),i.outputs=T4(s[2],!1)}else i.outputs=[];return e.fromObject(i)},e.isFunctionFragment=function(r){return r&&r._isFragment&&r.type==="function"},e}(m5);Jt.FunctionFragment=qO;function mX(t){var e=t.format();return(e==="Error(string)"||e==="Panic(uint256)")&&Ir.throwArgumentError("cannot specify user defined "+e+" error","fragment",t),t}var LO=function(t){g5(e,t);function e(){return t!==null&&t.apply(this,arguments)||this}return e.prototype.format=function(r){if(r||(r=Jt.FormatTypes.sighash),Jt.FormatTypes[r]||Ir.throwArgumentError("invalid format type","format",r),r===Jt.FormatTypes.json)return JSON.stringify({type:"error",name:this.name,inputs:this.inputs.map(function(n){return JSON.parse(n.format(r))})});var i="";return r!==Jt.FormatTypes.sighash&&(i+="error "),i+=this.name+"("+this.inputs.map(function(n){return n.format(r)}).join(r===Jt.FormatTypes.full?", ":",")+") ",i.trim()},e.from=function(r){return typeof r=="string"?e.fromString(r):e.fromObject(r)},e.fromObject=function(r){if(e.isErrorFragment(r))return r;r.type!=="error"&&Ir.throwArgumentError("invalid error object","value",r);var i={type:r.type,name:A4(r.name),inputs:r.inputs?r.inputs.map(L1.fromObject):[]};return mX(new e(q1,i))},e.fromString=function(r){var i={type:"error"},n=r.match(P4);return n||Ir.throwArgumentError("invalid error signature","value",r),i.name=n[1].trim(),i.name&&A4(i.name),i.inputs=T4(n[2],!1),mX(e.fromObject(i))},e.isErrorFragment=function(r){return r&&r._isFragment&&r.type==="error"},e}(v5);Jt.ErrorFragment=LO;function Z2(t){return t.match(/^uint($|[^1-9])/)?t="uint256"+t.substring(4):t.match(/^int($|[^1-9])/)&&(t="int256"+t.substring(3)),t}var aAe=new RegExp("^[a-zA-Z$_][a-zA-Z0-9$_]*$");function A4(t){return(!t||!t.match(aAe))&&Ir.throwArgumentError('invalid identifier "'+t+'"',"value",t),t}var P4=new RegExp("^([^)(]*)\\((.*)\\)([^)(]*)$");function sAe(t){t=t.trim();for(var e=[],r="",i=0,n=0;n{"use strict";Object.defineProperty(hd,"__esModule",{value:!0});hd.Reader=hd.Writer=hd.Coder=hd.checkResultErrors=void 0;var u0=or(),bX=Rn(),O4=Xr(),jO=Ht(),oAe=W2(),VO=new jO.Logger(oAe.version);function uAe(t){var e=[],r=function(i,n){if(!!Array.isArray(n))for(var a in n){var s=i.slice();s.push(a);try{r(s,n[a])}catch(o){e.push({path:s,error:o})}}};return r([],t),e}hd.checkResultErrors=uAe;var cAe=function(){function t(e,r,i,n){this.name=e,this.type=r,this.localName=i,this.dynamic=n}return t.prototype._throwError=function(e,r){VO.throwArgumentError(e,this.localName,r)},t}();hd.Coder=cAe;var dAe=function(){function t(e){(0,O4.defineReadOnly)(this,"wordSize",e||32),this._data=[],this._dataLength=0,this._padding=new Uint8Array(e)}return Object.defineProperty(t.prototype,"data",{get:function(){return(0,u0.hexConcat)(this._data)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"length",{get:function(){return this._dataLength},enumerable:!1,configurable:!0}),t.prototype._writeData=function(e){return this._data.push(e),this._dataLength+=e.length,e.length},t.prototype.appendWriter=function(e){return this._writeData((0,u0.concat)(e._data))},t.prototype.writeBytes=function(e){var r=(0,u0.arrayify)(e),i=r.length%this.wordSize;return i&&(r=(0,u0.concat)([r,this._padding.slice(i)])),this._writeData(r)},t.prototype._getValue=function(e){var r=(0,u0.arrayify)(bX.BigNumber.from(e));return r.length>this.wordSize&&VO.throwError("value out-of-bounds",jO.Logger.errors.BUFFER_OVERRUN,{length:this.wordSize,offset:r.length}),r.length%this.wordSize&&(r=(0,u0.concat)([this._padding.slice(r.length%this.wordSize),r])),r},t.prototype.writeValue=function(e){return this._writeData(this._getValue(e))},t.prototype.writeUpdatableValue=function(){var e=this,r=this._data.length;return this._data.push(this._padding),this._dataLength+=this.wordSize,function(i){e._data[r]=e._getValue(i)}},t}();hd.Writer=dAe;var lAe=function(){function t(e,r,i,n){(0,O4.defineReadOnly)(this,"_data",(0,u0.arrayify)(e)),(0,O4.defineReadOnly)(this,"wordSize",r||32),(0,O4.defineReadOnly)(this,"_coerceFunc",i),(0,O4.defineReadOnly)(this,"allowLoose",n),this._offset=0}return Object.defineProperty(t.prototype,"data",{get:function(){return(0,u0.hexlify)(this._data)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"consumed",{get:function(){return this._offset},enumerable:!1,configurable:!0}),t.coerce=function(e,r){var i=e.match("^u?int([0-9]+)$");return i&&parseInt(i[1])<=48&&(r=r.toNumber()),r},t.prototype.coerce=function(e,r){return this._coerceFunc?this._coerceFunc(e,r):t.coerce(e,r)},t.prototype._peekBytes=function(e,r,i){var n=Math.ceil(r/this.wordSize)*this.wordSize;return this._offset+n>this._data.length&&(this.allowLoose&&i&&this._offset+r<=this._data.length?n=r:VO.throwError("data out-of-bounds",jO.Logger.errors.BUFFER_OVERRUN,{length:this._data.length,offset:this._offset+n})),this._data.slice(this._offset,this._offset+n)},t.prototype.subReader=function(e){return new t(this._data.slice(this._offset+e),this.wordSize,this._coerceFunc,this.allowLoose)},t.prototype.readBytes=function(e,r){var i=this._peekBytes(0,e,!!r);return this._offset+=i.length,i.slice(0,e)},t.prototype.readValue=function(){return bX.BigNumber.from(this.readBytes(this.wordSize))},t}();hd.Reader=lAe});var _X=x((GTt,_5)=>{(function(){"use strict";var t="input is invalid type",e="finalize already called",r=typeof window=="object",i=r?window:{};i.JS_SHA3_NO_WINDOW&&(r=!1);var n=!r&&typeof self=="object",a=!i.JS_SHA3_NO_NODE_JS&&typeof process=="object"&&process.versions&&process.versions.node;a?i=global:n&&(i=self);var s=!i.JS_SHA3_NO_COMMON_JS&&typeof _5=="object"&&_5.exports,o=typeof define=="function"&&define.amd,c=!i.JS_SHA3_NO_ARRAY_BUFFER&&typeof ArrayBuffer<"u",u="0123456789abcdef".split(""),f=[31,7936,2031616,520093696],d=[4,1024,262144,67108864],p=[1,256,65536,16777216],b=[6,1536,393216,100663296],T=[0,8,16,24],I=[1,0,32898,0,32906,2147483648,2147516416,2147483648,32907,0,2147483649,0,2147516545,2147483648,32777,2147483648,138,0,136,0,2147516425,0,2147483658,0,2147516555,0,139,2147483648,32905,2147483648,32771,2147483648,32770,2147483648,128,2147483648,32778,0,2147483658,2147483648,2147516545,2147483648,32896,2147483648,2147483649,0,2147516424,2147483648],L=[224,256,384,512],U=[128,256],re=["hex","buffer","arrayBuffer","array","digest"],oe={128:168,256:136};(i.JS_SHA3_NO_NODE_JS||!Array.isArray)&&(Array.isArray=function(q){return Object.prototype.toString.call(q)==="[object Array]"}),c&&(i.JS_SHA3_NO_ARRAY_BUFFER_IS_VIEW||!ArrayBuffer.isView)&&(ArrayBuffer.isView=function(q){return typeof q=="object"&&q.buffer&&q.buffer.constructor===ArrayBuffer});for(var ge=function(q,fe,Te){return function(_e){return new O(q,fe,q).update(_e)[Te]()}},be=function(q,fe,Te){return function(_e,H){return new O(q,fe,H).update(_e)[Te]()}},ce=function(q,fe,Te){return function(_e,H,Y,Q){return y["cshake"+q].update(_e,H,Y,Q)[Te]()}},me=function(q,fe,Te){return function(_e,H,Y,Q){return y["kmac"+q].update(_e,H,Y,Q)[Te]()}},ne=function(q,fe,Te,_e){for(var H=0;H>5,this.byteCount=this.blockCount<<2,this.outputBlocks=Te>>5,this.extraBytes=(Te&31)>>3;for(var _e=0;_e<50;++_e)this.s[_e]=0}O.prototype.update=function(q){if(this.finalized)throw new Error(e);var fe,Te=typeof q;if(Te!=="string"){if(Te==="object"){if(q===null)throw new Error(t);if(c&&q.constructor===ArrayBuffer)q=new Uint8Array(q);else if(!Array.isArray(q)&&(!c||!ArrayBuffer.isView(q)))throw new Error(t)}else throw new Error(t);fe=!0}for(var _e=this.blocks,H=this.byteCount,Y=q.length,Q=this.blockCount,se=0,Se=this.s,ue,he;se>2]|=q[se]<>2]|=he<>2]|=(192|he>>6)<>2]|=(128|he&63)<=57344?(_e[ue>>2]|=(224|he>>12)<>2]|=(128|he>>6&63)<>2]|=(128|he&63)<>2]|=(240|he>>18)<>2]|=(128|he>>12&63)<>2]|=(128|he>>6&63)<>2]|=(128|he&63)<=H){for(this.start=ue-H,this.block=_e[Q],ue=0;ue>8,Te=q&255;Te>0;)H.unshift(Te),q=q>>8,Te=q&255,++_e;return fe?H.push(_e):H.unshift(_e),this.update(H),H.length},O.prototype.encodeString=function(q){var fe,Te=typeof q;if(Te!=="string"){if(Te==="object"){if(q===null)throw new Error(t);if(c&&q.constructor===ArrayBuffer)q=new Uint8Array(q);else if(!Array.isArray(q)&&(!c||!ArrayBuffer.isView(q)))throw new Error(t)}else throw new Error(t);fe=!0}var _e=0,H=q.length;if(fe)_e=H;else for(var Y=0;Y=57344?_e+=3:(Q=65536+((Q&1023)<<10|q.charCodeAt(++Y)&1023),_e+=4)}return _e+=this.encode(_e*8),this.update(q),_e},O.prototype.bytepad=function(q,fe){for(var Te=this.encode(fe),_e=0;_e>2]|=this.padding[fe&3],this.lastByteIndex===this.byteCount)for(q[0]=q[Te],fe=1;fe>4&15]+u[se&15]+u[se>>12&15]+u[se>>8&15]+u[se>>20&15]+u[se>>16&15]+u[se>>28&15]+u[se>>24&15];Y%q===0&&(xe(fe),H=0)}return _e&&(se=fe[H],Q+=u[se>>4&15]+u[se&15],_e>1&&(Q+=u[se>>12&15]+u[se>>8&15]),_e>2&&(Q+=u[se>>20&15]+u[se>>16&15])),Q},O.prototype.arrayBuffer=function(){this.finalize();var q=this.blockCount,fe=this.s,Te=this.outputBlocks,_e=this.extraBytes,H=0,Y=0,Q=this.outputBits>>3,se;_e?se=new ArrayBuffer(Te+1<<2):se=new ArrayBuffer(Q);for(var Se=new Uint32Array(se);Y>8&255,Q[se+2]=Se>>16&255,Q[se+3]=Se>>24&255;Y%q===0&&xe(fe)}return _e&&(se=Y<<2,Se=fe[H],Q[se]=Se&255,_e>1&&(Q[se+1]=Se>>8&255),_e>2&&(Q[se+2]=Se>>16&255)),Q};function N(q,fe,Te){O.call(this,q,fe,Te)}N.prototype=new O,N.prototype.finalize=function(){return this.encode(this.outputBits,!0),O.prototype.finalize.call(this)};var xe=function(q){var fe,Te,_e,H,Y,Q,se,Se,ue,he,Oe,ye,we,Ne,Ae,je,j,W,C,D,G,X,le,ie,de,Be,Pe,De,et,Le,Ve,Mr,rt,at,Ki,ft,pt,Aa,ht,dt,Pa,mt,gt,jn,yt,ct,Oa,vt,bt,Ra,_t,wt,Ma,xt,lt,k,V,z,J,Z,$,pe,Ee;for(_e=0;_e<48;_e+=2)H=q[0]^q[10]^q[20]^q[30]^q[40],Y=q[1]^q[11]^q[21]^q[31]^q[41],Q=q[2]^q[12]^q[22]^q[32]^q[42],se=q[3]^q[13]^q[23]^q[33]^q[43],Se=q[4]^q[14]^q[24]^q[34]^q[44],ue=q[5]^q[15]^q[25]^q[35]^q[45],he=q[6]^q[16]^q[26]^q[36]^q[46],Oe=q[7]^q[17]^q[27]^q[37]^q[47],ye=q[8]^q[18]^q[28]^q[38]^q[48],we=q[9]^q[19]^q[29]^q[39]^q[49],fe=ye^(Q<<1|se>>>31),Te=we^(se<<1|Q>>>31),q[0]^=fe,q[1]^=Te,q[10]^=fe,q[11]^=Te,q[20]^=fe,q[21]^=Te,q[30]^=fe,q[31]^=Te,q[40]^=fe,q[41]^=Te,fe=H^(Se<<1|ue>>>31),Te=Y^(ue<<1|Se>>>31),q[2]^=fe,q[3]^=Te,q[12]^=fe,q[13]^=Te,q[22]^=fe,q[23]^=Te,q[32]^=fe,q[33]^=Te,q[42]^=fe,q[43]^=Te,fe=Q^(he<<1|Oe>>>31),Te=se^(Oe<<1|he>>>31),q[4]^=fe,q[5]^=Te,q[14]^=fe,q[15]^=Te,q[24]^=fe,q[25]^=Te,q[34]^=fe,q[35]^=Te,q[44]^=fe,q[45]^=Te,fe=Se^(ye<<1|we>>>31),Te=ue^(we<<1|ye>>>31),q[6]^=fe,q[7]^=Te,q[16]^=fe,q[17]^=Te,q[26]^=fe,q[27]^=Te,q[36]^=fe,q[37]^=Te,q[46]^=fe,q[47]^=Te,fe=he^(H<<1|Y>>>31),Te=Oe^(Y<<1|H>>>31),q[8]^=fe,q[9]^=Te,q[18]^=fe,q[19]^=Te,q[28]^=fe,q[29]^=Te,q[38]^=fe,q[39]^=Te,q[48]^=fe,q[49]^=Te,Ne=q[0],Ae=q[1],ct=q[11]<<4|q[10]>>>28,Oa=q[10]<<4|q[11]>>>28,De=q[20]<<3|q[21]>>>29,et=q[21]<<3|q[20]>>>29,Z=q[31]<<9|q[30]>>>23,$=q[30]<<9|q[31]>>>23,mt=q[40]<<18|q[41]>>>14,gt=q[41]<<18|q[40]>>>14,at=q[2]<<1|q[3]>>>31,Ki=q[3]<<1|q[2]>>>31,je=q[13]<<12|q[12]>>>20,j=q[12]<<12|q[13]>>>20,vt=q[22]<<10|q[23]>>>22,bt=q[23]<<10|q[22]>>>22,Le=q[33]<<13|q[32]>>>19,Ve=q[32]<<13|q[33]>>>19,pe=q[42]<<2|q[43]>>>30,Ee=q[43]<<2|q[42]>>>30,xt=q[5]<<30|q[4]>>>2,lt=q[4]<<30|q[5]>>>2,ft=q[14]<<6|q[15]>>>26,pt=q[15]<<6|q[14]>>>26,W=q[25]<<11|q[24]>>>21,C=q[24]<<11|q[25]>>>21,Ra=q[34]<<15|q[35]>>>17,_t=q[35]<<15|q[34]>>>17,Mr=q[45]<<29|q[44]>>>3,rt=q[44]<<29|q[45]>>>3,ie=q[6]<<28|q[7]>>>4,de=q[7]<<28|q[6]>>>4,k=q[17]<<23|q[16]>>>9,V=q[16]<<23|q[17]>>>9,Aa=q[26]<<25|q[27]>>>7,ht=q[27]<<25|q[26]>>>7,D=q[36]<<21|q[37]>>>11,G=q[37]<<21|q[36]>>>11,wt=q[47]<<24|q[46]>>>8,Ma=q[46]<<24|q[47]>>>8,jn=q[8]<<27|q[9]>>>5,yt=q[9]<<27|q[8]>>>5,Be=q[18]<<20|q[19]>>>12,Pe=q[19]<<20|q[18]>>>12,z=q[29]<<7|q[28]>>>25,J=q[28]<<7|q[29]>>>25,dt=q[38]<<8|q[39]>>>24,Pa=q[39]<<8|q[38]>>>24,X=q[48]<<14|q[49]>>>18,le=q[49]<<14|q[48]>>>18,q[0]=Ne^~je&W,q[1]=Ae^~j&C,q[10]=ie^~Be&De,q[11]=de^~Pe&et,q[20]=at^~ft&Aa,q[21]=Ki^~pt&ht,q[30]=jn^~ct&vt,q[31]=yt^~Oa&bt,q[40]=xt^~k&z,q[41]=lt^~V&J,q[2]=je^~W&D,q[3]=j^~C&G,q[12]=Be^~De&Le,q[13]=Pe^~et&Ve,q[22]=ft^~Aa&dt,q[23]=pt^~ht&Pa,q[32]=ct^~vt&Ra,q[33]=Oa^~bt&_t,q[42]=k^~z&Z,q[43]=V^~J&$,q[4]=W^~D&X,q[5]=C^~G&le,q[14]=De^~Le&Mr,q[15]=et^~Ve&rt,q[24]=Aa^~dt&mt,q[25]=ht^~Pa>,q[34]=vt^~Ra&wt,q[35]=bt^~_t&Ma,q[44]=z^~Z&pe,q[45]=J^~$&Ee,q[6]=D^~X&Ne,q[7]=G^~le&Ae,q[16]=Le^~Mr&ie,q[17]=Ve^~rt&de,q[26]=dt^~mt&at,q[27]=Pa^~gt&Ki,q[36]=Ra^~wt&jn,q[37]=_t^~Ma&yt,q[46]=Z^~pe&xt,q[47]=$^~Ee<,q[8]=X^~Ne&je,q[9]=le^~Ae&j,q[18]=Mr^~ie&Be,q[19]=rt^~de&Pe,q[28]=mt^~at&ft,q[29]=gt^~Ki&pt,q[38]=wt^~jn&ct,q[39]=Ma^~yt&Oa,q[48]=pe^~xt&k,q[49]=Ee^~lt&V,q[0]^=I[_e],q[1]^=I[_e+1]};if(s)_5.exports=y;else{for(P=0;P<_.length;++P)i[_[P]]=y[_[P]];o&&define(function(){return y})}})()});var Oo=x($2=>{"use strict";var fAe=$2&&$2.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty($2,"__esModule",{value:!0});$2.keccak256=void 0;var pAe=fAe(_X()),hAe=or();function mAe(t){return"0x"+pAe.default.keccak_256((0,hAe.arrayify)(t))}$2.keccak256=mAe});var wX=x(w5=>{"use strict";Object.defineProperty(w5,"__esModule",{value:!0});w5.version=void 0;w5.version="rlp/5.7.0"});var x5=x(Q2=>{"use strict";Object.defineProperty(Q2,"__esModule",{value:!0});Q2.decode=Q2.encode=void 0;var U1=or(),tf=Ht(),gAe=wX(),md=new tf.Logger(gAe.version);function xX(t){for(var e=[];t;)e.unshift(t&255),t>>=8;return e}function SX(t,e,r){for(var i=0,n=0;ne+1+i&&md.throwError("child data too short",tf.Logger.errors.BUFFER_OVERRUN,{})}return{consumed:1+i,result:n}}function AX(t,e){if(t.length===0&&md.throwError("data too short",tf.Logger.errors.BUFFER_OVERRUN,{}),t[e]>=248){var r=t[e]-247;e+1+r>t.length&&md.throwError("data short segment too short",tf.Logger.errors.BUFFER_OVERRUN,{});var i=SX(t,e+1,r);return e+1+r+i>t.length&&md.throwError("data long segment too short",tf.Logger.errors.BUFFER_OVERRUN,{}),EX(t,e,e+1+r,r+i)}else if(t[e]>=192){var n=t[e]-192;return e+1+n>t.length&&md.throwError("data array too short",tf.Logger.errors.BUFFER_OVERRUN,{}),EX(t,e,e+1,n)}else if(t[e]>=184){var r=t[e]-183;e+1+r>t.length&&md.throwError("data array too short",tf.Logger.errors.BUFFER_OVERRUN,{});var a=SX(t,e+1,r);e+1+r+a>t.length&&md.throwError("data array too short",tf.Logger.errors.BUFFER_OVERRUN,{});var s=(0,U1.hexlify)(t.slice(e+1+r,e+1+r+a));return{consumed:1+r+a,result:s}}else if(t[e]>=128){var o=t[e]-128;e+1+o>t.length&&md.throwError("data too short",tf.Logger.errors.BUFFER_OVERRUN,{});var s=(0,U1.hexlify)(t.slice(e+1,e+1+o));return{consumed:1+o,result:s}}return{consumed:1,result:(0,U1.hexlify)(t[e])}}function vAe(t){var e=(0,U1.arrayify)(t),r=AX(e,0);return r.consumed!==e.length&&md.throwArgumentError("invalid rlp data","data",t),r.result}Q2.decode=vAe});var PX=x(S5=>{"use strict";Object.defineProperty(S5,"__esModule",{value:!0});S5.version=void 0;S5.version="address/5.7.0"});var cu=x(uu=>{"use strict";Object.defineProperty(uu,"__esModule",{value:!0});uu.getCreate2Address=uu.getContractAddress=uu.getIcapAddress=uu.isAddress=uu.getAddress=void 0;var rf=or(),HO=Rn(),zO=Oo(),bAe=x5(),_Ae=Ht(),wAe=PX(),c0=new _Ae.Logger(wAe.version);function OX(t){(0,rf.isHexString)(t,20)||c0.throwArgumentError("invalid address","address",t),t=t.toLowerCase();for(var e=t.substring(2).split(""),r=new Uint8Array(40),i=0;i<40;i++)r[i]=e[i].charCodeAt(0);for(var n=(0,rf.arrayify)((0,zO.keccak256)(r)),i=0;i<40;i+=2)n[i>>1]>>4>=8&&(e[i]=e[i].toUpperCase()),(n[i>>1]&15)>=8&&(e[i+1]=e[i+1].toUpperCase());return"0x"+e.join("")}var xAe=9007199254740991;function SAe(t){return Math.log10?Math.log10(t):Math.log(t)/Math.LN10}var GO={};for(oc=0;oc<10;oc++)GO[String(oc)]=String(oc);var oc;for(oc=0;oc<26;oc++)GO[String.fromCharCode(65+oc)]=String(10+oc);var oc,RX=Math.floor(SAe(xAe));function MX(t){t=t.toUpperCase(),t=t.substring(4)+t.substring(0,2)+"00";for(var e=t.split("").map(function(n){return GO[n]}).join("");e.length>=RX;){var r=e.substring(0,RX);e=parseInt(r,10)%97+e.substring(r.length)}for(var i=String(98-parseInt(e,10)%97);i.length<2;)i="0"+i;return i}function j1(t){var e=null;if(typeof t!="string"&&c0.throwArgumentError("invalid address","address",t),t.match(/^(0x)?[0-9a-fA-F]{40}$/))t.substring(0,2)!=="0x"&&(t="0x"+t),e=OX(t),t.match(/([A-F].*[a-f])|([a-f].*[A-F])/)&&e!==t&&c0.throwArgumentError("bad address checksum","address",t);else if(t.match(/^XE[0-9]{2}[0-9A-Za-z]{30,31}$/)){for(t.substring(2,4)!==MX(t)&&c0.throwArgumentError("bad icap checksum","address",t),e=(0,HO._base36To16)(t.substring(4));e.length<40;)e="0"+e;e=OX("0x"+e)}else c0.throwArgumentError("invalid address","address",t);return e}uu.getAddress=j1;function EAe(t){try{return j1(t),!0}catch{}return!1}uu.isAddress=EAe;function TAe(t){for(var e=(0,HO._base16To36)(j1(t).substring(2)).toUpperCase();e.length<30;)e="0"+e;return"XE"+MX("XE00"+e)+e}uu.getIcapAddress=TAe;function AAe(t){var e=null;try{e=j1(t.from)}catch{c0.throwArgumentError("missing from address","transaction",t)}var r=(0,rf.stripZeros)((0,rf.arrayify)(HO.BigNumber.from(t.nonce).toHexString()));return j1((0,rf.hexDataSlice)((0,zO.keccak256)((0,bAe.encode)([e,r])),12))}uu.getContractAddress=AAe;function PAe(t,e,r){return(0,rf.hexDataLength)(e)!==32&&c0.throwArgumentError("salt must be 32 bytes","salt",e),(0,rf.hexDataLength)(r)!==32&&c0.throwArgumentError("initCodeHash must be 32 bytes","initCodeHash",r),j1((0,rf.hexDataSlice)((0,zO.keccak256)((0,rf.concat)(["0xff",j1(t),e,r])),12))}uu.getCreate2Address=PAe});var IX=x(Y2=>{"use strict";var OAe=Y2&&Y2.__extends||function(){var t=function(e,r){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var a in n)Object.prototype.hasOwnProperty.call(n,a)&&(i[a]=n[a])},t(e,r)};return function(e,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");t(e,r);function i(){this.constructor=e}e.prototype=r===null?Object.create(r):(i.prototype=r.prototype,new i)}}();Object.defineProperty(Y2,"__esModule",{value:!0});Y2.AddressCoder=void 0;var CX=cu(),RAe=or(),MAe=ou(),CAe=function(t){OAe(e,t);function e(r){return t.call(this,"address","address",r,!1)||this}return e.prototype.defaultValue=function(){return"0x0000000000000000000000000000000000000000"},e.prototype.encode=function(r,i){try{i=(0,CX.getAddress)(i)}catch(n){this._throwError(n.message,i)}return r.writeValue(i)},e.prototype.decode=function(r){return(0,CX.getAddress)((0,RAe.hexZeroPad)(r.readValue().toHexString(),20))},e}(MAe.Coder);Y2.AddressCoder=CAe});var NX=x(eg=>{"use strict";var IAe=eg&&eg.__extends||function(){var t=function(e,r){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var a in n)Object.prototype.hasOwnProperty.call(n,a)&&(i[a]=n[a])},t(e,r)};return function(e,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");t(e,r);function i(){this.constructor=e}e.prototype=r===null?Object.create(r):(i.prototype=r.prototype,new i)}}();Object.defineProperty(eg,"__esModule",{value:!0});eg.AnonymousCoder=void 0;var NAe=ou(),kAe=function(t){IAe(e,t);function e(r){var i=t.call(this,r.name,r.type,void 0,r.dynamic)||this;return i.coder=r,i}return e.prototype.defaultValue=function(){return this.coder.defaultValue()},e.prototype.encode=function(r,i){return this.coder.encode(r,i)},e.prototype.decode=function(r){return this.coder.decode(r)},e}(NAe.Coder);eg.AnonymousCoder=kAe});var XO=x(gd=>{"use strict";var BAe=gd&&gd.__extends||function(){var t=function(e,r){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var a in n)Object.prototype.hasOwnProperty.call(n,a)&&(i[a]=n[a])},t(e,r)};return function(e,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");t(e,r);function i(){this.constructor=e}e.prototype=r===null?Object.create(r):(i.prototype=r.prototype,new i)}}();Object.defineProperty(gd,"__esModule",{value:!0});gd.ArrayCoder=gd.unpack=gd.pack=void 0;var rg=Ht(),FAe=W2(),tg=new rg.Logger(FAe.version),JO=ou(),DAe=NX();function kX(t,e,r){var i=null;if(Array.isArray(r))i=r;else if(r&&typeof r=="object"){var n={};i=e.map(function(u){var f=u.localName;return f||tg.throwError("cannot encode object for signature with missing names",rg.Logger.errors.INVALID_ARGUMENT,{argument:"values",coder:u,value:r}),n[f]&&tg.throwError("cannot encode object for signature with duplicate names",rg.Logger.errors.INVALID_ARGUMENT,{argument:"values",coder:u,value:r}),n[f]=!0,r[f]})}else tg.throwArgumentError("invalid tuple value","tuple",r);e.length!==i.length&&tg.throwArgumentError("types/value length mismatch","tuple",r);var a=new JO.Writer(t.wordSize),s=new JO.Writer(t.wordSize),o=[];e.forEach(function(u,f){var d=i[f];if(u.dynamic){var p=s.length;u.encode(s,d);var b=a.writeUpdatableValue();o.push(function(T){b(T+p)})}else u.encode(a,d)}),o.forEach(function(u){u(a.length)});var c=t.appendWriter(a);return c+=t.appendWriter(s),c}gd.pack=kX;function BX(t,e){var r=[],i=t.subReader(0);e.forEach(function(o){var c=null;if(o.dynamic){var u=t.readValue(),f=i.subReader(u.toNumber());try{c=o.decode(f)}catch(d){if(d.code===rg.Logger.errors.BUFFER_OVERRUN)throw d;c=d,c.baseType=o.name,c.name=o.localName,c.type=o.type}}else try{c=o.decode(t)}catch(d){if(d.code===rg.Logger.errors.BUFFER_OVERRUN)throw d;c=d,c.baseType=o.name,c.name=o.localName,c.type=o.type}c!=null&&r.push(c)});var n=e.reduce(function(o,c){var u=c.localName;return u&&(o[u]||(o[u]=0),o[u]++),o},{});e.forEach(function(o,c){var u=o.localName;if(!(!u||n[u]!==1)&&(u==="length"&&(u="_length"),r[u]==null)){var f=r[c];f instanceof Error?Object.defineProperty(r,u,{enumerable:!0,get:function(){throw f}}):r[u]=f}});for(var a=function(o){var c=r[o];c instanceof Error&&Object.defineProperty(r,o,{enumerable:!0,get:function(){throw c}})},s=0;s=0?i:"")+"]",o=i===-1||r.dynamic;return a=t.call(this,"array",s,n,o)||this,a.coder=r,a.length=i,a}return e.prototype.defaultValue=function(){for(var r=this.coder.defaultValue(),i=[],n=0;nr._data.length&&tg.throwError("insufficient data length",rg.Logger.errors.BUFFER_OVERRUN,{length:r._data.length,count:i}));for(var n=[],a=0;a{"use strict";var LAe=ig&&ig.__extends||function(){var t=function(e,r){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var a in n)Object.prototype.hasOwnProperty.call(n,a)&&(i[a]=n[a])},t(e,r)};return function(e,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");t(e,r);function i(){this.constructor=e}e.prototype=r===null?Object.create(r):(i.prototype=r.prototype,new i)}}();Object.defineProperty(ig,"__esModule",{value:!0});ig.BooleanCoder=void 0;var UAe=ou(),jAe=function(t){LAe(e,t);function e(r){return t.call(this,"bool","bool",r,!1)||this}return e.prototype.defaultValue=function(){return!1},e.prototype.encode=function(r,i){return r.writeValue(i?1:0)},e.prototype.decode=function(r){return r.coerce(this.type,!r.readValue().isZero())},e}(UAe.Coder);ig.BooleanCoder=jAe});var KO=x(d0=>{"use strict";var DX=d0&&d0.__extends||function(){var t=function(e,r){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var a in n)Object.prototype.hasOwnProperty.call(n,a)&&(i[a]=n[a])},t(e,r)};return function(e,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");t(e,r);function i(){this.constructor=e}e.prototype=r===null?Object.create(r):(i.prototype=r.prototype,new i)}}();Object.defineProperty(d0,"__esModule",{value:!0});d0.BytesCoder=d0.DynamicBytesCoder=void 0;var qX=or(),VAe=ou(),LX=function(t){DX(e,t);function e(r,i){return t.call(this,r,r,i,!0)||this}return e.prototype.defaultValue=function(){return"0x"},e.prototype.encode=function(r,i){i=(0,qX.arrayify)(i);var n=r.writeValue(i.length);return n+=r.writeBytes(i),n},e.prototype.decode=function(r){return r.readBytes(r.readValue().toNumber(),!0)},e}(VAe.Coder);d0.DynamicBytesCoder=LX;var HAe=function(t){DX(e,t);function e(r){return t.call(this,"bytes",r)||this}return e.prototype.decode=function(r){return r.coerce(this.name,(0,qX.hexlify)(t.prototype.decode.call(this,r)))},e}(LX);d0.BytesCoder=HAe});var jX=x(ng=>{"use strict";var zAe=ng&&ng.__extends||function(){var t=function(e,r){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var a in n)Object.prototype.hasOwnProperty.call(n,a)&&(i[a]=n[a])},t(e,r)};return function(e,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");t(e,r);function i(){this.constructor=e}e.prototype=r===null?Object.create(r):(i.prototype=r.prototype,new i)}}();Object.defineProperty(ng,"__esModule",{value:!0});ng.FixedBytesCoder=void 0;var UX=or(),GAe=ou(),JAe=function(t){zAe(e,t);function e(r,i){var n=this,a="bytes"+String(r);return n=t.call(this,a,a,i,!1)||this,n.size=r,n}return e.prototype.defaultValue=function(){return"0x0000000000000000000000000000000000000000000000000000000000000000".substring(0,2+this.size*2)},e.prototype.encode=function(r,i){var n=(0,UX.arrayify)(i);return n.length!==this.size&&this._throwError("incorrect data length",i),r.writeBytes(n)},e.prototype.decode=function(r){return r.coerce(this.name,(0,UX.hexlify)(r.readBytes(this.size)))},e}(GAe.Coder);ng.FixedBytesCoder=JAe});var VX=x(ag=>{"use strict";var XAe=ag&&ag.__extends||function(){var t=function(e,r){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var a in n)Object.prototype.hasOwnProperty.call(n,a)&&(i[a]=n[a])},t(e,r)};return function(e,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");t(e,r);function i(){this.constructor=e}e.prototype=r===null?Object.create(r):(i.prototype=r.prototype,new i)}}();Object.defineProperty(ag,"__esModule",{value:!0});ag.NullCoder=void 0;var KAe=ou(),WAe=function(t){XAe(e,t);function e(r){return t.call(this,"null","",r,!1)||this}return e.prototype.defaultValue=function(){return null},e.prototype.encode=function(r,i){return i!=null&&this._throwError("not null",i),r.writeBytes([])},e.prototype.decode=function(r){return r.readBytes(0),r.coerce(this.name,null)},e}(KAe.Coder);ag.NullCoder=WAe});var HX=x(E5=>{"use strict";Object.defineProperty(E5,"__esModule",{value:!0});E5.AddressZero=void 0;E5.AddressZero="0x0000000000000000000000000000000000000000"});var zX=x(sa=>{"use strict";Object.defineProperty(sa,"__esModule",{value:!0});sa.MaxInt256=sa.MinInt256=sa.MaxUint256=sa.WeiPerEther=sa.Two=sa.One=sa.Zero=sa.NegativeOne=void 0;var l0=Rn(),ZAe=l0.BigNumber.from(-1);sa.NegativeOne=ZAe;var $Ae=l0.BigNumber.from(0);sa.Zero=$Ae;var QAe=l0.BigNumber.from(1);sa.One=QAe;var YAe=l0.BigNumber.from(2);sa.Two=YAe;var ePe=l0.BigNumber.from("1000000000000000000");sa.WeiPerEther=ePe;var tPe=l0.BigNumber.from("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");sa.MaxUint256=tPe;var rPe=l0.BigNumber.from("-0x8000000000000000000000000000000000000000000000000000000000000000");sa.MinInt256=rPe;var iPe=l0.BigNumber.from("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");sa.MaxInt256=iPe});var GX=x(T5=>{"use strict";Object.defineProperty(T5,"__esModule",{value:!0});T5.HashZero=void 0;T5.HashZero="0x0000000000000000000000000000000000000000000000000000000000000000"});var JX=x(A5=>{"use strict";Object.defineProperty(A5,"__esModule",{value:!0});A5.EtherSymbol=void 0;A5.EtherSymbol="\u039E"});var V1=x(Di=>{"use strict";Object.defineProperty(Di,"__esModule",{value:!0});Di.EtherSymbol=Di.HashZero=Di.MaxInt256=Di.MinInt256=Di.MaxUint256=Di.WeiPerEther=Di.Two=Di.One=Di.Zero=Di.NegativeOne=Di.AddressZero=void 0;var nPe=HX();Object.defineProperty(Di,"AddressZero",{enumerable:!0,get:function(){return nPe.AddressZero}});var f0=zX();Object.defineProperty(Di,"NegativeOne",{enumerable:!0,get:function(){return f0.NegativeOne}});Object.defineProperty(Di,"Zero",{enumerable:!0,get:function(){return f0.Zero}});Object.defineProperty(Di,"One",{enumerable:!0,get:function(){return f0.One}});Object.defineProperty(Di,"Two",{enumerable:!0,get:function(){return f0.Two}});Object.defineProperty(Di,"WeiPerEther",{enumerable:!0,get:function(){return f0.WeiPerEther}});Object.defineProperty(Di,"MaxUint256",{enumerable:!0,get:function(){return f0.MaxUint256}});Object.defineProperty(Di,"MinInt256",{enumerable:!0,get:function(){return f0.MinInt256}});Object.defineProperty(Di,"MaxInt256",{enumerable:!0,get:function(){return f0.MaxInt256}});var aPe=GX();Object.defineProperty(Di,"HashZero",{enumerable:!0,get:function(){return aPe.HashZero}});var sPe=JX();Object.defineProperty(Di,"EtherSymbol",{enumerable:!0,get:function(){return sPe.EtherSymbol}})});var XX=x(sg=>{"use strict";var oPe=sg&&sg.__extends||function(){var t=function(e,r){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var a in n)Object.prototype.hasOwnProperty.call(n,a)&&(i[a]=n[a])},t(e,r)};return function(e,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");t(e,r);function i(){this.constructor=e}e.prototype=r===null?Object.create(r):(i.prototype=r.prototype,new i)}}();Object.defineProperty(sg,"__esModule",{value:!0});sg.NumberCoder=void 0;var uPe=Rn(),P5=V1(),cPe=ou(),dPe=function(t){oPe(e,t);function e(r,i,n){var a=this,s=(i?"int":"uint")+r*8;return a=t.call(this,s,s,n,!1)||this,a.size=r,a.signed=i,a}return e.prototype.defaultValue=function(){return 0},e.prototype.encode=function(r,i){var n=uPe.BigNumber.from(i),a=P5.MaxUint256.mask(r.wordSize*8);if(this.signed){var s=a.mask(this.size*8-1);(n.gt(s)||n.lt(s.add(P5.One).mul(P5.NegativeOne)))&&this._throwError("value out-of-bounds",i)}else(n.lt(P5.Zero)||n.gt(a.mask(this.size*8)))&&this._throwError("value out-of-bounds",i);return n=n.toTwos(this.size*8).mask(this.size*8),this.signed&&(n=n.fromTwos(this.size*8).toTwos(8*r.wordSize)),r.writeValue(n)},e.prototype.decode=function(r){var i=r.readValue().mask(this.size*8);return this.signed&&(i=i.fromTwos(this.size*8)),r.coerce(this.name,i)},e}(cPe.Coder);sg.NumberCoder=dPe});var KX=x(O5=>{"use strict";Object.defineProperty(O5,"__esModule",{value:!0});O5.version=void 0;O5.version="strings/5.7.0"});var M5=x(yn=>{"use strict";Object.defineProperty(yn,"__esModule",{value:!0});yn.toUtf8CodePoints=yn.toUtf8String=yn._toUtf8String=yn._toEscapedUtf8String=yn.toUtf8Bytes=yn.Utf8ErrorFuncs=yn.Utf8ErrorReason=yn.UnicodeNormalizationForm=void 0;var WX=or(),lPe=Ht(),fPe=KX(),ZX=new lPe.Logger(fPe.version),R5;(function(t){t.current="",t.NFC="NFC",t.NFD="NFD",t.NFKC="NFKC",t.NFKD="NFKD"})(R5=yn.UnicodeNormalizationForm||(yn.UnicodeNormalizationForm={}));var du;(function(t){t.UNEXPECTED_CONTINUE="unexpected continuation byte",t.BAD_PREFIX="bad codepoint prefix",t.OVERRUN="string overrun",t.MISSING_CONTINUE="missing continuation byte",t.OUT_OF_RANGE="out of UTF-8 range",t.UTF16_SURROGATE="UTF-16 surrogate",t.OVERLONG="overlong representation"})(du=yn.Utf8ErrorReason||(yn.Utf8ErrorReason={}));function pPe(t,e,r,i,n){return ZX.throwArgumentError("invalid codepoint at offset "+e+"; "+t,"bytes",r)}function $X(t,e,r,i,n){if(t===du.BAD_PREFIX||t===du.UNEXPECTED_CONTINUE){for(var a=0,s=e+1;s>6===2;s++)a++;return a}return t===du.OVERRUN?r.length-e-1:0}function hPe(t,e,r,i,n){return t===du.OVERLONG?(i.push(n),0):(i.push(65533),$X(t,e,r,i,n))}yn.Utf8ErrorFuncs=Object.freeze({error:pPe,ignore:$X,replace:hPe});function ZO(t,e){e==null&&(e=yn.Utf8ErrorFuncs.error),t=(0,WX.arrayify)(t);for(var r=[],i=0;i>7===0){r.push(n);continue}var a=null,s=null;if((n&224)===192)a=1,s=127;else if((n&240)===224)a=2,s=2047;else if((n&248)===240)a=3,s=65535;else{(n&192)===128?i+=e(du.UNEXPECTED_CONTINUE,i-1,t,r):i+=e(du.BAD_PREFIX,i-1,t,r);continue}if(i-1+a>=t.length){i+=e(du.OVERRUN,i-1,t,r);continue}for(var o=n&(1<<8-a-1)-1,c=0;c1114111){i+=e(du.OUT_OF_RANGE,i-1-a,t,r,o);continue}if(o>=55296&&o<=57343){i+=e(du.UTF16_SURROGATE,i-1-a,t,r,o);continue}if(o<=s){i+=e(du.OVERLONG,i-1-a,t,r,o);continue}r.push(o)}}return r}function QX(t,e){e===void 0&&(e=R5.current),e!=R5.current&&(ZX.checkNormalize(),t=t.normalize(e));for(var r=[],i=0;i>6|192),r.push(n&63|128);else if((n&64512)==55296){i++;var a=t.charCodeAt(i);if(i>=t.length||(a&64512)!==56320)throw new Error("invalid utf-8 string");var s=65536+((n&1023)<<10)+(a&1023);r.push(s>>18|240),r.push(s>>12&63|128),r.push(s>>6&63|128),r.push(s&63|128)}else r.push(n>>12|224),r.push(n>>6&63|128),r.push(n&63|128)}return(0,WX.arrayify)(r)}yn.toUtf8Bytes=QX;function WO(t){var e="0000"+t.toString(16);return"\\u"+e.substring(e.length-4)}function mPe(t,e){return'"'+ZO(t,e).map(function(r){if(r<256){switch(r){case 8:return"\\b";case 9:return"\\t";case 10:return"\\n";case 13:return"\\r";case 34:return'\\"';case 92:return"\\\\"}if(r>=32&&r<127)return String.fromCharCode(r)}return r<=65535?WO(r):(r-=65536,WO((r>>10&1023)+55296)+WO((r&1023)+56320))}).join("")+'"'}yn._toEscapedUtf8String=mPe;function YX(t){return t.map(function(e){return e<=65535?String.fromCharCode(e):(e-=65536,String.fromCharCode((e>>10&1023)+55296,(e&1023)+56320))}).join("")}yn._toUtf8String=YX;function gPe(t,e){return YX(ZO(t,e))}yn.toUtf8String=gPe;function yPe(t,e){return e===void 0&&(e=R5.current),ZO(QX(t,e))}yn.toUtf8CodePoints=yPe});var tK=x(og=>{"use strict";Object.defineProperty(og,"__esModule",{value:!0});og.parseBytes32String=og.formatBytes32String=void 0;var vPe=V1(),$O=or(),eK=M5();function bPe(t){var e=(0,eK.toUtf8Bytes)(t);if(e.length>31)throw new Error("bytes32 string must be less than 32 bytes");return(0,$O.hexlify)((0,$O.concat)([e,vPe.HashZero]).slice(0,32))}og.formatBytes32String=bPe;function _Pe(t){var e=(0,$O.arrayify)(t);if(e.length!==32)throw new Error("invalid bytes32 - not 32 bytes long");if(e[31]!==0)throw new Error("invalid bytes32 string - no null terminator");for(var r=31;e[r-1]===0;)r--;return(0,eK.toUtf8String)(e.slice(0,r))}og.parseBytes32String=_Pe});var sK=x(yd=>{"use strict";Object.defineProperty(yd,"__esModule",{value:!0});yd.nameprep=yd._nameprepTableC=yd._nameprepTableB2=yd._nameprepTableA1=void 0;var R4=M5();function wPe(t){if(t.length%4!==0)throw new Error("bad data");for(var e=[],r=0;r=r&&t<=r+n.h&&(t-r)%(n.d||1)===0){if(n.e&&n.e.indexOf(t-r)!==-1)continue;return n}}return null}var xPe=rK("221,13-1b,5f-,40-10,51-f,11-3,3-3,2-2,2-4,8,2,15,2d,28-8,88,48,27-,3-5,11-20,27-,8,28,3-5,12,18,b-a,1c-4,6-16,2-d,2-2,2,1b-4,17-9,8f-,10,f,1f-2,1c-34,33-14e,4,36-,13-,6-2,1a-f,4,9-,3-,17,8,2-2,5-,2,8-,3-,4-8,2-3,3,6-,16-6,2-,7-3,3-,17,8,3,3,3-,2,6-3,3-,4-a,5,2-6,10-b,4,8,2,4,17,8,3,6-,b,4,4-,2-e,2-4,b-10,4,9-,3-,17,8,3-,5-,9-2,3-,4-7,3-3,3,4-3,c-10,3,7-2,4,5-2,3,2,3-2,3-2,4-2,9,4-3,6-2,4,5-8,2-e,d-d,4,9,4,18,b,6-3,8,4,5-6,3-8,3-3,b-11,3,9,4,18,b,6-3,8,4,5-6,3-6,2,3-3,b-11,3,9,4,18,11-3,7-,4,5-8,2-7,3-3,b-11,3,13-2,19,a,2-,8-2,2-3,7,2,9-11,4-b,3b-3,1e-24,3,2-,3,2-,2-5,5,8,4,2,2-,3,e,4-,6,2,7-,b-,3-21,49,23-5,1c-3,9,25,10-,2-2f,23,6,3,8-2,5-5,1b-45,27-9,2a-,2-3,5b-4,45-4,53-5,8,40,2,5-,8,2,5-,28,2,5-,20,2,5-,8,2,5-,8,8,18,20,2,5-,8,28,14-5,1d-22,56-b,277-8,1e-2,52-e,e,8-a,18-8,15-b,e,4,3-b,5e-2,b-15,10,b-5,59-7,2b-555,9d-3,5b-5,17-,7-,27-,7-,9,2,2,2,20-,36,10,f-,7,14-,4,a,54-3,2-6,6-5,9-,1c-10,13-1d,1c-14,3c-,10-6,32-b,240-30,28-18,c-14,a0,115-,3,66-,b-76,5,5-,1d,24,2,5-2,2,8-,35-2,19,f-10,1d-3,311-37f,1b,5a-b,d7-19,d-3,41,57-,68-4,29-3,5f,29-37,2e-2,25-c,2c-2,4e-3,30,78-3,64-,20,19b7-49,51a7-59,48e-2,38-738,2ba5-5b,222f-,3c-94,8-b,6-4,1b,6,2,3,3,6d-20,16e-f,41-,37-7,2e-2,11-f,5-b,18-,b,14,5-3,6,88-,2,bf-2,7-,7-,7-,4-2,8,8-9,8-2ff,20,5-b,1c-b4,27-,27-cbb1,f7-9,28-2,b5-221,56,48,3-,2-,3-,5,d,2,5,3,42,5-,9,8,1d,5,6,2-2,8,153-3,123-3,33-27fd,a6da-5128,21f-5df,3-fffd,3-fffd,3-fffd,3-fffd,3-fffd,3-fffd,3-fffd,3-fffd,3-fffd,3-fffd,3-fffd,3,2-1d,61-ff7d"),SPe="ad,34f,1806,180b,180c,180d,200b,200c,200d,2060,feff".split(",").map(function(t){return parseInt(t,16)}),EPe=[{h:25,s:32,l:65},{h:30,s:32,e:[23],l:127},{h:54,s:1,e:[48],l:64,d:2},{h:14,s:1,l:57,d:2},{h:44,s:1,l:17,d:2},{h:10,s:1,e:[2,6,8],l:61,d:2},{h:16,s:1,l:68,d:2},{h:84,s:1,e:[18,24,66],l:19,d:2},{h:26,s:32,e:[17],l:435},{h:22,s:1,l:71,d:2},{h:15,s:80,l:40},{h:31,s:32,l:16},{h:32,s:1,l:80,d:2},{h:52,s:1,l:42,d:2},{h:12,s:1,l:55,d:2},{h:40,s:1,e:[38],l:15,d:2},{h:14,s:1,l:48,d:2},{h:37,s:48,l:49},{h:148,s:1,l:6351,d:2},{h:88,s:1,l:160,d:2},{h:15,s:16,l:704},{h:25,s:26,l:854},{h:25,s:32,l:55915},{h:37,s:40,l:1247},{h:25,s:-119711,l:53248},{h:25,s:-119763,l:52},{h:25,s:-119815,l:52},{h:25,s:-119867,e:[1,4,5,7,8,11,12,17],l:52},{h:25,s:-119919,l:52},{h:24,s:-119971,e:[2,7,8,17],l:52},{h:24,s:-120023,e:[2,7,13,15,16,17],l:52},{h:25,s:-120075,l:52},{h:25,s:-120127,l:52},{h:25,s:-120179,l:52},{h:25,s:-120231,l:52},{h:25,s:-120283,l:52},{h:25,s:-120335,l:52},{h:24,s:-119543,e:[17],l:56},{h:24,s:-119601,e:[17],l:58},{h:24,s:-119659,e:[17],l:58},{h:24,s:-119717,e:[17],l:58},{h:24,s:-119775,e:[17],l:58}],TPe=QO("b5:3bc,c3:ff,7:73,2:253,5:254,3:256,1:257,5:259,1:25b,3:260,1:263,2:269,1:268,5:26f,1:272,2:275,7:280,3:283,5:288,3:28a,1:28b,5:292,3f:195,1:1bf,29:19e,125:3b9,8b:3b2,1:3b8,1:3c5,3:3c6,1:3c0,1a:3ba,1:3c1,1:3c3,2:3b8,1:3b5,1bc9:3b9,1c:1f76,1:1f77,f:1f7a,1:1f7b,d:1f78,1:1f79,1:1f7c,1:1f7d,107:63,5:25b,4:68,1:68,1:68,3:69,1:69,1:6c,3:6e,4:70,1:71,1:72,1:72,1:72,7:7a,2:3c9,2:7a,2:6b,1:e5,1:62,1:63,3:65,1:66,2:6d,b:3b3,1:3c0,6:64,1b574:3b8,1a:3c3,20:3b8,1a:3c3,20:3b8,1a:3c3,20:3b8,1a:3c3,20:3b8,1a:3c3"),APe=QO("179:1,2:1,2:1,5:1,2:1,a:4f,a:1,8:1,2:1,2:1,3:1,5:1,3:1,4:1,2:1,3:1,4:1,8:2,1:1,2:2,1:1,2:2,27:2,195:26,2:25,1:25,1:25,2:40,2:3f,1:3f,33:1,11:-6,1:-9,1ac7:-3a,6d:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,9:-8,1:-8,1:-8,1:-8,1:-8,1:-8,b:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,9:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,9:-8,1:-8,1:-8,1:-8,1:-8,1:-8,c:-8,2:-8,2:-8,2:-8,9:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,49:-8,1:-8,1:-4a,1:-4a,d:-56,1:-56,1:-56,1:-56,d:-8,1:-8,f:-8,1:-8,3:-7"),PPe=QO("df:00730073,51:00690307,19:02BC006E,a7:006A030C,18a:002003B9,16:03B903080301,20:03C503080301,1d7:05650582,190f:00680331,1:00740308,1:0077030A,1:0079030A,1:006102BE,b6:03C50313,2:03C503130300,2:03C503130301,2:03C503130342,2a:1F0003B9,1:1F0103B9,1:1F0203B9,1:1F0303B9,1:1F0403B9,1:1F0503B9,1:1F0603B9,1:1F0703B9,1:1F0003B9,1:1F0103B9,1:1F0203B9,1:1F0303B9,1:1F0403B9,1:1F0503B9,1:1F0603B9,1:1F0703B9,1:1F2003B9,1:1F2103B9,1:1F2203B9,1:1F2303B9,1:1F2403B9,1:1F2503B9,1:1F2603B9,1:1F2703B9,1:1F2003B9,1:1F2103B9,1:1F2203B9,1:1F2303B9,1:1F2403B9,1:1F2503B9,1:1F2603B9,1:1F2703B9,1:1F6003B9,1:1F6103B9,1:1F6203B9,1:1F6303B9,1:1F6403B9,1:1F6503B9,1:1F6603B9,1:1F6703B9,1:1F6003B9,1:1F6103B9,1:1F6203B9,1:1F6303B9,1:1F6403B9,1:1F6503B9,1:1F6603B9,1:1F6703B9,3:1F7003B9,1:03B103B9,1:03AC03B9,2:03B10342,1:03B1034203B9,5:03B103B9,6:1F7403B9,1:03B703B9,1:03AE03B9,2:03B70342,1:03B7034203B9,5:03B703B9,6:03B903080300,1:03B903080301,3:03B90342,1:03B903080342,b:03C503080300,1:03C503080301,1:03C10313,2:03C50342,1:03C503080342,b:1F7C03B9,1:03C903B9,1:03CE03B9,2:03C90342,1:03C9034203B9,5:03C903B9,ac:00720073,5b:00B00063,6:00B00066,d:006E006F,a:0073006D,1:00740065006C,1:0074006D,124f:006800700061,2:00610075,2:006F0076,b:00700061,1:006E0061,1:03BC0061,1:006D0061,1:006B0061,1:006B0062,1:006D0062,1:00670062,3:00700066,1:006E0066,1:03BC0066,4:0068007A,1:006B0068007A,1:006D0068007A,1:00670068007A,1:00740068007A,15:00700061,1:006B00700061,1:006D00700061,1:006700700061,8:00700076,1:006E0076,1:03BC0076,1:006D0076,1:006B0076,1:006D0076,1:00700077,1:006E0077,1:03BC0077,1:006D0077,1:006B0077,1:006D0077,1:006B03C9,1:006D03C9,2:00620071,3:00632215006B0067,1:0063006F002E,1:00640062,1:00670079,2:00680070,2:006B006B,1:006B006D,9:00700068,2:00700070006D,1:00700072,2:00730076,1:00770062,c723:00660066,1:00660069,1:0066006C,1:006600660069,1:00660066006C,1:00730074,1:00730074,d:05740576,1:05740565,1:0574056B,1:057E0576,1:0574056D",wPe),OPe=rK("80-20,2a0-,39c,32,f71,18e,7f2-f,19-7,30-4,7-5,f81-b,5,a800-20ff,4d1-1f,110,fa-6,d174-7,2e84-,ffff-,ffff-,ffff-,ffff-,ffff-,ffff-,ffff-,ffff-,ffff-,ffff-,ffff-,ffff-,2,1f-5f,ff7f-20001");function RPe(t){return t.reduce(function(e,r){return r.forEach(function(i){e.push(i)}),e},[])}function iK(t){return!!YO(t,xPe)}yd._nameprepTableA1=iK;function nK(t){var e=YO(t,EPe);if(e)return[t+e.s];var r=TPe[t];if(r)return r;var i=APe[t];if(i)return[t+i[0]];var n=PPe[t];return n||null}yd._nameprepTableB2=nK;function aK(t){return!!YO(t,OPe)}yd._nameprepTableC=aK;function MPe(t){if(t.match(/^[a-z0-9-]*$/i)&&t.length<=59)return t.toLowerCase();var e=(0,R4.toUtf8CodePoints)(t);e=RPe(e.map(function(i){if(SPe.indexOf(i)>=0)return[];if(i>=65024&&i<=65039)return[];var n=nK(i);return n||[i]})),e=(0,R4.toUtf8CodePoints)((0,R4._toUtf8String)(e),R4.UnicodeNormalizationForm.NFKC),e.forEach(function(i){if(aK(i))throw new Error("STRINGPREP_CONTAINS_PROHIBITED")}),e.forEach(function(i){if(iK(i))throw new Error("STRINGPREP_CONTAINS_UNASSIGNED")});var r=(0,R4._toUtf8String)(e);if(r.substring(0,1)==="-"||r.substring(2,4)==="--"||r.substring(r.length-1)==="-")throw new Error("invalid hyphen");return r}yd.nameprep=MPe});var Cn=x(an=>{"use strict";Object.defineProperty(an,"__esModule",{value:!0});an.nameprep=an.parseBytes32String=an.formatBytes32String=an.UnicodeNormalizationForm=an.Utf8ErrorReason=an.Utf8ErrorFuncs=an.toUtf8String=an.toUtf8CodePoints=an.toUtf8Bytes=an._toEscapedUtf8String=void 0;var oK=tK();Object.defineProperty(an,"formatBytes32String",{enumerable:!0,get:function(){return oK.formatBytes32String}});Object.defineProperty(an,"parseBytes32String",{enumerable:!0,get:function(){return oK.parseBytes32String}});var CPe=sK();Object.defineProperty(an,"nameprep",{enumerable:!0,get:function(){return CPe.nameprep}});var H1=M5();Object.defineProperty(an,"_toEscapedUtf8String",{enumerable:!0,get:function(){return H1._toEscapedUtf8String}});Object.defineProperty(an,"toUtf8Bytes",{enumerable:!0,get:function(){return H1.toUtf8Bytes}});Object.defineProperty(an,"toUtf8CodePoints",{enumerable:!0,get:function(){return H1.toUtf8CodePoints}});Object.defineProperty(an,"toUtf8String",{enumerable:!0,get:function(){return H1.toUtf8String}});Object.defineProperty(an,"UnicodeNormalizationForm",{enumerable:!0,get:function(){return H1.UnicodeNormalizationForm}});Object.defineProperty(an,"Utf8ErrorFuncs",{enumerable:!0,get:function(){return H1.Utf8ErrorFuncs}});Object.defineProperty(an,"Utf8ErrorReason",{enumerable:!0,get:function(){return H1.Utf8ErrorReason}})});var cK=x(ug=>{"use strict";var IPe=ug&&ug.__extends||function(){var t=function(e,r){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var a in n)Object.prototype.hasOwnProperty.call(n,a)&&(i[a]=n[a])},t(e,r)};return function(e,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");t(e,r);function i(){this.constructor=e}e.prototype=r===null?Object.create(r):(i.prototype=r.prototype,new i)}}();Object.defineProperty(ug,"__esModule",{value:!0});ug.StringCoder=void 0;var uK=Cn(),NPe=KO(),kPe=function(t){IPe(e,t);function e(r){return t.call(this,"string",r)||this}return e.prototype.defaultValue=function(){return""},e.prototype.encode=function(r,i){return t.prototype.encode.call(this,r,(0,uK.toUtf8Bytes)(i))},e.prototype.decode=function(r){return(0,uK.toUtf8String)(t.prototype.decode.call(this,r))},e}(NPe.DynamicBytesCoder);ug.StringCoder=kPe});var lK=x(cg=>{"use strict";var BPe=cg&&cg.__extends||function(){var t=function(e,r){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var a in n)Object.prototype.hasOwnProperty.call(n,a)&&(i[a]=n[a])},t(e,r)};return function(e,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");t(e,r);function i(){this.constructor=e}e.prototype=r===null?Object.create(r):(i.prototype=r.prototype,new i)}}();Object.defineProperty(cg,"__esModule",{value:!0});cg.TupleCoder=void 0;var FPe=ou(),dK=XO(),DPe=function(t){BPe(e,t);function e(r,i){var n=this,a=!1,s=[];r.forEach(function(c){c.dynamic&&(a=!0),s.push(c.type)});var o="tuple("+s.join(",")+")";return n=t.call(this,"tuple",o,i,a)||this,n.coders=r,n}return e.prototype.defaultValue=function(){var r=[];this.coders.forEach(function(n){r.push(n.defaultValue())});var i=this.coders.reduce(function(n,a){var s=a.localName;return s&&(n[s]||(n[s]=0),n[s]++),n},{});return this.coders.forEach(function(n,a){var s=n.localName;!s||i[s]!==1||(s==="length"&&(s="_length"),r[s]==null&&(r[s]=r[a]))}),Object.freeze(r)},e.prototype.encode=function(r,i){return(0,dK.pack)(r,this.coders,i)},e.prototype.decode=function(r){return r.coerce(this.name,(0,dK.unpack)(r,this.coders))},e}(FPe.Coder);cg.TupleCoder=DPe});var tR=x(dg=>{"use strict";Object.defineProperty(dg,"__esModule",{value:!0});dg.defaultAbiCoder=dg.AbiCoder=void 0;var qPe=or(),LPe=Xr(),pK=Ht(),UPe=W2(),C5=new pK.Logger(UPe.version),fK=ou(),jPe=IX(),VPe=XO(),HPe=FX(),zPe=KO(),GPe=jX(),JPe=VX(),XPe=XX(),KPe=cK(),I5=lK(),eR=b5(),WPe=new RegExp(/^bytes([0-9]*)$/),ZPe=new RegExp(/^(u?int)([0-9]*)$/),hK=function(){function t(e){(0,LPe.defineReadOnly)(this,"coerceFunc",e||null)}return t.prototype._getCoder=function(e){var r=this;switch(e.baseType){case"address":return new jPe.AddressCoder(e.name);case"bool":return new HPe.BooleanCoder(e.name);case"string":return new KPe.StringCoder(e.name);case"bytes":return new zPe.BytesCoder(e.name);case"array":return new VPe.ArrayCoder(this._getCoder(e.arrayChildren),e.arrayLength,e.name);case"tuple":return new I5.TupleCoder((e.components||[]).map(function(a){return r._getCoder(a)}),e.name);case"":return new JPe.NullCoder(e.name)}var i=e.type.match(ZPe);if(i){var n=parseInt(i[2]||"256");return(n===0||n>256||n%8!==0)&&C5.throwArgumentError("invalid "+i[1]+" bit length","param",e),new XPe.NumberCoder(n/8,i[1]==="int",e.name)}if(i=e.type.match(WPe),i){var n=parseInt(i[1]);return(n===0||n>32)&&C5.throwArgumentError("invalid bytes length","param",e),new GPe.FixedBytesCoder(n,e.name)}return C5.throwArgumentError("invalid type","type",e.type)},t.prototype._getWordSize=function(){return 32},t.prototype._getReader=function(e,r){return new fK.Reader(e,this._getWordSize(),this.coerceFunc,r)},t.prototype._getWriter=function(){return new fK.Writer(this._getWordSize())},t.prototype.getDefaultValue=function(e){var r=this,i=e.map(function(a){return r._getCoder(eR.ParamType.from(a))}),n=new I5.TupleCoder(i,"_");return n.defaultValue()},t.prototype.encode=function(e,r){var i=this;e.length!==r.length&&C5.throwError("types/values length mismatch",pK.Logger.errors.INVALID_ARGUMENT,{count:{types:e.length,values:r.length},value:{types:e,values:r}});var n=e.map(function(o){return i._getCoder(eR.ParamType.from(o))}),a=new I5.TupleCoder(n,"_"),s=this._getWriter();return a.encode(s,r),s.data},t.prototype.decode=function(e,r,i){var n=this,a=e.map(function(o){return n._getCoder(eR.ParamType.from(o))}),s=new I5.TupleCoder(a,"_");return s.decode(this._getReader((0,qPe.arrayify)(r),i))},t}();dg.AbiCoder=hK;dg.defaultAbiCoder=new hK});var rR=x(N5=>{"use strict";Object.defineProperty(N5,"__esModule",{value:!0});N5.id=void 0;var $Pe=Oo(),QPe=Cn();function YPe(t){return(0,$Pe.keccak256)((0,QPe.toUtf8Bytes)(t))}N5.id=YPe});var iR=x(k5=>{"use strict";Object.defineProperty(k5,"__esModule",{value:!0});k5.version=void 0;k5.version="hash/5.7.0"});var gK=x(lg=>{"use strict";Object.defineProperty(lg,"__esModule",{value:!0});lg.encode=lg.decode=void 0;var mK=or();function eOe(t){return(0,mK.arrayify)(new Uint8Array(Buffer.from(t,"base64")))}lg.decode=eOe;function tOe(t){return Buffer.from((0,mK.arrayify)(t)).toString("base64")}lg.encode=tOe});var M4=x(fg=>{"use strict";Object.defineProperty(fg,"__esModule",{value:!0});fg.encode=fg.decode=void 0;var yK=gK();Object.defineProperty(fg,"decode",{enumerable:!0,get:function(){return yK.decode}});Object.defineProperty(fg,"encode",{enumerable:!0,get:function(){return yK.encode}})});var aR=x(oa=>{"use strict";Object.defineProperty(oa,"__esModule",{value:!0});oa.read_emoji_trie=oa.read_zero_terminated_array=oa.read_mapped_map=oa.read_member_array=oa.signed=oa.read_compressed_payload=oa.read_payload=oa.decode_arithmetic=void 0;function bK(t,e){e==null&&(e=1);var r=[],i=r.forEach,n=function(a,s){i.call(a,function(o){s>0&&Array.isArray(o)?n(o,s-1):r.push(o)})};return n(t,e),r}function rOe(t){for(var e={},r=0;r>--u&1}for(var p=31,b=Math.pow(2,p),T=b>>>1,I=T>>1,L=b-1,U=0,s=0;s1;){var ne=ce+me>>>1;be>>1|d(),ee=ee<<1^T,R=(R^T)<<1|T|1;oe=ee,ge=1+R-ee}var g=i-4;return re.map(function(v){switch(v-g){case 3:return g+65792+(t[c++]<<16|t[c++]<<8|t[c++]);case 2:return g+256+(t[c++]<<8|t[c++]);case 1:return g+t[c++];default:return v-1}})}oa.decode_arithmetic=_K;function wK(t){var e=0;return function(){return t[e++]}}oa.read_payload=wK;function iOe(t){return wK(_K(t))}oa.read_compressed_payload=iOe;function xK(t){return t&1?~t>>1:t>>1}oa.signed=xK;function nOe(t,e){for(var r=Array(t),i=0;i>=1;var c=a==1,u=a==2;return{branches:i,valid:s,fe0f:o,save:c,check:u}}}oa.read_emoji_trie=cOe});var TK=x(B5=>{"use strict";Object.defineProperty(B5,"__esModule",{value:!0});B5.getData=void 0;var dOe=M4(),lOe=aR();function fOe(){return(0,lOe.read_compressed_payload)((0,dOe.decode)("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"))}B5.getData=fOe});var RK=x(pg=>{"use strict";Object.defineProperty(pg,"__esModule",{value:!0});pg.ens_normalize=pg.ens_normalize_post_check=void 0;var pOe=Cn(),hOe=TK(),F5=(0,hOe.getData)(),D5=aR(),mOe=new Set((0,D5.read_member_array)(F5)),gOe=new Set((0,D5.read_member_array)(F5)),yOe=(0,D5.read_mapped_map)(F5),vOe=(0,D5.read_emoji_trie)(F5),AK=45,PK=95;function OK(t){return(0,pOe.toUtf8CodePoints)(t)}function bOe(t){return t.filter(function(e){return e!=65039})}function sR(t){for(var e=0,r=t.split(".");e=0;a--)if(n[a]!==PK)throw new Error("underscore only allowed at start");if(n.length>=4&&n.every(function(s){return s<128})&&n[2]===AK&&n[3]===AK)throw new Error("invalid label extension")}catch(s){throw new Error('Invalid label "'+i+'": '+s.message)}}return t}pg.ens_normalize_post_check=sR;function _Oe(t){return sR(wOe(t,bOe))}pg.ens_normalize=_Oe;function wOe(t,e){for(var r=OK(t).reverse(),i=[];r.length;){var n=SOe(r);if(n){i.push.apply(i,e(n));continue}var a=r.pop();if(mOe.has(a)){i.push(a);continue}if(!gOe.has(a)){var s=yOe[a];if(s){i.push.apply(i,s);continue}throw new Error("Disallowed codepoint: 0x"+a.toString(16).toUpperCase())}}return sR(xOe(String.fromCodePoint.apply(String,i)))}function xOe(t){return t.normalize("NFC")}function SOe(t,e){var r,i=vOe,n,a,s=[],o=t.length;e&&(e.length=0);for(var c=function(){var f=t[--o];if(i=(r=i.branches.find(function(d){return d.set.has(f)}))===null||r===void 0?void 0:r.node,!i)return"break";if(i.save)a=f;else if(i.check&&f===a)return"break";s.push(f),i.fe0f&&(s.push(65039),o>0&&t[o-1]==65039&&o--),i.valid&&(n=s.slice(),i.valid==2&&n.splice(1,1),e&&e.push.apply(e,t.slice(o).reverse()),t.length=o)};o;){var u=c();if(u==="break")break}return n}});var oR=x(vd=>{"use strict";Object.defineProperty(vd,"__esModule",{value:!0});vd.dnsEncode=vd.namehash=vd.isValidName=vd.ensNormalize=void 0;var q5=or(),IK=Cn(),MK=Oo(),EOe=Ht(),TOe=iR(),AOe=new EOe.Logger(TOe.version),POe=RK(),NK=new Uint8Array(32);NK.fill(0);function CK(t){if(t.length===0)throw new Error("invalid ENS name; empty component");return t}function L5(t){var e=(0,IK.toUtf8Bytes)((0,POe.ens_normalize)(t)),r=[];if(t.length===0)return r;for(var i=0,n=0;n=e.length)throw new Error("invalid ENS name; empty component");return r.push(CK(e.slice(i))),r}function OOe(t){return L5(t).map(function(e){return(0,IK.toUtf8String)(e)}).join(".")}vd.ensNormalize=OOe;function ROe(t){try{return L5(t).length!==0}catch{}return!1}vd.isValidName=ROe;function MOe(t){typeof t!="string"&&AOe.throwArgumentError("invalid ENS name; not a string","name",t);for(var e=NK,r=L5(t);r.length;)e=(0,MK.keccak256)((0,q5.concat)([e,(0,MK.keccak256)(r.pop())]));return(0,q5.hexlify)(e)}vd.namehash=MOe;function COe(t){return(0,q5.hexlify)((0,q5.concat)(L5(t).map(function(e){if(e.length>63)throw new Error("invalid DNS encoded entry; length exceeds 63 bytes");var r=new Uint8Array(e.length+1);return r.set(e,1),r[0]=r.length-1,r})))+"00"}vd.dnsEncode=COe});var kK=x(z1=>{"use strict";Object.defineProperty(z1,"__esModule",{value:!0});z1.hashMessage=z1.messagePrefix=void 0;var IOe=or(),NOe=Oo(),uR=Cn();z1.messagePrefix=`Ethereum Signed Message: +`;function kOe(t){return typeof t=="string"&&(t=(0,uR.toUtf8Bytes)(t)),(0,NOe.keccak256)((0,IOe.concat)([(0,uR.toUtf8Bytes)(z1.messagePrefix),(0,uR.toUtf8Bytes)(String(t.length)),t]))}z1.hashMessage=kOe});var HK=x(p0=>{"use strict";var BOe=p0&&p0.__awaiter||function(t,e,r,i){function n(a){return a instanceof r?a:new r(function(s){s(a)})}return new(r||(r=Promise))(function(a,s){function o(f){try{u(i.next(f))}catch(d){s(d)}}function c(f){try{u(i.throw(f))}catch(d){s(d)}}function u(f){f.done?a(f.value):n(f.value).then(o,c)}u((i=i.apply(t,e||[])).next())})},FOe=p0&&p0.__generator||function(t,e){var r={label:0,sent:function(){if(a[0]&1)throw a[1];return a[1]},trys:[],ops:[]},i,n,a,s;return s={next:o(0),throw:o(1),return:o(2)},typeof Symbol=="function"&&(s[Symbol.iterator]=function(){return this}),s;function o(u){return function(f){return c([u,f])}}function c(u){if(i)throw new TypeError("Generator is already executing.");for(;r;)try{if(i=1,n&&(a=u[0]&2?n.return:u[0]?n.throw||((a=n.return)&&a.call(n),0):n.next)&&!(a=a.call(n,u[1])).done)return a;switch(n=0,a&&(u=[u[0]&2,a.value]),u[0]){case 0:case 1:a=u;break;case 4:return r.label++,{value:u[1],done:!1};case 5:r.label++,n=u[1],u=[0];continue;case 7:u=r.ops.pop(),r.trys.pop();continue;default:if(a=r.trys,!(a=a.length>0&&a[a.length-1])&&(u[0]===6||u[0]===2)){r=0;continue}if(u[0]===3&&(!a||u[1]>a[0]&&u[1]256||e[2]&&e[2]!==String(i))&&$i.throwArgumentError("invalid numeric width","type",t);var n=UOe.mask(r?i-1:i),a=r?n.add(VK).mul(LOe):jK;return function(o){var c=J1.BigNumber.from(o);return(c.lt(a)||c.gt(n))&&$i.throwArgumentError("value out-of-bounds for "+t,"value",o),(0,Ia.hexZeroPad)(c.toTwos(256).toHexString(),32)}}}{var e=t.match(/^bytes(\d+)$/);if(e){var s=parseInt(e[1]);return(s===0||s>32||e[1]!==String(s))&&$i.throwArgumentError("invalid bytes width","type",t),function(c){var u=(0,Ia.arrayify)(c);return u.length!==s&&$i.throwArgumentError("invalid length for "+t,"value",c),jOe(c)}}}switch(t){case"address":return function(o){return(0,Ia.hexZeroPad)((0,qK.getAddress)(o),32)};case"bool":return function(o){return o?VOe:HOe};case"bytes":return function(o){return(0,hg.keccak256)(o)};case"string":return function(o){return(0,LK.id)(o)}}return null}function DK(t,e){return t+"("+e.map(function(r){var i=r.name,n=r.type;return n+" "+i}).join(",")+")"}var GOe=function(){function t(e){(0,G1.defineReadOnly)(this,"types",Object.freeze((0,G1.deepCopy)(e))),(0,G1.defineReadOnly)(this,"_encoderCache",{}),(0,G1.defineReadOnly)(this,"_types",{});var r={},i={},n={};Object.keys(e).forEach(function(d){r[d]={},i[d]=[],n[d]={}});var a=function(d){var p={};e[d].forEach(function(b){p[b.name]&&$i.throwArgumentError("duplicate variable name "+JSON.stringify(b.name)+" in "+JSON.stringify(d),"types",e),p[b.name]=!0;var T=b.type.match(/^([^\x5b]*)(\x5b|$)/)[1];T===d&&$i.throwArgumentError("circular type reference to "+JSON.stringify(T),"types",e);var I=dR(T);I||(i[T]||$i.throwArgumentError("unknown type "+JSON.stringify(T),"types",e),i[T].push(d),r[d][T]=!0)})};for(var s in e)a(s);var o=Object.keys(i).filter(function(d){return i[d].length===0});o.length===0?$i.throwArgumentError("missing primary type","types",e):o.length>1&&$i.throwArgumentError("ambiguous primary types or unused types: "+o.map(function(d){return JSON.stringify(d)}).join(", "),"types",e),(0,G1.defineReadOnly)(this,"primaryType",o[0]);function c(d,p){p[d]&&$i.throwArgumentError("circular type reference to "+JSON.stringify(d),"types",e),p[d]=!0,Object.keys(r[d]).forEach(function(b){!i[b]||(c(b,p),Object.keys(p).forEach(function(T){n[T][b]=!0}))}),delete p[d]}c(this.primaryType,{});for(var u in n){var f=Object.keys(n[u]);f.sort(),this._types[u]=DK(u,e[u])+f.map(function(d){return DK(d,e[d])}).join("")}}return t.prototype.getEncoder=function(e){var r=this._encoderCache[e];return r||(r=this._encoderCache[e]=this._getEncoder(e)),r},t.prototype._getEncoder=function(e){var r=this;{var i=dR(e);if(i)return i}var n=e.match(/^(.*)(\x5b(\d*)\x5d)$/);if(n){var a=n[1],s=this.getEncoder(a),o=parseInt(n[3]);return function(f){o>=0&&f.length!==o&&$i.throwArgumentError("array length mismatch; expected length ${ arrayLength }","value",f);var d=f.map(s);return r._types[a]&&(d=d.map(hg.keccak256)),(0,hg.keccak256)((0,Ia.hexConcat)(d))}}var c=this.types[e];if(c){var u=(0,LK.id)(this._types[e]);return function(f){var d=c.map(function(p){var b=p.name,T=p.type,I=r.getEncoder(T)(f[b]);return r._types[T]?(0,hg.keccak256)(I):I});return d.unshift(u),(0,Ia.hexConcat)(d)}}return $i.throwArgumentError("unknown type: "+e,"type",e)},t.prototype.encodeType=function(e){var r=this._types[e];return r||$i.throwArgumentError("unknown type: "+JSON.stringify(e),"name",e),r},t.prototype.encodeData=function(e,r){return this.getEncoder(e)(r)},t.prototype.hashStruct=function(e,r){return(0,hg.keccak256)(this.encodeData(e,r))},t.prototype.encode=function(e){return this.encodeData(this.primaryType,e)},t.prototype.hash=function(e){return this.hashStruct(this.primaryType,e)},t.prototype._visit=function(e,r,i){var n=this;{var a=dR(e);if(a)return i(e,r)}var s=e.match(/^(.*)(\x5b(\d*)\x5d)$/);if(s){var o=s[1],c=parseInt(s[3]);return c>=0&&r.length!==c&&$i.throwArgumentError("array length mismatch; expected length ${ arrayLength }","value",r),r.map(function(f){return n._visit(o,f,i)})}var u=this.types[e];return u?u.reduce(function(f,d){var p=d.name,b=d.type;return f[p]=n._visit(b,r[p],i),f},{}):$i.throwArgumentError("unknown type: "+e,"type",e)},t.prototype.visit=function(e,r){return this._visit(this.primaryType,e,r)},t.from=function(e){return new t(e)},t.getPrimaryType=function(e){return t.from(e).primaryType},t.hashStruct=function(e,r,i){return t.from(r).hashStruct(e,i)},t.hashDomain=function(e){var r=[];for(var i in e){var n=BK[i];n||$i.throwArgumentError("invalid typed-data domain key: "+JSON.stringify(i),"domain",e),r.push({name:i,type:n})}return r.sort(function(a,s){return cR.indexOf(a.name)-cR.indexOf(s.name)}),t.hashStruct("EIP712Domain",{EIP712Domain:r},e)},t.encode=function(e,r,i){return(0,Ia.hexConcat)(["0x1901",t.hashDomain(e),t.from(r).hash(i)])},t.hash=function(e,r,i){return(0,hg.keccak256)(t.encode(e,r,i))},t.resolveNames=function(e,r,i,n){return BOe(this,void 0,void 0,function(){var a,s,o,c,u,f,d,p;return FOe(this,function(b){switch(b.label){case 0:e=(0,G1.shallowCopy)(e),a={},e.verifyingContract&&!(0,Ia.isHexString)(e.verifyingContract,20)&&(a[e.verifyingContract]="0x"),s=t.from(r),s.visit(i,function(T,I){return T==="address"&&!(0,Ia.isHexString)(I,20)&&(a[I]="0x"),I}),o=[];for(c in a)o.push(c);u=0,b.label=1;case 1:return u{"use strict";Object.defineProperty(ua,"__esModule",{value:!0});ua._TypedDataEncoder=ua.hashMessage=ua.messagePrefix=ua.ensNormalize=ua.isValidName=ua.namehash=ua.dnsEncode=ua.id=void 0;var JOe=rR();Object.defineProperty(ua,"id",{enumerable:!0,get:function(){return JOe.id}});var lR=oR();Object.defineProperty(ua,"dnsEncode",{enumerable:!0,get:function(){return lR.dnsEncode}});Object.defineProperty(ua,"isValidName",{enumerable:!0,get:function(){return lR.isValidName}});Object.defineProperty(ua,"namehash",{enumerable:!0,get:function(){return lR.namehash}});var zK=kK();Object.defineProperty(ua,"hashMessage",{enumerable:!0,get:function(){return zK.hashMessage}});Object.defineProperty(ua,"messagePrefix",{enumerable:!0,get:function(){return zK.messagePrefix}});var XOe=oR();Object.defineProperty(ua,"ensNormalize",{enumerable:!0,get:function(){return XOe.ensNormalize}});var KOe=HK();Object.defineProperty(ua,"_TypedDataEncoder",{enumerable:!0,get:function(){return KOe.TypedDataEncoder}})});var $K=x(Ya=>{"use strict";var V5=Ya&&Ya.__extends||function(){var t=function(e,r){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var a in n)Object.prototype.hasOwnProperty.call(n,a)&&(i[a]=n[a])},t(e,r)};return function(e,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");t(e,r);function i(){this.constructor=e}e.prototype=r===null?Object.create(r):(i.prototype=r.prototype,new i)}}();Object.defineProperty(Ya,"__esModule",{value:!0});Ya.Interface=Ya.Indexed=Ya.ErrorDescription=Ya.TransactionDescription=Ya.LogDescription=Ya.checkResultErrors=void 0;var WOe=cu(),GK=Rn(),qi=or(),U5=X1(),JK=Oo(),Na=Xr(),ZOe=tR(),$Oe=ou();Object.defineProperty(Ya,"checkResultErrors",{enumerable:!0,get:function(){return $Oe.checkResultErrors}});var nf=b5(),j5=Ht(),QOe=W2(),Qi=new j5.Logger(QOe.version),KK=function(t){V5(e,t);function e(){return t!==null&&t.apply(this,arguments)||this}return e}(Na.Description);Ya.LogDescription=KK;var WK=function(t){V5(e,t);function e(){return t!==null&&t.apply(this,arguments)||this}return e}(Na.Description);Ya.TransactionDescription=WK;var ZK=function(t){V5(e,t);function e(){return t!==null&&t.apply(this,arguments)||this}return e}(Na.Description);Ya.ErrorDescription=ZK;var fR=function(t){V5(e,t);function e(){return t!==null&&t.apply(this,arguments)||this}return e.isIndexed=function(r){return!!(r&&r._isIndexed)},e}(Na.Description);Ya.Indexed=fR;var YOe={"0x08c379a0":{signature:"Error(string)",name:"Error",inputs:["string"],reason:!0},"0x4e487b71":{signature:"Panic(uint256)",name:"Panic",inputs:["uint256"]}};function XK(t,e){var r=new Error("deferred error during ABI decoding triggered accessing "+t);return r.error=e,r}var eRe=function(){function t(e){var r=this.constructor,i=this,n=[];typeof e=="string"?n=JSON.parse(e):n=e,(0,Na.defineReadOnly)(this,"fragments",n.map(function(a){return nf.Fragment.from(a)}).filter(function(a){return a!=null})),(0,Na.defineReadOnly)(this,"_abiCoder",(0,Na.getStatic)(r,"getAbiCoder")()),(0,Na.defineReadOnly)(this,"functions",{}),(0,Na.defineReadOnly)(this,"errors",{}),(0,Na.defineReadOnly)(this,"events",{}),(0,Na.defineReadOnly)(this,"structs",{}),this.fragments.forEach(function(a){var s=null;switch(a.type){case"constructor":if(i.deploy){Qi.warn("duplicate definition - constructor");return}(0,Na.defineReadOnly)(i,"deploy",a);return;case"function":s=i.functions;break;case"event":s=i.events;break;case"error":s=i.errors;break;default:return}var o=a.format();if(s[o]){Qi.warn("duplicate definition - "+o);return}s[o]=a}),this.deploy||(0,Na.defineReadOnly)(this,"deploy",nf.ConstructorFragment.from({payable:!1,type:"constructor"})),(0,Na.defineReadOnly)(this,"_isInterface",!0)}return t.prototype.format=function(e){e||(e=nf.FormatTypes.full),e===nf.FormatTypes.sighash&&Qi.throwArgumentError("interface does not support formatting sighash","format",e);var r=this.fragments.map(function(i){return i.format(e)});return e===nf.FormatTypes.json?JSON.stringify(r.map(function(i){return JSON.parse(i)})):r},t.getAbiCoder=function(){return ZOe.defaultAbiCoder},t.getAddress=function(e){return(0,WOe.getAddress)(e)},t.getSighash=function(e){return(0,qi.hexDataSlice)((0,U5.id)(e.format()),0,4)},t.getEventTopic=function(e){return(0,U5.id)(e.format())},t.prototype.getFunction=function(e){if((0,qi.isHexString)(e)){for(var r in this.functions)if(e===this.getSighash(r))return this.functions[r];Qi.throwArgumentError("no matching function","sighash",e)}if(e.indexOf("(")===-1){var i=e.trim(),n=Object.keys(this.functions).filter(function(s){return s.split("(")[0]===i});return n.length===0?Qi.throwArgumentError("no matching function","name",i):n.length>1&&Qi.throwArgumentError("multiple matching functions","name",i),this.functions[n[0]]}var a=this.functions[nf.FunctionFragment.fromString(e).format()];return a||Qi.throwArgumentError("no matching function","signature",e),a},t.prototype.getEvent=function(e){if((0,qi.isHexString)(e)){var r=e.toLowerCase();for(var i in this.events)if(r===this.getEventTopic(i))return this.events[i];Qi.throwArgumentError("no matching event","topichash",r)}if(e.indexOf("(")===-1){var n=e.trim(),a=Object.keys(this.events).filter(function(o){return o.split("(")[0]===n});return a.length===0?Qi.throwArgumentError("no matching event","name",n):a.length>1&&Qi.throwArgumentError("multiple matching events","name",n),this.events[a[0]]}var s=this.events[nf.EventFragment.fromString(e).format()];return s||Qi.throwArgumentError("no matching event","signature",e),s},t.prototype.getError=function(e){if((0,qi.isHexString)(e)){var r=(0,Na.getStatic)(this.constructor,"getSighash");for(var i in this.errors){var n=this.errors[i];if(e===r(n))return this.errors[i]}Qi.throwArgumentError("no matching error","sighash",e)}if(e.indexOf("(")===-1){var a=e.trim(),s=Object.keys(this.errors).filter(function(c){return c.split("(")[0]===a});return s.length===0?Qi.throwArgumentError("no matching error","name",a):s.length>1&&Qi.throwArgumentError("multiple matching errors","name",a),this.errors[s[0]]}var o=this.errors[nf.FunctionFragment.fromString(e).format()];return o||Qi.throwArgumentError("no matching error","signature",e),o},t.prototype.getSighash=function(e){if(typeof e=="string")try{e=this.getFunction(e)}catch(r){try{e=this.getError(e)}catch{throw r}}return(0,Na.getStatic)(this.constructor,"getSighash")(e)},t.prototype.getEventTopic=function(e){return typeof e=="string"&&(e=this.getEvent(e)),(0,Na.getStatic)(this.constructor,"getEventTopic")(e)},t.prototype._decodeParams=function(e,r){return this._abiCoder.decode(e,r)},t.prototype._encodeParams=function(e,r){return this._abiCoder.encode(e,r)},t.prototype.encodeDeploy=function(e){return this._encodeParams(this.deploy.inputs,e||[])},t.prototype.decodeErrorResult=function(e,r){typeof e=="string"&&(e=this.getError(e));var i=(0,qi.arrayify)(r);return(0,qi.hexlify)(i.slice(0,4))!==this.getSighash(e)&&Qi.throwArgumentError("data signature does not match error "+e.name+".","data",(0,qi.hexlify)(i)),this._decodeParams(e.inputs,i.slice(4))},t.prototype.encodeErrorResult=function(e,r){return typeof e=="string"&&(e=this.getError(e)),(0,qi.hexlify)((0,qi.concat)([this.getSighash(e),this._encodeParams(e.inputs,r||[])]))},t.prototype.decodeFunctionData=function(e,r){typeof e=="string"&&(e=this.getFunction(e));var i=(0,qi.arrayify)(r);return(0,qi.hexlify)(i.slice(0,4))!==this.getSighash(e)&&Qi.throwArgumentError("data signature does not match function "+e.name+".","data",(0,qi.hexlify)(i)),this._decodeParams(e.inputs,i.slice(4))},t.prototype.encodeFunctionData=function(e,r){return typeof e=="string"&&(e=this.getFunction(e)),(0,qi.hexlify)((0,qi.concat)([this.getSighash(e),this._encodeParams(e.inputs,r||[])]))},t.prototype.decodeFunctionResult=function(e,r){typeof e=="string"&&(e=this.getFunction(e));var i=(0,qi.arrayify)(r),n=null,a="",s=null,o=null,c=null;switch(i.length%this._abiCoder._getWordSize()){case 0:try{return this._abiCoder.decode(e.outputs,i)}catch{}break;case 4:{var u=(0,qi.hexlify)(i.slice(0,4)),f=YOe[u];if(f)s=this._abiCoder.decode(f.inputs,i.slice(4)),o=f.name,c=f.signature,f.reason&&(n=s[0]),o==="Error"?a="; VM Exception while processing transaction: reverted with reason string "+JSON.stringify(s[0]):o==="Panic"&&(a="; VM Exception while processing transaction: reverted with panic code "+s[0]);else try{var d=this.getError(u);s=this._abiCoder.decode(d.inputs,i.slice(4)),o=d.name,c=d.format()}catch{}break}}return Qi.throwError("call revert exception"+a,j5.Logger.errors.CALL_EXCEPTION,{method:e.format(),data:(0,qi.hexlify)(r),errorArgs:s,errorName:o,errorSignature:c,reason:n})},t.prototype.encodeFunctionResult=function(e,r){return typeof e=="string"&&(e=this.getFunction(e)),(0,qi.hexlify)(this._abiCoder.encode(e.outputs,r||[]))},t.prototype.encodeFilterTopics=function(e,r){var i=this;typeof e=="string"&&(e=this.getEvent(e)),r.length>e.inputs.length&&Qi.throwError("too many arguments for "+e.format(),j5.Logger.errors.UNEXPECTED_ARGUMENT,{argument:"values",value:r});var n=[];e.anonymous||n.push(this.getEventTopic(e));var a=function(s,o){return s.type==="string"?(0,U5.id)(o):s.type==="bytes"?(0,JK.keccak256)((0,qi.hexlify)(o)):(s.type==="bool"&&typeof o=="boolean"&&(o=o?"0x01":"0x00"),s.type.match(/^u?int/)&&(o=GK.BigNumber.from(o).toHexString()),s.type==="address"&&i._abiCoder.encode(["address"],[o]),(0,qi.hexZeroPad)((0,qi.hexlify)(o),32))};for(r.forEach(function(s,o){var c=e.inputs[o];if(!c.indexed){s!=null&&Qi.throwArgumentError("cannot filter non-indexed parameters; must be null","contract."+c.name,s);return}s==null?n.push(null):c.baseType==="array"||c.baseType==="tuple"?Qi.throwArgumentError("filtering with tuples or arrays not supported","contract."+c.name,s):Array.isArray(s)?n.push(s.map(function(u){return a(c,u)})):n.push(a(c,s))});n.length&&n[n.length-1]===null;)n.pop();return n},t.prototype.encodeEventLog=function(e,r){var i=this;typeof e=="string"&&(e=this.getEvent(e));var n=[],a=[],s=[];return e.anonymous||n.push(this.getEventTopic(e)),r.length!==e.inputs.length&&Qi.throwArgumentError("event arguments/values mismatch","values",r),e.inputs.forEach(function(o,c){var u=r[c];if(o.indexed)if(o.type==="string")n.push((0,U5.id)(u));else if(o.type==="bytes")n.push((0,JK.keccak256)(u));else{if(o.baseType==="tuple"||o.baseType==="array")throw new Error("not implemented");n.push(i._abiCoder.encode([o.type],[u]))}else a.push(o),s.push(u)}),{data:this._abiCoder.encode(a,s),topics:n}},t.prototype.decodeEventLog=function(e,r,i){if(typeof e=="string"&&(e=this.getEvent(e)),i!=null&&!e.anonymous){var n=this.getEventTopic(e);(!(0,qi.isHexString)(i[0],32)||i[0].toLowerCase()!==n)&&Qi.throwError("fragment/topic mismatch",j5.Logger.errors.INVALID_ARGUMENT,{argument:"topics[0]",expected:n,value:i[0]}),i=i.slice(1)}var a=[],s=[],o=[];e.inputs.forEach(function(I,L){I.indexed?I.type==="string"||I.type==="bytes"||I.baseType==="tuple"||I.baseType==="array"?(a.push(nf.ParamType.fromObject({type:"bytes32",name:I.name})),o.push(!0)):(a.push(I),o.push(!1)):(s.push(I),o.push(!1))});var c=i!=null?this._abiCoder.decode(a,(0,qi.concat)(i)):null,u=this._abiCoder.decode(s,r,!0),f=[],d=0,p=0;e.inputs.forEach(function(I,L){if(I.indexed)if(c==null)f[L]=new fR({_isIndexed:!0,hash:null});else if(o[L])f[L]=new fR({_isIndexed:!0,hash:c[p++]});else try{f[L]=c[p++]}catch(re){f[L]=re}else try{f[L]=u[d++]}catch(re){f[L]=re}if(I.name&&f[I.name]==null){var U=f[L];U instanceof Error?Object.defineProperty(f,I.name,{enumerable:!0,get:function(){throw XK("property "+JSON.stringify(I.name),U)}}):f[I.name]=U}});for(var b=function(I){var L=f[I];L instanceof Error&&Object.defineProperty(f,I,{enumerable:!0,get:function(){throw XK("index "+I,L)}})},T=0;T{"use strict";Object.defineProperty(ti,"__esModule",{value:!0});ti.TransactionDescription=ti.LogDescription=ti.checkResultErrors=ti.Indexed=ti.Interface=ti.defaultAbiCoder=ti.AbiCoder=ti.FormatTypes=ti.ParamType=ti.FunctionFragment=ti.Fragment=ti.EventFragment=ti.ErrorFragment=ti.ConstructorFragment=void 0;var K1=b5();Object.defineProperty(ti,"ConstructorFragment",{enumerable:!0,get:function(){return K1.ConstructorFragment}});Object.defineProperty(ti,"ErrorFragment",{enumerable:!0,get:function(){return K1.ErrorFragment}});Object.defineProperty(ti,"EventFragment",{enumerable:!0,get:function(){return K1.EventFragment}});Object.defineProperty(ti,"FormatTypes",{enumerable:!0,get:function(){return K1.FormatTypes}});Object.defineProperty(ti,"Fragment",{enumerable:!0,get:function(){return K1.Fragment}});Object.defineProperty(ti,"FunctionFragment",{enumerable:!0,get:function(){return K1.FunctionFragment}});Object.defineProperty(ti,"ParamType",{enumerable:!0,get:function(){return K1.ParamType}});var QK=tR();Object.defineProperty(ti,"AbiCoder",{enumerable:!0,get:function(){return QK.AbiCoder}});Object.defineProperty(ti,"defaultAbiCoder",{enumerable:!0,get:function(){return QK.defaultAbiCoder}});var C4=$K();Object.defineProperty(ti,"checkResultErrors",{enumerable:!0,get:function(){return C4.checkResultErrors}});Object.defineProperty(ti,"Indexed",{enumerable:!0,get:function(){return C4.Indexed}});Object.defineProperty(ti,"Interface",{enumerable:!0,get:function(){return C4.Interface}});Object.defineProperty(ti,"LogDescription",{enumerable:!0,get:function(){return C4.LogDescription}});Object.defineProperty(ti,"TransactionDescription",{enumerable:!0,get:function(){return C4.TransactionDescription}})});var YK=x(H5=>{"use strict";Object.defineProperty(H5,"__esModule",{value:!0});H5.version=void 0;H5.version="abstract-provider/5.7.0"});var mg=x(ca=>{"use strict";var G5=ca&&ca.__extends||function(){var t=function(e,r){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var a in n)Object.prototype.hasOwnProperty.call(n,a)&&(i[a]=n[a])},t(e,r)};return function(e,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");t(e,r);function i(){this.constructor=e}e.prototype=r===null?Object.create(r):(i.prototype=r.prototype,new i)}}(),tRe=ca&&ca.__awaiter||function(t,e,r,i){function n(a){return a instanceof r?a:new r(function(s){s(a)})}return new(r||(r=Promise))(function(a,s){function o(f){try{u(i.next(f))}catch(d){s(d)}}function c(f){try{u(i.throw(f))}catch(d){s(d)}}function u(f){f.done?a(f.value):n(f.value).then(o,c)}u((i=i.apply(t,e||[])).next())})},rRe=ca&&ca.__generator||function(t,e){var r={label:0,sent:function(){if(a[0]&1)throw a[1];return a[1]},trys:[],ops:[]},i,n,a,s;return s={next:o(0),throw:o(1),return:o(2)},typeof Symbol=="function"&&(s[Symbol.iterator]=function(){return this}),s;function o(u){return function(f){return c([u,f])}}function c(u){if(i)throw new TypeError("Generator is already executing.");for(;r;)try{if(i=1,n&&(a=u[0]&2?n.return:u[0]?n.throw||((a=n.return)&&a.call(n),0):n.next)&&!(a=a.call(n,u[1])).done)return a;switch(n=0,a&&(u=[u[0]&2,a.value]),u[0]){case 0:case 1:a=u;break;case 4:return r.label++,{value:u[1],done:!1};case 5:r.label++,n=u[1],u=[0];continue;case 7:u=r.ops.pop(),r.trys.pop();continue;default:if(a=r.trys,!(a=a.length>0&&a[a.length-1])&&(u[0]===6||u[0]===2)){r=0;continue}if(u[0]===3&&(!a||u[1]>a[0]&&u[1]{"use strict";Object.defineProperty(X5,"__esModule",{value:!0});X5.version=void 0;X5.version="abstract-signer/5.7.0"});var N4=x(fu=>{"use strict";var dRe=fu&&fu.__extends||function(){var t=function(e,r){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var a in n)Object.prototype.hasOwnProperty.call(n,a)&&(i[a]=n[a])},t(e,r)};return function(e,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");t(e,r);function i(){this.constructor=e}e.prototype=r===null?Object.create(r):(i.prototype=r.prototype,new i)}}(),uc=fu&&fu.__awaiter||function(t,e,r,i){function n(a){return a instanceof r?a:new r(function(s){s(a)})}return new(r||(r=Promise))(function(a,s){function o(f){try{u(i.next(f))}catch(d){s(d)}}function c(f){try{u(i.throw(f))}catch(d){s(d)}}function u(f){f.done?a(f.value):n(f.value).then(o,c)}u((i=i.apply(t,e||[])).next())})},cc=fu&&fu.__generator||function(t,e){var r={label:0,sent:function(){if(a[0]&1)throw a[1];return a[1]},trys:[],ops:[]},i,n,a,s;return s={next:o(0),throw:o(1),return:o(2)},typeof Symbol=="function"&&(s[Symbol.iterator]=function(){return this}),s;function o(u){return function(f){return c([u,f])}}function c(u){if(i)throw new TypeError("Generator is already executing.");for(;r;)try{if(i=1,n&&(a=u[0]&2?n.return:u[0]?n.throw||((a=n.return)&&a.call(n),0):n.next)&&!(a=a.call(n,u[1])).done)return a;switch(n=0,a&&(u=[u[0]&2,a.value]),u[0]){case 0:case 1:a=u;break;case 4:return r.label++,{value:u[1],done:!1};case 5:r.label++,n=u[1],u=[0];continue;case 7:u=r.ops.pop(),r.trys.pop();continue;default:if(a=r.trys,!(a=a.length>0&&a[a.length-1])&&(u[0]===6||u[0]===2)){r=0;continue}if(u[0]===3&&(!a||u[1]>a[0]&&u[1]=0)throw c;return lu.throwError("cannot estimate gas; transaction may fail or may require manual gas limit",af.Logger.errors.UNPREDICTABLE_GAS_LIMIT,{error:c,tx:r})})),r.chainId==null?r.chainId=this.getChainId():r.chainId=Promise.all([Promise.resolve(r.chainId),this.getChainId()]).then(function(c){return c[1]!==0&&c[0]!==c[1]&&lu.throwArgumentError("chainId address mismatch","transaction",e),c[0]}),[4,(0,h0.resolveProperties)(r)];case 6:return[2,o.sent()]}})})},t.prototype._checkProvider=function(e){this.provider||lu.throwError("missing provider",af.Logger.errors.UNSUPPORTED_OPERATION,{operation:e||"_checkProvider"})},t.isSigner=function(e){return!!(e&&e._isSigner)},t}();fu.Signer=tW;var hRe=function(t){dRe(e,t);function e(r,i){var n=t.call(this)||this;return(0,h0.defineReadOnly)(n,"address",r),(0,h0.defineReadOnly)(n,"provider",i||null),n}return e.prototype.getAddress=function(){return Promise.resolve(this.address)},e.prototype._fail=function(r,i){return Promise.resolve().then(function(){lu.throwError(r,af.Logger.errors.UNSUPPORTED_OPERATION,{operation:i})})},e.prototype.signMessage=function(r){return this._fail("VoidSigner cannot sign messages","signMessage")},e.prototype.signTransaction=function(r){return this._fail("VoidSigner cannot sign transactions","signTransaction")},e.prototype._signTypedData=function(r,i,n){return this._fail("VoidSigner cannot sign typed data","signTypedData")},e.prototype.connect=function(r){return new e(this.address,r)},e}(tW);fu.VoidSigner=hRe});var rW=x((BAt,mRe)=>{mRe.exports={name:"elliptic",version:"6.5.4",description:"EC cryptography",main:"lib/elliptic.js",files:["lib"],scripts:{lint:"eslint lib test","lint:fix":"npm run lint -- --fix",unit:"istanbul test _mocha --reporter=spec test/index.js",test:"npm run lint && npm run unit",version:"grunt dist && git add dist/"},repository:{type:"git",url:"git@github.com:indutny/elliptic"},keywords:["EC","Elliptic","curve","Cryptography"],author:"Fedor Indutny ",license:"MIT",bugs:{url:"https://github.com/indutny/elliptic/issues"},homepage:"https://github.com/indutny/elliptic",devDependencies:{brfs:"^2.0.2",coveralls:"^3.1.0",eslint:"^7.6.0",grunt:"^1.2.1","grunt-browserify":"^5.3.0","grunt-cli":"^1.3.2","grunt-contrib-connect":"^3.0.0","grunt-contrib-copy":"^1.0.0","grunt-contrib-uglify":"^5.0.0","grunt-mocha-istanbul":"^5.0.2","grunt-saucelabs":"^9.0.1",istanbul:"^0.4.5",mocha:"^8.0.1"},dependencies:{"bn.js":"^4.11.9",brorand:"^1.1.0","hash.js":"^1.0.0","hmac-drbg":"^1.0.1",inherits:"^2.0.4","minimalistic-assert":"^1.0.1","minimalistic-crypto-utils":"^1.0.1"}}});var bd=x((iW,mR)=>{(function(t,e){"use strict";function r(R,g){if(!R)throw new Error(g||"Assertion failed")}function i(R,g){R.super_=g;var v=function(){};v.prototype=g.prototype,R.prototype=new v,R.prototype.constructor=R}function n(R,g,v){if(n.isBN(R))return R;this.negative=0,this.words=null,this.length=0,this.red=null,R!==null&&((g==="le"||g==="be")&&(v=g,g=10),this._init(R||0,g||10,v||"be"))}typeof t=="object"?t.exports=n:e.BN=n,n.BN=n,n.wordSize=26;var a;try{typeof window<"u"&&typeof window.Buffer<"u"?a=window.Buffer:a=require("buffer").Buffer}catch{}n.isBN=function(g){return g instanceof n?!0:g!==null&&typeof g=="object"&&g.constructor.wordSize===n.wordSize&&Array.isArray(g.words)},n.max=function(g,v){return g.cmp(v)>0?g:v},n.min=function(g,v){return g.cmp(v)<0?g:v},n.prototype._init=function(g,v,w){if(typeof g=="number")return this._initNumber(g,v,w);if(typeof g=="object")return this._initArray(g,v,w);v==="hex"&&(v=16),r(v===(v|0)&&v>=2&&v<=36),g=g.toString().replace(/\s+/g,"");var y=0;g[0]==="-"&&(y++,this.negative=1),y=0;y-=3)P=g[y]|g[y-1]<<8|g[y-2]<<16,this.words[_]|=P<>>26-M&67108863,M+=24,M>=26&&(M-=26,_++);else if(w==="le")for(y=0,_=0;y>>26-M&67108863,M+=24,M>=26&&(M-=26,_++);return this.strip()};function s(R,g){var v=R.charCodeAt(g);return v>=65&&v<=70?v-55:v>=97&&v<=102?v-87:v-48&15}function o(R,g,v){var w=s(R,v);return v-1>=g&&(w|=s(R,v-1)<<4),w}n.prototype._parseHex=function(g,v,w){this.length=Math.ceil((g.length-v)/6),this.words=new Array(this.length);for(var y=0;y=v;y-=2)M=o(g,v,y)<<_,this.words[P]|=M&67108863,_>=18?(_-=18,P+=1,this.words[P]|=M>>>26):_+=8;else{var E=g.length-v;for(y=E%2===0?v+1:v;y=18?(_-=18,P+=1,this.words[P]|=M>>>26):_+=8}this.strip()};function c(R,g,v,w){for(var y=0,_=Math.min(R.length,v),P=g;P<_;P++){var M=R.charCodeAt(P)-48;y*=w,M>=49?y+=M-49+10:M>=17?y+=M-17+10:y+=M}return y}n.prototype._parseBase=function(g,v,w){this.words=[0],this.length=1;for(var y=0,_=1;_<=67108863;_*=v)y++;y--,_=_/v|0;for(var P=g.length-w,M=P%y,E=Math.min(P,P-M)+w,h=0,A=w;A1&&this.words[this.length-1]===0;)this.length--;return this._normSign()},n.prototype._normSign=function(){return this.length===1&&this.words[0]===0&&(this.negative=0),this},n.prototype.inspect=function(){return(this.red?""};var u=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],f=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],d=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];n.prototype.toString=function(g,v){g=g||10,v=v|0||1;var w;if(g===16||g==="hex"){w="";for(var y=0,_=0,P=0;P>>24-y&16777215,_!==0||P!==this.length-1?w=u[6-E.length]+E+w:w=E+w,y+=2,y>=26&&(y-=26,P--)}for(_!==0&&(w=_.toString(16)+w);w.length%v!==0;)w="0"+w;return this.negative!==0&&(w="-"+w),w}if(g===(g|0)&&g>=2&&g<=36){var h=f[g],A=d[g];w="";var F=this.clone();for(F.negative=0;!F.isZero();){var O=F.modn(A).toString(g);F=F.idivn(A),F.isZero()?w=O+w:w=u[h-O.length]+O+w}for(this.isZero()&&(w="0"+w);w.length%v!==0;)w="0"+w;return this.negative!==0&&(w="-"+w),w}r(!1,"Base should be between 2 and 36")},n.prototype.toNumber=function(){var g=this.words[0];return this.length===2?g+=this.words[1]*67108864:this.length===3&&this.words[2]===1?g+=4503599627370496+this.words[1]*67108864:this.length>2&&r(!1,"Number can only safely store up to 53 bits"),this.negative!==0?-g:g},n.prototype.toJSON=function(){return this.toString(16)},n.prototype.toBuffer=function(g,v){return r(typeof a<"u"),this.toArrayLike(a,g,v)},n.prototype.toArray=function(g,v){return this.toArrayLike(Array,g,v)},n.prototype.toArrayLike=function(g,v,w){var y=this.byteLength(),_=w||Math.max(1,y);r(y<=_,"byte array longer than desired length"),r(_>0,"Requested array length <= 0"),this.strip();var P=v==="le",M=new g(_),E,h,A=this.clone();if(P){for(h=0;!A.isZero();h++)E=A.andln(255),A.iushrn(8),M[h]=E;for(;h<_;h++)M[h]=0}else{for(h=0;h<_-y;h++)M[h]=0;for(h=0;!A.isZero();h++)E=A.andln(255),A.iushrn(8),M[_-h-1]=E}return M},Math.clz32?n.prototype._countBits=function(g){return 32-Math.clz32(g)}:n.prototype._countBits=function(g){var v=g,w=0;return v>=4096&&(w+=13,v>>>=13),v>=64&&(w+=7,v>>>=7),v>=8&&(w+=4,v>>>=4),v>=2&&(w+=2,v>>>=2),w+v},n.prototype._zeroBits=function(g){if(g===0)return 26;var v=g,w=0;return(v&8191)===0&&(w+=13,v>>>=13),(v&127)===0&&(w+=7,v>>>=7),(v&15)===0&&(w+=4,v>>>=4),(v&3)===0&&(w+=2,v>>>=2),(v&1)===0&&w++,w},n.prototype.bitLength=function(){var g=this.words[this.length-1],v=this._countBits(g);return(this.length-1)*26+v};function p(R){for(var g=new Array(R.bitLength()),v=0;v>>y}return g}n.prototype.zeroBits=function(){if(this.isZero())return 0;for(var g=0,v=0;vg.length?this.clone().ior(g):g.clone().ior(this)},n.prototype.uor=function(g){return this.length>g.length?this.clone().iuor(g):g.clone().iuor(this)},n.prototype.iuand=function(g){var v;this.length>g.length?v=g:v=this;for(var w=0;wg.length?this.clone().iand(g):g.clone().iand(this)},n.prototype.uand=function(g){return this.length>g.length?this.clone().iuand(g):g.clone().iuand(this)},n.prototype.iuxor=function(g){var v,w;this.length>g.length?(v=this,w=g):(v=g,w=this);for(var y=0;yg.length?this.clone().ixor(g):g.clone().ixor(this)},n.prototype.uxor=function(g){return this.length>g.length?this.clone().iuxor(g):g.clone().iuxor(this)},n.prototype.inotn=function(g){r(typeof g=="number"&&g>=0);var v=Math.ceil(g/26)|0,w=g%26;this._expand(v),w>0&&v--;for(var y=0;y0&&(this.words[y]=~this.words[y]&67108863>>26-w),this.strip()},n.prototype.notn=function(g){return this.clone().inotn(g)},n.prototype.setn=function(g,v){r(typeof g=="number"&&g>=0);var w=g/26|0,y=g%26;return this._expand(w+1),v?this.words[w]=this.words[w]|1<g.length?(w=this,y=g):(w=g,y=this);for(var _=0,P=0;P>>26;for(;_!==0&&P>>26;if(this.length=w.length,_!==0)this.words[this.length]=_,this.length++;else if(w!==this)for(;Pg.length?this.clone().iadd(g):g.clone().iadd(this)},n.prototype.isub=function(g){if(g.negative!==0){g.negative=0;var v=this.iadd(g);return g.negative=1,v._normSign()}else if(this.negative!==0)return this.negative=0,this.iadd(g),this.negative=1,this._normSign();var w=this.cmp(g);if(w===0)return this.negative=0,this.length=1,this.words[0]=0,this;var y,_;w>0?(y=this,_=g):(y=g,_=this);for(var P=0,M=0;M<_.length;M++)v=(y.words[M]|0)-(_.words[M]|0)+P,P=v>>26,this.words[M]=v&67108863;for(;P!==0&&M>26,this.words[M]=v&67108863;if(P===0&&M>>26,F=E&67108863,O=Math.min(h,g.length-1),N=Math.max(0,h-R.length+1);N<=O;N++){var xe=h-N|0;y=R.words[xe]|0,_=g.words[N]|0,P=y*_+F,A+=P/67108864|0,F=P&67108863}v.words[h]=F|0,E=A|0}return E!==0?v.words[h]=E|0:v.length--,v.strip()}var T=function(g,v,w){var y=g.words,_=v.words,P=w.words,M=0,E,h,A,F=y[0]|0,O=F&8191,N=F>>>13,xe=y[1]|0,q=xe&8191,fe=xe>>>13,Te=y[2]|0,_e=Te&8191,H=Te>>>13,Y=y[3]|0,Q=Y&8191,se=Y>>>13,Se=y[4]|0,ue=Se&8191,he=Se>>>13,Oe=y[5]|0,ye=Oe&8191,we=Oe>>>13,Ne=y[6]|0,Ae=Ne&8191,je=Ne>>>13,j=y[7]|0,W=j&8191,C=j>>>13,D=y[8]|0,G=D&8191,X=D>>>13,le=y[9]|0,ie=le&8191,de=le>>>13,Be=_[0]|0,Pe=Be&8191,De=Be>>>13,et=_[1]|0,Le=et&8191,Ve=et>>>13,Mr=_[2]|0,rt=Mr&8191,at=Mr>>>13,Ki=_[3]|0,ft=Ki&8191,pt=Ki>>>13,Aa=_[4]|0,ht=Aa&8191,dt=Aa>>>13,Pa=_[5]|0,mt=Pa&8191,gt=Pa>>>13,jn=_[6]|0,yt=jn&8191,ct=jn>>>13,Oa=_[7]|0,vt=Oa&8191,bt=Oa>>>13,Ra=_[8]|0,_t=Ra&8191,wt=Ra>>>13,Ma=_[9]|0,xt=Ma&8191,lt=Ma>>>13;w.negative=g.negative^v.negative,w.length=19,E=Math.imul(O,Pe),h=Math.imul(O,De),h=h+Math.imul(N,Pe)|0,A=Math.imul(N,De);var k=(M+E|0)+((h&8191)<<13)|0;M=(A+(h>>>13)|0)+(k>>>26)|0,k&=67108863,E=Math.imul(q,Pe),h=Math.imul(q,De),h=h+Math.imul(fe,Pe)|0,A=Math.imul(fe,De),E=E+Math.imul(O,Le)|0,h=h+Math.imul(O,Ve)|0,h=h+Math.imul(N,Le)|0,A=A+Math.imul(N,Ve)|0;var V=(M+E|0)+((h&8191)<<13)|0;M=(A+(h>>>13)|0)+(V>>>26)|0,V&=67108863,E=Math.imul(_e,Pe),h=Math.imul(_e,De),h=h+Math.imul(H,Pe)|0,A=Math.imul(H,De),E=E+Math.imul(q,Le)|0,h=h+Math.imul(q,Ve)|0,h=h+Math.imul(fe,Le)|0,A=A+Math.imul(fe,Ve)|0,E=E+Math.imul(O,rt)|0,h=h+Math.imul(O,at)|0,h=h+Math.imul(N,rt)|0,A=A+Math.imul(N,at)|0;var z=(M+E|0)+((h&8191)<<13)|0;M=(A+(h>>>13)|0)+(z>>>26)|0,z&=67108863,E=Math.imul(Q,Pe),h=Math.imul(Q,De),h=h+Math.imul(se,Pe)|0,A=Math.imul(se,De),E=E+Math.imul(_e,Le)|0,h=h+Math.imul(_e,Ve)|0,h=h+Math.imul(H,Le)|0,A=A+Math.imul(H,Ve)|0,E=E+Math.imul(q,rt)|0,h=h+Math.imul(q,at)|0,h=h+Math.imul(fe,rt)|0,A=A+Math.imul(fe,at)|0,E=E+Math.imul(O,ft)|0,h=h+Math.imul(O,pt)|0,h=h+Math.imul(N,ft)|0,A=A+Math.imul(N,pt)|0;var J=(M+E|0)+((h&8191)<<13)|0;M=(A+(h>>>13)|0)+(J>>>26)|0,J&=67108863,E=Math.imul(ue,Pe),h=Math.imul(ue,De),h=h+Math.imul(he,Pe)|0,A=Math.imul(he,De),E=E+Math.imul(Q,Le)|0,h=h+Math.imul(Q,Ve)|0,h=h+Math.imul(se,Le)|0,A=A+Math.imul(se,Ve)|0,E=E+Math.imul(_e,rt)|0,h=h+Math.imul(_e,at)|0,h=h+Math.imul(H,rt)|0,A=A+Math.imul(H,at)|0,E=E+Math.imul(q,ft)|0,h=h+Math.imul(q,pt)|0,h=h+Math.imul(fe,ft)|0,A=A+Math.imul(fe,pt)|0,E=E+Math.imul(O,ht)|0,h=h+Math.imul(O,dt)|0,h=h+Math.imul(N,ht)|0,A=A+Math.imul(N,dt)|0;var Z=(M+E|0)+((h&8191)<<13)|0;M=(A+(h>>>13)|0)+(Z>>>26)|0,Z&=67108863,E=Math.imul(ye,Pe),h=Math.imul(ye,De),h=h+Math.imul(we,Pe)|0,A=Math.imul(we,De),E=E+Math.imul(ue,Le)|0,h=h+Math.imul(ue,Ve)|0,h=h+Math.imul(he,Le)|0,A=A+Math.imul(he,Ve)|0,E=E+Math.imul(Q,rt)|0,h=h+Math.imul(Q,at)|0,h=h+Math.imul(se,rt)|0,A=A+Math.imul(se,at)|0,E=E+Math.imul(_e,ft)|0,h=h+Math.imul(_e,pt)|0,h=h+Math.imul(H,ft)|0,A=A+Math.imul(H,pt)|0,E=E+Math.imul(q,ht)|0,h=h+Math.imul(q,dt)|0,h=h+Math.imul(fe,ht)|0,A=A+Math.imul(fe,dt)|0,E=E+Math.imul(O,mt)|0,h=h+Math.imul(O,gt)|0,h=h+Math.imul(N,mt)|0,A=A+Math.imul(N,gt)|0;var $=(M+E|0)+((h&8191)<<13)|0;M=(A+(h>>>13)|0)+($>>>26)|0,$&=67108863,E=Math.imul(Ae,Pe),h=Math.imul(Ae,De),h=h+Math.imul(je,Pe)|0,A=Math.imul(je,De),E=E+Math.imul(ye,Le)|0,h=h+Math.imul(ye,Ve)|0,h=h+Math.imul(we,Le)|0,A=A+Math.imul(we,Ve)|0,E=E+Math.imul(ue,rt)|0,h=h+Math.imul(ue,at)|0,h=h+Math.imul(he,rt)|0,A=A+Math.imul(he,at)|0,E=E+Math.imul(Q,ft)|0,h=h+Math.imul(Q,pt)|0,h=h+Math.imul(se,ft)|0,A=A+Math.imul(se,pt)|0,E=E+Math.imul(_e,ht)|0,h=h+Math.imul(_e,dt)|0,h=h+Math.imul(H,ht)|0,A=A+Math.imul(H,dt)|0,E=E+Math.imul(q,mt)|0,h=h+Math.imul(q,gt)|0,h=h+Math.imul(fe,mt)|0,A=A+Math.imul(fe,gt)|0,E=E+Math.imul(O,yt)|0,h=h+Math.imul(O,ct)|0,h=h+Math.imul(N,yt)|0,A=A+Math.imul(N,ct)|0;var pe=(M+E|0)+((h&8191)<<13)|0;M=(A+(h>>>13)|0)+(pe>>>26)|0,pe&=67108863,E=Math.imul(W,Pe),h=Math.imul(W,De),h=h+Math.imul(C,Pe)|0,A=Math.imul(C,De),E=E+Math.imul(Ae,Le)|0,h=h+Math.imul(Ae,Ve)|0,h=h+Math.imul(je,Le)|0,A=A+Math.imul(je,Ve)|0,E=E+Math.imul(ye,rt)|0,h=h+Math.imul(ye,at)|0,h=h+Math.imul(we,rt)|0,A=A+Math.imul(we,at)|0,E=E+Math.imul(ue,ft)|0,h=h+Math.imul(ue,pt)|0,h=h+Math.imul(he,ft)|0,A=A+Math.imul(he,pt)|0,E=E+Math.imul(Q,ht)|0,h=h+Math.imul(Q,dt)|0,h=h+Math.imul(se,ht)|0,A=A+Math.imul(se,dt)|0,E=E+Math.imul(_e,mt)|0,h=h+Math.imul(_e,gt)|0,h=h+Math.imul(H,mt)|0,A=A+Math.imul(H,gt)|0,E=E+Math.imul(q,yt)|0,h=h+Math.imul(q,ct)|0,h=h+Math.imul(fe,yt)|0,A=A+Math.imul(fe,ct)|0,E=E+Math.imul(O,vt)|0,h=h+Math.imul(O,bt)|0,h=h+Math.imul(N,vt)|0,A=A+Math.imul(N,bt)|0;var Ee=(M+E|0)+((h&8191)<<13)|0;M=(A+(h>>>13)|0)+(Ee>>>26)|0,Ee&=67108863,E=Math.imul(G,Pe),h=Math.imul(G,De),h=h+Math.imul(X,Pe)|0,A=Math.imul(X,De),E=E+Math.imul(W,Le)|0,h=h+Math.imul(W,Ve)|0,h=h+Math.imul(C,Le)|0,A=A+Math.imul(C,Ve)|0,E=E+Math.imul(Ae,rt)|0,h=h+Math.imul(Ae,at)|0,h=h+Math.imul(je,rt)|0,A=A+Math.imul(je,at)|0,E=E+Math.imul(ye,ft)|0,h=h+Math.imul(ye,pt)|0,h=h+Math.imul(we,ft)|0,A=A+Math.imul(we,pt)|0,E=E+Math.imul(ue,ht)|0,h=h+Math.imul(ue,dt)|0,h=h+Math.imul(he,ht)|0,A=A+Math.imul(he,dt)|0,E=E+Math.imul(Q,mt)|0,h=h+Math.imul(Q,gt)|0,h=h+Math.imul(se,mt)|0,A=A+Math.imul(se,gt)|0,E=E+Math.imul(_e,yt)|0,h=h+Math.imul(_e,ct)|0,h=h+Math.imul(H,yt)|0,A=A+Math.imul(H,ct)|0,E=E+Math.imul(q,vt)|0,h=h+Math.imul(q,bt)|0,h=h+Math.imul(fe,vt)|0,A=A+Math.imul(fe,bt)|0,E=E+Math.imul(O,_t)|0,h=h+Math.imul(O,wt)|0,h=h+Math.imul(N,_t)|0,A=A+Math.imul(N,wt)|0;var Ie=(M+E|0)+((h&8191)<<13)|0;M=(A+(h>>>13)|0)+(Ie>>>26)|0,Ie&=67108863,E=Math.imul(ie,Pe),h=Math.imul(ie,De),h=h+Math.imul(de,Pe)|0,A=Math.imul(de,De),E=E+Math.imul(G,Le)|0,h=h+Math.imul(G,Ve)|0,h=h+Math.imul(X,Le)|0,A=A+Math.imul(X,Ve)|0,E=E+Math.imul(W,rt)|0,h=h+Math.imul(W,at)|0,h=h+Math.imul(C,rt)|0,A=A+Math.imul(C,at)|0,E=E+Math.imul(Ae,ft)|0,h=h+Math.imul(Ae,pt)|0,h=h+Math.imul(je,ft)|0,A=A+Math.imul(je,pt)|0,E=E+Math.imul(ye,ht)|0,h=h+Math.imul(ye,dt)|0,h=h+Math.imul(we,ht)|0,A=A+Math.imul(we,dt)|0,E=E+Math.imul(ue,mt)|0,h=h+Math.imul(ue,gt)|0,h=h+Math.imul(he,mt)|0,A=A+Math.imul(he,gt)|0,E=E+Math.imul(Q,yt)|0,h=h+Math.imul(Q,ct)|0,h=h+Math.imul(se,yt)|0,A=A+Math.imul(se,ct)|0,E=E+Math.imul(_e,vt)|0,h=h+Math.imul(_e,bt)|0,h=h+Math.imul(H,vt)|0,A=A+Math.imul(H,bt)|0,E=E+Math.imul(q,_t)|0,h=h+Math.imul(q,wt)|0,h=h+Math.imul(fe,_t)|0,A=A+Math.imul(fe,wt)|0,E=E+Math.imul(O,xt)|0,h=h+Math.imul(O,lt)|0,h=h+Math.imul(N,xt)|0,A=A+Math.imul(N,lt)|0;var Re=(M+E|0)+((h&8191)<<13)|0;M=(A+(h>>>13)|0)+(Re>>>26)|0,Re&=67108863,E=Math.imul(ie,Le),h=Math.imul(ie,Ve),h=h+Math.imul(de,Le)|0,A=Math.imul(de,Ve),E=E+Math.imul(G,rt)|0,h=h+Math.imul(G,at)|0,h=h+Math.imul(X,rt)|0,A=A+Math.imul(X,at)|0,E=E+Math.imul(W,ft)|0,h=h+Math.imul(W,pt)|0,h=h+Math.imul(C,ft)|0,A=A+Math.imul(C,pt)|0,E=E+Math.imul(Ae,ht)|0,h=h+Math.imul(Ae,dt)|0,h=h+Math.imul(je,ht)|0,A=A+Math.imul(je,dt)|0,E=E+Math.imul(ye,mt)|0,h=h+Math.imul(ye,gt)|0,h=h+Math.imul(we,mt)|0,A=A+Math.imul(we,gt)|0,E=E+Math.imul(ue,yt)|0,h=h+Math.imul(ue,ct)|0,h=h+Math.imul(he,yt)|0,A=A+Math.imul(he,ct)|0,E=E+Math.imul(Q,vt)|0,h=h+Math.imul(Q,bt)|0,h=h+Math.imul(se,vt)|0,A=A+Math.imul(se,bt)|0,E=E+Math.imul(_e,_t)|0,h=h+Math.imul(_e,wt)|0,h=h+Math.imul(H,_t)|0,A=A+Math.imul(H,wt)|0,E=E+Math.imul(q,xt)|0,h=h+Math.imul(q,lt)|0,h=h+Math.imul(fe,xt)|0,A=A+Math.imul(fe,lt)|0;var qe=(M+E|0)+((h&8191)<<13)|0;M=(A+(h>>>13)|0)+(qe>>>26)|0,qe&=67108863,E=Math.imul(ie,rt),h=Math.imul(ie,at),h=h+Math.imul(de,rt)|0,A=Math.imul(de,at),E=E+Math.imul(G,ft)|0,h=h+Math.imul(G,pt)|0,h=h+Math.imul(X,ft)|0,A=A+Math.imul(X,pt)|0,E=E+Math.imul(W,ht)|0,h=h+Math.imul(W,dt)|0,h=h+Math.imul(C,ht)|0,A=A+Math.imul(C,dt)|0,E=E+Math.imul(Ae,mt)|0,h=h+Math.imul(Ae,gt)|0,h=h+Math.imul(je,mt)|0,A=A+Math.imul(je,gt)|0,E=E+Math.imul(ye,yt)|0,h=h+Math.imul(ye,ct)|0,h=h+Math.imul(we,yt)|0,A=A+Math.imul(we,ct)|0,E=E+Math.imul(ue,vt)|0,h=h+Math.imul(ue,bt)|0,h=h+Math.imul(he,vt)|0,A=A+Math.imul(he,bt)|0,E=E+Math.imul(Q,_t)|0,h=h+Math.imul(Q,wt)|0,h=h+Math.imul(se,_t)|0,A=A+Math.imul(se,wt)|0,E=E+Math.imul(_e,xt)|0,h=h+Math.imul(_e,lt)|0,h=h+Math.imul(H,xt)|0,A=A+Math.imul(H,lt)|0;var He=(M+E|0)+((h&8191)<<13)|0;M=(A+(h>>>13)|0)+(He>>>26)|0,He&=67108863,E=Math.imul(ie,ft),h=Math.imul(ie,pt),h=h+Math.imul(de,ft)|0,A=Math.imul(de,pt),E=E+Math.imul(G,ht)|0,h=h+Math.imul(G,dt)|0,h=h+Math.imul(X,ht)|0,A=A+Math.imul(X,dt)|0,E=E+Math.imul(W,mt)|0,h=h+Math.imul(W,gt)|0,h=h+Math.imul(C,mt)|0,A=A+Math.imul(C,gt)|0,E=E+Math.imul(Ae,yt)|0,h=h+Math.imul(Ae,ct)|0,h=h+Math.imul(je,yt)|0,A=A+Math.imul(je,ct)|0,E=E+Math.imul(ye,vt)|0,h=h+Math.imul(ye,bt)|0,h=h+Math.imul(we,vt)|0,A=A+Math.imul(we,bt)|0,E=E+Math.imul(ue,_t)|0,h=h+Math.imul(ue,wt)|0,h=h+Math.imul(he,_t)|0,A=A+Math.imul(he,wt)|0,E=E+Math.imul(Q,xt)|0,h=h+Math.imul(Q,lt)|0,h=h+Math.imul(se,xt)|0,A=A+Math.imul(se,lt)|0;var Xe=(M+E|0)+((h&8191)<<13)|0;M=(A+(h>>>13)|0)+(Xe>>>26)|0,Xe&=67108863,E=Math.imul(ie,ht),h=Math.imul(ie,dt),h=h+Math.imul(de,ht)|0,A=Math.imul(de,dt),E=E+Math.imul(G,mt)|0,h=h+Math.imul(G,gt)|0,h=h+Math.imul(X,mt)|0,A=A+Math.imul(X,gt)|0,E=E+Math.imul(W,yt)|0,h=h+Math.imul(W,ct)|0,h=h+Math.imul(C,yt)|0,A=A+Math.imul(C,ct)|0,E=E+Math.imul(Ae,vt)|0,h=h+Math.imul(Ae,bt)|0,h=h+Math.imul(je,vt)|0,A=A+Math.imul(je,bt)|0,E=E+Math.imul(ye,_t)|0,h=h+Math.imul(ye,wt)|0,h=h+Math.imul(we,_t)|0,A=A+Math.imul(we,wt)|0,E=E+Math.imul(ue,xt)|0,h=h+Math.imul(ue,lt)|0,h=h+Math.imul(he,xt)|0,A=A+Math.imul(he,lt)|0;var St=(M+E|0)+((h&8191)<<13)|0;M=(A+(h>>>13)|0)+(St>>>26)|0,St&=67108863,E=Math.imul(ie,mt),h=Math.imul(ie,gt),h=h+Math.imul(de,mt)|0,A=Math.imul(de,gt),E=E+Math.imul(G,yt)|0,h=h+Math.imul(G,ct)|0,h=h+Math.imul(X,yt)|0,A=A+Math.imul(X,ct)|0,E=E+Math.imul(W,vt)|0,h=h+Math.imul(W,bt)|0,h=h+Math.imul(C,vt)|0,A=A+Math.imul(C,bt)|0,E=E+Math.imul(Ae,_t)|0,h=h+Math.imul(Ae,wt)|0,h=h+Math.imul(je,_t)|0,A=A+Math.imul(je,wt)|0,E=E+Math.imul(ye,xt)|0,h=h+Math.imul(ye,lt)|0,h=h+Math.imul(we,xt)|0,A=A+Math.imul(we,lt)|0;var zt=(M+E|0)+((h&8191)<<13)|0;M=(A+(h>>>13)|0)+(zt>>>26)|0,zt&=67108863,E=Math.imul(ie,yt),h=Math.imul(ie,ct),h=h+Math.imul(de,yt)|0,A=Math.imul(de,ct),E=E+Math.imul(G,vt)|0,h=h+Math.imul(G,bt)|0,h=h+Math.imul(X,vt)|0,A=A+Math.imul(X,bt)|0,E=E+Math.imul(W,_t)|0,h=h+Math.imul(W,wt)|0,h=h+Math.imul(C,_t)|0,A=A+Math.imul(C,wt)|0,E=E+Math.imul(Ae,xt)|0,h=h+Math.imul(Ae,lt)|0,h=h+Math.imul(je,xt)|0,A=A+Math.imul(je,lt)|0;var Ct=(M+E|0)+((h&8191)<<13)|0;M=(A+(h>>>13)|0)+(Ct>>>26)|0,Ct&=67108863,E=Math.imul(ie,vt),h=Math.imul(ie,bt),h=h+Math.imul(de,vt)|0,A=Math.imul(de,bt),E=E+Math.imul(G,_t)|0,h=h+Math.imul(G,wt)|0,h=h+Math.imul(X,_t)|0,A=A+Math.imul(X,wt)|0,E=E+Math.imul(W,xt)|0,h=h+Math.imul(W,lt)|0,h=h+Math.imul(C,xt)|0,A=A+Math.imul(C,lt)|0;var ii=(M+E|0)+((h&8191)<<13)|0;M=(A+(h>>>13)|0)+(ii>>>26)|0,ii&=67108863,E=Math.imul(ie,_t),h=Math.imul(ie,wt),h=h+Math.imul(de,_t)|0,A=Math.imul(de,wt),E=E+Math.imul(G,xt)|0,h=h+Math.imul(G,lt)|0,h=h+Math.imul(X,xt)|0,A=A+Math.imul(X,lt)|0;var xr=(M+E|0)+((h&8191)<<13)|0;M=(A+(h>>>13)|0)+(xr>>>26)|0,xr&=67108863,E=Math.imul(ie,xt),h=Math.imul(ie,lt),h=h+Math.imul(de,xt)|0,A=Math.imul(de,lt);var Ni=(M+E|0)+((h&8191)<<13)|0;return M=(A+(h>>>13)|0)+(Ni>>>26)|0,Ni&=67108863,P[0]=k,P[1]=V,P[2]=z,P[3]=J,P[4]=Z,P[5]=$,P[6]=pe,P[7]=Ee,P[8]=Ie,P[9]=Re,P[10]=qe,P[11]=He,P[12]=Xe,P[13]=St,P[14]=zt,P[15]=Ct,P[16]=ii,P[17]=xr,P[18]=Ni,M!==0&&(P[19]=M,w.length++),w};Math.imul||(T=b);function I(R,g,v){v.negative=g.negative^R.negative,v.length=R.length+g.length;for(var w=0,y=0,_=0;_>>26)|0,y+=P>>>26,P&=67108863}v.words[_]=M,w=P,P=y}return w!==0?v.words[_]=w:v.length--,v.strip()}function L(R,g,v){var w=new U;return w.mulp(R,g,v)}n.prototype.mulTo=function(g,v){var w,y=this.length+g.length;return this.length===10&&g.length===10?w=T(this,g,v):y<63?w=b(this,g,v):y<1024?w=I(this,g,v):w=L(this,g,v),w};function U(R,g){this.x=R,this.y=g}U.prototype.makeRBT=function(g){for(var v=new Array(g),w=n.prototype._countBits(g)-1,y=0;y>=1;return y},U.prototype.permute=function(g,v,w,y,_,P){for(var M=0;M>>1)_++;return 1<<_+1+y},U.prototype.conjugate=function(g,v,w){if(!(w<=1))for(var y=0;y>>13,w[2*P+1]=_&8191,_=_>>>13;for(P=2*v;P>=26,v+=y/67108864|0,v+=_>>>26,this.words[w]=_&67108863}return v!==0&&(this.words[w]=v,this.length++),this},n.prototype.muln=function(g){return this.clone().imuln(g)},n.prototype.sqr=function(){return this.mul(this)},n.prototype.isqr=function(){return this.imul(this.clone())},n.prototype.pow=function(g){var v=p(g);if(v.length===0)return new n(1);for(var w=this,y=0;y=0);var v=g%26,w=(g-v)/26,y=67108863>>>26-v<<26-v,_;if(v!==0){var P=0;for(_=0;_>>26-v}P&&(this.words[_]=P,this.length++)}if(w!==0){for(_=this.length-1;_>=0;_--)this.words[_+w]=this.words[_];for(_=0;_=0);var y;v?y=(v-v%26)/26:y=0;var _=g%26,P=Math.min((g-_)/26,this.length),M=67108863^67108863>>>_<<_,E=w;if(y-=P,y=Math.max(0,y),E){for(var h=0;hP)for(this.length-=P,h=0;h=0&&(A!==0||h>=y);h--){var F=this.words[h]|0;this.words[h]=A<<26-_|F>>>_,A=F&M}return E&&A!==0&&(E.words[E.length++]=A),this.length===0&&(this.words[0]=0,this.length=1),this.strip()},n.prototype.ishrn=function(g,v,w){return r(this.negative===0),this.iushrn(g,v,w)},n.prototype.shln=function(g){return this.clone().ishln(g)},n.prototype.ushln=function(g){return this.clone().iushln(g)},n.prototype.shrn=function(g){return this.clone().ishrn(g)},n.prototype.ushrn=function(g){return this.clone().iushrn(g)},n.prototype.testn=function(g){r(typeof g=="number"&&g>=0);var v=g%26,w=(g-v)/26,y=1<=0);var v=g%26,w=(g-v)/26;if(r(this.negative===0,"imaskn works only with positive numbers"),this.length<=w)return this;if(v!==0&&w++,this.length=Math.min(w,this.length),v!==0){var y=67108863^67108863>>>v<=67108864;v++)this.words[v]-=67108864,v===this.length-1?this.words[v+1]=1:this.words[v+1]++;return this.length=Math.max(this.length,v+1),this},n.prototype.isubn=function(g){if(r(typeof g=="number"),r(g<67108864),g<0)return this.iaddn(-g);if(this.negative!==0)return this.negative=0,this.iaddn(g),this.negative=1,this;if(this.words[0]-=g,this.length===1&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var v=0;v>26)-(E/67108864|0),this.words[_+w]=P&67108863}for(;_>26,this.words[_+w]=P&67108863;if(M===0)return this.strip();for(r(M===-1),M=0,_=0;_>26,this.words[_]=P&67108863;return this.negative=1,this.strip()},n.prototype._wordDiv=function(g,v){var w=this.length-g.length,y=this.clone(),_=g,P=_.words[_.length-1]|0,M=this._countBits(P);w=26-M,w!==0&&(_=_.ushln(w),y.iushln(w),P=_.words[_.length-1]|0);var E=y.length-_.length,h;if(v!=="mod"){h=new n(null),h.length=E+1,h.words=new Array(h.length);for(var A=0;A=0;O--){var N=(y.words[_.length+O]|0)*67108864+(y.words[_.length+O-1]|0);for(N=Math.min(N/P|0,67108863),y._ishlnsubmul(_,N,O);y.negative!==0;)N--,y.negative=0,y._ishlnsubmul(_,1,O),y.isZero()||(y.negative^=1);h&&(h.words[O]=N)}return h&&h.strip(),y.strip(),v!=="div"&&w!==0&&y.iushrn(w),{div:h||null,mod:y}},n.prototype.divmod=function(g,v,w){if(r(!g.isZero()),this.isZero())return{div:new n(0),mod:new n(0)};var y,_,P;return this.negative!==0&&g.negative===0?(P=this.neg().divmod(g,v),v!=="mod"&&(y=P.div.neg()),v!=="div"&&(_=P.mod.neg(),w&&_.negative!==0&&_.iadd(g)),{div:y,mod:_}):this.negative===0&&g.negative!==0?(P=this.divmod(g.neg(),v),v!=="mod"&&(y=P.div.neg()),{div:y,mod:P.mod}):(this.negative&g.negative)!==0?(P=this.neg().divmod(g.neg(),v),v!=="div"&&(_=P.mod.neg(),w&&_.negative!==0&&_.isub(g)),{div:P.div,mod:_}):g.length>this.length||this.cmp(g)<0?{div:new n(0),mod:this}:g.length===1?v==="div"?{div:this.divn(g.words[0]),mod:null}:v==="mod"?{div:null,mod:new n(this.modn(g.words[0]))}:{div:this.divn(g.words[0]),mod:new n(this.modn(g.words[0]))}:this._wordDiv(g,v)},n.prototype.div=function(g){return this.divmod(g,"div",!1).div},n.prototype.mod=function(g){return this.divmod(g,"mod",!1).mod},n.prototype.umod=function(g){return this.divmod(g,"mod",!0).mod},n.prototype.divRound=function(g){var v=this.divmod(g);if(v.mod.isZero())return v.div;var w=v.div.negative!==0?v.mod.isub(g):v.mod,y=g.ushrn(1),_=g.andln(1),P=w.cmp(y);return P<0||_===1&&P===0?v.div:v.div.negative!==0?v.div.isubn(1):v.div.iaddn(1)},n.prototype.modn=function(g){r(g<=67108863);for(var v=(1<<26)%g,w=0,y=this.length-1;y>=0;y--)w=(v*w+(this.words[y]|0))%g;return w},n.prototype.idivn=function(g){r(g<=67108863);for(var v=0,w=this.length-1;w>=0;w--){var y=(this.words[w]|0)+v*67108864;this.words[w]=y/g|0,v=y%g}return this.strip()},n.prototype.divn=function(g){return this.clone().idivn(g)},n.prototype.egcd=function(g){r(g.negative===0),r(!g.isZero());var v=this,w=g.clone();v.negative!==0?v=v.umod(g):v=v.clone();for(var y=new n(1),_=new n(0),P=new n(0),M=new n(1),E=0;v.isEven()&&w.isEven();)v.iushrn(1),w.iushrn(1),++E;for(var h=w.clone(),A=v.clone();!v.isZero();){for(var F=0,O=1;(v.words[0]&O)===0&&F<26;++F,O<<=1);if(F>0)for(v.iushrn(F);F-- >0;)(y.isOdd()||_.isOdd())&&(y.iadd(h),_.isub(A)),y.iushrn(1),_.iushrn(1);for(var N=0,xe=1;(w.words[0]&xe)===0&&N<26;++N,xe<<=1);if(N>0)for(w.iushrn(N);N-- >0;)(P.isOdd()||M.isOdd())&&(P.iadd(h),M.isub(A)),P.iushrn(1),M.iushrn(1);v.cmp(w)>=0?(v.isub(w),y.isub(P),_.isub(M)):(w.isub(v),P.isub(y),M.isub(_))}return{a:P,b:M,gcd:w.iushln(E)}},n.prototype._invmp=function(g){r(g.negative===0),r(!g.isZero());var v=this,w=g.clone();v.negative!==0?v=v.umod(g):v=v.clone();for(var y=new n(1),_=new n(0),P=w.clone();v.cmpn(1)>0&&w.cmpn(1)>0;){for(var M=0,E=1;(v.words[0]&E)===0&&M<26;++M,E<<=1);if(M>0)for(v.iushrn(M);M-- >0;)y.isOdd()&&y.iadd(P),y.iushrn(1);for(var h=0,A=1;(w.words[0]&A)===0&&h<26;++h,A<<=1);if(h>0)for(w.iushrn(h);h-- >0;)_.isOdd()&&_.iadd(P),_.iushrn(1);v.cmp(w)>=0?(v.isub(w),y.isub(_)):(w.isub(v),_.isub(y))}var F;return v.cmpn(1)===0?F=y:F=_,F.cmpn(0)<0&&F.iadd(g),F},n.prototype.gcd=function(g){if(this.isZero())return g.abs();if(g.isZero())return this.abs();var v=this.clone(),w=g.clone();v.negative=0,w.negative=0;for(var y=0;v.isEven()&&w.isEven();y++)v.iushrn(1),w.iushrn(1);do{for(;v.isEven();)v.iushrn(1);for(;w.isEven();)w.iushrn(1);var _=v.cmp(w);if(_<0){var P=v;v=w,w=P}else if(_===0||w.cmpn(1)===0)break;v.isub(w)}while(!0);return w.iushln(y)},n.prototype.invm=function(g){return this.egcd(g).a.umod(g)},n.prototype.isEven=function(){return(this.words[0]&1)===0},n.prototype.isOdd=function(){return(this.words[0]&1)===1},n.prototype.andln=function(g){return this.words[0]&g},n.prototype.bincn=function(g){r(typeof g=="number");var v=g%26,w=(g-v)/26,y=1<>>26,M&=67108863,this.words[P]=M}return _!==0&&(this.words[P]=_,this.length++),this},n.prototype.isZero=function(){return this.length===1&&this.words[0]===0},n.prototype.cmpn=function(g){var v=g<0;if(this.negative!==0&&!v)return-1;if(this.negative===0&&v)return 1;this.strip();var w;if(this.length>1)w=1;else{v&&(g=-g),r(g<=67108863,"Number is too big");var y=this.words[0]|0;w=y===g?0:yg.length)return 1;if(this.length=0;w--){var y=this.words[w]|0,_=g.words[w]|0;if(y!==_){y<_?v=-1:y>_&&(v=1);break}}return v},n.prototype.gtn=function(g){return this.cmpn(g)===1},n.prototype.gt=function(g){return this.cmp(g)===1},n.prototype.gten=function(g){return this.cmpn(g)>=0},n.prototype.gte=function(g){return this.cmp(g)>=0},n.prototype.ltn=function(g){return this.cmpn(g)===-1},n.prototype.lt=function(g){return this.cmp(g)===-1},n.prototype.lten=function(g){return this.cmpn(g)<=0},n.prototype.lte=function(g){return this.cmp(g)<=0},n.prototype.eqn=function(g){return this.cmpn(g)===0},n.prototype.eq=function(g){return this.cmp(g)===0},n.red=function(g){return new ne(g)},n.prototype.toRed=function(g){return r(!this.red,"Already a number in reduction context"),r(this.negative===0,"red works only with positives"),g.convertTo(this)._forceRed(g)},n.prototype.fromRed=function(){return r(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},n.prototype._forceRed=function(g){return this.red=g,this},n.prototype.forceRed=function(g){return r(!this.red,"Already a number in reduction context"),this._forceRed(g)},n.prototype.redAdd=function(g){return r(this.red,"redAdd works only with red numbers"),this.red.add(this,g)},n.prototype.redIAdd=function(g){return r(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,g)},n.prototype.redSub=function(g){return r(this.red,"redSub works only with red numbers"),this.red.sub(this,g)},n.prototype.redISub=function(g){return r(this.red,"redISub works only with red numbers"),this.red.isub(this,g)},n.prototype.redShl=function(g){return r(this.red,"redShl works only with red numbers"),this.red.shl(this,g)},n.prototype.redMul=function(g){return r(this.red,"redMul works only with red numbers"),this.red._verify2(this,g),this.red.mul(this,g)},n.prototype.redIMul=function(g){return r(this.red,"redMul works only with red numbers"),this.red._verify2(this,g),this.red.imul(this,g)},n.prototype.redSqr=function(){return r(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},n.prototype.redISqr=function(){return r(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},n.prototype.redSqrt=function(){return r(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},n.prototype.redInvm=function(){return r(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},n.prototype.redNeg=function(){return r(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},n.prototype.redPow=function(g){return r(this.red&&!g.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,g)};var re={k256:null,p224:null,p192:null,p25519:null};function oe(R,g){this.name=R,this.p=new n(g,16),this.n=this.p.bitLength(),this.k=new n(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}oe.prototype._tmp=function(){var g=new n(null);return g.words=new Array(Math.ceil(this.n/13)),g},oe.prototype.ireduce=function(g){var v=g,w;do this.split(v,this.tmp),v=this.imulK(v),v=v.iadd(this.tmp),w=v.bitLength();while(w>this.n);var y=w0?v.isub(this.p):v.strip!==void 0?v.strip():v._strip(),v},oe.prototype.split=function(g,v){g.iushrn(this.n,0,v)},oe.prototype.imulK=function(g){return g.imul(this.k)};function ge(){oe.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}i(ge,oe),ge.prototype.split=function(g,v){for(var w=4194303,y=Math.min(g.length,9),_=0;_>>22,P=M}P>>>=22,g.words[_-10]=P,P===0&&g.length>10?g.length-=10:g.length-=9},ge.prototype.imulK=function(g){g.words[g.length]=0,g.words[g.length+1]=0,g.length+=2;for(var v=0,w=0;w>>=26,g.words[w]=_,v=y}return v!==0&&(g.words[g.length++]=v),g},n._prime=function(g){if(re[g])return re[g];var v;if(g==="k256")v=new ge;else if(g==="p224")v=new be;else if(g==="p192")v=new ce;else if(g==="p25519")v=new me;else throw new Error("Unknown prime "+g);return re[g]=v,v};function ne(R){if(typeof R=="string"){var g=n._prime(R);this.m=g.p,this.prime=g}else r(R.gtn(1),"modulus must be greater than 1"),this.m=R,this.prime=null}ne.prototype._verify1=function(g){r(g.negative===0,"red works only with positives"),r(g.red,"red works only with red numbers")},ne.prototype._verify2=function(g,v){r((g.negative|v.negative)===0,"red works only with positives"),r(g.red&&g.red===v.red,"red works only with red numbers")},ne.prototype.imod=function(g){return this.prime?this.prime.ireduce(g)._forceRed(this):g.umod(this.m)._forceRed(this)},ne.prototype.neg=function(g){return g.isZero()?g.clone():this.m.sub(g)._forceRed(this)},ne.prototype.add=function(g,v){this._verify2(g,v);var w=g.add(v);return w.cmp(this.m)>=0&&w.isub(this.m),w._forceRed(this)},ne.prototype.iadd=function(g,v){this._verify2(g,v);var w=g.iadd(v);return w.cmp(this.m)>=0&&w.isub(this.m),w},ne.prototype.sub=function(g,v){this._verify2(g,v);var w=g.sub(v);return w.cmpn(0)<0&&w.iadd(this.m),w._forceRed(this)},ne.prototype.isub=function(g,v){this._verify2(g,v);var w=g.isub(v);return w.cmpn(0)<0&&w.iadd(this.m),w},ne.prototype.shl=function(g,v){return this._verify1(g),this.imod(g.ushln(v))},ne.prototype.imul=function(g,v){return this._verify2(g,v),this.imod(g.imul(v))},ne.prototype.mul=function(g,v){return this._verify2(g,v),this.imod(g.mul(v))},ne.prototype.isqr=function(g){return this.imul(g,g.clone())},ne.prototype.sqr=function(g){return this.mul(g,g)},ne.prototype.sqrt=function(g){if(g.isZero())return g.clone();var v=this.m.andln(3);if(r(v%2===1),v===3){var w=this.m.add(new n(1)).iushrn(2);return this.pow(g,w)}for(var y=this.m.subn(1),_=0;!y.isZero()&&y.andln(1)===0;)_++,y.iushrn(1);r(!y.isZero());var P=new n(1).toRed(this),M=P.redNeg(),E=this.m.subn(1).iushrn(1),h=this.m.bitLength();for(h=new n(2*h*h).toRed(this);this.pow(h,E).cmp(M)!==0;)h.redIAdd(M);for(var A=this.pow(h,y),F=this.pow(g,y.addn(1).iushrn(1)),O=this.pow(g,y),N=_;O.cmp(P)!==0;){for(var xe=O,q=0;xe.cmp(P)!==0;q++)xe=xe.redSqr();r(q=0;_--){for(var A=v.words[_],F=h-1;F>=0;F--){var O=A>>F&1;if(P!==y[0]&&(P=this.sqr(P)),O===0&&M===0){E=0;continue}M<<=1,M|=O,E++,!(E!==w&&(_!==0||F!==0))&&(P=this.mul(P,y[M]),E=0,M=0)}h=26}return P},ne.prototype.convertTo=function(g){var v=g.umod(this.m);return v===g?v.clone():v},ne.prototype.convertFrom=function(g){var v=g.clone();return v.red=null,v},n.mont=function(g){return new ee(g)};function ee(R){ne.call(this,R),this.shift=this.m.bitLength(),this.shift%26!==0&&(this.shift+=26-this.shift%26),this.r=new n(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}i(ee,ne),ee.prototype.convertTo=function(g){return this.imod(g.ushln(this.shift))},ee.prototype.convertFrom=function(g){var v=this.imod(g.mul(this.rinv));return v.red=null,v},ee.prototype.imul=function(g,v){if(g.isZero()||v.isZero())return g.words[0]=0,g.length=1,g;var w=g.imul(v),y=w.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),_=w.isub(y).iushrn(this.shift),P=_;return _.cmp(this.m)>=0?P=_.isub(this.m):_.cmpn(0)<0&&(P=_.iadd(this.m)),P._forceRed(this)},ee.prototype.mul=function(g,v){if(g.isZero()||v.isZero())return new n(0)._forceRed(this);var w=g.mul(v),y=w.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),_=w.isub(y).iushrn(this.shift),P=_;return _.cmp(this.m)>=0?P=_.isub(this.m):_.cmpn(0)<0&&(P=_.iadd(this.m)),P._forceRed(this)},ee.prototype.invm=function(g){var v=this.imod(g._invmp(this.m).mul(this.r2));return v._forceRed(this)}})(typeof mR>"u"||mR,iW)});var m0=x((FAt,aW)=>{aW.exports=nW;function nW(t,e){if(!t)throw new Error(e||"Assertion failed")}nW.equal=function(e,r,i){if(e!=r)throw new Error(i||"Assertion failed: "+e+" != "+r)}});var gR=x(uW=>{"use strict";var K5=uW;function gRe(t,e){if(Array.isArray(t))return t.slice();if(!t)return[];var r=[];if(typeof t!="string"){for(var i=0;i>8,s=n&255;a?r.push(a,s):r.push(s)}return r}K5.toArray=gRe;function sW(t){return t.length===1?"0"+t:t}K5.zero2=sW;function oW(t){for(var e="",r=0;r{"use strict";var dc=cW,yRe=bd(),vRe=m0(),W5=gR();dc.assert=vRe;dc.toArray=W5.toArray;dc.zero2=W5.zero2;dc.toHex=W5.toHex;dc.encode=W5.encode;function bRe(t,e,r){var i=new Array(Math.max(t.bitLength(),r)+1);i.fill(0);for(var n=1<(n>>1)-1?o=(n>>1)-c:o=c,a.isubn(o)):o=0,i[s]=o,a.iushrn(1)}return i}dc.getNAF=bRe;function _Re(t,e){var r=[[],[]];t=t.clone(),e=e.clone();for(var i=0,n=0,a;t.cmpn(-i)>0||e.cmpn(-n)>0;){var s=t.andln(3)+i&3,o=e.andln(3)+n&3;s===3&&(s=-1),o===3&&(o=-1);var c;(s&1)===0?c=0:(a=t.andln(7)+i&7,(a===3||a===5)&&o===2?c=-s:c=s),r[0].push(c);var u;(o&1)===0?u=0:(a=e.andln(7)+n&7,(a===3||a===5)&&s===2?u=-o:u=o),r[1].push(u),2*i===c+1&&(i=1-i),2*n===u+1&&(n=1-n),t.iushrn(1),e.iushrn(1)}return r}dc.getJSF=_Re;function wRe(t,e,r){var i="_"+e;t.prototype[e]=function(){return this[i]!==void 0?this[i]:this[i]=r.call(this)}}dc.cachedProperty=wRe;function xRe(t){return typeof t=="string"?dc.toArray(t,"hex"):t}dc.parseBytes=xRe;function SRe(t){return new yRe(t,"hex","le")}dc.intFromLE=SRe});var Z5=x((LAt,bR)=>{var yR;bR.exports=function(e){return yR||(yR=new g0(null)),yR.generate(e)};function g0(t){this.rand=t}bR.exports.Rand=g0;g0.prototype.generate=function(e){return this._rand(e)};g0.prototype._rand=function(e){if(this.rand.getBytes)return this.rand.getBytes(e);for(var r=new Uint8Array(e),i=0;i{"use strict";var W1=bd(),k4=Ro(),$5=k4.getNAF,ERe=k4.getJSF,Q5=k4.assert;function y0(t,e){this.type=t,this.p=new W1(e.p,16),this.red=e.prime?W1.red(e.prime):W1.mont(this.p),this.zero=new W1(0).toRed(this.red),this.one=new W1(1).toRed(this.red),this.two=new W1(2).toRed(this.red),this.n=e.n&&new W1(e.n,16),this.g=e.g&&this.pointFromJSON(e.g,e.gRed),this._wnafT1=new Array(4),this._wnafT2=new Array(4),this._wnafT3=new Array(4),this._wnafT4=new Array(4),this._bitLength=this.n?this.n.bitLength():0;var r=this.n&&this.p.div(this.n);!r||r.cmpn(100)>0?this.redN=null:(this._maxwellTrick=!0,this.redN=this.n.toRed(this.red))}dW.exports=y0;y0.prototype.point=function(){throw new Error("Not implemented")};y0.prototype.validate=function(){throw new Error("Not implemented")};y0.prototype._fixedNafMul=function(e,r){Q5(e.precomputed);var i=e._getDoubles(),n=$5(r,1,this._bitLength),a=(1<=o;u--)c=(c<<1)+n[u];s.push(c)}for(var f=this.jpoint(null,null,null),d=this.jpoint(null,null,null),p=a;p>0;p--){for(o=0;o=0;c--){for(var u=0;c>=0&&s[c]===0;c--)u++;if(c>=0&&u++,o=o.dblp(u),c<0)break;var f=s[c];Q5(f!==0),e.type==="affine"?f>0?o=o.mixedAdd(a[f-1>>1]):o=o.mixedAdd(a[-f-1>>1].neg()):f>0?o=o.add(a[f-1>>1]):o=o.add(a[-f-1>>1].neg())}return e.type==="affine"?o.toP():o};y0.prototype._wnafMulAdd=function(e,r,i,n,a){var s=this._wnafT1,o=this._wnafT2,c=this._wnafT3,u=0,f,d,p;for(f=0;f=1;f-=2){var T=f-1,I=f;if(s[T]!==1||s[I]!==1){c[T]=$5(i[T],s[T],this._bitLength),c[I]=$5(i[I],s[I],this._bitLength),u=Math.max(c[T].length,u),u=Math.max(c[I].length,u);continue}var L=[r[T],null,null,r[I]];r[T].y.cmp(r[I].y)===0?(L[1]=r[T].add(r[I]),L[2]=r[T].toJ().mixedAdd(r[I].neg())):r[T].y.cmp(r[I].y.redNeg())===0?(L[1]=r[T].toJ().mixedAdd(r[I]),L[2]=r[T].add(r[I].neg())):(L[1]=r[T].toJ().mixedAdd(r[I]),L[2]=r[T].toJ().mixedAdd(r[I].neg()));var U=[-3,-1,-5,-7,0,7,5,1,3],re=ERe(i[T],i[I]);for(u=Math.max(re[0].length,u),c[T]=new Array(u),c[I]=new Array(u),d=0;d=0;f--){for(var me=0;f>=0;){var ne=!0;for(d=0;d=0&&me++,be=be.dblp(me),f<0)break;for(d=0;d0?p=o[d][ee-1>>1]:ee<0&&(p=o[d][-ee-1>>1].neg()),p.type==="affine"?be=be.mixedAdd(p):be=be.add(p))}}for(f=0;f=Math.ceil((e.bitLength()+1)/r.step):!1};pu.prototype._getDoubles=function(e,r){if(this.precomputed&&this.precomputed.doubles)return this.precomputed.doubles;for(var i=[this],n=this,a=0;a{typeof Object.create=="function"?_R.exports=function(e,r){r&&(e.super_=r,e.prototype=Object.create(r.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}))}:_R.exports=function(e,r){if(r){e.super_=r;var i=function(){};i.prototype=r.prototype,e.prototype=new i,e.prototype.constructor=e}}});var _d=x((VAt,xR)=>{try{if(wR=require("util"),typeof wR.inherits!="function")throw"";xR.exports=wR.inherits}catch{xR.exports=lW()}var wR});var pW=x((HAt,fW)=>{"use strict";var TRe=Ro(),sn=bd(),SR=_d(),gg=B4(),ARe=TRe.assert;function hu(t){gg.call(this,"short",t),this.a=new sn(t.a,16).toRed(this.red),this.b=new sn(t.b,16).toRed(this.red),this.tinv=this.two.redInvm(),this.zeroA=this.a.fromRed().cmpn(0)===0,this.threeA=this.a.fromRed().sub(this.p).cmpn(-3)===0,this.endo=this._getEndomorphism(t),this._endoWnafT1=new Array(4),this._endoWnafT2=new Array(4)}SR(hu,gg);fW.exports=hu;hu.prototype._getEndomorphism=function(e){if(!(!this.zeroA||!this.g||!this.n||this.p.modn(3)!==1)){var r,i;if(e.beta)r=new sn(e.beta,16).toRed(this.red);else{var n=this._getEndoRoots(this.p);r=n[0].cmp(n[1])<0?n[0]:n[1],r=r.toRed(this.red)}if(e.lambda)i=new sn(e.lambda,16);else{var a=this._getEndoRoots(this.n);this.g.mul(a[0]).x.cmp(this.g.x.redMul(r))===0?i=a[0]:(i=a[1],ARe(this.g.mul(i).x.cmp(this.g.x.redMul(r))===0))}var s;return e.basis?s=e.basis.map(function(o){return{a:new sn(o.a,16),b:new sn(o.b,16)}}):s=this._getEndoBasis(i),{beta:r,lambda:i,basis:s}}};hu.prototype._getEndoRoots=function(e){var r=e===this.p?this.red:sn.mont(e),i=new sn(2).toRed(r).redInvm(),n=i.redNeg(),a=new sn(3).toRed(r).redNeg().redSqrt().redMul(i),s=n.redAdd(a).fromRed(),o=n.redSub(a).fromRed();return[s,o]};hu.prototype._getEndoBasis=function(e){for(var r=this.n.ushrn(Math.floor(this.n.bitLength()/2)),i=e,n=this.n.clone(),a=new sn(1),s=new sn(0),o=new sn(0),c=new sn(1),u,f,d,p,b,T,I,L=0,U,re;i.cmpn(0)!==0;){var oe=n.div(i);U=n.sub(oe.mul(i)),re=o.sub(oe.mul(a));var ge=c.sub(oe.mul(s));if(!d&&U.cmp(r)<0)u=I.neg(),f=a,d=U.neg(),p=re;else if(d&&++L===2)break;I=U,n=i,i=U,o=a,a=re,c=s,s=ge}b=U.neg(),T=re;var be=d.sqr().add(p.sqr()),ce=b.sqr().add(T.sqr());return ce.cmp(be)>=0&&(b=u,T=f),d.negative&&(d=d.neg(),p=p.neg()),b.negative&&(b=b.neg(),T=T.neg()),[{a:d,b:p},{a:b,b:T}]};hu.prototype._endoSplit=function(e){var r=this.endo.basis,i=r[0],n=r[1],a=n.b.mul(e).divRound(this.n),s=i.b.neg().mul(e).divRound(this.n),o=a.mul(i.a),c=s.mul(n.a),u=a.mul(i.b),f=s.mul(n.b),d=e.sub(o).sub(c),p=u.add(f).neg();return{k1:d,k2:p}};hu.prototype.pointFromX=function(e,r){e=new sn(e,16),e.red||(e=e.toRed(this.red));var i=e.redSqr().redMul(e).redIAdd(e.redMul(this.a)).redIAdd(this.b),n=i.redSqrt();if(n.redSqr().redSub(i).cmp(this.zero)!==0)throw new Error("invalid point");var a=n.fromRed().isOdd();return(r&&!a||!r&&a)&&(n=n.redNeg()),this.point(e,n)};hu.prototype.validate=function(e){if(e.inf)return!0;var r=e.x,i=e.y,n=this.a.redMul(r),a=r.redSqr().redMul(r).redIAdd(n).redIAdd(this.b);return i.redSqr().redISub(a).cmpn(0)===0};hu.prototype._endoWnafMulAdd=function(e,r,i){for(var n=this._endoWnafT1,a=this._endoWnafT2,s=0;s":""};da.prototype.isInfinity=function(){return this.inf};da.prototype.add=function(e){if(this.inf)return e;if(e.inf)return this;if(this.eq(e))return this.dbl();if(this.neg().eq(e))return this.curve.point(null,null);if(this.x.cmp(e.x)===0)return this.curve.point(null,null);var r=this.y.redSub(e.y);r.cmpn(0)!==0&&(r=r.redMul(this.x.redSub(e.x).redInvm()));var i=r.redSqr().redISub(this.x).redISub(e.x),n=r.redMul(this.x.redSub(i)).redISub(this.y);return this.curve.point(i,n)};da.prototype.dbl=function(){if(this.inf)return this;var e=this.y.redAdd(this.y);if(e.cmpn(0)===0)return this.curve.point(null,null);var r=this.curve.a,i=this.x.redSqr(),n=e.redInvm(),a=i.redAdd(i).redIAdd(i).redIAdd(r).redMul(n),s=a.redSqr().redISub(this.x.redAdd(this.x)),o=a.redMul(this.x.redSub(s)).redISub(this.y);return this.curve.point(s,o)};da.prototype.getX=function(){return this.x.fromRed()};da.prototype.getY=function(){return this.y.fromRed()};da.prototype.mul=function(e){return e=new sn(e,16),this.isInfinity()?this:this._hasDoubles(e)?this.curve._fixedNafMul(this,e):this.curve.endo?this.curve._endoWnafMulAdd([this],[e]):this.curve._wnafMul(this,e)};da.prototype.mulAdd=function(e,r,i){var n=[this,r],a=[e,i];return this.curve.endo?this.curve._endoWnafMulAdd(n,a):this.curve._wnafMulAdd(1,n,a,2)};da.prototype.jmulAdd=function(e,r,i){var n=[this,r],a=[e,i];return this.curve.endo?this.curve._endoWnafMulAdd(n,a,!0):this.curve._wnafMulAdd(1,n,a,2,!0)};da.prototype.eq=function(e){return this===e||this.inf===e.inf&&(this.inf||this.x.cmp(e.x)===0&&this.y.cmp(e.y)===0)};da.prototype.neg=function(e){if(this.inf)return this;var r=this.curve.point(this.x,this.y.redNeg());if(e&&this.precomputed){var i=this.precomputed,n=function(a){return a.neg()};r.precomputed={naf:i.naf&&{wnd:i.naf.wnd,points:i.naf.points.map(n)},doubles:i.doubles&&{step:i.doubles.step,points:i.doubles.points.map(n)}}}return r};da.prototype.toJ=function(){if(this.inf)return this.curve.jpoint(null,null,null);var e=this.curve.jpoint(this.x,this.y,this.curve.one);return e};function ka(t,e,r,i){gg.BasePoint.call(this,t,"jacobian"),e===null&&r===null&&i===null?(this.x=this.curve.one,this.y=this.curve.one,this.z=new sn(0)):(this.x=new sn(e,16),this.y=new sn(r,16),this.z=new sn(i,16)),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)),this.zOne=this.z===this.curve.one}SR(ka,gg.BasePoint);hu.prototype.jpoint=function(e,r,i){return new ka(this,e,r,i)};ka.prototype.toP=function(){if(this.isInfinity())return this.curve.point(null,null);var e=this.z.redInvm(),r=e.redSqr(),i=this.x.redMul(r),n=this.y.redMul(r).redMul(e);return this.curve.point(i,n)};ka.prototype.neg=function(){return this.curve.jpoint(this.x,this.y.redNeg(),this.z)};ka.prototype.add=function(e){if(this.isInfinity())return e;if(e.isInfinity())return this;var r=e.z.redSqr(),i=this.z.redSqr(),n=this.x.redMul(r),a=e.x.redMul(i),s=this.y.redMul(r.redMul(e.z)),o=e.y.redMul(i.redMul(this.z)),c=n.redSub(a),u=s.redSub(o);if(c.cmpn(0)===0)return u.cmpn(0)!==0?this.curve.jpoint(null,null,null):this.dbl();var f=c.redSqr(),d=f.redMul(c),p=n.redMul(f),b=u.redSqr().redIAdd(d).redISub(p).redISub(p),T=u.redMul(p.redISub(b)).redISub(s.redMul(d)),I=this.z.redMul(e.z).redMul(c);return this.curve.jpoint(b,T,I)};ka.prototype.mixedAdd=function(e){if(this.isInfinity())return e.toJ();if(e.isInfinity())return this;var r=this.z.redSqr(),i=this.x,n=e.x.redMul(r),a=this.y,s=e.y.redMul(r).redMul(this.z),o=i.redSub(n),c=a.redSub(s);if(o.cmpn(0)===0)return c.cmpn(0)!==0?this.curve.jpoint(null,null,null):this.dbl();var u=o.redSqr(),f=u.redMul(o),d=i.redMul(u),p=c.redSqr().redIAdd(f).redISub(d).redISub(d),b=c.redMul(d.redISub(p)).redISub(a.redMul(f)),T=this.z.redMul(o);return this.curve.jpoint(p,b,T)};ka.prototype.dblp=function(e){if(e===0)return this;if(this.isInfinity())return this;if(!e)return this.dbl();var r;if(this.curve.zeroA||this.curve.threeA){var i=this;for(r=0;r=0)return!1;if(i.redIAdd(a),this.x.cmp(i)===0)return!0}};ka.prototype.inspect=function(){return this.isInfinity()?"":""};ka.prototype.isInfinity=function(){return this.z.cmpn(0)===0}});var gW=x((zAt,mW)=>{"use strict";var yg=bd(),hW=_d(),Y5=B4(),PRe=Ro();function vg(t){Y5.call(this,"mont",t),this.a=new yg(t.a,16).toRed(this.red),this.b=new yg(t.b,16).toRed(this.red),this.i4=new yg(4).toRed(this.red).redInvm(),this.two=new yg(2).toRed(this.red),this.a24=this.i4.redMul(this.a.redAdd(this.two))}hW(vg,Y5);mW.exports=vg;vg.prototype.validate=function(e){var r=e.normalize().x,i=r.redSqr(),n=i.redMul(r).redAdd(i.redMul(this.a)).redAdd(r),a=n.redSqrt();return a.redSqr().cmp(n)===0};function la(t,e,r){Y5.BasePoint.call(this,t,"projective"),e===null&&r===null?(this.x=this.curve.one,this.z=this.curve.zero):(this.x=new yg(e,16),this.z=new yg(r,16),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)))}hW(la,Y5.BasePoint);vg.prototype.decodePoint=function(e,r){return this.point(PRe.toArray(e,r),1)};vg.prototype.point=function(e,r){return new la(this,e,r)};vg.prototype.pointFromJSON=function(e){return la.fromJSON(this,e)};la.prototype.precompute=function(){};la.prototype._encode=function(){return this.getX().toArray("be",this.curve.p.byteLength())};la.fromJSON=function(e,r){return new la(e,r[0],r[1]||e.one)};la.prototype.inspect=function(){return this.isInfinity()?"":""};la.prototype.isInfinity=function(){return this.z.cmpn(0)===0};la.prototype.dbl=function(){var e=this.x.redAdd(this.z),r=e.redSqr(),i=this.x.redSub(this.z),n=i.redSqr(),a=r.redSub(n),s=r.redMul(n),o=a.redMul(n.redAdd(this.curve.a24.redMul(a)));return this.curve.point(s,o)};la.prototype.add=function(){throw new Error("Not supported on Montgomery curve")};la.prototype.diffAdd=function(e,r){var i=this.x.redAdd(this.z),n=this.x.redSub(this.z),a=e.x.redAdd(e.z),s=e.x.redSub(e.z),o=s.redMul(i),c=a.redMul(n),u=r.z.redMul(o.redAdd(c).redSqr()),f=r.x.redMul(o.redISub(c).redSqr());return this.curve.point(u,f)};la.prototype.mul=function(e){for(var r=e.clone(),i=this,n=this.curve.point(null,null),a=this,s=[];r.cmpn(0)!==0;r.iushrn(1))s.push(r.andln(1));for(var o=s.length-1;o>=0;o--)s[o]===0?(i=i.diffAdd(n,a),n=n.dbl()):(n=i.diffAdd(n,a),i=i.dbl());return n};la.prototype.mulAdd=function(){throw new Error("Not supported on Montgomery curve")};la.prototype.jumlAdd=function(){throw new Error("Not supported on Montgomery curve")};la.prototype.eq=function(e){return this.getX().cmp(e.getX())===0};la.prototype.normalize=function(){return this.x=this.x.redMul(this.z.redInvm()),this.z=this.curve.one,this};la.prototype.getX=function(){return this.normalize(),this.x.fromRed()}});var bW=x((GAt,vW)=>{"use strict";var ORe=Ro(),sf=bd(),yW=_d(),e9=B4(),RRe=ORe.assert;function wd(t){this.twisted=(t.a|0)!==1,this.mOneA=this.twisted&&(t.a|0)===-1,this.extended=this.mOneA,e9.call(this,"edwards",t),this.a=new sf(t.a,16).umod(this.red.m),this.a=this.a.toRed(this.red),this.c=new sf(t.c,16).toRed(this.red),this.c2=this.c.redSqr(),this.d=new sf(t.d,16).toRed(this.red),this.dd=this.d.redAdd(this.d),RRe(!this.twisted||this.c.fromRed().cmpn(1)===0),this.oneC=(t.c|0)===1}yW(wd,e9);vW.exports=wd;wd.prototype._mulA=function(e){return this.mOneA?e.redNeg():this.a.redMul(e)};wd.prototype._mulC=function(e){return this.oneC?e:this.c.redMul(e)};wd.prototype.jpoint=function(e,r,i,n){return this.point(e,r,i,n)};wd.prototype.pointFromX=function(e,r){e=new sf(e,16),e.red||(e=e.toRed(this.red));var i=e.redSqr(),n=this.c2.redSub(this.a.redMul(i)),a=this.one.redSub(this.c2.redMul(this.d).redMul(i)),s=n.redMul(a.redInvm()),o=s.redSqrt();if(o.redSqr().redSub(s).cmp(this.zero)!==0)throw new Error("invalid point");var c=o.fromRed().isOdd();return(r&&!c||!r&&c)&&(o=o.redNeg()),this.point(e,o)};wd.prototype.pointFromY=function(e,r){e=new sf(e,16),e.red||(e=e.toRed(this.red));var i=e.redSqr(),n=i.redSub(this.c2),a=i.redMul(this.d).redMul(this.c2).redSub(this.a),s=n.redMul(a.redInvm());if(s.cmp(this.zero)===0){if(r)throw new Error("invalid point");return this.point(this.zero,e)}var o=s.redSqrt();if(o.redSqr().redSub(s).cmp(this.zero)!==0)throw new Error("invalid point");return o.fromRed().isOdd()!==r&&(o=o.redNeg()),this.point(o,e)};wd.prototype.validate=function(e){if(e.isInfinity())return!0;e.normalize();var r=e.x.redSqr(),i=e.y.redSqr(),n=r.redMul(this.a).redAdd(i),a=this.c2.redMul(this.one.redAdd(this.d.redMul(r).redMul(i)));return n.cmp(a)===0};function wi(t,e,r,i,n){e9.BasePoint.call(this,t,"projective"),e===null&&r===null&&i===null?(this.x=this.curve.zero,this.y=this.curve.one,this.z=this.curve.one,this.t=this.curve.zero,this.zOne=!0):(this.x=new sf(e,16),this.y=new sf(r,16),this.z=i?new sf(i,16):this.curve.one,this.t=n&&new sf(n,16),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)),this.t&&!this.t.red&&(this.t=this.t.toRed(this.curve.red)),this.zOne=this.z===this.curve.one,this.curve.extended&&!this.t&&(this.t=this.x.redMul(this.y),this.zOne||(this.t=this.t.redMul(this.z.redInvm()))))}yW(wi,e9.BasePoint);wd.prototype.pointFromJSON=function(e){return wi.fromJSON(this,e)};wd.prototype.point=function(e,r,i,n){return new wi(this,e,r,i,n)};wi.fromJSON=function(e,r){return new wi(e,r[0],r[1],r[2])};wi.prototype.inspect=function(){return this.isInfinity()?"":""};wi.prototype.isInfinity=function(){return this.x.cmpn(0)===0&&(this.y.cmp(this.z)===0||this.zOne&&this.y.cmp(this.curve.c)===0)};wi.prototype._extDbl=function(){var e=this.x.redSqr(),r=this.y.redSqr(),i=this.z.redSqr();i=i.redIAdd(i);var n=this.curve._mulA(e),a=this.x.redAdd(this.y).redSqr().redISub(e).redISub(r),s=n.redAdd(r),o=s.redSub(i),c=n.redSub(r),u=a.redMul(o),f=s.redMul(c),d=a.redMul(c),p=o.redMul(s);return this.curve.point(u,f,p,d)};wi.prototype._projDbl=function(){var e=this.x.redAdd(this.y).redSqr(),r=this.x.redSqr(),i=this.y.redSqr(),n,a,s,o,c,u;if(this.curve.twisted){o=this.curve._mulA(r);var f=o.redAdd(i);this.zOne?(n=e.redSub(r).redSub(i).redMul(f.redSub(this.curve.two)),a=f.redMul(o.redSub(i)),s=f.redSqr().redSub(f).redSub(f)):(c=this.z.redSqr(),u=f.redSub(c).redISub(c),n=e.redSub(r).redISub(i).redMul(u),a=f.redMul(o.redSub(i)),s=f.redMul(u))}else o=r.redAdd(i),c=this.curve._mulC(this.z).redSqr(),u=o.redSub(c).redSub(c),n=this.curve._mulC(e.redISub(o)).redMul(u),a=this.curve._mulC(o).redMul(r.redISub(i)),s=o.redMul(u);return this.curve.point(n,a,s)};wi.prototype.dbl=function(){return this.isInfinity()?this:this.curve.extended?this._extDbl():this._projDbl()};wi.prototype._extAdd=function(e){var r=this.y.redSub(this.x).redMul(e.y.redSub(e.x)),i=this.y.redAdd(this.x).redMul(e.y.redAdd(e.x)),n=this.t.redMul(this.curve.dd).redMul(e.t),a=this.z.redMul(e.z.redAdd(e.z)),s=i.redSub(r),o=a.redSub(n),c=a.redAdd(n),u=i.redAdd(r),f=s.redMul(o),d=c.redMul(u),p=s.redMul(u),b=o.redMul(c);return this.curve.point(f,d,b,p)};wi.prototype._projAdd=function(e){var r=this.z.redMul(e.z),i=r.redSqr(),n=this.x.redMul(e.x),a=this.y.redMul(e.y),s=this.curve.d.redMul(n).redMul(a),o=i.redSub(s),c=i.redAdd(s),u=this.x.redAdd(this.y).redMul(e.x.redAdd(e.y)).redISub(n).redISub(a),f=r.redMul(o).redMul(u),d,p;return this.curve.twisted?(d=r.redMul(c).redMul(a.redSub(this.curve._mulA(n))),p=o.redMul(c)):(d=r.redMul(c).redMul(a.redSub(n)),p=this.curve._mulC(o).redMul(c)),this.curve.point(f,d,p)};wi.prototype.add=function(e){return this.isInfinity()?e:e.isInfinity()?this:this.curve.extended?this._extAdd(e):this._projAdd(e)};wi.prototype.mul=function(e){return this._hasDoubles(e)?this.curve._fixedNafMul(this,e):this.curve._wnafMul(this,e)};wi.prototype.mulAdd=function(e,r,i){return this.curve._wnafMulAdd(1,[this,r],[e,i],2,!1)};wi.prototype.jmulAdd=function(e,r,i){return this.curve._wnafMulAdd(1,[this,r],[e,i],2,!0)};wi.prototype.normalize=function(){if(this.zOne)return this;var e=this.z.redInvm();return this.x=this.x.redMul(e),this.y=this.y.redMul(e),this.t&&(this.t=this.t.redMul(e)),this.z=this.curve.one,this.zOne=!0,this};wi.prototype.neg=function(){return this.curve.point(this.x.redNeg(),this.y,this.z,this.t&&this.t.redNeg())};wi.prototype.getX=function(){return this.normalize(),this.x.fromRed()};wi.prototype.getY=function(){return this.normalize(),this.y.fromRed()};wi.prototype.eq=function(e){return this===e||this.getX().cmp(e.getX())===0&&this.getY().cmp(e.getY())===0};wi.prototype.eqXToP=function(e){var r=e.toRed(this.curve.red).redMul(this.z);if(this.x.cmp(r)===0)return!0;for(var i=e.clone(),n=this.curve.redN.redMul(this.z);;){if(i.iadd(this.curve.n),i.cmp(this.curve.p)>=0)return!1;if(r.redIAdd(n),this.x.cmp(r)===0)return!0}};wi.prototype.toP=wi.prototype.normalize;wi.prototype.mixedAdd=wi.prototype.add});var ER=x(_W=>{"use strict";var t9=_W;t9.base=B4();t9.short=pW();t9.mont=gW();t9.edwards=bW()});var lc=x(mi=>{"use strict";var MRe=m0(),CRe=_d();mi.inherits=CRe;function IRe(t,e){return(t.charCodeAt(e)&64512)!==55296||e<0||e+1>=t.length?!1:(t.charCodeAt(e+1)&64512)===56320}function NRe(t,e){if(Array.isArray(t))return t.slice();if(!t)return[];var r=[];if(typeof t=="string")if(e){if(e==="hex")for(t=t.replace(/[^a-z0-9]+/ig,""),t.length%2!==0&&(t="0"+t),n=0;n>6|192,r[i++]=a&63|128):IRe(t,n)?(a=65536+((a&1023)<<10)+(t.charCodeAt(++n)&1023),r[i++]=a>>18|240,r[i++]=a>>12&63|128,r[i++]=a>>6&63|128,r[i++]=a&63|128):(r[i++]=a>>12|224,r[i++]=a>>6&63|128,r[i++]=a&63|128)}else for(n=0;n>>24|t>>>8&65280|t<<8&16711680|(t&255)<<24;return e>>>0}mi.htonl=wW;function BRe(t,e){for(var r="",i=0;i>>0}return a}mi.join32=FRe;function DRe(t,e){for(var r=new Array(t.length*4),i=0,n=0;i>>24,r[n+1]=a>>>16&255,r[n+2]=a>>>8&255,r[n+3]=a&255):(r[n+3]=a>>>24,r[n+2]=a>>>16&255,r[n+1]=a>>>8&255,r[n]=a&255)}return r}mi.split32=DRe;function qRe(t,e){return t>>>e|t<<32-e}mi.rotr32=qRe;function LRe(t,e){return t<>>32-e}mi.rotl32=LRe;function URe(t,e){return t+e>>>0}mi.sum32=URe;function jRe(t,e,r){return t+e+r>>>0}mi.sum32_3=jRe;function VRe(t,e,r,i){return t+e+r+i>>>0}mi.sum32_4=VRe;function HRe(t,e,r,i,n){return t+e+r+i+n>>>0}mi.sum32_5=HRe;function zRe(t,e,r,i){var n=t[e],a=t[e+1],s=i+a>>>0,o=(s>>0,t[e+1]=s}mi.sum64=zRe;function GRe(t,e,r,i){var n=e+i>>>0,a=(n>>0}mi.sum64_hi=GRe;function JRe(t,e,r,i){var n=e+i;return n>>>0}mi.sum64_lo=JRe;function XRe(t,e,r,i,n,a,s,o){var c=0,u=e;u=u+i>>>0,c+=u>>0,c+=u>>0,c+=u>>0}mi.sum64_4_hi=XRe;function KRe(t,e,r,i,n,a,s,o){var c=e+i+a+o;return c>>>0}mi.sum64_4_lo=KRe;function WRe(t,e,r,i,n,a,s,o,c,u){var f=0,d=e;d=d+i>>>0,f+=d>>0,f+=d>>0,f+=d>>0,f+=d>>0}mi.sum64_5_hi=WRe;function ZRe(t,e,r,i,n,a,s,o,c,u){var f=e+i+a+o+u;return f>>>0}mi.sum64_5_lo=ZRe;function $Re(t,e,r){var i=e<<32-r|t>>>r;return i>>>0}mi.rotr64_hi=$Re;function QRe(t,e,r){var i=t<<32-r|e>>>r;return i>>>0}mi.rotr64_lo=QRe;function YRe(t,e,r){return t>>>r}mi.shr64_hi=YRe;function eMe(t,e,r){var i=t<<32-r|e>>>r;return i>>>0}mi.shr64_lo=eMe});var bg=x(TW=>{"use strict";var EW=lc(),tMe=m0();function r9(){this.pending=null,this.pendingTotal=0,this.blockSize=this.constructor.blockSize,this.outSize=this.constructor.outSize,this.hmacStrength=this.constructor.hmacStrength,this.padLength=this.constructor.padLength/8,this.endian="big",this._delta8=this.blockSize/8,this._delta32=this.blockSize/32}TW.BlockHash=r9;r9.prototype.update=function(e,r){if(e=EW.toArray(e,r),this.pending?this.pending=this.pending.concat(e):this.pending=e,this.pendingTotal+=e.length,this.pending.length>=this._delta8){e=this.pending;var i=e.length%this._delta8;this.pending=e.slice(e.length-i,e.length),this.pending.length===0&&(this.pending=null),e=EW.join32(e,0,e.length-i,this.endian);for(var n=0;n>>24&255,n[a++]=e>>>16&255,n[a++]=e>>>8&255,n[a++]=e&255}else for(n[a++]=e&255,n[a++]=e>>>8&255,n[a++]=e>>>16&255,n[a++]=e>>>24&255,n[a++]=0,n[a++]=0,n[a++]=0,n[a++]=0,s=8;s{"use strict";var rMe=lc(),xd=rMe.rotr32;function iMe(t,e,r,i){if(t===0)return AW(e,r,i);if(t===1||t===3)return OW(e,r,i);if(t===2)return PW(e,r,i)}of.ft_1=iMe;function AW(t,e,r){return t&e^~t&r}of.ch32=AW;function PW(t,e,r){return t&e^t&r^e&r}of.maj32=PW;function OW(t,e,r){return t^e^r}of.p32=OW;function nMe(t){return xd(t,2)^xd(t,13)^xd(t,22)}of.s0_256=nMe;function aMe(t){return xd(t,6)^xd(t,11)^xd(t,25)}of.s1_256=aMe;function sMe(t){return xd(t,7)^xd(t,18)^t>>>3}of.g0_256=sMe;function oMe(t){return xd(t,17)^xd(t,19)^t>>>10}of.g1_256=oMe});var CW=x((ZAt,MW)=>{"use strict";var _g=lc(),uMe=bg(),cMe=TR(),AR=_g.rotl32,F4=_g.sum32,dMe=_g.sum32_5,lMe=cMe.ft_1,RW=uMe.BlockHash,fMe=[1518500249,1859775393,2400959708,3395469782];function Sd(){if(!(this instanceof Sd))return new Sd;RW.call(this),this.h=[1732584193,4023233417,2562383102,271733878,3285377520],this.W=new Array(80)}_g.inherits(Sd,RW);MW.exports=Sd;Sd.blockSize=512;Sd.outSize=160;Sd.hmacStrength=80;Sd.padLength=64;Sd.prototype._update=function(e,r){for(var i=this.W,n=0;n<16;n++)i[n]=e[r+n];for(;n{"use strict";var wg=lc(),pMe=bg(),xg=TR(),hMe=m0(),fc=wg.sum32,mMe=wg.sum32_4,gMe=wg.sum32_5,yMe=xg.ch32,vMe=xg.maj32,bMe=xg.s0_256,_Me=xg.s1_256,wMe=xg.g0_256,xMe=xg.g1_256,IW=pMe.BlockHash,SMe=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298];function Ed(){if(!(this instanceof Ed))return new Ed;IW.call(this),this.h=[1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225],this.k=SMe,this.W=new Array(64)}wg.inherits(Ed,IW);NW.exports=Ed;Ed.blockSize=512;Ed.outSize=256;Ed.hmacStrength=192;Ed.padLength=64;Ed.prototype._update=function(e,r){for(var i=this.W,n=0;n<16;n++)i[n]=e[r+n];for(;n{"use strict";var OR=lc(),kW=PR();function uf(){if(!(this instanceof uf))return new uf;kW.call(this),this.h=[3238371032,914150663,812702999,4144912697,4290775857,1750603025,1694076839,3204075428]}OR.inherits(uf,kW);BW.exports=uf;uf.blockSize=512;uf.outSize=224;uf.hmacStrength=192;uf.padLength=64;uf.prototype._digest=function(e){return e==="hex"?OR.toHex32(this.h.slice(0,7),"big"):OR.split32(this.h.slice(0,7),"big")}});var CR=x((YAt,UW)=>{"use strict";var Hs=lc(),EMe=bg(),TMe=m0(),Td=Hs.rotr64_hi,Ad=Hs.rotr64_lo,DW=Hs.shr64_hi,qW=Hs.shr64_lo,v0=Hs.sum64,RR=Hs.sum64_hi,MR=Hs.sum64_lo,AMe=Hs.sum64_4_hi,PMe=Hs.sum64_4_lo,OMe=Hs.sum64_5_hi,RMe=Hs.sum64_5_lo,LW=EMe.BlockHash,MMe=[1116352408,3609767458,1899447441,602891725,3049323471,3964484399,3921009573,2173295548,961987163,4081628472,1508970993,3053834265,2453635748,2937671579,2870763221,3664609560,3624381080,2734883394,310598401,1164996542,607225278,1323610764,1426881987,3590304994,1925078388,4068182383,2162078206,991336113,2614888103,633803317,3248222580,3479774868,3835390401,2666613458,4022224774,944711139,264347078,2341262773,604807628,2007800933,770255983,1495990901,1249150122,1856431235,1555081692,3175218132,1996064986,2198950837,2554220882,3999719339,2821834349,766784016,2952996808,2566594879,3210313671,3203337956,3336571891,1034457026,3584528711,2466948901,113926993,3758326383,338241895,168717936,666307205,1188179964,773529912,1546045734,1294757372,1522805485,1396182291,2643833823,1695183700,2343527390,1986661051,1014477480,2177026350,1206759142,2456956037,344077627,2730485921,1290863460,2820302411,3158454273,3259730800,3505952657,3345764771,106217008,3516065817,3606008344,3600352804,1432725776,4094571909,1467031594,275423344,851169720,430227734,3100823752,506948616,1363258195,659060556,3750685593,883997877,3785050280,958139571,3318307427,1322822218,3812723403,1537002063,2003034995,1747873779,3602036899,1955562222,1575990012,2024104815,1125592928,2227730452,2716904306,2361852424,442776044,2428436474,593698344,2756734187,3733110249,3204031479,2999351573,3329325298,3815920427,3391569614,3928383900,3515267271,566280711,3940187606,3454069534,4118630271,4000239992,116418474,1914138554,174292421,2731055270,289380356,3203993006,460393269,320620315,685471733,587496836,852142971,1086792851,1017036298,365543100,1126000580,2618297676,1288033470,3409855158,1501505948,4234509866,1607167915,987167468,1816402316,1246189591];function pc(){if(!(this instanceof pc))return new pc;LW.call(this),this.h=[1779033703,4089235720,3144134277,2227873595,1013904242,4271175723,2773480762,1595750129,1359893119,2917565137,2600822924,725511199,528734635,4215389547,1541459225,327033209],this.k=MMe,this.W=new Array(160)}Hs.inherits(pc,LW);UW.exports=pc;pc.blockSize=1024;pc.outSize=512;pc.hmacStrength=192;pc.padLength=128;pc.prototype._prepareBlock=function(e,r){for(var i=this.W,n=0;n<32;n++)i[n]=e[r+n];for(;n{"use strict";var IR=lc(),jW=CR();function cf(){if(!(this instanceof cf))return new cf;jW.call(this),this.h=[3418070365,3238371032,1654270250,914150663,2438529370,812702999,355462360,4144912697,1731405415,4290775857,2394180231,1750603025,3675008525,1694076839,1203062813,3204075428]}IR.inherits(cf,jW);VW.exports=cf;cf.blockSize=1024;cf.outSize=384;cf.hmacStrength=192;cf.padLength=128;cf.prototype._digest=function(e){return e==="hex"?IR.toHex32(this.h.slice(0,12),"big"):IR.split32(this.h.slice(0,12),"big")}});var zW=x(Sg=>{"use strict";Sg.sha1=CW();Sg.sha224=FW();Sg.sha256=PR();Sg.sha384=HW();Sg.sha512=CR()});var ZW=x(WW=>{"use strict";var Z1=lc(),HMe=bg(),i9=Z1.rotl32,GW=Z1.sum32,D4=Z1.sum32_3,JW=Z1.sum32_4,KW=HMe.BlockHash;function Pd(){if(!(this instanceof Pd))return new Pd;KW.call(this),this.h=[1732584193,4023233417,2562383102,271733878,3285377520],this.endian="little"}Z1.inherits(Pd,KW);WW.ripemd160=Pd;Pd.blockSize=512;Pd.outSize=160;Pd.hmacStrength=192;Pd.padLength=64;Pd.prototype._update=function(e,r){for(var i=this.h[0],n=this.h[1],a=this.h[2],s=this.h[3],o=this.h[4],c=i,u=n,f=a,d=s,p=o,b=0;b<80;b++){var T=GW(i9(JW(i,XW(b,n,a,s),e[JMe[b]+r],zMe(b)),KMe[b]),o);i=o,o=s,s=i9(a,10),a=n,n=T,T=GW(i9(JW(c,XW(79-b,u,f,d),e[XMe[b]+r],GMe(b)),WMe[b]),p),c=p,p=d,d=i9(f,10),f=u,u=T}T=D4(this.h[1],a,d),this.h[1]=D4(this.h[2],s,p),this.h[2]=D4(this.h[3],o,c),this.h[3]=D4(this.h[4],i,u),this.h[4]=D4(this.h[0],n,f),this.h[0]=T};Pd.prototype._digest=function(e){return e==="hex"?Z1.toHex32(this.h,"little"):Z1.split32(this.h,"little")};function XW(t,e,r,i){return t<=15?e^r^i:t<=31?e&r|~e&i:t<=47?(e|~r)^i:t<=63?e&i|r&~i:e^(r|~i)}function zMe(t){return t<=15?0:t<=31?1518500249:t<=47?1859775393:t<=63?2400959708:2840853838}function GMe(t){return t<=15?1352829926:t<=31?1548603684:t<=47?1836072691:t<=63?2053994217:0}var JMe=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13],XMe=[5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11],KMe=[11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6],WMe=[8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11]});var QW=x((iPt,$W)=>{"use strict";var ZMe=lc(),$Me=m0();function Eg(t,e,r){if(!(this instanceof Eg))return new Eg(t,e,r);this.Hash=t,this.blockSize=t.blockSize/8,this.outSize=t.outSize/8,this.inner=null,this.outer=null,this._init(ZMe.toArray(e,r))}$W.exports=Eg;Eg.prototype._init=function(e){e.length>this.blockSize&&(e=new this.Hash().update(e).digest()),$Me(e.length<=this.blockSize);for(var r=e.length;r{var Ba=YW;Ba.utils=lc();Ba.common=bg();Ba.sha=zW();Ba.ripemd=ZW();Ba.hmac=QW();Ba.sha1=Ba.sha.sha1;Ba.sha256=Ba.sha.sha256;Ba.sha224=Ba.sha.sha224;Ba.sha384=Ba.sha.sha384;Ba.sha512=Ba.sha.sha512;Ba.ripemd160=Ba.ripemd.ripemd160});var tZ=x((aPt,eZ)=>{eZ.exports={doubles:{step:4,points:[["e60fce93b59e9ec53011aabc21c23e97b2a31369b87a5ae9c44ee89e2a6dec0a","f7e3507399e595929db99f34f57937101296891e44d23f0be1f32cce69616821"],["8282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508","11f8a8098557dfe45e8256e830b60ace62d613ac2f7b17bed31b6eaff6e26caf"],["175e159f728b865a72f99cc6c6fc846de0b93833fd2222ed73fce5b551e5b739","d3506e0d9e3c79eba4ef97a51ff71f5eacb5955add24345c6efa6ffee9fed695"],["363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff4640","4e273adfc732221953b445397f3363145b9a89008199ecb62003c7f3bee9de9"],["8b4b5f165df3c2be8c6244b5b745638843e4a781a15bcd1b69f79a55dffdf80c","4aad0a6f68d308b4b3fbd7813ab0da04f9e336546162ee56b3eff0c65fd4fd36"],["723cbaa6e5db996d6bf771c00bd548c7b700dbffa6c0e77bcb6115925232fcda","96e867b5595cc498a921137488824d6e2660a0653779494801dc069d9eb39f5f"],["eebfa4d493bebf98ba5feec812c2d3b50947961237a919839a533eca0e7dd7fa","5d9a8ca3970ef0f269ee7edaf178089d9ae4cdc3a711f712ddfd4fdae1de8999"],["100f44da696e71672791d0a09b7bde459f1215a29b3c03bfefd7835b39a48db0","cdd9e13192a00b772ec8f3300c090666b7ff4a18ff5195ac0fbd5cd62bc65a09"],["e1031be262c7ed1b1dc9227a4a04c017a77f8d4464f3b3852c8acde6e534fd2d","9d7061928940405e6bb6a4176597535af292dd419e1ced79a44f18f29456a00d"],["feea6cae46d55b530ac2839f143bd7ec5cf8b266a41d6af52d5e688d9094696d","e57c6b6c97dce1bab06e4e12bf3ecd5c981c8957cc41442d3155debf18090088"],["da67a91d91049cdcb367be4be6ffca3cfeed657d808583de33fa978bc1ec6cb1","9bacaa35481642bc41f463f7ec9780e5dec7adc508f740a17e9ea8e27a68be1d"],["53904faa0b334cdda6e000935ef22151ec08d0f7bb11069f57545ccc1a37b7c0","5bc087d0bc80106d88c9eccac20d3c1c13999981e14434699dcb096b022771c8"],["8e7bcd0bd35983a7719cca7764ca906779b53a043a9b8bcaeff959f43ad86047","10b7770b2a3da4b3940310420ca9514579e88e2e47fd68b3ea10047e8460372a"],["385eed34c1cdff21e6d0818689b81bde71a7f4f18397e6690a841e1599c43862","283bebc3e8ea23f56701de19e9ebf4576b304eec2086dc8cc0458fe5542e5453"],["6f9d9b803ecf191637c73a4413dfa180fddf84a5947fbc9c606ed86c3fac3a7","7c80c68e603059ba69b8e2a30e45c4d47ea4dd2f5c281002d86890603a842160"],["3322d401243c4e2582a2147c104d6ecbf774d163db0f5e5313b7e0e742d0e6bd","56e70797e9664ef5bfb019bc4ddaf9b72805f63ea2873af624f3a2e96c28b2a0"],["85672c7d2de0b7da2bd1770d89665868741b3f9af7643397721d74d28134ab83","7c481b9b5b43b2eb6374049bfa62c2e5e77f17fcc5298f44c8e3094f790313a6"],["948bf809b1988a46b06c9f1919413b10f9226c60f668832ffd959af60c82a0a","53a562856dcb6646dc6b74c5d1c3418c6d4dff08c97cd2bed4cb7f88d8c8e589"],["6260ce7f461801c34f067ce0f02873a8f1b0e44dfc69752accecd819f38fd8e8","bc2da82b6fa5b571a7f09049776a1ef7ecd292238051c198c1a84e95b2b4ae17"],["e5037de0afc1d8d43d8348414bbf4103043ec8f575bfdc432953cc8d2037fa2d","4571534baa94d3b5f9f98d09fb990bddbd5f5b03ec481f10e0e5dc841d755bda"],["e06372b0f4a207adf5ea905e8f1771b4e7e8dbd1c6a6c5b725866a0ae4fce725","7a908974bce18cfe12a27bb2ad5a488cd7484a7787104870b27034f94eee31dd"],["213c7a715cd5d45358d0bbf9dc0ce02204b10bdde2a3f58540ad6908d0559754","4b6dad0b5ae462507013ad06245ba190bb4850f5f36a7eeddff2c27534b458f2"],["4e7c272a7af4b34e8dbb9352a5419a87e2838c70adc62cddf0cc3a3b08fbd53c","17749c766c9d0b18e16fd09f6def681b530b9614bff7dd33e0b3941817dcaae6"],["fea74e3dbe778b1b10f238ad61686aa5c76e3db2be43057632427e2840fb27b6","6e0568db9b0b13297cf674deccb6af93126b596b973f7b77701d3db7f23cb96f"],["76e64113f677cf0e10a2570d599968d31544e179b760432952c02a4417bdde39","c90ddf8dee4e95cf577066d70681f0d35e2a33d2b56d2032b4b1752d1901ac01"],["c738c56b03b2abe1e8281baa743f8f9a8f7cc643df26cbee3ab150242bcbb891","893fb578951ad2537f718f2eacbfbbbb82314eef7880cfe917e735d9699a84c3"],["d895626548b65b81e264c7637c972877d1d72e5f3a925014372e9f6588f6c14b","febfaa38f2bc7eae728ec60818c340eb03428d632bb067e179363ed75d7d991f"],["b8da94032a957518eb0f6433571e8761ceffc73693e84edd49150a564f676e03","2804dfa44805a1e4d7c99cc9762808b092cc584d95ff3b511488e4e74efdf6e7"],["e80fea14441fb33a7d8adab9475d7fab2019effb5156a792f1a11778e3c0df5d","eed1de7f638e00771e89768ca3ca94472d155e80af322ea9fcb4291b6ac9ec78"],["a301697bdfcd704313ba48e51d567543f2a182031efd6915ddc07bbcc4e16070","7370f91cfb67e4f5081809fa25d40f9b1735dbf7c0a11a130c0d1a041e177ea1"],["90ad85b389d6b936463f9d0512678de208cc330b11307fffab7ac63e3fb04ed4","e507a3620a38261affdcbd9427222b839aefabe1582894d991d4d48cb6ef150"],["8f68b9d2f63b5f339239c1ad981f162ee88c5678723ea3351b7b444c9ec4c0da","662a9f2dba063986de1d90c2b6be215dbbea2cfe95510bfdf23cbf79501fff82"],["e4f3fb0176af85d65ff99ff9198c36091f48e86503681e3e6686fd5053231e11","1e63633ad0ef4f1c1661a6d0ea02b7286cc7e74ec951d1c9822c38576feb73bc"],["8c00fa9b18ebf331eb961537a45a4266c7034f2f0d4e1d0716fb6eae20eae29e","efa47267fea521a1a9dc343a3736c974c2fadafa81e36c54e7d2a4c66702414b"],["e7a26ce69dd4829f3e10cec0a9e98ed3143d084f308b92c0997fddfc60cb3e41","2a758e300fa7984b471b006a1aafbb18d0a6b2c0420e83e20e8a9421cf2cfd51"],["b6459e0ee3662ec8d23540c223bcbdc571cbcb967d79424f3cf29eb3de6b80ef","67c876d06f3e06de1dadf16e5661db3c4b3ae6d48e35b2ff30bf0b61a71ba45"],["d68a80c8280bb840793234aa118f06231d6f1fc67e73c5a5deda0f5b496943e8","db8ba9fff4b586d00c4b1f9177b0e28b5b0e7b8f7845295a294c84266b133120"],["324aed7df65c804252dc0270907a30b09612aeb973449cea4095980fc28d3d5d","648a365774b61f2ff130c0c35aec1f4f19213b0c7e332843967224af96ab7c84"],["4df9c14919cde61f6d51dfdbe5fee5dceec4143ba8d1ca888e8bd373fd054c96","35ec51092d8728050974c23a1d85d4b5d506cdc288490192ebac06cad10d5d"],["9c3919a84a474870faed8a9c1cc66021523489054d7f0308cbfc99c8ac1f98cd","ddb84f0f4a4ddd57584f044bf260e641905326f76c64c8e6be7e5e03d4fc599d"],["6057170b1dd12fdf8de05f281d8e06bb91e1493a8b91d4cc5a21382120a959e5","9a1af0b26a6a4807add9a2daf71df262465152bc3ee24c65e899be932385a2a8"],["a576df8e23a08411421439a4518da31880cef0fba7d4df12b1a6973eecb94266","40a6bf20e76640b2c92b97afe58cd82c432e10a7f514d9f3ee8be11ae1b28ec8"],["7778a78c28dec3e30a05fe9629de8c38bb30d1f5cf9a3a208f763889be58ad71","34626d9ab5a5b22ff7098e12f2ff580087b38411ff24ac563b513fc1fd9f43ac"],["928955ee637a84463729fd30e7afd2ed5f96274e5ad7e5cb09eda9c06d903ac","c25621003d3f42a827b78a13093a95eeac3d26efa8a8d83fc5180e935bcd091f"],["85d0fef3ec6db109399064f3a0e3b2855645b4a907ad354527aae75163d82751","1f03648413a38c0be29d496e582cf5663e8751e96877331582c237a24eb1f962"],["ff2b0dce97eece97c1c9b6041798b85dfdfb6d8882da20308f5404824526087e","493d13fef524ba188af4c4dc54d07936c7b7ed6fb90e2ceb2c951e01f0c29907"],["827fbbe4b1e880ea9ed2b2e6301b212b57f1ee148cd6dd28780e5e2cf856e241","c60f9c923c727b0b71bef2c67d1d12687ff7a63186903166d605b68baec293ec"],["eaa649f21f51bdbae7be4ae34ce6e5217a58fdce7f47f9aa7f3b58fa2120e2b3","be3279ed5bbbb03ac69a80f89879aa5a01a6b965f13f7e59d47a5305ba5ad93d"],["e4a42d43c5cf169d9391df6decf42ee541b6d8f0c9a137401e23632dda34d24f","4d9f92e716d1c73526fc99ccfb8ad34ce886eedfa8d8e4f13a7f7131deba9414"],["1ec80fef360cbdd954160fadab352b6b92b53576a88fea4947173b9d4300bf19","aeefe93756b5340d2f3a4958a7abbf5e0146e77f6295a07b671cdc1cc107cefd"],["146a778c04670c2f91b00af4680dfa8bce3490717d58ba889ddb5928366642be","b318e0ec3354028add669827f9d4b2870aaa971d2f7e5ed1d0b297483d83efd0"],["fa50c0f61d22e5f07e3acebb1aa07b128d0012209a28b9776d76a8793180eef9","6b84c6922397eba9b72cd2872281a68a5e683293a57a213b38cd8d7d3f4f2811"],["da1d61d0ca721a11b1a5bf6b7d88e8421a288ab5d5bba5220e53d32b5f067ec2","8157f55a7c99306c79c0766161c91e2966a73899d279b48a655fba0f1ad836f1"],["a8e282ff0c9706907215ff98e8fd416615311de0446f1e062a73b0610d064e13","7f97355b8db81c09abfb7f3c5b2515888b679a3e50dd6bd6cef7c73111f4cc0c"],["174a53b9c9a285872d39e56e6913cab15d59b1fa512508c022f382de8319497c","ccc9dc37abfc9c1657b4155f2c47f9e6646b3a1d8cb9854383da13ac079afa73"],["959396981943785c3d3e57edf5018cdbe039e730e4918b3d884fdff09475b7ba","2e7e552888c331dd8ba0386a4b9cd6849c653f64c8709385e9b8abf87524f2fd"],["d2a63a50ae401e56d645a1153b109a8fcca0a43d561fba2dbb51340c9d82b151","e82d86fb6443fcb7565aee58b2948220a70f750af484ca52d4142174dcf89405"],["64587e2335471eb890ee7896d7cfdc866bacbdbd3839317b3436f9b45617e073","d99fcdd5bf6902e2ae96dd6447c299a185b90a39133aeab358299e5e9faf6589"],["8481bde0e4e4d885b3a546d3e549de042f0aa6cea250e7fd358d6c86dd45e458","38ee7b8cba5404dd84a25bf39cecb2ca900a79c42b262e556d64b1b59779057e"],["13464a57a78102aa62b6979ae817f4637ffcfed3c4b1ce30bcd6303f6caf666b","69be159004614580ef7e433453ccb0ca48f300a81d0942e13f495a907f6ecc27"],["bc4a9df5b713fe2e9aef430bcc1dc97a0cd9ccede2f28588cada3a0d2d83f366","d3a81ca6e785c06383937adf4b798caa6e8a9fbfa547b16d758d666581f33c1"],["8c28a97bf8298bc0d23d8c749452a32e694b65e30a9472a3954ab30fe5324caa","40a30463a3305193378fedf31f7cc0eb7ae784f0451cb9459e71dc73cbef9482"],["8ea9666139527a8c1dd94ce4f071fd23c8b350c5a4bb33748c4ba111faccae0","620efabbc8ee2782e24e7c0cfb95c5d735b783be9cf0f8e955af34a30e62b945"],["dd3625faef5ba06074669716bbd3788d89bdde815959968092f76cc4eb9a9787","7a188fa3520e30d461da2501045731ca941461982883395937f68d00c644a573"],["f710d79d9eb962297e4f6232b40e8f7feb2bc63814614d692c12de752408221e","ea98e67232d3b3295d3b535532115ccac8612c721851617526ae47a9c77bfc82"]]},naf:{wnd:7,points:[["f9308a019258c31049344f85f89d5229b531c845836f99b08601f113bce036f9","388f7b0f632de8140fe337e62a37f3566500a99934c2231b6cb9fd7584b8e672"],["2f8bde4d1a07209355b4a7250a5c5128e88b84bddc619ab7cba8d569b240efe4","d8ac222636e5e3d6d4dba9dda6c9c426f788271bab0d6840dca87d3aa6ac62d6"],["5cbdf0646e5db4eaa398f365f2ea7a0e3d419b7e0330e39ce92bddedcac4f9bc","6aebca40ba255960a3178d6d861a54dba813d0b813fde7b5a5082628087264da"],["acd484e2f0c7f65309ad178a9f559abde09796974c57e714c35f110dfc27ccbe","cc338921b0a7d9fd64380971763b61e9add888a4375f8e0f05cc262ac64f9c37"],["774ae7f858a9411e5ef4246b70c65aac5649980be5c17891bbec17895da008cb","d984a032eb6b5e190243dd56d7b7b365372db1e2dff9d6a8301d74c9c953c61b"],["f28773c2d975288bc7d1d205c3748651b075fbc6610e58cddeeddf8f19405aa8","ab0902e8d880a89758212eb65cdaf473a1a06da521fa91f29b5cb52db03ed81"],["d7924d4f7d43ea965a465ae3095ff41131e5946f3c85f79e44adbcf8e27e080e","581e2872a86c72a683842ec228cc6defea40af2bd896d3a5c504dc9ff6a26b58"],["defdea4cdb677750a420fee807eacf21eb9898ae79b9768766e4faa04a2d4a34","4211ab0694635168e997b0ead2a93daeced1f4a04a95c0f6cfb199f69e56eb77"],["2b4ea0a797a443d293ef5cff444f4979f06acfebd7e86d277475656138385b6c","85e89bc037945d93b343083b5a1c86131a01f60c50269763b570c854e5c09b7a"],["352bbf4a4cdd12564f93fa332ce333301d9ad40271f8107181340aef25be59d5","321eb4075348f534d59c18259dda3e1f4a1b3b2e71b1039c67bd3d8bcf81998c"],["2fa2104d6b38d11b0230010559879124e42ab8dfeff5ff29dc9cdadd4ecacc3f","2de1068295dd865b64569335bd5dd80181d70ecfc882648423ba76b532b7d67"],["9248279b09b4d68dab21a9b066edda83263c3d84e09572e269ca0cd7f5453714","73016f7bf234aade5d1aa71bdea2b1ff3fc0de2a887912ffe54a32ce97cb3402"],["daed4f2be3a8bf278e70132fb0beb7522f570e144bf615c07e996d443dee8729","a69dce4a7d6c98e8d4a1aca87ef8d7003f83c230f3afa726ab40e52290be1c55"],["c44d12c7065d812e8acf28d7cbb19f9011ecd9e9fdf281b0e6a3b5e87d22e7db","2119a460ce326cdc76c45926c982fdac0e106e861edf61c5a039063f0e0e6482"],["6a245bf6dc698504c89a20cfded60853152b695336c28063b61c65cbd269e6b4","e022cf42c2bd4a708b3f5126f16a24ad8b33ba48d0423b6efd5e6348100d8a82"],["1697ffa6fd9de627c077e3d2fe541084ce13300b0bec1146f95ae57f0d0bd6a5","b9c398f186806f5d27561506e4557433a2cf15009e498ae7adee9d63d01b2396"],["605bdb019981718b986d0f07e834cb0d9deb8360ffb7f61df982345ef27a7479","2972d2de4f8d20681a78d93ec96fe23c26bfae84fb14db43b01e1e9056b8c49"],["62d14dab4150bf497402fdc45a215e10dcb01c354959b10cfe31c7e9d87ff33d","80fc06bd8cc5b01098088a1950eed0db01aa132967ab472235f5642483b25eaf"],["80c60ad0040f27dade5b4b06c408e56b2c50e9f56b9b8b425e555c2f86308b6f","1c38303f1cc5c30f26e66bad7fe72f70a65eed4cbe7024eb1aa01f56430bd57a"],["7a9375ad6167ad54aa74c6348cc54d344cc5dc9487d847049d5eabb0fa03c8fb","d0e3fa9eca8726909559e0d79269046bdc59ea10c70ce2b02d499ec224dc7f7"],["d528ecd9b696b54c907a9ed045447a79bb408ec39b68df504bb51f459bc3ffc9","eecf41253136e5f99966f21881fd656ebc4345405c520dbc063465b521409933"],["49370a4b5f43412ea25f514e8ecdad05266115e4a7ecb1387231808f8b45963","758f3f41afd6ed428b3081b0512fd62a54c3f3afbb5b6764b653052a12949c9a"],["77f230936ee88cbbd73df930d64702ef881d811e0e1498e2f1c13eb1fc345d74","958ef42a7886b6400a08266e9ba1b37896c95330d97077cbbe8eb3c7671c60d6"],["f2dac991cc4ce4b9ea44887e5c7c0bce58c80074ab9d4dbaeb28531b7739f530","e0dedc9b3b2f8dad4da1f32dec2531df9eb5fbeb0598e4fd1a117dba703a3c37"],["463b3d9f662621fb1b4be8fbbe2520125a216cdfc9dae3debcba4850c690d45b","5ed430d78c296c3543114306dd8622d7c622e27c970a1de31cb377b01af7307e"],["f16f804244e46e2a09232d4aff3b59976b98fac14328a2d1a32496b49998f247","cedabd9b82203f7e13d206fcdf4e33d92a6c53c26e5cce26d6579962c4e31df6"],["caf754272dc84563b0352b7a14311af55d245315ace27c65369e15f7151d41d1","cb474660ef35f5f2a41b643fa5e460575f4fa9b7962232a5c32f908318a04476"],["2600ca4b282cb986f85d0f1709979d8b44a09c07cb86d7c124497bc86f082120","4119b88753c15bd6a693b03fcddbb45d5ac6be74ab5f0ef44b0be9475a7e4b40"],["7635ca72d7e8432c338ec53cd12220bc01c48685e24f7dc8c602a7746998e435","91b649609489d613d1d5e590f78e6d74ecfc061d57048bad9e76f302c5b9c61"],["754e3239f325570cdbbf4a87deee8a66b7f2b33479d468fbc1a50743bf56cc18","673fb86e5bda30fb3cd0ed304ea49a023ee33d0197a695d0c5d98093c536683"],["e3e6bd1071a1e96aff57859c82d570f0330800661d1c952f9fe2694691d9b9e8","59c9e0bba394e76f40c0aa58379a3cb6a5a2283993e90c4167002af4920e37f5"],["186b483d056a033826ae73d88f732985c4ccb1f32ba35f4b4cc47fdcf04aa6eb","3b952d32c67cf77e2e17446e204180ab21fb8090895138b4a4a797f86e80888b"],["df9d70a6b9876ce544c98561f4be4f725442e6d2b737d9c91a8321724ce0963f","55eb2dafd84d6ccd5f862b785dc39d4ab157222720ef9da217b8c45cf2ba2417"],["5edd5cc23c51e87a497ca815d5dce0f8ab52554f849ed8995de64c5f34ce7143","efae9c8dbc14130661e8cec030c89ad0c13c66c0d17a2905cdc706ab7399a868"],["290798c2b6476830da12fe02287e9e777aa3fba1c355b17a722d362f84614fba","e38da76dcd440621988d00bcf79af25d5b29c094db2a23146d003afd41943e7a"],["af3c423a95d9f5b3054754efa150ac39cd29552fe360257362dfdecef4053b45","f98a3fd831eb2b749a93b0e6f35cfb40c8cd5aa667a15581bc2feded498fd9c6"],["766dbb24d134e745cccaa28c99bf274906bb66b26dcf98df8d2fed50d884249a","744b1152eacbe5e38dcc887980da38b897584a65fa06cedd2c924f97cbac5996"],["59dbf46f8c94759ba21277c33784f41645f7b44f6c596a58ce92e666191abe3e","c534ad44175fbc300f4ea6ce648309a042ce739a7919798cd85e216c4a307f6e"],["f13ada95103c4537305e691e74e9a4a8dd647e711a95e73cb62dc6018cfd87b8","e13817b44ee14de663bf4bc808341f326949e21a6a75c2570778419bdaf5733d"],["7754b4fa0e8aced06d4167a2c59cca4cda1869c06ebadfb6488550015a88522c","30e93e864e669d82224b967c3020b8fa8d1e4e350b6cbcc537a48b57841163a2"],["948dcadf5990e048aa3874d46abef9d701858f95de8041d2a6828c99e2262519","e491a42537f6e597d5d28a3224b1bc25df9154efbd2ef1d2cbba2cae5347d57e"],["7962414450c76c1689c7b48f8202ec37fb224cf5ac0bfa1570328a8a3d7c77ab","100b610ec4ffb4760d5c1fc133ef6f6b12507a051f04ac5760afa5b29db83437"],["3514087834964b54b15b160644d915485a16977225b8847bb0dd085137ec47ca","ef0afbb2056205448e1652c48e8127fc6039e77c15c2378b7e7d15a0de293311"],["d3cc30ad6b483e4bc79ce2c9dd8bc54993e947eb8df787b442943d3f7b527eaf","8b378a22d827278d89c5e9be8f9508ae3c2ad46290358630afb34db04eede0a4"],["1624d84780732860ce1c78fcbfefe08b2b29823db913f6493975ba0ff4847610","68651cf9b6da903e0914448c6cd9d4ca896878f5282be4c8cc06e2a404078575"],["733ce80da955a8a26902c95633e62a985192474b5af207da6df7b4fd5fc61cd4","f5435a2bd2badf7d485a4d8b8db9fcce3e1ef8e0201e4578c54673bc1dc5ea1d"],["15d9441254945064cf1a1c33bbd3b49f8966c5092171e699ef258dfab81c045c","d56eb30b69463e7234f5137b73b84177434800bacebfc685fc37bbe9efe4070d"],["a1d0fcf2ec9de675b612136e5ce70d271c21417c9d2b8aaaac138599d0717940","edd77f50bcb5a3cab2e90737309667f2641462a54070f3d519212d39c197a629"],["e22fbe15c0af8ccc5780c0735f84dbe9a790badee8245c06c7ca37331cb36980","a855babad5cd60c88b430a69f53a1a7a38289154964799be43d06d77d31da06"],["311091dd9860e8e20ee13473c1155f5f69635e394704eaa74009452246cfa9b3","66db656f87d1f04fffd1f04788c06830871ec5a64feee685bd80f0b1286d8374"],["34c1fd04d301be89b31c0442d3e6ac24883928b45a9340781867d4232ec2dbdf","9414685e97b1b5954bd46f730174136d57f1ceeb487443dc5321857ba73abee"],["f219ea5d6b54701c1c14de5b557eb42a8d13f3abbcd08affcc2a5e6b049b8d63","4cb95957e83d40b0f73af4544cccf6b1f4b08d3c07b27fb8d8c2962a400766d1"],["d7b8740f74a8fbaab1f683db8f45de26543a5490bca627087236912469a0b448","fa77968128d9c92ee1010f337ad4717eff15db5ed3c049b3411e0315eaa4593b"],["32d31c222f8f6f0ef86f7c98d3a3335ead5bcd32abdd94289fe4d3091aa824bf","5f3032f5892156e39ccd3d7915b9e1da2e6dac9e6f26e961118d14b8462e1661"],["7461f371914ab32671045a155d9831ea8793d77cd59592c4340f86cbc18347b5","8ec0ba238b96bec0cbdddcae0aa442542eee1ff50c986ea6b39847b3cc092ff6"],["ee079adb1df1860074356a25aa38206a6d716b2c3e67453d287698bad7b2b2d6","8dc2412aafe3be5c4c5f37e0ecc5f9f6a446989af04c4e25ebaac479ec1c8c1e"],["16ec93e447ec83f0467b18302ee620f7e65de331874c9dc72bfd8616ba9da6b5","5e4631150e62fb40d0e8c2a7ca5804a39d58186a50e497139626778e25b0674d"],["eaa5f980c245f6f038978290afa70b6bd8855897f98b6aa485b96065d537bd99","f65f5d3e292c2e0819a528391c994624d784869d7e6ea67fb18041024edc07dc"],["78c9407544ac132692ee1910a02439958ae04877151342ea96c4b6b35a49f51","f3e0319169eb9b85d5404795539a5e68fa1fbd583c064d2462b675f194a3ddb4"],["494f4be219a1a77016dcd838431aea0001cdc8ae7a6fc688726578d9702857a5","42242a969283a5f339ba7f075e36ba2af925ce30d767ed6e55f4b031880d562c"],["a598a8030da6d86c6bc7f2f5144ea549d28211ea58faa70ebf4c1e665c1fe9b5","204b5d6f84822c307e4b4a7140737aec23fc63b65b35f86a10026dbd2d864e6b"],["c41916365abb2b5d09192f5f2dbeafec208f020f12570a184dbadc3e58595997","4f14351d0087efa49d245b328984989d5caf9450f34bfc0ed16e96b58fa9913"],["841d6063a586fa475a724604da03bc5b92a2e0d2e0a36acfe4c73a5514742881","73867f59c0659e81904f9a1c7543698e62562d6744c169ce7a36de01a8d6154"],["5e95bb399a6971d376026947f89bde2f282b33810928be4ded112ac4d70e20d5","39f23f366809085beebfc71181313775a99c9aed7d8ba38b161384c746012865"],["36e4641a53948fd476c39f8a99fd974e5ec07564b5315d8bf99471bca0ef2f66","d2424b1b1abe4eb8164227b085c9aa9456ea13493fd563e06fd51cf5694c78fc"],["336581ea7bfbbb290c191a2f507a41cf5643842170e914faeab27c2c579f726","ead12168595fe1be99252129b6e56b3391f7ab1410cd1e0ef3dcdcabd2fda224"],["8ab89816dadfd6b6a1f2634fcf00ec8403781025ed6890c4849742706bd43ede","6fdcef09f2f6d0a044e654aef624136f503d459c3e89845858a47a9129cdd24e"],["1e33f1a746c9c5778133344d9299fcaa20b0938e8acff2544bb40284b8c5fb94","60660257dd11b3aa9c8ed618d24edff2306d320f1d03010e33a7d2057f3b3b6"],["85b7c1dcb3cec1b7ee7f30ded79dd20a0ed1f4cc18cbcfcfa410361fd8f08f31","3d98a9cdd026dd43f39048f25a8847f4fcafad1895d7a633c6fed3c35e999511"],["29df9fbd8d9e46509275f4b125d6d45d7fbe9a3b878a7af872a2800661ac5f51","b4c4fe99c775a606e2d8862179139ffda61dc861c019e55cd2876eb2a27d84b"],["a0b1cae06b0a847a3fea6e671aaf8adfdfe58ca2f768105c8082b2e449fce252","ae434102edde0958ec4b19d917a6a28e6b72da1834aff0e650f049503a296cf2"],["4e8ceafb9b3e9a136dc7ff67e840295b499dfb3b2133e4ba113f2e4c0e121e5","cf2174118c8b6d7a4b48f6d534ce5c79422c086a63460502b827ce62a326683c"],["d24a44e047e19b6f5afb81c7ca2f69080a5076689a010919f42725c2b789a33b","6fb8d5591b466f8fc63db50f1c0f1c69013f996887b8244d2cdec417afea8fa3"],["ea01606a7a6c9cdd249fdfcfacb99584001edd28abbab77b5104e98e8e3b35d4","322af4908c7312b0cfbfe369f7a7b3cdb7d4494bc2823700cfd652188a3ea98d"],["af8addbf2b661c8a6c6328655eb96651252007d8c5ea31be4ad196de8ce2131f","6749e67c029b85f52a034eafd096836b2520818680e26ac8f3dfbcdb71749700"],["e3ae1974566ca06cc516d47e0fb165a674a3dabcfca15e722f0e3450f45889","2aeabe7e4531510116217f07bf4d07300de97e4874f81f533420a72eeb0bd6a4"],["591ee355313d99721cf6993ffed1e3e301993ff3ed258802075ea8ced397e246","b0ea558a113c30bea60fc4775460c7901ff0b053d25ca2bdeee98f1a4be5d196"],["11396d55fda54c49f19aa97318d8da61fa8584e47b084945077cf03255b52984","998c74a8cd45ac01289d5833a7beb4744ff536b01b257be4c5767bea93ea57a4"],["3c5d2a1ba39c5a1790000738c9e0c40b8dcdfd5468754b6405540157e017aa7a","b2284279995a34e2f9d4de7396fc18b80f9b8b9fdd270f6661f79ca4c81bd257"],["cc8704b8a60a0defa3a99a7299f2e9c3fbc395afb04ac078425ef8a1793cc030","bdd46039feed17881d1e0862db347f8cf395b74fc4bcdc4e940b74e3ac1f1b13"],["c533e4f7ea8555aacd9777ac5cad29b97dd4defccc53ee7ea204119b2889b197","6f0a256bc5efdf429a2fb6242f1a43a2d9b925bb4a4b3a26bb8e0f45eb596096"],["c14f8f2ccb27d6f109f6d08d03cc96a69ba8c34eec07bbcf566d48e33da6593","c359d6923bb398f7fd4473e16fe1c28475b740dd098075e6c0e8649113dc3a38"],["a6cbc3046bc6a450bac24789fa17115a4c9739ed75f8f21ce441f72e0b90e6ef","21ae7f4680e889bb130619e2c0f95a360ceb573c70603139862afd617fa9b9f"],["347d6d9a02c48927ebfb86c1359b1caf130a3c0267d11ce6344b39f99d43cc38","60ea7f61a353524d1c987f6ecec92f086d565ab687870cb12689ff1e31c74448"],["da6545d2181db8d983f7dcb375ef5866d47c67b1bf31c8cf855ef7437b72656a","49b96715ab6878a79e78f07ce5680c5d6673051b4935bd897fea824b77dc208a"],["c40747cc9d012cb1a13b8148309c6de7ec25d6945d657146b9d5994b8feb1111","5ca560753be2a12fc6de6caf2cb489565db936156b9514e1bb5e83037e0fa2d4"],["4e42c8ec82c99798ccf3a610be870e78338c7f713348bd34c8203ef4037f3502","7571d74ee5e0fb92a7a8b33a07783341a5492144cc54bcc40a94473693606437"],["3775ab7089bc6af823aba2e1af70b236d251cadb0c86743287522a1b3b0dedea","be52d107bcfa09d8bcb9736a828cfa7fac8db17bf7a76a2c42ad961409018cf7"],["cee31cbf7e34ec379d94fb814d3d775ad954595d1314ba8846959e3e82f74e26","8fd64a14c06b589c26b947ae2bcf6bfa0149ef0be14ed4d80f448a01c43b1c6d"],["b4f9eaea09b6917619f6ea6a4eb5464efddb58fd45b1ebefcdc1a01d08b47986","39e5c9925b5a54b07433a4f18c61726f8bb131c012ca542eb24a8ac07200682a"],["d4263dfc3d2df923a0179a48966d30ce84e2515afc3dccc1b77907792ebcc60e","62dfaf07a0f78feb30e30d6295853ce189e127760ad6cf7fae164e122a208d54"],["48457524820fa65a4f8d35eb6930857c0032acc0a4a2de422233eeda897612c4","25a748ab367979d98733c38a1fa1c2e7dc6cc07db2d60a9ae7a76aaa49bd0f77"],["dfeeef1881101f2cb11644f3a2afdfc2045e19919152923f367a1767c11cceda","ecfb7056cf1de042f9420bab396793c0c390bde74b4bbdff16a83ae09a9a7517"],["6d7ef6b17543f8373c573f44e1f389835d89bcbc6062ced36c82df83b8fae859","cd450ec335438986dfefa10c57fea9bcc521a0959b2d80bbf74b190dca712d10"],["e75605d59102a5a2684500d3b991f2e3f3c88b93225547035af25af66e04541f","f5c54754a8f71ee540b9b48728473e314f729ac5308b06938360990e2bfad125"],["eb98660f4c4dfaa06a2be453d5020bc99a0c2e60abe388457dd43fefb1ed620c","6cb9a8876d9cb8520609af3add26cd20a0a7cd8a9411131ce85f44100099223e"],["13e87b027d8514d35939f2e6892b19922154596941888336dc3563e3b8dba942","fef5a3c68059a6dec5d624114bf1e91aac2b9da568d6abeb2570d55646b8adf1"],["ee163026e9fd6fe017c38f06a5be6fc125424b371ce2708e7bf4491691e5764a","1acb250f255dd61c43d94ccc670d0f58f49ae3fa15b96623e5430da0ad6c62b2"],["b268f5ef9ad51e4d78de3a750c2dc89b1e626d43505867999932e5db33af3d80","5f310d4b3c99b9ebb19f77d41c1dee018cf0d34fd4191614003e945a1216e423"],["ff07f3118a9df035e9fad85eb6c7bfe42b02f01ca99ceea3bf7ffdba93c4750d","438136d603e858a3a5c440c38eccbaddc1d2942114e2eddd4740d098ced1f0d8"],["8d8b9855c7c052a34146fd20ffb658bea4b9f69e0d825ebec16e8c3ce2b526a1","cdb559eedc2d79f926baf44fb84ea4d44bcf50fee51d7ceb30e2e7f463036758"],["52db0b5384dfbf05bfa9d472d7ae26dfe4b851ceca91b1eba54263180da32b63","c3b997d050ee5d423ebaf66a6db9f57b3180c902875679de924b69d84a7b375"],["e62f9490d3d51da6395efd24e80919cc7d0f29c3f3fa48c6fff543becbd43352","6d89ad7ba4876b0b22c2ca280c682862f342c8591f1daf5170e07bfd9ccafa7d"],["7f30ea2476b399b4957509c88f77d0191afa2ff5cb7b14fd6d8e7d65aaab1193","ca5ef7d4b231c94c3b15389a5f6311e9daff7bb67b103e9880ef4bff637acaec"],["5098ff1e1d9f14fb46a210fada6c903fef0fb7b4a1dd1d9ac60a0361800b7a00","9731141d81fc8f8084d37c6e7542006b3ee1b40d60dfe5362a5b132fd17ddc0"],["32b78c7de9ee512a72895be6b9cbefa6e2f3c4ccce445c96b9f2c81e2778ad58","ee1849f513df71e32efc3896ee28260c73bb80547ae2275ba497237794c8753c"],["e2cb74fddc8e9fbcd076eef2a7c72b0ce37d50f08269dfc074b581550547a4f7","d3aa2ed71c9dd2247a62df062736eb0baddea9e36122d2be8641abcb005cc4a4"],["8438447566d4d7bedadc299496ab357426009a35f235cb141be0d99cd10ae3a8","c4e1020916980a4da5d01ac5e6ad330734ef0d7906631c4f2390426b2edd791f"],["4162d488b89402039b584c6fc6c308870587d9c46f660b878ab65c82c711d67e","67163e903236289f776f22c25fb8a3afc1732f2b84b4e95dbda47ae5a0852649"],["3fad3fa84caf0f34f0f89bfd2dcf54fc175d767aec3e50684f3ba4a4bf5f683d","cd1bc7cb6cc407bb2f0ca647c718a730cf71872e7d0d2a53fa20efcdfe61826"],["674f2600a3007a00568c1a7ce05d0816c1fb84bf1370798f1c69532faeb1a86b","299d21f9413f33b3edf43b257004580b70db57da0b182259e09eecc69e0d38a5"],["d32f4da54ade74abb81b815ad1fb3b263d82d6c692714bcff87d29bd5ee9f08f","f9429e738b8e53b968e99016c059707782e14f4535359d582fc416910b3eea87"],["30e4e670435385556e593657135845d36fbb6931f72b08cb1ed954f1e3ce3ff6","462f9bce619898638499350113bbc9b10a878d35da70740dc695a559eb88db7b"],["be2062003c51cc3004682904330e4dee7f3dcd10b01e580bf1971b04d4cad297","62188bc49d61e5428573d48a74e1c655b1c61090905682a0d5558ed72dccb9bc"],["93144423ace3451ed29e0fb9ac2af211cb6e84a601df5993c419859fff5df04a","7c10dfb164c3425f5c71a3f9d7992038f1065224f72bb9d1d902a6d13037b47c"],["b015f8044f5fcbdcf21ca26d6c34fb8197829205c7b7d2a7cb66418c157b112c","ab8c1e086d04e813744a655b2df8d5f83b3cdc6faa3088c1d3aea1454e3a1d5f"],["d5e9e1da649d97d89e4868117a465a3a4f8a18de57a140d36b3f2af341a21b52","4cb04437f391ed73111a13cc1d4dd0db1693465c2240480d8955e8592f27447a"],["d3ae41047dd7ca065dbf8ed77b992439983005cd72e16d6f996a5316d36966bb","bd1aeb21ad22ebb22a10f0303417c6d964f8cdd7df0aca614b10dc14d125ac46"],["463e2763d885f958fc66cdd22800f0a487197d0a82e377b49f80af87c897b065","bfefacdb0e5d0fd7df3a311a94de062b26b80c61fbc97508b79992671ef7ca7f"],["7985fdfd127c0567c6f53ec1bb63ec3158e597c40bfe747c83cddfc910641917","603c12daf3d9862ef2b25fe1de289aed24ed291e0ec6708703a5bd567f32ed03"],["74a1ad6b5f76e39db2dd249410eac7f99e74c59cb83d2d0ed5ff1543da7703e9","cc6157ef18c9c63cd6193d83631bbea0093e0968942e8c33d5737fd790e0db08"],["30682a50703375f602d416664ba19b7fc9bab42c72747463a71d0896b22f6da3","553e04f6b018b4fa6c8f39e7f311d3176290d0e0f19ca73f17714d9977a22ff8"],["9e2158f0d7c0d5f26c3791efefa79597654e7a2b2464f52b1ee6c1347769ef57","712fcdd1b9053f09003a3481fa7762e9ffd7c8ef35a38509e2fbf2629008373"],["176e26989a43c9cfeba4029c202538c28172e566e3c4fce7322857f3be327d66","ed8cc9d04b29eb877d270b4878dc43c19aefd31f4eee09ee7b47834c1fa4b1c3"],["75d46efea3771e6e68abb89a13ad747ecf1892393dfc4f1b7004788c50374da8","9852390a99507679fd0b86fd2b39a868d7efc22151346e1a3ca4726586a6bed8"],["809a20c67d64900ffb698c4c825f6d5f2310fb0451c869345b7319f645605721","9e994980d9917e22b76b061927fa04143d096ccc54963e6a5ebfa5f3f8e286c1"],["1b38903a43f7f114ed4500b4eac7083fdefece1cf29c63528d563446f972c180","4036edc931a60ae889353f77fd53de4a2708b26b6f5da72ad3394119daf408f9"]]}}});var n9=x(nZ=>{"use strict";var kR=nZ,_0=b0(),NR=ER(),QMe=Ro(),rZ=QMe.assert;function iZ(t){t.type==="short"?this.curve=new NR.short(t):t.type==="edwards"?this.curve=new NR.edwards(t):this.curve=new NR.mont(t),this.g=this.curve.g,this.n=this.curve.n,this.hash=t.hash,rZ(this.g.validate(),"Invalid curve"),rZ(this.g.mul(this.n).isInfinity(),"Invalid curve, G*N != O")}kR.PresetCurve=iZ;function w0(t,e){Object.defineProperty(kR,t,{configurable:!0,enumerable:!0,get:function(){var r=new iZ(e);return Object.defineProperty(kR,t,{configurable:!0,enumerable:!0,value:r}),r}})}w0("p192",{type:"short",prime:"p192",p:"ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff",a:"ffffffff ffffffff ffffffff fffffffe ffffffff fffffffc",b:"64210519 e59c80e7 0fa7e9ab 72243049 feb8deec c146b9b1",n:"ffffffff ffffffff ffffffff 99def836 146bc9b1 b4d22831",hash:_0.sha256,gRed:!1,g:["188da80e b03090f6 7cbf20eb 43a18800 f4ff0afd 82ff1012","07192b95 ffc8da78 631011ed 6b24cdd5 73f977a1 1e794811"]});w0("p224",{type:"short",prime:"p224",p:"ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001",a:"ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff fffffffe",b:"b4050a85 0c04b3ab f5413256 5044b0b7 d7bfd8ba 270b3943 2355ffb4",n:"ffffffff ffffffff ffffffff ffff16a2 e0b8f03e 13dd2945 5c5c2a3d",hash:_0.sha256,gRed:!1,g:["b70e0cbd 6bb4bf7f 321390b9 4a03c1d3 56c21122 343280d6 115c1d21","bd376388 b5f723fb 4c22dfe6 cd4375a0 5a074764 44d58199 85007e34"]});w0("p256",{type:"short",prime:null,p:"ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff ffffffff",a:"ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff fffffffc",b:"5ac635d8 aa3a93e7 b3ebbd55 769886bc 651d06b0 cc53b0f6 3bce3c3e 27d2604b",n:"ffffffff 00000000 ffffffff ffffffff bce6faad a7179e84 f3b9cac2 fc632551",hash:_0.sha256,gRed:!1,g:["6b17d1f2 e12c4247 f8bce6e5 63a440f2 77037d81 2deb33a0 f4a13945 d898c296","4fe342e2 fe1a7f9b 8ee7eb4a 7c0f9e16 2bce3357 6b315ece cbb64068 37bf51f5"]});w0("p384",{type:"short",prime:null,p:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe ffffffff 00000000 00000000 ffffffff",a:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe ffffffff 00000000 00000000 fffffffc",b:"b3312fa7 e23ee7e4 988e056b e3f82d19 181d9c6e fe814112 0314088f 5013875a c656398d 8a2ed19d 2a85c8ed d3ec2aef",n:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff c7634d81 f4372ddf 581a0db2 48b0a77a ecec196a ccc52973",hash:_0.sha384,gRed:!1,g:["aa87ca22 be8b0537 8eb1c71e f320ad74 6e1d3b62 8ba79b98 59f741e0 82542a38 5502f25d bf55296c 3a545e38 72760ab7","3617de4a 96262c6f 5d9e98bf 9292dc29 f8f41dbd 289a147c e9da3113 b5f0b8c0 0a60b1ce 1d7e819d 7a431d7c 90ea0e5f"]});w0("p521",{type:"short",prime:null,p:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff",a:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffc",b:"00000051 953eb961 8e1c9a1f 929a21a0 b68540ee a2da725b 99b315f3 b8b48991 8ef109e1 56193951 ec7e937b 1652c0bd 3bb1bf07 3573df88 3d2c34f1 ef451fd4 6b503f00",n:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffa 51868783 bf2f966b 7fcc0148 f709a5d0 3bb5c9b8 899c47ae bb6fb71e 91386409",hash:_0.sha512,gRed:!1,g:["000000c6 858e06b7 0404e9cd 9e3ecb66 2395b442 9c648139 053fb521 f828af60 6b4d3dba a14b5e77 efe75928 fe1dc127 a2ffa8de 3348b3c1 856a429b f97e7e31 c2e5bd66","00000118 39296a78 9a3bc004 5c8a5fb4 2c7d1bd9 98f54449 579b4468 17afbd17 273e662c 97ee7299 5ef42640 c550b901 3fad0761 353c7086 a272c240 88be9476 9fd16650"]});w0("curve25519",{type:"mont",prime:"p25519",p:"7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed",a:"76d06",b:"1",n:"1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed",hash:_0.sha256,gRed:!1,g:["9"]});w0("ed25519",{type:"edwards",prime:"p25519",p:"7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed",a:"-1",c:"1",d:"52036cee2b6ffe73 8cc740797779e898 00700a4d4141d8ab 75eb4dca135978a3",n:"1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed",hash:_0.sha256,gRed:!1,g:["216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a","6666666666666666666666666666666666666666666666666666666666666658"]});var BR;try{BR=tZ()}catch{BR=void 0}w0("secp256k1",{type:"short",prime:"k256",p:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f",a:"0",b:"7",n:"ffffffff ffffffff ffffffff fffffffe baaedce6 af48a03b bfd25e8c d0364141",h:"1",hash:_0.sha256,beta:"7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee",lambda:"5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72",basis:[{a:"3086d221a7d46bcde86c90e49284eb15",b:"-e4437ed6010e88286f547fa90abfe4c3"},{a:"114ca50f7a8e2f3f657c1108d9d44cfd8",b:"3086d221a7d46bcde86c90e49284eb15"}],gRed:!1,g:["79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798","483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8",BR]})});var oZ=x((oPt,sZ)=>{"use strict";var YMe=b0(),$1=gR(),aZ=m0();function x0(t){if(!(this instanceof x0))return new x0(t);this.hash=t.hash,this.predResist=!!t.predResist,this.outLen=this.hash.outSize,this.minEntropy=t.minEntropy||this.hash.hmacStrength,this._reseed=null,this.reseedInterval=null,this.K=null,this.V=null;var e=$1.toArray(t.entropy,t.entropyEnc||"hex"),r=$1.toArray(t.nonce,t.nonceEnc||"hex"),i=$1.toArray(t.pers,t.persEnc||"hex");aZ(e.length>=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits"),this._init(e,r,i)}sZ.exports=x0;x0.prototype._init=function(e,r,i){var n=e.concat(r).concat(i);this.K=new Array(this.outLen/8),this.V=new Array(this.outLen/8);for(var a=0;a=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits"),this._update(e.concat(i||[])),this._reseed=1};x0.prototype.generate=function(e,r,i,n){if(this._reseed>this.reseedInterval)throw new Error("Reseed is required");typeof r!="string"&&(n=i,i=r,r=null),i&&(i=$1.toArray(i,n||"hex"),this._update(i));for(var a=[];a.length{"use strict";var eCe=bd(),tCe=Ro(),FR=tCe.assert;function es(t,e){this.ec=t,this.priv=null,this.pub=null,e.priv&&this._importPrivate(e.priv,e.privEnc),e.pub&&this._importPublic(e.pub,e.pubEnc)}uZ.exports=es;es.fromPublic=function(e,r,i){return r instanceof es?r:new es(e,{pub:r,pubEnc:i})};es.fromPrivate=function(e,r,i){return r instanceof es?r:new es(e,{priv:r,privEnc:i})};es.prototype.validate=function(){var e=this.getPublic();return e.isInfinity()?{result:!1,reason:"Invalid public key"}:e.validate()?e.mul(this.ec.curve.n).isInfinity()?{result:!0,reason:null}:{result:!1,reason:"Public key * N != O"}:{result:!1,reason:"Public key is not a point"}};es.prototype.getPublic=function(e,r){return typeof e=="string"&&(r=e,e=null),this.pub||(this.pub=this.ec.g.mul(this.priv)),r?this.pub.encode(r,e):this.pub};es.prototype.getPrivate=function(e){return e==="hex"?this.priv.toString(16,2):this.priv};es.prototype._importPrivate=function(e,r){this.priv=new eCe(e,r||16),this.priv=this.priv.umod(this.ec.curve.n)};es.prototype._importPublic=function(e,r){if(e.x||e.y){this.ec.curve.type==="mont"?FR(e.x,"Need x coordinate"):(this.ec.curve.type==="short"||this.ec.curve.type==="edwards")&&FR(e.x&&e.y,"Need both x and y coordinate"),this.pub=this.ec.curve.point(e.x,e.y);return}this.pub=this.ec.curve.decodePoint(e,r)};es.prototype.derive=function(e){return e.validate()||FR(e.validate(),"public point not validated"),e.mul(this.priv).getX()};es.prototype.sign=function(e,r,i){return this.ec.sign(e,this,r,i)};es.prototype.verify=function(e,r){return this.ec.verify(e,r,this)};es.prototype.inspect=function(){return""}});var fZ=x((cPt,lZ)=>{"use strict";var a9=bd(),LR=Ro(),rCe=LR.assert;function s9(t,e){if(t instanceof s9)return t;this._importDER(t,e)||(rCe(t.r&&t.s,"Signature without r or s"),this.r=new a9(t.r,16),this.s=new a9(t.s,16),t.recoveryParam===void 0?this.recoveryParam=null:this.recoveryParam=t.recoveryParam)}lZ.exports=s9;function iCe(){this.place=0}function DR(t,e){var r=t[e.place++];if(!(r&128))return r;var i=r&15;if(i===0||i>4)return!1;for(var n=0,a=0,s=e.place;a>>=0;return n<=127?!1:(e.place=s,n)}function dZ(t){for(var e=0,r=t.length-1;!t[e]&&!(t[e+1]&128)&&e>>3);for(t.push(r|128);--r;)t.push(e>>>(r<<3)&255);t.push(e)}s9.prototype.toDER=function(e){var r=this.r.toArray(),i=this.s.toArray();for(r[0]&128&&(r=[0].concat(r)),i[0]&128&&(i=[0].concat(i)),r=dZ(r),i=dZ(i);!i[0]&&!(i[1]&128);)i=i.slice(1);var n=[2];qR(n,r.length),n=n.concat(r),n.push(2),qR(n,i.length);var a=n.concat(i),s=[48];return qR(s,a.length),s=s.concat(a),LR.encode(s,e)}});var gZ=x((dPt,mZ)=>{"use strict";var Q1=bd(),pZ=oZ(),nCe=Ro(),UR=n9(),aCe=Z5(),hZ=nCe.assert,jR=cZ(),o9=fZ();function mu(t){if(!(this instanceof mu))return new mu(t);typeof t=="string"&&(hZ(Object.prototype.hasOwnProperty.call(UR,t),"Unknown curve "+t),t=UR[t]),t instanceof UR.PresetCurve&&(t={curve:t}),this.curve=t.curve.curve,this.n=this.curve.n,this.nh=this.n.ushrn(1),this.g=this.curve.g,this.g=t.curve.g,this.g.precompute(t.curve.n.bitLength()+1),this.hash=t.hash||t.curve.hash}mZ.exports=mu;mu.prototype.keyPair=function(e){return new jR(this,e)};mu.prototype.keyFromPrivate=function(e,r){return jR.fromPrivate(this,e,r)};mu.prototype.keyFromPublic=function(e,r){return jR.fromPublic(this,e,r)};mu.prototype.genKeyPair=function(e){e||(e={});for(var r=new pZ({hash:this.hash,pers:e.pers,persEnc:e.persEnc||"utf8",entropy:e.entropy||aCe(this.hash.hmacStrength),entropyEnc:e.entropy&&e.entropyEnc||"utf8",nonce:this.n.toArray()}),i=this.n.byteLength(),n=this.n.sub(new Q1(2));;){var a=new Q1(r.generate(i));if(!(a.cmp(n)>0))return a.iaddn(1),this.keyFromPrivate(a)}};mu.prototype._truncateToN=function(e,r){var i=e.byteLength()*8-this.n.bitLength();return i>0&&(e=e.ushrn(i)),!r&&e.cmp(this.n)>=0?e.sub(this.n):e};mu.prototype.sign=function(e,r,i,n){typeof i=="object"&&(n=i,i=null),n||(n={}),r=this.keyFromPrivate(r,i),e=this._truncateToN(new Q1(e,16));for(var a=this.n.byteLength(),s=r.getPrivate().toArray("be",a),o=e.toArray("be",a),c=new pZ({hash:this.hash,entropy:s,nonce:o,pers:n.pers,persEnc:n.persEnc||"utf8"}),u=this.n.sub(new Q1(1)),f=0;;f++){var d=n.k?n.k(f):new Q1(c.generate(this.n.byteLength()));if(d=this._truncateToN(d,!0),!(d.cmpn(1)<=0||d.cmp(u)>=0)){var p=this.g.mul(d);if(!p.isInfinity()){var b=p.getX(),T=b.umod(this.n);if(T.cmpn(0)!==0){var I=d.invm(this.n).mul(T.mul(r.getPrivate()).iadd(e));if(I=I.umod(this.n),I.cmpn(0)!==0){var L=(p.getY().isOdd()?1:0)|(b.cmp(T)!==0?2:0);return n.canonical&&I.cmp(this.nh)>0&&(I=this.n.sub(I),L^=1),new o9({r:T,s:I,recoveryParam:L})}}}}}};mu.prototype.verify=function(e,r,i,n){e=this._truncateToN(new Q1(e,16)),i=this.keyFromPublic(i,n),r=new o9(r,"hex");var a=r.r,s=r.s;if(a.cmpn(1)<0||a.cmp(this.n)>=0||s.cmpn(1)<0||s.cmp(this.n)>=0)return!1;var o=s.invm(this.n),c=o.mul(e).umod(this.n),u=o.mul(a).umod(this.n),f;return this.curve._maxwellTrick?(f=this.g.jmulAdd(c,i.getPublic(),u),f.isInfinity()?!1:f.eqXToP(a)):(f=this.g.mulAdd(c,i.getPublic(),u),f.isInfinity()?!1:f.getX().umod(this.n).cmp(a)===0)};mu.prototype.recoverPubKey=function(t,e,r,i){hZ((3&r)===r,"The recovery param is more than two bits"),e=new o9(e,i);var n=this.n,a=new Q1(t),s=e.r,o=e.s,c=r&1,u=r>>1;if(s.cmp(this.curve.p.umod(this.curve.n))>=0&&u)throw new Error("Unable to find sencond key candinate");u?s=this.curve.pointFromX(s.add(this.curve.n),c):s=this.curve.pointFromX(s,c);var f=e.r.invm(n),d=n.sub(a).mul(f).umod(n),p=o.mul(f).umod(n);return this.g.mulAdd(d,s,p)};mu.prototype.getKeyRecoveryParam=function(t,e,r,i){if(e=new o9(e,i),e.recoveryParam!==null)return e.recoveryParam;for(var n=0;n<4;n++){var a;try{a=this.recoverPubKey(t,e,n)}catch{continue}if(a.eq(r))return n}throw new Error("Unable to find valid recovery factor")}});var _Z=x((lPt,bZ)=>{"use strict";var q4=Ro(),vZ=q4.assert,yZ=q4.parseBytes,Tg=q4.cachedProperty;function fa(t,e){this.eddsa=t,this._secret=yZ(e.secret),t.isPoint(e.pub)?this._pub=e.pub:this._pubBytes=yZ(e.pub)}fa.fromPublic=function(e,r){return r instanceof fa?r:new fa(e,{pub:r})};fa.fromSecret=function(e,r){return r instanceof fa?r:new fa(e,{secret:r})};fa.prototype.secret=function(){return this._secret};Tg(fa,"pubBytes",function(){return this.eddsa.encodePoint(this.pub())});Tg(fa,"pub",function(){return this._pubBytes?this.eddsa.decodePoint(this._pubBytes):this.eddsa.g.mul(this.priv())});Tg(fa,"privBytes",function(){var e=this.eddsa,r=this.hash(),i=e.encodingLength-1,n=r.slice(0,e.encodingLength);return n[0]&=248,n[i]&=127,n[i]|=64,n});Tg(fa,"priv",function(){return this.eddsa.decodeInt(this.privBytes())});Tg(fa,"hash",function(){return this.eddsa.hash().update(this.secret()).digest()});Tg(fa,"messagePrefix",function(){return this.hash().slice(this.eddsa.encodingLength)});fa.prototype.sign=function(e){return vZ(this._secret,"KeyPair can only verify"),this.eddsa.sign(e,this)};fa.prototype.verify=function(e,r){return this.eddsa.verify(e,r,this)};fa.prototype.getSecret=function(e){return vZ(this._secret,"KeyPair is public only"),q4.encode(this.secret(),e)};fa.prototype.getPublic=function(e){return q4.encode(this.pubBytes(),e)};bZ.exports=fa});var xZ=x((fPt,wZ)=>{"use strict";var sCe=bd(),u9=Ro(),oCe=u9.assert,c9=u9.cachedProperty,uCe=u9.parseBytes;function Y1(t,e){this.eddsa=t,typeof e!="object"&&(e=uCe(e)),Array.isArray(e)&&(e={R:e.slice(0,t.encodingLength),S:e.slice(t.encodingLength)}),oCe(e.R&&e.S,"Signature without R or S"),t.isPoint(e.R)&&(this._R=e.R),e.S instanceof sCe&&(this._S=e.S),this._Rencoded=Array.isArray(e.R)?e.R:e.Rencoded,this._Sencoded=Array.isArray(e.S)?e.S:e.Sencoded}c9(Y1,"S",function(){return this.eddsa.decodeInt(this.Sencoded())});c9(Y1,"R",function(){return this.eddsa.decodePoint(this.Rencoded())});c9(Y1,"Rencoded",function(){return this.eddsa.encodePoint(this.R())});c9(Y1,"Sencoded",function(){return this.eddsa.encodeInt(this.S())});Y1.prototype.toBytes=function(){return this.Rencoded().concat(this.Sencoded())};Y1.prototype.toHex=function(){return u9.encode(this.toBytes(),"hex").toUpperCase()};wZ.exports=Y1});var PZ=x((pPt,AZ)=>{"use strict";var cCe=b0(),dCe=n9(),Ag=Ro(),lCe=Ag.assert,EZ=Ag.parseBytes,TZ=_Z(),SZ=xZ();function zs(t){if(lCe(t==="ed25519","only tested with ed25519 so far"),!(this instanceof zs))return new zs(t);t=dCe[t].curve,this.curve=t,this.g=t.g,this.g.precompute(t.n.bitLength()+1),this.pointClass=t.point().constructor,this.encodingLength=Math.ceil(t.n.bitLength()/8),this.hash=cCe.sha512}AZ.exports=zs;zs.prototype.sign=function(e,r){e=EZ(e);var i=this.keyFromSecret(r),n=this.hashInt(i.messagePrefix(),e),a=this.g.mul(n),s=this.encodePoint(a),o=this.hashInt(s,i.pubBytes(),e).mul(i.priv()),c=n.add(o).umod(this.curve.n);return this.makeSignature({R:a,S:c,Rencoded:s})};zs.prototype.verify=function(e,r,i){e=EZ(e),r=this.makeSignature(r);var n=this.keyFromPublic(i),a=this.hashInt(r.Rencoded(),n.pubBytes(),e),s=this.g.mul(r.S()),o=r.R().add(n.pub().mul(a));return o.eq(s)};zs.prototype.hashInt=function(){for(var e=this.hash(),r=0;r{"use strict";var em=OZ;em.version=rW().version;em.utils=Ro();em.rand=Z5();em.curve=ER();em.curves=n9();em.ec=gZ();em.eddsa=PZ()});var RZ=x(Pg=>{"use strict";var fCe=Pg&&Pg.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Pg,"__esModule",{value:!0});Pg.EC=void 0;var pCe=fCe(L4()),hCe=pCe.default.ec;Pg.EC=hCe});var MZ=x(d9=>{"use strict";Object.defineProperty(d9,"__esModule",{value:!0});d9.version=void 0;d9.version="signing-key/5.7.0"});var j4=x(S0=>{"use strict";Object.defineProperty(S0,"__esModule",{value:!0});S0.computePublicKey=S0.recoverPublicKey=S0.SigningKey=void 0;var mCe=RZ(),In=or(),U4=Xr(),gCe=Ht(),yCe=MZ(),HR=new gCe.Logger(yCe.version),VR=null;function Od(){return VR||(VR=new mCe.EC("secp256k1")),VR}var CZ=function(){function t(e){(0,U4.defineReadOnly)(this,"curve","secp256k1"),(0,U4.defineReadOnly)(this,"privateKey",(0,In.hexlify)(e)),(0,In.hexDataLength)(this.privateKey)!==32&&HR.throwArgumentError("invalid private key","privateKey","[[ REDACTED ]]");var r=Od().keyFromPrivate((0,In.arrayify)(this.privateKey));(0,U4.defineReadOnly)(this,"publicKey","0x"+r.getPublic(!1,"hex")),(0,U4.defineReadOnly)(this,"compressedPublicKey","0x"+r.getPublic(!0,"hex")),(0,U4.defineReadOnly)(this,"_isSigningKey",!0)}return t.prototype._addPoint=function(e){var r=Od().keyFromPublic((0,In.arrayify)(this.publicKey)),i=Od().keyFromPublic((0,In.arrayify)(e));return"0x"+r.pub.add(i.pub).encodeCompressed("hex")},t.prototype.signDigest=function(e){var r=Od().keyFromPrivate((0,In.arrayify)(this.privateKey)),i=(0,In.arrayify)(e);i.length!==32&&HR.throwArgumentError("bad digest length","digest",e);var n=r.sign(i,{canonical:!0});return(0,In.splitSignature)({recoveryParam:n.recoveryParam,r:(0,In.hexZeroPad)("0x"+n.r.toString(16),32),s:(0,In.hexZeroPad)("0x"+n.s.toString(16),32)})},t.prototype.computeSharedSecret=function(e){var r=Od().keyFromPrivate((0,In.arrayify)(this.privateKey)),i=Od().keyFromPublic((0,In.arrayify)(IZ(e)));return(0,In.hexZeroPad)("0x"+r.derive(i.getPublic()).toString(16),32)},t.isSigningKey=function(e){return!!(e&&e._isSigningKey)},t}();S0.SigningKey=CZ;function vCe(t,e){var r=(0,In.splitSignature)(e),i={r:(0,In.arrayify)(r.r),s:(0,In.arrayify)(r.s)};return"0x"+Od().recoverPubKey((0,In.arrayify)(t),i,r.recoveryParam).encode("hex",!1)}S0.recoverPublicKey=vCe;function IZ(t,e){var r=(0,In.arrayify)(t);if(r.length===32){var i=new CZ(r);return e?"0x"+Od().keyFromPrivate(r).getPublic(!0,"hex"):i.publicKey}else{if(r.length===33)return e?(0,In.hexlify)(r):"0x"+Od().keyFromPublic(r).getPublic(!1,"hex");if(r.length===65)return e?"0x"+Od().keyFromPublic(r).getPublic(!0,"hex"):(0,In.hexlify)(r)}return HR.throwArgumentError("invalid public or private key","key","[REDACTED]")}S0.computePublicKey=IZ});var NZ=x(l9=>{"use strict";Object.defineProperty(l9,"__esModule",{value:!0});l9.version=void 0;l9.version="transactions/5.7.0"});var df=x(vn=>{"use strict";var bCe=vn&&vn.__createBinding||(Object.create?function(t,e,r,i){i===void 0&&(i=r),Object.defineProperty(t,i,{enumerable:!0,get:function(){return e[r]}})}:function(t,e,r,i){i===void 0&&(i=r),t[i]=e[r]}),_Ce=vn&&vn.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),wCe=vn&&vn.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var r in t)r!=="default"&&Object.prototype.hasOwnProperty.call(t,r)&&bCe(e,t,r);return _Ce(e,t),e};Object.defineProperty(vn,"__esModule",{value:!0});vn.parse=vn.serialize=vn.accessListify=vn.recoverAddress=vn.computeAddress=vn.TransactionTypes=void 0;var V4=cu(),tm=Rn(),Nr=or(),xCe=V1(),Og=Oo(),SCe=Xr(),E0=wCe(x5()),kZ=j4(),GR=Ht(),ECe=NZ(),rs=new GR.Logger(ECe.version),TCe;(function(t){t[t.legacy=0]="legacy",t[t.eip2930=1]="eip2930",t[t.eip1559=2]="eip1559"})(TCe=vn.TransactionTypes||(vn.TransactionTypes={}));function JR(t){return t==="0x"?null:(0,V4.getAddress)(t)}function ts(t){return t==="0x"?xCe.Zero:tm.BigNumber.from(t)}var ACe=[{name:"nonce",maxLength:32,numeric:!0},{name:"gasPrice",maxLength:32,numeric:!0},{name:"gasLimit",maxLength:32,numeric:!0},{name:"to",length:20},{name:"value",maxLength:32,numeric:!0},{name:"data"}],PCe={chainId:!0,data:!0,gasLimit:!0,gasPrice:!0,nonce:!0,to:!0,type:!0,value:!0};function BZ(t){var e=(0,kZ.computePublicKey)(t);return(0,V4.getAddress)((0,Nr.hexDataSlice)((0,Og.keccak256)((0,Nr.hexDataSlice)(e,1)),12))}vn.computeAddress=BZ;function XR(t,e){return BZ((0,kZ.recoverPublicKey)((0,Nr.arrayify)(t),e))}vn.recoverAddress=XR;function Mo(t,e){var r=(0,Nr.stripZeros)(tm.BigNumber.from(t).toHexString());return r.length>32&&rs.throwArgumentError("invalid length for "+e,"transaction:"+e,t),r}function zR(t,e){return{address:(0,V4.getAddress)(t),storageKeys:(e||[]).map(function(r,i){return(0,Nr.hexDataLength)(r)!==32&&rs.throwArgumentError("invalid access list storageKey","accessList["+t+":"+i+"]",r),r.toLowerCase()})}}function f9(t){if(Array.isArray(t))return t.map(function(r,i){return Array.isArray(r)?(r.length>2&&rs.throwArgumentError("access list expected to be [ address, storageKeys[] ]","value["+i+"]",r),zR(r[0],r[1])):zR(r.address,r.storageKeys)});var e=Object.keys(t).map(function(r){var i=t[r].reduce(function(n,a){return n[a]=!0,n},{});return zR(r,Object.keys(i).sort())});return e.sort(function(r,i){return r.address.localeCompare(i.address)}),e}vn.accessListify=f9;function FZ(t){return f9(t).map(function(e){return[e.address,e.storageKeys]})}function DZ(t,e){if(t.gasPrice!=null){var r=tm.BigNumber.from(t.gasPrice),i=tm.BigNumber.from(t.maxFeePerGas||0);r.eq(i)||rs.throwArgumentError("mismatch EIP-1559 gasPrice != maxFeePerGas","tx",{gasPrice:r,maxFeePerGas:i})}var n=[Mo(t.chainId||0,"chainId"),Mo(t.nonce||0,"nonce"),Mo(t.maxPriorityFeePerGas||0,"maxPriorityFeePerGas"),Mo(t.maxFeePerGas||0,"maxFeePerGas"),Mo(t.gasLimit||0,"gasLimit"),t.to!=null?(0,V4.getAddress)(t.to):"0x",Mo(t.value||0,"value"),t.data||"0x",FZ(t.accessList||[])];if(e){var a=(0,Nr.splitSignature)(e);n.push(Mo(a.recoveryParam,"recoveryParam")),n.push((0,Nr.stripZeros)(a.r)),n.push((0,Nr.stripZeros)(a.s))}return(0,Nr.hexConcat)(["0x02",E0.encode(n)])}function qZ(t,e){var r=[Mo(t.chainId||0,"chainId"),Mo(t.nonce||0,"nonce"),Mo(t.gasPrice||0,"gasPrice"),Mo(t.gasLimit||0,"gasLimit"),t.to!=null?(0,V4.getAddress)(t.to):"0x",Mo(t.value||0,"value"),t.data||"0x",FZ(t.accessList||[])];if(e){var i=(0,Nr.splitSignature)(e);r.push(Mo(i.recoveryParam,"recoveryParam")),r.push((0,Nr.stripZeros)(i.r)),r.push((0,Nr.stripZeros)(i.s))}return(0,Nr.hexConcat)(["0x01",E0.encode(r)])}function OCe(t,e){(0,SCe.checkProperties)(t,PCe);var r=[];ACe.forEach(function(s){var o=t[s.name]||[],c={};s.numeric&&(c.hexPad="left"),o=(0,Nr.arrayify)((0,Nr.hexlify)(o,c)),s.length&&o.length!==s.length&&o.length>0&&rs.throwArgumentError("invalid length for "+s.name,"transaction:"+s.name,o),s.maxLength&&(o=(0,Nr.stripZeros)(o),o.length>s.maxLength&&rs.throwArgumentError("invalid length for "+s.name,"transaction:"+s.name,o)),r.push((0,Nr.hexlify)(o))});var i=0;if(t.chainId!=null?(i=t.chainId,typeof i!="number"&&rs.throwArgumentError("invalid transaction.chainId","transaction",t)):e&&!(0,Nr.isBytesLike)(e)&&e.v>28&&(i=Math.floor((e.v-35)/2)),i!==0&&(r.push((0,Nr.hexlify)(i)),r.push("0x"),r.push("0x")),!e)return E0.encode(r);var n=(0,Nr.splitSignature)(e),a=27+n.recoveryParam;return i!==0?(r.pop(),r.pop(),r.pop(),a+=i*2+8,n.v>28&&n.v!==a&&rs.throwArgumentError("transaction.chainId/signature.v mismatch","signature",e)):n.v!==a&&rs.throwArgumentError("transaction.chainId/signature.v mismatch","signature",e),r.push((0,Nr.hexlify)(a)),r.push((0,Nr.stripZeros)((0,Nr.arrayify)(n.r))),r.push((0,Nr.stripZeros)((0,Nr.arrayify)(n.s))),E0.encode(r)}function RCe(t,e){if(t.type==null||t.type===0)return t.accessList!=null&&rs.throwArgumentError("untyped transactions do not support accessList; include type: 1","transaction",t),OCe(t,e);switch(t.type){case 1:return qZ(t,e);case 2:return DZ(t,e);default:break}return rs.throwError("unsupported transaction type: "+t.type,GR.Logger.errors.UNSUPPORTED_OPERATION,{operation:"serializeTransaction",transactionType:t.type})}vn.serialize=RCe;function LZ(t,e,r){try{var i=ts(e[0]).toNumber();if(i!==0&&i!==1)throw new Error("bad recid");t.v=i}catch{rs.throwArgumentError("invalid v for transaction type: 1","v",e[0])}t.r=(0,Nr.hexZeroPad)(e[1],32),t.s=(0,Nr.hexZeroPad)(e[2],32);try{var n=(0,Og.keccak256)(r(t));t.from=XR(n,{r:t.r,s:t.s,recoveryParam:t.v})}catch{}}function MCe(t){var e=E0.decode(t.slice(1));e.length!==9&&e.length!==12&&rs.throwArgumentError("invalid component count for transaction type: 2","payload",(0,Nr.hexlify)(t));var r=ts(e[2]),i=ts(e[3]),n={type:2,chainId:ts(e[0]).toNumber(),nonce:ts(e[1]).toNumber(),maxPriorityFeePerGas:r,maxFeePerGas:i,gasPrice:null,gasLimit:ts(e[4]),to:JR(e[5]),value:ts(e[6]),data:e[7],accessList:f9(e[8])};return e.length===9||(n.hash=(0,Og.keccak256)(t),LZ(n,e.slice(9),DZ)),n}function CCe(t){var e=E0.decode(t.slice(1));e.length!==8&&e.length!==11&&rs.throwArgumentError("invalid component count for transaction type: 1","payload",(0,Nr.hexlify)(t));var r={type:1,chainId:ts(e[0]).toNumber(),nonce:ts(e[1]).toNumber(),gasPrice:ts(e[2]),gasLimit:ts(e[3]),to:JR(e[4]),value:ts(e[5]),data:e[6],accessList:f9(e[7])};return e.length===8||(r.hash=(0,Og.keccak256)(t),LZ(r,e.slice(8),qZ)),r}function ICe(t){var e=E0.decode(t);e.length!==9&&e.length!==6&&rs.throwArgumentError("invalid raw transaction","rawTransaction",t);var r={nonce:ts(e[0]).toNumber(),gasPrice:ts(e[1]),gasLimit:ts(e[2]),to:JR(e[3]),value:ts(e[4]),data:e[5],chainId:0};if(e.length===6)return r;try{r.v=tm.BigNumber.from(e[6]).toNumber()}catch{return r}if(r.r=(0,Nr.hexZeroPad)(e[7],32),r.s=(0,Nr.hexZeroPad)(e[8],32),tm.BigNumber.from(r.r).isZero()&&tm.BigNumber.from(r.s).isZero())r.chainId=r.v,r.v=0;else{r.chainId=Math.floor((r.v-35)/2),r.chainId<0&&(r.chainId=0);var i=r.v-27,n=e.slice(0,6);r.chainId!==0&&(n.push((0,Nr.hexlify)(r.chainId)),n.push("0x"),n.push("0x"),i-=r.chainId*2+8);var a=(0,Og.keccak256)(E0.encode(n));try{r.from=XR(a,{r:(0,Nr.hexlify)(r.r),s:(0,Nr.hexlify)(r.s),recoveryParam:i})}catch{}r.hash=(0,Og.keccak256)(t)}return r.type=null,r}function NCe(t){var e=(0,Nr.arrayify)(t);if(e[0]>127)return ICe(e);switch(e[0]){case 1:return CCe(e);case 2:return MCe(e);default:break}return rs.throwError("unsupported transaction type: "+e[0],GR.Logger.errors.UNSUPPORTED_OPERATION,{operation:"parseTransaction",transactionType:e[0]})}vn.parse=NCe});var UZ=x(p9=>{"use strict";Object.defineProperty(p9,"__esModule",{value:!0});p9.version=void 0;p9.version="contracts/5.7.0"});var KZ=x(is=>{"use strict";var g9=is&&is.__extends||function(){var t=function(e,r){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var a in n)Object.prototype.hasOwnProperty.call(n,a)&&(i[a]=n[a])},t(e,r)};return function(e,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");t(e,r);function i(){this.constructor=e}e.prototype=r===null?Object.create(r):(i.prototype=r.prototype,new i)}}(),A0=is&&is.__awaiter||function(t,e,r,i){function n(a){return a instanceof r?a:new r(function(s){s(a)})}return new(r||(r=Promise))(function(a,s){function o(f){try{u(i.next(f))}catch(d){s(d)}}function c(f){try{u(i.throw(f))}catch(d){s(d)}}function u(f){f.done?a(f.value):n(f.value).then(o,c)}u((i=i.apply(t,e||[])).next())})},P0=is&&is.__generator||function(t,e){var r={label:0,sent:function(){if(a[0]&1)throw a[1];return a[1]},trys:[],ops:[]},i,n,a,s;return s={next:o(0),throw:o(1),return:o(2)},typeof Symbol=="function"&&(s[Symbol.iterator]=function(){return this}),s;function o(u){return function(f){return c([u,f])}}function c(u){if(i)throw new TypeError("Generator is already executing.");for(;r;)try{if(i=1,n&&(a=u[0]&2?n.return:u[0]?n.throw||((a=n.return)&&a.call(n),0):n.next)&&!(a=a.call(n,u[1])).done)return a;switch(n=0,a&&(u=[u[0]&2,a.value]),u[0]){case 0:case 1:a=u;break;case 4:return r.label++,{value:u[1],done:!1};case 5:r.label++,n=u[1],u=[0];continue;case 7:u=r.ops.pop(),r.trys.pop();continue;default:if(a=r.trys,!(a=a.length>0&&a[a.length-1])&&(u[0]===6||u[0]===2)){r=0;continue}if(u[0]===3&&(!a||u[1]>a[0]&&u[1]1)){u=u.substring(1);var d=f[0];try{a[u]==null&&(0,Nt.defineReadOnly)(a,u,a[d])}catch{}a.functions[u]==null&&(0,Nt.defineReadOnly)(a.functions,u,a.functions[d]),a.callStatic[u]==null&&(0,Nt.defineReadOnly)(a.callStatic,u,a.callStatic[d]),a.populateTransaction[u]==null&&(0,Nt.defineReadOnly)(a.populateTransaction,u,a.populateTransaction[d]),a.estimateGas[u]==null&&(0,Nt.defineReadOnly)(a.estimateGas,u,a.estimateGas[d])}})}return t.getContractAddress=function(e){return(0,z4.getContractAddress)(e)},t.getInterface=function(e){return h9.Interface.isInterface(e)?e:new h9.Interface(e)},t.prototype.deployed=function(){return this._deployed()},t.prototype._deployed=function(e){var r=this;return this._deployedPromise||(this.deployTransaction?this._deployedPromise=this.deployTransaction.wait().then(function(){return r}):this._deployedPromise=this.provider.getCode(this.address,e).then(function(i){return i==="0x"&&oi.throwError("contract not deployed",Fa.Logger.errors.UNSUPPORTED_OPERATION,{contractAddress:r.address,operation:"getDeployed"}),r})),this._deployedPromise},t.prototype.fallback=function(e){var r=this;this.signer||oi.throwError("sending a transactions require a signer",Fa.Logger.errors.UNSUPPORTED_OPERATION,{operation:"sendTransaction(fallback)"});var i=(0,Nt.shallowCopy)(e||{});return["from","to"].forEach(function(n){i[n]!=null&&oi.throwError("cannot override "+n,Fa.Logger.errors.UNSUPPORTED_OPERATION,{operation:n})}),i.to=this.resolvedAddress,this.deployed().then(function(){return r.signer.sendTransaction(i)})},t.prototype.connect=function(e){typeof e=="string"&&(e=new KR.VoidSigner(e,this.provider));var r=new this.constructor(this.address,this.interface,e);return this.deployTransaction&&(0,Nt.defineReadOnly)(r,"deployTransaction",this.deployTransaction),r},t.prototype.attach=function(e){return new this.constructor(e,this.interface,this.signer||this.provider)},t.isIndexed=function(e){return h9.Indexed.isIndexed(e)},t.prototype._normalizeRunningEvent=function(e){return this._runningEvents[e.tag]?this._runningEvents[e.tag]:e},t.prototype._getRunningEvent=function(e){if(typeof e=="string"){if(e==="error")return this._normalizeRunningEvent(new VCe);if(e==="event")return this._normalizeRunningEvent(new G4("event",null));if(e==="*")return this._normalizeRunningEvent(new HZ(this.address,this.interface));var r=this.interface.getEvent(e);return this._normalizeRunningEvent(new VZ(this.address,this.interface,r))}if(e.topics&&e.topics.length>0){try{var i=e.topics[0];if(typeof i!="string")throw new Error("invalid topic");var r=this.interface.getEvent(i);return this._normalizeRunningEvent(new VZ(this.address,this.interface,r,e.topics))}catch{}var n={address:this.address,topics:e.topics};return this._normalizeRunningEvent(new G4(JZ(n),n))}return this._normalizeRunningEvent(new HZ(this.address,this.interface))},t.prototype._checkRunningEvents=function(e){if(e.listenerCount()===0){delete this._runningEvents[e.tag];var r=this._wrappedEmits[e.tag];r&&e.filter&&(this.provider.off(e.filter,r),delete this._wrappedEmits[e.tag])}},t.prototype._wrapEvent=function(e,r,i){var n=this,a=(0,Nt.deepCopy)(r);return a.removeListener=function(){!i||(e.removeListener(i),n._checkRunningEvents(e))},a.getBlock=function(){return n.provider.getBlock(r.blockHash)},a.getTransaction=function(){return n.provider.getTransaction(r.transactionHash)},a.getTransactionReceipt=function(){return n.provider.getTransactionReceipt(r.transactionHash)},e.prepareEvent(a),a},t.prototype._addEventListener=function(e,r,i){var n=this;if(this.provider||oi.throwError("events require a provider or a signer with a provider",Fa.Logger.errors.UNSUPPORTED_OPERATION,{operation:"once"}),e.addListener(r,i),this._runningEvents[e.tag]=e,!this._wrappedEmits[e.tag]){var a=function(s){var o=n._wrapEvent(e,s,r);if(o.decodeError==null)try{var c=e.getEmit(o);n.emit.apply(n,kCe([e.filter],c,!1))}catch(u){o.decodeError=u.error}e.filter!=null&&n.emit("event",o),o.decodeError!=null&&n.emit("error",o.decodeError,o)};this._wrappedEmits[e.tag]=a,e.filter!=null&&this.provider.on(e.filter,a)}},t.prototype.queryFilter=function(e,r,i){var n=this,a=this._getRunningEvent(e),s=(0,Nt.shallowCopy)(a.filter);return typeof r=="string"&&(0,rm.isHexString)(r,32)?(i!=null&&oi.throwArgumentError("cannot specify toBlock with blockhash","toBlock",i),s.blockHash=r):(s.fromBlock=r??0,s.toBlock=i??"latest"),this.provider.getLogs(s).then(function(o){return o.map(function(c){return n._wrapEvent(a,c,null)})})},t.prototype.on=function(e,r){return this._addEventListener(this._getRunningEvent(e),r,!1),this},t.prototype.once=function(e,r){return this._addEventListener(this._getRunningEvent(e),r,!0),this},t.prototype.emit=function(e){for(var r=[],i=1;i0;return this._checkRunningEvents(n),a},t.prototype.listenerCount=function(e){var r=this;return this.provider?e==null?Object.keys(this._runningEvents).reduce(function(i,n){return i+r._runningEvents[n].listenerCount()},0):this._getRunningEvent(e).listenerCount():0},t.prototype.listeners=function(e){if(!this.provider)return[];if(e==null){var r=[];for(var i in this._runningEvents)this._runningEvents[i].listeners().forEach(function(n){r.push(n)});return r}return this._getRunningEvent(e).listeners()},t.prototype.removeAllListeners=function(e){if(!this.provider)return this;if(e==null){for(var r in this._runningEvents){var i=this._runningEvents[r];i.removeAllListeners(),this._checkRunningEvents(i)}return this}var n=this._getRunningEvent(e);return n.removeAllListeners(),this._checkRunningEvents(n),this},t.prototype.off=function(e,r){if(!this.provider)return this;var i=this._getRunningEvent(e);return i.removeListener(r),this._checkRunningEvents(i),this},t.prototype.removeListener=function(e,r){return this.off(e,r)},t}();is.BaseContract=XZ;var WR=function(t){g9(e,t);function e(){return t!==null&&t.apply(this,arguments)||this}return e}(XZ);is.Contract=WR;var HCe=function(){function t(e,r,i){var n=this.constructor,a=null;typeof r=="string"?a=r:(0,rm.isBytes)(r)?a=(0,rm.hexlify)(r):r&&typeof r.object=="string"?a=r.object:a="!",a.substring(0,2)!=="0x"&&(a="0x"+a),(!(0,rm.isHexString)(a)||a.length%2)&&oi.throwArgumentError("invalid bytecode","bytecode",r),i&&!KR.Signer.isSigner(i)&&oi.throwArgumentError("invalid signer","signer",i),(0,Nt.defineReadOnly)(this,"bytecode",a),(0,Nt.defineReadOnly)(this,"interface",(0,Nt.getStatic)(n,"getInterface")(e)),(0,Nt.defineReadOnly)(this,"signer",i||null)}return t.prototype.getDeployTransaction=function(){for(var e=[],r=0;r{"use strict";Object.defineProperty(O0,"__esModule",{value:!0});O0.Base58=O0.Base32=O0.BaseX=void 0;var WZ=or(),v9=Xr(),ZR=function(){function t(e){(0,v9.defineReadOnly)(this,"alphabet",e),(0,v9.defineReadOnly)(this,"base",e.length),(0,v9.defineReadOnly)(this,"_alphabetMap",{}),(0,v9.defineReadOnly)(this,"_leader",e.charAt(0));for(var r=0;r0;)i.push(a%this.base),a=a/this.base|0}for(var o="",c=0;r[c]===0&&c=0;--u)o+=this.alphabet[i[u]];return o},t.prototype.decode=function(e){if(typeof e!="string")throw new TypeError("Expected String");var r=[];if(e.length===0)return new Uint8Array(r);r.push(0);for(var i=0;i>=8;for(;a>0;)r.push(a&255),a>>=8}for(var o=0;e[o]===this._leader&&o{"use strict";Object.defineProperty(_9,"__esModule",{value:!0});_9.pbkdf2=void 0;var JCe=require("crypto"),$Z=or();function ZZ(t){return Buffer.from((0,$Z.arrayify)(t))}function XCe(t,e,r,i,n){return(0,$Z.hexlify)((0,JCe.pbkdf2Sync)(ZZ(t),ZZ(e),r,i,n))}_9.pbkdf2=XCe});var x9=x(w9=>{"use strict";Object.defineProperty(w9,"__esModule",{value:!0});w9.pbkdf2=void 0;var KCe=QZ();Object.defineProperty(w9,"pbkdf2",{enumerable:!0,get:function(){return KCe.pbkdf2}})});var $R=x(J4=>{"use strict";Object.defineProperty(J4,"__esModule",{value:!0});J4.SupportedAlgorithm=void 0;var WCe;(function(t){t.sha256="sha256",t.sha512="sha512"})(WCe=J4.SupportedAlgorithm||(J4.SupportedAlgorithm={}))});var YZ=x(S9=>{"use strict";Object.defineProperty(S9,"__esModule",{value:!0});S9.version=void 0;S9.version="sha2/5.7.0"});var t$=x(gu=>{"use strict";var ZCe=gu&&gu.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(gu,"__esModule",{value:!0});gu.computeHmac=gu.sha512=gu.sha256=gu.ripemd160=void 0;var QR=require("crypto"),$Ce=ZCe(b0()),X4=or(),QCe=$R(),e$=Ht(),YCe=YZ(),eIe=new e$.Logger(YCe.version);function tIe(t){return"0x"+$Ce.default.ripemd160().update((0,X4.arrayify)(t)).digest("hex")}gu.ripemd160=tIe;function rIe(t){return"0x"+(0,QR.createHash)("sha256").update(Buffer.from((0,X4.arrayify)(t))).digest("hex")}gu.sha256=rIe;function iIe(t){return"0x"+(0,QR.createHash)("sha512").update(Buffer.from((0,X4.arrayify)(t))).digest("hex")}gu.sha512=iIe;function nIe(t,e,r){return QCe.SupportedAlgorithm[t]||eIe.throwError("unsupported algorithm - "+t,e$.Logger.errors.UNSUPPORTED_OPERATION,{operation:"computeHmac",algorithm:t}),"0x"+(0,QR.createHmac)(t,Buffer.from((0,X4.arrayify)(e))).update(Buffer.from((0,X4.arrayify)(r))).digest("hex")}gu.computeHmac=nIe});var Rg=x(yu=>{"use strict";Object.defineProperty(yu,"__esModule",{value:!0});yu.SupportedAlgorithm=yu.sha512=yu.sha256=yu.ripemd160=yu.computeHmac=void 0;var E9=t$();Object.defineProperty(yu,"computeHmac",{enumerable:!0,get:function(){return E9.computeHmac}});Object.defineProperty(yu,"ripemd160",{enumerable:!0,get:function(){return E9.ripemd160}});Object.defineProperty(yu,"sha256",{enumerable:!0,get:function(){return E9.sha256}});Object.defineProperty(yu,"sha512",{enumerable:!0,get:function(){return E9.sha512}});var aIe=$R();Object.defineProperty(yu,"SupportedAlgorithm",{enumerable:!0,get:function(){return aIe.SupportedAlgorithm}})});var r$=x(T9=>{"use strict";Object.defineProperty(T9,"__esModule",{value:!0});T9.version=void 0;T9.version="wordlists/5.7.0"});var Rd=x(im=>{"use strict";Object.defineProperty(im,"__esModule",{value:!0});im.Wordlist=im.logger=void 0;var sIe=!1,oIe=X1(),i$=Xr(),uIe=Ht(),cIe=r$();im.logger=new uIe.Logger(cIe.version);var dIe=function(){function t(e){var r=this.constructor;im.logger.checkAbstract(r,t),(0,i$.defineReadOnly)(this,"locale",e)}return t.prototype.split=function(e){return e.toLowerCase().split(/ +/g)},t.prototype.join=function(e){return e.join(" ")},t.check=function(e){for(var r=[],i=0;i<2048;i++){var n=e.getWord(i);if(i!==e.getWordIndex(n))return"0x";r.push(n)}return(0,oIe.id)(r.join(` +`)+` +`)},t.register=function(e,r){if(r||(r=e.locale),sIe)try{var i=window;i._ethers&&i._ethers.wordlists&&(i._ethers.wordlists[r]||(0,i$.defineReadOnly)(i._ethers.wordlists,r,e))}catch{}},t}();im.Wordlist=dIe});var s$=x(Mg=>{"use strict";var lIe=Mg&&Mg.__extends||function(){var t=function(e,r){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var a in n)Object.prototype.hasOwnProperty.call(n,a)&&(i[a]=n[a])},t(e,r)};return function(e,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");t(e,r);function i(){this.constructor=e}e.prototype=r===null?Object.create(r):(i.prototype=r.prototype,new i)}}();Object.defineProperty(Mg,"__esModule",{value:!0});Mg.langCz=void 0;var YR=Rd(),fIe="AbdikaceAbecedaAdresaAgreseAkceAktovkaAlejAlkoholAmputaceAnanasAndulkaAnekdotaAnketaAntikaAnulovatArchaAroganceAsfaltAsistentAspiraceAstmaAstronomAtlasAtletikaAtolAutobusAzylBabkaBachorBacilBaculkaBadatelBagetaBagrBahnoBakterieBaladaBaletkaBalkonBalonekBalvanBalzaBambusBankomatBarbarBaretBarmanBarokoBarvaBaterkaBatohBavlnaBazalkaBazilikaBazukaBednaBeranBesedaBestieBetonBezinkaBezmocBeztakBicyklBidloBiftekBikinyBilanceBiografBiologBitvaBizonBlahobytBlatouchBlechaBleduleBleskBlikatBliznaBlokovatBlouditBludBobekBobrBodlinaBodnoutBohatostBojkotBojovatBokorysBolestBorecBoroviceBotaBoubelBouchatBoudaBouleBouratBoxerBradavkaBramboraBrankaBratrBreptaBriketaBrkoBrlohBronzBroskevBrunetkaBrusinkaBrzdaBrzyBublinaBubnovatBuchtaBuditelBudkaBudovaBufetBujarostBukviceBuldokBulvaBundaBunkrBurzaButikBuvolBuzolaBydletBylinaBytovkaBzukotCapartCarevnaCedrCeduleCejchCejnCelaCelerCelkemCelniceCeninaCennostCenovkaCentrumCenzorCestopisCetkaChalupaChapadloCharitaChataChechtatChemieChichotChirurgChladChlebaChlubitChmelChmuraChobotChocholChodbaCholeraChomoutChopitChorobaChovChrapotChrlitChrtChrupChtivostChudinaChutnatChvatChvilkaChvostChybaChystatChytitCibuleCigaretaCihelnaCihlaCinkotCirkusCisternaCitaceCitrusCizinecCizostClonaCokolivCouvatCtitelCtnostCudnostCuketaCukrCupotCvaknoutCvalCvikCvrkotCyklistaDalekoDarebaDatelDatumDceraDebataDechovkaDecibelDeficitDeflaceDeklDekretDemokratDepreseDerbyDeskaDetektivDikobrazDiktovatDiodaDiplomDiskDisplejDivadloDivochDlahaDlouhoDluhopisDnesDobroDobytekDocentDochutitDodnesDohledDohodaDohraDojemDojniceDokladDokolaDoktorDokumentDolarDolevaDolinaDomaDominantDomluvitDomovDonutitDopadDopisDoplnitDoposudDoprovodDopustitDorazitDorostDortDosahDoslovDostatekDosudDosytaDotazDotekDotknoutDoufatDoutnatDovozceDozaduDoznatDozorceDrahotaDrakDramatikDravecDrazeDrdolDrobnostDrogerieDrozdDrsnostDrtitDrzostDubenDuchovnoDudekDuhaDuhovkaDusitDusnoDutostDvojiceDvorecDynamitEkologEkonomieElektronElipsaEmailEmiseEmoceEmpatieEpizodaEpochaEpopejEposEsejEsenceEskortaEskymoEtiketaEuforieEvoluceExekuceExkurzeExpediceExplozeExportExtraktFackaFajfkaFakultaFanatikFantazieFarmacieFavoritFazoleFederaceFejetonFenkaFialkaFigurantFilozofFiltrFinanceFintaFixaceFjordFlanelFlirtFlotilaFondFosforFotbalFotkaFotonFrakceFreskaFrontaFukarFunkceFyzikaGalejeGarantGenetikaGeologGilotinaGlazuraGlejtGolemGolfistaGotikaGrafGramofonGranuleGrepGrilGrogGroteskaGumaHadiceHadrHalaHalenkaHanbaHanopisHarfaHarpunaHavranHebkostHejkalHejnoHejtmanHektarHelmaHematomHerecHernaHesloHezkyHistorikHladovkaHlasivkyHlavaHledatHlenHlodavecHlohHloupostHltatHlubinaHluchotaHmatHmotaHmyzHnisHnojivoHnoutHoblinaHobojHochHodinyHodlatHodnotaHodovatHojnostHokejHolinkaHolkaHolubHomoleHonitbaHonoraceHoralHordaHorizontHorkoHorlivecHormonHorninaHoroskopHorstvoHospodaHostinaHotovostHoubaHoufHoupatHouskaHovorHradbaHraniceHravostHrazdaHrbolekHrdinaHrdloHrdostHrnekHrobkaHromadaHrotHroudaHrozenHrstkaHrubostHryzatHubenostHubnoutHudbaHukotHumrHusitaHustotaHvozdHybnostHydrantHygienaHymnaHysterikIdylkaIhnedIkonaIluzeImunitaInfekceInflaceInkasoInovaceInspekceInternetInvalidaInvestorInzerceIronieJablkoJachtaJahodaJakmileJakostJalovecJantarJarmarkJaroJasanJasnoJatkaJavorJazykJedinecJedleJednatelJehlanJekotJelenJelitoJemnostJenomJepiceJeseterJevitJezdecJezeroJinakJindyJinochJiskraJistotaJitrniceJizvaJmenovatJogurtJurtaKabaretKabelKabinetKachnaKadetKadidloKahanKajakKajutaKakaoKaktusKalamitaKalhotyKalibrKalnostKameraKamkolivKamnaKanibalKanoeKantorKapalinaKapelaKapitolaKapkaKapleKapotaKaprKapustaKapybaraKaramelKarotkaKartonKasaKatalogKatedraKauceKauzaKavalecKazajkaKazetaKazivostKdekolivKdesiKedlubenKempKeramikaKinoKlacekKladivoKlamKlapotKlasikaKlaunKlecKlenbaKlepatKlesnoutKlidKlimaKlisnaKloboukKlokanKlopaKloubKlubovnaKlusatKluzkostKmenKmitatKmotrKnihaKnotKoaliceKoberecKobkaKoblihaKobylaKocourKohoutKojenecKokosKoktejlKolapsKoledaKolizeKoloKomandoKometaKomikKomnataKomoraKompasKomunitaKonatKonceptKondiceKonecKonfeseKongresKoninaKonkursKontaktKonzervaKopanecKopieKopnoutKoprovkaKorbelKorektorKormidloKoroptevKorpusKorunaKorytoKorzetKosatecKostkaKotelKotletaKotoulKoukatKoupelnaKousekKouzloKovbojKozaKozorohKrabiceKrachKrajinaKralovatKrasopisKravataKreditKrejcarKresbaKrevetaKriketKritikKrizeKrkavecKrmelecKrmivoKrocanKrokKronikaKropitKroupaKrovkaKrtekKruhadloKrupiceKrutostKrvinkaKrychleKryptaKrystalKrytKudlankaKufrKujnostKuklaKulajdaKulichKulkaKulometKulturaKunaKupodivuKurtKurzorKutilKvalitaKvasinkaKvestorKynologKyselinaKytaraKyticeKytkaKytovecKyvadloLabradorLachtanLadnostLaikLakomecLamelaLampaLanovkaLasiceLasoLasturaLatinkaLavinaLebkaLeckdyLedenLedniceLedovkaLedvinaLegendaLegieLegraceLehceLehkostLehnoutLektvarLenochodLentilkaLepenkaLepidloLetadloLetecLetmoLetokruhLevhartLevitaceLevobokLibraLichotkaLidojedLidskostLihovinaLijavecLilekLimetkaLinieLinkaLinoleumListopadLitinaLitovatLobistaLodivodLogikaLogopedLokalitaLoketLomcovatLopataLopuchLordLososLotrLoudalLouhLoukaLouskatLovecLstivostLucernaLuciferLumpLuskLustraceLviceLyraLyrikaLysinaMadamMadloMagistrMahagonMajetekMajitelMajoritaMakakMakoviceMakrelaMalbaMalinaMalovatMalviceMaminkaMandleMankoMarnostMasakrMaskotMasopustMaticeMatrikaMaturitaMazanecMazivoMazlitMazurkaMdlobaMechanikMeditaceMedovinaMelasaMelounMentolkaMetlaMetodaMetrMezeraMigraceMihnoutMihuleMikinaMikrofonMilenecMilimetrMilostMimikaMincovnaMinibarMinometMinulostMiskaMistrMixovatMladostMlhaMlhovinaMlokMlsatMluvitMnichMnohemMobilMocnostModelkaModlitbaMohylaMokroMolekulaMomentkaMonarchaMonoklMonstrumMontovatMonzunMosazMoskytMostMotivaceMotorkaMotykaMouchaMoudrostMozaikaMozekMozolMramorMravenecMrkevMrtvolaMrzetMrzutostMstitelMudrcMuflonMulatMumieMuniceMusetMutaceMuzeumMuzikantMyslivecMzdaNabouratNachytatNadaceNadbytekNadhozNadobroNadpisNahlasNahnatNahodileNahraditNaivitaNajednouNajistoNajmoutNaklonitNakonecNakrmitNalevoNamazatNamluvitNanometrNaokoNaopakNaostroNapadatNapevnoNaplnitNapnoutNaposledNaprostoNaroditNarubyNarychloNasaditNasekatNaslepoNastatNatolikNavenekNavrchNavzdoryNazvatNebeNechatNeckyNedalekoNedbatNeduhNegaceNehetNehodaNejenNejprveNeklidNelibostNemilostNemocNeochotaNeonkaNepokojNerostNervNesmyslNesouladNetvorNeuronNevinaNezvykleNicotaNijakNikamNikdyNiklNikterakNitroNoclehNohaviceNominaceNoraNorekNositelNosnostNouzeNovinyNovotaNozdraNudaNudleNugetNutitNutnostNutrieNymfaObalObarvitObavaObdivObecObehnatObejmoutObezitaObhajobaObilniceObjasnitObjektObklopitOblastOblekOblibaOblohaObludaObnosObohatitObojekOboutObrazecObrnaObrubaObrysObsahObsluhaObstaratObuvObvazObvinitObvodObvykleObyvatelObzorOcasOcelOcenitOchladitOchotaOchranaOcitnoutOdbojOdbytOdchodOdcizitOdebratOdeslatOdevzdatOdezvaOdhadceOdhoditOdjetOdjinudOdkazOdkoupitOdlivOdlukaOdmlkaOdolnostOdpadOdpisOdploutOdporOdpustitOdpykatOdrazkaOdsouditOdstupOdsunOdtokOdtudOdvahaOdvetaOdvolatOdvracetOdznakOfinaOfsajdOhlasOhniskoOhradaOhrozitOhryzekOkapOkeniceOklikaOknoOkouzlitOkovyOkrasaOkresOkrsekOkruhOkupantOkurkaOkusitOlejninaOlizovatOmakOmeletaOmezitOmladinaOmlouvatOmluvaOmylOnehdyOpakovatOpasekOperaceOpiceOpilostOpisovatOporaOpoziceOpravduOprotiOrbitalOrchestrOrgieOrliceOrlojOrtelOsadaOschnoutOsikaOsivoOslavaOslepitOslnitOslovitOsnovaOsobaOsolitOspalecOstenOstrahaOstudaOstychOsvojitOteplitOtiskOtopOtrhatOtrlostOtrokOtrubyOtvorOvanoutOvarOvesOvlivnitOvoceOxidOzdobaPachatelPacientPadouchPahorekPaktPalandaPalecPalivoPalubaPamfletPamlsekPanenkaPanikaPannaPanovatPanstvoPantoflePaprikaParketaParodiePartaParukaParybaPasekaPasivitaPastelkaPatentPatronaPavoukPaznehtPazourekPeckaPedagogPejsekPekloPelotonPenaltaPendrekPenzePeriskopPeroPestrostPetardaPeticePetrolejPevninaPexesoPianistaPihaPijavicePiklePiknikPilinaPilnostPilulkaPinzetaPipetaPisatelPistolePitevnaPivnicePivovarPlacentaPlakatPlamenPlanetaPlastikaPlatitPlavidloPlazPlechPlemenoPlentaPlesPletivoPlevelPlivatPlnitPlnoPlochaPlodinaPlombaPloutPlukPlynPobavitPobytPochodPocitPoctivecPodatPodcenitPodepsatPodhledPodivitPodkladPodmanitPodnikPodobaPodporaPodrazPodstataPodvodPodzimPoeziePohankaPohnutkaPohovorPohromaPohybPointaPojistkaPojmoutPokazitPoklesPokojPokrokPokutaPokynPolednePolibekPolknoutPolohaPolynomPomaluPominoutPomlkaPomocPomstaPomysletPonechatPonorkaPonurostPopadatPopelPopisekPoplachPoprositPopsatPopudPoradcePorcePorodPoruchaPoryvPosaditPosedPosilaPoskokPoslanecPosouditPospoluPostavaPosudekPosypPotahPotkanPotleskPotomekPotravaPotupaPotvoraPoukazPoutoPouzdroPovahaPovidlaPovlakPovozPovrchPovstatPovykPovzdechPozdravPozemekPoznatekPozorPozvatPracovatPrahoryPraktikaPralesPraotecPraporekPrasePravdaPrincipPrknoProbuditProcentoProdejProfeseProhraProjektProlomitPromilePronikatPropadProrokProsbaProtonProutekProvazPrskavkaPrstenPrudkostPrutPrvekPrvohoryPsanecPsovodPstruhPtactvoPubertaPuchPudlPukavecPuklinaPukrlePultPumpaPuncPupenPusaPusinkaPustinaPutovatPutykaPyramidaPyskPytelRacekRachotRadiaceRadniceRadonRaftRagbyRaketaRakovinaRamenoRampouchRandeRarachRaritaRasovnaRastrRatolestRazanceRazidloReagovatReakceReceptRedaktorReferentReflexRejnokReklamaRekordRekrutRektorReputaceRevizeRevmaRevolverRezervaRiskovatRizikoRobotikaRodokmenRohovkaRokleRokokoRomanetoRopovodRopuchaRorejsRosolRostlinaRotmistrRotopedRotundaRoubenkaRouchoRoupRouraRovinaRovniceRozborRozchodRozdatRozeznatRozhodceRozinkaRozjezdRozkazRozlohaRozmarRozpadRozruchRozsahRoztokRozumRozvodRubrikaRuchadloRukaviceRukopisRybaRybolovRychlostRydloRypadloRytinaRyzostSadistaSahatSakoSamecSamizdatSamotaSanitkaSardinkaSasankaSatelitSazbaSazeniceSborSchovatSebrankaSeceseSedadloSedimentSedloSehnatSejmoutSekeraSektaSekundaSekvojeSemenoSenoServisSesaditSeshoraSeskokSeslatSestraSesuvSesypatSetbaSetinaSetkatSetnoutSetrvatSeverSeznamShodaShrnoutSifonSilniceSirkaSirotekSirupSituaceSkafandrSkaliskoSkanzenSkautSkeptikSkicaSkladbaSkleniceSkloSkluzSkobaSkokanSkoroSkriptaSkrzSkupinaSkvostSkvrnaSlabikaSladidloSlaninaSlastSlavnostSledovatSlepecSlevaSlezinaSlibSlinaSlizniceSlonSloupekSlovoSluchSluhaSlunceSlupkaSlzaSmaragdSmetanaSmilstvoSmlouvaSmogSmradSmrkSmrtkaSmutekSmyslSnadSnahaSnobSobotaSochaSodovkaSokolSopkaSotvaSoubojSoucitSoudceSouhlasSouladSoumrakSoupravaSousedSoutokSouvisetSpalovnaSpasitelSpisSplavSpodekSpojenecSpoluSponzorSpornostSpoustaSprchaSpustitSrandaSrazSrdceSrnaSrnecSrovnatSrpenSrstSrubStaniceStarostaStatikaStavbaStehnoStezkaStodolaStolekStopaStornoStoupatStrachStresStrhnoutStromStrunaStudnaStupniceStvolStykSubjektSubtropySucharSudostSuknoSundatSunoutSurikataSurovinaSvahSvalstvoSvetrSvatbaSvazekSvisleSvitekSvobodaSvodidloSvorkaSvrabSykavkaSykotSynekSynovecSypatSypkostSyrovostSyselSytostTabletkaTabuleTahounTajemnoTajfunTajgaTajitTajnostTaktikaTamhleTamponTancovatTanecTankerTapetaTaveninaTazatelTechnikaTehdyTekutinaTelefonTemnotaTendenceTenistaTenorTeplotaTepnaTeprveTerapieTermoskaTextilTichoTiskopisTitulekTkadlecTkaninaTlapkaTleskatTlukotTlupaTmelToaletaTopinkaTopolTorzoTouhaToulecTradiceTraktorTrampTrasaTraverzaTrefitTrestTrezorTrhavinaTrhlinaTrochuTrojiceTroskaTroubaTrpceTrpitelTrpkostTrubecTruchlitTruhliceTrusTrvatTudyTuhnoutTuhostTundraTuristaTurnajTuzemskoTvarohTvorbaTvrdostTvrzTygrTykevUbohostUbozeUbratUbrousekUbrusUbytovnaUchoUctivostUdivitUhraditUjednatUjistitUjmoutUkazatelUklidnitUklonitUkotvitUkrojitUliceUlitaUlovitUmyvadloUnavitUniformaUniknoutUpadnoutUplatnitUplynoutUpoutatUpravitUranUrazitUsednoutUsilovatUsmrtitUsnadnitUsnoutUsouditUstlatUstrnoutUtahovatUtkatUtlumitUtonoutUtopenecUtrousitUvalitUvolnitUvozovkaUzdravitUzelUzeninaUzlinaUznatVagonValchaValounVanaVandalVanilkaVaranVarhanyVarovatVcelkuVchodVdovaVedroVegetaceVejceVelbloudVeletrhVelitelVelmocVelrybaVenkovVerandaVerzeVeselkaVeskrzeVesniceVespoduVestaVeterinaVeverkaVibraceVichrVideohraVidinaVidleVilaViniceVisetVitalitaVizeVizitkaVjezdVkladVkusVlajkaVlakVlasecVlevoVlhkostVlivVlnovkaVloupatVnucovatVnukVodaVodivostVodoznakVodstvoVojenskyVojnaVojskoVolantVolbaVolitVolnoVoskovkaVozidloVozovnaVpravoVrabecVracetVrahVrataVrbaVrcholekVrhatVrstvaVrtuleVsaditVstoupitVstupVtipVybavitVybratVychovatVydatVydraVyfotitVyhledatVyhnoutVyhoditVyhraditVyhubitVyjasnitVyjetVyjmoutVyklopitVykonatVylekatVymazatVymezitVymizetVymysletVynechatVynikatVynutitVypadatVyplatitVypravitVypustitVyrazitVyrovnatVyrvatVyslovitVysokoVystavitVysunoutVysypatVytasitVytesatVytratitVyvinoutVyvolatVyvrhelVyzdobitVyznatVzaduVzbuditVzchopitVzdorVzduchVzdychatVzestupVzhledemVzkazVzlykatVznikVzorekVzpouraVztahVztekXylofonZabratZabydletZachovatZadarmoZadusitZafoukatZahltitZahoditZahradaZahynoutZajatecZajetZajistitZaklepatZakoupitZalepitZamezitZamotatZamysletZanechatZanikatZaplatitZapojitZapsatZarazitZastavitZasunoutZatajitZatemnitZatknoutZaujmoutZavalitZaveletZavinitZavolatZavrtatZazvonitZbavitZbrusuZbudovatZbytekZdalekaZdarmaZdatnostZdivoZdobitZdrojZdvihZdymadloZeleninaZemanZeminaZeptatZezaduZezdolaZhatitZhltnoutZhlubokaZhotovitZhrubaZimaZimniceZjemnitZklamatZkoumatZkratkaZkumavkaZlatoZlehkaZlobaZlomZlostZlozvykZmapovatZmarZmatekZmijeZmizetZmocnitZmodratZmrzlinaZmutovatZnakZnalostZnamenatZnovuZobrazitZotavitZoubekZoufaleZploditZpomalitZpravaZprostitZprudkaZprvuZradaZranitZrcadloZrnitostZrnoZrovnaZrychlitZrzavostZtichaZtratitZubovinaZubrZvednoutZvenkuZveselaZvonZvratZvukovodZvyk",K4=null;function n$(t){if(K4==null&&(K4=fIe.replace(/([A-Z])/g," $1").toLowerCase().substring(1).split(" "),YR.Wordlist.check(t)!=="0x25f44555f4af25b51a711136e1c7d6e50ce9f8917d39d6b1f076b2bb4d2fac1a"))throw K4=null,new Error("BIP39 Wordlist for en (English) FAILED")}var pIe=function(t){lIe(e,t);function e(){return t.call(this,"cz")||this}return e.prototype.getWord=function(r){return n$(this),K4[r]},e.prototype.getWordIndex=function(r){return n$(this),K4.indexOf(r)},e}(YR.Wordlist),a$=new pIe;Mg.langCz=a$;YR.Wordlist.register(a$)});var c$=x(Cg=>{"use strict";var hIe=Cg&&Cg.__extends||function(){var t=function(e,r){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var a in n)Object.prototype.hasOwnProperty.call(n,a)&&(i[a]=n[a])},t(e,r)};return function(e,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");t(e,r);function i(){this.constructor=e}e.prototype=r===null?Object.create(r):(i.prototype=r.prototype,new i)}}();Object.defineProperty(Cg,"__esModule",{value:!0});Cg.langEn=void 0;var eM=Rd(),mIe="AbandonAbilityAbleAboutAboveAbsentAbsorbAbstractAbsurdAbuseAccessAccidentAccountAccuseAchieveAcidAcousticAcquireAcrossActActionActorActressActualAdaptAddAddictAddressAdjustAdmitAdultAdvanceAdviceAerobicAffairAffordAfraidAgainAgeAgentAgreeAheadAimAirAirportAisleAlarmAlbumAlcoholAlertAlienAllAlleyAllowAlmostAloneAlphaAlreadyAlsoAlterAlwaysAmateurAmazingAmongAmountAmusedAnalystAnchorAncientAngerAngleAngryAnimalAnkleAnnounceAnnualAnotherAnswerAntennaAntiqueAnxietyAnyApartApologyAppearAppleApproveAprilArchArcticAreaArenaArgueArmArmedArmorArmyAroundArrangeArrestArriveArrowArtArtefactArtistArtworkAskAspectAssaultAssetAssistAssumeAsthmaAthleteAtomAttackAttendAttitudeAttractAuctionAuditAugustAuntAuthorAutoAutumnAverageAvocadoAvoidAwakeAwareAwayAwesomeAwfulAwkwardAxisBabyBachelorBaconBadgeBagBalanceBalconyBallBambooBananaBannerBarBarelyBargainBarrelBaseBasicBasketBattleBeachBeanBeautyBecauseBecomeBeefBeforeBeginBehaveBehindBelieveBelowBeltBenchBenefitBestBetrayBetterBetweenBeyondBicycleBidBikeBindBiologyBirdBirthBitterBlackBladeBlameBlanketBlastBleakBlessBlindBloodBlossomBlouseBlueBlurBlushBoardBoatBodyBoilBombBoneBonusBookBoostBorderBoringBorrowBossBottomBounceBoxBoyBracketBrainBrandBrassBraveBreadBreezeBrickBridgeBriefBrightBringBriskBroccoliBrokenBronzeBroomBrotherBrownBrushBubbleBuddyBudgetBuffaloBuildBulbBulkBulletBundleBunkerBurdenBurgerBurstBusBusinessBusyButterBuyerBuzzCabbageCabinCableCactusCageCakeCallCalmCameraCampCanCanalCancelCandyCannonCanoeCanvasCanyonCapableCapitalCaptainCarCarbonCardCargoCarpetCarryCartCaseCashCasinoCastleCasualCatCatalogCatchCategoryCattleCaughtCauseCautionCaveCeilingCeleryCementCensusCenturyCerealCertainChairChalkChampionChangeChaosChapterChargeChaseChatCheapCheckCheeseChefCherryChestChickenChiefChildChimneyChoiceChooseChronicChuckleChunkChurnCigarCinnamonCircleCitizenCityCivilClaimClapClarifyClawClayCleanClerkCleverClickClientCliffClimbClinicClipClockClogCloseClothCloudClownClubClumpClusterClutchCoachCoastCoconutCodeCoffeeCoilCoinCollectColorColumnCombineComeComfortComicCommonCompanyConcertConductConfirmCongressConnectConsiderControlConvinceCookCoolCopperCopyCoralCoreCornCorrectCostCottonCouchCountryCoupleCourseCousinCoverCoyoteCrackCradleCraftCramCraneCrashCraterCrawlCrazyCreamCreditCreekCrewCricketCrimeCrispCriticCropCrossCrouchCrowdCrucialCruelCruiseCrumbleCrunchCrushCryCrystalCubeCultureCupCupboardCuriousCurrentCurtainCurveCushionCustomCuteCycleDadDamageDampDanceDangerDaringDashDaughterDawnDayDealDebateDebrisDecadeDecemberDecideDeclineDecorateDecreaseDeerDefenseDefineDefyDegreeDelayDeliverDemandDemiseDenialDentistDenyDepartDependDepositDepthDeputyDeriveDescribeDesertDesignDeskDespairDestroyDetailDetectDevelopDeviceDevoteDiagramDialDiamondDiaryDiceDieselDietDifferDigitalDignityDilemmaDinnerDinosaurDirectDirtDisagreeDiscoverDiseaseDishDismissDisorderDisplayDistanceDivertDivideDivorceDizzyDoctorDocumentDogDollDolphinDomainDonateDonkeyDonorDoorDoseDoubleDoveDraftDragonDramaDrasticDrawDreamDressDriftDrillDrinkDripDriveDropDrumDryDuckDumbDuneDuringDustDutchDutyDwarfDynamicEagerEagleEarlyEarnEarthEasilyEastEasyEchoEcologyEconomyEdgeEditEducateEffortEggEightEitherElbowElderElectricElegantElementElephantElevatorEliteElseEmbarkEmbodyEmbraceEmergeEmotionEmployEmpowerEmptyEnableEnactEndEndlessEndorseEnemyEnergyEnforceEngageEngineEnhanceEnjoyEnlistEnoughEnrichEnrollEnsureEnterEntireEntryEnvelopeEpisodeEqualEquipEraEraseErodeErosionErrorEruptEscapeEssayEssenceEstateEternalEthicsEvidenceEvilEvokeEvolveExactExampleExcessExchangeExciteExcludeExcuseExecuteExerciseExhaustExhibitExileExistExitExoticExpandExpectExpireExplainExposeExpressExtendExtraEyeEyebrowFabricFaceFacultyFadeFaintFaithFallFalseFameFamilyFamousFanFancyFantasyFarmFashionFatFatalFatherFatigueFaultFavoriteFeatureFebruaryFederalFeeFeedFeelFemaleFenceFestivalFetchFeverFewFiberFictionFieldFigureFileFilmFilterFinalFindFineFingerFinishFireFirmFirstFiscalFishFitFitnessFixFlagFlameFlashFlatFlavorFleeFlightFlipFloatFlockFloorFlowerFluidFlushFlyFoamFocusFogFoilFoldFollowFoodFootForceForestForgetForkFortuneForumForwardFossilFosterFoundFoxFragileFrameFrequentFreshFriendFringeFrogFrontFrostFrownFrozenFruitFuelFunFunnyFurnaceFuryFutureGadgetGainGalaxyGalleryGameGapGarageGarbageGardenGarlicGarmentGasGaspGateGatherGaugeGazeGeneralGeniusGenreGentleGenuineGestureGhostGiantGiftGiggleGingerGiraffeGirlGiveGladGlanceGlareGlassGlideGlimpseGlobeGloomGloryGloveGlowGlueGoatGoddessGoldGoodGooseGorillaGospelGossipGovernGownGrabGraceGrainGrantGrapeGrassGravityGreatGreenGridGriefGritGroceryGroupGrowGruntGuardGuessGuideGuiltGuitarGunGymHabitHairHalfHammerHamsterHandHappyHarborHardHarshHarvestHatHaveHawkHazardHeadHealthHeartHeavyHedgehogHeightHelloHelmetHelpHenHeroHiddenHighHillHintHipHireHistoryHobbyHockeyHoldHoleHolidayHollowHomeHoneyHoodHopeHornHorrorHorseHospitalHostHotelHourHoverHubHugeHumanHumbleHumorHundredHungryHuntHurdleHurryHurtHusbandHybridIceIconIdeaIdentifyIdleIgnoreIllIllegalIllnessImageImitateImmenseImmuneImpactImposeImproveImpulseInchIncludeIncomeIncreaseIndexIndicateIndoorIndustryInfantInflictInformInhaleInheritInitialInjectInjuryInmateInnerInnocentInputInquiryInsaneInsectInsideInspireInstallIntactInterestIntoInvestInviteInvolveIronIslandIsolateIssueItemIvoryJacketJaguarJarJazzJealousJeansJellyJewelJobJoinJokeJourneyJoyJudgeJuiceJumpJungleJuniorJunkJustKangarooKeenKeepKetchupKeyKickKidKidneyKindKingdomKissKitKitchenKiteKittenKiwiKneeKnifeKnockKnowLabLabelLaborLadderLadyLakeLampLanguageLaptopLargeLaterLatinLaughLaundryLavaLawLawnLawsuitLayerLazyLeaderLeafLearnLeaveLectureLeftLegLegalLegendLeisureLemonLendLengthLensLeopardLessonLetterLevelLiarLibertyLibraryLicenseLifeLiftLightLikeLimbLimitLinkLionLiquidListLittleLiveLizardLoadLoanLobsterLocalLockLogicLonelyLongLoopLotteryLoudLoungeLoveLoyalLuckyLuggageLumberLunarLunchLuxuryLyricsMachineMadMagicMagnetMaidMailMainMajorMakeMammalManManageMandateMangoMansionManualMapleMarbleMarchMarginMarineMarketMarriageMaskMassMasterMatchMaterialMathMatrixMatterMaximumMazeMeadowMeanMeasureMeatMechanicMedalMediaMelodyMeltMemberMemoryMentionMenuMercyMergeMeritMerryMeshMessageMetalMethodMiddleMidnightMilkMillionMimicMindMinimumMinorMinuteMiracleMirrorMiseryMissMistakeMixMixedMixtureMobileModelModifyMomMomentMonitorMonkeyMonsterMonthMoonMoralMoreMorningMosquitoMotherMotionMotorMountainMouseMoveMovieMuchMuffinMuleMultiplyMuscleMuseumMushroomMusicMustMutualMyselfMysteryMythNaiveNameNapkinNarrowNastyNationNatureNearNeckNeedNegativeNeglectNeitherNephewNerveNestNetNetworkNeutralNeverNewsNextNiceNightNobleNoiseNomineeNoodleNormalNorthNoseNotableNoteNothingNoticeNovelNowNuclearNumberNurseNutOakObeyObjectObligeObscureObserveObtainObviousOccurOceanOctoberOdorOffOfferOfficeOftenOilOkayOldOliveOlympicOmitOnceOneOnionOnlineOnlyOpenOperaOpinionOpposeOptionOrangeOrbitOrchardOrderOrdinaryOrganOrientOriginalOrphanOstrichOtherOutdoorOuterOutputOutsideOvalOvenOverOwnOwnerOxygenOysterOzonePactPaddlePagePairPalacePalmPandaPanelPanicPantherPaperParadeParentParkParrotPartyPassPatchPathPatientPatrolPatternPausePavePaymentPeacePeanutPearPeasantPelicanPenPenaltyPencilPeoplePepperPerfectPermitPersonPetPhonePhotoPhrasePhysicalPianoPicnicPicturePiecePigPigeonPillPilotPinkPioneerPipePistolPitchPizzaPlacePlanetPlasticPlatePlayPleasePledgePluckPlugPlungePoemPoetPointPolarPolePolicePondPonyPoolPopularPortionPositionPossiblePostPotatoPotteryPovertyPowderPowerPracticePraisePredictPreferPreparePresentPrettyPreventPricePridePrimaryPrintPriorityPrisonPrivatePrizeProblemProcessProduceProfitProgramProjectPromoteProofPropertyProsperProtectProudProvidePublicPuddingPullPulpPulsePumpkinPunchPupilPuppyPurchasePurityPurposePursePushPutPuzzlePyramidQualityQuantumQuarterQuestionQuickQuitQuizQuoteRabbitRaccoonRaceRackRadarRadioRailRainRaiseRallyRampRanchRandomRangeRapidRareRateRatherRavenRawRazorReadyRealReasonRebelRebuildRecallReceiveRecipeRecordRecycleReduceReflectReformRefuseRegionRegretRegularRejectRelaxReleaseReliefRelyRemainRememberRemindRemoveRenderRenewRentReopenRepairRepeatReplaceReportRequireRescueResembleResistResourceResponseResultRetireRetreatReturnReunionRevealReviewRewardRhythmRibRibbonRiceRichRideRidgeRifleRightRigidRingRiotRippleRiskRitualRivalRiverRoadRoastRobotRobustRocketRomanceRoofRookieRoomRoseRotateRoughRoundRouteRoyalRubberRudeRugRuleRunRunwayRuralSadSaddleSadnessSafeSailSaladSalmonSalonSaltSaluteSameSampleSandSatisfySatoshiSauceSausageSaveSayScaleScanScareScatterSceneSchemeSchoolScienceScissorsScorpionScoutScrapScreenScriptScrubSeaSearchSeasonSeatSecondSecretSectionSecuritySeedSeekSegmentSelectSellSeminarSeniorSenseSentenceSeriesServiceSessionSettleSetupSevenShadowShaftShallowShareShedShellSheriffShieldShiftShineShipShiverShockShoeShootShopShortShoulderShoveShrimpShrugShuffleShySiblingSickSideSiegeSightSignSilentSilkSillySilverSimilarSimpleSinceSingSirenSisterSituateSixSizeSkateSketchSkiSkillSkinSkirtSkullSlabSlamSleepSlenderSliceSlideSlightSlimSloganSlotSlowSlushSmallSmartSmileSmokeSmoothSnackSnakeSnapSniffSnowSoapSoccerSocialSockSodaSoftSolarSoldierSolidSolutionSolveSomeoneSongSoonSorrySortSoulSoundSoupSourceSouthSpaceSpareSpatialSpawnSpeakSpecialSpeedSpellSpendSphereSpiceSpiderSpikeSpinSpiritSplitSpoilSponsorSpoonSportSpotSpraySpreadSpringSpySquareSqueezeSquirrelStableStadiumStaffStageStairsStampStandStartStateStaySteakSteelStemStepStereoStickStillStingStockStomachStoneStoolStoryStoveStrategyStreetStrikeStrongStruggleStudentStuffStumbleStyleSubjectSubmitSubwaySuccessSuchSuddenSufferSugarSuggestSuitSummerSunSunnySunsetSuperSupplySupremeSureSurfaceSurgeSurpriseSurroundSurveySuspectSustainSwallowSwampSwapSwarmSwearSweetSwiftSwimSwingSwitchSwordSymbolSymptomSyrupSystemTableTackleTagTailTalentTalkTankTapeTargetTaskTasteTattooTaxiTeachTeamTellTenTenantTennisTentTermTestTextThankThatThemeThenTheoryThereTheyThingThisThoughtThreeThriveThrowThumbThunderTicketTideTigerTiltTimberTimeTinyTipTiredTissueTitleToastTobaccoTodayToddlerToeTogetherToiletTokenTomatoTomorrowToneTongueTonightToolToothTopTopicToppleTorchTornadoTortoiseTossTotalTouristTowardTowerTownToyTrackTradeTrafficTragicTrainTransferTrapTrashTravelTrayTreatTreeTrendTrialTribeTrickTriggerTrimTripTrophyTroubleTruckTrueTrulyTrumpetTrustTruthTryTubeTuitionTumbleTunaTunnelTurkeyTurnTurtleTwelveTwentyTwiceTwinTwistTwoTypeTypicalUglyUmbrellaUnableUnawareUncleUncoverUnderUndoUnfairUnfoldUnhappyUniformUniqueUnitUniverseUnknownUnlockUntilUnusualUnveilUpdateUpgradeUpholdUponUpperUpsetUrbanUrgeUsageUseUsedUsefulUselessUsualUtilityVacantVacuumVagueValidValleyValveVanVanishVaporVariousVastVaultVehicleVelvetVendorVentureVenueVerbVerifyVersionVeryVesselVeteranViableVibrantViciousVictoryVideoViewVillageVintageViolinVirtualVirusVisaVisitVisualVitalVividVocalVoiceVoidVolcanoVolumeVoteVoyageWageWagonWaitWalkWallWalnutWantWarfareWarmWarriorWashWaspWasteWaterWaveWayWealthWeaponWearWeaselWeatherWebWeddingWeekendWeirdWelcomeWestWetWhaleWhatWheatWheelWhenWhereWhipWhisperWideWidthWifeWildWillWinWindowWineWingWinkWinnerWinterWireWisdomWiseWishWitnessWolfWomanWonderWoodWoolWordWorkWorldWorryWorthWrapWreckWrestleWristWriteWrongYardYearYellowYouYoungYouthZebraZeroZoneZoo",W4=null;function o$(t){if(W4==null&&(W4=mIe.replace(/([A-Z])/g," $1").toLowerCase().substring(1).split(" "),eM.Wordlist.check(t)!=="0x3c8acc1e7b08d8e76f9fda015ef48dc8c710a73cb7e0f77b2c18a9b5a7adde60"))throw W4=null,new Error("BIP39 Wordlist for en (English) FAILED")}var gIe=function(t){hIe(e,t);function e(){return t.call(this,"en")||this}return e.prototype.getWord=function(r){return o$(this),W4[r]},e.prototype.getWordIndex=function(r){return o$(this),W4.indexOf(r)},e}(eM.Wordlist),u$=new gIe;Cg.langEn=u$;eM.Wordlist.register(u$)});var h$=x(Ig=>{"use strict";var yIe=Ig&&Ig.__extends||function(){var t=function(e,r){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var a in n)Object.prototype.hasOwnProperty.call(n,a)&&(i[a]=n[a])},t(e,r)};return function(e,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");t(e,r);function i(){this.constructor=e}e.prototype=r===null?Object.create(r):(i.prototype=r.prototype,new i)}}();Object.defineProperty(Ig,"__esModule",{value:!0});Ig.langEs=void 0;var A9=Cn(),P9=Rd(),vIe="A/bacoAbdomenAbejaAbiertoAbogadoAbonoAbortoAbrazoAbrirAbueloAbusoAcabarAcademiaAccesoAccio/nAceiteAcelgaAcentoAceptarA/cidoAclararAcne/AcogerAcosoActivoActoActrizActuarAcudirAcuerdoAcusarAdictoAdmitirAdoptarAdornoAduanaAdultoAe/reoAfectarAficio/nAfinarAfirmarA/gilAgitarAgoni/aAgostoAgotarAgregarAgrioAguaAgudoA/guilaAgujaAhogoAhorroAireAislarAjedrezAjenoAjusteAlacra/nAlambreAlarmaAlbaA/lbumAlcaldeAldeaAlegreAlejarAlertaAletaAlfilerAlgaAlgodo/nAliadoAlientoAlivioAlmaAlmejaAlmi/barAltarAltezaAltivoAltoAlturaAlumnoAlzarAmableAmanteAmapolaAmargoAmasarA/mbarA/mbitoAmenoAmigoAmistadAmorAmparoAmplioAnchoAncianoAnclaAndarAnde/nAnemiaA/nguloAnilloA/nimoAni/sAnotarAntenaAntiguoAntojoAnualAnularAnuncioA~adirA~ejoA~oApagarAparatoApetitoApioAplicarApodoAporteApoyoAprenderAprobarApuestaApuroAradoAra~aArarA/rbitroA/rbolArbustoArchivoArcoArderArdillaArduoA/reaA/ridoAriesArmoni/aArne/sAromaArpaArpo/nArregloArrozArrugaArteArtistaAsaAsadoAsaltoAscensoAsegurarAseoAsesorAsientoAsiloAsistirAsnoAsombroA/speroAstillaAstroAstutoAsumirAsuntoAtajoAtaqueAtarAtentoAteoA/ticoAtletaA/tomoAtraerAtrozAtu/nAudazAudioAugeAulaAumentoAusenteAutorAvalAvanceAvaroAveAvellanaAvenaAvestruzAvio/nAvisoAyerAyudaAyunoAzafra/nAzarAzoteAzu/carAzufreAzulBabaBaborBacheBahi/aBaileBajarBalanzaBalco/nBaldeBambu/BancoBandaBa~oBarbaBarcoBarnizBarroBa/sculaBasto/nBasuraBatallaBateri/aBatirBatutaBau/lBazarBebe/BebidaBelloBesarBesoBestiaBichoBienBingoBlancoBloqueBlusaBoaBobinaBoboBocaBocinaBodaBodegaBoinaBolaBoleroBolsaBombaBondadBonitoBonoBonsa/iBordeBorrarBosqueBoteBoti/nBo/vedaBozalBravoBrazoBrechaBreveBrilloBrincoBrisaBrocaBromaBronceBroteBrujaBruscoBrutoBuceoBucleBuenoBueyBufandaBufo/nBu/hoBuitreBultoBurbujaBurlaBurroBuscarButacaBuzo/nCaballoCabezaCabinaCabraCacaoCada/verCadenaCaerCafe/Cai/daCaima/nCajaCajo/nCalCalamarCalcioCaldoCalidadCalleCalmaCalorCalvoCamaCambioCamelloCaminoCampoCa/ncerCandilCanelaCanguroCanicaCantoCa~aCa~o/nCaobaCaosCapazCapita/nCapoteCaptarCapuchaCaraCarbo/nCa/rcelCaretaCargaCari~oCarneCarpetaCarroCartaCasaCascoCaseroCaspaCastorCatorceCatreCaudalCausaCazoCebollaCederCedroCeldaCe/lebreCelosoCe/lulaCementoCenizaCentroCercaCerdoCerezaCeroCerrarCertezaCe/spedCetroChacalChalecoChampu/ChanclaChapaCharlaChicoChisteChivoChoqueChozaChuletaChuparCiclo/nCiegoCieloCienCiertoCifraCigarroCimaCincoCineCintaCipre/sCircoCiruelaCisneCitaCiudadClamorClanClaroClaseClaveClienteClimaCli/nicaCobreCoccio/nCochinoCocinaCocoCo/digoCodoCofreCogerCoheteCoji/nCojoColaColchaColegioColgarColinaCollarColmoColumnaCombateComerComidaCo/modoCompraCondeConejoCongaConocerConsejoContarCopaCopiaCorazo/nCorbataCorchoCordo/nCoronaCorrerCoserCosmosCostaCra/neoCra/terCrearCrecerCrei/doCremaCri/aCrimenCriptaCrisisCromoCro/nicaCroquetaCrudoCruzCuadroCuartoCuatroCuboCubrirCucharaCuelloCuentoCuerdaCuestaCuevaCuidarCulebraCulpaCultoCumbreCumplirCunaCunetaCuotaCupo/nCu/pulaCurarCuriosoCursoCurvaCutisDamaDanzaDarDardoDa/tilDeberDe/bilDe/cadaDecirDedoDefensaDefinirDejarDelfi/nDelgadoDelitoDemoraDensoDentalDeporteDerechoDerrotaDesayunoDeseoDesfileDesnudoDestinoDesvi/oDetalleDetenerDeudaDi/aDiabloDiademaDiamanteDianaDiarioDibujoDictarDienteDietaDiezDifi/cilDignoDilemaDiluirDineroDirectoDirigirDiscoDise~oDisfrazDivaDivinoDobleDoceDolorDomingoDonDonarDoradoDormirDorsoDosDosisDrago/nDrogaDuchaDudaDueloDue~oDulceDu/oDuqueDurarDurezaDuroE/banoEbrioEcharEcoEcuadorEdadEdicio/nEdificioEditorEducarEfectoEficazEjeEjemploElefanteElegirElementoElevarElipseE/liteElixirElogioEludirEmbudoEmitirEmocio/nEmpateEmpe~oEmpleoEmpresaEnanoEncargoEnchufeEnci/aEnemigoEneroEnfadoEnfermoEnga~oEnigmaEnlaceEnormeEnredoEnsayoEnse~arEnteroEntrarEnvaseEnvi/oE/pocaEquipoErizoEscalaEscenaEscolarEscribirEscudoEsenciaEsferaEsfuerzoEspadaEspejoEspi/aEsposaEspumaEsqui/EstarEsteEstiloEstufaEtapaEternoE/ticaEtniaEvadirEvaluarEventoEvitarExactoExamenExcesoExcusaExentoExigirExilioExistirE/xitoExpertoExplicarExponerExtremoFa/bricaFa/bulaFachadaFa/cilFactorFaenaFajaFaldaFalloFalsoFaltarFamaFamiliaFamosoFarao/nFarmaciaFarolFarsaFaseFatigaFaunaFavorFaxFebreroFechaFelizFeoFeriaFerozFe/rtilFervorFesti/nFiableFianzaFiarFibraFiccio/nFichaFideoFiebreFielFieraFiestaFiguraFijarFijoFilaFileteFilialFiltroFinFincaFingirFinitoFirmaFlacoFlautaFlechaFlorFlotaFluirFlujoFlu/orFobiaFocaFogataFogo/nFolioFolletoFondoFormaForroFortunaForzarFosaFotoFracasoFra/gilFranjaFraseFraudeFrei/rFrenoFresaFri/oFritoFrutaFuegoFuenteFuerzaFugaFumarFuncio/nFundaFurgo/nFuriaFusilFu/tbolFuturoGacelaGafasGaitaGajoGalaGaleri/aGalloGambaGanarGanchoGangaGansoGarajeGarzaGasolinaGastarGatoGavila/nGemeloGemirGenGe/neroGenioGenteGeranioGerenteGermenGestoGiganteGimnasioGirarGiroGlaciarGloboGloriaGolGolfoGolosoGolpeGomaGordoGorilaGorraGotaGoteoGozarGradaGra/ficoGranoGrasaGratisGraveGrietaGrilloGripeGrisGritoGrosorGru/aGruesoGrumoGrupoGuanteGuapoGuardiaGuerraGui/aGui~oGuionGuisoGuitarraGusanoGustarHaberHa/bilHablarHacerHachaHadaHallarHamacaHarinaHazHaza~aHebillaHebraHechoHeladoHelioHembraHerirHermanoHe/roeHervirHieloHierroHi/gadoHigieneHijoHimnoHistoriaHocicoHogarHogueraHojaHombreHongoHonorHonraHoraHormigaHornoHostilHoyoHuecoHuelgaHuertaHuesoHuevoHuidaHuirHumanoHu/medoHumildeHumoHundirHuraca/nHurtoIconoIdealIdiomaI/doloIglesiaIglu/IgualIlegalIlusio/nImagenIma/nImitarImparImperioImponerImpulsoIncapazI/ndiceInerteInfielInformeIngenioInicioInmensoInmuneInnatoInsectoInstanteIntere/sI/ntimoIntuirInu/tilInviernoIraIrisIroni/aIslaIsloteJabali/Jabo/nJamo/nJarabeJardi/nJarraJaulaJazmi/nJefeJeringaJineteJornadaJorobaJovenJoyaJuergaJuevesJuezJugadorJugoJugueteJuicioJuncoJunglaJunioJuntarJu/piterJurarJustoJuvenilJuzgarKiloKoalaLabioLacioLacraLadoLadro/nLagartoLa/grimaLagunaLaicoLamerLa/minaLa/mparaLanaLanchaLangostaLanzaLa/pizLargoLarvaLa/stimaLataLa/texLatirLaurelLavarLazoLealLeccio/nLecheLectorLeerLegio/nLegumbreLejanoLenguaLentoLe~aLeo/nLeopardoLesio/nLetalLetraLeveLeyendaLibertadLibroLicorLi/derLidiarLienzoLigaLigeroLimaLi/miteLimo/nLimpioLinceLindoLi/neaLingoteLinoLinternaLi/quidoLisoListaLiteraLitioLitroLlagaLlamaLlantoLlaveLlegarLlenarLlevarLlorarLloverLluviaLoboLocio/nLocoLocuraLo/gicaLogroLombrizLomoLonjaLoteLuchaLucirLugarLujoLunaLunesLupaLustroLutoLuzMacetaMachoMaderaMadreMaduroMaestroMafiaMagiaMagoMai/zMaldadMaletaMallaMaloMama/MamboMamutMancoMandoManejarMangaManiqui/ManjarManoMansoMantaMa~anaMapaMa/quinaMarMarcoMareaMarfilMargenMaridoMa/rmolMarro/nMartesMarzoMasaMa/scaraMasivoMatarMateriaMatizMatrizMa/ximoMayorMazorcaMechaMedallaMedioMe/dulaMejillaMejorMelenaMelo/nMemoriaMenorMensajeMenteMenu/MercadoMerengueMe/ritoMesMeso/nMetaMeterMe/todoMetroMezclaMiedoMielMiembroMigaMilMilagroMilitarMillo/nMimoMinaMineroMi/nimoMinutoMiopeMirarMisaMiseriaMisilMismoMitadMitoMochilaMocio/nModaModeloMohoMojarMoldeMolerMolinoMomentoMomiaMonarcaMonedaMonjaMontoMo~oMoradaMorderMorenoMorirMorroMorsaMortalMoscaMostrarMotivoMoverMo/vilMozoMuchoMudarMuebleMuelaMuerteMuestraMugreMujerMulaMuletaMultaMundoMu~ecaMuralMuroMu/sculoMuseoMusgoMu/sicaMusloNa/carNacio/nNadarNaipeNaranjaNarizNarrarNasalNatalNativoNaturalNa/useaNavalNaveNavidadNecioNe/ctarNegarNegocioNegroNeo/nNervioNetoNeutroNevarNeveraNichoNidoNieblaNietoNi~ezNi~oNi/tidoNivelNoblezaNocheNo/minaNoriaNormaNorteNotaNoticiaNovatoNovelaNovioNubeNucaNu/cleoNudilloNudoNueraNueveNuezNuloNu/meroNutriaOasisObesoObispoObjetoObraObreroObservarObtenerObvioOcaOcasoOce/anoOchentaOchoOcioOcreOctavoOctubreOcultoOcuparOcurrirOdiarOdioOdiseaOesteOfensaOfertaOficioOfrecerOgroOi/doOi/rOjoOlaOleadaOlfatoOlivoOllaOlmoOlorOlvidoOmbligoOndaOnzaOpacoOpcio/nO/peraOpinarOponerOptarO/pticaOpuestoOracio/nOradorOralO/rbitaOrcaOrdenOrejaO/rganoOrgi/aOrgulloOrienteOrigenOrillaOroOrquestaOrugaOsadi/aOscuroOseznoOsoOstraOto~oOtroOvejaO/vuloO/xidoOxi/genoOyenteOzonoPactoPadrePaellaPa/ginaPagoPai/sPa/jaroPalabraPalcoPaletaPa/lidoPalmaPalomaPalparPanPanalPa/nicoPanteraPa~ueloPapa/PapelPapillaPaquetePararParcelaParedParirParoPa/rpadoParquePa/rrafoPartePasarPaseoPasio/nPasoPastaPataPatioPatriaPausaPautaPavoPayasoPeato/nPecadoPeceraPechoPedalPedirPegarPeinePelarPelda~oPeleaPeligroPellejoPeloPelucaPenaPensarPe~o/nPeo/nPeorPepinoPeque~oPeraPerchaPerderPerezaPerfilPericoPerlaPermisoPerroPersonaPesaPescaPe/simoPesta~aPe/taloPetro/leoPezPezu~aPicarPicho/nPiePiedraPiernaPiezaPijamaPilarPilotoPimientaPinoPintorPinzaPi~aPiojoPipaPirataPisarPiscinaPisoPistaPito/nPizcaPlacaPlanPlataPlayaPlazaPleitoPlenoPlomoPlumaPluralPobrePocoPoderPodioPoemaPoesi/aPoetaPolenPolici/aPolloPolvoPomadaPomeloPomoPompaPonerPorcio/nPortalPosadaPoseerPosiblePostePotenciaPotroPozoPradoPrecozPreguntaPremioPrensaPresoPrevioPrimoPri/ncipePrisio/nPrivarProaProbarProcesoProductoProezaProfesorProgramaProlePromesaProntoPropioPro/ximoPruebaPu/blicoPucheroPudorPuebloPuertaPuestoPulgaPulirPulmo/nPulpoPulsoPumaPuntoPu~alPu~oPupaPupilaPure/QuedarQuejaQuemarQuererQuesoQuietoQui/micaQuinceQuitarRa/banoRabiaRaboRacio/nRadicalRai/zRamaRampaRanchoRangoRapazRa/pidoRaptoRasgoRaspaRatoRayoRazaRazo/nReaccio/nRealidadReba~oReboteRecaerRecetaRechazoRecogerRecreoRectoRecursoRedRedondoReducirReflejoReformaRefra/nRefugioRegaloRegirReglaRegresoRehe/nReinoRei/rRejaRelatoRelevoRelieveRellenoRelojRemarRemedioRemoRencorRendirRentaRepartoRepetirReposoReptilResRescateResinaRespetoRestoResumenRetiroRetornoRetratoReunirReve/sRevistaReyRezarRicoRiegoRiendaRiesgoRifaRi/gidoRigorRinco/nRi~o/nRi/oRiquezaRisaRitmoRitoRizoRobleRoceRociarRodarRodeoRodillaRoerRojizoRojoRomeroRomperRonRoncoRondaRopaRoperoRosaRoscaRostroRotarRubi/RuborRudoRuedaRugirRuidoRuinaRuletaRuloRumboRumorRupturaRutaRutinaSa/badoSaberSabioSableSacarSagazSagradoSalaSaldoSaleroSalirSalmo/nSalo/nSalsaSaltoSaludSalvarSambaSancio/nSandi/aSanearSangreSanidadSanoSantoSapoSaqueSardinaSarte/nSastreSata/nSaunaSaxofo/nSeccio/nSecoSecretoSectaSedSeguirSeisSelloSelvaSemanaSemillaSendaSensorSe~alSe~orSepararSepiaSequi/aSerSerieSermo/nServirSesentaSesio/nSetaSetentaSeveroSexoSextoSidraSiestaSieteSigloSignoSi/labaSilbarSilencioSillaSi/mboloSimioSirenaSistemaSitioSituarSobreSocioSodioSolSolapaSoldadoSoledadSo/lidoSoltarSolucio/nSombraSondeoSonidoSonoroSonrisaSopaSoplarSoporteSordoSorpresaSorteoSoste/nSo/tanoSuaveSubirSucesoSudorSuegraSueloSue~oSuerteSufrirSujetoSulta/nSumarSuperarSuplirSuponerSupremoSurSurcoSure~oSurgirSustoSutilTabacoTabiqueTablaTabu/TacoTactoTajoTalarTalcoTalentoTallaTalo/nTama~oTamborTangoTanqueTapaTapeteTapiaTapo/nTaquillaTardeTareaTarifaTarjetaTarotTarroTartaTatuajeTauroTazaTazo/nTeatroTechoTeclaTe/cnicaTejadoTejerTejidoTelaTele/fonoTemaTemorTemploTenazTenderTenerTenisTensoTeori/aTerapiaTercoTe/rminoTernuraTerrorTesisTesoroTestigoTeteraTextoTezTibioTiburo/nTiempoTiendaTierraTiesoTigreTijeraTildeTimbreTi/midoTimoTintaTi/oTi/picoTipoTiraTiro/nTita/nTi/tereTi/tuloTizaToallaTobilloTocarTocinoTodoTogaToldoTomarTonoTontoToparTopeToqueTo/raxToreroTormentaTorneoToroTorpedoTorreTorsoTortugaTosToscoToserTo/xicoTrabajoTractorTraerTra/ficoTragoTrajeTramoTranceTratoTraumaTrazarTre/bolTreguaTreintaTrenTreparTresTribuTrigoTripaTristeTriunfoTrofeoTrompaTroncoTropaTroteTrozoTrucoTruenoTrufaTuberi/aTuboTuertoTumbaTumorTu/nelTu/nicaTurbinaTurismoTurnoTutorUbicarU/lceraUmbralUnidadUnirUniversoUnoUntarU~aUrbanoUrbeUrgenteUrnaUsarUsuarioU/tilUtopi/aUvaVacaVaci/oVacunaVagarVagoVainaVajillaValeVa/lidoValleValorVa/lvulaVampiroVaraVariarVaro/nVasoVecinoVectorVehi/culoVeinteVejezVelaVeleroVelozVenaVencerVendaVenenoVengarVenirVentaVenusVerVeranoVerboVerdeVeredaVerjaVersoVerterVi/aViajeVibrarVicioVi/ctimaVidaVi/deoVidrioViejoViernesVigorVilVillaVinagreVinoVi~edoVioli/nViralVirgoVirtudVisorVi/speraVistaVitaminaViudoVivazViveroVivirVivoVolca/nVolumenVolverVorazVotarVotoVozVueloVulgarYacerYateYeguaYemaYernoYesoYodoYogaYogurZafiroZanjaZapatoZarzaZonaZorroZumoZurdo",l$={},Z4=null;function f$(t){return P9.logger.checkNormalize(),(0,A9.toUtf8String)(Array.prototype.filter.call((0,A9.toUtf8Bytes)(t.normalize("NFD").toLowerCase()),function(e){return e>=65&&e<=90||e>=97&&e<=123}))}function bIe(t){var e=[];return Array.prototype.forEach.call((0,A9.toUtf8Bytes)(t),function(r){r===47?(e.push(204),e.push(129)):r===126?(e.push(110),e.push(204),e.push(131)):e.push(r)}),(0,A9.toUtf8String)(e)}function d$(t){if(Z4==null&&(Z4=vIe.replace(/([A-Z])/g," $1").toLowerCase().substring(1).split(" ").map(function(e){return bIe(e)}),Z4.forEach(function(e,r){l$[f$(e)]=r}),P9.Wordlist.check(t)!=="0xf74fb7092aeacdfbf8959557de22098da512207fb9f109cb526994938cf40300"))throw Z4=null,new Error("BIP39 Wordlist for es (Spanish) FAILED")}var _Ie=function(t){yIe(e,t);function e(){return t.call(this,"es")||this}return e.prototype.getWord=function(r){return d$(this),Z4[r]},e.prototype.getWordIndex=function(r){return d$(this),l$[f$(r)]},e}(P9.Wordlist),p$=new _Ie;Ig.langEs=p$;P9.Wordlist.register(p$)});var b$=x(Ng=>{"use strict";var wIe=Ng&&Ng.__extends||function(){var t=function(e,r){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var a in n)Object.prototype.hasOwnProperty.call(n,a)&&(i[a]=n[a])},t(e,r)};return function(e,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");t(e,r);function i(){this.constructor=e}e.prototype=r===null?Object.create(r):(i.prototype=r.prototype,new i)}}();Object.defineProperty(Ng,"__esModule",{value:!0});Ng.langFr=void 0;var O9=Cn(),R9=Rd(),xIe="AbaisserAbandonAbdiquerAbeilleAbolirAborderAboutirAboyerAbrasifAbreuverAbriterAbrogerAbruptAbsenceAbsoluAbsurdeAbusifAbyssalAcade/mieAcajouAcarienAccablerAccepterAcclamerAccoladeAccrocheAccuserAcerbeAchatAcheterAcidulerAcierAcompteAcque/rirAcronymeActeurActifActuelAdepteAde/quatAdhe/sifAdjectifAdjugerAdmettreAdmirerAdopterAdorerAdoucirAdresseAdroitAdulteAdverbeAe/rerAe/ronefAffaireAffecterAfficheAffreuxAffublerAgacerAgencerAgileAgiterAgraferAgre/ableAgrumeAiderAiguilleAilierAimableAisanceAjouterAjusterAlarmerAlchimieAlerteAlge-breAlgueAlie/nerAlimentAlle/gerAlliageAllouerAllumerAlourdirAlpagaAltesseAlve/oleAmateurAmbiguAmbreAme/nagerAmertumeAmidonAmiralAmorcerAmourAmovibleAmphibieAmpleurAmusantAnalyseAnaphoreAnarchieAnatomieAncienAne/antirAngleAngoisseAnguleuxAnimalAnnexerAnnonceAnnuelAnodinAnomalieAnonymeAnormalAntenneAntidoteAnxieuxApaiserApe/ritifAplanirApologieAppareilAppelerApporterAppuyerAquariumAqueducArbitreArbusteArdeurArdoiseArgentArlequinArmatureArmementArmoireArmureArpenterArracherArriverArroserArsenicArte/rielArticleAspectAsphalteAspirerAssautAsservirAssietteAssocierAssurerAsticotAstreAstuceAtelierAtomeAtriumAtroceAttaqueAttentifAttirerAttraperAubaineAubergeAudaceAudibleAugurerAuroreAutomneAutrucheAvalerAvancerAvariceAvenirAverseAveugleAviateurAvideAvionAviserAvoineAvouerAvrilAxialAxiomeBadgeBafouerBagageBaguetteBaignadeBalancerBalconBaleineBalisageBambinBancaireBandageBanlieueBannie-reBanquierBarbierBarilBaronBarqueBarrageBassinBastionBatailleBateauBatterieBaudrierBavarderBeletteBe/lierBeloteBe/ne/ficeBerceauBergerBerlineBermudaBesaceBesogneBe/tailBeurreBiberonBicycleBiduleBijouBilanBilingueBillardBinaireBiologieBiopsieBiotypeBiscuitBisonBistouriBitumeBizarreBlafardBlagueBlanchirBlessantBlinderBlondBloquerBlousonBobardBobineBoireBoiserBolideBonbonBondirBonheurBonifierBonusBordureBorneBotteBoucleBoueuxBougieBoulonBouquinBourseBoussoleBoutiqueBoxeurBrancheBrasierBraveBrebisBre-cheBreuvageBricolerBrigadeBrillantBriocheBriqueBrochureBroderBronzerBrousseBroyeurBrumeBrusqueBrutalBruyantBuffleBuissonBulletinBureauBurinBustierButinerButoirBuvableBuvetteCabanonCabineCachetteCadeauCadreCafe/ineCaillouCaissonCalculerCalepinCalibreCalmerCalomnieCalvaireCamaradeCame/raCamionCampagneCanalCanetonCanonCantineCanularCapableCaporalCapriceCapsuleCapterCapucheCarabineCarboneCaresserCaribouCarnageCarotteCarreauCartonCascadeCasierCasqueCassureCauserCautionCavalierCaverneCaviarCe/dilleCeintureCe/lesteCelluleCendrierCensurerCentralCercleCe/re/bralCeriseCernerCerveauCesserChagrinChaiseChaleurChambreChanceChapitreCharbonChasseurChatonChaussonChavirerChemiseChenilleChe/quierChercherChevalChienChiffreChignonChime-reChiotChlorureChocolatChoisirChoseChouetteChromeChuteCigareCigogneCimenterCine/maCintrerCirculerCirerCirqueCiterneCitoyenCitronCivilClaironClameurClaquerClasseClavierClientClignerClimatClivageClocheClonageCloporteCobaltCobraCocasseCocotierCoderCodifierCoffreCognerCohe/sionCoifferCoincerCole-reColibriCollineColmaterColonelCombatCome/dieCommandeCompactConcertConduireConfierCongelerConnoterConsonneContactConvexeCopainCopieCorailCorbeauCordageCornicheCorpusCorrectCorte-geCosmiqueCostumeCotonCoudeCoupureCourageCouteauCouvrirCoyoteCrabeCrainteCravateCrayonCre/atureCre/diterCre/meuxCreuserCrevetteCriblerCrierCristalCrite-reCroireCroquerCrotaleCrucialCruelCrypterCubiqueCueillirCuille-reCuisineCuivreCulminerCultiverCumulerCupideCuratifCurseurCyanureCycleCylindreCyniqueDaignerDamierDangerDanseurDauphinDe/battreDe/biterDe/borderDe/briderDe/butantDe/calerDe/cembreDe/chirerDe/ciderDe/clarerDe/corerDe/crireDe/cuplerDe/daleDe/ductifDe/esseDe/fensifDe/filerDe/frayerDe/gagerDe/givrerDe/glutirDe/graferDe/jeunerDe/liceDe/logerDemanderDemeurerDe/molirDe/nicherDe/nouerDentelleDe/nuderDe/partDe/penserDe/phaserDe/placerDe/poserDe/rangerDe/roberDe/sastreDescenteDe/sertDe/signerDe/sobe/irDessinerDestrierDe/tacherDe/testerDe/tourerDe/tresseDevancerDevenirDevinerDevoirDiableDialogueDiamantDicterDiffe/rerDige/rerDigitalDigneDiluerDimancheDiminuerDioxydeDirectifDirigerDiscuterDisposerDissiperDistanceDivertirDiviserDocileDocteurDogmeDoigtDomaineDomicileDompterDonateurDonjonDonnerDopamineDortoirDorureDosageDoseurDossierDotationDouanierDoubleDouceurDouterDoyenDragonDraperDresserDribblerDroitureDuperieDuplexeDurableDurcirDynastieE/blouirE/carterE/charpeE/chelleE/clairerE/clipseE/cloreE/cluseE/coleE/conomieE/corceE/couterE/craserE/cre/merE/crivainE/crouE/cumeE/cureuilE/difierE/duquerEffacerEffectifEffigieEffortEffrayerEffusionE/galiserE/garerE/jecterE/laborerE/largirE/lectronE/le/gantE/le/phantE/le-veE/ligibleE/litismeE/logeE/luciderE/luderEmballerEmbellirEmbryonE/meraudeE/missionEmmenerE/motionE/mouvoirEmpereurEmployerEmporterEmpriseE/mulsionEncadrerEnche-reEnclaveEncocheEndiguerEndosserEndroitEnduireE/nergieEnfanceEnfermerEnfouirEngagerEnginEngloberE/nigmeEnjamberEnjeuEnleverEnnemiEnnuyeuxEnrichirEnrobageEnseigneEntasserEntendreEntierEntourerEntraverE/nume/rerEnvahirEnviableEnvoyerEnzymeE/olienE/paissirE/pargneE/patantE/pauleE/picerieE/pide/mieE/pierE/pilogueE/pineE/pisodeE/pitapheE/poqueE/preuveE/prouverE/puisantE/querreE/quipeE/rigerE/rosionErreurE/ruptionEscalierEspadonEspe-ceEspie-gleEspoirEspritEsquiverEssayerEssenceEssieuEssorerEstimeEstomacEstradeE/tage-reE/talerE/tancheE/tatiqueE/teindreE/tendoirE/ternelE/thanolE/thiqueEthnieE/tirerE/tofferE/toileE/tonnantE/tourdirE/trangeE/troitE/tudeEuphorieE/valuerE/vasionE/ventailE/videnceE/viterE/volutifE/voquerExactExage/rerExaucerExcellerExcitantExclusifExcuseExe/cuterExempleExercerExhalerExhorterExigenceExilerExisterExotiqueExpe/dierExplorerExposerExprimerExquisExtensifExtraireExulterFableFabuleuxFacetteFacileFactureFaiblirFalaiseFameuxFamilleFarceurFarfeluFarineFaroucheFascinerFatalFatigueFauconFautifFaveurFavoriFe/brileFe/conderFe/de/rerFe/linFemmeFe/murFendoirFe/odalFermerFe/roceFerveurFestivalFeuilleFeutreFe/vrierFiascoFicelerFictifFide-leFigureFilatureFiletageFilie-reFilleulFilmerFilouFiltrerFinancerFinirFioleFirmeFissureFixerFlairerFlammeFlasqueFlatteurFle/auFle-cheFleurFlexionFloconFloreFluctuerFluideFluvialFolieFonderieFongibleFontaineForcerForgeronFormulerFortuneFossileFoudreFouge-reFouillerFoulureFourmiFragileFraiseFranchirFrapperFrayeurFre/gateFreinerFrelonFre/mirFre/ne/sieFre-reFriableFrictionFrissonFrivoleFroidFromageFrontalFrotterFruitFugitifFuiteFureurFurieuxFurtifFusionFuturGagnerGalaxieGalerieGambaderGarantirGardienGarnirGarrigueGazelleGazonGe/antGe/latineGe/luleGendarmeGe/ne/ralGe/nieGenouGentilGe/ologieGe/ome-treGe/raniumGermeGestuelGeyserGibierGiclerGirafeGivreGlaceGlaiveGlisserGlobeGloireGlorieuxGolfeurGommeGonflerGorgeGorilleGoudronGouffreGoulotGoupilleGourmandGoutteGraduelGraffitiGraineGrandGrappinGratuitGravirGrenatGriffureGrillerGrimperGrognerGronderGrotteGroupeGrugerGrutierGruye-reGue/pardGuerrierGuideGuimauveGuitareGustatifGymnasteGyrostatHabitudeHachoirHalteHameauHangarHannetonHaricotHarmonieHarponHasardHe/liumHe/matomeHerbeHe/rissonHermineHe/ronHe/siterHeureuxHibernerHibouHilarantHistoireHiverHomardHommageHomoge-neHonneurHonorerHonteuxHordeHorizonHorlogeHormoneHorribleHouleuxHousseHublotHuileuxHumainHumbleHumideHumourHurlerHydromelHygie-neHymneHypnoseIdylleIgnorerIguaneIlliciteIllusionImageImbiberImiterImmenseImmobileImmuableImpactImpe/rialImplorerImposerImprimerImputerIncarnerIncendieIncidentInclinerIncoloreIndexerIndiceInductifIne/ditIneptieInexactInfiniInfligerInformerInfusionInge/rerInhalerInhiberInjecterInjureInnocentInoculerInonderInscrireInsecteInsigneInsoliteInspirerInstinctInsulterIntactIntenseIntimeIntrigueIntuitifInutileInvasionInventerInviterInvoquerIroniqueIrradierIrre/elIrriterIsolerIvoireIvresseJaguarJaillirJambeJanvierJardinJaugerJauneJavelotJetableJetonJeudiJeunesseJoindreJoncherJonglerJoueurJouissifJournalJovialJoyauJoyeuxJubilerJugementJuniorJuponJuristeJusticeJuteuxJuve/nileKayakKimonoKiosqueLabelLabialLabourerLace/rerLactoseLaguneLaineLaisserLaitierLambeauLamelleLampeLanceurLangageLanterneLapinLargeurLarmeLaurierLavaboLavoirLectureLe/galLe/gerLe/gumeLessiveLettreLevierLexiqueLe/zardLiasseLibe/rerLibreLicenceLicorneLie-geLie-vreLigatureLigoterLigueLimerLimiteLimonadeLimpideLine/aireLingotLionceauLiquideLisie-reListerLithiumLitigeLittoralLivreurLogiqueLointainLoisirLombricLoterieLouerLourdLoutreLouveLoyalLubieLucideLucratifLueurLugubreLuisantLumie-reLunaireLundiLuronLutterLuxueuxMachineMagasinMagentaMagiqueMaigreMaillonMaintienMairieMaisonMajorerMalaxerMale/ficeMalheurMaliceMalletteMammouthMandaterManiableManquantManteauManuelMarathonMarbreMarchandMardiMaritimeMarqueurMarronMartelerMascotteMassifMate/rielMatie-reMatraqueMaudireMaussadeMauveMaximalMe/chantMe/connuMe/dailleMe/decinMe/diterMe/duseMeilleurMe/langeMe/lodieMembreMe/moireMenacerMenerMenhirMensongeMentorMercrediMe/riteMerleMessagerMesureMe/talMe/te/oreMe/thodeMe/tierMeubleMiaulerMicrobeMietteMignonMigrerMilieuMillionMimiqueMinceMine/ralMinimalMinorerMinuteMiracleMiroiterMissileMixteMobileModerneMoelleuxMondialMoniteurMonnaieMonotoneMonstreMontagneMonumentMoqueurMorceauMorsureMortierMoteurMotifMoucheMoufleMoulinMoussonMoutonMouvantMultipleMunitionMurailleMure-neMurmureMuscleMuse/umMusicienMutationMuterMutuelMyriadeMyrtilleMyste-reMythiqueNageurNappeNarquoisNarrerNatationNationNatureNaufrageNautiqueNavireNe/buleuxNectarNe/fasteNe/gationNe/gligerNe/gocierNeigeNerveuxNettoyerNeuroneNeutronNeveuNicheNickelNitrateNiveauNobleNocifNocturneNoirceurNoisetteNomadeNombreuxNommerNormatifNotableNotifierNotoireNourrirNouveauNovateurNovembreNoviceNuageNuancerNuireNuisibleNume/roNuptialNuqueNutritifObe/irObjectifObligerObscurObserverObstacleObtenirObturerOccasionOccuperOce/anOctobreOctroyerOctuplerOculaireOdeurOdorantOffenserOfficierOffrirOgiveOiseauOisillonOlfactifOlivierOmbrageOmettreOnctueuxOndulerOne/reuxOniriqueOpaleOpaqueOpe/rerOpinionOpportunOpprimerOpterOptiqueOrageuxOrangeOrbiteOrdonnerOreilleOrganeOrgueilOrificeOrnementOrqueOrtieOscillerOsmoseOssatureOtarieOuraganOursonOutilOutragerOuvrageOvationOxydeOxyge-neOzonePaisiblePalacePalmare-sPalourdePalperPanachePandaPangolinPaniquerPanneauPanoramaPantalonPapayePapierPapoterPapyrusParadoxeParcelleParesseParfumerParlerParoleParrainParsemerPartagerParureParvenirPassionPaste-quePaternelPatiencePatronPavillonPavoiserPayerPaysagePeignePeintrePelagePe/licanPellePelousePeluchePendulePe/ne/trerPe/niblePensifPe/nuriePe/pitePe/plumPerdrixPerforerPe/riodePermuterPerplexePersilPertePeserPe/talePetitPe/trirPeuplePharaonPhobiePhoquePhotonPhrasePhysiquePianoPicturalPie-cePierrePieuvrePilotePinceauPipettePiquerPiroguePiscinePistonPivoterPixelPizzaPlacardPlafondPlaisirPlanerPlaquePlastronPlateauPleurerPlexusPliagePlombPlongerPluiePlumagePochettePoe/siePoe-tePointePoirierPoissonPoivrePolairePolicierPollenPolygonePommadePompierPonctuelPonde/rerPoneyPortiquePositionPosse/derPosturePotagerPoteauPotionPoucePoulainPoumonPourprePoussinPouvoirPrairiePratiquePre/cieuxPre/direPre/fixePre/ludePre/nomPre/sencePre/textePre/voirPrimitifPrincePrisonPriverProble-meProce/derProdigeProfondProgre-sProieProjeterProloguePromenerPropreProspe-reProte/gerProuesseProverbePrudencePruneauPsychosePublicPuceronPuiserPulpePulsarPunaisePunitifPupitrePurifierPuzzlePyramideQuasarQuerelleQuestionQuie/tudeQuitterQuotientRacineRaconterRadieuxRagondinRaideurRaisinRalentirRallongeRamasserRapideRasageRatisserRavagerRavinRayonnerRe/actifRe/agirRe/aliserRe/animerRecevoirRe/citerRe/clamerRe/colterRecruterReculerRecyclerRe/digerRedouterRefaireRe/flexeRe/formerRefrainRefugeRe/galienRe/gionRe/glageRe/gulierRe/ite/rerRejeterRejouerRelatifReleverReliefRemarqueReme-deRemiseRemonterRemplirRemuerRenardRenfortReniflerRenoncerRentrerRenvoiReplierReporterRepriseReptileRequinRe/serveRe/sineuxRe/soudreRespectResterRe/sultatRe/tablirRetenirRe/ticuleRetomberRetracerRe/unionRe/ussirRevancheRevivreRe/volteRe/vulsifRichesseRideauRieurRigideRigolerRincerRiposterRisibleRisqueRituelRivalRivie-reRocheuxRomanceRompreRonceRondinRoseauRosierRotatifRotorRotuleRougeRouilleRouleauRoutineRoyaumeRubanRubisRucheRuelleRugueuxRuinerRuisseauRuserRustiqueRythmeSablerSaboterSabreSacocheSafariSagesseSaisirSaladeSaliveSalonSaluerSamediSanctionSanglierSarcasmeSardineSaturerSaugrenuSaumonSauterSauvageSavantSavonnerScalpelScandaleSce/le/ratSce/narioSceptreSche/maScienceScinderScoreScrutinSculpterSe/anceSe/cableSe/cherSecouerSe/cre/terSe/datifSe/duireSeigneurSe/jourSe/lectifSemaineSemblerSemenceSe/minalSe/nateurSensibleSentenceSe/parerSe/quenceSereinSergentSe/rieuxSerrureSe/rumServiceSe/sameSe/virSevrageSextupleSide/ralSie-cleSie/gerSifflerSigleSignalSilenceSiliciumSimpleSince-reSinistreSiphonSiropSismiqueSituerSkierSocialSocleSodiumSoigneuxSoldatSoleilSolitudeSolubleSombreSommeilSomnolerSondeSongeurSonnetteSonoreSorcierSortirSosieSottiseSoucieuxSoudureSouffleSouleverSoupapeSourceSoutirerSouvenirSpacieuxSpatialSpe/cialSphe-reSpiralStableStationSternumStimulusStipulerStrictStudieuxStupeurStylisteSublimeSubstratSubtilSubvenirSucce-sSucreSuffixeSugge/rerSuiveurSulfateSuperbeSupplierSurfaceSuricateSurmenerSurpriseSursautSurvieSuspectSyllabeSymboleSyme/trieSynapseSyntaxeSyste-meTabacTablierTactileTaillerTalentTalismanTalonnerTambourTamiserTangibleTapisTaquinerTarderTarifTartineTasseTatamiTatouageTaupeTaureauTaxerTe/moinTemporelTenailleTendreTeneurTenirTensionTerminerTerneTerribleTe/tineTexteThe-meThe/orieThe/rapieThoraxTibiaTie-deTimideTirelireTiroirTissuTitaneTitreTituberTobogganTole/rantTomateToniqueTonneauToponymeTorcheTordreTornadeTorpilleTorrentTorseTortueTotemToucherTournageTousserToxineTractionTraficTragiqueTrahirTrainTrancherTravailTre-fleTremperTre/sorTreuilTriageTribunalTricoterTrilogieTriompheTriplerTriturerTrivialTromboneTroncTropicalTroupeauTuileTulipeTumulteTunnelTurbineTuteurTutoyerTuyauTympanTyphonTypiqueTyranUbuesqueUltimeUltrasonUnanimeUnifierUnionUniqueUnitaireUniversUraniumUrbainUrticantUsageUsineUsuelUsureUtileUtopieVacarmeVaccinVagabondVagueVaillantVaincreVaisseauValableValiseVallonValveVampireVanilleVapeurVarierVaseuxVassalVasteVecteurVedetteVe/ge/talVe/hiculeVeinardVe/loceVendrediVe/ne/rerVengerVenimeuxVentouseVerdureVe/rinVernirVerrouVerserVertuVestonVe/te/ranVe/tusteVexantVexerViaducViandeVictoireVidangeVide/oVignetteVigueurVilainVillageVinaigreViolonVipe-reVirementVirtuoseVirusVisageViseurVisionVisqueuxVisuelVitalVitesseViticoleVitrineVivaceVivipareVocationVoguerVoileVoisinVoitureVolailleVolcanVoltigerVolumeVoraceVortexVoterVouloirVoyageVoyelleWagonXe/nonYachtZe-breZe/nithZesteZoologie",$4=null,g$={};function y$(t){return R9.logger.checkNormalize(),(0,O9.toUtf8String)(Array.prototype.filter.call((0,O9.toUtf8Bytes)(t.normalize("NFD").toLowerCase()),function(e){return e>=65&&e<=90||e>=97&&e<=123}))}function SIe(t){var e=[];return Array.prototype.forEach.call((0,O9.toUtf8Bytes)(t),function(r){r===47?(e.push(204),e.push(129)):r===45?(e.push(204),e.push(128)):e.push(r)}),(0,O9.toUtf8String)(e)}function m$(t){if($4==null&&($4=xIe.replace(/([A-Z])/g," $1").toLowerCase().substring(1).split(" ").map(function(e){return SIe(e)}),$4.forEach(function(e,r){g$[y$(e)]=r}),R9.Wordlist.check(t)!=="0x51deb7ae009149dc61a6bd18a918eb7ac78d2775726c68e598b92d002519b045"))throw $4=null,new Error("BIP39 Wordlist for fr (French) FAILED")}var EIe=function(t){wIe(e,t);function e(){return t.call(this,"fr")||this}return e.prototype.getWord=function(r){return m$(this),$4[r]},e.prototype.getWordIndex=function(r){return m$(this),g$[y$(r)]},e}(R9.Wordlist),v$=new EIe;Ng.langFr=v$;R9.Wordlist.register(v$)});var S$=x(kg=>{"use strict";var TIe=kg&&kg.__extends||function(){var t=function(e,r){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var a in n)Object.prototype.hasOwnProperty.call(n,a)&&(i[a]=n[a])},t(e,r)};return function(e,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");t(e,r);function i(){this.constructor=e}e.prototype=r===null?Object.create(r):(i.prototype=r.prototype,new i)}}();Object.defineProperty(kg,"__esModule",{value:!0});kg.langJa=void 0;var AIe=or(),vu=Cn(),M9=Rd(),PIe=["AQRASRAGBAGUAIRAHBAghAURAdBAdcAnoAMEAFBAFCBKFBQRBSFBCXBCDBCHBGFBEQBpBBpQBIkBHNBeOBgFBVCBhBBhNBmOBmRBiHBiFBUFBZDBvFBsXBkFBlcBjYBwDBMBBTBBTRBWBBWXXaQXaRXQWXSRXCFXYBXpHXOQXHRXhRXuRXmXXbRXlXXwDXTRXrCXWQXWGaBWaKcaYgasFadQalmaMBacAKaRKKBKKXKKjKQRKDRKCYKCRKIDKeVKHcKlXKjHKrYNAHNBWNaRNKcNIBNIONmXNsXNdXNnBNMBNRBNrXNWDNWMNFOQABQAHQBrQXBQXFQaRQKXQKDQKOQKFQNBQNDQQgQCXQCDQGBQGDQGdQYXQpBQpQQpHQLXQHuQgBQhBQhCQuFQmXQiDQUFQZDQsFQdRQkHQbRQlOQlmQPDQjDQwXQMBQMDQcFQTBQTHQrDDXQDNFDGBDGQDGRDpFDhFDmXDZXDbRDMYDRdDTRDrXSAhSBCSBrSGQSEQSHBSVRShYShkSyQSuFSiBSdcSoESocSlmSMBSFBSFKSFNSFdSFcCByCaRCKcCSBCSRCCrCGbCEHCYXCpBCpQCIBCIHCeNCgBCgFCVECVcCmkCmwCZXCZFCdRClOClmClFCjDCjdCnXCwBCwXCcRCFQCFjGXhGNhGDEGDMGCDGCHGIFGgBGVXGVEGVRGmXGsXGdYGoSGbRGnXGwXGwDGWRGFNGFLGFOGFdGFkEABEBDEBFEXOEaBEKSENBENDEYXEIgEIkEgBEgQEgHEhFEudEuFEiBEiHEiFEZDEvBEsXEsFEdXEdREkFEbBEbRElFEPCEfkEFNYAEYAhYBNYQdYDXYSRYCEYYoYgQYgRYuRYmCYZTYdBYbEYlXYjQYRbYWRpKXpQopQnpSFpCXpIBpISphNpdBpdRpbRpcZpFBpFNpFDpFopFrLADLBuLXQLXcLaFLCXLEhLpBLpFLHXLeVLhILdHLdRLoDLbRLrXIABIBQIBCIBsIBoIBMIBRIXaIaRIKYIKRINBINuICDIGBIIDIIkIgRIxFIyQIiHIdRIbYIbRIlHIwRIMYIcRIRVITRIFBIFNIFQOABOAFOBQOaFONBONMOQFOSFOCDOGBOEQOpBOLXOIBOIFOgQOgFOyQOycOmXOsXOdIOkHOMEOMkOWWHBNHXNHXWHNXHDuHDRHSuHSRHHoHhkHmRHdRHkQHlcHlRHwBHWcgAEgAggAkgBNgBQgBEgXOgYcgLXgHjgyQgiBgsFgdagMYgWSgFQgFEVBTVXEVKBVKNVKDVKYVKRVNBVNYVDBVDxVSBVSRVCjVGNVLXVIFVhBVhcVsXVdRVbRVlRhBYhKYhDYhGShxWhmNhdahdkhbRhjohMXhTRxAXxXSxKBxNBxEQxeNxeQxhXxsFxdbxlHxjcxFBxFNxFQxFOxFoyNYyYoybcyMYuBQuBRuBruDMuCouHBudQukkuoBulVuMXuFEmCYmCRmpRmeDmiMmjdmTFmFQiADiBOiaRiKRiNBiNRiSFiGkiGFiERipRiLFiIFihYibHijBijEiMXiWBiFBiFCUBQUXFUaRUNDUNcUNRUNFUDBUSHUCDUGBUGFUEqULNULoUIRUeEUeYUgBUhFUuRUiFUsXUdFUkHUbBUjSUjYUwXUMDUcHURdUTBUrBUrXUrQZAFZXZZaRZKFZNBZQFZCXZGBZYdZpBZLDZIFZHXZHNZeQZVRZVFZmXZiBZvFZdFZkFZbHZbFZwXZcCZcRZRBvBQvBGvBLvBWvCovMYsAFsBDsaRsKFsNFsDrsSHsSFsCXsCRsEBsEHsEfspBsLBsLDsIgsIRseGsbRsFBsFQsFSdNBdSRdCVdGHdYDdHcdVbdySduDdsXdlRdwXdWYdWcdWRkBMkXOkaRkNIkNFkSFkCFkYBkpRkeNkgBkhVkmXksFklVkMBkWDkFNoBNoaQoaFoNBoNXoNaoNEoSRoEroYXoYCoYbopRopFomXojkowXorFbBEbEIbdBbjYlaRlDElMXlFDjKjjSRjGBjYBjYkjpRjLXjIBjOFjeVjbRjwBnXQnSHnpFnLXnINnMBnTRwXBwXNwXYwNFwQFwSBwGFwLXwLDweNwgBwuHwjDwnXMBXMpFMIBMeNMTHcaQcNBcDHcSFcCXcpBcLXcLDcgFcuFcnXcwXccDcTQcrFTQErXNrCHrpFrgFrbFrTHrFcWNYWNbWEHWMXWTR","ABGHABIJAEAVAYJQALZJAIaRAHNXAHdcAHbRAZJMAZJRAZTRAdVJAklmAbcNAjdRAMnRAMWYAWpRAWgRAFgBAFhBAFdcBNJBBNJDBQKBBQhcBQlmBDEJBYJkBYJTBpNBBpJFBIJBBIJDBIcABOKXBOEJBOVJBOiJBOZJBepBBeLXBeIFBegBBgGJBVJXBuocBiJRBUJQBlXVBlITBwNFBMYVBcqXBTlmBWNFBWiJBWnRBFGHBFwXXKGJXNJBXNZJXDTTXSHSXSVRXSlHXCJDXGQJXEhXXYQJXYbRXOfXXeNcXVJFXhQJXhEJXdTRXjdXXMhBXcQTXRGBXTEBXTnQXFCXXFOFXFgFaBaFaBNJaBCJaBpBaBwXaNJKaNJDaQIBaDpRaEPDaHMFamDJalEJaMZJaFaFaFNBaFQJaFLDaFVHKBCYKBEBKBHDKXaFKXGdKXEJKXpHKXIBKXZDKXwXKKwLKNacKNYJKNJoKNWcKDGdKDTRKChXKGaRKGhBKGbRKEBTKEaRKEPTKLMDKLWRKOHDKVJcKdBcKlIBKlOPKFSBKFEPKFpFNBNJNJBQNBGHNBEPNBHXNBgFNBVXNBZDNBsXNBwXNNaRNNJDNNJENNJkNDCJNDVDNGJRNJiDNZJNNsCJNJFNNFSBNFCXNFEPNFLXNFIFQJBFQCaRQJEQQLJDQLJFQIaRQOqXQHaFQHHQQVJXQVJDQhNJQmEIQZJFQsJXQJrFQWbRDJABDBYJDXNFDXCXDXLXDXZDDXsJDQqXDSJFDJCXDEPkDEqXDYmQDpSJDOCkDOGQDHEIDVJDDuDuDWEBDJFgSBNDSBSFSBGHSBIBSBTQSKVYSJQNSJQiSJCXSEqXSJYVSIiJSOMYSHAHSHaQSeCFSepQSegBSHdHSHrFShSJSJuHSJUFSkNRSrSrSWEBSFaHSJFQSFCXSFGDSFYXSFODSFgBSFVXSFhBSFxFSFkFSFbBSFMFCADdCJXBCXaFCXKFCXNFCXCXCXGBCXEJCXYBCXLDCXIBCXOPCXHXCXgBCXhBCXiBCXlDCXcHCJNBCJNFCDCJCDGBCDVXCDhBCDiDCDJdCCmNCpJFCIaRCOqXCHCHCHZJCViJCuCuCmddCJiFCdNBCdHhClEJCnUJCreSCWlgCWTRCFBFCFNBCFYBCFVFCFhFCFdSCFTBCFWDGBNBGBQFGJBCGBEqGBpBGBgQGNBEGNJYGNkOGNJRGDUFGJpQGHaBGJeNGJeEGVBlGVKjGiJDGvJHGsVJGkEBGMIJGWjNGFBFGFCXGFGBGFYXGFpBGFMFEASJEAWpEJNFECJVEIXSEIQJEOqXEOcFEeNcEHEJEHlFEJgFEhlmEmDJEmZJEiMBEUqXEoSREPBFEPXFEPKFEPSFEPEFEPpFEPLXEPIBEJPdEPcFEPTBEJnXEqlHEMpREFCXEFODEFcFYASJYJAFYBaBYBVXYXpFYDhBYCJBYJGFYYbRYeNcYJeVYiIJYZJcYvJgYvJRYJsXYsJFYMYMYreVpBNHpBEJpBwXpQxFpYEJpeNDpJeDpeSFpeCHpHUJpHbBpHcHpmUJpiiJpUJrpsJuplITpFaBpFQqpFGBpFEfpFYBpFpBpFLJpFIDpFgBpFVXpFyQpFuFpFlFpFjDpFnXpFwXpJFMpFTBLXCJLXEFLXhFLXUJLXbFLalmLNJBLSJQLCLCLGJBLLDJLHaFLeNFLeSHLeCXLepFLhaRLZsJLsJDLsJrLocaLlLlLMdbLFNBLFSBLFEHLFkFIBBFIBXFIBaQIBKXIBSFIBpHIBLXIBgBIBhBIBuHIBmXIBiFIBZXIBvFIBbFIBjQIBwXIBWFIKTRIQUJIDGFICjQIYSRIINXIJeCIVaRImEkIZJFIvJRIsJXIdCJIJoRIbBQIjYBIcqXITFVIreVIFKFIFSFIFCJIFGFIFLDIFIBIJFOIFgBIFVXIJFhIFxFIFmXIFdHIFbBIJFrIJFWOBGBOQfXOOKjOUqXOfXBOqXEOcqXORVJOFIBOFlDHBIOHXiFHNTRHCJXHIaRHHJDHHEJHVbRHZJYHbIBHRsJHRkDHWlmgBKFgBSBgBCDgBGHgBpBgBIBgBVJgBuBgBvFgKDTgQVXgDUJgGSJgOqXgmUMgZIJgTUJgWIEgFBFgFNBgFDJgFSFgFGBgFYXgJFOgFgQgFVXgFhBgFbHgJFWVJABVQKcVDgFVOfXVeDFVhaRVmGdViJYVMaRVFNHhBNDhBCXhBEqhBpFhBLXhNJBhSJRheVXhhKEhxlmhZIJhdBQhkIJhbMNhMUJhMZJxNJgxQUJxDEkxDdFxSJRxplmxeSBxeCXxeGFxeYXxepQxegBxWVcxFEQxFLXxFIBxFgBxFxDxFZtxFdcxFbBxFwXyDJXyDlcuASJuDJpuDIBuCpJuGSJuIJFueEFuZIJusJXudWEuoIBuWGJuFBcuFKEuFNFuFQFuFDJuFGJuFVJuFUtuFdHuFTBmBYJmNJYmQhkmLJDmLJomIdXmiJYmvJRmsJRmklmmMBymMuCmclmmcnQiJABiJBNiJBDiBSFiBCJiBEFiBYBiBpFiBLXiBTHiJNciDEfiCZJiECJiJEqiOkHiHKFieNDiHJQieQcieDHieSFieCXieGFieEFieIHiegFihUJixNoioNXiFaBiFKFiFNDiFEPiFYXitFOitFHiFgBiFVEiFmXiFitiFbBiFMFiFrFUCXQUIoQUIJcUHQJUeCEUHwXUUJDUUqXUdWcUcqXUrnQUFNDUFSHUFCFUFEfUFLXUtFOZBXOZXSBZXpFZXVXZEQJZEJkZpDJZOqXZeNHZeCDZUqXZFBQZFEHZFLXvBAFvBKFvBCXvBEPvBpHvBIDvBgFvBuHvQNJvFNFvFGBvFIBvJFcsXCDsXLXsXsXsXlFsXcHsQqXsJQFsEqXseIFsFEHsFjDdBxOdNpRdNJRdEJbdpJRdhZJdnSJdrjNdFNJdFQHdFhNkNJDkYaRkHNRkHSRkVbRkuMRkjSJkcqDoSJFoEiJoYZJoOfXohEBoMGQocqXbBAFbBXFbBaFbBNDbBGBbBLXbBTBbBWDbGJYbIJHbFQqbFpQlDgQlOrFlVJRjGEBjZJRnXvJnXbBnEfHnOPDngJRnxfXnUJWwXEJwNpJwDpBwEfXwrEBMDCJMDGHMDIJMLJDcQGDcQpHcqXccqNFcqCXcFCJRBSBRBGBRBEJRBpQTBNFTBQJTBpBTBVXTFABTFSBTFCFTFGBTFMDrXCJrXLDrDNJrEfHrFQJrFitWNjdWNTR","AKLJMANOPFASNJIAEJWXAYJNRAIIbRAIcdaAeEfDAgidRAdjNYAMYEJAMIbRAFNJBAFpJFBBIJYBDZJFBSiJhBGdEBBEJfXBEJqXBEJWRBpaUJBLXrXBIYJMBOcfXBeEfFBestXBjNJRBcDJOBFEqXXNvJRXDMBhXCJNYXOAWpXONJWXHDEBXeIaRXhYJDXZJSJXMDJOXcASJXFVJXaBQqXaBZJFasXdQaFSJQaFEfXaFpJHaFOqXKBNSRKXvJBKQJhXKEJQJKEJGFKINJBKIJjNKgJNSKVElmKVhEBKiJGFKlBgJKjnUJKwsJYKMFIJKFNJDKFIJFKFOfXNJBSFNJBCXNBpJFNJBvQNJBMBNJLJXNJOqXNJeCXNJeGFNdsJCNbTKFNwXUJQNFEPQDiJcQDMSJQSFpBQGMQJQJeOcQyCJEQUJEBQJFBrQFEJqDXDJFDJXpBDJXIMDGiJhDIJGRDJeYcDHrDJDVXgFDkAWpDkIgRDjDEqDMvJRDJFNFDJFIBSKclmSJQOFSJQVHSJQjDSJGJBSJGJFSECJoSHEJqSJHTBSJVJDSViJYSZJNBSJsJDSFSJFSFEfXSJFLXCBUJVCJXSBCJXpBCXVJXCJXsXCJXdFCJNJHCLIJgCHiJFCVNJMChCJhCUHEJCsJTRCJdYcCoQJCCFEfXCFIJgCFUJxCFstFGJBaQGJBIDGQJqXGYJNRGJHKFGeQqDGHEJFGJeLXGHIiJGHdBlGUJEBGkIJTGFQPDGJFEqEAGegEJIJBEJVJXEhQJTEiJNcEJZJFEJoEqEjDEqEPDsXEPGJBEPOqXEPeQFEfDiDEJfEFEfepQEfMiJEqXNBEqDIDEqeSFEqVJXEMvJRYXNJDYXEJHYKVJcYYJEBYJeEcYJUqXYFpJFYFstXpAZJMpBSJFpNBNFpeQPDpHLJDpHIJFpHgJFpeitFpHZJFpJFADpFSJFpJFCJpFOqXpFitBpJFZJLXIJFLIJgRLVNJWLVHJMLwNpJLFGJBLFLJDLFOqXLJFUJIBDJXIBGJBIJBYQIJBIBIBOqXIBcqDIEGJFILNJTIIJEBIOiJhIJeNBIJeIBIhiJIIWoTRIJFAHIJFpBIJFuHIFUtFIJFTHOSBYJOEcqXOHEJqOvBpFOkVJrObBVJOncqDOcNJkHhNJRHuHJuHdMhBgBUqXgBsJXgONJBgHNJDgHHJQgJeitgHsJXgJyNagyDJBgZJDrgsVJQgkEJNgkjSJgJFAHgFCJDgFZtMVJXNFVXQfXVJXDJVXoQJVQVJQVDEfXVDvJHVEqNFVeQfXVHpJFVHxfXVVJSRVVmaRVlIJOhCXVJhHjYkhxCJVhWVUJhWiJcxBNJIxeEqDxfXBFxcFEPxFSJFxFYJXyBDQJydaUJyFOPDuYCJYuLvJRuHLJXuZJLDuFOPDuFZJHuFcqXmKHJdmCQJcmOsVJiJAGFitLCFieOfXiestXiZJMEikNJQirXzFiFQqXiFIJFiFZJFiFvtFUHpJFUteIcUteOcUVCJkUhdHcUbEJEUJqXQUMNJhURjYkUFitFZDGJHZJIxDZJVJXZJFDJZJFpQvBNJBvBSJFvJxBrseQqDsVFVJdFLJDkEJNBkmNJYkFLJDoQJOPoGsJRoEAHBoEJfFbBQqDbBZJHbFVJXlFIJBjYIrXjeitcjjCEBjWMNBwXQfXwXOaFwDsJXwCJTRwrCZJMDNJQcDDJFcqDOPRYiJFTBsJXTQIJBTFEfXTFLJDrXEJFrEJXMrFZJFWEJdEWYTlm","ABCDEFACNJTRAMBDJdAcNJVXBLNJEBXSIdWRXErNJkXYDJMBXZJCJaXMNJaYKKVJKcKDEJqXKDcNJhKVJrNYKbgJVXKFVJSBNBYBwDNJeQfXNJeEqXNhGJWENJFiJRQlIJbEQJfXxDQqXcfXQFNDEJQFwXUJDYcnUJDJIBgQDIUJTRDJFEqDSJQSJFSJQIJFSOPeZtSJFZJHCJXQfXCTDEqFGJBSJFGJBOfXGJBcqXGJHNJDGJRLiJEJfXEqEJFEJPEFpBEJYJBZJFYBwXUJYiJMEBYJZJyTYTONJXpQMFXFpeGIDdpJFstXpJFcPDLBVSJRLHQJqXLJFZJFIJBNJDIJBUqXIBkFDJIJEJPTIYJGWRIJeQPDIJeEfHIJFsJXOqGDSFHXEJqXgJCsJCgGQJqXgdQYJEgFMFNBgJFcqDVJwXUJVJFZJchIgJCCxOEJqXxOwXUJyDJBVRuscisciJBiJBieUtqXiJFDJkiFsJXQUGEZJcUJFsJXZtXIrXZDZJDrZJFNJDZJFstXvJFQqXvJFCJEsJXQJqkhkNGBbDJdTRbYJMEBlDwXUJMEFiJFcfXNJDRcNJWMTBLJXC","BraFUtHBFSJFdbNBLJXVJQoYJNEBSJBEJfHSJHwXUJCJdAZJMGjaFVJXEJPNJBlEJfFiJFpFbFEJqIJBVJCrIBdHiJhOPFChvJVJZJNJWxGFNIFLueIBQJqUHEJfUFstOZJDrlXEASJRlXVJXSFwVJNJWD","QJEJNNJDQJEJIBSFQJEJxegBQJEJfHEPSJBmXEJFSJCDEJqXLXNJFQqXIcQsFNJFIFEJqXUJgFsJXIJBUJEJfHNFvJxEqXNJnXUJFQqD","IJBEJqXZJ"],OIe="~~AzB~X~a~KN~Q~D~S~C~G~E~Y~p~L~I~O~eH~g~V~hxyumi~~U~~Z~~v~~s~~dkoblPjfnqwMcRTr~W~~~F~~~~~Jt",Co=null;function _$(t){return(0,AIe.hexlify)((0,vu.toUtf8Bytes)(t))}var RIe="0xe3818de38284e3818f",MIe="0xe3818de38283e3818f";function w$(t){if(Co!==null)return;Co=[];var e={};e[(0,vu.toUtf8String)([227,130,154])]=!1,e[(0,vu.toUtf8String)([227,130,153])]=!1,e[(0,vu.toUtf8String)([227,130,133])]=(0,vu.toUtf8String)([227,130,134]),e[(0,vu.toUtf8String)([227,129,163])]=(0,vu.toUtf8String)([227,129,164]),e[(0,vu.toUtf8String)([227,130,131])]=(0,vu.toUtf8String)([227,130,132]),e[(0,vu.toUtf8String)([227,130,135])]=(0,vu.toUtf8String)([227,130,136]);function r(d){for(var p="",b=0;bp?1:0}for(var n=3;n<=9;n++)for(var a=PIe[n-3],s=0;s{"use strict";var IIe=Bg&&Bg.__extends||function(){var t=function(e,r){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var a in n)Object.prototype.hasOwnProperty.call(n,a)&&(i[a]=n[a])},t(e,r)};return function(e,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");t(e,r);function i(){this.constructor=e}e.prototype=r===null?Object.create(r):(i.prototype=r.prototype,new i)}}();Object.defineProperty(Bg,"__esModule",{value:!0});Bg.langKo=void 0;var NIe=Cn(),tM=Rd(),kIe=["OYAa","ATAZoATBl3ATCTrATCl8ATDloATGg3ATHT8ATJT8ATJl3ATLlvATLn4ATMT8ATMX8ATMboATMgoAToLbAToMTATrHgATvHnAT3AnAT3JbAT3MTAT8DbAT8JTAT8LmAT8MYAT8MbAT#LnAUHT8AUHZvAUJXrAUJX8AULnrAXJnvAXLUoAXLgvAXMn6AXRg3AXrMbAX3JTAX3QbAYLn3AZLgvAZrSUAZvAcAZ8AaAZ8AbAZ8AnAZ8HnAZ8LgAZ8MYAZ8MgAZ8OnAaAboAaDTrAaFTrAaJTrAaJboAaLVoAaMXvAaOl8AaSeoAbAUoAbAg8AbAl4AbGnrAbMT8AbMXrAbMn4AbQb8AbSV8AbvRlAb8AUAb8AnAb8HgAb8JTAb8NTAb8RbAcGboAcLnvAcMT8AcMX8AcSToAcrAaAcrFnAc8AbAc8MgAfGgrAfHboAfJnvAfLV8AfLkoAfMT8AfMnoAfQb8AfScrAfSgrAgAZ8AgFl3AgGX8AgHZvAgHgrAgJXoAgJX8AgJboAgLZoAgLn4AgOX8AgoATAgoAnAgoCUAgoJgAgoLXAgoMYAgoSeAgrDUAgrJTAhrFnAhrLjAhrQgAjAgoAjJnrAkMX8AkOnoAlCTvAlCV8AlClvAlFg4AlFl6AlFn3AloSnAlrAXAlrAfAlrFUAlrFbAlrGgAlrOXAlvKnAlvMTAl3AbAl3MnAnATrAnAcrAnCZ3AnCl8AnDg8AnFboAnFl3AnHX4AnHbrAnHgrAnIl3AnJgvAnLXoAnLX4AnLbrAnLgrAnLhrAnMXoAnMgrAnOn3AnSbrAnSeoAnvLnAn3OnCTGgvCTSlvCTvAUCTvKnCTvNTCT3CZCT3GUCT3MTCT8HnCUCZrCULf8CULnvCU3HnCU3JUCY6NUCbDb8CbFZoCbLnrCboOTCboScCbrFnCbvLnCb8AgCb8HgCb$LnCkLfoClBn3CloDUDTHT8DTLl3DTSU8DTrAaDTrLXDTrLjDTrOYDTrOgDTvFXDTvFnDT3HUDT3LfDUCT9DUDT4DUFVoDUFV8DUFkoDUGgrDUJnrDULl8DUMT8DUMXrDUMX4DUMg8DUOUoDUOgvDUOg8DUSToDUSZ8DbDXoDbDgoDbGT8DbJn3DbLg3DbLn4DbMXrDbMg8DbOToDboJXGTClvGTDT8GTFZrGTLVoGTLlvGTLl3GTMg8GTOTvGTSlrGToCUGTrDgGTrJYGTrScGTtLnGTvAnGTvQgGUCZrGUDTvGUFZoGUHXrGULnvGUMT8GUoMgGXoLnGXrMXGXrMnGXvFnGYLnvGZOnvGZvOnGZ8LaGZ8LmGbAl3GbDYvGbDlrGbHX3GbJl4GbLV8GbLn3GbMn4GboJTGboRfGbvFUGb3GUGb4JnGgDX3GgFl$GgJlrGgLX6GgLZoGgLf8GgOXoGgrAgGgrJXGgrMYGgrScGgvATGgvOYGnAgoGnJgvGnLZoGnLg3GnLnrGnQn8GnSbrGnrMgHTClvHTDToHTFT3HTQT8HToJTHToJgHTrDUHTrMnHTvFYHTvRfHT8MnHT8SUHUAZ8HUBb4HUDTvHUoMYHXFl6HXJX6HXQlrHXrAUHXrMnHXrSbHXvFYHXvKXHX3LjHX3MeHYvQlHZrScHZvDbHbAcrHbFT3HbFl3HbJT8HbLTrHbMT8HbMXrHbMbrHbQb8HbSX3HboDbHboJTHbrFUHbrHgHbrJTHb8JTHb8MnHb8QgHgAlrHgDT3HgGgrHgHgrHgJTrHgJT8HgLX@HgLnrHgMT8HgMX8HgMboHgOnrHgQToHgRg3HgoHgHgrCbHgrFnHgrLVHgvAcHgvAfHnAloHnCTrHnCnvHnGTrHnGZ8HnGnvHnJT8HnLf8HnLkvHnMg8HnRTrITvFUITvFnJTAXrJTCV8JTFT3JTFT8JTFn4JTGgvJTHT8JTJT8JTJXvJTJl3JTJnvJTLX4JTLf8JTLhvJTMT8JTMXrJTMnrJTObrJTQT8JTSlvJT8DUJT8FkJT8MTJT8OXJT8OgJT8QUJT8RfJUHZoJXFT4JXFlrJXGZ8JXGnrJXLV8JXLgvJXMXoJXMX3JXNboJXPlvJXoJTJXoLkJXrAXJXrHUJXrJgJXvJTJXvOnJX4KnJYAl3JYJT8JYLhvJYQToJYrQXJY6NUJbAl3JbCZrJbDloJbGT8JbGgrJbJXvJbJboJbLf8JbLhrJbLl3JbMnvJbRg8JbSZ8JboDbJbrCZJbrSUJb3KnJb8LnJfRn8JgAXrJgCZrJgDTrJgGZrJgGZ8JgHToJgJT8JgJXoJgJgvJgLX4JgLZ3JgLZ8JgLn4JgMgrJgMn4JgOgvJgPX6JgRnvJgSToJgoCZJgoJbJgoMYJgrJXJgrJgJgrLjJg6MTJlCn3JlGgvJlJl8Jl4AnJl8FnJl8HgJnAToJnATrJnAbvJnDUoJnGnrJnJXrJnJXvJnLhvJnLnrJnLnvJnMToJnMT8JnMXvJnMX3JnMg8JnMlrJnMn4JnOX8JnST4JnSX3JnoAgJnoAnJnoJTJnoObJnrAbJnrAkJnrHnJnrJTJnrJYJnrOYJnrScJnvCUJnvFaJnvJgJnvJnJnvOYJnvQUJnvRUJn3FnJn3JTKnFl3KnLT6LTDlvLTMnoLTOn3LTRl3LTSb4LTSlrLToAnLToJgLTrAULTrAcLTrCULTrHgLTrMgLT3JnLULnrLUMX8LUoJgLVATrLVDTrLVLb8LVoJgLV8MgLV8RTLXDg3LXFlrLXrCnLXrLXLX3GTLX4GgLX4OYLZAXrLZAcrLZAgrLZAhrLZDXyLZDlrLZFbrLZFl3LZJX6LZJX8LZLc8LZLnrLZSU8LZoJTLZoJnLZrAgLZrAnLZrJYLZrLULZrMgLZrSkLZvAnLZvGULZvJeLZvOTLZ3FZLZ4JXLZ8STLZ8ScLaAT3LaAl3LaHT8LaJTrLaJT8LaJXrLaJgvLaJl4LaLVoLaMXrLaMXvLaMX8LbClvLbFToLbHlrLbJn4LbLZ3LbLhvLbMXrLbMnoLbvSULcLnrLc8HnLc8MTLdrMnLeAgoLeOgvLeOn3LfAl3LfLnvLfMl3LfOX8Lf8AnLf8JXLf8LXLgJTrLgJXrLgJl8LgMX8LgRZrLhCToLhrAbLhrFULhrJXLhvJYLjHTrLjHX4LjJX8LjLhrLjSX3LjSZ4LkFX4LkGZ8LkGgvLkJTrLkMXoLkSToLkSU8LkSZ8LkoOYLl3FfLl3MgLmAZrLmCbrLmGgrLmHboLmJnoLmJn3LmLfoLmLhrLmSToLnAX6LnAb6LnCZ3LnCb3LnDTvLnDb8LnFl3LnGnrLnHZvLnHgvLnITvLnJT8LnJX8LnJlvLnLf8LnLg6LnLhvLnLnoLnMXrLnMg8LnQlvLnSbrLnrAgLnrAnLnrDbLnrFkLnrJdLnrMULnrOYLnrSTLnvAnLnvDULnvHgLnvOYLnvOnLn3GgLn4DULn4JTLn4JnMTAZoMTAloMTDb8MTFT8MTJnoMTJnrMTLZrMTLhrMTLkvMTMX8MTRTrMToATMTrDnMTrOnMT3JnMT4MnMT8FUMT8FaMT8FlMT8GTMT8GbMT8GnMT8HnMT8JTMT8JbMT8OTMUCl8MUJTrMUJU8MUMX8MURTrMUSToMXAX6MXAb6MXCZoMXFXrMXHXrMXLgvMXOgoMXrAUMXrAnMXrHgMXrJYMXrJnMXrMTMXrMgMXrOYMXrSZMXrSgMXvDUMXvOTMX3JgMX3OTMX4JnMX8DbMX8FnMX8HbMX8HgMX8HnMX8LbMX8MnMX8OnMYAb8MYGboMYHTvMYHX4MYLTrMYLnvMYMToMYOgvMYRg3MYSTrMbAToMbAXrMbAl3MbAn8MbGZ8MbJT8MbJXrMbMXvMbMX8MbMnoMbrMUMb8AfMb8FbMb8FkMcJXoMeLnrMgFl3MgGTvMgGXoMgGgrMgGnrMgHT8MgHZrMgJnoMgLnrMgLnvMgMT8MgQUoMgrHnMgvAnMg8HgMg8JYMg8LfMloJnMl8ATMl8AXMl8JYMnAToMnAT4MnAZ8MnAl3MnAl4MnCl8MnHT8MnHg8MnJnoMnLZoMnLhrMnMXoMnMX3MnMnrMnOgvMnrFbMnrFfMnrFnMnrNTMnvJXNTMl8OTCT3OTFV8OTFn3OTHZvOTJXrOTOl3OT3ATOT3JUOT3LZOT3LeOT3MbOT8ATOT8AbOT8AgOT8MbOUCXvOUMX3OXHXvOXLl3OXrMUOXvDbOX6NUOX8JbOYFZoOYLbrOYLkoOYMg8OYSX3ObHTrObHT4ObJgrObLhrObMX3ObOX8Ob8FnOeAlrOeJT8OeJXrOeJnrOeLToOeMb8OgJXoOgLXoOgMnrOgOXrOgOloOgoAgOgoJbOgoMYOgoSTOg8AbOjLX4OjMnoOjSV8OnLVoOnrAgOn3DUPXQlrPXvFXPbvFTPdAT3PlFn3PnvFbQTLn4QToAgQToMTQULV8QURg8QUoJnQXCXvQbFbrQb8AaQb8AcQb8FbQb8MYQb8ScQeAlrQeLhrQjAn3QlFXoQloJgQloSnRTLnvRTrGURTrJTRUJZrRUoJlRUrQnRZrLmRZrMnRZrSnRZ8ATRZ8JbRZ8ScRbMT8RbST3RfGZrRfMX8RfMgrRfSZrRnAbrRnGT8RnvJgRnvLfRnvMTRn8AaSTClvSTJgrSTOXrSTRg3STRnvSToAcSToAfSToAnSToHnSToLjSToMTSTrAaSTrEUST3BYST8AgST8LmSUAZvSUAgrSUDT4SUDT8SUGgvSUJXoSUJXvSULTrSU8JTSU8LjSV8AnSV8JgSXFToSXLf8SYvAnSZrDUSZrMUSZrMnSZ8HgSZ8JTSZ8JgSZ8MYSZ8QUSaQUoSbCT3SbHToSbQYvSbSl4SboJnSbvFbSb8HbSb8JgSb8OTScGZrScHgrScJTvScMT8ScSToScoHbScrMTScvAnSeAZrSeAcrSeHboSeJUoSeLhrSeMT8SeMXrSe6JgSgHTrSkJnoSkLnvSk8CUSlFl3SlrSnSl8GnSmAboSmGT8SmJU8","ATLnDlATrAZoATrJX4ATrMT8ATrMX4ATrRTrATvDl8ATvJUoATvMl8AT3AToAT3MX8AT8CT3AT8DT8AT8HZrAT8HgoAUAgFnAUCTFnAXoMX8AXrAT8AXrGgvAXrJXvAXrOgoAXvLl3AZvAgoAZvFbrAZvJXoAZvJl8AZvJn3AZvMX8AZvSbrAZ8FZoAZ8LZ8AZ8MU8AZ8OTvAZ8SV8AZ8SX3AbAgFZAboJnoAbvGboAb8ATrAb8AZoAb8AgrAb8Al4Ab8Db8Ab8JnoAb8LX4Ab8LZrAb8LhrAb8MT8Ab8OUoAb8Qb8Ab8ST8AcrAUoAcrAc8AcrCZ3AcrFT3AcrFZrAcrJl4AcrJn3AcrMX3AcrOTvAc8AZ8Ac8MT8AfAcJXAgoFn4AgoGgvAgoGnrAgoLc8AgoMXoAgrLnrAkrSZ8AlFXCTAloHboAlrHbrAlrLhrAlrLkoAl3CZrAl3LUoAl3LZrAnrAl4AnrMT8An3HT4BT3IToBX4MnvBb!Ln$CTGXMnCToLZ4CTrHT8CT3JTrCT3RZrCT#GTvCU6GgvCU8Db8CU8GZrCU8HT8CboLl3CbrGgrCbrMU8Cb8DT3Cb8GnrCb8LX4Cb8MT8Cb8ObrCgrGgvCgrKX4Cl8FZoDTrAbvDTrDboDTrGT6DTrJgrDTrMX3DTrRZrDTrRg8DTvAVvDTvFZoDT3DT8DT3Ln3DT4HZrDT4MT8DT8AlrDT8MT8DUAkGbDUDbJnDYLnQlDbDUOYDbMTAnDbMXSnDboAT3DboFn4DboLnvDj6JTrGTCgFTGTGgFnGTJTMnGTLnPlGToJT8GTrCT3GTrLVoGTrLnvGTrMX3GTrMboGTvKl3GZClFnGZrDT3GZ8DTrGZ8FZ8GZ8MXvGZ8On8GZ8ST3GbCnQXGbMbFnGboFboGboJg3GboMXoGb3JTvGb3JboGb3Mn6Gb3Qb8GgDXLjGgMnAUGgrDloGgrHX4GgrSToGgvAXrGgvAZvGgvFbrGgvLl3GgvMnvGnDnLXGnrATrGnrMboGnuLl3HTATMnHTAgCnHTCTCTHTrGTvHTrHTvHTrJX8HTrLl8HTrMT8HTrMgoHTrOTrHTuOn3HTvAZrHTvDTvHTvGboHTvJU8HTvLl3HTvMXrHTvQb4HT4GT6HT4JT8HT4Jb#HT8Al3HT8GZrHT8GgrHT8HX4HT8Jb8HT8JnoHT8LTrHT8LgvHT8SToHT8SV8HUoJUoHUoJX8HUoLnrHXrLZoHXvAl3HX3LnrHX4FkvHX4LhrHX4MXoHX4OnoHZrAZ8HZrDb8HZrGZ8HZrJnrHZvGZ8HZvLnvHZ8JnvHZ8LhrHbCXJlHbMTAnHboJl4HbpLl3HbrJX8HbrLnrHbrMnvHbvRYrHgoSTrHgrFV8HgrGZ8HgrJXoHgrRnvHgvBb!HgvGTrHgvHX4HgvHn!HgvLTrHgvSU8HnDnLbHnFbJbHnvDn8Hn6GgvHn!BTvJTCTLnJTQgFnJTrAnvJTrLX4JTrOUoJTvFn3JTvLnrJTvNToJT3AgoJT3Jn4JT3LhvJT3ObrJT8AcrJT8Al3JT8JT8JT8JnoJT8LX4JT8LnrJT8MX3JT8Rg3JT8Sc8JUoBTvJU8AToJU8GZ8JU8GgvJU8JTrJU8JXrJU8JnrJU8LnvJU8ScvJXHnJlJXrGgvJXrJU8JXrLhrJXrMT8JXrMXrJXrQUoJXvCTvJXvGZ8JXvGgrJXvQT8JX8Ab8JX8DT8JX8GZ8JX8HZvJX8LnrJX8MT8JX8MXoJX8MnvJX8ST3JYGnCTJbAkGbJbCTAnJbLTAcJboDT3JboLb6JbrAnvJbrCn3JbrDl8JbrGboJbrIZoJbrJnvJbrMnvJbrQb4Jb8RZrJeAbAnJgJnFbJgScAnJgrATrJgvHZ8JgvMn4JlJlFbJlLiQXJlLjOnJlRbOlJlvNXoJlvRl3Jl4AcrJl8AUoJl8MnrJnFnMlJnHgGbJnoDT8JnoFV8JnoGgvJnoIT8JnoQToJnoRg3JnrCZ3JnrGgrJnrHTvJnrLf8JnrOX8JnvAT3JnvFZoJnvGT8JnvJl4JnvMT8JnvMX8JnvOXrJnvPX6JnvSX3JnvSZrJn3MT8Jn3MX8Jn3RTrLTATKnLTJnLTLTMXKnLTRTQlLToGb8LTrAZ8LTrCZ8LTrDb8LTrHT8LT3PX6LT4FZoLT$CTvLT$GgrLUvHX3LVoATrLVoAgoLVoJboLVoMX3LVoRg3LV8CZ3LV8FZoLV8GTvLXrDXoLXrFbrLXvAgvLXvFlrLXvLl3LXvRn6LX4Mb8LX8GT8LYCXMnLYrMnrLZoSTvLZrAZvLZrAloLZrFToLZrJXvLZrJboLZrJl4LZrLnrLZrMT8LZrOgvLZrRnvLZrST4LZvMX8LZvSlvLZ8AgoLZ8CT3LZ8JT8LZ8LV8LZ8LZoLZ8Lg8LZ8SV8LZ8SbrLZ$HT8LZ$Mn4La6CTvLbFbMnLbRYFTLbSnFZLboJT8LbrAT9LbrGb3LbrQb8LcrJX8LcrMXrLerHTvLerJbrLerNboLgrDb8LgrGZ8LgrHTrLgrMXrLgrSU8LgvJTrLgvLl3Lg6Ll3LhrLnrLhrMT8LhvAl4LiLnQXLkoAgrLkoJT8LkoJn4LlrSU8Ll3FZoLl3HTrLl3JX8Ll3JnoLl3LToLmLeFbLnDUFbLnLVAnLnrATrLnrAZoLnrAb8LnrAlrLnrGgvLnrJU8LnrLZrLnrLhrLnrMb8LnrOXrLnrSZ8LnvAb4LnvDTrLnvDl8LnvHTrLnvHbrLnvJT8LnvJU8LnvJbrLnvLhvLnvMX8LnvMb8LnvNnoLnvSU8Ln3Al3Ln4FZoLn4GT6Ln4JgvLn4LhrLn4MT8Ln4SToMToCZrMToJX8MToLX4MToLf8MToRg3MTrEloMTvGb6MT3BTrMT3Lb6MT8AcrMT8AgrMT8GZrMT8JnoMT8LnrMT8MX3MUOUAnMXAbFnMXoAloMXoJX8MXoLf8MXoLl8MXrAb8MXrDTvMXrGT8MXrGgrMXrHTrMXrLf8MXrMU8MXrOXvMXrQb8MXvGT8MXvHTrMXvLVoMX3AX3MX3Jn3MX3LhrMX3MX3MX4AlrMX4OboMX8GTvMX8GZrMX8GgrMX8JT8MX8JX8MX8LhrMX8MT8MYDUFbMYMgDbMbGnFfMbvLX4MbvLl3Mb8Mb8Mb8ST4MgGXCnMg8ATrMg8AgoMg8CZrMg8DTrMg8DboMg8HTrMg8JgrMg8LT8MloJXoMl8AhrMl8JT8MnLgAUMnoJXrMnoLX4MnoLhrMnoMT8MnrAl4MnrDb8MnrOTvMnrOgvMnrQb8MnrSU8MnvGgrMnvHZ8Mn3MToMn4DTrMn4LTrMn4Mg8NnBXAnOTFTFnOToAToOTrGgvOTrJX8OT3JXoOT6MTrOT8GgrOT8HTpOT8MToOUoHT8OUoJT8OUoLn3OXrAgoOXrDg8OXrMT8OXvSToOX6CTvOX8CZrOX8OgrOb6HgvOb8AToOb8MT8OcvLZ8OgvAlrOgvHTvOgvJTrOgvJnrOgvLZrOgvLn4OgvMT8OgvRTrOg8AZoOg8DbvOnrOXoOnvJn4OnvLhvOnvRTrOn3GgoOn3JnvOn6JbvOn8OTrPTGYFTPbBnFnPbGnDnPgDYQTPlrAnvPlrETvPlrLnvPlrMXvPlvFX4QTMTAnQTrJU8QYCnJlQYJlQlQbGTQbQb8JnrQb8LZoQb8LnvQb8MT8Qb8Ml8Qb8ST4QloAl4QloHZvQloJX8QloMn8QnJZOlRTrAZvRTrDTrRTvJn4RTvLhvRT4Jb8RZrAZrRZ8AkrRZ8JU8RZ8LV8RZ8LnvRbJlQXRg3GboRg3MnvRg8AZ8Rg8JboRg8Jl4RnLTCbRnvFl3RnvQb8SToAl4SToCZrSToFZoSToHXrSToJU8SToJgvSToJl4SToLhrSToMX3STrAlvSTrCT9STrCgrSTrGgrSTrHXrSTrHboSTrJnoSTrNboSTvLnrST4AZoST8Ab8ST8JT8SUoJn3SU6HZ#SU6JTvSU8Db8SU8HboSU8LgrSV8JT8SZrAcrSZrAl3SZrJT8SZrJnvSZrMT8SZvLUoSZ4FZoSZ8JnoSZ8RZrScoLnrScoMT8ScoMX8ScrAT4ScrAZ8ScrLZ8ScrLkvScvDb8ScvLf8ScvNToSgrFZrShvKnrSloHUoSloLnrSlrMXoSl8HgrSmrJUoSn3BX6","ATFlOn3ATLgrDYAT4MTAnAT8LTMnAYJnRTrAbGgJnrAbLV8LnAbvNTAnAeFbLg3AgOYMXoAlQbFboAnDboAfAnJgoJTBToDgAnBUJbAl3BboDUAnCTDlvLnCTFTrSnCYoQTLnDTwAbAnDUDTrSnDUHgHgrDX8LXFnDbJXAcrETvLTLnGTFTQbrGTMnGToGT3DUFbGUJlPX3GbQg8LnGboJbFnGb3GgAYGgAg8ScGgMbAXrGgvAbAnGnJTLnvGnvATFgHTDT6ATHTrDlJnHYLnMn8HZrSbJTHZ8LTFnHbFTJUoHgSeMT8HgrLjAnHgvAbAnHlFUrDlHnDgvAnHnHTFT3HnQTGnrJTAaMXvJTGbCn3JTOgrAnJXvAXMnJbMg8SnJbMnRg3Jb8LTMnJnAl3OnJnGYrQlJnJlQY3LTDlCn3LTJjLg3LTLgvFXLTMg3GTLV8HUOgLXFZLg3LXNXrMnLX8QXFnLX9AlMYLYLXPXrLZAbJU8LZDUJU8LZMXrSnLZ$AgFnLaPXrDULbFYrMnLbMn8LXLboJgJgLeFbLg3LgLZrSnLgOYAgoLhrRnJlLkCTrSnLkOnLhrLnFX%AYLnFZoJXLnHTvJbLnLloAbMTATLf8MTHgJn3MTMXrAXMT3MTFnMUITvFnMXFX%AYMXMXvFbMXrFTDbMYAcMX3MbLf8SnMb8JbFnMgMXrMTMgvAXFnMgvGgCmMnAloSnMnFnJTrOXvMXSnOX8HTMnObJT8ScObLZFl3ObMXCZoPTLgrQXPUFnoQXPU3RXJlPX3RkQXPbrJXQlPlrJbFnQUAhrDbQXGnCXvQYLnHlvQbLfLnvRTOgvJbRXJYrQlRYLnrQlRbLnrQlRlFT8JlRlFnrQXSTClCn3STHTrAnSTLZQlrSTMnGTrSToHgGbSTrGTDnSTvGXCnST3HgFbSU3HXAXSbAnJn3SbFT8LnScLfLnv","AT3JgJX8AT8FZoSnAT8JgFV8AT8LhrDbAZ8JT8DbAb8GgLhrAb8SkLnvAe8MT8SnAlMYJXLVAl3GYDTvAl3LfLnvBUDTvLl3CTOn3HTrCT3DUGgrCU8MT8AbCbFTrJUoCgrDb8MTDTLV8JX8DTLnLXQlDT8LZrSnDUQb8FZ8DUST4JnvDb8ScOUoDj6GbJl4GTLfCYMlGToAXvFnGboAXvLnGgAcrJn3GgvFnSToGnLf8JnvGn#HTDToHTLnFXJlHTvATFToHTvHTDToHTvMTAgoHT3STClvHT4AlFl6HT8HTDToHUoDgJTrHUoScMX3HbRZrMXoHboJg8LTHgDb8JTrHgMToLf8HgvLnLnoHnHn3HT4Hn6MgvAnJTJU8ScvJT3AaQT8JT8HTrAnJXrRg8AnJbAloMXoJbrATFToJbvMnoSnJgDb6GgvJgDb8MXoJgSX3JU8JguATFToJlPYLnQlJlQkDnLbJlQlFYJlJl8Lf8OTJnCTFnLbJnLTHXMnJnLXGXCnJnoFfRg3JnrMYRg3Jn3HgFl3KT8Dg8LnLTRlFnPTLTvPbLbvLVoSbrCZLXMY6HT3LXNU7DlrLXNXDTATLX8DX8LnLZDb8JU8LZMnoLhrLZSToJU8LZrLaLnrLZvJn3SnLZ8LhrSnLaJnoMT8LbFlrHTvLbrFTLnrLbvATLlvLb6OTFn3LcLnJZOlLeAT6Mn4LeJT3ObrLg6LXFlrLhrJg8LnLhvDlPX4LhvLfLnvLj6JTFT3LnFbrMXoLnQluCTvLnrQXCY6LnvLfLnvLnvMgLnvLnvSeLf8MTMbrJn3MT3JgST3MT8AnATrMT8LULnrMUMToCZrMUScvLf8MXoDT8SnMX6ATFToMX8AXMT8MX8FkMT8MX8HTrDUMX8ScoSnMYJT6CTvMgAcrMXoMg8SToAfMlvAXLg3MnFl3AnvOT3AnFl3OUoATHT8OU3RnLXrOXrOXrSnObPbvFn6Og8HgrSnOg8OX8DbPTvAgoJgPU3RYLnrPXrDnJZrPb8CTGgvPlrLTDlvPlvFUJnoQUvFXrQlQeMnoAl3QlrQlrSnRTFTrJUoSTDlLiLXSTFg6HT3STJgoMn4STrFTJTrSTrLZFl3ST4FnMXoSUrDlHUoScvHTvSnSfLkvMXo","AUoAcrMXoAZ8HboAg8AbOg6ATFgAg8AloMXoAl3AT8JTrAl8MX8MXoCT3SToJU8Cl8Db8MXoDT8HgrATrDboOT8MXoGTOTrATMnGT8LhrAZ8GnvFnGnQXHToGgvAcrHTvAXvLl3HbrAZoMXoHgBlFXLg3HgMnFXrSnHgrSb8JUoHn6HT8LgvITvATrJUoJUoLZrRnvJU8HT8Jb8JXvFX8QT8JXvLToJTrJYrQnGnQXJgrJnoATrJnoJU8ScvJnvMnvMXoLTCTLgrJXLTJlRTvQlLbRnJlQYvLbrMb8LnvLbvFn3RnoLdCVSTGZrLeSTvGXCnLg3MnoLn3MToLlrETvMT8SToAl3MbrDU6GTvMb8LX4LhrPlrLXGXCnSToLf8Rg3STrDb8LTrSTvLTHXMnSb3RYLnMnSgOg6ATFg","HUDlGnrQXrJTrHgLnrAcJYMb8DULc8LTvFgGnCk3Mg8JbAnLX4QYvFYHnMXrRUoJnGnvFnRlvFTJlQnoSTrBXHXrLYSUJgLfoMT8Se8DTrHbDb","AbDl8SToJU8An3RbAb8ST8DUSTrGnrAgoLbFU6Db8LTrMg8AaHT8Jb8ObDl8SToJU8Pb3RlvFYoJl"],BIe="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789!@#$%^&*";function FIe(t){return t>=40?t=t+168-40:t>=19&&(t=t+97-19),(0,NIe.toUtf8String)([225,(t>>6)+132,(t&63)+128])}var nm=null;function E$(t){if(nm==null&&(nm=[],kIe.forEach(function(e,r){r+=4;for(var i=0;i{"use strict";var qIe=Fg&&Fg.__extends||function(){var t=function(e,r){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var a in n)Object.prototype.hasOwnProperty.call(n,a)&&(i[a]=n[a])},t(e,r)};return function(e,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");t(e,r);function i(){this.constructor=e}e.prototype=r===null?Object.create(r):(i.prototype=r.prototype,new i)}}();Object.defineProperty(Fg,"__esModule",{value:!0});Fg.langIt=void 0;var rM=Rd(),LIe="AbacoAbbaglioAbbinatoAbeteAbissoAbolireAbrasivoAbrogatoAccadereAccennoAccusatoAcetoneAchilleAcidoAcquaAcreAcrilicoAcrobataAcutoAdagioAddebitoAddomeAdeguatoAderireAdipeAdottareAdulareAffabileAffettoAffissoAffrantoAforismaAfosoAfricanoAgaveAgenteAgevoleAggancioAgireAgitareAgonismoAgricoloAgrumetoAguzzoAlabardaAlatoAlbatroAlberatoAlboAlbumeAlceAlcolicoAlettoneAlfaAlgebraAlianteAlibiAlimentoAllagatoAllegroAllievoAllodolaAllusivoAlmenoAlogenoAlpacaAlpestreAltalenaAlternoAlticcioAltroveAlunnoAlveoloAlzareAmalgamaAmanitaAmarenaAmbitoAmbratoAmebaAmericaAmetistaAmicoAmmassoAmmendaAmmirareAmmonitoAmoreAmpioAmpliareAmuletoAnacardoAnagrafeAnalistaAnarchiaAnatraAncaAncellaAncoraAndareAndreaAnelloAngeloAngolareAngustoAnimaAnnegareAnnidatoAnnoAnnuncioAnonimoAnticipoAnziApaticoAperturaApodeApparireAppetitoAppoggioApprodoAppuntoAprileArabicaArachideAragostaAraldicaArancioAraturaArazzoArbitroArchivioArditoArenileArgentoArgineArgutoAriaArmoniaArneseArredatoArringaArrostoArsenicoArsoArteficeArzilloAsciuttoAscoltoAsepsiAsetticoAsfaltoAsinoAsolaAspiratoAsproAssaggioAsseAssolutoAssurdoAstaAstenutoAsticeAstrattoAtavicoAteismoAtomicoAtonoAttesaAttivareAttornoAttritoAttualeAusilioAustriaAutistaAutonomoAutunnoAvanzatoAvereAvvenireAvvisoAvvolgereAzioneAzotoAzzimoAzzurroBabeleBaccanoBacinoBacoBadessaBadilataBagnatoBaitaBalconeBaldoBalenaBallataBalzanoBambinoBandireBaraondaBarbaroBarcaBaritonoBarlumeBaroccoBasilicoBassoBatostaBattutoBauleBavaBavosaBeccoBeffaBelgioBelvaBendaBenevoleBenignoBenzinaBereBerlinaBetaBibitaBiciBidoneBifidoBigaBilanciaBimboBinocoloBiologoBipedeBipolareBirbanteBirraBiscottoBisestoBisnonnoBisonteBisturiBizzarroBlandoBlattaBollitoBonificoBordoBoscoBotanicoBottinoBozzoloBraccioBradipoBramaBrancaBravuraBretellaBrevettoBrezzaBrigliaBrillanteBrindareBroccoloBrodoBronzinaBrulloBrunoBubboneBucaBudinoBuffoneBuioBulboBuonoBurloneBurrascaBussolaBustaCadettoCaducoCalamaroCalcoloCalesseCalibroCalmoCaloriaCambusaCamerataCamiciaCamminoCamolaCampaleCanapaCandelaCaneCaninoCanottoCantinaCapaceCapelloCapitoloCapogiroCapperoCapraCapsulaCarapaceCarcassaCardoCarismaCarovanaCarrettoCartolinaCasaccioCascataCasermaCasoCassoneCastelloCasualeCatastaCatenaCatrameCautoCavilloCedibileCedrataCefaloCelebreCellulareCenaCenoneCentesimoCeramicaCercareCertoCerumeCervelloCesoiaCespoCetoChelaChiaroChiccaChiedereChimeraChinaChirurgoChitarraCiaoCiclismoCifrareCignoCilindroCiottoloCircaCirrosiCitricoCittadinoCiuffoCivettaCivileClassicoClinicaCloroCoccoCodardoCodiceCoerenteCognomeCollareColmatoColoreColposoColtivatoColzaComaCometaCommandoComodoComputerComuneConcisoCondurreConfermaCongelareConiugeConnessoConoscereConsumoContinuoConvegnoCopertoCopioneCoppiaCopricapoCorazzaCordataCoricatoCorniceCorollaCorpoCorredoCorsiaCorteseCosmicoCostanteCotturaCovatoCratereCravattaCreatoCredereCremosoCrescitaCretaCricetoCrinaleCrisiCriticoCroceCronacaCrostataCrucialeCruscaCucireCuculoCuginoCullatoCupolaCuratoreCursoreCurvoCuscinoCustodeDadoDainoDalmataDamerinoDanielaDannosoDanzareDatatoDavantiDavveroDebuttoDecennioDecisoDeclinoDecolloDecretoDedicatoDefinitoDeformeDegnoDelegareDelfinoDelirioDeltaDemenzaDenotatoDentroDepositoDerapataDerivareDerogaDescrittoDesertoDesiderioDesumereDetersivoDevotoDiametroDicembreDiedroDifesoDiffusoDigerireDigitaleDiluvioDinamicoDinnanziDipintoDiplomaDipoloDiradareDireDirottoDirupoDisagioDiscretoDisfareDisgeloDispostoDistanzaDisumanoDitoDivanoDiveltoDividereDivoratoDobloneDocenteDoganaleDogmaDolceDomatoDomenicaDominareDondoloDonoDormireDoteDottoreDovutoDozzinaDragoDruidoDubbioDubitareDucaleDunaDuomoDupliceDuraturoEbanoEccessoEccoEclissiEconomiaEderaEdicolaEdileEditoriaEducareEgemoniaEgliEgoismoEgregioElaboratoElargireEleganteElencatoElettoElevareElficoElicaElmoElsaElusoEmanatoEmblemaEmessoEmiroEmotivoEmozioneEmpiricoEmuloEndemicoEnduroEnergiaEnfasiEnotecaEntrareEnzimaEpatiteEpilogoEpisodioEpocaleEppureEquatoreErarioErbaErbosoEredeEremitaErigereErmeticoEroeErosivoErranteEsagonoEsameEsanimeEsaudireEscaEsempioEsercitoEsibitoEsigenteEsistereEsitoEsofagoEsortatoEsosoEspansoEspressoEssenzaEssoEstesoEstimareEstoniaEstrosoEsultareEtilicoEtnicoEtruscoEttoEuclideoEuropaEvasoEvidenzaEvitatoEvolutoEvvivaFabbricaFaccendaFachiroFalcoFamigliaFanaleFanfaraFangoFantasmaFareFarfallaFarinosoFarmacoFasciaFastosoFasulloFaticareFatoFavolosoFebbreFecolaFedeFegatoFelpaFeltroFemminaFendereFenomenoFermentoFerroFertileFessuraFestivoFettaFeudoFiabaFiduciaFifaFiguratoFiloFinanzaFinestraFinireFioreFiscaleFisicoFiumeFlaconeFlamencoFleboFlemmaFloridoFluenteFluoroFobicoFocacciaFocosoFoderatoFoglioFolataFolcloreFolgoreFondenteFoneticoFoniaFontanaForbitoForchettaForestaFormicaFornaioForoFortezzaForzareFosfatoFossoFracassoFranaFrassinoFratelloFreccettaFrenataFrescoFrigoFrollinoFrondeFrugaleFruttaFucilataFucsiaFuggenteFulmineFulvoFumanteFumettoFumosoFuneFunzioneFuocoFurboFurgoneFuroreFusoFutileGabbianoGaffeGalateoGallinaGaloppoGamberoGammaGaranziaGarboGarofanoGarzoneGasdottoGasolioGastricoGattoGaudioGazeboGazzellaGecoGelatinaGelsoGemelloGemmatoGeneGenitoreGennaioGenotipoGergoGhepardoGhiaccioGhisaGialloGildaGineproGiocareGioielloGiornoGioveGiratoGironeGittataGiudizioGiuratoGiustoGlobuloGlutineGnomoGobbaGolfGomitoGommoneGonfioGonnaGovernoGracileGradoGraficoGrammoGrandeGrattareGravosoGraziaGrecaGreggeGrifoneGrigioGrinzaGrottaGruppoGuadagnoGuaioGuantoGuardareGufoGuidareIbernatoIconaIdenticoIdillioIdoloIdraIdricoIdrogenoIgieneIgnaroIgnoratoIlareIllesoIllogicoIlludereImballoImbevutoImboccoImbutoImmaneImmersoImmolatoImpaccoImpetoImpiegoImportoImprontaInalareInarcareInattivoIncantoIncendioInchinoIncisivoInclusoIncontroIncrocioIncuboIndagineIndiaIndoleIneditoInfattiInfilareInflittoIngaggioIngegnoIngleseIngordoIngrossoInnescoInodoreInoltrareInondatoInsanoInsettoInsiemeInsonniaInsulinaIntasatoInteroIntonacoIntuitoInumidireInvalidoInveceInvitoIperboleIpnoticoIpotesiIppicaIrideIrlandaIronicoIrrigatoIrrorareIsolatoIsotopoIstericoIstitutoIstriceItaliaIterareLabbroLabirintoLaccaLaceratoLacrimaLacunaLaddoveLagoLampoLancettaLanternaLardosoLargaLaringeLastraLatenzaLatinoLattugaLavagnaLavoroLegaleLeggeroLemboLentezzaLenzaLeoneLepreLesivoLessatoLestoLetteraleLevaLevigatoLiberoLidoLievitoLillaLimaturaLimitareLimpidoLineareLinguaLiquidoLiraLiricaLiscaLiteLitigioLivreaLocandaLodeLogicaLombareLondraLongevoLoquaceLorenzoLotoLotteriaLuceLucidatoLumacaLuminosoLungoLupoLuppoloLusingaLussoLuttoMacabroMacchinaMaceroMacinatoMadamaMagicoMagliaMagneteMagroMaiolicaMalafedeMalgradoMalintesoMalsanoMaltoMalumoreManaManciaMandorlaMangiareManifestoMannaroManovraMansardaMantideManubrioMappaMaratonaMarcireMarettaMarmoMarsupioMascheraMassaiaMastinoMaterassoMatricolaMattoneMaturoMazurcaMeandroMeccanicoMecenateMedesimoMeditareMegaMelassaMelisMelodiaMeningeMenoMensolaMercurioMerendaMerloMeschinoMeseMessereMestoloMetalloMetodoMettereMiagolareMicaMicelioMicheleMicroboMidolloMieleMiglioreMilanoMiliteMimosaMineraleMiniMinoreMirinoMirtilloMiscelaMissivaMistoMisurareMitezzaMitigareMitraMittenteMnemonicoModelloModificaModuloMoganoMogioMoleMolossoMonasteroMoncoMondinaMonetarioMonileMonotonoMonsoneMontatoMonvisoMoraMordereMorsicatoMostroMotivatoMotosegaMottoMovenzaMovimentoMozzoMuccaMucosaMuffaMughettoMugnaioMulattoMulinelloMultiploMummiaMuntoMuovereMuraleMusaMuscoloMusicaMutevoleMutoNababboNaftaNanometroNarcisoNariceNarratoNascereNastrareNaturaleNauticaNaviglioNebulosaNecrosiNegativoNegozioNemmenoNeofitaNerettoNervoNessunoNettunoNeutraleNeveNevroticoNicchiaNinfaNitidoNobileNocivoNodoNomeNominaNordicoNormaleNorvegeseNostranoNotareNotiziaNotturnoNovellaNucleoNullaNumeroNuovoNutrireNuvolaNuzialeOasiObbedireObbligoObeliscoOblioOboloObsoletoOccasioneOcchioOccidenteOccorrereOccultareOcraOculatoOdiernoOdorareOffertaOffrireOffuscatoOggettoOggiOgnunoOlandeseOlfattoOliatoOlivaOlogrammaOltreOmaggioOmbelicoOmbraOmegaOmissioneOndosoOnereOniceOnnivoroOnorevoleOntaOperatoOpinioneOppostoOracoloOrafoOrdineOrecchinoOreficeOrfanoOrganicoOrigineOrizzonteOrmaOrmeggioOrnativoOrologioOrrendoOrribileOrtensiaOrticaOrzataOrzoOsareOscurareOsmosiOspedaleOspiteOssaOssidareOstacoloOsteOtiteOtreOttagonoOttimoOttobreOvaleOvestOvinoOviparoOvocitoOvunqueOvviareOzioPacchettoPacePacificoPadellaPadronePaesePagaPaginaPalazzinaPalesarePallidoPaloPaludePandoroPannelloPaoloPaonazzoPapricaParabolaParcellaParerePargoloPariParlatoParolaPartireParvenzaParzialePassivoPasticcaPataccaPatologiaPattumePavonePeccatoPedalarePedonalePeggioPelosoPenarePendicePenisolaPennutoPenombraPensarePentolaPepePepitaPerbenePercorsoPerdonatoPerforarePergamenaPeriodoPermessoPernoPerplessoPersuasoPertugioPervasoPesatorePesistaPesoPestiferoPetaloPettinePetulantePezzoPiacerePiantaPiattinoPiccinoPicozzaPiegaPietraPifferoPigiamaPigolioPigroPilaPiliferoPillolaPilotaPimpantePinetaPinnaPinoloPioggiaPiomboPiramidePireticoPiritePirolisiPitonePizzicoPlaceboPlanarePlasmaPlatanoPlenarioPochezzaPoderosoPodismoPoesiaPoggiarePolentaPoligonoPollicePolmonitePolpettaPolsoPoltronaPolverePomicePomodoroPontePopolosoPorfidoPorosoPorporaPorrePortataPosaPositivoPossessoPostulatoPotassioPoterePranzoPrassiPraticaPreclusoPredicaPrefissoPregiatoPrelievoPremerePrenotarePreparatoPresenzaPretestoPrevalsoPrimaPrincipePrivatoProblemaProcuraProdurreProfumoProgettoProlungaPromessaPronomePropostaProrogaProtesoProvaPrudentePrugnaPruritoPsichePubblicoPudicaPugilatoPugnoPulcePulitoPulsantePuntarePupazzoPupillaPuroQuadroQualcosaQuasiQuerelaQuotaRaccoltoRaddoppioRadicaleRadunatoRafficaRagazzoRagioneRagnoRamarroRamingoRamoRandagioRantolareRapatoRapinaRappresoRasaturaRaschiatoRasenteRassegnaRastrelloRataRavvedutoRealeRecepireRecintoReclutaReconditoRecuperoRedditoRedimereRegalatoRegistroRegolaRegressoRelazioneRemareRemotoRennaReplicaReprimereReputareResaResidenteResponsoRestauroReteRetinaRetoricaRettificaRevocatoRiassuntoRibadireRibelleRibrezzoRicaricaRiccoRicevereRiciclatoRicordoRicredutoRidicoloRidurreRifasareRiflessoRiformaRifugioRigareRigettatoRighelloRilassatoRilevatoRimanereRimbalzoRimedioRimorchioRinascitaRincaroRinforzoRinnovoRinomatoRinsavitoRintoccoRinunciaRinvenireRiparatoRipetutoRipienoRiportareRipresaRipulireRisataRischioRiservaRisibileRisoRispettoRistoroRisultatoRisvoltoRitardoRitegnoRitmicoRitrovoRiunioneRivaRiversoRivincitaRivoltoRizomaRobaRoboticoRobustoRocciaRocoRodaggioRodereRoditoreRogitoRollioRomanticoRompereRonzioRosolareRospoRotanteRotondoRotulaRovescioRubizzoRubricaRugaRullinoRumineRumorosoRuoloRupeRussareRusticoSabatoSabbiareSabotatoSagomaSalassoSaldaturaSalgemmaSalivareSalmoneSaloneSaltareSalutoSalvoSapereSapidoSaporitoSaracenoSarcasmoSartoSassosoSatelliteSatiraSatolloSaturnoSavanaSavioSaziatoSbadiglioSbalzoSbancatoSbarraSbattereSbavareSbendareSbirciareSbloccatoSbocciatoSbrinareSbruffoneSbuffareScabrosoScadenzaScalaScambiareScandaloScapolaScarsoScatenareScavatoSceltoScenicoScettroSchedaSchienaSciarpaScienzaScindereScippoSciroppoScivoloSclerareScodellaScolpitoScompartoSconfortoScoprireScortaScossoneScozzeseScribaScrollareScrutinioScuderiaScultoreScuolaScuroScusareSdebitareSdoganareSeccaturaSecondoSedanoSeggiolaSegnalatoSegregatoSeguitoSelciatoSelettivoSellaSelvaggioSemaforoSembrareSemeSeminatoSempreSensoSentireSepoltoSequenzaSerataSerbatoSerenoSerioSerpenteSerraglioServireSestinaSetolaSettimanaSfaceloSfaldareSfamatoSfarzosoSfaticatoSferaSfidaSfilatoSfingeSfocatoSfoderareSfogoSfoltireSforzatoSfrattoSfruttatoSfuggitoSfumareSfusoSgabelloSgarbatoSgonfiareSgorbioSgrassatoSguardoSibiloSiccomeSierraSiglaSignoreSilenzioSillabaSimboloSimpaticoSimulatoSinfoniaSingoloSinistroSinoSintesiSinusoideSiparioSismaSistoleSituatoSlittaSlogaturaSlovenoSmarritoSmemoratoSmentitoSmeraldoSmilzoSmontareSmottatoSmussatoSnellireSnervatoSnodoSobbalzoSobrioSoccorsoSocialeSodaleSoffittoSognoSoldatoSolenneSolidoSollazzoSoloSolubileSolventeSomaticoSommaSondaSonettoSonniferoSopireSoppesoSopraSorgereSorpassoSorrisoSorsoSorteggioSorvolatoSospiroSostaSottileSpadaSpallaSpargereSpatolaSpaventoSpazzolaSpecieSpedireSpegnereSpelaturaSperanzaSpessoreSpettraleSpezzatoSpiaSpigolosoSpillatoSpinosoSpiraleSplendidoSportivoSposoSprangaSprecareSpronatoSpruzzoSpuntinoSquilloSradicareSrotolatoStabileStaccoStaffaStagnareStampatoStantioStarnutoStaseraStatutoSteloSteppaSterzoStilettoStimaStirpeStivaleStizzosoStonatoStoricoStrappoStregatoStriduloStrozzareStruttoStuccareStufoStupendoSubentroSuccosoSudoreSuggeritoSugoSultanoSuonareSuperboSupportoSurgelatoSurrogatoSussurroSuturaSvagareSvedeseSveglioSvelareSvenutoSveziaSviluppoSvistaSvizzeraSvoltaSvuotareTabaccoTabulatoTacciareTaciturnoTaleTalismanoTamponeTanninoTaraTardivoTargatoTariffaTarpareTartarugaTastoTatticoTavernaTavolataTazzaTecaTecnicoTelefonoTemerarioTempoTemutoTendoneTeneroTensioneTentacoloTeoremaTermeTerrazzoTerzettoTesiTesseratoTestatoTetroTettoiaTifareTigellaTimbroTintoTipicoTipografoTiraggioTiroTitanioTitoloTitubanteTizioTizzoneToccareTollerareToltoTombolaTomoTonfoTonsillaTopazioTopologiaToppaTorbaTornareTorroneTortoraToscanoTossireTostaturaTotanoTraboccoTracheaTrafilaTragediaTralcioTramontoTransitoTrapanoTrarreTraslocoTrattatoTraveTrecciaTremolioTrespoloTributoTrichecoTrifoglioTrilloTrinceaTrioTristezzaTrituratoTrivellaTrombaTronoTroppoTrottolaTrovareTruccatoTubaturaTuffatoTulipanoTumultoTunisiaTurbareTurchinoTutaTutelaUbicatoUccelloUccisoreUdireUditivoUffaUfficioUgualeUlisseUltimatoUmanoUmileUmorismoUncinettoUngereUnghereseUnicornoUnificatoUnisonoUnitarioUnteUovoUpupaUraganoUrgenzaUrloUsanzaUsatoUscitoUsignoloUsuraioUtensileUtilizzoUtopiaVacanteVaccinatoVagabondoVagliatoValangaValgoValicoVallettaValorosoValutareValvolaVampataVangareVanitosoVanoVantaggioVanveraVaporeVaranoVarcatoVarianteVascaVedettaVedovaVedutoVegetaleVeicoloVelcroVelinaVellutoVeloceVenatoVendemmiaVentoVeraceVerbaleVergognaVerificaVeroVerrucaVerticaleVescicaVessilloVestaleVeteranoVetrinaVetustoViandanteVibranteVicendaVichingoVicinanzaVidimareVigiliaVignetoVigoreVileVillanoViminiVincitoreViolaViperaVirgolaVirologoVirulentoViscosoVisioneVispoVissutoVisuraVitaVitelloVittimaVivandaVividoViziareVoceVogaVolatileVolereVolpeVoragineVulcanoZampognaZannaZappatoZatteraZavorraZefiroZelanteZeloZenzeroZerbinoZibettoZincoZirconeZittoZollaZoticoZuccheroZufoloZuluZuppa",Q4=null;function P$(t){if(Q4==null&&(Q4=LIe.replace(/([A-Z])/g," $1").toLowerCase().substring(1).split(" "),rM.Wordlist.check(t)!=="0x5c1362d88fd4cf614a96f3234941d29f7d37c08c5292fde03bf62c2db6ff7620"))throw Q4=null,new Error("BIP39 Wordlist for it (Italian) FAILED")}var UIe=function(t){qIe(e,t);function e(){return t.call(this,"it")||this}return e.prototype.getWord=function(r){return P$(this),Q4[r]},e.prototype.getWordIndex=function(r){return P$(this),Q4.indexOf(r)},e}(rM.Wordlist),O$=new UIe;Fg.langIt=O$;rM.Wordlist.register(O$)});var N$=x(R0=>{"use strict";var jIe=R0&&R0.__extends||function(){var t=function(e,r){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var a in n)Object.prototype.hasOwnProperty.call(n,a)&&(i[a]=n[a])},t(e,r)};return function(e,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");t(e,r);function i(){this.constructor=e}e.prototype=r===null?Object.create(r):(i.prototype=r.prototype,new i)}}();Object.defineProperty(R0,"__esModule",{value:!0});R0.langZhTw=R0.langZhCn=void 0;var VIe=Cn(),Y4=Rd(),iM="}aE#4A=Yv&co#4N#6G=cJ&SM#66|/Z#4t&kn~46#4K~4q%b9=IR#7l,mB#7W_X2*dl}Uo~7s}Uf&Iw#9c&cw~6O&H6&wx&IG%v5=IQ~8a&Pv#47$PR&50%Ko&QM&3l#5f,D9#4L|/H&tQ;v0~6n]nN?";function M$(t){if(Dg[t.locale]===null){Dg[t.locale]=[];for(var e=0,r=0;r<2048;r++){var i=GIe.indexOf(iM[r*3]),n=[228+(i>>2),128+nM.indexOf(iM[r*3+1]),128+nM.indexOf(iM[r*3+2])];if(t.locale==="zh_tw")for(var a=i%4,s=a;s<3;s++)n[s]=nM.indexOf(HIe[e++])+(s==0?228:128);Dg[t.locale].push((0,VIe.toUtf8String)(n))}if(Y4.Wordlist.check(t)!==zIe[t.locale])throw Dg[t.locale]=null,new Error("BIP39 Wordlist for "+t.locale+" (Chinese) FAILED")}}var C$=function(t){jIe(e,t);function e(r){return t.call(this,"zh_"+r)||this}return e.prototype.getWord=function(r){return M$(this),Dg[this.locale][r]},e.prototype.getWordIndex=function(r){return M$(this),Dg[this.locale].indexOf(r)},e.prototype.split=function(r){return r=r.replace(/(?:\u3000| )+/g,""),r.split("")},e}(Y4.Wordlist),aM=new C$("cn");R0.langZhCn=aM;Y4.Wordlist.register(aM);Y4.Wordlist.register(aM,"zh");var I$=new C$("tw");R0.langZhTw=I$;Y4.Wordlist.register(I$)});var k$=x(C9=>{"use strict";Object.defineProperty(C9,"__esModule",{value:!0});C9.wordlists=void 0;var JIe=s$(),XIe=c$(),KIe=h$(),WIe=b$(),ZIe=S$(),$Ie=A$(),QIe=R$(),sM=N$();C9.wordlists={cz:JIe.langCz,en:XIe.langEn,es:KIe.langEs,fr:WIe.langFr,it:QIe.langIt,ja:ZIe.langJa,ko:$Ie.langKo,zh:sM.langZhCn,zh_cn:sM.langZhCn,zh_tw:sM.langZhTw}});var oM=x(M0=>{"use strict";Object.defineProperty(M0,"__esModule",{value:!0});M0.wordlists=M0.Wordlist=M0.logger=void 0;var B$=Rd();Object.defineProperty(M0,"logger",{enumerable:!0,get:function(){return B$.logger}});Object.defineProperty(M0,"Wordlist",{enumerable:!0,get:function(){return B$.Wordlist}});var YIe=k$();Object.defineProperty(M0,"wordlists",{enumerable:!0,get:function(){return YIe.wordlists}})});var F$=x(I9=>{"use strict";Object.defineProperty(I9,"__esModule",{value:!0});I9.version=void 0;I9.version="hdnode/5.7.0"});var k9=x(as=>{"use strict";Object.defineProperty(as,"__esModule",{value:!0});as.getAccountPath=as.isValidMnemonic=as.entropyToMnemonic=as.mnemonicToEntropy=as.mnemonicToSeed=as.HDNode=as.defaultPath=void 0;var U$=b9(),ui=or(),j$=Rn(),eb=Cn(),eNe=x9(),ns=Xr(),D$=j4(),Md=Rg(),tNe=df(),q$=oM(),rNe=Ht(),iNe=F$(),tb=new rNe.Logger(iNe.version),nNe=j$.BigNumber.from("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),aNe=(0,eb.toUtf8Bytes)("Bitcoin seed"),Lg=2147483648;function V$(t){return(1<=256)throw new Error("Depth too large!");return L$((0,ui.concat)([this.privateKey!=null?"0x0488ADE4":"0x0488B21E",(0,ui.hexlify)(this.depth),this.parentFingerprint,(0,ui.hexZeroPad)((0,ui.hexlify)(this.index),4),this.chainCode,this.privateKey!=null?(0,ui.concat)(["0x00",this.privateKey]):this.publicKey]))},enumerable:!1,configurable:!0}),t.prototype.neuter=function(){return new t(qg,null,this.publicKey,this.parentFingerprint,this.chainCode,this.index,this.depth,this.path)},t.prototype._derive=function(e){if(e>4294967295)throw new Error("invalid index - "+String(e));var r=this.path;r&&(r+="/"+(e&~Lg));var i=new Uint8Array(37);if(e&Lg){if(!this.privateKey)throw new Error("cannot derive child of neutered node");i.set((0,ui.arrayify)(this.privateKey),1),r&&(r+="'")}else i.set((0,ui.arrayify)(this.publicKey));for(var n=24;n>=0;n-=8)i[33+(n>>3)]=e>>24-n&255;var a=(0,ui.arrayify)((0,Md.computeHmac)(Md.SupportedAlgorithm.sha512,this.chainCode,i)),s=a.slice(0,32),o=a.slice(32),c=null,u=null;if(this.privateKey)c=N9(j$.BigNumber.from(s).add(this.privateKey).mod(nNe));else{var f=new D$.SigningKey((0,ui.hexlify)(s));u=f._addPoint(this.publicKey)}var d=r,p=this.mnemonic;return p&&(d=Object.freeze({phrase:p.phrase,path:r,locale:p.locale||"en"})),new t(qg,c,u,this.fingerprint,N9(o),e,this.depth+1,d)},t.prototype.derivePath=function(e){var r=e.split("/");if(r.length===0||r[0]==="m"&&this.depth!==0)throw new Error("invalid path - "+e);r[0]==="m"&&r.shift();for(var i=this,n=0;n=Lg)throw new Error("invalid path index - "+a);i=i._derive(Lg+s)}else if(a.match(/^[0-9]+$/)){var s=parseInt(a);if(s>=Lg)throw new Error("invalid path index - "+a);i=i._derive(s)}else throw new Error("invalid path component - "+a)}return i},t._fromSeed=function(e,r){var i=(0,ui.arrayify)(e);if(i.length<16||i.length>64)throw new Error("invalid seed");var n=(0,ui.arrayify)((0,Md.computeHmac)(Md.SupportedAlgorithm.sha512,aNe,i));return new t(qg,N9(n.slice(0,32)),null,"0x00000000",N9(n.slice(32)),0,0,r)},t.fromMnemonic=function(e,r,i){return i=uM(i),e=z$(cM(e,i),i),t._fromSeed(H$(e,r),{phrase:e,path:"m",locale:i.locale})},t.fromSeed=function(e){return t._fromSeed(e,null)},t.fromExtendedKey=function(e){var r=U$.Base58.decode(e);(r.length!==82||L$(r.slice(0,78))!==e)&&tb.throwArgumentError("invalid extended key","extendedKey","[REDACTED]");var i=r[4],n=(0,ui.hexlify)(r.slice(5,9)),a=parseInt((0,ui.hexlify)(r.slice(9,13)).substring(2),16),s=(0,ui.hexlify)(r.slice(13,45)),o=r.slice(45,78);switch((0,ui.hexlify)(r.slice(0,4))){case"0x0488b21e":case"0x043587cf":return new t(qg,null,(0,ui.hexlify)(o),n,s,a,i,null);case"0x0488ade4":case"0x04358394 ":if(o[0]!==0)break;return new t(qg,(0,ui.hexlify)(o.slice(1)),null,n,s,a,i,null)}return tb.throwArgumentError("invalid extended key","extendedKey","[REDACTED]")},t}();as.HDNode=oNe;function H$(t,e){e||(e="");var r=(0,eb.toUtf8Bytes)("mnemonic"+e,eb.UnicodeNormalizationForm.NFKD);return(0,eNe.pbkdf2)((0,eb.toUtf8Bytes)(t,eb.UnicodeNormalizationForm.NFKD),r,2048,64,"sha512")}as.mnemonicToSeed=H$;function cM(t,e){e=uM(e),tb.checkNormalize();var r=e.split(t);if(r.length%3!==0)throw new Error("invalid mnemonic");for(var i=(0,ui.arrayify)(new Uint8Array(Math.ceil(11*r.length/8))),n=0,a=0;a>3]|=1<<7-n%8),n++}var c=32*r.length/3,u=r.length/3,f=V$(u),d=(0,ui.arrayify)((0,Md.sha256)(i.slice(0,c/8)))[0]&f;if(d!==(i[i.length-1]&f))throw new Error("invalid checksum");return(0,ui.hexlify)(i.slice(0,c/8))}as.mnemonicToEntropy=cM;function z$(t,e){if(e=uM(e),t=(0,ui.arrayify)(t),t.length%4!==0||t.length<16||t.length>32)throw new Error("invalid entropy");for(var r=[0],i=11,n=0;n8?(r[r.length-1]<<=8,r[r.length-1]|=t[n],i-=8):(r[r.length-1]<<=i,r[r.length-1]|=t[n]>>8-i,r.push(t[n]&sNe(8-i)),i+=3);var a=t.length/4,s=(0,ui.arrayify)((0,Md.sha256)(t))[0]&V$(a);return r[r.length-1]<<=a,r[r.length-1]|=s>>8-a,e.join(r.map(function(o){return e.getWord(o)}))}as.entropyToMnemonic=z$;function uNe(t,e){try{return cM(t,e),!0}catch{}return!1}as.isValidMnemonic=uNe;function cNe(t){return(typeof t!="number"||t<0||t>=Lg||t%1)&&tb.throwArgumentError("invalid account index","index",t),"m/44'/60'/"+t+"'/0/0"}as.getAccountPath=cNe});var G$=x(B9=>{"use strict";Object.defineProperty(B9,"__esModule",{value:!0});B9.randomBytes=void 0;var dNe=require("crypto"),lNe=or();function fNe(t){return(0,lNe.arrayify)((0,dNe.randomBytes)(t))}B9.randomBytes=fNe});var J$=x(F9=>{"use strict";Object.defineProperty(F9,"__esModule",{value:!0});F9.shuffled=void 0;function pNe(t){t=t.slice();for(var e=t.length-1;e>0;e--){var r=Math.floor(Math.random()*(e+1)),i=t[e];t[e]=t[r],t[r]=i}return t}F9.shuffled=pNe});var rb=x(Ug=>{"use strict";Object.defineProperty(Ug,"__esModule",{value:!0});Ug.shuffled=Ug.randomBytes=void 0;var hNe=G$();Object.defineProperty(Ug,"randomBytes",{enumerable:!0,get:function(){return hNe.randomBytes}});var mNe=J$();Object.defineProperty(Ug,"shuffled",{enumerable:!0,get:function(){return mNe.shuffled}})});var lM=x((dM,X$)=>{"use strict";(function(t){function e(h){return parseInt(h)===h}function r(h){if(!e(h.length))return!1;for(var A=0;A255)return!1;return!0}function i(h,A){if(h.buffer&&ArrayBuffer.isView(h)&&h.name==="Uint8Array")return A&&(h.slice?h=h.slice():h=Array.prototype.slice.call(h)),h;if(Array.isArray(h)){if(!r(h))throw new Error("Array contains invalid value: "+h);return new Uint8Array(h)}if(e(h.length)&&r(h))return new Uint8Array(h);throw new Error("unsupported array-like object")}function n(h){return new Uint8Array(h)}function a(h,A,F,O,N){(O!=null||N!=null)&&(h.slice?h=h.slice(O,N):h=Array.prototype.slice.call(h,O,N)),A.set(h,F)}var s=function(){function h(F){var O=[],N=0;for(F=encodeURI(F);N191&&xe<224?(O.push(String.fromCharCode((xe&31)<<6|F[N+1]&63)),N+=2):(O.push(String.fromCharCode((xe&15)<<12|(F[N+1]&63)<<6|F[N+2]&63)),N+=3)}return O.join("")}return{toBytes:h,fromBytes:A}}(),o=function(){function h(O){for(var N=[],xe=0;xe>4]+A[q&15])}return N.join("")}return{toBytes:h,fromBytes:F}}(),c={16:10,24:12,32:14},u=[1,2,4,8,16,32,64,128,27,54,108,216,171,77,154,47,94,188,99,198,151,53,106,212,179,125,250,239,197,145],f=[99,124,119,123,242,107,111,197,48,1,103,43,254,215,171,118,202,130,201,125,250,89,71,240,173,212,162,175,156,164,114,192,183,253,147,38,54,63,247,204,52,165,229,241,113,216,49,21,4,199,35,195,24,150,5,154,7,18,128,226,235,39,178,117,9,131,44,26,27,110,90,160,82,59,214,179,41,227,47,132,83,209,0,237,32,252,177,91,106,203,190,57,74,76,88,207,208,239,170,251,67,77,51,133,69,249,2,127,80,60,159,168,81,163,64,143,146,157,56,245,188,182,218,33,16,255,243,210,205,12,19,236,95,151,68,23,196,167,126,61,100,93,25,115,96,129,79,220,34,42,144,136,70,238,184,20,222,94,11,219,224,50,58,10,73,6,36,92,194,211,172,98,145,149,228,121,231,200,55,109,141,213,78,169,108,86,244,234,101,122,174,8,186,120,37,46,28,166,180,198,232,221,116,31,75,189,139,138,112,62,181,102,72,3,246,14,97,53,87,185,134,193,29,158,225,248,152,17,105,217,142,148,155,30,135,233,206,85,40,223,140,161,137,13,191,230,66,104,65,153,45,15,176,84,187,22],d=[82,9,106,213,48,54,165,56,191,64,163,158,129,243,215,251,124,227,57,130,155,47,255,135,52,142,67,68,196,222,233,203,84,123,148,50,166,194,35,61,238,76,149,11,66,250,195,78,8,46,161,102,40,217,36,178,118,91,162,73,109,139,209,37,114,248,246,100,134,104,152,22,212,164,92,204,93,101,182,146,108,112,72,80,253,237,185,218,94,21,70,87,167,141,157,132,144,216,171,0,140,188,211,10,247,228,88,5,184,179,69,6,208,44,30,143,202,63,15,2,193,175,189,3,1,19,138,107,58,145,17,65,79,103,220,234,151,242,207,206,240,180,230,115,150,172,116,34,231,173,53,133,226,249,55,232,28,117,223,110,71,241,26,113,29,41,197,137,111,183,98,14,170,24,190,27,252,86,62,75,198,210,121,32,154,219,192,254,120,205,90,244,31,221,168,51,136,7,199,49,177,18,16,89,39,128,236,95,96,81,127,169,25,181,74,13,45,229,122,159,147,201,156,239,160,224,59,77,174,42,245,176,200,235,187,60,131,83,153,97,23,43,4,126,186,119,214,38,225,105,20,99,85,33,12,125],p=[3328402341,4168907908,4000806809,4135287693,4294111757,3597364157,3731845041,2445657428,1613770832,33620227,3462883241,1445669757,3892248089,3050821474,1303096294,3967186586,2412431941,528646813,2311702848,4202528135,4026202645,2992200171,2387036105,4226871307,1101901292,3017069671,1604494077,1169141738,597466303,1403299063,3832705686,2613100635,1974974402,3791519004,1033081774,1277568618,1815492186,2118074177,4126668546,2211236943,1748251740,1369810420,3521504564,4193382664,3799085459,2883115123,1647391059,706024767,134480908,2512897874,1176707941,2646852446,806885416,932615841,168101135,798661301,235341577,605164086,461406363,3756188221,3454790438,1311188841,2142417613,3933566367,302582043,495158174,1479289972,874125870,907746093,3698224818,3025820398,1537253627,2756858614,1983593293,3084310113,2108928974,1378429307,3722699582,1580150641,327451799,2790478837,3117535592,0,3253595436,1075847264,3825007647,2041688520,3059440621,3563743934,2378943302,1740553945,1916352843,2487896798,2555137236,2958579944,2244988746,3151024235,3320835882,1336584933,3992714006,2252555205,2588757463,1714631509,293963156,2319795663,3925473552,67240454,4269768577,2689618160,2017213508,631218106,1269344483,2723238387,1571005438,2151694528,93294474,1066570413,563977660,1882732616,4059428100,1673313503,2008463041,2950355573,1109467491,537923632,3858759450,4260623118,3218264685,2177748300,403442708,638784309,3287084079,3193921505,899127202,2286175436,773265209,2479146071,1437050866,4236148354,2050833735,3362022572,3126681063,840505643,3866325909,3227541664,427917720,2655997905,2749160575,1143087718,1412049534,999329963,193497219,2353415882,3354324521,1807268051,672404540,2816401017,3160301282,369822493,2916866934,3688947771,1681011286,1949973070,336202270,2454276571,201721354,1210328172,3093060836,2680341085,3184776046,1135389935,3294782118,965841320,831886756,3554993207,4068047243,3588745010,2345191491,1849112409,3664604599,26054028,2983581028,2622377682,1235855840,3630984372,2891339514,4092916743,3488279077,3395642799,4101667470,1202630377,268961816,1874508501,4034427016,1243948399,1546530418,941366308,1470539505,1941222599,2546386513,3421038627,2715671932,3899946140,1042226977,2521517021,1639824860,227249030,260737669,3765465232,2084453954,1907733956,3429263018,2420656344,100860677,4160157185,470683154,3261161891,1781871967,2924959737,1773779408,394692241,2579611992,974986535,664706745,3655459128,3958962195,731420851,571543859,3530123707,2849626480,126783113,865375399,765172662,1008606754,361203602,3387549984,2278477385,2857719295,1344809080,2782912378,59542671,1503764984,160008576,437062935,1707065306,3622233649,2218934982,3496503480,2185314755,697932208,1512910199,504303377,2075177163,2824099068,1841019862,739644986],b=[2781242211,2230877308,2582542199,2381740923,234877682,3184946027,2984144751,1418839493,1348481072,50462977,2848876391,2102799147,434634494,1656084439,3863849899,2599188086,1167051466,2636087938,1082771913,2281340285,368048890,3954334041,3381544775,201060592,3963727277,1739838676,4250903202,3930435503,3206782108,4149453988,2531553906,1536934080,3262494647,484572669,2923271059,1783375398,1517041206,1098792767,49674231,1334037708,1550332980,4098991525,886171109,150598129,2481090929,1940642008,1398944049,1059722517,201851908,1385547719,1699095331,1587397571,674240536,2704774806,252314885,3039795866,151914247,908333586,2602270848,1038082786,651029483,1766729511,3447698098,2682942837,454166793,2652734339,1951935532,775166490,758520603,3000790638,4004797018,4217086112,4137964114,1299594043,1639438038,3464344499,2068982057,1054729187,1901997871,2534638724,4121318227,1757008337,0,750906861,1614815264,535035132,3363418545,3988151131,3201591914,1183697867,3647454910,1265776953,3734260298,3566750796,3903871064,1250283471,1807470800,717615087,3847203498,384695291,3313910595,3617213773,1432761139,2484176261,3481945413,283769337,100925954,2180939647,4037038160,1148730428,3123027871,3813386408,4087501137,4267549603,3229630528,2315620239,2906624658,3156319645,1215313976,82966005,3747855548,3245848246,1974459098,1665278241,807407632,451280895,251524083,1841287890,1283575245,337120268,891687699,801369324,3787349855,2721421207,3431482436,959321879,1469301956,4065699751,2197585534,1199193405,2898814052,3887750493,724703513,2514908019,2696962144,2551808385,3516813135,2141445340,1715741218,2119445034,2872807568,2198571144,3398190662,700968686,3547052216,1009259540,2041044702,3803995742,487983883,1991105499,1004265696,1449407026,1316239930,504629770,3683797321,168560134,1816667172,3837287516,1570751170,1857934291,4014189740,2797888098,2822345105,2754712981,936633572,2347923833,852879335,1133234376,1500395319,3084545389,2348912013,1689376213,3533459022,3762923945,3034082412,4205598294,133428468,634383082,2949277029,2398386810,3913789102,403703816,3580869306,2297460856,1867130149,1918643758,607656988,4049053350,3346248884,1368901318,600565992,2090982877,2632479860,557719327,3717614411,3697393085,2249034635,2232388234,2430627952,1115438654,3295786421,2865522278,3633334344,84280067,33027830,303828494,2747425121,1600795957,4188952407,3496589753,2434238086,1486471617,658119965,3106381470,953803233,334231800,3005978776,857870609,3151128937,1890179545,2298973838,2805175444,3056442267,574365214,2450884487,550103529,1233637070,4289353045,2018519080,2057691103,2399374476,4166623649,2148108681,387583245,3664101311,836232934,3330556482,3100665960,3280093505,2955516313,2002398509,287182607,3413881008,4238890068,3597515707,975967766],T=[1671808611,2089089148,2006576759,2072901243,4061003762,1807603307,1873927791,3310653893,810573872,16974337,1739181671,729634347,4263110654,3613570519,2883997099,1989864566,3393556426,2191335298,3376449993,2106063485,4195741690,1508618841,1204391495,4027317232,2917941677,3563566036,2734514082,2951366063,2629772188,2767672228,1922491506,3227229120,3082974647,4246528509,2477669779,644500518,911895606,1061256767,4144166391,3427763148,878471220,2784252325,3845444069,4043897329,1905517169,3631459288,827548209,356461077,67897348,3344078279,593839651,3277757891,405286936,2527147926,84871685,2595565466,118033927,305538066,2157648768,3795705826,3945188843,661212711,2999812018,1973414517,152769033,2208177539,745822252,439235610,455947803,1857215598,1525593178,2700827552,1391895634,994932283,3596728278,3016654259,695947817,3812548067,795958831,2224493444,1408607827,3513301457,0,3979133421,543178784,4229948412,2982705585,1542305371,1790891114,3410398667,3201918910,961245753,1256100938,1289001036,1491644504,3477767631,3496721360,4012557807,2867154858,4212583931,1137018435,1305975373,861234739,2241073541,1171229253,4178635257,33948674,2139225727,1357946960,1011120188,2679776671,2833468328,1374921297,2751356323,1086357568,2408187279,2460827538,2646352285,944271416,4110742005,3168756668,3066132406,3665145818,560153121,271589392,4279952895,4077846003,3530407890,3444343245,202643468,322250259,3962553324,1608629855,2543990167,1154254916,389623319,3294073796,2817676711,2122513534,1028094525,1689045092,1575467613,422261273,1939203699,1621147744,2174228865,1339137615,3699352540,577127458,712922154,2427141008,2290289544,1187679302,3995715566,3100863416,339486740,3732514782,1591917662,186455563,3681988059,3762019296,844522546,978220090,169743370,1239126601,101321734,611076132,1558493276,3260915650,3547250131,2901361580,1655096418,2443721105,2510565781,3828863972,2039214713,3878868455,3359869896,928607799,1840765549,2374762893,3580146133,1322425422,2850048425,1823791212,1459268694,4094161908,3928346602,1706019429,2056189050,2934523822,135794696,3134549946,2022240376,628050469,779246638,472135708,2800834470,3032970164,3327236038,3894660072,3715932637,1956440180,522272287,1272813131,3185336765,2340818315,2323976074,1888542832,1044544574,3049550261,1722469478,1222152264,50660867,4127324150,236067854,1638122081,895445557,1475980887,3117443513,2257655686,3243809217,489110045,2662934430,3778599393,4162055160,2561878936,288563729,1773916777,3648039385,2391345038,2493985684,2612407707,505560094,2274497927,3911240169,3460925390,1442818645,678973480,3749357023,2358182796,2717407649,2306869641,219617805,3218761151,3862026214,1120306242,1756942440,1103331905,2578459033,762796589,252780047,2966125488,1425844308,3151392187,372911126],I=[1667474886,2088535288,2004326894,2071694838,4075949567,1802223062,1869591006,3318043793,808472672,16843522,1734846926,724270422,4278065639,3621216949,2880169549,1987484396,3402253711,2189597983,3385409673,2105378810,4210693615,1499065266,1195886990,4042263547,2913856577,3570689971,2728590687,2947541573,2627518243,2762274643,1920112356,3233831835,3082273397,4261223649,2475929149,640051788,909531756,1061110142,4160160501,3435941763,875846760,2779116625,3857003729,4059105529,1903268834,3638064043,825316194,353713962,67374088,3351728789,589522246,3284360861,404236336,2526454071,84217610,2593830191,117901582,303183396,2155911963,3806477791,3958056653,656894286,2998062463,1970642922,151591698,2206440989,741110872,437923380,454765878,1852748508,1515908788,2694904667,1381168804,993742198,3604373943,3014905469,690584402,3823320797,791638366,2223281939,1398011302,3520161977,0,3991743681,538992704,4244381667,2981218425,1532751286,1785380564,3419096717,3200178535,960056178,1246420628,1280103576,1482221744,3486468741,3503319995,4025428677,2863326543,4227536621,1128514950,1296947098,859002214,2240123921,1162203018,4193849577,33687044,2139062782,1347481760,1010582648,2678045221,2829640523,1364325282,2745433693,1077985408,2408548869,2459086143,2644360225,943212656,4126475505,3166494563,3065430391,3671750063,555836226,269496352,4294908645,4092792573,3537006015,3452783745,202118168,320025894,3974901699,1600119230,2543297077,1145359496,387397934,3301201811,2812801621,2122220284,1027426170,1684319432,1566435258,421079858,1936954854,1616945344,2172753945,1330631070,3705438115,572679748,707427924,2425400123,2290647819,1179044492,4008585671,3099120491,336870440,3739122087,1583276732,185277718,3688593069,3772791771,842159716,976899700,168435220,1229577106,101059084,606366792,1549591736,3267517855,3553849021,2897014595,1650632388,2442242105,2509612081,3840161747,2038008818,3890688725,3368567691,926374254,1835907034,2374863873,3587531953,1313788572,2846482505,1819063512,1448540844,4109633523,3941213647,1701162954,2054852340,2930698567,134748176,3132806511,2021165296,623210314,774795868,471606328,2795958615,3031746419,3334885783,3907527627,3722280097,1953799400,522133822,1263263126,3183336545,2341176845,2324333839,1886425312,1044267644,3048588401,1718004428,1212733584,50529542,4143317495,235803164,1633788866,892690282,1465383342,3115962473,2256965911,3250673817,488449850,2661202215,3789633753,4177007595,2560144171,286339874,1768537042,3654906025,2391705863,2492770099,2610673197,505291324,2273808917,3924369609,3469625735,1431699370,673740880,3755965093,2358021891,2711746649,2307489801,218961690,3217021541,3873845719,1111672452,1751693520,1094828930,2576986153,757954394,252645662,2964376443,1414855848,3149649517,370555436],L=[1374988112,2118214995,437757123,975658646,1001089995,530400753,2902087851,1273168787,540080725,2910219766,2295101073,4110568485,1340463100,3307916247,641025152,3043140495,3736164937,632953703,1172967064,1576976609,3274667266,2169303058,2370213795,1809054150,59727847,361929877,3211623147,2505202138,3569255213,1484005843,1239443753,2395588676,1975683434,4102977912,2572697195,666464733,3202437046,4035489047,3374361702,2110667444,1675577880,3843699074,2538681184,1649639237,2976151520,3144396420,4269907996,4178062228,1883793496,2403728665,2497604743,1383856311,2876494627,1917518562,3810496343,1716890410,3001755655,800440835,2261089178,3543599269,807962610,599762354,33778362,3977675356,2328828971,2809771154,4077384432,1315562145,1708848333,101039829,3509871135,3299278474,875451293,2733856160,92987698,2767645557,193195065,1080094634,1584504582,3178106961,1042385657,2531067453,3711829422,1306967366,2438237621,1908694277,67556463,1615861247,429456164,3602770327,2302690252,1742315127,2968011453,126454664,3877198648,2043211483,2709260871,2084704233,4169408201,0,159417987,841739592,504459436,1817866830,4245618683,260388950,1034867998,908933415,168810852,1750902305,2606453969,607530554,202008497,2472011535,3035535058,463180190,2160117071,1641816226,1517767529,470948374,3801332234,3231722213,1008918595,303765277,235474187,4069246893,766945465,337553864,1475418501,2943682380,4003061179,2743034109,4144047775,1551037884,1147550661,1543208500,2336434550,3408119516,3069049960,3102011747,3610369226,1113818384,328671808,2227573024,2236228733,3535486456,2935566865,3341394285,496906059,3702665459,226906860,2009195472,733156972,2842737049,294930682,1206477858,2835123396,2700099354,1451044056,573804783,2269728455,3644379585,2362090238,2564033334,2801107407,2776292904,3669462566,1068351396,742039012,1350078989,1784663195,1417561698,4136440770,2430122216,775550814,2193862645,2673705150,1775276924,1876241833,3475313331,3366754619,270040487,3902563182,3678124923,3441850377,1851332852,3969562369,2203032232,3868552805,2868897406,566021896,4011190502,3135740889,1248802510,3936291284,699432150,832877231,708780849,3332740144,899835584,1951317047,4236429990,3767586992,866637845,4043610186,1106041591,2144161806,395441711,1984812685,1139781709,3433712980,3835036895,2664543715,1282050075,3240894392,1181045119,2640243204,25965917,4203181171,4211818798,3009879386,2463879762,3910161971,1842759443,2597806476,933301370,1509430414,3943906441,3467192302,3076639029,3776767469,2051518780,2631065433,1441952575,404016761,1942435775,1408749034,1610459739,3745345300,2017778566,3400528769,3110650942,941896748,3265478751,371049330,3168937228,675039627,4279080257,967311729,135050206,3635733660,1683407248,2076935265,3576870512,1215061108,3501741890],U=[1347548327,1400783205,3273267108,2520393566,3409685355,4045380933,2880240216,2471224067,1428173050,4138563181,2441661558,636813900,4233094615,3620022987,2149987652,2411029155,1239331162,1730525723,2554718734,3781033664,46346101,310463728,2743944855,3328955385,3875770207,2501218972,3955191162,3667219033,768917123,3545789473,692707433,1150208456,1786102409,2029293177,1805211710,3710368113,3065962831,401639597,1724457132,3028143674,409198410,2196052529,1620529459,1164071807,3769721975,2226875310,486441376,2499348523,1483753576,428819965,2274680428,3075636216,598438867,3799141122,1474502543,711349675,129166120,53458370,2592523643,2782082824,4063242375,2988687269,3120694122,1559041666,730517276,2460449204,4042459122,2706270690,3446004468,3573941694,533804130,2328143614,2637442643,2695033685,839224033,1973745387,957055980,2856345839,106852767,1371368976,4181598602,1033297158,2933734917,1179510461,3046200461,91341917,1862534868,4284502037,605657339,2547432937,3431546947,2003294622,3182487618,2282195339,954669403,3682191598,1201765386,3917234703,3388507166,0,2198438022,1211247597,2887651696,1315723890,4227665663,1443857720,507358933,657861945,1678381017,560487590,3516619604,975451694,2970356327,261314535,3535072918,2652609425,1333838021,2724322336,1767536459,370938394,182621114,3854606378,1128014560,487725847,185469197,2918353863,3106780840,3356761769,2237133081,1286567175,3152976349,4255350624,2683765030,3160175349,3309594171,878443390,1988838185,3704300486,1756818940,1673061617,3403100636,272786309,1075025698,545572369,2105887268,4174560061,296679730,1841768865,1260232239,4091327024,3960309330,3497509347,1814803222,2578018489,4195456072,575138148,3299409036,446754879,3629546796,4011996048,3347532110,3252238545,4270639778,915985419,3483825537,681933534,651868046,2755636671,3828103837,223377554,2607439820,1649704518,3270937875,3901806776,1580087799,4118987695,3198115200,2087309459,2842678573,3016697106,1003007129,2802849917,1860738147,2077965243,164439672,4100872472,32283319,2827177882,1709610350,2125135846,136428751,3874428392,3652904859,3460984630,3572145929,3593056380,2939266226,824852259,818324884,3224740454,930369212,2801566410,2967507152,355706840,1257309336,4148292826,243256656,790073846,2373340630,1296297904,1422699085,3756299780,3818836405,457992840,3099667487,2135319889,77422314,1560382517,1945798516,788204353,1521706781,1385356242,870912086,325965383,2358957921,2050466060,2388260884,2313884476,4006521127,901210569,3990953189,1014646705,1503449823,1062597235,2031621326,3212035895,3931371469,1533017514,350174575,2256028891,2177544179,1052338372,741876788,1606591296,1914052035,213705253,2334669897,1107234197,1899603969,3725069491,2631447780,2422494913,1635502980,1893020342,1950903388,1120974935],re=[2807058932,1699970625,2764249623,1586903591,1808481195,1173430173,1487645946,59984867,4199882800,1844882806,1989249228,1277555970,3623636965,3419915562,1149249077,2744104290,1514790577,459744698,244860394,3235995134,1963115311,4027744588,2544078150,4190530515,1608975247,2627016082,2062270317,1507497298,2200818878,567498868,1764313568,3359936201,2305455554,2037970062,1047239e3,1910319033,1337376481,2904027272,2892417312,984907214,1243112415,830661914,861968209,2135253587,2011214180,2927934315,2686254721,731183368,1750626376,4246310725,1820824798,4172763771,3542330227,48394827,2404901663,2871682645,671593195,3254988725,2073724613,145085239,2280796200,2779915199,1790575107,2187128086,472615631,3029510009,4075877127,3802222185,4107101658,3201631749,1646252340,4270507174,1402811438,1436590835,3778151818,3950355702,3963161475,4020912224,2667994737,273792366,2331590177,104699613,95345982,3175501286,2377486676,1560637892,3564045318,369057872,4213447064,3919042237,1137477952,2658625497,1119727848,2340947849,1530455833,4007360968,172466556,266959938,516552836,0,2256734592,3980931627,1890328081,1917742170,4294704398,945164165,3575528878,958871085,3647212047,2787207260,1423022939,775562294,1739656202,3876557655,2530391278,2443058075,3310321856,547512796,1265195639,437656594,3121275539,719700128,3762502690,387781147,218828297,3350065803,2830708150,2848461854,428169201,122466165,3720081049,1627235199,648017665,4122762354,1002783846,2117360635,695634755,3336358691,4234721005,4049844452,3704280881,2232435299,574624663,287343814,612205898,1039717051,840019705,2708326185,793451934,821288114,1391201670,3822090177,376187827,3113855344,1224348052,1679968233,2361698556,1058709744,752375421,2431590963,1321699145,3519142200,2734591178,188127444,2177869557,3727205754,2384911031,3215212461,2648976442,2450346104,3432737375,1180849278,331544205,3102249176,4150144569,2952102595,2159976285,2474404304,766078933,313773861,2570832044,2108100632,1668212892,3145456443,2013908262,418672217,3070356634,2594734927,1852171925,3867060991,3473416636,3907448597,2614737639,919489135,164948639,2094410160,2997825956,590424639,2486224549,1723872674,3157750862,3399941250,3501252752,3625268135,2555048196,3673637356,1343127501,4130281361,3599595085,2957853679,1297403050,81781910,3051593425,2283490410,532201772,1367295589,3926170974,895287692,1953757831,1093597963,492483431,3528626907,1446242576,1192455638,1636604631,209336225,344873464,1015671571,669961897,3375740769,3857572124,2973530695,3747192018,1933530610,3464042516,935293895,3454686199,2858115069,1863638845,3683022916,4085369519,3292445032,875313188,1080017571,3279033885,621591778,1233856572,2504130317,24197544,3017672716,3835484340,3247465558,2220981195,3060847922,1551124588,1463996600],oe=[4104605777,1097159550,396673818,660510266,2875968315,2638606623,4200115116,3808662347,821712160,1986918061,3430322568,38544885,3856137295,718002117,893681702,1654886325,2975484382,3122358053,3926825029,4274053469,796197571,1290801793,1184342925,3556361835,2405426947,2459735317,1836772287,1381620373,3196267988,1948373848,3764988233,3385345166,3263785589,2390325492,1480485785,3111247143,3780097726,2293045232,548169417,3459953789,3746175075,439452389,1362321559,1400849762,1685577905,1806599355,2174754046,137073913,1214797936,1174215055,3731654548,2079897426,1943217067,1258480242,529487843,1437280870,3945269170,3049390895,3313212038,923313619,679998e3,3215307299,57326082,377642221,3474729866,2041877159,133361907,1776460110,3673476453,96392454,878845905,2801699524,777231668,4082475170,2330014213,4142626212,2213296395,1626319424,1906247262,1846563261,562755902,3708173718,1040559837,3871163981,1418573201,3294430577,114585348,1343618912,2566595609,3186202582,1078185097,3651041127,3896688048,2307622919,425408743,3371096953,2081048481,1108339068,2216610296,0,2156299017,736970802,292596766,1517440620,251657213,2235061775,2933202493,758720310,265905162,1554391400,1532285339,908999204,174567692,1474760595,4002861748,2610011675,3234156416,3693126241,2001430874,303699484,2478443234,2687165888,585122620,454499602,151849742,2345119218,3064510765,514443284,4044981591,1963412655,2581445614,2137062819,19308535,1928707164,1715193156,4219352155,1126790795,600235211,3992742070,3841024952,836553431,1669664834,2535604243,3323011204,1243905413,3141400786,4180808110,698445255,2653899549,2989552604,2253581325,3252932727,3004591147,1891211689,2487810577,3915653703,4237083816,4030667424,2100090966,865136418,1229899655,953270745,3399679628,3557504664,4118925222,2061379749,3079546586,2915017791,983426092,2022837584,1607244650,2118541908,2366882550,3635996816,972512814,3283088770,1568718495,3499326569,3576539503,621982671,2895723464,410887952,2623762152,1002142683,645401037,1494807662,2595684844,1335535747,2507040230,4293295786,3167684641,367585007,3885750714,1865862730,2668221674,2960971305,2763173681,1059270954,2777952454,2724642869,1320957812,2194319100,2429595872,2815956275,77089521,3973773121,3444575871,2448830231,1305906550,4021308739,2857194700,2516901860,3518358430,1787304780,740276417,1699839814,1592394909,2352307457,2272556026,188821243,1729977011,3687994002,274084841,3594982253,3613494426,2701949495,4162096729,322734571,2837966542,1640576439,484830689,1202797690,3537852828,4067639125,349075736,3342319475,4157467219,4255800159,1030690015,1155237496,2951971274,1757691577,607398968,2738905026,499347990,3794078908,1011452712,227885567,2818666809,213114376,3034881240,1455525988,3414450555,850817237,1817998408,3092726480],ge=[0,235474187,470948374,303765277,941896748,908933415,607530554,708780849,1883793496,2118214995,1817866830,1649639237,1215061108,1181045119,1417561698,1517767529,3767586992,4003061179,4236429990,4069246893,3635733660,3602770327,3299278474,3400528769,2430122216,2664543715,2362090238,2193862645,2835123396,2801107407,3035535058,3135740889,3678124923,3576870512,3341394285,3374361702,3810496343,3977675356,4279080257,4043610186,2876494627,2776292904,3076639029,3110650942,2472011535,2640243204,2403728665,2169303058,1001089995,899835584,666464733,699432150,59727847,226906860,530400753,294930682,1273168787,1172967064,1475418501,1509430414,1942435775,2110667444,1876241833,1641816226,2910219766,2743034109,2976151520,3211623147,2505202138,2606453969,2302690252,2269728455,3711829422,3543599269,3240894392,3475313331,3843699074,3943906441,4178062228,4144047775,1306967366,1139781709,1374988112,1610459739,1975683434,2076935265,1775276924,1742315127,1034867998,866637845,566021896,800440835,92987698,193195065,429456164,395441711,1984812685,2017778566,1784663195,1683407248,1315562145,1080094634,1383856311,1551037884,101039829,135050206,437757123,337553864,1042385657,807962610,573804783,742039012,2531067453,2564033334,2328828971,2227573024,2935566865,2700099354,3001755655,3168937228,3868552805,3902563182,4203181171,4102977912,3736164937,3501741890,3265478751,3433712980,1106041591,1340463100,1576976609,1408749034,2043211483,2009195472,1708848333,1809054150,832877231,1068351396,766945465,599762354,159417987,126454664,361929877,463180190,2709260871,2943682380,3178106961,3009879386,2572697195,2538681184,2236228733,2336434550,3509871135,3745345300,3441850377,3274667266,3910161971,3877198648,4110568485,4211818798,2597806476,2497604743,2261089178,2295101073,2733856160,2902087851,3202437046,2968011453,3936291284,3835036895,4136440770,4169408201,3535486456,3702665459,3467192302,3231722213,2051518780,1951317047,1716890410,1750902305,1113818384,1282050075,1584504582,1350078989,168810852,67556463,371049330,404016761,841739592,1008918595,775550814,540080725,3969562369,3801332234,4035489047,4269907996,3569255213,3669462566,3366754619,3332740144,2631065433,2463879762,2160117071,2395588676,2767645557,2868897406,3102011747,3069049960,202008497,33778362,270040487,504459436,875451293,975658646,675039627,641025152,2084704233,1917518562,1615861247,1851332852,1147550661,1248802510,1484005843,1451044056,933301370,967311729,733156972,632953703,260388950,25965917,328671808,496906059,1206477858,1239443753,1543208500,1441952575,2144161806,1908694277,1675577880,1842759443,3610369226,3644379585,3408119516,3307916247,4011190502,3776767469,4077384432,4245618683,2809771154,2842737049,3144396420,3043140495,2673705150,2438237621,2203032232,2370213795],be=[0,185469197,370938394,487725847,741876788,657861945,975451694,824852259,1483753576,1400783205,1315723890,1164071807,1950903388,2135319889,1649704518,1767536459,2967507152,3152976349,2801566410,2918353863,2631447780,2547432937,2328143614,2177544179,3901806776,3818836405,4270639778,4118987695,3299409036,3483825537,3535072918,3652904859,2077965243,1893020342,1841768865,1724457132,1474502543,1559041666,1107234197,1257309336,598438867,681933534,901210569,1052338372,261314535,77422314,428819965,310463728,3409685355,3224740454,3710368113,3593056380,3875770207,3960309330,4045380933,4195456072,2471224067,2554718734,2237133081,2388260884,3212035895,3028143674,2842678573,2724322336,4138563181,4255350624,3769721975,3955191162,3667219033,3516619604,3431546947,3347532110,2933734917,2782082824,3099667487,3016697106,2196052529,2313884476,2499348523,2683765030,1179510461,1296297904,1347548327,1533017514,1786102409,1635502980,2087309459,2003294622,507358933,355706840,136428751,53458370,839224033,957055980,605657339,790073846,2373340630,2256028891,2607439820,2422494913,2706270690,2856345839,3075636216,3160175349,3573941694,3725069491,3273267108,3356761769,4181598602,4063242375,4011996048,3828103837,1033297158,915985419,730517276,545572369,296679730,446754879,129166120,213705253,1709610350,1860738147,1945798516,2029293177,1239331162,1120974935,1606591296,1422699085,4148292826,4233094615,3781033664,3931371469,3682191598,3497509347,3446004468,3328955385,2939266226,2755636671,3106780840,2988687269,2198438022,2282195339,2501218972,2652609425,1201765386,1286567175,1371368976,1521706781,1805211710,1620529459,2105887268,1988838185,533804130,350174575,164439672,46346101,870912086,954669403,636813900,788204353,2358957921,2274680428,2592523643,2441661558,2695033685,2880240216,3065962831,3182487618,3572145929,3756299780,3270937875,3388507166,4174560061,4091327024,4006521127,3854606378,1014646705,930369212,711349675,560487590,272786309,457992840,106852767,223377554,1678381017,1862534868,1914052035,2031621326,1211247597,1128014560,1580087799,1428173050,32283319,182621114,401639597,486441376,768917123,651868046,1003007129,818324884,1503449823,1385356242,1333838021,1150208456,1973745387,2125135846,1673061617,1756818940,2970356327,3120694122,2802849917,2887651696,2637442643,2520393566,2334669897,2149987652,3917234703,3799141122,4284502037,4100872472,3309594171,3460984630,3545789473,3629546796,2050466060,1899603969,1814803222,1730525723,1443857720,1560382517,1075025698,1260232239,575138148,692707433,878443390,1062597235,243256656,91341917,409198410,325965383,3403100636,3252238545,3704300486,3620022987,3874428392,3990953189,4042459122,4227665663,2460449204,2578018489,2226875310,2411029155,3198115200,3046200461,2827177882,2743944855],ce=[0,218828297,437656594,387781147,875313188,958871085,775562294,590424639,1750626376,1699970625,1917742170,2135253587,1551124588,1367295589,1180849278,1265195639,3501252752,3720081049,3399941250,3350065803,3835484340,3919042237,4270507174,4085369519,3102249176,3051593425,2734591178,2952102595,2361698556,2177869557,2530391278,2614737639,3145456443,3060847922,2708326185,2892417312,2404901663,2187128086,2504130317,2555048196,3542330227,3727205754,3375740769,3292445032,3876557655,3926170974,4246310725,4027744588,1808481195,1723872674,1910319033,2094410160,1608975247,1391201670,1173430173,1224348052,59984867,244860394,428169201,344873464,935293895,984907214,766078933,547512796,1844882806,1627235199,2011214180,2062270317,1507497298,1423022939,1137477952,1321699145,95345982,145085239,532201772,313773861,830661914,1015671571,731183368,648017665,3175501286,2957853679,2807058932,2858115069,2305455554,2220981195,2474404304,2658625497,3575528878,3625268135,3473416636,3254988725,3778151818,3963161475,4213447064,4130281361,3599595085,3683022916,3432737375,3247465558,3802222185,4020912224,4172763771,4122762354,3201631749,3017672716,2764249623,2848461854,2331590177,2280796200,2431590963,2648976442,104699613,188127444,472615631,287343814,840019705,1058709744,671593195,621591778,1852171925,1668212892,1953757831,2037970062,1514790577,1463996600,1080017571,1297403050,3673637356,3623636965,3235995134,3454686199,4007360968,3822090177,4107101658,4190530515,2997825956,3215212461,2830708150,2779915199,2256734592,2340947849,2627016082,2443058075,172466556,122466165,273792366,492483431,1047239e3,861968209,612205898,695634755,1646252340,1863638845,2013908262,1963115311,1446242576,1530455833,1277555970,1093597963,1636604631,1820824798,2073724613,1989249228,1436590835,1487645946,1337376481,1119727848,164948639,81781910,331544205,516552836,1039717051,821288114,669961897,719700128,2973530695,3157750862,2871682645,2787207260,2232435299,2283490410,2667994737,2450346104,3647212047,3564045318,3279033885,3464042516,3980931627,3762502690,4150144569,4199882800,3070356634,3121275539,2904027272,2686254721,2200818878,2384911031,2570832044,2486224549,3747192018,3528626907,3310321856,3359936201,3950355702,3867060991,4049844452,4234721005,1739656202,1790575107,2108100632,1890328081,1402811438,1586903591,1233856572,1149249077,266959938,48394827,369057872,418672217,1002783846,919489135,567498868,752375421,209336225,24197544,376187827,459744698,945164165,895287692,574624663,793451934,1679968233,1764313568,2117360635,1933530610,1343127501,1560637892,1243112415,1192455638,3704280881,3519142200,3336358691,3419915562,3907448597,3857572124,4075877127,4294704398,3029510009,3113855344,2927934315,2744104290,2159976285,2377486676,2594734927,2544078150],me=[0,151849742,303699484,454499602,607398968,758720310,908999204,1059270954,1214797936,1097159550,1517440620,1400849762,1817998408,1699839814,2118541908,2001430874,2429595872,2581445614,2194319100,2345119218,3034881240,3186202582,2801699524,2951971274,3635996816,3518358430,3399679628,3283088770,4237083816,4118925222,4002861748,3885750714,1002142683,850817237,698445255,548169417,529487843,377642221,227885567,77089521,1943217067,2061379749,1640576439,1757691577,1474760595,1592394909,1174215055,1290801793,2875968315,2724642869,3111247143,2960971305,2405426947,2253581325,2638606623,2487810577,3808662347,3926825029,4044981591,4162096729,3342319475,3459953789,3576539503,3693126241,1986918061,2137062819,1685577905,1836772287,1381620373,1532285339,1078185097,1229899655,1040559837,923313619,740276417,621982671,439452389,322734571,137073913,19308535,3871163981,4021308739,4104605777,4255800159,3263785589,3414450555,3499326569,3651041127,2933202493,2815956275,3167684641,3049390895,2330014213,2213296395,2566595609,2448830231,1305906550,1155237496,1607244650,1455525988,1776460110,1626319424,2079897426,1928707164,96392454,213114376,396673818,514443284,562755902,679998e3,865136418,983426092,3708173718,3557504664,3474729866,3323011204,4180808110,4030667424,3945269170,3794078908,2507040230,2623762152,2272556026,2390325492,2975484382,3092726480,2738905026,2857194700,3973773121,3856137295,4274053469,4157467219,3371096953,3252932727,3673476453,3556361835,2763173681,2915017791,3064510765,3215307299,2156299017,2307622919,2459735317,2610011675,2081048481,1963412655,1846563261,1729977011,1480485785,1362321559,1243905413,1126790795,878845905,1030690015,645401037,796197571,274084841,425408743,38544885,188821243,3613494426,3731654548,3313212038,3430322568,4082475170,4200115116,3780097726,3896688048,2668221674,2516901860,2366882550,2216610296,3141400786,2989552604,2837966542,2687165888,1202797690,1320957812,1437280870,1554391400,1669664834,1787304780,1906247262,2022837584,265905162,114585348,499347990,349075736,736970802,585122620,972512814,821712160,2595684844,2478443234,2293045232,2174754046,3196267988,3079546586,2895723464,2777952454,3537852828,3687994002,3234156416,3385345166,4142626212,4293295786,3841024952,3992742070,174567692,57326082,410887952,292596766,777231668,660510266,1011452712,893681702,1108339068,1258480242,1343618912,1494807662,1715193156,1865862730,1948373848,2100090966,2701949495,2818666809,3004591147,3122358053,2235061775,2352307457,2535604243,2653899549,3915653703,3764988233,4219352155,4067639125,3444575871,3294430577,3746175075,3594982253,836553431,953270745,600235211,718002117,367585007,484830689,133361907,251657213,2041877159,1891211689,1806599355,1654886325,1568718495,1418573201,1335535747,1184342925];function ne(h){for(var A=[],F=0;F>2,this._Ke[xe][A%4]=N[A],this._Kd[h-xe][A%4]=N[A];for(var q=0,fe=O,Te;fe>16&255]<<24^f[Te>>8&255]<<16^f[Te&255]<<8^f[Te>>24&255]^u[q]<<24,q+=1,O!=8)for(var A=1;A>8&255]<<8^f[Te>>16&255]<<16^f[Te>>24&255]<<24;for(var A=O/2+1;A>2,H=fe%4,this._Ke[_e][H]=N[A],this._Kd[h-_e][H]=N[A++],fe++}for(var _e=1;_e>24&255]^be[Te>>16&255]^ce[Te>>8&255]^me[Te&255]},ee.prototype.encrypt=function(h){if(h.length!=16)throw new Error("invalid plaintext size (must be 16 bytes)");for(var A=this._Ke.length-1,F=[0,0,0,0],O=ne(h),N=0;N<4;N++)O[N]^=this._Ke[0][N];for(var xe=1;xe>24&255]^b[O[(N+1)%4]>>16&255]^T[O[(N+2)%4]>>8&255]^I[O[(N+3)%4]&255]^this._Ke[xe][N];O=F.slice()}for(var q=n(16),fe,N=0;N<4;N++)fe=this._Ke[A][N],q[4*N]=(f[O[N]>>24&255]^fe>>24)&255,q[4*N+1]=(f[O[(N+1)%4]>>16&255]^fe>>16)&255,q[4*N+2]=(f[O[(N+2)%4]>>8&255]^fe>>8)&255,q[4*N+3]=(f[O[(N+3)%4]&255]^fe)&255;return q},ee.prototype.decrypt=function(h){if(h.length!=16)throw new Error("invalid ciphertext size (must be 16 bytes)");for(var A=this._Kd.length-1,F=[0,0,0,0],O=ne(h),N=0;N<4;N++)O[N]^=this._Kd[0][N];for(var xe=1;xe>24&255]^U[O[(N+3)%4]>>16&255]^re[O[(N+2)%4]>>8&255]^oe[O[(N+1)%4]&255]^this._Kd[xe][N];O=F.slice()}for(var q=n(16),fe,N=0;N<4;N++)fe=this._Kd[A][N],q[4*N]=(d[O[N]>>24&255]^fe>>24)&255,q[4*N+1]=(d[O[(N+3)%4]>>16&255]^fe>>16)&255,q[4*N+2]=(d[O[(N+2)%4]>>8&255]^fe>>8)&255,q[4*N+3]=(d[O[(N+1)%4]&255]^fe)&255;return q};var R=function(h){if(!(this instanceof R))throw Error("AES must be instanitated with `new`");this.description="Electronic Code Block",this.name="ecb",this._aes=new ee(h)};R.prototype.encrypt=function(h){if(h=i(h),h.length%16!==0)throw new Error("invalid plaintext size (must be multiple of 16 bytes)");for(var A=n(h.length),F=n(16),O=0;O=0;--A)this._counter[A]=h%256,h=h>>8},y.prototype.setBytes=function(h){if(h=i(h,!0),h.length!=16)throw new Error("invalid counter bytes size (must be 16 bytes)");this._counter=h},y.prototype.increment=function(){for(var h=15;h>=0;h--)if(this._counter[h]===255)this._counter[h]=0;else{this._counter[h]++;break}};var _=function(h,A){if(!(this instanceof _))throw Error("AES must be instanitated with `new`");this.description="Counter",this.name="ctr",A instanceof y||(A=new y(A)),this._counter=A,this._remainingCounter=null,this._remainingCounterIndex=16,this._aes=new ee(h)};_.prototype.encrypt=function(h){for(var A=i(h,!0),F=0;F16)throw new Error("PKCS#7 padding byte out of range");for(var F=h.length-A,O=0;O{"use strict";Object.defineProperty(D9,"__esModule",{value:!0});D9.version=void 0;D9.version="json-wallets/5.7.0"});var pM=x(bu=>{"use strict";Object.defineProperty(bu,"__esModule",{value:!0});bu.uuidV4=bu.searchPath=bu.getPassword=bu.zpad=bu.looseArrayify=void 0;var q9=or(),K$=Cn();function gNe(t){return typeof t=="string"&&t.substring(0,2)!=="0x"&&(t="0x"+t),(0,q9.arrayify)(t)}bu.looseArrayify=gNe;function yNe(t,e){for(t=String(t);t.length{"use strict";var wNe=Cd&&Cd.__extends||function(){var t=function(e,r){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var a in n)Object.prototype.hasOwnProperty.call(n,a)&&(i[a]=n[a])},t(e,r)};return function(e,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");t(e,r);function i(){this.constructor=e}e.prototype=r===null?Object.create(r):(i.prototype=r.prototype,new i)}}(),xNe=Cd&&Cd.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Cd,"__esModule",{value:!0});Cd.decrypt=Cd.CrowdsaleAccount=void 0;var W$=xNe(lM()),SNe=cu(),Z$=or(),ENe=Oo(),TNe=x9(),ANe=Cn(),PNe=Xr(),ONe=Ht(),RNe=fM(),MNe=new ONe.Logger(RNe.version),L9=pM(),$$=function(t){wNe(e,t);function e(){return t!==null&&t.apply(this,arguments)||this}return e.prototype.isCrowdsaleAccount=function(r){return!!(r&&r._isCrowdsaleAccount)},e}(PNe.Description);Cd.CrowdsaleAccount=$$;function CNe(t,e){var r=JSON.parse(t);e=(0,L9.getPassword)(e);var i=(0,SNe.getAddress)((0,L9.searchPath)(r,"ethaddr")),n=(0,L9.looseArrayify)((0,L9.searchPath)(r,"encseed"));(!n||n.length%16!==0)&&MNe.throwArgumentError("invalid encseed","json",t);for(var a=(0,Z$.arrayify)((0,TNe.pbkdf2)(e,e,2e3,32,"sha256")).slice(0,16),s=n.slice(0,16),o=n.slice(16),c=new W$.default.ModeOfOperation.cbc(a,s),u=W$.default.padding.pkcs7.strip((0,Z$.arrayify)(c.decrypt(o))),f="",d=0;d{"use strict";Object.defineProperty(C0,"__esModule",{value:!0});C0.getJsonWalletAddress=C0.isKeystoreWallet=C0.isCrowdsaleWallet=void 0;var Y$=cu();function eQ(t){var e=null;try{e=JSON.parse(t)}catch{return!1}return e.encseed&&e.ethaddr}C0.isCrowdsaleWallet=eQ;function tQ(t){var e=null;try{e=JSON.parse(t)}catch{return!1}return!(!e.version||parseInt(e.version)!==e.version||parseInt(e.version)!==3)}C0.isKeystoreWallet=tQ;function INe(t){if(eQ(t))try{return(0,Y$.getAddress)(JSON.parse(t).ethaddr)}catch{return null}if(tQ(t))try{return(0,Y$.getAddress)(JSON.parse(t).address)}catch{return null}return null}C0.getJsonWalletAddress=INe});var nQ=x((hM,iQ)=>{"use strict";(function(t){function r(b){let T=new Uint32Array([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]),I=1779033703,L=3144134277,U=1013904242,re=2773480762,oe=1359893119,ge=2600822924,be=528734635,ce=1541459225,me=new Uint32Array(64);function ne(_){let P=0,M=_.length;for(;M>=64;){let E=I,h=L,A=U,F=re,O=oe,N=ge,xe=be,q=ce,fe,Te,_e,H,Y;for(Te=0;Te<16;Te++)_e=P+Te*4,me[Te]=(_[_e]&255)<<24|(_[_e+1]&255)<<16|(_[_e+2]&255)<<8|_[_e+3]&255;for(Te=16;Te<64;Te++)fe=me[Te-2],H=(fe>>>17|fe<<32-17)^(fe>>>19|fe<<32-19)^fe>>>10,fe=me[Te-15],Y=(fe>>>7|fe<<32-7)^(fe>>>18|fe<<32-18)^fe>>>3,me[Te]=(H+me[Te-7]|0)+(Y+me[Te-16]|0)|0;for(Te=0;Te<64;Te++)H=(((O>>>6|O<<32-6)^(O>>>11|O<<32-11)^(O>>>25|O<<32-25))+(O&N^~O&xe)|0)+(q+(T[Te]+me[Te]|0)|0)|0,Y=((E>>>2|E<<32-2)^(E>>>13|E<<32-13)^(E>>>22|E<<32-22))+(E&h^E&A^h&A)|0,q=xe,xe=N,N=O,O=F+H|0,F=A,A=h,h=E,E=H+Y|0;I=I+E|0,L=L+h|0,U=U+A|0,re=re+F|0,oe=oe+O|0,ge=ge+N|0,be=be+xe|0,ce=ce+q|0,P+=64,M-=64}}ne(b);let ee,R=b.length%64,g=b.length/536870912|0,v=b.length<<3,w=R<56?56:120,y=b.slice(b.length-R,b.length);for(y.push(128),ee=R+1;ee>>24&255),y.push(g>>>16&255),y.push(g>>>8&255),y.push(g>>>0&255),y.push(v>>>24&255),y.push(v>>>16&255),y.push(v>>>8&255),y.push(v>>>0&255),ne(y),[I>>>24&255,I>>>16&255,I>>>8&255,I>>>0&255,L>>>24&255,L>>>16&255,L>>>8&255,L>>>0&255,U>>>24&255,U>>>16&255,U>>>8&255,U>>>0&255,re>>>24&255,re>>>16&255,re>>>8&255,re>>>0&255,oe>>>24&255,oe>>>16&255,oe>>>8&255,oe>>>0&255,ge>>>24&255,ge>>>16&255,ge>>>8&255,ge>>>0&255,be>>>24&255,be>>>16&255,be>>>8&255,be>>>0&255,ce>>>24&255,ce>>>16&255,ce>>>8&255,ce>>>0&255]}function i(b,T,I){b=b.length<=64?b:r(b);let L=64+T.length+4,U=new Array(L),re=new Array(64),oe,ge=[];for(oe=0;oe<64;oe++)U[oe]=54;for(oe=0;oe=L-4;ce--){if(U[ce]++,U[ce]<=255)return;U[ce]=0}}for(;I>=32;)be(),ge=ge.concat(r(re.concat(r(U)))),I-=32;return I>0&&(be(),ge=ge.concat(r(re.concat(r(U))).slice(0,I))),ge}function n(b,T,I,L,U){let re;for(c(b,(2*I-1)*16,U,0,16),re=0;re<2*I;re++)o(b,re*16,U,16),s(U,L),c(U,0,b,T+re*16,16);for(re=0;re>>32-T}function s(b,T){c(b,0,T,0,16);for(let I=8;I>0;I-=2)T[4]^=a(T[0]+T[12],7),T[8]^=a(T[4]+T[0],9),T[12]^=a(T[8]+T[4],13),T[0]^=a(T[12]+T[8],18),T[9]^=a(T[5]+T[1],7),T[13]^=a(T[9]+T[5],9),T[1]^=a(T[13]+T[9],13),T[5]^=a(T[1]+T[13],18),T[14]^=a(T[10]+T[6],7),T[2]^=a(T[14]+T[10],9),T[6]^=a(T[2]+T[14],13),T[10]^=a(T[6]+T[2],18),T[3]^=a(T[15]+T[11],7),T[7]^=a(T[3]+T[15],9),T[11]^=a(T[7]+T[3],13),T[15]^=a(T[11]+T[7],18),T[1]^=a(T[0]+T[3],7),T[2]^=a(T[1]+T[0],9),T[3]^=a(T[2]+T[1],13),T[0]^=a(T[3]+T[2],18),T[6]^=a(T[5]+T[4],7),T[7]^=a(T[6]+T[5],9),T[4]^=a(T[7]+T[6],13),T[5]^=a(T[4]+T[7],18),T[11]^=a(T[10]+T[9],7),T[8]^=a(T[11]+T[10],9),T[9]^=a(T[8]+T[11],13),T[10]^=a(T[9]+T[8],18),T[12]^=a(T[15]+T[14],7),T[13]^=a(T[12]+T[15],9),T[14]^=a(T[13]+T[12],13),T[15]^=a(T[14]+T[13],18);for(let I=0;I<16;++I)b[I]+=T[I]}function o(b,T,I,L){for(let U=0;U=256)return!1}return!0}function f(b,T){if(typeof b!="number"||b%1)throw new Error("invalid "+T);return b}function d(b,T,I,L,U,re,oe){if(I=f(I,"N"),L=f(L,"r"),U=f(U,"p"),re=f(re,"dkLen"),I===0||(I&I-1)!==0)throw new Error("N must be power of 2");if(I>2147483647/128/L)throw new Error("N too large");if(L>2147483647/128/U)throw new Error("r too large");if(!u(b))throw new Error("password must be an array or buffer");if(b=Array.prototype.slice.call(b),!u(T))throw new Error("salt must be an array or buffer");T=Array.prototype.slice.call(T);let ge=i(b,T,U*128*L),be=new Uint32Array(U*32*L);for(let O=0;Oh&&(O=h);for(let xe=0;xeh&&(O=h);for(let xe=0;xe>0&255),ge.push(be[xe]>>8&255),ge.push(be[xe]>>16&255),ge.push(be[xe]>>24&255);let N=i(b,ge,re);return oe&&oe(null,1,N),N}oe&&A(F)};if(!oe)for(;;){let O=F();if(O!=null)return O}F()}let p={scrypt:function(b,T,I,L,U,re,oe){return new Promise(function(ge,be){let ce=0;oe&&oe(0),d(b,T,I,L,U,re,function(me,ne,ee){if(me)be(me);else if(ee)oe&&ce!==1&&oe(1),ge(new Uint8Array(ee));else if(oe&&ne!==ce)return ce=ne,oe(ne)})})},syncScrypt:function(b,T,I,L,U,re){return new Uint8Array(d(b,T,I,L,U,re))}};typeof hM<"u"?iQ.exports=p:typeof define=="function"&&define.amd?define(p):t&&(t.scrypt&&(t._scrypt=t.scrypt),t.scrypt=p)})(hM)});var hQ=x(pa=>{"use strict";var NNe=pa&&pa.__extends||function(){var t=function(e,r){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var a in n)Object.prototype.hasOwnProperty.call(n,a)&&(i[a]=n[a])},t(e,r)};return function(e,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");t(e,r);function i(){this.constructor=e}e.prototype=r===null?Object.create(r):(i.prototype=r.prototype,new i)}}(),kNe=pa&&pa.__awaiter||function(t,e,r,i){function n(a){return a instanceof r?a:new r(function(s){s(a)})}return new(r||(r=Promise))(function(a,s){function o(f){try{u(i.next(f))}catch(d){s(d)}}function c(f){try{u(i.throw(f))}catch(d){s(d)}}function u(f){f.done?a(f.value):n(f.value).then(o,c)}u((i=i.apply(t,e||[])).next())})},BNe=pa&&pa.__generator||function(t,e){var r={label:0,sent:function(){if(a[0]&1)throw a[1];return a[1]},trys:[],ops:[]},i,n,a,s;return s={next:o(0),throw:o(1),return:o(2)},typeof Symbol=="function"&&(s[Symbol.iterator]=function(){return this}),s;function o(u){return function(f){return c([u,f])}}function c(u){if(i)throw new TypeError("Generator is already executing.");for(;r;)try{if(i=1,n&&(a=u[0]&2?n.return:u[0]?n.throw||((a=n.return)&&a.call(n),0):n.next)&&!(a=a.call(n,u[1])).done)return a;switch(n=0,a&&(u=[u[0]&2,a.value]),u[0]){case 0:case 1:a=u;break;case 4:return r.label++,{value:u[1],done:!1};case 5:r.label++,n=u[1],u=[0];continue;case 7:u=r.ops.pop(),r.trys.pop();continue;default:if(a=r.trys,!(a=a.length>0&&a[a.length-1])&&(u[0]===6||u[0]===2)){r=0;continue}if(u[0]===3&&(!a||u[1]>a[0]&&u[1]{"use strict";Object.defineProperty(kn,"__esModule",{value:!0});kn.decryptJsonWalletSync=kn.decryptJsonWallet=kn.getJsonWalletAddress=kn.isKeystoreWallet=kn.isCrowdsaleWallet=kn.encryptKeystore=kn.decryptKeystoreSync=kn.decryptKeystore=kn.decryptCrowdsale=void 0;var vM=Q$();Object.defineProperty(kn,"decryptCrowdsale",{enumerable:!0,get:function(){return vM.decrypt}});var sm=rQ();Object.defineProperty(kn,"getJsonWalletAddress",{enumerable:!0,get:function(){return sm.getJsonWalletAddress}});Object.defineProperty(kn,"isCrowdsaleWallet",{enumerable:!0,get:function(){return sm.isCrowdsaleWallet}});Object.defineProperty(kn,"isKeystoreWallet",{enumerable:!0,get:function(){return sm.isKeystoreWallet}});var ib=hQ();Object.defineProperty(kn,"decryptKeystore",{enumerable:!0,get:function(){return ib.decrypt}});Object.defineProperty(kn,"decryptKeystoreSync",{enumerable:!0,get:function(){return ib.decryptSync}});Object.defineProperty(kn,"encryptKeystore",{enumerable:!0,get:function(){return ib.encrypt}});function zNe(t,e,r){if((0,sm.isCrowdsaleWallet)(t)){r&&r(0);var i=(0,vM.decrypt)(t,e);return r&&r(1),Promise.resolve(i)}return(0,sm.isKeystoreWallet)(t)?(0,ib.decrypt)(t,e,r):Promise.reject(new Error("invalid JSON wallet"))}kn.decryptJsonWallet=zNe;function GNe(t,e){if((0,sm.isCrowdsaleWallet)(t))return(0,vM.decrypt)(t,e);if((0,sm.isKeystoreWallet)(t))return(0,ib.decryptSync)(t,e);throw new Error("invalid JSON wallet")}kn.decryptJsonWalletSync=GNe});var mQ=x(j9=>{"use strict";Object.defineProperty(j9,"__esModule",{value:!0});j9.version=void 0;j9.version="wallet/5.7.0"});var xM=x(Gs=>{"use strict";var JNe=Gs&&Gs.__extends||function(){var t=function(e,r){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var a in n)Object.prototype.hasOwnProperty.call(n,a)&&(i[a]=n[a])},t(e,r)};return function(e,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");t(e,r);function i(){this.constructor=e}e.prototype=r===null?Object.create(r):(i.prototype=r.prototype,new i)}}(),gQ=Gs&&Gs.__awaiter||function(t,e,r,i){function n(a){return a instanceof r?a:new r(function(s){s(a)})}return new(r||(r=Promise))(function(a,s){function o(f){try{u(i.next(f))}catch(d){s(d)}}function c(f){try{u(i.throw(f))}catch(d){s(d)}}function u(f){f.done?a(f.value):n(f.value).then(o,c)}u((i=i.apply(t,e||[])).next())})},yQ=Gs&&Gs.__generator||function(t,e){var r={label:0,sent:function(){if(a[0]&1)throw a[1];return a[1]},trys:[],ops:[]},i,n,a,s;return s={next:o(0),throw:o(1),return:o(2)},typeof Symbol=="function"&&(s[Symbol.iterator]=function(){return this}),s;function o(u){return function(f){return c([u,f])}}function c(u){if(i)throw new TypeError("Generator is already executing.");for(;r;)try{if(i=1,n&&(a=u[0]&2?n.return:u[0]?n.throw||((a=n.return)&&a.call(n),0):n.next)&&!(a=a.call(n,u[1])).done)return a;switch(n=0,a&&(u=[u[0]&2,a.value]),u[0]){case 0:case 1:a=u;break;case 4:return r.label++,{value:u[1],done:!1};case 5:r.label++,n=u[1],u=[0];continue;case 7:u=r.ops.pop(),r.trys.pop();continue;default:if(a=r.trys,!(a=a.length>0&&a[a.length-1])&&(u[0]===6||u[0]===2)){r=0;continue}if(u[0]===3&&(!a||u[1]>a[0]&&u[1]{"use strict";Object.defineProperty(V9,"__esModule",{value:!0});V9.version=void 0;V9.version="networks/5.7.1"});var SM=x(G9=>{"use strict";Object.defineProperty(G9,"__esModule",{value:!0});G9.getNetwork=void 0;var rke=Ht(),ike=wQ(),xQ=new rke.Logger(ike.version);function nke(t){return t&&typeof t.renetwork=="function"}function lf(t){var e=function(r,i){i==null&&(i={});var n=[];if(r.InfuraProvider&&i.infura!=="-")try{n.push(new r.InfuraProvider(t,i.infura))}catch{}if(r.EtherscanProvider&&i.etherscan!=="-")try{n.push(new r.EtherscanProvider(t,i.etherscan))}catch{}if(r.AlchemyProvider&&i.alchemy!=="-")try{n.push(new r.AlchemyProvider(t,i.alchemy))}catch{}if(r.PocketProvider&&i.pocket!=="-"){var a=["goerli","ropsten","rinkeby","sepolia"];try{var s=new r.PocketProvider(t,i.pocket);s.network&&a.indexOf(s.network.name)===-1&&n.push(s)}catch{}}if(r.CloudflareProvider&&i.cloudflare!=="-")try{n.push(new r.CloudflareProvider(t))}catch{}if(r.AnkrProvider&&i.ankr!=="-")try{var a=["ropsten"],s=new r.AnkrProvider(t,i.ankr);s.network&&a.indexOf(s.network.name)===-1&&n.push(s)}catch{}if(n.length===0)return null;if(r.FallbackProvider){var o=1;return i.quorum!=null?o=i.quorum:t==="homestead"&&(o=2),new r.FallbackProvider(n,o)}return n[0]};return e.renetwork=function(r){return lf(r)},e}function z9(t,e){var r=function(i,n){return i.JsonRpcProvider?new i.JsonRpcProvider(t,e):null};return r.renetwork=function(i){return z9(t,i)},r}var SQ={chainId:1,ensAddress:"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e",name:"homestead",_defaultProvider:lf("homestead")},EQ={chainId:3,ensAddress:"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e",name:"ropsten",_defaultProvider:lf("ropsten")},TQ={chainId:63,name:"classicMordor",_defaultProvider:z9("https://www.ethercluster.com/mordor","classicMordor")},H9={unspecified:{chainId:0,name:"unspecified"},homestead:SQ,mainnet:SQ,morden:{chainId:2,name:"morden"},ropsten:EQ,testnet:EQ,rinkeby:{chainId:4,ensAddress:"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e",name:"rinkeby",_defaultProvider:lf("rinkeby")},kovan:{chainId:42,name:"kovan",_defaultProvider:lf("kovan")},goerli:{chainId:5,ensAddress:"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e",name:"goerli",_defaultProvider:lf("goerli")},kintsugi:{chainId:1337702,name:"kintsugi"},sepolia:{chainId:11155111,name:"sepolia",_defaultProvider:lf("sepolia")},classic:{chainId:61,name:"classic",_defaultProvider:z9("https://www.ethercluster.com/etc","classic")},classicMorden:{chainId:62,name:"classicMorden"},classicMordor:TQ,classicTestnet:TQ,classicKotti:{chainId:6,name:"classicKotti",_defaultProvider:z9("https://www.ethercluster.com/kotti","classicKotti")},xdai:{chainId:100,name:"xdai"},matic:{chainId:137,name:"matic",_defaultProvider:lf("matic")},maticmum:{chainId:80001,name:"maticmum"},optimism:{chainId:10,name:"optimism",_defaultProvider:lf("optimism")},"optimism-kovan":{chainId:69,name:"optimism-kovan"},"optimism-goerli":{chainId:420,name:"optimism-goerli"},arbitrum:{chainId:42161,name:"arbitrum"},"arbitrum-rinkeby":{chainId:421611,name:"arbitrum-rinkeby"},"arbitrum-goerli":{chainId:421613,name:"arbitrum-goerli"},bnb:{chainId:56,name:"bnb"},bnbt:{chainId:97,name:"bnbt"}};function ake(t){if(t==null)return null;if(typeof t=="number"){for(var e in H9){var r=H9[e];if(r.chainId===t)return{name:r.name,chainId:r.chainId,ensAddress:r.ensAddress||null,_defaultProvider:r._defaultProvider||null}}return{chainId:t,name:"unknown"}}if(typeof t=="string"){var i=H9[t];return i==null?null:{name:i.name,chainId:i.chainId,ensAddress:i.ensAddress,_defaultProvider:i._defaultProvider||null}}var n=H9[t.name];if(!n)return typeof t.chainId!="number"&&xQ.throwArgumentError("invalid network chainId","network",t),t;t.chainId!==0&&t.chainId!==n.chainId&&xQ.throwArgumentError("network chainId mismatch","network",t);var a=t._defaultProvider||null;return a==null&&n._defaultProvider&&(nke(n._defaultProvider)?a=n._defaultProvider.renetwork(t):a=n._defaultProvider),{name:t.name,chainId:n.chainId,ensAddress:t.ensAddress||n.ensAddress||null,_defaultProvider:a}}G9.getNetwork=ake});var EM=x(J9=>{"use strict";Object.defineProperty(J9,"__esModule",{value:!0});J9.version=void 0;J9.version="web/5.7.1"});var RQ=x(Nd=>{"use strict";var ske=Nd&&Nd.__awaiter||function(t,e,r,i){function n(a){return a instanceof r?a:new r(function(s){s(a)})}return new(r||(r=Promise))(function(a,s){function o(f){try{u(i.next(f))}catch(d){s(d)}}function c(f){try{u(i.throw(f))}catch(d){s(d)}}function u(f){f.done?a(f.value):n(f.value).then(o,c)}u((i=i.apply(t,e||[])).next())})},oke=Nd&&Nd.__generator||function(t,e){var r={label:0,sent:function(){if(a[0]&1)throw a[1];return a[1]},trys:[],ops:[]},i,n,a,s;return s={next:o(0),throw:o(1),return:o(2)},typeof Symbol=="function"&&(s[Symbol.iterator]=function(){return this}),s;function o(u){return function(f){return c([u,f])}}function c(u){if(i)throw new TypeError("Generator is already executing.");for(;r;)try{if(i=1,n&&(a=u[0]&2?n.return:u[0]?n.throw||((a=n.return)&&a.call(n),0):n.next)&&!(a=a.call(n,u[1])).done)return a;switch(n=0,a&&(u=[u[0]&2,a.value]),u[0]){case 0:case 1:a=u;break;case 4:return r.label++,{value:u[1],done:!1};case 5:r.label++,n=u[1],u=[0];continue;case 7:u=r.ops.pop(),r.trys.pop();continue;default:if(a=r.trys,!(a=a.length>0&&a[a.length-1])&&(u[0]===6||u[0]===2)){r=0;continue}if(u[0]===3&&(!a||u[1]>a[0]&&u[1]{"use strict";var yke=_u&&_u.__awaiter||function(t,e,r,i){function n(a){return a instanceof r?a:new r(function(s){s(a)})}return new(r||(r=Promise))(function(a,s){function o(f){try{u(i.next(f))}catch(d){s(d)}}function c(f){try{u(i.throw(f))}catch(d){s(d)}}function u(f){f.done?a(f.value):n(f.value).then(o,c)}u((i=i.apply(t,e||[])).next())})},vke=_u&&_u.__generator||function(t,e){var r={label:0,sent:function(){if(a[0]&1)throw a[1];return a[1]},trys:[],ops:[]},i,n,a,s;return s={next:o(0),throw:o(1),return:o(2)},typeof Symbol=="function"&&(s[Symbol.iterator]=function(){return this}),s;function o(u){return function(f){return c([u,f])}}function c(u){if(i)throw new TypeError("Generator is already executing.");for(;r;)try{if(i=1,n&&(a=u[0]&2?n.return:u[0]?n.throw||((a=n.return)&&a.call(n),0):n.next)&&!(a=a.call(n,u[1])).done)return a;switch(n=0,a&&(u=[u[0]&2,a.value]),u[0]){case 0:case 1:a=u;break;case 4:return r.label++,{value:u[1],done:!1};case 5:r.label++,n=u[1],u=[0];continue;case 7:u=r.ops.pop(),r.trys.pop();continue;default:if(a=r.trys,!(a=a.length>0&&a[a.length-1])&&(u[0]===6||u[0]===2)){r=0;continue}if(u[0]===3&&(!a||u[1]>a[0]&&u[1]0&&i%1===0,"invalid connection throttle limit","connection.throttleLimit",i);var n=typeof t=="object"?t.throttleCallback:null,a=typeof t=="object"&&typeof t.throttleSlotInterval=="number"?t.throttleSlotInterval:100;hc.assertArgument(a>0&&a%1===0,"invalid connection throttle slot interval","connection.throttleSlotInterval",a);var s=typeof t=="object"?!!t.errorPassThrough:!1,o={},c=null,u={method:"GET"},f=!1,d=2*60*1e3;if(typeof t=="string")c=t;else if(typeof t=="object"){if((t==null||t.url==null)&&hc.throwArgumentError("missing URL","connection.url",t),c=t.url,typeof t.timeout=="number"&&t.timeout>0&&(d=t.timeout),t.headers)for(var p in t.headers)o[p.toLowerCase()]={key:p,value:String(t.headers[p])},["if-none-match","if-modified-since"].indexOf(p.toLowerCase())>=0&&(f=!0);if(u.allowGzip=!!t.allowGzip,t.user!=null&&t.password!=null){c.substring(0,6)!=="https:"&&t.allowInsecureAuthentication!==!0&&hc.throwError("basic authentication requires a secure https url",ff.Logger.errors.INVALID_ARGUMENT,{argument:"url",url:c,user:t.user,password:"[REDACTED]"});var b=t.user+":"+t.password;o.authorization={key:"Authorization",value:"Basic "+(0,MQ.encode)((0,sb.toUtf8Bytes)(b))}}t.skipFetchSetup!=null&&(u.skipFetchSetup=!!t.skipFetchSetup),t.fetchOptions!=null&&(u.fetchOptions=(0,X9.shallowCopy)(t.fetchOptions))}var T=new RegExp("^data:([^;:]*)?(;base64)?,(.*)$","i"),I=c?c.match(T):null;if(I)try{var L={statusCode:200,statusMessage:"OK",headers:{"content-type":I[1]||"text/plain"},body:I[2]?(0,MQ.decode)(I[3]):wke(I[3])},U=L.body;return r&&(U=r(L.body,L)),Promise.resolve(U)}catch(be){hc.throwError("processing response error",ff.Logger.errors.SERVER_ERROR,{body:N0(I[1],I[2]),error:be,requestBody:null,requestMethod:"GET",url:c})}e&&(u.method="POST",u.body=e,o["content-type"]==null&&(o["content-type"]={key:"Content-Type",value:"application/octet-stream"}),o["content-length"]==null&&(o["content-length"]={key:"Content-Length",value:String(e.length)}));var re={};Object.keys(o).forEach(function(be){var ce=o[be];re[ce.key]=ce.value}),u.headers=re;var oe=function(){var be=null,ce=new Promise(function(ne,ee){d&&(be=setTimeout(function(){be!=null&&(be=null,ee(hc.makeError("timeout",ff.Logger.errors.TIMEOUT,{requestBody:N0(u.body,re["content-type"]),requestMethod:u.method,timeout:d,url:c})))},d))}),me=function(){be!=null&&(clearTimeout(be),be=null)};return{promise:ce,cancel:me}}(),ge=function(){return yke(this,void 0,void 0,function(){var be,ce,me,y,ne,ee,R,g,v,w,y,_;return vke(this,function(P){switch(P.label){case 0:be=0,P.label=1;case 1:if(!(be=300)&&(oe.cancel(),hc.throwError("bad response",ff.Logger.errors.SERVER_ERROR,{status:ce.statusCode,headers:ce.headers,body:N0(g,ce.headers?ce.headers["content-type"]:null),requestBody:N0(u.body,re["content-type"]),requestMethod:u.method,url:c})),!r)return[3,18];P.label=11;case 11:return P.trys.push([11,13,,18]),[4,r(g,ce)];case 12:return v=P.sent(),oe.cancel(),[2,v];case 13:return w=P.sent(),w.throttleRetry&&beo){s()&&i(new Error("retry limit reached"));return}var d=e.interval*parseInt(String(Math.random()*Math.pow(2,c)));de.ceiling&&(d=e.ceiling),setTimeout(u,d)}return null},function(f){s()&&i(f)})}u()})}_u.poll=Ske});var DQ=x((aOt,FQ)=>{"use strict";var W9="qpzry9x8gf2tvdw0s3jn54khce6mua7l",TM={};for(ob=0;ob>25;return(t&33554431)<<5^-(e>>0&1)&996825010^-(e>>1&1)&642813549^-(e>>2&1)&513874426^-(e>>3&1)&1027748829^-(e>>4&1)&705979059}function kQ(t){for(var e=1,r=0;r126)return"Invalid prefix ("+t+")";e=zg(e)^i>>5}for(e=zg(e),r=0;rr)throw new TypeError("Exceeds length limit");t=t.toLowerCase();var i=kQ(t);if(typeof i=="string")throw new Error(i);for(var n=t+"1",a=0;a>5!==0)throw new Error("Non 5-bit word");i=zg(i)^s,n+=W9.charAt(s)}for(a=0;a<6;++a)i=zg(i);for(i^=1,a=0;a<6;++a){var o=i>>(5-a)*5&31;n+=W9.charAt(o)}return n}function BQ(t,e){if(e=e||90,t.length<8)return t+" too short";if(t.length>e)return"Exceeds length limit";var r=t.toLowerCase(),i=t.toUpperCase();if(t!==r&&t!==i)return"Mixed-case string "+t;t=r;var n=t.lastIndexOf("1");if(n===-1)return"No separator character for "+t;if(n===0)return"Missing prefix for "+t;var a=t.slice(0,n),s=t.slice(n+1);if(s.length<6)return"Data too short";var o=kQ(a);if(typeof o=="string")return o;for(var c=[],u=0;u=s.length)&&c.push(d)}return o!==1?"Invalid checksum for "+t:{prefix:a,words:c}}function Tke(){var t=BQ.apply(null,arguments);if(typeof t=="object")return t}function Ake(t){var e=BQ.apply(null,arguments);if(typeof e=="object")return e;throw new Error(e)}function Z9(t,e,r,i){for(var n=0,a=0,s=(1<=r;)a-=r,o.push(n>>a&s);if(i)a>0&&o.push(n<=e)return"Excess padding";if(n<{"use strict";Object.defineProperty($9,"__esModule",{value:!0});$9.version=void 0;$9.version="providers/5.7.2"});var k0=x(Bd=>{"use strict";Object.defineProperty(Bd,"__esModule",{value:!0});Bd.showThrottleMessage=Bd.isCommunityResource=Bd.isCommunityResourcable=Bd.Formatter=void 0;var AM=cu(),pf=Rn(),kd=or(),Cke=V1(),Ike=Xr(),qQ=df(),Nke=Ht(),kke=Da(),ub=new Nke.Logger(kke.version),Bke=function(){function t(){this.formats=this.getDefaultFormats()}return t.prototype.getDefaultFormats=function(){var e=this,r={},i=this.address.bind(this),n=this.bigNumber.bind(this),a=this.blockTag.bind(this),s=this.data.bind(this),o=this.hash.bind(this),c=this.hex.bind(this),u=this.number.bind(this),f=this.type.bind(this),d=function(p){return e.data(p,!0)};return r.transaction={hash:o,type:f,accessList:t.allowNull(this.accessList.bind(this),null),blockHash:t.allowNull(o,null),blockNumber:t.allowNull(u,null),transactionIndex:t.allowNull(u,null),confirmations:t.allowNull(u,null),from:i,gasPrice:t.allowNull(n),maxPriorityFeePerGas:t.allowNull(n),maxFeePerGas:t.allowNull(n),gasLimit:n,to:t.allowNull(i,null),value:n,nonce:u,data:s,r:t.allowNull(this.uint256),s:t.allowNull(this.uint256),v:t.allowNull(u),creates:t.allowNull(i,null),raw:t.allowNull(s)},r.transactionRequest={from:t.allowNull(i),nonce:t.allowNull(u),gasLimit:t.allowNull(n),gasPrice:t.allowNull(n),maxPriorityFeePerGas:t.allowNull(n),maxFeePerGas:t.allowNull(n),to:t.allowNull(i),value:t.allowNull(n),data:t.allowNull(d),type:t.allowNull(u),accessList:t.allowNull(this.accessList.bind(this),null)},r.receiptLog={transactionIndex:u,blockNumber:u,transactionHash:o,address:i,topics:t.arrayOf(o),data:s,logIndex:u,blockHash:o},r.receipt={to:t.allowNull(this.address,null),from:t.allowNull(this.address,null),contractAddress:t.allowNull(i,null),transactionIndex:u,root:t.allowNull(c),gasUsed:n,logsBloom:t.allowNull(s),blockHash:o,transactionHash:o,logs:t.arrayOf(this.receiptLog.bind(this)),blockNumber:u,confirmations:t.allowNull(u,null),cumulativeGasUsed:n,effectiveGasPrice:t.allowNull(n),status:t.allowNull(u),type:f},r.block={hash:t.allowNull(o),parentHash:o,number:u,timestamp:u,nonce:t.allowNull(c),difficulty:this.difficulty.bind(this),gasLimit:n,gasUsed:n,miner:t.allowNull(i),extraData:s,transactions:t.allowNull(t.arrayOf(o)),baseFeePerGas:t.allowNull(n)},r.blockWithTransactions=(0,Ike.shallowCopy)(r.block),r.blockWithTransactions.transactions=t.allowNull(t.arrayOf(this.transactionResponse.bind(this))),r.filter={fromBlock:t.allowNull(a,void 0),toBlock:t.allowNull(a,void 0),blockHash:t.allowNull(o,void 0),address:t.allowNull(i,void 0),topics:t.allowNull(this.topics.bind(this),void 0)},r.filterLog={blockNumber:t.allowNull(u),blockHash:t.allowNull(o),transactionIndex:u,removed:t.allowNull(this.boolean.bind(this)),address:i,data:t.allowFalsish(s,"0x"),topics:t.arrayOf(o),transactionHash:o,logIndex:u},r},t.prototype.accessList=function(e){return(0,qQ.accessListify)(e||[])},t.prototype.number=function(e){return e==="0x"?0:pf.BigNumber.from(e).toNumber()},t.prototype.type=function(e){return e==="0x"||e==null?0:pf.BigNumber.from(e).toNumber()},t.prototype.bigNumber=function(e){return pf.BigNumber.from(e)},t.prototype.boolean=function(e){if(typeof e=="boolean")return e;if(typeof e=="string"){if(e=e.toLowerCase(),e==="true")return!0;if(e==="false")return!1}throw new Error("invalid boolean - "+e)},t.prototype.hex=function(e,r){return typeof e=="string"&&(!r&&e.substring(0,2)!=="0x"&&(e="0x"+e),(0,kd.isHexString)(e))?e.toLowerCase():ub.throwArgumentError("invalid hash","value",e)},t.prototype.data=function(e,r){var i=this.hex(e,r);if(i.length%2!==0)throw new Error("invalid data; odd-length - "+e);return i},t.prototype.address=function(e){return(0,AM.getAddress)(e)},t.prototype.callAddress=function(e){if(!(0,kd.isHexString)(e,32))return null;var r=(0,AM.getAddress)((0,kd.hexDataSlice)(e,12));return r===Cke.AddressZero?null:r},t.prototype.contractAddress=function(e){return(0,AM.getContractAddress)(e)},t.prototype.blockTag=function(e){if(e==null)return"latest";if(e==="earliest")return"0x0";switch(e){case"earliest":return"0x0";case"latest":case"pending":case"safe":case"finalized":return e}if(typeof e=="number"||(0,kd.isHexString)(e))return(0,kd.hexValue)(e);throw new Error("invalid blockTag")},t.prototype.hash=function(e,r){var i=this.hex(e,r);return(0,kd.hexDataLength)(i)!==32?ub.throwArgumentError("invalid hash","value",e):i},t.prototype.difficulty=function(e){if(e==null)return null;var r=pf.BigNumber.from(e);try{return r.toNumber()}catch{}return null},t.prototype.uint256=function(e){if(!(0,kd.isHexString)(e))throw new Error("invalid uint256");return(0,kd.hexZeroPad)(e,32)},t.prototype._block=function(e,r){e.author!=null&&e.miner==null&&(e.miner=e.author);var i=e._difficulty!=null?e._difficulty:e.difficulty,n=t.check(r,e);return n._difficulty=i==null?null:pf.BigNumber.from(i),n},t.prototype.block=function(e){return this._block(e,this.formats.block)},t.prototype.blockWithTransactions=function(e){return this._block(e,this.formats.blockWithTransactions)},t.prototype.transactionRequest=function(e){return t.check(this.formats.transactionRequest,e)},t.prototype.transactionResponse=function(e){e.gas!=null&&e.gasLimit==null&&(e.gasLimit=e.gas),e.to&&pf.BigNumber.from(e.to).isZero()&&(e.to="0x0000000000000000000000000000000000000000"),e.input!=null&&e.data==null&&(e.data=e.input),e.to==null&&e.creates==null&&(e.creates=this.contractAddress(e)),(e.type===1||e.type===2)&&e.accessList==null&&(e.accessList=[]);var r=t.check(this.formats.transaction,e);if(e.chainId!=null){var i=e.chainId;(0,kd.isHexString)(i)&&(i=pf.BigNumber.from(i).toNumber()),r.chainId=i}else{var i=e.networkId;i==null&&r.v==null&&(i=e.chainId),(0,kd.isHexString)(i)&&(i=pf.BigNumber.from(i).toNumber()),typeof i!="number"&&r.v!=null&&(i=(r.v-35)/2,i<0&&(i=0),i=parseInt(i)),typeof i!="number"&&(i=0),r.chainId=i}return r.blockHash&&r.blockHash.replace(/0/g,"")==="x"&&(r.blockHash=null),r},t.prototype.transaction=function(e){return(0,qQ.parse)(e)},t.prototype.receiptLog=function(e){return t.check(this.formats.receiptLog,e)},t.prototype.receipt=function(e){var r=t.check(this.formats.receipt,e);if(r.root!=null)if(r.root.length<=4){var i=pf.BigNumber.from(r.root).toNumber();i===0||i===1?(r.status!=null&&r.status!==i&&ub.throwArgumentError("alt-root-status/status mismatch","value",{root:r.root,status:r.status}),r.status=i,delete r.root):ub.throwArgumentError("invalid alt-root-status","value.root",r.root)}else r.root.length!==66&&ub.throwArgumentError("invalid root hash","value.root",r.root);return r.status!=null&&(r.byzantium=!0),r},t.prototype.topics=function(e){var r=this;return Array.isArray(e)?e.map(function(i){return r.topics(i)}):e!=null?this.hash(e,!0):null},t.prototype.filter=function(e){return t.check(this.formats.filter,e)},t.prototype.filterLog=function(e){return t.check(this.formats.filterLog,e)},t.check=function(e,r){var i={};for(var n in e)try{var a=e[n](r[n]);a!==void 0&&(i[n]=a)}catch(s){throw s.checkKey=n,s.checkValue=r[n],s}return i},t.allowNull=function(e,r){return function(i){return i==null?r:e(i)}},t.allowFalsish=function(e,r){return function(i){return i?e(i):r}},t.arrayOf=function(e){return function(r){if(!Array.isArray(r))throw new Error("not an array");var i=[];return r.forEach(function(n){i.push(e(n))}),i}},t}();Bd.Formatter=Bke;function UQ(t){return t&&typeof t.isCommunityResource=="function"}Bd.isCommunityResourcable=UQ;function Fke(t){return UQ(t)&&t.isCommunityResource()}Bd.isCommunityResource=Fke;var LQ=!1;function Dke(){LQ||(LQ=!0,console.log("========= NOTICE ========="),console.log("Request-Rate Exceeded (this message will not be repeated)"),console.log(""),console.log("The default API keys for each service are provided as a highly-throttled,"),console.log("community resource for low-traffic projects and early prototyping."),console.log(""),console.log("While your application will continue to function, we highly recommended"),console.log("signing up for your own API keys to improve performance, increase your"),console.log("request rate/limit and enable other perks, such as metrics and advanced APIs."),console.log(""),console.log("For more details: https://docs.ethers.io/api-keys/"),console.log("=========================="))}Bd.showThrottleMessage=Dke});var fb=x(os=>{"use strict";var qke=os&&os.__extends||function(){var t=function(e,r){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var a in n)Object.prototype.hasOwnProperty.call(n,a)&&(i[a]=n[a])},t(e,r)};return function(e,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");t(e,r);function i(){this.constructor=e}e.prototype=r===null?Object.create(r):(i.prototype=r.prototype,new i)}}(),Qt=os&&os.__awaiter||function(t,e,r,i){function n(a){return a instanceof r?a:new r(function(s){s(a)})}return new(r||(r=Promise))(function(a,s){function o(f){try{u(i.next(f))}catch(d){s(d)}}function c(f){try{u(i.throw(f))}catch(d){s(d)}}function u(f){f.done?a(f.value):n(f.value).then(o,c)}u((i=i.apply(t,e||[])).next())})},Yt=os&&os.__generator||function(t,e){var r={label:0,sent:function(){if(a[0]&1)throw a[1];return a[1]},trys:[],ops:[]},i,n,a,s;return s={next:o(0),throw:o(1),return:o(2)},typeof Symbol=="function"&&(s[Symbol.iterator]=function(){return this}),s;function o(u){return function(f){return c([u,f])}}function c(u){if(i)throw new TypeError("Generator is already executing.");for(;r;)try{if(i=1,n&&(a=u[0]&2?n.return:u[0]?n.throw||((a=n.return)&&a.call(n),0):n.next)&&!(a=a.call(n,u[1])).done)return a;switch(n=0,a&&(u=[u[0]&2,a.value]),u[0]){case 0:case 1:a=u;break;case 4:return r.label++,{value:u[1],done:!1};case 5:r.label++,n=u[1],u=[0];continue;case 7:u=r.ops.pop(),r.trys.pop();continue;default:if(a=r.trys,!(a=a.length>0&&a[a.length-1])&&(u[0]===6||u[0]===2)){r=0;continue}if(u[0]===3&&(!a||u[1]>a[0]&&u[1]0&&t[t.length-1]==null;)t.pop();return t.map(function(e){if(Array.isArray(e)){var r={};e.forEach(function(n){r[zQ(n)]=!0});var i=Object.keys(r);return i.sort(),i.join("|")}else return zQ(e)}).join("&")}function Gke(t){return t===""?[]:t.split(/&/g).map(function(e){if(e==="")return[];var r=e.split("|").map(function(i){return i==="null"?null:i});return r.length===1?r[0]:r})}function Gg(t){if(typeof t=="string"){if(t=t.toLowerCase(),(0,Kt.hexDataLength)(t)===32)return"tx:"+t;if(t.indexOf(":")===-1)return t}else{if(Array.isArray(t))return"filter:*:"+GQ(t);if(ZQ.ForkEvent.isForkEvent(t))throw vr.warn("not implemented"),new Error("not implemented");if(t&&typeof t=="object")return"filter:"+(t.address||"*")+":"+GQ(t.topics||[])}throw new Error("invalid event - "+t)}function cb(){return new Date().getTime()}function JQ(t){return new Promise(function(e){setTimeout(e,t)})}var Jke=["block","network","pending","poll"],$Q=function(){function t(e,r,i){(0,bn.defineReadOnly)(this,"tag",e),(0,bn.defineReadOnly)(this,"listener",r),(0,bn.defineReadOnly)(this,"once",i),this._lastBlockNumber=-2,this._inflight=!1}return Object.defineProperty(t.prototype,"event",{get:function(){switch(this.type){case"tx":return this.hash;case"filter":return this.filter}return this.tag},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"type",{get:function(){return this.tag.split(":")[0]},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"hash",{get:function(){var e=this.tag.split(":");return e[0]!=="tx"?null:e[1]},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"filter",{get:function(){var e=this.tag.split(":");if(e[0]!=="filter")return null;var r=e[1],i=Gke(e[2]),n={};return i.length>0&&(n.topics=i),r&&r!=="*"&&(n.address=r),n},enumerable:!1,configurable:!0}),t.prototype.pollable=function(){return this.tag.indexOf(":")>=0||Jke.indexOf(this.tag)>=0},t}();os.Event=$Q;var Xke={0:{symbol:"btc",p2pkh:0,p2sh:5,prefix:"bc"},2:{symbol:"ltc",p2pkh:48,p2sh:50,prefix:"ltc"},3:{symbol:"doge",p2pkh:30,p2sh:22},60:{symbol:"eth",ilk:"eth"},61:{symbol:"etc",ilk:"eth"},700:{symbol:"xdai",ilk:"eth"}};function PM(t){return(0,Kt.hexZeroPad)(ss.BigNumber.from(t).toHexString(),32)}function XQ(t){return MM.Base58.encode((0,Kt.concat)([t,(0,Kt.hexDataSlice)((0,jQ.sha256)((0,jQ.sha256)(t)),0,4)]))}var QQ=new RegExp("^(ipfs)://(.*)$","i"),KQ=[new RegExp("^(https)://(.*)$","i"),new RegExp("^(data):(.*)$","i"),QQ,new RegExp("^eip155:[0-9]+/(erc[0-9]+):(.*)$","i")];function Q9(t,e){try{return(0,CM.toUtf8String)(lb(t,e))}catch{}return null}function lb(t,e){if(t==="0x")return null;var r=ss.BigNumber.from((0,Kt.hexDataSlice)(t,e,e+32)).toNumber(),i=ss.BigNumber.from((0,Kt.hexDataSlice)(t,r,r+32)).toNumber();return(0,Kt.hexDataSlice)(t,r+32,r+32+i)}function OM(t){return t.match(/^ipfs:\/\/ipfs\//i)?t=t.substring(12):t.match(/^ipfs:\/\//i)?t=t.substring(7):vr.throwArgumentError("unsupported IPFS format","link",t),"https://gateway.ipfs.io/ipfs/"+t}function WQ(t){var e=(0,Kt.arrayify)(t);if(e.length>32)throw new Error("internal; should not happen");var r=new Uint8Array(32);return r.set(e,32-e.length),r}function Kke(t){if(t.length%32===0)return t;var e=new Uint8Array(Math.ceil(t.length/32)*32);return e.set(t),e}function YQ(t){for(var e=[],r=0,i=0;i=1&&s<=75)return XQ((0,Kt.concat)([[i.p2pkh],"0x"+a[2]]))}}if(i.p2sh!=null){var o=r.match(/^0xa9([0-9a-f][0-9a-f])([0-9a-f]*)87$/);if(o){var c=parseInt(o[1],16);if(o[2].length===c*2&&c>=1&&c<=75)return XQ((0,Kt.concat)([[i.p2sh],"0x"+o[2]]))}}if(i.prefix!=null){var u=n[1],f=n[0];if(f===0?u!==20&&u!==32&&(f=-1):f=-1,f>=0&&n.length===2+u&&u>=1&&u<=75){var d=VQ.default.toWords(n.slice(2));return d.unshift(f),VQ.default.encode(i.prefix,d)}}return null},t.prototype.getAddress=function(e){return Qt(this,void 0,void 0,function(){var r,i,n,a;return Yt(this,function(s){switch(s.label){case 0:if(e==null&&(e=60),e!==60)return[3,4];s.label=1;case 1:return s.trys.push([1,3,,4]),[4,this._fetch("0x3b3b57de")];case 2:return r=s.sent(),r==="0x"||r===jke.HashZero?[2,null]:[2,this.provider.formatter.callAddress(r)];case 3:if(i=s.sent(),i.code===Er.Logger.errors.CALL_EXCEPTION)return[2,null];throw i;case 4:return[4,this._fetchBytes("0xf1cb7e06",PM(e))];case 5:return n=s.sent(),n==null||n==="0x"?[2,null]:(a=this._getAddress(e,n),a==null&&vr.throwError("invalid or unsupported coin data",Er.Logger.errors.UNSUPPORTED_OPERATION,{operation:"getAddress("+e+")",coinType:e,data:n}),[2,a])}})})},t.prototype.getAvatar=function(){return Qt(this,void 0,void 0,function(){var e,r,i,n,a,s,o,c,u,f,d,p,b,T,I,L,U,re,oe,ge,be,ce,me,ne,ee;return Yt(this,function(R){switch(R.label){case 0:e=[{type:"name",content:this.name}],R.label=1;case 1:return R.trys.push([1,19,,20]),[4,this.getText("avatar")];case 2:if(r=R.sent(),r==null)return[2,null];i=0,R.label=3;case 3:if(!(i=0?null:JSON.stringify({data:s,sender:a}),[4,(0,Jg.fetchJson)({url:f,errorPassThrough:!0},d,function(I,L){return I.status=L.statusCode,I})]):[3,4];case 2:if(p=T.sent(),p.data)return[2,p.data];if(b=p.message||"unknown error",p.status>=400&&p.status<500)return[2,vr.throwError("response not found during CCIP fetch: "+b,Er.Logger.errors.SERVER_ERROR,{url:u,errorMessage:b})];o.push(b),T.label=3;case 3:return c++,[3,1];case 4:return[2,vr.throwError("error encountered during CCIP fetch: "+o.map(function(I){return JSON.stringify(I)}).join(", "),Er.Logger.errors.SERVER_ERROR,{urls:n,errorMessages:o})]}})})},e.prototype._getInternalBlockNumber=function(r){return Qt(this,void 0,void 0,function(){var i,n,a,s,o,c=this;return Yt(this,function(u){switch(u.label){case 0:return[4,this._ready()];case 1:if(u.sent(),!(r>0))return[3,7];u.label=2;case 2:if(!this._internalBlockNumber)return[3,7];i=this._internalBlockNumber,u.label=3;case 3:return u.trys.push([3,5,,6]),[4,i];case 4:return n=u.sent(),cb()-n.respTime<=r?[2,n.blockNumber]:[3,7];case 5:return a=u.sent(),this._internalBlockNumber===i?[3,7]:[3,6];case 6:return[3,2];case 7:return s=cb(),o=(0,bn.resolveProperties)({blockNumber:this.perform("getBlockNumber",{}),networkError:this.getNetwork().then(function(f){return null},function(f){return f})}).then(function(f){var d=f.blockNumber,p=f.networkError;if(p)throw c._internalBlockNumber===o&&(c._internalBlockNumber=null),p;var b=cb();return d=ss.BigNumber.from(d).toNumber(),d1e3)vr.warn("network block skew detected; skipping block events (emitted="+this._emitted.block+" blockNumber"+n+")"),this.emit("error",vr.makeError("network block skew detected",Er.Logger.errors.NETWORK_ERROR,{blockNumber:n,event:"blockSkew",previousBlockNumber:this._emitted.block})),this.emit("block",n);else for(s=this._emitted.block+1;s<=n;s++)this.emit("block",s);return this._emitted.block!==n&&(this._emitted.block=n,Object.keys(this._emitted).forEach(function(u){if(u!=="block"){var f=o._emitted[u];f!=="pending"&&n-f>12&&delete o._emitted[u]}})),this._lastBlockNumber===-2&&(this._lastBlockNumber=n-1),this._events.forEach(function(u){switch(u.type){case"tx":{var f=u.hash,d=o.getTransactionReceipt(f).then(function(T){return!T||T.blockNumber==null||(o._emitted["t:"+f]=T.blockNumber,o.emit(f,T)),null}).catch(function(T){o.emit("error",T)});i.push(d);break}case"filter":{if(!u._inflight){u._inflight=!0,u._lastBlockNumber===-2&&(u._lastBlockNumber=n-1);var p=u.filter;p.fromBlock=u._lastBlockNumber+1,p.toBlock=n;var b=p.toBlock-o._maxFilterBlockRange;b>p.fromBlock&&(p.fromBlock=b),p.fromBlock<0&&(p.fromBlock=0);var d=o.getLogs(p).then(function(I){u._inflight=!1,I.length!==0&&I.forEach(function(L){L.blockNumber>u._lastBlockNumber&&(u._lastBlockNumber=L.blockNumber),o._emitted["b:"+L.blockHash]=L.blockNumber,o._emitted["t:"+L.transactionHash]=L.blockNumber,o.emit(p,L)})}).catch(function(I){o.emit("error",I),u._inflight=!1});i.push(d)}break}}}),this._lastBlockNumber=n,Promise.all(i).then(function(){o.emit("didPoll",r)}).catch(function(u){o.emit("error",u)}),[2]}})})},e.prototype.resetEventsBlock=function(r){this._lastBlockNumber=r-1,this.polling&&this.poll()},Object.defineProperty(e.prototype,"network",{get:function(){return this._network},enumerable:!1,configurable:!0}),e.prototype.detectNetwork=function(){return Qt(this,void 0,void 0,function(){return Yt(this,function(r){return[2,vr.throwError("provider does not support network detection",Er.Logger.errors.UNSUPPORTED_OPERATION,{operation:"provider.detectNetwork"})]})})},e.prototype.getNetwork=function(){return Qt(this,void 0,void 0,function(){var r,i,n;return Yt(this,function(a){switch(a.label){case 0:return[4,this._ready()];case 1:return r=a.sent(),[4,this.detectNetwork()];case 2:return i=a.sent(),r.chainId===i.chainId?[3,5]:this.anyNetwork?(this._network=i,this._lastBlockNumber=-2,this._fastBlockNumber=null,this._fastBlockNumberPromise=null,this._fastQueryDate=0,this._emitted.block=-2,this._maxInternalBlockNumber=-1024,this._internalBlockNumber=null,this.emit("network",i,r),[4,JQ(0)]):[3,4];case 3:return a.sent(),[2,this._network];case 4:throw n=vr.makeError("underlying network changed",Er.Logger.errors.NETWORK_ERROR,{event:"changed",network:r,detectedNetwork:i}),this.emit("error",n),n;case 5:return[2,r]}})})},Object.defineProperty(e.prototype,"blockNumber",{get:function(){var r=this;return this._getInternalBlockNumber(100+this.pollingInterval/2).then(function(i){r._setFastBlockNumber(i)},function(i){}),this._fastBlockNumber!=null?this._fastBlockNumber:-1},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"polling",{get:function(){return this._poller!=null},set:function(r){var i=this;r&&!this._poller?(this._poller=setInterval(function(){i.poll()},this.pollingInterval),this._bootstrapPoll||(this._bootstrapPoll=setTimeout(function(){i.poll(),i._bootstrapPoll=setTimeout(function(){i._poller||i.poll(),i._bootstrapPoll=null},i.pollingInterval)},0))):!r&&this._poller&&(clearInterval(this._poller),this._poller=null)},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"pollingInterval",{get:function(){return this._pollingInterval},set:function(r){var i=this;if(typeof r!="number"||r<=0||parseInt(String(r))!=r)throw new Error("invalid polling interval");this._pollingInterval=r,this._poller&&(clearInterval(this._poller),this._poller=setInterval(function(){i.poll()},this._pollingInterval))},enumerable:!1,configurable:!0}),e.prototype._getFastBlockNumber=function(){var r=this,i=cb();return i-this._fastQueryDate>2*this._pollingInterval&&(this._fastQueryDate=i,this._fastBlockNumberPromise=this.getBlockNumber().then(function(n){return(r._fastBlockNumber==null||n>r._fastBlockNumber)&&(r._fastBlockNumber=n),r._fastBlockNumber})),this._fastBlockNumberPromise},e.prototype._setFastBlockNumber=function(r){this._fastBlockNumber!=null&&rthis._fastBlockNumber)&&(this._fastBlockNumber=r,this._fastBlockNumberPromise=Promise.resolve(r)))},e.prototype.waitForTransaction=function(r,i,n){return Qt(this,void 0,void 0,function(){return Yt(this,function(a){return[2,this._waitForTransaction(r,i??1,n||0,null)]})})},e.prototype._waitForTransaction=function(r,i,n,a){return Qt(this,void 0,void 0,function(){var s,o=this;return Yt(this,function(c){switch(c.label){case 0:return[4,this.getTransactionReceipt(r)];case 1:return s=c.sent(),(s?s.confirmations:0)>=i?[2,s]:[2,new Promise(function(u,f){var d=[],p=!1,b=function(){return p?!0:(p=!0,d.forEach(function(oe){oe()}),!1)},T=function(oe){oe.confirmations0){var re=setTimeout(function(){b()||f(vr.makeError("timeout exceeded",Er.Logger.errors.TIMEOUT,{timeout:n}))},n);re.unref&&re.unref(),d.push(function(){clearTimeout(re)})}})]}})})},e.prototype.getBlockNumber=function(){return Qt(this,void 0,void 0,function(){return Yt(this,function(r){return[2,this._getInternalBlockNumber(0)]})})},e.prototype.getGasPrice=function(){return Qt(this,void 0,void 0,function(){var r;return Yt(this,function(i){switch(i.label){case 0:return[4,this.getNetwork()];case 1:return i.sent(),[4,this.perform("getGasPrice",{})];case 2:r=i.sent();try{return[2,ss.BigNumber.from(r)]}catch(n){return[2,vr.throwError("bad result from backend",Er.Logger.errors.SERVER_ERROR,{method:"getGasPrice",result:r,error:n})]}return[2]}})})},e.prototype.getBalance=function(r,i){return Qt(this,void 0,void 0,function(){var n,a;return Yt(this,function(s){switch(s.label){case 0:return[4,this.getNetwork()];case 1:return s.sent(),[4,(0,bn.resolveProperties)({address:this._getAddress(r),blockTag:this._getBlockTag(i)})];case 2:return n=s.sent(),[4,this.perform("getBalance",n)];case 3:a=s.sent();try{return[2,ss.BigNumber.from(a)]}catch(o){return[2,vr.throwError("bad result from backend",Er.Logger.errors.SERVER_ERROR,{method:"getBalance",params:n,result:a,error:o})]}return[2]}})})},e.prototype.getTransactionCount=function(r,i){return Qt(this,void 0,void 0,function(){var n,a;return Yt(this,function(s){switch(s.label){case 0:return[4,this.getNetwork()];case 1:return s.sent(),[4,(0,bn.resolveProperties)({address:this._getAddress(r),blockTag:this._getBlockTag(i)})];case 2:return n=s.sent(),[4,this.perform("getTransactionCount",n)];case 3:a=s.sent();try{return[2,ss.BigNumber.from(a).toNumber()]}catch(o){return[2,vr.throwError("bad result from backend",Er.Logger.errors.SERVER_ERROR,{method:"getTransactionCount",params:n,result:a,error:o})]}return[2]}})})},e.prototype.getCode=function(r,i){return Qt(this,void 0,void 0,function(){var n,a;return Yt(this,function(s){switch(s.label){case 0:return[4,this.getNetwork()];case 1:return s.sent(),[4,(0,bn.resolveProperties)({address:this._getAddress(r),blockTag:this._getBlockTag(i)})];case 2:return n=s.sent(),[4,this.perform("getCode",n)];case 3:a=s.sent();try{return[2,(0,Kt.hexlify)(a)]}catch(o){return[2,vr.throwError("bad result from backend",Er.Logger.errors.SERVER_ERROR,{method:"getCode",params:n,result:a,error:o})]}return[2]}})})},e.prototype.getStorageAt=function(r,i,n){return Qt(this,void 0,void 0,function(){var a,s;return Yt(this,function(o){switch(o.label){case 0:return[4,this.getNetwork()];case 1:return o.sent(),[4,(0,bn.resolveProperties)({address:this._getAddress(r),blockTag:this._getBlockTag(n),position:Promise.resolve(i).then(function(c){return(0,Kt.hexValue)(c)})})];case 2:return a=o.sent(),[4,this.perform("getStorageAt",a)];case 3:s=o.sent();try{return[2,(0,Kt.hexlify)(s)]}catch(c){return[2,vr.throwError("bad result from backend",Er.Logger.errors.SERVER_ERROR,{method:"getStorageAt",params:a,result:s,error:c})]}return[2]}})})},e.prototype._wrapTransaction=function(r,i,n){var a=this;if(i!=null&&(0,Kt.hexDataLength)(i)!==32)throw new Error("invalid response - sendTransaction");var s=r;return i!=null&&r.hash!==i&&vr.throwError("Transaction hash mismatch from Provider.sendTransaction.",Er.Logger.errors.UNKNOWN_ERROR,{expectedHash:r.hash,returnedHash:i}),s.wait=function(o,c){return Qt(a,void 0,void 0,function(){var u,f;return Yt(this,function(d){switch(d.label){case 0:return o==null&&(o=1),c==null&&(c=0),u=void 0,o!==0&&n!=null&&(u={data:r.data,from:r.from,nonce:r.nonce,to:r.to,value:r.value,startBlock:n}),[4,this._waitForTransaction(r.hash,o,c,u)];case 1:return f=d.sent(),f==null&&o===0?[2,null]:(this._emitted["t:"+r.hash]=f.blockNumber,f.status===0&&vr.throwError("transaction failed",Er.Logger.errors.CALL_EXCEPTION,{transactionHash:r.hash,transaction:r,receipt:f}),[2,f])}})})},s},e.prototype.sendTransaction=function(r){return Qt(this,void 0,void 0,function(){var i,n,a,s,o;return Yt(this,function(c){switch(c.label){case 0:return[4,this.getNetwork()];case 1:return c.sent(),[4,Promise.resolve(r).then(function(u){return(0,Kt.hexlify)(u)})];case 2:return i=c.sent(),n=this.formatter.transaction(r),n.confirmations==null&&(n.confirmations=0),[4,this._getInternalBlockNumber(100+2*this.pollingInterval)];case 3:a=c.sent(),c.label=4;case 4:return c.trys.push([4,6,,7]),[4,this.perform("sendTransaction",{signedTransaction:i})];case 5:return s=c.sent(),[2,this._wrapTransaction(n,s,a)];case 6:throw o=c.sent(),o.transaction=n,o.transactionHash=n.hash,o;case 7:return[2]}})})},e.prototype._getTransactionRequest=function(r){return Qt(this,void 0,void 0,function(){var i,n,a,s,o=this;return Yt(this,function(c){switch(c.label){case 0:return[4,r];case 1:return i=c.sent(),n={},["from","to"].forEach(function(u){i[u]!=null&&(n[u]=Promise.resolve(i[u]).then(function(f){return f?o._getAddress(f):null}))}),["gasLimit","gasPrice","maxFeePerGas","maxPriorityFeePerGas","value"].forEach(function(u){i[u]!=null&&(n[u]=Promise.resolve(i[u]).then(function(f){return f?ss.BigNumber.from(f):null}))}),["type"].forEach(function(u){i[u]!=null&&(n[u]=Promise.resolve(i[u]).then(function(f){return f??null}))}),i.accessList&&(n.accessList=this.formatter.accessList(i.accessList)),["data"].forEach(function(u){i[u]!=null&&(n[u]=Promise.resolve(i[u]).then(function(f){return f?(0,Kt.hexlify)(f):null}))}),s=(a=this.formatter).transactionRequest,[4,(0,bn.resolveProperties)(n)];case 2:return[2,s.apply(a,[c.sent()])]}})})},e.prototype._getFilter=function(r){return Qt(this,void 0,void 0,function(){var i,n,a,s=this;return Yt(this,function(o){switch(o.label){case 0:return[4,r];case 1:return r=o.sent(),i={},r.address!=null&&(i.address=this._getAddress(r.address)),["blockHash","topics"].forEach(function(c){r[c]!=null&&(i[c]=r[c])}),["fromBlock","toBlock"].forEach(function(c){r[c]!=null&&(i[c]=s._getBlockTag(r[c]))}),a=(n=this.formatter).filter,[4,(0,bn.resolveProperties)(i)];case 2:return[2,a.apply(n,[o.sent()])]}})})},e.prototype._call=function(r,i,n){return Qt(this,void 0,void 0,function(){var a,s,o,c,u,f,d,p,b,T,I,L,U,re,oe,ge;return Yt(this,function(be){switch(be.label){case 0:return n>=zke&&vr.throwError("CCIP read exceeded maximum redirections",Er.Logger.errors.SERVER_ERROR,{redirects:n,transaction:r}),a=r.to,[4,this.perform("call",{transaction:r,blockTag:i})];case 1:if(s=be.sent(),!(n>=0&&i==="latest"&&a!=null&&s.substring(0,10)==="0x556f1830"&&(0,Kt.hexDataLength)(s)%32===4))return[3,5];be.label=2;case 2:for(be.trys.push([2,4,,5]),o=(0,Kt.hexDataSlice)(s,4),c=(0,Kt.hexDataSlice)(o,0,32),ss.BigNumber.from(c).eq(a)||vr.throwError("CCIP Read sender did not match",Er.Logger.errors.CALL_EXCEPTION,{name:"OffchainLookup",signature:"OffchainLookup(address,string[],bytes,bytes4,bytes)",transaction:r,data:s}),u=[],f=ss.BigNumber.from((0,Kt.hexDataSlice)(o,32,64)).toNumber(),d=ss.BigNumber.from((0,Kt.hexDataSlice)(o,f,f+32)).toNumber(),p=(0,Kt.hexDataSlice)(o,f+32),b=0;bthis._emitted.block?[2,null]:[2,void 0];if(!i)return[3,8];d=null,p=0,U.label=2;case 2:return p0},e.prototype._stopEvent=function(r){this.polling=this._events.filter(function(i){return i.pollable()}).length>0},e.prototype._addEventListener=function(r,i,n){var a=new $Q(Gg(r),i,n);return this._events.push(a),this._startEvent(a),this},e.prototype.on=function(r,i){return this._addEventListener(r,i,!1)},e.prototype.once=function(r,i){return this._addEventListener(r,i,!0)},e.prototype.emit=function(r){for(var i=this,n=[],a=1;a{"use strict";var BM=wu&&wu.__extends||function(){var t=function(e,r){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var a in n)Object.prototype.hasOwnProperty.call(n,a)&&(i[a]=n[a])},t(e,r)};return function(e,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");t(e,r);function i(){this.constructor=e}e.prototype=r===null?Object.create(r):(i.prototype=r.prototype,new i)}}(),hf=wu&&wu.__awaiter||function(t,e,r,i){function n(a){return a instanceof r?a:new r(function(s){s(a)})}return new(r||(r=Promise))(function(a,s){function o(f){try{u(i.next(f))}catch(d){s(d)}}function c(f){try{u(i.throw(f))}catch(d){s(d)}}function u(f){f.done?a(f.value):n(f.value).then(o,c)}u((i=i.apply(t,e||[])).next())})},mf=wu&&wu.__generator||function(t,e){var r={label:0,sent:function(){if(a[0]&1)throw a[1];return a[1]},trys:[],ops:[]},i,n,a,s;return s={next:o(0),throw:o(1),return:o(2)},typeof Symbol=="function"&&(s[Symbol.iterator]=function(){return this}),s;function o(u){return function(f){return c([u,f])}}function c(u){if(i)throw new TypeError("Generator is already executing.");for(;r;)try{if(i=1,n&&(a=u[0]&2?n.return:u[0]?n.throw||((a=n.return)&&a.call(n),0):n.next)&&!(a=a.call(n,u[1])).done)return a;switch(n=0,a&&(u=[u[0]&2,a.value]),u[0]){case 0:case 1:a=u;break;case 4:return r.label++,{value:u[1],done:!1};case 5:r.label++,n=u[1],u=[0];continue;case 7:u=r.ops.pop(),r.trys.pop();continue;default:if(a=r.trys,!(a=a.length>0&&a[a.length-1])&&(u[0]===6||u[0]===2)){r=0;continue}if(u[0]===3&&(!a||u[1]>a[0]&&u[1]=0&&a.match(/gas required exceeds allowance|always failing transaction|execution reverted|revert/)&&Bn.throwError("cannot estimate gas; transaction may fail or may require manual gas limit",zn.Logger.errors.UNPREDICTABLE_GAS_LIMIT,{error:e,method:t,transaction:i}),e}function rY(t){return new Promise(function(e){setTimeout(e,t)})}function rBe(t){if(t.error){var e=new Error(t.error.message);throw e.code=t.error.code,e.data=t.error.data,e}return t.result}function pb(t){return t&&t.toLowerCase()}var kM={},FM=function(t){BM(e,t);function e(r,i,n){var a=t.call(this)||this;if(r!==kM)throw new Error("do not call the JsonRpcSigner constructor directly; use provider.getSigner");return(0,_n.defineReadOnly)(a,"provider",i),n==null&&(n=0),typeof n=="string"?((0,_n.defineReadOnly)(a,"_address",a.provider.formatter.address(n)),(0,_n.defineReadOnly)(a,"_index",null)):typeof n=="number"?((0,_n.defineReadOnly)(a,"_index",n),(0,_n.defineReadOnly)(a,"_address",null)):Bn.throwArgumentError("invalid address or index","addressOrIndex",n),a}return e.prototype.connect=function(r){return Bn.throwError("cannot alter JSON-RPC Signer connection",zn.Logger.errors.UNSUPPORTED_OPERATION,{operation:"connect"})},e.prototype.connectUnchecked=function(){return new iBe(kM,this.provider,this._address||this._index)},e.prototype.getAddress=function(){var r=this;return this._address?Promise.resolve(this._address):this.provider.send("eth_accounts",[]).then(function(i){return i.length<=r._index&&Bn.throwError("unknown account #"+r._index,zn.Logger.errors.UNSUPPORTED_OPERATION,{operation:"getAddress"}),r.provider.formatter.address(i[r._index])})},e.prototype.sendUncheckedTransaction=function(r){var i=this;r=(0,_n.shallowCopy)(r);var n=this.getAddress().then(function(s){return s&&(s=s.toLowerCase()),s});if(r.gasLimit==null){var a=(0,_n.shallowCopy)(r);a.from=n,r.gasLimit=this.provider.estimateGas(a)}return r.to!=null&&(r.to=Promise.resolve(r.to).then(function(s){return hf(i,void 0,void 0,function(){var o;return mf(this,function(c){switch(c.label){case 0:return s==null?[2,null]:[4,this.provider.resolveName(s)];case 1:return o=c.sent(),o==null&&Bn.throwArgumentError("provided ENS name resolves to null","tx.to",s),[2,o]}})})})),(0,_n.resolveProperties)({tx:(0,_n.resolveProperties)(r),sender:n}).then(function(s){var o=s.tx,c=s.sender;o.from!=null?o.from.toLowerCase()!==c&&Bn.throwArgumentError("from address mismatch","transaction",r):o.from=c;var u=i.provider.constructor.hexlifyTransaction(o,{from:!0});return i.provider.send("eth_sendTransaction",[u]).then(function(f){return f},function(f){return typeof f.message=="string"&&f.message.match(/user denied/i)&&Bn.throwError("user rejected transaction",zn.Logger.errors.ACTION_REJECTED,{action:"sendTransaction",transaction:o}),nY("sendTransaction",f,u)})})},e.prototype.signTransaction=function(r){return Bn.throwError("signing transactions is unsupported",zn.Logger.errors.UNSUPPORTED_OPERATION,{operation:"signTransaction"})},e.prototype.sendTransaction=function(r){return hf(this,void 0,void 0,function(){var i,n,a,s=this;return mf(this,function(o){switch(o.label){case 0:return[4,this.provider._getInternalBlockNumber(100+2*this.provider.pollingInterval)];case 1:return i=o.sent(),[4,this.sendUncheckedTransaction(r)];case 2:n=o.sent(),o.label=3;case 3:return o.trys.push([3,5,,6]),[4,(0,iY.poll)(function(){return hf(s,void 0,void 0,function(){var c;return mf(this,function(u){switch(u.label){case 0:return[4,this.provider.getTransaction(n)];case 1:return c=u.sent(),c===null?[2,void 0]:[2,this.provider._wrapTransaction(c,n,i)]}})})},{oncePoll:this.provider})];case 4:return[2,o.sent()];case 5:throw a=o.sent(),a.transactionHash=n,a;case 6:return[2]}})})},e.prototype.signMessage=function(r){return hf(this,void 0,void 0,function(){var i,n,a;return mf(this,function(s){switch(s.label){case 0:return i=typeof r=="string"?(0,tY.toUtf8Bytes)(r):r,[4,this.getAddress()];case 1:n=s.sent(),s.label=2;case 2:return s.trys.push([2,4,,5]),[4,this.provider.send("personal_sign",[(0,Xg.hexlify)(i),n.toLowerCase()])];case 3:return[2,s.sent()];case 4:throw a=s.sent(),typeof a.message=="string"&&a.message.match(/user denied/i)&&Bn.throwError("user rejected signing",zn.Logger.errors.ACTION_REJECTED,{action:"signMessage",from:n,messageData:r}),a;case 5:return[2]}})})},e.prototype._legacySignMessage=function(r){return hf(this,void 0,void 0,function(){var i,n,a;return mf(this,function(s){switch(s.label){case 0:return i=typeof r=="string"?(0,tY.toUtf8Bytes)(r):r,[4,this.getAddress()];case 1:n=s.sent(),s.label=2;case 2:return s.trys.push([2,4,,5]),[4,this.provider.send("eth_sign",[n.toLowerCase(),(0,Xg.hexlify)(i)])];case 3:return[2,s.sent()];case 4:throw a=s.sent(),typeof a.message=="string"&&a.message.match(/user denied/i)&&Bn.throwError("user rejected signing",zn.Logger.errors.ACTION_REJECTED,{action:"_legacySignMessage",from:n,messageData:r}),a;case 5:return[2]}})})},e.prototype._signTypedData=function(r,i,n){return hf(this,void 0,void 0,function(){var a,s,o,c=this;return mf(this,function(u){switch(u.label){case 0:return[4,eY._TypedDataEncoder.resolveNames(r,i,n,function(f){return c.provider.resolveName(f)})];case 1:return a=u.sent(),[4,this.getAddress()];case 2:s=u.sent(),u.label=3;case 3:return u.trys.push([3,5,,6]),[4,this.provider.send("eth_signTypedData_v4",[s.toLowerCase(),JSON.stringify(eY._TypedDataEncoder.getPayload(a.domain,i,a.value))])];case 4:return[2,u.sent()];case 5:throw o=u.sent(),typeof o.message=="string"&&o.message.match(/user denied/i)&&Bn.throwError("user rejected signing",zn.Logger.errors.ACTION_REJECTED,{action:"_signTypedData",from:s,messageData:{domain:a.domain,types:i,value:a.value}}),o;case 6:return[2]}})})},e.prototype.unlock=function(r){return hf(this,void 0,void 0,function(){var i,n;return mf(this,function(a){switch(a.label){case 0:return i=this.provider,[4,this.getAddress()];case 1:return n=a.sent(),[2,i.send("personal_unlockAccount",[n.toLowerCase(),r,null])]}})})},e}($ke.Signer);wu.JsonRpcSigner=FM;var iBe=function(t){BM(e,t);function e(){return t!==null&&t.apply(this,arguments)||this}return e.prototype.sendTransaction=function(r){var i=this;return this.sendUncheckedTransaction(r).then(function(n){return{hash:n,nonce:null,gasLimit:null,gasPrice:null,data:null,value:null,chainId:null,confirmations:0,from:null,wait:function(a){return i.provider.waitForTransaction(n,a)}}})},e}(FM),nBe={chainId:!0,data:!0,gasLimit:!0,gasPrice:!0,nonce:!0,to:!0,value:!0,type:!0,accessList:!0,maxFeePerGas:!0,maxPriorityFeePerGas:!0},aBe=function(t){BM(e,t);function e(r,i){var n=this,a=i;return a==null&&(a=new Promise(function(s,o){setTimeout(function(){n.detectNetwork().then(function(c){s(c)},function(c){o(c)})},0)})),n=t.call(this,a)||this,r||(r=(0,_n.getStatic)(n.constructor,"defaultUrl")()),typeof r=="string"?(0,_n.defineReadOnly)(n,"connection",Object.freeze({url:r})):(0,_n.defineReadOnly)(n,"connection",Object.freeze((0,_n.shallowCopy)(r))),n._nextId=42,n}return Object.defineProperty(e.prototype,"_cache",{get:function(){return this._eventLoopCache==null&&(this._eventLoopCache={}),this._eventLoopCache},enumerable:!1,configurable:!0}),e.defaultUrl=function(){return"http://localhost:8545"},e.prototype.detectNetwork=function(){var r=this;return this._cache.detectNetwork||(this._cache.detectNetwork=this._uncachedDetectNetwork(),setTimeout(function(){r._cache.detectNetwork=null},0)),this._cache.detectNetwork},e.prototype._uncachedDetectNetwork=function(){return hf(this,void 0,void 0,function(){var r,i,n,a;return mf(this,function(s){switch(s.label){case 0:return[4,rY(0)];case 1:s.sent(),r=null,s.label=2;case 2:return s.trys.push([2,4,,9]),[4,this.send("eth_chainId",[])];case 3:return r=s.sent(),[3,9];case 4:i=s.sent(),s.label=5;case 5:return s.trys.push([5,7,,8]),[4,this.send("net_version",[])];case 6:return r=s.sent(),[3,8];case 7:return n=s.sent(),[3,8];case 8:return[3,9];case 9:if(r!=null){a=(0,_n.getStatic)(this.constructor,"getNetwork");try{return[2,a(NM.BigNumber.from(r).toNumber())]}catch(o){return[2,Bn.throwError("could not detect network",zn.Logger.errors.NETWORK_ERROR,{chainId:r,event:"invalidNetwork",serverError:o})]}}return[2,Bn.throwError("could not detect network",zn.Logger.errors.NETWORK_ERROR,{event:"noNetwork"})]}})})},e.prototype.getSigner=function(r){return new FM(kM,this,r)},e.prototype.getUncheckedSigner=function(r){return this.getSigner(r).connectUnchecked()},e.prototype.listAccounts=function(){var r=this;return this.send("eth_accounts",[]).then(function(i){return i.map(function(n){return r.formatter.address(n)})})},e.prototype.send=function(r,i){var n=this,a={method:r,params:i,id:this._nextId++,jsonrpc:"2.0"};this.emit("debug",{action:"request",request:(0,_n.deepCopy)(a),provider:this});var s=["eth_chainId","eth_blockNumber"].indexOf(r)>=0;if(s&&this._cache[r])return this._cache[r];var o=(0,iY.fetchJson)(this.connection,JSON.stringify(a),rBe).then(function(c){return n.emit("debug",{action:"response",request:a,response:c,provider:n}),c},function(c){throw n.emit("debug",{action:"response",error:c,request:a,provider:n}),c});return s&&(this._cache[r]=o,setTimeout(function(){n._cache[r]=null},0)),o},e.prototype.prepareRequest=function(r,i){switch(r){case"getBlockNumber":return["eth_blockNumber",[]];case"getGasPrice":return["eth_gasPrice",[]];case"getBalance":return["eth_getBalance",[pb(i.address),i.blockTag]];case"getTransactionCount":return["eth_getTransactionCount",[pb(i.address),i.blockTag]];case"getCode":return["eth_getCode",[pb(i.address),i.blockTag]];case"getStorageAt":return["eth_getStorageAt",[pb(i.address),(0,Xg.hexZeroPad)(i.position,32),i.blockTag]];case"sendTransaction":return["eth_sendRawTransaction",[i.signedTransaction]];case"getBlock":return i.blockTag?["eth_getBlockByNumber",[i.blockTag,!!i.includeTransactions]]:i.blockHash?["eth_getBlockByHash",[i.blockHash,!!i.includeTransactions]]:null;case"getTransaction":return["eth_getTransactionByHash",[i.transactionHash]];case"getTransactionReceipt":return["eth_getTransactionReceipt",[i.transactionHash]];case"call":{var n=(0,_n.getStatic)(this.constructor,"hexlifyTransaction");return["eth_call",[n(i.transaction,{from:!0}),i.blockTag]]}case"estimateGas":{var n=(0,_n.getStatic)(this.constructor,"hexlifyTransaction");return["eth_estimateGas",[n(i.transaction,{from:!0})]]}case"getLogs":return i.filter&&i.filter.address!=null&&(i.filter.address=pb(i.filter.address)),["eth_getLogs",[i.filter]];default:break}return null},e.prototype.perform=function(r,i){return hf(this,void 0,void 0,function(){var n,a,s,o;return mf(this,function(c){switch(c.label){case 0:return r==="call"||r==="estimateGas"?(n=i.transaction,n&&n.type!=null&&NM.BigNumber.from(n.type).isZero()?n.maxFeePerGas==null&&n.maxPriorityFeePerGas==null?[4,this.getFeeData()]:[3,2]:[3,2]):[3,2];case 1:a=c.sent(),a.maxFeePerGas==null&&a.maxPriorityFeePerGas==null&&(i=(0,_n.shallowCopy)(i),i.transaction=(0,_n.shallowCopy)(n),delete i.transaction.type),c.label=2;case 2:s=this.prepareRequest(r,i),s==null&&Bn.throwError(r+" not implemented",zn.Logger.errors.NOT_IMPLEMENTED,{operation:r}),c.label=3;case 3:return c.trys.push([3,5,,6]),[4,this.send(s[0],s[1])];case 4:return[2,c.sent()];case 5:return o=c.sent(),[2,nY(r,o,i)];case 6:return[2]}})})},e.prototype._startEvent=function(r){r.tag==="pending"&&this._startPending(),t.prototype._startEvent.call(this,r)},e.prototype._startPending=function(){if(this._pendingFilter==null){var r=this,i=this.send("eth_newPendingTransactionFilter",[]);this._pendingFilter=i,i.then(function(n){function a(){r.send("eth_getFilterChanges",[n]).then(function(s){if(r._pendingFilter!=i)return null;var o=Promise.resolve();return s.forEach(function(c){r._emitted["t:"+c.toLowerCase()]="pending",o=o.then(function(){return r.getTransaction(c).then(function(u){return r.emit("pending",u),null})})}),o.then(function(){return rY(1e3)})}).then(function(){if(r._pendingFilter!=i){r.send("eth_uninstallFilter",[n]);return}return setTimeout(function(){a()},0),null}).catch(function(s){})}return a(),n}).catch(function(n){})}},e.prototype._stopEvent=function(r){r.tag==="pending"&&this.listenerCount("pending")===0&&(this._pendingFilter=null),t.prototype._stopEvent.call(this,r)},e.hexlifyTransaction=function(r,i){var n=(0,_n.shallowCopy)(nBe);if(i)for(var a in i)i[a]&&(n[a]=!0);(0,_n.checkProperties)(r,n);var s={};return["chainId","gasLimit","gasPrice","type","maxFeePerGas","maxPriorityFeePerGas","nonce","value"].forEach(function(o){if(r[o]!=null){var c=(0,Xg.hexValue)(NM.BigNumber.from(r[o]));o==="gasLimit"&&(o="gas"),s[o]=c}}),["from","to","data"].forEach(function(o){r[o]!=null&&(s[o]=(0,Xg.hexlify)(r[o]))}),r.accessList&&(s.accessList=(0,Qke.accessListify)(r.accessList)),s},e}(eBe.BaseProvider);wu.JsonRpcProvider=aBe});var dm=x((dOt,aY)=>{"use strict";aY.exports={BINARY_TYPES:["nodebuffer","arraybuffer","fragments"],GUID:"258EAFA5-E914-47DA-95CA-C5AB0DC85B11",kStatusCode:Symbol("status-code"),kWebSocket:Symbol("websocket"),EMPTY_BUFFER:Buffer.alloc(0),NOOP:()=>{}}});var Y9=x((lOt,_Y)=>{var cY=require("fs"),gf=require("path"),dY=require("os"),lY=typeof __webpack_require__=="function"?__non_webpack_require__:require,sBe=process.config&&process.config.variables||{},oBe=!!process.env.PREBUILDS_ONLY,sY=process.versions.modules,DM=cBe()?"electron":"node",qM=dY.arch(),LM=dY.platform(),fY=process.env.LIBC||(dBe(LM)?"musl":"glibc"),UM=process.env.ARM_VERSION||(qM==="arm64"?"8":sBe.arm_version)||"",pY=(process.versions.uv||"").split(".")[0];_Y.exports=yf;function yf(t){return lY(yf.path(t))}yf.path=function(t){t=gf.resolve(t||".");try{var e=lY(gf.join(t,"package.json")).name.toUpperCase().replace(/-/g,"_");process.env[e+"_PREBUILD"]&&(t=process.env[e+"_PREBUILD"])}catch{}if(!oBe){var r=oY(gf.join(t,"build/Release"),uY);if(r)return r;var i=oY(gf.join(t,"build/Debug"),uY);if(i)return i}var n=o(t);if(n)return n;var a=o(gf.dirname(process.execPath));if(a)return a;var s=["platform="+LM,"arch="+qM,"runtime="+DM,"abi="+sY,"uv="+pY,UM?"armv="+UM:"","libc="+fY,"node="+process.versions.node,process.versions.electron?"electron="+process.versions.electron:"",typeof __webpack_require__=="function"?"webpack=true":""].filter(Boolean).join(" ");throw new Error("No native build was found for "+s+` + loaded from: `+t+` +`);function o(c){var u=jM(gf.join(c,"prebuilds")).map(hY),f=u.filter(mY(LM,qM)).sort(gY)[0];if(!!f){var d=gf.join(c,"prebuilds",f.name),p=jM(d).map(yY),b=p.filter(vY(DM,sY)),T=b.sort(bY(DM))[0];if(T)return gf.join(d,T.file)}}};function jM(t){try{return cY.readdirSync(t)}catch{return[]}}function oY(t,e){var r=jM(t).filter(e);return r[0]&&gf.join(t,r[0])}function uY(t){return/\.node$/.test(t)}function hY(t){var e=t.split("-");if(e.length===2){var r=e[0],i=e[1].split("+");if(!!r&&!!i.length&&!!i.every(Boolean))return{name:t,platform:r,architectures:i}}}function mY(t,e){return function(r){return r==null||r.platform!==t?!1:r.architectures.includes(e)}}function gY(t,e){return t.architectures.length-e.architectures.length}function yY(t){var e=t.split("."),r=e.pop(),i={file:t,specificity:0};if(r==="node"){for(var n=0;nr.specificity?-1:1:0}}function cBe(){return process.versions&&process.versions.electron||process.env.ELECTRON_RUN_AS_NODE?!0:typeof window<"u"&&window.process&&window.process.type==="renderer"}function dBe(t){return t==="linux"&&cY.existsSync("/etc/alpine-release")}yf.parseTags=yY;yf.matchTags=vY;yf.compareTags=bY;yf.parseTuple=hY;yf.matchTuple=mY;yf.compareTuples=gY});var xY=x((fOt,wY)=>{"use strict";var lBe=(t,e,r,i,n)=>{for(var a=0;a{let r=t.length;for(var i=0;i{"use strict";try{VM.exports=Y9()(__dirname)}catch{VM.exports=xY()}});var mb=x((hOt,zM)=>{"use strict";var{EMPTY_BUFFER:pBe}=dm();function SY(t,e){if(t.length===0)return pBe;if(t.length===1)return t[0];let r=Buffer.allocUnsafe(e),i=0;for(let n=0;n{"use strict";var PY=Symbol("kDone"),GM=Symbol("kRun"),JM=class{constructor(e){this[PY]=()=>{this.pending--,this[GM]()},this.concurrency=e||1/0,this.jobs=[],this.pending=0}add(e){this.jobs.push(e),this[GM]()}[GM](){if(this.pending!==this.concurrency&&this.jobs.length){let e=this.jobs.shift();this.pending++,e(this[PY])}}};OY.exports=JM});var vb=x((gOt,NY)=>{"use strict";var gb=require("zlib"),MY=mb(),hBe=RY(),{kStatusCode:CY,NOOP:mBe}=dm(),gBe=Buffer.from([0,0,255,255]),r7=Symbol("permessage-deflate"),vf=Symbol("total-length"),yb=Symbol("callback"),B0=Symbol("buffers"),XM=Symbol("error"),t7,KM=class{constructor(e,r,i){if(this._maxPayload=i|0,this._options=e||{},this._threshold=this._options.threshold!==void 0?this._options.threshold:1024,this._isServer=!!r,this._deflate=null,this._inflate=null,this.params=null,!t7){let n=this._options.concurrencyLimit!==void 0?this._options.concurrencyLimit:10;t7=new hBe(n)}}static get extensionName(){return"permessage-deflate"}offer(){let e={};return this._options.serverNoContextTakeover&&(e.server_no_context_takeover=!0),this._options.clientNoContextTakeover&&(e.client_no_context_takeover=!0),this._options.serverMaxWindowBits&&(e.server_max_window_bits=this._options.serverMaxWindowBits),this._options.clientMaxWindowBits?e.client_max_window_bits=this._options.clientMaxWindowBits:this._options.clientMaxWindowBits==null&&(e.client_max_window_bits=!0),e}accept(e){return e=this.normalizeParams(e),this.params=this._isServer?this.acceptAsServer(e):this.acceptAsClient(e),this.params}cleanup(){if(this._inflate&&(this._inflate.close(),this._inflate=null),this._deflate){let e=this._deflate[yb];this._deflate.close(),this._deflate=null,e&&e(new Error("The deflate stream was closed while data was being processed"))}}acceptAsServer(e){let r=this._options,i=e.find(n=>!(r.serverNoContextTakeover===!1&&n.server_no_context_takeover||n.server_max_window_bits&&(r.serverMaxWindowBits===!1||typeof r.serverMaxWindowBits=="number"&&r.serverMaxWindowBits>n.server_max_window_bits)||typeof r.clientMaxWindowBits=="number"&&!n.client_max_window_bits));if(!i)throw new Error("None of the extension offers can be accepted");return r.serverNoContextTakeover&&(i.server_no_context_takeover=!0),r.clientNoContextTakeover&&(i.client_no_context_takeover=!0),typeof r.serverMaxWindowBits=="number"&&(i.server_max_window_bits=r.serverMaxWindowBits),typeof r.clientMaxWindowBits=="number"?i.client_max_window_bits=r.clientMaxWindowBits:(i.client_max_window_bits===!0||r.clientMaxWindowBits===!1)&&delete i.client_max_window_bits,i}acceptAsClient(e){let r=e[0];if(this._options.clientNoContextTakeover===!1&&r.client_no_context_takeover)throw new Error('Unexpected parameter "client_no_context_takeover"');if(!r.client_max_window_bits)typeof this._options.clientMaxWindowBits=="number"&&(r.client_max_window_bits=this._options.clientMaxWindowBits);else if(this._options.clientMaxWindowBits===!1||typeof this._options.clientMaxWindowBits=="number"&&r.client_max_window_bits>this._options.clientMaxWindowBits)throw new Error('Unexpected or invalid parameter "client_max_window_bits"');return r}normalizeParams(e){return e.forEach(r=>{Object.keys(r).forEach(i=>{let n=r[i];if(n.length>1)throw new Error(`Parameter "${i}" must have only a single value`);if(n=n[0],i==="client_max_window_bits"){if(n!==!0){let a=+n;if(!Number.isInteger(a)||a<8||a>15)throw new TypeError(`Invalid value for parameter "${i}": ${n}`);n=a}else if(!this._isServer)throw new TypeError(`Invalid value for parameter "${i}": ${n}`)}else if(i==="server_max_window_bits"){let a=+n;if(!Number.isInteger(a)||a<8||a>15)throw new TypeError(`Invalid value for parameter "${i}": ${n}`);n=a}else if(i==="client_no_context_takeover"||i==="server_no_context_takeover"){if(n!==!0)throw new TypeError(`Invalid value for parameter "${i}": ${n}`)}else throw new Error(`Unknown parameter "${i}"`);r[i]=n})}),e}decompress(e,r,i){t7.add(n=>{this._decompress(e,r,(a,s)=>{n(),i(a,s)})})}compress(e,r,i){t7.add(n=>{this._compress(e,r,(a,s)=>{n(),i(a,s)})})}_decompress(e,r,i){let n=this._isServer?"client":"server";if(!this._inflate){let a=`${n}_max_window_bits`,s=typeof this.params[a]!="number"?gb.Z_DEFAULT_WINDOWBITS:this.params[a];this._inflate=gb.createInflateRaw({...this._options.zlibInflateOptions,windowBits:s}),this._inflate[r7]=this,this._inflate[vf]=0,this._inflate[B0]=[],this._inflate.on("error",vBe),this._inflate.on("data",IY)}this._inflate[yb]=i,this._inflate.write(e),r&&this._inflate.write(gBe),this._inflate.flush(()=>{let a=this._inflate[XM];if(a){this._inflate.close(),this._inflate=null,i(a);return}let s=MY.concat(this._inflate[B0],this._inflate[vf]);this._inflate._readableState.endEmitted?(this._inflate.close(),this._inflate=null):(this._inflate[vf]=0,this._inflate[B0]=[],r&&this.params[`${n}_no_context_takeover`]&&this._inflate.reset()),i(null,s)})}_compress(e,r,i){let n=this._isServer?"server":"client";if(!this._deflate){let a=`${n}_max_window_bits`,s=typeof this.params[a]!="number"?gb.Z_DEFAULT_WINDOWBITS:this.params[a];this._deflate=gb.createDeflateRaw({...this._options.zlibDeflateOptions,windowBits:s}),this._deflate[vf]=0,this._deflate[B0]=[],this._deflate.on("error",mBe),this._deflate.on("data",yBe)}this._deflate[yb]=i,this._deflate.write(e),this._deflate.flush(gb.Z_SYNC_FLUSH,()=>{if(!this._deflate)return;let a=MY.concat(this._deflate[B0],this._deflate[vf]);r&&(a=a.slice(0,a.length-4)),this._deflate[yb]=null,this._deflate[vf]=0,this._deflate[B0]=[],r&&this.params[`${n}_no_context_takeover`]&&this._deflate.reset(),i(null,a)})}};NY.exports=KM;function yBe(t){this[B0].push(t),this[vf]+=t.length}function IY(t){if(this[vf]+=t.length,this[r7]._maxPayload<1||this[vf]<=this[r7]._maxPayload){this[B0].push(t);return}this[XM]=new RangeError("Max payload size exceeded"),this[XM][CY]=1009,this.removeListener("data",IY),this.reset()}function vBe(t){this[r7]._inflate=null,t[CY]=1007,this[yb](t)}});var BY=x((yOt,kY)=>{"use strict";function bBe(t){let e=t.length,r=0;for(;r=e||(t[r+1]&192)!==128||(t[r+2]&192)!==128||t[r]===224&&(t[r+1]&224)===128||t[r]===237&&(t[r+1]&224)===160)return!1;r+=3}else if((t[r]&248)===240){if(r+3>=e||(t[r+1]&192)!==128||(t[r+2]&192)!==128||(t[r+3]&192)!==128||t[r]===240&&(t[r+1]&240)===128||t[r]===244&&t[r+1]>143||t[r]>244)return!1;r+=4}else return!1;return!0}kY.exports=bBe});var ZM=x((vOt,WM)=>{"use strict";try{WM.exports=Y9()(__dirname)}catch{WM.exports=BY()}});var QM=x((bOt,$M)=>{"use strict";function FY(t){return t>=1e3&&t<=1014&&t!==1004&&t!==1005&&t!==1006||t>=3e3&&t<=4999}function DY(t){let e=t.length,r=0;for(;r=e||(t[r+1]&192)!==128||(t[r+2]&192)!==128||t[r]===224&&(t[r+1]&224)===128||t[r]===237&&(t[r+1]&224)===160)return!1;r+=3}else if((t[r]&248)===240){if(r+3>=e||(t[r+1]&192)!==128||(t[r+2]&192)!==128||(t[r+3]&192)!==128||t[r]===240&&(t[r+1]&240)===128||t[r]===244&&t[r+1]>143||t[r]>244)return!1;r+=4}else return!1;return!0}try{let t=ZM();typeof t=="object"&&(t=t.Validation.isValidUTF8),$M.exports={isValidStatusCode:FY,isValidUTF8(e){return e.length<150?DY(e):t(e)}}}catch{$M.exports={isValidStatusCode:FY,isValidUTF8:DY}}});var rC=x((_Ot,HY)=>{"use strict";var{Writable:_Be}=require("stream"),qY=vb(),{BINARY_TYPES:wBe,EMPTY_BUFFER:xBe,kStatusCode:SBe,kWebSocket:EBe}=dm(),{concat:YM,toArrayBuffer:TBe,unmask:ABe}=mb(),{isValidStatusCode:PBe,isValidUTF8:LY}=QM(),_b=0,UY=1,jY=2,VY=3,eC=4,OBe=5,tC=class extends _Be{constructor(e,r,i,n){super(),this._binaryType=e||wBe[0],this[EBe]=void 0,this._extensions=r||{},this._isServer=!!i,this._maxPayload=n|0,this._bufferedBytes=0,this._buffers=[],this._compressed=!1,this._payloadLength=0,this._mask=void 0,this._fragmented=0,this._masked=!1,this._fin=!1,this._opcode=0,this._totalPayloadLength=0,this._messageLength=0,this._fragments=[],this._state=_b,this._loop=!1}_write(e,r,i){if(this._opcode===8&&this._state==_b)return i();this._bufferedBytes+=e.length,this._buffers.push(e),this.startLoop(i)}consume(e){if(this._bufferedBytes-=e,e===this._buffers[0].length)return this._buffers.shift();if(e=i.length?r.set(this._buffers.shift(),n):(r.set(new Uint8Array(i.buffer,i.byteOffset,e),n),this._buffers[0]=i.slice(e)),e-=i.length}while(e>0);return r}startLoop(e){let r;this._loop=!0;do switch(this._state){case _b:r=this.getInfo();break;case UY:r=this.getPayloadLength16();break;case jY:r=this.getPayloadLength64();break;case VY:this.getMask();break;case eC:r=this.getData(e);break;default:this._loop=!1;return}while(this._loop);e(r)}getInfo(){if(this._bufferedBytes<2){this._loop=!1;return}let e=this.consume(2);if((e[0]&48)!==0)return this._loop=!1,Gn(RangeError,"RSV2 and RSV3 must be clear",!0,1002);let r=(e[0]&64)===64;if(r&&!this._extensions[qY.extensionName])return this._loop=!1,Gn(RangeError,"RSV1 must be clear",!0,1002);if(this._fin=(e[0]&128)===128,this._opcode=e[0]&15,this._payloadLength=e[1]&127,this._opcode===0){if(r)return this._loop=!1,Gn(RangeError,"RSV1 must be clear",!0,1002);if(!this._fragmented)return this._loop=!1,Gn(RangeError,"invalid opcode 0",!0,1002);this._opcode=this._fragmented}else if(this._opcode===1||this._opcode===2){if(this._fragmented)return this._loop=!1,Gn(RangeError,`invalid opcode ${this._opcode}`,!0,1002);this._compressed=r}else if(this._opcode>7&&this._opcode<11){if(!this._fin)return this._loop=!1,Gn(RangeError,"FIN must be set",!0,1002);if(r)return this._loop=!1,Gn(RangeError,"RSV1 must be clear",!0,1002);if(this._payloadLength>125)return this._loop=!1,Gn(RangeError,`invalid payload length ${this._payloadLength}`,!0,1002)}else return this._loop=!1,Gn(RangeError,`invalid opcode ${this._opcode}`,!0,1002);if(!this._fin&&!this._fragmented&&(this._fragmented=this._opcode),this._masked=(e[1]&128)===128,this._isServer){if(!this._masked)return this._loop=!1,Gn(RangeError,"MASK must be set",!0,1002)}else if(this._masked)return this._loop=!1,Gn(RangeError,"MASK must be clear",!0,1002);if(this._payloadLength===126)this._state=UY;else if(this._payloadLength===127)this._state=jY;else return this.haveLength()}getPayloadLength16(){if(this._bufferedBytes<2){this._loop=!1;return}return this._payloadLength=this.consume(2).readUInt16BE(0),this.haveLength()}getPayloadLength64(){if(this._bufferedBytes<8){this._loop=!1;return}let e=this.consume(8),r=e.readUInt32BE(0);return r>Math.pow(2,53-32)-1?(this._loop=!1,Gn(RangeError,"Unsupported WebSocket frame: payload length > 2^53 - 1",!1,1009)):(this._payloadLength=r*Math.pow(2,32)+e.readUInt32BE(4),this.haveLength())}haveLength(){if(this._payloadLength&&this._opcode<8&&(this._totalPayloadLength+=this._payloadLength,this._totalPayloadLength>this._maxPayload&&this._maxPayload>0))return this._loop=!1,Gn(RangeError,"Max payload size exceeded",!1,1009);this._masked?this._state=VY:this._state=eC}getMask(){if(this._bufferedBytes<4){this._loop=!1;return}this._mask=this.consume(4),this._state=eC}getData(e){let r=xBe;if(this._payloadLength){if(this._bufferedBytes7)return this.controlMessage(r);if(this._compressed){this._state=OBe,this.decompress(r,e);return}return r.length&&(this._messageLength=this._totalPayloadLength,this._fragments.push(r)),this.dataMessage()}decompress(e,r){this._extensions[qY.extensionName].decompress(e,this._fin,(n,a)=>{if(n)return r(n);if(a.length){if(this._messageLength+=a.length,this._messageLength>this._maxPayload&&this._maxPayload>0)return r(Gn(RangeError,"Max payload size exceeded",!1,1009));this._fragments.push(a)}let s=this.dataMessage();if(s)return r(s);this.startLoop(r)})}dataMessage(){if(this._fin){let e=this._messageLength,r=this._fragments;if(this._totalPayloadLength=0,this._messageLength=0,this._fragmented=0,this._fragments=[],this._opcode===2){let i;this._binaryType==="nodebuffer"?i=YM(r,e):this._binaryType==="arraybuffer"?i=TBe(YM(r,e)):i=r,this.emit("message",i)}else{let i=YM(r,e);if(!LY(i))return this._loop=!1,Gn(Error,"invalid UTF-8 sequence",!0,1007);this.emit("message",i.toString())}}this._state=_b}controlMessage(e){if(this._opcode===8)if(this._loop=!1,e.length===0)this.emit("conclude",1005,""),this.end();else{if(e.length===1)return Gn(RangeError,"invalid payload length 1",!0,1002);{let r=e.readUInt16BE(0);if(!PBe(r))return Gn(RangeError,`invalid status code ${r}`,!0,1002);let i=e.slice(2);if(!LY(i))return Gn(Error,"invalid UTF-8 sequence",!0,1007);this.emit("conclude",r,i.toString()),this.end()}}else this._opcode===9?this.emit("ping",e):this.emit("pong",e);this._state=_b}};HY.exports=tC;function Gn(t,e,r,i){let n=new t(r?`Invalid WebSocket frame: ${e}`:e);return Error.captureStackTrace(n,Gn),n[SBe]=i,n}});var iC=x((wOt,JY)=>{"use strict";var{randomFillSync:RBe}=require("crypto"),zY=vb(),{EMPTY_BUFFER:MBe}=dm(),{isValidStatusCode:CBe}=QM(),{mask:GY,toBuffer:bf}=mb(),lm=Buffer.alloc(4),Fd=class{constructor(e,r){this._extensions=r||{},this._socket=e,this._firstFragment=!0,this._compress=!1,this._bufferedBytes=0,this._deflating=!1,this._queue=[]}static frame(e,r){let i=r.mask&&r.readOnly,n=r.mask?6:2,a=e.length;e.length>=65536?(n+=8,a=127):e.length>125&&(n+=2,a=126);let s=Buffer.allocUnsafe(i?e.length+n:n);return s[0]=r.fin?r.opcode|128:r.opcode,r.rsv1&&(s[0]|=64),s[1]=a,a===126?s.writeUInt16BE(e.length,2):a===127&&(s.writeUInt32BE(0,2),s.writeUInt32BE(e.length,6)),r.mask?(RBe(lm,0,4),s[1]|=128,s[n-4]=lm[0],s[n-3]=lm[1],s[n-2]=lm[2],s[n-1]=lm[3],i?(GY(e,lm,s,n,e.length),[s]):(GY(e,lm,e,0,e.length),[s,e])):[s,e]}close(e,r,i,n){let a;if(e===void 0)a=MBe;else{if(typeof e!="number"||!CBe(e))throw new TypeError("First argument must be a valid error code number");if(r===void 0||r==="")a=Buffer.allocUnsafe(2),a.writeUInt16BE(e,0);else{let s=Buffer.byteLength(r);if(s>123)throw new RangeError("The message must not be greater than 123 bytes");a=Buffer.allocUnsafe(2+s),a.writeUInt16BE(e,0),a.write(r,2)}}this._deflating?this.enqueue([this.doClose,a,i,n]):this.doClose(a,i,n)}doClose(e,r,i){this.sendFrame(Fd.frame(e,{fin:!0,rsv1:!1,opcode:8,mask:r,readOnly:!1}),i)}ping(e,r,i){let n=bf(e);if(n.length>125)throw new RangeError("The data size must not be greater than 125 bytes");this._deflating?this.enqueue([this.doPing,n,r,bf.readOnly,i]):this.doPing(n,r,bf.readOnly,i)}doPing(e,r,i,n){this.sendFrame(Fd.frame(e,{fin:!0,rsv1:!1,opcode:9,mask:r,readOnly:i}),n)}pong(e,r,i){let n=bf(e);if(n.length>125)throw new RangeError("The data size must not be greater than 125 bytes");this._deflating?this.enqueue([this.doPong,n,r,bf.readOnly,i]):this.doPong(n,r,bf.readOnly,i)}doPong(e,r,i,n){this.sendFrame(Fd.frame(e,{fin:!0,rsv1:!1,opcode:10,mask:r,readOnly:i}),n)}send(e,r,i){let n=bf(e),a=this._extensions[zY.extensionName],s=r.binary?2:1,o=r.compress;if(this._firstFragment?(this._firstFragment=!1,o&&a&&(o=n.length>=a._threshold),this._compress=o):(o=!1,s=0),r.fin&&(this._firstFragment=!0),a){let c={fin:r.fin,rsv1:o,opcode:s,mask:r.mask,readOnly:bf.readOnly};this._deflating?this.enqueue([this.dispatch,n,this._compress,c,i]):this.dispatch(n,this._compress,c,i)}else this.sendFrame(Fd.frame(n,{fin:r.fin,rsv1:!1,opcode:s,mask:r.mask,readOnly:bf.readOnly}),i)}dispatch(e,r,i,n){if(!r){this.sendFrame(Fd.frame(e,i),n);return}let a=this._extensions[zY.extensionName];this._bufferedBytes+=e.length,this._deflating=!0,a.compress(e,i.fin,(s,o)=>{if(this._socket.destroyed){let c=new Error("The socket was closed while data was being compressed");typeof n=="function"&&n(c);for(let u=0;u{"use strict";var Kg=class{constructor(e,r){this.target=r,this.type=e}},nC=class extends Kg{constructor(e,r){super("message",r),this.data=e}},aC=class extends Kg{constructor(e,r,i){super("close",i),this.wasClean=i._closeFrameReceived&&i._closeFrameSent,this.reason=r,this.code=e}},sC=class extends Kg{constructor(e){super("open",e)}},oC=class extends Kg{constructor(e,r){super("error",r),this.message=e.message,this.error=e}},IBe={addEventListener(t,e,r){if(typeof e!="function")return;function i(c){e.call(this,new nC(c,this))}function n(c,u){e.call(this,new aC(c,u,this))}function a(c){e.call(this,new oC(c,this))}function s(){e.call(this,new sC(this))}let o=r&&r.once?"once":"on";t==="message"?(i._listener=e,this[o](t,i)):t==="close"?(n._listener=e,this[o](t,n)):t==="error"?(a._listener=e,this[o](t,a)):t==="open"?(s._listener=e,this[o](t,s)):this[o](t,e)},removeEventListener(t,e){let r=this.listeners(t);for(let i=0;i{"use strict";var wb=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,1,1,1,0,0,1,1,0,1,1,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,0,1,0];function Dd(t,e,r){t[e]===void 0?t[e]=[r]:t[e].push(r)}function NBe(t){let e=Object.create(null);if(t===void 0||t==="")return e;let r=Object.create(null),i=!1,n=!1,a=!1,s,o,c=-1,u=-1,f=0;for(;f{let r=t[e];return Array.isArray(r)||(r=[r]),r.map(i=>[e].concat(Object.keys(i).map(n=>{let a=i[n];return Array.isArray(a)||(a=[a]),a.map(s=>s===!0?n:`${n}=${s}`).join("; ")})).join("; ")).join(", ")}).join(", ")}WY.exports={format:kBe,parse:NBe}});var pC=x((EOt,aee)=>{"use strict";var BBe=require("events"),FBe=require("https"),DBe=require("http"),QY=require("net"),qBe=require("tls"),{randomBytes:LBe,createHash:UBe}=require("crypto"),{URL:cC}=require("url"),F0=vb(),jBe=rC(),VBe=iC(),{BINARY_TYPES:ZY,EMPTY_BUFFER:dC,GUID:HBe,kStatusCode:zBe,kWebSocket:Js,NOOP:YY}=dm(),{addEventListener:GBe,removeEventListener:JBe}=KY(),{format:XBe,parse:KBe}=uC(),{toBuffer:WBe}=mb(),eee=["CONNECTING","OPEN","CLOSING","CLOSED"],lC=[8,13],ZBe=30*1e3,qr=class extends BBe{constructor(e,r,i){super(),this._binaryType=ZY[0],this._closeCode=1006,this._closeFrameReceived=!1,this._closeFrameSent=!1,this._closeMessage="",this._closeTimer=null,this._extensions={},this._protocol="",this._readyState=qr.CONNECTING,this._receiver=null,this._sender=null,this._socket=null,e!==null?(this._bufferedAmount=0,this._isServer=!1,this._redirects=0,Array.isArray(r)?r=r.join(", "):typeof r=="object"&&r!==null&&(i=r,r=void 0),tee(this,e,r,i)):this._isServer=!0}get binaryType(){return this._binaryType}set binaryType(e){!ZY.includes(e)||(this._binaryType=e,this._receiver&&(this._receiver._binaryType=e))}get bufferedAmount(){return this._socket?this._socket._writableState.length+this._sender._bufferedBytes:this._bufferedAmount}get extensions(){return Object.keys(this._extensions).join()}get protocol(){return this._protocol}get readyState(){return this._readyState}get url(){return this._url}setSocket(e,r,i){let n=new jBe(this.binaryType,this._extensions,this._isServer,i);this._sender=new VBe(e,this._extensions),this._receiver=n,this._socket=e,n[Js]=this,e[Js]=this,n.on("conclude",YBe),n.on("drain",eFe),n.on("error",tFe),n.on("message",rFe),n.on("ping",iFe),n.on("pong",nFe),e.setTimeout(0),e.setNoDelay(),r.length>0&&e.unshift(r),e.on("close",ree),e.on("data",i7),e.on("end",iee),e.on("error",nee),this._readyState=qr.OPEN,this.emit("open")}emitClose(){if(!this._socket){this._readyState=qr.CLOSED,this.emit("close",this._closeCode,this._closeMessage);return}this._extensions[F0.extensionName]&&this._extensions[F0.extensionName].cleanup(),this._receiver.removeAllListeners(),this._readyState=qr.CLOSED,this.emit("close",this._closeCode,this._closeMessage)}close(e,r){if(this.readyState!==qr.CLOSED){if(this.readyState===qr.CONNECTING){let i="WebSocket was closed before the connection was established";return _f(this,this._req,i)}if(this.readyState===qr.CLOSING){this._closeFrameSent&&this._closeFrameReceived&&this._socket.end();return}this._readyState=qr.CLOSING,this._sender.close(e,r,!this._isServer,i=>{i||(this._closeFrameSent=!0,this._closeFrameReceived&&this._socket.end())}),this._closeTimer=setTimeout(this._socket.destroy.bind(this._socket),ZBe)}}ping(e,r,i){if(this.readyState===qr.CONNECTING)throw new Error("WebSocket is not open: readyState 0 (CONNECTING)");if(typeof e=="function"?(i=e,e=r=void 0):typeof r=="function"&&(i=r,r=void 0),typeof e=="number"&&(e=e.toString()),this.readyState!==qr.OPEN){fC(this,e,i);return}r===void 0&&(r=!this._isServer),this._sender.ping(e||dC,r,i)}pong(e,r,i){if(this.readyState===qr.CONNECTING)throw new Error("WebSocket is not open: readyState 0 (CONNECTING)");if(typeof e=="function"?(i=e,e=r=void 0):typeof r=="function"&&(i=r,r=void 0),typeof e=="number"&&(e=e.toString()),this.readyState!==qr.OPEN){fC(this,e,i);return}r===void 0&&(r=!this._isServer),this._sender.pong(e||dC,r,i)}send(e,r,i){if(this.readyState===qr.CONNECTING)throw new Error("WebSocket is not open: readyState 0 (CONNECTING)");if(typeof r=="function"&&(i=r,r={}),typeof e=="number"&&(e=e.toString()),this.readyState!==qr.OPEN){fC(this,e,i);return}let n={binary:typeof e!="string",mask:!this._isServer,compress:!0,fin:!0,...r};this._extensions[F0.extensionName]||(n.compress=!1),this._sender.send(e||dC,n,i)}terminate(){if(this.readyState!==qr.CLOSED){if(this.readyState===qr.CONNECTING){let e="WebSocket was closed before the connection was established";return _f(this,this._req,e)}this._socket&&(this._readyState=qr.CLOSING,this._socket.destroy())}}};eee.forEach((t,e)=>{let r={enumerable:!0,value:e};Object.defineProperty(qr.prototype,t,r),Object.defineProperty(qr,t,r)});["binaryType","bufferedAmount","extensions","protocol","readyState","url"].forEach(t=>{Object.defineProperty(qr.prototype,t,{enumerable:!0})});["open","error","close","message"].forEach(t=>{Object.defineProperty(qr.prototype,`on${t}`,{configurable:!0,enumerable:!0,get(){let e=this.listeners(t);for(let r=0;r{_f(t,p,"Opening handshake has timed out")}),p.on("error",b=>{p===null||p.aborted||(p=t._req=null,t._readyState=qr.CLOSING,t.emit("error",b),t.emitClose())}),p.on("response",b=>{let T=b.headers.location,I=b.statusCode;if(T&&n.followRedirects&&I>=300&&I<400){if(++t._redirects>n.maxRedirects){_f(t,p,"Maximum redirects exceeded");return}p.abort();let L=new cC(T,e);tee(t,L,r,i)}else t.emit("unexpected-response",p,b)||_f(t,p,`Unexpected server response: ${b.statusCode}`)}),p.on("upgrade",(b,T,I)=>{if(t.emit("upgrade",b),t.readyState!==qr.CONNECTING)return;p=t._req=null;let L=UBe("sha1").update(u+HBe).digest("base64");if(b.headers["sec-websocket-accept"]!==L){_f(t,T,"Invalid Sec-WebSocket-Accept header");return}let U=b.headers["sec-websocket-protocol"],re=(r||"").split(/, */),oe;if(!r&&U?oe="Server sent a subprotocol but none was requested":r&&!U?oe="Server sent no subprotocol":U&&!re.includes(U)&&(oe="Server sent an invalid subprotocol"),oe){_f(t,T,oe);return}if(U&&(t._protocol=U),d)try{let ge=KBe(b.headers["sec-websocket-extensions"]);ge[F0.extensionName]&&(d.accept(ge[F0.extensionName]),t._extensions[F0.extensionName]=d)}catch{_f(t,T,"Invalid Sec-WebSocket-Extensions header");return}t.setSocket(T,I,n.maxPayload)})}function $Be(t){return t.path=t.socketPath,QY.connect(t)}function QBe(t){return t.path=void 0,!t.servername&&t.servername!==""&&(t.servername=QY.isIP(t.host)?"":t.host),qBe.connect(t)}function _f(t,e,r){t._readyState=qr.CLOSING;let i=new Error(r);Error.captureStackTrace(i,_f),e.setHeader?(e.abort(),e.socket&&!e.socket.destroyed&&e.socket.destroy(),e.once("abort",t.emitClose.bind(t)),t.emit("error",i)):(e.destroy(i),e.once("error",t.emit.bind(t,"error")),e.once("close",t.emitClose.bind(t)))}function fC(t,e,r){if(e){let i=WBe(e).length;t._socket?t._sender._bufferedBytes+=i:t._bufferedAmount+=i}if(r){let i=new Error(`WebSocket is not open: readyState ${t.readyState} (${eee[t.readyState]})`);r(i)}}function YBe(t,e){let r=this[Js];r._socket.removeListener("data",i7),r._socket.resume(),r._closeFrameReceived=!0,r._closeMessage=e,r._closeCode=t,t===1005?r.close():r.close(t,e)}function eFe(){this[Js]._socket.resume()}function tFe(t){let e=this[Js];e._socket.removeListener("data",i7),e._readyState=qr.CLOSING,e._closeCode=t[zBe],e.emit("error",t),e._socket.destroy()}function $Y(){this[Js].emitClose()}function rFe(t){this[Js].emit("message",t)}function iFe(t){let e=this[Js];e.pong(t,!e._isServer,YY),e.emit("ping",t)}function nFe(t){this[Js].emit("pong",t)}function ree(){let t=this[Js];this.removeListener("close",ree),this.removeListener("end",iee),t._readyState=qr.CLOSING,t._socket.read(),t._receiver.end(),this.removeListener("data",i7),this[Js]=void 0,clearTimeout(t._closeTimer),t._receiver._writableState.finished||t._receiver._writableState.errorEmitted?t.emitClose():(t._receiver.on("error",$Y),t._receiver.on("finish",$Y))}function i7(t){this[Js]._receiver.write(t)||this.pause()}function iee(){let t=this[Js];t._readyState=qr.CLOSING,t._receiver.end(),this.end()}function nee(){let t=this[Js];this.removeListener("error",nee),this.on("error",YY),t&&(t._readyState=qr.CLOSING,this.destroy())}});var cee=x((TOt,uee)=>{"use strict";var{Duplex:aFe}=require("stream");function see(t){t.emit("close")}function sFe(){!this.destroyed&&this._writableState.finished&&this.destroy()}function oee(t){this.removeListener("error",oee),this.destroy(),this.listenerCount("error")===0&&this.emit("error",t)}function oFe(t,e){let r=!0;function i(){r&&t._socket.resume()}t.readyState===t.CONNECTING?t.once("open",function(){t._receiver.removeAllListeners("drain"),t._receiver.on("drain",i)}):(t._receiver.removeAllListeners("drain"),t._receiver.on("drain",i));let n=new aFe({...e,autoDestroy:!1,emitClose:!1,objectMode:!1,writableObjectMode:!1});return t.on("message",function(s){n.push(s)||(r=!1,t._socket.pause())}),t.once("error",function(s){n.destroyed||n.destroy(s)}),t.once("close",function(){n.destroyed||n.push(null)}),n._destroy=function(a,s){if(t.readyState===t.CLOSED){s(a),process.nextTick(see,n);return}let o=!1;t.once("error",function(u){o=!0,s(u)}),t.once("close",function(){o||s(a),process.nextTick(see,n)}),t.terminate()},n._final=function(a){if(t.readyState===t.CONNECTING){t.once("open",function(){n._final(a)});return}t._socket!==null&&(t._socket._writableState.finished?(a(),n._readableState.endEmitted&&n.destroy()):(t._socket.once("finish",function(){a()}),t.close()))},n._read=function(){t.readyState===t.OPEN&&!r&&(r=!0,t._receiver._writableState.needDrain||t._socket.resume())},n._write=function(a,s,o){if(t.readyState===t.CONNECTING){t.once("open",function(){n._write(a,s,o)});return}t.send(a,o)},n.on("end",sFe),n.on("error",oee),n}uee.exports=oFe});var lee=x((AOt,dee)=>{"use strict";var uFe=require("events"),{createHash:cFe}=require("crypto"),{createServer:dFe,STATUS_CODES:hC}=require("http"),fm=vb(),lFe=pC(),{format:fFe,parse:pFe}=uC(),{GUID:hFe,kWebSocket:mFe}=dm(),gFe=/^[+/0-9A-Za-z]{22}==$/,mC=class extends uFe{constructor(e,r){if(super(),e={maxPayload:100*1024*1024,perMessageDeflate:!1,handleProtocols:null,clientTracking:!0,verifyClient:null,noServer:!1,backlog:null,server:null,host:null,path:null,port:null,...e},e.port==null&&!e.server&&!e.noServer)throw new TypeError('One of the "port", "server", or "noServer" options must be specified');if(e.port!=null?(this._server=dFe((i,n)=>{let a=hC[426];n.writeHead(426,{"Content-Length":a.length,"Content-Type":"text/plain"}),n.end(a)}),this._server.listen(e.port,e.host,e.backlog,r)):e.server&&(this._server=e.server),this._server){let i=this.emit.bind(this,"connection");this._removeListeners=yFe(this._server,{listening:this.emit.bind(this,"listening"),error:this.emit.bind(this,"error"),upgrade:(n,a,s)=>{this.handleUpgrade(n,a,s,i)}})}e.perMessageDeflate===!0&&(e.perMessageDeflate={}),e.clientTracking&&(this.clients=new Set),this.options=e}address(){if(this.options.noServer)throw new Error('The server is operating in "noServer" mode');return this._server?this._server.address():null}close(e){if(e&&this.once("close",e),this.clients)for(let i of this.clients)i.terminate();let r=this._server;if(r&&(this._removeListeners(),this._removeListeners=this._server=null,this.options.port!=null)){r.close(()=>this.emit("close"));return}process.nextTick(vFe,this)}shouldHandle(e){if(this.options.path){let r=e.url.indexOf("?");if((r!==-1?e.url.slice(0,r):e.url)!==this.options.path)return!1}return!0}handleUpgrade(e,r,i,n){r.on("error",gC);let a=e.headers["sec-websocket-key"]!==void 0?e.headers["sec-websocket-key"].trim():!1,s=+e.headers["sec-websocket-version"],o={};if(e.method!=="GET"||e.headers.upgrade.toLowerCase()!=="websocket"||!a||!gFe.test(a)||s!==8&&s!==13||!this.shouldHandle(e))return n7(r,400);if(this.options.perMessageDeflate){let c=new fm(this.options.perMessageDeflate,!0,this.options.maxPayload);try{let u=pFe(e.headers["sec-websocket-extensions"]);u[fm.extensionName]&&(c.accept(u[fm.extensionName]),o[fm.extensionName]=c)}catch{return n7(r,400)}}if(this.options.verifyClient){let c={origin:e.headers[`${s===8?"sec-websocket-origin":"origin"}`],secure:!!(e.socket.authorized||e.socket.encrypted),req:e};if(this.options.verifyClient.length===2){this.options.verifyClient(c,(u,f,d,p)=>{if(!u)return n7(r,f||401,d,p);this.completeUpgrade(a,o,e,r,i,n)});return}if(!this.options.verifyClient(c))return n7(r,401)}this.completeUpgrade(a,o,e,r,i,n)}completeUpgrade(e,r,i,n,a,s){if(!n.readable||!n.writable)return n.destroy();if(n[mFe])throw new Error("server.handleUpgrade() was called more than once with the same socket, possibly due to a misconfiguration");let c=["HTTP/1.1 101 Switching Protocols","Upgrade: websocket","Connection: Upgrade",`Sec-WebSocket-Accept: ${cFe("sha1").update(e+hFe).digest("base64")}`],u=new lFe(null),f=i.headers["sec-websocket-protocol"];if(f&&(f=f.split(",").map(bFe),this.options.handleProtocols?f=this.options.handleProtocols(f,i):f=f[0],f&&(c.push(`Sec-WebSocket-Protocol: ${f}`),u._protocol=f)),r[fm.extensionName]){let d=r[fm.extensionName].params,p=fFe({[fm.extensionName]:[d]});c.push(`Sec-WebSocket-Extensions: ${p}`),u._extensions=r}this.emit("headers",c,i),n.write(c.concat(`\r +`).join(`\r +`)),n.removeListener("error",gC),u.setSocket(n,a,this.options.maxPayload),this.clients&&(this.clients.add(u),u.on("close",()=>this.clients.delete(u))),s(u,i)}};dee.exports=mC;function yFe(t,e){for(let r of Object.keys(e))t.on(r,e[r]);return function(){for(let i of Object.keys(e))t.removeListener(i,e[i])}}function vFe(t){t.emit("close")}function gC(){this.destroy()}function n7(t,e,r,i){t.writable&&(r=r||hC[e],i={Connection:"close","Content-Type":"text/html","Content-Length":Buffer.byteLength(r),...i},t.write(`HTTP/1.1 ${e} ${hC[e]}\r +`+Object.keys(i).map(n=>`${n}: ${i[n]}`).join(`\r +`)+`\r +\r +`+r)),t.removeListener("error",gC),t.destroy()}function bFe(t){return t.trim()}});var yC=x((POt,fee)=>{"use strict";var xb=pC();xb.createWebSocketStream=cee();xb.Server=lee();xb.Receiver=rC();xb.Sender=iC();fee.exports=xb});var pee=x(Wg=>{"use strict";var _Fe=Wg&&Wg.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Wg,"__esModule",{value:!0});Wg.WebSocket=void 0;var wFe=_Fe(yC());Wg.WebSocket=wFe.default});var s7=x(qd=>{"use strict";var xFe=qd&&qd.__extends||function(){var t=function(e,r){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var a in n)Object.prototype.hasOwnProperty.call(n,a)&&(i[a]=n[a])},t(e,r)};return function(e,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");t(e,r);function i(){this.constructor=e}e.prototype=r===null?Object.create(r):(i.prototype=r.prototype,new i)}}(),vC=qd&&qd.__awaiter||function(t,e,r,i){function n(a){return a instanceof r?a:new r(function(s){s(a)})}return new(r||(r=Promise))(function(a,s){function o(f){try{u(i.next(f))}catch(d){s(d)}}function c(f){try{u(i.throw(f))}catch(d){s(d)}}function u(f){f.done?a(f.value):n(f.value).then(o,c)}u((i=i.apply(t,e||[])).next())})},bC=qd&&qd.__generator||function(t,e){var r={label:0,sent:function(){if(a[0]&1)throw a[1];return a[1]},trys:[],ops:[]},i,n,a,s;return s={next:o(0),throw:o(1),return:o(2)},typeof Symbol=="function"&&(s[Symbol.iterator]=function(){return this}),s;function o(u){return function(f){return c([u,f])}}function c(u){if(i)throw new TypeError("Generator is already executing.");for(;r;)try{if(i=1,n&&(a=u[0]&2?n.return:u[0]?n.throw||((a=n.return)&&a.call(n),0):n.next)&&!(a=a.call(n,u[1])).done)return a;switch(n=0,a&&(u=[u[0]&2,a.value]),u[0]){case 0:case 1:a=u;break;case 4:return r.label++,{value:u[1],done:!1};case 5:r.label++,n=u[1],u=[0];continue;case 7:u=r.ops.pop(),r.trys.pop();continue;default:if(a=r.trys,!(a=a.length>0&&a[a.length-1])&&(u[0]===6||u[0]===2)){r=0;continue}if(u[0]===3&&(!a||u[1]>a[0]&&u[1]{"use strict";var mee=xu&&xu.__extends||function(){var t=function(e,r){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var a in n)Object.prototype.hasOwnProperty.call(n,a)&&(i[a]=n[a])},t(e,r)};return function(e,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");t(e,r);function i(){this.constructor=e}e.prototype=r===null?Object.create(r):(i.prototype=r.prototype,new i)}}(),OFe=xu&&xu.__awaiter||function(t,e,r,i){function n(a){return a instanceof r?a:new r(function(s){s(a)})}return new(r||(r=Promise))(function(a,s){function o(f){try{u(i.next(f))}catch(d){s(d)}}function c(f){try{u(i.throw(f))}catch(d){s(d)}}function u(f){f.done?a(f.value):n(f.value).then(o,c)}u((i=i.apply(t,e||[])).next())})},RFe=xu&&xu.__generator||function(t,e){var r={label:0,sent:function(){if(a[0]&1)throw a[1];return a[1]},trys:[],ops:[]},i,n,a,s;return s={next:o(0),throw:o(1),return:o(2)},typeof Symbol=="function"&&(s[Symbol.iterator]=function(){return this}),s;function o(u){return function(f){return c([u,f])}}function c(u){if(i)throw new TypeError("Generator is already executing.");for(;r;)try{if(i=1,n&&(a=u[0]&2?n.return:u[0]?n.throw||((a=n.return)&&a.call(n),0):n.next)&&!(a=a.call(n,u[1])).done)return a;switch(n=0,a&&(u=[u[0]&2,a.value]),u[0]){case 0:case 1:a=u;break;case 4:return r.label++,{value:u[1],done:!1};case 5:r.label++,n=u[1],u=[0];continue;case 7:u=r.ops.pop(),r.trys.pop();continue;default:if(a=r.trys,!(a=a.length>0&&a[a.length-1])&&(u[0]===6||u[0]===2)){r=0;continue}if(u[0]===3&&(!a||u[1]>a[0]&&u[1]{"use strict";var vee=L0&&L0.__extends||function(){var t=function(e,r){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var a in n)Object.prototype.hasOwnProperty.call(n,a)&&(i[a]=n[a])},t(e,r)};return function(e,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");t(e,r);function i(){this.constructor=e}e.prototype=r===null?Object.create(r):(i.prototype=r.prototype,new i)}}();Object.defineProperty(L0,"__esModule",{value:!0});L0.AlchemyProvider=L0.AlchemyWebSocketProvider=void 0;var NFe=Xr(),kFe=k0(),BFe=s7(),FFe=Ht(),DFe=Da(),yee=new FFe.Logger(DFe.version),qFe=q0(),u7="_gg7wSSi0KMBsdKnGVfHDueq6xMB9EkC",bee=function(t){vee(e,t);function e(r,i){var n=this,a=new _ee(r,i),s=a.connection.url.replace(/^http/i,"ws").replace(".alchemyapi.",".ws.alchemyapi.");return n=t.call(this,s,a.network)||this,(0,NFe.defineReadOnly)(n,"apiKey",a.apiKey),n}return e.prototype.isCommunityResource=function(){return this.apiKey===u7},e}(BFe.WebSocketProvider);L0.AlchemyWebSocketProvider=bee;var _ee=function(t){vee(e,t);function e(){return t!==null&&t.apply(this,arguments)||this}return e.getWebSocketProvider=function(r,i){return new bee(r,i)},e.getApiKey=function(r){return r==null?u7:(r&&typeof r!="string"&&yee.throwArgumentError("invalid apiKey","apiKey",r),r)},e.getUrl=function(r,i){var n=null;switch(r.name){case"homestead":n="eth-mainnet.alchemyapi.io/v2/";break;case"goerli":n="eth-goerli.g.alchemy.com/v2/";break;case"matic":n="polygon-mainnet.g.alchemy.com/v2/";break;case"maticmum":n="polygon-mumbai.g.alchemy.com/v2/";break;case"arbitrum":n="arb-mainnet.g.alchemy.com/v2/";break;case"arbitrum-goerli":n="arb-goerli.g.alchemy.com/v2/";break;case"optimism":n="opt-mainnet.g.alchemy.com/v2/";break;case"optimism-goerli":n="opt-goerli.g.alchemy.com/v2/";break;default:yee.throwArgumentError("unsupported network","network",arguments[0])}return{allowGzip:!0,url:"https://"+n+i,throttleCallback:function(a,s){return i===u7&&(0,kFe.showThrottleMessage)(),Promise.resolve(!0)}}},e.prototype.isCommunityResource=function(){return this.apiKey===u7},e}(qFe.UrlJsonRpcProvider);L0.AlchemyProvider=_ee});var xee=x($g=>{"use strict";var LFe=$g&&$g.__extends||function(){var t=function(e,r){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var a in n)Object.prototype.hasOwnProperty.call(n,a)&&(i[a]=n[a])},t(e,r)};return function(e,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");t(e,r);function i(){this.constructor=e}e.prototype=r===null?Object.create(r):(i.prototype=r.prototype,new i)}}();Object.defineProperty($g,"__esModule",{value:!0});$g.AnkrProvider=void 0;var UFe=k0(),jFe=q0(),VFe=Ht(),HFe=Da(),zFe=new VFe.Logger(HFe.version),c7="9f7d929b018cdffb338517efa06f58359e86ff1ffd350bc889738523659e7972";function GFe(t){switch(t){case"homestead":return"rpc.ankr.com/eth/";case"ropsten":return"rpc.ankr.com/eth_ropsten/";case"rinkeby":return"rpc.ankr.com/eth_rinkeby/";case"goerli":return"rpc.ankr.com/eth_goerli/";case"matic":return"rpc.ankr.com/polygon/";case"arbitrum":return"rpc.ankr.com/arbitrum/"}return zFe.throwArgumentError("unsupported network","name",t)}var JFe=function(t){LFe(e,t);function e(){return t!==null&&t.apply(this,arguments)||this}return e.prototype.isCommunityResource=function(){return this.apiKey===c7},e.getApiKey=function(r){return r??c7},e.getUrl=function(r,i){i==null&&(i=c7);var n={allowGzip:!0,url:"https://"+GFe(r.name)+i,throttleCallback:function(a,s){return i.apiKey===c7&&(0,UFe.showThrottleMessage)(),Promise.resolve(!0)}};return i.projectSecret!=null&&(n.user="",n.password=i.projectSecret),n},e}(jFe.UrlJsonRpcProvider);$g.AnkrProvider=JFe});var Eee=x(Ld=>{"use strict";var XFe=Ld&&Ld.__extends||function(){var t=function(e,r){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var a in n)Object.prototype.hasOwnProperty.call(n,a)&&(i[a]=n[a])},t(e,r)};return function(e,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");t(e,r);function i(){this.constructor=e}e.prototype=r===null?Object.create(r):(i.prototype=r.prototype,new i)}}(),KFe=Ld&&Ld.__awaiter||function(t,e,r,i){function n(a){return a instanceof r?a:new r(function(s){s(a)})}return new(r||(r=Promise))(function(a,s){function o(f){try{u(i.next(f))}catch(d){s(d)}}function c(f){try{u(i.throw(f))}catch(d){s(d)}}function u(f){f.done?a(f.value):n(f.value).then(o,c)}u((i=i.apply(t,e||[])).next())})},WFe=Ld&&Ld.__generator||function(t,e){var r={label:0,sent:function(){if(a[0]&1)throw a[1];return a[1]},trys:[],ops:[]},i,n,a,s;return s={next:o(0),throw:o(1),return:o(2)},typeof Symbol=="function"&&(s[Symbol.iterator]=function(){return this}),s;function o(u){return function(f){return c([u,f])}}function c(u){if(i)throw new TypeError("Generator is already executing.");for(;r;)try{if(i=1,n&&(a=u[0]&2?n.return:u[0]?n.throw||((a=n.return)&&a.call(n),0):n.next)&&!(a=a.call(n,u[1])).done)return a;switch(n=0,a&&(u=[u[0]&2,a.value]),u[0]){case 0:case 1:a=u;break;case 4:return r.label++,{value:u[1],done:!1};case 5:r.label++,n=u[1],u=[0];continue;case 7:u=r.ops.pop(),r.trys.pop();continue;default:if(a=r.trys,!(a=a.length>0&&a[a.length-1])&&(u[0]===6||u[0]===2)){r=0;continue}if(u[0]===3&&(!a||u[1]>a[0]&&u[1]{"use strict";var eDe=jd&&jd.__extends||function(){var t=function(e,r){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var a in n)Object.prototype.hasOwnProperty.call(n,a)&&(i[a]=n[a])},t(e,r)};return function(e,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");t(e,r);function i(){this.constructor=e}e.prototype=r===null?Object.create(r):(i.prototype=r.prototype,new i)}}(),d7=jd&&jd.__awaiter||function(t,e,r,i){function n(a){return a instanceof r?a:new r(function(s){s(a)})}return new(r||(r=Promise))(function(a,s){function o(f){try{u(i.next(f))}catch(d){s(d)}}function c(f){try{u(i.throw(f))}catch(d){s(d)}}function u(f){f.done?a(f.value):n(f.value).then(o,c)}u((i=i.apply(t,e||[])).next())})},l7=jd&&jd.__generator||function(t,e){var r={label:0,sent:function(){if(a[0]&1)throw a[1];return a[1]},trys:[],ops:[]},i,n,a,s;return s={next:o(0),throw:o(1),return:o(2)},typeof Symbol=="function"&&(s[Symbol.iterator]=function(){return this}),s;function o(u){return function(f){return c([u,f])}}function c(u){if(i)throw new TypeError("Generator is already executing.");for(;r;)try{if(i=1,n&&(a=u[0]&2?n.return:u[0]?n.throw||((a=n.return)&&a.call(n),0):n.next)&&!(a=a.call(n,u[1])).done)return a;switch(n=0,a&&(u=[u[0]&2,a.value]),u[0]){case 0:case 1:a=u;break;case 4:return r.label++,{value:u[1],done:!1};case 5:r.label++,n=u[1],u=[0];continue;case 7:u=r.ops.pop(),r.trys.pop();continue;default:if(a=r.trys,!(a=a.length>0&&a[a.length-1])&&(u[0]===6||u[0]===2)){r=0;continue}if(u[0]===3&&(!a||u[1]>a[0]&&u[1]=0&&(e.throttleRetry=!0),e}return t.result}function Aee(t){if(t&&t.status==0&&t.message=="NOTOK"&&(t.result||"").toLowerCase().indexOf("rate limit")>=0){var e=new Error("throttled response");throw e.result=JSON.stringify(t),e.throttleRetry=!0,e}if(t.jsonrpc!="2.0"){var e=new Error("invalid response");throw e.result=JSON.stringify(t),e}if(t.error){var e=new Error(t.error.message||"unknown error");throw t.error.code&&(e.code=t.error.code),t.error.data&&(e.data=t.error.data),e}return t.result}function Pee(t){if(t==="pending")throw new Error("pending not supported");return t==="latest"?t:parseInt(t.substring(2),16)}function wC(t,e,r){if(t==="call"&&e.code===Ud.Logger.errors.SERVER_ERROR){var i=e.error;if(i&&(i.message.match(/reverted/i)||i.message.match(/VM execution error/i))){var n=i.data;if(n&&(n="0x"+n.replace(/^.*0x/i,"")),(0,f7.isHexString)(n))return n;U0.throwError("missing revert data in call exception",Ud.Logger.errors.CALL_EXCEPTION,{error:e,data:"0x"})}}var a=e.message;throw e.code===Ud.Logger.errors.SERVER_ERROR&&(e.error&&typeof e.error.message=="string"?a=e.error.message:typeof e.body=="string"?a=e.body:typeof e.responseText=="string"&&(a=e.responseText)),a=(a||"").toLowerCase(),a.match(/insufficient funds/)&&U0.throwError("insufficient funds for intrinsic transaction cost",Ud.Logger.errors.INSUFFICIENT_FUNDS,{error:e,method:t,transaction:r}),a.match(/same hash was already imported|transaction nonce is too low|nonce too low/)&&U0.throwError("nonce has already been used",Ud.Logger.errors.NONCE_EXPIRED,{error:e,method:t,transaction:r}),a.match(/another transaction with same nonce/)&&U0.throwError("replacement fee too low",Ud.Logger.errors.REPLACEMENT_UNDERPRICED,{error:e,method:t,transaction:r}),a.match(/execution failed due to an exception|execution reverted/)&&U0.throwError("cannot estimate gas; transaction may fail or may require manual gas limit",Ud.Logger.errors.UNPREDICTABLE_GAS_LIMIT,{error:e,method:t,transaction:r}),e}var oDe=function(t){eDe(e,t);function e(r,i){var n=t.call(this,r)||this;return(0,_C.defineReadOnly)(n,"baseUrl",n.getBaseUrl()),(0,_C.defineReadOnly)(n,"apiKey",i||null),n}return e.prototype.getBaseUrl=function(){switch(this.network?this.network.name:"invalid"){case"homestead":return"https://api.etherscan.io";case"goerli":return"https://api-goerli.etherscan.io";case"sepolia":return"https://api-sepolia.etherscan.io";case"matic":return"https://api.polygonscan.com";case"maticmum":return"https://api-testnet.polygonscan.com";case"arbitrum":return"https://api.arbiscan.io";case"arbitrum-goerli":return"https://api-goerli.arbiscan.io";case"optimism":return"https://api-optimistic.etherscan.io";case"optimism-goerli":return"https://api-goerli-optimistic.etherscan.io";default:}return U0.throwArgumentError("unsupported network","network",this.network.name)},e.prototype.getUrl=function(r,i){var n=Object.keys(i).reduce(function(s,o){var c=i[o];return c!=null&&(s+="&"+o+"="+c),s},""),a=this.apiKey?"&apikey="+this.apiKey:"";return this.baseUrl+"/api?module="+r+n+a},e.prototype.getPostUrl=function(){return this.baseUrl+"/api"},e.prototype.getPostData=function(r,i){return i.module=r,i.apikey=this.apiKey,i},e.prototype.fetch=function(r,i,n){return d7(this,void 0,void 0,function(){var a,s,o,c,u,f,d=this;return l7(this,function(p){switch(p.label){case 0:return a=n?this.getPostUrl():this.getUrl(r,i),s=n?this.getPostData(r,i):null,o=r==="proxy"?Aee:sDe,this.emit("debug",{action:"request",request:a,provider:this}),c={url:a,throttleSlotInterval:1e3,throttleCallback:function(b,T){return d.isCommunityResource()&&(0,iDe.showThrottleMessage)(),Promise.resolve(!0)}},u=null,s&&(c.headers={"content-type":"application/x-www-form-urlencoded; charset=UTF-8"},u=Object.keys(s).map(function(b){return b+"="+s[b]}).join("&")),[4,(0,rDe.fetchJson)(c,u,o||Aee)];case 1:return f=p.sent(),this.emit("debug",{action:"response",request:a,response:(0,_C.deepCopy)(f),provider:this}),[2,f]}})})},e.prototype.detectNetwork=function(){return d7(this,void 0,void 0,function(){return l7(this,function(r){return[2,this.network]})})},e.prototype.perform=function(r,i){return d7(this,void 0,void 0,function(){var n,s,a,s,o,c,u,f,d,p,b,T,I;return l7(this,function(L){switch(L.label){case 0:switch(n=r,n){case"getBlockNumber":return[3,1];case"getGasPrice":return[3,2];case"getBalance":return[3,3];case"getTransactionCount":return[3,4];case"getCode":return[3,5];case"getStorageAt":return[3,6];case"sendTransaction":return[3,7];case"getBlock":return[3,8];case"getTransaction":return[3,9];case"getTransactionReceipt":return[3,10];case"call":return[3,11];case"estimateGas":return[3,15];case"getLogs":return[3,19];case"getEtherPrice":return[3,26]}return[3,28];case 1:return[2,this.fetch("proxy",{action:"eth_blockNumber"})];case 2:return[2,this.fetch("proxy",{action:"eth_gasPrice"})];case 3:return[2,this.fetch("account",{action:"balance",address:i.address,tag:i.blockTag})];case 4:return[2,this.fetch("proxy",{action:"eth_getTransactionCount",address:i.address,tag:i.blockTag})];case 5:return[2,this.fetch("proxy",{action:"eth_getCode",address:i.address,tag:i.blockTag})];case 6:return[2,this.fetch("proxy",{action:"eth_getStorageAt",address:i.address,position:i.position,tag:i.blockTag})];case 7:return[2,this.fetch("proxy",{action:"eth_sendRawTransaction",hex:i.signedTransaction},!0).catch(function(U){return wC("sendTransaction",U,i.signedTransaction)})];case 8:if(i.blockTag)return[2,this.fetch("proxy",{action:"eth_getBlockByNumber",tag:i.blockTag,boolean:i.includeTransactions?"true":"false"})];throw new Error("getBlock by blockHash not implemented");case 9:return[2,this.fetch("proxy",{action:"eth_getTransactionByHash",txhash:i.transactionHash})];case 10:return[2,this.fetch("proxy",{action:"eth_getTransactionReceipt",txhash:i.transactionHash})];case 11:if(i.blockTag!=="latest")throw new Error("EtherscanProvider does not support blockTag for call");s=Tee(i.transaction),s.module="proxy",s.action="eth_call",L.label=12;case 12:return L.trys.push([12,14,,15]),[4,this.fetch("proxy",s,!0)];case 13:return[2,L.sent()];case 14:return a=L.sent(),[2,wC("call",a,i.transaction)];case 15:s=Tee(i.transaction),s.module="proxy",s.action="eth_estimateGas",L.label=16;case 16:return L.trys.push([16,18,,19]),[4,this.fetch("proxy",s,!0)];case 17:return[2,L.sent()];case 18:return o=L.sent(),[2,wC("estimateGas",o,i.transaction)];case 19:return c={action:"getLogs"},i.filter.fromBlock&&(c.fromBlock=Pee(i.filter.fromBlock)),i.filter.toBlock&&(c.toBlock=Pee(i.filter.toBlock)),i.filter.address&&(c.address=i.filter.address),i.filter.topics&&i.filter.topics.length>0&&(i.filter.topics.length>1&&U0.throwError("unsupported topic count",Ud.Logger.errors.UNSUPPORTED_OPERATION,{topics:i.filter.topics}),i.filter.topics.length===1&&(u=i.filter.topics[0],(typeof u!="string"||u.length!==66)&&U0.throwError("unsupported topic format",Ud.Logger.errors.UNSUPPORTED_OPERATION,{topic0:u}),c.topic0=u)),[4,this.fetch("logs",c)];case 20:f=L.sent(),d={},p=0,L.label=21;case 21:return p{"use strict";var uDe=Hd&&Hd.__extends||function(){var t=function(e,r){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var a in n)Object.prototype.hasOwnProperty.call(n,a)&&(i[a]=n[a])},t(e,r)};return function(e,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");t(e,r);function i(){this.constructor=e}e.prototype=r===null?Object.create(r):(i.prototype=r.prototype,new i)}}(),m7=Hd&&Hd.__awaiter||function(t,e,r,i){function n(a){return a instanceof r?a:new r(function(s){s(a)})}return new(r||(r=Promise))(function(a,s){function o(f){try{u(i.next(f))}catch(d){s(d)}}function c(f){try{u(i.throw(f))}catch(d){s(d)}}function u(f){f.done?a(f.value):n(f.value).then(o,c)}u((i=i.apply(t,e||[])).next())})},Ab=Hd&&Hd.__generator||function(t,e){var r={label:0,sent:function(){if(a[0]&1)throw a[1];return a[1]},trys:[],ops:[]},i,n,a,s;return s={next:o(0),throw:o(1),return:o(2)},typeof Symbol=="function"&&(s[Symbol.iterator]=function(){return this}),s;function o(u){return function(f){return c([u,f])}}function c(u){if(i)throw new TypeError("Generator is already executing.");for(;r;)try{if(i=1,n&&(a=u[0]&2?n.return:u[0]?n.throw||((a=n.return)&&a.call(n),0):n.next)&&!(a=a.call(n,u[1])).done)return a;switch(n=0,a&&(u=[u[0]&2,a.value]),u[0]){case 0:case 1:a=u;break;case 4:return r.label++,{value:u[1],done:!1};case 5:r.label++,n=u[1],u=[0];continue;case 7:u=r.ops.pop(),r.trys.pop();continue;default:if(a=r.trys,!(a=a.length>0&&a[a.length-1])&&(u[0]===6||u[0]===2)){r=0;continue}if(u[0]===3&&(!a||u[1]>a[0]&&u[1]e?null:(i+n)/2}function Yg(t){if(t===null)return"null";if(typeof t=="number"||typeof t=="boolean")return JSON.stringify(t);if(typeof t=="string")return t;if(dDe.BigNumber.isBigNumber(t))return t.toString();if(Array.isArray(t))return JSON.stringify(t.map(function(r){return Yg(r)}));if(typeof t=="object"){var e=Object.keys(t);return e.sort(),"{"+e.map(function(r){var i=t[r];return typeof i=="function"?i="[function]":i=Yg(i),JSON.stringify(r)+":"+i}).join(",")+"}"}throw new Error("unknown value type: "+typeof t)}var mDe=1;function Iee(t){var e=null,r=null,i=new Promise(function(s){e=function(){r&&(clearTimeout(r),r=null),s()},r=setTimeout(e,t)}),n=function(s){return i=i.then(s),i};function a(){return i}return{cancel:e,getPromise:a,wait:n}}var gDe=[j0.Logger.errors.CALL_EXCEPTION,j0.Logger.errors.INSUFFICIENT_FUNDS,j0.Logger.errors.NONCE_EXPIRED,j0.Logger.errors.REPLACEMENT_UNDERPRICED,j0.Logger.errors.UNPREDICTABLE_GAS_LIMIT],yDe=["address","args","errorArgs","errorSignature","method","transaction"];function h7(t,e){var r={weight:t.weight};return Object.defineProperty(r,"provider",{get:function(){return t.provider}}),t.start&&(r.start=t.start),e&&(r.duration=e-t.start),t.done&&(t.error?r.error=t.error:r.result=t.result||null),r}function vDe(t,e){return function(r){var i={};r.forEach(function(o){var c=t(o.result);i[c]||(i[c]={count:0,result:o.result}),i[c].count++});for(var n=Object.keys(i),a=0;a=e)return s.result}}}function bDe(t,e,r){var i=Yg;switch(e){case"getBlockNumber":return function(n){var a=n.map(function(o){return o.result}),s=Cee(n.map(function(o){return o.result}),2);if(s!=null)return s=Math.ceil(s),a.indexOf(s+1)>=0&&s++,s>=t._highestBlockNumber&&(t._highestBlockNumber=s),t._highestBlockNumber};case"getGasPrice":return function(n){var a=n.map(function(s){return s.result});return a.sort(),a[Math.floor(a.length/2)]};case"getEtherPrice":return function(n){return Cee(n.map(function(a){return a.result}))};case"getBalance":case"getTransactionCount":case"getCode":case"getStorageAt":case"call":case"estimateGas":case"getLogs":break;case"getTransaction":case"getTransactionReceipt":i=function(n){return n==null?null:(n=(0,Vd.shallowCopy)(n),n.confirmations=-1,Yg(n))};break;case"getBlock":r.includeTransactions?i=function(n){return n==null?null:(n=(0,Vd.shallowCopy)(n),n.transactions=n.transactions.map(function(a){return a=(0,Vd.shallowCopy)(a),a.confirmations=-1,a}),Yg(n))}:i=function(n){return n==null?null:Yg(n)};break;default:throw new Error("unknown method: "+e)}return vDe(i,t.quorum)}function Tb(t,e){return m7(this,void 0,void 0,function(){var r;return Ab(this,function(i){return r=t.provider,r.blockNumber!=null&&r.blockNumber>=e||e===-1?[2,r]:[2,(0,fDe.poll)(function(){return new Promise(function(n,a){setTimeout(function(){return r.blockNumber>=e?n(r):t.cancelled?n(null):n(void 0)},0)})},{oncePoll:r})]})})}function _De(t,e,r,i){return m7(this,void 0,void 0,function(){var n,a,s;return Ab(this,function(o){switch(o.label){case 0:switch(n=t.provider,a=r,a){case"getBlockNumber":return[3,1];case"getGasPrice":return[3,1];case"getEtherPrice":return[3,2];case"getBalance":return[3,3];case"getTransactionCount":return[3,3];case"getCode":return[3,3];case"getStorageAt":return[3,6];case"getBlock":return[3,9];case"call":return[3,12];case"estimateGas":return[3,12];case"getTransaction":return[3,15];case"getTransactionReceipt":return[3,15];case"getLogs":return[3,16]}return[3,19];case 1:return[2,n[r]()];case 2:return n.getEtherPrice?[2,n.getEtherPrice()]:[3,19];case 3:return i.blockTag&&(0,Qg.isHexString)(i.blockTag)?[4,Tb(t,e)]:[3,5];case 4:n=o.sent(),o.label=5;case 5:return[2,n[r](i.address,i.blockTag||"latest")];case 6:return i.blockTag&&(0,Qg.isHexString)(i.blockTag)?[4,Tb(t,e)]:[3,8];case 7:n=o.sent(),o.label=8;case 8:return[2,n.getStorageAt(i.address,i.position,i.blockTag||"latest")];case 9:return i.blockTag&&(0,Qg.isHexString)(i.blockTag)?[4,Tb(t,e)]:[3,11];case 10:n=o.sent(),o.label=11;case 11:return[2,n[i.includeTransactions?"getBlockWithTransactions":"getBlock"](i.blockTag||i.blockHash)];case 12:return i.blockTag&&(0,Qg.isHexString)(i.blockTag)?[4,Tb(t,e)]:[3,14];case 13:n=o.sent(),o.label=14;case 14:return r==="call"&&i.blockTag?[2,n[r](i.transaction,i.blockTag)]:[2,n[r](i.transaction)];case 15:return[2,n[r](i.transactionHash)];case 16:return s=i.filter,s.fromBlock&&(0,Qg.isHexString)(s.fromBlock)||s.toBlock&&(0,Qg.isHexString)(s.toBlock)?[4,Tb(t,e)]:[3,18];case 17:n=o.sent(),o.label=18;case 18:return[2,n.getLogs(s)];case 19:return[2,pm.throwError("unknown method error",j0.Logger.errors.UNKNOWN_ERROR,{method:r,params:i})]}})})}var wDe=function(t){uDe(e,t);function e(r,i){var n=this;r.length===0&&pm.throwArgumentError("missing providers","providers",r);var a=r.map(function(c,u){if(cDe.Provider.isProvider(c)){var f=(0,Ree.isCommunityResource)(c)?2e3:750,d=1;return Object.freeze({provider:c,weight:1,stallTimeout:f,priority:d})}var p=(0,Vd.shallowCopy)(c);p.priority==null&&(p.priority=1),p.stallTimeout==null&&(p.stallTimeout=(0,Ree.isCommunityResource)(c)?2e3:750),p.weight==null&&(p.weight=1);var b=p.weight;return(b%1||b>512||b<1)&&pm.throwArgumentError("invalid weight; must be integer in [1, 512]","providers["+u+"].weight",b),Object.freeze(p)}),s=a.reduce(function(c,u){return c+u.weight},0);i==null?i=s/2:i>s&&pm.throwArgumentError("quorum will always fail; larger than total weight","quorum",i);var o=Mee(a.map(function(c){return c.provider.network}));return o==null&&(o=new Promise(function(c,u){setTimeout(function(){n.detectNetwork().then(c,u)},0)})),n=t.call(this,o)||this,(0,Vd.defineReadOnly)(n,"providerConfigs",Object.freeze(a)),(0,Vd.defineReadOnly)(n,"quorum",i),n._highestBlockNumber=-1,n}return e.prototype.detectNetwork=function(){return m7(this,void 0,void 0,function(){var r;return Ab(this,function(i){switch(i.label){case 0:return[4,Promise.all(this.providerConfigs.map(function(n){return n.provider.getNetwork()}))];case 1:return r=i.sent(),[2,Mee(r)]}})})},e.prototype.perform=function(r,i){return m7(this,void 0,void 0,function(){var n,a,s,o,c,u,f,d,p,b,T,I=this;return Ab(this,function(L){switch(L.label){case 0:return r!=="sendTransaction"?[3,2]:[4,Promise.all(this.providerConfigs.map(function(U){return U.provider.sendTransaction(i.signedTransaction).then(function(re){return re.hash},function(re){return re})}))];case 1:for(n=L.sent(),a=0;a=b.quorum?(ce=o(be),ce!==void 0?(c.forEach(function(ee){ee.staller&&ee.staller.cancel(),ee.cancelled=!0}),[2,{value:ce}]):d?[3,4]:[4,Iee(100).getPromise()]):[3,5];case 3:ne.sent(),ne.label=4;case 4:d=!1,ne.label=5;case 5:return me=c.reduce(function(ee,R){if(!R.done||R.error==null)return ee;var g=R.error.code;return gDe.indexOf(g)>=0&&(ee[g]||(ee[g]={error:R.error,weight:0}),ee[g].weight+=R.weight),ee},{}),Object.keys(me).forEach(function(ee){var R=me[ee];if(!(R.weight{"use strict";var xDe=ey&&ey.__extends||function(){var t=function(e,r){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var a in n)Object.prototype.hasOwnProperty.call(n,a)&&(i[a]=n[a])},t(e,r)};return function(e,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");t(e,r);function i(){this.constructor=e}e.prototype=r===null?Object.create(r):(i.prototype=r.prototype,new i)}}();Object.defineProperty(ey,"__esModule",{value:!0});ey.IpcProvider=void 0;var SDe=require("net"),EDe=Xr(),kee=Ht(),TDe=Da(),ADe=new kee.Logger(TDe.version),PDe=cm(),ODe=function(t){xDe(e,t);function e(r,i){var n=this;return r==null&&ADe.throwError("missing path",kee.Logger.errors.MISSING_ARGUMENT,{arg:"path"}),n=t.call(this,"ipc://"+r,i)||this,(0,EDe.defineReadOnly)(n,"path",r),n}return e.prototype.send=function(r,i){var n=this,a=JSON.stringify({method:r,params:i,id:42,jsonrpc:"2.0"});return new Promise(function(s,o){var c=Buffer.alloc(0),u=(0,SDe.connect)(n.path);u.on("data",function(f){c=Buffer.concat([c,f])}),u.on("end",function(){try{s(JSON.parse(c.toString()).result),u.destroy()}catch(f){o(f),u.destroy()}}),u.on("error",function(f){o(f),u.destroy()}),u.write(a),u.end()})},e}(PDe.JsonRpcProvider);ey.IpcProvider=ODe});var Lee=x(V0=>{"use strict";var Fee=V0&&V0.__extends||function(){var t=function(e,r){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var a in n)Object.prototype.hasOwnProperty.call(n,a)&&(i[a]=n[a])},t(e,r)};return function(e,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");t(e,r);function i(){this.constructor=e}e.prototype=r===null?Object.create(r):(i.prototype=r.prototype,new i)}}();Object.defineProperty(V0,"__esModule",{value:!0});V0.InfuraProvider=V0.InfuraWebSocketProvider=void 0;var xC=Xr(),RDe=s7(),MDe=k0(),SC=Ht(),CDe=Da(),g7=new SC.Logger(CDe.version),IDe=q0(),Pb="84842078b09946638c03157f83405213",Dee=function(t){Fee(e,t);function e(r,i){var n=this,a=new qee(r,i),s=a.connection;s.password&&g7.throwError("INFURA WebSocket project secrets unsupported",SC.Logger.errors.UNSUPPORTED_OPERATION,{operation:"InfuraProvider.getWebSocketProvider()"});var o=s.url.replace(/^http/i,"ws").replace("/v3/","/ws/v3/");return n=t.call(this,o,r)||this,(0,xC.defineReadOnly)(n,"apiKey",a.projectId),(0,xC.defineReadOnly)(n,"projectId",a.projectId),(0,xC.defineReadOnly)(n,"projectSecret",a.projectSecret),n}return e.prototype.isCommunityResource=function(){return this.projectId===Pb},e}(RDe.WebSocketProvider);V0.InfuraWebSocketProvider=Dee;var qee=function(t){Fee(e,t);function e(){return t!==null&&t.apply(this,arguments)||this}return e.getWebSocketProvider=function(r,i){return new Dee(r,i)},e.getApiKey=function(r){var i={apiKey:Pb,projectId:Pb,projectSecret:null};return r==null||(typeof r=="string"?i.projectId=r:r.projectSecret!=null?(g7.assertArgument(typeof r.projectId=="string","projectSecret requires a projectId","projectId",r.projectId),g7.assertArgument(typeof r.projectSecret=="string","invalid projectSecret","projectSecret","[REDACTED]"),i.projectId=r.projectId,i.projectSecret=r.projectSecret):r.projectId&&(i.projectId=r.projectId),i.apiKey=i.projectId),i},e.getUrl=function(r,i){var n=null;switch(r?r.name:"unknown"){case"homestead":n="mainnet.infura.io";break;case"goerli":n="goerli.infura.io";break;case"sepolia":n="sepolia.infura.io";break;case"matic":n="polygon-mainnet.infura.io";break;case"maticmum":n="polygon-mumbai.infura.io";break;case"optimism":n="optimism-mainnet.infura.io";break;case"optimism-goerli":n="optimism-goerli.infura.io";break;case"arbitrum":n="arbitrum-mainnet.infura.io";break;case"arbitrum-goerli":n="arbitrum-goerli.infura.io";break;default:g7.throwError("unsupported network",SC.Logger.errors.INVALID_ARGUMENT,{argument:"network",value:r})}var a={allowGzip:!0,url:"https://"+n+"/v3/"+i.projectId,throttleCallback:function(s,o){return i.projectId===Pb&&(0,MDe.showThrottleMessage)(),Promise.resolve(!0)}};return i.projectSecret!=null&&(a.user="",a.password=i.projectSecret),a},e.prototype.isCommunityResource=function(){return this.projectId===Pb},e}(IDe.UrlJsonRpcProvider);V0.InfuraProvider=qee});var Uee=x(ty=>{"use strict";var NDe=ty&&ty.__extends||function(){var t=function(e,r){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var a in n)Object.prototype.hasOwnProperty.call(n,a)&&(i[a]=n[a])},t(e,r)};return function(e,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");t(e,r);function i(){this.constructor=e}e.prototype=r===null?Object.create(r):(i.prototype=r.prototype,new i)}}();Object.defineProperty(ty,"__esModule",{value:!0});ty.JsonRpcBatchProvider=void 0;var kDe=Xr(),BDe=um(),FDe=cm(),DDe=function(t){NDe(e,t);function e(){return t!==null&&t.apply(this,arguments)||this}return e.prototype.send=function(r,i){var n=this,a={method:r,params:i,id:this._nextId++,jsonrpc:"2.0"};this._pendingBatch==null&&(this._pendingBatch=[]);var s={request:a,resolve:null,reject:null},o=new Promise(function(c,u){s.resolve=c,s.reject=u});return this._pendingBatch.push(s),this._pendingBatchAggregator||(this._pendingBatchAggregator=setTimeout(function(){var c=n._pendingBatch;n._pendingBatch=null,n._pendingBatchAggregator=null;var u=c.map(function(f){return f.request});return n.emit("debug",{action:"requestBatch",request:(0,kDe.deepCopy)(u),provider:n}),(0,BDe.fetchJson)(n.connection,JSON.stringify(u)).then(function(f){n.emit("debug",{action:"response",request:u,response:f,provider:n}),c.forEach(function(d,p){var b=f[p];if(b.error){var T=new Error(b.error.message);T.code=b.error.code,T.data=b.error.data,d.reject(T)}else d.resolve(b.result)})},function(f){n.emit("debug",{action:"response",error:f,request:u,provider:n}),c.forEach(function(d){d.reject(f)})})},10)),o},e}(FDe.JsonRpcProvider);ty.JsonRpcBatchProvider=DDe});var jee=x(ry=>{"use strict";var qDe=ry&&ry.__extends||function(){var t=function(e,r){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var a in n)Object.prototype.hasOwnProperty.call(n,a)&&(i[a]=n[a])},t(e,r)};return function(e,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");t(e,r);function i(){this.constructor=e}e.prototype=r===null?Object.create(r):(i.prototype=r.prototype,new i)}}();Object.defineProperty(ry,"__esModule",{value:!0});ry.NodesmithProvider=void 0;var LDe=q0(),UDe=Ht(),jDe=Da(),EC=new UDe.Logger(jDe.version),VDe="ETHERS_JS_SHARED",HDe=function(t){qDe(e,t);function e(){return t!==null&&t.apply(this,arguments)||this}return e.getApiKey=function(r){return r&&typeof r!="string"&&EC.throwArgumentError("invalid apiKey","apiKey",r),r||VDe},e.getUrl=function(r,i){EC.warn("NodeSmith will be discontinued on 2019-12-20; please migrate to another platform.");var n=null;switch(r.name){case"homestead":n="https://ethereum.api.nodesmith.io/v1/mainnet/jsonrpc";break;case"ropsten":n="https://ethereum.api.nodesmith.io/v1/ropsten/jsonrpc";break;case"rinkeby":n="https://ethereum.api.nodesmith.io/v1/rinkeby/jsonrpc";break;case"goerli":n="https://ethereum.api.nodesmith.io/v1/goerli/jsonrpc";break;case"kovan":n="https://ethereum.api.nodesmith.io/v1/kovan/jsonrpc";break;default:EC.throwArgumentError("unsupported network","network",arguments[0])}return n+"?apiKey="+i},e}(LDe.UrlJsonRpcProvider);ry.NodesmithProvider=HDe});var Gee=x(iy=>{"use strict";var zDe=iy&&iy.__extends||function(){var t=function(e,r){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var a in n)Object.prototype.hasOwnProperty.call(n,a)&&(i[a]=n[a])},t(e,r)};return function(e,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");t(e,r);function i(){this.constructor=e}e.prototype=r===null?Object.create(r):(i.prototype=r.prototype,new i)}}();Object.defineProperty(iy,"__esModule",{value:!0});iy.PocketProvider=void 0;var zee=Ht(),GDe=Da(),Vee=new zee.Logger(GDe.version),JDe=q0(),Hee="62e1ad51b37b8e00394bda3b",XDe=function(t){zDe(e,t);function e(){return t!==null&&t.apply(this,arguments)||this}return e.getApiKey=function(r){var i={applicationId:null,loadBalancer:!0,applicationSecretKey:null};return r==null?i.applicationId=Hee:typeof r=="string"?i.applicationId=r:r.applicationSecretKey!=null?(i.applicationId=r.applicationId,i.applicationSecretKey=r.applicationSecretKey):r.applicationId?i.applicationId=r.applicationId:Vee.throwArgumentError("unsupported PocketProvider apiKey","apiKey",r),i},e.getUrl=function(r,i){var n=null;switch(r?r.name:"unknown"){case"goerli":n="eth-goerli.gateway.pokt.network";break;case"homestead":n="eth-mainnet.gateway.pokt.network";break;case"kovan":n="poa-kovan.gateway.pokt.network";break;case"matic":n="poly-mainnet.gateway.pokt.network";break;case"maticmum":n="polygon-mumbai-rpc.gateway.pokt.network";break;case"rinkeby":n="eth-rinkeby.gateway.pokt.network";break;case"ropsten":n="eth-ropsten.gateway.pokt.network";break;default:Vee.throwError("unsupported network",zee.Logger.errors.INVALID_ARGUMENT,{argument:"network",value:r})}var a="https://"+n+"/v1/lb/"+i.applicationId,s={headers:{},url:a};return i.applicationSecretKey!=null&&(s.user="",s.password=i.applicationSecretKey),s},e.prototype.isCommunityResource=function(){return this.applicationId===Hee},e}(JDe.UrlJsonRpcProvider);iy.PocketProvider=XDe});var Kee=x(ny=>{"use strict";var KDe=ny&&ny.__extends||function(){var t=function(e,r){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var a in n)Object.prototype.hasOwnProperty.call(n,a)&&(i[a]=n[a])},t(e,r)};return function(e,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");t(e,r);function i(){this.constructor=e}e.prototype=r===null?Object.create(r):(i.prototype=r.prototype,new i)}}();Object.defineProperty(ny,"__esModule",{value:!0});ny.Web3Provider=void 0;var y7=Xr(),WDe=Ht(),ZDe=Da(),Jee=new WDe.Logger(ZDe.version),$De=cm(),QDe=1;function Xee(t,e){var r="Web3LegacyFetcher";return function(i,n){var a=this,s={method:i,params:n,id:QDe++,jsonrpc:"2.0"};return new Promise(function(o,c){a.emit("debug",{action:"request",fetcher:r,request:(0,y7.deepCopy)(s),provider:a}),e(s,function(u,f){if(u)return a.emit("debug",{action:"response",fetcher:r,error:u,request:s,provider:a}),c(u);if(a.emit("debug",{action:"response",fetcher:r,request:s,response:f,provider:a}),f.error){var d=new Error(f.error.message);return d.code=f.error.code,d.data=f.error.data,c(d)}o(f.result)})})}}function YDe(t){return function(e,r){var i=this;r==null&&(r=[]);var n={method:e,params:r};return this.emit("debug",{action:"request",fetcher:"Eip1193Fetcher",request:(0,y7.deepCopy)(n),provider:this}),t.request(n).then(function(a){return i.emit("debug",{action:"response",fetcher:"Eip1193Fetcher",request:n,response:a,provider:i}),a},function(a){throw i.emit("debug",{action:"response",fetcher:"Eip1193Fetcher",request:n,error:a,provider:i}),a})}}var eqe=function(t){KDe(e,t);function e(r,i){var n=this;r==null&&Jee.throwArgumentError("missing provider","provider",r);var a=null,s=null,o=null;return typeof r=="function"?(a="unknown:",s=r):(a=r.host||r.path||"",!a&&r.isMetaMask&&(a="metamask"),o=r,r.request?(a===""&&(a="eip-1193:"),s=YDe(r)):r.sendAsync?s=Xee(r,r.sendAsync.bind(r)):r.send?s=Xee(r,r.send.bind(r)):Jee.throwArgumentError("unsupported provider","provider",r),a||(a="unknown:")),n=t.call(this,a,i)||this,(0,y7.defineReadOnly)(n,"jsonRpcFetchFunc",s),(0,y7.defineReadOnly)(n,"provider",o),n}return e.prototype.send=function(r,i){return this.jsonRpcFetchFunc(r,i)},e}($De.JsonRpcProvider);ny.Web3Provider=eqe});var PC=x(kt=>{"use strict";Object.defineProperty(kt,"__esModule",{value:!0});kt.Formatter=kt.showThrottleMessage=kt.isCommunityResourcable=kt.isCommunityResource=kt.getNetwork=kt.getDefaultProvider=kt.JsonRpcSigner=kt.IpcProvider=kt.WebSocketProvider=kt.Web3Provider=kt.StaticJsonRpcProvider=kt.PocketProvider=kt.NodesmithProvider=kt.JsonRpcBatchProvider=kt.JsonRpcProvider=kt.InfuraWebSocketProvider=kt.InfuraProvider=kt.EtherscanProvider=kt.CloudflareProvider=kt.AnkrProvider=kt.AlchemyWebSocketProvider=kt.AlchemyProvider=kt.FallbackProvider=kt.UrlJsonRpcProvider=kt.Resolver=kt.BaseProvider=kt.Provider=void 0;var tqe=mg();Object.defineProperty(kt,"Provider",{enumerable:!0,get:function(){return tqe.Provider}});var Zee=SM();Object.defineProperty(kt,"getNetwork",{enumerable:!0,get:function(){return Zee.getNetwork}});var $ee=fb();Object.defineProperty(kt,"BaseProvider",{enumerable:!0,get:function(){return $ee.BaseProvider}});Object.defineProperty(kt,"Resolver",{enumerable:!0,get:function(){return $ee.Resolver}});var TC=wee();Object.defineProperty(kt,"AlchemyProvider",{enumerable:!0,get:function(){return TC.AlchemyProvider}});Object.defineProperty(kt,"AlchemyWebSocketProvider",{enumerable:!0,get:function(){return TC.AlchemyWebSocketProvider}});var Qee=xee();Object.defineProperty(kt,"AnkrProvider",{enumerable:!0,get:function(){return Qee.AnkrProvider}});var Yee=Eee();Object.defineProperty(kt,"CloudflareProvider",{enumerable:!0,get:function(){return Yee.CloudflareProvider}});var ete=Oee();Object.defineProperty(kt,"EtherscanProvider",{enumerable:!0,get:function(){return ete.EtherscanProvider}});var tte=Nee();Object.defineProperty(kt,"FallbackProvider",{enumerable:!0,get:function(){return tte.FallbackProvider}});var rte=Bee();Object.defineProperty(kt,"IpcProvider",{enumerable:!0,get:function(){return rte.IpcProvider}});var AC=Lee();Object.defineProperty(kt,"InfuraProvider",{enumerable:!0,get:function(){return AC.InfuraProvider}});Object.defineProperty(kt,"InfuraWebSocketProvider",{enumerable:!0,get:function(){return AC.InfuraWebSocketProvider}});var v7=cm();Object.defineProperty(kt,"JsonRpcProvider",{enumerable:!0,get:function(){return v7.JsonRpcProvider}});Object.defineProperty(kt,"JsonRpcSigner",{enumerable:!0,get:function(){return v7.JsonRpcSigner}});var rqe=Uee();Object.defineProperty(kt,"JsonRpcBatchProvider",{enumerable:!0,get:function(){return rqe.JsonRpcBatchProvider}});var ite=jee();Object.defineProperty(kt,"NodesmithProvider",{enumerable:!0,get:function(){return ite.NodesmithProvider}});var nte=Gee();Object.defineProperty(kt,"PocketProvider",{enumerable:!0,get:function(){return nte.PocketProvider}});var ate=q0();Object.defineProperty(kt,"StaticJsonRpcProvider",{enumerable:!0,get:function(){return ate.StaticJsonRpcProvider}});Object.defineProperty(kt,"UrlJsonRpcProvider",{enumerable:!0,get:function(){return ate.UrlJsonRpcProvider}});var ste=Kee();Object.defineProperty(kt,"Web3Provider",{enumerable:!0,get:function(){return ste.Web3Provider}});var ote=s7();Object.defineProperty(kt,"WebSocketProvider",{enumerable:!0,get:function(){return ote.WebSocketProvider}});var b7=k0();Object.defineProperty(kt,"Formatter",{enumerable:!0,get:function(){return b7.Formatter}});Object.defineProperty(kt,"isCommunityResourcable",{enumerable:!0,get:function(){return b7.isCommunityResourcable}});Object.defineProperty(kt,"isCommunityResource",{enumerable:!0,get:function(){return b7.isCommunityResource}});Object.defineProperty(kt,"showThrottleMessage",{enumerable:!0,get:function(){return b7.showThrottleMessage}});var ute=Ht(),iqe=Da(),Wee=new ute.Logger(iqe.version);function nqe(t,e){if(t==null&&(t="homestead"),typeof t=="string"){var r=t.match(/^(ws|http)s?:/i);if(r)switch(r[1].toLowerCase()){case"http":case"https":return new v7.JsonRpcProvider(t);case"ws":case"wss":return new ote.WebSocketProvider(t);default:Wee.throwArgumentError("unsupported URL scheme","network",t)}}var i=(0,Zee.getNetwork)(t);return(!i||!i._defaultProvider)&&Wee.throwError("unsupported getDefaultProvider network",ute.Logger.errors.NETWORK_ERROR,{operation:"getDefaultProvider",network:t}),i._defaultProvider({FallbackProvider:tte.FallbackProvider,AlchemyProvider:TC.AlchemyProvider,AnkrProvider:Qee.AnkrProvider,CloudflareProvider:Yee.CloudflareProvider,EtherscanProvider:ete.EtherscanProvider,InfuraProvider:AC.InfuraProvider,JsonRpcProvider:v7.JsonRpcProvider,NodesmithProvider:ite.NodesmithProvider,PocketProvider:nte.PocketProvider,Web3Provider:ste.Web3Provider,IpcProvider:rte.IpcProvider},e)}kt.getDefaultProvider=nqe});var cte=x(_7=>{"use strict";Object.defineProperty(_7,"__esModule",{value:!0});_7.version=void 0;_7.version="solidity/5.7.0"});var lte=x(H0=>{"use strict";Object.defineProperty(H0,"__esModule",{value:!0});H0.sha256=H0.keccak256=H0.pack=void 0;var aqe=Rn(),mc=or(),sqe=Oo(),oqe=Rg(),uqe=Cn(),cqe=new RegExp("^bytes([0-9]+)$"),dqe=new RegExp("^(u?int)([0-9]*)$"),lqe=new RegExp("^(.*)\\[([0-9]*)\\]$"),fqe="0000000000000000000000000000000000000000000000000000000000000000",pqe=Ht(),hqe=cte(),ay=new pqe.Logger(hqe.version);function dte(t,e,r){switch(t){case"address":return r?(0,mc.zeroPad)(e,32):(0,mc.arrayify)(e);case"string":return(0,uqe.toUtf8Bytes)(e);case"bytes":return(0,mc.arrayify)(e);case"bool":return e=e?"0x01":"0x00",r?(0,mc.zeroPad)(e,32):(0,mc.arrayify)(e)}var i=t.match(dqe);if(i){var n=parseInt(i[2]||"256");return(i[2]&&String(n)!==i[2]||n%8!==0||n===0||n>256)&&ay.throwArgumentError("invalid number type","type",t),r&&(n=256),e=aqe.BigNumber.from(e).toTwos(n),(0,mc.zeroPad)(e,n/8)}if(i=t.match(cqe),i){var n=parseInt(i[1]);return(String(n)!==i[1]||n===0||n>32)&&ay.throwArgumentError("invalid bytes type","type",t),(0,mc.arrayify)(e).byteLength!==n&&ay.throwArgumentError("invalid value for "+t,"value",e),r?(0,mc.arrayify)((e+fqe).substring(0,66)):e}if(i=t.match(lqe),i&&Array.isArray(e)){var a=i[1],s=parseInt(i[2]||String(e.length));s!=e.length&&ay.throwArgumentError("invalid array length for "+t,"value",e);var o=[];return e.forEach(function(c){o.push(dte(a,c,!0))}),(0,mc.concat)(o)}return ay.throwArgumentError("invalid type","type",t)}function OC(t,e){t.length!=e.length&&ay.throwArgumentError("wrong number of values; expected ${ types.length }","values",e);var r=[];return t.forEach(function(i,n){r.push(dte(i,e[n]))}),(0,mc.hexlify)((0,mc.concat)(r))}H0.pack=OC;function mqe(t,e){return(0,sqe.keccak256)(OC(t,e))}H0.keccak256=mqe;function gqe(t,e){return(0,oqe.sha256)(OC(t,e))}H0.sha256=gqe});var fte=x(w7=>{"use strict";Object.defineProperty(w7,"__esModule",{value:!0});w7.version=void 0;w7.version="units/5.7.0"});var vte=x(Su=>{"use strict";Object.defineProperty(Su,"__esModule",{value:!0});Su.parseEther=Su.formatEther=Su.parseUnits=Su.formatUnits=Su.commify=void 0;var pte=Rn(),yqe=Ht(),vqe=fte(),hte=new yqe.Logger(vqe.version),mte=["wei","kwei","mwei","gwei","szabo","finney","ether"];function bqe(t){var e=String(t).split(".");(e.length>2||!e[0].match(/^-?[0-9]*$/)||e[1]&&!e[1].match(/^[0-9]*$/)||t==="."||t==="-.")&&hte.throwArgumentError("invalid value","value",t);var r=e[0],i="";for(r.substring(0,1)==="-"&&(i="-",r=r.substring(1));r.substring(0,1)==="0";)r=r.substring(1);r===""&&(r="0");var n="";for(e.length===2&&(n="."+(e[1]||"0"));n.length>2&&n[n.length-1]==="0";)n=n.substring(0,n.length-1);for(var a=[];r.length;)if(r.length<=3){a.unshift(r);break}else{var s=r.length-3;a.unshift(r.substring(s)),r=r.substring(0,s)}return i+a.join(",")+n}Su.commify=bqe;function gte(t,e){if(typeof e=="string"){var r=mte.indexOf(e);r!==-1&&(e=3*r)}return(0,pte.formatFixed)(t,e??18)}Su.formatUnits=gte;function yte(t,e){if(typeof t!="string"&&hte.throwArgumentError("value must be a string","value",t),typeof e=="string"){var r=mte.indexOf(e);r!==-1&&(e=3*r)}return(0,pte.parseFixed)(t,e??18)}Su.parseUnits=yte;function _qe(t){return gte(t,18)}Su.formatEther=_qe;function wqe(t){return yte(t,18)}Su.parseEther=wqe});var Ste=x(Ce=>{"use strict";var xqe=Ce&&Ce.__createBinding||(Object.create?function(t,e,r,i){i===void 0&&(i=r),Object.defineProperty(t,i,{enumerable:!0,get:function(){return e[r]}})}:function(t,e,r,i){i===void 0&&(i=r),t[i]=e[r]}),Sqe=Ce&&Ce.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),bte=Ce&&Ce.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var r in t)r!=="default"&&Object.prototype.hasOwnProperty.call(t,r)&&xqe(e,t,r);return Sqe(e,t),e};Object.defineProperty(Ce,"__esModule",{value:!0});Ce.formatBytes32String=Ce.Utf8ErrorFuncs=Ce.toUtf8String=Ce.toUtf8CodePoints=Ce.toUtf8Bytes=Ce._toEscapedUtf8String=Ce.nameprep=Ce.hexDataSlice=Ce.hexDataLength=Ce.hexZeroPad=Ce.hexValue=Ce.hexStripZeros=Ce.hexConcat=Ce.isHexString=Ce.hexlify=Ce.base64=Ce.base58=Ce.TransactionDescription=Ce.LogDescription=Ce.Interface=Ce.SigningKey=Ce.HDNode=Ce.defaultPath=Ce.isBytesLike=Ce.isBytes=Ce.zeroPad=Ce.stripZeros=Ce.concat=Ce.arrayify=Ce.shallowCopy=Ce.resolveProperties=Ce.getStatic=Ce.defineReadOnly=Ce.deepCopy=Ce.checkProperties=Ce.poll=Ce.fetchJson=Ce._fetchData=Ce.RLP=Ce.Logger=Ce.checkResultErrors=Ce.FormatTypes=Ce.ParamType=Ce.FunctionFragment=Ce.EventFragment=Ce.ErrorFragment=Ce.ConstructorFragment=Ce.Fragment=Ce.defaultAbiCoder=Ce.AbiCoder=void 0;Ce.Indexed=Ce.Utf8ErrorReason=Ce.UnicodeNormalizationForm=Ce.SupportedAlgorithm=Ce.mnemonicToSeed=Ce.isValidMnemonic=Ce.entropyToMnemonic=Ce.mnemonicToEntropy=Ce.getAccountPath=Ce.verifyTypedData=Ce.verifyMessage=Ce.recoverPublicKey=Ce.computePublicKey=Ce.recoverAddress=Ce.computeAddress=Ce.getJsonWalletAddress=Ce.TransactionTypes=Ce.serializeTransaction=Ce.parseTransaction=Ce.accessListify=Ce.joinSignature=Ce.splitSignature=Ce.soliditySha256=Ce.solidityKeccak256=Ce.solidityPack=Ce.shuffled=Ce.randomBytes=Ce.sha512=Ce.sha256=Ce.ripemd160=Ce.keccak256=Ce.computeHmac=Ce.commify=Ce.parseUnits=Ce.formatUnits=Ce.parseEther=Ce.formatEther=Ce.isAddress=Ce.getCreate2Address=Ce.getContractAddress=Ce.getIcapAddress=Ce.getAddress=Ce._TypedDataEncoder=Ce.id=Ce.isValidName=Ce.namehash=Ce.hashMessage=Ce.dnsEncode=Ce.parseBytes32String=void 0;var Xs=pR();Object.defineProperty(Ce,"AbiCoder",{enumerable:!0,get:function(){return Xs.AbiCoder}});Object.defineProperty(Ce,"checkResultErrors",{enumerable:!0,get:function(){return Xs.checkResultErrors}});Object.defineProperty(Ce,"ConstructorFragment",{enumerable:!0,get:function(){return Xs.ConstructorFragment}});Object.defineProperty(Ce,"defaultAbiCoder",{enumerable:!0,get:function(){return Xs.defaultAbiCoder}});Object.defineProperty(Ce,"ErrorFragment",{enumerable:!0,get:function(){return Xs.ErrorFragment}});Object.defineProperty(Ce,"EventFragment",{enumerable:!0,get:function(){return Xs.EventFragment}});Object.defineProperty(Ce,"FormatTypes",{enumerable:!0,get:function(){return Xs.FormatTypes}});Object.defineProperty(Ce,"Fragment",{enumerable:!0,get:function(){return Xs.Fragment}});Object.defineProperty(Ce,"FunctionFragment",{enumerable:!0,get:function(){return Xs.FunctionFragment}});Object.defineProperty(Ce,"Indexed",{enumerable:!0,get:function(){return Xs.Indexed}});Object.defineProperty(Ce,"Interface",{enumerable:!0,get:function(){return Xs.Interface}});Object.defineProperty(Ce,"LogDescription",{enumerable:!0,get:function(){return Xs.LogDescription}});Object.defineProperty(Ce,"ParamType",{enumerable:!0,get:function(){return Xs.ParamType}});Object.defineProperty(Ce,"TransactionDescription",{enumerable:!0,get:function(){return Xs.TransactionDescription}});var Ob=cu();Object.defineProperty(Ce,"getAddress",{enumerable:!0,get:function(){return Ob.getAddress}});Object.defineProperty(Ce,"getCreate2Address",{enumerable:!0,get:function(){return Ob.getCreate2Address}});Object.defineProperty(Ce,"getContractAddress",{enumerable:!0,get:function(){return Ob.getContractAddress}});Object.defineProperty(Ce,"getIcapAddress",{enumerable:!0,get:function(){return Ob.getIcapAddress}});Object.defineProperty(Ce,"isAddress",{enumerable:!0,get:function(){return Ob.isAddress}});var Eqe=bte(M4());Ce.base64=Eqe;var Tqe=b9();Object.defineProperty(Ce,"base58",{enumerable:!0,get:function(){return Tqe.Base58}});var us=or();Object.defineProperty(Ce,"arrayify",{enumerable:!0,get:function(){return us.arrayify}});Object.defineProperty(Ce,"concat",{enumerable:!0,get:function(){return us.concat}});Object.defineProperty(Ce,"hexConcat",{enumerable:!0,get:function(){return us.hexConcat}});Object.defineProperty(Ce,"hexDataSlice",{enumerable:!0,get:function(){return us.hexDataSlice}});Object.defineProperty(Ce,"hexDataLength",{enumerable:!0,get:function(){return us.hexDataLength}});Object.defineProperty(Ce,"hexlify",{enumerable:!0,get:function(){return us.hexlify}});Object.defineProperty(Ce,"hexStripZeros",{enumerable:!0,get:function(){return us.hexStripZeros}});Object.defineProperty(Ce,"hexValue",{enumerable:!0,get:function(){return us.hexValue}});Object.defineProperty(Ce,"hexZeroPad",{enumerable:!0,get:function(){return us.hexZeroPad}});Object.defineProperty(Ce,"isBytes",{enumerable:!0,get:function(){return us.isBytes}});Object.defineProperty(Ce,"isBytesLike",{enumerable:!0,get:function(){return us.isBytesLike}});Object.defineProperty(Ce,"isHexString",{enumerable:!0,get:function(){return us.isHexString}});Object.defineProperty(Ce,"joinSignature",{enumerable:!0,get:function(){return us.joinSignature}});Object.defineProperty(Ce,"zeroPad",{enumerable:!0,get:function(){return us.zeroPad}});Object.defineProperty(Ce,"splitSignature",{enumerable:!0,get:function(){return us.splitSignature}});Object.defineProperty(Ce,"stripZeros",{enumerable:!0,get:function(){return us.stripZeros}});var sy=X1();Object.defineProperty(Ce,"_TypedDataEncoder",{enumerable:!0,get:function(){return sy._TypedDataEncoder}});Object.defineProperty(Ce,"dnsEncode",{enumerable:!0,get:function(){return sy.dnsEncode}});Object.defineProperty(Ce,"hashMessage",{enumerable:!0,get:function(){return sy.hashMessage}});Object.defineProperty(Ce,"id",{enumerable:!0,get:function(){return sy.id}});Object.defineProperty(Ce,"isValidName",{enumerable:!0,get:function(){return sy.isValidName}});Object.defineProperty(Ce,"namehash",{enumerable:!0,get:function(){return sy.namehash}});var hm=k9();Object.defineProperty(Ce,"defaultPath",{enumerable:!0,get:function(){return hm.defaultPath}});Object.defineProperty(Ce,"entropyToMnemonic",{enumerable:!0,get:function(){return hm.entropyToMnemonic}});Object.defineProperty(Ce,"getAccountPath",{enumerable:!0,get:function(){return hm.getAccountPath}});Object.defineProperty(Ce,"HDNode",{enumerable:!0,get:function(){return hm.HDNode}});Object.defineProperty(Ce,"isValidMnemonic",{enumerable:!0,get:function(){return hm.isValidMnemonic}});Object.defineProperty(Ce,"mnemonicToEntropy",{enumerable:!0,get:function(){return hm.mnemonicToEntropy}});Object.defineProperty(Ce,"mnemonicToSeed",{enumerable:!0,get:function(){return hm.mnemonicToSeed}});var Aqe=bM();Object.defineProperty(Ce,"getJsonWalletAddress",{enumerable:!0,get:function(){return Aqe.getJsonWalletAddress}});var Pqe=Oo();Object.defineProperty(Ce,"keccak256",{enumerable:!0,get:function(){return Pqe.keccak256}});var Oqe=Ht();Object.defineProperty(Ce,"Logger",{enumerable:!0,get:function(){return Oqe.Logger}});var x7=Rg();Object.defineProperty(Ce,"computeHmac",{enumerable:!0,get:function(){return x7.computeHmac}});Object.defineProperty(Ce,"ripemd160",{enumerable:!0,get:function(){return x7.ripemd160}});Object.defineProperty(Ce,"sha256",{enumerable:!0,get:function(){return x7.sha256}});Object.defineProperty(Ce,"sha512",{enumerable:!0,get:function(){return x7.sha512}});var RC=lte();Object.defineProperty(Ce,"solidityKeccak256",{enumerable:!0,get:function(){return RC.keccak256}});Object.defineProperty(Ce,"solidityPack",{enumerable:!0,get:function(){return RC.pack}});Object.defineProperty(Ce,"soliditySha256",{enumerable:!0,get:function(){return RC.sha256}});var _te=rb();Object.defineProperty(Ce,"randomBytes",{enumerable:!0,get:function(){return _te.randomBytes}});Object.defineProperty(Ce,"shuffled",{enumerable:!0,get:function(){return _te.shuffled}});var oy=Xr();Object.defineProperty(Ce,"checkProperties",{enumerable:!0,get:function(){return oy.checkProperties}});Object.defineProperty(Ce,"deepCopy",{enumerable:!0,get:function(){return oy.deepCopy}});Object.defineProperty(Ce,"defineReadOnly",{enumerable:!0,get:function(){return oy.defineReadOnly}});Object.defineProperty(Ce,"getStatic",{enumerable:!0,get:function(){return oy.getStatic}});Object.defineProperty(Ce,"resolveProperties",{enumerable:!0,get:function(){return oy.resolveProperties}});Object.defineProperty(Ce,"shallowCopy",{enumerable:!0,get:function(){return oy.shallowCopy}});var Rqe=bte(x5());Ce.RLP=Rqe;var MC=j4();Object.defineProperty(Ce,"computePublicKey",{enumerable:!0,get:function(){return MC.computePublicKey}});Object.defineProperty(Ce,"recoverPublicKey",{enumerable:!0,get:function(){return MC.recoverPublicKey}});Object.defineProperty(Ce,"SigningKey",{enumerable:!0,get:function(){return MC.SigningKey}});var z0=Cn();Object.defineProperty(Ce,"formatBytes32String",{enumerable:!0,get:function(){return z0.formatBytes32String}});Object.defineProperty(Ce,"nameprep",{enumerable:!0,get:function(){return z0.nameprep}});Object.defineProperty(Ce,"parseBytes32String",{enumerable:!0,get:function(){return z0.parseBytes32String}});Object.defineProperty(Ce,"_toEscapedUtf8String",{enumerable:!0,get:function(){return z0._toEscapedUtf8String}});Object.defineProperty(Ce,"toUtf8Bytes",{enumerable:!0,get:function(){return z0.toUtf8Bytes}});Object.defineProperty(Ce,"toUtf8CodePoints",{enumerable:!0,get:function(){return z0.toUtf8CodePoints}});Object.defineProperty(Ce,"toUtf8String",{enumerable:!0,get:function(){return z0.toUtf8String}});Object.defineProperty(Ce,"Utf8ErrorFuncs",{enumerable:!0,get:function(){return z0.Utf8ErrorFuncs}});var uy=df();Object.defineProperty(Ce,"accessListify",{enumerable:!0,get:function(){return uy.accessListify}});Object.defineProperty(Ce,"computeAddress",{enumerable:!0,get:function(){return uy.computeAddress}});Object.defineProperty(Ce,"parseTransaction",{enumerable:!0,get:function(){return uy.parse}});Object.defineProperty(Ce,"recoverAddress",{enumerable:!0,get:function(){return uy.recoverAddress}});Object.defineProperty(Ce,"serializeTransaction",{enumerable:!0,get:function(){return uy.serialize}});Object.defineProperty(Ce,"TransactionTypes",{enumerable:!0,get:function(){return uy.TransactionTypes}});var Rb=vte();Object.defineProperty(Ce,"commify",{enumerable:!0,get:function(){return Rb.commify}});Object.defineProperty(Ce,"formatEther",{enumerable:!0,get:function(){return Rb.formatEther}});Object.defineProperty(Ce,"parseEther",{enumerable:!0,get:function(){return Rb.parseEther}});Object.defineProperty(Ce,"formatUnits",{enumerable:!0,get:function(){return Rb.formatUnits}});Object.defineProperty(Ce,"parseUnits",{enumerable:!0,get:function(){return Rb.parseUnits}});var wte=xM();Object.defineProperty(Ce,"verifyMessage",{enumerable:!0,get:function(){return wte.verifyMessage}});Object.defineProperty(Ce,"verifyTypedData",{enumerable:!0,get:function(){return wte.verifyTypedData}});var CC=um();Object.defineProperty(Ce,"_fetchData",{enumerable:!0,get:function(){return CC._fetchData}});Object.defineProperty(Ce,"fetchJson",{enumerable:!0,get:function(){return CC.fetchJson}});Object.defineProperty(Ce,"poll",{enumerable:!0,get:function(){return CC.poll}});var Mqe=Rg();Object.defineProperty(Ce,"SupportedAlgorithm",{enumerable:!0,get:function(){return Mqe.SupportedAlgorithm}});var xte=Cn();Object.defineProperty(Ce,"UnicodeNormalizationForm",{enumerable:!0,get:function(){return xte.UnicodeNormalizationForm}});Object.defineProperty(Ce,"Utf8ErrorReason",{enumerable:!0,get:function(){return xte.Utf8ErrorReason}})});var Ete=x(S7=>{"use strict";Object.defineProperty(S7,"__esModule",{value:!0});S7.version=void 0;S7.version="ethers/5.7.2"});var kC=x(nr=>{"use strict";var Cqe=nr&&nr.__createBinding||(Object.create?function(t,e,r,i){i===void 0&&(i=r),Object.defineProperty(t,i,{enumerable:!0,get:function(){return e[r]}})}:function(t,e,r,i){i===void 0&&(i=r),t[i]=e[r]}),Iqe=nr&&nr.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),IC=nr&&nr.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var r in t)r!=="default"&&Object.prototype.hasOwnProperty.call(t,r)&&Cqe(e,t,r);return Iqe(e,t),e};Object.defineProperty(nr,"__esModule",{value:!0});nr.Wordlist=nr.version=nr.wordlists=nr.utils=nr.logger=nr.errors=nr.constants=nr.FixedNumber=nr.BigNumber=nr.ContractFactory=nr.Contract=nr.BaseContract=nr.providers=nr.getDefaultProvider=nr.VoidSigner=nr.Wallet=nr.Signer=void 0;var NC=KZ();Object.defineProperty(nr,"BaseContract",{enumerable:!0,get:function(){return NC.BaseContract}});Object.defineProperty(nr,"Contract",{enumerable:!0,get:function(){return NC.Contract}});Object.defineProperty(nr,"ContractFactory",{enumerable:!0,get:function(){return NC.ContractFactory}});var Tte=Rn();Object.defineProperty(nr,"BigNumber",{enumerable:!0,get:function(){return Tte.BigNumber}});Object.defineProperty(nr,"FixedNumber",{enumerable:!0,get:function(){return Tte.FixedNumber}});var Ate=N4();Object.defineProperty(nr,"Signer",{enumerable:!0,get:function(){return Ate.Signer}});Object.defineProperty(nr,"VoidSigner",{enumerable:!0,get:function(){return Ate.VoidSigner}});var Nqe=xM();Object.defineProperty(nr,"Wallet",{enumerable:!0,get:function(){return Nqe.Wallet}});var kqe=IC(V1());nr.constants=kqe;var Bqe=IC(PC());nr.providers=Bqe;var Fqe=PC();Object.defineProperty(nr,"getDefaultProvider",{enumerable:!0,get:function(){return Fqe.getDefaultProvider}});var Pte=oM();Object.defineProperty(nr,"Wordlist",{enumerable:!0,get:function(){return Pte.Wordlist}});Object.defineProperty(nr,"wordlists",{enumerable:!0,get:function(){return Pte.wordlists}});var Dqe=IC(Ste());nr.utils=Dqe;var Ote=Ht();Object.defineProperty(nr,"errors",{enumerable:!0,get:function(){return Ote.ErrorCode}});var Rte=Ete();Object.defineProperty(nr,"version",{enumerable:!0,get:function(){return Rte.version}});var qqe=new Ote.Logger(Rte.version);nr.logger=qqe});var Cte=x(er=>{"use strict";var Lqe=er&&er.__createBinding||(Object.create?function(t,e,r,i){i===void 0&&(i=r),Object.defineProperty(t,i,{enumerable:!0,get:function(){return e[r]}})}:function(t,e,r,i){i===void 0&&(i=r),t[i]=e[r]}),Uqe=er&&er.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),jqe=er&&er.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var r in t)r!=="default"&&Object.prototype.hasOwnProperty.call(t,r)&&Lqe(e,t,r);return Uqe(e,t),e};Object.defineProperty(er,"__esModule",{value:!0});er.Wordlist=er.version=er.wordlists=er.utils=er.logger=er.errors=er.constants=er.FixedNumber=er.BigNumber=er.ContractFactory=er.Contract=er.BaseContract=er.providers=er.getDefaultProvider=er.VoidSigner=er.Wallet=er.Signer=er.ethers=void 0;var Mte=jqe(kC());er.ethers=Mte;try{BC=window,BC._ethers==null&&(BC._ethers=Mte)}catch{}var BC,qa=kC();Object.defineProperty(er,"Signer",{enumerable:!0,get:function(){return qa.Signer}});Object.defineProperty(er,"Wallet",{enumerable:!0,get:function(){return qa.Wallet}});Object.defineProperty(er,"VoidSigner",{enumerable:!0,get:function(){return qa.VoidSigner}});Object.defineProperty(er,"getDefaultProvider",{enumerable:!0,get:function(){return qa.getDefaultProvider}});Object.defineProperty(er,"providers",{enumerable:!0,get:function(){return qa.providers}});Object.defineProperty(er,"BaseContract",{enumerable:!0,get:function(){return qa.BaseContract}});Object.defineProperty(er,"Contract",{enumerable:!0,get:function(){return qa.Contract}});Object.defineProperty(er,"ContractFactory",{enumerable:!0,get:function(){return qa.ContractFactory}});Object.defineProperty(er,"BigNumber",{enumerable:!0,get:function(){return qa.BigNumber}});Object.defineProperty(er,"FixedNumber",{enumerable:!0,get:function(){return qa.FixedNumber}});Object.defineProperty(er,"constants",{enumerable:!0,get:function(){return qa.constants}});Object.defineProperty(er,"errors",{enumerable:!0,get:function(){return qa.errors}});Object.defineProperty(er,"logger",{enumerable:!0,get:function(){return qa.logger}});Object.defineProperty(er,"utils",{enumerable:!0,get:function(){return qa.utils}});Object.defineProperty(er,"wordlists",{enumerable:!0,get:function(){return qa.wordlists}});Object.defineProperty(er,"version",{enumerable:!0,get:function(){return qa.version}});Object.defineProperty(er,"Wordlist",{enumerable:!0,get:function(){return qa.Wordlist}})});var mr=x(($Ot,A7)=>{var Ite,Nte,kte,Bte,Fte,Dte,qte,Lte,Ute,jte,Vte,Hte,zte,E7,FC,Gte,Jte,Xte,cy,Kte,Wte,Zte,$te,Qte,Yte,ere,tre,rre,T7;(function(t){var e=typeof global=="object"?global:typeof self=="object"?self:typeof this=="object"?this:{};typeof define=="function"&&define.amd?define("tslib",["exports"],function(i){t(r(e,r(i)))}):typeof A7=="object"&&typeof A7.exports=="object"?t(r(e,r(A7.exports))):t(r(e));function r(i,n){return i!==e&&(typeof Object.create=="function"?Object.defineProperty(i,"__esModule",{value:!0}):i.__esModule=!0),function(a,s){return i[a]=n?n(a,s):s}}})(function(t){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var a in n)Object.prototype.hasOwnProperty.call(n,a)&&(i[a]=n[a])};Ite=function(i,n){if(typeof n!="function"&&n!==null)throw new TypeError("Class extends value "+String(n)+" is not a constructor or null");e(i,n);function a(){this.constructor=i}i.prototype=n===null?Object.create(n):(a.prototype=n.prototype,new a)},Nte=Object.assign||function(i){for(var n,a=1,s=arguments.length;a=0;f--)(u=i[f])&&(c=(o<3?u(c):o>3?u(n,a,c):u(n,a))||c);return o>3&&c&&Object.defineProperty(n,a,c),c},Fte=function(i,n){return function(a,s){n(a,s,i)}},Dte=function(i,n,a,s,o,c){function u(ge){if(ge!==void 0&&typeof ge!="function")throw new TypeError("Function expected");return ge}for(var f=s.kind,d=f==="getter"?"get":f==="setter"?"set":"value",p=!n&&i?s.static?i:i.prototype:null,b=n||(p?Object.getOwnPropertyDescriptor(p,s.name):{}),T,I=!1,L=a.length-1;L>=0;L--){var U={};for(var re in s)U[re]=re==="access"?{}:s[re];for(var re in s.access)U.access[re]=s.access[re];U.addInitializer=function(ge){if(I)throw new TypeError("Cannot add initializers after decoration has completed");c.push(u(ge||null))};var oe=(0,a[L])(f==="accessor"?{get:b.get,set:b.set}:b[d],U);if(f==="accessor"){if(oe===void 0)continue;if(oe===null||typeof oe!="object")throw new TypeError("Object expected");(T=u(oe.get))&&(b.get=T),(T=u(oe.set))&&(b.set=T),(T=u(oe.init))&&o.push(T)}else(T=u(oe))&&(f==="field"?o.push(T):b[d]=T)}p&&Object.defineProperty(p,s.name,b),I=!0},qte=function(i,n,a){for(var s=arguments.length>2,o=0;o0&&c[c.length-1])&&(p[0]===6||p[0]===2)){a=0;continue}if(p[0]===3&&(!c||p[1]>c[0]&&p[1]=i.length&&(i=void 0),{value:i&&i[s++],done:!i}}};throw new TypeError(n?"Object is not iterable.":"Symbol.iterator is not defined.")},FC=function(i,n){var a=typeof Symbol=="function"&&i[Symbol.iterator];if(!a)return i;var s=a.call(i),o,c=[],u;try{for(;(n===void 0||n-- >0)&&!(o=s.next()).done;)c.push(o.value)}catch(f){u={error:f}}finally{try{o&&!o.done&&(a=s.return)&&a.call(s)}finally{if(u)throw u.error}}return c},Gte=function(){for(var i=[],n=0;n1||f(I,L)})})}function f(I,L){try{d(s[I](L))}catch(U){T(c[0][3],U)}}function d(I){I.value instanceof cy?Promise.resolve(I.value.v).then(p,b):T(c[0][2],I)}function p(I){f("next",I)}function b(I){f("throw",I)}function T(I,L){I(L),c.shift(),c.length&&f(c[0][0],c[0][1])}},Wte=function(i){var n,a;return n={},s("next"),s("throw",function(o){throw o}),s("return"),n[Symbol.iterator]=function(){return this},n;function s(o,c){n[o]=i[o]?function(u){return(a=!a)?{value:cy(i[o](u)),done:!1}:c?c(u):u}:c}},Zte=function(i){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var n=i[Symbol.asyncIterator],a;return n?n.call(i):(i=typeof E7=="function"?E7(i):i[Symbol.iterator](),a={},s("next"),s("throw"),s("return"),a[Symbol.asyncIterator]=function(){return this},a);function s(c){a[c]=i[c]&&function(u){return new Promise(function(f,d){u=i[c](u),o(f,d,u.done,u.value)})}}function o(c,u,f,d){Promise.resolve(d).then(function(p){c({value:p,done:f})},u)}},$te=function(i,n){return Object.defineProperty?Object.defineProperty(i,"raw",{value:n}):i.raw=n,i};var r=Object.create?function(i,n){Object.defineProperty(i,"default",{enumerable:!0,value:n})}:function(i,n){i.default=n};Qte=function(i){if(i&&i.__esModule)return i;var n={};if(i!=null)for(var a in i)a!=="default"&&Object.prototype.hasOwnProperty.call(i,a)&&T7(n,i,a);return r(n,i),n},Yte=function(i){return i&&i.__esModule?i:{default:i}},ere=function(i,n,a,s){if(a==="a"&&!s)throw new TypeError("Private accessor was defined without a getter");if(typeof n=="function"?i!==n||!s:!n.has(i))throw new TypeError("Cannot read private member from an object whose class did not declare it");return a==="m"?s:a==="a"?s.call(i):s?s.value:n.get(i)},tre=function(i,n,a,s,o){if(s==="m")throw new TypeError("Private method is not writable");if(s==="a"&&!o)throw new TypeError("Private accessor was defined without a setter");if(typeof n=="function"?i!==n||!o:!n.has(i))throw new TypeError("Cannot write private member to an object whose class did not declare it");return s==="a"?o.call(i,a):o?o.value=a:n.set(i,a),a},rre=function(i,n){if(n===null||typeof n!="object"&&typeof n!="function")throw new TypeError("Cannot use 'in' operator on non-object");return typeof i=="function"?n===i:i.has(n)},t("__extends",Ite),t("__assign",Nte),t("__rest",kte),t("__decorate",Bte),t("__param",Fte),t("__esDecorate",Dte),t("__runInitializers",qte),t("__propKey",Lte),t("__setFunctionName",Ute),t("__metadata",jte),t("__awaiter",Vte),t("__generator",Hte),t("__exportStar",zte),t("__createBinding",T7),t("__values",E7),t("__read",FC),t("__spread",Gte),t("__spreadArrays",Jte),t("__spreadArray",Xte),t("__await",cy),t("__asyncGenerator",Kte),t("__asyncDelegator",Wte),t("__asyncValues",Zte),t("__makeTemplateObject",$te),t("__importStar",Qte),t("__importDefault",Yte),t("__classPrivateFieldGet",ere),t("__classPrivateFieldSet",tre),t("__classPrivateFieldIn",rre)})});var dy=x(Jn=>{"use strict";Object.defineProperty(Jn,"__esModule",{value:!0});Jn.LIBUSB_ERROR_MESSAGE=Jn.WEBUSB_ERROR_MESSAGE=Jn.INVALID_PIN_ERROR_MESSAGE=Jn.WRONG_PREVIOUS_SESSION_ERROR_MESSAGE=Jn.serializeError=Jn.TypedError=Jn.TrezorError=Jn.ERROR_CODES=void 0;Jn.ERROR_CODES={Init_NotInitialized:"TrezorConnect not initialized",Init_AlreadyInitialized:"TrezorConnect has been already initialized",Init_IframeBlocked:"Iframe blocked",Init_IframeTimeout:"Iframe timeout",Init_ManifestMissing:"Manifest not set. Read more at https://github.com/trezor/trezor-suite/blob/develop/docs/packages/connect/index.md",Popup_ConnectionMissing:"Unable to establish connection with iframe",Transport_Missing:"Transport is missing",Transport_InvalidProtobuf:"",Method_InvalidPackage:"This package is not suitable to work with browser. Use @trezor/connect-web package instead",Method_InvalidParameter:"",Method_NotAllowed:"Method not allowed for this configuration",Method_PermissionsNotGranted:"Permissions not granted",Method_Cancel:"Cancelled",Method_Interrupted:"Popup closed",Method_UnknownCoin:"Coin not found",Method_AddressNotMatch:"Addresses do not match",Method_FirmwareUpdate_DownloadFailed:"Failed to download firmware binary",Method_Discovery_BundleException:"",Method_Override:"override",Method_NoResponse:"Call resolved without response",Backend_NotSupported:"BlockchainLink settings not found in coins.json",Backend_WorkerMissing:"",Backend_Disconnected:"Backend disconnected",Backend_Invalid:"Invalid backend",Backend_Error:"",Runtime:"",Device_NotFound:"Device not found",Device_InitializeFailed:"",Device_FwException:"",Device_ModeException:"",Device_Disconnected:"Device disconnected",Device_UsedElsewhere:"Device is used in another window",Device_InvalidState:"Passphrase is incorrect",Device_CallInProgress:"Device call in progress"};var P7=class extends Error{constructor(e,r){super(r),this.code=e,this.message=r}};Jn.TrezorError=P7;var Vqe=(t,e)=>new P7(t,e||Jn.ERROR_CODES[t]);Jn.TypedError=Vqe;var Hqe=t=>t&&t.error instanceof Error?{error:t.error.message,code:t.error.code}:t;Jn.serializeError=Hqe;Jn.WRONG_PREVIOUS_SESSION_ERROR_MESSAGE="wrong previous session";Jn.INVALID_PIN_ERROR_MESSAGE="PIN invalid";Jn.WEBUSB_ERROR_MESSAGE="NetworkError: Unable to claim interface.";Jn.LIBUSB_ERROR_MESSAGE="LIBUSB_ERROR"});var ire=x(O7=>{"use strict";Object.defineProperty(O7,"__esModule",{value:!0});O7.TYPES=void 0;O7.TYPES={bitcoin:"Bitcoin",ethereum:"Ethereum",eos:"Eos",nem:"NEM",stellar:"Stellar",cardano:"Cardano",ripple:"Ripple",tezos:"Tezos",binance:"Binance"}});var nre=x(G0=>{"use strict";Object.defineProperty(G0,"__esModule",{value:!0});G0.NETWORK_IDS=G0.PROTOCOL_MAGICS=void 0;var zqe;(function(t){t[t.mainnet=764824073]="mainnet",t[t.testnet_preprod=1]="testnet_preprod",t[t.testnet_preview=2]="testnet_preview",t[t.testnet_legacy=1097911063]="testnet_legacy"})(zqe=G0.PROTOCOL_MAGICS||(G0.PROTOCOL_MAGICS={}));var Gqe;(function(t){t[t.mainnet=1]="mainnet",t[t.testnet=0]="testnet"})(Gqe=G0.NETWORK_IDS||(G0.NETWORK_IDS={}))});var are=x(gc=>{"use strict";Object.defineProperty(gc,"__esModule",{value:!0});gc.TxVersion=gc.TxType=gc.Networks=void 0;var Jqe;(function(t){t[t.mainnet=104]="mainnet",t[t.testnet=152]="testnet",t[t.mijin=96]="mijin"})(Jqe=gc.Networks||(gc.Networks={}));var Xqe;(function(t){t[t.TRANSFER=257]="TRANSFER",t[t.COSIGNING=258]="COSIGNING",t[t.IMPORTANCE_TRANSFER=2049]="IMPORTANCE_TRANSFER",t[t.AGGREGATE_MODIFICATION=4097]="AGGREGATE_MODIFICATION",t[t.MULTISIG_SIGNATURE=4098]="MULTISIG_SIGNATURE",t[t.MULTISIG=4100]="MULTISIG",t[t.PROVISION_NAMESPACE=8193]="PROVISION_NAMESPACE",t[t.MOSAIC_CREATION=16385]="MOSAIC_CREATION",t[t.SUPPLY_CHANGE=16386]="SUPPLY_CHANGE"})(Xqe=gc.TxType||(gc.TxType={}));var Kqe;(function(t){t[t.mainnet=1744830464]="mainnet",t[t.testnet=-1744830464]="testnet",t[t.mijin=1610612736]="mijin"})(Kqe=gc.TxVersion||(gc.TxVersion={}))});var DC=x(Ke=>{"use strict";Object.defineProperty(Ke,"__esModule",{value:!0});Ke.TezosBallotType=Ke.TezosContractType=Ke.StellarSignerType=Ke.StellarMemoType=Ke.StellarAssetType=Ke.NEMImportanceTransferMode=Ke.NEMModificationType=Ke.NEMSupplyChangeType=Ke.NEMMosaicLevy=Ke.MoneroNetworkType=Ke.Enum_WordRequestType=Ke.RecoveryDeviceType=Ke.SdProtectOperationType=Ke.Enum_Capability=Ke.Enum_SafetyCheckLevel=Ke.Enum_BackupType=Ke.EthereumDataType=Ke.DebugButton=Ke.Enum_PinMatrixRequestType=Ke.Enum_ButtonRequestType=Ke.FailureType=Ke.CardanoTxWitnessType=Ke.CardanoTxSigningMode=Ke.CardanoGovernanceRegistrationFormat=Ke.CardanoTxAuxiliaryDataSupplementType=Ke.CardanoPoolRelayType=Ke.CardanoCertificateType=Ke.CardanoTxOutputSerializationFormat=Ke.CardanoNativeScriptHashDisplayFormat=Ke.CardanoNativeScriptType=Ke.CardanoAddressType=Ke.CardanoDerivationType=Ke.Enum_RequestType=Ke.AmountUnit=Ke.DecredStakingSpendType=Ke.Enum_OutputScriptType=Ke.Enum_InputScriptType=Ke.BinanceTimeInForce=Ke.BinanceOrderSide=Ke.BinanceOrderType=void 0;var Wqe;(function(t){t[t.OT_UNKNOWN=0]="OT_UNKNOWN",t[t.MARKET=1]="MARKET",t[t.LIMIT=2]="LIMIT",t[t.OT_RESERVED=3]="OT_RESERVED"})(Wqe=Ke.BinanceOrderType||(Ke.BinanceOrderType={}));var Zqe;(function(t){t[t.SIDE_UNKNOWN=0]="SIDE_UNKNOWN",t[t.BUY=1]="BUY",t[t.SELL=2]="SELL"})(Zqe=Ke.BinanceOrderSide||(Ke.BinanceOrderSide={}));var $qe;(function(t){t[t.TIF_UNKNOWN=0]="TIF_UNKNOWN",t[t.GTE=1]="GTE",t[t.TIF_RESERVED=2]="TIF_RESERVED",t[t.IOC=3]="IOC"})($qe=Ke.BinanceTimeInForce||(Ke.BinanceTimeInForce={}));var Qqe;(function(t){t[t.SPENDADDRESS=0]="SPENDADDRESS",t[t.SPENDMULTISIG=1]="SPENDMULTISIG",t[t.EXTERNAL=2]="EXTERNAL",t[t.SPENDWITNESS=3]="SPENDWITNESS",t[t.SPENDP2SHWITNESS=4]="SPENDP2SHWITNESS",t[t.SPENDTAPROOT=5]="SPENDTAPROOT"})(Qqe=Ke.Enum_InputScriptType||(Ke.Enum_InputScriptType={}));var Yqe;(function(t){t[t.PAYTOADDRESS=0]="PAYTOADDRESS",t[t.PAYTOSCRIPTHASH=1]="PAYTOSCRIPTHASH",t[t.PAYTOMULTISIG=2]="PAYTOMULTISIG",t[t.PAYTOOPRETURN=3]="PAYTOOPRETURN",t[t.PAYTOWITNESS=4]="PAYTOWITNESS",t[t.PAYTOP2SHWITNESS=5]="PAYTOP2SHWITNESS",t[t.PAYTOTAPROOT=6]="PAYTOTAPROOT"})(Yqe=Ke.Enum_OutputScriptType||(Ke.Enum_OutputScriptType={}));var eLe;(function(t){t[t.SSGen=0]="SSGen",t[t.SSRTX=1]="SSRTX"})(eLe=Ke.DecredStakingSpendType||(Ke.DecredStakingSpendType={}));var tLe;(function(t){t[t.BITCOIN=0]="BITCOIN",t[t.MILLIBITCOIN=1]="MILLIBITCOIN",t[t.MICROBITCOIN=2]="MICROBITCOIN",t[t.SATOSHI=3]="SATOSHI"})(tLe=Ke.AmountUnit||(Ke.AmountUnit={}));var rLe;(function(t){t[t.TXINPUT=0]="TXINPUT",t[t.TXOUTPUT=1]="TXOUTPUT",t[t.TXMETA=2]="TXMETA",t[t.TXFINISHED=3]="TXFINISHED",t[t.TXEXTRADATA=4]="TXEXTRADATA",t[t.TXORIGINPUT=5]="TXORIGINPUT",t[t.TXORIGOUTPUT=6]="TXORIGOUTPUT",t[t.TXPAYMENTREQ=7]="TXPAYMENTREQ"})(rLe=Ke.Enum_RequestType||(Ke.Enum_RequestType={}));var iLe;(function(t){t[t.LEDGER=0]="LEDGER",t[t.ICARUS=1]="ICARUS",t[t.ICARUS_TREZOR=2]="ICARUS_TREZOR"})(iLe=Ke.CardanoDerivationType||(Ke.CardanoDerivationType={}));var nLe;(function(t){t[t.BASE=0]="BASE",t[t.BASE_SCRIPT_KEY=1]="BASE_SCRIPT_KEY",t[t.BASE_KEY_SCRIPT=2]="BASE_KEY_SCRIPT",t[t.BASE_SCRIPT_SCRIPT=3]="BASE_SCRIPT_SCRIPT",t[t.POINTER=4]="POINTER",t[t.POINTER_SCRIPT=5]="POINTER_SCRIPT",t[t.ENTERPRISE=6]="ENTERPRISE",t[t.ENTERPRISE_SCRIPT=7]="ENTERPRISE_SCRIPT",t[t.BYRON=8]="BYRON",t[t.REWARD=14]="REWARD",t[t.REWARD_SCRIPT=15]="REWARD_SCRIPT"})(nLe=Ke.CardanoAddressType||(Ke.CardanoAddressType={}));var aLe;(function(t){t[t.PUB_KEY=0]="PUB_KEY",t[t.ALL=1]="ALL",t[t.ANY=2]="ANY",t[t.N_OF_K=3]="N_OF_K",t[t.INVALID_BEFORE=4]="INVALID_BEFORE",t[t.INVALID_HEREAFTER=5]="INVALID_HEREAFTER"})(aLe=Ke.CardanoNativeScriptType||(Ke.CardanoNativeScriptType={}));var sLe;(function(t){t[t.HIDE=0]="HIDE",t[t.BECH32=1]="BECH32",t[t.POLICY_ID=2]="POLICY_ID"})(sLe=Ke.CardanoNativeScriptHashDisplayFormat||(Ke.CardanoNativeScriptHashDisplayFormat={}));var oLe;(function(t){t[t.ARRAY_LEGACY=0]="ARRAY_LEGACY",t[t.MAP_BABBAGE=1]="MAP_BABBAGE"})(oLe=Ke.CardanoTxOutputSerializationFormat||(Ke.CardanoTxOutputSerializationFormat={}));var uLe;(function(t){t[t.STAKE_REGISTRATION=0]="STAKE_REGISTRATION",t[t.STAKE_DEREGISTRATION=1]="STAKE_DEREGISTRATION",t[t.STAKE_DELEGATION=2]="STAKE_DELEGATION",t[t.STAKE_POOL_REGISTRATION=3]="STAKE_POOL_REGISTRATION"})(uLe=Ke.CardanoCertificateType||(Ke.CardanoCertificateType={}));var cLe;(function(t){t[t.SINGLE_HOST_IP=0]="SINGLE_HOST_IP",t[t.SINGLE_HOST_NAME=1]="SINGLE_HOST_NAME",t[t.MULTIPLE_HOST_NAME=2]="MULTIPLE_HOST_NAME"})(cLe=Ke.CardanoPoolRelayType||(Ke.CardanoPoolRelayType={}));var dLe;(function(t){t[t.NONE=0]="NONE",t[t.GOVERNANCE_REGISTRATION_SIGNATURE=1]="GOVERNANCE_REGISTRATION_SIGNATURE"})(dLe=Ke.CardanoTxAuxiliaryDataSupplementType||(Ke.CardanoTxAuxiliaryDataSupplementType={}));var lLe;(function(t){t[t.CIP15=0]="CIP15",t[t.CIP36=1]="CIP36"})(lLe=Ke.CardanoGovernanceRegistrationFormat||(Ke.CardanoGovernanceRegistrationFormat={}));var fLe;(function(t){t[t.ORDINARY_TRANSACTION=0]="ORDINARY_TRANSACTION",t[t.POOL_REGISTRATION_AS_OWNER=1]="POOL_REGISTRATION_AS_OWNER",t[t.MULTISIG_TRANSACTION=2]="MULTISIG_TRANSACTION",t[t.PLUTUS_TRANSACTION=3]="PLUTUS_TRANSACTION"})(fLe=Ke.CardanoTxSigningMode||(Ke.CardanoTxSigningMode={}));var pLe;(function(t){t[t.BYRON_WITNESS=0]="BYRON_WITNESS",t[t.SHELLEY_WITNESS=1]="SHELLEY_WITNESS"})(pLe=Ke.CardanoTxWitnessType||(Ke.CardanoTxWitnessType={}));var hLe;(function(t){t[t.Failure_UnexpectedMessage=1]="Failure_UnexpectedMessage",t[t.Failure_ButtonExpected=2]="Failure_ButtonExpected",t[t.Failure_DataError=3]="Failure_DataError",t[t.Failure_ActionCancelled=4]="Failure_ActionCancelled",t[t.Failure_PinExpected=5]="Failure_PinExpected",t[t.Failure_PinCancelled=6]="Failure_PinCancelled",t[t.Failure_PinInvalid=7]="Failure_PinInvalid",t[t.Failure_InvalidSignature=8]="Failure_InvalidSignature",t[t.Failure_ProcessError=9]="Failure_ProcessError",t[t.Failure_NotEnoughFunds=10]="Failure_NotEnoughFunds",t[t.Failure_NotInitialized=11]="Failure_NotInitialized",t[t.Failure_PinMismatch=12]="Failure_PinMismatch",t[t.Failure_WipeCodeMismatch=13]="Failure_WipeCodeMismatch",t[t.Failure_InvalidSession=14]="Failure_InvalidSession",t[t.Failure_FirmwareError=99]="Failure_FirmwareError"})(hLe=Ke.FailureType||(Ke.FailureType={}));var mLe;(function(t){t[t.ButtonRequest_Other=1]="ButtonRequest_Other",t[t.ButtonRequest_FeeOverThreshold=2]="ButtonRequest_FeeOverThreshold",t[t.ButtonRequest_ConfirmOutput=3]="ButtonRequest_ConfirmOutput",t[t.ButtonRequest_ResetDevice=4]="ButtonRequest_ResetDevice",t[t.ButtonRequest_ConfirmWord=5]="ButtonRequest_ConfirmWord",t[t.ButtonRequest_WipeDevice=6]="ButtonRequest_WipeDevice",t[t.ButtonRequest_ProtectCall=7]="ButtonRequest_ProtectCall",t[t.ButtonRequest_SignTx=8]="ButtonRequest_SignTx",t[t.ButtonRequest_FirmwareCheck=9]="ButtonRequest_FirmwareCheck",t[t.ButtonRequest_Address=10]="ButtonRequest_Address",t[t.ButtonRequest_PublicKey=11]="ButtonRequest_PublicKey",t[t.ButtonRequest_MnemonicWordCount=12]="ButtonRequest_MnemonicWordCount",t[t.ButtonRequest_MnemonicInput=13]="ButtonRequest_MnemonicInput",t[t._Deprecated_ButtonRequest_PassphraseType=14]="_Deprecated_ButtonRequest_PassphraseType",t[t.ButtonRequest_UnknownDerivationPath=15]="ButtonRequest_UnknownDerivationPath",t[t.ButtonRequest_RecoveryHomepage=16]="ButtonRequest_RecoveryHomepage",t[t.ButtonRequest_Success=17]="ButtonRequest_Success",t[t.ButtonRequest_Warning=18]="ButtonRequest_Warning",t[t.ButtonRequest_PassphraseEntry=19]="ButtonRequest_PassphraseEntry",t[t.ButtonRequest_PinEntry=20]="ButtonRequest_PinEntry"})(mLe=Ke.Enum_ButtonRequestType||(Ke.Enum_ButtonRequestType={}));var gLe;(function(t){t[t.PinMatrixRequestType_Current=1]="PinMatrixRequestType_Current",t[t.PinMatrixRequestType_NewFirst=2]="PinMatrixRequestType_NewFirst",t[t.PinMatrixRequestType_NewSecond=3]="PinMatrixRequestType_NewSecond",t[t.PinMatrixRequestType_WipeCodeFirst=4]="PinMatrixRequestType_WipeCodeFirst",t[t.PinMatrixRequestType_WipeCodeSecond=5]="PinMatrixRequestType_WipeCodeSecond"})(gLe=Ke.Enum_PinMatrixRequestType||(Ke.Enum_PinMatrixRequestType={}));var yLe;(function(t){t[t.NO=0]="NO",t[t.YES=1]="YES",t[t.INFO=2]="INFO"})(yLe=Ke.DebugButton||(Ke.DebugButton={}));var vLe;(function(t){t[t.UINT=1]="UINT",t[t.INT=2]="INT",t[t.BYTES=3]="BYTES",t[t.STRING=4]="STRING",t[t.BOOL=5]="BOOL",t[t.ADDRESS=6]="ADDRESS",t[t.ARRAY=7]="ARRAY",t[t.STRUCT=8]="STRUCT"})(vLe=Ke.EthereumDataType||(Ke.EthereumDataType={}));var bLe;(function(t){t[t.Bip39=0]="Bip39",t[t.Slip39_Basic=1]="Slip39_Basic",t[t.Slip39_Advanced=2]="Slip39_Advanced"})(bLe=Ke.Enum_BackupType||(Ke.Enum_BackupType={}));var _Le;(function(t){t[t.Strict=0]="Strict",t[t.PromptAlways=1]="PromptAlways",t[t.PromptTemporarily=2]="PromptTemporarily"})(_Le=Ke.Enum_SafetyCheckLevel||(Ke.Enum_SafetyCheckLevel={}));var wLe;(function(t){t[t.Capability_Bitcoin=1]="Capability_Bitcoin",t[t.Capability_Bitcoin_like=2]="Capability_Bitcoin_like",t[t.Capability_Binance=3]="Capability_Binance",t[t.Capability_Cardano=4]="Capability_Cardano",t[t.Capability_Crypto=5]="Capability_Crypto",t[t.Capability_EOS=6]="Capability_EOS",t[t.Capability_Ethereum=7]="Capability_Ethereum",t[t.Capability_Lisk=8]="Capability_Lisk",t[t.Capability_Monero=9]="Capability_Monero",t[t.Capability_NEM=10]="Capability_NEM",t[t.Capability_Ripple=11]="Capability_Ripple",t[t.Capability_Stellar=12]="Capability_Stellar",t[t.Capability_Tezos=13]="Capability_Tezos",t[t.Capability_U2F=14]="Capability_U2F",t[t.Capability_Shamir=15]="Capability_Shamir",t[t.Capability_ShamirGroups=16]="Capability_ShamirGroups",t[t.Capability_PassphraseEntry=17]="Capability_PassphraseEntry"})(wLe=Ke.Enum_Capability||(Ke.Enum_Capability={}));var xLe;(function(t){t[t.DISABLE=0]="DISABLE",t[t.ENABLE=1]="ENABLE",t[t.REFRESH=2]="REFRESH"})(xLe=Ke.SdProtectOperationType||(Ke.SdProtectOperationType={}));var SLe;(function(t){t[t.RecoveryDeviceType_ScrambledWords=0]="RecoveryDeviceType_ScrambledWords",t[t.RecoveryDeviceType_Matrix=1]="RecoveryDeviceType_Matrix"})(SLe=Ke.RecoveryDeviceType||(Ke.RecoveryDeviceType={}));var ELe;(function(t){t[t.WordRequestType_Plain=0]="WordRequestType_Plain",t[t.WordRequestType_Matrix9=1]="WordRequestType_Matrix9",t[t.WordRequestType_Matrix6=2]="WordRequestType_Matrix6"})(ELe=Ke.Enum_WordRequestType||(Ke.Enum_WordRequestType={}));var TLe;(function(t){t[t.MAINNET=0]="MAINNET",t[t.TESTNET=1]="TESTNET",t[t.STAGENET=2]="STAGENET",t[t.FAKECHAIN=3]="FAKECHAIN"})(TLe=Ke.MoneroNetworkType||(Ke.MoneroNetworkType={}));var ALe;(function(t){t[t.MosaicLevy_Absolute=1]="MosaicLevy_Absolute",t[t.MosaicLevy_Percentile=2]="MosaicLevy_Percentile"})(ALe=Ke.NEMMosaicLevy||(Ke.NEMMosaicLevy={}));var PLe;(function(t){t[t.SupplyChange_Increase=1]="SupplyChange_Increase",t[t.SupplyChange_Decrease=2]="SupplyChange_Decrease"})(PLe=Ke.NEMSupplyChangeType||(Ke.NEMSupplyChangeType={}));var OLe;(function(t){t[t.CosignatoryModification_Add=1]="CosignatoryModification_Add",t[t.CosignatoryModification_Delete=2]="CosignatoryModification_Delete"})(OLe=Ke.NEMModificationType||(Ke.NEMModificationType={}));var RLe;(function(t){t[t.ImportanceTransfer_Activate=1]="ImportanceTransfer_Activate",t[t.ImportanceTransfer_Deactivate=2]="ImportanceTransfer_Deactivate"})(RLe=Ke.NEMImportanceTransferMode||(Ke.NEMImportanceTransferMode={}));var MLe;(function(t){t[t.NATIVE=0]="NATIVE",t[t.ALPHANUM4=1]="ALPHANUM4",t[t.ALPHANUM12=2]="ALPHANUM12"})(MLe=Ke.StellarAssetType||(Ke.StellarAssetType={}));var CLe;(function(t){t[t.NONE=0]="NONE",t[t.TEXT=1]="TEXT",t[t.ID=2]="ID",t[t.HASH=3]="HASH",t[t.RETURN=4]="RETURN"})(CLe=Ke.StellarMemoType||(Ke.StellarMemoType={}));var ILe;(function(t){t[t.ACCOUNT=0]="ACCOUNT",t[t.PRE_AUTH=1]="PRE_AUTH",t[t.HASH=2]="HASH"})(ILe=Ke.StellarSignerType||(Ke.StellarSignerType={}));var NLe;(function(t){t[t.Implicit=0]="Implicit",t[t.Originated=1]="Originated"})(NLe=Ke.TezosContractType||(Ke.TezosContractType={}));var kLe;(function(t){t[t.Yay=0]="Yay",t[t.Nay=1]="Nay",t[t.Pass=2]="Pass"})(kLe=Ke.TezosBallotType||(Ke.TezosBallotType={}))});var Pt=x(Eu=>{"use strict";Object.defineProperty(Eu,"__esModule",{value:!0});Eu.PROTO=Eu.NEM=Eu.CARDANO=Eu.NETWORK=Eu.ERRORS=void 0;var Mb=mr();Eu.ERRORS=Mb.__importStar(dy());Eu.NETWORK=Mb.__importStar(ire());Eu.CARDANO=Mb.__importStar(nre());Eu.NEM=Mb.__importStar(are());Eu.PROTO=Mb.__importStar(DC())});var ly=x(wf=>{"use strict";Object.defineProperty(wf,"__esModule",{value:!0});wf.createUiMessage=wf.UI_REQUEST=wf.UI_EVENT=void 0;wf.UI_EVENT="UI_EVENT";wf.UI_REQUEST={TRANSPORT:"ui-no_transport",BOOTLOADER:"ui-device_bootloader_mode",NOT_IN_BOOTLOADER:"ui-device_not_in_bootloader_mode",REQUIRE_MODE:"ui-device_require_mode",INITIALIZE:"ui-device_not_initialized",SEEDLESS:"ui-device_seedless",FIRMWARE_OLD:"ui-device_firmware_old",FIRMWARE_OUTDATED:"ui-device_firmware_outdated",FIRMWARE_NOT_SUPPORTED:"ui-device_firmware_unsupported",FIRMWARE_NOT_COMPATIBLE:"ui-device_firmware_not_compatible",FIRMWARE_NOT_INSTALLED:"ui-device_firmware_not_installed",FIRMWARE_PROGRESS:"ui-firmware-progress",DEVICE_NEEDS_BACKUP:"ui-device_needs_backup",REQUEST_UI_WINDOW:"ui-request_window",CLOSE_UI_WINDOW:"ui-close_window",REQUEST_PERMISSION:"ui-request_permission",REQUEST_CONFIRMATION:"ui-request_confirmation",REQUEST_PIN:"ui-request_pin",INVALID_PIN:"ui-invalid_pin",REQUEST_PASSPHRASE:"ui-request_passphrase",REQUEST_PASSPHRASE_ON_DEVICE:"ui-request_passphrase_on_device",INVALID_PASSPHRASE:"ui-invalid_passphrase",CONNECT:"ui-connect",LOADING:"ui-loading",SET_OPERATION:"ui-set_operation",SELECT_DEVICE:"ui-select_device",SELECT_ACCOUNT:"ui-select_account",SELECT_FEE:"ui-select_fee",UPDATE_CUSTOM_FEE:"ui-update_custom_fee",INSUFFICIENT_FUNDS:"ui-insufficient_funds",REQUEST_BUTTON:"ui-button",REQUEST_WORD:"ui-request_word",LOGIN_CHALLENGE_REQUEST:"ui-login_challenge_request",BUNDLE_PROGRESS:"ui-bundle_progress",ADDRESS_VALIDATION:"ui-address_validation",IFRAME_FAILURE:"ui-iframe_failure"};var BLe=(t,e)=>({event:wf.UI_EVENT,type:t,payload:e});wf.createUiMessage=BLe});var qC=x(fy=>{"use strict";Object.defineProperty(fy,"__esModule",{value:!0});fy.createUiResponse=fy.UI_RESPONSE=void 0;var FLe=ly();fy.UI_RESPONSE={RECEIVE_PERMISSION:"ui-receive_permission",RECEIVE_CONFIRMATION:"ui-receive_confirmation",RECEIVE_PIN:"ui-receive_pin",RECEIVE_PASSPHRASE:"ui-receive_passphrase",RECEIVE_DEVICE:"ui-receive_device",RECEIVE_ACCOUNT:"ui-receive_account",RECEIVE_FEE:"ui-receive_fee",RECEIVE_WORD:"ui-receive_word",INVALID_PASSPHRASE_ACTION:"ui-invalid_passphrase_action",CHANGE_SETTINGS:"ui-change_settings",LOGIN_CHALLENGE_RESPONSE:"ui-login_challenge_response"};var DLe=(t,e)=>({event:FLe.UI_EVENT,type:t,payload:e});fy.createUiResponse=DLe});var sre=x(xf=>{"use strict";Object.defineProperty(xf,"__esModule",{value:!0});xf.createBlockchainMessage=xf.BLOCKCHAIN=xf.BLOCKCHAIN_EVENT=void 0;xf.BLOCKCHAIN_EVENT="BLOCKCHAIN_EVENT";xf.BLOCKCHAIN={CONNECT:"blockchain-connect",ERROR:"blockchain-error",BLOCK:"blockchain-block",NOTIFICATION:"blockchain-notification",FIAT_RATES_UPDATE:"fiat-rates-update"};var qLe=(t,e)=>({event:xf.BLOCKCHAIN_EVENT,type:t,payload:e});xf.createBlockchainMessage=qLe});var ore=x(J0=>{"use strict";Object.defineProperty(J0,"__esModule",{value:!0});J0.createResponseMessage=J0.RESPONSE_EVENT=void 0;var LLe=dy();J0.RESPONSE_EVENT="RESPONSE_EVENT";var ULe=(t,e,r)=>({event:J0.RESPONSE_EVENT,type:J0.RESPONSE_EVENT,id:t,success:e,payload:e?r:(0,LLe.serializeError)(r)});J0.createResponseMessage=ULe});var ure=x(X0=>{"use strict";Object.defineProperty(X0,"__esModule",{value:!0});X0.createErrorMessage=X0.parseMessage=X0.CORE_EVENT=void 0;X0.CORE_EVENT="CORE_EVENT";var jLe=t=>{let e={event:t.event,type:t.type,payload:t.payload};return typeof t.id=="number"&&(e.id=t.id),typeof t.success=="boolean"&&(e.success=t.success),e};X0.parseMessage=jLe;var VLe=t=>({success:!1,payload:{error:t.message,code:t.code}});X0.createErrorMessage=VLe});var LC=x(Sf=>{"use strict";Object.defineProperty(Sf,"__esModule",{value:!0});Sf.createDeviceMessage=Sf.DEVICE=Sf.DEVICE_EVENT=void 0;Sf.DEVICE_EVENT="DEVICE_EVENT";Sf.DEVICE={CONNECT:"device-connect",CONNECT_UNACQUIRED:"device-connect_unacquired",DISCONNECT:"device-disconnect",CHANGED:"device-changed",ACQUIRE:"device-acquire",RELEASE:"device-release",ACQUIRED:"device-acquired",RELEASED:"device-released",USED_ELSEWHERE:"device-used_elsewhere",LOADING:"device-loading",BUTTON:"button",PIN:"pin",PASSPHRASE:"passphrase",PASSPHRASE_ON_DEVICE:"passphrase_on_device",WORD:"word"};var HLe=(t,e)=>({event:Sf.DEVICE_EVENT,type:t,payload:e});Sf.createDeviceMessage=HLe});var cre=x(py=>{"use strict";Object.defineProperty(py,"__esModule",{value:!0});py.createIFrameMessage=py.IFRAME=void 0;var zLe=ly();py.IFRAME={BOOTSTRAP:"iframe-bootstrap",LOADED:"iframe-loaded",INIT:"iframe-init",ERROR:"iframe-error",CALL:"iframe-call"};var GLe=(t,e)=>({event:zLe.UI_EVENT,type:t,payload:e});py.createIFrameMessage=GLe});var dre=x(hy=>{"use strict";Object.defineProperty(hy,"__esModule",{value:!0});hy.createPopupMessage=hy.POPUP=void 0;var JLe=ly();hy.POPUP={BOOTSTRAP:"popup-bootstrap",LOADED:"popup-loaded",INIT:"popup-init",ERROR:"popup-error",EXTENSION_USB_PERMISSIONS:"open-usb-permissions",HANDSHAKE:"popup-handshake",CLOSED:"popup-closed",CANCEL_POPUP_REQUEST:"ui-cancel-popup-request",CLOSE_WINDOW:"window.close"};var XLe=(t,e)=>({event:JLe.UI_EVENT,type:t,payload:e});hy.createPopupMessage=XLe});var UC=x(Ef=>{"use strict";Object.defineProperty(Ef,"__esModule",{value:!0});Ef.createTransportMessage=Ef.TRANSPORT=Ef.TRANSPORT_EVENT=void 0;var KLe=dy();Ef.TRANSPORT_EVENT="TRANSPORT_EVENT";Ef.TRANSPORT={START:"transport-start",ERROR:"transport-error",UPDATE:"transport-update",STREAM:"transport-stream",REQUEST_DEVICE:"transport-request_device",DISABLE_WEBUSB:"transport-disable_webusb",START_PENDING:"transport-start_pending"};var WLe=(t,e)=>({event:Ef.TRANSPORT_EVENT,type:t,payload:"error"in e?(0,KLe.serializeError)(e):e});Ef.createTransportMessage=WLe});var fre=x(lre=>{"use strict";Object.defineProperty(lre,"__esModule",{value:!0})});var rr=x(Ks=>{"use strict";Object.defineProperty(Ks,"__esModule",{value:!0});Ks.UI=void 0;var zd=mr(),ZLe=ly(),$Le=qC();zd.__exportStar(sre(),Ks);zd.__exportStar(ore(),Ks);zd.__exportStar(ure(),Ks);zd.__exportStar(LC(),Ks);zd.__exportStar(cre(),Ks);zd.__exportStar(dre(),Ks);zd.__exportStar(UC(),Ks);zd.__exportStar(fre(),Ks);zd.__exportStar(ly(),Ks);zd.__exportStar(qC(),Ks);Ks.UI={...ZLe.UI_REQUEST,...$Le.UI_RESPONSE}});var hre=x(pre=>{"use strict";Object.defineProperty(pre,"__esModule",{value:!0})});var gre=x(mre=>{"use strict";Object.defineProperty(mre,"__esModule",{value:!0})});var vre=x(yre=>{"use strict";Object.defineProperty(yre,"__esModule",{value:!0})});var _re=x(bre=>{"use strict";Object.defineProperty(bre,"__esModule",{value:!0})});var xre=x(wre=>{"use strict";Object.defineProperty(wre,"__esModule",{value:!0})});var Ere=x(Sre=>{"use strict";Object.defineProperty(Sre,"__esModule",{value:!0})});var Are=x(Tre=>{"use strict";Object.defineProperty(Tre,"__esModule",{value:!0})});var Ore=x(Pre=>{"use strict";Object.defineProperty(Pre,"__esModule",{value:!0})});var Mre=x(Rre=>{"use strict";Object.defineProperty(Rre,"__esModule",{value:!0})});var Ire=x(Cre=>{"use strict";Object.defineProperty(Cre,"__esModule",{value:!0})});var kre=x(Nre=>{"use strict";Object.defineProperty(Nre,"__esModule",{value:!0})});var Fre=x(Bre=>{"use strict";Object.defineProperty(Bre,"__esModule",{value:!0})});var qre=x(Dre=>{"use strict";Object.defineProperty(Dre,"__esModule",{value:!0})});var Ure=x(Lre=>{"use strict";Object.defineProperty(Lre,"__esModule",{value:!0})});var Vre=x(jre=>{"use strict";Object.defineProperty(jre,"__esModule",{value:!0})});var Hre=x(La=>{"use strict";Object.defineProperty(La,"__esModule",{value:!0});var Rs=mr();Rs.__exportStar(hre(),La);Rs.__exportStar(gre(),La);Rs.__exportStar(vre(),La);Rs.__exportStar(_re(),La);Rs.__exportStar(xre(),La);Rs.__exportStar(Ere(),La);Rs.__exportStar(Are(),La);Rs.__exportStar(Ore(),La);Rs.__exportStar(Mre(),La);Rs.__exportStar(Ire(),La);Rs.__exportStar(kre(),La);Rs.__exportStar(Fre(),La);Rs.__exportStar(qre(),La);Rs.__exportStar(Ure(),La);Rs.__exportStar(Vre(),La)});var zre=x(mm=>{"use strict";Object.defineProperty(mm,"__esModule",{value:!0});mm.DEFAULT_DOMAIN=mm.VERSION=void 0;mm.VERSION="9.0.7";var QLe=mm.VERSION.split(".").map(t=>parseInt(t,10));mm.DEFAULT_DOMAIN=`https://connect.trezor.io/${QLe[0]}/`});var R7=x(Ws=>{"use strict";Object.defineProperty(Ws,"__esModule",{value:!0});Ws.parseConnectSettings=Ws.corsValidator=Ws.getEnv=Ws.DEFAULT_PRIORITY=void 0;var my=zre();Ws.DEFAULT_PRIORITY=2;var YLe={configSrc:"./data/config.json",version:my.VERSION,debug:!1,priority:Ws.DEFAULT_PRIORITY,trustedHost:!1,connectSrc:my.DEFAULT_DOMAIN,iframeSrc:`${my.DEFAULT_DOMAIN}iframe.html`,popup:!0,popupSrc:`${my.DEFAULT_DOMAIN}popup.html`,webusbSrc:`${my.DEFAULT_DOMAIN}webusb.html`,transports:void 0,pendingTransportEvent:!0,supportedBrowser:typeof navigator<"u"?!/Trident|MSIE|Edge/.test(navigator.userAgent):!0,env:"web",lazyLoad:!1,timestamp:new Date().getTime(),interactionTimeout:600},eUe=t=>{if(!!t&&typeof t.email=="string"&&typeof t.appUrl=="string")return{email:t.email,appUrl:t.appUrl}},tUe=()=>{if(typeof chrome<"u"&&chrome.runtime&&typeof chrome.runtime.onConnect<"u")return"webextension";if(typeof navigator<"u"){if(typeof navigator.product=="string"&&navigator.product.toLowerCase()==="reactnative")return"react-native";if(navigator.userAgent.toLowerCase().indexOf(" electron/")>-1)return"electron"}return"web"};Ws.getEnv=tUe;var rUe=t=>{if(typeof t=="string"&&(t.match(/^https:\/\/([A-Za-z0-9\-_]+\.)*trezor\.io\//)||t.match(/^https?:\/\/localhost:[58][0-9]{3}\//)||t.match(/^https:\/\/([A-Za-z0-9\-_]+\.)*sldev\.cz\//)||t.match(/^https?:\/\/([A-Za-z0-9\-_]+\.)*trezoriovpjcahpzkrewelclulmszwbqpzmzgub37gbcjlvluxtruqad\.onion\//)))return t};Ws.corsValidator=rUe;var iUe=(t={})=>{let e={...YLe};Object.prototype.hasOwnProperty.call(t,"debug")&&(Array.isArray(t),typeof t.debug=="boolean"?e.debug=t.debug:typeof t.debug=="string"&&(e.debug=t.debug==="true")),typeof t.connectSrc=="string"&&(e.connectSrc=t.connectSrc);let r;if(typeof window<"u"?r=window.__TREZOR_CONNECT_SRC:typeof global<"u"&&(r=global.__TREZOR_CONNECT_SRC),typeof r=="string"&&(e.connectSrc=(0,Ws.corsValidator)(r),e.debug=!0),typeof window<"u"&&window.location&&typeof window.location.search=="string"){let a=window.location.search.split("&").find(s=>s.indexOf("trezor-connect-src")>=0);if(a){let[,s]=a.split("=");e.connectSrc=(0,Ws.corsValidator)(decodeURIComponent(s)),e.debug=!0}}let i=e.connectSrc||my.DEFAULT_DOMAIN;return e.iframeSrc=`${i}iframe.html`,e.popupSrc=`${i}popup.html`,e.webusbSrc=`${i}webusb.html`,typeof t.transportReconnect=="boolean"&&(e.transportReconnect=t.transportReconnect),typeof t.webusb=="boolean"&&(e.webusb=t.webusb),Array.isArray(t.transports)&&(e.transports=t.transports),typeof t.popup=="boolean"&&(e.popup=t.popup),typeof t.lazyLoad=="boolean"&&(e.lazyLoad=t.lazyLoad),typeof t.pendingTransportEvent=="boolean"&&(e.pendingTransportEvent=t.pendingTransportEvent),typeof window<"u"&&window.location&&window.location.protocol==="file:"&&(e.origin=`file://${window.location.pathname}`,e.webusb=!1),typeof t.extension=="string"&&(e.extension=t.extension),typeof t.env=="string"?e.env=t.env:e.env=(0,Ws.getEnv)(),typeof t.timestamp=="number"&&(e.timestamp=t.timestamp),typeof t.interactionTimeout=="number"&&(e.interactionTimeout=t.interactionTimeout),typeof t.manifest=="object"&&(e.manifest=eUe(t.manifest)),e};Ws.parseConnectSettings=iUe});var M7=x(gm=>{"use strict";Object.defineProperty(gm,"__esModule",{value:!0});gm.parseConnectSettings=void 0;var jC=mr();jC.__exportStar(Pt(),gm);jC.__exportStar(rr(),gm);jC.__exportStar(Hre(),gm);var nUe=R7();Object.defineProperty(gm,"parseConnectSettings",{enumerable:!0,get:function(){return nUe.parseConnectSettings}})});var VC=x(C7=>{"use strict";Object.defineProperty(C7,"__esModule",{value:!0});C7.factory=void 0;var K0=rr(),aUe=({eventEmitter:t,manifest:e,init:r,call:i,requestLogin:n,uiResponse:a,renderWebUSBButton:s,disableWebUSB:o,requestWebUSBDevice:c,cancel:u,dispose:f})=>({manifest:e,init:r,getSettings:()=>i({method:"getSettings"}),on:(p,b)=>{t.on(p,b)},off:(p,b)=>{t.removeListener(p,b)},removeAllListeners:p=>{typeof p=="string"?t.removeAllListeners(p):t.removeAllListeners()},uiResponse:a,blockchainGetAccountBalanceHistory:p=>i({...p,method:"blockchainGetAccountBalanceHistory"}),blockchainGetCurrentFiatRates:p=>i({...p,method:"blockchainGetCurrentFiatRates"}),blockchainGetFiatRatesForTimestamps:p=>i({...p,method:"blockchainGetFiatRatesForTimestamps"}),blockchainDisconnect:p=>i({...p,method:"blockchainDisconnect"}),blockchainEstimateFee:p=>i({...p,method:"blockchainEstimateFee"}),blockchainGetTransactions:p=>i({...p,method:"blockchainGetTransactions"}),blockchainSetCustomBackend:p=>i({...p,method:"blockchainSetCustomBackend"}),blockchainSubscribe:p=>i({...p,method:"blockchainSubscribe"}),blockchainSubscribeFiatRates:p=>i({...p,method:"blockchainSubscribeFiatRates"}),blockchainUnsubscribe:p=>i({...p,method:"blockchainUnsubscribe"}),blockchainUnsubscribeFiatRates:p=>i({...p,method:"blockchainUnsubscribeFiatRates"}),requestLogin:p=>n(p),cardanoGetAddress:p=>i({...p,method:"cardanoGetAddress",useEventListener:t.listenerCount(K0.UI.ADDRESS_VALIDATION)>0}),cardanoGetNativeScriptHash:p=>i({...p,method:"cardanoGetNativeScriptHash"}),cardanoGetPublicKey:p=>i({...p,method:"cardanoGetPublicKey"}),cardanoSignTransaction:p=>i({...p,method:"cardanoSignTransaction"}),cipherKeyValue:p=>i({...p,method:"cipherKeyValue"}),composeTransaction:p=>i({...p,method:"composeTransaction"}),ethereumGetAddress:p=>i({...p,method:"ethereumGetAddress",useEventListener:t.listenerCount(K0.UI.ADDRESS_VALIDATION)>0}),ethereumGetPublicKey:p=>i({...p,method:"ethereumGetPublicKey"}),ethereumSignMessage:p=>i({...p,method:"ethereumSignMessage"}),ethereumSignTransaction:p=>i({...p,method:"ethereumSignTransaction"}),ethereumSignTypedData:p=>i({...p,method:"ethereumSignTypedData"}),ethereumVerifyMessage:p=>i({...p,method:"ethereumVerifyMessage"}),getAccountInfo:p=>i({...p,method:"getAccountInfo"}),getAddress:p=>i({...p,method:"getAddress",useEventListener:t.listenerCount(K0.UI.ADDRESS_VALIDATION)>0}),getDeviceState:p=>i({...p,method:"getDeviceState"}),getFeatures:p=>i({...p,method:"getFeatures"}),getFirmwareHash:p=>i({...p,method:"getFirmwareHash"}),getOwnershipId:p=>i({...p,method:"getOwnershipId"}),getOwnershipProof:p=>i({...p,method:"getOwnershipProof"}),getPublicKey:p=>i({...p,method:"getPublicKey"}),nemGetAddress:p=>i({...p,method:"nemGetAddress",useEventListener:t.listenerCount(K0.UI.ADDRESS_VALIDATION)>0}),nemSignTransaction:p=>i({...p,method:"nemSignTransaction"}),pushTransaction:p=>i({...p,method:"pushTransaction"}),rippleGetAddress:p=>i({...p,method:"rippleGetAddress",useEventListener:t.listenerCount(K0.UI.ADDRESS_VALIDATION)>0}),rippleSignTransaction:p=>i({...p,method:"rippleSignTransaction"}),signMessage:p=>i({...p,method:"signMessage"}),signTransaction:p=>i({...p,method:"signTransaction"}),stellarGetAddress:p=>i({...p,method:"stellarGetAddress",useEventListener:t.listenerCount(K0.UI.ADDRESS_VALIDATION)>0}),stellarSignTransaction:p=>i({...p,method:"stellarSignTransaction"}),tezosGetAddress:p=>i({...p,method:"tezosGetAddress",useEventListener:t.listenerCount(K0.UI.ADDRESS_VALIDATION)>0}),tezosGetPublicKey:p=>i({...p,method:"tezosGetPublicKey"}),tezosSignTransaction:p=>i({...p,method:"tezosSignTransaction"}),unlockPath:p=>i({...p,method:"unlockPath"}),eosGetPublicKey:p=>i({...p,method:"eosGetPublicKey"}),eosSignTransaction:p=>i({...p,method:"eosSignTransaction"}),binanceGetAddress:p=>i({...p,method:"binanceGetAddress",useEventListener:t.listenerCount(K0.UI.ADDRESS_VALIDATION)>0}),binanceGetPublicKey:p=>i({...p,method:"binanceGetPublicKey"}),binanceSignTransaction:p=>i({...p,method:"binanceSignTransaction"}),verifyMessage:p=>i({...p,method:"verifyMessage"}),resetDevice:p=>i({...p,method:"resetDevice"}),wipeDevice:p=>i({...p,method:"wipeDevice"}),checkFirmwareAuthenticity:p=>i({...p,method:"checkFirmwareAuthenticity"}),applyFlags:p=>i({...p,method:"applyFlags"}),applySettings:p=>i({...p,method:"applySettings"}),authorizeCoinjoin:p=>i({...p,method:"authorizeCoinjoin"}),backupDevice:p=>i({...p,method:"backupDevice"}),changePin:p=>i({...p,method:"changePin"}),firmwareUpdate:p=>i({...p,method:"firmwareUpdate"}),recoveryDevice:p=>i({...p,method:"recoveryDevice"}),getCoinInfo:p=>i({...p,method:"getCoinInfo"}),rebootToBootloader:p=>i({...p,method:"rebootToBootloader"}),setBusy:p=>i({...p,method:"setBusy"}),setProxy:p=>i({...p,method:"setProxy"}),dispose:f,cancel:u,renderWebUSBButton:s,disableWebUSB:o,requestWebUSBDevice:c});C7.factory=aUe});var Tf=x(Gd=>{"use strict";Object.defineProperty(Gd,"__esModule",{value:!0});Gd.getLog=Gd.enableLogByPrefix=Gd.enableLog=Gd.initLog=void 0;var Gre={"@trezor/connect":"color: #f4a742; background: #000;",IFrame:"color: #f4a742; background: #000;",Core:"color: #f4a742; background: #000;",DescriptorStream:"color: #77ab59; background: #000;",DeviceList:"color: #77ab59; background: #000;",Device:"color: #bada55; background: #000;",DeviceCommands:"color: #bada55; background: #000;"},sUe=100,HC=class{constructor(e,r){this.prefix=e,this.enabled=r,this.messages=[],this.css=typeof window<"u"&&Gre[e]?Gre[e]:""}addMessage(e,r,...i){this.messages.push({level:e,prefix:r,message:i,timestamp:new Date().getTime()}),this.messages.length>sUe&&this.messages.shift()}log(...e){this.addMessage("log",this.prefix,...e),this.enabled&&console.log(this.prefix,...e)}error(...e){this.addMessage("error",this.prefix,...e),this.enabled&&console.error(this.prefix,...e)}warn(...e){this.addMessage("warn",this.prefix,...e),this.enabled&&console.warn(this.prefix,...e)}debug(...e){this.addMessage("debug",this.prefix,...e),this.enabled&&(this.css?console.log(`%c${this.prefix}`,this.css,...e):console.log(this.prefix,...e))}},ym={},oUe=(t,e)=>{let r=new HC(t,!!e);return ym[t]=r,r};Gd.initLog=oUe;var uUe=t=>{Object.keys(ym).forEach(e=>{ym[e].enabled=!!t})};Gd.enableLog=uUe;var cUe=(t,e)=>{ym[t]&&(ym[t].enabled=e)};Gd.enableLogByPrefix=cUe;var dUe=()=>{let t=[];return Object.keys(ym).forEach(e=>{t=t.concat(ym[e].messages)}),t.sort((e,r)=>e.timestamp-r.timestamp),t};Gd.getLog=dUe});var Jre=x(yy=>{"use strict";Object.defineProperty(yy,"__esModule",{value:!0});yy.AbortablePromise=yy.AbortError=void 0;var I7=class extends Error{constructor(e="Aborted"){super(e),this.name="AbortError"}};yy.AbortError=I7;var gy=class extends Promise{get abortReason(){return this._abortReason}constructor(e,r){let i=r||new AbortController,n=i.signal,a=(s,o)=>{n.addEventListener("abort",()=>{o(new I7(this.abortReason))}),e(s,o,n)};super(a),this.abort=s=>{this._abortReason=s||"Aborted",i.abort()}}};yy.AbortablePromise=gy;gy.from=t=>t instanceof gy?t:new gy((e,r)=>{t.then(e).catch(r)})});var Xre=x(N7=>{"use strict";Object.defineProperty(N7,"__esModule",{value:!0});N7.arrayDistinct=void 0;var lUe=(t,e,r)=>r.indexOf(t)===e;N7.arrayDistinct=lUe});var zC=x(k7=>{"use strict";Object.defineProperty(k7,"__esModule",{value:!0});k7.arrayPartition=void 0;var fUe=(t,e)=>t.reduce(([r,i],n)=>e(n)?[[...r,n],i]:[r,[...i,n]],[[],[]]);k7.arrayPartition=fUe});var Wre=x(B7=>{"use strict";Object.defineProperty(B7,"__esModule",{value:!0});B7.arrayToDictionary=void 0;var Kre=t=>!!["string","number"].includes(typeof t),pUe=(t,e,r)=>r?t.reduce((i,n)=>{var a;let s=e(n);return Kre(s)?Object.assign(Object.assign({},i),{[s]:[...(a=i[s])!==null&&a!==void 0?a:[],n]}):i},{}):t.reduce((i,n)=>{let a=e(n);return Kre(a)?Object.assign(Object.assign({},i),{[a]:n}):i},{});B7.arrayToDictionary=pUe});var Zre=x(F7=>{"use strict";Object.defineProperty(F7,"__esModule",{value:!0});F7.reverseBuffer=void 0;var hUe=t=>{if(t.length<1)return t;let e=Buffer.alloc(t.length),r=e.length-1;for(let i=0;i{"use strict";Object.defineProperty(D7,"__esModule",{value:!0});D7.bytesToHumanReadable=void 0;var $re=["B","KB","MB","GB","TB"],mUe=t=>{let e=Math.abs(t),r=0;for(;e>=1024||r>=$re.length;)e/=1024,r++;return`${e.toFixed(1)} ${$re[r]}`};D7.bytesToHumanReadable=mUe});var Yre=x(q7=>{"use strict";Object.defineProperty(q7,"__esModule",{value:!0});q7.capitalizeFirstLetter=void 0;var gUe=t=>t.charAt(0).toUpperCase()+t.slice(1);q7.capitalizeFirstLetter=gUe});var eie=x(L7=>{"use strict";Object.defineProperty(L7,"__esModule",{value:!0});L7.countBytesInString=void 0;var yUe=t=>encodeURI(t).split(/%..|./).length-1;L7.countBytesInString=yUe});var Cb=x(U7=>{"use strict";Object.defineProperty(U7,"__esModule",{value:!0});U7.createDeferred=void 0;var vUe=t=>{let e=()=>{},r=()=>{},i=new Promise((n,a)=>{e=n,r=a});return{id:t,resolve:e,reject:r,promise:i}};U7.createDeferred=vUe});var tie=x(j7=>{"use strict";Object.defineProperty(j7,"__esModule",{value:!0});j7.createTimeoutPromise=void 0;var bUe=t=>new Promise(e=>setTimeout(e,t));j7.createTimeoutPromise=bUe});var rie=x(vy=>{"use strict";Object.defineProperty(vy,"__esModule",{value:!0});vy.getValueByKey=vy.getKeyByValue=void 0;function _Ue(t,e){return t&&Object.keys(t).find(r=>t[r]===e)}vy.getKeyByValue=_Ue;function wUe(t,e){let r=t&&Object.keys(t).find(i=>i===e);return r&&t[r]}vy.getValueByKey=wUe});var iie=x(V7=>{"use strict";Object.defineProperty(V7,"__esModule",{value:!0});V7.getNumberFromPixelString=void 0;var xUe=t=>parseInt(t.replace("px",""),10);V7.getNumberFromPixelString=xUe});var nie=x(H7=>{"use strict";Object.defineProperty(H7,"__esModule",{value:!0});H7.getRandomNumberInRange=void 0;var SUe=(t,e)=>Math.floor(Math.random()*(e-t+1))+t;H7.getRandomNumberInRange=SUe});var aie=x(z7=>{"use strict";Object.defineProperty(z7,"__esModule",{value:!0});z7.getWeakRandomId=void 0;var EUe=t=>{let e="",r="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";for(let i=0;i{"use strict";Object.defineProperty(G7,"__esModule",{value:!0});G7.hasUppercaseLetter=void 0;var TUe=new RegExp("^(.*[A-Z].*)$"),AUe=t=>TUe.test(t);G7.hasUppercaseLetter=AUe});var oie=x(J7=>{"use strict";Object.defineProperty(J7,"__esModule",{value:!0});J7.isAscii=void 0;function PUe(t){return t?/^[\x00-\x7F]*$/.test(t):!0}J7.isAscii=PUe});var uie=x(X7=>{"use strict";Object.defineProperty(X7,"__esModule",{value:!0});X7.isHex=void 0;var OUe=t=>/^(0x|0X)?[0-9A-Fa-f]+$/g.test(t);X7.isHex=OUe});var cie=x(K7=>{"use strict";Object.defineProperty(K7,"__esModule",{value:!0});K7.isNotUndefined=void 0;var RUe=t=>typeof t<"u";K7.isNotUndefined=RUe});var die=x(W7=>{"use strict";Object.defineProperty(W7,"__esModule",{value:!0});W7.isUrl=void 0;var MUe=/^(http|ws)s?:\/\/[a-z0-9]([a-z0-9.-]+)?(:[0-9]{1,5})?((\/)?(([a-z0-9-_])+(\/)?)+)$/i,CUe=t=>MUe.test(t);W7.isUrl=CUe});var pie=x(yc=>{"use strict";Object.defineProperty(yc,"__esModule",{value:!0});yc.mergeDeepObject=void 0;var lie=t=>{if(typeof t=="object"&&t!==null){if(typeof Object.getPrototypeOf=="function"){let e=Object.getPrototypeOf(t);return e===Object.prototype||e===null}return Object.prototype.toString.call(t)==="[object Object]"}return!1},IUe=(...t)=>t.reduce((e,r)=>{if(Array.isArray(r))throw new TypeError("Arguments provided to ts-deepmerge must be objects, not arrays.");return Object.keys(r).forEach(i=>{["__proto__","constructor","prototype"].includes(i)||(Array.isArray(e[i])&&Array.isArray(r[i])?e[i]=yc.mergeDeepObject.options.mergeArrays?Array.from(new Set(e[i].concat(r[i]))):r[i]:lie(e[i])&&lie(r[i])?e[i]=(0,yc.mergeDeepObject)(e[i],r[i]):e[i]=r[i])}),e},{});yc.mergeDeepObject=IUe;var fie={mergeArrays:!0};yc.mergeDeepObject.options=fie;yc.mergeDeepObject.withOptions=(t,...e)=>{yc.mergeDeepObject.options=Object.assign({mergeArrays:!0},t);let r=(0,yc.mergeDeepObject)(...e);return yc.mergeDeepObject.options=fie,r}});var hie=x(by=>{"use strict";var NUe=by&&by.__rest||function(t,e){var r={};for(var i in t)Object.prototype.hasOwnProperty.call(t,i)&&e.indexOf(i)<0&&(r[i]=t[i]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var n=0,i=Object.getOwnPropertySymbols(t);ne.reduce(([r,i],n)=>{let a=i,s=n,o=a[s],c=NUe(a,[typeof s=="symbol"?s:s+""]);return typeof o<"u"?[Object.assign(Object.assign({},r),{[n]:o}),c]:[r,i]},[{},t]);by.objectPartition=kUe});var mie=x(Z7=>{"use strict";Object.defineProperty(Z7,"__esModule",{value:!0});Z7.parseHostname=void 0;var BUe=/^([a-z0-9.+-]+:\/\/)?([a-z0-9.-]+)([:/][^:/]+)*\/?$/i,FUe=t=>{var e,r;return(r=(e=t.match(BUe))===null||e===void 0?void 0:e[2])===null||r===void 0?void 0:r.toLowerCase()};Z7.parseHostname=FUe});var gie=x(_y=>{"use strict";var DUe=_y&&_y.__awaiter||function(t,e,r,i){function n(a){return a instanceof r?a:new r(function(s){s(a)})}return new(r||(r=Promise))(function(a,s){function o(f){try{u(i.next(f))}catch(d){s(d)}}function c(f){try{u(i.throw(f))}catch(d){s(d)}}function u(f){f.done?a(f.value):n(f.value).then(o,c)}u((i=i.apply(t,e||[])).next())})};Object.defineProperty(_y,"__esModule",{value:!0});_y.promiseAllSequence=void 0;var qUe=t=>DUe(void 0,void 0,void 0,function*(){let e=[];return yield t.reduce((r,i)=>r.then(i).then(n=>(e.push(n),n)),Promise.resolve()),e});_y.promiseAllSequence=qUe});var yie=x(vm=>{"use strict";Object.defineProperty(vm,"__esModule",{value:!0});vm.redactUserPathFromString=vm.startOfUserPathRegex=void 0;vm.startOfUserPathRegex=/([/\\][Uu]sers[/\\]{1,4})([^"^'^[^\]^/^\\]*)/g;var LUe=t=>t.replace(vm.startOfUserPathRegex,"$1[*]");vm.redactUserPathFromString=LUe});var vie=x($7=>{"use strict";Object.defineProperty($7,"__esModule",{value:!0});$7.resolveStaticPath=void 0;var UUe=(t,e=process.env.ASSET_PREFIX)=>`${e||""}/static/${t.replace(/^\/+/,"")}`;$7.resolveStaticPath=UUe});var Sie=x(wy=>{"use strict";var GC=wy&&wy.__awaiter||function(t,e,r,i){function n(a){return a instanceof r?a:new r(function(s){s(a)})}return new(r||(r=Promise))(function(a,s){function o(f){try{u(i.next(f))}catch(d){s(d)}}function c(f){try{u(i.throw(f))}catch(d){s(d)}}function u(f){f.done?a(f.value):n(f.value).then(o,c)}u((i=i.apply(t,e||[])).next())})};Object.defineProperty(wy,"__esModule",{value:!0});wy.scheduleAction=void 0;var bie=t=>Array.isArray(t),_ie=()=>new Error("Aborted by signal"),jUe=()=>new Error("Aborted by deadline"),VUe=()=>new Error("Aborted by timeout"),wie=(t,e)=>new Promise((r,i)=>{if(e.aborted)return i();if(t===void 0)return r();let n=setTimeout(r,t),a=()=>{clearTimeout(n),e.removeEventListener("abort",a),i()};e.addEventListener("abort",a)}),xie=(t,e,r)=>new Promise((i,n)=>{if(r.aborted)return n();let a=t!==void 0?setTimeout(()=>n(e()),t):void 0,s=()=>{clearTimeout(a),r.removeEventListener("abort",s),n()};r.addEventListener("abort",s)}),HUe=(t,e)=>new Promise((r,i)=>{if(e.aborted)return i();if(t?.aborted)return i(_ie());let n=()=>i(_ie());t?.addEventListener("abort",n);let a=()=>{t?.removeEventListener("abort",n),e.removeEventListener("abort",a),i()};e.addEventListener("abort",a)}),zUe=(t,e)=>GC(void 0,void 0,void 0,function*(){let r=new AbortController,i=()=>r.abort();e.aborted&&i(),e.addEventListener("abort",i);try{return yield new Promise(n=>n(t(r.signal)))}finally{e.removeEventListener("abort",i)}}),GUe=(t,e,r,i)=>GC(void 0,void 0,void 0,function*(){for(let n=0;na.abort();i.addEventListener("abort",s);try{return yield e(n,a.signal)}catch{s(),yield r(n)}finally{i.removeEventListener("abort",s)}}return i.aborted?Promise.reject():e(t-1,i)}),JUe=(t,e)=>GC(void 0,void 0,void 0,function*(){let{signal:r,delay:i,attempts:n,timeout:a,deadline:s,gap:o}=e,c=s&&s-Date.now(),u=bie(n)?n.length:n??(s?1/0:1),f=new AbortController,d=f.signal,p=bie(n)?b=>n[b]:()=>({timeout:a,gap:o});try{return yield Promise.race([HUe(r,d),xie(c,jUe,d),wie(i,d).then(()=>GUe(u,(b,T)=>Promise.race([xie(p(b).timeout,VUe,d),zUe(t,T)]),b=>{var T;return wie((T=p(b).gap)!==null&&T!==void 0?T:0,d)},d))])}finally{f.abort()}});wy.scheduleAction=JUe});var Eie=x(Q7=>{"use strict";Object.defineProperty(Q7,"__esModule",{value:!0});Q7.throwError=void 0;var XUe=t=>{throw new Error(t)};Q7.throwError=XUe});var Tie=x(Y7=>{"use strict";Object.defineProperty(Y7,"__esModule",{value:!0});Y7.truncateMiddle=void 0;var KUe=(t,e,r)=>{if(t.length<=e+r)return t;let i=t.substring(0,e),n=t.substring(t.length-r,t.length);return`${i}\u2026${n}`};Y7.truncateMiddle=KUe});var Aie=x(ew=>{"use strict";Object.defineProperty(ew,"__esModule",{value:!0});ew.topologicalSort=void 0;var WUe=zC(),ZUe=(t,e,r)=>{let i=[],n=s=>(0,WUe.arrayPartition)(s,o=>!s.some(c=>e(c,o))),a=t;for(;a.length;){let[s,o]=n(a);if(!s.length)throw new Error("Cycle detected");i.push(...r?s.sort(r):s),a=o}return i};ew.topologicalSort=ZUe});var Mie=x(Zs=>{"use strict";Object.defineProperty(Zs,"__esModule",{value:!0});Zs.normalizeVersion=Zs.isNewerOrEqual=Zs.isEqual=Zs.isNewer=Zs.isVersionArray=void 0;var Pie=t=>({major:t[0],minor:t[1],patch:t[2]}),Oie=t=>{let e=t.split(".");if(e.length!==3)throw new Error("version string is in wrong format");return e},Rie=t=>`${t[0]}.${t[1]}.${t[2]}`,$Ue=t=>t.length===3;Zs.isVersionArray=$Ue;var QUe=(t,e)=>{let r=Pie(typeof t=="string"?Oie(t):t),i=Pie(typeof e=="string"?Oie(e):e);return r.major-i.major!==0?r.major>i.major:r.minor-i.minor!==0?r.minor>i.minor:r.patch-i.patch!==0?r.patch>i.patch:!1};Zs.isNewer=QUe;var YUe=(t,e)=>{let r=typeof t=="string"?t:Rie(t),i=typeof e=="string"?e:Rie(e);return r===i};Zs.isEqual=YUe;var eje=(t,e)=>(0,Zs.isNewer)(t,e)||(0,Zs.isEqual)(t,e);Zs.isNewerOrEqual=eje;var tje=t=>t.replace(/\b0+(\d)/g,"$1");Zs.normalizeVersion=tje});var Cie=x(W0=>{"use strict";Object.defineProperty(W0,"__esModule",{value:!0});W0.inDoubleQuotes=W0.inSingleQuotes=W0.inHTML=void 0;var rje=/t.replace(rje,"<");W0.inHTML=aje;var sje=t=>t.replace(ije,"'");W0.inSingleQuotes=sje;var oje=t=>t.replace(nje,""");W0.inDoubleQuotes=oje});var wn=x(Wt=>{"use strict";var Iie=Wt&&Wt.__createBinding||(Object.create?function(t,e,r,i){i===void 0&&(i=r);var n=Object.getOwnPropertyDescriptor(e,r);(!n||("get"in n?!e.__esModule:n.writable||n.configurable))&&(n={enumerable:!0,get:function(){return e[r]}}),Object.defineProperty(t,i,n)}:function(t,e,r,i){i===void 0&&(i=r),t[i]=e[r]}),uje=Wt&&Wt.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),gi=Wt&&Wt.__exportStar||function(t,e){for(var r in t)r!=="default"&&!Object.prototype.hasOwnProperty.call(e,r)&&Iie(e,t,r)},tw=Wt&&Wt.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var r in t)r!=="default"&&Object.prototype.hasOwnProperty.call(t,r)&&Iie(e,t,r);return uje(e,t),e};Object.defineProperty(Wt,"__esModule",{value:!0});Wt.xssFilters=Wt.versionUtils=Wt.enumUtils=Wt.bufferUtils=void 0;gi(Jre(),Wt);gi(Xre(),Wt);gi(zC(),Wt);gi(Wre(),Wt);Wt.bufferUtils=tw(Zre());gi(Qre(),Wt);gi(Yre(),Wt);gi(eie(),Wt);gi(Cb(),Wt);gi(tie(),Wt);Wt.enumUtils=tw(rie());gi(iie(),Wt);gi(nie(),Wt);gi(aie(),Wt);gi(sie(),Wt);gi(oie(),Wt);gi(uie(),Wt);gi(cie(),Wt);gi(die(),Wt);gi(pie(),Wt);gi(hie(),Wt);gi(mie(),Wt);gi(gie(),Wt);gi(yie(),Wt);gi(vie(),Wt);gi(Sie(),Wt);gi(Eie(),Wt);gi(Tie(),Wt);gi(Aie(),Wt);Wt.versionUtils=tw(Mie());Wt.xssFilters=tw(Cie())});var Fie=x(Z0=>{"use strict";var cje=Z0&&Z0.__awaiter||function(t,e,r,i){function n(a){return a instanceof r?a:new r(function(s){s(a)})}return new(r||(r=Promise))(function(a,s){function o(f){try{u(i.next(f))}catch(d){s(d)}}function c(f){try{u(i.throw(f))}catch(d){s(d)}}function u(f){f.done?a(f.value):n(f.value).then(o,c)}u((i=i.apply(t,e||[])).next())})};Object.defineProperty(Z0,"__esModule",{value:!0});Z0.request=Z0.setFetch=void 0;var kie=typeof window>"u"?()=>Promise.reject():window.fetch,Bie=!1;function dje(t,e){kie=t,Bie=!!e}Z0.setFetch=dje;function lje(t){return typeof t=="string"?t===""?"text/plain":"application/octet-stream":"application/json"}function fje(t){return typeof t=="string"?t:JSON.stringify(t)}function Nie(t){try{return JSON.parse(t)}catch{return t}}function pje(t){return cje(this,void 0,void 0,function*(){let e={method:t.method,body:fje(t.body),credentials:"same-origin",headers:{}};(t.skipContentTypeHeader==null||t.skipContentTypeHeader===!1)&&(e.headers=Object.assign(Object.assign({},e.headers),{"Content-Type":lje(t.body==null?"":t.body)})),Bie&&(e.headers=Object.assign(Object.assign({},e.headers),{Origin:"https://node.trezor.io"}));let r=yield kie(t.url,e),i=yield r.text();if(r.ok)return Nie(i);let n=Nie(i);throw typeof n=="object"&&n!=null&&n.error!=null?new Error(n.error):new Error(i)})}Z0.request=pje});var qie=x(Tu=>{"use strict";Object.defineProperty(Tu,"__esModule",{value:!0});Tu.call=Tu.acquire=Tu.devices=Tu.version=Tu.info=void 0;var Au="Wrong result type.";function hje(t){if(typeof t!="object"||t==null)throw new Error("Wrong result type.");let{version:e}=t;if(typeof e!="string")throw new Error(Au);let r=!!t.configured;return{version:e,configured:r}}Tu.info=hje;function mje(t){if(typeof t!="string")throw new Error(Au);return t.trim()}Tu.version=mje;function Die(t){if(t==null)return null;if(typeof t!="string")throw new Error(Au);return t}function gje(t){if(typeof t!="object")throw new Error(Au);if(!(t instanceof Array))throw new Error(Au);return t.map(e=>{if(typeof e!="object"||e==null)throw new Error(Au);let{path:r}=e;if(typeof r!="string")throw new Error(Au);return{path:r.toString(),session:Die(e.session),debugSession:Die(e.debugSession),product:e.product,vendor:e.vendor,debug:!!e.debug}})}Tu.devices=gje;function yje(t){if(typeof t!="object"||t==null)throw new Error(Au);let{session:e}=t;if(typeof e!="string"&&typeof e!="number")throw new Error(Au);return e.toString()}Tu.acquire=yje;function vje(t){if(typeof t!="object"||t==null)throw new Error(Au);let{type:e}=t;if(typeof e!="string")throw new Error(Au);let{message:r}=t;if(typeof r!="object"||r==null)throw new Error(Au);return{type:e,message:r}}Tu.call=vje});var Uie=x((Lie,Ib)=>{(function(t,e){typeof define=="function"&&define.amd?define([],e):typeof require=="function"&&typeof Ib=="object"&&Ib&&Ib.exports?Ib.exports=e():(t.dcodeIO=t.dcodeIO||{}).Long=e()})(Lie,function(){"use strict";function t(ee,R,g){this.low=ee|0,this.high=R|0,this.unsigned=!!g}t.prototype.__isLong__,Object.defineProperty(t.prototype,"__isLong__",{value:!0,enumerable:!1,configurable:!1});function e(ee){return(ee&&ee.__isLong__)===!0}t.isLong=e;var r={},i={};function n(ee,R){var g,v,w;return R?(ee>>>=0,(w=0<=ee&&ee<256)&&(v=i[ee],v)?v:(g=s(ee,(ee|0)<0?-1:0,!0),w&&(i[ee]=g),g)):(ee|=0,(w=-128<=ee&&ee<128)&&(v=r[ee],v)?v:(g=s(ee,ee<0?-1:0,!1),w&&(r[ee]=g),g))}t.fromInt=n;function a(ee,R){if(isNaN(ee)||!isFinite(ee))return R?U:L;if(R){if(ee<0)return U;if(ee>=b)return ce}else{if(ee<=-T)return me;if(ee+1>=T)return be}return ee<0?a(-ee,R).neg():s(ee%p|0,ee/p|0,R)}t.fromNumber=a;function s(ee,R,g){return new t(ee,R,g)}t.fromBits=s;var o=Math.pow;function c(ee,R,g){if(ee.length===0)throw Error("empty string");if(ee==="NaN"||ee==="Infinity"||ee==="+Infinity"||ee==="-Infinity")return L;if(typeof R=="number"?(g=R,R=!1):R=!!R,g=g||10,g<2||360)throw Error("interior hyphen");if(v===0)return c(ee.substring(1),R,g).neg();for(var w=a(o(g,8)),y=L,_=0;_>>0:this.low},ne.toNumber=function(){return this.unsigned?(this.high>>>0)*p+(this.low>>>0):this.high*p+(this.low>>>0)},ne.toString=function(R){if(R=R||10,R<2||36>>0,h=E.toString(R);if(_=M,_.isZero())return h+P;for(;h.length<6;)h="0"+h;P=""+h+P}},ne.getHighBits=function(){return this.high},ne.getHighBitsUnsigned=function(){return this.high>>>0},ne.getLowBits=function(){return this.low},ne.getLowBitsUnsigned=function(){return this.low>>>0},ne.getNumBitsAbs=function(){if(this.isNegative())return this.eq(me)?64:this.neg().getNumBitsAbs();for(var R=this.high!=0?this.high:this.low,g=31;g>0&&(R&1<=0},ne.isOdd=function(){return(this.low&1)===1},ne.isEven=function(){return(this.low&1)===0},ne.equals=function(R){return e(R)||(R=u(R)),this.unsigned!==R.unsigned&&this.high>>>31===1&&R.high>>>31===1?!1:this.high===R.high&&this.low===R.low},ne.eq=ne.equals,ne.notEquals=function(R){return!this.eq(R)},ne.neq=ne.notEquals,ne.lessThan=function(R){return this.comp(R)<0},ne.lt=ne.lessThan,ne.lessThanOrEqual=function(R){return this.comp(R)<=0},ne.lte=ne.lessThanOrEqual,ne.greaterThan=function(R){return this.comp(R)>0},ne.gt=ne.greaterThan,ne.greaterThanOrEqual=function(R){return this.comp(R)>=0},ne.gte=ne.greaterThanOrEqual,ne.compare=function(R){if(e(R)||(R=u(R)),this.eq(R))return 0;var g=this.isNegative(),v=R.isNegative();return g&&!v?-1:!g&&v?1:this.unsigned?R.high>>>0>this.high>>>0||R.high===this.high&&R.low>>>0>this.low>>>0?-1:1:this.sub(R).isNegative()?-1:1},ne.comp=ne.compare,ne.negate=function(){return!this.unsigned&&this.eq(me)?me:this.not().add(re)},ne.neg=ne.negate,ne.add=function(R){e(R)||(R=u(R));var g=this.high>>>16,v=this.high&65535,w=this.low>>>16,y=this.low&65535,_=R.high>>>16,P=R.high&65535,M=R.low>>>16,E=R.low&65535,h=0,A=0,F=0,O=0;return O+=y+E,F+=O>>>16,O&=65535,F+=w+M,A+=F>>>16,F&=65535,A+=v+P,h+=A>>>16,A&=65535,h+=g+_,h&=65535,s(F<<16|O,h<<16|A,this.unsigned)},ne.subtract=function(R){return e(R)||(R=u(R)),this.add(R.neg())},ne.sub=ne.subtract,ne.multiply=function(R){if(this.isZero()||(e(R)||(R=u(R)),R.isZero()))return L;if(this.eq(me))return R.isOdd()?me:L;if(R.eq(me))return this.isOdd()?me:L;if(this.isNegative())return R.isNegative()?this.neg().mul(R.neg()):this.neg().mul(R).neg();if(R.isNegative())return this.mul(R.neg()).neg();if(this.lt(I)&&R.lt(I))return a(this.toNumber()*R.toNumber(),this.unsigned);var g=this.high>>>16,v=this.high&65535,w=this.low>>>16,y=this.low&65535,_=R.high>>>16,P=R.high&65535,M=R.low>>>16,E=R.low&65535,h=0,A=0,F=0,O=0;return O+=y*E,F+=O>>>16,O&=65535,F+=w*E,A+=F>>>16,F&=65535,F+=y*M,A+=F>>>16,F&=65535,A+=v*E,h+=A>>>16,A&=65535,A+=w*M,h+=A>>>16,A&=65535,A+=y*P,h+=A>>>16,A&=65535,h+=g*E+v*M+w*P+y*_,h&=65535,s(F<<16|O,h<<16|A,this.unsigned)},ne.mul=ne.multiply,ne.divide=function(R){if(e(R)||(R=u(R)),R.isZero())throw Error("division by zero");if(this.isZero())return this.unsigned?U:L;var g,v,w;if(this.unsigned){if(R.unsigned||(R=R.toUnsigned()),R.gt(this))return U;if(R.gt(this.shru(1)))return oe;w=U}else{if(this.eq(me)){if(R.eq(re)||R.eq(ge))return me;if(R.eq(me))return re;var y=this.shr(1);return g=y.div(R).shl(1),g.eq(L)?R.isNegative()?re:ge:(v=this.sub(R.mul(g)),w=g.add(v.div(R)),w)}else if(R.eq(me))return this.unsigned?U:L;if(this.isNegative())return R.isNegative()?this.neg().div(R.neg()):this.neg().div(R).neg();if(R.isNegative())return this.div(R.neg()).neg();w=L}for(v=this;v.gte(R);){g=Math.max(1,Math.floor(v.toNumber()/R.toNumber()));for(var _=Math.ceil(Math.log(g)/Math.LN2),P=_<=48?1:o(2,_-48),M=a(g),E=M.mul(R);E.isNegative()||E.gt(v);)g-=P,M=a(g,this.unsigned),E=M.mul(R);M.isZero()&&(M=re),w=w.add(M),v=v.sub(E)}return w},ne.div=ne.divide,ne.modulo=function(R){return e(R)||(R=u(R)),this.sub(this.div(R).mul(R))},ne.mod=ne.modulo,ne.not=function(){return s(~this.low,~this.high,this.unsigned)},ne.and=function(R){return e(R)||(R=u(R)),s(this.low&R.low,this.high&R.high,this.unsigned)},ne.or=function(R){return e(R)||(R=u(R)),s(this.low|R.low,this.high|R.high,this.unsigned)},ne.xor=function(R){return e(R)||(R=u(R)),s(this.low^R.low,this.high^R.high,this.unsigned)},ne.shiftLeft=function(R){return e(R)&&(R=R.toInt()),(R&=63)===0?this:R<32?s(this.low<>>32-R,this.unsigned):s(0,this.low<>>R|this.high<<32-R,this.high>>R,this.unsigned):s(this.high>>R-32,this.high>=0?0:-1,this.unsigned)},ne.shr=ne.shiftRight,ne.shiftRightUnsigned=function(R){if(e(R)&&(R=R.toInt()),R&=63,R===0)return this;var g=this.high;if(R<32){var v=this.low;return s(v>>>R|g<<32-R,g>>>R,this.unsigned)}else return R===32?s(g,0,this.unsigned):s(g>>>R-32,0,this.unsigned)},ne.shru=ne.shiftRightUnsigned,ne.toSigned=function(){return this.unsigned?s(this.low,this.high,!1):this},ne.toUnsigned=function(){return this.unsigned?this:s(this.low,this.high,!0)},ne.toBytes=function(ee){return ee?this.toBytesLE():this.toBytesBE()},ne.toBytesLE=function(){var ee=this.high,R=this.low;return[R&255,R>>>8&255,R>>>16&255,R>>>24&255,ee&255,ee>>>8&255,ee>>>16&255,ee>>>24&255]},ne.toBytesBE=function(){var ee=this.high,R=this.low;return[ee>>>24&255,ee>>>16&255,ee>>>8&255,ee&255,R>>>24&255,R>>>16&255,R>>>8&255,R&255]},t})});var xy=x((gMt,jie)=>{jie.exports=function(){"use strict";var t=require("buffer"),e=t.Buffer,r=Uie(),i=null;try{i=require("memcpy")}catch{}var n=function(d,p,b){if(typeof d>"u"&&(d=n.DEFAULT_CAPACITY),typeof p>"u"&&(p=n.DEFAULT_ENDIAN),typeof b>"u"&&(b=n.DEFAULT_NOASSERT),!b){if(d=d|0,d<0)throw RangeError("Illegal capacity");p=!!p,b=!!b}this.buffer=d===0?s:new e(d),this.offset=0,this.markedOffset=-1,this.limit=d,this.littleEndian=p,this.noAssert=b};n.VERSION="5.0.1",n.LITTLE_ENDIAN=!0,n.BIG_ENDIAN=!1,n.DEFAULT_CAPACITY=16,n.DEFAULT_ENDIAN=n.BIG_ENDIAN,n.DEFAULT_NOASSERT=!1,n.Long=r;var a=n.prototype;a.__isByteBuffer__,Object.defineProperty(a,"__isByteBuffer__",{value:!0,enumerable:!1,configurable:!1});var s=new e(0),o=String.fromCharCode;function c(d){var p=0;return function(){return p1024&&(p.push(o.apply(String,d)),d.length=0),Array.prototype.push.apply(d,arguments)}}n.accessor=function(){return e},n.allocate=function(d,p,b){return new n(d,p,b)},n.concat=function(d,p,b,T){(typeof p=="boolean"||typeof p!="string")&&(T=b,b=p,p=void 0);for(var I=0,L=0,U=d.length,re;L0&&(I+=re);if(I===0)return new n(0,b,T);var oe=new n(I,b,T),ge;for(L=0;L"u"&&(p="utf8"),p){case"base64":return n.fromBase64(d,b);case"hex":return n.fromHex(d,b);case"binary":return n.fromBinary(d,b);case"utf8":return n.fromUTF8(d,b);case"debug":return n.fromDebug(d,b);default:throw Error("Unsupported encoding: "+p)}if(d===null||typeof d!="object")throw TypeError("Illegal buffer");var I;if(n.isByteBuffer(d))return I=a.clone.call(d),I.markedOffset=-1,I;var L=0,U=0,re;if(d instanceof Uint8Array){if(re=new e(d.length),i)i(re,0,d.buffer,d.byteOffset,d.byteOffset+d.length);else for(L=0,U=d.length;L0&&(I.buffer=d,I.limit=d.length),I},a.writeBitSet=function(d,p){var b=typeof p>"u";if(b&&(p=this.offset),!this.noAssert){if(!(d instanceof Array))throw TypeError("Illegal BitSet: Not an array");if(typeof p!="number"||p%1!==0)throw TypeError("Illegal offset: "+p+" (not an integer)");if(p>>>=0,p<0||p+0>this.buffer.length)throw RangeError("Illegal offset: 0 <= "+p+" (+"+0+") <= "+this.buffer.length)}var T=p,I=d.length,L=I>>3,U=0,re;for(p+=this.writeVarint32(I,p);L--;)re=!!d[U++]&1|(!!d[U++]&1)<<1|(!!d[U++]&1)<<2|(!!d[U++]&1)<<3|(!!d[U++]&1)<<4|(!!d[U++]&1)<<5|(!!d[U++]&1)<<6|(!!d[U++]&1)<<7,this.writeByte(re,p++);if(U"u";p&&(d=this.offset);var b=this.readVarint32(d),T=b.value,I=T>>3,L=0,U=[],re;for(d+=b.length;I--;)re=this.readByte(d++),U[L++]=!!(re&1),U[L++]=!!(re&2),U[L++]=!!(re&4),U[L++]=!!(re&8),U[L++]=!!(re&16),U[L++]=!!(re&32),U[L++]=!!(re&64),U[L++]=!!(re&128);if(L>oe++&1)}return p&&(this.offset=d),U},a.readBytes=function(d,p){var b=typeof p>"u";if(b&&(p=this.offset),!this.noAssert){if(typeof p!="number"||p%1!==0)throw TypeError("Illegal offset: "+p+" (not an integer)");if(p>>>=0,p<0||p+d>this.buffer.length)throw RangeError("Illegal offset: 0 <= "+p+" (+"+d+") <= "+this.buffer.length)}var T=this.slice(p,p+d);return b&&(this.offset+=d),T},a.writeBytes=a.append,a.writeInt8=function(d,p){var b=typeof p>"u";if(b&&(p=this.offset),!this.noAssert){if(typeof d!="number"||d%1!==0)throw TypeError("Illegal value: "+d+" (not an integer)");if(d|=0,typeof p!="number"||p%1!==0)throw TypeError("Illegal offset: "+p+" (not an integer)");if(p>>>=0,p<0||p+0>this.buffer.length)throw RangeError("Illegal offset: 0 <= "+p+" (+"+0+") <= "+this.buffer.length)}p+=1;var T=this.buffer.length;return p>T&&this.resize((T*=2)>p?T:p),p-=1,this.buffer[p]=d,b&&(this.offset+=1),this},a.writeByte=a.writeInt8,a.readInt8=function(d){var p=typeof d>"u";if(p&&(d=this.offset),!this.noAssert){if(typeof d!="number"||d%1!==0)throw TypeError("Illegal offset: "+d+" (not an integer)");if(d>>>=0,d<0||d+1>this.buffer.length)throw RangeError("Illegal offset: 0 <= "+d+" (+"+1+") <= "+this.buffer.length)}var b=this.buffer[d];return(b&128)===128&&(b=-(255-b+1)),p&&(this.offset+=1),b},a.readByte=a.readInt8,a.writeUint8=function(d,p){var b=typeof p>"u";if(b&&(p=this.offset),!this.noAssert){if(typeof d!="number"||d%1!==0)throw TypeError("Illegal value: "+d+" (not an integer)");if(d>>>=0,typeof p!="number"||p%1!==0)throw TypeError("Illegal offset: "+p+" (not an integer)");if(p>>>=0,p<0||p+0>this.buffer.length)throw RangeError("Illegal offset: 0 <= "+p+" (+"+0+") <= "+this.buffer.length)}p+=1;var T=this.buffer.length;return p>T&&this.resize((T*=2)>p?T:p),p-=1,this.buffer[p]=d,b&&(this.offset+=1),this},a.writeUInt8=a.writeUint8,a.readUint8=function(d){var p=typeof d>"u";if(p&&(d=this.offset),!this.noAssert){if(typeof d!="number"||d%1!==0)throw TypeError("Illegal offset: "+d+" (not an integer)");if(d>>>=0,d<0||d+1>this.buffer.length)throw RangeError("Illegal offset: 0 <= "+d+" (+"+1+") <= "+this.buffer.length)}var b=this.buffer[d];return p&&(this.offset+=1),b},a.readUInt8=a.readUint8,a.writeInt16=function(d,p){var b=typeof p>"u";if(b&&(p=this.offset),!this.noAssert){if(typeof d!="number"||d%1!==0)throw TypeError("Illegal value: "+d+" (not an integer)");if(d|=0,typeof p!="number"||p%1!==0)throw TypeError("Illegal offset: "+p+" (not an integer)");if(p>>>=0,p<0||p+0>this.buffer.length)throw RangeError("Illegal offset: 0 <= "+p+" (+"+0+") <= "+this.buffer.length)}p+=2;var T=this.buffer.length;return p>T&&this.resize((T*=2)>p?T:p),p-=2,this.littleEndian?(this.buffer[p+1]=(d&65280)>>>8,this.buffer[p]=d&255):(this.buffer[p]=(d&65280)>>>8,this.buffer[p+1]=d&255),b&&(this.offset+=2),this},a.writeShort=a.writeInt16,a.readInt16=function(d){var p=typeof d>"u";if(p&&(d=this.offset),!this.noAssert){if(typeof d!="number"||d%1!==0)throw TypeError("Illegal offset: "+d+" (not an integer)");if(d>>>=0,d<0||d+2>this.buffer.length)throw RangeError("Illegal offset: 0 <= "+d+" (+"+2+") <= "+this.buffer.length)}var b=0;return this.littleEndian?(b=this.buffer[d],b|=this.buffer[d+1]<<8):(b=this.buffer[d]<<8,b|=this.buffer[d+1]),(b&32768)===32768&&(b=-(65535-b+1)),p&&(this.offset+=2),b},a.readShort=a.readInt16,a.writeUint16=function(d,p){var b=typeof p>"u";if(b&&(p=this.offset),!this.noAssert){if(typeof d!="number"||d%1!==0)throw TypeError("Illegal value: "+d+" (not an integer)");if(d>>>=0,typeof p!="number"||p%1!==0)throw TypeError("Illegal offset: "+p+" (not an integer)");if(p>>>=0,p<0||p+0>this.buffer.length)throw RangeError("Illegal offset: 0 <= "+p+" (+"+0+") <= "+this.buffer.length)}p+=2;var T=this.buffer.length;return p>T&&this.resize((T*=2)>p?T:p),p-=2,this.littleEndian?(this.buffer[p+1]=(d&65280)>>>8,this.buffer[p]=d&255):(this.buffer[p]=(d&65280)>>>8,this.buffer[p+1]=d&255),b&&(this.offset+=2),this},a.writeUInt16=a.writeUint16,a.readUint16=function(d){var p=typeof d>"u";if(p&&(d=this.offset),!this.noAssert){if(typeof d!="number"||d%1!==0)throw TypeError("Illegal offset: "+d+" (not an integer)");if(d>>>=0,d<0||d+2>this.buffer.length)throw RangeError("Illegal offset: 0 <= "+d+" (+"+2+") <= "+this.buffer.length)}var b=0;return this.littleEndian?(b=this.buffer[d],b|=this.buffer[d+1]<<8):(b=this.buffer[d]<<8,b|=this.buffer[d+1]),p&&(this.offset+=2),b},a.readUInt16=a.readUint16,a.writeInt32=function(d,p){var b=typeof p>"u";if(b&&(p=this.offset),!this.noAssert){if(typeof d!="number"||d%1!==0)throw TypeError("Illegal value: "+d+" (not an integer)");if(d|=0,typeof p!="number"||p%1!==0)throw TypeError("Illegal offset: "+p+" (not an integer)");if(p>>>=0,p<0||p+0>this.buffer.length)throw RangeError("Illegal offset: 0 <= "+p+" (+"+0+") <= "+this.buffer.length)}p+=4;var T=this.buffer.length;return p>T&&this.resize((T*=2)>p?T:p),p-=4,this.littleEndian?(this.buffer[p+3]=d>>>24&255,this.buffer[p+2]=d>>>16&255,this.buffer[p+1]=d>>>8&255,this.buffer[p]=d&255):(this.buffer[p]=d>>>24&255,this.buffer[p+1]=d>>>16&255,this.buffer[p+2]=d>>>8&255,this.buffer[p+3]=d&255),b&&(this.offset+=4),this},a.writeInt=a.writeInt32,a.readInt32=function(d){var p=typeof d>"u";if(p&&(d=this.offset),!this.noAssert){if(typeof d!="number"||d%1!==0)throw TypeError("Illegal offset: "+d+" (not an integer)");if(d>>>=0,d<0||d+4>this.buffer.length)throw RangeError("Illegal offset: 0 <= "+d+" (+"+4+") <= "+this.buffer.length)}var b=0;return this.littleEndian?(b=this.buffer[d+2]<<16,b|=this.buffer[d+1]<<8,b|=this.buffer[d],b+=this.buffer[d+3]<<24>>>0):(b=this.buffer[d+1]<<16,b|=this.buffer[d+2]<<8,b|=this.buffer[d+3],b+=this.buffer[d]<<24>>>0),b|=0,p&&(this.offset+=4),b},a.readInt=a.readInt32,a.writeUint32=function(d,p){var b=typeof p>"u";if(b&&(p=this.offset),!this.noAssert){if(typeof d!="number"||d%1!==0)throw TypeError("Illegal value: "+d+" (not an integer)");if(d>>>=0,typeof p!="number"||p%1!==0)throw TypeError("Illegal offset: "+p+" (not an integer)");if(p>>>=0,p<0||p+0>this.buffer.length)throw RangeError("Illegal offset: 0 <= "+p+" (+"+0+") <= "+this.buffer.length)}p+=4;var T=this.buffer.length;return p>T&&this.resize((T*=2)>p?T:p),p-=4,this.littleEndian?(this.buffer[p+3]=d>>>24&255,this.buffer[p+2]=d>>>16&255,this.buffer[p+1]=d>>>8&255,this.buffer[p]=d&255):(this.buffer[p]=d>>>24&255,this.buffer[p+1]=d>>>16&255,this.buffer[p+2]=d>>>8&255,this.buffer[p+3]=d&255),b&&(this.offset+=4),this},a.writeUInt32=a.writeUint32,a.readUint32=function(d){var p=typeof d>"u";if(p&&(d=this.offset),!this.noAssert){if(typeof d!="number"||d%1!==0)throw TypeError("Illegal offset: "+d+" (not an integer)");if(d>>>=0,d<0||d+4>this.buffer.length)throw RangeError("Illegal offset: 0 <= "+d+" (+"+4+") <= "+this.buffer.length)}var b=0;return this.littleEndian?(b=this.buffer[d+2]<<16,b|=this.buffer[d+1]<<8,b|=this.buffer[d],b+=this.buffer[d+3]<<24>>>0):(b=this.buffer[d+1]<<16,b|=this.buffer[d+2]<<8,b|=this.buffer[d+3],b+=this.buffer[d]<<24>>>0),p&&(this.offset+=4),b},a.readUInt32=a.readUint32,r&&(a.writeInt64=function(d,p){var b=typeof p>"u";if(b&&(p=this.offset),!this.noAssert){if(typeof d=="number")d=r.fromNumber(d);else if(typeof d=="string")d=r.fromString(d);else if(!(d&&d instanceof r))throw TypeError("Illegal value: "+d+" (not an integer or Long)");if(typeof p!="number"||p%1!==0)throw TypeError("Illegal offset: "+p+" (not an integer)");if(p>>>=0,p<0||p+0>this.buffer.length)throw RangeError("Illegal offset: 0 <= "+p+" (+"+0+") <= "+this.buffer.length)}typeof d=="number"?d=r.fromNumber(d):typeof d=="string"&&(d=r.fromString(d)),p+=8;var T=this.buffer.length;p>T&&this.resize((T*=2)>p?T:p),p-=8;var I=d.low,L=d.high;return this.littleEndian?(this.buffer[p+3]=I>>>24&255,this.buffer[p+2]=I>>>16&255,this.buffer[p+1]=I>>>8&255,this.buffer[p]=I&255,p+=4,this.buffer[p+3]=L>>>24&255,this.buffer[p+2]=L>>>16&255,this.buffer[p+1]=L>>>8&255,this.buffer[p]=L&255):(this.buffer[p]=L>>>24&255,this.buffer[p+1]=L>>>16&255,this.buffer[p+2]=L>>>8&255,this.buffer[p+3]=L&255,p+=4,this.buffer[p]=I>>>24&255,this.buffer[p+1]=I>>>16&255,this.buffer[p+2]=I>>>8&255,this.buffer[p+3]=I&255),b&&(this.offset+=8),this},a.writeLong=a.writeInt64,a.readInt64=function(d){var p=typeof d>"u";if(p&&(d=this.offset),!this.noAssert){if(typeof d!="number"||d%1!==0)throw TypeError("Illegal offset: "+d+" (not an integer)");if(d>>>=0,d<0||d+8>this.buffer.length)throw RangeError("Illegal offset: 0 <= "+d+" (+"+8+") <= "+this.buffer.length)}var b=0,T=0;this.littleEndian?(b=this.buffer[d+2]<<16,b|=this.buffer[d+1]<<8,b|=this.buffer[d],b+=this.buffer[d+3]<<24>>>0,d+=4,T=this.buffer[d+2]<<16,T|=this.buffer[d+1]<<8,T|=this.buffer[d],T+=this.buffer[d+3]<<24>>>0):(T=this.buffer[d+1]<<16,T|=this.buffer[d+2]<<8,T|=this.buffer[d+3],T+=this.buffer[d]<<24>>>0,d+=4,b=this.buffer[d+1]<<16,b|=this.buffer[d+2]<<8,b|=this.buffer[d+3],b+=this.buffer[d]<<24>>>0);var I=new r(b,T,!1);return p&&(this.offset+=8),I},a.readLong=a.readInt64,a.writeUint64=function(d,p){var b=typeof p>"u";if(b&&(p=this.offset),!this.noAssert){if(typeof d=="number")d=r.fromNumber(d);else if(typeof d=="string")d=r.fromString(d);else if(!(d&&d instanceof r))throw TypeError("Illegal value: "+d+" (not an integer or Long)");if(typeof p!="number"||p%1!==0)throw TypeError("Illegal offset: "+p+" (not an integer)");if(p>>>=0,p<0||p+0>this.buffer.length)throw RangeError("Illegal offset: 0 <= "+p+" (+"+0+") <= "+this.buffer.length)}typeof d=="number"?d=r.fromNumber(d):typeof d=="string"&&(d=r.fromString(d)),p+=8;var T=this.buffer.length;p>T&&this.resize((T*=2)>p?T:p),p-=8;var I=d.low,L=d.high;return this.littleEndian?(this.buffer[p+3]=I>>>24&255,this.buffer[p+2]=I>>>16&255,this.buffer[p+1]=I>>>8&255,this.buffer[p]=I&255,p+=4,this.buffer[p+3]=L>>>24&255,this.buffer[p+2]=L>>>16&255,this.buffer[p+1]=L>>>8&255,this.buffer[p]=L&255):(this.buffer[p]=L>>>24&255,this.buffer[p+1]=L>>>16&255,this.buffer[p+2]=L>>>8&255,this.buffer[p+3]=L&255,p+=4,this.buffer[p]=I>>>24&255,this.buffer[p+1]=I>>>16&255,this.buffer[p+2]=I>>>8&255,this.buffer[p+3]=I&255),b&&(this.offset+=8),this},a.writeUInt64=a.writeUint64,a.readUint64=function(d){var p=typeof d>"u";if(p&&(d=this.offset),!this.noAssert){if(typeof d!="number"||d%1!==0)throw TypeError("Illegal offset: "+d+" (not an integer)");if(d>>>=0,d<0||d+8>this.buffer.length)throw RangeError("Illegal offset: 0 <= "+d+" (+"+8+") <= "+this.buffer.length)}var b=0,T=0;this.littleEndian?(b=this.buffer[d+2]<<16,b|=this.buffer[d+1]<<8,b|=this.buffer[d],b+=this.buffer[d+3]<<24>>>0,d+=4,T=this.buffer[d+2]<<16,T|=this.buffer[d+1]<<8,T|=this.buffer[d],T+=this.buffer[d+3]<<24>>>0):(T=this.buffer[d+1]<<16,T|=this.buffer[d+2]<<8,T|=this.buffer[d+3],T+=this.buffer[d]<<24>>>0,d+=4,b=this.buffer[d+1]<<16,b|=this.buffer[d+2]<<8,b|=this.buffer[d+3],b+=this.buffer[d]<<24>>>0);var I=new r(b,T,!0);return p&&(this.offset+=8),I},a.readUInt64=a.readUint64),a.writeFloat32=function(d,p){var b=typeof p>"u";if(b&&(p=this.offset),!this.noAssert){if(typeof d!="number")throw TypeError("Illegal value: "+d+" (not a number)");if(typeof p!="number"||p%1!==0)throw TypeError("Illegal offset: "+p+" (not an integer)");if(p>>>=0,p<0||p+0>this.buffer.length)throw RangeError("Illegal offset: 0 <= "+p+" (+"+0+") <= "+this.buffer.length)}p+=4;var T=this.buffer.length;return p>T&&this.resize((T*=2)>p?T:p),p-=4,this.littleEndian?this.buffer.writeFloatLE(d,p,!0):this.buffer.writeFloatBE(d,p,!0),b&&(this.offset+=4),this},a.writeFloat=a.writeFloat32,a.readFloat32=function(d){var p=typeof d>"u";if(p&&(d=this.offset),!this.noAssert){if(typeof d!="number"||d%1!==0)throw TypeError("Illegal offset: "+d+" (not an integer)");if(d>>>=0,d<0||d+4>this.buffer.length)throw RangeError("Illegal offset: 0 <= "+d+" (+"+4+") <= "+this.buffer.length)}var b=this.littleEndian?this.buffer.readFloatLE(d,!0):this.buffer.readFloatBE(d,!0);return p&&(this.offset+=4),b},a.readFloat=a.readFloat32,a.writeFloat64=function(d,p){var b=typeof p>"u";if(b&&(p=this.offset),!this.noAssert){if(typeof d!="number")throw TypeError("Illegal value: "+d+" (not a number)");if(typeof p!="number"||p%1!==0)throw TypeError("Illegal offset: "+p+" (not an integer)");if(p>>>=0,p<0||p+0>this.buffer.length)throw RangeError("Illegal offset: 0 <= "+p+" (+"+0+") <= "+this.buffer.length)}p+=8;var T=this.buffer.length;return p>T&&this.resize((T*=2)>p?T:p),p-=8,this.littleEndian?this.buffer.writeDoubleLE(d,p,!0):this.buffer.writeDoubleBE(d,p,!0),b&&(this.offset+=8),this},a.writeDouble=a.writeFloat64,a.readFloat64=function(d){var p=typeof d>"u";if(p&&(d=this.offset),!this.noAssert){if(typeof d!="number"||d%1!==0)throw TypeError("Illegal offset: "+d+" (not an integer)");if(d>>>=0,d<0||d+8>this.buffer.length)throw RangeError("Illegal offset: 0 <= "+d+" (+"+8+") <= "+this.buffer.length)}var b=this.littleEndian?this.buffer.readDoubleLE(d,!0):this.buffer.readDoubleBE(d,!0);return p&&(this.offset+=8),b},a.readDouble=a.readFloat64,n.MAX_VARINT32_BYTES=5,n.calculateVarint32=function(d){return d=d>>>0,d<1<<7?1:d<1<<14?2:d<1<<21?3:d<1<<28?4:5},n.zigZagEncode32=function(d){return((d|=0)<<1^d>>31)>>>0},n.zigZagDecode32=function(d){return d>>>1^-(d&1)|0},a.writeVarint32=function(d,p){var b=typeof p>"u";if(b&&(p=this.offset),!this.noAssert){if(typeof d!="number"||d%1!==0)throw TypeError("Illegal value: "+d+" (not an integer)");if(d|=0,typeof p!="number"||p%1!==0)throw TypeError("Illegal offset: "+p+" (not an integer)");if(p>>>=0,p<0||p+0>this.buffer.length)throw RangeError("Illegal offset: 0 <= "+p+" (+"+0+") <= "+this.buffer.length)}var T=n.calculateVarint32(d),I;p+=T;var L=this.buffer.length;for(p>L&&this.resize((L*=2)>p?L:p),p-=T,d>>>=0;d>=128;)I=d&127|128,this.buffer[p++]=I,d>>>=7;return this.buffer[p++]=d,b?(this.offset=p,this):T},a.writeVarint32ZigZag=function(d,p){return this.writeVarint32(n.zigZagEncode32(d),p)},a.readVarint32=function(d){var p=typeof d>"u";if(p&&(d=this.offset),!this.noAssert){if(typeof d!="number"||d%1!==0)throw TypeError("Illegal offset: "+d+" (not an integer)");if(d>>>=0,d<0||d+1>this.buffer.length)throw RangeError("Illegal offset: 0 <= "+d+" (+"+1+") <= "+this.buffer.length)}var b=0,T=0>>>0,I;do{if(!this.noAssert&&d>this.limit){var L=Error("Truncated");throw L.truncated=!0,L}I=this.buffer[d++],b<5&&(T|=(I&127)<<7*b),++b}while((I&128)!==0);return T|=0,p?(this.offset=d,T):{value:T,length:b}},a.readVarint32ZigZag=function(d){var p=this.readVarint32(d);return typeof p=="object"?p.value=n.zigZagDecode32(p.value):p=n.zigZagDecode32(p),p},r&&(n.MAX_VARINT64_BYTES=10,n.calculateVarint64=function(d){typeof d=="number"?d=r.fromNumber(d):typeof d=="string"&&(d=r.fromString(d));var p=d.toInt()>>>0,b=d.shiftRightUnsigned(28).toInt()>>>0,T=d.shiftRightUnsigned(56).toInt()>>>0;return T==0?b==0?p<1<<14?p<1<<7?1:2:p<1<<21?3:4:b<1<<14?b<1<<7?5:6:b<1<<21?7:8:T<1<<7?9:10},n.zigZagEncode64=function(d){return typeof d=="number"?d=r.fromNumber(d,!1):typeof d=="string"?d=r.fromString(d,!1):d.unsigned!==!1&&(d=d.toSigned()),d.shiftLeft(1).xor(d.shiftRight(63)).toUnsigned()},n.zigZagDecode64=function(d){return typeof d=="number"?d=r.fromNumber(d,!1):typeof d=="string"?d=r.fromString(d,!1):d.unsigned!==!1&&(d=d.toSigned()),d.shiftRightUnsigned(1).xor(d.and(r.ONE).toSigned().negate()).toSigned()},a.writeVarint64=function(d,p){var b=typeof p>"u";if(b&&(p=this.offset),!this.noAssert){if(typeof d=="number")d=r.fromNumber(d);else if(typeof d=="string")d=r.fromString(d);else if(!(d&&d instanceof r))throw TypeError("Illegal value: "+d+" (not an integer or Long)");if(typeof p!="number"||p%1!==0)throw TypeError("Illegal offset: "+p+" (not an integer)");if(p>>>=0,p<0||p+0>this.buffer.length)throw RangeError("Illegal offset: 0 <= "+p+" (+"+0+") <= "+this.buffer.length)}typeof d=="number"?d=r.fromNumber(d,!1):typeof d=="string"?d=r.fromString(d,!1):d.unsigned!==!1&&(d=d.toSigned());var T=n.calculateVarint64(d),I=d.toInt()>>>0,L=d.shiftRightUnsigned(28).toInt()>>>0,U=d.shiftRightUnsigned(56).toInt()>>>0;p+=T;var re=this.buffer.length;switch(p>re&&this.resize((re*=2)>p?re:p),p-=T,T){case 10:this.buffer[p+9]=U>>>7&1;case 9:this.buffer[p+8]=T!==9?U|128:U&127;case 8:this.buffer[p+7]=T!==8?L>>>21|128:L>>>21&127;case 7:this.buffer[p+6]=T!==7?L>>>14|128:L>>>14&127;case 6:this.buffer[p+5]=T!==6?L>>>7|128:L>>>7&127;case 5:this.buffer[p+4]=T!==5?L|128:L&127;case 4:this.buffer[p+3]=T!==4?I>>>21|128:I>>>21&127;case 3:this.buffer[p+2]=T!==3?I>>>14|128:I>>>14&127;case 2:this.buffer[p+1]=T!==2?I>>>7|128:I>>>7&127;case 1:this.buffer[p]=T!==1?I|128:I&127}return b?(this.offset+=T,this):T},a.writeVarint64ZigZag=function(d,p){return this.writeVarint64(n.zigZagEncode64(d),p)},a.readVarint64=function(d){var p=typeof d>"u";if(p&&(d=this.offset),!this.noAssert){if(typeof d!="number"||d%1!==0)throw TypeError("Illegal offset: "+d+" (not an integer)");if(d>>>=0,d<0||d+1>this.buffer.length)throw RangeError("Illegal offset: 0 <= "+d+" (+"+1+") <= "+this.buffer.length)}var b=d,T=0,I=0,L=0,U=0;if(U=this.buffer[d++],T=U&127,U&128&&(U=this.buffer[d++],T|=(U&127)<<7,(U&128||this.noAssert&&typeof U>"u")&&(U=this.buffer[d++],T|=(U&127)<<14,(U&128||this.noAssert&&typeof U>"u")&&(U=this.buffer[d++],T|=(U&127)<<21,(U&128||this.noAssert&&typeof U>"u")&&(U=this.buffer[d++],I=U&127,(U&128||this.noAssert&&typeof U>"u")&&(U=this.buffer[d++],I|=(U&127)<<7,(U&128||this.noAssert&&typeof U>"u")&&(U=this.buffer[d++],I|=(U&127)<<14,(U&128||this.noAssert&&typeof U>"u")&&(U=this.buffer[d++],I|=(U&127)<<21,(U&128||this.noAssert&&typeof U>"u")&&(U=this.buffer[d++],L=U&127,(U&128||this.noAssert&&typeof U>"u")&&(U=this.buffer[d++],L|=(U&127)<<7,U&128||this.noAssert&&typeof U>"u"))))))))))throw Error("Buffer overrun");var re=r.fromBits(T|I<<28,I>>>4|L<<24,!1);return p?(this.offset=d,re):{value:re,length:d-b}},a.readVarint64ZigZag=function(d){var p=this.readVarint64(d);return p&&p.value instanceof r?p.value=n.zigZagDecode64(p.value):p=n.zigZagDecode64(p),p}),a.writeCString=function(d,p){var b=typeof p>"u";b&&(p=this.offset);var T,I=d.length;if(!this.noAssert){if(typeof d!="string")throw TypeError("Illegal str: Not a string");for(T=0;T>>=0,p<0||p+0>this.buffer.length)throw RangeError("Illegal offset: 0 <= "+p+" (+"+0+") <= "+this.buffer.length)}I=e.byteLength(d,"utf8"),p+=I+1;var L=this.buffer.length;return p>L&&this.resize((L*=2)>p?L:p),p-=I+1,p+=this.buffer.write(d,p,I,"utf8"),this.buffer[p++]=0,b?(this.offset=p,this):I},a.readCString=function(d){var p=typeof d>"u";if(p&&(d=this.offset),!this.noAssert){if(typeof d!="number"||d%1!==0)throw TypeError("Illegal offset: "+d+" (not an integer)");if(d>>>=0,d<0||d+1>this.buffer.length)throw RangeError("Illegal offset: 0 <= "+d+" (+"+1+") <= "+this.buffer.length)}var b=d,T;do{if(d>=this.buffer.length)throw RangeError("Index out of range: "+d+" <= "+this.buffer.length);T=this.buffer[d++]}while(T!==0);var I=this.buffer.toString("utf8",b,d-1);return p?(this.offset=d,I):{string:I,length:d-b}},a.writeIString=function(d,p){var b=typeof p>"u";if(b&&(p=this.offset),!this.noAssert){if(typeof d!="string")throw TypeError("Illegal str: Not a string");if(typeof p!="number"||p%1!==0)throw TypeError("Illegal offset: "+p+" (not an integer)");if(p>>>=0,p<0||p+0>this.buffer.length)throw RangeError("Illegal offset: 0 <= "+p+" (+"+0+") <= "+this.buffer.length)}var T=p,I;I=e.byteLength(d,"utf8"),p+=4+I;var L=this.buffer.length;return p>L&&this.resize((L*=2)>p?L:p),p-=4+I,this.littleEndian?(this.buffer[p+3]=I>>>24&255,this.buffer[p+2]=I>>>16&255,this.buffer[p+1]=I>>>8&255,this.buffer[p]=I&255):(this.buffer[p]=I>>>24&255,this.buffer[p+1]=I>>>16&255,this.buffer[p+2]=I>>>8&255,this.buffer[p+3]=I&255),p+=4,p+=this.buffer.write(d,p,I,"utf8"),b?(this.offset=p,this):p-T},a.readIString=function(d){var p=typeof d>"u";if(p&&(d=this.offset),!this.noAssert){if(typeof d!="number"||d%1!==0)throw TypeError("Illegal offset: "+d+" (not an integer)");if(d>>>=0,d<0||d+4>this.buffer.length)throw RangeError("Illegal offset: 0 <= "+d+" (+"+4+") <= "+this.buffer.length)}var b=d,T=this.readUint32(d),I=this.readUTF8String(T,n.METRICS_BYTES,d+=4);return d+=I.length,p?(this.offset=d,I.string):{string:I.string,length:d-b}},n.METRICS_CHARS="c",n.METRICS_BYTES="b",a.writeUTF8String=function(d,p){var b=typeof p>"u";if(b&&(p=this.offset),!this.noAssert){if(typeof p!="number"||p%1!==0)throw TypeError("Illegal offset: "+p+" (not an integer)");if(p>>>=0,p<0||p+0>this.buffer.length)throw RangeError("Illegal offset: 0 <= "+p+" (+"+0+") <= "+this.buffer.length)}var T;T=e.byteLength(d,"utf8"),p+=T;var I=this.buffer.length;return p>I&&this.resize((I*=2)>p?I:p),p-=T,p+=this.buffer.write(d,p,T,"utf8"),b?(this.offset=p,this):T},a.writeString=a.writeUTF8String,n.calculateUTF8Chars=function(d){return f.calculateUTF16asUTF8(c(d))[0]},n.calculateUTF8Bytes=function(d){if(typeof d!="string")throw TypeError("Illegal argument: "+typeof d);return e.byteLength(d,"utf8")},n.calculateString=n.calculateUTF8Bytes,a.readUTF8String=function(d,p,b){typeof p=="number"&&(b=p,p=void 0);var T=typeof b>"u";if(T&&(b=this.offset),typeof p>"u"&&(p=n.METRICS_CHARS),!this.noAssert){if(typeof d!="number"||d%1!==0)throw TypeError("Illegal length: "+d+" (not an integer)");if(d|=0,typeof b!="number"||b%1!==0)throw TypeError("Illegal offset: "+b+" (not an integer)");if(b>>>=0,b<0||b+0>this.buffer.length)throw RangeError("Illegal offset: 0 <= "+b+" (+"+0+") <= "+this.buffer.length)}var I=0,L=b,U,re;if(p===n.METRICS_CHARS){if(re=u(),f.decodeUTF8(function(){return I>>=0,b<0||b+d>this.buffer.length)throw RangeError("Illegal offset: 0 <= "+b+" (+"+d+") <= "+this.buffer.length)}return U=this.buffer.toString("utf8",b,b+d),T?(this.offset+=d,U):{string:U,length:d}}else throw TypeError("Unsupported metrics: "+p)},a.readString=a.readUTF8String,a.writeVString=function(d,p){var b=typeof p>"u";if(b&&(p=this.offset),!this.noAssert){if(typeof d!="string")throw TypeError("Illegal str: Not a string");if(typeof p!="number"||p%1!==0)throw TypeError("Illegal offset: "+p+" (not an integer)");if(p>>>=0,p<0||p+0>this.buffer.length)throw RangeError("Illegal offset: 0 <= "+p+" (+"+0+") <= "+this.buffer.length)}var T=p,I,L;I=e.byteLength(d,"utf8"),L=n.calculateVarint32(I),p+=L+I;var U=this.buffer.length;return p>U&&this.resize((U*=2)>p?U:p),p-=L+I,p+=this.writeVarint32(I,p),p+=this.buffer.write(d,p,I,"utf8"),b?(this.offset=p,this):p-T},a.readVString=function(d){var p=typeof d>"u";if(p&&(d=this.offset),!this.noAssert){if(typeof d!="number"||d%1!==0)throw TypeError("Illegal offset: "+d+" (not an integer)");if(d>>>=0,d<0||d+1>this.buffer.length)throw RangeError("Illegal offset: 0 <= "+d+" (+"+1+") <= "+this.buffer.length)}var b=d,T=this.readVarint32(d),I=this.readUTF8String(T.value,n.METRICS_BYTES,d+=T.length);return d+=I.length,p?(this.offset=d,I.string):{string:I.string,length:d-b}},a.append=function(d,p,b){(typeof p=="number"||typeof p!="string")&&(b=p,p=void 0);var T=typeof b>"u";if(T&&(b=this.offset),!this.noAssert){if(typeof b!="number"||b%1!==0)throw TypeError("Illegal offset: "+b+" (not an integer)");if(b>>>=0,b<0||b+0>this.buffer.length)throw RangeError("Illegal offset: 0 <= "+b+" (+"+0+") <= "+this.buffer.length)}d instanceof n||(d=n.wrap(d,p));var I=d.limit-d.offset;if(I<=0)return this;b+=I;var L=this.buffer.length;return b>L&&this.resize((L*=2)>b?L:b),b-=I,d.buffer.copy(this.buffer,b,d.offset,d.limit),d.offset+=I,T&&(this.offset+=I),this},a.appendTo=function(d,p){return d.append(this,p),this},a.assert=function(d){return this.noAssert=!d,this},a.capacity=function(){return this.buffer.length},a.clear=function(){return this.offset=0,this.limit=this.buffer.length,this.markedOffset=-1,this},a.clone=function(d){var p=new n(0,this.littleEndian,this.noAssert);if(d){var b=new e(this.buffer.length);this.buffer.copy(b),p.buffer=b}else p.buffer=this.buffer;return p.offset=this.offset,p.markedOffset=this.markedOffset,p.limit=this.limit,p},a.compact=function(d,p){if(typeof d>"u"&&(d=this.offset),typeof p>"u"&&(p=this.limit),!this.noAssert){if(typeof d!="number"||d%1!==0)throw TypeError("Illegal begin: Not an integer");if(d>>>=0,typeof p!="number"||p%1!==0)throw TypeError("Illegal end: Not an integer");if(p>>>=0,d<0||d>p||p>this.buffer.length)throw RangeError("Illegal range: 0 <= "+d+" <= "+p+" <= "+this.buffer.length)}if(d===0&&p===this.buffer.length)return this;var b=p-d;if(b===0)return this.buffer=s,this.markedOffset>=0&&(this.markedOffset-=d),this.offset=0,this.limit=0,this;var T=new e(b);return this.buffer.copy(T,0,d,p),this.buffer=T,this.markedOffset>=0&&(this.markedOffset-=d),this.offset=0,this.limit=b,this},a.copy=function(d,p){if(typeof d>"u"&&(d=this.offset),typeof p>"u"&&(p=this.limit),!this.noAssert){if(typeof d!="number"||d%1!==0)throw TypeError("Illegal begin: Not an integer");if(d>>>=0,typeof p!="number"||p%1!==0)throw TypeError("Illegal end: Not an integer");if(p>>>=0,d<0||d>p||p>this.buffer.length)throw RangeError("Illegal range: 0 <= "+d+" <= "+p+" <= "+this.buffer.length)}if(d===p)return new n(0,this.littleEndian,this.noAssert);var b=p-d,T=new n(b,this.littleEndian,this.noAssert);return T.offset=0,T.limit=b,T.markedOffset>=0&&(T.markedOffset-=d),this.copyTo(T,0,d,p),T},a.copyTo=function(d,p,b,T){var I,L;if(!this.noAssert&&!n.isByteBuffer(d))throw TypeError("Illegal target: Not a ByteBuffer");if(p=(L=typeof p>"u")?d.offset:p|0,b=(I=typeof b>"u")?this.offset:b|0,T=typeof T>"u"?this.limit:T|0,p<0||p>d.buffer.length)throw RangeError("Illegal target range: 0 <= "+p+" <= "+d.buffer.length);if(b<0||T>this.buffer.length)throw RangeError("Illegal source range: 0 <= "+b+" <= "+this.buffer.length);var U=T-b;return U===0?d:(d.ensureCapacity(p+U),this.buffer.copy(d.buffer,p,b,T),I&&(this.offset+=U),L&&(d.offset+=U),this)},a.ensureCapacity=function(d){var p=this.buffer.length;return pd?p:d):this},a.fill=function(d,p,b){var T=typeof p>"u";if(T&&(p=this.offset),typeof d=="string"&&d.length>0&&(d=d.charCodeAt(0)),typeof p>"u"&&(p=this.offset),typeof b>"u"&&(b=this.limit),!this.noAssert){if(typeof d!="number"||d%1!==0)throw TypeError("Illegal value: "+d+" (not an integer)");if(d|=0,typeof p!="number"||p%1!==0)throw TypeError("Illegal begin: Not an integer");if(p>>>=0,typeof b!="number"||b%1!==0)throw TypeError("Illegal end: Not an integer");if(b>>>=0,p<0||p>b||b>this.buffer.length)throw RangeError("Illegal range: 0 <= "+p+" <= "+b+" <= "+this.buffer.length)}return p>=b?this:(this.buffer.fill(d,p,b),p=b,T&&(this.offset=p),this)},a.flip=function(){return this.limit=this.offset,this.offset=0,this},a.mark=function(d){if(d=typeof d>"u"?this.offset:d,!this.noAssert){if(typeof d!="number"||d%1!==0)throw TypeError("Illegal offset: "+d+" (not an integer)");if(d>>>=0,d<0||d+0>this.buffer.length)throw RangeError("Illegal offset: 0 <= "+d+" (+"+0+") <= "+this.buffer.length)}return this.markedOffset=d,this},a.order=function(d){if(!this.noAssert&&typeof d!="boolean")throw TypeError("Illegal littleEndian: Not a boolean");return this.littleEndian=!!d,this},a.LE=function(d){return this.littleEndian=typeof d<"u"?!!d:!0,this},a.BE=function(d){return this.littleEndian=typeof d<"u"?!d:!1,this},a.prepend=function(d,p,b){(typeof p=="number"||typeof p!="string")&&(b=p,p=void 0);var T=typeof b>"u";if(T&&(b=this.offset),!this.noAssert){if(typeof b!="number"||b%1!==0)throw TypeError("Illegal offset: "+b+" (not an integer)");if(b>>>=0,b<0||b+0>this.buffer.length)throw RangeError("Illegal offset: 0 <= "+b+" (+"+0+") <= "+this.buffer.length)}d instanceof n||(d=n.wrap(d,p));var I=d.limit-d.offset;if(I<=0)return this;var L=I-b;if(L>0){var U=new e(this.buffer.length+L);this.buffer.copy(U,I,b,this.buffer.length),this.buffer=U,this.offset+=L,this.markedOffset>=0&&(this.markedOffset+=L),this.limit+=L,b+=L}return d.buffer.copy(this.buffer,b-I,d.offset,d.limit),d.offset=d.limit,T&&(this.offset-=I),this},a.prependTo=function(d,p){return d.prepend(this,p),this},a.printDebug=function(d){typeof d!="function"&&(d=console.log.bind(console)),d(this.toString()+` +------------------------------------------------------------------- +`+this.toDebug(!0))},a.remaining=function(){return this.limit-this.offset},a.reset=function(){return this.markedOffset>=0?(this.offset=this.markedOffset,this.markedOffset=-1):this.offset=0,this},a.resize=function(d){if(!this.noAssert){if(typeof d!="number"||d%1!==0)throw TypeError("Illegal capacity: "+d+" (not an integer)");if(d|=0,d<0)throw RangeError("Illegal capacity: 0 <= "+d)}if(this.buffer.length"u"&&(d=this.offset),typeof p>"u"&&(p=this.limit),!this.noAssert){if(typeof d!="number"||d%1!==0)throw TypeError("Illegal begin: Not an integer");if(d>>>=0,typeof p!="number"||p%1!==0)throw TypeError("Illegal end: Not an integer");if(p>>>=0,d<0||d>p||p>this.buffer.length)throw RangeError("Illegal range: 0 <= "+d+" <= "+p+" <= "+this.buffer.length)}return d===p?this:(Array.prototype.reverse.call(this.buffer.slice(d,p)),this)},a.skip=function(d){if(!this.noAssert){if(typeof d!="number"||d%1!==0)throw TypeError("Illegal length: "+d+" (not an integer)");d|=0}var p=this.offset+d;if(!this.noAssert&&(p<0||p>this.buffer.length))throw RangeError("Illegal length: 0 <= "+this.offset+" + "+d+" <= "+this.buffer.length);return this.offset=p,this},a.slice=function(d,p){if(typeof d>"u"&&(d=this.offset),typeof p>"u"&&(p=this.limit),!this.noAssert){if(typeof d!="number"||d%1!==0)throw TypeError("Illegal begin: Not an integer");if(d>>>=0,typeof p!="number"||p%1!==0)throw TypeError("Illegal end: Not an integer");if(p>>>=0,d<0||d>p||p>this.buffer.length)throw RangeError("Illegal range: 0 <= "+d+" <= "+p+" <= "+this.buffer.length)}var b=this.clone();return b.offset=d,b.limit=p,b},a.toBuffer=function(d){var p=this.offset,b=this.limit;if(!this.noAssert){if(typeof p!="number"||p%1!==0)throw TypeError("Illegal offset: Not an integer");if(p>>>=0,typeof b!="number"||b%1!==0)throw TypeError("Illegal limit: Not an integer");if(b>>>=0,p<0||p>b||b>this.buffer.length)throw RangeError("Illegal range: 0 <= "+p+" <= "+b+" <= "+this.buffer.length)}if(d){var T=new e(b-p);return this.buffer.copy(T,0,p,b),T}else return p===0&&b===this.buffer.length?this.buffer:this.buffer.slice(p,b)},a.toArrayBuffer=function(){var d=this.offset,p=this.limit;if(!this.noAssert){if(typeof d!="number"||d%1!==0)throw TypeError("Illegal offset: Not an integer");if(d>>>=0,typeof p!="number"||p%1!==0)throw TypeError("Illegal limit: Not an integer");if(p>>>=0,d<0||d>p||p>this.buffer.length)throw RangeError("Illegal range: 0 <= "+d+" <= "+p+" <= "+this.buffer.length)}var b=new ArrayBuffer(p-d);if(i)i(b,0,this.buffer,d,p);else for(var T=new Uint8Array(b),I=d;I"u")return"ByteBufferNB(offset="+this.offset+",markedOffset="+this.markedOffset+",limit="+this.limit+",capacity="+this.capacity()+")";switch(typeof d=="number"&&(d="utf8",p=d,b=p),d){case"utf8":return this.toUTF8(p,b);case"base64":return this.toBase64(p,b);case"hex":return this.toHex(p,b);case"binary":return this.toBinary(p,b);case"debug":return this.toDebug();case"columns":return this.toColumns();default:throw Error("Unsupported encoding: "+d)}},a.toBase64=function(d,p){if(typeof d>"u"&&(d=this.offset),typeof p>"u"&&(p=this.limit),d=d|0,p=p|0,d<0||p>this.capacity||d>p)throw RangeError("begin, end");return this.buffer.toString("base64",d,p)},n.fromBase64=function(d,p){return n.wrap(new e(d,"base64"),p)},n.btoa=function(d){return n.fromBinary(d).toBase64()},n.atob=function(d){return n.fromBase64(d).toBinary()},a.toBinary=function(d,p){if(typeof d>"u"&&(d=this.offset),typeof p>"u"&&(p=this.limit),d|=0,p|=0,d<0||p>this.capacity()||d>p)throw RangeError("begin, end");return this.buffer.toString("binary",d,p)},n.fromBinary=function(d,p){return n.wrap(new e(d,"binary"),p)},a.toDebug=function(d){for(var p=-1,b=this.buffer.length,T,I="",L="",U="";p32&&T<127?String.fromCharCode(T):".")),++p,d&&p>0&&p%16===0&&p!==b){for(;I.length<3*16+3;)I+=" ";U+=I+L+` +`,I=L=""}p===this.offset&&p===this.limit?I+=p===this.markedOffset?"!":"|":p===this.offset?I+=p===this.markedOffset?"[":"<":p===this.limit?I+=p===this.markedOffset?"]":">":I+=p===this.markedOffset?"'":d||p!==0&&p!==b?" ":""}if(d&&I!==" "){for(;I.length<3*16+3;)I+=" ";U+=I+L+` +`}return d?U:I},n.fromDebug=function(d,p,b){for(var T=d.length,I=new n((T+1)/3|0,p,b),L=0,U=0,re,oe,ge=!1,be=!1,ce=!1,me=!1,ne=!1;L":if(!b){if(me){ne=!0;break}me=!0}I.limit=U,ge=!1;break;case"'":if(!b){if(ce){ne=!0;break}ce=!0}I.markedOffset=U,ge=!1;break;case" ":ge=!1;break;default:if(!b&&ge){ne=!0;break}if(oe=parseInt(re+d.charAt(L++),16),!b&&(isNaN(oe)||oe<0||oe>255))throw TypeError("Illegal str: Not a debug encoded string");I.buffer[U++]=oe,ge=!0}if(ne)throw TypeError("Illegal str: Invalid symbol at "+L)}if(!b){if(!be||!me)throw TypeError("Illegal str: Missing offset or limit");if(U"u"?this.offset:d,p=typeof p>"u"?this.limit:p,!this.noAssert){if(typeof d!="number"||d%1!==0)throw TypeError("Illegal begin: Not an integer");if(d>>>=0,typeof p!="number"||p%1!==0)throw TypeError("Illegal end: Not an integer");if(p>>>=0,d<0||d>p||p>this.buffer.length)throw RangeError("Illegal range: 0 <= "+d+" <= "+p+" <= "+this.buffer.length)}return this.buffer.toString("hex",d,p)},n.fromHex=function(d,p,b){if(!b){if(typeof d!="string")throw TypeError("Illegal str: Not a string");if(d.length%2!==0)throw TypeError("Illegal str: Length not a multiple of 2")}var T=new n(0,p,!0);return T.buffer=new e(d,"hex"),T.limit=T.buffer.length,T};var f=function(){"use strict";var d={};return d.MAX_CODEPOINT=1114111,d.encodeUTF8=function(p,b){var T=null;for(typeof p=="number"&&(T=p,p=function(){return null});T!==null||(T=p())!==null;)T<128?b(T&127):T<2048?(b(T>>6&31|192),b(T&63|128)):T<65536?(b(T>>12&15|224),b(T>>6&63|128),b(T&63|128)):(b(T>>18&7|240),b(T>>12&63|128),b(T>>6&63|128),b(T&63|128)),T=null},d.decodeUTF8=function(p,b){for(var T,I,L,U,re=function(oe){oe=oe.slice(0,oe.indexOf(null));var ge=Error(oe.toString());throw ge.name="TruncatedError",ge.bytes=oe,ge};(T=p())!==null;)if((T&128)===0)b(T);else if((T&224)===192)(I=p())===null&&re([T,I]),b((T&31)<<6|I&63);else if((T&240)===224)((I=p())===null||(L=p())===null)&&re([T,I,L]),b((T&15)<<12|(I&63)<<6|L&63);else if((T&248)===240)((I=p())===null||(L=p())===null||(U=p())===null)&&re([T,I,L,U]),b((T&7)<<18|(I&63)<<12|(L&63)<<6|U&63);else throw RangeError("Illegal starting byte: "+T)},d.UTF16toUTF8=function(p,b){for(var T,I=null;(T=I!==null?I:p())!==null;){if(T>=55296&&T<=57343&&(I=p())!==null&&I>=56320&&I<=57343){b((T-55296)*1024+I-56320+65536),I=null;continue}b(T)}I!==null&&b(I)},d.UTF8toUTF16=function(p,b){var T=null;for(typeof p=="number"&&(T=p,p=function(){return null});T!==null||(T=p())!==null;)T<=65535?b(T):(T-=65536,b((T>>10)+55296),b(T%1024+56320)),T=null},d.encodeUTF16toUTF8=function(p,b){d.UTF16toUTF8(p,function(T){d.encodeUTF8(T,b)})},d.decodeUTF8toUTF16=function(p,b){d.decodeUTF8(p,function(T){d.UTF8toUTF16(T,b)})},d.calculateCodePoint=function(p){return p<128?1:p<2048?2:p<65536?3:4},d.calculateUTF8=function(p){for(var b,T=0;(b=p())!==null;)T+=b<128?1:b<2048?2:b<65536?3:4;return T},d.calculateUTF16asUTF8=function(p){var b=0,T=0;return d.UTF16toUTF8(p,function(I){++b,T+=I<128?1:I<2048?2:I<65536?3:4}),[b,T]},d}();return a.toUTF8=function(d,p){if(typeof d>"u"&&(d=this.offset),typeof p>"u"&&(p=this.limit),!this.noAssert){if(typeof d!="number"||d%1!==0)throw TypeError("Illegal begin: Not an integer");if(d>>>=0,typeof p!="number"||p%1!==0)throw TypeError("Illegal end: Not an integer");if(p>>>=0,d<0||d>p||p>this.buffer.length)throw RangeError("Illegal range: 0 <= "+d+" <= "+p+" <= "+this.buffer.length)}return this.buffer.toString("utf8",d,p)},n.fromUTF8=function(d,p,b){if(!b&&typeof d!="string")throw TypeError("Illegal str: Not a string");var T=new n(0,p,b);return T.buffer=new e(d,"utf8"),T.limit=T.buffer.length,T},n.memcpy=i,n}()});var JC=x(rw=>{"use strict";Object.defineProperty(rw,"__esModule",{value:!0});rw.isPrimitiveField=void 0;var bje=["bool","string","bytes","int32","int64","uint32","uint64","sint32","sint64","fixed32","fixed64","sfixed32","sfixed64","double","float"],_je=t=>bje.includes(t);rw.isPrimitiveField=_je});var XC=x(Sy=>{"use strict";var wje=Sy&&Sy.__rest||function(t,e){var r={};for(var i in t)Object.prototype.hasOwnProperty.call(t,i)&&e.indexOf(i)<0&&(r[i]=t[i]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var n=0,i=Object.getOwnPropertySymbols(t);n{if((0,Sje.isPrimitiveField)(t.type))return t.optional&&typeof e>"u"?null:t.type==="bytes"?xje.wrap(e).toString("hex"):t.long?Number.isSafeInteger(e.toNumber())?e.toNumber():e.toString():e;if("valuesById"in t.resolvedType)return t.resolvedType.valuesById[e];if(t.resolvedType.fields)return Hie(e,t.resolvedType.fields);throw new Error(`transport: decode: case not handled: ${t}`)};function Hie(t,e){let r=wje(t,[]),i={};return Object.keys(e).forEach(n=>{let a=e[n],s=r[n];a.repeated?i[n]=s.map(o=>Vie(a,o)):i[n]=Vie(a,s)}),i}var Eje=(t,e)=>{let r=e.toBuffer(),i=new Uint8Array(r),n=t.decode(i);return Hie(n,n.$type.fields)};Sy.decode=Eje});var Gie=x(Ey=>{"use strict";Object.defineProperty(Ey,"__esModule",{value:!0});Ey.encode=Ey.patch=void 0;var Tje=xy(),Aje=JC(),zie=(t,e)=>{if(t==="bytes")return typeof e=="string"&&!e?e:Buffer.from(e,"hex");if(typeof e=="number"&&!Number.isSafeInteger(e))throw new RangeError("field value is not within safe integer range");return e};function iw(t,e){let r={};return t.fields&&Object.keys(t.fields).forEach(i=>{let n=t.fields[i],a=e[i];if(!(typeof a>"u")){if((0,Aje.isPrimitiveField)(n.type)){n.repeated?r[i]=a.map(s=>zie(n.type,s)):r[i]=zie(n.type,a);return}if(n.repeated){let s=t.lookupTypeOrEnum(n.type);r[i]=a.map(o=>iw(s,o))}else if(typeof a=="object"&&a!==null){let s=t.lookupType(n.type);r[i]=iw(s,a)}else if(typeof a=="number"){let s=t.lookupEnum(n.type);r[i]=s.values[a]}else r[i]=a}}),r}Ey.patch=iw;var Pje=(t,e)=>{let r=iw(t,e),i=t.fromObject(r),n=t.encode(i).finish(),a=new Tje(n.byteLength);return a.append(n),a.reset(),a};Ey.encode=Pje});var Xie=x($0=>{"use strict";var Oje=$0&&$0.__createBinding||(Object.create?function(t,e,r,i){i===void 0&&(i=r);var n=Object.getOwnPropertyDescriptor(e,r);(!n||("get"in n?!e.__esModule:n.writable||n.configurable))&&(n={enumerable:!0,get:function(){return e[r]}}),Object.defineProperty(t,i,n)}:function(t,e,r,i){i===void 0&&(i=r),t[i]=e[r]}),Jie=$0&&$0.__exportStar||function(t,e){for(var r in t)r!=="default"&&!Object.prototype.hasOwnProperty.call(e,r)&&Oje(e,t,r)};Object.defineProperty($0,"__esModule",{value:!0});Jie(XC(),$0);Jie(Gie(),$0)});var nw=x(Pu=>{"use strict";Object.defineProperty(Pu,"__esModule",{value:!0});Pu.BUFFER_SIZE=Pu.HEADER_SIZE=Pu.MESSAGE_HEADER_BYTE=Pu.DEFAULT_VERSION_URL=Pu.DEFAULT_URL=void 0;Pu.DEFAULT_URL="http://127.0.0.1:21325";Pu.DEFAULT_VERSION_URL="https://data.trezor.io/bridge/latest.txt";Pu.MESSAGE_HEADER_BYTE=35;Pu.HEADER_SIZE=1+1+4+2;Pu.BUFFER_SIZE=63});var KC=x(Ty=>{"use strict";Object.defineProperty(Ty,"__esModule",{value:!0});Ty.decodeChunked=Ty.decode=void 0;var Rje=xy(),Kie=nw(),Mje=t=>{let e=t.readUint16(),r=t.readUint32();return{typeId:e,length:r}},Cje=t=>{let e=t.readByte(),r=t.readByte(),i=t.readUint16(),n=t.readUint32();return{sharp1:e,sharp2:r,typeId:i,length:n}},Ije=t=>{let{typeId:e}=Mje(t);return{typeId:e,buffer:t}};Ty.decode=Ije;var Nje=t=>{let e=Rje.wrap(t,void 0,void 0,!0),{sharp1:r,sharp2:i,typeId:n,length:a}=Cje(e);if(r!==Kie.MESSAGE_HEADER_BYTE||i!==Kie.MESSAGE_HEADER_BYTE)throw new Error("Didn't receive expected header signature.");return{length:a,typeId:n,restBuffer:e}};Ty.decodeChunked=Nje});var Wie=x(aw=>{"use strict";Object.defineProperty(aw,"__esModule",{value:!0});aw.encode=void 0;var kje=xy(),Nb=nw();function Bje(t,e){let{addTrezorHeaders:r,chunked:i,messageType:n}=e,a=(r?Nb.HEADER_SIZE:Nb.HEADER_SIZE-2)+t.limit,s=new kje(a);if(r&&(s.writeByte(Nb.MESSAGE_HEADER_BYTE),s.writeByte(Nb.MESSAGE_HEADER_BYTE)),s.writeUint16(n),s.writeUint32(t.limit),s.append(t.buffer),s.reset(),i===!1)return s;let o=[],c=Nb.BUFFER_SIZE,u=Math.floor((s.limit-1)/c)+1||1;for(let f=0;f{"use strict";var Fje=Q0&&Q0.__createBinding||(Object.create?function(t,e,r,i){i===void 0&&(i=r);var n=Object.getOwnPropertyDescriptor(e,r);(!n||("get"in n?!e.__esModule:n.writable||n.configurable))&&(n={enumerable:!0,get:function(){return e[r]}}),Object.defineProperty(t,i,n)}:function(t,e,r,i){i===void 0&&(i=r),t[i]=e[r]}),Zie=Q0&&Q0.__exportStar||function(t,e){for(var r in t)r!=="default"&&!Object.prototype.hasOwnProperty.call(e,r)&&Fje(e,t,r)};Object.defineProperty(Q0,"__esModule",{value:!0});Zie(KC(),Q0);Zie(Wie(),Q0)});var WC=x((TMt,Qie)=>{"use strict";Qie.exports=Dje;function Dje(t,e){for(var r=new Array(arguments.length-1),i=0,n=2,a=!0;n{"use strict";var sw=tne;sw.length=function(e){var r=e.length;if(!r)return 0;for(var i=0;--r%4>1&&e.charAt(r)==="=";)++i;return Math.ceil(e.length*3)/4-i};var Ay=new Array(64),ene=new Array(123);for(vc=0;vc<64;)ene[Ay[vc]=vc<26?vc+65:vc<52?vc+71:vc<62?vc-4:vc-59|43]=vc++;var vc;sw.encode=function(e,r,i){for(var n=null,a=[],s=0,o=0,c;r>2],c=(u&3)<<4,o=1;break;case 1:a[s++]=Ay[c|u>>4],c=(u&15)<<2,o=2;break;case 2:a[s++]=Ay[c|u>>6],a[s++]=Ay[u&63],o=0;break}s>8191&&((n||(n=[])).push(String.fromCharCode.apply(String,a)),s=0)}return o&&(a[s++]=Ay[c],a[s++]=61,o===1&&(a[s++]=61)),n?(s&&n.push(String.fromCharCode.apply(String,a.slice(0,s))),n.join("")):String.fromCharCode.apply(String,a.slice(0,s))};var Yie="invalid encoding";sw.decode=function(e,r,i){for(var n=i,a=0,s,o=0;o1)break;if((c=ene[c])===void 0)throw Error(Yie);switch(a){case 0:s=c,a=1;break;case 1:r[i++]=s<<2|(c&48)>>4,s=c,a=2;break;case 2:r[i++]=(s&15)<<4|(c&60)>>2,s=c,a=3;break;case 3:r[i++]=(s&3)<<6|c,a=0;break}}if(a===1)throw Error(Yie);return i-n};sw.test=function(e){return/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(e)}});var nne=x((PMt,ine)=>{"use strict";ine.exports=ow;function ow(){this._listeners={}}ow.prototype.on=function(e,r,i){return(this._listeners[e]||(this._listeners[e]=[])).push({fn:r,ctx:i||this}),this};ow.prototype.off=function(e,r){if(e===void 0)this._listeners={};else if(r===void 0)this._listeners[e]=[];else for(var i=this._listeners[e],n=0;n{"use strict";dne.exports=ane(ane);function ane(t){return typeof Float32Array<"u"?function(){var e=new Float32Array([-0]),r=new Uint8Array(e.buffer),i=r[3]===128;function n(c,u,f){e[0]=c,u[f]=r[0],u[f+1]=r[1],u[f+2]=r[2],u[f+3]=r[3]}function a(c,u,f){e[0]=c,u[f]=r[3],u[f+1]=r[2],u[f+2]=r[1],u[f+3]=r[0]}t.writeFloatLE=i?n:a,t.writeFloatBE=i?a:n;function s(c,u){return r[0]=c[u],r[1]=c[u+1],r[2]=c[u+2],r[3]=c[u+3],e[0]}function o(c,u){return r[3]=c[u],r[2]=c[u+1],r[1]=c[u+2],r[0]=c[u+3],e[0]}t.readFloatLE=i?s:o,t.readFloatBE=i?o:s}():function(){function e(i,n,a,s){var o=n<0?1:0;if(o&&(n=-n),n===0)i(1/n>0?0:2147483648,a,s);else if(isNaN(n))i(2143289344,a,s);else if(n>34028234663852886e22)i((o<<31|2139095040)>>>0,a,s);else if(n<11754943508222875e-54)i((o<<31|Math.round(n/1401298464324817e-60))>>>0,a,s);else{var c=Math.floor(Math.log(n)/Math.LN2),u=Math.round(n*Math.pow(2,-c)*8388608)&8388607;i((o<<31|c+127<<23|u)>>>0,a,s)}}t.writeFloatLE=e.bind(null,sne),t.writeFloatBE=e.bind(null,one);function r(i,n,a){var s=i(n,a),o=(s>>31)*2+1,c=s>>>23&255,u=s&8388607;return c===255?u?NaN:o*(1/0):c===0?o*1401298464324817e-60*u:o*Math.pow(2,c-150)*(u+8388608)}t.readFloatLE=r.bind(null,une),t.readFloatBE=r.bind(null,cne)}(),typeof Float64Array<"u"?function(){var e=new Float64Array([-0]),r=new Uint8Array(e.buffer),i=r[7]===128;function n(c,u,f){e[0]=c,u[f]=r[0],u[f+1]=r[1],u[f+2]=r[2],u[f+3]=r[3],u[f+4]=r[4],u[f+5]=r[5],u[f+6]=r[6],u[f+7]=r[7]}function a(c,u,f){e[0]=c,u[f]=r[7],u[f+1]=r[6],u[f+2]=r[5],u[f+3]=r[4],u[f+4]=r[3],u[f+5]=r[2],u[f+6]=r[1],u[f+7]=r[0]}t.writeDoubleLE=i?n:a,t.writeDoubleBE=i?a:n;function s(c,u){return r[0]=c[u],r[1]=c[u+1],r[2]=c[u+2],r[3]=c[u+3],r[4]=c[u+4],r[5]=c[u+5],r[6]=c[u+6],r[7]=c[u+7],e[0]}function o(c,u){return r[7]=c[u],r[6]=c[u+1],r[5]=c[u+2],r[4]=c[u+3],r[3]=c[u+4],r[2]=c[u+5],r[1]=c[u+6],r[0]=c[u+7],e[0]}t.readDoubleLE=i?s:o,t.readDoubleBE=i?o:s}():function(){function e(i,n,a,s,o,c){var u=s<0?1:0;if(u&&(s=-s),s===0)i(0,o,c+n),i(1/s>0?0:2147483648,o,c+a);else if(isNaN(s))i(0,o,c+n),i(2146959360,o,c+a);else if(s>17976931348623157e292)i(0,o,c+n),i((u<<31|2146435072)>>>0,o,c+a);else{var f;if(s<22250738585072014e-324)f=s/5e-324,i(f>>>0,o,c+n),i((u<<31|f/4294967296)>>>0,o,c+a);else{var d=Math.floor(Math.log(s)/Math.LN2);d===1024&&(d=1023),f=s*Math.pow(2,-d),i(f*4503599627370496>>>0,o,c+n),i((u<<31|d+1023<<20|f*1048576&1048575)>>>0,o,c+a)}}}t.writeDoubleLE=e.bind(null,sne,0,4),t.writeDoubleBE=e.bind(null,one,4,0);function r(i,n,a,s,o){var c=i(s,o+n),u=i(s,o+a),f=(u>>31)*2+1,d=u>>>20&2047,p=4294967296*(u&1048575)+c;return d===2047?p?NaN:f*(1/0):d===0?f*5e-324*p:f*Math.pow(2,d-1075)*(p+4503599627370496)}t.readDoubleLE=r.bind(null,une,0,4),t.readDoubleBE=r.bind(null,cne,4,0)}(),t}function sne(t,e,r){e[r]=t&255,e[r+1]=t>>>8&255,e[r+2]=t>>>16&255,e[r+3]=t>>>24}function one(t,e,r){e[r]=t>>>24,e[r+1]=t>>>16&255,e[r+2]=t>>>8&255,e[r+3]=t&255}function une(t,e){return(t[e]|t[e+1]<<8|t[e+2]<<16|t[e+3]<<24)>>>0}function cne(t,e){return(t[e]<<24|t[e+1]<<16|t[e+2]<<8|t[e+3])>>>0}});var ZC=x((exports,module)=>{"use strict";module.exports=inquire;function inquire(moduleName){try{var mod=eval("quire".replace(/^/,"re"))(moduleName);if(mod&&(mod.length||Object.keys(mod).length))return mod}catch(t){}return null}});var pne=x(fne=>{"use strict";var $C=fne;$C.length=function(e){for(var r=0,i=0,n=0;n191&&c<224?s[o++]=(c&31)<<6|e[r++]&63:c>239&&c<365?(c=((c&7)<<18|(e[r++]&63)<<12|(e[r++]&63)<<6|e[r++]&63)-65536,s[o++]=55296+(c>>10),s[o++]=56320+(c&1023)):s[o++]=(c&15)<<12|(e[r++]&63)<<6|e[r++]&63,o>8191&&((a||(a=[])).push(String.fromCharCode.apply(String,s)),o=0);return a?(o&&a.push(String.fromCharCode.apply(String,s.slice(0,o))),a.join("")):String.fromCharCode.apply(String,s.slice(0,o))};$C.write=function(e,r,i){for(var n=i,a,s,o=0;o>6|192,r[i++]=a&63|128):(a&64512)===55296&&((s=e.charCodeAt(o+1))&64512)===56320?(a=65536+((a&1023)<<10)+(s&1023),++o,r[i++]=a>>18|240,r[i++]=a>>12&63|128,r[i++]=a>>6&63|128,r[i++]=a&63|128):(r[i++]=a>>12|224,r[i++]=a>>6&63|128,r[i++]=a&63|128);return i-n}});var mne=x((MMt,hne)=>{"use strict";hne.exports=qje;function qje(t,e,r){var i=r||8192,n=i>>>1,a=null,s=i;return function(c){if(c<1||c>n)return t(c);s+c>i&&(a=t(i),s=0);var u=e.call(a,s,s+=c);return s&7&&(s=(s|7)+1),u}}});var yne=x((CMt,gne)=>{"use strict";gne.exports=ha;var kb=Jd();function ha(t,e){this.lo=t>>>0,this.hi=e>>>0}var bm=ha.zero=new ha(0,0);bm.toNumber=function(){return 0};bm.zzEncode=bm.zzDecode=function(){return this};bm.length=function(){return 1};var Lje=ha.zeroHash="\0\0\0\0\0\0\0\0";ha.fromNumber=function(e){if(e===0)return bm;var r=e<0;r&&(e=-e);var i=e>>>0,n=(e-i)/4294967296>>>0;return r&&(n=~n>>>0,i=~i>>>0,++i>4294967295&&(i=0,++n>4294967295&&(n=0))),new ha(i,n)};ha.from=function(e){if(typeof e=="number")return ha.fromNumber(e);if(kb.isString(e))if(kb.Long)e=kb.Long.fromString(e);else return ha.fromNumber(parseInt(e,10));return e.low||e.high?new ha(e.low>>>0,e.high>>>0):bm};ha.prototype.toNumber=function(e){if(!e&&this.hi>>>31){var r=~this.lo+1>>>0,i=~this.hi>>>0;return r||(i=i+1>>>0),-(r+i*4294967296)}return this.lo+this.hi*4294967296};ha.prototype.toLong=function(e){return kb.Long?new kb.Long(this.lo|0,this.hi|0,Boolean(e)):{low:this.lo|0,high:this.hi|0,unsigned:Boolean(e)}};var Y0=String.prototype.charCodeAt;ha.fromHash=function(e){return e===Lje?bm:new ha((Y0.call(e,0)|Y0.call(e,1)<<8|Y0.call(e,2)<<16|Y0.call(e,3)<<24)>>>0,(Y0.call(e,4)|Y0.call(e,5)<<8|Y0.call(e,6)<<16|Y0.call(e,7)<<24)>>>0)};ha.prototype.toHash=function(){return String.fromCharCode(this.lo&255,this.lo>>>8&255,this.lo>>>16&255,this.lo>>>24,this.hi&255,this.hi>>>8&255,this.hi>>>16&255,this.hi>>>24)};ha.prototype.zzEncode=function(){var e=this.hi>>31;return this.hi=((this.hi<<1|this.lo>>>31)^e)>>>0,this.lo=(this.lo<<1^e)>>>0,this};ha.prototype.zzDecode=function(){var e=-(this.lo&1);return this.lo=((this.lo>>>1|this.hi<<31)^e)>>>0,this.hi=(this.hi>>>1^e)>>>0,this};ha.prototype.length=function(){var e=this.lo,r=(this.lo>>>28|this.hi<<4)>>>0,i=this.hi>>>24;return i===0?r===0?e<16384?e<128?1:2:e<2097152?3:4:r<16384?r<128?5:6:r<2097152?7:8:i<128?9:10}});var Jd=x(QC=>{"use strict";var It=QC;It.asPromise=WC();It.base64=rne();It.EventEmitter=nne();It.float=lne();It.inquire=ZC();It.utf8=pne();It.pool=mne();It.LongBits=yne();It.isNode=Boolean(typeof global<"u"&&global&&global.process&&global.process.versions&&global.process.versions.node);It.global=It.isNode&&global||typeof window<"u"&&window||typeof self<"u"&&self||QC;It.emptyArray=Object.freeze?Object.freeze([]):[];It.emptyObject=Object.freeze?Object.freeze({}):{};It.isInteger=Number.isInteger||function(e){return typeof e=="number"&&isFinite(e)&&Math.floor(e)===e};It.isString=function(e){return typeof e=="string"||e instanceof String};It.isObject=function(e){return e&&typeof e=="object"};It.isset=It.isSet=function(e,r){var i=e[r];return i!=null&&e.hasOwnProperty(r)?typeof i!="object"||(Array.isArray(i)?i.length:Object.keys(i).length)>0:!1};It.Buffer=function(){try{var t=It.inquire("buffer").Buffer;return t.prototype.utf8Write?t:null}catch{return null}}();It._Buffer_from=null;It._Buffer_allocUnsafe=null;It.newBuffer=function(e){return typeof e=="number"?It.Buffer?It._Buffer_allocUnsafe(e):new It.Array(e):It.Buffer?It._Buffer_from(e):typeof Uint8Array>"u"?e:new Uint8Array(e)};It.Array=typeof Uint8Array<"u"?Uint8Array:Array;It.Long=It.global.dcodeIO&&It.global.dcodeIO.Long||It.global.Long||It.inquire("long");It.key2Re=/^true|false|0|1$/;It.key32Re=/^-?(?:0|[1-9][0-9]*)$/;It.key64Re=/^(?:[\\x00-\\xff]{8}|-?(?:0|[1-9][0-9]*))$/;It.longToHash=function(e){return e?It.LongBits.from(e).toHash():It.LongBits.zeroHash};It.longFromHash=function(e,r){var i=It.LongBits.fromHash(e);return It.Long?It.Long.fromBits(i.lo,i.hi,r):i.toNumber(Boolean(r))};function vne(t,e,r){for(var i=Object.keys(e),n=0;n-1;--a)if(r[n[a]]===1&&this[n[a]]!==void 0&&this[n[a]]!==null)return n[a]}};It.oneOfSetter=function(e){return function(r){for(var i=0;i{"use strict";Sne.exports=Hr;var Ou=Jd(),YC,uw=Ou.LongBits,_ne=Ou.base64,wne=Ou.utf8;function Bb(t,e,r){this.fn=t,this.len=e,this.next=void 0,this.val=r}function tI(){}function Uje(t){this.head=t.head,this.tail=t.tail,this.len=t.len,this.next=t.states}function Hr(){this.len=0,this.head=new Bb(tI,0,0),this.tail=this.head,this.states=null}var xne=function(){return Ou.Buffer?function(){return(Hr.create=function(){return new YC})()}:function(){return new Hr}};Hr.create=xne();Hr.alloc=function(e){return new Ou.Array(e)};Ou.Array!==Array&&(Hr.alloc=Ou.pool(Hr.alloc,Ou.Array.prototype.subarray));Hr.prototype._push=function(e,r,i){return this.tail=this.tail.next=new Bb(e,r,i),this.len+=r,this};function rI(t,e,r){e[r]=t&255}function jje(t,e,r){for(;t>127;)e[r++]=t&127|128,t>>>=7;e[r]=t}function iI(t,e){this.len=t,this.next=void 0,this.val=e}iI.prototype=Object.create(Bb.prototype);iI.prototype.fn=jje;Hr.prototype.uint32=function(e){return this.len+=(this.tail=this.tail.next=new iI((e=e>>>0)<128?1:e<16384?2:e<2097152?3:e<268435456?4:5,e)).len,this};Hr.prototype.int32=function(e){return e<0?this._push(nI,10,uw.fromNumber(e)):this.uint32(e)};Hr.prototype.sint32=function(e){return this.uint32((e<<1^e>>31)>>>0)};function nI(t,e,r){for(;t.hi;)e[r++]=t.lo&127|128,t.lo=(t.lo>>>7|t.hi<<25)>>>0,t.hi>>>=7;for(;t.lo>127;)e[r++]=t.lo&127|128,t.lo=t.lo>>>7;e[r++]=t.lo}Hr.prototype.uint64=function(e){var r=uw.from(e);return this._push(nI,r.length(),r)};Hr.prototype.int64=Hr.prototype.uint64;Hr.prototype.sint64=function(e){var r=uw.from(e).zzEncode();return this._push(nI,r.length(),r)};Hr.prototype.bool=function(e){return this._push(rI,1,e?1:0)};function eI(t,e,r){e[r]=t&255,e[r+1]=t>>>8&255,e[r+2]=t>>>16&255,e[r+3]=t>>>24}Hr.prototype.fixed32=function(e){return this._push(eI,4,e>>>0)};Hr.prototype.sfixed32=Hr.prototype.fixed32;Hr.prototype.fixed64=function(e){var r=uw.from(e);return this._push(eI,4,r.lo)._push(eI,4,r.hi)};Hr.prototype.sfixed64=Hr.prototype.fixed64;Hr.prototype.float=function(e){return this._push(Ou.float.writeFloatLE,4,e)};Hr.prototype.double=function(e){return this._push(Ou.float.writeDoubleLE,8,e)};var Vje=Ou.Array.prototype.set?function(e,r,i){r.set(e,i)}:function(e,r,i){for(var n=0;n>>0;if(!r)return this._push(rI,1,0);if(Ou.isString(e)){var i=Hr.alloc(r=_ne.length(e));_ne.decode(e,i,0),e=i}return this.uint32(r)._push(Vje,r,e)};Hr.prototype.string=function(e){var r=wne.length(e);return r?this.uint32(r)._push(wne.write,r,e):this._push(rI,1,0)};Hr.prototype.fork=function(){return this.states=new Uje(this),this.head=this.tail=new Bb(tI,0,0),this.len=0,this};Hr.prototype.reset=function(){return this.states?(this.head=this.states.head,this.tail=this.states.tail,this.len=this.states.len,this.states=this.states.next):(this.head=this.tail=new Bb(tI,0,0),this.len=0),this};Hr.prototype.ldelim=function(){var e=this.head,r=this.tail,i=this.len;return this.reset().uint32(i),i&&(this.tail.next=e.next,this.tail=r,this.len+=i),this};Hr.prototype.finish=function(){for(var e=this.head.next,r=this.constructor.alloc(this.len),i=0;e;)e.fn(e.val,r,i),i+=e.len,e=e.next;return r};Hr._configure=function(t){YC=t,Hr.create=xne(),YC._configure()}});var Ane=x((kMt,Tne)=>{"use strict";Tne.exports=Xd;var Ene=cw();(Xd.prototype=Object.create(Ene.prototype)).constructor=Xd;var eh=Jd();function Xd(){Ene.call(this)}Xd._configure=function(){Xd.alloc=eh._Buffer_allocUnsafe,Xd.writeBytesBuffer=eh.Buffer&&eh.Buffer.prototype instanceof Uint8Array&&eh.Buffer.prototype.set.name==="set"?function(e,r,i){r.set(e,i)}:function(e,r,i){if(e.copy)e.copy(r,i,0,e.length);else for(var n=0;n>>0;return this.uint32(r),r&&this._push(Xd.writeBytesBuffer,r,e),this};function Hje(t,e,r){t.length<40?eh.utf8.write(t,e,r):e.utf8Write?e.utf8Write(t,r):e.write(t,r)}Xd.prototype.string=function(e){var r=eh.Buffer.byteLength(e);return this.uint32(r),r&&this._push(Hje,r,e),this};Xd._configure()});var lw=x((BMt,Cne)=>{"use strict";Cne.exports=xn;var Kd=Jd(),sI,Rne=Kd.LongBits,zje=Kd.utf8;function bc(t,e){return RangeError("index out of range: "+t.pos+" + "+(e||1)+" > "+t.len)}function xn(t){this.buf=t,this.pos=0,this.len=t.length}var Pne=typeof Uint8Array<"u"?function(e){if(e instanceof Uint8Array||Array.isArray(e))return new xn(e);throw Error("illegal buffer")}:function(e){if(Array.isArray(e))return new xn(e);throw Error("illegal buffer")},Mne=function(){return Kd.Buffer?function(r){return(xn.create=function(n){return Kd.Buffer.isBuffer(n)?new sI(n):Pne(n)})(r)}:Pne};xn.create=Mne();xn.prototype._slice=Kd.Array.prototype.subarray||Kd.Array.prototype.slice;xn.prototype.uint32=function(){var e=4294967295;return function(){if(e=(this.buf[this.pos]&127)>>>0,this.buf[this.pos++]<128||(e=(e|(this.buf[this.pos]&127)<<7)>>>0,this.buf[this.pos++]<128)||(e=(e|(this.buf[this.pos]&127)<<14)>>>0,this.buf[this.pos++]<128)||(e=(e|(this.buf[this.pos]&127)<<21)>>>0,this.buf[this.pos++]<128)||(e=(e|(this.buf[this.pos]&15)<<28)>>>0,this.buf[this.pos++]<128))return e;if((this.pos+=5)>this.len)throw this.pos=this.len,bc(this,10);return e}}();xn.prototype.int32=function(){return this.uint32()|0};xn.prototype.sint32=function(){var e=this.uint32();return e>>>1^-(e&1)|0};function aI(){var t=new Rne(0,0),e=0;if(this.len-this.pos>4){for(;e<4;++e)if(t.lo=(t.lo|(this.buf[this.pos]&127)<>>0,this.buf[this.pos++]<128)return t;if(t.lo=(t.lo|(this.buf[this.pos]&127)<<28)>>>0,t.hi=(t.hi|(this.buf[this.pos]&127)>>4)>>>0,this.buf[this.pos++]<128)return t;e=0}else{for(;e<3;++e){if(this.pos>=this.len)throw bc(this);if(t.lo=(t.lo|(this.buf[this.pos]&127)<>>0,this.buf[this.pos++]<128)return t}return t.lo=(t.lo|(this.buf[this.pos++]&127)<>>0,t}if(this.len-this.pos>4){for(;e<5;++e)if(t.hi=(t.hi|(this.buf[this.pos]&127)<>>0,this.buf[this.pos++]<128)return t}else for(;e<5;++e){if(this.pos>=this.len)throw bc(this);if(t.hi=(t.hi|(this.buf[this.pos]&127)<>>0,this.buf[this.pos++]<128)return t}throw Error("invalid varint encoding")}xn.prototype.bool=function(){return this.uint32()!==0};function dw(t,e){return(t[e-4]|t[e-3]<<8|t[e-2]<<16|t[e-1]<<24)>>>0}xn.prototype.fixed32=function(){if(this.pos+4>this.len)throw bc(this,4);return dw(this.buf,this.pos+=4)};xn.prototype.sfixed32=function(){if(this.pos+4>this.len)throw bc(this,4);return dw(this.buf,this.pos+=4)|0};function One(){if(this.pos+8>this.len)throw bc(this,8);return new Rne(dw(this.buf,this.pos+=4),dw(this.buf,this.pos+=4))}xn.prototype.float=function(){if(this.pos+4>this.len)throw bc(this,4);var e=Kd.float.readFloatLE(this.buf,this.pos);return this.pos+=4,e};xn.prototype.double=function(){if(this.pos+8>this.len)throw bc(this,4);var e=Kd.float.readDoubleLE(this.buf,this.pos);return this.pos+=8,e};xn.prototype.bytes=function(){var e=this.uint32(),r=this.pos,i=this.pos+e;if(i>this.len)throw bc(this,e);return this.pos+=e,Array.isArray(this.buf)?this.buf.slice(r,i):r===i?new this.buf.constructor(0):this._slice.call(this.buf,r,i)};xn.prototype.string=function(){var e=this.bytes();return zje.read(e,0,e.length)};xn.prototype.skip=function(e){if(typeof e=="number"){if(this.pos+e>this.len)throw bc(this,e);this.pos+=e}else do if(this.pos>=this.len)throw bc(this);while(this.buf[this.pos++]&128);return this};xn.prototype.skipType=function(t){switch(t){case 0:this.skip();break;case 1:this.skip(8);break;case 2:this.skip(this.uint32());break;case 3:for(;(t=this.uint32()&7)!==4;)this.skipType(t);break;case 5:this.skip(4);break;default:throw Error("invalid wire type "+t+" at offset "+this.pos)}return this};xn._configure=function(t){sI=t,xn.create=Mne(),sI._configure();var e=Kd.Long?"toLong":"toNumber";Kd.merge(xn.prototype,{int64:function(){return aI.call(this)[e](!1)},uint64:function(){return aI.call(this)[e](!0)},sint64:function(){return aI.call(this).zzDecode()[e](!1)},fixed64:function(){return One.call(this)[e](!0)},sfixed64:function(){return One.call(this)[e](!1)}})}});var Bne=x((FMt,kne)=>{"use strict";kne.exports=_m;var Nne=lw();(_m.prototype=Object.create(Nne.prototype)).constructor=_m;var Ine=Jd();function _m(t){Nne.call(this,t)}_m._configure=function(){Ine.Buffer&&(_m.prototype._slice=Ine.Buffer.prototype.slice)};_m.prototype.string=function(){var e=this.uint32();return this.buf.utf8Slice?this.buf.utf8Slice(this.pos,this.pos=Math.min(this.pos+e,this.len)):this.buf.toString("utf-8",this.pos,this.pos=Math.min(this.pos+e,this.len))};_m._configure()});var Dne=x((DMt,Fne)=>{"use strict";Fne.exports=Fb;var oI=Jd();(Fb.prototype=Object.create(oI.EventEmitter.prototype)).constructor=Fb;function Fb(t,e,r){if(typeof t!="function")throw TypeError("rpcImpl must be a function");oI.EventEmitter.call(this),this.rpcImpl=t,this.requestDelimited=Boolean(e),this.responseDelimited=Boolean(r)}Fb.prototype.rpcCall=function t(e,r,i,n,a){if(!n)throw TypeError("request must be specified");var s=this;if(!a)return oI.asPromise(t,s,e,r,i,n);if(!s.rpcImpl){setTimeout(function(){a(Error("already ended"))},0);return}try{return s.rpcImpl(e,r[s.requestDelimited?"encodeDelimited":"encode"](n).finish(),function(c,u){if(c)return s.emit("error",c,e),a(c);if(u===null){s.end(!0);return}if(!(u instanceof i))try{u=i[s.responseDelimited?"decodeDelimited":"decode"](u)}catch(f){return s.emit("error",f,e),a(f)}return s.emit("data",u,e),a(null,u)})}catch(o){s.emit("error",o,e),setTimeout(function(){a(o)},0);return}};Fb.prototype.end=function(e){return this.rpcImpl&&(e||this.rpcImpl(null,null,null),this.rpcImpl=null,this.emit("end").off()),this}});var uI=x(qne=>{"use strict";var Gje=qne;Gje.Service=Dne()});var cI=x((LMt,Lne)=>{"use strict";Lne.exports={}});var Vne=x(jne=>{"use strict";var $s=jne;$s.build="minimal";$s.Writer=cw();$s.BufferWriter=Ane();$s.Reader=lw();$s.BufferReader=Bne();$s.util=Jd();$s.rpc=uI();$s.roots=cI();$s.configure=Une;function Une(){$s.util._configure(),$s.Writer._configure($s.BufferWriter),$s.Reader._configure($s.BufferReader)}Une()});var zne=x((jMt,Hne)=>{"use strict";Hne.exports=dI;function dI(t,e){typeof t=="string"&&(e=t,t=void 0);var r=[];function i(a){if(typeof a!="string"){var s=n();if(dI.verbose&&console.log("codegen: "+s),s="return "+s,a){for(var o=Object.keys(a),c=new Array(o.length+1),u=new Array(o.length),f=0;f{"use strict";Gne.exports=Db;var Jje=WC(),Xje=ZC(),lI=Xje("fs");function Db(t,e,r){return typeof e=="function"?(r=e,e={}):e||(e={}),r?!e.xhr&&lI&&lI.readFile?lI.readFile(t,function(n,a){return n&&typeof XMLHttpRequest<"u"?Db.xhr(t,e,r):n?r(n):r(null,e.binary?a:a.toString("utf8"))}):Db.xhr(t,e,r):Jje(Db,this,t,e)}Db.xhr=function(e,r,i){var n=new XMLHttpRequest;n.onreadystatechange=function(){if(n.readyState===4){if(n.status!==0&&n.status!==200)return i(Error("status "+n.status));if(r.binary){var s=n.response;if(!s){s=[];for(var o=0;o{"use strict";var pI=Kne,Xne=pI.isAbsolute=function(e){return/^(?:\/|\w+:)/.test(e)},fI=pI.normalize=function(e){e=e.replace(/\\/g,"/").replace(/\/{2,}/g,"/");var r=e.split("/"),i=Xne(e),n="";i&&(n=r.shift()+"/");for(var a=0;a0&&r[a-1]!==".."?r.splice(--a,2):i?r.splice(a,1):++a:r[a]==="."?r.splice(a,1):++a;return n+r.join("/")};pI.resolve=function(e,r,i){return i||(r=fI(r)),Xne(r)?r:(i||(e=fI(e)),(e=e.replace(/(?:\/|^)[^/]+$/,"")).length?fI(e+"/"+r):r)}});var Py=x(Zne=>{"use strict";var qb=Zne,Kje=Ua(),Wje=["double","float","int32","uint32","sint32","fixed32","sfixed32","int64","uint64","sint64","fixed64","sfixed64","bool","string","bytes"];function Lb(t,e){var r=0,i={};for(e|=0;r{"use strict";Yne.exports=Ru;var fw=xm();((Ru.prototype=Object.create(fw.prototype)).constructor=Ru).className="Field";var $ne=Wd(),Qne=Py(),Fn=Ua(),hI,Zje=/^required|optional|repeated$/;Ru.fromJSON=function(e,r){return new Ru(e,r.id,r.type,r.rule,r.extend,r.options,r.comment)};function Ru(t,e,r,i,n,a,s){if(Fn.isObject(i)?(s=n,a=i,i=n=void 0):Fn.isObject(n)&&(s=a,a=n,n=void 0),fw.call(this,t,a),!Fn.isInteger(e)||e<0)throw TypeError("id must be a non-negative integer");if(!Fn.isString(r))throw TypeError("type must be a string");if(i!==void 0&&!Zje.test(i=i.toString().toLowerCase()))throw TypeError("rule must be a string rule");if(n!==void 0&&!Fn.isString(n))throw TypeError("extend must be a string");i==="proto3_optional"&&(i="optional"),this.rule=i&&i!=="optional"?i:void 0,this.type=r,this.id=e,this.extend=n||void 0,this.required=i==="required",this.optional=!this.required,this.repeated=i==="repeated",this.map=!1,this.message=null,this.partOf=null,this.typeDefault=null,this.defaultValue=null,this.long=Fn.Long?Qne.long[r]!==void 0:!1,this.bytes=r==="bytes",this.resolvedType=null,this.extensionField=null,this.declaringField=null,this._packed=null,this.comment=s}Object.defineProperty(Ru.prototype,"packed",{get:function(){return this._packed===null&&(this._packed=this.getOption("packed")!==!1),this._packed}});Ru.prototype.setOption=function(e,r,i){return e==="packed"&&(this._packed=null),fw.prototype.setOption.call(this,e,r,i)};Ru.prototype.toJSON=function(e){var r=e?Boolean(e.keepComments):!1;return Fn.toObject(["rule",this.rule!=="optional"&&this.rule||void 0,"type",this.type,"id",this.id,"extend",this.extend,"options",this.options,"comment",r?this.comment:void 0])};Ru.prototype.resolve=function(){if(this.resolved)return this;if((this.typeDefault=Qne.defaults[this.type])===void 0&&(this.resolvedType=(this.declaringField?this.declaringField.parent:this.parent).lookupTypeOrEnum(this.type),this.resolvedType instanceof hI?this.typeDefault=null:this.typeDefault=this.resolvedType.values[Object.keys(this.resolvedType.values)[0]]),this.options&&this.options.default!=null&&(this.typeDefault=this.options.default,this.resolvedType instanceof $ne&&typeof this.typeDefault=="string"&&(this.typeDefault=this.resolvedType.values[this.typeDefault])),this.options&&((this.options.packed===!0||this.options.packed!==void 0&&this.resolvedType&&!(this.resolvedType instanceof $ne))&&delete this.options.packed,Object.keys(this.options).length||(this.options=void 0)),this.long)this.typeDefault=Fn.Long.fromNumber(this.typeDefault,this.type.charAt(0)==="u"),Object.freeze&&Object.freeze(this.typeDefault);else if(this.bytes&&typeof this.typeDefault=="string"){var e;Fn.base64.test(this.typeDefault)?Fn.base64.decode(this.typeDefault,e=Fn.newBuffer(Fn.base64.length(this.typeDefault)),0):Fn.utf8.write(this.typeDefault,e=Fn.newBuffer(Fn.utf8.length(this.typeDefault)),0),this.typeDefault=e}return this.map?this.defaultValue=Fn.emptyObject:this.repeated?this.defaultValue=Fn.emptyArray:this.defaultValue=this.typeDefault,this.parent instanceof hI&&(this.parent.ctor.prototype[this.name]=this.defaultValue),fw.prototype.resolve.call(this)};Ru.d=function(e,r,i,n){return typeof r=="function"?r=Fn.decorateType(r).name:r&&typeof r=="object"&&(r=Fn.decorateEnum(r).name),function(s,o){Fn.decorateType(s.constructor).add(new Ru(o,e,r,i,{default:n}))}};Ru._configure=function(e){hI=e}});var Ub=x((JMt,rae)=>{"use strict";rae.exports=Mu;var hw=xm();((Mu.prototype=Object.create(hw.prototype)).constructor=Mu).className="OneOf";var eae=wm(),pw=Ua();function Mu(t,e,r,i){if(Array.isArray(e)||(r=e,e=void 0),hw.call(this,t,r),!(e===void 0||Array.isArray(e)))throw TypeError("fieldNames must be an Array");this.oneof=e||[],this.fieldsArray=[],this.comment=i}Mu.fromJSON=function(e,r){return new Mu(e,r.oneof,r.options,r.comment)};Mu.prototype.toJSON=function(e){var r=e?Boolean(e.keepComments):!1;return pw.toObject(["options",this.options,"oneof",this.oneof,"comment",r?this.comment:void 0])};function tae(t){if(t.parent)for(var e=0;e-1&&this.oneof.splice(r,1),e.partOf=null,this};Mu.prototype.onAdd=function(e){hw.prototype.onAdd.call(this,e);for(var r=this,i=0;i{"use strict";sae.exports=Kr;var mI=xm();((Kr.prototype=Object.create(mI.prototype)).constructor=Kr).className="Namespace";var iae=wm(),$je=Ub(),mw=Ua(),Oy,jb,Ry;Kr.fromJSON=function(e,r){return new Kr(e,r.options).addJSON(r.nested)};function nae(t,e){if(!!(t&&t.length)){for(var r={},i=0;ir)return!0}return!1};Kr.isReservedName=function(e,r){if(e){for(var i=0;i0;){var n=e.shift();if(i.nested&&i.nested[n]){if(i=i.nested[n],!(i instanceof Kr))throw Error("path conflicts with non-namespace objects")}else i.add(i=new Kr(n))}return r&&i.addJSON(r),i};Kr.prototype.resolveAll=function(){for(var e=this.nestedArray,r=0;r-1)return n}else if(n instanceof Kr&&(n=n.lookup(e.slice(1),r,!0)))return n}else for(var a=0;a{"use strict";oae.exports=Af;var gI=wm();((Af.prototype=Object.create(gI.prototype)).constructor=Af).className="MapField";var Qje=Py(),Vb=Ua();function Af(t,e,r,i,n,a){if(gI.call(this,t,e,i,void 0,void 0,n,a),!Vb.isString(r))throw TypeError("keyType must be a string");this.keyType=r,this.resolvedKeyType=null,this.map=!0}Af.fromJSON=function(e,r){return new Af(e,r.id,r.keyType,r.type,r.options,r.comment)};Af.prototype.toJSON=function(e){var r=e?Boolean(e.keepComments):!1;return Vb.toObject(["keyType",this.keyType,"type",this.type,"id",this.id,"extend",this.extend,"options",this.options,"comment",r?this.comment:void 0])};Af.prototype.resolve=function(){if(this.resolved)return this;if(Qje.mapKey[this.keyType]===void 0)throw Error("invalid key type: "+this.keyType);return gI.prototype.resolve.call(this)};Af.d=function(e,r,i){return typeof i=="function"?i=Vb.decorateType(i).name:i&&typeof i=="object"&&(i=Vb.decorateEnum(i).name),function(a,s){Vb.decorateType(a.constructor).add(new Af(s,e,r,i))}}});var bI=x((WMt,uae)=>{"use strict";uae.exports=Sm;var vI=xm();((Sm.prototype=Object.create(vI.prototype)).constructor=Sm).className="Method";var Cy=Ua();function Sm(t,e,r,i,n,a,s,o,c){if(Cy.isObject(n)?(s=n,n=a=void 0):Cy.isObject(a)&&(s=a,a=void 0),!(e===void 0||Cy.isString(e)))throw TypeError("type must be a string");if(!Cy.isString(r))throw TypeError("requestType must be a string");if(!Cy.isString(i))throw TypeError("responseType must be a string");vI.call(this,t,s),this.type=e||"rpc",this.requestType=r,this.requestStream=n?!0:void 0,this.responseType=i,this.responseStream=a?!0:void 0,this.resolvedRequestType=null,this.resolvedResponseType=null,this.comment=o,this.parsedOptions=c}Sm.fromJSON=function(e,r){return new Sm(e,r.type,r.requestType,r.responseType,r.requestStream,r.responseStream,r.options,r.comment,r.parsedOptions)};Sm.prototype.toJSON=function(e){var r=e?Boolean(e.keepComments):!1;return Cy.toObject(["type",this.type!=="rpc"&&this.type||void 0,"requestType",this.requestType,"requestStream",this.requestStream,"responseType",this.responseType,"responseStream",this.responseStream,"options",this.options,"comment",r?this.comment:void 0,"parsedOptions",this.parsedOptions])};Sm.prototype.resolve=function(){return this.resolved?this:(this.resolvedRequestType=this.parent.lookupType(this.requestType),this.resolvedResponseType=this.parent.lookupType(this.responseType),vI.prototype.resolve.call(this))}});var wI=x((ZMt,dae)=>{"use strict";dae.exports=Cu;var th=My();((Cu.prototype=Object.create(th.prototype)).constructor=Cu).className="Service";var _I=bI(),Hb=Ua(),Yje=uI();function Cu(t,e){th.call(this,t,e),this.methods={},this._methodsArray=null}Cu.fromJSON=function(e,r){var i=new Cu(e,r.options);if(r.methods)for(var n=Object.keys(r.methods),a=0;a{"use strict";lae.exports=Zd;var eVe=Jd();function Zd(t){if(t)for(var e=Object.keys(t),r=0;r{"use strict";pae.exports=iVe;var tVe=Wd(),Pf=Py(),fae=Ua();function rVe(t){return"missing required '"+t.name+"'"}function iVe(t){var e=fae.codegen(["r","l"],t.name+"$decode")("if(!(r instanceof Reader))")("r=Reader.create(r)")("var c=l===undefined?r.len:r.pos+l,m=new this.ctor"+(t.fieldsArray.filter(function(o){return o.map}).length?",k,value":""))("while(r.pos>>3){");for(var r=0;r>>3){")("case 1: k=r.%s(); break",i.keyType)("case 2:"),Pf.basic[n]===void 0?e("value=types[%i].decode(r,r.uint32())",r):e("value=r.%s()",n),e("break")("default:")("r.skipType(tag2&7)")("break")("}")("}"),Pf.long[i.keyType]!==void 0?e('%s[typeof k==="object"?util.longToHash(k):k]=value',a):e("%s[k]=value",a)):i.repeated?(e("if(!(%s&&%s.length))",a,a)("%s=[]",a),Pf.packed[n]!==void 0&&e("if((t&7)===2){")("var c2=r.uint32()+r.pos")("while(r.pos{"use strict";hae.exports=sVe;var nVe=Wd(),SI=Ua();function Iu(t,e){return t.name+": "+e+(t.repeated&&e!=="array"?"[]":t.map&&e!=="object"?"{k:"+t.keyType+"}":"")+" expected"}function EI(t,e,r,i){if(e.resolvedType)if(e.resolvedType instanceof nVe){t("switch(%s){",i)("default:")("return%j",Iu(e,"enum value"));for(var n=Object.keys(e.resolvedType.values),a=0;a{"use strict";var mae=gae,zb=Wd(),$d=Ua();function AI(t,e,r,i){if(e.resolvedType)if(e.resolvedType instanceof zb){t("switch(d%s){",i);for(var n=e.resolvedType.values,a=Object.keys(n),s=0;s>>0",i,i);break;case"int32":case"sint32":case"sfixed32":t("m%s=d%s|0",i,i);break;case"uint64":o=!0;case"int64":case"sint64":case"fixed64":case"sfixed64":t("if(util.Long)")("(m%s=util.Long.fromValue(d%s)).unsigned=%j",i,i,o)('else if(typeof d%s==="string")',i)("m%s=parseInt(d%s,10)",i,i)('else if(typeof d%s==="number")',i)("m%s=d%s",i,i)('else if(typeof d%s==="object")',i)("m%s=new util.LongBits(d%s.low>>>0,d%s.high>>>0).toNumber(%s)",i,i,i,o?"true":"");break;case"bytes":t('if(typeof d%s==="string")',i)("util.base64.decode(d%s,m%s=util.newBuffer(util.base64.length(d%s)),0)",i,i,i)("else if(d%s.length)",i)("m%s=d%s",i,i);break;case"string":t("m%s=String(d%s)",i,i);break;case"bool":t("m%s=Boolean(d%s)",i,i);break}}return t}mae.fromObject=function(e){var r=e.fieldsArray,i=$d.codegen(["d"],e.name+"$fromObject")("if(d instanceof this.ctor)")("return d");if(!r.length)return i("return new this.ctor");i("var m=new this.ctor");for(var n=0;n>>0,m%s.high>>>0).toNumber(%s):m%s",i,i,i,i,n?"true":"",i);break;case"bytes":t("d%s=o.bytes===String?util.base64.encode(m%s,0,m%s.length):o.bytes===Array?Array.prototype.slice.call(m%s):m%s",i,i,i,i,i);break;default:t("d%s=m%s",i,i);break}}return t}mae.toObject=function(e){var r=e.fieldsArray.slice().sort($d.compareFieldsById);if(!r.length)return $d.codegen()("return {}");for(var i=$d.codegen(["m","o"],e.name+"$toObject")("if(!o)")("o={}")("var d={}"),n=[],a=[],s=[],o=0;o{"use strict";var oVe=yae,uVe=gw();oVe[".google.protobuf.Any"]={fromObject:function(t){if(t&&t["@type"]){var e=t["@type"].substring(t["@type"].lastIndexOf("/")+1),r=this.lookup(e);if(r){var i=t["@type"].charAt(0)==="."?t["@type"].substr(1):t["@type"];return i.indexOf("/")===-1&&(i="/"+i),this.create({type_url:i,value:r.encode(r.fromObject(t)).finish()})}}return this.fromObject(t)},toObject:function(t,e){var r="type.googleapis.com/",i="",n="";if(e&&e.json&&t.type_url&&t.value){n=t.type_url.substring(t.type_url.lastIndexOf("/")+1),i=t.type_url.substring(0,t.type_url.lastIndexOf("/")+1);var a=this.lookup(n);a&&(t=a.decode(t.value))}if(!(t instanceof this.ctor)&&t instanceof uVe){var s=t.$type.toObject(t,e),o=t.$type.fullName[0]==="."?t.$type.fullName.substr(1):t.$type.fullName;return i===""&&(i=r),n=i+o,s["@type"]=n,s}return this.toObject(t,e)}}});var NI=x((rCt,bae)=>{"use strict";bae.exports=xi;var _c=My();((xi.prototype=Object.create(_c.prototype)).constructor=xi).className="Type";var cVe=Wd(),II=Ub(),yw=wm(),dVe=yI(),lVe=wI(),MI=gw(),CI=lw(),fVe=cw(),cs=Ua(),pVe=kI(),hVe=xI(),mVe=TI(),vae=OI(),gVe=RI();function xi(t,e){_c.call(this,t,e),this.fields={},this.oneofs=void 0,this.extensions=void 0,this.reserved=void 0,this.group=void 0,this._fieldsById=null,this._fieldsArray=null,this._oneofsArray=null,this._ctor=null}Object.defineProperties(xi.prototype,{fieldsById:{get:function(){if(this._fieldsById)return this._fieldsById;this._fieldsById={};for(var t=Object.keys(this.fields),e=0;e{"use strict";Eae.exports=Io;var _w=My();((Io.prototype=Object.create(_w.prototype)).constructor=Io).className="Root";var FI=wm(),wae=Wd(),yVe=Ub(),rh=Ua(),xae,BI,Gb;function Io(t){_w.call(this,"",t),this.deferred=[],this.files=[]}Io.fromJSON=function(e,r){return r||(r=new Io),e.options&&r.setOptions(e.options),r.addJSON(e.nested)};Io.prototype.resolvePath=rh.path.resolve;Io.prototype.fetch=rh.fetch;function Sae(){}Io.prototype.load=function t(e,r,i){typeof r=="function"&&(i=r,r=void 0);var n=this;if(!i)return rh.asPromise(t,n,e,r);var a=i===Sae;function s(b,T){if(!!i){var I=i;if(i=null,a)throw b;I(b,T)}}function o(b){var T=b.lastIndexOf("google/protobuf/");if(T>-1){var I=b.substring(T);if(I in Gb)return I}return null}function c(b,T){try{if(rh.isString(T)&&T.charAt(0)==="{"&&(T=JSON.parse(T)),!rh.isString(T))n.setOptions(T.options).addJSON(T.nested);else{BI.filename=b;var I=BI(T,n,r),L,U=0;if(I.imports)for(;U-1)){if(n.files.push(b),b in Gb){a?c(b,Gb[b]):(++f,setTimeout(function(){--f,c(b,Gb[b])}));return}if(a){var I;try{I=rh.fs.readFileSync(b).toString("utf8")}catch(L){T||s(L);return}c(b,I)}else++f,n.fetch(b,function(L,U){if(--f,!!i){if(L){T?f||s(null,n):s(L);return}c(b,U)}})}}var f=0;rh.isString(e)&&(e=[e]);for(var d=0,p;d-1&&this.deferred.splice(r,1)}}else if(e instanceof wae)bw.test(e.name)&&delete e.parent[e.name];else if(e instanceof _w){for(var i=0;i{"use strict";var Sn=Aae.exports=Jd(),Tae=cI(),qI,LI;Sn.codegen=zne();Sn.fetch=Jne();Sn.path=Wne();Sn.fs=Sn.inquire("fs");Sn.toArray=function(e){if(e){for(var r=Object.keys(e),i=new Array(r.length),n=0;n0)a[c]=n(a[c]||{},s,o);else{var u=a[c];u&&(o=[].concat(u).concat(o)),a[c]=o}return a}if(typeof e!="object")throw TypeError("dst must be an object");if(!r)throw TypeError("path must be specified");return r=r.split("."),n(e,r,i)};Object.defineProperty(Sn,"decorateRoot",{get:function(){return Tae.decorated||(Tae.decorated=new(DI()))}})});var xm=x((aCt,Pae)=>{"use strict";Pae.exports=No;No.className="ReflectionObject";var ww=Ua(),xw;function No(t,e){if(!ww.isString(t))throw TypeError("name must be a string");if(e&&!ww.isObject(e))throw TypeError("options must be an object");this.options=e,this.parsedOptions=null,this.name=t,this.parent=null,this.resolved=!1,this.comment=null,this.filename=null}Object.defineProperties(No.prototype,{root:{get:function(){for(var t=this;t.parent!==null;)t=t.parent;return t}},fullName:{get:function(){for(var t=[this.name],e=this.parent;e;)t.unshift(e.name),e=e.parent;return t.join(".")}}});No.prototype.toJSON=function(){throw Error()};No.prototype.onAdd=function(e){this.parent&&this.parent!==e&&this.parent.remove(this),this.parent=e,this.resolved=!1;var r=e.root;r instanceof xw&&r._handleAdd(this)};No.prototype.onRemove=function(e){var r=e.root;r instanceof xw&&r._handleRemove(this),this.parent=null,this.resolved=!1};No.prototype.resolve=function(){return this.resolved?this:(this.root instanceof xw&&(this.resolved=!0),this)};No.prototype.getOption=function(e){if(this.options)return this.options[e]};No.prototype.setOption=function(e,r,i){return(!i||!this.options||this.options[e]===void 0)&&((this.options||(this.options={}))[e]=r),this};No.prototype.setParsedOption=function(e,r,i){this.parsedOptions||(this.parsedOptions=[]);var n=this.parsedOptions;if(i){var a=n.find(function(c){return Object.prototype.hasOwnProperty.call(c,e)});if(a){var s=a[e];ww.setProperty(s,i,r)}else a={},a[e]=ww.setProperty({},i,r),n.push(a)}else{var o={};o[e]=r,n.push(o)}return this};No.prototype.setOptions=function(e,r){if(e)for(var i=Object.keys(e),n=0;n{"use strict";Mae.exports=Qd;var Oae=xm();((Qd.prototype=Object.create(Oae.prototype)).constructor=Qd).className="Enum";var Rae=My(),Sw=Ua();function Qd(t,e,r,i,n){if(Oae.call(this,t,r),e&&typeof e!="object")throw TypeError("values must be an object");if(this.valuesById={},this.values=Object.create(this.valuesById),this.comment=i,this.comments=n||{},this.reserved=void 0,e)for(var a=Object.keys(e),s=0;s{"use strict";Iae.exports=SVe;var xVe=Wd(),UI=Py(),jI=Ua();function Cae(t,e,r,i){return e.resolvedType.group?t("types[%i].encode(%s,w.uint32(%i)).uint32(%i)",r,i,(e.id<<3|3)>>>0,(e.id<<3|4)>>>0):t("types[%i].encode(%s,w.uint32(%i).fork()).ldelim()",r,i,(e.id<<3|2)>>>0)}function SVe(t){for(var e=jI.codegen(["m","w"],t.name+"$encode")("if(!w)")("w=Writer.create()"),r,i,n=t.fieldsArray.slice().sort(jI.compareFieldsById),r=0;r>>0,8|UI.mapKey[a.keyType],a.keyType),c===void 0?e("types[%i].encode(%s[ks[i]],w.uint32(18).fork()).ldelim().ldelim()",s,i):e(".uint32(%i).%s(%s[ks[i]]).ldelim()",16|c,o,i),e("}")("}")):a.repeated?(e("if(%s!=null&&%s.length){",i,i),a.packed&&UI.packed[o]!==void 0?e("w.uint32(%i).fork()",(a.id<<3|2)>>>0)("for(var i=0;i<%s.length;++i)",i)("w.%s(%s[i])",o,i)("w.ldelim()"):(e("for(var i=0;i<%s.length;++i)",i),c===void 0?Cae(e,a,s,i+"[i]"):e("w.uint32(%i).%s(%s[i])",(a.id<<3|c)>>>0,o,i)),e("}")):(a.optional&&e("if(%s!=null&&Object.hasOwnProperty.call(m,%j))",i,a.name),c===void 0?Cae(e,a,s,i):e("w.uint32(%i).%s(%s)",(a.id<<3|c)>>>0,o,i))}return e("return w")}});var kae=x((uCt,Nae)=>{"use strict";var Lr=Nae.exports=Vne();Lr.build="light";function EVe(t,e,r){return typeof e=="function"?(r=e,e=new Lr.Root):e||(e=new Lr.Root),e.load(t,r)}Lr.load=EVe;function TVe(t,e){return e||(e=new Lr.Root),e.loadSync(t)}Lr.loadSync=TVe;Lr.encoder=kI();Lr.decoder=xI();Lr.verifier=TI();Lr.converter=OI();Lr.ReflectionObject=xm();Lr.Namespace=My();Lr.Root=DI();Lr.Enum=Wd();Lr.Type=NI();Lr.Field=wm();Lr.OneOf=Ub();Lr.MapField=yI();Lr.Service=wI();Lr.Method=bI();Lr.Message=gw();Lr.wrappers=RI();Lr.types=Py();Lr.util=Ua();Lr.ReflectionObject._configure(Lr.Root);Lr.Namespace._configure(Lr.Type,Lr.Service,Lr.Enum);Lr.Root._configure(Lr.Type);Lr.Field._configure(Lr.Type)});var VI=x((cCt,Bae)=>{"use strict";Bae.exports=kae()});var Jb=x(ih=>{"use strict";Object.defineProperty(ih,"__esModule",{value:!0});ih.createMessageFromType=ih.createMessageFromName=ih.parseConfigure=void 0;var Fae=VI();function AVe(t){return typeof t=="string"?Fae.Root.fromJSON(JSON.parse(t)):Fae.Root.fromJSON(t)}ih.parseConfigure=AVe;var PVe=(t,e)=>{let r=t.lookupType(e),n=t.lookupEnum("MessageType").values[`MessageType_${e}`];return!n&&r.options&&(n=r.options["(wire_type)"]),{Message:r,messageType:n}};ih.createMessageFromName=PVe;var OVe=(t,e)=>{let i=t.lookupEnum("MessageType").valuesById[e].replace("MessageType_","");return{Message:t.lookupType(i),messageName:i}};ih.createMessageFromType=OVe});var HI=x(wc=>{"use strict";var RVe=wc&&wc.__awaiter||function(t,e,r,i){function n(a){return a instanceof r?a:new r(function(s){s(a)})}return new(r||(r=Promise))(function(a,s){function o(f){try{u(i.next(f))}catch(d){s(d)}}function c(f){try{u(i.throw(f))}catch(d){s(d)}}function u(f){f.done?a(f.value):n(f.value).then(o,c)}u((i=i.apply(t,e||[])).next())})};Object.defineProperty(wc,"__esModule",{value:!0});wc.buildAndSend=wc.buildBuffers=wc.buildOne=void 0;var Dae=Xie(),qae=$ie(),Lae=Jb();function MVe(t,e){return RVe(this,void 0,void 0,function*(){for(let r of e)yield t(r)})}function CVe(t,e,r){let{Message:i,messageType:n}=(0,Lae.createMessageFromName)(t,e),a=(0,Dae.encode)(i,r);return(0,qae.encode)(a,{addTrezorHeaders:!1,chunked:!1,messageType:n})}wc.buildOne=CVe;var IVe=(t,e,r)=>{let{Message:i,messageType:n}=(0,Lae.createMessageFromName)(t,e),a=(0,Dae.encode)(i,r);return(0,qae.encode)(a,{addTrezorHeaders:!0,chunked:!0,messageType:n})};wc.buildBuffers=IVe;function NVe(t,e,r,i){let n=(0,wc.buildBuffers)(t,r,i);return MVe(e,n)}wc.buildAndSend=NVe});var GI=x(nh=>{"use strict";var zI=nh&&nh.__awaiter||function(t,e,r,i){function n(a){return a instanceof r?a:new r(function(s){s(a)})}return new(r||(r=Promise))(function(a,s){function o(f){try{u(i.next(f))}catch(d){s(d)}}function c(f){try{u(i.throw(f))}catch(d){s(d)}}function u(f){f.done?a(f.value):n(f.value).then(o,c)}u((i=i.apply(t,e||[])).next())})};Object.defineProperty(nh,"__esModule",{value:!0});nh.receiveAndParse=nh.receiveOne=void 0;var Uae=xy(),jae=XC(),Vae=KC(),Hae=Jb();function kVe(t,e){let r=Uae.wrap(e,"hex"),{typeId:i,buffer:n}=Vae.decode(r),{Message:a,messageName:s}=(0,Hae.createMessageFromType)(t,i);return{message:jae.decode(a,n),type:s}}nh.receiveOne=kVe;function zae(t,e,r){return zI(this,void 0,void 0,function*(){if(t.offset>=r)return;let i=yield e();if(i==null)throw new Error("Received no data.");return t.append(i),zae(t,e,r)})}function BVe(t){return zI(this,void 0,void 0,function*(){let e=yield t(),{length:r,typeId:i,restBuffer:n}=Vae.decodeChunked(e),a=new Uae(r);return r&&a.append(n),yield zae(a,t,r),{received:a,typeId:i}})}function FVe(t,e){return zI(this,void 0,void 0,function*(){let{received:r,typeId:i}=yield BVe(e),{Message:n,messageName:a}=(0,Hae.createMessageFromType)(t,i);return r.reset(),{message:jae.decode(n,r),type:a}})}nh.receiveAndParse=FVe});var Kae=x(Xb=>{"use strict";var Of=Xb&&Xb.__awaiter||function(t,e,r,i){function n(a){return a instanceof r?a:new r(function(s){s(a)})}return new(r||(r=Promise))(function(a,s){function o(f){try{u(i.next(f))}catch(d){s(d)}}function c(f){try{u(i.throw(f))}catch(d){s(d)}}function u(f){f.done?a(f.value):n(f.value).then(o,c)}u((i=i.apply(t,e||[])).next())})};Object.defineProperty(Xb,"__esModule",{value:!0});var DVe=wn(),Ew=Fie(),Em=qie(),Gae=HI(),qVe=Jb(),Jae=GI(),Xae=nw(),JI=class{constructor(e,r){this.configured=!1,this.debug=!1,this.name="BridgeTransport",this.requestNeeded=!1,this.stopped=!1,this.version="",this.url=e??Xae.DEFAULT_URL,this.newestVersionUrl=r??Xae.DEFAULT_VERSION_URL}_post(e){return this.stopped?Promise.reject("Transport stopped."):(0,Ew.request)(Object.assign(Object.assign({},e),{method:"POST",url:this.url+e.url,skipContentTypeHeader:!0}))}init(e){return Of(this,void 0,void 0,function*(){this.debug=!!e,yield this._silentInit()})}_silentInit(){return Of(this,void 0,void 0,function*(){let e=yield(0,Ew.request)({url:this.url,method:"POST"}),r=Em.info(e);this.version=r.version;let i=typeof this.bridgeVersion=="string"?this.bridgeVersion:Em.version(yield(0,Ew.request)({url:`${this.newestVersionUrl}?${Date.now()}`,method:"GET"}));this.isOutdated=DVe.versionUtils.isNewer(i,this.version)})}configure(e){let r=(0,qVe.parseConfigure)(e);this.configured=!0,this._messages=r}listen(e){return Of(this,void 0,void 0,function*(){if(e==null)throw new Error("Bridge v2 does not support listen without previous.");let r=yield this._post({url:"/listen",body:e});return Em.devices(r)})}enumerate(){return Of(this,void 0,void 0,function*(){let e=yield this._post({url:"/enumerate"});return Em.devices(e)})}_acquireMixed(e,r){let i=e.previous==null?"null":e.previous,n=`${r?"/debug":""}/acquire/${e.path}/${i}`;return this._post({url:n})}acquire(e,r){return Of(this,void 0,void 0,function*(){let i=yield this._acquireMixed(e,r);return Em.acquire(i)})}release(e,r,i){return Of(this,void 0,void 0,function*(){let n=this._post({url:`${i?"/debug":""}/release/${e}`});r||(yield n)})}call(e,r,i,n){return Of(this,void 0,void 0,function*(){if(this._messages==null)throw new Error("Transport not configured.");let a=this._messages,o=(0,Gae.buildOne)(a,r,i).toString("hex"),c=yield this._post({url:`${n?"/debug":""}/call/${e}`,body:o});if(typeof c!="string")throw new Error("Returning data is not string.");let u=(0,Jae.receiveOne)(a,c);return Em.call(u)})}post(e,r,i,n){return Of(this,void 0,void 0,function*(){if(this._messages==null)throw new Error("Transport not configured.");let a=this._messages,s=(0,Gae.buildOne)(a,r,i).toString("hex");yield this._post({url:`${n?"/debug":""}/post/${e}`,body:s})})}read(e,r){return Of(this,void 0,void 0,function*(){if(this._messages==null)throw new Error("Transport not configured.");let i=this._messages,n=yield this._post({url:`${r?"/debug":""}/read/${e}`});if(typeof n!="string")throw new Error("Returning data is not string.");let a=(0,Jae.receiveOne)(i,n);return Em.call(a)})}static setFetch(e,r){(0,Ew.setFetch)(e,r)}requestDevice(){return Promise.reject()}setBridgeLatestUrl(e){this.newestVersionUrl=e}setBridgeLatestVersion(e){this.bridgeVersion=e}stop(){this.stopped=!0}};Xb.default=JI});var XI=x(Iy=>{"use strict";Object.defineProperty(Iy,"__esModule",{value:!0});Iy.resolveTimeoutPromise=Iy.create=void 0;function LVe(){let t=()=>{},e=()=>{},r=new Promise((n,a)=>{t=n,e=a}),i=r.then(()=>{throw new Error("Promise is always rejecting")});return i.catch(()=>{}),{resolve:t,reject:e,promise:r,rejectingPromise:i}}Iy.create=LVe;function UVe(t,e){return new Promise(r=>{setTimeout(()=>{r(e)},t)})}Iy.resolveTimeoutPromise=UVe});var ese=x(Tw=>{"use strict";Object.defineProperty(Tw,"__esModule",{value:!0});Tw.postModuleMessage=void 0;var jVe=XI(),xc={},Rf={},Kb=null,Wae=Promise.resolve();function KI(){let t=(0,jVe.create)();Kb=t,setTimeout(()=>t.reject(new Error("Timed out")),10*1e3)}function WI(t){Kb?.resolve(t)}function ZI(){return Kb==null?Promise.reject(new Error("???")):Kb.promise}function Ny(t){Wae=Wae.then(()=>t()).catch(()=>{})}function Yd(t,e,r){r.postMessage({id:e,message:t})}function VVe(t,e){return KI(),Yd({type:"ok"},t,e),ZI().then(r=>{Yd({type:"ok"},r.id,e)})}function Zae(t){WI({id:t})}function HVe(t){let e=null;if(Object.keys(xc).forEach(i=>{xc[i]===t&&(e=i)}),e==null)return Promise.resolve();let r=e;return delete xc[r],delete Rf[r],Promise.resolve()}function zVe(t,e,r,i){let n=null,a=e?Rf:xc,s=e?xc:Rf;if(Object.keys(a).forEach(u=>{a[u]===t&&(n=u)}),n==null)return Yd({type:"double-release"},r,i),Promise.resolve();let o=n,c=s[o];return KI(),Yd({type:"path",path:o,otherSession:c},r,i),ZI().then(u=>{delete a[o],Yd({type:"ok"},u.id,i)})}function $ae(t,e,r){if(r!=null){let i={};r.forEach(n=>{i[n.path]=!0}),Object.keys(xc).forEach(n=>{xc[n]||delete xc[n]}),Object.keys(Rf).forEach(n=>{Rf[n]||delete Rf[n]})}return Yd({type:"sessions",debugSessions:Rf,normalSessions:xc},t,e),Promise.resolve()}var Qae=0;function GVe(t){WI({good:!0,id:t})}function JVe(t){WI({good:!1,id:t})}function XVe(t,e,r,i,n){let a=!1,s=n?Rf:xc,o=n?xc:Rf,c=s[t];return c==null?a=i!=null:a=i!==c,a?(Yd({type:"wrong-previous-session"},e,r),Promise.resolve()):(KI(),Yd({type:"other-session",otherSession:o[t]},e,r),ZI().then(u=>{if(u.good){Qae++;let f=Qae.toString();n&&(f=`debug${f}`),s[t]=f,Yd({type:"session-number",number:f},u.id,r)}else Yd({type:"ok"},u.id,r)}))}function Yae({id:t,message:e},r){if(e.type==="acquire-intent"){let{path:i}=e,{previous:n}=e,{debug:a}=e;Ny(()=>XVe(i,t,r,n,a))}if(e.type==="acquire-done"&&GVe(t),e.type==="acquire-failed"&&JVe(t),e.type==="get-sessions"&&Ny(()=>$ae(t,r)),e.type==="get-sessions-and-disconnect"){let{devices:i}=e;Ny(()=>$ae(t,r,i))}if(e.type==="release-onclose"){let{session:i}=e;Ny(()=>HVe(i))}if(e.type==="release-intent"){let{session:i}=e,{debug:n}=e;Ny(()=>zVe(i,n,t,r))}e.type==="release-done"&&Zae(t),e.type==="enumerate-intent"&&Ny(()=>VVe(t,r)),e.type==="enumerate-done"&&Zae(t)}typeof onconnect<"u"&&(onconnect=function(t){let e=t.ports[0];e.onmessage=function(r){Yae(r.data,e)}});function KVe({id:t,message:e},r){Yae({id:t,message:e},{postMessage:r})}Tw.postModuleMessage=KVe});var ase=x((gCt,nse)=>{"use strict";var Aw,Zt,tse={'"':'"',"\\":"\\","/":"/",b:"\b",f:"\f",n:` +`,r:"\r",t:" "},$I;function ah(t){throw{name:"SyntaxError",message:t,at:Aw,text:$I}}function zr(t){return t&&t!==Zt&&ah("Expected '"+t+"' instead of '"+Zt+"'"),Zt=$I.charAt(Aw),Aw+=1,Zt}function rse(){var t,e="";for(Zt==="-"&&(e="-",zr("-"));Zt>="0"&&Zt<="9";)e+=Zt,zr();if(Zt===".")for(e+=".";zr()&&Zt>="0"&&Zt<="9";)e+=Zt;if(Zt==="e"||Zt==="E")for(e+=Zt,zr(),(Zt==="-"||Zt==="+")&&(e+=Zt,zr());Zt>="0"&&Zt<="9";)e+=Zt,zr();return t=Number(e),isFinite(t)||ah("Bad number"),t}function ise(){var t,e,r="",i;if(Zt==='"')for(;zr();){if(Zt==='"')return zr(),r;if(Zt==="\\")if(zr(),Zt==="u"){for(i=0,e=0;e<4&&(t=parseInt(zr(),16),!!isFinite(t));e+=1)i=i*16+t;r+=String.fromCharCode(i)}else if(typeof tse[Zt]=="string")r+=tse[Zt];else break;else r+=Zt}ah("Bad string")}function Mf(){for(;Zt&&Zt<=" ";)zr()}function WVe(){switch(Zt){case"t":return zr("t"),zr("r"),zr("u"),zr("e"),!0;case"f":return zr("f"),zr("a"),zr("l"),zr("s"),zr("e"),!1;case"n":return zr("n"),zr("u"),zr("l"),zr("l"),null;default:ah("Unexpected '"+Zt+"'")}}function ZVe(){var t=[];if(Zt==="["){if(zr("["),Mf(),Zt==="]")return zr("]"),t;for(;Zt;){if(t.push(Pw()),Mf(),Zt==="]")return zr("]"),t;zr(","),Mf()}}ah("Bad array")}function $Ve(){var t,e={};if(Zt==="{"){if(zr("{"),Mf(),Zt==="}")return zr("}"),e;for(;Zt;){if(t=ise(),Mf(),zr(":"),Object.prototype.hasOwnProperty.call(e,t)&&ah('Duplicate key "'+t+'"'),e[t]=Pw(),Mf(),Zt==="}")return zr("}"),e;zr(","),Mf()}}ah("Bad object")}function Pw(){switch(Mf(),Zt){case"{":return $Ve();case"[":return ZVe();case'"':return ise();case"-":return rse();default:return Zt>="0"&&Zt<="9"?rse():WVe()}}nse.exports=function(t,e){var r;return $I=t,Aw=0,Zt=" ",r=Pw(),Mf(),Zt&&ah("Syntax error"),typeof e=="function"?function i(n,a){var s,o,c=n[a];if(c&&typeof c=="object")for(s in Pw)Object.prototype.hasOwnProperty.call(c,s)&&(o=i(c,s),typeof o>"u"?delete c[s]:c[s]=o);return e.call(n,a,c)}({"":r},""):r}});var ose=x((yCt,sse)=>{"use strict";var QI=/[\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,ko,Ow,QVe={"\b":"\\b"," ":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"},Tm;function YI(t){return QI.lastIndex=0,QI.test(t)?'"'+t.replace(QI,function(e){var r=QVe[e];return typeof r=="string"?r:"\\u"+("0000"+e.charCodeAt(0).toString(16)).slice(-4)})+'"':'"'+t+'"'}function Rw(t,e){var r,i,n,a,s=ko,o,c=e[t];switch(c&&typeof c=="object"&&typeof c.toJSON=="function"&&(c=c.toJSON(t)),typeof Tm=="function"&&(c=Tm.call(e,t,c)),typeof c){case"string":return YI(c);case"number":return isFinite(c)?String(c):"null";case"boolean":case"null":return String(c);case"object":if(!c)return"null";if(ko+=Ow,o=[],Object.prototype.toString.apply(c)==="[object Array]"){for(a=c.length,r=0;r{"use strict";eN.parse=ase();eN.stringify=ose()});var dse=x((bCt,cse)=>{"use strict";var Mw=typeof JSON<"u"?JSON:use(),YVe=Array.isArray||function(t){return{}.toString.call(t)==="[object Array]"},eHe=Object.keys||function(t){var e=Object.prototype.hasOwnProperty||function(){return!0},r=[];for(var i in t)e.call(t,i)&&r.push(i);return r};cse.exports=function(t,e){e||(e={}),typeof e=="function"&&(e={cmp:e});var r=e.space||"";typeof r=="number"&&(r=Array(r+1).join(" "));var i=typeof e.cycles=="boolean"?e.cycles:!1,n=e.replacer||function(o,c){return c},a=e.cmp&&function(o){return function(c){return function(u,f){var d={key:u,value:c[u]},p={key:f,value:c[f]};return o(d,p)}}}(e.cmp),s=[];return function o(c,u,f,d){var p=r?` +`+new Array(d+1).join(r):"",b=r?": ":":";if(f&&f.toJSON&&typeof f.toJSON=="function"&&(f=f.toJSON()),f=n.call(c,u,f),f!==void 0){if(typeof f!="object"||f===null)return Mw.stringify(f);if(YVe(f)){for(var U=[],T=0;T{"use strict";var Cf=Wb&&Wb.__awaiter||function(t,e,r,i){function n(a){return a instanceof r?a:new r(function(s){s(a)})}return new(r||(r=Promise))(function(a,s){function o(f){try{u(i.next(f))}catch(d){s(d)}}function c(f){try{u(i.throw(f))}catch(d){s(d)}}function u(f){f.done?a(f.value):n(f.value).then(o,c)}u((i=i.apply(t,e||[])).next())})};Object.defineProperty(Wb,"__esModule",{value:!0});var Cw=XI(),tHe=Jb(),lse=HI(),fse=GI(),rHe=ese(),iHe=dse();function pse(t){if(t==null)return"null";let e=t.map(r=>{let{path:i}=r,n=r.session==null?null:r.session;return{path:i,session:n}});return iHe(e)}function nHe(t,e){return Number.isNaN(parseInt(t.path,10))?t.pathe.path?1:0:parseInt(t.path,10)-parseInt(e.path,10)}var aHe=60,sHe=500,tN=class{constructor(e,r){if(this.configured=!1,this.debug=!1,this.deferedDebugOnRelease={},this.deferedNormalOnRelease={},this.defereds={},this.isOutdated=!1,this.latestId=0,this.name="WebUsbTransport",this.requestNeeded=!1,this.sharedWorker=null,this.stopped=!1,this._lastStringified="",this.plugin=e,this.version=e.version,this._sharedWorkerFactory=r,!this.plugin.allowsWriteAndEnumerate)throw new Error("Plugin with shared connections cannot disallow write and enumerate")}enumerate(){return this._silentEnumerate()}_silentEnumerate(){return Cf(this,void 0,void 0,function*(){yield this.sendToWorker({type:"enumerate-intent"});let e=[];try{e=yield this.plugin.enumerate()}finally{yield this.sendToWorker({type:"enumerate-done"})}let r=yield this.sendToWorker({type:"get-sessions-and-disconnect",devices:e});if(r.type!=="sessions")throw new Error("Wrong reply");let{debugSessions:i}=r,{normalSessions:n}=r,a=e.map(s=>{let o=n[s.path],c=i[s.path];return{path:s.path,session:o,debug:s.debug,debugSession:c}});return this._releaseDisconnected(a),a.sort(nHe)})}_releaseDisconnected(e){let r={};e.forEach(i=>{i.session!=null&&(r[i.session]=!0)}),Object.keys(this.deferedDebugOnRelease).forEach(i=>{r[i]==null&&this._releaseCleanup(i,!0)}),Object.keys(this.deferedNormalOnRelease).forEach(i=>{r[i]==null&&this._releaseCleanup(i,!1)})}listen(e){let r=pse(e),i=e==null?this._lastStringified:r;return this._runIter(0,i)}_runIter(e,r){return Cf(this,void 0,void 0,function*(){let i=yield this._silentEnumerate(),n=pse(i);return n!==r||e===aHe?(this._lastStringified=n,i):(yield(0,Cw.resolveTimeoutPromise)(sHe,null),this._runIter(e+1,n))})}acquire(e,r){return Cf(this,void 0,void 0,function*(){let i=yield this.sendToWorker({type:"acquire-intent",path:e.path,previous:e.previous,debug:r});if(i.type==="wrong-previous-session")throw new Error("wrong previous session");if(i.type!=="other-session")throw new Error("Strange reply");let n=i.otherSession==null;try{yield this.plugin.connect(e.path,r,n)}catch(o){throw yield this.sendToWorker({type:"acquire-failed"}),o}let a=yield this.sendToWorker({type:"acquire-done"});if(a.type!=="session-number")throw new Error("Strange reply.");let s=a.number;return r?this.deferedDebugOnRelease[s]=(0,Cw.create)():this.deferedNormalOnRelease[s]=(0,Cw.create)(),s})}release(e,r,i){return Cf(this,void 0,void 0,function*(){if(r&&!i){this.sendToWorker({type:"release-onclose",session:e});return}let n=yield this.sendToWorker({type:"release-intent",session:e,debug:i});if(n.type==="double-release")throw new Error("Trying to double release.");if(n.type!=="path")throw new Error("Strange reply.");let{path:a}=n,{otherSession:s}=n,o=s==null;this._releaseCleanup(e,i);try{yield this.plugin.disconnect(a,i,o)}catch{}yield this.sendToWorker({type:"release-done"})})}_releaseCleanup(e,r){let i=r?this.deferedDebugOnRelease:this.deferedNormalOnRelease;i[e]!=null&&(i[e].reject(new Error("Device released or disconnected")),delete i[e])}configure(e){let r=(0,tHe.parseConfigure)(e);this._messages=r,this.configured=!0}_sendLowlevel(e,r){return i=>this.plugin.send(e,i,r)}_receiveLowlevel(e,r){return()=>this.plugin.receive(e,r)}messages(){if(this._messages==null)throw new Error("Transport not configured.");return this._messages}doWithSession(e,r,i){return Cf(this,void 0,void 0,function*(){let n=yield this.sendToWorker({type:"get-sessions"});if(n.type!=="sessions")throw new Error("Wrong reply");let a=r?n.debugSessions:n.normalSessions,s=null;if(Object.keys(a).forEach(f=>{a[f]===e&&(s=f)}),s==null)throw new Error("Session not available.");let c=yield i(s),u=r?this.deferedDebugOnRelease[e]:this.deferedNormalOnRelease[e];return Promise.race([u.rejectingPromise,c])})}call(e,r,i,n){let a=s=>Cf(this,void 0,void 0,function*(){let o=this.messages();return yield(0,lse.buildAndSend)(o,this._sendLowlevel(s,n),r,i),yield(0,fse.receiveAndParse)(o,this._receiveLowlevel(s,n))});return this.doWithSession(e,n,a)}post(e,r,i,n){let a=s=>Cf(this,void 0,void 0,function*(){let o=this.messages();yield(0,lse.buildAndSend)(o,this._sendLowlevel(s,n),r,i)});return this.doWithSession(e,n,a)}read(e,r){let i=n=>Cf(this,void 0,void 0,function*(){let a=this.messages();return yield(0,fse.receiveAndParse)(a,this._receiveLowlevel(n,r))});return this.doWithSession(e,r,i)}init(e){return Cf(this,void 0,void 0,function*(){this.debug=!!e,this.requestNeeded=this.plugin.requestNeeded,yield this.plugin.init(e),this._sharedWorkerFactory!=null&&(this.sharedWorker=this._sharedWorkerFactory(),this.sharedWorker!=null&&(this.sharedWorker.port.onmessage=r=>{this.receiveFromWorker(r.data)}))})}requestDevice(){return this.plugin.requestDevice()}sendToWorker(e){if(this.stopped)return Promise.reject("Transport stopped.");this.latestId++;let r=this.latestId;return this.defereds[r]=(0,Cw.create)(),this.sharedWorker!=null?this.sharedWorker.port.postMessage({id:r,message:e}):(0,rHe.postModuleMessage)({id:r,message:e},i=>this.receiveFromWorker(i)),this.defereds[r].promise}receiveFromWorker(e){this.defereds[e.id].resolve(e.message),delete this.defereds[e.id]}stop(){this.stopped=!0,this.sharedWorker=null}};Wb.default=tN});var mse=x(Zb=>{"use strict";var Iw=Zb&&Zb.__awaiter||function(t,e,r,i){function n(a){return a instanceof r?a:new r(function(s){s(a)})}return new(r||(r=Promise))(function(a,s){function o(f){try{u(i.next(f))}catch(d){s(d)}}function c(f){try{u(i.throw(f))}catch(d){s(d)}}function u(f){f.done?a(f.value):n(f.value).then(o,c)}u((i=i.apply(t,e||[])).next())})};Object.defineProperty(Zb,"__esModule",{value:!0});var rN=class{constructor(e){this._availableTransports=[],this.activeName="",this.configured=!1,this.debug=!1,this.isOutdated=!1,this.name="FallbackTransport",this.requestNeeded=!1,this.transports=[],this.version="",this.transports=e}_tryInitTransports(){return Iw(this,void 0,void 0,function*(){let e=[],r=null;for(let i of this.transports)try{yield i.init(this.debug),e.push(i)}catch(n){r=n}if(e.length===0)throw r||new Error("No transport could be initialized.");return e})}_tryConfigureTransports(e){return Iw(this,void 0,void 0,function*(){let r=null;for(let i of this._availableTransports)try{return yield i.configure(e),i}catch(n){r=n}throw r||new Error("No transport could be initialized.")})}init(e){return Iw(this,void 0,void 0,function*(){this.debug=!!e;let r=yield this._tryInitTransports();this._availableTransports=r,this.version=r[0].version,this.configured=!1})}configure(e){return Iw(this,void 0,void 0,function*(){let r=this._tryConfigureTransports(e);this.activeTransport=yield r,this.configured=this.activeTransport.configured,this.version=this.activeTransport.version,this.activeName=this.activeTransport.name,this.requestNeeded=this.activeTransport.requestNeeded,this.isOutdated=this.activeTransport.isOutdated})}enumerate(){return this.activeTransport.enumerate()}listen(e){return this.activeTransport.listen(e)}acquire(e,r){return this.activeTransport.acquire(e,r)}release(e,r,i){return this.activeTransport.release(e,r,i)}call(e,r,i,n){return this.activeTransport.call(e,r,i,n)}post(e,r,i,n){return this.activeTransport.post(e,r,i,n)}read(e,r){return this.activeTransport.read(e,r)}requestDevice(){return this.activeTransport.requestDevice()}setBridgeLatestUrl(e){for(let r of this.transports)r.setBridgeLatestUrl(e)}setBridgeLatestVersion(e){for(let r of this.transports)r.setBridgeLatestVersion(e)}stop(){for(let e of this.transports)e.stop()}};Zb.default=rN});var iN=x(Nw=>{"use strict";Object.defineProperty(Nw,"__esModule",{value:!0});Nw.TREZOR_DESCS=void 0;Nw.TREZOR_DESCS=[{vendorId:21324,productId:1},{vendorId:4617,productId:21440},{vendorId:4617,productId:21441}]});var bse=x($b=>{"use strict";var sh=$b&&$b.__awaiter||function(t,e,r,i){function n(a){return a instanceof r?a:new r(function(s){s(a)})}return new(r||(r=Promise))(function(a,s){function o(f){try{u(i.next(f))}catch(d){s(d)}}function c(f){try{u(i.throw(f))}catch(d){s(d)}}function u(f){f.done?a(f.value):n(f.value).then(o,c)}u((i=i.apply(t,e||[])).next())})};Object.defineProperty($b,"__esModule",{value:!0});var oHe=require("events"),gse=iN(),uHe=21324,cHe=1,dHe=0,lHe=1,yse=1,vse=2,nN=class{constructor(){this.allowsWriteAndEnumerate=!0,this.configurationId=cHe,this.debug=!1,this.debugEndpointId=vse,this.debugInterfaceId=yse,this.name="WebUsbPlugin",this.normalEndpointId=lHe,this.normalInterfaceId=dHe,this.requestNeeded=!0,this.unreadableHidDevice=!1,this.unreadableHidDeviceChange=new oHe.EventEmitter,this.version="",this._lastDevices=[]}init(e){this.debug=!!e;let{usb:r}=navigator;if(r)this.usb=r;else throw new Error("WebUSB is not available on this browser.")}_deviceHasDebugLink(e){try{let r=e.configurations[0].interfaces[yse].alternates[0];return r.interfaceClass===255&&r.endpoints[0].endpointNumber===vse}catch{return!1}}_deviceIsHid(e){return e.vendorId===uHe}_listDevices(){return sh(this,void 0,void 0,function*(){let e=0,i=(yield this.usb.getDevices()).filter(o=>gse.TREZOR_DESCS.some(u=>o.vendorId===u.vendorId&&o.productId===u.productId)),n=i.filter(o=>this._deviceIsHid(o)),a=i.filter(o=>!this._deviceIsHid(o));this._lastDevices=a.map(o=>{let{serialNumber:c}=o,u=c==null||c===""?"bootloader":c;u==="bootloader"&&(e++,u+=e);let f=this._deviceHasDebugLink(o);return{path:u,device:o,debug:f}});let s=this.unreadableHidDevice;return this.unreadableHidDevice=n.length>0,s!==this.unreadableHidDevice&&this.unreadableHidDeviceChange.emit("change"),this._lastDevices})}enumerate(){return sh(this,void 0,void 0,function*(){return(yield this._listDevices()).map(e=>({path:e.path,debug:e.debug}))})}_findDevice(e){let r=this._lastDevices.find(i=>i.path===e);if(r==null)throw new Error("Action was interrupted.");return r.device}send(e,r,i){return sh(this,void 0,void 0,function*(){let n=yield this._findDevice(e),a=new Uint8Array(64);a[0]=63,a.set(new Uint8Array(r),1),n.opened||(yield this.connect(e,i,!1));let s=i?this.debugEndpointId:this.normalEndpointId;return n.transferOut(s,a).then(()=>{})})}receive(e,r){return sh(this,void 0,void 0,function*(){let i=yield this._findDevice(e),n=r?this.debugEndpointId:this.normalEndpointId;try{i.opened||(yield this.connect(e,r,!1));let a=yield i.transferIn(n,64);if(!a.data)throw new Error("no data");return a.data.byteLength===0?this.receive(e,r):a.data.buffer.slice(1)}catch(a){throw a.message==="Device unavailable."?new Error("Action was interrupted."):a}})}connect(e,r,i){return sh(this,void 0,void 0,function*(){for(let n=0;n<5;n++){n>0&&(yield new Promise(a=>setTimeout(()=>a(void 0),n*200)));try{return yield this._connectIn(e,r,i)}catch(a){if(n===4)throw a}}})}_connectIn(e,r,i){return sh(this,void 0,void 0,function*(){let n=yield this._findDevice(e);if(yield n.open(),i){yield n.selectConfiguration(this.configurationId);try{yield n.reset()}catch{}}let a=r?this.debugInterfaceId:this.normalInterfaceId;yield n.claimInterface(a)})}disconnect(e,r,i){return sh(this,void 0,void 0,function*(){let n=yield this._findDevice(e),a=r?this.debugInterfaceId:this.normalInterfaceId;yield n.releaseInterface(a),i&&(yield n.close())})}requestDevice(){return sh(this,void 0,void 0,function*(){yield this.usb.requestDevice({filters:gse.TREZOR_DESCS})})}};$b.default=nN});var Mse=x((ECt,Rse)=>{Rse.exports=Si;var Nu=null;try{Nu=new WebAssembly.Instance(new WebAssembly.Module(new Uint8Array([0,97,115,109,1,0,0,0,1,13,2,96,0,1,127,96,4,127,127,127,127,1,127,3,7,6,0,1,1,1,1,1,6,6,1,127,1,65,0,11,7,50,6,3,109,117,108,0,1,5,100,105,118,95,115,0,2,5,100,105,118,95,117,0,3,5,114,101,109,95,115,0,4,5,114,101,109,95,117,0,5,8,103,101,116,95,104,105,103,104,0,0,10,191,1,6,4,0,35,0,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,126,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,127,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,128,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,129,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,130,34,4,66,32,135,167,36,0,32,4,167,11])),{}).exports}catch{}function Si(t,e,r){this.low=t|0,this.high=e|0,this.unsigned=!!r}Si.prototype.__isLong__;Object.defineProperty(Si.prototype,"__isLong__",{value:!0});function Ys(t){return(t&&t.__isLong__)===!0}Si.isLong=Ys;var _se={},wse={};function Pm(t,e){var r,i,n;return e?(t>>>=0,(n=0<=t&&t<256)&&(i=wse[t],i)?i:(r=Ei(t,(t|0)<0?-1:0,!0),n&&(wse[t]=r),r)):(t|=0,(n=-128<=t&&t<128)&&(i=_se[t],i)?i:(r=Ei(t,t<0?-1:0,!1),n&&(_se[t]=r),r))}Si.fromInt=Pm;function ku(t,e){if(isNaN(t))return e?Am:Bu;if(e){if(t<0)return Am;if(t>=Tse)return Ose}else{if(t<=-Sse)return Qs;if(t+1>=Sse)return Pse}return t<0?ku(-t,e).neg():Ei(t%By|0,t/By|0,e)}Si.fromNumber=ku;function Ei(t,e,r){return new Si(t,e,r)}Si.fromBits=Ei;var kw=Math.pow;function sN(t,e,r){if(t.length===0)throw Error("empty string");if(t==="NaN"||t==="Infinity"||t==="+Infinity"||t==="-Infinity")return Bu;if(typeof e=="number"?(r=e,e=!1):e=!!e,r=r||10,r<2||360)throw Error("interior hyphen");if(i===0)return sN(t.substring(1),e,r).neg();for(var n=ku(kw(r,8)),a=Bu,s=0;s>>0:this.low};nt.toNumber=function(){return this.unsigned?(this.high>>>0)*By+(this.low>>>0):this.high*By+(this.low>>>0)};nt.toString=function(e){if(e=e||10,e<2||36>>0,f=u.toString(e);if(s=c,s.isZero())return f+o;for(;f.length<6;)f="0"+f;o=""+f+o}};nt.getHighBits=function(){return this.high};nt.getHighBitsUnsigned=function(){return this.high>>>0};nt.getLowBits=function(){return this.low};nt.getLowBitsUnsigned=function(){return this.low>>>0};nt.getNumBitsAbs=function(){if(this.isNegative())return this.eq(Qs)?64:this.neg().getNumBitsAbs();for(var e=this.high!=0?this.high:this.low,r=31;r>0&&(e&1<=0};nt.isOdd=function(){return(this.low&1)===1};nt.isEven=function(){return(this.low&1)===0};nt.equals=function(e){return Ys(e)||(e=Sc(e)),this.unsigned!==e.unsigned&&this.high>>>31===1&&e.high>>>31===1?!1:this.high===e.high&&this.low===e.low};nt.eq=nt.equals;nt.notEquals=function(e){return!this.eq(e)};nt.neq=nt.notEquals;nt.ne=nt.notEquals;nt.lessThan=function(e){return this.comp(e)<0};nt.lt=nt.lessThan;nt.lessThanOrEqual=function(e){return this.comp(e)<=0};nt.lte=nt.lessThanOrEqual;nt.le=nt.lessThanOrEqual;nt.greaterThan=function(e){return this.comp(e)>0};nt.gt=nt.greaterThan;nt.greaterThanOrEqual=function(e){return this.comp(e)>=0};nt.gte=nt.greaterThanOrEqual;nt.ge=nt.greaterThanOrEqual;nt.compare=function(e){if(Ys(e)||(e=Sc(e)),this.eq(e))return 0;var r=this.isNegative(),i=e.isNegative();return r&&!i?-1:!r&&i?1:this.unsigned?e.high>>>0>this.high>>>0||e.high===this.high&&e.low>>>0>this.low>>>0?-1:1:this.sub(e).isNegative()?-1:1};nt.comp=nt.compare;nt.negate=function(){return!this.unsigned&&this.eq(Qs)?Qs:this.not().add(ky)};nt.neg=nt.negate;nt.add=function(e){Ys(e)||(e=Sc(e));var r=this.high>>>16,i=this.high&65535,n=this.low>>>16,a=this.low&65535,s=e.high>>>16,o=e.high&65535,c=e.low>>>16,u=e.low&65535,f=0,d=0,p=0,b=0;return b+=a+u,p+=b>>>16,b&=65535,p+=n+c,d+=p>>>16,p&=65535,d+=i+o,f+=d>>>16,d&=65535,f+=r+s,f&=65535,Ei(p<<16|b,f<<16|d,this.unsigned)};nt.subtract=function(e){return Ys(e)||(e=Sc(e)),this.add(e.neg())};nt.sub=nt.subtract;nt.multiply=function(e){if(this.isZero())return Bu;if(Ys(e)||(e=Sc(e)),Nu){var r=Nu.mul(this.low,this.high,e.low,e.high);return Ei(r,Nu.get_high(),this.unsigned)}if(e.isZero())return Bu;if(this.eq(Qs))return e.isOdd()?Qs:Bu;if(e.eq(Qs))return this.isOdd()?Qs:Bu;if(this.isNegative())return e.isNegative()?this.neg().mul(e.neg()):this.neg().mul(e).neg();if(e.isNegative())return this.mul(e.neg()).neg();if(this.lt(Ese)&&e.lt(Ese))return ku(this.toNumber()*e.toNumber(),this.unsigned);var i=this.high>>>16,n=this.high&65535,a=this.low>>>16,s=this.low&65535,o=e.high>>>16,c=e.high&65535,u=e.low>>>16,f=e.low&65535,d=0,p=0,b=0,T=0;return T+=s*f,b+=T>>>16,T&=65535,b+=a*f,p+=b>>>16,b&=65535,b+=s*u,p+=b>>>16,b&=65535,p+=n*f,d+=p>>>16,p&=65535,p+=a*u,d+=p>>>16,p&=65535,p+=s*c,d+=p>>>16,p&=65535,d+=i*f+n*u+a*c+s*o,d&=65535,Ei(b<<16|T,d<<16|p,this.unsigned)};nt.mul=nt.multiply;nt.divide=function(e){if(Ys(e)||(e=Sc(e)),e.isZero())throw Error("division by zero");if(Nu){if(!this.unsigned&&this.high===-2147483648&&e.low===-1&&e.high===-1)return this;var r=(this.unsigned?Nu.div_u:Nu.div_s)(this.low,this.high,e.low,e.high);return Ei(r,Nu.get_high(),this.unsigned)}if(this.isZero())return this.unsigned?Am:Bu;var i,n,a;if(this.unsigned){if(e.unsigned||(e=e.toUnsigned()),e.gt(this))return Am;if(e.gt(this.shru(1)))return Ase;a=Am}else{if(this.eq(Qs)){if(e.eq(ky)||e.eq(aN))return Qs;if(e.eq(Qs))return ky;var s=this.shr(1);return i=s.div(e).shl(1),i.eq(Bu)?e.isNegative()?ky:aN:(n=this.sub(e.mul(i)),a=i.add(n.div(e)),a)}else if(e.eq(Qs))return this.unsigned?Am:Bu;if(this.isNegative())return e.isNegative()?this.neg().div(e.neg()):this.neg().div(e).neg();if(e.isNegative())return this.div(e.neg()).neg();a=Bu}for(n=this;n.gte(e);){i=Math.max(1,Math.floor(n.toNumber()/e.toNumber()));for(var o=Math.ceil(Math.log(i)/Math.LN2),c=o<=48?1:kw(2,o-48),u=ku(i),f=u.mul(e);f.isNegative()||f.gt(n);)i-=c,u=ku(i,this.unsigned),f=u.mul(e);u.isZero()&&(u=ky),a=a.add(u),n=n.sub(f)}return a};nt.div=nt.divide;nt.modulo=function(e){if(Ys(e)||(e=Sc(e)),Nu){var r=(this.unsigned?Nu.rem_u:Nu.rem_s)(this.low,this.high,e.low,e.high);return Ei(r,Nu.get_high(),this.unsigned)}return this.sub(this.div(e).mul(e))};nt.mod=nt.modulo;nt.rem=nt.modulo;nt.not=function(){return Ei(~this.low,~this.high,this.unsigned)};nt.and=function(e){return Ys(e)||(e=Sc(e)),Ei(this.low&e.low,this.high&e.high,this.unsigned)};nt.or=function(e){return Ys(e)||(e=Sc(e)),Ei(this.low|e.low,this.high|e.high,this.unsigned)};nt.xor=function(e){return Ys(e)||(e=Sc(e)),Ei(this.low^e.low,this.high^e.high,this.unsigned)};nt.shiftLeft=function(e){return Ys(e)&&(e=e.toInt()),(e&=63)===0?this:e<32?Ei(this.low<>>32-e,this.unsigned):Ei(0,this.low<>>e|this.high<<32-e,this.high>>e,this.unsigned):Ei(this.high>>e-32,this.high>=0?0:-1,this.unsigned)};nt.shr=nt.shiftRight;nt.shiftRightUnsigned=function(e){if(Ys(e)&&(e=e.toInt()),e&=63,e===0)return this;var r=this.high;if(e<32){var i=this.low;return Ei(i>>>e|r<<32-e,r>>>e,this.unsigned)}else return e===32?Ei(r,0,this.unsigned):Ei(r>>>e-32,0,this.unsigned)};nt.shru=nt.shiftRightUnsigned;nt.shr_u=nt.shiftRightUnsigned;nt.toSigned=function(){return this.unsigned?Ei(this.low,this.high,!1):this};nt.toUnsigned=function(){return this.unsigned?this:Ei(this.low,this.high,!0)};nt.toBytes=function(e){return e?this.toBytesLE():this.toBytesBE()};nt.toBytesLE=function(){var e=this.high,r=this.low;return[r&255,r>>>8&255,r>>>16&255,r>>>24,e&255,e>>>8&255,e>>>16&255,e>>>24]};nt.toBytesBE=function(){var e=this.high,r=this.low;return[e>>>24,e>>>16&255,e>>>8&255,e&255,r>>>24,r>>>16&255,r>>>8&255,r&255]};Si.fromBytes=function(e,r,i){return i?Si.fromBytesLE(e,r):Si.fromBytesBE(e,r)};Si.fromBytesLE=function(e,r){return new Si(e[0]|e[1]<<8|e[2]<<16|e[3]<<24,e[4]|e[5]<<8|e[6]<<16|e[7]<<24,r)};Si.fromBytesBE=function(e,r){return new Si(e[4]<<24|e[5]<<16|e[6]<<8|e[7],e[0]<<24|e[1]<<16|e[2]<<8|e[3],r)}});var Cse=x(Bw=>{"use strict";Object.defineProperty(Bw,"__esModule",{value:!0});Bw.Messages=void 0;Bw.Messages=DC()});var oN=x(Om=>{"use strict";Object.defineProperty(Om,"__esModule",{value:!0});Om.Messages=Om.TREZOR_DESCS=void 0;var pHe=Kae(),hHe=hse(),mHe=mse(),gHe=bse(),Ise=VI(),yHe=Mse();Ise.util.Long=yHe;Ise.configure();var vHe=iN();Object.defineProperty(Om,"TREZOR_DESCS",{enumerable:!0,get:function(){return vHe.TREZOR_DESCS}});var bHe=Cse();Object.defineProperty(Om,"Messages",{enumerable:!0,get:function(){return bHe.Messages}});Om.default={BridgeV2:pHe.default,Fallback:mHe.default,Lowlevel:hHe.default,WebUsb:gHe.default}});var Qb=x(Fw=>{"use strict";Object.defineProperty(Fw,"__esModule",{value:!0});Fw.config=void 0;var _He=oN();Fw.config={webusb:_He.TREZOR_DESCS,whitelist:[{origin:"chrome-extension://imloifkgjagghnncjkhggdhalmcnfklk",priority:1},{origin:"chrome-extension://niebkpllfhmpfbffbfifagfgoamhpflf",priority:1},{origin:"file://",priority:2},{origin:"trezor.io",priority:0},{origin:"sldev.cz",priority:0},{origin:"localhost",priority:0},{origin:"trezoriovpjcahpzkrewelclulmszwbqpzmzgub37gbcjlvluxtruqad.onion",priority:0}],management:[{origin:"trezor.io"},{origin:"sldev.cz"},{origin:"localhost"}],knownHosts:[{origin:"imloifkgjagghnncjkhggdhalmcnfklk",label:"Trezor Password Manager (Develop)",icon:""},{origin:"niebkpllfhmpfbffbfifagfgoamhpflf",label:"Trezor Password Manager",icon:""},{origin:"trezor-connect@trezor.io",label:"Trezor Connect FF Extension",icon:""},{origin:"efbfhenfhihgdcmnfdkhaphjdnopihlf",label:"Trezor Connect Chrome Extension",icon:""},{origin:"mnpfhpndmjholfdlhpkjfmjkgppmodaf",label:"MetaMask",icon:""},{origin:"webextension@metamask.io",label:"MetaMask",icon:""},{origin:"file://",label:" ",icon:""}],onionDomains:{"trezor.io":"trezoriovpjcahpzkrewelclulmszwbqpzmzgub37gbcjlvluxtruqad.onion"},assets:[{name:"coins",url:"./data/coins.json"},{name:"bridge",url:"./data/bridge/releases.json"},{name:"firmware-t1",url:"./data/firmware/1/releases.json"},{name:"firmware-t2",url:"./data/firmware/2/releases.json"}],messages:"./data/messages/messages.json",supportedBrowsers:{chrome:{version:59,download:"https://www.google.com/chrome/",update:"https://support.google.com/chrome/answer/95414"},chromium:{version:59,download:"https://www.chromium.org/",update:"https://www.chromium.org/"},electron:{version:0,download:"https://www.electronjs.org/",update:"https://www.electronjs.org/"},firefox:{version:54,download:"https://www.mozilla.org/en-US/firefox/new/",update:"https://support.mozilla.org/en-US/kb/update-firefox-latest-version"}},supportedFirmware:[{coin:["xrp","txrp"],methods:["getAccountInfo"],min:["0","2.1.0"],max:void 0,comment:["Since firmware 2.1.0 there is a new protobuf field 'destination_tag' in RippleSignTx"]},{coin:["bnb"],min:["1.9.0","2.3.0"],comment:["There were protobuf backwards incompatible changes with introduction of 1.9.0/2.3.0 firmwares"]},{coin:["eth","trop","tgor"],min:["1.8.0","2.1.0"],comment:["There were protobuf backwards incompatible changes."]},{methods:["rippleGetAddress","rippleSignTransaction"],min:["0","2.1.0"],comment:["Since firmware 2.1.0 there is a new protobuf field 'destination_tag' in RippleSignTx"]},{methods:["cardanoGetAddress","cardanoGetPublicKey"],min:["0","2.3.2"],comment:["Shelley fork support since firmware 2.3.2"]},{methods:["cardanoSignTransaction"],min:["0","2.4.2"],comment:["Non-streamed signing no longer supported"]},{methods:["cardanoGetNativeScriptHash"],min:["0","2.4.3"],comment:["Cardano GetNativeScriptHash call added in 2.4.3"]},{methods:["tezosSignTransaction"],min:["0","2.1.8"],comment:["Since 2.1.8 there are new protobuf fields in tezos transaction (Babylon fork)"]},{methods:["stellarSignTransaction"],min:["1.9.0","2.3.0"],comment:["There were protobuf backwards incompatible changes with introduction of 1.9.0/2.3.0 firmwares"]},{capabilities:["replaceTransaction","amountUnit"],min:["1.9.4","2.3.5"],comment:["new sign tx process since 1.9.4/2.3.5"]},{capabilities:["decreaseOutput"],min:["1.10.0","2.4.0"],comment:["allow reduce output in RBF transaction since 1.10.0/2.4.0"]},{capabilities:["eip1559"],min:["1.10.4","2.4.2"],comment:["new eth transaction pricing mechanism (EIP1559) since 1.10.4/2.4.2"]},{capabilities:["taproot","signMessageNoScriptType"],min:["1.10.4","2.4.3"],comment:["new btc accounts taproot since 1.10.4/2.4.3 (BTC + TEST only)","SignMessage with no_script_type support"]},{coin:["dcr","tdcr"],methods:["signTransaction"],min:["1.10.1","2.4.0"],comment:[""]},{methods:["ethereumSignTypedData"],min:["1.10.5","2.4.3"],comment:["EIP-712 typed signing support added in 1.10.5/2.4.3"]},{capabilities:["eip712-domain-only"],min:["1.10.6","2.4.4"],comment:["EIP-712 domain-only signing, when primaryType=EIP712Domain"]},{capabilities:["coinjoin"],methods:["authorizeCoinjoin","getOwnershipId","getOwnershipProof"],min:["0","2.5.3"]}]}});var kse=x((OCt,Nse)=>{"use strict";Nse.exports=(t,e={})=>{if(!t)return;let r={key:["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","anchor"],q:{name:"queryKey",parser:/(?:^|&)([^&=]*)=?([^&]*)/g},parser:{strict:/^(?:([^:/?#]+):)?(?:\/\/((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:/?#]*)(?::(\d*))?))?((((?:[^?#/]*\/)*)([^?#]*))(?:\?([^#]*))?(?:#(.*))?)/,loose:/^(?:(?![^:@]+:[^:@/]*@)([^:/?#.]+):)?(?:\/\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#/]*\.[^?#/.]+(?:[?#]|$)))*\/?)?([^?#/]*))(?:\?([^#]*))?(?:#(.*))?)/}},i=r.parser[e.strictMode?"strict":"loose"].exec(t),n={},a=14;for(;a--;)n[r.key[a]]=i[a]||"";return n[r.q.name]={},n[r.key[12]].replace(r.q.parser,function(s,o,c){o&&(n[r.q.name][o]=c)}),n}});var Dse=x((RCt,Fse)=>{"use strict";var on={};Fse.exports=on;function Bse(t){return t<0?-1:1}function wHe(t){return t%1===.5&&(t&1)===0?Math.floor(t):Math.round(t)}function oh(t,e){e.unsigned||--t;let r=e.unsigned?0:-Math.pow(2,t),i=Math.pow(2,t)-1,n=e.moduloBitLength?Math.pow(2,e.moduloBitLength):Math.pow(2,t),a=e.moduloBitLength?Math.pow(2,e.moduloBitLength-1):Math.pow(2,t-1);return function(s,o){o||(o={});let c=+s;if(o.enforceRange){if(!Number.isFinite(c))throw new TypeError("Argument is not a finite number");if(c=Bse(c)*Math.floor(Math.abs(c)),ci)throw new TypeError("Argument is not in byte range");return c}if(!isNaN(c)&&o.clamp)return c=wHe(c),ci&&(c=i),c;if(!Number.isFinite(c)||c===0)return 0;if(c=Bse(c)*Math.floor(Math.abs(c)),c=c%n,!e.unsigned&&c>=a)return c-n;if(e.unsigned){if(c<0)c+=n;else if(c===-0)return 0}return c}}on.void=function(){};on.boolean=function(t){return!!t};on.byte=oh(8,{unsigned:!1});on.octet=oh(8,{unsigned:!0});on.short=oh(16,{unsigned:!1});on["unsigned short"]=oh(16,{unsigned:!0});on.long=oh(32,{unsigned:!1});on["unsigned long"]=oh(32,{unsigned:!0});on["long long"]=oh(32,{unsigned:!1,moduloBitLength:64});on["unsigned long long"]=oh(32,{unsigned:!0,moduloBitLength:64});on.double=function(t){let e=+t;if(!Number.isFinite(e))throw new TypeError("Argument is not a finite floating-point value");return e};on["unrestricted double"]=function(t){let e=+t;if(isNaN(e))throw new TypeError("Argument is NaN");return e};on.float=on.double;on["unrestricted float"]=on["unrestricted double"];on.DOMString=function(t,e){return e||(e={}),e.treatNullAsEmptyString&&t===null?"":String(t)};on.ByteString=function(t,e){let r=String(t),i;for(let n=0;(i=r.codePointAt(n))!==void 0;++n)if(i>255)throw new TypeError("Argument is not a valid bytestring");return r};on.USVString=function(t){let e=String(t),r=e.length,i=[];for(let n=0;n57343)i.push(String.fromCodePoint(a));else if(56320<=a&&a<=57343)i.push(String.fromCodePoint(65533));else if(n===r-1)i.push(String.fromCodePoint(65533));else{let s=e.charCodeAt(n+1);if(56320<=s&&s<=57343){let o=a&1023,c=s&1023;i.push(String.fromCodePoint((2<<15)+(2<<9)*o+c)),++n}else i.push(String.fromCodePoint(65533))}}return i.join("")};on.Date=function(t,e){if(!(t instanceof Date))throw new TypeError("Argument is not a Date object");if(!isNaN(t))return t};on.RegExp=function(t,e){return t instanceof RegExp||(t=new RegExp(t)),t}});var qse=x((MCt,uh)=>{"use strict";uh.exports.mixin=function(e,r){let i=Object.getOwnPropertyNames(r);for(let n=0;n{xHe.exports=[[[0,44],"disallowed_STD3_valid"],[[45,46],"valid"],[[47,47],"disallowed_STD3_valid"],[[48,57],"valid"],[[58,64],"disallowed_STD3_valid"],[[65,65],"mapped",[97]],[[66,66],"mapped",[98]],[[67,67],"mapped",[99]],[[68,68],"mapped",[100]],[[69,69],"mapped",[101]],[[70,70],"mapped",[102]],[[71,71],"mapped",[103]],[[72,72],"mapped",[104]],[[73,73],"mapped",[105]],[[74,74],"mapped",[106]],[[75,75],"mapped",[107]],[[76,76],"mapped",[108]],[[77,77],"mapped",[109]],[[78,78],"mapped",[110]],[[79,79],"mapped",[111]],[[80,80],"mapped",[112]],[[81,81],"mapped",[113]],[[82,82],"mapped",[114]],[[83,83],"mapped",[115]],[[84,84],"mapped",[116]],[[85,85],"mapped",[117]],[[86,86],"mapped",[118]],[[87,87],"mapped",[119]],[[88,88],"mapped",[120]],[[89,89],"mapped",[121]],[[90,90],"mapped",[122]],[[91,96],"disallowed_STD3_valid"],[[97,122],"valid"],[[123,127],"disallowed_STD3_valid"],[[128,159],"disallowed"],[[160,160],"disallowed_STD3_mapped",[32]],[[161,167],"valid",[],"NV8"],[[168,168],"disallowed_STD3_mapped",[32,776]],[[169,169],"valid",[],"NV8"],[[170,170],"mapped",[97]],[[171,172],"valid",[],"NV8"],[[173,173],"ignored"],[[174,174],"valid",[],"NV8"],[[175,175],"disallowed_STD3_mapped",[32,772]],[[176,177],"valid",[],"NV8"],[[178,178],"mapped",[50]],[[179,179],"mapped",[51]],[[180,180],"disallowed_STD3_mapped",[32,769]],[[181,181],"mapped",[956]],[[182,182],"valid",[],"NV8"],[[183,183],"valid"],[[184,184],"disallowed_STD3_mapped",[32,807]],[[185,185],"mapped",[49]],[[186,186],"mapped",[111]],[[187,187],"valid",[],"NV8"],[[188,188],"mapped",[49,8260,52]],[[189,189],"mapped",[49,8260,50]],[[190,190],"mapped",[51,8260,52]],[[191,191],"valid",[],"NV8"],[[192,192],"mapped",[224]],[[193,193],"mapped",[225]],[[194,194],"mapped",[226]],[[195,195],"mapped",[227]],[[196,196],"mapped",[228]],[[197,197],"mapped",[229]],[[198,198],"mapped",[230]],[[199,199],"mapped",[231]],[[200,200],"mapped",[232]],[[201,201],"mapped",[233]],[[202,202],"mapped",[234]],[[203,203],"mapped",[235]],[[204,204],"mapped",[236]],[[205,205],"mapped",[237]],[[206,206],"mapped",[238]],[[207,207],"mapped",[239]],[[208,208],"mapped",[240]],[[209,209],"mapped",[241]],[[210,210],"mapped",[242]],[[211,211],"mapped",[243]],[[212,212],"mapped",[244]],[[213,213],"mapped",[245]],[[214,214],"mapped",[246]],[[215,215],"valid",[],"NV8"],[[216,216],"mapped",[248]],[[217,217],"mapped",[249]],[[218,218],"mapped",[250]],[[219,219],"mapped",[251]],[[220,220],"mapped",[252]],[[221,221],"mapped",[253]],[[222,222],"mapped",[254]],[[223,223],"deviation",[115,115]],[[224,246],"valid"],[[247,247],"valid",[],"NV8"],[[248,255],"valid"],[[256,256],"mapped",[257]],[[257,257],"valid"],[[258,258],"mapped",[259]],[[259,259],"valid"],[[260,260],"mapped",[261]],[[261,261],"valid"],[[262,262],"mapped",[263]],[[263,263],"valid"],[[264,264],"mapped",[265]],[[265,265],"valid"],[[266,266],"mapped",[267]],[[267,267],"valid"],[[268,268],"mapped",[269]],[[269,269],"valid"],[[270,270],"mapped",[271]],[[271,271],"valid"],[[272,272],"mapped",[273]],[[273,273],"valid"],[[274,274],"mapped",[275]],[[275,275],"valid"],[[276,276],"mapped",[277]],[[277,277],"valid"],[[278,278],"mapped",[279]],[[279,279],"valid"],[[280,280],"mapped",[281]],[[281,281],"valid"],[[282,282],"mapped",[283]],[[283,283],"valid"],[[284,284],"mapped",[285]],[[285,285],"valid"],[[286,286],"mapped",[287]],[[287,287],"valid"],[[288,288],"mapped",[289]],[[289,289],"valid"],[[290,290],"mapped",[291]],[[291,291],"valid"],[[292,292],"mapped",[293]],[[293,293],"valid"],[[294,294],"mapped",[295]],[[295,295],"valid"],[[296,296],"mapped",[297]],[[297,297],"valid"],[[298,298],"mapped",[299]],[[299,299],"valid"],[[300,300],"mapped",[301]],[[301,301],"valid"],[[302,302],"mapped",[303]],[[303,303],"valid"],[[304,304],"mapped",[105,775]],[[305,305],"valid"],[[306,307],"mapped",[105,106]],[[308,308],"mapped",[309]],[[309,309],"valid"],[[310,310],"mapped",[311]],[[311,312],"valid"],[[313,313],"mapped",[314]],[[314,314],"valid"],[[315,315],"mapped",[316]],[[316,316],"valid"],[[317,317],"mapped",[318]],[[318,318],"valid"],[[319,320],"mapped",[108,183]],[[321,321],"mapped",[322]],[[322,322],"valid"],[[323,323],"mapped",[324]],[[324,324],"valid"],[[325,325],"mapped",[326]],[[326,326],"valid"],[[327,327],"mapped",[328]],[[328,328],"valid"],[[329,329],"mapped",[700,110]],[[330,330],"mapped",[331]],[[331,331],"valid"],[[332,332],"mapped",[333]],[[333,333],"valid"],[[334,334],"mapped",[335]],[[335,335],"valid"],[[336,336],"mapped",[337]],[[337,337],"valid"],[[338,338],"mapped",[339]],[[339,339],"valid"],[[340,340],"mapped",[341]],[[341,341],"valid"],[[342,342],"mapped",[343]],[[343,343],"valid"],[[344,344],"mapped",[345]],[[345,345],"valid"],[[346,346],"mapped",[347]],[[347,347],"valid"],[[348,348],"mapped",[349]],[[349,349],"valid"],[[350,350],"mapped",[351]],[[351,351],"valid"],[[352,352],"mapped",[353]],[[353,353],"valid"],[[354,354],"mapped",[355]],[[355,355],"valid"],[[356,356],"mapped",[357]],[[357,357],"valid"],[[358,358],"mapped",[359]],[[359,359],"valid"],[[360,360],"mapped",[361]],[[361,361],"valid"],[[362,362],"mapped",[363]],[[363,363],"valid"],[[364,364],"mapped",[365]],[[365,365],"valid"],[[366,366],"mapped",[367]],[[367,367],"valid"],[[368,368],"mapped",[369]],[[369,369],"valid"],[[370,370],"mapped",[371]],[[371,371],"valid"],[[372,372],"mapped",[373]],[[373,373],"valid"],[[374,374],"mapped",[375]],[[375,375],"valid"],[[376,376],"mapped",[255]],[[377,377],"mapped",[378]],[[378,378],"valid"],[[379,379],"mapped",[380]],[[380,380],"valid"],[[381,381],"mapped",[382]],[[382,382],"valid"],[[383,383],"mapped",[115]],[[384,384],"valid"],[[385,385],"mapped",[595]],[[386,386],"mapped",[387]],[[387,387],"valid"],[[388,388],"mapped",[389]],[[389,389],"valid"],[[390,390],"mapped",[596]],[[391,391],"mapped",[392]],[[392,392],"valid"],[[393,393],"mapped",[598]],[[394,394],"mapped",[599]],[[395,395],"mapped",[396]],[[396,397],"valid"],[[398,398],"mapped",[477]],[[399,399],"mapped",[601]],[[400,400],"mapped",[603]],[[401,401],"mapped",[402]],[[402,402],"valid"],[[403,403],"mapped",[608]],[[404,404],"mapped",[611]],[[405,405],"valid"],[[406,406],"mapped",[617]],[[407,407],"mapped",[616]],[[408,408],"mapped",[409]],[[409,411],"valid"],[[412,412],"mapped",[623]],[[413,413],"mapped",[626]],[[414,414],"valid"],[[415,415],"mapped",[629]],[[416,416],"mapped",[417]],[[417,417],"valid"],[[418,418],"mapped",[419]],[[419,419],"valid"],[[420,420],"mapped",[421]],[[421,421],"valid"],[[422,422],"mapped",[640]],[[423,423],"mapped",[424]],[[424,424],"valid"],[[425,425],"mapped",[643]],[[426,427],"valid"],[[428,428],"mapped",[429]],[[429,429],"valid"],[[430,430],"mapped",[648]],[[431,431],"mapped",[432]],[[432,432],"valid"],[[433,433],"mapped",[650]],[[434,434],"mapped",[651]],[[435,435],"mapped",[436]],[[436,436],"valid"],[[437,437],"mapped",[438]],[[438,438],"valid"],[[439,439],"mapped",[658]],[[440,440],"mapped",[441]],[[441,443],"valid"],[[444,444],"mapped",[445]],[[445,451],"valid"],[[452,454],"mapped",[100,382]],[[455,457],"mapped",[108,106]],[[458,460],"mapped",[110,106]],[[461,461],"mapped",[462]],[[462,462],"valid"],[[463,463],"mapped",[464]],[[464,464],"valid"],[[465,465],"mapped",[466]],[[466,466],"valid"],[[467,467],"mapped",[468]],[[468,468],"valid"],[[469,469],"mapped",[470]],[[470,470],"valid"],[[471,471],"mapped",[472]],[[472,472],"valid"],[[473,473],"mapped",[474]],[[474,474],"valid"],[[475,475],"mapped",[476]],[[476,477],"valid"],[[478,478],"mapped",[479]],[[479,479],"valid"],[[480,480],"mapped",[481]],[[481,481],"valid"],[[482,482],"mapped",[483]],[[483,483],"valid"],[[484,484],"mapped",[485]],[[485,485],"valid"],[[486,486],"mapped",[487]],[[487,487],"valid"],[[488,488],"mapped",[489]],[[489,489],"valid"],[[490,490],"mapped",[491]],[[491,491],"valid"],[[492,492],"mapped",[493]],[[493,493],"valid"],[[494,494],"mapped",[495]],[[495,496],"valid"],[[497,499],"mapped",[100,122]],[[500,500],"mapped",[501]],[[501,501],"valid"],[[502,502],"mapped",[405]],[[503,503],"mapped",[447]],[[504,504],"mapped",[505]],[[505,505],"valid"],[[506,506],"mapped",[507]],[[507,507],"valid"],[[508,508],"mapped",[509]],[[509,509],"valid"],[[510,510],"mapped",[511]],[[511,511],"valid"],[[512,512],"mapped",[513]],[[513,513],"valid"],[[514,514],"mapped",[515]],[[515,515],"valid"],[[516,516],"mapped",[517]],[[517,517],"valid"],[[518,518],"mapped",[519]],[[519,519],"valid"],[[520,520],"mapped",[521]],[[521,521],"valid"],[[522,522],"mapped",[523]],[[523,523],"valid"],[[524,524],"mapped",[525]],[[525,525],"valid"],[[526,526],"mapped",[527]],[[527,527],"valid"],[[528,528],"mapped",[529]],[[529,529],"valid"],[[530,530],"mapped",[531]],[[531,531],"valid"],[[532,532],"mapped",[533]],[[533,533],"valid"],[[534,534],"mapped",[535]],[[535,535],"valid"],[[536,536],"mapped",[537]],[[537,537],"valid"],[[538,538],"mapped",[539]],[[539,539],"valid"],[[540,540],"mapped",[541]],[[541,541],"valid"],[[542,542],"mapped",[543]],[[543,543],"valid"],[[544,544],"mapped",[414]],[[545,545],"valid"],[[546,546],"mapped",[547]],[[547,547],"valid"],[[548,548],"mapped",[549]],[[549,549],"valid"],[[550,550],"mapped",[551]],[[551,551],"valid"],[[552,552],"mapped",[553]],[[553,553],"valid"],[[554,554],"mapped",[555]],[[555,555],"valid"],[[556,556],"mapped",[557]],[[557,557],"valid"],[[558,558],"mapped",[559]],[[559,559],"valid"],[[560,560],"mapped",[561]],[[561,561],"valid"],[[562,562],"mapped",[563]],[[563,563],"valid"],[[564,566],"valid"],[[567,569],"valid"],[[570,570],"mapped",[11365]],[[571,571],"mapped",[572]],[[572,572],"valid"],[[573,573],"mapped",[410]],[[574,574],"mapped",[11366]],[[575,576],"valid"],[[577,577],"mapped",[578]],[[578,578],"valid"],[[579,579],"mapped",[384]],[[580,580],"mapped",[649]],[[581,581],"mapped",[652]],[[582,582],"mapped",[583]],[[583,583],"valid"],[[584,584],"mapped",[585]],[[585,585],"valid"],[[586,586],"mapped",[587]],[[587,587],"valid"],[[588,588],"mapped",[589]],[[589,589],"valid"],[[590,590],"mapped",[591]],[[591,591],"valid"],[[592,680],"valid"],[[681,685],"valid"],[[686,687],"valid"],[[688,688],"mapped",[104]],[[689,689],"mapped",[614]],[[690,690],"mapped",[106]],[[691,691],"mapped",[114]],[[692,692],"mapped",[633]],[[693,693],"mapped",[635]],[[694,694],"mapped",[641]],[[695,695],"mapped",[119]],[[696,696],"mapped",[121]],[[697,705],"valid"],[[706,709],"valid",[],"NV8"],[[710,721],"valid"],[[722,727],"valid",[],"NV8"],[[728,728],"disallowed_STD3_mapped",[32,774]],[[729,729],"disallowed_STD3_mapped",[32,775]],[[730,730],"disallowed_STD3_mapped",[32,778]],[[731,731],"disallowed_STD3_mapped",[32,808]],[[732,732],"disallowed_STD3_mapped",[32,771]],[[733,733],"disallowed_STD3_mapped",[32,779]],[[734,734],"valid",[],"NV8"],[[735,735],"valid",[],"NV8"],[[736,736],"mapped",[611]],[[737,737],"mapped",[108]],[[738,738],"mapped",[115]],[[739,739],"mapped",[120]],[[740,740],"mapped",[661]],[[741,745],"valid",[],"NV8"],[[746,747],"valid",[],"NV8"],[[748,748],"valid"],[[749,749],"valid",[],"NV8"],[[750,750],"valid"],[[751,767],"valid",[],"NV8"],[[768,831],"valid"],[[832,832],"mapped",[768]],[[833,833],"mapped",[769]],[[834,834],"valid"],[[835,835],"mapped",[787]],[[836,836],"mapped",[776,769]],[[837,837],"mapped",[953]],[[838,846],"valid"],[[847,847],"ignored"],[[848,855],"valid"],[[856,860],"valid"],[[861,863],"valid"],[[864,865],"valid"],[[866,866],"valid"],[[867,879],"valid"],[[880,880],"mapped",[881]],[[881,881],"valid"],[[882,882],"mapped",[883]],[[883,883],"valid"],[[884,884],"mapped",[697]],[[885,885],"valid"],[[886,886],"mapped",[887]],[[887,887],"valid"],[[888,889],"disallowed"],[[890,890],"disallowed_STD3_mapped",[32,953]],[[891,893],"valid"],[[894,894],"disallowed_STD3_mapped",[59]],[[895,895],"mapped",[1011]],[[896,899],"disallowed"],[[900,900],"disallowed_STD3_mapped",[32,769]],[[901,901],"disallowed_STD3_mapped",[32,776,769]],[[902,902],"mapped",[940]],[[903,903],"mapped",[183]],[[904,904],"mapped",[941]],[[905,905],"mapped",[942]],[[906,906],"mapped",[943]],[[907,907],"disallowed"],[[908,908],"mapped",[972]],[[909,909],"disallowed"],[[910,910],"mapped",[973]],[[911,911],"mapped",[974]],[[912,912],"valid"],[[913,913],"mapped",[945]],[[914,914],"mapped",[946]],[[915,915],"mapped",[947]],[[916,916],"mapped",[948]],[[917,917],"mapped",[949]],[[918,918],"mapped",[950]],[[919,919],"mapped",[951]],[[920,920],"mapped",[952]],[[921,921],"mapped",[953]],[[922,922],"mapped",[954]],[[923,923],"mapped",[955]],[[924,924],"mapped",[956]],[[925,925],"mapped",[957]],[[926,926],"mapped",[958]],[[927,927],"mapped",[959]],[[928,928],"mapped",[960]],[[929,929],"mapped",[961]],[[930,930],"disallowed"],[[931,931],"mapped",[963]],[[932,932],"mapped",[964]],[[933,933],"mapped",[965]],[[934,934],"mapped",[966]],[[935,935],"mapped",[967]],[[936,936],"mapped",[968]],[[937,937],"mapped",[969]],[[938,938],"mapped",[970]],[[939,939],"mapped",[971]],[[940,961],"valid"],[[962,962],"deviation",[963]],[[963,974],"valid"],[[975,975],"mapped",[983]],[[976,976],"mapped",[946]],[[977,977],"mapped",[952]],[[978,978],"mapped",[965]],[[979,979],"mapped",[973]],[[980,980],"mapped",[971]],[[981,981],"mapped",[966]],[[982,982],"mapped",[960]],[[983,983],"valid"],[[984,984],"mapped",[985]],[[985,985],"valid"],[[986,986],"mapped",[987]],[[987,987],"valid"],[[988,988],"mapped",[989]],[[989,989],"valid"],[[990,990],"mapped",[991]],[[991,991],"valid"],[[992,992],"mapped",[993]],[[993,993],"valid"],[[994,994],"mapped",[995]],[[995,995],"valid"],[[996,996],"mapped",[997]],[[997,997],"valid"],[[998,998],"mapped",[999]],[[999,999],"valid"],[[1e3,1e3],"mapped",[1001]],[[1001,1001],"valid"],[[1002,1002],"mapped",[1003]],[[1003,1003],"valid"],[[1004,1004],"mapped",[1005]],[[1005,1005],"valid"],[[1006,1006],"mapped",[1007]],[[1007,1007],"valid"],[[1008,1008],"mapped",[954]],[[1009,1009],"mapped",[961]],[[1010,1010],"mapped",[963]],[[1011,1011],"valid"],[[1012,1012],"mapped",[952]],[[1013,1013],"mapped",[949]],[[1014,1014],"valid",[],"NV8"],[[1015,1015],"mapped",[1016]],[[1016,1016],"valid"],[[1017,1017],"mapped",[963]],[[1018,1018],"mapped",[1019]],[[1019,1019],"valid"],[[1020,1020],"valid"],[[1021,1021],"mapped",[891]],[[1022,1022],"mapped",[892]],[[1023,1023],"mapped",[893]],[[1024,1024],"mapped",[1104]],[[1025,1025],"mapped",[1105]],[[1026,1026],"mapped",[1106]],[[1027,1027],"mapped",[1107]],[[1028,1028],"mapped",[1108]],[[1029,1029],"mapped",[1109]],[[1030,1030],"mapped",[1110]],[[1031,1031],"mapped",[1111]],[[1032,1032],"mapped",[1112]],[[1033,1033],"mapped",[1113]],[[1034,1034],"mapped",[1114]],[[1035,1035],"mapped",[1115]],[[1036,1036],"mapped",[1116]],[[1037,1037],"mapped",[1117]],[[1038,1038],"mapped",[1118]],[[1039,1039],"mapped",[1119]],[[1040,1040],"mapped",[1072]],[[1041,1041],"mapped",[1073]],[[1042,1042],"mapped",[1074]],[[1043,1043],"mapped",[1075]],[[1044,1044],"mapped",[1076]],[[1045,1045],"mapped",[1077]],[[1046,1046],"mapped",[1078]],[[1047,1047],"mapped",[1079]],[[1048,1048],"mapped",[1080]],[[1049,1049],"mapped",[1081]],[[1050,1050],"mapped",[1082]],[[1051,1051],"mapped",[1083]],[[1052,1052],"mapped",[1084]],[[1053,1053],"mapped",[1085]],[[1054,1054],"mapped",[1086]],[[1055,1055],"mapped",[1087]],[[1056,1056],"mapped",[1088]],[[1057,1057],"mapped",[1089]],[[1058,1058],"mapped",[1090]],[[1059,1059],"mapped",[1091]],[[1060,1060],"mapped",[1092]],[[1061,1061],"mapped",[1093]],[[1062,1062],"mapped",[1094]],[[1063,1063],"mapped",[1095]],[[1064,1064],"mapped",[1096]],[[1065,1065],"mapped",[1097]],[[1066,1066],"mapped",[1098]],[[1067,1067],"mapped",[1099]],[[1068,1068],"mapped",[1100]],[[1069,1069],"mapped",[1101]],[[1070,1070],"mapped",[1102]],[[1071,1071],"mapped",[1103]],[[1072,1103],"valid"],[[1104,1104],"valid"],[[1105,1116],"valid"],[[1117,1117],"valid"],[[1118,1119],"valid"],[[1120,1120],"mapped",[1121]],[[1121,1121],"valid"],[[1122,1122],"mapped",[1123]],[[1123,1123],"valid"],[[1124,1124],"mapped",[1125]],[[1125,1125],"valid"],[[1126,1126],"mapped",[1127]],[[1127,1127],"valid"],[[1128,1128],"mapped",[1129]],[[1129,1129],"valid"],[[1130,1130],"mapped",[1131]],[[1131,1131],"valid"],[[1132,1132],"mapped",[1133]],[[1133,1133],"valid"],[[1134,1134],"mapped",[1135]],[[1135,1135],"valid"],[[1136,1136],"mapped",[1137]],[[1137,1137],"valid"],[[1138,1138],"mapped",[1139]],[[1139,1139],"valid"],[[1140,1140],"mapped",[1141]],[[1141,1141],"valid"],[[1142,1142],"mapped",[1143]],[[1143,1143],"valid"],[[1144,1144],"mapped",[1145]],[[1145,1145],"valid"],[[1146,1146],"mapped",[1147]],[[1147,1147],"valid"],[[1148,1148],"mapped",[1149]],[[1149,1149],"valid"],[[1150,1150],"mapped",[1151]],[[1151,1151],"valid"],[[1152,1152],"mapped",[1153]],[[1153,1153],"valid"],[[1154,1154],"valid",[],"NV8"],[[1155,1158],"valid"],[[1159,1159],"valid"],[[1160,1161],"valid",[],"NV8"],[[1162,1162],"mapped",[1163]],[[1163,1163],"valid"],[[1164,1164],"mapped",[1165]],[[1165,1165],"valid"],[[1166,1166],"mapped",[1167]],[[1167,1167],"valid"],[[1168,1168],"mapped",[1169]],[[1169,1169],"valid"],[[1170,1170],"mapped",[1171]],[[1171,1171],"valid"],[[1172,1172],"mapped",[1173]],[[1173,1173],"valid"],[[1174,1174],"mapped",[1175]],[[1175,1175],"valid"],[[1176,1176],"mapped",[1177]],[[1177,1177],"valid"],[[1178,1178],"mapped",[1179]],[[1179,1179],"valid"],[[1180,1180],"mapped",[1181]],[[1181,1181],"valid"],[[1182,1182],"mapped",[1183]],[[1183,1183],"valid"],[[1184,1184],"mapped",[1185]],[[1185,1185],"valid"],[[1186,1186],"mapped",[1187]],[[1187,1187],"valid"],[[1188,1188],"mapped",[1189]],[[1189,1189],"valid"],[[1190,1190],"mapped",[1191]],[[1191,1191],"valid"],[[1192,1192],"mapped",[1193]],[[1193,1193],"valid"],[[1194,1194],"mapped",[1195]],[[1195,1195],"valid"],[[1196,1196],"mapped",[1197]],[[1197,1197],"valid"],[[1198,1198],"mapped",[1199]],[[1199,1199],"valid"],[[1200,1200],"mapped",[1201]],[[1201,1201],"valid"],[[1202,1202],"mapped",[1203]],[[1203,1203],"valid"],[[1204,1204],"mapped",[1205]],[[1205,1205],"valid"],[[1206,1206],"mapped",[1207]],[[1207,1207],"valid"],[[1208,1208],"mapped",[1209]],[[1209,1209],"valid"],[[1210,1210],"mapped",[1211]],[[1211,1211],"valid"],[[1212,1212],"mapped",[1213]],[[1213,1213],"valid"],[[1214,1214],"mapped",[1215]],[[1215,1215],"valid"],[[1216,1216],"disallowed"],[[1217,1217],"mapped",[1218]],[[1218,1218],"valid"],[[1219,1219],"mapped",[1220]],[[1220,1220],"valid"],[[1221,1221],"mapped",[1222]],[[1222,1222],"valid"],[[1223,1223],"mapped",[1224]],[[1224,1224],"valid"],[[1225,1225],"mapped",[1226]],[[1226,1226],"valid"],[[1227,1227],"mapped",[1228]],[[1228,1228],"valid"],[[1229,1229],"mapped",[1230]],[[1230,1230],"valid"],[[1231,1231],"valid"],[[1232,1232],"mapped",[1233]],[[1233,1233],"valid"],[[1234,1234],"mapped",[1235]],[[1235,1235],"valid"],[[1236,1236],"mapped",[1237]],[[1237,1237],"valid"],[[1238,1238],"mapped",[1239]],[[1239,1239],"valid"],[[1240,1240],"mapped",[1241]],[[1241,1241],"valid"],[[1242,1242],"mapped",[1243]],[[1243,1243],"valid"],[[1244,1244],"mapped",[1245]],[[1245,1245],"valid"],[[1246,1246],"mapped",[1247]],[[1247,1247],"valid"],[[1248,1248],"mapped",[1249]],[[1249,1249],"valid"],[[1250,1250],"mapped",[1251]],[[1251,1251],"valid"],[[1252,1252],"mapped",[1253]],[[1253,1253],"valid"],[[1254,1254],"mapped",[1255]],[[1255,1255],"valid"],[[1256,1256],"mapped",[1257]],[[1257,1257],"valid"],[[1258,1258],"mapped",[1259]],[[1259,1259],"valid"],[[1260,1260],"mapped",[1261]],[[1261,1261],"valid"],[[1262,1262],"mapped",[1263]],[[1263,1263],"valid"],[[1264,1264],"mapped",[1265]],[[1265,1265],"valid"],[[1266,1266],"mapped",[1267]],[[1267,1267],"valid"],[[1268,1268],"mapped",[1269]],[[1269,1269],"valid"],[[1270,1270],"mapped",[1271]],[[1271,1271],"valid"],[[1272,1272],"mapped",[1273]],[[1273,1273],"valid"],[[1274,1274],"mapped",[1275]],[[1275,1275],"valid"],[[1276,1276],"mapped",[1277]],[[1277,1277],"valid"],[[1278,1278],"mapped",[1279]],[[1279,1279],"valid"],[[1280,1280],"mapped",[1281]],[[1281,1281],"valid"],[[1282,1282],"mapped",[1283]],[[1283,1283],"valid"],[[1284,1284],"mapped",[1285]],[[1285,1285],"valid"],[[1286,1286],"mapped",[1287]],[[1287,1287],"valid"],[[1288,1288],"mapped",[1289]],[[1289,1289],"valid"],[[1290,1290],"mapped",[1291]],[[1291,1291],"valid"],[[1292,1292],"mapped",[1293]],[[1293,1293],"valid"],[[1294,1294],"mapped",[1295]],[[1295,1295],"valid"],[[1296,1296],"mapped",[1297]],[[1297,1297],"valid"],[[1298,1298],"mapped",[1299]],[[1299,1299],"valid"],[[1300,1300],"mapped",[1301]],[[1301,1301],"valid"],[[1302,1302],"mapped",[1303]],[[1303,1303],"valid"],[[1304,1304],"mapped",[1305]],[[1305,1305],"valid"],[[1306,1306],"mapped",[1307]],[[1307,1307],"valid"],[[1308,1308],"mapped",[1309]],[[1309,1309],"valid"],[[1310,1310],"mapped",[1311]],[[1311,1311],"valid"],[[1312,1312],"mapped",[1313]],[[1313,1313],"valid"],[[1314,1314],"mapped",[1315]],[[1315,1315],"valid"],[[1316,1316],"mapped",[1317]],[[1317,1317],"valid"],[[1318,1318],"mapped",[1319]],[[1319,1319],"valid"],[[1320,1320],"mapped",[1321]],[[1321,1321],"valid"],[[1322,1322],"mapped",[1323]],[[1323,1323],"valid"],[[1324,1324],"mapped",[1325]],[[1325,1325],"valid"],[[1326,1326],"mapped",[1327]],[[1327,1327],"valid"],[[1328,1328],"disallowed"],[[1329,1329],"mapped",[1377]],[[1330,1330],"mapped",[1378]],[[1331,1331],"mapped",[1379]],[[1332,1332],"mapped",[1380]],[[1333,1333],"mapped",[1381]],[[1334,1334],"mapped",[1382]],[[1335,1335],"mapped",[1383]],[[1336,1336],"mapped",[1384]],[[1337,1337],"mapped",[1385]],[[1338,1338],"mapped",[1386]],[[1339,1339],"mapped",[1387]],[[1340,1340],"mapped",[1388]],[[1341,1341],"mapped",[1389]],[[1342,1342],"mapped",[1390]],[[1343,1343],"mapped",[1391]],[[1344,1344],"mapped",[1392]],[[1345,1345],"mapped",[1393]],[[1346,1346],"mapped",[1394]],[[1347,1347],"mapped",[1395]],[[1348,1348],"mapped",[1396]],[[1349,1349],"mapped",[1397]],[[1350,1350],"mapped",[1398]],[[1351,1351],"mapped",[1399]],[[1352,1352],"mapped",[1400]],[[1353,1353],"mapped",[1401]],[[1354,1354],"mapped",[1402]],[[1355,1355],"mapped",[1403]],[[1356,1356],"mapped",[1404]],[[1357,1357],"mapped",[1405]],[[1358,1358],"mapped",[1406]],[[1359,1359],"mapped",[1407]],[[1360,1360],"mapped",[1408]],[[1361,1361],"mapped",[1409]],[[1362,1362],"mapped",[1410]],[[1363,1363],"mapped",[1411]],[[1364,1364],"mapped",[1412]],[[1365,1365],"mapped",[1413]],[[1366,1366],"mapped",[1414]],[[1367,1368],"disallowed"],[[1369,1369],"valid"],[[1370,1375],"valid",[],"NV8"],[[1376,1376],"disallowed"],[[1377,1414],"valid"],[[1415,1415],"mapped",[1381,1410]],[[1416,1416],"disallowed"],[[1417,1417],"valid",[],"NV8"],[[1418,1418],"valid",[],"NV8"],[[1419,1420],"disallowed"],[[1421,1422],"valid",[],"NV8"],[[1423,1423],"valid",[],"NV8"],[[1424,1424],"disallowed"],[[1425,1441],"valid"],[[1442,1442],"valid"],[[1443,1455],"valid"],[[1456,1465],"valid"],[[1466,1466],"valid"],[[1467,1469],"valid"],[[1470,1470],"valid",[],"NV8"],[[1471,1471],"valid"],[[1472,1472],"valid",[],"NV8"],[[1473,1474],"valid"],[[1475,1475],"valid",[],"NV8"],[[1476,1476],"valid"],[[1477,1477],"valid"],[[1478,1478],"valid",[],"NV8"],[[1479,1479],"valid"],[[1480,1487],"disallowed"],[[1488,1514],"valid"],[[1515,1519],"disallowed"],[[1520,1524],"valid"],[[1525,1535],"disallowed"],[[1536,1539],"disallowed"],[[1540,1540],"disallowed"],[[1541,1541],"disallowed"],[[1542,1546],"valid",[],"NV8"],[[1547,1547],"valid",[],"NV8"],[[1548,1548],"valid",[],"NV8"],[[1549,1551],"valid",[],"NV8"],[[1552,1557],"valid"],[[1558,1562],"valid"],[[1563,1563],"valid",[],"NV8"],[[1564,1564],"disallowed"],[[1565,1565],"disallowed"],[[1566,1566],"valid",[],"NV8"],[[1567,1567],"valid",[],"NV8"],[[1568,1568],"valid"],[[1569,1594],"valid"],[[1595,1599],"valid"],[[1600,1600],"valid",[],"NV8"],[[1601,1618],"valid"],[[1619,1621],"valid"],[[1622,1624],"valid"],[[1625,1630],"valid"],[[1631,1631],"valid"],[[1632,1641],"valid"],[[1642,1645],"valid",[],"NV8"],[[1646,1647],"valid"],[[1648,1652],"valid"],[[1653,1653],"mapped",[1575,1652]],[[1654,1654],"mapped",[1608,1652]],[[1655,1655],"mapped",[1735,1652]],[[1656,1656],"mapped",[1610,1652]],[[1657,1719],"valid"],[[1720,1721],"valid"],[[1722,1726],"valid"],[[1727,1727],"valid"],[[1728,1742],"valid"],[[1743,1743],"valid"],[[1744,1747],"valid"],[[1748,1748],"valid",[],"NV8"],[[1749,1756],"valid"],[[1757,1757],"disallowed"],[[1758,1758],"valid",[],"NV8"],[[1759,1768],"valid"],[[1769,1769],"valid",[],"NV8"],[[1770,1773],"valid"],[[1774,1775],"valid"],[[1776,1785],"valid"],[[1786,1790],"valid"],[[1791,1791],"valid"],[[1792,1805],"valid",[],"NV8"],[[1806,1806],"disallowed"],[[1807,1807],"disallowed"],[[1808,1836],"valid"],[[1837,1839],"valid"],[[1840,1866],"valid"],[[1867,1868],"disallowed"],[[1869,1871],"valid"],[[1872,1901],"valid"],[[1902,1919],"valid"],[[1920,1968],"valid"],[[1969,1969],"valid"],[[1970,1983],"disallowed"],[[1984,2037],"valid"],[[2038,2042],"valid",[],"NV8"],[[2043,2047],"disallowed"],[[2048,2093],"valid"],[[2094,2095],"disallowed"],[[2096,2110],"valid",[],"NV8"],[[2111,2111],"disallowed"],[[2112,2139],"valid"],[[2140,2141],"disallowed"],[[2142,2142],"valid",[],"NV8"],[[2143,2207],"disallowed"],[[2208,2208],"valid"],[[2209,2209],"valid"],[[2210,2220],"valid"],[[2221,2226],"valid"],[[2227,2228],"valid"],[[2229,2274],"disallowed"],[[2275,2275],"valid"],[[2276,2302],"valid"],[[2303,2303],"valid"],[[2304,2304],"valid"],[[2305,2307],"valid"],[[2308,2308],"valid"],[[2309,2361],"valid"],[[2362,2363],"valid"],[[2364,2381],"valid"],[[2382,2382],"valid"],[[2383,2383],"valid"],[[2384,2388],"valid"],[[2389,2389],"valid"],[[2390,2391],"valid"],[[2392,2392],"mapped",[2325,2364]],[[2393,2393],"mapped",[2326,2364]],[[2394,2394],"mapped",[2327,2364]],[[2395,2395],"mapped",[2332,2364]],[[2396,2396],"mapped",[2337,2364]],[[2397,2397],"mapped",[2338,2364]],[[2398,2398],"mapped",[2347,2364]],[[2399,2399],"mapped",[2351,2364]],[[2400,2403],"valid"],[[2404,2405],"valid",[],"NV8"],[[2406,2415],"valid"],[[2416,2416],"valid",[],"NV8"],[[2417,2418],"valid"],[[2419,2423],"valid"],[[2424,2424],"valid"],[[2425,2426],"valid"],[[2427,2428],"valid"],[[2429,2429],"valid"],[[2430,2431],"valid"],[[2432,2432],"valid"],[[2433,2435],"valid"],[[2436,2436],"disallowed"],[[2437,2444],"valid"],[[2445,2446],"disallowed"],[[2447,2448],"valid"],[[2449,2450],"disallowed"],[[2451,2472],"valid"],[[2473,2473],"disallowed"],[[2474,2480],"valid"],[[2481,2481],"disallowed"],[[2482,2482],"valid"],[[2483,2485],"disallowed"],[[2486,2489],"valid"],[[2490,2491],"disallowed"],[[2492,2492],"valid"],[[2493,2493],"valid"],[[2494,2500],"valid"],[[2501,2502],"disallowed"],[[2503,2504],"valid"],[[2505,2506],"disallowed"],[[2507,2509],"valid"],[[2510,2510],"valid"],[[2511,2518],"disallowed"],[[2519,2519],"valid"],[[2520,2523],"disallowed"],[[2524,2524],"mapped",[2465,2492]],[[2525,2525],"mapped",[2466,2492]],[[2526,2526],"disallowed"],[[2527,2527],"mapped",[2479,2492]],[[2528,2531],"valid"],[[2532,2533],"disallowed"],[[2534,2545],"valid"],[[2546,2554],"valid",[],"NV8"],[[2555,2555],"valid",[],"NV8"],[[2556,2560],"disallowed"],[[2561,2561],"valid"],[[2562,2562],"valid"],[[2563,2563],"valid"],[[2564,2564],"disallowed"],[[2565,2570],"valid"],[[2571,2574],"disallowed"],[[2575,2576],"valid"],[[2577,2578],"disallowed"],[[2579,2600],"valid"],[[2601,2601],"disallowed"],[[2602,2608],"valid"],[[2609,2609],"disallowed"],[[2610,2610],"valid"],[[2611,2611],"mapped",[2610,2620]],[[2612,2612],"disallowed"],[[2613,2613],"valid"],[[2614,2614],"mapped",[2616,2620]],[[2615,2615],"disallowed"],[[2616,2617],"valid"],[[2618,2619],"disallowed"],[[2620,2620],"valid"],[[2621,2621],"disallowed"],[[2622,2626],"valid"],[[2627,2630],"disallowed"],[[2631,2632],"valid"],[[2633,2634],"disallowed"],[[2635,2637],"valid"],[[2638,2640],"disallowed"],[[2641,2641],"valid"],[[2642,2648],"disallowed"],[[2649,2649],"mapped",[2582,2620]],[[2650,2650],"mapped",[2583,2620]],[[2651,2651],"mapped",[2588,2620]],[[2652,2652],"valid"],[[2653,2653],"disallowed"],[[2654,2654],"mapped",[2603,2620]],[[2655,2661],"disallowed"],[[2662,2676],"valid"],[[2677,2677],"valid"],[[2678,2688],"disallowed"],[[2689,2691],"valid"],[[2692,2692],"disallowed"],[[2693,2699],"valid"],[[2700,2700],"valid"],[[2701,2701],"valid"],[[2702,2702],"disallowed"],[[2703,2705],"valid"],[[2706,2706],"disallowed"],[[2707,2728],"valid"],[[2729,2729],"disallowed"],[[2730,2736],"valid"],[[2737,2737],"disallowed"],[[2738,2739],"valid"],[[2740,2740],"disallowed"],[[2741,2745],"valid"],[[2746,2747],"disallowed"],[[2748,2757],"valid"],[[2758,2758],"disallowed"],[[2759,2761],"valid"],[[2762,2762],"disallowed"],[[2763,2765],"valid"],[[2766,2767],"disallowed"],[[2768,2768],"valid"],[[2769,2783],"disallowed"],[[2784,2784],"valid"],[[2785,2787],"valid"],[[2788,2789],"disallowed"],[[2790,2799],"valid"],[[2800,2800],"valid",[],"NV8"],[[2801,2801],"valid",[],"NV8"],[[2802,2808],"disallowed"],[[2809,2809],"valid"],[[2810,2816],"disallowed"],[[2817,2819],"valid"],[[2820,2820],"disallowed"],[[2821,2828],"valid"],[[2829,2830],"disallowed"],[[2831,2832],"valid"],[[2833,2834],"disallowed"],[[2835,2856],"valid"],[[2857,2857],"disallowed"],[[2858,2864],"valid"],[[2865,2865],"disallowed"],[[2866,2867],"valid"],[[2868,2868],"disallowed"],[[2869,2869],"valid"],[[2870,2873],"valid"],[[2874,2875],"disallowed"],[[2876,2883],"valid"],[[2884,2884],"valid"],[[2885,2886],"disallowed"],[[2887,2888],"valid"],[[2889,2890],"disallowed"],[[2891,2893],"valid"],[[2894,2901],"disallowed"],[[2902,2903],"valid"],[[2904,2907],"disallowed"],[[2908,2908],"mapped",[2849,2876]],[[2909,2909],"mapped",[2850,2876]],[[2910,2910],"disallowed"],[[2911,2913],"valid"],[[2914,2915],"valid"],[[2916,2917],"disallowed"],[[2918,2927],"valid"],[[2928,2928],"valid",[],"NV8"],[[2929,2929],"valid"],[[2930,2935],"valid",[],"NV8"],[[2936,2945],"disallowed"],[[2946,2947],"valid"],[[2948,2948],"disallowed"],[[2949,2954],"valid"],[[2955,2957],"disallowed"],[[2958,2960],"valid"],[[2961,2961],"disallowed"],[[2962,2965],"valid"],[[2966,2968],"disallowed"],[[2969,2970],"valid"],[[2971,2971],"disallowed"],[[2972,2972],"valid"],[[2973,2973],"disallowed"],[[2974,2975],"valid"],[[2976,2978],"disallowed"],[[2979,2980],"valid"],[[2981,2983],"disallowed"],[[2984,2986],"valid"],[[2987,2989],"disallowed"],[[2990,2997],"valid"],[[2998,2998],"valid"],[[2999,3001],"valid"],[[3002,3005],"disallowed"],[[3006,3010],"valid"],[[3011,3013],"disallowed"],[[3014,3016],"valid"],[[3017,3017],"disallowed"],[[3018,3021],"valid"],[[3022,3023],"disallowed"],[[3024,3024],"valid"],[[3025,3030],"disallowed"],[[3031,3031],"valid"],[[3032,3045],"disallowed"],[[3046,3046],"valid"],[[3047,3055],"valid"],[[3056,3058],"valid",[],"NV8"],[[3059,3066],"valid",[],"NV8"],[[3067,3071],"disallowed"],[[3072,3072],"valid"],[[3073,3075],"valid"],[[3076,3076],"disallowed"],[[3077,3084],"valid"],[[3085,3085],"disallowed"],[[3086,3088],"valid"],[[3089,3089],"disallowed"],[[3090,3112],"valid"],[[3113,3113],"disallowed"],[[3114,3123],"valid"],[[3124,3124],"valid"],[[3125,3129],"valid"],[[3130,3132],"disallowed"],[[3133,3133],"valid"],[[3134,3140],"valid"],[[3141,3141],"disallowed"],[[3142,3144],"valid"],[[3145,3145],"disallowed"],[[3146,3149],"valid"],[[3150,3156],"disallowed"],[[3157,3158],"valid"],[[3159,3159],"disallowed"],[[3160,3161],"valid"],[[3162,3162],"valid"],[[3163,3167],"disallowed"],[[3168,3169],"valid"],[[3170,3171],"valid"],[[3172,3173],"disallowed"],[[3174,3183],"valid"],[[3184,3191],"disallowed"],[[3192,3199],"valid",[],"NV8"],[[3200,3200],"disallowed"],[[3201,3201],"valid"],[[3202,3203],"valid"],[[3204,3204],"disallowed"],[[3205,3212],"valid"],[[3213,3213],"disallowed"],[[3214,3216],"valid"],[[3217,3217],"disallowed"],[[3218,3240],"valid"],[[3241,3241],"disallowed"],[[3242,3251],"valid"],[[3252,3252],"disallowed"],[[3253,3257],"valid"],[[3258,3259],"disallowed"],[[3260,3261],"valid"],[[3262,3268],"valid"],[[3269,3269],"disallowed"],[[3270,3272],"valid"],[[3273,3273],"disallowed"],[[3274,3277],"valid"],[[3278,3284],"disallowed"],[[3285,3286],"valid"],[[3287,3293],"disallowed"],[[3294,3294],"valid"],[[3295,3295],"disallowed"],[[3296,3297],"valid"],[[3298,3299],"valid"],[[3300,3301],"disallowed"],[[3302,3311],"valid"],[[3312,3312],"disallowed"],[[3313,3314],"valid"],[[3315,3328],"disallowed"],[[3329,3329],"valid"],[[3330,3331],"valid"],[[3332,3332],"disallowed"],[[3333,3340],"valid"],[[3341,3341],"disallowed"],[[3342,3344],"valid"],[[3345,3345],"disallowed"],[[3346,3368],"valid"],[[3369,3369],"valid"],[[3370,3385],"valid"],[[3386,3386],"valid"],[[3387,3388],"disallowed"],[[3389,3389],"valid"],[[3390,3395],"valid"],[[3396,3396],"valid"],[[3397,3397],"disallowed"],[[3398,3400],"valid"],[[3401,3401],"disallowed"],[[3402,3405],"valid"],[[3406,3406],"valid"],[[3407,3414],"disallowed"],[[3415,3415],"valid"],[[3416,3422],"disallowed"],[[3423,3423],"valid"],[[3424,3425],"valid"],[[3426,3427],"valid"],[[3428,3429],"disallowed"],[[3430,3439],"valid"],[[3440,3445],"valid",[],"NV8"],[[3446,3448],"disallowed"],[[3449,3449],"valid",[],"NV8"],[[3450,3455],"valid"],[[3456,3457],"disallowed"],[[3458,3459],"valid"],[[3460,3460],"disallowed"],[[3461,3478],"valid"],[[3479,3481],"disallowed"],[[3482,3505],"valid"],[[3506,3506],"disallowed"],[[3507,3515],"valid"],[[3516,3516],"disallowed"],[[3517,3517],"valid"],[[3518,3519],"disallowed"],[[3520,3526],"valid"],[[3527,3529],"disallowed"],[[3530,3530],"valid"],[[3531,3534],"disallowed"],[[3535,3540],"valid"],[[3541,3541],"disallowed"],[[3542,3542],"valid"],[[3543,3543],"disallowed"],[[3544,3551],"valid"],[[3552,3557],"disallowed"],[[3558,3567],"valid"],[[3568,3569],"disallowed"],[[3570,3571],"valid"],[[3572,3572],"valid",[],"NV8"],[[3573,3584],"disallowed"],[[3585,3634],"valid"],[[3635,3635],"mapped",[3661,3634]],[[3636,3642],"valid"],[[3643,3646],"disallowed"],[[3647,3647],"valid",[],"NV8"],[[3648,3662],"valid"],[[3663,3663],"valid",[],"NV8"],[[3664,3673],"valid"],[[3674,3675],"valid",[],"NV8"],[[3676,3712],"disallowed"],[[3713,3714],"valid"],[[3715,3715],"disallowed"],[[3716,3716],"valid"],[[3717,3718],"disallowed"],[[3719,3720],"valid"],[[3721,3721],"disallowed"],[[3722,3722],"valid"],[[3723,3724],"disallowed"],[[3725,3725],"valid"],[[3726,3731],"disallowed"],[[3732,3735],"valid"],[[3736,3736],"disallowed"],[[3737,3743],"valid"],[[3744,3744],"disallowed"],[[3745,3747],"valid"],[[3748,3748],"disallowed"],[[3749,3749],"valid"],[[3750,3750],"disallowed"],[[3751,3751],"valid"],[[3752,3753],"disallowed"],[[3754,3755],"valid"],[[3756,3756],"disallowed"],[[3757,3762],"valid"],[[3763,3763],"mapped",[3789,3762]],[[3764,3769],"valid"],[[3770,3770],"disallowed"],[[3771,3773],"valid"],[[3774,3775],"disallowed"],[[3776,3780],"valid"],[[3781,3781],"disallowed"],[[3782,3782],"valid"],[[3783,3783],"disallowed"],[[3784,3789],"valid"],[[3790,3791],"disallowed"],[[3792,3801],"valid"],[[3802,3803],"disallowed"],[[3804,3804],"mapped",[3755,3737]],[[3805,3805],"mapped",[3755,3745]],[[3806,3807],"valid"],[[3808,3839],"disallowed"],[[3840,3840],"valid"],[[3841,3850],"valid",[],"NV8"],[[3851,3851],"valid"],[[3852,3852],"mapped",[3851]],[[3853,3863],"valid",[],"NV8"],[[3864,3865],"valid"],[[3866,3871],"valid",[],"NV8"],[[3872,3881],"valid"],[[3882,3892],"valid",[],"NV8"],[[3893,3893],"valid"],[[3894,3894],"valid",[],"NV8"],[[3895,3895],"valid"],[[3896,3896],"valid",[],"NV8"],[[3897,3897],"valid"],[[3898,3901],"valid",[],"NV8"],[[3902,3906],"valid"],[[3907,3907],"mapped",[3906,4023]],[[3908,3911],"valid"],[[3912,3912],"disallowed"],[[3913,3916],"valid"],[[3917,3917],"mapped",[3916,4023]],[[3918,3921],"valid"],[[3922,3922],"mapped",[3921,4023]],[[3923,3926],"valid"],[[3927,3927],"mapped",[3926,4023]],[[3928,3931],"valid"],[[3932,3932],"mapped",[3931,4023]],[[3933,3944],"valid"],[[3945,3945],"mapped",[3904,4021]],[[3946,3946],"valid"],[[3947,3948],"valid"],[[3949,3952],"disallowed"],[[3953,3954],"valid"],[[3955,3955],"mapped",[3953,3954]],[[3956,3956],"valid"],[[3957,3957],"mapped",[3953,3956]],[[3958,3958],"mapped",[4018,3968]],[[3959,3959],"mapped",[4018,3953,3968]],[[3960,3960],"mapped",[4019,3968]],[[3961,3961],"mapped",[4019,3953,3968]],[[3962,3968],"valid"],[[3969,3969],"mapped",[3953,3968]],[[3970,3972],"valid"],[[3973,3973],"valid",[],"NV8"],[[3974,3979],"valid"],[[3980,3983],"valid"],[[3984,3986],"valid"],[[3987,3987],"mapped",[3986,4023]],[[3988,3989],"valid"],[[3990,3990],"valid"],[[3991,3991],"valid"],[[3992,3992],"disallowed"],[[3993,3996],"valid"],[[3997,3997],"mapped",[3996,4023]],[[3998,4001],"valid"],[[4002,4002],"mapped",[4001,4023]],[[4003,4006],"valid"],[[4007,4007],"mapped",[4006,4023]],[[4008,4011],"valid"],[[4012,4012],"mapped",[4011,4023]],[[4013,4013],"valid"],[[4014,4016],"valid"],[[4017,4023],"valid"],[[4024,4024],"valid"],[[4025,4025],"mapped",[3984,4021]],[[4026,4028],"valid"],[[4029,4029],"disallowed"],[[4030,4037],"valid",[],"NV8"],[[4038,4038],"valid"],[[4039,4044],"valid",[],"NV8"],[[4045,4045],"disallowed"],[[4046,4046],"valid",[],"NV8"],[[4047,4047],"valid",[],"NV8"],[[4048,4049],"valid",[],"NV8"],[[4050,4052],"valid",[],"NV8"],[[4053,4056],"valid",[],"NV8"],[[4057,4058],"valid",[],"NV8"],[[4059,4095],"disallowed"],[[4096,4129],"valid"],[[4130,4130],"valid"],[[4131,4135],"valid"],[[4136,4136],"valid"],[[4137,4138],"valid"],[[4139,4139],"valid"],[[4140,4146],"valid"],[[4147,4149],"valid"],[[4150,4153],"valid"],[[4154,4159],"valid"],[[4160,4169],"valid"],[[4170,4175],"valid",[],"NV8"],[[4176,4185],"valid"],[[4186,4249],"valid"],[[4250,4253],"valid"],[[4254,4255],"valid",[],"NV8"],[[4256,4293],"disallowed"],[[4294,4294],"disallowed"],[[4295,4295],"mapped",[11559]],[[4296,4300],"disallowed"],[[4301,4301],"mapped",[11565]],[[4302,4303],"disallowed"],[[4304,4342],"valid"],[[4343,4344],"valid"],[[4345,4346],"valid"],[[4347,4347],"valid",[],"NV8"],[[4348,4348],"mapped",[4316]],[[4349,4351],"valid"],[[4352,4441],"valid",[],"NV8"],[[4442,4446],"valid",[],"NV8"],[[4447,4448],"disallowed"],[[4449,4514],"valid",[],"NV8"],[[4515,4519],"valid",[],"NV8"],[[4520,4601],"valid",[],"NV8"],[[4602,4607],"valid",[],"NV8"],[[4608,4614],"valid"],[[4615,4615],"valid"],[[4616,4678],"valid"],[[4679,4679],"valid"],[[4680,4680],"valid"],[[4681,4681],"disallowed"],[[4682,4685],"valid"],[[4686,4687],"disallowed"],[[4688,4694],"valid"],[[4695,4695],"disallowed"],[[4696,4696],"valid"],[[4697,4697],"disallowed"],[[4698,4701],"valid"],[[4702,4703],"disallowed"],[[4704,4742],"valid"],[[4743,4743],"valid"],[[4744,4744],"valid"],[[4745,4745],"disallowed"],[[4746,4749],"valid"],[[4750,4751],"disallowed"],[[4752,4782],"valid"],[[4783,4783],"valid"],[[4784,4784],"valid"],[[4785,4785],"disallowed"],[[4786,4789],"valid"],[[4790,4791],"disallowed"],[[4792,4798],"valid"],[[4799,4799],"disallowed"],[[4800,4800],"valid"],[[4801,4801],"disallowed"],[[4802,4805],"valid"],[[4806,4807],"disallowed"],[[4808,4814],"valid"],[[4815,4815],"valid"],[[4816,4822],"valid"],[[4823,4823],"disallowed"],[[4824,4846],"valid"],[[4847,4847],"valid"],[[4848,4878],"valid"],[[4879,4879],"valid"],[[4880,4880],"valid"],[[4881,4881],"disallowed"],[[4882,4885],"valid"],[[4886,4887],"disallowed"],[[4888,4894],"valid"],[[4895,4895],"valid"],[[4896,4934],"valid"],[[4935,4935],"valid"],[[4936,4954],"valid"],[[4955,4956],"disallowed"],[[4957,4958],"valid"],[[4959,4959],"valid"],[[4960,4960],"valid",[],"NV8"],[[4961,4988],"valid",[],"NV8"],[[4989,4991],"disallowed"],[[4992,5007],"valid"],[[5008,5017],"valid",[],"NV8"],[[5018,5023],"disallowed"],[[5024,5108],"valid"],[[5109,5109],"valid"],[[5110,5111],"disallowed"],[[5112,5112],"mapped",[5104]],[[5113,5113],"mapped",[5105]],[[5114,5114],"mapped",[5106]],[[5115,5115],"mapped",[5107]],[[5116,5116],"mapped",[5108]],[[5117,5117],"mapped",[5109]],[[5118,5119],"disallowed"],[[5120,5120],"valid",[],"NV8"],[[5121,5740],"valid"],[[5741,5742],"valid",[],"NV8"],[[5743,5750],"valid"],[[5751,5759],"valid"],[[5760,5760],"disallowed"],[[5761,5786],"valid"],[[5787,5788],"valid",[],"NV8"],[[5789,5791],"disallowed"],[[5792,5866],"valid"],[[5867,5872],"valid",[],"NV8"],[[5873,5880],"valid"],[[5881,5887],"disallowed"],[[5888,5900],"valid"],[[5901,5901],"disallowed"],[[5902,5908],"valid"],[[5909,5919],"disallowed"],[[5920,5940],"valid"],[[5941,5942],"valid",[],"NV8"],[[5943,5951],"disallowed"],[[5952,5971],"valid"],[[5972,5983],"disallowed"],[[5984,5996],"valid"],[[5997,5997],"disallowed"],[[5998,6e3],"valid"],[[6001,6001],"disallowed"],[[6002,6003],"valid"],[[6004,6015],"disallowed"],[[6016,6067],"valid"],[[6068,6069],"disallowed"],[[6070,6099],"valid"],[[6100,6102],"valid",[],"NV8"],[[6103,6103],"valid"],[[6104,6107],"valid",[],"NV8"],[[6108,6108],"valid"],[[6109,6109],"valid"],[[6110,6111],"disallowed"],[[6112,6121],"valid"],[[6122,6127],"disallowed"],[[6128,6137],"valid",[],"NV8"],[[6138,6143],"disallowed"],[[6144,6149],"valid",[],"NV8"],[[6150,6150],"disallowed"],[[6151,6154],"valid",[],"NV8"],[[6155,6157],"ignored"],[[6158,6158],"disallowed"],[[6159,6159],"disallowed"],[[6160,6169],"valid"],[[6170,6175],"disallowed"],[[6176,6263],"valid"],[[6264,6271],"disallowed"],[[6272,6313],"valid"],[[6314,6314],"valid"],[[6315,6319],"disallowed"],[[6320,6389],"valid"],[[6390,6399],"disallowed"],[[6400,6428],"valid"],[[6429,6430],"valid"],[[6431,6431],"disallowed"],[[6432,6443],"valid"],[[6444,6447],"disallowed"],[[6448,6459],"valid"],[[6460,6463],"disallowed"],[[6464,6464],"valid",[],"NV8"],[[6465,6467],"disallowed"],[[6468,6469],"valid",[],"NV8"],[[6470,6509],"valid"],[[6510,6511],"disallowed"],[[6512,6516],"valid"],[[6517,6527],"disallowed"],[[6528,6569],"valid"],[[6570,6571],"valid"],[[6572,6575],"disallowed"],[[6576,6601],"valid"],[[6602,6607],"disallowed"],[[6608,6617],"valid"],[[6618,6618],"valid",[],"XV8"],[[6619,6621],"disallowed"],[[6622,6623],"valid",[],"NV8"],[[6624,6655],"valid",[],"NV8"],[[6656,6683],"valid"],[[6684,6685],"disallowed"],[[6686,6687],"valid",[],"NV8"],[[6688,6750],"valid"],[[6751,6751],"disallowed"],[[6752,6780],"valid"],[[6781,6782],"disallowed"],[[6783,6793],"valid"],[[6794,6799],"disallowed"],[[6800,6809],"valid"],[[6810,6815],"disallowed"],[[6816,6822],"valid",[],"NV8"],[[6823,6823],"valid"],[[6824,6829],"valid",[],"NV8"],[[6830,6831],"disallowed"],[[6832,6845],"valid"],[[6846,6846],"valid",[],"NV8"],[[6847,6911],"disallowed"],[[6912,6987],"valid"],[[6988,6991],"disallowed"],[[6992,7001],"valid"],[[7002,7018],"valid",[],"NV8"],[[7019,7027],"valid"],[[7028,7036],"valid",[],"NV8"],[[7037,7039],"disallowed"],[[7040,7082],"valid"],[[7083,7085],"valid"],[[7086,7097],"valid"],[[7098,7103],"valid"],[[7104,7155],"valid"],[[7156,7163],"disallowed"],[[7164,7167],"valid",[],"NV8"],[[7168,7223],"valid"],[[7224,7226],"disallowed"],[[7227,7231],"valid",[],"NV8"],[[7232,7241],"valid"],[[7242,7244],"disallowed"],[[7245,7293],"valid"],[[7294,7295],"valid",[],"NV8"],[[7296,7359],"disallowed"],[[7360,7367],"valid",[],"NV8"],[[7368,7375],"disallowed"],[[7376,7378],"valid"],[[7379,7379],"valid",[],"NV8"],[[7380,7410],"valid"],[[7411,7414],"valid"],[[7415,7415],"disallowed"],[[7416,7417],"valid"],[[7418,7423],"disallowed"],[[7424,7467],"valid"],[[7468,7468],"mapped",[97]],[[7469,7469],"mapped",[230]],[[7470,7470],"mapped",[98]],[[7471,7471],"valid"],[[7472,7472],"mapped",[100]],[[7473,7473],"mapped",[101]],[[7474,7474],"mapped",[477]],[[7475,7475],"mapped",[103]],[[7476,7476],"mapped",[104]],[[7477,7477],"mapped",[105]],[[7478,7478],"mapped",[106]],[[7479,7479],"mapped",[107]],[[7480,7480],"mapped",[108]],[[7481,7481],"mapped",[109]],[[7482,7482],"mapped",[110]],[[7483,7483],"valid"],[[7484,7484],"mapped",[111]],[[7485,7485],"mapped",[547]],[[7486,7486],"mapped",[112]],[[7487,7487],"mapped",[114]],[[7488,7488],"mapped",[116]],[[7489,7489],"mapped",[117]],[[7490,7490],"mapped",[119]],[[7491,7491],"mapped",[97]],[[7492,7492],"mapped",[592]],[[7493,7493],"mapped",[593]],[[7494,7494],"mapped",[7426]],[[7495,7495],"mapped",[98]],[[7496,7496],"mapped",[100]],[[7497,7497],"mapped",[101]],[[7498,7498],"mapped",[601]],[[7499,7499],"mapped",[603]],[[7500,7500],"mapped",[604]],[[7501,7501],"mapped",[103]],[[7502,7502],"valid"],[[7503,7503],"mapped",[107]],[[7504,7504],"mapped",[109]],[[7505,7505],"mapped",[331]],[[7506,7506],"mapped",[111]],[[7507,7507],"mapped",[596]],[[7508,7508],"mapped",[7446]],[[7509,7509],"mapped",[7447]],[[7510,7510],"mapped",[112]],[[7511,7511],"mapped",[116]],[[7512,7512],"mapped",[117]],[[7513,7513],"mapped",[7453]],[[7514,7514],"mapped",[623]],[[7515,7515],"mapped",[118]],[[7516,7516],"mapped",[7461]],[[7517,7517],"mapped",[946]],[[7518,7518],"mapped",[947]],[[7519,7519],"mapped",[948]],[[7520,7520],"mapped",[966]],[[7521,7521],"mapped",[967]],[[7522,7522],"mapped",[105]],[[7523,7523],"mapped",[114]],[[7524,7524],"mapped",[117]],[[7525,7525],"mapped",[118]],[[7526,7526],"mapped",[946]],[[7527,7527],"mapped",[947]],[[7528,7528],"mapped",[961]],[[7529,7529],"mapped",[966]],[[7530,7530],"mapped",[967]],[[7531,7531],"valid"],[[7532,7543],"valid"],[[7544,7544],"mapped",[1085]],[[7545,7578],"valid"],[[7579,7579],"mapped",[594]],[[7580,7580],"mapped",[99]],[[7581,7581],"mapped",[597]],[[7582,7582],"mapped",[240]],[[7583,7583],"mapped",[604]],[[7584,7584],"mapped",[102]],[[7585,7585],"mapped",[607]],[[7586,7586],"mapped",[609]],[[7587,7587],"mapped",[613]],[[7588,7588],"mapped",[616]],[[7589,7589],"mapped",[617]],[[7590,7590],"mapped",[618]],[[7591,7591],"mapped",[7547]],[[7592,7592],"mapped",[669]],[[7593,7593],"mapped",[621]],[[7594,7594],"mapped",[7557]],[[7595,7595],"mapped",[671]],[[7596,7596],"mapped",[625]],[[7597,7597],"mapped",[624]],[[7598,7598],"mapped",[626]],[[7599,7599],"mapped",[627]],[[7600,7600],"mapped",[628]],[[7601,7601],"mapped",[629]],[[7602,7602],"mapped",[632]],[[7603,7603],"mapped",[642]],[[7604,7604],"mapped",[643]],[[7605,7605],"mapped",[427]],[[7606,7606],"mapped",[649]],[[7607,7607],"mapped",[650]],[[7608,7608],"mapped",[7452]],[[7609,7609],"mapped",[651]],[[7610,7610],"mapped",[652]],[[7611,7611],"mapped",[122]],[[7612,7612],"mapped",[656]],[[7613,7613],"mapped",[657]],[[7614,7614],"mapped",[658]],[[7615,7615],"mapped",[952]],[[7616,7619],"valid"],[[7620,7626],"valid"],[[7627,7654],"valid"],[[7655,7669],"valid"],[[7670,7675],"disallowed"],[[7676,7676],"valid"],[[7677,7677],"valid"],[[7678,7679],"valid"],[[7680,7680],"mapped",[7681]],[[7681,7681],"valid"],[[7682,7682],"mapped",[7683]],[[7683,7683],"valid"],[[7684,7684],"mapped",[7685]],[[7685,7685],"valid"],[[7686,7686],"mapped",[7687]],[[7687,7687],"valid"],[[7688,7688],"mapped",[7689]],[[7689,7689],"valid"],[[7690,7690],"mapped",[7691]],[[7691,7691],"valid"],[[7692,7692],"mapped",[7693]],[[7693,7693],"valid"],[[7694,7694],"mapped",[7695]],[[7695,7695],"valid"],[[7696,7696],"mapped",[7697]],[[7697,7697],"valid"],[[7698,7698],"mapped",[7699]],[[7699,7699],"valid"],[[7700,7700],"mapped",[7701]],[[7701,7701],"valid"],[[7702,7702],"mapped",[7703]],[[7703,7703],"valid"],[[7704,7704],"mapped",[7705]],[[7705,7705],"valid"],[[7706,7706],"mapped",[7707]],[[7707,7707],"valid"],[[7708,7708],"mapped",[7709]],[[7709,7709],"valid"],[[7710,7710],"mapped",[7711]],[[7711,7711],"valid"],[[7712,7712],"mapped",[7713]],[[7713,7713],"valid"],[[7714,7714],"mapped",[7715]],[[7715,7715],"valid"],[[7716,7716],"mapped",[7717]],[[7717,7717],"valid"],[[7718,7718],"mapped",[7719]],[[7719,7719],"valid"],[[7720,7720],"mapped",[7721]],[[7721,7721],"valid"],[[7722,7722],"mapped",[7723]],[[7723,7723],"valid"],[[7724,7724],"mapped",[7725]],[[7725,7725],"valid"],[[7726,7726],"mapped",[7727]],[[7727,7727],"valid"],[[7728,7728],"mapped",[7729]],[[7729,7729],"valid"],[[7730,7730],"mapped",[7731]],[[7731,7731],"valid"],[[7732,7732],"mapped",[7733]],[[7733,7733],"valid"],[[7734,7734],"mapped",[7735]],[[7735,7735],"valid"],[[7736,7736],"mapped",[7737]],[[7737,7737],"valid"],[[7738,7738],"mapped",[7739]],[[7739,7739],"valid"],[[7740,7740],"mapped",[7741]],[[7741,7741],"valid"],[[7742,7742],"mapped",[7743]],[[7743,7743],"valid"],[[7744,7744],"mapped",[7745]],[[7745,7745],"valid"],[[7746,7746],"mapped",[7747]],[[7747,7747],"valid"],[[7748,7748],"mapped",[7749]],[[7749,7749],"valid"],[[7750,7750],"mapped",[7751]],[[7751,7751],"valid"],[[7752,7752],"mapped",[7753]],[[7753,7753],"valid"],[[7754,7754],"mapped",[7755]],[[7755,7755],"valid"],[[7756,7756],"mapped",[7757]],[[7757,7757],"valid"],[[7758,7758],"mapped",[7759]],[[7759,7759],"valid"],[[7760,7760],"mapped",[7761]],[[7761,7761],"valid"],[[7762,7762],"mapped",[7763]],[[7763,7763],"valid"],[[7764,7764],"mapped",[7765]],[[7765,7765],"valid"],[[7766,7766],"mapped",[7767]],[[7767,7767],"valid"],[[7768,7768],"mapped",[7769]],[[7769,7769],"valid"],[[7770,7770],"mapped",[7771]],[[7771,7771],"valid"],[[7772,7772],"mapped",[7773]],[[7773,7773],"valid"],[[7774,7774],"mapped",[7775]],[[7775,7775],"valid"],[[7776,7776],"mapped",[7777]],[[7777,7777],"valid"],[[7778,7778],"mapped",[7779]],[[7779,7779],"valid"],[[7780,7780],"mapped",[7781]],[[7781,7781],"valid"],[[7782,7782],"mapped",[7783]],[[7783,7783],"valid"],[[7784,7784],"mapped",[7785]],[[7785,7785],"valid"],[[7786,7786],"mapped",[7787]],[[7787,7787],"valid"],[[7788,7788],"mapped",[7789]],[[7789,7789],"valid"],[[7790,7790],"mapped",[7791]],[[7791,7791],"valid"],[[7792,7792],"mapped",[7793]],[[7793,7793],"valid"],[[7794,7794],"mapped",[7795]],[[7795,7795],"valid"],[[7796,7796],"mapped",[7797]],[[7797,7797],"valid"],[[7798,7798],"mapped",[7799]],[[7799,7799],"valid"],[[7800,7800],"mapped",[7801]],[[7801,7801],"valid"],[[7802,7802],"mapped",[7803]],[[7803,7803],"valid"],[[7804,7804],"mapped",[7805]],[[7805,7805],"valid"],[[7806,7806],"mapped",[7807]],[[7807,7807],"valid"],[[7808,7808],"mapped",[7809]],[[7809,7809],"valid"],[[7810,7810],"mapped",[7811]],[[7811,7811],"valid"],[[7812,7812],"mapped",[7813]],[[7813,7813],"valid"],[[7814,7814],"mapped",[7815]],[[7815,7815],"valid"],[[7816,7816],"mapped",[7817]],[[7817,7817],"valid"],[[7818,7818],"mapped",[7819]],[[7819,7819],"valid"],[[7820,7820],"mapped",[7821]],[[7821,7821],"valid"],[[7822,7822],"mapped",[7823]],[[7823,7823],"valid"],[[7824,7824],"mapped",[7825]],[[7825,7825],"valid"],[[7826,7826],"mapped",[7827]],[[7827,7827],"valid"],[[7828,7828],"mapped",[7829]],[[7829,7833],"valid"],[[7834,7834],"mapped",[97,702]],[[7835,7835],"mapped",[7777]],[[7836,7837],"valid"],[[7838,7838],"mapped",[115,115]],[[7839,7839],"valid"],[[7840,7840],"mapped",[7841]],[[7841,7841],"valid"],[[7842,7842],"mapped",[7843]],[[7843,7843],"valid"],[[7844,7844],"mapped",[7845]],[[7845,7845],"valid"],[[7846,7846],"mapped",[7847]],[[7847,7847],"valid"],[[7848,7848],"mapped",[7849]],[[7849,7849],"valid"],[[7850,7850],"mapped",[7851]],[[7851,7851],"valid"],[[7852,7852],"mapped",[7853]],[[7853,7853],"valid"],[[7854,7854],"mapped",[7855]],[[7855,7855],"valid"],[[7856,7856],"mapped",[7857]],[[7857,7857],"valid"],[[7858,7858],"mapped",[7859]],[[7859,7859],"valid"],[[7860,7860],"mapped",[7861]],[[7861,7861],"valid"],[[7862,7862],"mapped",[7863]],[[7863,7863],"valid"],[[7864,7864],"mapped",[7865]],[[7865,7865],"valid"],[[7866,7866],"mapped",[7867]],[[7867,7867],"valid"],[[7868,7868],"mapped",[7869]],[[7869,7869],"valid"],[[7870,7870],"mapped",[7871]],[[7871,7871],"valid"],[[7872,7872],"mapped",[7873]],[[7873,7873],"valid"],[[7874,7874],"mapped",[7875]],[[7875,7875],"valid"],[[7876,7876],"mapped",[7877]],[[7877,7877],"valid"],[[7878,7878],"mapped",[7879]],[[7879,7879],"valid"],[[7880,7880],"mapped",[7881]],[[7881,7881],"valid"],[[7882,7882],"mapped",[7883]],[[7883,7883],"valid"],[[7884,7884],"mapped",[7885]],[[7885,7885],"valid"],[[7886,7886],"mapped",[7887]],[[7887,7887],"valid"],[[7888,7888],"mapped",[7889]],[[7889,7889],"valid"],[[7890,7890],"mapped",[7891]],[[7891,7891],"valid"],[[7892,7892],"mapped",[7893]],[[7893,7893],"valid"],[[7894,7894],"mapped",[7895]],[[7895,7895],"valid"],[[7896,7896],"mapped",[7897]],[[7897,7897],"valid"],[[7898,7898],"mapped",[7899]],[[7899,7899],"valid"],[[7900,7900],"mapped",[7901]],[[7901,7901],"valid"],[[7902,7902],"mapped",[7903]],[[7903,7903],"valid"],[[7904,7904],"mapped",[7905]],[[7905,7905],"valid"],[[7906,7906],"mapped",[7907]],[[7907,7907],"valid"],[[7908,7908],"mapped",[7909]],[[7909,7909],"valid"],[[7910,7910],"mapped",[7911]],[[7911,7911],"valid"],[[7912,7912],"mapped",[7913]],[[7913,7913],"valid"],[[7914,7914],"mapped",[7915]],[[7915,7915],"valid"],[[7916,7916],"mapped",[7917]],[[7917,7917],"valid"],[[7918,7918],"mapped",[7919]],[[7919,7919],"valid"],[[7920,7920],"mapped",[7921]],[[7921,7921],"valid"],[[7922,7922],"mapped",[7923]],[[7923,7923],"valid"],[[7924,7924],"mapped",[7925]],[[7925,7925],"valid"],[[7926,7926],"mapped",[7927]],[[7927,7927],"valid"],[[7928,7928],"mapped",[7929]],[[7929,7929],"valid"],[[7930,7930],"mapped",[7931]],[[7931,7931],"valid"],[[7932,7932],"mapped",[7933]],[[7933,7933],"valid"],[[7934,7934],"mapped",[7935]],[[7935,7935],"valid"],[[7936,7943],"valid"],[[7944,7944],"mapped",[7936]],[[7945,7945],"mapped",[7937]],[[7946,7946],"mapped",[7938]],[[7947,7947],"mapped",[7939]],[[7948,7948],"mapped",[7940]],[[7949,7949],"mapped",[7941]],[[7950,7950],"mapped",[7942]],[[7951,7951],"mapped",[7943]],[[7952,7957],"valid"],[[7958,7959],"disallowed"],[[7960,7960],"mapped",[7952]],[[7961,7961],"mapped",[7953]],[[7962,7962],"mapped",[7954]],[[7963,7963],"mapped",[7955]],[[7964,7964],"mapped",[7956]],[[7965,7965],"mapped",[7957]],[[7966,7967],"disallowed"],[[7968,7975],"valid"],[[7976,7976],"mapped",[7968]],[[7977,7977],"mapped",[7969]],[[7978,7978],"mapped",[7970]],[[7979,7979],"mapped",[7971]],[[7980,7980],"mapped",[7972]],[[7981,7981],"mapped",[7973]],[[7982,7982],"mapped",[7974]],[[7983,7983],"mapped",[7975]],[[7984,7991],"valid"],[[7992,7992],"mapped",[7984]],[[7993,7993],"mapped",[7985]],[[7994,7994],"mapped",[7986]],[[7995,7995],"mapped",[7987]],[[7996,7996],"mapped",[7988]],[[7997,7997],"mapped",[7989]],[[7998,7998],"mapped",[7990]],[[7999,7999],"mapped",[7991]],[[8e3,8005],"valid"],[[8006,8007],"disallowed"],[[8008,8008],"mapped",[8e3]],[[8009,8009],"mapped",[8001]],[[8010,8010],"mapped",[8002]],[[8011,8011],"mapped",[8003]],[[8012,8012],"mapped",[8004]],[[8013,8013],"mapped",[8005]],[[8014,8015],"disallowed"],[[8016,8023],"valid"],[[8024,8024],"disallowed"],[[8025,8025],"mapped",[8017]],[[8026,8026],"disallowed"],[[8027,8027],"mapped",[8019]],[[8028,8028],"disallowed"],[[8029,8029],"mapped",[8021]],[[8030,8030],"disallowed"],[[8031,8031],"mapped",[8023]],[[8032,8039],"valid"],[[8040,8040],"mapped",[8032]],[[8041,8041],"mapped",[8033]],[[8042,8042],"mapped",[8034]],[[8043,8043],"mapped",[8035]],[[8044,8044],"mapped",[8036]],[[8045,8045],"mapped",[8037]],[[8046,8046],"mapped",[8038]],[[8047,8047],"mapped",[8039]],[[8048,8048],"valid"],[[8049,8049],"mapped",[940]],[[8050,8050],"valid"],[[8051,8051],"mapped",[941]],[[8052,8052],"valid"],[[8053,8053],"mapped",[942]],[[8054,8054],"valid"],[[8055,8055],"mapped",[943]],[[8056,8056],"valid"],[[8057,8057],"mapped",[972]],[[8058,8058],"valid"],[[8059,8059],"mapped",[973]],[[8060,8060],"valid"],[[8061,8061],"mapped",[974]],[[8062,8063],"disallowed"],[[8064,8064],"mapped",[7936,953]],[[8065,8065],"mapped",[7937,953]],[[8066,8066],"mapped",[7938,953]],[[8067,8067],"mapped",[7939,953]],[[8068,8068],"mapped",[7940,953]],[[8069,8069],"mapped",[7941,953]],[[8070,8070],"mapped",[7942,953]],[[8071,8071],"mapped",[7943,953]],[[8072,8072],"mapped",[7936,953]],[[8073,8073],"mapped",[7937,953]],[[8074,8074],"mapped",[7938,953]],[[8075,8075],"mapped",[7939,953]],[[8076,8076],"mapped",[7940,953]],[[8077,8077],"mapped",[7941,953]],[[8078,8078],"mapped",[7942,953]],[[8079,8079],"mapped",[7943,953]],[[8080,8080],"mapped",[7968,953]],[[8081,8081],"mapped",[7969,953]],[[8082,8082],"mapped",[7970,953]],[[8083,8083],"mapped",[7971,953]],[[8084,8084],"mapped",[7972,953]],[[8085,8085],"mapped",[7973,953]],[[8086,8086],"mapped",[7974,953]],[[8087,8087],"mapped",[7975,953]],[[8088,8088],"mapped",[7968,953]],[[8089,8089],"mapped",[7969,953]],[[8090,8090],"mapped",[7970,953]],[[8091,8091],"mapped",[7971,953]],[[8092,8092],"mapped",[7972,953]],[[8093,8093],"mapped",[7973,953]],[[8094,8094],"mapped",[7974,953]],[[8095,8095],"mapped",[7975,953]],[[8096,8096],"mapped",[8032,953]],[[8097,8097],"mapped",[8033,953]],[[8098,8098],"mapped",[8034,953]],[[8099,8099],"mapped",[8035,953]],[[8100,8100],"mapped",[8036,953]],[[8101,8101],"mapped",[8037,953]],[[8102,8102],"mapped",[8038,953]],[[8103,8103],"mapped",[8039,953]],[[8104,8104],"mapped",[8032,953]],[[8105,8105],"mapped",[8033,953]],[[8106,8106],"mapped",[8034,953]],[[8107,8107],"mapped",[8035,953]],[[8108,8108],"mapped",[8036,953]],[[8109,8109],"mapped",[8037,953]],[[8110,8110],"mapped",[8038,953]],[[8111,8111],"mapped",[8039,953]],[[8112,8113],"valid"],[[8114,8114],"mapped",[8048,953]],[[8115,8115],"mapped",[945,953]],[[8116,8116],"mapped",[940,953]],[[8117,8117],"disallowed"],[[8118,8118],"valid"],[[8119,8119],"mapped",[8118,953]],[[8120,8120],"mapped",[8112]],[[8121,8121],"mapped",[8113]],[[8122,8122],"mapped",[8048]],[[8123,8123],"mapped",[940]],[[8124,8124],"mapped",[945,953]],[[8125,8125],"disallowed_STD3_mapped",[32,787]],[[8126,8126],"mapped",[953]],[[8127,8127],"disallowed_STD3_mapped",[32,787]],[[8128,8128],"disallowed_STD3_mapped",[32,834]],[[8129,8129],"disallowed_STD3_mapped",[32,776,834]],[[8130,8130],"mapped",[8052,953]],[[8131,8131],"mapped",[951,953]],[[8132,8132],"mapped",[942,953]],[[8133,8133],"disallowed"],[[8134,8134],"valid"],[[8135,8135],"mapped",[8134,953]],[[8136,8136],"mapped",[8050]],[[8137,8137],"mapped",[941]],[[8138,8138],"mapped",[8052]],[[8139,8139],"mapped",[942]],[[8140,8140],"mapped",[951,953]],[[8141,8141],"disallowed_STD3_mapped",[32,787,768]],[[8142,8142],"disallowed_STD3_mapped",[32,787,769]],[[8143,8143],"disallowed_STD3_mapped",[32,787,834]],[[8144,8146],"valid"],[[8147,8147],"mapped",[912]],[[8148,8149],"disallowed"],[[8150,8151],"valid"],[[8152,8152],"mapped",[8144]],[[8153,8153],"mapped",[8145]],[[8154,8154],"mapped",[8054]],[[8155,8155],"mapped",[943]],[[8156,8156],"disallowed"],[[8157,8157],"disallowed_STD3_mapped",[32,788,768]],[[8158,8158],"disallowed_STD3_mapped",[32,788,769]],[[8159,8159],"disallowed_STD3_mapped",[32,788,834]],[[8160,8162],"valid"],[[8163,8163],"mapped",[944]],[[8164,8167],"valid"],[[8168,8168],"mapped",[8160]],[[8169,8169],"mapped",[8161]],[[8170,8170],"mapped",[8058]],[[8171,8171],"mapped",[973]],[[8172,8172],"mapped",[8165]],[[8173,8173],"disallowed_STD3_mapped",[32,776,768]],[[8174,8174],"disallowed_STD3_mapped",[32,776,769]],[[8175,8175],"disallowed_STD3_mapped",[96]],[[8176,8177],"disallowed"],[[8178,8178],"mapped",[8060,953]],[[8179,8179],"mapped",[969,953]],[[8180,8180],"mapped",[974,953]],[[8181,8181],"disallowed"],[[8182,8182],"valid"],[[8183,8183],"mapped",[8182,953]],[[8184,8184],"mapped",[8056]],[[8185,8185],"mapped",[972]],[[8186,8186],"mapped",[8060]],[[8187,8187],"mapped",[974]],[[8188,8188],"mapped",[969,953]],[[8189,8189],"disallowed_STD3_mapped",[32,769]],[[8190,8190],"disallowed_STD3_mapped",[32,788]],[[8191,8191],"disallowed"],[[8192,8202],"disallowed_STD3_mapped",[32]],[[8203,8203],"ignored"],[[8204,8205],"deviation",[]],[[8206,8207],"disallowed"],[[8208,8208],"valid",[],"NV8"],[[8209,8209],"mapped",[8208]],[[8210,8214],"valid",[],"NV8"],[[8215,8215],"disallowed_STD3_mapped",[32,819]],[[8216,8227],"valid",[],"NV8"],[[8228,8230],"disallowed"],[[8231,8231],"valid",[],"NV8"],[[8232,8238],"disallowed"],[[8239,8239],"disallowed_STD3_mapped",[32]],[[8240,8242],"valid",[],"NV8"],[[8243,8243],"mapped",[8242,8242]],[[8244,8244],"mapped",[8242,8242,8242]],[[8245,8245],"valid",[],"NV8"],[[8246,8246],"mapped",[8245,8245]],[[8247,8247],"mapped",[8245,8245,8245]],[[8248,8251],"valid",[],"NV8"],[[8252,8252],"disallowed_STD3_mapped",[33,33]],[[8253,8253],"valid",[],"NV8"],[[8254,8254],"disallowed_STD3_mapped",[32,773]],[[8255,8262],"valid",[],"NV8"],[[8263,8263],"disallowed_STD3_mapped",[63,63]],[[8264,8264],"disallowed_STD3_mapped",[63,33]],[[8265,8265],"disallowed_STD3_mapped",[33,63]],[[8266,8269],"valid",[],"NV8"],[[8270,8274],"valid",[],"NV8"],[[8275,8276],"valid",[],"NV8"],[[8277,8278],"valid",[],"NV8"],[[8279,8279],"mapped",[8242,8242,8242,8242]],[[8280,8286],"valid",[],"NV8"],[[8287,8287],"disallowed_STD3_mapped",[32]],[[8288,8288],"ignored"],[[8289,8291],"disallowed"],[[8292,8292],"ignored"],[[8293,8293],"disallowed"],[[8294,8297],"disallowed"],[[8298,8303],"disallowed"],[[8304,8304],"mapped",[48]],[[8305,8305],"mapped",[105]],[[8306,8307],"disallowed"],[[8308,8308],"mapped",[52]],[[8309,8309],"mapped",[53]],[[8310,8310],"mapped",[54]],[[8311,8311],"mapped",[55]],[[8312,8312],"mapped",[56]],[[8313,8313],"mapped",[57]],[[8314,8314],"disallowed_STD3_mapped",[43]],[[8315,8315],"mapped",[8722]],[[8316,8316],"disallowed_STD3_mapped",[61]],[[8317,8317],"disallowed_STD3_mapped",[40]],[[8318,8318],"disallowed_STD3_mapped",[41]],[[8319,8319],"mapped",[110]],[[8320,8320],"mapped",[48]],[[8321,8321],"mapped",[49]],[[8322,8322],"mapped",[50]],[[8323,8323],"mapped",[51]],[[8324,8324],"mapped",[52]],[[8325,8325],"mapped",[53]],[[8326,8326],"mapped",[54]],[[8327,8327],"mapped",[55]],[[8328,8328],"mapped",[56]],[[8329,8329],"mapped",[57]],[[8330,8330],"disallowed_STD3_mapped",[43]],[[8331,8331],"mapped",[8722]],[[8332,8332],"disallowed_STD3_mapped",[61]],[[8333,8333],"disallowed_STD3_mapped",[40]],[[8334,8334],"disallowed_STD3_mapped",[41]],[[8335,8335],"disallowed"],[[8336,8336],"mapped",[97]],[[8337,8337],"mapped",[101]],[[8338,8338],"mapped",[111]],[[8339,8339],"mapped",[120]],[[8340,8340],"mapped",[601]],[[8341,8341],"mapped",[104]],[[8342,8342],"mapped",[107]],[[8343,8343],"mapped",[108]],[[8344,8344],"mapped",[109]],[[8345,8345],"mapped",[110]],[[8346,8346],"mapped",[112]],[[8347,8347],"mapped",[115]],[[8348,8348],"mapped",[116]],[[8349,8351],"disallowed"],[[8352,8359],"valid",[],"NV8"],[[8360,8360],"mapped",[114,115]],[[8361,8362],"valid",[],"NV8"],[[8363,8363],"valid",[],"NV8"],[[8364,8364],"valid",[],"NV8"],[[8365,8367],"valid",[],"NV8"],[[8368,8369],"valid",[],"NV8"],[[8370,8373],"valid",[],"NV8"],[[8374,8376],"valid",[],"NV8"],[[8377,8377],"valid",[],"NV8"],[[8378,8378],"valid",[],"NV8"],[[8379,8381],"valid",[],"NV8"],[[8382,8382],"valid",[],"NV8"],[[8383,8399],"disallowed"],[[8400,8417],"valid",[],"NV8"],[[8418,8419],"valid",[],"NV8"],[[8420,8426],"valid",[],"NV8"],[[8427,8427],"valid",[],"NV8"],[[8428,8431],"valid",[],"NV8"],[[8432,8432],"valid",[],"NV8"],[[8433,8447],"disallowed"],[[8448,8448],"disallowed_STD3_mapped",[97,47,99]],[[8449,8449],"disallowed_STD3_mapped",[97,47,115]],[[8450,8450],"mapped",[99]],[[8451,8451],"mapped",[176,99]],[[8452,8452],"valid",[],"NV8"],[[8453,8453],"disallowed_STD3_mapped",[99,47,111]],[[8454,8454],"disallowed_STD3_mapped",[99,47,117]],[[8455,8455],"mapped",[603]],[[8456,8456],"valid",[],"NV8"],[[8457,8457],"mapped",[176,102]],[[8458,8458],"mapped",[103]],[[8459,8462],"mapped",[104]],[[8463,8463],"mapped",[295]],[[8464,8465],"mapped",[105]],[[8466,8467],"mapped",[108]],[[8468,8468],"valid",[],"NV8"],[[8469,8469],"mapped",[110]],[[8470,8470],"mapped",[110,111]],[[8471,8472],"valid",[],"NV8"],[[8473,8473],"mapped",[112]],[[8474,8474],"mapped",[113]],[[8475,8477],"mapped",[114]],[[8478,8479],"valid",[],"NV8"],[[8480,8480],"mapped",[115,109]],[[8481,8481],"mapped",[116,101,108]],[[8482,8482],"mapped",[116,109]],[[8483,8483],"valid",[],"NV8"],[[8484,8484],"mapped",[122]],[[8485,8485],"valid",[],"NV8"],[[8486,8486],"mapped",[969]],[[8487,8487],"valid",[],"NV8"],[[8488,8488],"mapped",[122]],[[8489,8489],"valid",[],"NV8"],[[8490,8490],"mapped",[107]],[[8491,8491],"mapped",[229]],[[8492,8492],"mapped",[98]],[[8493,8493],"mapped",[99]],[[8494,8494],"valid",[],"NV8"],[[8495,8496],"mapped",[101]],[[8497,8497],"mapped",[102]],[[8498,8498],"disallowed"],[[8499,8499],"mapped",[109]],[[8500,8500],"mapped",[111]],[[8501,8501],"mapped",[1488]],[[8502,8502],"mapped",[1489]],[[8503,8503],"mapped",[1490]],[[8504,8504],"mapped",[1491]],[[8505,8505],"mapped",[105]],[[8506,8506],"valid",[],"NV8"],[[8507,8507],"mapped",[102,97,120]],[[8508,8508],"mapped",[960]],[[8509,8510],"mapped",[947]],[[8511,8511],"mapped",[960]],[[8512,8512],"mapped",[8721]],[[8513,8516],"valid",[],"NV8"],[[8517,8518],"mapped",[100]],[[8519,8519],"mapped",[101]],[[8520,8520],"mapped",[105]],[[8521,8521],"mapped",[106]],[[8522,8523],"valid",[],"NV8"],[[8524,8524],"valid",[],"NV8"],[[8525,8525],"valid",[],"NV8"],[[8526,8526],"valid"],[[8527,8527],"valid",[],"NV8"],[[8528,8528],"mapped",[49,8260,55]],[[8529,8529],"mapped",[49,8260,57]],[[8530,8530],"mapped",[49,8260,49,48]],[[8531,8531],"mapped",[49,8260,51]],[[8532,8532],"mapped",[50,8260,51]],[[8533,8533],"mapped",[49,8260,53]],[[8534,8534],"mapped",[50,8260,53]],[[8535,8535],"mapped",[51,8260,53]],[[8536,8536],"mapped",[52,8260,53]],[[8537,8537],"mapped",[49,8260,54]],[[8538,8538],"mapped",[53,8260,54]],[[8539,8539],"mapped",[49,8260,56]],[[8540,8540],"mapped",[51,8260,56]],[[8541,8541],"mapped",[53,8260,56]],[[8542,8542],"mapped",[55,8260,56]],[[8543,8543],"mapped",[49,8260]],[[8544,8544],"mapped",[105]],[[8545,8545],"mapped",[105,105]],[[8546,8546],"mapped",[105,105,105]],[[8547,8547],"mapped",[105,118]],[[8548,8548],"mapped",[118]],[[8549,8549],"mapped",[118,105]],[[8550,8550],"mapped",[118,105,105]],[[8551,8551],"mapped",[118,105,105,105]],[[8552,8552],"mapped",[105,120]],[[8553,8553],"mapped",[120]],[[8554,8554],"mapped",[120,105]],[[8555,8555],"mapped",[120,105,105]],[[8556,8556],"mapped",[108]],[[8557,8557],"mapped",[99]],[[8558,8558],"mapped",[100]],[[8559,8559],"mapped",[109]],[[8560,8560],"mapped",[105]],[[8561,8561],"mapped",[105,105]],[[8562,8562],"mapped",[105,105,105]],[[8563,8563],"mapped",[105,118]],[[8564,8564],"mapped",[118]],[[8565,8565],"mapped",[118,105]],[[8566,8566],"mapped",[118,105,105]],[[8567,8567],"mapped",[118,105,105,105]],[[8568,8568],"mapped",[105,120]],[[8569,8569],"mapped",[120]],[[8570,8570],"mapped",[120,105]],[[8571,8571],"mapped",[120,105,105]],[[8572,8572],"mapped",[108]],[[8573,8573],"mapped",[99]],[[8574,8574],"mapped",[100]],[[8575,8575],"mapped",[109]],[[8576,8578],"valid",[],"NV8"],[[8579,8579],"disallowed"],[[8580,8580],"valid"],[[8581,8584],"valid",[],"NV8"],[[8585,8585],"mapped",[48,8260,51]],[[8586,8587],"valid",[],"NV8"],[[8588,8591],"disallowed"],[[8592,8682],"valid",[],"NV8"],[[8683,8691],"valid",[],"NV8"],[[8692,8703],"valid",[],"NV8"],[[8704,8747],"valid",[],"NV8"],[[8748,8748],"mapped",[8747,8747]],[[8749,8749],"mapped",[8747,8747,8747]],[[8750,8750],"valid",[],"NV8"],[[8751,8751],"mapped",[8750,8750]],[[8752,8752],"mapped",[8750,8750,8750]],[[8753,8799],"valid",[],"NV8"],[[8800,8800],"disallowed_STD3_valid"],[[8801,8813],"valid",[],"NV8"],[[8814,8815],"disallowed_STD3_valid"],[[8816,8945],"valid",[],"NV8"],[[8946,8959],"valid",[],"NV8"],[[8960,8960],"valid",[],"NV8"],[[8961,8961],"valid",[],"NV8"],[[8962,9e3],"valid",[],"NV8"],[[9001,9001],"mapped",[12296]],[[9002,9002],"mapped",[12297]],[[9003,9082],"valid",[],"NV8"],[[9083,9083],"valid",[],"NV8"],[[9084,9084],"valid",[],"NV8"],[[9085,9114],"valid",[],"NV8"],[[9115,9166],"valid",[],"NV8"],[[9167,9168],"valid",[],"NV8"],[[9169,9179],"valid",[],"NV8"],[[9180,9191],"valid",[],"NV8"],[[9192,9192],"valid",[],"NV8"],[[9193,9203],"valid",[],"NV8"],[[9204,9210],"valid",[],"NV8"],[[9211,9215],"disallowed"],[[9216,9252],"valid",[],"NV8"],[[9253,9254],"valid",[],"NV8"],[[9255,9279],"disallowed"],[[9280,9290],"valid",[],"NV8"],[[9291,9311],"disallowed"],[[9312,9312],"mapped",[49]],[[9313,9313],"mapped",[50]],[[9314,9314],"mapped",[51]],[[9315,9315],"mapped",[52]],[[9316,9316],"mapped",[53]],[[9317,9317],"mapped",[54]],[[9318,9318],"mapped",[55]],[[9319,9319],"mapped",[56]],[[9320,9320],"mapped",[57]],[[9321,9321],"mapped",[49,48]],[[9322,9322],"mapped",[49,49]],[[9323,9323],"mapped",[49,50]],[[9324,9324],"mapped",[49,51]],[[9325,9325],"mapped",[49,52]],[[9326,9326],"mapped",[49,53]],[[9327,9327],"mapped",[49,54]],[[9328,9328],"mapped",[49,55]],[[9329,9329],"mapped",[49,56]],[[9330,9330],"mapped",[49,57]],[[9331,9331],"mapped",[50,48]],[[9332,9332],"disallowed_STD3_mapped",[40,49,41]],[[9333,9333],"disallowed_STD3_mapped",[40,50,41]],[[9334,9334],"disallowed_STD3_mapped",[40,51,41]],[[9335,9335],"disallowed_STD3_mapped",[40,52,41]],[[9336,9336],"disallowed_STD3_mapped",[40,53,41]],[[9337,9337],"disallowed_STD3_mapped",[40,54,41]],[[9338,9338],"disallowed_STD3_mapped",[40,55,41]],[[9339,9339],"disallowed_STD3_mapped",[40,56,41]],[[9340,9340],"disallowed_STD3_mapped",[40,57,41]],[[9341,9341],"disallowed_STD3_mapped",[40,49,48,41]],[[9342,9342],"disallowed_STD3_mapped",[40,49,49,41]],[[9343,9343],"disallowed_STD3_mapped",[40,49,50,41]],[[9344,9344],"disallowed_STD3_mapped",[40,49,51,41]],[[9345,9345],"disallowed_STD3_mapped",[40,49,52,41]],[[9346,9346],"disallowed_STD3_mapped",[40,49,53,41]],[[9347,9347],"disallowed_STD3_mapped",[40,49,54,41]],[[9348,9348],"disallowed_STD3_mapped",[40,49,55,41]],[[9349,9349],"disallowed_STD3_mapped",[40,49,56,41]],[[9350,9350],"disallowed_STD3_mapped",[40,49,57,41]],[[9351,9351],"disallowed_STD3_mapped",[40,50,48,41]],[[9352,9371],"disallowed"],[[9372,9372],"disallowed_STD3_mapped",[40,97,41]],[[9373,9373],"disallowed_STD3_mapped",[40,98,41]],[[9374,9374],"disallowed_STD3_mapped",[40,99,41]],[[9375,9375],"disallowed_STD3_mapped",[40,100,41]],[[9376,9376],"disallowed_STD3_mapped",[40,101,41]],[[9377,9377],"disallowed_STD3_mapped",[40,102,41]],[[9378,9378],"disallowed_STD3_mapped",[40,103,41]],[[9379,9379],"disallowed_STD3_mapped",[40,104,41]],[[9380,9380],"disallowed_STD3_mapped",[40,105,41]],[[9381,9381],"disallowed_STD3_mapped",[40,106,41]],[[9382,9382],"disallowed_STD3_mapped",[40,107,41]],[[9383,9383],"disallowed_STD3_mapped",[40,108,41]],[[9384,9384],"disallowed_STD3_mapped",[40,109,41]],[[9385,9385],"disallowed_STD3_mapped",[40,110,41]],[[9386,9386],"disallowed_STD3_mapped",[40,111,41]],[[9387,9387],"disallowed_STD3_mapped",[40,112,41]],[[9388,9388],"disallowed_STD3_mapped",[40,113,41]],[[9389,9389],"disallowed_STD3_mapped",[40,114,41]],[[9390,9390],"disallowed_STD3_mapped",[40,115,41]],[[9391,9391],"disallowed_STD3_mapped",[40,116,41]],[[9392,9392],"disallowed_STD3_mapped",[40,117,41]],[[9393,9393],"disallowed_STD3_mapped",[40,118,41]],[[9394,9394],"disallowed_STD3_mapped",[40,119,41]],[[9395,9395],"disallowed_STD3_mapped",[40,120,41]],[[9396,9396],"disallowed_STD3_mapped",[40,121,41]],[[9397,9397],"disallowed_STD3_mapped",[40,122,41]],[[9398,9398],"mapped",[97]],[[9399,9399],"mapped",[98]],[[9400,9400],"mapped",[99]],[[9401,9401],"mapped",[100]],[[9402,9402],"mapped",[101]],[[9403,9403],"mapped",[102]],[[9404,9404],"mapped",[103]],[[9405,9405],"mapped",[104]],[[9406,9406],"mapped",[105]],[[9407,9407],"mapped",[106]],[[9408,9408],"mapped",[107]],[[9409,9409],"mapped",[108]],[[9410,9410],"mapped",[109]],[[9411,9411],"mapped",[110]],[[9412,9412],"mapped",[111]],[[9413,9413],"mapped",[112]],[[9414,9414],"mapped",[113]],[[9415,9415],"mapped",[114]],[[9416,9416],"mapped",[115]],[[9417,9417],"mapped",[116]],[[9418,9418],"mapped",[117]],[[9419,9419],"mapped",[118]],[[9420,9420],"mapped",[119]],[[9421,9421],"mapped",[120]],[[9422,9422],"mapped",[121]],[[9423,9423],"mapped",[122]],[[9424,9424],"mapped",[97]],[[9425,9425],"mapped",[98]],[[9426,9426],"mapped",[99]],[[9427,9427],"mapped",[100]],[[9428,9428],"mapped",[101]],[[9429,9429],"mapped",[102]],[[9430,9430],"mapped",[103]],[[9431,9431],"mapped",[104]],[[9432,9432],"mapped",[105]],[[9433,9433],"mapped",[106]],[[9434,9434],"mapped",[107]],[[9435,9435],"mapped",[108]],[[9436,9436],"mapped",[109]],[[9437,9437],"mapped",[110]],[[9438,9438],"mapped",[111]],[[9439,9439],"mapped",[112]],[[9440,9440],"mapped",[113]],[[9441,9441],"mapped",[114]],[[9442,9442],"mapped",[115]],[[9443,9443],"mapped",[116]],[[9444,9444],"mapped",[117]],[[9445,9445],"mapped",[118]],[[9446,9446],"mapped",[119]],[[9447,9447],"mapped",[120]],[[9448,9448],"mapped",[121]],[[9449,9449],"mapped",[122]],[[9450,9450],"mapped",[48]],[[9451,9470],"valid",[],"NV8"],[[9471,9471],"valid",[],"NV8"],[[9472,9621],"valid",[],"NV8"],[[9622,9631],"valid",[],"NV8"],[[9632,9711],"valid",[],"NV8"],[[9712,9719],"valid",[],"NV8"],[[9720,9727],"valid",[],"NV8"],[[9728,9747],"valid",[],"NV8"],[[9748,9749],"valid",[],"NV8"],[[9750,9751],"valid",[],"NV8"],[[9752,9752],"valid",[],"NV8"],[[9753,9753],"valid",[],"NV8"],[[9754,9839],"valid",[],"NV8"],[[9840,9841],"valid",[],"NV8"],[[9842,9853],"valid",[],"NV8"],[[9854,9855],"valid",[],"NV8"],[[9856,9865],"valid",[],"NV8"],[[9866,9873],"valid",[],"NV8"],[[9874,9884],"valid",[],"NV8"],[[9885,9885],"valid",[],"NV8"],[[9886,9887],"valid",[],"NV8"],[[9888,9889],"valid",[],"NV8"],[[9890,9905],"valid",[],"NV8"],[[9906,9906],"valid",[],"NV8"],[[9907,9916],"valid",[],"NV8"],[[9917,9919],"valid",[],"NV8"],[[9920,9923],"valid",[],"NV8"],[[9924,9933],"valid",[],"NV8"],[[9934,9934],"valid",[],"NV8"],[[9935,9953],"valid",[],"NV8"],[[9954,9954],"valid",[],"NV8"],[[9955,9955],"valid",[],"NV8"],[[9956,9959],"valid",[],"NV8"],[[9960,9983],"valid",[],"NV8"],[[9984,9984],"valid",[],"NV8"],[[9985,9988],"valid",[],"NV8"],[[9989,9989],"valid",[],"NV8"],[[9990,9993],"valid",[],"NV8"],[[9994,9995],"valid",[],"NV8"],[[9996,10023],"valid",[],"NV8"],[[10024,10024],"valid",[],"NV8"],[[10025,10059],"valid",[],"NV8"],[[10060,10060],"valid",[],"NV8"],[[10061,10061],"valid",[],"NV8"],[[10062,10062],"valid",[],"NV8"],[[10063,10066],"valid",[],"NV8"],[[10067,10069],"valid",[],"NV8"],[[10070,10070],"valid",[],"NV8"],[[10071,10071],"valid",[],"NV8"],[[10072,10078],"valid",[],"NV8"],[[10079,10080],"valid",[],"NV8"],[[10081,10087],"valid",[],"NV8"],[[10088,10101],"valid",[],"NV8"],[[10102,10132],"valid",[],"NV8"],[[10133,10135],"valid",[],"NV8"],[[10136,10159],"valid",[],"NV8"],[[10160,10160],"valid",[],"NV8"],[[10161,10174],"valid",[],"NV8"],[[10175,10175],"valid",[],"NV8"],[[10176,10182],"valid",[],"NV8"],[[10183,10186],"valid",[],"NV8"],[[10187,10187],"valid",[],"NV8"],[[10188,10188],"valid",[],"NV8"],[[10189,10189],"valid",[],"NV8"],[[10190,10191],"valid",[],"NV8"],[[10192,10219],"valid",[],"NV8"],[[10220,10223],"valid",[],"NV8"],[[10224,10239],"valid",[],"NV8"],[[10240,10495],"valid",[],"NV8"],[[10496,10763],"valid",[],"NV8"],[[10764,10764],"mapped",[8747,8747,8747,8747]],[[10765,10867],"valid",[],"NV8"],[[10868,10868],"disallowed_STD3_mapped",[58,58,61]],[[10869,10869],"disallowed_STD3_mapped",[61,61]],[[10870,10870],"disallowed_STD3_mapped",[61,61,61]],[[10871,10971],"valid",[],"NV8"],[[10972,10972],"mapped",[10973,824]],[[10973,11007],"valid",[],"NV8"],[[11008,11021],"valid",[],"NV8"],[[11022,11027],"valid",[],"NV8"],[[11028,11034],"valid",[],"NV8"],[[11035,11039],"valid",[],"NV8"],[[11040,11043],"valid",[],"NV8"],[[11044,11084],"valid",[],"NV8"],[[11085,11087],"valid",[],"NV8"],[[11088,11092],"valid",[],"NV8"],[[11093,11097],"valid",[],"NV8"],[[11098,11123],"valid",[],"NV8"],[[11124,11125],"disallowed"],[[11126,11157],"valid",[],"NV8"],[[11158,11159],"disallowed"],[[11160,11193],"valid",[],"NV8"],[[11194,11196],"disallowed"],[[11197,11208],"valid",[],"NV8"],[[11209,11209],"disallowed"],[[11210,11217],"valid",[],"NV8"],[[11218,11243],"disallowed"],[[11244,11247],"valid",[],"NV8"],[[11248,11263],"disallowed"],[[11264,11264],"mapped",[11312]],[[11265,11265],"mapped",[11313]],[[11266,11266],"mapped",[11314]],[[11267,11267],"mapped",[11315]],[[11268,11268],"mapped",[11316]],[[11269,11269],"mapped",[11317]],[[11270,11270],"mapped",[11318]],[[11271,11271],"mapped",[11319]],[[11272,11272],"mapped",[11320]],[[11273,11273],"mapped",[11321]],[[11274,11274],"mapped",[11322]],[[11275,11275],"mapped",[11323]],[[11276,11276],"mapped",[11324]],[[11277,11277],"mapped",[11325]],[[11278,11278],"mapped",[11326]],[[11279,11279],"mapped",[11327]],[[11280,11280],"mapped",[11328]],[[11281,11281],"mapped",[11329]],[[11282,11282],"mapped",[11330]],[[11283,11283],"mapped",[11331]],[[11284,11284],"mapped",[11332]],[[11285,11285],"mapped",[11333]],[[11286,11286],"mapped",[11334]],[[11287,11287],"mapped",[11335]],[[11288,11288],"mapped",[11336]],[[11289,11289],"mapped",[11337]],[[11290,11290],"mapped",[11338]],[[11291,11291],"mapped",[11339]],[[11292,11292],"mapped",[11340]],[[11293,11293],"mapped",[11341]],[[11294,11294],"mapped",[11342]],[[11295,11295],"mapped",[11343]],[[11296,11296],"mapped",[11344]],[[11297,11297],"mapped",[11345]],[[11298,11298],"mapped",[11346]],[[11299,11299],"mapped",[11347]],[[11300,11300],"mapped",[11348]],[[11301,11301],"mapped",[11349]],[[11302,11302],"mapped",[11350]],[[11303,11303],"mapped",[11351]],[[11304,11304],"mapped",[11352]],[[11305,11305],"mapped",[11353]],[[11306,11306],"mapped",[11354]],[[11307,11307],"mapped",[11355]],[[11308,11308],"mapped",[11356]],[[11309,11309],"mapped",[11357]],[[11310,11310],"mapped",[11358]],[[11311,11311],"disallowed"],[[11312,11358],"valid"],[[11359,11359],"disallowed"],[[11360,11360],"mapped",[11361]],[[11361,11361],"valid"],[[11362,11362],"mapped",[619]],[[11363,11363],"mapped",[7549]],[[11364,11364],"mapped",[637]],[[11365,11366],"valid"],[[11367,11367],"mapped",[11368]],[[11368,11368],"valid"],[[11369,11369],"mapped",[11370]],[[11370,11370],"valid"],[[11371,11371],"mapped",[11372]],[[11372,11372],"valid"],[[11373,11373],"mapped",[593]],[[11374,11374],"mapped",[625]],[[11375,11375],"mapped",[592]],[[11376,11376],"mapped",[594]],[[11377,11377],"valid"],[[11378,11378],"mapped",[11379]],[[11379,11379],"valid"],[[11380,11380],"valid"],[[11381,11381],"mapped",[11382]],[[11382,11383],"valid"],[[11384,11387],"valid"],[[11388,11388],"mapped",[106]],[[11389,11389],"mapped",[118]],[[11390,11390],"mapped",[575]],[[11391,11391],"mapped",[576]],[[11392,11392],"mapped",[11393]],[[11393,11393],"valid"],[[11394,11394],"mapped",[11395]],[[11395,11395],"valid"],[[11396,11396],"mapped",[11397]],[[11397,11397],"valid"],[[11398,11398],"mapped",[11399]],[[11399,11399],"valid"],[[11400,11400],"mapped",[11401]],[[11401,11401],"valid"],[[11402,11402],"mapped",[11403]],[[11403,11403],"valid"],[[11404,11404],"mapped",[11405]],[[11405,11405],"valid"],[[11406,11406],"mapped",[11407]],[[11407,11407],"valid"],[[11408,11408],"mapped",[11409]],[[11409,11409],"valid"],[[11410,11410],"mapped",[11411]],[[11411,11411],"valid"],[[11412,11412],"mapped",[11413]],[[11413,11413],"valid"],[[11414,11414],"mapped",[11415]],[[11415,11415],"valid"],[[11416,11416],"mapped",[11417]],[[11417,11417],"valid"],[[11418,11418],"mapped",[11419]],[[11419,11419],"valid"],[[11420,11420],"mapped",[11421]],[[11421,11421],"valid"],[[11422,11422],"mapped",[11423]],[[11423,11423],"valid"],[[11424,11424],"mapped",[11425]],[[11425,11425],"valid"],[[11426,11426],"mapped",[11427]],[[11427,11427],"valid"],[[11428,11428],"mapped",[11429]],[[11429,11429],"valid"],[[11430,11430],"mapped",[11431]],[[11431,11431],"valid"],[[11432,11432],"mapped",[11433]],[[11433,11433],"valid"],[[11434,11434],"mapped",[11435]],[[11435,11435],"valid"],[[11436,11436],"mapped",[11437]],[[11437,11437],"valid"],[[11438,11438],"mapped",[11439]],[[11439,11439],"valid"],[[11440,11440],"mapped",[11441]],[[11441,11441],"valid"],[[11442,11442],"mapped",[11443]],[[11443,11443],"valid"],[[11444,11444],"mapped",[11445]],[[11445,11445],"valid"],[[11446,11446],"mapped",[11447]],[[11447,11447],"valid"],[[11448,11448],"mapped",[11449]],[[11449,11449],"valid"],[[11450,11450],"mapped",[11451]],[[11451,11451],"valid"],[[11452,11452],"mapped",[11453]],[[11453,11453],"valid"],[[11454,11454],"mapped",[11455]],[[11455,11455],"valid"],[[11456,11456],"mapped",[11457]],[[11457,11457],"valid"],[[11458,11458],"mapped",[11459]],[[11459,11459],"valid"],[[11460,11460],"mapped",[11461]],[[11461,11461],"valid"],[[11462,11462],"mapped",[11463]],[[11463,11463],"valid"],[[11464,11464],"mapped",[11465]],[[11465,11465],"valid"],[[11466,11466],"mapped",[11467]],[[11467,11467],"valid"],[[11468,11468],"mapped",[11469]],[[11469,11469],"valid"],[[11470,11470],"mapped",[11471]],[[11471,11471],"valid"],[[11472,11472],"mapped",[11473]],[[11473,11473],"valid"],[[11474,11474],"mapped",[11475]],[[11475,11475],"valid"],[[11476,11476],"mapped",[11477]],[[11477,11477],"valid"],[[11478,11478],"mapped",[11479]],[[11479,11479],"valid"],[[11480,11480],"mapped",[11481]],[[11481,11481],"valid"],[[11482,11482],"mapped",[11483]],[[11483,11483],"valid"],[[11484,11484],"mapped",[11485]],[[11485,11485],"valid"],[[11486,11486],"mapped",[11487]],[[11487,11487],"valid"],[[11488,11488],"mapped",[11489]],[[11489,11489],"valid"],[[11490,11490],"mapped",[11491]],[[11491,11492],"valid"],[[11493,11498],"valid",[],"NV8"],[[11499,11499],"mapped",[11500]],[[11500,11500],"valid"],[[11501,11501],"mapped",[11502]],[[11502,11505],"valid"],[[11506,11506],"mapped",[11507]],[[11507,11507],"valid"],[[11508,11512],"disallowed"],[[11513,11519],"valid",[],"NV8"],[[11520,11557],"valid"],[[11558,11558],"disallowed"],[[11559,11559],"valid"],[[11560,11564],"disallowed"],[[11565,11565],"valid"],[[11566,11567],"disallowed"],[[11568,11621],"valid"],[[11622,11623],"valid"],[[11624,11630],"disallowed"],[[11631,11631],"mapped",[11617]],[[11632,11632],"valid",[],"NV8"],[[11633,11646],"disallowed"],[[11647,11647],"valid"],[[11648,11670],"valid"],[[11671,11679],"disallowed"],[[11680,11686],"valid"],[[11687,11687],"disallowed"],[[11688,11694],"valid"],[[11695,11695],"disallowed"],[[11696,11702],"valid"],[[11703,11703],"disallowed"],[[11704,11710],"valid"],[[11711,11711],"disallowed"],[[11712,11718],"valid"],[[11719,11719],"disallowed"],[[11720,11726],"valid"],[[11727,11727],"disallowed"],[[11728,11734],"valid"],[[11735,11735],"disallowed"],[[11736,11742],"valid"],[[11743,11743],"disallowed"],[[11744,11775],"valid"],[[11776,11799],"valid",[],"NV8"],[[11800,11803],"valid",[],"NV8"],[[11804,11805],"valid",[],"NV8"],[[11806,11822],"valid",[],"NV8"],[[11823,11823],"valid"],[[11824,11824],"valid",[],"NV8"],[[11825,11825],"valid",[],"NV8"],[[11826,11835],"valid",[],"NV8"],[[11836,11842],"valid",[],"NV8"],[[11843,11903],"disallowed"],[[11904,11929],"valid",[],"NV8"],[[11930,11930],"disallowed"],[[11931,11934],"valid",[],"NV8"],[[11935,11935],"mapped",[27597]],[[11936,12018],"valid",[],"NV8"],[[12019,12019],"mapped",[40863]],[[12020,12031],"disallowed"],[[12032,12032],"mapped",[19968]],[[12033,12033],"mapped",[20008]],[[12034,12034],"mapped",[20022]],[[12035,12035],"mapped",[20031]],[[12036,12036],"mapped",[20057]],[[12037,12037],"mapped",[20101]],[[12038,12038],"mapped",[20108]],[[12039,12039],"mapped",[20128]],[[12040,12040],"mapped",[20154]],[[12041,12041],"mapped",[20799]],[[12042,12042],"mapped",[20837]],[[12043,12043],"mapped",[20843]],[[12044,12044],"mapped",[20866]],[[12045,12045],"mapped",[20886]],[[12046,12046],"mapped",[20907]],[[12047,12047],"mapped",[20960]],[[12048,12048],"mapped",[20981]],[[12049,12049],"mapped",[20992]],[[12050,12050],"mapped",[21147]],[[12051,12051],"mapped",[21241]],[[12052,12052],"mapped",[21269]],[[12053,12053],"mapped",[21274]],[[12054,12054],"mapped",[21304]],[[12055,12055],"mapped",[21313]],[[12056,12056],"mapped",[21340]],[[12057,12057],"mapped",[21353]],[[12058,12058],"mapped",[21378]],[[12059,12059],"mapped",[21430]],[[12060,12060],"mapped",[21448]],[[12061,12061],"mapped",[21475]],[[12062,12062],"mapped",[22231]],[[12063,12063],"mapped",[22303]],[[12064,12064],"mapped",[22763]],[[12065,12065],"mapped",[22786]],[[12066,12066],"mapped",[22794]],[[12067,12067],"mapped",[22805]],[[12068,12068],"mapped",[22823]],[[12069,12069],"mapped",[22899]],[[12070,12070],"mapped",[23376]],[[12071,12071],"mapped",[23424]],[[12072,12072],"mapped",[23544]],[[12073,12073],"mapped",[23567]],[[12074,12074],"mapped",[23586]],[[12075,12075],"mapped",[23608]],[[12076,12076],"mapped",[23662]],[[12077,12077],"mapped",[23665]],[[12078,12078],"mapped",[24027]],[[12079,12079],"mapped",[24037]],[[12080,12080],"mapped",[24049]],[[12081,12081],"mapped",[24062]],[[12082,12082],"mapped",[24178]],[[12083,12083],"mapped",[24186]],[[12084,12084],"mapped",[24191]],[[12085,12085],"mapped",[24308]],[[12086,12086],"mapped",[24318]],[[12087,12087],"mapped",[24331]],[[12088,12088],"mapped",[24339]],[[12089,12089],"mapped",[24400]],[[12090,12090],"mapped",[24417]],[[12091,12091],"mapped",[24435]],[[12092,12092],"mapped",[24515]],[[12093,12093],"mapped",[25096]],[[12094,12094],"mapped",[25142]],[[12095,12095],"mapped",[25163]],[[12096,12096],"mapped",[25903]],[[12097,12097],"mapped",[25908]],[[12098,12098],"mapped",[25991]],[[12099,12099],"mapped",[26007]],[[12100,12100],"mapped",[26020]],[[12101,12101],"mapped",[26041]],[[12102,12102],"mapped",[26080]],[[12103,12103],"mapped",[26085]],[[12104,12104],"mapped",[26352]],[[12105,12105],"mapped",[26376]],[[12106,12106],"mapped",[26408]],[[12107,12107],"mapped",[27424]],[[12108,12108],"mapped",[27490]],[[12109,12109],"mapped",[27513]],[[12110,12110],"mapped",[27571]],[[12111,12111],"mapped",[27595]],[[12112,12112],"mapped",[27604]],[[12113,12113],"mapped",[27611]],[[12114,12114],"mapped",[27663]],[[12115,12115],"mapped",[27668]],[[12116,12116],"mapped",[27700]],[[12117,12117],"mapped",[28779]],[[12118,12118],"mapped",[29226]],[[12119,12119],"mapped",[29238]],[[12120,12120],"mapped",[29243]],[[12121,12121],"mapped",[29247]],[[12122,12122],"mapped",[29255]],[[12123,12123],"mapped",[29273]],[[12124,12124],"mapped",[29275]],[[12125,12125],"mapped",[29356]],[[12126,12126],"mapped",[29572]],[[12127,12127],"mapped",[29577]],[[12128,12128],"mapped",[29916]],[[12129,12129],"mapped",[29926]],[[12130,12130],"mapped",[29976]],[[12131,12131],"mapped",[29983]],[[12132,12132],"mapped",[29992]],[[12133,12133],"mapped",[3e4]],[[12134,12134],"mapped",[30091]],[[12135,12135],"mapped",[30098]],[[12136,12136],"mapped",[30326]],[[12137,12137],"mapped",[30333]],[[12138,12138],"mapped",[30382]],[[12139,12139],"mapped",[30399]],[[12140,12140],"mapped",[30446]],[[12141,12141],"mapped",[30683]],[[12142,12142],"mapped",[30690]],[[12143,12143],"mapped",[30707]],[[12144,12144],"mapped",[31034]],[[12145,12145],"mapped",[31160]],[[12146,12146],"mapped",[31166]],[[12147,12147],"mapped",[31348]],[[12148,12148],"mapped",[31435]],[[12149,12149],"mapped",[31481]],[[12150,12150],"mapped",[31859]],[[12151,12151],"mapped",[31992]],[[12152,12152],"mapped",[32566]],[[12153,12153],"mapped",[32593]],[[12154,12154],"mapped",[32650]],[[12155,12155],"mapped",[32701]],[[12156,12156],"mapped",[32769]],[[12157,12157],"mapped",[32780]],[[12158,12158],"mapped",[32786]],[[12159,12159],"mapped",[32819]],[[12160,12160],"mapped",[32895]],[[12161,12161],"mapped",[32905]],[[12162,12162],"mapped",[33251]],[[12163,12163],"mapped",[33258]],[[12164,12164],"mapped",[33267]],[[12165,12165],"mapped",[33276]],[[12166,12166],"mapped",[33292]],[[12167,12167],"mapped",[33307]],[[12168,12168],"mapped",[33311]],[[12169,12169],"mapped",[33390]],[[12170,12170],"mapped",[33394]],[[12171,12171],"mapped",[33400]],[[12172,12172],"mapped",[34381]],[[12173,12173],"mapped",[34411]],[[12174,12174],"mapped",[34880]],[[12175,12175],"mapped",[34892]],[[12176,12176],"mapped",[34915]],[[12177,12177],"mapped",[35198]],[[12178,12178],"mapped",[35211]],[[12179,12179],"mapped",[35282]],[[12180,12180],"mapped",[35328]],[[12181,12181],"mapped",[35895]],[[12182,12182],"mapped",[35910]],[[12183,12183],"mapped",[35925]],[[12184,12184],"mapped",[35960]],[[12185,12185],"mapped",[35997]],[[12186,12186],"mapped",[36196]],[[12187,12187],"mapped",[36208]],[[12188,12188],"mapped",[36275]],[[12189,12189],"mapped",[36523]],[[12190,12190],"mapped",[36554]],[[12191,12191],"mapped",[36763]],[[12192,12192],"mapped",[36784]],[[12193,12193],"mapped",[36789]],[[12194,12194],"mapped",[37009]],[[12195,12195],"mapped",[37193]],[[12196,12196],"mapped",[37318]],[[12197,12197],"mapped",[37324]],[[12198,12198],"mapped",[37329]],[[12199,12199],"mapped",[38263]],[[12200,12200],"mapped",[38272]],[[12201,12201],"mapped",[38428]],[[12202,12202],"mapped",[38582]],[[12203,12203],"mapped",[38585]],[[12204,12204],"mapped",[38632]],[[12205,12205],"mapped",[38737]],[[12206,12206],"mapped",[38750]],[[12207,12207],"mapped",[38754]],[[12208,12208],"mapped",[38761]],[[12209,12209],"mapped",[38859]],[[12210,12210],"mapped",[38893]],[[12211,12211],"mapped",[38899]],[[12212,12212],"mapped",[38913]],[[12213,12213],"mapped",[39080]],[[12214,12214],"mapped",[39131]],[[12215,12215],"mapped",[39135]],[[12216,12216],"mapped",[39318]],[[12217,12217],"mapped",[39321]],[[12218,12218],"mapped",[39340]],[[12219,12219],"mapped",[39592]],[[12220,12220],"mapped",[39640]],[[12221,12221],"mapped",[39647]],[[12222,12222],"mapped",[39717]],[[12223,12223],"mapped",[39727]],[[12224,12224],"mapped",[39730]],[[12225,12225],"mapped",[39740]],[[12226,12226],"mapped",[39770]],[[12227,12227],"mapped",[40165]],[[12228,12228],"mapped",[40565]],[[12229,12229],"mapped",[40575]],[[12230,12230],"mapped",[40613]],[[12231,12231],"mapped",[40635]],[[12232,12232],"mapped",[40643]],[[12233,12233],"mapped",[40653]],[[12234,12234],"mapped",[40657]],[[12235,12235],"mapped",[40697]],[[12236,12236],"mapped",[40701]],[[12237,12237],"mapped",[40718]],[[12238,12238],"mapped",[40723]],[[12239,12239],"mapped",[40736]],[[12240,12240],"mapped",[40763]],[[12241,12241],"mapped",[40778]],[[12242,12242],"mapped",[40786]],[[12243,12243],"mapped",[40845]],[[12244,12244],"mapped",[40860]],[[12245,12245],"mapped",[40864]],[[12246,12271],"disallowed"],[[12272,12283],"disallowed"],[[12284,12287],"disallowed"],[[12288,12288],"disallowed_STD3_mapped",[32]],[[12289,12289],"valid",[],"NV8"],[[12290,12290],"mapped",[46]],[[12291,12292],"valid",[],"NV8"],[[12293,12295],"valid"],[[12296,12329],"valid",[],"NV8"],[[12330,12333],"valid"],[[12334,12341],"valid",[],"NV8"],[[12342,12342],"mapped",[12306]],[[12343,12343],"valid",[],"NV8"],[[12344,12344],"mapped",[21313]],[[12345,12345],"mapped",[21316]],[[12346,12346],"mapped",[21317]],[[12347,12347],"valid",[],"NV8"],[[12348,12348],"valid"],[[12349,12349],"valid",[],"NV8"],[[12350,12350],"valid",[],"NV8"],[[12351,12351],"valid",[],"NV8"],[[12352,12352],"disallowed"],[[12353,12436],"valid"],[[12437,12438],"valid"],[[12439,12440],"disallowed"],[[12441,12442],"valid"],[[12443,12443],"disallowed_STD3_mapped",[32,12441]],[[12444,12444],"disallowed_STD3_mapped",[32,12442]],[[12445,12446],"valid"],[[12447,12447],"mapped",[12424,12426]],[[12448,12448],"valid",[],"NV8"],[[12449,12542],"valid"],[[12543,12543],"mapped",[12467,12488]],[[12544,12548],"disallowed"],[[12549,12588],"valid"],[[12589,12589],"valid"],[[12590,12592],"disallowed"],[[12593,12593],"mapped",[4352]],[[12594,12594],"mapped",[4353]],[[12595,12595],"mapped",[4522]],[[12596,12596],"mapped",[4354]],[[12597,12597],"mapped",[4524]],[[12598,12598],"mapped",[4525]],[[12599,12599],"mapped",[4355]],[[12600,12600],"mapped",[4356]],[[12601,12601],"mapped",[4357]],[[12602,12602],"mapped",[4528]],[[12603,12603],"mapped",[4529]],[[12604,12604],"mapped",[4530]],[[12605,12605],"mapped",[4531]],[[12606,12606],"mapped",[4532]],[[12607,12607],"mapped",[4533]],[[12608,12608],"mapped",[4378]],[[12609,12609],"mapped",[4358]],[[12610,12610],"mapped",[4359]],[[12611,12611],"mapped",[4360]],[[12612,12612],"mapped",[4385]],[[12613,12613],"mapped",[4361]],[[12614,12614],"mapped",[4362]],[[12615,12615],"mapped",[4363]],[[12616,12616],"mapped",[4364]],[[12617,12617],"mapped",[4365]],[[12618,12618],"mapped",[4366]],[[12619,12619],"mapped",[4367]],[[12620,12620],"mapped",[4368]],[[12621,12621],"mapped",[4369]],[[12622,12622],"mapped",[4370]],[[12623,12623],"mapped",[4449]],[[12624,12624],"mapped",[4450]],[[12625,12625],"mapped",[4451]],[[12626,12626],"mapped",[4452]],[[12627,12627],"mapped",[4453]],[[12628,12628],"mapped",[4454]],[[12629,12629],"mapped",[4455]],[[12630,12630],"mapped",[4456]],[[12631,12631],"mapped",[4457]],[[12632,12632],"mapped",[4458]],[[12633,12633],"mapped",[4459]],[[12634,12634],"mapped",[4460]],[[12635,12635],"mapped",[4461]],[[12636,12636],"mapped",[4462]],[[12637,12637],"mapped",[4463]],[[12638,12638],"mapped",[4464]],[[12639,12639],"mapped",[4465]],[[12640,12640],"mapped",[4466]],[[12641,12641],"mapped",[4467]],[[12642,12642],"mapped",[4468]],[[12643,12643],"mapped",[4469]],[[12644,12644],"disallowed"],[[12645,12645],"mapped",[4372]],[[12646,12646],"mapped",[4373]],[[12647,12647],"mapped",[4551]],[[12648,12648],"mapped",[4552]],[[12649,12649],"mapped",[4556]],[[12650,12650],"mapped",[4558]],[[12651,12651],"mapped",[4563]],[[12652,12652],"mapped",[4567]],[[12653,12653],"mapped",[4569]],[[12654,12654],"mapped",[4380]],[[12655,12655],"mapped",[4573]],[[12656,12656],"mapped",[4575]],[[12657,12657],"mapped",[4381]],[[12658,12658],"mapped",[4382]],[[12659,12659],"mapped",[4384]],[[12660,12660],"mapped",[4386]],[[12661,12661],"mapped",[4387]],[[12662,12662],"mapped",[4391]],[[12663,12663],"mapped",[4393]],[[12664,12664],"mapped",[4395]],[[12665,12665],"mapped",[4396]],[[12666,12666],"mapped",[4397]],[[12667,12667],"mapped",[4398]],[[12668,12668],"mapped",[4399]],[[12669,12669],"mapped",[4402]],[[12670,12670],"mapped",[4406]],[[12671,12671],"mapped",[4416]],[[12672,12672],"mapped",[4423]],[[12673,12673],"mapped",[4428]],[[12674,12674],"mapped",[4593]],[[12675,12675],"mapped",[4594]],[[12676,12676],"mapped",[4439]],[[12677,12677],"mapped",[4440]],[[12678,12678],"mapped",[4441]],[[12679,12679],"mapped",[4484]],[[12680,12680],"mapped",[4485]],[[12681,12681],"mapped",[4488]],[[12682,12682],"mapped",[4497]],[[12683,12683],"mapped",[4498]],[[12684,12684],"mapped",[4500]],[[12685,12685],"mapped",[4510]],[[12686,12686],"mapped",[4513]],[[12687,12687],"disallowed"],[[12688,12689],"valid",[],"NV8"],[[12690,12690],"mapped",[19968]],[[12691,12691],"mapped",[20108]],[[12692,12692],"mapped",[19977]],[[12693,12693],"mapped",[22235]],[[12694,12694],"mapped",[19978]],[[12695,12695],"mapped",[20013]],[[12696,12696],"mapped",[19979]],[[12697,12697],"mapped",[30002]],[[12698,12698],"mapped",[20057]],[[12699,12699],"mapped",[19993]],[[12700,12700],"mapped",[19969]],[[12701,12701],"mapped",[22825]],[[12702,12702],"mapped",[22320]],[[12703,12703],"mapped",[20154]],[[12704,12727],"valid"],[[12728,12730],"valid"],[[12731,12735],"disallowed"],[[12736,12751],"valid",[],"NV8"],[[12752,12771],"valid",[],"NV8"],[[12772,12783],"disallowed"],[[12784,12799],"valid"],[[12800,12800],"disallowed_STD3_mapped",[40,4352,41]],[[12801,12801],"disallowed_STD3_mapped",[40,4354,41]],[[12802,12802],"disallowed_STD3_mapped",[40,4355,41]],[[12803,12803],"disallowed_STD3_mapped",[40,4357,41]],[[12804,12804],"disallowed_STD3_mapped",[40,4358,41]],[[12805,12805],"disallowed_STD3_mapped",[40,4359,41]],[[12806,12806],"disallowed_STD3_mapped",[40,4361,41]],[[12807,12807],"disallowed_STD3_mapped",[40,4363,41]],[[12808,12808],"disallowed_STD3_mapped",[40,4364,41]],[[12809,12809],"disallowed_STD3_mapped",[40,4366,41]],[[12810,12810],"disallowed_STD3_mapped",[40,4367,41]],[[12811,12811],"disallowed_STD3_mapped",[40,4368,41]],[[12812,12812],"disallowed_STD3_mapped",[40,4369,41]],[[12813,12813],"disallowed_STD3_mapped",[40,4370,41]],[[12814,12814],"disallowed_STD3_mapped",[40,44032,41]],[[12815,12815],"disallowed_STD3_mapped",[40,45208,41]],[[12816,12816],"disallowed_STD3_mapped",[40,45796,41]],[[12817,12817],"disallowed_STD3_mapped",[40,46972,41]],[[12818,12818],"disallowed_STD3_mapped",[40,47560,41]],[[12819,12819],"disallowed_STD3_mapped",[40,48148,41]],[[12820,12820],"disallowed_STD3_mapped",[40,49324,41]],[[12821,12821],"disallowed_STD3_mapped",[40,50500,41]],[[12822,12822],"disallowed_STD3_mapped",[40,51088,41]],[[12823,12823],"disallowed_STD3_mapped",[40,52264,41]],[[12824,12824],"disallowed_STD3_mapped",[40,52852,41]],[[12825,12825],"disallowed_STD3_mapped",[40,53440,41]],[[12826,12826],"disallowed_STD3_mapped",[40,54028,41]],[[12827,12827],"disallowed_STD3_mapped",[40,54616,41]],[[12828,12828],"disallowed_STD3_mapped",[40,51452,41]],[[12829,12829],"disallowed_STD3_mapped",[40,50724,51204,41]],[[12830,12830],"disallowed_STD3_mapped",[40,50724,54980,41]],[[12831,12831],"disallowed"],[[12832,12832],"disallowed_STD3_mapped",[40,19968,41]],[[12833,12833],"disallowed_STD3_mapped",[40,20108,41]],[[12834,12834],"disallowed_STD3_mapped",[40,19977,41]],[[12835,12835],"disallowed_STD3_mapped",[40,22235,41]],[[12836,12836],"disallowed_STD3_mapped",[40,20116,41]],[[12837,12837],"disallowed_STD3_mapped",[40,20845,41]],[[12838,12838],"disallowed_STD3_mapped",[40,19971,41]],[[12839,12839],"disallowed_STD3_mapped",[40,20843,41]],[[12840,12840],"disallowed_STD3_mapped",[40,20061,41]],[[12841,12841],"disallowed_STD3_mapped",[40,21313,41]],[[12842,12842],"disallowed_STD3_mapped",[40,26376,41]],[[12843,12843],"disallowed_STD3_mapped",[40,28779,41]],[[12844,12844],"disallowed_STD3_mapped",[40,27700,41]],[[12845,12845],"disallowed_STD3_mapped",[40,26408,41]],[[12846,12846],"disallowed_STD3_mapped",[40,37329,41]],[[12847,12847],"disallowed_STD3_mapped",[40,22303,41]],[[12848,12848],"disallowed_STD3_mapped",[40,26085,41]],[[12849,12849],"disallowed_STD3_mapped",[40,26666,41]],[[12850,12850],"disallowed_STD3_mapped",[40,26377,41]],[[12851,12851],"disallowed_STD3_mapped",[40,31038,41]],[[12852,12852],"disallowed_STD3_mapped",[40,21517,41]],[[12853,12853],"disallowed_STD3_mapped",[40,29305,41]],[[12854,12854],"disallowed_STD3_mapped",[40,36001,41]],[[12855,12855],"disallowed_STD3_mapped",[40,31069,41]],[[12856,12856],"disallowed_STD3_mapped",[40,21172,41]],[[12857,12857],"disallowed_STD3_mapped",[40,20195,41]],[[12858,12858],"disallowed_STD3_mapped",[40,21628,41]],[[12859,12859],"disallowed_STD3_mapped",[40,23398,41]],[[12860,12860],"disallowed_STD3_mapped",[40,30435,41]],[[12861,12861],"disallowed_STD3_mapped",[40,20225,41]],[[12862,12862],"disallowed_STD3_mapped",[40,36039,41]],[[12863,12863],"disallowed_STD3_mapped",[40,21332,41]],[[12864,12864],"disallowed_STD3_mapped",[40,31085,41]],[[12865,12865],"disallowed_STD3_mapped",[40,20241,41]],[[12866,12866],"disallowed_STD3_mapped",[40,33258,41]],[[12867,12867],"disallowed_STD3_mapped",[40,33267,41]],[[12868,12868],"mapped",[21839]],[[12869,12869],"mapped",[24188]],[[12870,12870],"mapped",[25991]],[[12871,12871],"mapped",[31631]],[[12872,12879],"valid",[],"NV8"],[[12880,12880],"mapped",[112,116,101]],[[12881,12881],"mapped",[50,49]],[[12882,12882],"mapped",[50,50]],[[12883,12883],"mapped",[50,51]],[[12884,12884],"mapped",[50,52]],[[12885,12885],"mapped",[50,53]],[[12886,12886],"mapped",[50,54]],[[12887,12887],"mapped",[50,55]],[[12888,12888],"mapped",[50,56]],[[12889,12889],"mapped",[50,57]],[[12890,12890],"mapped",[51,48]],[[12891,12891],"mapped",[51,49]],[[12892,12892],"mapped",[51,50]],[[12893,12893],"mapped",[51,51]],[[12894,12894],"mapped",[51,52]],[[12895,12895],"mapped",[51,53]],[[12896,12896],"mapped",[4352]],[[12897,12897],"mapped",[4354]],[[12898,12898],"mapped",[4355]],[[12899,12899],"mapped",[4357]],[[12900,12900],"mapped",[4358]],[[12901,12901],"mapped",[4359]],[[12902,12902],"mapped",[4361]],[[12903,12903],"mapped",[4363]],[[12904,12904],"mapped",[4364]],[[12905,12905],"mapped",[4366]],[[12906,12906],"mapped",[4367]],[[12907,12907],"mapped",[4368]],[[12908,12908],"mapped",[4369]],[[12909,12909],"mapped",[4370]],[[12910,12910],"mapped",[44032]],[[12911,12911],"mapped",[45208]],[[12912,12912],"mapped",[45796]],[[12913,12913],"mapped",[46972]],[[12914,12914],"mapped",[47560]],[[12915,12915],"mapped",[48148]],[[12916,12916],"mapped",[49324]],[[12917,12917],"mapped",[50500]],[[12918,12918],"mapped",[51088]],[[12919,12919],"mapped",[52264]],[[12920,12920],"mapped",[52852]],[[12921,12921],"mapped",[53440]],[[12922,12922],"mapped",[54028]],[[12923,12923],"mapped",[54616]],[[12924,12924],"mapped",[52280,44256]],[[12925,12925],"mapped",[51452,51032]],[[12926,12926],"mapped",[50864]],[[12927,12927],"valid",[],"NV8"],[[12928,12928],"mapped",[19968]],[[12929,12929],"mapped",[20108]],[[12930,12930],"mapped",[19977]],[[12931,12931],"mapped",[22235]],[[12932,12932],"mapped",[20116]],[[12933,12933],"mapped",[20845]],[[12934,12934],"mapped",[19971]],[[12935,12935],"mapped",[20843]],[[12936,12936],"mapped",[20061]],[[12937,12937],"mapped",[21313]],[[12938,12938],"mapped",[26376]],[[12939,12939],"mapped",[28779]],[[12940,12940],"mapped",[27700]],[[12941,12941],"mapped",[26408]],[[12942,12942],"mapped",[37329]],[[12943,12943],"mapped",[22303]],[[12944,12944],"mapped",[26085]],[[12945,12945],"mapped",[26666]],[[12946,12946],"mapped",[26377]],[[12947,12947],"mapped",[31038]],[[12948,12948],"mapped",[21517]],[[12949,12949],"mapped",[29305]],[[12950,12950],"mapped",[36001]],[[12951,12951],"mapped",[31069]],[[12952,12952],"mapped",[21172]],[[12953,12953],"mapped",[31192]],[[12954,12954],"mapped",[30007]],[[12955,12955],"mapped",[22899]],[[12956,12956],"mapped",[36969]],[[12957,12957],"mapped",[20778]],[[12958,12958],"mapped",[21360]],[[12959,12959],"mapped",[27880]],[[12960,12960],"mapped",[38917]],[[12961,12961],"mapped",[20241]],[[12962,12962],"mapped",[20889]],[[12963,12963],"mapped",[27491]],[[12964,12964],"mapped",[19978]],[[12965,12965],"mapped",[20013]],[[12966,12966],"mapped",[19979]],[[12967,12967],"mapped",[24038]],[[12968,12968],"mapped",[21491]],[[12969,12969],"mapped",[21307]],[[12970,12970],"mapped",[23447]],[[12971,12971],"mapped",[23398]],[[12972,12972],"mapped",[30435]],[[12973,12973],"mapped",[20225]],[[12974,12974],"mapped",[36039]],[[12975,12975],"mapped",[21332]],[[12976,12976],"mapped",[22812]],[[12977,12977],"mapped",[51,54]],[[12978,12978],"mapped",[51,55]],[[12979,12979],"mapped",[51,56]],[[12980,12980],"mapped",[51,57]],[[12981,12981],"mapped",[52,48]],[[12982,12982],"mapped",[52,49]],[[12983,12983],"mapped",[52,50]],[[12984,12984],"mapped",[52,51]],[[12985,12985],"mapped",[52,52]],[[12986,12986],"mapped",[52,53]],[[12987,12987],"mapped",[52,54]],[[12988,12988],"mapped",[52,55]],[[12989,12989],"mapped",[52,56]],[[12990,12990],"mapped",[52,57]],[[12991,12991],"mapped",[53,48]],[[12992,12992],"mapped",[49,26376]],[[12993,12993],"mapped",[50,26376]],[[12994,12994],"mapped",[51,26376]],[[12995,12995],"mapped",[52,26376]],[[12996,12996],"mapped",[53,26376]],[[12997,12997],"mapped",[54,26376]],[[12998,12998],"mapped",[55,26376]],[[12999,12999],"mapped",[56,26376]],[[13e3,13e3],"mapped",[57,26376]],[[13001,13001],"mapped",[49,48,26376]],[[13002,13002],"mapped",[49,49,26376]],[[13003,13003],"mapped",[49,50,26376]],[[13004,13004],"mapped",[104,103]],[[13005,13005],"mapped",[101,114,103]],[[13006,13006],"mapped",[101,118]],[[13007,13007],"mapped",[108,116,100]],[[13008,13008],"mapped",[12450]],[[13009,13009],"mapped",[12452]],[[13010,13010],"mapped",[12454]],[[13011,13011],"mapped",[12456]],[[13012,13012],"mapped",[12458]],[[13013,13013],"mapped",[12459]],[[13014,13014],"mapped",[12461]],[[13015,13015],"mapped",[12463]],[[13016,13016],"mapped",[12465]],[[13017,13017],"mapped",[12467]],[[13018,13018],"mapped",[12469]],[[13019,13019],"mapped",[12471]],[[13020,13020],"mapped",[12473]],[[13021,13021],"mapped",[12475]],[[13022,13022],"mapped",[12477]],[[13023,13023],"mapped",[12479]],[[13024,13024],"mapped",[12481]],[[13025,13025],"mapped",[12484]],[[13026,13026],"mapped",[12486]],[[13027,13027],"mapped",[12488]],[[13028,13028],"mapped",[12490]],[[13029,13029],"mapped",[12491]],[[13030,13030],"mapped",[12492]],[[13031,13031],"mapped",[12493]],[[13032,13032],"mapped",[12494]],[[13033,13033],"mapped",[12495]],[[13034,13034],"mapped",[12498]],[[13035,13035],"mapped",[12501]],[[13036,13036],"mapped",[12504]],[[13037,13037],"mapped",[12507]],[[13038,13038],"mapped",[12510]],[[13039,13039],"mapped",[12511]],[[13040,13040],"mapped",[12512]],[[13041,13041],"mapped",[12513]],[[13042,13042],"mapped",[12514]],[[13043,13043],"mapped",[12516]],[[13044,13044],"mapped",[12518]],[[13045,13045],"mapped",[12520]],[[13046,13046],"mapped",[12521]],[[13047,13047],"mapped",[12522]],[[13048,13048],"mapped",[12523]],[[13049,13049],"mapped",[12524]],[[13050,13050],"mapped",[12525]],[[13051,13051],"mapped",[12527]],[[13052,13052],"mapped",[12528]],[[13053,13053],"mapped",[12529]],[[13054,13054],"mapped",[12530]],[[13055,13055],"disallowed"],[[13056,13056],"mapped",[12450,12497,12540,12488]],[[13057,13057],"mapped",[12450,12523,12501,12449]],[[13058,13058],"mapped",[12450,12531,12506,12450]],[[13059,13059],"mapped",[12450,12540,12523]],[[13060,13060],"mapped",[12452,12491,12531,12464]],[[13061,13061],"mapped",[12452,12531,12481]],[[13062,13062],"mapped",[12454,12457,12531]],[[13063,13063],"mapped",[12456,12473,12463,12540,12489]],[[13064,13064],"mapped",[12456,12540,12459,12540]],[[13065,13065],"mapped",[12458,12531,12473]],[[13066,13066],"mapped",[12458,12540,12512]],[[13067,13067],"mapped",[12459,12452,12522]],[[13068,13068],"mapped",[12459,12521,12483,12488]],[[13069,13069],"mapped",[12459,12525,12522,12540]],[[13070,13070],"mapped",[12460,12525,12531]],[[13071,13071],"mapped",[12460,12531,12510]],[[13072,13072],"mapped",[12462,12460]],[[13073,13073],"mapped",[12462,12491,12540]],[[13074,13074],"mapped",[12461,12517,12522,12540]],[[13075,13075],"mapped",[12462,12523,12480,12540]],[[13076,13076],"mapped",[12461,12525]],[[13077,13077],"mapped",[12461,12525,12464,12521,12512]],[[13078,13078],"mapped",[12461,12525,12513,12540,12488,12523]],[[13079,13079],"mapped",[12461,12525,12527,12483,12488]],[[13080,13080],"mapped",[12464,12521,12512]],[[13081,13081],"mapped",[12464,12521,12512,12488,12531]],[[13082,13082],"mapped",[12463,12523,12476,12452,12525]],[[13083,13083],"mapped",[12463,12525,12540,12493]],[[13084,13084],"mapped",[12465,12540,12473]],[[13085,13085],"mapped",[12467,12523,12490]],[[13086,13086],"mapped",[12467,12540,12509]],[[13087,13087],"mapped",[12469,12452,12463,12523]],[[13088,13088],"mapped",[12469,12531,12481,12540,12512]],[[13089,13089],"mapped",[12471,12522,12531,12464]],[[13090,13090],"mapped",[12475,12531,12481]],[[13091,13091],"mapped",[12475,12531,12488]],[[13092,13092],"mapped",[12480,12540,12473]],[[13093,13093],"mapped",[12487,12471]],[[13094,13094],"mapped",[12489,12523]],[[13095,13095],"mapped",[12488,12531]],[[13096,13096],"mapped",[12490,12494]],[[13097,13097],"mapped",[12494,12483,12488]],[[13098,13098],"mapped",[12495,12452,12484]],[[13099,13099],"mapped",[12497,12540,12475,12531,12488]],[[13100,13100],"mapped",[12497,12540,12484]],[[13101,13101],"mapped",[12496,12540,12524,12523]],[[13102,13102],"mapped",[12500,12450,12473,12488,12523]],[[13103,13103],"mapped",[12500,12463,12523]],[[13104,13104],"mapped",[12500,12467]],[[13105,13105],"mapped",[12499,12523]],[[13106,13106],"mapped",[12501,12449,12521,12483,12489]],[[13107,13107],"mapped",[12501,12451,12540,12488]],[[13108,13108],"mapped",[12502,12483,12471,12455,12523]],[[13109,13109],"mapped",[12501,12521,12531]],[[13110,13110],"mapped",[12504,12463,12479,12540,12523]],[[13111,13111],"mapped",[12506,12477]],[[13112,13112],"mapped",[12506,12491,12498]],[[13113,13113],"mapped",[12504,12523,12484]],[[13114,13114],"mapped",[12506,12531,12473]],[[13115,13115],"mapped",[12506,12540,12472]],[[13116,13116],"mapped",[12505,12540,12479]],[[13117,13117],"mapped",[12509,12452,12531,12488]],[[13118,13118],"mapped",[12508,12523,12488]],[[13119,13119],"mapped",[12507,12531]],[[13120,13120],"mapped",[12509,12531,12489]],[[13121,13121],"mapped",[12507,12540,12523]],[[13122,13122],"mapped",[12507,12540,12531]],[[13123,13123],"mapped",[12510,12452,12463,12525]],[[13124,13124],"mapped",[12510,12452,12523]],[[13125,13125],"mapped",[12510,12483,12495]],[[13126,13126],"mapped",[12510,12523,12463]],[[13127,13127],"mapped",[12510,12531,12471,12519,12531]],[[13128,13128],"mapped",[12511,12463,12525,12531]],[[13129,13129],"mapped",[12511,12522]],[[13130,13130],"mapped",[12511,12522,12496,12540,12523]],[[13131,13131],"mapped",[12513,12460]],[[13132,13132],"mapped",[12513,12460,12488,12531]],[[13133,13133],"mapped",[12513,12540,12488,12523]],[[13134,13134],"mapped",[12516,12540,12489]],[[13135,13135],"mapped",[12516,12540,12523]],[[13136,13136],"mapped",[12518,12450,12531]],[[13137,13137],"mapped",[12522,12483,12488,12523]],[[13138,13138],"mapped",[12522,12521]],[[13139,13139],"mapped",[12523,12500,12540]],[[13140,13140],"mapped",[12523,12540,12502,12523]],[[13141,13141],"mapped",[12524,12512]],[[13142,13142],"mapped",[12524,12531,12488,12466,12531]],[[13143,13143],"mapped",[12527,12483,12488]],[[13144,13144],"mapped",[48,28857]],[[13145,13145],"mapped",[49,28857]],[[13146,13146],"mapped",[50,28857]],[[13147,13147],"mapped",[51,28857]],[[13148,13148],"mapped",[52,28857]],[[13149,13149],"mapped",[53,28857]],[[13150,13150],"mapped",[54,28857]],[[13151,13151],"mapped",[55,28857]],[[13152,13152],"mapped",[56,28857]],[[13153,13153],"mapped",[57,28857]],[[13154,13154],"mapped",[49,48,28857]],[[13155,13155],"mapped",[49,49,28857]],[[13156,13156],"mapped",[49,50,28857]],[[13157,13157],"mapped",[49,51,28857]],[[13158,13158],"mapped",[49,52,28857]],[[13159,13159],"mapped",[49,53,28857]],[[13160,13160],"mapped",[49,54,28857]],[[13161,13161],"mapped",[49,55,28857]],[[13162,13162],"mapped",[49,56,28857]],[[13163,13163],"mapped",[49,57,28857]],[[13164,13164],"mapped",[50,48,28857]],[[13165,13165],"mapped",[50,49,28857]],[[13166,13166],"mapped",[50,50,28857]],[[13167,13167],"mapped",[50,51,28857]],[[13168,13168],"mapped",[50,52,28857]],[[13169,13169],"mapped",[104,112,97]],[[13170,13170],"mapped",[100,97]],[[13171,13171],"mapped",[97,117]],[[13172,13172],"mapped",[98,97,114]],[[13173,13173],"mapped",[111,118]],[[13174,13174],"mapped",[112,99]],[[13175,13175],"mapped",[100,109]],[[13176,13176],"mapped",[100,109,50]],[[13177,13177],"mapped",[100,109,51]],[[13178,13178],"mapped",[105,117]],[[13179,13179],"mapped",[24179,25104]],[[13180,13180],"mapped",[26157,21644]],[[13181,13181],"mapped",[22823,27491]],[[13182,13182],"mapped",[26126,27835]],[[13183,13183],"mapped",[26666,24335,20250,31038]],[[13184,13184],"mapped",[112,97]],[[13185,13185],"mapped",[110,97]],[[13186,13186],"mapped",[956,97]],[[13187,13187],"mapped",[109,97]],[[13188,13188],"mapped",[107,97]],[[13189,13189],"mapped",[107,98]],[[13190,13190],"mapped",[109,98]],[[13191,13191],"mapped",[103,98]],[[13192,13192],"mapped",[99,97,108]],[[13193,13193],"mapped",[107,99,97,108]],[[13194,13194],"mapped",[112,102]],[[13195,13195],"mapped",[110,102]],[[13196,13196],"mapped",[956,102]],[[13197,13197],"mapped",[956,103]],[[13198,13198],"mapped",[109,103]],[[13199,13199],"mapped",[107,103]],[[13200,13200],"mapped",[104,122]],[[13201,13201],"mapped",[107,104,122]],[[13202,13202],"mapped",[109,104,122]],[[13203,13203],"mapped",[103,104,122]],[[13204,13204],"mapped",[116,104,122]],[[13205,13205],"mapped",[956,108]],[[13206,13206],"mapped",[109,108]],[[13207,13207],"mapped",[100,108]],[[13208,13208],"mapped",[107,108]],[[13209,13209],"mapped",[102,109]],[[13210,13210],"mapped",[110,109]],[[13211,13211],"mapped",[956,109]],[[13212,13212],"mapped",[109,109]],[[13213,13213],"mapped",[99,109]],[[13214,13214],"mapped",[107,109]],[[13215,13215],"mapped",[109,109,50]],[[13216,13216],"mapped",[99,109,50]],[[13217,13217],"mapped",[109,50]],[[13218,13218],"mapped",[107,109,50]],[[13219,13219],"mapped",[109,109,51]],[[13220,13220],"mapped",[99,109,51]],[[13221,13221],"mapped",[109,51]],[[13222,13222],"mapped",[107,109,51]],[[13223,13223],"mapped",[109,8725,115]],[[13224,13224],"mapped",[109,8725,115,50]],[[13225,13225],"mapped",[112,97]],[[13226,13226],"mapped",[107,112,97]],[[13227,13227],"mapped",[109,112,97]],[[13228,13228],"mapped",[103,112,97]],[[13229,13229],"mapped",[114,97,100]],[[13230,13230],"mapped",[114,97,100,8725,115]],[[13231,13231],"mapped",[114,97,100,8725,115,50]],[[13232,13232],"mapped",[112,115]],[[13233,13233],"mapped",[110,115]],[[13234,13234],"mapped",[956,115]],[[13235,13235],"mapped",[109,115]],[[13236,13236],"mapped",[112,118]],[[13237,13237],"mapped",[110,118]],[[13238,13238],"mapped",[956,118]],[[13239,13239],"mapped",[109,118]],[[13240,13240],"mapped",[107,118]],[[13241,13241],"mapped",[109,118]],[[13242,13242],"mapped",[112,119]],[[13243,13243],"mapped",[110,119]],[[13244,13244],"mapped",[956,119]],[[13245,13245],"mapped",[109,119]],[[13246,13246],"mapped",[107,119]],[[13247,13247],"mapped",[109,119]],[[13248,13248],"mapped",[107,969]],[[13249,13249],"mapped",[109,969]],[[13250,13250],"disallowed"],[[13251,13251],"mapped",[98,113]],[[13252,13252],"mapped",[99,99]],[[13253,13253],"mapped",[99,100]],[[13254,13254],"mapped",[99,8725,107,103]],[[13255,13255],"disallowed"],[[13256,13256],"mapped",[100,98]],[[13257,13257],"mapped",[103,121]],[[13258,13258],"mapped",[104,97]],[[13259,13259],"mapped",[104,112]],[[13260,13260],"mapped",[105,110]],[[13261,13261],"mapped",[107,107]],[[13262,13262],"mapped",[107,109]],[[13263,13263],"mapped",[107,116]],[[13264,13264],"mapped",[108,109]],[[13265,13265],"mapped",[108,110]],[[13266,13266],"mapped",[108,111,103]],[[13267,13267],"mapped",[108,120]],[[13268,13268],"mapped",[109,98]],[[13269,13269],"mapped",[109,105,108]],[[13270,13270],"mapped",[109,111,108]],[[13271,13271],"mapped",[112,104]],[[13272,13272],"disallowed"],[[13273,13273],"mapped",[112,112,109]],[[13274,13274],"mapped",[112,114]],[[13275,13275],"mapped",[115,114]],[[13276,13276],"mapped",[115,118]],[[13277,13277],"mapped",[119,98]],[[13278,13278],"mapped",[118,8725,109]],[[13279,13279],"mapped",[97,8725,109]],[[13280,13280],"mapped",[49,26085]],[[13281,13281],"mapped",[50,26085]],[[13282,13282],"mapped",[51,26085]],[[13283,13283],"mapped",[52,26085]],[[13284,13284],"mapped",[53,26085]],[[13285,13285],"mapped",[54,26085]],[[13286,13286],"mapped",[55,26085]],[[13287,13287],"mapped",[56,26085]],[[13288,13288],"mapped",[57,26085]],[[13289,13289],"mapped",[49,48,26085]],[[13290,13290],"mapped",[49,49,26085]],[[13291,13291],"mapped",[49,50,26085]],[[13292,13292],"mapped",[49,51,26085]],[[13293,13293],"mapped",[49,52,26085]],[[13294,13294],"mapped",[49,53,26085]],[[13295,13295],"mapped",[49,54,26085]],[[13296,13296],"mapped",[49,55,26085]],[[13297,13297],"mapped",[49,56,26085]],[[13298,13298],"mapped",[49,57,26085]],[[13299,13299],"mapped",[50,48,26085]],[[13300,13300],"mapped",[50,49,26085]],[[13301,13301],"mapped",[50,50,26085]],[[13302,13302],"mapped",[50,51,26085]],[[13303,13303],"mapped",[50,52,26085]],[[13304,13304],"mapped",[50,53,26085]],[[13305,13305],"mapped",[50,54,26085]],[[13306,13306],"mapped",[50,55,26085]],[[13307,13307],"mapped",[50,56,26085]],[[13308,13308],"mapped",[50,57,26085]],[[13309,13309],"mapped",[51,48,26085]],[[13310,13310],"mapped",[51,49,26085]],[[13311,13311],"mapped",[103,97,108]],[[13312,19893],"valid"],[[19894,19903],"disallowed"],[[19904,19967],"valid",[],"NV8"],[[19968,40869],"valid"],[[40870,40891],"valid"],[[40892,40899],"valid"],[[40900,40907],"valid"],[[40908,40908],"valid"],[[40909,40917],"valid"],[[40918,40959],"disallowed"],[[40960,42124],"valid"],[[42125,42127],"disallowed"],[[42128,42145],"valid",[],"NV8"],[[42146,42147],"valid",[],"NV8"],[[42148,42163],"valid",[],"NV8"],[[42164,42164],"valid",[],"NV8"],[[42165,42176],"valid",[],"NV8"],[[42177,42177],"valid",[],"NV8"],[[42178,42180],"valid",[],"NV8"],[[42181,42181],"valid",[],"NV8"],[[42182,42182],"valid",[],"NV8"],[[42183,42191],"disallowed"],[[42192,42237],"valid"],[[42238,42239],"valid",[],"NV8"],[[42240,42508],"valid"],[[42509,42511],"valid",[],"NV8"],[[42512,42539],"valid"],[[42540,42559],"disallowed"],[[42560,42560],"mapped",[42561]],[[42561,42561],"valid"],[[42562,42562],"mapped",[42563]],[[42563,42563],"valid"],[[42564,42564],"mapped",[42565]],[[42565,42565],"valid"],[[42566,42566],"mapped",[42567]],[[42567,42567],"valid"],[[42568,42568],"mapped",[42569]],[[42569,42569],"valid"],[[42570,42570],"mapped",[42571]],[[42571,42571],"valid"],[[42572,42572],"mapped",[42573]],[[42573,42573],"valid"],[[42574,42574],"mapped",[42575]],[[42575,42575],"valid"],[[42576,42576],"mapped",[42577]],[[42577,42577],"valid"],[[42578,42578],"mapped",[42579]],[[42579,42579],"valid"],[[42580,42580],"mapped",[42581]],[[42581,42581],"valid"],[[42582,42582],"mapped",[42583]],[[42583,42583],"valid"],[[42584,42584],"mapped",[42585]],[[42585,42585],"valid"],[[42586,42586],"mapped",[42587]],[[42587,42587],"valid"],[[42588,42588],"mapped",[42589]],[[42589,42589],"valid"],[[42590,42590],"mapped",[42591]],[[42591,42591],"valid"],[[42592,42592],"mapped",[42593]],[[42593,42593],"valid"],[[42594,42594],"mapped",[42595]],[[42595,42595],"valid"],[[42596,42596],"mapped",[42597]],[[42597,42597],"valid"],[[42598,42598],"mapped",[42599]],[[42599,42599],"valid"],[[42600,42600],"mapped",[42601]],[[42601,42601],"valid"],[[42602,42602],"mapped",[42603]],[[42603,42603],"valid"],[[42604,42604],"mapped",[42605]],[[42605,42607],"valid"],[[42608,42611],"valid",[],"NV8"],[[42612,42619],"valid"],[[42620,42621],"valid"],[[42622,42622],"valid",[],"NV8"],[[42623,42623],"valid"],[[42624,42624],"mapped",[42625]],[[42625,42625],"valid"],[[42626,42626],"mapped",[42627]],[[42627,42627],"valid"],[[42628,42628],"mapped",[42629]],[[42629,42629],"valid"],[[42630,42630],"mapped",[42631]],[[42631,42631],"valid"],[[42632,42632],"mapped",[42633]],[[42633,42633],"valid"],[[42634,42634],"mapped",[42635]],[[42635,42635],"valid"],[[42636,42636],"mapped",[42637]],[[42637,42637],"valid"],[[42638,42638],"mapped",[42639]],[[42639,42639],"valid"],[[42640,42640],"mapped",[42641]],[[42641,42641],"valid"],[[42642,42642],"mapped",[42643]],[[42643,42643],"valid"],[[42644,42644],"mapped",[42645]],[[42645,42645],"valid"],[[42646,42646],"mapped",[42647]],[[42647,42647],"valid"],[[42648,42648],"mapped",[42649]],[[42649,42649],"valid"],[[42650,42650],"mapped",[42651]],[[42651,42651],"valid"],[[42652,42652],"mapped",[1098]],[[42653,42653],"mapped",[1100]],[[42654,42654],"valid"],[[42655,42655],"valid"],[[42656,42725],"valid"],[[42726,42735],"valid",[],"NV8"],[[42736,42737],"valid"],[[42738,42743],"valid",[],"NV8"],[[42744,42751],"disallowed"],[[42752,42774],"valid",[],"NV8"],[[42775,42778],"valid"],[[42779,42783],"valid"],[[42784,42785],"valid",[],"NV8"],[[42786,42786],"mapped",[42787]],[[42787,42787],"valid"],[[42788,42788],"mapped",[42789]],[[42789,42789],"valid"],[[42790,42790],"mapped",[42791]],[[42791,42791],"valid"],[[42792,42792],"mapped",[42793]],[[42793,42793],"valid"],[[42794,42794],"mapped",[42795]],[[42795,42795],"valid"],[[42796,42796],"mapped",[42797]],[[42797,42797],"valid"],[[42798,42798],"mapped",[42799]],[[42799,42801],"valid"],[[42802,42802],"mapped",[42803]],[[42803,42803],"valid"],[[42804,42804],"mapped",[42805]],[[42805,42805],"valid"],[[42806,42806],"mapped",[42807]],[[42807,42807],"valid"],[[42808,42808],"mapped",[42809]],[[42809,42809],"valid"],[[42810,42810],"mapped",[42811]],[[42811,42811],"valid"],[[42812,42812],"mapped",[42813]],[[42813,42813],"valid"],[[42814,42814],"mapped",[42815]],[[42815,42815],"valid"],[[42816,42816],"mapped",[42817]],[[42817,42817],"valid"],[[42818,42818],"mapped",[42819]],[[42819,42819],"valid"],[[42820,42820],"mapped",[42821]],[[42821,42821],"valid"],[[42822,42822],"mapped",[42823]],[[42823,42823],"valid"],[[42824,42824],"mapped",[42825]],[[42825,42825],"valid"],[[42826,42826],"mapped",[42827]],[[42827,42827],"valid"],[[42828,42828],"mapped",[42829]],[[42829,42829],"valid"],[[42830,42830],"mapped",[42831]],[[42831,42831],"valid"],[[42832,42832],"mapped",[42833]],[[42833,42833],"valid"],[[42834,42834],"mapped",[42835]],[[42835,42835],"valid"],[[42836,42836],"mapped",[42837]],[[42837,42837],"valid"],[[42838,42838],"mapped",[42839]],[[42839,42839],"valid"],[[42840,42840],"mapped",[42841]],[[42841,42841],"valid"],[[42842,42842],"mapped",[42843]],[[42843,42843],"valid"],[[42844,42844],"mapped",[42845]],[[42845,42845],"valid"],[[42846,42846],"mapped",[42847]],[[42847,42847],"valid"],[[42848,42848],"mapped",[42849]],[[42849,42849],"valid"],[[42850,42850],"mapped",[42851]],[[42851,42851],"valid"],[[42852,42852],"mapped",[42853]],[[42853,42853],"valid"],[[42854,42854],"mapped",[42855]],[[42855,42855],"valid"],[[42856,42856],"mapped",[42857]],[[42857,42857],"valid"],[[42858,42858],"mapped",[42859]],[[42859,42859],"valid"],[[42860,42860],"mapped",[42861]],[[42861,42861],"valid"],[[42862,42862],"mapped",[42863]],[[42863,42863],"valid"],[[42864,42864],"mapped",[42863]],[[42865,42872],"valid"],[[42873,42873],"mapped",[42874]],[[42874,42874],"valid"],[[42875,42875],"mapped",[42876]],[[42876,42876],"valid"],[[42877,42877],"mapped",[7545]],[[42878,42878],"mapped",[42879]],[[42879,42879],"valid"],[[42880,42880],"mapped",[42881]],[[42881,42881],"valid"],[[42882,42882],"mapped",[42883]],[[42883,42883],"valid"],[[42884,42884],"mapped",[42885]],[[42885,42885],"valid"],[[42886,42886],"mapped",[42887]],[[42887,42888],"valid"],[[42889,42890],"valid",[],"NV8"],[[42891,42891],"mapped",[42892]],[[42892,42892],"valid"],[[42893,42893],"mapped",[613]],[[42894,42894],"valid"],[[42895,42895],"valid"],[[42896,42896],"mapped",[42897]],[[42897,42897],"valid"],[[42898,42898],"mapped",[42899]],[[42899,42899],"valid"],[[42900,42901],"valid"],[[42902,42902],"mapped",[42903]],[[42903,42903],"valid"],[[42904,42904],"mapped",[42905]],[[42905,42905],"valid"],[[42906,42906],"mapped",[42907]],[[42907,42907],"valid"],[[42908,42908],"mapped",[42909]],[[42909,42909],"valid"],[[42910,42910],"mapped",[42911]],[[42911,42911],"valid"],[[42912,42912],"mapped",[42913]],[[42913,42913],"valid"],[[42914,42914],"mapped",[42915]],[[42915,42915],"valid"],[[42916,42916],"mapped",[42917]],[[42917,42917],"valid"],[[42918,42918],"mapped",[42919]],[[42919,42919],"valid"],[[42920,42920],"mapped",[42921]],[[42921,42921],"valid"],[[42922,42922],"mapped",[614]],[[42923,42923],"mapped",[604]],[[42924,42924],"mapped",[609]],[[42925,42925],"mapped",[620]],[[42926,42927],"disallowed"],[[42928,42928],"mapped",[670]],[[42929,42929],"mapped",[647]],[[42930,42930],"mapped",[669]],[[42931,42931],"mapped",[43859]],[[42932,42932],"mapped",[42933]],[[42933,42933],"valid"],[[42934,42934],"mapped",[42935]],[[42935,42935],"valid"],[[42936,42998],"disallowed"],[[42999,42999],"valid"],[[43e3,43e3],"mapped",[295]],[[43001,43001],"mapped",[339]],[[43002,43002],"valid"],[[43003,43007],"valid"],[[43008,43047],"valid"],[[43048,43051],"valid",[],"NV8"],[[43052,43055],"disallowed"],[[43056,43065],"valid",[],"NV8"],[[43066,43071],"disallowed"],[[43072,43123],"valid"],[[43124,43127],"valid",[],"NV8"],[[43128,43135],"disallowed"],[[43136,43204],"valid"],[[43205,43213],"disallowed"],[[43214,43215],"valid",[],"NV8"],[[43216,43225],"valid"],[[43226,43231],"disallowed"],[[43232,43255],"valid"],[[43256,43258],"valid",[],"NV8"],[[43259,43259],"valid"],[[43260,43260],"valid",[],"NV8"],[[43261,43261],"valid"],[[43262,43263],"disallowed"],[[43264,43309],"valid"],[[43310,43311],"valid",[],"NV8"],[[43312,43347],"valid"],[[43348,43358],"disallowed"],[[43359,43359],"valid",[],"NV8"],[[43360,43388],"valid",[],"NV8"],[[43389,43391],"disallowed"],[[43392,43456],"valid"],[[43457,43469],"valid",[],"NV8"],[[43470,43470],"disallowed"],[[43471,43481],"valid"],[[43482,43485],"disallowed"],[[43486,43487],"valid",[],"NV8"],[[43488,43518],"valid"],[[43519,43519],"disallowed"],[[43520,43574],"valid"],[[43575,43583],"disallowed"],[[43584,43597],"valid"],[[43598,43599],"disallowed"],[[43600,43609],"valid"],[[43610,43611],"disallowed"],[[43612,43615],"valid",[],"NV8"],[[43616,43638],"valid"],[[43639,43641],"valid",[],"NV8"],[[43642,43643],"valid"],[[43644,43647],"valid"],[[43648,43714],"valid"],[[43715,43738],"disallowed"],[[43739,43741],"valid"],[[43742,43743],"valid",[],"NV8"],[[43744,43759],"valid"],[[43760,43761],"valid",[],"NV8"],[[43762,43766],"valid"],[[43767,43776],"disallowed"],[[43777,43782],"valid"],[[43783,43784],"disallowed"],[[43785,43790],"valid"],[[43791,43792],"disallowed"],[[43793,43798],"valid"],[[43799,43807],"disallowed"],[[43808,43814],"valid"],[[43815,43815],"disallowed"],[[43816,43822],"valid"],[[43823,43823],"disallowed"],[[43824,43866],"valid"],[[43867,43867],"valid",[],"NV8"],[[43868,43868],"mapped",[42791]],[[43869,43869],"mapped",[43831]],[[43870,43870],"mapped",[619]],[[43871,43871],"mapped",[43858]],[[43872,43875],"valid"],[[43876,43877],"valid"],[[43878,43887],"disallowed"],[[43888,43888],"mapped",[5024]],[[43889,43889],"mapped",[5025]],[[43890,43890],"mapped",[5026]],[[43891,43891],"mapped",[5027]],[[43892,43892],"mapped",[5028]],[[43893,43893],"mapped",[5029]],[[43894,43894],"mapped",[5030]],[[43895,43895],"mapped",[5031]],[[43896,43896],"mapped",[5032]],[[43897,43897],"mapped",[5033]],[[43898,43898],"mapped",[5034]],[[43899,43899],"mapped",[5035]],[[43900,43900],"mapped",[5036]],[[43901,43901],"mapped",[5037]],[[43902,43902],"mapped",[5038]],[[43903,43903],"mapped",[5039]],[[43904,43904],"mapped",[5040]],[[43905,43905],"mapped",[5041]],[[43906,43906],"mapped",[5042]],[[43907,43907],"mapped",[5043]],[[43908,43908],"mapped",[5044]],[[43909,43909],"mapped",[5045]],[[43910,43910],"mapped",[5046]],[[43911,43911],"mapped",[5047]],[[43912,43912],"mapped",[5048]],[[43913,43913],"mapped",[5049]],[[43914,43914],"mapped",[5050]],[[43915,43915],"mapped",[5051]],[[43916,43916],"mapped",[5052]],[[43917,43917],"mapped",[5053]],[[43918,43918],"mapped",[5054]],[[43919,43919],"mapped",[5055]],[[43920,43920],"mapped",[5056]],[[43921,43921],"mapped",[5057]],[[43922,43922],"mapped",[5058]],[[43923,43923],"mapped",[5059]],[[43924,43924],"mapped",[5060]],[[43925,43925],"mapped",[5061]],[[43926,43926],"mapped",[5062]],[[43927,43927],"mapped",[5063]],[[43928,43928],"mapped",[5064]],[[43929,43929],"mapped",[5065]],[[43930,43930],"mapped",[5066]],[[43931,43931],"mapped",[5067]],[[43932,43932],"mapped",[5068]],[[43933,43933],"mapped",[5069]],[[43934,43934],"mapped",[5070]],[[43935,43935],"mapped",[5071]],[[43936,43936],"mapped",[5072]],[[43937,43937],"mapped",[5073]],[[43938,43938],"mapped",[5074]],[[43939,43939],"mapped",[5075]],[[43940,43940],"mapped",[5076]],[[43941,43941],"mapped",[5077]],[[43942,43942],"mapped",[5078]],[[43943,43943],"mapped",[5079]],[[43944,43944],"mapped",[5080]],[[43945,43945],"mapped",[5081]],[[43946,43946],"mapped",[5082]],[[43947,43947],"mapped",[5083]],[[43948,43948],"mapped",[5084]],[[43949,43949],"mapped",[5085]],[[43950,43950],"mapped",[5086]],[[43951,43951],"mapped",[5087]],[[43952,43952],"mapped",[5088]],[[43953,43953],"mapped",[5089]],[[43954,43954],"mapped",[5090]],[[43955,43955],"mapped",[5091]],[[43956,43956],"mapped",[5092]],[[43957,43957],"mapped",[5093]],[[43958,43958],"mapped",[5094]],[[43959,43959],"mapped",[5095]],[[43960,43960],"mapped",[5096]],[[43961,43961],"mapped",[5097]],[[43962,43962],"mapped",[5098]],[[43963,43963],"mapped",[5099]],[[43964,43964],"mapped",[5100]],[[43965,43965],"mapped",[5101]],[[43966,43966],"mapped",[5102]],[[43967,43967],"mapped",[5103]],[[43968,44010],"valid"],[[44011,44011],"valid",[],"NV8"],[[44012,44013],"valid"],[[44014,44015],"disallowed"],[[44016,44025],"valid"],[[44026,44031],"disallowed"],[[44032,55203],"valid"],[[55204,55215],"disallowed"],[[55216,55238],"valid",[],"NV8"],[[55239,55242],"disallowed"],[[55243,55291],"valid",[],"NV8"],[[55292,55295],"disallowed"],[[55296,57343],"disallowed"],[[57344,63743],"disallowed"],[[63744,63744],"mapped",[35912]],[[63745,63745],"mapped",[26356]],[[63746,63746],"mapped",[36554]],[[63747,63747],"mapped",[36040]],[[63748,63748],"mapped",[28369]],[[63749,63749],"mapped",[20018]],[[63750,63750],"mapped",[21477]],[[63751,63752],"mapped",[40860]],[[63753,63753],"mapped",[22865]],[[63754,63754],"mapped",[37329]],[[63755,63755],"mapped",[21895]],[[63756,63756],"mapped",[22856]],[[63757,63757],"mapped",[25078]],[[63758,63758],"mapped",[30313]],[[63759,63759],"mapped",[32645]],[[63760,63760],"mapped",[34367]],[[63761,63761],"mapped",[34746]],[[63762,63762],"mapped",[35064]],[[63763,63763],"mapped",[37007]],[[63764,63764],"mapped",[27138]],[[63765,63765],"mapped",[27931]],[[63766,63766],"mapped",[28889]],[[63767,63767],"mapped",[29662]],[[63768,63768],"mapped",[33853]],[[63769,63769],"mapped",[37226]],[[63770,63770],"mapped",[39409]],[[63771,63771],"mapped",[20098]],[[63772,63772],"mapped",[21365]],[[63773,63773],"mapped",[27396]],[[63774,63774],"mapped",[29211]],[[63775,63775],"mapped",[34349]],[[63776,63776],"mapped",[40478]],[[63777,63777],"mapped",[23888]],[[63778,63778],"mapped",[28651]],[[63779,63779],"mapped",[34253]],[[63780,63780],"mapped",[35172]],[[63781,63781],"mapped",[25289]],[[63782,63782],"mapped",[33240]],[[63783,63783],"mapped",[34847]],[[63784,63784],"mapped",[24266]],[[63785,63785],"mapped",[26391]],[[63786,63786],"mapped",[28010]],[[63787,63787],"mapped",[29436]],[[63788,63788],"mapped",[37070]],[[63789,63789],"mapped",[20358]],[[63790,63790],"mapped",[20919]],[[63791,63791],"mapped",[21214]],[[63792,63792],"mapped",[25796]],[[63793,63793],"mapped",[27347]],[[63794,63794],"mapped",[29200]],[[63795,63795],"mapped",[30439]],[[63796,63796],"mapped",[32769]],[[63797,63797],"mapped",[34310]],[[63798,63798],"mapped",[34396]],[[63799,63799],"mapped",[36335]],[[63800,63800],"mapped",[38706]],[[63801,63801],"mapped",[39791]],[[63802,63802],"mapped",[40442]],[[63803,63803],"mapped",[30860]],[[63804,63804],"mapped",[31103]],[[63805,63805],"mapped",[32160]],[[63806,63806],"mapped",[33737]],[[63807,63807],"mapped",[37636]],[[63808,63808],"mapped",[40575]],[[63809,63809],"mapped",[35542]],[[63810,63810],"mapped",[22751]],[[63811,63811],"mapped",[24324]],[[63812,63812],"mapped",[31840]],[[63813,63813],"mapped",[32894]],[[63814,63814],"mapped",[29282]],[[63815,63815],"mapped",[30922]],[[63816,63816],"mapped",[36034]],[[63817,63817],"mapped",[38647]],[[63818,63818],"mapped",[22744]],[[63819,63819],"mapped",[23650]],[[63820,63820],"mapped",[27155]],[[63821,63821],"mapped",[28122]],[[63822,63822],"mapped",[28431]],[[63823,63823],"mapped",[32047]],[[63824,63824],"mapped",[32311]],[[63825,63825],"mapped",[38475]],[[63826,63826],"mapped",[21202]],[[63827,63827],"mapped",[32907]],[[63828,63828],"mapped",[20956]],[[63829,63829],"mapped",[20940]],[[63830,63830],"mapped",[31260]],[[63831,63831],"mapped",[32190]],[[63832,63832],"mapped",[33777]],[[63833,63833],"mapped",[38517]],[[63834,63834],"mapped",[35712]],[[63835,63835],"mapped",[25295]],[[63836,63836],"mapped",[27138]],[[63837,63837],"mapped",[35582]],[[63838,63838],"mapped",[20025]],[[63839,63839],"mapped",[23527]],[[63840,63840],"mapped",[24594]],[[63841,63841],"mapped",[29575]],[[63842,63842],"mapped",[30064]],[[63843,63843],"mapped",[21271]],[[63844,63844],"mapped",[30971]],[[63845,63845],"mapped",[20415]],[[63846,63846],"mapped",[24489]],[[63847,63847],"mapped",[19981]],[[63848,63848],"mapped",[27852]],[[63849,63849],"mapped",[25976]],[[63850,63850],"mapped",[32034]],[[63851,63851],"mapped",[21443]],[[63852,63852],"mapped",[22622]],[[63853,63853],"mapped",[30465]],[[63854,63854],"mapped",[33865]],[[63855,63855],"mapped",[35498]],[[63856,63856],"mapped",[27578]],[[63857,63857],"mapped",[36784]],[[63858,63858],"mapped",[27784]],[[63859,63859],"mapped",[25342]],[[63860,63860],"mapped",[33509]],[[63861,63861],"mapped",[25504]],[[63862,63862],"mapped",[30053]],[[63863,63863],"mapped",[20142]],[[63864,63864],"mapped",[20841]],[[63865,63865],"mapped",[20937]],[[63866,63866],"mapped",[26753]],[[63867,63867],"mapped",[31975]],[[63868,63868],"mapped",[33391]],[[63869,63869],"mapped",[35538]],[[63870,63870],"mapped",[37327]],[[63871,63871],"mapped",[21237]],[[63872,63872],"mapped",[21570]],[[63873,63873],"mapped",[22899]],[[63874,63874],"mapped",[24300]],[[63875,63875],"mapped",[26053]],[[63876,63876],"mapped",[28670]],[[63877,63877],"mapped",[31018]],[[63878,63878],"mapped",[38317]],[[63879,63879],"mapped",[39530]],[[63880,63880],"mapped",[40599]],[[63881,63881],"mapped",[40654]],[[63882,63882],"mapped",[21147]],[[63883,63883],"mapped",[26310]],[[63884,63884],"mapped",[27511]],[[63885,63885],"mapped",[36706]],[[63886,63886],"mapped",[24180]],[[63887,63887],"mapped",[24976]],[[63888,63888],"mapped",[25088]],[[63889,63889],"mapped",[25754]],[[63890,63890],"mapped",[28451]],[[63891,63891],"mapped",[29001]],[[63892,63892],"mapped",[29833]],[[63893,63893],"mapped",[31178]],[[63894,63894],"mapped",[32244]],[[63895,63895],"mapped",[32879]],[[63896,63896],"mapped",[36646]],[[63897,63897],"mapped",[34030]],[[63898,63898],"mapped",[36899]],[[63899,63899],"mapped",[37706]],[[63900,63900],"mapped",[21015]],[[63901,63901],"mapped",[21155]],[[63902,63902],"mapped",[21693]],[[63903,63903],"mapped",[28872]],[[63904,63904],"mapped",[35010]],[[63905,63905],"mapped",[35498]],[[63906,63906],"mapped",[24265]],[[63907,63907],"mapped",[24565]],[[63908,63908],"mapped",[25467]],[[63909,63909],"mapped",[27566]],[[63910,63910],"mapped",[31806]],[[63911,63911],"mapped",[29557]],[[63912,63912],"mapped",[20196]],[[63913,63913],"mapped",[22265]],[[63914,63914],"mapped",[23527]],[[63915,63915],"mapped",[23994]],[[63916,63916],"mapped",[24604]],[[63917,63917],"mapped",[29618]],[[63918,63918],"mapped",[29801]],[[63919,63919],"mapped",[32666]],[[63920,63920],"mapped",[32838]],[[63921,63921],"mapped",[37428]],[[63922,63922],"mapped",[38646]],[[63923,63923],"mapped",[38728]],[[63924,63924],"mapped",[38936]],[[63925,63925],"mapped",[20363]],[[63926,63926],"mapped",[31150]],[[63927,63927],"mapped",[37300]],[[63928,63928],"mapped",[38584]],[[63929,63929],"mapped",[24801]],[[63930,63930],"mapped",[20102]],[[63931,63931],"mapped",[20698]],[[63932,63932],"mapped",[23534]],[[63933,63933],"mapped",[23615]],[[63934,63934],"mapped",[26009]],[[63935,63935],"mapped",[27138]],[[63936,63936],"mapped",[29134]],[[63937,63937],"mapped",[30274]],[[63938,63938],"mapped",[34044]],[[63939,63939],"mapped",[36988]],[[63940,63940],"mapped",[40845]],[[63941,63941],"mapped",[26248]],[[63942,63942],"mapped",[38446]],[[63943,63943],"mapped",[21129]],[[63944,63944],"mapped",[26491]],[[63945,63945],"mapped",[26611]],[[63946,63946],"mapped",[27969]],[[63947,63947],"mapped",[28316]],[[63948,63948],"mapped",[29705]],[[63949,63949],"mapped",[30041]],[[63950,63950],"mapped",[30827]],[[63951,63951],"mapped",[32016]],[[63952,63952],"mapped",[39006]],[[63953,63953],"mapped",[20845]],[[63954,63954],"mapped",[25134]],[[63955,63955],"mapped",[38520]],[[63956,63956],"mapped",[20523]],[[63957,63957],"mapped",[23833]],[[63958,63958],"mapped",[28138]],[[63959,63959],"mapped",[36650]],[[63960,63960],"mapped",[24459]],[[63961,63961],"mapped",[24900]],[[63962,63962],"mapped",[26647]],[[63963,63963],"mapped",[29575]],[[63964,63964],"mapped",[38534]],[[63965,63965],"mapped",[21033]],[[63966,63966],"mapped",[21519]],[[63967,63967],"mapped",[23653]],[[63968,63968],"mapped",[26131]],[[63969,63969],"mapped",[26446]],[[63970,63970],"mapped",[26792]],[[63971,63971],"mapped",[27877]],[[63972,63972],"mapped",[29702]],[[63973,63973],"mapped",[30178]],[[63974,63974],"mapped",[32633]],[[63975,63975],"mapped",[35023]],[[63976,63976],"mapped",[35041]],[[63977,63977],"mapped",[37324]],[[63978,63978],"mapped",[38626]],[[63979,63979],"mapped",[21311]],[[63980,63980],"mapped",[28346]],[[63981,63981],"mapped",[21533]],[[63982,63982],"mapped",[29136]],[[63983,63983],"mapped",[29848]],[[63984,63984],"mapped",[34298]],[[63985,63985],"mapped",[38563]],[[63986,63986],"mapped",[40023]],[[63987,63987],"mapped",[40607]],[[63988,63988],"mapped",[26519]],[[63989,63989],"mapped",[28107]],[[63990,63990],"mapped",[33256]],[[63991,63991],"mapped",[31435]],[[63992,63992],"mapped",[31520]],[[63993,63993],"mapped",[31890]],[[63994,63994],"mapped",[29376]],[[63995,63995],"mapped",[28825]],[[63996,63996],"mapped",[35672]],[[63997,63997],"mapped",[20160]],[[63998,63998],"mapped",[33590]],[[63999,63999],"mapped",[21050]],[[64e3,64e3],"mapped",[20999]],[[64001,64001],"mapped",[24230]],[[64002,64002],"mapped",[25299]],[[64003,64003],"mapped",[31958]],[[64004,64004],"mapped",[23429]],[[64005,64005],"mapped",[27934]],[[64006,64006],"mapped",[26292]],[[64007,64007],"mapped",[36667]],[[64008,64008],"mapped",[34892]],[[64009,64009],"mapped",[38477]],[[64010,64010],"mapped",[35211]],[[64011,64011],"mapped",[24275]],[[64012,64012],"mapped",[20800]],[[64013,64013],"mapped",[21952]],[[64014,64015],"valid"],[[64016,64016],"mapped",[22618]],[[64017,64017],"valid"],[[64018,64018],"mapped",[26228]],[[64019,64020],"valid"],[[64021,64021],"mapped",[20958]],[[64022,64022],"mapped",[29482]],[[64023,64023],"mapped",[30410]],[[64024,64024],"mapped",[31036]],[[64025,64025],"mapped",[31070]],[[64026,64026],"mapped",[31077]],[[64027,64027],"mapped",[31119]],[[64028,64028],"mapped",[38742]],[[64029,64029],"mapped",[31934]],[[64030,64030],"mapped",[32701]],[[64031,64031],"valid"],[[64032,64032],"mapped",[34322]],[[64033,64033],"valid"],[[64034,64034],"mapped",[35576]],[[64035,64036],"valid"],[[64037,64037],"mapped",[36920]],[[64038,64038],"mapped",[37117]],[[64039,64041],"valid"],[[64042,64042],"mapped",[39151]],[[64043,64043],"mapped",[39164]],[[64044,64044],"mapped",[39208]],[[64045,64045],"mapped",[40372]],[[64046,64046],"mapped",[37086]],[[64047,64047],"mapped",[38583]],[[64048,64048],"mapped",[20398]],[[64049,64049],"mapped",[20711]],[[64050,64050],"mapped",[20813]],[[64051,64051],"mapped",[21193]],[[64052,64052],"mapped",[21220]],[[64053,64053],"mapped",[21329]],[[64054,64054],"mapped",[21917]],[[64055,64055],"mapped",[22022]],[[64056,64056],"mapped",[22120]],[[64057,64057],"mapped",[22592]],[[64058,64058],"mapped",[22696]],[[64059,64059],"mapped",[23652]],[[64060,64060],"mapped",[23662]],[[64061,64061],"mapped",[24724]],[[64062,64062],"mapped",[24936]],[[64063,64063],"mapped",[24974]],[[64064,64064],"mapped",[25074]],[[64065,64065],"mapped",[25935]],[[64066,64066],"mapped",[26082]],[[64067,64067],"mapped",[26257]],[[64068,64068],"mapped",[26757]],[[64069,64069],"mapped",[28023]],[[64070,64070],"mapped",[28186]],[[64071,64071],"mapped",[28450]],[[64072,64072],"mapped",[29038]],[[64073,64073],"mapped",[29227]],[[64074,64074],"mapped",[29730]],[[64075,64075],"mapped",[30865]],[[64076,64076],"mapped",[31038]],[[64077,64077],"mapped",[31049]],[[64078,64078],"mapped",[31048]],[[64079,64079],"mapped",[31056]],[[64080,64080],"mapped",[31062]],[[64081,64081],"mapped",[31069]],[[64082,64082],"mapped",[31117]],[[64083,64083],"mapped",[31118]],[[64084,64084],"mapped",[31296]],[[64085,64085],"mapped",[31361]],[[64086,64086],"mapped",[31680]],[[64087,64087],"mapped",[32244]],[[64088,64088],"mapped",[32265]],[[64089,64089],"mapped",[32321]],[[64090,64090],"mapped",[32626]],[[64091,64091],"mapped",[32773]],[[64092,64092],"mapped",[33261]],[[64093,64094],"mapped",[33401]],[[64095,64095],"mapped",[33879]],[[64096,64096],"mapped",[35088]],[[64097,64097],"mapped",[35222]],[[64098,64098],"mapped",[35585]],[[64099,64099],"mapped",[35641]],[[64100,64100],"mapped",[36051]],[[64101,64101],"mapped",[36104]],[[64102,64102],"mapped",[36790]],[[64103,64103],"mapped",[36920]],[[64104,64104],"mapped",[38627]],[[64105,64105],"mapped",[38911]],[[64106,64106],"mapped",[38971]],[[64107,64107],"mapped",[24693]],[[64108,64108],"mapped",[148206]],[[64109,64109],"mapped",[33304]],[[64110,64111],"disallowed"],[[64112,64112],"mapped",[20006]],[[64113,64113],"mapped",[20917]],[[64114,64114],"mapped",[20840]],[[64115,64115],"mapped",[20352]],[[64116,64116],"mapped",[20805]],[[64117,64117],"mapped",[20864]],[[64118,64118],"mapped",[21191]],[[64119,64119],"mapped",[21242]],[[64120,64120],"mapped",[21917]],[[64121,64121],"mapped",[21845]],[[64122,64122],"mapped",[21913]],[[64123,64123],"mapped",[21986]],[[64124,64124],"mapped",[22618]],[[64125,64125],"mapped",[22707]],[[64126,64126],"mapped",[22852]],[[64127,64127],"mapped",[22868]],[[64128,64128],"mapped",[23138]],[[64129,64129],"mapped",[23336]],[[64130,64130],"mapped",[24274]],[[64131,64131],"mapped",[24281]],[[64132,64132],"mapped",[24425]],[[64133,64133],"mapped",[24493]],[[64134,64134],"mapped",[24792]],[[64135,64135],"mapped",[24910]],[[64136,64136],"mapped",[24840]],[[64137,64137],"mapped",[24974]],[[64138,64138],"mapped",[24928]],[[64139,64139],"mapped",[25074]],[[64140,64140],"mapped",[25140]],[[64141,64141],"mapped",[25540]],[[64142,64142],"mapped",[25628]],[[64143,64143],"mapped",[25682]],[[64144,64144],"mapped",[25942]],[[64145,64145],"mapped",[26228]],[[64146,64146],"mapped",[26391]],[[64147,64147],"mapped",[26395]],[[64148,64148],"mapped",[26454]],[[64149,64149],"mapped",[27513]],[[64150,64150],"mapped",[27578]],[[64151,64151],"mapped",[27969]],[[64152,64152],"mapped",[28379]],[[64153,64153],"mapped",[28363]],[[64154,64154],"mapped",[28450]],[[64155,64155],"mapped",[28702]],[[64156,64156],"mapped",[29038]],[[64157,64157],"mapped",[30631]],[[64158,64158],"mapped",[29237]],[[64159,64159],"mapped",[29359]],[[64160,64160],"mapped",[29482]],[[64161,64161],"mapped",[29809]],[[64162,64162],"mapped",[29958]],[[64163,64163],"mapped",[30011]],[[64164,64164],"mapped",[30237]],[[64165,64165],"mapped",[30239]],[[64166,64166],"mapped",[30410]],[[64167,64167],"mapped",[30427]],[[64168,64168],"mapped",[30452]],[[64169,64169],"mapped",[30538]],[[64170,64170],"mapped",[30528]],[[64171,64171],"mapped",[30924]],[[64172,64172],"mapped",[31409]],[[64173,64173],"mapped",[31680]],[[64174,64174],"mapped",[31867]],[[64175,64175],"mapped",[32091]],[[64176,64176],"mapped",[32244]],[[64177,64177],"mapped",[32574]],[[64178,64178],"mapped",[32773]],[[64179,64179],"mapped",[33618]],[[64180,64180],"mapped",[33775]],[[64181,64181],"mapped",[34681]],[[64182,64182],"mapped",[35137]],[[64183,64183],"mapped",[35206]],[[64184,64184],"mapped",[35222]],[[64185,64185],"mapped",[35519]],[[64186,64186],"mapped",[35576]],[[64187,64187],"mapped",[35531]],[[64188,64188],"mapped",[35585]],[[64189,64189],"mapped",[35582]],[[64190,64190],"mapped",[35565]],[[64191,64191],"mapped",[35641]],[[64192,64192],"mapped",[35722]],[[64193,64193],"mapped",[36104]],[[64194,64194],"mapped",[36664]],[[64195,64195],"mapped",[36978]],[[64196,64196],"mapped",[37273]],[[64197,64197],"mapped",[37494]],[[64198,64198],"mapped",[38524]],[[64199,64199],"mapped",[38627]],[[64200,64200],"mapped",[38742]],[[64201,64201],"mapped",[38875]],[[64202,64202],"mapped",[38911]],[[64203,64203],"mapped",[38923]],[[64204,64204],"mapped",[38971]],[[64205,64205],"mapped",[39698]],[[64206,64206],"mapped",[40860]],[[64207,64207],"mapped",[141386]],[[64208,64208],"mapped",[141380]],[[64209,64209],"mapped",[144341]],[[64210,64210],"mapped",[15261]],[[64211,64211],"mapped",[16408]],[[64212,64212],"mapped",[16441]],[[64213,64213],"mapped",[152137]],[[64214,64214],"mapped",[154832]],[[64215,64215],"mapped",[163539]],[[64216,64216],"mapped",[40771]],[[64217,64217],"mapped",[40846]],[[64218,64255],"disallowed"],[[64256,64256],"mapped",[102,102]],[[64257,64257],"mapped",[102,105]],[[64258,64258],"mapped",[102,108]],[[64259,64259],"mapped",[102,102,105]],[[64260,64260],"mapped",[102,102,108]],[[64261,64262],"mapped",[115,116]],[[64263,64274],"disallowed"],[[64275,64275],"mapped",[1396,1398]],[[64276,64276],"mapped",[1396,1381]],[[64277,64277],"mapped",[1396,1387]],[[64278,64278],"mapped",[1406,1398]],[[64279,64279],"mapped",[1396,1389]],[[64280,64284],"disallowed"],[[64285,64285],"mapped",[1497,1460]],[[64286,64286],"valid"],[[64287,64287],"mapped",[1522,1463]],[[64288,64288],"mapped",[1506]],[[64289,64289],"mapped",[1488]],[[64290,64290],"mapped",[1491]],[[64291,64291],"mapped",[1492]],[[64292,64292],"mapped",[1499]],[[64293,64293],"mapped",[1500]],[[64294,64294],"mapped",[1501]],[[64295,64295],"mapped",[1512]],[[64296,64296],"mapped",[1514]],[[64297,64297],"disallowed_STD3_mapped",[43]],[[64298,64298],"mapped",[1513,1473]],[[64299,64299],"mapped",[1513,1474]],[[64300,64300],"mapped",[1513,1468,1473]],[[64301,64301],"mapped",[1513,1468,1474]],[[64302,64302],"mapped",[1488,1463]],[[64303,64303],"mapped",[1488,1464]],[[64304,64304],"mapped",[1488,1468]],[[64305,64305],"mapped",[1489,1468]],[[64306,64306],"mapped",[1490,1468]],[[64307,64307],"mapped",[1491,1468]],[[64308,64308],"mapped",[1492,1468]],[[64309,64309],"mapped",[1493,1468]],[[64310,64310],"mapped",[1494,1468]],[[64311,64311],"disallowed"],[[64312,64312],"mapped",[1496,1468]],[[64313,64313],"mapped",[1497,1468]],[[64314,64314],"mapped",[1498,1468]],[[64315,64315],"mapped",[1499,1468]],[[64316,64316],"mapped",[1500,1468]],[[64317,64317],"disallowed"],[[64318,64318],"mapped",[1502,1468]],[[64319,64319],"disallowed"],[[64320,64320],"mapped",[1504,1468]],[[64321,64321],"mapped",[1505,1468]],[[64322,64322],"disallowed"],[[64323,64323],"mapped",[1507,1468]],[[64324,64324],"mapped",[1508,1468]],[[64325,64325],"disallowed"],[[64326,64326],"mapped",[1510,1468]],[[64327,64327],"mapped",[1511,1468]],[[64328,64328],"mapped",[1512,1468]],[[64329,64329],"mapped",[1513,1468]],[[64330,64330],"mapped",[1514,1468]],[[64331,64331],"mapped",[1493,1465]],[[64332,64332],"mapped",[1489,1471]],[[64333,64333],"mapped",[1499,1471]],[[64334,64334],"mapped",[1508,1471]],[[64335,64335],"mapped",[1488,1500]],[[64336,64337],"mapped",[1649]],[[64338,64341],"mapped",[1659]],[[64342,64345],"mapped",[1662]],[[64346,64349],"mapped",[1664]],[[64350,64353],"mapped",[1658]],[[64354,64357],"mapped",[1663]],[[64358,64361],"mapped",[1657]],[[64362,64365],"mapped",[1700]],[[64366,64369],"mapped",[1702]],[[64370,64373],"mapped",[1668]],[[64374,64377],"mapped",[1667]],[[64378,64381],"mapped",[1670]],[[64382,64385],"mapped",[1671]],[[64386,64387],"mapped",[1677]],[[64388,64389],"mapped",[1676]],[[64390,64391],"mapped",[1678]],[[64392,64393],"mapped",[1672]],[[64394,64395],"mapped",[1688]],[[64396,64397],"mapped",[1681]],[[64398,64401],"mapped",[1705]],[[64402,64405],"mapped",[1711]],[[64406,64409],"mapped",[1715]],[[64410,64413],"mapped",[1713]],[[64414,64415],"mapped",[1722]],[[64416,64419],"mapped",[1723]],[[64420,64421],"mapped",[1728]],[[64422,64425],"mapped",[1729]],[[64426,64429],"mapped",[1726]],[[64430,64431],"mapped",[1746]],[[64432,64433],"mapped",[1747]],[[64434,64449],"valid",[],"NV8"],[[64450,64466],"disallowed"],[[64467,64470],"mapped",[1709]],[[64471,64472],"mapped",[1735]],[[64473,64474],"mapped",[1734]],[[64475,64476],"mapped",[1736]],[[64477,64477],"mapped",[1735,1652]],[[64478,64479],"mapped",[1739]],[[64480,64481],"mapped",[1733]],[[64482,64483],"mapped",[1737]],[[64484,64487],"mapped",[1744]],[[64488,64489],"mapped",[1609]],[[64490,64491],"mapped",[1574,1575]],[[64492,64493],"mapped",[1574,1749]],[[64494,64495],"mapped",[1574,1608]],[[64496,64497],"mapped",[1574,1735]],[[64498,64499],"mapped",[1574,1734]],[[64500,64501],"mapped",[1574,1736]],[[64502,64504],"mapped",[1574,1744]],[[64505,64507],"mapped",[1574,1609]],[[64508,64511],"mapped",[1740]],[[64512,64512],"mapped",[1574,1580]],[[64513,64513],"mapped",[1574,1581]],[[64514,64514],"mapped",[1574,1605]],[[64515,64515],"mapped",[1574,1609]],[[64516,64516],"mapped",[1574,1610]],[[64517,64517],"mapped",[1576,1580]],[[64518,64518],"mapped",[1576,1581]],[[64519,64519],"mapped",[1576,1582]],[[64520,64520],"mapped",[1576,1605]],[[64521,64521],"mapped",[1576,1609]],[[64522,64522],"mapped",[1576,1610]],[[64523,64523],"mapped",[1578,1580]],[[64524,64524],"mapped",[1578,1581]],[[64525,64525],"mapped",[1578,1582]],[[64526,64526],"mapped",[1578,1605]],[[64527,64527],"mapped",[1578,1609]],[[64528,64528],"mapped",[1578,1610]],[[64529,64529],"mapped",[1579,1580]],[[64530,64530],"mapped",[1579,1605]],[[64531,64531],"mapped",[1579,1609]],[[64532,64532],"mapped",[1579,1610]],[[64533,64533],"mapped",[1580,1581]],[[64534,64534],"mapped",[1580,1605]],[[64535,64535],"mapped",[1581,1580]],[[64536,64536],"mapped",[1581,1605]],[[64537,64537],"mapped",[1582,1580]],[[64538,64538],"mapped",[1582,1581]],[[64539,64539],"mapped",[1582,1605]],[[64540,64540],"mapped",[1587,1580]],[[64541,64541],"mapped",[1587,1581]],[[64542,64542],"mapped",[1587,1582]],[[64543,64543],"mapped",[1587,1605]],[[64544,64544],"mapped",[1589,1581]],[[64545,64545],"mapped",[1589,1605]],[[64546,64546],"mapped",[1590,1580]],[[64547,64547],"mapped",[1590,1581]],[[64548,64548],"mapped",[1590,1582]],[[64549,64549],"mapped",[1590,1605]],[[64550,64550],"mapped",[1591,1581]],[[64551,64551],"mapped",[1591,1605]],[[64552,64552],"mapped",[1592,1605]],[[64553,64553],"mapped",[1593,1580]],[[64554,64554],"mapped",[1593,1605]],[[64555,64555],"mapped",[1594,1580]],[[64556,64556],"mapped",[1594,1605]],[[64557,64557],"mapped",[1601,1580]],[[64558,64558],"mapped",[1601,1581]],[[64559,64559],"mapped",[1601,1582]],[[64560,64560],"mapped",[1601,1605]],[[64561,64561],"mapped",[1601,1609]],[[64562,64562],"mapped",[1601,1610]],[[64563,64563],"mapped",[1602,1581]],[[64564,64564],"mapped",[1602,1605]],[[64565,64565],"mapped",[1602,1609]],[[64566,64566],"mapped",[1602,1610]],[[64567,64567],"mapped",[1603,1575]],[[64568,64568],"mapped",[1603,1580]],[[64569,64569],"mapped",[1603,1581]],[[64570,64570],"mapped",[1603,1582]],[[64571,64571],"mapped",[1603,1604]],[[64572,64572],"mapped",[1603,1605]],[[64573,64573],"mapped",[1603,1609]],[[64574,64574],"mapped",[1603,1610]],[[64575,64575],"mapped",[1604,1580]],[[64576,64576],"mapped",[1604,1581]],[[64577,64577],"mapped",[1604,1582]],[[64578,64578],"mapped",[1604,1605]],[[64579,64579],"mapped",[1604,1609]],[[64580,64580],"mapped",[1604,1610]],[[64581,64581],"mapped",[1605,1580]],[[64582,64582],"mapped",[1605,1581]],[[64583,64583],"mapped",[1605,1582]],[[64584,64584],"mapped",[1605,1605]],[[64585,64585],"mapped",[1605,1609]],[[64586,64586],"mapped",[1605,1610]],[[64587,64587],"mapped",[1606,1580]],[[64588,64588],"mapped",[1606,1581]],[[64589,64589],"mapped",[1606,1582]],[[64590,64590],"mapped",[1606,1605]],[[64591,64591],"mapped",[1606,1609]],[[64592,64592],"mapped",[1606,1610]],[[64593,64593],"mapped",[1607,1580]],[[64594,64594],"mapped",[1607,1605]],[[64595,64595],"mapped",[1607,1609]],[[64596,64596],"mapped",[1607,1610]],[[64597,64597],"mapped",[1610,1580]],[[64598,64598],"mapped",[1610,1581]],[[64599,64599],"mapped",[1610,1582]],[[64600,64600],"mapped",[1610,1605]],[[64601,64601],"mapped",[1610,1609]],[[64602,64602],"mapped",[1610,1610]],[[64603,64603],"mapped",[1584,1648]],[[64604,64604],"mapped",[1585,1648]],[[64605,64605],"mapped",[1609,1648]],[[64606,64606],"disallowed_STD3_mapped",[32,1612,1617]],[[64607,64607],"disallowed_STD3_mapped",[32,1613,1617]],[[64608,64608],"disallowed_STD3_mapped",[32,1614,1617]],[[64609,64609],"disallowed_STD3_mapped",[32,1615,1617]],[[64610,64610],"disallowed_STD3_mapped",[32,1616,1617]],[[64611,64611],"disallowed_STD3_mapped",[32,1617,1648]],[[64612,64612],"mapped",[1574,1585]],[[64613,64613],"mapped",[1574,1586]],[[64614,64614],"mapped",[1574,1605]],[[64615,64615],"mapped",[1574,1606]],[[64616,64616],"mapped",[1574,1609]],[[64617,64617],"mapped",[1574,1610]],[[64618,64618],"mapped",[1576,1585]],[[64619,64619],"mapped",[1576,1586]],[[64620,64620],"mapped",[1576,1605]],[[64621,64621],"mapped",[1576,1606]],[[64622,64622],"mapped",[1576,1609]],[[64623,64623],"mapped",[1576,1610]],[[64624,64624],"mapped",[1578,1585]],[[64625,64625],"mapped",[1578,1586]],[[64626,64626],"mapped",[1578,1605]],[[64627,64627],"mapped",[1578,1606]],[[64628,64628],"mapped",[1578,1609]],[[64629,64629],"mapped",[1578,1610]],[[64630,64630],"mapped",[1579,1585]],[[64631,64631],"mapped",[1579,1586]],[[64632,64632],"mapped",[1579,1605]],[[64633,64633],"mapped",[1579,1606]],[[64634,64634],"mapped",[1579,1609]],[[64635,64635],"mapped",[1579,1610]],[[64636,64636],"mapped",[1601,1609]],[[64637,64637],"mapped",[1601,1610]],[[64638,64638],"mapped",[1602,1609]],[[64639,64639],"mapped",[1602,1610]],[[64640,64640],"mapped",[1603,1575]],[[64641,64641],"mapped",[1603,1604]],[[64642,64642],"mapped",[1603,1605]],[[64643,64643],"mapped",[1603,1609]],[[64644,64644],"mapped",[1603,1610]],[[64645,64645],"mapped",[1604,1605]],[[64646,64646],"mapped",[1604,1609]],[[64647,64647],"mapped",[1604,1610]],[[64648,64648],"mapped",[1605,1575]],[[64649,64649],"mapped",[1605,1605]],[[64650,64650],"mapped",[1606,1585]],[[64651,64651],"mapped",[1606,1586]],[[64652,64652],"mapped",[1606,1605]],[[64653,64653],"mapped",[1606,1606]],[[64654,64654],"mapped",[1606,1609]],[[64655,64655],"mapped",[1606,1610]],[[64656,64656],"mapped",[1609,1648]],[[64657,64657],"mapped",[1610,1585]],[[64658,64658],"mapped",[1610,1586]],[[64659,64659],"mapped",[1610,1605]],[[64660,64660],"mapped",[1610,1606]],[[64661,64661],"mapped",[1610,1609]],[[64662,64662],"mapped",[1610,1610]],[[64663,64663],"mapped",[1574,1580]],[[64664,64664],"mapped",[1574,1581]],[[64665,64665],"mapped",[1574,1582]],[[64666,64666],"mapped",[1574,1605]],[[64667,64667],"mapped",[1574,1607]],[[64668,64668],"mapped",[1576,1580]],[[64669,64669],"mapped",[1576,1581]],[[64670,64670],"mapped",[1576,1582]],[[64671,64671],"mapped",[1576,1605]],[[64672,64672],"mapped",[1576,1607]],[[64673,64673],"mapped",[1578,1580]],[[64674,64674],"mapped",[1578,1581]],[[64675,64675],"mapped",[1578,1582]],[[64676,64676],"mapped",[1578,1605]],[[64677,64677],"mapped",[1578,1607]],[[64678,64678],"mapped",[1579,1605]],[[64679,64679],"mapped",[1580,1581]],[[64680,64680],"mapped",[1580,1605]],[[64681,64681],"mapped",[1581,1580]],[[64682,64682],"mapped",[1581,1605]],[[64683,64683],"mapped",[1582,1580]],[[64684,64684],"mapped",[1582,1605]],[[64685,64685],"mapped",[1587,1580]],[[64686,64686],"mapped",[1587,1581]],[[64687,64687],"mapped",[1587,1582]],[[64688,64688],"mapped",[1587,1605]],[[64689,64689],"mapped",[1589,1581]],[[64690,64690],"mapped",[1589,1582]],[[64691,64691],"mapped",[1589,1605]],[[64692,64692],"mapped",[1590,1580]],[[64693,64693],"mapped",[1590,1581]],[[64694,64694],"mapped",[1590,1582]],[[64695,64695],"mapped",[1590,1605]],[[64696,64696],"mapped",[1591,1581]],[[64697,64697],"mapped",[1592,1605]],[[64698,64698],"mapped",[1593,1580]],[[64699,64699],"mapped",[1593,1605]],[[64700,64700],"mapped",[1594,1580]],[[64701,64701],"mapped",[1594,1605]],[[64702,64702],"mapped",[1601,1580]],[[64703,64703],"mapped",[1601,1581]],[[64704,64704],"mapped",[1601,1582]],[[64705,64705],"mapped",[1601,1605]],[[64706,64706],"mapped",[1602,1581]],[[64707,64707],"mapped",[1602,1605]],[[64708,64708],"mapped",[1603,1580]],[[64709,64709],"mapped",[1603,1581]],[[64710,64710],"mapped",[1603,1582]],[[64711,64711],"mapped",[1603,1604]],[[64712,64712],"mapped",[1603,1605]],[[64713,64713],"mapped",[1604,1580]],[[64714,64714],"mapped",[1604,1581]],[[64715,64715],"mapped",[1604,1582]],[[64716,64716],"mapped",[1604,1605]],[[64717,64717],"mapped",[1604,1607]],[[64718,64718],"mapped",[1605,1580]],[[64719,64719],"mapped",[1605,1581]],[[64720,64720],"mapped",[1605,1582]],[[64721,64721],"mapped",[1605,1605]],[[64722,64722],"mapped",[1606,1580]],[[64723,64723],"mapped",[1606,1581]],[[64724,64724],"mapped",[1606,1582]],[[64725,64725],"mapped",[1606,1605]],[[64726,64726],"mapped",[1606,1607]],[[64727,64727],"mapped",[1607,1580]],[[64728,64728],"mapped",[1607,1605]],[[64729,64729],"mapped",[1607,1648]],[[64730,64730],"mapped",[1610,1580]],[[64731,64731],"mapped",[1610,1581]],[[64732,64732],"mapped",[1610,1582]],[[64733,64733],"mapped",[1610,1605]],[[64734,64734],"mapped",[1610,1607]],[[64735,64735],"mapped",[1574,1605]],[[64736,64736],"mapped",[1574,1607]],[[64737,64737],"mapped",[1576,1605]],[[64738,64738],"mapped",[1576,1607]],[[64739,64739],"mapped",[1578,1605]],[[64740,64740],"mapped",[1578,1607]],[[64741,64741],"mapped",[1579,1605]],[[64742,64742],"mapped",[1579,1607]],[[64743,64743],"mapped",[1587,1605]],[[64744,64744],"mapped",[1587,1607]],[[64745,64745],"mapped",[1588,1605]],[[64746,64746],"mapped",[1588,1607]],[[64747,64747],"mapped",[1603,1604]],[[64748,64748],"mapped",[1603,1605]],[[64749,64749],"mapped",[1604,1605]],[[64750,64750],"mapped",[1606,1605]],[[64751,64751],"mapped",[1606,1607]],[[64752,64752],"mapped",[1610,1605]],[[64753,64753],"mapped",[1610,1607]],[[64754,64754],"mapped",[1600,1614,1617]],[[64755,64755],"mapped",[1600,1615,1617]],[[64756,64756],"mapped",[1600,1616,1617]],[[64757,64757],"mapped",[1591,1609]],[[64758,64758],"mapped",[1591,1610]],[[64759,64759],"mapped",[1593,1609]],[[64760,64760],"mapped",[1593,1610]],[[64761,64761],"mapped",[1594,1609]],[[64762,64762],"mapped",[1594,1610]],[[64763,64763],"mapped",[1587,1609]],[[64764,64764],"mapped",[1587,1610]],[[64765,64765],"mapped",[1588,1609]],[[64766,64766],"mapped",[1588,1610]],[[64767,64767],"mapped",[1581,1609]],[[64768,64768],"mapped",[1581,1610]],[[64769,64769],"mapped",[1580,1609]],[[64770,64770],"mapped",[1580,1610]],[[64771,64771],"mapped",[1582,1609]],[[64772,64772],"mapped",[1582,1610]],[[64773,64773],"mapped",[1589,1609]],[[64774,64774],"mapped",[1589,1610]],[[64775,64775],"mapped",[1590,1609]],[[64776,64776],"mapped",[1590,1610]],[[64777,64777],"mapped",[1588,1580]],[[64778,64778],"mapped",[1588,1581]],[[64779,64779],"mapped",[1588,1582]],[[64780,64780],"mapped",[1588,1605]],[[64781,64781],"mapped",[1588,1585]],[[64782,64782],"mapped",[1587,1585]],[[64783,64783],"mapped",[1589,1585]],[[64784,64784],"mapped",[1590,1585]],[[64785,64785],"mapped",[1591,1609]],[[64786,64786],"mapped",[1591,1610]],[[64787,64787],"mapped",[1593,1609]],[[64788,64788],"mapped",[1593,1610]],[[64789,64789],"mapped",[1594,1609]],[[64790,64790],"mapped",[1594,1610]],[[64791,64791],"mapped",[1587,1609]],[[64792,64792],"mapped",[1587,1610]],[[64793,64793],"mapped",[1588,1609]],[[64794,64794],"mapped",[1588,1610]],[[64795,64795],"mapped",[1581,1609]],[[64796,64796],"mapped",[1581,1610]],[[64797,64797],"mapped",[1580,1609]],[[64798,64798],"mapped",[1580,1610]],[[64799,64799],"mapped",[1582,1609]],[[64800,64800],"mapped",[1582,1610]],[[64801,64801],"mapped",[1589,1609]],[[64802,64802],"mapped",[1589,1610]],[[64803,64803],"mapped",[1590,1609]],[[64804,64804],"mapped",[1590,1610]],[[64805,64805],"mapped",[1588,1580]],[[64806,64806],"mapped",[1588,1581]],[[64807,64807],"mapped",[1588,1582]],[[64808,64808],"mapped",[1588,1605]],[[64809,64809],"mapped",[1588,1585]],[[64810,64810],"mapped",[1587,1585]],[[64811,64811],"mapped",[1589,1585]],[[64812,64812],"mapped",[1590,1585]],[[64813,64813],"mapped",[1588,1580]],[[64814,64814],"mapped",[1588,1581]],[[64815,64815],"mapped",[1588,1582]],[[64816,64816],"mapped",[1588,1605]],[[64817,64817],"mapped",[1587,1607]],[[64818,64818],"mapped",[1588,1607]],[[64819,64819],"mapped",[1591,1605]],[[64820,64820],"mapped",[1587,1580]],[[64821,64821],"mapped",[1587,1581]],[[64822,64822],"mapped",[1587,1582]],[[64823,64823],"mapped",[1588,1580]],[[64824,64824],"mapped",[1588,1581]],[[64825,64825],"mapped",[1588,1582]],[[64826,64826],"mapped",[1591,1605]],[[64827,64827],"mapped",[1592,1605]],[[64828,64829],"mapped",[1575,1611]],[[64830,64831],"valid",[],"NV8"],[[64832,64847],"disallowed"],[[64848,64848],"mapped",[1578,1580,1605]],[[64849,64850],"mapped",[1578,1581,1580]],[[64851,64851],"mapped",[1578,1581,1605]],[[64852,64852],"mapped",[1578,1582,1605]],[[64853,64853],"mapped",[1578,1605,1580]],[[64854,64854],"mapped",[1578,1605,1581]],[[64855,64855],"mapped",[1578,1605,1582]],[[64856,64857],"mapped",[1580,1605,1581]],[[64858,64858],"mapped",[1581,1605,1610]],[[64859,64859],"mapped",[1581,1605,1609]],[[64860,64860],"mapped",[1587,1581,1580]],[[64861,64861],"mapped",[1587,1580,1581]],[[64862,64862],"mapped",[1587,1580,1609]],[[64863,64864],"mapped",[1587,1605,1581]],[[64865,64865],"mapped",[1587,1605,1580]],[[64866,64867],"mapped",[1587,1605,1605]],[[64868,64869],"mapped",[1589,1581,1581]],[[64870,64870],"mapped",[1589,1605,1605]],[[64871,64872],"mapped",[1588,1581,1605]],[[64873,64873],"mapped",[1588,1580,1610]],[[64874,64875],"mapped",[1588,1605,1582]],[[64876,64877],"mapped",[1588,1605,1605]],[[64878,64878],"mapped",[1590,1581,1609]],[[64879,64880],"mapped",[1590,1582,1605]],[[64881,64882],"mapped",[1591,1605,1581]],[[64883,64883],"mapped",[1591,1605,1605]],[[64884,64884],"mapped",[1591,1605,1610]],[[64885,64885],"mapped",[1593,1580,1605]],[[64886,64887],"mapped",[1593,1605,1605]],[[64888,64888],"mapped",[1593,1605,1609]],[[64889,64889],"mapped",[1594,1605,1605]],[[64890,64890],"mapped",[1594,1605,1610]],[[64891,64891],"mapped",[1594,1605,1609]],[[64892,64893],"mapped",[1601,1582,1605]],[[64894,64894],"mapped",[1602,1605,1581]],[[64895,64895],"mapped",[1602,1605,1605]],[[64896,64896],"mapped",[1604,1581,1605]],[[64897,64897],"mapped",[1604,1581,1610]],[[64898,64898],"mapped",[1604,1581,1609]],[[64899,64900],"mapped",[1604,1580,1580]],[[64901,64902],"mapped",[1604,1582,1605]],[[64903,64904],"mapped",[1604,1605,1581]],[[64905,64905],"mapped",[1605,1581,1580]],[[64906,64906],"mapped",[1605,1581,1605]],[[64907,64907],"mapped",[1605,1581,1610]],[[64908,64908],"mapped",[1605,1580,1581]],[[64909,64909],"mapped",[1605,1580,1605]],[[64910,64910],"mapped",[1605,1582,1580]],[[64911,64911],"mapped",[1605,1582,1605]],[[64912,64913],"disallowed"],[[64914,64914],"mapped",[1605,1580,1582]],[[64915,64915],"mapped",[1607,1605,1580]],[[64916,64916],"mapped",[1607,1605,1605]],[[64917,64917],"mapped",[1606,1581,1605]],[[64918,64918],"mapped",[1606,1581,1609]],[[64919,64920],"mapped",[1606,1580,1605]],[[64921,64921],"mapped",[1606,1580,1609]],[[64922,64922],"mapped",[1606,1605,1610]],[[64923,64923],"mapped",[1606,1605,1609]],[[64924,64925],"mapped",[1610,1605,1605]],[[64926,64926],"mapped",[1576,1582,1610]],[[64927,64927],"mapped",[1578,1580,1610]],[[64928,64928],"mapped",[1578,1580,1609]],[[64929,64929],"mapped",[1578,1582,1610]],[[64930,64930],"mapped",[1578,1582,1609]],[[64931,64931],"mapped",[1578,1605,1610]],[[64932,64932],"mapped",[1578,1605,1609]],[[64933,64933],"mapped",[1580,1605,1610]],[[64934,64934],"mapped",[1580,1581,1609]],[[64935,64935],"mapped",[1580,1605,1609]],[[64936,64936],"mapped",[1587,1582,1609]],[[64937,64937],"mapped",[1589,1581,1610]],[[64938,64938],"mapped",[1588,1581,1610]],[[64939,64939],"mapped",[1590,1581,1610]],[[64940,64940],"mapped",[1604,1580,1610]],[[64941,64941],"mapped",[1604,1605,1610]],[[64942,64942],"mapped",[1610,1581,1610]],[[64943,64943],"mapped",[1610,1580,1610]],[[64944,64944],"mapped",[1610,1605,1610]],[[64945,64945],"mapped",[1605,1605,1610]],[[64946,64946],"mapped",[1602,1605,1610]],[[64947,64947],"mapped",[1606,1581,1610]],[[64948,64948],"mapped",[1602,1605,1581]],[[64949,64949],"mapped",[1604,1581,1605]],[[64950,64950],"mapped",[1593,1605,1610]],[[64951,64951],"mapped",[1603,1605,1610]],[[64952,64952],"mapped",[1606,1580,1581]],[[64953,64953],"mapped",[1605,1582,1610]],[[64954,64954],"mapped",[1604,1580,1605]],[[64955,64955],"mapped",[1603,1605,1605]],[[64956,64956],"mapped",[1604,1580,1605]],[[64957,64957],"mapped",[1606,1580,1581]],[[64958,64958],"mapped",[1580,1581,1610]],[[64959,64959],"mapped",[1581,1580,1610]],[[64960,64960],"mapped",[1605,1580,1610]],[[64961,64961],"mapped",[1601,1605,1610]],[[64962,64962],"mapped",[1576,1581,1610]],[[64963,64963],"mapped",[1603,1605,1605]],[[64964,64964],"mapped",[1593,1580,1605]],[[64965,64965],"mapped",[1589,1605,1605]],[[64966,64966],"mapped",[1587,1582,1610]],[[64967,64967],"mapped",[1606,1580,1610]],[[64968,64975],"disallowed"],[[64976,65007],"disallowed"],[[65008,65008],"mapped",[1589,1604,1746]],[[65009,65009],"mapped",[1602,1604,1746]],[[65010,65010],"mapped",[1575,1604,1604,1607]],[[65011,65011],"mapped",[1575,1603,1576,1585]],[[65012,65012],"mapped",[1605,1581,1605,1583]],[[65013,65013],"mapped",[1589,1604,1593,1605]],[[65014,65014],"mapped",[1585,1587,1608,1604]],[[65015,65015],"mapped",[1593,1604,1610,1607]],[[65016,65016],"mapped",[1608,1587,1604,1605]],[[65017,65017],"mapped",[1589,1604,1609]],[[65018,65018],"disallowed_STD3_mapped",[1589,1604,1609,32,1575,1604,1604,1607,32,1593,1604,1610,1607,32,1608,1587,1604,1605]],[[65019,65019],"disallowed_STD3_mapped",[1580,1604,32,1580,1604,1575,1604,1607]],[[65020,65020],"mapped",[1585,1740,1575,1604]],[[65021,65021],"valid",[],"NV8"],[[65022,65023],"disallowed"],[[65024,65039],"ignored"],[[65040,65040],"disallowed_STD3_mapped",[44]],[[65041,65041],"mapped",[12289]],[[65042,65042],"disallowed"],[[65043,65043],"disallowed_STD3_mapped",[58]],[[65044,65044],"disallowed_STD3_mapped",[59]],[[65045,65045],"disallowed_STD3_mapped",[33]],[[65046,65046],"disallowed_STD3_mapped",[63]],[[65047,65047],"mapped",[12310]],[[65048,65048],"mapped",[12311]],[[65049,65049],"disallowed"],[[65050,65055],"disallowed"],[[65056,65059],"valid"],[[65060,65062],"valid"],[[65063,65069],"valid"],[[65070,65071],"valid"],[[65072,65072],"disallowed"],[[65073,65073],"mapped",[8212]],[[65074,65074],"mapped",[8211]],[[65075,65076],"disallowed_STD3_mapped",[95]],[[65077,65077],"disallowed_STD3_mapped",[40]],[[65078,65078],"disallowed_STD3_mapped",[41]],[[65079,65079],"disallowed_STD3_mapped",[123]],[[65080,65080],"disallowed_STD3_mapped",[125]],[[65081,65081],"mapped",[12308]],[[65082,65082],"mapped",[12309]],[[65083,65083],"mapped",[12304]],[[65084,65084],"mapped",[12305]],[[65085,65085],"mapped",[12298]],[[65086,65086],"mapped",[12299]],[[65087,65087],"mapped",[12296]],[[65088,65088],"mapped",[12297]],[[65089,65089],"mapped",[12300]],[[65090,65090],"mapped",[12301]],[[65091,65091],"mapped",[12302]],[[65092,65092],"mapped",[12303]],[[65093,65094],"valid",[],"NV8"],[[65095,65095],"disallowed_STD3_mapped",[91]],[[65096,65096],"disallowed_STD3_mapped",[93]],[[65097,65100],"disallowed_STD3_mapped",[32,773]],[[65101,65103],"disallowed_STD3_mapped",[95]],[[65104,65104],"disallowed_STD3_mapped",[44]],[[65105,65105],"mapped",[12289]],[[65106,65106],"disallowed"],[[65107,65107],"disallowed"],[[65108,65108],"disallowed_STD3_mapped",[59]],[[65109,65109],"disallowed_STD3_mapped",[58]],[[65110,65110],"disallowed_STD3_mapped",[63]],[[65111,65111],"disallowed_STD3_mapped",[33]],[[65112,65112],"mapped",[8212]],[[65113,65113],"disallowed_STD3_mapped",[40]],[[65114,65114],"disallowed_STD3_mapped",[41]],[[65115,65115],"disallowed_STD3_mapped",[123]],[[65116,65116],"disallowed_STD3_mapped",[125]],[[65117,65117],"mapped",[12308]],[[65118,65118],"mapped",[12309]],[[65119,65119],"disallowed_STD3_mapped",[35]],[[65120,65120],"disallowed_STD3_mapped",[38]],[[65121,65121],"disallowed_STD3_mapped",[42]],[[65122,65122],"disallowed_STD3_mapped",[43]],[[65123,65123],"mapped",[45]],[[65124,65124],"disallowed_STD3_mapped",[60]],[[65125,65125],"disallowed_STD3_mapped",[62]],[[65126,65126],"disallowed_STD3_mapped",[61]],[[65127,65127],"disallowed"],[[65128,65128],"disallowed_STD3_mapped",[92]],[[65129,65129],"disallowed_STD3_mapped",[36]],[[65130,65130],"disallowed_STD3_mapped",[37]],[[65131,65131],"disallowed_STD3_mapped",[64]],[[65132,65135],"disallowed"],[[65136,65136],"disallowed_STD3_mapped",[32,1611]],[[65137,65137],"mapped",[1600,1611]],[[65138,65138],"disallowed_STD3_mapped",[32,1612]],[[65139,65139],"valid"],[[65140,65140],"disallowed_STD3_mapped",[32,1613]],[[65141,65141],"disallowed"],[[65142,65142],"disallowed_STD3_mapped",[32,1614]],[[65143,65143],"mapped",[1600,1614]],[[65144,65144],"disallowed_STD3_mapped",[32,1615]],[[65145,65145],"mapped",[1600,1615]],[[65146,65146],"disallowed_STD3_mapped",[32,1616]],[[65147,65147],"mapped",[1600,1616]],[[65148,65148],"disallowed_STD3_mapped",[32,1617]],[[65149,65149],"mapped",[1600,1617]],[[65150,65150],"disallowed_STD3_mapped",[32,1618]],[[65151,65151],"mapped",[1600,1618]],[[65152,65152],"mapped",[1569]],[[65153,65154],"mapped",[1570]],[[65155,65156],"mapped",[1571]],[[65157,65158],"mapped",[1572]],[[65159,65160],"mapped",[1573]],[[65161,65164],"mapped",[1574]],[[65165,65166],"mapped",[1575]],[[65167,65170],"mapped",[1576]],[[65171,65172],"mapped",[1577]],[[65173,65176],"mapped",[1578]],[[65177,65180],"mapped",[1579]],[[65181,65184],"mapped",[1580]],[[65185,65188],"mapped",[1581]],[[65189,65192],"mapped",[1582]],[[65193,65194],"mapped",[1583]],[[65195,65196],"mapped",[1584]],[[65197,65198],"mapped",[1585]],[[65199,65200],"mapped",[1586]],[[65201,65204],"mapped",[1587]],[[65205,65208],"mapped",[1588]],[[65209,65212],"mapped",[1589]],[[65213,65216],"mapped",[1590]],[[65217,65220],"mapped",[1591]],[[65221,65224],"mapped",[1592]],[[65225,65228],"mapped",[1593]],[[65229,65232],"mapped",[1594]],[[65233,65236],"mapped",[1601]],[[65237,65240],"mapped",[1602]],[[65241,65244],"mapped",[1603]],[[65245,65248],"mapped",[1604]],[[65249,65252],"mapped",[1605]],[[65253,65256],"mapped",[1606]],[[65257,65260],"mapped",[1607]],[[65261,65262],"mapped",[1608]],[[65263,65264],"mapped",[1609]],[[65265,65268],"mapped",[1610]],[[65269,65270],"mapped",[1604,1570]],[[65271,65272],"mapped",[1604,1571]],[[65273,65274],"mapped",[1604,1573]],[[65275,65276],"mapped",[1604,1575]],[[65277,65278],"disallowed"],[[65279,65279],"ignored"],[[65280,65280],"disallowed"],[[65281,65281],"disallowed_STD3_mapped",[33]],[[65282,65282],"disallowed_STD3_mapped",[34]],[[65283,65283],"disallowed_STD3_mapped",[35]],[[65284,65284],"disallowed_STD3_mapped",[36]],[[65285,65285],"disallowed_STD3_mapped",[37]],[[65286,65286],"disallowed_STD3_mapped",[38]],[[65287,65287],"disallowed_STD3_mapped",[39]],[[65288,65288],"disallowed_STD3_mapped",[40]],[[65289,65289],"disallowed_STD3_mapped",[41]],[[65290,65290],"disallowed_STD3_mapped",[42]],[[65291,65291],"disallowed_STD3_mapped",[43]],[[65292,65292],"disallowed_STD3_mapped",[44]],[[65293,65293],"mapped",[45]],[[65294,65294],"mapped",[46]],[[65295,65295],"disallowed_STD3_mapped",[47]],[[65296,65296],"mapped",[48]],[[65297,65297],"mapped",[49]],[[65298,65298],"mapped",[50]],[[65299,65299],"mapped",[51]],[[65300,65300],"mapped",[52]],[[65301,65301],"mapped",[53]],[[65302,65302],"mapped",[54]],[[65303,65303],"mapped",[55]],[[65304,65304],"mapped",[56]],[[65305,65305],"mapped",[57]],[[65306,65306],"disallowed_STD3_mapped",[58]],[[65307,65307],"disallowed_STD3_mapped",[59]],[[65308,65308],"disallowed_STD3_mapped",[60]],[[65309,65309],"disallowed_STD3_mapped",[61]],[[65310,65310],"disallowed_STD3_mapped",[62]],[[65311,65311],"disallowed_STD3_mapped",[63]],[[65312,65312],"disallowed_STD3_mapped",[64]],[[65313,65313],"mapped",[97]],[[65314,65314],"mapped",[98]],[[65315,65315],"mapped",[99]],[[65316,65316],"mapped",[100]],[[65317,65317],"mapped",[101]],[[65318,65318],"mapped",[102]],[[65319,65319],"mapped",[103]],[[65320,65320],"mapped",[104]],[[65321,65321],"mapped",[105]],[[65322,65322],"mapped",[106]],[[65323,65323],"mapped",[107]],[[65324,65324],"mapped",[108]],[[65325,65325],"mapped",[109]],[[65326,65326],"mapped",[110]],[[65327,65327],"mapped",[111]],[[65328,65328],"mapped",[112]],[[65329,65329],"mapped",[113]],[[65330,65330],"mapped",[114]],[[65331,65331],"mapped",[115]],[[65332,65332],"mapped",[116]],[[65333,65333],"mapped",[117]],[[65334,65334],"mapped",[118]],[[65335,65335],"mapped",[119]],[[65336,65336],"mapped",[120]],[[65337,65337],"mapped",[121]],[[65338,65338],"mapped",[122]],[[65339,65339],"disallowed_STD3_mapped",[91]],[[65340,65340],"disallowed_STD3_mapped",[92]],[[65341,65341],"disallowed_STD3_mapped",[93]],[[65342,65342],"disallowed_STD3_mapped",[94]],[[65343,65343],"disallowed_STD3_mapped",[95]],[[65344,65344],"disallowed_STD3_mapped",[96]],[[65345,65345],"mapped",[97]],[[65346,65346],"mapped",[98]],[[65347,65347],"mapped",[99]],[[65348,65348],"mapped",[100]],[[65349,65349],"mapped",[101]],[[65350,65350],"mapped",[102]],[[65351,65351],"mapped",[103]],[[65352,65352],"mapped",[104]],[[65353,65353],"mapped",[105]],[[65354,65354],"mapped",[106]],[[65355,65355],"mapped",[107]],[[65356,65356],"mapped",[108]],[[65357,65357],"mapped",[109]],[[65358,65358],"mapped",[110]],[[65359,65359],"mapped",[111]],[[65360,65360],"mapped",[112]],[[65361,65361],"mapped",[113]],[[65362,65362],"mapped",[114]],[[65363,65363],"mapped",[115]],[[65364,65364],"mapped",[116]],[[65365,65365],"mapped",[117]],[[65366,65366],"mapped",[118]],[[65367,65367],"mapped",[119]],[[65368,65368],"mapped",[120]],[[65369,65369],"mapped",[121]],[[65370,65370],"mapped",[122]],[[65371,65371],"disallowed_STD3_mapped",[123]],[[65372,65372],"disallowed_STD3_mapped",[124]],[[65373,65373],"disallowed_STD3_mapped",[125]],[[65374,65374],"disallowed_STD3_mapped",[126]],[[65375,65375],"mapped",[10629]],[[65376,65376],"mapped",[10630]],[[65377,65377],"mapped",[46]],[[65378,65378],"mapped",[12300]],[[65379,65379],"mapped",[12301]],[[65380,65380],"mapped",[12289]],[[65381,65381],"mapped",[12539]],[[65382,65382],"mapped",[12530]],[[65383,65383],"mapped",[12449]],[[65384,65384],"mapped",[12451]],[[65385,65385],"mapped",[12453]],[[65386,65386],"mapped",[12455]],[[65387,65387],"mapped",[12457]],[[65388,65388],"mapped",[12515]],[[65389,65389],"mapped",[12517]],[[65390,65390],"mapped",[12519]],[[65391,65391],"mapped",[12483]],[[65392,65392],"mapped",[12540]],[[65393,65393],"mapped",[12450]],[[65394,65394],"mapped",[12452]],[[65395,65395],"mapped",[12454]],[[65396,65396],"mapped",[12456]],[[65397,65397],"mapped",[12458]],[[65398,65398],"mapped",[12459]],[[65399,65399],"mapped",[12461]],[[65400,65400],"mapped",[12463]],[[65401,65401],"mapped",[12465]],[[65402,65402],"mapped",[12467]],[[65403,65403],"mapped",[12469]],[[65404,65404],"mapped",[12471]],[[65405,65405],"mapped",[12473]],[[65406,65406],"mapped",[12475]],[[65407,65407],"mapped",[12477]],[[65408,65408],"mapped",[12479]],[[65409,65409],"mapped",[12481]],[[65410,65410],"mapped",[12484]],[[65411,65411],"mapped",[12486]],[[65412,65412],"mapped",[12488]],[[65413,65413],"mapped",[12490]],[[65414,65414],"mapped",[12491]],[[65415,65415],"mapped",[12492]],[[65416,65416],"mapped",[12493]],[[65417,65417],"mapped",[12494]],[[65418,65418],"mapped",[12495]],[[65419,65419],"mapped",[12498]],[[65420,65420],"mapped",[12501]],[[65421,65421],"mapped",[12504]],[[65422,65422],"mapped",[12507]],[[65423,65423],"mapped",[12510]],[[65424,65424],"mapped",[12511]],[[65425,65425],"mapped",[12512]],[[65426,65426],"mapped",[12513]],[[65427,65427],"mapped",[12514]],[[65428,65428],"mapped",[12516]],[[65429,65429],"mapped",[12518]],[[65430,65430],"mapped",[12520]],[[65431,65431],"mapped",[12521]],[[65432,65432],"mapped",[12522]],[[65433,65433],"mapped",[12523]],[[65434,65434],"mapped",[12524]],[[65435,65435],"mapped",[12525]],[[65436,65436],"mapped",[12527]],[[65437,65437],"mapped",[12531]],[[65438,65438],"mapped",[12441]],[[65439,65439],"mapped",[12442]],[[65440,65440],"disallowed"],[[65441,65441],"mapped",[4352]],[[65442,65442],"mapped",[4353]],[[65443,65443],"mapped",[4522]],[[65444,65444],"mapped",[4354]],[[65445,65445],"mapped",[4524]],[[65446,65446],"mapped",[4525]],[[65447,65447],"mapped",[4355]],[[65448,65448],"mapped",[4356]],[[65449,65449],"mapped",[4357]],[[65450,65450],"mapped",[4528]],[[65451,65451],"mapped",[4529]],[[65452,65452],"mapped",[4530]],[[65453,65453],"mapped",[4531]],[[65454,65454],"mapped",[4532]],[[65455,65455],"mapped",[4533]],[[65456,65456],"mapped",[4378]],[[65457,65457],"mapped",[4358]],[[65458,65458],"mapped",[4359]],[[65459,65459],"mapped",[4360]],[[65460,65460],"mapped",[4385]],[[65461,65461],"mapped",[4361]],[[65462,65462],"mapped",[4362]],[[65463,65463],"mapped",[4363]],[[65464,65464],"mapped",[4364]],[[65465,65465],"mapped",[4365]],[[65466,65466],"mapped",[4366]],[[65467,65467],"mapped",[4367]],[[65468,65468],"mapped",[4368]],[[65469,65469],"mapped",[4369]],[[65470,65470],"mapped",[4370]],[[65471,65473],"disallowed"],[[65474,65474],"mapped",[4449]],[[65475,65475],"mapped",[4450]],[[65476,65476],"mapped",[4451]],[[65477,65477],"mapped",[4452]],[[65478,65478],"mapped",[4453]],[[65479,65479],"mapped",[4454]],[[65480,65481],"disallowed"],[[65482,65482],"mapped",[4455]],[[65483,65483],"mapped",[4456]],[[65484,65484],"mapped",[4457]],[[65485,65485],"mapped",[4458]],[[65486,65486],"mapped",[4459]],[[65487,65487],"mapped",[4460]],[[65488,65489],"disallowed"],[[65490,65490],"mapped",[4461]],[[65491,65491],"mapped",[4462]],[[65492,65492],"mapped",[4463]],[[65493,65493],"mapped",[4464]],[[65494,65494],"mapped",[4465]],[[65495,65495],"mapped",[4466]],[[65496,65497],"disallowed"],[[65498,65498],"mapped",[4467]],[[65499,65499],"mapped",[4468]],[[65500,65500],"mapped",[4469]],[[65501,65503],"disallowed"],[[65504,65504],"mapped",[162]],[[65505,65505],"mapped",[163]],[[65506,65506],"mapped",[172]],[[65507,65507],"disallowed_STD3_mapped",[32,772]],[[65508,65508],"mapped",[166]],[[65509,65509],"mapped",[165]],[[65510,65510],"mapped",[8361]],[[65511,65511],"disallowed"],[[65512,65512],"mapped",[9474]],[[65513,65513],"mapped",[8592]],[[65514,65514],"mapped",[8593]],[[65515,65515],"mapped",[8594]],[[65516,65516],"mapped",[8595]],[[65517,65517],"mapped",[9632]],[[65518,65518],"mapped",[9675]],[[65519,65528],"disallowed"],[[65529,65531],"disallowed"],[[65532,65532],"disallowed"],[[65533,65533],"disallowed"],[[65534,65535],"disallowed"],[[65536,65547],"valid"],[[65548,65548],"disallowed"],[[65549,65574],"valid"],[[65575,65575],"disallowed"],[[65576,65594],"valid"],[[65595,65595],"disallowed"],[[65596,65597],"valid"],[[65598,65598],"disallowed"],[[65599,65613],"valid"],[[65614,65615],"disallowed"],[[65616,65629],"valid"],[[65630,65663],"disallowed"],[[65664,65786],"valid"],[[65787,65791],"disallowed"],[[65792,65794],"valid",[],"NV8"],[[65795,65798],"disallowed"],[[65799,65843],"valid",[],"NV8"],[[65844,65846],"disallowed"],[[65847,65855],"valid",[],"NV8"],[[65856,65930],"valid",[],"NV8"],[[65931,65932],"valid",[],"NV8"],[[65933,65935],"disallowed"],[[65936,65947],"valid",[],"NV8"],[[65948,65951],"disallowed"],[[65952,65952],"valid",[],"NV8"],[[65953,65999],"disallowed"],[[66e3,66044],"valid",[],"NV8"],[[66045,66045],"valid"],[[66046,66175],"disallowed"],[[66176,66204],"valid"],[[66205,66207],"disallowed"],[[66208,66256],"valid"],[[66257,66271],"disallowed"],[[66272,66272],"valid"],[[66273,66299],"valid",[],"NV8"],[[66300,66303],"disallowed"],[[66304,66334],"valid"],[[66335,66335],"valid"],[[66336,66339],"valid",[],"NV8"],[[66340,66351],"disallowed"],[[66352,66368],"valid"],[[66369,66369],"valid",[],"NV8"],[[66370,66377],"valid"],[[66378,66378],"valid",[],"NV8"],[[66379,66383],"disallowed"],[[66384,66426],"valid"],[[66427,66431],"disallowed"],[[66432,66461],"valid"],[[66462,66462],"disallowed"],[[66463,66463],"valid",[],"NV8"],[[66464,66499],"valid"],[[66500,66503],"disallowed"],[[66504,66511],"valid"],[[66512,66517],"valid",[],"NV8"],[[66518,66559],"disallowed"],[[66560,66560],"mapped",[66600]],[[66561,66561],"mapped",[66601]],[[66562,66562],"mapped",[66602]],[[66563,66563],"mapped",[66603]],[[66564,66564],"mapped",[66604]],[[66565,66565],"mapped",[66605]],[[66566,66566],"mapped",[66606]],[[66567,66567],"mapped",[66607]],[[66568,66568],"mapped",[66608]],[[66569,66569],"mapped",[66609]],[[66570,66570],"mapped",[66610]],[[66571,66571],"mapped",[66611]],[[66572,66572],"mapped",[66612]],[[66573,66573],"mapped",[66613]],[[66574,66574],"mapped",[66614]],[[66575,66575],"mapped",[66615]],[[66576,66576],"mapped",[66616]],[[66577,66577],"mapped",[66617]],[[66578,66578],"mapped",[66618]],[[66579,66579],"mapped",[66619]],[[66580,66580],"mapped",[66620]],[[66581,66581],"mapped",[66621]],[[66582,66582],"mapped",[66622]],[[66583,66583],"mapped",[66623]],[[66584,66584],"mapped",[66624]],[[66585,66585],"mapped",[66625]],[[66586,66586],"mapped",[66626]],[[66587,66587],"mapped",[66627]],[[66588,66588],"mapped",[66628]],[[66589,66589],"mapped",[66629]],[[66590,66590],"mapped",[66630]],[[66591,66591],"mapped",[66631]],[[66592,66592],"mapped",[66632]],[[66593,66593],"mapped",[66633]],[[66594,66594],"mapped",[66634]],[[66595,66595],"mapped",[66635]],[[66596,66596],"mapped",[66636]],[[66597,66597],"mapped",[66637]],[[66598,66598],"mapped",[66638]],[[66599,66599],"mapped",[66639]],[[66600,66637],"valid"],[[66638,66717],"valid"],[[66718,66719],"disallowed"],[[66720,66729],"valid"],[[66730,66815],"disallowed"],[[66816,66855],"valid"],[[66856,66863],"disallowed"],[[66864,66915],"valid"],[[66916,66926],"disallowed"],[[66927,66927],"valid",[],"NV8"],[[66928,67071],"disallowed"],[[67072,67382],"valid"],[[67383,67391],"disallowed"],[[67392,67413],"valid"],[[67414,67423],"disallowed"],[[67424,67431],"valid"],[[67432,67583],"disallowed"],[[67584,67589],"valid"],[[67590,67591],"disallowed"],[[67592,67592],"valid"],[[67593,67593],"disallowed"],[[67594,67637],"valid"],[[67638,67638],"disallowed"],[[67639,67640],"valid"],[[67641,67643],"disallowed"],[[67644,67644],"valid"],[[67645,67646],"disallowed"],[[67647,67647],"valid"],[[67648,67669],"valid"],[[67670,67670],"disallowed"],[[67671,67679],"valid",[],"NV8"],[[67680,67702],"valid"],[[67703,67711],"valid",[],"NV8"],[[67712,67742],"valid"],[[67743,67750],"disallowed"],[[67751,67759],"valid",[],"NV8"],[[67760,67807],"disallowed"],[[67808,67826],"valid"],[[67827,67827],"disallowed"],[[67828,67829],"valid"],[[67830,67834],"disallowed"],[[67835,67839],"valid",[],"NV8"],[[67840,67861],"valid"],[[67862,67865],"valid",[],"NV8"],[[67866,67867],"valid",[],"NV8"],[[67868,67870],"disallowed"],[[67871,67871],"valid",[],"NV8"],[[67872,67897],"valid"],[[67898,67902],"disallowed"],[[67903,67903],"valid",[],"NV8"],[[67904,67967],"disallowed"],[[67968,68023],"valid"],[[68024,68027],"disallowed"],[[68028,68029],"valid",[],"NV8"],[[68030,68031],"valid"],[[68032,68047],"valid",[],"NV8"],[[68048,68049],"disallowed"],[[68050,68095],"valid",[],"NV8"],[[68096,68099],"valid"],[[68100,68100],"disallowed"],[[68101,68102],"valid"],[[68103,68107],"disallowed"],[[68108,68115],"valid"],[[68116,68116],"disallowed"],[[68117,68119],"valid"],[[68120,68120],"disallowed"],[[68121,68147],"valid"],[[68148,68151],"disallowed"],[[68152,68154],"valid"],[[68155,68158],"disallowed"],[[68159,68159],"valid"],[[68160,68167],"valid",[],"NV8"],[[68168,68175],"disallowed"],[[68176,68184],"valid",[],"NV8"],[[68185,68191],"disallowed"],[[68192,68220],"valid"],[[68221,68223],"valid",[],"NV8"],[[68224,68252],"valid"],[[68253,68255],"valid",[],"NV8"],[[68256,68287],"disallowed"],[[68288,68295],"valid"],[[68296,68296],"valid",[],"NV8"],[[68297,68326],"valid"],[[68327,68330],"disallowed"],[[68331,68342],"valid",[],"NV8"],[[68343,68351],"disallowed"],[[68352,68405],"valid"],[[68406,68408],"disallowed"],[[68409,68415],"valid",[],"NV8"],[[68416,68437],"valid"],[[68438,68439],"disallowed"],[[68440,68447],"valid",[],"NV8"],[[68448,68466],"valid"],[[68467,68471],"disallowed"],[[68472,68479],"valid",[],"NV8"],[[68480,68497],"valid"],[[68498,68504],"disallowed"],[[68505,68508],"valid",[],"NV8"],[[68509,68520],"disallowed"],[[68521,68527],"valid",[],"NV8"],[[68528,68607],"disallowed"],[[68608,68680],"valid"],[[68681,68735],"disallowed"],[[68736,68736],"mapped",[68800]],[[68737,68737],"mapped",[68801]],[[68738,68738],"mapped",[68802]],[[68739,68739],"mapped",[68803]],[[68740,68740],"mapped",[68804]],[[68741,68741],"mapped",[68805]],[[68742,68742],"mapped",[68806]],[[68743,68743],"mapped",[68807]],[[68744,68744],"mapped",[68808]],[[68745,68745],"mapped",[68809]],[[68746,68746],"mapped",[68810]],[[68747,68747],"mapped",[68811]],[[68748,68748],"mapped",[68812]],[[68749,68749],"mapped",[68813]],[[68750,68750],"mapped",[68814]],[[68751,68751],"mapped",[68815]],[[68752,68752],"mapped",[68816]],[[68753,68753],"mapped",[68817]],[[68754,68754],"mapped",[68818]],[[68755,68755],"mapped",[68819]],[[68756,68756],"mapped",[68820]],[[68757,68757],"mapped",[68821]],[[68758,68758],"mapped",[68822]],[[68759,68759],"mapped",[68823]],[[68760,68760],"mapped",[68824]],[[68761,68761],"mapped",[68825]],[[68762,68762],"mapped",[68826]],[[68763,68763],"mapped",[68827]],[[68764,68764],"mapped",[68828]],[[68765,68765],"mapped",[68829]],[[68766,68766],"mapped",[68830]],[[68767,68767],"mapped",[68831]],[[68768,68768],"mapped",[68832]],[[68769,68769],"mapped",[68833]],[[68770,68770],"mapped",[68834]],[[68771,68771],"mapped",[68835]],[[68772,68772],"mapped",[68836]],[[68773,68773],"mapped",[68837]],[[68774,68774],"mapped",[68838]],[[68775,68775],"mapped",[68839]],[[68776,68776],"mapped",[68840]],[[68777,68777],"mapped",[68841]],[[68778,68778],"mapped",[68842]],[[68779,68779],"mapped",[68843]],[[68780,68780],"mapped",[68844]],[[68781,68781],"mapped",[68845]],[[68782,68782],"mapped",[68846]],[[68783,68783],"mapped",[68847]],[[68784,68784],"mapped",[68848]],[[68785,68785],"mapped",[68849]],[[68786,68786],"mapped",[68850]],[[68787,68799],"disallowed"],[[68800,68850],"valid"],[[68851,68857],"disallowed"],[[68858,68863],"valid",[],"NV8"],[[68864,69215],"disallowed"],[[69216,69246],"valid",[],"NV8"],[[69247,69631],"disallowed"],[[69632,69702],"valid"],[[69703,69709],"valid",[],"NV8"],[[69710,69713],"disallowed"],[[69714,69733],"valid",[],"NV8"],[[69734,69743],"valid"],[[69744,69758],"disallowed"],[[69759,69759],"valid"],[[69760,69818],"valid"],[[69819,69820],"valid",[],"NV8"],[[69821,69821],"disallowed"],[[69822,69825],"valid",[],"NV8"],[[69826,69839],"disallowed"],[[69840,69864],"valid"],[[69865,69871],"disallowed"],[[69872,69881],"valid"],[[69882,69887],"disallowed"],[[69888,69940],"valid"],[[69941,69941],"disallowed"],[[69942,69951],"valid"],[[69952,69955],"valid",[],"NV8"],[[69956,69967],"disallowed"],[[69968,70003],"valid"],[[70004,70005],"valid",[],"NV8"],[[70006,70006],"valid"],[[70007,70015],"disallowed"],[[70016,70084],"valid"],[[70085,70088],"valid",[],"NV8"],[[70089,70089],"valid",[],"NV8"],[[70090,70092],"valid"],[[70093,70093],"valid",[],"NV8"],[[70094,70095],"disallowed"],[[70096,70105],"valid"],[[70106,70106],"valid"],[[70107,70107],"valid",[],"NV8"],[[70108,70108],"valid"],[[70109,70111],"valid",[],"NV8"],[[70112,70112],"disallowed"],[[70113,70132],"valid",[],"NV8"],[[70133,70143],"disallowed"],[[70144,70161],"valid"],[[70162,70162],"disallowed"],[[70163,70199],"valid"],[[70200,70205],"valid",[],"NV8"],[[70206,70271],"disallowed"],[[70272,70278],"valid"],[[70279,70279],"disallowed"],[[70280,70280],"valid"],[[70281,70281],"disallowed"],[[70282,70285],"valid"],[[70286,70286],"disallowed"],[[70287,70301],"valid"],[[70302,70302],"disallowed"],[[70303,70312],"valid"],[[70313,70313],"valid",[],"NV8"],[[70314,70319],"disallowed"],[[70320,70378],"valid"],[[70379,70383],"disallowed"],[[70384,70393],"valid"],[[70394,70399],"disallowed"],[[70400,70400],"valid"],[[70401,70403],"valid"],[[70404,70404],"disallowed"],[[70405,70412],"valid"],[[70413,70414],"disallowed"],[[70415,70416],"valid"],[[70417,70418],"disallowed"],[[70419,70440],"valid"],[[70441,70441],"disallowed"],[[70442,70448],"valid"],[[70449,70449],"disallowed"],[[70450,70451],"valid"],[[70452,70452],"disallowed"],[[70453,70457],"valid"],[[70458,70459],"disallowed"],[[70460,70468],"valid"],[[70469,70470],"disallowed"],[[70471,70472],"valid"],[[70473,70474],"disallowed"],[[70475,70477],"valid"],[[70478,70479],"disallowed"],[[70480,70480],"valid"],[[70481,70486],"disallowed"],[[70487,70487],"valid"],[[70488,70492],"disallowed"],[[70493,70499],"valid"],[[70500,70501],"disallowed"],[[70502,70508],"valid"],[[70509,70511],"disallowed"],[[70512,70516],"valid"],[[70517,70783],"disallowed"],[[70784,70853],"valid"],[[70854,70854],"valid",[],"NV8"],[[70855,70855],"valid"],[[70856,70863],"disallowed"],[[70864,70873],"valid"],[[70874,71039],"disallowed"],[[71040,71093],"valid"],[[71094,71095],"disallowed"],[[71096,71104],"valid"],[[71105,71113],"valid",[],"NV8"],[[71114,71127],"valid",[],"NV8"],[[71128,71133],"valid"],[[71134,71167],"disallowed"],[[71168,71232],"valid"],[[71233,71235],"valid",[],"NV8"],[[71236,71236],"valid"],[[71237,71247],"disallowed"],[[71248,71257],"valid"],[[71258,71295],"disallowed"],[[71296,71351],"valid"],[[71352,71359],"disallowed"],[[71360,71369],"valid"],[[71370,71423],"disallowed"],[[71424,71449],"valid"],[[71450,71452],"disallowed"],[[71453,71467],"valid"],[[71468,71471],"disallowed"],[[71472,71481],"valid"],[[71482,71487],"valid",[],"NV8"],[[71488,71839],"disallowed"],[[71840,71840],"mapped",[71872]],[[71841,71841],"mapped",[71873]],[[71842,71842],"mapped",[71874]],[[71843,71843],"mapped",[71875]],[[71844,71844],"mapped",[71876]],[[71845,71845],"mapped",[71877]],[[71846,71846],"mapped",[71878]],[[71847,71847],"mapped",[71879]],[[71848,71848],"mapped",[71880]],[[71849,71849],"mapped",[71881]],[[71850,71850],"mapped",[71882]],[[71851,71851],"mapped",[71883]],[[71852,71852],"mapped",[71884]],[[71853,71853],"mapped",[71885]],[[71854,71854],"mapped",[71886]],[[71855,71855],"mapped",[71887]],[[71856,71856],"mapped",[71888]],[[71857,71857],"mapped",[71889]],[[71858,71858],"mapped",[71890]],[[71859,71859],"mapped",[71891]],[[71860,71860],"mapped",[71892]],[[71861,71861],"mapped",[71893]],[[71862,71862],"mapped",[71894]],[[71863,71863],"mapped",[71895]],[[71864,71864],"mapped",[71896]],[[71865,71865],"mapped",[71897]],[[71866,71866],"mapped",[71898]],[[71867,71867],"mapped",[71899]],[[71868,71868],"mapped",[71900]],[[71869,71869],"mapped",[71901]],[[71870,71870],"mapped",[71902]],[[71871,71871],"mapped",[71903]],[[71872,71913],"valid"],[[71914,71922],"valid",[],"NV8"],[[71923,71934],"disallowed"],[[71935,71935],"valid"],[[71936,72383],"disallowed"],[[72384,72440],"valid"],[[72441,73727],"disallowed"],[[73728,74606],"valid"],[[74607,74648],"valid"],[[74649,74649],"valid"],[[74650,74751],"disallowed"],[[74752,74850],"valid",[],"NV8"],[[74851,74862],"valid",[],"NV8"],[[74863,74863],"disallowed"],[[74864,74867],"valid",[],"NV8"],[[74868,74868],"valid",[],"NV8"],[[74869,74879],"disallowed"],[[74880,75075],"valid"],[[75076,77823],"disallowed"],[[77824,78894],"valid"],[[78895,82943],"disallowed"],[[82944,83526],"valid"],[[83527,92159],"disallowed"],[[92160,92728],"valid"],[[92729,92735],"disallowed"],[[92736,92766],"valid"],[[92767,92767],"disallowed"],[[92768,92777],"valid"],[[92778,92781],"disallowed"],[[92782,92783],"valid",[],"NV8"],[[92784,92879],"disallowed"],[[92880,92909],"valid"],[[92910,92911],"disallowed"],[[92912,92916],"valid"],[[92917,92917],"valid",[],"NV8"],[[92918,92927],"disallowed"],[[92928,92982],"valid"],[[92983,92991],"valid",[],"NV8"],[[92992,92995],"valid"],[[92996,92997],"valid",[],"NV8"],[[92998,93007],"disallowed"],[[93008,93017],"valid"],[[93018,93018],"disallowed"],[[93019,93025],"valid",[],"NV8"],[[93026,93026],"disallowed"],[[93027,93047],"valid"],[[93048,93052],"disallowed"],[[93053,93071],"valid"],[[93072,93951],"disallowed"],[[93952,94020],"valid"],[[94021,94031],"disallowed"],[[94032,94078],"valid"],[[94079,94094],"disallowed"],[[94095,94111],"valid"],[[94112,110591],"disallowed"],[[110592,110593],"valid"],[[110594,113663],"disallowed"],[[113664,113770],"valid"],[[113771,113775],"disallowed"],[[113776,113788],"valid"],[[113789,113791],"disallowed"],[[113792,113800],"valid"],[[113801,113807],"disallowed"],[[113808,113817],"valid"],[[113818,113819],"disallowed"],[[113820,113820],"valid",[],"NV8"],[[113821,113822],"valid"],[[113823,113823],"valid",[],"NV8"],[[113824,113827],"ignored"],[[113828,118783],"disallowed"],[[118784,119029],"valid",[],"NV8"],[[119030,119039],"disallowed"],[[119040,119078],"valid",[],"NV8"],[[119079,119080],"disallowed"],[[119081,119081],"valid",[],"NV8"],[[119082,119133],"valid",[],"NV8"],[[119134,119134],"mapped",[119127,119141]],[[119135,119135],"mapped",[119128,119141]],[[119136,119136],"mapped",[119128,119141,119150]],[[119137,119137],"mapped",[119128,119141,119151]],[[119138,119138],"mapped",[119128,119141,119152]],[[119139,119139],"mapped",[119128,119141,119153]],[[119140,119140],"mapped",[119128,119141,119154]],[[119141,119154],"valid",[],"NV8"],[[119155,119162],"disallowed"],[[119163,119226],"valid",[],"NV8"],[[119227,119227],"mapped",[119225,119141]],[[119228,119228],"mapped",[119226,119141]],[[119229,119229],"mapped",[119225,119141,119150]],[[119230,119230],"mapped",[119226,119141,119150]],[[119231,119231],"mapped",[119225,119141,119151]],[[119232,119232],"mapped",[119226,119141,119151]],[[119233,119261],"valid",[],"NV8"],[[119262,119272],"valid",[],"NV8"],[[119273,119295],"disallowed"],[[119296,119365],"valid",[],"NV8"],[[119366,119551],"disallowed"],[[119552,119638],"valid",[],"NV8"],[[119639,119647],"disallowed"],[[119648,119665],"valid",[],"NV8"],[[119666,119807],"disallowed"],[[119808,119808],"mapped",[97]],[[119809,119809],"mapped",[98]],[[119810,119810],"mapped",[99]],[[119811,119811],"mapped",[100]],[[119812,119812],"mapped",[101]],[[119813,119813],"mapped",[102]],[[119814,119814],"mapped",[103]],[[119815,119815],"mapped",[104]],[[119816,119816],"mapped",[105]],[[119817,119817],"mapped",[106]],[[119818,119818],"mapped",[107]],[[119819,119819],"mapped",[108]],[[119820,119820],"mapped",[109]],[[119821,119821],"mapped",[110]],[[119822,119822],"mapped",[111]],[[119823,119823],"mapped",[112]],[[119824,119824],"mapped",[113]],[[119825,119825],"mapped",[114]],[[119826,119826],"mapped",[115]],[[119827,119827],"mapped",[116]],[[119828,119828],"mapped",[117]],[[119829,119829],"mapped",[118]],[[119830,119830],"mapped",[119]],[[119831,119831],"mapped",[120]],[[119832,119832],"mapped",[121]],[[119833,119833],"mapped",[122]],[[119834,119834],"mapped",[97]],[[119835,119835],"mapped",[98]],[[119836,119836],"mapped",[99]],[[119837,119837],"mapped",[100]],[[119838,119838],"mapped",[101]],[[119839,119839],"mapped",[102]],[[119840,119840],"mapped",[103]],[[119841,119841],"mapped",[104]],[[119842,119842],"mapped",[105]],[[119843,119843],"mapped",[106]],[[119844,119844],"mapped",[107]],[[119845,119845],"mapped",[108]],[[119846,119846],"mapped",[109]],[[119847,119847],"mapped",[110]],[[119848,119848],"mapped",[111]],[[119849,119849],"mapped",[112]],[[119850,119850],"mapped",[113]],[[119851,119851],"mapped",[114]],[[119852,119852],"mapped",[115]],[[119853,119853],"mapped",[116]],[[119854,119854],"mapped",[117]],[[119855,119855],"mapped",[118]],[[119856,119856],"mapped",[119]],[[119857,119857],"mapped",[120]],[[119858,119858],"mapped",[121]],[[119859,119859],"mapped",[122]],[[119860,119860],"mapped",[97]],[[119861,119861],"mapped",[98]],[[119862,119862],"mapped",[99]],[[119863,119863],"mapped",[100]],[[119864,119864],"mapped",[101]],[[119865,119865],"mapped",[102]],[[119866,119866],"mapped",[103]],[[119867,119867],"mapped",[104]],[[119868,119868],"mapped",[105]],[[119869,119869],"mapped",[106]],[[119870,119870],"mapped",[107]],[[119871,119871],"mapped",[108]],[[119872,119872],"mapped",[109]],[[119873,119873],"mapped",[110]],[[119874,119874],"mapped",[111]],[[119875,119875],"mapped",[112]],[[119876,119876],"mapped",[113]],[[119877,119877],"mapped",[114]],[[119878,119878],"mapped",[115]],[[119879,119879],"mapped",[116]],[[119880,119880],"mapped",[117]],[[119881,119881],"mapped",[118]],[[119882,119882],"mapped",[119]],[[119883,119883],"mapped",[120]],[[119884,119884],"mapped",[121]],[[119885,119885],"mapped",[122]],[[119886,119886],"mapped",[97]],[[119887,119887],"mapped",[98]],[[119888,119888],"mapped",[99]],[[119889,119889],"mapped",[100]],[[119890,119890],"mapped",[101]],[[119891,119891],"mapped",[102]],[[119892,119892],"mapped",[103]],[[119893,119893],"disallowed"],[[119894,119894],"mapped",[105]],[[119895,119895],"mapped",[106]],[[119896,119896],"mapped",[107]],[[119897,119897],"mapped",[108]],[[119898,119898],"mapped",[109]],[[119899,119899],"mapped",[110]],[[119900,119900],"mapped",[111]],[[119901,119901],"mapped",[112]],[[119902,119902],"mapped",[113]],[[119903,119903],"mapped",[114]],[[119904,119904],"mapped",[115]],[[119905,119905],"mapped",[116]],[[119906,119906],"mapped",[117]],[[119907,119907],"mapped",[118]],[[119908,119908],"mapped",[119]],[[119909,119909],"mapped",[120]],[[119910,119910],"mapped",[121]],[[119911,119911],"mapped",[122]],[[119912,119912],"mapped",[97]],[[119913,119913],"mapped",[98]],[[119914,119914],"mapped",[99]],[[119915,119915],"mapped",[100]],[[119916,119916],"mapped",[101]],[[119917,119917],"mapped",[102]],[[119918,119918],"mapped",[103]],[[119919,119919],"mapped",[104]],[[119920,119920],"mapped",[105]],[[119921,119921],"mapped",[106]],[[119922,119922],"mapped",[107]],[[119923,119923],"mapped",[108]],[[119924,119924],"mapped",[109]],[[119925,119925],"mapped",[110]],[[119926,119926],"mapped",[111]],[[119927,119927],"mapped",[112]],[[119928,119928],"mapped",[113]],[[119929,119929],"mapped",[114]],[[119930,119930],"mapped",[115]],[[119931,119931],"mapped",[116]],[[119932,119932],"mapped",[117]],[[119933,119933],"mapped",[118]],[[119934,119934],"mapped",[119]],[[119935,119935],"mapped",[120]],[[119936,119936],"mapped",[121]],[[119937,119937],"mapped",[122]],[[119938,119938],"mapped",[97]],[[119939,119939],"mapped",[98]],[[119940,119940],"mapped",[99]],[[119941,119941],"mapped",[100]],[[119942,119942],"mapped",[101]],[[119943,119943],"mapped",[102]],[[119944,119944],"mapped",[103]],[[119945,119945],"mapped",[104]],[[119946,119946],"mapped",[105]],[[119947,119947],"mapped",[106]],[[119948,119948],"mapped",[107]],[[119949,119949],"mapped",[108]],[[119950,119950],"mapped",[109]],[[119951,119951],"mapped",[110]],[[119952,119952],"mapped",[111]],[[119953,119953],"mapped",[112]],[[119954,119954],"mapped",[113]],[[119955,119955],"mapped",[114]],[[119956,119956],"mapped",[115]],[[119957,119957],"mapped",[116]],[[119958,119958],"mapped",[117]],[[119959,119959],"mapped",[118]],[[119960,119960],"mapped",[119]],[[119961,119961],"mapped",[120]],[[119962,119962],"mapped",[121]],[[119963,119963],"mapped",[122]],[[119964,119964],"mapped",[97]],[[119965,119965],"disallowed"],[[119966,119966],"mapped",[99]],[[119967,119967],"mapped",[100]],[[119968,119969],"disallowed"],[[119970,119970],"mapped",[103]],[[119971,119972],"disallowed"],[[119973,119973],"mapped",[106]],[[119974,119974],"mapped",[107]],[[119975,119976],"disallowed"],[[119977,119977],"mapped",[110]],[[119978,119978],"mapped",[111]],[[119979,119979],"mapped",[112]],[[119980,119980],"mapped",[113]],[[119981,119981],"disallowed"],[[119982,119982],"mapped",[115]],[[119983,119983],"mapped",[116]],[[119984,119984],"mapped",[117]],[[119985,119985],"mapped",[118]],[[119986,119986],"mapped",[119]],[[119987,119987],"mapped",[120]],[[119988,119988],"mapped",[121]],[[119989,119989],"mapped",[122]],[[119990,119990],"mapped",[97]],[[119991,119991],"mapped",[98]],[[119992,119992],"mapped",[99]],[[119993,119993],"mapped",[100]],[[119994,119994],"disallowed"],[[119995,119995],"mapped",[102]],[[119996,119996],"disallowed"],[[119997,119997],"mapped",[104]],[[119998,119998],"mapped",[105]],[[119999,119999],"mapped",[106]],[[12e4,12e4],"mapped",[107]],[[120001,120001],"mapped",[108]],[[120002,120002],"mapped",[109]],[[120003,120003],"mapped",[110]],[[120004,120004],"disallowed"],[[120005,120005],"mapped",[112]],[[120006,120006],"mapped",[113]],[[120007,120007],"mapped",[114]],[[120008,120008],"mapped",[115]],[[120009,120009],"mapped",[116]],[[120010,120010],"mapped",[117]],[[120011,120011],"mapped",[118]],[[120012,120012],"mapped",[119]],[[120013,120013],"mapped",[120]],[[120014,120014],"mapped",[121]],[[120015,120015],"mapped",[122]],[[120016,120016],"mapped",[97]],[[120017,120017],"mapped",[98]],[[120018,120018],"mapped",[99]],[[120019,120019],"mapped",[100]],[[120020,120020],"mapped",[101]],[[120021,120021],"mapped",[102]],[[120022,120022],"mapped",[103]],[[120023,120023],"mapped",[104]],[[120024,120024],"mapped",[105]],[[120025,120025],"mapped",[106]],[[120026,120026],"mapped",[107]],[[120027,120027],"mapped",[108]],[[120028,120028],"mapped",[109]],[[120029,120029],"mapped",[110]],[[120030,120030],"mapped",[111]],[[120031,120031],"mapped",[112]],[[120032,120032],"mapped",[113]],[[120033,120033],"mapped",[114]],[[120034,120034],"mapped",[115]],[[120035,120035],"mapped",[116]],[[120036,120036],"mapped",[117]],[[120037,120037],"mapped",[118]],[[120038,120038],"mapped",[119]],[[120039,120039],"mapped",[120]],[[120040,120040],"mapped",[121]],[[120041,120041],"mapped",[122]],[[120042,120042],"mapped",[97]],[[120043,120043],"mapped",[98]],[[120044,120044],"mapped",[99]],[[120045,120045],"mapped",[100]],[[120046,120046],"mapped",[101]],[[120047,120047],"mapped",[102]],[[120048,120048],"mapped",[103]],[[120049,120049],"mapped",[104]],[[120050,120050],"mapped",[105]],[[120051,120051],"mapped",[106]],[[120052,120052],"mapped",[107]],[[120053,120053],"mapped",[108]],[[120054,120054],"mapped",[109]],[[120055,120055],"mapped",[110]],[[120056,120056],"mapped",[111]],[[120057,120057],"mapped",[112]],[[120058,120058],"mapped",[113]],[[120059,120059],"mapped",[114]],[[120060,120060],"mapped",[115]],[[120061,120061],"mapped",[116]],[[120062,120062],"mapped",[117]],[[120063,120063],"mapped",[118]],[[120064,120064],"mapped",[119]],[[120065,120065],"mapped",[120]],[[120066,120066],"mapped",[121]],[[120067,120067],"mapped",[122]],[[120068,120068],"mapped",[97]],[[120069,120069],"mapped",[98]],[[120070,120070],"disallowed"],[[120071,120071],"mapped",[100]],[[120072,120072],"mapped",[101]],[[120073,120073],"mapped",[102]],[[120074,120074],"mapped",[103]],[[120075,120076],"disallowed"],[[120077,120077],"mapped",[106]],[[120078,120078],"mapped",[107]],[[120079,120079],"mapped",[108]],[[120080,120080],"mapped",[109]],[[120081,120081],"mapped",[110]],[[120082,120082],"mapped",[111]],[[120083,120083],"mapped",[112]],[[120084,120084],"mapped",[113]],[[120085,120085],"disallowed"],[[120086,120086],"mapped",[115]],[[120087,120087],"mapped",[116]],[[120088,120088],"mapped",[117]],[[120089,120089],"mapped",[118]],[[120090,120090],"mapped",[119]],[[120091,120091],"mapped",[120]],[[120092,120092],"mapped",[121]],[[120093,120093],"disallowed"],[[120094,120094],"mapped",[97]],[[120095,120095],"mapped",[98]],[[120096,120096],"mapped",[99]],[[120097,120097],"mapped",[100]],[[120098,120098],"mapped",[101]],[[120099,120099],"mapped",[102]],[[120100,120100],"mapped",[103]],[[120101,120101],"mapped",[104]],[[120102,120102],"mapped",[105]],[[120103,120103],"mapped",[106]],[[120104,120104],"mapped",[107]],[[120105,120105],"mapped",[108]],[[120106,120106],"mapped",[109]],[[120107,120107],"mapped",[110]],[[120108,120108],"mapped",[111]],[[120109,120109],"mapped",[112]],[[120110,120110],"mapped",[113]],[[120111,120111],"mapped",[114]],[[120112,120112],"mapped",[115]],[[120113,120113],"mapped",[116]],[[120114,120114],"mapped",[117]],[[120115,120115],"mapped",[118]],[[120116,120116],"mapped",[119]],[[120117,120117],"mapped",[120]],[[120118,120118],"mapped",[121]],[[120119,120119],"mapped",[122]],[[120120,120120],"mapped",[97]],[[120121,120121],"mapped",[98]],[[120122,120122],"disallowed"],[[120123,120123],"mapped",[100]],[[120124,120124],"mapped",[101]],[[120125,120125],"mapped",[102]],[[120126,120126],"mapped",[103]],[[120127,120127],"disallowed"],[[120128,120128],"mapped",[105]],[[120129,120129],"mapped",[106]],[[120130,120130],"mapped",[107]],[[120131,120131],"mapped",[108]],[[120132,120132],"mapped",[109]],[[120133,120133],"disallowed"],[[120134,120134],"mapped",[111]],[[120135,120137],"disallowed"],[[120138,120138],"mapped",[115]],[[120139,120139],"mapped",[116]],[[120140,120140],"mapped",[117]],[[120141,120141],"mapped",[118]],[[120142,120142],"mapped",[119]],[[120143,120143],"mapped",[120]],[[120144,120144],"mapped",[121]],[[120145,120145],"disallowed"],[[120146,120146],"mapped",[97]],[[120147,120147],"mapped",[98]],[[120148,120148],"mapped",[99]],[[120149,120149],"mapped",[100]],[[120150,120150],"mapped",[101]],[[120151,120151],"mapped",[102]],[[120152,120152],"mapped",[103]],[[120153,120153],"mapped",[104]],[[120154,120154],"mapped",[105]],[[120155,120155],"mapped",[106]],[[120156,120156],"mapped",[107]],[[120157,120157],"mapped",[108]],[[120158,120158],"mapped",[109]],[[120159,120159],"mapped",[110]],[[120160,120160],"mapped",[111]],[[120161,120161],"mapped",[112]],[[120162,120162],"mapped",[113]],[[120163,120163],"mapped",[114]],[[120164,120164],"mapped",[115]],[[120165,120165],"mapped",[116]],[[120166,120166],"mapped",[117]],[[120167,120167],"mapped",[118]],[[120168,120168],"mapped",[119]],[[120169,120169],"mapped",[120]],[[120170,120170],"mapped",[121]],[[120171,120171],"mapped",[122]],[[120172,120172],"mapped",[97]],[[120173,120173],"mapped",[98]],[[120174,120174],"mapped",[99]],[[120175,120175],"mapped",[100]],[[120176,120176],"mapped",[101]],[[120177,120177],"mapped",[102]],[[120178,120178],"mapped",[103]],[[120179,120179],"mapped",[104]],[[120180,120180],"mapped",[105]],[[120181,120181],"mapped",[106]],[[120182,120182],"mapped",[107]],[[120183,120183],"mapped",[108]],[[120184,120184],"mapped",[109]],[[120185,120185],"mapped",[110]],[[120186,120186],"mapped",[111]],[[120187,120187],"mapped",[112]],[[120188,120188],"mapped",[113]],[[120189,120189],"mapped",[114]],[[120190,120190],"mapped",[115]],[[120191,120191],"mapped",[116]],[[120192,120192],"mapped",[117]],[[120193,120193],"mapped",[118]],[[120194,120194],"mapped",[119]],[[120195,120195],"mapped",[120]],[[120196,120196],"mapped",[121]],[[120197,120197],"mapped",[122]],[[120198,120198],"mapped",[97]],[[120199,120199],"mapped",[98]],[[120200,120200],"mapped",[99]],[[120201,120201],"mapped",[100]],[[120202,120202],"mapped",[101]],[[120203,120203],"mapped",[102]],[[120204,120204],"mapped",[103]],[[120205,120205],"mapped",[104]],[[120206,120206],"mapped",[105]],[[120207,120207],"mapped",[106]],[[120208,120208],"mapped",[107]],[[120209,120209],"mapped",[108]],[[120210,120210],"mapped",[109]],[[120211,120211],"mapped",[110]],[[120212,120212],"mapped",[111]],[[120213,120213],"mapped",[112]],[[120214,120214],"mapped",[113]],[[120215,120215],"mapped",[114]],[[120216,120216],"mapped",[115]],[[120217,120217],"mapped",[116]],[[120218,120218],"mapped",[117]],[[120219,120219],"mapped",[118]],[[120220,120220],"mapped",[119]],[[120221,120221],"mapped",[120]],[[120222,120222],"mapped",[121]],[[120223,120223],"mapped",[122]],[[120224,120224],"mapped",[97]],[[120225,120225],"mapped",[98]],[[120226,120226],"mapped",[99]],[[120227,120227],"mapped",[100]],[[120228,120228],"mapped",[101]],[[120229,120229],"mapped",[102]],[[120230,120230],"mapped",[103]],[[120231,120231],"mapped",[104]],[[120232,120232],"mapped",[105]],[[120233,120233],"mapped",[106]],[[120234,120234],"mapped",[107]],[[120235,120235],"mapped",[108]],[[120236,120236],"mapped",[109]],[[120237,120237],"mapped",[110]],[[120238,120238],"mapped",[111]],[[120239,120239],"mapped",[112]],[[120240,120240],"mapped",[113]],[[120241,120241],"mapped",[114]],[[120242,120242],"mapped",[115]],[[120243,120243],"mapped",[116]],[[120244,120244],"mapped",[117]],[[120245,120245],"mapped",[118]],[[120246,120246],"mapped",[119]],[[120247,120247],"mapped",[120]],[[120248,120248],"mapped",[121]],[[120249,120249],"mapped",[122]],[[120250,120250],"mapped",[97]],[[120251,120251],"mapped",[98]],[[120252,120252],"mapped",[99]],[[120253,120253],"mapped",[100]],[[120254,120254],"mapped",[101]],[[120255,120255],"mapped",[102]],[[120256,120256],"mapped",[103]],[[120257,120257],"mapped",[104]],[[120258,120258],"mapped",[105]],[[120259,120259],"mapped",[106]],[[120260,120260],"mapped",[107]],[[120261,120261],"mapped",[108]],[[120262,120262],"mapped",[109]],[[120263,120263],"mapped",[110]],[[120264,120264],"mapped",[111]],[[120265,120265],"mapped",[112]],[[120266,120266],"mapped",[113]],[[120267,120267],"mapped",[114]],[[120268,120268],"mapped",[115]],[[120269,120269],"mapped",[116]],[[120270,120270],"mapped",[117]],[[120271,120271],"mapped",[118]],[[120272,120272],"mapped",[119]],[[120273,120273],"mapped",[120]],[[120274,120274],"mapped",[121]],[[120275,120275],"mapped",[122]],[[120276,120276],"mapped",[97]],[[120277,120277],"mapped",[98]],[[120278,120278],"mapped",[99]],[[120279,120279],"mapped",[100]],[[120280,120280],"mapped",[101]],[[120281,120281],"mapped",[102]],[[120282,120282],"mapped",[103]],[[120283,120283],"mapped",[104]],[[120284,120284],"mapped",[105]],[[120285,120285],"mapped",[106]],[[120286,120286],"mapped",[107]],[[120287,120287],"mapped",[108]],[[120288,120288],"mapped",[109]],[[120289,120289],"mapped",[110]],[[120290,120290],"mapped",[111]],[[120291,120291],"mapped",[112]],[[120292,120292],"mapped",[113]],[[120293,120293],"mapped",[114]],[[120294,120294],"mapped",[115]],[[120295,120295],"mapped",[116]],[[120296,120296],"mapped",[117]],[[120297,120297],"mapped",[118]],[[120298,120298],"mapped",[119]],[[120299,120299],"mapped",[120]],[[120300,120300],"mapped",[121]],[[120301,120301],"mapped",[122]],[[120302,120302],"mapped",[97]],[[120303,120303],"mapped",[98]],[[120304,120304],"mapped",[99]],[[120305,120305],"mapped",[100]],[[120306,120306],"mapped",[101]],[[120307,120307],"mapped",[102]],[[120308,120308],"mapped",[103]],[[120309,120309],"mapped",[104]],[[120310,120310],"mapped",[105]],[[120311,120311],"mapped",[106]],[[120312,120312],"mapped",[107]],[[120313,120313],"mapped",[108]],[[120314,120314],"mapped",[109]],[[120315,120315],"mapped",[110]],[[120316,120316],"mapped",[111]],[[120317,120317],"mapped",[112]],[[120318,120318],"mapped",[113]],[[120319,120319],"mapped",[114]],[[120320,120320],"mapped",[115]],[[120321,120321],"mapped",[116]],[[120322,120322],"mapped",[117]],[[120323,120323],"mapped",[118]],[[120324,120324],"mapped",[119]],[[120325,120325],"mapped",[120]],[[120326,120326],"mapped",[121]],[[120327,120327],"mapped",[122]],[[120328,120328],"mapped",[97]],[[120329,120329],"mapped",[98]],[[120330,120330],"mapped",[99]],[[120331,120331],"mapped",[100]],[[120332,120332],"mapped",[101]],[[120333,120333],"mapped",[102]],[[120334,120334],"mapped",[103]],[[120335,120335],"mapped",[104]],[[120336,120336],"mapped",[105]],[[120337,120337],"mapped",[106]],[[120338,120338],"mapped",[107]],[[120339,120339],"mapped",[108]],[[120340,120340],"mapped",[109]],[[120341,120341],"mapped",[110]],[[120342,120342],"mapped",[111]],[[120343,120343],"mapped",[112]],[[120344,120344],"mapped",[113]],[[120345,120345],"mapped",[114]],[[120346,120346],"mapped",[115]],[[120347,120347],"mapped",[116]],[[120348,120348],"mapped",[117]],[[120349,120349],"mapped",[118]],[[120350,120350],"mapped",[119]],[[120351,120351],"mapped",[120]],[[120352,120352],"mapped",[121]],[[120353,120353],"mapped",[122]],[[120354,120354],"mapped",[97]],[[120355,120355],"mapped",[98]],[[120356,120356],"mapped",[99]],[[120357,120357],"mapped",[100]],[[120358,120358],"mapped",[101]],[[120359,120359],"mapped",[102]],[[120360,120360],"mapped",[103]],[[120361,120361],"mapped",[104]],[[120362,120362],"mapped",[105]],[[120363,120363],"mapped",[106]],[[120364,120364],"mapped",[107]],[[120365,120365],"mapped",[108]],[[120366,120366],"mapped",[109]],[[120367,120367],"mapped",[110]],[[120368,120368],"mapped",[111]],[[120369,120369],"mapped",[112]],[[120370,120370],"mapped",[113]],[[120371,120371],"mapped",[114]],[[120372,120372],"mapped",[115]],[[120373,120373],"mapped",[116]],[[120374,120374],"mapped",[117]],[[120375,120375],"mapped",[118]],[[120376,120376],"mapped",[119]],[[120377,120377],"mapped",[120]],[[120378,120378],"mapped",[121]],[[120379,120379],"mapped",[122]],[[120380,120380],"mapped",[97]],[[120381,120381],"mapped",[98]],[[120382,120382],"mapped",[99]],[[120383,120383],"mapped",[100]],[[120384,120384],"mapped",[101]],[[120385,120385],"mapped",[102]],[[120386,120386],"mapped",[103]],[[120387,120387],"mapped",[104]],[[120388,120388],"mapped",[105]],[[120389,120389],"mapped",[106]],[[120390,120390],"mapped",[107]],[[120391,120391],"mapped",[108]],[[120392,120392],"mapped",[109]],[[120393,120393],"mapped",[110]],[[120394,120394],"mapped",[111]],[[120395,120395],"mapped",[112]],[[120396,120396],"mapped",[113]],[[120397,120397],"mapped",[114]],[[120398,120398],"mapped",[115]],[[120399,120399],"mapped",[116]],[[120400,120400],"mapped",[117]],[[120401,120401],"mapped",[118]],[[120402,120402],"mapped",[119]],[[120403,120403],"mapped",[120]],[[120404,120404],"mapped",[121]],[[120405,120405],"mapped",[122]],[[120406,120406],"mapped",[97]],[[120407,120407],"mapped",[98]],[[120408,120408],"mapped",[99]],[[120409,120409],"mapped",[100]],[[120410,120410],"mapped",[101]],[[120411,120411],"mapped",[102]],[[120412,120412],"mapped",[103]],[[120413,120413],"mapped",[104]],[[120414,120414],"mapped",[105]],[[120415,120415],"mapped",[106]],[[120416,120416],"mapped",[107]],[[120417,120417],"mapped",[108]],[[120418,120418],"mapped",[109]],[[120419,120419],"mapped",[110]],[[120420,120420],"mapped",[111]],[[120421,120421],"mapped",[112]],[[120422,120422],"mapped",[113]],[[120423,120423],"mapped",[114]],[[120424,120424],"mapped",[115]],[[120425,120425],"mapped",[116]],[[120426,120426],"mapped",[117]],[[120427,120427],"mapped",[118]],[[120428,120428],"mapped",[119]],[[120429,120429],"mapped",[120]],[[120430,120430],"mapped",[121]],[[120431,120431],"mapped",[122]],[[120432,120432],"mapped",[97]],[[120433,120433],"mapped",[98]],[[120434,120434],"mapped",[99]],[[120435,120435],"mapped",[100]],[[120436,120436],"mapped",[101]],[[120437,120437],"mapped",[102]],[[120438,120438],"mapped",[103]],[[120439,120439],"mapped",[104]],[[120440,120440],"mapped",[105]],[[120441,120441],"mapped",[106]],[[120442,120442],"mapped",[107]],[[120443,120443],"mapped",[108]],[[120444,120444],"mapped",[109]],[[120445,120445],"mapped",[110]],[[120446,120446],"mapped",[111]],[[120447,120447],"mapped",[112]],[[120448,120448],"mapped",[113]],[[120449,120449],"mapped",[114]],[[120450,120450],"mapped",[115]],[[120451,120451],"mapped",[116]],[[120452,120452],"mapped",[117]],[[120453,120453],"mapped",[118]],[[120454,120454],"mapped",[119]],[[120455,120455],"mapped",[120]],[[120456,120456],"mapped",[121]],[[120457,120457],"mapped",[122]],[[120458,120458],"mapped",[97]],[[120459,120459],"mapped",[98]],[[120460,120460],"mapped",[99]],[[120461,120461],"mapped",[100]],[[120462,120462],"mapped",[101]],[[120463,120463],"mapped",[102]],[[120464,120464],"mapped",[103]],[[120465,120465],"mapped",[104]],[[120466,120466],"mapped",[105]],[[120467,120467],"mapped",[106]],[[120468,120468],"mapped",[107]],[[120469,120469],"mapped",[108]],[[120470,120470],"mapped",[109]],[[120471,120471],"mapped",[110]],[[120472,120472],"mapped",[111]],[[120473,120473],"mapped",[112]],[[120474,120474],"mapped",[113]],[[120475,120475],"mapped",[114]],[[120476,120476],"mapped",[115]],[[120477,120477],"mapped",[116]],[[120478,120478],"mapped",[117]],[[120479,120479],"mapped",[118]],[[120480,120480],"mapped",[119]],[[120481,120481],"mapped",[120]],[[120482,120482],"mapped",[121]],[[120483,120483],"mapped",[122]],[[120484,120484],"mapped",[305]],[[120485,120485],"mapped",[567]],[[120486,120487],"disallowed"],[[120488,120488],"mapped",[945]],[[120489,120489],"mapped",[946]],[[120490,120490],"mapped",[947]],[[120491,120491],"mapped",[948]],[[120492,120492],"mapped",[949]],[[120493,120493],"mapped",[950]],[[120494,120494],"mapped",[951]],[[120495,120495],"mapped",[952]],[[120496,120496],"mapped",[953]],[[120497,120497],"mapped",[954]],[[120498,120498],"mapped",[955]],[[120499,120499],"mapped",[956]],[[120500,120500],"mapped",[957]],[[120501,120501],"mapped",[958]],[[120502,120502],"mapped",[959]],[[120503,120503],"mapped",[960]],[[120504,120504],"mapped",[961]],[[120505,120505],"mapped",[952]],[[120506,120506],"mapped",[963]],[[120507,120507],"mapped",[964]],[[120508,120508],"mapped",[965]],[[120509,120509],"mapped",[966]],[[120510,120510],"mapped",[967]],[[120511,120511],"mapped",[968]],[[120512,120512],"mapped",[969]],[[120513,120513],"mapped",[8711]],[[120514,120514],"mapped",[945]],[[120515,120515],"mapped",[946]],[[120516,120516],"mapped",[947]],[[120517,120517],"mapped",[948]],[[120518,120518],"mapped",[949]],[[120519,120519],"mapped",[950]],[[120520,120520],"mapped",[951]],[[120521,120521],"mapped",[952]],[[120522,120522],"mapped",[953]],[[120523,120523],"mapped",[954]],[[120524,120524],"mapped",[955]],[[120525,120525],"mapped",[956]],[[120526,120526],"mapped",[957]],[[120527,120527],"mapped",[958]],[[120528,120528],"mapped",[959]],[[120529,120529],"mapped",[960]],[[120530,120530],"mapped",[961]],[[120531,120532],"mapped",[963]],[[120533,120533],"mapped",[964]],[[120534,120534],"mapped",[965]],[[120535,120535],"mapped",[966]],[[120536,120536],"mapped",[967]],[[120537,120537],"mapped",[968]],[[120538,120538],"mapped",[969]],[[120539,120539],"mapped",[8706]],[[120540,120540],"mapped",[949]],[[120541,120541],"mapped",[952]],[[120542,120542],"mapped",[954]],[[120543,120543],"mapped",[966]],[[120544,120544],"mapped",[961]],[[120545,120545],"mapped",[960]],[[120546,120546],"mapped",[945]],[[120547,120547],"mapped",[946]],[[120548,120548],"mapped",[947]],[[120549,120549],"mapped",[948]],[[120550,120550],"mapped",[949]],[[120551,120551],"mapped",[950]],[[120552,120552],"mapped",[951]],[[120553,120553],"mapped",[952]],[[120554,120554],"mapped",[953]],[[120555,120555],"mapped",[954]],[[120556,120556],"mapped",[955]],[[120557,120557],"mapped",[956]],[[120558,120558],"mapped",[957]],[[120559,120559],"mapped",[958]],[[120560,120560],"mapped",[959]],[[120561,120561],"mapped",[960]],[[120562,120562],"mapped",[961]],[[120563,120563],"mapped",[952]],[[120564,120564],"mapped",[963]],[[120565,120565],"mapped",[964]],[[120566,120566],"mapped",[965]],[[120567,120567],"mapped",[966]],[[120568,120568],"mapped",[967]],[[120569,120569],"mapped",[968]],[[120570,120570],"mapped",[969]],[[120571,120571],"mapped",[8711]],[[120572,120572],"mapped",[945]],[[120573,120573],"mapped",[946]],[[120574,120574],"mapped",[947]],[[120575,120575],"mapped",[948]],[[120576,120576],"mapped",[949]],[[120577,120577],"mapped",[950]],[[120578,120578],"mapped",[951]],[[120579,120579],"mapped",[952]],[[120580,120580],"mapped",[953]],[[120581,120581],"mapped",[954]],[[120582,120582],"mapped",[955]],[[120583,120583],"mapped",[956]],[[120584,120584],"mapped",[957]],[[120585,120585],"mapped",[958]],[[120586,120586],"mapped",[959]],[[120587,120587],"mapped",[960]],[[120588,120588],"mapped",[961]],[[120589,120590],"mapped",[963]],[[120591,120591],"mapped",[964]],[[120592,120592],"mapped",[965]],[[120593,120593],"mapped",[966]],[[120594,120594],"mapped",[967]],[[120595,120595],"mapped",[968]],[[120596,120596],"mapped",[969]],[[120597,120597],"mapped",[8706]],[[120598,120598],"mapped",[949]],[[120599,120599],"mapped",[952]],[[120600,120600],"mapped",[954]],[[120601,120601],"mapped",[966]],[[120602,120602],"mapped",[961]],[[120603,120603],"mapped",[960]],[[120604,120604],"mapped",[945]],[[120605,120605],"mapped",[946]],[[120606,120606],"mapped",[947]],[[120607,120607],"mapped",[948]],[[120608,120608],"mapped",[949]],[[120609,120609],"mapped",[950]],[[120610,120610],"mapped",[951]],[[120611,120611],"mapped",[952]],[[120612,120612],"mapped",[953]],[[120613,120613],"mapped",[954]],[[120614,120614],"mapped",[955]],[[120615,120615],"mapped",[956]],[[120616,120616],"mapped",[957]],[[120617,120617],"mapped",[958]],[[120618,120618],"mapped",[959]],[[120619,120619],"mapped",[960]],[[120620,120620],"mapped",[961]],[[120621,120621],"mapped",[952]],[[120622,120622],"mapped",[963]],[[120623,120623],"mapped",[964]],[[120624,120624],"mapped",[965]],[[120625,120625],"mapped",[966]],[[120626,120626],"mapped",[967]],[[120627,120627],"mapped",[968]],[[120628,120628],"mapped",[969]],[[120629,120629],"mapped",[8711]],[[120630,120630],"mapped",[945]],[[120631,120631],"mapped",[946]],[[120632,120632],"mapped",[947]],[[120633,120633],"mapped",[948]],[[120634,120634],"mapped",[949]],[[120635,120635],"mapped",[950]],[[120636,120636],"mapped",[951]],[[120637,120637],"mapped",[952]],[[120638,120638],"mapped",[953]],[[120639,120639],"mapped",[954]],[[120640,120640],"mapped",[955]],[[120641,120641],"mapped",[956]],[[120642,120642],"mapped",[957]],[[120643,120643],"mapped",[958]],[[120644,120644],"mapped",[959]],[[120645,120645],"mapped",[960]],[[120646,120646],"mapped",[961]],[[120647,120648],"mapped",[963]],[[120649,120649],"mapped",[964]],[[120650,120650],"mapped",[965]],[[120651,120651],"mapped",[966]],[[120652,120652],"mapped",[967]],[[120653,120653],"mapped",[968]],[[120654,120654],"mapped",[969]],[[120655,120655],"mapped",[8706]],[[120656,120656],"mapped",[949]],[[120657,120657],"mapped",[952]],[[120658,120658],"mapped",[954]],[[120659,120659],"mapped",[966]],[[120660,120660],"mapped",[961]],[[120661,120661],"mapped",[960]],[[120662,120662],"mapped",[945]],[[120663,120663],"mapped",[946]],[[120664,120664],"mapped",[947]],[[120665,120665],"mapped",[948]],[[120666,120666],"mapped",[949]],[[120667,120667],"mapped",[950]],[[120668,120668],"mapped",[951]],[[120669,120669],"mapped",[952]],[[120670,120670],"mapped",[953]],[[120671,120671],"mapped",[954]],[[120672,120672],"mapped",[955]],[[120673,120673],"mapped",[956]],[[120674,120674],"mapped",[957]],[[120675,120675],"mapped",[958]],[[120676,120676],"mapped",[959]],[[120677,120677],"mapped",[960]],[[120678,120678],"mapped",[961]],[[120679,120679],"mapped",[952]],[[120680,120680],"mapped",[963]],[[120681,120681],"mapped",[964]],[[120682,120682],"mapped",[965]],[[120683,120683],"mapped",[966]],[[120684,120684],"mapped",[967]],[[120685,120685],"mapped",[968]],[[120686,120686],"mapped",[969]],[[120687,120687],"mapped",[8711]],[[120688,120688],"mapped",[945]],[[120689,120689],"mapped",[946]],[[120690,120690],"mapped",[947]],[[120691,120691],"mapped",[948]],[[120692,120692],"mapped",[949]],[[120693,120693],"mapped",[950]],[[120694,120694],"mapped",[951]],[[120695,120695],"mapped",[952]],[[120696,120696],"mapped",[953]],[[120697,120697],"mapped",[954]],[[120698,120698],"mapped",[955]],[[120699,120699],"mapped",[956]],[[120700,120700],"mapped",[957]],[[120701,120701],"mapped",[958]],[[120702,120702],"mapped",[959]],[[120703,120703],"mapped",[960]],[[120704,120704],"mapped",[961]],[[120705,120706],"mapped",[963]],[[120707,120707],"mapped",[964]],[[120708,120708],"mapped",[965]],[[120709,120709],"mapped",[966]],[[120710,120710],"mapped",[967]],[[120711,120711],"mapped",[968]],[[120712,120712],"mapped",[969]],[[120713,120713],"mapped",[8706]],[[120714,120714],"mapped",[949]],[[120715,120715],"mapped",[952]],[[120716,120716],"mapped",[954]],[[120717,120717],"mapped",[966]],[[120718,120718],"mapped",[961]],[[120719,120719],"mapped",[960]],[[120720,120720],"mapped",[945]],[[120721,120721],"mapped",[946]],[[120722,120722],"mapped",[947]],[[120723,120723],"mapped",[948]],[[120724,120724],"mapped",[949]],[[120725,120725],"mapped",[950]],[[120726,120726],"mapped",[951]],[[120727,120727],"mapped",[952]],[[120728,120728],"mapped",[953]],[[120729,120729],"mapped",[954]],[[120730,120730],"mapped",[955]],[[120731,120731],"mapped",[956]],[[120732,120732],"mapped",[957]],[[120733,120733],"mapped",[958]],[[120734,120734],"mapped",[959]],[[120735,120735],"mapped",[960]],[[120736,120736],"mapped",[961]],[[120737,120737],"mapped",[952]],[[120738,120738],"mapped",[963]],[[120739,120739],"mapped",[964]],[[120740,120740],"mapped",[965]],[[120741,120741],"mapped",[966]],[[120742,120742],"mapped",[967]],[[120743,120743],"mapped",[968]],[[120744,120744],"mapped",[969]],[[120745,120745],"mapped",[8711]],[[120746,120746],"mapped",[945]],[[120747,120747],"mapped",[946]],[[120748,120748],"mapped",[947]],[[120749,120749],"mapped",[948]],[[120750,120750],"mapped",[949]],[[120751,120751],"mapped",[950]],[[120752,120752],"mapped",[951]],[[120753,120753],"mapped",[952]],[[120754,120754],"mapped",[953]],[[120755,120755],"mapped",[954]],[[120756,120756],"mapped",[955]],[[120757,120757],"mapped",[956]],[[120758,120758],"mapped",[957]],[[120759,120759],"mapped",[958]],[[120760,120760],"mapped",[959]],[[120761,120761],"mapped",[960]],[[120762,120762],"mapped",[961]],[[120763,120764],"mapped",[963]],[[120765,120765],"mapped",[964]],[[120766,120766],"mapped",[965]],[[120767,120767],"mapped",[966]],[[120768,120768],"mapped",[967]],[[120769,120769],"mapped",[968]],[[120770,120770],"mapped",[969]],[[120771,120771],"mapped",[8706]],[[120772,120772],"mapped",[949]],[[120773,120773],"mapped",[952]],[[120774,120774],"mapped",[954]],[[120775,120775],"mapped",[966]],[[120776,120776],"mapped",[961]],[[120777,120777],"mapped",[960]],[[120778,120779],"mapped",[989]],[[120780,120781],"disallowed"],[[120782,120782],"mapped",[48]],[[120783,120783],"mapped",[49]],[[120784,120784],"mapped",[50]],[[120785,120785],"mapped",[51]],[[120786,120786],"mapped",[52]],[[120787,120787],"mapped",[53]],[[120788,120788],"mapped",[54]],[[120789,120789],"mapped",[55]],[[120790,120790],"mapped",[56]],[[120791,120791],"mapped",[57]],[[120792,120792],"mapped",[48]],[[120793,120793],"mapped",[49]],[[120794,120794],"mapped",[50]],[[120795,120795],"mapped",[51]],[[120796,120796],"mapped",[52]],[[120797,120797],"mapped",[53]],[[120798,120798],"mapped",[54]],[[120799,120799],"mapped",[55]],[[120800,120800],"mapped",[56]],[[120801,120801],"mapped",[57]],[[120802,120802],"mapped",[48]],[[120803,120803],"mapped",[49]],[[120804,120804],"mapped",[50]],[[120805,120805],"mapped",[51]],[[120806,120806],"mapped",[52]],[[120807,120807],"mapped",[53]],[[120808,120808],"mapped",[54]],[[120809,120809],"mapped",[55]],[[120810,120810],"mapped",[56]],[[120811,120811],"mapped",[57]],[[120812,120812],"mapped",[48]],[[120813,120813],"mapped",[49]],[[120814,120814],"mapped",[50]],[[120815,120815],"mapped",[51]],[[120816,120816],"mapped",[52]],[[120817,120817],"mapped",[53]],[[120818,120818],"mapped",[54]],[[120819,120819],"mapped",[55]],[[120820,120820],"mapped",[56]],[[120821,120821],"mapped",[57]],[[120822,120822],"mapped",[48]],[[120823,120823],"mapped",[49]],[[120824,120824],"mapped",[50]],[[120825,120825],"mapped",[51]],[[120826,120826],"mapped",[52]],[[120827,120827],"mapped",[53]],[[120828,120828],"mapped",[54]],[[120829,120829],"mapped",[55]],[[120830,120830],"mapped",[56]],[[120831,120831],"mapped",[57]],[[120832,121343],"valid",[],"NV8"],[[121344,121398],"valid"],[[121399,121402],"valid",[],"NV8"],[[121403,121452],"valid"],[[121453,121460],"valid",[],"NV8"],[[121461,121461],"valid"],[[121462,121475],"valid",[],"NV8"],[[121476,121476],"valid"],[[121477,121483],"valid",[],"NV8"],[[121484,121498],"disallowed"],[[121499,121503],"valid"],[[121504,121504],"disallowed"],[[121505,121519],"valid"],[[121520,124927],"disallowed"],[[124928,125124],"valid"],[[125125,125126],"disallowed"],[[125127,125135],"valid",[],"NV8"],[[125136,125142],"valid"],[[125143,126463],"disallowed"],[[126464,126464],"mapped",[1575]],[[126465,126465],"mapped",[1576]],[[126466,126466],"mapped",[1580]],[[126467,126467],"mapped",[1583]],[[126468,126468],"disallowed"],[[126469,126469],"mapped",[1608]],[[126470,126470],"mapped",[1586]],[[126471,126471],"mapped",[1581]],[[126472,126472],"mapped",[1591]],[[126473,126473],"mapped",[1610]],[[126474,126474],"mapped",[1603]],[[126475,126475],"mapped",[1604]],[[126476,126476],"mapped",[1605]],[[126477,126477],"mapped",[1606]],[[126478,126478],"mapped",[1587]],[[126479,126479],"mapped",[1593]],[[126480,126480],"mapped",[1601]],[[126481,126481],"mapped",[1589]],[[126482,126482],"mapped",[1602]],[[126483,126483],"mapped",[1585]],[[126484,126484],"mapped",[1588]],[[126485,126485],"mapped",[1578]],[[126486,126486],"mapped",[1579]],[[126487,126487],"mapped",[1582]],[[126488,126488],"mapped",[1584]],[[126489,126489],"mapped",[1590]],[[126490,126490],"mapped",[1592]],[[126491,126491],"mapped",[1594]],[[126492,126492],"mapped",[1646]],[[126493,126493],"mapped",[1722]],[[126494,126494],"mapped",[1697]],[[126495,126495],"mapped",[1647]],[[126496,126496],"disallowed"],[[126497,126497],"mapped",[1576]],[[126498,126498],"mapped",[1580]],[[126499,126499],"disallowed"],[[126500,126500],"mapped",[1607]],[[126501,126502],"disallowed"],[[126503,126503],"mapped",[1581]],[[126504,126504],"disallowed"],[[126505,126505],"mapped",[1610]],[[126506,126506],"mapped",[1603]],[[126507,126507],"mapped",[1604]],[[126508,126508],"mapped",[1605]],[[126509,126509],"mapped",[1606]],[[126510,126510],"mapped",[1587]],[[126511,126511],"mapped",[1593]],[[126512,126512],"mapped",[1601]],[[126513,126513],"mapped",[1589]],[[126514,126514],"mapped",[1602]],[[126515,126515],"disallowed"],[[126516,126516],"mapped",[1588]],[[126517,126517],"mapped",[1578]],[[126518,126518],"mapped",[1579]],[[126519,126519],"mapped",[1582]],[[126520,126520],"disallowed"],[[126521,126521],"mapped",[1590]],[[126522,126522],"disallowed"],[[126523,126523],"mapped",[1594]],[[126524,126529],"disallowed"],[[126530,126530],"mapped",[1580]],[[126531,126534],"disallowed"],[[126535,126535],"mapped",[1581]],[[126536,126536],"disallowed"],[[126537,126537],"mapped",[1610]],[[126538,126538],"disallowed"],[[126539,126539],"mapped",[1604]],[[126540,126540],"disallowed"],[[126541,126541],"mapped",[1606]],[[126542,126542],"mapped",[1587]],[[126543,126543],"mapped",[1593]],[[126544,126544],"disallowed"],[[126545,126545],"mapped",[1589]],[[126546,126546],"mapped",[1602]],[[126547,126547],"disallowed"],[[126548,126548],"mapped",[1588]],[[126549,126550],"disallowed"],[[126551,126551],"mapped",[1582]],[[126552,126552],"disallowed"],[[126553,126553],"mapped",[1590]],[[126554,126554],"disallowed"],[[126555,126555],"mapped",[1594]],[[126556,126556],"disallowed"],[[126557,126557],"mapped",[1722]],[[126558,126558],"disallowed"],[[126559,126559],"mapped",[1647]],[[126560,126560],"disallowed"],[[126561,126561],"mapped",[1576]],[[126562,126562],"mapped",[1580]],[[126563,126563],"disallowed"],[[126564,126564],"mapped",[1607]],[[126565,126566],"disallowed"],[[126567,126567],"mapped",[1581]],[[126568,126568],"mapped",[1591]],[[126569,126569],"mapped",[1610]],[[126570,126570],"mapped",[1603]],[[126571,126571],"disallowed"],[[126572,126572],"mapped",[1605]],[[126573,126573],"mapped",[1606]],[[126574,126574],"mapped",[1587]],[[126575,126575],"mapped",[1593]],[[126576,126576],"mapped",[1601]],[[126577,126577],"mapped",[1589]],[[126578,126578],"mapped",[1602]],[[126579,126579],"disallowed"],[[126580,126580],"mapped",[1588]],[[126581,126581],"mapped",[1578]],[[126582,126582],"mapped",[1579]],[[126583,126583],"mapped",[1582]],[[126584,126584],"disallowed"],[[126585,126585],"mapped",[1590]],[[126586,126586],"mapped",[1592]],[[126587,126587],"mapped",[1594]],[[126588,126588],"mapped",[1646]],[[126589,126589],"disallowed"],[[126590,126590],"mapped",[1697]],[[126591,126591],"disallowed"],[[126592,126592],"mapped",[1575]],[[126593,126593],"mapped",[1576]],[[126594,126594],"mapped",[1580]],[[126595,126595],"mapped",[1583]],[[126596,126596],"mapped",[1607]],[[126597,126597],"mapped",[1608]],[[126598,126598],"mapped",[1586]],[[126599,126599],"mapped",[1581]],[[126600,126600],"mapped",[1591]],[[126601,126601],"mapped",[1610]],[[126602,126602],"disallowed"],[[126603,126603],"mapped",[1604]],[[126604,126604],"mapped",[1605]],[[126605,126605],"mapped",[1606]],[[126606,126606],"mapped",[1587]],[[126607,126607],"mapped",[1593]],[[126608,126608],"mapped",[1601]],[[126609,126609],"mapped",[1589]],[[126610,126610],"mapped",[1602]],[[126611,126611],"mapped",[1585]],[[126612,126612],"mapped",[1588]],[[126613,126613],"mapped",[1578]],[[126614,126614],"mapped",[1579]],[[126615,126615],"mapped",[1582]],[[126616,126616],"mapped",[1584]],[[126617,126617],"mapped",[1590]],[[126618,126618],"mapped",[1592]],[[126619,126619],"mapped",[1594]],[[126620,126624],"disallowed"],[[126625,126625],"mapped",[1576]],[[126626,126626],"mapped",[1580]],[[126627,126627],"mapped",[1583]],[[126628,126628],"disallowed"],[[126629,126629],"mapped",[1608]],[[126630,126630],"mapped",[1586]],[[126631,126631],"mapped",[1581]],[[126632,126632],"mapped",[1591]],[[126633,126633],"mapped",[1610]],[[126634,126634],"disallowed"],[[126635,126635],"mapped",[1604]],[[126636,126636],"mapped",[1605]],[[126637,126637],"mapped",[1606]],[[126638,126638],"mapped",[1587]],[[126639,126639],"mapped",[1593]],[[126640,126640],"mapped",[1601]],[[126641,126641],"mapped",[1589]],[[126642,126642],"mapped",[1602]],[[126643,126643],"mapped",[1585]],[[126644,126644],"mapped",[1588]],[[126645,126645],"mapped",[1578]],[[126646,126646],"mapped",[1579]],[[126647,126647],"mapped",[1582]],[[126648,126648],"mapped",[1584]],[[126649,126649],"mapped",[1590]],[[126650,126650],"mapped",[1592]],[[126651,126651],"mapped",[1594]],[[126652,126703],"disallowed"],[[126704,126705],"valid",[],"NV8"],[[126706,126975],"disallowed"],[[126976,127019],"valid",[],"NV8"],[[127020,127023],"disallowed"],[[127024,127123],"valid",[],"NV8"],[[127124,127135],"disallowed"],[[127136,127150],"valid",[],"NV8"],[[127151,127152],"disallowed"],[[127153,127166],"valid",[],"NV8"],[[127167,127167],"valid",[],"NV8"],[[127168,127168],"disallowed"],[[127169,127183],"valid",[],"NV8"],[[127184,127184],"disallowed"],[[127185,127199],"valid",[],"NV8"],[[127200,127221],"valid",[],"NV8"],[[127222,127231],"disallowed"],[[127232,127232],"disallowed"],[[127233,127233],"disallowed_STD3_mapped",[48,44]],[[127234,127234],"disallowed_STD3_mapped",[49,44]],[[127235,127235],"disallowed_STD3_mapped",[50,44]],[[127236,127236],"disallowed_STD3_mapped",[51,44]],[[127237,127237],"disallowed_STD3_mapped",[52,44]],[[127238,127238],"disallowed_STD3_mapped",[53,44]],[[127239,127239],"disallowed_STD3_mapped",[54,44]],[[127240,127240],"disallowed_STD3_mapped",[55,44]],[[127241,127241],"disallowed_STD3_mapped",[56,44]],[[127242,127242],"disallowed_STD3_mapped",[57,44]],[[127243,127244],"valid",[],"NV8"],[[127245,127247],"disallowed"],[[127248,127248],"disallowed_STD3_mapped",[40,97,41]],[[127249,127249],"disallowed_STD3_mapped",[40,98,41]],[[127250,127250],"disallowed_STD3_mapped",[40,99,41]],[[127251,127251],"disallowed_STD3_mapped",[40,100,41]],[[127252,127252],"disallowed_STD3_mapped",[40,101,41]],[[127253,127253],"disallowed_STD3_mapped",[40,102,41]],[[127254,127254],"disallowed_STD3_mapped",[40,103,41]],[[127255,127255],"disallowed_STD3_mapped",[40,104,41]],[[127256,127256],"disallowed_STD3_mapped",[40,105,41]],[[127257,127257],"disallowed_STD3_mapped",[40,106,41]],[[127258,127258],"disallowed_STD3_mapped",[40,107,41]],[[127259,127259],"disallowed_STD3_mapped",[40,108,41]],[[127260,127260],"disallowed_STD3_mapped",[40,109,41]],[[127261,127261],"disallowed_STD3_mapped",[40,110,41]],[[127262,127262],"disallowed_STD3_mapped",[40,111,41]],[[127263,127263],"disallowed_STD3_mapped",[40,112,41]],[[127264,127264],"disallowed_STD3_mapped",[40,113,41]],[[127265,127265],"disallowed_STD3_mapped",[40,114,41]],[[127266,127266],"disallowed_STD3_mapped",[40,115,41]],[[127267,127267],"disallowed_STD3_mapped",[40,116,41]],[[127268,127268],"disallowed_STD3_mapped",[40,117,41]],[[127269,127269],"disallowed_STD3_mapped",[40,118,41]],[[127270,127270],"disallowed_STD3_mapped",[40,119,41]],[[127271,127271],"disallowed_STD3_mapped",[40,120,41]],[[127272,127272],"disallowed_STD3_mapped",[40,121,41]],[[127273,127273],"disallowed_STD3_mapped",[40,122,41]],[[127274,127274],"mapped",[12308,115,12309]],[[127275,127275],"mapped",[99]],[[127276,127276],"mapped",[114]],[[127277,127277],"mapped",[99,100]],[[127278,127278],"mapped",[119,122]],[[127279,127279],"disallowed"],[[127280,127280],"mapped",[97]],[[127281,127281],"mapped",[98]],[[127282,127282],"mapped",[99]],[[127283,127283],"mapped",[100]],[[127284,127284],"mapped",[101]],[[127285,127285],"mapped",[102]],[[127286,127286],"mapped",[103]],[[127287,127287],"mapped",[104]],[[127288,127288],"mapped",[105]],[[127289,127289],"mapped",[106]],[[127290,127290],"mapped",[107]],[[127291,127291],"mapped",[108]],[[127292,127292],"mapped",[109]],[[127293,127293],"mapped",[110]],[[127294,127294],"mapped",[111]],[[127295,127295],"mapped",[112]],[[127296,127296],"mapped",[113]],[[127297,127297],"mapped",[114]],[[127298,127298],"mapped",[115]],[[127299,127299],"mapped",[116]],[[127300,127300],"mapped",[117]],[[127301,127301],"mapped",[118]],[[127302,127302],"mapped",[119]],[[127303,127303],"mapped",[120]],[[127304,127304],"mapped",[121]],[[127305,127305],"mapped",[122]],[[127306,127306],"mapped",[104,118]],[[127307,127307],"mapped",[109,118]],[[127308,127308],"mapped",[115,100]],[[127309,127309],"mapped",[115,115]],[[127310,127310],"mapped",[112,112,118]],[[127311,127311],"mapped",[119,99]],[[127312,127318],"valid",[],"NV8"],[[127319,127319],"valid",[],"NV8"],[[127320,127326],"valid",[],"NV8"],[[127327,127327],"valid",[],"NV8"],[[127328,127337],"valid",[],"NV8"],[[127338,127338],"mapped",[109,99]],[[127339,127339],"mapped",[109,100]],[[127340,127343],"disallowed"],[[127344,127352],"valid",[],"NV8"],[[127353,127353],"valid",[],"NV8"],[[127354,127354],"valid",[],"NV8"],[[127355,127356],"valid",[],"NV8"],[[127357,127358],"valid",[],"NV8"],[[127359,127359],"valid",[],"NV8"],[[127360,127369],"valid",[],"NV8"],[[127370,127373],"valid",[],"NV8"],[[127374,127375],"valid",[],"NV8"],[[127376,127376],"mapped",[100,106]],[[127377,127386],"valid",[],"NV8"],[[127387,127461],"disallowed"],[[127462,127487],"valid",[],"NV8"],[[127488,127488],"mapped",[12411,12363]],[[127489,127489],"mapped",[12467,12467]],[[127490,127490],"mapped",[12469]],[[127491,127503],"disallowed"],[[127504,127504],"mapped",[25163]],[[127505,127505],"mapped",[23383]],[[127506,127506],"mapped",[21452]],[[127507,127507],"mapped",[12487]],[[127508,127508],"mapped",[20108]],[[127509,127509],"mapped",[22810]],[[127510,127510],"mapped",[35299]],[[127511,127511],"mapped",[22825]],[[127512,127512],"mapped",[20132]],[[127513,127513],"mapped",[26144]],[[127514,127514],"mapped",[28961]],[[127515,127515],"mapped",[26009]],[[127516,127516],"mapped",[21069]],[[127517,127517],"mapped",[24460]],[[127518,127518],"mapped",[20877]],[[127519,127519],"mapped",[26032]],[[127520,127520],"mapped",[21021]],[[127521,127521],"mapped",[32066]],[[127522,127522],"mapped",[29983]],[[127523,127523],"mapped",[36009]],[[127524,127524],"mapped",[22768]],[[127525,127525],"mapped",[21561]],[[127526,127526],"mapped",[28436]],[[127527,127527],"mapped",[25237]],[[127528,127528],"mapped",[25429]],[[127529,127529],"mapped",[19968]],[[127530,127530],"mapped",[19977]],[[127531,127531],"mapped",[36938]],[[127532,127532],"mapped",[24038]],[[127533,127533],"mapped",[20013]],[[127534,127534],"mapped",[21491]],[[127535,127535],"mapped",[25351]],[[127536,127536],"mapped",[36208]],[[127537,127537],"mapped",[25171]],[[127538,127538],"mapped",[31105]],[[127539,127539],"mapped",[31354]],[[127540,127540],"mapped",[21512]],[[127541,127541],"mapped",[28288]],[[127542,127542],"mapped",[26377]],[[127543,127543],"mapped",[26376]],[[127544,127544],"mapped",[30003]],[[127545,127545],"mapped",[21106]],[[127546,127546],"mapped",[21942]],[[127547,127551],"disallowed"],[[127552,127552],"mapped",[12308,26412,12309]],[[127553,127553],"mapped",[12308,19977,12309]],[[127554,127554],"mapped",[12308,20108,12309]],[[127555,127555],"mapped",[12308,23433,12309]],[[127556,127556],"mapped",[12308,28857,12309]],[[127557,127557],"mapped",[12308,25171,12309]],[[127558,127558],"mapped",[12308,30423,12309]],[[127559,127559],"mapped",[12308,21213,12309]],[[127560,127560],"mapped",[12308,25943,12309]],[[127561,127567],"disallowed"],[[127568,127568],"mapped",[24471]],[[127569,127569],"mapped",[21487]],[[127570,127743],"disallowed"],[[127744,127776],"valid",[],"NV8"],[[127777,127788],"valid",[],"NV8"],[[127789,127791],"valid",[],"NV8"],[[127792,127797],"valid",[],"NV8"],[[127798,127798],"valid",[],"NV8"],[[127799,127868],"valid",[],"NV8"],[[127869,127869],"valid",[],"NV8"],[[127870,127871],"valid",[],"NV8"],[[127872,127891],"valid",[],"NV8"],[[127892,127903],"valid",[],"NV8"],[[127904,127940],"valid",[],"NV8"],[[127941,127941],"valid",[],"NV8"],[[127942,127946],"valid",[],"NV8"],[[127947,127950],"valid",[],"NV8"],[[127951,127955],"valid",[],"NV8"],[[127956,127967],"valid",[],"NV8"],[[127968,127984],"valid",[],"NV8"],[[127985,127991],"valid",[],"NV8"],[[127992,127999],"valid",[],"NV8"],[[128e3,128062],"valid",[],"NV8"],[[128063,128063],"valid",[],"NV8"],[[128064,128064],"valid",[],"NV8"],[[128065,128065],"valid",[],"NV8"],[[128066,128247],"valid",[],"NV8"],[[128248,128248],"valid",[],"NV8"],[[128249,128252],"valid",[],"NV8"],[[128253,128254],"valid",[],"NV8"],[[128255,128255],"valid",[],"NV8"],[[128256,128317],"valid",[],"NV8"],[[128318,128319],"valid",[],"NV8"],[[128320,128323],"valid",[],"NV8"],[[128324,128330],"valid",[],"NV8"],[[128331,128335],"valid",[],"NV8"],[[128336,128359],"valid",[],"NV8"],[[128360,128377],"valid",[],"NV8"],[[128378,128378],"disallowed"],[[128379,128419],"valid",[],"NV8"],[[128420,128420],"disallowed"],[[128421,128506],"valid",[],"NV8"],[[128507,128511],"valid",[],"NV8"],[[128512,128512],"valid",[],"NV8"],[[128513,128528],"valid",[],"NV8"],[[128529,128529],"valid",[],"NV8"],[[128530,128532],"valid",[],"NV8"],[[128533,128533],"valid",[],"NV8"],[[128534,128534],"valid",[],"NV8"],[[128535,128535],"valid",[],"NV8"],[[128536,128536],"valid",[],"NV8"],[[128537,128537],"valid",[],"NV8"],[[128538,128538],"valid",[],"NV8"],[[128539,128539],"valid",[],"NV8"],[[128540,128542],"valid",[],"NV8"],[[128543,128543],"valid",[],"NV8"],[[128544,128549],"valid",[],"NV8"],[[128550,128551],"valid",[],"NV8"],[[128552,128555],"valid",[],"NV8"],[[128556,128556],"valid",[],"NV8"],[[128557,128557],"valid",[],"NV8"],[[128558,128559],"valid",[],"NV8"],[[128560,128563],"valid",[],"NV8"],[[128564,128564],"valid",[],"NV8"],[[128565,128576],"valid",[],"NV8"],[[128577,128578],"valid",[],"NV8"],[[128579,128580],"valid",[],"NV8"],[[128581,128591],"valid",[],"NV8"],[[128592,128639],"valid",[],"NV8"],[[128640,128709],"valid",[],"NV8"],[[128710,128719],"valid",[],"NV8"],[[128720,128720],"valid",[],"NV8"],[[128721,128735],"disallowed"],[[128736,128748],"valid",[],"NV8"],[[128749,128751],"disallowed"],[[128752,128755],"valid",[],"NV8"],[[128756,128767],"disallowed"],[[128768,128883],"valid",[],"NV8"],[[128884,128895],"disallowed"],[[128896,128980],"valid",[],"NV8"],[[128981,129023],"disallowed"],[[129024,129035],"valid",[],"NV8"],[[129036,129039],"disallowed"],[[129040,129095],"valid",[],"NV8"],[[129096,129103],"disallowed"],[[129104,129113],"valid",[],"NV8"],[[129114,129119],"disallowed"],[[129120,129159],"valid",[],"NV8"],[[129160,129167],"disallowed"],[[129168,129197],"valid",[],"NV8"],[[129198,129295],"disallowed"],[[129296,129304],"valid",[],"NV8"],[[129305,129407],"disallowed"],[[129408,129412],"valid",[],"NV8"],[[129413,129471],"disallowed"],[[129472,129472],"valid",[],"NV8"],[[129473,131069],"disallowed"],[[131070,131071],"disallowed"],[[131072,173782],"valid"],[[173783,173823],"disallowed"],[[173824,177972],"valid"],[[177973,177983],"disallowed"],[[177984,178205],"valid"],[[178206,178207],"disallowed"],[[178208,183969],"valid"],[[183970,194559],"disallowed"],[[194560,194560],"mapped",[20029]],[[194561,194561],"mapped",[20024]],[[194562,194562],"mapped",[20033]],[[194563,194563],"mapped",[131362]],[[194564,194564],"mapped",[20320]],[[194565,194565],"mapped",[20398]],[[194566,194566],"mapped",[20411]],[[194567,194567],"mapped",[20482]],[[194568,194568],"mapped",[20602]],[[194569,194569],"mapped",[20633]],[[194570,194570],"mapped",[20711]],[[194571,194571],"mapped",[20687]],[[194572,194572],"mapped",[13470]],[[194573,194573],"mapped",[132666]],[[194574,194574],"mapped",[20813]],[[194575,194575],"mapped",[20820]],[[194576,194576],"mapped",[20836]],[[194577,194577],"mapped",[20855]],[[194578,194578],"mapped",[132380]],[[194579,194579],"mapped",[13497]],[[194580,194580],"mapped",[20839]],[[194581,194581],"mapped",[20877]],[[194582,194582],"mapped",[132427]],[[194583,194583],"mapped",[20887]],[[194584,194584],"mapped",[20900]],[[194585,194585],"mapped",[20172]],[[194586,194586],"mapped",[20908]],[[194587,194587],"mapped",[20917]],[[194588,194588],"mapped",[168415]],[[194589,194589],"mapped",[20981]],[[194590,194590],"mapped",[20995]],[[194591,194591],"mapped",[13535]],[[194592,194592],"mapped",[21051]],[[194593,194593],"mapped",[21062]],[[194594,194594],"mapped",[21106]],[[194595,194595],"mapped",[21111]],[[194596,194596],"mapped",[13589]],[[194597,194597],"mapped",[21191]],[[194598,194598],"mapped",[21193]],[[194599,194599],"mapped",[21220]],[[194600,194600],"mapped",[21242]],[[194601,194601],"mapped",[21253]],[[194602,194602],"mapped",[21254]],[[194603,194603],"mapped",[21271]],[[194604,194604],"mapped",[21321]],[[194605,194605],"mapped",[21329]],[[194606,194606],"mapped",[21338]],[[194607,194607],"mapped",[21363]],[[194608,194608],"mapped",[21373]],[[194609,194611],"mapped",[21375]],[[194612,194612],"mapped",[133676]],[[194613,194613],"mapped",[28784]],[[194614,194614],"mapped",[21450]],[[194615,194615],"mapped",[21471]],[[194616,194616],"mapped",[133987]],[[194617,194617],"mapped",[21483]],[[194618,194618],"mapped",[21489]],[[194619,194619],"mapped",[21510]],[[194620,194620],"mapped",[21662]],[[194621,194621],"mapped",[21560]],[[194622,194622],"mapped",[21576]],[[194623,194623],"mapped",[21608]],[[194624,194624],"mapped",[21666]],[[194625,194625],"mapped",[21750]],[[194626,194626],"mapped",[21776]],[[194627,194627],"mapped",[21843]],[[194628,194628],"mapped",[21859]],[[194629,194630],"mapped",[21892]],[[194631,194631],"mapped",[21913]],[[194632,194632],"mapped",[21931]],[[194633,194633],"mapped",[21939]],[[194634,194634],"mapped",[21954]],[[194635,194635],"mapped",[22294]],[[194636,194636],"mapped",[22022]],[[194637,194637],"mapped",[22295]],[[194638,194638],"mapped",[22097]],[[194639,194639],"mapped",[22132]],[[194640,194640],"mapped",[20999]],[[194641,194641],"mapped",[22766]],[[194642,194642],"mapped",[22478]],[[194643,194643],"mapped",[22516]],[[194644,194644],"mapped",[22541]],[[194645,194645],"mapped",[22411]],[[194646,194646],"mapped",[22578]],[[194647,194647],"mapped",[22577]],[[194648,194648],"mapped",[22700]],[[194649,194649],"mapped",[136420]],[[194650,194650],"mapped",[22770]],[[194651,194651],"mapped",[22775]],[[194652,194652],"mapped",[22790]],[[194653,194653],"mapped",[22810]],[[194654,194654],"mapped",[22818]],[[194655,194655],"mapped",[22882]],[[194656,194656],"mapped",[136872]],[[194657,194657],"mapped",[136938]],[[194658,194658],"mapped",[23020]],[[194659,194659],"mapped",[23067]],[[194660,194660],"mapped",[23079]],[[194661,194661],"mapped",[23e3]],[[194662,194662],"mapped",[23142]],[[194663,194663],"mapped",[14062]],[[194664,194664],"disallowed"],[[194665,194665],"mapped",[23304]],[[194666,194667],"mapped",[23358]],[[194668,194668],"mapped",[137672]],[[194669,194669],"mapped",[23491]],[[194670,194670],"mapped",[23512]],[[194671,194671],"mapped",[23527]],[[194672,194672],"mapped",[23539]],[[194673,194673],"mapped",[138008]],[[194674,194674],"mapped",[23551]],[[194675,194675],"mapped",[23558]],[[194676,194676],"disallowed"],[[194677,194677],"mapped",[23586]],[[194678,194678],"mapped",[14209]],[[194679,194679],"mapped",[23648]],[[194680,194680],"mapped",[23662]],[[194681,194681],"mapped",[23744]],[[194682,194682],"mapped",[23693]],[[194683,194683],"mapped",[138724]],[[194684,194684],"mapped",[23875]],[[194685,194685],"mapped",[138726]],[[194686,194686],"mapped",[23918]],[[194687,194687],"mapped",[23915]],[[194688,194688],"mapped",[23932]],[[194689,194689],"mapped",[24033]],[[194690,194690],"mapped",[24034]],[[194691,194691],"mapped",[14383]],[[194692,194692],"mapped",[24061]],[[194693,194693],"mapped",[24104]],[[194694,194694],"mapped",[24125]],[[194695,194695],"mapped",[24169]],[[194696,194696],"mapped",[14434]],[[194697,194697],"mapped",[139651]],[[194698,194698],"mapped",[14460]],[[194699,194699],"mapped",[24240]],[[194700,194700],"mapped",[24243]],[[194701,194701],"mapped",[24246]],[[194702,194702],"mapped",[24266]],[[194703,194703],"mapped",[172946]],[[194704,194704],"mapped",[24318]],[[194705,194706],"mapped",[140081]],[[194707,194707],"mapped",[33281]],[[194708,194709],"mapped",[24354]],[[194710,194710],"mapped",[14535]],[[194711,194711],"mapped",[144056]],[[194712,194712],"mapped",[156122]],[[194713,194713],"mapped",[24418]],[[194714,194714],"mapped",[24427]],[[194715,194715],"mapped",[14563]],[[194716,194716],"mapped",[24474]],[[194717,194717],"mapped",[24525]],[[194718,194718],"mapped",[24535]],[[194719,194719],"mapped",[24569]],[[194720,194720],"mapped",[24705]],[[194721,194721],"mapped",[14650]],[[194722,194722],"mapped",[14620]],[[194723,194723],"mapped",[24724]],[[194724,194724],"mapped",[141012]],[[194725,194725],"mapped",[24775]],[[194726,194726],"mapped",[24904]],[[194727,194727],"mapped",[24908]],[[194728,194728],"mapped",[24910]],[[194729,194729],"mapped",[24908]],[[194730,194730],"mapped",[24954]],[[194731,194731],"mapped",[24974]],[[194732,194732],"mapped",[25010]],[[194733,194733],"mapped",[24996]],[[194734,194734],"mapped",[25007]],[[194735,194735],"mapped",[25054]],[[194736,194736],"mapped",[25074]],[[194737,194737],"mapped",[25078]],[[194738,194738],"mapped",[25104]],[[194739,194739],"mapped",[25115]],[[194740,194740],"mapped",[25181]],[[194741,194741],"mapped",[25265]],[[194742,194742],"mapped",[25300]],[[194743,194743],"mapped",[25424]],[[194744,194744],"mapped",[142092]],[[194745,194745],"mapped",[25405]],[[194746,194746],"mapped",[25340]],[[194747,194747],"mapped",[25448]],[[194748,194748],"mapped",[25475]],[[194749,194749],"mapped",[25572]],[[194750,194750],"mapped",[142321]],[[194751,194751],"mapped",[25634]],[[194752,194752],"mapped",[25541]],[[194753,194753],"mapped",[25513]],[[194754,194754],"mapped",[14894]],[[194755,194755],"mapped",[25705]],[[194756,194756],"mapped",[25726]],[[194757,194757],"mapped",[25757]],[[194758,194758],"mapped",[25719]],[[194759,194759],"mapped",[14956]],[[194760,194760],"mapped",[25935]],[[194761,194761],"mapped",[25964]],[[194762,194762],"mapped",[143370]],[[194763,194763],"mapped",[26083]],[[194764,194764],"mapped",[26360]],[[194765,194765],"mapped",[26185]],[[194766,194766],"mapped",[15129]],[[194767,194767],"mapped",[26257]],[[194768,194768],"mapped",[15112]],[[194769,194769],"mapped",[15076]],[[194770,194770],"mapped",[20882]],[[194771,194771],"mapped",[20885]],[[194772,194772],"mapped",[26368]],[[194773,194773],"mapped",[26268]],[[194774,194774],"mapped",[32941]],[[194775,194775],"mapped",[17369]],[[194776,194776],"mapped",[26391]],[[194777,194777],"mapped",[26395]],[[194778,194778],"mapped",[26401]],[[194779,194779],"mapped",[26462]],[[194780,194780],"mapped",[26451]],[[194781,194781],"mapped",[144323]],[[194782,194782],"mapped",[15177]],[[194783,194783],"mapped",[26618]],[[194784,194784],"mapped",[26501]],[[194785,194785],"mapped",[26706]],[[194786,194786],"mapped",[26757]],[[194787,194787],"mapped",[144493]],[[194788,194788],"mapped",[26766]],[[194789,194789],"mapped",[26655]],[[194790,194790],"mapped",[26900]],[[194791,194791],"mapped",[15261]],[[194792,194792],"mapped",[26946]],[[194793,194793],"mapped",[27043]],[[194794,194794],"mapped",[27114]],[[194795,194795],"mapped",[27304]],[[194796,194796],"mapped",[145059]],[[194797,194797],"mapped",[27355]],[[194798,194798],"mapped",[15384]],[[194799,194799],"mapped",[27425]],[[194800,194800],"mapped",[145575]],[[194801,194801],"mapped",[27476]],[[194802,194802],"mapped",[15438]],[[194803,194803],"mapped",[27506]],[[194804,194804],"mapped",[27551]],[[194805,194805],"mapped",[27578]],[[194806,194806],"mapped",[27579]],[[194807,194807],"mapped",[146061]],[[194808,194808],"mapped",[138507]],[[194809,194809],"mapped",[146170]],[[194810,194810],"mapped",[27726]],[[194811,194811],"mapped",[146620]],[[194812,194812],"mapped",[27839]],[[194813,194813],"mapped",[27853]],[[194814,194814],"mapped",[27751]],[[194815,194815],"mapped",[27926]],[[194816,194816],"mapped",[27966]],[[194817,194817],"mapped",[28023]],[[194818,194818],"mapped",[27969]],[[194819,194819],"mapped",[28009]],[[194820,194820],"mapped",[28024]],[[194821,194821],"mapped",[28037]],[[194822,194822],"mapped",[146718]],[[194823,194823],"mapped",[27956]],[[194824,194824],"mapped",[28207]],[[194825,194825],"mapped",[28270]],[[194826,194826],"mapped",[15667]],[[194827,194827],"mapped",[28363]],[[194828,194828],"mapped",[28359]],[[194829,194829],"mapped",[147153]],[[194830,194830],"mapped",[28153]],[[194831,194831],"mapped",[28526]],[[194832,194832],"mapped",[147294]],[[194833,194833],"mapped",[147342]],[[194834,194834],"mapped",[28614]],[[194835,194835],"mapped",[28729]],[[194836,194836],"mapped",[28702]],[[194837,194837],"mapped",[28699]],[[194838,194838],"mapped",[15766]],[[194839,194839],"mapped",[28746]],[[194840,194840],"mapped",[28797]],[[194841,194841],"mapped",[28791]],[[194842,194842],"mapped",[28845]],[[194843,194843],"mapped",[132389]],[[194844,194844],"mapped",[28997]],[[194845,194845],"mapped",[148067]],[[194846,194846],"mapped",[29084]],[[194847,194847],"disallowed"],[[194848,194848],"mapped",[29224]],[[194849,194849],"mapped",[29237]],[[194850,194850],"mapped",[29264]],[[194851,194851],"mapped",[149e3]],[[194852,194852],"mapped",[29312]],[[194853,194853],"mapped",[29333]],[[194854,194854],"mapped",[149301]],[[194855,194855],"mapped",[149524]],[[194856,194856],"mapped",[29562]],[[194857,194857],"mapped",[29579]],[[194858,194858],"mapped",[16044]],[[194859,194859],"mapped",[29605]],[[194860,194861],"mapped",[16056]],[[194862,194862],"mapped",[29767]],[[194863,194863],"mapped",[29788]],[[194864,194864],"mapped",[29809]],[[194865,194865],"mapped",[29829]],[[194866,194866],"mapped",[29898]],[[194867,194867],"mapped",[16155]],[[194868,194868],"mapped",[29988]],[[194869,194869],"mapped",[150582]],[[194870,194870],"mapped",[30014]],[[194871,194871],"mapped",[150674]],[[194872,194872],"mapped",[30064]],[[194873,194873],"mapped",[139679]],[[194874,194874],"mapped",[30224]],[[194875,194875],"mapped",[151457]],[[194876,194876],"mapped",[151480]],[[194877,194877],"mapped",[151620]],[[194878,194878],"mapped",[16380]],[[194879,194879],"mapped",[16392]],[[194880,194880],"mapped",[30452]],[[194881,194881],"mapped",[151795]],[[194882,194882],"mapped",[151794]],[[194883,194883],"mapped",[151833]],[[194884,194884],"mapped",[151859]],[[194885,194885],"mapped",[30494]],[[194886,194887],"mapped",[30495]],[[194888,194888],"mapped",[30538]],[[194889,194889],"mapped",[16441]],[[194890,194890],"mapped",[30603]],[[194891,194891],"mapped",[16454]],[[194892,194892],"mapped",[16534]],[[194893,194893],"mapped",[152605]],[[194894,194894],"mapped",[30798]],[[194895,194895],"mapped",[30860]],[[194896,194896],"mapped",[30924]],[[194897,194897],"mapped",[16611]],[[194898,194898],"mapped",[153126]],[[194899,194899],"mapped",[31062]],[[194900,194900],"mapped",[153242]],[[194901,194901],"mapped",[153285]],[[194902,194902],"mapped",[31119]],[[194903,194903],"mapped",[31211]],[[194904,194904],"mapped",[16687]],[[194905,194905],"mapped",[31296]],[[194906,194906],"mapped",[31306]],[[194907,194907],"mapped",[31311]],[[194908,194908],"mapped",[153980]],[[194909,194910],"mapped",[154279]],[[194911,194911],"disallowed"],[[194912,194912],"mapped",[16898]],[[194913,194913],"mapped",[154539]],[[194914,194914],"mapped",[31686]],[[194915,194915],"mapped",[31689]],[[194916,194916],"mapped",[16935]],[[194917,194917],"mapped",[154752]],[[194918,194918],"mapped",[31954]],[[194919,194919],"mapped",[17056]],[[194920,194920],"mapped",[31976]],[[194921,194921],"mapped",[31971]],[[194922,194922],"mapped",[32e3]],[[194923,194923],"mapped",[155526]],[[194924,194924],"mapped",[32099]],[[194925,194925],"mapped",[17153]],[[194926,194926],"mapped",[32199]],[[194927,194927],"mapped",[32258]],[[194928,194928],"mapped",[32325]],[[194929,194929],"mapped",[17204]],[[194930,194930],"mapped",[156200]],[[194931,194931],"mapped",[156231]],[[194932,194932],"mapped",[17241]],[[194933,194933],"mapped",[156377]],[[194934,194934],"mapped",[32634]],[[194935,194935],"mapped",[156478]],[[194936,194936],"mapped",[32661]],[[194937,194937],"mapped",[32762]],[[194938,194938],"mapped",[32773]],[[194939,194939],"mapped",[156890]],[[194940,194940],"mapped",[156963]],[[194941,194941],"mapped",[32864]],[[194942,194942],"mapped",[157096]],[[194943,194943],"mapped",[32880]],[[194944,194944],"mapped",[144223]],[[194945,194945],"mapped",[17365]],[[194946,194946],"mapped",[32946]],[[194947,194947],"mapped",[33027]],[[194948,194948],"mapped",[17419]],[[194949,194949],"mapped",[33086]],[[194950,194950],"mapped",[23221]],[[194951,194951],"mapped",[157607]],[[194952,194952],"mapped",[157621]],[[194953,194953],"mapped",[144275]],[[194954,194954],"mapped",[144284]],[[194955,194955],"mapped",[33281]],[[194956,194956],"mapped",[33284]],[[194957,194957],"mapped",[36766]],[[194958,194958],"mapped",[17515]],[[194959,194959],"mapped",[33425]],[[194960,194960],"mapped",[33419]],[[194961,194961],"mapped",[33437]],[[194962,194962],"mapped",[21171]],[[194963,194963],"mapped",[33457]],[[194964,194964],"mapped",[33459]],[[194965,194965],"mapped",[33469]],[[194966,194966],"mapped",[33510]],[[194967,194967],"mapped",[158524]],[[194968,194968],"mapped",[33509]],[[194969,194969],"mapped",[33565]],[[194970,194970],"mapped",[33635]],[[194971,194971],"mapped",[33709]],[[194972,194972],"mapped",[33571]],[[194973,194973],"mapped",[33725]],[[194974,194974],"mapped",[33767]],[[194975,194975],"mapped",[33879]],[[194976,194976],"mapped",[33619]],[[194977,194977],"mapped",[33738]],[[194978,194978],"mapped",[33740]],[[194979,194979],"mapped",[33756]],[[194980,194980],"mapped",[158774]],[[194981,194981],"mapped",[159083]],[[194982,194982],"mapped",[158933]],[[194983,194983],"mapped",[17707]],[[194984,194984],"mapped",[34033]],[[194985,194985],"mapped",[34035]],[[194986,194986],"mapped",[34070]],[[194987,194987],"mapped",[160714]],[[194988,194988],"mapped",[34148]],[[194989,194989],"mapped",[159532]],[[194990,194990],"mapped",[17757]],[[194991,194991],"mapped",[17761]],[[194992,194992],"mapped",[159665]],[[194993,194993],"mapped",[159954]],[[194994,194994],"mapped",[17771]],[[194995,194995],"mapped",[34384]],[[194996,194996],"mapped",[34396]],[[194997,194997],"mapped",[34407]],[[194998,194998],"mapped",[34409]],[[194999,194999],"mapped",[34473]],[[195e3,195e3],"mapped",[34440]],[[195001,195001],"mapped",[34574]],[[195002,195002],"mapped",[34530]],[[195003,195003],"mapped",[34681]],[[195004,195004],"mapped",[34600]],[[195005,195005],"mapped",[34667]],[[195006,195006],"mapped",[34694]],[[195007,195007],"disallowed"],[[195008,195008],"mapped",[34785]],[[195009,195009],"mapped",[34817]],[[195010,195010],"mapped",[17913]],[[195011,195011],"mapped",[34912]],[[195012,195012],"mapped",[34915]],[[195013,195013],"mapped",[161383]],[[195014,195014],"mapped",[35031]],[[195015,195015],"mapped",[35038]],[[195016,195016],"mapped",[17973]],[[195017,195017],"mapped",[35066]],[[195018,195018],"mapped",[13499]],[[195019,195019],"mapped",[161966]],[[195020,195020],"mapped",[162150]],[[195021,195021],"mapped",[18110]],[[195022,195022],"mapped",[18119]],[[195023,195023],"mapped",[35488]],[[195024,195024],"mapped",[35565]],[[195025,195025],"mapped",[35722]],[[195026,195026],"mapped",[35925]],[[195027,195027],"mapped",[162984]],[[195028,195028],"mapped",[36011]],[[195029,195029],"mapped",[36033]],[[195030,195030],"mapped",[36123]],[[195031,195031],"mapped",[36215]],[[195032,195032],"mapped",[163631]],[[195033,195033],"mapped",[133124]],[[195034,195034],"mapped",[36299]],[[195035,195035],"mapped",[36284]],[[195036,195036],"mapped",[36336]],[[195037,195037],"mapped",[133342]],[[195038,195038],"mapped",[36564]],[[195039,195039],"mapped",[36664]],[[195040,195040],"mapped",[165330]],[[195041,195041],"mapped",[165357]],[[195042,195042],"mapped",[37012]],[[195043,195043],"mapped",[37105]],[[195044,195044],"mapped",[37137]],[[195045,195045],"mapped",[165678]],[[195046,195046],"mapped",[37147]],[[195047,195047],"mapped",[37432]],[[195048,195048],"mapped",[37591]],[[195049,195049],"mapped",[37592]],[[195050,195050],"mapped",[37500]],[[195051,195051],"mapped",[37881]],[[195052,195052],"mapped",[37909]],[[195053,195053],"mapped",[166906]],[[195054,195054],"mapped",[38283]],[[195055,195055],"mapped",[18837]],[[195056,195056],"mapped",[38327]],[[195057,195057],"mapped",[167287]],[[195058,195058],"mapped",[18918]],[[195059,195059],"mapped",[38595]],[[195060,195060],"mapped",[23986]],[[195061,195061],"mapped",[38691]],[[195062,195062],"mapped",[168261]],[[195063,195063],"mapped",[168474]],[[195064,195064],"mapped",[19054]],[[195065,195065],"mapped",[19062]],[[195066,195066],"mapped",[38880]],[[195067,195067],"mapped",[168970]],[[195068,195068],"mapped",[19122]],[[195069,195069],"mapped",[169110]],[[195070,195071],"mapped",[38923]],[[195072,195072],"mapped",[38953]],[[195073,195073],"mapped",[169398]],[[195074,195074],"mapped",[39138]],[[195075,195075],"mapped",[19251]],[[195076,195076],"mapped",[39209]],[[195077,195077],"mapped",[39335]],[[195078,195078],"mapped",[39362]],[[195079,195079],"mapped",[39422]],[[195080,195080],"mapped",[19406]],[[195081,195081],"mapped",[170800]],[[195082,195082],"mapped",[39698]],[[195083,195083],"mapped",[4e4]],[[195084,195084],"mapped",[40189]],[[195085,195085],"mapped",[19662]],[[195086,195086],"mapped",[19693]],[[195087,195087],"mapped",[40295]],[[195088,195088],"mapped",[172238]],[[195089,195089],"mapped",[19704]],[[195090,195090],"mapped",[172293]],[[195091,195091],"mapped",[172558]],[[195092,195092],"mapped",[172689]],[[195093,195093],"mapped",[40635]],[[195094,195094],"mapped",[19798]],[[195095,195095],"mapped",[40697]],[[195096,195096],"mapped",[40702]],[[195097,195097],"mapped",[40709]],[[195098,195098],"mapped",[40719]],[[195099,195099],"mapped",[40726]],[[195100,195100],"mapped",[40763]],[[195101,195101],"mapped",[173568]],[[195102,196605],"disallowed"],[[196606,196607],"disallowed"],[[196608,262141],"disallowed"],[[262142,262143],"disallowed"],[[262144,327677],"disallowed"],[[327678,327679],"disallowed"],[[327680,393213],"disallowed"],[[393214,393215],"disallowed"],[[393216,458749],"disallowed"],[[458750,458751],"disallowed"],[[458752,524285],"disallowed"],[[524286,524287],"disallowed"],[[524288,589821],"disallowed"],[[589822,589823],"disallowed"],[[589824,655357],"disallowed"],[[655358,655359],"disallowed"],[[655360,720893],"disallowed"],[[720894,720895],"disallowed"],[[720896,786429],"disallowed"],[[786430,786431],"disallowed"],[[786432,851965],"disallowed"],[[851966,851967],"disallowed"],[[851968,917501],"disallowed"],[[917502,917503],"disallowed"],[[917504,917504],"disallowed"],[[917505,917505],"disallowed"],[[917506,917535],"disallowed"],[[917536,917631],"disallowed"],[[917632,917759],"disallowed"],[[917760,917999],"ignored"],[[918e3,983037],"disallowed"],[[983038,983039],"disallowed"],[[983040,1048573],"disallowed"],[[1048574,1048575],"disallowed"],[[1048576,1114109],"disallowed"],[[1114110,1114111],"disallowed"]]});var Gse=x((ICt,qw)=>{"use strict";var jse=require("punycode"),Use=Lse(),Fy={TRANSITIONAL:0,NONTRANSITIONAL:1};function Vse(t){return t.split("\0").map(function(e){return e.normalize("NFC")}).join("\0")}function Hse(t){for(var e=0,r=Use.length-1;e<=r;){var i=Math.floor((e+r)/2),n=Use[i];if(n[0][0]<=t&&n[0][1]>=t)return n;n[0][0]>t?r=i-1:e=i+1}return null}var SHe=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g;function zse(t){return t.replace(SHe,"_").length}function EHe(t,e,r){for(var i=!1,n="",a=zse(t),s=0;s253||s.length===0)&&(n.error=!0);for(var o=0;o63||a.length===0){n.error=!0;break}}return n.error?null:a.join(".")};qw.exports.toUnicode=function(t,e){var r=Dw(t,e,Fy.NONTRANSITIONAL);return{domain:r.string,error:r.error}};qw.exports.PROCESSING_OPTIONS=Fy});var el=x((NCt,Bo)=>{"use strict";var Dy=require("punycode"),Jse=Gse(),Zse={ftp:21,file:null,gopher:70,http:80,https:443,ws:80,wss:443},Tr=Symbol("failure");function Xse(t){return Dy.ucs2.decode(t).length}function Kse(t,e){let r=t[e];return isNaN(r)?void 0:String.fromCodePoint(r)}function Yb(t){return t>=48&&t<=57}function e3(t){return t>=65&&t<=90||t>=97&&t<=122}function PHe(t){return e3(t)||Yb(t)}function Ec(t){return Yb(t)||t>=65&&t<=70||t>=97&&t<=102}function Wse(t){return t==="."||t.toLowerCase()==="%2e"}function OHe(t){return t=t.toLowerCase(),t===".."||t==="%2e."||t===".%2e"||t==="%2e%2e"}function RHe(t,e){return e3(t)&&(e===58||e===124)}function $se(t){return t.length===2&&e3(t.codePointAt(0))&&(t[1]===":"||t[1]==="|")}function MHe(t){return t.length===2&&e3(t.codePointAt(0))&&t[1]===":"}function CHe(t){return t.search(/\u0000|\u0009|\u000A|\u000D|\u0020|#|%|\/|:|\?|@|\[|\\|\]/)!==-1}function IHe(t){return t.search(/\u0000|\u0009|\u000A|\u000D|\u0020|#|\/|:|\?|@|\[|\\|\]/)!==-1}function uN(t){return Zse[t]!==void 0}function Xn(t){return uN(t.scheme)}function NHe(t){return Zse[t]}function Qse(t){let e=t.toString(16).toUpperCase();return e.length===1&&(e="0"+e),"%"+e}function kHe(t){let e=new Buffer(t),r="";for(let i=0;i126}var FHe=new Set([32,34,35,60,62,63,96,123,125]);function Yse(t){return Lw(t)||FHe.has(t)}var DHe=new Set([47,58,59,61,64,91,92,93,94,124]);function dN(t){return Yse(t)||DHe.has(t)}function Rm(t,e){let r=String.fromCodePoint(t);return e(t)?kHe(r):r}function qHe(t){let e=10;return t.length>=2&&t.charAt(0)==="0"&&t.charAt(1).toLowerCase()==="x"?(t=t.substring(2),e=16):t.length>=2&&t.charAt(0)==="0"&&(t=t.substring(1),e=8),t===""?0:(e===10?/[^0-9]/:e===16?/[^0-9A-Fa-f]/:/[^0-7]/).test(t)?Tr:parseInt(t,e)}function LHe(t){let e=t.split(".");if(e[e.length-1]===""&&e.length>1&&e.pop(),e.length>4)return t;let r=[];for(let a of e){if(a==="")return t;let s=qHe(a);if(s===Tr)return t;r.push(s)}for(let a=0;a255)return Tr;if(r[r.length-1]>=Math.pow(256,5-r.length))return Tr;let i=r.pop(),n=0;for(let a of r)i+=a*Math.pow(256,3-n),++n;return i}function UHe(t){let e="",r=t;for(let i=1;i<=4;++i)e=String(r%256)+e,i!==4&&(e="."+e),r=Math.floor(r/256);return e}function jHe(t){let e=[0,0,0,0,0,0,0,0],r=0,i=null,n=0;if(t=Dy.ucs2.decode(t),t[n]===58){if(t[n+1]!==58)return Tr;n+=2,++r,i=r}for(;n6))return Tr;let o=0;for(;t[n]!==void 0;){let c=null;if(o>0)if(t[n]===46&&o<4)++n;else return Tr;if(!Yb(t[n]))return Tr;for(;Yb(t[n]);){let u=parseInt(Kse(t,n));if(c===null)c=u;else{if(c===0)return Tr;c=c*10+u}if(c>255)return Tr;++n}e[r]=e[r]*256+c,++o,(o===2||o===4)&&++r}if(o!==4)return Tr;break}else if(t[n]===58){if(++n,t[n]===void 0)return Tr}else if(t[n]!==void 0)return Tr;e[r]=a,++r}if(i!==null){let a=r-i;for(r=7;r!==0&&a>0;){let s=e[i+a-1];e[i+a-1]=e[r],e[r]=s,--r,--a}}else if(i===null&&r!==8)return Tr;return e}function VHe(t){let e="",i=zHe(t).idx,n=!1;for(let a=0;a<=7;++a)if(!(n&&t[a]===0)){if(n&&(n=!1),i===a){e+=a===0?"::":":",n=!0;continue}e+=t[a].toString(16),a!==7&&(e+=":")}return e}function cN(t,e){if(t[0]==="[")return t[t.length-1]!=="]"?Tr:jHe(t.substring(1,t.length-1));if(!e)return HHe(t);let r=BHe(t),i=Jse.toASCII(r,!1,Jse.PROCESSING_OPTIONS.NONTRANSITIONAL,!1);if(i===null||CHe(i))return Tr;let n=LHe(i);return typeof n=="number"||n===Tr?n:i}function HHe(t){if(IHe(t))return Tr;let e="",r=Dy.ucs2.decode(t);for(let i=0;ir&&(e=i,r=n),i=null,n=0):(i===null&&(i=a),++n);return n>r&&(e=i,r=n),{idx:e,len:r}}function lN(t){return typeof t=="number"?UHe(t):t instanceof Array?"["+VHe(t)+"]":t}function GHe(t){return t.replace(/^[\u0000-\u001F\u0020]+|[\u0000-\u001F\u0020]+$/g,"")}function JHe(t){return t.replace(/\u0009|\u000A|\u000D/g,"")}function eoe(t){let e=t.path;e.length!==0&&(t.scheme==="file"&&e.length===1&&KHe(e[0])||e.pop())}function toe(t){return t.username!==""||t.password!==""}function XHe(t){return t.host===null||t.host===""||t.cannotBeABaseURL||t.scheme==="file"}function KHe(t){return/^[A-Za-z]:$/.test(t)}function un(t,e,r,i,n){if(this.pointer=0,this.input=t,this.base=e||null,this.encodingOverride=r||"utf-8",this.stateOverride=n,this.url=i,this.failure=!1,this.parseError=!1,!this.url){this.url={scheme:"",username:"",password:"",host:null,port:null,path:[],query:null,fragment:null,cannotBeABaseURL:!1};let s=GHe(this.input);s!==this.input&&(this.parseError=!0),this.input=s}let a=JHe(this.input);for(a!==this.input&&(this.parseError=!0),this.input=a,this.state=n||"scheme start",this.buffer="",this.atFlag=!1,this.arrFlag=!1,this.passwordTokenSeenFlag=!1,this.input=Dy.ucs2.decode(this.input);this.pointer<=this.input.length;++this.pointer){let s=this.input[this.pointer],o=isNaN(s)?void 0:String.fromCodePoint(s),c=this["parse "+this.state](s,o);if(c){if(c===Tr){this.failure=!0;break}}else break}}un.prototype["parse scheme start"]=function(e,r){if(e3(e))this.buffer+=r.toLowerCase(),this.state="scheme";else if(!this.stateOverride)this.state="no scheme",--this.pointer;else return this.parseError=!0,Tr;return!0};un.prototype["parse scheme"]=function(e,r){if(PHe(e)||e===43||e===45||e===46)this.buffer+=r.toLowerCase();else if(e===58){if(this.stateOverride&&(Xn(this.url)&&!uN(this.buffer)||!Xn(this.url)&&uN(this.buffer)||(toe(this.url)||this.url.port!==null)&&this.buffer==="file"||this.url.scheme==="file"&&(this.url.host===""||this.url.host===null))||(this.url.scheme=this.buffer,this.buffer="",this.stateOverride))return!1;this.url.scheme==="file"?((this.input[this.pointer+1]!==47||this.input[this.pointer+2]!==47)&&(this.parseError=!0),this.state="file"):Xn(this.url)&&this.base!==null&&this.base.scheme===this.url.scheme?this.state="special relative or authority":Xn(this.url)?this.state="special authority slashes":this.input[this.pointer+1]===47?(this.state="path or authority",++this.pointer):(this.url.cannotBeABaseURL=!0,this.url.path.push(""),this.state="cannot-be-a-base-URL path")}else if(!this.stateOverride)this.buffer="",this.state="no scheme",this.pointer=-1;else return this.parseError=!0,Tr;return!0};un.prototype["parse no scheme"]=function(e){return this.base===null||this.base.cannotBeABaseURL&&e!==35?Tr:(this.base.cannotBeABaseURL&&e===35?(this.url.scheme=this.base.scheme,this.url.path=this.base.path.slice(),this.url.query=this.base.query,this.url.fragment="",this.url.cannotBeABaseURL=!0,this.state="fragment"):this.base.scheme==="file"?(this.state="file",--this.pointer):(this.state="relative",--this.pointer),!0)};un.prototype["parse special relative or authority"]=function(e){return e===47&&this.input[this.pointer+1]===47?(this.state="special authority ignore slashes",++this.pointer):(this.parseError=!0,this.state="relative",--this.pointer),!0};un.prototype["parse path or authority"]=function(e){return e===47?this.state="authority":(this.state="path",--this.pointer),!0};un.prototype["parse relative"]=function(e){return this.url.scheme=this.base.scheme,isNaN(e)?(this.url.username=this.base.username,this.url.password=this.base.password,this.url.host=this.base.host,this.url.port=this.base.port,this.url.path=this.base.path.slice(),this.url.query=this.base.query):e===47?this.state="relative slash":e===63?(this.url.username=this.base.username,this.url.password=this.base.password,this.url.host=this.base.host,this.url.port=this.base.port,this.url.path=this.base.path.slice(),this.url.query="",this.state="query"):e===35?(this.url.username=this.base.username,this.url.password=this.base.password,this.url.host=this.base.host,this.url.port=this.base.port,this.url.path=this.base.path.slice(),this.url.query=this.base.query,this.url.fragment="",this.state="fragment"):Xn(this.url)&&e===92?(this.parseError=!0,this.state="relative slash"):(this.url.username=this.base.username,this.url.password=this.base.password,this.url.host=this.base.host,this.url.port=this.base.port,this.url.path=this.base.path.slice(0,this.base.path.length-1),this.state="path",--this.pointer),!0};un.prototype["parse relative slash"]=function(e){return Xn(this.url)&&(e===47||e===92)?(e===92&&(this.parseError=!0),this.state="special authority ignore slashes"):e===47?this.state="authority":(this.url.username=this.base.username,this.url.password=this.base.password,this.url.host=this.base.host,this.url.port=this.base.port,this.state="path",--this.pointer),!0};un.prototype["parse special authority slashes"]=function(e){return e===47&&this.input[this.pointer+1]===47?(this.state="special authority ignore slashes",++this.pointer):(this.parseError=!0,this.state="special authority ignore slashes",--this.pointer),!0};un.prototype["parse special authority ignore slashes"]=function(e){return e!==47&&e!==92?(this.state="authority",--this.pointer):this.parseError=!0,!0};un.prototype["parse authority"]=function(e,r){if(e===64){this.parseError=!0,this.atFlag&&(this.buffer="%40"+this.buffer),this.atFlag=!0;let i=Xse(this.buffer);for(let n=0;nMath.pow(2,16)-1)return this.parseError=!0,Tr;this.url.port=i===NHe(this.url.scheme)?null:i,this.buffer=""}if(this.stateOverride)return!1;this.state="path start",--this.pointer}else return this.parseError=!0,Tr;return!0};var WHe=new Set([47,92,63,35]);un.prototype["parse file"]=function(e){return this.url.scheme="file",e===47||e===92?(e===92&&(this.parseError=!0),this.state="file slash"):this.base!==null&&this.base.scheme==="file"?isNaN(e)?(this.url.host=this.base.host,this.url.path=this.base.path.slice(),this.url.query=this.base.query):e===63?(this.url.host=this.base.host,this.url.path=this.base.path.slice(),this.url.query="",this.state="query"):e===35?(this.url.host=this.base.host,this.url.path=this.base.path.slice(),this.url.query=this.base.query,this.url.fragment="",this.state="fragment"):(this.input.length-this.pointer-1===0||!RHe(e,this.input[this.pointer+1])||this.input.length-this.pointer-1>=2&&!WHe.has(this.input[this.pointer+2])?(this.url.host=this.base.host,this.url.path=this.base.path.slice(),eoe(this.url)):this.parseError=!0,this.state="path",--this.pointer):(this.state="path",--this.pointer),!0};un.prototype["parse file slash"]=function(e){return e===47||e===92?(e===92&&(this.parseError=!0),this.state="file host"):(this.base!==null&&this.base.scheme==="file"&&(MHe(this.base.path[0])?this.url.path.push(this.base.path[0]):this.url.host=this.base.host),this.state="path",--this.pointer),!0};un.prototype["parse file host"]=function(e,r){if(isNaN(e)||e===47||e===92||e===63||e===35)if(--this.pointer,!this.stateOverride&&$se(this.buffer))this.parseError=!0,this.state="path";else if(this.buffer===""){if(this.url.host="",this.stateOverride)return!1;this.state="path start"}else{let i=cN(this.buffer,Xn(this.url));if(i===Tr)return Tr;if(i==="localhost"&&(i=""),this.url.host=i,this.stateOverride)return!1;this.buffer="",this.state="path start"}else this.buffer+=r;return!0};un.prototype["parse path start"]=function(e){return Xn(this.url)?(e===92&&(this.parseError=!0),this.state="path",e!==47&&e!==92&&--this.pointer):!this.stateOverride&&e===63?(this.url.query="",this.state="query"):!this.stateOverride&&e===35?(this.url.fragment="",this.state="fragment"):e!==void 0&&(this.state="path",e!==47&&--this.pointer),!0};un.prototype["parse path"]=function(e){if(isNaN(e)||e===47||Xn(this.url)&&e===92||!this.stateOverride&&(e===63||e===35)){if(Xn(this.url)&&e===92&&(this.parseError=!0),OHe(this.buffer)?(eoe(this.url),e!==47&&!(Xn(this.url)&&e===92)&&this.url.path.push("")):Wse(this.buffer)&&e!==47&&!(Xn(this.url)&&e===92)?this.url.path.push(""):Wse(this.buffer)||(this.url.scheme==="file"&&this.url.path.length===0&&$se(this.buffer)&&(this.url.host!==""&&this.url.host!==null&&(this.parseError=!0,this.url.host=""),this.buffer=this.buffer[0]+":"),this.url.path.push(this.buffer)),this.buffer="",this.url.scheme==="file"&&(e===void 0||e===63||e===35))for(;this.url.path.length>1&&this.url.path[0]==="";)this.parseError=!0,this.url.path.shift();e===63&&(this.url.query="",this.state="query"),e===35&&(this.url.fragment="",this.state="fragment")}else e===37&&(!Ec(this.input[this.pointer+1])||!Ec(this.input[this.pointer+2]))&&(this.parseError=!0),this.buffer+=Rm(e,Yse);return!0};un.prototype["parse cannot-be-a-base-URL path"]=function(e){return e===63?(this.url.query="",this.state="query"):e===35?(this.url.fragment="",this.state="fragment"):(!isNaN(e)&&e!==37&&(this.parseError=!0),e===37&&(!Ec(this.input[this.pointer+1])||!Ec(this.input[this.pointer+2]))&&(this.parseError=!0),isNaN(e)||(this.url.path[0]=this.url.path[0]+Rm(e,Lw))),!0};un.prototype["parse query"]=function(e,r){if(isNaN(e)||!this.stateOverride&&e===35){(!Xn(this.url)||this.url.scheme==="ws"||this.url.scheme==="wss")&&(this.encodingOverride="utf-8");let i=new Buffer(this.buffer);for(let n=0;n126||i[n]===34||i[n]===35||i[n]===60||i[n]===62?this.url.query+=Qse(i[n]):this.url.query+=String.fromCodePoint(i[n]);this.buffer="",e===35&&(this.url.fragment="",this.state="fragment")}else e===37&&(!Ec(this.input[this.pointer+1])||!Ec(this.input[this.pointer+2]))&&(this.parseError=!0),this.buffer+=r;return!0};un.prototype["parse fragment"]=function(e){return isNaN(e)||(e===0?this.parseError=!0:(e===37&&(!Ec(this.input[this.pointer+1])||!Ec(this.input[this.pointer+2]))&&(this.parseError=!0),this.url.fragment+=Rm(e,Lw))),!0};function ZHe(t,e){let r=t.scheme+":";if(t.host!==null?(r+="//",(t.username!==""||t.password!=="")&&(r+=t.username,t.password!==""&&(r+=":"+t.password),r+="@"),r+=lN(t.host),t.port!==null&&(r+=":"+t.port)):t.host===null&&t.scheme==="file"&&(r+="//"),t.cannotBeABaseURL)r+=t.path[0];else for(let i of t.path)r+="/"+i;return t.query!==null&&(r+="?"+t.query),!e&&t.fragment!==null&&(r+="#"+t.fragment),r}function $He(t){let e=t.scheme+"://";return e+=lN(t.host),t.port!==null&&(e+=":"+t.port),e}Bo.exports.serializeURL=ZHe;Bo.exports.serializeURLOrigin=function(t){switch(t.scheme){case"blob":try{return Bo.exports.serializeURLOrigin(Bo.exports.parseURL(t.path[0]))}catch{return"null"}case"ftp":case"gopher":case"http":case"https":case"ws":case"wss":return $He({scheme:t.scheme,host:t.host,port:t.port});case"file":return"file://";default:return"null"}};Bo.exports.basicURLParse=function(t,e){e===void 0&&(e={});let r=new un(t,e.baseURL,e.encodingOverride,e.url,e.stateOverride);return r.failure?"failure":r.url};Bo.exports.setTheUsername=function(t,e){t.username="";let r=Dy.ucs2.decode(e);for(let i=0;i{"use strict";var cn=el();roe.implementation=class{constructor(e){let r=e[0],i=e[1],n=null;if(i!==void 0&&(n=cn.basicURLParse(i),n==="failure"))throw new TypeError("Invalid base URL");let a=cn.basicURLParse(r,{baseURL:n});if(a==="failure")throw new TypeError("Invalid URL");this._url=a}get href(){return cn.serializeURL(this._url)}set href(e){let r=cn.basicURLParse(e);if(r==="failure")throw new TypeError("Invalid URL");this._url=r}get origin(){return cn.serializeURLOrigin(this._url)}get protocol(){return this._url.scheme+":"}set protocol(e){cn.basicURLParse(e+":",{url:this._url,stateOverride:"scheme start"})}get username(){return this._url.username}set username(e){cn.cannotHaveAUsernamePasswordPort(this._url)||cn.setTheUsername(this._url,e)}get password(){return this._url.password}set password(e){cn.cannotHaveAUsernamePasswordPort(this._url)||cn.setThePassword(this._url,e)}get host(){let e=this._url;return e.host===null?"":e.port===null?cn.serializeHost(e.host):cn.serializeHost(e.host)+":"+cn.serializeInteger(e.port)}set host(e){this._url.cannotBeABaseURL||cn.basicURLParse(e,{url:this._url,stateOverride:"host"})}get hostname(){return this._url.host===null?"":cn.serializeHost(this._url.host)}set hostname(e){this._url.cannotBeABaseURL||cn.basicURLParse(e,{url:this._url,stateOverride:"hostname"})}get port(){return this._url.port===null?"":cn.serializeInteger(this._url.port)}set port(e){cn.cannotHaveAUsernamePasswordPort(this._url)||(e===""?this._url.port=null:cn.basicURLParse(e,{url:this._url,stateOverride:"port"}))}get pathname(){return this._url.cannotBeABaseURL?this._url.path[0]:this._url.path.length===0?"":"/"+this._url.path.join("/")}set pathname(e){this._url.cannotBeABaseURL||(this._url.path=[],cn.basicURLParse(e,{url:this._url,stateOverride:"path start"}))}get search(){return this._url.query===null||this._url.query===""?"":"?"+this._url.query}set search(e){let r=this._url;if(e===""){r.query=null;return}let i=e[0]==="?"?e.substring(1):e;r.query="",cn.basicURLParse(i,{url:r,stateOverride:"query"})}get hash(){return this._url.fragment===null||this._url.fragment===""?"":"#"+this._url.fragment}set hash(e){if(e===""){this._url.fragment=null;return}let r=e[0]==="#"?e.substring(1):e;this._url.fragment="",cn.basicURLParse(r,{url:this._url,stateOverride:"fragment"})}toJSON(){return this.href}}});var soe=x((FCt,t3)=>{"use strict";var Fu=Dse(),aoe=qse(),noe=ioe(),yi=aoe.implSymbol;function ma(t){if(!this||this[yi]||!(this instanceof ma))throw new TypeError("Failed to construct 'URL': Please use the 'new' operator, this DOM object constructor cannot be called as a function.");if(arguments.length<1)throw new TypeError("Failed to construct 'URL': 1 argument required, but only "+arguments.length+" present.");let e=[];for(let r=0;r{"use strict";tl.URL=soe().interface;tl.serializeURL=el().serializeURL;tl.serializeURLOrigin=el().serializeURLOrigin;tl.basicURLParse=el().basicURLParse;tl.setTheUsername=el().setTheUsername;tl.setThePassword=el().setThePassword;tl.serializeHost=el().serializeHost;tl.serializeInteger=el().serializeInteger;tl.parseURL=el().parseURL});var boe=x((il,voe)=>{"use strict";Object.defineProperty(il,"__esModule",{value:!0});function Uy(t){return t&&typeof t=="object"&&"default"in t?t.default:t}var Tc=Uy(require("stream")),loe=Uy(require("http")),jw=Uy(require("url")),foe=Uy(ooe()),QHe=Uy(require("https")),Mm=Uy(require("zlib")),YHe=Tc.Readable,If=Symbol("buffer"),fN=Symbol("type"),lh=class{constructor(){this[fN]="";let e=arguments[0],r=arguments[1],i=[],n=0;if(e){let s=e,o=Number(s.length);for(let c=0;c1&&arguments[1]!==void 0?arguments[1]:{},i=r.size;let n=i===void 0?0:i;var a=r.timeout;let s=a===void 0?0:a;t==null?t=null:poe(t)?t=Buffer.from(t.toString()):n3(t)||Buffer.isBuffer(t)||(Object.prototype.toString.call(t)==="[object ArrayBuffer]"?t=Buffer.from(t):ArrayBuffer.isView(t)?t=Buffer.from(t.buffer,t.byteOffset,t.byteLength):t instanceof Tc||(t=Buffer.from(String(t)))),this[kf]={body:t,disturbed:!1,error:null},this.size=n,this.timeout=s,t instanceof Tc&&t.on("error",function(o){let c=o.name==="AbortError"?o:new ja(`Invalid response body while trying to fetch ${e.url}: ${o.message}`,"system",o);e[kf].error=c})}ga.prototype={get body(){return this[kf].body},get bodyUsed(){return this[kf].disturbed},arrayBuffer(){return qy.call(this).then(function(t){return t.buffer.slice(t.byteOffset,t.byteOffset+t.byteLength)})},blob(){let t=this.headers&&this.headers.get("content-type")||"";return qy.call(this).then(function(e){return Object.assign(new lh([],{type:t.toLowerCase()}),{[If]:e})})},json(){var t=this;return qy.call(this).then(function(e){try{return JSON.parse(e.toString())}catch(r){return ga.Promise.reject(new ja(`invalid json response body at ${t.url} reason: ${r.message}`,"invalid-json"))}})},text(){return qy.call(this).then(function(t){return t.toString()})},buffer(){return qy.call(this)},textConverted(){var t=this;return qy.call(this).then(function(e){return eze(e,t.headers)})}};Object.defineProperties(ga.prototype,{body:{enumerable:!0},bodyUsed:{enumerable:!0},arrayBuffer:{enumerable:!0},blob:{enumerable:!0},json:{enumerable:!0},text:{enumerable:!0}});ga.mixIn=function(t){for(let e of Object.getOwnPropertyNames(ga.prototype))if(!(e in t)){let r=Object.getOwnPropertyDescriptor(ga.prototype,e);Object.defineProperty(t,e,r)}};function qy(){var t=this;if(this[kf].disturbed)return ga.Promise.reject(new TypeError(`body used already for: ${this.url}`));if(this[kf].disturbed=!0,this[kf].error)return ga.Promise.reject(this[kf].error);let e=this.body;if(e===null)return ga.Promise.resolve(Buffer.alloc(0));if(n3(e)&&(e=e.stream()),Buffer.isBuffer(e))return ga.Promise.resolve(e);if(!(e instanceof Tc))return ga.Promise.resolve(Buffer.alloc(0));let r=[],i=0,n=!1;return new ga.Promise(function(a,s){let o;t.timeout&&(o=setTimeout(function(){n=!0,s(new ja(`Response timeout while trying to fetch ${t.url} (over ${t.timeout}ms)`,"body-timeout"))},t.timeout)),e.on("error",function(c){c.name==="AbortError"?(n=!0,s(c)):s(new ja(`Invalid response body while trying to fetch ${t.url}: ${c.message}`,"system",c))}),e.on("data",function(c){if(!(n||c===null)){if(t.size&&i+c.length>t.size){n=!0,s(new ja(`content size at ${t.url} over limit: ${t.size}`,"max-size"));return}i+=c.length,r.push(c)}}),e.on("end",function(){if(!n){clearTimeout(o);try{a(Buffer.concat(r,i))}catch(c){s(new ja(`Could not create Buffer from response body for ${t.url}: ${c.message}`,"system",c))}}})})}function eze(t,e){if(typeof mN!="function")throw new Error("The package `encoding` must be installed to use the textConverted() function");let r=e.get("content-type"),i="utf-8",n,a;return r&&(n=/charset=([^;]*)/i.exec(r)),a=t.slice(0,1024).toString(),!n&&a&&(n=/0&&arguments[0]!==void 0?arguments[0]:void 0;if(this[En]=Object.create(null),e instanceof eo){let r=e.raw(),i=Object.keys(r);for(let n of i)for(let a of r[n])this.append(n,a);return}if(e!=null)if(typeof e=="object"){let r=e[Symbol.iterator];if(r!=null){if(typeof r!="function")throw new TypeError("Header pairs must be iterable");let i=[];for(let n of e){if(typeof n!="object"||typeof n[Symbol.iterator]!="function")throw new TypeError("Each header pair must be iterable");i.push(Array.from(n))}for(let n of i){if(n.length!==2)throw new TypeError("Each header pair must be a name/value tuple");this.append(n[0],n[1])}}else for(let i of Object.keys(e)){let n=e[i];this.append(i,n)}}else throw new TypeError("Provided initializer must be an object")}get(e){e=`${e}`,r3(e);let r=Ly(this[En],e);return r===void 0?null:this[En][r].join(", ")}forEach(e){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:void 0,i=yN(this),n=0;for(;n1&&arguments[1]!==void 0?arguments[1]:"key+value";return Object.keys(t[En]).sort().map(e==="key"?function(i){return i.toLowerCase()}:e==="value"?function(i){return t[En][i].join(", ")}:function(i){return[i.toLowerCase(),t[En][i].join(", ")]})}var vN=Symbol("internal");function pN(t,e){let r=Object.create(_N);return r[vN]={target:t,kind:e,index:0},r}var _N=Object.setPrototypeOf({next(){if(!this||Object.getPrototypeOf(this)!==_N)throw new TypeError("Value of `this` is not a HeadersIterator");var t=this[vN];let e=t.target,r=t.kind,i=t.index,n=yN(e,r),a=n.length;return i>=a?{value:void 0,done:!0}:(this[vN].index=i+1,{value:n[i],done:!1})}},Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]())));Object.defineProperty(_N,Symbol.toStringTag,{value:"HeadersIterator",writable:!1,enumerable:!1,configurable:!0});function rze(t){let e=Object.assign({__proto__:null},t[En]),r=Ly(t[En],"Host");return r!==void 0&&(e[r]=e[r][0]),e}function ize(t){let e=new eo;for(let r of Object.keys(t))if(!yoe.test(r))if(Array.isArray(t[r]))for(let i of t[r])gN.test(i)||(e[En][r]===void 0?e[En][r]=[i]:e[En][r].push(i));else gN.test(t[r])||(e[En][r]=[t[r]]);return e}var ch=Symbol("Response internals"),nze=loe.STATUS_CODES,Fo=class{constructor(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:null,r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};ga.call(this,e,r);let i=r.status||200,n=new eo(r.headers);if(e!=null&&!n.has("Content-Type")){let a=moe(e);a&&n.append("Content-Type",a)}this[ch]={url:r.url,status:i,statusText:r.statusText||nze[i],headers:n,counter:r.counter}}get url(){return this[ch].url||""}get status(){return this[ch].status}get ok(){return this[ch].status>=200&&this[ch].status<300}get redirected(){return this[ch].counter>0}get statusText(){return this[ch].statusText}get headers(){return this[ch].headers}clone(){return new Fo(hoe(this),{url:this.url,status:this.status,statusText:this.statusText,headers:this.headers,ok:this.ok,redirected:this.redirected})}};ga.mixIn(Fo.prototype);Object.defineProperties(Fo.prototype,{url:{enumerable:!0},status:{enumerable:!0},ok:{enumerable:!0},redirected:{enumerable:!0},statusText:{enumerable:!0},headers:{enumerable:!0},clone:{enumerable:!0}});Object.defineProperty(Fo.prototype,Symbol.toStringTag,{value:"Response",writable:!1,enumerable:!1,configurable:!0});var Nf=Symbol("Request internals"),aze=jw.URL||foe.URL,sze=jw.parse,oze=jw.format;function hN(t){return/^[a-zA-Z][a-zA-Z\d+\-.]*:/.exec(t)&&(t=new aze(t).toString()),sze(t)}var uze="destroy"in Tc.Readable.prototype;function Uw(t){return typeof t=="object"&&typeof t[Nf]=="object"}function cze(t){let e=t&&typeof t=="object"&&Object.getPrototypeOf(t);return!!(e&&e.constructor.name==="AbortSignal")}var rl=class{constructor(e){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},i;Uw(e)?i=hN(e.url):(e&&e.href?i=hN(e.href):i=hN(`${e}`),e={});let n=r.method||e.method||"GET";if(n=n.toUpperCase(),(r.body!=null||Uw(e)&&e.body!==null)&&(n==="GET"||n==="HEAD"))throw new TypeError("Request with GET/HEAD method cannot have body");let a=r.body!=null?r.body:Uw(e)&&e.body!==null?hoe(e):null;ga.call(this,a,{timeout:r.timeout||e.timeout||0,size:r.size||e.size||0});let s=new eo(r.headers||e.headers||{});if(a!=null&&!s.has("Content-Type")){let c=moe(a);c&&s.append("Content-Type",c)}let o=Uw(e)?e.signal:null;if("signal"in r&&(o=r.signal),o!=null&&!cze(o))throw new TypeError("Expected signal to be an instanceof AbortSignal");this[Nf]={method:n,redirect:r.redirect||e.redirect||"follow",headers:s,parsedURL:i,signal:o},this.follow=r.follow!==void 0?r.follow:e.follow!==void 0?e.follow:20,this.compress=r.compress!==void 0?r.compress:e.compress!==void 0?e.compress:!0,this.counter=r.counter||e.counter||0,this.agent=r.agent||e.agent}get method(){return this[Nf].method}get url(){return oze(this[Nf].parsedURL)}get headers(){return this[Nf].headers}get redirect(){return this[Nf].redirect}get signal(){return this[Nf].signal}clone(){return new rl(this)}};ga.mixIn(rl.prototype);Object.defineProperty(rl.prototype,Symbol.toStringTag,{value:"Request",writable:!1,enumerable:!1,configurable:!0});Object.defineProperties(rl.prototype,{method:{enumerable:!0},url:{enumerable:!0},headers:{enumerable:!0},redirect:{enumerable:!0},clone:{enumerable:!0},signal:{enumerable:!0}});function dze(t){let e=t[Nf].parsedURL,r=new eo(t[Nf].headers);if(r.has("Accept")||r.set("Accept","*/*"),!e.protocol||!e.hostname)throw new TypeError("Only absolute URLs are supported");if(!/^https?:$/.test(e.protocol))throw new TypeError("Only HTTP(S) protocols are supported");if(t.signal&&t.body instanceof Tc.Readable&&!uze)throw new Error("Cancellation of streamed requests with AbortSignal is not supported in node < 8");let i=null;if(t.body==null&&/^(POST|PUT)$/i.test(t.method)&&(i="0"),t.body!=null){let a=goe(t);typeof a=="number"&&(i=String(a))}i&&r.set("Content-Length",i),r.has("User-Agent")||r.set("User-Agent","node-fetch/1.0 (+https://github.com/bitinn/node-fetch)"),t.compress&&!r.has("Accept-Encoding")&&r.set("Accept-Encoding","gzip,deflate");let n=t.agent;return typeof n=="function"&&(n=n(e)),!r.has("Connection")&&!n&&r.set("Connection","close"),Object.assign({},e,{method:t.method,headers:rze(r),agent:n})}function i3(t){Error.call(this,t),this.type="aborted",this.message=t,Error.captureStackTrace(this,this.constructor)}i3.prototype=Object.create(Error.prototype);i3.prototype.constructor=i3;i3.prototype.name="AbortError";var bN=jw.URL||foe.URL,doe=Tc.PassThrough,lze=function(e,r){let i=new bN(r).hostname,n=new bN(e).hostname;return i===n||i[i.length-n.length-1]==="."&&i.endsWith(n)};function dh(t,e){if(!dh.Promise)throw new Error("native promise missing, set fetch.Promise to your favorite alternative");return ga.Promise=dh.Promise,new dh.Promise(function(r,i){let n=new rl(t,e),a=dze(n),s=(a.protocol==="https:"?QHe:loe).request,o=n.signal,c=null,u=function(){let I=new i3("The user aborted a request.");i(I),n.body&&n.body instanceof Tc.Readable&&n.body.destroy(I),!(!c||!c.body)&&c.body.emit("error",I)};if(o&&o.aborted){u();return}let f=function(){u(),b()},d=s(a),p;o&&o.addEventListener("abort",f);function b(){d.abort(),o&&o.removeEventListener("abort",f),clearTimeout(p)}n.timeout&&d.once("socket",function(T){p=setTimeout(function(){i(new ja(`network timeout at: ${n.url}`,"request-timeout")),b()},n.timeout)}),d.on("error",function(T){i(new ja(`request to ${n.url} failed, reason: ${T.message}`,"system",T)),b()}),d.on("response",function(T){clearTimeout(p);let I=ize(T.headers);if(dh.isRedirect(T.statusCode)){let ge=I.get("Location"),be=null;try{be=ge===null?null:new bN(ge,n.url).toString()}catch{if(n.redirect!=="manual"){i(new ja(`uri requested responds with an invalid redirect URL: ${ge}`,"invalid-redirect")),b();return}}switch(n.redirect){case"error":i(new ja(`uri requested responds with a redirect, redirect mode is set to error: ${n.url}`,"no-redirect")),b();return;case"manual":if(be!==null)try{I.set("Location",be)}catch(me){i(me)}break;case"follow":if(be===null)break;if(n.counter>=n.follow){i(new ja(`maximum redirect reached at: ${n.url}`,"max-redirect")),b();return}let ce={headers:new eo(n.headers),follow:n.follow,counter:n.counter+1,agent:n.agent,compress:n.compress,method:n.method,body:n.body,signal:n.signal,timeout:n.timeout,size:n.size};if(!lze(n.url,be))for(let me of["authorization","www-authenticate","cookie","cookie2"])ce.headers.delete(me);if(T.statusCode!==303&&n.body&&goe(n)===null){i(new ja("Cannot follow redirect with body being a readable stream","unsupported-redirect")),b();return}(T.statusCode===303||(T.statusCode===301||T.statusCode===302)&&n.method==="POST")&&(ce.method="GET",ce.body=void 0,ce.headers.delete("content-length")),r(dh(new rl(be,ce))),b();return}}T.once("end",function(){o&&o.removeEventListener("abort",f)});let L=T.pipe(new doe),U={url:n.url,status:T.statusCode,statusText:T.statusMessage,headers:I,size:n.size,timeout:n.timeout,counter:n.counter},re=I.get("Content-Encoding");if(!n.compress||n.method==="HEAD"||re===null||T.statusCode===204||T.statusCode===304){c=new Fo(L,U),r(c);return}let oe={flush:Mm.Z_SYNC_FLUSH,finishFlush:Mm.Z_SYNC_FLUSH};if(re=="gzip"||re=="x-gzip"){L=L.pipe(Mm.createGunzip(oe)),c=new Fo(L,U),r(c);return}if(re=="deflate"||re=="x-deflate"){T.pipe(new doe).once("data",function(be){(be[0]&15)===8?L=L.pipe(Mm.createInflate()):L=L.pipe(Mm.createInflateRaw()),c=new Fo(L,U),r(c)});return}if(re=="br"&&typeof Mm.createBrotliDecompress=="function"){L=L.pipe(Mm.createBrotliDecompress()),c=new Fo(L,U),r(c);return}c=new Fo(L,U),r(c)}),tze(d,n)})}dh.isRedirect=function(t){return t===301||t===302||t===303||t===307||t===308};dh.Promise=global.Promise;voe.exports=il=dh;Object.defineProperty(il,"__esModule",{value:!0});il.default=il;il.Headers=eo;il.Request=rl;il.Response=Fo;il.FetchError=ja});var Hw=x((Cm,_oe)=>{var a3=boe(),fze=a3.default||a3,Vw=function(t,e){return/^\/\//.test(t)&&(t="https:"+t),fze.call(this,t,e)};Vw.ponyfill=!0;_oe.exports=Cm=Vw;Cm.fetch=Vw;Cm.Headers=a3.Headers;Cm.Request=a3.Request;Cm.Response=a3.Response;Cm.default=Vw});var woe=x(zw=>{"use strict";Object.defineProperty(zw,"__esModule",{value:!0});zw.httpRequest=void 0;var pze=mr(),hze=pze.__importDefault(Hw()),mze=async(t,e="text")=>{let r=await(0,hze.default)(t,{credentials:"same-origin"});if(r.ok){if(e==="json"){let i=await r.text();return JSON.parse(i)}return e==="binary"?r.arrayBuffer():r.text()}throw new Error(`httpRequest error: ${t} ${r.statusText}`)};zw.httpRequest=mze});var xoe=x((LCt,gze)=>{gze.exports={bitcoin:[{address_type:0,address_type_p2sh:5,bech32_prefix:"bc",blockchain_link:{type:"blockbook",url:["https://btc1.trezor.io","https://btc2.trezor.io","https://btc3.trezor.io","https://btc4.trezor.io","https://btc5.trezor.io"]},blocktime_seconds:600,cashaddr_prefix:null,coin_label:"Bitcoin",coin_name:"Bitcoin",coin_shortcut:"BTC",curve_name:"secp256k1",decimals:8,decred:!1,default_fee_b:{Economy:70,High:200,Low:10,Normal:140},dust_limit:546,extra_data:!1,force_bip143:!1,fork_id:null,hash_genesis_block:"000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f",max_address_length:34,maxfee_kb:2e6,min_address_length:27,minfee_kb:1e3,name:"Bitcoin",overwintered:!1,segwit:!0,shortcut:"BTC",signed_message_header:`Bitcoin Signed Message: +`,slip44:0,support:{connect:!0,suite:!0,trezor1:"1.5.2",trezor2:"2.0.5"},taproot:!0,timestamp:!1,xprv_magic:76066276,xpub_magic:76067358,xpub_magic_multisig_segwit_native:44728019,xpub_magic_multisig_segwit_p2sh:43365439,xpub_magic_segwit_native:78792518,xpub_magic_segwit_p2sh:77429938},{address_type:111,address_type_p2sh:196,bech32_prefix:"bcrt",blockchain_link:null,blocktime_seconds:600,cashaddr_prefix:null,coin_label:"Regtest",coin_name:"Regtest",coin_shortcut:"REGTEST",curve_name:"secp256k1",decimals:8,decred:!1,default_fee_b:{Normal:10},dust_limit:546,extra_data:!1,force_bip143:!1,fork_id:null,hash_genesis_block:"0f9188f13cb7b2c71f2a335e3a4fc328bf5beb436012afca590b1a11466e2206",max_address_length:34,maxfee_kb:1e7,min_address_length:27,minfee_kb:1e3,name:"Regtest",overwintered:!1,segwit:!0,shortcut:"REGTEST",signed_message_header:`Bitcoin Signed Message: +`,slip44:1,support:{connect:!0,suite:!0,trezor1:"1.8.2",trezor2:"2.1.1"},taproot:!0,timestamp:!1,xprv_magic:70615956,xpub_magic:70617039,xpub_magic_multisig_segwit_native:39277699,xpub_magic_multisig_segwit_p2sh:37915119,xpub_magic_segwit_native:73342198,xpub_magic_segwit_p2sh:71979618},{address_type:111,address_type_p2sh:196,bech32_prefix:"tb",blockchain_link:{type:"blockbook",url:["https://tbtc1.trezor.io","https://tbtc2.trezor.io"]},blocktime_seconds:600,cashaddr_prefix:null,coin_label:"Testnet",coin_name:"Testnet",coin_shortcut:"TEST",curve_name:"secp256k1",decimals:8,decred:!1,default_fee_b:{Normal:10},dust_limit:546,extra_data:!1,force_bip143:!1,fork_id:null,hash_genesis_block:"000000000933ea01ad0ee984209779baaec3ced90fa3f408719526f8d77f4943",max_address_length:34,maxfee_kb:1e7,min_address_length:27,minfee_kb:1e3,name:"Testnet",overwintered:!1,segwit:!0,shortcut:"TEST",signed_message_header:`Bitcoin Signed Message: +`,slip44:1,support:{connect:!0,suite:!0,trezor1:"1.5.2",trezor2:"2.0.5"},taproot:!0,timestamp:!1,xprv_magic:70615956,xpub_magic:70617039,xpub_magic_multisig_segwit_native:39277699,xpub_magic_multisig_segwit_p2sh:37915119,xpub_magic_segwit_native:73342198,xpub_magic_segwit_p2sh:71979618},{address_type:53,address_type_p2sh:55,bech32_prefix:"acm",blockchain_link:null,blocktime_seconds:150,cashaddr_prefix:null,coin_label:"Actinium",coin_name:"Actinium",coin_shortcut:"ACM",curve_name:"secp256k1",decimals:8,decred:!1,default_fee_b:{Normal:1e3},dust_limit:546,extra_data:!1,force_bip143:!1,fork_id:null,hash_genesis_block:"28d77872e23714562f49a1be792c276623c1bbe3fdcf21b6035cfde78b00b824",max_address_length:34,maxfee_kb:32e10,min_address_length:27,minfee_kb:1e5,name:"Actinium",overwintered:!1,segwit:!0,shortcut:"ACM",signed_message_header:`Actinium Signed Message: +`,slip44:228,support:{connect:!0,suite:!1,trezor1:"1.7.2",trezor2:"2.0.10"},taproot:!1,timestamp:!1,xprv_magic:76066276,xpub_magic:76067358,xpub_magic_multisig_segwit_native:76067358,xpub_magic_multisig_segwit_p2sh:76067358,xpub_magic_segwit_native:78792518,xpub_magic_segwit_p2sh:77429938},{address_type:55,address_type_p2sh:16,bech32_prefix:null,blockchain_link:null,blocktime_seconds:150,cashaddr_prefix:null,coin_label:"Axe",coin_name:"Axe",coin_shortcut:"AXE",curve_name:"secp256k1",decimals:8,decred:!1,default_fee_b:{Normal:10},dust_limit:5460,extra_data:!1,force_bip143:!1,fork_id:null,hash_genesis_block:"00000c33631ca6f2f61368991ce2dc03306b5bb50bf7cede5cfbba6db38e52e6",max_address_length:34,maxfee_kb:21e9,min_address_length:27,minfee_kb:1e3,name:"Axe",overwintered:!1,segwit:!1,shortcut:"AXE",signed_message_header:`DarkCoin Signed Message: +`,slip44:4242,support:{connect:!0,suite:!1,trezor1:"1.7.3",trezor2:"2.0.11"},taproot:!1,timestamp:!1,xprv_magic:50221816,xpub_magic:50221772,xpub_magic_multisig_segwit_native:null,xpub_magic_multisig_segwit_p2sh:null,xpub_magic_segwit_native:null,xpub_magic_segwit_p2sh:null},{address_type:0,address_type_p2sh:5,bech32_prefix:null,blockchain_link:{type:"blockbook",url:["https://bch1.trezor.io","https://bch2.trezor.io","https://bch3.trezor.io","https://bch4.trezor.io","https://bch5.trezor.io"]},blocktime_seconds:600,cashaddr_prefix:"bitcoincash",coin_label:"Bitcoin Cash",coin_name:"Bcash",coin_shortcut:"BCH",curve_name:"secp256k1",decimals:8,decred:!1,default_fee_b:{Economy:1,High:100,Low:1,Normal:1},dust_limit:546,extra_data:!1,force_bip143:!0,fork_id:0,hash_genesis_block:"000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f",max_address_length:34,maxfee_kb:14e6,min_address_length:27,minfee_kb:1e3,name:"Bitcoin Cash",overwintered:!1,segwit:!1,shortcut:"BCH",signed_message_header:`Bitcoin Signed Message: +`,slip44:145,support:{connect:!0,suite:!0,trezor1:"1.6.2",trezor2:"2.0.7"},taproot:!1,timestamp:!1,xprv_magic:76066276,xpub_magic:76067358,xpub_magic_multisig_segwit_native:null,xpub_magic_multisig_segwit_p2sh:null,xpub_magic_segwit_native:null,xpub_magic_segwit_p2sh:null},{address_type:111,address_type_p2sh:196,bech32_prefix:null,blockchain_link:null,blocktime_seconds:600,cashaddr_prefix:"bchtest",coin_label:"Bitcoin Cash Testnet",coin_name:"Bcash Testnet",coin_shortcut:"TBCH",curve_name:"secp256k1",decimals:8,decred:!1,default_fee_b:{Normal:10},dust_limit:546,extra_data:!1,force_bip143:!0,fork_id:0,hash_genesis_block:"000000000933ea01ad0ee984209779baaec3ced90fa3f408719526f8d77f4943",max_address_length:34,maxfee_kb:1e7,min_address_length:27,minfee_kb:1e3,name:"Bitcoin Cash Testnet",overwintered:!1,segwit:!1,shortcut:"TBCH",signed_message_header:`Bitcoin Signed Message: +`,slip44:1,support:{connect:!0,suite:!1,trezor1:"1.6.2",trezor2:"2.0.7"},taproot:!1,timestamp:!1,xprv_magic:70615956,xpub_magic:70617039,xpub_magic_multisig_segwit_native:null,xpub_magic_multisig_segwit_p2sh:null,xpub_magic_segwit_native:null,xpub_magic_segwit_p2sh:null},{address_type:38,address_type_p2sh:23,bech32_prefix:"btg",blockchain_link:{type:"blockbook",url:["https://btg1.trezor.io","https://btg2.trezor.io","https://btg3.trezor.io","https://btg4.trezor.io","https://btg5.trezor.io"]},blocktime_seconds:600,cashaddr_prefix:null,coin_label:"Bitcoin Gold",coin_name:"Bgold",coin_shortcut:"BTG",curve_name:"secp256k1",decimals:8,decred:!1,default_fee_b:{Economy:70,High:200,Low:10,Normal:140},dust_limit:546,extra_data:!1,force_bip143:!0,fork_id:79,hash_genesis_block:"000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f",max_address_length:34,maxfee_kb:38e7,min_address_length:27,minfee_kb:1e3,name:"Bitcoin Gold",overwintered:!1,segwit:!0,shortcut:"BTG",signed_message_header:`Bitcoin Gold Signed Message: +`,slip44:156,support:{connect:!0,suite:!0,trezor1:"1.6.2",trezor2:"2.0.7"},taproot:!1,timestamp:!1,xprv_magic:76066276,xpub_magic:76067358,xpub_magic_multisig_segwit_native:76067358,xpub_magic_multisig_segwit_p2sh:76067358,xpub_magic_segwit_native:78792518,xpub_magic_segwit_p2sh:77429938},{address_type:111,address_type_p2sh:196,bech32_prefix:"tbtg",blockchain_link:null,blocktime_seconds:600,cashaddr_prefix:null,coin_label:"Bitcoin Gold Testnet",coin_name:"Bgold Testnet",coin_shortcut:"TBTG",curve_name:"secp256k1",decimals:8,decred:!1,default_fee_b:{Economy:70,High:200,Low:10,Normal:140},dust_limit:546,extra_data:!1,force_bip143:!0,fork_id:79,hash_genesis_block:"00000000e0781ebe24b91eedc293adfea2f557b53ec379e78959de3853e6f9f6",max_address_length:34,maxfee_kb:5e5,min_address_length:27,minfee_kb:1e3,name:"Bitcoin Gold Testnet",overwintered:!1,segwit:!0,shortcut:"TBTG",signed_message_header:`Bitcoin Gold Signed Message: +`,slip44:1,support:{connect:!0,suite:!1,trezor1:"1.7.1",trezor2:"2.0.8"},taproot:!1,timestamp:!1,xprv_magic:70615956,xpub_magic:70617039,xpub_magic_multisig_segwit_native:70617039,xpub_magic_multisig_segwit_p2sh:70617039,xpub_magic_segwit_native:73342198,xpub_magic_segwit_p2sh:71979618},{address_type:4901,address_type_p2sh:5039,bech32_prefix:null,blockchain_link:null,blocktime_seconds:150,cashaddr_prefix:null,coin_label:"Bitcoin Private",coin_name:"Bprivate",coin_shortcut:"BTCP",curve_name:"secp256k1",decimals:8,decred:!1,default_fee_b:{Normal:10},dust_limit:546,extra_data:!1,force_bip143:!1,fork_id:42,hash_genesis_block:"0007104ccda289427919efc39dc9e4d499804b7bebc22df55f8b834301260602",max_address_length:95,maxfee_kb:32e9,min_address_length:35,minfee_kb:1e3,name:"Bitcoin Private",overwintered:!1,segwit:!1,shortcut:"BTCP",signed_message_header:`BitcoinPrivate Signed Message: +`,slip44:183,support:{connect:!0,suite:!1,trezor1:"1.6.2",trezor2:"2.0.7"},taproot:!1,timestamp:!1,xprv_magic:76066276,xpub_magic:76067358,xpub_magic_multisig_segwit_native:null,xpub_magic_multisig_segwit_p2sh:null,xpub_magic_segwit_native:null,xpub_magic_segwit_p2sh:null},{address_type:3,address_type_p2sh:125,bech32_prefix:"btx",blockchain_link:null,blocktime_seconds:150,cashaddr_prefix:null,coin_label:"Bitcore",coin_name:"Bitcore",coin_shortcut:"BTX",curve_name:"secp256k1",decimals:8,decred:!1,default_fee_b:{Low:10},dust_limit:546,extra_data:!1,force_bip143:!1,fork_id:null,hash_genesis_block:"604148281e5c4b7f2487e5d03cd60d8e6f69411d613f6448034508cea52e9574",max_address_length:34,maxfee_kb:14e9,min_address_length:27,minfee_kb:1e3,name:"Bitcore",overwintered:!1,segwit:!0,shortcut:"BTX",signed_message_header:`BitCore Signed Message: +`,slip44:160,support:{connect:!0,suite:!1,trezor1:"1.7.1",trezor2:"2.0.8"},taproot:!1,timestamp:!1,xprv_magic:76066276,xpub_magic:76067358,xpub_magic_multisig_segwit_native:76067358,xpub_magic_multisig_segwit_p2sh:76067358,xpub_magic_segwit_native:78792518,xpub_magic_segwit_p2sh:77429938},{address_type:76,address_type_p2sh:16,bech32_prefix:null,blockchain_link:{type:"blockbook",url:["https://dash1.trezor.io","https://dash2.trezor.io","https://dash3.trezor.io","https://dash4.trezor.io","https://dash5.trezor.io"]},blocktime_seconds:150,cashaddr_prefix:null,coin_label:"Dash",coin_name:"Dash",coin_shortcut:"DASH",curve_name:"secp256k1",decimals:8,decred:!1,default_fee_b:{Normal:10},dust_limit:5460,extra_data:!0,force_bip143:!1,fork_id:null,hash_genesis_block:"00000ffd590b1485b3caadc19b22e6379c733355108f107a430458cdf3407ab6",max_address_length:34,maxfee_kb:45e6,min_address_length:27,minfee_kb:1e3,name:"Dash",overwintered:!1,segwit:!1,shortcut:"DASH",signed_message_header:`DarkCoin Signed Message: +`,slip44:5,support:{connect:!0,suite:!0,trezor1:"1.5.2",trezor2:"2.0.5"},taproot:!1,timestamp:!1,xprv_magic:50221816,xpub_magic:50221772,xpub_magic_multisig_segwit_native:null,xpub_magic_multisig_segwit_p2sh:null,xpub_magic_segwit_native:null,xpub_magic_segwit_p2sh:null},{address_type:140,address_type_p2sh:19,bech32_prefix:null,blockchain_link:null,blocktime_seconds:150,cashaddr_prefix:null,coin_label:"Dash Testnet",coin_name:"Dash Testnet",coin_shortcut:"tDASH",curve_name:"secp256k1",decimals:8,decred:!1,default_fee_b:{Normal:10},dust_limit:5460,extra_data:!0,force_bip143:!1,fork_id:null,hash_genesis_block:"00000bafbc94add76cb75e2ec92894837288a481e5c005f6563d91623bf8bc2c",max_address_length:34,maxfee_kb:1e5,min_address_length:27,minfee_kb:1e4,name:"Dash Testnet",overwintered:!1,segwit:!1,shortcut:"tDASH",signed_message_header:`DarkCoin Signed Message: +`,slip44:1,support:{connect:!0,suite:!1,trezor1:"1.6.2",trezor2:"2.0.8"},taproot:!1,timestamp:!1,xprv_magic:70615956,xpub_magic:70617039,xpub_magic_multisig_segwit_native:null,xpub_magic_multisig_segwit_p2sh:null,xpub_magic_segwit_native:null,xpub_magic_segwit_p2sh:null},{address_type:1855,address_type_p2sh:1818,bech32_prefix:null,blockchain_link:null,blocktime_seconds:300,cashaddr_prefix:null,coin_label:"Decred",coin_name:"Decred",coin_shortcut:"DCR",curve_name:"secp256k1_decred",decimals:8,decred:!0,default_fee_b:{Normal:10},dust_limit:546,extra_data:!1,force_bip143:!1,fork_id:null,hash_genesis_block:"298e5cc3d985bfe7f81dc135f360abe089edd4396b86d2de66b0cef42b21d980",max_address_length:35,maxfee_kb:22e7,min_address_length:35,minfee_kb:1e4,name:"Decred",overwintered:!1,segwit:!1,shortcut:"DCR",signed_message_header:`Decred Signed Message: +`,slip44:42,support:{connect:!0,suite:!1,trezor1:"1.6.2",trezor2:"2.0.8"},taproot:!1,timestamp:!1,xprv_magic:50177256,xpub_magic:50178342,xpub_magic_multisig_segwit_native:null,xpub_magic_multisig_segwit_p2sh:null,xpub_magic_segwit_native:null,xpub_magic_segwit_p2sh:null},{address_type:3873,address_type_p2sh:3836,bech32_prefix:null,blockchain_link:null,blocktime_seconds:120,cashaddr_prefix:null,coin_label:"Decred Testnet",coin_name:"Decred Testnet",coin_shortcut:"TDCR",curve_name:"secp256k1_decred",decimals:8,decred:!0,default_fee_b:{Normal:10},dust_limit:546,extra_data:!1,force_bip143:!1,fork_id:null,hash_genesis_block:"a649dce53918caf422e9c711c858837e08d626ecfcd198969b24f7b634a49bac",max_address_length:35,maxfee_kb:1e7,min_address_length:35,minfee_kb:1e3,name:"Decred Testnet",overwintered:!1,segwit:!1,shortcut:"TDCR",signed_message_header:`Decred Signed Message: +`,slip44:1,support:{connect:!0,suite:!1,trezor1:"1.6.2",trezor2:"2.0.8"},taproot:!1,timestamp:!1,xprv_magic:70615959,xpub_magic:70617041,xpub_magic_multisig_segwit_native:null,xpub_magic_multisig_segwit_p2sh:null,xpub_magic_segwit_native:null,xpub_magic_segwit_p2sh:null},{address_type:30,address_type_p2sh:63,bech32_prefix:"dgb",blockchain_link:{type:"blockbook",url:["https://dgb1.trezor.io","https://dgb2.trezor.io"]},blocktime_seconds:15,cashaddr_prefix:null,coin_label:"DigiByte",coin_name:"DigiByte",coin_shortcut:"DGB",curve_name:"secp256k1",decimals:8,decred:!1,default_fee_b:{Economy:70,High:200,Low:10,Normal:140},dust_limit:546,extra_data:!1,force_bip143:!1,fork_id:null,hash_genesis_block:"7497ea1b465eb39f1c8f507bc877078fe016d6fcb6dfad3a64c98dcc6e1e8496",max_address_length:34,maxfee_kb:13e10,min_address_length:27,minfee_kb:1e3,name:"DigiByte",overwintered:!1,segwit:!0,shortcut:"DGB",signed_message_header:`DigiByte Signed Message: +`,slip44:20,support:{connect:!0,suite:!0,trezor1:"1.6.3",trezor2:"2.0.7"},taproot:!1,timestamp:!1,xprv_magic:76066276,xpub_magic:76067358,xpub_magic_multisig_segwit_native:76067358,xpub_magic_multisig_segwit_p2sh:76067358,xpub_magic_segwit_native:78792518,xpub_magic_segwit_p2sh:77429938},{address_type:30,address_type_p2sh:22,bech32_prefix:null,blockchain_link:{type:"blockbook",url:["https://doge1.trezor.io","https://doge2.trezor.io","https://doge3.trezor.io","https://doge4.trezor.io","https://doge5.trezor.io"]},blocktime_seconds:60,cashaddr_prefix:null,coin_label:"Dogecoin",coin_name:"Dogecoin",coin_shortcut:"DOGE",curve_name:"secp256k1",decimals:8,decred:!1,default_fee_b:{Normal:1e3},dust_limit:999999,extra_data:!1,force_bip143:!1,fork_id:null,hash_genesis_block:"1a91e3dace36e2be3bf030a65679fe821aa1d6ef92e7c9902eb318182c355691",max_address_length:34,maxfee_kb:12e11,min_address_length:27,minfee_kb:1e5,name:"Dogecoin",overwintered:!1,segwit:!1,shortcut:"DOGE",signed_message_header:`Dogecoin Signed Message: +`,slip44:3,support:{connect:!0,suite:!0,trezor1:"1.5.2",trezor2:"2.0.5"},taproot:!1,timestamp:!1,xprv_magic:49988504,xpub_magic:49990397,xpub_magic_multisig_segwit_native:null,xpub_magic_multisig_segwit_p2sh:null,xpub_magic_segwit_native:null,xpub_magic_segwit_p2sh:null},{address_type:14,address_type_p2sh:5,bech32_prefix:"fc",blockchain_link:null,blocktime_seconds:60,cashaddr_prefix:null,coin_label:"Feathercoin",coin_name:"Feathercoin",coin_shortcut:"FTC",curve_name:"secp256k1",decimals:8,decred:!1,default_fee_b:{Normal:1e3},dust_limit:54600,extra_data:!1,force_bip143:!1,fork_id:null,hash_genesis_block:"12a765e31ffd4059bada1e25190f6e98c99d9714d334efa41a195a7e7e04bfe2",max_address_length:34,maxfee_kb:39e10,min_address_length:27,minfee_kb:1e3,name:"Feathercoin",overwintered:!1,segwit:!0,shortcut:"FTC",signed_message_header:`Feathercoin Signed Message: +`,slip44:8,support:{connect:!0,suite:!1,trezor1:"1.7.1",trezor2:"2.0.8"},taproot:!1,timestamp:!1,xprv_magic:76077806,xpub_magic:76069926,xpub_magic_multisig_segwit_native:76069926,xpub_magic_multisig_segwit_p2sh:76069926,xpub_magic_segwit_native:78792518,xpub_magic_segwit_p2sh:77429938},{address_type:82,address_type_p2sh:7,bech32_prefix:null,blockchain_link:null,blocktime_seconds:600,cashaddr_prefix:null,coin_label:"Firo",coin_name:"Firo",coin_shortcut:"FIRO",curve_name:"secp256k1",decimals:8,decred:!1,default_fee_b:{Economy:10,High:200,Low:1,Normal:100},dust_limit:546,extra_data:!0,force_bip143:!1,fork_id:null,hash_genesis_block:"4381deb85b1b2c9843c222944b616d997516dcbd6a964e1eaf0def0830695233",max_address_length:34,maxfee_kb:64e7,min_address_length:27,minfee_kb:0,name:"Firo",overwintered:!1,segwit:!1,shortcut:"FIRO",signed_message_header:`Zcoin Signed Message: +`,slip44:136,support:{connect:!0,suite:!1,trezor1:"1.6.2",trezor2:"2.0.7"},taproot:!1,timestamp:!1,xprv_magic:76066276,xpub_magic:76067358,xpub_magic_multisig_segwit_native:null,xpub_magic_multisig_segwit_p2sh:null,xpub_magic_segwit_native:null,xpub_magic_segwit_p2sh:null},{address_type:65,address_type_p2sh:178,bech32_prefix:null,blockchain_link:null,blocktime_seconds:600,cashaddr_prefix:null,coin_label:"Firo Testnet",coin_name:"Firo Testnet",coin_shortcut:"tFIRO",curve_name:"secp256k1",decimals:8,decred:!1,default_fee_b:{Economy:10,High:200,Low:1,Normal:100},dust_limit:546,extra_data:!0,force_bip143:!1,fork_id:null,hash_genesis_block:"7ac038c193c2158c428c59f9ae0c02a07115141c6e9dc244ae96132e99b4e642",max_address_length:35,maxfee_kb:1e6,min_address_length:27,minfee_kb:0,name:"Firo Testnet",overwintered:!1,segwit:!1,shortcut:"tFIRO",signed_message_header:`Zcoin Signed Message: +`,slip44:1,support:{connect:!0,suite:!1,trezor1:"1.6.2",trezor2:"2.0.7"},taproot:!1,timestamp:!1,xprv_magic:70615956,xpub_magic:70617039,xpub_magic_multisig_segwit_native:null,xpub_magic_multisig_segwit_p2sh:null,xpub_magic_segwit_native:null,xpub_magic_segwit_p2sh:null},{address_type:35,address_type_p2sh:94,bech32_prefix:"flo",blockchain_link:null,blocktime_seconds:40,cashaddr_prefix:null,coin_label:"Flo",coin_name:"Florincoin",coin_shortcut:"FLO",curve_name:"secp256k1",decimals:8,decred:!1,default_fee_b:{Normal:1e3},dust_limit:546,extra_data:!0,force_bip143:!1,fork_id:null,hash_genesis_block:"09c7781c9df90708e278c35d38ea5c9041d7ecfcdd1c56ba67274b7cff3e1cea",max_address_length:34,maxfee_kb:78e9,min_address_length:27,minfee_kb:1e5,name:"Flo",overwintered:!1,segwit:!0,shortcut:"FLO",signed_message_header:`Florincoin Signed Message: +`,slip44:216,support:{connect:!0,suite:!1,trezor1:"1.7.2",trezor2:"2.0.11"},taproot:!1,timestamp:!1,xprv_magic:15264107,xpub_magic:1526049,xpub_magic_multisig_segwit_native:1526049,xpub_magic_multisig_segwit_p2sh:1526049,xpub_magic_segwit_native:78792518,xpub_magic_segwit_p2sh:28471030},{address_type:36,address_type_p2sh:16,bech32_prefix:"fc",blockchain_link:{type:"blockbook",url:["https://explorer.fujicoin.org"]},blocktime_seconds:60,cashaddr_prefix:null,coin_label:"Fujicoin",coin_name:"Fujicoin",coin_shortcut:"FJC",curve_name:"secp256k1",decimals:8,decred:!1,default_fee_b:{Economy:2e4,High:1e5,Low:1e4,Normal:5e4},dust_limit:546,extra_data:!1,force_bip143:!1,fork_id:null,hash_genesis_block:"adb6d9cfd74075e7f91608add4bd2a2ea636f70856183086842667a1597714a0",max_address_length:34,maxfee_kb:35e12,min_address_length:27,minfee_kb:1e7,name:"Fujicoin",overwintered:!1,segwit:!0,shortcut:"FJC",signed_message_header:`FujiCoin Signed Message: +`,slip44:75,support:{connect:!0,suite:!1,trezor1:"1.6.1",trezor2:"2.0.5"},taproot:!0,timestamp:!1,xprv_magic:76066276,xpub_magic:76067358,xpub_magic_multisig_segwit_native:44728019,xpub_magic_multisig_segwit_p2sh:43365439,xpub_magic_segwit_native:78792518,xpub_magic_segwit_p2sh:77429938},{address_type:60,address_type_p2sh:85,bech32_prefix:null,blockchain_link:null,blocktime_seconds:60,cashaddr_prefix:null,coin_label:"Komodo",coin_name:"Komodo",coin_shortcut:"KMD",curve_name:"secp256k1",decimals:8,decred:!1,default_fee_b:{Normal:10},dust_limit:546,extra_data:!0,force_bip143:!1,fork_id:null,hash_genesis_block:"027e3758c3a65b12aa1046462b486d0a63bfa1beae327897f56c5cfb7daaae71",max_address_length:34,maxfee_kb:48e8,min_address_length:27,minfee_kb:1e3,name:"Komodo",overwintered:!0,segwit:!1,shortcut:"KMD",signed_message_header:`Komodo Signed Message: +`,slip44:141,support:{connect:!0,suite:!1,trezor1:"1.8.0",trezor2:"2.0.11"},taproot:!1,timestamp:!1,xprv_magic:76066276,xpub_magic:76067358,xpub_magic_multisig_segwit_native:null,xpub_magic_multisig_segwit_p2sh:null,xpub_magic_segwit_native:null,xpub_magic_segwit_p2sh:null},{address_type:6198,address_type_p2sh:6203,bech32_prefix:null,blockchain_link:{type:"blockbook",url:["https://blockbook.kotocoin.info"]},blocktime_seconds:60,cashaddr_prefix:null,coin_label:"Koto",coin_name:"Koto",coin_shortcut:"KOTO",curve_name:"secp256k1",decimals:8,decred:!1,default_fee_b:{Normal:10},dust_limit:546,extra_data:!0,force_bip143:!1,fork_id:null,hash_genesis_block:"6d424c350729ae633275d51dc3496e16cd1b1d195c164da00f39c499a2e9959e",max_address_length:95,maxfee_kb:1e6,min_address_length:35,minfee_kb:1e3,name:"Koto",overwintered:!0,segwit:!1,shortcut:"KOTO",signed_message_header:`Koto Signed Message: +`,slip44:510,support:{connect:!0,suite:!1,trezor1:"1.7.1",trezor2:"2.0.8"},taproot:!1,timestamp:!1,xprv_magic:76066276,xpub_magic:76067358,xpub_magic_multisig_segwit_native:null,xpub_magic_multisig_segwit_p2sh:null,xpub_magic_segwit_native:null,xpub_magic_segwit_p2sh:null},{address_type:48,address_type_p2sh:50,bech32_prefix:"ltc",blockchain_link:{type:"blockbook",url:["https://ltc1.trezor.io","https://ltc2.trezor.io","https://ltc3.trezor.io","https://ltc4.trezor.io","https://ltc5.trezor.io"]},blocktime_seconds:150,cashaddr_prefix:null,coin_label:"Litecoin",coin_name:"Litecoin",coin_shortcut:"LTC",curve_name:"secp256k1",decimals:8,decred:!1,default_fee_b:{Normal:1e3},dust_limit:546,extra_data:!1,force_bip143:!1,fork_id:null,hash_genesis_block:"12a765e31ffd4059bada1e25190f6e98c99d9714d334efa41a195a7e7e04bfe2",max_address_length:34,maxfee_kb:67e6,min_address_length:27,minfee_kb:1e3,name:"Litecoin",overwintered:!1,segwit:!0,shortcut:"LTC",signed_message_header:`Litecoin Signed Message: +`,slip44:2,support:{connect:!0,suite:!0,trezor1:"1.5.2",trezor2:"2.0.5"},taproot:!1,timestamp:!1,xprv_magic:27106558,xpub_magic:27108450,xpub_magic_multisig_segwit_native:27108450,xpub_magic_multisig_segwit_p2sh:27108450,xpub_magic_segwit_native:78792518,xpub_magic_segwit_p2sh:28471030},{address_type:111,address_type_p2sh:58,bech32_prefix:"tltc",blockchain_link:null,blocktime_seconds:150,cashaddr_prefix:null,coin_label:"Litecoin Testnet",coin_name:"Litecoin Testnet",coin_shortcut:"tLTC",curve_name:"secp256k1",decimals:8,decred:!1,default_fee_b:{Normal:10},dust_limit:54600,extra_data:!1,force_bip143:!1,fork_id:null,hash_genesis_block:"4966625a4b2851d9fdee139e56211a0d88575f59ed816ff5e6a63deb4e3e29a0",max_address_length:34,maxfee_kb:4e7,min_address_length:27,minfee_kb:1e3,name:"Litecoin Testnet",overwintered:!1,segwit:!0,shortcut:"tLTC",signed_message_header:`Litecoin Signed Message: +`,slip44:1,support:{connect:!0,suite:!1,trezor1:"1.6.2",trezor2:"2.0.7"},taproot:!1,timestamp:!1,xprv_magic:70615956,xpub_magic:70617039,xpub_magic_multisig_segwit_native:70617039,xpub_magic_multisig_segwit_p2sh:70617039,xpub_magic_segwit_native:73342198,xpub_magic_segwit_p2sh:71979618},{address_type:50,address_type_p2sh:55,bech32_prefix:"mona",blockchain_link:{type:"blockbook",url:["https://blockbook.electrum-mona.org"]},blocktime_seconds:90,cashaddr_prefix:null,coin_label:"Monacoin",coin_name:"Monacoin",coin_shortcut:"MONA",curve_name:"secp256k1",decimals:8,decred:!1,default_fee_b:{Normal:1e3},dust_limit:54600,extra_data:!1,force_bip143:!1,fork_id:null,hash_genesis_block:"ff9f1c0116d19de7c9963845e129f9ed1bfc0b376eb54fd7afa42e0d418c8bb6",max_address_length:34,maxfee_kb:21e8,min_address_length:27,minfee_kb:1e5,name:"Monacoin",overwintered:!1,segwit:!0,shortcut:"MONA",signed_message_header:`Monacoin Signed Message: +`,slip44:22,support:{connect:!0,suite:!1,trezor1:"1.6.0",trezor2:"2.0.5"},taproot:!1,timestamp:!1,xprv_magic:76066276,xpub_magic:76067358,xpub_magic_multisig_segwit_native:76067358,xpub_magic_multisig_segwit_p2sh:76067358,xpub_magic_segwit_native:78792518,xpub_magic_segwit_p2sh:77429938},{address_type:16,address_type_p2sh:76,bech32_prefix:null,blockchain_link:{type:"blockbook",url:["https://blockbook.monetaryunit.org"]},blocktime_seconds:40,cashaddr_prefix:null,coin_label:"MonetaryUnit",coin_name:"MonetaryUnit",coin_shortcut:"MUE",curve_name:"secp256k1",decimals:8,decred:!1,default_fee_b:{Normal:10},dust_limit:5460,extra_data:!1,force_bip143:!1,fork_id:null,hash_genesis_block:"0b58ed450b3819ca54ab0054c4d220ca4f887d21c9e55d2a333173adf76d987f",max_address_length:34,maxfee_kb:6e11,min_address_length:27,minfee_kb:1e3,name:"MonetaryUnit",overwintered:!1,segwit:!1,shortcut:"MUE",signed_message_header:`MonetaryUnit Signed Message: +`,slip44:31,support:{connect:!0,suite:!1,trezor1:"1.7.1",trezor2:"2.0.8"},taproot:!1,timestamp:!1,xprv_magic:76066276,xpub_magic:76067358,xpub_magic_multisig_segwit_native:null,xpub_magic_multisig_segwit_p2sh:null,xpub_magic_segwit_native:null,xpub_magic_segwit_p2sh:null},{address_type:52,address_type_p2sh:5,bech32_prefix:null,blockchain_link:{type:"blockbook",url:["https://nmc1.trezor.io","https://nmc2.trezor.io"]},blocktime_seconds:600,cashaddr_prefix:null,coin_label:"Namecoin",coin_name:"Namecoin",coin_shortcut:"NMC",curve_name:"secp256k1",decimals:8,decred:!1,default_fee_b:{Normal:10},dust_limit:2940,extra_data:!1,force_bip143:!1,fork_id:null,hash_genesis_block:"000000000062b72c5e2ceb45fbc8587e807c155b0da735e6483dfba2f0a9c770",max_address_length:34,maxfee_kb:87e8,min_address_length:27,minfee_kb:1e5,name:"Namecoin",overwintered:!1,segwit:!1,shortcut:"NMC",signed_message_header:`Namecoin Signed Message: +`,slip44:7,support:{connect:!0,suite:!0,trezor1:"1.5.2",trezor2:"2.0.5"},taproot:!1,timestamp:!1,xprv_magic:76066276,xpub_magic:76067358,xpub_magic_multisig_segwit_native:null,xpub_magic_multisig_segwit_p2sh:null,xpub_magic_segwit_native:null,xpub_magic_segwit_p2sh:null},{address_type:55,address_type_p2sh:117,bech32_prefix:"pc",blockchain_link:{type:"blockbook",url:["https://blockbook.peercoin.net"]},blocktime_seconds:600,cashaddr_prefix:null,coin_label:"Peercoin",coin_name:"Peercoin",coin_shortcut:"PPC",curve_name:"secp256k1",decimals:6,decred:!1,default_fee_b:{Normal:10},dust_limit:1e4,extra_data:!1,force_bip143:!1,fork_id:null,hash_genesis_block:"0000000032fe677166d54963b62a4677d8957e87c508eaa4fd7eb1c880cd27e3",max_address_length:34,maxfee_kb:13e9,min_address_length:27,minfee_kb:1e4,name:"Peercoin",overwintered:!1,segwit:!0,shortcut:"PPC",signed_message_header:`Peercoin Signed Message: +`,slip44:6,support:{connect:!0,suite:!1,trezor1:"1.8.4",trezor2:"2.1.9"},taproot:!1,timestamp:!0,xprv_magic:76066276,xpub_magic:76067358,xpub_magic_multisig_segwit_native:76067358,xpub_magic_multisig_segwit_p2sh:76067358,xpub_magic_segwit_native:78792518,xpub_magic_segwit_p2sh:77429938},{address_type:111,address_type_p2sh:196,bech32_prefix:"tpc",blockchain_link:{type:"blockbook",url:["https://tblockbook.peercoin.net"]},blocktime_seconds:600,cashaddr_prefix:null,coin_label:"Peercoin Testnet",coin_name:"Peercoin Testnet",coin_shortcut:"tPPC",curve_name:"secp256k1",decimals:6,decred:!1,default_fee_b:{Normal:10},dust_limit:1e4,extra_data:!1,force_bip143:!1,fork_id:null,hash_genesis_block:"00000001f757bb737f6596503e17cd17b0658ce630cc727c0cca81aec47c9f06",max_address_length:34,maxfee_kb:2e6,min_address_length:27,minfee_kb:1e4,name:"Peercoin Testnet",overwintered:!1,segwit:!0,shortcut:"tPPC",signed_message_header:`Peercoin Signed Message: +`,slip44:1,support:{connect:!0,suite:!1,trezor1:"1.8.4",trezor2:"2.1.9"},taproot:!1,timestamp:!0,xprv_magic:70615956,xpub_magic:70617039,xpub_magic_multisig_segwit_native:70617039,xpub_magic_multisig_segwit_p2sh:70617039,xpub_magic_segwit_native:73342198,xpub_magic_segwit_p2sh:71979618},{address_type:23,address_type_p2sh:83,bech32_prefix:null,blockchain_link:null,blocktime_seconds:60,cashaddr_prefix:null,coin_label:"Primecoin",coin_name:"Primecoin",coin_shortcut:"XPM",curve_name:"secp256k1",decimals:8,decred:!1,default_fee_b:{Normal:10},dust_limit:546,extra_data:!1,force_bip143:!1,fork_id:null,hash_genesis_block:"963d17ba4dc753138078a2f56afb3af9674e2546822badff26837db9a0152106",max_address_length:35,maxfee_kb:89e9,min_address_length:26,minfee_kb:1e3,name:"Primecoin",overwintered:!1,segwit:!1,shortcut:"XPM",signed_message_header:`Primecoin Signed Message: +`,slip44:24,support:{connect:!0,suite:!1,trezor1:"1.8.0",trezor2:"2.0.11"},taproot:!1,timestamp:!1,xprv_magic:76066276,xpub_magic:76067358,xpub_magic_multisig_segwit_native:null,xpub_magic_multisig_segwit_p2sh:null,xpub_magic_segwit_native:null,xpub_magic_segwit_p2sh:null},{address_type:60,address_type_p2sh:122,bech32_prefix:null,blockchain_link:{type:"blockbook",url:["https://blockbook.ravencoin.org"]},blocktime_seconds:60,cashaddr_prefix:null,coin_label:"Ravencoin",coin_name:"Ravencoin",coin_shortcut:"RVN",curve_name:"secp256k1",decimals:8,decred:!1,default_fee_b:{Low:10},dust_limit:546,extra_data:!1,force_bip143:!1,fork_id:null,hash_genesis_block:"0000006b444bc2f2ffe627be9d9e7e7a0730000870ef6eb6da46c8eae389df90",max_address_length:34,maxfee_kb:17e10,min_address_length:27,minfee_kb:1e3,name:"Ravencoin",overwintered:!1,segwit:!1,shortcut:"RVN",signed_message_header:`Raven Signed Message: +`,slip44:175,support:{connect:!0,suite:!1,trezor1:"1.7.2",trezor2:"2.0.10"},taproot:!1,timestamp:!1,xprv_magic:76066276,xpub_magic:76067358,xpub_magic_multisig_segwit_native:null,xpub_magic_multisig_segwit_p2sh:null,xpub_magic_segwit_native:null,xpub_magic_segwit_p2sh:null},{address_type:25,address_type_p2sh:105,bech32_prefix:null,blockchain_link:{type:"blockbook",url:["https://blockbook.ritocoin.org"]},blocktime_seconds:60,cashaddr_prefix:null,coin_label:"Ritocoin",coin_name:"Ritocoin",coin_shortcut:"RITO",curve_name:"secp256k1",decimals:8,decred:!1,default_fee_b:{Low:10},dust_limit:546,extra_data:!1,force_bip143:!1,fork_id:null,hash_genesis_block:"00000075e344bdf1c0e433f453764b1830a7aa19b2a5213e707502a22b779c1b",max_address_length:34,maxfee_kb:39e12,min_address_length:27,minfee_kb:1e3,name:"Ritocoin",overwintered:!1,segwit:!1,shortcut:"RITO",signed_message_header:`Rito Signed Message: +`,slip44:19169,support:{connect:!0,suite:!1,trezor1:"1.8.2",trezor2:"2.1.1"},taproot:!1,timestamp:!1,xprv_magic:87326380,xpub_magic:87353290,xpub_magic_multisig_segwit_native:null,xpub_magic_multisig_segwit_p2sh:null,xpub_magic_segwit_native:null,xpub_magic_segwit_p2sh:null},{address_type:76,address_type_p2sh:16,bech32_prefix:"xc",blockchain_link:null,blocktime_seconds:60,cashaddr_prefix:null,coin_label:"Stakenet",coin_name:"Stakenet",coin_shortcut:"XSN",curve_name:"secp256k1",decimals:8,decred:!1,default_fee_b:{Economy:70,High:200,Low:10,Normal:140},dust_limit:1e3,extra_data:!0,force_bip143:!1,fork_id:null,hash_genesis_block:"00000c822abdbb23e28f79a49d29b41429737c6c7e15df40d1b1f1b35907ae34",max_address_length:47,maxfee_kb:11e9,min_address_length:27,minfee_kb:1e3,name:"Stakenet",overwintered:!1,segwit:!0,shortcut:"XSN",signed_message_header:`DarkCoin Signed Message: +`,slip44:199,support:{connect:!0,suite:!1,trezor1:"1.8.0",trezor2:"2.0.11"},taproot:!1,timestamp:!1,xprv_magic:76066276,xpub_magic:76067358,xpub_magic_multisig_segwit_native:76067358,xpub_magic_multisig_segwit_p2sh:76067358,xpub_magic_segwit_native:78792518,xpub_magic_segwit_p2sh:77429938},{address_type:63,address_type_p2sh:5,bech32_prefix:"sys",blockchain_link:{type:"blockbook",url:["https://blockbook.elint.services"]},blocktime_seconds:60,cashaddr_prefix:null,coin_label:"Syscoin",coin_name:"Syscoin",coin_shortcut:"SYS",curve_name:"secp256k1",decimals:8,decred:!1,default_fee_b:{Economy:700,High:2e3,Low:100,Normal:1400},dust_limit:1820,extra_data:!1,force_bip143:!1,fork_id:null,hash_genesis_block:"0000022642db0346b6e01c2a397471f4f12e65d4f4251ec96c1f85367a61a7ab",max_address_length:34,maxfee_kb:42e9,min_address_length:27,minfee_kb:1e4,name:"Syscoin",overwintered:!1,segwit:!0,shortcut:"SYS",signed_message_header:`Syscoin Signed Message: +`,slip44:57,support:{connect:!0,suite:!1,trezor1:"1.8.4",trezor2:"2.1.8"},taproot:!1,timestamp:!1,xprv_magic:76066276,xpub_magic:76067358,xpub_magic_multisig_segwit_native:76067358,xpub_magic_multisig_segwit_p2sh:76067358,xpub_magic_segwit_native:78792518,xpub_magic_segwit_p2sh:77429938},{address_type:130,address_type_p2sh:30,bech32_prefix:null,blockchain_link:{type:"blockbook",url:["https://blockbook.flurbo.xyz","https://blockbook.unobtanium.uno"]},blocktime_seconds:30,cashaddr_prefix:null,coin_label:"Unobtanium",coin_name:"Unobtanium",coin_shortcut:"UNO",curve_name:"secp256k1",decimals:8,decred:!1,default_fee_b:{Economy:50,High:160,Low:10,Normal:100},dust_limit:546,extra_data:!1,force_bip143:!1,fork_id:null,hash_genesis_block:"000004c2fc5fffb810dccc197d603690099a68305232e552d96ccbe8e2c52b75",max_address_length:34,maxfee_kb:53e6,min_address_length:27,minfee_kb:1e3,name:"Unobtanium",overwintered:!1,segwit:!1,shortcut:"UNO",signed_message_header:`Unobtanium Signed Message: +`,slip44:92,support:{connect:!0,suite:!1,trezor1:"1.8.4",trezor2:"2.1.6"},taproot:!1,timestamp:!1,xprv_magic:76066276,xpub_magic:76067358,xpub_magic_multisig_segwit_native:null,xpub_magic_multisig_segwit_p2sh:null,xpub_magic_segwit_native:null,xpub_magic_segwit_p2sh:null},{address_type:30,address_type_p2sh:33,bech32_prefix:null,blockchain_link:null,blocktime_seconds:30,cashaddr_prefix:null,coin_label:"Verge",coin_name:"Verge",coin_shortcut:"XVG",curve_name:"secp256k1",decimals:6,decred:!1,default_fee_b:{Normal:10},dust_limit:1e4,extra_data:!1,force_bip143:!1,fork_id:null,hash_genesis_block:"00000fc63692467faeb20cdb3b53200dc601d75bdfa1001463304cc790d77278",max_address_length:34,maxfee_kb:55e10,min_address_length:27,minfee_kb:1e6,name:"Verge",overwintered:!1,segwit:!1,shortcut:"XVG",signed_message_header:`Name: Dogecoin Dark +`,slip44:77,support:{connect:!0,suite:!1,trezor1:"1.9.3",trezor2:"2.3.3"},taproot:!1,timestamp:!0,xprv_magic:35729707,xpub_magic:36513075,xpub_magic_multisig_segwit_native:null,xpub_magic_multisig_segwit_p2sh:null,xpub_magic_segwit_native:null,xpub_magic_segwit_p2sh:null},{address_type:71,address_type_p2sh:5,bech32_prefix:"vtc",blockchain_link:{type:"blockbook",url:["https://vtc1.trezor.io","https://vtc2.trezor.io","https://vtc3.trezor.io","https://vtc4.trezor.io","https://vtc5.trezor.io"]},blocktime_seconds:150,cashaddr_prefix:null,coin_label:"Vertcoin",coin_name:"Vertcoin",coin_shortcut:"VTC",curve_name:"secp256k1",decimals:8,decred:!1,default_fee_b:{Normal:1e3},dust_limit:54600,extra_data:!1,force_bip143:!1,fork_id:null,hash_genesis_block:"4d96a915f49d40b1e5c2844d1ee2dccb90013a990ccea12c492d22110489f0c4",max_address_length:34,maxfee_kb:13e9,min_address_length:27,minfee_kb:1e5,name:"Vertcoin",overwintered:!1,segwit:!0,shortcut:"VTC",signed_message_header:`Vertcoin Signed Message: +`,slip44:28,support:{connect:!0,suite:!0,trezor1:"1.6.1",trezor2:"2.0.5"},taproot:!1,timestamp:!1,xprv_magic:76066276,xpub_magic:76067358,xpub_magic_multisig_segwit_native:76067358,xpub_magic_multisig_segwit_p2sh:76067358,xpub_magic_segwit_native:78792518,xpub_magic_segwit_p2sh:77429938},{address_type:71,address_type_p2sh:33,bech32_prefix:"via",blockchain_link:null,blocktime_seconds:24,cashaddr_prefix:null,coin_label:"Viacoin",coin_name:"Viacoin",coin_shortcut:"VIA",curve_name:"secp256k1",decimals:8,decred:!1,default_fee_b:{Economy:7e3,High:2e4,Low:1e3,Normal:14e3},dust_limit:54600,extra_data:!1,force_bip143:!1,fork_id:null,hash_genesis_block:"4e9b54001f9976049830128ec0331515eaabe35a70970d79971da1539a400ba1",max_address_length:34,maxfee_kb:14e9,min_address_length:27,minfee_kb:1e3,name:"Viacoin",overwintered:!1,segwit:!0,shortcut:"VIA",signed_message_header:`Viacoin Signed Message: +`,slip44:14,support:{connect:!0,suite:!1,trezor1:"1.6.2",trezor2:"2.0.7"},taproot:!1,timestamp:!1,xprv_magic:76066276,xpub_magic:76067358,xpub_magic_multisig_segwit_native:76067358,xpub_magic_multisig_segwit_p2sh:76067358,xpub_magic_segwit_native:78792518,xpub_magic_segwit_p2sh:77429938},{address_type:142,address_type_p2sh:145,bech32_prefix:null,blockchain_link:{type:"blockbook",url:["https://blockbook.zcore.cash"]},blocktime_seconds:120,cashaddr_prefix:null,coin_label:"ZCore",coin_name:"ZCore",coin_shortcut:"ZCR",curve_name:"secp256k1",decimals:8,decred:!1,default_fee_b:{Normal:10},dust_limit:546,extra_data:!1,force_bip143:!1,fork_id:null,hash_genesis_block:"695b79c8c234b45b2eeb4722f33373e471c9b686ff78efeb39da95f824a9f81b",max_address_length:95,maxfee_kb:17e10,min_address_length:34,minfee_kb:1e3,name:"ZCore",overwintered:!1,segwit:!1,shortcut:"ZCR",signed_message_header:`DarkNet Signed Message: +`,slip44:428,support:{connect:!0,suite:!1,trezor1:"1.8.4",trezor2:"2.1.7"},taproot:!1,timestamp:!1,xprv_magic:78791432,xpub_magic:78792518,xpub_magic_multisig_segwit_native:null,xpub_magic_multisig_segwit_p2sh:null,xpub_magic_segwit_native:null,xpub_magic_segwit_p2sh:null},{address_type:7352,address_type_p2sh:7357,bech32_prefix:null,blockchain_link:{type:"blockbook",url:["https://zec1.trezor.io","https://zec2.trezor.io","https://zec3.trezor.io","https://zec4.trezor.io","https://zec5.trezor.io"]},blocktime_seconds:150,cashaddr_prefix:null,coin_label:"Zcash",coin_name:"Zcash",coin_shortcut:"ZEC",curve_name:"secp256k1",decimals:8,decred:!1,default_fee_b:{Normal:10},dust_limit:546,extra_data:!0,force_bip143:!1,fork_id:null,hash_genesis_block:"00040fe8ec8471911baa1db1266ea15dd06b4a8a5c453883c000b031973dce08",max_address_length:95,maxfee_kb:51e6,min_address_length:35,minfee_kb:1e3,name:"Zcash",overwintered:!0,segwit:!1,shortcut:"ZEC",signed_message_header:`Zcash Signed Message: +`,slip44:133,support:{connect:!0,suite:!0,trezor1:"1.8.1",trezor2:"2.1.1"},taproot:!1,timestamp:!1,xprv_magic:76066276,xpub_magic:76067358,xpub_magic_multisig_segwit_native:null,xpub_magic_multisig_segwit_p2sh:null,xpub_magic_segwit_native:null,xpub_magic_segwit_p2sh:null},{address_type:7461,address_type_p2sh:7354,bech32_prefix:null,blockchain_link:null,blocktime_seconds:150,cashaddr_prefix:null,coin_label:"Zcash Testnet",coin_name:"Zcash Testnet",coin_shortcut:"TAZ",curve_name:"secp256k1",decimals:8,decred:!1,default_fee_b:{Normal:10},dust_limit:546,extra_data:!0,force_bip143:!1,fork_id:null,hash_genesis_block:"05a60a92d99d85997cce3b87616c089f6124d7342af37106edc76126334a2c38",max_address_length:95,maxfee_kb:1e7,min_address_length:35,minfee_kb:1e3,name:"Zcash Testnet",overwintered:!0,segwit:!1,shortcut:"TAZ",signed_message_header:`Zcash Signed Message: +`,slip44:1,support:{connect:!0,suite:!1,trezor1:"1.8.1",trezor2:"2.1.1"},taproot:!1,timestamp:!1,xprv_magic:70615956,xpub_magic:70617039,xpub_magic_multisig_segwit_native:null,xpub_magic_multisig_segwit_p2sh:null,xpub_magic_segwit_native:null,xpub_magic_segwit_p2sh:null},{address_type:61,address_type_p2sh:123,bech32_prefix:null,blockchain_link:{type:"blockbook",url:["https://blockbook1.bitcoinrh.org","https://blockbook2.bitcoinrh.org"]},blocktime_seconds:600,cashaddr_prefix:null,coin_label:"xRhodium",coin_name:"Brhodium",coin_shortcut:"XRC",curve_name:"secp256k1",decimals:8,decred:!1,default_fee_b:{Economy:70,High:200,Low:10,Normal:140},dust_limit:546,extra_data:!1,force_bip143:!1,fork_id:null,hash_genesis_block:"baff5bfd9dc43fb672d003ec20fd21428f9282ca46bfa1730d73e1f2c75f5fdd",max_address_length:34,maxfee_kb:1e9,min_address_length:27,minfee_kb:1e3,name:"xRhodium",overwintered:!1,segwit:!1,shortcut:"XRC",signed_message_header:`BitCoin Rhodium Signed Message: +`,slip44:10291,support:{connect:!0,suite:!1,trezor1:"1.8.2",trezor2:"2.1.1"},taproot:!1,timestamp:!1,xprv_magic:76066276,xpub_magic:76067358,xpub_magic_multisig_segwit_native:null,xpub_magic_multisig_segwit_p2sh:null,xpub_magic_segwit_native:null,xpub_magic_segwit_p2sh:null}],erc20:[],eth:[{blockchain_link:{type:"blockbook",url:["https://eth1.trezor.io","https://eth2.trezor.io"]},chain:"eth",chain_id:1,name:"Ethereum",rskip60:!1,shortcut:"ETH",slip44:60,support:{connect:!0,suite:!0,trezor1:"1.6.2",trezor2:"2.0.7"},url:"https://ethereum.org"},{blockchain_link:null,chain:"exp",chain_id:2,name:"Expanse Network",rskip60:!1,shortcut:"EXP",slip44:40,support:{connect:!0,suite:!1,trezor1:"1.6.2",trezor2:"2.0.7"},url:"https://expanse.tech"},{blockchain_link:{type:"blockbook",url:["https://ropsten1.trezor.io","https://ropsten2.trezor.io"]},chain:"rop",chain_id:3,name:"Ropsten",rskip60:!1,shortcut:"tROP",slip44:1,support:{connect:!0,suite:!0,trezor1:"1.6.2",trezor2:"2.0.7"},url:"https://github.com/ethereum/ropsten"},{blockchain_link:null,chain:"rin",chain_id:4,name:"Rinkeby",rskip60:!1,shortcut:"tRIN",slip44:1,support:{connect:!0,suite:!1,trezor1:"1.6.2",trezor2:"2.0.7"},url:"https://www.rinkeby.io"},{blockchain_link:{type:"blockbook",url:["https://goerli1.trezor.io","https://goerli2.trezor.io"]},chain:"gor",chain_id:5,name:"G\xF6rli",rskip60:!1,shortcut:"tGOR",slip44:1,support:{connect:!0,suite:!1,trezor1:"1.11.2",trezor2:"2.5.2"},url:"https://goerli.net/#about"},{blockchain_link:null,chain:"ubq",chain_id:8,name:"Ubiq",rskip60:!1,shortcut:"UBQ",slip44:108,support:{connect:!0,suite:!1,trezor1:"1.6.2",trezor2:"2.0.7"},url:"https://ubiqsmart.com"},{blockchain_link:null,chain:"rsk",chain_id:30,name:"RSK",rskip60:!0,shortcut:"RBTC",slip44:137,support:{connect:!0,suite:!1,trezor1:"1.6.2",trezor2:"2.0.7"},url:"https://rsk.co"},{blockchain_link:null,chain:"trsk",chain_id:31,name:"RSK Testnet",rskip60:!1,shortcut:"tRBTC",slip44:1,support:{connect:!0,suite:!1,trezor1:"1.6.2",trezor2:"2.0.7"},url:"https://rsk.co"},{blockchain_link:null,chain:"kov",chain_id:42,name:"Kovan",rskip60:!1,shortcut:"tKOV",slip44:1,support:{connect:!0,suite:!1,trezor1:"1.6.2",trezor2:"2.0.7"},url:"https://kovan-testnet.github.io/website"},{blockchain_link:null,chain:"go",chain_id:60,name:"GoChain",rskip60:!1,shortcut:"GO",slip44:6060,support:{connect:!0,suite:!1,trezor1:"1.6.2",trezor2:"2.0.7"},url:"https://gochain.io"},{blockchain_link:{type:"blockbook",url:["https://etc1.trezor.io","https://etc2.trezor.io"]},chain:"etc",chain_id:61,name:"Ethereum Classic",rskip60:!1,shortcut:"ETC",slip44:61,support:{connect:!0,suite:!0,trezor1:"1.6.2",trezor2:"2.0.7"},url:"https://ethereumclassic.org"},{blockchain_link:null,chain:"mix",chain_id:76,name:"Mix",rskip60:!1,shortcut:"MIX",slip44:76,support:{connect:!0,suite:!1,trezor1:"1.7.2",trezor2:"2.0.10"},url:"https://mix-blockchain.org"},{blockchain_link:null,chain:"clo",chain_id:820,name:"Callisto",rskip60:!1,shortcut:"CLO",slip44:820,support:{connect:!0,suite:!1,trezor1:"1.6.2",trezor2:"2.0.7"},url:"https://callisto.network"},{blockchain_link:null,chain:"egem",chain_id:1987,name:"EtherGem",rskip60:!1,shortcut:"EGEM",slip44:1987,support:{connect:!0,suite:!1,trezor1:"1.6.2",trezor2:"2.0.7"},url:"https://egem.io"},{blockchain_link:null,chain:"esn",chain_id:31102,name:"Ethersocial Network",rskip60:!1,shortcut:"ESN",slip44:31102,support:{connect:!0,suite:!1,trezor1:"1.6.3",trezor2:"2.0.8"},url:"https://ethersocial.org"},{blockchain_link:null,chain:"aka",chain_id:200625,name:"Akroma",rskip60:!1,shortcut:"AKA",slip44:200625,support:{connect:!0,suite:!1,trezor1:"1.6.3",trezor2:"2.0.8"},url:"https://akroma.io"},{blockchain_link:null,chain:"etho",chain_id:1313114,name:"Etho Protocol",rskip60:!1,shortcut:"ETHO",slip44:1313114,support:{connect:!0,suite:!1,trezor1:"1.6.3",trezor2:"2.0.8"},url:"https://ethoprotocol.com"},{blockchain_link:null,chain:"music",chain_id:7762959,name:"Musicoin",rskip60:!1,shortcut:"MUSIC",slip44:184,support:{connect:!0,suite:!1,trezor1:"1.6.3",trezor2:"2.0.8"},url:"https://musicoin.tw"},{blockchain_link:null,chain:"pirl",chain_id:3125659152,name:"Pirl",rskip60:!1,shortcut:"PIRL",slip44:164,support:{connect:!0,suite:!1,trezor1:"1.6.3",trezor2:"2.0.8"},url:"https://pirl.io"}],misc:[{blockchain_link:{type:"blockfrost",url:["wss://trezor-cardano-mainnet.blockfrost.io"]},curve:"ed25519",decimals:6,name:"Cardano",shortcut:"ADA",slip44:1815,support:{connect:!0,suite:!1,trezor1:!1,trezor2:"2.0.8"}},{blockchain_link:null,curve:"secp256k1",decimals:8,name:"Binance Chain",shortcut:"BNB",slip44:714,support:{connect:!0,suite:!1,trezor1:!1,trezor2:"2.1.5"}},{blockchain_link:null,curve:"secp256k1",decimals:4,name:"EOS",shortcut:"EOS",slip44:194,support:{connect:!0,suite:!1,trezor1:!1,trezor2:"2.1.1"}},{blockchain_link:{type:"blockfrost",url:["wss://trezor-cardano-preview.blockfrost.io"]},curve:"ed25519",decimals:6,name:"Cardano Preview Testnet",shortcut:"tADA",slip44:1815,support:{connect:!0,suite:!1,trezor1:!1,trezor2:"2.0.8"}},{blockchain_link:{type:"ripple",url:["wss://s.altnet.rippletest.net"]},curve:"secp256k1",decimals:6,name:"Ripple Testnet",shortcut:"tXRP",slip44:1,support:{connect:!0,suite:!0,trezor1:!1,trezor2:"2.0.8"}},{blockchain_link:null,curve:"ed25519",decimals:7,name:"Stellar",shortcut:"XLM",slip44:148,support:{connect:!0,suite:!1,trezor1:"1.7.1",trezor2:"2.0.8"}},{blockchain_link:{type:"ripple",url:["wss://s1.ripple.com","wss://s-east.ripple.com","wss://s-west.ripple.com"]},curve:"secp256k1",decimals:6,name:"Ripple",shortcut:"XRP",slip44:144,support:{connect:!0,suite:!0,trezor1:!1,trezor2:"2.0.8"}},{blockchain_link:null,curve:"ed25519",decimals:6,name:"Tezos",shortcut:"XTZ",slip44:1729,support:{connect:!0,suite:!1,trezor1:!1,trezor2:"2.0.8"}}],nem:[{blockchain_link:null,divisibility:6,mosaic:"xem",name:"NEM",namespace:"nem",shortcut:"XEM",support:{connect:!0,suite:!1,trezor1:"1.6.2",trezor2:"2.0.7"},ticker:"XEM"},{blockchain_link:null,divisibility:6,fee:10,levy:"MosaicLevy_Percentile",levy_mosaic:"coin",levy_namespace:"dim",mosaic:"coin",name:"DIMCOIN",namespace:"dim",networks:[104],shortcut:"DIM",support:{connect:!0,suite:!1,trezor1:"1.6.2",trezor2:"2.0.7"},ticker:"DIM"},{blockchain_link:null,divisibility:6,mosaic:"token",name:"DIM TOKEN",namespace:"dim",networks:[104],shortcut:"DIMTOK",support:{connect:!0,suite:!1,trezor1:"1.6.2",trezor2:"2.0.7"},ticker:"DIMTOK"},{blockchain_link:null,divisibility:0,mosaic:"breeze-token",name:"Breeze Token",namespace:"breeze",networks:[104],shortcut:"BREEZE",support:{connect:!0,suite:!1,trezor1:"1.6.2",trezor2:"2.0.7"},ticker:"BREEZE"},{blockchain_link:null,divisibility:0,mosaic:"heart",name:"PacNEM Game Credits",namespace:"pacnem",networks:[104],shortcut:"PAC:HRT",support:{connect:!0,suite:!1,trezor1:"1.6.2",trezor2:"2.0.7"},ticker:"PAC:HRT"},{blockchain_link:null,divisibility:6,fee:100,levy:"MosaicLevy_Percentile",levy_mosaic:"xem",levy_namespace:"nem",mosaic:"cheese",name:"PacNEM Score Tokens",namespace:"pacnem",networks:[104],shortcut:"PAC:CHS",support:{connect:!0,suite:!1,trezor1:"1.6.2",trezor2:"2.0.7"},ticker:"PAC:CHS"}]}});var Soe=x((UCt,yze)=>{yze.exports=[{version:[2,0,27],directory:"bridge/{version}/",packages:[{platform:["deb64"],name:"Linux 64-bit (deb)",url:"trezor-bridge_{version}_amd64.deb"},{platform:["rpm64"],name:"Linux 64-bit (rpm)",url:"trezor-bridge-{version}-1.x86_64.rpm"},{platform:["deb32"],name:"Linux 32-bit (deb)",url:"trezor-bridge_{version}_i386.deb"},{platform:["rpm32"],name:"Linux 32-bit (rpm)",url:"trezor-bridge-{version}-1.i386.rpm"},{platform:["mac"],name:"macOS",url:"trezor-bridge-{version}.pkg",signature:"trezor-bridge-{version}.pkg.asc"},{platform:["win32","win64"],name:"Windows",url:"trezor-bridge-{version}-win32-install.exe",signature:"trezor-bridge-{version}-win32-install.exe.asc"}],changelog:"* Fix Certificate issue on Windows"}]});var Eoe=x((jCt,vze)=>{vze.exports=[{required:!1,version:[1,11,2],bootloader_version:[1,11,0],min_bridge_version:[2,0,25],min_firmware_version:[1,6,2],min_bootloader_version:[1,5,0],url:"firmware/1/trezor-1.11.2.bin",url_bitcoinonly:"firmware/1/trezor-1.11.2-bitcoinonly.bin",fingerprint:"d8b55b68dfe8a8449ce7391e841073ef5d29349638d85b750508bbef5d2de5ec",fingerprint_bitcoinonly:"7e51546f4411ecf44688c681ada72a18495fd08e91f3a0429ab91bc4415b362a",notes:"https://blog.trezor.io/trezor-suite-and-firmware-updates-august-2022-a4e3d76214c1",changelog:`* Show the fee rate on the signing confirmation screen. +* Show thousands separator when displaying large amounts +* Fix potential security issues in recovery workflow. +* Fix key extraction vulnerability in Cothority Collective Signing (CoSi). +* Fix nonce bias in CoSi signing.`},{required:!1,version:[1,11,1],bootloader_version:[1,11,0],min_bridge_version:[2,0,25],min_firmware_version:[1,6,2],min_bootloader_version:[1,5,0],url:"firmware/1/trezor-1.11.1.bin",url_bitcoinonly:"firmware/1/trezor-1.11.1-bitcoinonly.bin",fingerprint:"f7c60d0b8c2853afd576867c6562aba5ea52bdc2ce34d0dbb8751f52867c3665",fingerprint_bitcoinonly:"8e17b95b5d302f203de3a8fe27959efd25e3d5140ac9b5e60412f1b3f624995d",notes:"https://blog.trezor.io/trezor-suite-and-firmware-updates-may-2022-b1af60742291",changelog:`* Support Electrum signatures in VerifyMessage. +* Trezor will refuse to sign UTXOs that do not match the provided derivation path (e.g., transactions belonging to a different wallet, or synthetic transaction inputs). +* Zcash v5 transaction format.`},{required:!1,version:[1,10,5],bootloader_version:[1,10,0],min_bridge_version:[2,0,25],min_firmware_version:[1,6,2],min_bootloader_version:[1,5,0],url:"firmware/1/trezor-1.10.5.bin",url_bitcoinonly:"firmware/1/trezor-1.10.5-bitcoinonly.bin",fingerprint:"7619fcc73c43ca8a3e6aad3dc3eb6551fed05bb218340efe01a02bb96e9f346b",fingerprint_bitcoinonly:"1d319f643fe2ba5c247b178c7f73b989ab4e43d914a60468566ee7cc5bb9dde0",notes:"https://blog.trezor.io/trezor-suite-update-january-2022-4a77e4a07a5a",changelog:"* Support for blindly signing EIP-712 data."},{required:!1,version:[1,10,4],bootloader_version:[1,10,0],min_bridge_version:[2,0,25],min_firmware_version:[1,6,2],min_bootloader_version:[1,5,0],url:"firmware/1/trezor-1.10.4.bin",url_bitcoinonly:"firmware/1/trezor-1.10.4-bitcoinonly.bin",fingerprint:"74dfdfb9addb9d90fedb2c88794b7236af521d21ef0096f9080c25b597c8af86",fingerprint_bitcoinonly:"30d858b022e218f27854f071d568e5a696c937f1316d83b93aadcd178f3b0a38",notes:"https://blog.trezor.io/trezor-suite-and-firmware-updates-december-2021-d1e74c3ea283",changelog:`* Support Taproot. +* Show address confirmation in SignMessage. +* Support for Ethereum EIP-1559 transactions.`},{required:!1,version:[1,10,3],bootloader_version:[1,10,0],min_bridge_version:[2,0,25],min_firmware_version:[1,6,2],min_bootloader_version:[1,5,0],url:"firmware/1/trezor-1.10.3.bin",url_bitcoinonly:"firmware/1/trezor-1.10.3-bitcoinonly.bin",fingerprint:"bf0cc936a9afbf0a4ae7b727a2817fb69fba432d7230a0ff7b79b4a73b845197",fingerprint_bitcoinonly:"d1143d2cba9c7dba4d57703d2b7da87859d8668472ffc651177ead6b94e89117",notes:"https://blog.trezor.io/trezor-suite-and-firmware-updates-september-2021-a490f2ea16c1",changelog:`* Remove Lisk. +* Re-enabled Firo support. +* Stricter protobuf field handling in Stellar.`},{required:!1,version:[1,10,2],bootloader_version:[1,10,0],min_bridge_version:[2,0,25],min_firmware_version:[1,6,2],min_bootloader_version:[1,5,0],url:"firmware/1/trezor-1.10.2.bin",url_bitcoinonly:"firmware/1/trezor-1.10.2-bitcoinonly.bin",fingerprint:"99707b90a504f7e402f26c3d59cbbdacbc52754cebcce79cc47be528fc889338",fingerprint_bitcoinonly:"e597b6aef5a2e817f532d27b8501f99f189e432a887877bdd3498cd3a0afc431",notes:"https://blog.trezor.io/trezor-suite-launches-8958c1d37d33",changelog:"* Security improvements."},{required:!1,version:[1,10,1],bootloader_version:[1,10,0],min_bridge_version:[2,0,25],min_firmware_version:[1,6,2],min_bootloader_version:[1,5,0],url:"firmware/1/trezor-1.10.1.bin",url_bitcoinonly:"firmware/1/trezor-1.10.1-bitcoinonly.bin",fingerprint:"36400becf1cdddec22b8150d56ff59eef76d37fef60dc465a6f82b4858903886",fingerprint_bitcoinonly:"74227362016a8763c4d5f5b06eeb7eabe5fbd7ed05798b586cc7f4bfef50d7fe",notes:"https://blog.trezor.io/trezor-suite-and-firmware-updates-june-2021-c70aba9f0e3f",changelog:"* Safety checks setting in T1."},{required:!1,version:[1,10,0],bootloader_version:[1,10,0],min_bridge_version:[2,0,25],min_firmware_version:[1,6,2],min_bootloader_version:[1,5,0],url:"firmware/1/trezor-1.10.0.bin",url_bitcoinonly:"firmware/1/trezor-1.10.0-bitcoinonly.bin",fingerprint:"595ba3e8e887cba185e03098f9538e18164f72f9fc82445e691abcd03e5cf0a4",fingerprint_bitcoinonly:"20a4068c34ff6dd7d8c510350409376cf7ea744ba668fdcf16da8f1d81fed289",notes:"https://blog.trezor.io/trezor-firmware-updates-may-2021-b11f6d52a65b",changelog:`* Bootloader 1.10.0. +* Allow decreasing the output value in RBF transactions. +* Support long PIN of up to 50 digits. +* Display nLockTime in human-readable form.`},{required:!1,version:[1,9,4],bootloader_version:[1,8,0],min_bridge_version:[2,0,25],min_firmware_version:[1,6,2],min_bootloader_version:[1,5,0],url:"firmware/1/trezor-1.9.4.bin",url_bitcoinonly:"firmware/1/trezor-1.9.4-bitcoinonly.bin",fingerprint:"867017bd784cc4e9ce6f0875c61ea86f89b19380d54045c34608b85472998000",fingerprint_bitcoinonly:"3f73dfbcfc48f66c8814f6562524d81888230e0acd1c19b52b6e8772c6c67e7f",notes:"https://blog.trezor.io/trezor-suite-and-firmware-updates-rbf-and-spending-now-live-c2f69c42d7f7",changelog:`* Replacement transaction signing for replace-by-fee. +* Support for Output Descriptors export. +* Show Ypub/Zpub correctly for multisig GetAddress. +* Show amounts in mBTC, uBTC and sat denominations.`},{required:!1,version:[1,9,3],bootloader_version:[1,8,0],min_bridge_version:[2,0,25],min_firmware_version:[1,6,2],min_bootloader_version:[1,5,0],url:"firmware/1/trezor-1.9.3.bin",url_bitcoinonly:"firmware/1/trezor-1.9.3-bitcoinonly.bin",fingerprint:"2589f456559f813d1149be1022e62f2d48fbe28f4d02de933bd888d91035cace",fingerprint_bitcoinonly:"76f899d60ffd9685713cb420d017565c05c43aadaf0e62b645a50a8db69afef6",notes:"https://blog.trezor.io/firmware-updates-for-trezor-model-t-version-2-3-3-and-trezor-model-one-version-1-9-3-c94f7a3b6fea",changelog:`* Improves the Passphrase feature by showing the entered passphrase on the Trezor screen before opening the wallet. +* Adds support for Verge (XVG). +* Drops support for Metaverse (ETP), GINcoin (GIN), Pesetacoin (PTC), and Zel (ZEL). +* Re-enables spending coins from Bitcoin paths (fixing some compatibility issues with Bitcoin Cash wallets). +* Fixes smaller issues in the user interface.`},{required:!1,version:[1,9,2],bootloader_version:[1,8,0],min_bridge_version:[2,0,25],min_firmware_version:[1,6,2],min_bootloader_version:[1,5,0],url:"firmware/1/trezor-1.9.2.bin",url_bitcoinonly:"firmware/1/trezor-1.9.2-bitcoinonly.bin",fingerprint:"45b83acd1330ddfd5567edbae5ff8028df1c48a493f01d47cc5499ee0be9b991",fingerprint_bitcoinonly:"2762c0ff78c96e23d1d348330e0a3cdf45d83c8fc8c2d48853b7cb602ddc19bb",notes:"https://blog.trezor.io/firmware-updates-for-trezor-model-t-version-2-3-2-and-trezor-model-one-version-1-9-2-f4f9c0f1ed7c",changelog:`* Reintroduces the ability to spend pre-Overwinter (2018) funds on Zcash-like coins. +* Adds support for multiple change outputs in outgoing transactions. +* Adds a security check to prevent potential issues with paths used in altcoin transactions.`},{required:!1,version:[1,9,1],bootloader_version:[1,8,0],min_bridge_version:[2,0,25],min_firmware_version:[1,6,2],min_bootloader_version:[1,5,0],url:"firmware/1/trezor-1.9.1.bin",url_bitcoinonly:"firmware/1/trezor-1.9.1-bitcoinonly.bin",fingerprint:"30cde253c46d4fc705f98634a35d06a494cf2a36824622a9c6a573e07f14292d",fingerprint_bitcoinonly:"ee743e3bd1e424ceb45a1d877a5422e7af449706f636c459cdd8bb0d4796cba5",notes:"https://blog.trezor.io/details-of-firmware-updates-for-trezor-one-version-1-9-1-and-trezor-model-t-version-2-3-1-1eba8f60f2dd",changelog:"* Refactor Bitcoin signing"},{required:!1,version:[1,9,0],bootloader_version:[1,8,0],min_bridge_version:[2,0,25],min_firmware_version:[1,6,2],min_bootloader_version:[1,5,0],url:"firmware/1/trezor-1.9.0.bin",url_bitcoinonly:"firmware/1/trezor-1.9.0-bitcoinonly.bin",fingerprint:"1f40d1e68f9d182888b5b60da5209eff047ec68fcc96a5c9b61b0e55dd07d458",fingerprint_bitcoinonly:"93a670dd20d044bf76cfce6eecd2a85918acdebe616229dbb31250fd03a33870",notes:"https://blog.trezor.io/details-of-firmware-updates-for-trezor-one-version-1-9-0-and-trezor-model-t-version-2-3-0-46deb141fc09",changelog:`* Introduce Wipe Code +* Introduce passphrase cache`},{required:!1,version:[1,8,3],bootloader_version:[1,8,0],min_bridge_version:[2,0,25],min_firmware_version:[1,6,2],min_bootloader_version:[1,5,0],url:"firmware/1/trezor-1.8.3.bin",url_bitcoinonly:"firmware/1/trezor-1.8.3-bitcoinonly.bin",fingerprint:"496aecfab867504b2283a9f057a0b2fd9d17970a22c81f6ad74232e7b914ce68",fingerprint_bitcoinonly:"13d6089cb935f453eaddbfe193e0ab37924a7aa66f684355a4fe5c660c18247a",changelog:"* Small code improvements"},{required:!1,version:[1,8,2],bootloader_version:[1,8,0],min_bridge_version:[2,0,25],min_firmware_version:[1,6,2],min_bootloader_version:[1,5,0],url:"firmware/1/trezor-1.8.2.bin",fingerprint:"909742eddcffdc72ca854557962ecad90e97585770f514170abe7a691b0c6eb1",changelog:`* Security improvements +* Fix display of non-divisible OMNI amounts`},{required:!1,version:[1,8,1],bootloader_version:[1,8,0],min_bridge_version:[2,0,25],min_firmware_version:[1,6,2],min_bootloader_version:[1,5,0],url:"firmware/1/trezor-1.8.1.bin",fingerprint:"019e849c1eb285a03a92bbad6d18a328af3b4dc6999722ebb47677b403a4cd16",changelog:"* Fix fault when using the device with no PIN* Fix OMNI transactions parsing"},{required:!1,version:[1,8,0],bootloader_version:[1,8,0],min_bridge_version:[2,0,25],min_firmware_version:[1,6,2],min_bootloader_version:[1,5,0],url:"firmware/1/trezor-1.8.0.bin",tags:["security"],fingerprint:"d65f0c07a6a9c53d8b5287798eb53154b33f9e87cd38a3701970e3d0a750a659",notes:"https://blog.trezor.io/firmware-updates-for-trezor-one-firmware-1-8-0-and-trezor-model-t-firmware-2-1-0-b9df91e048df",changelog:`* Security improvements +* Upgraded to new storage format +* Stellar and NEM fixes +* New coins: ATS, KMD, XPM, XSN, ZCL +* New ETH tokens`},{required:!1,version:[1,7,3],bootloader_version:[1,6,1],min_bridge_version:[2,0,25],min_firmware_version:[1,6,2],min_bootloader_version:[1,5,0],url:"firmware/1/trezor-1.7.3.bin",fingerprint:"10acc6aa4f24aff36627473b98c23dc4f6d0220d33bc1e09cb572f02410ffdaf",changelog:"* Fix USB issue on some Windows 10 installations"},{required:!1,version:[1,7,2],bootloader_version:[1,6,0],min_bridge_version:[2,0,25],min_firmware_version:[1,6,2],min_bootloader_version:[1,5,0],url:"firmware/1/trezor-1.7.2.bin",fingerprint:"4d5c7ac191dba315b2433af27c187925fb713d06984cc6f566231d809dd8d370",changelog:`* Add support for OMNI layer: OMNI/MAID/USDT +* U2F fixes +* Don't ask for PIN if it has been just set`,notes:"https://blog.trezor.io/trezor-one-1-7-2-support-for-omni-layer-cbf699e4ffae"},{required:!1,version:[1,7,1],bootloader_version:[1,6,0],min_bridge_version:[2,0,25],min_firmware_version:[1,6,2],min_bootloader_version:[1,5,0],url:"firmware/1/trezor-1.7.1.bin",fingerprint:"1c303c50bb45d3f35da9e962d8405d0b8e89cc45e122496a48fce3995fa71d48",changelog:`* Switch from HID to WebUSB +* Add support for Stellar +* Add support for Lisk +* Add support for Zcash Sapling hardfork +* Implement seedless setup`,notes:"https://blog.trezor.io/firmware-updates-moving-from-the-beta-wallet-to-stable-c487931c3596"},{required:!1,version:[1,6,3],bootloader_version:[1,5,1],min_bridge_version:[1,1,5],min_firmware_version:[1,0,0],min_bootloader_version:[1,0,0],url:"firmware/1/trezor-1.6.3.bin",fingerprint:"e8dbb4b7fe8384afd4c99790277c2f2f366a1a0f3957aa3545c75371a99a8fcc",changelog:`* Implement RSKIP-60 Ethereum checksum encoding +* Add support for new Ethereum networks (ESN, AKA, ETHO, MUSI, PIRL, ATH, GO) +* Add support for new 80 Ethereum tokens +* Improve MPU configuration`,notes:"https://blog.trezor.io/trezor-one-firmware-update-1-6-3-73894c0506d"},{required:!1,version:[1,6,2],bootloader_version:[1,5,0],min_bridge_version:[1,1,5],min_firmware_version:[1,0,0],min_bootloader_version:[1,0,0],url:"firmware/1/trezor-1.6.2.bin",fingerprint:"d31304f793854e343df6ccf1804f7e2abf48ddcd82a379ca2d3711d54127e138",changelog:`* Add possibility to set custom auto-lock delay +* Bitcoin Cash cashaddr support +* Zcash Overwinter hardfork support +* Support for new coins: + - Decred, Bitcoin Private, Fujicoin, Groestlcoin, Vertcoin, Viacoin, Zcoin +* Support for new Ethereum networks: + - EOS Classic, Ethereum Social, Ellaism, Callisto, EtherGem, Wanchain +* Support for 500+ new Ethereum tokens`,notes:"https://blog.trezor.io/june-updates-trezor-devices-one-modelt-wallet-zcash-cashaddr-doge-8d98c2a73036"},{required:!0,version:[1,6,1],bootloader_version:[1,4,0],min_bridge_version:[1,1,5],min_firmware_version:[1,0,0],min_bootloader_version:[1,0,0],url:"firmware/1/trezor-1.6.1.bin",fingerprint:"83c3190a94e524ac83a1704eb584a2ab53f8a65a893b1ab52e7135812857c807",changelog:`* Use fixed-width font for addresses +* Lots of under-the-hood improvements +* Fixed issue with write-protection settings`,notes:"https://blog.trezor.io/trezor-one-firmware-update-1-6-1-eecd0534ab95"},{required:!1,version:[1,6,0],min_bridge_version:[1,1,5],min_firmware_version:[1,0,0],min_bootloader_version:[1,0,0],url:"firmware/1/trezor-1.6.0.bin",fingerprint:"e40f6ce12724c2d24234a7752953b88fd9ec28b3ec72c0dbfa280095a67a06ca",changelog:`* Native SegWit (Bech32) address support +* Show recognized BIP44/BIP49 paths in GetAddress dialog +* NEM support +* Expanse and UBIQ chains support +* Bitcoin Gold, DigiByte, Monacoin support +* Ed25519 collective signatures (CoSi) support`,notes:"https://blog.trezor.io/expanded-cryptos-cryptocurrency-support-firmware-1-6-0-3825b5853470"},{required:!0,version:[1,5,2],min_bridge_version:[1,1,5],min_firmware_version:[1,0,0],min_bootloader_version:[1,0,0],url:"firmware/1/trezor-1.5.2.bin",fingerprint:"99f71379dec893fbe109832a1150f338660be686fe6b4903ff10ff751ba4e448",changelog:`* clean memory on start +* fix storage import from older versions`,notes:"https://blog.trezor.io/trezor-firmware-security-update-1-5-2-5ef1b6f13fed"},{required:!1,version:[1,5,1],min_bridge_version:[1,1,5],min_firmware_version:[1,0,0],min_bootloader_version:[1,0,0],url:"firmware/1/trezor-1.5.1.bin",fingerprint:"1c1fa9802cbd6a947a4f3e78f209d3efe49eb4abbacb101bbc3a0a709c742707",changelog:`* Wipe storage after 16 wrong PIN attempts +* Enable Segwit for Bitcoin +* Bcash aka Bitcoin Cash support +* Message signing/verification for Ethereum and Segwit +* Make address dialog nicer (switch text/QR via button) +* Use checksum for Ethereum addresses +* Add more ERC-20 tokens, handle unrecognized ERC-20 tokens +* Allow "dry run" recovery procedure +* Allow separated backup procedure`},{required:!1,version:[1,5,0],min_bridge_version:[1,1,5],min_firmware_version:[1,0,0],min_bootloader_version:[1,0,0],url:"firmware/1/trezor-1.5.0.bin",fingerprint:"c4eddafd29b580d8482cda68e61bdcf1740d77520ef3a603758646bbffe957ea",changelog:`* Enable Segwit for Testnet and Litecoin +* Enable ERC-20 tokens for Ethereum chains`},{required:!1,version:[1,4,2],min_bridge_version:[1,1,5],min_firmware_version:[1,0,0],min_bootloader_version:[1,0,0],url:"firmware/1/trezor-1.4.2.bin",fingerprint:"a4b39f01bd134d01d7534821445bf779dbe6c25f0fcf7c7cb285a79b17f25e0a",changelog:`* New Matrix-based recovery method +* Minor Ethereum fixes (including EIP-155 replay protection) +* Minor USB, U2F and GPG fixes`},{required:!1,version:[1,4,1],min_bridge_version:[1,1,5],min_firmware_version:[1,0,0],min_bootloader_version:[1,0,0],url:"firmware/1/trezor-1.4.1.bin",fingerprint:"92636493f76f352213e681bbc26eb3a8844f7b8a3044214b65c3c2c10a0f788c",changelog:`* Support for Zcash JoinSplit transactions +* Enable device lock after 10 minutes of inactivity +* Enable device lock by pressing left button for 2 seconds +* Confirm dialog for U2F counter change`},{required:!1,version:[1,4,0],min_bridge_version:[1,1,5],min_firmware_version:[1,0,0],min_bootloader_version:[1,0,0],url:"firmware/1/trezor-1.4.0.bin",fingerprint:"5764715dbcf8ed88bc0ae1c2f715277f22b67f26c15e1f7543b2b44913b5c255",changelog:`* U2F support +* Ethereum support +* GPG decryption support +* Zcash support`,notes:"https://blog.trezor.io/secure-two-factor-authentication-with-trezor-u2f-e940fd5a60af"},{required:!1,version:[1,3,6],min_bridge_version:[1,1,5],min_firmware_version:[1,0,0],min_bootloader_version:[1,0,0],url:"firmware/1/trezor-1.3.6.bin",fingerprint:"03b559a758961b2bfd4443e6c36c10025268cf033ecd376fdd7a79ff658bf511",changelog:`* Enable advanced transactions such as ones with REPLACE-BY-FEE and CHECKLOCKTIMEVERIFY +* Fix message signing for altcoins +* Message verification now shows address +* Enable GPG signing support +* Enable Ed25519 curve (for SSH and GPG) +* Use separate deterministic hierarchy for NIST256P1 and Ed25519 curves +* Users using SSH already need to regenerate their keys using the new firmware!!!`,notes:"https://blog.trezor.io/trezor-firmware-1-3-6-20a7df6e692"},{required:!1,version:[1,3,5],min_bridge_version:[1,1,2],min_firmware_version:[1,0,0],min_bootloader_version:[1,0,0],url:"firmware/1/trezor-1.3.5.bin",fingerprint:"7d5d2c7defb93081a7fb7a2d1e57677fbac2a3e3e50f22fa3ff83ec4ddaafd9d",changelog:`* Double size font for recovery words during the device setup +* Optimizations for simultaneous access when more applications try communicate with the device`,notes:"https://blog.trezor.io/trezor-firmware-1-3-5-allows-for-multisession-operation-cc4c25197855"},{required:!1,version:[1,3,4],min_bridge_version:[1,1,2],min_firmware_version:[1,0,0],min_bootloader_version:[1,0,0],url:"firmware/1/trezor-1.3.4.bin",fingerprint:"49e044eec84a9c210a09319d27a3ab8ba889ddeaa4d68f99d163f65267fce134",changelog:`* Screensaver active on ClearSession message +* Support for NIST P-256 curve +* Updated SignIdentity to v2 format +* Show seconds counter during PIN lockdown +* Updated maxfee per kb for coins`,notes:"https://blog.trezor.io/trezor-firmware-1-3-4-enables-ssh-login-86a622d7e609"},{required:!0,version:[1,3,3],min_bridge_version:[1,1,0],min_firmware_version:[1,0,0],min_bootloader_version:[1,0,0],url:"firmware/1/trezor-1.3.3.bin",fingerprint:"7fcee4c0459c22109f3fcfe0040148e9be6d30947f7fffb76c66cc500681257c",changelog:`* Ask for PIN on GetAddress and GetPublicKey +* Signing speed improved`,notes:"http://satoshilabs.com/old/news/2015-04-07-trezor-firmware-1-3-3-connect-api/"},{required:!1,version:[1,3,2],min_bridge_version:[1,1,0],min_firmware_version:[1,0,0],min_bootloader_version:[1,0,0],url:"firmware/1/trezor-1.3.2.bin",fingerprint:"180656fbf94e43e0092eaf22c30ab3451a547b4213119bd62763dc97b94ad0d0",changelog:`* Fix check during transaction streaming +* Login feature via SignIdentity message +* GetAddress for multisig shows M of N description +* PIN checking in constant time`,notes:""},{required:!1,version:[1,3,1],min_bridge_version:[1,1,0],min_firmware_version:[1,0,0],min_bootloader_version:[1,0,0],url:"firmware/1/trezor-1.3.1.bin",fingerprint:"8030e257fc4c75a8f4a0325f8ea37428dd8fc68a5f9ec5f8e2d1a0de328860cc",changelog:`* Optimized signing speed +* Enabled OP_RETURN +* Added option to change home screen +* Moved fee calculation before any signing +* Made PIN delay increase immune against hardware hacking`,notes:"http://satoshilabs.com/old/news/2015-02-18-trezor-firmware-1-3-1-smart-property-notary-service-customized-home-screen/"},{required:!1,version:[1,3,0],min_bridge_version:[1,1,0],min_firmware_version:[1,0,0],min_bootloader_version:[1,0,0],url:"firmware/1/trezor-1.3.0.bin",fingerprint:"1d417e1e99a4880f7e03b991cf318eebe7b6cb453d2f55b8112adc5fd1a8293c",changelog:`* Added multisig support +* Added visual validation of receiving address +* Added ECIES encryption capabilities`,notes:"http://satoshilabs.com/old/news/2015-01-13-trezor-firmware-1-3-0-update-multisig/"},{required:!0,version:[1,2,1],min_bridge_version:[1,1,0],min_firmware_version:[1,0,0],min_bootloader_version:[1,0,0],url:"firmware/1/trezor-1.2.1.bin",fingerprint:"0f8685ee46632162b549eb22b99a1e4e013d6796ae536ea6acb877a491f564f6",changelog:`* Added stack overflow protection +* Added compatibility with Trezor Bridge`,notes:"http://satoshilabs.com/old/news/2014-08-01-trezor-firmware-1-2-1-released/"},{required:!1,version:[1,2,0],min_bridge_version:[1,1,0],min_firmware_version:[1,0,0],min_bootloader_version:[1,0,0],url:"firmware/1/trezor-1.2.0.bin",fingerprint:"0eec6fd320730acfa40963f0f470a47109378663907cc78b9c5797c19938c873",changelog:`* Fix false positives for fee warning +* Better UI for signing/verifying messages +* Smaller firmware size`},{required:!1,version:[1,1,0],min_bridge_version:[1,1,0],min_firmware_version:[1,0,0],min_bootloader_version:[1,0,0],url:"firmware/1/trezor-1.1.0.bin",fingerprint:"a1709ead62659851933830f494cf9aa40047d1f098955aa93bd483b92df88c8e",changelog:`* Minor UI fixes +* Better handling of unexpected messages +* Added AES support`},{required:!0,version:[1,0,0],min_bridge_version:[1,1,0],min_firmware_version:[1,0,0],min_bootloader_version:[1,0,0],url:"firmware/1/trezor-1.0.0.bin",fingerprint:"79371ee2ed2db8489aa4a5bce6907c24afc6de47e9658fef4cc12e2d902d9c51",changelog:`* Added support for streaming of transactions into the device +* Removed all current limits on size of signed transaction`}]});var Toe=x((VCt,bze)=>{bze.exports=[{required:!1,version:[2,5,3],min_bridge_version:[2,0,7],min_firmware_version:[2,0,8],min_bootloader_version:[2,0,0],url:"firmware/2/trezor-2.5.3.bin",url_bitcoinonly:"firmware/2/trezor-2.5.3-bitcoinonly.bin",fingerprint:"4f57dca1abc1a60d82c4fef7c96e86d784fc7a1e5e3da724dd2ae4d14c6350bf",fingerprint_bitcoinonly:"c094c84ba958129885fa725ee6ddb781b580fd2c7851e83aef9054ba4a10526c",notes:"https://blog.trezor.io/trezor-suite-and-trezor-model-t-firmware-update-november-2022-a0b30bb0abf5",changelog:`* Add SLIP-0025 coinjoin accounts. +* Show red error header when Trezor doesn't see USB data connection. +* Add support for Zcash unified addresses. +* Show fee rate when replacing transaction. +* Optimize the signing of BTC transactions. +* Support for Cardano CIP-36 governance registration format. +* Extend decimals of fee rate to 2 digits. +* Display only \u201Csat\u201D instead of \u201Csat BTC\u201D. +* Fix sending XMR transaction to an integrated address. +* Fix XMR primary address display.`},{required:!1,version:[2,5,2],min_bridge_version:[2,0,7],min_firmware_version:[2,0,8],min_bootloader_version:[2,0,0],url:"firmware/2/trezor-2.5.2.bin",url_bitcoinonly:"firmware/2/trezor-2.5.2-bitcoinonly.bin",fingerprint:"659b1b698546fa63f24200e148b6f9a7044df31d11a0a5ec7c044f2dd83f4a27",fingerprint_bitcoinonly:"76aa25f9602cfb03cd3e07a82ac09226344eb355355aec216295e43b675eedf7",notes:"https://blog.trezor.io/trezor-suite-and-firmware-updates-august-2022-a4e3d76214c1",changelog:`* Add support for Monero HF15 features. +* Show the fee rate on the signing confirmation screen. +* Support for Cardano Babbage era transaction items +* Add "Show All"/"Show Simple" choice to Cardano transaction signing +* Show thousands separator when displaying large amounts. +* Fix Decred transaction weight calculation.`},{required:!1,version:[2,5,1],min_bridge_version:[2,0,7],min_firmware_version:[2,0,8],min_bootloader_version:[2,0,0],url:"firmware/2/trezor-2.5.1.bin",url_bitcoinonly:"firmware/2/trezor-2.5.1-bitcoinonly.bin",fingerprint:"782d4934897018cac779eebb0d7c66e21da7789b9cd35e1f99f097bdfd9b7d33",fingerprint_bitcoinonly:"db5d7b211532f717a32fe0b1bd3e3df6ad5464079a896a7f7492ab6e9e030bb5",notes:"https://blog.trezor.io/trezor-suite-and-firmware-updates-may-2022-b1af60742291",changelog:`* Support Electrum signatures in VerifyMessage. +* Support Cardano Alonzo-era transactions (Plutus). +* Bitcoin bech32 addresses QR codes have bigger pixels which are easier to scan. +* EIP-1559 transaction correctly show final Hold to Confirm screen. +* Trezor will refuse to sign UTXOs that do not match the provided derivation path (e.g., transactions belonging to a different wallet, or synthetic transaction inputs). +* Zcash v5 transaction format.`},{required:!1,version:[2,4,3],min_bridge_version:[2,0,7],min_firmware_version:[2,0,8],min_bootloader_version:[2,0,0],url:"firmware/2/trezor-2.4.3.bin",url_bitcoinonly:"firmware/2/trezor-2.4.3-bitcoinonly.bin",fingerprint:"a07f69d8d2065006a79c6b5636bd046496dbcb3820b41f1d604d8a4605ca4056",fingerprint_bitcoinonly:"1744efccabd479526392b281b7e0fc7aa2b4ecb454007dff7ca8c1f8171fad90",notes:"https://blog.trezor.io/trezor-suite-and-firmware-updates-december-2021-d1e74c3ea283",changelog:`* Support Taproot. +* Show address confirmation in SignMessage. +* Support for advanced Cardano transactions and different derivations for compatibility. +* Ethereum support for EIP712 (signing typed data).`},{required:!1,version:[2,4,2],min_bridge_version:[2,0,7],min_firmware_version:[2,0,8],min_bootloader_version:[2,0,0],url:"firmware/2/trezor-2.4.2.bin",url_bitcoinonly:"firmware/2/trezor-2.4.2-bitcoinonly.bin",fingerprint:"54ccf155510b5292bd17ed748409d0d135112e24e62eb74184639460beecb213",fingerprint_bitcoinonly:"60fee3c9775d8ccf71099f6f7d277463efd128414cfb9be45656b1a26eeb7301",notes:"https://blog.trezor.io/trezor-suite-and-firmware-updates-september-2021-a490f2ea16c1",changelog:`* Support for Ethereum EIP1559 transactions. +* Re-enabled Firo support. +* Memory optimization of BTC signing and CBOR decoding. +* Support for large Cardano transactions. +* Remove Lisk.`},{required:!1,version:[2,4,1],min_bridge_version:[2,0,7],min_firmware_version:[2,0,8],min_bootloader_version:[2,0,0],url:"firmware/2/trezor-2.4.1.bin",url_bitcoinonly:"firmware/2/trezor-2.4.1-bitcoinonly.bin",fingerprint:"84bc47bb197b3ae7bfb096f03d4a528ccf6c9ef4dfee0aac4022971e4ec91d68",fingerprint_bitcoinonly:"fce4503fcadb68dc72144a562ec0a59e7c8d083e403e01bfc4c584161d79f596",notes:"https://blog.trezor.io/trezor-suite-launches-8958c1d37d33",changelog:`* Security and major perfomance improvements. +* Cardano fixes. +* Fix red screen on shutdown.`},{required:!1,version:[2,4,0],min_bridge_version:[2,0,7],min_firmware_version:[2,0,8],min_bootloader_version:[2,0,0],url:"firmware/2/trezor-2.4.0.bin",url_bitcoinonly:"firmware/2/trezor-2.4.0-bitcoinonly.bin",fingerprint:"d90265ee6d7d499c7d938b5322f71f27042da8a6fdaed54c224d31b65e868def",fingerprint_bitcoinonly:"89c91287ab7a9cd3ec246b6822a0d04b7d40401abef706cccafbb7b98bd6a3d7",notes:"https://blog.trezor.io/trezor-suite-and-firmware-updates-june-2021-c70aba9f0e3f",changelog:`* Locking the device by holding finger on the homescreen. +* Support PIN of unlimited length. +* Allow decreasing the output value in RBF transactions. +* Reduce memory fragmentation. +* Update FIDO icons. +* Improve wording when showing multisig XPUBs.`},{required:!1,version:[2,3,6],min_bridge_version:[2,0,7],min_firmware_version:[2,0,8],min_bootloader_version:[2,0,0],url:"firmware/2/trezor-2.3.6.bin",url_bitcoinonly:"firmware/2/trezor-2.3.6-bitcoinonly.bin",fingerprint:"0efa3ba6135caea7693d145d60441eeb46283fe0b8b1fd59a04af33a638ad237",fingerprint_bitcoinonly:"e2cab40bb4c6ae65417b80ad564b905796038a0f5e6d0f50cead257fdd3a9c2d",changelog:"* Add compatibility paths for Unchained Capital"},{required:!1,version:[2,3,5],min_bridge_version:[2,0,7],min_firmware_version:[2,0,8],min_bootloader_version:[2,0,0],url:"firmware/2/trezor-2.3.5.bin",url_bitcoinonly:"firmware/2/trezor-2.3.5-bitcoinonly.bin",fingerprint:"c0a6cacfed5c7a691314919c22307c29fbe9522071a9a28669769c014762d386",fingerprint_bitcoinonly:"53e7ee5bfc75cfa6412d8de5461b1ea8d9b7e10970ce7cadae9cbb1e17bbb77d",notes:"https://blog.trezor.io/trezor-suite-and-firmware-updates-rbf-and-spending-now-live-c2f69c42d7f7",changelog:`* Replacement transaction signing for replace-by-fee and PayJoin. +* Support for Output Descriptors export. +* Paginated display for signing/verifying long messages. +* Show Ypub/Zpub correctly for multisig GetAddress. +* Show amounts in mBTC, uBTC and sat denominations.`},{required:!1,version:[2,3,4],min_bridge_version:[2,0,7],min_firmware_version:[2,0,8],min_bootloader_version:[2,0,0],url:"firmware/2/trezor-2.3.4.bin",url_bitcoinonly:"firmware/2/trezor-2.3.4-bitcoinonly.bin",fingerprint:"58b51a6587993965979a744f8fcd5c4761f11ce4bec6b059a5d56bd0987d6658",fingerprint_bitcoinonly:"085acbba98163284ef86dea637f9442b924e80fea245f5ebb60d5aab3be2b7b6",notes:"https://blog.trezor.io/firmware-update-for-trezor-model-t-version-2-3-4-for-monero-hard-fork-c2ff972101d3",changelog:"* This firmware only contains the changes needed after the latest Monero update (HF13) by introducing support for the CLSAG transactions."},{required:!1,version:[2,3,3],min_bridge_version:[2,0,7],min_firmware_version:[2,0,8],min_bootloader_version:[2,0,0],url:"firmware/2/trezor-2.3.3.bin",url_bitcoinonly:"firmware/2/trezor-2.3.3-bitcoinonly.bin",fingerprint:"46326222f8afcb82e1cd07867bc3bf8836f4e9d0f367e23b58d1e9bc32cd032e",fingerprint_bitcoinonly:"dda77cd7893a5f413f8fc4b2f44d1d43ed4b26e8ced5e6e578cc6b302c1a2310",notes:"https://blog.trezor.io/firmware-updates-for-trezor-model-t-version-2-3-3-and-trezor-model-one-version-1-9-3-c94f7a3b6fea",changelog:`* Advances the Passphrase feature by showing the entered passphrase on the Trezor screen before opening the wallet. +* Adds support for Verge (XVG). +* Drops support for Metaverse (ETP), GINcoin (GIN), Pesetacoin (PTC), and Zel (ZEL). +* Introduces a hard limit on transaction fees to prevent accidentally paying extra hefty fees (the limit can be manually disabled). +* Resolves the problems with generating the Crown addresses. +* Re-enables spending altcoins from Bitcoin paths (fixing some compatibility issues with Bitcoin Cash wallets). +* Fixes smaller issues with the user interface, customization, and more.`},{required:!1,version:[2,3,2],min_bridge_version:[2,0,7],min_firmware_version:[2,0,8],min_bootloader_version:[2,0,0],url:"firmware/2/trezor-2.3.2.bin",url_bitcoinonly:"firmware/2/trezor-2.3.2-bitcoinonly.bin",fingerprint:"f5ccdca0cbe163ecb93df726da72b69abb93f70d24d295db00b3ca2738216160",fingerprint_bitcoinonly:"389cb54fb6fc75489b788ad669ce51f41d47a67af54b8745a0dfe48da38a777f",notes:"https://blog.trezor.io/firmware-updates-for-trezor-model-t-version-2-3-2-and-trezor-model-one-version-1-9-2-f4f9c0f1ed7c",changelog:`* Introduces 'Autolock' feature, which automatically locks the device to enforce the PIN entry after a certain period. +* Updates the Cardano support to enable staking and other Shelley updates. +* Reintroduces the ability to spend pre-Overwinter (2018) funds on Zcash-like coins. +* Fixes compatibility issues with Casa and GreenAddress. +* Adds support for multiple change outputs in outgoing transactions. +* Improves some interface elements.`},{required:!1,version:[2,3,1],min_bridge_version:[2,0,7],min_firmware_version:[2,0,8],min_bootloader_version:[2,0,0],url:"firmware/2/trezor-2.3.1.bin",url_bitcoinonly:"firmware/2/trezor-2.3.1-bitcoinonly.bin",fingerprint:"37178a5ec24e34f8a0599aebcadaf206af3ebadef2fc596665d617dd3e05a5db",fingerprint_bitcoinonly:"41795ec196f74c5d6acecc09047a5eacf1dfca47b0aeaa8442a69568efe20ddb",notes:"https://blog.trezor.io/details-of-firmware-updates-for-trezor-one-version-1-9-1-and-trezor-model-t-version-2-3-1-1eba8f60f2dd",changelog:"* Refactor Bitcoin signing"},{required:!1,version:[2,3,0],min_bridge_version:[2,0,7],min_firmware_version:[2,0,8],min_bootloader_version:[2,0,0],url:"firmware/2/trezor-2.3.0.bin",url_bitcoinonly:"firmware/2/trezor-2.3.0-bitcoinonly.bin",fingerprint:"212929f63fe1393e2ff57e06537a38cff281e3cfb3a4e17235079e2f08871e6c",fingerprint_bitcoinonly:"bddc0fd3b52fd32d94b776048f62b3d03dcb6ab90140e482a042a2863093115f",notes:"https://blog.trezor.io/details-of-firmware-updates-for-trezor-one-version-1-9-0-and-trezor-model-t-version-2-3-0-46deb141fc09",changelog:`* Introduce Wipe code +* Introduce SD card protection +* Introduce passphrase cache +* U2F UX improvements +* Security fixes`},{required:!1,version:[2,1,8],min_bridge_version:[2,0,7],min_firmware_version:[2,0,8],min_bootloader_version:[2,0,0],url:"firmware/2/trezor-2.1.8.bin",url_bitcoinonly:"firmware/2/trezor-2.1.8-bitcoinonly.bin",fingerprint:"8a5fa12132651b6e33344fd025d0d90885f5cc1c342427ebcea4f0ae98b50d8c",fingerprint_bitcoinonly:"ec752e9fa99a29979497e093b32bdb2b592783e2b48c87d8f6f0c18c73cd3022",changelog:`* Support Tezos 005-BABYLON hardfork +* Show XPUBs in GetAddress for multisig +* Security improvements`},{required:!1,version:[2,1,7],min_bridge_version:[2,0,7],min_firmware_version:[2,0,8],min_bootloader_version:[2,0,0],url:"firmware/2/trezor-2.1.7.bin",url_bitcoinonly:"firmware/2/trezor-2.1.7-bitcoinonly.bin",fingerprint:"acf1b4c6fec3624a8fc53f9130ff53d690c3fa1c134bd4ca3e58ee7b5a0441d8",fingerprint_bitcoinonly:"fd92ac173a2cf93cc07ced3287e07800ed10466dc38c0c7240d9b20c689dd1d1",changelog:`* Super Shamir (with Groups) +* FIDO2 support with credential management +* Fix low memory issue`},{required:!1,version:[2,1,6],min_bridge_version:[2,0,7],min_firmware_version:[2,0,8],min_bootloader_version:[2,0,0],url:"firmware/2/trezor-2.1.6.bin",url_bitcoinonly:"firmware/2/trezor-2.1.6-bitcoinonly.bin",fingerprint:"e2032ad84108a85d4014d477b955b9181a1a56e6f222ef21bb7d47b503a02f0b",fingerprint_bitcoinonly:"4e7f0f95d71631159b9e873f36a812c93a10eca1fad5f38c78ae7fbe4c1f6ed4",changelog:`* Super Shamir (with Groups) +* FIDO2 support with credential management`},{required:!1,version:[2,1,5],min_bridge_version:[2,0,7],min_firmware_version:[2,1,0],min_bootloader_version:[2,0,0],url:"firmware/2/trezor-2.1.5.bin",url_bitcoinonly:"firmware/2/trezor-2.1.5-bitcoinonly.bin",fingerprint:"40e4bfaf3c5ec77872c1aaaac085aafcc443f60279ca2bb38d29c669233fdf62",fingerprint_bitcoinonly:"9de90d9f8ca12506f3b9a4cbe7616294144d965d67daa3a03bfe6c0b74a44843",changelog:`* Fix for sluggish U2F authentication when using Shamir +* Fix UI for Shamir with 33 words +* Fix Wanchain signing`},{required:!1,version:[2,1,4],min_bridge_version:[2,0,7],min_firmware_version:[2,1,0],min_bootloader_version:[2,0,0],url:"firmware/2/trezor-2.1.4.bin",fingerprint:"820611a92605b1ccc612b9bf8550617aec6962bd2484fcb6ae4792bc498654e4",changelog:`* Shamir Backup with Recovery persistence +* Touchscreen freeze fix +* Fix display of non-divisible OMNI amounts`},{required:!1,version:[2,1,1],min_bridge_version:[2,0,7],min_firmware_version:[2,0,5],min_bootloader_version:[2,0,0],url:"firmware/2/trezor-2.1.1.bin",fingerprint:"1b3166a878658fcd2ff82c7ac9a2587da544fd105f678cc7b4d41cba5a8d4c01",changelog:`* Hotfix for touchscreen freeze +* Don't rotate the screen via swipe gesture +* Set screen rotation via user setting +* More strict path validations +* Display non-zero locktime values +* EOS support +* Monero UI fixes +* Speed and memory optimizations`},{required:!1,version:[2,1,0],min_bridge_version:[2,0,7],min_firmware_version:[2,0,5],min_bootloader_version:[2,0,0],url:"firmware/2/trezor-2.1.0.bin",tags:["security"],fingerprint:"bb5b0308807b45d41d1e2ab66a468152997ad69a01099789d8a35e464cde999f",notes:"https://blog.trezor.io/firmware-updates-for-trezor-one-firmware-1-8-0-and-trezor-model-t-firmware-2-1-0-b9df91e048df",changelog:`* Security improvements +* Upgraded to new storage format +* Ripple, Stellar, Cardano and NEM fixes +* New coins: ATS, AXE, FLO, GIN, KMD, NIX, + PIVX, REOSC, XPM, XSN, ZCL +* New ETH tokens`},{required:!1,version:[2,0,10],min_bridge_version:[2,0,7],min_firmware_version:[2,0,5],min_bootloader_version:[2,0,0],url:"firmware/2/trezor-2.0.10.bin",fingerprint:"fcaa6ee206c2c121eb2d45d065d66f0879f14be45c244d4acf908be1de22275e",changelog:`* Fix Monero payment ID computation +* Fix issue with touch screen and flickering +* Add support for OMNI layer: OMNI/MAID/USDT +* Add support for new coins: BTX, CPC, GAME, RVN +* Add support for new Ethereum tokens`},{required:!1,version:[2,0,9],bootloader_version:[2,0,0],min_bridge_version:[2,0,7],min_firmware_version:[2,0,5],min_bootloader_version:[2,0,0],url:"firmware/2/trezor-2.0.9.bin",fingerprint:"87be93d6966e7a9eff78dc7b434d1a138ec8d1ee0300882d16f90b606f3a806b",changelog:"* Small Monero and Segwit bugfixes"},{required:!1,version:[2,0,8],bootloader_version:[2,0,0],min_bridge_version:[2,0,7],min_firmware_version:[2,0,5],min_bootloader_version:[2,0,0],url:"firmware/2/trezor-2.0.8.bin",fingerprint:"642b6215bda981f8eacafee34dbee5cdeee7d47d49f605bbe2828a8d9b79813d",changelog:`* Monero support +* Cardano support +* Stellar support +* Ripple support +* Tezos support +* Decred support +* Groestlcoin support +* Zencash support +* Zcash sapling hardfork support +* Implemented seedless setup`},{required:!1,version:[2,0,7],bootloader_version:[2,0,0],min_bridge_version:[2,0,7],min_firmware_version:[2,0,5],min_bootloader_version:[2,0,0],url:"firmware/2/trezor-2.0.7.bin",fingerprint:"f3a42e640e526fba6574fafa520fc7d97ef9f557d24da24d9a2ea4176a4c4164",changelog:`* Bitcoin Cash cashaddr support +* Zcash Overwinter hardfork support +* NEM support +* Lisk support +* Show warning on home screen if PIN is not set +* Support for new coins: + - Bitcoin Private, Fujicoin, Vertcoin, Viacoin, Zcoin +* Support for new Ethereum networks: + - EOS Classic, Ethereum Social, Ellaism, Callisto, EtherGem, Wanchain +* Support for 500+ new Ethereum tokens`,notes:"https://blog.trezor.io/june-updates-trezor-devices-one-modelt-wallet-zcash-cashaddr-doge-8d98c2a73036"},{required:!1,version:[2,0,6],bootloader_version:[2,0,0],min_bridge_version:[2,0,7],min_firmware_version:[2,0,5],min_bootloader_version:[2,0,0],url:"firmware/2/trezor-2.0.6.bin",fingerprint:"4eccabf2fd7e121ed0da657c064a65c5694402497e60ea2ac2dcf1e118db9cc6",changelog:`* Fix layout for Ethereum transactions +* Fix public key generation for SSH and GPG +* Add special characters to passphrase keyboard`},{required:!0,version:[2,0,5],bootloader_version:[2,0,0],min_bridge_version:[2,0,7],min_firmware_version:[2,0,5],min_bootloader_version:[2,0,0],url:"firmware/2/trezor-2.0.5.bin",fingerprint:"851172eab96c07bf9efb43771cb0fd14dc0320a68de047132c7bd787a1ad64e9",changelog:"* First public release"}]});var Aoe=x((HCt,_ze)=>{_ze.exports={nested:{BinanceGetAddress:{fields:{address_n:{rule:"repeated",type:"uint32",id:1,options:{packed:!1}},show_display:{type:"bool",id:2}}},BinanceAddress:{fields:{address:{rule:"required",type:"string",id:1}}},BinanceGetPublicKey:{fields:{address_n:{rule:"repeated",type:"uint32",id:1,options:{packed:!1}},show_display:{type:"bool",id:2}}},BinancePublicKey:{fields:{public_key:{rule:"required",type:"bytes",id:1}}},BinanceSignTx:{fields:{address_n:{rule:"repeated",type:"uint32",id:1,options:{packed:!1}},msg_count:{rule:"required",type:"uint32",id:2},account_number:{rule:"required",type:"sint64",id:3},chain_id:{type:"string",id:4},memo:{type:"string",id:5},sequence:{rule:"required",type:"sint64",id:6},source:{rule:"required",type:"sint64",id:7}}},BinanceTxRequest:{fields:{}},BinanceTransferMsg:{fields:{inputs:{rule:"repeated",type:"BinanceInputOutput",id:1},outputs:{rule:"repeated",type:"BinanceInputOutput",id:2}},nested:{BinanceInputOutput:{fields:{address:{rule:"required",type:"string",id:1},coins:{rule:"repeated",type:"BinanceCoin",id:2}}},BinanceCoin:{fields:{amount:{rule:"required",type:"sint64",id:1},denom:{rule:"required",type:"string",id:2}}}}},BinanceOrderMsg:{fields:{id:{type:"string",id:1},ordertype:{rule:"required",type:"BinanceOrderType",id:2},price:{rule:"required",type:"sint64",id:3},quantity:{rule:"required",type:"sint64",id:4},sender:{type:"string",id:5},side:{rule:"required",type:"BinanceOrderSide",id:6},symbol:{type:"string",id:7},timeinforce:{rule:"required",type:"BinanceTimeInForce",id:8}},nested:{BinanceOrderType:{values:{OT_UNKNOWN:0,MARKET:1,LIMIT:2,OT_RESERVED:3}},BinanceOrderSide:{values:{SIDE_UNKNOWN:0,BUY:1,SELL:2}},BinanceTimeInForce:{values:{TIF_UNKNOWN:0,GTE:1,TIF_RESERVED:2,IOC:3}}}},BinanceCancelMsg:{fields:{refid:{type:"string",id:1},sender:{type:"string",id:2},symbol:{type:"string",id:3}}},BinanceSignedTx:{fields:{signature:{rule:"required",type:"bytes",id:1},public_key:{rule:"required",type:"bytes",id:2}}},InputScriptType:{values:{SPENDADDRESS:0,SPENDMULTISIG:1,EXTERNAL:2,SPENDWITNESS:3,SPENDP2SHWITNESS:4,SPENDTAPROOT:5}},OutputScriptType:{values:{PAYTOADDRESS:0,PAYTOSCRIPTHASH:1,PAYTOMULTISIG:2,PAYTOOPRETURN:3,PAYTOWITNESS:4,PAYTOP2SHWITNESS:5,PAYTOTAPROOT:6}},DecredStakingSpendType:{values:{SSGen:0,SSRTX:1}},AmountUnit:{values:{BITCOIN:0,MILLIBITCOIN:1,MICROBITCOIN:2,SATOSHI:3}},MultisigRedeemScriptType:{fields:{pubkeys:{rule:"repeated",type:"HDNodePathType",id:1},signatures:{rule:"repeated",type:"bytes",id:2},m:{rule:"required",type:"uint32",id:3},nodes:{rule:"repeated",type:"HDNodeType",id:4},address_n:{rule:"repeated",type:"uint32",id:5,options:{packed:!1}}},nested:{HDNodePathType:{fields:{node:{rule:"required",type:"HDNodeType",id:1},address_n:{rule:"repeated",type:"uint32",id:2,options:{packed:!1}}}}}},GetPublicKey:{fields:{address_n:{rule:"repeated",type:"uint32",id:1,options:{packed:!1}},ecdsa_curve_name:{type:"string",id:2},show_display:{type:"bool",id:3},coin_name:{type:"string",id:4,options:{default:"Bitcoin"}},script_type:{type:"InputScriptType",id:5,options:{default:"SPENDADDRESS"}},ignore_xpub_magic:{type:"bool",id:6}}},PublicKey:{fields:{node:{rule:"required",type:"HDNodeType",id:1},xpub:{rule:"required",type:"string",id:2},root_fingerprint:{type:"uint32",id:3}}},GetAddress:{fields:{address_n:{rule:"repeated",type:"uint32",id:1,options:{packed:!1}},coin_name:{type:"string",id:2,options:{default:"Bitcoin"}},show_display:{type:"bool",id:3},multisig:{type:"MultisigRedeemScriptType",id:4},script_type:{type:"InputScriptType",id:5,options:{default:"SPENDADDRESS"}},ignore_xpub_magic:{type:"bool",id:6}}},Address:{fields:{address:{rule:"required",type:"string",id:1},mac:{type:"bytes",id:2}}},GetOwnershipId:{fields:{address_n:{rule:"repeated",type:"uint32",id:1,options:{packed:!1}},coin_name:{type:"string",id:2,options:{default:"Bitcoin"}},multisig:{type:"MultisigRedeemScriptType",id:3},script_type:{type:"InputScriptType",id:4,options:{default:"SPENDADDRESS"}}}},OwnershipId:{fields:{ownership_id:{rule:"required",type:"bytes",id:1}}},SignMessage:{fields:{address_n:{rule:"repeated",type:"uint32",id:1,options:{packed:!1}},message:{rule:"required",type:"bytes",id:2},coin_name:{type:"string",id:3,options:{default:"Bitcoin"}},script_type:{type:"InputScriptType",id:4,options:{default:"SPENDADDRESS"}},no_script_type:{type:"bool",id:5}}},MessageSignature:{fields:{address:{rule:"required",type:"string",id:1},signature:{rule:"required",type:"bytes",id:2}}},VerifyMessage:{fields:{address:{rule:"required",type:"string",id:1},signature:{rule:"required",type:"bytes",id:2},message:{rule:"required",type:"bytes",id:3},coin_name:{type:"string",id:4,options:{default:"Bitcoin"}}}},SignTx:{fields:{outputs_count:{rule:"required",type:"uint32",id:1},inputs_count:{rule:"required",type:"uint32",id:2},coin_name:{type:"string",id:3,options:{default:"Bitcoin"}},version:{type:"uint32",id:4,options:{default:1}},lock_time:{type:"uint32",id:5,options:{default:0}},expiry:{type:"uint32",id:6},overwintered:{type:"bool",id:7,options:{deprecated:!0}},version_group_id:{type:"uint32",id:8},timestamp:{type:"uint32",id:9},branch_id:{type:"uint32",id:10},amount_unit:{type:"AmountUnit",id:11,options:{default:"BITCOIN"}},decred_staking_ticket:{type:"bool",id:12,options:{default:!1}},serialize:{type:"bool",id:13,options:{default:!0}},coinjoin_request:{type:"CoinJoinRequest",id:14}},nested:{CoinJoinRequest:{fields:{fee_rate:{rule:"required",type:"uint32",id:1},no_fee_threshold:{rule:"required",type:"uint64",id:2},min_registrable_amount:{rule:"required",type:"uint64",id:3},mask_public_key:{rule:"required",type:"bytes",id:4},signature:{rule:"required",type:"bytes",id:5}}}}},TxRequest:{fields:{request_type:{type:"RequestType",id:1},details:{type:"TxRequestDetailsType",id:2},serialized:{type:"TxRequestSerializedType",id:3}},nested:{RequestType:{values:{TXINPUT:0,TXOUTPUT:1,TXMETA:2,TXFINISHED:3,TXEXTRADATA:4,TXORIGINPUT:5,TXORIGOUTPUT:6,TXPAYMENTREQ:7}},TxRequestDetailsType:{fields:{request_index:{type:"uint32",id:1},tx_hash:{type:"bytes",id:2},extra_data_len:{type:"uint32",id:3},extra_data_offset:{type:"uint32",id:4}}},TxRequestSerializedType:{fields:{signature_index:{type:"uint32",id:1},signature:{type:"bytes",id:2},serialized_tx:{type:"bytes",id:3}}}}},TxAck:{options:{deprecated:!0},fields:{tx:{type:"TransactionType",id:1}},nested:{TransactionType:{fields:{version:{type:"uint32",id:1},inputs:{rule:"repeated",type:"TxInputType",id:2},bin_outputs:{rule:"repeated",type:"TxOutputBinType",id:3},lock_time:{type:"uint32",id:4},outputs:{rule:"repeated",type:"TxOutputType",id:5},inputs_cnt:{type:"uint32",id:6},outputs_cnt:{type:"uint32",id:7},extra_data:{type:"bytes",id:8},extra_data_len:{type:"uint32",id:9},expiry:{type:"uint32",id:10},overwintered:{type:"bool",id:11,options:{deprecated:!0}},version_group_id:{type:"uint32",id:12},timestamp:{type:"uint32",id:13},branch_id:{type:"uint32",id:14}},nested:{TxInputType:{fields:{address_n:{rule:"repeated",type:"uint32",id:1,options:{packed:!1}},prev_hash:{rule:"required",type:"bytes",id:2},prev_index:{rule:"required",type:"uint32",id:3},script_sig:{type:"bytes",id:4},sequence:{type:"uint32",id:5,options:{default:4294967295}},script_type:{type:"InputScriptType",id:6,options:{default:"SPENDADDRESS"}},multisig:{type:"MultisigRedeemScriptType",id:7},amount:{type:"uint64",id:8},decred_tree:{type:"uint32",id:9},witness:{type:"bytes",id:13},ownership_proof:{type:"bytes",id:14},commitment_data:{type:"bytes",id:15},orig_hash:{type:"bytes",id:16},orig_index:{type:"uint32",id:17},decred_staking_spend:{type:"DecredStakingSpendType",id:18},script_pubkey:{type:"bytes",id:19},coinjoin_flags:{type:"uint32",id:20,options:{default:0}}}},TxOutputBinType:{fields:{amount:{rule:"required",type:"uint64",id:1},script_pubkey:{rule:"required",type:"bytes",id:2},decred_script_version:{type:"uint32",id:3}}},TxOutputType:{fields:{address:{type:"string",id:1},address_n:{rule:"repeated",type:"uint32",id:2,options:{packed:!1}},amount:{rule:"required",type:"uint64",id:3},script_type:{type:"OutputScriptType",id:4,options:{default:"PAYTOADDRESS"}},multisig:{type:"MultisigRedeemScriptType",id:5},op_return_data:{type:"bytes",id:6},orig_hash:{type:"bytes",id:10},orig_index:{type:"uint32",id:11},payment_req_index:{type:"uint32",id:12,options:{"(experimental)":!0}}}}}}}},TxInput:{fields:{address_n:{rule:"repeated",type:"uint32",id:1,options:{packed:!1}},prev_hash:{rule:"required",type:"bytes",id:2},prev_index:{rule:"required",type:"uint32",id:3},script_sig:{type:"bytes",id:4},sequence:{type:"uint32",id:5,options:{default:4294967295}},script_type:{type:"InputScriptType",id:6,options:{default:"SPENDADDRESS"}},multisig:{type:"MultisigRedeemScriptType",id:7},amount:{rule:"required",type:"uint64",id:8},decred_tree:{type:"uint32",id:9},witness:{type:"bytes",id:13},ownership_proof:{type:"bytes",id:14},commitment_data:{type:"bytes",id:15},orig_hash:{type:"bytes",id:16},orig_index:{type:"uint32",id:17},decred_staking_spend:{type:"DecredStakingSpendType",id:18},script_pubkey:{type:"bytes",id:19},coinjoin_flags:{type:"uint32",id:20,options:{default:0}}}},TxOutput:{fields:{address:{type:"string",id:1},address_n:{rule:"repeated",type:"uint32",id:2,options:{packed:!1}},amount:{rule:"required",type:"uint64",id:3},script_type:{type:"OutputScriptType",id:4,options:{default:"PAYTOADDRESS"}},multisig:{type:"MultisigRedeemScriptType",id:5},op_return_data:{type:"bytes",id:6},orig_hash:{type:"bytes",id:10},orig_index:{type:"uint32",id:11},payment_req_index:{type:"uint32",id:12,options:{"(experimental)":!0}}}},PrevTx:{fields:{version:{rule:"required",type:"uint32",id:1},lock_time:{rule:"required",type:"uint32",id:4},inputs_count:{rule:"required",type:"uint32",id:6},outputs_count:{rule:"required",type:"uint32",id:7},extra_data_len:{type:"uint32",id:9,options:{default:0}},expiry:{type:"uint32",id:10},version_group_id:{type:"uint32",id:12},timestamp:{type:"uint32",id:13},branch_id:{type:"uint32",id:14}}},PrevInput:{fields:{prev_hash:{rule:"required",type:"bytes",id:2},prev_index:{rule:"required",type:"uint32",id:3},script_sig:{rule:"required",type:"bytes",id:4},sequence:{rule:"required",type:"uint32",id:5},decred_tree:{type:"uint32",id:9}}},PrevOutput:{fields:{amount:{rule:"required",type:"uint64",id:1},script_pubkey:{rule:"required",type:"bytes",id:2},decred_script_version:{type:"uint32",id:3}}},TxAckPaymentRequest:{options:{"(unstable)":!0},fields:{nonce:{type:"bytes",id:1},recipient_name:{rule:"required",type:"string",id:2},memos:{rule:"repeated",type:"PaymentRequestMemo",id:3},amount:{type:"uint64",id:4},signature:{rule:"required",type:"bytes",id:5}},nested:{PaymentRequestMemo:{fields:{text_memo:{type:"TextMemo",id:1},refund_memo:{type:"RefundMemo",id:2},coin_purchase_memo:{type:"CoinPurchaseMemo",id:3}}},TextMemo:{fields:{text:{rule:"required",type:"string",id:1}}},RefundMemo:{fields:{address:{rule:"required",type:"string",id:1},mac:{rule:"required",type:"bytes",id:2}}},CoinPurchaseMemo:{fields:{coin_type:{rule:"required",type:"uint32",id:1},amount:{rule:"required",type:"string",id:2},address:{rule:"required",type:"string",id:3},mac:{rule:"required",type:"bytes",id:4}}}}},TxAckInput:{options:{"(wire_type)":22},fields:{tx:{rule:"required",type:"TxAckInputWrapper",id:1}},nested:{TxAckInputWrapper:{fields:{input:{rule:"required",type:"TxInput",id:2}}}}},TxAckOutput:{options:{"(wire_type)":22},fields:{tx:{rule:"required",type:"TxAckOutputWrapper",id:1}},nested:{TxAckOutputWrapper:{fields:{output:{rule:"required",type:"TxOutput",id:5}}}}},TxAckPrevMeta:{options:{"(wire_type)":22},fields:{tx:{rule:"required",type:"PrevTx",id:1}}},TxAckPrevInput:{options:{"(wire_type)":22},fields:{tx:{rule:"required",type:"TxAckPrevInputWrapper",id:1}},nested:{TxAckPrevInputWrapper:{fields:{input:{rule:"required",type:"PrevInput",id:2}}}}},TxAckPrevOutput:{options:{"(wire_type)":22},fields:{tx:{rule:"required",type:"TxAckPrevOutputWrapper",id:1}},nested:{TxAckPrevOutputWrapper:{fields:{output:{rule:"required",type:"PrevOutput",id:3}}}}},TxAckPrevExtraData:{options:{"(wire_type)":22},fields:{tx:{rule:"required",type:"TxAckPrevExtraDataWrapper",id:1}},nested:{TxAckPrevExtraDataWrapper:{fields:{extra_data_chunk:{rule:"required",type:"bytes",id:8}}}}},GetOwnershipProof:{fields:{address_n:{rule:"repeated",type:"uint32",id:1,options:{packed:!1}},coin_name:{type:"string",id:2,options:{default:"Bitcoin"}},script_type:{type:"InputScriptType",id:3,options:{default:"SPENDWITNESS"}},multisig:{type:"MultisigRedeemScriptType",id:4},user_confirmation:{type:"bool",id:5,options:{default:!1}},ownership_ids:{rule:"repeated",type:"bytes",id:6},commitment_data:{type:"bytes",id:7,options:{default:""}}}},OwnershipProof:{fields:{ownership_proof:{rule:"required",type:"bytes",id:1},signature:{rule:"required",type:"bytes",id:2}}},AuthorizeCoinJoin:{options:{"(unstable)":!0},fields:{coordinator:{rule:"required",type:"string",id:1},max_rounds:{rule:"required",type:"uint64",id:2},max_coordinator_fee_rate:{rule:"required",type:"uint32",id:3},max_fee_per_kvbyte:{rule:"required",type:"uint32",id:4},address_n:{rule:"repeated",type:"uint32",id:5,options:{packed:!1}},coin_name:{type:"string",id:6,options:{default:"Bitcoin"}},script_type:{type:"InputScriptType",id:7,options:{default:"SPENDADDRESS"}},amount_unit:{type:"AmountUnit",id:8,options:{default:"BITCOIN"}}}},FirmwareErase:{fields:{length:{type:"uint32",id:1}}},FirmwareRequest:{fields:{offset:{type:"uint32",id:1},length:{type:"uint32",id:2}}},FirmwareUpload:{fields:{payload:{rule:"required",type:"bytes",id:1},hash:{type:"bytes",id:2}}},SelfTest:{fields:{payload:{type:"bytes",id:1}}},CardanoDerivationType:{values:{LEDGER:0,ICARUS:1,ICARUS_TREZOR:2}},CardanoAddressType:{values:{BASE:0,BASE_SCRIPT_KEY:1,BASE_KEY_SCRIPT:2,BASE_SCRIPT_SCRIPT:3,POINTER:4,POINTER_SCRIPT:5,ENTERPRISE:6,ENTERPRISE_SCRIPT:7,BYRON:8,REWARD:14,REWARD_SCRIPT:15}},CardanoNativeScriptType:{values:{PUB_KEY:0,ALL:1,ANY:2,N_OF_K:3,INVALID_BEFORE:4,INVALID_HEREAFTER:5}},CardanoNativeScriptHashDisplayFormat:{values:{HIDE:0,BECH32:1,POLICY_ID:2}},CardanoTxOutputSerializationFormat:{values:{ARRAY_LEGACY:0,MAP_BABBAGE:1}},CardanoCertificateType:{values:{STAKE_REGISTRATION:0,STAKE_DEREGISTRATION:1,STAKE_DELEGATION:2,STAKE_POOL_REGISTRATION:3}},CardanoPoolRelayType:{values:{SINGLE_HOST_IP:0,SINGLE_HOST_NAME:1,MULTIPLE_HOST_NAME:2}},CardanoTxAuxiliaryDataSupplementType:{values:{NONE:0,GOVERNANCE_REGISTRATION_SIGNATURE:1}},CardanoGovernanceRegistrationFormat:{values:{CIP15:0,CIP36:1}},CardanoTxSigningMode:{values:{ORDINARY_TRANSACTION:0,POOL_REGISTRATION_AS_OWNER:1,MULTISIG_TRANSACTION:2,PLUTUS_TRANSACTION:3}},CardanoTxWitnessType:{values:{BYRON_WITNESS:0,SHELLEY_WITNESS:1}},CardanoBlockchainPointerType:{fields:{block_index:{rule:"required",type:"uint32",id:1},tx_index:{rule:"required",type:"uint32",id:2},certificate_index:{rule:"required",type:"uint32",id:3}}},CardanoNativeScript:{fields:{type:{rule:"required",type:"CardanoNativeScriptType",id:1},scripts:{rule:"repeated",type:"CardanoNativeScript",id:2},key_hash:{type:"bytes",id:3},key_path:{rule:"repeated",type:"uint32",id:4,options:{packed:!1}},required_signatures_count:{type:"uint32",id:5},invalid_before:{type:"uint64",id:6},invalid_hereafter:{type:"uint64",id:7}}},CardanoGetNativeScriptHash:{fields:{script:{rule:"required",type:"CardanoNativeScript",id:1},display_format:{rule:"required",type:"CardanoNativeScriptHashDisplayFormat",id:2},derivation_type:{rule:"required",type:"CardanoDerivationType",id:3}}},CardanoNativeScriptHash:{fields:{script_hash:{rule:"required",type:"bytes",id:1}}},CardanoAddressParametersType:{fields:{address_type:{rule:"required",type:"CardanoAddressType",id:1},address_n:{rule:"repeated",type:"uint32",id:2,options:{packed:!1}},address_n_staking:{rule:"repeated",type:"uint32",id:3,options:{packed:!1}},staking_key_hash:{type:"bytes",id:4},certificate_pointer:{type:"CardanoBlockchainPointerType",id:5},script_payment_hash:{type:"bytes",id:6},script_staking_hash:{type:"bytes",id:7}}},CardanoGetAddress:{fields:{show_display:{type:"bool",id:2,options:{default:!1}},protocol_magic:{rule:"required",type:"uint32",id:3},network_id:{rule:"required",type:"uint32",id:4},address_parameters:{rule:"required",type:"CardanoAddressParametersType",id:5},derivation_type:{rule:"required",type:"CardanoDerivationType",id:6}}},CardanoAddress:{fields:{address:{rule:"required",type:"string",id:1}}},CardanoGetPublicKey:{fields:{address_n:{rule:"repeated",type:"uint32",id:1,options:{packed:!1}},show_display:{type:"bool",id:2},derivation_type:{rule:"required",type:"CardanoDerivationType",id:3}}},CardanoPublicKey:{fields:{xpub:{rule:"required",type:"string",id:1},node:{rule:"required",type:"HDNodeType",id:2}}},CardanoSignTxInit:{fields:{signing_mode:{rule:"required",type:"CardanoTxSigningMode",id:1},protocol_magic:{rule:"required",type:"uint32",id:2},network_id:{rule:"required",type:"uint32",id:3},inputs_count:{rule:"required",type:"uint32",id:4},outputs_count:{rule:"required",type:"uint32",id:5},fee:{rule:"required",type:"uint64",id:6},ttl:{type:"uint64",id:7},certificates_count:{rule:"required",type:"uint32",id:8},withdrawals_count:{rule:"required",type:"uint32",id:9},has_auxiliary_data:{rule:"required",type:"bool",id:10},validity_interval_start:{type:"uint64",id:11},witness_requests_count:{rule:"required",type:"uint32",id:12},minting_asset_groups_count:{rule:"required",type:"uint32",id:13},derivation_type:{rule:"required",type:"CardanoDerivationType",id:14},include_network_id:{type:"bool",id:15,options:{default:!1}},script_data_hash:{type:"bytes",id:16},collateral_inputs_count:{rule:"required",type:"uint32",id:17},required_signers_count:{rule:"required",type:"uint32",id:18},has_collateral_return:{type:"bool",id:19,options:{default:!1}},total_collateral:{type:"uint64",id:20},reference_inputs_count:{type:"uint32",id:21,options:{default:0}}}},CardanoTxInput:{fields:{prev_hash:{rule:"required",type:"bytes",id:1},prev_index:{rule:"required",type:"uint32",id:2}}},CardanoTxOutput:{fields:{address:{type:"string",id:1},address_parameters:{type:"CardanoAddressParametersType",id:2},amount:{rule:"required",type:"uint64",id:3},asset_groups_count:{rule:"required",type:"uint32",id:4},datum_hash:{type:"bytes",id:5},format:{type:"CardanoTxOutputSerializationFormat",id:6,options:{default:"ARRAY_LEGACY"}},inline_datum_size:{type:"uint32",id:7,options:{default:0}},reference_script_size:{type:"uint32",id:8,options:{default:0}}}},CardanoAssetGroup:{fields:{policy_id:{rule:"required",type:"bytes",id:1},tokens_count:{rule:"required",type:"uint32",id:2}}},CardanoToken:{fields:{asset_name_bytes:{rule:"required",type:"bytes",id:1},amount:{type:"uint64",id:2},mint_amount:{type:"sint64",id:3}}},CardanoTxInlineDatumChunk:{fields:{data:{rule:"required",type:"bytes",id:1}}},CardanoTxReferenceScriptChunk:{fields:{data:{rule:"required",type:"bytes",id:1}}},CardanoPoolOwner:{fields:{staking_key_path:{rule:"repeated",type:"uint32",id:1,options:{packed:!1}},staking_key_hash:{type:"bytes",id:2}}},CardanoPoolRelayParameters:{fields:{type:{rule:"required",type:"CardanoPoolRelayType",id:1},ipv4_address:{type:"bytes",id:2},ipv6_address:{type:"bytes",id:3},host_name:{type:"string",id:4},port:{type:"uint32",id:5}}},CardanoPoolMetadataType:{fields:{url:{rule:"required",type:"string",id:1},hash:{rule:"required",type:"bytes",id:2}}},CardanoPoolParametersType:{fields:{pool_id:{rule:"required",type:"bytes",id:1},vrf_key_hash:{rule:"required",type:"bytes",id:2},pledge:{rule:"required",type:"uint64",id:3},cost:{rule:"required",type:"uint64",id:4},margin_numerator:{rule:"required",type:"uint64",id:5},margin_denominator:{rule:"required",type:"uint64",id:6},reward_account:{rule:"required",type:"string",id:7},metadata:{type:"CardanoPoolMetadataType",id:10},owners_count:{rule:"required",type:"uint32",id:11},relays_count:{rule:"required",type:"uint32",id:12}}},CardanoTxCertificate:{fields:{type:{rule:"required",type:"CardanoCertificateType",id:1},path:{rule:"repeated",type:"uint32",id:2,options:{packed:!1}},pool:{type:"bytes",id:3},pool_parameters:{type:"CardanoPoolParametersType",id:4},script_hash:{type:"bytes",id:5},key_hash:{type:"bytes",id:6}}},CardanoTxWithdrawal:{fields:{path:{rule:"repeated",type:"uint32",id:1,options:{packed:!1}},amount:{rule:"required",type:"uint64",id:2},script_hash:{type:"bytes",id:3},key_hash:{type:"bytes",id:4}}},CardanoGovernanceRegistrationDelegation:{fields:{voting_public_key:{rule:"required",type:"bytes",id:1},weight:{rule:"required",type:"uint32",id:2}}},CardanoGovernanceRegistrationParametersType:{fields:{voting_public_key:{type:"bytes",id:1},staking_path:{rule:"repeated",type:"uint32",id:2,options:{packed:!1}},reward_address_parameters:{rule:"required",type:"CardanoAddressParametersType",id:3},nonce:{rule:"required",type:"uint64",id:4},format:{type:"CardanoGovernanceRegistrationFormat",id:5,options:{default:"CIP15"}},delegations:{rule:"repeated",type:"CardanoGovernanceRegistrationDelegation",id:6},voting_purpose:{type:"uint64",id:7}}},CardanoTxAuxiliaryData:{fields:{governance_registration_parameters:{type:"CardanoGovernanceRegistrationParametersType",id:1},hash:{type:"bytes",id:2}}},CardanoTxMint:{fields:{asset_groups_count:{rule:"required",type:"uint32",id:1}}},CardanoTxCollateralInput:{fields:{prev_hash:{rule:"required",type:"bytes",id:1},prev_index:{rule:"required",type:"uint32",id:2}}},CardanoTxRequiredSigner:{fields:{key_hash:{type:"bytes",id:1},key_path:{rule:"repeated",type:"uint32",id:2,options:{packed:!1}}}},CardanoTxReferenceInput:{fields:{prev_hash:{rule:"required",type:"bytes",id:1},prev_index:{rule:"required",type:"uint32",id:2}}},CardanoTxItemAck:{fields:{}},CardanoTxAuxiliaryDataSupplement:{fields:{type:{rule:"required",type:"CardanoTxAuxiliaryDataSupplementType",id:1},auxiliary_data_hash:{type:"bytes",id:2},governance_signature:{type:"bytes",id:3}}},CardanoTxWitnessRequest:{fields:{path:{rule:"repeated",type:"uint32",id:1,options:{packed:!1}}}},CardanoTxWitnessResponse:{fields:{type:{rule:"required",type:"CardanoTxWitnessType",id:1},pub_key:{rule:"required",type:"bytes",id:2},signature:{rule:"required",type:"bytes",id:3},chain_code:{type:"bytes",id:4}}},CardanoTxHostAck:{fields:{}},CardanoTxBodyHash:{fields:{tx_hash:{rule:"required",type:"bytes",id:1}}},CardanoSignTxFinished:{fields:{}},Success:{fields:{message:{type:"string",id:1,options:{default:""}}}},Failure:{fields:{code:{type:"FailureType",id:1},message:{type:"string",id:2}},nested:{FailureType:{values:{Failure_UnexpectedMessage:1,Failure_ButtonExpected:2,Failure_DataError:3,Failure_ActionCancelled:4,Failure_PinExpected:5,Failure_PinCancelled:6,Failure_PinInvalid:7,Failure_InvalidSignature:8,Failure_ProcessError:9,Failure_NotEnoughFunds:10,Failure_NotInitialized:11,Failure_PinMismatch:12,Failure_WipeCodeMismatch:13,Failure_InvalidSession:14,Failure_FirmwareError:99}}}},ButtonRequest:{fields:{code:{type:"ButtonRequestType",id:1},pages:{type:"uint32",id:2}},nested:{ButtonRequestType:{values:{ButtonRequest_Other:1,ButtonRequest_FeeOverThreshold:2,ButtonRequest_ConfirmOutput:3,ButtonRequest_ResetDevice:4,ButtonRequest_ConfirmWord:5,ButtonRequest_WipeDevice:6,ButtonRequest_ProtectCall:7,ButtonRequest_SignTx:8,ButtonRequest_FirmwareCheck:9,ButtonRequest_Address:10,ButtonRequest_PublicKey:11,ButtonRequest_MnemonicWordCount:12,ButtonRequest_MnemonicInput:13,_Deprecated_ButtonRequest_PassphraseType:14,ButtonRequest_UnknownDerivationPath:15,ButtonRequest_RecoveryHomepage:16,ButtonRequest_Success:17,ButtonRequest_Warning:18,ButtonRequest_PassphraseEntry:19,ButtonRequest_PinEntry:20}}}},ButtonAck:{fields:{}},PinMatrixRequest:{fields:{type:{type:"PinMatrixRequestType",id:1}},nested:{PinMatrixRequestType:{values:{PinMatrixRequestType_Current:1,PinMatrixRequestType_NewFirst:2,PinMatrixRequestType_NewSecond:3,PinMatrixRequestType_WipeCodeFirst:4,PinMatrixRequestType_WipeCodeSecond:5}}}},PinMatrixAck:{fields:{pin:{rule:"required",type:"string",id:1}}},PassphraseRequest:{fields:{_on_device:{type:"bool",id:1,options:{deprecated:!0}}}},PassphraseAck:{fields:{passphrase:{type:"string",id:1},_state:{type:"bytes",id:2,options:{deprecated:!0}},on_device:{type:"bool",id:3}}},Deprecated_PassphraseStateRequest:{options:{deprecated:!0},fields:{state:{type:"bytes",id:1}}},Deprecated_PassphraseStateAck:{options:{deprecated:!0},fields:{}},HDNodeType:{fields:{depth:{rule:"required",type:"uint32",id:1},fingerprint:{rule:"required",type:"uint32",id:2},child_num:{rule:"required",type:"uint32",id:3},chain_code:{rule:"required",type:"bytes",id:4},private_key:{type:"bytes",id:5},public_key:{rule:"required",type:"bytes",id:6}}},CipherKeyValue:{fields:{address_n:{rule:"repeated",type:"uint32",id:1,options:{packed:!1}},key:{rule:"required",type:"string",id:2},value:{rule:"required",type:"bytes",id:3},encrypt:{type:"bool",id:4},ask_on_encrypt:{type:"bool",id:5},ask_on_decrypt:{type:"bool",id:6},iv:{type:"bytes",id:7}}},CipheredKeyValue:{fields:{value:{rule:"required",type:"bytes",id:1}}},IdentityType:{fields:{proto:{type:"string",id:1},user:{type:"string",id:2},host:{type:"string",id:3},port:{type:"string",id:4},path:{type:"string",id:5},index:{type:"uint32",id:6,options:{default:0}}}},SignIdentity:{fields:{identity:{rule:"required",type:"IdentityType",id:1},challenge_hidden:{type:"bytes",id:2,options:{default:""}},challenge_visual:{type:"string",id:3,options:{default:""}},ecdsa_curve_name:{type:"string",id:4}}},SignedIdentity:{fields:{address:{type:"string",id:1},public_key:{rule:"required",type:"bytes",id:2},signature:{rule:"required",type:"bytes",id:3}}},GetECDHSessionKey:{fields:{identity:{rule:"required",type:"IdentityType",id:1},peer_public_key:{rule:"required",type:"bytes",id:2},ecdsa_curve_name:{type:"string",id:3}}},ECDHSessionKey:{fields:{session_key:{rule:"required",type:"bytes",id:1},public_key:{type:"bytes",id:2}}},CosiCommit:{fields:{address_n:{rule:"repeated",type:"uint32",id:1,options:{packed:!1}},data:{type:"bytes",id:2,options:{deprecated:!0}}}},CosiCommitment:{fields:{commitment:{type:"bytes",id:1},pubkey:{type:"bytes",id:2}}},CosiSign:{fields:{address_n:{rule:"repeated",type:"uint32",id:1,options:{packed:!1}},data:{type:"bytes",id:2},global_commitment:{type:"bytes",id:3},global_pubkey:{type:"bytes",id:4}}},CosiSignature:{fields:{signature:{rule:"required",type:"bytes",id:1}}},DebugLinkDecision:{fields:{button:{type:"DebugButton",id:1},swipe:{type:"DebugSwipeDirection",id:2},input:{type:"string",id:3},x:{type:"uint32",id:4},y:{type:"uint32",id:5},wait:{type:"bool",id:6},hold_ms:{type:"uint32",id:7}},nested:{DebugSwipeDirection:{values:{UP:0,DOWN:1,LEFT:2,RIGHT:3}},DebugButton:{values:{NO:0,YES:1,INFO:2}}}},DebugLinkLayout:{fields:{lines:{rule:"repeated",type:"string",id:1}}},DebugLinkReseedRandom:{fields:{value:{type:"uint32",id:1}}},DebugLinkRecordScreen:{fields:{target_directory:{type:"string",id:1}}},DebugLinkGetState:{fields:{wait_word_list:{type:"bool",id:1},wait_word_pos:{type:"bool",id:2},wait_layout:{type:"bool",id:3}}},DebugLinkState:{fields:{layout:{type:"bytes",id:1},pin:{type:"string",id:2},matrix:{type:"string",id:3},mnemonic_secret:{type:"bytes",id:4},node:{type:"HDNodeType",id:5},passphrase_protection:{type:"bool",id:6},reset_word:{type:"string",id:7},reset_entropy:{type:"bytes",id:8},recovery_fake_word:{type:"string",id:9},recovery_word_pos:{type:"uint32",id:10},reset_word_pos:{type:"uint32",id:11},mnemonic_type:{type:"BackupType",id:12},layout_lines:{rule:"repeated",type:"string",id:13}}},DebugLinkStop:{fields:{}},DebugLinkLog:{fields:{level:{type:"uint32",id:1},bucket:{type:"string",id:2},text:{type:"string",id:3}}},DebugLinkMemoryRead:{fields:{address:{type:"uint32",id:1},length:{type:"uint32",id:2}}},DebugLinkMemory:{fields:{memory:{type:"bytes",id:1}}},DebugLinkMemoryWrite:{fields:{address:{type:"uint32",id:1},memory:{type:"bytes",id:2},flash:{type:"bool",id:3}}},DebugLinkFlashErase:{fields:{sector:{type:"uint32",id:1}}},DebugLinkEraseSdCard:{fields:{format:{type:"bool",id:1}}},DebugLinkWatchLayout:{fields:{watch:{type:"bool",id:1}}},EosGetPublicKey:{fields:{address_n:{rule:"repeated",type:"uint32",id:1,options:{packed:!1}},show_display:{type:"bool",id:2}}},EosPublicKey:{fields:{wif_public_key:{rule:"required",type:"string",id:1},raw_public_key:{rule:"required",type:"bytes",id:2}}},EosSignTx:{fields:{address_n:{rule:"repeated",type:"uint32",id:1,options:{packed:!1}},chain_id:{rule:"required",type:"bytes",id:2},header:{rule:"required",type:"EosTxHeader",id:3},num_actions:{rule:"required",type:"uint32",id:4}},nested:{EosTxHeader:{fields:{expiration:{rule:"required",type:"uint32",id:1},ref_block_num:{rule:"required",type:"uint32",id:2},ref_block_prefix:{rule:"required",type:"uint32",id:3},max_net_usage_words:{rule:"required",type:"uint32",id:4},max_cpu_usage_ms:{rule:"required",type:"uint32",id:5},delay_sec:{rule:"required",type:"uint32",id:6}}}}},EosTxActionRequest:{fields:{data_size:{type:"uint32",id:1}}},EosTxActionAck:{fields:{common:{rule:"required",type:"EosActionCommon",id:1},transfer:{type:"EosActionTransfer",id:2},delegate:{type:"EosActionDelegate",id:3},undelegate:{type:"EosActionUndelegate",id:4},refund:{type:"EosActionRefund",id:5},buy_ram:{type:"EosActionBuyRam",id:6},buy_ram_bytes:{type:"EosActionBuyRamBytes",id:7},sell_ram:{type:"EosActionSellRam",id:8},vote_producer:{type:"EosActionVoteProducer",id:9},update_auth:{type:"EosActionUpdateAuth",id:10},delete_auth:{type:"EosActionDeleteAuth",id:11},link_auth:{type:"EosActionLinkAuth",id:12},unlink_auth:{type:"EosActionUnlinkAuth",id:13},new_account:{type:"EosActionNewAccount",id:14},unknown:{type:"EosActionUnknown",id:15}},nested:{EosAsset:{fields:{amount:{rule:"required",type:"sint64",id:1},symbol:{rule:"required",type:"uint64",id:2}}},EosPermissionLevel:{fields:{actor:{rule:"required",type:"uint64",id:1},permission:{rule:"required",type:"uint64",id:2}}},EosAuthorizationKey:{fields:{type:{rule:"required",type:"uint32",id:1},key:{type:"bytes",id:2},address_n:{rule:"repeated",type:"uint32",id:3,options:{packed:!1}},weight:{rule:"required",type:"uint32",id:4}}},EosAuthorizationAccount:{fields:{account:{rule:"required",type:"EosPermissionLevel",id:1},weight:{rule:"required",type:"uint32",id:2}}},EosAuthorizationWait:{fields:{wait_sec:{rule:"required",type:"uint32",id:1},weight:{rule:"required",type:"uint32",id:2}}},EosAuthorization:{fields:{threshold:{rule:"required",type:"uint32",id:1},keys:{rule:"repeated",type:"EosAuthorizationKey",id:2},accounts:{rule:"repeated",type:"EosAuthorizationAccount",id:3},waits:{rule:"repeated",type:"EosAuthorizationWait",id:4}}},EosActionCommon:{fields:{account:{rule:"required",type:"uint64",id:1},name:{rule:"required",type:"uint64",id:2},authorization:{rule:"repeated",type:"EosPermissionLevel",id:3}}},EosActionTransfer:{fields:{sender:{rule:"required",type:"uint64",id:1},receiver:{rule:"required",type:"uint64",id:2},quantity:{rule:"required",type:"EosAsset",id:3},memo:{rule:"required",type:"string",id:4}}},EosActionDelegate:{fields:{sender:{rule:"required",type:"uint64",id:1},receiver:{rule:"required",type:"uint64",id:2},net_quantity:{rule:"required",type:"EosAsset",id:3},cpu_quantity:{rule:"required",type:"EosAsset",id:4},transfer:{rule:"required",type:"bool",id:5}}},EosActionUndelegate:{fields:{sender:{rule:"required",type:"uint64",id:1},receiver:{rule:"required",type:"uint64",id:2},net_quantity:{rule:"required",type:"EosAsset",id:3},cpu_quantity:{rule:"required",type:"EosAsset",id:4}}},EosActionRefund:{fields:{owner:{rule:"required",type:"uint64",id:1}}},EosActionBuyRam:{fields:{payer:{rule:"required",type:"uint64",id:1},receiver:{rule:"required",type:"uint64",id:2},quantity:{rule:"required",type:"EosAsset",id:3}}},EosActionBuyRamBytes:{fields:{payer:{rule:"required",type:"uint64",id:1},receiver:{rule:"required",type:"uint64",id:2},bytes:{rule:"required",type:"uint32",id:3}}},EosActionSellRam:{fields:{account:{rule:"required",type:"uint64",id:1},bytes:{rule:"required",type:"uint64",id:2}}},EosActionVoteProducer:{fields:{voter:{rule:"required",type:"uint64",id:1},proxy:{rule:"required",type:"uint64",id:2},producers:{rule:"repeated",type:"uint64",id:3,options:{packed:!1}}}},EosActionUpdateAuth:{fields:{account:{rule:"required",type:"uint64",id:1},permission:{rule:"required",type:"uint64",id:2},parent:{rule:"required",type:"uint64",id:3},auth:{rule:"required",type:"EosAuthorization",id:4}}},EosActionDeleteAuth:{fields:{account:{rule:"required",type:"uint64",id:1},permission:{rule:"required",type:"uint64",id:2}}},EosActionLinkAuth:{fields:{account:{rule:"required",type:"uint64",id:1},code:{rule:"required",type:"uint64",id:2},type:{rule:"required",type:"uint64",id:3},requirement:{rule:"required",type:"uint64",id:4}}},EosActionUnlinkAuth:{fields:{account:{rule:"required",type:"uint64",id:1},code:{rule:"required",type:"uint64",id:2},type:{rule:"required",type:"uint64",id:3}}},EosActionNewAccount:{fields:{creator:{rule:"required",type:"uint64",id:1},name:{rule:"required",type:"uint64",id:2},owner:{rule:"required",type:"EosAuthorization",id:3},active:{rule:"required",type:"EosAuthorization",id:4}}},EosActionUnknown:{fields:{data_size:{rule:"required",type:"uint32",id:1},data_chunk:{rule:"required",type:"bytes",id:2}}}}},EosSignedTx:{fields:{signature:{rule:"required",type:"string",id:1}}},EthereumSignTypedData:{fields:{address_n:{rule:"repeated",type:"uint32",id:1,options:{packed:!1}},primary_type:{rule:"required",type:"string",id:2},metamask_v4_compat:{type:"bool",id:3,options:{default:!0}}}},EthereumTypedDataStructRequest:{fields:{name:{rule:"required",type:"string",id:1}}},EthereumTypedDataStructAck:{fields:{members:{rule:"repeated",type:"EthereumStructMember",id:1}},nested:{EthereumStructMember:{fields:{type:{rule:"required",type:"EthereumFieldType",id:1},name:{rule:"required",type:"string",id:2}}},EthereumFieldType:{fields:{data_type:{rule:"required",type:"EthereumDataType",id:1},size:{type:"uint32",id:2},entry_type:{type:"EthereumFieldType",id:3},struct_name:{type:"string",id:4}}},EthereumDataType:{values:{UINT:1,INT:2,BYTES:3,STRING:4,BOOL:5,ADDRESS:6,ARRAY:7,STRUCT:8}}}},EthereumTypedDataValueRequest:{fields:{member_path:{rule:"repeated",type:"uint32",id:1,options:{packed:!1}}}},EthereumTypedDataValueAck:{fields:{value:{rule:"required",type:"bytes",id:1}}},EthereumGetPublicKey:{fields:{address_n:{rule:"repeated",type:"uint32",id:1,options:{packed:!1}},show_display:{type:"bool",id:2}}},EthereumPublicKey:{fields:{node:{rule:"required",type:"HDNodeType",id:1},xpub:{rule:"required",type:"string",id:2}}},EthereumGetAddress:{fields:{address_n:{rule:"repeated",type:"uint32",id:1,options:{packed:!1}},show_display:{type:"bool",id:2}}},EthereumAddress:{fields:{_old_address:{type:"bytes",id:1,options:{deprecated:!0}},address:{type:"string",id:2}}},EthereumSignTx:{fields:{address_n:{rule:"repeated",type:"uint32",id:1,options:{packed:!1}},nonce:{type:"bytes",id:2,options:{default:""}},gas_price:{rule:"required",type:"bytes",id:3},gas_limit:{rule:"required",type:"bytes",id:4},to:{type:"string",id:11,options:{default:""}},value:{type:"bytes",id:6,options:{default:""}},data_initial_chunk:{type:"bytes",id:7,options:{default:""}},data_length:{type:"uint32",id:8,options:{default:0}},chain_id:{rule:"required",type:"uint64",id:9},tx_type:{type:"uint32",id:10}}},EthereumSignTxEIP1559:{fields:{address_n:{rule:"repeated",type:"uint32",id:1,options:{packed:!1}},nonce:{rule:"required",type:"bytes",id:2},max_gas_fee:{rule:"required",type:"bytes",id:3},max_priority_fee:{rule:"required",type:"bytes",id:4},gas_limit:{rule:"required",type:"bytes",id:5},to:{type:"string",id:6,options:{default:""}},value:{rule:"required",type:"bytes",id:7},data_initial_chunk:{type:"bytes",id:8,options:{default:""}},data_length:{rule:"required",type:"uint32",id:9},chain_id:{rule:"required",type:"uint64",id:10},access_list:{rule:"repeated",type:"EthereumAccessList",id:11}},nested:{EthereumAccessList:{fields:{address:{rule:"required",type:"string",id:1},storage_keys:{rule:"repeated",type:"bytes",id:2}}}}},EthereumTxRequest:{fields:{data_length:{type:"uint32",id:1},signature_v:{type:"uint32",id:2},signature_r:{type:"bytes",id:3},signature_s:{type:"bytes",id:4}}},EthereumTxAck:{fields:{data_chunk:{rule:"required",type:"bytes",id:1}}},EthereumSignMessage:{fields:{address_n:{rule:"repeated",type:"uint32",id:1,options:{packed:!1}},message:{rule:"required",type:"bytes",id:2}}},EthereumMessageSignature:{fields:{signature:{rule:"required",type:"bytes",id:2},address:{rule:"required",type:"string",id:3}}},EthereumVerifyMessage:{fields:{signature:{rule:"required",type:"bytes",id:2},message:{rule:"required",type:"bytes",id:3},address:{rule:"required",type:"string",id:4}}},EthereumSignTypedHash:{fields:{address_n:{rule:"repeated",type:"uint32",id:1,options:{packed:!1}},domain_separator_hash:{rule:"required",type:"bytes",id:2},message_hash:{type:"bytes",id:3}}},EthereumTypedDataSignature:{fields:{signature:{rule:"required",type:"bytes",id:1},address:{rule:"required",type:"string",id:2}}},BackupType:{values:{Bip39:0,Slip39_Basic:1,Slip39_Advanced:2}},SafetyCheckLevel:{values:{Strict:0,PromptAlways:1,PromptTemporarily:2}},Initialize:{fields:{session_id:{type:"bytes",id:1},_skip_passphrase:{type:"bool",id:2,options:{deprecated:!0}},derive_cardano:{type:"bool",id:3}}},GetFeatures:{fields:{}},Features:{fields:{vendor:{type:"string",id:1},major_version:{rule:"required",type:"uint32",id:2},minor_version:{rule:"required",type:"uint32",id:3},patch_version:{rule:"required",type:"uint32",id:4},bootloader_mode:{type:"bool",id:5},device_id:{type:"string",id:6},pin_protection:{type:"bool",id:7},passphrase_protection:{type:"bool",id:8},language:{type:"string",id:9},label:{type:"string",id:10},initialized:{type:"bool",id:12},revision:{type:"bytes",id:13},bootloader_hash:{type:"bytes",id:14},imported:{type:"bool",id:15},unlocked:{type:"bool",id:16},_passphrase_cached:{type:"bool",id:17,options:{deprecated:!0}},firmware_present:{type:"bool",id:18},needs_backup:{type:"bool",id:19},flags:{type:"uint32",id:20},model:{type:"string",id:21},fw_major:{type:"uint32",id:22},fw_minor:{type:"uint32",id:23},fw_patch:{type:"uint32",id:24},fw_vendor:{type:"string",id:25},unfinished_backup:{type:"bool",id:27},no_backup:{type:"bool",id:28},recovery_mode:{type:"bool",id:29},capabilities:{rule:"repeated",type:"Capability",id:30,options:{packed:!1}},backup_type:{type:"BackupType",id:31},sd_card_present:{type:"bool",id:32},sd_protection:{type:"bool",id:33},wipe_code_protection:{type:"bool",id:34},session_id:{type:"bytes",id:35},passphrase_always_on_device:{type:"bool",id:36},safety_checks:{type:"SafetyCheckLevel",id:37},auto_lock_delay_ms:{type:"uint32",id:38},display_rotation:{type:"uint32",id:39},experimental_features:{type:"bool",id:40},busy:{type:"bool",id:41}},nested:{Capability:{options:{"(has_bitcoin_only_values)":!0},values:{Capability_Bitcoin:1,Capability_Bitcoin_like:2,Capability_Binance:3,Capability_Cardano:4,Capability_Crypto:5,Capability_EOS:6,Capability_Ethereum:7,Capability_Lisk:8,Capability_Monero:9,Capability_NEM:10,Capability_Ripple:11,Capability_Stellar:12,Capability_Tezos:13,Capability_U2F:14,Capability_Shamir:15,Capability_ShamirGroups:16,Capability_PassphraseEntry:17}}}},LockDevice:{fields:{}},SetBusy:{fields:{expiry_ms:{type:"uint32",id:1}}},EndSession:{fields:{}},ApplySettings:{fields:{language:{type:"string",id:1},label:{type:"string",id:2},use_passphrase:{type:"bool",id:3},homescreen:{type:"bytes",id:4},_passphrase_source:{type:"uint32",id:5,options:{deprecated:!0}},auto_lock_delay_ms:{type:"uint32",id:6},display_rotation:{type:"uint32",id:7},passphrase_always_on_device:{type:"bool",id:8},safety_checks:{type:"SafetyCheckLevel",id:9},experimental_features:{type:"bool",id:10}}},ApplyFlags:{fields:{flags:{rule:"required",type:"uint32",id:1}}},ChangePin:{fields:{remove:{type:"bool",id:1}}},ChangeWipeCode:{fields:{remove:{type:"bool",id:1}}},SdProtect:{fields:{operation:{rule:"required",type:"SdProtectOperationType",id:1}},nested:{SdProtectOperationType:{values:{DISABLE:0,ENABLE:1,REFRESH:2}}}},Ping:{fields:{message:{type:"string",id:1,options:{default:""}},button_protection:{type:"bool",id:2}}},Cancel:{fields:{}},GetEntropy:{fields:{size:{rule:"required",type:"uint32",id:1}}},Entropy:{fields:{entropy:{rule:"required",type:"bytes",id:1}}},GetFirmwareHash:{fields:{challenge:{type:"bytes",id:1}}},FirmwareHash:{fields:{hash:{rule:"required",type:"bytes",id:1}}},WipeDevice:{fields:{}},LoadDevice:{fields:{mnemonics:{rule:"repeated",type:"string",id:1},pin:{type:"string",id:3},passphrase_protection:{type:"bool",id:4},language:{type:"string",id:5,options:{default:"en-US"}},label:{type:"string",id:6},skip_checksum:{type:"bool",id:7},u2f_counter:{type:"uint32",id:8},needs_backup:{type:"bool",id:9},no_backup:{type:"bool",id:10}}},ResetDevice:{fields:{display_random:{type:"bool",id:1},strength:{type:"uint32",id:2,options:{default:256}},passphrase_protection:{type:"bool",id:3},pin_protection:{type:"bool",id:4},language:{type:"string",id:5,options:{default:"en-US"}},label:{type:"string",id:6},u2f_counter:{type:"uint32",id:7},skip_backup:{type:"bool",id:8},no_backup:{type:"bool",id:9},backup_type:{type:"BackupType",id:10,options:{default:"Bip39"}}}},BackupDevice:{fields:{}},EntropyRequest:{fields:{}},EntropyAck:{fields:{entropy:{rule:"required",type:"bytes",id:1}}},RecoveryDevice:{fields:{word_count:{type:"uint32",id:1},passphrase_protection:{type:"bool",id:2},pin_protection:{type:"bool",id:3},language:{type:"string",id:4},label:{type:"string",id:5},enforce_wordlist:{type:"bool",id:6},type:{type:"RecoveryDeviceType",id:8},u2f_counter:{type:"uint32",id:9},dry_run:{type:"bool",id:10}},nested:{RecoveryDeviceType:{values:{RecoveryDeviceType_ScrambledWords:0,RecoveryDeviceType_Matrix:1}}}},WordRequest:{fields:{type:{rule:"required",type:"WordRequestType",id:1}},nested:{WordRequestType:{values:{WordRequestType_Plain:0,WordRequestType_Matrix9:1,WordRequestType_Matrix6:2}}}},WordAck:{fields:{word:{rule:"required",type:"string",id:1}}},SetU2FCounter:{fields:{u2f_counter:{rule:"required",type:"uint32",id:1}}},GetNextU2FCounter:{fields:{}},NextU2FCounter:{fields:{u2f_counter:{rule:"required",type:"uint32",id:1}}},DoPreauthorized:{fields:{}},PreauthorizedRequest:{fields:{}},CancelAuthorization:{fields:{}},RebootToBootloader:{fields:{}},GetNonce:{options:{"(unstable)":!0},fields:{}},Nonce:{options:{"(unstable)":!0},fields:{nonce:{rule:"required",type:"bytes",id:1}}},UnlockPath:{fields:{address_n:{rule:"repeated",type:"uint32",id:1,options:{packed:!1}},mac:{type:"bytes",id:2}}},UnlockedPathRequest:{fields:{mac:{type:"bytes",id:1}}},MoneroNetworkType:{values:{MAINNET:0,TESTNET:1,STAGENET:2,FAKECHAIN:3}},MoneroTransactionSourceEntry:{fields:{outputs:{rule:"repeated",type:"MoneroOutputEntry",id:1},real_output:{type:"uint64",id:2},real_out_tx_key:{type:"bytes",id:3},real_out_additional_tx_keys:{rule:"repeated",type:"bytes",id:4},real_output_in_tx_index:{type:"uint64",id:5},amount:{type:"uint64",id:6},rct:{type:"bool",id:7},mask:{type:"bytes",id:8},multisig_kLRki:{type:"MoneroMultisigKLRki",id:9},subaddr_minor:{type:"uint32",id:10}},nested:{MoneroOutputEntry:{fields:{idx:{type:"uint64",id:1},key:{type:"MoneroRctKeyPublic",id:2}},nested:{MoneroRctKeyPublic:{fields:{dest:{rule:"required",type:"bytes",id:1},commitment:{rule:"required",type:"bytes",id:2}}}}},MoneroMultisigKLRki:{fields:{K:{type:"bytes",id:1},L:{type:"bytes",id:2},R:{type:"bytes",id:3},ki:{type:"bytes",id:4}}}}},MoneroTransactionDestinationEntry:{fields:{amount:{type:"uint64",id:1},addr:{type:"MoneroAccountPublicAddress",id:2},is_subaddress:{type:"bool",id:3},original:{type:"bytes",id:4},is_integrated:{type:"bool",id:5}},nested:{MoneroAccountPublicAddress:{fields:{spend_public_key:{type:"bytes",id:1},view_public_key:{type:"bytes",id:2}}}}},MoneroTransactionRsigData:{fields:{rsig_type:{type:"uint32",id:1},offload_type:{type:"uint32",id:2},grouping:{rule:"repeated",type:"uint64",id:3,options:{packed:!1}},mask:{type:"bytes",id:4},rsig:{type:"bytes",id:5},rsig_parts:{rule:"repeated",type:"bytes",id:6},bp_version:{type:"uint32",id:7}}},MoneroGetAddress:{fields:{address_n:{rule:"repeated",type:"uint32",id:1,options:{packed:!1}},show_display:{type:"bool",id:2},network_type:{type:"MoneroNetworkType",id:3,options:{default:"MAINNET"}},account:{type:"uint32",id:4},minor:{type:"uint32",id:5},payment_id:{type:"bytes",id:6}}},MoneroAddress:{fields:{address:{type:"bytes",id:1}}},MoneroGetWatchKey:{fields:{address_n:{rule:"repeated",type:"uint32",id:1,options:{packed:!1}},network_type:{type:"MoneroNetworkType",id:2,options:{default:"MAINNET"}}}},MoneroWatchKey:{fields:{watch_key:{type:"bytes",id:1},address:{type:"bytes",id:2}}},MoneroTransactionInitRequest:{fields:{version:{type:"uint32",id:1},address_n:{rule:"repeated",type:"uint32",id:2,options:{packed:!1}},network_type:{type:"MoneroNetworkType",id:3,options:{default:"MAINNET"}},tsx_data:{type:"MoneroTransactionData",id:4}},nested:{MoneroTransactionData:{fields:{version:{type:"uint32",id:1},payment_id:{type:"bytes",id:2},unlock_time:{type:"uint64",id:3},outputs:{rule:"repeated",type:"MoneroTransactionDestinationEntry",id:4},change_dts:{type:"MoneroTransactionDestinationEntry",id:5},num_inputs:{type:"uint32",id:6},mixin:{type:"uint32",id:7},fee:{type:"uint64",id:8},account:{type:"uint32",id:9},minor_indices:{rule:"repeated",type:"uint32",id:10,options:{packed:!1}},rsig_data:{type:"MoneroTransactionRsigData",id:11},integrated_indices:{rule:"repeated",type:"uint32",id:12,options:{packed:!1}},client_version:{type:"uint32",id:13},hard_fork:{type:"uint32",id:14},monero_version:{type:"bytes",id:15}}}}},MoneroTransactionInitAck:{fields:{hmacs:{rule:"repeated",type:"bytes",id:1},rsig_data:{type:"MoneroTransactionRsigData",id:2}}},MoneroTransactionSetInputRequest:{fields:{src_entr:{type:"MoneroTransactionSourceEntry",id:1}}},MoneroTransactionSetInputAck:{fields:{vini:{type:"bytes",id:1},vini_hmac:{type:"bytes",id:2},pseudo_out:{type:"bytes",id:3},pseudo_out_hmac:{type:"bytes",id:4},pseudo_out_alpha:{type:"bytes",id:5},spend_key:{type:"bytes",id:6}}},MoneroTransactionInputViniRequest:{fields:{src_entr:{type:"MoneroTransactionSourceEntry",id:1},vini:{type:"bytes",id:2},vini_hmac:{type:"bytes",id:3},pseudo_out:{type:"bytes",id:4},pseudo_out_hmac:{type:"bytes",id:5},orig_idx:{type:"uint32",id:6}}},MoneroTransactionInputViniAck:{fields:{}},MoneroTransactionAllInputsSetRequest:{fields:{}},MoneroTransactionAllInputsSetAck:{fields:{rsig_data:{type:"MoneroTransactionRsigData",id:1}}},MoneroTransactionSetOutputRequest:{fields:{dst_entr:{type:"MoneroTransactionDestinationEntry",id:1},dst_entr_hmac:{type:"bytes",id:2},rsig_data:{type:"MoneroTransactionRsigData",id:3},is_offloaded_bp:{type:"bool",id:4}}},MoneroTransactionSetOutputAck:{fields:{tx_out:{type:"bytes",id:1},vouti_hmac:{type:"bytes",id:2},rsig_data:{type:"MoneroTransactionRsigData",id:3},out_pk:{type:"bytes",id:4},ecdh_info:{type:"bytes",id:5}}},MoneroTransactionAllOutSetRequest:{fields:{rsig_data:{type:"MoneroTransactionRsigData",id:1}}},MoneroTransactionAllOutSetAck:{fields:{extra:{type:"bytes",id:1},tx_prefix_hash:{type:"bytes",id:2},rv:{type:"MoneroRingCtSig",id:4},full_message_hash:{type:"bytes",id:5}},nested:{MoneroRingCtSig:{fields:{txn_fee:{type:"uint64",id:1},message:{type:"bytes",id:2},rv_type:{type:"uint32",id:3}}}}},MoneroTransactionSignInputRequest:{fields:{src_entr:{type:"MoneroTransactionSourceEntry",id:1},vini:{type:"bytes",id:2},vini_hmac:{type:"bytes",id:3},pseudo_out:{type:"bytes",id:4},pseudo_out_hmac:{type:"bytes",id:5},pseudo_out_alpha:{type:"bytes",id:6},spend_key:{type:"bytes",id:7},orig_idx:{type:"uint32",id:8}}},MoneroTransactionSignInputAck:{fields:{signature:{type:"bytes",id:1},pseudo_out:{type:"bytes",id:2}}},MoneroTransactionFinalRequest:{fields:{}},MoneroTransactionFinalAck:{fields:{cout_key:{type:"bytes",id:1},salt:{type:"bytes",id:2},rand_mult:{type:"bytes",id:3},tx_enc_keys:{type:"bytes",id:4},opening_key:{type:"bytes",id:5}}},MoneroKeyImageExportInitRequest:{fields:{num:{rule:"required",type:"uint64",id:1},hash:{rule:"required",type:"bytes",id:2},address_n:{rule:"repeated",type:"uint32",id:3,options:{packed:!1}},network_type:{type:"MoneroNetworkType",id:4,options:{default:"MAINNET"}},subs:{rule:"repeated",type:"MoneroSubAddressIndicesList",id:5}},nested:{MoneroSubAddressIndicesList:{fields:{account:{rule:"required",type:"uint32",id:1},minor_indices:{rule:"repeated",type:"uint32",id:2,options:{packed:!1}}}}}},MoneroKeyImageExportInitAck:{fields:{}},MoneroKeyImageSyncStepRequest:{fields:{tdis:{rule:"repeated",type:"MoneroTransferDetails",id:1}},nested:{MoneroTransferDetails:{fields:{out_key:{rule:"required",type:"bytes",id:1},tx_pub_key:{rule:"required",type:"bytes",id:2},additional_tx_pub_keys:{rule:"repeated",type:"bytes",id:3},internal_output_index:{rule:"required",type:"uint64",id:4},sub_addr_major:{type:"uint32",id:5},sub_addr_minor:{type:"uint32",id:6}}}}},MoneroKeyImageSyncStepAck:{fields:{kis:{rule:"repeated",type:"MoneroExportedKeyImage",id:1}},nested:{MoneroExportedKeyImage:{fields:{iv:{type:"bytes",id:1},blob:{type:"bytes",id:3}}}}},MoneroKeyImageSyncFinalRequest:{fields:{}},MoneroKeyImageSyncFinalAck:{fields:{enc_key:{type:"bytes",id:1}}},MoneroGetTxKeyRequest:{fields:{address_n:{rule:"repeated",type:"uint32",id:1,options:{packed:!1}},network_type:{type:"MoneroNetworkType",id:2,options:{default:"MAINNET"}},salt1:{rule:"required",type:"bytes",id:3},salt2:{rule:"required",type:"bytes",id:4},tx_enc_keys:{rule:"required",type:"bytes",id:5},tx_prefix_hash:{rule:"required",type:"bytes",id:6},reason:{type:"uint32",id:7},view_public_key:{type:"bytes",id:8}}},MoneroGetTxKeyAck:{fields:{salt:{type:"bytes",id:1},tx_keys:{type:"bytes",id:2},tx_derivations:{type:"bytes",id:3}}},MoneroLiveRefreshStartRequest:{fields:{address_n:{rule:"repeated",type:"uint32",id:1,options:{packed:!1}},network_type:{type:"MoneroNetworkType",id:2,options:{default:"MAINNET"}}}},MoneroLiveRefreshStartAck:{fields:{}},MoneroLiveRefreshStepRequest:{fields:{out_key:{rule:"required",type:"bytes",id:1},recv_deriv:{rule:"required",type:"bytes",id:2},real_out_idx:{rule:"required",type:"uint64",id:3},sub_addr_major:{rule:"required",type:"uint32",id:4},sub_addr_minor:{rule:"required",type:"uint32",id:5}}},MoneroLiveRefreshStepAck:{fields:{salt:{type:"bytes",id:1},key_image:{type:"bytes",id:2}}},MoneroLiveRefreshFinalRequest:{fields:{}},MoneroLiveRefreshFinalAck:{fields:{}},DebugMoneroDiagRequest:{fields:{ins:{type:"uint64",id:1},p1:{type:"uint64",id:2},p2:{type:"uint64",id:3},pd:{rule:"repeated",type:"uint64",id:4,options:{packed:!1}},data1:{type:"bytes",id:5},data2:{type:"bytes",id:6}}},DebugMoneroDiagAck:{fields:{ins:{type:"uint64",id:1},p1:{type:"uint64",id:2},p2:{type:"uint64",id:3},pd:{rule:"repeated",type:"uint64",id:4,options:{packed:!1}},data1:{type:"bytes",id:5},data2:{type:"bytes",id:6}}},NEMGetAddress:{fields:{address_n:{rule:"repeated",type:"uint32",id:1,options:{packed:!1}},network:{type:"uint32",id:2,options:{default:104}},show_display:{type:"bool",id:3}}},NEMAddress:{fields:{address:{rule:"required",type:"string",id:1}}},NEMSignTx:{fields:{transaction:{rule:"required",type:"NEMTransactionCommon",id:1},multisig:{type:"NEMTransactionCommon",id:2},transfer:{type:"NEMTransfer",id:3},cosigning:{type:"bool",id:4},provision_namespace:{type:"NEMProvisionNamespace",id:5},mosaic_creation:{type:"NEMMosaicCreation",id:6},supply_change:{type:"NEMMosaicSupplyChange",id:7},aggregate_modification:{type:"NEMAggregateModification",id:8},importance_transfer:{type:"NEMImportanceTransfer",id:9}},nested:{NEMTransactionCommon:{fields:{address_n:{rule:"repeated",type:"uint32",id:1,options:{packed:!1}},network:{type:"uint32",id:2,options:{default:104}},timestamp:{rule:"required",type:"uint32",id:3},fee:{rule:"required",type:"uint64",id:4},deadline:{rule:"required",type:"uint32",id:5},signer:{type:"bytes",id:6}}},NEMTransfer:{fields:{recipient:{rule:"required",type:"string",id:1},amount:{rule:"required",type:"uint64",id:2},payload:{type:"bytes",id:3,options:{default:""}},public_key:{type:"bytes",id:4},mosaics:{rule:"repeated",type:"NEMMosaic",id:5}},nested:{NEMMosaic:{fields:{namespace:{rule:"required",type:"string",id:1},mosaic:{rule:"required",type:"string",id:2},quantity:{rule:"required",type:"uint64",id:3}}}}},NEMProvisionNamespace:{fields:{namespace:{rule:"required",type:"string",id:1},parent:{type:"string",id:2},sink:{rule:"required",type:"string",id:3},fee:{rule:"required",type:"uint64",id:4}}},NEMMosaicCreation:{fields:{definition:{rule:"required",type:"NEMMosaicDefinition",id:1},sink:{rule:"required",type:"string",id:2},fee:{rule:"required",type:"uint64",id:3}},nested:{NEMMosaicDefinition:{fields:{name:{type:"string",id:1},ticker:{type:"string",id:2},namespace:{rule:"required",type:"string",id:3},mosaic:{rule:"required",type:"string",id:4},divisibility:{type:"uint32",id:5},levy:{type:"NEMMosaicLevy",id:6},fee:{type:"uint64",id:7},levy_address:{type:"string",id:8},levy_namespace:{type:"string",id:9},levy_mosaic:{type:"string",id:10},supply:{type:"uint64",id:11},mutable_supply:{type:"bool",id:12},transferable:{type:"bool",id:13},description:{rule:"required",type:"string",id:14},networks:{rule:"repeated",type:"uint32",id:15,options:{packed:!1}}},nested:{NEMMosaicLevy:{values:{MosaicLevy_Absolute:1,MosaicLevy_Percentile:2}}}}}},NEMMosaicSupplyChange:{fields:{namespace:{rule:"required",type:"string",id:1},mosaic:{rule:"required",type:"string",id:2},type:{rule:"required",type:"NEMSupplyChangeType",id:3},delta:{rule:"required",type:"uint64",id:4}},nested:{NEMSupplyChangeType:{values:{SupplyChange_Increase:1,SupplyChange_Decrease:2}}}},NEMAggregateModification:{fields:{modifications:{rule:"repeated",type:"NEMCosignatoryModification",id:1},relative_change:{type:"sint32",id:2}},nested:{NEMCosignatoryModification:{fields:{type:{rule:"required",type:"NEMModificationType",id:1},public_key:{rule:"required",type:"bytes",id:2}},nested:{NEMModificationType:{values:{CosignatoryModification_Add:1,CosignatoryModification_Delete:2}}}}}},NEMImportanceTransfer:{fields:{mode:{rule:"required",type:"NEMImportanceTransferMode",id:1},public_key:{rule:"required",type:"bytes",id:2}},nested:{NEMImportanceTransferMode:{values:{ImportanceTransfer_Activate:1,ImportanceTransfer_Deactivate:2}}}}}},NEMSignedTx:{fields:{data:{rule:"required",type:"bytes",id:1},signature:{rule:"required",type:"bytes",id:2}}},NEMDecryptMessage:{fields:{address_n:{rule:"repeated",type:"uint32",id:1,options:{packed:!1}},network:{type:"uint32",id:2},public_key:{type:"bytes",id:3},payload:{type:"bytes",id:4}}},NEMDecryptedMessage:{fields:{payload:{rule:"required",type:"bytes",id:1}}},wire_in:{type:"bool",id:50002,extend:"google.protobuf.EnumValueOptions"},wire_out:{type:"bool",id:50003,extend:"google.protobuf.EnumValueOptions"},wire_debug_in:{type:"bool",id:50004,extend:"google.protobuf.EnumValueOptions"},wire_debug_out:{type:"bool",id:50005,extend:"google.protobuf.EnumValueOptions"},wire_tiny:{type:"bool",id:50006,extend:"google.protobuf.EnumValueOptions"},wire_bootloader:{type:"bool",id:50007,extend:"google.protobuf.EnumValueOptions"},wire_no_fsm:{type:"bool",id:50008,extend:"google.protobuf.EnumValueOptions"},bitcoin_only:{type:"bool",id:6e4,extend:"google.protobuf.EnumValueOptions"},has_bitcoin_only_values:{type:"bool",id:51001,extend:"google.protobuf.EnumOptions"},unstable:{type:"bool",id:52001,extend:"google.protobuf.MessageOptions"},wire_type:{type:"uint32",id:52002,extend:"google.protobuf.MessageOptions"},experimental:{type:"bool",id:53001,extend:"google.protobuf.FieldOptions"},include_in_bitcoin_only:{type:"bool",id:6e4,extend:"google.protobuf.FileOptions"},MessageType:{options:{"(has_bitcoin_only_values)":!0},values:{MessageType_Initialize:0,MessageType_Ping:1,MessageType_Success:2,MessageType_Failure:3,MessageType_ChangePin:4,MessageType_WipeDevice:5,MessageType_GetEntropy:9,MessageType_Entropy:10,MessageType_LoadDevice:13,MessageType_ResetDevice:14,MessageType_SetBusy:16,MessageType_Features:17,MessageType_PinMatrixRequest:18,MessageType_PinMatrixAck:19,MessageType_Cancel:20,MessageType_LockDevice:24,MessageType_ApplySettings:25,MessageType_ButtonRequest:26,MessageType_ButtonAck:27,MessageType_ApplyFlags:28,MessageType_GetNonce:31,MessageType_Nonce:33,MessageType_BackupDevice:34,MessageType_EntropyRequest:35,MessageType_EntropyAck:36,MessageType_PassphraseRequest:41,MessageType_PassphraseAck:42,MessageType_RecoveryDevice:45,MessageType_WordRequest:46,MessageType_WordAck:47,MessageType_GetFeatures:55,MessageType_SdProtect:79,MessageType_ChangeWipeCode:82,MessageType_EndSession:83,MessageType_DoPreauthorized:84,MessageType_PreauthorizedRequest:85,MessageType_CancelAuthorization:86,MessageType_RebootToBootloader:87,MessageType_GetFirmwareHash:88,MessageType_FirmwareHash:89,MessageType_UnlockPath:93,MessageType_UnlockedPathRequest:94,MessageType_SetU2FCounter:63,MessageType_GetNextU2FCounter:80,MessageType_NextU2FCounter:81,MessageType_Deprecated_PassphraseStateRequest:77,MessageType_Deprecated_PassphraseStateAck:78,MessageType_FirmwareErase:6,MessageType_FirmwareUpload:7,MessageType_FirmwareRequest:8,MessageType_SelfTest:32,MessageType_GetPublicKey:11,MessageType_PublicKey:12,MessageType_SignTx:15,MessageType_TxRequest:21,MessageType_TxAck:22,MessageType_GetAddress:29,MessageType_Address:30,MessageType_TxAckPaymentRequest:37,MessageType_SignMessage:38,MessageType_VerifyMessage:39,MessageType_MessageSignature:40,MessageType_GetOwnershipId:43,MessageType_OwnershipId:44,MessageType_GetOwnershipProof:49,MessageType_OwnershipProof:50,MessageType_AuthorizeCoinJoin:51,MessageType_CipherKeyValue:23,MessageType_CipheredKeyValue:48,MessageType_SignIdentity:53,MessageType_SignedIdentity:54,MessageType_GetECDHSessionKey:61,MessageType_ECDHSessionKey:62,MessageType_CosiCommit:71,MessageType_CosiCommitment:72,MessageType_CosiSign:73,MessageType_CosiSignature:74,MessageType_DebugLinkDecision:100,MessageType_DebugLinkGetState:101,MessageType_DebugLinkState:102,MessageType_DebugLinkStop:103,MessageType_DebugLinkLog:104,MessageType_DebugLinkMemoryRead:110,MessageType_DebugLinkMemory:111,MessageType_DebugLinkMemoryWrite:112,MessageType_DebugLinkFlashErase:113,MessageType_DebugLinkLayout:9001,MessageType_DebugLinkReseedRandom:9002,MessageType_DebugLinkRecordScreen:9003,MessageType_DebugLinkEraseSdCard:9005,MessageType_DebugLinkWatchLayout:9006,MessageType_EthereumGetPublicKey:450,MessageType_EthereumPublicKey:451,MessageType_EthereumGetAddress:56,MessageType_EthereumAddress:57,MessageType_EthereumSignTx:58,MessageType_EthereumSignTxEIP1559:452,MessageType_EthereumTxRequest:59,MessageType_EthereumTxAck:60,MessageType_EthereumSignMessage:64,MessageType_EthereumVerifyMessage:65,MessageType_EthereumMessageSignature:66,MessageType_EthereumSignTypedData:464,MessageType_EthereumTypedDataStructRequest:465,MessageType_EthereumTypedDataStructAck:466,MessageType_EthereumTypedDataValueRequest:467,MessageType_EthereumTypedDataValueAck:468,MessageType_EthereumTypedDataSignature:469,MessageType_EthereumSignTypedHash:470,MessageType_NEMGetAddress:67,MessageType_NEMAddress:68,MessageType_NEMSignTx:69,MessageType_NEMSignedTx:70,MessageType_NEMDecryptMessage:75,MessageType_NEMDecryptedMessage:76,MessageType_TezosGetAddress:150,MessageType_TezosAddress:151,MessageType_TezosSignTx:152,MessageType_TezosSignedTx:153,MessageType_TezosGetPublicKey:154,MessageType_TezosPublicKey:155,MessageType_StellarSignTx:202,MessageType_StellarTxOpRequest:203,MessageType_StellarGetAddress:207,MessageType_StellarAddress:208,MessageType_StellarCreateAccountOp:210,MessageType_StellarPaymentOp:211,MessageType_StellarPathPaymentStrictReceiveOp:212,MessageType_StellarManageSellOfferOp:213,MessageType_StellarCreatePassiveSellOfferOp:214,MessageType_StellarSetOptionsOp:215,MessageType_StellarChangeTrustOp:216,MessageType_StellarAllowTrustOp:217,MessageType_StellarAccountMergeOp:218,MessageType_StellarManageDataOp:220,MessageType_StellarBumpSequenceOp:221,MessageType_StellarManageBuyOfferOp:222,MessageType_StellarPathPaymentStrictSendOp:223,MessageType_StellarSignedTx:230,MessageType_CardanoGetPublicKey:305,MessageType_CardanoPublicKey:306,MessageType_CardanoGetAddress:307,MessageType_CardanoAddress:308,MessageType_CardanoTxItemAck:313,MessageType_CardanoTxAuxiliaryDataSupplement:314,MessageType_CardanoTxWitnessRequest:315,MessageType_CardanoTxWitnessResponse:316,MessageType_CardanoTxHostAck:317,MessageType_CardanoTxBodyHash:318,MessageType_CardanoSignTxFinished:319,MessageType_CardanoSignTxInit:320,MessageType_CardanoTxInput:321,MessageType_CardanoTxOutput:322,MessageType_CardanoAssetGroup:323,MessageType_CardanoToken:324,MessageType_CardanoTxCertificate:325,MessageType_CardanoTxWithdrawal:326,MessageType_CardanoTxAuxiliaryData:327,MessageType_CardanoPoolOwner:328,MessageType_CardanoPoolRelayParameters:329,MessageType_CardanoGetNativeScriptHash:330,MessageType_CardanoNativeScriptHash:331,MessageType_CardanoTxMint:332,MessageType_CardanoTxCollateralInput:333,MessageType_CardanoTxRequiredSigner:334,MessageType_CardanoTxInlineDatumChunk:335,MessageType_CardanoTxReferenceScriptChunk:336,MessageType_CardanoTxReferenceInput:337,MessageType_RippleGetAddress:400,MessageType_RippleAddress:401,MessageType_RippleSignTx:402,MessageType_RippleSignedTx:403,MessageType_MoneroTransactionInitRequest:501,MessageType_MoneroTransactionInitAck:502,MessageType_MoneroTransactionSetInputRequest:503,MessageType_MoneroTransactionSetInputAck:504,MessageType_MoneroTransactionInputViniRequest:507,MessageType_MoneroTransactionInputViniAck:508,MessageType_MoneroTransactionAllInputsSetRequest:509,MessageType_MoneroTransactionAllInputsSetAck:510,MessageType_MoneroTransactionSetOutputRequest:511,MessageType_MoneroTransactionSetOutputAck:512,MessageType_MoneroTransactionAllOutSetRequest:513,MessageType_MoneroTransactionAllOutSetAck:514,MessageType_MoneroTransactionSignInputRequest:515,MessageType_MoneroTransactionSignInputAck:516,MessageType_MoneroTransactionFinalRequest:517,MessageType_MoneroTransactionFinalAck:518,MessageType_MoneroKeyImageExportInitRequest:530,MessageType_MoneroKeyImageExportInitAck:531,MessageType_MoneroKeyImageSyncStepRequest:532,MessageType_MoneroKeyImageSyncStepAck:533,MessageType_MoneroKeyImageSyncFinalRequest:534,MessageType_MoneroKeyImageSyncFinalAck:535,MessageType_MoneroGetAddress:540,MessageType_MoneroAddress:541,MessageType_MoneroGetWatchKey:542,MessageType_MoneroWatchKey:543,MessageType_DebugMoneroDiagRequest:546,MessageType_DebugMoneroDiagAck:547,MessageType_MoneroGetTxKeyRequest:550,MessageType_MoneroGetTxKeyAck:551,MessageType_MoneroLiveRefreshStartRequest:552,MessageType_MoneroLiveRefreshStartAck:553,MessageType_MoneroLiveRefreshStepRequest:554,MessageType_MoneroLiveRefreshStepAck:555,MessageType_MoneroLiveRefreshFinalRequest:556,MessageType_MoneroLiveRefreshFinalAck:557,MessageType_EosGetPublicKey:600,MessageType_EosPublicKey:601,MessageType_EosSignTx:602,MessageType_EosTxActionRequest:603,MessageType_EosTxActionAck:604,MessageType_EosSignedTx:605,MessageType_BinanceGetAddress:700,MessageType_BinanceAddress:701,MessageType_BinanceGetPublicKey:702,MessageType_BinancePublicKey:703,MessageType_BinanceSignTx:704,MessageType_BinanceTxRequest:705,MessageType_BinanceTransferMsg:706,MessageType_BinanceOrderMsg:707,MessageType_BinanceCancelMsg:708,MessageType_BinanceSignedTx:709,MessageType_WebAuthnListResidentCredentials:800,MessageType_WebAuthnCredentials:801,MessageType_WebAuthnAddResidentCredential:802,MessageType_WebAuthnRemoveResidentCredential:803}},RippleGetAddress:{fields:{address_n:{rule:"repeated",type:"uint32",id:1,options:{packed:!1}},show_display:{type:"bool",id:2}}},RippleAddress:{fields:{address:{rule:"required",type:"string",id:1}}},RippleSignTx:{fields:{address_n:{rule:"repeated",type:"uint32",id:1,options:{packed:!1}},fee:{rule:"required",type:"uint64",id:2},flags:{type:"uint32",id:3,options:{default:0}},sequence:{rule:"required",type:"uint32",id:4},last_ledger_sequence:{type:"uint32",id:5},payment:{rule:"required",type:"RipplePayment",id:6}},nested:{RipplePayment:{fields:{amount:{rule:"required",type:"uint64",id:1},destination:{rule:"required",type:"string",id:2},destination_tag:{type:"uint32",id:3}}}}},RippleSignedTx:{fields:{signature:{rule:"required",type:"bytes",id:1},serialized_tx:{rule:"required",type:"bytes",id:2}}},StellarAssetType:{values:{NATIVE:0,ALPHANUM4:1,ALPHANUM12:2}},StellarAsset:{fields:{type:{rule:"required",type:"StellarAssetType",id:1},code:{type:"string",id:2},issuer:{type:"string",id:3}}},StellarGetAddress:{fields:{address_n:{rule:"repeated",type:"uint32",id:1,options:{packed:!1}},show_display:{type:"bool",id:2}}},StellarAddress:{fields:{address:{rule:"required",type:"string",id:1}}},StellarSignTx:{fields:{address_n:{rule:"repeated",type:"uint32",id:2,options:{packed:!1}},network_passphrase:{rule:"required",type:"string",id:3},source_account:{rule:"required",type:"string",id:4},fee:{rule:"required",type:"uint32",id:5},sequence_number:{rule:"required",type:"uint64",id:6},timebounds_start:{rule:"required",type:"uint32",id:8},timebounds_end:{rule:"required",type:"uint32",id:9},memo_type:{rule:"required",type:"StellarMemoType",id:10},memo_text:{type:"string",id:11},memo_id:{type:"uint64",id:12},memo_hash:{type:"bytes",id:13},num_operations:{rule:"required",type:"uint32",id:14}},nested:{StellarMemoType:{values:{NONE:0,TEXT:1,ID:2,HASH:3,RETURN:4}}}},StellarTxOpRequest:{fields:{}},StellarPaymentOp:{fields:{source_account:{type:"string",id:1},destination_account:{rule:"required",type:"string",id:2},asset:{rule:"required",type:"StellarAsset",id:3},amount:{rule:"required",type:"sint64",id:4}}},StellarCreateAccountOp:{fields:{source_account:{type:"string",id:1},new_account:{rule:"required",type:"string",id:2},starting_balance:{rule:"required",type:"sint64",id:3}}},StellarPathPaymentStrictReceiveOp:{fields:{source_account:{type:"string",id:1},send_asset:{rule:"required",type:"StellarAsset",id:2},send_max:{rule:"required",type:"sint64",id:3},destination_account:{rule:"required",type:"string",id:4},destination_asset:{rule:"required",type:"StellarAsset",id:5},destination_amount:{rule:"required",type:"sint64",id:6},paths:{rule:"repeated",type:"StellarAsset",id:7}}},StellarPathPaymentStrictSendOp:{fields:{source_account:{type:"string",id:1},send_asset:{rule:"required",type:"StellarAsset",id:2},send_amount:{rule:"required",type:"sint64",id:3},destination_account:{rule:"required",type:"string",id:4},destination_asset:{rule:"required",type:"StellarAsset",id:5},destination_min:{rule:"required",type:"sint64",id:6},paths:{rule:"repeated",type:"StellarAsset",id:7}}},StellarManageSellOfferOp:{fields:{source_account:{type:"string",id:1},selling_asset:{rule:"required",type:"StellarAsset",id:2},buying_asset:{rule:"required",type:"StellarAsset",id:3},amount:{rule:"required",type:"sint64",id:4},price_n:{rule:"required",type:"uint32",id:5},price_d:{rule:"required",type:"uint32",id:6},offer_id:{rule:"required",type:"uint64",id:7}}},StellarManageBuyOfferOp:{fields:{source_account:{type:"string",id:1},selling_asset:{rule:"required",type:"StellarAsset",id:2},buying_asset:{rule:"required",type:"StellarAsset",id:3},amount:{rule:"required",type:"sint64",id:4},price_n:{rule:"required",type:"uint32",id:5},price_d:{rule:"required",type:"uint32",id:6},offer_id:{rule:"required",type:"uint64",id:7}}},StellarCreatePassiveSellOfferOp:{fields:{source_account:{type:"string",id:1},selling_asset:{rule:"required",type:"StellarAsset",id:2},buying_asset:{rule:"required",type:"StellarAsset",id:3},amount:{rule:"required",type:"sint64",id:4},price_n:{rule:"required",type:"uint32",id:5},price_d:{rule:"required",type:"uint32",id:6}}},StellarSetOptionsOp:{fields:{source_account:{type:"string",id:1},inflation_destination_account:{type:"string",id:2},clear_flags:{type:"uint32",id:3},set_flags:{type:"uint32",id:4},master_weight:{type:"uint32",id:5},low_threshold:{type:"uint32",id:6},medium_threshold:{type:"uint32",id:7},high_threshold:{type:"uint32",id:8},home_domain:{type:"string",id:9},signer_type:{type:"StellarSignerType",id:10},signer_key:{type:"bytes",id:11},signer_weight:{type:"uint32",id:12}},nested:{StellarSignerType:{values:{ACCOUNT:0,PRE_AUTH:1,HASH:2}}}},StellarChangeTrustOp:{fields:{source_account:{type:"string",id:1},asset:{rule:"required",type:"StellarAsset",id:2},limit:{rule:"required",type:"uint64",id:3}}},StellarAllowTrustOp:{fields:{source_account:{type:"string",id:1},trusted_account:{rule:"required",type:"string",id:2},asset_type:{rule:"required",type:"StellarAssetType",id:3},asset_code:{type:"string",id:4},is_authorized:{rule:"required",type:"bool",id:5}}},StellarAccountMergeOp:{fields:{source_account:{type:"string",id:1},destination_account:{rule:"required",type:"string",id:2}}},StellarManageDataOp:{fields:{source_account:{type:"string",id:1},key:{rule:"required",type:"string",id:2},value:{type:"bytes",id:3}}},StellarBumpSequenceOp:{fields:{source_account:{type:"string",id:1},bump_to:{rule:"required",type:"uint64",id:2}}},StellarSignedTx:{fields:{public_key:{rule:"required",type:"bytes",id:1},signature:{rule:"required",type:"bytes",id:2}}},TezosGetAddress:{fields:{address_n:{rule:"repeated",type:"uint32",id:1,options:{packed:!1}},show_display:{type:"bool",id:2}}},TezosAddress:{fields:{address:{rule:"required",type:"string",id:1}}},TezosGetPublicKey:{fields:{address_n:{rule:"repeated",type:"uint32",id:1,options:{packed:!1}},show_display:{type:"bool",id:2}}},TezosPublicKey:{fields:{public_key:{rule:"required",type:"string",id:1}}},TezosSignTx:{fields:{address_n:{rule:"repeated",type:"uint32",id:1,options:{packed:!1}},branch:{rule:"required",type:"bytes",id:2},reveal:{type:"TezosRevealOp",id:3},transaction:{type:"TezosTransactionOp",id:4},origination:{type:"TezosOriginationOp",id:5},delegation:{type:"TezosDelegationOp",id:6},proposal:{type:"TezosProposalOp",id:7},ballot:{type:"TezosBallotOp",id:8}},nested:{TezosContractID:{fields:{tag:{rule:"required",type:"TezosContractType",id:1},hash:{rule:"required",type:"bytes",id:2}},nested:{TezosContractType:{values:{Implicit:0,Originated:1}}}},TezosRevealOp:{fields:{source:{rule:"required",type:"bytes",id:7},fee:{rule:"required",type:"uint64",id:2},counter:{rule:"required",type:"uint64",id:3},gas_limit:{rule:"required",type:"uint64",id:4},storage_limit:{rule:"required",type:"uint64",id:5},public_key:{rule:"required",type:"bytes",id:6}}},TezosTransactionOp:{fields:{source:{rule:"required",type:"bytes",id:9},fee:{rule:"required",type:"uint64",id:2},counter:{rule:"required",type:"uint64",id:3},gas_limit:{rule:"required",type:"uint64",id:4},storage_limit:{rule:"required",type:"uint64",id:5},amount:{rule:"required",type:"uint64",id:6},destination:{rule:"required",type:"TezosContractID",id:7},parameters:{type:"bytes",id:8},parameters_manager:{type:"TezosParametersManager",id:10}},nested:{TezosParametersManager:{fields:{set_delegate:{type:"bytes",id:1},cancel_delegate:{type:"bool",id:2},transfer:{type:"TezosManagerTransfer",id:3}},nested:{TezosManagerTransfer:{fields:{destination:{rule:"required",type:"TezosContractID",id:1},amount:{rule:"required",type:"uint64",id:2}}}}}}},TezosOriginationOp:{fields:{source:{rule:"required",type:"bytes",id:12},fee:{rule:"required",type:"uint64",id:2},counter:{rule:"required",type:"uint64",id:3},gas_limit:{rule:"required",type:"uint64",id:4},storage_limit:{rule:"required",type:"uint64",id:5},manager_pubkey:{type:"bytes",id:6},balance:{rule:"required",type:"uint64",id:7},spendable:{type:"bool",id:8},delegatable:{type:"bool",id:9},delegate:{type:"bytes",id:10},script:{rule:"required",type:"bytes",id:11}}},TezosDelegationOp:{fields:{source:{rule:"required",type:"bytes",id:7},fee:{rule:"required",type:"uint64",id:2},counter:{rule:"required",type:"uint64",id:3},gas_limit:{rule:"required",type:"uint64",id:4},storage_limit:{rule:"required",type:"uint64",id:5},delegate:{rule:"required",type:"bytes",id:6}}},TezosProposalOp:{fields:{source:{rule:"required",type:"bytes",id:1},period:{rule:"required",type:"uint64",id:2},proposals:{rule:"repeated",type:"bytes",id:4}}},TezosBallotOp:{fields:{source:{rule:"required",type:"bytes",id:1},period:{rule:"required",type:"uint64",id:2},proposal:{rule:"required",type:"bytes",id:3},ballot:{rule:"required",type:"TezosBallotType",id:4}},nested:{TezosBallotType:{values:{Yay:0,Nay:1,Pass:2}}}}}},TezosSignedTx:{fields:{signature:{rule:"required",type:"string",id:1},sig_op_contents:{rule:"required",type:"bytes",id:2},operation_hash:{rule:"required",type:"string",id:3}}},WebAuthnListResidentCredentials:{fields:{}},WebAuthnAddResidentCredential:{fields:{credential_id:{type:"bytes",id:1}}},WebAuthnRemoveResidentCredential:{fields:{index:{type:"uint32",id:1}}},WebAuthnCredentials:{fields:{credentials:{rule:"repeated",type:"WebAuthnCredential",id:1}},nested:{WebAuthnCredential:{fields:{index:{type:"uint32",id:1},id:{type:"bytes",id:2},rp_id:{type:"string",id:3},rp_name:{type:"string",id:4},user_id:{type:"bytes",id:5},user_name:{type:"string",id:6},user_display_name:{type:"string",id:7},creation_time:{type:"uint32",id:8},hmac_secret:{type:"bool",id:9},use_sign_count:{type:"bool",id:10},algorithm:{type:"sint32",id:11},curve:{type:"sint32",id:12}}}}},google:{nested:{protobuf:{nested:{FileDescriptorSet:{fields:{file:{rule:"repeated",type:"FileDescriptorProto",id:1}}},FileDescriptorProto:{fields:{name:{type:"string",id:1},package:{type:"string",id:2},dependency:{rule:"repeated",type:"string",id:3},public_dependency:{rule:"repeated",type:"int32",id:10,options:{packed:!1}},weak_dependency:{rule:"repeated",type:"int32",id:11,options:{packed:!1}},message_type:{rule:"repeated",type:"DescriptorProto",id:4},enum_type:{rule:"repeated",type:"EnumDescriptorProto",id:5},service:{rule:"repeated",type:"ServiceDescriptorProto",id:6},extension:{rule:"repeated",type:"FieldDescriptorProto",id:7},options:{type:"FileOptions",id:8},source_code_info:{type:"SourceCodeInfo",id:9},syntax:{type:"string",id:12}}},DescriptorProto:{fields:{name:{type:"string",id:1},field:{rule:"repeated",type:"FieldDescriptorProto",id:2},extension:{rule:"repeated",type:"FieldDescriptorProto",id:6},nested_type:{rule:"repeated",type:"DescriptorProto",id:3},enum_type:{rule:"repeated",type:"EnumDescriptorProto",id:4},extension_range:{rule:"repeated",type:"ExtensionRange",id:5},oneof_decl:{rule:"repeated",type:"OneofDescriptorProto",id:8},options:{type:"MessageOptions",id:7},reserved_range:{rule:"repeated",type:"ReservedRange",id:9},reserved_name:{rule:"repeated",type:"string",id:10}},nested:{ExtensionRange:{fields:{start:{type:"int32",id:1},end:{type:"int32",id:2}}},ReservedRange:{fields:{start:{type:"int32",id:1},end:{type:"int32",id:2}}}}},FieldDescriptorProto:{fields:{name:{type:"string",id:1},number:{type:"int32",id:3},label:{type:"Label",id:4},type:{type:"Type",id:5},type_name:{type:"string",id:6},extendee:{type:"string",id:2},default_value:{type:"string",id:7},oneof_index:{type:"int32",id:9},json_name:{type:"string",id:10},options:{type:"FieldOptions",id:8}},nested:{Type:{values:{TYPE_DOUBLE:1,TYPE_FLOAT:2,TYPE_INT64:3,TYPE_UINT64:4,TYPE_INT32:5,TYPE_FIXED64:6,TYPE_FIXED32:7,TYPE_BOOL:8,TYPE_STRING:9,TYPE_GROUP:10,TYPE_MESSAGE:11,TYPE_BYTES:12,TYPE_UINT32:13,TYPE_ENUM:14,TYPE_SFIXED32:15,TYPE_SFIXED64:16,TYPE_SINT32:17,TYPE_SINT64:18}},Label:{values:{LABEL_OPTIONAL:1,LABEL_REQUIRED:2,LABEL_REPEATED:3}}}},OneofDescriptorProto:{fields:{name:{type:"string",id:1},options:{type:"OneofOptions",id:2}}},EnumDescriptorProto:{fields:{name:{type:"string",id:1},value:{rule:"repeated",type:"EnumValueDescriptorProto",id:2},options:{type:"EnumOptions",id:3}}},EnumValueDescriptorProto:{fields:{name:{type:"string",id:1},number:{type:"int32",id:2},options:{type:"EnumValueOptions",id:3}}},ServiceDescriptorProto:{fields:{name:{type:"string",id:1},method:{rule:"repeated",type:"MethodDescriptorProto",id:2},options:{type:"ServiceOptions",id:3}}},MethodDescriptorProto:{fields:{name:{type:"string",id:1},input_type:{type:"string",id:2},output_type:{type:"string",id:3},options:{type:"MethodOptions",id:4},client_streaming:{type:"bool",id:5},server_streaming:{type:"bool",id:6}}},FileOptions:{fields:{java_package:{type:"string",id:1},java_outer_classname:{type:"string",id:8},java_multiple_files:{type:"bool",id:10},java_generate_equals_and_hash:{type:"bool",id:20,options:{deprecated:!0}},java_string_check_utf8:{type:"bool",id:27},optimize_for:{type:"OptimizeMode",id:9,options:{default:"SPEED"}},go_package:{type:"string",id:11},cc_generic_services:{type:"bool",id:16},java_generic_services:{type:"bool",id:17},py_generic_services:{type:"bool",id:18},deprecated:{type:"bool",id:23},cc_enable_arenas:{type:"bool",id:31},objc_class_prefix:{type:"string",id:36},csharp_namespace:{type:"string",id:37},uninterpreted_option:{rule:"repeated",type:"UninterpretedOption",id:999}},extensions:[[1e3,536870911]],reserved:[[38,38]],nested:{OptimizeMode:{values:{SPEED:1,CODE_SIZE:2,LITE_RUNTIME:3}}}},MessageOptions:{fields:{message_set_wire_format:{type:"bool",id:1},no_standard_descriptor_accessor:{type:"bool",id:2},deprecated:{type:"bool",id:3},map_entry:{type:"bool",id:7},uninterpreted_option:{rule:"repeated",type:"UninterpretedOption",id:999}},extensions:[[1e3,536870911]],reserved:[[8,8]]},FieldOptions:{fields:{ctype:{type:"CType",id:1,options:{default:"STRING"}},packed:{type:"bool",id:2},jstype:{type:"JSType",id:6,options:{default:"JS_NORMAL"}},lazy:{type:"bool",id:5},deprecated:{type:"bool",id:3},weak:{type:"bool",id:10},uninterpreted_option:{rule:"repeated",type:"UninterpretedOption",id:999}},extensions:[[1e3,536870911]],reserved:[[4,4]],nested:{CType:{values:{STRING:0,CORD:1,STRING_PIECE:2}},JSType:{values:{JS_NORMAL:0,JS_STRING:1,JS_NUMBER:2}}}},OneofOptions:{fields:{uninterpreted_option:{rule:"repeated",type:"UninterpretedOption",id:999}},extensions:[[1e3,536870911]]},EnumOptions:{fields:{allow_alias:{type:"bool",id:2},deprecated:{type:"bool",id:3},uninterpreted_option:{rule:"repeated",type:"UninterpretedOption",id:999}},extensions:[[1e3,536870911]]},EnumValueOptions:{fields:{deprecated:{type:"bool",id:1},uninterpreted_option:{rule:"repeated",type:"UninterpretedOption",id:999}},extensions:[[1e3,536870911]]},ServiceOptions:{fields:{deprecated:{type:"bool",id:33},uninterpreted_option:{rule:"repeated",type:"UninterpretedOption",id:999}},extensions:[[1e3,536870911]]},MethodOptions:{fields:{deprecated:{type:"bool",id:33},uninterpreted_option:{rule:"repeated",type:"UninterpretedOption",id:999}},extensions:[[1e3,536870911]]},UninterpretedOption:{fields:{name:{rule:"repeated",type:"NamePart",id:2},identifier_value:{type:"string",id:3},positive_int_value:{type:"uint64",id:4},negative_int_value:{type:"int64",id:5},double_value:{type:"double",id:6},string_value:{type:"bytes",id:7},aggregate_value:{type:"string",id:8}},nested:{NamePart:{fields:{name_part:{rule:"required",type:"string",id:1},is_extension:{rule:"required",type:"bool",id:2}}}}},SourceCodeInfo:{fields:{location:{rule:"repeated",type:"Location",id:1}},nested:{Location:{fields:{path:{rule:"repeated",type:"int32",id:1},span:{rule:"repeated",type:"int32",id:2},leading_comments:{type:"string",id:3},trailing_comments:{type:"string",id:4},leading_detached_comments:{rule:"repeated",type:"string",id:6}}}}},GeneratedCodeInfo:{fields:{annotation:{rule:"repeated",type:"Annotation",id:1}},nested:{Annotation:{fields:{path:{rule:"repeated",type:"int32",id:1},source_file:{type:"string",id:2},begin:{type:"int32",id:3},end:{type:"int32",id:4}}}}}}}}}}}});var Poe=x(Gw=>{"use strict";Object.defineProperty(Gw,"__esModule",{value:!0});Gw.getAssetByUrl=void 0;var wze=t=>{switch(t.split("?")[0]){case"./data/coins.json":return xoe();case"./data/bridge/releases.json":return Soe();case"./data/firmware/1/releases.json":return Eoe();case"./data/firmware/2/releases.json":return Toe();case"./data/messages/messages.json":return Aoe();default:return null}};Gw.getAssetByUrl=wze});var Xw=x(Jw=>{"use strict";Object.defineProperty(Jw,"__esModule",{value:!0});Jw.httpRequest=void 0;var xze=mr(),Sze=xze.__importDefault(Hw()),Eze=require("fs"),Tze=woe(),Aze=Poe();global&&typeof global.fetch!="function"&&(global.fetch=Sze.default);var Pze=(t,e)=>{let r=(0,Aze.getAssetByUrl)(t);return r||(/^https?/.test(t)?(0,Tze.httpRequest)(t,e):Eze.promises.readFile(t))};Jw.httpRequest=Pze});var Gt=x(Bt=>{"use strict";Object.defineProperty(Bt,"__esModule",{value:!0});Bt.getLabel=Bt.fixPath=Bt.getIndexFromPath=Bt.getPathFromIndex=Bt.getSerializedPath=Bt.validatePath=Bt.getOutputScriptType=Bt.getScriptType=Bt.getAccountType=Bt.isTaprootPath=Bt.isBech32Path=Bt.isSegwitPath=Bt.getHDPath=Bt.fromHardened=Bt.toHardened=Bt.HD_HARDENED=void 0;var wN=Pt();Bt.HD_HARDENED=2147483648;var Oze=t=>(t|Bt.HD_HARDENED)>>>0;Bt.toHardened=Oze;var Rze=t=>(t&~Bt.HD_HARDENED)>>>0;Bt.fromHardened=Rze;var s3=wN.ERRORS.TypedError("Method_InvalidParameter","Not a valid path"),Ooe=wN.ERRORS.TypedError("Method_InvalidParameter","Path cannot contain negative values"),Mze=t=>{let e=t.toLowerCase().split("/");if(e[0]!=="m")throw s3;return e.filter(r=>r!=="m"&&r!=="").map(r=>{let i=!1;r.endsWith("'")&&(i=!0,r=r.substring(0,r.length-1));let n=parseInt(r,10);if(Number.isNaN(n))throw s3;if(n<0)throw Ooe;return i&&(n=(0,Bt.toHardened)(n)),n})};Bt.getHDPath=Mze;var Cze=t=>Array.isArray(t)&&t[0]===(0,Bt.toHardened)(49);Bt.isSegwitPath=Cze;var Ize=t=>Array.isArray(t)&&t[0]===(0,Bt.toHardened)(84);Bt.isBech32Path=Ize;var Nze=t=>Array.isArray(t)&&(t[0]===(0,Bt.toHardened)(86)||t[0]===(0,Bt.toHardened)(10025));Bt.isTaprootPath=Nze;var kze=t=>(0,Bt.isTaprootPath)(t)?"p2tr":(0,Bt.isBech32Path)(t)?"p2wpkh":(0,Bt.isSegwitPath)(t)?"p2sh":"p2pkh";Bt.getAccountType=kze;var Bze=t=>{if(!Array.isArray(t)||t.length<1)return;switch((0,Bt.fromHardened)(t[0])){case 44:return"SPENDADDRESS";case 48:{if(t.length<4)return;switch((0,Bt.fromHardened)(t[3])){case 0:return"SPENDMULTISIG";case 1:return"SPENDP2SHWITNESS";case 2:return"SPENDWITNESS";default:return}}case 49:return"SPENDP2SHWITNESS";case 84:return"SPENDWITNESS";case 86:case 10025:return"SPENDTAPROOT";default:return}};Bt.getScriptType=Bze;var Fze=t=>{if(!Array.isArray(t)||t.length<1)return;switch((0,Bt.fromHardened)(t[0])){case 44:return"PAYTOADDRESS";case 48:{if(t.length<4)return;switch((0,Bt.fromHardened)(t[3])){case 0:return"PAYTOMULTISIG";case 1:return"PAYTOP2SHWITNESS";case 2:return"PAYTOWITNESS";default:return}}case 49:return"PAYTOP2SHWITNESS";case 84:return"PAYTOWITNESS";case 86:case 10025:return"PAYTOTAPROOT";default:return}};Bt.getOutputScriptType=Fze;var Dze=(t,e=0,r=!1)=>{let i;if(typeof t=="string"?i=(0,Bt.getHDPath)(t):Array.isArray(t)&&(i=t.map(n=>{let a=parseInt(n,10);if(Number.isNaN(a))throw s3;if(a<0)throw Ooe;return a})),!i||e>0&&i.length`m/${t.map(e=>{let r=(e&~Bt.HD_HARDENED).toString();return e&Bt.HD_HARDENED?`${r}'`:r}).join("/")}`;Bt.getSerializedPath=qze;var Lze=(t,e,r)=>[(0,Bt.toHardened)(t),(0,Bt.toHardened)(e),(0,Bt.toHardened)(r)];Bt.getPathFromIndex=Lze;var Uze=t=>{if(t.length<3)throw wN.ERRORS.TypedError("Method_InvalidParameter",`getIndexFromPath: invalid path length ${t.toString()}`);return(0,Bt.fromHardened)(t[2])};Bt.getIndexFromPath=Uze;var jze=t=>(t.address_n&&Array.isArray(t.address_n)&&(t.address_n=t.address_n.map(e=>e>>>0)),t.address_n&&typeof t.address_n=="string"&&(t.address_n=(0,Bt.getHDPath)(t.address_n)),t);Bt.fixPath=jze;var Vze=(t,e)=>e?t.replace("#NETWORK",e.label):t.replace("#NETWORK","");Bt.getLabel=Vze});var qt=x(Gr=>{"use strict";Object.defineProperty(Gr,"__esModule",{value:!0});Gr.getAllNetworks=Gr.getUniqueNetworks=Gr.parseCoinsJson=Gr.getCoinName=Gr.getCoinInfo=Gr.getCoinInfoByHash=Gr.fixCoinInfoNetwork=Gr.getBech32Network=Gr.getSegwitNetwork=Gr.getMiscNetwork=Gr.getEthereumNetwork=Gr.getBitcoinNetwork=Gr.cloneCoinInfo=void 0;var Roe=Pt(),jy=Gt(),Kw=[],Ww=[],xN=[];function Vy(t){let e=JSON.stringify(t);return e===void 0?t:JSON.parse(e)}Gr.cloneCoinInfo=Vy;var Hze=t=>{let e=Vy(Kw);if(typeof t=="string"){let i=t.toLowerCase();return e.find(n=>n.name.toLowerCase()===i||n.shortcut.toLowerCase()===i||n.label.toLowerCase()===i)}let r=(0,jy.fromHardened)(t[1]);return e.find(i=>i.slip44===r)};Gr.getBitcoinNetwork=Hze;var zze=t=>{let e=Vy(Ww);if(typeof t=="string"){let i=t.toLowerCase();return e.find(n=>n.name.toLowerCase()===i||n.shortcut.toLowerCase()===i)}let r=(0,jy.fromHardened)(t[1]);return e.find(i=>i.slip44===r)};Gr.getEthereumNetwork=zze;var Gze=t=>{let e=Vy(xN);if(typeof t=="string"){let i=t.toLowerCase();return e.find(n=>n.name.toLowerCase()===i||n.shortcut.toLowerCase()===i)}let r=(0,jy.fromHardened)(t[1]);return e.find(i=>i.slip44===r)};Gr.getMiscNetwork=Gze;var Jze=t=>t.segwit&&typeof t.xPubMagicSegwit=="number"?{...t.network,bip32:{...t.network.bip32,public:t.xPubMagicSegwit}}:null;Gr.getSegwitNetwork=Jze;var Xze=t=>t.segwit&&typeof t.xPubMagicSegwitNative=="number"?{...t.network,bip32:{...t.network.bip32,public:t.xPubMagicSegwitNative}}:null;Gr.getBech32Network=Xze;var Kze=(t,e)=>{let r=Vy(t);if(e[0]===(0,jy.toHardened)(84)){let i=(0,Gr.getBech32Network)(r);i&&(r.network=i)}else if(e[0]===(0,jy.toHardened)(49)){let i=(0,Gr.getSegwitNetwork)(r);i&&(r.network=i)}else r.segwit=!1;return r};Gr.fixCoinInfoNetwork=Kze;var Wze=t=>t.subversion==null?"btc":t.subversion.startsWith("/Bitcoin ABC")||t.subversion.startsWith("/Bitcoin Cash")?"bch":t.subversion.startsWith("/Bitcoin Gold")?"btg":"btc",Zze=(t,e)=>{let r=Vy(Kw),i=r.find(n=>t.toLowerCase()===n.hashGenesisBlock.toLowerCase());if(!i)throw Roe.ERRORS.TypedError("Method_UnknownCoin",`Coin info not found for hash: ${t} ${e.hashGenesisBlock}`);if(i.isBitcoin){let n=Wze(e),a;if(n==="bch"?a=r.find(s=>s.name==="Bcash"):n==="btg"&&(a=r.find(s=>s.name==="Bgold")),a)return a;throw Roe.ERRORS.TypedError("Method_UnknownCoin",`Coin info not found for hash: ${t} ${e.hashGenesisBlock} BTC version:${n}`)}return i};Gr.getCoinInfoByHash=Zze;var $ze=t=>(0,Gr.getBitcoinNetwork)(t)||(0,Gr.getEthereumNetwork)(t)||(0,Gr.getMiscNetwork)(t);Gr.getCoinInfo=$ze;var Qze=t=>{let e=(0,jy.fromHardened)(t[1]),r=Ww.find(i=>i.slip44===e);return r?r.name:"Unknown coin"};Gr.getCoinName=Qze;var Yze=t=>{Object.keys(t).forEach(e=>{let r=t[e],i=r.coin_shortcut,n=i==="BTC"||i==="TEST",a={messagePrefix:r.signed_message_header,bech32:r.bech32_prefix,bip32:{public:r.xpub_magic,private:r.xprv_magic},pubKeyHash:r.address_type,scriptHash:r.address_type_p2sh,forkId:r.fork_id,wif:0};Kw.push({type:"bitcoin",blockchainLink:r.blockchain_link,blocktime:Math.round(r.blocktime_seconds/60),cashAddrPrefix:r.cashaddr_prefix,label:r.coin_label,name:r.coin_name,shortcut:i,curveName:r.curve_name,defaultFees:r.default_fee_b,dustLimit:r.dust_limit,forceBip143:r.force_bip143,hashGenesisBlock:r.hash_genesis_block,maxAddressLength:r.max_address_length,maxFeeSatoshiKb:r.maxfee_kb,minAddressLength:r.min_address_length,minFeeSatoshiKb:r.minfee_kb,segwit:r.segwit,slip44:r.slip44,support:r.support,xPubMagic:r.xpub_magic,xPubMagicSegwitNative:r.xpub_magic_segwit_native,xPubMagicSegwit:r.xpub_magic_segwit_p2sh,taproot:r.taproot,network:a,isBitcoin:n,maxFee:Math.round(r.maxfee_kb/1e3),minFee:Math.round(r.minfee_kb/1e3),blocks:Math.round(r.blocktime_seconds/60),decimals:r.decimals})})},eGe=t=>{Object.keys(t).forEach(e=>{let r=t[e];Ww.push({type:"ethereum",blockchainLink:r.blockchain_link,blocktime:-1,chain:r.chain,chainId:r.chain_id,defaultFees:[{label:"normal",feePerUnit:"5000000000",feeLimit:"21000"}],minFee:1,maxFee:1e4,label:r.name,name:r.name,shortcut:r.shortcut,rskip60:r.rskip60,slip44:r.slip44,support:r.support,network:void 0,decimals:16})})},Moe=(t,e)=>{Object.keys(t).forEach(r=>{let i=t[r],n=-1,a=-1,s={Normal:-1},o=i.shortcut.toLowerCase();(o==="xrp"||o==="txrp")&&(n=10,a=1e4,s={Normal:12}),(o==="ada"||o==="tada")&&(n=44,a=16384*44+155381,s={Normal:44}),xN.push({type:e||"misc",blockchainLink:i.blockchain_link,blocktime:-1,curve:i.curve,defaultFees:s,minFee:n,maxFee:a,label:i.name,name:i.name,shortcut:i.shortcut,slip44:i.slip44,support:i.support,network:void 0,decimals:i.decimals})})},tGe=t=>{Object.keys(t).forEach(e=>{switch(e){case"bitcoin":return Yze(t[e]);case"eth":return eGe(t[e]);case"misc":return Moe(t[e]);case"nem":return Moe(t[e],"nem")}})};Gr.parseCoinsJson=tGe;var rGe=t=>t.reduce((e,r)=>!r||e.find(i=>i.shortcut===r.shortcut)?e:e.concat(r),[]);Gr.getUniqueNetworks=rGe;var iGe=()=>[...Kw,...Ww,...xN];Gr.getAllNetworks=iGe});var EN=x(Du=>{"use strict";Object.defineProperty(Du,"__esModule",{value:!0});Du.filterSafeListByFirmware=Du.filterSafeListByBootloader=Du.getScore=Du.isValidReleases=Du.isStrictFeatures=void 0;var nGe=require("crypto"),SN=wn(),aGe=t=>[1,2].includes(t.major_version)&&(t.firmware_present===!1||t.bootloader_mode==null||t.bootloader_mode===!0);Du.isStrictFeatures=aGe;var sGe=t=>Array.isArray(t)&&t.every(e=>e.version&&e.min_firmware_version&&e.min_bootloader_version);Du.isValidReleases=sGe;var oGe=t=>{let e=(0,nGe.createHash)("sha256");e.update(t);let r=parseInt(e.digest("hex"),16)/2**256;return Math.round(r*100)/100};Du.getScore=oGe;var uGe=(t,e)=>t.filter(r=>(!r.min_bootloader_version||SN.versionUtils.isNewerOrEqual(e,r.min_bootloader_version))&&(!r.bootloader_version||SN.versionUtils.isNewerOrEqual(r.bootloader_version,e)));Du.filterSafeListByBootloader=uGe;var cGe=(t,e)=>t.filter(r=>SN.versionUtils.isNewerOrEqual(e,r.min_firmware_version));Du.filterSafeListByFirmware=cGe});var zy=x(to=>{"use strict";Object.defineProperty(to,"__esModule",{value:!0});to.getReleases=to.getRelease=to.getFirmwareStatus=to.getInfo=to.parseFirmware=void 0;var Zw=wn(),Im=EN(),Hy={};Hy[1]=[];Hy[2]=[];var dGe=(t,e)=>{Object.keys(t).forEach(r=>{let i=t[r];Hy[e].push({...i})})};to.parseFirmware=dGe;var lGe=(t,e)=>e.bootloader_mode?e.firmware_present&&e.major_version===1?null:e.firmware_present&&e.major_version===2?t.filter(r=>Zw.versionUtils.isNewer(r.version,[e.fw_major,e.fw_minor,e.fw_patch])):t:t.filter(r=>Zw.versionUtils.isNewer(r.version,[e.major_version,e.minor_version,e.patch_version])),fGe=(t,e)=>e.major_version===1&&e.bootloader_mode?null:Zw.versionUtils.isNewer(t.version,[e.major_version,e.minor_version,e.patch_version]),pGe=t=>!t||!t.length?null:t.some(e=>e.required),hGe=(t,e)=>Zw.versionUtils.isEqual(t.version,e.version),mGe=({features:t,releases:e})=>{if(!(0,Im.isStrictFeatures)(t))throw new Error("Features of unexpected shape provided.");if(!(0,Im.isValidReleases)(e))throw new Error("Release object in unexpected shape.");let r=e,i=0;t.device_id&&(i=(0,Im.getScore)(t.device_id));let{bootloader_mode:n,major_version:a,minor_version:s,patch_version:o,fw_major:c,fw_minor:u,fw_patch:f}=t;i&&(r=r.filter(T=>T.rollout?T.rollout>=i:!0));let d=r[0];if(a===2&&n?(c!==null&&u!==null&&f!==null&&(r=(0,Im.filterSafeListByFirmware)(r,[c,u,f])),r=(0,Im.filterSafeListByBootloader)(r,[a,s,o])):a===1&&n?r=(0,Im.filterSafeListByBootloader)(r,[a,s,o]):r=(0,Im.filterSafeListByFirmware)(r,[a,s,o]),!r.length)return null;let p=hGe(r[0],d),b=lGe(r,t);return{changelog:b,release:r[0],isLatest:p,latest:d,isRequired:pGe(b),isNewer:fGe(r[0],t)}};to.getInfo=mGe;var gGe=t=>{if(t.firmware_present===!1)return"none";if(t.major_version===1&&t.bootloader_mode)return"unknown";let e=(0,to.getInfo)({features:t,releases:Hy[t.major_version]});return e?e.isRequired?"required":e.isNewer?"outdated":"valid":"unknown"};to.getFirmwareStatus=gGe;var yGe=t=>(0,to.getInfo)({features:t,releases:Hy[t.major_version]});to.getRelease=yGe;var vGe=t=>Hy[t];to.getReleases=vGe});var TN=x(Gy=>{"use strict";Object.defineProperty(Gy,"__esModule",{value:!0});Gy.getBridgeInfo=Gy.parseBridgeJSON=void 0;var o3={version:[],directory:"",packages:[],changelog:""},bGe=t=>{let e=t[0],r=e.version.join("."),i=JSON.parse(JSON.stringify(e).replace(/{version}/g,r)),{directory:n}=i,a=i.packages.map(s=>({name:s.name,platform:s.platform,url:`${n}${s.url}`,signature:s.signature?`${n}${s.signature}`:void 0}));return o3.version=i.version,o3.directory=n,o3.packages=a,o3};Gy.parseBridgeJSON=bGe;var _Ge=()=>o3;Gy.getBridgeInfo=_Ge});var Bf=x($w=>{"use strict";Object.defineProperty($w,"__esModule",{value:!0});$w.DataManager=void 0;var wGe=mr(),Coe=wGe.__importDefault(kse()),Ioe=Xw(),xGe=R7(),SGe=qt(),Noe=zy(),EGe=TN(),u3=Qb(),fh=class{static async load(e,r=!0){var i;let n=e.env==="web"?`?r=${e.timestamp}`:"";this.settings=e;let a=typeof window<"u"&&window.location?window.location.hostname==="localhost":!0,s=fh.isWhitelisted(this.settings.origin||"");this.settings.trustedHost=(a||!!s)&&!this.settings.popup,this.settings.trustedHost||(this.settings.popup=!0),!this.settings.trustedHost&&!s&&(this.settings.debug=!1),this.settings.priority=fh.getPriority(s);let o=fh.getHostLabel(this.settings.extension||this.settings.origin||"");if(o&&(this.settings.hostLabel=o.label,this.settings.hostIcon=o.icon),this.settings.popup&&this.settings.env!=="webextension"&&(this.settings.transports=(i=this.settings.transports)===null||i===void 0?void 0:i.filter(u=>u!=="WebUsbTransport")),!r)return;let c=u3.config.assets.map(async u=>{let f=await(0,Ioe.httpRequest)(`${u.url}${n}`,"json");this.assets[u.name]=f});await Promise.all(c),this.messages=await(0,Ioe.httpRequest)(`${u3.config.messages}${n}`,"json"),(0,EGe.parseBridgeJSON)(this.assets.bridge),(0,SGe.parseCoinsJson)(this.assets.coins),(0,Noe.parseFirmware)(this.assets["firmware-t1"],1),(0,Noe.parseFirmware)(this.assets["firmware-t2"],2)}static getProtobufMessages(){return this.messages}static isWhitelisted(e){let r=(0,Coe.default)(e);if(r&&typeof r.host=="string"){let i=r.host.split(".");return i.length>2&&(r.host=i.slice(i.length-2,i.length).join(".")),u3.config.whitelist.find(n=>n.origin===e||n.origin===r.host)}}static isManagementAllowed(){var e;let r=(0,Coe.default)((e=this.settings.origin)!==null&&e!==void 0?e:"");if(r&&typeof r.host=="string"){let i=r.host.split(".");return i.length>2&&(r.host=i.slice(i.length-2,i.length).join(".")),u3.config.management.find(n=>n.origin===this.settings.origin||n.origin===r.host)}}static getPriority(e){return e?e.priority:xGe.DEFAULT_PRIORITY}static getHostLabel(e){return u3.config.knownHosts.find(r=>r.origin===e)}static getSettings(e){return this.settings?typeof e=="string"?this.settings[e]:this.settings:null}};$w.DataManager=fh;fh.assets={}});var Jy=x(Qw=>{"use strict";Object.defineProperty(Qw,"__esModule",{value:!0});Qw.resolveAfter=void 0;var TGe=(t,e)=>new Promise(r=>{setTimeout(r,t,e)});Qw.resolveAfter=TGe});var koe=x(tx=>{"use strict";Object.defineProperty(tx,"__esModule",{value:!0});tx.DescriptorStream=void 0;var AGe=mr(),PGe=AGe.__importDefault(require("events")),Yw=UC(),c3=LC(),OGe=Tf(),RGe=Bf(),MGe=Jy(),ex=(0,OGe.initLog)("DescriptorStream"),CGe=(t,e)=>{let r=e.filter(d=>t.find(p=>p.path===d.path)===void 0),i=t.filter(d=>e.find(p=>p.path===d.path)===void 0),n=e.filter(d=>{let p=t.find(b=>b.path===d.path);return p?p.session!==d.session:!1}),a=n.filter(d=>typeof d.session=="string"),s=n.filter(d=>typeof d.session!="string"),o=e.filter(d=>{let p=t.find(b=>b.path===d.path);return p?p.debugSession!==d.debugSession:!1}),c=n.filter(d=>typeof d.debugSession=="string"),u=n.filter(d=>typeof d.debugSession!="string"),f=r.length+i.length+n.length+o.length>0;return{connected:r,disconnected:i,changedSessions:n,acquired:a,released:s,changedDebugSessions:o,debugAcquired:c,debugReleased:u,didUpdate:f,descriptors:e}},AN=class extends PGe.default{constructor(e){super(),this.listening=!1,this.listenTimestamp=0,this.current=null,this.upcoming=[],this.transport=e}async listen(){let e=this.current!==null,r=this.current||[];this.listening=!0;let i;try{if(ex.debug("Start listening",r),this.listenTimestamp=new Date().getTime(),i=e?await this.transport.listen(r):await this.transport.enumerate(),this.listening&&!e&&(i.length>0&&RGe.DataManager.getSettings("pendingTransportEvent")?this.emit(Yw.TRANSPORT.START_PENDING,i.length):this.emit(Yw.TRANSPORT.START)),!this.listening)return;this.upcoming=i,ex.debug("Listen result",i),this._reportChanges(),this.listening&&this.listen()}catch(n){let a=new Date().getTime()-this.listenTimestamp;ex.debug("Listen error","timestamp",a,typeof n),a>1100?(await(0,MGe.resolveAfter)(1e3,null),this.listening&&this.listen()):(ex.warn("Transport error"),this.emit(Yw.TRANSPORT.ERROR,n))}}async enumerate(){if(!!this.listening)try{this.upcoming=await this.transport.enumerate(),this._reportChanges()}catch{}}stop(){this.listening=!1,this.removeAllListeners()}_reportChanges(){let e=CGe(this.current||[],this.upcoming);this.current=this.upcoming,e.didUpdate&&this.listening&&(e.connected.forEach(r=>{this.emit(c3.DEVICE.CONNECT,r)}),e.disconnected.forEach(r=>{this.emit(c3.DEVICE.DISCONNECT,r)}),e.acquired.forEach(r=>{this.emit(c3.DEVICE.ACQUIRED,r)}),e.released.forEach(r=>{this.emit(c3.DEVICE.RELEASED,r)}),e.changedSessions.forEach(r=>{this.emit(c3.DEVICE.CHANGED,r)}),this.emit(Yw.TRANSPORT.UPDATE,e))}};tx.DescriptorStream=AN});var rx=x((eIt,Boe)=>{Boe.exports=require("crypto").randomBytes});var d3=x(Ky=>{"use strict";Object.defineProperty(Ky,"__esModule",{value:!0});Ky.bech32m=Ky.bech32=void 0;var ix="qpzry9x8gf2tvdw0s3jn54khce6mua7l",Doe={};for(let t=0;t>25;return(t&33554431)<<5^-(e>>0&1)&996825010^-(e>>1&1)&642813549^-(e>>2&1)&513874426^-(e>>3&1)&1027748829^-(e>>4&1)&705979059}function Foe(t){let e=1;for(let r=0;r126)return"Invalid prefix ("+t+")";e=Xy(e)^i>>5}e=Xy(e);for(let r=0;r=r;)a-=r,o.push(n>>a&s);if(i)a>0&&o.push(n<=e)return"Excess padding";if(n<c)throw new TypeError("Exceeds length limit");s=s.toLowerCase();let u=Foe(s);if(typeof u=="string")throw new Error(u);let f=s+"1";for(let d=0;d>5!==0)throw new Error("Non 5-bit word");u=Xy(u)^p,f+=ix.charAt(p)}for(let d=0;d<6;++d)u=Xy(u);u^=e;for(let d=0;d<6;++d){let p=u>>(5-d)*5&31;f+=ix.charAt(p)}return f}function i(s,o){if(o=o||90,s.length<8)return s+" too short";if(s.length>o)return"Exceeds length limit";let c=s.toLowerCase(),u=s.toUpperCase();if(s!==c&&s!==u)return"Mixed-case string "+s;s=c;let f=s.lastIndexOf("1");if(f===-1)return"No separator character for "+s;if(f===0)return"Missing prefix for "+s;let d=s.slice(0,f),p=s.slice(f+1);if(p.length<6)return"Data too short";let b=Foe(d);if(typeof b=="string")return b;let T=[];for(let I=0;I=p.length)&&T.push(U)}return b!==e?"Invalid checksum for "+s:{prefix:d,words:T}}function n(s,o){let c=i(s,o);if(typeof c=="object")return c}function a(s,o){let c=i(s,o);if(typeof c=="object")return c;throw new Error(c)}return{decodeUnsafe:n,decode:a,encode:r,toWords:IGe,fromWordsUnsafe:NGe,fromWords:kGe}}Ky.bech32=qoe("bech32");Ky.bech32m=qoe("bech32m")});var nx=x((rIt,Loe)=>{var l3={Array:function(t){return t!=null&&t.constructor===Array},Boolean:function(t){return typeof t=="boolean"},Function:function(t){return typeof t=="function"},Nil:function(t){return t==null},Number:function(t){return typeof t=="number"},Object:function(t){return typeof t=="object"},String:function(t){return typeof t=="string"},"":function(){return!0}};l3.Null=l3.Nil;for(ON in l3)l3[ON].toJSON=function(t){return t}.bind(null,ON);var ON;Loe.exports=l3});var CN=x((iIt,Voe)=>{var Nm=nx();function Uoe(t){return t.name||t.toString().match(/function (.*?)\s*\(/)[1]}function RN(t){return Nm.Nil(t)?"":Uoe(t.constructor)}function BGe(t){return Nm.Function(t)?"":Nm.String(t)?JSON.stringify(t):t&&Nm.Object(t)?"":t}function MN(t,e){Error.captureStackTrace&&Error.captureStackTrace(t,e)}function ax(t){return Nm.Function(t)?t.toJSON?t.toJSON():Uoe(t):Nm.Array(t)?"Array":t&&Nm.Object(t)?"Object":t!==void 0?t:""}function joe(t,e,r){var i=BGe(e);return"Expected "+ax(t)+", got"+(r!==""?" "+r:"")+(i!==""?" "+i:"")}function Ff(t,e,r){r=r||RN(e),this.message=joe(t,e,r),MN(this,Ff),this.__type=t,this.__value=e,this.__valueTypeName=r}Ff.prototype=Object.create(Error.prototype);Ff.prototype.constructor=Ff;function FGe(t,e,r,i,n){var a='" of type ';return e==="key"&&(a='" with key type '),joe('property "'+ax(r)+a+ax(t),i,n)}function Wy(t,e,r,i,n){t?(n=n||RN(i),this.message=FGe(t,r,e,i,n)):this.message='Unexpected property "'+e+'"',MN(this,Ff),this.__label=r,this.__property=e,this.__type=t,this.__value=i,this.__valueTypeName=n}Wy.prototype=Object.create(Error.prototype);Wy.prototype.constructor=Ff;function DGe(t,e){return new Ff(t,{},e)}function qGe(t,e,r){return t instanceof Wy?(e=e+"."+t.__property,t=new Wy(t.__type,e,t.__label,t.__value,t.__valueTypeName)):t instanceof Ff&&(t=new Wy(t.__type,e,r,t.__value,t.__valueTypeName)),MN(t),t}Voe.exports={TfTypeError:Ff,TfPropertyTypeError:Wy,tfCustomError:DGe,tfSubError:qGe,tfJSON:ax,getValueTypeName:RN}});var Joe=x((nIt,Goe)=>{var BN=nx(),LGe=CN();function Hoe(t){return Buffer.isBuffer(t)}function zoe(t){return typeof t=="string"&&/^([0-9a-f]{2})+$/i.test(t)}function sx(t,e){var r=t.toJSON();function i(n){if(!t(n))return!1;if(n.length===e)return!0;throw LGe.tfCustomError(r+"(Length: "+e+")",r+"(Length: "+n.length+")")}return i.toJSON=function(){return r},i}var UGe=sx.bind(null,BN.Array),jGe=sx.bind(null,Hoe),VGe=sx.bind(null,zoe),HGe=sx.bind(null,BN.String);function zGe(t,e,r){r=r||BN.Number;function i(n,a){return r(n,a)&&n>t&&n>24===t}function XGe(t){return t<<16>>16===t}function KGe(t){return(t|0)===t}function WGe(t){return typeof t=="number"&&t>=-NN&&t<=NN&&Math.floor(t)===t}function ZGe(t){return(t&255)===t}function $Ge(t){return(t&65535)===t}function QGe(t){return t>>>0===t}function YGe(t){return typeof t=="number"&&t>=0&&t<=NN&&Math.floor(t)===t}var kN={ArrayN:UGe,Buffer:Hoe,BufferN:jGe,Finite:GGe,Hex:zoe,HexN:VGe,Int8:JGe,Int16:XGe,Int32:KGe,Int53:WGe,Range:zGe,StringN:HGe,UInt8:ZGe,UInt16:$Ge,UInt32:QGe,UInt53:YGe};for(IN in kN)kN[IN].toJSON=function(t){return t}.bind(null,IN);var IN;Goe.exports=kN});var Tn=x((aIt,Zoe)=>{var p3=CN(),Va=nx(),Df=p3.tfJSON,Koe=p3.TfTypeError,Woe=p3.TfPropertyTypeError,f3=p3.tfSubError,eJe=p3.getValueTypeName,qf={arrayOf:function(e,r){e=nl(e),r=r||{};function i(n,a){return!Va.Array(n)||Va.Nil(n)||r.minLength!==void 0&&n.lengthr.maxLength||r.length!==void 0&&n.length!==r.length?!1:n.every(function(s,o){try{return Ms(e,s,a)}catch(c){throw f3(c,o)}})}return i.toJSON=function(){var n="["+Df(e)+"]";return r.length!==void 0?n+="{"+r.length+"}":(r.minLength!==void 0||r.maxLength!==void 0)&&(n+="{"+(r.minLength===void 0?0:r.minLength)+","+(r.maxLength===void 0?1/0:r.maxLength)+"}"),n},i},maybe:function t(e){e=nl(e);function r(i,n){return Va.Nil(i)||e(i,n,t)}return r.toJSON=function(){return"?"+Df(e)},r},map:function(e,r){e=nl(e),r&&(r=nl(r));function i(n,a){if(!Va.Object(n)||Va.Nil(n))return!1;for(var s in n){try{r&&Ms(r,s,a)}catch(c){throw f3(c,s,"key")}try{var o=n[s];Ms(e,o,a)}catch(c){throw f3(c,s)}}return!0}return r?i.toJSON=function(){return"{"+Df(r)+": "+Df(e)+"}"}:i.toJSON=function(){return"{"+Df(e)+"}"},i},object:function(e){var r={};for(var i in e)r[i]=nl(e[i]);function n(a,s){if(!Va.Object(a)||Va.Nil(a))return!1;var o;try{for(o in r){var c=r[o],u=a[o];Ms(c,u,s)}}catch(f){throw f3(f,o)}if(s){for(o in a)if(!r[o])throw new Woe(void 0,o)}return!0}return n.toJSON=function(){return Df(r)},n},anyOf:function(){var e=[].slice.call(arguments).map(nl);function r(i,n){return e.some(function(a){try{return Ms(a,i,n)}catch{return!1}})}return r.toJSON=function(){return e.map(Df).join("|")},r},allOf:function(){var e=[].slice.call(arguments).map(nl);function r(i,n){return e.every(function(a){try{return Ms(a,i,n)}catch{return!1}})}return r.toJSON=function(){return e.map(Df).join(" & ")},r},quacksLike:function(e){function r(i){return e===eJe(i)}return r.toJSON=function(){return e},r},tuple:function(){var e=[].slice.call(arguments).map(nl);function r(i,n){return Va.Nil(i)||Va.Nil(i.length)||n&&i.length!==e.length?!1:e.every(function(a,s){try{return Ms(a,i[s],n)}catch(o){throw f3(o,s)}})}return r.toJSON=function(){return"("+e.map(Df).join(", ")+")"},r},value:function(e){function r(i){return i===e}return r.toJSON=function(){return e},r}};qf.oneOf=qf.anyOf;function nl(t){if(Va.String(t))return t[0]==="?"?qf.maybe(t.slice(1)):Va[t]||qf.quacksLike(t);if(t&&Va.Object(t)){if(Va.Array(t)){if(t.length!==1)throw new TypeError("Expected compile() parameter of type Array of length 1");return qf.arrayOf(t[0])}return qf.object(t)}else if(Va.Function(t))return t;return qf.value(t)}function Ms(t,e,r,i){if(Va.Function(t)){if(t(e,r))return!0;throw new Koe(i||t,e)}return Ms(nl(t),e,r)}for(Lf in Va)Ms[Lf]=Va[Lf];var Lf;for(Lf in qf)Ms[Lf]=qf[Lf];var Xoe=Joe();for(Lf in Xoe)Ms[Lf]=Xoe[Lf];Ms.compile=nl;Ms.TfTypeError=Koe;Ms.TfPropertyTypeError=Woe;Zoe.exports=Ms});var An=x(Ft=>{"use strict";Object.defineProperty(Ft,"__esModule",{value:!0});Ft.isNetworkType=Ft.doge=Ft.decredSim=Ft.decredTest=Ft.decred=Ft.komodo=Ft.peercoinTest=Ft.peercoin=Ft.zcashTest=Ft.zcash=Ft.dashTest=Ft.dash=Ft.litecoinTest=Ft.litecoin=Ft.bitcoingold=Ft.bitcoincashTest=Ft.bitcoincash=Ft.testnet=Ft.regtest=Ft.bitcoin=void 0;var Uf=Tn();Ft.bitcoin={messagePrefix:`Bitcoin Signed Message: +`,bech32:"bc",bip32:{public:76067358,private:76066276},pubKeyHash:0,scriptHash:5,wif:128};Ft.regtest={messagePrefix:`Bitcoin Signed Message: +`,bech32:"bcrt",bip32:{public:70617039,private:70615956},pubKeyHash:111,scriptHash:196,wif:239};Ft.testnet={messagePrefix:`Bitcoin Signed Message: +`,bech32:"tb",bip32:{public:70617039,private:70615956},pubKeyHash:111,scriptHash:196,wif:239};Ft.bitcoincash={messagePrefix:`Bitcoin Signed Message: +`,bech32:"",bip32:{public:76067358,private:76066276},pubKeyHash:0,scriptHash:5,wif:128,forkId:0};Ft.bitcoincashTest={messagePrefix:`Bitcoin Signed Message: +`,bech32:"",bip32:{public:70617039,private:70615956},pubKeyHash:111,scriptHash:196,wif:239,forkId:0};Ft.bitcoingold={messagePrefix:`Bitcoin Gold Signed Message: +`,bech32:"btg",bip32:{public:76067358,private:76066276},pubKeyHash:38,scriptHash:23,wif:128,forkId:79};Ft.litecoin={messagePrefix:`Litecoin Signed Message: +`,bech32:"ltc",bip32:{public:27108450,private:27106558},pubKeyHash:48,scriptHash:50,wif:176};Ft.litecoinTest={messagePrefix:`Litecoin Signed Message: +`,bech32:"tltc",bip32:{public:70617039,private:70615956},pubKeyHash:111,scriptHash:58,wif:176};Ft.dash={messagePrefix:`DarkCoin Signed Message: +`,bech32:"",bip32:{public:50221772,private:50221816},pubKeyHash:76,scriptHash:16,wif:204};Ft.dashTest={messagePrefix:`DarkCoin Signed Message: +`,bech32:"",bip32:{public:70617039,private:70615956},pubKeyHash:140,scriptHash:19,wif:239};Ft.zcash={messagePrefix:`ZCash Signed Message: +`,bech32:"",bip32:{public:76067358,private:76066276},pubKeyHash:7352,scriptHash:7357,wif:128};Ft.zcashTest={messagePrefix:`ZCash Signed Message: +`,bech32:"",bip32:{public:70617039,private:70615956},pubKeyHash:7461,scriptHash:7354,wif:239};Ft.peercoin={messagePrefix:`Peercoin Signed Message: +`,bech32:"pc",bip32:{public:76067358,private:76066276},pubKeyHash:55,scriptHash:117,wif:0};Ft.peercoinTest={messagePrefix:`Peercoin Signed Message: +`,bech32:"tpc",bip32:{public:70617039,private:70615956},pubKeyHash:111,scriptHash:196,wif:0};Ft.komodo={messagePrefix:`Komodo Signed Message: +`,bech32:"",bip32:{public:76067358,private:76066276},pubKeyHash:60,scriptHash:85,wif:188};Ft.decred={messagePrefix:`Decred Signed Message: +`,bech32:"",bip32:{public:50178342,private:50177256},pubKeyHash:1855,scriptHash:1818,wif:8926};Ft.decredTest={messagePrefix:`Decred Signed Message: +`,bech32:"",bip32:{public:70617041,private:70615959},pubKeyHash:3873,scriptHash:3836,wif:8974};Ft.decredSim={messagePrefix:`Decred Signed Message: +`,bech32:"",bip32:{public:69254461,private:69253379},pubKeyHash:3729,scriptHash:3692,wif:8967};Ft.doge={messagePrefix:`Dogecoin Signed Message: +`,bech32:"",bip32:{public:49990397,private:49988504},pubKeyHash:30,scriptHash:22,wif:158};var $oe={bitcoinCash:[Ft.bitcoincash,Ft.bitcoincashTest],dash:[Ft.dash,Ft.dashTest],decred:[Ft.decred,Ft.decredTest,Ft.decredSim],peercoin:[Ft.peercoin,Ft.peercoinTest],zcash:[Ft.zcash,Ft.zcashTest,Ft.komodo],litecoin:[Ft.litecoin,Ft.litecoinTest]};function tJe(t,e){if(typeof t!="string"||!e||!$oe[t])return!1;try{Uf({bip32:{public:Uf.UInt32,private:Uf.UInt32},pubKeyHash:Uf.anyOf(Uf.UInt8,Uf.UInt16),scriptHash:Uf.anyOf(Uf.UInt8,Uf.UInt16)},e)}catch{return!1}return!!$oe[t].find(r=>r.bip32.public===e.bip32.public&&r.bip32.private===e.bip32.private&&(!r.bech32&&!e.bech32||r.bech32===e.bech32)&&(!r.forkId&&!e.forkId||r.forkId===e.forkId)&&r.pubKeyHash===e.pubKeyHash&&r.scriptHash===e.scriptHash)}Ft.isNetworkType=tJe});var h3=x((oIt,Qoe)=>{Qoe.exports=require("crypto").createHash});var Zy=x((FN,eue)=>{var ox=require("buffer"),al=ox.Buffer;function Yoe(t,e){for(var r in t)e[r]=t[r]}al.from&&al.alloc&&al.allocUnsafe&&al.allocUnsafeSlow?eue.exports=ox:(Yoe(ox,FN),FN.Buffer=km);function km(t,e,r){return al(t,e,r)}km.prototype=Object.create(al.prototype);Yoe(al,km);km.from=function(t,e,r){if(typeof t=="number")throw new TypeError("Argument must not be a number");return al(t,e,r)};km.alloc=function(t,e,r){if(typeof t!="number")throw new TypeError("Argument must be a number");var i=al(t);return e!==void 0?typeof r=="string"?i.fill(e,r):i.fill(e):i.fill(0),i};km.allocUnsafe=function(t){if(typeof t!="number")throw new TypeError("Argument must be a number");return al(t)};km.allocUnsafeSlow=function(t){if(typeof t!="number")throw new TypeError("Argument must be a number");return ox.SlowBuffer(t)}});var DN=x((uIt,tue)=>{"use strict";var ux=Zy().Buffer;function rJe(t){if(t.length>=255)throw new TypeError("Alphabet too long");for(var e=new Uint8Array(256),r=0;r>>0,oe=new Uint8Array(re);L!==U;){for(var ge=b[L],be=0,ce=re-1;(ge!==0||be>>0,oe[ce]=ge%s>>>0,ge=ge/s>>>0;if(ge!==0)throw new Error("Non-zero carry");I=be,L++}for(var me=re-I;me!==re&&oe[me]===0;)me++;for(var ne=o.repeat(T);me>>0,re=new Uint8Array(U);b[T];){var oe=e[b.charCodeAt(T)];if(oe===255)return;for(var ge=0,be=U-1;(oe!==0||ge>>0,re[be]=oe%256>>>0,oe=oe/256>>>0;if(oe!==0)throw new Error("Non-zero carry");L=ge,T++}for(var ce=U-L;ce!==U&&re[ce]===0;)ce++;var me=ux.allocUnsafe(I+(U-ce));me.fill(0,0,I);for(var ne=I;ce!==U;)me[ne++]=re[ce++];return me}function p(b){var T=d(b);if(T)return T;throw new Error("Non-base"+s+" character")}return{encode:f,decodeUnsafe:d,decode:p}}tue.exports=rJe});var qN=x((cIt,rue)=>{var iJe=DN(),nJe="123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz";rue.exports=iJe(nJe)});var nue=x((dIt,iue)=>{"use strict";var LN=qN(),aJe=Zy().Buffer;iue.exports=function(t){function e(a){var s=t(a);return LN.encode(aJe.concat([a,s],a.length+4))}function r(a){var s=a.slice(0,-4),o=a.slice(-4),c=t(s);if(!(o[0]^c[0]|o[1]^c[1]|o[2]^c[2]|o[3]^c[3]))return s}function i(a){var s=LN.decodeUnsafe(a);if(!!s)return r(s)}function n(a){var s=LN.decode(a),o=r(s,t);if(!o)throw new Error("Invalid checksum");return o}return{encode:e,decode:n,decodeUnsafe:i}}});var m3=x((lIt,sue)=>{"use strict";var aue=h3(),sJe=nue();function oJe(t){var e=aue("sha256").update(t).digest();return aue("sha256").update(e).digest()}sue.exports=sJe(oJe)});var cx=x((fIt,oue)=>{"use strict";function UN(t){var e=new Error;this.name=e.name="ValidationError",this.message=e.message=t,this.stack=e.stack}UN.prototype=Object.create(Error.prototype);function uJe(t,e){if(!t)throw new UN(e)}oue.exports={ValidationError:UN,validate:uJe}});var due=x((pIt,cue)=>{"use strict";var dx=cx().validate,cJe="qpzry9x8gf2tvdw0s3jn54khce6mua7l",uue={q:0,p:1,z:2,r:3,y:4,9:5,x:6,8:7,g:8,f:9,2:10,t:11,v:12,d:13,w:14,0:15,s:16,3:17,j:18,n:19,5:20,4:21,k:22,h:23,c:24,e:25,6:26,m:27,u:28,a:29,7:30,l:31};function dJe(t){dx(t instanceof Uint8Array,"Invalid data: "+t+".");for(var e="",r=0;r{var Dn=function(t){"use strict";var e=1e7,r=7,i=9007199254740992,n=f(i),a=Math.log(i);function s(j,W){return typeof j>"u"?s[0]:typeof W<"u"?+W==10?Ae(j):Se(j,W):Ae(j)}function o(j,W){this.value=j,this.sign=W,this.isSmall=!1}o.prototype=Object.create(s.prototype);function c(j){this.value=j,this.sign=j<0,this.isSmall=!0}c.prototype=Object.create(s.prototype);function u(j){return-i0?Math.floor(j):Math.ceil(j)}function I(j,W){var C=j.length,D=W.length,G=new Array(C),X=0,le=e,ie,de;for(de=0;de=le?1:0,G[de]=ie-X*le;for(;de0&&G.push(X),G}function L(j,W){return j.length>=W.length?I(j,W):I(W,j)}function U(j,W){var C=j.length,D=new Array(C),G=e,X,le;for(le=0;le0;)D[le++]=W%G,W=Math.floor(W/G);return D}o.prototype.add=function(j){var W=Ae(j);if(this.sign!==W.sign)return this.subtract(W.negate());var C=this.value,D=W.value;return W.isSmall?new o(U(C,Math.abs(D)),this.sign):new o(L(C,D),this.sign)},o.prototype.plus=o.prototype.add,c.prototype.add=function(j){var W=Ae(j),C=this.value;if(C<0!==W.sign)return this.subtract(W.negate());var D=W.value;if(W.isSmall){if(u(C+D))return new c(C+D);D=f(Math.abs(D))}return new o(U(D,Math.abs(C)),C<0)},c.prototype.plus=c.prototype.add;function re(j,W){var C=j.length,D=W.length,G=new Array(C),X=0,le=e,ie,de;for(ie=0;ie=0?D=re(j,W):(D=re(W,j),C=!C),D=d(D),typeof D=="number"?(C&&(D=-D),new c(D)):new o(D,C)}function ge(j,W,C){var D=j.length,G=new Array(D),X=-W,le=e,ie,de;for(ie=0;ie=0)},c.prototype.minus=c.prototype.subtract,o.prototype.negate=function(){return new o(this.value,!this.sign)},c.prototype.negate=function(){var j=this.sign,W=new c(-this.value);return W.sign=!j,W},o.prototype.abs=function(){return new o(this.value,!1)},c.prototype.abs=function(){return new c(Math.abs(this.value))};function be(j,W){var C=j.length,D=W.length,G=C+D,X=b(G),le=e,ie,de,Be,Pe,De;for(Be=0;Be0;)D[ie++]=X%G,X=Math.floor(X/G);return D}function me(j,W){for(var C=[];W-- >0;)C.push(0);return C.concat(j)}function ne(j,W){var C=Math.max(j.length,W.length);if(C<=30)return be(j,W);C=Math.ceil(C/2);var D=j.slice(C),G=j.slice(0,C),X=W.slice(C),le=W.slice(0,C),ie=ne(G,le),de=ne(D,X),Be=ne(L(G,D),L(le,X)),Pe=L(L(ie,me(re(re(Be,ie),de),C)),me(de,2*C));return p(Pe),Pe}function ee(j,W){return-.012*j-.012*W+15e-6*j*W>0}o.prototype.multiply=function(j){var W=Ae(j),C=this.value,D=W.value,G=this.sign!==W.sign,X;if(W.isSmall){if(D===0)return s[0];if(D===1)return this;if(D===-1)return this.negate();if(X=Math.abs(D),X=0;De--){for(Pe=G-1,de[De+D]!==le&&(Pe=Math.floor((de[De+D]*G+de[De+D-1])/le)),et=0,Le=0,Mr=Be.length,Ve=0;VeD&&(Be=(Be+1)*le),ie=Math.ceil(Be/Pe);do{if(De=ce(W,ie),P(De,X)<=0)break;ie--}while(ie);G.push(ie),X=re(X,De)}return G.reverse(),[d(G),d(X)]}function y(j,W){var C=j.length,D=b(C),G=e,X,le,ie,de;for(ie=0,X=C-1;X>=0;--X)de=ie*G+j[X],le=T(de/W),ie=de-le*W,D[X]=le|0;return[D,ie|0]}function _(j,W){var C,D=Ae(W),G=j.value,X=D.value,le;if(X===0)throw new Error("Cannot divide by zero");if(j.isSmall)return D.isSmall?[new c(T(G/X)),new c(G%X)]:[s[0],j];if(D.isSmall){if(X===1)return[j,s[0]];if(X==-1)return[j.negate(),s[0]];var ie=Math.abs(X);if(ieW.length?1:-1;for(var C=j.length-1;C>=0;C--)if(j[C]!==W[C])return j[C]>W[C]?1:-1;return 0}o.prototype.compareAbs=function(j){var W=Ae(j),C=this.value,D=W.value;return W.isSmall?1:P(C,D)},c.prototype.compareAbs=function(j){var W=Ae(j),C=Math.abs(this.value),D=W.value;return W.isSmall?(D=Math.abs(D),C===D?0:C>D?1:-1):-1},o.prototype.compare=function(j){if(j===1/0)return-1;if(j===-1/0)return 1;var W=Ae(j),C=this.value,D=W.value;return this.sign!==W.sign?W.sign?1:-1:W.isSmall?this.sign?-1:1:P(C,D)*(this.sign?-1:1)},o.prototype.compareTo=o.prototype.compare,c.prototype.compare=function(j){if(j===1/0)return-1;if(j===-1/0)return 1;var W=Ae(j),C=this.value,D=W.value;return W.isSmall?C==D?0:C>D?1:-1:C<0!==W.sign?C<0?-1:1:C<0?1:-1},c.prototype.compareTo=c.prototype.compare,o.prototype.equals=function(j){return this.compare(j)===0},c.prototype.eq=c.prototype.equals=o.prototype.eq=o.prototype.equals,o.prototype.notEquals=function(j){return this.compare(j)!==0},c.prototype.neq=c.prototype.notEquals=o.prototype.neq=o.prototype.notEquals,o.prototype.greater=function(j){return this.compare(j)>0},c.prototype.gt=c.prototype.greater=o.prototype.gt=o.prototype.greater,o.prototype.lesser=function(j){return this.compare(j)<0},c.prototype.lt=c.prototype.lesser=o.prototype.lt=o.prototype.lesser,o.prototype.greaterOrEquals=function(j){return this.compare(j)>=0},c.prototype.geq=c.prototype.greaterOrEquals=o.prototype.geq=o.prototype.greaterOrEquals,o.prototype.lesserOrEquals=function(j){return this.compare(j)<=0},c.prototype.leq=c.prototype.lesserOrEquals=o.prototype.leq=o.prototype.lesserOrEquals,o.prototype.isEven=function(){return(this.value[0]&1)===0},c.prototype.isEven=function(){return(this.value&1)===0},o.prototype.isOdd=function(){return(this.value[0]&1)===1},c.prototype.isOdd=function(){return(this.value&1)===1},o.prototype.isPositive=function(){return!this.sign},c.prototype.isPositive=function(){return this.value>0},o.prototype.isNegative=function(){return this.sign},c.prototype.isNegative=function(){return this.value<0},o.prototype.isUnit=function(){return!1},c.prototype.isUnit=function(){return Math.abs(this.value)===1},o.prototype.isZero=function(){return!1},c.prototype.isZero=function(){return this.value===0},o.prototype.isDivisibleBy=function(j){var W=Ae(j),C=W.value;return C===0?!1:C===1?!0:C===2?this.isEven():this.mod(W).equals(s[0])},c.prototype.isDivisibleBy=o.prototype.isDivisibleBy;function M(j){var W=j.abs();if(W.isUnit())return!1;if(W.equals(2)||W.equals(3)||W.equals(5))return!0;if(W.isEven()||W.isDivisibleBy(3)||W.isDivisibleBy(5))return!1;if(W.lesser(49))return!0}function E(j,W){for(var C=j.prev(),D=C,G=0,X,le,ie,de;D.isEven();)D=D.divide(2),G++;e:for(ie=0;ie-i?new c(j-1):new o(n,!0)};for(var h=[1];2*h[h.length-1]<=e;)h.push(2*h[h.length-1]);var A=h.length,F=h[A-1];function O(j){return(typeof j=="number"||typeof j=="string")&&+Math.abs(j)<=e||j instanceof o&&j.value.length<=1}o.prototype.shiftLeft=function(j){if(!O(j))throw new Error(String(j)+" is too large for shifting.");if(j=+j,j<0)return this.shiftRight(-j);var W=this;if(W.isZero())return W;for(;j>=A;)W=W.multiply(F),j-=A-1;return W.multiply(h[j])},c.prototype.shiftLeft=o.prototype.shiftLeft,o.prototype.shiftRight=function(j){var W;if(!O(j))throw new Error(String(j)+" is too large for shifting.");if(j=+j,j<0)return this.shiftLeft(-j);for(var C=this;j>=A;){if(C.isZero()||C.isNegative()&&C.isUnit())return C;W=_(C,F),C=W[1].isNegative()?W[0].prev():W[0],j-=A-1}return W=_(C,h[j]),W[1].isNegative()?W[0].prev():W[0]},c.prototype.shiftRight=o.prototype.shiftRight;function N(j,W,C){W=Ae(W);for(var D=j.isNegative(),G=W.isNegative(),X=D?j.not():j,le=G?W.not():W,ie=0,de=0,Be=null,Pe=null,De=[];!X.isZero()||!le.isZero();)Be=_(X,F),ie=Be[1].toJSNumber(),D&&(ie=F-1-ie),Pe=_(le,F),de=Pe[1].toJSNumber(),G&&(de=F-1-de),X=Be[0],le=Pe[0],De.push(C(ie,de));for(var et=C(D?1:0,G?1:0)!==0?Dn(-1):Dn(0),Le=De.length-1;Le>=0;Le-=1)et=et.multiply(F).add(Dn(De[Le]));return et}o.prototype.not=function(){return this.negate().prev()},c.prototype.not=o.prototype.not,o.prototype.and=function(j){return N(this,j,function(W,C){return W&C})},c.prototype.and=o.prototype.and,o.prototype.or=function(j){return N(this,j,function(W,C){return W|C})},c.prototype.or=o.prototype.or,o.prototype.xor=function(j){return N(this,j,function(W,C){return W^C})},c.prototype.xor=o.prototype.xor;var xe=1<<30,q=(e&-e)*(e&-e)|xe;function fe(j){var W=j.value,C=typeof W=="number"?W|xe:W[0]+W[1]*e|q;return C&-C}function Te(j,W){if(W.compareTo(j)<=0){var C=Te(j,W.square(W)),D=C.p,G=C.e,X=D.multiply(W);return X.compareTo(j)<=0?{p:X,e:G*2+1}:{p:D,e:G*2}}return{p:Dn(1),e:0}}o.prototype.bitLength=function(){var j=this;return j.compareTo(Dn(0))<0&&(j=j.negate().subtract(Dn(1))),j.compareTo(Dn(0))===0?Dn(0):Dn(Te(j,Dn(2)).e).add(Dn(1))},c.prototype.bitLength=o.prototype.bitLength;function _e(j,W){return j=Ae(j),W=Ae(W),j.greater(W)?j:W}function H(j,W){return j=Ae(j),W=Ae(W),j.lesser(W)?j:W}function Y(j,W){if(j=Ae(j).abs(),W=Ae(W).abs(),j.equals(W))return j;if(j.isZero())return W;if(W.isZero())return j;for(var C=s[1],D,G;j.isEven()&&W.isEven();)D=Math.min(fe(j),fe(W)),j=j.divide(D),W=W.divide(D),C=C.multiply(D);for(;j.isEven();)j=j.divide(fe(j));do{for(;W.isEven();)W=W.divide(fe(W));j.greater(W)&&(G=W,W=j,j=G),W=W.subtract(j)}while(!W.isZero());return C.isUnit()?j:j.multiply(C)}function Q(j,W){return j=Ae(j).abs(),W=Ae(W).abs(),j.divide(Y(j,W)).multiply(W)}function se(j,W){j=Ae(j),W=Ae(W);var C=H(j,W),D=_e(j,W),G=D.subtract(C).add(1);if(G.isSmall)return C.add(Math.floor(Math.random()*G));for(var X=G.value.length-1,le=[],ie=!0,de=X;de>=0;de--){var Be=ie?G.value[de]:e,Pe=T(Math.random()*Be);le.unshift(Pe),Pe=G){if(X==="1"&&G===1)continue;throw new Error(X+" is not a valid digit in base "+W+".")}else if(X.charCodeAt(0)-87>=G)throw new Error(X+" is not a valid digit in base "+W+".")}}if(2<=W&&W<=36&&C<=a/Math.log(W)){var le=parseInt(j,W);if(isNaN(le))throw new Error(X+" is not a valid digit in base "+W+".");return new c(parseInt(j,W))}W=Ae(W);var ie=[],de=j[0]==="-";for(D=de?1:0;D");ie.push(Ae(j.slice(Pe+1,D)))}else throw new Error(X+" is not a valid character")}return ue(ie,W,de)};function ue(j,W,C){var D=s[0],G=s[1],X;for(X=j.length-1;X>=0;X--)D=D.add(j[X].times(G)),G=G.times(W);return C?D.negate():D}function he(j){return j<=35?"0123456789abcdefghijklmnopqrstuvwxyz".charAt(j):"<"+j+">"}function Oe(j,W){if(W=Dn(W),W.isZero()){if(j.isZero())return{value:[0],isNegative:!1};throw new Error("Cannot convert nonzero numbers to base 0.")}if(W.equals(-1)){if(j.isZero())return{value:[0],isNegative:!1};if(j.isNegative())return{value:[].concat.apply([],Array.apply(null,Array(-j)).map(Array.prototype.valueOf,[1,0])),isNegative:!1};var C=Array.apply(null,Array(+j-1)).map(Array.prototype.valueOf,[0,1]);return C.unshift([1]),{value:[].concat.apply([],C),isNegative:!1}}var D=!1;if(j.isNegative()&&W.isPositive()&&(D=!0,j=j.abs()),W.equals(1))return j.isZero()?{value:[0],isNegative:!1}:{value:Array.apply(null,Array(+j)).map(Number.prototype.valueOf,1),isNegative:D};for(var G=[],X=j,le;X.isNegative()||X.compareAbs(W)>=0;){le=X.divmod(W),X=le.quotient;var ie=le.remainder;ie.isNegative()&&(ie=W.minus(ie).abs(),X=X.next()),G.push(ie.toJSNumber())}return G.push(X.toJSNumber()),{value:G.reverse(),isNegative:D}}function ye(j,W){var C=Oe(j,W);return(C.isNegative?"-":"")+C.value.map(he).join("")}o.prototype.toArray=function(j){return Oe(this,j)},c.prototype.toArray=function(j){return Oe(this,j)},o.prototype.toString=function(j){if(j===t&&(j=10),j!==10)return ye(this,j);for(var W=this.value,C=W.length,D=String(W[--C]),G="0000000",X;--C>=0;)X=String(W[C]),D+=G.slice(X.length)+X;var le=this.sign?"-":"";return le+D},c.prototype.toString=function(j){return j===t&&(j=10),j!=10?ye(this,j):String(this.value)},o.prototype.toJSON=c.prototype.toJSON=function(){return this.toString()},o.prototype.valueOf=function(){return parseInt(this.toString(),10)},o.prototype.toJSNumber=o.prototype.valueOf,c.prototype.valueOf=function(){return this.value},c.prototype.toJSNumber=c.prototype.valueOf;function we(j){if(u(+j)){var W=+j;if(W===T(W))return new c(W);throw new Error("Invalid integer: "+j)}var C=j[0]==="-";C&&(j=j.slice(1));var D=j.split(/e/i);if(D.length>2)throw new Error("Invalid integer: "+D.join("e"));if(D.length===2){var G=D[1];if(G[0]==="+"&&(G=G.slice(1)),G=+G,G!==T(G)||!u(G))throw new Error("Invalid integer: "+G+" is not a valid exponent.");var X=D[0],le=X.indexOf(".");if(le>=0&&(G-=X.length-le-1,X=X.slice(0,le)+X.slice(le+1)),G<0)throw new Error("Cannot include negative exponent part for integers");X+=new Array(G+1).join("0"),j=X}var ie=/^([0-9][0-9]*)$/.test(j);if(!ie)throw new Error("Invalid integer: "+j);for(var de=[],Be=j.length,Pe=r,De=Be-Pe;Be>0;)de.push(+j.slice(De,Be)),De-=Pe,De<0&&(De=0),Be-=Pe;return p(de),new o(de,C)}function Ne(j){if(u(j)){if(j!==T(j))throw new Error(j+" is not an integer.");return new c(j)}return we(j.toString())}function Ae(j){return typeof j=="number"?Ne(j):typeof j=="string"?we(j):j}for(var je=0;je<1e3;je++)s[je]=new c(je),je>0&&(s[-je]=new c(-je));return s.one=s[1],s.zero=s[0],s.minusOne=s[-1],s.max=_e,s.min=H,s.gcd=Y,s.lcm=Q,s.isInstance=function(j){return j instanceof o||j instanceof c},s.randBetween=se,s.fromArray=function(j,W,C){return ue(j.map(Ae),Ae(W||10),C)},s}();typeof lx<"u"&&lx.hasOwnProperty("exports")&&(lx.exports=Dn);typeof define=="function"&&define.amd&&define("big-integer",[],function(){return Dn})});var hue=x((mIt,pue)=>{"use strict";var fue=cx().validate;pue.exports=function(t,e,r,i){for(var n=i?Math.floor(t.length*e/r):Math.ceil(t.length*e/r),a=(1<>e===0,"Invalid value: "+d+"."),c=c<=r;)u-=r,s[o]=c>>u&a,++o}return i?fue(u0&&(s[o]=c<{"use strict";var mue=due(),fJe=lue(),gue=hue(),yue=cx(),Fm=yue.validate;function pJe(t,e,r){Fm(typeof t=="string"&&gJe(t),"Invalid prefix: "+t+"."),Fm(typeof e=="string","Invalid type: "+e+"."),Fm(r instanceof Uint8Array,"Invalid hash: "+r+".");var i=Bm(vue(t),new Uint8Array(1)),n=vJe(e)+_Je(r),a=xJe(Bm(new Uint8Array([n]),r)),s=Bm(Bm(i,a),new Uint8Array(8)),o=Bm(a,yJe(bue(s)));return t+":"+mue.encode(o)}function hJe(t){Fm(typeof t=="string"&&_ue(t),"Invalid address: "+t+".");var e=t.toLowerCase().split(":");Fm(e.length===2,"Missing prefix: "+t+".");var r=e[0],i=mue.decode(e[1]);Fm(EJe(r,i),"Invalid checksum: "+t+".");var n=SJe(i.subarray(0,-8)),a=n[0],s=n.subarray(1);Fm(wJe(a)===s.length*8,"Invalid hash size: "+t+".");var o=bJe(a);return{prefix:r,type:o,hash:s}}var fx=yue.ValidationError,mJe=["bitcoincash","bchtest","bchreg"];function gJe(t){return _ue(t)&&mJe.indexOf(t.toLowerCase())!==-1}function vue(t){for(var e=new Uint8Array(t.length),r=0;r{"use strict";px.byteLength=AJe;px.toByteArray=OJe;px.fromByteArray=CJe;var sl=[],qu=[],TJe=typeof Uint8Array<"u"?Uint8Array:Array,jN="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";for(Dm=0,Sue=jN.length;Dm0)throw new Error("Invalid string. Length must be a multiple of 4");var r=t.indexOf("=");r===-1&&(r=e);var i=r===e?0:4-r%4;return[r,i]}function AJe(t){var e=Eue(t),r=e[0],i=e[1];return(r+i)*3/4-i}function PJe(t,e,r){return(e+r)*3/4-r}function OJe(t){var e,r=Eue(t),i=r[0],n=r[1],a=new TJe(PJe(t,i,n)),s=0,o=n>0?i-4:i,c;for(c=0;c>16&255,a[s++]=e>>8&255,a[s++]=e&255;return n===2&&(e=qu[t.charCodeAt(c)]<<2|qu[t.charCodeAt(c+1)]>>4,a[s++]=e&255),n===1&&(e=qu[t.charCodeAt(c)]<<10|qu[t.charCodeAt(c+1)]<<4|qu[t.charCodeAt(c+2)]>>2,a[s++]=e>>8&255,a[s++]=e&255),a}function RJe(t){return sl[t>>18&63]+sl[t>>12&63]+sl[t>>6&63]+sl[t&63]}function MJe(t,e,r){for(var i,n=[],a=e;ao?o:s+a));return i===1?(e=t[r-1],n.push(sl[e>>2]+sl[e<<4&63]+"==")):i===2&&(e=(t[r-2]<<8)+t[r-1],n.push(sl[e>>10]+sl[e>>4&63]+sl[e<<2&63]+"=")),n.join("")}});var zN=x(HN=>{HN.read=function(t,e,r,i,n){var a,s,o=n*8-i-1,c=(1<>1,f=-7,d=r?n-1:0,p=r?-1:1,b=t[e+d];for(d+=p,a=b&(1<<-f)-1,b>>=-f,f+=o;f>0;a=a*256+t[e+d],d+=p,f-=8);for(s=a&(1<<-f)-1,a>>=-f,f+=i;f>0;s=s*256+t[e+d],d+=p,f-=8);if(a===0)a=1-u;else{if(a===c)return s?NaN:(b?-1:1)*(1/0);s=s+Math.pow(2,i),a=a-u}return(b?-1:1)*s*Math.pow(2,a-i)};HN.write=function(t,e,r,i,n,a){var s,o,c,u=a*8-n-1,f=(1<>1,p=n===23?Math.pow(2,-24)-Math.pow(2,-77):0,b=i?0:a-1,T=i?1:-1,I=e<0||e===0&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(o=isNaN(e)?1:0,s=f):(s=Math.floor(Math.log(e)/Math.LN2),e*(c=Math.pow(2,-s))<1&&(s--,c*=2),s+d>=1?e+=p/c:e+=p*Math.pow(2,1-d),e*c>=2&&(s++,c/=2),s+d>=f?(o=0,s=f):s+d>=1?(o=(e*c-1)*Math.pow(2,n),s=s+d):(o=e*Math.pow(2,d-1)*Math.pow(2,n),s=0));n>=8;t[r+b]=o&255,b+=T,o/=256,n-=8);for(s=s<0;t[r+b]=s&255,b+=T,s/=256,u-=8);t[r+b-T]|=I*128}});var jue=x(ev=>{"use strict";var GN=VN(),Qy=zN(),Tue=typeof Symbol=="function"&&typeof Symbol.for=="function"?Symbol.for("nodejs.util.inspect.custom"):null;ev.Buffer=Ge;ev.SlowBuffer=DJe;ev.INSPECT_MAX_BYTES=50;var hx=2147483647;ev.kMaxLength=hx;Ge.TYPED_ARRAY_SUPPORT=IJe();!Ge.TYPED_ARRAY_SUPPORT&&typeof console<"u"&&typeof console.error=="function"&&console.error("This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support.");function IJe(){try{let t=new Uint8Array(1),e={foo:function(){return 42}};return Object.setPrototypeOf(e,Uint8Array.prototype),Object.setPrototypeOf(t,e),t.foo()===42}catch{return!1}}Object.defineProperty(Ge.prototype,"parent",{enumerable:!0,get:function(){if(!!Ge.isBuffer(this))return this.buffer}});Object.defineProperty(Ge.prototype,"offset",{enumerable:!0,get:function(){if(!!Ge.isBuffer(this))return this.byteOffset}});function jf(t){if(t>hx)throw new RangeError('The value "'+t+'" is invalid for option "size"');let e=new Uint8Array(t);return Object.setPrototypeOf(e,Ge.prototype),e}function Ge(t,e,r){if(typeof t=="number"){if(typeof e=="string")throw new TypeError('The "string" argument must be of type string. Received type number');return WN(t)}return Rue(t,e,r)}Ge.poolSize=8192;function Rue(t,e,r){if(typeof t=="string")return kJe(t,e);if(ArrayBuffer.isView(t))return BJe(t);if(t==null)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof t);if(ol(t,ArrayBuffer)||t&&ol(t.buffer,ArrayBuffer)||typeof SharedArrayBuffer<"u"&&(ol(t,SharedArrayBuffer)||t&&ol(t.buffer,SharedArrayBuffer)))return XN(t,e,r);if(typeof t=="number")throw new TypeError('The "value" argument must not be of type number. Received type number');let i=t.valueOf&&t.valueOf();if(i!=null&&i!==t)return Ge.from(i,e,r);let n=FJe(t);if(n)return n;if(typeof Symbol<"u"&&Symbol.toPrimitive!=null&&typeof t[Symbol.toPrimitive]=="function")return Ge.from(t[Symbol.toPrimitive]("string"),e,r);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof t)}Ge.from=function(t,e,r){return Rue(t,e,r)};Object.setPrototypeOf(Ge.prototype,Uint8Array.prototype);Object.setPrototypeOf(Ge,Uint8Array);function Mue(t){if(typeof t!="number")throw new TypeError('"size" argument must be of type number');if(t<0)throw new RangeError('The value "'+t+'" is invalid for option "size"')}function NJe(t,e,r){return Mue(t),t<=0?jf(t):e!==void 0?typeof r=="string"?jf(t).fill(e,r):jf(t).fill(e):jf(t)}Ge.alloc=function(t,e,r){return NJe(t,e,r)};function WN(t){return Mue(t),jf(t<0?0:ZN(t)|0)}Ge.allocUnsafe=function(t){return WN(t)};Ge.allocUnsafeSlow=function(t){return WN(t)};function kJe(t,e){if((typeof e!="string"||e==="")&&(e="utf8"),!Ge.isEncoding(e))throw new TypeError("Unknown encoding: "+e);let r=Cue(t,e)|0,i=jf(r),n=i.write(t,e);return n!==r&&(i=i.slice(0,n)),i}function JN(t){let e=t.length<0?0:ZN(t.length)|0,r=jf(e);for(let i=0;i=hx)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+hx.toString(16)+" bytes");return t|0}function DJe(t){return+t!=t&&(t=0),Ge.alloc(+t)}Ge.isBuffer=function(e){return e!=null&&e._isBuffer===!0&&e!==Ge.prototype};Ge.compare=function(e,r){if(ol(e,Uint8Array)&&(e=Ge.from(e,e.offset,e.byteLength)),ol(r,Uint8Array)&&(r=Ge.from(r,r.offset,r.byteLength)),!Ge.isBuffer(e)||!Ge.isBuffer(r))throw new TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array');if(e===r)return 0;let i=e.length,n=r.length;for(let a=0,s=Math.min(i,n);an.length?(Ge.isBuffer(s)||(s=Ge.from(s)),s.copy(n,a)):Uint8Array.prototype.set.call(n,s,a);else if(Ge.isBuffer(s))s.copy(n,a);else throw new TypeError('"list" argument must be an Array of Buffers');a+=s.length}return n};function Cue(t,e){if(Ge.isBuffer(t))return t.length;if(ArrayBuffer.isView(t)||ol(t,ArrayBuffer))return t.byteLength;if(typeof t!="string")throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof t);let r=t.length,i=arguments.length>2&&arguments[2]===!0;if(!i&&r===0)return 0;let n=!1;for(;;)switch(e){case"ascii":case"latin1":case"binary":return r;case"utf8":case"utf-8":return KN(t).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return r*2;case"hex":return r>>>1;case"base64":return Uue(t).length;default:if(n)return i?-1:KN(t).length;e=(""+e).toLowerCase(),n=!0}}Ge.byteLength=Cue;function qJe(t,e,r){let i=!1;if((e===void 0||e<0)&&(e=0),e>this.length||((r===void 0||r>this.length)&&(r=this.length),r<=0)||(r>>>=0,e>>>=0,r<=e))return"";for(t||(t="utf8");;)switch(t){case"hex":return KJe(this,e,r);case"utf8":case"utf-8":return Nue(this,e,r);case"ascii":return JJe(this,e,r);case"latin1":case"binary":return XJe(this,e,r);case"base64":return zJe(this,e,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return WJe(this,e,r);default:if(i)throw new TypeError("Unknown encoding: "+t);t=(t+"").toLowerCase(),i=!0}}Ge.prototype._isBuffer=!0;function qm(t,e,r){let i=t[e];t[e]=t[r],t[r]=i}Ge.prototype.swap16=function(){let e=this.length;if(e%2!==0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(let r=0;rr&&(e+=" ... "),""};Tue&&(Ge.prototype[Tue]=Ge.prototype.inspect);Ge.prototype.compare=function(e,r,i,n,a){if(ol(e,Uint8Array)&&(e=Ge.from(e,e.offset,e.byteLength)),!Ge.isBuffer(e))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof e);if(r===void 0&&(r=0),i===void 0&&(i=e?e.length:0),n===void 0&&(n=0),a===void 0&&(a=this.length),r<0||i>e.length||n<0||a>this.length)throw new RangeError("out of range index");if(n>=a&&r>=i)return 0;if(n>=a)return-1;if(r>=i)return 1;if(r>>>=0,i>>>=0,n>>>=0,a>>>=0,this===e)return 0;let s=a-n,o=i-r,c=Math.min(s,o),u=this.slice(n,a),f=e.slice(r,i);for(let d=0;d2147483647?r=2147483647:r<-2147483648&&(r=-2147483648),r=+r,QN(r)&&(r=n?0:t.length-1),r<0&&(r=t.length+r),r>=t.length){if(n)return-1;r=t.length-1}else if(r<0)if(n)r=0;else return-1;if(typeof e=="string"&&(e=Ge.from(e,i)),Ge.isBuffer(e))return e.length===0?-1:Aue(t,e,r,i,n);if(typeof e=="number")return e=e&255,typeof Uint8Array.prototype.indexOf=="function"?n?Uint8Array.prototype.indexOf.call(t,e,r):Uint8Array.prototype.lastIndexOf.call(t,e,r):Aue(t,[e],r,i,n);throw new TypeError("val must be string, number or Buffer")}function Aue(t,e,r,i,n){let a=1,s=t.length,o=e.length;if(i!==void 0&&(i=String(i).toLowerCase(),i==="ucs2"||i==="ucs-2"||i==="utf16le"||i==="utf-16le")){if(t.length<2||e.length<2)return-1;a=2,s/=2,o/=2,r/=2}function c(f,d){return a===1?f[d]:f.readUInt16BE(d*a)}let u;if(n){let f=-1;for(u=r;us&&(r=s-o),u=r;u>=0;u--){let f=!0;for(let d=0;dn&&(i=n)):i=n;let a=e.length;i>a/2&&(i=a/2);let s;for(s=0;s>>0,isFinite(i)?(i=i>>>0,n===void 0&&(n="utf8")):(n=i,i=void 0);else throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");let a=this.length-r;if((i===void 0||i>a)&&(i=a),e.length>0&&(i<0||r<0)||r>this.length)throw new RangeError("Attempt to write outside buffer bounds");n||(n="utf8");let s=!1;for(;;)switch(n){case"hex":return LJe(this,e,r,i);case"utf8":case"utf-8":return UJe(this,e,r,i);case"ascii":case"latin1":case"binary":return jJe(this,e,r,i);case"base64":return VJe(this,e,r,i);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return HJe(this,e,r,i);default:if(s)throw new TypeError("Unknown encoding: "+n);n=(""+n).toLowerCase(),s=!0}};Ge.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function zJe(t,e,r){return e===0&&r===t.length?GN.fromByteArray(t):GN.fromByteArray(t.slice(e,r))}function Nue(t,e,r){r=Math.min(t.length,r);let i=[],n=e;for(;n239?4:a>223?3:a>191?2:1;if(n+o<=r){let c,u,f,d;switch(o){case 1:a<128&&(s=a);break;case 2:c=t[n+1],(c&192)===128&&(d=(a&31)<<6|c&63,d>127&&(s=d));break;case 3:c=t[n+1],u=t[n+2],(c&192)===128&&(u&192)===128&&(d=(a&15)<<12|(c&63)<<6|u&63,d>2047&&(d<55296||d>57343)&&(s=d));break;case 4:c=t[n+1],u=t[n+2],f=t[n+3],(c&192)===128&&(u&192)===128&&(f&192)===128&&(d=(a&15)<<18|(c&63)<<12|(u&63)<<6|f&63,d>65535&&d<1114112&&(s=d))}}s===null?(s=65533,o=1):s>65535&&(s-=65536,i.push(s>>>10&1023|55296),s=56320|s&1023),i.push(s),n+=o}return GJe(i)}var Pue=4096;function GJe(t){let e=t.length;if(e<=Pue)return String.fromCharCode.apply(String,t);let r="",i=0;for(;ii)&&(r=i);let n="";for(let a=e;ai&&(e=i),r<0?(r+=i,r<0&&(r=0)):r>i&&(r=i),rr)throw new RangeError("Trying to access beyond buffer length")}Ge.prototype.readUintLE=Ge.prototype.readUIntLE=function(e,r,i){e=e>>>0,r=r>>>0,i||ya(e,r,this.length);let n=this[e],a=1,s=0;for(;++s>>0,r=r>>>0,i||ya(e,r,this.length);let n=this[e+--r],a=1;for(;r>0&&(a*=256);)n+=this[e+--r]*a;return n};Ge.prototype.readUint8=Ge.prototype.readUInt8=function(e,r){return e=e>>>0,r||ya(e,1,this.length),this[e]};Ge.prototype.readUint16LE=Ge.prototype.readUInt16LE=function(e,r){return e=e>>>0,r||ya(e,2,this.length),this[e]|this[e+1]<<8};Ge.prototype.readUint16BE=Ge.prototype.readUInt16BE=function(e,r){return e=e>>>0,r||ya(e,2,this.length),this[e]<<8|this[e+1]};Ge.prototype.readUint32LE=Ge.prototype.readUInt32LE=function(e,r){return e=e>>>0,r||ya(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+this[e+3]*16777216};Ge.prototype.readUint32BE=Ge.prototype.readUInt32BE=function(e,r){return e=e>>>0,r||ya(e,4,this.length),this[e]*16777216+(this[e+1]<<16|this[e+2]<<8|this[e+3])};Ge.prototype.readBigUInt64LE=ph(function(e){e=e>>>0,Yy(e,"offset");let r=this[e],i=this[e+7];(r===void 0||i===void 0)&&g3(e,this.length-8);let n=r+this[++e]*2**8+this[++e]*2**16+this[++e]*2**24,a=this[++e]+this[++e]*2**8+this[++e]*2**16+i*2**24;return BigInt(n)+(BigInt(a)<>>0,Yy(e,"offset");let r=this[e],i=this[e+7];(r===void 0||i===void 0)&&g3(e,this.length-8);let n=r*2**24+this[++e]*2**16+this[++e]*2**8+this[++e],a=this[++e]*2**24+this[++e]*2**16+this[++e]*2**8+i;return(BigInt(n)<>>0,r=r>>>0,i||ya(e,r,this.length);let n=this[e],a=1,s=0;for(;++s=a&&(n-=Math.pow(2,8*r)),n};Ge.prototype.readIntBE=function(e,r,i){e=e>>>0,r=r>>>0,i||ya(e,r,this.length);let n=r,a=1,s=this[e+--n];for(;n>0&&(a*=256);)s+=this[e+--n]*a;return a*=128,s>=a&&(s-=Math.pow(2,8*r)),s};Ge.prototype.readInt8=function(e,r){return e=e>>>0,r||ya(e,1,this.length),this[e]&128?(255-this[e]+1)*-1:this[e]};Ge.prototype.readInt16LE=function(e,r){e=e>>>0,r||ya(e,2,this.length);let i=this[e]|this[e+1]<<8;return i&32768?i|4294901760:i};Ge.prototype.readInt16BE=function(e,r){e=e>>>0,r||ya(e,2,this.length);let i=this[e+1]|this[e]<<8;return i&32768?i|4294901760:i};Ge.prototype.readInt32LE=function(e,r){return e=e>>>0,r||ya(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24};Ge.prototype.readInt32BE=function(e,r){return e=e>>>0,r||ya(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]};Ge.prototype.readBigInt64LE=ph(function(e){e=e>>>0,Yy(e,"offset");let r=this[e],i=this[e+7];(r===void 0||i===void 0)&&g3(e,this.length-8);let n=this[e+4]+this[e+5]*2**8+this[e+6]*2**16+(i<<24);return(BigInt(n)<>>0,Yy(e,"offset");let r=this[e],i=this[e+7];(r===void 0||i===void 0)&&g3(e,this.length-8);let n=(r<<24)+this[++e]*2**16+this[++e]*2**8+this[++e];return(BigInt(n)<>>0,r||ya(e,4,this.length),Qy.read(this,e,!0,23,4)};Ge.prototype.readFloatBE=function(e,r){return e=e>>>0,r||ya(e,4,this.length),Qy.read(this,e,!1,23,4)};Ge.prototype.readDoubleLE=function(e,r){return e=e>>>0,r||ya(e,8,this.length),Qy.read(this,e,!0,52,8)};Ge.prototype.readDoubleBE=function(e,r){return e=e>>>0,r||ya(e,8,this.length),Qy.read(this,e,!1,52,8)};function ro(t,e,r,i,n,a){if(!Ge.isBuffer(t))throw new TypeError('"buffer" argument must be a Buffer instance');if(e>n||et.length)throw new RangeError("Index out of range")}Ge.prototype.writeUintLE=Ge.prototype.writeUIntLE=function(e,r,i,n){if(e=+e,r=r>>>0,i=i>>>0,!n){let o=Math.pow(2,8*i)-1;ro(this,e,r,i,o,0)}let a=1,s=0;for(this[r]=e&255;++s>>0,i=i>>>0,!n){let o=Math.pow(2,8*i)-1;ro(this,e,r,i,o,0)}let a=i-1,s=1;for(this[r+a]=e&255;--a>=0&&(s*=256);)this[r+a]=e/s&255;return r+i};Ge.prototype.writeUint8=Ge.prototype.writeUInt8=function(e,r,i){return e=+e,r=r>>>0,i||ro(this,e,r,1,255,0),this[r]=e&255,r+1};Ge.prototype.writeUint16LE=Ge.prototype.writeUInt16LE=function(e,r,i){return e=+e,r=r>>>0,i||ro(this,e,r,2,65535,0),this[r]=e&255,this[r+1]=e>>>8,r+2};Ge.prototype.writeUint16BE=Ge.prototype.writeUInt16BE=function(e,r,i){return e=+e,r=r>>>0,i||ro(this,e,r,2,65535,0),this[r]=e>>>8,this[r+1]=e&255,r+2};Ge.prototype.writeUint32LE=Ge.prototype.writeUInt32LE=function(e,r,i){return e=+e,r=r>>>0,i||ro(this,e,r,4,4294967295,0),this[r+3]=e>>>24,this[r+2]=e>>>16,this[r+1]=e>>>8,this[r]=e&255,r+4};Ge.prototype.writeUint32BE=Ge.prototype.writeUInt32BE=function(e,r,i){return e=+e,r=r>>>0,i||ro(this,e,r,4,4294967295,0),this[r]=e>>>24,this[r+1]=e>>>16,this[r+2]=e>>>8,this[r+3]=e&255,r+4};function kue(t,e,r,i,n){Lue(e,i,n,t,r,7);let a=Number(e&BigInt(4294967295));t[r++]=a,a=a>>8,t[r++]=a,a=a>>8,t[r++]=a,a=a>>8,t[r++]=a;let s=Number(e>>BigInt(32)&BigInt(4294967295));return t[r++]=s,s=s>>8,t[r++]=s,s=s>>8,t[r++]=s,s=s>>8,t[r++]=s,r}function Bue(t,e,r,i,n){Lue(e,i,n,t,r,7);let a=Number(e&BigInt(4294967295));t[r+7]=a,a=a>>8,t[r+6]=a,a=a>>8,t[r+5]=a,a=a>>8,t[r+4]=a;let s=Number(e>>BigInt(32)&BigInt(4294967295));return t[r+3]=s,s=s>>8,t[r+2]=s,s=s>>8,t[r+1]=s,s=s>>8,t[r]=s,r+8}Ge.prototype.writeBigUInt64LE=ph(function(e,r=0){return kue(this,e,r,BigInt(0),BigInt("0xffffffffffffffff"))});Ge.prototype.writeBigUInt64BE=ph(function(e,r=0){return Bue(this,e,r,BigInt(0),BigInt("0xffffffffffffffff"))});Ge.prototype.writeIntLE=function(e,r,i,n){if(e=+e,r=r>>>0,!n){let c=Math.pow(2,8*i-1);ro(this,e,r,i,c-1,-c)}let a=0,s=1,o=0;for(this[r]=e&255;++a>0)-o&255;return r+i};Ge.prototype.writeIntBE=function(e,r,i,n){if(e=+e,r=r>>>0,!n){let c=Math.pow(2,8*i-1);ro(this,e,r,i,c-1,-c)}let a=i-1,s=1,o=0;for(this[r+a]=e&255;--a>=0&&(s*=256);)e<0&&o===0&&this[r+a+1]!==0&&(o=1),this[r+a]=(e/s>>0)-o&255;return r+i};Ge.prototype.writeInt8=function(e,r,i){return e=+e,r=r>>>0,i||ro(this,e,r,1,127,-128),e<0&&(e=255+e+1),this[r]=e&255,r+1};Ge.prototype.writeInt16LE=function(e,r,i){return e=+e,r=r>>>0,i||ro(this,e,r,2,32767,-32768),this[r]=e&255,this[r+1]=e>>>8,r+2};Ge.prototype.writeInt16BE=function(e,r,i){return e=+e,r=r>>>0,i||ro(this,e,r,2,32767,-32768),this[r]=e>>>8,this[r+1]=e&255,r+2};Ge.prototype.writeInt32LE=function(e,r,i){return e=+e,r=r>>>0,i||ro(this,e,r,4,2147483647,-2147483648),this[r]=e&255,this[r+1]=e>>>8,this[r+2]=e>>>16,this[r+3]=e>>>24,r+4};Ge.prototype.writeInt32BE=function(e,r,i){return e=+e,r=r>>>0,i||ro(this,e,r,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),this[r]=e>>>24,this[r+1]=e>>>16,this[r+2]=e>>>8,this[r+3]=e&255,r+4};Ge.prototype.writeBigInt64LE=ph(function(e,r=0){return kue(this,e,r,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))});Ge.prototype.writeBigInt64BE=ph(function(e,r=0){return Bue(this,e,r,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))});function Fue(t,e,r,i,n,a){if(r+i>t.length)throw new RangeError("Index out of range");if(r<0)throw new RangeError("Index out of range")}function Due(t,e,r,i,n){return e=+e,r=r>>>0,n||Fue(t,e,r,4,34028234663852886e22,-34028234663852886e22),Qy.write(t,e,r,i,23,4),r+4}Ge.prototype.writeFloatLE=function(e,r,i){return Due(this,e,r,!0,i)};Ge.prototype.writeFloatBE=function(e,r,i){return Due(this,e,r,!1,i)};function que(t,e,r,i,n){return e=+e,r=r>>>0,n||Fue(t,e,r,8,17976931348623157e292,-17976931348623157e292),Qy.write(t,e,r,i,52,8),r+8}Ge.prototype.writeDoubleLE=function(e,r,i){return que(this,e,r,!0,i)};Ge.prototype.writeDoubleBE=function(e,r,i){return que(this,e,r,!1,i)};Ge.prototype.copy=function(e,r,i,n){if(!Ge.isBuffer(e))throw new TypeError("argument should be a Buffer");if(i||(i=0),!n&&n!==0&&(n=this.length),r>=e.length&&(r=e.length),r||(r=0),n>0&&n=this.length)throw new RangeError("Index out of range");if(n<0)throw new RangeError("sourceEnd out of bounds");n>this.length&&(n=this.length),e.length-r>>0,i=i===void 0?this.length:i>>>0,e||(e=0);let a;if(typeof e=="number")for(a=r;a2**32?n=Oue(String(r)):typeof r=="bigint"&&(n=String(r),(r>BigInt(2)**BigInt(32)||r<-(BigInt(2)**BigInt(32)))&&(n=Oue(n)),n+="n"),i+=` It must be ${e}. Received ${n}`,i},RangeError);function Oue(t){let e="",r=t.length,i=t[0]==="-"?1:0;for(;r>=i+4;r-=3)e=`_${t.slice(r-3,r)}${e}`;return`${t.slice(0,r)}${e}`}function ZJe(t,e,r){Yy(e,"offset"),(t[e]===void 0||t[e+r]===void 0)&&g3(e,t.length-(r+1))}function Lue(t,e,r,i,n,a){if(t>r||t3?e===0||e===BigInt(0)?o=`>= 0${s} and < 2${s} ** ${(a+1)*8}${s}`:o=`>= -(2${s} ** ${(a+1)*8-1}${s}) and < 2 ** ${(a+1)*8-1}${s}`:o=`>= ${e}${s} and <= ${r}${s}`,new $y.ERR_OUT_OF_RANGE("value",o,t)}ZJe(i,n,a)}function Yy(t,e){if(typeof t!="number")throw new $y.ERR_INVALID_ARG_TYPE(e,"number",t)}function g3(t,e,r){throw Math.floor(t)!==t?(Yy(t,r),new $y.ERR_OUT_OF_RANGE(r||"offset","an integer",t)):e<0?new $y.ERR_BUFFER_OUT_OF_BOUNDS:new $y.ERR_OUT_OF_RANGE(r||"offset",`>= ${r?1:0} and <= ${e}`,t)}var $Je=/[^+/0-9A-Za-z-_]/g;function QJe(t){if(t=t.split("=")[0],t=t.trim().replace($Je,""),t.length<2)return"";for(;t.length%4!==0;)t=t+"=";return t}function KN(t,e){e=e||1/0;let r,i=t.length,n=null,a=[];for(let s=0;s55295&&r<57344){if(!n){if(r>56319){(e-=3)>-1&&a.push(239,191,189);continue}else if(s+1===i){(e-=3)>-1&&a.push(239,191,189);continue}n=r;continue}if(r<56320){(e-=3)>-1&&a.push(239,191,189),n=r;continue}r=(n-55296<<10|r-56320)+65536}else n&&(e-=3)>-1&&a.push(239,191,189);if(n=null,r<128){if((e-=1)<0)break;a.push(r)}else if(r<2048){if((e-=2)<0)break;a.push(r>>6|192,r&63|128)}else if(r<65536){if((e-=3)<0)break;a.push(r>>12|224,r>>6&63|128,r&63|128)}else if(r<1114112){if((e-=4)<0)break;a.push(r>>18|240,r>>12&63|128,r>>6&63|128,r&63|128)}else throw new Error("Invalid code point")}return a}function YJe(t){let e=[];for(let r=0;r>8,n=r%256,a.push(n),a.push(i);return a}function Uue(t){return GN.toByteArray(QJe(t))}function mx(t,e,r,i){let n;for(n=0;n=e.length||n>=t.length);++n)e[n+r]=t[n];return n}function ol(t,e){return t instanceof e||t!=null&&t.constructor!=null&&t.constructor.name!=null&&t.constructor.name===e.name}function QN(t){return t!==t}var tXe=function(){let t="0123456789abcdef",e=new Array(256);for(let r=0;r<16;++r){let i=r*16;for(let n=0;n<16;++n)e[i+n]=t[r]+t[n]}return e}();function ph(t){return typeof BigInt>"u"?rXe:t}function rXe(){throw new Error("BigInt not supported")}});var Jue=x((wIt,Gue)=>{var YN=m3(),Hue=xue(),zue=jue().Buffer,gr={};gr.Legacy="legacy";gr.Bitpay="bitpay";gr.Cashaddr="cashaddr";var Wr={};Wr.Mainnet="mainnet";Wr.Testnet="testnet";var ci={};ci.P2PKH="p2pkh";ci.P2SH="p2sh";function iXe(t){try{return Um(t),!0}catch{return!1}}function gx(t){return Um(t).format}function ek(t){return Um(t).network}function tk(t){return Um(t).type}function nXe(t){var e=Um(t);return e.format===gr.Legacy?t:dXe(e)}function aXe(t){var e=Um(t);return e.format===gr.Bitpay?t:lXe(e)}function sXe(t){var e=Um(t);return fXe(e)}var dn={};dn[gr.Legacy]={};dn[gr.Legacy][Wr.Mainnet]={};dn[gr.Legacy][Wr.Mainnet][ci.P2PKH]=0;dn[gr.Legacy][Wr.Mainnet][ci.P2SH]=5;dn[gr.Legacy][Wr.Testnet]={};dn[gr.Legacy][Wr.Testnet][ci.P2PKH]=111;dn[gr.Legacy][Wr.Testnet][ci.P2SH]=196;dn[gr.Bitpay]={};dn[gr.Bitpay][Wr.Mainnet]={};dn[gr.Bitpay][Wr.Mainnet][ci.P2PKH]=28;dn[gr.Bitpay][Wr.Mainnet][ci.P2SH]=40;dn[gr.Bitpay][Wr.Testnet]={};dn[gr.Bitpay][Wr.Testnet][ci.P2PKH]=111;dn[gr.Bitpay][Wr.Testnet][ci.P2SH]=196;function Um(t){try{return uXe(t)}catch{}try{return cXe(t)}catch{}throw new Lm}var oXe=21;function uXe(t){try{var e=YN.decode(t);if(e.length!==oXe)throw new Lm;var r=e[0],i=Array.prototype.slice.call(e,1);switch(r){case dn[gr.Legacy][Wr.Mainnet][ci.P2PKH]:return{hash:i,format:gr.Legacy,network:Wr.Mainnet,type:ci.P2PKH};case dn[gr.Legacy][Wr.Mainnet][ci.P2SH]:return{hash:i,format:gr.Legacy,network:Wr.Mainnet,type:ci.P2SH};case dn[gr.Legacy][Wr.Testnet][ci.P2PKH]:return{hash:i,format:gr.Legacy,network:Wr.Testnet,type:ci.P2PKH};case dn[gr.Legacy][Wr.Testnet][ci.P2SH]:return{hash:i,format:gr.Legacy,network:Wr.Testnet,type:ci.P2SH};case dn[gr.Bitpay][Wr.Mainnet][ci.P2PKH]:return{hash:i,format:gr.Bitpay,network:Wr.Mainnet,type:ci.P2PKH};case dn[gr.Bitpay][Wr.Mainnet][ci.P2SH]:return{hash:i,format:gr.Bitpay,network:Wr.Mainnet,type:ci.P2SH}}}catch{}throw new Lm}function cXe(t){if(t.indexOf(":")!==-1)try{return Vue(t)}catch{}else for(var e=["bitcoincash","bchtest","bchreg"],r=0;r{"use strict";function _Xe(t){if(t.length>=255)throw new TypeError("Alphabet too long");for(var e=new Uint8Array(256),r=0;r>>0,oe=new Uint8Array(re);L!==U;){for(var ge=b[L],be=0,ce=re-1;(ge!==0||be>>0,oe[ce]=ge%s>>>0,ge=ge/s>>>0;if(ge!==0)throw new Error("Non-zero carry");I=be,L++}for(var me=re-I;me!==re&&oe[me]===0;)me++;for(var ne=o.repeat(T);me>>0,re=new Uint8Array(U);b[T];){var oe=e[b.charCodeAt(T)];if(oe===255)return;for(var ge=0,be=U-1;(oe!==0||ge>>0,re[be]=oe%256>>>0,oe=oe/256>>>0;if(oe!==0)throw new Error("Non-zero carry");L=ge,T++}for(var ce=U-L;ce!==U&&re[ce]===0;)ce++;for(var me=new Uint8Array(I+(U-ce)),ne=I;ce!==U;)me[ne++]=re[ce++];return me}function p(b){var T=d(b);if(T)return T;throw new Error("Non-base"+s+" character")}return{encode:f,decodeUnsafe:d,decode:p}}Xue.exports=_Xe});var rk=x((SIt,Wue)=>{var wXe=Kue(),xXe="123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz";Wue.exports=wXe(xXe)});var ik=x((EIt,Zue)=>{Zue.exports=require("stream")});var ece=x((AIt,Yue)=>{"use strict";function $ue(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);e&&(i=i.filter(function(n){return Object.getOwnPropertyDescriptor(t,n).enumerable})),r.push.apply(r,i)}return r}function Que(t){for(var e=1;e0?this.tail.next=r:this.head=r,this.tail=r,++this.length}unshift(e){let r={data:e,next:this.head};this.length===0&&(this.tail=r),this.head=r,++this.length}shift(){if(this.length===0)return;let e=this.head.data;return this.length===1?this.head=this.tail=null:this.head=this.head.next,--this.length,e}clear(){this.head=this.tail=null,this.length=0}join(e){if(this.length===0)return"";for(var r=this.head,i=""+r.data;r=r.next;)i+=e+r.data;return i}concat(e){if(this.length===0)return yx.alloc(0);let r=yx.allocUnsafe(e>>>0);for(var i=this.head,n=0;i;)RXe(i.data,r,n),n+=i.data.length,i=i.next;return r}consume(e,r){var i;return ea.length?a.length:e;if(s===a.length?n+=a:n+=a.slice(0,e),e-=s,e===0){s===a.length?(++i,r.next?this.head=r.next:this.head=this.tail=null):(this.head=r,r.data=a.slice(s));break}++i}return this.length-=i,n}_getBuffer(e){let r=yx.allocUnsafe(e);var i=this.head,n=1;for(i.data.copy(r),e-=i.data.length;i=i.next;){let a=i.data,s=e>a.length?a.length:e;if(a.copy(r,r.length-e,0,s),e-=s,e===0){s===a.length?(++n,i.next?this.head=i.next:this.head=this.tail=null):(this.head=i,i.data=a.slice(s));break}++n}return this.length-=n,r}[OXe](e,r){return nk(this,Que(Que({},r),{},{depth:0,customInspect:!1}))}}});var sk=x((PIt,rce)=>{"use strict";function MXe(t,e){let r=this._readableState&&this._readableState.destroyed,i=this._writableState&&this._writableState.destroyed;return r||i?(e?e(t):t&&(this._writableState?this._writableState.errorEmitted||(this._writableState.errorEmitted=!0,process.nextTick(ak,this,t)):process.nextTick(ak,this,t)),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(t||null,n=>{!e&&n?this._writableState?this._writableState.errorEmitted?process.nextTick(vx,this):(this._writableState.errorEmitted=!0,process.nextTick(tce,this,n)):process.nextTick(tce,this,n):e?(process.nextTick(vx,this),e(n)):process.nextTick(vx,this)}),this)}function tce(t,e){ak(t,e),vx(t)}function vx(t){t._writableState&&!t._writableState.emitClose||t._readableState&&!t._readableState.emitClose||t.emit("close")}function CXe(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finalCalled=!1,this._writableState.prefinished=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)}function ak(t,e){t.emit("error",e)}function IXe(t,e){let r=t._readableState,i=t._writableState;r&&r.autoDestroy||i&&i.autoDestroy?t.destroy(e):t.emit("error",e)}rce.exports={destroy:MXe,undestroy:CXe,errorOrDestroy:IXe}});var hh=x((OIt,ace)=>{"use strict";var nce={};function Lu(t,e,r){r||(r=Error);function i(a,s,o){return typeof e=="string"?e:e(a,s,o)}class n extends r{constructor(s,o,c){super(i(s,o,c))}}n.prototype.name=r.name,n.prototype.code=t,nce[t]=n}function ice(t,e){if(Array.isArray(t)){let r=t.length;return t=t.map(i=>String(i)),r>2?`one of ${e} ${t.slice(0,r-1).join(", ")}, or `+t[r-1]:r===2?`one of ${e} ${t[0]} or ${t[1]}`:`of ${e} ${t[0]}`}else return`of ${e} ${String(t)}`}function NXe(t,e,r){return t.substr(!r||r<0?0:+r,e.length)===e}function kXe(t,e,r){return(r===void 0||r>t.length)&&(r=t.length),t.substring(r-e.length,r)===e}function BXe(t,e,r){return typeof r!="number"&&(r=0),r+e.length>t.length?!1:t.indexOf(e,r)!==-1}Lu("ERR_INVALID_OPT_VALUE",function(t,e){return'The value "'+e+'" is invalid for option "'+t+'"'},TypeError);Lu("ERR_INVALID_ARG_TYPE",function(t,e,r){let i;typeof e=="string"&&NXe(e,"not ")?(i="must not be",e=e.replace(/^not /,"")):i="must be";let n;if(kXe(t," argument"))n=`The ${t} ${i} ${ice(e,"type")}`;else{let a=BXe(t,".")?"property":"argument";n=`The "${t}" ${a} ${i} ${ice(e,"type")}`}return n+=`. Received type ${typeof r}`,n},TypeError);Lu("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF");Lu("ERR_METHOD_NOT_IMPLEMENTED",function(t){return"The "+t+" method is not implemented"});Lu("ERR_STREAM_PREMATURE_CLOSE","Premature close");Lu("ERR_STREAM_DESTROYED",function(t){return"Cannot call "+t+" after a stream was destroyed"});Lu("ERR_MULTIPLE_CALLBACK","Callback called multiple times");Lu("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable");Lu("ERR_STREAM_WRITE_AFTER_END","write after end");Lu("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError);Lu("ERR_UNKNOWN_ENCODING",function(t){return"Unknown encoding: "+t},TypeError);Lu("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event");ace.exports.codes=nce});var ok=x((RIt,sce)=>{"use strict";var FXe=hh().codes.ERR_INVALID_OPT_VALUE;function DXe(t,e,r){return t.highWaterMark!=null?t.highWaterMark:e?t[r]:null}function qXe(t,e,r,i){let n=DXe(e,i,r);if(n!=null){if(!(isFinite(n)&&Math.floor(n)===n)||n<0){let a=i?r:"highWaterMark";throw new FXe(a,n)}return Math.floor(n)}return t.objectMode?16:16*1024}sce.exports={getHighWaterMark:qXe}});var uce=x((MIt,oce)=>{oce.exports=require("util").deprecate});var dk=x((CIt,hce)=>{"use strict";hce.exports=ln;function dce(t){this.next=null,this.entry=null,this.finish=()=>{lKe(this,t)}}var tv;ln.WritableState=v3;var LXe={deprecate:uce()},lce=ik(),_x=require("buffer").Buffer,UXe=(typeof global<"u"?global:typeof window<"u"?window:typeof self<"u"?self:{}).Uint8Array||function(){};function jXe(t){return _x.from(t)}function VXe(t){return _x.isBuffer(t)||t instanceof UXe}var ck=sk(),HXe=ok(),zXe=HXe.getHighWaterMark,mh=hh().codes,GXe=mh.ERR_INVALID_ARG_TYPE,JXe=mh.ERR_METHOD_NOT_IMPLEMENTED,XXe=mh.ERR_MULTIPLE_CALLBACK,KXe=mh.ERR_STREAM_CANNOT_PIPE,WXe=mh.ERR_STREAM_DESTROYED,ZXe=mh.ERR_STREAM_NULL_VALUES,$Xe=mh.ERR_STREAM_WRITE_AFTER_END,QXe=mh.ERR_UNKNOWN_ENCODING,rv=ck.errorOrDestroy;_d()(ln,lce);function YXe(){}function v3(t,e,r){tv=tv||jm(),t=t||{},typeof r!="boolean"&&(r=e instanceof tv),this.objectMode=!!t.objectMode,r&&(this.objectMode=this.objectMode||!!t.writableObjectMode),this.highWaterMark=zXe(this,t,"writableHighWaterMark",r),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var i=t.decodeStrings===!1;this.decodeStrings=!i,this.defaultEncoding=t.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(n){sKe(e,n)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.emitClose=t.emitClose!==!1,this.autoDestroy=!!t.autoDestroy,this.bufferedRequestCount=0,this.corkedRequestsFree=new dce(this)}v3.prototype.getBuffer=function(){for(var e=this.bufferedRequest,r=[];e;)r.push(e),e=e.next;return r};(function(){try{Object.defineProperty(v3.prototype,"buffer",{get:LXe.deprecate(function(){return this.getBuffer()},"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch{}})();var bx;typeof Symbol=="function"&&Symbol.hasInstance&&typeof Function.prototype[Symbol.hasInstance]=="function"?(bx=Function.prototype[Symbol.hasInstance],Object.defineProperty(ln,Symbol.hasInstance,{value:function(e){return bx.call(this,e)?!0:this!==ln?!1:e&&e._writableState instanceof v3}})):bx=function(e){return e instanceof this};function ln(t){tv=tv||jm();let e=this instanceof tv;if(!e&&!bx.call(ln,this))return new ln(t);this._writableState=new v3(t,this,e),this.writable=!0,t&&(typeof t.write=="function"&&(this._write=t.write),typeof t.writev=="function"&&(this._writev=t.writev),typeof t.destroy=="function"&&(this._destroy=t.destroy),typeof t.final=="function"&&(this._final=t.final)),lce.call(this)}ln.prototype.pipe=function(){rv(this,new KXe)};function eKe(t,e){var r=new $Xe;rv(t,r),process.nextTick(e,r)}function tKe(t,e,r,i){var n;return r===null?n=new ZXe:typeof r!="string"&&!e.objectMode&&(n=new GXe("chunk",["string","Buffer"],r)),n?(rv(t,n),process.nextTick(i,n),!1):!0}ln.prototype.write=function(t,e,r){var i=this._writableState,n=!1,a=!i.objectMode&&VXe(t);return a&&!_x.isBuffer(t)&&(t=jXe(t)),typeof e=="function"&&(r=e,e=null),a?e="buffer":e||(e=i.defaultEncoding),typeof r!="function"&&(r=YXe),i.ending?eKe(this,r):(a||tKe(this,i,t,r))&&(i.pendingcb++,n=iKe(this,i,a,t,e,r)),n};ln.prototype.cork=function(){this._writableState.corked++};ln.prototype.uncork=function(){var t=this._writableState;t.corked&&(t.corked--,!t.writing&&!t.corked&&!t.bufferProcessing&&t.bufferedRequest&&fce(this,t))};ln.prototype.setDefaultEncoding=function(e){if(typeof e=="string"&&(e=e.toLowerCase()),!(["hex","utf8","utf-8","ascii","binary","base64","ucs2","ucs-2","utf16le","utf-16le","raw"].indexOf((e+"").toLowerCase())>-1))throw new QXe(e);return this._writableState.defaultEncoding=e,this};Object.defineProperty(ln.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}});function rKe(t,e,r){return!t.objectMode&&t.decodeStrings!==!1&&typeof e=="string"&&(e=_x.from(e,r)),e}Object.defineProperty(ln.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}});function iKe(t,e,r,i,n,a){if(!r){var s=rKe(e,i,n);i!==s&&(r=!0,n="buffer",i=s)}var o=e.objectMode?1:i.length;e.length+=o;var c=e.length{e.pendingcb--,r&&rv(t,r),e.prefinished=!0,t.emit("prefinish"),y3(t,e)})}function cKe(t,e){!e.prefinished&&!e.finalCalled&&(typeof t._final=="function"&&!e.destroyed?(e.pendingcb++,e.finalCalled=!0,process.nextTick(uKe,t,e)):(e.prefinished=!0,t.emit("prefinish")))}function y3(t,e){var r=pce(e);if(r&&(cKe(t,e),e.pendingcb===0&&(e.finished=!0,t.emit("finish"),e.autoDestroy))){let i=t._readableState;(!i||i.autoDestroy&&i.endEmitted)&&t.destroy()}return r}function dKe(t,e,r){e.ending=!0,y3(t,e),r&&(e.finished?process.nextTick(r):t.once("finish",r)),e.ended=!0,t.writable=!1}function lKe(t,e,r){var i=t.entry;for(t.entry=null;i;){var n=i.callback;e.pendingcb--,n(r),i=i.next}e.corkedRequestsFree.next=t}Object.defineProperty(ln.prototype,"destroyed",{enumerable:!1,get(){return this._writableState===void 0?!1:this._writableState.destroyed},set(t){!this._writableState||(this._writableState.destroyed=t)}});ln.prototype.destroy=ck.destroy;ln.prototype._undestroy=ck.undestroy;ln.prototype._destroy=function(t,e){e(t)}});var jm=x((IIt,gce)=>{"use strict";var fKe=Object.keys||function(t){var e=[];for(var r in t)e.push(r);return e};gce.exports=ul;var mce=fk(),lk=dk();_d()(ul,mce);{let t=fKe(lk.prototype);for(wx=0;wx{"use strict";var hk=Zy().Buffer,yce=hk.isEncoding||function(t){switch(t=""+t,t&&t.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}};function mKe(t){if(!t)return"utf8";for(var e;;)switch(t){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return t;default:if(e)return;t=(""+t).toLowerCase(),e=!0}}function gKe(t){var e=mKe(t);if(typeof e!="string"&&(hk.isEncoding===yce||!yce(t)))throw new Error("Unknown encoding: "+t);return e||t}vce.StringDecoder=b3;function b3(t){this.encoding=gKe(t);var e;switch(this.encoding){case"utf16le":this.text=xKe,this.end=SKe,e=4;break;case"utf8":this.fillLast=bKe,e=4;break;case"base64":this.text=EKe,this.end=TKe,e=3;break;default:this.write=AKe,this.end=PKe;return}this.lastNeed=0,this.lastTotal=0,this.lastChar=hk.allocUnsafe(e)}b3.prototype.write=function(t){if(t.length===0)return"";var e,r;if(this.lastNeed){if(e=this.fillLast(t),e===void 0)return"";r=this.lastNeed,this.lastNeed=0}else r=0;return r>5===6?2:t>>4===14?3:t>>3===30?4:t>>6===2?-1:-2}function yKe(t,e,r){var i=e.length-1;if(i=0?(n>0&&(t.lastNeed=n-1),n):--i=0?(n>0&&(t.lastNeed=n-2),n):--i=0?(n>0&&(n===2?n=0:t.lastNeed=n-3),n):0))}function vKe(t,e,r){if((e[0]&192)!==128)return t.lastNeed=0,"\uFFFD";if(t.lastNeed>1&&e.length>1){if((e[1]&192)!==128)return t.lastNeed=1,"\uFFFD";if(t.lastNeed>2&&e.length>2&&(e[2]&192)!==128)return t.lastNeed=2,"\uFFFD"}}function bKe(t){var e=this.lastTotal-this.lastNeed,r=vKe(this,t,e);if(r!==void 0)return r;if(this.lastNeed<=t.length)return t.copy(this.lastChar,e,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);t.copy(this.lastChar,e,0,t.length),this.lastNeed-=t.length}function _Ke(t,e){var r=yKe(this,t,e);if(!this.lastNeed)return t.toString("utf8",e);this.lastTotal=r;var i=t.length-(r-this.lastNeed);return t.copy(this.lastChar,0,i),t.toString("utf8",e,i)}function wKe(t){var e=t&&t.length?this.write(t):"";return this.lastNeed?e+"\uFFFD":e}function xKe(t,e){if((t.length-e)%2===0){var r=t.toString("utf16le",e);if(r){var i=r.charCodeAt(r.length-1);if(i>=55296&&i<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=t[t.length-2],this.lastChar[1]=t[t.length-1],r.slice(0,-1)}return r}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=t[t.length-1],t.toString("utf16le",e,t.length-1)}function SKe(t){var e=t&&t.length?this.write(t):"";if(this.lastNeed){var r=this.lastTotal-this.lastNeed;return e+this.lastChar.toString("utf16le",0,r)}return e}function EKe(t,e){var r=(t.length-e)%3;return r===0?t.toString("base64",e):(this.lastNeed=3-r,this.lastTotal=3,r===1?this.lastChar[0]=t[t.length-1]:(this.lastChar[0]=t[t.length-2],this.lastChar[1]=t[t.length-1]),t.toString("base64",e,t.length-r))}function TKe(t){var e=t&&t.length?this.write(t):"";return this.lastNeed?e+this.lastChar.toString("base64",0,3-this.lastNeed):e}function AKe(t){return t.toString(this.encoding)}function PKe(t){return t&&t.length?this.write(t):""}});var xx=x((kIt,wce)=>{"use strict";var bce=hh().codes.ERR_STREAM_PREMATURE_CLOSE;function OKe(t){let e=!1;return function(){if(!e){e=!0;for(var r=arguments.length,i=new Array(r),n=0;n{t.writable||o()};var s=t._writableState&&t._writableState.finished;let o=()=>{n=!1,s=!0,i||r.call(t)};var c=t._readableState&&t._readableState.endEmitted;let u=()=>{i=!1,c=!0,n||r.call(t)},f=b=>{r.call(t,b)},d=()=>{let b;if(i&&!c)return(!t._readableState||!t._readableState.ended)&&(b=new bce),r.call(t,b);if(n&&!s)return(!t._writableState||!t._writableState.ended)&&(b=new bce),r.call(t,b)},p=()=>{t.req.on("finish",o)};return MKe(t)?(t.on("complete",o),t.on("abort",d),t.req?p():t.on("request",p)):n&&!t._writableState&&(t.on("end",a),t.on("close",a)),t.on("end",u),t.on("finish",o),e.error!==!1&&t.on("error",f),t.on("close",d),function(){t.removeListener("complete",o),t.removeListener("abort",d),t.removeListener("request",p),t.req&&t.req.removeListener("finish",o),t.removeListener("end",a),t.removeListener("close",a),t.removeListener("finish",o),t.removeListener("end",u),t.removeListener("error",f),t.removeListener("close",d)}}wce.exports=_ce});var Sce=x((BIt,xce)=>{"use strict";var CKe=xx(),gh=Symbol("lastResolve"),Vm=Symbol("lastReject"),_3=Symbol("error"),Sx=Symbol("ended"),Hm=Symbol("lastPromise"),gk=Symbol("handlePromise"),zm=Symbol("stream");function yh(t,e){return{value:t,done:e}}function IKe(t){let e=t[gh];if(e!==null){let r=t[zm].read();r!==null&&(t[Hm]=null,t[gh]=null,t[Vm]=null,e(yh(r,!1)))}}function NKe(t){process.nextTick(IKe,t)}function kKe(t,e){return(r,i)=>{t.then(()=>{if(e[Sx]){r(yh(void 0,!0));return}e[gk](r,i)},i)}}var BKe=Object.getPrototypeOf(function(){}),FKe=Object.setPrototypeOf({get stream(){return this[zm]},next(){let t=this[_3];if(t!==null)return Promise.reject(t);if(this[Sx])return Promise.resolve(yh(void 0,!0));if(this[zm].destroyed)return new Promise((i,n)=>{process.nextTick(()=>{this[_3]?n(this[_3]):i(yh(void 0,!0))})});let e=this[Hm],r;if(e)r=new Promise(kKe(e,this));else{let i=this[zm].read();if(i!==null)return Promise.resolve(yh(i,!1));r=new Promise(this[gk])}return this[Hm]=r,r},[Symbol.asyncIterator](){return this},return(){return new Promise((t,e)=>{this[zm].destroy(null,r=>{if(r){e(r);return}t(yh(void 0,!0))})})}},BKe),DKe=t=>{let e=Object.create(FKe,{[zm]:{value:t,writable:!0},[gh]:{value:null,writable:!0},[Vm]:{value:null,writable:!0},[_3]:{value:null,writable:!0},[Sx]:{value:t._readableState.endEmitted,writable:!0},[gk]:{value:(r,i)=>{let n=e[zm].read();n?(e[Hm]=null,e[gh]=null,e[Vm]=null,r(yh(n,!1))):(e[gh]=r,e[Vm]=i)},writable:!0}});return e[Hm]=null,CKe(t,r=>{if(r&&r.code!=="ERR_STREAM_PREMATURE_CLOSE"){let n=e[Vm];n!==null&&(e[Hm]=null,e[gh]=null,e[Vm]=null,n(r)),e[_3]=r;return}let i=e[gh];i!==null&&(e[Hm]=null,e[gh]=null,e[Vm]=null,i(yh(void 0,!0))),e[Sx]=!0}),t.on("readable",NKe.bind(null,e)),e};xce.exports=DKe});var Pce=x((FIt,Ace)=>{"use strict";function Ece(t,e,r,i,n,a,s){try{var o=t[a](s),c=o.value}catch(u){r(u);return}o.done?e(c):Promise.resolve(c).then(i,n)}function qKe(t){return function(){var e=this,r=arguments;return new Promise(function(i,n){var a=t.apply(e,r);function s(c){Ece(a,i,n,s,o,"next",c)}function o(c){Ece(a,i,n,s,o,"throw",c)}s(void 0)})}}function Tce(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);e&&(i=i.filter(function(n){return Object.getOwnPropertyDescriptor(t,n).enumerable})),r.push.apply(r,i)}return r}function LKe(t){for(var e=1;e{"use strict";Dce.exports=Jr;var iv;Jr.ReadableState=Cce;var DIt=require("events").EventEmitter,Mce=function(e,r){return e.listeners(r).length},x3=ik(),Ex=require("buffer").Buffer,GKe=(typeof global<"u"?global:typeof window<"u"?window:typeof self<"u"?self:{}).Uint8Array||function(){};function JKe(t){return Ex.from(t)}function XKe(t){return Ex.isBuffer(t)||t instanceof GKe}var yk=require("util"),br;yk&&yk.debuglog?br=yk.debuglog("stream"):br=function(){};var KKe=ece(),Ek=sk(),WKe=ok(),ZKe=WKe.getHighWaterMark,Tx=hh().codes,$Ke=Tx.ERR_INVALID_ARG_TYPE,QKe=Tx.ERR_STREAM_PUSH_AFTER_EOF,YKe=Tx.ERR_METHOD_NOT_IMPLEMENTED,eWe=Tx.ERR_STREAM_UNSHIFT_AFTER_END_EVENT,nv,vk,bk;_d()(Jr,x3);var w3=Ek.errorOrDestroy,_k=["error","close","destroy","pause","resume"];function tWe(t,e,r){if(typeof t.prependListener=="function")return t.prependListener(e,r);!t._events||!t._events[e]?t.on(e,r):Array.isArray(t._events[e])?t._events[e].unshift(r):t._events[e]=[r,t._events[e]]}function Cce(t,e,r){iv=iv||jm(),t=t||{},typeof r!="boolean"&&(r=e instanceof iv),this.objectMode=!!t.objectMode,r&&(this.objectMode=this.objectMode||!!t.readableObjectMode),this.highWaterMark=ZKe(this,t,"readableHighWaterMark",r),this.buffer=new KKe,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.paused=!0,this.emitClose=t.emitClose!==!1,this.autoDestroy=!!t.autoDestroy,this.destroyed=!1,this.defaultEncoding=t.defaultEncoding||"utf8",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,t.encoding&&(nv||(nv=mk().StringDecoder),this.decoder=new nv(t.encoding),this.encoding=t.encoding)}function Jr(t){if(iv=iv||jm(),!(this instanceof Jr))return new Jr(t);let e=this instanceof iv;this._readableState=new Cce(t,this,e),this.readable=!0,t&&(typeof t.read=="function"&&(this._read=t.read),typeof t.destroy=="function"&&(this._destroy=t.destroy)),x3.call(this)}Object.defineProperty(Jr.prototype,"destroyed",{enumerable:!1,get(){return this._readableState===void 0?!1:this._readableState.destroyed},set(t){!this._readableState||(this._readableState.destroyed=t)}});Jr.prototype.destroy=Ek.destroy;Jr.prototype._undestroy=Ek.undestroy;Jr.prototype._destroy=function(t,e){e(t)};Jr.prototype.push=function(t,e){var r=this._readableState,i;return r.objectMode?i=!0:typeof t=="string"&&(e=e||r.defaultEncoding,e!==r.encoding&&(t=Ex.from(t,e),e=""),i=!0),Ice(this,t,e,!1,i)};Jr.prototype.unshift=function(t){return Ice(this,t,null,!0,!1)};function Ice(t,e,r,i,n){br("readableAddChunk",e);var a=t._readableState;if(e===null)a.reading=!1,nWe(t,a);else{var s;if(n||(s=rWe(a,e)),s)w3(t,s);else if(a.objectMode||e&&e.length>0)if(typeof e!="string"&&!a.objectMode&&Object.getPrototypeOf(e)!==Ex.prototype&&(e=JKe(e)),i)a.endEmitted?w3(t,new eWe):wk(t,a,e,!0);else if(a.ended)w3(t,new QKe);else{if(a.destroyed)return!1;a.reading=!1,a.decoder&&!r?(e=a.decoder.write(e),a.objectMode||e.length!==0?wk(t,a,e,!1):Sk(t,a)):wk(t,a,e,!1)}else i||(a.reading=!1,Sk(t,a))}return!a.ended&&(a.length=Oce?t=Oce:(t--,t|=t>>>1,t|=t>>>2,t|=t>>>4,t|=t>>>8,t|=t>>>16,t++),t}function Rce(t,e){return t<=0||e.length===0&&e.ended?0:e.objectMode?1:t!==t?e.flowing&&e.length?e.buffer.head.data.length:e.length:(t>e.highWaterMark&&(e.highWaterMark=iWe(t)),t<=e.length?t:e.ended?e.length:(e.needReadable=!0,0))}Jr.prototype.read=function(t){br("read",t),t=parseInt(t,10);var e=this._readableState,r=t;if(t!==0&&(e.emittedReadable=!1),t===0&&e.needReadable&&((e.highWaterMark!==0?e.length>=e.highWaterMark:e.length>0)||e.ended))return br("read: emitReadable",e.length,e.ended),e.length===0&&e.ended?xk(this):Ax(this),null;if(t=Rce(t,e),t===0&&e.ended)return e.length===0&&xk(this),null;var i=e.needReadable;br("need readable",i),(e.length===0||e.length-t0?n=Bce(t,e):n=null,n===null?(e.needReadable=e.length<=e.highWaterMark,t=0):(e.length-=t,e.awaitDrain=0),e.length===0&&(e.ended||(e.needReadable=!0),r!==t&&e.ended&&xk(this)),n!==null&&this.emit("data",n),n};function nWe(t,e){if(br("onEofChunk"),!e.ended){if(e.decoder){var r=e.decoder.end();r&&r.length&&(e.buffer.push(r),e.length+=e.objectMode?1:r.length)}e.ended=!0,e.sync?Ax(t):(e.needReadable=!1,e.emittedReadable||(e.emittedReadable=!0,Nce(t)))}}function Ax(t){var e=t._readableState;br("emitReadable",e.needReadable,e.emittedReadable),e.needReadable=!1,e.emittedReadable||(br("emitReadable",e.flowing),e.emittedReadable=!0,process.nextTick(Nce,t))}function Nce(t){var e=t._readableState;br("emitReadable_",e.destroyed,e.length,e.ended),!e.destroyed&&(e.length||e.ended)&&(t.emit("readable"),e.emittedReadable=!1),e.needReadable=!e.flowing&&!e.ended&&e.length<=e.highWaterMark,Tk(t)}function Sk(t,e){e.readingMore||(e.readingMore=!0,process.nextTick(aWe,t,e))}function aWe(t,e){for(;!e.reading&&!e.ended&&(e.length1&&Fce(i.pipes,t)!==-1)&&!u&&(br("false write response, pause",i.awaitDrain),i.awaitDrain++),r.pause())}function p(L){br("onerror",L),I(),t.removeListener("error",p),Mce(t,"error")===0&&w3(t,L)}tWe(t,"error",p);function b(){t.removeListener("finish",T),I()}t.once("close",b);function T(){br("onfinish"),t.removeListener("close",b),I()}t.once("finish",T);function I(){br("unpipe"),r.unpipe(t)}return t.emit("pipe",r),i.flowing||(br("pipe resume"),r.resume()),t};function sWe(t){return function(){var r=t._readableState;br("pipeOnDrain",r.awaitDrain),r.awaitDrain&&r.awaitDrain--,r.awaitDrain===0&&Mce(t,"data")&&(r.flowing=!0,Tk(t))}}Jr.prototype.unpipe=function(t){var e=this._readableState,r={hasUnpiped:!1};if(e.pipesCount===0)return this;if(e.pipesCount===1)return t&&t!==e.pipes?this:(t||(t=e.pipes),e.pipes=null,e.pipesCount=0,e.flowing=!1,t&&t.emit("unpipe",this,r),this);if(!t){var i=e.pipes,n=e.pipesCount;e.pipes=null,e.pipesCount=0,e.flowing=!1;for(var a=0;a0,i.flowing!==!1&&this.resume()):t==="readable"&&!i.endEmitted&&!i.readableListening&&(i.readableListening=i.needReadable=!0,i.flowing=!1,i.emittedReadable=!1,br("on readable",i.length,i.reading),i.length?Ax(this):i.reading||process.nextTick(oWe,this)),r};Jr.prototype.addListener=Jr.prototype.on;Jr.prototype.removeListener=function(t,e){let r=x3.prototype.removeListener.call(this,t,e);return t==="readable"&&process.nextTick(kce,this),r};Jr.prototype.removeAllListeners=function(t){let e=x3.prototype.removeAllListeners.apply(this,arguments);return(t==="readable"||t===void 0)&&process.nextTick(kce,this),e};function kce(t){let e=t._readableState;e.readableListening=t.listenerCount("readable")>0,e.resumeScheduled&&!e.paused?e.flowing=!0:t.listenerCount("data")>0&&t.resume()}function oWe(t){br("readable nexttick read 0"),t.read(0)}Jr.prototype.resume=function(){var t=this._readableState;return t.flowing||(br("resume"),t.flowing=!t.readableListening,uWe(this,t)),t.paused=!1,this};function uWe(t,e){e.resumeScheduled||(e.resumeScheduled=!0,process.nextTick(cWe,t,e))}function cWe(t,e){br("resume",e.reading),e.reading||t.read(0),e.resumeScheduled=!1,t.emit("resume"),Tk(t),e.flowing&&!e.reading&&t.read(0)}Jr.prototype.pause=function(){return br("call pause flowing=%j",this._readableState.flowing),this._readableState.flowing!==!1&&(br("pause"),this._readableState.flowing=!1,this.emit("pause")),this._readableState.paused=!0,this};function Tk(t){let e=t._readableState;for(br("flow",e.flowing);e.flowing&&t.read()!==null;);}Jr.prototype.wrap=function(t){var e=this._readableState,r=!1;t.on("end",()=>{if(br("wrapped end"),e.decoder&&!e.ended){var a=e.decoder.end();a&&a.length&&this.push(a)}this.push(null)}),t.on("data",a=>{if(br("wrapped data"),e.decoder&&(a=e.decoder.write(a)),!(e.objectMode&&a==null)&&!(!e.objectMode&&(!a||!a.length))){var s=this.push(a);s||(r=!0,t.pause())}});for(var i in t)this[i]===void 0&&typeof t[i]=="function"&&(this[i]=function(s){return function(){return t[s].apply(t,arguments)}}(i));for(var n=0;n<_k.length;n++)t.on(_k[n],this.emit.bind(this,_k[n]));return this._read=a=>{br("wrapped _read",a),r&&(r=!1,t.resume())},this};typeof Symbol=="function"&&(Jr.prototype[Symbol.asyncIterator]=function(){return vk===void 0&&(vk=Sce()),vk(this)});Object.defineProperty(Jr.prototype,"readableHighWaterMark",{enumerable:!1,get:function(){return this._readableState.highWaterMark}});Object.defineProperty(Jr.prototype,"readableBuffer",{enumerable:!1,get:function(){return this._readableState&&this._readableState.buffer}});Object.defineProperty(Jr.prototype,"readableFlowing",{enumerable:!1,get:function(){return this._readableState.flowing},set:function(e){this._readableState&&(this._readableState.flowing=e)}});Jr._fromList=Bce;Object.defineProperty(Jr.prototype,"readableLength",{enumerable:!1,get(){return this._readableState.length}});function Bce(t,e){if(e.length===0)return null;var r;return e.objectMode?r=e.buffer.shift():!t||t>=e.length?(e.decoder?r=e.buffer.join(""):e.buffer.length===1?r=e.buffer.first():r=e.buffer.concat(e.length),e.buffer.clear()):r=e.buffer.consume(t,e.decoder),r}function xk(t){var e=t._readableState;br("endReadable",e.endEmitted),e.endEmitted||(e.ended=!0,process.nextTick(dWe,e,t))}function dWe(t,e){if(br("endReadableNT",t.endEmitted,t.length),!t.endEmitted&&t.length===0&&(t.endEmitted=!0,e.readable=!1,e.emit("end"),t.autoDestroy)){let r=e._writableState;(!r||r.autoDestroy&&r.finished)&&e.destroy()}}typeof Symbol=="function"&&(Jr.from=function(t,e){return bk===void 0&&(bk=Pce()),bk(Jr,t,e)});function Fce(t,e){for(var r=0,i=t.length;r{"use strict";Lce.exports=Vf;var Px=hh().codes,lWe=Px.ERR_METHOD_NOT_IMPLEMENTED,fWe=Px.ERR_MULTIPLE_CALLBACK,pWe=Px.ERR_TRANSFORM_ALREADY_TRANSFORMING,hWe=Px.ERR_TRANSFORM_WITH_LENGTH_0,Ox=jm();_d()(Vf,Ox);function mWe(t,e){var r=this._transformState;r.transforming=!1;var i=r.writecb;if(i===null)return this.emit("error",new fWe);r.writechunk=null,r.writecb=null,e!=null&&this.push(e),i(t);var n=this._readableState;n.reading=!1,(n.needReadable||n.length{qce(this,t,e)}):qce(this,null,null)}Vf.prototype.push=function(t,e){return this._transformState.needTransform=!1,Ox.prototype.push.call(this,t,e)};Vf.prototype._transform=function(t,e,r){r(new lWe("_transform()"))};Vf.prototype._write=function(t,e,r){var i=this._transformState;if(i.writecb=r,i.writechunk=t,i.writeencoding=e,!i.transforming){var n=this._readableState;(i.needTransform||n.needReadable||n.length{e(r)})};function qce(t,e,r){if(e)return t.emit("error",e);if(r!=null&&t.push(r),t._writableState.length)throw new hWe;if(t._transformState.transforming)throw new pWe;return t.push(null)}});var Vce=x((UIt,jce)=>{"use strict";jce.exports=S3;var Uce=Ak();_d()(S3,Uce);function S3(t){if(!(this instanceof S3))return new S3(t);Uce.call(this,t)}S3.prototype._transform=function(t,e,r){r(null,t)}});var Xce=x((jIt,Jce)=>{"use strict";var Pk;function yWe(t){let e=!1;return function(){e||(e=!0,t(...arguments))}}var Gce=hh().codes,vWe=Gce.ERR_MISSING_ARGS,bWe=Gce.ERR_STREAM_DESTROYED;function Hce(t){if(t)throw t}function _We(t){return t.setHeader&&typeof t.abort=="function"}function wWe(t,e,r,i){i=yWe(i);let n=!1;t.on("close",()=>{n=!0}),Pk===void 0&&(Pk=xx()),Pk(t,{readable:e,writable:r},s=>{if(s)return i(s);n=!0,i()});let a=!1;return s=>{if(!n&&!a){if(a=!0,_We(t))return t.abort();if(typeof t.destroy=="function")return t.destroy();i(s||new bWe("pipe"))}}}function zce(t){t()}function xWe(t,e){return t.pipe(e)}function SWe(t){return!t.length||typeof t[t.length-1]!="function"?Hce:t.pop()}function EWe(){for(var t=arguments.length,e=new Array(t),r=0;r0;return wWe(s,c,u,function(f){n||(n=f),f&&a.forEach(zce),!c&&(a.forEach(zce),i(n))})});return e.reduce(xWe)}Jce.exports=EWe});var Kce=x((Uu,T3)=>{var E3=require("stream");process.env.READABLE_STREAM==="disable"&&E3?(T3.exports=E3.Readable,Object.assign(T3.exports,E3),T3.exports.Stream=E3):(Uu=T3.exports=fk(),Uu.Stream=E3||Uu,Uu.Readable=Uu,Uu.Writable=dk(),Uu.Duplex=jm(),Uu.Transform=Ak(),Uu.PassThrough=Vce(),Uu.finished=xx(),Uu.pipeline=Xce())});var Zce=x((HIt,Wce)=>{var TWe=Kce().Transform;Wce.exports=class extends TWe{constructor(e,r){super(r),this._engine=e,this._finalized=!1}_transform(e,r,i){let n=null;try{this.update(e,r)}catch(a){n=a}i(n)}_flush(e){let r=null;try{this.push(this.digest())}catch(i){r=i}e(r)}update(e,r){if(!Buffer.isBuffer(e)&&typeof e!="string")throw new TypeError("Data must be a string or a buffer");if(this._finalized)throw new Error("Digest already called");return Buffer.isBuffer(e)||(e=Buffer.from(e,r)),this._engine.update(e),this}digest(e){if(this._finalized)throw new Error("Digest already called");this._finalized=!0;let r=this._engine.digest();return e!==void 0&&(r=r.toString(e)),r}}});var Ok=x((zIt,$ce)=>{var AWe=Zce();$ce.exports=t=>{let e=r=>{switch(typeof r=="string"?r.toLowerCase():r){case"blake224":return t.Blake224;case"blake256":return t.Blake256;case"blake384":return t.Blake384;case"blake512":return t.Blake512;default:throw new Error("Invald algorithm: "+r)}};return(r,i)=>{let n=e(r);return new AWe(new n,i)}}});var Yce=x((GIt,Qce)=>{Qce.exports=Ok()(Y9()(__dirname))});var Rk=x((JIt,ede)=>{var Gm=class{_lengthCarry(e){for(let r=0;r=r.length;){for(let n=this._blockOffset;n{var Jm=Rk(),PWe=Buffer.from([1]),OWe=Buffer.from([129]),Rx=(t,e)=>(t<<32-e|t>>>e)>>>0;function vh(t,e,r,i,n,a,s,o){let c=Jm.sigma,u=Jm.u256;t[i]=t[i]+((e[c[r][o]]^u[c[r][o+1]])>>>0)+t[n]>>>0,t[s]=Rx(t[s]^t[i],16),t[a]=t[a]+t[s]>>>0,t[n]=Rx(t[n]^t[a],12),t[i]=t[i]+((e[c[r][o+1]]^u[c[r][o]])>>>0)+t[n]>>>0,t[s]=Rx(t[s]^t[i],8),t[a]=t[a]+t[s]>>>0,t[n]=Rx(t[n]^t[a],7)}tde.exports=class extends Jm{constructor(){super(),this._h=[1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225],this._s=[0,0,0,0],this._block=Buffer.alloc(64),this._blockOffset=0,this._length=[0,0],this._nullt=!1,this._zo=PWe,this._oo=OWe}_compress(){let e=Jm.u256,r=new Array(16),i=new Array(16),n;for(n=0;n<16;++n)i[n]=this._block.readUInt32BE(n*4);for(n=0;n<8;++n)r[n]=this._h[n]>>>0;for(n=8;n<12;++n)r[n]=(this._s[n-8]^e[n-8])>>>0;for(n=12;n<16;++n)r[n]=e[n-8];for(this._nullt||(r[12]=(r[12]^this._length[0])>>>0,r[13]=(r[13]^this._length[0])>>>0,r[14]=(r[14]^this._length[1])>>>0,r[15]=(r[15]^this._length[1])>>>0),n=0;n<14;++n)vh(r,i,n,0,4,8,12,0),vh(r,i,n,1,5,9,13,2),vh(r,i,n,2,6,10,14,4),vh(r,i,n,3,7,11,15,6),vh(r,i,n,0,5,10,15,8),vh(r,i,n,1,6,11,12,10),vh(r,i,n,2,7,8,13,12),vh(r,i,n,3,4,9,14,14);for(n=0;n<16;++n)this._h[n%8]=(this._h[n%8]^r[n])>>>0;for(n=0;n<8;++n)this._h[n]=(this._h[n]^this._s[n%4])>>>0}_padding(){let e=this._length[0]+this._blockOffset*8,r=this._length[1];e>=4294967296&&(e-=4294967296,r+=1);let i=Buffer.alloc(8);i.writeUInt32BE(r,0),i.writeUInt32BE(e,4),this._blockOffset===55?(this._length[0]-=8,this.update(this._oo)):(this._blockOffset<55?(this._blockOffset===0&&(this._nullt=!0),this._length[0]-=(55-this._blockOffset)*8,this.update(Jm.padding.slice(0,55-this._blockOffset))):(this._length[0]-=(64-this._blockOffset)*8,this.update(Jm.padding.slice(0,64-this._blockOffset)),this._length[0]-=55*8,this.update(Jm.padding.slice(1,1+55)),this._nullt=!0),this.update(this._zo),this._length[0]-=8),this._length[0]-=64,this.update(i)}digest(){this._padding();let e=Buffer.alloc(32);for(let r=0;r<8;++r)e.writeUInt32BE(this._h[r],r*4);return e}}});var ide=x((ZIt,rde)=>{var RWe=Mk(),MWe=Buffer.from([0]),CWe=Buffer.from([128]);rde.exports=class extends RWe{constructor(){super(),this._h=[3238371032,914150663,812702999,4144912697,4290775857,1750603025,1694076839,3204075428],this._zo=MWe,this._oo=CWe}digest(){this._padding();let e=Buffer.alloc(28);for(let r=0;r<7;++r)e.writeUInt32BE(this._h[r],r*4);return e}}});var Ck=x((QIt,nde)=>{var Xm=Rk(),IWe=Buffer.from([1]),NWe=Buffer.from([129]);function Mx(t,e,r,i){let n=t[e*2]^t[r*2],a=t[e*2+1]^t[r*2+1];i>=32&&(a=a^n,n=a^n,a=a^n,i-=32),i===0?(t[e*2]=n>>>0,t[e*2+1]=a>>>0):(t[e*2]=(n>>>i|a<<32-i)>>>0,t[e*2+1]=(a>>>i|n<<32-i)>>>0)}function bh(t,e,r,i,n,a,s,o){let c=Xm.sigma,u=Xm.u512,f;f=t[i*2+1]+((e[c[r][o]*2+1]^u[c[r][o+1]*2+1])>>>0)+t[n*2+1],t[i*2]=t[i*2]+((e[c[r][o]*2]^u[c[r][o+1]*2])>>>0)+t[n*2]+~~(f/4294967296)>>>0,t[i*2+1]=f>>>0,Mx(t,s,i,32),f=t[a*2+1]+t[s*2+1],t[a*2]=t[a*2]+t[s*2]+~~(f/4294967296)>>>0,t[a*2+1]=f>>>0,Mx(t,n,a,25),f=t[i*2+1]+((e[c[r][o+1]*2+1]^u[c[r][o]*2+1])>>>0)+t[n*2+1],t[i*2]=t[i*2]+((e[c[r][o+1]*2]^u[c[r][o]*2])>>>0)+t[n*2]+~~(f/4294967296)>>>0,t[i*2+1]=f>>>0,Mx(t,s,i,16),f=t[a*2+1]+t[s*2+1],t[a*2]=t[a*2]+t[s*2]+~~(f/4294967296)>>>0,t[a*2+1]=f>>>0,Mx(t,n,a,11)}nde.exports=class extends Xm{constructor(){super(),this._h=[1779033703,4089235720,3144134277,2227873595,1013904242,4271175723,2773480762,1595750129,1359893119,2917565137,2600822924,725511199,528734635,4215389547,1541459225,327033209],this._s=[0,0,0,0,0,0,0,0],this._block=Buffer.alloc(128),this._blockOffset=0,this._length=[0,0,0,0],this._nullt=!1,this._zo=IWe,this._oo=NWe}_compress(){let e=Xm.u512,r=new Array(32),i=new Array(32),n;for(n=0;n<32;++n)i[n]=this._block.readUInt32BE(n*4);for(n=0;n<16;++n)r[n]=this._h[n]>>>0;for(n=16;n<24;++n)r[n]=(this._s[n-16]^e[n-16])>>>0;for(n=24;n<32;++n)r[n]=e[n-16];for(this._nullt||(r[24]=(r[24]^this._length[1])>>>0,r[25]=(r[25]^this._length[0])>>>0,r[26]=(r[26]^this._length[1])>>>0,r[27]=(r[27]^this._length[0])>>>0,r[28]=(r[28]^this._length[3])>>>0,r[29]=(r[29]^this._length[2])>>>0,r[30]=(r[30]^this._length[3])>>>0,r[31]=(r[31]^this._length[2])>>>0),n=0;n<16;++n)bh(r,i,n,0,4,8,12,0),bh(r,i,n,1,5,9,13,2),bh(r,i,n,2,6,10,14,4),bh(r,i,n,3,7,11,15,6),bh(r,i,n,0,5,10,15,8),bh(r,i,n,1,6,11,12,10),bh(r,i,n,2,7,8,13,12),bh(r,i,n,3,4,9,14,14);for(n=0;n<16;++n)this._h[n%8*2]=(this._h[n%8*2]^r[n*2])>>>0,this._h[n%8*2+1]=(this._h[n%8*2+1]^r[n*2+1])>>>0;for(n=0;n<8;++n)this._h[n*2]=(this._h[n*2]^this._s[n%4*2])>>>0,this._h[n*2+1]=(this._h[n*2+1]^this._s[n%4*2+1])>>>0}_padding(){let e=this._length.slice();e[0]+=this._blockOffset*8,this._lengthCarry(e);let r=Buffer.alloc(16);for(let i=0;i<4;++i)r.writeUInt32BE(e[3-i],i*4);this._blockOffset===111?(this._length[0]-=8,this.update(this._oo)):(this._blockOffset<111?(this._blockOffset===0&&(this._nullt=!0),this._length[0]-=(111-this._blockOffset)*8,this.update(Xm.padding.slice(0,111-this._blockOffset))):(this._length[0]-=(128-this._blockOffset)*8,this.update(Xm.padding.slice(0,128-this._blockOffset)),this._length[0]-=111*8,this.update(Xm.padding.slice(1,1+111)),this._nullt=!0),this.update(this._zo),this._length[0]-=8),this._length[0]-=128,this.update(r)}digest(){this._padding();let e=Buffer.alloc(64);for(let r=0;r<16;++r)e.writeUInt32BE(this._h[r],r*4);return e}}});var sde=x((eNt,ade)=>{var kWe=Ck(),BWe=Buffer.from([0]),FWe=Buffer.from([128]);ade.exports=class extends kWe{constructor(){super(),this._h=[3418070365,3238371032,1654270250,914150663,2438529370,812702999,355462360,4144912697,1731405415,4290775857,2394180231,1750603025,3675008525,1694076839,1203062813,3204075428],this._zo=BWe,this._oo=FWe}digest(){this._padding();let e=Buffer.alloc(48);for(let r=0;r<12;++r)e.writeUInt32BE(this._h[r],r*4);return e}}});var ude=x((tNt,ode)=>{ode.exports={Blake224:ide(),Blake256:Mk(),Blake384:sde(),Blake512:Ck()}});var dde=x((rNt,cde)=>{cde.exports=Ok()(ude())});var lde=x((iNt,Ik)=>{try{Ik.exports=Yce()}catch{Ik.exports=dde()}});var Nk=x((nNt,fde)=>{fde.exports=require("crypto").createHmac});var ju=x(va=>{"use strict";Object.defineProperty(va,"__esModule",{value:!0});va.hmacSHA512=va.hash256=va.hash160blake256=va.hash160=va.blake256=va.sha256=va.sha1=va.ripemd160=void 0;var DWe=lde(),Cx=h3(),qWe=Nk();function kk(t){try{return Cx("rmd160").update(t).digest()}catch{return Cx("ripemd160").update(t).digest()}}va.ripemd160=kk;function LWe(t){return Cx("sha1").update(t).digest()}va.sha1=LWe;function Ix(t){return Cx("sha256").update(t).digest()}va.sha256=Ix;function pde(t){return DWe("blake256").update(t).digest()}va.blake256=pde;function UWe(t){return kk(Ix(t))}va.hash160=UWe;function jWe(t){return kk(pde(t))}va.hash160blake256=jWe;function VWe(t){return Ix(Ix(t))}va.hash256=VWe;function HWe(t,e){return qWe("sha512",t).update(e).digest()}va.hmacSHA512=HWe});var Hf=x(ba=>{"use strict";Object.defineProperty(ba,"__esModule",{value:!0});ba.encodeAddress=ba.decodeAddress=ba.decode=ba.encode=ba.encodeBlake256=ba.decodeBlake256=ba.decodeBlake256Key=ba.decodeBlake=void 0;var _h=An(),Bk=Jue(),Fk=rk(),Dk=m3(),Nx=ju();function qk(t){let e=t.slice(-4),r=t.slice(0,-4),i=(0,Nx.blake256)((0,Nx.blake256)(r)).slice(0,4);if(e[0]^i[0]|e[1]^i[1]|e[2]^i[2]|e[3]^i[3])throw new Error("invalid checksum");return r}ba.decodeBlake=qk;function zWe(t){let e=Fk.decode(t),r=Buffer.from(e);return qk(r)}ba.decodeBlake256Key=zWe;function hde(t){let e=Fk.decode(t),r=Buffer.from(e);if(r.length!==26)throw new Error(`${t} invalid address length`);let i;try{i=qk(r)}catch(n){throw n instanceof Error?new Error(`${t} ${n.message}`):new Error(`${t} ${n}`)}return i}ba.decodeBlake256=hde;function mde(t){let e=(0,Nx.blake256)((0,Nx.blake256)(t)).slice(0,4);return Fk.encode(Buffer.concat([t,e]))}ba.encodeBlake256=mde;function gde(t,e=_h.bitcoin){return(0,_h.isNetworkType)("decred",e)?mde(t):Dk.encode(t)}ba.encode=gde;function yde(t,e=_h.bitcoin){return(0,_h.isNetworkType)("decred",e)?hde(t):Dk.decode(t)}ba.decode=yde;function GWe(t,e=_h.bitcoin){let r;if((0,_h.isNetworkType)("bitcoinCash",e)){if(!Bk.isCashAddress(t))throw Error(`${t} is not a cash address`);r=Dk.decode(Bk.toLegacyAddress(t))}else r=yde(t,e);if(r.length<21)throw new TypeError(`${t} is too short`);if(r.length>22)throw new TypeError(`${t} is too long`);let i=r.length===22,n=i?2:1,a=i?r.readUInt16BE(0):r[0],s=r.slice(n);return{version:a,hash:s}}ba.decodeAddress=GWe;function JWe(t,e,r=_h.bitcoin){let i=e>255,n=i?22:21,a=i?2:1,s=Buffer.allocUnsafe(n);i?s.writeUInt16BE(e,0):s.writeUInt8(e,0),t.copy(s,a);let o=gde(s,r);return(0,_h.isNetworkType)("bitcoinCash",r)?Bk.toCashAddress(o):o}ba.encodeAddress=JWe});var Lk=x((oNt,vde)=>{var XWe=Zy().Buffer;function KWe(t){if(t.length<8||t.length>72||t[0]!==48||t[1]!==t.length-2||t[2]!==2)return!1;var e=t[3];if(e===0||5+e>=t.length||t[4+e]!==2)return!1;var r=t[5+e];return!(r===0||6+e+r!==t.length||t[4]&128||e>1&&t[4]===0&&!(t[5]&128)||t[e+6]&128||r>1&&t[e+6]===0&&!(t[e+7]&128))}function WWe(t){if(t.length<8)throw new Error("DER sequence length is too short");if(t.length>72)throw new Error("DER sequence length is too long");if(t[0]!==48)throw new Error("Expected DER sequence");if(t[1]!==t.length-2)throw new Error("DER sequence length is invalid");if(t[2]!==2)throw new Error("Expected DER integer");var e=t[3];if(e===0)throw new Error("R length is zero");if(5+e>=t.length)throw new Error("R length is too long");if(t[4+e]!==2)throw new Error("Expected DER integer (2)");var r=t[5+e];if(r===0)throw new Error("S length is zero");if(6+e+r!==t.length)throw new Error("S length is invalid");if(t[4]&128)throw new Error("R value is negative");if(e>1&&t[4]===0&&!(t[5]&128))throw new Error("R value excessively padded");if(t[e+6]&128)throw new Error("S value is negative");if(r>1&&t[e+6]===0&&!(t[e+7]&128))throw new Error("S value excessively padded");return{r:t.slice(4,4+e),s:t.slice(6+e)}}function ZWe(t,e){var r=t.length,i=e.length;if(r===0)throw new Error("R length is zero");if(i===0)throw new Error("S length is zero");if(r>33)throw new Error("R length is too long");if(i>33)throw new Error("S length is too long");if(t[0]&128)throw new Error("R value is negative");if(e[0]&128)throw new Error("S value is negative");if(r>1&&t[0]===0&&!(t[1]&128))throw new Error("R value excessively padded");if(i>1&&e[0]===0&&!(e[1]&128))throw new Error("S value excessively padded");var n=XWe.allocUnsafe(6+r+i);return n[0]=48,n[1]=n.length-2,n[2]=2,n[3]=t.length,t.copy(n,4),n[4+r]=2,n[5+r]=e.length,e.copy(n,6+r),n}vde.exports={check:KWe,decode:WWe,encode:ZWe}});var Uk=x((uNt,$We)=>{$We.exports={OP_FALSE:0,OP_0:0,OP_PUSHDATA1:76,OP_PUSHDATA2:77,OP_PUSHDATA4:78,OP_1NEGATE:79,OP_RESERVED:80,OP_TRUE:81,OP_1:81,OP_2:82,OP_3:83,OP_4:84,OP_5:85,OP_6:86,OP_7:87,OP_8:88,OP_9:89,OP_10:90,OP_11:91,OP_12:92,OP_13:93,OP_14:94,OP_15:95,OP_16:96,OP_NOP:97,OP_VER:98,OP_IF:99,OP_NOTIF:100,OP_VERIF:101,OP_VERNOTIF:102,OP_ELSE:103,OP_ENDIF:104,OP_VERIFY:105,OP_RETURN:106,OP_TOALTSTACK:107,OP_FROMALTSTACK:108,OP_2DROP:109,OP_2DUP:110,OP_3DUP:111,OP_2OVER:112,OP_2ROT:113,OP_2SWAP:114,OP_IFDUP:115,OP_DEPTH:116,OP_DROP:117,OP_DUP:118,OP_NIP:119,OP_OVER:120,OP_PICK:121,OP_ROLL:122,OP_ROT:123,OP_SWAP:124,OP_TUCK:125,OP_CAT:126,OP_SUBSTR:127,OP_LEFT:128,OP_RIGHT:129,OP_SIZE:130,OP_INVERT:131,OP_AND:132,OP_OR:133,OP_XOR:134,OP_EQUAL:135,OP_EQUALVERIFY:136,OP_RESERVED1:137,OP_RESERVED2:138,OP_1ADD:139,OP_1SUB:140,OP_2MUL:141,OP_2DIV:142,OP_NEGATE:143,OP_ABS:144,OP_NOT:145,OP_0NOTEQUAL:146,OP_ADD:147,OP_SUB:148,OP_MUL:149,OP_DIV:150,OP_MOD:151,OP_LSHIFT:152,OP_RSHIFT:153,OP_BOOLAND:154,OP_BOOLOR:155,OP_NUMEQUAL:156,OP_NUMEQUALVERIFY:157,OP_NUMNOTEQUAL:158,OP_LESSTHAN:159,OP_GREATERTHAN:160,OP_LESSTHANOREQUAL:161,OP_GREATERTHANOREQUAL:162,OP_MIN:163,OP_MAX:164,OP_WITHIN:165,OP_RIPEMD160:166,OP_SHA1:167,OP_SHA256:168,OP_HASH160:169,OP_HASH256:170,OP_CODESEPARATOR:171,OP_CHECKSIG:172,OP_CHECKSIGVERIFY:173,OP_CHECKMULTISIG:174,OP_CHECKMULTISIGVERIFY:175,OP_NOP1:176,OP_NOP2:177,OP_CHECKLOCKTIMEVERIFY:177,OP_NOP3:178,OP_CHECKSEQUENCEVERIFY:178,OP_NOP4:179,OP_NOP5:180,OP_NOP6:181,OP_NOP7:182,OP_NOP8:183,OP_NOP9:184,OP_NOP10:185,OP_PUBKEYHASH:253,OP_PUBKEY:254,OP_INVALIDOPCODE:255}});var jk=x((cNt,_de)=>{var wh=Uk();function bde(t){return tt.length)return null;i=t.readUInt8(e+1),n=2}else if(r===wh.OP_PUSHDATA2){if(e+3>t.length)return null;i=t.readUInt16LE(e+1),n=3}else{if(e+5>t.length)return null;if(r!==wh.OP_PUSHDATA4)throw new Error("Unexpected opcode");i=t.readUInt32LE(e+1),n=5}return{opcode:r,number:i,size:n}}_de.exports={encodingLength:bde,encode:QWe,decode:YWe}});var xde=x((dNt,wde)=>{var kx=require("path").sep||"/";wde.exports=eZe;function eZe(t){if(typeof t!="string"||t.length<=7||t.substring(0,7)!="file://")throw new TypeError("must pass in a file:// URI to convert to a file path");var e=decodeURI(t.substring(7)),r=e.indexOf("/"),i=e.substring(0,r),n=e.substring(r+1);return i=="localhost"&&(i=""),i&&(i=kx+kx+i),n=n.replace(/^(.+)\|/,"$1:"),kx=="\\"&&(n=n.replace(/\//g,"\\")),/^.+\:/.test(n)||(n=kx+n),i+n}});var Ade=x((av,Tde)=>{var Vk=require("fs"),Fx=require("path"),tZe=xde(),Bx=Fx.join,rZe=Fx.dirname,Sde=Vk.accessSync&&function(t){try{Vk.accessSync(t)}catch{return!1}return!0}||Vk.existsSync||Fx.existsSync,Ede={arrow:process.env.NODE_BINDINGS_ARROW||" \u2192 ",compiled:process.env.NODE_BINDINGS_COMPILED_DIR||"compiled",platform:process.platform,arch:process.arch,nodePreGyp:"node-v"+process.versions.modules+"-"+process.platform+"-"+process.arch,version:process.versions.node,bindings:"bindings.node",try:[["module_root","build","bindings"],["module_root","build","Debug","bindings"],["module_root","build","Release","bindings"],["module_root","out","Debug","bindings"],["module_root","Debug","bindings"],["module_root","out","Release","bindings"],["module_root","Release","bindings"],["module_root","build","default","bindings"],["module_root","compiled","version","platform","arch","bindings"],["module_root","addon-build","release","install-root","bindings"],["module_root","addon-build","debug","install-root","bindings"],["module_root","addon-build","default","install-root","bindings"],["module_root","lib","binding","nodePreGyp","bindings"]]};function iZe(t){typeof t=="string"?t={bindings:t}:t||(t={}),Object.keys(Ede).map(function(c){c in t||(t[c]=Ede[c])}),t.module_root||(t.module_root=av.getRoot(av.getFileName())),Fx.extname(t.bindings)!=".node"&&(t.bindings+=".node");for(var e=typeof __webpack_require__=="function"?__non_webpack_require__:require,r=[],i=0,n=t.try.length,a,s,o;i{"use strict";var Dx=Ade()("secp256k1");delete Dx.path;for(let t in Dx)t.indexOf("is")===0&&(Dx[t].toJSON=function(){return t});Pde.exports=Dx});var Mde=x((Rde,Hk)=>{(function(t,e){"use strict";function r(R,g){if(!R)throw new Error(g||"Assertion failed")}function i(R,g){R.super_=g;var v=function(){};v.prototype=g.prototype,R.prototype=new v,R.prototype.constructor=R}function n(R,g,v){if(n.isBN(R))return R;this.negative=0,this.words=null,this.length=0,this.red=null,R!==null&&((g==="le"||g==="be")&&(v=g,g=10),this._init(R||0,g||10,v||"be"))}typeof t=="object"?t.exports=n:e.BN=n,n.BN=n,n.wordSize=26;var a;try{typeof window<"u"&&typeof window.Buffer<"u"?a=window.Buffer:a=require("buffer").Buffer}catch{}n.isBN=function(g){return g instanceof n?!0:g!==null&&typeof g=="object"&&g.constructor.wordSize===n.wordSize&&Array.isArray(g.words)},n.max=function(g,v){return g.cmp(v)>0?g:v},n.min=function(g,v){return g.cmp(v)<0?g:v},n.prototype._init=function(g,v,w){if(typeof g=="number")return this._initNumber(g,v,w);if(typeof g=="object")return this._initArray(g,v,w);v==="hex"&&(v=16),r(v===(v|0)&&v>=2&&v<=36),g=g.toString().replace(/\s+/g,"");var y=0;g[0]==="-"&&(y++,this.negative=1),y=0;y-=3)P=g[y]|g[y-1]<<8|g[y-2]<<16,this.words[_]|=P<>>26-M&67108863,M+=24,M>=26&&(M-=26,_++);else if(w==="le")for(y=0,_=0;y>>26-M&67108863,M+=24,M>=26&&(M-=26,_++);return this.strip()};function s(R,g){var v=R.charCodeAt(g);return v>=65&&v<=70?v-55:v>=97&&v<=102?v-87:v-48&15}function o(R,g,v){var w=s(R,v);return v-1>=g&&(w|=s(R,v-1)<<4),w}n.prototype._parseHex=function(g,v,w){this.length=Math.ceil((g.length-v)/6),this.words=new Array(this.length);for(var y=0;y=v;y-=2)M=o(g,v,y)<<_,this.words[P]|=M&67108863,_>=18?(_-=18,P+=1,this.words[P]|=M>>>26):_+=8;else{var E=g.length-v;for(y=E%2===0?v+1:v;y=18?(_-=18,P+=1,this.words[P]|=M>>>26):_+=8}this.strip()};function c(R,g,v,w){for(var y=0,_=Math.min(R.length,v),P=g;P<_;P++){var M=R.charCodeAt(P)-48;y*=w,M>=49?y+=M-49+10:M>=17?y+=M-17+10:y+=M}return y}n.prototype._parseBase=function(g,v,w){this.words=[0],this.length=1;for(var y=0,_=1;_<=67108863;_*=v)y++;y--,_=_/v|0;for(var P=g.length-w,M=P%y,E=Math.min(P,P-M)+w,h=0,A=w;A1&&this.words[this.length-1]===0;)this.length--;return this._normSign()},n.prototype._normSign=function(){return this.length===1&&this.words[0]===0&&(this.negative=0),this},n.prototype.inspect=function(){return(this.red?""};var u=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],f=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],d=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];n.prototype.toString=function(g,v){g=g||10,v=v|0||1;var w;if(g===16||g==="hex"){w="";for(var y=0,_=0,P=0;P>>24-y&16777215,_!==0||P!==this.length-1?w=u[6-E.length]+E+w:w=E+w,y+=2,y>=26&&(y-=26,P--)}for(_!==0&&(w=_.toString(16)+w);w.length%v!==0;)w="0"+w;return this.negative!==0&&(w="-"+w),w}if(g===(g|0)&&g>=2&&g<=36){var h=f[g],A=d[g];w="";var F=this.clone();for(F.negative=0;!F.isZero();){var O=F.modn(A).toString(g);F=F.idivn(A),F.isZero()?w=O+w:w=u[h-O.length]+O+w}for(this.isZero()&&(w="0"+w);w.length%v!==0;)w="0"+w;return this.negative!==0&&(w="-"+w),w}r(!1,"Base should be between 2 and 36")},n.prototype.toNumber=function(){var g=this.words[0];return this.length===2?g+=this.words[1]*67108864:this.length===3&&this.words[2]===1?g+=4503599627370496+this.words[1]*67108864:this.length>2&&r(!1,"Number can only safely store up to 53 bits"),this.negative!==0?-g:g},n.prototype.toJSON=function(){return this.toString(16)},n.prototype.toBuffer=function(g,v){return r(typeof a<"u"),this.toArrayLike(a,g,v)},n.prototype.toArray=function(g,v){return this.toArrayLike(Array,g,v)},n.prototype.toArrayLike=function(g,v,w){var y=this.byteLength(),_=w||Math.max(1,y);r(y<=_,"byte array longer than desired length"),r(_>0,"Requested array length <= 0"),this.strip();var P=v==="le",M=new g(_),E,h,A=this.clone();if(P){for(h=0;!A.isZero();h++)E=A.andln(255),A.iushrn(8),M[h]=E;for(;h<_;h++)M[h]=0}else{for(h=0;h<_-y;h++)M[h]=0;for(h=0;!A.isZero();h++)E=A.andln(255),A.iushrn(8),M[_-h-1]=E}return M},Math.clz32?n.prototype._countBits=function(g){return 32-Math.clz32(g)}:n.prototype._countBits=function(g){var v=g,w=0;return v>=4096&&(w+=13,v>>>=13),v>=64&&(w+=7,v>>>=7),v>=8&&(w+=4,v>>>=4),v>=2&&(w+=2,v>>>=2),w+v},n.prototype._zeroBits=function(g){if(g===0)return 26;var v=g,w=0;return(v&8191)===0&&(w+=13,v>>>=13),(v&127)===0&&(w+=7,v>>>=7),(v&15)===0&&(w+=4,v>>>=4),(v&3)===0&&(w+=2,v>>>=2),(v&1)===0&&w++,w},n.prototype.bitLength=function(){var g=this.words[this.length-1],v=this._countBits(g);return(this.length-1)*26+v};function p(R){for(var g=new Array(R.bitLength()),v=0;v>>y}return g}n.prototype.zeroBits=function(){if(this.isZero())return 0;for(var g=0,v=0;vg.length?this.clone().ior(g):g.clone().ior(this)},n.prototype.uor=function(g){return this.length>g.length?this.clone().iuor(g):g.clone().iuor(this)},n.prototype.iuand=function(g){var v;this.length>g.length?v=g:v=this;for(var w=0;wg.length?this.clone().iand(g):g.clone().iand(this)},n.prototype.uand=function(g){return this.length>g.length?this.clone().iuand(g):g.clone().iuand(this)},n.prototype.iuxor=function(g){var v,w;this.length>g.length?(v=this,w=g):(v=g,w=this);for(var y=0;yg.length?this.clone().ixor(g):g.clone().ixor(this)},n.prototype.uxor=function(g){return this.length>g.length?this.clone().iuxor(g):g.clone().iuxor(this)},n.prototype.inotn=function(g){r(typeof g=="number"&&g>=0);var v=Math.ceil(g/26)|0,w=g%26;this._expand(v),w>0&&v--;for(var y=0;y0&&(this.words[y]=~this.words[y]&67108863>>26-w),this.strip()},n.prototype.notn=function(g){return this.clone().inotn(g)},n.prototype.setn=function(g,v){r(typeof g=="number"&&g>=0);var w=g/26|0,y=g%26;return this._expand(w+1),v?this.words[w]=this.words[w]|1<g.length?(w=this,y=g):(w=g,y=this);for(var _=0,P=0;P>>26;for(;_!==0&&P>>26;if(this.length=w.length,_!==0)this.words[this.length]=_,this.length++;else if(w!==this)for(;Pg.length?this.clone().iadd(g):g.clone().iadd(this)},n.prototype.isub=function(g){if(g.negative!==0){g.negative=0;var v=this.iadd(g);return g.negative=1,v._normSign()}else if(this.negative!==0)return this.negative=0,this.iadd(g),this.negative=1,this._normSign();var w=this.cmp(g);if(w===0)return this.negative=0,this.length=1,this.words[0]=0,this;var y,_;w>0?(y=this,_=g):(y=g,_=this);for(var P=0,M=0;M<_.length;M++)v=(y.words[M]|0)-(_.words[M]|0)+P,P=v>>26,this.words[M]=v&67108863;for(;P!==0&&M>26,this.words[M]=v&67108863;if(P===0&&M>>26,F=E&67108863,O=Math.min(h,g.length-1),N=Math.max(0,h-R.length+1);N<=O;N++){var xe=h-N|0;y=R.words[xe]|0,_=g.words[N]|0,P=y*_+F,A+=P/67108864|0,F=P&67108863}v.words[h]=F|0,E=A|0}return E!==0?v.words[h]=E|0:v.length--,v.strip()}var T=function(g,v,w){var y=g.words,_=v.words,P=w.words,M=0,E,h,A,F=y[0]|0,O=F&8191,N=F>>>13,xe=y[1]|0,q=xe&8191,fe=xe>>>13,Te=y[2]|0,_e=Te&8191,H=Te>>>13,Y=y[3]|0,Q=Y&8191,se=Y>>>13,Se=y[4]|0,ue=Se&8191,he=Se>>>13,Oe=y[5]|0,ye=Oe&8191,we=Oe>>>13,Ne=y[6]|0,Ae=Ne&8191,je=Ne>>>13,j=y[7]|0,W=j&8191,C=j>>>13,D=y[8]|0,G=D&8191,X=D>>>13,le=y[9]|0,ie=le&8191,de=le>>>13,Be=_[0]|0,Pe=Be&8191,De=Be>>>13,et=_[1]|0,Le=et&8191,Ve=et>>>13,Mr=_[2]|0,rt=Mr&8191,at=Mr>>>13,Ki=_[3]|0,ft=Ki&8191,pt=Ki>>>13,Aa=_[4]|0,ht=Aa&8191,dt=Aa>>>13,Pa=_[5]|0,mt=Pa&8191,gt=Pa>>>13,jn=_[6]|0,yt=jn&8191,ct=jn>>>13,Oa=_[7]|0,vt=Oa&8191,bt=Oa>>>13,Ra=_[8]|0,_t=Ra&8191,wt=Ra>>>13,Ma=_[9]|0,xt=Ma&8191,lt=Ma>>>13;w.negative=g.negative^v.negative,w.length=19,E=Math.imul(O,Pe),h=Math.imul(O,De),h=h+Math.imul(N,Pe)|0,A=Math.imul(N,De);var k=(M+E|0)+((h&8191)<<13)|0;M=(A+(h>>>13)|0)+(k>>>26)|0,k&=67108863,E=Math.imul(q,Pe),h=Math.imul(q,De),h=h+Math.imul(fe,Pe)|0,A=Math.imul(fe,De),E=E+Math.imul(O,Le)|0,h=h+Math.imul(O,Ve)|0,h=h+Math.imul(N,Le)|0,A=A+Math.imul(N,Ve)|0;var V=(M+E|0)+((h&8191)<<13)|0;M=(A+(h>>>13)|0)+(V>>>26)|0,V&=67108863,E=Math.imul(_e,Pe),h=Math.imul(_e,De),h=h+Math.imul(H,Pe)|0,A=Math.imul(H,De),E=E+Math.imul(q,Le)|0,h=h+Math.imul(q,Ve)|0,h=h+Math.imul(fe,Le)|0,A=A+Math.imul(fe,Ve)|0,E=E+Math.imul(O,rt)|0,h=h+Math.imul(O,at)|0,h=h+Math.imul(N,rt)|0,A=A+Math.imul(N,at)|0;var z=(M+E|0)+((h&8191)<<13)|0;M=(A+(h>>>13)|0)+(z>>>26)|0,z&=67108863,E=Math.imul(Q,Pe),h=Math.imul(Q,De),h=h+Math.imul(se,Pe)|0,A=Math.imul(se,De),E=E+Math.imul(_e,Le)|0,h=h+Math.imul(_e,Ve)|0,h=h+Math.imul(H,Le)|0,A=A+Math.imul(H,Ve)|0,E=E+Math.imul(q,rt)|0,h=h+Math.imul(q,at)|0,h=h+Math.imul(fe,rt)|0,A=A+Math.imul(fe,at)|0,E=E+Math.imul(O,ft)|0,h=h+Math.imul(O,pt)|0,h=h+Math.imul(N,ft)|0,A=A+Math.imul(N,pt)|0;var J=(M+E|0)+((h&8191)<<13)|0;M=(A+(h>>>13)|0)+(J>>>26)|0,J&=67108863,E=Math.imul(ue,Pe),h=Math.imul(ue,De),h=h+Math.imul(he,Pe)|0,A=Math.imul(he,De),E=E+Math.imul(Q,Le)|0,h=h+Math.imul(Q,Ve)|0,h=h+Math.imul(se,Le)|0,A=A+Math.imul(se,Ve)|0,E=E+Math.imul(_e,rt)|0,h=h+Math.imul(_e,at)|0,h=h+Math.imul(H,rt)|0,A=A+Math.imul(H,at)|0,E=E+Math.imul(q,ft)|0,h=h+Math.imul(q,pt)|0,h=h+Math.imul(fe,ft)|0,A=A+Math.imul(fe,pt)|0,E=E+Math.imul(O,ht)|0,h=h+Math.imul(O,dt)|0,h=h+Math.imul(N,ht)|0,A=A+Math.imul(N,dt)|0;var Z=(M+E|0)+((h&8191)<<13)|0;M=(A+(h>>>13)|0)+(Z>>>26)|0,Z&=67108863,E=Math.imul(ye,Pe),h=Math.imul(ye,De),h=h+Math.imul(we,Pe)|0,A=Math.imul(we,De),E=E+Math.imul(ue,Le)|0,h=h+Math.imul(ue,Ve)|0,h=h+Math.imul(he,Le)|0,A=A+Math.imul(he,Ve)|0,E=E+Math.imul(Q,rt)|0,h=h+Math.imul(Q,at)|0,h=h+Math.imul(se,rt)|0,A=A+Math.imul(se,at)|0,E=E+Math.imul(_e,ft)|0,h=h+Math.imul(_e,pt)|0,h=h+Math.imul(H,ft)|0,A=A+Math.imul(H,pt)|0,E=E+Math.imul(q,ht)|0,h=h+Math.imul(q,dt)|0,h=h+Math.imul(fe,ht)|0,A=A+Math.imul(fe,dt)|0,E=E+Math.imul(O,mt)|0,h=h+Math.imul(O,gt)|0,h=h+Math.imul(N,mt)|0,A=A+Math.imul(N,gt)|0;var $=(M+E|0)+((h&8191)<<13)|0;M=(A+(h>>>13)|0)+($>>>26)|0,$&=67108863,E=Math.imul(Ae,Pe),h=Math.imul(Ae,De),h=h+Math.imul(je,Pe)|0,A=Math.imul(je,De),E=E+Math.imul(ye,Le)|0,h=h+Math.imul(ye,Ve)|0,h=h+Math.imul(we,Le)|0,A=A+Math.imul(we,Ve)|0,E=E+Math.imul(ue,rt)|0,h=h+Math.imul(ue,at)|0,h=h+Math.imul(he,rt)|0,A=A+Math.imul(he,at)|0,E=E+Math.imul(Q,ft)|0,h=h+Math.imul(Q,pt)|0,h=h+Math.imul(se,ft)|0,A=A+Math.imul(se,pt)|0,E=E+Math.imul(_e,ht)|0,h=h+Math.imul(_e,dt)|0,h=h+Math.imul(H,ht)|0,A=A+Math.imul(H,dt)|0,E=E+Math.imul(q,mt)|0,h=h+Math.imul(q,gt)|0,h=h+Math.imul(fe,mt)|0,A=A+Math.imul(fe,gt)|0,E=E+Math.imul(O,yt)|0,h=h+Math.imul(O,ct)|0,h=h+Math.imul(N,yt)|0,A=A+Math.imul(N,ct)|0;var pe=(M+E|0)+((h&8191)<<13)|0;M=(A+(h>>>13)|0)+(pe>>>26)|0,pe&=67108863,E=Math.imul(W,Pe),h=Math.imul(W,De),h=h+Math.imul(C,Pe)|0,A=Math.imul(C,De),E=E+Math.imul(Ae,Le)|0,h=h+Math.imul(Ae,Ve)|0,h=h+Math.imul(je,Le)|0,A=A+Math.imul(je,Ve)|0,E=E+Math.imul(ye,rt)|0,h=h+Math.imul(ye,at)|0,h=h+Math.imul(we,rt)|0,A=A+Math.imul(we,at)|0,E=E+Math.imul(ue,ft)|0,h=h+Math.imul(ue,pt)|0,h=h+Math.imul(he,ft)|0,A=A+Math.imul(he,pt)|0,E=E+Math.imul(Q,ht)|0,h=h+Math.imul(Q,dt)|0,h=h+Math.imul(se,ht)|0,A=A+Math.imul(se,dt)|0,E=E+Math.imul(_e,mt)|0,h=h+Math.imul(_e,gt)|0,h=h+Math.imul(H,mt)|0,A=A+Math.imul(H,gt)|0,E=E+Math.imul(q,yt)|0,h=h+Math.imul(q,ct)|0,h=h+Math.imul(fe,yt)|0,A=A+Math.imul(fe,ct)|0,E=E+Math.imul(O,vt)|0,h=h+Math.imul(O,bt)|0,h=h+Math.imul(N,vt)|0,A=A+Math.imul(N,bt)|0;var Ee=(M+E|0)+((h&8191)<<13)|0;M=(A+(h>>>13)|0)+(Ee>>>26)|0,Ee&=67108863,E=Math.imul(G,Pe),h=Math.imul(G,De),h=h+Math.imul(X,Pe)|0,A=Math.imul(X,De),E=E+Math.imul(W,Le)|0,h=h+Math.imul(W,Ve)|0,h=h+Math.imul(C,Le)|0,A=A+Math.imul(C,Ve)|0,E=E+Math.imul(Ae,rt)|0,h=h+Math.imul(Ae,at)|0,h=h+Math.imul(je,rt)|0,A=A+Math.imul(je,at)|0,E=E+Math.imul(ye,ft)|0,h=h+Math.imul(ye,pt)|0,h=h+Math.imul(we,ft)|0,A=A+Math.imul(we,pt)|0,E=E+Math.imul(ue,ht)|0,h=h+Math.imul(ue,dt)|0,h=h+Math.imul(he,ht)|0,A=A+Math.imul(he,dt)|0,E=E+Math.imul(Q,mt)|0,h=h+Math.imul(Q,gt)|0,h=h+Math.imul(se,mt)|0,A=A+Math.imul(se,gt)|0,E=E+Math.imul(_e,yt)|0,h=h+Math.imul(_e,ct)|0,h=h+Math.imul(H,yt)|0,A=A+Math.imul(H,ct)|0,E=E+Math.imul(q,vt)|0,h=h+Math.imul(q,bt)|0,h=h+Math.imul(fe,vt)|0,A=A+Math.imul(fe,bt)|0,E=E+Math.imul(O,_t)|0,h=h+Math.imul(O,wt)|0,h=h+Math.imul(N,_t)|0,A=A+Math.imul(N,wt)|0;var Ie=(M+E|0)+((h&8191)<<13)|0;M=(A+(h>>>13)|0)+(Ie>>>26)|0,Ie&=67108863,E=Math.imul(ie,Pe),h=Math.imul(ie,De),h=h+Math.imul(de,Pe)|0,A=Math.imul(de,De),E=E+Math.imul(G,Le)|0,h=h+Math.imul(G,Ve)|0,h=h+Math.imul(X,Le)|0,A=A+Math.imul(X,Ve)|0,E=E+Math.imul(W,rt)|0,h=h+Math.imul(W,at)|0,h=h+Math.imul(C,rt)|0,A=A+Math.imul(C,at)|0,E=E+Math.imul(Ae,ft)|0,h=h+Math.imul(Ae,pt)|0,h=h+Math.imul(je,ft)|0,A=A+Math.imul(je,pt)|0,E=E+Math.imul(ye,ht)|0,h=h+Math.imul(ye,dt)|0,h=h+Math.imul(we,ht)|0,A=A+Math.imul(we,dt)|0,E=E+Math.imul(ue,mt)|0,h=h+Math.imul(ue,gt)|0,h=h+Math.imul(he,mt)|0,A=A+Math.imul(he,gt)|0,E=E+Math.imul(Q,yt)|0,h=h+Math.imul(Q,ct)|0,h=h+Math.imul(se,yt)|0,A=A+Math.imul(se,ct)|0,E=E+Math.imul(_e,vt)|0,h=h+Math.imul(_e,bt)|0,h=h+Math.imul(H,vt)|0,A=A+Math.imul(H,bt)|0,E=E+Math.imul(q,_t)|0,h=h+Math.imul(q,wt)|0,h=h+Math.imul(fe,_t)|0,A=A+Math.imul(fe,wt)|0,E=E+Math.imul(O,xt)|0,h=h+Math.imul(O,lt)|0,h=h+Math.imul(N,xt)|0,A=A+Math.imul(N,lt)|0;var Re=(M+E|0)+((h&8191)<<13)|0;M=(A+(h>>>13)|0)+(Re>>>26)|0,Re&=67108863,E=Math.imul(ie,Le),h=Math.imul(ie,Ve),h=h+Math.imul(de,Le)|0,A=Math.imul(de,Ve),E=E+Math.imul(G,rt)|0,h=h+Math.imul(G,at)|0,h=h+Math.imul(X,rt)|0,A=A+Math.imul(X,at)|0,E=E+Math.imul(W,ft)|0,h=h+Math.imul(W,pt)|0,h=h+Math.imul(C,ft)|0,A=A+Math.imul(C,pt)|0,E=E+Math.imul(Ae,ht)|0,h=h+Math.imul(Ae,dt)|0,h=h+Math.imul(je,ht)|0,A=A+Math.imul(je,dt)|0,E=E+Math.imul(ye,mt)|0,h=h+Math.imul(ye,gt)|0,h=h+Math.imul(we,mt)|0,A=A+Math.imul(we,gt)|0,E=E+Math.imul(ue,yt)|0,h=h+Math.imul(ue,ct)|0,h=h+Math.imul(he,yt)|0,A=A+Math.imul(he,ct)|0,E=E+Math.imul(Q,vt)|0,h=h+Math.imul(Q,bt)|0,h=h+Math.imul(se,vt)|0,A=A+Math.imul(se,bt)|0,E=E+Math.imul(_e,_t)|0,h=h+Math.imul(_e,wt)|0,h=h+Math.imul(H,_t)|0,A=A+Math.imul(H,wt)|0,E=E+Math.imul(q,xt)|0,h=h+Math.imul(q,lt)|0,h=h+Math.imul(fe,xt)|0,A=A+Math.imul(fe,lt)|0;var qe=(M+E|0)+((h&8191)<<13)|0;M=(A+(h>>>13)|0)+(qe>>>26)|0,qe&=67108863,E=Math.imul(ie,rt),h=Math.imul(ie,at),h=h+Math.imul(de,rt)|0,A=Math.imul(de,at),E=E+Math.imul(G,ft)|0,h=h+Math.imul(G,pt)|0,h=h+Math.imul(X,ft)|0,A=A+Math.imul(X,pt)|0,E=E+Math.imul(W,ht)|0,h=h+Math.imul(W,dt)|0,h=h+Math.imul(C,ht)|0,A=A+Math.imul(C,dt)|0,E=E+Math.imul(Ae,mt)|0,h=h+Math.imul(Ae,gt)|0,h=h+Math.imul(je,mt)|0,A=A+Math.imul(je,gt)|0,E=E+Math.imul(ye,yt)|0,h=h+Math.imul(ye,ct)|0,h=h+Math.imul(we,yt)|0,A=A+Math.imul(we,ct)|0,E=E+Math.imul(ue,vt)|0,h=h+Math.imul(ue,bt)|0,h=h+Math.imul(he,vt)|0,A=A+Math.imul(he,bt)|0,E=E+Math.imul(Q,_t)|0,h=h+Math.imul(Q,wt)|0,h=h+Math.imul(se,_t)|0,A=A+Math.imul(se,wt)|0,E=E+Math.imul(_e,xt)|0,h=h+Math.imul(_e,lt)|0,h=h+Math.imul(H,xt)|0,A=A+Math.imul(H,lt)|0;var He=(M+E|0)+((h&8191)<<13)|0;M=(A+(h>>>13)|0)+(He>>>26)|0,He&=67108863,E=Math.imul(ie,ft),h=Math.imul(ie,pt),h=h+Math.imul(de,ft)|0,A=Math.imul(de,pt),E=E+Math.imul(G,ht)|0,h=h+Math.imul(G,dt)|0,h=h+Math.imul(X,ht)|0,A=A+Math.imul(X,dt)|0,E=E+Math.imul(W,mt)|0,h=h+Math.imul(W,gt)|0,h=h+Math.imul(C,mt)|0,A=A+Math.imul(C,gt)|0,E=E+Math.imul(Ae,yt)|0,h=h+Math.imul(Ae,ct)|0,h=h+Math.imul(je,yt)|0,A=A+Math.imul(je,ct)|0,E=E+Math.imul(ye,vt)|0,h=h+Math.imul(ye,bt)|0,h=h+Math.imul(we,vt)|0,A=A+Math.imul(we,bt)|0,E=E+Math.imul(ue,_t)|0,h=h+Math.imul(ue,wt)|0,h=h+Math.imul(he,_t)|0,A=A+Math.imul(he,wt)|0,E=E+Math.imul(Q,xt)|0,h=h+Math.imul(Q,lt)|0,h=h+Math.imul(se,xt)|0,A=A+Math.imul(se,lt)|0;var Xe=(M+E|0)+((h&8191)<<13)|0;M=(A+(h>>>13)|0)+(Xe>>>26)|0,Xe&=67108863,E=Math.imul(ie,ht),h=Math.imul(ie,dt),h=h+Math.imul(de,ht)|0,A=Math.imul(de,dt),E=E+Math.imul(G,mt)|0,h=h+Math.imul(G,gt)|0,h=h+Math.imul(X,mt)|0,A=A+Math.imul(X,gt)|0,E=E+Math.imul(W,yt)|0,h=h+Math.imul(W,ct)|0,h=h+Math.imul(C,yt)|0,A=A+Math.imul(C,ct)|0,E=E+Math.imul(Ae,vt)|0,h=h+Math.imul(Ae,bt)|0,h=h+Math.imul(je,vt)|0,A=A+Math.imul(je,bt)|0,E=E+Math.imul(ye,_t)|0,h=h+Math.imul(ye,wt)|0,h=h+Math.imul(we,_t)|0,A=A+Math.imul(we,wt)|0,E=E+Math.imul(ue,xt)|0,h=h+Math.imul(ue,lt)|0,h=h+Math.imul(he,xt)|0,A=A+Math.imul(he,lt)|0;var St=(M+E|0)+((h&8191)<<13)|0;M=(A+(h>>>13)|0)+(St>>>26)|0,St&=67108863,E=Math.imul(ie,mt),h=Math.imul(ie,gt),h=h+Math.imul(de,mt)|0,A=Math.imul(de,gt),E=E+Math.imul(G,yt)|0,h=h+Math.imul(G,ct)|0,h=h+Math.imul(X,yt)|0,A=A+Math.imul(X,ct)|0,E=E+Math.imul(W,vt)|0,h=h+Math.imul(W,bt)|0,h=h+Math.imul(C,vt)|0,A=A+Math.imul(C,bt)|0,E=E+Math.imul(Ae,_t)|0,h=h+Math.imul(Ae,wt)|0,h=h+Math.imul(je,_t)|0,A=A+Math.imul(je,wt)|0,E=E+Math.imul(ye,xt)|0,h=h+Math.imul(ye,lt)|0,h=h+Math.imul(we,xt)|0,A=A+Math.imul(we,lt)|0;var zt=(M+E|0)+((h&8191)<<13)|0;M=(A+(h>>>13)|0)+(zt>>>26)|0,zt&=67108863,E=Math.imul(ie,yt),h=Math.imul(ie,ct),h=h+Math.imul(de,yt)|0,A=Math.imul(de,ct),E=E+Math.imul(G,vt)|0,h=h+Math.imul(G,bt)|0,h=h+Math.imul(X,vt)|0,A=A+Math.imul(X,bt)|0,E=E+Math.imul(W,_t)|0,h=h+Math.imul(W,wt)|0,h=h+Math.imul(C,_t)|0,A=A+Math.imul(C,wt)|0,E=E+Math.imul(Ae,xt)|0,h=h+Math.imul(Ae,lt)|0,h=h+Math.imul(je,xt)|0,A=A+Math.imul(je,lt)|0;var Ct=(M+E|0)+((h&8191)<<13)|0;M=(A+(h>>>13)|0)+(Ct>>>26)|0,Ct&=67108863,E=Math.imul(ie,vt),h=Math.imul(ie,bt),h=h+Math.imul(de,vt)|0,A=Math.imul(de,bt),E=E+Math.imul(G,_t)|0,h=h+Math.imul(G,wt)|0,h=h+Math.imul(X,_t)|0,A=A+Math.imul(X,wt)|0,E=E+Math.imul(W,xt)|0,h=h+Math.imul(W,lt)|0,h=h+Math.imul(C,xt)|0,A=A+Math.imul(C,lt)|0;var ii=(M+E|0)+((h&8191)<<13)|0;M=(A+(h>>>13)|0)+(ii>>>26)|0,ii&=67108863,E=Math.imul(ie,_t),h=Math.imul(ie,wt),h=h+Math.imul(de,_t)|0,A=Math.imul(de,wt),E=E+Math.imul(G,xt)|0,h=h+Math.imul(G,lt)|0,h=h+Math.imul(X,xt)|0,A=A+Math.imul(X,lt)|0;var xr=(M+E|0)+((h&8191)<<13)|0;M=(A+(h>>>13)|0)+(xr>>>26)|0,xr&=67108863,E=Math.imul(ie,xt),h=Math.imul(ie,lt),h=h+Math.imul(de,xt)|0,A=Math.imul(de,lt);var Ni=(M+E|0)+((h&8191)<<13)|0;return M=(A+(h>>>13)|0)+(Ni>>>26)|0,Ni&=67108863,P[0]=k,P[1]=V,P[2]=z,P[3]=J,P[4]=Z,P[5]=$,P[6]=pe,P[7]=Ee,P[8]=Ie,P[9]=Re,P[10]=qe,P[11]=He,P[12]=Xe,P[13]=St,P[14]=zt,P[15]=Ct,P[16]=ii,P[17]=xr,P[18]=Ni,M!==0&&(P[19]=M,w.length++),w};Math.imul||(T=b);function I(R,g,v){v.negative=g.negative^R.negative,v.length=R.length+g.length;for(var w=0,y=0,_=0;_>>26)|0,y+=P>>>26,P&=67108863}v.words[_]=M,w=P,P=y}return w!==0?v.words[_]=w:v.length--,v.strip()}function L(R,g,v){var w=new U;return w.mulp(R,g,v)}n.prototype.mulTo=function(g,v){var w,y=this.length+g.length;return this.length===10&&g.length===10?w=T(this,g,v):y<63?w=b(this,g,v):y<1024?w=I(this,g,v):w=L(this,g,v),w};function U(R,g){this.x=R,this.y=g}U.prototype.makeRBT=function(g){for(var v=new Array(g),w=n.prototype._countBits(g)-1,y=0;y>=1;return y},U.prototype.permute=function(g,v,w,y,_,P){for(var M=0;M>>1)_++;return 1<<_+1+y},U.prototype.conjugate=function(g,v,w){if(!(w<=1))for(var y=0;y>>13,w[2*P+1]=_&8191,_=_>>>13;for(P=2*v;P>=26,v+=y/67108864|0,v+=_>>>26,this.words[w]=_&67108863}return v!==0&&(this.words[w]=v,this.length++),this},n.prototype.muln=function(g){return this.clone().imuln(g)},n.prototype.sqr=function(){return this.mul(this)},n.prototype.isqr=function(){return this.imul(this.clone())},n.prototype.pow=function(g){var v=p(g);if(v.length===0)return new n(1);for(var w=this,y=0;y=0);var v=g%26,w=(g-v)/26,y=67108863>>>26-v<<26-v,_;if(v!==0){var P=0;for(_=0;_>>26-v}P&&(this.words[_]=P,this.length++)}if(w!==0){for(_=this.length-1;_>=0;_--)this.words[_+w]=this.words[_];for(_=0;_=0);var y;v?y=(v-v%26)/26:y=0;var _=g%26,P=Math.min((g-_)/26,this.length),M=67108863^67108863>>>_<<_,E=w;if(y-=P,y=Math.max(0,y),E){for(var h=0;hP)for(this.length-=P,h=0;h=0&&(A!==0||h>=y);h--){var F=this.words[h]|0;this.words[h]=A<<26-_|F>>>_,A=F&M}return E&&A!==0&&(E.words[E.length++]=A),this.length===0&&(this.words[0]=0,this.length=1),this.strip()},n.prototype.ishrn=function(g,v,w){return r(this.negative===0),this.iushrn(g,v,w)},n.prototype.shln=function(g){return this.clone().ishln(g)},n.prototype.ushln=function(g){return this.clone().iushln(g)},n.prototype.shrn=function(g){return this.clone().ishrn(g)},n.prototype.ushrn=function(g){return this.clone().iushrn(g)},n.prototype.testn=function(g){r(typeof g=="number"&&g>=0);var v=g%26,w=(g-v)/26,y=1<=0);var v=g%26,w=(g-v)/26;if(r(this.negative===0,"imaskn works only with positive numbers"),this.length<=w)return this;if(v!==0&&w++,this.length=Math.min(w,this.length),v!==0){var y=67108863^67108863>>>v<=67108864;v++)this.words[v]-=67108864,v===this.length-1?this.words[v+1]=1:this.words[v+1]++;return this.length=Math.max(this.length,v+1),this},n.prototype.isubn=function(g){if(r(typeof g=="number"),r(g<67108864),g<0)return this.iaddn(-g);if(this.negative!==0)return this.negative=0,this.iaddn(g),this.negative=1,this;if(this.words[0]-=g,this.length===1&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var v=0;v>26)-(E/67108864|0),this.words[_+w]=P&67108863}for(;_>26,this.words[_+w]=P&67108863;if(M===0)return this.strip();for(r(M===-1),M=0,_=0;_>26,this.words[_]=P&67108863;return this.negative=1,this.strip()},n.prototype._wordDiv=function(g,v){var w=this.length-g.length,y=this.clone(),_=g,P=_.words[_.length-1]|0,M=this._countBits(P);w=26-M,w!==0&&(_=_.ushln(w),y.iushln(w),P=_.words[_.length-1]|0);var E=y.length-_.length,h;if(v!=="mod"){h=new n(null),h.length=E+1,h.words=new Array(h.length);for(var A=0;A=0;O--){var N=(y.words[_.length+O]|0)*67108864+(y.words[_.length+O-1]|0);for(N=Math.min(N/P|0,67108863),y._ishlnsubmul(_,N,O);y.negative!==0;)N--,y.negative=0,y._ishlnsubmul(_,1,O),y.isZero()||(y.negative^=1);h&&(h.words[O]=N)}return h&&h.strip(),y.strip(),v!=="div"&&w!==0&&y.iushrn(w),{div:h||null,mod:y}},n.prototype.divmod=function(g,v,w){if(r(!g.isZero()),this.isZero())return{div:new n(0),mod:new n(0)};var y,_,P;return this.negative!==0&&g.negative===0?(P=this.neg().divmod(g,v),v!=="mod"&&(y=P.div.neg()),v!=="div"&&(_=P.mod.neg(),w&&_.negative!==0&&_.iadd(g)),{div:y,mod:_}):this.negative===0&&g.negative!==0?(P=this.divmod(g.neg(),v),v!=="mod"&&(y=P.div.neg()),{div:y,mod:P.mod}):(this.negative&g.negative)!==0?(P=this.neg().divmod(g.neg(),v),v!=="div"&&(_=P.mod.neg(),w&&_.negative!==0&&_.isub(g)),{div:P.div,mod:_}):g.length>this.length||this.cmp(g)<0?{div:new n(0),mod:this}:g.length===1?v==="div"?{div:this.divn(g.words[0]),mod:null}:v==="mod"?{div:null,mod:new n(this.modn(g.words[0]))}:{div:this.divn(g.words[0]),mod:new n(this.modn(g.words[0]))}:this._wordDiv(g,v)},n.prototype.div=function(g){return this.divmod(g,"div",!1).div},n.prototype.mod=function(g){return this.divmod(g,"mod",!1).mod},n.prototype.umod=function(g){return this.divmod(g,"mod",!0).mod},n.prototype.divRound=function(g){var v=this.divmod(g);if(v.mod.isZero())return v.div;var w=v.div.negative!==0?v.mod.isub(g):v.mod,y=g.ushrn(1),_=g.andln(1),P=w.cmp(y);return P<0||_===1&&P===0?v.div:v.div.negative!==0?v.div.isubn(1):v.div.iaddn(1)},n.prototype.modn=function(g){r(g<=67108863);for(var v=(1<<26)%g,w=0,y=this.length-1;y>=0;y--)w=(v*w+(this.words[y]|0))%g;return w},n.prototype.idivn=function(g){r(g<=67108863);for(var v=0,w=this.length-1;w>=0;w--){var y=(this.words[w]|0)+v*67108864;this.words[w]=y/g|0,v=y%g}return this.strip()},n.prototype.divn=function(g){return this.clone().idivn(g)},n.prototype.egcd=function(g){r(g.negative===0),r(!g.isZero());var v=this,w=g.clone();v.negative!==0?v=v.umod(g):v=v.clone();for(var y=new n(1),_=new n(0),P=new n(0),M=new n(1),E=0;v.isEven()&&w.isEven();)v.iushrn(1),w.iushrn(1),++E;for(var h=w.clone(),A=v.clone();!v.isZero();){for(var F=0,O=1;(v.words[0]&O)===0&&F<26;++F,O<<=1);if(F>0)for(v.iushrn(F);F-- >0;)(y.isOdd()||_.isOdd())&&(y.iadd(h),_.isub(A)),y.iushrn(1),_.iushrn(1);for(var N=0,xe=1;(w.words[0]&xe)===0&&N<26;++N,xe<<=1);if(N>0)for(w.iushrn(N);N-- >0;)(P.isOdd()||M.isOdd())&&(P.iadd(h),M.isub(A)),P.iushrn(1),M.iushrn(1);v.cmp(w)>=0?(v.isub(w),y.isub(P),_.isub(M)):(w.isub(v),P.isub(y),M.isub(_))}return{a:P,b:M,gcd:w.iushln(E)}},n.prototype._invmp=function(g){r(g.negative===0),r(!g.isZero());var v=this,w=g.clone();v.negative!==0?v=v.umod(g):v=v.clone();for(var y=new n(1),_=new n(0),P=w.clone();v.cmpn(1)>0&&w.cmpn(1)>0;){for(var M=0,E=1;(v.words[0]&E)===0&&M<26;++M,E<<=1);if(M>0)for(v.iushrn(M);M-- >0;)y.isOdd()&&y.iadd(P),y.iushrn(1);for(var h=0,A=1;(w.words[0]&A)===0&&h<26;++h,A<<=1);if(h>0)for(w.iushrn(h);h-- >0;)_.isOdd()&&_.iadd(P),_.iushrn(1);v.cmp(w)>=0?(v.isub(w),y.isub(_)):(w.isub(v),_.isub(y))}var F;return v.cmpn(1)===0?F=y:F=_,F.cmpn(0)<0&&F.iadd(g),F},n.prototype.gcd=function(g){if(this.isZero())return g.abs();if(g.isZero())return this.abs();var v=this.clone(),w=g.clone();v.negative=0,w.negative=0;for(var y=0;v.isEven()&&w.isEven();y++)v.iushrn(1),w.iushrn(1);do{for(;v.isEven();)v.iushrn(1);for(;w.isEven();)w.iushrn(1);var _=v.cmp(w);if(_<0){var P=v;v=w,w=P}else if(_===0||w.cmpn(1)===0)break;v.isub(w)}while(!0);return w.iushln(y)},n.prototype.invm=function(g){return this.egcd(g).a.umod(g)},n.prototype.isEven=function(){return(this.words[0]&1)===0},n.prototype.isOdd=function(){return(this.words[0]&1)===1},n.prototype.andln=function(g){return this.words[0]&g},n.prototype.bincn=function(g){r(typeof g=="number");var v=g%26,w=(g-v)/26,y=1<>>26,M&=67108863,this.words[P]=M}return _!==0&&(this.words[P]=_,this.length++),this},n.prototype.isZero=function(){return this.length===1&&this.words[0]===0},n.prototype.cmpn=function(g){var v=g<0;if(this.negative!==0&&!v)return-1;if(this.negative===0&&v)return 1;this.strip();var w;if(this.length>1)w=1;else{v&&(g=-g),r(g<=67108863,"Number is too big");var y=this.words[0]|0;w=y===g?0:yg.length)return 1;if(this.length=0;w--){var y=this.words[w]|0,_=g.words[w]|0;if(y!==_){y<_?v=-1:y>_&&(v=1);break}}return v},n.prototype.gtn=function(g){return this.cmpn(g)===1},n.prototype.gt=function(g){return this.cmp(g)===1},n.prototype.gten=function(g){return this.cmpn(g)>=0},n.prototype.gte=function(g){return this.cmp(g)>=0},n.prototype.ltn=function(g){return this.cmpn(g)===-1},n.prototype.lt=function(g){return this.cmp(g)===-1},n.prototype.lten=function(g){return this.cmpn(g)<=0},n.prototype.lte=function(g){return this.cmp(g)<=0},n.prototype.eqn=function(g){return this.cmpn(g)===0},n.prototype.eq=function(g){return this.cmp(g)===0},n.red=function(g){return new ne(g)},n.prototype.toRed=function(g){return r(!this.red,"Already a number in reduction context"),r(this.negative===0,"red works only with positives"),g.convertTo(this)._forceRed(g)},n.prototype.fromRed=function(){return r(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},n.prototype._forceRed=function(g){return this.red=g,this},n.prototype.forceRed=function(g){return r(!this.red,"Already a number in reduction context"),this._forceRed(g)},n.prototype.redAdd=function(g){return r(this.red,"redAdd works only with red numbers"),this.red.add(this,g)},n.prototype.redIAdd=function(g){return r(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,g)},n.prototype.redSub=function(g){return r(this.red,"redSub works only with red numbers"),this.red.sub(this,g)},n.prototype.redISub=function(g){return r(this.red,"redISub works only with red numbers"),this.red.isub(this,g)},n.prototype.redShl=function(g){return r(this.red,"redShl works only with red numbers"),this.red.shl(this,g)},n.prototype.redMul=function(g){return r(this.red,"redMul works only with red numbers"),this.red._verify2(this,g),this.red.mul(this,g)},n.prototype.redIMul=function(g){return r(this.red,"redMul works only with red numbers"),this.red._verify2(this,g),this.red.imul(this,g)},n.prototype.redSqr=function(){return r(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},n.prototype.redISqr=function(){return r(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},n.prototype.redSqrt=function(){return r(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},n.prototype.redInvm=function(){return r(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},n.prototype.redNeg=function(){return r(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},n.prototype.redPow=function(g){return r(this.red&&!g.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,g)};var re={k256:null,p224:null,p192:null,p25519:null};function oe(R,g){this.name=R,this.p=new n(g,16),this.n=this.p.bitLength(),this.k=new n(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}oe.prototype._tmp=function(){var g=new n(null);return g.words=new Array(Math.ceil(this.n/13)),g},oe.prototype.ireduce=function(g){var v=g,w;do this.split(v,this.tmp),v=this.imulK(v),v=v.iadd(this.tmp),w=v.bitLength();while(w>this.n);var y=w0?v.isub(this.p):v.strip!==void 0?v.strip():v._strip(),v},oe.prototype.split=function(g,v){g.iushrn(this.n,0,v)},oe.prototype.imulK=function(g){return g.imul(this.k)};function ge(){oe.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}i(ge,oe),ge.prototype.split=function(g,v){for(var w=4194303,y=Math.min(g.length,9),_=0;_>>22,P=M}P>>>=22,g.words[_-10]=P,P===0&&g.length>10?g.length-=10:g.length-=9},ge.prototype.imulK=function(g){g.words[g.length]=0,g.words[g.length+1]=0,g.length+=2;for(var v=0,w=0;w>>=26,g.words[w]=_,v=y}return v!==0&&(g.words[g.length++]=v),g},n._prime=function(g){if(re[g])return re[g];var v;if(g==="k256")v=new ge;else if(g==="p224")v=new be;else if(g==="p192")v=new ce;else if(g==="p25519")v=new me;else throw new Error("Unknown prime "+g);return re[g]=v,v};function ne(R){if(typeof R=="string"){var g=n._prime(R);this.m=g.p,this.prime=g}else r(R.gtn(1),"modulus must be greater than 1"),this.m=R,this.prime=null}ne.prototype._verify1=function(g){r(g.negative===0,"red works only with positives"),r(g.red,"red works only with red numbers")},ne.prototype._verify2=function(g,v){r((g.negative|v.negative)===0,"red works only with positives"),r(g.red&&g.red===v.red,"red works only with red numbers")},ne.prototype.imod=function(g){return this.prime?this.prime.ireduce(g)._forceRed(this):g.umod(this.m)._forceRed(this)},ne.prototype.neg=function(g){return g.isZero()?g.clone():this.m.sub(g)._forceRed(this)},ne.prototype.add=function(g,v){this._verify2(g,v);var w=g.add(v);return w.cmp(this.m)>=0&&w.isub(this.m),w._forceRed(this)},ne.prototype.iadd=function(g,v){this._verify2(g,v);var w=g.iadd(v);return w.cmp(this.m)>=0&&w.isub(this.m),w},ne.prototype.sub=function(g,v){this._verify2(g,v);var w=g.sub(v);return w.cmpn(0)<0&&w.iadd(this.m),w._forceRed(this)},ne.prototype.isub=function(g,v){this._verify2(g,v);var w=g.isub(v);return w.cmpn(0)<0&&w.iadd(this.m),w},ne.prototype.shl=function(g,v){return this._verify1(g),this.imod(g.ushln(v))},ne.prototype.imul=function(g,v){return this._verify2(g,v),this.imod(g.imul(v))},ne.prototype.mul=function(g,v){return this._verify2(g,v),this.imod(g.mul(v))},ne.prototype.isqr=function(g){return this.imul(g,g.clone())},ne.prototype.sqr=function(g){return this.mul(g,g)},ne.prototype.sqrt=function(g){if(g.isZero())return g.clone();var v=this.m.andln(3);if(r(v%2===1),v===3){var w=this.m.add(new n(1)).iushrn(2);return this.pow(g,w)}for(var y=this.m.subn(1),_=0;!y.isZero()&&y.andln(1)===0;)_++,y.iushrn(1);r(!y.isZero());var P=new n(1).toRed(this),M=P.redNeg(),E=this.m.subn(1).iushrn(1),h=this.m.bitLength();for(h=new n(2*h*h).toRed(this);this.pow(h,E).cmp(M)!==0;)h.redIAdd(M);for(var A=this.pow(h,y),F=this.pow(g,y.addn(1).iushrn(1)),O=this.pow(g,y),N=_;O.cmp(P)!==0;){for(var xe=O,q=0;xe.cmp(P)!==0;q++)xe=xe.redSqr();r(q=0;_--){for(var A=v.words[_],F=h-1;F>=0;F--){var O=A>>F&1;if(P!==y[0]&&(P=this.sqr(P)),O===0&&M===0){E=0;continue}M<<=1,M|=O,E++,!(E!==w&&(_!==0||F!==0))&&(P=this.mul(P,y[M]),E=0,M=0)}h=26}return P},ne.prototype.convertTo=function(g){var v=g.umod(this.m);return v===g?v.clone():v},ne.prototype.convertFrom=function(g){var v=g.clone();return v.red=null,v},n.mont=function(g){return new ee(g)};function ee(R){ne.call(this,R),this.shift=this.m.bitLength(),this.shift%26!==0&&(this.shift+=26-this.shift%26),this.r=new n(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}i(ee,ne),ee.prototype.convertTo=function(g){return this.imod(g.ushln(this.shift))},ee.prototype.convertFrom=function(g){var v=this.imod(g.mul(this.rinv));return v.red=null,v},ee.prototype.imul=function(g,v){if(g.isZero()||v.isZero())return g.words[0]=0,g.length=1,g;var w=g.imul(v),y=w.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),_=w.isub(y).iushrn(this.shift),P=_;return _.cmp(this.m)>=0?P=_.isub(this.m):_.cmpn(0)<0&&(P=_.iadd(this.m)),P._forceRed(this)},ee.prototype.mul=function(g,v){if(g.isZero()||v.isZero())return new n(0)._forceRed(this);var w=g.mul(v),y=w.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),_=w.isub(y).iushrn(this.shift),P=_;return _.cmp(this.m)>=0?P=_.isub(this.m):_.cmpn(0)<0&&(P=_.iadd(this.m)),P._forceRed(this)},ee.prototype.invm=function(g){var v=this.imod(g._invmp(this.m).mul(this.r2));return v._forceRed(this)}})(typeof Hk>"u"||Hk,Rde)});var Nde=x((fNt,Ide)=>{var xh=Nk(),nZe=Buffer.alloc(1,1),Cde=Buffer.alloc(1,0);function aZe(t,e,r,i,n){let a=Buffer.alloc(32,0),s=Buffer.alloc(32,1);a=xh("sha256",a).update(s).update(Cde).update(e).update(t).update(n||"").digest(),s=xh("sha256",a).update(s).digest(),a=xh("sha256",a).update(s).update(nZe).update(e).update(t).update(n||"").digest(),s=xh("sha256",a).update(s).digest(),s=xh("sha256",a).update(s).digest();let o=s;for(;!i(o)||!r(o);)a=xh("sha256",a).update(s).update(Cde).digest(),s=xh("sha256",a).update(s).digest(),s=xh("sha256",a).update(s).digest(),o=s;return o}Ide.exports=aZe});var Ude=x((pNt,Lde)=>{var sZe=Mde(),oZe=L4().ec,zk=new oZe("secp256k1"),uZe=Nde(),qx=Buffer.alloc(32,0),Lx=Buffer.from("fffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141","hex"),kde=Buffer.from("fffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f","hex"),Ac=zk.curve.n,Bde=Ac.shrn(1),jx=zk.curve.g,Vx="Expected Private",Km="Expected Point",Hx="Expected Tweak",Fde="Expected Hash",cZe="Expected Signature",dZe="Expected Extra Data (32 bytes)";function A3(t){return Buffer.isBuffer(t)&&t.length===32}function zx(t){return A3(t)?t.compare(Lx)<0:!1}function Sh(t){if(!Buffer.isBuffer(t)||t.length<33)return!1;let e=t[0],r=t.slice(1,33);if(r.compare(qx)===0||r.compare(kde)>=0)return!1;if((e===2||e===3)&&t.length===33){try{Wm(t)}catch{return!1}return!0}let i=t.slice(33);return i.compare(qx)===0||i.compare(kde)>=0?!1:e===4&&t.length===65}function Dde(t){return t[0]!==4}function lZe(t){return Sh(t)?Dde(t):!1}function Eh(t){return A3(t)?t.compare(qx)>0&&t.compare(Lx)<0:!1}function fZe(t){let e=t.slice(0,32),r=t.slice(32,64);return Buffer.isBuffer(t)&&t.length===64&&e.compare(Lx)<0&&r.compare(Lx)<0}function P3(t,e){return t===void 0&&e!==void 0?Dde(e):t===void 0?!0:t}function Do(t){return new sZe(t)}function Ux(t){return t.toArrayLike(Buffer,"be",32)}function Wm(t){return zk.curve.decodePoint(t)}function sv(t,e){return Buffer.from(t._encode(e))}function pZe(t,e,r){if(!Sh(t))throw new TypeError(Km);if(!Sh(e))throw new TypeError(Km);let i=Wm(t),n=Wm(e),a=i.add(n);if(a.isInfinity())return null;let s=P3(r,t);return sv(a,s)}function hZe(t,e,r){if(!Sh(t))throw new TypeError(Km);if(!zx(e))throw new TypeError(Hx);let i=P3(r,t),n=Wm(t);if(e.compare(qx)===0)return sv(n,i);let a=Do(e),s=jx.mul(a),o=n.add(s);return o.isInfinity()?null:sv(o,i)}function mZe(t,e){if(!Sh(t))throw new TypeError(Km);let r=Wm(t);if(r.isInfinity())throw new TypeError(Km);let i=P3(e,t);return sv(r,i)}function gZe(t,e){if(!Eh(t))throw new TypeError(Vx);let r=Do(t),i=jx.mul(r);if(i.isInfinity())return null;let n=P3(e);return sv(i,n)}function yZe(t,e,r){if(!Sh(t))throw new TypeError(Km);if(!zx(e))throw new TypeError(Hx);let i=P3(r,t),n=Wm(t),a=Do(e),s=n.mul(a);return s.isInfinity()?null:sv(s,i)}function vZe(t,e){if(!Eh(t))throw new TypeError(Vx);if(!zx(e))throw new TypeError(Hx);let r=Do(t),i=Do(e),n=Ux(r.add(i).umod(Ac));return Eh(n)?n:null}function bZe(t,e){if(!Eh(t))throw new TypeError(Vx);if(!zx(e))throw new TypeError(Hx);let r=Do(t),i=Do(e),n=Ux(r.sub(i).umod(Ac));return Eh(n)?n:null}function _Ze(t,e){return qde(t,e)}function wZe(t,e,r){return qde(t,e,r)}function qde(t,e,r){if(!A3(t))throw new TypeError(Fde);if(!Eh(e))throw new TypeError(Vx);if(r!==void 0&&!A3(r))throw new TypeError(dZe);let i=Do(e),n=Do(t),a,s;uZe(t,e,function(u){let f=Do(u),d=jx.mul(f);return!(d.isInfinity()||(a=d.x.umod(Ac),a.isZero()===0)||(s=f.invm(Ac).mul(n.add(i.mul(a))).umod(Ac),s.isZero()===0))},Eh,r),s.cmp(Bde)>0&&(s=Ac.sub(s));let c=Buffer.allocUnsafe(64);return Ux(a).copy(c,0),Ux(s).copy(c,32),c}function xZe(t,e,r,i){if(!A3(t))throw new TypeError(Fde);if(!Sh(e))throw new TypeError(Km);if(!fZe(r))throw new TypeError(cZe);let n=Wm(e),a=Do(r.slice(0,32)),s=Do(r.slice(32,64));if(i&&s.cmp(Bde)>0||a.gtn(0)<=0||s.gtn(0)<=0)return!1;let o=Do(t),c=s.invm(Ac),u=o.mul(c).umod(Ac),f=a.mul(c).umod(Ac),d=jx.mulAdd(u,n,f);return d.isInfinity()?!1:d.x.umod(Ac).eq(a)}Lde.exports={isPoint:Sh,isPointCompressed:lZe,isPrivate:Eh,pointAdd:pZe,pointAddScalar:hZe,pointCompress:mZe,pointFromScalar:gZe,pointMultiply:yZe,privateAdd:vZe,privateSub:bZe,sign:_Ze,signWithEntropy:wZe,verify:xZe}});var zf=x((hNt,Gk)=>{"use strict";try{Gk.exports=Ode()}catch{Gk.exports=Ude()}});var jde=x(ov=>{"use strict";Object.defineProperty(ov,"__esModule",{value:!0});ov.encode=ov.decode=void 0;function SZe(t,e=4,r=!0){let{length:i}=t;if(i===0)return 0;if(i>e)throw new TypeError("Script number overflow");if(r&&(t[i-1]&127)===0&&(i<=1||(t[i-2]&128)===0))throw new Error("Non-minimally encoded script number");if(i===5){let a=t.readUInt32LE(0),s=t.readUInt8(4);return s&128?-((s&-129)*4294967296+a):s*4294967296+a}let n=0;for(let a=0;a2147483647?5:t>8388607?4:t>32767?3:t>127?2:t>0?1:0}function TZe(t){let e=Math.abs(t),r=EZe(e),i=Buffer.allocUnsafe(r),n=t<0;for(let a=0;a>=8;return i[r-1]&128?i.writeUInt8(n?128:0,r-1):n&&(i[r-1]|=128),i}ov.encode=TZe});var uv=x(dr=>{"use strict";Object.defineProperty(dr,"__esModule",{value:!0});dr.anyOf=dr.Nil=dr.BufferN=dr.Function=dr.UInt32=dr.UInt16=dr.UInt8=dr.tuple=dr.maybe=dr.Hex=dr.Buffer=dr.String=dr.Boolean=dr.Array=dr.Number=dr.Hash256bit=dr.Hash160bit=dr.Buffer256bit=dr.Satoshi=void 0;var Kn=Tn(),AZe=21*1e14;function PZe(t){return Kn.UInt53(t)&&t<=AZe}dr.Satoshi=PZe;dr.Buffer256bit=Kn.BufferN(32);dr.Hash160bit=Kn.BufferN(20);dr.Hash256bit=Kn.BufferN(32);dr.Number=Kn.Number,dr.Array=Kn.Array,dr.Boolean=Kn.Boolean,dr.String=Kn.String,dr.Buffer=Kn.Buffer,dr.Hex=Kn.Hex,dr.maybe=Kn.maybe,dr.tuple=Kn.tuple,dr.UInt8=Kn.UInt8,dr.UInt16=Kn.UInt16,dr.UInt32=Kn.UInt32,dr.Function=Kn.Function,dr.BufferN=Kn.BufferN,dr.Nil=Kn.Nil,dr.anyOf=Kn.anyOf});var Gde=x(cl=>{"use strict";Object.defineProperty(cl,"__esModule",{value:!0});cl.encode=cl.decode=cl.fromDER=cl.toDER=void 0;var zde=Lk(),OZe=Tn(),Vde=uv(),Hde=Buffer.alloc(1,0);function Jk(t){let e=0;for(;t[e]===0;)++e;return e===t.length?Hde:(t=t.slice(e),t[0]&128?Buffer.concat([Hde,t],1+t.length):t)}cl.toDER=Jk;function Xk(t){t[0]===0&&(t=t.slice(1));let e=Buffer.alloc(32,0),r=Math.max(0,32-t.length);return t.copy(e,r),e}cl.fromDER=Xk;function RZe(t){let e=t.readUInt8(t.length-1),r=e&-129;if(r<=0||r>=4)throw new Error(`Invalid hashType ${e}`);let i=zde.decode(t.slice(0,-1)),n=Xk(i.r),a=Xk(i.s);return{signature:Buffer.concat([n,a],64),hashType:e}}cl.decode=RZe;function MZe(t,e){OZe({signature:Vde.BufferN(64),hashType:Vde.UInt8},{signature:t,hashType:e});let r=e&-129;if(r<=0||r>=4)throw new Error(`Invalid hashType ${e}`);let i=Buffer.allocUnsafe(1);i.writeUInt8(e,0);let n=Jk(t.slice(0,32)),a=Jk(t.slice(32,64));return Buffer.concat([zde.encode(n,a),i])}cl.encode=MZe});var Wk=x(cv=>{"use strict";Object.defineProperty(cv,"__esModule",{value:!0});cv.REVERSE_OPS=cv.OPS=void 0;var CZe=Uk(),Kk=Object.assign({OP_SSTX:186,OP_SSTXCHANGE:189,OP_SSGEN:187,OP_SSRTX:188},CZe||{});cv.OPS=Kk;var Jde=[];cv.REVERSE_OPS=Jde;Object.keys(Kk).forEach(t=>{Jde[Kk[t]]=t})});var ds=x(Ti=>{"use strict";Object.defineProperty(Ti,"__esModule",{value:!0});Ti.OPS=Ti.signature=Ti.number=Ti.isCanonicalScriptSignature=Ti.isDefinedHashType=Ti.isCanonicalPubKey=Ti.toStack=Ti.fromASM=Ti.toASM=Ti.decompile=Ti.compile=Ti.isPushOnly=void 0;var IZe=Lk(),Zk=jk(),O3=Tn(),NZe=zf(),Xde=jde(),kZe=Gde(),qo=Wk(),Cs=uv(),Kde=qo.OPS.OP_RESERVED;function BZe(t){return Cs.Number(t)&&(t===qo.OPS.OP_0||t>=qo.OPS.OP_1&&t<=qo.OPS.OP_16||t===qo.OPS.OP_1NEGATE)}function FZe(t){return Cs.Buffer(t)||BZe(t)}function Wde(t){return Cs.Array(t)&&t.every(FZe)}Ti.isPushOnly=Wde;function Gx(t){if(t.length===0)return qo.OPS.OP_0;if(t.length===1){if(t[0]>=1&&t[0]<=16)return Kde+t[0];if(t[0]===129)return qo.OPS.OP_1NEGATE}}function Zde(t){if(Cs.Buffer(t))return t;O3(Cs.Array,t);let e=t.reduce((n,a)=>Cs.Buffer(a)?a.length===1&&Gx(a)!==void 0?n+1:n+Zk.encodingLength(a.length)+a.length:n+1,0),r=Buffer.allocUnsafe(e),i=0;if(t.forEach(n=>{if(Cs.Buffer(n)){let a=Gx(n);if(a!==void 0){r.writeUInt8(a,i),i+=1;return}i+=Zk.encode(r,n.length,i),n.copy(r,i),i+=n.length}else r.writeUInt8(n,i),i+=1}),i!==r.length)throw new Error("Could not decode chunks");return r}Ti.compile=Zde;function $k(t){if(Cs.Array(t))return t;O3(Cs.Buffer,t);let e=[],r=0;for(;rqo.OPS.OP_0&&i<=qo.OPS.OP_PUSHDATA4){let n=Zk.decode(t,r);if(n===null)return[];if(r+=n.size,r+n.number>t.length)return[];let a=t.slice(r,r+n.number);r+=n.number;let s=Gx(a);s!==void 0?e.push(s):e.push(a)}else e.push(i),r+=1}return e}Ti.decompile=$k;function DZe(t){return Cs.Buffer(t)&&(t=$k(t)),t.map(e=>{if(Cs.Buffer(e)){let r=Gx(e);if(r===void 0)return e.toString("hex");e=r}return qo.REVERSE_OPS[e]}).join(" ")}Ti.toASM=DZe;function qZe(t){return O3(Cs.String,t),Zde(t.split(" ").map(e=>qo.OPS[e]!==void 0?qo.OPS[e]:(O3(Cs.Hex,e),Buffer.from(e,"hex"))))}Ti.fromASM=qZe;function LZe(t){let e=$k(t);return O3(Wde,e),e?.map(r=>Cs.Buffer(r)?r:r===qo.OPS.OP_0?Buffer.allocUnsafe(0):Xde.encode(r-Kde))}Ti.toStack=LZe;function UZe(t){return NZe.isPoint(t)}Ti.isCanonicalPubKey=UZe;function $de(t){let e=t&-129;return e>0&&e<4}Ti.isDefinedHashType=$de;function jZe(t){return!Cs.Buffer(t)||!$de(t[t.length-1])?!1:IZe.check(t.slice(0,-1))}Ti.isCanonicalScriptSignature=jZe;Ti.number=Xde;Ti.signature=kZe;var VZe=Wk();Object.defineProperty(Ti,"OPS",{enumerable:!0,get:function(){return VZe.OPS}})});var Lo=x(dv=>{"use strict";Object.defineProperty(dv,"__esModule",{value:!0});dv.value=dv.prop=void 0;function HZe(t,e,r){Object.defineProperty(t,e,{configurable:!0,enumerable:!0,get(){let i=r.call(this);return this[e]=i,i},set(i){Object.defineProperty(this,e,{configurable:!0,enumerable:!0,value:i,writable:!0})}})}dv.prop=HZe;function zZe(t){let e;return()=>(e!==void 0||(e=t()),e)}dv.value=zZe});var Qk=x(Xx=>{"use strict";Object.defineProperty(Xx,"__esModule",{value:!0});Xx.p2data=void 0;var Gf=Tn(),GZe=An(),Jx=ds(),Qde=Lo(),{OPS:Yde}=Jx;function JZe(t,e){return t.length!==e.length?!1:t.every((r,i)=>r.equals(e[i]))}function XZe(t,e){if(!t.data&&!t.output)throw new TypeError("Not enough data");e=Object.assign({validate:!0},e||{}),Gf({network:Gf.maybe(Gf.Object),output:Gf.maybe(Gf.Buffer),data:Gf.maybe(Gf.arrayOf(Gf.Buffer))},t);let i={name:"embed",network:t.network||GZe.bitcoin};if(Qde.prop(i,"output",()=>{if(!!t.data)return Jx.compile([Yde.OP_RETURN].concat(t.data))}),Qde.prop(i,"data",()=>{if(!!t.output)return Jx.decompile(t.output).slice(1)}),e.validate&&t.output){let n=Jx.decompile(t.output);if(n[0]!==Yde.OP_RETURN)throw new TypeError("Output is invalid");if(!n.slice(1).every(Gf.Buffer))throw new TypeError("Output is invalid");if(t.data&&!JZe(t.data,i.data))throw new TypeError("Data mismatch")}return Object.assign(i,t)}Xx.p2data=XZe});var rle=x(Wx=>{"use strict";Object.defineProperty(Wx,"__esModule",{value:!0});Wx.p2ms=void 0;var ele=zf(),Ha=Tn(),KZe=An(),lv=ds(),Th=Lo(),{OPS:fv}=lv,Kx=fv.OP_RESERVED;function tle(t,e){return t.length!==e.length?!1:t.every((r,i)=>r.equals(e[i]))}function WZe(t,e){if(!t.input&&!t.output&&!(t.pubkeys&&t.m!==void 0)&&!t.signatures)throw new TypeError("Not enough data");e=Object.assign({validate:!0},e||{});function r(c){return lv.isCanonicalScriptSignature(c)||(e.allowIncomplete&&c===fv.OP_0)!==void 0}Ha({network:Ha.maybe(Ha.Object),m:Ha.maybe(Ha.Number),n:Ha.maybe(Ha.Number),output:Ha.maybe(Ha.Buffer),pubkeys:Ha.maybe(Ha.arrayOf(ele.isPoint)),signatures:Ha.maybe(Ha.arrayOf(r)),input:Ha.maybe(Ha.Buffer)},t);let n={network:t.network||KZe.bitcoin},a=[],s=!1;function o(c){s||(s=!0,a=lv.decompile(c),n.m=a[0]-Kx,n.n=a[a.length-2]-Kx,n.pubkeys=a.slice(1,-2))}if(Th.prop(n,"output",()=>{if(!!t.m&&!!n.n&&!!t.pubkeys)return lv.compile([].concat(Kx+t.m,t.pubkeys,Kx+n.n,fv.OP_CHECKMULTISIG))}),Th.prop(n,"m",()=>{if(!!n.output)return o(n.output),n.m}),Th.prop(n,"n",()=>{if(!!n.pubkeys)return n.pubkeys.length}),Th.prop(n,"pubkeys",()=>{if(!!t.output)return o(t.output),n.pubkeys}),Th.prop(n,"signatures",()=>{if(!!t.input)return lv.decompile(t.input).slice(1)}),Th.prop(n,"input",()=>{if(!!t.signatures)return lv.compile([fv.OP_0].concat(t.signatures))}),Th.prop(n,"witness",()=>{if(!!n.input)return[]}),Th.prop(n,"name",()=>{if(!(!n.m||!n.n))return`p2ms(${n.m} of ${n.n})`}),e.validate){if(t.output){if(o(t.output),!Ha.Number(a[0]))throw new TypeError("Output is invalid");if(!Ha.Number(a[a.length-2]))throw new TypeError("Output is invalid");if(a[a.length-1]!==fv.OP_CHECKMULTISIG)throw new TypeError("Output is invalid");if(n.m<=0||n.n>16||n.m>n.n||n.n!==a.length-3)throw new TypeError("Output is invalid");if(!n.pubkeys.every(c=>ele.isPoint(c)))throw new TypeError("Output is invalid");if(t.m!==void 0&&t.m!==n.m)throw new TypeError("m mismatch");if(t.n!==void 0&&t.n!==n.n)throw new TypeError("n mismatch");if(t.pubkeys&&!tle(t.pubkeys,n.pubkeys))throw new TypeError("Pubkeys mismatch")}if(t.pubkeys){if(t.n!==void 0&&t.n!==t.pubkeys.length)throw new TypeError("Pubkey count mismatch");if(n.n=t.pubkeys.length,n.nn.m)throw new TypeError("Too many signatures provided")}if(t.input){if(t.input[0]!==fv.OP_0)throw new TypeError("Input is invalid");if(n.signatures.length===0||!n.signatures.every(r))throw new TypeError("Input has invalid signature(s)");if(t.signatures&&!tle(t.signatures,n.signatures))throw new TypeError("Signature mismatch");if(t.m!==void 0&&t.m!==t.signatures.length)throw new TypeError("Signature count mismatch")}}return Object.assign(n,t)}Wx.p2ms=WZe});var ale=x(Zx=>{"use strict";Object.defineProperty(Zx,"__esModule",{value:!0});Zx.p2pk=void 0;var ile=zf(),Jf=Tn(),ZZe=An(),hv=ds(),pv=Lo(),{OPS:nle}=hv;function $Ze(t,e){if(!t.input&&!t.output&&!t.pubkey&&!t.input&&!t.signature)throw new TypeError("Not enough data");e=Object.assign({validate:!0},e||{}),Jf({network:Jf.maybe(Jf.Object),output:Jf.maybe(Jf.Buffer),pubkey:Jf.maybe(ile.isPoint),signature:Jf.maybe(hv.isCanonicalScriptSignature),input:Jf.maybe(Jf.Buffer)},t);let r=pv.value(()=>hv.decompile(t.input)),n={name:"p2pk",network:t.network||ZZe.bitcoin};if(pv.prop(n,"output",()=>{if(!!t.pubkey)return hv.compile([t.pubkey,nle.OP_CHECKSIG])}),pv.prop(n,"pubkey",()=>{if(!!t.output)return t.output.slice(1,-1)}),pv.prop(n,"signature",()=>{if(!!t.input)return r()[0]}),pv.prop(n,"input",()=>{if(!!t.signature)return hv.compile([t.signature])}),pv.prop(n,"witness",()=>{if(!!n.input)return[]}),e.validate){if(t.output){if(t.output[t.output.length-1]!==nle.OP_CHECKSIG)throw new TypeError("Output is invalid");if(!ile.isPoint(n.pubkey))throw new TypeError("Output pubkey is invalid");if(t.pubkey&&!t.pubkey.equals(n.pubkey))throw new TypeError("Pubkey mismatch")}if(t.signature&&t.input&&!t.input.equals(n.input))throw new TypeError("Signature mismatch");if(t.input){if(r().length!==1)throw new TypeError("Input is invalid");if(!hv.isCanonicalScriptSignature(n.signature))throw new TypeError("Input has invalid signature")}}return Object.assign(n,t)}Zx.p2pk=$Ze});var ule=x($x=>{"use strict";Object.defineProperty($x,"__esModule",{value:!0});$x.p2pkh=void 0;var sle=zf(),Uo=Tn(),ole=Hf(),Yk=ju(),QZe=An(),mv=ds(),Xf=Lo(),{OPS:Ah}=mv;function YZe(t,e){if(!t.address&&!t.hash&&!t.output&&!t.pubkey&&!t.input)throw new TypeError("Not enough data");e=Object.assign({validate:!0},e||{}),Uo({network:Uo.maybe(Uo.Object),address:Uo.maybe(Uo.String),hash:Uo.maybe(Uo.BufferN(20)),output:Uo.maybe(Uo.BufferN(25)),pubkey:Uo.maybe(sle.isPoint),signature:Uo.maybe(mv.isCanonicalScriptSignature),input:Uo.maybe(Uo.Buffer)},t);let r=Xf.value(()=>ole.decodeAddress(t.address,t.network)),i=Xf.value(()=>mv.decompile(t.input)),n=t.network||QZe.bitcoin,a={name:"p2pkh",network:n};if(Xf.prop(a,"address",()=>{if(!!a.hash)return ole.encodeAddress(a.hash,n.pubKeyHash,n)}),Xf.prop(a,"hash",()=>{if(t.output)return t.output.slice(3,23);if(t.address)return r().hash;if(t.pubkey||a.pubkey)return Yk.hash160(t.pubkey||a.pubkey)}),Xf.prop(a,"output",()=>{if(!!a.hash)return mv.compile([Ah.OP_DUP,Ah.OP_HASH160,a.hash,Ah.OP_EQUALVERIFY,Ah.OP_CHECKSIG])}),Xf.prop(a,"pubkey",()=>{if(!!t.input)return i()[1]}),Xf.prop(a,"signature",()=>{if(!!t.input)return i()[0]}),Xf.prop(a,"input",()=>{if(!!t.pubkey&&!!t.signature)return mv.compile([t.signature,t.pubkey])}),Xf.prop(a,"witness",()=>{if(!!a.input)return[]}),e.validate){let s=Buffer.from([]);if(t.address){let{version:o,hash:c}=r();if(o!==n.pubKeyHash)throw new TypeError("Invalid version or Network mismatch");if(c.length!==20)throw new TypeError("Invalid address");s=c}if(t.hash){if(s.length>0&&!s.equals(t.hash))throw new TypeError("Hash mismatch");s=t.hash}if(t.output){if(t.output.length!==25||t.output[0]!==Ah.OP_DUP||t.output[1]!==Ah.OP_HASH160||t.output[2]!==20||t.output[23]!==Ah.OP_EQUALVERIFY||t.output[24]!==Ah.OP_CHECKSIG)throw new TypeError("Output is invalid");let o=t.output.slice(3,23);if(s.length>0&&!s.equals(o))throw new TypeError("Hash mismatch");s=o}if(t.pubkey){let o=Yk.hash160(t.pubkey);if(s.length>0&&!s.equals(o))throw new TypeError("Hash mismatch");s=o}if(t.input){let o=i();if(o.length!==2)throw new TypeError("Input is invalid");if(!mv.isCanonicalScriptSignature(o[0]))throw new TypeError("Input has invalid signature");if(!sle.isPoint(o[1]))throw new TypeError("Input has invalid pubkey");if(t.signature&&!t.signature.equals(o[0]))throw new TypeError("Signature mismatch");if(t.pubkey&&!t.pubkey.equals(o[1]))throw new TypeError("Pubkey mismatch");let c=Yk.hash160(o[1]);if(s.length>0&&!s.equals(c))throw new TypeError("Hash mismatch")}}return Object.assign(a,t)}$x.p2pkh=YZe});var lle=x(Yx=>{"use strict";Object.defineProperty(Yx,"__esModule",{value:!0});Yx.p2sh=void 0;var Li=Tn(),cle=Hf(),dle=ju(),e$e=An(),Kf=ds(),dl=Lo(),{OPS:Qx}=Kf;function t$e(t,e){return t.length!==e.length?!1:t.every((r,i)=>r.equals(e[i]))}function r$e(t,e){if(!t.address&&!t.hash&&!t.output&&!t.redeem&&!t.input)throw new TypeError("Not enough data");e=Object.assign({validate:!0},e||{}),Li({network:Li.maybe(Li.Object),address:Li.maybe(Li.String),hash:Li.maybe(Li.BufferN(20)),output:Li.maybe(Li.BufferN(23)),redeem:Li.maybe({network:Li.maybe(Li.Object),output:Li.maybe(Li.Buffer),input:Li.maybe(Li.Buffer),witness:Li.maybe(Li.arrayOf(Li.Buffer))}),input:Li.maybe(Li.Buffer),witness:Li.maybe(Li.arrayOf(Li.Buffer))},t);let{network:r}=t;r||(r=t.redeem&&t.redeem.network||e$e.bitcoin);let i={network:r},n=dl.value(()=>cle.decodeAddress(t.address,t.network)),a=dl.value(()=>Kf.decompile(t.input)),s=dl.value(()=>{let o=a();return{network:r,output:o[o.length-1],input:Kf.compile(o.slice(0,-1)),witness:t.witness||[]}});if(dl.prop(i,"address",()=>{if(!!i.hash)return cle.encodeAddress(i.hash,r.scriptHash,r)}),dl.prop(i,"hash",()=>{if(t.output)return t.output.slice(2,22);if(t.address)return n().hash;if(i.redeem&&i.redeem.output)return dle.hash160(i.redeem.output)}),dl.prop(i,"output",()=>{if(!!i.hash)return Kf.compile([Qx.OP_HASH160,i.hash,Qx.OP_EQUAL])}),dl.prop(i,"redeem",()=>{if(!!t.input)return s()}),dl.prop(i,"input",()=>{if(!(!t.redeem||!t.redeem.input||!t.redeem.output))return Kf.compile([].concat(Kf.decompile(t.redeem.input),t.redeem.output))}),dl.prop(i,"witness",()=>{if(i.redeem&&i.redeem.witness)return i.redeem.witness;if(i.input)return[]}),dl.prop(i,"name",()=>{let o=["p2sh"];return i.redeem!==void 0&&i.redeem.name!==void 0&&o.push(i.redeem.name),o.join("-")}),e.validate){let o=Buffer.from([]);if(t.address){let{version:u,hash:f}=n();if(u!==r.scriptHash)throw new TypeError("Invalid version or Network mismatch");if(f.length!==20)throw new TypeError("Invalid address");o=f}if(t.hash){if(o.length>0&&!o.equals(t.hash))throw new TypeError("Hash mismatch");o=t.hash}if(t.output){if(t.output.length!==23||t.output[0]!==Qx.OP_HASH160||t.output[1]!==20||t.output[22]!==Qx.OP_EQUAL)throw new TypeError("Output is invalid");let u=t.output.slice(2,22);if(o.length>0&&!o.equals(u))throw new TypeError("Hash mismatch");o=u}let c=u=>{if(u.output){let f=Kf.decompile(u.output);if(!f||f.length<1)throw new TypeError("Redeem.output too short");let d=dle.hash160(u.output);if(o.length>0&&!o.equals(d))throw new TypeError("Hash mismatch");o=d}if(u.input){let f=u.input.length>0,d=u.witness&&u.witness.length>0;if(!f&&!d)throw new TypeError("Empty input");if(f&&d)throw new TypeError("Input and witness provided");if(f){let p=Kf.decompile(u.input);if(!Kf.isPushOnly(p))throw new TypeError("Non push-only scriptSig")}}};if(t.input){let u=a();if(!u||u.length<1)throw new TypeError("Input too short");if(!Buffer.isBuffer(s().output))throw new TypeError("Input is invalid");c(s())}if(t.redeem){if(t.redeem.network&&t.redeem.network!==r)throw new TypeError("Network mismatch");if(t.input){let u=s();if(t.redeem.output&&!t.redeem.output.equals(u.output))throw new TypeError("Redeem.output mismatch");if(t.redeem.input&&!t.redeem.input.equals(u.input))throw new TypeError("Redeem.input mismatch")}c(t.redeem)}if(t.witness&&t.redeem&&t.redeem.witness&&!t$e(t.redeem.witness,t.witness))throw new TypeError("Witness and redeem.witness mismatch")}return Object.assign(i,t)}Yx.p2sh=r$e});var vle=x(rS=>{"use strict";Object.defineProperty(rS,"__esModule",{value:!0});rS.p2tr=void 0;var mle=zf(),Pc=Tn(),eS=d3(),i$e=An(),gle=ju(),yle=ds(),tS=Lo(),{OPS:fle}=yle,n$e=["TapLeaf","TapBranch","TapTweak","KeyAgg list","KeyAgg coefficient"],a$e=n$e.reduce((t,e)=>{let r=gle.sha256(Buffer.from(e));return t[e]=Buffer.concat([r,r]),t},{}),tB=new Uint8Array([2]);function ple(t,e){return gle.sha256(Buffer.concat([a$e[t],e]))}function hle(t,e){let r;e?r=ple("TapTweak",Buffer.concat([t,e])):r=ple("TapTweak",t);let i=mle.pointAddScalar(Buffer.concat([tB,t]),r);return{parity:i[0]===tB[0]?0:1,pubkey:i.slice(1)}}var eB=t=>{let e=t.length===33?1:0;return t.slice(e)};function s$e(t,e){if(!t.address&&!t.pubkey&&!t.output)throw new TypeError("Not enough data");e=Object.assign({validate:!0},e||{});let r=t.network||i$e.bitcoin,i={name:"p2tr",network:r};Pc({network:Pc.maybe(Pc.Object),address:Pc.maybe(Pc.String),output:Pc.maybe(Pc.BufferN(34)),pubkey:Pc.maybe(Pc.anyOf(Pc.BufferN(32),Pc.BufferN(33)))},t);let n=tS.value(()=>{let a=eS.bech32m.decode(t.address),s=a.words.shift(),o=eS.bech32m.fromWords(a.words);return{version:s,prefix:a.prefix,data:Buffer.from(o)}});if(tS.prop(i,"address",()=>{if(!i.hash)return;let a=eS.bech32m.toWords(i.hash);return a.unshift(1),eS.bech32m.encode(r.bech32,a)}),tS.prop(i,"hash",()=>{if(t.output)return t.output.slice(2);if(t.address)return n().data;if(t.pubkey)return hle(eB(t.pubkey)).pubkey}),tS.prop(i,"output",()=>{if(!!i.hash)return yle.compile([fle.OP_1,i.hash])}),e.validate){let a=Buffer.from([]);if(t.address){let{prefix:s,version:o,data:c}=n();if(s!==r.bech32)throw new TypeError("Invalid prefix or Network mismatch");if(o!==1)throw new TypeError("Invalid address version");if(c.length!==32)throw new TypeError("Invalid address data");a=c}if(t.hash){if(a.length>0&&!a.equals(t.hash))throw new TypeError("Hash mismatch");a=t.hash}if(t.output){if(t.output[0]!==fle.OP_1||t.output[1]!==32)throw new TypeError("p2tr output is invalid");let s=t.output.slice(2);if(a.length>0&&!a.equals(s))throw new TypeError("Hash mismatch");a=s}if(t.pubkey){let s=hle(eB(t.pubkey)).pubkey;if(a.length>0&&!a.equals(s))throw new TypeError("Hash mismatch");if(a=s,!mle.isPoint(Buffer.concat([tB,eB(t.pubkey)])))throw new TypeError("Invalid pubkey for p2tr")}}return Object.assign(i,t)}rS.p2tr=s$e});var _le=x(aS=>{"use strict";Object.defineProperty(aS,"__esModule",{value:!0});aS.p2wpkh=void 0;var rB=zf(),ls=Tn(),iS=d3(),iB=ju(),o$e=An(),nS=ds(),Ph=Lo(),{OPS:ble}=nS,u$e=Buffer.alloc(0);function c$e(t,e){if(!t.address&&!t.hash&&!t.output&&!t.pubkey&&!t.witness)throw new TypeError("Not enough data");e=Object.assign({validate:!0},e||{}),ls({address:ls.maybe(ls.String),hash:ls.maybe(ls.BufferN(20)),input:ls.maybe(ls.BufferN(0)),network:ls.maybe(ls.Object),output:ls.maybe(ls.BufferN(22)),pubkey:ls.maybe(rB.isPoint),signature:ls.maybe(nS.isCanonicalScriptSignature),witness:ls.maybe(ls.arrayOf(ls.Buffer))},t);let r=Ph.value(()=>{let a=iS.bech32.decode(t.address),s=a.words.shift(),o=iS.bech32.fromWords(a.words);return{version:s,prefix:a.prefix,data:Buffer.from(o)}}),i=t.network||o$e.bitcoin,n={name:"p2wpkh",network:i};if(Ph.prop(n,"address",()=>{if(!n.hash)return;let a=iS.bech32.toWords(n.hash);return a.unshift(0),iS.bech32.encode(i.bech32,a)}),Ph.prop(n,"hash",()=>{if(t.output)return t.output.slice(2,22);if(t.address)return r().data;if(t.pubkey||n.pubkey)return iB.hash160(t.pubkey||n.pubkey)}),Ph.prop(n,"output",()=>{if(!!n.hash)return nS.compile([ble.OP_0,n.hash])}),Ph.prop(n,"pubkey",()=>{if(t.pubkey)return t.pubkey;if(!!t.witness)return t.witness[1]}),Ph.prop(n,"signature",()=>{if(!!t.witness)return t.witness[0]}),Ph.prop(n,"input",()=>{if(!!n.witness)return u$e}),Ph.prop(n,"witness",()=>{if(!!t.pubkey&&!!t.signature)return[t.signature,t.pubkey]}),e.validate){let a=Buffer.from([]);if(t.address){let{prefix:s,version:o,data:c}=r();if(i&&i.bech32!==s)throw new TypeError("Invalid prefix or Network mismatch");if(o!==0)throw new TypeError("Invalid address version");if(c.length!==20)throw new TypeError("Invalid address data");a=c}if(t.hash){if(a.length>0&&!a.equals(t.hash))throw new TypeError("Hash mismatch");a=t.hash}if(t.output){if(t.output.length!==22||t.output[0]!==ble.OP_0||t.output[1]!==20)throw new TypeError("Output is invalid");if(a.length>0&&!a.equals(t.output.slice(2)))throw new TypeError("Hash mismatch");a=t.output.slice(2)}if(t.pubkey){let s=iB.hash160(t.pubkey);if(a.length>0&&!a.equals(s))throw new TypeError("Hash mismatch");if(a=s,!rB.isPoint(t.pubkey)||t.pubkey.length!==33)throw new TypeError("Invalid pubkey for p2wpkh")}if(t.witness){if(t.witness.length!==2)throw new TypeError("Witness is invalid");if(!nS.isCanonicalScriptSignature(t.witness[0]))throw new TypeError("Witness has invalid signature");if(!rB.isPoint(t.witness[1])||t.witness[1].length!==33)throw new TypeError("Witness has invalid pubkey");if(t.signature&&!t.signature.equals(t.witness[0]))throw new TypeError("Signature mismatch");if(t.pubkey&&!t.pubkey.equals(t.witness[1]))throw new TypeError("Pubkey mismatch");let s=iB.hash160(t.witness[1]);if(a.length>0&&!a.equals(s))throw new TypeError("Hash mismatch")}}return Object.assign(n,t)}aS.p2wpkh=c$e});var Sle=x(uS=>{"use strict";Object.defineProperty(uS,"__esModule",{value:!0});uS.p2wsh=void 0;var d$e=zf(),Ui=Tn(),sS=d3(),wle=ju(),l$e=An(),Oh=ds(),Wf=Lo(),{OPS:xle}=Oh,nB=Buffer.alloc(0);function f$e(t,e){return t.length!==e.length?!1:t.every((r,i)=>r.equals(e[i]))}function oS(t){return!!(Buffer.isBuffer(t)&&t.length===65&&t[0]===4&&d$e.isPoint(t))}function p$e(t,e){if(!t.address&&!t.hash&&!t.output&&!t.redeem&&!t.witness)throw new TypeError("Not enough data");e=Object.assign({validate:!0},e||{}),Ui({network:Ui.maybe(Ui.Object),address:Ui.maybe(Ui.String),hash:Ui.maybe(Ui.BufferN(32)),output:Ui.maybe(Ui.BufferN(34)),redeem:Ui.maybe({input:Ui.maybe(Ui.Buffer),network:Ui.maybe(Ui.Object),output:Ui.maybe(Ui.Buffer),witness:Ui.maybe(Ui.arrayOf(Ui.Buffer))}),input:Ui.maybe(Ui.BufferN(0)),witness:Ui.maybe(Ui.arrayOf(Ui.Buffer))},t);let r=Wf.value(()=>{let s=sS.bech32.decode(t.address),o=s.words.shift(),c=sS.bech32.fromWords(s.words);return{version:o,prefix:s.prefix,data:Buffer.from(c)}}),i=Wf.value(()=>Oh.decompile(t.redeem.input)),{network:n}=t;n||(n=t.redeem&&t.redeem.network||l$e.bitcoin);let a={network:n};if(Wf.prop(a,"address",()=>{if(!a.hash)return;let s=sS.bech32.toWords(a.hash);return s.unshift(0),sS.bech32.encode(n.bech32,s)}),Wf.prop(a,"hash",()=>{if(t.output)return t.output.slice(2);if(t.address)return r().data;if(a.redeem&&a.redeem.output)return wle.sha256(a.redeem.output)}),Wf.prop(a,"output",()=>{if(!!a.hash)return Oh.compile([xle.OP_0,a.hash])}),Wf.prop(a,"redeem",()=>{if(!!t.witness)return{output:t.witness[t.witness.length-1],input:nB,witness:t.witness.slice(0,-1)}}),Wf.prop(a,"input",()=>{if(!!a.witness)return nB}),Wf.prop(a,"witness",()=>{if(t.redeem&&t.redeem.input&&t.redeem.input.length>0&&t.redeem.output&&t.redeem.output.length>0){let s=Oh.toStack(i());return a.redeem=Object.assign({witness:s},t.redeem),a.redeem.input=nB,[].concat(s,t.redeem.output)}if(!!t.redeem&&!!t.redeem.output&&!!t.redeem.witness)return[].concat(t.redeem.witness,t.redeem.output)}),Wf.prop(a,"name",()=>{let s=["p2wsh"];return a.redeem!==void 0&&a.redeem.name!==void 0&&s.push(a.redeem.name),s.join("-")}),e.validate){let s=Buffer.from([]);if(t.address){let{prefix:o,version:c,data:u}=r();if(o!==n.bech32)throw new TypeError("Invalid prefix or Network mismatch");if(c!==0)throw new TypeError("Invalid address version");if(u.length!==32)throw new TypeError("Invalid address data");s=u}if(t.hash){if(s.length>0&&!s.equals(t.hash))throw new TypeError("Hash mismatch");s=t.hash}if(t.output){if(t.output.length!==34||t.output[0]!==xle.OP_0||t.output[1]!==32)throw new TypeError("Output is invalid");let o=t.output.slice(2);if(s.length>0&&!s.equals(o))throw new TypeError("Hash mismatch");s=o}if(t.redeem){if(t.redeem.network&&t.redeem.network!==n)throw new TypeError("Network mismatch");if(t.redeem.input&&t.redeem.input.length>0&&t.redeem.witness&&t.redeem.witness.length>0)throw new TypeError("Ambiguous witness source");if(t.redeem.output){if(Oh.decompile(t.redeem.output).length===0)throw new TypeError("Redeem.output is invalid");let o=wle.sha256(t.redeem.output);if(s.length>0&&!s.equals(o))throw new TypeError("Hash mismatch");s=o}if(t.redeem.input&&!Oh.isPushOnly(i()))throw new TypeError("Non push-only scriptSig");if(t.witness&&t.redeem.witness&&!f$e(t.witness,t.redeem.witness))throw new TypeError("Witness and redeem.witness mismatch");if(t.redeem.input&&i().some(oS)||t.redeem.output&&(Oh.decompile(t.redeem.output)||[]).some(oS))throw new TypeError("redeem.input or redeem.output contains uncompressed pubkey")}if(t.witness&&t.witness.length>0){let o=t.witness[t.witness.length-1];if(t.redeem&&t.redeem.output&&!t.redeem.output.equals(o))throw new TypeError("Witness and redeem.output mismatch");if(t.witness.some(oS)||(Oh.decompile(o)||[]).some(oS))throw new TypeError("Witness contains uncompressed pubkey")}}return Object.assign(a,t)}uS.p2wsh=p$e});var Ale=x(dS=>{"use strict";Object.defineProperty(dS,"__esModule",{value:!0});dS.sstxchange=void 0;var Zf=Tn(),Ele=Hf(),h$e=An(),Tle=ds(),cS=Lo(),{OPS:ll}=Tle;function m$e(t,e){if(!t.address&&!t.hash&&!t.output)throw new TypeError("Not enough data");e=Object.assign({validate:!0},e||{}),Zf({network:Zf.maybe(Zf.Object),address:Zf.maybe(Zf.String),hash:Zf.maybe(Zf.BufferN(20)),output:Zf.maybe(Zf.Buffer)},t);let r=cS.value(()=>Ele.decodeAddress(t.address,t.network)),i=t.network||h$e.decred,n={name:"sstxchange",network:i};if(cS.prop(n,"address",()=>{if(!!n.hash)return Ele.encodeAddress(n.hash,i.pubKeyHash,i)}),cS.prop(n,"hash",()=>{if(t.output)return t.output.slice(4,24);if(t.address)return r().hash}),cS.prop(n,"output",()=>{if(!!n.hash)return Tle.compile([ll.OP_SSTXCHANGE,ll.OP_DUP,ll.OP_HASH160,n.hash,ll.OP_EQUALVERIFY,ll.OP_CHECKSIG])}),e.validate){let a=Buffer.from([]);if(t.address){let{version:s,hash:o}=r();if(s!==i.pubKeyHash)throw new TypeError("Invalid version or Network mismatch");if(o.length!==20)throw new TypeError("Invalid address");a=o}if(t.hash){if(a.length>0&&!a.equals(t.hash))throw new TypeError("Hash mismatch");a=t.hash}if(t.output){if(t.output.length!==26||t.output[0]!==ll.OP_SSTXCHANGE||t.output[1]!==ll.OP_DUP||t.output[2]!==ll.OP_HASH160||t.output[3]!==20||t.output[24]!==ll.OP_EQUALVERIFY||t.output[25]!==ll.OP_CHECKSIG)throw new TypeError("sstxchange output is invalid");let s=t.output.slice(4,24);if(a.length>0&&!a.equals(s))throw new TypeError("Hash mismatch")}}return Object.assign(n,t)}dS.sstxchange=m$e});var gv=x((MNt,Ole)=>{"use strict";var aB=Zy().Buffer,g$e=9007199254740991;function sB(t){if(t<0||t>g$e||t%1!==0)throw new RangeError("value out of range")}function R3(t,e,r){if(sB(t),e||(e=aB.allocUnsafe(Ple(t))),!aB.isBuffer(e))throw new TypeError("buffer must be a Buffer instance");return r||(r=0),t<253?(e.writeUInt8(t,r),R3.bytes=1):t<=65535?(e.writeUInt8(253,r),e.writeUInt16LE(t,r+1),R3.bytes=3):t<=4294967295?(e.writeUInt8(254,r),e.writeUInt32LE(t,r+1),R3.bytes=5):(e.writeUInt8(255,r),e.writeUInt32LE(t>>>0,r+1),e.writeUInt32LE(t/4294967296|0,r+5),R3.bytes=9),e}function M3(t,e){if(!aB.isBuffer(t))throw new TypeError("buffer must be a Buffer instance");e||(e=0);var r=t.readUInt8(e);if(r<253)return M3.bytes=1,r;if(r===253)return M3.bytes=3,t.readUInt16LE(e+1);if(r===254)return M3.bytes=5,t.readUInt32LE(e+1);M3.bytes=9;var i=t.readUInt32LE(e+1),n=t.readUInt32LE(e+5),a=n*4294967296+i;return sB(a),a}function Ple(t){return sB(t),t<253?1:t<=65535?3:t<=4294967295?5:9}Ole.exports={encode:R3,decode:M3,encodingLength:Ple}});var Rle=x(C3=>{var y$e,v$e,b$e,_$e;(function(t){var e="undefined",r=e!==typeof Buffer&&Buffer,i=e!==typeof Uint8Array&&Uint8Array,n=e!==typeof ArrayBuffer&&ArrayBuffer,a=[0,0,0,0,0,0,0,0],s=Array.isArray||be,o=4294967296,c=16777216,u;y$e=f("Uint64BE",!0,!0),v$e=f("Int64BE",!0,!1),b$e=f("Uint64LE",!1,!0),_$e=f("Int64LE",!1,!1);function f(ce,me,ne){var ee=me?0:4,R=me?4:0,g=me?0:3,v=me?1:2,w=me?2:1,y=me?3:0,_=me?U:oe,P=me?re:ge,M=A.prototype,E="is"+ce,h="_"+E;return M.buffer=void 0,M.offset=0,M[h]=!0,M.toNumber=xe,M.toString=q,M.toJSON=xe,M.toArray=d,r&&(M.toBuffer=p),i&&(M.toArrayBuffer=b),A[E]=F,t[ce]=A,A;function A(_e,H,Y,Q){return this instanceof A?O(this,_e,H,Y,Q):new A(_e,H,Y,Q)}function F(_e){return!!(_e&&_e[h])}function O(_e,H,Y,Q,se){if(i&&n&&(H instanceof n&&(H=new i(H)),Q instanceof n&&(Q=new i(Q))),!H&&!Y&&!Q&&!u){_e.buffer=L(a,0);return}if(!T(H,Y)){var Se=u||Array;se=Y,Q=H,Y=0,H=u===r?r.alloc(8):new Se(8)}_e.buffer=H,_e.offset=Y|=0,e!==typeof Q&&(typeof Q=="string"?N(H,Y,Q,se||10):T(Q,se)?I(H,Y,Q,se):typeof se=="number"?(fe(H,Y+ee,Q),fe(H,Y+R,se)):Q>0?_(H,Y,Q):Q<0?P(H,Y,Q):I(H,Y,a,0))}function N(_e,H,Y,Q){var se=0,Se=Y.length,ue=0,he=0;Y[0]==="-"&&se++;for(var Oe=se;se=0))break;he=he*Q+ye,ue=ue*Q+Math.floor(he/o),he%=o}Oe&&(ue=~ue,he?he=o-he:ue++),fe(_e,H+ee,ue),fe(_e,H+R,he)}function xe(){var _e=this.buffer,H=this.offset,Y=Te(_e,H+ee),Q=Te(_e,H+R);return ne||(Y|=0),Y?Y*o+Q:Q}function q(_e){var H=this.buffer,Y=this.offset,Q=Te(H,Y+ee),se=Te(H,Y+R),Se="",ue=!ne&&Q&2147483648;for(ue&&(Q=~Q,se=o-se),_e=_e||10;;){var he=Q%_e*o+se;if(Q=Math.floor(Q/_e),se=Math.floor(he/_e),Se=(he%_e).toString(_e)+Se,!Q&&!se)break}return ue&&(Se="-"+Se),Se}function fe(_e,H,Y){_e[H+y]=Y&255,Y=Y>>8,_e[H+w]=Y&255,Y=Y>>8,_e[H+v]=Y&255,Y=Y>>8,_e[H+g]=Y&255}function Te(_e,H){return _e[H+g]*c+(_e[H+v]<<16)+(_e[H+w]<<8)+_e[H+y]}}function d(ce){var me=this.buffer,ne=this.offset;return u=null,ce!==!1&&s(me)?me.length===8?me:me.slice(ne,ne+8):L(me,ne)}function p(ce){var me=this.buffer,ne=this.offset;return u=r,ce!==!1&&r.isBuffer(me)?me.length===8?me:me.slice(ne,ne+8):r.from(b.call(this,ce))}function b(ce){var me=this.buffer,ne=this.offset,ee=me.buffer;if(u=i,ce!==!1&&!me.offset&&ee instanceof n)return ee.byteLength===8?ee:ee.slice(ne,ne+8);var R=new i(8);return I(R,0,me,ne),R.buffer}function T(ce,me){var ne=ce&&ce.length;return me|=0,ne&&me+8<=ne&&typeof ce[me]!="string"}function I(ce,me,ne,ee){me|=0,ee|=0;for(var R=0;R<8;R++)ce[me++]=ne[ee++]&255}function L(ce,me){return Array.prototype.slice.call(ce,me,me+8)}function U(ce,me,ne){for(var ee=me+8;ee>me;)ce[--ee]=ne&255,ne/=256}function re(ce,me,ne){var ee=me+8;for(ne++;ee>me;)ce[--ee]=-ne&255^255,ne/=256}function oe(ce,me,ne){for(var ee=me+8;me{"use strict";Object.defineProperty(_r,"__esModule",{value:!0});_r.BufferReader=_r.BufferWriter=_r.reverseBuffer=_r.writePushDataInt=_r.varIntSize=_r.readPushDataInt=_r.pushDataSize=_r.getChunkSize=_r.cloneBuffer=_r.writeVarInt=_r.readVarInt=_r.writeInt64LE=_r.writeUInt64LEasString=_r.writeUInt64LE=_r.readInt64LE=_r.readUInt64LEasString=_r.readUInt64LE=_r.verifuint=void 0;var oB=ac(),dB=jk(),$f=gv(),Mle=Rle(),Cle=Tn(),w$e=wn(),yv=uv();function lB(t,e){if(typeof t!="number")throw new Error("cannot write a non-number as a number");if(t<0)throw new Error("specified a negative value for writing an unsigned value");if(t>e)throw new Error("value out of range");if(Math.floor(t)!==t)throw new Error("value has a fractional component")}_r.verifuint=lB;function fB(t,e){let r=t.readUInt32LE(e),i=t.readUInt32LE(e+4);return i*=4294967296,lB(i+r,9007199254740991),i+r}_r.readUInt64LE=fB;function Ile(t,e){try{return fB(t,e).toString()}catch{let i=t.readUInt32LE(e),n=t.readUInt32LE(e+4),a=new oB(4294967296),s=new oB(i),o=new oB(n).mul(a);return s.add(o).toString()}}_r.readUInt64LEasString=Ile;function Nle(t,e){let r=t.readUInt32LE(e),i=t.readInt32LE(e+4);return i*=4294967296,i+r}_r.readInt64LE=Nle;function pB(t,e,r){return lB(e,9007199254740991),t.writeInt32LE(e&-1,r),t.writeUInt32LE(Math.floor(e/4294967296),r+4),r+8}_r.writeUInt64LE=pB;function kle(t,e,r){return typeof e!="string"?pB(t,e,r):(new Mle.Int64LE(e).toBuffer().copy(t,r),r+8)}_r.writeUInt64LEasString=kle;function Ble(t,e,r){let n=new Mle.Int64LE(e).toArray();for(let a=0;a<8;a++)t.writeUInt8(n[a],r+a);return r+8}_r.writeInt64LE=Ble;function x$e(t,e){return{number:$f.decode(t,e),size:$f.decode.bytes}}_r.readVarInt=x$e;function S$e(t,e,r){return $f.encode(e,t,r),$f.encode.bytes}_r.writeVarInt=S$e;function E$e(t){let e=Buffer.allocUnsafe(t.length);return t.copy(e),e}_r.cloneBuffer=E$e;function T$e(t){let e=Buffer.allocUnsafe(1);return e.writeUInt8(t),e}_r.getChunkSize=T$e;_r.pushDataSize=dB.encodingLength;_r.readPushDataInt=dB.decode;_r.varIntSize=$f.encodingLength;_r.writePushDataInt=dB.encode;_r.reverseBuffer=w$e.bufferUtils.reverseBuffer;var uB=class{constructor(e,r=0){this.buffer=e,this.offset=r,Cle(yv.tuple(yv.Buffer,yv.UInt32),[e,r])}writeUInt8(e){this.offset=this.buffer.writeUInt8(e,this.offset)}writeUInt16(e){this.offset=this.buffer.writeUInt16LE(e,this.offset)}writeInt32(e){this.offset=this.buffer.writeInt32LE(e,this.offset)}writeUInt32(e){this.offset=this.buffer.writeUInt32LE(e,this.offset)}writeInt64(e){this.offset=Ble(this.buffer,e,this.offset)}writeUInt64(e){this.offset=typeof e=="string"?kle(this.buffer,e,this.offset):pB(this.buffer,e,this.offset)}writeVarInt(e){$f.encode(e,this.buffer,this.offset),this.offset+=$f.encode.bytes}writeSlice(e){if(this.buffer.lengththis.writeVarSlice(r))}};_r.BufferWriter=uB;var cB=class{constructor(e,r=0){this.buffer=e,this.offset=r,Cle(yv.tuple(yv.Buffer,yv.UInt32),[e,r])}readUInt8(){let e=this.buffer.readUInt8(this.offset);return this.offset++,e}readUInt16(){let e=this.buffer.readUInt16LE(this.offset);return this.offset+=2,e}readInt32(){let e=this.buffer.readInt32LE(this.offset);return this.offset+=4,e}readUInt32(){let e=this.buffer.readUInt32LE(this.offset);return this.offset+=4,e}readInt64(){let e=Nle(this.buffer,this.offset);return this.offset+=8,e}readUInt64(){let e=fB(this.buffer,this.offset);return this.offset+=8,e}readUInt64String(){let e=Ile(this.buffer,this.offset);return this.offset+=8,e}readVarInt(){let e=$f.decode(this.buffer,this.offset);return this.offset+=$f.decode.bytes,e}readSlice(e){if(this.buffer.length{"use strict";Object.defineProperty(fS,"__esModule",{value:!0});fS.sstxcommitment=void 0;var Oc=Tn(),A$e=fl(),Fle=Hf(),P$e=An(),qle=ds(),lS=Lo(),{OPS:Dle}=qle;function O$e(t,e){if(!t.address&&!t.amount&&!t.hash&&!t.output)throw new TypeError("Not enough data");e=Object.assign({validate:!0},e||{}),Oc({network:Oc.maybe(Oc.Object),address:Oc.maybe(Oc.String),amount:Oc.maybe(Oc.String),hash:Oc.maybe(Oc.BufferN(20)),output:Oc.maybe(Oc.Buffer)},t);let r=lS.value(()=>Fle.decodeAddress(t.address,t.network)),i=t.network||P$e.decred,n={name:"sstxcommitment",network:i};if(lS.prop(n,"address",()=>{if(!!n.hash)return Fle.encodeAddress(n.hash,i.pubKeyHash,i)}),lS.prop(n,"hash",()=>{if(t.output)return t.output.slice(2,22);if(t.address)return r().hash}),lS.prop(n,"output",()=>{if(!n.hash||!t.amount)return;let a=Buffer.allocUnsafe(n.hash.length+10),s=new A$e.BufferWriter(a);return s.writeSlice(n.hash),s.writeUInt64(t.amount),s.writeUInt8(0),s.writeUInt8(88),qle.compile([Dle.OP_RETURN,a])}),e.validate){let a=Buffer.from([]);if(t.address){let{version:s,hash:o}=r();if(s!==i.pubKeyHash)throw new TypeError("Invalid version or Network mismatch");if(o.length!==20)throw new TypeError("Invalid address");a=o}if(t.hash){if(a.length>0&&!a.equals(t.hash))throw new TypeError("Hash mismatch");a=t.hash}if(t.output){if(t.output.length!==32||t.output[0]!==Dle.OP_RETURN)throw new TypeError("sstxcommitment output is invalid");let s=t.output.slice(2,22);if(a.length>0&&!a.equals(s))throw new TypeError("Hash mismatch")}}return Object.assign(n,t)}fS.sstxcommitment=O$e});var Vle=x(hS=>{"use strict";Object.defineProperty(hS,"__esModule",{value:!0});hS.sstxpkh=void 0;var Qf=Tn(),Ule=Hf(),R$e=An(),jle=ds(),pS=Lo(),{OPS:pl}=jle;function M$e(t,e){if(!t.address&&!t.hash&&!t.output)throw new TypeError("Not enough data");e=Object.assign({validate:!0},e||{}),Qf({network:Qf.maybe(Qf.Object),address:Qf.maybe(Qf.String),hash:Qf.maybe(Qf.BufferN(20)),output:Qf.maybe(Qf.Buffer)},t);let r=pS.value(()=>Ule.decodeAddress(t.address,t.network)),i=t.network||R$e.decred,n={name:"sstxpkh",network:i};if(pS.prop(n,"address",()=>{if(!!n.hash)return Ule.encodeAddress(n.hash,i.pubKeyHash,i)}),pS.prop(n,"hash",()=>{if(t.output)return t.output.slice(4,24);if(t.address)return r().hash}),pS.prop(n,"output",()=>{if(!!n.hash)return jle.compile([pl.OP_SSTX,pl.OP_DUP,pl.OP_HASH160,n.hash,pl.OP_EQUALVERIFY,pl.OP_CHECKSIG])}),e.validate){let a=Buffer.from([]);if(t.address){let{version:s,hash:o}=r();if(s!==i.pubKeyHash)throw new TypeError("Invalid version or Network mismatch");if(o.length!==20)throw new TypeError("Invalid address");a=o}if(t.hash){if(a.length>0&&!a.equals(t.hash))throw new TypeError("Hash mismatch");a=t.hash}if(t.output){if(t.output.length!==26||t.output[0]!==pl.OP_SSTX||t.output[1]!==pl.OP_DUP||t.output[2]!==pl.OP_HASH160||t.output[3]!==20||t.output[24]!==pl.OP_EQUALVERIFY||t.output[25]!==pl.OP_CHECKSIG)throw new TypeError("sstxpkh output is invalid");let s=t.output.slice(4,24);if(a.length>0&&!a.equals(s))throw new TypeError("Hash mismatch")}}return Object.assign(n,t)}hS.sstxpkh=M$e});var Gle=x(gS=>{"use strict";Object.defineProperty(gS,"__esModule",{value:!0});gS.sstxsh=void 0;var Yf=Tn(),Hle=Hf(),C$e=An(),zle=ds(),mS=Lo(),{OPS:vv}=zle;function I$e(t,e){if(!t.address&&!t.hash&&!t.output)throw new TypeError("Not enough data");e=Object.assign({validate:!0},e||{}),Yf({network:Yf.maybe(Yf.Object),address:Yf.maybe(Yf.String),hash:Yf.maybe(Yf.BufferN(20)),output:Yf.maybe(Yf.Buffer)},t);let r=t.network||C$e.decred,i={name:"sstxsh",network:r},n=mS.value(()=>Hle.decodeAddress(t.address,r));if(mS.prop(i,"address",()=>{if(!!i.hash)return Hle.encodeAddress(i.hash,r.scriptHash,r)}),mS.prop(i,"hash",()=>{if(t.output)return t.output.slice(3,23);if(t.address)return n().hash}),mS.prop(i,"output",()=>{if(!!i.hash)return zle.compile([vv.OP_SSTX,vv.OP_HASH160,i.hash,vv.OP_EQUAL])}),e.validate){let a=Buffer.from([]);if(t.address){let{version:s,hash:o}=n();if(s!==r.scriptHash)throw new TypeError("Invalid version or Network mismatch");if(o.length!==20)throw new TypeError("Invalid address");a=o}if(t.hash){if(a.length>0&&!a.equals(t.hash))throw new TypeError("Hash mismatch");a=t.hash}if(t.output){if(t.output.length!==24||t.output[0]!==vv.OP_SSTX||t.output[1]!==vv.OP_HASH160||t.output[2]!==20||t.output[23]!==vv.OP_EQUAL)throw new TypeError("sstxsh output is invalid");let s=t.output.slice(3,23);if(a.length>0&&!a.equals(s))throw new TypeError("Hash mismatch")}}return Object.assign(i,t)}gS.sstxsh=I$e});var yS=x(Ai=>{"use strict";Object.defineProperty(Ai,"__esModule",{value:!0});Ai.sstxsh=Ai.sstxpkh=Ai.sstxcommitment=Ai.sstxchange=Ai.p2wsh=Ai.p2wpkh=Ai.p2tr=Ai.p2sh=Ai.p2pkh=Ai.p2pk=Ai.p2ms=Ai.embed=void 0;var N$e=Qk();Object.defineProperty(Ai,"embed",{enumerable:!0,get:function(){return N$e.p2data}});var k$e=rle();Object.defineProperty(Ai,"p2ms",{enumerable:!0,get:function(){return k$e.p2ms}});var B$e=ale();Object.defineProperty(Ai,"p2pk",{enumerable:!0,get:function(){return B$e.p2pk}});var F$e=ule();Object.defineProperty(Ai,"p2pkh",{enumerable:!0,get:function(){return F$e.p2pkh}});var D$e=lle();Object.defineProperty(Ai,"p2sh",{enumerable:!0,get:function(){return D$e.p2sh}});var q$e=vle();Object.defineProperty(Ai,"p2tr",{enumerable:!0,get:function(){return q$e.p2tr}});var L$e=_le();Object.defineProperty(Ai,"p2wpkh",{enumerable:!0,get:function(){return L$e.p2wpkh}});var U$e=Sle();Object.defineProperty(Ai,"p2wsh",{enumerable:!0,get:function(){return U$e.p2wsh}});var j$e=Ale();Object.defineProperty(Ai,"sstxchange",{enumerable:!0,get:function(){return j$e.sstxchange}});var V$e=Lle();Object.defineProperty(Ai,"sstxcommitment",{enumerable:!0,get:function(){return V$e.sstxcommitment}});var H$e=Vle();Object.defineProperty(Ai,"sstxpkh",{enumerable:!0,get:function(){return H$e.sstxpkh}});var z$e=Gle();Object.defineProperty(Ai,"sstxsh",{enumerable:!0,get:function(){return z$e.sstxsh}})});var vS=x(fs=>{"use strict";Object.defineProperty(fs,"__esModule",{value:!0});fs.toOutputScript=fs.getAddressType=fs.fromOutputScript=fs.toBech32=fs.toBase58Check=fs.fromBech32=fs.fromBase58Check=void 0;var bv=d3(),Jle=Hf(),G$e=Tn(),Xle=ds(),ep=yS(),_v=An(),hB=uv();function Kle(t,e=_v.bitcoin){return Jle.decodeAddress(t,e)}fs.fromBase58Check=Kle;function Wle(t){let e,r;try{e=bv.bech32.decode(t)}catch{}if(e){if([r]=e.words,r!==0)throw new TypeError(`${t} uses wrong encoding`)}else if(e=bv.bech32m.decode(t),[r]=e.words,r===0)throw new TypeError(`${t} uses wrong encoding`);let i=bv.bech32.fromWords(e.words.slice(1));return{version:r,prefix:e.prefix,data:Buffer.from(i)}}fs.fromBech32=Wle;function J$e(t,e,r=_v.bitcoin){return G$e(hB.tuple(hB.Hash160bit,hB.UInt16),[t,e]),Jle.encodeAddress(t,e,r)}fs.toBase58Check=J$e;function Zle(t,e,r){let i=bv.bech32.toWords(t);return i.unshift(e),e===0?bv.bech32.encode(r,i):bv.bech32m.encode(r,i)}fs.toBech32=Zle;var $le=40,Qle=2,Yle=16,efe=1,tfe=80;function X$e(t,e=_v.bitcoin){let r=t.slice(2);if(r.length$le)throw new TypeError("Invalid program length for segwit address");let i=t[0]-tfe;if(iYle)throw new TypeError("Invalid version for segwit address");if(t[1]!==r.length)throw new TypeError("Invalid script for segwit address");return Zle(r,i,e.bech32)}function K$e(t,e=_v.bitcoin){try{return ep.p2pkh({output:t,network:e}).address}catch{}try{return ep.p2sh({output:t,network:e}).address}catch{}try{return ep.p2wpkh({output:t,network:e}).address}catch{}try{return ep.p2wsh({output:t,network:e}).address}catch{}try{return ep.p2tr({output:t,network:e}).address}catch{}try{return X$e(t,e)}catch{}throw new Error(`${Xle.toASM(t)} has no matching Address`)}fs.fromOutputScript=K$e;function rfe(t,e){try{let{hash:r,version:i}=Kle(t,e);return{success:!0,format:"base58",version:i,hash:r}}catch{try{let{data:i,prefix:n,version:a}=Wle(t);return n===e.bech32?{success:!0,format:"bech32",version:a,hash:i}:{success:!1,error:"bech32-invalid-prefix"}}catch{}}return{success:!1,error:"unknown-format"}}function ife(t,e,r,i){if(t==="base58"){if(e===i.pubKeyHash)return"p2pkh";if(e===i.scriptHash)return"p2sh"}else if(t==="bech32")if(e===0){if(r.length===20)return"p2wpkh";if(r.length===32)return"p2wsh"}else{if(e===1&&r.length===32)return"p2tr";if(e>=efe&&e<=Yle&&r.length>=Qle&&r.length<=$le)return"p2w-unknown"}return"unknown"}function W$e(t,e,r){switch(t){case"p2pkh":return ep.p2pkh({hash:e}).output;case"p2sh":return ep.p2sh({hash:e}).output;case"p2wpkh":return ep.p2wpkh({hash:e}).output;case"p2wsh":return ep.p2wsh({hash:e}).output;case"p2tr":case"p2w-unknown":return Xle.compile([r+tfe,e])}}function Z$e(t,e=_v.bitcoin){let{success:r,format:i,version:n,hash:a}=rfe(t,e);return r?ife(i,n,a,e):"unknown"}fs.getAddressType=Z$e;function $$e(t,e=_v.bitcoin){let{success:r,format:i,version:n,hash:a,error:s}=rfe(t,e);if(r){let o=ife(i,n,a,e);if(o!=="unknown")return W$e(o,a,n)}else if(s==="bech32-invalid-prefix")throw new Error(`${t} has an invalid prefix`);throw new Error(`${t} has no matching Script`)}fs.toOutputScript=$$e});var sfe=x((qNt,afe)=>{var mB=m3();function nfe(t,e){if(e!==void 0&&t[0]!==e)throw new Error("Invalid network version");if(t.length===33)return{version:t[0],privateKey:t.slice(1,33),compressed:!1};if(t.length!==34)throw new Error("Invalid WIF length");if(t[33]!==1)throw new Error("Invalid compression flag");return{version:t[0],privateKey:t.slice(1,33),compressed:!0}}function gB(t,e,r){var i=new Buffer(r?34:33);return i.writeUInt8(t,0),e.copy(i,1),r&&(i[33]=1),i}function Q$e(t,e){return nfe(mB.decode(t),e)}function Y$e(t,e,r){return typeof t=="number"?mB.encode(gB(t,e,r)):mB.encode(gB(t.version,t.privateKey,t.compressed))}afe.exports={decode:Q$e,decodeRaw:nfe,encode:Y$e,encodeRaw:gB}});var _B=x(ml=>{"use strict";Object.defineProperty(ml,"__esModule",{value:!0});ml.fromSeed=ml.fromPublicKey=ml.fromPrivateKey=ml.fromBase58=void 0;var hl=zf(),eQe=sfe(),za=Tn(),yB=Hf(),bS=ju(),wv=An(),vB=za.BufferN(32),tQe=za.compile({wif:za.UInt8,bip32:{public:za.UInt32,private:za.UInt32}}),ofe=2147483648,rQe=Math.pow(2,31)-1;function iQe(t){return za.String(t)&&t.match(/^(m\/)?(\d+'?\/)*\d+'?$/)!==null}function nQe(t){return za.UInt32(t)&&t<=rQe}function bB(t,e,r,i,n,a){if(za({privateKey:vB,chainCode:vB},{privateKey:t,chainCode:e}),r=r||wv.bitcoin,!hl.isPrivate(t))throw new TypeError("Private key not in range [1, n)");return new wS(t,void 0,e,r,i,n,a)}function _S(t,e,r,i,n,a){if(za({publicKey:za.BufferN(33),chainCode:vB},{publicKey:t,chainCode:e}),r=r||wv.bitcoin,!hl.isPoint(t))throw new TypeError("Point is not on the curve");return new wS(void 0,t,e,r,i,n,a)}var wS=class{constructor(e,r,i,n,a=0,s=0,o=0){this.__D=e,this.__Q=r,this.chainCode=i,this.network=n,this.__DEPTH=a,this.__INDEX=s,this.__PARENT_FINGERPRINT=o,za(tQe,n),this.lowR=!1}get depth(){return this.__DEPTH}get index(){return this.__INDEX}get parentFingerprint(){return this.__PARENT_FINGERPRINT}get publicKey(){return this.__Q===void 0&&(this.__Q=hl.pointFromScalar(this.__D,!0)),this.__Q}get privateKey(){return this.__D}get identifier(){return(0,wv.isNetworkType)("decred",this.network)?bS.hash160blake256(this.publicKey):bS.hash160(this.publicKey)}get fingerprint(){return this.identifier.slice(0,4)}get compressed(){return!0}isNeutered(){return this.__D===void 0}neutered(){return _S(this.publicKey,this.chainCode,this.network,this.depth,this.index,this.parentFingerprint)}toBase58(){let{network:e}=this,r=this.isNeutered()?e.bip32.public:e.bip32.private,i=Buffer.allocUnsafe(78);return i.writeUInt32BE(r,0),i.writeUInt8(this.depth,4),i.writeUInt32BE(this.parentFingerprint,5),i.writeUInt32BE(this.index,9),this.chainCode.copy(i,13),this.isNeutered()?this.publicKey.copy(i,45):(i.writeUInt8(0,45),this.privateKey.copy(i,46)),yB.encode(i,e)}toWIF(){if(!this.privateKey)throw new TypeError("Missing private key");return eQe.encode(this.network.wif,this.privateKey,!0)}derive(e){za(za.UInt32,e);let r=e>=ofe,i=Buffer.allocUnsafe(37);if(r){if(this.isNeutered())throw new TypeError("Missing private key for hardened child key");i[0]=0,this.privateKey.copy(i,1),i.writeUInt32BE(e,33)}else this.publicKey.copy(i,0),i.writeUInt32BE(e,33);let n=bS.hmacSHA512(this.chainCode,i),a=n.slice(0,32),s=n.slice(32);if(!hl.isPrivate(a))return this.derive(e+1);let o;if(this.isNeutered()){let c=hl.pointAddScalar(this.publicKey,a,!0);if(c===null)return this.derive(e+1);o=_S(c,s,this.network,this.depth+1,e,this.fingerprint.readUInt32BE(0))}else{let c=hl.privateAdd(this.privateKey,a);if(c==null)return this.derive(e+1);o=bB(c,s,this.network,this.depth+1,e,this.fingerprint.readUInt32BE(0))}return o}deriveHardened(e){return za(nQe,e),this.derive(e+ofe)}derivePath(e){za(iQe,e);let r=e.split("/");if(r[0]==="m"){if(this.parentFingerprint)throw new TypeError("Expected master, got child");r=r.slice(1)}return r.reduce((i,n)=>{let a;return n.slice(-1)==="'"?(a=parseInt(n.slice(0,-1),10),i.deriveHardened(a)):(a=parseInt(n,10),i.derive(a))},this)}sign(e,r){if(!this.privateKey)throw new Error("Missing private key");if(r===void 0&&(r=this.lowR),r===!1)return hl.sign(e,this.privateKey);let i=hl.sign(e,this.privateKey),n=Buffer.alloc(32,0),a=0;for(;i[0]>127;)a++,n.writeUIntLE(a,0,6),i=hl.signWithEntropy(e,this.privateKey,n);return i}verify(e,r){return hl.verify(e,this.publicKey,r)}};function aQe(t,e){let r=(0,wv.isNetworkType)("decred",e)?yB.decodeBlake256Key(t):yB.decode(t,e);if(r.length!==78)throw new TypeError("Invalid buffer length");e=e||wv.bitcoin;let i=r.readUInt32BE(0);if(i!==e.bip32.private&&i!==e.bip32.public)throw new TypeError("Invalid network version");let n=r[4],a=r.readUInt32BE(5);if(n===0&&a!==0)throw new TypeError("Invalid parent fingerprint");let s=r.readUInt32BE(9);if(n===0&&s!==0)throw new TypeError("Invalid index");let o=r.slice(13,45),c;if(i===e.bip32.private){if(r.readUInt8(45)!==0)throw new TypeError("Invalid private key");let u=r.slice(46,78);c=bB(u,o,e,n,s,a)}else{let u=r.slice(45,78);c=_S(u,o,e,n,s,a)}return c}ml.fromBase58=aQe;function ufe(t,e,r){return bB(t,e,r)}ml.fromPrivateKey=ufe;function sQe(t,e,r){return _S(t,e,r)}ml.fromPublicKey=sQe;function oQe(t,e){if(za(za.Buffer,t),t.length<16)throw new TypeError("Seed should be at least 128 bits");if(t.length>64)throw new TypeError("Seed should be at most 512 bits");e=e||wv.bitcoin;let r=bS.hmacSHA512(Buffer.from("Bitcoin seed","utf8"),t),i=r.slice(0,32),n=r.slice(32);return ufe(i,n,e)}ml.fromSeed=oQe});var cfe=x(xv=>{"use strict";Object.defineProperty(xv,"__esModule",{value:!0});xv.getMax=xv.splitByCompleteness=void 0;function uQe(t){let e=[],r=[];return t.forEach(i=>{i.type==="complete"||i.type==="send-max"||i.type==="opreturn"?e.push(i):r.push(i)}),{complete:e,incomplete:r}}xv.splitByCompleteness=uQe;function cQe(t){let e=t.filter(n=>n.type==="send-max-noaddress"||n.type==="send-max");if(e.length>=2)throw new Error("TWO-SEND-MAX");let r=t.findIndex(n=>n.type==="send-max-noaddress"||n.type==="send-max"),i=e.length===1;return{id:r,exists:i}}xv.getMax=cQe});var dfe=x(Rh=>{"use strict";Object.defineProperty(Rh,"__esModule",{value:!0});Rh.getFinalResult=Rh.getNonfinalResult=Rh.empty=void 0;Rh.empty={type:"error",error:"EMPTY"};function dQe(t){let{max:e,fee:r,feePerByte:i,bytes:n,totalSpent:a}=t.result;return{type:"nonfinal",fee:r.toString(),feePerByte:i.toString(),bytes:n,max:e,totalSpent:a}}Rh.getNonfinalResult=dQe;function lQe(t,e){let{max:r,fee:i,feePerByte:n,bytes:a,totalSpent:s}=t.result;return{type:"final",fee:i.toString(),feePerByte:n.toString(),bytes:a,transaction:e,max:r,totalSpent:s}}Rh.getFinalResult=lQe});var lfe=x(xS=>{"use strict";Object.defineProperty(xS,"__esModule",{value:!0});xS.Permutation=void 0;var Sv=class{constructor(e,r){this.sorted=e,this.permutation=r}static fromFunction(e,r){let n=e.map((s,o)=>o).sort((s,o)=>r(e[s],e[o])),a=new Sv([],n);return a.forEach((s,o)=>{a.sorted[o]=e[s]}),a}forEach(e){this.permutation.forEach(e)}map(e){let r=this.sorted.map(e);return new Sv(r,this.permutation)}};xS.Permutation=Sv});var hfe=x(SS=>{"use strict";Object.defineProperty(SS,"__esModule",{value:!0});SS.createTransaction=void 0;var ffe=ac(),fQe=vS(),pQe=Qk(),pfe=lfe(),wB=fl();function hQe(t,e){return{hash:(0,wB.reverseBuffer)(Buffer.from(t.transactionHash,"hex")),index:t.index,path:e.concat([...t.addressPath]),amount:t.value}}function mQe(t){let e=Buffer.from(t,"hex"),r={opReturnData:e,value:void 0},i=(0,pQe.p2data)({data:[e]}).output;return{output:r,script:i}}function gQe(t,e,r,i,n,a){return{output:a?{path:[...i,1,n],value:e}:{address:t,value:e},script:fQe.toOutputScript(t,r)}}function yQe(t,e,r,i){return(0,wB.reverseBuffer)(t).compare((0,wB.reverseBuffer)(r))||e-i}function vQe(t,e,r,i){return new ffe(e).cmp(new ffe(i))||t.compare(r)}function bQe(t,e,r,i,n,a,s,o,c){let u=e.map(p=>hQe(t[p.i],n)),f=i.map((p,b)=>{let T=b===r.length,I=r[b];if(I&&I.type==="opreturn")return mQe(I.dataHex);let L=I?I.address:s,U=p.value;return gQe(L,U,o,n,a,T)});if(c)return{inputs:u,outputs:new pfe.Permutation(f.map(p=>p.output),f.map((p,b)=>b))};u.sort((p,b)=>yQe(p.hash,p.index,b.hash,b.index));let d=pfe.Permutation.fromFunction(f,(p,b)=>{let T=typeof p.output.value=="string"?p.output.value:"0",I=typeof b.output.value=="string"?b.output.value:"0";return vQe(p.script,T,b.script,I)}).map(p=>p.output);return{inputs:u,outputs:d}}SS.createTransaction=bQe});var Mh=x(Vt=>{"use strict";Object.defineProperty(Vt,"__esModule",{value:!0});Vt.filterCoinbase=Vt.sortByScore=Vt.utxoScore=Vt.anyOf=Vt.finalize=Vt.getFee=Vt.sumOrNaN=Vt.bignumberOrNaN=Vt.dustThreshold=Vt.transactionBytes=Vt.transactionWeight=Vt.getFeeForBytes=Vt.outputBytes=Vt.outputWeight=Vt.inputBytes=Vt.inputWeight=Vt.getVarIntSize=Vt.OUTPUT_SCRIPT_LENGTH=Vt.INPUT_SCRIPT_LENGTH=Vt.ZERO=void 0;var gl=ac();Vt.ZERO=new gl(0);Vt.INPUT_SCRIPT_LENGTH={p2pkh:108,p2sh:107,p2tr:65,p2wpkh:107,p2wsh:107};Vt.OUTPUT_SCRIPT_LENGTH={p2pkh:25,p2sh:23,p2tr:34,p2wpkh:22,p2wsh:34};var mfe=["p2sh","p2tr","p2wpkh","p2wsh"],_Qe=32,wQe=160;function xB(t){return t<253?1:t<65536?3:t<4294967296?5:9}Vt.getVarIntSize=xB;function TB(t){if(t.weight)return t.weight;let e=wQe;return mfe.includes(t.type)?(t.type==="p2sh"?e+=4*(2+22):e+=4,e+=1+t.script.length):e+=4*t.script.length,e}Vt.inputWeight=TB;function gfe(t){return Math.ceil(TB(t)/4)}Vt.inputBytes=gfe;function AB(t){return t.weight?t.weight:4*(8+1+t.script.length)}Vt.outputWeight=AB;function yfe(t){return Math.ceil(AB(t)/4)}Vt.outputBytes=yfe;function TS(t,e){return Math.ceil(t*e)}Vt.getFeeForBytes=TS;function vfe(t,e){let r=t.filter(i=>mfe.includes(i.type)).length;return _Qe+4*xB(t.length)+t.reduce((i,n)=>i+TB(n),0)+4*xB(e.length)+e.reduce((i,n)=>i+AB(n),0)+(r?2+(t.length-r):0)}Vt.transactionWeight=vfe;function PB(t,e){return Math.ceil(vfe(t,e)/4)}Vt.transactionBytes=PB;function bfe(t,e){let r=PB([{type:e.txType,script:{length:Vt.INPUT_SCRIPT_LENGTH[e.txType]}}],[{script:{length:Vt.OUTPUT_SCRIPT_LENGTH[e.txType]}}]),i=TS(t,r);return Math.max(e.dustThreshold,i)}Vt.dustThreshold=bfe;function _fe(t,e=!1){if(gl.isBN(t))return t;let r=e?Vt.ZERO:void 0;if(!t||typeof t!="string"||!/^\d+$/.test(t))return r;try{return new gl(t)}catch{return r}}Vt.bignumberOrNaN=_fe;function ES(t,e=!1){return t.reduce((r,i)=>{if(!r)return r;let n=_fe(i.value);return n?n.add(r):e?Vt.ZERO.add(r):void 0},Vt.ZERO)}Vt.sumOrNaN=ES;function SB(t,e,r,i){let n=TS(t,e),a=r.baseFee||0;if(a&&e&&(r.floorBaseFee?a*=Math.floor((a+n)/a):a+=n),r.dustOutputFee&&r.dustThreshold)for(let s=0;sObject.assign({},b,{value:b.value}));return f.gt(new gl(d))&&p.push({value:f.toString(),script:{length:Vt.OUTPUT_SCRIPT_LENGTH[i.txType]}}),{inputs:t,outputs:p,fee:c.sub(ES(p,!0)).toNumber()}}Vt.finalize=xQe;function SQe(t){return(e,r,i,n)=>{let a={fee:0};for(let s=0;s{let i=EB(e,t).sub(EB(r,t));return i.eq(Vt.ZERO)?e.i-r.i:i.isNeg()?1:-1}}Vt.sortByScore=EQe;function TQe(t,e){return t.filter(r=>r.coinbase&&!r.required?r.confirmations>=e:!0)}Vt.filterCoinbase=TQe});var RB=x(yl=>{"use strict";Object.defineProperty(yl,"__esModule",{value:!0});yl.convertFeeRate=yl.convertOutputs=yl.getScriptFromAddress=yl.convertInputs=void 0;var AQe=vS(),AS=Mh();function PQe(t,e=0,r){return t.map((i,n)=>({type:r,i:n,script:{length:AS.INPUT_SCRIPT_LENGTH[r]},value:i.value,own:i.own,coinbase:i.coinbase,confirmations:i.height==null?0:1+e-i.height,required:i.required})).map(i=>Object.assign(i,{weight:(0,AS.inputWeight)(i)}))}yl.convertInputs=PQe;function OB(t,e){return{length:AQe.toOutputScript(t,e).length}}yl.getScriptFromAddress=OB;function OQe(t,e,r){let i={length:AS.OUTPUT_SCRIPT_LENGTH[r]};return t.map(n=>{if(n.type==="complete")return{value:n.amount,script:OB(n.address,e)};if(n.type==="noaddress")return{value:n.amount,script:i};if(n.type==="opreturn")return{value:"0",script:{length:2+n.dataHex.length/2}};if(n.type==="send-max")return{script:OB(n.address,e)};if(n.type==="send-max-noaddress")return{script:i};throw new Error("WRONG-OUTPUT-TYPE")}).map(n=>Object.assign(n,{weight:(0,AS.outputWeight)(n)}))}yl.convertOutputs=OQe;function RQe(t){let e=typeof t=="string"?Number(t):t;if(!(Number.isNaN(e)||!Number.isFinite(e)||e>Number.MAX_SAFE_INTEGER||e<=0))return e}yl.convertFeeRate=RQe});var wfe=x(PS=>{"use strict";Object.defineProperty(PS,"__esModule",{value:!0});PS.split=void 0;var MB=ac(),vl=Mh();function MQe(t,e,r,i){let n=i.coinbase||100,a=vl.filterCoinbase(t,n),s=vl.transactionBytes(a,e),o=vl.getFee(r,s,i,e);if(e.length===0)return{fee:o};let c=vl.sumOrNaN(a),u=vl.sumOrNaN(e,!0);if(!c)return{fee:o};let f=c.sub(u).sub(new MB(o));if(f.lt(vl.ZERO))return{fee:o};let d=e.reduce((I,L)=>I+(vl.bignumberOrNaN(L.value)?0:1),0);if(f.isZero()||d===0)return vl.finalize(a,e,r,i);let p=f.div(new MB(d)),b=vl.dustThreshold(r,i);if(d&&p.lte(new MB(b)))return{fee:o};let T=e.map(I=>{if(I.value)return I;let L=Object.assign({},I);return L.value=p.toString(),L});return vl.finalize(a,T,r,i)}PS.split=MQe});var Sfe=x(OS=>{"use strict";Object.defineProperty(OS,"__esModule",{value:!0});OS.accumulative=void 0;var xfe=ac(),io=Mh();function CQe(t,e,r,i){let n=io.transactionBytes([],e),a=io.ZERO,s=[],o=io.sumOrNaN(e),c=[],u=[];if(t.forEach(d=>{if(d.required){c.push(d);let p=io.inputBytes(d),b=io.bignumberOrNaN(d.value,!0);n+=p,a=a.add(b),s.push(d)}else u.push(d)}),c.length>0){let d=io.finalize(c,e,r,i);if(d.inputs)return d}for(let d=0;d{"use strict";Object.defineProperty(RS,"__esModule",{value:!0});RS.bnb=void 0;var Ev=ac(),no=Mh(),IQe=1e6;function NQe(t,e){return t.map(r=>{let i=no.bignumberOrNaN(r.value);if(!i)return{utxo:r,effectiveValue:new Ev(0)};let n=no.getFeeForBytes(e,no.inputBytes(r)),a=i.sub(new Ev(n));return{utxo:r,effectiveValue:a}})}function kQe(t,e,r){if(t.length===0)return null;let i=IQe,n=[],a=new Ev(0),s=!1,o=!1,c=t.reduce((d,p)=>p.effectiveValue.add(d),new Ev(0)),u=e.add(new Ev(r)),f=0;for(;!s;){if(i<=0)return null;if(a.gt(u))o=!0;else if(a.gte(e))s=!0;else if(f>=t.length)o=!0;else if(a.add(c).lt(e)){if(f===0)return null;o=!0}else c=c.sub(t[f].effectiveValue),n[f]=!0,a=a.add(t[f].effectiveValue),f++;if(o){for(o=!1,f--;!n[f];)if(c=c.add(t[f].effectiveValue),f--,f<0)return null;n[f]=!1,a=a.sub(t[f].effectiveValue),f++}i--}return n}function BQe(t){return(e,r,i,n)=>{if(n.baseFee)return{fee:0};if(e.find(T=>T.required))return{fee:0};let a=no.getFeeForBytes(i,no.outputBytes({script:{length:no.OUTPUT_SCRIPT_LENGTH[n.txType]}})),s=no.getFeeForBytes(i,no.inputBytes({type:n.txType,script:{length:no.INPUT_SCRIPT_LENGTH[n.txType]}})),o=Math.floor((s+a)*t),c=no.transactionBytes([],r),u=no.getFeeForBytes(i,c),f=no.sumOrNaN(r);if(!f)return{fee:0};let d=f.add(new Ev(u)),p=NQe(e,i).filter(T=>T.effectiveValue.gt(no.ZERO)).sort((T,I)=>{let L=I.effectiveValue.sub(T.effectiveValue).toNumber();return L!==0?L:T.utxo.i-I.utxo.i}),b=kQe(p,d,o);if(b!==null){let T=[];for(let I=0;I{"use strict";Object.defineProperty(MS,"__esModule",{value:!0});MS.tryConfirmed=void 0;var FQe=Mh();function DQe(t,e,r){let i=[],n=[];for(let a=0;a=e:s.confirmations>=r)||s.required?i.push(s):n.push(s)}return{usable:i,unusable:n}}function qQe(t,e){let r=e.own||1,i=e.other||6,n=e.coinbase||100;return(a,s,o,c)=>{a.forEach(T=>{if(T.coinbase==null||T.own==null||T.confirmations==null)throw new Error("Missing information.")});let u=(0,FQe.filterCoinbase)(a,n);if(u.length===0)return{fee:0};let f=[],d;for(d=r;d>0;d--)f.push({other:i,own:d});for(d=i-1;d>0;d--)f.push({other:d,own:1});f.push({other:1,own:0}),f.push({other:0,own:0});let p=u,b=[];for(d=0;d0){b=b.concat(I.usable),p=I.unusable;let U=t(b,s,o,c);if(U.inputs||p.length===0)return U}}throw new Error("Unexpected unreturned result")}}MS.tryConfirmed=qQe});var Pfe=x(CS=>{"use strict";Object.defineProperty(CS,"__esModule",{value:!0});CS.coinselect=void 0;var LQe=Sfe(),UQe=Efe(),Afe=Mh(),jQe=Tfe();function VQe(t,e,r,i){let n=i.skipPermutation?t:t.sort((0,Afe.sortByScore)(r));return(0,jQe.tryConfirmed)((0,Afe.anyOf)([(0,UQe.bnb)(.5),LQe.accumulative]),i)(n,e,r,i)}CS.coinselect=VQe});var Rfe=x(IS=>{"use strict";Object.defineProperty(IS,"__esModule",{value:!0});IS.coinselect=void 0;var CB=ac(),HQe=wfe(),zQe=Pfe(),GQe=Mh(),Ofe=RB();function JQe(t,e,r,i,n,a,s,o,c,u,f,d,p){let b=Ofe.convertInputs(e,i,t),T=Ofe.convertOutputs(r,c,t),I={txType:t,dustThreshold:o,baseFee:u,floorBaseFee:f,dustOutputFee:d,skipPermutation:p},U=(a?HQe.split:zQe.coinselect)(b,T,n,I);if(!U.inputs||!U.outputs)return{type:"false"};let{fee:re,inputs:oe,outputs:ge}=U,be=s!==-1?ge[s].value:void 0,ce=ge.filter((ee,R)=>R!==r.length).map(ee=>ee.value).reduce((ee,R)=>ee.add(new CB(R)),new CB(0)).add(new CB(re)).toString(),me=(0,GQe.transactionBytes)(oe,ge),ne=re/me;return{type:"true",result:{inputs:oe,outputs:ge,fee:re,feePerByte:ne,bytes:me,max:be,totalSpent:ce}}}IS.coinselect=JQe});var Cfe=x(NS=>{"use strict";Object.defineProperty(NS,"__esModule",{value:!0});NS.composeTx=void 0;var Mfe=cfe(),IB=dfe(),XQe=hfe(),KQe=RB(),WQe=Rfe();function ZQe({txType:t,utxos:e,outputs:r,height:i,feeRate:n,basePath:a,network:s,changeId:o,changeAddress:c,dustThreshold:u,baseFee:f,floorBaseFee:d,dustOutputFee:p,skipPermutation:b}){if(r.length===0)return IB.empty;if(e.length===0)return{type:"error",error:"NOT-ENOUGH-FUNDS"};let T=(0,KQe.convertFeeRate)(n);if(!T)return{type:"error",error:"INCORRECT-FEE-RATE"};let I={exists:!1,id:0};try{I=Mfe.getMax(r)}catch(oe){return oe instanceof Error?{type:"error",error:oe.message}:{type:"error",error:`${oe}`}}let L=Mfe.splitByCompleteness(r),U={type:"false"};try{U=(0,WQe.coinselect)(t||"p2pkh",e,r,i,T,I.exists,I.id,u,s,f,d,p,b)}catch(oe){return oe instanceof Error?{type:"error",error:oe.message}:{type:"error",error:`${oe}`}}if(U.type==="false")return{type:"error",error:"NOT-ENOUGH-FUNDS"};if(L.incomplete.length>0)return IB.getNonfinalResult(U);let re=XQe.createTransaction(e,U.result.inputs,L.complete,U.result.outputs,a,o,c,s,b);return IB.getFinalResult(U,re)}NS.composeTx=ZQe});var NB=x(BS=>{"use strict";Object.defineProperty(BS,"__esModule",{value:!0});BS.deriveAddresses=void 0;var $Qe=rk(),Ife=wn(),I3=yS(),QQe=_B(),YQe=An(),Nfe={76067358:"p2pkh",77429938:"p2sh",78792518:"p2wpkh",70617039:"p2pkh",71979618:"p2sh",73342198:"p2wpkh"},eYe={76067358:"0'",77429938:"0'",78792518:"0'",70617039:"1'",71979618:"1'",73342198:"1'"},tYe={p2pkh:"44'",p2sh:"49'",p2wpkh:"84'",p2tr:"86'"},rYe=t=>!!Nfe[t],kfe=t=>{let e=Buffer.from((0,$Qe.decode)(t)).readUInt32BE();if(!rYe(e))throw new Error(`Unknown xpub version: ${t}`);return e},iYe=(t,e)=>r=>{switch(t){case"p2pkh":return(0,I3.p2pkh)({pubkey:r,network:e});case"p2sh":return(0,I3.p2sh)({redeem:(0,I3.p2wpkh)({pubkey:r,network:e}),network:e});case"p2wpkh":return(0,I3.p2wpkh)({pubkey:r,network:e});case"p2tr":return(0,I3.p2tr)({pubkey:r,network:e});default:throw new Error(`Unknown payment type '${t}'`)}},Bfe=(t,e,r)=>(0,QQe.fromBase58)(t,Object.assign(Object.assign({},r),{bip32:Object.assign(Object.assign({},r.bip32),{public:e})})),nYe=(t,e)=>{let r=kfe(t),i=Nfe[r],n=eYe[r],a=tYe[i],s=Bfe(t,r,e),o=`${s.index<<1>>>1}'`;return{levels:[a,n,o],paymentType:i,node:s}},kS=(t,e,r)=>{let[i,n,a,s]=e.match(/^([a-z]+\()+\[([a-z0-9]{8}(?:\/[0-9]+'?){3,})\]([xyztuv]pub[a-zA-Z0-9]*)\/<0;1>\/\*\)+$/)||(0,Ife.throwError)(`Descriptor cannot be parsed: ${e}`),[o,...c]=a.split("/"),u=kfe(s),f=Bfe(s,u,r);return{levels:c,paymentType:t,node:f}},aYe=(t,e)=>t.startsWith("pkh(")?kS("p2pkh",t,e):t.startsWith("sh(wpkh(")?kS("p2sh",t,e):t.startsWith("wpkh(")?kS("p2wpkh",t,e):t.startsWith("tr(")?kS("p2tr",t,e):nYe(t,e),sYe=(t,e,r,i,n=YQe.bitcoin)=>{let{levels:a,node:s,paymentType:o}=aYe(t,n),c=iYe(o,n),u=e==="receive"?0:1,f=s.derive(u);return Array.from(Array(i).keys()).map(d=>f.derive(r+d).publicKey).map(d=>c(d).address||(0,Ife.throwError)("Cannot convert pubkey to address")).map((d,p)=>({address:d,path:`m/${a.join("/")}/${u}/${r+p}`}))};BS.deriveAddresses=sYe});var Ffe=x(tp=>{"use strict";var oYe=tp&&tp.__awaiter||function(t,e,r,i){function n(a){return a instanceof r?a:new r(function(s){s(a)})}return new(r||(r=Promise))(function(a,s){function o(f){try{u(i.next(f))}catch(d){s(d)}}function c(f){try{u(i.throw(f))}catch(d){s(d)}}function u(f){f.done?a(f.value):n(f.value).then(o,c)}u((i=i.apply(t,e||[])).next())})};Object.defineProperty(tp,"__esModule",{value:!0});tp.discovery=tp.countUnusedFromEnd=void 0;var uYe=NB(),cYe=20,dYe=(t,e,r)=>{let i=t.length>r?t.length-r:0;for(let n=t.length;n>i;--n)if(!e(t[n-1]))return t.length-n;return t.length};tp.countUnusedFromEnd=dYe;var lYe=(t,e,r,i,n=cYe)=>{let a=(s,o)=>oYe(void 0,void 0,void 0,function*(){let c=(0,tp.countUnusedFromEnd)(o,p=>p.empty,n);if(c>=n)return o;let u=n-c,f=(0,uYe.deriveAddresses)(e,r,s,u,i),d=yield Promise.all(f.map(t));return a(s+u,o.concat(d))});return a(0,[])};tp.discovery=lYe});var Zm=x(jo=>{"use strict";Object.defineProperty(jo,"__esModule",{value:!0});jo.TransactionBase=jo.EMPTY_SCRIPT=jo.isCoinbaseHash=jo.vectorSize=jo.varSliceSize=void 0;var FS=gv(),fYe=Tn(),kB=fl(),pYe=ju(),hYe=uv(),mYe=ds(),Dfe=An();function DS(t){let{length:e}=t;return FS.encodingLength(e)+e}jo.varSliceSize=DS;function qfe(t){return FS.encodingLength(t.length)+t.reduce((e,r)=>e+DS(r),0)}jo.vectorSize=qfe;function Lfe(t){fYe(hYe.Hash256bit,t);for(let e=0;e<32;++e)if(t[e]!==0)return!1;return!0}jo.isCoinbaseHash=Lfe;jo.EMPTY_SCRIPT=Buffer.allocUnsafe(0);var BB=class{constructor(e){this.version=1,this.locktime=0,this.ins=[],this.outs=[],this.network=e.network||Dfe.bitcoin,this.specific=e.txSpecific}isCoinbase(){return this.ins.length===1&&Lfe(this.ins[0].hash)}hasWitnesses(){return this.ins.some(e=>e.witness.length!==0)}isMwebPegOutTx(){return(0,Dfe.isNetworkType)("litecoin",this.network)?this.outs.some(e=>mYe.toASM(e.script).startsWith("OP_8"))&&this.ins.some(e=>!e.script.length):!1}weight(){let e=this.byteLength(!1,!1),r=this.byteLength(!0,!1);return e*3+r}virtualSize(){return Math.ceil(this.weight()/4)}byteLength(e=!0,r=!0){let i=e&&this.hasWitnesses();return(i?10:8)+(this.timestamp?4:0)+FS.encodingLength(this.ins.length)+FS.encodingLength(this.outs.length)+this.ins.reduce((n,a)=>n+40+DS(a.script),0)+this.outs.reduce((n,a)=>n+8+DS(a.script),0)+(i?this.ins.reduce((n,a)=>n+qfe(a.witness),0):0)+(r&&this.isMwebPegOutTx()?3:0)}getHash(e=!1,r=!1){return e&&this.isCoinbase()?Buffer.alloc(32,0):pYe.hash256(this.toBuffer(void 0,void 0,e,r))}getId(){return(0,kB.reverseBuffer)(this.getHash(!1)).toString("hex")}getWitness(e){if(!this.hasWitnesses()||!this.ins[e]||!Array.isArray(this.ins[e].witness)||this.ins[e].witness.length<1)return;let{witness:r}=this.ins[e],i=r.reduce((n,a)=>n.concat([(0,kB.getChunkSize)(a.length),a]),[(0,kB.getChunkSize)(r.length)]);return Buffer.concat(i)}getExtraData(){}getSpecificData(){return this.specific}toBuffer(e,r,i=!0,n=!0){return jo.EMPTY_SCRIPT}toHex(){return this.toBuffer().toString("hex")}};jo.TransactionBase=BB});var zfe=x(Tv=>{"use strict";Object.defineProperty(Tv,"__esModule",{value:!0});Tv.fromBuffer=Tv.fromConstructor=void 0;var Ufe=fl(),gYe=An(),yYe=Zm(),qS=0,jfe=1,Vfe=8;function vYe(t,e,r,i=!0,n=!0){e||(e=Buffer.allocUnsafe(t.byteLength(i,n)));let a=new Ufe.BufferWriter(e,r||0);a.writeInt32(t.version);let s=i&&t.hasWitnesses(),o=n&&t.isMwebPegOutTx();return s?(a.writeUInt8(qS),a.writeUInt8(jfe)):o&&(a.writeUInt8(qS),a.writeUInt8(Vfe)),a.writeVarInt(t.ins.length),t.ins.forEach(c=>{a.writeSlice(c.hash),a.writeUInt32(c.index),a.writeVarSlice(c.script),a.writeUInt32(c.sequence)}),a.writeVarInt(t.outs.length),t.outs.forEach(c=>{a.writeUInt64(c.value),a.writeVarSlice(c.script)}),s&&t.ins.forEach(c=>{a.writeVector(c.witness)}),o&&a.writeUInt8(0),a.writeUInt32(t.locktime),r!==void 0?e.slice(r,a.offset):e}function Hfe(t){let e=new yYe.TransactionBase(t);return e.toBuffer=vYe.bind(null,e),e}Tv.fromConstructor=Hfe;function bYe(t,e){let r=new Ufe.BufferReader(t),i=Hfe(e);i.version=r.readInt32();let n=r.readUInt8(),a=r.readUInt8(),s=!1,o=!1;(0,gYe.isNetworkType)("litecoin",i.network)&&n===qS&&a===Vfe&&(o=!0),n===qS&&a===jfe?s=!0:o||(r.offset-=2);let c=r.readVarInt();for(let f=0;f{"use strict";Object.defineProperty(Av,"__esModule",{value:!0});Av.fromBuffer=Av.fromConstructor=void 0;var FB=gv(),Gfe=fl(),N3=Zm(),DB=0,_Ye=6;function wYe(t,e=!0){var r;let i=e&&t.hasWitnesses();return(i?10:8)+(t.timestamp?4:0)+FB.encodingLength(t.ins.length)+FB.encodingLength(t.outs.length)+t.ins.reduce((n,a)=>n+40+(0,N3.varSliceSize)(a.script),0)+t.outs.reduce((n,a)=>n+8+(0,N3.varSliceSize)(a.script),0)+(!((r=t.specific)===null||r===void 0)&&r.extraPayload?(0,N3.varSliceSize)(t.specific.extraPayload):0)+(i?t.ins.reduce((n,a)=>n+(0,N3.vectorSize)(a.witness),0):0)}function xYe(t,e,r,i=!0){var n;e||(e=Buffer.allocUnsafe(t.byteLength(i)));let a=new Gfe.BufferWriter(e,r||0);return t.version>=3&&t.type!==DB?(a.writeUInt16(t.version),a.writeUInt16(t.type)):a.writeInt32(t.version),a.writeVarInt(t.ins.length),t.ins.forEach(s=>{a.writeSlice(s.hash),a.writeUInt32(s.index),a.writeVarSlice(s.script),a.writeUInt32(s.sequence)}),a.writeVarInt(t.outs.length),t.outs.forEach(s=>{a.writeUInt64(s.value),a.writeVarSlice(s.script)}),a.writeUInt32(t.locktime),!((n=t.specific)===null||n===void 0)&&n.extraPayload&&a.writeVarSlice(t.specific.extraPayload),r!==void 0?e.slice(r,a.offset):e}function SYe(t){var e;if(!(!((e=t.specific)===null||e===void 0)&&e.extraPayload))return;let r=FB.encode(t.specific.extraPayload.length);return Buffer.concat([r,t.specific.extraPayload])}function Jfe(t){let e=new N3.TransactionBase(t);return e.specific=e.specific||{type:"dash"},e.byteLength=wYe.bind(null,e),e.toBuffer=xYe.bind(null,e),e.getExtraData=SYe.bind(null,e),e}Av.fromConstructor=Jfe;function EYe(t,e){let r=new Gfe.BufferReader(t),i=Jfe(e);if(i.version=r.readInt32(),i.type=i.version>>16,i.version&=65535,i.version===3&&(i.type_Ye))throw new Error("Unsupported Dash transaction type");let n=r.readVarInt();for(let s=0;s=3&&i.type!==DB&&(i.specific.extraPayload=r.readVarSlice()),e.nostrict)return i;if(r.offset!==t.length)throw new Error("Transaction has unexpected data");return i}Av.fromBuffer=EYe});var Yfe=x(Pv=>{"use strict";Object.defineProperty(Pv,"__esModule",{value:!0});Pv.fromBuffer=Pv.fromConstructor=void 0;var qB=gv(),Kfe=fl(),TYe=ju(),LS=Zm(),AYe=1,LB=0,Wfe=1,PYe=0;function OYe(t){return t.type===LB}function Zfe(t,e=!0){let r=4+qB.encodingLength(t.ins.length),i=0,n=e&&t.hasWitnesses();return r+=t.ins.reduce((a,s)=>(a+=32+4+1+4,n&&(i+=1,a+=8+4+4,a+=(0,LS.varSliceSize)(s.decredWitness.script)),a),0),n&&(r+=qB.encodingLength(i)),r+=qB.encodingLength(t.outs.length),r+=t.outs.reduce((a,s)=>(a+=8+2,a+=(0,LS.varSliceSize)(s.script),a),0),r+=4+4,r}function $fe(t,e,r,i=!0){e||(e=Buffer.allocUnsafe(Zfe(t,i)));let n=new Kfe.BufferWriter(e,r||0);return n.writeUInt16(t.version),n.writeUInt16(i?t.type:Wfe),n.writeVarInt(t.ins.length),t.ins.forEach(a=>{n.writeSlice(a.hash),n.writeUInt32(a.index),n.writeUInt8(a.decredTree),n.writeUInt32(a.sequence)}),n.writeVarInt(t.outs.length),t.outs.forEach(a=>{n.writeUInt64(a.value),n.writeUInt16(a.decredVersion),n.writeVarSlice(a.script)}),n.writeUInt32(t.locktime),n.writeUInt32(t.expiry),i&&t.hasWitnesses()&&(n.writeVarInt(t.ins.length),t.ins.forEach(a=>{n.writeUInt64(a.decredWitness.value),n.writeUInt32(a.decredWitness.height),n.writeUInt32(a.decredWitness.blockIndex),n.writeVarSlice(a.decredWitness.script)})),r!==void 0?e.slice(r,n.offset):e}function RYe(t,e=!1){return e&&t.isCoinbase()?Buffer.alloc(32,0):TYe.blake256($fe(t,void 0,void 0,e))}function MYe(t){return t.byteLength(!0)}function Qfe(t){let e=new LS.TransactionBase(t);return e.byteLength=Zfe.bind(null,e),e.toBuffer=$fe.bind(null,e),e.hasWitnesses=OYe.bind(null,e),e.getHash=RYe.bind(null,e),e.weight=MYe.bind(null,e),e}Pv.fromConstructor=Qfe;function CYe(t,e){let r=new Kfe.BufferReader(t),i=Qfe(e);if(i.version=r.readInt32(),i.type=i.version>>16,i.version&=65535,i.version!==AYe)throw new Error("Unsupported Decred transaction version");if(i.type!==LB&&i.type!==Wfe)throw new Error("Unsupported Decred transaction type");let n=r.readVarInt();for(let s=0;s{o.decredWitness={value:r.readUInt64String(),height:r.readUInt32(),blockIndex:r.readUInt32(),script:r.readVarSlice()}})}if(e.nostrict)return i;if(r.offset!==t.length)throw new Error("Transaction has unexpected data");return i}Pv.fromBuffer=CYe});var rpe=x(Ov=>{"use strict";Object.defineProperty(Ov,"__esModule",{value:!0});Ov.fromBuffer=Ov.fromConstructor=void 0;var epe=fl(),IYe=Zm();function NYe(t,e,r){e||(e=Buffer.allocUnsafe(t.byteLength(!1)));let i=new epe.BufferWriter(e,r||0);return i.writeInt32(t.version),i.writeUInt32(t.timestamp),i.writeVarInt(t.ins.length),t.ins.forEach(n=>{i.writeSlice(n.hash),i.writeUInt32(n.index),i.writeVarSlice(n.script),i.writeUInt32(n.sequence)}),i.writeVarInt(t.outs.length),t.outs.forEach(n=>{i.writeUInt64(n.value),i.writeVarSlice(n.script)}),i.writeUInt32(t.locktime),r!==void 0?e.slice(r,i.offset):e}function tpe(t){let e=new IYe.TransactionBase(t);return e.toBuffer=NYe.bind(null,e),e}Ov.fromConstructor=tpe;function kYe(t,e){let r=new epe.BufferReader(t),i=tpe(e);i.version=r.readInt32(),i.timestamp=r.readUInt32();let n=r.readVarInt();for(let s=0;s{var BYe="Input must be an string, Buffer or Uint8Array";function FYe(t){let e;if(t instanceof Uint8Array)e=t;else if(typeof t=="string")e=new TextEncoder().encode(t);else throw new Error(BYe);return e}function DYe(t){return Array.prototype.map.call(t,function(e){return(e<16?"0":"")+e.toString(16)}).join("")}function US(t){return(4294967296+t).toString(16).substring(1)}function qYe(t,e,r){let i=` +`+t+" = ";for(let n=0;n{var VS=UB();function jS(t,e,r){let i=t[e]+t[r],n=t[e+1]+t[r+1];i>=4294967296&&n++,t[e]=i,t[e+1]=n}function npe(t,e,r,i){let n=t[e]+r;r<0&&(n+=4294967296);let a=t[e+1]+i;n>=4294967296&&a++,t[e]=n,t[e+1]=a}function ape(t,e){return t[e]^t[e+1]<<8^t[e+2]<<16^t[e+3]<<24}function Ch(t,e,r,i,n,a){let s=k3[n],o=k3[n+1],c=k3[a],u=k3[a+1];jS(ar,t,e),npe(ar,t,s,o);let f=ar[i]^ar[t],d=ar[i+1]^ar[t+1];ar[i]=d,ar[i+1]=f,jS(ar,r,i),f=ar[e]^ar[r],d=ar[e+1]^ar[r+1],ar[e]=f>>>24^d<<8,ar[e+1]=d>>>24^f<<8,jS(ar,t,e),npe(ar,t,c,u),f=ar[i]^ar[t],d=ar[i+1]^ar[t+1],ar[i]=f>>>16^d<<16,ar[i+1]=d>>>16^f<<16,jS(ar,r,i),f=ar[e]^ar[r],d=ar[e+1]^ar[r+1],ar[e]=d>>>31^f<<1,ar[e+1]=f>>>31^d<<1}var spe=new Uint32Array([4089235720,1779033703,2227873595,3144134277,4271175723,1013904242,1595750129,2773480762,2917565137,1359893119,725511199,2600822924,4215389547,528734635,327033209,1541459225]),UYe=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,14,10,4,8,9,15,13,6,1,12,0,2,11,7,5,3,11,8,12,0,5,2,15,13,10,14,3,6,7,1,9,4,7,9,3,1,13,12,11,14,2,6,5,10,4,0,15,8,9,0,5,7,2,4,10,15,14,1,11,12,6,8,3,13,2,12,6,10,0,11,8,3,4,13,7,5,15,14,1,9,12,5,1,15,14,13,4,10,0,7,6,3,9,2,8,11,13,11,7,14,12,1,3,9,5,0,15,4,8,6,2,10,6,15,14,9,11,3,0,8,12,2,13,7,1,4,10,5,10,2,8,4,7,6,1,5,15,11,9,14,3,12,13,0,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,14,10,4,8,9,15,13,6,1,12,0,2,11,7,5,3],ps=new Uint8Array(UYe.map(function(t){return t*2})),ar=new Uint32Array(32),k3=new Uint32Array(32);function ope(t,e){let r=0;for(r=0;r<16;r++)ar[r]=t.h[r],ar[r+16]=spe[r];for(ar[24]=ar[24]^t.t,ar[25]=ar[25]^t.t/4294967296,e&&(ar[28]=~ar[28],ar[29]=~ar[29]),r=0;r<32;r++)k3[r]=ape(t.b,4*r);for(r=0;r<12;r++)Ch(0,8,16,24,ps[r*16+0],ps[r*16+1]),Ch(2,10,18,26,ps[r*16+2],ps[r*16+3]),Ch(4,12,20,28,ps[r*16+4],ps[r*16+5]),Ch(6,14,22,30,ps[r*16+6],ps[r*16+7]),Ch(0,10,20,30,ps[r*16+8],ps[r*16+9]),Ch(2,12,22,24,ps[r*16+10],ps[r*16+11]),Ch(4,14,16,26,ps[r*16+12],ps[r*16+13]),Ch(6,8,18,28,ps[r*16+14],ps[r*16+15]);for(r=0;r<16;r++)t.h[r]=t.h[r]^ar[r]^ar[r+16]}var Ih=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]);function upe(t,e,r,i){if(t===0||t>64)throw new Error("Illegal output length, expected 0 < length <= 64");if(e&&e.length>64)throw new Error("Illegal key, expected Uint8Array with 0 < length <= 64");if(r&&r.length!==16)throw new Error("Illegal salt, expected Uint8Array with length is 16");if(i&&i.length!==16)throw new Error("Illegal personal, expected Uint8Array with length is 16");let n={b:new Uint8Array(128),h:new Uint32Array(16),t:0,c:0,outlen:t};Ih.fill(0),Ih[0]=t,e&&(Ih[1]=e.length),Ih[2]=1,Ih[3]=1,r&&Ih.set(r,32),i&&Ih.set(i,48);for(let a=0;a<16;a++)n.h[a]=spe[a]^ape(Ih,a*4);return e&&(jB(n,e),n.c=128),n}function jB(t,e){for(let r=0;r>2]>>8*(r&3);return e}function dpe(t,e,r,i,n){r=r||64,t=VS.normalizeInput(t),i&&(i=VS.normalizeInput(i)),n&&(n=VS.normalizeInput(n));let a=upe(r,e,i,n);return jB(a,t),cpe(a)}function jYe(t,e,r,i,n){let a=dpe(t,e,r,i,n);return VS.toHex(a)}lpe.exports={blake2b:dpe,blake2bHex:jYe,blake2bInit:upe,blake2bUpdate:jB,blake2bFinal:cpe}});var _pe=x((ukt,bpe)=>{var ppe=UB();function VYe(t,e){return t[e]^t[e+1]<<8^t[e+2]<<16^t[e+3]<<24}function Nh(t,e,r,i,n,a){Zr[t]=Zr[t]+Zr[e]+n,Zr[i]=HS(Zr[i]^Zr[t],16),Zr[r]=Zr[r]+Zr[i],Zr[e]=HS(Zr[e]^Zr[r],12),Zr[t]=Zr[t]+Zr[e]+a,Zr[i]=HS(Zr[i]^Zr[t],8),Zr[r]=Zr[r]+Zr[i],Zr[e]=HS(Zr[e]^Zr[r],7)}function HS(t,e){return t>>>e^t<<32-e}var hpe=new Uint32Array([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),hs=new Uint8Array([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,14,10,4,8,9,15,13,6,1,12,0,2,11,7,5,3,11,8,12,0,5,2,15,13,10,14,3,6,7,1,9,4,7,9,3,1,13,12,11,14,2,6,5,10,4,0,15,8,9,0,5,7,2,4,10,15,14,1,11,12,6,8,3,13,2,12,6,10,0,11,8,3,4,13,7,5,15,14,1,9,12,5,1,15,14,13,4,10,0,7,6,3,9,2,8,11,13,11,7,14,12,1,3,9,5,0,15,4,8,6,2,10,6,15,14,9,11,3,0,8,12,2,13,7,1,4,10,5,10,2,8,4,7,6,1,5,15,11,9,14,3,12,13,0]),Zr=new Uint32Array(16),Ga=new Uint32Array(16);function mpe(t,e){let r=0;for(r=0;r<8;r++)Zr[r]=t.h[r],Zr[r+8]=hpe[r];for(Zr[12]^=t.t,Zr[13]^=t.t/4294967296,e&&(Zr[14]=~Zr[14]),r=0;r<16;r++)Ga[r]=VYe(t.b,4*r);for(r=0;r<10;r++)Nh(0,4,8,12,Ga[hs[r*16+0]],Ga[hs[r*16+1]]),Nh(1,5,9,13,Ga[hs[r*16+2]],Ga[hs[r*16+3]]),Nh(2,6,10,14,Ga[hs[r*16+4]],Ga[hs[r*16+5]]),Nh(3,7,11,15,Ga[hs[r*16+6]],Ga[hs[r*16+7]]),Nh(0,5,10,15,Ga[hs[r*16+8]],Ga[hs[r*16+9]]),Nh(1,6,11,12,Ga[hs[r*16+10]],Ga[hs[r*16+11]]),Nh(2,7,8,13,Ga[hs[r*16+12]],Ga[hs[r*16+13]]),Nh(3,4,9,14,Ga[hs[r*16+14]],Ga[hs[r*16+15]]);for(r=0;r<8;r++)t.h[r]^=Zr[r]^Zr[r+8]}function gpe(t,e){if(!(t>0&&t<=32))throw new Error("Incorrect output length, should be in [1, 32]");let r=e?e.length:0;if(e&&!(r>0&&r<=32))throw new Error("Incorrect key length, should be in [1, 32]");let i={h:new Uint32Array(hpe),b:new Uint8Array(64),c:0,t:0,outlen:t};return i.h[0]^=16842752^r<<8^t,r>0&&(VB(i,e),i.c=64),i}function VB(t,e){for(let r=0;r>2]>>8*(r&3)&255;return e}function vpe(t,e,r){r=r||32,t=ppe.normalizeInput(t);let i=gpe(r,e);return VB(i,t),ype(i)}function HYe(t,e,r){let i=vpe(t,e,r);return ppe.toHex(i)}bpe.exports={blake2s:vpe,blake2sHex:HYe,blake2sInit:gpe,blake2sUpdate:VB,blake2sFinal:ype}});var HB=x((ckt,wpe)=>{var B3=fpe(),F3=_pe();wpe.exports={blake2b:B3.blake2b,blake2bHex:B3.blake2bHex,blake2bInit:B3.blake2bInit,blake2bUpdate:B3.blake2bUpdate,blake2bFinal:B3.blake2bFinal,blake2s:F3.blake2s,blake2sHex:F3.blake2sHex,blake2sInit:F3.blake2sInit,blake2sUpdate:F3.blake2sUpdate,blake2sFinal:F3.blake2sFinal}});var Ppe=x(Cv=>{"use strict";Object.defineProperty(Cv,"__esModule",{value:!0});Cv.fromBuffer=Cv.fromConstructor=void 0;var Rv=gv(),zYe=HB(),Rc=fl(),rp=Zm(),GYe=ju(),zS=2,Mv=3,$m=4,Vu=5,xpe=2,Spe=2,JYe=1+8+32+32+512+16,XYe=2,KYe=10;function Epe(t){let e=t.version>=Mv?8:0,r=t.specific,i=()=>{if(t.version=Vu)return 0;let s=r.joinsplits.length;return s<1?(0,Rc.varIntSize)(s):(0,Rc.varIntSize)(s)+(t.version>=$m?1698*s:1802*s)+32+64},n=t.version===$m?8+Rv.encodingLength(r.vShieldedSpend.length)+384*r.vShieldedSpend.length+Rv.encodingLength(r.vShieldedOutput.length)+948*r.vShieldedOutput.length+(r.vShieldedSpend.length+r.vShieldedOutput.length>0?64:0):0,a=t.version>=Vu?4+1+1+1:0;return 4+Rv.encodingLength(t.ins.length)+Rv.encodingLength(t.outs.length)+t.ins.reduce((s,o)=>s+40+(0,rp.varSliceSize)(o.script),0)+t.outs.reduce((s,o)=>s+8+(0,rp.varSliceSize)(o.script),0)+4+e+i()+n+a}function Tpe(t,e,r){e||(e=Buffer.allocUnsafe(Epe(t)));let i=new Rc.BufferWriter(e,r||0),n=t.specific;if(t.version>=Mv){let o=n.overwintered?1:0;i.writeInt32(t.version|o<<31),i.writeUInt32(n.versionGroupId)}else i.writeInt32(t.version);t.version>=Vu&&(i.writeUInt32(n.consensusBranchId),i.writeUInt32(t.locktime),i.writeUInt32(t.expiry)),i.writeVarInt(t.ins.length),t.ins.forEach(o=>{i.writeSlice(o.hash),i.writeUInt32(o.index),i.writeVarSlice(o.script),i.writeUInt32(o.sequence)}),i.writeVarInt(t.outs.length),t.outs.forEach(o=>{i.writeUInt64(o.value),i.writeVarSlice(o.script)}),t.version=Mv&&i.writeUInt32(t.expiry)),t.version===$m&&(i.writeInt64(n.valueBalance),i.writeVarInt(n.vShieldedSpend.length),n.vShieldedSpend.forEach(o=>{i.writeSlice(o.cv),i.writeSlice(o.anchor),i.writeSlice(o.nullifier),i.writeSlice(o.rk),i.writeSlice(o.zkproof.sA),i.writeSlice(o.zkproof.sB),i.writeSlice(o.zkproof.sC),i.writeSlice(o.spendAuthSig)}),i.writeVarInt(n.vShieldedOutput.length),n.vShieldedOutput.forEach(o=>{i.writeSlice(o.cv),i.writeSlice(o.cmu),i.writeSlice(o.ephemeralKey),i.writeSlice(o.encCiphertext),i.writeSlice(o.outCiphertext),i.writeSlice(o.zkproof.sA),i.writeSlice(o.zkproof.sB),i.writeSlice(o.zkproof.sC)}));function a(o){i.writeUInt8(XYe|o.yLsb),i.writeSlice(o.x)}function s(o){i.writeUInt8(KYe|o.yLsb),i.writeSlice(o.x)}return t.version>=zS&&t.version{i.writeUInt64(o.vpubOld),i.writeUInt64(o.vpubNew),i.writeSlice(o.anchor),o.nullifiers.forEach(c=>{i.writeSlice(c)}),o.commitments.forEach(c=>{i.writeSlice(c)}),i.writeSlice(o.ephemeralKey),i.writeSlice(o.randomSeed),o.macs.forEach(c=>{i.writeSlice(c)}),o.zkproof.type==="sapling"?(i.writeSlice(o.zkproof.sA),i.writeSlice(o.zkproof.sB),i.writeSlice(o.zkproof.sC)):(a(o.zkproof.gA),a(o.zkproof.gAPrime),s(o.zkproof.gB),a(o.zkproof.gBPrime),a(o.zkproof.gC),a(o.zkproof.gCPrime),a(o.zkproof.gK),a(o.zkproof.gH)),o.ciphertexts.forEach(c=>{i.writeSlice(c)})}),n.joinsplits.length>0&&(i.writeSlice(n.joinsplitPubkey),i.writeSlice(n.joinsplitSig))),t.version>=$m&&n.vShieldedSpend.length+n.vShieldedOutput.length>0&&i.writeSlice(n.bindingSig),t.version===Vu&&(i.writeVarInt(0),i.writeVarInt(0),i.writeUInt8(0)),r!==void 0?e.slice(r,i.offset):e}function WYe(t){if(t.version=Vu)return;let e=4+(t.version>=Mv?8:0)+Rv.encodingLength(t.ins.length)+Rv.encodingLength(t.outs.length)+t.ins.reduce((r,i)=>r+40+(0,rp.varSliceSize)(i.script),0)+t.outs.reduce((r,i)=>r+8+(0,rp.varSliceSize)(i.script),0)+4;return t.toBuffer().slice(e)}function kh(t,e){let r=(0,zYe.blake2b)(t,void 0,32,void 0,Buffer.from(e));return Buffer.from(r)}function ZYe(t){let e=t.specific.overwintered?1:0,r=new Rc.BufferWriter(Buffer.alloc(4*5));return r.writeInt32(t.version|e<<31),r.writeUInt32(t.specific.versionGroupId),r.writeUInt32(t.specific.consensusBranchId),r.writeUInt32(t.locktime),r.writeUInt32(t.expiry),kh(r.buffer,"ZTxIdHeadersHash")}function $Ye(t){let e=new Rc.BufferWriter(Buffer.allocUnsafe(36*t.length));return t.forEach(r=>{e.writeSlice(r.hash),e.writeUInt32(r.index)}),kh(e.buffer,"ZTxIdPrevoutHash")}function QYe(t){let e=new Rc.BufferWriter(Buffer.allocUnsafe(4*t.length));return t.forEach(r=>{e.writeUInt32(r.sequence)}),kh(e.buffer,"ZTxIdSequencHash")}function YYe(t){let e=t.reduce((i,n)=>i+8+(0,rp.varSliceSize)(n.script),0),r=new Rc.BufferWriter(Buffer.allocUnsafe(e));return t.forEach(i=>{r.writeUInt64(i.value),r.writeVarSlice(i.script)}),kh(r.buffer,"ZTxIdOutputsHash")}function eet(t){let e;if(t.ins.length||t.outs.length){let r=new Rc.BufferWriter(Buffer.alloc(96));r.writeSlice($Ye(t.ins)),r.writeSlice(QYe(t.ins)),r.writeSlice(YYe(t.outs)),e=r.buffer}else e=Buffer.of();return kh(e,"ZTxIdTranspaHash")}function tet(t,e=!1){if(t.version>>31,i.version&=2147483647,i.version>=Mv&&(n.versionGroupId=r.readUInt32()),i.version>=Vu&&(n.consensusBranchId=r.readUInt32(),i.locktime=r.readUInt32(),i.expiry=r.readUInt32());let a=r.readVarInt();for(let d=0;d=Mv?r.readUInt32():0);function o(){let d=r.readUInt8()&1;return{x:r.readSlice(32),yLsb:d}}function c(){let d=r.readUInt8()&1;return{x:r.readSlice(64),yLsb:d}}function u(){return{type:"sapling",sA:r.readSlice(48),sB:r.readSlice(96),sC:r.readSlice(48)}}function f(){return i.version>=$m?u():{type:"joinsplit",gA:o(),gAPrime:o(),gB:c(),gBPrime:o(),gC:o(),gCPrime:o(),gK:o(),gH:o()}}if(i.version===$m){n.valueBalance=r.readInt64();let d=r.readVarInt();for(let b=0;b=zS&&i.version0&&(n.joinsplitPubkey=r.readSlice(32),n.joinsplitSig=r.readSlice(64))}if(i.version>=$m&&n.vShieldedSpend.length+n.vShieldedOutput.length>0&&(n.bindingSig=r.readSlice(64)),i.version===Vu){if(r.readVarInt()!==0)throw Error("Unexpected vSpendsSapling vector");if(r.readVarInt()!==0)throw Error("Unexpected vOutputsSapling vector");if(r.readUInt8()!==0)throw Error("Unexpected orchard byte")}if(e.nostrict)return i;if(r.offset!==t.length)throw new Error("Transaction has unexpected data");return i}Cv.fromBuffer=ret});var kpe=x(GS=>{"use strict";Object.defineProperty(GS,"__esModule",{value:!0});GS.Transaction=void 0;var Bh=An(),Ope=Zm(),Rpe=zfe(),Mpe=Xfe(),Cpe=Yfe(),Ipe=rpe(),Npe=Ppe(),zB=class extends Ope.TransactionBase{constructor(e={}){return super(e),(0,Bh.isNetworkType)("dash",this.network)?Mpe.fromConstructor(e):(0,Bh.isNetworkType)("decred",this.network)?Cpe.fromConstructor(e):(0,Bh.isNetworkType)("peercoin",this.network)?Ipe.fromConstructor(e):(0,Bh.isNetworkType)("zcash",this.network)?Npe.fromConstructor(e):Rpe.fromConstructor(e)}static isCoinbaseHash(e){return(0,Ope.isCoinbaseHash)(e)}static fromBuffer(e,r={}){return(0,Bh.isNetworkType)("dash",r.network)?Mpe.fromBuffer(e,r):(0,Bh.isNetworkType)("decred",r.network)?Cpe.fromBuffer(e,r):(0,Bh.isNetworkType)("peercoin",r.network)?Ipe.fromBuffer(e,r):(0,Bh.isNetworkType)("zcash",r.network)?Npe.fromBuffer(e,r):Rpe.fromBuffer(e,r)}static fromHex(e,r={}){return this.fromBuffer(Buffer.from(e,"hex"),Object.assign(r,{nostrict:!1}))}};GS.Transaction=zB});var Mc=x(ji=>{"use strict";Object.defineProperty(ji,"__esModule",{value:!0});ji.discovery=ji.deriveAddresses=ji.composeTx=ji.networks=ji.script=ji.payments=ji.crypto=ji.bufferutils=ji.bip32=ji.address=ji.Transaction=void 0;var iet=vS();ji.address=iet;var net=_B();ji.bip32=net;var aet=fl();ji.bufferutils=aet;var set=ju();ji.crypto=set;var oet=yS();ji.payments=oet;var uet=ds();ji.script=uet;var cet=An();ji.networks=cet;var det=Cfe();Object.defineProperty(ji,"composeTx",{enumerable:!0,get:function(){return det.composeTx}});var fet=NB();Object.defineProperty(ji,"deriveAddresses",{enumerable:!0,get:function(){return fet.deriveAddresses}});var pet=Ffe();Object.defineProperty(ji,"discovery",{enumerable:!0,get:function(){return pet.discovery}});var het=kpe();Object.defineProperty(ji,"Transaction",{enumerable:!0,get:function(){return het.Transaction}})});var XS=x(ao=>{"use strict";Object.defineProperty(ao,"__esModule",{value:!0});ao.convertMultisigPubKey=ao.xpubToHDNodeType=ao.xpubDerive=ao.convertBitcoinXpub=ao.convertXpub=void 0;var JS=Mc(),Fpe=Pt(),met=(t,e)=>{let r=Buffer.from(t.chain_code,"hex"),i=Buffer.from(t.public_key,"hex"),n=JS.bip32.fromPublicKey(i,r,e);return n.__DEPTH=t.depth,n.__INDEX=t.child_num,n.__PARENT_FINGERPRINT=t.fingerprint,n},get=(t,e,r)=>{let i=JS.bip32.fromBase58(t,e);return r&&(i.network=r),i.toBase58()};ao.convertXpub=get;var yet=(t,e)=>{if(e.bip32.public===76067358)return t;let r=JS.bip32.fromBase58(t);return r.network=e,r.toBase58()};ao.convertBitcoinXpub=yet;var Bpe=(t,e)=>{let r=t.node,i=met(r,e),n=i.toBase58(),a=(0,ao.convertXpub)(t.xpub,e);if(n!==a)throw Fpe.ERRORS.TypedError("Runtime",`pubKey2bjsNode: Invalid public key transmission detected. Key: ${n}, Received: ${a}`);return i},vet=(t,e,r)=>{let n=t.derive(r).toBase58(),a=e.toBase58();if(n!==a)throw Fpe.ERRORS.TypedError("Runtime",`checkDerivation: Invalid child cross-check public key. Derived: ${n}, Received: ${a}`)};function bet(t,e,r,i,n){let a=Bpe(t,i),s=Bpe(e,i);return vet(a,s,r),t}ao.xpubDerive=bet;var _et=(t,e)=>{let r=JS.bip32.fromBase58(t,e);return{depth:r.depth,child_num:r.index,fingerprint:r.parentFingerprint,public_key:r.publicKey.toString("hex"),chain_code:r.chainCode.toString("hex")}};ao.xpubToHDNodeType=_et;var wet=(t,e)=>{var r;return"multisig"in e&&((r=e.multisig)===null||r===void 0?void 0:r.pubkeys)&&e.multisig.pubkeys.forEach(i=>{typeof i.node=="string"&&(i.node=(0,ao.xpubToHDNodeType)(i.node,t))}),e};ao.convertMultisigPubKey=wet});var D3=x(bl=>{"use strict";Object.defineProperty(bl,"__esModule",{value:!0});bl.isUtxoBased=bl.getPublicKeyLabel=bl.getAccountLabel=bl.getAccountAddressN=void 0;var fn=Gt(),xet=qt(),Eet=Pt(),Tet=(t,e,r)=>{if(!t)throw Eet.ERRORS.TypedError("Method_UnknownCoin");let i=typeof e=="number"?e:0,n={purpose:44,coinType:t.slip44,...r};return t.type==="bitcoin"?[(0,fn.toHardened)(n.purpose),(0,fn.toHardened)(n.coinType),(0,fn.toHardened)(i)]:t.shortcut==="ADA"||t.shortcut==="tADA"?[(0,fn.toHardened)(1852),(0,fn.toHardened)(n.coinType),(0,fn.toHardened)(i)]:t.type==="ethereum"?[(0,fn.toHardened)(n.purpose),(0,fn.toHardened)(n.coinType),(0,fn.toHardened)(0),0,i]:t.shortcut==="tXRP"?[(0,fn.toHardened)(n.purpose),(0,fn.toHardened)(144),(0,fn.toHardened)(i),0,0]:[(0,fn.toHardened)(n.purpose),(0,fn.toHardened)(n.coinType),(0,fn.toHardened)(i),0,0]};bl.getAccountAddressN=Tet;var Aet=(t,e)=>{if(e.type==="bitcoin"){let i=(0,fn.fromHardened)(t[0]),n=(0,fn.fromHardened)(t[2]),a="";return i===48?a="multisig":i===49&&e.segwit?a="segwit":i===44&&e.segwit&&(a="legacy"),`${a} account #${n+1}`}return`account #${(0,fn.fromHardened)(t[4])+1}`};bl.getAccountLabel=Aet;var Pet=(t,e)=>{let r=!1,i="Unknown coin";e?(i=e.label,r=e.segwit):i=(0,xet.getCoinName)(t);let n=(0,fn.fromHardened)(t[0]),a=t.length>=3?(0,fn.fromHardened)(t[2]):-1,s=a+1,o="Export public key",c="";if(n===45342){let u=(0,fn.fromHardened)(t[1]);a=(0,fn.fromHardened)(t[3]),s=a+1,o="Export Copay ID of",u===48?c="multisig":u===44&&(c="legacy")}else n===48?c=`${i} multisig`:n===44&&r?c=`${i} legacy`:n===84&&r?c=`${i} native segwit`:c=i;return s>0?`${o} of ${c} account #${s}`:o};bl.getPublicKeyLabel=Pet;var Oet=t=>t.type==="bitcoin"||t.shortcut==="ADA"||t.shortcut==="tADA";bl.isUtxoBased=Oet});var Iv=x(Wn=>{"use strict";Object.defineProperty(Wn,"__esModule",{value:!0});Wn.versionCompare=Wn.versionSplit=Wn.normalizeVersionArray=Wn.isValidVersionArray=Wn.isValidVersionString=void 0;var KS=3,Ret=new RegExp(/^[0-9]{1,3}(\.[0-9]{1,3}){0,2}$/),Met=t=>Ret.test(t);Wn.isValidVersionString=Met;var Cet=t=>{if(!Array.isArray(t)||t.length===0||t.length>KS||t[0]===0)return!1;for(let e=0;e{if(t.length===KS)return t;let e=[...t];for(let r=t.length;r(0,Wn.isValidVersionString)(t)?t.split(".").map(e=>Number(e)):[0,0,0];Wn.versionSplit=Net;var ket=(t,e)=>{if(typeof t=="string"&&typeof e=="string"&&t===e)return 0;let r=typeof t=="string"?(0,Wn.versionSplit)(t):t,i=typeof e=="string"?(0,Wn.versionSplit)(e):e,n=(0,Wn.isValidVersionArray)(r),a=(0,Wn.isValidVersionArray)(i);if(!n&&!a)return 0;if(!n&&a)return-1;if(n&&!a)return 1;let s=(0,Wn.normalizeVersionArray)(r),o=(0,Wn.normalizeVersionArray)(i);for(let c=0;co[c])return 1;if(o[c]>s[c])return-1}return 0};Wn.versionCompare=ket});var Lpe=x(ZS=>{"use strict";Object.defineProperty(ZS,"__esModule",{value:!0});ZS.DeviceCommands=void 0;var qpe=mr(),Bet=qpe.__importDefault(rx()),qh=Pt(),Fh=rr(),Dh=qpe.__importStar(XS()),ms=Gt(),Fet=D3(),Det=Iv(),WS=qt(),qet=Tf(),GB=(0,qet.initLog)("DeviceCommands"),Let=(t,e)=>{if(!(Array.isArray(e)?e:e.split("|")).includes(t.type))throw qh.ERRORS.TypedError("Runtime",`assertType: Response of unexpected type: ${t.type}. Should be ${e}`)},Uet=t=>{try{return(0,Bet.default)(t)}catch{throw qh.ERRORS.TypedError("Runtime","generateEntropy: Environment does not support crypto random")}},Dpe=(t,e)=>{let r={};return t in r?{...e,...r[t]}:e},JB=class{constructor(e,r,i){this.device=e,this.transport=r,this.sessionId=i,this.disposed=!1}dispose(){this.disposed=!0,this._cancelableRequest=void 0}isDisposed(){return this.disposed}unlockPath(e){return this.typedCall("UnlockPath","UnlockedPathRequest",e)}async getPublicKey(e,r){return r&&await this.unlockPath(r),(await this.typedCall("GetPublicKey","PublicKey",{address_n:e.address_n,coin_name:e.coin_name||"Bitcoin",script_type:e.script_type,show_display:e.show_display,ignore_xpub_magic:e.ignore_xpub_magic,ecdsa_curve_name:e.ecdsa_curve_name})).message}async getHDNode(e,r={}){let i=e.address_n,{coinInfo:n,unlockPath:a}=r,s=typeof r.validation=="boolean"?r.validation:!0;if(!this.device.atLeast(["1.7.2","2.0.10"])||!n)return this.getBitcoinHDNode(i,n);let o=null;e.script_type||(e.script_type=(0,ms.getScriptType)(i)),e.script_type==="SPENDP2SHWITNESS"?o=(0,WS.getSegwitNetwork)(n):e.script_type==="SPENDWITNESS"&&(o=(0,WS.getBech32Network)(n)),o||(o=n.network),e.coin_name||(e.coin_name=n.name);let c;if(e.show_display||!s)c=await this.getPublicKey(e,a);else{let d=i.concat([0]),p=await this.getPublicKey(e,a),b=await this.getPublicKey({...e,address_n:d},a);c=Dh.xpubDerive(p,b,0,o,n.network)}let u={path:i,serializedPath:(0,ms.getSerializedPath)(i),childNum:c.node.child_num,xpub:c.xpub,chainCode:c.node.chain_code,publicKey:c.node.public_key,fingerprint:c.node.fingerprint,depth:c.node.depth};if(o!==n.network&&(u.xpubSegwit=u.xpub,u.xpub=Dh.convertXpub(c.xpub,o,n.network)),(0,ms.isTaprootPath)(i)){let d=`${Number(c.root_fingerprint||0).toString(16).padStart(8,"0")}${u.serializedPath.substring(1)}`;u.xpubSegwit=`tr([${d}]${u.xpub}/<0;1>/*)`}return u}async getBitcoinHDNode(e,r,i=!0){let n;if(!i)n=await this.getPublicKey({address_n:e});else{let o=e.concat([0]),c=await this.getPublicKey({address_n:e}),u=await this.getPublicKey({address_n:o});n=Dh.xpubDerive(c,u,0)}let a={path:e,serializedPath:(0,ms.getSerializedPath)(e),childNum:n.node.child_num,xpub:r?Dh.convertBitcoinXpub(n.xpub,r.network):n.xpub,chainCode:n.node.chain_code,publicKey:n.node.public_key,fingerprint:n.node.fingerprint,depth:n.node.depth};if(r){let s=(0,WS.getBech32Network)(r),o=(0,WS.getSegwitNetwork)(r);s&&(0,ms.isBech32Path)(e)?a.xpubSegwit=Dh.convertBitcoinXpub(n.xpub,s):o&&(0,ms.isSegwitPath)(e)&&(a.xpubSegwit=Dh.convertBitcoinXpub(n.xpub,o))}return a}async getAddress({address_n:e,show_display:r,multisig:i,script_type:n},a){n||(n=(0,ms.getScriptType)(e),n==="SPENDMULTISIG"&&!i&&(n="SPENDADDRESS")),i&&i.pubkeys&&i.pubkeys.forEach(o=>{typeof o.node=="string"&&(o.node=Dh.xpubToHDNodeType(o.node,a.network))});let s=await this.typedCall("GetAddress","Address",{address_n:e,coin_name:a.name,show_display:r,multisig:i,script_type:n||"SPENDADDRESS"});return{path:e,serializedPath:(0,ms.getSerializedPath)(e),address:s.message.address}}async ethereumGetAddress({address_n:e,show_display:r}){let i=await this.typedCall("EthereumGetAddress","EthereumAddress",{address_n:e,show_display:r});return{path:e,serializedPath:(0,ms.getSerializedPath)(e),address:i.message.address}}async ethereumGetPublicKey({address_n:e,show_display:r}){if(!this.device.atLeast(["1.8.1","2.1.0"]))return this.getHDNode({address_n:e});let i=0,n=e.concat([i]),a=await this.typedCall("EthereumGetPublicKey","EthereumPublicKey",{address_n:e,show_display:r}),s=await this.typedCall("EthereumGetPublicKey","EthereumPublicKey",{address_n:n,show_display:!1}),o=Dh.xpubDerive(a.message,s.message,i);return{path:e,serializedPath:(0,ms.getSerializedPath)(e),childNum:o.node.child_num,xpub:o.xpub,chainCode:o.node.chain_code,publicKey:o.node.public_key,fingerprint:o.node.fingerprint,depth:o.node.depth}}async preauthorize(e){try{return await this.typedCall("DoPreauthorized","PreauthorizedRequest",{}),!0}catch(r){if(e)throw r;return!1}}getDeviceState(e){return this.device.atLeast("2.4.3")?this._getAddressForNetworkType():this._getAddressForNetworkType(e)}async call(e,r={}){let i=Dpe(e,r);GB.debug("Sending",e,i);try{let n=this.transport.call(this.sessionId,e,r,!1);this.callPromise=n;let a=await n,s=Dpe(a.type,a.message);return GB.debug("Received",a.type,s),a}catch(n){throw GB.warn("Received error",n),n}}async typedCall(e,r,i){if(this.disposed)throw qh.ERRORS.TypedError("Runtime","typedCall: DeviceCommands already disposed");let n=await this._commonCall(e,i);try{Let(n,r)}catch(a){throw await this.transport.read(this.sessionId,!1),a}return n}async _commonCall(e,r){let i=await this.call(e,r);return this._filterCommonTypes(i)}_filterCommonTypes(e){if(e.type==="Failure"){let{code:r}=e.message,{message:i}=e.message;return r==="Failure_FirmwareError"&&!i&&(i="Firmware installation failed"),r==="Failure_ActionCancelled"&&!i&&(i="Action cancelled by user"),Promise.reject(new qh.ERRORS.TrezorError(r||"Failure_UnknownCode",i||"Failure_UnknownMessage"))}if(e.type==="Features")return Promise.resolve(e);if(e.type==="ButtonRequest")return e.message.code==="_Deprecated_ButtonRequest_PassphraseType"&&(e.message.code="ButtonRequest_PassphraseType"),e.message.code==="ButtonRequest_PassphraseEntry"?this.device.emit(Fh.DEVICE.PASSPHRASE_ON_DEVICE,this.device):this.device.emit(Fh.DEVICE.BUTTON,this.device,e.message),this._commonCall("ButtonAck",{});if(e.type==="EntropyRequest")return this._commonCall("EntropyAck",{entropy:Uet(32).toString("hex")});if(e.type==="PinMatrixRequest")return this._promptPin(e.message.type).then(r=>this._commonCall("PinMatrixAck",{pin:r}),()=>this._commonCall("Cancel",{}));if(e.type==="PassphraseRequest"){let r=this.device.getInternalState(),i=this.device.useLegacyPassphrase(),n=i&&this.device.isT1();return n&&typeof r=="string"?this._commonCall("PassphraseAck",{passphrase:r}):i&&e.message._on_device?(this.device.emit(Fh.DEVICE.PASSPHRASE_ON_DEVICE,this.device),this._commonCall("PassphraseAck",{_state:r})):this._promptPassphrase().then(a=>{let{passphrase:s,passphraseOnDevice:o,cache:c}=a;return n?(this.device.setInternalState(c?s:void 0),this._commonCall("PassphraseAck",{passphrase:s})):i?this._commonCall("PassphraseAck",{passphrase:s,_state:r}):o?this._commonCall("PassphraseAck",{on_device:!0}):this._commonCall("PassphraseAck",{passphrase:s})},a=>this._commonCall("Cancel",{}).catch(s=>{throw a||s}))}if(e.type==="Deprecated_PassphraseStateRequest"){let{state:r}=e.message;return this.device.setInternalState(r),this._commonCall("Deprecated_PassphraseStateAck",{})}return e.type==="WordRequest"?this._promptWord(e.message.type).then(r=>this._commonCall("WordAck",{word:r}),()=>this._commonCall("Cancel",{})):Promise.resolve(e)}async _getAddressForNetworkType(e){switch(e){case qh.NETWORK.TYPES.cardano:{let{message:r}=await this.typedCall("CardanoGetAddress","CardanoAddress",{address_parameters:{address_type:8,address_n:[(0,ms.toHardened)(44),(0,ms.toHardened)(1815),(0,ms.toHardened)(0),0,0],address_n_staking:[]},protocol_magic:42,network_id:0,derivation_type:2});return r.address}default:{let{message:r}=await this.typedCall("GetAddress","Address",{address_n:[(0,ms.toHardened)(44),(0,ms.toHardened)(1),(0,ms.toHardened)(0),0,0],coin_name:"Testnet",script_type:"SPENDADDRESS"});return r.address}}}_promptPin(e){return new Promise((r,i)=>{this.device.listenerCount(Fh.DEVICE.PIN)>0?(this._cancelableRequest=i,this.device.emit(Fh.DEVICE.PIN,this.device,e,(n,a)=>{this._cancelableRequest=void 0,n||a==null?i(n):r(a)})):(console.warn("[DeviceCommands] [call] PIN callback not configured, cancelling request"),i(qh.ERRORS.TypedError("Runtime","_promptPin: PIN callback not configured")))})}_promptPassphrase(){return new Promise((e,r)=>{this.device.listenerCount(Fh.DEVICE.PASSPHRASE)>0?(this._cancelableRequest=r,this.device.emit(Fh.DEVICE.PASSPHRASE,this.device,(i,n)=>{this._cancelableRequest=void 0,n?r(n):e(i)})):(console.warn("[DeviceCommands] [call] Passphrase callback not configured, cancelling request"),r(qh.ERRORS.TypedError("Runtime","_promptPassphrase: Passphrase callback not configured")))})}_promptWord(e){return new Promise((r,i)=>{this._cancelableRequest=i,this.device.emit(Fh.DEVICE.WORD,this.device,e,(n,a)=>{this._cancelableRequest=void 0,n||a==null?i(n):r(a.toLocaleLowerCase())})})}async getAccountDescriptor(e,r,i){let n=Array.isArray(r)?r:(0,Fet.getAccountAddressN)(e,r);if(e.type==="bitcoin"){let a=await this.getHDNode({address_n:n},{coinInfo:e,validation:!1});return{descriptor:a.xpubSegwit||a.xpub,legacyXpub:a.xpub,address_n:n}}if(e.type==="ethereum")return{descriptor:(await this.ethereumGetAddress({address_n:n})).address,address_n:n};if(e.shortcut==="ADA"||e.shortcut==="tADA"){if(typeof i>"u")throw new Error("Derivation type is not specified");let{message:a}=await this.typedCall("CardanoGetPublicKey","CardanoPublicKey",{address_n:n,derivation_type:i});return{descriptor:a.xpub,address_n:n}}if(e.shortcut==="XRP"||e.shortcut==="tXRP"){let{message:a}=await this.typedCall("RippleGetAddress","RippleAddress",{address_n:n});return{descriptor:a.address,address_n:n}}throw qh.ERRORS.TypedError("Runtime","DeviceCommands.getAccountDescriptor: unsupported coinInfo.type")}async cancel(){if(this._cancelableRequest){this._cancelableRequest(),this._cancelableRequest=void 0;return}if(this.disposed)return;let{name:e,version:r}=this.transport;e==="BridgeTransport"&&(0,Det.versionCompare)(r,"2.0.28")<1?await this.device.legacyForceRelease():(await this.transport.post(this.sessionId,"Cancel",{},!1).catch(()=>{}),await this.transport.read(this.sessionId,!1).catch(()=>{}))}};ZS.DeviceCommands=JB});var Upe=x(Lh=>{"use strict";Object.defineProperty(Lh,"__esModule",{value:!0});Lh.parseRevision=Lh.getUnavailableCapabilities=Lh.parseCapabilities=void 0;var XB=Iv(),jet=Qb(),Vet=["Capability_Bitcoin","Capability_Bitcoin_like","Capability_Crypto","Capability_Ethereum","Capability_NEM","Capability_Stellar","Capability_U2F"],Het=["Capability_Bitcoin","Capability_Bitcoin_like","Capability_Binance","Capability_Cardano","Capability_Crypto","Capability_EOS","Capability_Ethereum","Capability_Monero","Capability_NEM","Capability_Ripple","Capability_Stellar","Capability_Tezos","Capability_U2F"],zet=t=>!t||t.firmware_present===!1?[]:!t.capabilities||!t.capabilities.length?t.major_version===1?Vet:Het:t.capabilities;Lh.parseCapabilities=zet;var Get=(t,e)=>{let{capabilities:r}=t,i={};if(!r)return i;let n=[t.major_version,t.minor_version,t.patch_version],a=`trezor${t.major_version}`,s=e.filter(c=>!c.support||typeof c.support[a]!="string"?(i[c.shortcut.toLowerCase()]="no-support",!1):!0),o=s.filter(c=>c.type==="bitcoin"?c.name==="Bitcoin"||c.name==="Testnet"||c.name==="Regtest"?!r.includes("Capability_Bitcoin"):!r.includes("Capability_Bitcoin_like"):c.type==="ethereum"?!r.includes("Capability_Ethereum"):c.type==="nem"?!r.includes("Capability_NEM"):c.shortcut==="BNB"?!r.includes("Capability_Binance"):c.shortcut==="ADA"||c.shortcut==="tADA"?!r.includes("Capability_Cardano"):c.shortcut==="XRP"||c.shortcut==="tXRP"?!r.includes("Capability_Ripple"):!r.includes(`Capability_${c.name}`));return o.forEach(c=>{i[c.shortcut.toLowerCase()]="no-capability"}),s.filter(c=>!o.includes(c)).forEach(c=>{(0,XB.versionCompare)(c.support[a],n)>0&&(i[c.shortcut.toLowerCase()]="update-required",o.push(c))}),jet.config.supportedFirmware.forEach(c=>{if(!c.capabilities)return;let u=c.min?c.min[n[0]-1]:null,f=c.max?c.max[n[0]-1]:null;if(u&&(u==="0"||(0,XB.versionCompare)(u,n)>0)){let d=u==="0"?"no-support":"update-required";c.capabilities.forEach(p=>{i[p]=d})}f&&(0,XB.versionCompare)(f,n)<0&&c.capabilities.forEach(d=>{i[d]="trezor-connect-outdated"})}),i};Lh.getUnavailableCapabilities=Get;var Jet=t=>{let{revision:e}=t;if(!e)return null;if(/^(?=.*[a-f])([a-f0-9]*)$/gi.test(e))return e;let r=Buffer.from(e,"hex").toString("utf-8");return/^([a-f0-9])*$/gi.test(r)?r:e};Lh.parseRevision=Jet});var KB=x(_l=>{"use strict";Object.defineProperty(_l,"__esModule",{value:!0});_l.rejectTimeoutPromise=_l.resolveTimeoutPromise=_l.createAsync=_l.create=void 0;function Xet(t,e){let r=s=>{},i=s=>{},n,a=new Promise(async(s,o)=>{if(r=s,i=o,typeof t=="function")try{await t()}catch(c){o(c)}typeof t=="string"&&(n=t)});return{id:n,data:e,resolve:r,reject:i,promise:a}}_l.create=Xet;function Ket(t){let e=a=>{},r=a=>{},i=new Promise((a,s)=>{e=a,r=s}),n=async()=>{await t()};return{resolve:e,reject:r,promise:i,run:()=>(n(),i)}}_l.createAsync=Ket;function Wet(t,e){return new Promise(r=>{setTimeout(()=>{r(e)},t)})}_l.resolveTimeoutPromise=Wet;var Zet=(t,e)=>new Promise((r,i)=>{setTimeout(()=>{i(e)},t)});_l.rejectTimeoutPromise=Zet});var Hpe=x($S=>{"use strict";Object.defineProperty($S,"__esModule",{value:!0});$S.Device=void 0;var $et=mr(),Qet=$et.__importDefault(require("events")),Yet=Lpe(),q3=Pt(),kr=rr(),ett=qt(),jpe=zy(),WB=Upe(),Vpe=Iv(),L3=KB(),ttt=Tf(),Cc=(0,ttt.initLog)("Device"),rtt=t=>(t||(t={}),t),Nv=class extends Qet.default{constructor(e,r){super(),this.featuresNeedsReload=!1,this.deferredActions={},this.loaded=!1,this.inconsistent=!1,this.keepSession=!1,this.instance=0,this.internalState=[],this.externalState=[],this.unavailableCapabilities={},this.networkTypeState=[],this.firmwareType="regular",this.transport=e,this.originalDescriptor=r,this.firstRunPromise=(0,L3.create)()}static fromDescriptor(e,r){let i={...r,session:null};try{return new Nv(e,i)}catch(n){throw Cc.error("Device.fromDescriptor",n),n}}static createUnacquired(e,r,i){let n=new Nv(e,r);return n.unreadableError=i,n}async acquire(){this.deferredActions[kr.DEVICE.ACQUIRE]=(0,L3.create)(),this.deferredActions[kr.DEVICE.ACQUIRED]=(0,L3.create)();try{let e=await this.transport.acquire({path:this.originalDescriptor.path,previous:this.originalDescriptor.session},!1);Cc.debug("Expected session id:",e),this.activitySessionID=e,this.deferredActions[kr.DEVICE.ACQUIRED].resolve(),delete this.deferredActions[kr.DEVICE.ACQUIRED],this.commands&&this.commands.dispose(),this.commands=new Yet.DeviceCommands(this,this.transport,e),this.deferredActions[kr.DEVICE.RELEASE]=(0,L3.create)()}catch(e){if(this.deferredActions[kr.DEVICE.ACQUIRED].resolve(),delete this.deferredActions[kr.DEVICE.ACQUIRED],this.runPromise)this.runPromise.reject(e);else throw e;this.runPromise=null}}async release(){if(this.isUsedHere()&&!this.keepSession&&this.activitySessionID){if(this.commands&&(this.commands.dispose(),this.commands.callPromise))try{await this.commands.callPromise}catch{this.commands.callPromise=void 0}try{await this.transport.release(this.activitySessionID,!1,!1),this.deferredActions[kr.DEVICE.RELEASE]&&await this.deferredActions[kr.DEVICE.RELEASE].promise}catch{}}}async cleanup(){this.removeAllListeners(),this.runPromise=null,await this.release()}run(e,r){if(this.runPromise)throw Cc.warn("Previous call is still running"),q3.ERRORS.TypedError("Device_CallInProgress");return r=rtt(r),this.runPromise=(0,L3.create)(this._runInner.bind(this,e,r)),this.runPromise.promise}async override(e){this.deferredActions[kr.DEVICE.ACQUIRE]&&await this.deferredActions[kr.DEVICE.ACQUIRE].promise,this.runPromise&&await this.interruptionFromUser(e),!this.keepSession&&this.deferredActions[kr.DEVICE.RELEASE]&&await this.deferredActions[kr.DEVICE.RELEASE].promise}async interruptionFromUser(e){Cc.debug("interruptionFromUser"),this.commands&&(await this.commands.cancel(),this.commands.dispose()),this.runPromise&&(this.runPromise.reject(e),this.runPromise=null)}interruptionFromOutside(){Cc.debug("interruptionFromOutside"),this.commands&&this.commands.dispose(),this.runPromise&&(this.runPromise.reject(q3.ERRORS.TypedError("Device_UsedElsewhere")),this.runPromise=null)}async _runInner(e,r){var i;if(!this.isUsedHere()||((i=this.commands)===null||i===void 0?void 0:i.disposed)||!this.getExternalState()){await this.acquire();try{e?await this.initialize(!!r.useEmptyPassphrase,!!r.useCardanoDerivation):await Promise.race([this.getFeatures(),new Promise((n,a)=>setTimeout(()=>a(new Error("GetFeatures timeout")),3e3))])}catch(n){return!this.inconsistent&&n.message==="GetFeatures timeout"?(this.inconsistent=!0,this._runInner(()=>Promise.resolve({}),r)):(this.inconsistent=!0,await this.deferredActions[kr.DEVICE.ACQUIRE].promise,this.runPromise=null,Promise.reject(q3.ERRORS.TypedError("Device_InitializeFailed",`Initialize failed: ${n.message}, code: ${n.code}`)))}}r.keepSession&&(this.keepSession=!0),await this.deferredActions[kr.DEVICE.ACQUIRE].promise,e&&await e(),this.loaded&&this.features&&!r.skipFinalReload&&await this.getFeatures(),(!this.keepSession&&typeof r.keepSession!="boolean"||r.keepSession===!1)&&(this.keepSession=!1,await this.release()),this.runPromise&&this.runPromise.resolve(),this.runPromise=null,this.loaded||(this.loaded=!0,this.firstRunPromise.resolve(!0))}getCommands(){if(!this.commands)throw q3.ERRORS.TypedError("Runtime","Device: commands not defined");return this.commands}setInstance(e=0){this.instance!==e&&(this.keepSession&&(this.activitySessionID=null,this.keepSession=!1),this.isT1()&&this.useLegacyPassphrase()&&this.setInternalState(void 0)),this.instance=e}getInstance(){return this.instance}setInternalState(e){typeof e!="string"?delete this.internalState[this.instance]:this.internalState[this.instance]=e}getInternalState(){return this.internalState[this.instance]}setExternalState(e){typeof e!="string"?(delete this.internalState[this.instance],delete this.externalState[this.instance]):this.externalState[this.instance]=e}getExternalState(){return this.externalState[this.instance]}async validateState(e,r=!1){if(!this.features||!this.features.unlocked&&r&&await this.getCommands().preauthorize(!1))return;let n=this._altModeChange(e)?void 0:this.getExternalState(),s=`${await this.getCommands().getDeviceState(e)}@${this.features.device_id||"device_id"}:${this.instance}`;if(!this.useLegacyPassphrase()&&this.features.session_id&&this.setInternalState(this.features.session_id),n&&n!==s)return s;n||this.setExternalState(s)}useLegacyPassphrase(){return!this.atLeast(["1.9.0","2.3.0"])}async initialize(e,r){let i;if(this.features){let a=this.useLegacyPassphrase(),s=this.getInternalState();i={},i.derive_cardano=r,!a&&s&&(i.session_id=s),a&&!this.isT1()&&(i.session_id=s,e&&(i._skip_passphrase=e,i.session_id=void 0))}let{message:n}=await this.getCommands().typedCall("Initialize","Features",i);this._updateFeatures(n)}async getFeatures(){let{message:e}=await this.getCommands().typedCall("GetFeatures","Features",{});this._updateFeatures(e)}_updateFeatures(e){var r;let i=(0,WB.parseCapabilities)(e);e.capabilities=i;let n=[e.major_version,e.minor_version,e.patch_version],a=this.features&&this.features.capabilities&&this.features.capabilities.join("")!==i.join("");((0,Vpe.versionCompare)(n,this.getVersion())!==0||a)&&(this.unavailableCapabilities=(0,WB.getUnavailableCapabilities)(e,(0,ett.getAllNetworks)()),this.firmwareStatus=(0,jpe.getFirmwareStatus)(e),this.firmwareRelease=(0,jpe.getRelease)(e)),this.features&&this.features.session_id&&!e.session_id&&(e.session_id=this.features.session_id),e.unlocked=(r=e.unlocked)!==null&&r!==void 0?r:!0;let s=(0,WB.parseRevision)(e);e.revision=s,!e.model&&e.major_version===1&&(e.model="1"),this.features=e,this.featuresNeedsReload=!1,this.firmwareType=e.capabilities&&e.capabilities.length>0&&!e.capabilities.includes("Capability_Bitcoin_like")?"bitcoin-only":"regular"}isUnacquired(){return this.features===void 0}async updateDescriptor(e){let r=this.originalDescriptor.session,i=e.session;if(Cc.debug("updateDescriptor","currentSession",r,"upcoming",i,"lastUsedID",this.activitySessionID),!r&&!i&&!this.activitySessionID)return;this.deferredActions[kr.DEVICE.ACQUIRED]&&await this.deferredActions[kr.DEVICE.ACQUIRED].promise,i||this.listeners(kr.DEVICE.ACQUIRED).length>0&&this.emit(kr.DEVICE.ACQUIRED);let n=this.commands&&!this.commands.disposed;!i&&!n?(r===this.activitySessionID?(Cc.debug("Session released by this app"),this.deferredActions[kr.DEVICE.RELEASE]&&(this.deferredActions[kr.DEVICE.RELEASE].resolve(),delete this.deferredActions[kr.DEVICE.RELEASE]),this.activitySessionID=null):(Cc.debug("Session released by other app"),this.featuresNeedsReload=!0),this.keepSession=!1):i===this.activitySessionID?(Cc.debug("Session acquired by this app"),this.deferredActions[kr.DEVICE.ACQUIRE]&&this.deferredActions[kr.DEVICE.ACQUIRE].resolve()):(Cc.debug("Session acquired by other app"),this.interruptionFromOutside()),this.originalDescriptor=e}disconnect(){Cc.debug("Disconnect cleanup"),this.deferredActions[kr.DEVICE.RELEASE]&&(this.deferredActions[kr.DEVICE.RELEASE].resolve(),delete this.deferredActions[kr.DEVICE.RELEASE]),this.interruptionFromUser(q3.ERRORS.TypedError("Device_Disconnected")),this.runPromise=null}isBootloader(){return this.features&&!!this.features.bootloader_mode}isInitialized(){return this.features&&!!this.features.initialized}isSeedless(){return this.features&&!!this.features.no_backup}isInconsistent(){return this.inconsistent}getVersion(){return this.features?[this.features.major_version,this.features.minor_version,this.features.patch_version]:[]}atLeast(e){if(!this.features)return!1;let r=typeof e=="string"?e:e[this.features.major_version-1];return(0,Vpe.versionCompare)(this.getVersion(),r)>=0}isUsed(){return typeof this.originalDescriptor.session=="string"}isUsedHere(){return this.isUsed()&&this.originalDescriptor.session===this.activitySessionID}isUsedElsewhere(){return this.isUsed()&&!this.isUsedHere()}isRunning(){return!!this.runPromise}isLoaded(){return this.loaded}waitForFirstRun(){return this.firstRunPromise.promise}getDevicePath(){return this.originalDescriptor.path}isT1(){return this.features?this.features.major_version===1:!1}hasUnexpectedMode(e,r){if(this.features){if(this.isBootloader()&&!e.includes(kr.UI.BOOTLOADER))return kr.UI.BOOTLOADER;if(!this.isInitialized()&&!e.includes(kr.UI.INITIALIZE))return kr.UI.INITIALIZE;if(this.isSeedless()&&!e.includes(kr.UI.SEEDLESS))return kr.UI.SEEDLESS;if(!this.isBootloader()&&r.includes(kr.UI.BOOTLOADER))return kr.UI.NOT_IN_BOOTLOADER}return null}dispose(){if(this.removeAllListeners(),this.isUsedHere()&&this.activitySessionID)try{return this.commands&&this.commands.cancel(),this.transport.release(this.activitySessionID,!0)}catch{}}getMode(){return this.features.bootloader_mode?"bootloader":this.features.initialized?this.features.no_backup?"seedless":"normal":"initialize"}toMessageObject(){if(this.unreadableError)return{type:"unreadable",path:this.originalDescriptor.path,error:this.unreadableError,label:"Unreadable device"};if(this.isUnacquired())return{type:"unacquired",path:this.originalDescriptor.path,label:"Unacquired device"};let e="My Trezor",r=this.features.label===""||!this.features.label?e:this.features.label,i=this.isUsedElsewhere()?"occupied":"available";return this.featuresNeedsReload&&(i="used"),{type:"acquired",id:this.features.device_id||null,path:this.originalDescriptor.path,label:r,state:this.getExternalState(),status:i,mode:this.getMode(),firmware:this.firmwareStatus,firmwareRelease:this.firmwareRelease,firmwareType:this.firmwareType,features:this.features,unavailableCapabilities:this.unavailableCapabilities}}_getNetworkTypeState(){return this.networkTypeState[this.instance]}_setNetworkTypeState(e){typeof e!="string"?delete this.networkTypeState[this.instance]:this.networkTypeState[this.instance]=e}_altModeChange(e){let r=this._isAltModeNetworkType(this._getNetworkTypeState()),i=this._isAltModeNetworkType(e);return this._setNetworkTypeState(e),r!==i}_isAltModeNetworkType(e){return e?["cardano"].includes(e):!1}async legacyForceRelease(){this.isUsedHere()&&(await this.acquire(),await this.getFeatures(),await this.release())}};$S.Device=Nv});var Hu=x(QS=>{"use strict";Object.defineProperty(QS,"__esModule",{value:!0});QS.CustomError=void 0;var ZB="blockchain_link/",itt={worker_not_found:"Worker not found",worker_invalid:"Invalid worker object",worker_timeout:"Worker timeout",worker_unknown_request:"Unknown message type:",worker_runtime:void 0,invalid_param:"Invalid parameter:",websocket_not_initialized:"WebSocket not initialized",websocket_no_url:"Cannot connect because no server was specified",websocket_timeout:"Websocket timeout",websocket_error_message:void 0,websocket_runtime_error:void 0},$B=class extends Error{constructor(e,r=""){if(super(r),this.message="",this.message=r,typeof e=="string"){let i=e.indexOf(ZB)===0?e.substring(ZB.length,e.length):e;this.code=`${ZB}${i}`;let n=itt[i];typeof n=="string"&&(this.message===""?this.message=n:r.indexOf("+")===0&&(this.message=`${n} ${r.substr(1,r.length)}`))}(typeof this.message!="string"||this.message==="")&&(this.message="Message not set")}};QS.CustomError=$B});var zpe=x(lr=>{"use strict";Object.defineProperty(lr,"__esModule",{value:!0});lr.TERMINATE=lr.PUSH_TRANSACTION=lr.UNSUBSCRIBE=lr.SUBSCRIBE=lr.ESTIMATE_FEE=lr.GET_TRANSACTION=lr.GET_ACCOUNT_UTXO=lr.GET_ACCOUNT_INFO=lr.GET_BLOCK=lr.GET_BLOCK_HASH=lr.GET_FIAT_RATES_TICKERS_LIST=lr.GET_ACCOUNT_BALANCE_HISTORY=lr.GET_FIAT_RATES_FOR_TIMESTAMPS=lr.GET_CURRENT_FIAT_RATES=lr.GET_INFO=lr.DISCONNECT=lr.CONNECT=lr.INIT=lr.HANDSHAKE=void 0;lr.HANDSHAKE="m_handshake";lr.INIT="m_init";lr.CONNECT="m_connect";lr.DISCONNECT="m_disconnect";lr.GET_INFO="m_get_info";lr.GET_CURRENT_FIAT_RATES="m_get_current_fiat_rates";lr.GET_FIAT_RATES_FOR_TIMESTAMPS="m_get_fiat_rates_for_timestamps";lr.GET_ACCOUNT_BALANCE_HISTORY="m_get_account_balance_history";lr.GET_FIAT_RATES_TICKERS_LIST="m_get_fiat_rates_tickers_list";lr.GET_BLOCK_HASH="m_get_block_hash";lr.GET_BLOCK="m_get_block";lr.GET_ACCOUNT_INFO="m_get_account_info";lr.GET_ACCOUNT_UTXO="m_get_account_utxo";lr.GET_TRANSACTION="m_get_transaction";lr.ESTIMATE_FEE="m_estimate_fee";lr.SUBSCRIBE="m_subscribe";lr.UNSUBSCRIBE="m_unsubscribe";lr.PUSH_TRANSACTION="m_push_tx";lr.TERMINATE="terminate"});var Gpe=x(fr=>{"use strict";Object.defineProperty(fr,"__esModule",{value:!0});fr.NOTIFICATION=fr.DISCONNECTED=fr.CONNECTED=fr.PUSH_TRANSACTION=fr.UNSUBSCRIBE=fr.SUBSCRIBE=fr.ESTIMATE_FEE=fr.GET_TRANSACTION=fr.GET_ACCOUNT_BALANCE_HISTORY=fr.GET_ACCOUNT_UTXO=fr.GET_ACCOUNT_INFO=fr.GET_FIAT_RATES_TICKERS_LIST=fr.GET_FIAT_RATES_FOR_TIMESTAMPS=fr.GET_CURRENT_FIAT_RATES=fr.GET_BLOCK=fr.GET_BLOCK_HASH=fr.GET_INFO=fr.CONNECT=fr.ERROR=void 0;fr.ERROR="r_error";fr.CONNECT="r_connect";fr.GET_INFO="r_info";fr.GET_BLOCK_HASH="r_get_block_hash";fr.GET_BLOCK="r_get_block";fr.GET_CURRENT_FIAT_RATES="r_get_current_fiat_rates";fr.GET_FIAT_RATES_FOR_TIMESTAMPS="r_get_fiat_rates_for_timestamps";fr.GET_FIAT_RATES_TICKERS_LIST="r_GET_FIAT_RATES_TICKERS_LIST";fr.GET_ACCOUNT_INFO="r_account_info";fr.GET_ACCOUNT_UTXO="r_get_account_utxo";fr.GET_ACCOUNT_BALANCE_HISTORY="r_get_account_balance_history";fr.GET_TRANSACTION="r_get_transaction";fr.ESTIMATE_FEE="r_estimate_fee";fr.SUBSCRIBE="r_subscribe";fr.UNSUBSCRIBE="r_unsubscribe";fr.PUSH_TRANSACTION="r_push_tx";fr.CONNECTED="r_connected";fr.DISCONNECTED="r_disconnected";fr.NOTIFICATION="r_notification"});var ip=x(Uh=>{"use strict";Object.defineProperty(Uh,"__esModule",{value:!0});Uh.NETWORKS=Uh.RESPONSES=Uh.MESSAGES=void 0;var ntt=zpe();Uh.MESSAGES=ntt;var att=Gpe();Uh.RESPONSES=att;Uh.NETWORKS={RIPPLE:"ripple",BLOCKBOOK:"blockbook",BLOCKFROST:"blockfrost"}});var Xpe=x((Ekt,Jpe)=>{var kv=1e3,Bv=kv*60,Fv=Bv*60,Qm=Fv*24,stt=Qm*7,ott=Qm*365.25;Jpe.exports=function(t,e){e=e||{};var r=typeof t;if(r==="string"&&t.length>0)return utt(t);if(r==="number"&&isFinite(t))return e.long?dtt(t):ctt(t);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(t))};function utt(t){if(t=String(t),!(t.length>100)){var e=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(t);if(!!e){var r=parseFloat(e[1]),i=(e[2]||"ms").toLowerCase();switch(i){case"years":case"year":case"yrs":case"yr":case"y":return r*ott;case"weeks":case"week":case"w":return r*stt;case"days":case"day":case"d":return r*Qm;case"hours":case"hour":case"hrs":case"hr":case"h":return r*Fv;case"minutes":case"minute":case"mins":case"min":case"m":return r*Bv;case"seconds":case"second":case"secs":case"sec":case"s":return r*kv;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return r;default:return}}}}function ctt(t){var e=Math.abs(t);return e>=Qm?Math.round(t/Qm)+"d":e>=Fv?Math.round(t/Fv)+"h":e>=Bv?Math.round(t/Bv)+"m":e>=kv?Math.round(t/kv)+"s":t+"ms"}function dtt(t){var e=Math.abs(t);return e>=Qm?YS(t,e,Qm,"day"):e>=Fv?YS(t,e,Fv,"hour"):e>=Bv?YS(t,e,Bv,"minute"):e>=kv?YS(t,e,kv,"second"):t+" ms"}function YS(t,e,r,i){var n=e>=r*1.5;return Math.round(t/r)+" "+i+(n?"s":"")}});var QB=x((Tkt,Kpe)=>{function ltt(t){r.debug=r,r.default=r,r.coerce=c,r.disable=a,r.enable=n,r.enabled=s,r.humanize=Xpe(),r.destroy=u,Object.keys(t).forEach(f=>{r[f]=t[f]}),r.names=[],r.skips=[],r.formatters={};function e(f){let d=0;for(let p=0;p{if(ce==="%%")return"%";ge++;let ne=r.formatters[me];if(typeof ne=="function"){let ee=L[ge];ce=ne.call(U,ee),L.splice(ge,1),ge--}return ce}),r.formatArgs.call(U,L),(U.log||r.log).apply(U,L)}return I.namespace=f,I.useColors=r.useColors(),I.color=r.selectColor(f),I.extend=i,I.destroy=r.destroy,Object.defineProperty(I,"enabled",{enumerable:!0,configurable:!1,get:()=>p!==null?p:(b!==r.namespaces&&(b=r.namespaces,T=r.enabled(f)),T),set:L=>{p=L}}),typeof r.init=="function"&&r.init(I),I}function i(f,d){let p=r(this.namespace+(typeof d>"u"?":":d)+f);return p.log=this.log,p}function n(f){r.save(f),r.namespaces=f,r.names=[],r.skips=[];let d,p=(typeof f=="string"?f:"").split(/[\s,]+/),b=p.length;for(d=0;d"-"+d)].join(",");return r.enable(""),f}function s(f){if(f[f.length-1]==="*")return!0;let d,p;for(d=0,p=r.skips.length;d{Vo.formatArgs=ptt;Vo.save=htt;Vo.load=mtt;Vo.useColors=ftt;Vo.storage=gtt();Vo.destroy=(()=>{let t=!1;return()=>{t||(t=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."))}})();Vo.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"];function ftt(){return typeof window<"u"&&window.process&&(window.process.type==="renderer"||window.process.__nwjs)?!0:typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/)?!1:typeof document<"u"&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||typeof window<"u"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)&&parseInt(RegExp.$1,10)>=31||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)}function ptt(t){if(t[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+t[0]+(this.useColors?"%c ":" ")+"+"+eE.exports.humanize(this.diff),!this.useColors)return;let e="color: "+this.color;t.splice(1,0,e,"color: inherit");let r=0,i=0;t[0].replace(/%[a-zA-Z%]/g,n=>{n!=="%%"&&(r++,n==="%c"&&(i=r))}),t.splice(i,0,e)}Vo.log=console.debug||console.log||(()=>{});function htt(t){try{t?Vo.storage.setItem("debug",t):Vo.storage.removeItem("debug")}catch{}}function mtt(){let t;try{t=Vo.storage.getItem("debug")}catch{}return!t&&typeof process<"u"&&"env"in process&&(t=process.env.DEBUG),t}function gtt(){try{return localStorage}catch{}}eE.exports=QB()(Vo);var{formatters:ytt}=eE.exports;ytt.j=function(t){try{return JSON.stringify(t)}catch(e){return"[UnexpectedJSONParseError]: "+e.message}}});var $pe=x((Akt,Zpe)=>{"use strict";Zpe.exports=(t,e=process.argv)=>{let r=t.startsWith("-")?"":t.length===1?"-":"--",i=e.indexOf(r+t),n=e.indexOf("--");return i!==-1&&(n===-1||i{"use strict";var vtt=require("os"),Qpe=require("tty"),zu=$pe(),{env:_a}=process,jh;zu("no-color")||zu("no-colors")||zu("color=false")||zu("color=never")?jh=0:(zu("color")||zu("colors")||zu("color=true")||zu("color=always"))&&(jh=1);"FORCE_COLOR"in _a&&(_a.FORCE_COLOR==="true"?jh=1:_a.FORCE_COLOR==="false"?jh=0:jh=_a.FORCE_COLOR.length===0?1:Math.min(parseInt(_a.FORCE_COLOR,10),3));function YB(t){return t===0?!1:{level:t,hasBasic:!0,has256:t>=2,has16m:t>=3}}function eF(t,e){if(jh===0)return 0;if(zu("color=16m")||zu("color=full")||zu("color=truecolor"))return 3;if(zu("color=256"))return 2;if(t&&!e&&jh===void 0)return 0;let r=jh||0;if(_a.TERM==="dumb")return r;if(process.platform==="win32"){let i=vtt.release().split(".");return Number(i[0])>=10&&Number(i[2])>=10586?Number(i[2])>=14931?3:2:1}if("CI"in _a)return["TRAVIS","CIRCLECI","APPVEYOR","GITLAB_CI","GITHUB_ACTIONS","BUILDKITE"].some(i=>i in _a)||_a.CI_NAME==="codeship"?1:r;if("TEAMCITY_VERSION"in _a)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(_a.TEAMCITY_VERSION)?1:0;if(_a.COLORTERM==="truecolor")return 3;if("TERM_PROGRAM"in _a){let i=parseInt((_a.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(_a.TERM_PROGRAM){case"iTerm.app":return i>=3?3:2;case"Apple_Terminal":return 2}}return/-256(color)?$/i.test(_a.TERM)?2:/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(_a.TERM)||"COLORTERM"in _a?1:r}function btt(t){let e=eF(t,t&&t.isTTY);return YB(e)}Ype.exports={supportsColor:btt,stdout:YB(eF(!0,Qpe.isatty(1))),stderr:YB(eF(!0,Qpe.isatty(2)))}});var r0e=x((Ja,rE)=>{var _tt=require("tty"),tE=require("util");Ja.init=Ptt;Ja.log=Ett;Ja.formatArgs=xtt;Ja.save=Ttt;Ja.load=Att;Ja.useColors=wtt;Ja.destroy=tE.deprecate(()=>{},"Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.");Ja.colors=[6,2,3,4,5,1];try{let t=e0e();t&&(t.stderr||t).level>=2&&(Ja.colors=[20,21,26,27,32,33,38,39,40,41,42,43,44,45,56,57,62,63,68,69,74,75,76,77,78,79,80,81,92,93,98,99,112,113,128,129,134,135,148,149,160,161,162,163,164,165,166,167,168,169,170,171,172,173,178,179,184,185,196,197,198,199,200,201,202,203,204,205,206,207,208,209,214,215,220,221])}catch{}Ja.inspectOpts=Object.keys(process.env).filter(t=>/^debug_/i.test(t)).reduce((t,e)=>{let r=e.substring(6).toLowerCase().replace(/_([a-z])/g,(n,a)=>a.toUpperCase()),i=process.env[e];return/^(yes|on|true|enabled)$/i.test(i)?i=!0:/^(no|off|false|disabled)$/i.test(i)?i=!1:i==="null"?i=null:i=Number(i),t[r]=i,t},{});function wtt(){return"colors"in Ja.inspectOpts?Boolean(Ja.inspectOpts.colors):_tt.isatty(process.stderr.fd)}function xtt(t){let{namespace:e,useColors:r}=this;if(r){let i=this.color,n="\x1B[3"+(i<8?i:"8;5;"+i),a=` ${n};1m${e} \x1B[0m`;t[0]=a+t[0].split(` +`).join(` +`+a),t.push(n+"m+"+rE.exports.humanize(this.diff)+"\x1B[0m")}else t[0]=Stt()+e+" "+t[0]}function Stt(){return Ja.inspectOpts.hideDate?"":new Date().toISOString()+" "}function Ett(...t){return process.stderr.write(tE.format(...t)+` +`)}function Ttt(t){t?process.env.DEBUG=t:delete process.env.DEBUG}function Att(){return process.env.DEBUG}function Ptt(t){t.inspectOpts={};let e=Object.keys(Ja.inspectOpts);for(let r=0;re.trim()).join(" ")};t0e.O=function(t){return this.inspectOpts.colors=this.useColors,tE.inspect(t,this.inspectOpts)}});var U3=x((Okt,tF)=>{typeof process>"u"||process.type==="renderer"||process.browser===!0||process.__nwjs?tF.exports=Wpe():tF.exports=r0e()});var i0e=x(rF=>{"use strict";Object.defineProperty(rF,"__esModule",{value:!0});function Ott(t){return function(e,r){return new Promise((i,n)=>{t.call(this,e,r,(a,s)=>{a?n(a):i(s)})})}}rF.default=Ott});var aF=x((nF,a0e)=>{"use strict";var n0e=nF&&nF.__importDefault||function(t){return t&&t.__esModule?t:{default:t}},Rtt=require("events"),Mtt=n0e(U3()),Ctt=n0e(i0e()),j3=Mtt.default("agent-base");function Itt(t){return Boolean(t)&&typeof t.addRequest=="function"}function iF(){let{stack:t}=new Error;return typeof t!="string"?!1:t.split(` +`).some(e=>e.indexOf("(https.js:")!==-1||e.indexOf("node:https:")!==-1)}function iE(t,e){return new iE.Agent(t,e)}(function(t){class e extends Rtt.EventEmitter{constructor(i,n){super();let a=n;typeof i=="function"?this.callback=i:i&&(a=i),this.timeout=null,a&&typeof a.timeout=="number"&&(this.timeout=a.timeout),this.maxFreeSockets=1,this.maxSockets=1,this.maxTotalSockets=1/0,this.sockets={},this.freeSockets={},this.requests={},this.options={}}get defaultPort(){return typeof this.explicitDefaultPort=="number"?this.explicitDefaultPort:iF()?443:80}set defaultPort(i){this.explicitDefaultPort=i}get protocol(){return typeof this.explicitProtocol=="string"?this.explicitProtocol:iF()?"https:":"http:"}set protocol(i){this.explicitProtocol=i}callback(i,n,a){throw new Error('"agent-base" has no default implementation, you must subclass and override `callback()`')}addRequest(i,n){let a=Object.assign({},n);typeof a.secureEndpoint!="boolean"&&(a.secureEndpoint=iF()),a.host==null&&(a.host="localhost"),a.port==null&&(a.port=a.secureEndpoint?443:80),a.protocol==null&&(a.protocol=a.secureEndpoint?"https:":"http:"),a.host&&a.path&&delete a.path,delete a.agent,delete a.hostname,delete a._defaultAgent,delete a.defaultPort,delete a.createConnection,i._last=!0,i.shouldKeepAlive=!1;let s=!1,o=null,c=a.timeout||this.timeout,u=b=>{i._hadError||(i.emit("error",b),i._hadError=!0)},f=()=>{o=null,s=!0;let b=new Error(`A "socket" was not created for HTTP request before ${c}ms`);b.code="ETIMEOUT",u(b)},d=b=>{s||(o!==null&&(clearTimeout(o),o=null),u(b))},p=b=>{if(s)return;if(o!=null&&(clearTimeout(o),o=null),Itt(b)){j3("Callback returned another Agent instance %o",b.constructor.name),b.addRequest(i,a);return}if(b){b.once("free",()=>{this.freeSocket(b,a)}),i.onSocket(b);return}let T=new Error(`no Duplex stream was returned to agent-base for \`${i.method} ${i.path}\``);u(T)};if(typeof this.callback!="function"){u(new Error("`callback` is not defined"));return}this.promisifiedCallback||(this.callback.length>=3?(j3("Converting legacy callback function to promise"),this.promisifiedCallback=Ctt.default(this.callback)):this.promisifiedCallback=this.callback),typeof c=="number"&&c>0&&(o=setTimeout(f,c)),"port"in a&&typeof a.port!="number"&&(a.port=Number(a.port));try{j3("Resolving socket for %o request: %o",a.protocol,`${i.method} ${i.path}`),Promise.resolve(this.promisifiedCallback(i,a)).then(p,d)}catch(b){Promise.reject(b).catch(d)}}freeSocket(i,n){j3("Freeing socket %o %o",i.constructor.name,n),i.destroy()}destroy(){j3("Destroying agent %o",this.constructor.name)}}t.Agent=e,t.prototype=t.Agent.prototype})(iE||(iE={}));a0e.exports=iE});var o0e=x(s0e=>{var Lt=s0e,{Buffer:nE}=require("buffer"),Ntt=require("os");Lt.toBuffer=function(t,e,r){r=~~r;let i;if(this.isV4Format(t))i=e||nE.alloc(r+4),t.split(/\./g).map(n=>{i[r++]=parseInt(n,10)&255});else if(this.isV6Format(t)){let n=t.split(":",8),a;for(a=0;a0;a--)s.push("0");n.splice(...s)}for(i=e||nE.alloc(r+16),a=0;a>8&255,i[r++]=s&255}}if(!i)throw Error(`Invalid ip address: ${t}`);return i};Lt.toString=function(t,e,r){e=~~e,r=r||t.length-e;let i=[];if(r===4){for(let n=0;n32?e="ipv6":e=V3(e);let r=4;e==="ipv6"&&(r=16);let i=nE.alloc(r);for(let n=0,a=i.length;n>s)&255}return Lt.toString(i)};Lt.mask=function(t,e){t=Lt.toBuffer(t),e=Lt.toBuffer(e);let r=nE.alloc(Math.max(t.length,e.length)),i;if(t.length===e.length)for(i=0;it.length&&(r=e,i=t);let n=r.length-i.length;for(let a=n;aV3(a.family)===e);return n.length===0?void 0:n[0].address}let i=Object.keys(r).map(n=>{let a=r[n].filter(s=>(s.family=V3(s.family),s.family!==e||Lt.isLoopback(s.address)?!1:t?t==="public"?Lt.isPrivate(s.address):Lt.isPublic(s.address):!0));return a.length?a[0].address:void 0}).filter(Boolean);return i.length?i[0]:Lt.loopback(e)};Lt.toLong=function(t){let e=0;return t.split(".").forEach(r=>{e<<=8,e+=parseInt(r)}),e>>>0};Lt.fromLong=function(t){return`${t>>>24}.${t>>16&255}.${t>>8&255}.${t&255}`}});var l0e=x(np=>{"use strict";Object.defineProperty(np,"__esModule",{value:!0});var u0e=require("buffer"),Ym={INVALID_ENCODING:"Invalid encoding provided. Please specify a valid encoding the internal Node.js Buffer supports.",INVALID_SMARTBUFFER_SIZE:"Invalid size provided. Size must be a valid integer greater than zero.",INVALID_SMARTBUFFER_BUFFER:"Invalid Buffer provided in SmartBufferOptions.",INVALID_SMARTBUFFER_OBJECT:"Invalid SmartBufferOptions object supplied to SmartBuffer constructor or factory methods.",INVALID_OFFSET:"An invalid offset value was provided.",INVALID_OFFSET_NON_NUMBER:"An invalid offset value was provided. A numeric value is required.",INVALID_LENGTH:"An invalid length value was provided.",INVALID_LENGTH_NON_NUMBER:"An invalid length value was provived. A numeric value is required.",INVALID_TARGET_OFFSET:"Target offset is beyond the bounds of the internal SmartBuffer data.",INVALID_TARGET_LENGTH:"Specified length value moves cursor beyong the bounds of the internal SmartBuffer data.",INVALID_READ_BEYOND_BOUNDS:"Attempted to read beyond the bounds of the managed data.",INVALID_WRITE_BEYOND_BOUNDS:"Attempted to write beyond the bounds of the managed data."};np.ERRORS=Ym;function Ftt(t){if(!u0e.Buffer.isEncoding(t))throw new Error(Ym.INVALID_ENCODING)}np.checkEncoding=Ftt;function c0e(t){return typeof t=="number"&&isFinite(t)&&Utt(t)}np.isFiniteInteger=c0e;function d0e(t,e){if(typeof t=="number"){if(!c0e(t)||t<0)throw new Error(e?Ym.INVALID_OFFSET:Ym.INVALID_LENGTH)}else throw new Error(e?Ym.INVALID_OFFSET_NON_NUMBER:Ym.INVALID_LENGTH_NON_NUMBER)}function Dtt(t){d0e(t,!1)}np.checkLengthValue=Dtt;function qtt(t){d0e(t,!0)}np.checkOffsetValue=qtt;function Ltt(t,e){if(t<0||t>e.length)throw new Error(Ym.INVALID_TARGET_OFFSET)}np.checkTargetOffset=Ltt;function Utt(t){return typeof t=="number"&&isFinite(t)&&Math.floor(t)===t}function jtt(t){if(typeof BigInt>"u")throw new Error("Platform does not support JS BigInt type.");if(typeof u0e.Buffer.prototype[t]>"u")throw new Error(`Platform does not support Buffer.prototype.${t}.`)}np.bigIntAndBufferInt64Check=jtt});var p0e=x(sF=>{"use strict";Object.defineProperty(sF,"__esModule",{value:!0});var pr=l0e(),f0e=4096,Vtt="utf8",H3=class{constructor(e){if(this.length=0,this._encoding=Vtt,this._writeOffset=0,this._readOffset=0,H3.isSmartBufferOptions(e))if(e.encoding&&(pr.checkEncoding(e.encoding),this._encoding=e.encoding),e.size)if(pr.isFiniteInteger(e.size)&&e.size>0)this._buff=Buffer.allocUnsafe(e.size);else throw new Error(pr.ERRORS.INVALID_SMARTBUFFER_SIZE);else if(e.buff)if(Buffer.isBuffer(e.buff))this._buff=e.buff,this.length=e.buff.length;else throw new Error(pr.ERRORS.INVALID_SMARTBUFFER_BUFFER);else this._buff=Buffer.allocUnsafe(f0e);else{if(typeof e<"u")throw new Error(pr.ERRORS.INVALID_SMARTBUFFER_OBJECT);this._buff=Buffer.allocUnsafe(f0e)}}static fromSize(e,r){return new this({size:e,encoding:r})}static fromBuffer(e,r){return new this({buff:e,encoding:r})}static fromOptions(e){return new this(e)}static isSmartBufferOptions(e){let r=e;return r&&(r.encoding!==void 0||r.size!==void 0||r.buff!==void 0)}readInt8(e){return this._readNumberValue(Buffer.prototype.readInt8,1,e)}readInt16BE(e){return this._readNumberValue(Buffer.prototype.readInt16BE,2,e)}readInt16LE(e){return this._readNumberValue(Buffer.prototype.readInt16LE,2,e)}readInt32BE(e){return this._readNumberValue(Buffer.prototype.readInt32BE,4,e)}readInt32LE(e){return this._readNumberValue(Buffer.prototype.readInt32LE,4,e)}readBigInt64BE(e){return pr.bigIntAndBufferInt64Check("readBigInt64BE"),this._readNumberValue(Buffer.prototype.readBigInt64BE,8,e)}readBigInt64LE(e){return pr.bigIntAndBufferInt64Check("readBigInt64LE"),this._readNumberValue(Buffer.prototype.readBigInt64LE,8,e)}writeInt8(e,r){return this._writeNumberValue(Buffer.prototype.writeInt8,1,e,r),this}insertInt8(e,r){return this._insertNumberValue(Buffer.prototype.writeInt8,1,e,r)}writeInt16BE(e,r){return this._writeNumberValue(Buffer.prototype.writeInt16BE,2,e,r)}insertInt16BE(e,r){return this._insertNumberValue(Buffer.prototype.writeInt16BE,2,e,r)}writeInt16LE(e,r){return this._writeNumberValue(Buffer.prototype.writeInt16LE,2,e,r)}insertInt16LE(e,r){return this._insertNumberValue(Buffer.prototype.writeInt16LE,2,e,r)}writeInt32BE(e,r){return this._writeNumberValue(Buffer.prototype.writeInt32BE,4,e,r)}insertInt32BE(e,r){return this._insertNumberValue(Buffer.prototype.writeInt32BE,4,e,r)}writeInt32LE(e,r){return this._writeNumberValue(Buffer.prototype.writeInt32LE,4,e,r)}insertInt32LE(e,r){return this._insertNumberValue(Buffer.prototype.writeInt32LE,4,e,r)}writeBigInt64BE(e,r){return pr.bigIntAndBufferInt64Check("writeBigInt64BE"),this._writeNumberValue(Buffer.prototype.writeBigInt64BE,8,e,r)}insertBigInt64BE(e,r){return pr.bigIntAndBufferInt64Check("writeBigInt64BE"),this._insertNumberValue(Buffer.prototype.writeBigInt64BE,8,e,r)}writeBigInt64LE(e,r){return pr.bigIntAndBufferInt64Check("writeBigInt64LE"),this._writeNumberValue(Buffer.prototype.writeBigInt64LE,8,e,r)}insertBigInt64LE(e,r){return pr.bigIntAndBufferInt64Check("writeBigInt64LE"),this._insertNumberValue(Buffer.prototype.writeBigInt64LE,8,e,r)}readUInt8(e){return this._readNumberValue(Buffer.prototype.readUInt8,1,e)}readUInt16BE(e){return this._readNumberValue(Buffer.prototype.readUInt16BE,2,e)}readUInt16LE(e){return this._readNumberValue(Buffer.prototype.readUInt16LE,2,e)}readUInt32BE(e){return this._readNumberValue(Buffer.prototype.readUInt32BE,4,e)}readUInt32LE(e){return this._readNumberValue(Buffer.prototype.readUInt32LE,4,e)}readBigUInt64BE(e){return pr.bigIntAndBufferInt64Check("readBigUInt64BE"),this._readNumberValue(Buffer.prototype.readBigUInt64BE,8,e)}readBigUInt64LE(e){return pr.bigIntAndBufferInt64Check("readBigUInt64LE"),this._readNumberValue(Buffer.prototype.readBigUInt64LE,8,e)}writeUInt8(e,r){return this._writeNumberValue(Buffer.prototype.writeUInt8,1,e,r)}insertUInt8(e,r){return this._insertNumberValue(Buffer.prototype.writeUInt8,1,e,r)}writeUInt16BE(e,r){return this._writeNumberValue(Buffer.prototype.writeUInt16BE,2,e,r)}insertUInt16BE(e,r){return this._insertNumberValue(Buffer.prototype.writeUInt16BE,2,e,r)}writeUInt16LE(e,r){return this._writeNumberValue(Buffer.prototype.writeUInt16LE,2,e,r)}insertUInt16LE(e,r){return this._insertNumberValue(Buffer.prototype.writeUInt16LE,2,e,r)}writeUInt32BE(e,r){return this._writeNumberValue(Buffer.prototype.writeUInt32BE,4,e,r)}insertUInt32BE(e,r){return this._insertNumberValue(Buffer.prototype.writeUInt32BE,4,e,r)}writeUInt32LE(e,r){return this._writeNumberValue(Buffer.prototype.writeUInt32LE,4,e,r)}insertUInt32LE(e,r){return this._insertNumberValue(Buffer.prototype.writeUInt32LE,4,e,r)}writeBigUInt64BE(e,r){return pr.bigIntAndBufferInt64Check("writeBigUInt64BE"),this._writeNumberValue(Buffer.prototype.writeBigUInt64BE,8,e,r)}insertBigUInt64BE(e,r){return pr.bigIntAndBufferInt64Check("writeBigUInt64BE"),this._insertNumberValue(Buffer.prototype.writeBigUInt64BE,8,e,r)}writeBigUInt64LE(e,r){return pr.bigIntAndBufferInt64Check("writeBigUInt64LE"),this._writeNumberValue(Buffer.prototype.writeBigUInt64LE,8,e,r)}insertBigUInt64LE(e,r){return pr.bigIntAndBufferInt64Check("writeBigUInt64LE"),this._insertNumberValue(Buffer.prototype.writeBigUInt64LE,8,e,r)}readFloatBE(e){return this._readNumberValue(Buffer.prototype.readFloatBE,4,e)}readFloatLE(e){return this._readNumberValue(Buffer.prototype.readFloatLE,4,e)}writeFloatBE(e,r){return this._writeNumberValue(Buffer.prototype.writeFloatBE,4,e,r)}insertFloatBE(e,r){return this._insertNumberValue(Buffer.prototype.writeFloatBE,4,e,r)}writeFloatLE(e,r){return this._writeNumberValue(Buffer.prototype.writeFloatLE,4,e,r)}insertFloatLE(e,r){return this._insertNumberValue(Buffer.prototype.writeFloatLE,4,e,r)}readDoubleBE(e){return this._readNumberValue(Buffer.prototype.readDoubleBE,8,e)}readDoubleLE(e){return this._readNumberValue(Buffer.prototype.readDoubleLE,8,e)}writeDoubleBE(e,r){return this._writeNumberValue(Buffer.prototype.writeDoubleBE,8,e,r)}insertDoubleBE(e,r){return this._insertNumberValue(Buffer.prototype.writeDoubleBE,8,e,r)}writeDoubleLE(e,r){return this._writeNumberValue(Buffer.prototype.writeDoubleLE,8,e,r)}insertDoubleLE(e,r){return this._insertNumberValue(Buffer.prototype.writeDoubleLE,8,e,r)}readString(e,r){let i;typeof e=="number"?(pr.checkLengthValue(e),i=Math.min(e,this.length-this._readOffset)):(r=e,i=this.length-this._readOffset),typeof r<"u"&&pr.checkEncoding(r);let n=this._buff.slice(this._readOffset,this._readOffset+i).toString(r||this._encoding);return this._readOffset+=i,n}insertString(e,r,i){return pr.checkOffsetValue(r),this._handleString(e,!0,r,i)}writeString(e,r,i){return this._handleString(e,!1,r,i)}readStringNT(e){typeof e<"u"&&pr.checkEncoding(e);let r=this.length;for(let n=this._readOffset;nthis.length)throw new Error(pr.ERRORS.INVALID_READ_BEYOND_BOUNDS)}ensureInsertable(e,r){pr.checkOffsetValue(r),this._ensureCapacity(this.length+e),rthis.length?this.length=r+e:this.length+=e}_ensureWriteable(e,r){let i=typeof r=="number"?r:this._writeOffset;this._ensureCapacity(i+e),i+e>this.length&&(this.length=i+e)}_ensureCapacity(e){let r=this._buff.length;if(e>r){let i=this._buff,n=r*3/2+1;n"u"&&(this._readOffset+=r),n}_insertNumberValue(e,r,i,n){return pr.checkOffsetValue(n),this.ensureInsertable(r,n),e.call(this._buff,i,n),this._writeOffset+=r,this}_writeNumberValue(e,r,i,n){if(typeof n=="number"){if(n<0)throw new Error(pr.ERRORS.INVALID_WRITE_BEYOND_BOUNDS);pr.checkOffsetValue(n)}let a=typeof n=="number"?n:this._writeOffset;return this._ensureWriteable(r,a),e.call(this._buff,i,a),typeof n=="number"?this._writeOffset=Math.max(this._writeOffset,a+r):this._writeOffset+=r,this}};sF.SmartBuffer=H3});var pF=x(Pi=>{"use strict";Object.defineProperty(Pi,"__esModule",{value:!0});Pi.SOCKS5_NO_ACCEPTABLE_AUTH=Pi.SOCKS5_CUSTOM_AUTH_END=Pi.SOCKS5_CUSTOM_AUTH_START=Pi.SOCKS_INCOMING_PACKET_SIZES=Pi.SocksClientState=Pi.Socks5Response=Pi.Socks5HostType=Pi.Socks5Auth=Pi.Socks4Response=Pi.SocksCommand=Pi.ERRORS=Pi.DEFAULT_TIMEOUT=void 0;var Htt=3e4;Pi.DEFAULT_TIMEOUT=Htt;var ztt={InvalidSocksCommand:"An invalid SOCKS command was provided. Valid options are connect, bind, and associate.",InvalidSocksCommandForOperation:"An invalid SOCKS command was provided. Only a subset of commands are supported for this operation.",InvalidSocksCommandChain:"An invalid SOCKS command was provided. Chaining currently only supports the connect command.",InvalidSocksClientOptionsDestination:"An invalid destination host was provided.",InvalidSocksClientOptionsExistingSocket:"An invalid existing socket was provided. This should be an instance of stream.Duplex.",InvalidSocksClientOptionsProxy:"Invalid SOCKS proxy details were provided.",InvalidSocksClientOptionsTimeout:"An invalid timeout value was provided. Please enter a value above 0 (in ms).",InvalidSocksClientOptionsProxiesLength:"At least two socks proxies must be provided for chaining.",InvalidSocksClientOptionsCustomAuthRange:"Custom auth must be a value between 0x80 and 0xFE.",InvalidSocksClientOptionsCustomAuthOptions:"When a custom_auth_method is provided, custom_auth_request_handler, custom_auth_response_size, and custom_auth_response_handler must also be provided and valid.",NegotiationError:"Negotiation error",SocketClosed:"Socket closed",ProxyConnectionTimedOut:"Proxy connection timed out",InternalError:"SocksClient internal error (this should not happen)",InvalidSocks4HandshakeResponse:"Received invalid Socks4 handshake response",Socks4ProxyRejectedConnection:"Socks4 Proxy rejected connection",InvalidSocks4IncomingConnectionResponse:"Socks4 invalid incoming connection response",Socks4ProxyRejectedIncomingBoundConnection:"Socks4 Proxy rejected incoming bound connection",InvalidSocks5InitialHandshakeResponse:"Received invalid Socks5 initial handshake response",InvalidSocks5IntiailHandshakeSocksVersion:"Received invalid Socks5 initial handshake (invalid socks version)",InvalidSocks5InitialHandshakeNoAcceptedAuthType:"Received invalid Socks5 initial handshake (no accepted authentication type)",InvalidSocks5InitialHandshakeUnknownAuthType:"Received invalid Socks5 initial handshake (unknown authentication type)",Socks5AuthenticationFailed:"Socks5 Authentication failed",InvalidSocks5FinalHandshake:"Received invalid Socks5 final handshake response",InvalidSocks5FinalHandshakeRejected:"Socks5 proxy rejected connection",InvalidSocks5IncomingConnectionResponse:"Received invalid Socks5 incoming connection response",Socks5ProxyRejectedIncomingBoundConnection:"Socks5 Proxy rejected incoming bound connection"};Pi.ERRORS=ztt;var Gtt={Socks5InitialHandshakeResponse:2,Socks5UserPassAuthenticationResponse:2,Socks5ResponseHeader:5,Socks5ResponseIPv4:10,Socks5ResponseIPv6:22,Socks5ResponseHostname:t=>t+7,Socks4Response:8};Pi.SOCKS_INCOMING_PACKET_SIZES=Gtt;var oF;(function(t){t[t.connect=1]="connect",t[t.bind=2]="bind",t[t.associate=3]="associate"})(oF||(oF={}));Pi.SocksCommand=oF;var uF;(function(t){t[t.Granted=90]="Granted",t[t.Failed=91]="Failed",t[t.Rejected=92]="Rejected",t[t.RejectedIdent=93]="RejectedIdent"})(uF||(uF={}));Pi.Socks4Response=uF;var cF;(function(t){t[t.NoAuth=0]="NoAuth",t[t.GSSApi=1]="GSSApi",t[t.UserPass=2]="UserPass"})(cF||(cF={}));Pi.Socks5Auth=cF;var Jtt=128;Pi.SOCKS5_CUSTOM_AUTH_START=Jtt;var Xtt=254;Pi.SOCKS5_CUSTOM_AUTH_END=Xtt;var Ktt=255;Pi.SOCKS5_NO_ACCEPTABLE_AUTH=Ktt;var dF;(function(t){t[t.Granted=0]="Granted",t[t.Failure=1]="Failure",t[t.NotAllowed=2]="NotAllowed",t[t.NetworkUnreachable=3]="NetworkUnreachable",t[t.HostUnreachable=4]="HostUnreachable",t[t.ConnectionRefused=5]="ConnectionRefused",t[t.TTLExpired=6]="TTLExpired",t[t.CommandNotSupported=7]="CommandNotSupported",t[t.AddressNotSupported=8]="AddressNotSupported"})(dF||(dF={}));Pi.Socks5Response=dF;var lF;(function(t){t[t.IPv4=1]="IPv4",t[t.Hostname=3]="Hostname",t[t.IPv6=4]="IPv6"})(lF||(lF={}));Pi.Socks5HostType=lF;var fF;(function(t){t[t.Created=0]="Created",t[t.Connecting=1]="Connecting",t[t.Connected=2]="Connected",t[t.SentInitialHandshake=3]="SentInitialHandshake",t[t.ReceivedInitialHandshakeResponse=4]="ReceivedInitialHandshakeResponse",t[t.SentAuthentication=5]="SentAuthentication",t[t.ReceivedAuthenticationResponse=6]="ReceivedAuthenticationResponse",t[t.SentFinalHandshake=7]="SentFinalHandshake",t[t.ReceivedFinalResponse=8]="ReceivedFinalResponse",t[t.BoundWaitingForConnection=9]="BoundWaitingForConnection",t[t.Established=10]="Established",t[t.Disconnected=11]="Disconnected",t[t.Error=99]="Error"})(fF||(fF={}));Pi.SocksClientState=fF});var mF=x(Dv=>{"use strict";Object.defineProperty(Dv,"__esModule",{value:!0});Dv.shuffleArray=Dv.SocksClientError=void 0;var hF=class extends Error{constructor(e,r){super(e),this.options=r}};Dv.SocksClientError=hF;function Wtt(t){for(let e=t.length-1;e>0;e--){let r=Math.floor(Math.random()*(e+1));[t[e],t[r]]=[t[r],t[e]]}}Dv.shuffleArray=Wtt});var v0e=x(qv=>{"use strict";Object.defineProperty(qv,"__esModule",{value:!0});qv.validateSocksClientChainOptions=qv.validateSocksClientOptions=void 0;var Is=mF(),wa=pF(),Ztt=require("stream");function $tt(t,e=["connect","bind","associate"]){if(!wa.SocksCommand[t.command])throw new Is.SocksClientError(wa.ERRORS.InvalidSocksCommand,t);if(e.indexOf(t.command)===-1)throw new Is.SocksClientError(wa.ERRORS.InvalidSocksCommandForOperation,t);if(!m0e(t.destination))throw new Is.SocksClientError(wa.ERRORS.InvalidSocksClientOptionsDestination,t);if(!g0e(t.proxy))throw new Is.SocksClientError(wa.ERRORS.InvalidSocksClientOptionsProxy,t);if(h0e(t.proxy,t),t.timeout&&!y0e(t.timeout))throw new Is.SocksClientError(wa.ERRORS.InvalidSocksClientOptionsTimeout,t);if(t.existing_socket&&!(t.existing_socket instanceof Ztt.Duplex))throw new Is.SocksClientError(wa.ERRORS.InvalidSocksClientOptionsExistingSocket,t)}qv.validateSocksClientOptions=$tt;function Qtt(t){if(t.command!=="connect")throw new Is.SocksClientError(wa.ERRORS.InvalidSocksCommandChain,t);if(!m0e(t.destination))throw new Is.SocksClientError(wa.ERRORS.InvalidSocksClientOptionsDestination,t);if(!(t.proxies&&Array.isArray(t.proxies)&&t.proxies.length>=2))throw new Is.SocksClientError(wa.ERRORS.InvalidSocksClientOptionsProxiesLength,t);if(t.proxies.forEach(e=>{if(!g0e(e))throw new Is.SocksClientError(wa.ERRORS.InvalidSocksClientOptionsProxy,t);h0e(e,t)}),t.timeout&&!y0e(t.timeout))throw new Is.SocksClientError(wa.ERRORS.InvalidSocksClientOptionsTimeout,t)}qv.validateSocksClientChainOptions=Qtt;function h0e(t,e){if(t.custom_auth_method!==void 0){if(t.custom_auth_methodwa.SOCKS5_CUSTOM_AUTH_END)throw new Is.SocksClientError(wa.ERRORS.InvalidSocksClientOptionsCustomAuthRange,e);if(t.custom_auth_request_handler===void 0||typeof t.custom_auth_request_handler!="function")throw new Is.SocksClientError(wa.ERRORS.InvalidSocksClientOptionsCustomAuthOptions,e);if(t.custom_auth_response_size===void 0)throw new Is.SocksClientError(wa.ERRORS.InvalidSocksClientOptionsCustomAuthOptions,e);if(t.custom_auth_response_handler===void 0||typeof t.custom_auth_response_handler!="function")throw new Is.SocksClientError(wa.ERRORS.InvalidSocksClientOptionsCustomAuthOptions,e)}}function m0e(t){return t&&typeof t.host=="string"&&typeof t.port=="number"&&t.port>=0&&t.port<=65535}function g0e(t){return t&&(typeof t.host=="string"||typeof t.ipaddress=="string")&&typeof t.port=="number"&&t.port>=0&&t.port<=65535&&(t.type===4||t.type===5)}function y0e(t){return typeof t=="number"&&t>0}});var b0e=x(aE=>{"use strict";Object.defineProperty(aE,"__esModule",{value:!0});aE.ReceiveBuffer=void 0;var gF=class{constructor(e=4096){this.buffer=Buffer.allocUnsafe(e),this.offset=0,this.originalSize=e}get length(){return this.offset}append(e){if(!Buffer.isBuffer(e))throw new Error("Attempted to append a non-buffer instance to ReceiveBuffer.");if(this.offset+e.length>=this.buffer.length){let r=this.buffer;this.buffer=Buffer.allocUnsafe(Math.max(this.buffer.length+this.originalSize,this.buffer.length+e.length)),r.copy(this.buffer)}return e.copy(this.buffer,this.offset),this.offset+=e.length}peek(e){if(e>this.offset)throw new Error("Attempted to read beyond the bounds of the managed internal data.");return this.buffer.slice(0,e)}get(e){if(e>this.offset)throw new Error("Attempted to read beyond the bounds of the managed internal data.");let r=Buffer.allocUnsafe(e);return this.buffer.slice(0,e).copy(r),this.buffer.copyWithin(0,e,e+this.offset-e),this.offset-=e,r}};aE.ReceiveBuffer=gF});var _0e=x(Vh=>{"use strict";var Lv=Vh&&Vh.__awaiter||function(t,e,r,i){function n(a){return a instanceof r?a:new r(function(s){s(a)})}return new(r||(r=Promise))(function(a,s){function o(f){try{u(i.next(f))}catch(d){s(d)}}function c(f){try{u(i.throw(f))}catch(d){s(d)}}function u(f){f.done?a(f.value):n(f.value).then(o,c)}u((i=i.apply(t,e||[])).next())})};Object.defineProperty(Vh,"__esModule",{value:!0});Vh.SocksClientError=Vh.SocksClient=void 0;var Ytt=require("events"),Uv=require("net"),Ho=o0e(),so=p0e(),tt=pF(),yF=v0e(),ert=b0e(),vF=mF();Object.defineProperty(Vh,"SocksClientError",{enumerable:!0,get:function(){return vF.SocksClientError}});var jv=class extends Ytt.EventEmitter{constructor(e){super(),this.options=Object.assign({},e),(0,yF.validateSocksClientOptions)(e),this.setState(tt.SocksClientState.Created)}static createConnection(e,r){return new Promise((i,n)=>{try{(0,yF.validateSocksClientOptions)(e,["connect"])}catch(s){return typeof r=="function"?(r(s),i(s)):n(s)}let a=new jv(e);a.connect(e.existing_socket),a.once("established",s=>{a.removeAllListeners(),typeof r=="function"&&r(null,s),i(s)}),a.once("error",s=>{a.removeAllListeners(),typeof r=="function"?(r(s),i(s)):n(s)})})}static createConnectionChain(e,r){return new Promise((i,n)=>Lv(this,void 0,void 0,function*(){try{(0,yF.validateSocksClientChainOptions)(e)}catch(a){return typeof r=="function"?(r(a),i(a)):n(a)}e.randomizeChain&&(0,vF.shuffleArray)(e.proxies);try{let a;for(let s=0;sthis.onDataReceivedHandler(i),this.onClose=()=>this.onCloseHandler(),this.onError=i=>this.onErrorHandler(i),this.onConnect=()=>this.onConnectHandler();let r=setTimeout(()=>this.onEstablishedTimeout(),this.options.timeout||tt.DEFAULT_TIMEOUT);r.unref&&typeof r.unref=="function"&&r.unref(),e?this.socket=e:this.socket=new Uv.Socket,this.socket.once("close",this.onClose),this.socket.once("error",this.onError),this.socket.once("connect",this.onConnect),this.socket.on("data",this.onDataReceived),this.setState(tt.SocksClientState.Connecting),this.receiveBuffer=new ert.ReceiveBuffer,e?this.socket.emit("connect"):(this.socket.connect(this.getSocketOptions()),this.options.set_tcp_nodelay!==void 0&&this.options.set_tcp_nodelay!==null&&this.socket.setNoDelay(!!this.options.set_tcp_nodelay)),this.prependOnceListener("established",i=>{setImmediate(()=>{if(this.receiveBuffer.length>0){let n=this.receiveBuffer.get(this.receiveBuffer.length);i.socket.emit("data",n)}i.socket.resume()})})}getSocketOptions(){return Object.assign(Object.assign({},this.options.socket_options),{host:this.options.proxy.host||this.options.proxy.ipaddress,port:this.options.proxy.port})}onEstablishedTimeout(){this.state!==tt.SocksClientState.Established&&this.state!==tt.SocksClientState.BoundWaitingForConnection&&this.closeSocket(tt.ERRORS.ProxyConnectionTimedOut)}onConnectHandler(){this.setState(tt.SocksClientState.Connected),this.options.proxy.type===4?this.sendSocks4InitialHandshake():this.sendSocks5InitialHandshake(),this.setState(tt.SocksClientState.SentInitialHandshake)}onDataReceivedHandler(e){this.receiveBuffer.append(e),this.processData()}processData(){for(;this.state!==tt.SocksClientState.Established&&this.state!==tt.SocksClientState.Error&&this.receiveBuffer.length>=this.nextRequiredPacketBufferSize;)if(this.state===tt.SocksClientState.SentInitialHandshake)this.options.proxy.type===4?this.handleSocks4FinalHandshakeResponse():this.handleInitialSocks5HandshakeResponse();else if(this.state===tt.SocksClientState.SentAuthentication)this.handleInitialSocks5AuthenticationHandshakeResponse();else if(this.state===tt.SocksClientState.SentFinalHandshake)this.handleSocks5FinalHandshakeResponse();else if(this.state===tt.SocksClientState.BoundWaitingForConnection)this.options.proxy.type===4?this.handleSocks4IncomingConnectionResponse():this.handleSocks5IncomingConnectionResponse();else{this.closeSocket(tt.ERRORS.InternalError);break}}onCloseHandler(){this.closeSocket(tt.ERRORS.SocketClosed)}onErrorHandler(e){this.closeSocket(e.message)}removeInternalSocketHandlers(){this.socket.pause(),this.socket.removeListener("data",this.onDataReceived),this.socket.removeListener("close",this.onClose),this.socket.removeListener("error",this.onError),this.socket.removeListener("connect",this.onConnect)}closeSocket(e){this.state!==tt.SocksClientState.Error&&(this.setState(tt.SocksClientState.Error),this.socket.destroy(),this.removeInternalSocketHandlers(),this.emit("error",new vF.SocksClientError(e,this.options)))}sendSocks4InitialHandshake(){let e=this.options.proxy.userId||"",r=new so.SmartBuffer;r.writeUInt8(4),r.writeUInt8(tt.SocksCommand[this.options.command]),r.writeUInt16BE(this.options.destination.port),Uv.isIPv4(this.options.destination.host)?(r.writeBuffer(Ho.toBuffer(this.options.destination.host)),r.writeStringNT(e)):(r.writeUInt8(0),r.writeUInt8(0),r.writeUInt8(0),r.writeUInt8(1),r.writeStringNT(e),r.writeStringNT(this.options.destination.host)),this.nextRequiredPacketBufferSize=tt.SOCKS_INCOMING_PACKET_SIZES.Socks4Response,this.socket.write(r.toBuffer())}handleSocks4FinalHandshakeResponse(){let e=this.receiveBuffer.get(8);if(e[1]!==tt.Socks4Response.Granted)this.closeSocket(`${tt.ERRORS.Socks4ProxyRejectedConnection} - (${tt.Socks4Response[e[1]]})`);else if(tt.SocksCommand[this.options.command]===tt.SocksCommand.bind){let r=so.SmartBuffer.fromBuffer(e);r.readOffset=2;let i={port:r.readUInt16BE(),host:Ho.fromLong(r.readUInt32BE())};i.host==="0.0.0.0"&&(i.host=this.options.proxy.ipaddress),this.setState(tt.SocksClientState.BoundWaitingForConnection),this.emit("bound",{remoteHost:i,socket:this.socket})}else this.setState(tt.SocksClientState.Established),this.removeInternalSocketHandlers(),this.emit("established",{socket:this.socket})}handleSocks4IncomingConnectionResponse(){let e=this.receiveBuffer.get(8);if(e[1]!==tt.Socks4Response.Granted)this.closeSocket(`${tt.ERRORS.Socks4ProxyRejectedIncomingBoundConnection} - (${tt.Socks4Response[e[1]]})`);else{let r=so.SmartBuffer.fromBuffer(e);r.readOffset=2;let i={port:r.readUInt16BE(),host:Ho.fromLong(r.readUInt32BE())};this.setState(tt.SocksClientState.Established),this.removeInternalSocketHandlers(),this.emit("established",{remoteHost:i,socket:this.socket})}}sendSocks5InitialHandshake(){let e=new so.SmartBuffer,r=[tt.Socks5Auth.NoAuth];(this.options.proxy.userId||this.options.proxy.password)&&r.push(tt.Socks5Auth.UserPass),this.options.proxy.custom_auth_method!==void 0&&r.push(this.options.proxy.custom_auth_method),e.writeUInt8(5),e.writeUInt8(r.length);for(let i of r)e.writeUInt8(i);this.nextRequiredPacketBufferSize=tt.SOCKS_INCOMING_PACKET_SIZES.Socks5InitialHandshakeResponse,this.socket.write(e.toBuffer()),this.setState(tt.SocksClientState.SentInitialHandshake)}handleInitialSocks5HandshakeResponse(){let e=this.receiveBuffer.get(2);e[0]!==5?this.closeSocket(tt.ERRORS.InvalidSocks5IntiailHandshakeSocksVersion):e[1]===tt.SOCKS5_NO_ACCEPTABLE_AUTH?this.closeSocket(tt.ERRORS.InvalidSocks5InitialHandshakeNoAcceptedAuthType):e[1]===tt.Socks5Auth.NoAuth?(this.socks5ChosenAuthType=tt.Socks5Auth.NoAuth,this.sendSocks5CommandRequest()):e[1]===tt.Socks5Auth.UserPass?(this.socks5ChosenAuthType=tt.Socks5Auth.UserPass,this.sendSocks5UserPassAuthentication()):e[1]===this.options.proxy.custom_auth_method?(this.socks5ChosenAuthType=this.options.proxy.custom_auth_method,this.sendSocks5CustomAuthentication()):this.closeSocket(tt.ERRORS.InvalidSocks5InitialHandshakeUnknownAuthType)}sendSocks5UserPassAuthentication(){let e=this.options.proxy.userId||"",r=this.options.proxy.password||"",i=new so.SmartBuffer;i.writeUInt8(1),i.writeUInt8(Buffer.byteLength(e)),i.writeString(e),i.writeUInt8(Buffer.byteLength(r)),i.writeString(r),this.nextRequiredPacketBufferSize=tt.SOCKS_INCOMING_PACKET_SIZES.Socks5UserPassAuthenticationResponse,this.socket.write(i.toBuffer()),this.setState(tt.SocksClientState.SentAuthentication)}sendSocks5CustomAuthentication(){return Lv(this,void 0,void 0,function*(){this.nextRequiredPacketBufferSize=this.options.proxy.custom_auth_response_size,this.socket.write(yield this.options.proxy.custom_auth_request_handler()),this.setState(tt.SocksClientState.SentAuthentication)})}handleSocks5CustomAuthHandshakeResponse(e){return Lv(this,void 0,void 0,function*(){return yield this.options.proxy.custom_auth_response_handler(e)})}handleSocks5AuthenticationNoAuthHandshakeResponse(e){return Lv(this,void 0,void 0,function*(){return e[1]===0})}handleSocks5AuthenticationUserPassHandshakeResponse(e){return Lv(this,void 0,void 0,function*(){return e[1]===0})}handleInitialSocks5AuthenticationHandshakeResponse(){return Lv(this,void 0,void 0,function*(){this.setState(tt.SocksClientState.ReceivedAuthenticationResponse);let e=!1;this.socks5ChosenAuthType===tt.Socks5Auth.NoAuth?e=yield this.handleSocks5AuthenticationNoAuthHandshakeResponse(this.receiveBuffer.get(2)):this.socks5ChosenAuthType===tt.Socks5Auth.UserPass?e=yield this.handleSocks5AuthenticationUserPassHandshakeResponse(this.receiveBuffer.get(2)):this.socks5ChosenAuthType===this.options.proxy.custom_auth_method&&(e=yield this.handleSocks5CustomAuthHandshakeResponse(this.receiveBuffer.get(this.options.proxy.custom_auth_response_size))),e?this.sendSocks5CommandRequest():this.closeSocket(tt.ERRORS.Socks5AuthenticationFailed)})}sendSocks5CommandRequest(){let e=new so.SmartBuffer;e.writeUInt8(5),e.writeUInt8(tt.SocksCommand[this.options.command]),e.writeUInt8(0),Uv.isIPv4(this.options.destination.host)?(e.writeUInt8(tt.Socks5HostType.IPv4),e.writeBuffer(Ho.toBuffer(this.options.destination.host))):Uv.isIPv6(this.options.destination.host)?(e.writeUInt8(tt.Socks5HostType.IPv6),e.writeBuffer(Ho.toBuffer(this.options.destination.host))):(e.writeUInt8(tt.Socks5HostType.Hostname),e.writeUInt8(this.options.destination.host.length),e.writeString(this.options.destination.host)),e.writeUInt16BE(this.options.destination.port),this.nextRequiredPacketBufferSize=tt.SOCKS_INCOMING_PACKET_SIZES.Socks5ResponseHeader,this.socket.write(e.toBuffer()),this.setState(tt.SocksClientState.SentFinalHandshake)}handleSocks5FinalHandshakeResponse(){let e=this.receiveBuffer.peek(5);if(e[0]!==5||e[1]!==tt.Socks5Response.Granted)this.closeSocket(`${tt.ERRORS.InvalidSocks5FinalHandshakeRejected} - ${tt.Socks5Response[e[1]]}`);else{let r=e[3],i,n;if(r===tt.Socks5HostType.IPv4){let a=tt.SOCKS_INCOMING_PACKET_SIZES.Socks5ResponseIPv4;if(this.receiveBuffer.length{"use strict";var trt=e2&&e2.__createBinding||(Object.create?function(t,e,r,i){i===void 0&&(i=r);var n=Object.getOwnPropertyDescriptor(e,r);(!n||("get"in n?!e.__esModule:n.writable||n.configurable))&&(n={enumerable:!0,get:function(){return e[r]}}),Object.defineProperty(t,i,n)}:function(t,e,r,i){i===void 0&&(i=r),t[i]=e[r]}),rrt=e2&&e2.__exportStar||function(t,e){for(var r in t)r!=="default"&&!Object.prototype.hasOwnProperty.call(e,r)&&trt(e,t,r)};Object.defineProperty(e2,"__esModule",{value:!0});rrt(_0e(),e2)});var x0e=x(t2=>{"use strict";var irt=t2&&t2.__awaiter||function(t,e,r,i){function n(a){return a instanceof r?a:new r(function(s){s(a)})}return new(r||(r=Promise))(function(a,s){function o(f){try{u(i.next(f))}catch(d){s(d)}}function c(f){try{u(i.throw(f))}catch(d){s(d)}}function u(f){f.done?a(f.value):n(f.value).then(o,c)}u((i=i.apply(t,e||[])).next())})},sE=t2&&t2.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(t2,"__esModule",{value:!0});var nrt=sE(require("dns")),art=sE(require("tls")),srt=sE(require("url")),ort=sE(U3()),urt=aF(),crt=w0e(),bF=ort.default("socks-proxy-agent");function drt(t){return new Promise((e,r)=>{nrt.default.lookup(t,(i,n)=>{i?r(i):e(n)})})}function lrt(t){let e=0,r=!1,i=5,n=t.hostname||t.host;if(!n)throw new TypeError('No "host"');if(typeof t.port=="number"?e=t.port:typeof t.port=="string"&&(e=parseInt(t.port,10)),e||(e=1080),t.protocol)switch(t.protocol.replace(":","")){case"socks4":r=!0;case"socks4a":i=4;break;case"socks5":r=!0;case"socks":case"socks5h":i=5;break;default:throw new TypeError(`A "socks" protocol must be specified! Got: ${t.protocol}`)}if(typeof t.type<"u")if(t.type===4||t.type===5)i=t.type;else throw new TypeError(`"type" must be 4 or 5, got: ${t.type}`);let a={host:n,port:e,type:i},s=t.userId||t.username,o=t.password;if(t.auth){let c=t.auth.split(":");s=c[0],o=c[1]}return s&&Object.defineProperty(a,"userId",{value:s,enumerable:!1}),o&&Object.defineProperty(a,"password",{value:o,enumerable:!1}),{lookup:r,proxy:a}}var _F=class extends urt.Agent{constructor(e){let r;if(typeof e=="string"?r=srt.default.parse(e):r=e,!r)throw new TypeError("a SOCKS proxy server `host` and `port` must be specified!");super(r);let i=lrt(r);this.lookup=i.lookup,this.proxy=i.proxy,this.tlsConnectionOptions=r.tls||{}}callback(e,r){return irt(this,void 0,void 0,function*(){let{lookup:i,proxy:n}=this,{host:a,port:s,timeout:o}=r;if(!a)throw new Error("No `host` defined!");i&&(a=yield drt(a));let c={proxy:n,destination:{host:a,port:s},command:"connect",timeout:o};bF("Creating socks proxy connection: %o",c);let{socket:u}=yield crt.SocksClient.createConnection(c);if(bF("Successfully created socks proxy connection"),r.secureEndpoint){bF("Upgrading socket connection to TLS");let f=r.servername||r.host;return art.default.connect(Object.assign(Object.assign(Object.assign({},frt(r,"host","hostname","path","port")),{socket:u,servername:f}),this.tlsConnectionOptions))}return u})}};t2.default=_F;function frt(t,...e){let r={},i;for(i in t)e.includes(i)||(r[i]=t[i]);return r}});var E0e=x((SF,S0e)=>{"use strict";var prt=SF&&SF.__importDefault||function(t){return t&&t.__esModule?t:{default:t}},wF=prt(x0e());function xF(t){return new wF.default(t)}(function(t){t.SocksProxyAgent=wF.default,t.prototype=wF.default.prototype})(xF||(xF={}));S0e.exports=xF});var A0e=x(oE=>{"use strict";Object.defineProperty(oE,"__esModule",{value:!0});oE.WorkerState=void 0;var T0e=Hu(),EF=class{constructor(){this.addresses=[],this.accounts=[],this.subscription={}}validateAddresses(e){if(!Array.isArray(e))throw new T0e.CustomError("invalid_param","+addresses");let r=[];return e.filter(i=>typeof i!="string"||r.indexOf(i)>=0?!1:(r.push(i),!0))}addAddresses(e){let r=this.validateAddresses(e).filter(i=>this.addresses.indexOf(i)<0);return this.addresses=this.addresses.concat(r),r}getAddresses(){return this.addresses}removeAddresses(e){let r=this.validateAddresses(e);return this.addresses=this.addresses.filter(i=>r.indexOf(i)<0),this.addresses}validateAccounts(e){if(!Array.isArray(e))throw new T0e.CustomError("invalid_param","+accounts");let r=[];return e.filter(i=>i&&typeof i=="object"&&typeof i.descriptor=="string"?r.indexOf(i.descriptor)>=0?!1:(r.push(i.descriptor),!0):!1)}getAccountAddresses(e){if(e.addresses){let{change:r,used:i,unused:n}=e.addresses;return r.concat(i,n).map(a=>a.address)}return[e.descriptor]}addAccounts(e){let r=this.validateAccounts(e),i=this.accounts.filter(a=>!r.find(s=>s.descriptor===a.descriptor));this.accounts=i.concat(r);let n=this.accounts.reduce((a,s)=>a.concat(this.getAccountAddresses(s)),[]);return this.addAddresses(n),r}getAccount(e){return this.accounts.find(r=>{if(r.descriptor===e)return!0;if(r.addresses){let{change:i,used:n,unused:a}=r.addresses;if(i.find(s=>s.address===e)||n.find(s=>s.address===e)||a.find(s=>s.address===e))return!0}return!1})}getAccounts(){return this.accounts}removeAccounts(e){let r=this.validateAccounts(e),i=this.accounts.filter(a=>r.find(s=>s.descriptor===a.descriptor)),n=i.reduce((a,s)=>a.concat(this.getAccountAddresses(s)),[]);return this.accounts=this.accounts.filter(a=>i.indexOf(a)<0),this.removeAddresses(n),this.accounts}addSubscription(e){this.subscription[e]=!0}getSubscription(e){return this.subscription[e]}hasSubscriptions(){return Object.keys(this.subscription).length>0}removeSubscription(e){delete this.subscription[e]}clearSubscriptions(){Object.keys(this.subscription).forEach(e=>{delete this.subscription[e]})}removeEmpty(e){return Object.keys(e).forEach(r=>{Array.isArray(e[r])&&e[r].map(i=>this.removeEmpty(i)),e[r]&&typeof e[r]=="object"?this.removeEmpty(e[r]):e[r]===void 0&&delete e[r]}),e}cleanup(){this.removeAccounts(this.getAccounts()),this.removeAddresses(this.getAddresses()),this.clearSubscriptions()}};oE.WorkerState=EF});var Yr=x((P0e,uE)=>{(function(t){"use strict";var e,r=/^-?(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?$/i,i=Math.ceil,n=Math.floor,a="[BigNumber Error] ",s=a+"Number primitive has more than 15 significant digits: ",o=1e14,c=14,u=9007199254740991,f=[1,10,100,1e3,1e4,1e5,1e6,1e7,1e8,1e9,1e10,1e11,1e12,1e13],d=1e7,p=1e9;function b(be){var ce,me,ne,ee=N.prototype={constructor:N,toString:null,valueOf:null},R=new N(1),g=20,v=4,w=-7,y=21,_=-1e7,P=1e7,M=!1,E=1,h=0,A={prefix:"",groupSize:3,secondaryGroupSize:0,groupSeparator:",",decimalSeparator:".",fractionGroupSize:0,fractionGroupSeparator:"\xA0",suffix:""},F="0123456789abcdefghijklmnopqrstuvwxyz",O=!0;function N(H,Y){var Q,se,Se,ue,he,Oe,ye,we,Ne=this;if(!(Ne instanceof N))return new N(H,Y);if(Y==null){if(H&&H._isBigNumber===!0){Ne.s=H.s,!H.c||H.e>P?Ne.c=Ne.e=null:H.e<_?Ne.c=[Ne.e=0]:(Ne.e=H.e,Ne.c=H.c.slice());return}if((Oe=typeof H=="number")&&H*0==0){if(Ne.s=1/H<0?(H=-H,-1):1,H===~~H){for(ue=0,he=H;he>=10;he/=10,ue++);ue>P?Ne.c=Ne.e=null:(Ne.e=ue,Ne.c=[H]);return}we=String(H)}else{if(!r.test(we=String(H)))return ne(Ne,we,Oe);Ne.s=we.charCodeAt(0)==45?(we=we.slice(1),-1):1}(ue=we.indexOf("."))>-1&&(we=we.replace(".","")),(he=we.search(/e/i))>0?(ue<0&&(ue=he),ue+=+we.slice(he+1),we=we.substring(0,he)):ue<0&&(ue=we.length)}else{if(U(Y,2,F.length,"Base"),Y==10&&O)return Ne=new N(H),Te(Ne,g+Ne.e+1,v);if(we=String(H),Oe=typeof H=="number"){if(H*0!=0)return ne(Ne,we,Oe,Y);if(Ne.s=1/H<0?(we=we.slice(1),-1):1,N.DEBUG&&we.replace(/^0\.0*|\./,"").length>15)throw Error(s+H)}else Ne.s=we.charCodeAt(0)===45?(we=we.slice(1),-1):1;for(Q=F.slice(0,Y),ue=he=0,ye=we.length;heue){ue=ye;continue}}else if(!Se&&(we==we.toUpperCase()&&(we=we.toLowerCase())||we==we.toLowerCase()&&(we=we.toUpperCase()))){Se=!0,he=-1,ue=0;continue}return ne(Ne,String(H),Oe,Y)}Oe=!1,we=me(we,Y,10,Ne.s),(ue=we.indexOf("."))>-1?we=we.replace(".",""):ue=we.length}for(he=0;we.charCodeAt(he)===48;he++);for(ye=we.length;we.charCodeAt(--ye)===48;);if(we=we.slice(he,++ye)){if(ye-=he,Oe&&N.DEBUG&&ye>15&&(H>u||H!==n(H)))throw Error(s+Ne.s*H);if((ue=ue-he-1)>P)Ne.c=Ne.e=null;else if(ue<_)Ne.c=[Ne.e=0];else{if(Ne.e=ue,Ne.c=[],he=(ue+1)%c,ue<0&&(he+=c),he=-p&&Se<=p&&Se===n(Se)){if(se[0]===0){if(Se===0&&se.length===1)return!0;break e}if(Y=(Se+1)%c,Y<1&&(Y+=c),String(se[0]).length==Y){for(Y=0;Y=o||Q!==n(Q))break e;if(Q!==0)return!0}}}else if(se===null&&Se===null&&(ue===null||ue===1||ue===-1))return!0;throw Error(a+"Invalid BigNumber: "+H)},N.maximum=N.max=function(){return q(arguments,ee.lt)},N.minimum=N.min=function(){return q(arguments,ee.gt)},N.random=function(){var H=9007199254740992,Y=Math.random()*H&2097151?function(){return n(Math.random()*H)}:function(){return(Math.random()*1073741824|0)*8388608+(Math.random()*8388608|0)};return function(Q){var se,Se,ue,he,Oe,ye=0,we=[],Ne=new N(R);if(Q==null?Q=g:U(Q,0,p),he=i(Q/c),M)if(crypto.getRandomValues){for(se=crypto.getRandomValues(new Uint32Array(he*=2));ye>>11),Oe>=9e15?(Se=crypto.getRandomValues(new Uint32Array(2)),se[ye]=Se[0],se[ye+1]=Se[1]):(we.push(Oe%1e14),ye+=2);ye=he/2}else if(crypto.randomBytes){for(se=crypto.randomBytes(he*=7);ye=9e15?crypto.randomBytes(7).copy(se,ye):(we.push(Oe%1e14),ye+=7);ye=he/7}else throw M=!1,Error(a+"crypto unavailable");if(!M)for(;ye=10;Oe/=10,ye++);yeSe-1&&(Oe[he+1]==null&&(Oe[he+1]=0),Oe[he+1]+=Oe[he]/Se|0,Oe[he]%=Se)}return Oe.reverse()}return function(Q,se,Se,ue,he){var Oe,ye,we,Ne,Ae,je,j,W,C=Q.indexOf("."),D=g,G=v;for(C>=0&&(Ne=h,h=0,Q=Q.replace(".",""),W=new N(se),je=W.pow(Q.length-C),h=Ne,W.c=Y(ge(I(je.c),je.e,"0"),10,Se,H),W.e=W.c.length),j=Y(Q,se,Se,he?(Oe=F,H):(Oe=H,F)),we=Ne=j.length;j[--Ne]==0;j.pop());if(!j[0])return Oe.charAt(0);if(C<0?--we:(je.c=j,je.e=we,je.s=ue,je=ce(je,W,D,G,Se),j=je.c,Ae=je.r,we=je.e),ye=we+D+1,C=j[ye],Ne=Se/2,Ae=Ae||ye<0||j[ye+1]!=null,Ae=G<4?(C!=null||Ae)&&(G==0||G==(je.s<0?3:2)):C>Ne||C==Ne&&(G==4||Ae||G==6&&j[ye-1]&1||G==(je.s<0?8:7)),ye<1||!j[0])Q=Ae?ge(Oe.charAt(1),-D,Oe.charAt(0)):Oe.charAt(0);else{if(j.length=ye,Ae)for(--Se;++j[--ye]>Se;)j[ye]=0,ye||(++we,j=[1].concat(j));for(Ne=j.length;!j[--Ne];);for(C=0,Q="";C<=Ne;Q+=Oe.charAt(j[C++]));Q=ge(Q,we,Oe.charAt(0))}return Q}}(),ce=function(){function H(se,Se,ue){var he,Oe,ye,we,Ne=0,Ae=se.length,je=Se%d,j=Se/d|0;for(se=se.slice();Ae--;)ye=se[Ae]%d,we=se[Ae]/d|0,he=j*ye+we*je,Oe=je*ye+he%d*d+Ne,Ne=(Oe/ue|0)+(he/d|0)+j*we,se[Ae]=Oe%ue;return Ne&&(se=[Ne].concat(se)),se}function Y(se,Se,ue,he){var Oe,ye;if(ue!=he)ye=ue>he?1:-1;else for(Oe=ye=0;OeSe[Oe]?1:-1;break}return ye}function Q(se,Se,ue,he){for(var Oe=0;ue--;)se[ue]-=Oe,Oe=se[ue]1;se.splice(0,1));}return function(se,Se,ue,he,Oe){var ye,we,Ne,Ae,je,j,W,C,D,G,X,le,ie,de,Be,Pe,De,et=se.s==Se.s?1:-1,Le=se.c,Ve=Se.c;if(!Le||!Le[0]||!Ve||!Ve[0])return new N(!se.s||!Se.s||(Le?Ve&&Le[0]==Ve[0]:!Ve)?NaN:Le&&Le[0]==0||!Ve?et*0:et/0);for(C=new N(et),D=C.c=[],we=se.e-Se.e,et=ue+we+1,Oe||(Oe=o,we=T(se.e/c)-T(Se.e/c),et=et/c|0),Ne=0;Ve[Ne]==(Le[Ne]||0);Ne++);if(Ve[Ne]>(Le[Ne]||0)&&we--,et<0)D.push(1),Ae=!0;else{for(de=Le.length,Pe=Ve.length,Ne=0,et+=2,je=n(Oe/(Ve[0]+1)),je>1&&(Ve=H(Ve,je,Oe),Le=H(Le,je,Oe),Pe=Ve.length,de=Le.length),ie=Pe,G=Le.slice(0,Pe),X=G.length;X=Oe/2&&Be++;do{if(je=0,ye=Y(Ve,G,Pe,X),ye<0){if(le=G[0],Pe!=X&&(le=le*Oe+(G[1]||0)),je=n(le/Be),je>1)for(je>=Oe&&(je=Oe-1),j=H(Ve,je,Oe),W=j.length,X=G.length;Y(j,G,W,X)==1;)je--,Q(j,Pe=10;et/=10,Ne++);Te(C,ue+(C.e=Ne+we*c-1)+1,he,Ae)}else C.e=we,C.r=+Ae;return C}}();function xe(H,Y,Q,se){var Se,ue,he,Oe,ye;if(Q==null?Q=v:U(Q,0,8),!H.c)return H.toString();if(Se=H.c[0],he=H.e,Y==null)ye=I(H.c),ye=se==1||se==2&&(he<=w||he>=y)?oe(ye,he):ge(ye,he,"0");else if(H=Te(new N(H),Y,Q),ue=H.e,ye=I(H.c),Oe=ye.length,se==1||se==2&&(Y<=ue||ue<=w)){for(;OeOe){if(--Y>0)for(ye+=".";Y--;ye+="0");}else if(Y+=ue-Oe,Y>0)for(ue+1==Oe&&(ye+=".");Y--;ye+="0");return H.s<0&&Se?"-"+ye:ye}function q(H,Y){for(var Q,se=1,Se=new N(H[0]);se=10;Se/=10,se++);return(Q=se+Q*c-1)>P?H.c=H.e=null:Q<_?H.c=[H.e=0]:(H.e=Q,H.c=Y),H}ne=function(){var H=/^(-?)0([xbo])(?=\w[\w.]*$)/i,Y=/^([^.]+)\.$/,Q=/^\.([^.]+)$/,se=/^-?(Infinity|NaN)$/,Se=/^\s*\+(?=[\w.])|^\s+|\s+$/g;return function(ue,he,Oe,ye){var we,Ne=Oe?he:he.replace(Se,"");if(se.test(Ne))ue.s=isNaN(Ne)?null:Ne<0?-1:1;else{if(!Oe&&(Ne=Ne.replace(H,function(Ae,je,j){return we=(j=j.toLowerCase())=="x"?16:j=="b"?2:8,!ye||ye==we?je:Ae}),ye&&(we=ye,Ne=Ne.replace(Y,"$1").replace(Q,"0.$1")),he!=Ne))return new N(Ne,we);if(N.DEBUG)throw Error(a+"Not a"+(ye?" base "+ye:"")+" number: "+he);ue.s=null}ue.c=ue.e=null}}();function Te(H,Y,Q,se){var Se,ue,he,Oe,ye,we,Ne,Ae=H.c,je=f;if(Ae){e:{for(Se=1,Oe=Ae[0];Oe>=10;Oe/=10,Se++);if(ue=Y-Se,ue<0)ue+=c,he=Y,ye=Ae[we=0],Ne=ye/je[Se-he-1]%10|0;else if(we=i((ue+1)/c),we>=Ae.length)if(se){for(;Ae.length<=we;Ae.push(0));ye=Ne=0,Se=1,ue%=c,he=ue-c+1}else break e;else{for(ye=Oe=Ae[we],Se=1;Oe>=10;Oe/=10,Se++);ue%=c,he=ue-c+Se,Ne=he<0?0:ye/je[Se-he-1]%10|0}if(se=se||Y<0||Ae[we+1]!=null||(he<0?ye:ye%je[Se-he-1]),se=Q<4?(Ne||se)&&(Q==0||Q==(H.s<0?3:2)):Ne>5||Ne==5&&(Q==4||se||Q==6&&(ue>0?he>0?ye/je[Se-he]:0:Ae[we-1])%10&1||Q==(H.s<0?8:7)),Y<1||!Ae[0])return Ae.length=0,se?(Y-=H.e+1,Ae[0]=je[(c-Y%c)%c],H.e=-Y||0):Ae[0]=H.e=0,H;if(ue==0?(Ae.length=we,Oe=1,we--):(Ae.length=we+1,Oe=je[c-ue],Ae[we]=he>0?n(ye/je[Se-he]%je[he])*Oe:0),se)for(;;)if(we==0){for(ue=1,he=Ae[0];he>=10;he/=10,ue++);for(he=Ae[0]+=Oe,Oe=1;he>=10;he/=10,Oe++);ue!=Oe&&(H.e++,Ae[0]==o&&(Ae[0]=1));break}else{if(Ae[we]+=Oe,Ae[we]!=o)break;Ae[we--]=0,Oe=1}for(ue=Ae.length;Ae[--ue]===0;Ae.pop());}H.e>P?H.c=H.e=null:H.e<_&&(H.c=[H.e=0])}return H}function _e(H){var Y,Q=H.e;return Q===null?H.toString():(Y=I(H.c),Y=Q<=w||Q>=y?oe(Y,Q):ge(Y,Q,"0"),H.s<0?"-"+Y:Y)}return ee.absoluteValue=ee.abs=function(){var H=new N(this);return H.s<0&&(H.s=1),H},ee.comparedTo=function(H,Y){return L(this,new N(H,Y))},ee.decimalPlaces=ee.dp=function(H,Y){var Q,se,Se,ue=this;if(H!=null)return U(H,0,p),Y==null?Y=v:U(Y,0,8),Te(new N(ue),H+ue.e+1,Y);if(!(Q=ue.c))return null;if(se=((Se=Q.length-1)-T(this.e/c))*c,Se=Q[Se])for(;Se%10==0;Se/=10,se--);return se<0&&(se=0),se},ee.dividedBy=ee.div=function(H,Y){return ce(this,new N(H,Y),g,v)},ee.dividedToIntegerBy=ee.idiv=function(H,Y){return ce(this,new N(H,Y),0,1)},ee.exponentiatedBy=ee.pow=function(H,Y){var Q,se,Se,ue,he,Oe,ye,we,Ne,Ae=this;if(H=new N(H),H.c&&!H.isInteger())throw Error(a+"Exponent not an integer: "+_e(H));if(Y!=null&&(Y=new N(Y)),Oe=H.e>14,!Ae.c||!Ae.c[0]||Ae.c[0]==1&&!Ae.e&&Ae.c.length==1||!H.c||!H.c[0])return Ne=new N(Math.pow(+_e(Ae),Oe?H.s*(2-re(H)):+_e(H))),Y?Ne.mod(Y):Ne;if(ye=H.s<0,Y){if(Y.c?!Y.c[0]:!Y.s)return new N(NaN);se=!ye&&Ae.isInteger()&&Y.isInteger(),se&&(Ae=Ae.mod(Y))}else{if(H.e>9&&(Ae.e>0||Ae.e<-1||(Ae.e==0?Ae.c[0]>1||Oe&&Ae.c[1]>=24e7:Ae.c[0]<8e13||Oe&&Ae.c[0]<=9999975e7)))return ue=Ae.s<0&&re(H)?-0:0,Ae.e>-1&&(ue=1/ue),new N(ye?1/ue:ue);h&&(ue=i(h/c+2))}for(Oe?(Q=new N(.5),ye&&(H.s=1),we=re(H)):(Se=Math.abs(+_e(H)),we=Se%2),Ne=new N(R);;){if(we){if(Ne=Ne.times(Ae),!Ne.c)break;ue?Ne.c.length>ue&&(Ne.c.length=ue):se&&(Ne=Ne.mod(Y))}if(Se){if(Se=n(Se/2),Se===0)break;we=Se%2}else if(H=H.times(Q),Te(H,H.e+1,1),H.e>14)we=re(H);else{if(Se=+_e(H),Se===0)break;we=Se%2}Ae=Ae.times(Ae),ue?Ae.c&&Ae.c.length>ue&&(Ae.c.length=ue):se&&(Ae=Ae.mod(Y))}return se?Ne:(ye&&(Ne=R.div(Ne)),Y?Ne.mod(Y):ue?Te(Ne,h,v,he):Ne)},ee.integerValue=function(H){var Y=new N(this);return H==null?H=v:U(H,0,8),Te(Y,Y.e+1,H)},ee.isEqualTo=ee.eq=function(H,Y){return L(this,new N(H,Y))===0},ee.isFinite=function(){return!!this.c},ee.isGreaterThan=ee.gt=function(H,Y){return L(this,new N(H,Y))>0},ee.isGreaterThanOrEqualTo=ee.gte=function(H,Y){return(Y=L(this,new N(H,Y)))===1||Y===0},ee.isInteger=function(){return!!this.c&&T(this.e/c)>this.c.length-2},ee.isLessThan=ee.lt=function(H,Y){return L(this,new N(H,Y))<0},ee.isLessThanOrEqualTo=ee.lte=function(H,Y){return(Y=L(this,new N(H,Y)))===-1||Y===0},ee.isNaN=function(){return!this.s},ee.isNegative=function(){return this.s<0},ee.isPositive=function(){return this.s>0},ee.isZero=function(){return!!this.c&&this.c[0]==0},ee.minus=function(H,Y){var Q,se,Se,ue,he=this,Oe=he.s;if(H=new N(H,Y),Y=H.s,!Oe||!Y)return new N(NaN);if(Oe!=Y)return H.s=-Y,he.plus(H);var ye=he.e/c,we=H.e/c,Ne=he.c,Ae=H.c;if(!ye||!we){if(!Ne||!Ae)return Ne?(H.s=-Y,H):new N(Ae?he:NaN);if(!Ne[0]||!Ae[0])return Ae[0]?(H.s=-Y,H):new N(Ne[0]?he:v==3?-0:0)}if(ye=T(ye),we=T(we),Ne=Ne.slice(),Oe=ye-we){for((ue=Oe<0)?(Oe=-Oe,Se=Ne):(we=ye,Se=Ae),Se.reverse(),Y=Oe;Y--;Se.push(0));Se.reverse()}else for(se=(ue=(Oe=Ne.length)<(Y=Ae.length))?Oe:Y,Oe=Y=0;Y0)for(;Y--;Ne[Q++]=0);for(Y=o-1;se>Oe;){if(Ne[--se]=0;){for(Q=0,je=le[Se]%D,j=le[Se]/D|0,he=ye,ue=Se+he;ue>Se;)we=X[--he]%D,Ne=X[he]/D|0,Oe=j*we+Ne*je,we=je*we+Oe%D*D+W[ue]+Q,Q=(we/C|0)+(Oe/D|0)+j*Ne,W[ue--]=we%C;W[ue]=Q}return Q?++se:W.splice(0,1),fe(H,W,se)},ee.negated=function(){var H=new N(this);return H.s=-H.s||null,H},ee.plus=function(H,Y){var Q,se=this,Se=se.s;if(H=new N(H,Y),Y=H.s,!Se||!Y)return new N(NaN);if(Se!=Y)return H.s=-Y,se.minus(H);var ue=se.e/c,he=H.e/c,Oe=se.c,ye=H.c;if(!ue||!he){if(!Oe||!ye)return new N(Se/0);if(!Oe[0]||!ye[0])return ye[0]?H:new N(Oe[0]?se:Se*0)}if(ue=T(ue),he=T(he),Oe=Oe.slice(),Se=ue-he){for(Se>0?(he=ue,Q=ye):(Se=-Se,Q=Oe),Q.reverse();Se--;Q.push(0));Q.reverse()}for(Se=Oe.length,Y=ye.length,Se-Y<0&&(Q=ye,ye=Oe,Oe=Q,Y=Se),Se=0;Y;)Se=(Oe[--Y]=Oe[Y]+ye[Y]+Se)/o|0,Oe[Y]=o===Oe[Y]?0:Oe[Y]%o;return Se&&(Oe=[Se].concat(Oe),++he),fe(H,Oe,he)},ee.precision=ee.sd=function(H,Y){var Q,se,Se,ue=this;if(H!=null&&H!==!!H)return U(H,1,p),Y==null?Y=v:U(Y,0,8),Te(new N(ue),H,Y);if(!(Q=ue.c))return null;if(Se=Q.length-1,se=Se*c+1,Se=Q[Se]){for(;Se%10==0;Se/=10,se--);for(Se=Q[0];Se>=10;Se/=10,se++);}return H&&ue.e+1>se&&(se=ue.e+1),se},ee.shiftedBy=function(H){return U(H,-u,u),this.times("1e"+H)},ee.squareRoot=ee.sqrt=function(){var H,Y,Q,se,Se,ue=this,he=ue.c,Oe=ue.s,ye=ue.e,we=g+4,Ne=new N("0.5");if(Oe!==1||!he||!he[0])return new N(!Oe||Oe<0&&(!he||he[0])?NaN:he?ue:1/0);if(Oe=Math.sqrt(+_e(ue)),Oe==0||Oe==1/0?(Y=I(he),(Y.length+ye)%2==0&&(Y+="0"),Oe=Math.sqrt(+Y),ye=T((ye+1)/2)-(ye<0||ye%2),Oe==1/0?Y="5e"+ye:(Y=Oe.toExponential(),Y=Y.slice(0,Y.indexOf("e")+1)+ye),Q=new N(Y)):Q=new N(Oe+""),Q.c[0]){for(ye=Q.e,Oe=ye+we,Oe<3&&(Oe=0);;)if(Se=Q,Q=Ne.times(Se.plus(ce(ue,Se,we,1))),I(Se.c).slice(0,Oe)===(Y=I(Q.c)).slice(0,Oe))if(Q.e0&&W>0){for(ue=W%Oe||Oe,Ne=j.substr(0,ue);ue0&&(Ne+=we+j.slice(ue)),je&&(Ne="-"+Ne)}se=Ae?Ne+(Q.decimalSeparator||"")+((ye=+Q.fractionGroupSize)?Ae.replace(new RegExp("\\d{"+ye+"}\\B","g"),"$&"+(Q.fractionGroupSeparator||"")):Ae):Ne}return(Q.prefix||"")+se+(Q.suffix||"")},ee.toFraction=function(H){var Y,Q,se,Se,ue,he,Oe,ye,we,Ne,Ae,je,j=this,W=j.c;if(H!=null&&(Oe=new N(H),!Oe.isInteger()&&(Oe.c||Oe.s!==1)||Oe.lt(R)))throw Error(a+"Argument "+(Oe.isInteger()?"out of range: ":"not an integer: ")+_e(Oe));if(!W)return new N(j);for(Y=new N(R),we=Q=new N(R),se=ye=new N(R),je=I(W),ue=Y.e=je.length-j.e-1,Y.c[0]=f[(he=ue%c)<0?c+he:he],H=!H||Oe.comparedTo(Y)>0?ue>0?Y:we:Oe,he=P,P=1/0,Oe=new N(je),ye.c[0]=0;Ne=ce(Oe,Y,0,1),Se=Q.plus(Ne.times(se)),Se.comparedTo(H)!=1;)Q=se,se=Se,we=ye.plus(Ne.times(Se=we)),ye=Se,Y=Oe.minus(Ne.times(Se=Y)),Oe=Se;return Se=ce(H.minus(Q),se,0,1),ye=ye.plus(Se.times(we)),Q=Q.plus(Se.times(se)),ye.s=we.s=j.s,ue=ue*2,Ae=ce(we,se,ue,v).minus(j).abs().comparedTo(ce(ye,Q,ue,v).minus(j).abs())<1?[we,se]:[ye,Q],P=he,Ae},ee.toNumber=function(){return+_e(this)},ee.toPrecision=function(H,Y){return H!=null&&U(H,1,p),xe(this,H,Y,2)},ee.toString=function(H){var Y,Q=this,se=Q.s,Se=Q.e;return Se===null?se?(Y="Infinity",se<0&&(Y="-"+Y)):Y="NaN":(H==null?Y=Se<=w||Se>=y?oe(I(Q.c),Se):ge(I(Q.c),Se,"0"):H===10&&O?(Q=Te(new N(Q),g+Se+1,v),Y=ge(I(Q.c),Q.e,"0")):(U(H,2,F.length,"Base"),Y=me(ge(I(Q.c),Se,"0"),10,H,se,!0)),se<0&&Q.c[0]&&(Y="-"+Y)),Y},ee.valueOf=ee.toJSON=function(){return _e(this)},ee._isBigNumber=!0,be!=null&&N.set(be),N}function T(be){var ce=be|0;return be>0||be===ce?ce:ce-1}function I(be){for(var ce,me,ne=1,ee=be.length,R=be[0]+"";ney^me?1:-1;for(v=(w=ee.length)<(y=R.length)?w:y,g=0;gR[g]^me?1:-1;return w==y?0:w>y^me?1:-1}function U(be,ce,me,ne){if(beme||be!==n(be))throw Error(a+(ne||"Argument")+(typeof be=="number"?beme?" out of range: ":" not an integer: ":" not a primitive number: ")+String(be))}function re(be){var ce=be.c.length-1;return T(be.e/c)==ce&&be.c[ce]%2!=0}function oe(be,ce){return(be.length>1?be.charAt(0)+"."+be.slice(1):be)+(ce<0?"e":"e+")+ce}function ge(be,ce,me){var ne,ee;if(ce<0){for(ee=me+".";++ce;ee+=me);be=ee+be}else if(ne=be.length,++ce>ne){for(ee=me,ce-=ne;--ce;ee+=me);be+=ee}else ce{"use strict";Object.defineProperty(xa,"__esModule",{value:!0});xa.sortTxsFromLatest=xa.prioritizeEndpoints=xa.transformTarget=xa.sumVinVout=xa.enhanceVinVout=xa.filterTargets=xa.isAccountOwned=void 0;var hrt=Yr(),TF=wn(),mrt=t=>e=>Array.isArray(e?.addresses)&&e.addresses.some(r=>t.includes(r));xa.isAccountOwned=mrt;var grt=(t,e)=>{if(typeof t=="string"&&(t=[t]),!t||!Array.isArray(t)||!e||!Array.isArray(e))return[];let r=t.map(i=>{if(typeof i=="string")return i;if(typeof i=="object"&&typeof i.address=="string")return i.address}).filter(TF.isNotUndefined);return e.filter((0,xa.isAccountOwned)(r))};xa.filterTargets=grt;var yrt=t=>e=>Object.assign(Object.assign({},e),{isAccountOwned:(0,xa.isAccountOwned)(t)(e)||void 0});xa.enhanceVinVout=yrt;var vrt=(t,{value:e})=>typeof e=="string"?new hrt.default(e||"0").plus(t):t;xa.sumVinVout=vrt;var brt=(t,e)=>({n:t.n||0,addresses:t.addresses,isAddress:t.isAddress,amount:t.value,coinbase:t.coinbase,isAccountTarget:e.includes(t)?!0:void 0});xa.transformTarget=brt;var _rt=t=>t.map(e=>{let r=(0,TF.parseHostname)(e),i=Math.random();return r==="localhost"||r==="127.0.0.1"?i+=2:r?.endsWith(".onion")&&(i+=1),[e,i]}).sort(([,e],[,r])=>r-e).map(([e])=>e);xa.prioritizeEndpoints=_rt;var z3=({blockHeight:t})=>t===void 0||t<=0?Number.MAX_SAFE_INTEGER:t,wrt=t=>{let e=t.slice().sort((i,n)=>z3(n)-z3(i)),r=0;for(;rs.details.vin.some(({txid:c})=>c===o.txid));e.splice(r,a.length,...a)}r=n}return e};xa.sortTxsFromLatest=wrt});var G3=x(r2=>{"use strict";Object.defineProperty(r2,"__esModule",{value:!0});r2.BaseWorker=r2.CONTEXT=void 0;var xrt=E0e(),AF=Hu(),Srt=A0e(),Ert=Vv(),ap=ip();r2.CONTEXT=typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope||typeof importScripts<"u"?"worker":"main";var PF=class{constructor(){this.settings={},r2.CONTEXT==="worker"?this.post=e=>self.postMessage(e):this.post=e=>this.onmessage({data:e}),this.state=new Srt.WorkerState,setTimeout(()=>{this.post({id:-1,type:ap.MESSAGES.HANDSHAKE})},10)}debug(...e){if(!this.settings.debug)return;let r=`[Worker "${this.settings.name}"]:`,i=e[0];i==="warn"||i==="error"?console[i](r,...e.slice(1)):console.log(r,...e)}cleanup(){this.api=void 0,this.state.cleanup()}connect(){if(this.isConnected(this.api))return Promise.resolve(this.api);if(!this.connectPromise){let e=Array.isArray(this.settings.server)?this.settings.server.filter(i=>typeof i=="string"):[];if(e.length<1)throw new AF.CustomError("connect","Endpoint not set");let r=(0,Ert.prioritizeEndpoints)(e);this.connectPromise=this.connectRecursive(r).then(i=>(this.debug("Connected"),this.api=i,this.connectPromise=void 0,i))}return this.connectPromise}connectRecursive([e,...r]){if(!e)throw new AF.CustomError("connect","All backends are down");return this.proxyAgent&&(this.proxyAgent.protocol=/^(https|wss):/.test(e)?"https:":"http:"),this.debug("Connecting to",e),this.tryConnect(e).catch(i=>(this.debug("Connection failed",i),this.connectRecursive(r)))}disconnect(){}async messageHandler(e){if(!e.data)return!0;let{data:r}=e,{id:i}=r;if(this.debug("onmessage",r),r.type===ap.MESSAGES.HANDSHAKE)return this.settings=r.settings,this.proxyAgent=r.settings.proxy?xrt(r.settings.proxy):void 0,!0;if(r.type===ap.MESSAGES.CONNECT)return await this.connect(),this.post({id:i,type:ap.RESPONSES.CONNECT,payload:!0}),!0;if(r.type===ap.MESSAGES.DISCONNECT)return this.disconnect(),this.post({id:i,type:ap.RESPONSES.DISCONNECTED,payload:!0}),!0;if(r.type===ap.MESSAGES.TERMINATE)return this.disconnect(),this.cleanup(),!0}errorResponse(e,r){let i={code:"",message:""};r instanceof Error&&(i.message=r.message,i.code=r instanceof AF.CustomError&&r.code?r.code:""),this.post({id:e,type:ap.RESPONSES.ERROR,payload:i})}postMessage(e){this.messageHandler({data:e})}onmessage(e){}onmessageerror(e){}onerror(e){}terminate(){this.postMessage({id:-1,type:ap.MESSAGES.TERMINATE})}};r2.BaseWorker=PF});var i2=x((Hkt,O0e)=>{"use strict";O0e.exports={BINARY_TYPES:["nodebuffer","arraybuffer","fragments"],GUID:"258EAFA5-E914-47DA-95CA-C5AB0DC85B11",kStatusCode:Symbol("status-code"),kWebSocket:Symbol("websocket"),EMPTY_BUFFER:Buffer.alloc(0),NOOP:()=>{}}});var J3=x((zkt,OF)=>{"use strict";var{EMPTY_BUFFER:Trt}=i2();function R0e(t,e){if(t.length===0)return Trt;if(t.length===1)return t[0];let r=Buffer.allocUnsafe(e),i=0;for(let n=0;n{"use strict";var N0e=Symbol("kDone"),RF=Symbol("kRun"),MF=class{constructor(e){this[N0e]=()=>{this.pending--,this[RF]()},this.concurrency=e||1/0,this.jobs=[],this.pending=0}add(e){this.jobs.push(e),this[RF]()}[RF](){if(this.pending!==this.concurrency&&this.jobs.length){let e=this.jobs.shift();this.pending++,e(this[N0e])}}};k0e.exports=MF});var W3=x((Jkt,L0e)=>{"use strict";var X3=require("zlib"),F0e=J3(),Art=B0e(),{kStatusCode:D0e,NOOP:Prt}=i2(),Ort=Buffer.from([0,0,255,255]),fE=Symbol("permessage-deflate"),sp=Symbol("total-length"),K3=Symbol("callback"),Hh=Symbol("buffers"),lE=Symbol("error"),dE,CF=class{constructor(e,r,i){if(this._maxPayload=i|0,this._options=e||{},this._threshold=this._options.threshold!==void 0?this._options.threshold:1024,this._isServer=!!r,this._deflate=null,this._inflate=null,this.params=null,!dE){let n=this._options.concurrencyLimit!==void 0?this._options.concurrencyLimit:10;dE=new Art(n)}}static get extensionName(){return"permessage-deflate"}offer(){let e={};return this._options.serverNoContextTakeover&&(e.server_no_context_takeover=!0),this._options.clientNoContextTakeover&&(e.client_no_context_takeover=!0),this._options.serverMaxWindowBits&&(e.server_max_window_bits=this._options.serverMaxWindowBits),this._options.clientMaxWindowBits?e.client_max_window_bits=this._options.clientMaxWindowBits:this._options.clientMaxWindowBits==null&&(e.client_max_window_bits=!0),e}accept(e){return e=this.normalizeParams(e),this.params=this._isServer?this.acceptAsServer(e):this.acceptAsClient(e),this.params}cleanup(){if(this._inflate&&(this._inflate.close(),this._inflate=null),this._deflate){let e=this._deflate[K3];this._deflate.close(),this._deflate=null,e&&e(new Error("The deflate stream was closed while data was being processed"))}}acceptAsServer(e){let r=this._options,i=e.find(n=>!(r.serverNoContextTakeover===!1&&n.server_no_context_takeover||n.server_max_window_bits&&(r.serverMaxWindowBits===!1||typeof r.serverMaxWindowBits=="number"&&r.serverMaxWindowBits>n.server_max_window_bits)||typeof r.clientMaxWindowBits=="number"&&!n.client_max_window_bits));if(!i)throw new Error("None of the extension offers can be accepted");return r.serverNoContextTakeover&&(i.server_no_context_takeover=!0),r.clientNoContextTakeover&&(i.client_no_context_takeover=!0),typeof r.serverMaxWindowBits=="number"&&(i.server_max_window_bits=r.serverMaxWindowBits),typeof r.clientMaxWindowBits=="number"?i.client_max_window_bits=r.clientMaxWindowBits:(i.client_max_window_bits===!0||r.clientMaxWindowBits===!1)&&delete i.client_max_window_bits,i}acceptAsClient(e){let r=e[0];if(this._options.clientNoContextTakeover===!1&&r.client_no_context_takeover)throw new Error('Unexpected parameter "client_no_context_takeover"');if(!r.client_max_window_bits)typeof this._options.clientMaxWindowBits=="number"&&(r.client_max_window_bits=this._options.clientMaxWindowBits);else if(this._options.clientMaxWindowBits===!1||typeof this._options.clientMaxWindowBits=="number"&&r.client_max_window_bits>this._options.clientMaxWindowBits)throw new Error('Unexpected or invalid parameter "client_max_window_bits"');return r}normalizeParams(e){return e.forEach(r=>{Object.keys(r).forEach(i=>{let n=r[i];if(n.length>1)throw new Error(`Parameter "${i}" must have only a single value`);if(n=n[0],i==="client_max_window_bits"){if(n!==!0){let a=+n;if(!Number.isInteger(a)||a<8||a>15)throw new TypeError(`Invalid value for parameter "${i}": ${n}`);n=a}else if(!this._isServer)throw new TypeError(`Invalid value for parameter "${i}": ${n}`)}else if(i==="server_max_window_bits"){let a=+n;if(!Number.isInteger(a)||a<8||a>15)throw new TypeError(`Invalid value for parameter "${i}": ${n}`);n=a}else if(i==="client_no_context_takeover"||i==="server_no_context_takeover"){if(n!==!0)throw new TypeError(`Invalid value for parameter "${i}": ${n}`)}else throw new Error(`Unknown parameter "${i}"`);r[i]=n})}),e}decompress(e,r,i){dE.add(n=>{this._decompress(e,r,(a,s)=>{n(),i(a,s)})})}compress(e,r,i){dE.add(n=>{this._compress(e,r,(a,s)=>{n(),i(a,s)})})}_decompress(e,r,i){let n=this._isServer?"client":"server";if(!this._inflate){let a=`${n}_max_window_bits`,s=typeof this.params[a]!="number"?X3.Z_DEFAULT_WINDOWBITS:this.params[a];this._inflate=X3.createInflateRaw({...this._options.zlibInflateOptions,windowBits:s}),this._inflate[fE]=this,this._inflate[sp]=0,this._inflate[Hh]=[],this._inflate.on("error",Mrt),this._inflate.on("data",q0e)}this._inflate[K3]=i,this._inflate.write(e),r&&this._inflate.write(Ort),this._inflate.flush(()=>{let a=this._inflate[lE];if(a){this._inflate.close(),this._inflate=null,i(a);return}let s=F0e.concat(this._inflate[Hh],this._inflate[sp]);this._inflate._readableState.endEmitted?(this._inflate.close(),this._inflate=null):(this._inflate[sp]=0,this._inflate[Hh]=[],r&&this.params[`${n}_no_context_takeover`]&&this._inflate.reset()),i(null,s)})}_compress(e,r,i){let n=this._isServer?"server":"client";if(!this._deflate){let a=`${n}_max_window_bits`,s=typeof this.params[a]!="number"?X3.Z_DEFAULT_WINDOWBITS:this.params[a];this._deflate=X3.createDeflateRaw({...this._options.zlibDeflateOptions,windowBits:s}),this._deflate[sp]=0,this._deflate[Hh]=[],this._deflate.on("error",Prt),this._deflate.on("data",Rrt)}this._deflate[K3]=i,this._deflate.write(e),this._deflate.flush(X3.Z_SYNC_FLUSH,()=>{if(!this._deflate)return;let a=F0e.concat(this._deflate[Hh],this._deflate[sp]);r&&(a=a.slice(0,a.length-4)),this._deflate[K3]=null,this._deflate[sp]=0,this._deflate[Hh]=[],r&&this.params[`${n}_no_context_takeover`]&&this._deflate.reset(),i(null,a)})}};L0e.exports=CF;function Rrt(t){this[Hh].push(t),this[sp]+=t.length}function q0e(t){if(this[sp]+=t.length,this[fE]._maxPayload<1||this[sp]<=this[fE]._maxPayload){this[Hh].push(t);return}this[lE]=new RangeError("Max payload size exceeded"),this[lE].code="WS_ERR_UNSUPPORTED_MESSAGE_LENGTH",this[lE][D0e]=1009,this.removeListener("data",q0e),this.reset()}function Mrt(t){this[fE]._inflate=null,t[D0e]=1007,this[K3](t)}});var NF=x((Xkt,IF)=>{"use strict";function U0e(t){return t>=1e3&&t<=1014&&t!==1004&&t!==1005&&t!==1006||t>=3e3&&t<=4999}function j0e(t){let e=t.length,r=0;for(;r=e||(t[r+1]&192)!==128||(t[r+2]&192)!==128||t[r]===224&&(t[r+1]&224)===128||t[r]===237&&(t[r+1]&224)===160)return!1;r+=3}else if((t[r]&248)===240){if(r+3>=e||(t[r+1]&192)!==128||(t[r+2]&192)!==128||(t[r+3]&192)!==128||t[r]===240&&(t[r+1]&240)===128||t[r]===244&&t[r+1]>143||t[r]>244)return!1;r+=4}else return!1;return!0}try{let t=ZM();typeof t=="object"&&(t=t.Validation.isValidUTF8),IF.exports={isValidStatusCode:U0e,isValidUTF8(e){return e.length<150?j0e(e):t(e)}}}catch{IF.exports={isValidStatusCode:U0e,isValidUTF8:j0e}}});var DF=x((Kkt,X0e)=>{"use strict";var{Writable:Crt}=require("stream"),V0e=W3(),{BINARY_TYPES:Irt,EMPTY_BUFFER:Nrt,kStatusCode:krt,kWebSocket:Brt}=i2(),{concat:kF,toArrayBuffer:Frt,unmask:Drt}=J3(),{isValidStatusCode:qrt,isValidUTF8:H0e}=NF(),Z3=0,z0e=1,G0e=2,J0e=3,BF=4,Lrt=5,FF=class extends Crt{constructor(e,r,i,n){super(),this._binaryType=e||Irt[0],this[Brt]=void 0,this._extensions=r||{},this._isServer=!!i,this._maxPayload=n|0,this._bufferedBytes=0,this._buffers=[],this._compressed=!1,this._payloadLength=0,this._mask=void 0,this._fragmented=0,this._masked=!1,this._fin=!1,this._opcode=0,this._totalPayloadLength=0,this._messageLength=0,this._fragments=[],this._state=Z3,this._loop=!1}_write(e,r,i){if(this._opcode===8&&this._state==Z3)return i();this._bufferedBytes+=e.length,this._buffers.push(e),this.startLoop(i)}consume(e){if(this._bufferedBytes-=e,e===this._buffers[0].length)return this._buffers.shift();if(e=i.length?r.set(this._buffers.shift(),n):(r.set(new Uint8Array(i.buffer,i.byteOffset,e),n),this._buffers[0]=i.slice(e)),e-=i.length}while(e>0);return r}startLoop(e){let r;this._loop=!0;do switch(this._state){case Z3:r=this.getInfo();break;case z0e:r=this.getPayloadLength16();break;case G0e:r=this.getPayloadLength64();break;case J0e:this.getMask();break;case BF:r=this.getData(e);break;default:this._loop=!1;return}while(this._loop);e(r)}getInfo(){if(this._bufferedBytes<2){this._loop=!1;return}let e=this.consume(2);if((e[0]&48)!==0)return this._loop=!1,Zn(RangeError,"RSV2 and RSV3 must be clear",!0,1002,"WS_ERR_UNEXPECTED_RSV_2_3");let r=(e[0]&64)===64;if(r&&!this._extensions[V0e.extensionName])return this._loop=!1,Zn(RangeError,"RSV1 must be clear",!0,1002,"WS_ERR_UNEXPECTED_RSV_1");if(this._fin=(e[0]&128)===128,this._opcode=e[0]&15,this._payloadLength=e[1]&127,this._opcode===0){if(r)return this._loop=!1,Zn(RangeError,"RSV1 must be clear",!0,1002,"WS_ERR_UNEXPECTED_RSV_1");if(!this._fragmented)return this._loop=!1,Zn(RangeError,"invalid opcode 0",!0,1002,"WS_ERR_INVALID_OPCODE");this._opcode=this._fragmented}else if(this._opcode===1||this._opcode===2){if(this._fragmented)return this._loop=!1,Zn(RangeError,`invalid opcode ${this._opcode}`,!0,1002,"WS_ERR_INVALID_OPCODE");this._compressed=r}else if(this._opcode>7&&this._opcode<11){if(!this._fin)return this._loop=!1,Zn(RangeError,"FIN must be set",!0,1002,"WS_ERR_EXPECTED_FIN");if(r)return this._loop=!1,Zn(RangeError,"RSV1 must be clear",!0,1002,"WS_ERR_UNEXPECTED_RSV_1");if(this._payloadLength>125)return this._loop=!1,Zn(RangeError,`invalid payload length ${this._payloadLength}`,!0,1002,"WS_ERR_INVALID_CONTROL_PAYLOAD_LENGTH")}else return this._loop=!1,Zn(RangeError,`invalid opcode ${this._opcode}`,!0,1002,"WS_ERR_INVALID_OPCODE");if(!this._fin&&!this._fragmented&&(this._fragmented=this._opcode),this._masked=(e[1]&128)===128,this._isServer){if(!this._masked)return this._loop=!1,Zn(RangeError,"MASK must be set",!0,1002,"WS_ERR_EXPECTED_MASK")}else if(this._masked)return this._loop=!1,Zn(RangeError,"MASK must be clear",!0,1002,"WS_ERR_UNEXPECTED_MASK");if(this._payloadLength===126)this._state=z0e;else if(this._payloadLength===127)this._state=G0e;else return this.haveLength()}getPayloadLength16(){if(this._bufferedBytes<2){this._loop=!1;return}return this._payloadLength=this.consume(2).readUInt16BE(0),this.haveLength()}getPayloadLength64(){if(this._bufferedBytes<8){this._loop=!1;return}let e=this.consume(8),r=e.readUInt32BE(0);return r>Math.pow(2,53-32)-1?(this._loop=!1,Zn(RangeError,"Unsupported WebSocket frame: payload length > 2^53 - 1",!1,1009,"WS_ERR_UNSUPPORTED_DATA_PAYLOAD_LENGTH")):(this._payloadLength=r*Math.pow(2,32)+e.readUInt32BE(4),this.haveLength())}haveLength(){if(this._payloadLength&&this._opcode<8&&(this._totalPayloadLength+=this._payloadLength,this._totalPayloadLength>this._maxPayload&&this._maxPayload>0))return this._loop=!1,Zn(RangeError,"Max payload size exceeded",!1,1009,"WS_ERR_UNSUPPORTED_MESSAGE_LENGTH");this._masked?this._state=J0e:this._state=BF}getMask(){if(this._bufferedBytes<4){this._loop=!1;return}this._mask=this.consume(4),this._state=BF}getData(e){let r=Nrt;if(this._payloadLength){if(this._bufferedBytes7)return this.controlMessage(r);if(this._compressed){this._state=Lrt,this.decompress(r,e);return}return r.length&&(this._messageLength=this._totalPayloadLength,this._fragments.push(r)),this.dataMessage()}decompress(e,r){this._extensions[V0e.extensionName].decompress(e,this._fin,(n,a)=>{if(n)return r(n);if(a.length){if(this._messageLength+=a.length,this._messageLength>this._maxPayload&&this._maxPayload>0)return r(Zn(RangeError,"Max payload size exceeded",!1,1009,"WS_ERR_UNSUPPORTED_MESSAGE_LENGTH"));this._fragments.push(a)}let s=this.dataMessage();if(s)return r(s);this.startLoop(r)})}dataMessage(){if(this._fin){let e=this._messageLength,r=this._fragments;if(this._totalPayloadLength=0,this._messageLength=0,this._fragmented=0,this._fragments=[],this._opcode===2){let i;this._binaryType==="nodebuffer"?i=kF(r,e):this._binaryType==="arraybuffer"?i=Frt(kF(r,e)):i=r,this.emit("message",i)}else{let i=kF(r,e);if(!H0e(i))return this._loop=!1,Zn(Error,"invalid UTF-8 sequence",!0,1007,"WS_ERR_INVALID_UTF8");this.emit("message",i.toString())}}this._state=Z3}controlMessage(e){if(this._opcode===8)if(this._loop=!1,e.length===0)this.emit("conclude",1005,""),this.end();else{if(e.length===1)return Zn(RangeError,"invalid payload length 1",!0,1002,"WS_ERR_INVALID_CONTROL_PAYLOAD_LENGTH");{let r=e.readUInt16BE(0);if(!qrt(r))return Zn(RangeError,`invalid status code ${r}`,!0,1002,"WS_ERR_INVALID_CLOSE_CODE");let i=e.slice(2);if(!H0e(i))return Zn(Error,"invalid UTF-8 sequence",!0,1007,"WS_ERR_INVALID_UTF8");this.emit("conclude",r,i.toString()),this.end()}}else this._opcode===9?this.emit("ping",e):this.emit("pong",e);this._state=Z3}};X0e.exports=FF;function Zn(t,e,r,i,n){let a=new t(r?`Invalid WebSocket frame: ${e}`:e);return Error.captureStackTrace(a,Zn),a.code=n,a[krt]=i,a}});var qF=x(($kt,Z0e)=>{"use strict";var Wkt=require("net"),Zkt=require("tls"),{randomFillSync:Urt}=require("crypto"),K0e=W3(),{EMPTY_BUFFER:jrt}=i2(),{isValidStatusCode:Vrt}=NF(),{mask:W0e,toBuffer:op}=J3(),n2=Buffer.alloc(4),wl=class{constructor(e,r){this._extensions=r||{},this._socket=e,this._firstFragment=!0,this._compress=!1,this._bufferedBytes=0,this._deflating=!1,this._queue=[]}static frame(e,r){let i=r.mask&&r.readOnly,n=r.mask?6:2,a=e.length;e.length>=65536?(n+=8,a=127):e.length>125&&(n+=2,a=126);let s=Buffer.allocUnsafe(i?e.length+n:n);return s[0]=r.fin?r.opcode|128:r.opcode,r.rsv1&&(s[0]|=64),s[1]=a,a===126?s.writeUInt16BE(e.length,2):a===127&&(s.writeUInt32BE(0,2),s.writeUInt32BE(e.length,6)),r.mask?(Urt(n2,0,4),s[1]|=128,s[n-4]=n2[0],s[n-3]=n2[1],s[n-2]=n2[2],s[n-1]=n2[3],i?(W0e(e,n2,s,n,e.length),[s]):(W0e(e,n2,e,0,e.length),[s,e])):[s,e]}close(e,r,i,n){let a;if(e===void 0)a=jrt;else{if(typeof e!="number"||!Vrt(e))throw new TypeError("First argument must be a valid error code number");if(r===void 0||r==="")a=Buffer.allocUnsafe(2),a.writeUInt16BE(e,0);else{let s=Buffer.byteLength(r);if(s>123)throw new RangeError("The message must not be greater than 123 bytes");a=Buffer.allocUnsafe(2+s),a.writeUInt16BE(e,0),a.write(r,2)}}this._deflating?this.enqueue([this.doClose,a,i,n]):this.doClose(a,i,n)}doClose(e,r,i){this.sendFrame(wl.frame(e,{fin:!0,rsv1:!1,opcode:8,mask:r,readOnly:!1}),i)}ping(e,r,i){let n=op(e);if(n.length>125)throw new RangeError("The data size must not be greater than 125 bytes");this._deflating?this.enqueue([this.doPing,n,r,op.readOnly,i]):this.doPing(n,r,op.readOnly,i)}doPing(e,r,i,n){this.sendFrame(wl.frame(e,{fin:!0,rsv1:!1,opcode:9,mask:r,readOnly:i}),n)}pong(e,r,i){let n=op(e);if(n.length>125)throw new RangeError("The data size must not be greater than 125 bytes");this._deflating?this.enqueue([this.doPong,n,r,op.readOnly,i]):this.doPong(n,r,op.readOnly,i)}doPong(e,r,i,n){this.sendFrame(wl.frame(e,{fin:!0,rsv1:!1,opcode:10,mask:r,readOnly:i}),n)}send(e,r,i){let n=op(e),a=this._extensions[K0e.extensionName],s=r.binary?2:1,o=r.compress;if(this._firstFragment?(this._firstFragment=!1,o&&a&&(o=n.length>=a._threshold),this._compress=o):(o=!1,s=0),r.fin&&(this._firstFragment=!0),a){let c={fin:r.fin,rsv1:o,opcode:s,mask:r.mask,readOnly:op.readOnly};this._deflating?this.enqueue([this.dispatch,n,this._compress,c,i]):this.dispatch(n,this._compress,c,i)}else this.sendFrame(wl.frame(n,{fin:r.fin,rsv1:!1,opcode:s,mask:r.mask,readOnly:op.readOnly}),i)}dispatch(e,r,i,n){if(!r){this.sendFrame(wl.frame(e,i),n);return}let a=this._extensions[K0e.extensionName];this._bufferedBytes+=e.length,this._deflating=!0,a.compress(e,i.fin,(s,o)=>{if(this._socket.destroyed){let c=new Error("The socket was closed while data was being compressed");typeof n=="function"&&n(c);for(let u=0;u{"use strict";var Hv=class{constructor(e,r){this.target=r,this.type=e}},LF=class extends Hv{constructor(e,r){super("message",r),this.data=e}},UF=class extends Hv{constructor(e,r,i){super("close",i),this.wasClean=i._closeFrameReceived&&i._closeFrameSent,this.reason=r,this.code=e}},jF=class extends Hv{constructor(e){super("open",e)}},VF=class extends Hv{constructor(e,r){super("error",r),this.message=e.message,this.error=e}},Hrt={addEventListener(t,e,r){if(typeof e!="function")return;function i(c){e.call(this,new LF(c,this))}function n(c,u){e.call(this,new UF(c,u,this))}function a(c){e.call(this,new VF(c,this))}function s(){e.call(this,new jF(this))}let o=r&&r.once?"once":"on";t==="message"?(i._listener=e,this[o](t,i)):t==="close"?(n._listener=e,this[o](t,n)):t==="error"?(a._listener=e,this[o](t,a)):t==="open"?(s._listener=e,this[o](t,s)):this[o](t,e)},removeEventListener(t,e){let r=this.listeners(t);for(let i=0;i{"use strict";var $3=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,1,1,1,0,0,1,1,0,1,1,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,0,1,0];function xl(t,e,r){t[e]===void 0?t[e]=[r]:t[e].push(r)}function zrt(t){let e=Object.create(null);if(t===void 0||t==="")return e;let r=Object.create(null),i=!1,n=!1,a=!1,s,o,c=-1,u=-1,f=0;for(;f{let r=t[e];return Array.isArray(r)||(r=[r]),r.map(i=>[e].concat(Object.keys(i).map(n=>{let a=i[n];return Array.isArray(a)||(a=[a]),a.map(s=>s===!0?n:`${n}=${s}`).join("; ")})).join("; ")).join(", ")}).join(", ")}Y0e.exports={format:Grt,parse:zrt}});var WF=x((tBt,che)=>{"use strict";var Jrt=require("events"),Xrt=require("https"),Krt=require("http"),rhe=require("net"),Wrt=require("tls"),{randomBytes:Zrt,createHash:$rt}=require("crypto"),{Readable:eBt}=require("stream"),{URL:zF}=require("url"),zh=W3(),Qrt=DF(),Yrt=qF(),{BINARY_TYPES:ehe,EMPTY_BUFFER:GF,GUID:eit,kStatusCode:tit,kWebSocket:gs,NOOP:ihe}=i2(),{addEventListener:rit,removeEventListener:iit}=Q0e(),{format:nit,parse:ait}=HF(),{toBuffer:sit}=J3(),up=["CONNECTING","OPEN","CLOSING","CLOSED"],JF=[8,13],oit=30*1e3,yr=class extends Jrt{constructor(e,r,i){super(),this._binaryType=ehe[0],this._closeCode=1006,this._closeFrameReceived=!1,this._closeFrameSent=!1,this._closeMessage="",this._closeTimer=null,this._extensions={},this._protocol="",this._readyState=yr.CONNECTING,this._receiver=null,this._sender=null,this._socket=null,e!==null?(this._bufferedAmount=0,this._isServer=!1,this._redirects=0,Array.isArray(r)?r=r.join(", "):typeof r=="object"&&r!==null&&(i=r,r=void 0),nhe(this,e,r,i)):this._isServer=!0}get binaryType(){return this._binaryType}set binaryType(e){!ehe.includes(e)||(this._binaryType=e,this._receiver&&(this._receiver._binaryType=e))}get bufferedAmount(){return this._socket?this._socket._writableState.length+this._sender._bufferedBytes:this._bufferedAmount}get extensions(){return Object.keys(this._extensions).join()}get onclose(){}set onclose(e){}get onerror(){}set onerror(e){}get onopen(){}set onopen(e){}get onmessage(){}set onmessage(e){}get protocol(){return this._protocol}get readyState(){return this._readyState}get url(){return this._url}setSocket(e,r,i){let n=new Qrt(this.binaryType,this._extensions,this._isServer,i);this._sender=new Yrt(e,this._extensions),this._receiver=n,this._socket=e,n[gs]=this,e[gs]=this,n.on("conclude",dit),n.on("drain",lit),n.on("error",fit),n.on("message",pit),n.on("ping",hit),n.on("pong",mit),e.setTimeout(0),e.setNoDelay(),r.length>0&&e.unshift(r),e.on("close",she),e.on("data",pE),e.on("end",ohe),e.on("error",uhe),this._readyState=yr.OPEN,this.emit("open")}emitClose(){if(!this._socket){this._readyState=yr.CLOSED,this.emit("close",this._closeCode,this._closeMessage);return}this._extensions[zh.extensionName]&&this._extensions[zh.extensionName].cleanup(),this._receiver.removeAllListeners(),this._readyState=yr.CLOSED,this.emit("close",this._closeCode,this._closeMessage)}close(e,r){if(this.readyState!==yr.CLOSED){if(this.readyState===yr.CONNECTING){let i="WebSocket was closed before the connection was established";return zo(this,this._req,i)}if(this.readyState===yr.CLOSING){this._closeFrameSent&&(this._closeFrameReceived||this._receiver._writableState.errorEmitted)&&this._socket.end();return}this._readyState=yr.CLOSING,this._sender.close(e,r,!this._isServer,i=>{i||(this._closeFrameSent=!0,(this._closeFrameReceived||this._receiver._writableState.errorEmitted)&&this._socket.end())}),this._closeTimer=setTimeout(this._socket.destroy.bind(this._socket),oit)}}ping(e,r,i){if(this.readyState===yr.CONNECTING)throw new Error("WebSocket is not open: readyState 0 (CONNECTING)");if(typeof e=="function"?(i=e,e=r=void 0):typeof r=="function"&&(i=r,r=void 0),typeof e=="number"&&(e=e.toString()),this.readyState!==yr.OPEN){KF(this,e,i);return}r===void 0&&(r=!this._isServer),this._sender.ping(e||GF,r,i)}pong(e,r,i){if(this.readyState===yr.CONNECTING)throw new Error("WebSocket is not open: readyState 0 (CONNECTING)");if(typeof e=="function"?(i=e,e=r=void 0):typeof r=="function"&&(i=r,r=void 0),typeof e=="number"&&(e=e.toString()),this.readyState!==yr.OPEN){KF(this,e,i);return}r===void 0&&(r=!this._isServer),this._sender.pong(e||GF,r,i)}send(e,r,i){if(this.readyState===yr.CONNECTING)throw new Error("WebSocket is not open: readyState 0 (CONNECTING)");if(typeof r=="function"&&(i=r,r={}),typeof e=="number"&&(e=e.toString()),this.readyState!==yr.OPEN){KF(this,e,i);return}let n={binary:typeof e!="string",mask:!this._isServer,compress:!0,fin:!0,...r};this._extensions[zh.extensionName]||(n.compress=!1),this._sender.send(e||GF,n,i)}terminate(){if(this.readyState!==yr.CLOSED){if(this.readyState===yr.CONNECTING){let e="WebSocket was closed before the connection was established";return zo(this,this._req,e)}this._socket&&(this._readyState=yr.CLOSING,this._socket.destroy())}}};Object.defineProperty(yr,"CONNECTING",{enumerable:!0,value:up.indexOf("CONNECTING")});Object.defineProperty(yr.prototype,"CONNECTING",{enumerable:!0,value:up.indexOf("CONNECTING")});Object.defineProperty(yr,"OPEN",{enumerable:!0,value:up.indexOf("OPEN")});Object.defineProperty(yr.prototype,"OPEN",{enumerable:!0,value:up.indexOf("OPEN")});Object.defineProperty(yr,"CLOSING",{enumerable:!0,value:up.indexOf("CLOSING")});Object.defineProperty(yr.prototype,"CLOSING",{enumerable:!0,value:up.indexOf("CLOSING")});Object.defineProperty(yr,"CLOSED",{enumerable:!0,value:up.indexOf("CLOSED")});Object.defineProperty(yr.prototype,"CLOSED",{enumerable:!0,value:up.indexOf("CLOSED")});["binaryType","bufferedAmount","extensions","protocol","readyState","url"].forEach(t=>{Object.defineProperty(yr.prototype,t,{enumerable:!0})});["open","error","close","message"].forEach(t=>{Object.defineProperty(yr.prototype,`on${t}`,{enumerable:!0,get(){let e=this.listeners(t);for(let r=0;r{zo(t,p,"Opening handshake has timed out")}),p.on("error",b=>{p===null||p.aborted||(p=t._req=null,XF(t,b))}),p.on("response",b=>{let T=b.headers.location,I=b.statusCode;if(T&&n.followRedirects&&I>=300&&I<400){if(++t._redirects>n.maxRedirects){zo(t,p,"Maximum redirects exceeded");return}p.abort();let L;try{L=new zF(T,e)}catch(U){XF(t,U);return}nhe(t,L,r,i)}else t.emit("unexpected-response",p,b)||zo(t,p,`Unexpected server response: ${b.statusCode}`)}),p.on("upgrade",(b,T,I)=>{if(t.emit("upgrade",b),t.readyState!==yr.CONNECTING)return;if(p=t._req=null,b.headers.upgrade.toLowerCase()!=="websocket"){zo(t,T,"Invalid Upgrade header");return}let L=$rt("sha1").update(u+eit).digest("base64");if(b.headers["sec-websocket-accept"]!==L){zo(t,T,"Invalid Sec-WebSocket-Accept header");return}let U=b.headers["sec-websocket-protocol"],re=(r||"").split(/, */),oe;if(!r&&U?oe="Server sent a subprotocol but none was requested":r&&!U?oe="Server sent no subprotocol":U&&!re.includes(U)&&(oe="Server sent an invalid subprotocol"),oe){zo(t,T,oe);return}U&&(t._protocol=U);let ge=b.headers["sec-websocket-extensions"];if(ge!==void 0){if(!d){zo(t,T,"Server sent a Sec-WebSocket-Extensions header but no extension was requested");return}let be;try{be=ait(ge)}catch{zo(t,T,"Invalid Sec-WebSocket-Extensions header");return}let ce=Object.keys(be);if(ce.length){if(ce.length!==1||ce[0]!==zh.extensionName){zo(t,T,"Server indicated an extension that was not requested");return}try{d.accept(be[zh.extensionName])}catch{zo(t,T,"Invalid Sec-WebSocket-Extensions header");return}t._extensions[zh.extensionName]=d}}t.setSocket(T,I,n.maxPayload)})}function XF(t,e){t._readyState=yr.CLOSING,t.emit("error",e),t.emitClose()}function uit(t){return t.path=t.socketPath,rhe.connect(t)}function cit(t){return t.path=void 0,!t.servername&&t.servername!==""&&(t.servername=rhe.isIP(t.host)?"":t.host),Wrt.connect(t)}function zo(t,e,r){t._readyState=yr.CLOSING;let i=new Error(r);Error.captureStackTrace(i,zo),e.setHeader?(e.abort(),e.socket&&!e.socket.destroyed&&e.socket.destroy(),e.once("abort",t.emitClose.bind(t)),t.emit("error",i)):(e.destroy(i),e.once("error",t.emit.bind(t,"error")),e.once("close",t.emitClose.bind(t)))}function KF(t,e,r){if(e){let i=sit(e).length;t._socket?t._sender._bufferedBytes+=i:t._bufferedAmount+=i}if(r){let i=new Error(`WebSocket is not open: readyState ${t.readyState} (${up[t.readyState]})`);r(i)}}function dit(t,e){let r=this[gs];r._closeFrameReceived=!0,r._closeMessage=e,r._closeCode=t,r._socket[gs]!==void 0&&(r._socket.removeListener("data",pE),process.nextTick(ahe,r._socket),t===1005?r.close():r.close(t,e))}function lit(){this[gs]._socket.resume()}function fit(t){let e=this[gs];e._socket[gs]!==void 0&&(e._socket.removeListener("data",pE),process.nextTick(ahe,e._socket),e.close(t[tit])),e.emit("error",t)}function the(){this[gs].emitClose()}function pit(t){this[gs].emit("message",t)}function hit(t){let e=this[gs];e.pong(t,!e._isServer,ihe),e.emit("ping",t)}function mit(t){this[gs].emit("pong",t)}function ahe(t){t.resume()}function she(){let t=this[gs];this.removeListener("close",she),this.removeListener("data",pE),this.removeListener("end",ohe),t._readyState=yr.CLOSING;let e;!this._readableState.endEmitted&&!t._closeFrameReceived&&!t._receiver._writableState.errorEmitted&&(e=t._socket.read())!==null&&t._receiver.write(e),t._receiver.end(),this[gs]=void 0,clearTimeout(t._closeTimer),t._receiver._writableState.finished||t._receiver._writableState.errorEmitted?t.emitClose():(t._receiver.on("error",the),t._receiver.on("finish",the))}function pE(t){this[gs]._receiver.write(t)||this.pause()}function ohe(){let t=this[gs];t._readyState=yr.CLOSING,t._receiver.end(),this.end()}function uhe(){let t=this[gs];this.removeListener("error",uhe),this.on("error",ihe),t&&(t._readyState=yr.CLOSING,this.destroy())}});var phe=x((rBt,fhe)=>{"use strict";var{Duplex:git}=require("stream");function dhe(t){t.emit("close")}function yit(){!this.destroyed&&this._writableState.finished&&this.destroy()}function lhe(t){this.removeListener("error",lhe),this.destroy(),this.listenerCount("error")===0&&this.emit("error",t)}function vit(t,e){let r=!0,i=!0;function n(){r&&t._socket.resume()}t.readyState===t.CONNECTING?t.once("open",function(){t._receiver.removeAllListeners("drain"),t._receiver.on("drain",n)}):(t._receiver.removeAllListeners("drain"),t._receiver.on("drain",n));let a=new git({...e,autoDestroy:!1,emitClose:!1,objectMode:!1,writableObjectMode:!1});return t.on("message",function(o){a.push(o)||(r=!1,t._socket.pause())}),t.once("error",function(o){a.destroyed||(i=!1,a.destroy(o))}),t.once("close",function(){a.destroyed||a.push(null)}),a._destroy=function(s,o){if(t.readyState===t.CLOSED){o(s),process.nextTick(dhe,a);return}let c=!1;t.once("error",function(f){c=!0,o(f)}),t.once("close",function(){c||o(s),process.nextTick(dhe,a)}),i&&t.terminate()},a._final=function(s){if(t.readyState===t.CONNECTING){t.once("open",function(){a._final(s)});return}t._socket!==null&&(t._socket._writableState.finished?(s(),a._readableState.endEmitted&&a.destroy()):(t._socket.once("finish",function(){s()}),t.close()))},a._read=function(){(t.readyState===t.OPEN||t.readyState===t.CLOSING)&&!r&&(r=!0,t._receiver._writableState.needDrain||t._socket.resume())},a._write=function(s,o,c){if(t.readyState===t.CONNECTING){t.once("open",function(){a._write(s,o,c)});return}t.send(s,c)},a.on("end",yit),a.on("error",lhe),a}fhe.exports=vit});var vhe=x((sBt,yhe)=>{"use strict";var bit=require("events"),hE=require("http"),iBt=require("https"),nBt=require("net"),aBt=require("tls"),{createHash:_it}=require("crypto"),a2=W3(),wit=WF(),{format:xit,parse:Sit}=HF(),{GUID:Eit,kWebSocket:Tit}=i2(),Ait=/^[+/0-9A-Za-z]{22}==$/,hhe=0,mhe=1,ghe=2,$F=class extends bit{constructor(e,r){if(super(),e={maxPayload:100*1024*1024,perMessageDeflate:!1,handleProtocols:null,clientTracking:!0,verifyClient:null,noServer:!1,backlog:null,server:null,host:null,path:null,port:null,...e},e.port==null&&!e.server&&!e.noServer||e.port!=null&&(e.server||e.noServer)||e.server&&e.noServer)throw new TypeError('One and only one of the "port", "server", or "noServer" options must be specified');if(e.port!=null?(this._server=hE.createServer((i,n)=>{let a=hE.STATUS_CODES[426];n.writeHead(426,{"Content-Length":a.length,"Content-Type":"text/plain"}),n.end(a)}),this._server.listen(e.port,e.host,e.backlog,r)):e.server&&(this._server=e.server),this._server){let i=this.emit.bind(this,"connection");this._removeListeners=Pit(this._server,{listening:this.emit.bind(this,"listening"),error:this.emit.bind(this,"error"),upgrade:(n,a,s)=>{this.handleUpgrade(n,a,s,i)}})}e.perMessageDeflate===!0&&(e.perMessageDeflate={}),e.clientTracking&&(this.clients=new Set),this.options=e,this._state=hhe}address(){if(this.options.noServer)throw new Error('The server is operating in "noServer" mode');return this._server?this._server.address():null}close(e){if(e&&this.once("close",e),this._state===ghe){process.nextTick(ZF,this);return}if(this._state===mhe)return;if(this._state=mhe,this.clients)for(let i of this.clients)i.terminate();let r=this._server;if(r&&(this._removeListeners(),this._removeListeners=this._server=null,this.options.port!=null)){r.close(ZF.bind(void 0,this));return}process.nextTick(ZF,this)}shouldHandle(e){if(this.options.path){let r=e.url.indexOf("?");if((r!==-1?e.url.slice(0,r):e.url)!==this.options.path)return!1}return!0}handleUpgrade(e,r,i,n){r.on("error",QF);let a=e.headers["sec-websocket-key"]!==void 0?e.headers["sec-websocket-key"].trim():!1,s=+e.headers["sec-websocket-version"],o={};if(e.method!=="GET"||e.headers.upgrade.toLowerCase()!=="websocket"||!a||!Ait.test(a)||s!==8&&s!==13||!this.shouldHandle(e))return Q3(r,400);if(this.options.perMessageDeflate){let c=new a2(this.options.perMessageDeflate,!0,this.options.maxPayload);try{let u=Sit(e.headers["sec-websocket-extensions"]);u[a2.extensionName]&&(c.accept(u[a2.extensionName]),o[a2.extensionName]=c)}catch{return Q3(r,400)}}if(this.options.verifyClient){let c={origin:e.headers[`${s===8?"sec-websocket-origin":"origin"}`],secure:!!(e.socket.authorized||e.socket.encrypted),req:e};if(this.options.verifyClient.length===2){this.options.verifyClient(c,(u,f,d,p)=>{if(!u)return Q3(r,f||401,d,p);this.completeUpgrade(a,o,e,r,i,n)});return}if(!this.options.verifyClient(c))return Q3(r,401)}this.completeUpgrade(a,o,e,r,i,n)}completeUpgrade(e,r,i,n,a,s){if(!n.readable||!n.writable)return n.destroy();if(n[Tit])throw new Error("server.handleUpgrade() was called more than once with the same socket, possibly due to a misconfiguration");if(this._state>hhe)return Q3(n,503);let c=["HTTP/1.1 101 Switching Protocols","Upgrade: websocket","Connection: Upgrade",`Sec-WebSocket-Accept: ${_it("sha1").update(e+Eit).digest("base64")}`],u=new wit(null),f=i.headers["sec-websocket-protocol"];if(f&&(f=f.split(",").map(Oit),this.options.handleProtocols?f=this.options.handleProtocols(f,i):f=f[0],f&&(c.push(`Sec-WebSocket-Protocol: ${f}`),u._protocol=f)),r[a2.extensionName]){let d=r[a2.extensionName].params,p=xit({[a2.extensionName]:[d]});c.push(`Sec-WebSocket-Extensions: ${p}`),u._extensions=r}this.emit("headers",c,i),n.write(c.concat(`\r +`).join(`\r +`)),n.removeListener("error",QF),u.setSocket(n,a,this.options.maxPayload),this.clients&&(this.clients.add(u),u.on("close",()=>this.clients.delete(u))),s(u,i)}};yhe.exports=$F;function Pit(t,e){for(let r of Object.keys(e))t.on(r,e[r]);return function(){for(let i of Object.keys(e))t.removeListener(i,e[i])}}function ZF(t){t._state=ghe,t.emit("close")}function QF(){this.destroy()}function Q3(t,e,r,i){t.writable&&(r=r||hE.STATUS_CODES[e],i={Connection:"close","Content-Type":"text/html","Content-Length":Buffer.byteLength(r),...i},t.write(`HTTP/1.1 ${e} ${hE.STATUS_CODES[e]}\r +`+Object.keys(i).map(n=>`${n}: ${i[n]}`).join(`\r +`)+`\r +\r +`+r)),t.removeListener("error",QF),t.destroy()}function Oit(t){return t.trim()}});var YF=x((oBt,bhe)=>{"use strict";var Y3=WF();Y3.createWebSocketStream=phe();Y3.Server=vhe();Y3.Receiver=DF();Y3.Sender=qF();bhe.exports=Y3});var xhe=x(mE=>{"use strict";Object.defineProperty(mE,"__esModule",{value:!0});mE.BlockbookAPI=void 0;var _he=YF(),Rit=require("events"),whe=Cb(),e_=Hu(),Mit=new e_.CustomError("websocket_not_initialized"),Cit=20*1e3,Iit=50*1e3,eD=class extends Rit.EventEmitter{constructor(e){super(),this.messageID=0,this.messages=[],this.subscriptions=[],this.send=(r,i={})=>{let{ws:n}=this;if(!n)throw Mit;let a=this.messageID.toString(),s=(0,whe.createDeferred)(a),o={id:a,method:r,params:i};return this.messageID++,this.messages.push(s),this.setConnectionTimeout(),this.setPingTimeout(),n.send(JSON.stringify(o)),s.promise},this.setMaxListeners(1/0),this.options=e}setConnectionTimeout(){this.clearConnectionTimeout(),this.connectionTimeout=setTimeout(this.onTimeout.bind(this),this.options.timeout||Cit)}clearConnectionTimeout(){this.connectionTimeout&&(clearTimeout(this.connectionTimeout),this.connectionTimeout=void 0)}setPingTimeout(){this.pingTimeout&&clearTimeout(this.pingTimeout),this.pingTimeout=setTimeout(this.onPing.bind(this),this.options.pingTimeout||Iit)}onTimeout(){let{ws:e}=this;if(!!e)if(e.listenerCount("open")>0){e.emit("error","Websocket timeout");try{e.close()}catch{}}else this.messages.forEach(r=>r.reject(new e_.CustomError("websocket_timeout"))),e.close()}async onPing(){if(this.ws&&this.isConnected())if(this.subscriptions.length>0||this.options.keepAlive)await this.getBlockHash(0);else try{this.ws.close()}catch{}}onError(){this.dispose()}onmessage(e){try{let r=JSON.parse(e),{id:i,data:n}=r,a=this.messages.find(s=>s.id===i);if(a)n.error?a.reject(new e_.CustomError("websocket_error_message",n.error.message)):a.resolve(n),this.messages.splice(this.messages.indexOf(a),1);else{let s=this.subscriptions.find(o=>o&&o.id===i);s&&s.callback(n)}}catch{}this.messages.length===0&&this.clearConnectionTimeout(),this.setPingTimeout()}connect(){let{url:e}=this.options;if(typeof e!="string")throw new e_.CustomError("websocket_no_url");if(e.startsWith("https")&&(e=e.replace("https","wss")),e.startsWith("http")&&(e=e.replace("http","ws")),!e.endsWith("/websocket")){let n=e.endsWith("/")?"websocket":"/websocket";e+=n}this.setConnectionTimeout();let r=(0,whe.createDeferred)(-1),i=new _he(e,{agent:this.options.agent,headers:{Origin:"https://node.trezor.io","User-Agent":"Trezor Suite"}});return typeof i.setMaxListeners=="function"&&i.setMaxListeners(1/0),i.once("error",n=>{this.dispose(),r.reject(new e_.CustomError("websocket_runtime_error",n.message))}),i.on("open",()=>{this.init(),r.resolve()}),this.ws=i,r.promise}init(){let{ws:e}=this;if(!e||!this.isConnected())throw Error("Blockbook websocket init cannot be called");this.clearConnectionTimeout(),e.removeAllListeners(),e.on("error",this.onError.bind(this)),e.on("message",this.onmessage.bind(this)),e.on("close",()=>{this.emit("disconnected"),this.dispose()})}disconnect(){this.ws&&this.ws.close()}isConnected(){let{ws:e}=this;return e&&e.readyState===_he.OPEN}getServerInfo(){return this.send("getInfo")}getBlockHash(e){return this.send("getBlockHash",{height:e})}getBlock(e){return this.send("getBlock",{id:`${e}`})}getAccountInfo(e){return this.send("getAccountInfo",e)}getAccountUtxo(e){return this.send("getAccountUtxo",{descriptor:e})}getTransaction(e){return this.send("getTransaction",{txid:e})}pushTransaction(e){return this.send("sendTransaction",{hex:e})}estimateFee(e){return this.send("estimateFee",e)}getCurrentFiatRates(e){return this.send("getCurrentFiatRates",e)}getAccountBalanceHistory(e){return this.send("getBalanceHistory",e)}getFiatRatesForTimestamps(e){return this.send("getFiatRatesForTimestamps",e)}getFiatRatesTickersList(e){return this.send("getFiatRatesTickersList",e)}removeSubscription(e){let r=this.subscriptions.findIndex(i=>i.type===e);return r>=0&&this.subscriptions.splice(r,1),r}subscribeAddresses(e){this.removeSubscription("notification");let r=this.messageID.toString();return this.subscriptions.push({id:r,type:"notification",callback:i=>{this.emit("notification",i)}}),this.send("subscribeAddresses",{addresses:e})}unsubscribeAddresses(){return this.removeSubscription("notification")>=0?this.send("unsubscribeAddresses"):{subscribed:!1}}subscribeBlock(){this.removeSubscription("block");let e=this.messageID.toString();return this.subscriptions.push({id:e,type:"block",callback:r=>{this.emit("block",r)}}),this.send("subscribeNewBlock")}unsubscribeBlock(){return this.removeSubscription("block")>=0?this.send("unsubscribeNewBlock"):{subscribed:!1}}subscribeFiatRates(e){this.removeSubscription("fiatRates");let r=this.messageID.toString();return this.subscriptions.push({id:r,type:"fiatRates",callback:i=>{this.emit("fiatRates",i)}}),this.send("subscribeFiatRates",{currency:e})}unsubscribeFiatRates(){return this.removeSubscription("fiatRates")>=0?this.send("unsubscribeFiatRates"):{subscribed:!1}}subscribeMempool(){this.removeSubscription("mempool");let e=this.messageID.toString();return this.subscriptions.push({id:e,type:"mempool",callback:r=>{this.emit("mempool",r)}}),this.send("subscribeNewTransaction")}unsubscribeMempool(){return this.removeSubscription("mempool")>=0?this.send("unsubscribeNewTransaction"):{subscribed:!1}}dispose(){this.pingTimeout&&clearTimeout(this.pingTimeout),this.connectionTimeout&&clearTimeout(this.connectionTimeout);let{ws:e}=this;this.isConnected()&&this.disconnect(),e&&e.removeAllListeners(),this.removeAllListeners()}};mE.BlockbookAPI=eD});var t_=x(Pn=>{"use strict";Object.defineProperty(Pn,"__esModule",{value:!0});Pn.transformAccountUtxo=Pn.transformAccountInfo=Pn.transformAddresses=Pn.transformTokenInfo=Pn.transformTransaction=Pn.filterTokenTransfers=Pn.transformServerInfo=void 0;var zv=Yr(),Sl=Vv(),Nit=t=>{var e;return{name:t.name,shortcut:t.shortcut,testnet:t.testnet,version:t.version,decimals:t.decimals,blockHeight:t.bestHeight,blockHash:t.bestHash,consensusBranchId:!((e=t.backend)===null||e===void 0)&&e.consensus?parseInt(t.backend.consensus.chaintip,16):void 0}};Pn.transformServerInfo=Nit;var kit=(t,e)=>{if(typeof t=="string"&&(t=[t]),!t||!Array.isArray(t)||!e||!Array.isArray(e))return[];let r=t.map(i=>typeof i=="string"?i:typeof i=="object"&&typeof i.address=="string"?i.address:null);return e.filter(i=>i&&typeof i=="object"?i.from&&r.indexOf(i.from)>=0||i.to&&r.indexOf(i.to)>=0:!1).map(i=>{let n=i.from&&r.indexOf(i.from)>=0,a=i.to&&r.indexOf(i.to)>=0,s="unknown";return n&&a?s="self":(n&&(s="sent"),a&&(s="recv")),{type:s,name:i.name,symbol:i.symbol,address:i.token,decimals:i.decimals||0,amount:i.value,from:i.from,to:i.to}})};Pn.filterTokenTransfers=kit;var Bit=(t,e,r)=>{var i;let n=e?e.change.concat(e.used,e.unused).map(me=>me.address):[t],a=Array.isArray(r.vin)?r.vin:[],s=a.reduce(Sl.sumVinVout,0),o=(0,Sl.filterTargets)(n,r.vin),c=o.reduce(Sl.sumVinVout,0),u=Array.isArray(r.vout)?r.vout:[],f=u.reduce(Sl.sumVinVout,0),d=(0,Sl.filterTargets)(n,r.vout),p=d.reduce(Sl.sumVinVout,0),b=(0,Pn.filterTokenTransfers)(n,r.tokenTransfers),T=me=>e?(0,Sl.filterTargets)(e.change,r.vout).indexOf(me)<0:!0,I=me=>me.value&&me.value!=="0",L,U,re;if(o.length)if(o.lengthtypeof me.sequence=="number"&&me.sequence<4294967295-1)?!0:void 0,ge=r.ethereumSpecific&&!r.ethereumSpecific.gasUsed?new zv.default(r.ethereumSpecific.gasPrice).times(r.ethereumSpecific.gasLimit).toString():r.fees,be=r.vsize?new zv.default(ge).div(r.vsize).decimalPlaces(2).toString():void 0,ce=r.size||typeof r.hex=="string"?r.hex.length/2:0;return{type:L,txid:r.txid,blockTime:r.blockTime,blockHeight:r.blockHeight,blockHash:r.blockHash,lockTime:r.lockTime,amount:U,fee:ge,vsize:r.vsize,feeRate:be,targets:re.filter(me=>typeof me=="object").map(me=>(0,Sl.transformTarget)(me,d)),tokens:b,rbf:oe,ethereumSpecific:r.ethereumSpecific,details:{vin:a.map((0,Sl.enhanceVinVout)(n)),vout:u.map((0,Sl.enhanceVinVout)(n)),size:ce,totalInput:s.toString(),totalOutput:f.toString()}}};Pn.transformTransaction=Bit;var Fit=t=>{if(!t||!Array.isArray(t))return;let e=t.reduce((r,i)=>i.type!=="ERC20"?r:r.concat([{type:i.type,name:i.name,symbol:i.symbol,address:i.contract,balance:i.balance,decimals:i.decimals||0}]),[]);return e.length>0?e:void 0};Pn.transformTokenInfo=Fit;var Dit=t=>{if(!t||!Array.isArray(t))return;let e=t.reduce((n,a)=>a.type!=="XPUBAddress"?n:n.concat([{address:a.name,path:a.path,transfers:a.transfers,balance:a.balance,sent:a.totalSent,received:a.totalReceived}]),[]);if(e.length<1)return;let r=e.filter(n=>n.path.split("/")[4]==="1"),i=e.filter(n=>r.indexOf(n)<0);return{change:r,used:i.filter(n=>n.transfers>0),unused:i.filter(n=>n.transfers===0)}};Pn.transformAddresses=Dit;var qit=t=>{let e;typeof t.page=="number"&&(e={index:t.page,size:t.itemsOnPage,total:t.totalPages});let r={};if(typeof t.nonce=="string"&&(r.nonce=t.nonce),t.erc20Contract){let u=(0,Pn.transformTokenInfo)([Object.assign(Object.assign({},t.erc20Contract),{type:t.erc20Contract.type||"ERC20"})]);if(u){let[f]=u;r.erc20Contract=f}}Object.keys(r).length<1&&(r=void 0);let i=t.address,n=(0,Pn.transformAddresses)(t.tokens),a=(0,Pn.transformTokenInfo)(t.tokens),s=new zv.default(t.unconfirmedBalance),o=!s.isNaN()&&!s.isZero()?s.plus(t.balance).toString():t.balance,c=t.txs===0&&t.unconfirmedTxs===0&&new zv.default(o).isZero();return{descriptor:i,balance:t.balance,availableBalance:o,empty:c,tokens:a,addresses:n,history:{total:t.txs,tokens:typeof t.nonTokenTxs=="number"?t.txs-t.nonTokenTxs:void 0,unconfirmed:t.unconfirmedTxs,transactions:t.transactions?t.transactions.map(u=>(0,Pn.transformTransaction)(i,n,u)):void 0},misc:r,page:e}};Pn.transformAccountInfo=qit;var Lit=t=>t.map(e=>({txid:e.txid,vout:e.vout,amount:e.value,blockHeight:e.height,address:e.address,path:e.path,confirmations:e.confirmations,coinbase:e.coinbase}));Pn.transformAccountUtxo=Lit});var The=x(rD=>{"use strict";Object.defineProperty(rD,"__esModule",{value:!0});var tD=Hu(),Ur=ip(),She=G3(),Uit=xhe(),r_=t_(),jit=async t=>{let e=await t.connect(),r=await e.getServerInfo();return{type:Ur.RESPONSES.GET_INFO,payload:Object.assign({url:e.options.url},r_.transformServerInfo(r))}},Vit=async t=>{let r=await(await t.connect()).getBlockHash(t.payload);return{type:Ur.RESPONSES.GET_BLOCK_HASH,payload:r.hash}},Hit=async t=>{let r=await(await t.connect()).getBlock(t.payload);return{type:Ur.RESPONSES.GET_BLOCK,payload:r}},zit=async t=>{let{payload:e}=t,i=await(await t.connect()).getAccountInfo(e);return{type:Ur.RESPONSES.GET_ACCOUNT_INFO,payload:r_.transformAccountInfo(i)}},Git=async t=>{let{payload:e}=t,i=await(await t.connect()).getAccountUtxo(e);return{type:Ur.RESPONSES.GET_ACCOUNT_UTXO,payload:r_.transformAccountUtxo(i)}},Jit=async t=>{let{payload:e}=t,i=await(await t.connect()).getAccountBalanceHistory(e);return{type:Ur.RESPONSES.GET_ACCOUNT_BALANCE_HISTORY,payload:i}},Xit=async t=>{let{payload:e}=t,i=await(await t.connect()).getCurrentFiatRates(e);return{type:Ur.RESPONSES.GET_CURRENT_FIAT_RATES,payload:i}},Kit=async t=>{let{payload:e}=t,r=await t.connect(),{tickers:i}=await r.getFiatRatesForTimestamps(e);return{type:Ur.RESPONSES.GET_FIAT_RATES_FOR_TIMESTAMPS,payload:{tickers:i}}},Wit=async t=>{let{payload:e}=t,i=await(await t.connect()).getFiatRatesTickersList(e);return{type:Ur.RESPONSES.GET_FIAT_RATES_TICKERS_LIST,payload:{ts:i.ts,availableCurrencies:i.available_currencies}}},Zit=async t=>{let r=await(await t.connect()).getTransaction(t.payload);return{type:Ur.RESPONSES.GET_TRANSACTION,payload:{type:"blockbook",tx:r}}},$it=async t=>{let r=await(await t.connect()).pushTransaction(t.payload);return{type:Ur.RESPONSES.PUSH_TRANSACTION,payload:r.result}},Qit=async t=>{let r=await(await t.connect()).estimateFee(t.payload);return{type:Ur.RESPONSES.ESTIMATE_FEE,payload:r}},Yit=({post:t},e)=>{t({id:-1,type:Ur.RESPONSES.NOTIFICATION,payload:{type:"block",payload:{blockHeight:e.height,blockHash:e.hash}}})},ent=({post:t},e)=>{t({id:-1,type:Ur.RESPONSES.NOTIFICATION,payload:{type:"mempool",payload:e}})},Ehe=({state:t,post:e},r)=>{if(!r.tx)return;let i=r.address,n=t.getAccount(i);e({id:-1,type:Ur.RESPONSES.NOTIFICATION,payload:{type:"notification",payload:{descriptor:n?n.descriptor:i,tx:n?r_.transformTransaction(n.descriptor,n.addresses,r.tx):r_.transformTransaction(i,void 0,r.tx)}}})},tnt=({post:t},e)=>{t({id:-1,type:Ur.RESPONSES.NOTIFICATION,payload:{type:"fiatRates",payload:{rates:e.rates}}})},rnt=async(t,e)=>{let r=await t.connect(),{state:i}=t;return i.addAccounts(e),i.getSubscription("notification")||(r.on("notification",n=>Ehe(t,n)),i.addSubscription("notification")),r.subscribeAddresses(i.getAddresses())},int=async(t,e)=>{let r=await t.connect(),{state:i}=t;return i.addAddresses(e),i.getSubscription("notification")||(r.on("notification",n=>Ehe(t,n)),i.addSubscription("notification")),r.subscribeAddresses(i.getAddresses())},nnt=async t=>{if(t.state.getSubscription("block"))return{subscribed:!0};let e=await t.connect();return t.state.addSubscription("block"),e.on("block",r=>Yit(t,r)),e.subscribeBlock()},ant=async(t,e)=>{let r=await t.connect();return t.state.getSubscription("fiatRates")||(t.state.addSubscription("fiatRates"),r.on("fiatRates",i=>tnt(t,i))),r.subscribeFiatRates(e)},snt=async t=>{let e=await t.connect();return t.state.getSubscription("mempool")||(t.state.addSubscription("mempool"),e.on("mempool",r=>ent(t,r))),e.subscribeMempool()},ont=async t=>{let{payload:e}=t,r;if(e.type==="accounts")r=await rnt(t,e.accounts);else if(e.type==="addresses")r=await int(t,e.addresses);else if(e.type==="block")r=await nnt(t);else if(e.type==="fiatRates")r=await ant(t,e.currency);else if(e.type==="mempool")r=await snt(t);else throw new tD.CustomError("invalid_param","+type");return{type:Ur.RESPONSES.SUBSCRIBE,payload:r}},unt=async({state:t,connect:e},r)=>{t.removeAccounts(r||t.getAccounts());let i=await e(),n=t.getAddresses();return n.length<1?(i.removeAllListeners("notification"),t.removeSubscription("notification"),i.unsubscribeAddresses()):i.subscribeAddresses(n)},cnt=async({state:t,connect:e},r)=>{let i=await e();r||t.removeAccounts(t.getAccounts());let n=t.removeAddresses(r||t.getAddresses());return n.length<1?(i.removeAllListeners("notification"),t.removeSubscription("notification"),i.unsubscribeAddresses()):i.subscribeAddresses(n)},dnt=async({state:t,connect:e})=>{if(!t.getSubscription("block"))return{subscribed:!1};let r=await e();return r.removeAllListeners("block"),t.removeSubscription("block"),r.unsubscribeBlock()},lnt=async({state:t,connect:e})=>{if(!t.getSubscription("fiatRates"))return{subscribed:!1};let r=await e();return r.removeAllListeners("fiatRates"),t.removeSubscription("fiatRates"),r.unsubscribeFiatRates()},fnt=async({state:t,connect:e})=>{if(!t.getSubscription("mempool"))return{subscribed:!1};let r=await e();return r.removeAllListeners("mempool"),t.removeSubscription("mempool"),r.unsubscribeMempool()},pnt=async t=>{let{payload:e}=t,r;if(e.type==="accounts")r=await unt(t,e.accounts);else if(e.type==="addresses")r=await cnt(t,e.addresses);else if(e.type==="block")r=await dnt(t);else if(e.type==="fiatRates")r=await lnt(t);else if(e.type==="mempool")r=await fnt(t);else throw new tD.CustomError("invalid_param","+type");return{type:Ur.RESPONSES.UNSUBSCRIBE,payload:r}},hnt=t=>{switch(t.type){case Ur.MESSAGES.GET_INFO:return jit(t);case Ur.MESSAGES.GET_BLOCK_HASH:return Vit(t);case Ur.MESSAGES.GET_BLOCK:return Hit(t);case Ur.MESSAGES.GET_ACCOUNT_INFO:return zit(t);case Ur.MESSAGES.GET_ACCOUNT_UTXO:return Git(t);case Ur.MESSAGES.GET_TRANSACTION:return Zit(t);case Ur.MESSAGES.GET_ACCOUNT_BALANCE_HISTORY:return Jit(t);case Ur.MESSAGES.GET_CURRENT_FIAT_RATES:return Xit(t);case Ur.MESSAGES.GET_FIAT_RATES_FOR_TIMESTAMPS:return Kit(t);case Ur.MESSAGES.GET_FIAT_RATES_TICKERS_LIST:return Wit(t);case Ur.MESSAGES.ESTIMATE_FEE:return Qit(t);case Ur.MESSAGES.PUSH_TRANSACTION:return $it(t);case Ur.MESSAGES.SUBSCRIBE:return ont(t);case Ur.MESSAGES.UNSUBSCRIBE:return pnt(t);default:throw new tD.CustomError("worker_unknown_request",`+${t.type}`)}},gE=class extends She.BaseWorker{cleanup(){this.api&&(this.api.dispose(),this.api.removeAllListeners()),super.cleanup()}isConnected(e){var r;return(r=e?.isConnected())!==null&&r!==void 0?r:!1}async tryConnect(e){let{timeout:r,pingTimeout:i,keepAlive:n}=this.settings,a=new Uit.BlockbookAPI({url:e,timeout:r,pingTimeout:i,keepAlive:n,agent:this.proxyAgent});return await a.connect(),a.on("disconnected",()=>{this.post({id:-1,type:Ur.RESPONSES.DISCONNECTED,payload:!0}),this.cleanup()}),this.post({id:-1,type:Ur.RESPONSES.CONNECTED}),a}disconnect(){this.api&&this.api.disconnect()}async messageHandler(e){try{if(await super.messageHandler(e))return!0;let r=Object.assign(Object.assign({},e.data),{connect:()=>this.connect(),post:n=>this.post(n),state:this.state}),i=await hnt(r);this.post(Object.assign({id:e.data.id},i))}catch(r){this.errorResponse(e.data.id,r)}}};function mnt(){return new gE}rD.default=mnt;if(She.CONTEXT==="worker"){let t=new gE;onmessage=t.messageHandler.bind(t)}});var iD=x(Gv=>{"use strict";Object.defineProperty(Gv,"__esModule",{value:!0});Gv.txFlagIndices=Gv.txFlags=void 0;var gnt={Universal:{FullyCanonicalSig:2147483648},AccountSet:{RequireDestTag:65536,OptionalDestTag:131072,RequireAuth:262144,OptionalAuth:524288,DisallowXRP:1048576,AllowXRP:2097152},TrustSet:{SetAuth:65536,NoRipple:131072,SetNoRipple:131072,ClearNoRipple:262144,SetFreeze:1048576,ClearFreeze:2097152},OfferCreate:{Passive:65536,ImmediateOrCancel:131072,FillOrKill:262144,Sell:524288},Payment:{NoRippleDirect:65536,PartialPayment:131072,LimitQuality:262144},PaymentChannelClaim:{Renew:65536,Close:131072}};Gv.txFlags=gnt;var ynt={AccountSet:{asfRequireDest:1,asfRequireAuth:2,asfDisallowXRP:3,asfDisableMaster:4,asfAccountTxnID:5,asfNoFreeze:6,asfGlobalFreeze:7,asfDefaultRipple:8,asfDepositAuth:9}};Gv.txFlagIndices=ynt});var Ahe=x(Gh=>{"use strict";Object.defineProperty(Gh,"__esModule",{value:!0});Gh.AccountFlags=Gh.AccountSetFlags=Gh.AccountFields=void 0;var cp=iD(),dp={DefaultRipple:8388608,DepositAuth:16777216,DisableMaster:1048576,DisallowXRP:524288,GlobalFreeze:4194304,NoFreeze:2097152,PasswordSpent:65536,RequireAuth:262144,RequireDestTag:131072},vnt={passwordSpent:dp.PasswordSpent,requireDestinationTag:dp.RequireDestTag,requireAuthorization:dp.RequireAuth,depositAuth:dp.DepositAuth,disallowIncomingXRP:dp.DisallowXRP,disableMasterKey:dp.DisableMaster,noFreeze:dp.NoFreeze,globalFreeze:dp.GlobalFreeze,defaultRipple:dp.DefaultRipple};Gh.AccountFlags=vnt;var bnt={requireDestinationTag:cp.txFlagIndices.AccountSet.asfRequireDest,requireAuthorization:cp.txFlagIndices.AccountSet.asfRequireAuth,depositAuth:cp.txFlagIndices.AccountSet.asfDepositAuth,disallowIncomingXRP:cp.txFlagIndices.AccountSet.asfDisallowXRP,disableMasterKey:cp.txFlagIndices.AccountSet.asfDisableMaster,enableTransactionIDTracking:cp.txFlagIndices.AccountSet.asfAccountTxnID,noFreeze:cp.txFlagIndices.AccountSet.asfNoFreeze,globalFreeze:cp.txFlagIndices.AccountSet.asfGlobalFreeze,defaultRipple:cp.txFlagIndices.AccountSet.asfDefaultRipple};Gh.AccountSetFlags=bnt;var _nt={EmailHash:{name:"emailHash",encoding:"hex",length:32,defaults:"00000000000000000000000000000000"},WalletLocator:{name:"walletLocator"},MessageKey:{name:"messageKey"},Domain:{name:"domain",encoding:"hex"},TransferRate:{name:"transferRate",defaults:0,shift:9},TickSize:{name:"tickSize",defaults:0}};Gh.AccountFields=_nt});var Phe=x(Jv=>{"use strict";Object.defineProperty(Jv,"__esModule",{value:!0});Jv.setPrototypeOf=Jv.getConstructorName=void 0;function wnt(t,e){Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e}Jv.setPrototypeOf=wnt;function xnt(t){if(t.constructor.name)return t.constructor.name;let e=t.constructor.toString(),r=e.match(/^function\s+([^(]*)/),i=e.match(/^class\s([^\s]*)/);return r?r[1]:i[1]}Jv.getConstructorName=xnt});var Ic=x(wr=>{"use strict";var Snt=wr&&wr.__createBinding||(Object.create?function(t,e,r,i){i===void 0&&(i=r),Object.defineProperty(t,i,{enumerable:!0,get:function(){return e[r]}})}:function(t,e,r,i){i===void 0&&(i=r),t[i]=e[r]}),Ent=wr&&wr.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),Tnt=wr&&wr.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var r in t)r!=="default"&&Object.hasOwnProperty.call(t,r)&&Snt(e,t,r);return Ent(e,t),e};Object.defineProperty(wr,"__esModule",{value:!0});wr.XRPLFaucetError=wr.LedgerVersionError=wr.MissingLedgerHistoryError=wr.PendingLedgerVersionError=wr.NotFoundError=wr.ValidationError=wr.ResponseFormatError=wr.TimeoutError=wr.RippledNotInitializedError=wr.DisconnectedError=wr.NotConnectedError=wr.RippledError=wr.ConnectionError=wr.UnexpectedError=wr.RippleError=void 0;var Ant=require("util"),Pnt=Tnt(Phe()),Gu=class extends Error{constructor(e="",r){super(e),this.name=Pnt.getConstructorName(this),this.message=e,this.data=r,Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor)}toString(){let e="["+this.name+"("+this.message;return this.data&&(e+=", "+Ant.inspect(this.data)),e+=")]",e}inspect(){return this.toString()}};wr.RippleError=Gu;var nD=class extends Gu{};wr.RippledError=nD;var aD=class extends Gu{};wr.UnexpectedError=aD;var sD=class extends Gu{};wr.LedgerVersionError=sD;var Jh=class extends Gu{};wr.ConnectionError=Jh;var oD=class extends Jh{};wr.NotConnectedError=oD;var uD=class extends Jh{};wr.DisconnectedError=uD;var cD=class extends Jh{};wr.RippledNotInitializedError=cD;var dD=class extends Jh{};wr.TimeoutError=dD;var lD=class extends Jh{};wr.ResponseFormatError=lD;var fD=class extends Gu{};wr.ValidationError=fD;var pD=class extends Gu{};wr.XRPLFaucetError=pD;var hD=class extends Gu{constructor(e="Not found"){super(e)}};wr.NotFoundError=hD;var mD=class extends Gu{constructor(e){super(e||"Server is missing ledger history in the specified range")}};wr.MissingLedgerHistoryError=mD;var gD=class extends Gu{constructor(e){super(e||"maxLedgerVersion is greater than server's most recent validated ledger")}};wr.PendingLedgerVersionError=gD});var Vi=x((Xv,i_)=>{(function(){var t,e="4.17.21",r=200,i="Unsupported core-js use. Try https://npms.io/search?q=ponyfill.",n="Expected a function",a="Invalid `variable` option passed into `_.template`",s="__lodash_hash_undefined__",o=500,c="__lodash_placeholder__",u=1,f=2,d=4,p=1,b=2,T=1,I=2,L=4,U=8,re=16,oe=32,ge=64,be=128,ce=256,me=512,ne=30,ee="...",R=800,g=16,v=1,w=2,y=3,_=1/0,P=9007199254740991,M=17976931348623157e292,E=0/0,h=4294967295,A=h-1,F=h>>>1,O=[["ary",be],["bind",T],["bindKey",I],["curry",U],["curryRight",re],["flip",me],["partial",oe],["partialRight",ge],["rearg",ce]],N="[object Arguments]",xe="[object Array]",q="[object AsyncFunction]",fe="[object Boolean]",Te="[object Date]",_e="[object DOMException]",H="[object Error]",Y="[object Function]",Q="[object GeneratorFunction]",se="[object Map]",Se="[object Number]",ue="[object Null]",he="[object Object]",Oe="[object Promise]",ye="[object Proxy]",we="[object RegExp]",Ne="[object Set]",Ae="[object String]",je="[object Symbol]",j="[object Undefined]",W="[object WeakMap]",C="[object WeakSet]",D="[object ArrayBuffer]",G="[object DataView]",X="[object Float32Array]",le="[object Float64Array]",ie="[object Int8Array]",de="[object Int16Array]",Be="[object Int32Array]",Pe="[object Uint8Array]",De="[object Uint8ClampedArray]",et="[object Uint16Array]",Le="[object Uint32Array]",Ve=/\b__p \+= '';/g,Mr=/\b(__p \+=) '' \+/g,rt=/(__e\(.*?\)|\b__t\)) \+\n'';/g,at=/&(?:amp|lt|gt|quot|#39);/g,Ki=/[&<>"']/g,ft=RegExp(at.source),pt=RegExp(Ki.source),Aa=/<%-([\s\S]+?)%>/g,ht=/<%([\s\S]+?)%>/g,dt=/<%=([\s\S]+?)%>/g,Pa=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,mt=/^\w*$/,gt=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,jn=/[\\^$.*+?()[\]{}|]/g,yt=RegExp(jn.source),ct=/^\s+/,Oa=/\s/,vt=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,bt=/\{\n\/\* \[wrapped with (.+)\] \*/,Ra=/,? & /,_t=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,wt=/[()=,{}\[\]\/\s]/,Ma=/\\(\\)?/g,xt=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,lt=/\w*$/,k=/^[-+]0x[0-9a-f]+$/i,V=/^0b[01]+$/i,z=/^\[object .+?Constructor\]$/,J=/^0o[0-7]+$/i,Z=/^(?:0|[1-9]\d*)$/,$=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,pe=/($^)/,Ee=/['\n\r\u2028\u2029\\]/g,Ie="\\ud800-\\udfff",Re="\\u0300-\\u036f",qe="\\ufe20-\\ufe2f",He="\\u20d0-\\u20ff",Xe=Re+qe+He,St="\\u2700-\\u27bf",zt="a-z\\xdf-\\xf6\\xf8-\\xff",Ct="\\xac\\xb1\\xd7\\xf7",ii="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",xr="\\u2000-\\u206f",Ni=" \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",Fr="A-Z\\xc0-\\xd6\\xd8-\\xde",Wi="\\ufe0e\\ufe0f",ec=Ct+ii+xr+Ni,_o="['\u2019]",n4="["+Ie+"]",E1="["+ec+"]",sd="["+Xe+"]",I2="\\d+",wo="["+St+"]",T1="["+zt+"]",A1="[^"+Ie+ec+I2+St+zt+Fr+"]",P1="\\ud83c[\\udffb-\\udfff]",ia="(?:"+sd+"|"+P1+")",ni="[^"+Ie+"]",xP="(?:\\ud83c[\\udde6-\\uddff]){2}",SP="[\\ud800-\\udbff][\\udc00-\\udfff]",N2="["+Fr+"]",Tz="\\u200d",Az="(?:"+T1+"|"+A1+")",b5e="(?:"+N2+"|"+A1+")",Pz="(?:"+_o+"(?:d|ll|m|re|s|t|ve))?",Oz="(?:"+_o+"(?:D|LL|M|RE|S|T|VE))?",Rz=ia+"?",Mz="["+Wi+"]?",_5e="(?:"+Tz+"(?:"+[ni,xP,SP].join("|")+")"+Mz+Rz+")*",w5e="\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",x5e="\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])",Cz=Mz+Rz+_5e,S5e="(?:"+[wo,xP,SP].join("|")+")"+Cz,E5e="(?:"+[ni+sd+"?",sd,xP,SP,n4].join("|")+")",T5e=RegExp(_o,"g"),A5e=RegExp(sd,"g"),EP=RegExp(P1+"(?="+P1+")|"+E5e+Cz,"g"),P5e=RegExp([N2+"?"+T1+"+"+Pz+"(?="+[E1,N2,"$"].join("|")+")",b5e+"+"+Oz+"(?="+[E1,N2+Az,"$"].join("|")+")",N2+"?"+Az+"+"+Pz,N2+"+"+Oz,x5e,w5e,I2,S5e].join("|"),"g"),O5e=RegExp("["+Tz+Ie+Xe+Wi+"]"),R5e=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,M5e=["Array","Buffer","DataView","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Map","Math","Object","Promise","RegExp","Set","String","Symbol","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","_","clearTimeout","isFinite","parseInt","setTimeout"],C5e=-1,ki={};ki[X]=ki[le]=ki[ie]=ki[de]=ki[Be]=ki[Pe]=ki[De]=ki[et]=ki[Le]=!0,ki[N]=ki[xe]=ki[D]=ki[fe]=ki[G]=ki[Te]=ki[H]=ki[Y]=ki[se]=ki[Se]=ki[he]=ki[we]=ki[Ne]=ki[Ae]=ki[W]=!1;var _i={};_i[N]=_i[xe]=_i[D]=_i[G]=_i[fe]=_i[Te]=_i[X]=_i[le]=_i[ie]=_i[de]=_i[Be]=_i[se]=_i[Se]=_i[he]=_i[we]=_i[Ne]=_i[Ae]=_i[je]=_i[Pe]=_i[De]=_i[et]=_i[Le]=!0,_i[H]=_i[Y]=_i[W]=!1;var I5e={\u00C0:"A",\u00C1:"A",\u00C2:"A",\u00C3:"A",\u00C4:"A",\u00C5:"A",\u00E0:"a",\u00E1:"a",\u00E2:"a",\u00E3:"a",\u00E4:"a",\u00E5:"a",\u00C7:"C",\u00E7:"c",\u00D0:"D",\u00F0:"d",\u00C8:"E",\u00C9:"E",\u00CA:"E",\u00CB:"E",\u00E8:"e",\u00E9:"e",\u00EA:"e",\u00EB:"e",\u00CC:"I",\u00CD:"I",\u00CE:"I",\u00CF:"I",\u00EC:"i",\u00ED:"i",\u00EE:"i",\u00EF:"i",\u00D1:"N",\u00F1:"n",\u00D2:"O",\u00D3:"O",\u00D4:"O",\u00D5:"O",\u00D6:"O",\u00D8:"O",\u00F2:"o",\u00F3:"o",\u00F4:"o",\u00F5:"o",\u00F6:"o",\u00F8:"o",\u00D9:"U",\u00DA:"U",\u00DB:"U",\u00DC:"U",\u00F9:"u",\u00FA:"u",\u00FB:"u",\u00FC:"u",\u00DD:"Y",\u00FD:"y",\u00FF:"y",\u00C6:"Ae",\u00E6:"ae",\u00DE:"Th",\u00FE:"th",\u00DF:"ss",\u0100:"A",\u0102:"A",\u0104:"A",\u0101:"a",\u0103:"a",\u0105:"a",\u0106:"C",\u0108:"C",\u010A:"C",\u010C:"C",\u0107:"c",\u0109:"c",\u010B:"c",\u010D:"c",\u010E:"D",\u0110:"D",\u010F:"d",\u0111:"d",\u0112:"E",\u0114:"E",\u0116:"E",\u0118:"E",\u011A:"E",\u0113:"e",\u0115:"e",\u0117:"e",\u0119:"e",\u011B:"e",\u011C:"G",\u011E:"G",\u0120:"G",\u0122:"G",\u011D:"g",\u011F:"g",\u0121:"g",\u0123:"g",\u0124:"H",\u0126:"H",\u0125:"h",\u0127:"h",\u0128:"I",\u012A:"I",\u012C:"I",\u012E:"I",\u0130:"I",\u0129:"i",\u012B:"i",\u012D:"i",\u012F:"i",\u0131:"i",\u0134:"J",\u0135:"j",\u0136:"K",\u0137:"k",\u0138:"k",\u0139:"L",\u013B:"L",\u013D:"L",\u013F:"L",\u0141:"L",\u013A:"l",\u013C:"l",\u013E:"l",\u0140:"l",\u0142:"l",\u0143:"N",\u0145:"N",\u0147:"N",\u014A:"N",\u0144:"n",\u0146:"n",\u0148:"n",\u014B:"n",\u014C:"O",\u014E:"O",\u0150:"O",\u014D:"o",\u014F:"o",\u0151:"o",\u0154:"R",\u0156:"R",\u0158:"R",\u0155:"r",\u0157:"r",\u0159:"r",\u015A:"S",\u015C:"S",\u015E:"S",\u0160:"S",\u015B:"s",\u015D:"s",\u015F:"s",\u0161:"s",\u0162:"T",\u0164:"T",\u0166:"T",\u0163:"t",\u0165:"t",\u0167:"t",\u0168:"U",\u016A:"U",\u016C:"U",\u016E:"U",\u0170:"U",\u0172:"U",\u0169:"u",\u016B:"u",\u016D:"u",\u016F:"u",\u0171:"u",\u0173:"u",\u0174:"W",\u0175:"w",\u0176:"Y",\u0177:"y",\u0178:"Y",\u0179:"Z",\u017B:"Z",\u017D:"Z",\u017A:"z",\u017C:"z",\u017E:"z",\u0132:"IJ",\u0133:"ij",\u0152:"Oe",\u0153:"oe",\u0149:"'n",\u017F:"s"},N5e={"&":"&","<":"<",">":">",'"':""","'":"'"},k5e={"&":"&","<":"<",">":">",""":'"',"'":"'"},B5e={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},F5e=parseFloat,D5e=parseInt,Iz=typeof global=="object"&&global&&global.Object===Object&&global,q5e=typeof self=="object"&&self&&self.Object===Object&&self,na=Iz||q5e||Function("return this")(),TP=typeof Xv=="object"&&Xv&&!Xv.nodeType&&Xv,O1=TP&&typeof i_=="object"&&i_&&!i_.nodeType&&i_,Nz=O1&&O1.exports===TP,AP=Nz&&Iz.process,$o=function(){try{var ke=O1&&O1.require&&O1.require("util").types;return ke||AP&&AP.binding&&AP.binding("util")}catch{}}(),kz=$o&&$o.isArrayBuffer,Bz=$o&&$o.isDate,Fz=$o&&$o.isMap,Dz=$o&&$o.isRegExp,qz=$o&&$o.isSet,Lz=$o&&$o.isTypedArray;function xo(ke,Je,Ue){switch(Ue.length){case 0:return ke.call(Je);case 1:return ke.call(Je,Ue[0]);case 2:return ke.call(Je,Ue[0],Ue[1]);case 3:return ke.call(Je,Ue[0],Ue[1],Ue[2])}return ke.apply(Je,Ue)}function L5e(ke,Je,Ue,Et){for(var $t=-1,Qr=ke==null?0:ke.length;++$t-1}function PP(ke,Je,Ue){for(var Et=-1,$t=ke==null?0:ke.length;++Et<$t;)if(Ue(Je,ke[Et]))return!0;return!1}function Fi(ke,Je){for(var Ue=-1,Et=ke==null?0:ke.length,$t=Array(Et);++Ue-1;);return Ue}function Xz(ke,Je){for(var Ue=ke.length;Ue--&&k2(Je,ke[Ue],0)>-1;);return Ue}function K5e(ke,Je){for(var Ue=ke.length,Et=0;Ue--;)ke[Ue]===Je&&++Et;return Et}var W5e=CP(I5e),Z5e=CP(N5e);function $5e(ke){return"\\"+B5e[ke]}function Q5e(ke,Je){return ke==null?t:ke[Je]}function B2(ke){return O5e.test(ke)}function Y5e(ke){return R5e.test(ke)}function e9e(ke){for(var Je,Ue=[];!(Je=ke.next()).done;)Ue.push(Je.value);return Ue}function BP(ke){var Je=-1,Ue=Array(ke.size);return ke.forEach(function(Et,$t){Ue[++Je]=[$t,Et]}),Ue}function Kz(ke,Je){return function(Ue){return ke(Je(Ue))}}function e0(ke,Je){for(var Ue=-1,Et=ke.length,$t=0,Qr=[];++Ue-1}function j9e(l,m){var S=this.__data__,B=O8(S,l);return B<0?(++this.size,S.push([l,m])):S[B][1]=m,this}zl.prototype.clear=D9e,zl.prototype.delete=q9e,zl.prototype.get=L9e,zl.prototype.has=U9e,zl.prototype.set=j9e;function Gl(l){var m=-1,S=l==null?0:l.length;for(this.clear();++m=m?l:m)),l}function tu(l,m,S,B,K,ae){var ve,Me=m&u,Fe=m&f,Ze=m&d;if(S&&(ve=K?S(l,B,K,ae):S(l)),ve!==t)return ve;if(!Zi(l))return l;var $e=tr(l);if($e){if(ve=G7e(l),!Me)return qs(l,ve)}else{var Ye=Za(l),ot=Ye==Y||Ye==Q;if(o0(l))return MG(l,Me);if(Ye==he||Ye==N||ot&&!K){if(ve=Fe||ot?{}:WG(l),!Me)return Fe?k7e(l,i7e(ve,l)):N7e(l,sG(ve,l))}else{if(!_i[Ye])return K?l:{};ve=J7e(l,Ye,Me)}}ae||(ae=new rc);var Rt=ae.get(l);if(Rt)return Rt;ae.set(l,ve),EJ(l)?l.forEach(function(jt){ve.add(tu(jt,m,S,jt,l,ae))}):xJ(l)&&l.forEach(function(jt,Sr){ve.set(Sr,tu(jt,m,S,Sr,l,ae))});var Ut=Ze?Fe?oO:sO:Fe?Us:aa,cr=$e?t:Ut(l);return Qo(cr||l,function(jt,Sr){cr&&(Sr=jt,jt=l[Sr]),l4(ve,Sr,tu(jt,m,S,Sr,l,ae))}),ve}function n7e(l){var m=aa(l);return function(S){return oG(S,l,m)}}function oG(l,m,S){var B=S.length;if(l==null)return!B;for(l=hi(l);B--;){var K=S[B],ae=m[K],ve=l[K];if(ve===t&&!(K in l)||!ae(ve))return!1}return!0}function uG(l,m,S){if(typeof l!="function")throw new Yo(n);return v4(function(){l.apply(t,S)},m)}function f4(l,m,S,B){var K=-1,ae=l8,ve=!0,Me=l.length,Fe=[],Ze=m.length;if(!Me)return Fe;S&&(m=Fi(m,So(S))),B?(ae=PP,ve=!1):m.length>=r&&(ae=a4,ve=!1,m=new C1(m));e:for(;++KK?0:K+S),B=B===t||B>K?K:sr(B),B<0&&(B+=K),B=S>B?0:AJ(B);S0&&S(Me)?m>1?Ca(Me,m-1,S,B,K):Yp(K,Me):B||(K[K.length]=Me)}return K}var VP=FG(),lG=FG(!0);function od(l,m){return l&&VP(l,m,aa)}function HP(l,m){return l&&lG(l,m,aa)}function M8(l,m){return Qp(m,function(S){return Zl(l[S])})}function N1(l,m){m=a0(m,l);for(var S=0,B=m.length;l!=null&&Sm}function o7e(l,m){return l!=null&&ai.call(l,m)}function u7e(l,m){return l!=null&&m in hi(l)}function c7e(l,m,S){return l>=Wa(m,S)&&l=120&&$e.length>=120)?new C1(ve&&$e):t}$e=l[0];var Ye=-1,ot=Me[0];e:for(;++Ye-1;)Me!==l&&w8.call(Me,Fe,1),w8.call(l,Fe,1);return l}function xG(l,m){for(var S=l?m.length:0,B=S-1;S--;){var K=m[S];if(S==B||K!==ae){var ae=K;Wl(K)?w8.call(l,K,1):YP(l,K)}}return l}function ZP(l,m){return l+E8(rG()*(m-l+1))}function x7e(l,m,S,B){for(var K=-1,ae=Hn(S8((m-l)/(S||1)),0),ve=Ue(ae);ae--;)ve[B?ae:++K]=l,l+=S;return ve}function $P(l,m){var S="";if(!l||m<1||m>P)return S;do m%2&&(S+=l),m=E8(m/2),m&&(l+=l);while(m);return S}function hr(l,m){return hO(QG(l,m,js),l+"")}function S7e(l){return aG(G2(l))}function E7e(l,m){var S=G2(l);return j8(S,I1(m,0,S.length))}function m4(l,m,S,B){if(!Zi(l))return l;m=a0(m,l);for(var K=-1,ae=m.length,ve=ae-1,Me=l;Me!=null&&++KK?0:K+m),S=S>K?K:S,S<0&&(S+=K),K=m>S?0:S-m>>>0,m>>>=0;for(var ae=Ue(K);++B>>1,ve=l[ae];ve!==null&&!To(ve)&&(S?ve<=m:ve=r){var Ze=m?null:q7e(l);if(Ze)return p8(Ze);ve=!1,K=a4,Fe=new C1}else Fe=m?[]:Me;e:for(;++B=B?l:ru(l,m,S)}var RG=m9e||function(l){return na.clearTimeout(l)};function MG(l,m){if(m)return l.slice();var S=l.length,B=$z?$z(S):new l.constructor(S);return l.copy(B),B}function iO(l){var m=new l.constructor(l.byteLength);return new b8(m).set(new b8(l)),m}function R7e(l,m){var S=m?iO(l.buffer):l.buffer;return new l.constructor(S,l.byteOffset,l.byteLength)}function M7e(l){var m=new l.constructor(l.source,lt.exec(l));return m.lastIndex=l.lastIndex,m}function C7e(l){return d4?hi(d4.call(l)):{}}function CG(l,m){var S=m?iO(l.buffer):l.buffer;return new l.constructor(S,l.byteOffset,l.length)}function IG(l,m){if(l!==m){var S=l!==t,B=l===null,K=l===l,ae=To(l),ve=m!==t,Me=m===null,Fe=m===m,Ze=To(m);if(!Me&&!Ze&&!ae&&l>m||ae&&ve&&Fe&&!Me&&!Ze||B&&ve&&Fe||!S&&Fe||!K)return 1;if(!B&&!ae&&!Ze&&l=Me)return Fe;var Ze=S[B];return Fe*(Ze=="desc"?-1:1)}}return l.index-m.index}function NG(l,m,S,B){for(var K=-1,ae=l.length,ve=S.length,Me=-1,Fe=m.length,Ze=Hn(ae-ve,0),$e=Ue(Fe+Ze),Ye=!B;++Me1?S[K-1]:t,ve=K>2?S[2]:t;for(ae=l.length>3&&typeof ae=="function"?(K--,ae):t,ve&&As(S[0],S[1],ve)&&(ae=K<3?t:ae,K=1),m=hi(m);++B-1?K[ae?m[ve]:ve]:t}}function LG(l){return Kl(function(m){var S=m.length,B=S,K=eu.prototype.thru;for(l&&m.reverse();B--;){var ae=m[B];if(typeof ae!="function")throw new Yo(n);if(K&&!ve&&L8(ae)=="wrapper")var ve=new eu([],!0)}for(B=ve?B:S;++B1&&Cr.reverse(),$e&&FeMe))return!1;var Ze=ae.get(l),$e=ae.get(m);if(Ze&&$e)return Ze==m&&$e==l;var Ye=-1,ot=!0,Rt=S&b?new C1:t;for(ae.set(l,m),ae.set(m,l);++Ye1?"& ":"")+m[B],m=m.join(S>2?", ":" "),l.replace(vt,`{ +/* [wrapped with `+m+`] */ +`)}function K7e(l){return tr(l)||F1(l)||!!(eG&&l&&l[eG])}function Wl(l,m){var S=typeof l;return m=m??P,!!m&&(S=="number"||S!="symbol"&&Z.test(l))&&l>-1&&l%1==0&&l0){if(++m>=R)return arguments[0]}else m=0;return l.apply(t,arguments)}}function j8(l,m){var S=-1,B=l.length,K=B-1;for(m=m===t?B:m;++S1?l[m-1]:t;return S=typeof S=="function"?(l.pop(),S):t,dJ(l,S)});function lJ(l){var m=te(l);return m.__chain__=!0,m}function axe(l,m){return m(l),l}function V8(l,m){return m(l)}var sxe=Kl(function(l){var m=l.length,S=m?l[0]:0,B=this.__wrapped__,K=function(ae){return jP(ae,l)};return m>1||this.__actions__.length||!(B instanceof Pr)||!Wl(S)?this.thru(K):(B=B.slice(S,+S+(m?1:0)),B.__actions__.push({func:V8,args:[K],thisArg:t}),new eu(B,this.__chain__).thru(function(ae){return m&&!ae.length&&ae.push(t),ae}))});function oxe(){return lJ(this)}function uxe(){return new eu(this.value(),this.__chain__)}function cxe(){this.__values__===t&&(this.__values__=TJ(this.value()));var l=this.__index__>=this.__values__.length,m=l?t:this.__values__[this.__index__++];return{done:l,value:m}}function dxe(){return this}function lxe(l){for(var m,S=this;S instanceof P8;){var B=nJ(S);B.__index__=0,B.__values__=t,m?K.__wrapped__=B:m=B;var K=B;S=S.__wrapped__}return K.__wrapped__=l,m}function fxe(){var l=this.__wrapped__;if(l instanceof Pr){var m=l;return this.__actions__.length&&(m=new Pr(this)),m=m.reverse(),m.__actions__.push({func:V8,args:[mO],thisArg:t}),new eu(m,this.__chain__)}return this.thru(mO)}function pxe(){return PG(this.__wrapped__,this.__actions__)}var hxe=k8(function(l,m,S){ai.call(l,S)?++l[S]:Jl(l,S,1)});function mxe(l,m,S){var B=tr(l)?Uz:a7e;return S&&As(l,m,S)&&(m=t),B(l,Dt(m,3))}function gxe(l,m){var S=tr(l)?Qp:dG;return S(l,Dt(m,3))}var yxe=qG(aJ),vxe=qG(sJ);function bxe(l,m){return Ca(H8(l,m),1)}function _xe(l,m){return Ca(H8(l,m),_)}function wxe(l,m,S){return S=S===t?1:sr(S),Ca(H8(l,m),S)}function fJ(l,m){var S=tr(l)?Qo:i0;return S(l,Dt(m,3))}function pJ(l,m){var S=tr(l)?U5e:cG;return S(l,Dt(m,3))}var xxe=k8(function(l,m,S){ai.call(l,S)?l[S].push(m):Jl(l,S,[m])});function Sxe(l,m,S,B){l=Ls(l)?l:G2(l),S=S&&!B?sr(S):0;var K=l.length;return S<0&&(S=Hn(K+S,0)),K8(l)?S<=K&&l.indexOf(m,S)>-1:!!K&&k2(l,m,S)>-1}var Exe=hr(function(l,m,S){var B=-1,K=typeof m=="function",ae=Ls(l)?Ue(l.length):[];return i0(l,function(ve){ae[++B]=K?xo(m,ve,S):p4(ve,m,S)}),ae}),Txe=k8(function(l,m,S){Jl(l,S,m)});function H8(l,m){var S=tr(l)?Fi:gG;return S(l,Dt(m,3))}function Axe(l,m,S,B){return l==null?[]:(tr(m)||(m=m==null?[]:[m]),S=B?t:S,tr(S)||(S=S==null?[]:[S]),_G(l,m,S))}var Pxe=k8(function(l,m,S){l[S?0:1].push(m)},function(){return[[],[]]});function Oxe(l,m,S){var B=tr(l)?OP:zz,K=arguments.length<3;return B(l,Dt(m,4),S,K,i0)}function Rxe(l,m,S){var B=tr(l)?j5e:zz,K=arguments.length<3;return B(l,Dt(m,4),S,K,cG)}function Mxe(l,m){var S=tr(l)?Qp:dG;return S(l,J8(Dt(m,3)))}function Cxe(l){var m=tr(l)?aG:S7e;return m(l)}function Ixe(l,m,S){(S?As(l,m,S):m===t)?m=1:m=sr(m);var B=tr(l)?e7e:E7e;return B(l,m)}function Nxe(l){var m=tr(l)?t7e:A7e;return m(l)}function kxe(l){if(l==null)return 0;if(Ls(l))return K8(l)?F2(l):l.length;var m=Za(l);return m==se||m==Ne?l.size:XP(l).length}function Bxe(l,m,S){var B=tr(l)?RP:P7e;return S&&As(l,m,S)&&(m=t),B(l,Dt(m,3))}var Fxe=hr(function(l,m){if(l==null)return[];var S=m.length;return S>1&&As(l,m[0],m[1])?m=[]:S>2&&As(m[0],m[1],m[2])&&(m=[m[0]]),_G(l,Ca(m,1),[])}),z8=g9e||function(){return na.Date.now()};function Dxe(l,m){if(typeof m!="function")throw new Yo(n);return l=sr(l),function(){if(--l<1)return m.apply(this,arguments)}}function hJ(l,m,S){return m=S?t:m,m=l&&m==null?l.length:m,Xl(l,be,t,t,t,t,m)}function mJ(l,m){var S;if(typeof m!="function")throw new Yo(n);return l=sr(l),function(){return--l>0&&(S=m.apply(this,arguments)),l<=1&&(m=t),S}}var yO=hr(function(l,m,S){var B=T;if(S.length){var K=e0(S,H2(yO));B|=oe}return Xl(l,B,m,S,K)}),gJ=hr(function(l,m,S){var B=T|I;if(S.length){var K=e0(S,H2(gJ));B|=oe}return Xl(m,B,l,S,K)});function yJ(l,m,S){m=S?t:m;var B=Xl(l,U,t,t,t,t,t,m);return B.placeholder=yJ.placeholder,B}function vJ(l,m,S){m=S?t:m;var B=Xl(l,re,t,t,t,t,t,m);return B.placeholder=vJ.placeholder,B}function bJ(l,m,S){var B,K,ae,ve,Me,Fe,Ze=0,$e=!1,Ye=!1,ot=!0;if(typeof l!="function")throw new Yo(n);m=nu(m)||0,Zi(S)&&($e=!!S.leading,Ye="maxWait"in S,ae=Ye?Hn(nu(S.maxWait)||0,m):ae,ot="trailing"in S?!!S.trailing:ot);function Rt(gn){var nc=B,Ql=K;return B=K=t,Ze=gn,ve=l.apply(Ql,nc),ve}function Ut(gn){return Ze=gn,Me=v4(Sr,m),$e?Rt(gn):ve}function cr(gn){var nc=gn-Fe,Ql=gn-Ze,qJ=m-nc;return Ye?Wa(qJ,ae-Ql):qJ}function jt(gn){var nc=gn-Fe,Ql=gn-Ze;return Fe===t||nc>=m||nc<0||Ye&&Ql>=ae}function Sr(){var gn=z8();if(jt(gn))return Cr(gn);Me=v4(Sr,cr(gn))}function Cr(gn){return Me=t,ot&&B?Rt(gn):(B=K=t,ve)}function Ao(){Me!==t&&RG(Me),Ze=0,B=Fe=K=Me=t}function Ps(){return Me===t?ve:Cr(z8())}function Po(){var gn=z8(),nc=jt(gn);if(B=arguments,K=this,Fe=gn,nc){if(Me===t)return Ut(Fe);if(Ye)return RG(Me),Me=v4(Sr,m),Rt(Fe)}return Me===t&&(Me=v4(Sr,m)),ve}return Po.cancel=Ao,Po.flush=Ps,Po}var qxe=hr(function(l,m){return uG(l,1,m)}),Lxe=hr(function(l,m,S){return uG(l,nu(m)||0,S)});function Uxe(l){return Xl(l,me)}function G8(l,m){if(typeof l!="function"||m!=null&&typeof m!="function")throw new Yo(n);var S=function(){var B=arguments,K=m?m.apply(this,B):B[0],ae=S.cache;if(ae.has(K))return ae.get(K);var ve=l.apply(this,B);return S.cache=ae.set(K,ve)||ae,ve};return S.cache=new(G8.Cache||Gl),S}G8.Cache=Gl;function J8(l){if(typeof l!="function")throw new Yo(n);return function(){var m=arguments;switch(m.length){case 0:return!l.call(this);case 1:return!l.call(this,m[0]);case 2:return!l.call(this,m[0],m[1]);case 3:return!l.call(this,m[0],m[1],m[2])}return!l.apply(this,m)}}function jxe(l){return mJ(2,l)}var Vxe=O7e(function(l,m){m=m.length==1&&tr(m[0])?Fi(m[0],So(Dt())):Fi(Ca(m,1),So(Dt()));var S=m.length;return hr(function(B){for(var K=-1,ae=Wa(B.length,S);++K=m}),F1=pG(function(){return arguments}())?pG:function(l){return rn(l)&&ai.call(l,"callee")&&!Yz.call(l,"callee")},tr=Ue.isArray,iSe=kz?So(kz):l7e;function Ls(l){return l!=null&&X8(l.length)&&!Zl(l)}function mn(l){return rn(l)&&Ls(l)}function nSe(l){return l===!0||l===!1||rn(l)&&Ts(l)==fe}var o0=v9e||RO,aSe=Bz?So(Bz):f7e;function sSe(l){return rn(l)&&l.nodeType===1&&!b4(l)}function oSe(l){if(l==null)return!0;if(Ls(l)&&(tr(l)||typeof l=="string"||typeof l.splice=="function"||o0(l)||z2(l)||F1(l)))return!l.length;var m=Za(l);if(m==se||m==Ne)return!l.size;if(y4(l))return!XP(l).length;for(var S in l)if(ai.call(l,S))return!1;return!0}function uSe(l,m){return h4(l,m)}function cSe(l,m,S){S=typeof S=="function"?S:t;var B=S?S(l,m):t;return B===t?h4(l,m,t,S):!!B}function bO(l){if(!rn(l))return!1;var m=Ts(l);return m==H||m==_e||typeof l.message=="string"&&typeof l.name=="string"&&!b4(l)}function dSe(l){return typeof l=="number"&&tG(l)}function Zl(l){if(!Zi(l))return!1;var m=Ts(l);return m==Y||m==Q||m==q||m==ye}function wJ(l){return typeof l=="number"&&l==sr(l)}function X8(l){return typeof l=="number"&&l>-1&&l%1==0&&l<=P}function Zi(l){var m=typeof l;return l!=null&&(m=="object"||m=="function")}function rn(l){return l!=null&&typeof l=="object"}var xJ=Fz?So(Fz):h7e;function lSe(l,m){return l===m||JP(l,m,cO(m))}function fSe(l,m,S){return S=typeof S=="function"?S:t,JP(l,m,cO(m),S)}function pSe(l){return SJ(l)&&l!=+l}function hSe(l){if($7e(l))throw new $t(i);return hG(l)}function mSe(l){return l===null}function gSe(l){return l==null}function SJ(l){return typeof l=="number"||rn(l)&&Ts(l)==Se}function b4(l){if(!rn(l)||Ts(l)!=he)return!1;var m=_8(l);if(m===null)return!0;var S=ai.call(m,"constructor")&&m.constructor;return typeof S=="function"&&S instanceof S&&g8.call(S)==f9e}var _O=Dz?So(Dz):m7e;function ySe(l){return wJ(l)&&l>=-P&&l<=P}var EJ=qz?So(qz):g7e;function K8(l){return typeof l=="string"||!tr(l)&&rn(l)&&Ts(l)==Ae}function To(l){return typeof l=="symbol"||rn(l)&&Ts(l)==je}var z2=Lz?So(Lz):y7e;function vSe(l){return l===t}function bSe(l){return rn(l)&&Za(l)==W}function _Se(l){return rn(l)&&Ts(l)==C}var wSe=q8(KP),xSe=q8(function(l,m){return l<=m});function TJ(l){if(!l)return[];if(Ls(l))return K8(l)?tc(l):qs(l);if(s4&&l[s4])return e9e(l[s4]());var m=Za(l),S=m==se?BP:m==Ne?p8:G2;return S(l)}function $l(l){if(!l)return l===0?l:0;if(l=nu(l),l===_||l===-_){var m=l<0?-1:1;return m*M}return l===l?l:0}function sr(l){var m=$l(l),S=m%1;return m===m?S?m-S:m:0}function AJ(l){return l?I1(sr(l),0,h):0}function nu(l){if(typeof l=="number")return l;if(To(l))return E;if(Zi(l)){var m=typeof l.valueOf=="function"?l.valueOf():l;l=Zi(m)?m+"":m}if(typeof l!="string")return l===0?l:+l;l=Gz(l);var S=V.test(l);return S||J.test(l)?D5e(l.slice(2),S?2:8):k.test(l)?E:+l}function PJ(l){return ud(l,Us(l))}function SSe(l){return l?I1(sr(l),-P,P):l===0?l:0}function ei(l){return l==null?"":Eo(l)}var ESe=j2(function(l,m){if(y4(m)||Ls(m)){ud(m,aa(m),l);return}for(var S in m)ai.call(m,S)&&l4(l,S,m[S])}),OJ=j2(function(l,m){ud(m,Us(m),l)}),W8=j2(function(l,m,S,B){ud(m,Us(m),l,B)}),TSe=j2(function(l,m,S,B){ud(m,aa(m),l,B)}),ASe=Kl(jP);function PSe(l,m){var S=U2(l);return m==null?S:sG(S,m)}var OSe=hr(function(l,m){l=hi(l);var S=-1,B=m.length,K=B>2?m[2]:t;for(K&&As(m[0],m[1],K)&&(B=1);++S1),ae}),ud(l,oO(l),S),B&&(S=tu(S,u|f|d,L7e));for(var K=m.length;K--;)YP(S,m[K]);return S});function JSe(l,m){return MJ(l,J8(Dt(m)))}var XSe=Kl(function(l,m){return l==null?{}:_7e(l,m)});function MJ(l,m){if(l==null)return{};var S=Fi(oO(l),function(B){return[B]});return m=Dt(m),wG(l,S,function(B,K){return m(B,K[0])})}function KSe(l,m,S){m=a0(m,l);var B=-1,K=m.length;for(K||(K=1,l=t);++Bm){var B=l;l=m,m=B}if(S||l%1||m%1){var K=rG();return Wa(l+K*(m-l+F5e("1e-"+((K+"").length-1))),m)}return ZP(l,m)}var aEe=V2(function(l,m,S){return m=m.toLowerCase(),l+(S?NJ(m):m)});function NJ(l){return SO(ei(l).toLowerCase())}function kJ(l){return l=ei(l),l&&l.replace($,W5e).replace(A5e,"")}function sEe(l,m,S){l=ei(l),m=Eo(m);var B=l.length;S=S===t?B:I1(sr(S),0,B);var K=S;return S-=m.length,S>=0&&l.slice(S,K)==m}function oEe(l){return l=ei(l),l&&pt.test(l)?l.replace(Ki,Z5e):l}function uEe(l){return l=ei(l),l&&yt.test(l)?l.replace(jn,"\\$&"):l}var cEe=V2(function(l,m,S){return l+(S?"-":"")+m.toLowerCase()}),dEe=V2(function(l,m,S){return l+(S?" ":"")+m.toLowerCase()}),lEe=DG("toLowerCase");function fEe(l,m,S){l=ei(l),m=sr(m);var B=m?F2(l):0;if(!m||B>=m)return l;var K=(m-B)/2;return D8(E8(K),S)+l+D8(S8(K),S)}function pEe(l,m,S){l=ei(l),m=sr(m);var B=m?F2(l):0;return m&&B>>0,S?(l=ei(l),l&&(typeof m=="string"||m!=null&&!_O(m))&&(m=Eo(m),!m&&B2(l))?s0(tc(l),0,S):l.split(m,S)):[]}var _Ee=V2(function(l,m,S){return l+(S?" ":"")+SO(m)});function wEe(l,m,S){return l=ei(l),S=S==null?0:I1(sr(S),0,l.length),m=Eo(m),l.slice(S,S+m.length)==m}function xEe(l,m,S){var B=te.templateSettings;S&&As(l,m,S)&&(m=t),l=ei(l),m=W8({},m,B,zG);var K=W8({},m.imports,B.imports,zG),ae=aa(K),ve=kP(K,ae),Me,Fe,Ze=0,$e=m.interpolate||pe,Ye="__p += '",ot=FP((m.escape||pe).source+"|"+$e.source+"|"+($e===dt?xt:pe).source+"|"+(m.evaluate||pe).source+"|$","g"),Rt="//# sourceURL="+(ai.call(m,"sourceURL")?(m.sourceURL+"").replace(/\s/g," "):"lodash.templateSources["+ ++C5e+"]")+` +`;l.replace(ot,function(jt,Sr,Cr,Ao,Ps,Po){return Cr||(Cr=Ao),Ye+=l.slice(Ze,Po).replace(Ee,$5e),Sr&&(Me=!0,Ye+=`' + +__e(`+Sr+`) + +'`),Ps&&(Fe=!0,Ye+=`'; +`+Ps+`; +__p += '`),Cr&&(Ye+=`' + +((__t = (`+Cr+`)) == null ? '' : __t) + +'`),Ze=Po+jt.length,jt}),Ye+=`'; +`;var Ut=ai.call(m,"variable")&&m.variable;if(!Ut)Ye=`with (obj) { +`+Ye+` +} +`;else if(wt.test(Ut))throw new $t(a);Ye=(Fe?Ye.replace(Ve,""):Ye).replace(Mr,"$1").replace(rt,"$1;"),Ye="function("+(Ut||"obj")+`) { +`+(Ut?"":`obj || (obj = {}); +`)+"var __t, __p = ''"+(Me?", __e = _.escape":"")+(Fe?`, __j = Array.prototype.join; +function print() { __p += __j.call(arguments, '') } +`:`; +`)+Ye+`return __p +}`;var cr=FJ(function(){return Qr(ae,Rt+"return "+Ye).apply(t,ve)});if(cr.source=Ye,bO(cr))throw cr;return cr}function SEe(l){return ei(l).toLowerCase()}function EEe(l){return ei(l).toUpperCase()}function TEe(l,m,S){if(l=ei(l),l&&(S||m===t))return Gz(l);if(!l||!(m=Eo(m)))return l;var B=tc(l),K=tc(m),ae=Jz(B,K),ve=Xz(B,K)+1;return s0(B,ae,ve).join("")}function AEe(l,m,S){if(l=ei(l),l&&(S||m===t))return l.slice(0,Wz(l)+1);if(!l||!(m=Eo(m)))return l;var B=tc(l),K=Xz(B,tc(m))+1;return s0(B,0,K).join("")}function PEe(l,m,S){if(l=ei(l),l&&(S||m===t))return l.replace(ct,"");if(!l||!(m=Eo(m)))return l;var B=tc(l),K=Jz(B,tc(m));return s0(B,K).join("")}function OEe(l,m){var S=ne,B=ee;if(Zi(m)){var K="separator"in m?m.separator:K;S="length"in m?sr(m.length):S,B="omission"in m?Eo(m.omission):B}l=ei(l);var ae=l.length;if(B2(l)){var ve=tc(l);ae=ve.length}if(S>=ae)return l;var Me=S-F2(B);if(Me<1)return B;var Fe=ve?s0(ve,0,Me).join(""):l.slice(0,Me);if(K===t)return Fe+B;if(ve&&(Me+=Fe.length-Me),_O(K)){if(l.slice(Me).search(K)){var Ze,$e=Fe;for(K.global||(K=FP(K.source,ei(lt.exec(K))+"g")),K.lastIndex=0;Ze=K.exec($e);)var Ye=Ze.index;Fe=Fe.slice(0,Ye===t?Me:Ye)}}else if(l.indexOf(Eo(K),Me)!=Me){var ot=Fe.lastIndexOf(K);ot>-1&&(Fe=Fe.slice(0,ot))}return Fe+B}function REe(l){return l=ei(l),l&&ft.test(l)?l.replace(at,n9e):l}var MEe=V2(function(l,m,S){return l+(S?" ":"")+m.toUpperCase()}),SO=DG("toUpperCase");function BJ(l,m,S){return l=ei(l),m=S?t:m,m===t?Y5e(l)?o9e(l):z5e(l):l.match(m)||[]}var FJ=hr(function(l,m){try{return xo(l,t,m)}catch(S){return bO(S)?S:new $t(S)}}),CEe=Kl(function(l,m){return Qo(m,function(S){S=cd(S),Jl(l,S,yO(l[S],l))}),l});function IEe(l){var m=l==null?0:l.length,S=Dt();return l=m?Fi(l,function(B){if(typeof B[1]!="function")throw new Yo(n);return[S(B[0]),B[1]]}):[],hr(function(B){for(var K=-1;++KP)return[];var S=h,B=Wa(l,h);m=Dt(m),l-=h;for(var K=NP(B,m);++S0||m<0)?new Pr(S):(l<0?S=S.takeRight(-l):l&&(S=S.drop(l)),m!==t&&(m=sr(m),S=m<0?S.dropRight(-m):S.take(m-l)),S)},Pr.prototype.takeRightWhile=function(l){return this.reverse().takeWhile(l).reverse()},Pr.prototype.toArray=function(){return this.take(h)},od(Pr.prototype,function(l,m){var S=/^(?:filter|find|map|reject)|While$/.test(m),B=/^(?:head|last)$/.test(m),K=te[B?"take"+(m=="last"?"Right":""):m],ae=B||/^find/.test(m);!K||(te.prototype[m]=function(){var ve=this.__wrapped__,Me=B?[1]:arguments,Fe=ve instanceof Pr,Ze=Me[0],$e=Fe||tr(ve),Ye=function(Sr){var Cr=K.apply(te,Yp([Sr],Me));return B&&ot?Cr[0]:Cr};$e&&S&&typeof Ze=="function"&&Ze.length!=1&&(Fe=$e=!1);var ot=this.__chain__,Rt=!!this.__actions__.length,Ut=ae&&!ot,cr=Fe&&!Rt;if(!ae&&$e){ve=cr?ve:new Pr(this);var jt=l.apply(ve,Me);return jt.__actions__.push({func:V8,args:[Ye],thisArg:t}),new eu(jt,ot)}return Ut&&cr?l.apply(this,Me):(jt=this.thru(Ye),Ut?B?jt.value()[0]:jt.value():jt)})}),Qo(["pop","push","shift","sort","splice","unshift"],function(l){var m=h8[l],S=/^(?:push|sort|unshift)$/.test(l)?"tap":"thru",B=/^(?:pop|shift)$/.test(l);te.prototype[l]=function(){var K=arguments;if(B&&!this.__chain__){var ae=this.value();return m.apply(tr(ae)?ae:[],K)}return this[S](function(ve){return m.apply(tr(ve)?ve:[],K)})}}),od(Pr.prototype,function(l,m){var S=te[m];if(S){var B=S.name+"";ai.call(L2,B)||(L2[B]=[]),L2[B].push({name:m,func:S})}}),L2[B8(t,I).name]=[{name:"wrapper",func:t}],Pr.prototype.clone=R9e,Pr.prototype.reverse=M9e,Pr.prototype.value=C9e,te.prototype.at=sxe,te.prototype.chain=oxe,te.prototype.commit=uxe,te.prototype.next=cxe,te.prototype.plant=lxe,te.prototype.reverse=fxe,te.prototype.toJSON=te.prototype.valueOf=te.prototype.value=pxe,te.prototype.first=te.prototype.head,s4&&(te.prototype[s4]=dxe),te},t0=u9e();typeof define=="function"&&typeof define.amd=="object"&&define.amd?(na._=t0,define(function(){return t0})):O1?((O1.exports=t0)._=t0,TP._=t0):na._=t0}).call(Xv)});var Kv=x((Ju,Mhe)=>{"use strict";var Rhe=require("url"),yD=Ju.ValidationError=function(e,r,i,n,a,s){n&&(this.property=n),e&&(this.message=e),i&&(i.id?this.schema=i.id:this.schema=i),r&&(this.instance=r),this.name=a,this.argument=s,this.stack=this.toString()};yD.prototype.toString=function(){return this.property+" "+this.message};var yE=Ju.ValidatorResult=function(e,r,i,n){this.instance=e,this.schema=r,this.propertyPath=n.propertyPath,this.errors=[],this.throwError=i&&i.throwError,this.disableFormat=i&&i.disableFormat===!0};yE.prototype.addError=function(e){var r;if(typeof e=="string")r=new yD(e,this.instance,this.schema,this.propertyPath);else{if(!e)throw new Error("Missing error detail");if(!e.message)throw new Error("Missing error message");if(!e.name)throw new Error("Missing validator type");r=new yD(e.message,this.instance,this.schema,this.propertyPath,e.name,e.argument)}if(this.throwError)throw r;return this.errors.push(r),r};yE.prototype.importErrors=function(e){typeof e=="string"||e&&e.validatorType?this.addError(e):e&&e.errors&&Array.prototype.push.apply(this.errors,e.errors)};function Ont(t,e){return e+": "+t.toString()+` +`}yE.prototype.toString=function(e){return this.errors.map(Ont).join("")};Object.defineProperty(yE.prototype,"valid",{get:function(){return!this.errors.length}});var Ohe=Ju.SchemaError=function t(e,r){this.message=e,this.schema=r,Error.call(this,e),Error.captureStackTrace(this,t)};Ohe.prototype=Object.create(Error.prototype,{constructor:{value:Ohe,enumerable:!1},name:{value:"SchemaError",enumerable:!1}});var vD=Ju.SchemaContext=function(e,r,i,n,a){this.schema=e,this.options=r,this.propertyPath=i,this.base=n,this.schemas=a};vD.prototype.resolve=function(e){return Rhe.resolve(this.base,e)};vD.prototype.makeChild=function(e,r){var i=r===void 0?this.propertyPath:this.propertyPath+Rnt(r),n=Rhe.resolve(this.base,e.id||""),a=new vD(e,this.options,i,n,Object.create(this.schemas));return e.id&&!a.schemas[n]&&(a.schemas[n]=e),a};var Nc=Ju.FORMAT_REGEXPS={"date-time":/^\d{4}-(?:0[0-9]{1}|1[0-2]{1})-(3[01]|0[1-9]|[12][0-9])[tT ](2[0-4]|[01][0-9]):([0-5][0-9]):(60|[0-5][0-9])(\.\d+)?([zZ]|[+-]([0-5][0-9]):(60|[0-5][0-9]))$/,date:/^\d{4}-(?:0[0-9]{1}|1[0-2]{1})-(3[01]|0[1-9]|[12][0-9])$/,time:/^(2[0-4]|[01][0-9]):([0-5][0-9]):(60|[0-5][0-9])$/,email:/^(?:[\w\!\#\$\%\&\'\*\+\-\/\=\?\^\`\{\|\}\~]+\.)*[\w\!\#\$\%\&\'\*\+\-\/\=\?\^\`\{\|\}\~]+@(?:(?:(?:[a-zA-Z0-9](?:[a-zA-Z0-9\-](?!\.)){0,61}[a-zA-Z0-9]?\.)+[a-zA-Z0-9](?:[a-zA-Z0-9\-](?!$)){0,61}[a-zA-Z0-9]?)|(?:\[(?:(?:[01]?\d{1,2}|2[0-4]\d|25[0-5])\.){3}(?:[01]?\d{1,2}|2[0-4]\d|25[0-5])\]))$/,"ip-address":/^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/,ipv6:/^\s*((([0-9A-Fa-f]{1,4}:){7}([0-9A-Fa-f]{1,4}|:))|(([0-9A-Fa-f]{1,4}:){6}(:[0-9A-Fa-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){5}(((:[0-9A-Fa-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){4}(((:[0-9A-Fa-f]{1,4}){1,3})|((:[0-9A-Fa-f]{1,4})?:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){3}(((:[0-9A-Fa-f]{1,4}){1,4})|((:[0-9A-Fa-f]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){2}(((:[0-9A-Fa-f]{1,4}){1,5})|((:[0-9A-Fa-f]{1,4}){0,3}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){1}(((:[0-9A-Fa-f]{1,4}){1,6})|((:[0-9A-Fa-f]{1,4}){0,4}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(:(((:[0-9A-Fa-f]{1,4}){1,7})|((:[0-9A-Fa-f]{1,4}){0,5}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(%.+)?\s*$/,uri:/^[a-zA-Z][a-zA-Z0-9+-.]*:[^\s]*$/,color:/^(#?([0-9A-Fa-f]{3}){1,2}\b|aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow|(rgb\(\s*\b([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\b\s*,\s*\b([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\b\s*,\s*\b([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\b\s*\))|(rgb\(\s*(\d?\d%|100%)+\s*,\s*(\d?\d%|100%)+\s*,\s*(\d?\d%|100%)+\s*\)))$/,hostname:/^(?=.{1,255}$)[0-9A-Za-z](?:(?:[0-9A-Za-z]|-){0,61}[0-9A-Za-z])?(?:\.[0-9A-Za-z](?:(?:[0-9A-Za-z]|-){0,61}[0-9A-Za-z])?)*\.?$/,"host-name":/^(?=.{1,255}$)[0-9A-Za-z](?:(?:[0-9A-Za-z]|-){0,61}[0-9A-Za-z])?(?:\.[0-9A-Za-z](?:(?:[0-9A-Za-z]|-){0,61}[0-9A-Za-z])?)*\.?$/,alpha:/^[a-zA-Z]+$/,alphanumeric:/^[a-zA-Z0-9]+$/,"utc-millisec":function(t){return typeof t=="string"&&parseFloat(t)===parseInt(t,10)&&!isNaN(t)},regex:function(t){var e=!0;try{new RegExp(t)}catch{e=!1}return e},style:/\s*(.+?):\s*([^;]+);?/g,phone:/^\+(?:[0-9] ?){6,14}[0-9]$/};Nc.regexp=Nc.regex;Nc.pattern=Nc.regex;Nc.ipv4=Nc["ip-address"];Ju.isFormat=function(e,r,i){if(typeof e=="string"&&Nc[r]!==void 0){if(Nc[r]instanceof RegExp)return Nc[r].test(e);if(typeof Nc[r]=="function")return Nc[r](e)}else if(i&&i.customFormats&&typeof i.customFormats[r]=="function")return i.customFormats[r](e);return!0};var Rnt=Ju.makeSuffix=function(e){return e=e.toString(),!e.match(/[.\s\[\]]/)&&!e.match(/^[\d]/)?"."+e:e.match(/^\d+$/)?"["+e+"]":"["+JSON.stringify(e)+"]"};Ju.deepCompareStrict=function t(e,r){if(typeof e!=typeof r)return!1;if(e instanceof Array)return!(r instanceof Array)||e.length!==r.length?!1:e.every(function(a,s){return t(e[s],r[s])});if(typeof e=="object"){if(!e||!r)return e===r;var i=Object.keys(e),n=Object.keys(r);return i.length!==n.length?!1:i.every(function(a){return t(e[a],r[a])})}return e===r};function Mnt(t,e,r,i){typeof r=="object"?e[i]=bD(t[i],r):t.indexOf(r)===-1&&e.push(r)}function Cnt(t,e,r){e[r]=t[r]}function Int(t,e,r,i){typeof e[i]!="object"||!e[i]?r[i]=e[i]:t[i]?r[i]=bD(t[i],e[i]):r[i]=e[i]}function bD(t,e){var r=Array.isArray(e),i=r&&[]||{};return r?(t=t||[],i=i.concat(t),e.forEach(Mnt.bind(null,t,i))):(t&&typeof t=="object"&&Object.keys(t).forEach(Cnt.bind(null,t,i)),Object.keys(e).forEach(Int.bind(null,t,e,i))),i}Mhe.exports.deepMerge=bD;Ju.objectGetPath=function(e,r){for(var i=r.split("/").slice(1),n;typeof(n=i.shift())=="string";){var a=decodeURIComponent(n.replace(/~0/,"~").replace(/~1/g,"/"));if(!(a in e))return;e=e[a]}return e};function Nnt(t){return"/"+encodeURIComponent(t).replace(/~/g,"%7E")}Ju.encodePath=function(e){return e.map(Nnt).join("")};Ju.getDecimalPlaces=function(e){var r=0;if(isNaN(e))return r;typeof e!="number"&&(e=Number(e));var i=e.toString().split("e");if(i.length===2){if(i[1][0]!=="-")return r;r=Number(i[1].slice(1))}var n=i[0].split(".");return n.length===2&&(r+=n[1].length),r}});var Bhe=x((mBt,khe)=>{"use strict";var lp=Kv(),di=lp.ValidatorResult,n_=lp.SchemaError,_D={};_D.ignoreProperties={id:!0,default:!0,description:!0,title:!0,exclusiveMinimum:!0,exclusiveMaximum:!0,additionalItems:!0,$schema:!0,$ref:!0,extends:!0};var li=_D.validators={};li.type=function(e,r,i,n){if(e===void 0)return null;var a=new di(e,r,i,n),s=Array.isArray(r.type)?r.type:[r.type];if(!s.some(this.testType.bind(this,e,r,i,n))){var o=s.map(function(c){return c.id&&"<"+c.id+">"||c+""});a.addError({name:"type",argument:o,message:"is not of a type(s) "+o})}return a};function Che(t,e,r,i,n){var a=this.validateSchema(t,n,e,r);return!a.valid&&i instanceof Function&&i(a),a.valid}li.anyOf=function(e,r,i,n){if(e===void 0)return null;var a=new di(e,r,i,n),s=new di(e,r,i,n);if(!Array.isArray(r.anyOf))throw new n_("anyOf must be an array");if(!r.anyOf.some(Che.bind(this,e,i,n,function(c){s.importErrors(c)}))){var o=r.anyOf.map(function(c,u){return c.id&&"<"+c.id+">"||c.title&&JSON.stringify(c.title)||c.$ref&&"<"+c.$ref+">"||"[subschema "+u+"]"});i.nestedErrors&&a.importErrors(s),a.addError({name:"anyOf",argument:o,message:"is not any of "+o.join(",")})}return a};li.allOf=function(e,r,i,n){if(e===void 0)return null;if(!Array.isArray(r.allOf))throw new n_("allOf must be an array");var a=new di(e,r,i,n),s=this;return r.allOf.forEach(function(o,c){var u=s.validateSchema(e,o,i,n);if(!u.valid){var f=o.id&&"<"+o.id+">"||o.title&&JSON.stringify(o.title)||o.$ref&&"<"+o.$ref+">"||"[subschema "+c+"]";a.addError({name:"allOf",argument:{id:f,length:u.errors.length,valid:u},message:"does not match allOf schema "+f+" with "+u.errors.length+" error[s]:"}),a.importErrors(u)}}),a};li.oneOf=function(e,r,i,n){if(e===void 0)return null;if(!Array.isArray(r.oneOf))throw new n_("oneOf must be an array");var a=new di(e,r,i,n),s=new di(e,r,i,n),o=r.oneOf.filter(Che.bind(this,e,i,n,function(u){s.importErrors(u)})).length,c=r.oneOf.map(function(u,f){return u.id&&"<"+u.id+">"||u.title&&JSON.stringify(u.title)||u.$ref&&"<"+u.$ref+">"||"[subschema "+f+"]"});return o!==1&&(i.nestedErrors&&a.importErrors(s),a.addError({name:"oneOf",argument:c,message:"is not exactly one from "+c.join(",")})),a};li.properties=function(e,r,i,n){if(!(e===void 0||!(e instanceof Object))){var a=new di(e,r,i,n),s=r.properties||{};for(var o in s){typeof i.preValidateProperty=="function"&&i.preValidateProperty(e,o,s[o],i,n);var c=(e||void 0)&&e[o],u=this.validateSchema(c,s[o],i,n.makeChild(s[o],o));u.instance!==a.instance[o]&&(a.instance[o]=u.instance),a.importErrors(u)}return a}};function Ihe(t,e,r,i,n,a){if(!(e.properties&&e.properties[n]!==void 0))if(e.additionalProperties===!1)a.addError({name:"additionalProperties",argument:n,message:"additionalProperty "+JSON.stringify(n)+" exists in instance when not allowed"});else{var s=e.additionalProperties||{};typeof r.preValidateProperty=="function"&&r.preValidateProperty(t,n,s,r,i);var o=this.validateSchema(t[n],s,r,i.makeChild(s,n));o.instance!==a.instance[n]&&(a.instance[n]=o.instance),a.importErrors(o)}}li.patternProperties=function(e,r,i,n){if(e!==void 0&&!!this.types.object(e)){var a=new di(e,r,i,n),s=r.patternProperties||{};for(var o in e){var c=!0;for(var u in s){var f=new RegExp(u);if(!!f.test(o)){c=!1,typeof i.preValidateProperty=="function"&&i.preValidateProperty(e,o,s[u],i,n);var d=this.validateSchema(e[o],s[u],i,n.makeChild(s[u],o));d.instance!==a.instance[o]&&(a.instance[o]=d.instance),a.importErrors(d)}}c&&Ihe.call(this,e,r,i,n,o,a)}return a}};li.additionalProperties=function(e,r,i,n){if(e!==void 0&&!!this.types.object(e)){if(r.patternProperties)return null;var a=new di(e,r,i,n);for(var s in e)Ihe.call(this,e,r,i,n,s,a);return a}};li.minProperties=function(e,r,i,n){if(!e||typeof e!="object")return null;var a=new di(e,r,i,n),s=Object.keys(e);return s.length>=r.minProperties||a.addError({name:"minProperties",argument:r.minProperties,message:"does not meet minimum property length of "+r.minProperties}),a};li.maxProperties=function(e,r,i,n){if(!e||typeof e!="object")return null;var a=new di(e,r,i,n),s=Object.keys(e);return s.length<=r.maxProperties||a.addError({name:"maxProperties",argument:r.maxProperties,message:"does not meet maximum property length of "+r.maxProperties}),a};li.items=function(e,r,i,n){if(!Array.isArray(e))return null;var a=this,s=new di(e,r,i,n);return e===void 0||!r.items||e.every(function(o,c){var u=Array.isArray(r.items)?r.items[c]||r.additionalItems:r.items;if(u===void 0)return!0;if(u===!1)return s.addError({name:"items",message:"additionalItems not permitted"}),!1;var f=a.validateSchema(o,u,i,n.makeChild(u,c));return f.instance!==s.instance[c]&&(s.instance[c]=f.instance),s.importErrors(f),!0}),s};li.minimum=function(e,r,i,n){if(typeof e!="number")return null;var a=new di(e,r,i,n),s=!0;return r.exclusiveMinimum&&r.exclusiveMinimum===!0?s=e>r.minimum:s=e>=r.minimum,s||a.addError({name:"minimum",argument:r.minimum,message:"must have a minimum value of "+r.minimum}),a};li.maximum=function(e,r,i,n){if(typeof e!="number")return null;var a=new di(e,r,i,n),s;return r.exclusiveMaximum&&r.exclusiveMaximum===!0?s=e=r.minLength||a.addError({name:"minLength",argument:r.minLength,message:"does not meet minimum length of "+r.minLength}),a};li.maxLength=function(e,r,i,n){if(typeof e!="string")return null;var a=new di(e,r,i,n);return e.length<=r.maxLength||a.addError({name:"maxLength",argument:r.maxLength,message:"does not meet maximum length of "+r.maxLength}),a};li.minItems=function(e,r,i,n){if(!Array.isArray(e))return null;var a=new di(e,r,i,n);return e.length>=r.minItems||a.addError({name:"minItems",argument:r.minItems,message:"does not meet minimum length of "+r.minItems}),a};li.maxItems=function(e,r,i,n){if(!Array.isArray(e))return null;var a=new di(e,r,i,n);return e.length<=r.maxItems||a.addError({name:"maxItems",argument:r.maxItems,message:"does not meet maximum length of "+r.maxItems}),a};li.uniqueItems=function(e,r,i,n){var a=new di(e,r,i,n);if(!Array.isArray(e))return a;function s(o,c,u){for(var f=c+1;f"||c;s.addError({name:"not",argument:u,message:"is of prohibited type "+u})}}),s):null};khe.exports=_D});var Uhe=x((gBt,Lhe)=>{"use strict";var vE=require("url"),Fhe=Bhe(),s2=Kv(),Bnt=s2.ValidatorResult,bE=s2.SchemaError,Dhe=s2.SchemaContext,$n=function t(){this.customFormats=Object.create(t.prototype.customFormats),this.schemas={},this.unresolvedRefs=[],this.types=Object.create(El),this.attributes=Object.create(Fhe.validators)};$n.prototype.customFormats={};$n.prototype.schemas=null;$n.prototype.types=null;$n.prototype.attributes=null;$n.prototype.unresolvedRefs=null;$n.prototype.addSchema=function(e,r){if(!e)return null;var i=r||e.id;return this.addSubSchema(i,e),i&&(this.schemas[i]=e),this.schemas[i]};$n.prototype.addSubSchema=function(e,r){if(!(!r||typeof r!="object")){if(r.$ref){var i=vE.resolve(e,r.$ref);this.schemas[i]===void 0&&(this.schemas[i]=null,this.unresolvedRefs.push(i));return}var n=r.id&&vE.resolve(e,r.id),a=n||e;if(n){if(this.schemas[n]){if(!s2.deepCompareStrict(this.schemas[n],r))throw new Error("Schema <"+r+"> already exists with different definition");return this.schemas[n]}this.schemas[n]=r;var s=n.replace(/^([^#]*)#$/,"$1");this.schemas[s]=r}return this.addSubSchemaArray(a,r.items instanceof Array?r.items:[r.items]),this.addSubSchemaArray(a,r.extends instanceof Array?r.extends:[r.extends]),this.addSubSchema(a,r.additionalItems),this.addSubSchemaObject(a,r.properties),this.addSubSchema(a,r.additionalProperties),this.addSubSchemaObject(a,r.definitions),this.addSubSchemaObject(a,r.patternProperties),this.addSubSchemaObject(a,r.dependencies),this.addSubSchemaArray(a,r.disallow),this.addSubSchemaArray(a,r.allOf),this.addSubSchemaArray(a,r.anyOf),this.addSubSchemaArray(a,r.oneOf),this.addSubSchema(a,r.not),this.schemas[n]}};$n.prototype.addSubSchemaArray=function(e,r){if(r instanceof Array)for(var i=0;i",e);var o=s2.objectGetPath(i.schemas[s],a.substr(1));if(o===void 0)throw new bE("no such schema "+a+" located in <"+s+">",e);return{subschema:o,switchSchema:r}};$n.prototype.testType=function(e,r,i,n,a){if(typeof this.types[a]=="function")return this.types[a].call(this,e);if(a&&typeof a=="object"){var s=this.validateSchema(e,a,i,n);return s===void 0||!(s&&s.errors.length)}return!0};var El=$n.prototype.types={};El.string=function(e){return typeof e=="string"};El.number=function(e){return typeof e=="number"&&isFinite(e)};El.integer=function(e){return typeof e=="number"&&e%1===0};El.boolean=function(e){return typeof e=="boolean"};El.array=function(e){return Array.isArray(e)};El.null=function(e){return e===null};El.date=function(e){return e instanceof Date};El.any=function(e){return!0};El.object=function(e){return e&&typeof e=="object"&&!(e instanceof Array)&&!(e instanceof Date)};Lhe.exports=$n});var jhe=x((yBt,Wv)=>{"use strict";var Fnt=Wv.exports.Validator=Uhe();Wv.exports.ValidatorResult=Kv().ValidatorResult;Wv.exports.ValidationError=Kv().ValidationError;Wv.exports.SchemaError=Kv().SchemaError;Wv.exports.validate=function(t,e,r){var i=new Fnt;return i.validate(t,e,r)}});var Vhe=x(Zv=>{"use strict";Object.defineProperty(Zv,"__esModule",{value:!0});Zv.concatArgs=Zv.seqEqual=void 0;function Dnt(t,e){if(t.length!==e.length)return!1;for(let r=0;r{if(qnt(r))for(let i of r)e.push(i);else e.push(r)}),e}Zv.concatArgs=Lnt});var Whe=x(Oi=>{"use strict";Object.defineProperty(Oi,"__esModule",{value:!0});Oi.isValidClassicAddress=Oi.decodeAccountPublic=Oi.encodeAccountPublic=Oi.encodeNodePublic=Oi.decodeNodePublic=Oi.decodeAddress=Oi.decodeAccountID=Oi.encodeAddress=Oi.encodeAccountID=Oi.decodeSeed=Oi.encodeSeed=Oi.codec=void 0;var Unt=DN(),jnt=h3(),_E=Vhe(),wD=class{constructor(e){this._sha256=e.sha256,this._alphabet=e.alphabet,this._codec=Unt(this._alphabet)}encode(e,r){let i=r.versions;return this._encodeVersioned(e,i,r.expectedLength)}decode(e,r){var i;let n=r.versions,a=r.versionTypes,s=this.decodeChecked(e);if(n.length>1&&!r.expectedLength)throw new Error("expectedLength is required because there are >= 2 possible versions");let o=typeof n[0]=="number"?1:n[0].length,c=(i=r.expectedLength)!==null&&i!==void 0?i:s.length-o,u=s.slice(0,-c),f=s.slice(-c);for(let d=0;d= 5");if(!this._verifyCheckSum(r))throw new Error("checksum_invalid");return r.slice(0,-4)}_encodeVersioned(e,r,i){if(i&&e.length!==i)throw new Error("unexpected_payload_length: bytes.length does not match expectedLength. Ensure that the bytes are a Buffer.");return this.encodeChecked(Buffer.from((0,_E.concatArgs)(r,e)))}_encodeRaw(e){return this._codec.encode(e)}_decodeRaw(e){return this._codec.decode(e)}_verifyCheckSum(e){let r=this._sha256(this._sha256(e.slice(0,-4))).slice(0,4),i=e.slice(-4);return(0,_E.seqEqual)(r,i)}},Hhe=0,zhe=35,Ghe=33,Jhe=28,Xhe=[1,225,75],Vnt={sha256(t){return jnt("sha256").update(Buffer.from(t)).digest()},alphabet:"rpshnaf39wBUDNEGHJKLM4PQRST7VWXYZ2bcdeCg65jkm8oFqi1tuvAxyz"},fp=new wD(Vnt);Oi.codec=fp;function Hnt(t,e){if(t.length!==16)throw new Error("entropy must have length 16");let r={expectedLength:16,versions:e==="ed25519"?Xhe:[Ghe]};return fp.encode(t,r)}Oi.encodeSeed=Hnt;function znt(t,e={versionTypes:["ed25519","secp256k1"],versions:[Xhe,Ghe],expectedLength:16}){return fp.decode(t,e)}Oi.decodeSeed=znt;function Khe(t){let e={versions:[Hhe],expectedLength:20};return fp.encode(t,e)}Oi.encodeAccountID=Khe;Oi.encodeAddress=Khe;function xD(t){let e={versions:[Hhe],expectedLength:20};return fp.decode(t,e).bytes}Oi.decodeAccountID=xD;Oi.decodeAddress=xD;function Gnt(t){let e={versions:[Jhe],expectedLength:33};return fp.decode(t,e).bytes}Oi.decodeNodePublic=Gnt;function Jnt(t){let e={versions:[Jhe],expectedLength:33};return fp.encode(t,e)}Oi.encodeNodePublic=Jnt;function Xnt(t){let e={versions:[zhe],expectedLength:33};return fp.encode(t,e)}Oi.encodeAccountPublic=Xnt;function Knt(t){let e={versions:[zhe],expectedLength:33};return fp.decode(t,e).bytes}Oi.decodeAccountPublic=Knt;function Wnt(t){try{xD(t)}catch{return!1}return!0}Oi.isValidClassicAddress=Wnt});var uo=x($r=>{"use strict";Object.defineProperty($r,"__esModule",{value:!0});$r.isValidXAddress=$r.decodeXAddress=$r.xAddressToClassicAddress=$r.encodeXAddress=$r.classicAddressToXAddress=$r.isValidClassicAddress=$r.decodeAccountPublic=$r.encodeAccountPublic=$r.decodeNodePublic=$r.encodeNodePublic=$r.decodeAccountID=$r.encodeAccountID=$r.decodeSeed=$r.encodeSeed=$r.codec=void 0;var Zhe=require("assert"),oo=Whe();Object.defineProperty($r,"codec",{enumerable:!0,get:function(){return oo.codec}});Object.defineProperty($r,"encodeSeed",{enumerable:!0,get:function(){return oo.encodeSeed}});Object.defineProperty($r,"decodeSeed",{enumerable:!0,get:function(){return oo.decodeSeed}});Object.defineProperty($r,"encodeAccountID",{enumerable:!0,get:function(){return oo.encodeAccountID}});Object.defineProperty($r,"decodeAccountID",{enumerable:!0,get:function(){return oo.decodeAccountID}});Object.defineProperty($r,"encodeNodePublic",{enumerable:!0,get:function(){return oo.encodeNodePublic}});Object.defineProperty($r,"decodeNodePublic",{enumerable:!0,get:function(){return oo.decodeNodePublic}});Object.defineProperty($r,"encodeAccountPublic",{enumerable:!0,get:function(){return oo.encodeAccountPublic}});Object.defineProperty($r,"decodeAccountPublic",{enumerable:!0,get:function(){return oo.decodeAccountPublic}});Object.defineProperty($r,"isValidClassicAddress",{enumerable:!0,get:function(){return oo.isValidClassicAddress}});var wE={main:Buffer.from([5,68]),test:Buffer.from([4,147])},Znt=4294967295;function $nt(t,e,r){let i=(0,oo.decodeAccountID)(t);return $he(i,e,r)}$r.classicAddressToXAddress=$nt;function $he(t,e,r){if(t.length!==20)throw new Error("Account ID must be 20 bytes");if(e>Znt)throw new Error("Invalid tag");let i=e||0,n=e===!1||e==null?0:1,a=Buffer.concat([r?wE.test:wE.main,t,Buffer.from([n,i&255,i>>8&255,i>>16&255,i>>24&255,0,0,0,0])]);return oo.codec.encodeChecked(a)}$r.encodeXAddress=$he;function Qnt(t){let{accountId:e,tag:r,test:i}=SD(t);return{classicAddress:(0,oo.encodeAccountID)(e),tag:r,test:i}}$r.xAddressToClassicAddress=Qnt;function SD(t){let e=oo.codec.decodeChecked(t),r=Ynt(e),i=e.slice(2,22),n=eat(e);return{accountId:i,tag:n,test:r}}$r.decodeXAddress=SD;function Ynt(t){let e=t.slice(0,2);if(wE.main.equals(e))return!1;if(wE.test.equals(e))return!0;throw new Error("Invalid X-address: bad prefix")}function eat(t){let e=t[22];if(e>=2)throw new Error("Unsupported X-address");return e===1?t[23]+t[24]*256+t[25]*65536+t[26]*16777216:(Zhe.strictEqual(e,0,"flag must be zero to indicate no tag"),Zhe.ok(Buffer.from("0000000000000000","hex").equals(t.slice(23,23+8)),"remaining bytes must be zero"),!1)}function tat(t){try{SD(t)}catch{return!1}return!0}$r.isValidXAddress=tat});var Qhe=x(TD=>{"use strict";Object.defineProperty(TD,"__esModule",{value:!0});var rat=b0(),iat=ac(),ED=class{constructor(){this.hash=rat.sha512()}add(e){return this.hash.update(e),this}addU32(e){return this.add([e>>>24&255,e>>>16&255,e>>>8&255,e&255])}finish(){return this.hash.digest()}first256(){return this.finish().slice(0,32)}first256BN(){return new iat(this.first256())}};TD.default=ED});var Yhe=x($v=>{"use strict";Object.defineProperty($v,"__esModule",{value:!0});$v.accountPublicFromPublicGenerator=$v.derivePrivateKey=void 0;var nat=L4(),aat=Qhe(),a_=nat.ec("secp256k1");function AD(t,e){let r=a_.curve.n;for(let i=0;i<=4294967295;i++){let n=new aat.default().add(t);e!==void 0&&n.addU32(e),n.addU32(i);let a=n.first256BN();if(a.cmpn(0)>0&&a.cmp(r)<0)return a}throw new Error("impossible unicorn ;)")}function sat(t,e={}){let r=e.validator,i=a_.curve.n,n=AD(t);if(r)return n;let a=a_.g.mul(n),s=e.accountIndex||0;return AD(a.encodeCompressed(),s).add(n).mod(i)}$v.derivePrivateKey=sat;function oat(t){let e=a_.curve.decodePoint(t),r=AD(t,0),i=a_.g.mul(r);return e.add(i).encodeCompressed()}$v.accountPublicFromPublicGenerator=oat});var t1e=x(Xh=>{"use strict";Object.defineProperty(Xh,"__esModule",{value:!0});Xh.computePublicKeyHash=Xh.hexToBytes=Xh.bytesToHex=void 0;var uat=require("assert"),e1e=b0(),cat=ac();function dat(t){return Array.from(t,e=>{let r=e.toString(16).toUpperCase();return r.length>1?r:`0${r}`}).join("")}Xh.bytesToHex=dat;function lat(t){return uat.ok(t.length%2===0),t.length===0?[]:new cat(t,16).toArray(null,t.length/2)}Xh.hexToBytes=lat;function fat(t){let e=e1e.sha256().update(t).digest(),r=e1e.ripemd160().update(e).digest();return Buffer.from(r)}Xh.computePublicKeyHash=fat});var o2=x((EBt,o1e)=>{"use strict";var r1e=require("assert"),pat=Z5(),hat=b0(),i1e=L4(),o_=uo(),n1e=Yhe(),RD=t1e(),PD=i1e.eddsa("ed25519"),OD=i1e.ec("secp256k1"),{hexToBytes:pp}=RD,{bytesToHex:s_}=RD;function mat(t={}){r1e.ok(!t.entropy||t.entropy.length>=16,"entropy too short");let e=t.entropy?t.entropy.slice(0,16):pat(16),r=t.algorithm==="ed25519"?"ed25519":"secp256k1";return o_.encodeSeed(Buffer.from(e),r)}function xE(t){return hat.sha512().update(t).digest().slice(0,32)}var gat={deriveKeypair(t,e){let i="00"+(0,n1e.derivePrivateKey)(t,e).toString(16,64).toUpperCase(),n=s_(OD.keyFromPrivate(i.slice(2)).getPublic().encodeCompressed());return{privateKey:i,publicKey:n}},sign(t,e){return s_(OD.sign(xE(t),pp(e),{canonical:!0}).toDER())},verify(t,e,r){return OD.verify(xE(t),e,pp(r))}},yat={deriveKeypair(t){let e="ED",r=xE(t),i=e+s_(r),n=e+s_(PD.keyFromSecret(r).pubBytes());return{privateKey:i,publicKey:n}},sign(t,e){return r1e.ok(Array.isArray(t),"message must be array of octets"),s_(PD.sign(t,pp(e).slice(1)).toBytes())},verify(t,e,r){return PD.verify(t,pp(e),pp(r).slice(1))}};function MD(t){return{"ecdsa-secp256k1":gat,ed25519:yat}[t]}function vat(t,e){let r=o_.decodeSeed(t),i=r.type==="ed25519"?"ed25519":"ecdsa-secp256k1",n=MD(i),a=n.deriveKeypair(r.bytes,e),s=xE("This test message should verify."),o=n.sign(s,a.privateKey);if(n.verify(s,o,a.publicKey)!==!0)throw new Error("derived keypair did not generate verifiable signature");return a}function a1e(t){let e=pp(t);return e.length===33&&e[0]===237?"ed25519":"ecdsa-secp256k1"}function bat(t,e){let r=a1e(e);return MD(r).sign(pp(t),e)}function _at(t,e,r){let i=a1e(r);return MD(i).verify(pp(t),e,r)}function s1e(t){return o_.encodeAccountID(RD.computePublicKeyHash(t))}function wat(t){return s1e(Buffer.from(pp(t)))}function xat(t){let e=o_.decodeNodePublic(t),r=(0,n1e.accountPublicFromPublicGenerator)(e);return s1e(r)}var{decodeSeed:Sat}=o_;o1e.exports={generateSeed:mat,deriveKeypair:vat,sign:bat,verify:_at,deriveAddress:wat,deriveNodeAddress:xat,decodeSeed:Sat}});var c_=x(Ri=>{"use strict";var Eat=Ri&&Ri.__createBinding||(Object.create?function(t,e,r,i){i===void 0&&(i=r),Object.defineProperty(t,i,{enumerable:!0,get:function(){return e[r]}})}:function(t,e,r,i){i===void 0&&(i=r),t[i]=e[r]}),Tat=Ri&&Ri.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),Aat=Ri&&Ri.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var r in t)r!=="default"&&Object.hasOwnProperty.call(t,r)&&Eat(e,t,r);return Tat(e,t),e},Pat=Ri&&Ri.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Ri,"__esModule",{value:!0});Ri.isValidSecret=Ri.iso8601ToRippleTime=Ri.rippleTimeToISO8601=Ri.removeUndefined=Ri.convertKeysFromSnakeCaseToCamelCase=Ri.toRippledAmount=Ri.xrpToDrops=Ri.dropsToXrp=void 0;var Oat=Aat(Vi()),u_=Pat(Yr()),Rat=o2(),Tl=Ic(),Mat=uo();function Cat(t){try{return Rat.deriveKeypair(t),!0}catch{return!1}}Ri.isValidSecret=Cat;function Iat(t){if(typeof t=="string")if(t.match(/^-?[0-9]*\.?[0-9]*$/)){if(t===".")throw new Tl.ValidationError(`dropsToXrp: invalid value '${t}', should be a BigNumber or string-encoded number.`)}else throw new Tl.ValidationError(`dropsToXrp: invalid value '${t}', should be a number matching (^-?[0-9]*\\.?[0-9]*$).`);if(t=new u_.default(t).toString(10),t.includes("."))throw new Tl.ValidationError(`dropsToXrp: value '${t}' has too many decimal places.`);if(!t.match(/^-?[0-9]+$/))throw new Tl.ValidationError(`dropsToXrp: failed sanity check - value '${t}', does not match (^-?[0-9]+$).`);return new u_.default(t).dividedBy(1e6).toString(10)}Ri.dropsToXrp=Iat;function u1e(t){if(typeof t=="string")if(t.match(/^-?[0-9]*\.?[0-9]*$/)){if(t===".")throw new Tl.ValidationError(`xrpToDrops: invalid value '${t}', should be a BigNumber or string-encoded number.`)}else throw new Tl.ValidationError(`xrpToDrops: invalid value '${t}', should be a number matching (^-?[0-9]*\\.?[0-9]*$).`);if(t=new u_.default(t).toString(10),!t.match(/^-?[0-9.]+$/))throw new Tl.ValidationError(`xrpToDrops: failed sanity check - value '${t}', does not match (^-?[0-9.]+$).`);let e=t.split(".");if(e.length>2)throw new Tl.ValidationError(`xrpToDrops: failed sanity check - value '${t}' has too many decimal points.`);if((e[1]||"0").length>6)throw new Tl.ValidationError(`xrpToDrops: value '${t}' has too many decimal places.`);return new u_.default(t).times(1e6).integerValue(u_.default.ROUND_FLOOR).toString(10)}Ri.xrpToDrops=u1e;function Nat(t){if(typeof t=="string")return t;if(t.currency==="XRP")return u1e(t.value);if(t.currency==="drops")return t.value;let e=t.counterparty||t.issuer,r=!1;try{({classicAddress:e,tag:r}=Mat.xAddressToClassicAddress(e))}catch{}if(r!==!1)throw new Tl.ValidationError("Issuer X-address includes a tag");return{currency:t.currency,issuer:e,value:t.value}}Ri.toRippledAmount=Nat;function c1e(t){if(typeof t=="object"){let e=Array.isArray(t)?[]:{},r;return Object.entries(t).reduce((i,[n,a])=>{r=n;let s=/([a-zA-Z]_[a-zA-Z])/g;return s.test(n)&&(r=n.replace(s,o=>o[0]+o[2].toUpperCase())),i[r]=c1e(a),i},e)}return t}Ri.convertKeysFromSnakeCaseToCamelCase=c1e;function kat(t){return Oat.omitBy(t,e=>e==null)}Ri.removeUndefined=kat;function Bat(t){return(t+946684800)*1e3}function Fat(t){return Math.round(t/1e3)-946684800}function Dat(t){return new Date(Bat(t)).toISOString()}Ri.rippleTimeToISO8601=Dat;function qat(t){return Fat(Date.parse(t))}Ri.iso8601ToRippleTime=qat});var d1e=x((ABt,Lat)=>{Lat.exports={$schema:"http://json-schema.org/draft-04/schema#",title:"tx-json",link:"https://xrpl.org/transaction-formats.html",description:"An object in rippled txJSON format",type:"object",properties:{Account:{$ref:"address"},TransactionType:{type:"string"}},required:["Account","TransactionType"]}});var l1e=x((PBt,Uat)=>{Uat.exports={$schema:"http://json-schema.org/draft-04/schema#",title:"transactionType",link:"transaction-types",description:"The type of the transaction.",type:"string",enum:["payment","order","orderCancellation","trustline","settings","escrowCreation","escrowCancellation","escrowExecution","paymentChannelCreate","paymentChannelFund","paymentChannelClaim","checkCreate","checkCancel","checkCash","depositPreauth","accountDelete"]}});var f1e=x((OBt,jat)=>{jat.exports={$schema:"http://json-schema.org/draft-04/schema#",title:"hash128",description:"The hexadecimal representation of a 128-bit hash",type:"string",pattern:"^[A-F0-9]{32}$"}});var p1e=x((RBt,Vat)=>{Vat.exports={$schema:"http://json-schema.org/draft-04/schema#",title:"hash256",description:"The hexadecimal representation of a 256-bit hash",type:"string",pattern:"^[A-F0-9]{64}$"}});var h1e=x((MBt,Hat)=>{Hat.exports={$schema:"http://json-schema.org/draft-04/schema#",title:"sequence",link:"account-sequence-number",description:"An account transaction sequence number",type:"integer",minimum:0}});var m1e=x((CBt,zat)=>{zat.exports={$schema:"http://json-schema.org/draft-04/schema#",title:"ticket-sequence",link:"account-sequence-number",description:"An account transaction tickt sequence number",type:"integer",minimum:1}});var g1e=x((IBt,Gat)=>{Gat.exports={$schema:"http://json-schema.org/draft-04/schema#",title:"signature",description:"The hexadecimal representation of a signature.",type:"string",pattern:"^[A-F0-9]+$"}});var y1e=x((NBt,Jat)=>{Jat.exports={$schema:"http://json-schema.org/draft-04/schema#",title:"issue",description:"The currency code, and the counterparty if it's not XRP.",allOf:[{$ref:"amountbase"},{not:{required:["value"]}}]}});var v1e=x((kBt,Xat)=>{Xat.exports={$schema:"http://json-schema.org/draft-04/schema#",title:"ledgerVersion",description:"A ledger version number",oneOf:[{type:"integer",minimum:1},{type:"string",enum:["validated","closed","current"]}]}});var b1e=x((BBt,Kat)=>{Kat.exports={$schema:"http://json-schema.org/draft-04/schema#",title:"maxAdjustment",type:"object",properties:{address:{$ref:"address",description:"The address to send from."},maxAmount:{$ref:"laxAmount",description:"The maximum amount to send. (This field cannot be used with source.amount)"},tag:{$ref:"tag"}},required:["address","maxAmount"],additionalProperties:!1}});var _1e=x((FBt,Wat)=>{Wat.exports={$schema:"http://json-schema.org/draft-04/schema#",title:"memo",description:"Memo objects represent arbitrary data that can be included in a transaction",type:"object",properties:{type:{pattern:"^[A-Za-z0-9\\-._~:/?#[\\]@!$&'()*+,;=%]*$",description:"Conventionally, a unique relation (according to [RFC 5988](http://tools.ietf.org/html/rfc5988#section-4)) that defines the format of this memo. Only characters allowed in URLs are permitted."},format:{pattern:"^[A-Za-z0-9\\-._~:/?#[\\]@!$&'()*+,;=%]*$",description:"Conventionally containing information on how the memo is encoded, for example as a [MIME type](http://www.iana.org/assignments/media-types/media-types.xhtml). Only characters allowed in URLs are permitted."},data:{type:"string",description:"Arbitrary string, conventionally containing the content of the memo."}},additionalProperties:!1,anyOf:[{required:["data"]},{required:["type"]}]}});var w1e=x((DBt,Zat)=>{Zat.exports={$schema:"http://json-schema.org/draft-04/schema#",title:"memos",link:"transaction-memos",description:"Array of memos to attach to the transaction.",type:"array",items:{$ref:"memo"}}});var x1e=x((qBt,$at)=>{$at.exports={$schema:"http://json-schema.org/draft-04/schema#",title:"publicKey",description:"The hexadecimal representation of a secp256k1 or Ed25519 public key.",type:"string",pattern:"^[A-F0-9]+$"}});var S1e=x((LBt,Qat)=>{Qat.exports={$schema:"http://json-schema.org/draft-04/schema#",title:"privateKey",description:"The hexadecimal representation of a secp256k1 or Ed25519 private key.",type:"string",pattern:"^[A-F0-9]+$"}});var E1e=x((UBt,Yat)=>{Yat.exports={$schema:"http://json-schema.org/draft-04/schema#",title:"uint32",description:"A 32-bit unsigned integer",type:"integer",minimum:0,maximum:4294967295}});var T1e=x((jBt,est)=>{est.exports={$schema:"http://json-schema.org/draft-04/schema#",title:"value",link:"value",description:"A string representation of a non-negative floating point number",type:"string",pattern:"^[0-9]*[.]?[0-9]+([eE][-+]?[0-9]+)?$"}});var A1e=x((VBt,tst)=>{tst.exports={$schema:"http://json-schema.org/draft-04/schema#",title:"sourceAdjustment",type:"object",oneOf:[{$ref:"sourceExactAdjustment"},{$ref:"maxAdjustment"}]}});var P1e=x((HBt,rst)=>{rst.exports={$schema:"http://json-schema.org/draft-04/schema#",title:"destinationAdjustment",type:"object",oneOf:[{$ref:"destinationExactAdjustment"},{$ref:"minAdjustment"}]}});var O1e=x((zBt,ist)=>{ist.exports={$schema:"http://json-schema.org/draft-04/schema#",title:"tag",description:"An arbitrary 32-bit unsigned integer. It typically maps to an off-ledger account; for example, a hosted wallet or exchange account.",type:"integer",$ref:"uint32"}});var R1e=x((GBt,nst)=>{nst.exports={$schema:"http://json-schema.org/draft-04/schema#",title:"laxAmount",description:"Amount where counterparty is optional",link:"amount",type:"object",properties:{currency:{$ref:"currency"},counterparty:{$ref:"address"},value:{$ref:"value"}},required:["currency","value"],additionalProperties:!1}});var M1e=x((JBt,ast)=>{ast.exports={$schema:"http://json-schema.org/draft-04/schema#",title:"laxLaxAmount",description:"Amount where counterparty and value are optional",link:"amount",type:"object",properties:{currency:{$ref:"currency"},counterparty:{$ref:"address"},value:{$ref:"value"}},required:["currency"],additionalProperties:!1}});var C1e=x((XBt,sst)=>{sst.exports={$schema:"http://json-schema.org/draft-04/schema#",title:"minAdjustment",type:"object",properties:{address:{$ref:"address",description:"An address representing the destination of the transaction."},minAmount:{$ref:"laxAmount",description:"The minimum amount to be delivered. (This field cannot be used with destination.amount)"},tag:{$ref:"tag"}},required:["address","minAmount"],additionalProperties:!1}});var I1e=x((KBt,ost)=>{ost.exports={$schema:"http://json-schema.org/draft-04/schema#",title:"sourceExactAdjustment",type:"object",properties:{address:{$ref:"address",description:"The address to send from."},amount:{$ref:"laxAmount",description:"An exact amount to send. If the counterparty is not specified, amounts with any counterparty may be used. (This field cannot be used with source.maxAmount)"},tag:{$ref:"tag"}},required:["address","amount"],additionalProperties:!1}});var N1e=x((WBt,ust)=>{ust.exports={$schema:"http://json-schema.org/draft-04/schema#",title:"destinationExactAdjustment",type:"object",properties:{address:{$ref:"address",description:"An address representing the destination of the transaction."},amount:{$ref:"laxAmount",description:"An exact amount to deliver to the recipient. If the counterparty is not specified, amounts with any counterparty may be used. (This field cannot be used with `destination.minAmount`.)"},tag:{$ref:"tag"}},required:["address","amount"],additionalProperties:!1}});var k1e=x((ZBt,cst)=>{cst.exports={$schema:"http://json-schema.org/draft-04/schema#",title:"destinationAddressTag",description:"A destination address and optional tag, with no amount included. When parsing an incoming transaction, the original specification's amount is hidden to prevent misinterpretation. For the amount that the transaction delivered, see `outcome.deliveredAmount`.",type:"object",properties:{address:{$ref:"address",description:"An address representing the destination of the transaction."},tag:{$ref:"tag"}},required:["address"],additionalProperties:!1}});var B1e=x(($Bt,dst)=>{dst.exports={$schema:"http://json-schema.org/draft-04/schema#",title:"transactionHash",link:"transaction-id",description:"A hash of a transaction used to identify the transaction, represented in hexadecimal.",type:"string",pattern:"^[A-F0-9]{64}$"}});var F1e=x((QBt,lst)=>{lst.exports={$schema:"http://json-schema.org/draft-04/schema#",title:"address",description:"An account address on the XRP Ledger",type:"string",format:"address",link:"address",oneOf:[{$ref:"xAddress"},{$ref:"classicAddress"}]}});var D1e=x((YBt,fst)=>{fst.exports={$schema:"http://json-schema.org/draft-04/schema#",title:"xAddress",description:"An XRP Ledger address in X-address format",type:"string",format:"xAddress",link:"x-address",pattern:"^[XT][1-9A-HJ-NP-Za-km-z]{46}$"}});var q1e=x((eFt,pst)=>{pst.exports={$schema:"http://json-schema.org/draft-04/schema#",title:"classicAddress",description:"A classic address (Account ID) for the XRP Ledger",type:"string",format:"classicAddress",link:"classic-address",pattern:"^r[1-9A-HJ-NP-Za-km-z]{24,34}$"}});var L1e=x((tFt,hst)=>{hst.exports={$schema:"http://json-schema.org/draft-04/schema#",title:"adjustment",type:"object",properties:{address:{$ref:"address"},amount:{$ref:"amount"},tag:{$ref:"tag"}},required:["address","amount"],additionalProperties:!1}});var U1e=x((rFt,mst)=>{mst.exports={$schema:"http://json-schema.org/draft-04/schema#",title:"quality",description:"Ratio for incoming/outgoing transit fees.",type:"number",minimum:1e-9,maximum:4.294967295}});var j1e=x((iFt,gst)=>{gst.exports={$schema:"http://json-schema.org/draft-04/schema#",title:"amount",link:"amount",description:"An Amount on the XRP Ledger",allOf:[{$ref:"amountbase"},{required:["value"]}]}});var V1e=x((nFt,yst)=>{yst.exports={$schema:"http://json-schema.org/draft-04/schema#",title:"amountbase",description:"Base class for amount and issue",type:"object",properties:{value:{description:"The quantity of the currency, denoted as a string so that it does not lose precision",$ref:"value"},currency:{description:'The three-character code or hexadecimal string used to denote currencies, or "drops" for the smallest unit of XRP.',$ref:"currency"},counterparty:{description:'The XRP Ledger address of the account that owes or is owed the funds (omitted if `currency` is "XRP" or "drops")',$ref:"address"}},additionalProperties:!1,required:["currency"],oneOf:[{properties:{currency:{not:{enum:["XRP","drops"]}}},required:["counterparty"]},{properties:{currency:{enum:["XRP","drops"]}},not:{required:["counterparty"]}}]}});var H1e=x((aFt,vst)=>{vst.exports={$schema:"http://json-schema.org/draft-04/schema#",title:"balance",description:"Balance amount",link:"amount",type:"object",properties:{value:{description:"The balance on the trustline",$ref:"signedValue"},currency:{description:"The three-character code or hexadecimal string used to denote currencies",$ref:"currency"},counterparty:{description:"The XRP Ledger address of the account that owes or is owed the funds.",$ref:"address"}},additionalProperties:!1,required:["currency","value"],oneOf:[{properties:{currency:{not:{enum:["XRP"]}}},required:["counterparty"]},{properties:{currency:{enum:["XRP"]}},not:{required:["counterparty"]}}]}});var z1e=x((sFt,bst)=>{bst.exports={$schema:"http://json-schema.org/draft-04/schema#",title:"blob",description:"An uppercase hexadecimal string representation of a transaction",type:"string",minLength:1,pattern:"^[0-9A-F]*$"}});var G1e=x((oFt,_st)=>{_st.exports={$schema:"http://json-schema.org/draft-04/schema#",title:"currency",description:"The three-character code or hexadecimal string used to denote currencies",type:"string",link:"currency",pattern:"^([a-zA-Z0-9<>(){}[\\]|?!@#$%^&*]{3}|[A-F0-9]{40}|drops)$"}});var J1e=x((uFt,wst)=>{wst.exports={$schema:"http://json-schema.org/draft-04/schema#",title:"signedValue",description:"A string representation of a floating point number",type:"string",link:"value",pattern:"^[-]?[0-9]*[.]?[0-9]+([eE][-+]?[0-9]+)?$"}});var X1e=x((cFt,xst)=>{xst.exports={$schema:"http://json-schema.org/draft-04/schema#",title:"orderbook",type:"object",properties:{base:{$ref:"issue"},counter:{$ref:"issue"}},required:["base","counter"],additionalProperties:!1}});var K1e=x((dFt,Sst)=>{Sst.exports={$schema:"http://json-schema.org/draft-04/schema#",title:"instructions",link:"transaction-instructions",description:"Instructions for executing the transaction",type:"object",properties:{sequence:{description:"The initiating account's sequence number for this transaction. `sequence` and `ticketSequence` are mutually exclusive, only one of them can be set.",$ref:"sequence"},ticketSequence:{description:"The ticket sequence to be used for this transaction. `sequence` and `ticketSequence` are mutually exclusive, only one of them can be set.",$ref:"ticket-sequence"},fee:{description:"An exact fee to pay for the transaction, before multiplying for multi-signed transactions. See [Transaction Fees](#transaction-fees) for more information.",$ref:"value"},maxFee:{description:"Deprecated: Use `maxFeeXRP` in the RippleAPI constructor instead. The maximum fee to pay for this transaction. If this exceeds `maxFeeXRP`, use `maxFeeXRP` instead. See [Transaction Fees](#transaction-fees) for more information.",$ref:"value"},maxLedgerVersion:{description:"The highest ledger version that the transaction can be included in. If this option and `maxLedgerVersionOffset` are both omitted, the default is 3 greater than the current validated ledger version (equivalent to `maxLedgerVersionOffset=3`). Use `null` to not set a maximum ledger version. If not null, this must be an integer greater than 0, or one of the following strings: 'validated', 'closed', 'current'.",oneOf:[{$ref:"ledgerVersion"},{type:"null"}]},maxLedgerVersionOffset:{description:"Offset from current validated ledger version to highest ledger version that the transaction can be included in.",type:"integer",minimum:0},signersCount:{description:"Number of signers that can multi-sign this transaction.",type:"integer",minimum:1}},additionalProperties:!1,not:{anyOf:[{description:"fee and maxFee are mutually exclusive",required:["fee","maxFee"]},{description:"maxLedgerVersion and maxLedgerVersionOffset are mutually exclusive",required:["maxLedgerVersion","maxLedgerVersionOffset"]},{description:"sequence and ticketSequence are mutually exclusive",required:["sequence","ticketSequence"]}]}}});var W1e=x((lFt,Est)=>{Est.exports={$schema:"http://json-schema.org/draft-04/schema#",title:"settingsPlusMemos",type:"object",properties:{defaultRipple:{type:"boolean",description:"Enable [rippling](https://xrpl.org/rippling.html) on this account\u2019s trust lines by default. Currency issuers should enable this setting; most others should not."},depositAuth:{type:"boolean",description:"Enable [Deposit Authorization](https://xrpl.org/depositauth.html) on this account. If set, transactions cannot send value of any kind to this account unless the sender of those transactions is the account itself. (Requires the [DepositAuth amendment](https://xrpl.org/known-amendments.html#depositauth))"},disableMasterKey:{type:"boolean",description:"Disallows use of the master key to sign transactions for this account. To disable the master key, you must authorize the transaction by signing it with the master key pair. You cannot use a regular key pair or a multi-signature. You can re-enable the master key pair using a regular key pair or multi-signature. See [AccountSet](https://xrpl.org/accountset.html)."},disallowIncomingXRP:{type:"boolean",description:"Indicates that client applications should not send XRP to this account. Not enforced by rippled."},domain:{type:"string",description:"The domain that owns this account, as a hexadecimal string representing the ASCII for the domain in lowercase."},emailHash:{description:"Hash of an email address to be used for generating an avatar image. Conventionally, clients use Gravatar to display this image. Use `null` to clear.",oneOf:[{type:"null"},{$ref:"hash128"}]},walletLocator:{description:"Transaction hash or any other 64 character hexadecimal string, that may or may not represent the result of a hash operation. Use `null` to clear.",oneOf:[{type:"null"},{$ref:"hash256"}]},enableTransactionIDTracking:{type:"boolean",description:"Track the ID of this account\u2019s most recent transaction."},globalFreeze:{type:"boolean",description:"Freeze all assets issued by this account."},memos:{$ref:"memos"},messageKey:{type:"string",description:"Public key for sending encrypted messages to this account. Conventionally, it should be a secp256k1 key, the same encryption that is used by the rest of Ripple."},noFreeze:{type:"boolean",description:"Permanently give up the ability to freeze individual trust lines. This flag can never be disabled after being enabled."},passwordSpent:{type:"boolean",description:"Indicates that the account has used its free SetRegularKey transaction."},regularKey:{oneOf:[{$ref:"address"},{type:"null"}],description:"The public key of a new keypair, to use as the regular key to this account, as a base-58-encoded string in the same format as an account address. Use `null` to remove the regular key."},requireAuthorization:{type:"boolean",description:"If set, this account must individually give other users permission to hold this account\u2019s issued tokens."},requireDestinationTag:{type:"boolean",description:"Requires incoming payments to specify a destination tag."},signers:{type:"object",description:"Settings that determine what sets of accounts can be used to sign a transaction on behalf of this account using multisigning.",properties:{threshold:{$ref:"uint32",description:"A target number for the signer weights. A multi-signature from this list is valid only if the sum weights of the signatures provided is equal or greater than this value. To delete the signers setting, use the value `0`."},weights:{type:"array",description:"Weights of signatures for each signer.",items:{type:"object",description:"An association of an address and a weight.",properties:{address:{$ref:"address"},weight:{$ref:"uint32",description:"The weight that the signature of this account counts as towards the threshold."}},required:["address","weight"],additionalProperties:!1},minItems:1,maxItems:8}},required:["threshold"],additionalProperties:!1},transferRate:{description:"The fee to charge when users transfer this account\u2019s issuances, as the decimal amount that must be sent to deliver 1 unit. Has precision up to 9 digits beyond the decimal point. Use `null` to set no fee.",oneOf:[{type:"null"},{type:"number",minimum:1,maximum:4.294967295}]},tickSize:{description:"Tick size to use for offers involving a currency issued by this address. The exchange rates of those offers is rounded to this many significant digits. Valid values are 3 to 15 inclusive, or 0 to disable.",enum:[0,3,4,5,6,7,8,9,10,11,12,13,14,15]}},additionalProperties:!1}});var Z1e=x((fFt,Tst)=>{Tst.exports={$schema:"http://json-schema.org/draft-04/schema#",title:"settings",link:"settings",$ref:"settingsPlusMemos",oneOf:[{required:["memos"],minProperties:2,maxProperties:2},{not:{required:["memos"]},minProperties:1,maxProperties:1}]}});var $1e=x((pFt,Ast)=>{Ast.exports={$schema:"http://json-schema.org/draft-04/schema#",title:"payment",link:"payment",type:"object",properties:{source:{$ref:"sourceAdjustment",description:"The source of the funds to be sent."},destination:{$ref:"destinationAdjustment",description:"The destination of the funds to be sent."},paths:{type:"string",description:"The paths of trustlines and orders to use in executing the payment."},memos:{$ref:"memos"},invoiceID:{description:"A 256-bit hash that can be used to identify a particular payment.",$ref:"hash256"},allowPartialPayment:{description:"If true, this payment can deliver less than the full amount.",type:"boolean"},noDirectRipple:{description:"If true and paths are specified, the sender would like the XRP Ledger to disregard any direct paths from the source account to the destination account. This may be used to take advantage of an arbitrage opportunity or by gateways wishing to issue balances from a hot wallet to a user who has mistakenly set a trustline directly to the hot wallet.",type:"boolean"},limitQuality:{description:"Only take paths where all the conversions have an input:output ratio that is equal or better than the ratio of destination.amount:source.maxAmount.",type:"boolean"}},required:["source","destination"],additionalProperties:!1}});var Q1e=x((hFt,Pst)=>{Pst.exports={$schema:"http://json-schema.org/draft-04/schema#",title:"getPayment",description:"A specification of a payment in a response for getTransaction or getTransactions.",type:"object",properties:{source:{$ref:"sourceAdjustment",description:"The source of the funds to be sent."},destination:{$ref:"destinationAddressTag",description:"The destination of the funds to be sent. Since this is a payment response, the amount is not shown here. For the amount that the transaction delivered, see `outcome.deliveredAmount`."},paths:{type:"string",description:"The paths of trustlines and orders to use in executing the payment."},memos:{$ref:"memos"},invoiceID:{description:"A 256-bit hash that can be used to identify a particular payment.",$ref:"hash256"},allowPartialPayment:{description:"If true, this payment can deliver less than the full amount.",type:"boolean"},noDirectRipple:{description:"If true and paths are specified, the sender would like the XRP Ledger to disregard any direct paths from the source account to the destination account. This may be used to take advantage of an arbitrage opportunity or by gateways wishing to issue balances from a hot wallet to a user who has mistakenly set a trustline directly to the hot wallet.",type:"boolean"},limitQuality:{description:"Only take paths where all the conversions have an input:output ratio that is equal or better than the ratio of destination.amount:source.maxAmount.",type:"boolean"}},required:["source","destination"],additionalProperties:!1}});var Y1e=x((mFt,Ost)=>{Ost.exports={$schema:"http://json-schema.org/draft-04/schema#",title:"escrowCancellation",link:"escrow-cancellation",type:"object",properties:{memos:{$ref:"memos"},owner:{$ref:"address",description:"The address of the owner of the escrow to cancel."},escrowSequence:{$ref:"sequence",description:"The [account sequence number](#account-sequence-number) of the [Escrow Creation](#escrow-creation) transaction for the escrow to cancel."}},required:["owner","escrowSequence"],additionalProperties:!1}});var eme=x((gFt,Rst)=>{Rst.exports={$schema:"http://json-schema.org/draft-04/schema#",title:"orderCancellation",link:"order-cancellation",type:"object",properties:{orderSequence:{$ref:"sequence",description:"The [account sequence number](#account-sequence-number) of the order to cancel."},memos:{$ref:"memos"}},required:["orderSequence"],additionalProperties:!1}});var tme=x((yFt,Mst)=>{Mst.exports={$schema:"http://json-schema.org/draft-04/schema#",title:"order",link:"order",type:"object",properties:{direction:{type:"string",enum:["buy","sell"],description:'Equal to "buy" for buy orders and "sell" for sell orders.'},quantity:{$ref:"amount",description:"The amount of currency to buy or sell."},totalPrice:{$ref:"amount",description:"The total price to be paid for the `quantity` to be bought or sold."},immediateOrCancel:{type:"boolean",description:"Treat the offer as an [Immediate or Cancel order](http://en.wikipedia.org/wiki/Immediate_or_cancel). If enabled, do not create an object in the ledger that can be matched later: instead, only execute as much as can be fulfilled immediately. This cannot be used with `fillOrKill`."},fillOrKill:{type:"boolean",description:"Treat the offer as a [Fill or Kill order](http://en.wikipedia.org/wiki/Fill_or_kill). Only attempt to match existing offers in the ledger, and only do so if the entire quantity can be exchanged. This cannot be used with `immediateOrCancel`."},passive:{description:"If enabled, the offer does not consume offers that exactly match it, and instead becomes an Offer node in the ledger. It still consumes offers that cross it.",type:"boolean"},expirationTime:{type:"string",format:"date-time",description:"Time after which the offer is no longer active, as an [ISO 8601 date-time](https://en.wikipedia.org/wiki/ISO_8601)."},orderToReplace:{$ref:"sequence",description:"The [account sequence number](#account-sequence-number) of an order to cancel before the new order is created, effectively replacing the old order."},memos:{$ref:"memos"}},required:["direction","quantity","totalPrice"],additionalProperties:!1,not:{description:"immediateOrCancel and fillOrKill are mutually exclusive",required:["immediateOrCancel","fillOrKill"]}}});var rme=x((vFt,Cst)=>{Cst.exports={$schema:"http://json-schema.org/draft-04/schema#",title:"escrowExecution",link:"escrow-execution",type:"object",properties:{memos:{$ref:"memos"},owner:{$ref:"address",description:"The address of the owner of the escrow to execute."},escrowSequence:{$ref:"sequence",description:"The [account sequence number](#account-sequence-number) of the [Escrow Creation](#escrow-creation) transaction for the escrow to execute."},condition:{type:"string",description:"A hex value representing a [PREIMAGE-SHA-256 crypto-condition](https://tools.ietf.org/html/draft-thomas-crypto-conditions-02#section-8.1). This must match the original `condition` from the escrow creation transaction.",pattern:"^[A-F0-9]{0,256}$"},fulfillment:{type:"string",description:"A hex value representing the [PREIMAGE-SHA-256 crypto-condition](https://tools.ietf.org/html/draft-thomas-crypto-conditions-02#section-8.1) fulfillment for `condition`.",pattern:"^[A-F0-9]+$"}},required:["owner","escrowSequence"],additionalProperties:!1}});var ime=x((bFt,Ist)=>{Ist.exports={$schema:"http://json-schema.org/draft-04/schema#",title:"escrowCreation",link:"escrow-creation",type:"object",properties:{amount:{$ref:"value",description:"Amount of XRP for sender to escrow."},destination:{$ref:"address",description:"Address to receive escrowed XRP."},memos:{$ref:"memos"},condition:{type:"string",description:"A hex value representing a [PREIMAGE-SHA-256 crypto-condition](https://tools.ietf.org/html/draft-thomas-crypto-conditions-02#section-8.1). If present, `fulfillment` is required upon execution.",pattern:"^[A-F0-9]{0,256}$"},allowCancelAfter:{type:"string",format:"date-time",description:"If present, the escrow may be cancelled after this time."},allowExecuteAfter:{type:"string",format:"date-time",description:"If present, the escrow can not be executed before this time."},sourceTag:{$ref:"tag",description:"Source tag."},destinationTag:{$ref:"tag",description:"Destination tag."}},required:["amount","destination"],additionalProperties:!1}});var nme=x((_Ft,Nst)=>{Nst.exports={$schema:"http://json-schema.org/draft-04/schema#",title:"paymentChannelCreate",link:"payment-channel-create",type:"object",properties:{amount:{$ref:"value",description:"Amount of XRP for sender to set aside in this channel."},destination:{$ref:"address",description:"Address to receive XRP claims against this channel."},settleDelay:{type:"number",description:"Amount of seconds the source address must wait before closing the channel if it has unclaimed XRP."},publicKey:{$ref:"publicKey",description:"Public key of the key pair the source may use to sign claims against this channel."},cancelAfter:{type:"string",format:"date-time",description:"Time when this channel expires. This expiration cannot be changed after creating the channel."},sourceTag:{$ref:"tag",description:"Source tag."},destinationTag:{$ref:"tag",description:"Destination tag."},memos:{$ref:"memos"}},required:["amount","destination","settleDelay","publicKey"],additionalProperties:!1}});var ame=x((wFt,kst)=>{kst.exports={$schema:"http://json-schema.org/draft-04/schema#",title:"paymentChannelFund",link:"payment-channel-fund",type:"object",properties:{amount:{$ref:"value",description:"Amount of XRP to fund the channel with."},channel:{$ref:"hash256",description:"256-bit hexadecimal channel identifier."},expiration:{type:"string",format:"date-time",description:"New expiration for this channel. (This does not change the cancelAfter expiration, if the channel has one.) Cannot move the expiration sooner than settleDelay seconds from time of the request."},memos:{$ref:"memos"}},required:["amount","channel"],additionalProperties:!1}});var sme=x((xFt,Bst)=>{Bst.exports={$schema:"http://json-schema.org/draft-04/schema#",title:"paymentChannelClaim",link:"payment-channel-claim",type:"object",properties:{channel:{$ref:"hash256",description:"256-bit hexadecimal channel identifier."},amount:{$ref:"value",description:"Amount of XRP authorized by this signature."},balance:{$ref:"value",description:"Total XRP balance delivered by this channel after claim is processed."},signature:{$ref:"signature",description:"Signed claim authorizing withdrawal of XRP from the channel. (Required except from the channel's source address.)"},publicKey:{$ref:"publicKey",description:"Public key of the channel. (For verifying the signature.)"},renew:{type:"boolean",description:"Clear the channel's expiration time."},close:{type:"boolean",description:"Request to close the channel. If the channel has no XRP remaining or the destination address requests it, closes the channel immediately (returning unclaimed XRP to the source address). Otherwise, sets the channel to expire after settleDelay seconds have passed."},memos:{$ref:"memos"}},required:["channel"],additionalProperties:!1}});var ome=x((SFt,Fst)=>{Fst.exports={$schema:"http://json-schema.org/draft-04/schema#",title:"checkCreate",link:"check-create",type:"object",properties:{destination:{$ref:"address",description:"Address of the account that can cash the check."},sendMax:{$ref:"laxAmount",description:"Amount of source currency the check is allowed to debit the sender, including transfer fees on non-XRP currencies."},destinationTag:{$ref:"tag",description:"Destination tag that identifies the reason for the check, or a hosted recipient to pay."},expiration:{type:"string",format:"date-time",description:"Time after which the check is no longer valid."},invoiceID:{$ref:"hash256",description:"256-bit hash, as a 64-character hexadecimal string, representing a specific reason or identifier for this check."},memos:{$ref:"memos"}},required:["destination","sendMax"],additionalProperties:!1}});var ume=x((EFt,Dst)=>{Dst.exports={$schema:"http://json-schema.org/draft-04/schema#",title:"checkCash",link:"check-cash",type:"object",properties:{checkID:{$ref:"hash256",description:"The ID of the Check ledger object to cash, as a 64-character hexadecimal string."},amount:{$ref:"laxAmount",description:"Redeem the Check for exactly this amount, if possible. The currency must match that of the sendMax of the corresponding CheckCreate transaction. You must provide either this field or deliverMin."},deliverMin:{$ref:"laxAmount",description:"Redeem the Check for at least this amount and for as much as possible. The currency must match that of the sendMax of the corresponding CheckCreate transaction. You must provide either this field or amount."},memos:{$ref:"memos"}},required:["checkID"],oneOf:[{required:["amount"]},{required:["deliverMin"]}],additionalProperties:!1}});var cme=x((TFt,qst)=>{qst.exports={$schema:"http://json-schema.org/draft-04/schema#",title:"checkCancel",link:"check-cancel",type:"object",properties:{checkID:{$ref:"hash256",description:"The ID of the Check ledger object to cancel, as a 64-character hexadecimal string."},memos:{$ref:"memos"}},required:["checkID"],additionalProperties:!1}});var dme=x((AFt,Lst)=>{Lst.exports={$schema:"http://json-schema.org/draft-04/schema#",title:"trustline",link:"trustline",type:"object",properties:{currency:{$ref:"currency",description:"The currency this trustline applies to."},counterparty:{$ref:"address",description:"The address of the account this trustline extends trust to."},limit:{$ref:"value",description:"The maximum amount that the owner of the trustline can be owed through the trustline."},qualityIn:{$ref:"quality",description:"Incoming balances on this trustline are valued at this ratio."},qualityOut:{$ref:"quality",description:"Outgoing balances on this trustline are valued at this ratio."},ripplingDisabled:{type:"boolean",description:"If true, payments cannot ripple through this trustline."},authorized:{type:"boolean",description:"If true, authorize the counterparty to hold issuances from this account."},frozen:{type:"boolean",description:"If true, the trustline is frozen, which means that funds can only be sent to the owner."},memos:{$ref:"memos"}},required:["currency","counterparty","limit"],additionalProperties:!1}});var lme=x((PFt,Ust)=>{Ust.exports={$schema:"http://json-schema.org/draft-04/schema#",title:"depositPreauth",link:"deposit-preauth",type:"object",properties:{authorize:{$ref:"address",description:"Address of the account that can cash the check."},unauthorize:{$ref:"address",description:"Address of the account that can cash the check."},memos:{$ref:"memos"}},oneOf:[{required:["authorize"]},{required:["unauthorize"]}],additionalProperties:!1}});var fme=x((OFt,jst)=>{jst.exports={$schema:"http://json-schema.org/draft-04/schema#",title:"accountDelete",link:"account-delete",type:"object",properties:{destination:{$ref:"address",description:"Address of an account to receive any leftover XRP after deleting the sending account. Must be a funded account in the ledger, and must not be the sending account."},destinationTag:{$ref:"tag",description:"(Optional) Arbitrary destination tag that identifies a hosted recipient or other information for the recipient of the deleted account's leftover XRP."},destinationXAddress:{$ref:"address",description:"X-address of an account to receive any leftover XRP after deleting the sending account. Must be a funded account in the ledger, and must not be the sending account."},memos:{$ref:"memos"}},anyOf:[{required:["destination"]},{required:["destinationXAddress"]}],additionalProperties:!1}});var pme=x((RFt,Vst)=>{Vst.exports={$schema:"http://json-schema.org/draft-04/schema#",title:"sign",type:"object",properties:{signedTransaction:{type:"string",pattern:"^[A-F0-9]+$",description:"The signed transaction represented as an uppercase hexadecimal string."},id:{$ref:"transactionHash",description:"The [Transaction ID](#transaction-id) of the signed transaction."}},required:["signedTransaction","id"],additionalProperties:!1}});var hme=x((MFt,Hst)=>{Hst.exports={$schema:"http://json-schema.org/draft-04/schema#",title:"submit",type:"object",properties:{resultCode:{type:"string",description:"Deprecated: Use `engine_result` instead."},resultMessage:{type:"string",description:"Deprecated: Use `engine_result_message` instead."},engine_result:{type:"string",description:"Code indicating the preliminary result of the transaction, for example `tesSUCCESS`. [List of transaction responses](https://xrpl.org/transaction-results.html)"},engine_result_code:{type:"integer",description:"Numeric code indicating the preliminary result of the transaction, directly correlated to `engine_result`"},engine_result_message:{type:"string",description:"Human-readable explanation of the transaction's preliminary result."},tx_blob:{type:"string",description:"The complete transaction in hex string format."},tx_json:{$ref:"tx-json",description:"The complete transaction in JSON format."}},required:["resultCode","resultMessage","engine_result","engine_result_code","engine_result_message","tx_blob","tx_json"],additionalProperties:!1}});var mme=x((CFt,zst)=>{zst.exports={$schema:"http://json-schema.org/draft-04/schema#",title:"getAccountInfo",type:"object",properties:{sequence:{$ref:"sequence",description:"The next (smallest unused) sequence number for this account."},xrpBalance:{$ref:"value",description:"The XRP balance owned by the account."},ownerCount:{type:"integer",minimum:0,description:"Number of other ledger entries (specifically, trust lines and offers) attributed to this account. This is used to calculate the total reserve required to use the account."},previousInitiatedTransactionID:{$ref:"hash256",description:"Hash value representing the most recent transaction that was initiated by this account."},previousAffectingTransactionID:{$ref:"hash256",description:"Hash value representing the most recent transaction that affected this account node directly. **Note:** This does not include changes to the account\u2019s trust lines and offers."},previousAffectingTransactionLedgerVersion:{$ref:"ledgerVersion",description:"The ledger version that the transaction identified by the `previousAffectingTransactionID` was validated in."}},required:["sequence","xrpBalance","ownerCount","previousAffectingTransactionID","previousAffectingTransactionLedgerVersion"],additionalProperties:!1}});var gme=x((IFt,Gst)=>{Gst.exports={$schema:"http://json-schema.org/draft-04/schema#",title:"AccountObjectsResponse",description:"Response format for account_objects",type:"object",properties:{account:{$ref:"address",description:"Unique address of the account this request corresponds to."},account_objects:{type:"array",items:{type:"object"},description:"Array of objects owned by this account. Each object is in its raw ledger format."},ledger_hash:{type:"string",description:"(May be omitted) The identifying hash of the ledger that was used to generate this response."},ledger_index:{$ref:"ledgerVersion",description:"(May be omitted) The sequence number of the ledger that was used to generate this response."},ledger_current_index:{$ref:"ledgerVersion",description:"(May be omitted) The sequence number of the ledger that was used to generate this response."},limit:{type:"integer",description:"(May be omitted) The limit that was used in this request, if any."},validated:{type:"boolean",description:"If included and set to true, the information in this request comes from a validated ledger version. Otherwise, the information is subject to change."}},required:["account","account_objects"],additionalProperties:!1}});var yme=x((NFt,Jst)=>{Jst.exports={$schema:"http://json-schema.org/draft-04/schema#",title:"getBalances",type:"array",items:{$ref:"balance"}}});var vme=x((kFt,Xst)=>{Xst.exports={$schema:"http://json-schema.org/draft-04/schema#",title:"getBalanceSheet",description:"getBalanceSheet response",type:"object",properties:{balances:{type:"array",items:{$ref:"amount"},description:`Amounts issued to the "hotwallet" accounts from the request. The keys are the accounts' addresses, and the values are arrays of currency amounts they hold. The issuer (omitted from the currency amounts) is the account from the request.`},assets:{type:"array",items:{$ref:"amount"},description:"Total amounts held that are issued by others. For the recommended gateway configuration, there should be none."},obligations:{type:"array",items:{type:"object",required:["currency","value"],additionalProperties:!1,properties:{currency:{$ref:"currency"},value:{$ref:"value"}},description:"An amount that is owed."},description:"Total amounts issued to accounts that are not hot wallets, as a map of currencies to the total value issued."}},additionalProperties:!1}});var bme=x((BFt,Kst)=>{Kst.exports={$schema:"http://json-schema.org/draft-04/schema#",title:"getLedger",type:"object",properties:{stateHash:{$ref:"hash256",description:"Hash of all state information in this ledger."},closeTime:{type:"string",format:"date-time",description:"The approximate time when this ledger was closed. This number is rounded based on the `closeTimeResolution`. If it would have been rounded to the same time as a previous ledger, the close time is recorded as 1 second later instead."},closeTimeResolution:{type:"integer",minimum:1,description:"A number of seconds, indicating how much the `closeTime` could be rounded. Ledger close times are approximate so that small differences in servers clocks don't hinder consensus."},closeFlags:{type:"integer",minimum:0,description:'A bit-map of flags relating to the closing of this ledger. Currently, the ledger has only one flag defined for `closeFlags`: **sLCF_NoConsensusTime** (value 1). If this flag is enabled, it means that validators disagreed on the correct close time for the ledger, but built otherwise the same ledger, so they declared consensus while "agreeing to disagree" on the close time. In this case, the consensus ledger contains a `closeTime` value that is 1 second after that of the previous ledger. (In this case, there is no official close time, but the actual real-world close time is probably 3-6 seconds later than the specified `closeTime`.)'},ledgerHash:{$ref:"hash256",description:"Unique identifying hash of the entire ledger."},ledgerVersion:{$ref:"ledgerVersion",description:"The ledger version of this ledger."},parentLedgerHash:{$ref:"hash256",description:"Unique identifying hash of the ledger that came immediately before this one."},parentCloseTime:{type:"string",format:"date-time",description:"The previous ledger's recorded close time."},totalDrops:{$ref:"value",description:"Total number of drops (1/1,000,000th of an XRP) in the network, as a quoted integer. (This decreases as transaction fees cause XRP to be destroyed.)"},transactionHash:{$ref:"hash256",description:"Hash of the transaction information included in this ledger."},transactions:{description:"Array of all transactions that were validated in this ledger. Transactions are represented in the same format as the return value of [getTransaction](#gettransaction).",type:"array",items:{$ref:"getTransaction",description:"A transaction in the same format as the return value of [getTransaction](#gettransaction)."}},transactionHashes:{description:"An array of hashes of all transactions that were validated in this ledger.",type:"array",items:{$ref:"transactionHash"}},rawState:{type:"string",description:"A JSON string containing all state data for this ledger in rippled JSON format."},stateHashes:{description:"An array of hashes of all state data in this ledger.",type:"array",items:{$ref:"hash256"}}},required:["stateHash","closeTime","closeTimeResolution","closeFlags","ledgerHash","ledgerVersion","parentLedgerHash","parentCloseTime","totalDrops","transactionHash"],additionalProperties:!1}});var _me=x((FFt,Wst)=>{Wst.exports={$schema:"http://json-schema.org/draft-04/schema#",title:"getOrderbook",type:"object",properties:{bids:{$ref:"orderbookOrders",description:"The buy orders in the order book."},asks:{$ref:"orderbookOrders",description:"The sell orders in the order book."}},required:["bids","asks"],additionalProperties:!1}});var wme=x((DFt,Zst)=>{Zst.exports={$schema:"http://json-schema.org/draft-04/schema#",title:"getOrders",type:"array",items:{type:"object",properties:{specification:{$ref:"order",description:"An order specification that would create an order equivalent to the current state of this order."},properties:{description:"Properties of the order not in the specification.",type:"object",properties:{maker:{$ref:"address",description:"The address of the account that submitted the order."},sequence:{$ref:"sequence",description:"The account sequence number of the transaction that created this order."},makerExchangeRate:{$ref:"value",description:'The exchange rate from the point of view of the account that submitted the order (also known as "quality").'}},required:["maker","sequence","makerExchangeRate"],addtionalProperties:!1}},required:["specification","properties"],additionalProperties:!1}}});var xme=x((qFt,$st)=>{$st.exports={$schema:"http://json-schema.org/draft-04/schema#",title:"orderChange",type:"object",description:"A change to an order.",properties:{direction:{type:"string",enum:["buy","sell"],description:'Equal to "buy" for buy orders and "sell" for sell orders.'},quantity:{$ref:"amount",description:"The amount to be bought or sold by the maker."},totalPrice:{$ref:"amount",description:"The total amount to be paid or received by the taker."},makerExchangeRate:{$ref:"value",description:"The exchange rate between the `quantity` currency and the `totalPrice` currency from the point of view of the maker."},sequence:{$ref:"sequence",description:"The order sequence number, used to identify the order for cancellation"},status:{enum:["created","filled","partially-filled","cancelled"],description:'The status of the order. One of "created", "filled", "partially-filled", "cancelled".'},expirationTime:{type:"string",format:"date-time",description:"The time after which the order expires, if any."}},required:["direction","quantity","totalPrice","sequence","status"],additionalProperties:!1}});var Sme=x((LFt,Qst)=>{Qst.exports={$schema:"http://json-schema.org/draft-04/schema#",title:"getPaymentChannel",type:"object",properties:{account:{$ref:"address",description:"Address that created the payment channel."},destination:{$ref:"address",description:"Address to receive XRP claims against this channel."},amount:{$ref:"value",description:"The total amount of XRP funded in this channel."},balance:{$ref:"value",description:"The total amount of XRP delivered by this channel."},settleDelay:{type:"number",description:"Amount of seconds the source address must wait before closing the channel if it has unclaimed XRP."},expiration:{type:"string",format:"date-time",description:"Time when this channel expires."},publicKey:{$ref:"publicKey",description:"Public key of the key pair the source uses to sign claims against this channel."},cancelAfter:{type:"string",format:"date-time",description:"Time when this channel expires as specified at creation."},sourceTag:{$ref:"tag",description:"Source tag."},destinationTag:{$ref:"tag",description:"Destination tag."},previousAffectingTransactionID:{$ref:"hash256",description:"Hash value representing the most recent transaction that affected this payment channel."},previousAffectingTransactionLedgerVersion:{$ref:"ledgerVersion",description:"The ledger version that the transaction identified by the `previousAffectingTransactionID` was validated in."}},required:["account","destination","amount","balance","settleDelay","previousAffectingTransactionID","previousAffectingTransactionLedgerVersion"],additionalProperties:!1}});var Eme=x((UFt,Yst)=>{Yst.exports={$schema:"http://json-schema.org/draft-04/schema#",title:"prepare",description:"Result of prepare function",type:"object",properties:{txJSON:{type:"string",description:"The prepared transaction in rippled JSON format."},instructions:{description:"The instructions for how to execute the transaction after adding automatic defaults.",type:"object",properties:{fee:{$ref:"value",description:"The fee to pay for the transaction. See [Transaction Fees](#transaction-fees) for more information. For multi-signed transactions, this fee is multiplied by (N+1), where N is the number of signatures you plan to provide."},sequence:{$ref:"sequence",description:"The initiating account's sequence number for this transaction. `sequence` and `ticketSequence` are mutually exclusive, only one of them can be set."},ticketSequence:{$ref:"ticket-sequence",description:"The initiating account's ticket sequence number for this transaction. `sequence` and `ticketSequence` are mutually exclusive, only one of them can be set."},maxLedgerVersion:{oneOf:[{$ref:"ledgerVersion"},{type:"null"}],description:"The highest ledger version that the transaction can be included in. Set to `null` if there is no maximum. If not null, this must be an integer greater than 0, or one of the following strings: 'validated', 'closed', 'current'."}},additionalProperties:!1,required:["fee","maxLedgerVersion"],anyOf:[{required:["sequence"]},{required:["ticketSequence"]}]}},additionalProperties:!1,required:["txJSON","instructions"]}});var Tme=x((jFt,eot)=>{eot.exports={$schema:"http://json-schema.org/draft-04/schema#",title:"ledgerEvent",description:"A ledger event message",type:"object",properties:{baseFeeXRP:{$ref:"value",description:"Base fee, in XRP."},ledgerHash:{$ref:"hash256",description:"Unique hash of the ledger that was closed, as hex."},ledgerVersion:{$ref:"ledgerVersion",description:"Ledger version of the ledger that closed."},ledgerTimestamp:{type:"string",format:"date-time",description:"The time at which this ledger closed."},reserveBaseXRP:{$ref:"value",description:"The minimum reserve, in XRP, that is required for an account."},reserveIncrementXRP:{$ref:"value",description:"The increase in account reserve that is added for each item the account owns, such as offers or trust lines."},transactionCount:{type:"integer",minimum:0,description:"Number of new transactions included in this ledger."},validatedLedgerVersions:{type:"string",description:"Range of ledgers that the server has available. This may be discontiguous."}},addtionalProperties:!1,required:["baseFeeXRP","ledgerHash","ledgerTimestamp","reserveBaseXRP","reserveIncrementXRP","transactionCount","ledgerVersion","validatedLedgerVersions"]}});var Ame=x((VFt,tot)=>{tot.exports={$schema:"http://json-schema.org/draft-04/schema#",title:"getPaths",type:"array",items:{type:"object",properties:{source:{$ref:"sourceAdjustment",description:"Properties of the source of the payment."},destination:{$ref:"destinationAdjustment",description:"Properties of the destination of the payment."},paths:{type:"string",description:"The paths of trustlines and orders to use in executing the payment."}},required:["source","destination","paths"],additionalProperties:!1}}});var Pme=x((HFt,rot)=>{rot.exports={$schema:"http://json-schema.org/draft-04/schema#",title:"getServerInfo",type:"object",properties:{buildVersion:{type:"string",description:"The version number of the running rippled version."},completeLedgers:{type:"string",pattern:"[0-9,-]+",description:"Range expression indicating the sequence numbers of the ledger versions the local rippled has in its database. It is possible to be a disjoint sequence, e.g. \u201C2500-5000,32570-7695432\u201D."},hostID:{type:"string",description:"On an admin request, returns the hostname of the server running the rippled instance; otherwise, returns a unique four letter word."},ioLatencyMs:{type:"number",description:"Amount of time spent waiting for I/O operations, in milliseconds. If this number is not very, very low, then the rippled server is probably having serious load issues."},load:{type:"object",description:"*(Admin only)* Detailed information about the current load state of the server.",properties:{jobTypes:{type:"array",description:"*(Admin only)* Information about the rate of different types of jobs the server is doing and how much time it spends on each.",items:{type:"object"}},threads:{type:"number",description:"*(Admin only)* The number of threads in the server\u2019s main job pool, performing various operations."}},required:["jobTypes","threads"]},lastClose:{type:"object",description:"Information about the last time the server closed a ledger.",properties:{convergeTimeS:{type:"number",description:"The time it took to reach a consensus for the last ledger closing, in seconds."},proposers:{type:"integer",minimum:0,description:"Number of trusted validators participating in the ledger closing."}},required:["convergeTimeS","proposers"]},loadFactor:{type:"number",description:"The load factor the server is currently enforcing, as a multiplier on the base transaction fee. The load factor is determined by the highest of the individual server\u2019s load factor, cluster\u2019s load factor, and the overall network\u2019s load factor."},peers:{type:"integer",minimum:0,description:"How many other rippled servers the node is currently connected to."},pubkeyNode:{type:"string",description:"Public key used to verify this node for internal communications; this key is automatically generated by the server the first time it starts up."},pubkeyValidator:{type:"string",description:"*(Admin only)* Public key used by this node to sign ledger validations."},serverState:{type:"string",description:"A string indicating to what extent the server is participating in the network. See [Possible Server States](https://xrpl.org/rippled-server-states.html) for more details.",enum:["disconnected","connected","syncing","tracking","full","validating","proposing"]},validatedLedger:{type:"object",description:"Information about the fully-validated ledger with the highest sequence number (the most recent).",properties:{age:{type:"integer",minimum:0,description:"The time since the ledger was closed, in seconds."},baseFeeXRP:{$ref:"value",description:"Base fee, in XRP. This may be represented in scientific notation such as 1e-05 for 0.00005."},hash:{$ref:"hash256",description:"Unique hash for the ledger, as an uppercase hexadecimal string."},reserveBaseXRP:{$ref:"value",description:"Minimum amount of XRP necessary for every account to keep in reserve."},reserveIncrementXRP:{$ref:"value",description:"Amount of XRP added to the account reserve for each object an account owns in the ledger."},ledgerVersion:{type:"integer",minimum:0,description:"Identifying ledger index of this ledger version."}},additionalProperties:!1,required:["age","baseFeeXRP","hash","reserveBaseXRP","reserveIncrementXRP","ledgerVersion"]},validationQuorum:{type:"number",description:"Minimum number of trusted validations required to validate a ledger version. Some circumstances may cause the server to require more validations."}},required:["buildVersion","completeLedgers","hostID","ioLatencyMs","lastClose","loadFactor","peers","pubkeyNode","serverState","validatedLedger","validationQuorum"],additionalProperties:!1}});var Ome=x((zFt,iot)=>{iot.exports={$schema:"http://json-schema.org/draft-04/schema#",title:"getSettings",$ref:"settingsPlusMemos",not:{required:["memos"]}}});var Rme=x((GFt,not)=>{not.exports={$schema:"http://json-schema.org/draft-04/schema#",title:"orderbookOrders",type:"array",items:{description:"An order in the order book.",type:"object",properties:{specification:{$ref:"order",description:"An order specification that would create an order equivalent to the current state of this order."},properties:{description:"Properties of the order not in the specification.",type:"object",properties:{maker:{$ref:"address",description:"The address of the account that submitted the order."},sequence:{$ref:"sequence",description:"The account sequence number of the transaction that created this order."},makerExchangeRate:{$ref:"value",description:'The exchange rate from the point of view of the account that submitted the order (also known as "quality").'}},required:["maker","sequence","makerExchangeRate"],addtionalProperties:!1},state:{description:"The state of the order.",type:"object",properties:{fundedAmount:{$ref:"amount",description:"How much of the amount the maker would have to pay that the maker currently holds."},priceOfFundedAmount:{$ref:"amount",description:"How much the `fundedAmount` would convert to through the exchange rate of this order."}},required:["fundedAmount","priceOfFundedAmount"],additionalProperties:!1},data:{description:"The raw order data. This may include `owner_funds`, `Flags`, and other fields.",type:"object",additionalProperties:!0}},required:["specification","properties","data"],additionalProperties:!1}}});var Mme=x((JFt,aot)=>{aot.exports={$schema:"http://json-schema.org/draft-04/schema#",title:"outcome",type:"object",description:"The outcome of the transaction (what effects it had).",properties:{result:{type:"string",description:"Result code returned by rippled. See [Transaction Results](https://xrpl.org/transaction-results.html) for a complete list."},timestamp:{type:"string",format:"date-time",description:"The timestamp when the transaction was validated. (May be missing when requesting transactions in binary mode.)"},fee:{$ref:"value",description:"The XRP fee that was charged for the transaction."},deliveredAmount:{$ref:"amount",description:"For payment transactions, it is impossible to reliably compute the actual delivered amount from the balanceChanges due to fixed precision. If the payment is not a partial payment and the transaction succeeded, the deliveredAmount should always be considered to be the amount specified in the transaction."},balanceChanges:{type:"object",additionalProperties:{type:"array",description:"Key is the XRP Ledger address; value is an array of signed amounts representing changes of balances for that address.",items:{$ref:"balance"}}},orderbookChanges:{type:"object",additionalProperties:{type:"array",description:"Key is the maker's XRP Ledger address; value is an array of changes",items:{$ref:"orderChange"}}},channelChanges:{type:"object",description:"Properties reflecting the details of the payment channel."},ledgerVersion:{$ref:"ledgerVersion",description:"The ledger version that the transaction was validated in."},indexInLedger:{type:"integer",minimum:0,description:"The ordering index of the transaction in the ledger."}},required:["result","fee","balanceChanges","orderbookChanges","ledgerVersion","indexInLedger"],additionalProperties:!1}});var Cme=x((XFt,sot)=>{sot.exports={$schema:"http://json-schema.org/draft-04/schema#",title:"getTransaction",description:"getTransaction response",link:"gettransaction",properties:{type:{$ref:"transactionType"},specification:{description:"A specification that would produce the same outcome as this transaction. *Exception:* For payment transactions, this omits the `destination.amount` field, to prevent misunderstanding. The structure of the specification depends on the value of the `type` field (see [Transaction Types](#transaction-types) for details). *Note:* This is **not** necessarily the same as the original specification."},outcome:{$ref:"outcome",description:"The outcome of the transaction (what effects it had)."},id:{$ref:"transactionHash",description:"A hash of the transaction that can be used to identify it."},address:{$ref:"address",description:"The address of the account that initiated the transaction."},sequence:{$ref:"sequence",description:"The account sequence number of the transaction for the account that initiated it."},rawTransaction:{description:"The raw transaction data as a JSON string. For advanced users only; exercise caution when interpreting this data.",type:"string"}},required:["id","address","sequence","type","specification","outcome"],additionalProperties:!1,oneOf:[{properties:{type:{enum:["payment"]},specification:{$ref:"getPayment"}}},{properties:{type:{enum:["order"]},specification:{$ref:"order"}}},{properties:{type:{enum:["orderCancellation"]},specification:{$ref:"orderCancellation"}}},{properties:{type:{enum:["trustline"]},specification:{$ref:"trustline"}}},{properties:{type:{enum:["settings"]},specification:{$ref:"getSettings"}}},{properties:{type:{enum:["checkCreate"]},specification:{$ref:"checkCreate"}}},{properties:{type:{enum:["checkCancel"]},specification:{$ref:"checkCancel"}}},{properties:{type:{enum:["checkCash"]},specification:{$ref:"checkCash"}}},{properties:{type:{enum:["escrowCreation"]},specification:{$ref:"escrowCreation"}}},{properties:{type:{enum:["escrowCancellation"]},specification:{$ref:"escrowCancellation"}}},{properties:{type:{enum:["escrowExecution"]},specification:{$ref:"escrowExecution"}}},{properties:{type:{enum:["paymentChannelCreate"]},specification:{$ref:"paymentChannelCreate"}}},{properties:{type:{enum:["paymentChannelFund"]},specification:{$ref:"paymentChannelFund"}}},{properties:{type:{enum:["paymentChannelClaim"]},specification:{$ref:"paymentChannelClaim"}}},{properties:{type:{enum:["depositPreauth"]},specification:{$ref:"depositPreauth"}}},{properties:{type:{enum:["accountDelete"]},specification:{$ref:"accountDelete"}}}]}});var Ime=x((KFt,oot)=>{oot.exports={$schema:"http://json-schema.org/draft-04/schema#",title:"getTransactions",type:"array",items:{$ref:"getTransaction"}}});var Nme=x((WFt,uot)=>{uot.exports={$schema:"http://json-schema.org/draft-04/schema#",title:"getTrustlines",type:"array",items:{properties:{specification:{$ref:"trustline",description:"A trust line specification that would produce this trust line in its current state."},counterparty:{properties:{limit:{$ref:"value",description:"The maximum amount that the counterparty can be owed through the trust line."},ripplingDisabled:{type:"boolean",description:"If true, payments cannot ripple through this trustline."},frozen:{type:"boolean",description:"If true, the trust line is frozen, which means that funds can only be sent directly to the counterparty."},authorized:{type:"boolean",description:"If true, the counterparty authorizes this party to hold issuances from the counterparty."}},description:"Properties of the trustline from the perspective of the counterparty.",required:["limit"],additionalProperties:!1},state:{properties:{balance:{$ref:"signedValue",description:"The balance on the trust line, representing which party owes the other and by how much."}},description:"Non-settings details of the trust line's state.",required:["balance"],additionalProperties:!1}},required:["specification","counterparty","state"],additionalProperties:!1}}});var kme=x((ZFt,cot)=>{cot.exports={$schema:"http://json-schema.org/draft-04/schema#",title:"signPaymentChannelClaim",type:"string",$ref:"signature",additionalProperties:!1}});var Bme=x(($Ft,dot)=>{dot.exports={$schema:"http://json-schema.org/draft-04/schema#",title:"verifyPaymentChannelClaim",type:"boolean",additionalProperties:!1}});var Fme=x((QFt,lot)=>{lot.exports={$schema:"http://json-schema.org/draft-04/schema#",title:"getBalancesParameters",description:"Parameters for getBalances",type:"object",properties:{address:{$ref:"address",description:"The address of the account to get balances for."},options:{description:"Options to filter and determine which balances to return.",properties:{counterparty:{$ref:"address",description:"Only return balances with this counterparty."},currency:{$ref:"currency",description:"Only return balances for this currency."},limit:{type:"integer",minimum:1,description:"Return at most this many balances."},ledgerVersion:{$ref:"ledgerVersion",description:"Return balances as they were in this historical ledger version."}},additionalProperties:!1}},additionalProperties:!1,required:["address"]}});var Dme=x((YFt,fot)=>{fot.exports={$schema:"http://json-schema.org/draft-04/schema#",title:"getBalanceSheetParameters",description:"Parameters for getBalanceSheet",type:"object",properties:{address:{$ref:"address",description:"The XRP Ledger address of the account to get the balance sheet of."},options:{properties:{excludeAddresses:{type:"array",items:{$ref:"address"},uniqueItems:!0,description:"Addresses to exclude from the balance totals."},ledgerVersion:{$ref:"ledgerVersion",description:"Get the balance sheet as of this historical ledger version."}},description:"Options to determine how the balances are calculated.",additionalProperties:!1}},additionalProperties:!1,required:["address"]}});var qme=x((eDt,pot)=>{pot.exports={$schema:"http://json-schema.org/draft-04/schema#",title:"getLedgerParameters",description:"Parameters for getLedger",type:"object",properties:{options:{description:"Options affecting what ledger and how much data to return.",properties:{ledgerHash:{type:"string",description:"Get ledger data for this historical ledger hash."},ledgerVersion:{$ref:"ledgerVersion",description:"Get ledger data for this historical ledger version."},includeAllData:{type:"boolean",description:"Include the details of the transactions or state information if `includeTransactions` or `includeState` is set."},includeTransactions:{type:"boolean",description:"Return an array of transactions in this ledger. By default, provides the identifying hashes for each transaction. If `includeAllData` is true, include the entire transaction JSON for each transaction instead."},includeState:{type:"boolean",description:"Return an array of state data in this ledger. By default, provides the identifying hashes of state data. If `includeAllData` is true, return the state data in JSON form instead. **Admin required:** This is a very large amount of data."}},additionalProperties:!1}},additionalProperties:!1}});var Lme=x((tDt,hot)=>{hot.exports={$schema:"http://json-schema.org/draft-04/schema#",title:"getOrdersParameters",description:"Parameters for getOrders",type:"object",properties:{address:{$ref:"address",description:"The XRP Ledger address of the account to get open orders for."},options:{description:"Options that determine what orders to return.",properties:{limit:{type:"integer",minimum:1,description:"Return at most this many orders."},ledgerVersion:{$ref:"ledgerVersion",description:"Return orders as of this historical ledger version."}},additionalProperties:!1}},required:["address"],additionalProperties:!1}});var Ume=x((rDt,mot)=>{mot.exports={$schema:"http://json-schema.org/draft-04/schema#",title:"getOrderbookParameters",description:"Parameters for getOrderbook",type:"object",properties:{address:{$ref:"address",description:"Address of an account to use as point-of-view. (This affects which unfunded offers are returned.)"},orderbook:{$ref:"orderbook",description:"The order book to get."},options:{description:"Options to determine what to return.",properties:{limit:{type:"integer",minimum:1,description:"Return at most this many orders from the order book."},ledgerVersion:{$ref:"ledgerVersion",description:"Return the order book as of this historical ledger version."}},additionalProperties:!1}},required:["address","orderbook"],additionalProperties:!1}});var jme=x((iDt,got)=>{got.exports={$schema:"http://json-schema.org/draft-04/schema#",title:"getPathsParameters",type:"object",properties:{pathfind:{description:"Specification of a pathfind request.",properties:{source:{description:"Properties of the source of funds.",type:"object",properties:{address:{$ref:"address",description:"The XRP Ledger address of the planned sender."},amount:{$ref:"laxAmount",description:"The amount of funds to send."},currencies:{description:"An array of currencies (with optional counterparty) that may be used in the payment paths.",type:"array",items:{description:"A currency with optional counterparty.",type:"object",properties:{currency:{$ref:"currency"},counterparty:{$ref:"address",description:"The counterparty for the currency; if omitted any counterparty may be used."}},required:["currency"],additionalProperties:!1},uniqueItems:!0}},not:{required:["amount","currencies"]},additionalProperties:!1,required:["address"]},destination:{description:"Properties of the destination of funds.",type:"object",properties:{address:{$ref:"address",description:"An address representing the destination of the transaction."},amount:{$ref:"laxLaxAmount",description:"The amount to be received by the receiver (`value` may be ommitted if a source amount is specified)."}},required:["address","amount"],additionalProperties:!1}},required:["source","destination"],additionalProperties:!1}},additionalProperties:!1,required:["pathfind"]}});var Vme=x((nDt,yot)=>{yot.exports={$schema:"http://json-schema.org/draft-04/schema#",title:"getPaymentChannelParameters",description:"Parameters for getPaymentChannel",type:"object",properties:{id:{$ref:"hash256",description:"256-bit hexadecimal channel identifier."}},additionalProperties:!1,required:["id"]}});var Hme=x((aDt,vot)=>{vot.exports={$schema:"http://json-schema.org/draft-04/schema#",title:"api-options",type:"object",properties:{trace:{type:"boolean",description:"If true, log rippled requests and responses to stdout."},feeCushion:{type:"number",minimum:1,description:"Factor to multiply estimated fee by to provide a cushion in case the required fee rises during submission of a transaction. Defaults to `1.2`."},maxFeeXRP:{type:"string",description:"Maximum fee to use with transactions, in XRP. Must be a string-encoded number. Defaults to `'2'`."},server:{type:"string",description:"URI for rippled websocket port to connect to. Must start with `wss://`, `ws://`, `wss+unix://`, or `ws+unix://`.",format:"uri",pattern:"^(wss?|wss?\\+unix)://"},proxy:{format:"uri",description:"URI for HTTP/HTTPS proxy to use to connect to the rippled server."},timeout:{type:"integer",description:"Request timeout in milliseconds before considering a request to have failed. See also: connectionTimeout.",minimum:1},connectionTimeout:{type:"integer",description:"Connection timeout, in milliseconds, before considering connect() to have failed.",minimum:1},proxyAuthorization:{type:"string",description:"Username and password for HTTP basic authentication to the proxy in the format **username:password**."},authorization:{type:"string",description:"Username and password for HTTP basic authentication to the rippled server in the format **username:password**."},trustedCertificates:{type:"array",description:"Array of PEM-formatted SSL certificates to trust when connecting to a proxy. This is useful if you want to use a self-signed certificate on the proxy server. Note: Each element must contain a single certificate; concatenated certificates are not valid.",items:{type:"string",description:"A PEM-formatted SSL certificate to trust when connecting to a proxy."}},key:{type:"string",description:"A string containing the private key of the client in PEM format. (Can be an array of keys)."},passphrase:{type:"string",description:"The passphrase for the private key of the client."},certificate:{type:"string",description:"A string containing the certificate key of the client in PEM format. (Can be an array of certificates)."}},additionalProperties:!1}});var zme=x((sDt,bot)=>{bot.exports={$schema:"http://json-schema.org/draft-04/schema#",title:"getSettingsParameters",description:"Parameters for getSettings",type:"object",properties:{address:{$ref:"address",description:"The address of the account to get the settings of."},options:{description:"Options that affect what to return.",properties:{ledgerVersion:{$ref:"ledgerVersion",description:"Get the settings as of this historical ledger version."}},additionalProperties:!1}},required:["address"],additionalProperties:!1}});var Gme=x((oDt,_ot)=>{_ot.exports={$schema:"http://json-schema.org/draft-04/schema#",title:"getAccountInfoParameters",description:"Parameters for getAccountInfo",type:"object",properties:{address:{$ref:"address",description:"The address of the account to get the account info of."},options:{description:"Options that affect what to return.",properties:{ledgerVersion:{$ref:"ledgerVersion",description:"Get the account info as of this historical ledger version."}},additionalProperties:!1}},required:["address"],additionalProperties:!1}});var Jme=x((uDt,wot)=>{wot.exports={$schema:"http://json-schema.org/draft-04/schema#",title:"getAccountObjectsOptions",description:"Request options for getAccountObjects",type:"object",properties:{address:{$ref:"address",description:"The address of the account to get the account objects of."},options:{description:"Options that affect what to return.",properties:{type:{type:"string",enum:["check","escrow","offer","payment_channel","signer_list","state"],description:"(Optional) Filter results to include only this type of ledger object. The valid types are: `check`, `escrow`, `offer`, `payment_channel`, `signer_list`, and `state` (trust line)."},ledgerHash:{type:"string",description:"(Optional) A 20-byte hex string for the ledger version to use."},ledgerIndex:{oneOf:[{$ref:"ledgerVersion"},{type:"string"}],description:"(Optional) The sequence number of the ledger to use, or a shortcut string to choose a ledger automatically."},limit:{type:"integer",minimum:1,description:"(Optional) The maximum number of objects to include in the results."}},additionalProperties:!1}},required:["address"],additionalProperties:!1}});var Xme=x((cDt,xot)=>{xot.exports={$schema:"http://json-schema.org/draft-04/schema#",title:"getTransactionParameters",description:"Parameters for getTransaction",type:"object",properties:{id:{$ref:"transactionHash"},options:{description:"Options to limit the ledger versions to search or include raw transaction data.",properties:{minLedgerVersion:{$ref:"ledgerVersion",description:"The lowest ledger version to search. This must be an integer greater than 0, or one of the following strings: 'validated', 'closed', 'current'."},maxLedgerVersion:{$ref:"ledgerVersion",description:"The highest ledger version to search. This must be an integer greater than 0, or one of the following strings: 'validated', 'closed', 'current'."},includeRawTransaction:{description:"Include raw transaction data. For advanced users; exercise caution when interpreting this data."}},additionalProperties:!1}},additionalProperties:!1,required:["id"]}});var Kme=x((dDt,Sot)=>{Sot.exports={$schema:"http://json-schema.org/draft-04/schema#",title:"getTransactionsParameters",description:"Parameters for getTransactions",type:"object",properties:{address:{$ref:"address",description:"The address of the account to get transactions for."},options:{description:"Options to filter the resulting transactions.",properties:{start:{$ref:"hash256",description:"If specified, start the results from this transaction. You cannot use `start` with `minLedgerVersion` or `maxLedgerVersion`. When `start` is specified, these ledger versions are determined internally."},limit:{type:"integer",minimum:1,description:"If specified, return at most this many transactions."},minLedgerVersion:{$ref:"ledgerVersion",description:"Return only transactions in this ledger version or higher."},maxLedgerVersion:{$ref:"ledgerVersion",description:"Return only transactions in this ledger version or lower."},earliestFirst:{type:"boolean",description:"If true, sort transactions so that the earliest ones come first. By default, the newest transactions come first."},excludeFailures:{type:"boolean",description:"If true, the result omits transactions that did not succeed."},initiated:{type:"boolean",description:"If true, return only transactions initiated by the account specified by `address`. If false, return only transactions not initiated by the account specified by `address`."},counterparty:{$ref:"address",description:"If provided, only return transactions with this account as a counterparty to the transaction."},types:{type:"array",items:{$ref:"transactionType"},description:"Only return transactions of the specified [Transaction Types](#transaction-types)."},includeRawTransactions:{description:"Include raw transaction data. For advanced users; exercise caution when interpreting this data. "},binary:{type:"boolean",description:"If true, return transactions in binary format rather than JSON."}},additionalProperties:!1,not:{anyOf:[{required:["start","minLedgerVersion"]},{required:["start","maxLedgerVersion"]}]}}},additionalProperties:!1,required:["address"]}});var Wme=x((lDt,Eot)=>{Eot.exports={$schema:"http://json-schema.org/draft-04/schema#",title:"getTrustlinesParameters",description:"Parameters for getTrustlines",type:"object",properties:{address:{$ref:"address",description:"The address of the account to get trustlines for."},options:{description:"Options to filter and determine which trustlines to return.",properties:{counterparty:{$ref:"address",description:"Only return trustlines with this counterparty."},currency:{$ref:"currency",description:"Only return trustlines for this currency."},limit:{type:"integer",minimum:1,description:"Return at most this many trustlines."},ledgerVersion:{$ref:"ledgerVersion",description:"Return trustlines as they were in this historical ledger version."}},additionalProperties:!1}},additionalProperties:!1,required:["address"]}});var Zme=x((fDt,Tot)=>{Tot.exports={$schema:"http://json-schema.org/draft-04/schema#",title:"preparePaymentParameters",type:"object",properties:{address:{$ref:"address",description:"The address of the account that is creating the transaction."},payment:{$ref:"payment",description:"The specification of the payment to prepare."},instructions:{$ref:"instructions"}},additionalProperties:!1,required:["address","payment"]}});var $me=x((pDt,Aot)=>{Aot.exports={$schema:"http://json-schema.org/draft-04/schema#",title:"prepareOrderParameters",type:"object",properties:{address:{$ref:"address",description:"The address of the account that is creating the transaction."},order:{$ref:"order",description:"The specification of the order to prepare."},instructions:{$ref:"instructions"}},additionalProperties:!1,required:["address","order"]}});var Qme=x((hDt,Pot)=>{Pot.exports={$schema:"http://json-schema.org/draft-04/schema#",title:"prepareTrustlineParameters",type:"object",properties:{address:{$ref:"address",description:"The address of the account that is creating the transaction."},trustline:{$ref:"trustline",description:"The specification of the trustline to prepare."},instructions:{$ref:"instructions"}},additionalProperties:!1,required:["address","trustline"]}});var Yme=x((mDt,Oot)=>{Oot.exports={$schema:"http://json-schema.org/draft-04/schema#",title:"prepareOrderCancellationParameters",type:"object",properties:{address:{$ref:"address",description:"The address of the account that is creating the transaction."},orderCancellation:{$ref:"orderCancellation",description:"The specification of the order cancellation to prepare."},instructions:{$ref:"instructions"}},additionalProperties:!1,required:["address","orderCancellation"]}});var e2e=x((gDt,Rot)=>{Rot.exports={$schema:"http://json-schema.org/draft-04/schema#",title:"prepareSettingsParameters",type:"object",properties:{address:{$ref:"address",description:"The address of the account that is creating the transaction."},settings:{$ref:"settings",description:"The specification of the settings to prepare."},instructions:{$ref:"instructions"}},additionalProperties:!1,required:["address","settings"]}});var t2e=x((yDt,Mot)=>{Mot.exports={$schema:"http://json-schema.org/draft-04/schema#",title:"prepareEscrowCreationParameters",type:"object",properties:{address:{$ref:"address",description:"The address of the account that is creating the transaction."},escrowCreation:{$ref:"escrowCreation",description:"The specification of the escrow creation to prepare."},instructions:{$ref:"instructions"}},additionalProperties:!1,required:["address","escrowCreation"]}});var r2e=x((vDt,Cot)=>{Cot.exports={$schema:"http://json-schema.org/draft-04/schema#",title:"prepareEscrowCancellationParameters",type:"object",properties:{address:{$ref:"address",description:"The address of the account that is creating the transaction."},escrowCancellation:{$ref:"escrowCancellation",description:"The specification of the escrow cancellation to prepare."},instructions:{$ref:"instructions"}},additionalProperties:!1,required:["address","escrowCancellation"]}});var i2e=x((bDt,Iot)=>{Iot.exports={$schema:"http://json-schema.org/draft-04/schema#",title:"prepareEscrowExecutionParameters",type:"object",properties:{address:{$ref:"address",description:"The address of the account that is creating the transaction."},escrowExecution:{$ref:"escrowExecution",description:"The specification of the escrow execution to prepare."},instructions:{$ref:"instructions"}},additionalProperties:!1,required:["address","escrowExecution"]}});var n2e=x((_Dt,Not)=>{Not.exports={$schema:"http://json-schema.org/draft-04/schema#",title:"preparePaymentChannelCreateParameters",type:"object",properties:{address:{$ref:"address",description:"The address of the account that is creating the transaction."},paymentChannelCreate:{$ref:"paymentChannelCreate",description:"The specification of the payment channel to create."},instructions:{$ref:"instructions"}},additionalProperties:!1,required:["address","paymentChannelCreate"]}});var a2e=x((wDt,kot)=>{kot.exports={$schema:"http://json-schema.org/draft-04/schema#",title:"preparePaymentChannelFundParameters",type:"object",properties:{address:{$ref:"address",description:"The address of the account that is creating the transaction."},paymentChannelFund:{$ref:"paymentChannelFund",description:"The channel to fund, and the details of how to fund it."},instructions:{$ref:"instructions"}},additionalProperties:!1,required:["address","paymentChannelFund"]}});var s2e=x((xDt,Bot)=>{Bot.exports={$schema:"http://json-schema.org/draft-04/schema#",title:"preparePaymentChannelClaimParameters",type:"object",properties:{address:{$ref:"address",description:"The address of the account that is creating the transaction."},paymentChannelClaim:{$ref:"paymentChannelClaim",description:"Details of the channel and claim."},instructions:{$ref:"instructions"}},additionalProperties:!1,required:["address","paymentChannelClaim"]}});var o2e=x((SDt,Fot)=>{Fot.exports={$schema:"http://json-schema.org/draft-04/schema#",title:"prepareCheckCreateParameters",type:"object",properties:{address:{$ref:"address",description:"The address of the account that is creating the transaction."},checkCreate:{$ref:"checkCreate",description:"The specification of the Check create creation to prepare."},instructions:{$ref:"instructions"}},additionalProperties:!1,required:["address","checkCreate"]}});var u2e=x((EDt,Dot)=>{Dot.exports={$schema:"http://json-schema.org/draft-04/schema#",title:"prepareCheckCashParameters",type:"object",properties:{address:{$ref:"address",description:"The address of the account that is creating the transaction."},checkCash:{$ref:"checkCash",description:"The specification of the Check cash to prepare."},instructions:{$ref:"instructions"}},additionalProperties:!1,required:["address","checkCash"]}});var c2e=x((TDt,qot)=>{qot.exports={$schema:"http://json-schema.org/draft-04/schema#",title:"prepareCheckCancelParameters",type:"object",properties:{address:{$ref:"address",description:"The address of the account that is creating the transaction."},checkCancel:{$ref:"checkCancel",description:"The specification of the Check cancellation to prepare."},instructions:{$ref:"instructions"}},additionalProperties:!1,required:["address","checkCancel"]}});var d2e=x((ADt,Lot)=>{Lot.exports={$schema:"http://json-schema.org/draft-04/schema#",title:"prepareTicketParameters",type:"object",properties:{address:{$ref:"address",description:"The address of the account that is creating the transaction."},ticketCount:{type:"number",description:"The number of tickets to be created."},instructions:{$ref:"instructions"}},additionalProperties:!1,required:["address","ticketCount"]}});var l2e=x((PDt,Uot)=>{Uot.exports={$schema:"http://json-schema.org/draft-04/schema#",title:"computeLedgerHashParameters",type:"object",properties:{ledger:{$ref:"getLedger",description:"The ledger header to hash."}},additionalProperties:!1,required:["ledger"]}});var f2e=x((ODt,jot)=>{jot.exports={$schema:"http://json-schema.org/draft-04/schema#",title:"signParameters",type:"object",properties:{txJSON:{type:"string",description:"Transaction represented as a JSON string in rippled format."},secret:{type:"string",format:"secret",description:"The secret of the account that is initiating the transaction. (This field cannot be used with keypair)."},keypair:{type:"object",properties:{privateKey:{type:"privateKey",description:"The uppercase hexadecimal representation of the secp256k1 or Ed25519 private key. Ed25519 keys are prefixed with 0xED. You can read about how keys are derived [here](https://xrpl.org/cryptographic-keys.html)."},publicKey:{type:"publicKey",description:"The uppercase hexadecimal representation of the secp256k1 or Ed25519 public key. Ed25519 keys are prefixed with 0xED. You can read about how keys are derived [here](https://xrpl.org/cryptographic-keys.html)."}},description:"The private and public key of the account that is initiating the transaction. (This field cannot be used with secret).",required:["privateKey","publicKey"],additionalProperties:!1},options:{type:"object",description:"Options that control the type of signature to create.",properties:{signAs:{$ref:"address",description:"The account that the signature should count for in multisigning."}},additionalProperties:!1}},additionalProperties:!1,required:["txJSON"],oneOf:[{required:["secret"],not:{required:["keypair"]}},{required:["keypair"],not:{required:["secret"]}}]}});var p2e=x((RDt,Vot)=>{Vot.exports={$schema:"http://json-schema.org/draft-04/schema#",title:"submitParameters",type:"object",properties:{signedTransaction:{$ref:"blob",description:"A signed transaction as returned by [sign](#sign)."},failHard:{type:"boolean",description:"If `true`, and the transaction fails locally, do not retry or relay the transaction to other servers. Defaults to `false`."}},additionalProperties:!1,required:["signedTransaction"]}});var h2e=x((MDt,Hot)=>{Hot.exports={$schema:"http://json-schema.org/draft-04/schema#",title:"generateAddressParameters",type:"object",properties:{options:{type:"object",description:"Options to control how the address and secret are generated.",properties:{entropy:{type:"array",items:{type:"integer",minimum:0,maximum:255},description:"The entropy to use to generate the seed. Must be an array of length 16 with values from 0-255 (16 bytes of entropy)"},algorithm:{type:"string",enum:["ecdsa-secp256k1","ed25519"],description:"The digital signature algorithm to generate an address for. Can be `ecdsa-secp256k1` (default) or `ed25519`."},test:{type:"boolean",description:"Specifies whether the address is intended for use on a test network such as Testnet or Devnet. If `true`, the address should only be used for testing, and starts with `T`. If `false`, the address should only be used on Mainnet, and starts with `X`."},includeClassicAddress:{type:"boolean",description:"If `true`, also return the classic address."}},additionalProperties:!1}},additionalProperties:!1}});var m2e=x((CDt,zot)=>{zot.exports={$schema:"http://json-schema.org/draft-04/schema#",title:"signPaymentChannelClaimParameters",type:"object",properties:{channel:{$ref:"hash256",description:"256-bit hexadecimal channel identifier."},amount:{$ref:"value",description:"Amount of XRP authorized by the claim."},privateKey:{$ref:"publicKey",description:"The private key to sign the payment channel claim."}},additionalProperties:!1,required:["channel","amount","privateKey"]}});var g2e=x((IDt,Got)=>{Got.exports={$schema:"http://json-schema.org/draft-04/schema#",title:"verifyPaymentChannelClaimParameters",type:"object",properties:{channel:{$ref:"hash256",description:"256-bit hexadecimal channel identifier."},amount:{$ref:"value",description:"Amount of XRP authorized by the claim."},signature:{$ref:"signature",description:"Signature of this claim."},publicKey:{$ref:"publicKey",description:"Public key of the channel's sender"}},additionalProperties:!1,required:["channel","amount","signature","publicKey"]}});var y2e=x((NDt,Jot)=>{Jot.exports={$schema:"http://json-schema.org/draft-04/schema#",title:"combineParameters",type:"object",properties:{signedTransactions:{type:"array",description:"An array of signed transactions (from the output of [sign](#sign)) to combine.",items:{type:"string",pattern:"^[A-F0-9]+$",description:"A single-signed transaction represented as an uppercase hexadecimal string (from the output of [sign](#sign))"},minLength:1}},additionalProperties:!1,required:["signedTransactions"]}});var SE=x(co=>{"use strict";var Xot=co&&co.__createBinding||(Object.create?function(t,e,r,i){i===void 0&&(i=r),Object.defineProperty(t,i,{enumerable:!0,get:function(){return e[r]}})}:function(t,e,r,i){i===void 0&&(i=r),t[i]=e[r]}),Kot=co&&co.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),w2e=co&&co.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var r in t)r!=="default"&&Object.hasOwnProperty.call(t,r)&&Xot(e,t,r);return Kot(e,t),e};Object.defineProperty(co,"__esModule",{value:!0});co.isValidAddress=co.isValidSecret=co.schemaValidate=void 0;var v2e=w2e(Vi()),Wot=w2e(require("assert")),{Validator:Zot}=jhe(),b2e=Ic(),CD=uo(),x2e=c_();Object.defineProperty(co,"isValidSecret",{enumerable:!0,get:function(){return x2e.isValidSecret}});function $ot(){let t=[d1e(),l1e(),f1e(),p1e(),h1e(),m1e(),g1e(),y1e(),v1e(),b1e(),_1e(),w1e(),x1e(),S1e(),E1e(),T1e(),A1e(),P1e(),O1e(),R1e(),M1e(),C1e(),I1e(),N1e(),k1e(),B1e(),F1e(),D1e(),q1e(),L1e(),U1e(),j1e(),V1e(),H1e(),z1e(),G1e(),J1e(),X1e(),K1e(),W1e(),Z1e(),$1e(),Q1e(),Y1e(),eme(),tme(),rme(),ime(),nme(),ame(),sme(),ome(),ume(),cme(),dme(),lme(),fme(),pme(),hme(),mme(),gme(),yme(),vme(),bme(),_me(),wme(),xme(),Sme(),Eme(),Tme(),Ame(),Pme(),Ome(),Rme(),Mme(),Cme(),Ime(),Nme(),kme(),Bme(),Fme(),Dme(),qme(),Lme(),Ume(),jme(),Vme(),Hme(),zme(),Gme(),Jme(),Xme(),Kme(),Wme(),Zme(),$me(),Qme(),Yme(),e2e(),t2e(),r2e(),i2e(),n2e(),a2e(),s2e(),o2e(),u2e(),c2e(),d2e(),l2e(),f2e(),p2e(),h2e(),m2e(),g2e(),y2e()],e=t.map(n=>n.title),r=Object.keys(v2e.pickBy(v2e.countBy(e),n=>n>1));Wot.ok(r.length===0,"Duplicate schemas for: "+r);let i=new Zot;return i.customFormats.xAddress=function(n){return n==null?!0:CD.isValidXAddress(n)},i.customFormats.classicAddress=function(n){return n==null?!0:S2e(n)},i.customFormats.secret=function(n){return n==null?!0:x2e.isValidSecret(n)},t.forEach(n=>i.addSchema(n,"/"+n.title)),i}var _2e=$ot();function Qot(t,e){let r=_2e.getSchema("/"+t);if(r==null)throw new b2e.ValidationError("no schema for "+t);let i=_2e.validate(e,r);if(!i.valid)throw new b2e.ValidationError(i.errors.join())}co.schemaValidate=Qot;function S2e(t){return CD.isValidXAddress(t)||CD.isValidClassicAddress(t)}co.isValidAddress=S2e});var E2e=x(it=>{"use strict";var Yot=it&&it.__createBinding||(Object.create?function(t,e,r,i){i===void 0&&(i=r),Object.defineProperty(t,i,{enumerable:!0,get:function(){return e[r]}})}:function(t,e,r,i){i===void 0&&(i=r),t[i]=e[r]}),eut=it&&it.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),tut=it&&it.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var r in t)r!=="default"&&Object.hasOwnProperty.call(t,r)&&Yot(e,t,r);return eut(e,t),e};Object.defineProperty(it,"__esModule",{value:!0});it.tx_json=it.instructions=it.apiOptions=it.verifyPaymentChannelClaim=it.signPaymentChannelClaim=it.generateAddress=it.computeLedgerHash=it.submit=it.combine=it.sign=it.prepareTicketCreate=it.prepareCheckCancel=it.prepareCheckCash=it.prepareCheckCreate=it.preparePaymentChannelClaim=it.preparePaymentChannelFund=it.preparePaymentChannelCreate=it.prepareEscrowExecution=it.prepareEscrowCancellation=it.prepareEscrowCreation=it.prepareSettings=it.prepareTrustline=it.prepareOrderCancellation=it.prepareOrder=it.preparePayment=it.getLedger=it.getPaymentChannel=it.getTransaction=it.getOrderbook=it.getOrders=it.getBalanceSheet=it.getBalances=it.getTrustlines=it.getAccountInfo=it.getSettings=it.getTransactions=it.getPaths=void 0;var Ar=tut(Vi()),rut=Ic(),vi=SE();function iut(t){return new rut.ValidationError(t)}function nut(t){if(t!=null&&t.minLedgerVersion!=null&&t.maxLedgerVersion!=null&&Number(t.minLedgerVersion)>Number(t.maxLedgerVersion))throw iut("minLedgerVersion must not be greater than maxLedgerVersion")}function kc(t,e){vi.schemaValidate(t,e),nut(e.options)}it.getPaths=Ar.partial(vi.schemaValidate,"getPathsParameters");it.getTransactions=Ar.partial(kc,"getTransactionsParameters");it.getSettings=Ar.partial(kc,"getSettingsParameters");it.getAccountInfo=Ar.partial(kc,"getAccountInfoParameters");it.getTrustlines=Ar.partial(kc,"getTrustlinesParameters");it.getBalances=Ar.partial(kc,"getBalancesParameters");it.getBalanceSheet=Ar.partial(kc,"getBalanceSheetParameters");it.getOrders=Ar.partial(kc,"getOrdersParameters");it.getOrderbook=Ar.partial(kc,"getOrderbookParameters");it.getTransaction=Ar.partial(kc,"getTransactionParameters");it.getPaymentChannel=Ar.partial(kc,"getPaymentChannelParameters");it.getLedger=Ar.partial(kc,"getLedgerParameters");it.preparePayment=Ar.partial(vi.schemaValidate,"preparePaymentParameters");it.prepareOrder=Ar.partial(vi.schemaValidate,"prepareOrderParameters");it.prepareOrderCancellation=Ar.partial(vi.schemaValidate,"prepareOrderCancellationParameters");it.prepareTrustline=Ar.partial(vi.schemaValidate,"prepareTrustlineParameters");it.prepareSettings=Ar.partial(vi.schemaValidate,"prepareSettingsParameters");it.prepareEscrowCreation=Ar.partial(vi.schemaValidate,"prepareEscrowCreationParameters");it.prepareEscrowCancellation=Ar.partial(vi.schemaValidate,"prepareEscrowCancellationParameters");it.prepareEscrowExecution=Ar.partial(vi.schemaValidate,"prepareEscrowExecutionParameters");it.preparePaymentChannelCreate=Ar.partial(vi.schemaValidate,"preparePaymentChannelCreateParameters");it.preparePaymentChannelFund=Ar.partial(vi.schemaValidate,"preparePaymentChannelFundParameters");it.preparePaymentChannelClaim=Ar.partial(vi.schemaValidate,"preparePaymentChannelClaimParameters");it.prepareCheckCreate=Ar.partial(vi.schemaValidate,"prepareCheckCreateParameters");it.prepareCheckCash=Ar.partial(vi.schemaValidate,"prepareCheckCashParameters");it.prepareCheckCancel=Ar.partial(vi.schemaValidate,"prepareCheckCancelParameters");it.prepareTicketCreate=Ar.partial(vi.schemaValidate,"prepareTicketParameters");it.sign=Ar.partial(vi.schemaValidate,"signParameters");it.combine=Ar.partial(vi.schemaValidate,"combineParameters");it.submit=Ar.partial(vi.schemaValidate,"submitParameters");it.computeLedgerHash=Ar.partial(vi.schemaValidate,"computeLedgerHashParameters");it.generateAddress=Ar.partial(vi.schemaValidate,"generateAddressParameters");it.signPaymentChannelClaim=Ar.partial(vi.schemaValidate,"signPaymentChannelClaimParameters");it.verifyPaymentChannelClaim=Ar.partial(vi.schemaValidate,"verifyPaymentChannelClaimParameters");it.apiOptions=Ar.partial(vi.schemaValidate,"api-options");it.instructions=Ar.partial(vi.schemaValidate,"instructions");it.tx_json=Ar.partial(vi.schemaValidate,"tx-json")});var ND=x(Al=>{"use strict";var aut=Al&&Al.__awaiter||function(t,e,r,i){function n(a){return a instanceof r?a:new r(function(s){s(a)})}return new(r||(r=Promise))(function(a,s){function o(f){try{u(i.next(f))}catch(d){s(d)}}function c(f){try{u(i.throw(f))}catch(d){s(d)}}function u(f){f.done?a(f.value):n(f.value).then(o,c)}u((i=i.apply(t,e||[])).next())})},sut=Al&&Al.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Al,"__esModule",{value:!0});Al.getFee=Al.getServerInfo=void 0;var out=c_(),ID=sut(Yr());function T2e(t,e){Object.entries(e).forEach(r=>{let[i,n]=r;t[n]=t[i],delete t[i]})}function uut(){return this.request("server_info").then(t=>{let e=out.convertKeysFromSnakeCaseToCamelCase(t.info);return T2e(e,{hostid:"hostID"}),e.validatedLedger&&(T2e(e.validatedLedger,{baseFeeXrp:"baseFeeXRP",reserveBaseXrp:"reserveBaseXRP",reserveIncXrp:"reserveIncrementXRP",seq:"ledgerVersion"}),e.validatedLedger.baseFeeXRP=e.validatedLedger.baseFeeXRP.toString(),e.validatedLedger.reserveBaseXRP=e.validatedLedger.reserveBaseXRP.toString(),e.validatedLedger.reserveIncrementXRP=e.validatedLedger.reserveIncrementXRP.toString()),e})}Al.getServerInfo=uut;function cut(t){return aut(this,void 0,void 0,function*(){t==null&&(t=this._feeCushion),t==null&&(t=1.2);let e=(yield this.request("server_info")).info,r=new ID.default(e.validated_ledger.base_fee_xrp);e.load_factor==null&&(e.load_factor=1);let i=r.times(e.load_factor).times(t);return i=ID.default.min(i,this._maxFeeXRP),new ID.default(i.toFixed(6)).toString(10)})}Al.getFee=cut});var BD=x(hp=>{"use strict";var dut=hp&&hp.__createBinding||(Object.create?function(t,e,r,i){i===void 0&&(i=r),Object.defineProperty(t,i,{enumerable:!0,get:function(){return e[r]}})}:function(t,e,r,i){i===void 0&&(i=r),t[i]=e[r]}),lut=hp&&hp.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),A2e=hp&&hp.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var r in t)r!=="default"&&Object.hasOwnProperty.call(t,r)&&dut(e,t,r);return lut(e,t),e};Object.defineProperty(hp,"__esModule",{value:!0});var fut=A2e(Vi()),put=A2e(require("assert"));function hut(t){let e=[[-1/0,-1/0]];return fut.sortBy(t,r=>r[0]).forEach(r=>{let i=e.pop();r[0]<=i[1]+1?e.push([i[0],Math.max(r[1],i[1])]):(e.push(i),e.push(r))}),e.slice(1)}var kD=class{constructor(){this.reset()}reset(){this.ranges=[]}serialize(){return this.ranges.map(e=>e[0].toString()+"-"+e[1].toString()).join(",")}addRange(e,r){put.ok(e<=r,`invalid range ${e} <= ${r}`),this.ranges=hut(this.ranges.concat([[e,r]]))}addValue(e){this.addRange(e,e)}parseAndAddRanges(e){e.split(",").forEach(i=>{let n=i.split("-").map(Number);this.addRange(n[0],n.length===1?n[0]:n[1])})}containsRange(e,r){return this.ranges.some(i=>i[0]<=e&&i[1]>=r)}containsValue(e){return this.containsRange(e,e)}};hp.default=kD});var P2e=x(EE=>{"use strict";Object.defineProperty(EE,"__esModule",{value:!0});EE.ExponentialBackoff=void 0;var FD=class{constructor(e={}){this.factor=2,this.jitter=0,this.attempts=0,this.ms=e.min||100,this.max=e.max||1e4}duration(){var e=this.ms*Math.pow(this.factor,this.attempts++);if(this.jitter){var r=Math.random(),i=Math.floor(r*this.jitter*e);e=(Math.floor(r*10)&1)==0?e-i:e+i}return Math.min(e,this.max)|0}reset(){this.attempts=0}};EE.ExponentialBackoff=FD});var O2e=x(l_=>{"use strict";var mut=l_&&l_.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(l_,"__esModule",{value:!0});var gut=mut(U3()),d_=gut.default("https-proxy-agent:parse-proxy-response");function yut(t){return new Promise((e,r)=>{let i=0,n=[];function a(){let d=t.read();d?f(d):t.once("readable",a)}function s(){t.removeListener("end",c),t.removeListener("error",u),t.removeListener("close",o),t.removeListener("readable",a)}function o(d){d_("onclose had error %o",d)}function c(){d_("onend")}function u(d){s(),d_("onerror %o",d),r(d)}function f(d){n.push(d),i+=d.length;let p=Buffer.concat(n,i);if(p.indexOf(`\r +\r +`)===-1){d_("have not received end of HTTP headers yet..."),a();return}let T=p.toString("ascii",0,p.indexOf(`\r +`)),I=+T.split(" ")[1];d_("got proxy server response: %o",T),e({statusCode:I,buffered:p})}t.on("error",u),t.on("close",o),t.on("end",c),a()})}l_.default=yut});var C2e=x(u2=>{"use strict";var vut=u2&&u2.__awaiter||function(t,e,r,i){function n(a){return a instanceof r?a:new r(function(s){s(a)})}return new(r||(r=Promise))(function(a,s){function o(f){try{u(i.next(f))}catch(d){s(d)}}function c(f){try{u(i.throw(f))}catch(d){s(d)}}function u(f){f.done?a(f.value):n(f.value).then(o,c)}u((i=i.apply(t,e||[])).next())})},Qv=u2&&u2.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(u2,"__esModule",{value:!0});var R2e=Qv(require("net")),M2e=Qv(require("tls")),but=Qv(require("url")),_ut=Qv(require("assert")),wut=Qv(U3()),xut=aF(),Sut=Qv(O2e()),f_=wut.default("https-proxy-agent:agent"),DD=class extends xut.Agent{constructor(e){let r;if(typeof e=="string"?r=but.default.parse(e):r=e,!r)throw new Error("an HTTP(S) proxy server `host` and `port` must be specified!");f_("creating new HttpsProxyAgent instance: %o",r),super(r);let i=Object.assign({},r);this.secureProxy=r.secureProxy||Aut(i.protocol),i.host=i.hostname||i.host,typeof i.port=="string"&&(i.port=parseInt(i.port,10)),!i.port&&i.host&&(i.port=this.secureProxy?443:80),this.secureProxy&&!("ALPNProtocols"in i)&&(i.ALPNProtocols=["http 1.1"]),i.host&&i.path&&(delete i.path,delete i.pathname),this.proxy=i}callback(e,r){return vut(this,void 0,void 0,function*(){let{proxy:i,secureProxy:n}=this,a;n?(f_("Creating `tls.Socket`: %o",i),a=M2e.default.connect(i)):(f_("Creating `net.Socket`: %o",i),a=R2e.default.connect(i));let s=Object.assign({},i.headers),c=`CONNECT ${`${r.host}:${r.port}`} HTTP/1.1\r +`;i.auth&&(s["Proxy-Authorization"]=`Basic ${Buffer.from(i.auth).toString("base64")}`);let{host:u,port:f,secureEndpoint:d}=r;Tut(f,d)||(u+=`:${f}`),s.Host=u,s.Connection="close";for(let L of Object.keys(s))c+=`${L}: ${s[L]}\r +`;let p=Sut.default(a);a.write(`${c}\r +`);let{statusCode:b,buffered:T}=yield p;if(b===200){if(e.once("socket",Eut),r.secureEndpoint){f_("Upgrading socket connection to TLS");let L=r.servername||r.host;return M2e.default.connect(Object.assign(Object.assign({},Put(r,"host","hostname","path","port")),{socket:a,servername:L}))}return a}a.destroy();let I=new R2e.default.Socket({writable:!1});return I.readable=!0,e.once("socket",L=>{f_("replaying proxy buffer for failed request"),_ut.default(L.listenerCount("data")>0),L.push(T),L.push(null)}),I})}};u2.default=DD;function Eut(t){t.resume()}function Tut(t,e){return Boolean(!e&&t===80||e&&t===443)}function Aut(t){return typeof t=="string"?/^https:?$/i.test(t):!1}function Put(t,...e){let r={},i;for(i in t)e.includes(i)||(r[i]=t[i]);return r}});var N2e=x((UD,I2e)=>{"use strict";var Out=UD&&UD.__importDefault||function(t){return t&&t.__esModule?t:{default:t}},qD=Out(C2e());function LD(t){return new qD.default(t)}(function(t){t.HttpsProxyAgent=qD.default,t.prototype=qD.default.prototype})(LD||(LD={}));I2e.exports=LD});var D2e=x(lo=>{"use strict";var Rut=lo&&lo.__createBinding||(Object.create?function(t,e,r,i){i===void 0&&(i=r),Object.defineProperty(t,i,{enumerable:!0,get:function(){return e[r]}})}:function(t,e,r,i){i===void 0&&(i=r),t[i]=e[r]}),Mut=lo&&lo.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),Cut=lo&&lo.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var r in t)r!=="default"&&Object.hasOwnProperty.call(t,r)&&Rut(e,t,r);return Mut(e,t),e},Pl=lo&&lo.__awaiter||function(t,e,r,i){function n(a){return a instanceof r?a:new r(function(s){s(a)})}return new(r||(r=Promise))(function(a,s){function o(f){try{u(i.next(f))}catch(d){s(d)}}function c(f){try{u(i.throw(f))}catch(d){s(d)}}function u(f){f.done?a(f.value):n(f.value).then(o,c)}u((i=i.apply(t,e||[])).next())})},F2e=lo&&lo.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(lo,"__esModule",{value:!0});lo.Connection=void 0;var jD=Cut(Vi()),Iut=require("events"),k2e=require("url"),c2=F2e(yC()),Nut=F2e(BD()),Ns=Ic(),kut=P2e(),B2e=4e3;function But(t,e){let r={};if(e.proxy!=null){let s=k2e.parse(t),o=k2e.parse(e.proxy),c=jD.omitBy({secureEndpoint:s.protocol==="wss:",secureProxy:o.protocol==="https:",auth:e.proxyAuthorization,ca:e.trustedCertificates,key:e.key,passphrase:e.passphrase,cert:e.certificate},d=>d==null),u=Object.assign({},o,c),f;try{f=N2e()}catch{throw new Error('"proxy" option is not supported in the browser')}r.agent=new f(u)}if(e.authorization!=null){let s=Buffer.from(e.authorization).toString("base64");r.headers={Authorization:`Basic ${s}`}}let i=jD.omitBy({ca:e.trustedCertificates,key:e.key,passphrase:e.passphrase,cert:e.certificate},s=>s==null),n=Object.assign({},r,i),a=new c2.default(t,null,n);return typeof a.setMaxListeners=="function"&&a.setMaxListeners(1/0),a}function Fut(t,e){return new Promise((r,i)=>{t.send(e,void 0,n=>{n?i(new Ns.DisconnectedError(n.message,n)):r()})})}var VD=class{constructor(){this.feeBase=null,this.feeRef=null,this.latestVersion=null,this.reserveBase=null,this.availableVersions=new Nut.default}hasVersion(e){return this.availableVersions.containsValue(e)}hasVersions(e,r){return this.availableVersions.containsRange(e,r)}update(e){this.feeBase=e.fee_base,this.feeRef=e.fee_ref,this.latestVersion=e.ledger_index,this.reserveBase=e.reserve_base,e.validated_ledgers?(this.availableVersions.reset(),this.availableVersions.parseAndAddRanges(e.validated_ledgers)):this.availableVersions.addValue(this.latestVersion)}},HD=class{constructor(){this.promisesAwaitingConnection=[]}resolveAllAwaiting(){this.promisesAwaitingConnection.map(({resolve:e})=>e()),this.promisesAwaitingConnection=[]}rejectAllAwaiting(e){this.promisesAwaitingConnection.map(({reject:r})=>r(e)),this.promisesAwaitingConnection=[]}awaitConnection(){return new Promise((e,r)=>{this.promisesAwaitingConnection.push({resolve:e,reject:r})})}},zD=class{constructor(){this.nextId=0,this.promisesAwaitingResponse=[]}cancel(e){let{timer:r}=this.promisesAwaitingResponse[e];clearTimeout(r),delete this.promisesAwaitingResponse[e]}resolve(e,r){let{timer:i,resolve:n}=this.promisesAwaitingResponse[e];clearTimeout(i),n(r),delete this.promisesAwaitingResponse[e]}reject(e,r){let{timer:i,reject:n}=this.promisesAwaitingResponse[e];clearTimeout(i),n(r),delete this.promisesAwaitingResponse[e]}rejectAll(e){this.promisesAwaitingResponse.forEach((r,i)=>{this.reject(i,e)})}createRequest(e,r){let i=this.nextId++,n=JSON.stringify(Object.assign(Object.assign({},e),{id:i})),a=setTimeout(()=>this.reject(i,new Ns.TimeoutError),r);a.unref&&a.unref();let s=new Promise((o,c)=>{this.promisesAwaitingResponse[i]={resolve:o,reject:c,timer:a}});return[i,n,s]}handleResponse(e){if(!Number.isInteger(e.id)||e.id<0)throw new Ns.ResponseFormatError("valid id not found in response",e);if(!!this.promisesAwaitingResponse[e.id]){if(e.status==="error"){let r=new Ns.RippledError(e.error_message||e.error,e);this.reject(e.id,r);return}if(e.status!=="success"){let r=new Ns.ResponseFormatError(`unrecognized status: ${e.status}`,e);this.reject(e.id,r);return}this.resolve(e.id,e.result)}}},GD=class extends Iut.EventEmitter{constructor(e,r={}){super(),this._ws=null,this._reconnectTimeoutID=null,this._heartbeatIntervalID=null,this._retryConnectionBackoff=new kut.ExponentialBackoff({min:100,max:60*1e3}),this._trace=()=>{},this._ledger=new VD,this._requestManager=new zD,this._connectionManager=new HD,this._clearHeartbeatInterval=()=>{clearInterval(this._heartbeatIntervalID)},this._startHeartbeatInterval=()=>{this._clearHeartbeatInterval(),this._heartbeatIntervalID=setInterval(()=>this._heartbeat(),this._config.timeout)},this._heartbeat=()=>this.request({command:"ping"}).catch(()=>this.reconnect().catch(i=>{this.emit("error","reconnect",i.message,i)})),this._onConnectionFailed=i=>{this._ws&&(this._ws.removeAllListeners(),this._ws.on("error",()=>{}),this._ws.close(),this._ws=null),typeof i=="number"?this._connectionManager.rejectAllAwaiting(new Ns.NotConnectedError(`Connection failed with code ${i}.`,{code:i})):i&&i.message?this._connectionManager.rejectAllAwaiting(new Ns.NotConnectedError(i.message,i)):this._connectionManager.rejectAllAwaiting(new Ns.NotConnectedError("Connection failed."))},this.setMaxListeners(1/0),this._url=e,this._config=Object.assign({timeout:20*1e3,connectionTimeout:5*1e3},r),typeof r.trace=="function"?this._trace=r.trace:r.trace===!0&&(this._trace=console.log)}_onMessage(e){this._trace("receive",e);let r;try{r=JSON.parse(e)}catch(i){this.emit("error","badMessage",i.message,e);return}if(r.type==null&&r.error){this.emit("error",r.error,r.error_message,r);return}if(r.type&&this.emit(r.type,r),r.type==="ledgerClosed"&&this._ledger.update(r),r.type==="response")try{this._requestManager.handleResponse(r)}catch(i){this.emit("error","badMessage",i.message,e)}}get _state(){return this._ws?this._ws.readyState:c2.default.CLOSED}get _shouldBeConnected(){return this._ws!==null}_waitForReady(){return new Promise((e,r)=>{this._shouldBeConnected?this._state===c2.default.OPEN?e():this.once("connected",()=>e()):r(new Ns.NotConnectedError)})}_subscribeToLedger(){return Pl(this,void 0,void 0,function*(){let e=yield this.request({command:"subscribe",streams:["ledger"]});if(jD.isEmpty(e)||!e.ledger_index)try{yield this.disconnect()}catch{}finally{throw new Ns.RippledNotInitializedError("Rippled not initialized")}this._ledger.update(e)})}isConnected(){return this._state===c2.default.OPEN}connect(){if(this.isConnected())return Promise.resolve();if(this._state===c2.default.CONNECTING)return this._connectionManager.awaitConnection();if(!this._url)return Promise.reject(new Ns.ConnectionError("Cannot connect because no server was specified"));if(this._ws)return Promise.reject(new Ns.RippleError("Websocket connection never cleaned up.",{state:this._state}));let e=setTimeout(()=>{this._onConnectionFailed(new Ns.ConnectionError(`Error: connect() timed out after ${this._config.connectionTimeout} ms. If your internet connection is working, the rippled server may be blocked or inaccessible. You can also try setting the 'connectionTimeout' option in the RippleAPI constructor.`))},this._config.connectionTimeout);return this._ws=But(this._url,this._config),this._ws.on("error",this._onConnectionFailed),this._ws.on("error",()=>clearTimeout(e)),this._ws.on("close",this._onConnectionFailed),this._ws.on("close",()=>clearTimeout(e)),this._ws.once("open",()=>Pl(this,void 0,void 0,function*(){this._ws.removeAllListeners(),clearTimeout(e),this._ws.on("message",r=>this._onMessage(r)),this._ws.on("error",r=>this.emit("error","websocket",r.message,r)),this._ws.once("close",r=>{if(this._clearHeartbeatInterval(),this._requestManager.rejectAll(new Ns.DisconnectedError("websocket was closed")),this._ws.removeAllListeners(),this._ws=null,this.emit("disconnected",r),r!==B2e){let i=this._retryConnectionBackoff.duration();this._trace("reconnect",`Retrying connection in ${i}ms.`),this.emit("reconnecting",this._retryConnectionBackoff.attempts),this._reconnectTimeoutID=setTimeout(()=>{this.reconnect().catch(n=>{this.emit("error","reconnect",n.message,n)})},i)}});try{this._retryConnectionBackoff.reset(),yield this._subscribeToLedger(),this._startHeartbeatInterval(),this._connectionManager.resolveAllAwaiting(),this.emit("connected")}catch(r){this._connectionManager.rejectAllAwaiting(r),yield this.disconnect().catch(()=>{})}})),this._connectionManager.awaitConnection()}disconnect(){return clearTimeout(this._reconnectTimeoutID),this._reconnectTimeoutID=null,this._state===c2.default.CLOSED||!this._ws?Promise.resolve(void 0):new Promise(e=>{this._ws.once("close",r=>e(r)),this._state!==c2.default.CLOSING&&this._ws.close(B2e)})}reconnect(){return Pl(this,void 0,void 0,function*(){this.emit("reconnect"),yield this.disconnect(),yield this.connect()})}getFeeBase(){return Pl(this,void 0,void 0,function*(){return yield this._waitForReady(),this._ledger.feeBase})}getFeeRef(){return Pl(this,void 0,void 0,function*(){return yield this._waitForReady(),this._ledger.feeRef})}getLedgerVersion(){return Pl(this,void 0,void 0,function*(){return yield this._waitForReady(),this._ledger.latestVersion})}getReserveBase(){return Pl(this,void 0,void 0,function*(){return yield this._waitForReady(),this._ledger.reserveBase})}hasLedgerVersions(e,r){return Pl(this,void 0,void 0,function*(){return r?(yield this._waitForReady(),this._ledger.hasVersions(e,r)):this.hasLedgerVersion(e)})}hasLedgerVersion(e){return Pl(this,void 0,void 0,function*(){return yield this._waitForReady(),this._ledger.hasVersion(e)})}request(e,r){return Pl(this,void 0,void 0,function*(){if(!this._shouldBeConnected)throw new Ns.NotConnectedError;let[i,n,a]=this._requestManager.createRequest(e,r||this._config.timeout);return this._trace("send",n),Fut(this._ws,n).catch(s=>{this._requestManager.reject(i,s)}),a})}getUrl(){return this._url}};lo.Connection=GD});var Ot=x(bi=>{"use strict";var Dut=bi&&bi.__createBinding||(Object.create?function(t,e,r,i){i===void 0&&(i=r),Object.defineProperty(t,i,{enumerable:!0,get:function(){return e[r]}})}:function(t,e,r,i){i===void 0&&(i=r),t[i]=e[r]}),qut=bi&&bi.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),TE=bi&&bi.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var r in t)r!=="default"&&Object.hasOwnProperty.call(t,r)&&Dut(e,t,r);return qut(e,t),e};Object.defineProperty(bi,"__esModule",{value:!0});bi.serverInfo=bi.validate=bi.errors=bi.constants=bi.ensureClassicAddress=void 0;var Lut=TE(Ahe());bi.constants=Lut;var Uut=TE(Ic());bi.errors=Uut;var jut=TE(E2e());bi.validate=jut;var Vut=TE(ND());bi.serverInfo=Vut;var q2e=uo();function Hut(t){if(q2e.isValidXAddress(t)){let{classicAddress:e,tag:r}=q2e.xAddressToClassicAddress(t);if(r!==!1)throw new Error("This command does not support the use of a tag. Use an address without a tag.");return e}else return t}bi.ensureClassicAddress=Hut;var d2=c_();Object.defineProperty(bi,"dropsToXrp",{enumerable:!0,get:function(){return d2.dropsToXrp}});Object.defineProperty(bi,"xrpToDrops",{enumerable:!0,get:function(){return d2.xrpToDrops}});Object.defineProperty(bi,"toRippledAmount",{enumerable:!0,get:function(){return d2.toRippledAmount}});Object.defineProperty(bi,"removeUndefined",{enumerable:!0,get:function(){return d2.removeUndefined}});Object.defineProperty(bi,"convertKeysFromSnakeCaseToCamelCase",{enumerable:!0,get:function(){return d2.convertKeysFromSnakeCaseToCamelCase}});Object.defineProperty(bi,"iso8601ToRippleTime",{enumerable:!0,get:function(){return d2.iso8601ToRippleTime}});Object.defineProperty(bi,"rippleTimeToISO8601",{enumerable:!0,get:function(){return d2.rippleTimeToISO8601}});var zut=D2e();Object.defineProperty(bi,"Connection",{enumerable:!0,get:function(){return zut.Connection}});var Gut=iD();Object.defineProperty(bi,"txFlags",{enumerable:!0,get:function(){return Gut.txFlags}})});var U2e=x(qn=>{"use strict";var Jut=qn&&qn.__createBinding||(Object.create?function(t,e,r,i){i===void 0&&(i=r),Object.defineProperty(t,i,{enumerable:!0,get:function(){return e[r]}})}:function(t,e,r,i){i===void 0&&(i=r),t[i]=e[r]}),Xut=qn&&qn.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),Kut=qn&&qn.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var r in t)r!=="default"&&Object.hasOwnProperty.call(t,r)&&Jut(e,t,r);return Xut(e,t),e},L2e=qn&&qn.__awaiter||function(t,e,r,i){function n(a){return a instanceof r?a:new r(function(s){s(a)})}return new(r||(r=Promise))(function(a,s){function o(f){try{u(i.next(f))}catch(d){s(d)}}function c(f){try{u(i.throw(f))}catch(d){s(d)}}function u(f){f.done?a(f.value):n(f.value).then(o,c)}u((i=i.apply(t,e||[])).next())})};Object.defineProperty(qn,"__esModule",{value:!0});qn.formatLedgerClose=qn.getLedgerVersion=qn.isConnected=qn.disconnect=qn.connect=void 0;var AE=Kut(Ot());function Wut(){return this.connection.isConnected()}qn.isConnected=Wut;function Zut(){return this.connection.getLedgerVersion()}qn.getLedgerVersion=Zut;function $ut(){return L2e(this,void 0,void 0,function*(){return this.connection.connect()})}qn.connect=$ut;function Qut(){return L2e(this,void 0,void 0,function*(){yield this.connection.disconnect()})}qn.disconnect=Qut;function Yut(t){return{baseFeeXRP:AE.dropsToXrp(t.fee_base),ledgerHash:t.ledger_hash,ledgerVersion:t.ledger_index,ledgerTimestamp:AE.rippleTimeToISO8601(t.ledger_time),reserveBaseXRP:AE.dropsToXrp(t.reserve_base),reserveIncrementXRP:AE.dropsToXrp(t.reserve_inc),transactionCount:t.txn_count,validatedLedgerVersions:t.validated_ledgers}}qn.formatLedgerClose=Yut});var mp=x(fi=>{"use strict";var ect=fi&&fi.__createBinding||(Object.create?function(t,e,r,i){i===void 0&&(i=r),Object.defineProperty(t,i,{enumerable:!0,get:function(){return e[r]}})}:function(t,e,r,i){i===void 0&&(i=r),t[i]=e[r]}),tct=fi&&fi.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),XD=fi&&fi.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var r in t)r!=="default"&&Object.hasOwnProperty.call(t,r)&&ect(e,t,r);return tct(e,t),e};Object.defineProperty(fi,"__esModule",{value:!0});fi.common=fi.clamp=fi.isPendingLedgerVersion=fi.hasCompleteLedgerRange=fi.getRecursive=fi.renameCounterpartyToIssuerInOrder=fi.renameCounterpartyToIssuer=fi.compareTransactions=fi.ensureLedgerVersion=fi.getXRPBalance=void 0;var rct=XD(Vi()),ict=XD(require("assert")),j2e=XD(Ot());fi.common=j2e;function nct(t,e,r){return ict.ok(e<=r,"Illegal clamp bounds"),Math.min(Math.max(t,e),r)}fi.clamp=nct;function act(t,e,r){let i={command:"account_info",account:e,ledger_index:r};return t.request(i).then(n=>j2e.dropsToXrp(n.account_data.Balance))}fi.getXRPBalance=act;function V2e(t,e,r){return t(e,r).then(i=>{let n=r-i.results.length;return n>0&&i.marker!=null?V2e(t,i.marker,n).then(a=>i.results.concat(a)):i.results.slice(0,r)})}function sct(t,e){return V2e(t,void 0,e||1/0)}fi.getRecursive=sct;function JD(t){let e=t.counterparty!=null?t.counterparty:t.issuer!=null?t.issuer:void 0,r=Object.assign({},t,{issuer:e});return delete r.counterparty,r}fi.renameCounterpartyToIssuer=JD;function oct(t){let e=JD(t.taker_gets),r=JD(t.taker_pays),i={taker_gets:e,taker_pays:r};return Object.assign({},t,rct.omitBy(i,n=>n==null))}fi.renameCounterpartyToIssuerInOrder=oct;function uct(t){return t===0?0:t>0?1:-1}function cct(t,e){return!t.outcome||!e.outcome?0:t.outcome.ledgerVersion===e.outcome.ledgerVersion?uct(t.outcome.indexInLedger-e.outcome.indexInLedger):t.outcome.ledgerVersionr<(e||0))}fi.isPendingLedgerVersion=lct;function fct(t){return Boolean(t)&&t.ledgerVersion!=null&&t.ledgerVersion!==null?Promise.resolve(t):this.getLedgerVersion().then(e=>Object.assign({},t,{ledgerVersion:e}))}fi.ensureLedgerVersion=fct});var Yv=x((GDt,G2e)=>{"use strict";var p_=Vi(),pct=Yr();function H2e(t){return t.dividedBy(1e6)}function hct(t){var e=Object.keys(t)[0],r=t[e];return Object.assign({},r,{diffType:e,entryType:r.LedgerEntryType,ledgerIndex:r.LedgerIndex,newFields:r.NewFields||{},finalFields:r.FinalFields||{},previousFields:r.PreviousFields||{}})}function z2e(t){return t.AffectedNodes?t.AffectedNodes.map(hct):[]}function mct(t){if(t!==void 0)return typeof t=="string"?{currency:"XRP",value:H2e(new pct(t)).toString()}:{currency:t.currency,counterparty:t.issuer,value:t.value}}function gct(t){var e=["Account","Owner","Destination","Issuer","Target"];return p_.includes(e,t)}function yct(t){var e=["LowLimit","HighLimit","TakerPays","TakerGets"];return p_.includes(e,t)}function vct(t){var e=[];return p_.forEach(z2e(t),function(r){var i=r.diffType==="CreatedNode"?r.newFields:r.finalFields;p_.forEach(i,function(n,a){gct(a)?e.push(n):yct(a)&&n.issuer&&e.push(n.issuer)})}),p_.uniq(e)}G2e.exports={dropsToXRP:H2e,normalizeNodes:z2e,parseCurrencyAmount:mct,getAffectedAccounts:vct}});var WD=x((JDt,KD)=>{"use strict";var e6=Vi(),J2e=Yr(),bct=Yv().normalizeNodes,_ct=Yv().dropsToXRP;function wct(t){var e=e6.groupBy(t,function(r){return r.address});return e6.mapValues(e,function(r){return e6.map(r,function(i){return i.balance})})}function h_(t){return new J2e(t.value||t)}function xct(t){var e=null;return t.newFields.Balance?e=h_(t.newFields.Balance):t.previousFields.Balance&&t.finalFields.Balance&&(e=h_(t.finalFields.Balance).minus(h_(t.previousFields.Balance))),e===null||e.isZero()?null:e}function Sct(t){return t.newFields.Balance?h_(t.newFields.Balance):t.finalFields.Balance?h_(t.finalFields.Balance):null}function Ect(t,e){var r=e(t);return r===null?null:{address:t.finalFields.Account||t.newFields.Account,balance:{counterparty:"",currency:"XRP",value:_ct(r).toString()}}}function Tct(t){var e=new J2e(t.balance.value).negated();return{address:t.balance.counterparty,balance:{counterparty:t.address,currency:t.balance.currency,value:e.toString()}}}function Act(t,e){var r=e(t);if(r===null)return null;var i=e6.isEmpty(t.newFields)?t.finalFields:t.newFields,n={address:i.LowLimit.issuer,balance:{counterparty:i.HighLimit.issuer,currency:i.Balance.currency,value:r.toString()}};return[n,Tct(n)]}function X2e(t,e){var r=bct(t).map(function(i){return i.entryType==="AccountRoot"?[Ect(i,e)]:i.entryType==="RippleState"?Act(i,e):[]});return wct(e6.compact(e6.flatten(r)))}function Pct(t){return X2e(t,xct)}function Oct(t){return X2e(t,Sct)}KD.exports.parseBalanceChanges=Pct;KD.exports.parseFinalBalances=Oct});var W2e=x((XDt,K2e)=>{"use strict";var Rct=require("assert"),ZD=Yr();function Mct(t,e,r){var i=r==="XRP"?-6:0,n=e==="XRP"?-6:0,a=i-n;return a===0?new ZD(t).toString():new ZD(t).shiftedBy(a).toString()}function Cct(t,e,r){Rct(t.length===16);var i=new ZD(t.substring(2),16),n=parseInt(t.substring(0,2),16)-100,a=i.toString()+"e"+n.toString();return Mct(a,e,r)}K2e.exports=Cct});var ege=x(Y2e=>{"use strict";var t6=Vi(),m_=Yv(),Ict=Yr(),Z2e=Ict.clone({DECIMAL_PLACES:40}),Nct=W2e(),kct=131072;function Bct(t){return t6.omitBy(t,t6.isUndefined)}function Fct(t){var e=t.taker_gets,r=t.taker_pays,i=t.sell?"sell":"buy",n=i==="buy"?r:e,a=i==="buy"?e:r;return Bct({direction:i,quantity:n,totalPrice:a,sequence:t.sequence,status:t.status,makerExchangeRate:t.quality,expirationTime:t.expiration})}function Dct(t){return(t+946684800)*1e3}function qct(t){var e=t.finalFields.Expiration||t.newFields.Expiration;if(e!==void 0)return new Date(Dct(e)).toISOString()}function Lct(t){var e=t.finalFields.TakerGets||t.newFields.TakerGets,r=t.finalFields.TakerPays||t.newFields.TakerPays,i=e.currency||"XRP",n=r.currency||"XRP",a=t.finalFields.BookDirectory||t.newFields.BookDirectory,s=a.substring(a.length-16);return Nct(s,i,n)}function Q2e(t){if(t.diffType==="CreatedNode")return"created";if(t.diffType==="ModifiedNode")return"partially-filled";if(t.diffType==="DeletedNode")return t.previousFields.hasOwnProperty("TakerPays")?"filled":"cancelled"}function Uct(t,e){if(e){var r=new Z2e(t.value),i=new Z2e(e.value);return r.minus(i).abs().toString()}return"0"}function $2e(t,e){var r=Q2e(t);if(r==="cancelled")return m_.parseCurrencyAmount(t.finalFields[e]);if(r==="created")return m_.parseCurrencyAmount(t.newFields[e]);var i=m_.parseCurrencyAmount(t.finalFields[e]),n=m_.parseCurrencyAmount(t.previousFields[e]),a=Uct(i,n);return t6.assign({},i,{value:a})}function jct(t){var e=Fct({taker_pays:$2e(t,"TakerPays"),taker_gets:$2e(t,"TakerGets"),sell:(t.finalFields.Flags&kct)!==0,sequence:t.finalFields.Sequence||t.newFields.Sequence,status:Q2e(t),quality:Lct(t),expiration:qct(t)});return Object.defineProperty(e,"account",{value:t.finalFields.Account||t.newFields.Account}),e}function Vct(t){return t6.groupBy(t,function(e){return e.account})}Y2e.parseOrderbookChanges=function(e){var r=m_.normalizeNodes(e),i=t6.map(t6.filter(r,function(n){return n.entryType==="Offer"}),jct);return Vct(i)}});var rge=x((WDt,tge)=>{"use strict";var Hct=Yv().normalizeNodes,r6=Yr();function zct(t){if(t.diffType==="CreatedNode")return"created";if(t.diffType==="ModifiedNode")return"modified";if(t.diffType==="DeletedNode")return"deleted"}function Gct(t){let e=t.diffType==="CreatedNode"?t.newFields:t.finalFields,r=t.previousFields||{},i={status:zct(t),channelId:t.ledgerIndex,source:e.Account,destination:e.Destination,channelAmountDrops:new r6(e.Amount||0).toString(10),channelBalanceDrops:new r6(e.Balance||0).toString(10)};return r.Amount&&(i.channelAmountChangeDrops=new r6(e.Amount).minus(new r6(r.Amount||0)).toString(10)),r.Balance&&(i.channelBalanceChangeDrops=new r6(e.Balance).minus(new r6(r.Balance||0)).toString(10)),t.PreviousTxnID&&(i.previousTxnId=t.PreviousTxnID),i}function Jct(t){let e=Hct(t).filter(r=>r.entryType==="PayChannel");return e.length===1?Gct(e[0]):void 0}tge.exports.parseChannelChanges=Jct});var ige=x((ZDt,i6)=>{"use strict";i6.exports.parseBalanceChanges=WD().parseBalanceChanges;i6.exports.parseFinalBalances=WD().parseFinalBalances;i6.exports.parseOrderbookChanges=ege().parseOrderbookChanges;i6.exports.getAffectedAccounts=Yv().getAffectedAccounts;i6.exports.parseChannelChanges=rge().parseChannelChanges});var Go=x(gp=>{"use strict";var Xct=gp&&gp.__createBinding||(Object.create?function(t,e,r,i){i===void 0&&(i=r),Object.defineProperty(t,i,{enumerable:!0,get:function(){return e[r]}})}:function(t,e,r,i){i===void 0&&(i=r),t[i]=e[r]}),Kct=gp&&gp.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),Wct=gp&&gp.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var r in t)r!=="default"&&Object.hasOwnProperty.call(t,r)&&Xct(e,t,r);return Kct(e,t),e};Object.defineProperty(gp,"__esModule",{value:!0});var Zct=Wct(Ot());function $ct(t){return typeof t=="string"?{currency:"XRP",value:Zct.dropsToXrp(t)}:{currency:t.currency,value:t.value,counterparty:t.issuer}}gp.default=$ct});var Bi=x(Hi=>{"use strict";var Qct=Hi&&Hi.__createBinding||(Object.create?function(t,e,r,i){i===void 0&&(i=r),Object.defineProperty(t,i,{enumerable:!0,get:function(){return e[r]}})}:function(t,e,r,i){i===void 0&&(i=r),t[i]=e[r]}),Yct=Hi&&Hi.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),edt=Hi&&Hi.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var r in t)r!=="default"&&Object.hasOwnProperty.call(t,r)&&Qct(e,t,r);return Yct(e,t),e},QD=Hi&&Hi.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Hi,"__esModule",{value:!0});Hi.isPartialPayment=Hi.adjustQualityForXRP=Hi.parseTimestamp=Hi.hexToString=Hi.parseMemos=Hi.parseOutcome=Hi.parseQuality=void 0;var $D=QD(ige()),nge=QD(Yr()),g_=edt(Ot()),PE=QD(Go());function tdt(t,e,r){let a=(r==="XRP"?-6:0)-(e==="XRP"?-6:0);return a===0?t:new nge.default(t).shiftedBy(a).toString()}Hi.adjustQualityForXRP=tdt;function rdt(t){if(typeof t=="number")return new nge.default(t).shiftedBy(-9).toNumber()}Hi.parseQuality=rdt;function age(t){if(typeof t=="number")return g_.rippleTimeToISO8601(t)}Hi.parseTimestamp=age;function sge(t){t.counterparty===""&&delete t.counterparty}function idt(t){Object.entries(t).forEach(([e,r])=>{r.forEach(sge)})}function ndt(t){Object.entries(t).forEach(([e,r])=>{r.forEach(i=>{Object.entries(i).forEach(sge)})})}function oge(t){return(t.Flags&g_.txFlags.Payment.PartialPayment)!==0}Hi.isPartialPayment=oge;function adt(t){if(!(t.TransactionType!=="Payment"||t.meta.TransactionResult!=="tesSUCCESS")&&!(t.meta.delivered_amount&&t.meta.delivered_amount==="unavailable")){if(t.meta.delivered_amount)return PE.default(t.meta.delivered_amount);if(t.meta.DeliveredAmount)return PE.default(t.meta.DeliveredAmount);if(t.Amount&&!oge(t)||t.Amount&&t.ledger_index>4594094)return PE.default(t.Amount)}}function sdt(t){let e=t.meta||t.metaData;if(!e)return;let r=$D.default.parseBalanceChanges(e),i=$D.default.parseOrderbookChanges(e),n=$D.default.parseChannelChanges(e);return idt(r),ndt(i),g_.removeUndefined({result:t.meta.TransactionResult,timestamp:age(t.date),fee:g_.dropsToXrp(t.Fee),balanceChanges:r,orderbookChanges:i,channelChanges:n,ledgerVersion:t.ledger_index,indexInLedger:t.meta.TransactionIndex,deliveredAmount:adt(t)})}Hi.parseOutcome=sdt;function OE(t){return t?Buffer.from(t,"hex").toString("utf-8"):void 0}Hi.hexToString=OE;function odt(t){if(!(!Array.isArray(t.Memos)||t.Memos.length===0))return t.Memos.map(e=>g_.removeUndefined({type:e.Memo.parsed_memo_type||OE(e.Memo.MemoType),format:e.Memo.parsed_memo_format||OE(e.Memo.MemoFormat),data:e.Memo.parsed_memo_data||OE(e.Memo.MemoData)}))}Hi.parseMemos=odt});var YD=x(y_=>{"use strict";var udt=y_&&y_.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(y_,"__esModule",{value:!0});var cdt=udt(Yr()),ddt=Ot(),uge=ddt.constants.AccountFields;function ldt(t,e){return t.encoding==="hex"&&!t.length?Buffer.from(e,"hex").toString("ascii"):t.shift?new cdt.default(e).shiftedBy(-t.shift).toNumber():e}function fdt(t){let e={};for(let r in uge){let i=t[r];if(i!=null){let n=uge[r];e[n.name]=ldt(n,i)}}return t.RegularKey&&(e.regularKey=t.RegularKey),t.signer_lists&&t.signer_lists.length===1&&(e.signers={},t.signer_lists[0].SignerQuorum&&(e.signers.threshold=t.signer_lists[0].SignerQuorum),t.signer_lists[0].SignerEntries&&(e.signers.weights=t.signer_lists[0].SignerEntries.map(r=>({address:r.SignerEntry.Account,weight:r.SignerEntry.SignerWeight})))),e}y_.default=fdt});var lge=x(Bc=>{"use strict";var pdt=Bc&&Bc.__createBinding||(Object.create?function(t,e,r,i){i===void 0&&(i=r),Object.defineProperty(t,i,{enumerable:!0,get:function(){return e[r]}})}:function(t,e,r,i){i===void 0&&(i=r),t[i]=e[r]}),hdt=Bc&&Bc.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),cge=Bc&&Bc.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var r in t)r!=="default"&&Object.hasOwnProperty.call(t,r)&&pdt(e,t,r);return hdt(e,t),e},mdt=Bc&&Bc.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Bc,"__esModule",{value:!0});var RE=cge(Vi()),dge=cge(require("assert")),gdt=Ot(),ydt=gdt.constants.AccountFlags,vdt=mdt(YD());function bdt(t){let e=t.meta.AffectedNodes.filter(r=>{var i;return((i=r.ModifiedNode)===null||i===void 0?void 0:i.LedgerEntryType)==="AccountRoot"});return dge.ok(e.length===1),e[0].ModifiedNode}function _dt(t){let e={};if(t.TransactionType!=="AccountSet")return e;let r=bdt(t),i=RE.get(r.PreviousFields,"Flags"),n=RE.get(r.FinalFields,"Flags");if(i!=null&&n!=null){let o=i^n,c=n&o,u=i&o;Object.entries(ydt).forEach(f=>{let[d,p]=f;c&p?e[d]=!0:u&p&&(e[d]=!1)})}let a=RE.get(r.PreviousFields,"AccountTxnID"),s=RE.get(r.FinalFields,"AccountTxnID");return s&&!a?e.enableTransactionIDTracking=!0:a&&!s&&(e.enableTransactionIDTracking=!1),e}function wdt(t){let e=t.TransactionType;return dge.ok(e==="AccountSet"||e==="SetRegularKey"||e==="SignerListSet"),Object.assign({},_dt(t),vdt.default(t))}Bc.default=wdt});var fge=x(yp=>{"use strict";var xdt=yp&&yp.__createBinding||(Object.create?function(t,e,r,i){i===void 0&&(i=r),Object.defineProperty(t,i,{enumerable:!0,get:function(){return e[r]}})}:function(t,e,r,i){i===void 0&&(i=r),t[i]=e[r]}),Sdt=yp&&yp.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),Edt=yp&&yp.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var r in t)r!=="default"&&Object.hasOwnProperty.call(t,r)&&xdt(e,t,r);return Sdt(e,t),e};Object.defineProperty(yp,"__esModule",{value:!0});var Tdt=Edt(require("assert")),Adt=Ot(),Pdt=uo(),Odt=Bi();function Rdt(t){return Tdt.ok(t.TransactionType==="AccountDelete"),Adt.removeUndefined({memos:Odt.parseMemos(t),destination:t.Destination,destinationTag:t.DestinationTag,destinationXAddress:Pdt.classicAddressToXAddress(t.Destination,t.DestinationTag==null?!1:t.DestinationTag,!1)})}yp.default=Rdt});var pge=x(vp=>{"use strict";var Mdt=vp&&vp.__createBinding||(Object.create?function(t,e,r,i){i===void 0&&(i=r),Object.defineProperty(t,i,{enumerable:!0,get:function(){return e[r]}})}:function(t,e,r,i){i===void 0&&(i=r),t[i]=e[r]}),Cdt=vp&&vp.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),Idt=vp&&vp.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var r in t)r!=="default"&&Object.hasOwnProperty.call(t,r)&&Mdt(e,t,r);return Cdt(e,t),e};Object.defineProperty(vp,"__esModule",{value:!0});var Ndt=Idt(require("assert")),kdt=Ot(),Bdt=Bi();function Fdt(t){return Ndt.ok(t.TransactionType==="CheckCancel"),kdt.removeUndefined({memos:Bdt.parseMemos(t),checkID:t.CheckID})}vp.default=Fdt});var mge=x(Fc=>{"use strict";var Ddt=Fc&&Fc.__createBinding||(Object.create?function(t,e,r,i){i===void 0&&(i=r),Object.defineProperty(t,i,{enumerable:!0,get:function(){return e[r]}})}:function(t,e,r,i){i===void 0&&(i=r),t[i]=e[r]}),qdt=Fc&&Fc.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),Ldt=Fc&&Fc.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var r in t)r!=="default"&&Object.hasOwnProperty.call(t,r)&&Ddt(e,t,r);return qdt(e,t),e},Udt=Fc&&Fc.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Fc,"__esModule",{value:!0});var jdt=Ldt(require("assert")),Vdt=Ot(),hge=Udt(Go()),Hdt=Bi();function zdt(t){return jdt.ok(t.TransactionType==="CheckCash"),Vdt.removeUndefined({memos:Hdt.parseMemos(t),checkID:t.CheckID,amount:t.Amount&&hge.default(t.Amount),deliverMin:t.DeliverMin&&hge.default(t.DeliverMin)})}Fc.default=zdt});var gge=x(Dc=>{"use strict";var Gdt=Dc&&Dc.__createBinding||(Object.create?function(t,e,r,i){i===void 0&&(i=r),Object.defineProperty(t,i,{enumerable:!0,get:function(){return e[r]}})}:function(t,e,r,i){i===void 0&&(i=r),t[i]=e[r]}),Jdt=Dc&&Dc.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),Xdt=Dc&&Dc.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var r in t)r!=="default"&&Object.hasOwnProperty.call(t,r)&&Gdt(e,t,r);return Jdt(e,t),e},Kdt=Dc&&Dc.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Dc,"__esModule",{value:!0});var Wdt=Xdt(require("assert")),Zdt=Bi(),$dt=Ot(),Qdt=Kdt(Go()),Ydt=Bi();function elt(t){return Wdt.ok(t.TransactionType==="CheckCreate"),$dt.removeUndefined({memos:Ydt.parseMemos(t),destination:t.Destination,sendMax:Qdt.default(t.SendMax),destinationTag:t.DestinationTag,expiration:t.Expiration&&Zdt.parseTimestamp(t.Expiration),invoiceID:t.InvoiceID})}Dc.default=elt});var yge=x(bp=>{"use strict";var tlt=bp&&bp.__createBinding||(Object.create?function(t,e,r,i){i===void 0&&(i=r),Object.defineProperty(t,i,{enumerable:!0,get:function(){return e[r]}})}:function(t,e,r,i){i===void 0&&(i=r),t[i]=e[r]}),rlt=bp&&bp.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),ilt=bp&&bp.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var r in t)r!=="default"&&Object.hasOwnProperty.call(t,r)&&tlt(e,t,r);return rlt(e,t),e};Object.defineProperty(bp,"__esModule",{value:!0});var nlt=ilt(require("assert")),alt=Ot(),slt=Bi();function olt(t){return nlt.ok(t.TransactionType==="DepositPreauth"),alt.removeUndefined({memos:slt.parseMemos(t),authorize:t.Authorize,unauthorize:t.Unauthorize})}bp.default=olt});var vge=x(_p=>{"use strict";var ult=_p&&_p.__createBinding||(Object.create?function(t,e,r,i){i===void 0&&(i=r),Object.defineProperty(t,i,{enumerable:!0,get:function(){return e[r]}})}:function(t,e,r,i){i===void 0&&(i=r),t[i]=e[r]}),clt=_p&&_p.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),dlt=_p&&_p.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var r in t)r!=="default"&&Object.hasOwnProperty.call(t,r)&&ult(e,t,r);return clt(e,t),e};Object.defineProperty(_p,"__esModule",{value:!0});var llt=dlt(require("assert")),flt=Bi(),plt=Ot();function hlt(t){return llt.ok(t.TransactionType==="EscrowCancel"),plt.removeUndefined({memos:flt.parseMemos(t),owner:t.Owner,escrowSequence:t.OfferSequence})}_p.default=hlt});var bge=x(qc=>{"use strict";var mlt=qc&&qc.__createBinding||(Object.create?function(t,e,r,i){i===void 0&&(i=r),Object.defineProperty(t,i,{enumerable:!0,get:function(){return e[r]}})}:function(t,e,r,i){i===void 0&&(i=r),t[i]=e[r]}),glt=qc&&qc.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),ylt=qc&&qc.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var r in t)r!=="default"&&Object.hasOwnProperty.call(t,r)&&mlt(e,t,r);return glt(e,t),e},vlt=qc&&qc.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(qc,"__esModule",{value:!0});var blt=ylt(require("assert")),_lt=vlt(Go()),eq=Bi(),wlt=Ot();function xlt(t){return blt.ok(t.TransactionType==="EscrowCreate"),wlt.removeUndefined({amount:_lt.default(t.Amount).value,destination:t.Destination,memos:eq.parseMemos(t),condition:t.Condition,allowCancelAfter:eq.parseTimestamp(t.CancelAfter),allowExecuteAfter:eq.parseTimestamp(t.FinishAfter),sourceTag:t.SourceTag,destinationTag:t.DestinationTag})}qc.default=xlt});var _ge=x(wp=>{"use strict";var Slt=wp&&wp.__createBinding||(Object.create?function(t,e,r,i){i===void 0&&(i=r),Object.defineProperty(t,i,{enumerable:!0,get:function(){return e[r]}})}:function(t,e,r,i){i===void 0&&(i=r),t[i]=e[r]}),Elt=wp&&wp.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),Tlt=wp&&wp.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var r in t)r!=="default"&&Object.hasOwnProperty.call(t,r)&&Slt(e,t,r);return Elt(e,t),e};Object.defineProperty(wp,"__esModule",{value:!0});var Alt=Tlt(require("assert")),Plt=Bi(),Olt=Ot();function Rlt(t){return Alt.ok(t.TransactionType==="EscrowFinish"),Olt.removeUndefined({memos:Plt.parseMemos(t),owner:t.Owner,escrowSequence:t.OfferSequence,condition:t.Condition,fulfillment:t.Fulfillment})}wp.default=Rlt});var wge=x(xp=>{"use strict";var Mlt=xp&&xp.__createBinding||(Object.create?function(t,e,r,i){i===void 0&&(i=r),Object.defineProperty(t,i,{enumerable:!0,get:function(){return e[r]}})}:function(t,e,r,i){i===void 0&&(i=r),t[i]=e[r]}),Clt=xp&&xp.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),Ilt=xp&&xp.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var r in t)r!=="default"&&Object.hasOwnProperty.call(t,r)&&Mlt(e,t,r);return Clt(e,t),e};Object.defineProperty(xp,"__esModule",{value:!0});var Nlt=Ilt(require("assert")),klt=Bi();function Blt(t){return Nlt.ok(t.TransactionType==="OfferCancel"),{memos:klt.parseMemos(t),orderSequence:t.OfferSequence}}xp.default=Blt});var Ege=x(Lc=>{"use strict";var Flt=Lc&&Lc.__createBinding||(Object.create?function(t,e,r,i){i===void 0&&(i=r),Object.defineProperty(t,i,{enumerable:!0,get:function(){return e[r]}})}:function(t,e,r,i){i===void 0&&(i=r),t[i]=e[r]}),Dlt=Lc&&Lc.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),qlt=Lc&&Lc.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var r in t)r!=="default"&&Object.hasOwnProperty.call(t,r)&&Flt(e,t,r);return Dlt(e,t),e},Llt=Lc&&Lc.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Lc,"__esModule",{value:!0});var Ult=qlt(require("assert")),jlt=Bi(),Vlt=Bi(),xge=Llt(Go()),Sge=Ot(),ME=Sge.txFlags.OfferCreate;function Hlt(t){Ult.ok(t.TransactionType==="OfferCreate");let e=(t.Flags&ME.Sell)===0?"buy":"sell",r=xge.default(t.TakerGets),i=xge.default(t.TakerPays),n=e==="buy"?i:r,a=e==="buy"?r:i;return Sge.removeUndefined({memos:Vlt.parseMemos(t),direction:e,quantity:n,totalPrice:a,passive:(t.Flags&ME.Passive)!==0||void 0,immediateOrCancel:(t.Flags&ME.ImmediateOrCancel)!==0||void 0,fillOrKill:(t.Flags&ME.FillOrKill)!==0||void 0,expirationTime:jlt.parseTimestamp(t.Expiration)})}Lc.default=Hlt});var Age=x(Uc=>{"use strict";var zlt=Uc&&Uc.__createBinding||(Object.create?function(t,e,r,i){i===void 0&&(i=r),Object.defineProperty(t,i,{enumerable:!0,get:function(){return e[r]}})}:function(t,e,r,i){i===void 0&&(i=r),t[i]=e[r]}),Glt=Uc&&Uc.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),tq=Uc&&Uc.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var r in t)r!=="default"&&Object.hasOwnProperty.call(t,r)&&zlt(e,t,r);return Glt(e,t),e},Jlt=Uc&&Uc.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Uc,"__esModule",{value:!0});var Xlt=tq(Vi()),Klt=tq(require("assert")),Tge=tq(Bi()),v_=Ot(),Wlt=Jlt(Go());function Zlt(t){return(t.Flags&v_.txFlags.Payment.NoRippleDirect)!==0}function $lt(t){return(t.Flags&v_.txFlags.Payment.LimitQuality)!==0}function Qlt(t,e){return t.counterparty===e?Xlt.omit(t,"counterparty"):t}function Ylt(t){Klt.ok(t.TransactionType==="Payment");let e={address:t.Account,maxAmount:Qlt(Wlt.default(t.SendMax||t.Amount),t.Account),tag:t.SourceTag},r={address:t.Destination,tag:t.DestinationTag};return v_.removeUndefined({source:v_.removeUndefined(e),destination:v_.removeUndefined(r),memos:Tge.parseMemos(t),invoiceID:t.InvoiceID,paths:t.Paths?JSON.stringify(t.Paths):void 0,allowPartialPayment:Tge.isPartialPayment(t)||void 0,noDirectRipple:Zlt(t)||void 0,limitQuality:$lt(t)||void 0})}Uc.default=Ylt});var Mge=x(jc=>{"use strict";var eft=jc&&jc.__createBinding||(Object.create?function(t,e,r,i){i===void 0&&(i=r),Object.defineProperty(t,i,{enumerable:!0,get:function(){return e[r]}})}:function(t,e,r,i){i===void 0&&(i=r),t[i]=e[r]}),tft=jc&&jc.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),rft=jc&&jc.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var r in t)r!=="default"&&Object.hasOwnProperty.call(t,r)&&eft(e,t,r);return tft(e,t),e},ift=jc&&jc.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(jc,"__esModule",{value:!0});var nft=rft(require("assert")),Rge=Ot(),Pge=ift(Go()),aft=Bi(),Oge=Rge.txFlags.PaymentChannelClaim;function sft(t){return nft.ok(t.TransactionType==="PaymentChannelClaim"),Rge.removeUndefined({memos:aft.parseMemos(t),channel:t.Channel,balance:t.Balance&&Pge.default(t.Balance).value,amount:t.Amount&&Pge.default(t.Amount).value,signature:t.Signature,publicKey:t.PublicKey,renew:Boolean(t.Flags&Oge.Renew)||void 0,close:Boolean(t.Flags&Oge.Close)||void 0})}jc.default=sft});var Ige=x(Vc=>{"use strict";var oft=Vc&&Vc.__createBinding||(Object.create?function(t,e,r,i){i===void 0&&(i=r),Object.defineProperty(t,i,{enumerable:!0,get:function(){return e[r]}})}:function(t,e,r,i){i===void 0&&(i=r),t[i]=e[r]}),uft=Vc&&Vc.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),cft=Vc&&Vc.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var r in t)r!=="default"&&Object.hasOwnProperty.call(t,r)&&oft(e,t,r);return uft(e,t),e},dft=Vc&&Vc.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Vc,"__esModule",{value:!0});var lft=cft(require("assert")),Cge=Bi(),fft=Ot(),pft=dft(Go());function hft(t){return lft.ok(t.TransactionType==="PaymentChannelCreate"),fft.removeUndefined({memos:Cge.parseMemos(t),amount:pft.default(t.Amount).value,destination:t.Destination,settleDelay:t.SettleDelay,publicKey:t.PublicKey,cancelAfter:t.CancelAfter&&Cge.parseTimestamp(t.CancelAfter),sourceTag:t.SourceTag,destinationTag:t.DestinationTag})}Vc.default=hft});var kge=x(Hc=>{"use strict";var mft=Hc&&Hc.__createBinding||(Object.create?function(t,e,r,i){i===void 0&&(i=r),Object.defineProperty(t,i,{enumerable:!0,get:function(){return e[r]}})}:function(t,e,r,i){i===void 0&&(i=r),t[i]=e[r]}),gft=Hc&&Hc.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),yft=Hc&&Hc.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var r in t)r!=="default"&&Object.hasOwnProperty.call(t,r)&&mft(e,t,r);return gft(e,t),e},vft=Hc&&Hc.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Hc,"__esModule",{value:!0});var bft=yft(require("assert")),Nge=Bi(),_ft=Ot(),wft=vft(Go());function xft(t){return bft.ok(t.TransactionType==="PaymentChannelFund"),_ft.removeUndefined({memos:Nge.parseMemos(t),channel:t.Channel,amount:wft.default(t.Amount).value,expiration:t.Expiration&&Nge.parseTimestamp(t.Expiration)})}Hc.default=xft});var Bge=x(Sp=>{"use strict";var Sft=Sp&&Sp.__createBinding||(Object.create?function(t,e,r,i){i===void 0&&(i=r),Object.defineProperty(t,i,{enumerable:!0,get:function(){return e[r]}})}:function(t,e,r,i){i===void 0&&(i=r),t[i]=e[r]}),Eft=Sp&&Sp.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),Tft=Sp&&Sp.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var r in t)r!=="default"&&Object.hasOwnProperty.call(t,r)&&Sft(e,t,r);return Eft(e,t),e};Object.defineProperty(Sp,"__esModule",{value:!0});var Aft=Tft(require("assert")),Pft=Ot(),Oft=Bi();function Rft(t){return Aft.ok(t.TransactionType==="TicketCreate"),Pft.removeUndefined({memos:Oft.parseMemos(t),ticketCount:t.TicketCount})}Sp.default=Rft});var Dge=x(Ep=>{"use strict";var Mft=Ep&&Ep.__createBinding||(Object.create?function(t,e,r,i){i===void 0&&(i=r),Object.defineProperty(t,i,{enumerable:!0,get:function(){return e[r]}})}:function(t,e,r,i){i===void 0&&(i=r),t[i]=e[r]}),Cft=Ep&&Ep.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),Ift=Ep&&Ep.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var r in t)r!=="default"&&Object.hasOwnProperty.call(t,r)&&Mft(e,t,r);return Cft(e,t),e};Object.defineProperty(Ep,"__esModule",{value:!0});var Nft=Ift(require("assert")),rq=Bi(),Fge=Ot(),b_=Fge.txFlags.TrustSet;function iq(t,e,r){if(t&e)return!0;if(t&r)return!1}function kft(t){return Nft.ok(t.TransactionType==="TrustSet"),Fge.removeUndefined({limit:t.LimitAmount.value,currency:t.LimitAmount.currency,counterparty:t.LimitAmount.issuer,memos:rq.parseMemos(t),qualityIn:rq.parseQuality(t.QualityIn),qualityOut:rq.parseQuality(t.QualityOut),ripplingDisabled:iq(t.Flags,b_.SetNoRipple,b_.ClearNoRipple),frozen:iq(t.Flags,b_.SetFreeze,b_.ClearFreeze),authorized:iq(t.Flags,b_.SetAuth,0)})}Ep.default=kft});var qge=x(nq=>{"use strict";Object.defineProperty(nq,"__esModule",{value:!0});function Bft(t){return{amendment:t.Amendment}}nq.default=Bft});var Lge=x(__=>{"use strict";var Fft=__&&__.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(__,"__esModule",{value:!0});var Dft=Fft(Yr()),aq=Ot(),qft=Bi();function Lft(t){let e=new Dft.default(t.BaseFee,16).toString();return{memos:qft.parseMemos(t),baseFeeXRP:aq.dropsToXrp(e),referenceFeeUnits:t.ReferenceFeeUnits,reserveBaseXRP:aq.dropsToXrp(t.ReserveBase),reserveIncrementXRP:aq.dropsToXrp(t.ReserveIncrement)}}__.default=Lft});var CE=x(w_=>{"use strict";var Qn=w_&&w_.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(w_,"__esModule",{value:!0});var Uft=Bi(),sq=Ot(),jft=Qn(lge()),Vft=Qn(fge()),Hft=Qn(pge()),zft=Qn(mge()),Gft=Qn(gge()),Jft=Qn(yge()),Xft=Qn(vge()),Kft=Qn(bge()),Wft=Qn(_ge()),Zft=Qn(wge()),$ft=Qn(Ege()),Qft=Qn(Age()),Yft=Qn(Mge()),ept=Qn(Ige()),tpt=Qn(kge()),rpt=Qn(Bge()),ipt=Qn(Dge()),npt=Qn(qge()),apt=Qn(Lge());function spt(t){return{AccountSet:"settings",AccountDelete:"accountDelete",CheckCancel:"checkCancel",CheckCash:"checkCash",CheckCreate:"checkCreate",DepositPreauth:"depositPreauth",EscrowCancel:"escrowCancellation",EscrowCreate:"escrowCreation",EscrowFinish:"escrowExecution",OfferCancel:"orderCancellation",OfferCreate:"order",Payment:"payment",PaymentChannelClaim:"paymentChannelClaim",PaymentChannelCreate:"paymentChannelCreate",PaymentChannelFund:"paymentChannelFund",SetRegularKey:"settings",SignerListSet:"settings",TicketCreate:"ticketCreate",TrustSet:"trustline",EnableAmendment:"amendment",SetFee:"feeUpdate"}[t]||null}function opt(t,e){let r=spt(t.TransactionType),n={settings:jft.default,accountDelete:Vft.default,checkCancel:Hft.default,checkCash:zft.default,checkCreate:Gft.default,depositPreauth:Jft.default,escrowCancellation:Xft.default,escrowCreation:Kft.default,escrowExecution:Wft.default,orderCancellation:Zft.default,order:$ft.default,payment:Qft.default,paymentChannelClaim:Yft.default,paymentChannelCreate:ept.default,paymentChannelFund:tpt.default,ticketCreate:rpt.default,trustline:ipt.default,amendment:npt.default,feeUpdate:apt.default}[r],a=n?n(t):{UNAVAILABLE:"Unrecognized transaction type.",SEE_RAW_TRANSACTION:"Since this type is unrecognized, `rawTransaction` is included in this response."};n||(e=!0);let s=Uft.parseOutcome(t);return sq.removeUndefined({type:r,address:t.Account,sequence:t.Sequence,id:t.hash,specification:sq.removeUndefined(a),outcome:s?sq.removeUndefined(s):void 0,rawTransaction:e?JSON.stringify(t):void 0})}w_.default=opt});var uq=x(Jo=>{"use strict";var upt=Jo&&Jo.__createBinding||(Object.create?function(t,e,r,i){i===void 0&&(i=r),Object.defineProperty(t,i,{enumerable:!0,get:function(){return e[r]}})}:function(t,e,r,i){i===void 0&&(i=r),t[i]=e[r]}),cpt=Jo&&Jo.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),dpt=Jo&&Jo.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var r in t)r!=="default"&&Object.hasOwnProperty.call(t,r)&&upt(e,t,r);return cpt(e,t),e},lpt=Jo&&Jo.__awaiter||function(t,e,r,i){function n(a){return a instanceof r?a:new r(function(s){s(a)})}return new(r||(r=Promise))(function(a,s){function o(f){try{u(i.next(f))}catch(d){s(d)}}function c(f){try{u(i.throw(f))}catch(d){s(d)}}function u(f){f.done?a(f.value):n(f.value).then(o,c)}u((i=i.apply(t,e||[])).next())})},fpt=Jo&&Jo.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Jo,"__esModule",{value:!0});var oq=dpt(mp()),ppt=fpt(CE()),Ol=Ot();function hpt(t,e){if(e.date)return Promise.resolve(e);let r=e.ledger_index||e.LedgerSequence;if(!r)return new Promise(()=>{let n=new Ol.errors.NotFoundError("Transaction has not been validated yet; try again later");throw n.data={details:"(ledger_index and LedgerSequence not found in tx)"},n});let i={command:"ledger",ledger_index:r};return t.request(i).then(n=>{if(typeof n.ledger.close_time=="number")return Object.assign({date:n.ledger.close_time},e);throw new Ol.errors.UnexpectedError("Ledger missing close_time")}).catch(n=>{throw n instanceof Ol.errors.UnexpectedError?n:new Ol.errors.NotFoundError("Transaction ledger not found")})}function mpt(t,e){return(!e.minLedgerVersion||t.ledger_index>=e.minLedgerVersion)&&(!e.maxLedgerVersion||t.ledger_index<=e.maxLedgerVersion)}function gpt(t,e,r){let i=!1;(r.data&&r.data.error==="txnNotFound"||r.message==="txnNotFound")&&(i=!0);let n=i?new Ol.errors.NotFoundError("Transaction not found"):r;return n instanceof Ol.errors.NotFoundError?oq.hasCompleteLedgerRange(t,e.minLedgerVersion,e.maxLedgerVersion).then(a=>a?n:oq.isPendingLedgerVersion(t,e.maxLedgerVersion).then(s=>s?new Ol.errors.PendingLedgerVersionError:new Ol.errors.MissingLedgerHistoryError)):Promise.resolve(n)}function ypt(t,e){if(e.validated!==!0||!mpt(e,t))throw new Ol.errors.NotFoundError("Transaction not found");return ppt.default(e,t.includeRawTransaction)}function vpt(t,e={}){return lpt(this,void 0,void 0,function*(){Ol.validate.getTransaction({id:t,options:e});let r=yield oq.ensureLedgerVersion.call(this,e);try{let i=yield this.request("tx",{transaction:t,binary:!1}),n=yield hpt(this.connection,i);return ypt(r,n)}catch(i){throw yield gpt(this.connection,r,i)}})}Jo.default=vpt});var Uge=x((wqt,bpt)=>{bpt.exports={TYPES:{Validation:10003,Done:-1,Hash128:4,Blob:7,AccountID:8,Amount:6,Hash256:5,UInt8:16,Vector256:19,STObject:14,Unknown:-2,Transaction:10001,Hash160:17,PathSet:18,LedgerEntry:10002,UInt16:1,NotPresent:0,UInt64:3,UInt32:2,STArray:15},LEDGER_ENTRY_TYPES:{Any:-3,Child:-2,Invalid:-1,AccountRoot:97,DirectoryNode:100,RippleState:114,Ticket:84,SignerList:83,Offer:111,LedgerHashes:104,Amendments:102,FeeSettings:115,Escrow:117,PayChannel:120,DepositPreauth:112,Check:67,Nickname:110,Contract:99,NFTokenPage:80,NFTokenOffer:55,NegativeUNL:78},FIELDS:[["Generic",{nth:0,isVLEncoded:!1,isSerialized:!1,isSigningField:!1,type:"Unknown"}],["Invalid",{nth:-1,isVLEncoded:!1,isSerialized:!1,isSigningField:!1,type:"Unknown"}],["LedgerEntryType",{nth:1,isVLEncoded:!1,isSerialized:!0,isSigningField:!0,type:"UInt16"}],["TransactionType",{nth:2,isVLEncoded:!1,isSerialized:!0,isSigningField:!0,type:"UInt16"}],["SignerWeight",{nth:3,isVLEncoded:!1,isSerialized:!0,isSigningField:!0,type:"UInt16"}],["TransferFee",{nth:4,isVLEncoded:!1,isSerialized:!0,isSigningField:!0,type:"UInt16"}],["Flags",{nth:2,isVLEncoded:!1,isSerialized:!0,isSigningField:!0,type:"UInt32"}],["SourceTag",{nth:3,isVLEncoded:!1,isSerialized:!0,isSigningField:!0,type:"UInt32"}],["Sequence",{nth:4,isVLEncoded:!1,isSerialized:!0,isSigningField:!0,type:"UInt32"}],["PreviousTxnLgrSeq",{nth:5,isVLEncoded:!1,isSerialized:!0,isSigningField:!0,type:"UInt32"}],["LedgerSequence",{nth:6,isVLEncoded:!1,isSerialized:!0,isSigningField:!0,type:"UInt32"}],["CloseTime",{nth:7,isVLEncoded:!1,isSerialized:!0,isSigningField:!0,type:"UInt32"}],["ParentCloseTime",{nth:8,isVLEncoded:!1,isSerialized:!0,isSigningField:!0,type:"UInt32"}],["SigningTime",{nth:9,isVLEncoded:!1,isSerialized:!0,isSigningField:!0,type:"UInt32"}],["Expiration",{nth:10,isVLEncoded:!1,isSerialized:!0,isSigningField:!0,type:"UInt32"}],["TransferRate",{nth:11,isVLEncoded:!1,isSerialized:!0,isSigningField:!0,type:"UInt32"}],["WalletSize",{nth:12,isVLEncoded:!1,isSerialized:!0,isSigningField:!0,type:"UInt32"}],["OwnerCount",{nth:13,isVLEncoded:!1,isSerialized:!0,isSigningField:!0,type:"UInt32"}],["DestinationTag",{nth:14,isVLEncoded:!1,isSerialized:!0,isSigningField:!0,type:"UInt32"}],["HighQualityIn",{nth:16,isVLEncoded:!1,isSerialized:!0,isSigningField:!0,type:"UInt32"}],["HighQualityOut",{nth:17,isVLEncoded:!1,isSerialized:!0,isSigningField:!0,type:"UInt32"}],["LowQualityIn",{nth:18,isVLEncoded:!1,isSerialized:!0,isSigningField:!0,type:"UInt32"}],["LowQualityOut",{nth:19,isVLEncoded:!1,isSerialized:!0,isSigningField:!0,type:"UInt32"}],["QualityIn",{nth:20,isVLEncoded:!1,isSerialized:!0,isSigningField:!0,type:"UInt32"}],["QualityOut",{nth:21,isVLEncoded:!1,isSerialized:!0,isSigningField:!0,type:"UInt32"}],["StampEscrow",{nth:22,isVLEncoded:!1,isSerialized:!0,isSigningField:!0,type:"UInt32"}],["BondAmount",{nth:23,isVLEncoded:!1,isSerialized:!0,isSigningField:!0,type:"UInt32"}],["LoadFee",{nth:24,isVLEncoded:!1,isSerialized:!0,isSigningField:!0,type:"UInt32"}],["OfferSequence",{nth:25,isVLEncoded:!1,isSerialized:!0,isSigningField:!0,type:"UInt32"}],["FirstLedgerSequence",{nth:26,isVLEncoded:!1,isSerialized:!0,isSigningField:!0,type:"UInt32"}],["LastLedgerSequence",{nth:27,isVLEncoded:!1,isSerialized:!0,isSigningField:!0,type:"UInt32"}],["TransactionIndex",{nth:28,isVLEncoded:!1,isSerialized:!0,isSigningField:!0,type:"UInt32"}],["OperationLimit",{nth:29,isVLEncoded:!1,isSerialized:!0,isSigningField:!0,type:"UInt32"}],["ReferenceFeeUnits",{nth:30,isVLEncoded:!1,isSerialized:!0,isSigningField:!0,type:"UInt32"}],["ReserveBase",{nth:31,isVLEncoded:!1,isSerialized:!0,isSigningField:!0,type:"UInt32"}],["ReserveIncrement",{nth:32,isVLEncoded:!1,isSerialized:!0,isSigningField:!0,type:"UInt32"}],["SetFlag",{nth:33,isVLEncoded:!1,isSerialized:!0,isSigningField:!0,type:"UInt32"}],["ClearFlag",{nth:34,isVLEncoded:!1,isSerialized:!0,isSigningField:!0,type:"UInt32"}],["SignerQuorum",{nth:35,isVLEncoded:!1,isSerialized:!0,isSigningField:!0,type:"UInt32"}],["CancelAfter",{nth:36,isVLEncoded:!1,isSerialized:!0,isSigningField:!0,type:"UInt32"}],["FinishAfter",{nth:37,isVLEncoded:!1,isSerialized:!0,isSigningField:!0,type:"UInt32"}],["IndexNext",{nth:1,isVLEncoded:!1,isSerialized:!0,isSigningField:!0,type:"UInt64"}],["IndexPrevious",{nth:2,isVLEncoded:!1,isSerialized:!0,isSigningField:!0,type:"UInt64"}],["BookNode",{nth:3,isVLEncoded:!1,isSerialized:!0,isSigningField:!0,type:"UInt64"}],["OwnerNode",{nth:4,isVLEncoded:!1,isSerialized:!0,isSigningField:!0,type:"UInt64"}],["BaseFee",{nth:5,isVLEncoded:!1,isSerialized:!0,isSigningField:!0,type:"UInt64"}],["ExchangeRate",{nth:6,isVLEncoded:!1,isSerialized:!0,isSigningField:!0,type:"UInt64"}],["LowNode",{nth:7,isVLEncoded:!1,isSerialized:!0,isSigningField:!0,type:"UInt64"}],["HighNode",{nth:8,isVLEncoded:!1,isSerialized:!0,isSigningField:!0,type:"UInt64"}],["EmailHash",{nth:1,isVLEncoded:!1,isSerialized:!0,isSigningField:!0,type:"Hash128"}],["LedgerHash",{nth:1,isVLEncoded:!1,isSerialized:!0,isSigningField:!0,type:"Hash256"}],["ParentHash",{nth:2,isVLEncoded:!1,isSerialized:!0,isSigningField:!0,type:"Hash256"}],["TransactionHash",{nth:3,isVLEncoded:!1,isSerialized:!0,isSigningField:!0,type:"Hash256"}],["AccountHash",{nth:4,isVLEncoded:!1,isSerialized:!0,isSigningField:!0,type:"Hash256"}],["PreviousTxnID",{nth:5,isVLEncoded:!1,isSerialized:!0,isSigningField:!0,type:"Hash256"}],["LedgerIndex",{nth:6,isVLEncoded:!1,isSerialized:!0,isSigningField:!0,type:"Hash256"}],["WalletLocator",{nth:7,isVLEncoded:!1,isSerialized:!0,isSigningField:!0,type:"Hash256"}],["RootIndex",{nth:8,isVLEncoded:!1,isSerialized:!0,isSigningField:!0,type:"Hash256"}],["AccountTxnID",{nth:9,isVLEncoded:!1,isSerialized:!0,isSigningField:!0,type:"Hash256"}],["NFTokenID",{nth:10,isVLEncoded:!1,isSerialized:!0,isSigningField:!0,type:"Hash256"}],["BookDirectory",{nth:16,isVLEncoded:!1,isSerialized:!0,isSigningField:!0,type:"Hash256"}],["InvoiceID",{nth:17,isVLEncoded:!1,isSerialized:!0,isSigningField:!0,type:"Hash256"}],["Nickname",{nth:18,isVLEncoded:!1,isSerialized:!0,isSigningField:!0,type:"Hash256"}],["Amendment",{nth:19,isVLEncoded:!1,isSerialized:!0,isSigningField:!0,type:"Hash256"}],["TicketID",{nth:20,isVLEncoded:!1,isSerialized:!0,isSigningField:!0,type:"Hash256"}],["Digest",{nth:21,isVLEncoded:!1,isSerialized:!0,isSigningField:!0,type:"Hash256"}],["hash",{nth:257,isVLEncoded:!1,isSerialized:!1,isSigningField:!1,type:"Hash256"}],["index",{nth:258,isVLEncoded:!1,isSerialized:!1,isSigningField:!1,type:"Hash256"}],["Amount",{nth:1,isVLEncoded:!1,isSerialized:!0,isSigningField:!0,type:"Amount"}],["Balance",{nth:2,isVLEncoded:!1,isSerialized:!0,isSigningField:!0,type:"Amount"}],["LimitAmount",{nth:3,isVLEncoded:!1,isSerialized:!0,isSigningField:!0,type:"Amount"}],["TakerPays",{nth:4,isVLEncoded:!1,isSerialized:!0,isSigningField:!0,type:"Amount"}],["TakerGets",{nth:5,isVLEncoded:!1,isSerialized:!0,isSigningField:!0,type:"Amount"}],["LowLimit",{nth:6,isVLEncoded:!1,isSerialized:!0,isSigningField:!0,type:"Amount"}],["HighLimit",{nth:7,isVLEncoded:!1,isSerialized:!0,isSigningField:!0,type:"Amount"}],["Fee",{nth:8,isVLEncoded:!1,isSerialized:!0,isSigningField:!0,type:"Amount"}],["SendMax",{nth:9,isVLEncoded:!1,isSerialized:!0,isSigningField:!0,type:"Amount"}],["DeliverMin",{nth:10,isVLEncoded:!1,isSerialized:!0,isSigningField:!0,type:"Amount"}],["MinimumOffer",{nth:16,isVLEncoded:!1,isSerialized:!0,isSigningField:!0,type:"Amount"}],["RippleEscrow",{nth:17,isVLEncoded:!1,isSerialized:!0,isSigningField:!0,type:"Amount"}],["DeliveredAmount",{nth:18,isVLEncoded:!1,isSerialized:!0,isSigningField:!0,type:"Amount"}],["NFTokenBrokerFee",{nth:19,isVLEncoded:!1,isSerialized:!0,isSigningField:!0,type:"Amount"}],["taker_gets_funded",{nth:258,isVLEncoded:!1,isSerialized:!1,isSigningField:!1,type:"Amount"}],["taker_pays_funded",{nth:259,isVLEncoded:!1,isSerialized:!1,isSigningField:!1,type:"Amount"}],["PublicKey",{nth:1,isVLEncoded:!0,isSerialized:!0,isSigningField:!0,type:"Blob"}],["MessageKey",{nth:2,isVLEncoded:!0,isSerialized:!0,isSigningField:!0,type:"Blob"}],["SigningPubKey",{nth:3,isVLEncoded:!0,isSerialized:!0,isSigningField:!0,type:"Blob"}],["TxnSignature",{nth:4,isVLEncoded:!0,isSerialized:!0,isSigningField:!1,type:"Blob"}],["URI",{nth:5,isVLEncoded:!0,isSerialized:!0,isSigningField:!0,type:"Blob"}],["Signature",{nth:6,isVLEncoded:!0,isSerialized:!0,isSigningField:!1,type:"Blob"}],["Domain",{nth:7,isVLEncoded:!0,isSerialized:!0,isSigningField:!0,type:"Blob"}],["FundCode",{nth:8,isVLEncoded:!0,isSerialized:!0,isSigningField:!0,type:"Blob"}],["RemoveCode",{nth:9,isVLEncoded:!0,isSerialized:!0,isSigningField:!0,type:"Blob"}],["ExpireCode",{nth:10,isVLEncoded:!0,isSerialized:!0,isSigningField:!0,type:"Blob"}],["CreateCode",{nth:11,isVLEncoded:!0,isSerialized:!0,isSigningField:!0,type:"Blob"}],["MemoType",{nth:12,isVLEncoded:!0,isSerialized:!0,isSigningField:!0,type:"Blob"}],["MemoData",{nth:13,isVLEncoded:!0,isSerialized:!0,isSigningField:!0,type:"Blob"}],["MemoFormat",{nth:14,isVLEncoded:!0,isSerialized:!0,isSigningField:!0,type:"Blob"}],["Fulfillment",{nth:16,isVLEncoded:!0,isSerialized:!0,isSigningField:!0,type:"Blob"}],["Condition",{nth:17,isVLEncoded:!0,isSerialized:!0,isSigningField:!0,type:"Blob"}],["MasterSignature",{nth:18,isVLEncoded:!0,isSerialized:!0,isSigningField:!1,type:"Blob"}],["UNLModifyValidator",{nth:19,isVLEncoded:!0,isSerialized:!0,isSigningField:!0,type:"Blob"}],["ValidatorToDisable",{nth:20,isVLEncoded:!0,isSerialized:!0,isSigningField:!0,type:"Blob"}],["ValidatorToReEnable",{nth:21,isVLEncoded:!0,isSerialized:!0,isSigningField:!0,type:"Blob"}],["Account",{nth:1,isVLEncoded:!0,isSerialized:!0,isSigningField:!0,type:"AccountID"}],["Owner",{nth:2,isVLEncoded:!0,isSerialized:!0,isSigningField:!0,type:"AccountID"}],["Destination",{nth:3,isVLEncoded:!0,isSerialized:!0,isSigningField:!0,type:"AccountID"}],["Issuer",{nth:4,isVLEncoded:!0,isSerialized:!0,isSigningField:!0,type:"AccountID"}],["Authorize",{nth:5,isVLEncoded:!0,isSerialized:!0,isSigningField:!0,type:"AccountID"}],["Unauthorize",{nth:6,isVLEncoded:!0,isSerialized:!0,isSigningField:!0,type:"AccountID"}],["Target",{nth:7,isVLEncoded:!0,isSerialized:!0,isSigningField:!0,type:"AccountID"}],["RegularKey",{nth:8,isVLEncoded:!0,isSerialized:!0,isSigningField:!0,type:"AccountID"}],["NFTokenMinter",{nth:9,isVLEncoded:!0,isSerialized:!0,isSigningField:!0,type:"AccountID"}],["ObjectEndMarker",{nth:1,isVLEncoded:!1,isSerialized:!0,isSigningField:!0,type:"STObject"}],["TransactionMetaData",{nth:2,isVLEncoded:!1,isSerialized:!0,isSigningField:!0,type:"STObject"}],["CreatedNode",{nth:3,isVLEncoded:!1,isSerialized:!0,isSigningField:!0,type:"STObject"}],["DeletedNode",{nth:4,isVLEncoded:!1,isSerialized:!0,isSigningField:!0,type:"STObject"}],["ModifiedNode",{nth:5,isVLEncoded:!1,isSerialized:!0,isSigningField:!0,type:"STObject"}],["PreviousFields",{nth:6,isVLEncoded:!1,isSerialized:!0,isSigningField:!0,type:"STObject"}],["FinalFields",{nth:7,isVLEncoded:!1,isSerialized:!0,isSigningField:!0,type:"STObject"}],["NewFields",{nth:8,isVLEncoded:!1,isSerialized:!0,isSigningField:!0,type:"STObject"}],["TemplateEntry",{nth:9,isVLEncoded:!1,isSerialized:!0,isSigningField:!0,type:"STObject"}],["Memo",{nth:10,isVLEncoded:!1,isSerialized:!0,isSigningField:!0,type:"STObject"}],["SignerEntry",{nth:11,isVLEncoded:!1,isSerialized:!0,isSigningField:!0,type:"STObject"}],["NFToken",{nth:12,isVLEncoded:!1,isSerialized:!0,isSigningField:!0,type:"STObject"}],["Signer",{nth:16,isVLEncoded:!1,isSerialized:!0,isSigningField:!0,type:"STObject"}],["Majority",{nth:18,isVLEncoded:!1,isSerialized:!0,isSigningField:!0,type:"STObject"}],["DisabledValidator",{nth:19,isVLEncoded:!1,isSerialized:!0,isSigningField:!0,type:"STObject"}],["ArrayEndMarker",{nth:1,isVLEncoded:!1,isSerialized:!0,isSigningField:!0,type:"STArray"}],["Signers",{nth:3,isVLEncoded:!1,isSerialized:!0,isSigningField:!1,type:"STArray"}],["SignerEntries",{nth:4,isVLEncoded:!1,isSerialized:!0,isSigningField:!0,type:"STArray"}],["Template",{nth:5,isVLEncoded:!1,isSerialized:!0,isSigningField:!0,type:"STArray"}],["Necessary",{nth:6,isVLEncoded:!1,isSerialized:!0,isSigningField:!0,type:"STArray"}],["Sufficient",{nth:7,isVLEncoded:!1,isSerialized:!0,isSigningField:!0,type:"STArray"}],["AffectedNodes",{nth:8,isVLEncoded:!1,isSerialized:!0,isSigningField:!0,type:"STArray"}],["Memos",{nth:9,isVLEncoded:!1,isSerialized:!0,isSigningField:!0,type:"STArray"}],["NFTokens",{nth:10,isVLEncoded:!1,isSerialized:!0,isSigningField:!0,type:"STArray"}],["Majorities",{nth:16,isVLEncoded:!1,isSerialized:!0,isSigningField:!0,type:"STArray"}],["DisabledValidators",{nth:17,isVLEncoded:!1,isSerialized:!0,isSigningField:!0,type:"STArray"}],["CloseResolution",{nth:1,isVLEncoded:!1,isSerialized:!0,isSigningField:!0,type:"UInt8"}],["Method",{nth:2,isVLEncoded:!1,isSerialized:!0,isSigningField:!0,type:"UInt8"}],["TransactionResult",{nth:3,isVLEncoded:!1,isSerialized:!0,isSigningField:!0,type:"UInt8"}],["TakerPaysCurrency",{nth:1,isVLEncoded:!1,isSerialized:!0,isSigningField:!0,type:"Hash160"}],["TakerPaysIssuer",{nth:2,isVLEncoded:!1,isSerialized:!0,isSigningField:!0,type:"Hash160"}],["TakerGetsCurrency",{nth:3,isVLEncoded:!1,isSerialized:!0,isSigningField:!0,type:"Hash160"}],["TakerGetsIssuer",{nth:4,isVLEncoded:!1,isSerialized:!0,isSigningField:!0,type:"Hash160"}],["Paths",{nth:1,isVLEncoded:!1,isSerialized:!0,isSigningField:!0,type:"PathSet"}],["Indexes",{nth:1,isVLEncoded:!0,isSerialized:!0,isSigningField:!0,type:"Vector256"}],["Hashes",{nth:2,isVLEncoded:!0,isSerialized:!0,isSigningField:!0,type:"Vector256"}],["Amendments",{nth:3,isVLEncoded:!0,isSerialized:!0,isSigningField:!0,type:"Vector256"}],["NFTokenOffers",{nth:4,isVLEncoded:!0,isSerialized:!0,isSigningField:!0,type:"Vector256"}],["Transaction",{nth:1,isVLEncoded:!1,isSerialized:!1,isSigningField:!1,type:"Transaction"}],["LedgerEntry",{nth:1,isVLEncoded:!1,isSerialized:!1,isSigningField:!1,type:"LedgerEntry"}],["Validation",{nth:1,isVLEncoded:!1,isSerialized:!1,isSigningField:!1,type:"Validation"}],["SignerListID",{nth:38,isVLEncoded:!1,isSerialized:!0,isSigningField:!0,type:"UInt32"}],["SettleDelay",{nth:39,isVLEncoded:!1,isSerialized:!0,isSigningField:!0,type:"UInt32"}],["TicketCount",{nth:40,isVLEncoded:!1,isSerialized:!0,isSigningField:!0,type:"UInt32"}],["TicketSequence",{nth:41,isVLEncoded:!1,isSerialized:!0,isSigningField:!0,type:"UInt32"}],["NFTokenTaxon",{nth:42,isVLEncoded:!1,isSerialized:!0,isSigningField:!0,type:"UInt32"}],["MintedNFTokens",{nth:43,isVLEncoded:!1,isSerialized:!0,isSigningField:!0,type:"UInt32"}],["BurnedNFTokens",{nth:44,isVLEncoded:!1,isSerialized:!0,isSigningField:!0,type:"UInt32"}],["Channel",{nth:22,isVLEncoded:!1,isSerialized:!0,isSigningField:!0,type:"Hash256"}],["ConsensusHash",{nth:23,isVLEncoded:!1,isSerialized:!0,isSigningField:!0,type:"Hash256"}],["CheckID",{nth:24,isVLEncoded:!1,isSerialized:!0,isSigningField:!0,type:"Hash256"}],["ValidatedHash",{nth:25,isVLEncoded:!1,isSerialized:!0,isSigningField:!0,type:"Hash256"}],["PreviousPageMin",{nth:26,isVLEncoded:!1,isSerialized:!0,isSigningField:!0,type:"Hash256"}],["NextPageMin",{nth:27,isVLEncoded:!1,isSerialized:!0,isSigningField:!0,type:"Hash256"}],["NFTokenBuyOffer",{nth:28,isVLEncoded:!1,isSerialized:!0,isSigningField:!0,type:"Hash256"}],["NFTokenSellOffer",{nth:29,isVLEncoded:!1,isSerialized:!0,isSigningField:!0,type:"Hash256"}],["TickSize",{nth:16,isVLEncoded:!1,isSerialized:!0,isSigningField:!0,type:"UInt8"}],["UNLModifyDisabling",{nth:17,isVLEncoded:!1,isSerialized:!0,isSigningField:!0,type:"UInt8"}],["DestinationNode",{nth:9,isVLEncoded:!1,isSerialized:!0,isSigningField:!0,type:"UInt64"}],["Cookie",{nth:10,isVLEncoded:!1,isSerialized:!0,isSigningField:!0,type:"UInt64"}],["ServerVersion",{nth:11,isVLEncoded:!1,isSerialized:!0,isSigningField:!0,type:"UInt64"}],["NFTokenOfferNode",{nth:12,isVLEncoded:!1,isSerialized:!0,isSigningField:!0,type:"UInt64"}]],TRANSACTION_RESULTS:{telLOCAL_ERROR:-399,telBAD_DOMAIN:-398,telBAD_PATH_COUNT:-397,telBAD_PUBLIC_KEY:-396,telFAILED_PROCESSING:-395,telINSUF_FEE_P:-394,telNO_DST_PARTIAL:-393,telCAN_NOT_QUEUE:-392,telCAN_NOT_QUEUE_BALANCE:-391,telCAN_NOT_QUEUE_BLOCKS:-390,telCAN_NOT_QUEUE_BLOCKED:-389,telCAN_NOT_QUEUE_FEE:-388,telCAN_NOT_QUEUE_FULL:-387,temMALFORMED:-299,temBAD_AMOUNT:-298,temBAD_CURRENCY:-297,temBAD_EXPIRATION:-296,temBAD_FEE:-295,temBAD_ISSUER:-294,temBAD_LIMIT:-293,temBAD_OFFER:-292,temBAD_PATH:-291,temBAD_PATH_LOOP:-290,temBAD_REGKEY:-289,temBAD_SEND_XRP_LIMIT:-288,temBAD_SEND_XRP_MAX:-287,temBAD_SEND_XRP_NO_DIRECT:-286,temBAD_SEND_XRP_PARTIAL:-285,temBAD_SEND_XRP_PATHS:-284,temBAD_SEQUENCE:-283,temBAD_SIGNATURE:-282,temBAD_SRC_ACCOUNT:-281,temBAD_TRANSFER_RATE:-280,temDST_IS_SRC:-279,temDST_NEEDED:-278,temINVALID:-277,temINVALID_FLAG:-276,temREDUNDANT:-275,temRIPPLE_EMPTY:-274,temDISABLED:-273,temBAD_SIGNER:-272,temBAD_QUORUM:-271,temBAD_WEIGHT:-270,temBAD_TICK_SIZE:-269,temINVALID_ACCOUNT_ID:-268,temCANNOT_PREAUTH_SELF:-267,temUNCERTAIN:-266,temUNKNOWN:-265,temSEQ_AND_TICKET:-264,temBAD_NFTOKEN_TRANSFER_FEE:-263,tefFAILURE:-199,tefALREADY:-198,tefBAD_ADD_AUTH:-197,tefBAD_AUTH:-196,tefBAD_LEDGER:-195,tefCREATED:-194,tefEXCEPTION:-193,tefINTERNAL:-192,tefNO_AUTH_REQUIRED:-191,tefPAST_SEQ:-190,tefWRONG_PRIOR:-189,tefMASTER_DISABLED:-188,tefMAX_LEDGER:-187,tefBAD_SIGNATURE:-186,tefBAD_QUORUM:-185,tefNOT_MULTI_SIGNING:-184,tefBAD_AUTH_MASTER:-183,tefINVARIANT_FAILED:-182,tefTOO_BIG:-181,tefNO_TICKET:-180,tefNFTOKEN_IS_NOT_TRANSFERABLE:-179,terRETRY:-99,terFUNDS_SPENT:-98,terINSUF_FEE_B:-97,terNO_ACCOUNT:-96,terNO_AUTH:-95,terNO_LINE:-94,terOWNERS:-93,terPRE_SEQ:-92,terLAST:-91,terNO_RIPPLE:-90,terQUEUED:-89,terPRE_TICKET:-88,tesSUCCESS:0,tecCLAIM:100,tecPATH_PARTIAL:101,tecUNFUNDED_ADD:102,tecUNFUNDED_OFFER:103,tecUNFUNDED_PAYMENT:104,tecFAILED_PROCESSING:105,tecDIR_FULL:121,tecINSUF_RESERVE_LINE:122,tecINSUF_RESERVE_OFFER:123,tecNO_DST:124,tecNO_DST_INSUF_XRP:125,tecNO_LINE_INSUF_RESERVE:126,tecNO_LINE_REDUNDANT:127,tecPATH_DRY:128,tecUNFUNDED:129,tecNO_ALTERNATIVE_KEY:130,tecNO_REGULAR_KEY:131,tecOWNERS:132,tecNO_ISSUER:133,tecNO_AUTH:134,tecNO_LINE:135,tecINSUFF_FEE:136,tecFROZEN:137,tecNO_TARGET:138,tecNO_PERMISSION:139,tecNO_ENTRY:140,tecINSUFFICIENT_RESERVE:141,tecNEED_MASTER_KEY:142,tecDST_TAG_NEEDED:143,tecINTERNAL:144,tecOVERSIZE:145,tecCRYPTOCONDITION_ERROR:146,tecINVARIANT_FAILED:147,tecEXPIRED:148,tecDUPLICATE:149,tecKILLED:150,tecHAS_OBLIGATIONS:151,tecTOO_SOON:152,tecMAX_SEQUENCE_REACHED:154,tecNO_SUITABLE_NFTOKEN_PAGE:155,tecNFTOKEN_BUY_SELL_MISMATCH:156,tecNFTOKEN_OFFER_TYPE_MISMATCH:157,tecCANT_ACCEPT_OWN_NFTOKEN_OFFER:158,tecINSUFFICIENT_FUNDS:159,tecOBJECT_NOT_FOUND:160,tecINSUFFICIENT_PAYMENT:161,tecINCORRECT_ASSET:162,tecTOO_MANY:163},TRANSACTION_TYPES:{Invalid:-1,Payment:0,EscrowCreate:1,EscrowFinish:2,AccountSet:3,EscrowCancel:4,SetRegularKey:5,NickNameSet:6,OfferCreate:7,OfferCancel:8,Contract:9,TicketCreate:10,TicketCancel:11,SignerListSet:12,PaymentChannelCreate:13,PaymentChannelFund:14,PaymentChannelClaim:15,CheckCreate:16,CheckCash:17,CheckCancel:18,DepositPreauth:19,TrustSet:20,AccountDelete:21,NFTokenMint:25,NFTokenBurn:26,NFTokenCreateOffer:27,NFTokenCancelOffer:28,NFTokenAcceptOffer:29,EnableAmendment:100,SetFee:101,UNLModify:102}}});var zi=x(a6=>{"use strict";var cq=VN(),n6=zN(),jge=typeof Symbol=="function"&&typeof Symbol.for=="function"?Symbol.for("nodejs.util.inspect.custom"):null;a6.Buffer=Qe;a6.SlowBuffer=Ept;a6.INSPECT_MAX_BYTES=50;var IE=2147483647;a6.kMaxLength=IE;Qe.TYPED_ARRAY_SUPPORT=_pt();!Qe.TYPED_ARRAY_SUPPORT&&typeof console<"u"&&typeof console.error=="function"&&console.error("This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support.");function _pt(){try{var t=new Uint8Array(1),e={foo:function(){return 42}};return Object.setPrototypeOf(e,Uint8Array.prototype),Object.setPrototypeOf(t,e),t.foo()===42}catch{return!1}}Object.defineProperty(Qe.prototype,"parent",{enumerable:!0,get:function(){if(!!Qe.isBuffer(this))return this.buffer}});Object.defineProperty(Qe.prototype,"offset",{enumerable:!0,get:function(){if(!!Qe.isBuffer(this))return this.byteOffset}});function Tp(t){if(t>IE)throw new RangeError('The value "'+t+'" is invalid for option "size"');var e=new Uint8Array(t);return Object.setPrototypeOf(e,Qe.prototype),e}function Qe(t,e,r){if(typeof t=="number"){if(typeof e=="string")throw new TypeError('The "string" argument must be of type string. Received type number');return fq(t)}return Gge(t,e,r)}Qe.poolSize=8192;function Gge(t,e,r){if(typeof t=="string")return xpt(t,e);if(ArrayBuffer.isView(t))return dq(t);if(t==null)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof t);if(Ap(t,ArrayBuffer)||t&&Ap(t.buffer,ArrayBuffer)||typeof SharedArrayBuffer<"u"&&(Ap(t,SharedArrayBuffer)||t&&Ap(t.buffer,SharedArrayBuffer)))return Vge(t,e,r);if(typeof t=="number")throw new TypeError('The "value" argument must not be of type number. Received type number');var i=t.valueOf&&t.valueOf();if(i!=null&&i!==t)return Qe.from(i,e,r);var n=Spt(t);if(n)return n;if(typeof Symbol<"u"&&Symbol.toPrimitive!=null&&typeof t[Symbol.toPrimitive]=="function")return Qe.from(t[Symbol.toPrimitive]("string"),e,r);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof t)}Qe.from=function(t,e,r){return Gge(t,e,r)};Object.setPrototypeOf(Qe.prototype,Uint8Array.prototype);Object.setPrototypeOf(Qe,Uint8Array);function Jge(t){if(typeof t!="number")throw new TypeError('"size" argument must be of type number');if(t<0)throw new RangeError('The value "'+t+'" is invalid for option "size"')}function wpt(t,e,r){return Jge(t),t<=0?Tp(t):e!==void 0?typeof r=="string"?Tp(t).fill(e,r):Tp(t).fill(e):Tp(t)}Qe.alloc=function(t,e,r){return wpt(t,e,r)};function fq(t){return Jge(t),Tp(t<0?0:pq(t)|0)}Qe.allocUnsafe=function(t){return fq(t)};Qe.allocUnsafeSlow=function(t){return fq(t)};function xpt(t,e){if((typeof e!="string"||e==="")&&(e="utf8"),!Qe.isEncoding(e))throw new TypeError("Unknown encoding: "+e);var r=Xge(t,e)|0,i=Tp(r),n=i.write(t,e);return n!==r&&(i=i.slice(0,n)),i}function dq(t){for(var e=t.length<0?0:pq(t.length)|0,r=Tp(e),i=0;i=IE)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+IE.toString(16)+" bytes");return t|0}function Ept(t){return+t!=t&&(t=0),Qe.alloc(+t)}Qe.isBuffer=function(e){return e!=null&&e._isBuffer===!0&&e!==Qe.prototype};Qe.compare=function(e,r){if(Ap(e,Uint8Array)&&(e=Qe.from(e,e.offset,e.byteLength)),Ap(r,Uint8Array)&&(r=Qe.from(r,r.offset,r.byteLength)),!Qe.isBuffer(e)||!Qe.isBuffer(r))throw new TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array');if(e===r)return 0;for(var i=e.length,n=r.length,a=0,s=Math.min(i,n);a2&&arguments[2]===!0;if(!i&&r===0)return 0;for(var n=!1;;)switch(e){case"ascii":case"latin1":case"binary":return r;case"utf8":case"utf-8":return lq(t).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return r*2;case"hex":return r>>>1;case"base64":return eye(t).length;default:if(n)return i?-1:lq(t).length;e=(""+e).toLowerCase(),n=!0}}Qe.byteLength=Xge;function Tpt(t,e,r){var i=!1;if((e===void 0||e<0)&&(e=0),e>this.length||((r===void 0||r>this.length)&&(r=this.length),r<=0)||(r>>>=0,e>>>=0,r<=e))return"";for(t||(t="utf8");;)switch(t){case"hex":return Bpt(this,e,r);case"utf8":case"utf-8":return Zge(this,e,r);case"ascii":return Npt(this,e,r);case"latin1":case"binary":return kpt(this,e,r);case"base64":return Cpt(this,e,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return Fpt(this,e,r);default:if(i)throw new TypeError("Unknown encoding: "+t);t=(t+"").toLowerCase(),i=!0}}Qe.prototype._isBuffer=!0;function l2(t,e,r){var i=t[e];t[e]=t[r],t[r]=i}Qe.prototype.swap16=function(){var e=this.length;if(e%2!==0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(var r=0;rr&&(e+=" ... "),""};jge&&(Qe.prototype[jge]=Qe.prototype.inspect);Qe.prototype.compare=function(e,r,i,n,a){if(Ap(e,Uint8Array)&&(e=Qe.from(e,e.offset,e.byteLength)),!Qe.isBuffer(e))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof e);if(r===void 0&&(r=0),i===void 0&&(i=e?e.length:0),n===void 0&&(n=0),a===void 0&&(a=this.length),r<0||i>e.length||n<0||a>this.length)throw new RangeError("out of range index");if(n>=a&&r>=i)return 0;if(n>=a)return-1;if(r>=i)return 1;if(r>>>=0,i>>>=0,n>>>=0,a>>>=0,this===e)return 0;for(var s=a-n,o=i-r,c=Math.min(s,o),u=this.slice(n,a),f=e.slice(r,i),d=0;d2147483647?r=2147483647:r<-2147483648&&(r=-2147483648),r=+r,hq(r)&&(r=n?0:t.length-1),r<0&&(r=t.length+r),r>=t.length){if(n)return-1;r=t.length-1}else if(r<0)if(n)r=0;else return-1;if(typeof e=="string"&&(e=Qe.from(e,i)),Qe.isBuffer(e))return e.length===0?-1:Hge(t,e,r,i,n);if(typeof e=="number")return e=e&255,typeof Uint8Array.prototype.indexOf=="function"?n?Uint8Array.prototype.indexOf.call(t,e,r):Uint8Array.prototype.lastIndexOf.call(t,e,r):Hge(t,[e],r,i,n);throw new TypeError("val must be string, number or Buffer")}function Hge(t,e,r,i,n){var a=1,s=t.length,o=e.length;if(i!==void 0&&(i=String(i).toLowerCase(),i==="ucs2"||i==="ucs-2"||i==="utf16le"||i==="utf-16le")){if(t.length<2||e.length<2)return-1;a=2,s/=2,o/=2,r/=2}function c(b,T){return a===1?b[T]:b.readUInt16BE(T*a)}var u;if(n){var f=-1;for(u=r;us&&(r=s-o),u=r;u>=0;u--){for(var d=!0,p=0;pn&&(i=n)):i=n;var a=e.length;i>a/2&&(i=a/2);for(var s=0;s>>0,isFinite(i)?(i=i>>>0,n===void 0&&(n="utf8")):(n=i,i=void 0);else throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");var a=this.length-r;if((i===void 0||i>a)&&(i=a),e.length>0&&(i<0||r<0)||r>this.length)throw new RangeError("Attempt to write outside buffer bounds");n||(n="utf8");for(var s=!1;;)switch(n){case"hex":return Apt(this,e,r,i);case"utf8":case"utf-8":return Ppt(this,e,r,i);case"ascii":return Wge(this,e,r,i);case"latin1":case"binary":return Opt(this,e,r,i);case"base64":return Rpt(this,e,r,i);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return Mpt(this,e,r,i);default:if(s)throw new TypeError("Unknown encoding: "+n);n=(""+n).toLowerCase(),s=!0}};Qe.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function Cpt(t,e,r){return e===0&&r===t.length?cq.fromByteArray(t):cq.fromByteArray(t.slice(e,r))}function Zge(t,e,r){r=Math.min(t.length,r);for(var i=[],n=e;n239?4:a>223?3:a>191?2:1;if(n+o<=r){var c,u,f,d;switch(o){case 1:a<128&&(s=a);break;case 2:c=t[n+1],(c&192)===128&&(d=(a&31)<<6|c&63,d>127&&(s=d));break;case 3:c=t[n+1],u=t[n+2],(c&192)===128&&(u&192)===128&&(d=(a&15)<<12|(c&63)<<6|u&63,d>2047&&(d<55296||d>57343)&&(s=d));break;case 4:c=t[n+1],u=t[n+2],f=t[n+3],(c&192)===128&&(u&192)===128&&(f&192)===128&&(d=(a&15)<<18|(c&63)<<12|(u&63)<<6|f&63,d>65535&&d<1114112&&(s=d))}}s===null?(s=65533,o=1):s>65535&&(s-=65536,i.push(s>>>10&1023|55296),s=56320|s&1023),i.push(s),n+=o}return Ipt(i)}var zge=4096;function Ipt(t){var e=t.length;if(e<=zge)return String.fromCharCode.apply(String,t);for(var r="",i=0;ii)&&(r=i);for(var n="",a=e;ai&&(e=i),r<0?(r+=i,r<0&&(r=0)):r>i&&(r=i),rr)throw new RangeError("Trying to access beyond buffer length")}Qe.prototype.readUIntLE=function(e,r,i){e=e>>>0,r=r>>>0,i||Sa(e,r,this.length);for(var n=this[e],a=1,s=0;++s>>0,r=r>>>0,i||Sa(e,r,this.length);for(var n=this[e+--r],a=1;r>0&&(a*=256);)n+=this[e+--r]*a;return n};Qe.prototype.readUInt8=function(e,r){return e=e>>>0,r||Sa(e,1,this.length),this[e]};Qe.prototype.readUInt16LE=function(e,r){return e=e>>>0,r||Sa(e,2,this.length),this[e]|this[e+1]<<8};Qe.prototype.readUInt16BE=function(e,r){return e=e>>>0,r||Sa(e,2,this.length),this[e]<<8|this[e+1]};Qe.prototype.readUInt32LE=function(e,r){return e=e>>>0,r||Sa(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+this[e+3]*16777216};Qe.prototype.readUInt32BE=function(e,r){return e=e>>>0,r||Sa(e,4,this.length),this[e]*16777216+(this[e+1]<<16|this[e+2]<<8|this[e+3])};Qe.prototype.readIntLE=function(e,r,i){e=e>>>0,r=r>>>0,i||Sa(e,r,this.length);for(var n=this[e],a=1,s=0;++s=a&&(n-=Math.pow(2,8*r)),n};Qe.prototype.readIntBE=function(e,r,i){e=e>>>0,r=r>>>0,i||Sa(e,r,this.length);for(var n=r,a=1,s=this[e+--n];n>0&&(a*=256);)s+=this[e+--n]*a;return a*=128,s>=a&&(s-=Math.pow(2,8*r)),s};Qe.prototype.readInt8=function(e,r){return e=e>>>0,r||Sa(e,1,this.length),this[e]&128?(255-this[e]+1)*-1:this[e]};Qe.prototype.readInt16LE=function(e,r){e=e>>>0,r||Sa(e,2,this.length);var i=this[e]|this[e+1]<<8;return i&32768?i|4294901760:i};Qe.prototype.readInt16BE=function(e,r){e=e>>>0,r||Sa(e,2,this.length);var i=this[e+1]|this[e]<<8;return i&32768?i|4294901760:i};Qe.prototype.readInt32LE=function(e,r){return e=e>>>0,r||Sa(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24};Qe.prototype.readInt32BE=function(e,r){return e=e>>>0,r||Sa(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]};Qe.prototype.readFloatLE=function(e,r){return e=e>>>0,r||Sa(e,4,this.length),n6.read(this,e,!0,23,4)};Qe.prototype.readFloatBE=function(e,r){return e=e>>>0,r||Sa(e,4,this.length),n6.read(this,e,!1,23,4)};Qe.prototype.readDoubleLE=function(e,r){return e=e>>>0,r||Sa(e,8,this.length),n6.read(this,e,!0,52,8)};Qe.prototype.readDoubleBE=function(e,r){return e=e>>>0,r||Sa(e,8,this.length),n6.read(this,e,!1,52,8)};function fo(t,e,r,i,n,a){if(!Qe.isBuffer(t))throw new TypeError('"buffer" argument must be a Buffer instance');if(e>n||et.length)throw new RangeError("Index out of range")}Qe.prototype.writeUIntLE=function(e,r,i,n){if(e=+e,r=r>>>0,i=i>>>0,!n){var a=Math.pow(2,8*i)-1;fo(this,e,r,i,a,0)}var s=1,o=0;for(this[r]=e&255;++o>>0,i=i>>>0,!n){var a=Math.pow(2,8*i)-1;fo(this,e,r,i,a,0)}var s=i-1,o=1;for(this[r+s]=e&255;--s>=0&&(o*=256);)this[r+s]=e/o&255;return r+i};Qe.prototype.writeUInt8=function(e,r,i){return e=+e,r=r>>>0,i||fo(this,e,r,1,255,0),this[r]=e&255,r+1};Qe.prototype.writeUInt16LE=function(e,r,i){return e=+e,r=r>>>0,i||fo(this,e,r,2,65535,0),this[r]=e&255,this[r+1]=e>>>8,r+2};Qe.prototype.writeUInt16BE=function(e,r,i){return e=+e,r=r>>>0,i||fo(this,e,r,2,65535,0),this[r]=e>>>8,this[r+1]=e&255,r+2};Qe.prototype.writeUInt32LE=function(e,r,i){return e=+e,r=r>>>0,i||fo(this,e,r,4,4294967295,0),this[r+3]=e>>>24,this[r+2]=e>>>16,this[r+1]=e>>>8,this[r]=e&255,r+4};Qe.prototype.writeUInt32BE=function(e,r,i){return e=+e,r=r>>>0,i||fo(this,e,r,4,4294967295,0),this[r]=e>>>24,this[r+1]=e>>>16,this[r+2]=e>>>8,this[r+3]=e&255,r+4};Qe.prototype.writeIntLE=function(e,r,i,n){if(e=+e,r=r>>>0,!n){var a=Math.pow(2,8*i-1);fo(this,e,r,i,a-1,-a)}var s=0,o=1,c=0;for(this[r]=e&255;++s>0)-c&255;return r+i};Qe.prototype.writeIntBE=function(e,r,i,n){if(e=+e,r=r>>>0,!n){var a=Math.pow(2,8*i-1);fo(this,e,r,i,a-1,-a)}var s=i-1,o=1,c=0;for(this[r+s]=e&255;--s>=0&&(o*=256);)e<0&&c===0&&this[r+s+1]!==0&&(c=1),this[r+s]=(e/o>>0)-c&255;return r+i};Qe.prototype.writeInt8=function(e,r,i){return e=+e,r=r>>>0,i||fo(this,e,r,1,127,-128),e<0&&(e=255+e+1),this[r]=e&255,r+1};Qe.prototype.writeInt16LE=function(e,r,i){return e=+e,r=r>>>0,i||fo(this,e,r,2,32767,-32768),this[r]=e&255,this[r+1]=e>>>8,r+2};Qe.prototype.writeInt16BE=function(e,r,i){return e=+e,r=r>>>0,i||fo(this,e,r,2,32767,-32768),this[r]=e>>>8,this[r+1]=e&255,r+2};Qe.prototype.writeInt32LE=function(e,r,i){return e=+e,r=r>>>0,i||fo(this,e,r,4,2147483647,-2147483648),this[r]=e&255,this[r+1]=e>>>8,this[r+2]=e>>>16,this[r+3]=e>>>24,r+4};Qe.prototype.writeInt32BE=function(e,r,i){return e=+e,r=r>>>0,i||fo(this,e,r,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),this[r]=e>>>24,this[r+1]=e>>>16,this[r+2]=e>>>8,this[r+3]=e&255,r+4};function $ge(t,e,r,i,n,a){if(r+i>t.length)throw new RangeError("Index out of range");if(r<0)throw new RangeError("Index out of range")}function Qge(t,e,r,i,n){return e=+e,r=r>>>0,n||$ge(t,e,r,4,34028234663852886e22,-34028234663852886e22),n6.write(t,e,r,i,23,4),r+4}Qe.prototype.writeFloatLE=function(e,r,i){return Qge(this,e,r,!0,i)};Qe.prototype.writeFloatBE=function(e,r,i){return Qge(this,e,r,!1,i)};function Yge(t,e,r,i,n){return e=+e,r=r>>>0,n||$ge(t,e,r,8,17976931348623157e292,-17976931348623157e292),n6.write(t,e,r,i,52,8),r+8}Qe.prototype.writeDoubleLE=function(e,r,i){return Yge(this,e,r,!0,i)};Qe.prototype.writeDoubleBE=function(e,r,i){return Yge(this,e,r,!1,i)};Qe.prototype.copy=function(e,r,i,n){if(!Qe.isBuffer(e))throw new TypeError("argument should be a Buffer");if(i||(i=0),!n&&n!==0&&(n=this.length),r>=e.length&&(r=e.length),r||(r=0),n>0&&n=this.length)throw new RangeError("Index out of range");if(n<0)throw new RangeError("sourceEnd out of bounds");n>this.length&&(n=this.length),e.length-r=0;--s)e[s+r]=this[s+i];else Uint8Array.prototype.set.call(e,this.subarray(i,n),r);return a};Qe.prototype.fill=function(e,r,i,n){if(typeof e=="string"){if(typeof r=="string"?(n=r,r=0,i=this.length):typeof i=="string"&&(n=i,i=this.length),n!==void 0&&typeof n!="string")throw new TypeError("encoding must be a string");if(typeof n=="string"&&!Qe.isEncoding(n))throw new TypeError("Unknown encoding: "+n);if(e.length===1){var a=e.charCodeAt(0);(n==="utf8"&&a<128||n==="latin1")&&(e=a)}}else typeof e=="number"?e=e&255:typeof e=="boolean"&&(e=Number(e));if(r<0||this.length>>0,i=i===void 0?this.length:i>>>0,e||(e=0);var s;if(typeof e=="number")for(s=r;s55295&&r<57344){if(!n){if(r>56319){(e-=3)>-1&&a.push(239,191,189);continue}else if(s+1===i){(e-=3)>-1&&a.push(239,191,189);continue}n=r;continue}if(r<56320){(e-=3)>-1&&a.push(239,191,189),n=r;continue}r=(n-55296<<10|r-56320)+65536}else n&&(e-=3)>-1&&a.push(239,191,189);if(n=null,r<128){if((e-=1)<0)break;a.push(r)}else if(r<2048){if((e-=2)<0)break;a.push(r>>6|192,r&63|128)}else if(r<65536){if((e-=3)<0)break;a.push(r>>12|224,r>>6&63|128,r&63|128)}else if(r<1114112){if((e-=4)<0)break;a.push(r>>18|240,r>>12&63|128,r>>6&63|128,r&63|128)}else throw new Error("Invalid code point")}return a}function Lpt(t){for(var e=[],r=0;r>8,n=r%256,a.push(n),a.push(i);return a}function eye(t){return cq.toByteArray(qpt(t))}function NE(t,e,r,i){for(var n=0;n=e.length||n>=t.length);++n)e[n+r]=t[n];return n}function Ap(t,e){return t instanceof e||t!=null&&t.constructor!=null&&t.constructor.name!=null&&t.constructor.name===e.name}function hq(t){return t!==t}var jpt=function(){for(var t="0123456789abcdef",e=new Array(256),r=0;r<16;++r)for(var i=r*16,n=0;n<16;++n)e[i+n]=t[r]+t[n];return e}()});var o6=x(s6=>{"use strict";Object.defineProperty(s6,"__esModule",{value:!0});s6.BinarySerializer=s6.BytesList=void 0;var tye=require("assert"),kE=zi(),mq=function(){function t(){this.bytesArray=[]}return t.prototype.getLength=function(){return kE.Buffer.concat(this.bytesArray).byteLength},t.prototype.put=function(e){var r=kE.Buffer.from(e);return this.bytesArray.push(r),this},t.prototype.toBytesSink=function(e){e.put(this.toBytes())},t.prototype.toBytes=function(){return kE.Buffer.concat(this.bytesArray)},t.prototype.toHex=function(){return this.toBytes().toString("hex").toUpperCase()},t}();s6.BytesList=mq;var Vpt=function(){function t(e){this.sink=new mq,this.sink=e}return t.prototype.write=function(e){e.toBytesSink(this.sink)},t.prototype.put=function(e){this.sink.put(e)},t.prototype.writeType=function(e,r){this.write(e.from(r))},t.prototype.writeBytesList=function(e){e.toBytesSink(this.sink)},t.prototype.encodeVariableLength=function(e){var r=kE.Buffer.alloc(3);if(e<=192)return r[0]=e,r.slice(0,1);if(e<=12480)return e-=193,r[0]=193+(e>>>8),r[1]=e&255,r.slice(0,2);if(e<=918744)return e-=12481,r[0]=241+(e>>>16),r[1]=e>>8&255,r[2]=e&255,r.slice(0,3);throw new Error("Overflow error")},t.prototype.writeFieldAndValue=function(e,r,i){i===void 0&&(i=!1);var n=e.associatedType.from(r);tye.ok(n.toBytesSink!==void 0),tye.ok(e.name!==void 0),this.sink.put(e.header),e.isVariableLengthEncoded?this.writeLengthEncoded(n,i):n.toBytesSink(this.sink)},t.prototype.writeLengthEncoded=function(e,r){r===void 0&&(r=!1);var i=new mq;r||e.toBytesSink(i),this.put(this.encodeVariableLength(i.getLength())),this.writeBytesList(i)},t}();s6.BinarySerializer=Vpt});var Rl=x(Kh=>{"use strict";var Hpt=Kh&&Kh.__extends||function(){var t=function(e,r){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var a in n)Object.prototype.hasOwnProperty.call(n,a)&&(i[a]=n[a])},t(e,r)};return function(e,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");t(e,r);function i(){this.constructor=e}e.prototype=r===null?Object.create(r):(i.prototype=r.prototype,new i)}}();Object.defineProperty(Kh,"__esModule",{value:!0});Kh.Comparable=Kh.SerializedType=void 0;var zpt=o6(),rye=zi(),iye=function(){function t(e){this.bytes=rye.Buffer.alloc(0),this.bytes=e??rye.Buffer.alloc(0)}return t.fromParser=function(e,r){throw new Error("fromParser not implemented")},t.from=function(e){throw new Error("from not implemented")},t.prototype.toBytesSink=function(e){e.put(this.bytes)},t.prototype.toHex=function(){return this.toBytes().toString("hex").toUpperCase()},t.prototype.toBytes=function(){if(this.bytes)return this.bytes;var e=new zpt.BytesList;return this.toBytesSink(e),e.toBytes()},t.prototype.toJSON=function(){return this.toHex()},t.prototype.toString=function(){return this.toHex()},t}();Kh.SerializedType=iye;var Gpt=function(t){Hpt(e,t);function e(){return t!==null&&t.apply(this,arguments)||this}return e.prototype.lt=function(r){return this.compareTo(r)<0},e.prototype.eq=function(r){return this.compareTo(r)===0},e.prototype.gt=function(r){return this.compareTo(r)>0},e.prototype.gte=function(r){return this.compareTo(r)>-1},e.prototype.lte=function(r){return this.compareTo(r)<1},e.prototype.compareTo=function(r){throw new Error("cannot compare ".concat(this.toString()," and ").concat(r.toString()))},e}(iye);Kh.Comparable=Gpt});var u6=x(ys=>{"use strict";Object.defineProperty(ys,"__esModule",{value:!0});ys.TransactionType=ys.TransactionResult=ys.LedgerEntryType=ys.Type=ys.Field=ys.Bytes=ys.TRANSACTION_TYPES=void 0;var f2=Uge(),Jpt=Rl(),nye=zi();ys.TRANSACTION_TYPES=Object.entries(f2.TRANSACTION_TYPES).filter(function(t){var e=t[0],r=t[1];return r>=0}).map(function(t){var e=t[0],r=t[1];return e});var aye=2,Xpt=2,Kpt=2,Wpt=1;function Zpt(t,e){var r=[];return t<16?e<16?r.push(t<<4|e):r.push(t<<4,e):e<16?r.push(e,t):r.push(0,t,e),nye.Buffer.from(r)}var BE=function(){function t(e,r,i){this.name=e,this.ordinal=r,this.ordinalWidth=i,this.bytes=nye.Buffer.alloc(i);for(var n=0;n>>n*8&255}return t.prototype.toJSON=function(){return this.name},t.prototype.toBytesSink=function(e){e.put(this.bytes)},t.prototype.toBytes=function(){return this.bytes},t}();ys.Bytes=BE;var FE=function(){function t(e,r){var i=this;this.ordinalWidth=r,Object.entries(e).forEach(function(n){var a=n[0],s=n[1];i[a]=new BE(a,s,r),i[s.toString()]=i[a]})}return t.prototype.from=function(e){return e instanceof BE?e:this[e]},t.prototype.fromParser=function(e){return this.from(e.readUIntN(this.ordinalWidth).toString())},t}();function $pt(t){var e=t[0],r=t[1],i=f2.TYPES[r.type],n=Zpt(i,r.nth);return{name:e,nth:r.nth,isVariableLengthEncoded:r.isVLEncoded,isSerialized:r.isSerialized,isSigningField:r.isSigningField,ordinal:i<<16|r.nth,type:new BE(r.type,i,aye),header:n,associatedType:Jpt.SerializedType}}var Qpt=function(){function t(e){var r=this;e.forEach(function(i){var n=i[0],a=i[1];r[n]=$pt([n,a]),r[r[n].ordinal.toString()]=r[n]})}return t.prototype.fromString=function(e){return this[e]},t}(),Ypt=new FE(f2.TYPES,aye);ys.Type=Ypt;var e0t=new FE(f2.LEDGER_ENTRY_TYPES,Xpt);ys.LedgerEntryType=e0t;var t0t=new FE(f2.TRANSACTION_TYPES,Kpt);ys.TransactionType=t0t;var r0t=new FE(f2.TRANSACTION_RESULTS,Wpt);ys.TransactionResult=r0t;var i0t=new Qpt(f2.FIELDS);ys.Field=i0t});var DE=x(c6=>{"use strict";var n0t=c6&&c6.__extends||function(){var t=function(e,r){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var a in n)Object.prototype.hasOwnProperty.call(n,a)&&(i[a]=n[a])},t(e,r)};return function(e,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");t(e,r);function i(){this.constructor=e}e.prototype=r===null?Object.create(r):(i.prototype=r.prototype,new i)}}();Object.defineProperty(c6,"__esModule",{value:!0});c6.Hash=void 0;var a0t=Rl(),s0t=zi(),o0t=function(t){n0t(e,t);function e(r){var i=t.call(this,r)||this;if(i.bytes.byteLength!==i.constructor.width)throw new Error("Invalid Hash length ".concat(i.bytes.byteLength));return i}return e.from=function(r){if(r instanceof this)return r;if(typeof r=="string")return new this(s0t.Buffer.from(r,"hex"));throw new Error("Cannot construct Hash from given value")},e.fromParser=function(r,i){return new this(r.read(i??this.width))},e.prototype.compareTo=function(r){return this.bytes.compare(this.constructor.from(r).bytes)},e.prototype.toString=function(){return this.toHex()},e.prototype.nibblet=function(r){var i=r>0?r/2|0:0,n=this.bytes[i];return r%2===0?n=(n&240)>>>4:n=n&15,n},e}(a0t.Comparable);c6.Hash=o0t});var qE=x(d6=>{"use strict";var u0t=d6&&d6.__extends||function(){var t=function(e,r){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var a in n)Object.prototype.hasOwnProperty.call(n,a)&&(i[a]=n[a])},t(e,r)};return function(e,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");t(e,r);function i(){this.constructor=e}e.prototype=r===null?Object.create(r):(i.prototype=r.prototype,new i)}}();Object.defineProperty(d6,"__esModule",{value:!0});d6.Hash160=void 0;var c0t=DE(),d0t=zi(),l0t=function(t){u0t(e,t);function e(r){return r&&r.byteLength===0&&(r=e.ZERO_160.bytes),t.call(this,r??e.ZERO_160.bytes)||this}return e.width=20,e.ZERO_160=new e(d0t.Buffer.alloc(e.width)),e}(c0t.Hash);d6.Hash160=l0t});var UE=x(l6=>{"use strict";var f0t=l6&&l6.__extends||function(){var t=function(e,r){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var a in n)Object.prototype.hasOwnProperty.call(n,a)&&(i[a]=n[a])},t(e,r)};return function(e,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");t(e,r);function i(){this.constructor=e}e.prototype=r===null?Object.create(r):(i.prototype=r.prototype,new i)}}();Object.defineProperty(l6,"__esModule",{value:!0});l6.AccountID=void 0;var LE=uo(),p0t=qE(),gq=zi(),h0t=/^[A-F0-9]{40}$/,m0t=function(t){f0t(e,t);function e(r){return t.call(this,r??e.defaultAccountID.bytes)||this}return e.from=function(r){if(r instanceof e)return r;if(typeof r=="string")return r===""?new e:h0t.test(r)?new e(gq.Buffer.from(r,"hex")):this.fromBase58(r);throw new Error("Cannot construct AccountID from value given")},e.fromBase58=function(r){if((0,LE.isValidXAddress)(r)){var i=(0,LE.xAddressToClassicAddress)(r);if(i.tag!==!1)throw new Error("Only allowed to have tag on Account or Destination");r=i.classicAddress}return new e(gq.Buffer.from((0,LE.decodeAccountID)(r)))},e.prototype.toJSON=function(){return this.toBase58()},e.prototype.toBase58=function(){return(0,LE.encodeAccountID)(this.bytes)},e.defaultAccountID=new e(gq.Buffer.alloc(20)),e}(p0t.Hash160);l6.AccountID=m0t});var yq=x((sye,jE)=>{(function(t){"use strict";var e=9e15,r=1e9,i="0123456789abcdef",n="2.3025850929940456840179914546843642076011014886287729760333279009675726096773524802359972050895982983419677840422862486334095254650828067566662873690987816894829072083255546808437998948262331985283935053089653777326288461633662222876982198867465436674744042432743651550489343149393914796194044002221051017141748003688084012647080685567743216228355220114804663715659121373450747856947683463616792101806445070648000277502684916746550586856935673420670581136429224554405758925724208241314695689016758940256776311356919292033376587141660230105703089634572075440370847469940168269282808481184289314848524948644871927809676271275775397027668605952496716674183485704422507197965004714951050492214776567636938662976979522110718264549734772662425709429322582798502585509785265383207606726317164309505995087807523710333101197857547331541421808427543863591778117054309827482385045648019095610299291824318237525357709750539565187697510374970888692180205189339507238539205144634197265287286965110862571492198849978748873771345686209167058",a="3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229489549303819644288109756659334461284756482337867831652712019091456485669234603486104543266482133936072602491412737245870066063155881748815209209628292540917153643678925903600113305305488204665213841469519415116094330572703657595919530921861173819326117931051185480744623799627495673518857527248912279381830119491298336733624406566430860213949463952247371907021798609437027705392171762931767523846748184676694051320005681271452635608277857713427577896091736371787214684409012249534301465495853710507922796892589235420199561121290219608640344181598136297747713099605187072113499999983729780499510597317328160963185950244594553469083026425223082533446850352619311881710100031378387528865875332083814206171776691473035982534904287554687311595628638823537875937519577818577805321712268066130019278766111959092164201989380952572010654858632789",s={precision:20,rounding:4,modulo:1,toExpNeg:-7,toExpPos:21,minE:-e,maxE:e,crypto:!1},o,c,u,f,d=!0,p="[DecimalError] ",b=p+"Invalid argument: ",T=p+"Precision limit exceeded",I=p+"crypto unavailable",L="[object Decimal]",U=Math.floor,re=Math.pow,oe=/^0b([01]+(\.[01]*)?|\.[01]+)(p[+-]?\d+)?$/i,ge=/^0x([0-9a-f]+(\.[0-9a-f]*)?|\.[0-9a-f]+)(p[+-]?\d+)?$/i,be=/^0o([0-7]+(\.[0-7]*)?|\.[0-7]+)(p[+-]?\d+)?$/i,ce=/^(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,me=1e7,ne=7,ee=9007199254740991,R=n.length-1,g=a.length-1,v={toStringTag:L};v.absoluteValue=v.abs=function(){var k=new this.constructor(this);return k.s<0&&(k.s=1),h(k)},v.ceil=function(){return h(new this.constructor(this),this.e+1,2)},v.clampedTo=v.clamp=function(k,V){var z,J=this,Z=J.constructor;if(k=new Z(k),V=new Z(V),!k.s||!V.s)return new Z(NaN);if(k.gt(V))throw Error(b+V);return z=J.cmp(k),z<0?k:J.cmp(V)>0?V:new Z(J)},v.comparedTo=v.cmp=function(k){var V,z,J,Z,$=this,pe=$.d,Ee=(k=new $.constructor(k)).d,Ie=$.s,Re=k.s;if(!pe||!Ee)return!Ie||!Re?NaN:Ie!==Re?Ie:pe===Ee?0:!pe^Ie<0?1:-1;if(!pe[0]||!Ee[0])return pe[0]?Ie:Ee[0]?-Re:0;if(Ie!==Re)return Ie;if($.e!==k.e)return $.e>k.e^Ie<0?1:-1;for(J=pe.length,Z=Ee.length,V=0,z=JEe[V]^Ie<0?1:-1;return J===Z?0:J>Z^Ie<0?1:-1},v.cosine=v.cos=function(){var k,V,z=this,J=z.constructor;return z.d?z.d[0]?(k=J.precision,V=J.rounding,J.precision=k+Math.max(z.e,z.sd())+ne,J.rounding=1,z=M(J,ye(J,z)),J.precision=k,J.rounding=V,h(f==2||f==3?z.neg():z,k,V,!0)):new J(1):new J(NaN)},v.cubeRoot=v.cbrt=function(){var k,V,z,J,Z,$,pe,Ee,Ie,Re,qe=this,He=qe.constructor;if(!qe.isFinite()||qe.isZero())return new He(qe);for(d=!1,$=qe.s*re(qe.s*qe,1/3),!$||Math.abs($)==1/0?(z=w(qe.d),k=qe.e,($=(k-z.length+1)%3)&&(z+=$==1||$==-2?"0":"00"),$=re(z,1/3),k=U((k+1)/3)-(k%3==(k<0?-1:2)),$==1/0?z="5e"+k:(z=$.toExponential(),z=z.slice(0,z.indexOf("e")+1)+k),J=new He(z),J.s=qe.s):J=new He($.toString()),pe=(k=He.precision)+3;;)if(Ee=J,Ie=Ee.times(Ee).times(Ee),Re=Ie.plus(qe),J=E(Re.plus(qe).times(Ee),Re.plus(Ie),pe+2,1),w(Ee.d).slice(0,pe)===(z=w(J.d)).slice(0,pe))if(z=z.slice(pe-3,pe+1),z=="9999"||!Z&&z=="4999"){if(!Z&&(h(Ee,k+1,0),Ee.times(Ee).times(Ee).eq(qe))){J=Ee;break}pe+=4,Z=1}else{(!+z||!+z.slice(1)&&z.charAt(0)=="5")&&(h(J,k+1,1),V=!J.times(J).times(J).eq(qe));break}return d=!0,h(J,k,He.rounding,V)},v.decimalPlaces=v.dp=function(){var k,V=this.d,z=NaN;if(V){if(k=V.length-1,z=(k-U(this.e/ne))*ne,k=V[k],k)for(;k%10==0;k/=10)z--;z<0&&(z=0)}return z},v.dividedBy=v.div=function(k){return E(this,new this.constructor(k))},v.dividedToIntegerBy=v.divToInt=function(k){var V=this,z=V.constructor;return h(E(V,new z(k),0,1,1),z.precision,z.rounding)},v.equals=v.eq=function(k){return this.cmp(k)===0},v.floor=function(){return h(new this.constructor(this),this.e+1,3)},v.greaterThan=v.gt=function(k){return this.cmp(k)>0},v.greaterThanOrEqualTo=v.gte=function(k){var V=this.cmp(k);return V==1||V===0},v.hyperbolicCosine=v.cosh=function(){var k,V,z,J,Z,$=this,pe=$.constructor,Ee=new pe(1);if(!$.isFinite())return new pe($.s?1/0:NaN);if($.isZero())return Ee;z=pe.precision,J=pe.rounding,pe.precision=z+Math.max($.e,$.sd())+4,pe.rounding=1,Z=$.d.length,Z<32?(k=Math.ceil(Z/3),V=(1/Oe(4,k)).toString()):(k=16,V="2.3283064365386962890625e-10"),$=he(pe,1,$.times(V),new pe(1),!0);for(var Ie,Re=k,qe=new pe(8);Re--;)Ie=$.times($),$=Ee.minus(Ie.times(qe.minus(Ie.times(qe))));return h($,pe.precision=z,pe.rounding=J,!0)},v.hyperbolicSine=v.sinh=function(){var k,V,z,J,Z=this,$=Z.constructor;if(!Z.isFinite()||Z.isZero())return new $(Z);if(V=$.precision,z=$.rounding,$.precision=V+Math.max(Z.e,Z.sd())+4,$.rounding=1,J=Z.d.length,J<3)Z=he($,2,Z,Z,!0);else{k=1.4*Math.sqrt(J),k=k>16?16:k|0,Z=Z.times(1/Oe(5,k)),Z=he($,2,Z,Z,!0);for(var pe,Ee=new $(5),Ie=new $(16),Re=new $(20);k--;)pe=Z.times(Z),Z=Z.times(Ee.plus(pe.times(Ie.times(pe).plus(Re))))}return $.precision=V,$.rounding=z,h(Z,V,z,!0)},v.hyperbolicTangent=v.tanh=function(){var k,V,z=this,J=z.constructor;return z.isFinite()?z.isZero()?new J(z):(k=J.precision,V=J.rounding,J.precision=k+7,J.rounding=1,E(z.sinh(),z.cosh(),J.precision=k,J.rounding=V)):new J(z.s)},v.inverseCosine=v.acos=function(){var k,V=this,z=V.constructor,J=V.abs().cmp(1),Z=z.precision,$=z.rounding;return J!==-1?J===0?V.isNeg()?N(z,Z,$):new z(0):new z(NaN):V.isZero()?N(z,Z+4,$).times(.5):(z.precision=Z+6,z.rounding=1,V=V.asin(),k=N(z,Z+4,$).times(.5),z.precision=Z,z.rounding=$,k.minus(V))},v.inverseHyperbolicCosine=v.acosh=function(){var k,V,z=this,J=z.constructor;return z.lte(1)?new J(z.eq(1)?0:NaN):z.isFinite()?(k=J.precision,V=J.rounding,J.precision=k+Math.max(Math.abs(z.e),z.sd())+4,J.rounding=1,d=!1,z=z.times(z).minus(1).sqrt().plus(z),d=!0,J.precision=k,J.rounding=V,z.ln()):new J(z)},v.inverseHyperbolicSine=v.asinh=function(){var k,V,z=this,J=z.constructor;return!z.isFinite()||z.isZero()?new J(z):(k=J.precision,V=J.rounding,J.precision=k+2*Math.max(Math.abs(z.e),z.sd())+6,J.rounding=1,d=!1,z=z.times(z).plus(1).sqrt().plus(z),d=!0,J.precision=k,J.rounding=V,z.ln())},v.inverseHyperbolicTangent=v.atanh=function(){var k,V,z,J,Z=this,$=Z.constructor;return Z.isFinite()?Z.e>=0?new $(Z.abs().eq(1)?Z.s/0:Z.isZero()?Z:NaN):(k=$.precision,V=$.rounding,J=Z.sd(),Math.max(J,k)<2*-Z.e-1?h(new $(Z),k,V,!0):($.precision=z=J-Z.e,Z=E(Z.plus(1),new $(1).minus(Z),z+k,1),$.precision=k+4,$.rounding=1,Z=Z.ln(),$.precision=k,$.rounding=V,Z.times(.5))):new $(NaN)},v.inverseSine=v.asin=function(){var k,V,z,J,Z=this,$=Z.constructor;return Z.isZero()?new $(Z):(V=Z.abs().cmp(1),z=$.precision,J=$.rounding,V!==-1?V===0?(k=N($,z+4,J).times(.5),k.s=Z.s,k):new $(NaN):($.precision=z+6,$.rounding=1,Z=Z.div(new $(1).minus(Z.times(Z)).sqrt().plus(1)).atan(),$.precision=z,$.rounding=J,Z.times(2)))},v.inverseTangent=v.atan=function(){var k,V,z,J,Z,$,pe,Ee,Ie,Re=this,qe=Re.constructor,He=qe.precision,Xe=qe.rounding;if(Re.isFinite()){if(Re.isZero())return new qe(Re);if(Re.abs().eq(1)&&He+4<=g)return pe=N(qe,He+4,Xe).times(.25),pe.s=Re.s,pe}else{if(!Re.s)return new qe(NaN);if(He+4<=g)return pe=N(qe,He+4,Xe).times(.5),pe.s=Re.s,pe}for(qe.precision=Ee=He+10,qe.rounding=1,z=Math.min(28,Ee/ne+2|0),k=z;k;--k)Re=Re.div(Re.times(Re).plus(1).sqrt().plus(1));for(d=!1,V=Math.ceil(Ee/ne),J=1,Ie=Re.times(Re),pe=new qe(Re),Z=Re;k!==-1;)if(Z=Z.times(Ie),$=pe.minus(Z.div(J+=2)),Z=Z.times(Ie),pe=$.plus(Z.div(J+=2)),pe.d[V]!==void 0)for(k=V;pe.d[k]===$.d[k]&&k--;);return z&&(pe=pe.times(2<this.d.length-2},v.isNaN=function(){return!this.s},v.isNegative=v.isNeg=function(){return this.s<0},v.isPositive=v.isPos=function(){return this.s>0},v.isZero=function(){return!!this.d&&this.d[0]===0},v.lessThan=v.lt=function(k){return this.cmp(k)<0},v.lessThanOrEqualTo=v.lte=function(k){return this.cmp(k)<1},v.logarithm=v.log=function(k){var V,z,J,Z,$,pe,Ee,Ie,Re=this,qe=Re.constructor,He=qe.precision,Xe=qe.rounding,St=5;if(k==null)k=new qe(10),V=!0;else{if(k=new qe(k),z=k.d,k.s<0||!z||!z[0]||k.eq(1))return new qe(NaN);V=k.eq(10)}if(z=Re.d,Re.s<0||!z||!z[0]||Re.eq(1))return new qe(z&&!z[0]?-1/0:Re.s!=1?NaN:z?0:1/0);if(V)if(z.length>1)$=!0;else{for(Z=z[0];Z%10===0;)Z/=10;$=Z!==1}if(d=!1,Ee=He+St,pe=Y(Re,Ee),J=V?O(qe,Ee+10):Y(k,Ee),Ie=E(pe,J,Ee,1),_(Ie.d,Z=He,Xe))do if(Ee+=10,pe=Y(Re,Ee),J=V?O(qe,Ee+10):Y(k,Ee),Ie=E(pe,J,Ee,1),!$){+w(Ie.d).slice(Z+1,Z+15)+1==1e14&&(Ie=h(Ie,He+1,0));break}while(_(Ie.d,Z+=10,Xe));return d=!0,h(Ie,He,Xe)},v.minus=v.sub=function(k){var V,z,J,Z,$,pe,Ee,Ie,Re,qe,He,Xe,St=this,zt=St.constructor;if(k=new zt(k),!St.d||!k.d)return!St.s||!k.s?k=new zt(NaN):St.d?k.s=-k.s:k=new zt(k.d||St.s!==k.s?St:NaN),k;if(St.s!=k.s)return k.s=-k.s,St.plus(k);if(Re=St.d,Xe=k.d,Ee=zt.precision,Ie=zt.rounding,!Re[0]||!Xe[0]){if(Xe[0])k.s=-k.s;else if(Re[0])k=new zt(St);else return new zt(Ie===3?-0:0);return d?h(k,Ee,Ie):k}if(z=U(k.e/ne),qe=U(St.e/ne),Re=Re.slice(),$=qe-z,$){for(He=$<0,He?(V=Re,$=-$,pe=Xe.length):(V=Xe,z=qe,pe=Re.length),J=Math.max(Math.ceil(Ee/ne),pe)+2,$>J&&($=J,V.length=1),V.reverse(),J=$;J--;)V.push(0);V.reverse()}else{for(J=Re.length,pe=Xe.length,He=J0;--J)Re[pe++]=0;for(J=Xe.length;J>$;){if(Re[--J]pe?$+1:pe+1,Z>pe&&(Z=pe,z.length=1),z.reverse();Z--;)z.push(0);z.reverse()}for(pe=Re.length,Z=qe.length,pe-Z<0&&(Z=pe,z=qe,qe=Re,Re=z),V=0;Z;)V=(Re[--Z]=Re[Z]+qe[Z]+V)/me|0,Re[Z]%=me;for(V&&(Re.unshift(V),++J),pe=Re.length;Re[--pe]==0;)Re.pop();return k.d=Re,k.e=F(Re,J),d?h(k,Ee,Ie):k},v.precision=v.sd=function(k){var V,z=this;if(k!==void 0&&k!==!!k&&k!==1&&k!==0)throw Error(b+k);return z.d?(V=xe(z.d),k&&z.e+1>V&&(V=z.e+1)):V=NaN,V},v.round=function(){var k=this,V=k.constructor;return h(new V(k),k.e+1,V.rounding)},v.sine=v.sin=function(){var k,V,z=this,J=z.constructor;return z.isFinite()?z.isZero()?new J(z):(k=J.precision,V=J.rounding,J.precision=k+Math.max(z.e,z.sd())+ne,J.rounding=1,z=ue(J,ye(J,z)),J.precision=k,J.rounding=V,h(f>2?z.neg():z,k,V,!0)):new J(NaN)},v.squareRoot=v.sqrt=function(){var k,V,z,J,Z,$,pe=this,Ee=pe.d,Ie=pe.e,Re=pe.s,qe=pe.constructor;if(Re!==1||!Ee||!Ee[0])return new qe(!Re||Re<0&&(!Ee||Ee[0])?NaN:Ee?pe:1/0);for(d=!1,Re=Math.sqrt(+pe),Re==0||Re==1/0?(V=w(Ee),(V.length+Ie)%2==0&&(V+="0"),Re=Math.sqrt(V),Ie=U((Ie+1)/2)-(Ie<0||Ie%2),Re==1/0?V="5e"+Ie:(V=Re.toExponential(),V=V.slice(0,V.indexOf("e")+1)+Ie),J=new qe(V)):J=new qe(Re.toString()),z=(Ie=qe.precision)+3;;)if($=J,J=$.plus(E(pe,$,z+2,1)).times(.5),w($.d).slice(0,z)===(V=w(J.d)).slice(0,z))if(V=V.slice(z-3,z+1),V=="9999"||!Z&&V=="4999"){if(!Z&&(h($,Ie+1,0),$.times($).eq(pe))){J=$;break}z+=4,Z=1}else{(!+V||!+V.slice(1)&&V.charAt(0)=="5")&&(h(J,Ie+1,1),k=!J.times(J).eq(pe));break}return d=!0,h(J,Ie,qe.rounding,k)},v.tangent=v.tan=function(){var k,V,z=this,J=z.constructor;return z.isFinite()?z.isZero()?new J(z):(k=J.precision,V=J.rounding,J.precision=k+10,J.rounding=1,z=z.sin(),z.s=1,z=E(z,new J(1).minus(z.times(z)).sqrt(),k+10,0),J.precision=k,J.rounding=V,h(f==2||f==4?z.neg():z,k,V,!0)):new J(NaN)},v.times=v.mul=function(k){var V,z,J,Z,$,pe,Ee,Ie,Re,qe=this,He=qe.constructor,Xe=qe.d,St=(k=new He(k)).d;if(k.s*=qe.s,!Xe||!Xe[0]||!St||!St[0])return new He(!k.s||Xe&&!Xe[0]&&!St||St&&!St[0]&&!Xe?NaN:!Xe||!St?k.s/0:k.s*0);for(z=U(qe.e/ne)+U(k.e/ne),Ie=Xe.length,Re=St.length,Ie=0;){for(V=0,Z=Ie+J;Z>J;)Ee=$[Z]+St[J]*Xe[Z-J-1]+V,$[Z--]=Ee%me|0,V=Ee/me|0;$[Z]=($[Z]+V)%me|0}for(;!$[--pe];)$.pop();return V?++z:$.shift(),k.d=$,k.e=F($,z),d?h(k,He.precision,He.rounding):k},v.toBinary=function(k,V){return we(this,2,k,V)},v.toDecimalPlaces=v.toDP=function(k,V){var z=this,J=z.constructor;return z=new J(z),k===void 0?z:(y(k,0,r),V===void 0?V=J.rounding:y(V,0,8),h(z,k+z.e+1,V))},v.toExponential=function(k,V){var z,J=this,Z=J.constructor;return k===void 0?z=A(J,!0):(y(k,0,r),V===void 0?V=Z.rounding:y(V,0,8),J=h(new Z(J),k+1,V),z=A(J,!0,k+1)),J.isNeg()&&!J.isZero()?"-"+z:z},v.toFixed=function(k,V){var z,J,Z=this,$=Z.constructor;return k===void 0?z=A(Z):(y(k,0,r),V===void 0?V=$.rounding:y(V,0,8),J=h(new $(Z),k+Z.e+1,V),z=A(J,!1,k+J.e+1)),Z.isNeg()&&!Z.isZero()?"-"+z:z},v.toFraction=function(k){var V,z,J,Z,$,pe,Ee,Ie,Re,qe,He,Xe,St=this,zt=St.d,Ct=St.constructor;if(!zt)return new Ct(St);if(Re=z=new Ct(1),J=Ie=new Ct(0),V=new Ct(J),$=V.e=xe(zt)-St.e-1,pe=$%ne,V.d[0]=re(10,pe<0?ne+pe:pe),k==null)k=$>0?V:Re;else{if(Ee=new Ct(k),!Ee.isInt()||Ee.lt(Re))throw Error(b+Ee);k=Ee.gt(V)?$>0?V:Re:Ee}for(d=!1,Ee=new Ct(w(zt)),qe=Ct.precision,Ct.precision=$=zt.length*ne*2;He=E(Ee,V,0,1,1),Z=z.plus(He.times(J)),Z.cmp(k)!=1;)z=J,J=Z,Z=Re,Re=Ie.plus(He.times(Z)),Ie=Z,Z=V,V=Ee.minus(He.times(Z)),Ee=Z;return Z=E(k.minus(z),J,0,1,1),Ie=Ie.plus(Z.times(Re)),z=z.plus(Z.times(J)),Ie.s=Re.s=St.s,Xe=E(Re,J,$,1).minus(St).abs().cmp(E(Ie,z,$,1).minus(St).abs())<1?[Re,J]:[Ie,z],Ct.precision=qe,d=!0,Xe},v.toHexadecimal=v.toHex=function(k,V){return we(this,16,k,V)},v.toNearest=function(k,V){var z=this,J=z.constructor;if(z=new J(z),k==null){if(!z.d)return z;k=new J(1),V=J.rounding}else{if(k=new J(k),V===void 0?V=J.rounding:y(V,0,8),!z.d)return k.s?z:k;if(!k.d)return k.s&&(k.s=z.s),k}return k.d[0]?(d=!1,z=E(z,k,0,V,1).times(k),d=!0,h(z)):(k.s=z.s,z=k),z},v.toNumber=function(){return+this},v.toOctal=function(k,V){return we(this,8,k,V)},v.toPower=v.pow=function(k){var V,z,J,Z,$,pe,Ee=this,Ie=Ee.constructor,Re=+(k=new Ie(k));if(!Ee.d||!k.d||!Ee.d[0]||!k.d[0])return new Ie(re(+Ee,Re));if(Ee=new Ie(Ee),Ee.eq(1))return Ee;if(J=Ie.precision,$=Ie.rounding,k.eq(1))return h(Ee,J,$);if(V=U(k.e/ne),V>=k.d.length-1&&(z=Re<0?-Re:Re)<=ee)return Z=fe(Ie,Ee,z,J),k.s<0?new Ie(1).div(Z):h(Z,J,$);if(pe=Ee.s,pe<0){if(VIe.maxE+1||V0?pe/0:0):(d=!1,Ie.rounding=Ee.s=1,z=Math.min(12,(V+"").length),Z=H(k.times(Y(Ee,J+z)),J),Z.d&&(Z=h(Z,J+5,1),_(Z.d,J,$)&&(V=J+10,Z=h(H(k.times(Y(Ee,V+z)),V),V+5,1),+w(Z.d).slice(J+1,J+15)+1==1e14&&(Z=h(Z,J+1,0)))),Z.s=pe,d=!0,Ie.rounding=$,h(Z,J,$))},v.toPrecision=function(k,V){var z,J=this,Z=J.constructor;return k===void 0?z=A(J,J.e<=Z.toExpNeg||J.e>=Z.toExpPos):(y(k,1,r),V===void 0?V=Z.rounding:y(V,0,8),J=h(new Z(J),k,V),z=A(J,k<=J.e||J.e<=Z.toExpNeg,k)),J.isNeg()&&!J.isZero()?"-"+z:z},v.toSignificantDigits=v.toSD=function(k,V){var z=this,J=z.constructor;return k===void 0?(k=J.precision,V=J.rounding):(y(k,1,r),V===void 0?V=J.rounding:y(V,0,8)),h(new J(z),k,V)},v.toString=function(){var k=this,V=k.constructor,z=A(k,k.e<=V.toExpNeg||k.e>=V.toExpPos);return k.isNeg()&&!k.isZero()?"-"+z:z},v.truncated=v.trunc=function(){return h(new this.constructor(this),this.e+1,1)},v.valueOf=v.toJSON=function(){var k=this,V=k.constructor,z=A(k,k.e<=V.toExpNeg||k.e>=V.toExpPos);return k.isNeg()?"-"+z:z};function w(k){var V,z,J,Z=k.length-1,$="",pe=k[0];if(Z>0){for($+=pe,V=1;Vz)throw Error(b+k)}function _(k,V,z,J){var Z,$,pe,Ee;for($=k[0];$>=10;$/=10)--V;return--V<0?(V+=ne,Z=0):(Z=Math.ceil((V+1)/ne),V%=ne),$=re(10,ne-V),Ee=k[Z]%$|0,J==null?V<3?(V==0?Ee=Ee/100|0:V==1&&(Ee=Ee/10|0),pe=z<4&&Ee==99999||z>3&&Ee==49999||Ee==5e4||Ee==0):pe=(z<4&&Ee+1==$||z>3&&Ee+1==$/2)&&(k[Z+1]/$/100|0)==re(10,V-2)-1||(Ee==$/2||Ee==0)&&(k[Z+1]/$/100|0)==0:V<4?(V==0?Ee=Ee/1e3|0:V==1?Ee=Ee/100|0:V==2&&(Ee=Ee/10|0),pe=(J||z<4)&&Ee==9999||!J&&z>3&&Ee==4999):pe=((J||z<4)&&Ee+1==$||!J&&z>3&&Ee+1==$/2)&&(k[Z+1]/$/1e3|0)==re(10,V-3)-1,pe}function P(k,V,z){for(var J,Z=[0],$,pe=0,Ee=k.length;pez-1&&(Z[J+1]===void 0&&(Z[J+1]=0),Z[J+1]+=Z[J]/z|0,Z[J]%=z)}return Z.reverse()}function M(k,V){var z,J,Z;if(V.isZero())return V;J=V.d.length,J<32?(z=Math.ceil(J/3),Z=(1/Oe(4,z)).toString()):(z=16,Z="2.3283064365386962890625e-10"),k.precision+=z,V=he(k,1,V.times(Z),new k(1));for(var $=z;$--;){var pe=V.times(V);V=pe.times(pe).minus(pe).times(8).plus(1)}return k.precision-=z,V}var E=function(){function k(J,Z,$){var pe,Ee=0,Ie=J.length;for(J=J.slice();Ie--;)pe=J[Ie]*Z+Ee,J[Ie]=pe%$|0,Ee=pe/$|0;return Ee&&J.unshift(Ee),J}function V(J,Z,$,pe){var Ee,Ie;if($!=pe)Ie=$>pe?1:-1;else for(Ee=Ie=0;Ee<$;Ee++)if(J[Ee]!=Z[Ee]){Ie=J[Ee]>Z[Ee]?1:-1;break}return Ie}function z(J,Z,$,pe){for(var Ee=0;$--;)J[$]-=Ee,Ee=J[$]1;)J.shift()}return function(J,Z,$,pe,Ee,Ie){var Re,qe,He,Xe,St,zt,Ct,ii,xr,Ni,Fr,Wi,ec,_o,n4,E1,sd,I2,wo,T1,A1=J.constructor,P1=J.s==Z.s?1:-1,ia=J.d,ni=Z.d;if(!ia||!ia[0]||!ni||!ni[0])return new A1(!J.s||!Z.s||(ia?ni&&ia[0]==ni[0]:!ni)?NaN:ia&&ia[0]==0||!ni?P1*0:P1/0);for(Ie?(St=1,qe=J.e-Z.e):(Ie=me,St=ne,qe=U(J.e/St)-U(Z.e/St)),wo=ni.length,sd=ia.length,xr=new A1(P1),Ni=xr.d=[],He=0;ni[He]==(ia[He]||0);He++);if(ni[He]>(ia[He]||0)&&qe--,$==null?(_o=$=A1.precision,pe=A1.rounding):Ee?_o=$+(J.e-Z.e)+1:_o=$,_o<0)Ni.push(1),zt=!0;else{if(_o=_o/St+2|0,He=0,wo==1){for(Xe=0,ni=ni[0],_o++;(He1&&(ni=k(ni,Xe,Ie),ia=k(ia,Xe,Ie),wo=ni.length,sd=ia.length),E1=wo,Fr=ia.slice(0,wo),Wi=Fr.length;Wi=Ie/2&&++I2;do Xe=0,Re=V(ni,Fr,wo,Wi),Re<0?(ec=Fr[0],wo!=Wi&&(ec=ec*Ie+(Fr[1]||0)),Xe=ec/I2|0,Xe>1?(Xe>=Ie&&(Xe=Ie-1),Ct=k(ni,Xe,Ie),ii=Ct.length,Wi=Fr.length,Re=V(Ct,Fr,ii,Wi),Re==1&&(Xe--,z(Ct,wo=10;Xe/=10)He++;xr.e=He+qe*St-1,h(xr,Ee?$+xr.e+1:$,pe,zt)}return xr}}();function h(k,V,z,J){var Z,$,pe,Ee,Ie,Re,qe,He,Xe,St=k.constructor;e:if(V!=null){if(He=k.d,!He)return k;for(Z=1,Ee=He[0];Ee>=10;Ee/=10)Z++;if($=V-Z,$<0)$+=ne,pe=V,qe=He[Xe=0],Ie=qe/re(10,Z-pe-1)%10|0;else if(Xe=Math.ceil(($+1)/ne),Ee=He.length,Xe>=Ee)if(J){for(;Ee++<=Xe;)He.push(0);qe=Ie=0,Z=1,$%=ne,pe=$-ne+1}else break e;else{for(qe=Ee=He[Xe],Z=1;Ee>=10;Ee/=10)Z++;$%=ne,pe=$-ne+Z,Ie=pe<0?0:qe/re(10,Z-pe-1)%10|0}if(J=J||V<0||He[Xe+1]!==void 0||(pe<0?qe:qe%re(10,Z-pe-1)),Re=z<4?(Ie||J)&&(z==0||z==(k.s<0?3:2)):Ie>5||Ie==5&&(z==4||J||z==6&&($>0?pe>0?qe/re(10,Z-pe):0:He[Xe-1])%10&1||z==(k.s<0?8:7)),V<1||!He[0])return He.length=0,Re?(V-=k.e+1,He[0]=re(10,(ne-V%ne)%ne),k.e=-V||0):He[0]=k.e=0,k;if($==0?(He.length=Xe,Ee=1,Xe--):(He.length=Xe+1,Ee=re(10,ne-$),He[Xe]=pe>0?(qe/re(10,Z-pe)%re(10,pe)|0)*Ee:0),Re)for(;;)if(Xe==0){for($=1,pe=He[0];pe>=10;pe/=10)$++;for(pe=He[0]+=Ee,Ee=1;pe>=10;pe/=10)Ee++;$!=Ee&&(k.e++,He[0]==me&&(He[0]=1));break}else{if(He[Xe]+=Ee,He[Xe]!=me)break;He[Xe--]=0,Ee=1}for($=He.length;He[--$]===0;)He.pop()}return d&&(k.e>St.maxE?(k.d=null,k.e=NaN):k.e0?$=$.charAt(0)+"."+$.slice(1)+q(J):pe>1&&($=$.charAt(0)+"."+$.slice(1)),$=$+(k.e<0?"e":"e+")+k.e):Z<0?($="0."+q(-Z-1)+$,z&&(J=z-pe)>0&&($+=q(J))):Z>=pe?($+=q(Z+1-pe),z&&(J=z-Z-1)>0&&($=$+"."+q(J))):((J=Z+1)0&&(Z+1===pe&&($+="."),$+=q(J))),$}function F(k,V){var z=k[0];for(V*=ne;z>=10;z/=10)V++;return V}function O(k,V,z){if(V>R)throw d=!0,z&&(k.precision=z),Error(T);return h(new k(n),V,1,!0)}function N(k,V,z){if(V>g)throw Error(T);return h(new k(a),V,z,!0)}function xe(k){var V=k.length-1,z=V*ne+1;if(V=k[V],V){for(;V%10==0;V/=10)z--;for(V=k[0];V>=10;V/=10)z++}return z}function q(k){for(var V="";k--;)V+="0";return V}function fe(k,V,z,J){var Z,$=new k(1),pe=Math.ceil(J/ne+4);for(d=!1;;){if(z%2&&($=$.times(V),Ne($.d,pe)&&(Z=!0)),z=U(z/2),z===0){z=$.d.length-1,Z&&$.d[z]===0&&++$.d[z];break}V=V.times(V),Ne(V.d,pe)}return d=!0,$}function Te(k){return k.d[k.d.length-1]&1}function _e(k,V,z){for(var J,Z=new k(V[0]),$=0;++$17)return new Xe(k.d?k.d[0]?k.s<0?0:1/0:1:k.s?k.s<0?0:k:0/0);for(V==null?(d=!1,Ie=zt):Ie=V,Ee=new Xe(.03125);k.e>-2;)k=k.times(Ee),He+=5;for(J=Math.log(re(2,He))/Math.LN10*2+5|0,Ie+=J,z=$=pe=new Xe(1),Xe.precision=Ie;;){if($=h($.times(k),Ie,1),z=z.times(++qe),Ee=pe.plus(E($,z,Ie,1)),w(Ee.d).slice(0,Ie)===w(pe.d).slice(0,Ie)){for(Z=He;Z--;)pe=h(pe.times(pe),Ie,1);if(V==null)if(Re<3&&_(pe.d,Ie-J,St,Re))Xe.precision=Ie+=10,z=$=Ee=new Xe(1),qe=0,Re++;else return h(pe,Xe.precision=zt,St,d=!0);else return Xe.precision=zt,pe}pe=Ee}}function Y(k,V){var z,J,Z,$,pe,Ee,Ie,Re,qe,He,Xe,St=1,zt=10,Ct=k,ii=Ct.d,xr=Ct.constructor,Ni=xr.rounding,Fr=xr.precision;if(Ct.s<0||!ii||!ii[0]||!Ct.e&&ii[0]==1&&ii.length==1)return new xr(ii&&!ii[0]?-1/0:Ct.s!=1?NaN:ii?0:Ct);if(V==null?(d=!1,qe=Fr):qe=V,xr.precision=qe+=zt,z=w(ii),J=z.charAt(0),Math.abs($=Ct.e)<15e14){for(;J<7&&J!=1||J==1&&z.charAt(1)>3;)Ct=Ct.times(k),z=w(Ct.d),J=z.charAt(0),St++;$=Ct.e,J>1?(Ct=new xr("0."+z),$++):Ct=new xr(J+"."+z.slice(1))}else return Re=O(xr,qe+2,Fr).times($+""),Ct=Y(new xr(J+"."+z.slice(1)),qe-zt).plus(Re),xr.precision=Fr,V==null?h(Ct,Fr,Ni,d=!0):Ct;for(He=Ct,Ie=pe=Ct=E(Ct.minus(1),Ct.plus(1),qe,1),Xe=h(Ct.times(Ct),qe,1),Z=3;;){if(pe=h(pe.times(Xe),qe,1),Re=Ie.plus(E(pe,new xr(Z),qe,1)),w(Re.d).slice(0,qe)===w(Ie.d).slice(0,qe))if(Ie=Ie.times(2),$!==0&&(Ie=Ie.plus(O(xr,qe+2,Fr).times($+""))),Ie=E(Ie,new xr(St),qe,1),V==null)if(_(Ie.d,qe-zt,Ni,Ee))xr.precision=qe+=zt,Re=pe=Ct=E(He.minus(1),He.plus(1),qe,1),Xe=h(Ct.times(Ct),qe,1),Z=Ee=1;else return h(Ie,xr.precision=Fr,Ni,d=!0);else return xr.precision=Fr,Ie;Ie=Re,Z+=2}}function Q(k){return String(k.s*k.s/0)}function se(k,V){var z,J,Z;for((z=V.indexOf("."))>-1&&(V=V.replace(".","")),(J=V.search(/e/i))>0?(z<0&&(z=J),z+=+V.slice(J+1),V=V.substring(0,J)):z<0&&(z=V.length),J=0;V.charCodeAt(J)===48;J++);for(Z=V.length;V.charCodeAt(Z-1)===48;--Z);if(V=V.slice(J,Z),V){if(Z-=J,k.e=z=z-J-1,k.d=[],J=(z+1)%ne,z<0&&(J+=ne),Jk.constructor.maxE?(k.d=null,k.e=NaN):k.e-1){if(V=V.replace(/(\d)_(?=\d)/g,"$1"),ce.test(V))return se(k,V)}else if(V==="Infinity"||V==="NaN")return+V||(k.s=NaN),k.e=NaN,k.d=null,k;if(ge.test(V))z=16,V=V.toLowerCase();else if(oe.test(V))z=2;else if(be.test(V))z=8;else throw Error(b+V);for($=V.search(/p/i),$>0?(Ie=+V.slice($+1),V=V.substring(2,$)):V=V.slice(2),$=V.indexOf("."),pe=$>=0,J=k.constructor,pe&&(V=V.replace(".",""),Ee=V.length,$=Ee-$,Z=fe(J,new J(z),$,$*2)),Re=P(V,z,me),qe=Re.length-1,$=qe;Re[$]===0;--$)Re.pop();return $<0?new J(k.s*0):(k.e=F(Re,qe),k.d=Re,d=!1,pe&&(k=E(k,Z,Ee*4)),Ie&&(k=k.times(Math.abs(Ie)<54?re(2,Ie):o.pow(2,Ie))),d=!0,k)}function ue(k,V){var z,J=V.d.length;if(J<3)return V.isZero()?V:he(k,2,V,V);z=1.4*Math.sqrt(J),z=z>16?16:z|0,V=V.times(1/Oe(5,z)),V=he(k,2,V,V);for(var Z,$=new k(5),pe=new k(16),Ee=new k(20);z--;)Z=V.times(V),V=V.times($.plus(Z.times(pe.times(Z).minus(Ee))));return V}function he(k,V,z,J,Z){var $,pe,Ee,Ie,Re=1,qe=k.precision,He=Math.ceil(qe/ne);for(d=!1,Ie=z.times(z),Ee=new k(J);;){if(pe=E(Ee.times(Ie),new k(V++*V++),qe,1),Ee=Z?J.plus(pe):J.minus(pe),J=E(pe.times(Ie),new k(V++*V++),qe,1),pe=Ee.plus(J),pe.d[He]!==void 0){for($=He;pe.d[$]===Ee.d[$]&&$--;);if($==-1)break}$=Ee,Ee=J,J=pe,pe=$,Re++}return d=!0,pe.d.length=He+1,pe}function Oe(k,V){for(var z=k;--V;)z*=k;return z}function ye(k,V){var z,J=V.s<0,Z=N(k,k.precision,1),$=Z.times(.5);if(V=V.abs(),V.lte($))return f=J?4:1,V;if(z=V.divToInt(Z),z.isZero())f=J?3:2;else{if(V=V.minus(z.times(Z)),V.lte($))return f=Te(z)?J?2:3:J?4:1,V;f=Te(z)?J?1:4:J?3:2}return V.minus(Z).abs()}function we(k,V,z,J){var Z,$,pe,Ee,Ie,Re,qe,He,Xe,St=k.constructor,zt=z!==void 0;if(zt?(y(z,1,r),J===void 0?J=St.rounding:y(J,0,8)):(z=St.precision,J=St.rounding),!k.isFinite())qe=Q(k);else{for(qe=A(k),pe=qe.indexOf("."),zt?(Z=2,V==16?z=z*4-3:V==8&&(z=z*3-2)):Z=V,pe>=0&&(qe=qe.replace(".",""),Xe=new St(1),Xe.e=qe.length-pe,Xe.d=P(A(Xe),10,Z),Xe.e=Xe.d.length),He=P(qe,10,Z),$=Ie=He.length;He[--Ie]==0;)He.pop();if(!He[0])qe=zt?"0p+0":"0";else{if(pe<0?$--:(k=new St(k),k.d=He,k.e=$,k=E(k,Xe,z,J,0,Z),He=k.d,$=k.e,Re=c),pe=He[z],Ee=Z/2,Re=Re||He[z+1]!==void 0,Re=J<4?(pe!==void 0||Re)&&(J===0||J===(k.s<0?3:2)):pe>Ee||pe===Ee&&(J===4||Re||J===6&&He[z-1]&1||J===(k.s<0?8:7)),He.length=z,Re)for(;++He[--z]>Z-1;)He[z]=0,z||(++$,He.unshift(1));for(Ie=He.length;!He[Ie-1];--Ie);for(pe=0,qe="";pe1)if(V==16||V==8){for(pe=V==16?4:3,--Ie;Ie%pe;Ie++)qe+="0";for(He=P(qe,Z,V),Ie=He.length;!He[Ie-1];--Ie);for(pe=1,qe="1.";peIe)for($-=Ie;$--;)qe+="0";else $V)return k.length=V,!0}function Ae(k){return new this(k).abs()}function je(k){return new this(k).acos()}function j(k){return new this(k).acosh()}function W(k,V){return new this(k).plus(V)}function C(k){return new this(k).asin()}function D(k){return new this(k).asinh()}function G(k){return new this(k).atan()}function X(k){return new this(k).atanh()}function le(k,V){k=new this(k),V=new this(V);var z,J=this.precision,Z=this.rounding,$=J+4;return!k.s||!V.s?z=new this(NaN):!k.d&&!V.d?(z=N(this,$,1).times(V.s>0?.25:.75),z.s=k.s):!V.d||k.isZero()?(z=V.s<0?N(this,J,Z):new this(0),z.s=k.s):!k.d||V.isZero()?(z=N(this,$,1).times(.5),z.s=k.s):V.s<0?(this.precision=$,this.rounding=1,z=this.atan(E(k,V,$,1)),V=N(this,$,1),this.precision=J,this.rounding=Z,z=k.s<0?z.minus(V):z.plus(V)):z=this.atan(E(k,V,$,1)),z}function ie(k){return new this(k).cbrt()}function de(k){return h(k=new this(k),k.e+1,2)}function Be(k,V,z){return new this(k).clamp(V,z)}function Pe(k){if(!k||typeof k!="object")throw Error(p+"Object expected");var V,z,J,Z=k.defaults===!0,$=["precision",1,r,"rounding",0,8,"toExpNeg",-e,0,"toExpPos",0,e,"maxE",0,e,"minE",-e,0,"modulo",0,9];for(V=0;V<$.length;V+=3)if(z=$[V],Z&&(this[z]=s[z]),(J=k[z])!==void 0)if(U(J)===J&&J>=$[V+1]&&J<=$[V+2])this[z]=J;else throw Error(b+z+": "+J);if(z="crypto",Z&&(this[z]=s[z]),(J=k[z])!==void 0)if(J===!0||J===!1||J===0||J===1)if(J)if(typeof crypto<"u"&&crypto&&(crypto.getRandomValues||crypto.randomBytes))this[z]=!0;else throw Error(I);else this[z]=!1;else throw Error(b+z+": "+J);return this}function De(k){return new this(k).cos()}function et(k){return new this(k).cosh()}function Le(k){var V,z,J;function Z($){var pe,Ee,Ie,Re=this;if(!(Re instanceof Z))return new Z($);if(Re.constructor=Z,Ki($)){Re.s=$.s,d?!$.d||$.e>Z.maxE?(Re.e=NaN,Re.d=null):$.e=10;Ee/=10)pe++;d?pe>Z.maxE?(Re.e=NaN,Re.d=null):pe=429e7?V[$]=crypto.getRandomValues(new Uint32Array(1))[0]:Ee[$++]=Z%1e7;else if(crypto.randomBytes){for(V=crypto.randomBytes(J*=4);$=214e7?crypto.randomBytes(4).copy(V,$):(Ee.push(Z%1e7),$+=4);$=J/4}else throw Error(I);else for(;$=10;Z/=10)J++;J{"use strict";Object.defineProperty(HE,"__esModule",{value:!0});HE.BinaryParser=void 0;var VE=require("assert"),g0t=u6(),y0t=zi(),v0t=function(){function t(e){this.bytes=y0t.Buffer.from(e,"hex")}return t.prototype.peek=function(){return VE.ok(this.bytes.byteLength!==0),this.bytes[0]},t.prototype.skip=function(e){VE.ok(e<=this.bytes.byteLength),this.bytes=this.bytes.slice(e)},t.prototype.read=function(e){VE.ok(e<=this.bytes.byteLength);var r=this.bytes.slice(0,e);return this.skip(e),r},t.prototype.readUIntN=function(e){return VE.ok(0>>0},t.prototype.readUInt8=function(){return this.readUIntN(1)},t.prototype.readUInt16=function(){return this.readUIntN(2)},t.prototype.readUInt32=function(){return this.readUIntN(4)},t.prototype.size=function(){return this.bytes.byteLength},t.prototype.end=function(e){var r=this.bytes.byteLength;return r===0||e!==void 0&&r<=e},t.prototype.readVariableLength=function(){return this.read(this.readVariableLengthLength())},t.prototype.readVariableLengthLength=function(){var e=this.readUInt8();if(e<=192)return e;if(e<=240){var r=this.readUInt8();return 193+(e-193)*256+r}else if(e<=254){var r=this.readUInt8(),i=this.readUInt8();return 12481+(e-241)*65536+r*256+i}throw new Error("Invalid variable length indicator")},t.prototype.readFieldOrdinal=function(){var e=this.readUInt8(),r=e&15;if(e>>=4,e===0&&(e=this.readUInt8(),e===0||e<16))throw new Error("Cannot read FieldOrdinal, type_code out of range");if(r===0&&(r=this.readUInt8(),r===0||r<16))throw new Error("Cannot read FieldOrdinal, field_code out of range");return e<<16|r},t.prototype.readField=function(){return g0t.Field.fromString(this.readFieldOrdinal().toString())},t.prototype.readType=function(e){return e.fromParser(this)},t.prototype.typeForField=function(e){return e.associatedType},t.prototype.readFieldValue=function(e){var r=this.typeForField(e);if(!r)throw new Error("unsupported: (".concat(e.name,", ").concat(e.type.name,")"));var i=e.isVariableLengthEncoded?this.readVariableLengthLength():void 0,n=r.fromParser(this,i);if(n===void 0)throw new Error("fromParser for (".concat(e.name,", ").concat(e.type.name,") -> undefined "));return n},t.prototype.readFieldAndValue=function(){var e=this.readField();return[e,this.readFieldValue(e)]},t}();HE.BinaryParser=v0t});var GE=x(f6=>{"use strict";var b0t=f6&&f6.__extends||function(){var t=function(e,r){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var a in n)Object.prototype.hasOwnProperty.call(n,a)&&(i[a]=n[a])},t(e,r)};return function(e,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");t(e,r);function i(){this.constructor=e}e.prototype=r===null?Object.create(r):(i.prototype=r.prototype,new i)}}();Object.defineProperty(f6,"__esModule",{value:!0});f6.Currency=void 0;var _0t=qE(),zE=zi(),w0t=/^0{40}$/,x0t=/^[A-Z0-9a-z?!@#$%^&*(){}[\]|]{3}$/,S0t=/^[A-F0-9]{40}$/,E0t=/^0{24}[\x00-\x7F]{6}0{10}$/;function T0t(t){var e=zE.Buffer.alloc(20);if(t!=="XRP"){var r=t.split("").map(function(i){return i.charCodeAt(0)});e.set(r,12)}return e}function A0t(t){return x0t.test(t)}function P0t(t){var e=t.toString();return e==="XRP"?null:A0t(e)?e:null}function O0t(t){return S0t.test(t)}function R0t(t){return t.length===3||O0t(t)}function M0t(t){return t.byteLength===20}function C0t(t){return t instanceof zE.Buffer?M0t(t):R0t(t)}function I0t(t){if(!C0t(t))throw new Error("Unsupported Currency representation: ".concat(t));return t.length===3?T0t(t):zE.Buffer.from(t,"hex")}var N0t=function(t){b0t(e,t);function e(r){var i=t.call(this,r??e.XRP.bytes)||this,n=i.bytes.toString("hex");return w0t.test(n)?i._iso="XRP":E0t.test(n)?i._iso=P0t(i.bytes.slice(12,15)):i._iso=null,i}return e.prototype.iso=function(){return this._iso},e.from=function(r){if(r instanceof e)return r;if(typeof r=="string")return new e(I0t(r));throw new Error("Cannot construct Currency from value given")},e.prototype.toJSON=function(){var r=this.iso();return r!==null?r:this.bytes.toString("hex").toUpperCase()},e.XRP=new e(zE.Buffer.alloc(20)),e}(_0t.Hash160);f6.Currency=N0t});var h2=x((Cqt,JE)=>{var Yn=function(t){"use strict";var e=1e7,r=7,i=9007199254740992,n=p(i),a="0123456789abcdefghijklmnopqrstuvwxyz",s=typeof BigInt=="function";function o(C,D,G,X){return typeof C>"u"?o[0]:typeof D<"u"?+D==10&&!G?j(C):he(C,D,G,X):j(C)}function c(C,D){this.value=C,this.sign=D,this.isSmall=!1}c.prototype=Object.create(o.prototype);function u(C){this.value=C,this.sign=C<0,this.isSmall=!0}u.prototype=Object.create(o.prototype);function f(C){this.value=C}f.prototype=Object.create(o.prototype);function d(C){return-i0?Math.floor(C):Math.ceil(C)}function U(C,D){var G=C.length,X=D.length,le=new Array(G),ie=0,de=e,Be,Pe;for(Pe=0;Pe=de?1:0,le[Pe]=Be-ie*de;for(;Pe0&&le.push(ie),le}function re(C,D){return C.length>=D.length?U(C,D):U(D,C)}function oe(C,D){var G=C.length,X=new Array(G),le=e,ie,de;for(de=0;de0;)X[de++]=D%le,D=Math.floor(D/le);return X}c.prototype.add=function(C){var D=j(C);if(this.sign!==D.sign)return this.subtract(D.negate());var G=this.value,X=D.value;return D.isSmall?new c(oe(G,Math.abs(X)),this.sign):new c(re(G,X),this.sign)},c.prototype.plus=c.prototype.add,u.prototype.add=function(C){var D=j(C),G=this.value;if(G<0!==D.sign)return this.subtract(D.negate());var X=D.value;if(D.isSmall){if(d(G+X))return new u(G+X);X=p(Math.abs(X))}return new c(oe(X,Math.abs(G)),G<0)},u.prototype.plus=u.prototype.add,f.prototype.add=function(C){return new f(this.value+j(C).value)},f.prototype.plus=f.prototype.add;function ge(C,D){var G=C.length,X=D.length,le=new Array(G),ie=0,de=e,Be,Pe;for(Be=0;Be=0?X=ge(C,D):(X=ge(D,C),G=!G),X=b(X),typeof X=="number"?(G&&(X=-X),new u(X)):new c(X,G)}function ce(C,D,G){var X=C.length,le=new Array(X),ie=-D,de=e,Be,Pe;for(Be=0;Be=0)},u.prototype.minus=u.prototype.subtract,f.prototype.subtract=function(C){return new f(this.value-j(C).value)},f.prototype.minus=f.prototype.subtract,c.prototype.negate=function(){return new c(this.value,!this.sign)},u.prototype.negate=function(){var C=this.sign,D=new u(-this.value);return D.sign=!C,D},f.prototype.negate=function(){return new f(-this.value)},c.prototype.abs=function(){return new c(this.value,!1)},u.prototype.abs=function(){return new u(Math.abs(this.value))},f.prototype.abs=function(){return new f(this.value>=0?this.value:-this.value)};function me(C,D){var G=C.length,X=D.length,le=G+X,ie=I(le),de=e,Be,Pe,De,et,Le;for(De=0;De0;)X[Be++]=ie%le,ie=Math.floor(ie/le);return X}function ee(C,D){for(var G=[];D-- >0;)G.push(0);return G.concat(C)}function R(C,D){var G=Math.max(C.length,D.length);if(G<=30)return me(C,D);G=Math.ceil(G/2);var X=C.slice(G),le=C.slice(0,G),ie=D.slice(G),de=D.slice(0,G),Be=R(le,de),Pe=R(X,ie),De=R(re(le,X),re(de,ie)),et=re(re(Be,ee(ge(ge(De,Be),Pe),G)),ee(Pe,2*G));return T(et),et}function g(C,D){return-.012*C-.012*D+15e-6*C*D>0}c.prototype.multiply=function(C){var D=j(C),G=this.value,X=D.value,le=this.sign!==D.sign,ie;if(D.isSmall){if(X===0)return o[0];if(X===1)return this;if(X===-1)return this.negate();if(ie=Math.abs(X),ie=0;Le--){for(et=le-1,Pe[Le+X]!==de&&(et=Math.floor((Pe[Le+X]*le+Pe[Le+X-1])/de)),Ve=0,Mr=0,at=De.length,rt=0;rtX&&(De=(De+1)*de),Be=Math.ceil(De/et);do{if(Le=ne(D,Be),E(Le,ie)<=0)break;Be--}while(Be);le.push(Be),ie=ge(ie,Le)}return le.reverse(),[b(le),b(ie)]}function P(C,D){var G=C.length,X=I(G),le=e,ie,de,Be,Pe;for(Be=0,ie=G-1;ie>=0;--ie)Pe=Be*le+C[ie],de=L(Pe/D),Be=Pe-de*D,X[ie]=de|0;return[X,Be|0]}function M(C,D){var G,X=j(D);if(s)return[new f(C.value/X.value),new f(C.value%X.value)];var le=C.value,ie=X.value,de;if(ie===0)throw new Error("Cannot divide by zero");if(C.isSmall)return X.isSmall?[new u(L(le/ie)),new u(le%ie)]:[o[0],C];if(X.isSmall){if(ie===1)return[C,o[0]];if(ie==-1)return[C.negate(),o[0]];var Be=Math.abs(ie);if(BeD.length?1:-1;for(var G=C.length-1;G>=0;G--)if(C[G]!==D[G])return C[G]>D[G]?1:-1;return 0}c.prototype.compareAbs=function(C){var D=j(C),G=this.value,X=D.value;return D.isSmall?1:E(G,X)},u.prototype.compareAbs=function(C){var D=j(C),G=Math.abs(this.value),X=D.value;return D.isSmall?(X=Math.abs(X),G===X?0:G>X?1:-1):-1},f.prototype.compareAbs=function(C){var D=this.value,G=j(C).value;return D=D>=0?D:-D,G=G>=0?G:-G,D===G?0:D>G?1:-1},c.prototype.compare=function(C){if(C===1/0)return-1;if(C===-1/0)return 1;var D=j(C),G=this.value,X=D.value;return this.sign!==D.sign?D.sign?1:-1:D.isSmall?this.sign?-1:1:E(G,X)*(this.sign?-1:1)},c.prototype.compareTo=c.prototype.compare,u.prototype.compare=function(C){if(C===1/0)return-1;if(C===-1/0)return 1;var D=j(C),G=this.value,X=D.value;return D.isSmall?G==X?0:G>X?1:-1:G<0!==D.sign?G<0?-1:1:G<0?1:-1},u.prototype.compareTo=u.prototype.compare,f.prototype.compare=function(C){if(C===1/0)return-1;if(C===-1/0)return 1;var D=this.value,G=j(C).value;return D===G?0:D>G?1:-1},f.prototype.compareTo=f.prototype.compare,c.prototype.equals=function(C){return this.compare(C)===0},f.prototype.eq=f.prototype.equals=u.prototype.eq=u.prototype.equals=c.prototype.eq=c.prototype.equals,c.prototype.notEquals=function(C){return this.compare(C)!==0},f.prototype.neq=f.prototype.notEquals=u.prototype.neq=u.prototype.notEquals=c.prototype.neq=c.prototype.notEquals,c.prototype.greater=function(C){return this.compare(C)>0},f.prototype.gt=f.prototype.greater=u.prototype.gt=u.prototype.greater=c.prototype.gt=c.prototype.greater,c.prototype.lesser=function(C){return this.compare(C)<0},f.prototype.lt=f.prototype.lesser=u.prototype.lt=u.prototype.lesser=c.prototype.lt=c.prototype.lesser,c.prototype.greaterOrEquals=function(C){return this.compare(C)>=0},f.prototype.geq=f.prototype.greaterOrEquals=u.prototype.geq=u.prototype.greaterOrEquals=c.prototype.geq=c.prototype.greaterOrEquals,c.prototype.lesserOrEquals=function(C){return this.compare(C)<=0},f.prototype.leq=f.prototype.lesserOrEquals=u.prototype.leq=u.prototype.lesserOrEquals=c.prototype.leq=c.prototype.lesserOrEquals,c.prototype.isEven=function(){return(this.value[0]&1)===0},u.prototype.isEven=function(){return(this.value&1)===0},f.prototype.isEven=function(){return(this.value&BigInt(1))===BigInt(0)},c.prototype.isOdd=function(){return(this.value[0]&1)===1},u.prototype.isOdd=function(){return(this.value&1)===1},f.prototype.isOdd=function(){return(this.value&BigInt(1))===BigInt(1)},c.prototype.isPositive=function(){return!this.sign},u.prototype.isPositive=function(){return this.value>0},f.prototype.isPositive=u.prototype.isPositive,c.prototype.isNegative=function(){return this.sign},u.prototype.isNegative=function(){return this.value<0},f.prototype.isNegative=u.prototype.isNegative,c.prototype.isUnit=function(){return!1},u.prototype.isUnit=function(){return Math.abs(this.value)===1},f.prototype.isUnit=function(){return this.abs().value===BigInt(1)},c.prototype.isZero=function(){return!1},u.prototype.isZero=function(){return this.value===0},f.prototype.isZero=function(){return this.value===BigInt(0)},c.prototype.isDivisibleBy=function(C){var D=j(C);return D.isZero()?!1:D.isUnit()?!0:D.compareAbs(2)===0?this.isEven():this.mod(D).isZero()},f.prototype.isDivisibleBy=u.prototype.isDivisibleBy=c.prototype.isDivisibleBy;function h(C){var D=C.abs();if(D.isUnit())return!1;if(D.equals(2)||D.equals(3)||D.equals(5))return!0;if(D.isEven()||D.isDivisibleBy(3)||D.isDivisibleBy(5))return!1;if(D.lesser(49))return!0}function A(C,D){for(var G=C.prev(),X=G,le=0,ie,de,Be,Pe;X.isEven();)X=X.divide(2),le++;e:for(Be=0;Be-i?new u(C-1):new c(n,!0)},f.prototype.prev=function(){return new f(this.value-BigInt(1))};for(var F=[1];2*F[F.length-1]<=e;)F.push(2*F[F.length-1]);var O=F.length,N=F[O-1];function xe(C){return Math.abs(C)<=e}c.prototype.shiftLeft=function(C){var D=j(C).toJSNumber();if(!xe(D))throw new Error(String(D)+" is too large for shifting.");if(D<0)return this.shiftRight(-D);var G=this;if(G.isZero())return G;for(;D>=O;)G=G.multiply(N),D-=O-1;return G.multiply(F[D])},f.prototype.shiftLeft=u.prototype.shiftLeft=c.prototype.shiftLeft,c.prototype.shiftRight=function(C){var D,G=j(C).toJSNumber();if(!xe(G))throw new Error(String(G)+" is too large for shifting.");if(G<0)return this.shiftLeft(-G);for(var X=this;G>=O;){if(X.isZero()||X.isNegative()&&X.isUnit())return X;D=M(X,N),X=D[1].isNegative()?D[0].prev():D[0],G-=O-1}return D=M(X,F[G]),D[1].isNegative()?D[0].prev():D[0]},f.prototype.shiftRight=u.prototype.shiftRight=c.prototype.shiftRight;function q(C,D,G){D=j(D);for(var X=C.isNegative(),le=D.isNegative(),ie=X?C.not():C,de=le?D.not():D,Be=0,Pe=0,De=null,et=null,Le=[];!ie.isZero()||!de.isZero();)De=M(ie,N),Be=De[1].toJSNumber(),X&&(Be=N-1-Be),et=M(de,N),Pe=et[1].toJSNumber(),le&&(Pe=N-1-Pe),ie=De[0],de=et[0],Le.push(G(Be,Pe));for(var Ve=G(X?1:0,le?1:0)!==0?Yn(-1):Yn(0),Mr=Le.length-1;Mr>=0;Mr-=1)Ve=Ve.multiply(N).add(Yn(Le[Mr]));return Ve}c.prototype.not=function(){return this.negate().prev()},f.prototype.not=u.prototype.not=c.prototype.not,c.prototype.and=function(C){return q(this,C,function(D,G){return D&G})},f.prototype.and=u.prototype.and=c.prototype.and,c.prototype.or=function(C){return q(this,C,function(D,G){return D|G})},f.prototype.or=u.prototype.or=c.prototype.or,c.prototype.xor=function(C){return q(this,C,function(D,G){return D^G})},f.prototype.xor=u.prototype.xor=c.prototype.xor;var fe=1<<30,Te=(e&-e)*(e&-e)|fe;function _e(C){var D=C.value,G=typeof D=="number"?D|fe:typeof D=="bigint"?D|BigInt(fe):D[0]+D[1]*e|Te;return G&-G}function H(C,D){if(D.compareTo(C)<=0){var G=H(C,D.square(D)),X=G.p,le=G.e,ie=X.multiply(D);return ie.compareTo(C)<=0?{p:ie,e:le*2+1}:{p:X,e:le*2}}return{p:Yn(1),e:0}}c.prototype.bitLength=function(){var C=this;return C.compareTo(Yn(0))<0&&(C=C.negate().subtract(Yn(1))),C.compareTo(Yn(0))===0?Yn(0):Yn(H(C,Yn(2)).e).add(Yn(1))},f.prototype.bitLength=u.prototype.bitLength=c.prototype.bitLength;function Y(C,D){return C=j(C),D=j(D),C.greater(D)?C:D}function Q(C,D){return C=j(C),D=j(D),C.lesser(D)?C:D}function se(C,D){if(C=j(C).abs(),D=j(D).abs(),C.equals(D))return C;if(C.isZero())return D;if(D.isZero())return C;for(var G=o[1],X,le;C.isEven()&&D.isEven();)X=Q(_e(C),_e(D)),C=C.divide(X),D=D.divide(X),G=G.multiply(X);for(;C.isEven();)C=C.divide(_e(C));do{for(;D.isEven();)D=D.divide(_e(D));C.greater(D)&&(le=D,D=C,C=le),D=D.subtract(C)}while(!D.isZero());return G.isUnit()?C:C.multiply(G)}function Se(C,D){return C=j(C).abs(),D=j(D).abs(),C.divide(se(C,D)).multiply(D)}function ue(C,D,G){C=j(C),D=j(D);var X=G||Math.random,le=Q(C,D),ie=Y(C,D),de=ie.subtract(le).add(1);if(de.isSmall)return le.add(Math.floor(X()*de));for(var Be=we(de,e).value,Pe=[],De=!0,et=0;et=de){if(Pe==="1"&&de===1)continue;throw new Error(Pe+" is not a valid digit in base "+D+".")}}D=j(D);var De=[],et=C[0]==="-";for(ie=et?1:0;ie"&&ie=0;ie--)X=X.add(C[ie].times(le)),le=le.times(D);return G?X.negate():X}function ye(C,D){return D=D||a,C"}function we(C,D){if(D=Yn(D),D.isZero()){if(C.isZero())return{value:[0],isNegative:!1};throw new Error("Cannot convert nonzero numbers to base 0.")}if(D.equals(-1)){if(C.isZero())return{value:[0],isNegative:!1};if(C.isNegative())return{value:[].concat.apply([],Array.apply(null,Array(-C.toJSNumber())).map(Array.prototype.valueOf,[1,0])),isNegative:!1};var G=Array.apply(null,Array(C.toJSNumber()-1)).map(Array.prototype.valueOf,[0,1]);return G.unshift([1]),{value:[].concat.apply([],G),isNegative:!1}}var X=!1;if(C.isNegative()&&D.isPositive()&&(X=!0,C=C.abs()),D.isUnit())return C.isZero()?{value:[0],isNegative:!1}:{value:Array.apply(null,Array(C.toJSNumber())).map(Number.prototype.valueOf,1),isNegative:X};for(var le=[],ie=C,de;ie.isNegative()||ie.compareAbs(D)>=0;){de=ie.divmod(D),ie=de.quotient;var Be=de.remainder;Be.isNegative()&&(Be=D.minus(Be).abs(),ie=ie.next()),le.push(Be.toJSNumber())}return le.push(ie.toJSNumber()),{value:le.reverse(),isNegative:X}}function Ne(C,D,G){var X=we(C,D);return(X.isNegative?"-":"")+X.value.map(function(le){return ye(le,G)}).join("")}c.prototype.toArray=function(C){return we(this,C)},u.prototype.toArray=function(C){return we(this,C)},f.prototype.toArray=function(C){return we(this,C)},c.prototype.toString=function(C,D){if(C===t&&(C=10),C!==10)return Ne(this,C,D);for(var G=this.value,X=G.length,le=String(G[--X]),ie="0000000",de;--X>=0;)de=String(G[X]),le+=ie.slice(de.length)+de;var Be=this.sign?"-":"";return Be+le},u.prototype.toString=function(C,D){return C===t&&(C=10),C!=10?Ne(this,C,D):String(this.value)},f.prototype.toString=u.prototype.toString,f.prototype.toJSON=c.prototype.toJSON=u.prototype.toJSON=function(){return this.toString()},c.prototype.valueOf=function(){return parseInt(this.toString(),10)},c.prototype.toJSNumber=c.prototype.valueOf,u.prototype.valueOf=function(){return this.value},u.prototype.toJSNumber=u.prototype.valueOf,f.prototype.valueOf=f.prototype.toJSNumber=function(){return parseInt(this.toString(),10)};function Ae(C){if(d(+C)){var D=+C;if(D===L(D))return s?new f(BigInt(D)):new u(D);throw new Error("Invalid integer: "+C)}var G=C[0]==="-";G&&(C=C.slice(1));var X=C.split(/e/i);if(X.length>2)throw new Error("Invalid integer: "+X.join("e"));if(X.length===2){var le=X[1];if(le[0]==="+"&&(le=le.slice(1)),le=+le,le!==L(le)||!d(le))throw new Error("Invalid integer: "+le+" is not a valid exponent.");var ie=X[0],de=ie.indexOf(".");if(de>=0&&(le-=ie.length-de-1,ie=ie.slice(0,de)+ie.slice(de+1)),le<0)throw new Error("Cannot include negative exponent part for integers");ie+=new Array(le+1).join("0"),C=ie}var Be=/^([0-9][0-9]*)$/.test(C);if(!Be)throw new Error("Invalid integer: "+C);if(s)return new f(BigInt(G?"-"+C:C));for(var Pe=[],De=C.length,et=r,Le=De-et;De>0;)Pe.push(+C.slice(Le,De)),Le-=et,Le<0&&(Le=0),De-=et;return T(Pe),new c(Pe,G)}function je(C){if(s)return new f(BigInt(C));if(d(C)){if(C!==L(C))throw new Error(C+" is not an integer.");return new u(C)}return Ae(C.toString())}function j(C){return typeof C=="number"?je(C):typeof C=="string"?Ae(C):typeof C=="bigint"?new f(C):C}for(var W=0;W<1e3;W++)o[W]=j(W),W>0&&(o[-W]=j(-W));return o.one=o[1],o.zero=o[0],o.minusOne=o[-1],o.max=Y,o.min=Q,o.gcd=se,o.lcm=Se,o.isInstance=function(C){return C instanceof c||C instanceof u||C instanceof f},o.randBetween=ue,o.fromArray=function(C,D,G){return Oe(C.map(j),j(D||10),G)},o}();typeof JE<"u"&&JE.hasOwnProperty("exports")&&(JE.exports=Yn);typeof define=="function"&&define.amd&&define(function(){return Yn})});var fye=x(p6=>{"use strict";var k0t=p6&&p6.__extends||function(){var t=function(e,r){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var a in n)Object.prototype.hasOwnProperty.call(n,a)&&(i[a]=n[a])},t(e,r)};return function(e,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");t(e,r);function i(){this.constructor=e}e.prototype=r===null?Object.create(r):(i.prototype=r.prototype,new i)}}();Object.defineProperty(p6,"__esModule",{value:!0});p6.Amount=void 0;var m2=yq(),B0t=p2(),oye=UE(),uye=GE(),F0t=Rl(),x_=h2(),Pp=zi(),dye=-96,lye=80,vq=16,D0t=new m2.Decimal("1e17"),q0t=new m2.Decimal("1e-6"),cye=x_(4294967295);m2.Decimal.config({toExpPos:lye+vq,toExpNeg:dye-vq});function L0t(t){var e=Object.keys(t).sort();return e.length===3&&e[0]==="currency"&&e[1]==="issuer"&&e[2]==="value"}var U0t=function(t){k0t(e,t);function e(r){return t.call(this,r??e.defaultAmount.bytes)||this}return e.from=function(r){if(r instanceof e)return r;var i=Pp.Buffer.alloc(8);if(typeof r=="string"){e.assertXrpIsValid(r);var n=x_(r),a=[Pp.Buffer.alloc(4),Pp.Buffer.alloc(4)];return a[0].writeUInt32BE(Number(n.shiftRight(32)),0),a[1].writeUInt32BE(Number(n.and(cye)),0),i=Pp.Buffer.concat(a),i[0]|=64,new e(i)}if(L0t(r)){var n=new m2.Decimal(r.value);if(e.assertIouIsValid(n),n.isZero())i[0]|=128;else{var s=n.times("1e".concat(-(n.e-15))).abs().toString(),o=x_(s),a=[Pp.Buffer.alloc(4),Pp.Buffer.alloc(4)];a[0].writeUInt32BE(Number(o.shiftRight(32)),0),a[1].writeUInt32BE(Number(o.and(cye)),0),i=Pp.Buffer.concat(a),i[0]|=128,n.gt(new m2.Decimal(0))&&(i[0]|=64);var c=n.e-15,u=97+c;i[0]|=u>>>2,i[1]|=(u&3)<<6}var f=uye.Currency.from(r.currency).toBytes(),d=oye.AccountID.from(r.issuer).toBytes();return new e(Pp.Buffer.concat([i,f,d]))}throw new Error("Invalid type to construct an Amount")},e.fromParser=function(r){var i=r.peek()&128,n=i?48:8;return new e(r.read(n))},e.prototype.toJSON=function(){if(this.isNative()){var r=this.bytes,i=r[0]&64,n=i?"":"-";r[0]&=63;var a=x_(r.slice(0,4).readUInt32BE(0)),s=x_(r.slice(4).readUInt32BE(0)),o=a.shiftLeft(32).or(s);return"".concat(n).concat(o.toString())}else{var c=new B0t.BinaryParser(this.toString()),u=c.read(8),f=uye.Currency.fromParser(c),d=oye.AccountID.fromParser(c),p=u[0],b=u[1],i=p&64,n=i?"":"-",T=((p&63)<<2)+((b&255)>>6)-97;u[0]=0,u[1]&=63;var I=new m2.Decimal("".concat(n,"0x").concat(u.toString("hex"))).times("1e".concat(T));return e.assertIouIsValid(I),{value:I.toString(),currency:f.toJSON(),issuer:d.toJSON()}}},e.assertXrpIsValid=function(r){if(r.indexOf(".")!==-1)throw new Error("".concat(r.toString()," is an illegal amount"));var i=new m2.Decimal(r);if(!i.isZero()&&(i.lt(q0t)||i.gt(D0t)))throw new Error("".concat(r.toString()," is an illegal amount"))},e.assertIouIsValid=function(r){if(!r.isZero()){var i=r.precision(),n=r.e-15;if(i>vq||n>lye||n{"use strict";var j0t=h6&&h6.__extends||function(){var t=function(e,r){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var a in n)Object.prototype.hasOwnProperty.call(n,a)&&(i[a]=n[a])},t(e,r)};return function(e,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");t(e,r);function i(){this.constructor=e}e.prototype=r===null?Object.create(r):(i.prototype=r.prototype,new i)}}();Object.defineProperty(h6,"__esModule",{value:!0});h6.Blob=void 0;var V0t=Rl(),H0t=zi(),z0t=function(t){j0t(e,t);function e(r){return t.call(this,r)||this}return e.fromParser=function(r,i){return new e(r.read(i))},e.from=function(r){if(r instanceof e)return r;if(typeof r=="string")return new e(H0t.Buffer.from(r,"hex"));throw new Error("Cannot construct Blob from value given")},e}(V0t.SerializedType);h6.Blob=z0t});var hye=x(m6=>{"use strict";var G0t=m6&&m6.__extends||function(){var t=function(e,r){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var a in n)Object.prototype.hasOwnProperty.call(n,a)&&(i[a]=n[a])},t(e,r)};return function(e,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");t(e,r);function i(){this.constructor=e}e.prototype=r===null?Object.create(r):(i.prototype=r.prototype,new i)}}();Object.defineProperty(m6,"__esModule",{value:!0});m6.Hash128=void 0;var J0t=DE(),X0t=zi(),K0t=function(t){G0t(e,t);function e(r){return t.call(this,r??e.ZERO_128.bytes)||this}return e.width=16,e.ZERO_128=new e(X0t.Buffer.alloc(e.width)),e}(J0t.Hash);m6.Hash128=K0t});var S_=x(g6=>{"use strict";var W0t=g6&&g6.__extends||function(){var t=function(e,r){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var a in n)Object.prototype.hasOwnProperty.call(n,a)&&(i[a]=n[a])},t(e,r)};return function(e,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");t(e,r);function i(){this.constructor=e}e.prototype=r===null?Object.create(r):(i.prototype=r.prototype,new i)}}();Object.defineProperty(g6,"__esModule",{value:!0});g6.Hash256=void 0;var Z0t=DE(),$0t=zi(),Q0t=function(t){W0t(e,t);function e(r){return t.call(this,r??e.ZERO_256.bytes)||this}return e.width=32,e.ZERO_256=new e($0t.Buffer.alloc(e.width)),e}(Z0t.Hash);g6.Hash256=Q0t});var gye=x(v6=>{"use strict";var Aq=v6&&v6.__extends||function(){var t=function(e,r){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var a in n)Object.prototype.hasOwnProperty.call(n,a)&&(i[a]=n[a])},t(e,r)};return function(e,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");t(e,r);function i(){this.constructor=e}e.prototype=r===null?Object.create(r):(i.prototype=r.prototype,new i)}}();Object.defineProperty(v6,"__esModule",{value:!0});v6.PathSet=void 0;var y6=UE(),bq=GE(),Pq=p2(),Oq=Rl(),Ml=zi(),Tq=0,mye=255,_q=1,wq=16,xq=32;function Y0t(t){return t.issuer!==void 0||t.account!==void 0||t.currency!==void 0}function eht(t){return Array.isArray(t)&&t.length===0||Array.isArray(t)&&Array.isArray(t[0])&&t[0].length===0||Array.isArray(t)&&Array.isArray(t[0])&&Y0t(t[0][0])}var Sq=function(t){Aq(e,t);function e(){return t!==null&&t.apply(this,arguments)||this}return e.from=function(r){if(r instanceof e)return r;var i=[Ml.Buffer.from([0])];return r.account&&(i.push(y6.AccountID.from(r.account).toBytes()),i[0][0]|=_q),r.currency&&(i.push(bq.Currency.from(r.currency).toBytes()),i[0][0]|=wq),r.issuer&&(i.push(y6.AccountID.from(r.issuer).toBytes()),i[0][0]|=xq),new e(Ml.Buffer.concat(i))},e.fromParser=function(r){var i=r.readUInt8(),n=[Ml.Buffer.from([i])];return i&_q&&n.push(r.read(y6.AccountID.width)),i&wq&&n.push(r.read(bq.Currency.width)),i&xq&&n.push(r.read(y6.AccountID.width)),new e(Ml.Buffer.concat(n))},e.prototype.toJSON=function(){var r=new Pq.BinaryParser(this.bytes.toString("hex")),i=r.readUInt8(),n,a,s;i&_q&&(n=y6.AccountID.fromParser(r).toJSON()),i&wq&&(a=bq.Currency.fromParser(r).toJSON()),i&xq&&(s=y6.AccountID.fromParser(r).toJSON());var o={};return n&&(o.account=n),s&&(o.issuer=s),a&&(o.currency=a),o},e.prototype.type=function(){return this.bytes[0]},e}(Oq.SerializedType),Eq=function(t){Aq(e,t);function e(){return t!==null&&t.apply(this,arguments)||this}return e.from=function(r){if(r instanceof e)return r;var i=[];return r.forEach(function(n){i.push(Sq.from(n).toBytes())}),new e(Ml.Buffer.concat(i))},e.fromParser=function(r){for(var i=[];!r.end()&&(i.push(Sq.fromParser(r).toBytes()),!(r.peek()===Tq||r.peek()===mye)););return new e(Ml.Buffer.concat(i))},e.prototype.toJSON=function(){for(var r=[],i=new Pq.BinaryParser(this.toString());!i.end();)r.push(Sq.fromParser(i).toJSON());return r},e}(Oq.SerializedType),tht=function(t){Aq(e,t);function e(){return t!==null&&t.apply(this,arguments)||this}return e.from=function(r){if(r instanceof e)return r;if(eht(r)){var i=[];return r.forEach(function(n){i.push(Eq.from(n).toBytes()),i.push(Ml.Buffer.from([mye]))}),i[i.length-1]=Ml.Buffer.from([Tq]),new e(Ml.Buffer.concat(i))}throw new Error("Cannot construct PathSet from given value")},e.fromParser=function(r){for(var i=[];!r.end()&&(i.push(Eq.fromParser(r).toBytes()),i.push(r.read(1)),i[i.length-1][0]!=Tq););return new e(Ml.Buffer.concat(i))},e.prototype.toJSON=function(){for(var r=[],i=new Pq.BinaryParser(this.toString());!i.end();)r.push(Eq.fromParser(i).toJSON()),i.skip(1);return r},e}(Oq.SerializedType);v6.PathSet=tht});var KE=x(b6=>{"use strict";var rht=b6&&b6.__extends||function(){var t=function(e,r){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var a in n)Object.prototype.hasOwnProperty.call(n,a)&&(i[a]=n[a])},t(e,r)};return function(e,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");t(e,r);function i(){this.constructor=e}e.prototype=r===null?Object.create(r):(i.prototype=r.prototype,new i)}}();Object.defineProperty(b6,"__esModule",{value:!0});b6.STObject=void 0;var iht=u6(),nht=Rl(),_ye=uo(),aht=p2(),XE=o6(),sht=zi(),yye=sht.Buffer.from([225]),vye="ObjectEndMarker",bye="STObject",oht="Destination",uht="Account",Rq="SourceTag",Mq="DestinationTag";function cht(t,e){var r,i,n=(0,_ye.xAddressToClassicAddress)(e),a;if(t===oht)a=Mq;else if(t===uht)a=Rq;else if(n.tag!==!1)throw new Error("".concat(t," cannot have an associated tag"));return n.tag!==!1?(r={},r[t]=n.classicAddress,r[a]=n.tag,r):(i={},i[t]=n.classicAddress,i)}function dht(t,e){if(!(t[Rq]===void 0||e[Rq]===void 0))throw new Error("Cannot have Account X-Address and SourceTag");if(!(t[Mq]===void 0||e[Mq]===void 0))throw new Error("Cannot have Destination X-Address and DestinationTag")}var lht=function(t){rht(e,t);function e(){return t!==null&&t.apply(this,arguments)||this}return e.fromParser=function(r){for(var i=new XE.BytesList,n=new XE.BinarySerializer(i);!r.end();){var a=r.readField();if(a.name===vye)break;var s=r.readFieldValue(a);n.writeFieldAndValue(a,s),a.type.name===bye&&n.put(yye)}return new e(i.toBytes())},e.from=function(r,i){if(r instanceof e)return r;var n=new XE.BytesList,a=new XE.BinarySerializer(n),s=!1,o=Object.entries(r).reduce(function(u,f){var d,p=f[0],b=f[1],T=void 0;return b&&(0,_ye.isValidXAddress)(b.toString())&&(T=cht(p,b.toString()),dht(T,r)),Object.assign(u,T??(d={},d[p]=b,d))},{}),c=Object.keys(o).map(function(u){return iht.Field[u]}).filter(function(u){return u!==void 0&&o[u.name]!==void 0&&u.isSerialized}).sort(function(u,f){return u.ordinal-f.ordinal});return i!==void 0&&(c=c.filter(i)),c.forEach(function(u){var f=u.associatedType.from(o[u.name]);if(f==null)throw new TypeError('Unable to interpret "'.concat(u.name,": ").concat(o[u.name],'".'));f.name==="UNLModify"&&(s=!0);var d=u.name=="Account"&&s;a.writeFieldAndValue(u,f,d),u.type.name===bye&&a.put(yye)}),new e(n.toBytes())},e.prototype.toJSON=function(){for(var r=new aht.BinaryParser(this.toString()),i={};!r.end();){var n=r.readField();if(n.name===vye)break;i[n.name]=r.readFieldValue(n).toJSON()}return i},e}(nht.SerializedType);b6.STObject=lht});var Eye=x(_6=>{"use strict";var fht=_6&&_6.__extends||function(){var t=function(e,r){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var a in n)Object.prototype.hasOwnProperty.call(n,a)&&(i[a]=n[a])},t(e,r)};return function(e,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");t(e,r);function i(){this.constructor=e}e.prototype=r===null?Object.create(r):(i.prototype=r.prototype,new i)}}();Object.defineProperty(_6,"__esModule",{value:!0});_6.STArray=void 0;var pht=Rl(),wye=KE(),hht=p2(),WE=zi(),xye=WE.Buffer.from([241]),Sye="ArrayEndMarker",mht=WE.Buffer.from([225]);function ght(t){return Array.isArray(t)&&(t.length===0||typeof t[0]=="object")}var yht=function(t){fht(e,t);function e(){return t!==null&&t.apply(this,arguments)||this}return e.fromParser=function(r){for(var i=[];!r.end();){var n=r.readField();if(n.name===Sye)break;i.push(n.header,r.readFieldValue(n).toBytes(),mht)}return i.push(xye),new e(WE.Buffer.concat(i))},e.from=function(r){if(r instanceof e)return r;if(ght(r)){var i=[];return r.forEach(function(n){i.push(wye.STObject.from(n).toBytes())}),i.push(xye),new e(WE.Buffer.concat(i))}throw new Error("Cannot construct STArray from value given")},e.prototype.toJSON=function(){for(var r=[],i=new hht.BinaryParser(this.toString());!i.end();){var n=i.readField();if(n.name===Sye)break;var a={};a[n.name]=wye.STObject.fromParser(i).toJSON(),r.push(a)}return r},e}(pht.SerializedType);_6.STArray=yht});var E_=x(w6=>{"use strict";var vht=w6&&w6.__extends||function(){var t=function(e,r){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var a in n)Object.prototype.hasOwnProperty.call(n,a)&&(i[a]=n[a])},t(e,r)};return function(e,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");t(e,r);function i(){this.constructor=e}e.prototype=r===null?Object.create(r):(i.prototype=r.prototype,new i)}}();Object.defineProperty(w6,"__esModule",{value:!0});w6.UInt=void 0;var bht=Rl();function _ht(t,e){return t{"use strict";var xht=x6&&x6.__extends||function(){var t=function(e,r){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var a in n)Object.prototype.hasOwnProperty.call(n,a)&&(i[a]=n[a])},t(e,r)};return function(e,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");t(e,r);function i(){this.constructor=e}e.prototype=r===null?Object.create(r):(i.prototype=r.prototype,new i)}}();Object.defineProperty(x6,"__esModule",{value:!0});x6.UInt16=void 0;var Sht=E_(),Tye=zi(),Eht=function(t){xht(e,t);function e(r){return t.call(this,r??e.defaultUInt16.bytes)||this}return e.fromParser=function(r){return new e(r.read(e.width))},e.from=function(r){if(r instanceof e)return r;if(typeof r=="number"){var i=Tye.Buffer.alloc(e.width);return i.writeUInt16BE(r,0),new e(i)}throw new Error("Can not construct UInt16 with given value")},e.prototype.valueOf=function(){return this.bytes.readUInt16BE(0)},e.width=16/8,e.defaultUInt16=new e(Tye.Buffer.alloc(e.width)),e}(Sht.UInt);x6.UInt16=Eht});var Cq=x(S6=>{"use strict";var Tht=S6&&S6.__extends||function(){var t=function(e,r){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var a in n)Object.prototype.hasOwnProperty.call(n,a)&&(i[a]=n[a])},t(e,r)};return function(e,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");t(e,r);function i(){this.constructor=e}e.prototype=r===null?Object.create(r):(i.prototype=r.prototype,new i)}}();Object.defineProperty(S6,"__esModule",{value:!0});S6.UInt32=void 0;var Aht=E_(),Pye=zi(),Pht=function(t){Tht(e,t);function e(r){return t.call(this,r??e.defaultUInt32.bytes)||this}return e.fromParser=function(r){return new e(r.read(e.width))},e.from=function(r){if(r instanceof e)return r;var i=Pye.Buffer.alloc(e.width);if(typeof r=="string"){var n=Number.parseInt(r);return i.writeUInt32BE(n,0),new e(i)}if(typeof r=="number")return i.writeUInt32BE(r,0),new e(i);throw new Error("Cannot construct UInt32 from given value")},e.prototype.valueOf=function(){return this.bytes.readUInt32BE(0)},e.width=32/8,e.defaultUInt32=new e(Pye.Buffer.alloc(e.width)),e}(Aht.UInt);S6.UInt32=Pht});var Iq=x(T6=>{"use strict";var Oht=T6&&T6.__extends||function(){var t=function(e,r){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var a in n)Object.prototype.hasOwnProperty.call(n,a)&&(i[a]=n[a])},t(e,r)};return function(e,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");t(e,r);function i(){this.constructor=e}e.prototype=r===null?Object.create(r):(i.prototype=r.prototype,new i)}}();Object.defineProperty(T6,"__esModule",{value:!0});T6.UInt64=void 0;var Rht=E_(),E6=h2(),Mht=h2(),Op=zi(),Cht=/^[a-fA-F0-9]{1,16}$/,Oye=E6(4294967295),Iht=function(t){Oht(e,t);function e(r){return t.call(this,r??e.defaultUInt64.bytes)||this}return e.fromParser=function(r){return new e(r.read(e.width))},e.from=function(r){if(r instanceof e)return r;var i=Op.Buffer.alloc(e.width);if(typeof r=="number"){if(r<0)throw new Error("value must be an unsigned integer");var n=E6(r),a=[Op.Buffer.alloc(4),Op.Buffer.alloc(4)];return a[0].writeUInt32BE(Number(n.shiftRight(32)),0),a[1].writeUInt32BE(Number(n.and(Oye)),0),new e(Op.Buffer.concat(a))}if(typeof r=="string"){if(!Cht.test(r))throw new Error("".concat(r," is not a valid hex-string"));var s=r.padStart(16,"0");return i=Op.Buffer.from(s,"hex"),new e(i)}if((0,Mht.isInstance)(r)){var a=[Op.Buffer.alloc(4),Op.Buffer.alloc(4)];return a[0].writeUInt32BE(Number(r.shiftRight(E6(32))),0),a[1].writeUInt32BE(Number(r.and(Oye)),0),new e(Op.Buffer.concat(a))}throw new Error("Cannot construct UInt64 from given value")},e.prototype.toJSON=function(){return this.bytes.toString("hex").toUpperCase()},e.prototype.valueOf=function(){var r=E6(this.bytes.slice(0,4).readUInt32BE(0)),i=E6(this.bytes.slice(4).readUInt32BE(0));return r.shiftLeft(E6(32)).or(i)},e.prototype.toBytes=function(){return this.bytes},e.width=64/8,e.defaultUInt64=new e(Op.Buffer.alloc(e.width)),e}(Rht.UInt);T6.UInt64=Iht});var Nq=x(A6=>{"use strict";var Nht=A6&&A6.__extends||function(){var t=function(e,r){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var a in n)Object.prototype.hasOwnProperty.call(n,a)&&(i[a]=n[a])},t(e,r)};return function(e,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");t(e,r);function i(){this.constructor=e}e.prototype=r===null?Object.create(r):(i.prototype=r.prototype,new i)}}();Object.defineProperty(A6,"__esModule",{value:!0});A6.UInt8=void 0;var kht=E_(),Rye=zi(),Bht=function(t){Nht(e,t);function e(r){return t.call(this,r??e.defaultUInt8.bytes)||this}return e.fromParser=function(r){return new e(r.read(e.width))},e.from=function(r){if(r instanceof e)return r;if(typeof r=="number"){var i=Rye.Buffer.alloc(e.width);return i.writeUInt8(r,0),new e(i)}throw new Error("Cannot construct UInt8 from given value")},e.prototype.valueOf=function(){return this.bytes.readUInt8(0)},e.width=8/8,e.defaultUInt8=new e(Rye.Buffer.alloc(e.width)),e}(kht.UInt);A6.UInt8=Bht});var Iye=x(P6=>{"use strict";var Fht=P6&&P6.__extends||function(){var t=function(e,r){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var a in n)Object.prototype.hasOwnProperty.call(n,a)&&(i[a]=n[a])},t(e,r)};return function(e,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");t(e,r);function i(){this.constructor=e}e.prototype=r===null?Object.create(r):(i.prototype=r.prototype,new i)}}();Object.defineProperty(P6,"__esModule",{value:!0});P6.Vector256=void 0;var Dht=Rl(),Mye=S_(),Cye=o6();function qht(t){return Array.isArray(t)&&(t.length===0||typeof t[0]=="string")}var Lht=function(t){Fht(e,t);function e(r){return t.call(this,r)||this}return e.fromParser=function(r,i){for(var n=new Cye.BytesList,a=i??r.size(),s=a/32,o=0;o{"use strict";Object.defineProperty(ZE,"__esModule",{value:!0});ZE.coreTypes=void 0;var g2=u6(),Uht=UE(),jht=fye(),Vht=pye(),Hht=GE(),zht=hye(),Ght=qE(),Jht=S_(),Xht=gye(),Kht=Eye(),Wht=KE(),Zht=Aye(),$ht=Cq(),Qht=Iq(),Yht=Nq(),e1t=Iye(),Nye={AccountID:Uht.AccountID,Amount:jht.Amount,Blob:Vht.Blob,Currency:Hht.Currency,Hash128:zht.Hash128,Hash160:Ght.Hash160,Hash256:Jht.Hash256,PathSet:Xht.PathSet,STArray:Kht.STArray,STObject:Wht.STObject,UInt8:Yht.UInt8,UInt16:Zht.UInt16,UInt32:$ht.UInt32,UInt64:Qht.UInt64,Vector256:e1t.Vector256};ZE.coreTypes=Nye;Object.values(g2.Field).forEach(function(t){t.associatedType=Nye[t.type.name]});g2.Field.TransactionType.associatedType=g2.TransactionType;g2.Field.TransactionResult.associatedType=g2.TransactionResult;g2.Field.LedgerEntryType.associatedType=g2.LedgerEntryType});var O6=x($E=>{"use strict";Object.defineProperty($E,"__esModule",{value:!0});$E.HashPrefix=void 0;var t1t=zi();function Cl(t){var e=t1t.Buffer.alloc(4);return e.writeUInt32BE(t,0),e}var r1t={transactionID:Cl(1415073280),transaction:Cl(1397638144),accountStateEntry:Cl(1296846336),innerNode:Cl(1296649728),ledgerHeader:Cl(1280791040),transactionSig:Cl(1398036480),transactionMultiSig:Cl(1397576704),validation:Cl(1447119872),proposal:Cl(1347571712),paymentChannelClaim:Cl(1129073920)};$E.HashPrefix=r1t});var A_=x(Il=>{"use strict";var i1t=Il&&Il.__extends||function(){var t=function(e,r){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var a in n)Object.prototype.hasOwnProperty.call(n,a)&&(i[a]=n[a])},t(e,r)};return function(e,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");t(e,r);function i(){this.constructor=e}e.prototype=r===null?Object.create(r):(i.prototype=r.prototype,new i)}}();Object.defineProperty(Il,"__esModule",{value:!0});Il.transactionID=Il.sha512Half=Il.Sha512Half=void 0;var n1t=O6(),a1t=h3(),kye=S_(),s1t=o6(),o1t=zi(),Bye=function(t){i1t(e,t);function e(){var r=t!==null&&t.apply(this,arguments)||this;return r.hash=a1t("sha512"),r}return e.put=function(r){return new e().put(r)},e.prototype.put=function(r){return this.hash.update(r),this},e.prototype.finish256=function(){return o1t.Buffer.from(this.hash.digest().slice(0,32))},e.prototype.finish=function(){return new kye.Hash256(this.finish256())},e}(s1t.BytesList);Il.Sha512Half=Bye;function Fye(){for(var t=[],e=0;e{"use strict";Object.defineProperty(Mi,"__esModule",{value:!0});Mi.transactionID=Mi.sha512Half=Mi.binaryToJSON=Mi.signingClaimData=Mi.signingData=Mi.multiSigningData=Mi.readJSON=Mi.serializeObject=Mi.makeParser=Mi.BytesList=Mi.BinarySerializer=Mi.BinaryParser=void 0;var P_=T_(),Dye=p2();Object.defineProperty(Mi,"BinaryParser",{enumerable:!0,get:function(){return Dye.BinaryParser}});var kq=O6(),QE=o6();Object.defineProperty(Mi,"BinarySerializer",{enumerable:!0,get:function(){return QE.BinarySerializer}});Object.defineProperty(Mi,"BytesList",{enumerable:!0,get:function(){return QE.BytesList}});var qye=A_();Object.defineProperty(Mi,"sha512Half",{enumerable:!0,get:function(){return qye.sha512Half}});Object.defineProperty(Mi,"transactionID",{enumerable:!0,get:function(){return qye.transactionID}});var c1t=h2(),Lye=function(t){return new Dye.BinaryParser(t)};Mi.makeParser=Lye;var Uye=function(t){return t.readType(P_.coreTypes.STObject).toJSON()};Mi.readJSON=Uye;var d1t=function(t){return Uye(Lye(t))};Mi.binaryToJSON=d1t;function Bq(t,e){e===void 0&&(e={});var r=e.prefix,i=e.suffix,n=e.signingFieldsOnly,a=n===void 0?!1:n,s=new QE.BytesList;r&&s.put(r);var o=a?function(c){return c.isSigningField}:void 0;return P_.coreTypes.STObject.from(t,o).toBytesSink(s),i&&s.put(i),s.toBytes()}Mi.serializeObject=Bq;function l1t(t,e){return e===void 0&&(e=kq.HashPrefix.transactionSig),Bq(t,{prefix:e,signingFieldsOnly:!0})}Mi.signingData=l1t;function f1t(t){var e=c1t(String(t.amount)),r=kq.HashPrefix.paymentChannelClaim,i=P_.coreTypes.Hash256.from(t.channel).toBytes(),n=P_.coreTypes.UInt64.from(e).toBytes(),a=new QE.BytesList;return a.put(r),a.put(i),a.put(n),a.toBytes()}Mi.signingClaimData=f1t;function p1t(t,e){var r=kq.HashPrefix.transactionMultiSig,i=P_.coreTypes.AccountID.from(e).toBytes();return Bq(t,{prefix:r,suffix:i,signingFieldsOnly:!0})}Mi.multiSigningData=p1t});var Uq=x(Nl=>{"use strict";var qq=Nl&&Nl.__extends||function(){var t=function(e,r){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var a in n)Object.prototype.hasOwnProperty.call(n,a)&&(i[a]=n[a])},t(e,r)};return function(e,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");t(e,r);function i(){this.constructor=e}e.prototype=r===null?Object.create(r):(i.prototype=r.prototype,new i)}}();Object.defineProperty(Nl,"__esModule",{value:!0});Nl.ShaMapLeaf=Nl.ShaMapNode=Nl.ShaMap=void 0;var h1t=require("assert"),jye=T_(),m1t=O6(),Vye=A_(),g1t=zi(),Lq=function(){function t(){}return t}();Nl.ShaMapNode=Lq;var Dq=function(t){qq(e,t);function e(r,i){var n=t.call(this)||this;return n.index=r,n.item=i,n}return e.prototype.isLeaf=function(){return!0},e.prototype.isInner=function(){return!1},e.prototype.hashPrefix=function(){return this.item===void 0?g1t.Buffer.alloc(0):this.item.hashPrefix()},e.prototype.hash=function(){var r=Vye.Sha512Half.put(this.hashPrefix());return this.toBytesSink(r),r.finish()},e.prototype.toBytesSink=function(r){this.item!==void 0&&this.item.toBytesSink(r),this.index.toBytesSink(r)},e}(Lq);Nl.ShaMapLeaf=Dq;var y1t=function(t){qq(e,t);function e(r){r===void 0&&(r=0);var i=t.call(this)||this;return i.depth=r,i.slotBits=0,i.branches=Array(16),i}return e.prototype.isInner=function(){return!0},e.prototype.isLeaf=function(){return!1},e.prototype.hashPrefix=function(){return m1t.HashPrefix.innerNode},e.prototype.setBranch=function(r,i){this.slotBits=this.slotBits|1<{"use strict";Object.defineProperty(kl,"__esModule",{value:!0});kl.decodeLedgerData=kl.ledgerHash=kl.transactionTreeHash=kl.accountStateHash=void 0;var YE=require("assert"),b1t=Uq(),Vq=O6(),_1t=A_(),Gye=Fq(),Wh=S_(),Hye=KE(),Jye=Iq(),jq=Cq(),zye=Nq(),w1t=p2(),x1t=h2();function Xye(t,e){var r=new b1t.ShaMap;return e.forEach(function(i){return r.addItem.apply(r,t(i))}),r.hash()}function S1t(t){YE.ok(t.hash);var e=Wh.Hash256.from(t.hash),r={hashPrefix:function(){return Vq.HashPrefix.transaction},toBytesSink:function(i){var n=new Gye.BinarySerializer(i);n.writeLengthEncoded(Hye.STObject.from(t)),n.writeLengthEncoded(Hye.STObject.from(t.metaData))}};return[e,r,void 0]}function E1t(t){var e=Wh.Hash256.from(t.index),r=(0,Gye.serializeObject)(t),i={hashPrefix:function(){return Vq.HashPrefix.accountStateEntry},toBytesSink:function(n){n.put(r)}};return[e,i,void 0]}function T1t(t){var e=S1t;return Xye(e,t)}kl.transactionTreeHash=T1t;function A1t(t){var e=E1t;return Xye(e,t)}kl.accountStateHash=A1t;function P1t(t){var e=new _1t.Sha512Half;return e.put(Vq.HashPrefix.ledgerHeader),YE.ok(t.parent_close_time!==void 0),YE.ok(t.close_flags!==void 0),jq.UInt32.from(t.ledger_index).toBytesSink(e),Jye.UInt64.from(x1t(String(t.total_coins))).toBytesSink(e),Wh.Hash256.from(t.parent_hash).toBytesSink(e),Wh.Hash256.from(t.transaction_hash).toBytesSink(e),Wh.Hash256.from(t.account_hash).toBytesSink(e),jq.UInt32.from(t.parent_close_time).toBytesSink(e),jq.UInt32.from(t.close_time).toBytesSink(e),zye.UInt8.from(t.close_time_resolution).toBytesSink(e),zye.UInt8.from(t.close_flags).toBytesSink(e),e.finish()}kl.ledgerHash=P1t;function O1t(t){YE.ok(typeof t=="string","binary must be a hex string");var e=new w1t.BinaryParser(t);return{ledger_index:e.readUInt32(),total_coins:e.readType(Jye.UInt64).valueOf().toString(),parent_hash:e.readType(Wh.Hash256).toHex(),transaction_hash:e.readType(Wh.Hash256).toHex(),account_hash:e.readType(Wh.Hash256).toHex(),parent_close_time:e.readUInt32(),close_time:e.readUInt32(),close_time_resolution:e.readUInt8(),close_flags:e.readUInt8()}}kl.decodeLedgerData=O1t});var Wye=x(eT=>{"use strict";Object.defineProperty(eT,"__esModule",{value:!0});eT.quality=void 0;var R1t=T_(),Kye=yq(),M1t=h2(),C1t=zi(),I1t=function(){function t(){}return t.encode=function(e){var r=new Kye.Decimal(e),i=r.e-15,n=r.times("1e".concat(-i)).abs().toString(),a=R1t.coreTypes.UInt64.from(M1t(n)).toBytes();return a[0]=i+100,a},t.decode=function(e){var r=C1t.Buffer.from(e,"hex").slice(-8),i=r[0]-100,n=new Kye.Decimal("0x".concat(r.slice(1).toString("hex")));return n.times("1e".concat(i))},t}();eT.quality=I1t});var Zye=x(Ci=>{"use strict";Object.defineProperty(Ci,"__esModule",{value:!0});Ci.types=Ci.ShaMap=Ci.HashPrefix=Ci.quality=Ci.TransactionResult=Ci.Type=Ci.LedgerEntryType=Ci.TransactionType=Ci.Field=Ci.ledgerHashes=Ci.binary=Ci.hashes=void 0;var O_=u6();Object.defineProperty(Ci,"Field",{enumerable:!0,get:function(){return O_.Field}});Object.defineProperty(Ci,"TransactionType",{enumerable:!0,get:function(){return O_.TransactionType}});Object.defineProperty(Ci,"LedgerEntryType",{enumerable:!0,get:function(){return O_.LedgerEntryType}});Object.defineProperty(Ci,"Type",{enumerable:!0,get:function(){return O_.Type}});Object.defineProperty(Ci,"TransactionResult",{enumerable:!0,get:function(){return O_.TransactionResult}});var N1t=T_();Ci.types=N1t;var k1t=Fq();Ci.binary=k1t;var B1t=Uq();Object.defineProperty(Ci,"ShaMap",{enumerable:!0,get:function(){return B1t.ShaMap}});var F1t=Hq();Ci.ledgerHashes=F1t;var D1t=A_();Ci.hashes=D1t;var q1t=Wye();Object.defineProperty(Ci,"quality",{enumerable:!0,get:function(){return q1t.quality}});var L1t=O6();Object.defineProperty(Ci,"HashPrefix",{enumerable:!0,get:function(){return L1t.HashPrefix}})});var v2=x((Yqt,$ye)=>{"use strict";var Zh=require("assert"),y2=Zye(),U1t=Hq(),j1t=u6(),V1t=y2.binary.signingData,H1t=y2.binary.signingClaimData,z1t=y2.binary.multiSigningData,G1t=y2.binary.binaryToJSON,J1t=y2.binary.serializeObject;function X1t(t){return Zh.ok(typeof t=="string","binary must be a hex string"),G1t(t)}function K1t(t){return Zh.ok(typeof t=="object"),J1t(t).toString("hex").toUpperCase()}function W1t(t){return Zh.ok(typeof t=="object"),V1t(t).toString("hex").toUpperCase()}function Z1t(t){return Zh.ok(typeof t=="object"),H1t(t).toString("hex").toUpperCase()}function $1t(t,e){return Zh.ok(typeof t=="object"),Zh.equal(t.SigningPubKey,""),z1t(t,e).toString("hex").toUpperCase()}function Q1t(t){return Zh.ok(typeof t=="string"),y2.quality.encode(t).toString("hex").toUpperCase()}function Y1t(t){return Zh.ok(typeof t=="string"),y2.quality.decode(t).toString()}$ye.exports={decode:X1t,encode:K1t,encodeForSigning:W1t,encodeForSigningClaim:Z1t,encodeForMultisigning:$1t,encodeQuality:Q1t,decodeQuality:Y1t,decodeLedgerData:U1t.decodeLedgerData,TRANSACTION_TYPES:j1t.TRANSACTION_TYPES}});var Gq=x(zq=>{"use strict";Object.defineProperty(zq,"__esModule",{value:!0});var emt=require("crypto"),tmt=t=>emt.createHash("sha512").update(Buffer.from(t,"hex")).digest("hex").toUpperCase().slice(0,64);zq.default=tmt});var Kq=x(Xq=>{"use strict";Object.defineProperty(Xq,"__esModule",{value:!0});var Jq;(function(t){t[t.TRANSACTION_ID=1415073280]="TRANSACTION_ID",t[t.TRANSACTION_NODE=1397638144]="TRANSACTION_NODE",t[t.INNER_NODE=1296649728]="INNER_NODE",t[t.LEAF_NODE=1296846336]="LEAF_NODE",t[t.TRANSACTION_SIGN=1398036480]="TRANSACTION_SIGN",t[t.TRANSACTION_SIGN_TESTNET=1937012736]="TRANSACTION_SIGN_TESTNET",t[t.TRANSACTION_MULTISIGN=1397576704]="TRANSACTION_MULTISIGN",t[t.LEDGER=1280791040]="LEDGER"})(Jq||(Jq={}));Xq.default=Jq});var eve=x(ks=>{"use strict";var Yye=ks&&ks.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(ks,"__esModule",{value:!0});ks.SHAMap=ks.Leaf=ks.InnerNode=ks.Node=ks.NodeType=void 0;var tT=Yye(Kq()),rT=Yye(Gq()),Qye="0000000000000000000000000000000000000000000000000000000000000000",R_;(function(t){t[t.INNER=1]="INNER",t[t.TRANSACTION_NO_METADATA=2]="TRANSACTION_NO_METADATA",t[t.TRANSACTION_METADATA=3]="TRANSACTION_METADATA",t[t.ACCOUNT_STATE=4]="ACCOUNT_STATE"})(R_=ks.NodeType||(ks.NodeType={}));var M_=class{constructor(){}addItem(e,r){throw new Error("Called unimplemented virtual method SHAMapTreeNode#addItem.")}get hash(){throw new Error("Called unimplemented virtual method SHAMapTreeNode#hash.")}};ks.Node=M_;var b2=class extends M_{constructor(e=0){super(),this.leaves={},this.type=R_.INNER,this.depth=e,this.empty=!0}addItem(e,r){let i=this.getNode(parseInt(e[this.depth],16));if(i){if(i instanceof b2)i.addItem(e,r);else if(i instanceof C_){if(i.tag===e)throw new Error("Tried to add a node to a SHAMap that was already in there.");{let n=new b2(this.depth+1);n.addItem(i.tag,i),n.addItem(e,r),this.setNode(parseInt(e[this.depth],16),n)}}}else this.setNode(parseInt(e[this.depth],16),r)}setNode(e,r){if(e<0||e>15)throw new Error("Invalid slot: slot must be between 0-15.");this.leaves[e]=r,this.empty=!1}getNode(e){if(e<0||e>15)throw new Error("Invalid slot: slot must be between 0-15.");return this.leaves[e]}get hash(){if(this.empty)return Qye;let e="";for(let i=0;i<16;i++)e+=this.leaves[i]?this.leaves[i].hash:Qye;let r=tT.default.INNER_NODE.toString(16);return rT.default(r+e)}};ks.InnerNode=b2;var C_=class extends M_{constructor(e,r,i){super(),this.tag=e,this.type=i,this.data=r}get hash(){switch(this.type){case R_.ACCOUNT_STATE:{let e=tT.default.LEAF_NODE.toString(16);return rT.default(e+this.data+this.tag)}case R_.TRANSACTION_NO_METADATA:{let e=tT.default.TRANSACTION_ID.toString(16);return rT.default(e+this.data)}case R_.TRANSACTION_METADATA:{let e=tT.default.TRANSACTION_NODE.toString(16);return rT.default(e+this.data+this.tag)}default:throw new Error("Tried to hash a SHAMap node of unknown type.")}}};ks.Leaf=C_;var Wq=class{constructor(){this.root=new b2(0)}addItem(e,r,i){this.root.addItem(e,new C_(e,r,i))}get hash(){return this.root.hash}};ks.SHAMap=Wq});var tve=x(Zq=>{"use strict";Object.defineProperty(Zq,"__esModule",{value:!0});Zq.default={account:"a",dirNode:"d",generatorMap:"g",rippleState:"r",offer:"o",ownerDir:"O",bookDir:"B",contract:"c",skipList:"s",escrow:"u",amendment:"f",feeSettings:"e",ticket:"T",signerList:"S",paychan:"x",check:"C",depositPreauth:"p"}});var _2=x(ri=>{"use strict";var sT=ri&&ri.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(ri,"__esModule",{value:!0});ri.computePaymentChannelHash=ri.computeEscrowHash=ri.computeLedgerHash=ri.computeStateTreeHash=ri.computeTransactionTreeHash=ri.computeTrustlineHash=ri.computeOrderID=ri.computeSignerListLedgerObjectID=ri.computeAccountLedgerObjectID=ri.computeBinaryTransactionSigningHash=ri.computeTransactionHash=ri.computeBinaryTransactionHash=void 0;var $q=sT(Yr()),rmt=uo(),Rp=sT(Gq()),Qq=sT(Kq()),nT=eve(),aT=v2(),ive=sT(tve()),nve=(t,e)=>Array(e-t.length+1).join("0")+t,Bl=(t,e)=>nve(Number(t).toString(16),e*2),iT=t=>Buffer.from(t).toString("hex"),imt=(t,e)=>{let r=new $q.default(t).toString(16);return nve(r,e*2)},I_=t=>Bl(ive.default[t].charCodeAt(0),2),$h=t=>Buffer.from(rmt.decodeAccountID(t)).toString("hex"),nmt=t=>{if(t.length===3){let e=new Array(21).join("0").split("").map(parseFloat);return e[12]=t.charCodeAt(0)&255,e[13]=t.charCodeAt(1)&255,e[14]=t.charCodeAt(2)&255,iT(e)}return t},rve=t=>{let e=t.length/2;if(e<=192)return iT([e])+t;if(e<=12480){let r=e-193;return iT([193+(r>>>8),r&255])+t}else if(e<=918744){let r=e-12481;return iT([241+(r>>>16),r>>>8&255,r&255])+t}throw new Error("Variable integer overflow.")};ri.computeBinaryTransactionHash=t=>{let e=Qq.default.TRANSACTION_ID.toString(16).toUpperCase();return Rp.default(e+t)};ri.computeTransactionHash=t=>ri.computeBinaryTransactionHash(aT.encode(t));ri.computeBinaryTransactionSigningHash=t=>{let e=Qq.default.TRANSACTION_SIGN.toString(16).toUpperCase();return Rp.default(e+t)};ri.computeAccountLedgerObjectID=t=>Rp.default(I_("account")+$h(t));ri.computeSignerListLedgerObjectID=t=>Rp.default(I_("signerList")+$h(t)+"00000000");ri.computeOrderID=(t,e)=>{let r="00"+Bl(ive.default.offer.charCodeAt(0),1);return Rp.default(r+$h(t)+Bl(e,4))};ri.computeTrustlineHash=(t,e,r)=>{let i=$h(t),n=$h(e),a=new $q.default(i,16).isGreaterThan(new $q.default(n,16)),s=a?n:i,o=a?i:n,c=I_("rippleState");return Rp.default(c+s+o+nmt(r))};ri.computeTransactionTreeHash=t=>{let e=new nT.SHAMap;return t.forEach(r=>{let i=aT.encode(r),n=aT.encode(r.metaData),a=ri.computeBinaryTransactionHash(i),s=rve(i)+rve(n);e.addItem(a,s,nT.NodeType.TRANSACTION_METADATA)}),e.hash};ri.computeStateTreeHash=t=>{let e=new nT.SHAMap;return t.forEach(r=>{let i=aT.encode(r);e.addItem(r.index,i,nT.NodeType.ACCOUNT_STATE)}),e.hash};ri.computeLedgerHash=t=>{let e=Qq.default.LEDGER.toString(16).toUpperCase();return Rp.default(e+Bl(t.ledger_index,4)+imt(t.total_coins,8)+t.parent_hash+t.transaction_hash+t.account_hash+Bl(t.parent_close_time,4)+Bl(t.close_time,4)+Bl(t.close_time_resolution,1)+Bl(t.close_flags,1))};ri.computeEscrowHash=(t,e)=>Rp.default(I_("escrow")+$h(t)+Bl(e,4));ri.computePaymentChannelHash=(t,e,r)=>Rp.default(I_("paychan")+$h(t)+$h(e)+Bl(r,4))});var uve=x(zc=>{"use strict";var amt=zc&&zc.__createBinding||(Object.create?function(t,e,r,i){i===void 0&&(i=r),Object.defineProperty(t,i,{enumerable:!0,get:function(){return e[r]}})}:function(t,e,r,i){i===void 0&&(i=r),t[i]=e[r]}),smt=zc&&zc.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),ove=zc&&zc.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var r in t)r!=="default"&&Object.hasOwnProperty.call(t,r)&&amt(e,t,r);return smt(e,t),e},eL=zc&&zc.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(zc,"__esModule",{value:!0});var oT=ove(Vi()),ave=eL(v2()),omt=_2(),w2=ove(mp()),umt=eL(CE()),cmt=eL(uq()),Yq=Ot();function dmt(t){let e=ave.default.decode(t.tx_blob);return e.hash=omt.computeTransactionHash(e),e.ledger_index=t.ledger_index,{tx:e,meta:ave.default.decode(t.meta),validated:t.validated}}function lmt(t,e){let r=t.tx_blob?dmt(t):t;return umt.default(Object.assign({},r.tx,{meta:r.meta,validated:r.validated}),e)}function fmt(t,e){if(e.address===t.counterparty)return!0;let r=e.specification;return!!(r&&(r.destination&&r.destination.address===t.counterparty||r.counterparty===t.counterparty))}function pmt(t,e,r){return!(e.excludeFailures&&r.outcome.result!=="tesSUCCESS"||e.types&&!e.types.includes(r.type)||e.initiated===!0&&r.address!==t||e.initiated===!1&&r.address===t||e.counterparty&&!fmt(e,r))}function hmt(t,e){return!t.startTx||(t.earliestFirst?w2.compareTransactions(e,t.startTx)>0:w2.compareTransactions(e,t.startTx)<0)}function mmt(t,e,r){let i=n=>lmt(n,e.includeRawTransactions);return{marker:r.marker,results:r.transactions.filter(n=>n.validated).map(i).filter(oT.partial(pmt,t,e)).filter(oT.partial(hmt,e))}}function gmt(t,e,r,i,n){let a={command:"account_tx",account:e,ledger_index_min:r.minLedgerVersion||-1,ledger_index_max:r.maxLedgerVersion||-1,forward:r.earliestFirst,binary:r.binary,limit:w2.clamp(n,10,400),marker:i};return t.request(a).then(s=>mmt(e,r,s))}function ymt(t,e,r){let{minLedgerVersion:i,maxLedgerVersion:n}=e;return e.limit&&r.length===e.limit&&(e.earliestFirst?n=r[r.length-1].outcome.ledgerVersion:i=r[r.length-1].outcome.ledgerVersion),w2.hasCompleteLedgerRange(t,i,n).then(a=>{if(!a)throw new Yq.errors.MissingLedgerHistoryError})}function vmt(t,e,r){let i=e.earliestFirst?r.sort(w2.compareTransactions):r.sort(w2.compareTransactions).reverse();return ymt(t,e,i).then(()=>i)}function sve(t,e,r){let i=oT.partial(gmt,t,e,r),n=oT.partial(vmt,t,r);return w2.getRecursive(i,r.limit).then(n)}function bmt(t,e={}){Yq.validate.getTransactions({address:t,options:e}),t=Yq.ensureClassicAddress(t);let r={maxLedgerVersion:-1};if(e.start)return cmt.default.call(this,e.start).then(n=>{let a=n.outcome.ledgerVersion,s=e.earliestFirst?{minLedgerVersion:a}:{maxLedgerVersion:a},o=Object.assign({},r,e,{startTx:n},s);return sve(this.connection,t,o)});let i=Object.assign({},r,e);return sve(this.connection,t,i)}zc.default=bmt});var lve=x(tL=>{"use strict";Object.defineProperty(tL,"__esModule",{value:!0});var cve=Bi(),dve=Ot();function _mt(t){let e=dve.removeUndefined({limit:t.limit,currency:t.currency,counterparty:t.account,qualityIn:cve.parseQuality(t.quality_in)||void 0,qualityOut:cve.parseQuality(t.quality_out)||void 0,ripplingDisabled:t.no_ripple,frozen:t.freeze,authorized:t.authorized}),r=dve.removeUndefined({limit:t.limit_peer,ripplingDisabled:t.no_ripple_peer,frozen:t.freeze_peer,authorized:t.peer_authorized}),i={balance:t.balance};return{specification:e,counterparty:r,state:i}}tL.default=_mt});var pve=x(Xo=>{"use strict";var wmt=Xo&&Xo.__createBinding||(Object.create?function(t,e,r,i){i===void 0&&(i=r),Object.defineProperty(t,i,{enumerable:!0,get:function(){return e[r]}})}:function(t,e,r,i){i===void 0&&(i=r),t[i]=e[r]}),xmt=Xo&&Xo.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),Smt=Xo&&Xo.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var r in t)r!=="default"&&Object.hasOwnProperty.call(t,r)&&wmt(e,t,r);return xmt(e,t),e},Emt=Xo&&Xo.__awaiter||function(t,e,r,i){function n(a){return a instanceof r?a:new r(function(s){s(a)})}return new(r||(r=Promise))(function(a,s){function o(f){try{u(i.next(f))}catch(d){s(d)}}function c(f){try{u(i.throw(f))}catch(d){s(d)}}function u(f){f.done?a(f.value):n(f.value).then(o,c)}u((i=i.apply(t,e||[])).next())})},Tmt=Xo&&Xo.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Xo,"__esModule",{value:!0});var Amt=Smt(Vi()),fve=Ot(),Pmt=Tmt(lve());function Omt(t,e){return t===null||e.specification.currency===t}function Rmt(t,e={}){var r;return Emt(this,void 0,void 0,function*(){fve.validate.getTrustlines({address:t,options:e}),t=fve.ensureClassicAddress(t);let i=yield this._requestAll("account_lines",{account:t,ledger_index:(r=e.ledgerVersion)!==null&&r!==void 0?r:yield this.getLedgerVersion(),limit:e.limit,peer:e.counterparty});return Amt.flatMap(i,a=>a.lines).map(Pmt.default).filter(a=>Omt(e.currency||null,a))})}Xo.default=Rmt});var mve=x(Mp=>{"use strict";var Mmt=Mp&&Mp.__createBinding||(Object.create?function(t,e,r,i){i===void 0&&(i=r),Object.defineProperty(t,i,{enumerable:!0,get:function(){return e[r]}})}:function(t,e,r,i){i===void 0&&(i=r),t[i]=e[r]}),Cmt=Mp&&Mp.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),Imt=Mp&&Mp.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var r in t)r!=="default"&&Object.hasOwnProperty.call(t,r)&&Mmt(e,t,r);return Cmt(e,t),e};Object.defineProperty(Mp,"__esModule",{value:!0});var Nmt=Imt(mp()),hve=Ot();function kmt(t){return{currency:t.specification.currency,counterparty:t.specification.counterparty,value:t.state.balance}}function Bmt(t,e){let r=e.trustlines.map(kmt);if(!(t.counterparty||t.currency&&t.currency!=="XRP")){let i={currency:"XRP",value:e.xrp};r.unshift(i)}if(t.limit&&r.length>t.limit){let i=r.length-t.limit;r.splice(-i,i)}return r}function Fmt(t,e){return e!=null&&e!==null?Promise.resolve(e):t.getLedgerVersion()}function Dmt(t,e={}){return hve.validate.getTrustlines({address:t,options:e}),t=hve.ensureClassicAddress(t),Promise.all([Fmt(this.connection,e.ledgerVersion).then(r=>Nmt.getXRPBalance(this.connection,t,r)),this.getTrustlines(t,e)]).then(r=>Bmt(e,{xrp:r[0],trustlines:r[1]}))}Mp.default=Dmt});var gve=x(N_=>{"use strict";var qmt=N_&&N_.__awaiter||function(t,e,r,i){function n(a){return a instanceof r?a:new r(function(s){s(a)})}return new(r||(r=Promise))(function(a,s){function o(f){try{u(i.next(f))}catch(d){s(d)}}function c(f){try{u(i.throw(f))}catch(d){s(d)}}function u(f){f.done?a(f.value):n(f.value).then(o,c)}u((i=i.apply(t,e||[])).next())})};Object.defineProperty(N_,"__esModule",{value:!0});var Lmt=Ot(),Umt=mp();function jmt(t){let e={};return t.balances!=null&&(e.balances=[],Object.entries(t.balances).forEach(r=>{let[i,n]=r;n.forEach(a=>{e.balances.push(Object.assign({counterparty:i},a))})})),t.assets!=null&&(e.assets=[],Object.entries(t.assets).forEach(([r,i])=>{i.forEach(n=>{e.assets.push(Object.assign({counterparty:r},n))})})),t.obligations!=null&&(e.obligations=Object.entries(t.obligations).map(([r,i])=>({currency:r,value:i}))),e}function Vmt(t,e={}){return qmt(this,void 0,void 0,function*(){Lmt.validate.getBalanceSheet({address:t,options:e}),e=yield Umt.ensureLedgerVersion.call(this,e);let r=yield this.request("gateway_balances",{account:t,strict:!0,hotwallet:e.excludeAddresses,ledger_index:e.ledgerVersion});return jmt(r)})}N_.default=Vmt});var vve=x(Gc=>{"use strict";var Hmt=Gc&&Gc.__createBinding||(Object.create?function(t,e,r,i){i===void 0&&(i=r),Object.defineProperty(t,i,{enumerable:!0,get:function(){return e[r]}})}:function(t,e,r,i){i===void 0&&(i=r),t[i]=e[r]}),zmt=Gc&&Gc.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),Gmt=Gc&&Gc.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var r in t)r!=="default"&&Object.hasOwnProperty.call(t,r)&&Hmt(e,t,r);return zmt(e,t),e},Jmt=Gc&&Gc.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Gc,"__esModule",{value:!0});var rL=Gmt(Vi()),uT=Jmt(Go());function Xmt(t){return t.map(e=>e.map(r=>rL.omit(r,["type","type_hex"])))}function Kmt(t,e){return e.counterparty===t?rL.omit(e,"counterparty"):e}function yve(t,e){let r=Object.keys(e)[0],i=e[r];return rL.set({address:t},r,Kmt(t,i))}function Wmt(t,e,r,i){let n=i.destination_amount!=null?{source:{amount:uT.default(i.source_amount)},destination:{minAmount:uT.default(i.destination_amount)}}:{source:{maxAmount:uT.default(i.source_amount)},destination:{amount:uT.default(r)}};return{source:yve(t,n.source),destination:yve(e,n.destination),paths:JSON.stringify(Xmt(i.paths_computed))}}function Zmt(t){let e=t.source_account,r=t.destination_account,i=t.destination_amount;return t.alternatives.map(n=>Wmt(e,r,i,n))}Gc.default=Zmt});var wve=x(Jc=>{"use strict";var $mt=Jc&&Jc.__createBinding||(Object.create?function(t,e,r,i){i===void 0&&(i=r),Object.defineProperty(t,i,{enumerable:!0,get:function(){return e[r]}})}:function(t,e,r,i){i===void 0&&(i=r),t[i]=e[r]}),Qmt=Jc&&Jc.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),Ymt=Jc&&Jc.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var r in t)r!=="default"&&Object.hasOwnProperty.call(t,r)&&$mt(e,t,r);return Qmt(e,t),e},bve=Jc&&Jc.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Jc,"__esModule",{value:!0});var e2t=Ymt(Vi()),nL=bve(Yr()),_ve=mp(),x2=Ot(),t2t=bve(vve()),iL=x2.errors.NotFoundError,r2t=x2.errors.ValidationError;function i2t(t,e){return e2t.defaults(Object.assign({},e,{source_account:t.source_account,source_currencies:t.source_currencies}),{destination_amount:t.destination_amount})}function n2t(t,e){let r=Object.assign({value:e.destination.amount.currency==="XRP"?x2.dropsToXrp("-1"):"-1"},e.destination.amount),i={command:"ripple_path_find",source_account:e.source.address,destination_account:e.destination.address,destination_amount:x2.toRippledAmount(r)};if(typeof i.destination_amount=="object"&&!i.destination_amount.issuer&&(i.destination_amount.issuer=i.destination_account),e.source.currencies&&e.source.currencies.length>0&&(i.source_currencies=e.source.currencies.map(n=>_ve.renameCounterpartyToIssuer(n))),e.source.amount){if(e.destination.amount.value!=null)throw new r2t("Cannot specify both source.amount and destination.amount.value in getPaths");i.send_max=x2.toRippledAmount(e.source.amount),typeof i.send_max!="string"&&!i.send_max.issuer&&(i.send_max.issuer=e.source.address)}return t.request(i).then(n=>i2t(i,n))}function a2t(t,e){let r=t.destination_amount;return new nL.default(e).isGreaterThanOrEqualTo(r)&&t.alternatives.unshift({paths_computed:[],source_amount:t.destination_amount}),t}function s2t(t){return typeof t=="object"&&t.currency&&t.currency!=="XRP"}function o2t(t,e,r){return s2t(r.destination_amount)||!r.destination_currencies.includes("XRP")?Promise.resolve(r):_ve.getXRPBalance(t,e,void 0).then(i=>a2t(r,i))}function u2t(t,e){return t.source.amount&&t.destination.amount.value==null&&e.alternatives&&(e.alternatives=e.alternatives.filter(r=>{if(!r.source_amount)return!1;let i=new nL.default(t.source.amount.currency==="XRP"?x2.xrpToDrops(t.source.amount.value):t.source.amount.value);return new nL.default(typeof r.source_amount=="string"?r.source_amount:r.source_amount.value).eq(i)})),e}function c2t(t,e){if(e.alternatives&&e.alternatives.length>0)return t2t.default(e);throw e.destination_currencies!=null&&!e.destination_currencies.includes(t.destination.amount.currency)?new iL("No paths found. The destination_account does not accept "+t.destination.amount.currency+", they only accept: "+e.destination_currencies.join(", ")):e.source_currencies&&e.source_currencies.length>0?new iL("No paths found. Please ensure that the source_account has sufficient funds to execute the payment in one of the specified source_currencies. If it does there may be insufficient liquidity in the network to execute this payment right now"):new iL("No paths found. Please ensure that the source_account has sufficient funds to execute the payment. If it does there may be insufficient liquidity in the network to execute this payment right now")}function d2t(t){x2.validate.getPaths({pathfind:t});let e=t.source.address;return n2t(this.connection,t).then(r=>o2t(this.connection,e,r)).then(r=>u2t(t,r)).then(r=>c2t(t,r))}Jc.default=d2t});var aL=x(R6=>{"use strict";Object.defineProperty(R6,"__esModule",{value:!0});R6.trustlineFlags=R6.orderFlags=void 0;var l2t={Passive:65536,Sell:131072};R6.orderFlags=l2t;var f2t={LowReserve:65536,HighReserve:131072,LowAuth:262144,HighAuth:524288,LowNoRipple:1048576,HighNoRipple:2097152,LowFreeze:4194304,HighFreeze:8388608};R6.trustlineFlags=f2t});var Pve=x(M6=>{"use strict";var Ave=M6&&M6.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(M6,"__esModule",{value:!0});M6.parseAccountOrder=void 0;var xve=Ave(Yr()),Sve=Ave(Go()),Eve=Bi(),p2t=Ot(),Tve=aL();function h2t(t,e){return new xve.default(e.value).dividedBy(t.value).precision(16,xve.default.ROUND_HALF_UP).toString()}function m2t(t,e){let r=(e.flags&Tve.orderFlags.Sell)===0?"buy":"sell",i=Sve.default(e.taker_gets),n=Sve.default(e.taker_pays),a=r==="buy"?n:i,s=r==="buy"?i:n,o=p2t.removeUndefined({direction:r,quantity:a,totalPrice:s,passive:(e.flags&Tve.orderFlags.Passive)!==0||void 0,expirationTime:Eve.parseTimestamp(e.expiration)}),c=e.quality?Eve.adjustQualityForXRP(e.quality.toString(),i.currency,n.currency):h2t(i,n),u={maker:t,sequence:e.seq,makerExchangeRate:c};return{specification:o,properties:u}}M6.parseAccountOrder=m2t});var Ove=x(Xc=>{"use strict";var g2t=Xc&&Xc.__createBinding||(Object.create?function(t,e,r,i){i===void 0&&(i=r),Object.defineProperty(t,i,{enumerable:!0,get:function(){return e[r]}})}:function(t,e,r,i){i===void 0&&(i=r),t[i]=e[r]}),y2t=Xc&&Xc.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),v2t=Xc&&Xc.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var r in t)r!=="default"&&Object.hasOwnProperty.call(t,r)&&g2t(e,t,r);return y2t(e,t),e},b2t=Xc&&Xc.__awaiter||function(t,e,r,i){function n(a){return a instanceof r?a:new r(function(s){s(a)})}return new(r||(r=Promise))(function(a,s){function o(f){try{u(i.next(f))}catch(d){s(d)}}function c(f){try{u(i.throw(f))}catch(d){s(d)}}function u(f){f.done?a(f.value):n(f.value).then(o,c)}u((i=i.apply(t,e||[])).next())})};Object.defineProperty(Xc,"__esModule",{value:!0});var _2t=v2t(Vi()),w2t=Ot(),x2t=Pve();function S2t(t,e){let r=[];for(let i of e){let n=i.offers.map(a=>x2t.parseAccountOrder(t,a));r=r.concat(n)}return _2t.sortBy(r,i=>i.properties.sequence)}function E2t(t,e={}){return b2t(this,void 0,void 0,function*(){w2t.validate.getOrders({address:t,options:e});let r=yield this._requestAll("account_offers",{account:t,ledger_index:e.ledgerVersion||(yield this.getLedgerVersion()),limit:e.limit});return S2t(t,r)})}Xc.default=E2t});var Cve=x(Xu=>{"use strict";var T2t=Xu&&Xu.__createBinding||(Object.create?function(t,e,r,i){i===void 0&&(i=r),Object.defineProperty(t,i,{enumerable:!0,get:function(){return e[r]}})}:function(t,e,r,i){i===void 0&&(i=r),t[i]=e[r]}),A2t=Xu&&Xu.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),P2t=Xu&&Xu.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var r in t)r!=="default"&&Object.hasOwnProperty.call(t,r)&&T2t(e,t,r);return A2t(e,t),e},O2t=Xu&&Xu.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Xu,"__esModule",{value:!0});Xu.parseOrderbookOrder=void 0;var R2t=P2t(Vi()),Rve=Bi(),sL=Ot(),Mve=aL(),cT=O2t(Go());function M2t(t){let e=(t.Flags&Mve.orderFlags.Sell)===0?"buy":"sell",r=cT.default(t.TakerGets),i=cT.default(t.TakerPays),n=e==="buy"?i:r,a=e==="buy"?r:i,s=sL.removeUndefined({direction:e,quantity:n,totalPrice:a,passive:(t.Flags&Mve.orderFlags.Passive)!==0||void 0,expirationTime:Rve.parseTimestamp(t.Expiration)}),o={maker:t.Account,sequence:t.Sequence,makerExchangeRate:Rve.adjustQualityForXRP(t.quality,r.currency,i.currency)},c=t.taker_gets_funded?cT.default(t.taker_gets_funded):void 0,u=t.taker_pays_funded?cT.default(t.taker_pays_funded):void 0,f=sL.removeUndefined({fundedAmount:c,priceOfFundedAmount:u}),d=R2t.isEmpty(f)?void 0:f;return sL.removeUndefined({specification:s,properties:o,state:d,data:t})}Xu.parseOrderbookOrder=M2t});var Dve=x(vs=>{"use strict";var C2t=vs&&vs.__createBinding||(Object.create?function(t,e,r,i){i===void 0&&(i=r),Object.defineProperty(t,i,{enumerable:!0,get:function(){return e[r]}})}:function(t,e,r,i){i===void 0&&(i=r),t[i]=e[r]}),I2t=vs&&vs.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),kve=vs&&vs.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var r in t)r!=="default"&&Object.hasOwnProperty.call(t,r)&&C2t(e,t,r);return I2t(e,t),e},Bve=vs&&vs.__awaiter||function(t,e,r,i){function n(a){return a instanceof r?a:new r(function(s){s(a)})}return new(r||(r=Promise))(function(a,s){function o(f){try{u(i.next(f))}catch(d){s(d)}}function c(f){try{u(i.throw(f))}catch(d){s(d)}}function u(f){f.done?a(f.value):n(f.value).then(o,c)}u((i=i.apply(t,e||[])).next())})},N2t=vs&&vs.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(vs,"__esModule",{value:!0});vs.getOrderbook=vs.formatBidsAndAsks=void 0;var S2=kve(Vi()),k2t=kve(mp()),B2t=Cve(),F2t=Ot(),D2t=N2t(Yr());function q2t(t,e){return t.currency===e.currency&&t.counterparty===e.counterparty}function Ive(t,e){return e.specification.direction===t}function L2t(t){let e=t.specification,r={quantity:e.totalPrice,totalPrice:e.quantity,direction:e.direction==="buy"?"sell":"buy"},i=S2.merge({},e,r);return S2.merge({},t,{specification:i})}function U2t(t,e){let r=e.specification.quantity;return q2t(r,t)?e:L2t(e)}function Fve(t,e){let i=e.sort((s,o)=>new D2t.default(s.quality).comparedTo(o.quality)).map(B2t.parseOrderbookOrder).map(S2.partial(U2t,t.base)),n=i.filter(S2.partial(Ive,"buy")),a=i.filter(S2.partial(Ive,"sell"));return{bids:n,asks:a}}vs.formatBidsAndAsks=Fve;function Nve(t,e,r,i,n){return Bve(this,void 0,void 0,function*(){let a=k2t.renameCounterpartyToIssuerInOrder({taker_gets:i,taker_pays:n});return t._requestAll("book_offers",{taker_gets:a.taker_gets,taker_pays:a.taker_pays,ledger_index:r.ledgerVersion||"validated",limit:r.limit,taker:e})})}function j2t(t,e,r={}){return Bve(this,void 0,void 0,function*(){F2t.validate.getOrderbook({address:t,orderbook:e,options:r});let[i,n]=yield Promise.all([Nve(this,t,r,e.base,e.counter),Nve(this,t,r,e.counter,e.base)]),a=S2.flatMap(i,o=>o.offers),s=S2.flatMap(n,o=>o.offers);return Fve(e,[...a,...s])})}vs.getOrderbook=j2t});var Uve=x(Fl=>{"use strict";var V2t=Fl&&Fl.__awaiter||function(t,e,r,i){function n(a){return a instanceof r?a:new r(function(s){s(a)})}return new(r||(r=Promise))(function(a,s){function o(f){try{u(i.next(f))}catch(d){s(d)}}function c(f){try{u(i.throw(f))}catch(d){s(d)}}function u(f){f.done?a(f.value):n(f.value).then(o,c)}u((i=i.apply(t,e||[])).next())})},H2t=Fl&&Fl.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Fl,"__esModule",{value:!0});Fl.getSettings=Fl.parseAccountFlags=void 0;var z2t=H2t(YD()),oL=Ot(),qve=oL.constants.AccountFlags;function Lve(t,e={}){let r={};for(let i in qve)t&qve[i]?r[i]=!0:e.excludeFalse||(r[i]=!1);return r}Fl.parseAccountFlags=Lve;function G2t(t){let e=t.account_data,r=Lve(e.Flags,{excludeFalse:!0}),i=z2t.default(e);return Object.assign({},r,i)}function J2t(t,e={}){return V2t(this,void 0,void 0,function*(){oL.validate.getSettings({address:t,options:e}),t=oL.ensureClassicAddress(t);let r=yield this.request("account_info",{account:t,ledger_index:e.ledgerVersion||"validated",signer_lists:!0});return G2t(r)})}Fl.getSettings=J2t});var jve=x(k_=>{"use strict";var X2t=k_&&k_.__awaiter||function(t,e,r,i){function n(a){return a instanceof r?a:new r(function(s){s(a)})}return new(r||(r=Promise))(function(a,s){function o(f){try{u(i.next(f))}catch(d){s(d)}}function c(f){try{u(i.throw(f))}catch(d){s(d)}}function u(f){f.done?a(f.value):n(f.value).then(o,c)}u((i=i.apply(t,e||[])).next())})};Object.defineProperty(k_,"__esModule",{value:!0});var dT=Ot();function K2t(t){let e=t.account_data;return dT.removeUndefined({sequence:e.Sequence,xrpBalance:dT.dropsToXrp(e.Balance),ownerCount:e.OwnerCount,previousInitiatedTransactionID:e.AccountTxnID,previousAffectingTransactionID:e.PreviousTxnID,previousAffectingTransactionLedgerVersion:e.PreviousTxnLgrSeq})}function W2t(t,e={}){return X2t(this,void 0,void 0,function*(){dT.validate.getAccountInfo({address:t,options:e}),t=dT.ensureClassicAddress(t);let r=yield this.request("account_info",{account:t,ledger_index:e.ledgerVersion||"validated"});return K2t(r)})}k_.default=W2t});var Vve=x(B_=>{"use strict";var Z2t=B_&&B_.__awaiter||function(t,e,r,i){function n(a){return a instanceof r?a:new r(function(s){s(a)})}return new(r||(r=Promise))(function(a,s){function o(f){try{u(i.next(f))}catch(d){s(d)}}function c(f){try{u(i.throw(f))}catch(d){s(d)}}function u(f){f.done?a(f.value):n(f.value).then(o,c)}u((i=i.apply(t,e||[])).next())})};Object.defineProperty(B_,"__esModule",{value:!0});var $2t=Ot();function Q2t(t,e={}){return Z2t(this,void 0,void 0,function*(){return yield this.request("account_objects",$2t.removeUndefined({account:t,type:e.type,ledger_hash:e.ledgerHash,ledger_index:e.ledgerIndex,limit:e.limit,marker:e.marker}))})}B_.default=Q2t});var Hve=x(lT=>{"use strict";Object.defineProperty(lT,"__esModule",{value:!0});lT.parsePaymentChannel=void 0;var uL=Bi(),cL=Ot();function Y2t(t){return cL.removeUndefined({memos:uL.parseMemos(t),account:t.Account,amount:cL.dropsToXrp(t.Amount),balance:cL.dropsToXrp(t.Balance),destination:t.Destination,publicKey:t.PublicKey,settleDelay:t.SettleDelay,expiration:uL.parseTimestamp(t.Expiration),cancelAfter:uL.parseTimestamp(t.CancelAfter),sourceTag:t.SourceTag,destinationTag:t.DestinationTag,previousAffectingTransactionID:t.PreviousTxnID,previousAffectingTransactionLedgerVersion:t.PreviousTxnLgrSeq})}lT.parsePaymentChannel=Y2t});var Gve=x(F_=>{"use strict";var egt=F_&&F_.__awaiter||function(t,e,r,i){function n(a){return a instanceof r?a:new r(function(s){s(a)})}return new(r||(r=Promise))(function(a,s){function o(f){try{u(i.next(f))}catch(d){s(d)}}function c(f){try{u(i.throw(f))}catch(d){s(d)}}function u(f){f.done?a(f.value):n(f.value).then(o,c)}u((i=i.apply(t,e||[])).next())})};Object.defineProperty(F_,"__esModule",{value:!0});var tgt=Hve(),zve=Ot(),rgt=zve.errors.NotFoundError;function igt(t){if(t.node==null||t.node.LedgerEntryType!=="PayChannel")throw new rgt("Payment channel ledger entry not found");return tgt.parsePaymentChannel(t.node)}function ngt(t){return egt(this,void 0,void 0,function*(){zve.validate.getPaymentChannel({id:t});let e=yield this.request("ledger_entry",{index:t,binary:!1,ledger_index:"validated"});return igt(e)})}F_.default=ngt});var Ln=x(Gi=>{"use strict";var agt=Gi&&Gi.__createBinding||(Object.create?function(t,e,r,i){i===void 0&&(i=r),Object.defineProperty(t,i,{enumerable:!0,get:function(){return e[r]}})}:function(t,e,r,i){i===void 0&&(i=r),t[i]=e[r]}),sgt=Gi&&Gi.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),ogt=Gi&&Gi.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var r in t)r!=="default"&&Object.hasOwnProperty.call(t,r)&&agt(e,t,r);return sgt(e,t),e},ugt=Gi&&Gi.__awaiter||function(t,e,r,i){function n(a){return a instanceof r?a:new r(function(s){s(a)})}return new(r||(r=Promise))(function(a,s){function o(f){try{u(i.next(f))}catch(d){s(d)}}function c(f){try{u(i.throw(f))}catch(d){s(d)}}function u(f){f.done?a(f.value):n(f.value).then(o,c)}u((i=i.apply(t,e||[])).next())})},cgt=Gi&&Gi.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Gi,"__esModule",{value:!0});Gi.getClassicAccountAndTag=Gi.setCanonicalFlag=Gi.common=Gi.prepareTransaction=Gi.convertMemo=Gi.convertStringToHex=void 0;var fT=cgt(Yr()),Cp=ogt(Ot());Gi.common=Cp;var dgt=Ot(),Dl=Ic(),Jve=uo(),lgt=Cp.txFlags,fgt=["Payment","CheckCreate","EscrowCreate","PaymentChannelCreate"];function pgt(t){let e={fee:Cp.dropsToXrp(t.Fee),maxLedgerVersion:t.LastLedgerSequence==null?null:t.LastLedgerSequence};return t.TicketSequence!=null?e.ticketSequence=t.TicketSequence:e.sequence=t.Sequence,{txJSON:JSON.stringify(t),instructions:e}}function Kve(t){t.Flags|=lgt.Universal.FullyCanonicalSig,t.Flags=t.Flags>>>0}Gi.setCanonicalFlag=Kve;function Xve(t,e,r=0){return new fT.default(t).times(e).plus(r).toString()}function pT(t,e){if(Jve.isValidXAddress(t)){let r=Jve.xAddressToClassicAddress(t);if(e!=null&&r.tag!==e)throw new Dl.ValidationError("address includes a tag that does not match the tag specified in the transaction");return{classicAccount:r.classicAddress,tag:r.tag}}else return{classicAccount:t,tag:e}}Gi.getClassicAccountAndTag=pT;function hgt(t,e,r){if(Cp.validate.instructions(r),Cp.validate.tx_json(t),r.sequence!=null&&r.sequence===0)return Promise.reject(new Dl.ValidationError("`sequence` cannot be 0"));let n=["maxLedgerVersion","maxLedgerVersionOffset","fee","sequence","ticketSequence"].filter(b=>t[b]);if(n.length)return Promise.reject(new Dl.ValidationError('txJSON additionalProperty "'+n[0]+'" exists in instance when not allowed'));let a=Object.assign({},t);t.SignerQuorum===0&&delete a.SignerEntries;let{classicAccount:s,tag:o}=pT(t.Account);if(a.Account=s,o!=null){if(t.SourceTag&&t.SourceTag!==o)return Promise.reject(new Dl.ValidationError("The `SourceTag`, if present, must match the tag of the `Account` X-address"));o&&(a.SourceTag=o)}if(typeof t.Destination=="string"){let{classicAccount:b,tag:T}=pT(t.Destination);if(a.Destination=b,T!=null&&fgt.includes(t.TransactionType)){if(t.DestinationTag&&t.DestinationTag!==T)return Promise.reject(new Dl.ValidationError("The Payment `DestinationTag`, if present, must match the tag of the `Destination` X-address"));T&&(a.DestinationTag=T)}}function c(b){let T=t[b];if(typeof T=="string"){let{classicAccount:I}=pT(T);a[b]=I}}function u(b){let T=t[b];typeof T=="number"||T instanceof Array||T==null||(a[b]=dgt.toRippledAmount(T))}c("Authorize"),c("Unauthorize"),c("Owner"),c("RegularKey"),u("Amount"),u("SendMax"),u("DeliverMin"),u("TakerPays"),u("TakerGets"),u("LimitAmount"),Kve(a);function f(){if(a.LastLedgerSequence&&r.maxLedgerVersion)return Promise.reject(new Dl.ValidationError("`LastLedgerSequence` in txJSON and `maxLedgerVersion` in `instructions` cannot both be set"));if(a.LastLedgerSequence&&r.maxLedgerVersionOffset)return Promise.reject(new Dl.ValidationError("`LastLedgerSequence` in txJSON and `maxLedgerVersionOffset` in `instructions` cannot both be set"));if(a.LastLedgerSequence)return Promise.resolve();if(r.maxLedgerVersion!==void 0)return r.maxLedgerVersion!==null&&(a.LastLedgerSequence=r.maxLedgerVersion),Promise.resolve();let b=r.maxLedgerVersionOffset!=null?r.maxLedgerVersionOffset:3;return e.connection.getLedgerVersion().then(T=>{a.LastLedgerSequence=T+b})}function d(){if(a.Fee&&r.fee)return Promise.reject(new Dl.ValidationError("`Fee` in txJSON and `fee` in `instructions` cannot both be set"));if(a.Fee)return Promise.resolve();let b=r.signersCount==null?1:r.signersCount+1;if(r.fee!=null){let I=new fT.default(r.fee);return I.isGreaterThan(e._maxFeeXRP)?Promise.reject(new Dl.ValidationError(`Fee of ${I.toString(10)} XRP exceeds max of ${e._maxFeeXRP} XRP. To use this fee, increase \`maxFeeXRP\` in the RippleAPI constructor.`)):(a.Fee=Xve(Cp.xrpToDrops(r.fee),b),Promise.resolve())}let T=e._feeCushion;return e.getFee(T).then(I=>e.connection.getFeeRef().then(L=>{let U=a.TransactionType!=="EscrowFinish"||a.Fulfillment==null?0:T*L*(32+Math.floor(Buffer.from(a.Fulfillment,"hex").length/16)),re=Cp.xrpToDrops(I),oe=r.maxFee?fT.default.min(e._maxFeeXRP,r.maxFee):e._maxFeeXRP,ge=Cp.xrpToDrops(oe),be=Xve(re,b,U);a.Fee=fT.default.min(be,ge).toString(10)}))}function p(){return ugt(this,void 0,void 0,function*(){if(r.sequence!=null)return a.Sequence==null||r.sequence===a.Sequence?(a.Sequence=r.sequence,Promise.resolve()):Promise.reject(new Dl.ValidationError("`Sequence` in txJSON must match `sequence` in `instructions`"));if(a.Sequence!=null)return Promise.resolve();if(r.ticketSequence!=null)return a.Sequence=0,a.TicketSequence=r.ticketSequence,Promise.resolve();try{let b=yield e.request("account_info",{account:s,ledger_index:"current"});return a.Sequence=b.account_data.Sequence,Promise.resolve()}catch(b){return Promise.reject(b)}})}return Promise.all([f(),d(),p()]).then(()=>pgt(a))}Gi.prepareTransaction=hgt;function hT(t){return Buffer.from(t,"utf8").toString("hex").toUpperCase()}Gi.convertStringToHex=hT;function mgt(t){return{Memo:Cp.removeUndefined({MemoData:t.data?hT(t.data):void 0,MemoType:t.type?hT(t.type):void 0,MemoFormat:t.format?hT(t.format):void 0})}}Gi.convertMemo=mgt});var $ve=x(Ip=>{"use strict";var ggt=Ip&&Ip.__createBinding||(Object.create?function(t,e,r,i){i===void 0&&(i=r),Object.defineProperty(t,i,{enumerable:!0,get:function(){return e[r]}})}:function(t,e,r,i){i===void 0&&(i=r),t[i]=e[r]}),ygt=Ip&&Ip.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),Zve=Ip&&Ip.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var r in t)r!=="default"&&Object.hasOwnProperty.call(t,r)&&ggt(e,t,r);return ygt(e,t),e};Object.defineProperty(Ip,"__esModule",{value:!0});var vgt=Zve(Vi()),D_=Zve(Ln()),bgt=D_.common.validate,dL=D_.common.txFlags.Payment,mT=D_.common.errors.ValidationError,gT=Ot(),_gt=Ln();function yT(t){return t.maxAmount!=null}function E2(t){return t.minAmount!=null}function Wve(t){let{source:e,destination:r}=t,i=yT(e)?e.maxAmount.currency:e.amount.currency,n=E2(r)?r.minAmount.currency:r.amount.currency;return(i==="XRP"||i==="drops")&&(n==="XRP"||n==="drops")}function wgt(t){return t&&t.currency!=="XRP"&&t.currency!=="drops"&&t.counterparty==null}function xgt(t){[t.source,t.destination].forEach(e=>{["amount","minAmount","maxAmount"].forEach(r=>{wgt(e[r])&&(e[r].counterparty=e.address)})})}function Sgt(t){let e="100000000000",r="999999999999999900000000000000000000000000000000000000000000000000000000000000000000000000000000",i;return t.currency==="XRP"?i=e:t.currency==="drops"?i=gT.xrpToDrops(e):i=r,Object.assign({},t,{value:i})}function lL(t,e){let r=_gt.getClassicAccountAndTag(t,e);return r.tag=r.tag===!1?void 0:r.tag,r}function Egt(t,e){let r=vgt.cloneDeep(e);xgt(r);let i=lL(r.source.address,r.source.tag),n=lL(t,void 0);if(n.classicAccount!==i.classicAccount)throw new mT("address must match payment.source.address");if(n.tag!=null&&i.tag!=null&&n.tag!==i.tag)throw new mT("address includes a tag that does not match payment.source.tag");let a=lL(r.destination.address,r.destination.tag);if(yT(r.source)&&E2(r.destination)||!yT(r.source)&&!E2(r.destination))throw new mT("payment must specify either (source.maxAmount and destination.amount) or (source.amount and destination.minAmount)");let s=E2(r.destination)?r.destination.minAmount:r.destination.amount,o=yT(r.source)?r.source.maxAmount:r.source.amount,c=E2(r.destination)&&!Wve(r)?Sgt(s):s,u={TransactionType:"Payment",Account:i.classicAccount,Destination:a.classicAccount,Amount:gT.toRippledAmount(c),Flags:0};if(r.invoiceID!=null&&(u.InvoiceID=r.invoiceID),i.tag!=null&&(u.SourceTag=i.tag),a.tag!=null&&(u.DestinationTag=a.tag),r.memos!=null&&(u.Memos=r.memos.map(D_.convertMemo)),r.noDirectRipple===!0&&(u.Flags|=dL.NoRippleDirect),r.limitQuality===!0&&(u.Flags|=dL.LimitQuality),!Wve(r))(r.allowPartialPayment||E2(r.destination))&&(u.Flags|=dL.PartialPayment),u.SendMax=gT.toRippledAmount(o),E2(r.destination)&&(u.DeliverMin=gT.toRippledAmount(s)),r.paths!=null&&(u.Paths=JSON.parse(r.paths));else if(r.allowPartialPayment===!0)throw new mT("XRP to XRP payments cannot be partial payments");return u}function Tgt(t,e,r={}){try{bgt.preparePayment({address:t,payment:e,instructions:r});let i=Egt(t,e);return D_.prepareTransaction(i,this,r)}catch(i){return Promise.reject(i)}}Ip.default=Tgt});var e6e=x(Kc=>{"use strict";var Agt=Kc&&Kc.__createBinding||(Object.create?function(t,e,r,i){i===void 0&&(i=r),Object.defineProperty(t,i,{enumerable:!0,get:function(){return e[r]}})}:function(t,e,r,i){i===void 0&&(i=r),t[i]=e[r]}),Pgt=Kc&&Kc.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),Ogt=Kc&&Kc.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var r in t)r!=="default"&&Object.hasOwnProperty.call(t,r)&&Agt(e,t,r);return Pgt(e,t),e},Rgt=Kc&&Kc.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Kc,"__esModule",{value:!0});var Qve=Rgt(Yr()),vT=Ogt(Ln()),Mgt=vT.common.validate,q_=vT.common.txFlags.TrustSet;function Yve(t){return new Qve.default(t).shiftedBy(9).integerValue(Qve.default.ROUND_DOWN).toNumber()}function Cgt(t,e){let r={currency:e.currency,issuer:e.counterparty,value:e.limit},i={TransactionType:"TrustSet",Account:t,LimitAmount:r,Flags:0};return e.qualityIn!=null&&(i.QualityIn=Yve(e.qualityIn)),e.qualityOut!=null&&(i.QualityOut=Yve(e.qualityOut)),e.authorized===!0&&(i.Flags|=q_.SetAuth),e.ripplingDisabled!=null&&(i.Flags|=e.ripplingDisabled?q_.NoRipple:q_.ClearNoRipple),e.frozen!=null&&(i.Flags|=e.frozen?q_.SetFreeze:q_.ClearFreeze),e.memos!=null&&(i.Memos=e.memos.map(vT.convertMemo)),i}function Igt(t,e,r={}){try{Mgt.prepareTrustline({address:t,trustline:e,instructions:r});let i=Cgt(t,e);return vT.prepareTransaction(i,this,r)}catch(i){return Promise.reject(i)}}Kc.default=Igt});var t6e=x(Np=>{"use strict";var Ngt=Np&&Np.__createBinding||(Object.create?function(t,e,r,i){i===void 0&&(i=r),Object.defineProperty(t,i,{enumerable:!0,get:function(){return e[r]}})}:function(t,e,r,i){i===void 0&&(i=r),t[i]=e[r]}),kgt=Np&&Np.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),Bgt=Np&&Np.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var r in t)r!=="default"&&Object.hasOwnProperty.call(t,r)&&Ngt(e,t,r);return kgt(e,t),e};Object.defineProperty(Np,"__esModule",{value:!0});var fL=Bgt(Ln()),bT=fL.common.txFlags.OfferCreate,_T=Ot();function Fgt(t,e){let r=_T.toRippledAmount(e.direction==="buy"?e.quantity:e.totalPrice),i=_T.toRippledAmount(e.direction==="buy"?e.totalPrice:e.quantity),n={TransactionType:"OfferCreate",Account:t,TakerGets:i,TakerPays:r,Flags:0};return e.direction==="sell"&&(n.Flags|=bT.Sell),e.passive===!0&&(n.Flags|=bT.Passive),e.immediateOrCancel===!0&&(n.Flags|=bT.ImmediateOrCancel),e.fillOrKill===!0&&(n.Flags|=bT.FillOrKill),e.expirationTime!=null&&(n.Expiration=_T.iso8601ToRippleTime(e.expirationTime)),e.orderToReplace!=null&&(n.OfferSequence=e.orderToReplace),e.memos!=null&&(n.Memos=e.memos.map(fL.convertMemo)),n}function Dgt(t,e,r={}){try{_T.validate.prepareOrder({address:t,order:e,instructions:r});let i=Fgt(t,e);return fL.prepareTransaction(i,this,r)}catch(i){return Promise.reject(i)}}Np.default=Dgt});var r6e=x(kp=>{"use strict";var qgt=kp&&kp.__createBinding||(Object.create?function(t,e,r,i){i===void 0&&(i=r),Object.defineProperty(t,i,{enumerable:!0,get:function(){return e[r]}})}:function(t,e,r,i){i===void 0&&(i=r),t[i]=e[r]}),Lgt=kp&&kp.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),Ugt=kp&&kp.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var r in t)r!=="default"&&Object.hasOwnProperty.call(t,r)&&qgt(e,t,r);return Lgt(e,t),e};Object.defineProperty(kp,"__esModule",{value:!0});var pL=Ugt(Ln()),jgt=pL.common.validate;function Vgt(t,e){let r={TransactionType:"OfferCancel",Account:t,OfferSequence:e.orderSequence};return e.memos!=null&&(r.Memos=e.memos.map(pL.convertMemo)),r}function Hgt(t,e,r={}){try{jgt.prepareOrderCancellation({address:t,orderCancellation:e,instructions:r});let i=Vgt(t,e);return pL.prepareTransaction(i,this,r)}catch(i){return Promise.reject(i)}}kp.default=Hgt});var i6e=x(Bp=>{"use strict";var zgt=Bp&&Bp.__createBinding||(Object.create?function(t,e,r,i){i===void 0&&(i=r),Object.defineProperty(t,i,{enumerable:!0,get:function(){return e[r]}})}:function(t,e,r,i){i===void 0&&(i=r),t[i]=e[r]}),Ggt=Bp&&Bp.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),Jgt=Bp&&Bp.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var r in t)r!=="default"&&Object.hasOwnProperty.call(t,r)&&zgt(e,t,r);return Ggt(e,t),e};Object.defineProperty(Bp,"__esModule",{value:!0});var hL=Jgt(Ln()),wT=Ot(),Xgt=hL.common.errors.ValidationError;function Kgt(t,e){let r={TransactionType:"EscrowCreate",Account:t,Destination:e.destination,Amount:wT.xrpToDrops(e.amount)};if(e.condition!=null&&(r.Condition=e.condition),e.allowCancelAfter!=null&&(r.CancelAfter=wT.iso8601ToRippleTime(e.allowCancelAfter)),e.allowExecuteAfter!=null&&(r.FinishAfter=wT.iso8601ToRippleTime(e.allowExecuteAfter)),e.sourceTag!=null&&(r.SourceTag=e.sourceTag),e.destinationTag!=null&&(r.DestinationTag=e.destinationTag),e.memos!=null&&(r.Memos=e.memos.map(hL.convertMemo)),Boolean(e.allowCancelAfter)&&Boolean(e.allowExecuteAfter)&&r.CancelAfter<=r.FinishAfter)throw new Xgt('prepareEscrowCreation: "allowCancelAfter" must be after "allowExecuteAfter"');return r}function Wgt(t,e,r={}){try{wT.validate.prepareEscrowCreation({address:t,escrowCreation:e,instructions:r});let i=Kgt(t,e);return hL.prepareTransaction(i,this,r)}catch(i){return Promise.reject(i)}}Bp.default=Wgt});var n6e=x(Fp=>{"use strict";var Zgt=Fp&&Fp.__createBinding||(Object.create?function(t,e,r,i){i===void 0&&(i=r),Object.defineProperty(t,i,{enumerable:!0,get:function(){return e[r]}})}:function(t,e,r,i){i===void 0&&(i=r),t[i]=e[r]}),$gt=Fp&&Fp.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),Qgt=Fp&&Fp.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var r in t)r!=="default"&&Object.hasOwnProperty.call(t,r)&&Zgt(e,t,r);return $gt(e,t),e};Object.defineProperty(Fp,"__esModule",{value:!0});var xT=Qgt(Ln()),Ygt=xT.common.validate,eyt=xT.common.errors.ValidationError;function tyt(t,e){let r={TransactionType:"EscrowFinish",Account:t,Owner:e.owner,OfferSequence:e.escrowSequence};if(Boolean(e.condition)!==Boolean(e.fulfillment))throw new eyt('"condition" and "fulfillment" fields on EscrowFinish must only be specified together.');return e.condition!=null&&(r.Condition=e.condition),e.fulfillment!=null&&(r.Fulfillment=e.fulfillment),e.memos!=null&&(r.Memos=e.memos.map(xT.convertMemo)),r}function ryt(t,e,r={}){try{Ygt.prepareEscrowExecution({address:t,escrowExecution:e,instructions:r});let i=tyt(t,e);return xT.prepareTransaction(i,this,r)}catch(i){return Promise.reject(i)}}Fp.default=ryt});var a6e=x(Dp=>{"use strict";var iyt=Dp&&Dp.__createBinding||(Object.create?function(t,e,r,i){i===void 0&&(i=r),Object.defineProperty(t,i,{enumerable:!0,get:function(){return e[r]}})}:function(t,e,r,i){i===void 0&&(i=r),t[i]=e[r]}),nyt=Dp&&Dp.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),ayt=Dp&&Dp.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var r in t)r!=="default"&&Object.hasOwnProperty.call(t,r)&&iyt(e,t,r);return nyt(e,t),e};Object.defineProperty(Dp,"__esModule",{value:!0});var mL=ayt(Ln()),syt=mL.common.validate;function oyt(t,e){let r={TransactionType:"EscrowCancel",Account:t,Owner:e.owner,OfferSequence:e.escrowSequence};return e.memos!=null&&(r.Memos=e.memos.map(mL.convertMemo)),r}function uyt(t,e,r={}){syt.prepareEscrowCancellation({address:t,escrowCancellation:e,instructions:r});let i=oyt(t,e);return mL.prepareTransaction(i,this,r)}Dp.default=uyt});var s6e=x(qp=>{"use strict";var cyt=qp&&qp.__createBinding||(Object.create?function(t,e,r,i){i===void 0&&(i=r),Object.defineProperty(t,i,{enumerable:!0,get:function(){return e[r]}})}:function(t,e,r,i){i===void 0&&(i=r),t[i]=e[r]}),dyt=qp&&qp.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),lyt=qp&&qp.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var r in t)r!=="default"&&Object.hasOwnProperty.call(t,r)&&cyt(e,t,r);return dyt(e,t),e};Object.defineProperty(qp,"__esModule",{value:!0});var fyt=lyt(Ln()),gL=Ot();function pyt(t,e){let r={Account:t,TransactionType:"PaymentChannelCreate",Amount:gL.xrpToDrops(e.amount),Destination:e.destination,SettleDelay:e.settleDelay,PublicKey:e.publicKey.toUpperCase()};return e.cancelAfter!=null&&(r.CancelAfter=gL.iso8601ToRippleTime(e.cancelAfter)),e.sourceTag!=null&&(r.SourceTag=e.sourceTag),e.destinationTag!=null&&(r.DestinationTag=e.destinationTag),r}function hyt(t,e,r={}){try{gL.validate.preparePaymentChannelCreate({address:t,paymentChannelCreate:e,instructions:r});let i=pyt(t,e);return fyt.prepareTransaction(i,this,r)}catch(i){return Promise.reject(i)}}qp.default=hyt});var o6e=x(Lp=>{"use strict";var myt=Lp&&Lp.__createBinding||(Object.create?function(t,e,r,i){i===void 0&&(i=r),Object.defineProperty(t,i,{enumerable:!0,get:function(){return e[r]}})}:function(t,e,r,i){i===void 0&&(i=r),t[i]=e[r]}),gyt=Lp&&Lp.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),yyt=Lp&&Lp.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var r in t)r!=="default"&&Object.hasOwnProperty.call(t,r)&&myt(e,t,r);return gyt(e,t),e};Object.defineProperty(Lp,"__esModule",{value:!0});var vyt=yyt(Ln()),yL=Ot();function byt(t,e){let r={Account:t,TransactionType:"PaymentChannelFund",Channel:e.channel,Amount:yL.xrpToDrops(e.amount)};return e.expiration!=null&&(r.Expiration=yL.iso8601ToRippleTime(e.expiration)),r}function _yt(t,e,r={}){try{yL.validate.preparePaymentChannelFund({address:t,paymentChannelFund:e,instructions:r});let i=byt(t,e);return vyt.prepareTransaction(i,this,r)}catch(i){return Promise.reject(i)}}Lp.default=_yt});var d6e=x(Up=>{"use strict";var wyt=Up&&Up.__createBinding||(Object.create?function(t,e,r,i){i===void 0&&(i=r),Object.defineProperty(t,i,{enumerable:!0,get:function(){return e[r]}})}:function(t,e,r,i){i===void 0&&(i=r),t[i]=e[r]}),xyt=Up&&Up.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),Syt=Up&&Up.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var r in t)r!=="default"&&Object.hasOwnProperty.call(t,r)&&wyt(e,t,r);return xyt(e,t),e};Object.defineProperty(Up,"__esModule",{value:!0});var bL=Syt(Ln()),u6e=bL.common.errors.ValidationError,c6e=bL.common.txFlags.PaymentChannelClaim,vL=Ot();function Eyt(t,e){let r={Account:t,TransactionType:"PaymentChannelClaim",Channel:e.channel,Flags:0};if(e.balance!=null&&(r.Balance=vL.xrpToDrops(e.balance)),e.amount!=null&&(r.Amount=vL.xrpToDrops(e.amount)),Boolean(e.signature)!==Boolean(e.publicKey))throw new u6e('"signature" and "publicKey" fields on PaymentChannelClaim must only be specified together.');if(e.signature!=null&&(r.Signature=e.signature),e.publicKey!=null&&(r.PublicKey=e.publicKey),e.renew===!0&&e.close===!0)throw new u6e('"renew" and "close" flags on PaymentChannelClaim are mutually exclusive');return e.renew===!0&&(r.Flags|=c6e.Renew),e.close===!0&&(r.Flags|=c6e.Close),r}function Tyt(t,e,r={}){try{vL.validate.preparePaymentChannelClaim({address:t,paymentChannelClaim:e,instructions:r});let i=Eyt(t,e);return bL.prepareTransaction(i,this,r)}catch(i){return Promise.reject(i)}}Up.default=Tyt});var p6e=x(jp=>{"use strict";var Ayt=jp&&jp.__createBinding||(Object.create?function(t,e,r,i){i===void 0&&(i=r),Object.defineProperty(t,i,{enumerable:!0,get:function(){return e[r]}})}:function(t,e,r,i){i===void 0&&(i=r),t[i]=e[r]}),Pyt=jp&&jp.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),Oyt=jp&&jp.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var r in t)r!=="default"&&Object.hasOwnProperty.call(t,r)&&Ayt(e,t,r);return Pyt(e,t),e};Object.defineProperty(jp,"__esModule",{value:!0});var l6e=Oyt(Ln()),Ryt=l6e.common.toRippledAmount,f6e=Ot();function Myt(t,e){let r={Account:t,TransactionType:"CheckCreate",Destination:e.destination,SendMax:Ryt(e.sendMax)};return e.destinationTag!=null&&(r.DestinationTag=e.destinationTag),e.expiration!=null&&(r.Expiration=f6e.iso8601ToRippleTime(e.expiration)),e.invoiceID!=null&&(r.InvoiceID=e.invoiceID),r}function Cyt(t,e,r={}){try{f6e.validate.prepareCheckCreate({address:t,checkCreate:e,instructions:r});let i=Myt(t,e);return l6e.prepareTransaction(i,this,r)}catch(i){return Promise.reject(i)}}jp.default=Cyt});var h6e=x(_L=>{"use strict";Object.defineProperty(_L,"__esModule",{value:!0});var Iyt=Ln(),Nyt=Ot();function kyt(t,e){return{Account:t,TransactionType:"CheckCancel",CheckID:e.checkID}}function Byt(t,e,r={}){try{Nyt.validate.prepareCheckCancel({address:t,checkCancel:e,instructions:r});let i=kyt(t,e);return Iyt.prepareTransaction(i,this,r)}catch(i){return Promise.reject(i)}}_L.default=Byt});var g6e=x(Vp=>{"use strict";var Fyt=Vp&&Vp.__createBinding||(Object.create?function(t,e,r,i){i===void 0&&(i=r),Object.defineProperty(t,i,{enumerable:!0,get:function(){return e[r]}})}:function(t,e,r,i){i===void 0&&(i=r),t[i]=e[r]}),Dyt=Vp&&Vp.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),qyt=Vp&&Vp.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var r in t)r!=="default"&&Object.hasOwnProperty.call(t,r)&&Fyt(e,t,r);return Dyt(e,t),e};Object.defineProperty(Vp,"__esModule",{value:!0});var wL=qyt(Ln()),Lyt=wL.common.errors.ValidationError,m6e=wL.common.toRippledAmount,Uyt=Ot();function jyt(t,e){if(e.amount&&e.deliverMin)throw new Lyt('"amount" and "deliverMin" properties on CheckCash are mutually exclusive');let r={Account:t,TransactionType:"CheckCash",CheckID:e.checkID};return e.amount!=null&&(r.Amount=m6e(e.amount)),e.deliverMin!=null&&(r.DeliverMin=m6e(e.deliverMin)),r}function Vyt(t,e,r={}){try{Uyt.validate.prepareCheckCash({address:t,checkCash:e,instructions:r});let i=jyt(t,e);return wL.prepareTransaction(i,this,r)}catch(i){return Promise.reject(i)}}Vp.default=Vyt});var b6e=x(Wc=>{"use strict";var Hyt=Wc&&Wc.__createBinding||(Object.create?function(t,e,r,i){i===void 0&&(i=r),Object.defineProperty(t,i,{enumerable:!0,get:function(){return e[r]}})}:function(t,e,r,i){i===void 0&&(i=r),t[i]=e[r]}),zyt=Wc&&Wc.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),v6e=Wc&&Wc.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var r in t)r!=="default"&&Object.hasOwnProperty.call(t,r)&&Hyt(e,t,r);return zyt(e,t),e},Gyt=Wc&&Wc.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Wc,"__esModule",{value:!0});var Jyt=v6e(require("assert")),Xyt=Gyt(Yr()),L_=v6e(Ln()),Kyt=L_.common.validate,y6e=L_.common.constants.AccountSetFlags,Wyt=L_.common.constants.AccountFields;function Zyt(t,e){let r=Object.keys(e).filter(s=>y6e[s]!=null);Jyt.ok(r.length<=1,"ERROR: can only set one setting per transaction");let i=r[0],n=e[i],a=y6e[i];a!=null&&(n?t.SetFlag=a:t.ClearFlag=a)}function $yt(t,e){let r=Wyt;for(let i in r){let n=r[i],a=e[n.name];a!==void 0&&(a===null&&n.hasOwnProperty("defaults")&&(a=n.defaults),n.encoding==="hex"&&!n.length&&(a=Buffer.from(a,"ascii").toString("hex").toUpperCase()),t[i]=a)}}function Qyt(t){return new Xyt.default(t).shiftedBy(9).toNumber()}function Yyt(t){return{SignerEntry:{Account:t.address,SignerWeight:t.weight}}}function evt(t,e){if(e.regularKey!==void 0){let n={TransactionType:"SetRegularKey",Account:t};return e.regularKey===null?n:Object.assign({},n,{RegularKey:e.regularKey})}if(e.signers!=null){let n={TransactionType:"SignerListSet",Account:t,SignerEntries:[],SignerQuorum:e.signers.threshold};return e.signers.weights!=null&&(n.SignerEntries=e.signers.weights.map(Yyt)),n}let r={TransactionType:"AccountSet",Account:t},i=Object.assign({},e);return delete i.memos,Zyt(r,i),$yt(r,e),r.TransferRate!=null&&(r.TransferRate=Qyt(r.TransferRate)),r}function tvt(t,e){let r=evt(t,e);return e.memos!=null&&(r.Memos=e.memos.map(L_.convertMemo)),r}function rvt(t,e,r={}){try{Kyt.prepareSettings({address:t,settings:e,instructions:r});let i=tvt(t,e);return L_.prepareTransaction(i,this,r)}catch(i){return Promise.reject(i)}}Wc.default=rvt});var _6e=x(Hp=>{"use strict";var ivt=Hp&&Hp.__createBinding||(Object.create?function(t,e,r,i){i===void 0&&(i=r),Object.defineProperty(t,i,{enumerable:!0,get:function(){return e[r]}})}:function(t,e,r,i){i===void 0&&(i=r),t[i]=e[r]}),nvt=Hp&&Hp.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),avt=Hp&&Hp.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var r in t)r!=="default"&&Object.hasOwnProperty.call(t,r)&&ivt(e,t,r);return nvt(e,t),e};Object.defineProperty(Hp,"__esModule",{value:!0});var xL=avt(Ln()),svt=xL.common.validate,ovt=xL.common.errors.ValidationError;function uvt(t,e){if(!e||e===0)throw new ovt("Ticket count must be greater than 0.");return{TransactionType:"TicketCreate",Account:t,TicketCount:e}}function cvt(t,e,r={}){try{svt.prepareTicketCreate({address:t,ticketCount:e,instructions:r});let i=uvt(t,e);return xL.prepareTransaction(i,this,r)}catch(i){return Promise.reject(i)}}Hp.default=cvt});var P6e=x(Zc=>{"use strict";var dvt=Zc&&Zc.__createBinding||(Object.create?function(t,e,r,i){i===void 0&&(i=r),Object.defineProperty(t,i,{enumerable:!0,get:function(){return e[r]}})}:function(t,e,r,i){i===void 0&&(i=r),t[i]=e[r]}),lvt=Zc&&Zc.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),fvt=Zc&&Zc.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var r in t)r!=="default"&&Object.hasOwnProperty.call(t,r)&&dvt(e,t,r);return lvt(e,t),e},ET=Zc&&Zc.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Zc,"__esModule",{value:!0});var S6e=ET(Vi()),C6=fvt(Ln()),E6e=ET(o2()),ST=ET(v2()),pvt=_2(),hvt=ET(Yr()),mvt=Ot(),T6e=C6.common.validate;function w6e(t,e,r){let i=r?ST.default.encodeForMultisigning(t,r):ST.default.encodeForSigning(t);return E6e.default.sign(i,e)}function x6e(t,e,r,i={signAs:""}){T6e.sign({txJSON:e,keypair:r});let n=JSON.parse(e);if(n.TxnSignature||n.Signers)throw new C6.common.errors.ValidationError('txJSON must not contain "TxnSignature" or "Signers" properties');yvt(t,n.Fee);let a=Object.assign({},n);if(a.SigningPubKey=i.signAs?"":r.publicKey,i.signAs){let o={Account:i.signAs,SigningPubKey:r.publicKey,TxnSignature:w6e(a,r.privateKey,i.signAs)};a.Signers=[{Signer:o}]}else a.TxnSignature=w6e(a,r.privateKey);let s=ST.default.encode(a);return gvt(s,n),{signedTransaction:s,id:pvt.computeBinaryTransactionHash(s)}}function A6e(t,e){let r={},i=function(n,a,s){let o=Object.prototype.toString.call(n),c=Object.prototype.toString.call(a);if(c==="[object Undefined]"){r[s]=null;return}if(o!==c){r[s]=a;return}if(o==="[object Object]"){let u=A6e(n,a);Object.keys(u).length>0&&(r[s]=u);return}if(o==="[object Array]"){S6e.default.isEqual(n,a)||(r[s]=a);return}if(o==="[object Function]"){n.toString()!==a.toString()&&(r[s]=a);return}n!==a&&(r[s]=a)};for(let n in t)t.hasOwnProperty(n)&&i(t[n],e[n],n);for(let n in e)e.hasOwnProperty(n)&&!t[n]&&t[n]!==e[n]&&(r[n]=e[n]);return r}function gvt(t,e){var r;let i=ST.default.decode(t);if(!i.TxnSignature&&!i.Signers)throw new C6.common.errors.ValidationError("Serialized transaction must have a TxnSignature or Signers property");if(delete i.TxnSignature,delete i.Signers,e.SigningPubKey||delete i.SigningPubKey,(r=e.Memos)===null||r===void 0||r.map(n=>{var a,s,o;return!((a=n?.Memo)===null||a===void 0)&&a.MemoData&&(n.Memo.MemoData=n.Memo.MemoData.toUpperCase()),!((s=n?.Memo)===null||s===void 0)&&s.MemoType&&(n.Memo.MemoType=n.Memo.MemoType.toUpperCase()),!((o=n?.Memo)===null||o===void 0)&&o.MemoFormat&&(n.Memo.MemoFormat=n.Memo.MemoFormat.toUpperCase()),n}),!S6e.default.isEqual(i,e)){let n=new C6.common.errors.ValidationError("Serialized transaction does not match original txJSON. See `error.data`");throw n.data={decoded:i,tx:e,diff:A6e(e,i)},n}}function yvt(t,e){let r=new hvt.default(e),i=mvt.xrpToDrops(t._maxFeeXRP);if(r.isGreaterThan(i))throw new C6.common.errors.ValidationError(`"Fee" should not exceed "${i}". To use a higher fee, set \`maxFeeXRP\` in the RippleAPI constructor.`)}function vvt(t,e,r,i){if(typeof e=="string")return T6e.sign({txJSON:t,secret:e}),x6e(this,t,E6e.default.deriveKeypair(e),r);if(!i&&!e)throw new C6.common.errors.ValidationError("sign: Missing secret or keypair.");return x6e(this,t,i||e,r)}Zc.default=vvt});var C6e=x($c=>{"use strict";var bvt=$c&&$c.__createBinding||(Object.create?function(t,e,r,i){i===void 0&&(i=r),Object.defineProperty(t,i,{enumerable:!0,get:function(){return e[r]}})}:function(t,e,r,i){i===void 0&&(i=r),t[i]=e[r]}),_vt=$c&&$c.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),wvt=$c&&$c.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var r in t)r!=="default"&&Object.hasOwnProperty.call(t,r)&&bvt(e,t,r);return _vt(e,t),e},M6e=$c&&$c.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty($c,"__esModule",{value:!0});var xvt=wvt(Vi()),O6e=M6e(v2()),Svt=M6e(Yr()),Evt=Ic(),Tvt=uo(),Avt=Ot(),Pvt=_2();function Ovt(t){let e=JSON.stringify(Object.assign(Object.assign({},t[0]),{Signers:null}));if(t.slice(1).some(r=>JSON.stringify(Object.assign(Object.assign({},r),{Signers:null}))!==e))throw new Evt.ValidationError("txJSON is not the same for all signedTransactions")}function R6e(t){let e=Buffer.from(Tvt.decodeAccountID(t)).toString("hex");return new Svt.default(e,16)}function Rvt(t,e){return R6e(t.Signer.Account).comparedTo(R6e(e.Signer.Account))}function Mvt(t){let e=xvt.flatMap(t,r=>r.Signers).filter(r=>r).sort(Rvt);return Object.assign(Object.assign({},t[0]),{Signers:e})}function Cvt(t){Avt.validate.combine({signedTransactions:t});let e=t.map(O6e.default.decode);Ovt(e);let r=O6e.default.encode(Mvt(e));return{signedTransaction:r,id:Pvt.computeBinaryTransactionHash(r)}}$c.default=Cvt});var I6e=x(Qc=>{"use strict";var Ivt=Qc&&Qc.__createBinding||(Object.create?function(t,e,r,i){i===void 0&&(i=r),Object.defineProperty(t,i,{enumerable:!0,get:function(){return e[r]}})}:function(t,e,r,i){i===void 0&&(i=r),t[i]=e[r]}),Nvt=Qc&&Qc.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),kvt=Qc&&Qc.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var r in t)r!=="default"&&Object.hasOwnProperty.call(t,r)&&Ivt(e,t,r);return Nvt(e,t),e},Bvt=Qc&&Qc.__awaiter||function(t,e,r,i){function n(a){return a instanceof r?a:new r(function(s){s(a)})}return new(r||(r=Promise))(function(a,s){function o(f){try{u(i.next(f))}catch(d){s(d)}}function c(f){try{u(i.throw(f))}catch(d){s(d)}}function u(f){f.done?a(f.value):n(f.value).then(o,c)}u((i=i.apply(t,e||[])).next())})};Object.defineProperty(Qc,"__esModule",{value:!0});var Fvt=kvt(Ln()),Dvt=Ot();function qvt(t){return t.startsWith("tem")}function Lvt(t){let e={resultCode:t.engine_result,resultMessage:t.engine_result_message,engine_result:t.engine_result,engine_result_code:t.engine_result_code,engine_result_message:t.engine_result_message,tx_blob:t.tx_blob,tx_json:t.tx_json};if(qvt(t.engine_result))throw new Fvt.common.errors.RippledError("Submit failed",e);return e}function Uvt(t,e){return Bvt(this,void 0,void 0,function*(){Dvt.validate.submit({signedTransaction:t});let r=yield this.request("submit",Object.assign({tx_blob:t},e?{fail_hard:e}:{}));return Lvt(r)})}Qc.default=Uvt});var EL=x(Qh=>{"use strict";Object.defineProperty(Qh,"__esModule",{value:!0});Qh.deriveXAddress=Qh.deriveAddress=Qh.deriveKeypair=void 0;var SL=o2();Object.defineProperty(Qh,"deriveKeypair",{enumerable:!0,get:function(){return SL.deriveKeypair}});Object.defineProperty(Qh,"deriveAddress",{enumerable:!0,get:function(){return SL.deriveAddress}});var jvt=uo();function Vvt(t){let e=SL.deriveAddress(t.publicKey);return jvt.classicAddressToXAddress(e,t.tag,t.test)}Qh.deriveXAddress=Vvt});var AL=x(zp=>{"use strict";var Hvt=zp&&zp.__createBinding||(Object.create?function(t,e,r,i){i===void 0&&(i=r),Object.defineProperty(t,i,{enumerable:!0,get:function(){return e[r]}})}:function(t,e,r,i){i===void 0&&(i=r),t[i]=e[r]}),zvt=zp&&zp.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),k6e=zp&&zp.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var r in t)r!=="default"&&Object.hasOwnProperty.call(t,r)&&Hvt(e,t,r);return zvt(e,t),e};Object.defineProperty(zp,"__esModule",{value:!0});var N6e=k6e(Vi()),TL=_2(),T2=k6e(Ot());function Gvt(t){return{account_hash:t.stateHash,close_time:T2.iso8601ToRippleTime(t.closeTime),close_time_resolution:t.closeTimeResolution,close_flags:t.closeFlags,hash:t.ledgerHash,ledger_hash:t.ledgerHash,ledger_index:t.ledgerVersion.toString(),parent_hash:t.parentLedgerHash,parent_close_time:T2.iso8601ToRippleTime(t.parentCloseTime),total_coins:t.totalDrops,transaction_hash:t.transactionHash}}function Jvt(t){let e=Gvt(t);return TL.computeLedgerHash(e)}function Xvt(t,e){let r;if(t.rawTransactions)r=JSON.parse(t.rawTransactions);else if(t.transactions)try{r=t.transactions.map(a=>JSON.parse(a.rawTransaction))}catch(a){if(a.toString()==="SyntaxError: Unexpected token u in JSON at position 0")throw new T2.errors.ValidationError("ledger is missing raw transactions")}else{if(e.computeTreeHashes)throw new T2.errors.ValidationError("transactions property is missing from the ledger");return t.transactionHash}let i=r.map(a=>{let s=Object.assign({},N6e.omit(a,"tx"),a.tx||{});return Object.assign({},N6e.omit(s,"meta"),a.meta?{metaData:a.meta}:{})}),n=TL.computeTransactionTreeHash(i);if(t.transactionHash!=null&&t.transactionHash!==n)throw new T2.errors.ValidationError("transactionHash in header does not match computed hash of transactions",{transactionHashInHeader:t.transactionHash,computedHashOfTransactions:n});return n}function Kvt(t,e){if(t.rawState==null){if(e.computeTreeHashes)throw new T2.errors.ValidationError("rawState property is missing from the ledger");return t.stateHash}let r=JSON.parse(t.rawState),i=TL.computeStateTreeHash(r);if(t.stateHash!=null&&t.stateHash!==i)throw new T2.errors.ValidationError("stateHash in header does not match computed hash of state");return i}function Wvt(t,e={}){let r={transactionHash:Xvt(t,e),stateHash:Kvt(t,e)};return Jvt(Object.assign({},t,r))}zp.default=Wvt});var PL=x(Yc=>{"use strict";var Zvt=Yc&&Yc.__createBinding||(Object.create?function(t,e,r,i){i===void 0&&(i=r),Object.defineProperty(t,i,{enumerable:!0,get:function(){return e[r]}})}:function(t,e,r,i){i===void 0&&(i=r),t[i]=e[r]}),$vt=Yc&&Yc.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),Qvt=Yc&&Yc.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var r in t)r!=="default"&&Object.hasOwnProperty.call(t,r)&&Zvt(e,t,r);return $vt(e,t),e},B6e=Yc&&Yc.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Yc,"__esModule",{value:!0});var Yvt=Qvt(Ot()),e6t=B6e(o2()),t6t=B6e(v2()),{validate:r6t,xrpToDrops:i6t}=Yvt;function n6t(t,e,r){r6t.signPaymentChannelClaim({channel:t,amount:e,privateKey:r});let i=t6t.default.encodeForSigningClaim({channel:t,amount:i6t(e)});return e6t.default.sign(i,r)}Yc.default=n6t});var OL=x(U_=>{"use strict";var D6e=U_&&U_.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(U_,"__esModule",{value:!0});var a6t=D6e(o2()),s6t=D6e(v2()),F6e=Ot();function o6t(t,e,r,i){F6e.validate.verifyPaymentChannelClaim({channel:t,amount:e,signature:r,publicKey:i});let n=s6t.default.encodeForSigningClaim({channel:t,amount:F6e.xrpToDrops(e)});return a6t.default.verify(n,r,i)}U_.default=o6t});var L6e=x(I6=>{"use strict";var u6t=I6&&I6.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(I6,"__esModule",{value:!0});I6.generateAddressAPI=void 0;var c6t=uo(),RL=u6t(o2()),q6e=Ot();function d6t(t={}){q6e.validate.generateAddress({options:t});try{let e={algorithm:t.algorithm};t.entropy&&(e.entropy=Uint8Array.from(t.entropy));let r=RL.default.generateSeed(e),i=RL.default.deriveKeypair(r),n=RL.default.deriveAddress(i.publicKey),a={xAddress:c6t.classicAddressToXAddress(n,!1,t&&t.test),secret:r};return t.includeClassicAddress&&(a.classicAddress=n,a.address=n),a}catch(e){throw new q6e.errors.UnexpectedError(e.message)}}I6.generateAddressAPI=d6t});var IL=x(Mt=>{"use strict";var ML=Mt&&Mt.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Mt,"__esModule",{value:!0});Mt.verifyPaymentChannelClaim=Mt.signPaymentChannelClaim=Mt.deriveXAddress=Mt.deriveAddress=Mt.deriveKeypair=Mt.generateXAddress=Mt.generateAddress=Mt.computePaymentChannelHash=Mt.computeEscrowHash=Mt.computeLedgerHash=Mt.computeStateTreeHash=Mt.computeTransactionTreeHash=Mt.computeTrustlineHash=Mt.computeOrderID=Mt.computeSignerListLedgerObjectID=Mt.computeAccountLedgerObjectID=Mt.computeBinaryTransactionSigningHash=Mt.computeTransactionHash=Mt.computeBinaryTransactionHash=Mt.isValidSecret=Mt.iso8601ToRippleTime=Mt.rippleTimeToISO8601=Mt.removeUndefined=Mt.convertKeysFromSnakeCaseToCamelCase=Mt.toRippledAmount=Mt.xrpToDrops=Mt.dropsToXrp=Mt.computeLedgerHeaderHash=void 0;var CL=EL();Object.defineProperty(Mt,"deriveKeypair",{enumerable:!0,get:function(){return CL.deriveKeypair}});Object.defineProperty(Mt,"deriveAddress",{enumerable:!0,get:function(){return CL.deriveAddress}});Object.defineProperty(Mt,"deriveXAddress",{enumerable:!0,get:function(){return CL.deriveXAddress}});var l6t=ML(AL());Mt.computeLedgerHeaderHash=l6t.default;var f6t=ML(PL());Mt.signPaymentChannelClaim=f6t.default;var p6t=ML(OL());Mt.verifyPaymentChannelClaim=p6t.default;var Yh=c_();Object.defineProperty(Mt,"dropsToXrp",{enumerable:!0,get:function(){return Yh.dropsToXrp}});Object.defineProperty(Mt,"xrpToDrops",{enumerable:!0,get:function(){return Yh.xrpToDrops}});Object.defineProperty(Mt,"toRippledAmount",{enumerable:!0,get:function(){return Yh.toRippledAmount}});Object.defineProperty(Mt,"convertKeysFromSnakeCaseToCamelCase",{enumerable:!0,get:function(){return Yh.convertKeysFromSnakeCaseToCamelCase}});Object.defineProperty(Mt,"removeUndefined",{enumerable:!0,get:function(){return Yh.removeUndefined}});Object.defineProperty(Mt,"rippleTimeToISO8601",{enumerable:!0,get:function(){return Yh.rippleTimeToISO8601}});Object.defineProperty(Mt,"iso8601ToRippleTime",{enumerable:!0,get:function(){return Yh.iso8601ToRippleTime}});Object.defineProperty(Mt,"isValidSecret",{enumerable:!0,get:function(){return Yh.isValidSecret}});var Ku=_2();Object.defineProperty(Mt,"computeBinaryTransactionHash",{enumerable:!0,get:function(){return Ku.computeBinaryTransactionHash}});Object.defineProperty(Mt,"computeTransactionHash",{enumerable:!0,get:function(){return Ku.computeTransactionHash}});Object.defineProperty(Mt,"computeBinaryTransactionSigningHash",{enumerable:!0,get:function(){return Ku.computeBinaryTransactionSigningHash}});Object.defineProperty(Mt,"computeAccountLedgerObjectID",{enumerable:!0,get:function(){return Ku.computeAccountLedgerObjectID}});Object.defineProperty(Mt,"computeSignerListLedgerObjectID",{enumerable:!0,get:function(){return Ku.computeSignerListLedgerObjectID}});Object.defineProperty(Mt,"computeOrderID",{enumerable:!0,get:function(){return Ku.computeOrderID}});Object.defineProperty(Mt,"computeTrustlineHash",{enumerable:!0,get:function(){return Ku.computeTrustlineHash}});Object.defineProperty(Mt,"computeTransactionTreeHash",{enumerable:!0,get:function(){return Ku.computeTransactionTreeHash}});Object.defineProperty(Mt,"computeStateTreeHash",{enumerable:!0,get:function(){return Ku.computeStateTreeHash}});Object.defineProperty(Mt,"computeLedgerHash",{enumerable:!0,get:function(){return Ku.computeLedgerHash}});Object.defineProperty(Mt,"computeEscrowHash",{enumerable:!0,get:function(){return Ku.computeEscrowHash}});Object.defineProperty(Mt,"computePaymentChannelHash",{enumerable:!0,get:function(){return Ku.computePaymentChannelHash}});var U6e=L6e();Object.defineProperty(Mt,"generateXAddress",{enumerable:!0,get:function(){return U6e.generateAddressAPI}});var h6t=(t={})=>U6e.generateAddressAPI(Object.assign(Object.assign({},t),{includeClassicAddress:!0}));Mt.generateAddress=h6t});var j6e=x(Wu=>{"use strict";var m6t=Wu&&Wu.__createBinding||(Object.create?function(t,e,r,i){i===void 0&&(i=r),Object.defineProperty(t,i,{enumerable:!0,get:function(){return e[r]}})}:function(t,e,r,i){i===void 0&&(i=r),t[i]=e[r]}),g6t=Wu&&Wu.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),y6t=Wu&&Wu.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var r in t)r!=="default"&&Object.hasOwnProperty.call(t,r)&&m6t(e,t,r);return g6t(e,t),e},v6t=Wu&&Wu.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Wu,"__esModule",{value:!0});Wu.parseLedger=void 0;var TT=y6t(Vi()),NL=Ot(),b6t=v6t(CE());function _6t(t,e){let r=Object.assign({},TT.omit(e,"metaData"),{meta:e.metaData,ledger_index:t}),i=b6t.default(r,!0);return i.outcome.ledgerVersion||(i.outcome.ledgerVersion=t),i}function w6t(t,e){return TT.isEmpty(t)?{}:typeof t[0]=="string"?{transactionHashes:t}:{transactions:t.map(TT.partial(_6t,e))}}function x6t(t){return TT.isEmpty(t)?{}:typeof t[0]=="string"?{stateHashes:t}:{rawState:JSON.stringify(t)}}function S6t(t){let e=parseInt(t.ledger_index,10);return NL.removeUndefined(Object.assign({stateHash:t.account_hash,closeTime:NL.rippleTimeToISO8601(t.close_time),closeTimeResolution:t.close_time_resolution,closeFlags:t.close_flags,ledgerHash:t.ledger_hash,ledgerVersion:e,parentLedgerHash:t.parent_hash,parentCloseTime:NL.rippleTimeToISO8601(t.parent_close_time),totalDrops:t.total_coins,transactionHash:t.transaction_hash},w6t(t.transactions,e),x6t(t.accountState)))}Wu.parseLedger=S6t});var V6e=x(j_=>{"use strict";var E6t=j_&&j_.__awaiter||function(t,e,r,i){function n(a){return a instanceof r?a:new r(function(s){s(a)})}return new(r||(r=Promise))(function(a,s){function o(f){try{u(i.next(f))}catch(d){s(d)}}function c(f){try{u(i.throw(f))}catch(d){s(d)}}function u(f){f.done?a(f.value):n(f.value).then(o,c)}u((i=i.apply(t,e||[])).next())})};Object.defineProperty(j_,"__esModule",{value:!0});var T6t=Ot(),A6t=j6e();function P6t(t={}){return E6t(this,void 0,void 0,function*(){T6t.validate.getLedger({options:t});let e=yield this.request("ledger",{ledger_hash:t.ledgerHash,ledger_index:t.ledgerVersion||"validated",expand:t.includeAllData,transactions:t.includeTransactions,accounts:t.includeState});return A6t.parseLedger(e.ledger)})}j_.default=P6t});var X6e=x(ql=>{"use strict";var V_=ql&&ql.__awaiter||function(t,e,r,i){function n(a){return a instanceof r?a:new r(function(s){s(a)})}return new(r||(r=Promise))(function(a,s){function o(f){try{u(i.next(f))}catch(d){s(d)}}function c(f){try{u(i.throw(f))}catch(d){s(d)}}function u(f){f.done?a(f.value):n(f.value).then(o,c)}u((i=i.apply(t,e||[])).next())})};Object.defineProperty(ql,"__esModule",{value:!0});ql.getFaucetUrl=ql.FaucetNetwork=void 0;var O6t=require("https"),AT=Ot(),R6t=SE(),M6t=Ic(),kL;(function(t){t.Testnet="faucet.altnet.rippletest.net",t.Devnet="faucet.devnet.rippletest.net"})(kL=ql.FaucetNetwork||(ql.FaucetNetwork={}));var H6e=1,z6e=20;function C6t(t){return V_(this,void 0,void 0,function*(){if(!this.isConnected())throw new M6t.RippledError("RippleAPI not connected, cannot call faucet");let e,r=0,i=J6e(this);if(t&&R6t.isValidAddress(t)){e=new TextEncoder().encode(JSON.stringify({destination:t}));let a=yield G6e(this,t);a&&!isNaN(+a)?r=+a:r=0}let n={hostname:i,port:443,path:"/accounts",method:"POST",headers:{"Content-Type":"application/json","Content-Length":e?e.length:0}};return new Promise((a,s)=>{let o=O6t.request(n,c=>{let u=[];c.on("data",f=>{u.push(f)}),c.on("end",()=>V_(this,void 0,void 0,function*(){let f=Buffer.concat(u).toString();if(c.headers["content-type"].startsWith("application/json")){let d=JSON.parse(f),p=d.account.classicAddress;if(p)try{(yield I6t(this,p,r))?a(d):s(new AT.errors.XRPLFaucetError(`Unable to fund address with faucet after waiting ${H6e*z6e} seconds`))}catch(b){s(new AT.errors.XRPLFaucetError(b))}else s(new AT.errors.XRPLFaucetError("The faucet account classic address is undefined"))}else s({statusCode:c.statusCode,contentType:c.headers["content-type"],body:f})}))});o.write(e||""),o.on("error",c=>{s(c)}),o.end()})})}function G6e(t,e){return V_(this,void 0,void 0,function*(){try{return(yield t.getBalances(e)).filter(n=>n.currency.toUpperCase()==="XRP")[0].value}catch(r){return`Unable to retrieve ${e} balance. Error: ${r}`}})}function I6t(t,e,r){return V_(this,void 0,void 0,function*(){return new Promise((i,n)=>{let a=z6e,s=setInterval(()=>V_(this,void 0,void 0,function*(){a<0?(clearInterval(s),i(!1)):a--;try{+(yield G6e(t,e))>r&&(clearInterval(s),i(!0))}catch(o){clearInterval(s),n(new AT.errors.XRPLFaucetError(`Unable to check if the address ${e} balance has increased. Error: ${o}`))}}),H6e*1e3)})})}function J6e(t){let e=t.connection.getUrl();if(e.includes("altnet")||e.includes("testnet"))return kL.Testnet;if(e.includes("devnet"))return kL.Devnet}ql.getFaucetUrl=J6e;ql.default=C6t});var DL=x(po=>{"use strict";var N6t=po&&po.__createBinding||(Object.create?function(t,e,r,i){i===void 0&&(i=r),Object.defineProperty(t,i,{enumerable:!0,get:function(){return e[r]}})}:function(t,e,r,i){i===void 0&&(i=r),t[i]=e[r]}),k6t=po&&po.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),FL=po&&po.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var r in t)r!=="default"&&Object.hasOwnProperty.call(t,r)&&N6t(e,t,r);return k6t(e,t),e},PT=po&&po.__awaiter||function(t,e,r,i){function n(a){return a instanceof r?a:new r(function(s){s(a)})}return new(r||(r=Promise))(function(a,s){function o(f){try{u(i.next(f))}catch(d){s(d)}}function c(f){try{u(i.throw(f))}catch(d){s(d)}}function u(f){f.done?a(f.value):n(f.value).then(o,c)}u((i=i.apply(t,e||[])).next())})},jr=po&&po.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(po,"__esModule",{value:!0});po.RippleAPI=void 0;var B6t=require("events"),bs=Ot(),H_=U2e(),F6t=jr(uq()),D6t=jr(uve()),q6t=jr(pve()),L6t=jr(mve()),U6t=jr(gve()),j6t=jr(wve()),V6t=jr(Ove()),Q6e=Dve(),K6e=Uve(),H6t=jr(jve()),z6t=jr(Vve()),G6t=jr(Gve()),J6t=jr($ve()),X6t=jr(e6e()),K6t=jr(t6e()),W6t=jr(r6e()),Z6t=jr(i6e()),$6t=jr(n6e()),Q6t=jr(a6e()),Y6t=jr(s6e()),e4t=jr(o6e()),t4t=jr(d6e()),r4t=jr(p6e()),i4t=jr(h6e()),n4t=jr(g6e()),a4t=jr(b6e()),s4t=jr(_6e()),o4t=jr(P6e()),u4t=jr(C6e()),c4t=jr(I6e()),W6e=IL(),OT=EL(),Y6e=jr(AL()),d4t=jr(PL()),l4t=jr(OL()),f4t=jr(V6e()),p4t=jr(BD()),h4t=FL(mp()),Z6e=FL(Ln()),BL=FL(SE()),$6e=ND(),e4e=mp(),ho=uo(),ed=_2(),m4t=jr(X6e());function g4t(t){switch(t){case"account_offers":case"book_offers":return"offers";case"account_lines":return"lines";default:return}}var Rr=class extends B6t.EventEmitter{constructor(e={}){super(),this.generateAddress=W6e.generateAddress,this.generateXAddress=W6e.generateXAddress,this.connect=H_.connect,this.disconnect=H_.disconnect,this.isConnected=H_.isConnected,this.getServerInfo=$6e.getServerInfo,this.getFee=$6e.getFee,this.getLedgerVersion=H_.getLedgerVersion,this.getTransaction=F6t.default,this.getTransactions=D6t.default,this.getTrustlines=q6t.default,this.getBalances=L6t.default,this.getBalanceSheet=U6t.default,this.getPaths=j6t.default,this.getOrderbook=Q6e.getOrderbook,this.getOrders=V6t.default,this.getSettings=K6e.getSettings,this.getAccountInfo=H6t.default,this.getAccountObjects=z6t.default,this.getPaymentChannel=G6t.default,this.getLedger=f4t.default,this.parseAccountFlags=K6e.parseAccountFlags,this.preparePayment=J6t.default,this.prepareTrustline=X6t.default,this.prepareOrder=K6t.default,this.prepareOrderCancellation=W6t.default,this.prepareEscrowCreation=Z6t.default,this.prepareEscrowExecution=$6t.default,this.prepareEscrowCancellation=Q6t.default,this.preparePaymentChannelCreate=Y6t.default,this.preparePaymentChannelFund=e4t.default,this.preparePaymentChannelClaim=t4t.default,this.prepareCheckCreate=r4t.default,this.prepareCheckCash=n4t.default,this.prepareCheckCancel=i4t.default,this.prepareTicketCreate=s4t.default,this.prepareSettings=a4t.default,this.sign=o4t.default,this.combine=u4t.default,this.submit=c4t.default,this.deriveKeypair=OT.deriveKeypair,this.deriveAddress=OT.deriveAddress,this.computeLedgerHash=Y6e.default,this.signPaymentChannelClaim=d4t.default,this.verifyPaymentChannelClaim=l4t.default,this.generateFaucetWallet=m4t.default,this.errors=bs.errors,this.xrpToDrops=bs.xrpToDrops,this.dropsToXrp=bs.dropsToXrp,this.rippleTimeToISO8601=bs.rippleTimeToISO8601,this.iso8601ToRippleTime=bs.iso8601ToRippleTime,this.txFlags=bs.txFlags,this.accountSetFlags=bs.constants.AccountSetFlags,this.isValidAddress=BL.isValidAddress,this.isValidSecret=BL.isValidSecret,bs.validate.apiOptions(e),this._feeCushion=e.feeCushion||1.2,this._maxFeeXRP=e.maxFeeXRP||"2";let r=e.server;r!=null?(this.connection=new bs.Connection(r,e),this.connection.on("ledgerClosed",i=>{this.emit("ledger",H_.formatLedgerClose(i))}),this.connection.on("error",(i,n,a)=>{this.emit("error",i,n,a)}),this.connection.on("connected",()=>{this.emit("connected")}),this.connection.on("disconnected",i=>{let n=i;(n===1005||n===4e3)&&(n=1e3),this.emit("disconnected",n)})):this.connection=new bs.Connection(null,e)}request(e,r={}){return PT(this,void 0,void 0,function*(){return this.connection.request(Object.assign(Object.assign({},r),{command:e,account:r.account?bs.ensureClassicAddress(r.account):void 0}))})}hasNextPage(e){return!!e.marker}requestNextPage(e,r={},i){return PT(this,void 0,void 0,function*(){if(!i.marker)return Promise.reject(new bs.errors.NotFoundError("response does not have a next page"));let n=Object.assign({},r,{marker:i.marker});return this.request(e,n)})}prepareTransaction(e,r={}){return PT(this,void 0,void 0,function*(){return Z6e.prepareTransaction(e,this,r)})}convertStringToHex(e){return Z6e.convertStringToHex(e)}_requestAll(e,r={},i={}){return PT(this,void 0,void 0,function*(){let n=i.collect||g4t(e);if(!n)throw new bs.errors.ValidationError(`no collect key for command ${e}`);let a=r.limit!=null?r.limit:1/0,s=0,o=r.marker,c,u=[];do{let f=e4e.clamp(a-s,10,400),d=Object.assign(Object.assign({},r),{limit:f,marker:o}),p=yield this.request(e,d),b=p[n];o=p.marker,u.push(p),Array.isArray(b)?(s+=b.length,c=b.length):c=0}while(!!o&&s{"use strict";Object.defineProperty(t4e,"__esModule",{value:!0})});var n4e=x(i4e=>{"use strict";Object.defineProperty(i4e,"__esModule",{value:!0})});var o4e=x(N6=>{"use strict";var a4e=N6&&N6.__awaiter||function(t,e,r,i){function n(a){return a instanceof r?a:new r(function(s){s(a)})}return new(r||(r=Promise))(function(a,s){function o(f){try{u(i.next(f))}catch(d){s(d)}}function c(f){try{u(i.throw(f))}catch(d){s(d)}}function u(f){f.done?a(f.value):n(f.value).then(o,c)}u((i=i.apply(t,e||[])).next())})};Object.defineProperty(N6,"__esModule",{value:!0});N6.RippleAPIBroadcast=void 0;var s4e=DL(),qL=class extends s4e.RippleAPI{constructor(e,r={}){super(r),this.ledgerVersion=void 0;let i=e.map(s=>new s4e.RippleAPI(Object.assign({},r,{server:s})));this._apis=i,this.getMethodNames().forEach(s=>{this[s]=function(){return Promise.race(i.map(o=>o[s](...arguments)))}}),this.connect=function(){return a4e(this,void 0,void 0,function*(){yield Promise.all(i.map(s=>s.connect()))})},this.disconnect=function(){return a4e(this,void 0,void 0,function*(){yield Promise.all(i.map(s=>s.disconnect()))})},this.isConnected=function(){return i.map(s=>s.isConnected()).every(Boolean)};let n=i[0];["sign","generateAddress","computeLedgerHash"].forEach(s=>{this[s]=n[s].bind(n)}),i.forEach(s=>{s.on("ledger",this.onLedgerEvent.bind(this)),s.on("error",(o,c,u)=>this.emit("error",o,c,u))})}onLedgerEvent(e){(e.ledgerVersion>this.ledgerVersion||this.ledgerVersion==null)&&(this.ledgerVersion=e.ledgerVersion,this.emit("ledger",e))}getMethodNames(){let e=[],r=this._apis[0];for(let i of Object.getOwnPropertyNames(r))typeof r[i]=="function"&&e.push(i);return e}};N6.RippleAPIBroadcast=qL});var u4e=x(td=>{"use strict";var y4t=td&&td.__createBinding||(Object.create?function(t,e,r,i){i===void 0&&(i=r),Object.defineProperty(t,i,{enumerable:!0,get:function(){return e[r]}})}:function(t,e,r,i){i===void 0&&(i=r),t[i]=e[r]}),RT=td&&td.__exportStar||function(t,e){for(var r in t)r!=="default"&&!e.hasOwnProperty(r)&&y4t(e,t,r)};Object.defineProperty(td,"__esModule",{value:!0});RT(DL(),td);RT(r4e(),td);RT(n4e(),td);RT(IL(),td);var v4t=o4e();Object.defineProperty(td,"RippleAPIBroadcast",{enumerable:!0,get:function(){return v4t.RippleAPIBroadcast}})});var d4e=x(e1=>{"use strict";Object.defineProperty(e1,"__esModule",{value:!0});e1.transformTransaction=e1.transformError=e1.transformServerInfo=void 0;var b4t=Ic(),c4e=Hu(),_4t=t=>({name:"Ripple",shortcut:"xrp",testnet:!1,version:t.buildVersion,decimals:6,blockHeight:t.validatedLedger.ledgerVersion,blockHash:t.validatedLedger.hash});e1.transformServerInfo=_4t;var w4t=t=>{if(t instanceof b4t.RippleError){let e=t.name==="TimeoutError"?"websocket_timeout":"websocket_error_message";return t.data?new c4e.CustomError(e,`${t.name} ${t.data.error_message}`):new c4e.CustomError(e,t.toString())}return t};e1.transformError=w4t;var x4t=(t,e)=>{if(e.TransactionType!=="Payment")return{type:"unknown",txid:e.hash,amount:"0",fee:"0",blockTime:e.date,blockHeight:e.ledger_index,blockHash:e.hash,targets:[],tokens:[],feeRate:void 0,details:{vin:[],vout:[],size:0,totalInput:"0",totalOutput:"0"}};let r=e.Account===t?"sent":"recv",i=[e.Destination],n=e.Amount,a=e.Fee;return{type:r,txid:e.hash,blockTime:e.date,blockHeight:e.ledger_index,blockHash:e.hash,amount:n,fee:a,targets:[{addresses:i,isAddress:!0,amount:n,n:0}],tokens:[],feeRate:void 0,details:{vin:[],vout:[],size:0,totalInput:"0",totalOutput:"0"}}};e1.transformTransaction=x4t});var g4e=x(LL=>{"use strict";Object.defineProperty(LL,"__esModule",{value:!0});var l4e=u4e(),S4t=Ic(),z_=Yr(),f4e=Hu(),On=ip(),p4e=G3(),CT=d4e(),E4t=20*1e3,T4t=3*60*1e3,t1={BASE:"10000000",OWNER:"2000000"},A4t=async t=>{let e=await t.connect(),r=await e.getServerInfo();return t1.BASE=e.xrpToDrops(r.validatedLedger.reserveBaseXRP),t1.OWNER=e.xrpToDrops(r.validatedLedger.reserveIncrementXRP),{type:On.RESPONSES.GET_INFO,payload:Object.assign({url:e.connection.getUrl()},CT.transformServerInfo(r))}},P4t=async(t,e)=>{let r=await t.request("account_info",{account:e,ledger_index:"current",queue:!0});return{xrpBalance:r.account_data.Balance,sequence:r.account_data.Sequence,txs:r.queue_data?r.queue_data.txn_count:0}},O4t=async t=>{let{payload:e}=t,r={descriptor:e.descriptor,balance:"0",availableBalance:"0",empty:!0,history:{total:-1,unconfirmed:0,transactions:void 0},misc:{sequence:0,reserve:t1.BASE}};try{let s=await t.connect(),o=await s.getAccountInfo(e.descriptor),c=o.ownerCount>0?new z_.default(o.ownerCount).times(t1.OWNER).toString():"0",u=new z_.default(t1.BASE).plus(c).toString(),f={sequence:o.sequence,reserve:u};r.misc=f,r.balance=s.xrpToDrops(o.xrpBalance),r.availableBalance=new z_.default(r.balance).minus(u).toString(),r.empty=!1}catch(s){if(s instanceof S4t.RippleError&&s.data&&s.data.error==="actNotFound")return{type:On.RESPONSES.GET_ACCOUNT_INFO,payload:r};throw s}try{let s=await t.connect(),o=await P4t(s,e.descriptor),{misc:c}=r,u=c&&typeof c.reserve=="string"?c.reserve:t1.BASE;r.availableBalance=new z_.default(o.xrpBalance).minus(u).toString(),r.misc.sequence=o.sequence,r.history.unconfirmed=o.txs}catch{}if(e.details!=="txs")return{type:On.RESPONSES.GET_ACCOUNT_INFO,payload:r};let i={account:e.descriptor,ledger_index_min:e.from?e.from:void 0,ledger_index_max:e.to?e.to:void 0,limit:e.pageSize||25,marker:e.marker},a=await(await t.connect()).request("account_tx",i);return r.history.transactions=a.transactions.map(s=>CT.transformTransaction(e.descriptor,s.tx)),{type:On.RESPONSES.GET_ACCOUNT_INFO,payload:Object.assign(Object.assign({},r),{marker:a.marker})}},R4t=async({connect:t,payload:e})=>{let i=await(await t()).getTransaction(e);return{type:On.RESPONSES.GET_TRANSACTION,payload:{type:"ripple",tx:i}}},M4t=async({connect:t,payload:e})=>{let i=await(await t()).submit(e.toUpperCase());if(i.resultCode==="tesSUCCESS")return{type:On.RESPONSES.PUSH_TRANSACTION,payload:i.tx_json.hash};throw new Error(i.resultMessage)},C4t=async t=>{let e=await t.connect(),r=await e.getFee(),i=e.xrpToDrops(r);new z_.default(i).gt("2000")&&(i="12");let n=t.payload&&Array.isArray(t.payload.blocks)?t.payload.blocks.map(()=>({feePerUnit:i})):[{feePerUnit:i}];return{type:On.RESPONSES.ESTIMATE_FEE,payload:n}},I4t=({post:t},e)=>{t({id:-1,type:On.RESPONSES.NOTIFICATION,payload:{type:"block",payload:{blockHeight:e.ledgerVersion,blockHash:e.ledgerHash}}})},h4e=({state:t,post:e},r)=>{if(r.type!=="transaction")return;let i=r.transaction;if(r.transaction.TransactionType!=="Payment")return;let n=c=>{e({id:-1,type:On.RESPONSES.NOTIFICATION,payload:{type:"notification",payload:{descriptor:c,tx:CT.transformTransaction(c,Object.assign(Object.assign({},r),i))}}})},a=t.getAddresses(),s=a.find(c=>c===i.Account);s&&n(s);let o=a.find(c=>c===i.Destination);o&&n(o)},N4t=async(t,e)=>{let r=await t.connect(),{state:i}=t,n=i.getAddresses();i.addAccounts(e);let a=i.getAddresses().filter(s=>n.indexOf(s)<0);return a.length>0&&(i.getSubscription("notification")||(r.connection.on("transaction",s=>h4e(t,s)),i.addSubscription("notification")),await r.request("subscribe",{accounts_proposed:a})),{subscribed:i.getAddresses().length>0}},k4t=async(t,e)=>{let r=await t.connect(),{state:i}=t,n=i.addAddresses(e);if(n.length>0){i.getSubscription("transaction")||(r.connection.on("transaction",s=>h4e(t,s)),i.addSubscription("transaction"));let a={accounts_proposed:n};await r.request("subscribe",a)}return{subscribed:i.getAddresses().length>0}},B4t=async t=>(t.state.getSubscription("ledger")||((await t.connect()).on("ledger",r=>I4t(t,r)),t.state.addSubscription("ledger")),{subscribed:!0}),F4t=async t=>{let{payload:e}=t,r;if(e.type==="accounts")r=await N4t(t,e.accounts);else if(e.type==="addresses")r=await k4t(t,e.addresses);else if(e.type==="block")r=await B4t(t);else throw new f4e.CustomError("invalid_param","+type");return{type:On.RESPONSES.SUBSCRIBE,payload:r}},m4e=async({state:t,connect:e},r)=>{let i=await e();if(r)t.removeAddresses(r),await i.request("unsubscribe",{accounts_proposed:r});else{let n=t.getAddresses();t.removeAccounts(t.getAccounts()),t.removeAddresses(n),await i.request("unsubscribe",{accounts_proposed:n})}t.getAccounts().length<1&&(i.connection.removeAllListeners("transaction"),t.removeSubscription("transaction"))},D4t=async(t,e)=>{let{state:r}=t,i=r.getAddresses();r.removeAccounts(e||r.getAccounts());let n=r.getAddresses(),a=i.filter(s=>n.indexOf(s)<0);await m4e(t,a)},q4t=async({state:t,connect:e})=>{if(!t.getSubscription("ledger"))return;(await e()).removeAllListeners("ledger"),t.removeSubscription("ledger")},L4t=async t=>{let{payload:e}=t;return e.type==="accounts"?await D4t(t,e.accounts):e.type==="addresses"?await m4e(t,e.addresses):e.type==="block"&&await q4t(t),{type:On.RESPONSES.UNSUBSCRIBE,payload:{subscribed:t.state.getAddresses().length>0}}},U4t=t=>{switch(t.type){case On.MESSAGES.GET_INFO:return A4t(t);case On.MESSAGES.GET_ACCOUNT_INFO:return O4t(t);case On.MESSAGES.GET_TRANSACTION:return R4t(t);case On.MESSAGES.ESTIMATE_FEE:return C4t(t);case On.MESSAGES.PUSH_TRANSACTION:return M4t(t);case On.MESSAGES.SUBSCRIBE:return F4t(t);case On.MESSAGES.UNSUBSCRIBE:return L4t(t);default:throw new f4e.CustomError("worker_unknown_request",`+${t.type}`)}},MT=class extends p4e.BaseWorker{cleanup(){this.pingTimeout&&clearTimeout(this.pingTimeout),this.api&&this.api.removeAllListeners(),super.cleanup()}isConnected(e){var r;return(r=e?.isConnected())!==null&&r!==void 0?r:!1}async tryConnect(e){let r={server:e,connectionTimeout:this.settings.timeout||E4t};l4e.RippleAPI._ALLOW_AGENT&&(r.agent=this.proxyAgent);let i=new l4e.RippleAPI(r);return i.connection.reconnect=()=>new Promise(()=>{}),await i.connect(),i.on("ledger",n=>{t1.BASE=i.xrpToDrops(n.reserveBaseXRP),t1.OWNER=i.xrpToDrops(n.reserveIncrementXRP)}),i.on("disconnected",()=>{this.post({id:-1,type:On.RESPONSES.DISCONNECTED,payload:!0}),this.cleanup()}),this.post({id:-1,type:On.RESPONSES.CONNECTED}),i}disconnect(){this.api&&this.api.disconnect()}async messageHandler(e){try{if(await super.messageHandler(e))return!0;let r=Object.assign(Object.assign({},e.data),{connect:()=>this.connect(),post:n=>this.post(n),state:this.state}),i=await U4t(r);this.post(Object.assign({id:e.data.id},i))}catch(r){this.errorResponse(e.data.id,CT.transformError(r))}finally{e.data.type!==On.MESSAGES.DISCONNECT&&this.setPingTimeout()}}setPingTimeout(){this.pingTimeout&&clearTimeout(this.pingTimeout),this.pingTimeout=setTimeout(()=>this.onPing(),this.settings.pingTimeout||T4t)}async onPing(){if(!(!this.api||!this.api.isConnected()))if(this.state.hasSubscriptions()||this.settings.keepAlive){try{await this.api.getServerInfo()}catch(e){this.debug(`Error in timeout ping request: ${e}`)}this.setPingTimeout()}else this.api.disconnect()}};function j4t(){return new MT}LL.default=j4t;if(p4e.CONTEXT==="worker"){let t=new MT;onmessage=t.messageHandler.bind(t)}});var b4e=x(NT=>{"use strict";Object.defineProperty(NT,"__esModule",{value:!0});NT.BlockfrostAPI=void 0;var y4e=YF(),V4t=require("events"),v4e=Cb(),IT=Hu(),H4t=new IT.CustomError("websocket_not_initialized"),z4t=20*1e3,G4t=50*1e3,UL=class extends V4t.EventEmitter{constructor(e){super(),this.messageID=0,this.messages=[],this.subscriptions=[],this.send=(r,i={})=>{let{ws:n}=this;if(!n)throw H4t;let a=this.messageID.toString(),s=(0,v4e.createDeferred)(a),o={id:a,command:r,params:i};return this.messageID++,this.messages.push(s),this.setConnectionTimeout(),this.setPingTimeout(),n.send(JSON.stringify(o)),s.promise},this.setMaxListeners(1/0),this.options=e}setConnectionTimeout(){this.clearConnectionTimeout(),this.connectionTimeout=setTimeout(this.onTimeout.bind(this),this.options.timeout||z4t)}clearConnectionTimeout(){this.connectionTimeout&&(clearTimeout(this.connectionTimeout),this.connectionTimeout=void 0)}setPingTimeout(){this.pingTimeout&&clearTimeout(this.pingTimeout),this.pingTimeout=setTimeout(this.onPing.bind(this),this.options.pingTimeout||G4t)}onTimeout(){let{ws:e}=this;if(!!e)if(e.listenerCount("open")>0){e.emit("error","Websocket timeout");try{e.close()}catch{}}else this.messages.forEach(r=>r.reject(new IT.CustomError("websocket_timeout"))),e.close()}async onPing(){if(this.ws&&this.isConnected())if(this.subscriptions.length>0||this.options.keepAlive)await this.getBlockHash(1);else try{this.ws.close()}catch{}}onError(){this.dispose()}onmessage(e){try{let r=JSON.parse(e),{id:i,data:n}=r,a=this.messages.find(s=>s.id===i);if(a)n.error?a.reject(new IT.CustomError("websocket_error_message",n.error.message)):a.resolve(n),this.messages.splice(this.messages.indexOf(a),1);else{let s=this.subscriptions.find(o=>o&&o.id===i);s&&s.callback(n)}}catch{}this.messages.length===0&&this.clearConnectionTimeout(),this.setPingTimeout()}connect(){let{url:e}=this.options;this.setConnectionTimeout();let r=(0,v4e.createDeferred)(-1),i=new y4e(e,{agent:this.options.agent});return typeof i.setMaxListeners=="function"&&i.setMaxListeners(1/0),i.once("error",n=>{this.dispose(),r.reject(new IT.CustomError("websocket_runtime_error",n.message))}),i.on("open",()=>{this.init(),r.resolve()}),this.ws=i,r.promise}init(){let{ws:e}=this;if(!e||!this.isConnected())throw Error("Blockfrost websocket init cannot be called");this.clearConnectionTimeout(),e.removeAllListeners(),e.on("error",this.onError.bind(this)),e.on("message",this.onmessage.bind(this)),e.on("close",()=>{this.emit("disconnected"),this.dispose()})}disconnect(){this.ws&&this.ws.close()}isConnected(){let{ws:e}=this;return e&&e.readyState===y4e.OPEN}getServerInfo(){return this.send("GET_SERVER_INFO")}getBlockHash(e){return this.send("GET_BLOCK",{hashOrNumber:e})}estimateFee(e){return this.send("ESTIMATE_FEE",e)}getAccountInfo(e){return this.send("GET_ACCOUNT_INFO",e)}getAccountUtxo(e){return this.send("GET_ACCOUNT_UTXO",{descriptor:e})}getAccountBalanceHistory(e){return this.send("GET_BALANCE_HISTORY",e)}getTransaction(e){return this.send("GET_TRANSACTION",{txId:e})}pushTransaction(e){return this.send("PUSH_TRANSACTION",{txData:e})}subscribeBlock(){let e=this.subscriptions.findIndex(i=>i.type==="block");e>=0&&this.subscriptions.splice(e,1);let r=this.messageID.toString();return this.subscriptions.push({id:r,type:"block",callback:i=>{this.emit("block",i)}}),this.send("SUBSCRIBE_BLOCK")}subscribeAddresses(e){let r=this.subscriptions.findIndex(n=>n.type==="notification");r>=0&&this.subscriptions.splice(r,1);let i=this.messageID.toString();return this.subscriptions.push({id:i,type:"notification",callback:n=>{this.emit("notification",n)}}),this.send("SUBSCRIBE_ADDRESS",{addresses:e})}unsubscribeBlock(){let e=this.subscriptions.findIndex(r=>r.type==="block");return e>=0?(this.subscriptions.splice(e,1),this.send("UNSUBSCRIBE_BLOCK")):{subscribed:!1}}unsubscribeAddresses(){let e=this.subscriptions.findIndex(r=>r.type==="notification");return e>=0?(this.subscriptions.splice(e,1),this.send("UNSUBSCRIBE_ADDRESS")):{subscribed:!1}}dispose(){this.pingTimeout&&clearTimeout(this.pingTimeout),this.connectionTimeout&&clearTimeout(this.connectionTimeout);let{ws:e}=this;this.isConnected()&&this.disconnect(),e&&e.removeAllListeners(),this.removeAllListeners()}};NT.BlockfrostAPI=UL});var _4e=x(si=>{"use strict";Object.defineProperty(si,"__esModule",{value:!0});si.transformAccountInfo=si.transformTransaction=si.filterTokenTransfers=si.transformInputOutput=si.transformTokenInfo=si.parseAsset=si.getSubtype=si.transformUtxos=void 0;var kT=Yr(),_s=Vv(),J4t=t=>{let e=[];return t.forEach(r=>r.utxoData.amount.forEach(i=>{e.push({address:r.address,txid:r.utxoData.tx_hash,confirmations:r.blockInfo.confirmations,blockHeight:r.blockInfo.height||0,amount:i.quantity,vout:r.utxoData.output_index,path:r.path,cardanoSpecific:{unit:i.unit}})})),e};si.transformUtxos=J4t;var X4t=t=>{let e="";for(let r=0;r{if(t.txData.withdrawal_count>0)return"withdrawal";let r=t.txData.stake_cert_count,i=t.txData.delegation_count;return r===0&&i===0?null:r>0?new kT.default(t.txData.deposit).gt(0)?"stake_registration":"stake_deregistration":i>0?"stake_delegation":null};si.getSubtype=K4t;var W4t=t=>{let r=t.slice(0,56),i=t.slice(56),n=X4t(i);return{policyId:r,assetName:n}};si.parseAsset=W4t;var Z4t=t=>{if(!t||!Array.isArray(t))return;let e=t.map(r=>{let{assetName:i}=(0,si.parseAsset)(r.unit);return{type:"BLOCKFROST",name:r.fingerprint,address:r.unit,symbol:i||r.fingerprint,balance:r.quantity,decimals:r.decimals}});return e.length>0?e:void 0};si.transformTokenInfo=Z4t;var $4t=(t,e="lovelace")=>t.map(r=>{var i,n;return{n:r.output_index,addresses:[r.address],isAddress:!0,value:(n=(i=r.amount.find(a=>a.unit===e))===null||i===void 0?void 0:i.quantity)!==null&&n!==void 0?n:"0"}});si.transformInputOutput=$4t;var Q4t=(t,e,r)=>{let i=[],n=t.used.concat(t.unused),a=t.change.concat(n);return e.txUtxos.outputs.forEach(s=>{s.amount.filter(o=>o.unit!=="lovelace").forEach(o=>{var c;let u=o.unit,f=(0,si.transformInputOutput)(e.txUtxos.inputs,u),d=(0,si.transformInputOutput)(e.txUtxos.outputs,u),p=(0,_s.filterTargets)(a,f),b=(0,_s.filterTargets)(a,d),T=t.change.find(re=>re.address===s.address);if(b.length===0&&p.length===0)return null;let I=(0,_s.filterTargets)(n,(0,si.transformInputOutput)([s],u)),L="0";if(r==="sent"?L=T?"0":o.quantity:(r==="recv"||r==="self"&&!T)&&(L=I.reduce(_s.sumVinVout,0).toString()),L==="0"||!o.fingerprint)return null;let{assetName:U}=(0,si.parseAsset)(u);i.push({type:r,name:o.fingerprint,symbol:U||o.fingerprint,address:o.unit,decimals:o.decimals,amount:L.toString(),from:r==="sent"||r==="self"?e.address:(c=e.txUtxos.inputs.find(re=>re.amount.find(oe=>oe.unit===u)))===null||c===void 0?void 0:c.address,to:r==="recv"?e.address:s.address})})}),i.filter(s=>!!s)};si.filterTokenTransfers=Q4t;var Y4t=(t,e,r)=>{var i;let n=e?e.change.concat(e.used,e.unused).map(be=>be.address):[t],a,s=[],o=((i=r.txData.output_amount.find(be=>be.unit==="lovelace"))===null||i===void 0?void 0:i.quantity)||"0",c=r.txData.fees,u,f,d=(0,si.transformInputOutput)(r.txUtxos.inputs),p=(0,si.transformInputOutput)(r.txUtxos.outputs),b=Array.isArray(d)?d.length:0,T=Array.isArray(p)?p.length:0,I=(0,_s.filterTargets)(n,d),L=(0,_s.filterTargets)(n,p),U=e?(0,_s.filterTargets)(e.change,p):[],re=d.reduce(_s.sumVinVout,0),oe=p.reduce(_s.sumVinVout,0);if(I.length===0&&L.length===0)a="unknown";else if(b>0&&T>0&&I.length===b&&L.length===T)a="self",s=p.filter(be=>U.indexOf(be)<0),o=r.txData.fees,r.txData.withdrawal_count>0&&(u=new kT.default(oe).plus(r.txData.fees).minus(re).toString()),new kT.default(r.txData.deposit).gt(0)&&(f=r.txData.deposit);else if(I.length===0&&L.length>0)a="recv",o="0",L.length>0&&(s=L,o=L.reduce(_s.sumVinVout,0));else if(a="sent",s=p.filter(be=>U.indexOf(be)<0),T){let be=I.reduce(_s.sumVinVout,0),ce=L.reduce(_s.sumVinVout,0);o=new kT.default(be).minus(ce).minus(c??"0")}let ge=e?(0,si.filterTokenTransfers)(e,r,a):[];return{type:a,txid:r.txHash,blockTime:r.txData.block_time,blockHeight:r.txData.block_height||void 0,blockHash:r.txData.block,amount:o?.toString(),fee:c,targets:s.map(be=>(0,_s.transformTarget)(be,L)),tokens:ge,cardanoSpecific:{subtype:(0,si.getSubtype)(r),withdrawal:u,deposit:f},feeRate:void 0,details:{vin:d.map((0,_s.enhanceVinVout)(n)),vout:p.map((0,_s.enhanceVinVout)(n)),size:r.txData.size,totalInput:re.toString(),totalOutput:oe.toString()}}};si.transformTransaction=Y4t;var ebt=t=>{let e=t.history.transactions;return Object.assign(Object.assign({},t),{tokens:(0,si.transformTokenInfo)(t.tokens),history:Object.assign(Object.assign({},t.history),{transactions:e?e?.map(i=>(0,si.transformTransaction)(t.descriptor,t.addresses,i)):[]})})};si.transformAccountInfo=ebt});var x4e=x(HL=>{"use strict";Object.defineProperty(HL,"__esModule",{value:!0});var jL=Hu(),Ji=ip(),w4e=G3(),tbt=b4e(),BT=_4e(),rbt=async t=>{let e=await t.connect(),r=await e.getServerInfo();return{type:Ji.RESPONSES.GET_INFO,payload:Object.assign({url:e.options.url},r)}},ibt=async t=>{let r=await(await t.connect()).getBlockHash(t.payload);return{type:Ji.RESPONSES.GET_BLOCK_HASH,payload:r.hash}},nbt=async t=>{let r=await(await t.connect()).getAccountBalanceHistory(t.payload);return{type:Ji.RESPONSES.GET_ACCOUNT_BALANCE_HISTORY,payload:r}},abt=async t=>{let r=await(await t.connect()).getTransaction(t.payload);return{type:Ji.RESPONSES.GET_TRANSACTION,payload:{type:"blockfrost",tx:r}}},sbt=async t=>{let r=await(await t.connect()).estimateFee(t.payload),i=[];return i.push({feePerUnit:r.lovelacePerByte.toString()}),{type:Ji.RESPONSES.ESTIMATE_FEE,payload:i}},obt=async t=>{let r=await(await t.connect()).pushTransaction(t.payload);return{type:Ji.RESPONSES.PUSH_TRANSACTION,payload:r}},ubt=async t=>{let r=await(await t.connect()).getAccountInfo(t.payload);return{type:Ji.RESPONSES.GET_ACCOUNT_INFO,payload:(0,BT.transformAccountInfo)(r)}},cbt=async t=>{let r=await(await t.connect()).getAccountUtxo(t.payload);return{type:Ji.RESPONSES.GET_ACCOUNT_UTXO,payload:(0,BT.transformUtxos)(r)}},dbt=({post:t},e)=>{t({id:-1,type:Ji.RESPONSES.NOTIFICATION,payload:{type:"block",payload:{blockHeight:e.height||0,blockHash:e.hash}}})},VL=({state:t,post:e},r)=>{let i=r.address,n=t.getAccount(i);e({id:-1,type:Ji.RESPONSES.NOTIFICATION,payload:{type:"notification",payload:{descriptor:n?n.descriptor:i,tx:n?(0,BT.transformTransaction)(n.descriptor,n.addresses,r):(0,BT.transformTransaction)(i,void 0,r)}}})},lbt=async t=>{if(t.state.getSubscription("block"))return{subscribed:!0};let e=await t.connect();return t.state.addSubscription("block"),e.on("block",r=>dbt(t,r)),e.subscribeBlock()},fbt=async(t,e)=>{let r=await t.connect(),{state:i}=t;return i.addAccounts(e),i.getSubscription("notification")||(r.on("notification",n=>VL(t,n)),i.addSubscription("notification")),r.subscribeAddresses(i.getAddresses())},pbt=async(t,e)=>{let r=await t.connect(),{state:i}=t;return i.addAddresses(e),i.getSubscription("notification")||(r.on("notification",n=>VL(t,n)),i.addSubscription("notification")),r.subscribeAddresses(i.getAddresses())},hbt=async t=>{let{payload:e}=t,r;if(e.type==="accounts")r=await fbt(t,e.accounts);else if(e.type==="addresses")r=await pbt(t,e.addresses);else if(e.type==="block")r=await lbt(t);else throw new jL.CustomError("invalid_param","+type");return{type:Ji.RESPONSES.SUBSCRIBE,payload:r}},mbt=async({state:t,connect:e})=>{if(!t.getSubscription("block"))return{subscribed:!1};let r=await e();return r.removeAllListeners("block"),t.removeSubscription("block"),r.unsubscribeBlock()},gbt=async({state:t,connect:e},r)=>{t.removeAccounts(r||t.getAccounts());let i=await e(),n=t.getAddresses();return n.length<1?(i.removeAllListeners("notification"),t.removeSubscription("notification"),i.unsubscribeAddresses()):i.subscribeAddresses(n)},ybt=async({state:t,connect:e},r)=>{let i=await e();r||t.removeAccounts(t.getAccounts());let n=t.removeAddresses(r||t.getAddresses());return n.length<1?(i.removeListener("notification",VL),t.removeSubscription("notification"),i.unsubscribeAddresses()):i.subscribeAddresses(n)},vbt=async t=>{let{payload:e}=t,r;if(e.type==="accounts")r=await gbt(t,e.accounts);else if(e.type==="addresses")r=await ybt(t,e.addresses);else if(e.type==="block")r=await mbt(t);else throw new jL.CustomError("invalid_param","+type");return{type:Ji.RESPONSES.UNSUBSCRIBE,payload:r}},bbt=t=>{switch(t.type){case Ji.MESSAGES.GET_INFO:return rbt(t);case Ji.MESSAGES.GET_BLOCK_HASH:return ibt(t);case Ji.MESSAGES.GET_ACCOUNT_BALANCE_HISTORY:return nbt(t);case Ji.MESSAGES.GET_ACCOUNT_INFO:return ubt(t);case Ji.MESSAGES.GET_ACCOUNT_UTXO:return cbt(t);case Ji.MESSAGES.GET_TRANSACTION:return abt(t);case Ji.MESSAGES.ESTIMATE_FEE:return sbt(t);case Ji.MESSAGES.PUSH_TRANSACTION:return obt(t);case Ji.MESSAGES.SUBSCRIBE:return hbt(t);case Ji.MESSAGES.UNSUBSCRIBE:return vbt(t);default:throw new jL.CustomError("worker_unknown_request",`+${t.type}`)}},FT=class extends w4e.BaseWorker{cleanup(){this.api&&(this.api.dispose(),this.api.removeAllListeners()),super.cleanup()}isConnected(e){var r;return(r=e?.isConnected())!==null&&r!==void 0?r:!1}async tryConnect(e){let{timeout:r,pingTimeout:i,keepAlive:n}=this.settings,a=new tbt.BlockfrostAPI({url:e,timeout:r,pingTimeout:i,keepAlive:n,agent:this.proxyAgent});return await a.connect(),a.on("disconnected",()=>{this.post({id:-1,type:Ji.RESPONSES.DISCONNECTED,payload:!0}),this.cleanup()}),this.post({id:-1,type:Ji.RESPONSES.CONNECTED}),a}disconnect(){this.api&&this.api.disconnect()}async messageHandler(e){try{if(await super.messageHandler(e))return!0;let r=Object.assign(Object.assign({},e.data),{connect:()=>this.connect(),post:n=>this.post(n),state:this.state}),i=await bbt(r);this.post(Object.assign({id:e.data.id},i))}catch(r){this.errorResponse(e.data.id,r)}}};function _bt(){return new FT}HL.default=_bt;if(w4e.CONTEXT==="worker"){let t=new FT;onmessage=t.messageHandler.bind(t)}});var G_=x(Ko=>{"use strict";Object.defineProperty(Ko,"__esModule",{value:!0});Ko.tryGetScripthash=Ko.blockheaderToBlockhash=Ko.scriptToScripthash=Ko.addressToScripthash=Ko.btcToSat=void 0;var DT=Mc(),wbt=t=>Math.round(1e8*t).toString();Ko.btcToSat=wbt;var xbt=(t,e)=>{let r=DT.address.toOutputScript(t,e);return DT.crypto.sha256(r).reverse().toString("hex")};Ko.addressToScripthash=xbt;var Sbt=t=>{let e=Buffer.from(t,"hex");return DT.crypto.sha256(e).reverse().toString("hex")};Ko.scriptToScripthash=Sbt;var Ebt=t=>{let e=Buffer.from(t,"hex");return DT.crypto.hash256(e).reverse().toString("hex")};Ko.blockheaderToBlockhash=Ebt;var Tbt=(t,e)=>{try{return{valid:!0,scripthash:(0,Ko.addressToScripthash)(t,e)}}catch{return{valid:!1}}};Ko.tryGetScripthash=Tbt});var E4e=x(LT=>{"use strict";Object.defineProperty(LT,"__esModule",{value:!0});LT.createAddressManager=void 0;var qT=wn(),Abt=G_(),S4e=t=>t.filter(qT.isNotUndefined).flatMap(({change:e,used:r,unused:i})=>e.concat(r,i).map(({address:n})=>n)),Pbt=t=>{let e={},r={},i=u=>{let f=u.filter(qT.arrayDistinct).filter(p=>!e[p]),d=t();return e=f.reduce((p,b)=>Object.assign(Object.assign({},p),{[b]:(0,Abt.addressToScripthash)(b,d)}),e),f.map(p=>e[p])},n=u=>{let[f,d]=u?(0,qT.objectPartition)(e,u):[e,{}];return e=d,Object.values(f)};return{addAddresses:i,removeAddresses:n,addAccounts:u=>{let f=u.filter(p=>!r[p.descriptor]);r=f.reduce((p,b)=>Object.assign(Object.assign({},p),{[b.descriptor]:b.addresses||{change:[],used:[],unused:[]}}),r);let d=S4e(f.map(p=>p.addresses));return i(d)},removeAccounts:u=>{let[f,d]=u?(0,qT.objectPartition)(r,u.map(({descriptor:b})=>b)):[r,{}];r=d;let p=S4e(Object.values(f));return n(p)},getCount:()=>Object.keys(e).length,getInfo:u=>{let[f,d]=Object.entries(e).find(([T,I])=>I===u)||[];if(!f)return{descriptor:u};let[p,b]=Object.entries(r).find(([T,{change:I,unused:L,used:U}])=>!!I.concat(U,L).find(re=>re.address===f))||[];return{descriptor:p||f,addresses:b}}}};LT.createAddressManager=Pbt});var T4e=x(UT=>{"use strict";Object.defineProperty(UT,"__esModule",{value:!0});UT.discoverAddress=void 0;var Obt=G_(),Rbt=t=>async({address:e,path:r})=>{var i;let n=(0,Obt.addressToScripthash)(e,(i=t.getInfo())===null||i===void 0?void 0:i.network),a=await t.request("blockchain.scripthash.get_history",n);return{address:e,scripthash:n,path:r,history:a,empty:!a.length}};UT.discoverAddress=Rbt});var O4e=x(VT=>{"use strict";Object.defineProperty(VT,"__esModule",{value:!0});VT.getTransactions=void 0;var jT=wn(),J_=G_(),Mbt=t=>{var e;let[,r,i]=(e=t.match(/^6a(?:4c)?([0-9a-f]{2})([0-9a-f]*)$/i))!==null&&e!==void 0?e:[];return i?`OP_RETURN (${Buffer.from(i,"hex").toString("ascii")})`:void 0},A4e=({address:t,addresses:e,type:r,hex:i})=>{if(r==="nulldata"){let a=Mbt(i);return{addresses:a?[a]:[],isAddress:!1}}let n=t?[t]:e||[];return{addresses:n,isAddress:n.length===1}},P4e=t=>t.txid!==void 0,Cbt=(t,e,r)=>i=>{let{txid:n,version:a,vin:s,vout:o,hex:c,blockhash:u,confirmations:f,blocktime:d,locktime:p,vsize:b,size:T}=i,I=s.filter(P4e),L=o.map(({value:re})=>re).reduce((re,oe)=>re+oe,0),U=I.map(({txid:re,vout:oe})=>t(re,oe).value).reduce((re,oe)=>re+oe,0);return{txid:n,hex:c,version:a,confirmations:f??0,lockTime:p,blockTime:d,blockHash:u,blockHeight:r&&f?r-f+1:-1,value:(0,J_.btcToSat)(L),valueIn:(0,J_.btcToSat)(U),fees:(0,J_.btcToSat)(U-L),vsize:b,size:T,vin:I.map(({txid:re,vout:oe,sequence:ge,n:be},ce)=>Object.assign({txid:re,vout:oe,sequence:ge,n:be||ce,value:(0,J_.btcToSat)(t(re,oe).value)},A4e(t(re,oe).scriptPubKey))),vout:o.map(({value:re,n:oe,scriptPubKey:ge})=>Object.assign({value:(0,J_.btcToSat)(re),n:oe,spent:e(n,oe),hex:ge.hex},A4e(ge)))}},Ibt=async(t,e)=>{var r,i;let n=e.map(({tx_hash:d})=>d).filter(jT.arrayDistinct),a=await Promise.all(n.map(d=>t.request("blockchain.transaction.get",d,!0))).then(d=>(0,jT.arrayToDictionary)(d,({txid:p})=>p)),s=await Promise.all(Object.values(a).flatMap(({vin:d})=>d.filter(P4e).map(({txid:p})=>p)).filter(jT.arrayDistinct).filter(d=>!a[d]).map(d=>t.request("blockchain.transaction.get",d,!0))).then(d=>(0,jT.arrayToDictionary)(d,({txid:p})=>p)),o=()=>!1,c=d=>a[d]||s[d],u=(d,p)=>c(d).vout[p],f=((i=(r=t.getInfo())===null||r===void 0?void 0:r.block)===null||i===void 0?void 0:i.height)||0;return Object.values(a).map(Cbt(u,o,f))};VT.getTransactions=Ibt});var Ul=x(Ll=>{"use strict";var Nbt=Ll&&Ll.__createBinding||(Object.create?function(t,e,r,i){i===void 0&&(i=r);var n=Object.getOwnPropertyDescriptor(e,r);(!n||("get"in n?!e.__esModule:n.writable||n.configurable))&&(n={enumerable:!0,get:function(){return e[r]}}),Object.defineProperty(t,i,n)}:function(t,e,r,i){i===void 0&&(i=r),t[i]=e[r]}),HT=Ll&&Ll.__exportStar||function(t,e){for(var r in t)r!=="default"&&!Object.prototype.hasOwnProperty.call(e,r)&&Nbt(e,t,r)};Object.defineProperty(Ll,"__esModule",{value:!0});HT(E4e(),Ll);HT(T4e(),Ll);HT(G_(),Ll);HT(O4e(),Ll)});var R4e=x(zL=>{"use strict";Object.defineProperty(zL,"__esModule",{value:!0});var kbt=Ul(),Bbt=(t,e)=>Promise.all((e.blocks||[]).map(r=>t.request("blockchain.estimatefee",r).then(i=>({feePerUnit:(0,kbt.btcToSat)(i)}))));zL.default=Bbt});var N4e=x(XL=>{"use strict";Object.defineProperty(XL,"__esModule",{value:!0});var M4e=Yr(),C4e=Mc(),I4e=Vv(),GL=Ul(),Fbt=t_(),JL=t=>({address:t.address,path:t.path,transfers:t.history.length}),Dbt=(t,e=3600)=>{let r=[],i=0;for(;ire.isAccountOwned).reduce(I4e.sumVinVout,0)).toNumber(),U=new M4e.default(b.filter(re=>re.isAccountOwned).reduce(I4e.sumVinVout,0)).toNumber();o+=L,s+=U,c+=Math.min(L,U)}a++}r.push({time:n,txs:a-i,received:s.toString(),sent:o.toString(),sentToSelf:c.toString(),rates:{}}),i=a}return r},qbt=async(t,{descriptor:e,from:r,to:i,groupBy:n})=>{var a;let s,o,c=(a=t.getInfo())===null||a===void 0?void 0:a.network,u=(0,GL.tryGetScripthash)(e,c);if(u.valid)s=await t.request("blockchain.scripthash.get_history",u.scripthash),o=void 0;else{let d=(0,GL.discoverAddress)(t),p=await(0,C4e.discovery)(d,e,"receive",c),b=await(0,C4e.discovery)(d,e,"change",c);o={change:b.map(JL),used:p.filter(({history:T})=>T.length).map(JL),unused:p.filter(({history:T})=>!T.length).map(JL)},s=p.map(({history:T})=>T).concat(b.map(({history:T})=>T)).flat()}let f=await(0,GL.getTransactions)(t,s).then(d=>d.filter(({blockTime:p})=>(r||0)<=p&&p<=(i||Number.MAX_SAFE_INTEGER)).sort((p,b)=>p.blockTime-b.blockTime).map(p=>Object.assign({blockTime:-1},(0,Fbt.transformTransaction)(e,o,p))));return Dbt(f,n)};XL.default=qbt});var L4e=x(A2=>{"use strict";Object.defineProperty(A2,"__esModule",{value:!0});A2.sumAddressValues=void 0;var k4e=Mc(),B4e=Vv(),zT=Ul(),F4e=t_(),Lbt=25,D4e=t=>e=>Promise.all(e.map(async({address:r,path:i,history:n,scripthash:a,empty:s})=>{let{confirmed:o,unconfirmed:c}=n.length?await t.request("blockchain.scripthash.get_balance",a):{confirmed:0,unconfirmed:0};return{address:r,path:i,history:n,empty:s,confirmed:o,unconfirmed:c}})),q4e=(t,e)=>({index:1,size:t,total:Math.ceil(e.length/t)}),Ubt=(t,e,r)=>t.flatMap(i=>r(i).filter(({addresses:n})=>n?.includes(e)).map(({value:n})=>n?Number.parseFloat(n):0)).reduce((i,n)=>i+n,0);A2.sumAddressValues=Ubt;var jbt=async(t,e)=>{var r;let{descriptor:i,details:n="basic",pageSize:a=Lbt}=e,s=(r=t.getInfo())===null||r===void 0?void 0:r.network,o=(0,zT.tryGetScripthash)(i,s);if(o.valid){let{confirmed:ge,unconfirmed:be,history:ce}=await Promise.all([t.request("blockchain.scripthash.get_balance",o.scripthash),t.request("blockchain.scripthash.get_history",o.scripthash)]).then(([{confirmed:ee,unconfirmed:R},g])=>({confirmed:ee,unconfirmed:R,history:g})),me=ce.filter(ee=>ee.height<=0).length,ne=n==="txs"?await(0,zT.getTransactions)(t,ce).then(ee=>ee.map(R=>(0,F4e.transformTransaction)(i,void 0,R))).then(B4e.sortTxsFromLatest):void 0;return{descriptor:i,balance:ge.toString(),availableBalance:(ge+be).toString(),empty:!ce.length,history:{total:ce.length-me,unconfirmed:me,transactions:ne},page:n==="txs"?q4e(a,ne??[]):void 0}}let c=(0,zT.discoverAddress)(t),u=await(0,k4e.discovery)(c,i,"receive",s).then(D4e(t)),f=await(0,k4e.discovery)(c,i,"change",s).then(D4e(t)),d=u.concat(f),[p,b]=d.reduce(([ge,be],{confirmed:ce,unconfirmed:me})=>[ge+ce,be+me],[0,0]),T=d.flatMap(({history:ge})=>ge),I=T.filter(ge=>ge.height<=0).length,L=({address:ge,path:be,history:ce,confirmed:me})=>({address:ge,path:be,transfers:ce.length,balance:me.toString()}),U={change:f.map(L),unused:u.filter(ge=>!ge.history.length).map(L),used:u.filter(ge=>ge.history.length).map(L)},re=["tokenBalances","txids","txs"].includes(n)?await(0,zT.getTransactions)(t,T).then(ge=>ge.map(be=>(0,F4e.transformTransaction)(i,U,be))).then(B4e.sortTxsFromLatest):[],oe=({address:ge,path:be,transfers:ce,balance:me})=>Object.assign({address:ge,path:be,transfers:ce},["tokenBalances","txids","txs"].includes(n)&&ce?{balance:me,sent:(0,A2.sumAddressValues)(re,ge,ne=>ne.details.vin).toString(),received:(0,A2.sumAddressValues)(re,ge,ne=>ne.details.vout).toString()}:{});return{descriptor:i,balance:p.toString(),availableBalance:(p+b).toString(),empty:!T.length,history:{total:T.length-I,unconfirmed:I,transactions:n==="txs"?re:void 0},addresses:n!=="basic"?{change:U.change.map(oe),unused:U.unused.map(oe),used:U.used.map(oe)}:void 0,page:n==="txs"?q4e(a,re):void 0}};A2.default=jbt});var H4e=x(KL=>{"use strict";Object.defineProperty(KL,"__esModule",{value:!0});var Vbt=wn(),U4e=Mc(),j4e=Ul(),V4e=(t,e={})=>({height:r,tx_hash:i,tx_pos:n,value:a})=>Object.assign(Object.assign({txid:i,vout:n,amount:a.toString(),address:"",path:""},e),r?{blockHeight:r,confirmations:t-r+1}:{blockHeight:-1,confirmations:0}),Hbt=async(t,e)=>{let{block:{height:r},network:i}=t.getInfo()||(0,Vbt.throwError)("Client not initialized"),n=(0,j4e.tryGetScripthash)(e,i);if(n.valid)return(await t.request("blockchain.scripthash.listunspent",n.scripthash)).map(V4e(r));let a=(0,j4e.discoverAddress)(t),s=await(0,U4e.discovery)(a,e,"receive",i),o=await(0,U4e.discovery)(a,e,"change",i);return await Promise.all(s.concat(o).filter(u=>u.history.length).map(({address:u,path:f,scripthash:d})=>t.request("blockchain.scripthash.listunspent",d).then(p=>p.map(V4e(r,{address:u,path:f}))))).then(u=>u.flat())};KL.default=Hbt});var z4e=x(WL=>{"use strict";Object.defineProperty(WL,"__esModule",{value:!0});var zbt=Ul(),Gbt=async(t,e)=>{let r=await t.request("blockchain.block.header",e);return(0,zbt.blockheaderToBlockhash)(r)};WL.default=Gbt});var G4e=x(ZL=>{"use strict";Object.defineProperty(ZL,"__esModule",{value:!0});var Jbt=wn(),Xbt=Ul(),Kbt=t=>{let{url:e,coin:r,block:{hex:i,height:n},version:[a,s]}=t.getInfo()||(0,Jbt.throwError)("Client not initialized");return Promise.resolve({url:e,version:s,blockHeight:n,blockHash:(0,Xbt.blockheaderToBlockhash)(i),name:"Bitcoin",shortcut:r,testnet:r==="REGTEST",decimals:8})};ZL.default=Kbt});var J4e=x($L=>{"use strict";Object.defineProperty($L,"__esModule",{value:!0});var Wbt=Ul(),Zbt=async(t,e)=>{let[r]=await(0,Wbt.getTransactions)(t,[{tx_hash:e,height:-1}]);return{type:"blockbook",tx:r}};$L.default=Zbt});var X4e=x(QL=>{"use strict";Object.defineProperty(QL,"__esModule",{value:!0});var $bt=async(t,e)=>await t.request("blockchain.transaction.broadcast",e);QL.default=$bt});var K4e=x(Ea=>{"use strict";Object.defineProperty(Ea,"__esModule",{value:!0});Ea.pushTransaction=Ea.getTransaction=Ea.getInfo=Ea.getBlockHash=Ea.getAccountUtxo=Ea.getAccountInfo=Ea.getAccountBalanceHistory=Ea.estimateFee=void 0;var Qbt=R4e();Object.defineProperty(Ea,"estimateFee",{enumerable:!0,get:function(){return Qbt.default}});var Ybt=N4e();Object.defineProperty(Ea,"getAccountBalanceHistory",{enumerable:!0,get:function(){return Ybt.default}});var e3t=L4e();Object.defineProperty(Ea,"getAccountInfo",{enumerable:!0,get:function(){return e3t.default}});var t3t=H4e();Object.defineProperty(Ea,"getAccountUtxo",{enumerable:!0,get:function(){return t3t.default}});var r3t=z4e();Object.defineProperty(Ea,"getBlockHash",{enumerable:!0,get:function(){return r3t.default}});var i3t=G4e();Object.defineProperty(Ea,"getInfo",{enumerable:!0,get:function(){return i3t.default}});var n3t=J4e();Object.defineProperty(Ea,"getTransaction",{enumerable:!0,get:function(){return n3t.default}});var a3t=X4e();Object.defineProperty(Ea,"pushTransaction",{enumerable:!0,get:function(){return a3t.default}})});var W4e=x(GT=>{"use strict";Object.defineProperty(GT,"__esModule",{value:!0});GT.blockListener=void 0;var s3t=wn(),o3t=ip(),u3t=Ul(),c3t=t=>{let{state:e}=t,r=()=>{var s;return(s=t.api)!==null&&s!==void 0?s:(0,s3t.throwError)("API not created")},i=s=>{s.forEach(({height:o,hex:c})=>t.post({id:-1,type:o3t.RESPONSES.NOTIFICATION,payload:{type:"block",payload:{blockHeight:o,blockHash:(0,u3t.blockheaderToBlockhash)(c)}}}))};return{subscribe:()=>(e.getSubscription("block")||(e.addSubscription("block"),r().on("blockchain.headers.subscribe",i)),{subscribed:!0}),unsubscribe:()=>(e.getSubscription("block")&&(r().off("blockchain.headers.subscribe",i),e.removeSubscription("block")),{subscribed:!1})}};GT.blockListener=c3t});var $4e=x(JT=>{"use strict";Object.defineProperty(JT,"__esModule",{value:!0});JT.txListener=void 0;var d3t=wn(),l3t=ip(),Z4e=Ul(),f3t=t_(),p3t=(t,e)=>t===void 0?e:t.height===-1?t:e.height===-1?e:t.height===0?t:e.height===0?e:t.height>=e.height?t:e,h3t=t=>{let{state:e}=t,r=()=>{var o;return(o=t.api)!==null&&o!==void 0?o:(0,d3t.throwError)("API not created")},i=(0,Z4e.createAddressManager)(()=>{var o;return(o=r().getInfo())===null||o===void 0?void 0:o.network}),n=async([o,c])=>{let{descriptor:u,addresses:f}=i.getInfo(o);if(u===o)return;let p=(await r().request("blockchain.scripthash.get_history",o)).reduce(p3t,void 0);if(!p)return;let[b]=await(0,Z4e.getTransactions)(r(),[p]);t.post({id:-1,type:l3t.RESPONSES.NOTIFICATION,payload:{type:"notification",payload:{descriptor:u,tx:(0,f3t.transformTransaction)(u,f,b)}}})};return{subscribe:async o=>{let c=o.type==="accounts"?i.addAccounts(o.accounts):i.addAddresses(o.addresses);return c.length?(e.getSubscription("notification")||(r().on("blockchain.scripthash.subscribe",n),e.addSubscription("notification")),await Promise.all(c.map(u=>r().request("blockchain.scripthash.subscribe",u))),{subscribed:!0}):{subscribed:!1}},unsubscribe:async o=>{let c=o.type==="accounts"?i.removeAccounts(o.accounts):i.removeAddresses(o.addresses);return c.length?(e.getSubscription("notification")&&!i.getCount()&&(r().off("blockchain.scripthash.subscribe",n),e.removeSubscription("notification")),await Promise.all(c.map(u=>r().request("blockchain.scripthash.unsubscribe",u))),{subscribed:!1}):{subscribed:!1}}}};JT.txListener=h3t});var Q4e=x(k6=>{"use strict";Object.defineProperty(k6,"__esModule",{value:!0});k6.txListener=k6.blockListener=void 0;var m3t=W4e();Object.defineProperty(k6,"blockListener",{enumerable:!0,get:function(){return m3t.blockListener}});var g3t=$4e();Object.defineProperty(k6,"txListener",{enumerable:!0,get:function(){return g3t.txListener}})});var KT=x(XT=>{"use strict";Object.defineProperty(XT,"__esModule",{value:!0});XT.SocketBase=void 0;var y3t=1e4,v3t=!0,YL=class{constructor({host:e,port:r,timeout:i,keepAlive:n}){this.host=e,this.port=r,this.timeout=i!==void 0?i:y3t,this.keepAlive=n!==void 0?n:v3t}async connect(e){this.socket=await this.openSocket(e)}close(){var e,r;(e=this.socket)===null||e===void 0||e.end(),(r=this.socket)===null||r===void 0||r.destroy()}send(e){var r;return(r=this.socket)===null||r===void 0?void 0:r.write(e)}configureSocket(e){e.setTimeout(this.timeout),e.setEncoding("utf8"),e.setKeepAlive(this.keepAlive),e.setNoDelay(!0)}bindSocket(e,r){e.on("connect",()=>{e.setTimeout(0),r.onConnect()}),e.on("close",i=>{r.onClose(i)}),e.on("timeout",()=>{let i=new Error("ETIMEDOUT");i.errorno="ETIMEDOUT",i.code="ETIMEDOUT",i.connect=!1,e.emit("error",i)}),e.on("data",i=>{e.setTimeout(0),r.onReceive(i)}),e.on("end",i=>{e.setTimeout(0),r.onEnd(i)}),e.on("error",i=>{r.onError(i)})}};XT.SocketBase=YL});var Y4e=x(WT=>{"use strict";Object.defineProperty(WT,"__esModule",{value:!0});WT.TcpSocket=void 0;var b3t=require("net"),_3t=KT(),eU=class extends _3t.SocketBase{openSocket(e){let r=new b3t.Socket;return this.configureSocket(r),this.bindSocket(r,e),new Promise((i,n)=>{let a=s=>n(s);r.on("error",a),r.connect(this.port,this.host,()=>{r.removeListener("error",a),i(r)})})}};WT.TcpSocket=eU});var ebe=x(ZT=>{"use strict";Object.defineProperty(ZT,"__esModule",{value:!0});ZT.TlsSocket=void 0;var w3t=require("tls"),x3t=KT(),tU=class extends x3t.SocketBase{openSocket(e){let r=new w3t.TLSSocket(null);return this.configureSocket(r),this.bindSocket(r,e),new Promise((i,n)=>{let a=s=>n(s);r.on("error",a),r.connect(this.port,this.host,()=>{r.removeListener("error",a),i(r)})})}};ZT.TlsSocket=tU});var tbe=x(B6=>{"use strict";var S3t=B6&&B6.__rest||function(t,e){var r={};for(var i in t)Object.prototype.hasOwnProperty.call(t,i)&&e.indexOf(i)<0&&(r[i]=t[i]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var n=0,i=Object.getOwnPropertySymbols(t);n{throw e.onError(a),a});return e.onConnect(),this.configureSocket(n),this.bindSocket(n,e),n}};B6.TorSocket=rU});var rbe=x($T=>{"use strict";Object.defineProperty($T,"__esModule",{value:!0});$T.createSocket=void 0;var iU=Hu(),T3t=Y4e(),A3t=ebe(),P3t=tbe(),O3t=(t,e)=>{let[r,i,n]=t.replace(/.*:\/\//,"").split(":");if(!r)throw new iU.CustomError("Missing host");let a=Number.parseInt(i,10);if(!a)throw new iU.CustomError("Invalid port");let{timeout:s,keepAlive:o,proxyAgent:c}=e||{};if(c)return new P3t.TorSocket({host:r,port:a,timeout:s,keepAlive:o,proxyAgent:c});if(n==="t")return new T3t.TcpSocket({host:r,port:a,timeout:s,keepAlive:o});if(!n||n==="s")return new A3t.TlsSocket({host:r,port:a,timeout:s,keepAlive:o});throw new iU.CustomError("Invalid protocol")};$T.createSocket=O3t});var ibe=x(QT=>{"use strict";Object.defineProperty(QT,"__esModule",{value:!0});QT.JsonRpcClient=void 0;var R3t=require("events"),M3t=wn(),nU=class{constructor(){this.id=0,this.buffer="",this.emitter=new R3t.EventEmitter,this.callbacks={},this.debug=!1}async connect(e,r){if(!this.socket){this.debug=r?.debug||!1;try{this.socket=e,await this.socket.connect(this)}catch(i){throw this.socket=void 0,new Error(`JSON RPC connection failed: [${i}]`)}}}isConnected(){return!!this.socket}close(){var e;(e=this.socket)===null||e===void 0||e.close(),this.socket=void 0,this.onClose()}request(e,...r){return new Promise((i,n)=>{let a=++this.id,s=JSON.stringify({jsonrpc:"2.0",method:e,params:r,id:a});this.callbacks[a]=(o,c)=>{o?n(o):i(c)},this.send(s)})}on(e,r){this.emitter.on(e,r)}off(e,r){this.emitter.off(e,r)}send(e){let r=this.socket||(0,M3t.throwError)("Connection not established");this.log("SENDING:",e),r.send(`${e} +`)}response(e){let{id:r,method:i,params:n,result:a,error:s}=e;if(!r)this.emitter.emit(i,n);else{let o=this.callbacks[r];o?(delete this.callbacks[r],o(s,a)):this.log(`Can't get callback for ${r}`)}}onMessage(e){let r=JSON.parse(e);this.log("RECEIVED:",r),this.response(r)}onConnect(){this.log("onConnect")}onReceive(e){let r=(this.buffer+e).split(` +`);this.buffer=r.pop()||"",r.filter(i=>!!i).forEach(this.onMessage,this)}onEnd(e){this.log(`onEnd: [${e}]`)}onError(e){this.log(`onError: [${e}]`)}onClose(){this.log("onClose"),Object.values(this.callbacks).forEach(e=>e(new Error("Connection closed"))),this.callbacks={},this.emitter.removeAllListeners()}log(...e){this.debug&&console.log(...e)}};QT.JsonRpcClient=nU});var nbe=x(YT=>{"use strict";Object.defineProperty(YT,"__esModule",{value:!0});YT.BatchingJsonRpcClient=void 0;var C3t=ibe(),I3t=50,N3t=15,aU=class extends C3t.JsonRpcClient{constructor(e){super(),this.queue=[],this.timeoutMs=e?.timeoutMs||I3t,this.maxQueueLength=e?.maxQueueLength||N3t}send(e){let{queue:r}=this;r.push(e),this.batchTimer&&clearTimeout(this.batchTimer),this.batchTimer=setTimeout(()=>{for(this.batchTimer=void 0;r.length;){let i=r.splice(0,this.maxQueueLength),n=i.length>1?`[${i.join(",")}]`:i[0];super.send(n)}},this.timeoutMs)}onMessage(e){let r=JSON.parse(e);this.log("RECEIVED:",r),Array.isArray(r)?r.forEach(this.response,this):this.response(r)}};YT.BatchingJsonRpcClient=aU});var sbe=x(eA=>{"use strict";Object.defineProperty(eA,"__esModule",{value:!0});eA.ElectrumClient=void 0;var sU=Mc(),k3t=nbe(),abe=120*1e3,B3t=t=>{switch(t){case"REGTEST":return sU.networks.regtest;case"TEST":return sU.networks.testnet;default:return sU.networks.bitcoin}},oU=class extends k3t.BatchingJsonRpcClient{constructor(){super(...arguments),this.timeLastCall=0}async connect(e,r){this.timeLastCall=0,this.options=r,this.network=B3t(r.coin);let{name:i,protocolVersion:n}=r.client;await super.connect(e,r);try{this.version=await this.request("server.version",i,n),this.on("blockchain.headers.subscribe",this.onBlock.bind(this)),this.lastBlock=await this.request("blockchain.headers.subscribe")}catch(a){throw this.socket=void 0,new Error(`Communication with Electrum server failed: [${a}]`)}this.keepAlive()}getInfo(){var e;if(((e=this.options)===null||e===void 0?void 0:e.url)&&this.version&&this.lastBlock&&this.network)return{url:this.options.url,version:this.version,block:this.lastBlock,coin:this.options.coin,network:this.network}}onBlock(e){let[r]=e.sort((i,n)=>n.height-i.height);r&&(this.lastBlock=r)}request(e,...r){return this.timeLastCall=new Date().getTime(),super.request(e,...r)}keepAlive(){!this.socket||(this.keepAliveHandle=setInterval(async()=>{this.timeLastCall!==0&&new Date().getTime()>this.timeLastCall+abe/2&&await this.request("server.ping").catch(e=>{console.error(`Ping to server failed: [${e}]`),this.close()})},abe))}onClose(){super.onClose(),this.keepAliveHandle&&clearInterval(this.keepAliveHandle)}};eA.ElectrumClient=oU});var obe=x(tA=>{"use strict";Object.defineProperty(tA,"__esModule",{value:!0});tA.CachingElectrumClient=void 0;var F3t=sbe(),uU=class extends F3t.ElectrumClient{constructor(){super(),this.cache={},this.statuses={},this.cached=0,this.total=0,this.logTimer=setInterval(()=>{this.log(`Caching effectiveness: ${this.cached}/${this.total}`),this.log("Subscription count: ",Object.keys(this.statuses).length)},6e4)}async cacheRequest(e,r,i){let n=[r,...i].join(":"),a=this.cache[n];if(a){let[o,c]=a;if(o===e)return this.cached++,c}let s=await super.request(r,...i);return this.cache[n]=[e,s],s}async trySubscribe(e){let r=this.statuses[e];if(r!==void 0)return r;let i=await super.request("blockchain.scripthash.subscribe",e);return this.statuses[e]=i,i}async request(e,...r){var i;switch(this.total++,e){case"blockchain.scripthash.get_history":case"blockchain.scripthash.get_balance":case"blockchain.scripthash.listunspent":{let[n]=r,a=await this.trySubscribe(n);return this.cacheRequest(a,e,r)}case"blockchain.transaction.get":{let n=(i=this.lastBlock)===null||i===void 0?void 0:i.hex;if(n===void 0)break;return this.cacheRequest(n,e,r)}case"blockchain.scripthash.subscribe":{let[n]=r;return this.trySubscribe(n)}case"blockchain.scripthash.unsubscribe":{let[n]=r;return delete this.statuses[n],super.request(e,...r)}default:break}return super.request(e,...r)}response(e){let{method:r,params:i}=e;switch(r){case"blockchain.scripthash.subscribe":{let[n,a]=i;this.statuses[n]=a;break}default:break}super.response(e)}onClose(){super.onClose(),clearInterval(this.logTimer)}};tA.CachingElectrumClient=uU});var dbe=x(dU=>{"use strict";Object.defineProperty(dU,"__esModule",{value:!0});var cU=Hu(),Yi=ip(),cbe=G3(),r1=K4e(),ube=Q4e(),D3t=rbe(),q3t=obe(),L3t=async t=>{let e=await t.connect();switch(t.type){case Yi.MESSAGES.GET_INFO:return{type:Yi.RESPONSES.GET_INFO,payload:await r1.getInfo(e)};case Yi.MESSAGES.GET_BLOCK_HASH:return{type:Yi.RESPONSES.GET_BLOCK_HASH,payload:await r1.getBlockHash(e,t.payload)};case Yi.MESSAGES.GET_ACCOUNT_INFO:return{type:Yi.RESPONSES.GET_ACCOUNT_INFO,payload:await r1.getAccountInfo(e,t.payload)};case Yi.MESSAGES.GET_ACCOUNT_UTXO:return{type:Yi.RESPONSES.GET_ACCOUNT_UTXO,payload:await r1.getAccountUtxo(e,t.payload)};case Yi.MESSAGES.GET_TRANSACTION:return{type:Yi.RESPONSES.GET_TRANSACTION,payload:await r1.getTransaction(e,t.payload)};case Yi.MESSAGES.GET_ACCOUNT_BALANCE_HISTORY:return{type:Yi.RESPONSES.GET_ACCOUNT_BALANCE_HISTORY,payload:await r1.getAccountBalanceHistory(e,t.payload)};case Yi.MESSAGES.ESTIMATE_FEE:return{type:Yi.RESPONSES.ESTIMATE_FEE,payload:await r1.estimateFee(e,t.payload)};case Yi.MESSAGES.PUSH_TRANSACTION:return{type:Yi.RESPONSES.PUSH_TRANSACTION,payload:await r1.pushTransaction(e,t.payload)};case Yi.MESSAGES.SUBSCRIBE:switch(t.payload.type){case"block":return{type:Yi.RESPONSES.SUBSCRIBE,payload:t.blockListener.subscribe()};case"addresses":case"accounts":return{type:Yi.RESPONSES.SUBSCRIBE,payload:await t.txListener.subscribe(t.payload)};default:throw new cU.CustomError(`Subscription ${t.payload.type} not implemented`)}case Yi.MESSAGES.UNSUBSCRIBE:switch(t.payload.type){case"block":return{type:Yi.RESPONSES.UNSUBSCRIBE,payload:t.blockListener.unsubscribe()};case"addresses":case"accounts":return{type:Yi.RESPONSES.UNSUBSCRIBE,payload:await t.txListener.unsubscribe(t.payload)};default:throw new cU.CustomError(`Subscription ${t.payload.type} not implemented`)}case"raw":let{method:r,params:i}=t.payload;return e.request(r,...i).then(n=>({type:r,payload:n}));default:throw new cU.CustomError("worker_unknown_request",`+${t.type}`)}},rA=class extends cbe.BaseWorker{constructor(){super(),this.blockListener=ube.blockListener(this),this.txListener=ube.txListener(this)}isConnected(e){var r;return(r=e?.isConnected())!==null&&r!==void 0?r:!1}async tryConnect(e){let{debug:r,timeout:i,keepAlive:n,name:a}=this.settings,s=(0,D3t.createSocket)(e,{timeout:i,keepAlive:n,proxyAgent:this.proxyAgent}),o=new q3t.CachingElectrumClient;return await o.connect(s,{url:e,coin:a??"BTC",debug:r,client:{name:"blockchain-link",protocolVersion:"1.4"}}),this.post({id:-1,type:Yi.RESPONSES.CONNECTED}),o}disconnect(){var e;!((e=this.api)===null||e===void 0)&&e.isConnected()&&this.api.close()}cleanup(){this.api&&this.api.close(),super.cleanup()}async messageHandler(e){try{if(await super.messageHandler(e))return!0;let r=Object.assign(Object.assign({},e.data),{connect:()=>this.connect(),post:n=>this.post(n),state:this.state,blockListener:this.blockListener,txListener:this.txListener}),i=await L3t(r);this.post(Object.assign({id:e.data.id},i))}catch(r){this.errorResponse(e.data.id,r)}}};function U3t(){return new rA}dU.default=U3t;if(cbe.CONTEXT==="worker"){let t=new rA;onmessage=t.messageHandler.bind(t)}});var lU=x(mo=>{"use strict";Object.defineProperty(mo,"__esModule",{value:!0});mo.ElectrumWorker=mo.BlockfrostWorker=mo.RippleWorker=mo.BlockbookWorker=mo.ReactNativeUsbPlugin=mo.WebUsbPlugin=void 0;var iA=mr(),j3t=iA.__importDefault(The());mo.BlockbookWorker=j3t.default;var V3t=iA.__importDefault(g4e());mo.RippleWorker=V3t.default;var H3t=iA.__importDefault(x4e());mo.BlockfrostWorker=H3t.default;var z3t=iA.__importDefault(dbe());mo.ElectrumWorker=z3t.default;var G3t=void 0;mo.WebUsbPlugin=G3t;var J3t=void 0;mo.ReactNativeUsbPlugin=J3t});var lbe=x(nA=>{"use strict";Object.defineProperty(nA,"__esModule",{value:!0});nA.getAbortController=void 0;var X3t=mr(),K3t=X3t.__importDefault(require("events")),fU=class{constructor(){this.aborted=!1,this.eventEmitter=new K3t.default}toString(){return"[object AbortSignal]"}removeEventListener(e,r){this.eventEmitter.removeListener(e,r)}addEventListener(e,r){this.eventEmitter.on(e,r)}dispatchEvent(e){this.eventEmitter.emit(e,{type:e,target:this})}},pU=class{constructor(){this.signal=new fU}abort(){this.signal.aborted||(this.signal.dispatchEvent("abort"),this.signal.aborted=!0)}toString(){return"[object AbortController]"}},W3t=()=>typeof AbortController<"u"?new AbortController:new pU;nA.getAbortController=W3t});var pbe=x(F6=>{"use strict";Object.defineProperty(F6,"__esModule",{value:!0});F6.getDeviceList=F6.DeviceList=void 0;var bU=mr(),Z3t=bU.__importDefault(require("events")),$3t=bU.__importDefault(oN()),Q3t=bU.__importDefault(Hw()),hU=Pt(),pi=rr(),Y3t=koe(),mU=Hpe(),sA=Bf(),e_t=TN(),t_t=Tf(),gU=Jy(),aA=lU(),r_t=lbe(),{BridgeV2:fbe,Fallback:i_t}=$3t.default,Zu=(0,t_t.initLog)("DeviceList"),oA=class extends Z3t.default{constructor(){var e;super(),this.devices={},this.creatingDevicesDescriptors={},this.transportStartPending=0,this.penalizedDevices={};let{env:r}=sA.DataManager.settings,{transports:i}=sA.DataManager.settings,n=[];if(i?.length||(i=["BridgeTransport","WebUsbTransport"]),r==="react-native"&&typeof aA.ReactNativeUsbPlugin<"u")n.push((0,aA.ReactNativeUsbPlugin)());else if(i?.includes("BridgeTransport")){let a=(0,e_t.getBridgeInfo)().version.join("."),s=new fbe(void 0,void 0);s.setBridgeLatestVersion(a),this.fetchController=(0,r_t.getAbortController)();let{signal:o}=this.fetchController,c=(f,d={})=>(0,Q3t.default)(f,{...d,signal:o}),u=!!(!((e=process==null?void 0:process.release)===null||e===void 0)&&e.name)&&process.release.name.search(/node|io\.js/)!==-1;fbe.setFetch(c,u),n.push(s)}i?.includes("WebUsbTransport")&&typeof aA.WebUsbPlugin<"u"&&n.push((0,aA.WebUsbPlugin)()),this.transport=new i_t(n),this.messages=sA.DataManager.getProtobufMessages()}async init(){let{transport:e}=this;try{Zu.debug("Initializing transports"),await e.init(Zu.enabled),Zu.debug("Configuring transports"),await e.configure(JSON.stringify(this.messages)),Zu.debug("Configuring transports done");let{activeName:r}=e;r==="WebUsbTransport"&&(this.transportPlugin=e.activeTransport.plugin),await this._initStream(),this.on(pi.DEVICE.CONNECT,this.resolveTransportEvent.bind(this)),this.on(pi.DEVICE.CONNECT_UNACQUIRED,this.resolveTransportEvent.bind(this))}catch(r){this.emit(pi.TRANSPORT.ERROR,r)}}resolveTransportEvent(){this.transportStartPending--,this.transportStartPending===0&&this.stream.emit(pi.TRANSPORT.START)}async waitForTransportFirstEvent(){await new Promise(e=>{let r=()=>{this.removeListener(pi.TRANSPORT.START,r),this.removeListener(pi.TRANSPORT.ERROR,r),e()};this.on(pi.TRANSPORT.START,r),this.on(pi.TRANSPORT.ERROR,r)})}_initStream(){let e=new Y3t.DescriptorStream(this.transport);if(e.on(pi.TRANSPORT.START_PENDING,r=>{this.transportStartPending=r}),e.on(pi.TRANSPORT.START,()=>{this.emit(pi.TRANSPORT.START,this.getTransportInfo())}),e.on(pi.TRANSPORT.UPDATE,r=>{new vU(this,r).handle()}),e.on(pi.TRANSPORT.ERROR,r=>{this.emit(pi.TRANSPORT.ERROR,r),e.stop()}),e.listen(),this.stream=e,this.transportPlugin&&this.transportPlugin.name==="WebUsbPlugin"){let{unreadableHidDeviceChange:r}=this.transportPlugin,i="unreadable";r.on("change",()=>{if(this.transportPlugin&&this.transportPlugin.unreadableHidDevice){let n=this._createUnreadableDevice({path:i,session:null,debugSession:null,debug:!1},"HID_DEVICE");this.devices[i]=n,this.emit(pi.DEVICE.CONNECT_UNACQUIRED,n.toMessageObject())}else{let n=this.devices[i];delete this.devices[i],this.emit(pi.DEVICE.DISCONNECT,n.toMessageObject())}})}this.emit(pi.TRANSPORT.STREAM,e)}async _createAndSaveDevice(e){Zu.debug("Creating Device",e),await new yU(e,this).handle()}_createUnacquiredDevice(e){Zu.debug("Creating Unacquired Device",e);let r=mU.Device.createUnacquired(this.transport,e);return r.once(pi.DEVICE.ACQUIRED,()=>{this.emit(pi.DEVICE.CONNECT,r.toMessageObject())}),r}_createUnreadableDevice(e,r){return Zu.debug("Creating Unreadable Device",e,r),mU.Device.createUnacquired(this.transport,e,r)}getDevice(e){return this.devices[e]}getFirstDevicePath(){return this.asArray()[0].path}asArray(){return this.allDevices().map(e=>e.toMessageObject())}allDevices(){return Object.keys(this.devices).map(e=>this.devices[e])}length(){return this.asArray().length}transportType(){let{transport:e}=this,{activeName:r}=e;return r||"UnknownTransport"}getTransportInfo(){return{type:this.transportType(),version:this.transport.version,outdated:this.transport.isOutdated}}async dispose(){this.removeAllListeners(),this.stream&&this.stream.stop(),await Promise.all(this.allDevices().map(e=>e.dispose())),this.transport&&this.transport.stop(),this.fetchController&&(this.fetchController.abort(),this.fetchController=null)}disconnectDevices(){this.allDevices().forEach(e=>{this.emit(pi.DEVICE.DISCONNECT,e.toMessageObject())})}enumerate(){this.stream.enumerate(),this.stream.current&&this.stream.current.forEach(e=>{let r=e.path.toString(),i=this.devices[r];i&&i.updateDescriptor(e)})}addAuthPenalty(e){if(!e.isInitialized()||e.isBootloader()||!e.features.device_id)return;let r=e.features.device_id,i=this.penalizedDevices[r]?this.penalizedDevices[r]+500:2e3;this.penalizedDevices[r]=Math.min(i,5e3)}getAuthPenalty(){let{penalizedDevices:e}=this;return Object.keys(e).reduce((r,i)=>Math.max(r,e[i]),0)}removeAuthPenalty(e){if(!e.isInitialized()||e.isBootloader()||!e.features.device_id)return;let r=e.features.device_id;delete this.penalizedDevices[r]}};F6.DeviceList=oA;var n_t=async()=>{let t=new oA;return await t.init(),t};F6.getDeviceList=n_t;var yU=class{constructor(e,r){this.descriptor=e,this.list=r,this.path=e.path.toString()}async handle(){this.list.creatingDevicesDescriptors[this.path]=this.descriptor;try{await this._takeAndCreateDevice()}catch(e){if(Zu.debug("Cannot create device",e),e.code!=="Device_NotFound")if(e.message===hU.ERRORS.WRONG_PREVIOUS_SESSION_ERROR_MESSAGE||e.toString()===hU.ERRORS.WEBUSB_ERROR_MESSAGE)this.list.enumerate(),this._handleUsedElsewhere();else if(e.message.indexOf(hU.ERRORS.LIBUSB_ERROR_MESSAGE)>=0){let r=this.list._createUnreadableDevice(this.list.creatingDevicesDescriptors[this.path],e.message);this.list.devices[this.path]=r,this.list.emit(pi.DEVICE.CONNECT_UNACQUIRED,r.toMessageObject())}else e.code==="Device_InitializeFailed"?this._handleUsedElsewhere():e.code==="Device_UsedElsewhere"?this._handleUsedElsewhere():(await(0,gU.resolveAfter)(501,null),await this.handle())}delete this.list.creatingDevicesDescriptors[this.path]}async _takeAndCreateDevice(){let e=mU.Device.fromDescriptor(this.list.transport,this.descriptor);this.list.devices[this.path]=e,await e.run(),this.list.emit(pi.DEVICE.CONNECT,e.toMessageObject())}_handleUsedElsewhere(){let e=this.list._createUnacquiredDevice(this.list.creatingDevicesDescriptors[this.path]);this.list.devices[this.path]=e,this.list.emit(pi.DEVICE.CONNECT_UNACQUIRED,e.toMessageObject())}},vU=class{constructor(e,r){this.list=e,this.diff=r}handle(){Zu.debug("Update DescriptorStream",this.diff),this._createConnectedDevices(),this._createReleasedDevices(),this._signalAcquiredDevices(),this._updateDescriptors(),this._emitEvents(),this._disconnectDevices()}_updateDescriptors(){this.diff.descriptors.forEach(e=>{let r=e.path.toString(),i=this.list.devices[r];i&&i.updateDescriptor(e)})}_emitEvents(){[{d:this.diff.changedSessions,e:pi.DEVICE.CHANGED},{d:this.diff.acquired,e:pi.DEVICE.ACQUIRED},{d:this.diff.released,e:pi.DEVICE.RELEASED}].forEach(({d:r,e:i})=>{r.forEach(n=>{let a=n.path.toString(),s=this.list.devices[a];Zu.debug("Event",i,s),s&&this.list.emit(i,s.toMessageObject())})})}_createConnectedDevices(){this.diff.connected.forEach(async e=>{let r=e.path.toString(),i=sA.DataManager.getSettings("priority"),n=this.list.getAuthPenalty();if(Zu.debug("Connected",i,n,e.session,this.list.devices),(i||n)&&await(0,gU.resolveAfter)(501+n+100*i,null),e.session==null)await this.list._createAndSaveDevice(e);else{let a=await this.list._createUnacquiredDevice(e);this.list.devices[r]=a,this.list.emit(pi.DEVICE.CONNECT_UNACQUIRED,a.toMessageObject())}})}_signalAcquiredDevices(){this.diff.acquired.forEach(e=>{let r=e.path.toString();this.list.creatingDevicesDescriptors[r]&&(this.list.creatingDevicesDescriptors[r]=e)})}_createReleasedDevices(){this.diff.released.forEach(async e=>{let r=e.path.toString(),i=this.list.devices[r];i&&i.isUnacquired()&&!i.isInconsistent()&&(await(0,gU.resolveAfter)(501,null),Zu.debug("Create device from unacquired",i),await this.list._createAndSaveDevice(e))})}_disconnectDevices(){this.diff.disconnected.forEach(e=>{let r=e.path.toString(),i=this.list.devices[r];i!=null&&(i.disconnect(),delete this.list.devices[r],this.list.emit(pi.DEVICE.DISCONNECT,i.toMessageObject()))})}}});var hbe=x(uA=>{"use strict";Object.defineProperty(uA,"__esModule",{value:!0});uA.enhancePostMessageWithAnalytics=void 0;var a_t=rr(),s_t=(t,e,r)=>{var i,n,a,s,o,c,u,f;switch(e.type){case a_t.UI_REQUEST.REQUEST_CONFIRMATION:let{device:d}=r;t({...e,payload:{...e.payload,analytics:{type:"device/selected",payload:{mode:d?.mode||"",pinProtection:((i=d?.features)===null||i===void 0?void 0:i.pin_protection)||"",passphraseProtection:((n=d?.features)===null||n===void 0?void 0:n.passphrase_protection)||"",backupType:((a=d?.features)===null||a===void 0?void 0:a.backup_type)||"Bip39",language:((s=d?.features)===null||s===void 0?void 0:s.language)||"",model:((o=d?.features)===null||o===void 0?void 0:o.model)||"",vendor:((c=d?.features)===null||c===void 0?void 0:c.vendor)||"",firmwareRevision:((u=d?.features)===null||u===void 0?void 0:u.revision)||"",firmwareType:d?.firmwareType||"",bootloaderHash:((f=d?.features)===null||f===void 0?void 0:f.bootloader_hash)||""}}}});break;default:t(e)}};uA.enhancePostMessageWithAnalytics=s_t});var ybe=x(D6=>{"use strict";Object.defineProperty(D6,"__esModule",{value:!0});D6.load=D6.save=void 0;var o_t=1,mbe="storage_v".concat(o_t),_U={},gbe=function(){var t=localStorage.getItem(mbe);return t?JSON.parse(t):{}},u_t=function(t,e){if(e===void 0&&(e=!1),e||!global.window){_U=t(_U);return}var r=t(gbe());localStorage.setItem(mbe,JSON.stringify(r))};D6.save=u_t;var c_t=function(t){return t===void 0&&(t=!1),t||!global.window?_U:gbe()};D6.load=c_t});var vbe=x(cA=>{"use strict";Object.defineProperty(cA,"__esModule",{value:!0});cA.storage=void 0;var d_t=ybe();cA.storage=d_t});var Tt=x(lA=>{"use strict";Object.defineProperty(lA,"__esModule",{value:!0});lA.AbstractMethod=void 0;var wU=vbe(),dA=Bf(),bbe=Pt(),Wo=rr(),_be=Iv(),xU=class{constructor(e){var r,i;this.info="";let{payload:n}=e;this.name=n.method,this.payload=n,this.responseID=e.id||0,this.devicePath=(r=n.device)===null||r===void 0?void 0:r.path,this.deviceState=(i=n.device)===null||i===void 0?void 0:i.state,this.hasExpectedDeviceState=n.device?Object.prototype.hasOwnProperty.call(n.device,"state"):!1,this.keepSession=typeof n.keepSession=="boolean"?n.keepSession:!1,this.skipFinalReload=typeof n.skipFinalReload=="boolean"?n.skipFinalReload:!1,this.skipFirmwareCheck=!1,this.overridePreviousCall=typeof n.override=="boolean"?n.override:!1,this.overridden=!1,this.useEmptyPassphrase=typeof n.useEmptyPassphrase=="boolean"?n.useEmptyPassphrase:!1,this.allowSeedlessDevice=typeof n.allowSeedlessDevice=="boolean"?n.allowSeedlessDevice:!1,this.allowDeviceMode=[],this.requireDeviceMode=[],this.allowSeedlessDevice&&(this.allowDeviceMode=[Wo.UI.SEEDLESS]),this.network="bitcoin",Object.keys(bbe.NETWORK.TYPES).forEach(a=>{this.name.startsWith(a)&&(this.network=a)}),this.firmwareRange={1:{min:"1.0.0",max:"0"},2:{min:"2.0.0",max:"0"}},this.requiredPermissions=[],this.useDevice=!0,this.useDeviceState=!0,this.useUi=!0,this.useCardanoDerivation=typeof n.useCardanoDerivation=="boolean"?n.useCardanoDerivation:n.method.startsWith("cardano")}setDevice(e){this.device=e,this.devicePath=e.getDevicePath();let r=this.createUiPromise;this.createUiPromise=(i,n)=>r(i,n||e)}async requestPermissions(){await this.getPopupPromise().promise;let e=this.createUiPromise(Wo.UI.RECEIVE_PERMISSION);this.postMessage((0,Wo.createUiMessage)(Wo.UI.REQUEST_PERMISSION,{permissions:this.requiredPermissions,device:this.device.toMessageObject()}));let r=await e.promise,{granted:i,remember:n}=r.payload;return i?(this.savePermissions(!n),!0):!1}checkPermissions(){let e=wU.storage.load().permissions,r=[...this.requiredPermissions];if(e){let i=e.filter(n=>n.origin===dA.DataManager.getSettings("origin"));i.length>0&&(r=r.filter(n=>!i.find(s=>s.type===n&&s.device===this.device.features.device_id)))}this.requiredPermissions=r}savePermissions(e=!1){let r=wU.storage.load(e).permissions||[],i=this.requiredPermissions.map(s=>({origin:dA.DataManager.getSettings("origin"),type:s,device:this.device.features.device_id||void 0})),n=!1;this.requiredPermissions.indexOf("read")>=0&&r.filter(o=>o.origin===dA.DataManager.getSettings("origin")&&o.type==="read"&&o.device===this.device.features.device_id).length<1&&(n=!0);let a=r.filter(s=>s.origin===dA.DataManager.getSettings("origin"));a.length>0&&(i=i.filter(s=>!a.find(c=>c.type===s.type&&c.device===s.device))),wU.storage.save(s=>({...s,permissions:r.concat(i)}),e),n&&this.postMessage((0,Wo.createDeviceMessage)(Wo.DEVICE.CONNECT,this.device.toMessageObject()))}async checkFirmwareRange(e){if(this.skipFirmwareCheck)return;let{device:r}=this;if(!r.features)return;let i=r.getVersion(),n=i[0],a=this.firmwareRange[n];if(r.firmwareStatus==="none")return Wo.UI.FIRMWARE_NOT_INSTALLED;if(a.min==="0")return Wo.UI.FIRMWARE_NOT_SUPPORTED;if(r.firmwareStatus==="required"||(0,_be.versionCompare)(i,a.min)<0)return Wo.UI.FIRMWARE_OLD;if(a.max!=="0"&&(0,_be.versionCompare)(i,a.max)>0)if(e){await this.getPopupPromise().promise;let s=this.createUiPromise(Wo.UI.RECEIVE_CONFIRMATION);if(this.postMessage((0,Wo.createUiMessage)(Wo.UI.FIRMWARE_NOT_COMPATIBLE,r.toMessageObject())),!(await s.promise).payload)throw bbe.ERRORS.TypedError("Method_PermissionsNotGranted")}else return Wo.UI.FIRMWARE_NOT_COMPATIBLE}dispose(){}};lA.AbstractMethod=xU});var ut=x(i1=>{"use strict";Object.defineProperty(i1,"__esModule",{value:!0});i1.getFirmwareRange=i1.validateCoinPath=i1.validateParams=void 0;var l_t=Pt(),f_t=Gt(),q6=Iv(),p_t=Qb(),Gp=t=>l_t.ERRORS.TypedError("Method_InvalidParameter",t);function wbe(t,e){return e.forEach(r=>{let i=t[r.name];if(r.required&&i==null)throw Gp(`Parameter "${r.name}" is missing.`);if(!r.type||i==null)return;let{name:n,type:a}=r;if(Array.isArray(a)){let s={};if(s[n]=i,!a.reduce((c,u)=>{try{return wbe(s,[{name:r.name,type:u}]),c+1}catch{return c}},0))throw Gp(`Parameter "${n}" has invalid type. Union of "${a.join("|")}" expected.`);return}if(a==="array"){if(!Array.isArray(i))throw Gp(`Parameter "${n}" has invalid type. "${a}" expected.`);if(!r.allowEmpty&&i.length<1)throw Gp(`Parameter "${n}" is empty.`)}else if(a==="uint"){if(typeof i!="string"&&typeof i!="number")throw Gp(`Parameter "${n}" has invalid type. "string|number" expected.`);if(typeof i=="number"&&!Number.isSafeInteger(i)||!/^(?:[1-9]\d*|\d)$/.test(i.toString().replace(/^-/,r.allowNegative?"":"-")))throw Gp(`Parameter "${n}" has invalid value "${i}". Integer representation expected.`)}else if(a==="array-buffer"){if(!(i instanceof ArrayBuffer))throw Gp(`Parameter "${n}" has invalid type. "ArrayBuffer" expected.`)}else if(typeof i!==a)throw Gp(`Parameter "${n}" has invalid type. "${a}" expected.`)}),t}i1.validateParams=wbe;var h_t=(t,e)=>{if(e&&e.slip44!==(0,f_t.fromHardened)(t[1]))throw Gp('Parameters "path" and "coin" do not match.')};i1.validateCoinPath=h_t;var m_t=(t,e,r)=>{let i=JSON.parse(JSON.stringify(r));e&&(!e.support||typeof e.support.trezor1!="string"?i[1].min="0":(0,q6.versionCompare)(e.support.trezor1,i[1].min)>0&&(i[1].min=e.support.trezor1),!e.support||typeof e.support.trezor2!="string"?i[2].min="0":(0,q6.versionCompare)(e.support.trezor2,i[2].min)>0&&(i[2].min=e.support.trezor2));let n=e?e.type:null,a=e?e.shortcut.toLowerCase():null,{supportedFirmware:s}=p_t.config;return s.filter(c=>c.methods?c.methods.includes(t):c.capabilities?c.capabilities.includes(t):!0).filter(c=>c.coinType?c.coinType===n:c.coin?(typeof c.coin=="string"?[c.coin]:c.coin).includes(a):c.methods||c.capabilities).forEach(c=>{let{min:u,max:f}=c;if(u){let[d,p]=u;(d==="0"||i[1].min==="0"||(0,q6.versionCompare)(i[1].min,d)<0)&&(i[1].min=d),(p==="0"||i[2].min==="0"||(0,q6.versionCompare)(i[2].min,p)<0)&&(i[2].min=p)}if(f){let[d,p]=f;(d==="0"||i[1].max==="0"||(0,q6.versionCompare)(i[1].max,d)<0)&&(i[1].max=d),(p==="0"||i[2].max==="0"||(0,q6.versionCompare)(i[2].max,p)<0)&&(i[2].max=p)}}),i};i1.getFirmwareRange=m_t});var xbe=x(TU=>{"use strict";Object.defineProperty(TU,"__esModule",{value:!0});var g_t=Tt(),y_t=ut(),SU=rr(),EU=class extends g_t.AbstractMethod{init(){this.requiredPermissions=["management"],this.useDeviceState=!1;let{payload:e}=this;(0,y_t.validateParams)(e,[{name:"flags",type:"number",required:!0}]),this.params={flags:e.flags}}async confirmation(){await this.getPopupPromise().promise;let e=this.createUiPromise(SU.UI.RECEIVE_CONFIRMATION);return this.postMessage((0,SU.createUiMessage)(SU.UI.REQUEST_CONFIRMATION,{view:"device-management",customConfirmButton:{className:"confirm",label:"Proceed"},label:"Do you really want to apply flags?"})),(await e.promise).payload}async run(){return(await this.device.getCommands().typedCall("ApplyFlags","Success",this.params)).message}};TU.default=EU});var Sbe=x(OU=>{"use strict";Object.defineProperty(OU,"__esModule",{value:!0});var v_t=Tt(),AU=rr(),b_t=ut(),PU=class extends v_t.AbstractMethod{init(){this.requiredPermissions=["management"],this.useDeviceState=!1;let{payload:e}=this;(0,b_t.validateParams)(e,[{name:"language",type:"string"},{name:"label",type:"string"},{name:"use_passphrase",type:"boolean"},{name:"homescreen",type:"string"},{name:"passphrase_source",type:"number"},{name:"passphrase_always_on_device",type:"boolean"},{name:"auto_lock_delay_ms",type:"number"},{name:"display_rotation",type:"number"},{name:"safety_checks",type:"string"},{name:"experimental_features",type:"boolean"}]),this.params={language:e.language,label:e.label,use_passphrase:e.use_passphrase,homescreen:e.homescreen,passphrase_always_on_device:e.passphrase_always_on_device,auto_lock_delay_ms:e.auto_lock_delay_ms,display_rotation:e.display_rotation,safety_checks:e.safety_checks,experimental_features:e.experimental_features,_passphrase_source:e.passphrase_source}}async confirmation(){await this.getPopupPromise().promise;let e=this.createUiPromise(AU.UI.RECEIVE_CONFIRMATION);return this.postMessage((0,AU.createUiMessage)(AU.UI.REQUEST_CONFIRMATION,{view:"device-management",customConfirmButton:{className:"confirm",label:"Proceed"},label:"Do you really want to change device settings?"})),(await e.promise).payload}async run(){return(await this.device.getCommands().typedCall("ApplySettings","Success",this.params)).message}};OU.default=PU});var Abe=x(MU=>{"use strict";Object.defineProperty(MU,"__esModule",{value:!0});var __t=Tt(),Ebe=ut(),Tbe=Gt(),w_t=qt(),RU=class extends __t.AbstractMethod{init(){let{payload:e}=this;(0,Ebe.validateParams)(e,[{name:"path",required:!0},{name:"coordinator",type:"string",required:!0},{name:"maxRounds",type:"number",required:!0},{name:"maxCoordinatorFeeRate",type:"number",required:!0},{name:"maxFeePerKvbyte",type:"number",required:!0},{name:"coin",type:"string"},{name:"scriptType",type:"string"},{name:"amountUnit",type:"uint"},{name:"preauthorized",type:"boolean"}]);let r=(0,Tbe.validatePath)(e.path,3),i=e.scriptType||(0,Tbe.getScriptType)(r),n=(0,w_t.getBitcoinNetwork)(e.coin||r);this.firmwareRange=(0,Ebe.getFirmwareRange)(this.name,n,this.firmwareRange),this.preauthorized=e.preauthorized,this.params={coordinator:e.coordinator,max_rounds:e.maxRounds,max_coordinator_fee_rate:e.maxCoordinatorFeeRate,max_fee_per_kvbyte:e.maxFeePerKvbyte,address_n:r,coin_name:n?.name,script_type:i,amount_unit:e.amountUnit}}async run(){let e=this.device.getCommands();return this.preauthorized&&await e.preauthorize(!1)?{message:"Success"}:(await e.typedCall("AuthorizeCoinJoin","Success",this.params)).message}};MU.default=RU});var Pbe=x(NU=>{"use strict";Object.defineProperty(NU,"__esModule",{value:!0});var x_t=Tt(),CU=rr(),IU=class extends x_t.AbstractMethod{init(){this.requiredPermissions=["management"],this.useDeviceState=!1}async confirmation(){await this.getPopupPromise().promise;let e=this.createUiPromise(CU.UI.RECEIVE_CONFIRMATION);return this.postMessage((0,CU.createUiMessage)(CU.UI.REQUEST_CONFIRMATION,{view:"device-management",customConfirmButton:{className:"confirm",label:"Proceed"},label:"Do you want to initiate backup procedure?"})),(await e.promise).payload}async run(){return(await this.device.getCommands().typedCall("BackupDevice","Success")).message}};NU.default=IU});var Obe=x(FU=>{"use strict";Object.defineProperty(FU,"__esModule",{value:!0});var S_t=Tt(),kU=ut(),E_t=qt(),fA=Gt(),T_t=Pt(),n1=rr(),BU=class extends S_t.AbstractMethod{constructor(){super(...arguments),this.progress=0}init(){this.requiredPermissions=["read"],this.firmwareRange=(0,kU.getFirmwareRange)(this.name,(0,E_t.getMiscNetwork)("BNB"),this.firmwareRange),this.hasBundle=!!this.payload.bundle;let e=this.payload.bundle?this.payload:{...this.payload,bundle:[this.payload]};(0,kU.validateParams)(e,[{name:"bundle",type:"array"},{name:"useEventListener",type:"boolean"}]),this.params=e.bundle.map(i=>((0,kU.validateParams)(i,[{name:"path",required:!0},{name:"address",type:"string"},{name:"showOnTrezor",type:"boolean"}]),{address_n:(0,fA.validatePath)(i.path,3),address:i.address,show_display:typeof i.showOnTrezor=="boolean"?i.showOnTrezor:!0}));let r=e.useEventListener&&this.params.length===1&&typeof this.params[0].address=="string"&&this.params[0].show_display;this.confirmed=r,this.useUi=!r,this.params.length===1?this.info=`Export Binance address for account #${(0,fA.fromHardened)(this.params[0].address_n[2])+1}`:this.info="Export multiple Binance addresses"}getButtonRequestData(e){if(e==="ButtonRequest_Address")return{type:"address",serializedPath:(0,fA.getSerializedPath)(this.params[this.progress].address_n),address:this.params[this.progress].address||"not-set"}}async confirmation(){if(this.confirmed)return!0;await this.getPopupPromise().promise;let e=this.createUiPromise(n1.UI.RECEIVE_CONFIRMATION);this.postMessage((0,n1.createUiMessage)(n1.UI.REQUEST_CONFIRMATION,{view:"export-address",label:this.info}));let r=await e.promise;return this.confirmed=r.payload,this.confirmed}async noBackupConfirmation(){await this.getPopupPromise().promise;let e=this.createUiPromise(n1.UI.RECEIVE_CONFIRMATION);return this.postMessage((0,n1.createUiMessage)(n1.UI.REQUEST_CONFIRMATION,{view:"no-backup"})),(await e.promise).payload}async _call({address_n:e,show_display:r}){return(await this.device.getCommands().typedCall("BinanceGetAddress","BinanceAddress",{address_n:e,show_display:r})).message}async run(){let e=[];for(let r=0;r{"use strict";Object.defineProperty(UU,"__esModule",{value:!0});var A_t=Tt(),DU=ut(),P_t=qt(),qU=Gt(),X_=rr(),LU=class extends A_t.AbstractMethod{init(){this.requiredPermissions=["read"],this.firmwareRange=(0,DU.getFirmwareRange)(this.name,(0,P_t.getMiscNetwork)("BNB"),this.firmwareRange),this.info="Export Binance public key",this.hasBundle=!!this.payload.bundle;let e=this.payload.bundle?this.payload:{...this.payload,bundle:[this.payload]};(0,DU.validateParams)(e,[{name:"bundle",type:"array"}]),this.params=e.bundle.map(r=>((0,DU.validateParams)(r,[{name:"path",required:!0},{name:"showOnTrezor",type:"boolean"}]),{address_n:(0,qU.validatePath)(r.path,3),show_display:typeof r.showOnTrezor=="boolean"?r.showOnTrezor:!0}))}async confirmation(){if(this.confirmed)return!0;await this.getPopupPromise().promise;let e=this.createUiPromise(X_.UI.RECEIVE_CONFIRMATION),r;this.params.length>1?r="Export multiple Binance public keys":r=`Export Binance public key for account #${(0,qU.fromHardened)(this.params[0].address_n[2])+1}`,this.postMessage((0,X_.createUiMessage)(X_.UI.REQUEST_CONFIRMATION,{view:"export-address",label:r}));let i=await e.promise;return this.confirmed=i.payload,this.confirmed}async run(){let e=[],r=this.device.getCommands();for(let i=0;i{"use strict";Object.defineProperty(L6,"__esModule",{value:!0});L6.signTx=L6.validate=void 0;var O_t=Pt(),pA=ut(),Mbe=async(t,e,r)=>{let{type:i,...n}=e[r];return r+1>=e.length?(await t(i,"BinanceSignedTx",n)).message:(await t(i,"BinanceTxRequest",n),r++,Mbe(t,e,r))},R_t=t=>{(0,pA.validateParams)(t,[{name:"chain_id",type:"string",required:!0},{name:"account_number",type:"number"},{name:"memo",type:"string"},{name:"sequence",type:"number"},{name:"source",type:"number"},{name:"message",type:"object"}]);let e={chain_id:t.chain_id,account_number:t.account_number||0,memo:t.memo,sequence:t.sequence||0,source:t.source||0,messages:[]},{transfer:r,placeOrder:i,cancelOrder:n}=t;if(r&&((0,pA.validateParams)(r,[{name:"inputs",type:"array",required:!0},{name:"outputs",type:"array",required:!0}]),e.messages.push({...r,type:"BinanceTransferMsg"})),i&&((0,pA.validateParams)(i,[{name:"id",type:"string"},{name:"ordertype",type:"number"},{name:"price",type:"number"},{name:"quantity",type:"number"},{name:"sender",type:"string"},{name:"side",type:"number"}]),e.messages.push({...i,type:"BinanceOrderMsg"})),n&&((0,pA.validateParams)(n,[{name:"refid",type:"string",required:!0},{name:"sender",type:"string",required:!0},{name:"symbol",type:"string",required:!0}]),e.messages.push({...n,type:"BinanceCancelMsg"})),e.messages.length<1)throw O_t.ERRORS.TypedError("Method_InvalidParameter","Transaction does not have any message");return e};L6.validate=R_t;var M_t=async(t,e,r)=>{let{account_number:i,chain_id:n,memo:a,sequence:s,source:o,messages:c}=r,u=c.length;return await t("BinanceSignTx","BinanceTxRequest",{address_n:e,msg_count:u,account_number:i,chain_id:n,memo:a,sequence:s,source:o}),Mbe(t,c,0)};L6.signTx=M_t});var kbe=x(VU=>{"use strict";Object.defineProperty(VU,"__esModule",{value:!0});var C_t=mr(),I_t=Tt(),Ibe=ut(),N_t=qt(),k_t=Gt(),Nbe=C_t.__importStar(Cbe()),jU=class extends I_t.AbstractMethod{init(){this.requiredPermissions=["read","write"],this.firmwareRange=(0,Ibe.getFirmwareRange)(this.name,(0,N_t.getMiscNetwork)("BNB"),this.firmwareRange),this.info="Sign Binance transaction";let{payload:e}=this;(0,Ibe.validateParams)(e,[{name:"path",type:"string",required:!0},{name:"transaction",required:!0}]);let r=(0,k_t.validatePath)(e.path,3),i=Nbe.validate(e.transaction);this.params={path:r,transaction:i}}run(){return Nbe.signTx(this.device.getCommands().typedCall.bind(this.device.getCommands()),this.params.path,this.params.transaction)}};VU.default=jU});var Bbe=x(hA=>{"use strict";Object.defineProperty(hA,"__esModule",{value:!0});hA.Throttler=void 0;var HU=class{constructor(e){this.delay=e,this.timeouts={}}throttle(e,r){let i=this.timeouts[e];i&&clearTimeout(i),this.timeouts[e]=setTimeout(()=>{r(),this.cancel(e)},this.delay)}cancel(e){clearTimeout(this.timeouts[e]),delete this.timeouts[e]}dispose(){Object.keys(this.timeouts).forEach(this.cancel,this)}};hA.Throttler=HU});var Dbe=x(GU=>{"use strict";Object.defineProperty(GU,"__esModule",{value:!0});var B_t=require("events"),Fbe=Cb(),U6=Hu(),pn=ip(),F_t=Bbe(),D_t=t=>{if(typeof t=="function")return t();if(typeof t=="string"&&typeof Worker<"u")return new Worker(t);throw new U6.CustomError("worker_not_found")},q_t=t=>{let e=(0,Fbe.createDeferred)(-1),r=D_t(t.worker);if(typeof r!="object"||typeof r.postMessage!="function")throw new U6.CustomError("worker_invalid");let i=setTimeout(()=>{r.onmessage=null,r.onerror=null,e.reject(new U6.CustomError("worker_timeout"))},t.timeout||3e4);return r.onmessage=n=>{n.data.type===pn.MESSAGES.HANDSHAKE&&(clearTimeout(i),r.postMessage({type:pn.MESSAGES.HANDSHAKE,settings:Object.assign(t,{worker:void 0})}),e.resolve(r))},r.onerror=n=>{clearTimeout(i),r.onmessage=null,r.onerror=null;try{r.terminate()}catch{}let a=n.message?`Worker runtime error: Line ${n.lineno} in ${n.filename}: ${n.message}`:"Worker handshake error";e.reject(new U6.CustomError("worker_runtime",a))},e.promise},zU=class extends B_t.EventEmitter{constructor(e){super(),this.messageId=0,this.deferred=[],this.onMessage=i=>{if(!i.data)return;let{data:n}=i;if(n.id===-1){this.onEvent(n);return}let a=this.deferred.find(s=>s.id===n.id);!a||(n.type===pn.RESPONSES.ERROR?a.reject(new U6.CustomError(n.payload.code,n.payload.message)):a.resolve(n.payload),this.deferred=this.deferred.filter(s=>s!==a))},this.onEvent=i=>{if(i.type===pn.RESPONSES.CONNECTED&&this.emit("connected"),i.type===pn.RESPONSES.DISCONNECTED&&this.emit("disconnected"),i.type===pn.RESPONSES.NOTIFICATION){let n=i.payload;if(n.type==="block")this.throttler.throttle("block",()=>{this.emit(n.type,n.payload)});else if(n.type==="notification"){let a=`${n.payload.descriptor}:${n.payload.tx.txid}`;this.throttler.throttle(a,()=>{this.emit(n.type,n.payload)})}else this.emit(n.type,n.payload)}},this.onError=i=>{let n=i.message?`Worker runtime error: Line ${i.lineno} in ${i.filename}: ${i.message}`:"Worker handshake error",a=new U6.CustomError("worker_runtime",n);this.deferred.forEach(s=>{s.reject(a)}),this.deferred=[]},this.settings=e;let r=typeof e.throttleBlockEvent=="number"?e.throttleBlockEvent:500;this.throttler=new F_t.Throttler(r)}async getWorker(){return this.worker||(this.worker=await q_t(this.settings),this.worker.onmessage=this.onMessage.bind(this),this.worker.onerror=this.onError.bind(this)),this.worker}async sendMessage(e){let r=await this.getWorker(),i=(0,Fbe.createDeferred)(this.messageId);return this.deferred.push(i),r.postMessage(Object.assign({id:this.messageId},e)),this.messageId++,i.promise}connect(){return this.sendMessage({type:pn.MESSAGES.CONNECT})}getInfo(){return this.sendMessage({type:pn.MESSAGES.GET_INFO})}getBlockHash(e){return this.sendMessage({type:pn.MESSAGES.GET_BLOCK_HASH,payload:e})}getBlock(e){return this.sendMessage({type:pn.MESSAGES.GET_BLOCK,payload:e})}getAccountInfo(e){return this.sendMessage({type:pn.MESSAGES.GET_ACCOUNT_INFO,payload:e})}getAccountUtxo(e){return this.sendMessage({type:pn.MESSAGES.GET_ACCOUNT_UTXO,payload:e})}getTransaction(e){return this.sendMessage({type:pn.MESSAGES.GET_TRANSACTION,payload:e})}getAccountBalanceHistory(e){return this.sendMessage({type:pn.MESSAGES.GET_ACCOUNT_BALANCE_HISTORY,payload:e})}getCurrentFiatRates(e){return this.sendMessage({type:pn.MESSAGES.GET_CURRENT_FIAT_RATES,payload:e})}getFiatRatesForTimestamps(e){return this.sendMessage({type:pn.MESSAGES.GET_FIAT_RATES_FOR_TIMESTAMPS,payload:e})}getFiatRatesTickersList(e){return this.sendMessage({type:pn.MESSAGES.GET_FIAT_RATES_TICKERS_LIST,payload:e})}estimateFee(e){return this.sendMessage({type:pn.MESSAGES.ESTIMATE_FEE,payload:e})}subscribe(e){return this.sendMessage({type:pn.MESSAGES.SUBSCRIBE,payload:e})}unsubscribe(e){return this.sendMessage({type:pn.MESSAGES.UNSUBSCRIBE,payload:e})}pushTransaction(e){return this.sendMessage({type:pn.MESSAGES.PUSH_TRANSACTION,payload:e})}async disconnect(){return this.worker?this.sendMessage({type:pn.MESSAGES.DISCONNECT}):!0}dispose(){this.removeAllListeners(),this.throttler.dispose();let{worker:e}=this;e&&(e.terminate(),delete this.worker)}};GU.default=zU});var XU=x(gA=>{"use strict";Object.defineProperty(gA,"__esModule",{value:!0});gA.Blockchain=void 0;var L_t=mr(),U_t=L_t.__importDefault(Dbe()),jl=rr(),P2=Pt(),mA=lU(),j_t=t=>{switch(t){case"blockbook":return mA.BlockbookWorker;case"ripple":return mA.RippleWorker;case"blockfrost":return mA.BlockfrostWorker;case"electrum":return mA.ElectrumWorker;default:return null}},JU=class{constructor(e){this.feeForBlock=[],this.feeTimestamp=0,this.coinInfo=e.coinInfo,this.postMessage=e.postMessage,this.onConnected=e.onConnected,this.onDisconnected=e.onDisconnected;let{blockchainLink:r}=e.coinInfo;if(!r)throw P2.ERRORS.TypedError("Backend_NotSupported");let i=j_t(r.type);if(!i)throw P2.ERRORS.TypedError("Backend_WorkerMissing",`BlockchainLink worker not found ${r.type}`);let n=r.url;this.link=new U_t.default({name:this.coinInfo.shortcut,worker:i,server:n,debug:e.debug,proxy:e.proxy})}onError(e){var r;this.link.dispose(),this.postMessage((0,jl.createBlockchainMessage)(jl.BLOCKCHAIN.ERROR,{coin:this.coinInfo,error:e.message,code:e.code})),(r=this.onDisconnected)===null||r===void 0||r.call(this)}async init(){this.link.on("connected",async()=>{var e;let r=await this.link.getInfo();this.serverInfo=r;let i=this.coinInfo.shortcut==="tXRP"?"XRP":this.coinInfo.shortcut;if(r.shortcut.toLowerCase()!==i.toLowerCase()){this.onError(P2.ERRORS.TypedError("Backend_Invalid"));return}(e=this.onConnected)===null||e===void 0||e.call(this,r.url),this.postMessage((0,jl.createBlockchainMessage)(jl.BLOCKCHAIN.CONNECT,{coin:this.coinInfo,...r}))}),this.link.on("disconnected",()=>{this.onError(P2.ERRORS.TypedError("Backend_Disconnected"))}),this.link.on("error",e=>{this.onError(P2.ERRORS.TypedError("Backend_Error",e.message))});try{await this.link.connect()}catch(e){throw this.onError(P2.ERRORS.TypedError("Backend_Error",e.message)),e}}getTransactions(e){return Promise.all(e.map(r=>this.link.getTransaction(r)))}getCurrentFiatRates(e){return this.link.getCurrentFiatRates(e)}getFiatRatesForTimestamps(e){return this.link.getFiatRatesForTimestamps(e)}getAccountBalanceHistory(e){return this.link.getAccountBalanceHistory(e)}getNetworkInfo(){return this.link.getInfo()}getAccountInfo(e){return this.link.getAccountInfo(e)}getAccountUtxo(e){return this.link.getAccountUtxo(e)}async estimateFee(e){let{blocks:r}=e;if(r){let i=Date.now(),n=i-this.feeTimestamp>20*60*1e3,a=r.filter(()=>typeof this.feeForBlock!="string");!n&&a.length<1;let s=await this.link.estimateFee(e);return r.forEach((o,c)=>{this.feeForBlock[o]=s[c]}),this.feeTimestamp=i,s}return this.link.estimateFee(e)}async subscribe(e){this.link.listenerCount("block")===0&&this.link.on("block",i=>{this.postMessage((0,jl.createBlockchainMessage)(jl.BLOCKCHAIN.BLOCK,{coin:this.coinInfo,...i}))}),this.link.listenerCount("notification")===0&&this.link.on("notification",i=>{this.postMessage((0,jl.createBlockchainMessage)(jl.BLOCKCHAIN.NOTIFICATION,{coin:this.coinInfo,notification:i}))});let r=await this.link.subscribe({type:"block"});return e?this.link.subscribe({type:"accounts",accounts:e}):r}subscribeFiatRates(e){return this.link.listenerCount("fiatRates")===0&&this.link.on("fiatRates",({rates:r})=>{this.postMessage((0,jl.createBlockchainMessage)(jl.BLOCKCHAIN.FIAT_RATES_UPDATE,{coin:this.coinInfo,rates:r}))}),this.link.subscribe({type:"fiatRates"})}async unsubscribe(e){return e?this.link.unsubscribe({type:"accounts",accounts:e}):(this.link.removeAllListeners("block"),this.link.removeAllListeners("fiatRates"),this.link.removeAllListeners("notification"),await this.link.unsubscribe({type:"fiatRates"}),this.link.unsubscribe({type:"block"}))}unsubscribeFiatRates(){return this.link.removeAllListeners("fiatRates"),this.link.unsubscribe({type:"fiatRates"})}pushTransaction(e){return this.link.pushTransaction(e)}disconnect(){this.link.removeAllListeners(),this.link.disconnect(),this.onError(P2.ERRORS.TypedError("Backend_Disconnected"))}};gA.Blockchain=JU});var Lbe=x(yA=>{"use strict";Object.defineProperty(yA,"__esModule",{value:!0});yA.BackendManager=void 0;var qbe=Bf(),V_t=Pt(),H_t=XU(),KU=class{constructor(){this.instances={},this.custom={},this.preferred={}}get(e){var r;return(r=this.instances[e])!==null&&r!==void 0?r:null}remove(e){delete this.instances[e]}async getOrConnect(e,r){let i=this.get(e.shortcut);if(!i){i=new H_t.Blockchain({coinInfo:this.patchCoinInfo(e),postMessage:r,debug:qbe.DataManager.getSettings("debug"),proxy:qbe.DataManager.getSettings("proxy"),onConnected:n=>this.setPreferred(e.shortcut,n),onDisconnected:()=>this.remove(e.shortcut)}),this.instances[e.shortcut]=i;try{await i.init()}catch(n){throw this.remove(e.shortcut),this.removePreferred(e.shortcut),n}}return i}dispose(){Object.values(this.instances).forEach(e=>e.disconnect())}reconnectAll(){let e=Object.values(this.instances).map(r=>[r.coinInfo,r.postMessage]);return Object.values(this.instances).forEach(r=>r.disconnect()),Promise.all(e.map(r=>this.getOrConnect(...r)))}isSupported(e){if(!(this.custom[e.shortcut]||e.blockchainLink))throw V_t.ERRORS.TypedError("Backend_NotSupported")}setCustom(e,r){this.removePreferred(e),this.custom[e]=r}removeCustom(e){this.removePreferred(e),delete this.custom[e]}setPreferred(e,r){this.preferred[e]=r}removePreferred(e){delete this.preferred[e]}patchCoinInfo(e){var r,i;let n=this.custom[e.shortcut],a=this.preferred[e.shortcut],s=a?[a]:(r=n?.url)!==null&&r!==void 0?r:(i=e.blockchainLink)===null||i===void 0?void 0:i.url;return{...e,blockchainLink:{...e.blockchainLink,...n,url:s}}}};yA.BackendManager=KU});var ea=x(ws=>{"use strict";Object.defineProperty(ws,"__esModule",{value:!0});ws.dispose=ws.reconnectAllBackends=ws.initBlockchain=ws.isBackendSupported=ws.setCustomBackend=ws.findBackend=ws.Blockchain=void 0;var z_t=Lbe(),G_t=XU();Object.defineProperty(ws,"Blockchain",{enumerable:!0,get:function(){return G_t.Blockchain}});var O2=new z_t.BackendManager,J_t=t=>O2.get(t);ws.findBackend=J_t;var X_t=(t,e)=>e?.url.length?O2.setCustom(t.shortcut,e):O2.removeCustom(t.shortcut);ws.setCustomBackend=X_t;var K_t=t=>O2.isSupported(t);ws.isBackendSupported=K_t;var W_t=(t,e)=>O2.getOrConnect(t,e);ws.initBlockchain=W_t;var Z_t=()=>O2.reconnectAll();ws.reconnectAllBackends=Z_t;var $_t=()=>O2.dispose();ws.dispose=$_t});var jbe=x(ZU=>{"use strict";Object.defineProperty(ZU,"__esModule",{value:!0});var Q_t=Tt(),Y_t=ut(),e8t=Pt(),Ube=ea(),t8t=qt(),WU=class extends Q_t.AbstractMethod{init(){this.requiredPermissions=[],this.info="",this.useDevice=!1,this.useUi=!1;let{payload:e}=this;(0,Y_t.validateParams)(e,[{name:"coin",type:"string",required:!0}]);let r=(0,t8t.getCoinInfo)(e.coin);if(!r)throw e8t.ERRORS.TypedError("Method_UnknownCoin");(0,Ube.isBackendSupported)(r),this.params={coinInfo:r}}run(){let e=(0,Ube.findBackend)(this.params.coinInfo.shortcut);return e&&e.disconnect(),Promise.resolve({disconnected:!0})}};ZU.default=WU});var bA=x(vA=>{"use strict";Object.defineProperty(vA,"__esModule",{value:!0});vA.FeeLevels=void 0;var r8t=mr(),QU=r8t.__importDefault(Yr()),$U={btc:{high:1,normal:6,economy:36,low:144},bch:{high:1,normal:5,economy:10,low:10},btg:{high:1,normal:5,economy:10,low:10},dgb:{high:1,normal:15,economy:30,low:60}},i8t=(t,e)=>$U[t]&&$U[t][e]?$U[t][e]:-1,n8t=t=>{let e=new QU.default(t);if(!(e.isNaN()||e.lte("0")))return e.div(1e3).integerValue(QU.default.ROUND_HALF_CEIL).toString()},Vbe=(t,e,r)=>{let i=[];for(let n=t+e;n<=t+r;n+=e)i.push(n);return i},a8t=t=>{let e=[];return t.forEach(r=>{typeof r=="string"&&e.indexOf(r)<0&&e.push(r)}),e[e.length-1]},s8t=(t,e)=>{let r=e.length,i=e[t];if(typeof i=="string")return i;let n=e.slice().reverse().find(o=>typeof o=="string");if(!n)return;let a=e.indexOf(n);if(t>=a)return n;let s=t;for(;typeof e[s]!="string"&&s{let r=new QU.default(t),i=e.find(n=>typeof n=="string"&&r.gte(n));return i?e.indexOf(i):-1},YU=class{constructor(e){this.blocks=[],this.coinInfo=e;let r=e.shortcut.toLowerCase();if(e.type==="ethereum"){this.levels=e.defaultFees.map(n=>({...n,blocks:-1}));return}let i=Object.keys(e.defaultFees);this.levels=i.sort((n,a)=>e.defaultFees[a]-e.defaultFees[n]).map(n=>{let a=n.toLowerCase(),s=i8t(r,a);return{label:a,feePerUnit:e.defaultFees[n].toString(),blocks:s}})}async loadMisc(e){try{let[r]=await e.estimateFee({blocks:[1]});this.levels[0]={...this.levels[0],...r,feePerUnit:Math.min(this.coinInfo.maxFee,Math.max(this.coinInfo.minFee,parseInt(r.feePerUnit,10))).toString()}}catch{}return this.levels}async load(e){if(this.coinInfo.type!=="bitcoin")return this.loadMisc(e);let r=Vbe(0,1,10);this.levels.length>1&&(r=this.levels.map(i=>i.blocks).reduce((i,n)=>{if(i.length===0)return i.concat([n]);let a=i[i.length-1],s=n-a,o=s<=30?1:6,c=Vbe(a,o,s);return i.concat(c)},[]));try{if((await e.estimateFee({blocks:r})).forEach((n,a)=>{this.blocks[r[a]]=n8t(n.feePerUnit)}),this.levels.length===1){let n=a8t(this.blocks);typeof n=="string"&&(this.levels[0].blocks=this.blocks.indexOf(n),this.levels[0].feePerUnit=n)}else this.levels.forEach(n=>{let a=s8t(n.blocks,this.blocks);typeof a=="string"&&(n.blocks=this.blocks.indexOf(a),n.feePerUnit=a)})}catch{}return this.levels}updateCustomFee(e){this.levels=this.levels.filter(i=>i.label!=="custom");let r=o8t(e,this.blocks);this.levels.push({label:"custom",feePerUnit:e,blocks:r})}};vA.FeeLevels=YU});var Hbe=x(ij=>{"use strict";Object.defineProperty(ij,"__esModule",{value:!0});var u8t=Tt(),ej=ut(),c8t=Pt(),d8t=bA(),tj=ea(),l8t=qt(),rj=class extends u8t.AbstractMethod{init(){this.useDevice=!1,this.useUi=!1;let{payload:e}=this;(0,ej.validateParams)(e,[{name:"coin",type:"string",required:!0},{name:"request",type:"object"}]);let{request:r}=e;r&&((0,ej.validateParams)(r,[{name:"blocks",type:"array"},{name:"specific",type:"object"},{name:"feeLevels",type:"string"}]),r.specific&&(0,ej.validateParams)(r.specific,[{name:"conservative",type:"boolean"},{name:"data",type:"string"},{name:"from",type:"string"},{name:"to",type:"string"},{name:"txsize",type:"number"}]));let i=(0,l8t.getCoinInfo)(e.coin);if(!i)throw c8t.ERRORS.TypedError("Method_UnknownCoin");(0,tj.isBackendSupported)(i),this.params={coinInfo:i,request:r}}async run(){let{coinInfo:e,request:r}=this.params,i={blockTime:e.blocktime,minFee:e.minFee,maxFee:e.maxFee,dustLimit:e.type==="bitcoin"?e.dustLimit:void 0,levels:[]};if(r&&r.feeLevels){let n=new d8t.FeeLevels(e);if(r.feeLevels==="smart"&&e.shortcut!=="DOGE"){let a=await(0,tj.initBlockchain)(e,this.postMessage);await n.load(a)}i.levels=n.levels}else{let n=await(0,tj.initBlockchain)(e,this.postMessage);i.levels=await n.estimateFee(r||{})}return i}};ij.default=rj});var Gbe=x(aj=>{"use strict";Object.defineProperty(aj,"__esModule",{value:!0});var f8t=Tt(),p8t=ut(),h8t=Pt(),zbe=ea(),m8t=qt(),nj=class extends f8t.AbstractMethod{init(){this.useDevice=!1,this.useUi=!1;let{payload:e}=this;(0,p8t.validateParams)(e,[{name:"coin",type:"string",required:!0},{name:"descriptor",type:"string",required:!0},{name:"from",type:"number"},{name:"to",type:"number"},{name:"groupBy",type:"number"}]);let r=(0,m8t.getCoinInfo)(e.coin);if(!r)throw h8t.ERRORS.TypedError("Method_UnknownCoin");(0,zbe.isBackendSupported)(r),this.params={coinInfo:r,request:{descriptor:e.descriptor,from:e.from,to:e.to,groupBy:e.groupBy}}}async run(){return(await(0,zbe.initBlockchain)(this.params.coinInfo,this.postMessage)).getAccountBalanceHistory(this.params.request)}};aj.default=nj});var Xbe=x(oj=>{"use strict";Object.defineProperty(oj,"__esModule",{value:!0});var g8t=Tt(),y8t=ut(),v8t=Pt(),Jbe=ea(),b8t=qt(),sj=class extends g8t.AbstractMethod{init(){this.useDevice=!1,this.useUi=!1;let{payload:e}=this;(0,y8t.validateParams)(e,[{name:"currencies",type:"array",required:!1},{name:"coin",type:"string",required:!0}]);let r=(0,b8t.getCoinInfo)(e.coin);if(!r)throw v8t.ERRORS.TypedError("Method_UnknownCoin");(0,Jbe.isBackendSupported)(r),this.params={currencies:e.currencies,coinInfo:r}}async run(){return(await(0,Jbe.initBlockchain)(this.params.coinInfo,this.postMessage)).getCurrentFiatRates({currencies:this.params.currencies})}};oj.default=sj});var Wbe=x(cj=>{"use strict";Object.defineProperty(cj,"__esModule",{value:!0});var _8t=Tt(),w8t=ut(),x8t=Pt(),Kbe=ea(),S8t=qt(),uj=class extends _8t.AbstractMethod{init(){this.useDevice=!1,this.useUi=!1;let{payload:e}=this;(0,w8t.validateParams)(e,[{name:"timestamps",type:"array",required:!0},{name:"coin",type:"string",required:!0}]);let r=(0,S8t.getCoinInfo)(e.coin);if(!r)throw x8t.ERRORS.TypedError("Method_UnknownCoin");(0,Kbe.isBackendSupported)(r),this.params={timestamps:e.timestamps,coinInfo:r}}async run(){return(await(0,Kbe.initBlockchain)(this.params.coinInfo,this.postMessage)).getFiatRatesForTimestamps({timestamps:this.params.timestamps})}};cj.default=uj});var $be=x(lj=>{"use strict";Object.defineProperty(lj,"__esModule",{value:!0});var E8t=Tt(),T8t=ut(),A8t=Pt(),Zbe=ea(),P8t=qt(),dj=class extends E8t.AbstractMethod{init(){this.useDevice=!1,this.useUi=!1;let{payload:e}=this;(0,T8t.validateParams)(e,[{name:"txs",type:"array",required:!0},{name:"coin",type:"string",required:!0}]);let r=(0,P8t.getCoinInfo)(e.coin);if(!r)throw A8t.ERRORS.TypedError("Method_UnknownCoin");(0,Zbe.isBackendSupported)(r),this.params={txs:e.txs,coinInfo:r}}async run(){return(await(0,Zbe.initBlockchain)(this.params.coinInfo,this.postMessage)).getTransactions(this.params.txs)}};lj.default=dj});var Qbe=x(hj=>{"use strict";Object.defineProperty(hj,"__esModule",{value:!0});var O8t=Tt(),R8t=ut(),M8t=Pt(),fj=ea(),C8t=qt(),pj=class extends O8t.AbstractMethod{init(){this.requiredPermissions=[],this.info="",this.useDevice=!1,this.useUi=!1;let{payload:e}=this;(0,R8t.validateParams)(e,[{name:"coin",type:"string",required:!0},{name:"blockchainLink",type:"object"}]);let r=(0,C8t.getCoinInfo)(e.coin);if(!r)throw M8t.ERRORS.TypedError("Method_UnknownCoin");(0,fj.setCustomBackend)(r,e.blockchainLink),this.params={coinInfo:r}}async run(){let e=(0,fj.findBackend)(this.params.coinInfo.shortcut);return e&&(e.disconnect(),await(0,fj.initBlockchain)(this.params.coinInfo,this.postMessage)),!0}};hj.default=pj});var t3e=x(gj=>{"use strict";Object.defineProperty(gj,"__esModule",{value:!0});var I8t=Tt(),Ybe=ut(),N8t=Pt(),e3e=ea(),k8t=qt(),mj=class extends I8t.AbstractMethod{init(){this.useDevice=!1,this.useUi=!1;let{payload:e}=this;(0,Ybe.validateParams)(e,[{name:"accounts",type:"array",allowEmpty:!0},{name:"coin",type:"string",required:!0}]),e.accounts&&e.accounts.forEach(i=>{(0,Ybe.validateParams)(i,[{name:"descriptor",type:"string",required:!0}])});let r=(0,k8t.getCoinInfo)(e.coin);if(!r)throw N8t.ERRORS.TypedError("Method_UnknownCoin");(0,e3e.isBackendSupported)(r),this.params={accounts:e.accounts,coinInfo:r}}async run(){return(await(0,e3e.initBlockchain)(this.params.coinInfo,this.postMessage)).subscribe(this.params.accounts)}};gj.default=mj});var i3e=x(vj=>{"use strict";Object.defineProperty(vj,"__esModule",{value:!0});var B8t=Tt(),F8t=ut(),D8t=Pt(),r3e=ea(),q8t=qt(),yj=class extends B8t.AbstractMethod{init(){this.useDevice=!1,this.useUi=!1;let{payload:e}=this;(0,F8t.validateParams)(e,[{name:"currency",type:"string",required:!1},{name:"coin",type:"string",required:!0}]);let r=(0,q8t.getCoinInfo)(e.coin);if(!r)throw D8t.ERRORS.TypedError("Method_UnknownCoin");(0,r3e.isBackendSupported)(r),this.params={currency:e.currency,coinInfo:r}}async run(){return(await(0,r3e.initBlockchain)(this.params.coinInfo,this.postMessage)).subscribeFiatRates(this.params.currency)}};vj.default=yj});var s3e=x(_j=>{"use strict";Object.defineProperty(_j,"__esModule",{value:!0});var L8t=Tt(),n3e=ut(),U8t=Pt(),a3e=ea(),j8t=qt(),bj=class extends L8t.AbstractMethod{init(){this.useDevice=!1,this.useUi=!1;let{payload:e}=this;(0,n3e.validateParams)(e,[{name:"accounts",type:"array",allowEmpty:!0},{name:"coin",type:"string",required:!0}]),e.accounts&&e.accounts.forEach(i=>{(0,n3e.validateParams)(i,[{name:"descriptor",type:"string",required:!0}])});let r=(0,j8t.getCoinInfo)(e.coin);if(!r)throw U8t.ERRORS.TypedError("Method_UnknownCoin");(0,a3e.isBackendSupported)(r),this.params={accounts:e.accounts,coinInfo:r}}async run(){return(await(0,a3e.initBlockchain)(this.params.coinInfo,this.postMessage)).unsubscribe(this.params.accounts)}};_j.default=bj});var u3e=x(xj=>{"use strict";Object.defineProperty(xj,"__esModule",{value:!0});var V8t=Tt(),H8t=ut(),z8t=Pt(),o3e=ea(),G8t=qt(),wj=class extends V8t.AbstractMethod{init(){this.useDevice=!1,this.useUi=!1;let{payload:e}=this;(0,H8t.validateParams)(e,[{name:"coin",type:"string",required:!0}]);let r=(0,G8t.getCoinInfo)(e.coin);if(!r)throw z8t.ERRORS.TypedError("Method_UnknownCoin");(0,o3e.isBackendSupported)(r),this.params={coinInfo:r}}async run(){return(await(0,o3e.initBlockchain)(this.params.coinInfo,this.postMessage)).unsubscribeFiatRates()}};xj.default=wj});var wA=x(Vl=>{"use strict";Object.defineProperty(Vl,"__esModule",{value:!0});Vl.addressParametersFromProto=Vl.addressParametersToProto=Vl.modifyAddressParametersForBackwardsCompatibility=Vl.validateAddressParameters=void 0;var c3e=ut(),_A=Gt(),d3e=Pt(),J8t=t=>{(0,c3e.validateParams)(t,[{name:"addressType",type:"number",required:!0},{name:"stakingKeyHash",type:"string"},{name:"paymentScriptHash",type:"string"},{name:"stakingScriptHash",type:"string"}]),t.path&&(0,_A.validatePath)(t.path),t.stakingPath&&(0,_A.validatePath)(t.stakingPath),t.certificatePointer&&(0,c3e.validateParams)(t.certificatePointer,[{name:"blockIndex",type:"number",required:!0},{name:"txIndex",type:"number",required:!0},{name:"certificateIndex",type:"number",required:!0}])};Vl.validateAddressParameters=J8t;var X8t=(t,e)=>{if(e.address_type===d3e.PROTO.CardanoAddressType.REWARD){let{address_n:r,address_n_staking:i}=e;if(r.length>0&&i.length>0)throw d3e.ERRORS.TypedError("Method_InvalidParameter","Only stakingPath is allowed for CardanoAddressType.REWARD");return t.atLeast(["0","2.4.3"])?r.length>0&&(i=r,r=[]):i.length>0&&(r=i,i=[]),{...e,address_n:r,address_n_staking:i}}return e};Vl.modifyAddressParametersForBackwardsCompatibility=X8t;var K8t=t=>{let e=[];t.path&&(e=(0,_A.validatePath)(t.path,3));let r=[];t.stakingPath&&(r=(0,_A.validatePath)(t.stakingPath,3));let i;return t.certificatePointer&&(i={block_index:t.certificatePointer.blockIndex,tx_index:t.certificatePointer.txIndex,certificate_index:t.certificatePointer.certificateIndex}),{address_type:t.addressType,address_n:e,address_n_staking:r,staking_key_hash:t.stakingKeyHash,certificate_pointer:i,script_payment_hash:t.paymentScriptHash,script_staking_hash:t.stakingScriptHash}};Vl.addressParametersToProto=K8t;var W8t=t=>{let e;return t.certificate_pointer&&(e={blockIndex:t.certificate_pointer.block_index,txIndex:t.certificate_pointer.tx_index,certificateIndex:t.certificate_pointer.certificate_index}),{addressType:t.address_type,path:t.address_n,stakingPath:t.address_n_staking,stakingKeyHash:t.staking_key_hash,certificatePointer:e}};Vl.addressParametersFromProto=W8t});var l3e=x(Tj=>{"use strict";Object.defineProperty(Tj,"__esModule",{value:!0});var Z8t=Tt(),Sj=ut(),$8t=qt(),xA=Gt(),SA=wA(),Jp=Pt(),a1=rr(),Ej=class extends Z8t.AbstractMethod{constructor(){super(...arguments),this.progress=0}init(){this.requiredPermissions=["read"],this.firmwareRange=(0,Sj.getFirmwareRange)(this.name,(0,$8t.getMiscNetwork)("Cardano"),this.firmwareRange),this.hasBundle=!!this.payload.bundle;let e=this.payload.bundle?this.payload:{...this.payload,bundle:[this.payload]};(0,Sj.validateParams)(e,[{name:"bundle",type:"array"},{name:"useEventListener",type:"boolean"}]),this.params=e.bundle.map(i=>((0,Sj.validateParams)(i,[{name:"addressParameters",type:"object",required:!0},{name:"networkId",type:"number",required:!0},{name:"protocolMagic",type:"number",required:!0},{name:"derivationType",type:"number"},{name:"address",type:"string"},{name:"showOnTrezor",type:"boolean"}]),(0,SA.validateAddressParameters)(i.addressParameters),{address_parameters:(0,SA.addressParametersToProto)(i.addressParameters),address:i.address,protocol_magic:i.protocolMagic,network_id:i.networkId,derivation_type:typeof i.derivationType<"u"?i.derivationType:Jp.PROTO.CardanoDerivationType.ICARUS_TREZOR,show_display:typeof i.showOnTrezor=="boolean"?i.showOnTrezor:!0}));let r=e.useEventListener&&this.params.length===1&&typeof this.params[0].address=="string"&&this.params[0].show_display;this.confirmed=r,this.useUi=!r,this.params.length===1?this.info=`Export Cardano address for account #${(0,xA.fromHardened)(this.params[0].address_parameters.address_n[2])+1}`:this.info="Export multiple Cardano addresses"}getButtonRequestData(e){if(e==="ButtonRequest_Address")return{type:"address",serializedPath:(0,xA.getSerializedPath)(this.params[this.progress].address_parameters.address_n),address:this.params[this.progress].address||"not-set"}}async confirmation(){if(this.confirmed)return!0;await this.getPopupPromise().promise;let e=this.createUiPromise(a1.UI.RECEIVE_CONFIRMATION);this.postMessage((0,a1.createUiMessage)(a1.UI.REQUEST_CONFIRMATION,{view:"export-address",label:this.info}));let r=await e.promise;return this.confirmed=r.payload,this.confirmed}async noBackupConfirmation(){await this.getPopupPromise().promise;let e=this.createUiPromise(a1.UI.RECEIVE_CONFIRMATION);return this.postMessage((0,a1.createUiMessage)(a1.UI.REQUEST_CONFIRMATION,{view:"no-backup"})),(await e.promise).payload}async _call({address_parameters:e,protocol_magic:r,network_id:i,derivation_type:n,show_display:a}){return(await this.device.getCommands().typedCall("CardanoGetAddress","CardanoAddress",{address_parameters:e,protocol_magic:r,network_id:i,derivation_type:n,show_display:a})).message}_ensureFirmwareSupportsBatch(e){if([Jp.PROTO.CardanoAddressType.BASE_SCRIPT_KEY,Jp.PROTO.CardanoAddressType.BASE_KEY_SCRIPT,Jp.PROTO.CardanoAddressType.BASE_SCRIPT_SCRIPT,Jp.PROTO.CardanoAddressType.POINTER_SCRIPT,Jp.PROTO.CardanoAddressType.ENTERPRISE_SCRIPT,Jp.PROTO.CardanoAddressType.REWARD_SCRIPT].includes(e.address_parameters.address_type)&&!this.device.atLeast(["0","2.4.3"]))throw Jp.ERRORS.TypedError("Method_InvalidParameter","Address type not supported by device firmware")}async run(){let e=[];for(let r=0;r{"use strict";Object.defineProperty(Oj,"__esModule",{value:!0});var Q8t=Pt(),Y8t=Tt(),Aj=ut(),e5t=qt(),f3e=Gt(),Pj=class extends Y8t.AbstractMethod{init(){this.requiredPermissions=["read"],this.firmwareRange=(0,Aj.getFirmwareRange)(this.name,(0,e5t.getMiscNetwork)("Cardano"),this.firmwareRange),this.info="Get Cardano native script hash";let{payload:e}=this;(0,Aj.validateParams)(e,[{name:"script",type:"object",required:!0},{name:"displayFormat",type:"number",required:!0},{name:"derivationType",type:"number"}]),this.validateScript(e.script),this.params={script:this.scriptToProto(e.script),display_format:e.displayFormat,derivation_type:typeof e.derivationType<"u"?e.derivationType:Q8t.PROTO.CardanoDerivationType.ICARUS_TREZOR}}validateScript(e){(0,Aj.validateParams)(e,[{name:"type",type:"number",required:!0},{name:"scripts",type:"array",allowEmpty:!0},{name:"keyHash",type:"string"},{name:"requiredSignaturesCount",type:"number"},{name:"invalidBefore",type:"uint"},{name:"invalidHereafter",type:"uint"}]),e.keyPath&&(0,f3e.validatePath)(e.keyPath,3),e.scripts&&e.scripts.forEach(r=>{this.validateScript(r)})}scriptToProto(e){let r=[];e.scripts&&(r=e.scripts.map(n=>this.scriptToProto(n)));let i=[];return e.keyPath&&(i=(0,f3e.validatePath)(e.keyPath,3)),{type:e.type,scripts:r,key_hash:e.keyHash,key_path:i,required_signatures_count:e.requiredSignaturesCount,invalid_before:e.invalidBefore,invalid_hereafter:e.invalidHereafter}}async run(){let{message:e}=await this.device.getCommands().typedCall("CardanoGetNativeScriptHash","CardanoNativeScriptHash",{script:this.params.script,display_format:this.params.display_format,derivation_type:this.params.derivation_type});return{scriptHash:e.script_hash}}};Oj.default=Pj});var h3e=x(Ij=>{"use strict";Object.defineProperty(Ij,"__esModule",{value:!0});var t5t=Pt(),r5t=Tt(),Rj=ut(),i5t=qt(),Mj=Gt(),K_=rr(),Cj=class extends r5t.AbstractMethod{init(){this.requiredPermissions=["read"],this.firmwareRange=(0,Rj.getFirmwareRange)(this.name,(0,i5t.getMiscNetwork)("Cardano"),this.firmwareRange),this.info="Export Cardano public key",this.hasBundle=!!this.payload.bundle;let e=this.payload.bundle?this.payload:{...this.payload,bundle:[this.payload]};(0,Rj.validateParams)(e,[{name:"bundle",type:"array"}]),this.params=e.bundle.map(r=>((0,Rj.validateParams)(r,[{name:"path",required:!0},{name:"derivationType",type:"number"},{name:"showOnTrezor",type:"boolean"}]),{address_n:(0,Mj.validatePath)(r.path,3),derivation_type:typeof r.derivationType<"u"?r.derivationType:t5t.PROTO.CardanoDerivationType.ICARUS_TREZOR,show_display:typeof r.showOnTrezor=="boolean"?r.showOnTrezor:!1}))}async confirmation(){if(this.confirmed)return!0;await this.getPopupPromise().promise;let e=this.createUiPromise(K_.UI.RECEIVE_CONFIRMATION),r;this.params.length>1?r="Export multiple Cardano public keys":r=`Export Cardano public key for account #${(0,Mj.fromHardened)(this.params[0].address_n[2])+1}`,this.postMessage((0,K_.createUiMessage)(K_.UI.REQUEST_CONFIRMATION,{view:"export-xpub",label:r}));let i=await e.promise;return this.confirmed=i.payload,this.confirmed}async run(){let e=[],r=this.device.getCommands();for(let i=0;i{"use strict";Object.defineProperty(j6,"__esModule",{value:!0});j6.modifyAuxiliaryDataForBackwardsCompatibility=j6.transformAuxiliaryData=void 0;var Nj=wA(),kj=ut(),n5t=Gt(),a5t=Pt(),m3e=32,s5t=t=>((0,kj.validateParams)(t,[{name:"votingPublicKey",type:"string",required:!0},{name:"weight",type:"uint",required:!0}]),{voting_public_key:t.votingPublicKey,weight:t.weight}),o5t=t=>{(0,kj.validateParams)(t,[{name:"votingPublicKey",type:"string"},{name:"stakingPath",required:!0},{name:"nonce",type:"uint",required:!0},{name:"format",type:"number"},{name:"delegations",type:"array",allowEmpty:!0},{name:"votingPurpose",type:"uint"}]),(0,Nj.validateAddressParameters)(t.rewardAddressParameters);let{delegations:e}=t;if(e&&e.length>m3e)throw a5t.ERRORS.TypedError("Method_InvalidParameter",`At most ${m3e} delegations are allowed in a governance registration`);return{voting_public_key:t.votingPublicKey,staking_path:(0,n5t.validatePath)(t.stakingPath,3),reward_address_parameters:(0,Nj.addressParametersToProto)(t.rewardAddressParameters),nonce:t.nonce,format:t.format,delegations:e?.map(s5t),voting_purpose:t.votingPurpose}},u5t=t=>{(0,kj.validateParams)(t,[{name:"hash",type:"string"}]);let e;return t.governanceRegistrationParameters&&(e=o5t(t.governanceRegistrationParameters)),{hash:t.hash,governance_registration_parameters:e}};j6.transformAuxiliaryData=u5t;var c5t=(t,e)=>{let{governance_registration_parameters:r}=e;return r?(r.reward_address_parameters=(0,Nj.modifyAddressParametersForBackwardsCompatibility)(t,r.reward_address_parameters),{...e,governance_registration_parameters:r}):e};j6.modifyAuxiliaryDataForBackwardsCompatibility=c5t});var y3e=x(EA=>{"use strict";Object.defineProperty(EA,"__esModule",{value:!0});EA.transformCertificate=void 0;var Xp=ut(),Bj=Gt(),Kp=Pt(),d5t=t=>Buffer.from(t.split(".").map(e=>parseInt(e,10))).toString("hex"),l5t=t=>t.split(":").join(""),f5t=t=>{(0,Xp.validateParams)(t,[{name:"numerator",type:"string",required:!0},{name:"denominator",type:"string",required:!0}])},p5t=t=>{(0,Xp.validateParams)(t,[{name:"url",type:"string",required:!0},{name:"hash",type:"string",required:!0}])},h5t=t=>{if((0,Xp.validateParams)(t,[{name:"type",type:"number",required:!0}]),t.type===Kp.PROTO.CardanoPoolRelayType.SINGLE_HOST_IP){let e=[{name:"port",type:"number",required:!0}];if(t.ipv4Address&&e.push({name:"ipv4Address",type:"string",required:!1}),t.ipv6Address&&e.push({name:"ipv6Address",type:"string",required:!1}),(0,Xp.validateParams)(t,e),!t.ipv4Address&&!t.ipv6Address)throw Kp.ERRORS.TypedError("Method_InvalidParameter","Either ipv4Address or ipv6Address must be supplied")}else t.type===Kp.PROTO.CardanoPoolRelayType.SINGLE_HOST_NAME?(0,Xp.validateParams)(t,[{name:"hostName",type:"string",required:!0},{name:"port",type:"number",required:!0}]):t.type===Kp.PROTO.CardanoPoolRelayType.MULTIPLE_HOST_NAME&&(0,Xp.validateParams)(t,[{name:"hostName",type:"string",required:!0}])},m5t=t=>{if(t.forEach(r=>{if(r.stakingKeyHash&&(0,Xp.validateParams)(r,[{name:"stakingKeyHash",type:"string",required:!r.stakingKeyPath}]),r.stakingKeyPath&&(0,Bj.validatePath)(r.stakingKeyPath,5),!r.stakingKeyHash&&!r.stakingKeyPath)throw Kp.ERRORS.TypedError("Method_InvalidParameter","Either stakingKeyHash or stakingKeyPath must be supplied")}),t.filter(r=>!!r.stakingKeyPath).length!==1)throw Kp.ERRORS.TypedError("Method_InvalidParameter","Exactly one pool owner must be given as a path")},g5t=t=>{(0,Xp.validateParams)(t,[{name:"poolId",type:"string",required:!0},{name:"vrfKeyHash",type:"string",required:!0},{name:"pledge",type:"string",required:!0},{name:"cost",type:"string",required:!0},{name:"margin",type:"object",required:!0},{name:"rewardAccount",type:"string",required:!0},{name:"owners",type:"array",required:!0},{name:"relays",type:"array",required:!0,allowEmpty:!0},{name:"metadata",type:"object"}]),f5t(t.margin),m5t(t.owners),t.relays.forEach(h5t),t.metadata&&p5t(t.metadata)},y5t=t=>t?(g5t(t),{poolParameters:{pool_id:t.poolId,vrf_key_hash:t.vrfKeyHash,pledge:t.pledge,cost:t.cost,margin_numerator:t.margin.numerator,margin_denominator:t.margin.denominator,reward_account:t.rewardAccount,metadata:t.metadata,owners_count:t.owners.length,relays_count:t.relays.length},poolOwners:t.owners.map(e=>({staking_key_hash:e.stakingKeyHash,staking_key_path:e.stakingKeyPath?(0,Bj.validatePath)(e.stakingKeyPath,5):void 0})),poolRelays:t.relays.map(e=>({type:e.type,ipv4_address:e.ipv4Address?d5t(e.ipv4Address):void 0,ipv6_address:e.ipv6Address?l5t(e.ipv6Address):void 0,host_name:e.hostName,port:e.port}))}):{poolParameters:void 0,poolOwners:[],poolRelays:[]},v5t=t=>{let e=[{name:"type",type:"number",required:!0}];t.type!==Kp.PROTO.CardanoCertificateType.STAKE_POOL_REGISTRATION&&(e.push({name:"scriptHash",type:"string"}),e.push({name:"keyHash",type:"string"})),t.type===Kp.PROTO.CardanoCertificateType.STAKE_DELEGATION&&e.push({name:"pool",type:"string",required:!0}),t.type===Kp.PROTO.CardanoCertificateType.STAKE_POOL_REGISTRATION&&e.push({name:"poolParameters",type:"object",required:!0}),(0,Xp.validateParams)(t,e);let{poolParameters:r,poolOwners:i,poolRelays:n}=y5t(t.poolParameters);return{certificate:{type:t.type,path:t.path?(0,Bj.validatePath)(t.path,5):void 0,script_hash:t.scriptHash,key_hash:t.keyHash,pool:t.pool,pool_parameters:r},poolOwners:i,poolRelays:n}};EA.transformCertificate=v5t});var b3e=x(s1=>{"use strict";Object.defineProperty(s1,"__esModule",{value:!0});s1.transformReferenceInput=s1.transformCollateralInput=s1.transformInput=void 0;var Fj=ut(),v3e=Gt(),b5t=t=>((0,Fj.validateParams)(t,[{name:"prev_hash",type:"string",required:!0},{name:"prev_index",type:"number",required:!0}]),{input:{prev_hash:t.prev_hash,prev_index:t.prev_index},path:t.path?(0,v3e.validatePath)(t.path,5):void 0});s1.transformInput=b5t;var _5t=t=>((0,Fj.validateParams)(t,[{name:"prev_hash",type:"string",required:!0},{name:"prev_index",type:"number",required:!0}]),{collateralInput:{prev_hash:t.prev_hash,prev_index:t.prev_index},path:t.path?(0,v3e.validatePath)(t.path,5):void 0});s1.transformCollateralInput=_5t;var w5t=t=>((0,Fj.validateParams)(t,[{name:"prev_hash",type:"string",required:!0},{name:"prev_index",type:"number",required:!0}]),{prev_hash:t.prev_hash,prev_index:t.prev_index});s1.transformReferenceInput=w5t});var Dj=x(TA=>{"use strict";Object.defineProperty(TA,"__esModule",{value:!0});TA.tokenBundleToProto=void 0;var _3e=ut(),x5t=t=>{t.forEach(e=>{(0,_3e.validateParams)(e,[{name:"assetNameBytes",type:"string",required:!0},{name:"amount",type:"uint"},{name:"mintAmount",type:"uint",allowNegative:!0}])})},S5t=t=>{t.forEach(e=>{(0,_3e.validateParams)(e,[{name:"policyId",type:"string",required:!0},{name:"tokenAmounts",type:"array",required:!0}]),x5t(e.tokenAmounts)})},E5t=t=>t.map(e=>({asset_name_bytes:e.assetNameBytes,amount:e.amount,mint_amount:e.mintAmount})),T5t=t=>(S5t(t),t.map(e=>({policyId:e.policyId,tokens:E5t(e.tokenAmounts)})));TA.tokenBundleToProto=T5t});var w3e=x(V6=>{"use strict";Object.defineProperty(V6,"__esModule",{value:!0});V6.sendChunkedHexString=V6.hexStringByteLength=void 0;var A5t=t=>t.length/2;V6.hexStringByteLength=A5t;var P5t=async(t,e,r,i)=>{let n=0;for(;n{"use strict";Object.defineProperty(H6,"__esModule",{value:!0});H6.sendOutput=H6.transformOutput=void 0;var O5t=ut(),x3e=wA(),R5t=Dj(),AA=w3e(),M5t=t=>{(0,O5t.validateParams)(t,[{name:"address",type:"string"},{name:"amount",type:"uint",required:!0},{name:"tokenBundle",type:"array",allowEmpty:!0},{name:"datumHash",type:"string"},{name:"format",type:"number"},{name:"inlineDatum",type:"string"},{name:"referenceScript",type:"string"}]);let e={output:{amount:t.amount,asset_groups_count:0,datum_hash:t.datumHash,format:t.format,inline_datum_size:t.inlineDatum?(0,AA.hexStringByteLength)(t.inlineDatum):void 0,reference_script_size:t.referenceScript?(0,AA.hexStringByteLength)(t.referenceScript):void 0},inlineDatum:t.inlineDatum,referenceScript:t.referenceScript};return t.addressParameters?((0,x3e.validateAddressParameters)(t.addressParameters),e.output.address_parameters=(0,x3e.addressParametersToProto)(t.addressParameters)):e.output.address=t.address,t.tokenBundle?(e.tokenBundle=(0,R5t.tokenBundleToProto)(t.tokenBundle),e.output.asset_groups_count=e.tokenBundle.length):e.output.asset_groups_count=0,e};H6.transformOutput=M5t;var C5t=async(t,e)=>{let{output:i,tokenBundle:n,inlineDatum:a,referenceScript:s}=e;if(await t("CardanoTxOutput","CardanoTxItemAck",i),n)for(let o of n){await t("CardanoAssetGroup","CardanoTxItemAck",{policy_id:o.policyId,tokens_count:o.tokens.length});for(let c of o.tokens)await t("CardanoToken","CardanoTxItemAck",c)}a&&await(0,AA.sendChunkedHexString)(t,a,2048,"CardanoTxInlineDatumChunk"),s&&await(0,AA.sendChunkedHexString)(t,s,2048,"CardanoTxReferenceScriptChunk")};H6.sendOutput=C5t});var E3e=x(OA=>{"use strict";Object.defineProperty(OA,"__esModule",{value:!0});OA.gatherWitnessPaths=void 0;var PA=Pt(),I5t=(t,e,r,i,n,a,s)=>{let o=new Map;function c(u){let f=JSON.stringify(u);o.set(f,u)}return s!==PA.PROTO.CardanoTxSigningMode.MULTISIG_TRANSACTION&&(t.forEach(({path:u})=>{u&&c(u)}),e.forEach(({certificate:u,poolOwners:f})=>{u.path&&(u.type===PA.PROTO.CardanoCertificateType.STAKE_DELEGATION||u.type===PA.PROTO.CardanoCertificateType.STAKE_DEREGISTRATION)&&c(u.path),f.forEach(d=>{d.staking_key_path&&c(d.staking_key_path)})}),r.forEach(({path:u})=>{u&&c(u)})),s===PA.PROTO.CardanoTxSigningMode.PLUTUS_TRANSACTION&&i.forEach(({path:u})=>{u&&c(u)}),n.forEach(({key_path:u})=>{u&&c(u)}),a.forEach(u=>{c(u)}),Array.from(o.values())};OA.gatherWitnessPaths=I5t});var A3e=x(jj=>{"use strict";Object.defineProperty(jj,"__esModule",{value:!0});var N5t=Tt(),RA=ut(),k5t=qt(),qj=Gt(),T3e=g3e(),B5t=y3e(),Lj=b3e(),MA=S3e(),$u=Pt(),F5t=E3e(),D5t=Dj(),q5t=Object.freeze({TransactionStreaming:["0","2.4.2"],TokenMinting:["0","2.4.3"],Multisig:["0","2.4.3"],NetworkIdInTxBody:["0","2.4.4"],OutputDatumHash:["0","2.4.4"],ScriptDataHash:["0","2.4.4"],Plutus:["0","2.4.4"],KeyHashStakeCredential:["0","2.4.4"],Babbage:["0","2.5.2"],GovernanceRegistrationCIP36:["0","2.5.3"]}),Uj=class extends N5t.AbstractMethod{init(){this.requiredPermissions=["read","write"],this.firmwareRange=(0,RA.getFirmwareRange)(this.name,(0,k5t.getMiscNetwork)("Cardano"),this.firmwareRange),this.info="Sign Cardano transaction";let{payload:e}=this;if(e.metadata)throw $u.ERRORS.TypedError("Method_InvalidParameter","Metadata field has been replaced by auxiliaryData.");if(e.auxiliaryData&&e.auxiliaryData.blob)throw $u.ERRORS.TypedError("Method_InvalidParameter","Auxiliary data can now only be sent as a hash.");e.auxiliaryData&&e.auxiliaryData.catalystRegistrationParameters&&(console.warn("Please use governanceRegistrationParameters instead of catalystRegistrationParameters."),e.auxiliaryData.governanceRegistrationParameters=e.auxiliaryData.catalystRegistrationParameters),(0,RA.validateParams)(e,[{name:"signingMode",type:"number",required:!0},{name:"inputs",type:"array",required:!0},{name:"outputs",type:"array",required:!0,allowEmpty:!0},{name:"fee",type:"uint",required:!0},{name:"ttl",type:"uint"},{name:"certificates",type:"array",allowEmpty:!0},{name:"withdrawals",type:"array",allowEmpty:!0},{name:"mint",type:"array",allowEmpty:!0},{name:"validityIntervalStart",type:"uint"},{name:"scriptDataHash",type:"string"},{name:"collateralInputs",type:"array",allowEmpty:!0},{name:"requiredSigners",type:"array",allowEmpty:!0},{name:"totalCollateral",type:"uint"},{name:"referenceInputs",type:"array",allowEmpty:!0},{name:"protocolMagic",type:"number",required:!0},{name:"networkId",type:"number",required:!0},{name:"additionalWitnessRequests",type:"array",allowEmpty:!0},{name:"derivationType",type:"number"},{name:"includeNetworkId",type:"boolean"}]);let r=e.inputs.map(Lj.transformInput),i=e.outputs.map(MA.transformOutput),n=[];e.certificates&&(n=e.certificates.map(B5t.transformCertificate));let a=[];e.withdrawals&&(a=e.withdrawals.map(b=>((0,RA.validateParams)(b,[{name:"amount",type:"uint",required:!0},{name:"scriptHash",type:"string"},{name:"keyHash",type:"string"}]),{path:b.path?(0,qj.validatePath)(b.path,5):void 0,amount:b.amount,script_hash:b.scriptHash,key_hash:b.keyHash})));let s=[];e.mint&&(s=(0,D5t.tokenBundleToProto)(e.mint));let o;e.auxiliaryData&&(o=(0,T3e.transformAuxiliaryData)(e.auxiliaryData));let c=[];e.additionalWitnessRequests&&(c=e.additionalWitnessRequests.map(b=>(0,qj.validatePath)(b,3)));let u=[];e.collateralInputs&&(u=e.collateralInputs.map(Lj.transformCollateralInput));let f=[];e.requiredSigners&&(f=e.requiredSigners.map(b=>((0,RA.validateParams)(b,[{name:"keyHash",type:"string"}]),{key_path:b.keyPath?(0,qj.validatePath)(b.keyPath,3):void 0,key_hash:b.keyHash})));let d=e.collateralReturn?(0,MA.transformOutput)(e.collateralReturn):void 0,p=[];e.referenceInputs&&(p=e.referenceInputs.map(Lj.transformReferenceInput)),this.params={signingMode:e.signingMode,inputsWithPath:r,outputsWithData:i,fee:e.fee,ttl:e.ttl,certificatesWithPoolOwnersAndRelays:n,withdrawals:a,mint:s,auxiliaryData:o,validityIntervalStart:e.validityIntervalStart,scriptDataHash:e.scriptDataHash,collateralInputsWithPath:u,requiredSigners:f,collateralReturnWithData:d,totalCollateral:e.totalCollateral,referenceInputs:p,protocolMagic:e.protocolMagic,networkId:e.networkId,witnessPaths:(0,F5t.gatherWitnessPaths)(r,n,a,u,f,c,e.signingMode),additionalWitnessRequests:c,derivationType:typeof e.derivationType<"u"?e.derivationType:$u.PROTO.CardanoDerivationType.ICARUS_TREZOR,includeNetworkId:e.includeNetworkId}}_isFeatureSupported(e){return this.device.atLeast(q5t[e])}_ensureFeatureIsSupported(e){if(!this._isFeatureSupported(e))throw $u.ERRORS.TypedError("Method_InvalidParameter",`Feature ${e} not supported by device firmware`)}_ensureFirmwareSupportsParams(){var e;let{params:r}=this;if(this._ensureFeatureIsSupported("TransactionStreaming"),r.certificatesWithPoolOwnersAndRelays.forEach(({certificate:i})=>{i.key_hash&&this._ensureFeatureIsSupported("KeyHashStakeCredential")}),r.outputsWithData.forEach(({output:i})=>{i.datum_hash&&this._ensureFeatureIsSupported("OutputDatumHash")}),r.withdrawals.forEach(i=>{i.key_hash&&this._ensureFeatureIsSupported("KeyHashStakeCredential")}),r.mint.length>0&&this._ensureFeatureIsSupported("TokenMinting"),(r.additionalWitnessRequests.length>0||r.signingMode===$u.PROTO.CardanoTxSigningMode.MULTISIG_TRANSACTION)&&this._ensureFeatureIsSupported("Multisig"),r.includeNetworkId&&this._ensureFeatureIsSupported("NetworkIdInTxBody"),r.scriptDataHash&&this._ensureFeatureIsSupported("ScriptDataHash"),r.signingMode===$u.PROTO.CardanoTxSigningMode.PLUTUS_TRANSACTION&&this._ensureFeatureIsSupported("Plutus"),r.outputsWithData.forEach(({output:i,inlineDatum:n,referenceScript:a})=>{(i.format===$u.PROTO.CardanoTxOutputSerializationFormat.MAP_BABBAGE||n||a)&&this._ensureFeatureIsSupported("Babbage")}),(r.collateralReturnWithData||r.totalCollateral!=null||r.referenceInputs.length>0)&&this._ensureFeatureIsSupported("Babbage"),r.requiredSigners.length>0&&r.signingMode!==$u.PROTO.CardanoTxSigningMode.PLUTUS_TRANSACTION&&this._ensureFeatureIsSupported("Babbage"),!((e=r.auxiliaryData)===null||e===void 0)&&e.governance_registration_parameters){let{format:i,delegations:n,voting_purpose:a}=r.auxiliaryData.governance_registration_parameters;(i===$u.PROTO.CardanoGovernanceRegistrationFormat.CIP36||n?.length||a!=null)&&this._ensureFeatureIsSupported("GovernanceRegistrationCIP36")}}async _sign_tx(){let e=this.device.getCommands().typedCall.bind(this.device.getCommands()),r=!!this.params.auxiliaryData,i={signing_mode:this.params.signingMode,protocol_magic:this.params.protocolMagic,network_id:this.params.networkId,inputs_count:this.params.inputsWithPath.length,outputs_count:this.params.outputsWithData.length,fee:this.params.fee,ttl:this.params.ttl,certificates_count:this.params.certificatesWithPoolOwnersAndRelays.length,withdrawals_count:this.params.withdrawals.length,has_auxiliary_data:r,validity_interval_start:this.params.validityIntervalStart,witness_requests_count:this.params.witnessPaths.length,minting_asset_groups_count:this.params.mint.length,script_data_hash:this.params.scriptDataHash,collateral_inputs_count:this.params.collateralInputsWithPath.length,required_signers_count:this.params.requiredSigners.length,has_collateral_return:this.params.collateralReturnWithData!=null,total_collateral:this.params.totalCollateral,reference_inputs_count:this.params.referenceInputs.length,derivation_type:this.params.derivationType,include_network_id:this.params.includeNetworkId};await e("CardanoSignTxInit","CardanoTxItemAck",i);for(let{input:o}of this.params.inputsWithPath)await e("CardanoTxInput","CardanoTxItemAck",o);for(let o of this.params.outputsWithData)await(0,MA.sendOutput)(e,o);for(let{certificate:o,poolOwners:c,poolRelays:u}of this.params.certificatesWithPoolOwnersAndRelays){await e("CardanoTxCertificate","CardanoTxItemAck",o);for(let f of c)await e("CardanoPoolOwner","CardanoTxItemAck",f);for(let f of u)await e("CardanoPoolRelayParameters","CardanoTxItemAck",f)}for(let o of this.params.withdrawals)await e("CardanoTxWithdrawal","CardanoTxItemAck",o);let n;if(this.params.auxiliaryData){let{governance_registration_parameters:o}=this.params.auxiliaryData;o&&(this.params.auxiliaryData=(0,T3e.modifyAuxiliaryDataForBackwardsCompatibility)(this.device,this.params.auxiliaryData));let{message:c}=await e("CardanoTxAuxiliaryData","CardanoTxAuxiliaryDataSupplement",this.params.auxiliaryData),u=$u.PROTO.CardanoTxAuxiliaryDataSupplementType[c.type];u!==$u.PROTO.CardanoTxAuxiliaryDataSupplementType.NONE&&(n={type:u,auxiliaryDataHash:c.auxiliary_data_hash,governanceSignature:c.governance_signature,catalystSignature:c.governance_signature}),await e("CardanoTxHostAck","CardanoTxItemAck")}if(this.params.mint.length>0){await e("CardanoTxMint","CardanoTxItemAck",{asset_groups_count:this.params.mint.length});for(let o of this.params.mint){await e("CardanoAssetGroup","CardanoTxItemAck",{policy_id:o.policyId,tokens_count:o.tokens.length});for(let c of o.tokens)await e("CardanoToken","CardanoTxItemAck",c)}}for(let{collateralInput:o}of this.params.collateralInputsWithPath)await e("CardanoTxCollateralInput","CardanoTxItemAck",o);for(let o of this.params.requiredSigners)await e("CardanoTxRequiredSigner","CardanoTxItemAck",o);this.params.collateralReturnWithData&&await(0,MA.sendOutput)(e,this.params.collateralReturnWithData);for(let o of this.params.referenceInputs)await e("CardanoTxReferenceInput","CardanoTxItemAck",o);let a=[];for(let o of this.params.witnessPaths){let{message:c}=await e("CardanoTxWitnessRequest","CardanoTxWitnessResponse",{path:o});a.push({type:$u.PROTO.CardanoTxWitnessType[c.type],pubKey:c.pub_key,signature:c.signature,chainCode:c.chain_code})}let{message:s}=await e("CardanoTxHostAck","CardanoTxBodyHash");return await e("CardanoTxHostAck","CardanoSignTxFinished"),{hash:s.tx_hash,witnesses:a,auxiliaryDataSupplement:n}}run(){return this._ensureFirmwareSupportsParams(),this._sign_tx()}};jj.default=Uj});var P3e=x(Hj=>{"use strict";Object.defineProperty(Hj,"__esModule",{value:!0});var L5t=Tt(),U5t=ut(),Vj=class extends L5t.AbstractMethod{init(){this.requiredPermissions=["management"],this.useDeviceState=!1;let{payload:e}=this;(0,U5t.validateParams)(e,[{name:"remove",type:"boolean"}]),this.params={remove:e.remove}}async run(){return(await this.device.getCommands().typedCall("ChangePin","Success",this.params)).message}};Hj.default=Vj});var R3e=x(Jj=>{"use strict";Object.defineProperty(Jj,"__esModule",{value:!0});var O3e=rr(),j5t=Tt(),zj=ut(),V5t=Gt(),Gj=class extends j5t.AbstractMethod{init(){this.requiredPermissions=["read","write"],this.firmwareRange=(0,zj.getFirmwareRange)(this.name,null,this.firmwareRange),this.info="Cypher key value",this.useEmptyPassphrase=!0,this.hasBundle=!!this.payload.bundle;let e=this.payload.bundle?this.payload:{...this.payload,bundle:[this.payload]};(0,zj.validateParams)(e,[{name:"bundle",type:"array"}]),this.params=e.bundle.map(r=>((0,zj.validateParams)(r,[{name:"path",required:!0},{name:"key",type:"string"},{name:"value",type:"string"},{name:"encrypt",type:"boolean"},{name:"askOnEncrypt",type:"boolean"},{name:"askOnDecrypt",type:"boolean"},{name:"iv",type:"string"}]),{address_n:(0,V5t.validatePath)(r.path),key:r.key,value:r.value instanceof Buffer?r.value.toString("hex"):r.value,encrypt:r.encrypt,ask_on_encrypt:r.askOnEncrypt,ask_on_decrypt:r.askOnDecrypt,iv:r.iv instanceof Buffer?r.iv.toString("hex"):r.iv}))}async run(){let e=[],r=this.device.getCommands();for(let i=0;i{"use strict";Object.defineProperty(xs,"__esModule",{value:!0});xs.messageToHex=xs.stripHexPrefix=xs.hasHexPrefix=xs.btckb2satoshib=xs.formatTime=xs.formatAmount=void 0;var H5t=mr(),Xj=H5t.__importDefault(Yr()),z5t=(t,e)=>`${new Xj.default(t).div(10**e.decimals).toString(10)} ${e.shortcut}`;xs.formatAmount=z5t;var G5t=t=>{if(!t||t<=0)return"No time estimate";let e=Math.floor(t/60),r=t%60,i="";return e!==0&&(i+=`${e} hour`,e>1&&(i+="s"),i+=" "),r!==0&&(i+=`${r} minutes`),i};xs.formatTime=G5t;var J5t=t=>new Xj.default(t).times(1e5).toFixed(0,Xj.default.ROUND_HALF_UP);xs.btckb2satoshib=J5t;var X5t=t=>t.slice(0,2).toLowerCase()==="0x";xs.hasHexPrefix=X5t;var K5t=t=>(0,xs.hasHexPrefix)(t)?t.slice(2):t;xs.stripHexPrefix=K5t;var W5t=(t,e)=>!(typeof t!="string"||!t.match(/^(0x|0X)?[0-9A-Fa-f]*$/)||e&&t.length!==2+2*e),Z5t=t=>{let e;if(W5t(t)){let r=(0,xs.stripHexPrefix)(t);r.length%2!==0&&(r=`0${r}`),e=Buffer.from(r,"hex")}else e=Buffer.from(t);return e.toString("hex")};xs.messageToHex=Z5t});var Wj=x(CA=>{"use strict";Object.defineProperty(CA,"__esModule",{value:!0});CA.Discovery=void 0;var $5t=mr(),Q5t=$5t.__importDefault(require("events")),Y5t=Pt(),M3e=D3(),e9t=rd(),Kj=class extends Q5t.default{constructor(e){super(),this.types=[],this.accounts=[],this.index=0,this.typeIndex=0,this.interrupted=!1,this.completed=!1,this.blockchain=e.blockchain,this.commands=e.commands,this.coinInfo=e.blockchain.coinInfo,this.derivationType=e.derivationType;let{coinInfo:r}=this;if(r.type==="bitcoin"){let i=(n,a)=>(0,M3e.getAccountAddressN)(r,a,{purpose:n});r.xPubMagicSegwitNative&&this.types.push({type:"p2wpkh",getPath:i.bind(this,84)}),r.xPubMagicSegwit&&this.types.push({type:"p2sh",getPath:i.bind(this,49)}),this.types.push({type:"p2pkh",getPath:i.bind(this,44)})}else this.types.push({type:"p2pkh",getPath:M3e.getAccountAddressN.bind(this,r)})}async start(e){for(this.interrupted=!1;!this.completed&&!this.interrupted;){let i=this.types[this.typeIndex],n=`Account #${this.index+1}`,a=this.index>=10,s=i.getPath(this.index),o=await this.commands.getAccountDescriptor(this.coinInfo,s,this.derivationType);if(!o)throw Y5t.ERRORS.TypedError("Runtime","Discovery: descriptor not found");if(this.interrupted)return;let c={...o,type:i.type,label:n};this.accounts=this.accounts.filter(f=>f.descriptor!==c.descriptor),a||(this.accounts.push(c),this.emit("progress",this.accounts));let u=await this.blockchain.getAccountInfo({descriptor:c.descriptor,details:e});if(this.interrupted)return;if(this.accounts=this.accounts.filter(f=>f.descriptor!==c.descriptor),!a||a&&!u.empty){let f=(0,e9t.formatAmount)(u.availableBalance,this.coinInfo);this.accounts.push({...c,empty:u.empty,balance:f,addresses:u.addresses}),this.emit("progress",this.accounts)}u.empty?this.typeIndex+1{"use strict";Object.defineProperty(IA,"__esModule",{value:!0});IA.enhanceSignTx=void 0;var t9t=ea(),r9t=(t,e)=>{var r;if((e.shortcut==="ZEC"||e.shortcut==="TAZ")&&(typeof t.overwintered!="boolean"&&(t.overwintered=!0),typeof t.version!="number"&&(t.version=5),typeof t.version_group_id!="number"&&(t.version_group_id=648488714),typeof t.branch_id!="number")){let i=(0,t9t.findBackend)(e.shortcut);i&&((r=i.serverInfo)===null||r===void 0?void 0:r.consensusBranchId)?t.branch_id=i.serverInfo.consensusBranchId:t.branch_id=3268858036}return e.shortcut==="KMD"&&(typeof t.overwintered!="boolean"&&(t.overwintered=!0),typeof t.version!="number"&&(t.version=4),typeof t.version_group_id!="number"&&(t.version_group_id=2301567109),typeof t.branch_id!="number"&&(t.branch_id=1991772603)),e.shortcut==="KOTO"&&(typeof t.overwintered!="boolean"&&(t.overwintered=!0),typeof t.version!="number"&&(t.version=4),typeof t.version_group_id!="number"&&(t.version_group_id=2301567109),typeof t.branch_id!="number"&&(t.branch_id=733220448)),(e.shortcut==="PPC"||e.shortcut==="tPPC")&&typeof t.timestamp!="number"&&(t.timestamp=Math.round(new Date().getTime()/1e3)),t};IA.enhanceSignTx=r9t});var N3e=x(o1=>{"use strict";Object.defineProperty(o1,"__esModule",{value:!0});o1.inputToTrezor=o1.enhanceTrezorInputs=o1.validateTrezorInputs=void 0;var i9t=wn(),NA=Gt(),n9t=XS(),I3e=ut(),a9t=(t,e)=>t.map(r=>(0,NA.fixPath)(r)).map(r=>(0,n9t.convertMultisigPubKey)(e.network,r)).map(r=>{let i=r.script_type==="EXTERNAL"||(0,NA.isSegwitPath)(r.address_n);return(0,I3e.validateParams)(r,[{name:"prev_hash",type:"string",required:!0},{name:"prev_index",type:"number",required:!0},{name:"amount",type:"uint",required:i},{name:"script_type",type:"string"},{name:"sequence",type:"number"},{name:"multisig",type:"object"},{name:"coinjoin_flags",type:"number"}]),r.script_type==="EXTERNAL"?(0,I3e.validateParams)(r,[{name:"script_pubkey",type:"string",required:!0},{name:"commitment_data",type:"string"},{name:"ownership_proof",type:"string"},{name:"script_sig",type:"string"},{name:"witness",type:"string"}]):(0,NA.validatePath)(r.address_n),r});o1.validateTrezorInputs=a9t;var s9t=(t,e)=>{t.forEach(r=>{if(!r.amount){console.warn("TrezorConnect.singTransaction deprecation: missing input amount.");let i=e.find(n=>"txid"in n.tx&&n.tx.txid===r.prev_hash);i&&i.type==="blockbook"&&i.tx.vout[r.prev_index]&&(r.amount=i.tx.vout[r.prev_index].value)}})};o1.enhanceTrezorInputs=s9t;var o9t=(t,e)=>{let r=t.path;return{address_n:r,prev_index:t.index,prev_hash:i9t.bufferUtils.reverseBuffer(t.hash).toString("hex"),script_type:(0,NA.getScriptType)(r),amount:t.amount,sequence:e}};o1.inputToTrezor=o9t});var B3e=x(kA=>{"use strict";Object.defineProperty(kA,"__esModule",{value:!0});kA.isValidAddress=void 0;var k3e=Mc(),u9t=(t,e)=>{try{let r=k3e.address.fromBase58Check(t,e);if(r.version!==e.pubKeyHash&&r.version!==e.scriptHash)return!1}catch{return!1}return!0},c9t=(t,e)=>{try{if(k3e.address.fromBech32(t).prefix!==e.bech32)return!1}catch{return!1}return!0},d9t=(t,e)=>u9t(t,e.network)||c9t(t,e.network);kA.isValidAddress=d9t});var D3e=x(u1=>{"use strict";Object.defineProperty(u1,"__esModule",{value:!0});u1.outputToTrezor=u1.validateHDOutput=u1.validateTrezorOutputs=void 0;var Zj=Gt(),F3e=B3e(),l9t=XS(),W_=ut(),z6=Pt(),f9t=(t,e)=>{let r=t.map(i=>(0,Zj.fixPath)(i)).map(i=>(0,l9t.convertMultisigPubKey)(e.network,i));return r.forEach(i=>{if((0,W_.validateParams)(i,[{name:"address_n",type:"array"},{name:"address",type:"string"},{name:"amount",type:"uint"},{name:"op_return_data",type:"string"},{name:"multisig",type:"object"}]),Object.prototype.hasOwnProperty.call(i,"address_n")&&Object.prototype.hasOwnProperty.call(i,"address"))throw z6.ERRORS.TypedError("Method_InvalidParameter","Cannot use address and address_n in one output");if(i.address_n&&!i.script_type&&(i.script_type=(0,Zj.getOutputScriptType)(i.address_n)),"address"in i&&typeof i.address=="string"&&!(0,F3e.isValidAddress)(i.address,e))throw z6.ERRORS.TypedError("Method_InvalidParameter",`Invalid ${e.label} output address ${i.address}`)}),r};u1.validateTrezorOutputs=f9t;var p9t=(t,e)=>{let r=i=>{if(!i||!(0,F3e.isValidAddress)(i,e))throw z6.ERRORS.TypedError("Method_InvalidParameter",`Invalid ${e.label} output address format`)};switch(t.type){case"opreturn":return(0,W_.validateParams)(t,[{name:"dataHex",type:"string"}]),{type:"opreturn",dataHex:t.dataHex||""};case"send-max":return(0,W_.validateParams)(t,[{name:"address",type:"string",required:!0}]),r(t.address),{type:"send-max",address:t.address};case"noaddress":return(0,W_.validateParams)(t,[{name:"amount",type:"uint",required:!0}]),{type:"noaddress",amount:t.amount};case"send-max-noaddress":return{type:"send-max-noaddress"};default:return(0,W_.validateParams)(t,[{name:"amount",type:"uint",required:!0},{name:"address",type:"string",required:!0}]),r(t.address),{type:"complete",address:t.address,amount:t.amount}}};u1.validateHDOutput=p9t;var h9t=(t,e)=>{if(t.opReturnData){if(t.value)throw z6.ERRORS.TypedError("Method_InvalidParameter","opReturn output should not contains value");return{amount:"0",op_return_data:t.opReturnData.toString("hex"),script_type:"PAYTOOPRETURN"}}if(!t.address&&!t.path)throw z6.ERRORS.TypedError("Method_InvalidParameter","Both address and path of an output cannot be null.");if(t.path)return{address_n:t.path,amount:t.value,script_type:(0,Zj.getOutputScriptType)(t.path)};let{address:r,value:i}=t;if(typeof r!="string")throw z6.ERRORS.TypedError("Method_InvalidParameter","Wrong output address type, should be string");return{address:r,amount:i,script_type:"PAYTOADDRESS"}};u1.outputToTrezor=h9t});var U3e=x(Xa=>{"use strict";Object.defineProperty(Xa,"__esModule",{value:!0});Xa.validateReferencedTransactions=Xa.transformReferencedTransactions=Xa.transformOrigTransactions=Xa.getOrigTransactions=Xa.getReferencedTransactions=Xa.requireReferencedTransactions=void 0;var $j=Mc(),q3e=wn(),BA=Gt(),FA=ut(),DA=dy(),m9t=(t,e={},r)=>{if(r?.shortcut==="ZEC"||r?.shortcut==="TAZ")return!(e.version&&e.version>=5);let i=["SPENDTAPROOT","EXTERNAL"];return!!t.find(n=>!i.find(a=>a===n.script_type))};Xa.requireReferencedTransactions=m9t;var g9t=t=>{let e=[];return t.forEach(r=>{r.prev_hash&&!e.includes(r.prev_hash)&&e.push(r.prev_hash)}),e};Xa.getReferencedTransactions=g9t;var y9t=(t,e)=>{let r=[];return t.forEach(i=>{i.orig_hash&&!r.includes(i.orig_hash)&&r.push(i.orig_hash)}),e.forEach(i=>{i.orig_hash&&!r.includes(i.orig_hash)&&r.push(i.orig_hash)}),r};Xa.getOrigTransactions=y9t;var L3e=(t,e)=>{let r=e.getExtraData();r&&(t.extra_data=r.toString("hex"));let i=e.getSpecificData();return i&&(i.type==="zcash"&&i.versionGroupId&&t.version>=3&&(t.version_group_id=i.versionGroupId),i.type==="dash"&&e.type&&e.version>=3&&(t.version|=e.type<<16)),t},v9t=(t,e,r)=>t.flatMap(i=>{if(e.type!=="bitcoin"||i.type!=="blockbook"||!r)return[];let{hex:n,vin:a,vout:s}=i.tx,o=$j.Transaction.fromHex(n,{network:e.network}),c=r.used.concat(r.change).concat(r.unused),u=(p,b)=>{var T;let I=a[b];if(!I?.value||!I?.addresses||I.addresses.length!==1)throw(0,DA.TypedError)("Method_InvalidParameter",`transformOrigTransactions: invalid input at ${i.tx.txid} [${b}]`);let[L]=I.addresses,U=c.find(oe=>oe.address===L),re=(0,BA.getHDPath)(U?.path||"");return{address_n:re,prev_hash:q3e.bufferUtils.reverseBuffer(p.hash).toString("hex"),prev_index:p.index,script_sig:p.script.toString("hex"),sequence:p.sequence,script_type:(0,BA.getScriptType)(re),multisig:void 0,amount:I.value,decred_tree:void 0,witness:(T=o.getWitness(b))===null||T===void 0?void 0:T.toString("hex"),ownership_proof:void 0,commitment_data:void 0}},f=(p,b)=>{var T;let I=s[b];if(!I.isAddress){let{data:ge}=$j.payments.embed({output:p.script}),be=(T=ge?.shift())===null||T===void 0?void 0:T.toString("hex");if(typeof be!="string")throw(0,DA.TypedError)("Method_InvalidParameter",`transformOrigTransactions: invalid op_return_data at ${i.tx.txid} [${b}]`);return{script_type:"PAYTOOPRETURN",amount:"0",op_return_data:be}}if(!I.addresses||I.addresses.length!==1)throw(0,DA.TypedError)("Method_InvalidParameter",`transformOrigTransactions: invalid output at ${i.tx.txid} [${b}]`);let[L]=I.addresses,U=r.change.find(ge=>ge.address===L),re=U&&(0,BA.getHDPath)(U.path),oe=p.value.toString();return re?{address_n:re,amount:oe,script_type:(0,BA.getOutputScriptType)(re)}:{address:L,amount:oe,script_type:"PAYTOADDRESS"}},d={version:o.version,hash:o.getId(),inputs:o.ins.map(u),outputs:o.outs.map(f),lock_time:o.locktime,timestamp:o.timestamp,expiry:o.expiry};return L3e(d,o)});Xa.transformOrigTransactions=v9t;var b9t=(t,e)=>t.flatMap(r=>{if(e.type!=="bitcoin"||r.type!=="blockbook")return[];let{hex:i}=r.tx,n=$j.Transaction.fromHex(i,{network:e.network}),a=c=>({prev_index:c.index,sequence:c.sequence,prev_hash:q3e.bufferUtils.reverseBuffer(c.hash).toString("hex"),script_sig:c.script.toString("hex")}),s=c=>({amount:c.value.toString(),script_pubkey:c.script.toString("hex")}),o={version:n.version,hash:n.getId(),inputs:n.ins.map(a),bin_outputs:n.outs.map(s),lock_time:n.locktime,timestamp:n.timestamp,expiry:n.expiry};return L3e(o,n)});Xa.transformReferencedTransactions=b9t;var _9t=(t,e,r)=>{if(!Array.isArray(t)||t.length===0)return;let i=(0,Xa.requireReferencedTransactions)(e)?(0,Xa.getReferencedTransactions)(e):[],n=(0,Xa.getOrigTransactions)(e,r),a=t.map(s=>((0,FA.validateParams)(s,[{name:"hash",type:"string",required:!0},{name:"inputs",type:"array",required:!0},{name:"version",type:"number",required:!0},{name:"lock_time",type:"number",required:!0},{name:"extra_data",type:"string"},{name:"timestamp",type:"number"},{name:"version_group_id",type:"number"}]),n.includes(s.hash)?((0,FA.validateParams)(s,[{name:"outputs",type:"array",required:!0}]),s):((0,FA.validateParams)(s,[{name:"bin_outputs",type:"array",required:!0}]),s.inputs.forEach(o=>{(0,FA.validateParams)(o,[{name:"prev_hash",type:"string",required:!0},{name:"prev_index",type:"number",required:!0},{name:"script_sig",type:"string",required:!0},{name:"sequence",type:"number",required:!0},{name:"decred_tree",type:"number"}])}),{hash:s.hash,version:s.version,extra_data:s.extra_data,lock_time:s.lock_time,timestamp:s.timestamp,version_group_id:s.version_group_id,expiry:s.expiry,inputs:s.inputs.map(o=>({prev_hash:o.prev_hash,prev_index:o.prev_index,script_sig:o.script_sig,sequence:o.sequence,decred_tree:o.decred_tree})),bin_outputs:s.bin_outputs.map(o=>({amount:o.amount,script_pubkey:o.script_pubkey,decred_script_version:o.decred_script_version}))})));return i.concat(n).forEach(s=>{if(!a.find(o=>o.hash===s))throw(0,DA.TypedError)("Method_InvalidParameter",`refTx: ${s} not provided`)}),a};Xa.validateReferencedTransactions=_9t});var V3e=x(qA=>{"use strict";Object.defineProperty(qA,"__esModule",{value:!0});qA.signTx=void 0;var Bs=Pt(),w9t=({typedCall:t,txRequest:{request_type:e,details:r},refTxs:i})=>{let{tx_hash:n}=r;if(!n)throw Bs.ERRORS.TypedError("Runtime","requestPrevTxInfo: unknown details.tx_hash");let a=i[n.toLowerCase()];if(!a)throw Bs.ERRORS.TypedError("Runtime",`requestPrevTxInfo: Requested unknown tx: ${n}`);if(e==="TXINPUT"){if(!a.bin_outputs)throw Bs.ERRORS.TypedError("Runtime",`requestPrevTxInfo: Requested unknown TXINPUT: ${n}`);return t("TxAckPrevInput","TxRequest",{tx:{input:a.inputs[r.request_index]}})}if(e==="TXOUTPUT"){if(!a.bin_outputs)throw Bs.ERRORS.TypedError("Runtime",`requestPrevTxInfo: Requested unknown TXOUTPUT: ${n}`);return t("TxAckPrevOutput","TxRequest",{tx:{output:a.bin_outputs[r.request_index]}})}if(e==="TXORIGINPUT"){if(!a.outputs)throw Bs.ERRORS.TypedError("Runtime",`requestPrevTxInfo: Requested unknown TXORIGINPUT: ${n}`);return t("TxAckInput","TxRequest",{tx:{input:a.inputs[r.request_index]}})}if(e==="TXORIGOUTPUT"){if(!a.outputs)throw Bs.ERRORS.TypedError("Runtime",`requestPrevTxInfo: Requested unknown TXORIGOUTPUT: ${n}`);return t("TxAckOutput","TxRequest",{tx:{output:a.outputs[r.request_index]}})}if(e==="TXEXTRADATA"){if(typeof r.extra_data_len!="number")throw Bs.ERRORS.TypedError("Runtime","requestPrevTxInfo: Missing extra_data_len");if(typeof r.extra_data_offset!="number")throw Bs.ERRORS.TypedError("Runtime","requestPrevTxInfo: Missing extra_data_offset");if(typeof a.extra_data!="string")throw Bs.ERRORS.TypedError("Runtime",`requestPrevTxInfo: No extra data for transaction ${a.hash}`);let s=a.extra_data,o=r.extra_data_len,c=r.extra_data_offset,u=s.substring(c*2,(c+o)*2);return t("TxAckPrevExtraData","TxRequest",{tx:{extra_data_chunk:u}})}if(e==="TXMETA"){let s=a.extra_data,o={version:a.version,lock_time:a.lock_time,inputs_count:a.inputs.length,outputs_count:a.outputs?a.outputs.length:a.bin_outputs.length,timestamp:a.timestamp,version_group_id:a.version_group_id,expiry:a.expiry,branch_id:a.branch_id,extra_data_len:s?s.length/2:void 0};return t("TxAckPrevMeta","TxRequest",{tx:o})}throw Bs.ERRORS.TypedError("Runtime",`requestPrevTxInfo: Unknown request type: ${e}`)},x9t=({typedCall:t,txRequest:{request_type:e,details:r},inputs:i,outputs:n,paymentRequests:a})=>{if(e==="TXINPUT")return t("TxAckInput","TxRequest",{tx:{input:i[r.request_index]}});if(e==="TXOUTPUT")return t("TxAckOutput","TxRequest",{tx:{output:n[r.request_index]}});if(e==="TXPAYMENTREQ"){let s=a[r.request_index];if(!s)throw Bs.ERRORS.TypedError("Runtime",`requestPrevTxInfo: Requested unknown payment request at ${r.request_index}`);return t("TxAckPaymentRequest","TxRequest",{nonce:s.nonce,recipient_name:s.recipient_name,memos:s.memos,amount:s.amount,signature:s.signature})}throw e==="TXMETA"?Bs.ERRORS.TypedError("Runtime","requestSignedTxInfo: Cannot read TXMETA from signed transaction"):e==="TXEXTRADATA"?Bs.ERRORS.TypedError("Runtime","requestSignedTxInfo: Cannot read TXEXTRADATA from signed transaction"):Bs.ERRORS.TypedError("Runtime",`requestSignedTxInfo: Unknown request type: ${e}`)},S9t=t=>{let{tx_hash:e}=t.txRequest.details;return e?w9t(t):x9t(t)},E9t=(t,e,r)=>{let{signature_index:i,signature:n,serialized_tx:a}=t;if(a&&e.push(a),typeof i=="number"){if(!n)throw Bs.ERRORS.TypedError("Runtime","saveTxSignatures: Unexpected null in trezor:TxRequestSerialized signature.");r[i]=n}},j3e=async t=>{let{txRequest:e,serializedTx:r,signatures:i}=t;if(e.serialized&&E9t(e.serialized,r,i),e.request_type==="TXFINISHED")return Promise.resolve({signatures:i,serializedTx:r.join("")});let{message:n}=await S9t(t);return j3e({...t,txRequest:n})},T9t=async({typedCall:t,inputs:e,outputs:r,paymentRequests:i,refTxs:n,options:a,coinInfo:s})=>{let{message:o}=await t("SignTx","TxRequest",{...a,inputs_count:e.length,outputs_count:r.length,coin_name:s.name});return j3e({typedCall:t,txRequest:o,refTxs:n.reduce((c,u)=>({...c,[u.hash.toLowerCase()]:u}),{}),inputs:e,outputs:r,paymentRequests:i||[],serializedTx:[],signatures:[]})};qA.signTx=T9t});var z3e=x(LA=>{"use strict";Object.defineProperty(LA,"__esModule",{value:!0});LA.signTxLegacy=void 0;var id=Pt(),A9t=({txRequest:{request_type:t,details:e},refTxs:r})=>{let{tx_hash:i}=e;if(!i)throw id.ERRORS.TypedError("Runtime","requestPrevTxInfo: unknown details.tx_hash");let n=r[i.toLowerCase()];if(!n)throw id.ERRORS.TypedError("Runtime",`requestPrevTxInfo: Requested unknown tx: ${i}`);if(!n.bin_outputs)throw id.ERRORS.TypedError("Runtime",`requestPrevTxInfo: bin_outputs not set tx: ${i}`);if(t==="TXINPUT")return{inputs:[n.inputs[e.request_index]]};if(t==="TXOUTPUT")return{bin_outputs:[n.bin_outputs[e.request_index]]};if(t==="TXEXTRADATA"){if(typeof e.extra_data_len!="number")throw id.ERRORS.TypedError("Runtime","requestPrevTxInfo: Missing extra_data_len");if(typeof e.extra_data_offset!="number")throw id.ERRORS.TypedError("Runtime","requestPrevTxInfo: Missing extra_data_offset");if(typeof n.extra_data!="string")throw id.ERRORS.TypedError("Runtime",`requestPrevTxInfo: No extra data for transaction ${n.hash}`);let a=n.extra_data,s=e.extra_data_len,o=e.extra_data_offset;return{extra_data:a.substring(o*2,(o+s)*2)}}if(t==="TXMETA"){let a=n.extra_data,s={version:n.version,lock_time:n.lock_time,inputs_cnt:n.inputs.length,outputs_cnt:n.bin_outputs.length,timestamp:n.timestamp,version_group_id:n.version_group_id,expiry:n.expiry,branch_id:n.branch_id};return typeof a=="string"&&a.length!==0?{...s,extra_data_len:a.length/2}:s}throw id.ERRORS.TypedError("Runtime",`requestPrevTxInfo: Unknown request type: ${t}`)},P9t=({txRequest:{request_type:t,details:e},inputs:r,outputs:i})=>{if(t==="TXINPUT")return{inputs:[r[e.request_index]]};if(t==="TXOUTPUT")return{outputs:[i[e.request_index]]};throw t==="TXMETA"?id.ERRORS.TypedError("Runtime","requestSignedTxInfo: Cannot read TXMETA from signed transaction"):t==="TXEXTRADATA"?id.ERRORS.TypedError("Runtime","requestSignedTxInfo: Cannot read TXEXTRADATA from signed transaction"):id.ERRORS.TypedError("Runtime",`requestSignedTxInfo: Unknown request type: ${t}`)},O9t=t=>{let{tx_hash:e}=t.txRequest.details;return e?A9t(t):P9t(t)},R9t=(t,e,r)=>{if(!t)return;let{signature_index:i,signature:n,serialized_tx:a}=t;if(a&&e.push(a),typeof i=="number"){if(!n)throw id.ERRORS.TypedError("Runtime","saveTxSignatures: Unexpected null in trezor:TxRequestSerialized signature.");r[i]=n}},H3e=async t=>{let{typedCall:e,txRequest:r,serializedTx:i,signatures:n}=t;if(r.serialized&&R9t(r.serialized,i,n),r.request_type==="TXFINISHED")return Promise.resolve({signatures:n,serializedTx:i.join("")});let a=O9t(t),{message:s}=await e("TxAck","TxRequest",{tx:a});return H3e({...t,txRequest:s})},M9t=async({typedCall:t,inputs:e,outputs:r,refTxs:i,options:n,coinInfo:a})=>{let{message:s}=await t("SignTx","TxRequest",{...n,inputs_count:e.length,outputs_count:r.length,coin_name:a.name});return H3e({typedCall:t,txRequest:s,refTxs:i.reduce((o,c)=>({...o,[c.hash.toLowerCase()]:c}),{}),inputs:e,outputs:r,paymentRequests:[],serializedTx:[],signatures:[]})};LA.signTxLegacy=M9t});var J3e=x(G6=>{"use strict";Object.defineProperty(G6,"__esModule",{value:!0});G6.verifyTicketTx=G6.verifyTx=void 0;var Fs=Mc(),go=Pt(),G3e=async(t,e,r,i)=>{if(t.length===5){let a=await e({address_n:t.slice(0,4)},{coinInfo:r,unlockPath:i});return Fs.bip32.fromBase58(a.xpub,r.network).derive(t[t.length-1])}let n=await e({address_n:t},{coinInfo:r,unlockPath:i});return Fs.bip32.fromBase58(n.xpub,r.network)},C9t=async(t,e,r,i)=>{if("multisig"in e)return;if("op_return_data"in e)return Fs.payments.embed({data:[Buffer.from(e.op_return_data,"hex")]}).output;if(e.address)return Fs.address.toOutputScript(e.address,r.network);if(!e.address_n)throw go.ERRORS.TypedError("Runtime","deriveOutputScript: Neither address or address_n is set");let n=await G3e(e.address_n,t,r,i),a={hash:n.identifier,network:r.network};if(e.script_type==="PAYTOADDRESS")return Fs.payments.p2pkh(a).output;if(e.script_type==="PAYTOSCRIPTHASH")return Fs.payments.p2sh(a).output;if(e.script_type==="PAYTOP2SHWITNESS")return Fs.payments.p2sh({redeem:Fs.payments.p2wpkh(a)}).output;if(e.script_type==="PAYTOWITNESS")return Fs.payments.p2wpkh(a).output;if(e.script_type==="PAYTOTAPROOT")return Fs.payments.p2tr({pubkey:n.publicKey,network:r.network}).output;throw e.script_type==="PAYTOMULTISIG"?go.ERRORS.TypedError("Runtime","deriveOutputScript: script_type PAYTOMULTISIG not expected without multisig defined"):go.ERRORS.TypedError("Runtime",`deriveOutputScript: Unknown script type ${e.script_type}`)},I9t=async(t,e,r,i,n,a)=>{let s=Fs.Transaction.fromHex(i,{network:n.network});if(e.length!==s.ins.length)throw go.ERRORS.TypedError("Runtime","verifyTx: Signed transaction inputs invalid length");if(r.length!==s.outs.length)throw go.ERRORS.TypedError("Runtime","verifyTx: Signed transaction outputs invalid length");for(let o=0;o{let a=Fs.Transaction.fromHex(i,{network:n.network});if(e.length!==a.ins.length)throw go.ERRORS.TypedError("Runtime","verifyTicketTx: Signed transaction inputs invalid length");if(r.length!==a.outs.length||r.length!==3)throw go.ERRORS.TypedError("Runtime","verifyTicketTx: Signed transaction outputs invalid length");for(let s=0;s{"use strict";Object.defineProperty(UA,"__esModule",{value:!0});UA.TransactionComposer=void 0;var k9t=mr(),X3e=k9t.__importDefault(Yr()),B9t=Mc(),F9t=bA(),K3e=Gt(),Qj=class{constructor(e){this.blockHeight=0,this.composed={},this.account=e.account,this.outputs=e.outputs,this.coinInfo=e.coinInfo,this.blockHeight=0,this.baseFee=e.baseFee||0,this.skipPermutation=e.skipPermutation||!1,this.feeLevels=new F9t.FeeLevels(e.coinInfo);let{addresses:r}=e.account,i=r?r.used.concat(r.unused).concat(r.change).map(n=>n.address):[];this.utxos=e.utxo.flatMap(n=>{if(!n.required&&new X3e.default(n.amount).lte(this.coinInfo.dustLimit))return[];let a=(0,K3e.getHDPath)(n.path),[s,o]=a.slice(a.length-2);return{index:n.vout,transactionHash:n.txid,value:n.amount,addressPath:[s,o],height:n.blockHeight,tsize:0,vsize:0,coinbase:typeof n.coinbase=="boolean"?n.coinbase:!1,own:i.indexOf(n.address)>=0,required:n.required}})}async init(e){let{blockHeight:r}=await e.getNetworkInfo();this.blockHeight=r,await this.feeLevels.load(e)}composeAllFeeLevels(){let{levels:e}=this.feeLevels;if(this.utxos.length<1)return!1;this.composed={};let r=!1;if(e.forEach(i=>{if(i.feePerUnit!=="0"){let n=this.compose(i.feePerUnit);n.type==="final"&&(r=!0),this.composed[i.label]=n}}),!r){let i=e[e.length-1],n=new X3e.default(i.feePerUnit);for(;n.gt(this.coinInfo.minFee)&&this.composed.custom===void 0;){n=n.minus(1);let a=this.compose(n.toString());if(a.type==="final")return this.feeLevels.updateCustomFee(n.toString()),this.composed.custom=a,!0}return!1}return!0}composeCustomFee(e){let r=this.compose(e);this.composed.custom=r,r.type==="final"?this.feeLevels.updateCustomFee(r.feePerByte):this.feeLevels.updateCustomFee(e)}getFeeLevelList(){let e=[],{levels:r}=this.feeLevels;return r.forEach(i=>{let n=this.composed[i.label];n&&n.type==="final"?e.push({name:i.label,fee:n.fee,feePerByte:i.feePerUnit,minutes:i.blocks*this.coinInfo.blocktime,total:n.totalSpent}):e.push({name:i.label,fee:"0",disabled:!0})}),e}compose(e){let{account:r,coinInfo:i,baseFee:n}=this,{addresses:a}=r;if(!a)return{type:"error",error:"ADDRESSES-NOT-SET"};let s=a.change.find(u=>!u.transfers)||a.change[a.change.length-1],o=(0,K3e.getHDPath)(s.path).slice(-1)[0],c={baseFee:n,floorBaseFee:!1,dustOutputFee:0};return i.shortcut==="DOGE"&&(c.dustOutputFee=1e6),(0,B9t.composeTx)({txType:r.type,utxos:this.utxos,outputs:this.outputs,height:this.blockHeight,feeRate:e,skipPermutation:this.skipPermutation,basePath:r.address_n,network:i.network,changeId:o,changeAddress:s.address,dustThreshold:i.dustLimit,...c})}dispose(){}};UA.TransactionComposer=Qj});var Yj=x(nd=>{"use strict";Object.defineProperty(nd,"__esModule",{value:!0});var Wp=mr();Wp.__exportStar(C3e(),nd);Wp.__exportStar(bA(),nd);Wp.__exportStar(N3e(),nd);Wp.__exportStar(D3e(),nd);Wp.__exportStar(U3e(),nd);Wp.__exportStar(V3e(),nd);Wp.__exportStar(z3e(),nd);Wp.__exportStar(J3e(),nd);Wp.__exportStar(W3e(),nd)});var t_e=x(rV=>{"use strict";Object.defineProperty(rV,"__esModule",{value:!0});var e_e=mr(),D9t=e_e.__importDefault(Yr()),q9t=Tt(),eV=Pt(),Ss=rr(),L9t=Wj(),Z3e=ut(),$3e=e_e.__importStar(Gt()),Q3e=Jy(),U9t=rd(),Y3e=qt(),J6=ea(),yo=Yj(),tV=class extends q9t.AbstractMethod{init(){this.requiredPermissions=["read","write"];let{payload:e}=this;(0,Z3e.validateParams)(e,[{name:"outputs",type:"array",required:!0},{name:"coin",type:"string",required:!0},{name:"push",type:"boolean"},{name:"account",type:"object"},{name:"feeLevels",type:"array"},{name:"baseFee",type:"number"},{name:"floorBaseFee",type:"boolean"},{name:"sequence",type:"number"},{name:"skipPermutation",type:"boolean"}]);let r=(0,Y3e.getBitcoinNetwork)(e.coin);if(!r)throw eV.ERRORS.TypedError("Method_UnknownCoin");(0,J6.isBackendSupported)(r),this.firmwareRange=(0,Z3e.getFirmwareRange)(this.name,r,this.firmwareRange);let i=[],n=new D9t.default(0);e.outputs.forEach(s=>{let o=(0,yo.validateHDOutput)(s,r);"amount"in o&&typeof o.amount=="string"&&(n=n.plus(o.amount)),i.push(o)}),i.find(s=>s.type==="send-max")!==void 0?this.info="Send maximum amount":this.info=`Send ${(0,U9t.formatAmount)(n.toString(),r)}`,this.useDevice=!e.account&&!e.feeLevels,this.useUi=this.useDevice,this.params={outputs:i,coinInfo:r,account:e.account,feeLevels:e.feeLevels,baseFee:e.baseFee,floorBaseFee:e.floorBaseFee,sequence:e.sequence,skipPermutation:e.skipPermutation,push:typeof e.push=="boolean"?e.push:!1}}async precompose(e,r){let{coinInfo:i,outputs:n,baseFee:a,skipPermutation:s}=this.params,o=$3e.validatePath(e.path),c=new yo.TransactionComposer({account:{type:$3e.getAccountType(o),label:"Account",descriptor:e.path,address_n:o,addresses:e.addresses},utxo:e.utxo,coinInfo:i,outputs:n,baseFee:a,skipPermutation:s}),u=await(0,J6.initBlockchain)(this.params.coinInfo,this.postMessage);return await c.init(u),r.map(f=>{c.composeCustomFee(f.feePerUnit);let d={...c.composed.custom};if(d.type==="final"){let p=d.transaction.inputs.map(L=>(0,yo.inputToTrezor)(L,this.params.sequence||4294967295)),{sorted:b,permutation:T}=d.transaction.outputs,I=b.map(L=>(0,yo.outputToTrezor)(L,i));return{type:"final",max:d.max,totalSpent:d.totalSpent,fee:d.fee,feePerByte:d.feePerByte,bytes:d.bytes,transaction:{inputs:p,outputs:I,outputsPermutation:T}}}return d})}async run(){if(this.params.account&&this.params.feeLevels)return this.precompose(this.params.account,this.params.feeLevels);let{account:e,utxo:r}=await this.selectAccount(),i=await this.selectFee(e,r);if(!this.discovery)throw eV.ERRORS.TypedError("Runtime","ComposeTransaction: selectFee response received after dispose");return typeof i=="string"?this.run():i}async selectAccount(){let{coinInfo:e}=this.params,r=await(0,J6.initBlockchain)(e,this.postMessage),i=this.createUiPromise(Ss.UI.RECEIVE_ACCOUNT);if(this.discovery&&this.discovery.completed){let{discovery:c}=this;this.postMessage((0,Ss.createUiMessage)(Ss.UI.SELECT_ACCOUNT,{type:"end",coinInfo:e,accountTypes:c.types.map(p=>p.type),accounts:c.accounts}));let u=await i.promise,f=c.accounts[u.payload],d=await r.getAccountUtxo(f.descriptor);return{account:f,utxo:d}}let n=this.discovery||new L9t.Discovery({blockchain:r,commands:this.device.getCommands()});this.discovery=n,n.on("progress",c=>{this.postMessage((0,Ss.createUiMessage)(Ss.UI.SELECT_ACCOUNT,{type:"progress",coinInfo:e,accounts:c}))}),n.on("complete",()=>{this.postMessage((0,Ss.createUiMessage)(Ss.UI.SELECT_ACCOUNT,{type:"end",coinInfo:e}))}),n.start("tokens").catch(c=>{i.reject(c)}),this.postMessage((0,Ss.createUiMessage)(Ss.UI.SELECT_ACCOUNT,{type:"start",accountTypes:n.types.map(c=>c.type),coinInfo:e}));let a=await i.promise;n.removeAllListeners(),n.stop(),n.completed||await(0,Q3e.resolveAfter)(501);let s=n.accounts[a.payload];this.params.coinInfo=(0,Y3e.fixCoinInfoNetwork)(this.params.coinInfo,s.address_n);let o=await r.getAccountUtxo(s.descriptor);return{account:s,utxo:o}}async selectFee(e,r){let{coinInfo:i,outputs:n}=this.params,a=await(0,J6.initBlockchain)(i,this.postMessage),s=new yo.TransactionComposer({account:e,utxo:r,coinInfo:i,outputs:n});return await s.init(a),s.composeAllFeeLevels()?(this.postMessage((0,Ss.createUiMessage)(Ss.UI.SELECT_FEE,{feeLevels:s.getFeeLevelList(),coinInfo:this.params.coinInfo})),this._selectFeeUiResponse(s)):(this.postMessage((0,Ss.createUiMessage)(Ss.UI.INSUFFICIENT_FUNDS)),await(0,Q3e.resolveAfter)(2e3,null),"change-account")}async _selectFeeUiResponse(e){let r=await this.createUiPromise(Ss.UI.RECEIVE_FEE).promise;switch(r.payload.type){case"compose-custom":return e.composeCustomFee(r.payload.value),this.postMessage((0,Ss.createUiMessage)(Ss.UI.UPDATE_CUSTOM_FEE,{feeLevels:e.getFeeLevelList(),coinInfo:this.params.coinInfo})),this._selectFeeUiResponse(e);case"send":return this._sign(e.composed[r.payload.value]);default:return"change-account"}}async _sign(e){if(e.type!=="final")throw eV.ERRORS.TypedError("Runtime","ComposeTransaction: Trying to sign unfinished tx");let{coinInfo:r}=this.params,i=(0,yo.enhanceSignTx)({},r),n=e.transaction.inputs.map(d=>(0,yo.inputToTrezor)(d,this.params.sequence||4294967295)),a=e.transaction.outputs.sorted.map(d=>(0,yo.outputToTrezor)(d,r)),s=[],o=(0,yo.requireReferencedTransactions)(n,i,r),c=(0,yo.getReferencedTransactions)(n);if(o&&c.length>0){let p=await(await(0,J6.initBlockchain)(r,this.postMessage)).getTransactions(c);s=(0,yo.transformReferencedTransactions)(p,r)}let f=await(this.device.unavailableCapabilities.replaceTransaction?yo.signTxLegacy:yo.signTx)({typedCall:this.device.getCommands().typedCall.bind(this.device.getCommands()),inputs:n,outputs:a,refTxs:s,options:i,coinInfo:r});if(await(0,yo.verifyTx)(this.device.getCommands().getHDNode.bind(this.device.getCommands()),n,a,f.serializedTx,r),this.params.push){let p=await(await(0,J6.initBlockchain)(r,this.postMessage)).pushTransaction(f.serializedTx);return{...f,txid:p}}return f}dispose(){let{discovery:e}=this;e&&(e.stop(),e.removeAllListeners(),this.discovery=void 0)}};rV.default=tV});var r_e=x(sV=>{"use strict";Object.defineProperty(sV,"__esModule",{value:!0});var j9t=Tt(),iV=ut(),V9t=qt(),nV=Gt(),Z_=rr(),aV=class extends j9t.AbstractMethod{init(){this.requiredPermissions=["read"],this.firmwareRange=(0,iV.getFirmwareRange)(this.name,(0,V9t.getMiscNetwork)("EOS"),this.firmwareRange),this.info="Export Eos public key",this.hasBundle=!!this.payload.bundle;let e=this.payload.bundle?this.payload:{...this.payload,bundle:[this.payload]};(0,iV.validateParams)(e,[{name:"bundle",type:"array"}]),this.params=e.bundle.map(r=>((0,iV.validateParams)(r,[{name:"path",required:!0},{name:"showOnTrezor",type:"boolean"}]),{address_n:(0,nV.validatePath)(r.path,3),show_display:typeof r.showOnTrezor=="boolean"?r.showOnTrezor:!1}))}async confirmation(){if(this.confirmed)return!0;await this.getPopupPromise().promise;let e=this.createUiPromise(Z_.UI.RECEIVE_CONFIRMATION),r;this.params.length>1?r="Export multiple Eos public keys":r=`Export Eos public key for account #${(0,nV.fromHardened)(this.params[0].address_n[2])+1}`,this.postMessage((0,Z_.createUiMessage)(Z_.UI.REQUEST_CONFIRMATION,{view:"export-address",label:r}));let i=await e.promise;return this.confirmed=i.payload,this.confirmed}async run(){let e=[],r=this.device.getCommands();for(let i=0;i{"use strict";Object.defineProperty(K6,"__esModule",{value:!0});K6.signTx=K6.validate=void 0;var H9t=mr(),z9t=H9t.__importStar(qN()),jA=Pt(),i_e=(t,e=1)=>{let r=Array(e).fill("0".charCodeAt(0));for(let i=t.length-1;i>=0;--i){let n=t[i];for(let a=0;a{if(typeof t!="string")throw jA.ERRORS.TypedError("Method_InvalidParameter",`Eos serialization error, "${typeof t}" should be a string`);let e=n=>n>="a".charCodeAt(0)&&n<="z".charCodeAt(0)?n-"a".charCodeAt(0)+6:n>="1".charCodeAt(0)&&n<="5".charCodeAt(0)?n-"1".charCodeAt(0)+1:0,r=new Uint8Array(8),i=63;for(let n=0;n=0;--s)i>=0&&(r[Math.floor(i/8)]|=(a>>s&1)<{if(typeof t!="string")throw jA.ERRORS.TypedError("Method_InvalidParameter",`Eos serialization error. Expected string containing asset, got: ${typeof t}`);t=t.trim();let e=0,r="",i=0;t[e]==="-"&&(r+="-",++e);let n=!1;for(;e="0".charCodeAt(0)&&t.charCodeAt(e)<="9".charCodeAt(0);)n=!0,r+=t[e],++e;if(!n)throw jA.ERRORS.TypedError("Method_InvalidParameter","Eos serialization error. Asset must begin with a number");if(t[e]===".")for(++e;e="0".charCodeAt(0)&&t.charCodeAt(e)<="9".charCodeAt(0);)r+=t[e],++i,++e;let a=t.substring(e).trim(),s=[i&255];for(let o=0;o{let e=r=>{let i=r.indexOf("EOS")===0?3:7,n=Buffer.from(z9t.decode(r.substring(i)));return{type:0,key:n.slice(0,n.length-4).toString("hex")}};return{threshold:t.threshold,keys:t.keys.map(r=>({weight:r.weight,...e(r.key)})),accounts:t.accounts.map(r=>({weight:r.weight,account:{actor:Br(r.permission.actor),permission:Br(r.permission.permission)}})),waits:t.waits}},G9t=t=>{if(typeof t!="string")throw jA.ERRORS.TypedError("Method_InvalidParameter","Eos serialization error. Header.expiration should be string or number");return t.substring(t.length-1,t.length)!=="Z"&&(t+="Z"),Date.parse(t)/1e3},J9t=t=>{switch(t.name){case"transfer":return{transfer:{sender:Br(t.data.from),receiver:Br(t.data.to),quantity:X6(t.data.quantity),memo:t.data.memo}};case"delegatebw":return{delegate:{sender:Br(t.data.from),receiver:Br(t.data.receiver),net_quantity:X6(t.data.stake_net_quantity),cpu_quantity:X6(t.data.stake_cpu_quantity),transfer:t.data.transfer}};case"undelegatebw":return{undelegate:{sender:Br(t.data.from),receiver:Br(t.data.receiver),net_quantity:X6(t.data.unstake_net_quantity),cpu_quantity:X6(t.data.unstake_cpu_quantity)}};case"buyram":return{buy_ram:{payer:Br(t.data.payer),receiver:Br(t.data.receiver),quantity:X6(t.data.quant)}};case"buyrambytes":return{buy_ram_bytes:{payer:Br(t.data.payer),receiver:Br(t.data.receiver),bytes:t.data.bytes}};case"sellram":return{sell_ram:{account:Br(t.data.account),bytes:t.data.bytes}};case"voteproducer":return{vote_producer:{voter:Br(t.data.voter),proxy:Br(t.data.proxy),producers:t.data.producers.map(e=>Br(e))}};case"refund":return{refund:{owner:Br(t.data.owner)}};case"updateauth":return{update_auth:{account:Br(t.data.account),permission:Br(t.data.permission),parent:Br(t.data.parent),auth:oV(t.data.auth)}};case"deleteauth":return{delete_auth:{account:Br(t.data.account),permission:Br(t.data.permission)}};case"linkauth":return{link_auth:{account:Br(t.data.account),code:Br(t.data.code),type:Br(t.data.type),requirement:Br(t.data.requirement)}};case"unlinkauth":return{unlink_auth:{account:Br(t.data.account),code:Br(t.data.code),type:Br(t.data.type)}};case"newaccount":return{new_account:{creator:Br(t.data.creator),name:Br(t.data.name),owner:oV(t.data.owner),active:oV(t.data.active)}};default:return null}},X9t=t=>typeof t.data!="string"?null:{unknown:{data_size:t.data.length/2,data_chunk:t.data}},K9t=t=>({account:Br(t.account),name:Br(t.name),authorization:t.authorization.map(e=>({actor:Br(e.actor),permission:Br(e.permission)}))}),W9t=t=>{let e=J9t(t)||X9t(t);return{common:K9t(t),...e}},Z9t=t=>{let e={expiration:typeof t.header.expiration=="number"?t.header.expiration:G9t(t.header.expiration),ref_block_num:t.header.refBlockNum,ref_block_prefix:t.header.refBlockPrefix,max_net_usage_words:t.header.maxNetUsageWords,max_cpu_usage_ms:t.header.maxCpuUsageMs,delay_sec:t.header.delaySec},r=[];return t.actions.forEach(i=>{r.push(W9t(i))}),{chain_id:t.chainId,header:e,ack:r}};K6.validate=Z9t;var uV=2048,$9t=(t,e)=>{if(!t||e<0||t.length0?t.length-e*2:0;return t.substring(r,r+uV*2)},n_e=async(t,e,r,i)=>{let n=r[i],a=i+1>=r.length,s,o=e.data_size;if(n.unknown){let{unknown:c}=n,u=typeof o=="number"?o:0,f=$9t(c.data_chunk,u),d={common:n.common,unknown:{data_size:c.data_size,data_chunk:f}},b=(u>0?c.data_size-u+uV:uV)>=c.data_size;if(a&&b)return(await t("EosTxActionAck","EosSignedTx",d)).message;s=await t("EosTxActionAck","EosTxActionRequest",d),b&&i++}else{if(a)return(await t("EosTxActionAck","EosSignedTx",n)).message;s=await t("EosTxActionAck","EosTxActionRequest",n),i++}return n_e(t,s.message,r,i)},Q9t=async(t,e,r,i,n)=>{let a=await t("EosSignTx","EosTxActionRequest",{address_n:e,chain_id:r,header:i,num_actions:n.length});return n_e(t,a.message,n,0)};K6.signTx=Q9t});var u_e=x(dV=>{"use strict";Object.defineProperty(dV,"__esModule",{value:!0});var Y9t=mr(),e7t=Tt(),s_e=ut(),t7t=qt(),r7t=Gt(),o_e=Y9t.__importStar(a_e()),cV=class extends e7t.AbstractMethod{init(){this.requiredPermissions=["read","write"],this.firmwareRange=(0,s_e.getFirmwareRange)(this.name,(0,t7t.getMiscNetwork)("EOS"),this.firmwareRange),this.info="Sign EOS transaction";let{payload:e}=this;(0,s_e.validateParams)(e,[{name:"path",required:!0},{name:"transaction",required:!0}]);let r=(0,r7t.validatePath)(e.path,3),{chain_id:i,header:n,ack:a}=o_e.validate(e.transaction);this.params={path:r,chain_id:i,header:n,ack:a}}async run(){return{signature:(await o_e.signTx(this.device.getCommands().typedCall.bind(this.device.getCommands()),this.params.path,this.params.chain_id,this.params.header,this.params.ack)).signature}}};dV.default=cV});var W6=x(VA=>{"use strict";Object.defineProperty(VA,"__esModule",{value:!0});VA.getNetworkLabel=void 0;var i7t=(t,e)=>{if(e){let r=e.name.toLowerCase().indexOf("testnet")>=0?"Testnet":e.name;return t.replace("#NETWORK",r)}return t.replace("#NETWORK","")};VA.getNetworkLabel=i7t});var p_e=x(pV=>{"use strict";Object.defineProperty(pV,"__esModule",{value:!0});var n7t=Tt(),lV=ut(),c_e=Gt(),d_e=W6(),l_e=qt(),f_e=rd(),a7t=Pt(),c1=rr(),fV=class extends n7t.AbstractMethod{constructor(){super(...arguments),this.progress=0}init(){this.requiredPermissions=["read"],this.hasBundle=!!this.payload.bundle;let e=this.payload.bundle?this.payload:{...this.payload,bundle:[this.payload]};if((0,lV.validateParams)(e,[{name:"bundle",type:"array"},{name:"useEventListener",type:"boolean"}]),this.params=e.bundle.map(i=>{(0,lV.validateParams)(i,[{name:"path",required:!0},{name:"address",type:"string"},{name:"showOnTrezor",type:"boolean"}]);let n=(0,c_e.validatePath)(i.path,3),a=(0,l_e.getEthereumNetwork)(n);return this.firmwareRange=(0,lV.getFirmwareRange)(this.name,a,this.firmwareRange),{address_n:n,show_display:typeof i.showOnTrezor=="boolean"?i.showOnTrezor:!0,address:i.address,network:a}}),this.params.length===1)this.info=(0,d_e.getNetworkLabel)("Export #NETWORK address",this.params[0].network);else{let i=this.params.map(a=>a.network),n=(0,l_e.getUniqueNetworks)(i);n.length===1&&n[0]?this.info=(0,d_e.getNetworkLabel)("Export multiple #NETWORK addresses",n[0]):this.info="Export multiple addresses"}let r=e.useEventListener&&this.params.length===1&&typeof this.params[0].address=="string"&&this.params[0].show_display;this.confirmed=r,this.useUi=!r}getButtonRequestData(e){if(e==="ButtonRequest_Address")return{type:"address",serializedPath:(0,c_e.getSerializedPath)(this.params[this.progress].address_n),address:this.params[this.progress].address||"not-set"}}async confirmation(){if(this.confirmed)return!0;await this.getPopupPromise().promise;let e=this.createUiPromise(c1.UI.RECEIVE_CONFIRMATION);this.postMessage((0,c1.createUiMessage)(c1.UI.REQUEST_CONFIRMATION,{view:"export-address",label:this.info}));let r=await e.promise;return this.confirmed=r.payload,this.confirmed}async noBackupConfirmation(){await this.getPopupPromise().promise;let e=this.createUiPromise(c1.UI.RECEIVE_CONFIRMATION);return this.postMessage((0,c1.createUiMessage)(c1.UI.REQUEST_CONFIRMATION,{view:"no-backup"})),(await e.promise).payload}_call({address_n:e,show_display:r}){return this.device.getCommands().ethereumGetAddress({address_n:e,show_display:r})}async run(){let e=[];for(let r=0;r{"use strict";Object.defineProperty(gV,"__esModule",{value:!0});var s7t=Tt(),hV=ut(),o7t=Gt(),h_e=W6(),m_e=qt(),$_=rr(),mV=class extends s7t.AbstractMethod{init(){this.requiredPermissions=["read"],this.hasBundle=!!this.payload.bundle;let e=this.payload.bundle?this.payload:{...this.payload,bundle:[this.payload]};if((0,hV.validateParams)(e,[{name:"bundle",type:"array"}]),this.params=e.bundle.map(r=>{(0,hV.validateParams)(r,[{name:"path",required:!0},{name:"showOnTrezor",type:"boolean"}]);let i=(0,o7t.validatePath)(r.path,3),n=(0,m_e.getEthereumNetwork)(i);return this.firmwareRange=(0,hV.getFirmwareRange)(this.name,n,this.firmwareRange),{address_n:i,show_display:typeof r.showOnTrezor=="boolean"?r.showOnTrezor:!1,network:n}}),this.params.length===1)this.info=(0,h_e.getNetworkLabel)("Export #NETWORK public key",this.params[0].network);else{let r=this.params.map(n=>n.network),i=(0,m_e.getUniqueNetworks)(r);i.length===1&&i[0]?this.info=(0,h_e.getNetworkLabel)("Export multiple #NETWORK public keys",i[0]):this.info="Export multiple public keys"}}async confirmation(){if(this.confirmed)return!0;await this.getPopupPromise().promise;let e=this.createUiPromise($_.UI.RECEIVE_CONFIRMATION);this.postMessage((0,$_.createUiMessage)($_.UI.REQUEST_CONFIRMATION,{view:"export-xpub",label:this.info}));let r=await e.promise;return this.confirmed=r.payload,this.confirmed}async run(){let e=[],r=this.device.getCommands();for(let i=0;i{"use strict";Object.defineProperty(vV,"__esModule",{value:!0});var u7t=Tt(),y_e=ut(),c7t=Gt(),d7t=qt(),l7t=W6(),f7t=rd(),yV=class extends u7t.AbstractMethod{init(){this.requiredPermissions=["read","write"];let{payload:e}=this;(0,y_e.validateParams)(e,[{name:"path",required:!0},{name:"message",type:"string",required:!0},{name:"hex",type:"boolean"}]);let r=(0,c7t.validatePath)(e.path,3),i=(0,d7t.getEthereumNetwork)(r);this.firmwareRange=(0,y_e.getFirmwareRange)(this.name,i,this.firmwareRange),this.info=(0,l7t.getNetworkLabel)("Sign #NETWORK message",i);let n=e.hex?(0,f7t.messageToHex)(e.message):Buffer.from(e.message,"utf8").toString("hex");this.params={address_n:r,message:n}}async run(){let e=this.device.getCommands(),{address_n:r,message:i}=this.params;return(await e.typedCall("EthereumSignMessage","EthereumMessageSignature",{address_n:r,message:i})).message}};vV.default=yV});var b_e=x(Z6=>{"use strict";Object.defineProperty(Z6,"__esModule",{value:!0});Z6.ethereumSignTxEIP1559=Z6.ethereumSignTx=void 0;var p7t=Pt(),bV=(t,e)=>{if(t==null)return["",""];let r=t.slice(0,e),i=t.slice(e);return[r,i]},_V=async(t,e,r,i)=>{if(!e.data_length){let o=e.signature_v,c=e.signature_r,u=e.signature_s;if(o==null||c==null||u==null)throw p7t.ERRORS.TypedError("Runtime","processTxRequest: Unexpected request");return i&&o<=1&&(o+=2*i+35),Promise.resolve({v:`0x${o.toString(16)}`,r:`0x${c}`,s:`0x${u}`})}let[n,a]=bV(r,e.data_length*2),s=await t("EthereumTxAck","EthereumTxRequest",{data_chunk:n});return _V(t,s.message,a,i)},Zp=t=>{for(;/^00/.test(t);)t=t.slice(2);return t},h7t=async(t,e,r,i,n,a,s,o,c,u)=>{let f=c==null?0:c.length/2,[d,p]=bV(c,1024*2),b={address_n:e,chain_id:o,nonce:Zp(s),gas_price:Zp(a),gas_limit:Zp(n),to:r,value:Zp(i)};f!==0&&(b={...b,data_length:f,data_initial_chunk:d}),u!==null&&(b={...b,tx_type:u});let T=await t("EthereumSignTx","EthereumTxRequest",b);return _V(t,T.message,p,o)};Z6.ethereumSignTx=h7t;var m7t=async(t,e,r,i,n,a,s,o,c,u,f)=>{let d=u==null?0:u.length/2,[p,b]=bV(u,1024*2),T={address_n:e,nonce:Zp(o),max_gas_fee:Zp(a),max_priority_fee:Zp(s),gas_limit:Zp(n),to:r,value:Zp(i),data_length:d,data_initial_chunk:p,chain_id:c,access_list:(f||[]).map(L=>({address:L.address,storage_keys:L.storageKeys}))},I=await t("EthereumSignTxEIP1559","EthereumTxRequest",T);return _V(t,I.message,b)};Z6.ethereumSignTxEIP1559=m7t});var w_e=x(EV=>{"use strict";Object.defineProperty(EV,"__esModule",{value:!0});var g7t=mr(),y7t=Tt(),wV=ut(),v7t=Gt(),b7t=qt(),_7t=W6(),w7t=rd(),__e=g7t.__importStar(b_e()),xV=t=>{if(typeof t=="string"){let e=(0,w7t.stripHexPrefix)(t);return e.length%2!==0&&(e=`0${e}`),e}return Array.isArray(t)?t.map(xV):typeof t=="object"?Object.entries(t).reduce((e,[r,i])=>({...e,[r]:xV(i)}),{}):t},SV=class extends y7t.AbstractMethod{init(){this.requiredPermissions=["read","write"];let{payload:e}=this;(0,wV.validateParams)(e,[{name:"path",required:!0},{name:"transaction",required:!0}]);let r=(0,v7t.validatePath)(e.path,3),i=(0,b7t.getEthereumNetwork)(r);this.info=(0,_7t.getNetworkLabel)("Sign #NETWORK transaction",i);let n=e.transaction,a=n.maxFeePerGas&&n.maxPriorityFeePerGas;this.firmwareRange=(0,wV.getFirmwareRange)(a?"eip1559":this.name,i,this.firmwareRange);let s=a?[{name:"to",type:"string",required:!0},{name:"value",type:"string",required:!0},{name:"gasLimit",type:"string",required:!0},{name:"maxFeePerGas",type:"string",required:!0},{name:"maxPriorityFeePerGas",type:"string",required:!0},{name:"nonce",type:"string",required:!0},{name:"data",type:"string"},{name:"chainId",type:"number",required:!0}]:[{name:"to",type:"string",required:!0},{name:"value",type:"string",required:!0},{name:"gasLimit",type:"string",required:!0},{name:"gasPrice",type:"string",required:!0},{name:"nonce",type:"string",required:!0},{name:"data",type:"string"},{name:"chainId",type:"number"},{name:"txType",type:"number"}];(0,wV.validateParams)(n,s),typeof n.chainId!="number"&&console.warn("TrezorConnect.ethereumSignTransaction: Missing chainId parameter!"),this.params={path:r,tx:{type:a?"eip1559":"legacy",...xV(n)}}}run(){let{tx:e}=this.params;return e.type==="eip1559"?__e.ethereumSignTxEIP1559(this.device.getCommands().typedCall.bind(this.device.getCommands()),this.params.path,e.to,e.value,e.gasLimit,e.maxFeePerGas,e.maxPriorityFeePerGas,e.nonce,e.chainId,e.data,e.accessList):__e.ethereumSignTx(this.device.getCommands().typedCall.bind(this.device.getCommands()),this.params.path,e.to,e.value,e.gasLimit,e.gasPrice,e.nonce,e.chainId,e.data,e.txType)}};EV.default=SV});var A_e=x(d1=>{"use strict";Object.defineProperty(d1,"__esModule",{value:!0});d1.getFieldType=d1.encodeData=d1.parseArrayType=void 0;var x7t=mr(),TV=x7t.__importDefault(Yr()),Ds=Pt(),S7t=rd(),x_e=new RegExp(/^(.*)\[([0-9]*)\]$/),S_e=new RegExp(/^bytes([0-9]*)$/),E_e=new RegExp(/^(u?int)([0-9]*)$/);function E7t(t){let e=x_e.exec(t);if(e===null)throw Ds.ERRORS.TypedError("Runtime",`typename ${t} could not be parsed as an EIP-712 array`);let[r,i,n]=e;return{entryTypeName:i,arraySize:parseInt(n,10)||null}}d1.parseArrayType=E7t;function T7t(t,e){if(e<1||e>32)throw Ds.ERRORS.TypedError("Runtime","Int byte size must be between 1 and 32 (8 and 256 bits)");let r=new TV.default(2).exponentiatedBy(e*8-1).negated(),i=r.negated().minus(1),n=new TV.default(t);if(n.isGreaterThan(i)||n.isLessThan(r))throw Ds.ERRORS.TypedError("Runtime",`Overflow when trying to convert number ${t} into ${e} bytes`);return n.isPositive()?n:n.minus(r).minus(r)}function A7t(t,e,r){let i=new TV.default(t);if(r&&(i=T7t(i,e)),i.isNegative())throw Ds.ERRORS.TypedError("Runtime",`Cannot convert negative number to unsigned interger: ${t}`);let n=i.toString(16),a=e*2;if(n.length>a)throw Ds.ERRORS.TypedError("Runtime",`Overflow when trying to convert number ${t} into ${e} bytes`);return n.padStart(e*2,"0")}function P7t(t,e){if(S_e.test(t)||t==="address")return(0,S7t.messageToHex)(e);if(t==="string")return Buffer.from(e,"utf-8").toString("hex");let r=E_e.exec(t);if(r){let[i,n,a]=r,s=Math.ceil(parseInt(a,10)/8);return A7t(e,s,n==="int")}if(t==="bool")return e?"01":"00";throw Ds.ERRORS.TypedError("Runtime",`Unsupported data type for direct field encoding: ${t}`)}d1.encodeData=P7t;var O7t={string:Ds.PROTO.EthereumDataType.STRING,bool:Ds.PROTO.EthereumDataType.BOOL,address:Ds.PROTO.EthereumDataType.ADDRESS};function T_e(t,e){let r=x_e.exec(t);if(r){let[s,o,c]=r,u=T_e(o,e);return{data_type:Ds.PROTO.EthereumDataType.ARRAY,size:parseInt(c,10)||void 0,entry_type:u}}let i=E_e.exec(t);if(i){let[s,o,c]=i;return{data_type:o==="uint"?Ds.PROTO.EthereumDataType.UINT:Ds.PROTO.EthereumDataType.INT,size:Math.floor(parseInt(c,10)/8)}}let n=S_e.exec(t);if(n){let[s,o]=n;return{data_type:Ds.PROTO.EthereumDataType.BYTES,size:parseInt(o,10)||void 0}}let a=O7t[t];if(a)return{data_type:a};if(t in e)return{data_type:Ds.PROTO.EthereumDataType.STRUCT,size:e[t].length,struct_name:t};throw Ds.ERRORS.TypedError("Runtime",`No type definition specified: ${t}`)}d1.getFieldType=T_e});var O_e=x(PV=>{"use strict";Object.defineProperty(PV,"__esModule",{value:!0});var R7t=Tt(),HA=ut(),M7t=Gt(),C7t=qt(),I7t=W6(),zA=Pt(),GA=A_e(),P_e=rd(),AV=class extends R7t.AbstractMethod{init(){this.requiredPermissions=["read","write"];let{payload:e}=this;(0,HA.validateParams)(e,[{name:"path",required:!0},{name:"metamask_v4_compat",type:"boolean",required:!0},{name:"data",type:"object",required:!0},{name:"domain_separator_hash",type:"string"},{name:"message_hash",type:"string"}]);let r=(0,M7t.validatePath)(e.path,3),i=(0,C7t.getEthereumNetwork)(r);if(this.firmwareRange=(0,HA.getFirmwareRange)(this.name,i,this.firmwareRange),this.info=(0,I7t.getNetworkLabel)("Sign #NETWORK typed data",i),this.params={address_n:r,metamask_v4_compat:e.metamask_v4_compat,data:e.data},e.domain_separator_hash){if(this.params={...this.params,domain_separator_hash:(0,P_e.messageToHex)(e.domain_separator_hash)},e.message_hash)this.params={...this.params,message_hash:(0,P_e.messageToHex)(e.message_hash)};else if(this.params.data.primaryType!=="EIP712Domain")throw zA.ERRORS.TypedError("Method_InvalidParameter","message_hash should only be empty when data.primaryType=EIP712Domain")}if(this.params.data.primaryType==="EIP712Domain"&&(this.firmwareRange=(0,HA.getFirmwareRange)("eip712-domain-only",i,this.firmwareRange),"message_hash"in this.params))throw zA.ERRORS.TypedError("Method_InvalidParameter","message_hash should be empty when data.primaryType=EIP712Domain")}async run(){let e=this.device.getCommands(),{address_n:r}=this.params;if(this.device.features.model==="1"){(0,HA.validateParams)(this.params,[{name:"domain_separator_hash",type:"string",required:!0},{name:"message_hash",type:"string"}]);let{domain_separator_hash:p,message_hash:b}=this.params,T=await e.typedCall("EthereumSignTypedHash","EthereumTypedDataSignature",{address_n:r,domain_separator_hash:p,message_hash:b}),{address:I,signature:L}=T.message;return{address:I,signature:`0x${L}`}}let{data:i,metamask_v4_compat:n}=this.params,{types:a,primaryType:s,domain:o,message:c}=i,u=await e.typedCall("EthereumSignTypedData",["EthereumTypedDataStructRequest","EthereumTypedDataValueRequest","EthereumTypedDataSignature"],{address_n:r,primary_type:s,metamask_v4_compat:n});for(;u.type==="EthereumTypedDataStructRequest";){let{name:p}=u.message,b=a[p];if(b===void 0)throw zA.ERRORS.TypedError("Runtime",`Type ${p} was not defined in types object`);let T={members:b.map(({name:I,type:L})=>({name:I,type:(0,GA.getFieldType)(L,a)}))};u=await e.typedCall("EthereumTypedDataStructAck",["EthereumTypedDataStructRequest","EthereumTypedDataValueRequest","EthereumTypedDataSignature"],T)}for(;u.type==="EthereumTypedDataValueRequest";){let{member_path:p}=u.message,b,T,[I,...L]=p;switch(I){case 0:b=o,T="EIP712Domain";break;case 1:b=c,T=s;break;default:throw zA.ERRORS.TypedError("Runtime","Root index can only be 0 or 1")}for(let re of L)if(Array.isArray(b))T=(0,GA.parseArrayType)(T).entryTypeName,b=b[re];else if(typeof b=="object"&&b!==null){let oe=a[T][re];T=oe.type,b=b[oe.name]}let U;Array.isArray(b)?U=(0,GA.encodeData)("uint16",b.length):U=(0,GA.encodeData)(T,b),u=await e.typedCall("EthereumTypedDataValueAck",["EthereumTypedDataValueRequest","EthereumTypedDataSignature"],{value:U})}let{address:f,signature:d}=u.message;return{address:f,signature:`0x${d}`}}};PV.default=AV});var M_e=x(MV=>{"use strict";Object.defineProperty(MV,"__esModule",{value:!0});var N7t=Tt(),R_e=ut(),OV=rd(),RV=class extends N7t.AbstractMethod{init(){this.requiredPermissions=["read","write"],this.firmwareRange=(0,R_e.getFirmwareRange)(this.name,null,this.firmwareRange),this.info="Verify message";let{payload:e}=this;(0,R_e.validateParams)(e,[{name:"address",type:"string",required:!0},{name:"signature",type:"string",required:!0},{name:"message",type:"string",required:!0},{name:"hex",type:"boolean"}]);let r=e.hex?(0,OV.messageToHex)(e.message):Buffer.from(e.message,"utf8").toString("hex");this.params={address:(0,OV.stripHexPrefix)(e.address),signature:(0,OV.stripHexPrefix)(e.signature),message:r}}async run(){return(await this.device.getCommands().typedCall("EthereumVerifyMessage","Success",this.params)).message}};MV.default=RV});var I_e=x(JA=>{"use strict";Object.defineProperty(JA,"__esModule",{value:!0});JA.getBinary=void 0;var CV=wn(),C_e=Xw(),k7t=EN(),B7t=zy(),F7t=async({features:t,releases:e,baseUrl:r,version:i,btcOnly:n,intermediary:a=!1})=>{if(!(0,k7t.isStrictFeatures)(t))throw new Error("Features of unexpected shape provided");if(a&&t.major_version!==2)return{binary:await(0,C_e.httpRequest)(`${r}/firmware/1/trezor-inter-1.10.0.bin`,"binary")};let s=(0,B7t.getInfo)({features:t,releases:e}),o=e.find(u=>i&&CV.versionUtils.isVersionArray(i)&&CV.versionUtils.isEqual(u.version,i));if(!s||!o)throw new Error("no firmware found for this device");if(n&&!o.url_bitcoinonly)throw new Error(`firmware version ${i} does not exist in btc only variant`);if(!CV.versionUtils.isEqual(o.version,s.release.version))throw new Error("version provided as param does not match firmware version found by features in bootloader");let c=await(0,C_e.httpRequest)(`${r}/${n?o.url_bitcoinonly:o.url}`,"binary");return{...s,binary:c}};JA.getBinary=F7t});var N_e=x($6=>{"use strict";Object.defineProperty($6,"__esModule",{value:!0});$6.stripFwHeaders=$6.shouldStripFwHeaders=void 0;var D7t=wn(),q7t=t=>t.major_version===2?!1:D7t.versionUtils.isNewerOrEqual([t.major_version,t.minor_version,t.patch_version],[1,8,0]);$6.shouldStripFwHeaders=q7t;var L7t=t=>{let e=new Uint8Array(t);return String.fromCharCode(...Array.from(e.slice(0,4)))==="TRZR"&&String.fromCharCode(...Array.from(e.slice(256,260)))==="TRZF"?t.slice(256):t};$6.stripFwHeaders=L7t});var B_e=x(KA=>{"use strict";Object.defineProperty(KA,"__esModule",{value:!0});KA.uploadFirmware=void 0;var IV=rr(),U7t=Pt(),k_e=t=>{t.features.firmware_present&&t.emit(IV.DEVICE.BUTTON,t,{code:"ButtonRequest_FirmwareUpdate"})},XA=(t,e,r)=>{r((0,IV.createUiMessage)(IV.UI.FIRMWARE_PROGRESS,{device:t.toMessageObject(),progress:e}))},j7t=async(t,e,r,{payload:i})=>{if(r.features.major_version===1){k_e(r),await t("FirmwareErase","Success",{}),XA(r,0,e);let{message:n}=await t("FirmwareUpload","Success",{payload:i});return XA(r,100,e),n}if(r.features.major_version===2){k_e(r);let n=i.byteLength,a=await t("FirmwareErase",["FirmwareRequest","Success"],{length:n});for(;a.type!=="Success";){let s=a.message.offset,o=a.message.offset+a.message.length,c=i.slice(s,o);s>0&&XA(r,Math.round(s/n*100),e),a=await t("FirmwareUpload",["FirmwareRequest","Success"],{payload:c})}return XA(r,100,e),a.message}throw U7t.ERRORS.TypedError("Runtime","uploadFirmware: unknown major_version")};KA.uploadFirmware=j7t});var D_e=x(WA=>{"use strict";Object.defineProperty(WA,"__esModule",{value:!0});WA.calculateFirmwareHash=void 0;var F_e=HB(),V7t=(7*128+64)*1024,H7t=13*128*1024,z7t=(t,e,r)=>{let i=t===1?V7t:H7t,n=i-e.byteLength;if(n<0)throw new Error("Firmware too big");let a=new Uint8Array(new ArrayBuffer(i));if(a.set(new Uint8Array(e)),n>0){let s=Buffer.alloc(n);s.fill(Buffer.from("ff","hex")),a.set(s,e.byteLength)}return{hash:r&&r.length>0?(0,F_e.blake2sHex)(a,r):(0,F_e.blake2sHex)(a),challenge:r?r.toString("hex"):""}};WA.calculateFirmwareHash=z7t});var NV=x(Qu=>{"use strict";Object.defineProperty(Qu,"__esModule",{value:!0});Qu.calculateFirmwareHash=Qu.uploadFirmware=Qu.stripFwHeaders=Qu.shouldStripFwHeaders=Qu.getBinary=void 0;var G7t=I_e();Object.defineProperty(Qu,"getBinary",{enumerable:!0,get:function(){return G7t.getBinary}});var q_e=N_e();Object.defineProperty(Qu,"shouldStripFwHeaders",{enumerable:!0,get:function(){return q_e.shouldStripFwHeaders}});Object.defineProperty(Qu,"stripFwHeaders",{enumerable:!0,get:function(){return q_e.stripFwHeaders}});var J7t=B_e();Object.defineProperty(Qu,"uploadFirmware",{enumerable:!0,get:function(){return J7t.uploadFirmware}});var X7t=D_e();Object.defineProperty(Qu,"calculateFirmwareHash",{enumerable:!0,get:function(){return X7t.calculateFirmwareHash}})});var L_e=x(BV=>{"use strict";Object.defineProperty(BV,"__esModule",{value:!0});var K7t=mr(),W7t=K7t.__importDefault(rx()),Z7t=Tt(),$7t=Pt(),Q6=rr(),Q_=NV(),Q7t=ut(),Y7t=zy(),kV=class extends Z7t.AbstractMethod{init(){this.useEmptyPassphrase=!0,this.requiredPermissions=["management"],this.allowDeviceMode=[Q6.UI.BOOTLOADER,Q6.UI.INITIALIZE],this.requireDeviceMode=[Q6.UI.BOOTLOADER],this.useDeviceState=!1,this.skipFirmwareCheck=!0;let{payload:e}=this;(0,Q7t.validateParams)(e,[{name:"version",type:"array"},{name:"btcOnly",type:"boolean"},{name:"baseUrl",type:"string"},{name:"binary",type:"array-buffer"},{name:"intermediary",type:"boolean"}]),"version"in e&&(this.params={version:e.version,btcOnly:e.btcOnly,baseUrl:e.baseUrl||"https://data.trezor.io",intermediary:e.intermediary}),"binary"in e&&(this.params={...this.params,binary:e.binary})}async confirmation(){await this.getPopupPromise().promise;let e=this.createUiPromise(Q6.UI.RECEIVE_CONFIRMATION);return this.postMessage((0,Q6.createUiMessage)(Q6.UI.REQUEST_CONFIRMATION,{view:"device-management",customConfirmButton:{className:"wipe",label:"Proceed"},label:"Do you want to update firmware? Never do this without your recovery card."})),(await e.promise).payload}async run(){let{device:e,params:r}=this,i;try{r.binary?i=r.binary:i=(await(0,Q_.getBinary)({features:e.features,releases:(0,Y7t.getReleases)(e.features.major_version),version:r.version,btcOnly:r.btcOnly,baseUrl:r.baseUrl,intermediary:r.intermediary})).binary}catch(a){throw $7t.ERRORS.TypedError("Method_FirmwareUpdate_DownloadFailed",`Failed to download firmware binary ${a.message}`)}let n=(0,Q_.stripFwHeaders)(i);return await(0,Q_.uploadFirmware)(this.device.getCommands().typedCall.bind(this.device.getCommands()),this.postMessage,e,{payload:(0,Q_.shouldStripFwHeaders)(e.features)?n:i}),(0,Q_.calculateFirmwareHash)(e.features.major_version,n,(0,W7t.default)(32))}};BV.default=kV});var j_e=x(LV=>{"use strict";Object.defineProperty(LV,"__esModule",{value:!0});var ewt=Tt(),twt=Wj(),ZA=ut(),U_e=Gt(),FV=D3(),rwt=Jy(),iwt=qt(),Y_=Pt(),Ka=rr(),DV=ea(),qV=class extends ewt.AbstractMethod{constructor(){super(...arguments),this.disposed=!1}init(){this.requiredPermissions=["read"],this.info="Export account info",this.useDevice=!0,this.useUi=!0;let e=!1;this.hasBundle=!!this.payload.bundle;let r=this.payload.bundle?this.payload:{...this.payload,bundle:[this.payload]};(0,ZA.validateParams)(r,[{name:"bundle",type:"array"}]),this.params=r.bundle.map(i=>{(0,ZA.validateParams)(i,[{name:"coin",type:"string",required:!0},{name:"descriptor",type:"string"},{name:"path",type:"string"},{name:"details",type:"string"},{name:"tokens",type:"string"},{name:"page",type:"number"},{name:"pageSize",type:"number"},{name:"from",type:"number"},{name:"to",type:"number"},{name:"contractFilter",type:"string"},{name:"gap",type:"number"},{name:"marker",type:"object"},{name:"defaultAccountType",type:"string"},{name:"derivationType",type:"number"}]);let n=(0,iwt.getCoinInfo)(i.coin);if(!n)throw Y_.ERRORS.TypedError("Method_UnknownCoin");(0,DV.isBackendSupported)(n);let a=[];if(i.path&&(a=(0,U_e.validatePath)(i.path,3),e=typeof i.descriptor!="string"),!i.path&&!i.descriptor){if(r.bundle.length>1)throw Error("Discovery for multiple coins in not supported");e=!0}return this.firmwareRange=(0,ZA.getFirmwareRange)(this.name,n,this.firmwareRange),{...i,address_n:a,coinInfo:n}}),this.useDevice=e,this.useUi=e}async confirmation(){await this.getPopupPromise().promise;let e=this.createUiPromise(Ka.UI.RECEIVE_CONFIRMATION);if(this.params.length===1&&!this.params[0].path&&!this.params[0].descriptor)this.postMessage((0,Ka.createUiMessage)(Ka.UI.REQUEST_CONFIRMATION,{view:"export-account-info",label:`Export info for ${this.params[0].coinInfo.label} account of your selection`,customConfirmButton:{label:"Proceed to account selection",className:"not-empty-css"}}));else{let i={};this.params.forEach(a=>{i[a.coinInfo.label]||(i[a.coinInfo.label]={coinInfo:a.coinInfo,values:[]}),i[a.coinInfo.label].values.push(a.descriptor||a.address_n)});let n=[];Object.keys(i).forEach((a,s,o)=>{let c=i[a];c.values.forEach(u=>{n.push(""),n.push(a),n.push(" "),typeof u=="string"?n.push(u):n.push((0,FV.getAccountLabel)(u,c.coinInfo)),n.push("")})}),this.postMessage((0,Ka.createUiMessage)(Ka.UI.REQUEST_CONFIRMATION,{view:"export-account-info",label:`Export info for: ${n.join("")}`}))}return(await e.promise).payload}async noBackupConfirmation(){await this.getPopupPromise().promise;let e=this.createUiPromise(Ka.UI.RECEIVE_CONFIRMATION);return this.postMessage((0,Ka.createUiMessage)(Ka.UI.REQUEST_CONFIRMATION,{view:"no-backup"})),(await e.promise).payload}async checkFirmwareRange(e){if(e||this.params.length===1)return super.checkFirmwareRange(e);let r={1:{min:"1.0.0",max:"0"},2:{min:"2.0.0",max:"0"}},i=[];for(let n=0;n0)throw Y_.ERRORS.TypedError("Method_Discovery_BundleException",JSON.stringify(i))}async run(){if(this.params.length===1&&!this.params[0].path&&!this.params[0].descriptor)return this.discover(this.params[0]);let e=[],r=(i,n,a)=>{!this.hasBundle||this.device&&this.device.getCommands().disposed||this.postMessage((0,Ka.createUiMessage)(Ka.UI.BUNDLE_PROGRESS,{progress:i,response:n,error:a}))};for(let i=0;i[]):this.hasBundle?e:e[0]}async discover(e){let{coinInfo:r,defaultAccountType:i}=e,n=await(0,DV.initBlockchain)(r,this.postMessage),a=this.createUiPromise(Ka.UI.RECEIVE_ACCOUNT),s=new twt.Discovery({blockchain:n,commands:this.device.getCommands(),derivationType:typeof e.derivationType<"u"?e.derivationType:Y_.PROTO.CardanoDerivationType.ICARUS_TREZOR});s.on("progress",d=>{this.postMessage((0,Ka.createUiMessage)(Ka.UI.SELECT_ACCOUNT,{type:"progress",coinInfo:r,accounts:d}))}),s.on("complete",()=>{this.postMessage((0,Ka.createUiMessage)(Ka.UI.SELECT_ACCOUNT,{type:"end",coinInfo:r}))}),s.start().catch(d=>{a.reject(d)}),this.postMessage((0,Ka.createUiMessage)(Ka.UI.SELECT_ACCOUNT,{type:"start",accountTypes:s.types.map(d=>d.type),defaultAccountType:i,coinInfo:r}));let o=await a.promise;s.stop();let c=s.accounts[o.payload];s.completed||await(0,rwt.resolveAfter)(501);let u=await n.getAccountInfo({descriptor:c.descriptor,details:e.details,tokens:e.tokens,page:e.page,pageSize:e.pageSize,from:e.from,to:e.to,contractFilter:e.contractFilter,gap:e.gap,marker:e.marker}),f;return(0,FV.isUtxoBased)(r)&&typeof e.details=="string"&&e.details!=="basic"&&(f=await n.getAccountUtxo(c.descriptor)),{path:(0,U_e.getSerializedPath)(c.address_n),...u,utxo:f}}dispose(){this.disposed=!0;let{discovery:e}=this;e&&(e.removeAllListeners(),e.stop())}};LV.default=qV});var H_e=x(jV=>{"use strict";Object.defineProperty(jV,"__esModule",{value:!0});var nwt=Tt(),e8=ut(),$A=Gt(),QA=qt(),V_e=Pt(),l1=rr(),UV=class extends nwt.AbstractMethod{constructor(){super(...arguments),this.progress=0}init(){this.requiredPermissions=["read"],this.hasBundle=!!this.payload.bundle;let e=this.payload.bundle?this.payload:{...this.payload,bundle:[this.payload]};(0,e8.validateParams)(e,[{name:"bundle",type:"array"},{name:"useEventListener",type:"boolean"}]),this.params=e.bundle.map(i=>{(0,e8.validateParams)(i,[{name:"path",required:!0},{name:"coin",type:"string"},{name:"address",type:"string"},{name:"showOnTrezor",type:"boolean"},{name:"multisig",type:"object"},{name:"scriptType",type:"string"},{name:"unlockPath",type:"object"}]),i.unlockPath&&(0,e8.validateParams)(i.unlockPath,[{name:"address_n",required:!0,type:"array"},{name:"mac",required:!0,type:"string"}]);let n=(0,$A.validatePath)(i.path,1),a;if(i.coin&&(a=(0,QA.getBitcoinNetwork)(i.coin)),a&&!i.crossChain?(0,e8.validateCoinPath)(n,a):a||(a=(0,QA.getBitcoinNetwork)(n)),a)a&&(this.firmwareRange=(0,e8.getFirmwareRange)(this.name,a,this.firmwareRange));else throw V_e.ERRORS.TypedError("Method_UnknownCoin");return a=(0,QA.fixCoinInfoNetwork)(a,n),{address_n:n,address:i.address,show_display:typeof i.showOnTrezor=="boolean"?i.showOnTrezor:!0,multisig:i.multisig,script_type:i.scriptType,coinInfo:a,unlockPath:i.unlockPath}});let r=e.useEventListener&&this.params.length===1&&typeof this.params[0].address=="string"&&this.params[0].show_display;if(this.confirmed=r,this.useUi=!r,this.params.length===1)this.info=(0,$A.getLabel)("Export #NETWORK address",this.params[0].coinInfo);else{let i=this.params.map(a=>a.coinInfo),n=(0,QA.getUniqueNetworks)(i);n.length===1&&n[0]?this.info=(0,$A.getLabel)("Export multiple #NETWORK addresses",n[0]):this.info="Export multiple addresses"}}getButtonRequestData(e){if(e==="ButtonRequest_Address")return{type:"address",serializedPath:(0,$A.getSerializedPath)(this.params[this.progress].address_n),address:this.params[this.progress].address||"not-set"}}async confirmation(){if(this.confirmed)return!0;await this.getPopupPromise().promise;let e=this.createUiPromise(l1.UI.RECEIVE_CONFIRMATION);this.postMessage((0,l1.createUiMessage)(l1.UI.REQUEST_CONFIRMATION,{view:"export-address",label:this.info}));let r=await e.promise;return this.confirmed=r.payload,this.confirmed}async noBackupConfirmation(){await this.getPopupPromise().promise;let e=this.createUiPromise(l1.UI.RECEIVE_CONFIRMATION);return this.postMessage((0,l1.createUiMessage)(l1.UI.REQUEST_CONFIRMATION,{view:"no-backup"})),(await e.promise).payload}async _call({address_n:e,show_display:r,multisig:i,script_type:n,coinInfo:a,unlockPath:s}){let o=this.device.getCommands();return s&&await o.unlockPath(s),o.getAddress({address_n:e,show_display:r,multisig:i,script_type:n},a)}async run(){let e=[];for(let r=0;r{"use strict";Object.defineProperty(HV,"__esModule",{value:!0});var awt=Tt(),swt=ut(),owt=Pt(),uwt=qt(),VV=class extends awt.AbstractMethod{init(){this.requiredPermissions=[],this.useDevice=!1,this.useUi=!1;let{payload:e}=this;(0,swt.validateParams)(e,[{name:"coin",type:"string",required:!0}]);let r=(0,uwt.getCoinInfo)(e.coin);if(!r)throw owt.ERRORS.TypedError("Method_UnknownCoin");this.params={coinInfo:r}}run(){return Promise.resolve(this.params.coinInfo)}};HV.default=VV});var G_e=x(GV=>{"use strict";Object.defineProperty(GV,"__esModule",{value:!0});var cwt=Tt(),zV=class extends cwt.AbstractMethod{init(){this.requiredPermissions=[]}run(){return Promise.resolve({state:this.device.getExternalState()})}};GV.default=zV});var X_e=x(XV=>{"use strict";Object.defineProperty(XV,"__esModule",{value:!0});var dwt=Tt(),J_e=rr(),JV=class extends dwt.AbstractMethod{init(){this.requiredPermissions=[],this.useUi=!1,this.allowDeviceMode=[...this.allowDeviceMode,J_e.UI.INITIALIZE,J_e.UI.BOOTLOADER],this.useDeviceState=!1,this.skipFirmwareCheck=!0}run(){return Promise.resolve(this.device.features)}};XV.default=JV});var W_e=x(WV=>{"use strict";Object.defineProperty(WV,"__esModule",{value:!0});var lwt=Tt(),fwt=rr(),K_e=ut(),KV=class extends lwt.AbstractMethod{init(){this.requiredPermissions=["management"],this.useEmptyPassphrase=!0,this.useDeviceState=!1,this.allowDeviceMode=[fwt.UI.INITIALIZE];let{payload:e}=this;(0,K_e.validateParams)(e,[{name:"challenge",type:"string"}]),this.firmwareRange=(0,K_e.getFirmwareRange)(this.name,null,{1:{min:"1.11.1",max:"0"},2:{min:"2.5.1",max:"0"}}),this.params={challenge:e.challenge}}async run(){return(await this.device.getCommands().typedCall("GetFirmwareHash","FirmwareHash",this.params)).message}};WV.default=KV});var Z_e=x(YV=>{"use strict";Object.defineProperty(YV,"__esModule",{value:!0});var pwt=Tt(),ZV=ut(),$V=Gt(),hwt=qt(),t8=rr(),QV=class extends pwt.AbstractMethod{init(){this.requiredPermissions=["read"],this.info="Export ownership id",this.hasBundle=!!this.payload.bundle;let e=this.payload.bundle?this.payload:{...this.payload,bundle:[this.payload]};(0,ZV.validateParams)(e,[{name:"bundle",type:"array"}]),this.params=e.bundle.map(r=>{(0,ZV.validateParams)(r,[{name:"path",required:!0},{name:"coin",type:"string"},{name:"multisig",type:"object"},{name:"scriptType",type:"string"}]);let i=(0,$V.validatePath)(r.path,1),n=(0,hwt.getBitcoinNetwork)(r.coin||i),a=r.scriptType||(0,$V.getScriptType)(i);return this.firmwareRange=(0,ZV.getFirmwareRange)(this.name,n,this.firmwareRange),{address_n:i,coin_name:n?n.name:void 0,multisig:r.multisig,script_type:a}})}async confirmation(){if(this.confirmed)return!0;await this.getPopupPromise().promise;let e=this.createUiPromise(t8.UI.RECEIVE_CONFIRMATION,this.device),r=this.info;this.params.length>1&&(r="Export multiple ownership proof ids"),this.postMessage((0,t8.createUiMessage)(t8.UI.REQUEST_CONFIRMATION,{view:"export-address",label:r}));let i=await e.promise;return this.confirmed=i.payload,this.confirmed}async run(){let e=[],r=this.device.getCommands();for(let i=0;i{"use strict";Object.defineProperty(iH,"__esModule",{value:!0});var mwt=Tt(),eH=ut(),tH=Gt(),gwt=qt(),r8=rr(),rH=class extends mwt.AbstractMethod{init(){this.requiredPermissions=["read"],this.info="Export ownership proof",this.hasBundle=!!this.payload.bundle;let e=this.payload.bundle?this.payload:{...this.payload,bundle:[this.payload]};(0,eH.validateParams)(e,[{name:"bundle",type:"array"}]),this.params=e.bundle.map(r=>{(0,eH.validateParams)(r,[{name:"path",required:!0},{name:"coin",type:"string"},{name:"multisig",type:"object"},{name:"scriptType",type:"string"},{name:"userConfirmation",type:"boolean"},{name:"ownershipIds",type:"array"},{name:"commitmentData",type:"string"},{name:"preauthorized",type:"boolean"}]);let i=(0,tH.validatePath)(r.path,1),n=(0,gwt.getBitcoinNetwork)(r.coin||i),a=r.scriptType||(0,tH.getScriptType)(i);return this.firmwareRange=(0,eH.getFirmwareRange)(this.name,n,this.firmwareRange),r.preauthorized&&(this.preauthorized=r.preauthorized),{address_n:i,coin_name:n?n.name:void 0,multisig:r.multisig,script_type:a,user_confirmation:r.userConfirmation,ownership_ids:r.ownershipIds,commitment_data:r.commitmentData}})}async confirmation(){if(this.confirmed)return!0;await this.getPopupPromise().promise;let e=this.createUiPromise(r8.UI.RECEIVE_CONFIRMATION,this.device),r=this.info;this.params.length>1&&(r="Export multiple ownership proofs"),this.postMessage((0,r8.createUiMessage)(r8.UI.REQUEST_CONFIRMATION,{view:"export-address",label:r}));let i=await e.promise;return this.confirmed=i.payload,this.confirmed}async run(){let e=[],r=this.device.getCommands();for(let i=0;i{"use strict";Object.defineProperty(aH,"__esModule",{value:!0});var ywt=Tt(),i8=ut(),vwt=Gt(),n8=rr(),Q_e=qt(),bwt=D3(),nH=class extends ywt.AbstractMethod{init(){this.requiredPermissions=["read"],this.info="Export public key",this.hasBundle=!!this.payload.bundle;let e=this.payload.bundle?this.payload:{...this.payload,bundle:[this.payload]};(0,i8.validateParams)(e,[{name:"bundle",type:"array"}]),this.params=e.bundle.map(r=>{(0,i8.validateParams)(r,[{name:"path",required:!0},{name:"coin",type:"string"},{name:"crossChain",type:"boolean"},{name:"showOnTrezor",type:"boolean"},{name:"scriptType",type:["string","number"]},{name:"ignoreXpubMagic",type:"boolean"},{name:"ecdsaCurveName",type:"boolean"},{name:"unlockPath",type:"object"}]),r.unlockPath&&(0,i8.validateParams)(r.unlockPath,[{name:"address_n",required:!0,type:"array"},{name:"mac",required:!0,type:"string"}]);let i;r.coin&&(i=(0,Q_e.getBitcoinNetwork)(r.coin));let n=(0,vwt.validatePath)(r.path,i?3:0);return i&&!r.crossChain?(0,i8.validateCoinPath)(n,i):i||(i=(0,Q_e.getBitcoinNetwork)(n)),i&&(this.firmwareRange=(0,i8.getFirmwareRange)(this.name,i,this.firmwareRange)),{address_n:n,coin_name:i?.name,show_display:r.showOnTrezor,script_type:r.scriptType,ignore_xpub_magic:r.ignoreXpubMagic,ecdsa_curve_name:r.ecdsaCurveName,coinInfo:i,unlockPath:r.unlockPath}})}async confirmation(){if(this.confirmed)return!0;await this.getPopupPromise().promise;let e=this.createUiPromise(n8.UI.RECEIVE_CONFIRMATION),r;this.params.length>1?r="Export multiple public keys":r=(0,bwt.getPublicKeyLabel)(this.params[0].address_n,this.params[0].coinInfo),this.postMessage((0,n8.createUiMessage)(n8.UI.REQUEST_CONFIRMATION,{view:"export-xpub",label:r}));let i=await e.promise;return this.confirmed=i.payload,this.confirmed}async run(){let e=[],r=this.device.getCommands();for(let i=0;i{"use strict";Object.defineProperty(oH,"__esModule",{value:!0});var _wt=Tt(),wwt=Bf(),sH=class extends _wt.AbstractMethod{init(){this.requiredPermissions=[],this.useDevice=!1,this.useUi=!1}run(){return Promise.resolve(wwt.DataManager.getSettings())}};oH.default=sH});var r8e=x(dH=>{"use strict";Object.defineProperty(dH,"__esModule",{value:!0});var xwt=Tt(),uH=ut(),Swt=qt(),YA=Gt(),Ewt=Pt(),f1=rr(),t8e=104,Twt=152,Awt=96,cH=class extends xwt.AbstractMethod{constructor(){super(...arguments),this.progress=0}init(){this.requiredPermissions=["read"],this.firmwareRange=(0,uH.getFirmwareRange)(this.name,(0,Swt.getMiscNetwork)("NEM"),this.firmwareRange),this.hasBundle=!!this.payload.bundle;let e=this.payload.bundle?this.payload:{...this.payload,bundle:[this.payload]};(0,uH.validateParams)(e,[{name:"bundle",type:"array"},{name:"useEventListener",type:"boolean"}]),this.params=e.bundle.map(i=>((0,uH.validateParams)(i,[{name:"path",required:!0},{name:"address",type:"string"},{name:"network",type:"number"},{name:"showOnTrezor",type:"boolean"}]),{address_n:(0,YA.validatePath)(i.path,3),network:i.network||t8e,show_display:typeof i.showOnTrezor=="boolean"?i.showOnTrezor:!0,address:i.address}));let r=e.useEventListener&&this.params.length===1&&typeof this.params[0].address=="string"&&this.params[0].show_display;if(this.confirmed=r,this.useUi=!r,this.params.length===1){let i="Unknown";switch(this.params[0].network){case t8e:i="Mainnet";break;case Twt:i="Testnet";break;case Awt:i="Mijin";break}this.info=`Export NEM address for account #${(0,YA.fromHardened)(this.params[0].address_n[2])+1} on ${i} network`}else this.info="Export multiple NEM addresses"}getButtonRequestData(e){if(e==="ButtonRequest_Address")return{type:"address",serializedPath:(0,YA.getSerializedPath)(this.params[this.progress].address_n),address:this.params[this.progress].address||"not-set"}}async confirmation(){if(this.confirmed)return!0;await this.getPopupPromise().promise;let e=this.createUiPromise(f1.UI.RECEIVE_CONFIRMATION);this.postMessage((0,f1.createUiMessage)(f1.UI.REQUEST_CONFIRMATION,{view:"export-address",label:this.info}));let r=await e.promise;return this.confirmed=r.payload,this.confirmed}async noBackupConfirmation(){await this.getPopupPromise().promise;let e=this.createUiPromise(f1.UI.RECEIVE_CONFIRMATION);return this.postMessage((0,f1.createUiMessage)(f1.UI.REQUEST_CONFIRMATION,{view:"no-backup"})),(await e.promise).payload}async _call({address_n:e,network:r,show_display:i}){return(await this.device.getCommands().typedCall("NEMGetAddress","NEMAddress",{address_n:e,network:r,show_display:i})).message}async run(){let e=[];for(let r=0;r{"use strict";Object.defineProperty(eP,"__esModule",{value:!0});eP.createTx=void 0;var Yu=Pt(),i8e=(t,e)=>({address_n:e,network:t.version>>24&255,timestamp:t.timeStamp,fee:t.fee,deadline:t.deadline,signer:e?void 0:t.signer}),Pwt=t=>{let e=t.mosaics?t.mosaics.map(r=>({namespace:r.mosaicId.namespaceId,mosaic:r.mosaicId.name,quantity:r.quantity})):void 0;return{recipient:t.recipient,amount:t.amount,payload:t.message?t.message.payload:void 0,public_key:t.message&&t.message.type===2?t.message.publicKey:void 0,mosaics:e}},Owt=t=>({mode:t.importanceTransfer.mode,public_key:t.importanceTransfer.publicKey}),Rwt=t=>({modifications:t.modifications?t.modifications.map(r=>({type:r.modificationType,public_key:r.cosignatoryAccount})):void 0,relative_change:t.minCosignatories.relativeChange}),Mwt=t=>({namespace:t.newPart,parent:t.parent,sink:t.rentalFeeSink,fee:t.rentalFee}),Cwt=t=>{let{levy:e}=t.mosaicDefinition,r={namespace:t.mosaicDefinition.id.namespaceId,mosaic:t.mosaicDefinition.id.name,levy:e&&e.type,fee:e&&e.fee,levy_address:e&&e.recipient,levy_namespace:e&&e.mosaicId&&e.mosaicId.namespaceId,levy_mosaic:e&&e.mosaicId&&e.mosaicId.name,description:t.mosaicDefinition.description},{properties:i}=t.mosaicDefinition;return Array.isArray(i)&&i.forEach(n=>{let{name:a,value:s}=n;switch(a){case"divisibility":r.divisibility=parseInt(s,10);break;case"initialSupply":r.supply=parseInt(s,10);break;case"supplyMutable":r.mutable_supply=s==="true";break;case"transferable":r.transferable=s==="true";break}}),{definition:r,sink:t.creationFeeSink,fee:t.creationFee}},Iwt=t=>({namespace:t.mosaicId.namespaceId,mosaic:t.mosaicId.name,type:t.supplyType,delta:t.delta}),Nwt=(t,e)=>{let r=t,i={transaction:i8e(t,e),transfer:void 0,importance_transfer:void 0,aggregate_modification:void 0,provision_namespace:void 0,mosaic_creation:void 0,supply_change:void 0};switch((t.type===Yu.NEM.TxType.COSIGNING||t.type===Yu.NEM.TxType.MULTISIG||t.type===Yu.NEM.TxType.MULTISIG_SIGNATURE)&&(i.cosigning=t.type===Yu.NEM.TxType.COSIGNING||t.type===Yu.NEM.TxType.MULTISIG_SIGNATURE,r=t.otherTrans,i.multisig=i8e(r)),r.type){case Yu.NEM.TxType.TRANSFER:i.transfer=Pwt(r);break;case Yu.NEM.TxType.IMPORTANCE_TRANSFER:i.importance_transfer=Owt(r);break;case Yu.NEM.TxType.AGGREGATE_MODIFICATION:i.aggregate_modification=Rwt(r);break;case Yu.NEM.TxType.PROVISION_NAMESPACE:i.provision_namespace=Mwt(r);break;case Yu.NEM.TxType.MOSAIC_CREATION:i.mosaic_creation=Cwt(r);break;case Yu.NEM.TxType.SUPPLY_CHANGE:i.supply_change=Iwt(r);break;default:throw Yu.ERRORS.TypedError("Method_InvalidParameter","Unknown transaction type")}return i};eP.createTx=Nwt});var s8e=x(fH=>{"use strict";Object.defineProperty(fH,"__esModule",{value:!0});var kwt=mr(),Bwt=Tt(),a8e=ut(),Fwt=qt(),Dwt=Gt(),qwt=kwt.__importStar(n8e()),lH=class extends Bwt.AbstractMethod{init(){this.requiredPermissions=["read","write"],this.firmwareRange=(0,a8e.getFirmwareRange)(this.name,(0,Fwt.getMiscNetwork)("NEM"),this.firmwareRange),this.info="Sign NEM transaction";let{payload:e}=this;(0,a8e.validateParams)(e,[{name:"path",required:!0},{name:"transaction",required:!0}]);let r=(0,Dwt.validatePath)(e.path,3);this.params=qwt.createTx(e.transaction,r)}async run(){return(await this.device.getCommands().typedCall("NEMSignTx","NEMSignedTx",this.params)).message}};fH.default=lH});var c8e=x(hH=>{"use strict";Object.defineProperty(hH,"__esModule",{value:!0});var Lwt=Tt(),Uwt=ut(),jwt=qt(),o8e=Pt(),u8e=ea(),pH=class extends Lwt.AbstractMethod{init(){this.requiredPermissions=[],this.useUi=!1,this.useDevice=!1;let{payload:e}=this;(0,Uwt.validateParams)(e,[{name:"tx",type:"string",required:!0},{name:"coin",type:"string",required:!0}]);let r=(0,jwt.getCoinInfo)(e.coin);if(!r)throw o8e.ERRORS.TypedError("Method_UnknownCoin");if((0,u8e.isBackendSupported)(r),r.type==="bitcoin"&&!/^[0-9A-Fa-f]*$/.test(e.tx))throw o8e.ERRORS.TypedError("Method_InvalidParameter","Transaction must be hexadecimal");this.params={tx:e.tx,coinInfo:r}}async run(){return{txid:await(await(0,u8e.initBlockchain)(this.params.coinInfo,this.postMessage)).pushTransaction(this.params.tx)}}};hH.default=pH});var d8e=x(gH=>{"use strict";Object.defineProperty(gH,"__esModule",{value:!0});var Vwt=Tt(),Hwt=ut(),a8=rr(),mH=class extends Vwt.AbstractMethod{init(){this.allowDeviceMode=[a8.UI.INITIALIZE,a8.UI.SEEDLESS],this.skipFinalReload=!0,this.keepSession=!1,this.requiredPermissions=["management"],this.info="Reboot to bootloader",this.useDeviceState=!1,this.firmwareRange=(0,Hwt.getFirmwareRange)(this.name,null,{1:{min:"1.10.0",max:"0"},2:{min:"0",max:"0"}})}async confirmation(){if(this.confirmed)return!0;await this.getPopupPromise().promise;let e=this.createUiPromise(a8.UI.RECEIVE_CONFIRMATION);this.postMessage((0,a8.createUiMessage)(a8.UI.REQUEST_CONFIRMATION,{view:"device-management",customConfirmButton:{className:"confirm",label:"Reboot"},label:"Are you sure you want to reboot to bootloader?"}));let r=await e.promise;return this.confirmed=r.payload,this.confirmed}async run(){return(await this.device.getCommands().typedCall("RebootToBootloader","Success")).message}};gH.default=mH});var l8e=x(vH=>{"use strict";Object.defineProperty(vH,"__esModule",{value:!0});var zwt=Tt(),tP=rr(),Gwt=ut(),yH=class extends zwt.AbstractMethod{init(){this.requiredPermissions=["management"],this.useEmptyPassphrase=!0;let{payload:e}=this;(0,Gwt.validateParams)(e,[{name:"word_count",type:"number"},{name:"passphrase_protection",type:"boolean"},{name:"pin_protection",type:"boolean"},{name:"language",type:"string"},{name:"label",type:"string"},{name:"enforce_wordlist",type:"boolean"},{name:"type",type:"number"},{name:"u2f_counter",type:"number"},{name:"dry_run",type:"boolean"}]),this.params={word_count:e.word_count,passphrase_protection:e.passphrase_protection,pin_protection:e.pin_protection,language:e.language,label:e.label,enforce_wordlist:e.enforce_wordlist,type:e.type,u2f_counter:e.u2f_counter,dry_run:e.dry_run},this.allowDeviceMode=[...this.allowDeviceMode,tP.UI.INITIALIZE],this.useDeviceState=!1}async confirmation(){await this.getPopupPromise().promise;let e=this.createUiPromise(tP.UI.RECEIVE_CONFIRMATION);return this.postMessage((0,tP.createUiMessage)(tP.UI.REQUEST_CONFIRMATION,{view:"device-management",customConfirmButton:{className:"confirm",label:"Proceed"},label:"Do you want to recover device from seed?"})),(await e.promise).payload}async run(){return(await this.device.getCommands().typedCall("RecoveryDevice","Success",this.params)).message}};vH.default=yH});var f8e=x(xH=>{"use strict";Object.defineProperty(xH,"__esModule",{value:!0});var Jwt=Tt(),bH=ut(),Xwt=Pt(),_H=rr(),Kwt=Bf(),wH=class extends Jwt.AbstractMethod{init(){this.requiredPermissions=["read","write"],this.firmwareRange=(0,bH.getFirmwareRange)(this.name,null,this.firmwareRange),this.info="Login",this.useEmptyPassphrase=!0;let{payload:e}=this,r={},i=Kwt.DataManager.getSettings();if(i.origin){let[n,a,s]=i.origin.split(":");r.proto=n,r.host=a.substring(2),s&&(r.port=s),r.index=0}(0,bH.validateParams)(e,[{name:"challengeHidden",type:"string"},{name:"challengeVisual",type:"string"},{name:"asyncChallenge",type:"boolean"}]),this.params={identity:r,challenge_hidden:e.challengeHidden||"",challenge_visual:e.challengeVisual||""},this.asyncChallenge=!!e.asyncChallenge}async run(){if(this.asyncChallenge){let i=this.createUiPromise(_H.UI.LOGIN_CHALLENGE_RESPONSE);this.postMessage((0,_H.createUiMessage)(_H.UI.LOGIN_CHALLENGE_REQUEST));let{payload:n}=await i.promise;if(typeof n=="string")throw Xwt.ERRORS.TypedError("Runtime",`TrezorConnect.requestLogin callback error: ${n}`);(0,bH.validateParams)(n,[{name:"challengeHidden",type:"string",required:!0},{name:"challengeVisual",type:"string",required:!0}]),this.params.challenge_hidden=n.challengeHidden,this.params.challenge_visual=n.challengeVisual}let e=this.device.getCommands(),{message:r}=await e.typedCall("SignIdentity","SignedIdentity",this.params);return{address:r.address,publicKey:r.public_key,signature:r.signature}}};xH.default=wH});var h8e=x(EH=>{"use strict";Object.defineProperty(EH,"__esModule",{value:!0});var Wwt=Tt(),s8=rr(),p8e=ut(),SH=class extends Wwt.AbstractMethod{init(){this.allowDeviceMode=[s8.UI.INITIALIZE,s8.UI.SEEDLESS],this.useDeviceState=!1,this.requiredPermissions=["management"],this.firmwareRange=(0,p8e.getFirmwareRange)(this.name,null,this.firmwareRange),this.info="Setup device";let{payload:e}=this;(0,p8e.validateParams)(e,[{name:"display_random",type:"boolean"},{name:"strength",type:"number"},{name:"passphrase_protection",type:"boolean"},{name:"pin_protection",type:"boolean"},{name:"language",type:"string"},{name:"label",type:"string"},{name:"u2f_counter",type:"number"},{name:"skip_backup",type:"boolean"},{name:"no_backup",type:"boolean"},{name:"backup_type",type:"number"}]),this.params={display_random:e.display_random,strength:e.strength||256,passphrase_protection:e.passphrase_protection,pin_protection:e.pin_protection,language:e.language,label:e.label,u2f_counter:e.u2f_counter||Math.floor(Date.now()/1e3),skip_backup:e.skip_backup,no_backup:e.no_backup,backup_type:e.backup_type}}async confirmation(){if(this.confirmed)return!0;await this.getPopupPromise().promise;let e=this.createUiPromise(s8.UI.RECEIVE_CONFIRMATION);this.postMessage((0,s8.createUiMessage)(s8.UI.REQUEST_CONFIRMATION,{view:"device-management",label:"Do you really you want to create a new wallet?"}));let r=await e.promise;return this.confirmed=r.payload,this.confirmed}async run(){return(await this.device.getCommands().typedCall("ResetDevice","Success",this.params)).message}};EH.default=SH});var m8e=x(PH=>{"use strict";Object.defineProperty(PH,"__esModule",{value:!0});var Zwt=Tt(),TH=ut(),$wt=qt(),rP=Gt(),Qwt=Pt(),p1=rr(),AH=class extends Zwt.AbstractMethod{constructor(){super(...arguments),this.progress=0}init(){this.requiredPermissions=["read"],this.firmwareRange=(0,TH.getFirmwareRange)(this.name,(0,$wt.getMiscNetwork)("Ripple"),this.firmwareRange),this.hasBundle=!!this.payload.bundle;let e=this.payload.bundle?this.payload:{...this.payload,bundle:[this.payload]};(0,TH.validateParams)(e,[{name:"bundle",type:"array"},{name:"useEventListener",type:"boolean"}]),this.params=e.bundle.map(i=>((0,TH.validateParams)(i,[{name:"path",required:!0},{name:"address",type:"string"},{name:"showOnTrezor",type:"boolean"}]),{address_n:(0,rP.validatePath)(i.path,3),address:i.address,show_display:typeof i.showOnTrezor=="boolean"?i.showOnTrezor:!0}));let r=e.useEventListener&&this.params.length===1&&typeof this.params[0].address=="string"&&this.params[0].show_display;this.confirmed=r,this.useUi=!r,this.params.length===1?this.info=`Export Ripple address for account #${(0,rP.fromHardened)(this.params[0].address_n[2])+1}`:this.info="Export multiple Ripple addresses"}getButtonRequestData(e){if(e==="ButtonRequest_Address")return{type:"address",serializedPath:(0,rP.getSerializedPath)(this.params[this.progress].address_n),address:this.params[this.progress].address||"not-set"}}async confirmation(){if(this.confirmed)return!0;await this.getPopupPromise().promise;let e=this.createUiPromise(p1.UI.RECEIVE_CONFIRMATION);this.postMessage((0,p1.createUiMessage)(p1.UI.REQUEST_CONFIRMATION,{view:"export-address",label:this.info}));let r=await e.promise;return this.confirmed=r.payload,this.confirmed}async noBackupConfirmation(){await this.getPopupPromise().promise;let e=this.createUiPromise(p1.UI.RECEIVE_CONFIRMATION);return this.postMessage((0,p1.createUiMessage)(p1.UI.REQUEST_CONFIRMATION,{view:"no-backup"})),(await e.promise).payload}async _call({address_n:e,show_display:r}){return(await this.device.getCommands().typedCall("RippleGetAddress","RippleAddress",{address_n:e,show_display:r})).message}async run(){let e=[];for(let r=0;r{"use strict";Object.defineProperty(RH,"__esModule",{value:!0});var Ywt=Tt(),iP=ut(),ext=qt(),txt=Gt(),OH=class extends Ywt.AbstractMethod{init(){this.requiredPermissions=["read","write"],this.firmwareRange=(0,iP.getFirmwareRange)(this.name,(0,ext.getMiscNetwork)("Ripple"),this.firmwareRange),this.info="Sign Ripple transaction";let{payload:e}=this;(0,iP.validateParams)(e,[{name:"path",required:!0},{name:"transaction",required:!0}]);let r=(0,txt.validatePath)(e.path,5),{transaction:i}=e;(0,iP.validateParams)(i,[{name:"fee",type:"uint"},{name:"flags",type:"number"},{name:"sequence",type:"number"},{name:"maxLedgerVersion",type:"number"},{name:"payment",type:"object"}]),(0,iP.validateParams)(i.payment,[{name:"amount",type:"uint",required:!0},{name:"destination",type:"string",required:!0},{name:"destinationTag",type:"number"}]),this.params={address_n:r,fee:i.fee,flags:i.flags,sequence:i.sequence,last_ledger_sequence:i.maxLedgerVersion,payment:{amount:i.payment.amount,destination:i.payment.destination,destination_tag:i.payment.destinationTag}}}async run(){let e=this.device.getCommands(),{message:r}=await e.typedCall("RippleSignTx","RippleSignedTx",this.params);return{serializedTx:r.serialized_tx,signature:r.signature}}};RH.default=OH});var b8e=x(CH=>{"use strict";Object.defineProperty(CH,"__esModule",{value:!0});var rxt=Tt(),y8e=rr(),v8e=ut(),MH=class extends rxt.AbstractMethod{init(){this.useDeviceState=!1,this.requiredPermissions=["management"];let{payload:e}=this;(0,v8e.validateParams)(e,[{name:"expiry_ms",type:"number"}]),this.firmwareRange=(0,v8e.getFirmwareRange)(this.name,null,{1:{min:"0",max:"0"},2:{min:"2.5.3",max:"0"}}),this.params={expiry_ms:e.expiry_ms}}async run(){let e=this.device.getCommands(),{message:r}=await e.typedCall("SetBusy","Success",this.params);return this.keepSession&&!!this.params.expiry_ms&&(this.device.features.busy=!0,this.postMessage((0,y8e.createDeviceMessage)(y8e.DEVICE.CHANGED,this.device.toMessageObject()))),r}};CH.default=MH});var w8e=x(NH=>{"use strict";Object.defineProperty(NH,"__esModule",{value:!0});var ixt=Tt(),nxt=ut(),_8e=Bf(),axt=ea(),IH=class extends ixt.AbstractMethod{init(){this.requiredPermissions=[],this.useDevice=!1,this.useUi=!1,(0,nxt.validateParams)(this.payload,[])}async run(){let{proxy:e}=_8e.DataManager.getSettings();return e!==this.payload.proxy&&(_8e.DataManager.settings.proxy=this.payload.proxy,await(0,axt.reconnectAllBackends)()),{message:"Success"}}};NH.default=IH});var S8e=x(DH=>{"use strict";Object.defineProperty(DH,"__esModule",{value:!0});var sxt=Tt(),kH=ut(),BH=Gt(),x8e=qt(),oxt=rd(),FH=class extends sxt.AbstractMethod{init(){this.requiredPermissions=["read","write"];let{payload:e}=this;(0,kH.validateParams)(e,[{name:"path",required:!0},{name:"coin",type:"string"},{name:"message",type:"string",required:!0},{name:"hex",type:"boolean"},{name:"no_script_type",type:"boolean"}]);let r=(0,BH.validatePath)(e.path),i;e.coin?(i=(0,x8e.getBitcoinNetwork)(e.coin),(0,kH.validateCoinPath)(r,i)):i=(0,x8e.getBitcoinNetwork)(r),this.info=(0,BH.getLabel)("Sign #NETWORK message",i),this.firmwareRange=(0,kH.getFirmwareRange)(e.no_script_type?"signMessageNoScriptType":this.name,i,this.firmwareRange);let n=e.hex?(0,oxt.messageToHex)(e.message):Buffer.from(e.message,"utf8").toString("hex"),a=(0,BH.getScriptType)(r);this.params={address_n:r,message:n,coin_name:i?i.name:void 0,script_type:a&&a!=="SPENDMULTISIG"?a:"SPENDADDRESS",no_script_type:e.no_script_type}}async run(){let e=this.device.getCommands(),{message:r}=await e.typedCall("SignMessage","MessageSignature",this.params),i=Buffer.from(r.signature,"hex");return r.signature=i.toString("base64"),r}};DH.default=FH});var E8e=x(jH=>{"use strict";Object.defineProperty(jH,"__esModule",{value:!0});var uxt=mr(),cxt=uxt.__importDefault(Yr()),dxt=Tt(),qH=ut(),lxt=qt(),fxt=Gt(),LH=Pt(),nP=ea(),vo=Yj(),UH=class extends dxt.AbstractMethod{init(){this.requiredPermissions=["read","write"],this.info="Sign transaction";let{payload:e}=this;(0,qH.validateParams)(e,[{name:"coin",type:"string",required:!0},{name:"inputs",type:"array",required:!0},{name:"outputs",type:"array",required:!0},{name:"paymentRequests",type:"array",allowEmpty:!0},{name:"coinjoinRequest",type:"object"},{name:"refTxs",type:"array",allowEmpty:!0},{name:"account",type:"object"},{name:"locktime",type:"number"},{name:"timestamp",type:"number"},{name:"version",type:"number"},{name:"expiry",type:"number"},{name:"overwintered",type:"boolean"},{name:"versionGroupId",type:"number"},{name:"branchId",type:"number"},{name:"decredStakingTicket",type:"boolean"},{name:"push",type:"boolean"},{name:"preauthorized",type:"boolean"},{name:"amountUnit",type:["number","string"]},{name:"unlockPath",type:"object"},{name:"serialize",type:"boolean"}]),e.unlockPath&&(0,qH.validateParams)(e.unlockPath,[{name:"address_n",required:!0,type:"array"},{name:"mac",required:!0,type:"string"}]);let r=(0,lxt.getBitcoinNetwork)(e.coin);if(!r)throw LH.ERRORS.TypedError("Method_UnknownCoin");this.firmwareRange=(0,qH.getFirmwareRange)(this.name,r,this.firmwareRange),this.preauthorized=e.preauthorized,this.info=(0,fxt.getLabel)("Sign #NETWORK transaction",r);let i=(0,vo.validateTrezorInputs)(e.inputs,r),n=(0,vo.validateTrezorOutputs)(e.outputs,r),a=(0,vo.validateReferencedTransactions)(e.refTxs,i,n),s=n.filter(o=>typeof o.amount=="string"&&!Object.prototype.hasOwnProperty.call(o,"op_return_data"));if(s.length>0&&s.reduce((c,u)=>c.plus(typeof u.amount=="string"?u.amount:"0"),new cxt.default(0)).lte(r.dustLimit))throw LH.ERRORS.TypedError("Method_InvalidParameter","Total amount is below dust limit.");this.params={inputs:i,outputs:e.outputs,paymentRequests:e.paymentRequests||[],refTxs:a,addresses:e.account?e.account.addresses:void 0,options:{lock_time:e.locktime,timestamp:e.timestamp,version:e.version,expiry:e.expiry,overwintered:e.overwintered,version_group_id:e.versionGroupId,branch_id:e.branchId,decred_staking_ticket:e.decredStakingTicket,amount_unit:e.amountUnit,serialize:e.serialize,coinjoin_request:e.coinjoinRequest},coinInfo:r,push:typeof e.push=="boolean"?e.push:!1,unlockPath:e.unlockPath},this.params.options=(0,vo.enhanceSignTx)(this.params.options,r)}async fetchAddresses(e){let{device:r,params:{inputs:i,coinInfo:n}}=this,a=i.find(u=>u.address_n);if(!a||!a.address_n)throw LH.ERRORS.TypedError("Runtime","Account not found");let s=a.address_n.slice(0,3),o=await r.getCommands().getHDNode({address_n:s},{coinInfo:n});return(await e.getAccountInfo({descriptor:o.xpubSegwit||o.xpub,details:"tokens"})).addresses}async fetchRefTxs(e){let{params:{inputs:r,outputs:i,options:n,coinInfo:a,addresses:s}}=this,c=(0,vo.requireReferencedTransactions)(r,n,a)?(0,vo.getReferencedTransactions)(r):[],u=e?[]:(0,vo.getOrigTransactions)(r,i);if(!c.length&&!u.length)return[];(0,nP.isBackendSupported)(a);let f=await(0,nP.initBlockchain)(a,this.postMessage),d=c.length?await f.getTransactions(c).then(b=>((0,vo.enhanceTrezorInputs)(this.params.inputs,b),(0,vo.transformReferencedTransactions)(b,a))):[],p=u.length?await f.getTransactions(u).then(async b=>{let T=s??await this.fetchAddresses(f);return(0,vo.transformOrigTransactions)(b,a,T)}):[];return d.concat(p)}async run(){var e;let{device:r,params:i}=this,n=!!r.unavailableCapabilities.replaceTransaction,a=(e=i.refTxs)!==null&&e!==void 0?e:await this.fetchRefTxs(n);this.preauthorized?await r.getCommands().preauthorize(!0):i.unlockPath&&await r.getCommands().unlockPath(i.unlockPath);let o=await(n?vo.signTxLegacy:vo.signTx)({...i,refTxs:a,typedCall:r.getCommands().typedCall.bind(r.getCommands())});if(!o.serializedTx)return o;if(i.options.decred_staking_ticket)await(0,vo.verifyTicketTx)(r.getCommands().getHDNode.bind(r.getCommands()),i.inputs,i.outputs,o.serializedTx,i.coinInfo);else{let c=await(0,vo.verifyTx)(r.getCommands().getHDNode.bind(r.getCommands()),i.inputs,i.outputs,o.serializedTx,i.coinInfo,i.unlockPath);c.hasWitnesses()&&(o.witnesses=c.ins.map((u,f)=>{var d;return(d=c.getWitness(f))===null||d===void 0?void 0:d.toString("hex")}))}if(i.push){(0,nP.isBackendSupported)(i.coinInfo);let u=await(await(0,nP.initBlockchain)(i.coinInfo,this.postMessage)).pushTransaction(o.serializedTx);return{...o,txid:u}}return o}};jH.default=UH});var T8e=x(zH=>{"use strict";Object.defineProperty(zH,"__esModule",{value:!0});var pxt=Tt(),VH=ut(),hxt=qt(),aP=Gt(),mxt=Pt(),h1=rr(),HH=class extends pxt.AbstractMethod{constructor(){super(...arguments),this.progress=0}init(){this.requiredPermissions=["read"],this.firmwareRange=(0,VH.getFirmwareRange)(this.name,(0,hxt.getMiscNetwork)("Stellar"),this.firmwareRange),this.hasBundle=!!this.payload.bundle;let e=this.payload.bundle?this.payload:{...this.payload,bundle:[this.payload]};(0,VH.validateParams)(e,[{name:"bundle",type:"array"},{name:"useEventListener",type:"boolean"}]),this.params=e.bundle.map(i=>((0,VH.validateParams)(i,[{name:"path",required:!0},{name:"address",type:"string"},{name:"showOnTrezor",type:"boolean"}]),{address_n:(0,aP.validatePath)(i.path,3),address:i.address,show_display:typeof i.showOnTrezor=="boolean"?i.showOnTrezor:!0}));let r=e.useEventListener&&this.params.length===1&&typeof this.params[0].address=="string"&&this.params[0].show_display;this.confirmed=r,this.useUi=!r,this.params.length===1?this.info=`Export Stellar address for account #${(0,aP.fromHardened)(this.params[0].address_n[2])+1}`:this.info="Export multiple Stellar addresses"}getButtonRequestData(e){if(e==="ButtonRequest_Address")return{type:"address",serializedPath:(0,aP.getSerializedPath)(this.params[this.progress].address_n),address:this.params[this.progress].address||"not-set"}}async confirmation(){if(this.confirmed)return!0;await this.getPopupPromise().promise;let e=this.createUiPromise(h1.UI.RECEIVE_CONFIRMATION);this.postMessage((0,h1.createUiMessage)(h1.UI.REQUEST_CONFIRMATION,{view:"export-address",label:this.info}));let r=await e.promise;return this.confirmed=r.payload,this.confirmed}async noBackupConfirmation(){await this.getPopupPromise().promise;let e=this.createUiPromise(h1.UI.RECEIVE_CONFIRMATION);return this.postMessage((0,h1.createUiMessage)(h1.UI.REQUEST_CONFIRMATION,{view:"no-backup"})),(await e.promise).payload}async _call({address_n:e,show_display:r}){return(await this.device.getCommands().typedCall("StellarGetAddress","StellarAddress",{address_n:e,show_display:r})).message}async run(){let e=[];for(let r=0;r{"use strict";Object.defineProperty(sP,"__esModule",{value:!0});sP.stellarSignTx=void 0;var A8e=Pt(),m1=ut(),P8e=async(t,e,r)=>{let i=r+1>=e.length,{type:n,...a}=e[r];return i?(await t(n,"StellarSignedTx",a)).message:(await t(n,"StellarTxOpRequest",a),P8e(t,e,r+1))},gxt=t=>{if(!t.timebounds)throw A8e.ERRORS.TypedError("Runtime","transformSignMessage: Unspecified timebounds are not supported");let e={address_n:[],network_passphrase:"",source_account:t.source,fee:t.fee,sequence_number:t.sequence,timebounds_start:t.timebounds.minTime,timebounds_end:t.timebounds.maxTime,memo_type:A8e.PROTO.StellarMemoType.NONE,num_operations:t.operations.length};return t.memo&&(e.memo_type=t.memo.type,e.memo_text=t.memo.text,e.memo_id=t.memo.id,e.memo_hash=t.memo.hash),e},yxt=t=>{switch(t.type){case"createAccount":return(0,m1.validateParams)(t,[{name:"destination",type:"string",required:!0},{name:"startingBalance",type:"uint",required:!0}]),{type:"StellarCreateAccountOp",source_account:t.source,new_account:t.destination,starting_balance:t.startingBalance};case"payment":return(0,m1.validateParams)(t,[{name:"destination",type:"string",required:!0},{name:"amount",type:"uint",required:!0}]),{type:"StellarPaymentOp",source_account:t.source,destination_account:t.destination,asset:t.asset,amount:t.amount};case"pathPaymentStrictReceive":return(0,m1.validateParams)(t,[{name:"destAmount",type:"uint",required:!0}]),{type:"StellarPathPaymentStrictReceiveOp",source_account:t.source,send_asset:t.sendAsset,send_max:t.sendMax,destination_account:t.destination,destination_asset:t.destAsset,destination_amount:t.destAmount,paths:t.path};case"pathPaymentStrictSend":return(0,m1.validateParams)(t,[{name:"destMin",type:"uint",required:!0}]),{type:"StellarPathPaymentStrictSendOp",source_account:t.source,send_asset:t.sendAsset,send_amount:t.sendAmount,destination_account:t.destination,destination_asset:t.destAsset,destination_min:t.destMin,paths:t.path};case"createPassiveSellOffer":return(0,m1.validateParams)(t,[{name:"amount",type:"uint",required:!0}]),{type:"StellarCreatePassiveSellOfferOp",source_account:t.source,buying_asset:t.buying,selling_asset:t.selling,amount:t.amount,price_n:t.price.n,price_d:t.price.d};case"manageSellOffer":return(0,m1.validateParams)(t,[{name:"amount",type:"uint",required:!0}]),{type:"StellarManageSellOfferOp",source_account:t.source,buying_asset:t.buying,selling_asset:t.selling,amount:t.amount,offer_id:t.offerId||0,price_n:t.price.n,price_d:t.price.d};case"manageBuyOffer":return(0,m1.validateParams)(t,[{name:"amount",type:"uint",required:!0}]),{type:"StellarManageBuyOfferOp",source_account:t.source,buying_asset:t.buying,selling_asset:t.selling,amount:t.amount,offer_id:t.offerId||0,price_n:t.price.n,price_d:t.price.d};case"setOptions":{let e=t.signer?{signer_type:t.signer.type,signer_key:t.signer.key,signer_weight:t.signer.weight}:void 0;return{type:"StellarSetOptionsOp",source_account:t.source,clear_flags:t.clearFlags,set_flags:t.setFlags,master_weight:t.masterWeight,low_threshold:t.lowThreshold,medium_threshold:t.medThreshold,high_threshold:t.highThreshold,home_domain:t.homeDomain,inflation_destination_account:t.inflationDest,...e}}case"changeTrust":return(0,m1.validateParams)(t,[{name:"limit",type:"uint"}]),{type:"StellarChangeTrustOp",source_account:t.source,asset:t.line,limit:t.limit};case"allowTrust":return{type:"StellarAllowTrustOp",source_account:t.source,trusted_account:t.trustor,asset_type:t.assetType,asset_code:t.assetCode,is_authorized:!!t.authorize};case"accountMerge":return{type:"StellarAccountMergeOp",source_account:t.source,destination_account:t.destination};case"manageData":return{type:"StellarManageDataOp",source_account:t.source,key:t.name,value:t.value};case"bumpSequence":return{type:"StellarBumpSequenceOp",source_account:t.source,bump_to:t.bumpTo}}},vxt=async(t,e,r,i)=>{let n=gxt(i);n.address_n=e,n.network_passphrase=r;let a=[];return i.operations.forEach(s=>{let o=yxt(s);o&&a.push(o)}),await t("StellarSignTx","StellarTxOpRequest",n),P8e(t,a,0)};sP.stellarSignTx=vxt});var M8e=x(JH=>{"use strict";Object.defineProperty(JH,"__esModule",{value:!0});var bxt=mr(),_xt=Tt(),R8e=ut(),wxt=qt(),xxt=Gt(),Sxt=bxt.__importStar(O8e()),Ext=Pt(),Txt=Object.freeze({manageBuyOffer:["1.10.4","2.4.3"],pathPaymentStrictSend:["1.10.4","2.4.3"]}),GH=class extends _xt.AbstractMethod{init(){this.requiredPermissions=["read","write"],this.firmwareRange=(0,R8e.getFirmwareRange)(this.name,(0,wxt.getMiscNetwork)("Stellar"),this.firmwareRange),this.info="Sign Stellar transaction";let{payload:e}=this;(0,R8e.validateParams)(e,[{name:"path",required:!0},{name:"networkPassphrase",type:"string",required:!0},{name:"transaction",required:!0}]);let r=(0,xxt.validatePath)(e.path,3),{transaction:i}=e;this.params={path:r,networkPassphrase:e.networkPassphrase,transaction:i}}_isFeatureSupported(e){return this.device.atLeast(Txt[e])}_ensureFeatureIsSupported(e){if(!this._isFeatureSupported(e))throw Ext.ERRORS.TypedError("Method_InvalidParameter",`Feature ${e} not supported by device firmware`)}_ensureFirmwareSupportsParams(){let{params:e}=this;e.transaction.operations&&e.transaction.operations.find(r=>r.type==="manageBuyOffer")&&this._ensureFeatureIsSupported("manageBuyOffer"),e.transaction.operations&&e.transaction.operations.find(r=>r.type==="pathPaymentStrictSend")&&this._ensureFeatureIsSupported("pathPaymentStrictSend")}async run(){this._ensureFirmwareSupportsParams();let e=await Sxt.stellarSignTx(this.device.getCommands().typedCall.bind(this.device.getCommands()),this.params.path,this.params.networkPassphrase,this.params.transaction);return{publicKey:e.public_key,signature:e.signature}}};JH.default=GH});var C8e=x(WH=>{"use strict";Object.defineProperty(WH,"__esModule",{value:!0});var Axt=Tt(),XH=ut(),Pxt=qt(),oP=Gt(),Oxt=Pt(),g1=rr(),KH=class extends Axt.AbstractMethod{constructor(){super(...arguments),this.progress=0}init(){this.requiredPermissions=["read"],this.firmwareRange=(0,XH.getFirmwareRange)(this.name,(0,Pxt.getMiscNetwork)("Tezos"),this.firmwareRange),this.hasBundle=!!this.payload.bundle;let e=this.payload.bundle?this.payload:{...this.payload,bundle:[this.payload]};(0,XH.validateParams)(e,[{name:"bundle",type:"array"},{name:"useEventListener",type:"boolean"}]),this.params=e.bundle.map(i=>((0,XH.validateParams)(i,[{name:"path",required:!0},{name:"address",type:"string"},{name:"showOnTrezor",type:"boolean"}]),{address_n:(0,oP.validatePath)(i.path,3),address:i.address,show_display:typeof i.showOnTrezor=="boolean"?i.showOnTrezor:!0}));let r=e.useEventListener&&this.params.length===1&&typeof this.params[0].address=="string"&&this.params[0].show_display;this.confirmed=r,this.useUi=!r,this.params.length===1?this.info=`Export Tezos address for account #${(0,oP.fromHardened)(this.params[0].address_n[2])+1}`:this.info="Export multiple Tezos addresses"}getButtonRequestData(e){if(e==="ButtonRequest_Address")return{type:"address",serializedPath:(0,oP.getSerializedPath)(this.params[this.progress].address_n),address:this.params[this.progress].address||"not-set"}}async confirmation(){if(this.confirmed)return!0;await this.getPopupPromise().promise;let e=this.createUiPromise(g1.UI.RECEIVE_CONFIRMATION);this.postMessage((0,g1.createUiMessage)(g1.UI.REQUEST_CONFIRMATION,{view:"export-address",label:this.info}));let r=await e.promise;return this.confirmed=r.payload,this.confirmed}async noBackupConfirmation(){await this.getPopupPromise().promise;let e=this.createUiPromise(g1.UI.RECEIVE_CONFIRMATION);return this.postMessage((0,g1.createUiMessage)(g1.UI.REQUEST_CONFIRMATION,{view:"no-backup"})),(await e.promise).payload}async _call({address_n:e,show_display:r}){return(await this.device.getCommands().typedCall("TezosGetAddress","TezosAddress",{address_n:e,show_display:r})).message}async run(){let e=[];for(let r=0;r{"use strict";Object.defineProperty(YH,"__esModule",{value:!0});var Rxt=Tt(),ZH=ut(),Mxt=qt(),$H=Gt(),o8=rr(),QH=class extends Rxt.AbstractMethod{init(){this.requiredPermissions=["read"],this.firmwareRange=(0,ZH.getFirmwareRange)(this.name,(0,Mxt.getMiscNetwork)("Tezos"),this.firmwareRange),this.info="Export Tezos public key",this.hasBundle=!!this.payload.bundle;let e=this.payload.bundle?this.payload:{...this.payload,bundle:[this.payload]};(0,ZH.validateParams)(e,[{name:"bundle",type:"array"}]),this.params=e.bundle.map(r=>((0,ZH.validateParams)(r,[{name:"path",required:!0},{name:"showOnTrezor",type:"boolean"}]),{address_n:(0,$H.validatePath)(r.path,3),show_display:typeof r.showOnTrezor=="boolean"?r.showOnTrezor:!0}))}async confirmation(){if(this.confirmed)return!0;await this.getPopupPromise().promise;let e=this.createUiPromise(o8.UI.RECEIVE_CONFIRMATION),r;this.params.length>1?r="Export multiple Tezos public keys":r=`Export Tezos public key for account #${(0,$H.fromHardened)(this.params[0].address_n[2])+1}`,this.postMessage((0,o8.createUiMessage)(o8.UI.REQUEST_CONFIRMATION,{view:"export-address",label:r}));let i=await e.promise;return this.confirmed=i.payload,this.confirmed}async run(){let e=[],r=this.device.getCommands();for(let i=0;i{"use strict";Object.defineProperty(uP,"__esModule",{value:!0});uP.createTx=void 0;var Cxt=mr(),Ixt=Cxt.__importStar(m3()),N8e=Pt(),Y6=ut(),y1={B:new Uint8Array([1,52]),tz1:new Uint8Array([6,161,159]),tz2:new Uint8Array([6,161,161]),tz3:new Uint8Array([6,161,164]),KT1:new Uint8Array([2,90,121]),edpk:new Uint8Array([13,15,37,217]),sppk:new Uint8Array([3,254,226,86]),p2pk:new Uint8Array([3,178,139,127])},v1=(t,e)=>Ixt.decode(e).slice(t.length),R2=(t,e)=>{let r=new Uint8Array(t.length+e.length);return r.set(t),r.set(e,t.length),r},ad=t=>{switch(t.substring(0,3)){case"tz1":return{originated:0,hash:R2(new Uint8Array([0]),v1(y1.tz1,t))};case"tz2":return{originated:0,hash:R2(new Uint8Array([1]),v1(y1.tz2,t))};case"tz3":return{originated:0,hash:R2(new Uint8Array([2]),v1(y1.tz3,t))};case"KT1":return{originated:1,hash:R2(v1(y1.KT1,t),new Uint8Array([0]))};default:throw N8e.ERRORS.TypedError("Method_InvalidParameter","Wrong Tezos publicKeyHash address")}},Nxt=t=>{switch(t.substring(0,4)){case"edpk":return R2(new Uint8Array([0]),v1(y1.edpk,t));case"sppk":return R2(new Uint8Array([1]),v1(y1.sppk,t));case"p2pk":return R2(new Uint8Array([2]),v1(y1.p2pk,t));default:throw N8e.ERRORS.TypedError("Method_InvalidParameter","Wrong Tezos publicKey")}},kxt=(t,e,r)=>{let i={address_n:t,branch:v1(y1.B,e)};if(r.reveal){let{reveal:n}=r;(0,Y6.validateParams)(n,[{name:"source",type:"string",required:!0},{name:"public_key",type:"string",required:!0},{name:"fee",type:"uint",required:!0},{name:"counter",type:"number",required:!0},{name:"gas_limit",type:"number",required:!0},{name:"storage_limit",type:"number",required:!0}]),i={...i,reveal:{source:ad(n.source).hash,public_key:Nxt(n.public_key),fee:n.fee,counter:n.counter,gas_limit:n.gas_limit,storage_limit:n.storage_limit}}}if(r.transaction){let{transaction:n}=r;if((0,Y6.validateParams)(n,[{name:"source",type:"string",required:!0},{name:"destination",type:"string",required:!0},{name:"amount",type:"uint",required:!0},{name:"counter",type:"number",required:!0},{name:"fee",type:"uint",required:!0},{name:"gas_limit",type:"number",required:!0},{name:"storage_limit",type:"number",required:!0}]),i={...i,transaction:{source:ad(n.source).hash,destination:{tag:ad(n.destination).originated,hash:ad(n.destination).hash},amount:n.amount,counter:n.counter,fee:n.fee,gas_limit:n.gas_limit,storage_limit:n.storage_limit}},Object.prototype.hasOwnProperty.call(n,"parameters")&&(i={...i,transaction:{...i.transaction,parameters:n.parameters}}),n.parameters_manager){let{parameters_manager:a}=n;if((0,Y6.validateParams)(a,[{name:"set_delegate",type:"string",required:!1},{name:"cancel_delegate",type:"boolean",required:!1},{name:"transfer",type:"object",required:!1}]),a.set_delegate&&(i={...i,transaction:{...i.transaction,parameters_manager:{set_delegate:ad(a.set_delegate).hash}}}),Object.prototype.hasOwnProperty.call(a,"cancel_delegate")&&(i={...i,transaction:{...i.transaction,parameters_manager:{cancel_delegate:!0}}}),a.transfer){let{transfer:s}=a;(0,Y6.validateParams)(s,[{name:"amount",type:"uint",required:!0},{name:"destination",type:"string",required:!0}]),i={...i,transaction:{...i.transaction,parameters_manager:{transfer:{destination:{tag:ad(s.destination).originated,hash:ad(s.destination).hash},amount:s.amount}}}}}}}if(r.origination){let{origination:n}=r;(0,Y6.validateParams)(n,[{name:"source",type:"string",required:!0},{name:"balance",type:"number",required:!0},{name:"fee",type:"uint",required:!0},{name:"counter",type:"number",required:!0},{name:"gas_limit",type:"number",required:!0},{name:"storage_limit",type:"number",required:!0},{name:"script",type:"string",required:!0}]),i={...i,origination:{source:ad(n.source).hash,balance:n.balance,fee:n.fee,counter:n.counter,gas_limit:n.gas_limit,storage_limit:n.storage_limit,script:n.script}},n.delegate&&(i={...i,origination:{...i.origination,delegate:ad(n.delegate).hash}})}if(r.delegation){let{delegation:n}=r;(0,Y6.validateParams)(n,[{name:"source",type:"string",required:!0},{name:"delegate",type:"string",required:!0},{name:"fee",type:"uint",required:!0},{name:"counter",type:"number",required:!0},{name:"gas_limit",type:"number",required:!0},{name:"storage_limit",type:"number",required:!0}]),i={...i,delegation:{source:ad(n.source).hash,delegate:ad(n.delegate).hash,fee:n.fee,counter:n.counter,gas_limit:n.gas_limit,storage_limit:n.storage_limit}}}return i};uP.createTx=kxt});var F8e=x(tz=>{"use strict";Object.defineProperty(tz,"__esModule",{value:!0});var Bxt=mr(),Fxt=Tt(),B8e=ut(),Dxt=qt(),qxt=Gt(),Lxt=Bxt.__importStar(k8e()),ez=class extends Fxt.AbstractMethod{init(){this.requiredPermissions=["read","write"],this.firmwareRange=(0,B8e.getFirmwareRange)(this.name,(0,Dxt.getMiscNetwork)("Tezos"),this.firmwareRange),this.info="Sign Tezos transaction";let{payload:e}=this;(0,B8e.validateParams)(e,[{name:"path",required:!0},{name:"branch",type:"string",required:!0},{name:"operation",required:!0}]);let r=(0,qxt.validatePath)(e.path,3);this.params=Lxt.createTx(r,e.branch,e.operation)}async run(){return(await this.device.getCommands().typedCall("TezosSignTx","TezosSignedTx",this.params)).message}};tz.default=ez});var q8e=x(iz=>{"use strict";Object.defineProperty(iz,"__esModule",{value:!0});var Uxt=Tt(),jxt=Gt(),D8e=ut(),rz=class extends Uxt.AbstractMethod{init(){this.requiredPermissions=["read"],this.skipFinalReload=!0,this.firmwareRange=(0,D8e.getFirmwareRange)(this.name,null,{1:{min:"0",max:"0"},2:{min:"2.5.3",max:"0"}});let{payload:e}=this;(0,D8e.validateParams)(e,[{name:"path",required:!0},{name:"mac",type:"string"}]);let r=(0,jxt.validatePath)(e.path,1);this.params={address_n:r,mac:e.mac}}async run(){let e=this.device.getCommands(),{message:r}=await e.unlockPath(this.params);return{address_n:this.params.address_n,mac:r.mac}}};iz.default=rz});var U8e=x(az=>{"use strict";Object.defineProperty(az,"__esModule",{value:!0});var Vxt=Tt(),L8e=ut(),Hxt=qt(),zxt=Gt(),Gxt=rd(),Jxt=Pt(),nz=class extends Vxt.AbstractMethod{init(){this.requiredPermissions=["read","write"],this.info="Verify message";let{payload:e}=this;(0,L8e.validateParams)(e,[{name:"address",type:"string",required:!0},{name:"signature",type:"string",required:!0},{name:"message",type:"string",required:!0},{name:"coin",type:"string",required:!0},{name:"hex",type:"boolean"}]);let r=(0,Hxt.getBitcoinNetwork)(e.coin);if(r)this.firmwareRange=(0,L8e.getFirmwareRange)(this.name,r,this.firmwareRange),this.info=(0,zxt.getLabel)("Verify #NETWORK message",r);else throw Jxt.ERRORS.TypedError("Method_UnknownCoin");let i=e.hex?(0,Gxt.messageToHex)(e.message):Buffer.from(e.message,"utf8").toString("hex"),n=Buffer.from(e.signature,"base64").toString("hex");this.params={address:e.address,signature:n,message:i,coin_name:r.name}}async run(){return(await this.device.getCommands().typedCall("VerifyMessage","Success",this.params)).message}};az.default=nz});var j8e=x(oz=>{"use strict";Object.defineProperty(oz,"__esModule",{value:!0});var Xxt=Tt(),M2=rr(),Kxt=ut(),sz=class extends Xxt.AbstractMethod{init(){this.allowDeviceMode=[M2.UI.INITIALIZE,M2.UI.SEEDLESS,M2.UI.BOOTLOADER],this.useDeviceState=!1,this.requiredPermissions=["management"],this.firmwareRange=(0,Kxt.getFirmwareRange)(this.name,null,this.firmwareRange),this.info="Wipe device"}async confirmation(){if(this.confirmed)return!0;await this.getPopupPromise().promise;let e=this.createUiPromise(M2.UI.RECEIVE_CONFIRMATION);this.postMessage((0,M2.createUiMessage)(M2.UI.REQUEST_CONFIRMATION,{view:"device-management",customConfirmButton:{className:"wipe",label:`Wipe ${this.device.toMessageObject().label}`},label:"Are you sure you want to wipe your device?"}));let r=await e.promise;return this.confirmed=r.payload,this.confirmed}async run(){let e=this.device.getCommands();return this.device.isBootloader()&&this.device.emit(M2.DEVICE.BUTTON,this.device,{code:"ButtonRequest_WipeDevice"}),(await e.typedCall("WipeDevice","Success")).message}};oz.default=sz});var z8e=x(cz=>{"use strict";Object.defineProperty(cz,"__esModule",{value:!0});var Wxt=mr(),Zxt=Wxt.__importDefault(rx()),$xt=Tt(),V8e=NV(),Qxt=zy(),H8e=Pt(),Yxt=Xw(),uz=class extends $xt.AbstractMethod{init(){this.useEmptyPassphrase=!0,this.requiredPermissions=["management"],this.useDeviceState=!1}async run(){let{device:e}=this,r=`${e.features.major_version}.${e.features.minor_version}.${e.features.patch_version}`;if(!(0,Qxt.getReleases)(e.features.major_version).find(b=>b.version.join(".")===r))throw H8e.ERRORS.TypedError("Runtime","checkFirmwareAuthenticity: No release found for device firmware");let s=`${`https://data.trezor.io/firmware/${e.features.major_version}`}/trezor-${r}${e.firmwareType==="bitcoin-only"?"-bitcoinonly.bin":".bin"}`,o=await(0,Yxt.httpRequest)(s,"binary");if(!o)throw H8e.ERRORS.TypedError("Runtime","checkFirmwareAuthenticity: firmware binary not found");let{hash:c,challenge:u}=(0,V8e.calculateFirmwareHash)(e.features.major_version,(0,V8e.stripFwHeaders)(o),(0,Zxt.default)(32)),f=await this.device.getCommands().typedCall("GetFirmwareHash","FirmwareHash",{challenge:u}),{message:d}=f,{hash:p}=d;return{expectedFirmwareHash:c,actualFirmwareHash:p,valid:p===c}}};cz.default=uz});var G8e=x(ze=>{"use strict";var At=ze&&ze.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(ze,"__esModule",{value:!0});ze.requestLogin=ze.recoveryDevice=ze.rebootToBootloader=ze.pushTransaction=ze.nemSignTransaction=ze.nemGetAddress=ze.getSettings=ze.getPublicKey=ze.getOwnershipProof=ze.getOwnershipId=ze.getFirmwareHash=ze.getFeatures=ze.getDeviceState=ze.getCoinInfo=ze.getAddress=ze.getAccountInfo=ze.firmwareUpdate=ze.ethereumVerifyMessage=ze.ethereumSignTypedData=ze.ethereumSignTransaction=ze.ethereumSignMessage=ze.ethereumGetPublicKey=ze.ethereumGetAddress=ze.eosSignTransaction=ze.eosGetPublicKey=ze.composeTransaction=ze.cipherKeyValue=ze.changePin=ze.cardanoSignTransaction=ze.cardanoGetPublicKey=ze.cardanoGetNativeScriptHash=ze.cardanoGetAddress=ze.blockchainUnsubscribeFiatRates=ze.blockchainUnsubscribe=ze.blockchainSubscribeFiatRates=ze.blockchainSubscribe=ze.blockchainSetCustomBackend=ze.blockchainGetTransactions=ze.blockchainGetFiatRatesForTimestamps=ze.blockchainGetCurrentFiatRates=ze.blockchainGetAccountBalanceHistory=ze.blockchainEstimateFee=ze.blockchainDisconnect=ze.binanceSignTransaction=ze.binanceGetPublicKey=ze.binanceGetAddress=ze.backupDevice=ze.authorizeCoinjoin=ze.applySettings=ze.applyFlags=void 0;ze.checkFirmwareAuthenticity=ze.wipeDevice=ze.verifyMessage=ze.unlockPath=ze.tezosSignTransaction=ze.tezosGetPublicKey=ze.tezosGetAddress=ze.stellarSignTransaction=ze.stellarGetAddress=ze.signTransaction=ze.signMessage=ze.setProxy=ze.setBusy=ze.rippleSignTransaction=ze.rippleGetAddress=ze.resetDevice=void 0;var eSt=xbe();Object.defineProperty(ze,"applyFlags",{enumerable:!0,get:function(){return At(eSt).default}});var tSt=Sbe();Object.defineProperty(ze,"applySettings",{enumerable:!0,get:function(){return At(tSt).default}});var rSt=Abe();Object.defineProperty(ze,"authorizeCoinjoin",{enumerable:!0,get:function(){return At(rSt).default}});var iSt=Pbe();Object.defineProperty(ze,"backupDevice",{enumerable:!0,get:function(){return At(iSt).default}});var nSt=Obe();Object.defineProperty(ze,"binanceGetAddress",{enumerable:!0,get:function(){return At(nSt).default}});var aSt=Rbe();Object.defineProperty(ze,"binanceGetPublicKey",{enumerable:!0,get:function(){return At(aSt).default}});var sSt=kbe();Object.defineProperty(ze,"binanceSignTransaction",{enumerable:!0,get:function(){return At(sSt).default}});var oSt=jbe();Object.defineProperty(ze,"blockchainDisconnect",{enumerable:!0,get:function(){return At(oSt).default}});var uSt=Hbe();Object.defineProperty(ze,"blockchainEstimateFee",{enumerable:!0,get:function(){return At(uSt).default}});var cSt=Gbe();Object.defineProperty(ze,"blockchainGetAccountBalanceHistory",{enumerable:!0,get:function(){return At(cSt).default}});var dSt=Xbe();Object.defineProperty(ze,"blockchainGetCurrentFiatRates",{enumerable:!0,get:function(){return At(dSt).default}});var lSt=Wbe();Object.defineProperty(ze,"blockchainGetFiatRatesForTimestamps",{enumerable:!0,get:function(){return At(lSt).default}});var fSt=$be();Object.defineProperty(ze,"blockchainGetTransactions",{enumerable:!0,get:function(){return At(fSt).default}});var pSt=Qbe();Object.defineProperty(ze,"blockchainSetCustomBackend",{enumerable:!0,get:function(){return At(pSt).default}});var hSt=t3e();Object.defineProperty(ze,"blockchainSubscribe",{enumerable:!0,get:function(){return At(hSt).default}});var mSt=i3e();Object.defineProperty(ze,"blockchainSubscribeFiatRates",{enumerable:!0,get:function(){return At(mSt).default}});var gSt=s3e();Object.defineProperty(ze,"blockchainUnsubscribe",{enumerable:!0,get:function(){return At(gSt).default}});var ySt=u3e();Object.defineProperty(ze,"blockchainUnsubscribeFiatRates",{enumerable:!0,get:function(){return At(ySt).default}});var vSt=l3e();Object.defineProperty(ze,"cardanoGetAddress",{enumerable:!0,get:function(){return At(vSt).default}});var bSt=p3e();Object.defineProperty(ze,"cardanoGetNativeScriptHash",{enumerable:!0,get:function(){return At(bSt).default}});var _St=h3e();Object.defineProperty(ze,"cardanoGetPublicKey",{enumerable:!0,get:function(){return At(_St).default}});var wSt=A3e();Object.defineProperty(ze,"cardanoSignTransaction",{enumerable:!0,get:function(){return At(wSt).default}});var xSt=P3e();Object.defineProperty(ze,"changePin",{enumerable:!0,get:function(){return At(xSt).default}});var SSt=R3e();Object.defineProperty(ze,"cipherKeyValue",{enumerable:!0,get:function(){return At(SSt).default}});var ESt=t_e();Object.defineProperty(ze,"composeTransaction",{enumerable:!0,get:function(){return At(ESt).default}});var TSt=r_e();Object.defineProperty(ze,"eosGetPublicKey",{enumerable:!0,get:function(){return At(TSt).default}});var ASt=u_e();Object.defineProperty(ze,"eosSignTransaction",{enumerable:!0,get:function(){return At(ASt).default}});var PSt=p_e();Object.defineProperty(ze,"ethereumGetAddress",{enumerable:!0,get:function(){return At(PSt).default}});var OSt=g_e();Object.defineProperty(ze,"ethereumGetPublicKey",{enumerable:!0,get:function(){return At(OSt).default}});var RSt=v_e();Object.defineProperty(ze,"ethereumSignMessage",{enumerable:!0,get:function(){return At(RSt).default}});var MSt=w_e();Object.defineProperty(ze,"ethereumSignTransaction",{enumerable:!0,get:function(){return At(MSt).default}});var CSt=O_e();Object.defineProperty(ze,"ethereumSignTypedData",{enumerable:!0,get:function(){return At(CSt).default}});var ISt=M_e();Object.defineProperty(ze,"ethereumVerifyMessage",{enumerable:!0,get:function(){return At(ISt).default}});var NSt=L_e();Object.defineProperty(ze,"firmwareUpdate",{enumerable:!0,get:function(){return At(NSt).default}});var kSt=j_e();Object.defineProperty(ze,"getAccountInfo",{enumerable:!0,get:function(){return At(kSt).default}});var BSt=H_e();Object.defineProperty(ze,"getAddress",{enumerable:!0,get:function(){return At(BSt).default}});var FSt=z_e();Object.defineProperty(ze,"getCoinInfo",{enumerable:!0,get:function(){return At(FSt).default}});var DSt=G_e();Object.defineProperty(ze,"getDeviceState",{enumerable:!0,get:function(){return At(DSt).default}});var qSt=X_e();Object.defineProperty(ze,"getFeatures",{enumerable:!0,get:function(){return At(qSt).default}});var LSt=W_e();Object.defineProperty(ze,"getFirmwareHash",{enumerable:!0,get:function(){return At(LSt).default}});var USt=Z_e();Object.defineProperty(ze,"getOwnershipId",{enumerable:!0,get:function(){return At(USt).default}});var jSt=$_e();Object.defineProperty(ze,"getOwnershipProof",{enumerable:!0,get:function(){return At(jSt).default}});var VSt=Y_e();Object.defineProperty(ze,"getPublicKey",{enumerable:!0,get:function(){return At(VSt).default}});var HSt=e8e();Object.defineProperty(ze,"getSettings",{enumerable:!0,get:function(){return At(HSt).default}});var zSt=r8e();Object.defineProperty(ze,"nemGetAddress",{enumerable:!0,get:function(){return At(zSt).default}});var GSt=s8e();Object.defineProperty(ze,"nemSignTransaction",{enumerable:!0,get:function(){return At(GSt).default}});var JSt=c8e();Object.defineProperty(ze,"pushTransaction",{enumerable:!0,get:function(){return At(JSt).default}});var XSt=d8e();Object.defineProperty(ze,"rebootToBootloader",{enumerable:!0,get:function(){return At(XSt).default}});var KSt=l8e();Object.defineProperty(ze,"recoveryDevice",{enumerable:!0,get:function(){return At(KSt).default}});var WSt=f8e();Object.defineProperty(ze,"requestLogin",{enumerable:!0,get:function(){return At(WSt).default}});var ZSt=h8e();Object.defineProperty(ze,"resetDevice",{enumerable:!0,get:function(){return At(ZSt).default}});var $St=m8e();Object.defineProperty(ze,"rippleGetAddress",{enumerable:!0,get:function(){return At($St).default}});var QSt=g8e();Object.defineProperty(ze,"rippleSignTransaction",{enumerable:!0,get:function(){return At(QSt).default}});var YSt=b8e();Object.defineProperty(ze,"setBusy",{enumerable:!0,get:function(){return At(YSt).default}});var eEt=w8e();Object.defineProperty(ze,"setProxy",{enumerable:!0,get:function(){return At(eEt).default}});var tEt=S8e();Object.defineProperty(ze,"signMessage",{enumerable:!0,get:function(){return At(tEt).default}});var rEt=E8e();Object.defineProperty(ze,"signTransaction",{enumerable:!0,get:function(){return At(rEt).default}});var iEt=T8e();Object.defineProperty(ze,"stellarGetAddress",{enumerable:!0,get:function(){return At(iEt).default}});var nEt=M8e();Object.defineProperty(ze,"stellarSignTransaction",{enumerable:!0,get:function(){return At(nEt).default}});var aEt=C8e();Object.defineProperty(ze,"tezosGetAddress",{enumerable:!0,get:function(){return At(aEt).default}});var sEt=I8e();Object.defineProperty(ze,"tezosGetPublicKey",{enumerable:!0,get:function(){return At(sEt).default}});var oEt=F8e();Object.defineProperty(ze,"tezosSignTransaction",{enumerable:!0,get:function(){return At(oEt).default}});var uEt=q8e();Object.defineProperty(ze,"unlockPath",{enumerable:!0,get:function(){return At(uEt).default}});var cEt=U8e();Object.defineProperty(ze,"verifyMessage",{enumerable:!0,get:function(){return At(cEt).default}});var dEt=j8e();Object.defineProperty(ze,"wipeDevice",{enumerable:!0,get:function(){return At(dEt).default}});var lEt=z8e();Object.defineProperty(ze,"checkFirmwareAuthenticity",{enumerable:!0,get:function(){return At(lEt).default}})});var X8e=x(cP=>{"use strict";Object.defineProperty(cP,"__esModule",{value:!0});cP.getMethod=void 0;var fEt=mr(),pEt=fEt.__importStar(G8e()),J8e=dy(),hEt=t=>{let{method:e}=t.payload;if(typeof e!="string")throw(0,J8e.TypedError)("Method_InvalidParameter","Message method is not set");let r=pEt[e];if(r)return new r(t);throw(0,J8e.TypedError)("Method_InvalidParameter",`Method ${e} not found`)};cP.getMethod=hEt});var K8e=x(dP=>{"use strict";Object.defineProperty(dP,"__esModule",{value:!0});dP.InteractionTimeout=void 0;var mEt=Tf(),dz=(0,mEt.initLog)("InteractionTimeout"),lz=class{constructor(e){this.timeout=null,this.seconds=0,e&&(this.seconds=e)}start(e,r){let i=r||this.seconds;i<1||(this.stop(),dz.debug(`starting interaction timeout for ${i} seconds`),this.timeout=setTimeout(()=>{dz.debug("interaction timed out"),e()},1e3*i))}stop(){this.timeout&&(dz.debug("clearing interaction timeout"),clearTimeout(this.timeout))}};dP.InteractionTimeout=lz});var t5e=x(Ta=>{"use strict";Object.defineProperty(Ta,"__esModule",{value:!0});Ta.initTransport=Ta.init=Ta.initCore=Ta.Core=Ta.onCall=Ta.handleMessage=void 0;var gEt=mr(),yEt=gEt.__importDefault(require("events")),b1=Bf(),vEt=pbe(),bEt=hbe(),ta=Pt(),We=rr(),_Et=X8e(),W8e=KB(),pz=Jy(),Z8e=Tf(),wEt=ea(),xEt=K8e(),lP,Xt,w1,$p=[],x1=[],e4,hz,t4=(0,Z8e.initLog)("Core"),ur=t=>{if(t.event===We.RESPONSE_EVENT){let e=x1.findIndex(r=>r&&r.responseID===t.id);e>=0&&x1.splice(e,1)}lP.emit(We.CORE_EVENT,t)},bo=(t=!0)=>(t&&ur((0,We.createUiMessage)(We.UI.REQUEST_UI_WINDOW)),w1||(w1=(0,W8e.create)()),w1),$8e=()=>hz.start(()=>{e5e("Interaction timeout")}),_1=(t,e)=>{let r=(0,W8e.create)(t,e);return $p.push(r),$8e(),r},hP=t=>$p.find(e=>e.id===t),Q8e=t=>{$p=$p.filter(e=>e!==t)},SEt=(t,e=!1)=>{t4.debug("handleMessage",e,t);let r=[We.IFRAME.CALL,We.POPUP.CLOSED,We.UI.LOGIN_CHALLENGE_RESPONSE,We.TRANSPORT.DISABLE_WEBUSB];if(!(!e&&r.indexOf(t.type)===-1))switch(t.type){case We.POPUP.HANDSHAKE:bo(!1).resolve();break;case We.POPUP.CLOSED:e5e(t.payload?t.payload.error:null);break;case We.TRANSPORT.DISABLE_WEBUSB:kEt();break;case We.TRANSPORT.REQUEST_DEVICE:Xt?.enumerate();break;case We.UI.RECEIVE_DEVICE:case We.UI.RECEIVE_CONFIRMATION:case We.UI.RECEIVE_PERMISSION:case We.UI.RECEIVE_PIN:case We.UI.RECEIVE_PASSPHRASE:case We.UI.INVALID_PASSPHRASE_ACTION:case We.UI.RECEIVE_ACCOUNT:case We.UI.RECEIVE_FEE:case We.UI.RECEIVE_WORD:case We.UI.LOGIN_CHALLENGE_RESPONSE:{let i=hP(t.type);i&&(i.resolve(t),Q8e(i));break}case We.IFRAME.CALL:(0,Ta.onCall)(t).catch(i=>{t4.error("onCall",i)});break}};Ta.handleMessage=SEt;var EEt=async t=>{if(!Xt)throw ta.ERRORS.TypedError("Transport_Missing");let e=Xt.transportType()==="WebUsbTransport",r,i=e;if(t.devicePath)r=Xt.getDevice(t.devicePath),i=!!r?.unreadableError;else{let n=Xt.asArray();n.length===1&&!e?(r=Xt.getDevice(n[0].path),i=!!r?.unreadableError):i=!0}if(i){_1(We.UI.RECEIVE_DEVICE),await bo().promise;let n=Xt.asArray();if(n.length===1&&n[0].type!=="unreadable"&&!e)r=Xt.getDevice(n[0].path);else{ur((0,We.createUiMessage)(We.UI.SELECT_DEVICE,{webusb:e,devices:Xt.asArray()}));let a=hP(We.UI.RECEIVE_DEVICE);if(a){let{payload:s}=await a.promise;s.remember&&(e4=s.device),r=Xt.getDevice(s.device.path)}}}if(!r)throw ta.ERRORS.TypedError("Device_NotFound");return r},TEt=async t=>{var e;if(!t.id||!t.payload||t.type!==We.IFRAME.CALL)throw ta.ERRORS.TypedError("Method_InvalidParameter","onCall: message.id or message.payload is missing");let r=t.id,i=b1.DataManager.getSettings("trustedHost"),n=b1.DataManager.getSettings("popup");e4&&!t.payload.device&&(t.payload.device=e4);let a,s;try{a=(0,_Et.getMethod)(t),a.postMessage=ur,a.getPopupPromise=bo,a.createUiPromise=_1,a.init()}catch(u){return ur((0,We.createPopupMessage)(We.POPUP.CANCEL_POPUP_REQUEST)),ur((0,We.createResponseMessage)(r,!1,{error:u})),Promise.resolve()}if(x1.push(a),!a.useDevice){try{a.useUi?await bo().promise:ur((0,We.createPopupMessage)(We.POPUP.CANCEL_POPUP_REQUEST));let u=await a.run();s=(0,We.createResponseMessage)(a.responseID,!0,u)}catch(u){s=(0,We.createResponseMessage)(a.responseID,!1,{error:u})}return ur(s),Promise.resolve()}if(!Xt&&!b1.DataManager.getSettings("transportReconnect")&&await(0,Ta.initTransport)(b1.DataManager.getSettings()),n&&a.requiredPermissions.includes("management")&&!b1.DataManager.isManagementAllowed())return ur((0,We.createPopupMessage)(We.POPUP.CANCEL_POPUP_REQUEST)),ur((0,We.createResponseMessage)(r,!1,{error:ta.ERRORS.TypedError("Method_NotAllowed")})),Promise.resolve();let o;try{o=await EEt(a)}catch(u){throw u.code==="Transport_Missing"?(await bo().promise,ur((0,We.createUiMessage)(We.UI.TRANSPORT))):ur((0,We.createPopupMessage)(We.POPUP.CANCEL_POPUP_REQUEST)),ur((0,We.createResponseMessage)(r,!1,{error:u})),u}a.postMessage=u=>(0,bEt.enhancePostMessageWithAnalytics)(ur,u,{device:o.toMessageObject()}),a.setDevice(o);let c=x1.filter(u=>u&&u!==a&&u.devicePath===a.devicePath);if(c.length>0&&a.overridePreviousCall){c.forEach(f=>{f.overridden=!0});let u=ta.ERRORS.TypedError("Method_Override");if(await o.override(u),a.overridden)throw ur((0,We.createResponseMessage)(a.responseID,!1,{error:u})),u}else if(o.isRunning())if(!o.isLoaded())await o.waitForFirstRun();else throw ur((0,We.createResponseMessage)(r,!1,{error:ta.ERRORS.TypedError("Device_CallInProgress")})),ta.ERRORS.TypedError("Device_CallInProgress");o.setInstance((e=t.payload.device)===null||e===void 0?void 0:e.instance),a.hasExpectedDeviceState&&o.setExternalState(a.deviceState),o.on(We.DEVICE.BUTTON,(u,f)=>{AEt(u,f,a)}),o.on(We.DEVICE.PIN,PEt),o.on(We.DEVICE.WORD,OEt),o.on(We.DEVICE.PASSPHRASE,a.useEmptyPassphrase?MEt:REt),o.on(We.DEVICE.PASSPHRASE_ON_DEVICE,()=>{ur((0,We.createUiMessage)(We.UI.REQUEST_PASSPHRASE_ON_DEVICE,{device:o.toMessageObject()}))});try{let u=1,f=3,d=async()=>{let p=await a.checkFirmwareRange(n);if(p)return n?(await bo().promise,ur((0,We.createUiMessage)(p,o.toMessageObject())),await _1(We.DEVICE.DISCONNECT,o).promise,Promise.reject(ta.ERRORS.TypedError("Method_Cancel"))):Promise.reject(ta.ERRORS.TypedError("Device_FwException",p));let b=o.hasUnexpectedMode(a.allowDeviceMode,a.requireDeviceMode);if(b)return o.keepSession=!1,n&&(await bo().promise,ur((0,We.createUiMessage)(b,o.toMessageObject())),await _1(We.DEVICE.DISCONNECT,o).promise),Promise.reject(ta.ERRORS.TypedError("Device_ModeException",b));if(a.checkPermissions(),!i&&a.requiredPermissions.length>0&&!await a.requestPermissions())return Promise.reject(ta.ERRORS.TypedError("Method_PermissionsNotGranted"));let T=o.features.needs_backup;if(T&&typeof a.noBackupConfirmation=="function"&&!await a.noBackupConfirmation())return Promise.reject(ta.ERRORS.TypedError("Method_PermissionsNotGranted"));if(T&&(await bo().promise,ur((0,We.createUiMessage)(We.UI.DEVICE_NEEDS_BACKUP,o.toMessageObject()))),o.firmwareStatus==="outdated"&&(await bo().promise,ur((0,We.createUiMessage)(We.UI.FIRMWARE_OUTDATED,o.toMessageObject()))),!i&&typeof a.confirmation=="function"&&!await a.confirmation())return Promise.reject(ta.ERRORS.TypedError("Method_Cancel"));try{let I=a.useDeviceState?await o.validateState(a.network,a.preauthorized):void 0;if(I)if(n){let L=_1(We.UI.INVALID_PASSPHRASE_ACTION,o);if(ur((0,We.createUiMessage)(We.UI.INVALID_PASSPHRASE,{device:o.toMessageObject()})),(await L.promise).payload)return o.setInternalState(void 0),await o.initialize(a.useEmptyPassphrase,a.useCardanoDerivation),d();o.setExternalState(I)}else throw ta.ERRORS.TypedError("Device_InvalidState")}catch(I){return I.message===ta.ERRORS.INVALID_PIN_ERROR_MESSAGE&&uPromise.resolve(),{skipFinalReload:!0})),await o.cleanup(),Y8e(),fP(),a&&a.dispose(),Xt&&u.success&&Xt.removeAuthPenalty(o),ur(u))}};Ta.onCall=TEt;var fP=()=>{w1=void 0,$p=[],hz.stop(),t4.debug("Cleanup...")},Y8e=()=>{w1&&ur((0,We.createPopupMessage)(We.POPUP.CANCEL_POPUP_REQUEST)),ur((0,We.createUiMessage)(We.UI.CLOSE_UI_WINDOW))},AEt=async(...[t,e,r])=>{let i=e.code==="ButtonRequest_Address";(!i||i&&r.useUi)&&await bo().promise;let n=typeof r.getButtonRequestData=="function"&&e.code?r.getButtonRequestData(e.code):void 0;$8e(),ur((0,We.createDeviceMessage)(We.DEVICE.BUTTON,{...e,device:t.toMessageObject()})),ur((0,We.createUiMessage)(We.UI.REQUEST_BUTTON,{...e,device:t.toMessageObject(),data:n})),i&&!r.useUi&&ur((0,We.createUiMessage)(We.UI.ADDRESS_VALIDATION,n))},PEt=async(...[t,e,r])=>{await bo().promise;let i=_1(We.UI.RECEIVE_PIN,t);ur((0,We.createUiMessage)(We.UI.REQUEST_PIN,{device:t.toMessageObject(),type:e}));let n=await i.promise;r(null,n.payload)},OEt=async(...[t,e,r])=>{await bo().promise;let i=_1(We.UI.RECEIVE_WORD,t);ur((0,We.createUiMessage)(We.UI.REQUEST_WORD,{device:t.toMessageObject(),type:e}));let n=await i.promise;r(null,n.payload)},REt=async(...[t,e])=>{await bo().promise;let r=_1(We.UI.RECEIVE_PASSPHRASE,t);ur((0,We.createUiMessage)(We.UI.REQUEST_PASSPHRASE,{device:t.toMessageObject()}));let i=await r.promise,{value:n,passphraseOnDevice:a,save:s}=i.payload;e({passphrase:n.normalize("NFKD"),passphraseOnDevice:a,cache:s})},MEt=(...[t,e])=>{e({passphrase:""})},e5e=t=>{let e=t?ta.ERRORS.TypedError("Method_Cancel",t):ta.ERRORS.TypedError("Method_Interrupted");Xt&&Xt.asArray().length>0?(Xt.allDevices().forEach(r=>{if(r.keepSession=!1,r.isUsedHere())r.interruptionFromUser(e);else{let i=hP(We.DEVICE.DISCONNECT);i?i.resolve({type:We.DEVICE.DISCONNECT,payload:void 0}):(x1.forEach(n=>{ur((0,We.createResponseMessage)(n.responseID,!1,{error:e}))}),x1.splice(0,x1.length))}}),fP()):($p.length>0&&($p.forEach(r=>{r.reject(e)}),$p=[]),w1&&(w1.reject(e),w1=void 0),fP())},fz=t=>{let e=hP(We.UI.RECEIVE_DEVICE);if(e&&Xt){let r=Xt.asArray(),i=Xt.transportType()==="WebUsbTransport";r.length===1&&!i?(e.resolve({type:We.UI.RECEIVE_DEVICE,payload:{device:r[0]}}),Q8e(e)):ur((0,We.createUiMessage)(We.UI.SELECT_DEVICE,{webusb:i,devices:r}))}if(t){let{path:r}=t,i=!1;$p.forEach(n=>{n.data&&n.data.getDevicePath()===r&&(n.id===We.DEVICE.DISCONNECT&&n.resolve({type:We.DEVICE.DISCONNECT}),i=!0)}),e4&&e4.path===r&&(e4=void 0),i&&(Y8e(),fP())}},u8=async t=>{try{Xt=new vEt.DeviceList,Xt.on(We.DEVICE.CONNECT,e=>{fz(),ur((0,We.createDeviceMessage)(We.DEVICE.CONNECT,e))}),Xt.on(We.DEVICE.CONNECT_UNACQUIRED,e=>{fz(),ur((0,We.createDeviceMessage)(We.DEVICE.CONNECT_UNACQUIRED,e))}),Xt.on(We.DEVICE.DISCONNECT,e=>{fz(e),ur((0,We.createDeviceMessage)(We.DEVICE.DISCONNECT,e))}),Xt.on(We.DEVICE.CHANGED,e=>{ur((0,We.createDeviceMessage)(We.DEVICE.CHANGED,e))}),Xt.on(We.TRANSPORT.ERROR,async e=>{t4.warn("TRANSPORT.ERROR",e),Xt&&(Xt.disconnectDevices(),Xt.dispose()),Xt=void 0,ur((0,We.createTransportMessage)(We.TRANSPORT.ERROR,{error:e})),t.transportReconnect&&(await(0,pz.resolveAfter)(1e3,null),await u8(t))}),Xt.on(We.TRANSPORT.START,e=>ur((0,We.createTransportMessage)(We.TRANSPORT.START,e))),await Xt.init(),Xt&&await Xt.waitForTransportFirstEvent()}catch(e){if(Xt=void 0,ur((0,We.createTransportMessage)(We.TRANSPORT.ERROR,{error:e})),t.transportReconnect)await(0,pz.resolveAfter)(3e3,null),await u8(t);else throw e}},pP=class extends yEt.default{handleMessage(e,r){(0,Ta.handleMessage)(e,r)}async dispose(){(0,wEt.dispose)(),this.removeAllListeners(),Xt&&await Xt.dispose()}getCurrentMethod(){return x1}getTransportInfo(){return Xt?Xt.getTransportInfo():{type:"",version:"",outdated:!0}}};Ta.Core=pP;var CEt=()=>(lP=new pP,lP);Ta.initCore=CEt;var IEt=async t=>{try{return await b1.DataManager.load(t),(0,Z8e.enableLog)(b1.DataManager.getSettings("debug")),(0,Ta.initCore)(),hz=new xEt.InteractionTimeout(t.popup?t.interactionTimeout:0),lP}catch(e){throw t4.error("init",e),e}};Ta.init=IEt;var NEt=async t=>{try{t.transportReconnect?u8(t):await u8(t)}catch(e){throw t4.error("initTransport",e),e}};Ta.initTransport=NEt;var kEt=async()=>{var t,e;if(!Xt||Xt.transportType()!=="WebUsbTransport")return;let r=b1.DataManager.getSettings();!((t=r.transports)===null||t===void 0)&&t.includes("WebUsbTransport")&&r.transports.splice(r.transports.indexOf("WebUsbTransport")),!((e=r.transports)===null||e===void 0)&&e.includes("BridgeTransport")||r.transports.unshift("BridgeTransport");try{await Xt.dispose(),await u8(r)}catch{}}});var gz=x(en=>{"use strict";Object.defineProperty(en,"__esModule",{value:!0});en.messagePromises=en.eventEmitter=void 0;var i5e=mr(),BEt=i5e.__importDefault(require("events")),FEt=wn(),r5e=t5e(),DEt=VC(),yP=R7(),qEt=Tf(),tn=rr(),S1=Pt();en.eventEmitter=new BEt.default;var gP=(0,qEt.initLog)("@trezor/connect"),Es=(0,yP.parseConnectSettings)(),Ii=null,mP=0;en.messagePromises={};var LEt=t=>{Es=(0,yP.parseConnectSettings)({...Es,manifest:t})},UEt=async()=>{en.eventEmitter.removeAllListeners(),Es=(0,yP.parseConnectSettings)(),Ii&&(await Ii.dispose(),Ii=null)},jEt=t=>{let{event:e,type:r,payload:i}=t,n=t.id||0;if(!!Ii){if(r===tn.UI.REQUEST_UI_WINDOW){Ii.handleMessage({event:tn.UI_EVENT,type:tn.POPUP.HANDSHAKE},!0);return}if(r!==tn.POPUP.CANCEL_POPUP_REQUEST)switch(gP.debug("handleMessage",t),e){case tn.RESPONSE_EVENT:en.messagePromises[n]?(en.messagePromises[n].resolve({id:n,success:t.success,payload:i}),delete en.messagePromises[n]):gP.warn(`Unknown message id ${n}`);break;case tn.DEVICE_EVENT:en.eventEmitter.emit(e,t),en.eventEmitter.emit(r,i);break;case tn.TRANSPORT_EVENT:en.eventEmitter.emit(e,t),en.eventEmitter.emit(r,i);break;case tn.BLOCKCHAIN_EVENT:en.eventEmitter.emit(e,t),en.eventEmitter.emit(r,i);break;case tn.UI_EVENT:en.eventEmitter.emit(e,t),en.eventEmitter.emit(r,i);break;default:gP.warn("Undefined message",e,t)}}};function n5e(t,e=!0){if(!Ii)throw S1.ERRORS.TypedError("Runtime","postMessage: _core not found");if(e){mP++,en.messagePromises[mP]=(0,FEt.createDeferred)();let{promise:r}=en.messagePromises[mP];return Ii.handleMessage({...t,id:mP},!0),r}Ii.handleMessage(t,!0)}var a5e=async(t={})=>{var e;if(Ii)throw S1.ERRORS.TypedError("Init_AlreadyInitialized");if(Es=(0,yP.parseConnectSettings)({...Es,...t}),Es.origin="http://node.trezor.io/",Es.popup=!1,Es.env="node",!Es.manifest)throw S1.ERRORS.TypedError("Init_ManifestMissing");if(!((e=Es.transports)===null||e===void 0)&&e.length||(Es.transports=["BridgeTransport"]),Es.lazyLoad){Es.lazyLoad=!1;return}Ii=await(0,r5e.init)(Es),Ii.on(tn.CORE_EVENT,jEt),await(0,r5e.initTransport)(Es)},mz=async t=>{if(!Ii)try{await a5e(Es)}catch(e){return(0,tn.createErrorMessage)(e)}try{let e=await n5e({type:tn.IFRAME.CALL,payload:t});return e||(0,tn.createErrorMessage)(S1.ERRORS.TypedError("Method_NoResponse"))}catch(e){return gP.error("call",e),(0,tn.createErrorMessage)(e)}},VEt=t=>{if(!Ii)throw S1.ERRORS.TypedError("Init_NotInitialized");let{type:e,payload:r}=t;Ii.handleMessage({event:tn.UI_EVENT,type:e,payload:r},!0)},HEt=async t=>{if(typeof t.callback=="function"){let{callback:e}=t,r=async n=>{let{data:a}=n;if(a&&a.type===tn.UI.LOGIN_CHALLENGE_REQUEST)try{let s=await e();Ii?.handleMessage({event:tn.UI_EVENT,type:tn.UI.LOGIN_CHALLENGE_RESPONSE,payload:s},!0)}catch(s){Ii?.handleMessage({event:tn.UI_EVENT,type:tn.UI.LOGIN_CHALLENGE_RESPONSE,payload:s.message},!0)}};Ii?.on(tn.CORE_EVENT,r);let i=await mz({method:"requestLogin",...t,asyncChallenge:!0,callback:null});return Ii?.removeListener(tn.CORE_EVENT,r),i}return mz({method:"requestLogin",...t})},zEt=t=>{n5e({type:tn.POPUP.CLOSED,payload:t?{error:t}:null},!1)},GEt=t=>{throw S1.ERRORS.TypedError("Method_InvalidPackage")},JEt=()=>{throw S1.ERRORS.TypedError("Method_InvalidPackage")},XEt=()=>{throw S1.ERRORS.TypedError("Method_InvalidPackage")},KEt=(0,DEt.factory)({eventEmitter:en.eventEmitter,manifest:LEt,init:a5e,call:mz,requestLogin:HEt,uiResponse:VEt,renderWebUSBButton:GEt,disableWebUSB:JEt,requestWebUSBDevice:XEt,cancel:zEt,dispose:UEt});en.default=KEt;i5e.__exportStar(M7(),en)});var yz=x(C2=>{"use strict";Object.defineProperty(C2,"__esModule",{value:!0});C2.getOnionDomain=C2.getOrigin=void 0;var WEt=t=>{if(typeof t!="string")return"unknown";if(t.indexOf("file://")===0)return"file://";let e=t.match(/^.+\:\/\/[^\/]+/);return Array.isArray(e)&&e.length>0?e[0]:"unknown"};C2.getOrigin=WEt;var ZEt=(t,e)=>{var r;if(Array.isArray(t))return t.map(i=>(0,C2.getOnionDomain)(i,e));if(typeof t=="string"){let[,i,n,a,s]=(r=t.match(/^(http|ws)s?:\/\/([^:/]+\.)?([^/.]+\.[^/.]+)(\/.*)?$/i))!==null&&r!==void 0?r:[];return!a||!e[a]?t:`${i}://${n||""}${e[a]}${s||""}`}return t};C2.getOnionDomain=ZEt});var s5e=x(vz=>{"use strict";Object.defineProperty(vz,"__esModule",{value:!0});var $Et='.trezorconnect-container{position:fixed!important;display:-webkit-box!important;display:-webkit-flex!important;display:-ms-flexbox!important;display:flex!important;-webkit-box-orient:vertical!important;-webkit-box-direction:normal!important;-webkit-flex-direction:column!important;-ms-flex-direction:column!important;flex-direction:column!important;-webkit-box-align:center!important;-webkit-align-items:center!important;-ms-flex-align:center!important;align-items:center!important;z-index:10000!important;width:100%!important;height:100%!important;top:0!important;left:0!important;background:rgba(0,0,0,.35)!important;overflow:auto!important;padding:20px!important;margin:0!important}.trezorconnect-container .trezorconnect-window{position:relative!important;display:block!important;width:370px!important;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif!important;margin:auto!important;border-radius:3px!important;background-color:#fff!important;text-align:center!important;overflow:hidden!important}.trezorconnect-container .trezorconnect-window .trezorconnect-head{text-align:left;padding:12px 24px!important;display:-webkit-box!important;display:-webkit-flex!important;display:-ms-flexbox!important;display:flex!important;-webkit-box-align:center!important;-webkit-align-items:center!important;-ms-flex-align:center!important;align-items:center!important}.trezorconnect-container .trezorconnect-window .trezorconnect-head .trezorconnect-logo{-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1}.trezorconnect-container .trezorconnect-window .trezorconnect-head .trezorconnect-close{cursor:pointer!important;height:24px!important}.trezorconnect-container .trezorconnect-window .trezorconnect-head .trezorconnect-close svg{fill:#757575;-webkit-transition:fill .3s ease-in-out!important;transition:fill .3s ease-in-out!important}.trezorconnect-container .trezorconnect-window .trezorconnect-head .trezorconnect-close:hover svg{fill:#494949}.trezorconnect-container .trezorconnect-window .trezorconnect-body{padding:24px 24px 32px!important;background:#FBFBFB!important;border-top:1px solid #EBEBEB}.trezorconnect-container .trezorconnect-window .trezorconnect-body h3{color:#505050!important;font-size:16px!important;font-weight:500!important}.trezorconnect-container .trezorconnect-window .trezorconnect-body p{margin:8px 0 24px!important;font-weight:400!important;color:#A9A9A9!important;font-size:12px!important}.trezorconnect-container .trezorconnect-window .trezorconnect-body button{width:100%!important;padding:12px 24px!important;margin:0!important;border-radius:3px!important;font-size:14px!important;font-weight:300!important;cursor:pointer!important;background:#01B757!important;color:#fff!important;border:0!important;-webkit-transition:background-color .3s ease-in-out!important;transition:background-color .3s ease-in-out!important}.trezorconnect-container .trezorconnect-window .trezorconnect-body button:hover{background-color:#00AB51!important}.trezorconnect-container .trezorconnect-window .trezorconnect-body button:active{background-color:#009546!important}/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImlucHV0IiwiJHN0ZGluIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWNBLHlCQUNJLFNBQUEsZ0JBQ0EsUUFBQSxzQkFDQSxRQUFBLHVCQUNBLFFBQUEsc0JBRUEsUUFBQSxlQUNBLG1CQUFBLG1CQUNBLHNCQUFBLGlCQUNBLHVCQUFBLGlCQUNBLG1CQUFBLGlCQUNBLGVBQUEsaUJBRUEsa0JBQUEsaUJBQ0Esb0JBQUEsaUJBQ0EsZUFBQSxpQkNmTSxZQUFhLGlCREFyQixRQUFTLGdCQWtCSCxNQUFBLGVBQ0EsT0FBQSxlQUNBLElBQUEsWUFDQSxLQUFBLFlBQ0EsV0FBQSwwQkFDQSxTQUFBLGVBQ0EsUUFBQSxlQUNBLE9BQUEsWUNkUiwrQ0RYRSxTQUFVLG1CQTZCQSxRQUFBLGdCQUNBLE1BQUEsZ0JBQ0EsWUFBQSxjQUFBLG1CQUFBLFdBQUEsT0FBQSxpQkFBQSxNQUFBLHFCQUNBLE9BQUEsZUNmVixjQUFlLGNEakJmLGlCQWlCRSxlQWtCWSxXQUFBLGlCQ2ZkLFNBQVUsaUJEbUJJLG1FQUNBLFdBQUEsS0NoQmQsUUFBUyxLQUFLLGVEeEJkLFFBQVMsc0JBMENTLFFBQUEsdUJBQ0EsUUFBQSxzQkNmbEIsUUFBUyxlRGlCSyxrQkE1QlosaUJBOEJvQixvQkFBQSxpQkNoQmxCLGVBQWdCLGlCRC9CWixZQWlCTixpQkFzQ1EsdUZBQ0EsaUJBQUEsRUNwQlYsYUFBYyxFRHBDVixTQUFVLEVBMkRBLEtBQUEsRUFFQSx3RkNwQmQsT0FBUSxrQkR6Q1IsT0FBUSxlQWlFTSw0RkFDQSxLQUFBLFFBQ0EsbUJBQUEsS0FBQSxJQUFBLHNCQ3BCZCxXQUFZLEtBQUssSUFBSyxzQkR3QlIsa0dBQ0EsS0FBQSxRQUVBLG1FQUNBLFFBQUEsS0FBQSxLQUFBLGVBQ0EsV0FBQSxrQkFDQSxXQUFBLElBQUEsTUFBQSxRQUVBLHNFQUNBLE1BQUEsa0JBQ0EsVUFBQSxlQ3JCZCxZQUFhLGNEd0JLLHFFQ3JCbEIsT0FBUSxJQUFJLEVBQUksZUR3QkYsWUFBQSxjQUNJLE1BQUEsa0JDdEJsQixVQUFXLGVBRWIsMEVBQ0UsTUFBTyxlQUNQLFFBQVMsS0FBSyxlQUNkLE9BQVEsWUFDUixjQUFlLGNBQ2YsVUFBVyxlQUNYLFlBQWEsY0FDYixPQUFRLGtCQUNSLFdBQVksa0JBQ1osTUFBTyxlQUNQLE9BQVEsWUFDUixtQkFBb0IsaUJBQWlCLElBQUssc0JBQzFDLFdBQVksaUJBQWlCLElBQUssc0JBRXBDLGdGQUNFLGlCQUFrQixrQkFFcEIsaUZBQ0UsaUJBQWtCIn0= */';vz.default=$Et});var u5e=x(st=>{"use strict";Object.defineProperty(st,"__esModule",{value:!0});st.clearTimeout=st.postMessage=st.init=st.dispose=st.messagePromises=st.error=st.timeout=st.initPromise=st.origin=st.instance=void 0;var QEt=mr(),bz=wn(),r4=gz(),YEt=yz(),o5e=QEt.__importDefault(s5e());st.initPromise=(0,bz.createDeferred)();st.timeout=0;var vP=0;st.messagePromises={};var eTt=()=>{if(st.instance&&st.instance.parentNode)try{st.instance.parentNode.removeChild(st.instance)}catch{}st.instance=null,st.timeout=0};st.dispose=eTt;var tTt=()=>{window.clearTimeout(st.timeout),st.error=r4.ERRORS.TypedError("Init_IframeBlocked"),(0,st.dispose)(),st.initPromise.reject(st.error)},rTt=()=>{if(!st.instance)throw r4.ERRORS.TypedError("Init_IframeBlocked");let t=st.instance.ownerDocument,e=t.head||t.getElementsByTagName("head")[0],r=document.createElement("style");r.setAttribute("type","text/css"),r.setAttribute("id","TrezorConnectStylesheet"),r.styleSheet?(r.styleSheet.cssText=o5e.default,e.appendChild(r)):(r.appendChild(document.createTextNode(o5e.default)),e.append(r))},iTt=async t=>{var e;st.initPromise=(0,bz.createDeferred)();let r=document.getElementById("trezorconnect");r?st.instance=r:(st.instance=document.createElement("iframe"),st.instance.frameBorder="0",st.instance.width="0px",st.instance.height="0px",st.instance.style.position="absolute",st.instance.style.display="none",st.instance.style.border="0px",st.instance.style.width="0px",st.instance.style.height="0px",st.instance.id="trezorconnect");let i;if(t.env==="web"){let a=t.manifest?JSON.stringify(t.manifest):"undefined",s=`version=${t.version}&manifest=${encodeURIComponent(btoa(JSON.stringify(a)))}`;i=`${t.iframeSrc}?${s}`}else i=t.iframeSrc;st.instance.setAttribute("src",i),t.webusb&&console.warn('webusb option is deprecated. use `transports: ["WebUsbTransport"] instead`'),(t.webusb||((e=t.transports)===null||e===void 0?void 0:e.includes("WebUsbTransport")))&&st.instance.setAttribute("allow","usb"),st.origin=(0,YEt.getOrigin)(st.instance.src),st.timeout=window.setTimeout(()=>{st.initPromise.reject(r4.ERRORS.TypedError("Init_IframeTimeout"))},1e4);let n=()=>{var a,s;if(!st.instance){st.initPromise.reject(r4.ERRORS.TypedError("Init_IframeBlocked"));return}try{let c=(a=st.instance.contentWindow)===null||a===void 0?void 0:a.location.origin;if(!c||c==="null"){tTt();return}}catch{}let o;typeof chrome<"u"&&chrome.runtime&&typeof chrome.runtime.onConnect<"u"&&(chrome.runtime.onConnect.addListener(()=>{}),o=chrome.runtime.id),(s=st.instance.contentWindow)===null||s===void 0||s.postMessage({type:r4.IFRAME.INIT,payload:{settings:t,extension:o}},st.origin),st.instance.onload=null};st.instance.attachEvent?st.instance.attachEvent("onload",n):st.instance.onload=n,document.body&&(document.body.appendChild(st.instance),rTt());try{await st.initPromise.promise}catch(a){throw st.instance&&(st.instance.parentNode&&st.instance.parentNode.removeChild(st.instance),st.instance=null),a}finally{window.clearTimeout(st.timeout),st.timeout=0}};st.init=iTt;var nTt=(t,e=!0)=>{var r,i;if(!st.instance)throw r4.ERRORS.TypedError("Init_IframeBlocked");if(e){vP++,t.id=vP,st.messagePromises[vP]=(0,bz.createDeferred)();let{promise:n}=st.messagePromises[vP];return(r=st.instance.contentWindow)===null||r===void 0||r.postMessage(t,st.origin),n}return(i=st.instance.contentWindow)===null||i===void 0||i.postMessage(t,st.origin),null};st.postMessage=nTt;var aTt=()=>{window.clearTimeout(st.timeout)};st.clearTimeout=aTt});var c5e=x(bP=>{"use strict";Object.defineProperty(bP,"__esModule",{value:!0});bP.showPopupRequest=void 0;var _z="TrezorConnectInteractionLayer",sTt=` +
+
+
+ +
+ + + +
+
+
+

Popup was blocked

+

Please click to "Continue" to open popup manually

+ +
+
+
+`,oTt=(t,e)=>{if(document.getElementById(_z))return;let r=document.createElement("div");r.id=_z,r.className="trezorconnect-container",r.innerHTML=sTt,document.body&&document.body.appendChild(r);let i=r.getElementsByClassName("trezorconnect-open")[0];i.onclick=()=>{t(),document.body&&document.body.removeChild(r)};let n=r.getElementsByClassName("trezorconnect-close")[0];n.onclick=()=>{e(),document.body&&document.body.removeChild(r)}};bP.showPopupRequest=oTt});var p5e=x(_P=>{"use strict";Object.defineProperty(_P,"__esModule",{value:!0});_P.PopupManager=void 0;var uTt=mr(),cTt=uTt.__importDefault(require("events")),d5e=wn(),hn=gz(),l5e=yz(),f5e=c5e(),dTt=850,lTt=500,fTt=3e3,wz=class extends cTt.default{constructor(e){super(),this.locked=!1,this.requestTimeout=0,this.closeInterval=0,this.extensionTabId=0,this.settings=e,this.origin=(0,l5e.getOrigin)(e.popupSrc),this.handleMessage=this.handleMessage.bind(this),this.iframeHandshake=(0,d5e.createDeferred)(hn.IFRAME.LOADED),this.settings.env==="webextension"&&(this.handleExtensionConnect=this.handleExtensionConnect.bind(this),this.handleExtensionMessage=this.handleExtensionMessage.bind(this),chrome.runtime.onConnect.addListener(this.handleExtensionConnect)),window.addEventListener("message",this.handleMessage,!1)}request(e=!1){if(this.locked){this._window&&(this.settings.env==="webextension"?chrome.tabs.update(this._window.id,{active:!0}):this._window.focus());return}let r=this.open.bind(this);if(this.locked=!0,!this.settings.supportedBrowser)r();else{let i=e||this.settings.env==="webextension"?1:dTt;this.requestTimeout=window.setTimeout(()=>{this.requestTimeout=0,r(e)},i)}}cancel(){this.close()}unlock(){this.locked=!1}open(e){let r=this.settings.popupSrc;if(!this.settings.supportedBrowser){this.openWrapper(`${r}#unsupported`);return}this.popupPromise=(0,d5e.createDeferred)(hn.POPUP.LOADED),this.openWrapper(e?`${r}#loading`:r),this.closeInterval=window.setInterval(()=>{!this._window||(this.settings.env==="webextension"?chrome.tabs.get(this._window.id,i=>{i||(this.close(),this.emit(hn.POPUP.CLOSED))}):this._window.closed&&(this.close(),this.emit(hn.POPUP.CLOSED)))},lTt),this.openTimeout=setTimeout(()=>{this.close(),(0,f5e.showPopupRequest)(this.open.bind(this),()=>{this.emit(hn.POPUP.CLOSED)})},fTt)}openWrapper(e){this.settings.env==="webextension"?chrome.windows.getCurrent(r=>{r.type!=="normal"?chrome.windows.create({url:e},i=>{chrome.tabs.query({windowId:i?.id,active:!0},n=>{this._window=n[0]})}):chrome.tabs.query({currentWindow:!0,active:!0},i=>{this.extensionTabId=i[0].id,chrome.tabs.create({url:e,index:i[0].index+1},n=>{this._window=n})})}):this.settings.env==="electron"?this._window=window.open(e,"modal"):(this._window=window.open("","_blank"),this._window&&(this._window.location.href=e))}handleExtensionConnect(e){var r,i;if(e.name==="trezor-connect"){if(!this._window||this._window&&this._window.id!==((i=(r=e.sender)===null||r===void 0?void 0:r.tab)===null||i===void 0?void 0:i.id)){e.disconnect();return}this.openTimeout&&clearTimeout(this.openTimeout),this.extensionPort=e,this.extensionPort.onMessage.addListener(this.handleExtensionMessage)}}handleExtensionMessage(e){if(!this.extensionPort)return;let r=this.extensionPort,{data:i}=e;if(!(!i||typeof i!="object"))if(i.type===hn.POPUP.ERROR){let n=i.payload&&typeof i.payload.error=="string"?i.payload.error:null;this.emit(hn.POPUP.CLOSED,n?`Popup error: ${n}`:null),this.close()}else i.type===hn.POPUP.LOADED?(this.popupPromise&&this.popupPromise.resolve(),this.iframeHandshake.promise.then(n=>{r.postMessage({type:hn.POPUP.INIT,payload:{settings:this.settings,useBroadcastChannel:n}})})):i.type===hn.POPUP.EXTENSION_USB_PERMISSIONS?chrome.tabs.query({currentWindow:!0,active:!0},n=>{chrome.tabs.create({url:"trezor-usb-permissions.html",index:n[0].index+1},a=>{})}):i.type===hn.POPUP.CLOSE_WINDOW&&(this.emit(hn.POPUP.CLOSED),this.close())}handleMessage(e){let{data:r}=e;if(!((0,l5e.getOrigin)(e.origin)!==this.origin||!r||typeof r!="object"))if(r.type===hn.IFRAME.LOADED){let i=r.payload&&typeof r.payload.useBroadcastChannel=="boolean"?r.payload.useBroadcastChannel:!1;this.iframeHandshake.resolve(i)}else if(r.type===hn.POPUP.BOOTSTRAP)this.openTimeout&&clearTimeout(this.openTimeout);else if(r.type===hn.POPUP.ERROR&&this._window){let i=r.payload&&typeof r.payload.error=="string"?r.payload.error:null;this.emit(hn.POPUP.CLOSED,i?`Popup error: ${i}`:null),this.close()}else r.type===hn.POPUP.LOADED?(this.popupPromise&&this.popupPromise.resolve(),this.iframeHandshake.promise.then(i=>{this._window.postMessage({type:hn.POPUP.INIT,payload:{settings:this.settings,useBroadcastChannel:i}},this.origin)})):(r.type===hn.POPUP.CANCEL_POPUP_REQUEST||r.type===hn.UI.CLOSE_UI_WINDOW)&&this.close()}close(){if(this.locked=!1,this.popupPromise=void 0,this.requestTimeout&&(window.clearTimeout(this.requestTimeout),this.requestTimeout=0),this.openTimeout&&(clearTimeout(this.openTimeout),this.openTimeout=void 0),this.closeInterval&&(window.clearInterval(this.closeInterval),this.closeInterval=0),this.extensionPort&&(this.extensionPort.disconnect(),this.extensionPort=void 0),this.extensionTabId&&(chrome.tabs.update(this.extensionTabId,{active:!0}),this.extensionTabId=0),this._window){if(this.settings.env==="webextension"){let e=chrome.runtime.lastError;chrome.tabs.remove(this._window.id,()=>{e=chrome.runtime.lastError})}else this._window.close();this._window=null}}async postMessage(e){if(!this._window&&e.type!==hn.UI.REQUEST_UI_WINDOW&&this.openTimeout){this.close(),(0,f5e.showPopupRequest)(this.open.bind(this),()=>{this.emit(hn.POPUP.CLOSED)});return}this.popupPromise&&await this.popupPromise.promise,this._window&&this._window.postMessage(e,this.origin)}};_P.PopupManager=wz});var h5e=x(xz=>{"use strict";Object.defineProperty(xz,"__esModule",{value:!0});var pTt=(t="",e)=>{let r=t||".trezor-webusb-button",i=document.querySelectorAll(r),n=`${e}?${Date.now()}`;i.forEach(a=>{if(a.getElementsByTagName("iframe").length<1){let s=a.getBoundingClientRect(),o=document.createElement("iframe");o.frameBorder="0",o.width=`${Math.round(s.width)}px`,o.height=`${Math.round(s.height)}px`,o.style.position="absolute",o.style.top="0px",o.style.left="0px",o.style.zIndex="1",o.setAttribute("allow","usb"),o.setAttribute("scrolling","no"),o.src=n,a.append(o)}})};xz.default=pTt});var v5e=x(wP=>{"use strict";Object.defineProperty(wP,"__esModule",{value:!0});var d8=mr(),hTt=d8.__importDefault(require("events")),ir=M7(),mTt=VC(),gTt=Tf(),yTt=Qb(),Xi=d8.__importStar(u5e()),vTt=d8.__importStar(p5e()),bTt=d8.__importDefault(h5e()),Hl=new hTt.default,c8=(0,gTt.initLog)("@trezor/connect"),ra=(0,ir.parseConnectSettings)(),Un,m5e=()=>{let t=new vTt.PopupManager(ra);return t.on(ir.POPUP.CLOSED,e=>{Xi.postMessage({type:ir.POPUP.CLOSED,payload:e?{error:e}:null},!1)}),t},_Tt=t=>{ra=(0,ir.parseConnectSettings)(Object.assign(Object.assign({},ra),{manifest:t}))},g5e=()=>(Hl.removeAllListeners(),Xi.dispose(),ra=(0,ir.parseConnectSettings)(),Un&&Un.close(),Promise.resolve(void 0)),wTt=t=>{Un&&Un.emit(ir.POPUP.CLOSED,t)},xTt=t=>{if(t.origin!==Xi.origin)return;let e=(0,ir.parseMessage)(t.data),r=e.id||0;switch(c8.log("handleMessage",e),e.event){case ir.RESPONSE_EVENT:Xi.messagePromises[r]?(Xi.messagePromises[r].resolve({id:r,success:e.success,payload:e.payload}),delete Xi.messagePromises[r]):c8.warn(`Unknown message id ${r}`);break;case ir.DEVICE_EVENT:Hl.emit(e.event,e),Hl.emit(e.type,e.payload);break;case ir.TRANSPORT_EVENT:Hl.emit(e.event,e),Hl.emit(e.type,e.payload);break;case ir.BLOCKCHAIN_EVENT:Hl.emit(e.event,e),Hl.emit(e.type,e.payload);break;case ir.UI_EVENT:if(e.type===ir.IFRAME.BOOTSTRAP){Xi.clearTimeout();break}e.type===ir.IFRAME.LOADED&&Xi.initPromise.resolve(),e.type===ir.IFRAME.ERROR&&Xi.initPromise.reject(e.payload.error),Hl.emit(e.event,e),Hl.emit(e.type,e.payload);break;default:c8.log("Undefined message",e.event,t)}},y5e=async(t={})=>{var e;if(Xi.instance)throw ir.ERRORS.TypedError("Init_AlreadyInitialized");if(ra=(0,ir.parseConnectSettings)(Object.assign(Object.assign({},ra),t)),!ra.manifest)throw ir.ERRORS.TypedError("Init_ManifestMissing");if(!((e=ra.transports)===null||e===void 0)&&e.length||(ra.transports=["BridgeTransport","WebUsbTransport"]),ra.lazyLoad){ra.lazyLoad=!1;return}Un||(Un=m5e()),c8.enabled=!!ra.debug,window.addEventListener("message",xTt),window.addEventListener("unload",g5e),await Xi.init(ra)},Sz=async t=>{if(!Xi.instance&&!Xi.timeout){if(ra=(0,ir.parseConnectSettings)(ra),!ra.manifest)return(0,ir.createErrorMessage)(ir.ERRORS.TypedError("Init_ManifestMissing"));Un||(Un=m5e()),Un.request(!0);try{await y5e(ra)}catch(e){return Un&&(["Init_IframeBlocked","Init_IframeTimeout"].includes(e.code)?Un.postMessage((0,ir.createUiMessage)(ir.UI.IFRAME_FAILURE)):Un.close()),(0,ir.createErrorMessage)(e)}}if(Xi.timeout)return(0,ir.createErrorMessage)(ir.ERRORS.TypedError("Init_ManifestMissing"));if(Xi.error)return(0,ir.createErrorMessage)(Xi.error);ra.popup&&Un&&Un.request();try{let e=await Xi.postMessage({type:ir.IFRAME.CALL,payload:t});return e?(!e.success&&e.payload.code!=="Device_CallInProgress"&&Un&&Un.unlock(),e):(Un&&Un.unlock(),(0,ir.createErrorMessage)(ir.ERRORS.TypedError("Method_NoResponse")))}catch(e){return c8.error("__call error",e),Un&&Un.close(),(0,ir.createErrorMessage)(e)}},STt=t=>{if(!Xi.instance)throw ir.ERRORS.TypedError("Init_NotInitialized");let{type:e,payload:r}=t;Xi.postMessage({event:ir.UI_EVENT,type:e,payload:r})},ETt=t=>{(0,bTt.default)(t,ra.webusbSrc)},TTt=async t=>{if(typeof t.callback=="function"){let{callback:e}=t,r=async n=>{let{data:a}=n;if(a&&a.type===ir.UI.LOGIN_CHALLENGE_REQUEST)try{let s=await e();Xi.postMessage({event:ir.UI_EVENT,type:ir.UI.LOGIN_CHALLENGE_RESPONSE,payload:s})}catch(s){Xi.postMessage({event:ir.UI_EVENT,type:ir.UI.LOGIN_CHALLENGE_RESPONSE,payload:s.message})}};window.addEventListener("message",r,!1);let i=await Sz(Object.assign(Object.assign({method:"requestLogin"},t),{asyncChallenge:!0,callback:null}));return window.removeEventListener("message",r),i}return Sz(Object.assign({method:"requestLogin"},t))},ATt=()=>{if(!Xi.instance)throw ir.ERRORS.TypedError("Init_NotInitialized");Xi.postMessage({event:ir.UI_EVENT,type:ir.TRANSPORT.DISABLE_WEBUSB})},PTt=async()=>{try{await window.navigator.usb.requestDevice({filters:yTt.config.webusb}),Xi.postMessage({event:ir.UI_EVENT,type:ir.TRANSPORT.REQUEST_DEVICE})}catch{}},OTt=(0,mTt.factory)({eventEmitter:Hl,manifest:_Tt,init:y5e,call:Sz,requestLogin:TTt,uiResponse:STt,renderWebUSBButton:ETt,disableWebUSB:ATt,requestWebUSBDevice:PTt,cancel:wTt,dispose:g5e});wP.default=OTt;d8.__exportStar(M7(),wP)});var MTt={};wTe(MTt,{default:()=>i4});module.exports=xTe(MTt);var Zo=UJ(Cte()),Ez=UJ(v5e());Ez.default.manifest({email:"support@consensusnetworks.com",appUrl:"casimir.co"});var RTt="m/44'/60'/0'/0/0",i4=class extends Zo.ethers.Signer{path;_eth=Ez.default;constructor(e){super(),e.path||(e.path=RTt),this.path=e.path,e.provider&&Zo.ethers.utils.defineReadOnly(this,"provider",e.provider)}async getAddress(){let{payload:e}=await this._eth.ethereumGetAddress({path:this.path}),{address:r}=e;return Zo.ethers.utils.getAddress(r)}async signMessage(e){typeof e=="string"&&(e=Zo.ethers.utils.toUtf8Bytes(e));let r=Zo.ethers.utils.hexlify(e).substring(2),{payload:i}=await this._eth.ethereumSignMessage({path:this.path,message:r,hex:!0}),{signature:n}=i;return n}async signTransaction(e){e.value=Zo.ethers.BigNumber.from(e.value).toHexString(),e.gasLimit=Zo.ethers.BigNumber.from(e.gasLimit).toHexString(),e.gasPrice=Zo.ethers.BigNumber.from(e.gasPrice).toHexString(),e.nonce=Zo.ethers.BigNumber.from(e.nonce).toHexString();let r={to:e.to,value:e.value,data:e.data,chainId:e.chainId,nonce:e.nonce,gasLimit:e.gasLimit,gasPrice:e.gasPrice,type:e.type},i=await this._eth.ethereumSignTransaction({path:this.path,transaction:r}),{payload:n}=i,a=n,s={...r,nonce:Zo.ethers.BigNumber.from(e.nonce).toNumber()};return Zo.ethers.utils.serializeTransaction(s,{v:Zo.ethers.BigNumber.from(a.v).toNumber(),r:a.r,s:a.s})}async sendTransaction(e){this._checkProvider("sendTransaction"),e.gasLimit=await this?.provider?.estimateGas(e),e.gasPrice=await this?.provider?.getGasPrice(),e.nonce=await this?.provider?.getTransactionCount(await this.getAddress()),e.chainId=1337;let r=await this.signTransaction(e);return await this.provider.sendTransaction(r)}connect(e){let r={provider:e,path:this.path};return new i4(r)}};0&&(module.exports={}); +/*! + * decimal.js v10.4.3 + * An arbitrary-precision Decimal type for JavaScript. + * https://github.com/MikeMcl/decimal.js + * Copyright (c) 2022 Michael Mclaughlin + * MIT Licence + */ +/*! + * The buffer module from node.js, for the browser. + * + * @author Feross Aboukhadijeh + * @license MIT + */ +/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */ +/*! safe-buffer. MIT License. Feross Aboukhadijeh */ +/** + * @license + * Lodash + * Copyright OpenJS Foundation and other contributors + * Released under MIT license + * Based on Underscore.js 1.8.3 + * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors + */ +/** + * @license + * https://github.com/ealmansi/cashaddrjs + * Copyright (c) 2017-2020 Emilio Almansi + * Distributed under the MIT software license, see the accompanying + * file LICENSE or http://www.opensource.org/licenses/mit-license.php. + */ +/** + * @license bytebuffer.js (c) 2015 Daniel Wirtz + * Backing buffer / Accessor: node Buffer + * Released under the Apache License, Version 2.0 + * see: https://github.com/dcodeIO/bytebuffer.js for details + */ +/** + * @license long.js (c) 2013 Daniel Wirtz + * Released under the Apache License, Version 2.0 + * see: https://github.com/dcodeIO/long.js for details + */ +/** + * [js-sha3]{@link https://github.com/emn178/js-sha3} + * + * @version 0.8.0 + * @author Chen, Yi-Cyuan [emn178@gmail.com] + * @copyright Chen, Yi-Cyuan 2015-2018 + * @license MIT + */ +/*** + * @license + * https://github.com/ealmansi/bchaddrjs + * Copyright (c) 2018-2020 Emilio Almansi + * Distributed under the MIT software license, see the accompanying + * file LICENSE or http://www.opensource.org/licenses/mit-license.php. + */ +//# sourceMappingURL=index.js.map diff --git a/common/ethers-trezor-signer/dist/index.js.map b/common/ethers-trezor-signer/dist/index.js.map new file mode 100644 index 000000000..0ba5961de --- /dev/null +++ b/common/ethers-trezor-signer/dist/index.js.map @@ -0,0 +1,7 @@ +{ + "version": 3, + "sources": ["../../../node_modules/bn.js/lib/bn.js", "../../../node_modules/@ethersproject/logger/src.ts/_version.ts", "../../../node_modules/@ethersproject/logger/src.ts/index.ts", "../../../node_modules/@ethersproject/bytes/src.ts/_version.ts", "../../../node_modules/@ethersproject/bytes/src.ts/index.ts", "../../../node_modules/@ethersproject/bignumber/src.ts/_version.ts", "../../../node_modules/@ethersproject/bignumber/src.ts/bignumber.ts", "../../../node_modules/@ethersproject/bignumber/src.ts/fixednumber.ts", "../../../node_modules/@ethersproject/bignumber/src.ts/index.ts", "../../../node_modules/@ethersproject/properties/src.ts/_version.ts", "../../../node_modules/@ethersproject/properties/src.ts/index.ts", "../../../node_modules/@ethersproject/abi/src.ts/_version.ts", "../../../node_modules/@ethersproject/abi/src.ts/fragments.ts", "../../../node_modules/@ethersproject/abi/src.ts/coders/abstract-coder.ts", "../../../node_modules/js-sha3/src/sha3.js", "../../../node_modules/@ethersproject/keccak256/src.ts/index.ts", "../../../node_modules/@ethersproject/rlp/src.ts/_version.ts", "../../../node_modules/@ethersproject/rlp/src.ts/index.ts", "../../../node_modules/@ethersproject/address/src.ts/_version.ts", "../../../node_modules/@ethersproject/address/src.ts/index.ts", "../../../node_modules/@ethersproject/abi/src.ts/coders/address.ts", "../../../node_modules/@ethersproject/abi/src.ts/coders/anonymous.ts", "../../../node_modules/@ethersproject/abi/src.ts/coders/array.ts", "../../../node_modules/@ethersproject/abi/src.ts/coders/boolean.ts", "../../../node_modules/@ethersproject/abi/src.ts/coders/bytes.ts", "../../../node_modules/@ethersproject/abi/src.ts/coders/fixed-bytes.ts", "../../../node_modules/@ethersproject/abi/src.ts/coders/null.ts", "../../../node_modules/@ethersproject/constants/src.ts/addresses.ts", "../../../node_modules/@ethersproject/constants/src.ts/bignumbers.ts", "../../../node_modules/@ethersproject/constants/src.ts/hashes.ts", "../../../node_modules/@ethersproject/constants/src.ts/strings.ts", "../../../node_modules/@ethersproject/constants/src.ts/index.ts", "../../../node_modules/@ethersproject/abi/src.ts/coders/number.ts", "../../../node_modules/@ethersproject/strings/src.ts/_version.ts", "../../../node_modules/@ethersproject/strings/src.ts/utf8.ts", "../../../node_modules/@ethersproject/strings/src.ts/bytes32.ts", "../../../node_modules/@ethersproject/strings/src.ts/idna.ts", "../../../node_modules/@ethersproject/strings/src.ts/index.ts", "../../../node_modules/@ethersproject/abi/src.ts/coders/string.ts", "../../../node_modules/@ethersproject/abi/src.ts/coders/tuple.ts", "../../../node_modules/@ethersproject/abi/src.ts/abi-coder.ts", "../../../node_modules/@ethersproject/hash/src.ts/id.ts", "../../../node_modules/@ethersproject/hash/src.ts/_version.ts", "../../../node_modules/@ethersproject/base64/src.ts/base64.ts", "../../../node_modules/@ethersproject/base64/src.ts/index.ts", "../../../node_modules/@ethersproject/hash/src.ts/ens-normalize/decoder.ts", "../../../node_modules/@ethersproject/hash/src.ts/ens-normalize/include.ts", "../../../node_modules/@ethersproject/hash/src.ts/ens-normalize/lib.ts", "../../../node_modules/@ethersproject/hash/src.ts/namehash.ts", "../../../node_modules/@ethersproject/hash/src.ts/message.ts", "../../../node_modules/@ethersproject/hash/src.ts/typed-data.ts", "../../../node_modules/@ethersproject/hash/src.ts/index.ts", "../../../node_modules/@ethersproject/abi/src.ts/interface.ts", "../../../node_modules/@ethersproject/abi/src.ts/index.ts", "../../../node_modules/@ethersproject/abstract-provider/src.ts/_version.ts", "../../../node_modules/@ethersproject/abstract-provider/src.ts/index.ts", "../../../node_modules/@ethersproject/abstract-signer/src.ts/_version.ts", "../../../node_modules/@ethersproject/abstract-signer/src.ts/index.ts", "../../../node_modules/elliptic/node_modules/bn.js/lib/bn.js", "../../../node_modules/minimalistic-assert/index.js", "../../../node_modules/minimalistic-crypto-utils/lib/utils.js", "../../../node_modules/elliptic/lib/elliptic/utils.js", "../../../node_modules/brorand/index.js", "../../../node_modules/elliptic/lib/elliptic/curve/base.js", "../../../node_modules/inherits/inherits_browser.js", "../../../node_modules/inherits/inherits.js", "../../../node_modules/elliptic/lib/elliptic/curve/short.js", "../../../node_modules/elliptic/lib/elliptic/curve/mont.js", "../../../node_modules/elliptic/lib/elliptic/curve/edwards.js", "../../../node_modules/elliptic/lib/elliptic/curve/index.js", "../../../node_modules/hash.js/lib/hash/utils.js", "../../../node_modules/hash.js/lib/hash/common.js", "../../../node_modules/hash.js/lib/hash/sha/common.js", "../../../node_modules/hash.js/lib/hash/sha/1.js", "../../../node_modules/hash.js/lib/hash/sha/256.js", "../../../node_modules/hash.js/lib/hash/sha/224.js", "../../../node_modules/hash.js/lib/hash/sha/512.js", "../../../node_modules/hash.js/lib/hash/sha/384.js", "../../../node_modules/hash.js/lib/hash/sha.js", "../../../node_modules/hash.js/lib/hash/ripemd.js", "../../../node_modules/hash.js/lib/hash/hmac.js", "../../../node_modules/hash.js/lib/hash.js", "../../../node_modules/elliptic/lib/elliptic/precomputed/secp256k1.js", "../../../node_modules/elliptic/lib/elliptic/curves.js", "../../../node_modules/hmac-drbg/lib/hmac-drbg.js", "../../../node_modules/elliptic/lib/elliptic/ec/key.js", "../../../node_modules/elliptic/lib/elliptic/ec/signature.js", "../../../node_modules/elliptic/lib/elliptic/ec/index.js", "../../../node_modules/elliptic/lib/elliptic/eddsa/key.js", "../../../node_modules/elliptic/lib/elliptic/eddsa/signature.js", "../../../node_modules/elliptic/lib/elliptic/eddsa/index.js", "../../../node_modules/elliptic/lib/elliptic.js", "../../../node_modules/@ethersproject/signing-key/src.ts/elliptic.ts", "../../../node_modules/@ethersproject/signing-key/src.ts/_version.ts", "../../../node_modules/@ethersproject/signing-key/src.ts/index.ts", "../../../node_modules/@ethersproject/transactions/src.ts/_version.ts", "../../../node_modules/@ethersproject/transactions/src.ts/index.ts", "../../../node_modules/@ethersproject/contracts/src.ts/_version.ts", "../../../node_modules/@ethersproject/contracts/src.ts/index.ts", "../../../node_modules/@ethersproject/basex/src.ts/index.ts", "../../../node_modules/@ethersproject/pbkdf2/src.ts/pbkdf2.ts", "../../../node_modules/@ethersproject/pbkdf2/src.ts/index.ts", "../../../node_modules/@ethersproject/sha2/src.ts/types.ts", "../../../node_modules/@ethersproject/sha2/src.ts/_version.ts", "../../../node_modules/@ethersproject/sha2/src.ts/sha2.ts", "../../../node_modules/@ethersproject/sha2/src.ts/index.ts", "../../../node_modules/@ethersproject/wordlists/src.ts/_version.ts", "../../../node_modules/@ethersproject/wordlists/src.ts/wordlist.ts", "../../../node_modules/@ethersproject/wordlists/src.ts/lang-cz.ts", "../../../node_modules/@ethersproject/wordlists/src.ts/lang-en.ts", "../../../node_modules/@ethersproject/wordlists/src.ts/lang-es.ts", "../../../node_modules/@ethersproject/wordlists/src.ts/lang-fr.ts", "../../../node_modules/@ethersproject/wordlists/src.ts/lang-ja.ts", "../../../node_modules/@ethersproject/wordlists/src.ts/lang-ko.ts", "../../../node_modules/@ethersproject/wordlists/src.ts/lang-it.ts", "../../../node_modules/@ethersproject/wordlists/src.ts/lang-zh.ts", "../../../node_modules/@ethersproject/wordlists/src.ts/wordlists.ts", "../../../node_modules/@ethersproject/wordlists/src.ts/index.ts", "../../../node_modules/@ethersproject/hdnode/src.ts/_version.ts", "../../../node_modules/@ethersproject/hdnode/src.ts/index.ts", "../../../node_modules/@ethersproject/random/src.ts/random.ts", "../../../node_modules/@ethersproject/random/src.ts/shuffle.ts", "../../../node_modules/@ethersproject/random/src.ts/index.ts", "../../../node_modules/@ethersproject/json-wallets/node_modules/aes-js/index.js", "../../../node_modules/@ethersproject/json-wallets/src.ts/_version.ts", "../../../node_modules/@ethersproject/json-wallets/src.ts/utils.ts", "../../../node_modules/@ethersproject/json-wallets/src.ts/crowdsale.ts", "../../../node_modules/@ethersproject/json-wallets/src.ts/inspect.ts", "../../../node_modules/scrypt-js/scrypt.js", "../../../node_modules/@ethersproject/json-wallets/src.ts/keystore.ts", "../../../node_modules/@ethersproject/json-wallets/src.ts/index.ts", "../../../node_modules/@ethersproject/wallet/src.ts/_version.ts", "../../../node_modules/@ethersproject/wallet/src.ts/index.ts", "../../../node_modules/@ethersproject/networks/src.ts/_version.ts", "../../../node_modules/@ethersproject/networks/src.ts/index.ts", "../../../node_modules/@ethersproject/web/src.ts/_version.ts", "../../../node_modules/@ethersproject/web/src.ts/geturl.ts", "../../../node_modules/@ethersproject/web/src.ts/index.ts", "../../../node_modules/bech32/index.js", "../../../node_modules/@ethersproject/providers/src.ts/_version.ts", "../../../node_modules/@ethersproject/providers/src.ts/formatter.ts", "../../../node_modules/@ethersproject/providers/src.ts/base-provider.ts", "../../../node_modules/@ethersproject/providers/src.ts/json-rpc-provider.ts", "../../../node_modules/ws/lib/constants.js", "../../../node_modules/node-gyp-build/index.js", "../../../node_modules/bufferutil/fallback.js", "../../../node_modules/bufferutil/index.js", "../../../node_modules/ws/lib/buffer-util.js", "../../../node_modules/ws/lib/limiter.js", "../../../node_modules/ws/lib/permessage-deflate.js", "../../../node_modules/utf-8-validate/fallback.js", "../../../node_modules/utf-8-validate/index.js", "../../../node_modules/ws/lib/validation.js", "../../../node_modules/ws/lib/receiver.js", "../../../node_modules/ws/lib/sender.js", "../../../node_modules/ws/lib/event-target.js", "../../../node_modules/ws/lib/extension.js", "../../../node_modules/ws/lib/websocket.js", "../../../node_modules/ws/lib/stream.js", "../../../node_modules/ws/lib/websocket-server.js", "../../../node_modules/ws/index.js", "../../../node_modules/@ethersproject/providers/src.ts/ws.ts", "../../../node_modules/@ethersproject/providers/src.ts/websocket-provider.ts", "../../../node_modules/@ethersproject/providers/src.ts/url-json-rpc-provider.ts", "../../../node_modules/@ethersproject/providers/src.ts/alchemy-provider.ts", "../../../node_modules/@ethersproject/providers/src.ts/ankr-provider.ts", "../../../node_modules/@ethersproject/providers/src.ts/cloudflare-provider.ts", "../../../node_modules/@ethersproject/providers/src.ts/etherscan-provider.ts", "../../../node_modules/@ethersproject/providers/src.ts/fallback-provider.ts", "../../../node_modules/@ethersproject/providers/src.ts/ipc-provider.ts", "../../../node_modules/@ethersproject/providers/src.ts/infura-provider.ts", "../../../node_modules/@ethersproject/providers/src.ts/json-rpc-batch-provider.ts", "../../../node_modules/@ethersproject/providers/src.ts/nodesmith-provider.ts", "../../../node_modules/@ethersproject/providers/src.ts/pocket-provider.ts", "../../../node_modules/@ethersproject/providers/src.ts/web3-provider.ts", "../../../node_modules/@ethersproject/providers/src.ts/index.ts", "../../../node_modules/@ethersproject/solidity/src.ts/_version.ts", "../../../node_modules/@ethersproject/solidity/src.ts/index.ts", "../../../node_modules/@ethersproject/units/src.ts/_version.ts", "../../../node_modules/@ethersproject/units/src.ts/index.ts", "../../../node_modules/ethers/src.ts/utils.ts", "../../../node_modules/ethers/src.ts/_version.ts", "../../../node_modules/ethers/src.ts/ethers.ts", "../../../node_modules/ethers/src.ts/index.ts", "../../../node_modules/tslib/tslib.js", "../../../node_modules/@trezor/connect/lib/constants/errors.js", "../../../node_modules/@trezor/connect/lib/constants/network.js", "../../../node_modules/@trezor/connect/lib/constants/cardano.js", "../../../node_modules/@trezor/connect/lib/constants/nem.js", "../../../node_modules/@trezor/transport/lib/types/messages.js", "../../../node_modules/@trezor/connect/lib/constants/index.js", "../../../node_modules/@trezor/connect/lib/events/ui-request.js", "../../../node_modules/@trezor/connect/lib/events/ui-response.js", "../../../node_modules/@trezor/connect/lib/events/blockchain.js", "../../../node_modules/@trezor/connect/lib/events/call.js", "../../../node_modules/@trezor/connect/lib/events/core.js", "../../../node_modules/@trezor/connect/lib/events/device.js", "../../../node_modules/@trezor/connect/lib/events/iframe.js", "../../../node_modules/@trezor/connect/lib/events/popup.js", "../../../node_modules/@trezor/connect/lib/events/transport.js", "../../../node_modules/@trezor/connect/lib/events/ui-promise.js", "../../../node_modules/@trezor/connect/lib/events/index.js", "../../../node_modules/@trezor/connect/lib/types/api/index.js", "../../../node_modules/@trezor/connect/lib/types/account.js", "../../../node_modules/@trezor/connect/lib/types/coinInfo.js", "../../../node_modules/@trezor/connect/lib/types/device.js", "../../../node_modules/@trezor/connect/lib/types/firmware.js", "../../../node_modules/@trezor/connect/lib/types/params.js", "../../../node_modules/@trezor/connect/lib/types/settings.js", "../../../node_modules/@trezor/connect/lib/types/api/cardano/index.js", "../../../node_modules/@trezor/connect/lib/types/api/binance/index.js", "../../../node_modules/@trezor/connect/lib/types/api/bitcoin/index.js", "../../../node_modules/@trezor/connect/lib/types/api/eos/index.js", "../../../node_modules/@trezor/connect/lib/types/api/ripple/index.js", "../../../node_modules/@trezor/connect/lib/types/api/ethereum/index.js", "../../../node_modules/@trezor/connect/lib/types/api/stellar/index.js", "../../../node_modules/@trezor/connect/lib/types/api/tezos/index.js", "../../../node_modules/@trezor/connect/lib/types/index.js", "../../../node_modules/@trezor/connect/lib/data/version.js", "../../../node_modules/@trezor/connect/lib/data/connectSettings.js", "../../../node_modules/@trezor/connect/lib/exports.js", "../../../node_modules/@trezor/connect/lib/factory.js", "../../../node_modules/@trezor/connect/lib/utils/debug.js", "../../../node_modules/@trezor/utils/lib/abortablePromise.js", "../../../node_modules/@trezor/utils/lib/arrayDistinct.js", "../../../node_modules/@trezor/utils/lib/arrayPartition.js", "../../../node_modules/@trezor/utils/lib/arrayToDictionary.js", "../../../node_modules/@trezor/utils/lib/bufferUtils.js", "../../../node_modules/@trezor/utils/lib/bytesToHumanReadable.js", "../../../node_modules/@trezor/utils/lib/capitalizeFirstLetter.js", "../../../node_modules/@trezor/utils/lib/countBytesInString.js", "../../../node_modules/@trezor/utils/lib/createDeferred.js", "../../../node_modules/@trezor/utils/lib/createTimeoutPromise.js", "../../../node_modules/@trezor/utils/lib/enumUtils.js", "../../../node_modules/@trezor/utils/lib/getNumberFromPixelString.js", "../../../node_modules/@trezor/utils/lib/getRandomNumberInRange.js", "../../../node_modules/@trezor/utils/lib/getWeakRandomId.js", "../../../node_modules/@trezor/utils/lib/hasUppercaseLetter.js", "../../../node_modules/@trezor/utils/lib/isAscii.js", "../../../node_modules/@trezor/utils/lib/isHex.js", "../../../node_modules/@trezor/utils/lib/isNotUndefined.js", "../../../node_modules/@trezor/utils/lib/isUrl.js", "../../../node_modules/@trezor/utils/lib/mergeDeepObject.js", "../../../node_modules/@trezor/utils/lib/objectPartition.js", "../../../node_modules/@trezor/utils/lib/parseHostname.js", "../../../node_modules/@trezor/utils/lib/promiseAllSequence.js", "../../../node_modules/@trezor/utils/lib/redactUserPath.js", "../../../node_modules/@trezor/utils/lib/resolveStaticPath.js", "../../../node_modules/@trezor/utils/lib/scheduleAction.js", "../../../node_modules/@trezor/utils/lib/throwError.js", "../../../node_modules/@trezor/utils/lib/truncateMiddle.js", "../../../node_modules/@trezor/utils/lib/topologicalSort.js", "../../../node_modules/@trezor/utils/lib/versionUtils.js", "../../../node_modules/@trezor/utils/lib/xssFilters.js", "../../../node_modules/@trezor/utils/lib/index.js", "../../../node_modules/@trezor/transport/lib/bridge/http.js", "../../../node_modules/@trezor/transport/lib/utils/highlevel-checks.js", "../../../node_modules/bytebuffer/node_modules/long/dist/long.js", "../../../node_modules/bytebuffer/dist/bytebuffer-node.js", "../../../node_modules/@trezor/transport/lib/utils/protobuf.js", "../../../node_modules/@trezor/transport/lib/lowlevel/protobuf/decode.js", "../../../node_modules/@trezor/transport/lib/lowlevel/protobuf/encode.js", "../../../node_modules/@trezor/transport/lib/lowlevel/protobuf/index.js", "../../../node_modules/@trezor/transport/lib/config.js", "../../../node_modules/@trezor/transport/lib/lowlevel/protocol/decode.js", "../../../node_modules/@trezor/transport/lib/lowlevel/protocol/encode.js", "../../../node_modules/@trezor/transport/lib/lowlevel/protocol/index.js", "../../../node_modules/@protobufjs/aspromise/index.js", "../../../node_modules/@protobufjs/base64/index.js", "../../../node_modules/@protobufjs/eventemitter/index.js", "../../../node_modules/@protobufjs/float/index.js", "../../../node_modules/@protobufjs/inquire/index.js", "../../../node_modules/@protobufjs/utf8/index.js", "../../../node_modules/@protobufjs/pool/index.js", "../../../node_modules/protobufjs/src/util/longbits.js", "../../../node_modules/protobufjs/src/util/minimal.js", "../../../node_modules/protobufjs/src/writer.js", "../../../node_modules/protobufjs/src/writer_buffer.js", "../../../node_modules/protobufjs/src/reader.js", "../../../node_modules/protobufjs/src/reader_buffer.js", "../../../node_modules/protobufjs/src/rpc/service.js", "../../../node_modules/protobufjs/src/rpc.js", "../../../node_modules/protobufjs/src/roots.js", "../../../node_modules/protobufjs/src/index-minimal.js", "../../../node_modules/@protobufjs/codegen/index.js", "../../../node_modules/@protobufjs/fetch/index.js", "../../../node_modules/@protobufjs/path/index.js", "../../../node_modules/protobufjs/src/types.js", "../../../node_modules/protobufjs/src/field.js", "../../../node_modules/protobufjs/src/oneof.js", "../../../node_modules/protobufjs/src/namespace.js", "../../../node_modules/protobufjs/src/mapfield.js", "../../../node_modules/protobufjs/src/method.js", "../../../node_modules/protobufjs/src/service.js", "../../../node_modules/protobufjs/src/message.js", "../../../node_modules/protobufjs/src/decoder.js", "../../../node_modules/protobufjs/src/verifier.js", "../../../node_modules/protobufjs/src/converter.js", "../../../node_modules/protobufjs/src/wrappers.js", "../../../node_modules/protobufjs/src/type.js", "../../../node_modules/protobufjs/src/root.js", "../../../node_modules/protobufjs/src/util.js", "../../../node_modules/protobufjs/src/object.js", "../../../node_modules/protobufjs/src/enum.js", "../../../node_modules/protobufjs/src/encoder.js", "../../../node_modules/protobufjs/src/index-light.js", "../../../node_modules/protobufjs/light.js", "../../../node_modules/@trezor/transport/lib/lowlevel/protobuf/messages.js", "../../../node_modules/@trezor/transport/lib/lowlevel/send.js", "../../../node_modules/@trezor/transport/lib/lowlevel/receive.js", "../../../node_modules/@trezor/transport/lib/bridge/v2.js", "../../../node_modules/@trezor/transport/lib/utils/defered.js", "../../../node_modules/@trezor/transport/lib/lowlevel/sharedConnectionWorker.js", "../../../node_modules/jsonify/lib/parse.js", "../../../node_modules/jsonify/lib/stringify.js", "../../../node_modules/jsonify/index.js", "../../../node_modules/json-stable-stringify/index.js", "../../../node_modules/@trezor/transport/lib/lowlevel/withSharedConnections.js", "../../../node_modules/@trezor/transport/lib/fallback.js", "../../../node_modules/@trezor/transport/lib/constants.js", "../../../node_modules/@trezor/transport/lib/lowlevel/webusb.js", "../../../node_modules/long/src/long.js", "../../../node_modules/@trezor/transport/lib/types/index.js", "../../../node_modules/@trezor/transport/lib/index.js", "../../../node_modules/@trezor/connect/lib/data/config.js", "../../../node_modules/parse-uri/src/index.js", "../../../node_modules/webidl-conversions/lib/index.js", "../../../node_modules/whatwg-url/lib/utils.js", "../../../node_modules/tr46/index.js", "../../../node_modules/whatwg-url/lib/url-state-machine.js", "../../../node_modules/whatwg-url/lib/URL-impl.js", "../../../node_modules/whatwg-url/lib/URL.js", "../../../node_modules/whatwg-url/lib/public-api.js", "../../../node_modules/@trezor/connect/node_modules/node-fetch/lib/index.js", "../../../node_modules/@trezor/connect/node_modules/cross-fetch/dist/node-ponyfill.js", "../../../node_modules/@trezor/connect/lib/utils/assets-browser.js", "../../../node_modules/@trezor/connect/lib/utils/assetUtils.js", "../../../node_modules/@trezor/connect/lib/utils/assets.js", "../../../node_modules/@trezor/connect/lib/utils/pathUtils.js", "../../../node_modules/@trezor/connect/lib/data/coinInfo.js", "../../../node_modules/@trezor/connect/lib/utils/firmwareUtils.js", "../../../node_modules/@trezor/connect/lib/data/firmwareInfo.js", "../../../node_modules/@trezor/connect/lib/data/transportInfo.js", "../../../node_modules/@trezor/connect/lib/data/DataManager.js", "../../../node_modules/@trezor/connect/lib/utils/promiseUtils.js", "../../../node_modules/@trezor/connect/lib/device/DescriptorStream.js", "../../../node_modules/randombytes/index.js", "../../../node_modules/@trezor/utxo-lib/node_modules/bech32/dist/index.js", "../../../node_modules/typeforce/native.js", "../../../node_modules/typeforce/errors.js", "../../../node_modules/typeforce/extra.js", "../../../node_modules/typeforce/index.js", "../../../node_modules/@trezor/utxo-lib/lib/networks.js", "../../../node_modules/create-hash/index.js", "../../../node_modules/safe-buffer/index.js", "../../../node_modules/base-x/src/index.js", "../../../node_modules/bs58/index.js", "../../../node_modules/bs58check/base.js", "../../../node_modules/bs58check/index.js", "../../../node_modules/cashaddrjs/src/validation.js", "../../../node_modules/cashaddrjs/src/base32.js", "../../../node_modules/big-integer/BigInteger.js", "../../../node_modules/cashaddrjs/src/convertBits.js", "../../../node_modules/cashaddrjs/src/cashaddr.js", "../../../node_modules/base64-js/index.js", "../../../node_modules/ieee754/index.js", "../../../node_modules/bchaddrjs/node_modules/buffer/index.js", "../../../node_modules/bchaddrjs/src/bchaddr.js", "../../../node_modules/@trezor/utxo-lib/node_modules/base-x/src/index.js", "../../../node_modules/@trezor/utxo-lib/node_modules/bs58/index.js", "../../../node_modules/blake-hash/node_modules/readable-stream/lib/internal/streams/stream.js", "../../../node_modules/blake-hash/node_modules/readable-stream/lib/internal/streams/buffer_list.js", "../../../node_modules/blake-hash/node_modules/readable-stream/lib/internal/streams/destroy.js", "../../../node_modules/blake-hash/node_modules/readable-stream/errors.js", "../../../node_modules/blake-hash/node_modules/readable-stream/lib/internal/streams/state.js", "../../../node_modules/util-deprecate/node.js", "../../../node_modules/blake-hash/node_modules/readable-stream/lib/_stream_writable.js", "../../../node_modules/blake-hash/node_modules/readable-stream/lib/_stream_duplex.js", "../../../node_modules/string_decoder/lib/string_decoder.js", "../../../node_modules/blake-hash/node_modules/readable-stream/lib/internal/streams/end-of-stream.js", "../../../node_modules/blake-hash/node_modules/readable-stream/lib/internal/streams/async_iterator.js", "../../../node_modules/blake-hash/node_modules/readable-stream/lib/internal/streams/from.js", "../../../node_modules/blake-hash/node_modules/readable-stream/lib/_stream_readable.js", "../../../node_modules/blake-hash/node_modules/readable-stream/lib/_stream_transform.js", "../../../node_modules/blake-hash/node_modules/readable-stream/lib/_stream_passthrough.js", "../../../node_modules/blake-hash/node_modules/readable-stream/lib/internal/streams/pipeline.js", "../../../node_modules/blake-hash/node_modules/readable-stream/readable.js", "../../../node_modules/blake-hash/lib/api/blake.js", "../../../node_modules/blake-hash/lib/api/index.js", "../../../node_modules/blake-hash/bindings.js", "../../../node_modules/blake-hash/lib/blake.js", "../../../node_modules/blake-hash/lib/blake256.js", "../../../node_modules/blake-hash/lib/blake224.js", "../../../node_modules/blake-hash/lib/blake512.js", "../../../node_modules/blake-hash/lib/blake384.js", "../../../node_modules/blake-hash/lib/index.js", "../../../node_modules/blake-hash/js.js", "../../../node_modules/blake-hash/index.js", "../../../node_modules/create-hmac/index.js", "../../../node_modules/@trezor/utxo-lib/lib/crypto.js", "../../../node_modules/@trezor/utxo-lib/lib/bs58check.js", "../../../node_modules/bip66/index.js", "../../../node_modules/pushdata-bitcoin/index.js", "../../../node_modules/file-uri-to-path/index.js", "../../../node_modules/bindings/bindings.js", "../../../node_modules/tiny-secp256k1/native.js", "../../../node_modules/tiny-secp256k1/node_modules/bn.js/lib/bn.js", "../../../node_modules/tiny-secp256k1/rfc6979.js", "../../../node_modules/tiny-secp256k1/js.js", "../../../node_modules/tiny-secp256k1/index.js", "../../../node_modules/@trezor/utxo-lib/lib/script/scriptNumber.js", "../../../node_modules/@trezor/utxo-lib/lib/types.js", "../../../node_modules/@trezor/utxo-lib/lib/script/scriptSignature.js", "../../../node_modules/@trezor/utxo-lib/lib/script/ops.js", "../../../node_modules/@trezor/utxo-lib/lib/script/index.js", "../../../node_modules/@trezor/utxo-lib/lib/payments/lazy.js", "../../../node_modules/@trezor/utxo-lib/lib/payments/embed.js", "../../../node_modules/@trezor/utxo-lib/lib/payments/p2ms.js", "../../../node_modules/@trezor/utxo-lib/lib/payments/p2pk.js", "../../../node_modules/@trezor/utxo-lib/lib/payments/p2pkh.js", "../../../node_modules/@trezor/utxo-lib/lib/payments/p2sh.js", "../../../node_modules/@trezor/utxo-lib/lib/payments/p2tr.js", "../../../node_modules/@trezor/utxo-lib/lib/payments/p2wpkh.js", "../../../node_modules/@trezor/utxo-lib/lib/payments/p2wsh.js", "../../../node_modules/@trezor/utxo-lib/lib/payments/sstxchange.js", "../../../node_modules/varuint-bitcoin/index.js", "../../../node_modules/int64-buffer/int64-buffer.js", "../../../node_modules/@trezor/utxo-lib/lib/bufferutils.js", "../../../node_modules/@trezor/utxo-lib/lib/payments/sstxcommitment.js", "../../../node_modules/@trezor/utxo-lib/lib/payments/sstxpkh.js", "../../../node_modules/@trezor/utxo-lib/lib/payments/sstxsh.js", "../../../node_modules/@trezor/utxo-lib/lib/payments/index.js", "../../../node_modules/@trezor/utxo-lib/lib/address.js", "../../../node_modules/wif/index.js", "../../../node_modules/@trezor/utxo-lib/lib/bip32.js", "../../../node_modules/@trezor/utxo-lib/lib/compose/request.js", "../../../node_modules/@trezor/utxo-lib/lib/compose/result.js", "../../../node_modules/@trezor/utxo-lib/lib/compose/permutation.js", "../../../node_modules/@trezor/utxo-lib/lib/compose/transaction.js", "../../../node_modules/@trezor/utxo-lib/lib/coinselect/utils.js", "../../../node_modules/@trezor/utxo-lib/lib/compose/utils.js", "../../../node_modules/@trezor/utxo-lib/lib/coinselect/outputs/split.js", "../../../node_modules/@trezor/utxo-lib/lib/coinselect/inputs/accumulative.js", "../../../node_modules/@trezor/utxo-lib/lib/coinselect/inputs/bnb.js", "../../../node_modules/@trezor/utxo-lib/lib/coinselect/tryconfirmed.js", "../../../node_modules/@trezor/utxo-lib/lib/coinselect/index.js", "../../../node_modules/@trezor/utxo-lib/lib/compose/coinselect.js", "../../../node_modules/@trezor/utxo-lib/lib/compose/index.js", "../../../node_modules/@trezor/utxo-lib/lib/derivation.js", "../../../node_modules/@trezor/utxo-lib/lib/discovery.js", "../../../node_modules/@trezor/utxo-lib/lib/transaction/base.js", "../../../node_modules/@trezor/utxo-lib/lib/transaction/bitcoin.js", "../../../node_modules/@trezor/utxo-lib/lib/transaction/dash.js", "../../../node_modules/@trezor/utxo-lib/lib/transaction/decred.js", "../../../node_modules/@trezor/utxo-lib/lib/transaction/peercoin.js", "../../../node_modules/blakejs/util.js", "../../../node_modules/blakejs/blake2b.js", "../../../node_modules/blakejs/blake2s.js", "../../../node_modules/blakejs/index.js", "../../../node_modules/@trezor/utxo-lib/lib/transaction/zcash.js", "../../../node_modules/@trezor/utxo-lib/lib/transaction/index.js", "../../../node_modules/@trezor/utxo-lib/lib/index.js", "../../../node_modules/@trezor/connect/lib/utils/hdnodeUtils.js", "../../../node_modules/@trezor/connect/lib/utils/accountUtils.js", "../../../node_modules/@trezor/connect/lib/utils/versionUtils.js", "../../../node_modules/@trezor/connect/lib/device/DeviceCommands.js", "../../../node_modules/@trezor/connect/lib/utils/deviceFeaturesUtils.js", "../../../node_modules/@trezor/connect/lib/utils/deferred.js", "../../../node_modules/@trezor/connect/lib/device/Device.js", "../../../node_modules/@trezor/blockchain-link/lib/constants/errors.js", "../../../node_modules/@trezor/blockchain-link/lib/constants/messages.js", "../../../node_modules/@trezor/blockchain-link/lib/constants/responses.js", "../../../node_modules/@trezor/blockchain-link/lib/constants/index.js", "../../../node_modules/ms/index.js", "../../../node_modules/debug/src/common.js", "../../../node_modules/debug/src/browser.js", "../../../node_modules/has-flag/index.js", "../../../node_modules/supports-color/index.js", "../../../node_modules/debug/src/node.js", "../../../node_modules/debug/src/index.js", "../../../node_modules/agent-base/src/promisify.ts", "../../../node_modules/agent-base/src/index.ts", "../../../node_modules/socks/node_modules/ip/lib/ip.js", "../../../node_modules/smart-buffer/src/utils.ts", "../../../node_modules/smart-buffer/src/smartbuffer.ts", "../../../node_modules/socks/src/common/constants.ts", "../../../node_modules/socks/src/common/util.ts", "../../../node_modules/socks/src/common/helpers.ts", "../../../node_modules/socks/src/common/receivebuffer.ts", "../../../node_modules/socks/src/client/socksclient.ts", "../../../node_modules/socks/src/index.ts", "../../../node_modules/@trezor/blockchain-link/node_modules/socks-proxy-agent/src/agent.ts", "../../../node_modules/@trezor/blockchain-link/node_modules/socks-proxy-agent/src/index.ts", "../../../node_modules/@trezor/blockchain-link/lib/workers/state.js", "../../../node_modules/bignumber.js/bignumber.js", "../../../node_modules/@trezor/blockchain-link/lib/workers/utils.js", "../../../node_modules/@trezor/blockchain-link/lib/workers/base.js", "../../../node_modules/@trezor/blockchain-link/node_modules/ws/lib/constants.js", "../../../node_modules/@trezor/blockchain-link/node_modules/ws/lib/buffer-util.js", "../../../node_modules/@trezor/blockchain-link/node_modules/ws/lib/limiter.js", "../../../node_modules/@trezor/blockchain-link/node_modules/ws/lib/permessage-deflate.js", "../../../node_modules/@trezor/blockchain-link/node_modules/ws/lib/validation.js", "../../../node_modules/@trezor/blockchain-link/node_modules/ws/lib/receiver.js", "../../../node_modules/@trezor/blockchain-link/node_modules/ws/lib/sender.js", "../../../node_modules/@trezor/blockchain-link/node_modules/ws/lib/event-target.js", "../../../node_modules/@trezor/blockchain-link/node_modules/ws/lib/extension.js", "../../../node_modules/@trezor/blockchain-link/node_modules/ws/lib/websocket.js", "../../../node_modules/@trezor/blockchain-link/node_modules/ws/lib/stream.js", "../../../node_modules/@trezor/blockchain-link/node_modules/ws/lib/websocket-server.js", "../../../node_modules/@trezor/blockchain-link/node_modules/ws/index.js", "../../../node_modules/@trezor/blockchain-link/lib/workers/blockbook/websocket.js", "../../../node_modules/@trezor/blockchain-link/lib/workers/blockbook/utils.js", "../../../node_modules/@trezor/blockchain-link/lib/workers/blockbook/index.js", "../../../node_modules/ripple-lib/src/common/txflags.ts", "../../../node_modules/ripple-lib/src/common/constants.ts", "../../../node_modules/ripple-lib/src/common/browser-hacks.ts", "../../../node_modules/ripple-lib/src/common/errors.ts", "../../../node_modules/lodash/lodash.js", "../../../node_modules/ripple-lib/node_modules/jsonschema/lib/helpers.js", "../../../node_modules/ripple-lib/node_modules/jsonschema/lib/attribute.js", "../../../node_modules/ripple-lib/node_modules/jsonschema/lib/validator.js", "../../../node_modules/ripple-lib/node_modules/jsonschema/lib/index.js", "../../../node_modules/ripple-address-codec/src/utils.ts", "../../../node_modules/ripple-address-codec/src/xrp-codec.ts", "../../../node_modules/ripple-address-codec/src/index.ts", "../../../node_modules/ripple-keypairs/src/Sha512.ts", "../../../node_modules/ripple-keypairs/src/secp256k1.ts", "../../../node_modules/ripple-keypairs/src/utils.ts", "../../../node_modules/ripple-keypairs/src/index.ts", "../../../node_modules/ripple-lib/src/common/utils.ts", "../../../node_modules/ripple-lib/src/common/schema-validator.ts", "../../../node_modules/ripple-lib/src/common/validate.ts", "../../../node_modules/ripple-lib/src/common/serverinfo.ts", "../../../node_modules/ripple-lib/src/common/rangeset.ts", "../../../node_modules/ripple-lib/src/common/backoff.ts", "../../../node_modules/https-proxy-agent/src/parse-proxy-response.ts", "../../../node_modules/https-proxy-agent/src/agent.ts", "../../../node_modules/https-proxy-agent/src/index.ts", "../../../node_modules/ripple-lib/src/common/connection.ts", "../../../node_modules/ripple-lib/src/common/index.ts", "../../../node_modules/ripple-lib/src/server/server.ts", "../../../node_modules/ripple-lib/src/ledger/utils.ts", "../../../node_modules/ripple-lib-transactionparser/src/utils.js", "../../../node_modules/ripple-lib-transactionparser/src/balancechanges.js", "../../../node_modules/ripple-lib-transactionparser/src/quality.js", "../../../node_modules/ripple-lib-transactionparser/src/orderbookchanges.js", "../../../node_modules/ripple-lib-transactionparser/src/channelchanges.js", "../../../node_modules/ripple-lib-transactionparser/src/index.js", "../../../node_modules/ripple-lib/src/ledger/parse/amount.ts", "../../../node_modules/ripple-lib/src/ledger/parse/utils.ts", "../../../node_modules/ripple-lib/src/ledger/parse/fields.ts", "../../../node_modules/ripple-lib/src/ledger/parse/settings.ts", "../../../node_modules/ripple-lib/src/ledger/parse/account-delete.ts", "../../../node_modules/ripple-lib/src/ledger/parse/check-cancel.ts", "../../../node_modules/ripple-lib/src/ledger/parse/check-cash.ts", "../../../node_modules/ripple-lib/src/ledger/parse/check-create.ts", "../../../node_modules/ripple-lib/src/ledger/parse/deposit-preauth.ts", "../../../node_modules/ripple-lib/src/ledger/parse/escrow-cancellation.ts", "../../../node_modules/ripple-lib/src/ledger/parse/escrow-creation.ts", "../../../node_modules/ripple-lib/src/ledger/parse/escrow-execution.ts", "../../../node_modules/ripple-lib/src/ledger/parse/cancellation.ts", "../../../node_modules/ripple-lib/src/ledger/parse/order.ts", "../../../node_modules/ripple-lib/src/ledger/parse/payment.ts", "../../../node_modules/ripple-lib/src/ledger/parse/payment-channel-claim.ts", "../../../node_modules/ripple-lib/src/ledger/parse/payment-channel-create.ts", "../../../node_modules/ripple-lib/src/ledger/parse/payment-channel-fund.ts", "../../../node_modules/ripple-lib/src/ledger/parse/ticket-create.ts", "../../../node_modules/ripple-lib/src/ledger/parse/trustline.ts", "../../../node_modules/ripple-lib/src/ledger/parse/amendment.ts", "../../../node_modules/ripple-lib/src/ledger/parse/fee-update.ts", "../../../node_modules/ripple-lib/src/ledger/parse/transaction.ts", "../../../node_modules/ripple-lib/src/ledger/transaction.ts", "../../../node_modules/buffer/index.js", "../../../node_modules/ripple-binary-codec/src/serdes/binary-serializer.ts", "../../../node_modules/ripple-binary-codec/src/types/serialized-type.ts", "../../../node_modules/ripple-binary-codec/src/enums/index.ts", "../../../node_modules/ripple-binary-codec/src/types/hash.ts", "../../../node_modules/ripple-binary-codec/src/types/hash-160.ts", "../../../node_modules/ripple-binary-codec/src/types/account-id.ts", "../../../node_modules/decimal.js/decimal.js", "../../../node_modules/ripple-binary-codec/src/serdes/binary-parser.ts", "../../../node_modules/ripple-binary-codec/src/types/currency.ts", "../../../node_modules/ripple-binary-codec/node_modules/big-integer/BigInteger.js", "../../../node_modules/ripple-binary-codec/src/types/amount.ts", "../../../node_modules/ripple-binary-codec/src/types/blob.ts", "../../../node_modules/ripple-binary-codec/src/types/hash-128.ts", "../../../node_modules/ripple-binary-codec/src/types/hash-256.ts", "../../../node_modules/ripple-binary-codec/src/types/path-set.ts", "../../../node_modules/ripple-binary-codec/src/types/st-object.ts", "../../../node_modules/ripple-binary-codec/src/types/st-array.ts", "../../../node_modules/ripple-binary-codec/src/types/uint.ts", "../../../node_modules/ripple-binary-codec/src/types/uint-16.ts", "../../../node_modules/ripple-binary-codec/src/types/uint-32.ts", "../../../node_modules/ripple-binary-codec/src/types/uint-64.ts", "../../../node_modules/ripple-binary-codec/src/types/uint-8.ts", "../../../node_modules/ripple-binary-codec/src/types/vector-256.ts", "../../../node_modules/ripple-binary-codec/src/types/index.ts", "../../../node_modules/ripple-binary-codec/src/hash-prefixes.ts", "../../../node_modules/ripple-binary-codec/src/hashes.ts", "../../../node_modules/ripple-binary-codec/src/binary.ts", "../../../node_modules/ripple-binary-codec/src/shamap.ts", "../../../node_modules/ripple-binary-codec/src/ledger-hashes.ts", "../../../node_modules/ripple-binary-codec/src/quality.ts", "../../../node_modules/ripple-binary-codec/src/coretypes.ts", "../../../node_modules/ripple-binary-codec/src/index.ts", "../../../node_modules/ripple-lib/src/common/hashes/sha512Half.ts", "../../../node_modules/ripple-lib/src/common/hashes/hash-prefix.ts", "../../../node_modules/ripple-lib/src/common/hashes/shamap.ts", "../../../node_modules/ripple-lib/src/common/hashes/ledgerspaces.ts", "../../../node_modules/ripple-lib/src/common/hashes/index.ts", "../../../node_modules/ripple-lib/src/ledger/transactions.ts", "../../../node_modules/ripple-lib/src/ledger/parse/account-trustline.ts", "../../../node_modules/ripple-lib/src/ledger/trustlines.ts", "../../../node_modules/ripple-lib/src/ledger/balances.ts", "../../../node_modules/ripple-lib/src/ledger/balance-sheet.ts", "../../../node_modules/ripple-lib/src/ledger/parse/pathfind.ts", "../../../node_modules/ripple-lib/src/ledger/pathfind.ts", "../../../node_modules/ripple-lib/src/ledger/parse/flags.ts", "../../../node_modules/ripple-lib/src/ledger/parse/account-order.ts", "../../../node_modules/ripple-lib/src/ledger/orders.ts", "../../../node_modules/ripple-lib/src/ledger/parse/orderbook-order.ts", "../../../node_modules/ripple-lib/src/ledger/orderbook.ts", "../../../node_modules/ripple-lib/src/ledger/settings.ts", "../../../node_modules/ripple-lib/src/ledger/accountinfo.ts", "../../../node_modules/ripple-lib/src/ledger/accountobjects.ts", "../../../node_modules/ripple-lib/src/ledger/parse/payment-channel.ts", "../../../node_modules/ripple-lib/src/ledger/payment-channel.ts", "../../../node_modules/ripple-lib/src/transaction/utils.ts", "../../../node_modules/ripple-lib/src/transaction/payment.ts", "../../../node_modules/ripple-lib/src/transaction/trustline.ts", "../../../node_modules/ripple-lib/src/transaction/order.ts", "../../../node_modules/ripple-lib/src/transaction/ordercancellation.ts", "../../../node_modules/ripple-lib/src/transaction/escrow-creation.ts", "../../../node_modules/ripple-lib/src/transaction/escrow-execution.ts", "../../../node_modules/ripple-lib/src/transaction/escrow-cancellation.ts", "../../../node_modules/ripple-lib/src/transaction/payment-channel-create.ts", "../../../node_modules/ripple-lib/src/transaction/payment-channel-fund.ts", "../../../node_modules/ripple-lib/src/transaction/payment-channel-claim.ts", "../../../node_modules/ripple-lib/src/transaction/check-create.ts", "../../../node_modules/ripple-lib/src/transaction/check-cancel.ts", "../../../node_modules/ripple-lib/src/transaction/check-cash.ts", "../../../node_modules/ripple-lib/src/transaction/settings.ts", "../../../node_modules/ripple-lib/src/transaction/ticket.ts", "../../../node_modules/ripple-lib/src/transaction/sign.ts", "../../../node_modules/ripple-lib/src/transaction/combine.ts", "../../../node_modules/ripple-lib/src/transaction/submit.ts", "../../../node_modules/ripple-lib/src/offline/derive.ts", "../../../node_modules/ripple-lib/src/offline/ledgerhash.ts", "../../../node_modules/ripple-lib/src/offline/sign-payment-channel-claim.ts", "../../../node_modules/ripple-lib/src/offline/verify-payment-channel-claim.ts", "../../../node_modules/ripple-lib/src/offline/generate-address.ts", "../../../node_modules/ripple-lib/src/offline/utils.ts", "../../../node_modules/ripple-lib/src/ledger/parse/ledger.ts", "../../../node_modules/ripple-lib/src/ledger/ledger.ts", "../../../node_modules/ripple-lib/src/wallet/wallet-generation.ts", "../../../node_modules/ripple-lib/src/api.ts", "../../../node_modules/ripple-lib/dist/npm/transaction/types.js", "../../../node_modules/ripple-lib/dist/npm/common/types/objects/ledger.js", "../../../node_modules/ripple-lib/src/broadcast.ts", "../../../node_modules/ripple-lib/src/index.ts", "../../../node_modules/@trezor/blockchain-link/lib/workers/ripple/utils.js", "../../../node_modules/@trezor/blockchain-link/lib/workers/ripple/index.js", "../../../node_modules/@trezor/blockchain-link/lib/workers/blockfrost/websocket.js", "../../../node_modules/@trezor/blockchain-link/lib/workers/blockfrost/utils.js", "../../../node_modules/@trezor/blockchain-link/lib/workers/blockfrost/index.js", "../../../node_modules/@trezor/blockchain-link/lib/workers/electrum/utils/transform.js", "../../../node_modules/@trezor/blockchain-link/lib/workers/electrum/utils/addressManager.js", "../../../node_modules/@trezor/blockchain-link/lib/workers/electrum/utils/discovery.js", "../../../node_modules/@trezor/blockchain-link/lib/workers/electrum/utils/transaction.js", "../../../node_modules/@trezor/blockchain-link/lib/workers/electrum/utils/index.js", "../../../node_modules/@trezor/blockchain-link/lib/workers/electrum/methods/estimateFee.js", "../../../node_modules/@trezor/blockchain-link/lib/workers/electrum/methods/getAccountBalanceHistory.js", "../../../node_modules/@trezor/blockchain-link/lib/workers/electrum/methods/getAccountInfo.js", "../../../node_modules/@trezor/blockchain-link/lib/workers/electrum/methods/getAccountUtxo.js", "../../../node_modules/@trezor/blockchain-link/lib/workers/electrum/methods/getBlockHash.js", "../../../node_modules/@trezor/blockchain-link/lib/workers/electrum/methods/getInfo.js", "../../../node_modules/@trezor/blockchain-link/lib/workers/electrum/methods/getTransaction.js", "../../../node_modules/@trezor/blockchain-link/lib/workers/electrum/methods/pushTransaction.js", "../../../node_modules/@trezor/blockchain-link/lib/workers/electrum/methods/index.js", "../../../node_modules/@trezor/blockchain-link/lib/workers/electrum/listeners/blockListener.js", "../../../node_modules/@trezor/blockchain-link/lib/workers/electrum/listeners/txListener.js", "../../../node_modules/@trezor/blockchain-link/lib/workers/electrum/listeners/index.js", "../../../node_modules/@trezor/blockchain-link/lib/workers/electrum/sockets/base.js", "../../../node_modules/@trezor/blockchain-link/lib/workers/electrum/sockets/tcp.js", "../../../node_modules/@trezor/blockchain-link/lib/workers/electrum/sockets/tls.js", "../../../node_modules/@trezor/blockchain-link/lib/workers/electrum/sockets/tor.js", "../../../node_modules/@trezor/blockchain-link/lib/workers/electrum/sockets/index.js", "../../../node_modules/@trezor/blockchain-link/lib/workers/electrum/client/json-rpc.js", "../../../node_modules/@trezor/blockchain-link/lib/workers/electrum/client/batching.js", "../../../node_modules/@trezor/blockchain-link/lib/workers/electrum/client/electrum.js", "../../../node_modules/@trezor/blockchain-link/lib/workers/electrum/client/caching.js", "../../../node_modules/@trezor/blockchain-link/lib/workers/electrum/index.js", "../../../node_modules/@trezor/connect/lib/workers/workers.js", "../../../node_modules/@trezor/connect/lib/device/AbortController.js", "../../../node_modules/@trezor/connect/lib/device/DeviceList.js", "../../../node_modules/@trezor/connect/lib/data/analyticsInfo.js", "../../../node_modules/@trezor/connect-common/lib/storage.js", "../../../node_modules/@trezor/connect-common/lib/index.js", "../../../node_modules/@trezor/connect/lib/core/AbstractMethod.js", "../../../node_modules/@trezor/connect/lib/api/common/paramsValidator.js", "../../../node_modules/@trezor/connect/lib/api/applyFlags.js", "../../../node_modules/@trezor/connect/lib/api/applySettings.js", "../../../node_modules/@trezor/connect/lib/api/authorizeCoinjoin.js", "../../../node_modules/@trezor/connect/lib/api/backupDevice.js", "../../../node_modules/@trezor/connect/lib/api/binanceGetAddress.js", "../../../node_modules/@trezor/connect/lib/api/binanceGetPublicKey.js", "../../../node_modules/@trezor/connect/lib/api/binance/binanceSignTx.js", "../../../node_modules/@trezor/connect/lib/api/binanceSignTransaction.js", "../../../node_modules/@trezor/blockchain-link/lib/workers/throttler.js", "../../../node_modules/@trezor/blockchain-link/lib/index.js", "../../../node_modules/@trezor/connect/lib/backend/Blockchain.js", "../../../node_modules/@trezor/connect/lib/backend/BackendManager.js", "../../../node_modules/@trezor/connect/lib/backend/BlockchainLink.js", "../../../node_modules/@trezor/connect/lib/api/blockchainDisconnect.js", "../../../node_modules/@trezor/connect/lib/api/bitcoin/Fees.js", "../../../node_modules/@trezor/connect/lib/api/blockchainEstimateFee.js", "../../../node_modules/@trezor/connect/lib/api/blockchainGetAccountBalanceHistory.js", "../../../node_modules/@trezor/connect/lib/api/blockchainGetCurrentFiatRates.js", "../../../node_modules/@trezor/connect/lib/api/blockchainGetFiatRatesForTimestamps.js", "../../../node_modules/@trezor/connect/lib/api/blockchainGetTransactions.js", "../../../node_modules/@trezor/connect/lib/api/blockchainSetCustomBackend.js", "../../../node_modules/@trezor/connect/lib/api/blockchainSubscribe.js", "../../../node_modules/@trezor/connect/lib/api/blockchainSubscribeFiatRates.js", "../../../node_modules/@trezor/connect/lib/api/blockchainUnsubscribe.js", "../../../node_modules/@trezor/connect/lib/api/blockchainUnsubscribeFiatRates.js", "../../../node_modules/@trezor/connect/lib/api/cardano/cardanoAddressParameters.js", "../../../node_modules/@trezor/connect/lib/api/cardanoGetAddress.js", "../../../node_modules/@trezor/connect/lib/api/cardanoGetNativeScriptHash.js", "../../../node_modules/@trezor/connect/lib/api/cardanoGetPublicKey.js", "../../../node_modules/@trezor/connect/lib/api/cardano/cardanoAuxiliaryData.js", "../../../node_modules/@trezor/connect/lib/api/cardano/cardanoCertificate.js", "../../../node_modules/@trezor/connect/lib/api/cardano/cardanoInputs.js", "../../../node_modules/@trezor/connect/lib/api/cardano/cardanoTokenBundle.js", "../../../node_modules/@trezor/connect/lib/api/cardano/cardanoUtils.js", "../../../node_modules/@trezor/connect/lib/api/cardano/cardanoOutputs.js", "../../../node_modules/@trezor/connect/lib/api/cardano/cardanoWitnesses.js", "../../../node_modules/@trezor/connect/lib/api/cardanoSignTransaction.js", "../../../node_modules/@trezor/connect/lib/api/changePin.js", "../../../node_modules/@trezor/connect/lib/api/cipherKeyValue.js", "../../../node_modules/@trezor/connect/lib/utils/formatUtils.js", "../../../node_modules/@trezor/connect/lib/api/common/Discovery.js", "../../../node_modules/@trezor/connect/lib/api/bitcoin/enhanceSignTx.js", "../../../node_modules/@trezor/connect/lib/api/bitcoin/inputs.js", "../../../node_modules/@trezor/connect/lib/utils/addressUtils.js", "../../../node_modules/@trezor/connect/lib/api/bitcoin/outputs.js", "../../../node_modules/@trezor/connect/lib/api/bitcoin/refTx.js", "../../../node_modules/@trezor/connect/lib/api/bitcoin/signtx.js", "../../../node_modules/@trezor/connect/lib/api/bitcoin/signtxLegacy.js", "../../../node_modules/@trezor/connect/lib/api/bitcoin/signtxVerify.js", "../../../node_modules/@trezor/connect/lib/api/bitcoin/TransactionComposer.js", "../../../node_modules/@trezor/connect/lib/api/bitcoin/index.js", "../../../node_modules/@trezor/connect/lib/api/composeTransaction.js", "../../../node_modules/@trezor/connect/lib/api/eosGetPublicKey.js", "../../../node_modules/@trezor/connect/lib/api/eos/eosSignTx.js", "../../../node_modules/@trezor/connect/lib/api/eosSignTransaction.js", "../../../node_modules/@trezor/connect/lib/utils/ethereumUtils.js", "../../../node_modules/@trezor/connect/lib/api/ethereumGetAddress.js", "../../../node_modules/@trezor/connect/lib/api/ethereumGetPublicKey.js", "../../../node_modules/@trezor/connect/lib/api/ethereumSignMessage.js", "../../../node_modules/@trezor/connect/lib/api/ethereum/ethereumSignTx.js", "../../../node_modules/@trezor/connect/lib/api/ethereumSignTransaction.js", "../../../node_modules/@trezor/connect/lib/api/ethereum/ethereumSignTypedData.js", "../../../node_modules/@trezor/connect/lib/api/ethereumSignTypedData.js", "../../../node_modules/@trezor/connect/lib/api/ethereumVerifyMessage.js", "../../../node_modules/@trezor/connect/lib/api/firmware/getBinary.js", "../../../node_modules/@trezor/connect/lib/api/firmware/modifyFirmware.js", "../../../node_modules/@trezor/connect/lib/api/firmware/uploadFirmware.js", "../../../node_modules/@trezor/connect/lib/api/firmware/calculateFirmwareHash.js", "../../../node_modules/@trezor/connect/lib/api/firmware/index.js", "../../../node_modules/@trezor/connect/lib/api/firmwareUpdate.js", "../../../node_modules/@trezor/connect/lib/api/getAccountInfo.js", "../../../node_modules/@trezor/connect/lib/api/getAddress.js", "../../../node_modules/@trezor/connect/lib/api/getCoinInfo.js", "../../../node_modules/@trezor/connect/lib/api/getDeviceState.js", "../../../node_modules/@trezor/connect/lib/api/getFeatures.js", "../../../node_modules/@trezor/connect/lib/api/getFirmwareHash.js", "../../../node_modules/@trezor/connect/lib/api/getOwnershipId.js", "../../../node_modules/@trezor/connect/lib/api/getOwnershipProof.js", "../../../node_modules/@trezor/connect/lib/api/getPublicKey.js", "../../../node_modules/@trezor/connect/lib/api/getSettings.js", "../../../node_modules/@trezor/connect/lib/api/nemGetAddress.js", "../../../node_modules/@trezor/connect/lib/api/nem/nemSignTx.js", "../../../node_modules/@trezor/connect/lib/api/nemSignTransaction.js", "../../../node_modules/@trezor/connect/lib/api/pushTransaction.js", "../../../node_modules/@trezor/connect/lib/api/rebootToBootloader.js", "../../../node_modules/@trezor/connect/lib/api/recoveryDevice.js", "../../../node_modules/@trezor/connect/lib/api/requestLogin.js", "../../../node_modules/@trezor/connect/lib/api/resetDevice.js", "../../../node_modules/@trezor/connect/lib/api/rippleGetAddress.js", "../../../node_modules/@trezor/connect/lib/api/rippleSignTransaction.js", "../../../node_modules/@trezor/connect/lib/api/setBusy.js", "../../../node_modules/@trezor/connect/lib/api/setProxy.js", "../../../node_modules/@trezor/connect/lib/api/signMessage.js", "../../../node_modules/@trezor/connect/lib/api/signTransaction.js", "../../../node_modules/@trezor/connect/lib/api/stellarGetAddress.js", "../../../node_modules/@trezor/connect/lib/api/stellar/stellarSignTx.js", "../../../node_modules/@trezor/connect/lib/api/stellarSignTransaction.js", "../../../node_modules/@trezor/connect/lib/api/tezosGetAddress.js", "../../../node_modules/@trezor/connect/lib/api/tezosGetPublicKey.js", "../../../node_modules/@trezor/connect/lib/api/tezos/tezosSignTx.js", "../../../node_modules/@trezor/connect/lib/api/tezosSignTransaction.js", "../../../node_modules/@trezor/connect/lib/api/unlockPath.js", "../../../node_modules/@trezor/connect/lib/api/verifyMessage.js", "../../../node_modules/@trezor/connect/lib/api/wipeDevice.js", "../../../node_modules/@trezor/connect/lib/api/checkFirmwareAuthenticity.js", "../../../node_modules/@trezor/connect/lib/api/index.js", "../../../node_modules/@trezor/connect/lib/core/method.js", "../../../node_modules/@trezor/connect/lib/utils/interactionTimeout.js", "../../../node_modules/@trezor/connect/lib/core/index.js", "../../../node_modules/@trezor/connect/lib/index.js", "../../../node_modules/@trezor/connect/lib/utils/urlUtils.js", "../../../node_modules/@trezor/connect-web/lib/iframe/inlineStyles.js", "../../../node_modules/@trezor/connect-web/lib/iframe/index.js", "../../../node_modules/@trezor/connect-web/lib/popup/showPopupRequest.js", "../../../node_modules/@trezor/connect-web/lib/popup/index.js", "../../../node_modules/@trezor/connect-web/lib/webusb/button.js", "../../../node_modules/@trezor/connect-web/lib/index.js", "../src/index.ts"], + "sourcesContent": ["(function (module, exports) {\n 'use strict';\n\n // Utils\n function assert (val, msg) {\n if (!val) throw new Error(msg || 'Assertion failed');\n }\n\n // Could use `inherits` module, but don't want to move from single file\n // architecture yet.\n function inherits (ctor, superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function () {};\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n\n // BN\n\n function BN (number, base, endian) {\n if (BN.isBN(number)) {\n return number;\n }\n\n this.negative = 0;\n this.words = null;\n this.length = 0;\n\n // Reduction context\n this.red = null;\n\n if (number !== null) {\n if (base === 'le' || base === 'be') {\n endian = base;\n base = 10;\n }\n\n this._init(number || 0, base || 10, endian || 'be');\n }\n }\n if (typeof module === 'object') {\n module.exports = BN;\n } else {\n exports.BN = BN;\n }\n\n BN.BN = BN;\n BN.wordSize = 26;\n\n var Buffer;\n try {\n if (typeof window !== 'undefined' && typeof window.Buffer !== 'undefined') {\n Buffer = window.Buffer;\n } else {\n Buffer = require('buffer').Buffer;\n }\n } catch (e) {\n }\n\n BN.isBN = function isBN (num) {\n if (num instanceof BN) {\n return true;\n }\n\n return num !== null && typeof num === 'object' &&\n num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);\n };\n\n BN.max = function max (left, right) {\n if (left.cmp(right) > 0) return left;\n return right;\n };\n\n BN.min = function min (left, right) {\n if (left.cmp(right) < 0) return left;\n return right;\n };\n\n BN.prototype._init = function init (number, base, endian) {\n if (typeof number === 'number') {\n return this._initNumber(number, base, endian);\n }\n\n if (typeof number === 'object') {\n return this._initArray(number, base, endian);\n }\n\n if (base === 'hex') {\n base = 16;\n }\n assert(base === (base | 0) && base >= 2 && base <= 36);\n\n number = number.toString().replace(/\\s+/g, '');\n var start = 0;\n if (number[0] === '-') {\n start++;\n this.negative = 1;\n }\n\n if (start < number.length) {\n if (base === 16) {\n this._parseHex(number, start, endian);\n } else {\n this._parseBase(number, base, start);\n if (endian === 'le') {\n this._initArray(this.toArray(), base, endian);\n }\n }\n }\n };\n\n BN.prototype._initNumber = function _initNumber (number, base, endian) {\n if (number < 0) {\n this.negative = 1;\n number = -number;\n }\n if (number < 0x4000000) {\n this.words = [number & 0x3ffffff];\n this.length = 1;\n } else if (number < 0x10000000000000) {\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff\n ];\n this.length = 2;\n } else {\n assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff,\n 1\n ];\n this.length = 3;\n }\n\n if (endian !== 'le') return;\n\n // Reverse the bytes\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initArray = function _initArray (number, base, endian) {\n // Perhaps a Uint8Array\n assert(typeof number.length === 'number');\n if (number.length <= 0) {\n this.words = [0];\n this.length = 1;\n return this;\n }\n\n this.length = Math.ceil(number.length / 3);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n var off = 0;\n if (endian === 'be') {\n for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n } else if (endian === 'le') {\n for (i = 0, j = 0; i < number.length; i += 3) {\n w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n return this._strip();\n };\n\n function parseHex4Bits (string, index) {\n var c = string.charCodeAt(index);\n // '0' - '9'\n if (c >= 48 && c <= 57) {\n return c - 48;\n // 'A' - 'F'\n } else if (c >= 65 && c <= 70) {\n return c - 55;\n // 'a' - 'f'\n } else if (c >= 97 && c <= 102) {\n return c - 87;\n } else {\n assert(false, 'Invalid character in ' + string);\n }\n }\n\n function parseHexByte (string, lowerBound, index) {\n var r = parseHex4Bits(string, index);\n if (index - 1 >= lowerBound) {\n r |= parseHex4Bits(string, index - 1) << 4;\n }\n return r;\n }\n\n BN.prototype._parseHex = function _parseHex (number, start, endian) {\n // Create possibly bigger array to ensure that it fits the number\n this.length = Math.ceil((number.length - start) / 6);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n // 24-bits chunks\n var off = 0;\n var j = 0;\n\n var w;\n if (endian === 'be') {\n for (i = number.length - 1; i >= start; i -= 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n } else {\n var parseLength = number.length - start;\n for (i = parseLength % 2 === 0 ? start + 1 : start; i < number.length; i += 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n }\n\n this._strip();\n };\n\n function parseBase (str, start, end, mul) {\n var r = 0;\n var b = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r *= mul;\n\n // 'a'\n if (c >= 49) {\n b = c - 49 + 0xa;\n\n // 'A'\n } else if (c >= 17) {\n b = c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n b = c;\n }\n assert(c >= 0 && b < mul, 'Invalid character');\n r += b;\n }\n return r;\n }\n\n BN.prototype._parseBase = function _parseBase (number, base, start) {\n // Initialize as zero\n this.words = [0];\n this.length = 1;\n\n // Find length of limb in base\n for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n limbLen++;\n }\n limbLen--;\n limbPow = (limbPow / base) | 0;\n\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n\n var word = 0;\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n\n this.imuln(limbPow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n if (mod !== 0) {\n var pow = 1;\n word = parseBase(number, i, number.length, base);\n\n for (i = 0; i < mod; i++) {\n pow *= base;\n }\n\n this.imuln(pow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n this._strip();\n };\n\n BN.prototype.copy = function copy (dest) {\n dest.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n dest.words[i] = this.words[i];\n }\n dest.length = this.length;\n dest.negative = this.negative;\n dest.red = this.red;\n };\n\n function move (dest, src) {\n dest.words = src.words;\n dest.length = src.length;\n dest.negative = src.negative;\n dest.red = src.red;\n }\n\n BN.prototype._move = function _move (dest) {\n move(dest, this);\n };\n\n BN.prototype.clone = function clone () {\n var r = new BN(null);\n this.copy(r);\n return r;\n };\n\n BN.prototype._expand = function _expand (size) {\n while (this.length < size) {\n this.words[this.length++] = 0;\n }\n return this;\n };\n\n // Remove leading `0` from `this`\n BN.prototype._strip = function strip () {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\n return this._normSign();\n };\n\n BN.prototype._normSign = function _normSign () {\n // -0 = 0\n if (this.length === 1 && this.words[0] === 0) {\n this.negative = 0;\n }\n return this;\n };\n\n // Check Symbol.for because not everywhere where Symbol defined\n // See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol#Browser_compatibility\n if (typeof Symbol !== 'undefined' && typeof Symbol.for === 'function') {\n try {\n BN.prototype[Symbol.for('nodejs.util.inspect.custom')] = inspect;\n } catch (e) {\n BN.prototype.inspect = inspect;\n }\n } else {\n BN.prototype.inspect = inspect;\n }\n\n function inspect () {\n return (this.red ? '';\n }\n\n /*\n\n var zeros = [];\n var groupSizes = [];\n var groupBases = [];\n\n var s = '';\n var i = -1;\n while (++i < BN.wordSize) {\n zeros[i] = s;\n s += '0';\n }\n groupSizes[0] = 0;\n groupSizes[1] = 0;\n groupBases[0] = 0;\n groupBases[1] = 0;\n var base = 2 - 1;\n while (++base < 36 + 1) {\n var groupSize = 0;\n var groupBase = 1;\n while (groupBase < (1 << BN.wordSize) / base) {\n groupBase *= base;\n groupSize += 1;\n }\n groupSizes[base] = groupSize;\n groupBases[base] = groupBase;\n }\n\n */\n\n var zeros = [\n '',\n '0',\n '00',\n '000',\n '0000',\n '00000',\n '000000',\n '0000000',\n '00000000',\n '000000000',\n '0000000000',\n '00000000000',\n '000000000000',\n '0000000000000',\n '00000000000000',\n '000000000000000',\n '0000000000000000',\n '00000000000000000',\n '000000000000000000',\n '0000000000000000000',\n '00000000000000000000',\n '000000000000000000000',\n '0000000000000000000000',\n '00000000000000000000000',\n '000000000000000000000000',\n '0000000000000000000000000'\n ];\n\n var groupSizes = [\n 0, 0,\n 25, 16, 12, 11, 10, 9, 8,\n 8, 7, 7, 7, 7, 6, 6,\n 6, 6, 6, 6, 6, 5, 5,\n 5, 5, 5, 5, 5, 5, 5,\n 5, 5, 5, 5, 5, 5, 5\n ];\n\n var groupBases = [\n 0, 0,\n 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,\n 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,\n 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,\n 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,\n 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176\n ];\n\n BN.prototype.toString = function toString (base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n\n var out;\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = this.words[i];\n var word = (((w << off) | carry) & 0xffffff).toString(16);\n carry = (w >>> (24 - off)) & 0xffffff;\n off += 2;\n if (off >= 26) {\n off -= 26;\n i--;\n }\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n }\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n if (base === (base | 0) && base >= 2 && base <= 36) {\n // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n var groupSize = groupSizes[base];\n // var groupBase = Math.pow(base, groupSize);\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n while (!c.isZero()) {\n var r = c.modrn(groupBase).toString(base);\n c = c.idivn(groupBase);\n\n if (!c.isZero()) {\n out = zeros[groupSize - r.length] + r + out;\n } else {\n out = r + out;\n }\n }\n if (this.isZero()) {\n out = '0' + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n assert(false, 'Base should be between 2 and 36');\n };\n\n BN.prototype.toNumber = function toNumber () {\n var ret = this.words[0];\n if (this.length === 2) {\n ret += this.words[1] * 0x4000000;\n } else if (this.length === 3 && this.words[2] === 0x01) {\n // NOTE: at this stage it is known that the top bit is set\n ret += 0x10000000000000 + (this.words[1] * 0x4000000);\n } else if (this.length > 2) {\n assert(false, 'Number can only safely store up to 53 bits');\n }\n return (this.negative !== 0) ? -ret : ret;\n };\n\n BN.prototype.toJSON = function toJSON () {\n return this.toString(16, 2);\n };\n\n if (Buffer) {\n BN.prototype.toBuffer = function toBuffer (endian, length) {\n return this.toArrayLike(Buffer, endian, length);\n };\n }\n\n BN.prototype.toArray = function toArray (endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n var allocate = function allocate (ArrayType, size) {\n if (ArrayType.allocUnsafe) {\n return ArrayType.allocUnsafe(size);\n }\n return new ArrayType(size);\n };\n\n BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n this._strip();\n\n var byteLength = this.byteLength();\n var reqLength = length || Math.max(1, byteLength);\n assert(byteLength <= reqLength, 'byte array longer than desired length');\n assert(reqLength > 0, 'Requested array length <= 0');\n\n var res = allocate(ArrayType, reqLength);\n var postfix = endian === 'le' ? 'LE' : 'BE';\n this['_toArrayLike' + postfix](res, byteLength);\n return res;\n };\n\n BN.prototype._toArrayLikeLE = function _toArrayLikeLE (res, byteLength) {\n var position = 0;\n var carry = 0;\n\n for (var i = 0, shift = 0; i < this.length; i++) {\n var word = (this.words[i] << shift) | carry;\n\n res[position++] = word & 0xff;\n if (position < res.length) {\n res[position++] = (word >> 8) & 0xff;\n }\n if (position < res.length) {\n res[position++] = (word >> 16) & 0xff;\n }\n\n if (shift === 6) {\n if (position < res.length) {\n res[position++] = (word >> 24) & 0xff;\n }\n carry = 0;\n shift = 0;\n } else {\n carry = word >>> 24;\n shift += 2;\n }\n }\n\n if (position < res.length) {\n res[position++] = carry;\n\n while (position < res.length) {\n res[position++] = 0;\n }\n }\n };\n\n BN.prototype._toArrayLikeBE = function _toArrayLikeBE (res, byteLength) {\n var position = res.length - 1;\n var carry = 0;\n\n for (var i = 0, shift = 0; i < this.length; i++) {\n var word = (this.words[i] << shift) | carry;\n\n res[position--] = word & 0xff;\n if (position >= 0) {\n res[position--] = (word >> 8) & 0xff;\n }\n if (position >= 0) {\n res[position--] = (word >> 16) & 0xff;\n }\n\n if (shift === 6) {\n if (position >= 0) {\n res[position--] = (word >> 24) & 0xff;\n }\n carry = 0;\n shift = 0;\n } else {\n carry = word >>> 24;\n shift += 2;\n }\n }\n\n if (position >= 0) {\n res[position--] = carry;\n\n while (position >= 0) {\n res[position--] = 0;\n }\n }\n };\n\n if (Math.clz32) {\n BN.prototype._countBits = function _countBits (w) {\n return 32 - Math.clz32(w);\n };\n } else {\n BN.prototype._countBits = function _countBits (w) {\n var t = w;\n var r = 0;\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\n return r + t;\n };\n }\n\n BN.prototype._zeroBits = function _zeroBits (w) {\n // Short-cut\n if (w === 0) return 26;\n\n var t = w;\n var r = 0;\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n if ((t & 0x1) === 0) {\n r++;\n }\n return r;\n };\n\n // Return number of used bits in a BN\n BN.prototype.bitLength = function bitLength () {\n var w = this.words[this.length - 1];\n var hi = this._countBits(w);\n return (this.length - 1) * 26 + hi;\n };\n\n function toBitArray (num) {\n var w = new Array(num.bitLength());\n\n for (var bit = 0; bit < w.length; bit++) {\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n w[bit] = (num.words[off] >>> wbit) & 0x01;\n }\n\n return w;\n }\n\n // Number of trailing zero bits\n BN.prototype.zeroBits = function zeroBits () {\n if (this.isZero()) return 0;\n\n var r = 0;\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n r += b;\n if (b !== 26) break;\n }\n return r;\n };\n\n BN.prototype.byteLength = function byteLength () {\n return Math.ceil(this.bitLength() / 8);\n };\n\n BN.prototype.toTwos = function toTwos (width) {\n if (this.negative !== 0) {\n return this.abs().inotn(width).iaddn(1);\n }\n return this.clone();\n };\n\n BN.prototype.fromTwos = function fromTwos (width) {\n if (this.testn(width - 1)) {\n return this.notn(width).iaddn(1).ineg();\n }\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg () {\n return this.negative !== 0;\n };\n\n // Return negative clone of `this`\n BN.prototype.neg = function neg () {\n return this.clone().ineg();\n };\n\n BN.prototype.ineg = function ineg () {\n if (!this.isZero()) {\n this.negative ^= 1;\n }\n\n return this;\n };\n\n // Or `num` with `this` in-place\n BN.prototype.iuor = function iuor (num) {\n while (this.length < num.length) {\n this.words[this.length++] = 0;\n }\n\n for (var i = 0; i < num.length; i++) {\n this.words[i] = this.words[i] | num.words[i];\n }\n\n return this._strip();\n };\n\n BN.prototype.ior = function ior (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuor(num);\n };\n\n // Or `num` with `this`\n BN.prototype.or = function or (num) {\n if (this.length > num.length) return this.clone().ior(num);\n return num.clone().ior(this);\n };\n\n BN.prototype.uor = function uor (num) {\n if (this.length > num.length) return this.clone().iuor(num);\n return num.clone().iuor(this);\n };\n\n // And `num` with `this` in-place\n BN.prototype.iuand = function iuand (num) {\n // b = min-length(num, this)\n var b;\n if (this.length > num.length) {\n b = num;\n } else {\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = this.words[i] & num.words[i];\n }\n\n this.length = b.length;\n\n return this._strip();\n };\n\n BN.prototype.iand = function iand (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuand(num);\n };\n\n // And `num` with `this`\n BN.prototype.and = function and (num) {\n if (this.length > num.length) return this.clone().iand(num);\n return num.clone().iand(this);\n };\n\n BN.prototype.uand = function uand (num) {\n if (this.length > num.length) return this.clone().iuand(num);\n return num.clone().iuand(this);\n };\n\n // Xor `num` with `this` in-place\n BN.prototype.iuxor = function iuxor (num) {\n // a.length > b.length\n var a;\n var b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = a.words[i] ^ b.words[i];\n }\n\n if (this !== a) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = a.length;\n\n return this._strip();\n };\n\n BN.prototype.ixor = function ixor (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuxor(num);\n };\n\n // Xor `num` with `this`\n BN.prototype.xor = function xor (num) {\n if (this.length > num.length) return this.clone().ixor(num);\n return num.clone().ixor(this);\n };\n\n BN.prototype.uxor = function uxor (num) {\n if (this.length > num.length) return this.clone().iuxor(num);\n return num.clone().iuxor(this);\n };\n\n // Not ``this`` with ``width`` bitwidth\n BN.prototype.inotn = function inotn (width) {\n assert(typeof width === 'number' && width >= 0);\n\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26;\n\n // Extend the buffer with leading zeroes\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n }\n\n // Handle complete words\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n }\n\n // Handle the residue\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));\n }\n\n // And remove leading zeroes\n return this._strip();\n };\n\n BN.prototype.notn = function notn (width) {\n return this.clone().inotn(width);\n };\n\n // Set `bit` of `this`\n BN.prototype.setn = function setn (bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\n\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n this._expand(off + 1);\n\n if (val) {\n this.words[off] = this.words[off] | (1 << wbit);\n } else {\n this.words[off] = this.words[off] & ~(1 << wbit);\n }\n\n return this._strip();\n };\n\n // Add `num` to `this` in-place\n BN.prototype.iadd = function iadd (num) {\n var r;\n\n // negative + positive\n if (this.negative !== 0 && num.negative === 0) {\n this.negative = 0;\n r = this.isub(num);\n this.negative ^= 1;\n return this._normSign();\n\n // positive + negative\n } else if (this.negative === 0 && num.negative !== 0) {\n num.negative = 0;\n r = this.isub(num);\n num.negative = 1;\n return r._normSign();\n }\n\n // a.length > b.length\n var a, b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n this.length = a.length;\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++;\n // Copy the rest of the words\n } else if (a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n return this;\n };\n\n // Add `num` to `this`\n BN.prototype.add = function add (num) {\n var res;\n if (num.negative !== 0 && this.negative === 0) {\n num.negative = 0;\n res = this.sub(num);\n num.negative ^= 1;\n return res;\n } else if (num.negative === 0 && this.negative !== 0) {\n this.negative = 0;\n res = num.sub(this);\n this.negative = 1;\n return res;\n }\n\n if (this.length > num.length) return this.clone().iadd(num);\n\n return num.clone().iadd(this);\n };\n\n // Subtract `num` from `this` in-place\n BN.prototype.isub = function isub (num) {\n // this - (-num) = this + num\n if (num.negative !== 0) {\n num.negative = 0;\n var r = this.iadd(num);\n num.negative = 1;\n return r._normSign();\n\n // -this - num = -(this + num)\n } else if (this.negative !== 0) {\n this.negative = 0;\n this.iadd(num);\n this.negative = 1;\n return this._normSign();\n }\n\n // At this point both numbers are positive\n var cmp = this.cmp(num);\n\n // Optimization - zeroify\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n }\n\n // a > b\n var a, b;\n if (cmp > 0) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n\n // Copy rest of the words\n if (carry === 0 && i < a.length && a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = Math.max(this.length, i);\n\n if (a !== this) {\n this.negative = 1;\n }\n\n return this._strip();\n };\n\n // Subtract `num` from `this`\n BN.prototype.sub = function sub (num) {\n return this.clone().isub(num);\n };\n\n function smallMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n var len = (self.length + num.length) | 0;\n out.length = len;\n len = (len - 1) | 0;\n\n // Peel one iteration (compiler can't do it, because of code complexity)\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n var carry = (r / 0x4000000) | 0;\n out.words[0] = lo;\n\n for (var k = 1; k < len; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = carry >>> 26;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = (k - j) | 0;\n a = self.words[i] | 0;\n b = num.words[j] | 0;\n r = a * b + rword;\n ncarry += (r / 0x4000000) | 0;\n rword = r & 0x3ffffff;\n }\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out._strip();\n }\n\n // TODO(indutny): it may be reasonable to omit it for users who don't need\n // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n // multiplication (like elliptic secp256k1).\n var comb10MulTo = function comb10MulTo (self, num, out) {\n var a = self.words;\n var b = num.words;\n var o = out.words;\n var c = 0;\n var lo;\n var mid;\n var hi;\n var a0 = a[0] | 0;\n var al0 = a0 & 0x1fff;\n var ah0 = a0 >>> 13;\n var a1 = a[1] | 0;\n var al1 = a1 & 0x1fff;\n var ah1 = a1 >>> 13;\n var a2 = a[2] | 0;\n var al2 = a2 & 0x1fff;\n var ah2 = a2 >>> 13;\n var a3 = a[3] | 0;\n var al3 = a3 & 0x1fff;\n var ah3 = a3 >>> 13;\n var a4 = a[4] | 0;\n var al4 = a4 & 0x1fff;\n var ah4 = a4 >>> 13;\n var a5 = a[5] | 0;\n var al5 = a5 & 0x1fff;\n var ah5 = a5 >>> 13;\n var a6 = a[6] | 0;\n var al6 = a6 & 0x1fff;\n var ah6 = a6 >>> 13;\n var a7 = a[7] | 0;\n var al7 = a7 & 0x1fff;\n var ah7 = a7 >>> 13;\n var a8 = a[8] | 0;\n var al8 = a8 & 0x1fff;\n var ah8 = a8 >>> 13;\n var a9 = a[9] | 0;\n var al9 = a9 & 0x1fff;\n var ah9 = a9 >>> 13;\n var b0 = b[0] | 0;\n var bl0 = b0 & 0x1fff;\n var bh0 = b0 >>> 13;\n var b1 = b[1] | 0;\n var bl1 = b1 & 0x1fff;\n var bh1 = b1 >>> 13;\n var b2 = b[2] | 0;\n var bl2 = b2 & 0x1fff;\n var bh2 = b2 >>> 13;\n var b3 = b[3] | 0;\n var bl3 = b3 & 0x1fff;\n var bh3 = b3 >>> 13;\n var b4 = b[4] | 0;\n var bl4 = b4 & 0x1fff;\n var bh4 = b4 >>> 13;\n var b5 = b[5] | 0;\n var bl5 = b5 & 0x1fff;\n var bh5 = b5 >>> 13;\n var b6 = b[6] | 0;\n var bl6 = b6 & 0x1fff;\n var bh6 = b6 >>> 13;\n var b7 = b[7] | 0;\n var bl7 = b7 & 0x1fff;\n var bh7 = b7 >>> 13;\n var b8 = b[8] | 0;\n var bl8 = b8 & 0x1fff;\n var bh8 = b8 >>> 13;\n var b9 = b[9] | 0;\n var bl9 = b9 & 0x1fff;\n var bh9 = b9 >>> 13;\n\n out.negative = self.negative ^ num.negative;\n out.length = 19;\n /* k = 0 */\n lo = Math.imul(al0, bl0);\n mid = Math.imul(al0, bh0);\n mid = (mid + Math.imul(ah0, bl0)) | 0;\n hi = Math.imul(ah0, bh0);\n var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;\n w0 &= 0x3ffffff;\n /* k = 1 */\n lo = Math.imul(al1, bl0);\n mid = Math.imul(al1, bh0);\n mid = (mid + Math.imul(ah1, bl0)) | 0;\n hi = Math.imul(ah1, bh0);\n lo = (lo + Math.imul(al0, bl1)) | 0;\n mid = (mid + Math.imul(al0, bh1)) | 0;\n mid = (mid + Math.imul(ah0, bl1)) | 0;\n hi = (hi + Math.imul(ah0, bh1)) | 0;\n var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;\n w1 &= 0x3ffffff;\n /* k = 2 */\n lo = Math.imul(al2, bl0);\n mid = Math.imul(al2, bh0);\n mid = (mid + Math.imul(ah2, bl0)) | 0;\n hi = Math.imul(ah2, bh0);\n lo = (lo + Math.imul(al1, bl1)) | 0;\n mid = (mid + Math.imul(al1, bh1)) | 0;\n mid = (mid + Math.imul(ah1, bl1)) | 0;\n hi = (hi + Math.imul(ah1, bh1)) | 0;\n lo = (lo + Math.imul(al0, bl2)) | 0;\n mid = (mid + Math.imul(al0, bh2)) | 0;\n mid = (mid + Math.imul(ah0, bl2)) | 0;\n hi = (hi + Math.imul(ah0, bh2)) | 0;\n var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;\n w2 &= 0x3ffffff;\n /* k = 3 */\n lo = Math.imul(al3, bl0);\n mid = Math.imul(al3, bh0);\n mid = (mid + Math.imul(ah3, bl0)) | 0;\n hi = Math.imul(ah3, bh0);\n lo = (lo + Math.imul(al2, bl1)) | 0;\n mid = (mid + Math.imul(al2, bh1)) | 0;\n mid = (mid + Math.imul(ah2, bl1)) | 0;\n hi = (hi + Math.imul(ah2, bh1)) | 0;\n lo = (lo + Math.imul(al1, bl2)) | 0;\n mid = (mid + Math.imul(al1, bh2)) | 0;\n mid = (mid + Math.imul(ah1, bl2)) | 0;\n hi = (hi + Math.imul(ah1, bh2)) | 0;\n lo = (lo + Math.imul(al0, bl3)) | 0;\n mid = (mid + Math.imul(al0, bh3)) | 0;\n mid = (mid + Math.imul(ah0, bl3)) | 0;\n hi = (hi + Math.imul(ah0, bh3)) | 0;\n var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;\n w3 &= 0x3ffffff;\n /* k = 4 */\n lo = Math.imul(al4, bl0);\n mid = Math.imul(al4, bh0);\n mid = (mid + Math.imul(ah4, bl0)) | 0;\n hi = Math.imul(ah4, bh0);\n lo = (lo + Math.imul(al3, bl1)) | 0;\n mid = (mid + Math.imul(al3, bh1)) | 0;\n mid = (mid + Math.imul(ah3, bl1)) | 0;\n hi = (hi + Math.imul(ah3, bh1)) | 0;\n lo = (lo + Math.imul(al2, bl2)) | 0;\n mid = (mid + Math.imul(al2, bh2)) | 0;\n mid = (mid + Math.imul(ah2, bl2)) | 0;\n hi = (hi + Math.imul(ah2, bh2)) | 0;\n lo = (lo + Math.imul(al1, bl3)) | 0;\n mid = (mid + Math.imul(al1, bh3)) | 0;\n mid = (mid + Math.imul(ah1, bl3)) | 0;\n hi = (hi + Math.imul(ah1, bh3)) | 0;\n lo = (lo + Math.imul(al0, bl4)) | 0;\n mid = (mid + Math.imul(al0, bh4)) | 0;\n mid = (mid + Math.imul(ah0, bl4)) | 0;\n hi = (hi + Math.imul(ah0, bh4)) | 0;\n var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;\n w4 &= 0x3ffffff;\n /* k = 5 */\n lo = Math.imul(al5, bl0);\n mid = Math.imul(al5, bh0);\n mid = (mid + Math.imul(ah5, bl0)) | 0;\n hi = Math.imul(ah5, bh0);\n lo = (lo + Math.imul(al4, bl1)) | 0;\n mid = (mid + Math.imul(al4, bh1)) | 0;\n mid = (mid + Math.imul(ah4, bl1)) | 0;\n hi = (hi + Math.imul(ah4, bh1)) | 0;\n lo = (lo + Math.imul(al3, bl2)) | 0;\n mid = (mid + Math.imul(al3, bh2)) | 0;\n mid = (mid + Math.imul(ah3, bl2)) | 0;\n hi = (hi + Math.imul(ah3, bh2)) | 0;\n lo = (lo + Math.imul(al2, bl3)) | 0;\n mid = (mid + Math.imul(al2, bh3)) | 0;\n mid = (mid + Math.imul(ah2, bl3)) | 0;\n hi = (hi + Math.imul(ah2, bh3)) | 0;\n lo = (lo + Math.imul(al1, bl4)) | 0;\n mid = (mid + Math.imul(al1, bh4)) | 0;\n mid = (mid + Math.imul(ah1, bl4)) | 0;\n hi = (hi + Math.imul(ah1, bh4)) | 0;\n lo = (lo + Math.imul(al0, bl5)) | 0;\n mid = (mid + Math.imul(al0, bh5)) | 0;\n mid = (mid + Math.imul(ah0, bl5)) | 0;\n hi = (hi + Math.imul(ah0, bh5)) | 0;\n var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;\n w5 &= 0x3ffffff;\n /* k = 6 */\n lo = Math.imul(al6, bl0);\n mid = Math.imul(al6, bh0);\n mid = (mid + Math.imul(ah6, bl0)) | 0;\n hi = Math.imul(ah6, bh0);\n lo = (lo + Math.imul(al5, bl1)) | 0;\n mid = (mid + Math.imul(al5, bh1)) | 0;\n mid = (mid + Math.imul(ah5, bl1)) | 0;\n hi = (hi + Math.imul(ah5, bh1)) | 0;\n lo = (lo + Math.imul(al4, bl2)) | 0;\n mid = (mid + Math.imul(al4, bh2)) | 0;\n mid = (mid + Math.imul(ah4, bl2)) | 0;\n hi = (hi + Math.imul(ah4, bh2)) | 0;\n lo = (lo + Math.imul(al3, bl3)) | 0;\n mid = (mid + Math.imul(al3, bh3)) | 0;\n mid = (mid + Math.imul(ah3, bl3)) | 0;\n hi = (hi + Math.imul(ah3, bh3)) | 0;\n lo = (lo + Math.imul(al2, bl4)) | 0;\n mid = (mid + Math.imul(al2, bh4)) | 0;\n mid = (mid + Math.imul(ah2, bl4)) | 0;\n hi = (hi + Math.imul(ah2, bh4)) | 0;\n lo = (lo + Math.imul(al1, bl5)) | 0;\n mid = (mid + Math.imul(al1, bh5)) | 0;\n mid = (mid + Math.imul(ah1, bl5)) | 0;\n hi = (hi + Math.imul(ah1, bh5)) | 0;\n lo = (lo + Math.imul(al0, bl6)) | 0;\n mid = (mid + Math.imul(al0, bh6)) | 0;\n mid = (mid + Math.imul(ah0, bl6)) | 0;\n hi = (hi + Math.imul(ah0, bh6)) | 0;\n var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;\n w6 &= 0x3ffffff;\n /* k = 7 */\n lo = Math.imul(al7, bl0);\n mid = Math.imul(al7, bh0);\n mid = (mid + Math.imul(ah7, bl0)) | 0;\n hi = Math.imul(ah7, bh0);\n lo = (lo + Math.imul(al6, bl1)) | 0;\n mid = (mid + Math.imul(al6, bh1)) | 0;\n mid = (mid + Math.imul(ah6, bl1)) | 0;\n hi = (hi + Math.imul(ah6, bh1)) | 0;\n lo = (lo + Math.imul(al5, bl2)) | 0;\n mid = (mid + Math.imul(al5, bh2)) | 0;\n mid = (mid + Math.imul(ah5, bl2)) | 0;\n hi = (hi + Math.imul(ah5, bh2)) | 0;\n lo = (lo + Math.imul(al4, bl3)) | 0;\n mid = (mid + Math.imul(al4, bh3)) | 0;\n mid = (mid + Math.imul(ah4, bl3)) | 0;\n hi = (hi + Math.imul(ah4, bh3)) | 0;\n lo = (lo + Math.imul(al3, bl4)) | 0;\n mid = (mid + Math.imul(al3, bh4)) | 0;\n mid = (mid + Math.imul(ah3, bl4)) | 0;\n hi = (hi + Math.imul(ah3, bh4)) | 0;\n lo = (lo + Math.imul(al2, bl5)) | 0;\n mid = (mid + Math.imul(al2, bh5)) | 0;\n mid = (mid + Math.imul(ah2, bl5)) | 0;\n hi = (hi + Math.imul(ah2, bh5)) | 0;\n lo = (lo + Math.imul(al1, bl6)) | 0;\n mid = (mid + Math.imul(al1, bh6)) | 0;\n mid = (mid + Math.imul(ah1, bl6)) | 0;\n hi = (hi + Math.imul(ah1, bh6)) | 0;\n lo = (lo + Math.imul(al0, bl7)) | 0;\n mid = (mid + Math.imul(al0, bh7)) | 0;\n mid = (mid + Math.imul(ah0, bl7)) | 0;\n hi = (hi + Math.imul(ah0, bh7)) | 0;\n var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;\n w7 &= 0x3ffffff;\n /* k = 8 */\n lo = Math.imul(al8, bl0);\n mid = Math.imul(al8, bh0);\n mid = (mid + Math.imul(ah8, bl0)) | 0;\n hi = Math.imul(ah8, bh0);\n lo = (lo + Math.imul(al7, bl1)) | 0;\n mid = (mid + Math.imul(al7, bh1)) | 0;\n mid = (mid + Math.imul(ah7, bl1)) | 0;\n hi = (hi + Math.imul(ah7, bh1)) | 0;\n lo = (lo + Math.imul(al6, bl2)) | 0;\n mid = (mid + Math.imul(al6, bh2)) | 0;\n mid = (mid + Math.imul(ah6, bl2)) | 0;\n hi = (hi + Math.imul(ah6, bh2)) | 0;\n lo = (lo + Math.imul(al5, bl3)) | 0;\n mid = (mid + Math.imul(al5, bh3)) | 0;\n mid = (mid + Math.imul(ah5, bl3)) | 0;\n hi = (hi + Math.imul(ah5, bh3)) | 0;\n lo = (lo + Math.imul(al4, bl4)) | 0;\n mid = (mid + Math.imul(al4, bh4)) | 0;\n mid = (mid + Math.imul(ah4, bl4)) | 0;\n hi = (hi + Math.imul(ah4, bh4)) | 0;\n lo = (lo + Math.imul(al3, bl5)) | 0;\n mid = (mid + Math.imul(al3, bh5)) | 0;\n mid = (mid + Math.imul(ah3, bl5)) | 0;\n hi = (hi + Math.imul(ah3, bh5)) | 0;\n lo = (lo + Math.imul(al2, bl6)) | 0;\n mid = (mid + Math.imul(al2, bh6)) | 0;\n mid = (mid + Math.imul(ah2, bl6)) | 0;\n hi = (hi + Math.imul(ah2, bh6)) | 0;\n lo = (lo + Math.imul(al1, bl7)) | 0;\n mid = (mid + Math.imul(al1, bh7)) | 0;\n mid = (mid + Math.imul(ah1, bl7)) | 0;\n hi = (hi + Math.imul(ah1, bh7)) | 0;\n lo = (lo + Math.imul(al0, bl8)) | 0;\n mid = (mid + Math.imul(al0, bh8)) | 0;\n mid = (mid + Math.imul(ah0, bl8)) | 0;\n hi = (hi + Math.imul(ah0, bh8)) | 0;\n var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;\n w8 &= 0x3ffffff;\n /* k = 9 */\n lo = Math.imul(al9, bl0);\n mid = Math.imul(al9, bh0);\n mid = (mid + Math.imul(ah9, bl0)) | 0;\n hi = Math.imul(ah9, bh0);\n lo = (lo + Math.imul(al8, bl1)) | 0;\n mid = (mid + Math.imul(al8, bh1)) | 0;\n mid = (mid + Math.imul(ah8, bl1)) | 0;\n hi = (hi + Math.imul(ah8, bh1)) | 0;\n lo = (lo + Math.imul(al7, bl2)) | 0;\n mid = (mid + Math.imul(al7, bh2)) | 0;\n mid = (mid + Math.imul(ah7, bl2)) | 0;\n hi = (hi + Math.imul(ah7, bh2)) | 0;\n lo = (lo + Math.imul(al6, bl3)) | 0;\n mid = (mid + Math.imul(al6, bh3)) | 0;\n mid = (mid + Math.imul(ah6, bl3)) | 0;\n hi = (hi + Math.imul(ah6, bh3)) | 0;\n lo = (lo + Math.imul(al5, bl4)) | 0;\n mid = (mid + Math.imul(al5, bh4)) | 0;\n mid = (mid + Math.imul(ah5, bl4)) | 0;\n hi = (hi + Math.imul(ah5, bh4)) | 0;\n lo = (lo + Math.imul(al4, bl5)) | 0;\n mid = (mid + Math.imul(al4, bh5)) | 0;\n mid = (mid + Math.imul(ah4, bl5)) | 0;\n hi = (hi + Math.imul(ah4, bh5)) | 0;\n lo = (lo + Math.imul(al3, bl6)) | 0;\n mid = (mid + Math.imul(al3, bh6)) | 0;\n mid = (mid + Math.imul(ah3, bl6)) | 0;\n hi = (hi + Math.imul(ah3, bh6)) | 0;\n lo = (lo + Math.imul(al2, bl7)) | 0;\n mid = (mid + Math.imul(al2, bh7)) | 0;\n mid = (mid + Math.imul(ah2, bl7)) | 0;\n hi = (hi + Math.imul(ah2, bh7)) | 0;\n lo = (lo + Math.imul(al1, bl8)) | 0;\n mid = (mid + Math.imul(al1, bh8)) | 0;\n mid = (mid + Math.imul(ah1, bl8)) | 0;\n hi = (hi + Math.imul(ah1, bh8)) | 0;\n lo = (lo + Math.imul(al0, bl9)) | 0;\n mid = (mid + Math.imul(al0, bh9)) | 0;\n mid = (mid + Math.imul(ah0, bl9)) | 0;\n hi = (hi + Math.imul(ah0, bh9)) | 0;\n var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;\n w9 &= 0x3ffffff;\n /* k = 10 */\n lo = Math.imul(al9, bl1);\n mid = Math.imul(al9, bh1);\n mid = (mid + Math.imul(ah9, bl1)) | 0;\n hi = Math.imul(ah9, bh1);\n lo = (lo + Math.imul(al8, bl2)) | 0;\n mid = (mid + Math.imul(al8, bh2)) | 0;\n mid = (mid + Math.imul(ah8, bl2)) | 0;\n hi = (hi + Math.imul(ah8, bh2)) | 0;\n lo = (lo + Math.imul(al7, bl3)) | 0;\n mid = (mid + Math.imul(al7, bh3)) | 0;\n mid = (mid + Math.imul(ah7, bl3)) | 0;\n hi = (hi + Math.imul(ah7, bh3)) | 0;\n lo = (lo + Math.imul(al6, bl4)) | 0;\n mid = (mid + Math.imul(al6, bh4)) | 0;\n mid = (mid + Math.imul(ah6, bl4)) | 0;\n hi = (hi + Math.imul(ah6, bh4)) | 0;\n lo = (lo + Math.imul(al5, bl5)) | 0;\n mid = (mid + Math.imul(al5, bh5)) | 0;\n mid = (mid + Math.imul(ah5, bl5)) | 0;\n hi = (hi + Math.imul(ah5, bh5)) | 0;\n lo = (lo + Math.imul(al4, bl6)) | 0;\n mid = (mid + Math.imul(al4, bh6)) | 0;\n mid = (mid + Math.imul(ah4, bl6)) | 0;\n hi = (hi + Math.imul(ah4, bh6)) | 0;\n lo = (lo + Math.imul(al3, bl7)) | 0;\n mid = (mid + Math.imul(al3, bh7)) | 0;\n mid = (mid + Math.imul(ah3, bl7)) | 0;\n hi = (hi + Math.imul(ah3, bh7)) | 0;\n lo = (lo + Math.imul(al2, bl8)) | 0;\n mid = (mid + Math.imul(al2, bh8)) | 0;\n mid = (mid + Math.imul(ah2, bl8)) | 0;\n hi = (hi + Math.imul(ah2, bh8)) | 0;\n lo = (lo + Math.imul(al1, bl9)) | 0;\n mid = (mid + Math.imul(al1, bh9)) | 0;\n mid = (mid + Math.imul(ah1, bl9)) | 0;\n hi = (hi + Math.imul(ah1, bh9)) | 0;\n var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;\n w10 &= 0x3ffffff;\n /* k = 11 */\n lo = Math.imul(al9, bl2);\n mid = Math.imul(al9, bh2);\n mid = (mid + Math.imul(ah9, bl2)) | 0;\n hi = Math.imul(ah9, bh2);\n lo = (lo + Math.imul(al8, bl3)) | 0;\n mid = (mid + Math.imul(al8, bh3)) | 0;\n mid = (mid + Math.imul(ah8, bl3)) | 0;\n hi = (hi + Math.imul(ah8, bh3)) | 0;\n lo = (lo + Math.imul(al7, bl4)) | 0;\n mid = (mid + Math.imul(al7, bh4)) | 0;\n mid = (mid + Math.imul(ah7, bl4)) | 0;\n hi = (hi + Math.imul(ah7, bh4)) | 0;\n lo = (lo + Math.imul(al6, bl5)) | 0;\n mid = (mid + Math.imul(al6, bh5)) | 0;\n mid = (mid + Math.imul(ah6, bl5)) | 0;\n hi = (hi + Math.imul(ah6, bh5)) | 0;\n lo = (lo + Math.imul(al5, bl6)) | 0;\n mid = (mid + Math.imul(al5, bh6)) | 0;\n mid = (mid + Math.imul(ah5, bl6)) | 0;\n hi = (hi + Math.imul(ah5, bh6)) | 0;\n lo = (lo + Math.imul(al4, bl7)) | 0;\n mid = (mid + Math.imul(al4, bh7)) | 0;\n mid = (mid + Math.imul(ah4, bl7)) | 0;\n hi = (hi + Math.imul(ah4, bh7)) | 0;\n lo = (lo + Math.imul(al3, bl8)) | 0;\n mid = (mid + Math.imul(al3, bh8)) | 0;\n mid = (mid + Math.imul(ah3, bl8)) | 0;\n hi = (hi + Math.imul(ah3, bh8)) | 0;\n lo = (lo + Math.imul(al2, bl9)) | 0;\n mid = (mid + Math.imul(al2, bh9)) | 0;\n mid = (mid + Math.imul(ah2, bl9)) | 0;\n hi = (hi + Math.imul(ah2, bh9)) | 0;\n var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;\n w11 &= 0x3ffffff;\n /* k = 12 */\n lo = Math.imul(al9, bl3);\n mid = Math.imul(al9, bh3);\n mid = (mid + Math.imul(ah9, bl3)) | 0;\n hi = Math.imul(ah9, bh3);\n lo = (lo + Math.imul(al8, bl4)) | 0;\n mid = (mid + Math.imul(al8, bh4)) | 0;\n mid = (mid + Math.imul(ah8, bl4)) | 0;\n hi = (hi + Math.imul(ah8, bh4)) | 0;\n lo = (lo + Math.imul(al7, bl5)) | 0;\n mid = (mid + Math.imul(al7, bh5)) | 0;\n mid = (mid + Math.imul(ah7, bl5)) | 0;\n hi = (hi + Math.imul(ah7, bh5)) | 0;\n lo = (lo + Math.imul(al6, bl6)) | 0;\n mid = (mid + Math.imul(al6, bh6)) | 0;\n mid = (mid + Math.imul(ah6, bl6)) | 0;\n hi = (hi + Math.imul(ah6, bh6)) | 0;\n lo = (lo + Math.imul(al5, bl7)) | 0;\n mid = (mid + Math.imul(al5, bh7)) | 0;\n mid = (mid + Math.imul(ah5, bl7)) | 0;\n hi = (hi + Math.imul(ah5, bh7)) | 0;\n lo = (lo + Math.imul(al4, bl8)) | 0;\n mid = (mid + Math.imul(al4, bh8)) | 0;\n mid = (mid + Math.imul(ah4, bl8)) | 0;\n hi = (hi + Math.imul(ah4, bh8)) | 0;\n lo = (lo + Math.imul(al3, bl9)) | 0;\n mid = (mid + Math.imul(al3, bh9)) | 0;\n mid = (mid + Math.imul(ah3, bl9)) | 0;\n hi = (hi + Math.imul(ah3, bh9)) | 0;\n var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;\n w12 &= 0x3ffffff;\n /* k = 13 */\n lo = Math.imul(al9, bl4);\n mid = Math.imul(al9, bh4);\n mid = (mid + Math.imul(ah9, bl4)) | 0;\n hi = Math.imul(ah9, bh4);\n lo = (lo + Math.imul(al8, bl5)) | 0;\n mid = (mid + Math.imul(al8, bh5)) | 0;\n mid = (mid + Math.imul(ah8, bl5)) | 0;\n hi = (hi + Math.imul(ah8, bh5)) | 0;\n lo = (lo + Math.imul(al7, bl6)) | 0;\n mid = (mid + Math.imul(al7, bh6)) | 0;\n mid = (mid + Math.imul(ah7, bl6)) | 0;\n hi = (hi + Math.imul(ah7, bh6)) | 0;\n lo = (lo + Math.imul(al6, bl7)) | 0;\n mid = (mid + Math.imul(al6, bh7)) | 0;\n mid = (mid + Math.imul(ah6, bl7)) | 0;\n hi = (hi + Math.imul(ah6, bh7)) | 0;\n lo = (lo + Math.imul(al5, bl8)) | 0;\n mid = (mid + Math.imul(al5, bh8)) | 0;\n mid = (mid + Math.imul(ah5, bl8)) | 0;\n hi = (hi + Math.imul(ah5, bh8)) | 0;\n lo = (lo + Math.imul(al4, bl9)) | 0;\n mid = (mid + Math.imul(al4, bh9)) | 0;\n mid = (mid + Math.imul(ah4, bl9)) | 0;\n hi = (hi + Math.imul(ah4, bh9)) | 0;\n var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;\n w13 &= 0x3ffffff;\n /* k = 14 */\n lo = Math.imul(al9, bl5);\n mid = Math.imul(al9, bh5);\n mid = (mid + Math.imul(ah9, bl5)) | 0;\n hi = Math.imul(ah9, bh5);\n lo = (lo + Math.imul(al8, bl6)) | 0;\n mid = (mid + Math.imul(al8, bh6)) | 0;\n mid = (mid + Math.imul(ah8, bl6)) | 0;\n hi = (hi + Math.imul(ah8, bh6)) | 0;\n lo = (lo + Math.imul(al7, bl7)) | 0;\n mid = (mid + Math.imul(al7, bh7)) | 0;\n mid = (mid + Math.imul(ah7, bl7)) | 0;\n hi = (hi + Math.imul(ah7, bh7)) | 0;\n lo = (lo + Math.imul(al6, bl8)) | 0;\n mid = (mid + Math.imul(al6, bh8)) | 0;\n mid = (mid + Math.imul(ah6, bl8)) | 0;\n hi = (hi + Math.imul(ah6, bh8)) | 0;\n lo = (lo + Math.imul(al5, bl9)) | 0;\n mid = (mid + Math.imul(al5, bh9)) | 0;\n mid = (mid + Math.imul(ah5, bl9)) | 0;\n hi = (hi + Math.imul(ah5, bh9)) | 0;\n var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;\n w14 &= 0x3ffffff;\n /* k = 15 */\n lo = Math.imul(al9, bl6);\n mid = Math.imul(al9, bh6);\n mid = (mid + Math.imul(ah9, bl6)) | 0;\n hi = Math.imul(ah9, bh6);\n lo = (lo + Math.imul(al8, bl7)) | 0;\n mid = (mid + Math.imul(al8, bh7)) | 0;\n mid = (mid + Math.imul(ah8, bl7)) | 0;\n hi = (hi + Math.imul(ah8, bh7)) | 0;\n lo = (lo + Math.imul(al7, bl8)) | 0;\n mid = (mid + Math.imul(al7, bh8)) | 0;\n mid = (mid + Math.imul(ah7, bl8)) | 0;\n hi = (hi + Math.imul(ah7, bh8)) | 0;\n lo = (lo + Math.imul(al6, bl9)) | 0;\n mid = (mid + Math.imul(al6, bh9)) | 0;\n mid = (mid + Math.imul(ah6, bl9)) | 0;\n hi = (hi + Math.imul(ah6, bh9)) | 0;\n var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;\n w15 &= 0x3ffffff;\n /* k = 16 */\n lo = Math.imul(al9, bl7);\n mid = Math.imul(al9, bh7);\n mid = (mid + Math.imul(ah9, bl7)) | 0;\n hi = Math.imul(ah9, bh7);\n lo = (lo + Math.imul(al8, bl8)) | 0;\n mid = (mid + Math.imul(al8, bh8)) | 0;\n mid = (mid + Math.imul(ah8, bl8)) | 0;\n hi = (hi + Math.imul(ah8, bh8)) | 0;\n lo = (lo + Math.imul(al7, bl9)) | 0;\n mid = (mid + Math.imul(al7, bh9)) | 0;\n mid = (mid + Math.imul(ah7, bl9)) | 0;\n hi = (hi + Math.imul(ah7, bh9)) | 0;\n var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;\n w16 &= 0x3ffffff;\n /* k = 17 */\n lo = Math.imul(al9, bl8);\n mid = Math.imul(al9, bh8);\n mid = (mid + Math.imul(ah9, bl8)) | 0;\n hi = Math.imul(ah9, bh8);\n lo = (lo + Math.imul(al8, bl9)) | 0;\n mid = (mid + Math.imul(al8, bh9)) | 0;\n mid = (mid + Math.imul(ah8, bl9)) | 0;\n hi = (hi + Math.imul(ah8, bh9)) | 0;\n var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;\n w17 &= 0x3ffffff;\n /* k = 18 */\n lo = Math.imul(al9, bl9);\n mid = Math.imul(al9, bh9);\n mid = (mid + Math.imul(ah9, bl9)) | 0;\n hi = Math.imul(ah9, bh9);\n var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;\n w18 &= 0x3ffffff;\n o[0] = w0;\n o[1] = w1;\n o[2] = w2;\n o[3] = w3;\n o[4] = w4;\n o[5] = w5;\n o[6] = w6;\n o[7] = w7;\n o[8] = w8;\n o[9] = w9;\n o[10] = w10;\n o[11] = w11;\n o[12] = w12;\n o[13] = w13;\n o[14] = w14;\n o[15] = w15;\n o[16] = w16;\n o[17] = w17;\n o[18] = w18;\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n return out;\n };\n\n // Polyfill comb\n if (!Math.imul) {\n comb10MulTo = smallMulTo;\n }\n\n function bigMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n out.length = self.length + num.length;\n\n var carry = 0;\n var hncarry = 0;\n for (var k = 0; k < out.length - 1; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = hncarry;\n hncarry = 0;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j;\n var a = self.words[i] | 0;\n var b = num.words[j] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;\n lo = (lo + rword) | 0;\n rword = lo & 0x3ffffff;\n ncarry = (ncarry + (lo >>> 26)) | 0;\n\n hncarry += ncarry >>> 26;\n ncarry &= 0x3ffffff;\n }\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\n if (carry !== 0) {\n out.words[k] = carry;\n } else {\n out.length--;\n }\n\n return out._strip();\n }\n\n function jumboMulTo (self, num, out) {\n // Temporary disable, see https://github.com/indutny/bn.js/issues/211\n // var fftm = new FFTM();\n // return fftm.mulp(self, num, out);\n return bigMulTo(self, num, out);\n }\n\n BN.prototype.mulTo = function mulTo (num, out) {\n var res;\n var len = this.length + num.length;\n if (this.length === 10 && num.length === 10) {\n res = comb10MulTo(this, num, out);\n } else if (len < 63) {\n res = smallMulTo(this, num, out);\n } else if (len < 1024) {\n res = bigMulTo(this, num, out);\n } else {\n res = jumboMulTo(this, num, out);\n }\n\n return res;\n };\n\n // Cooley-Tukey algorithm for FFT\n // slightly revisited to rely on looping instead of recursion\n\n function FFTM (x, y) {\n this.x = x;\n this.y = y;\n }\n\n FFTM.prototype.makeRBT = function makeRBT (N) {\n var t = new Array(N);\n var l = BN.prototype._countBits(N) - 1;\n for (var i = 0; i < N; i++) {\n t[i] = this.revBin(i, l, N);\n }\n\n return t;\n };\n\n // Returns binary-reversed representation of `x`\n FFTM.prototype.revBin = function revBin (x, l, N) {\n if (x === 0 || x === N - 1) return x;\n\n var rb = 0;\n for (var i = 0; i < l; i++) {\n rb |= (x & 1) << (l - i - 1);\n x >>= 1;\n }\n\n return rb;\n };\n\n // Performs \"tweedling\" phase, therefore 'emulating'\n // behaviour of the recursive algorithm\n FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {\n for (var i = 0; i < N; i++) {\n rtws[i] = rws[rbt[i]];\n itws[i] = iws[rbt[i]];\n }\n };\n\n FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {\n this.permute(rbt, rws, iws, rtws, itws, N);\n\n for (var s = 1; s < N; s <<= 1) {\n var l = s << 1;\n\n var rtwdf = Math.cos(2 * Math.PI / l);\n var itwdf = Math.sin(2 * Math.PI / l);\n\n for (var p = 0; p < N; p += l) {\n var rtwdf_ = rtwdf;\n var itwdf_ = itwdf;\n\n for (var j = 0; j < s; j++) {\n var re = rtws[p + j];\n var ie = itws[p + j];\n\n var ro = rtws[p + j + s];\n var io = itws[p + j + s];\n\n var rx = rtwdf_ * ro - itwdf_ * io;\n\n io = rtwdf_ * io + itwdf_ * ro;\n ro = rx;\n\n rtws[p + j] = re + ro;\n itws[p + j] = ie + io;\n\n rtws[p + j + s] = re - ro;\n itws[p + j + s] = ie - io;\n\n /* jshint maxdepth : false */\n if (j !== l) {\n rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n\n itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n rtwdf_ = rx;\n }\n }\n }\n }\n };\n\n FFTM.prototype.guessLen13b = function guessLen13b (n, m) {\n var N = Math.max(m, n) | 1;\n var odd = N & 1;\n var i = 0;\n for (N = N / 2 | 0; N; N = N >>> 1) {\n i++;\n }\n\n return 1 << i + 1 + odd;\n };\n\n FFTM.prototype.conjugate = function conjugate (rws, iws, N) {\n if (N <= 1) return;\n\n for (var i = 0; i < N / 2; i++) {\n var t = rws[i];\n\n rws[i] = rws[N - i - 1];\n rws[N - i - 1] = t;\n\n t = iws[i];\n\n iws[i] = -iws[N - i - 1];\n iws[N - i - 1] = -t;\n }\n };\n\n FFTM.prototype.normalize13b = function normalize13b (ws, N) {\n var carry = 0;\n for (var i = 0; i < N / 2; i++) {\n var w = Math.round(ws[2 * i + 1] / N) * 0x2000 +\n Math.round(ws[2 * i] / N) +\n carry;\n\n ws[i] = w & 0x3ffffff;\n\n if (w < 0x4000000) {\n carry = 0;\n } else {\n carry = w / 0x4000000 | 0;\n }\n }\n\n return ws;\n };\n\n FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {\n var carry = 0;\n for (var i = 0; i < len; i++) {\n carry = carry + (ws[i] | 0);\n\n rws[2 * i] = carry & 0x1fff; carry = carry >>> 13;\n rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13;\n }\n\n // Pad with zeroes\n for (i = 2 * len; i < N; ++i) {\n rws[i] = 0;\n }\n\n assert(carry === 0);\n assert((carry & ~0x1fff) === 0);\n };\n\n FFTM.prototype.stub = function stub (N) {\n var ph = new Array(N);\n for (var i = 0; i < N; i++) {\n ph[i] = 0;\n }\n\n return ph;\n };\n\n FFTM.prototype.mulp = function mulp (x, y, out) {\n var N = 2 * this.guessLen13b(x.length, y.length);\n\n var rbt = this.makeRBT(N);\n\n var _ = this.stub(N);\n\n var rws = new Array(N);\n var rwst = new Array(N);\n var iwst = new Array(N);\n\n var nrws = new Array(N);\n var nrwst = new Array(N);\n var niwst = new Array(N);\n\n var rmws = out.words;\n rmws.length = N;\n\n this.convert13b(x.words, x.length, rws, N);\n this.convert13b(y.words, y.length, nrws, N);\n\n this.transform(rws, _, rwst, iwst, N, rbt);\n this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n for (var i = 0; i < N; i++) {\n var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n rwst[i] = rx;\n }\n\n this.conjugate(rwst, iwst, N);\n this.transform(rwst, iwst, rmws, _, N, rbt);\n this.conjugate(rmws, _, N);\n this.normalize13b(rmws, N);\n\n out.negative = x.negative ^ y.negative;\n out.length = x.length + y.length;\n return out._strip();\n };\n\n // Multiply `this` by `num`\n BN.prototype.mul = function mul (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return this.mulTo(num, out);\n };\n\n // Multiply employing FFT\n BN.prototype.mulf = function mulf (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return jumboMulTo(this, num, out);\n };\n\n // In-place Multiplication\n BN.prototype.imul = function imul (num) {\n return this.clone().mulTo(num, this);\n };\n\n BN.prototype.imuln = function imuln (num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n\n // Carry\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = (this.words[i] | 0) * num;\n var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n carry >>= 26;\n carry += (w / 0x4000000) | 0;\n // NOTE: lo is 27bit maximum\n carry += lo >>> 26;\n this.words[i] = lo & 0x3ffffff;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n\n return isNegNum ? this.ineg() : this;\n };\n\n BN.prototype.muln = function muln (num) {\n return this.clone().imuln(num);\n };\n\n // `this` * `this`\n BN.prototype.sqr = function sqr () {\n return this.mul(this);\n };\n\n // `this` * `this` in-place\n BN.prototype.isqr = function isqr () {\n return this.imul(this.clone());\n };\n\n // Math.pow(`this`, `num`)\n BN.prototype.pow = function pow (num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1);\n\n // Skip leading zeroes\n var res = this;\n for (var i = 0; i < w.length; i++, res = res.sqr()) {\n if (w[i] !== 0) break;\n }\n\n if (++i < w.length) {\n for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n if (w[i] === 0) continue;\n\n res = res.mul(q);\n }\n }\n\n return res;\n };\n\n // Shift-left in-place\n BN.prototype.iushln = function iushln (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);\n var i;\n\n if (r !== 0) {\n var carry = 0;\n\n for (i = 0; i < this.length; i++) {\n var newCarry = this.words[i] & carryMask;\n var c = ((this.words[i] | 0) - newCarry) << r;\n this.words[i] = c | carry;\n carry = newCarry >>> (26 - r);\n }\n\n if (carry) {\n this.words[i] = carry;\n this.length++;\n }\n }\n\n if (s !== 0) {\n for (i = this.length - 1; i >= 0; i--) {\n this.words[i + s] = this.words[i];\n }\n\n for (i = 0; i < s; i++) {\n this.words[i] = 0;\n }\n\n this.length += s;\n }\n\n return this._strip();\n };\n\n BN.prototype.ishln = function ishln (bits) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushln(bits);\n };\n\n // Shift-right in-place\n // NOTE: `hint` is a lowest bit before trailing zeroes\n // NOTE: if `extended` is present - it will be filled with destroyed bits\n BN.prototype.iushrn = function iushrn (bits, hint, extended) {\n assert(typeof bits === 'number' && bits >= 0);\n var h;\n if (hint) {\n h = (hint - (hint % 26)) / 26;\n } else {\n h = 0;\n }\n\n var r = bits % 26;\n var s = Math.min((bits - r) / 26, this.length);\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n var maskedWords = extended;\n\n h -= s;\n h = Math.max(0, h);\n\n // Extended mode, copy masked part\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n maskedWords.length = s;\n }\n\n if (s === 0) {\n // No-op, we should not move anything at all\n } else if (this.length > s) {\n this.length -= s;\n for (i = 0; i < this.length; i++) {\n this.words[i] = this.words[i + s];\n }\n } else {\n this.words[0] = 0;\n this.length = 1;\n }\n\n var carry = 0;\n for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n var word = this.words[i] | 0;\n this.words[i] = (carry << (26 - r)) | (word >>> r);\n carry = word & mask;\n }\n\n // Push carried bits as a mask\n if (maskedWords && carry !== 0) {\n maskedWords.words[maskedWords.length++] = carry;\n }\n\n if (this.length === 0) {\n this.words[0] = 0;\n this.length = 1;\n }\n\n return this._strip();\n };\n\n BN.prototype.ishrn = function ishrn (bits, hint, extended) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushrn(bits, hint, extended);\n };\n\n // Shift-left\n BN.prototype.shln = function shln (bits) {\n return this.clone().ishln(bits);\n };\n\n BN.prototype.ushln = function ushln (bits) {\n return this.clone().iushln(bits);\n };\n\n // Shift-right\n BN.prototype.shrn = function shrn (bits) {\n return this.clone().ishrn(bits);\n };\n\n BN.prototype.ushrn = function ushrn (bits) {\n return this.clone().iushrn(bits);\n };\n\n // Test if n bit is set\n BN.prototype.testn = function testn (bit) {\n assert(typeof bit === 'number' && bit >= 0);\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) return false;\n\n // Check bit and return\n var w = this.words[s];\n\n return !!(w & q);\n };\n\n // Return only lowers bits of number (in-place)\n BN.prototype.imaskn = function imaskn (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n\n assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n if (this.length <= s) {\n return this;\n }\n\n if (r !== 0) {\n s++;\n }\n this.length = Math.min(s, this.length);\n\n if (r !== 0) {\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n this.words[this.length - 1] &= mask;\n }\n\n return this._strip();\n };\n\n // Return only lowers bits of number\n BN.prototype.maskn = function maskn (bits) {\n return this.clone().imaskn(bits);\n };\n\n // Add plain number `num` to `this`\n BN.prototype.iaddn = function iaddn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.isubn(-num);\n\n // Possible sign change\n if (this.negative !== 0) {\n if (this.length === 1 && (this.words[0] | 0) <= num) {\n this.words[0] = num - (this.words[0] | 0);\n this.negative = 0;\n return this;\n }\n\n this.negative = 0;\n this.isubn(num);\n this.negative = 1;\n return this;\n }\n\n // Add without checks\n return this._iaddn(num);\n };\n\n BN.prototype._iaddn = function _iaddn (num) {\n this.words[0] += num;\n\n // Carry\n for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n this.words[i] -= 0x4000000;\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n this.length = Math.max(this.length, i + 1);\n\n return this;\n };\n\n // Subtract plain number `num` from `this`\n BN.prototype.isubn = function isubn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.iaddn(-num);\n\n if (this.negative !== 0) {\n this.negative = 0;\n this.iaddn(num);\n this.negative = 1;\n return this;\n }\n\n this.words[0] -= num;\n\n if (this.length === 1 && this.words[0] < 0) {\n this.words[0] = -this.words[0];\n this.negative = 1;\n } else {\n // Carry\n for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n this.words[i] += 0x4000000;\n this.words[i + 1] -= 1;\n }\n }\n\n return this._strip();\n };\n\n BN.prototype.addn = function addn (num) {\n return this.clone().iaddn(num);\n };\n\n BN.prototype.subn = function subn (num) {\n return this.clone().isubn(num);\n };\n\n BN.prototype.iabs = function iabs () {\n this.negative = 0;\n\n return this;\n };\n\n BN.prototype.abs = function abs () {\n return this.clone().iabs();\n };\n\n BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {\n var len = num.length + shift;\n var i;\n\n this._expand(len);\n\n var w;\n var carry = 0;\n for (i = 0; i < num.length; i++) {\n w = (this.words[i + shift] | 0) + carry;\n var right = (num.words[i] | 0) * mul;\n w -= right & 0x3ffffff;\n carry = (w >> 26) - ((right / 0x4000000) | 0);\n this.words[i + shift] = w & 0x3ffffff;\n }\n for (; i < this.length - shift; i++) {\n w = (this.words[i + shift] | 0) + carry;\n carry = w >> 26;\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n if (carry === 0) return this._strip();\n\n // Subtraction overflow\n assert(carry === -1);\n carry = 0;\n for (i = 0; i < this.length; i++) {\n w = -(this.words[i] | 0) + carry;\n carry = w >> 26;\n this.words[i] = w & 0x3ffffff;\n }\n this.negative = 1;\n\n return this._strip();\n };\n\n BN.prototype._wordDiv = function _wordDiv (num, mode) {\n var shift = this.length - num.length;\n\n var a = this.clone();\n var b = num;\n\n // Normalize\n var bhi = b.words[b.length - 1] | 0;\n var bhiBits = this._countBits(bhi);\n shift = 26 - bhiBits;\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n }\n\n // Initialize quotient\n var m = a.length - b.length;\n var q;\n\n if (mode !== 'mod') {\n q = new BN(null);\n q.length = m + 1;\n q.words = new Array(q.length);\n for (var i = 0; i < q.length; i++) {\n q.words[i] = 0;\n }\n }\n\n var diff = a.clone()._ishlnsubmul(b, 1, m);\n if (diff.negative === 0) {\n a = diff;\n if (q) {\n q.words[m] = 1;\n }\n }\n\n for (var j = m - 1; j >= 0; j--) {\n var qj = (a.words[b.length + j] | 0) * 0x4000000 +\n (a.words[b.length + j - 1] | 0);\n\n // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n // (0x7ffffff)\n qj = Math.min((qj / bhi) | 0, 0x3ffffff);\n\n a._ishlnsubmul(b, qj, j);\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n a._ishlnsubmul(b, 1, j);\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n if (q) {\n q.words[j] = qj;\n }\n }\n if (q) {\n q._strip();\n }\n a._strip();\n\n // Denormalize\n if (mode !== 'div' && shift !== 0) {\n a.iushrn(shift);\n }\n\n return {\n div: q || null,\n mod: a\n };\n };\n\n // NOTE: 1) `mode` can be set to `mod` to request mod only,\n // to `div` to request div only, or be absent to\n // request both div & mod\n // 2) `positive` is true if unsigned mod is requested\n BN.prototype.divmod = function divmod (num, mode, positive) {\n assert(!num.isZero());\n\n if (this.isZero()) {\n return {\n div: new BN(0),\n mod: new BN(0)\n };\n }\n\n var div, mod, res;\n if (this.negative !== 0 && num.negative === 0) {\n res = this.neg().divmod(num, mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.iadd(num);\n }\n }\n\n return {\n div: div,\n mod: mod\n };\n }\n\n if (this.negative === 0 && num.negative !== 0) {\n res = this.divmod(num.neg(), mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n return {\n div: div,\n mod: res.mod\n };\n }\n\n if ((this.negative & num.negative) !== 0) {\n res = this.neg().divmod(num.neg(), mode);\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n\n return {\n div: res.div,\n mod: mod\n };\n }\n\n // Both numbers are positive at this point\n\n // Strip both numbers to approximate shift value\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n }\n\n // Very short reduction\n if (num.length === 1) {\n if (mode === 'div') {\n return {\n div: this.divn(num.words[0]),\n mod: null\n };\n }\n\n if (mode === 'mod') {\n return {\n div: null,\n mod: new BN(this.modrn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modrn(num.words[0]))\n };\n }\n\n return this._wordDiv(num, mode);\n };\n\n // Find `this` / `num`\n BN.prototype.div = function div (num) {\n return this.divmod(num, 'div', false).div;\n };\n\n // Find `this` % `num`\n BN.prototype.mod = function mod (num) {\n return this.divmod(num, 'mod', false).mod;\n };\n\n BN.prototype.umod = function umod (num) {\n return this.divmod(num, 'mod', true).mod;\n };\n\n // Find Round(`this` / `num`)\n BN.prototype.divRound = function divRound (num) {\n var dm = this.divmod(num);\n\n // Fast case - exact division\n if (dm.mod.isZero()) return dm.div;\n\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half);\n\n // Round down\n if (cmp < 0 || (r2 === 1 && cmp === 0)) return dm.div;\n\n // Round up\n return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n };\n\n BN.prototype.modrn = function modrn (num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n\n assert(num <= 0x3ffffff);\n var p = (1 << 26) % num;\n\n var acc = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n acc = (p * acc + (this.words[i] | 0)) % num;\n }\n\n return isNegNum ? -acc : acc;\n };\n\n // WARNING: DEPRECATED\n BN.prototype.modn = function modn (num) {\n return this.modrn(num);\n };\n\n // In-place division by number\n BN.prototype.idivn = function idivn (num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n\n assert(num <= 0x3ffffff);\n\n var carry = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var w = (this.words[i] | 0) + carry * 0x4000000;\n this.words[i] = (w / num) | 0;\n carry = w % num;\n }\n\n this._strip();\n return isNegNum ? this.ineg() : this;\n };\n\n BN.prototype.divn = function divn (num) {\n return this.clone().idivn(num);\n };\n\n BN.prototype.egcd = function egcd (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var x = this;\n var y = p.clone();\n\n if (x.negative !== 0) {\n x = x.umod(p);\n } else {\n x = x.clone();\n }\n\n // A * x + B * y = x\n var A = new BN(1);\n var B = new BN(0);\n\n // C * x + D * y = y\n var C = new BN(0);\n var D = new BN(1);\n\n var g = 0;\n\n while (x.isEven() && y.isEven()) {\n x.iushrn(1);\n y.iushrn(1);\n ++g;\n }\n\n var yp = y.clone();\n var xp = x.clone();\n\n while (!x.isZero()) {\n for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n x.iushrn(i);\n while (i-- > 0) {\n if (A.isOdd() || B.isOdd()) {\n A.iadd(yp);\n B.isub(xp);\n }\n\n A.iushrn(1);\n B.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n y.iushrn(j);\n while (j-- > 0) {\n if (C.isOdd() || D.isOdd()) {\n C.iadd(yp);\n D.isub(xp);\n }\n\n C.iushrn(1);\n D.iushrn(1);\n }\n }\n\n if (x.cmp(y) >= 0) {\n x.isub(y);\n A.isub(C);\n B.isub(D);\n } else {\n y.isub(x);\n C.isub(A);\n D.isub(B);\n }\n }\n\n return {\n a: C,\n b: D,\n gcd: y.iushln(g)\n };\n };\n\n // This is reduced incarnation of the binary EEA\n // above, designated to invert members of the\n // _prime_ fields F(p) at a maximal speed\n BN.prototype._invmp = function _invmp (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var a = this;\n var b = p.clone();\n\n if (a.negative !== 0) {\n a = a.umod(p);\n } else {\n a = a.clone();\n }\n\n var x1 = new BN(1);\n var x2 = new BN(0);\n\n var delta = b.clone();\n\n while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n a.iushrn(i);\n while (i-- > 0) {\n if (x1.isOdd()) {\n x1.iadd(delta);\n }\n\n x1.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n b.iushrn(j);\n while (j-- > 0) {\n if (x2.isOdd()) {\n x2.iadd(delta);\n }\n\n x2.iushrn(1);\n }\n }\n\n if (a.cmp(b) >= 0) {\n a.isub(b);\n x1.isub(x2);\n } else {\n b.isub(a);\n x2.isub(x1);\n }\n }\n\n var res;\n if (a.cmpn(1) === 0) {\n res = x1;\n } else {\n res = x2;\n }\n\n if (res.cmpn(0) < 0) {\n res.iadd(p);\n }\n\n return res;\n };\n\n BN.prototype.gcd = function gcd (num) {\n if (this.isZero()) return num.abs();\n if (num.isZero()) return this.abs();\n\n var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0;\n\n // Remove common factor of two\n for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n a.iushrn(1);\n b.iushrn(1);\n }\n\n do {\n while (a.isEven()) {\n a.iushrn(1);\n }\n while (b.isEven()) {\n b.iushrn(1);\n }\n\n var r = a.cmp(b);\n if (r < 0) {\n // Swap `a` and `b` to make `a` always bigger than `b`\n var t = a;\n a = b;\n b = t;\n } else if (r === 0 || b.cmpn(1) === 0) {\n break;\n }\n\n a.isub(b);\n } while (true);\n\n return b.iushln(shift);\n };\n\n // Invert number in the field F(num)\n BN.prototype.invm = function invm (num) {\n return this.egcd(num).a.umod(num);\n };\n\n BN.prototype.isEven = function isEven () {\n return (this.words[0] & 1) === 0;\n };\n\n BN.prototype.isOdd = function isOdd () {\n return (this.words[0] & 1) === 1;\n };\n\n // And first word and num\n BN.prototype.andln = function andln (num) {\n return this.words[0] & num;\n };\n\n // Increment at the bit position in-line\n BN.prototype.bincn = function bincn (bit) {\n assert(typeof bit === 'number');\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) {\n this._expand(s + 1);\n this.words[s] |= q;\n return this;\n }\n\n // Add bit and propagate, if needed\n var carry = q;\n for (var i = s; carry !== 0 && i < this.length; i++) {\n var w = this.words[i] | 0;\n w += carry;\n carry = w >>> 26;\n w &= 0x3ffffff;\n this.words[i] = w;\n }\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n return this;\n };\n\n BN.prototype.isZero = function isZero () {\n return this.length === 1 && this.words[0] === 0;\n };\n\n BN.prototype.cmpn = function cmpn (num) {\n var negative = num < 0;\n\n if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n\n this._strip();\n\n var res;\n if (this.length > 1) {\n res = 1;\n } else {\n if (negative) {\n num = -num;\n }\n\n assert(num <= 0x3ffffff, 'Number is too big');\n\n var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Compare two numbers and return:\n // 1 - if `this` > `num`\n // 0 - if `this` == `num`\n // -1 - if `this` < `num`\n BN.prototype.cmp = function cmp (num) {\n if (this.negative !== 0 && num.negative === 0) return -1;\n if (this.negative === 0 && num.negative !== 0) return 1;\n\n var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Unsigned comparison\n BN.prototype.ucmp = function ucmp (num) {\n // At this point both numbers have the same sign\n if (this.length > num.length) return 1;\n if (this.length < num.length) return -1;\n\n var res = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var a = this.words[i] | 0;\n var b = num.words[i] | 0;\n\n if (a === b) continue;\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n break;\n }\n return res;\n };\n\n BN.prototype.gtn = function gtn (num) {\n return this.cmpn(num) === 1;\n };\n\n BN.prototype.gt = function gt (num) {\n return this.cmp(num) === 1;\n };\n\n BN.prototype.gten = function gten (num) {\n return this.cmpn(num) >= 0;\n };\n\n BN.prototype.gte = function gte (num) {\n return this.cmp(num) >= 0;\n };\n\n BN.prototype.ltn = function ltn (num) {\n return this.cmpn(num) === -1;\n };\n\n BN.prototype.lt = function lt (num) {\n return this.cmp(num) === -1;\n };\n\n BN.prototype.lten = function lten (num) {\n return this.cmpn(num) <= 0;\n };\n\n BN.prototype.lte = function lte (num) {\n return this.cmp(num) <= 0;\n };\n\n BN.prototype.eqn = function eqn (num) {\n return this.cmpn(num) === 0;\n };\n\n BN.prototype.eq = function eq (num) {\n return this.cmp(num) === 0;\n };\n\n //\n // A reduce context, could be using montgomery or something better, depending\n // on the `m` itself.\n //\n BN.red = function red (num) {\n return new Red(num);\n };\n\n BN.prototype.toRed = function toRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n assert(this.negative === 0, 'red works only with positives');\n return ctx.convertTo(this)._forceRed(ctx);\n };\n\n BN.prototype.fromRed = function fromRed () {\n assert(this.red, 'fromRed works only with numbers in reduction context');\n return this.red.convertFrom(this);\n };\n\n BN.prototype._forceRed = function _forceRed (ctx) {\n this.red = ctx;\n return this;\n };\n\n BN.prototype.forceRed = function forceRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n return this._forceRed(ctx);\n };\n\n BN.prototype.redAdd = function redAdd (num) {\n assert(this.red, 'redAdd works only with red numbers');\n return this.red.add(this, num);\n };\n\n BN.prototype.redIAdd = function redIAdd (num) {\n assert(this.red, 'redIAdd works only with red numbers');\n return this.red.iadd(this, num);\n };\n\n BN.prototype.redSub = function redSub (num) {\n assert(this.red, 'redSub works only with red numbers');\n return this.red.sub(this, num);\n };\n\n BN.prototype.redISub = function redISub (num) {\n assert(this.red, 'redISub works only with red numbers');\n return this.red.isub(this, num);\n };\n\n BN.prototype.redShl = function redShl (num) {\n assert(this.red, 'redShl works only with red numbers');\n return this.red.shl(this, num);\n };\n\n BN.prototype.redMul = function redMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.mul(this, num);\n };\n\n BN.prototype.redIMul = function redIMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.imul(this, num);\n };\n\n BN.prototype.redSqr = function redSqr () {\n assert(this.red, 'redSqr works only with red numbers');\n this.red._verify1(this);\n return this.red.sqr(this);\n };\n\n BN.prototype.redISqr = function redISqr () {\n assert(this.red, 'redISqr works only with red numbers');\n this.red._verify1(this);\n return this.red.isqr(this);\n };\n\n // Square root over p\n BN.prototype.redSqrt = function redSqrt () {\n assert(this.red, 'redSqrt works only with red numbers');\n this.red._verify1(this);\n return this.red.sqrt(this);\n };\n\n BN.prototype.redInvm = function redInvm () {\n assert(this.red, 'redInvm works only with red numbers');\n this.red._verify1(this);\n return this.red.invm(this);\n };\n\n // Return negative clone of `this` % `red modulo`\n BN.prototype.redNeg = function redNeg () {\n assert(this.red, 'redNeg works only with red numbers');\n this.red._verify1(this);\n return this.red.neg(this);\n };\n\n BN.prototype.redPow = function redPow (num) {\n assert(this.red && !num.red, 'redPow(normalNum)');\n this.red._verify1(this);\n return this.red.pow(this, num);\n };\n\n // Prime numbers with efficient reduction\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n };\n\n // Pseudo-Mersenne prime\n function MPrime (name, p) {\n // P = 2 ^ N - K\n this.name = name;\n this.p = new BN(p, 16);\n this.n = this.p.bitLength();\n this.k = new BN(1).iushln(this.n).isub(this.p);\n\n this.tmp = this._tmp();\n }\n\n MPrime.prototype._tmp = function _tmp () {\n var tmp = new BN(null);\n tmp.words = new Array(Math.ceil(this.n / 13));\n return tmp;\n };\n\n MPrime.prototype.ireduce = function ireduce (num) {\n // Assumes that `num` is less than `P^2`\n // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n var r = num;\n var rlen;\n\n do {\n this.split(r, this.tmp);\n r = this.imulK(r);\n r = r.iadd(this.tmp);\n rlen = r.bitLength();\n } while (rlen > this.n);\n\n var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n if (cmp === 0) {\n r.words[0] = 0;\n r.length = 1;\n } else if (cmp > 0) {\n r.isub(this.p);\n } else {\n if (r.strip !== undefined) {\n // r is a BN v4 instance\n r.strip();\n } else {\n // r is a BN v5 instance\n r._strip();\n }\n }\n\n return r;\n };\n\n MPrime.prototype.split = function split (input, out) {\n input.iushrn(this.n, 0, out);\n };\n\n MPrime.prototype.imulK = function imulK (num) {\n return num.imul(this.k);\n };\n\n function K256 () {\n MPrime.call(\n this,\n 'k256',\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n }\n inherits(K256, MPrime);\n\n K256.prototype.split = function split (input, output) {\n // 256 = 9 * 26 + 22\n var mask = 0x3fffff;\n\n var outLen = Math.min(input.length, 9);\n for (var i = 0; i < outLen; i++) {\n output.words[i] = input.words[i];\n }\n output.length = outLen;\n\n if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n }\n\n // Shift by 9 limbs\n var prev = input.words[9];\n output.words[output.length++] = prev & mask;\n\n for (i = 10; i < input.length; i++) {\n var next = input.words[i] | 0;\n input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22);\n prev = next;\n }\n prev >>>= 22;\n input.words[i - 10] = prev;\n if (prev === 0 && input.length > 10) {\n input.length -= 10;\n } else {\n input.length -= 9;\n }\n };\n\n K256.prototype.imulK = function imulK (num) {\n // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n num.words[num.length] = 0;\n num.words[num.length + 1] = 0;\n num.length += 2;\n\n // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n var lo = 0;\n for (var i = 0; i < num.length; i++) {\n var w = num.words[i] | 0;\n lo += w * 0x3d1;\n num.words[i] = lo & 0x3ffffff;\n lo = w * 0x40 + ((lo / 0x4000000) | 0);\n }\n\n // Fast length reduction\n if (num.words[num.length - 1] === 0) {\n num.length--;\n if (num.words[num.length - 1] === 0) {\n num.length--;\n }\n }\n return num;\n };\n\n function P224 () {\n MPrime.call(\n this,\n 'p224',\n 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n }\n inherits(P224, MPrime);\n\n function P192 () {\n MPrime.call(\n this,\n 'p192',\n 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n }\n inherits(P192, MPrime);\n\n function P25519 () {\n // 2 ^ 255 - 19\n MPrime.call(\n this,\n '25519',\n '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n }\n inherits(P25519, MPrime);\n\n P25519.prototype.imulK = function imulK (num) {\n // K = 0x13\n var carry = 0;\n for (var i = 0; i < num.length; i++) {\n var hi = (num.words[i] | 0) * 0x13 + carry;\n var lo = hi & 0x3ffffff;\n hi >>>= 26;\n\n num.words[i] = lo;\n carry = hi;\n }\n if (carry !== 0) {\n num.words[num.length++] = carry;\n }\n return num;\n };\n\n // Exported mostly for testing purposes, use plain name instead\n BN._prime = function prime (name) {\n // Cached version of prime\n if (primes[name]) return primes[name];\n\n var prime;\n if (name === 'k256') {\n prime = new K256();\n } else if (name === 'p224') {\n prime = new P224();\n } else if (name === 'p192') {\n prime = new P192();\n } else if (name === 'p25519') {\n prime = new P25519();\n } else {\n throw new Error('Unknown prime ' + name);\n }\n primes[name] = prime;\n\n return prime;\n };\n\n //\n // Base reduction engine\n //\n function Red (m) {\n if (typeof m === 'string') {\n var prime = BN._prime(m);\n this.m = prime.p;\n this.prime = prime;\n } else {\n assert(m.gtn(1), 'modulus must be greater than 1');\n this.m = m;\n this.prime = null;\n }\n }\n\n Red.prototype._verify1 = function _verify1 (a) {\n assert(a.negative === 0, 'red works only with positives');\n assert(a.red, 'red works only with red numbers');\n };\n\n Red.prototype._verify2 = function _verify2 (a, b) {\n assert((a.negative | b.negative) === 0, 'red works only with positives');\n assert(a.red && a.red === b.red,\n 'red works only with red numbers');\n };\n\n Red.prototype.imod = function imod (a) {\n if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n\n move(a, a.umod(this.m)._forceRed(this));\n return a;\n };\n\n Red.prototype.neg = function neg (a) {\n if (a.isZero()) {\n return a.clone();\n }\n\n return this.m.sub(a)._forceRed(this);\n };\n\n Red.prototype.add = function add (a, b) {\n this._verify2(a, b);\n\n var res = a.add(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.iadd = function iadd (a, b) {\n this._verify2(a, b);\n\n var res = a.iadd(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res;\n };\n\n Red.prototype.sub = function sub (a, b) {\n this._verify2(a, b);\n\n var res = a.sub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.isub = function isub (a, b) {\n this._verify2(a, b);\n\n var res = a.isub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res;\n };\n\n Red.prototype.shl = function shl (a, num) {\n this._verify1(a);\n return this.imod(a.ushln(num));\n };\n\n Red.prototype.imul = function imul (a, b) {\n this._verify2(a, b);\n return this.imod(a.imul(b));\n };\n\n Red.prototype.mul = function mul (a, b) {\n this._verify2(a, b);\n return this.imod(a.mul(b));\n };\n\n Red.prototype.isqr = function isqr (a) {\n return this.imul(a, a.clone());\n };\n\n Red.prototype.sqr = function sqr (a) {\n return this.mul(a, a);\n };\n\n Red.prototype.sqrt = function sqrt (a) {\n if (a.isZero()) return a.clone();\n\n var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1);\n\n // Fast case\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n }\n\n // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n //\n // Find Q and S, that Q * 2 ^ S = (P - 1)\n var q = this.m.subn(1);\n var s = 0;\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n assert(!q.isZero());\n\n var one = new BN(1).toRed(this);\n var nOne = one.redNeg();\n\n // Find quadratic non-residue\n // NOTE: Max is such because of generalized Riemann hypothesis.\n var lpow = this.m.subn(1).iushrn(1);\n var z = this.m.bitLength();\n z = new BN(2 * z * z).toRed(this);\n\n while (this.pow(z, lpow).cmp(nOne) !== 0) {\n z.redIAdd(nOne);\n }\n\n var c = this.pow(z, q);\n var r = this.pow(a, q.addn(1).iushrn(1));\n var t = this.pow(a, q);\n var m = s;\n while (t.cmp(one) !== 0) {\n var tmp = t;\n for (var i = 0; tmp.cmp(one) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\n\n r = r.redMul(b);\n c = b.redSqr();\n t = t.redMul(c);\n m = i;\n }\n\n return r;\n };\n\n Red.prototype.invm = function invm (a) {\n var inv = a._invmp(this.m);\n if (inv.negative !== 0) {\n inv.negative = 0;\n return this.imod(inv).redNeg();\n } else {\n return this.imod(inv);\n }\n };\n\n Red.prototype.pow = function pow (a, num) {\n if (num.isZero()) return new BN(1).toRed(this);\n if (num.cmpn(1) === 0) return a.clone();\n\n var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n for (var i = 2; i < wnd.length; i++) {\n wnd[i] = this.mul(wnd[i - 1], a);\n }\n\n var res = wnd[0];\n var current = 0;\n var currentLen = 0;\n var start = num.bitLength() % 26;\n if (start === 0) {\n start = 26;\n }\n\n for (i = num.length - 1; i >= 0; i--) {\n var word = num.words[i];\n for (var j = start - 1; j >= 0; j--) {\n var bit = (word >> j) & 1;\n if (res !== wnd[0]) {\n res = this.sqr(res);\n }\n\n if (bit === 0 && current === 0) {\n currentLen = 0;\n continue;\n }\n\n current <<= 1;\n current |= bit;\n currentLen++;\n if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n\n res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\n start = 26;\n }\n\n return res;\n };\n\n Red.prototype.convertTo = function convertTo (num) {\n var r = num.umod(this.m);\n\n return r === num ? r.clone() : r;\n };\n\n Red.prototype.convertFrom = function convertFrom (num) {\n var res = num.clone();\n res.red = null;\n return res;\n };\n\n //\n // Montgomery method engine\n //\n\n BN.mont = function mont (num) {\n return new Mont(num);\n };\n\n function Mont (m) {\n Red.call(this, m);\n\n this.shift = this.m.bitLength();\n if (this.shift % 26 !== 0) {\n this.shift += 26 - (this.shift % 26);\n }\n\n this.r = new BN(1).iushln(this.shift);\n this.r2 = this.imod(this.r.sqr());\n this.rinv = this.r._invmp(this.m);\n\n this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n this.minv = this.minv.umod(this.r);\n this.minv = this.r.sub(this.minv);\n }\n inherits(Mont, Red);\n\n Mont.prototype.convertTo = function convertTo (num) {\n return this.imod(num.ushln(this.shift));\n };\n\n Mont.prototype.convertFrom = function convertFrom (num) {\n var r = this.imod(num.mul(this.rinv));\n r.red = null;\n return r;\n };\n\n Mont.prototype.imul = function imul (a, b) {\n if (a.isZero() || b.isZero()) {\n a.words[0] = 0;\n a.length = 1;\n return a;\n }\n\n var t = a.imul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.mul = function mul (a, b) {\n if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n\n var t = a.mul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.invm = function invm (a) {\n // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n var res = this.imod(a._invmp(this.m).mul(this.r2));\n return res._forceRed(this);\n };\n})(typeof module === 'undefined' || module, this);\n", "export const version = \"logger/5.7.0\";\n", "\"use strict\";\n\nlet _permanentCensorErrors = false;\nlet _censorErrors = false;\n\nconst LogLevels: { [ name: string ]: number } = { debug: 1, \"default\": 2, info: 2, warning: 3, error: 4, off: 5 };\nlet _logLevel = LogLevels[\"default\"];\n\nimport { version } from \"./_version\";\n\nlet _globalLogger: Logger = null;\n\nfunction _checkNormalize(): string {\n try {\n const missing: Array = [ ];\n\n // Make sure all forms of normalization are supported\n [\"NFD\", \"NFC\", \"NFKD\", \"NFKC\"].forEach((form) => {\n try {\n if (\"test\".normalize(form) !== \"test\") {\n throw new Error(\"bad normalize\");\n };\n } catch(error) {\n missing.push(form);\n }\n });\n\n if (missing.length) {\n throw new Error(\"missing \" + missing.join(\", \"));\n }\n\n if (String.fromCharCode(0xe9).normalize(\"NFD\") !== String.fromCharCode(0x65, 0x0301)) {\n throw new Error(\"broken implementation\")\n }\n } catch (error) {\n return error.message;\n }\n\n return null;\n}\n\nconst _normalizeError = _checkNormalize();\n\nexport enum LogLevel {\n DEBUG = \"DEBUG\",\n INFO = \"INFO\",\n WARNING = \"WARNING\",\n ERROR = \"ERROR\",\n OFF = \"OFF\"\n}\n\n\nexport enum ErrorCode {\n\n ///////////////////\n // Generic Errors\n\n // Unknown Error\n UNKNOWN_ERROR = \"UNKNOWN_ERROR\",\n\n // Not Implemented\n NOT_IMPLEMENTED = \"NOT_IMPLEMENTED\",\n\n // Unsupported Operation\n // - operation\n UNSUPPORTED_OPERATION = \"UNSUPPORTED_OPERATION\",\n\n // Network Error (i.e. Ethereum Network, such as an invalid chain ID)\n // - event (\"noNetwork\" is not re-thrown in provider.ready; otherwise thrown)\n NETWORK_ERROR = \"NETWORK_ERROR\",\n\n // Some sort of bad response from the server\n SERVER_ERROR = \"SERVER_ERROR\",\n\n // Timeout\n TIMEOUT = \"TIMEOUT\",\n\n ///////////////////\n // Operational Errors\n\n // Buffer Overrun\n BUFFER_OVERRUN = \"BUFFER_OVERRUN\",\n\n // Numeric Fault\n // - operation: the operation being executed\n // - fault: the reason this faulted\n NUMERIC_FAULT = \"NUMERIC_FAULT\",\n\n\n ///////////////////\n // Argument Errors\n\n // Missing new operator to an object\n // - name: The name of the class\n MISSING_NEW = \"MISSING_NEW\",\n\n // Invalid argument (e.g. value is incompatible with type) to a function:\n // - argument: The argument name that was invalid\n // - value: The value of the argument\n INVALID_ARGUMENT = \"INVALID_ARGUMENT\",\n\n // Missing argument to a function:\n // - count: The number of arguments received\n // - expectedCount: The number of arguments expected\n MISSING_ARGUMENT = \"MISSING_ARGUMENT\",\n\n // Too many arguments\n // - count: The number of arguments received\n // - expectedCount: The number of arguments expected\n UNEXPECTED_ARGUMENT = \"UNEXPECTED_ARGUMENT\",\n\n\n ///////////////////\n // Blockchain Errors\n\n // Call exception\n // - transaction: the transaction\n // - address?: the contract address\n // - args?: The arguments passed into the function\n // - method?: The Solidity method signature\n // - errorSignature?: The EIP848 error signature\n // - errorArgs?: The EIP848 error parameters\n // - reason: The reason (only for EIP848 \"Error(string)\")\n CALL_EXCEPTION = \"CALL_EXCEPTION\",\n\n // Insufficient funds (< value + gasLimit * gasPrice)\n // - transaction: the transaction attempted\n INSUFFICIENT_FUNDS = \"INSUFFICIENT_FUNDS\",\n\n // Nonce has already been used\n // - transaction: the transaction attempted\n NONCE_EXPIRED = \"NONCE_EXPIRED\",\n\n // The replacement fee for the transaction is too low\n // - transaction: the transaction attempted\n REPLACEMENT_UNDERPRICED = \"REPLACEMENT_UNDERPRICED\",\n\n // The gas limit could not be estimated\n // - transaction: the transaction passed to estimateGas\n UNPREDICTABLE_GAS_LIMIT = \"UNPREDICTABLE_GAS_LIMIT\",\n\n // The transaction was replaced by one with a higher gas price\n // - reason: \"cancelled\", \"replaced\" or \"repriced\"\n // - cancelled: true if reason == \"cancelled\" or reason == \"replaced\")\n // - hash: original transaction hash\n // - replacement: the full TransactionsResponse for the replacement\n // - receipt: the receipt of the replacement\n TRANSACTION_REPLACED = \"TRANSACTION_REPLACED\",\n\n\n ///////////////////\n // Interaction Errors\n\n // The user rejected the action, such as signing a message or sending\n // a transaction\n ACTION_REJECTED = \"ACTION_REJECTED\",\n};\n\nconst HEX = \"0123456789abcdef\";\n\nexport class Logger {\n readonly version: string;\n\n static errors = ErrorCode;\n\n static levels = LogLevel;\n\n constructor(version: string) {\n Object.defineProperty(this, \"version\", {\n enumerable: true,\n value: version,\n writable: false\n });\n }\n\n _log(logLevel: LogLevel, args: Array): void {\n const level = logLevel.toLowerCase();\n if (LogLevels[level] == null) {\n this.throwArgumentError(\"invalid log level name\", \"logLevel\", logLevel);\n }\n if (_logLevel > LogLevels[level]) { return; }\n console.log.apply(console, args);\n }\n\n debug(...args: Array): void {\n this._log(Logger.levels.DEBUG, args);\n }\n\n info(...args: Array): void {\n this._log(Logger.levels.INFO, args);\n }\n\n warn(...args: Array): void {\n this._log(Logger.levels.WARNING, args);\n }\n\n makeError(message: string, code?: ErrorCode, params?: any): Error {\n // Errors are being censored\n if (_censorErrors) {\n return this.makeError(\"censored error\", code, { });\n }\n\n if (!code) { code = Logger.errors.UNKNOWN_ERROR; }\n if (!params) { params = {}; }\n\n const messageDetails: Array = [];\n Object.keys(params).forEach((key) => {\n const value = params[key];\n try {\n if (value instanceof Uint8Array) {\n let hex = \"\";\n for (let i = 0; i < value.length; i++) {\n hex += HEX[value[i] >> 4];\n hex += HEX[value[i] & 0x0f];\n }\n messageDetails.push(key + \"=Uint8Array(0x\" + hex + \")\");\n } else {\n messageDetails.push(key + \"=\" + JSON.stringify(value));\n }\n } catch (error) {\n messageDetails.push(key + \"=\" + JSON.stringify(params[key].toString()));\n }\n });\n messageDetails.push(`code=${ code }`);\n messageDetails.push(`version=${ this.version }`);\n\n const reason = message;\n\n let url = \"\";\n\n switch (code) {\n case ErrorCode.NUMERIC_FAULT: {\n url = \"NUMERIC_FAULT\";\n const fault = message;\n\n switch (fault) {\n case \"overflow\": case \"underflow\": case \"division-by-zero\":\n url += \"-\" + fault;\n break;\n case \"negative-power\": case \"negative-width\":\n url += \"-unsupported\";\n break;\n case \"unbound-bitwise-result\":\n url += \"-unbound-result\";\n break;\n }\n break;\n }\n case ErrorCode.CALL_EXCEPTION:\n case ErrorCode.INSUFFICIENT_FUNDS:\n case ErrorCode.MISSING_NEW:\n case ErrorCode.NONCE_EXPIRED:\n case ErrorCode.REPLACEMENT_UNDERPRICED:\n case ErrorCode.TRANSACTION_REPLACED:\n case ErrorCode.UNPREDICTABLE_GAS_LIMIT:\n url = code;\n break;\n }\n\n if (url) {\n message += \" [ See: https:/\\/links.ethers.org/v5-errors-\" + url + \" ]\";\n }\n\n if (messageDetails.length) {\n message += \" (\" + messageDetails.join(\", \") + \")\";\n }\n\n // @TODO: Any??\n const error: any = new Error(message);\n error.reason = reason;\n error.code = code\n\n Object.keys(params).forEach(function(key) {\n error[key] = params[key];\n });\n\n return error;\n }\n\n throwError(message: string, code?: ErrorCode, params?: any): never {\n throw this.makeError(message, code, params);\n }\n\n throwArgumentError(message: string, name: string, value: any): never {\n return this.throwError(message, Logger.errors.INVALID_ARGUMENT, {\n argument: name,\n value: value\n });\n }\n\n assert(condition: any, message: string, code?: ErrorCode, params?: any): void {\n if (!!condition) { return; }\n this.throwError(message, code, params);\n }\n\n assertArgument(condition: any, message: string, name: string, value: any): void {\n if (!!condition) { return; }\n this.throwArgumentError(message, name, value);\n }\n\n checkNormalize(message?: string): void {\n if (message == null) { message = \"platform missing String.prototype.normalize\"; }\n if (_normalizeError) {\n this.throwError(\"platform missing String.prototype.normalize\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"String.prototype.normalize\", form: _normalizeError\n });\n }\n }\n\n checkSafeUint53(value: number, message?: string): void {\n if (typeof(value) !== \"number\") { return; }\n\n if (message == null) { message = \"value not safe\"; }\n\n if (value < 0 || value >= 0x1fffffffffffff) {\n this.throwError(message, Logger.errors.NUMERIC_FAULT, {\n operation: \"checkSafeInteger\",\n fault: \"out-of-safe-range\",\n value: value\n });\n }\n\n if (value % 1) {\n this.throwError(message, Logger.errors.NUMERIC_FAULT, {\n operation: \"checkSafeInteger\",\n fault: \"non-integer\",\n value: value\n });\n }\n }\n\n checkArgumentCount(count: number, expectedCount: number, message?: string): void {\n if (message) {\n message = \": \" + message;\n } else {\n message = \"\";\n }\n\n if (count < expectedCount) {\n this.throwError(\"missing argument\" + message, Logger.errors.MISSING_ARGUMENT, {\n count: count,\n expectedCount: expectedCount\n });\n }\n\n if (count > expectedCount) {\n this.throwError(\"too many arguments\" + message, Logger.errors.UNEXPECTED_ARGUMENT, {\n count: count,\n expectedCount: expectedCount\n });\n }\n }\n\n checkNew(target: any, kind: any): void {\n if (target === Object || target == null) {\n this.throwError(\"missing new\", Logger.errors.MISSING_NEW, { name: kind.name });\n }\n }\n\n checkAbstract(target: any, kind: any): void {\n if (target === kind) {\n this.throwError(\n \"cannot instantiate abstract class \" + JSON.stringify(kind.name) + \" directly; use a sub-class\",\n Logger.errors.UNSUPPORTED_OPERATION,\n { name: target.name, operation: \"new\" }\n );\n } else if (target === Object || target == null) {\n this.throwError(\"missing new\", Logger.errors.MISSING_NEW, { name: kind.name });\n }\n }\n\n static globalLogger(): Logger {\n if (!_globalLogger) { _globalLogger = new Logger(version); }\n return _globalLogger;\n }\n\n static setCensorship(censorship: boolean, permanent?: boolean): void {\n if (!censorship && permanent) {\n this.globalLogger().throwError(\"cannot permanently disable censorship\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"setCensorship\"\n });\n }\n\n if (_permanentCensorErrors) {\n if (!censorship) { return; }\n this.globalLogger().throwError(\"error censorship permanent\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"setCensorship\"\n });\n }\n\n _censorErrors = !!censorship;\n _permanentCensorErrors = !!permanent;\n }\n\n static setLogLevel(logLevel: LogLevel): void {\n const level = LogLevels[logLevel.toLowerCase()];\n if (level == null) {\n Logger.globalLogger().warn(\"invalid log level - \" + logLevel);\n return;\n }\n _logLevel = level;\n }\n\n static from(version: string): Logger {\n return new Logger(version);\n }\n}\n", "export const version = \"bytes/5.7.0\";\n", "\"use strict\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\n///////////////////////////////\n// Exported Types\n\nexport type Bytes = ArrayLike;\n\nexport type BytesLike = Bytes | string;\n\nexport type DataOptions = {\n allowMissingPrefix?: boolean;\n hexPad?: \"left\" | \"right\" | null;\n};\n\nexport interface Hexable {\n toHexString(): string;\n}\n\n\n/*\nexport interface HexString {\n length: number;\n substring: (start: number, end?: number) => string;\n\n [index: number]: string;\n}\n*/\n\nexport type SignatureLike = {\n r: string;\n s?: string;\n _vs?: string,\n recoveryParam?: number;\n v?: number;\n} | BytesLike;\n\nexport interface Signature {\n r: string;\n\n s: string;\n _vs: string,\n\n recoveryParam: number;\n v: number;\n\n yParityAndS: string\n compact: string;\n}\n\n///////////////////////////////\n\n\nfunction isHexable(value: any): value is Hexable {\n return !!(value.toHexString);\n}\n\nfunction addSlice(array: Uint8Array): Uint8Array {\n if (array.slice) { return array; }\n\n array.slice = function() {\n const args = Array.prototype.slice.call(arguments);\n return addSlice(new Uint8Array(Array.prototype.slice.apply(array, args)));\n }\n\n return array;\n}\n\nexport function isBytesLike(value: any): value is BytesLike {\n return ((isHexString(value) && !(value.length % 2)) || isBytes(value));\n}\n\nfunction isInteger(value: number) {\n return (typeof(value) === \"number\" && value == value && (value % 1) === 0);\n}\n\nexport function isBytes(value: any): value is Bytes {\n if (value == null) { return false; }\n\n if (value.constructor === Uint8Array) { return true; }\n if (typeof(value) === \"string\") { return false; }\n if (!isInteger(value.length) || value.length < 0) { return false; }\n\n for (let i = 0; i < value.length; i++) {\n const v = value[i];\n if (!isInteger(v) || v < 0 || v >= 256) { return false; }\n }\n return true;\n}\n\n\nexport function arrayify(value: BytesLike | Hexable | number, options?: DataOptions): Uint8Array {\n if (!options) { options = { }; }\n\n if (typeof(value) === \"number\") {\n logger.checkSafeUint53(value, \"invalid arrayify value\");\n\n const result = [];\n while (value) {\n result.unshift(value & 0xff);\n value = parseInt(String(value / 256));\n }\n if (result.length === 0) { result.push(0); }\n\n return addSlice(new Uint8Array(result));\n }\n\n if (options.allowMissingPrefix && typeof(value) === \"string\" && value.substring(0, 2) !== \"0x\") {\n value = \"0x\" + value;\n }\n\n if (isHexable(value)) { value = value.toHexString(); }\n\n if (isHexString(value)) {\n let hex = (value).substring(2);\n if (hex.length % 2) {\n if (options.hexPad === \"left\") {\n hex = \"0\" + hex;\n } else if (options.hexPad === \"right\") {\n hex += \"0\";\n } else {\n logger.throwArgumentError(\"hex data is odd-length\", \"value\", value);\n }\n }\n\n const result = [];\n for (let i = 0; i < hex.length; i += 2) {\n result.push(parseInt(hex.substring(i, i + 2), 16));\n }\n\n return addSlice(new Uint8Array(result));\n }\n\n if (isBytes(value)) {\n return addSlice(new Uint8Array(value));\n }\n\n return logger.throwArgumentError(\"invalid arrayify value\", \"value\", value);\n}\n\nexport function concat(items: ReadonlyArray): Uint8Array {\n const objects = items.map(item => arrayify(item));\n const length = objects.reduce((accum, item) => (accum + item.length), 0);\n\n const result = new Uint8Array(length);\n\n objects.reduce((offset, object) => {\n result.set(object, offset);\n return offset + object.length;\n }, 0);\n\n return addSlice(result);\n}\n\nexport function stripZeros(value: BytesLike): Uint8Array {\n let result: Uint8Array = arrayify(value);\n\n if (result.length === 0) { return result; }\n\n // Find the first non-zero entry\n let start = 0;\n while (start < result.length && result[start] === 0) { start++ }\n\n // If we started with zeros, strip them\n if (start) {\n result = result.slice(start);\n }\n\n return result;\n}\n\nexport function zeroPad(value: BytesLike, length: number): Uint8Array {\n value = arrayify(value);\n\n if (value.length > length) {\n logger.throwArgumentError(\"value out of range\", \"value\", arguments[0]);\n }\n\n const result = new Uint8Array(length);\n result.set(value, length - value.length);\n return addSlice(result);\n}\n\n\nexport function isHexString(value: any, length?: number): boolean {\n if (typeof(value) !== \"string\" || !value.match(/^0x[0-9A-Fa-f]*$/)) {\n return false\n }\n if (length && value.length !== 2 + 2 * length) { return false; }\n return true;\n}\n\nconst HexCharacters: string = \"0123456789abcdef\";\n\nexport function hexlify(value: BytesLike | Hexable | number | bigint, options?: DataOptions): string {\n if (!options) { options = { }; }\n\n if (typeof(value) === \"number\") {\n logger.checkSafeUint53(value, \"invalid hexlify value\");\n\n let hex = \"\";\n while (value) {\n hex = HexCharacters[value & 0xf] + hex;\n value = Math.floor(value / 16);\n }\n\n if (hex.length) {\n if (hex.length % 2) { hex = \"0\" + hex; }\n return \"0x\" + hex;\n }\n\n return \"0x00\";\n }\n\n if (typeof(value) === \"bigint\") {\n value = value.toString(16);\n if (value.length % 2) { return (\"0x0\" + value); }\n return \"0x\" + value;\n }\n\n if (options.allowMissingPrefix && typeof(value) === \"string\" && value.substring(0, 2) !== \"0x\") {\n value = \"0x\" + value;\n }\n\n if (isHexable(value)) { return value.toHexString(); }\n\n if (isHexString(value)) {\n if ((value).length % 2) {\n if (options.hexPad === \"left\") {\n value = \"0x0\" + (value).substring(2);\n } else if (options.hexPad === \"right\") {\n value += \"0\";\n } else {\n logger.throwArgumentError(\"hex data is odd-length\", \"value\", value);\n }\n }\n return (value).toLowerCase();\n }\n\n if (isBytes(value)) {\n let result = \"0x\";\n for (let i = 0; i < value.length; i++) {\n let v = value[i];\n result += HexCharacters[(v & 0xf0) >> 4] + HexCharacters[v & 0x0f];\n }\n return result;\n }\n\n return logger.throwArgumentError(\"invalid hexlify value\", \"value\", value);\n}\n\n/*\nfunction unoddify(value: BytesLike | Hexable | number): BytesLike | Hexable | number {\n if (typeof(value) === \"string\" && value.length % 2 && value.substring(0, 2) === \"0x\") {\n return \"0x0\" + value.substring(2);\n }\n return value;\n}\n*/\nexport function hexDataLength(data: BytesLike) {\n if (typeof(data) !== \"string\") {\n data = hexlify(data);\n } else if (!isHexString(data) || (data.length % 2)) {\n return null;\n }\n\n return (data.length - 2) / 2;\n}\n\nexport function hexDataSlice(data: BytesLike, offset: number, endOffset?: number): string {\n if (typeof(data) !== \"string\") {\n data = hexlify(data);\n } else if (!isHexString(data) || (data.length % 2)) {\n logger.throwArgumentError(\"invalid hexData\", \"value\", data );\n }\n\n offset = 2 + 2 * offset;\n\n if (endOffset != null) {\n return \"0x\" + data.substring(offset, 2 + 2 * endOffset);\n }\n\n return \"0x\" + data.substring(offset);\n}\n\nexport function hexConcat(items: ReadonlyArray): string {\n let result = \"0x\";\n items.forEach((item) => {\n result += hexlify(item).substring(2);\n });\n return result;\n}\n\nexport function hexValue(value: BytesLike | Hexable | number | bigint): string {\n const trimmed = hexStripZeros(hexlify(value, { hexPad: \"left\" }));\n if (trimmed === \"0x\") { return \"0x0\"; }\n return trimmed;\n}\n\nexport function hexStripZeros(value: BytesLike): string {\n if (typeof(value) !== \"string\") { value = hexlify(value); }\n\n if (!isHexString(value)) {\n logger.throwArgumentError(\"invalid hex string\", \"value\", value);\n }\n value = value.substring(2);\n let offset = 0;\n while (offset < value.length && value[offset] === \"0\") { offset++; }\n return \"0x\" + value.substring(offset);\n}\n\nexport function hexZeroPad(value: BytesLike, length: number): string {\n if (typeof(value) !== \"string\") {\n value = hexlify(value);\n } else if (!isHexString(value)) {\n logger.throwArgumentError(\"invalid hex string\", \"value\", value);\n }\n\n if (value.length > 2 * length + 2) {\n logger.throwArgumentError(\"value out of range\", \"value\", arguments[1]);\n }\n\n while (value.length < 2 * length + 2) {\n value = \"0x0\" + value.substring(2);\n }\n\n return value;\n}\n\nexport function splitSignature(signature: SignatureLike): Signature {\n\n const result = {\n r: \"0x\",\n s: \"0x\",\n _vs: \"0x\",\n recoveryParam: 0,\n v: 0,\n yParityAndS: \"0x\",\n compact: \"0x\"\n };\n\n if (isBytesLike(signature)) {\n let bytes: Uint8Array = arrayify(signature);\n\n // Get the r, s and v\n if (bytes.length === 64) {\n // EIP-2098; pull the v from the top bit of s and clear it\n result.v = 27 + (bytes[32] >> 7);\n bytes[32] &= 0x7f;\n\n result.r = hexlify(bytes.slice(0, 32));\n result.s = hexlify(bytes.slice(32, 64));\n\n } else if (bytes.length === 65) {\n result.r = hexlify(bytes.slice(0, 32));\n result.s = hexlify(bytes.slice(32, 64));\n result.v = bytes[64];\n } else {\n\n logger.throwArgumentError(\"invalid signature string\", \"signature\", signature);\n }\n\n\n // Allow a recid to be used as the v\n if (result.v < 27) {\n if (result.v === 0 || result.v === 1) {\n result.v += 27;\n } else {\n logger.throwArgumentError(\"signature invalid v byte\", \"signature\", signature);\n }\n }\n\n // Compute recoveryParam from v\n result.recoveryParam = 1 - (result.v % 2);\n\n // Compute _vs from recoveryParam and s\n if (result.recoveryParam) { bytes[32] |= 0x80; }\n result._vs = hexlify(bytes.slice(32, 64))\n\n } else {\n result.r = signature.r;\n result.s = signature.s;\n result.v = signature.v;\n result.recoveryParam = signature.recoveryParam;\n result._vs = signature._vs;\n\n // If the _vs is available, use it to populate missing s, v and recoveryParam\n // and verify non-missing s, v and recoveryParam\n if (result._vs != null) {\n const vs = zeroPad(arrayify(result._vs), 32);\n result._vs = hexlify(vs);\n\n // Set or check the recid\n const recoveryParam = ((vs[0] >= 128) ? 1: 0);\n if (result.recoveryParam == null) {\n result.recoveryParam = recoveryParam;\n } else if (result.recoveryParam !== recoveryParam) {\n logger.throwArgumentError(\"signature recoveryParam mismatch _vs\", \"signature\", signature);\n }\n\n // Set or check the s\n vs[0] &= 0x7f;\n const s = hexlify(vs);\n if (result.s == null) {\n result.s = s;\n } else if (result.s !== s) {\n logger.throwArgumentError(\"signature v mismatch _vs\", \"signature\", signature);\n }\n }\n\n // Use recid and v to populate each other\n if (result.recoveryParam == null) {\n if (result.v == null) {\n logger.throwArgumentError(\"signature missing v and recoveryParam\", \"signature\", signature);\n } else if (result.v === 0 || result.v === 1) {\n result.recoveryParam = result.v;\n } else {\n result.recoveryParam = 1 - (result.v % 2);\n }\n } else {\n if (result.v == null) {\n result.v = 27 + result.recoveryParam;\n } else {\n const recId = (result.v === 0 || result.v === 1) ? result.v :(1 - (result.v % 2));\n if (result.recoveryParam !== recId) {\n logger.throwArgumentError(\"signature recoveryParam mismatch v\", \"signature\", signature);\n }\n }\n }\n\n if (result.r == null || !isHexString(result.r)) {\n logger.throwArgumentError(\"signature missing or invalid r\", \"signature\", signature);\n } else {\n result.r = hexZeroPad(result.r, 32);\n }\n\n if (result.s == null || !isHexString(result.s)) {\n logger.throwArgumentError(\"signature missing or invalid s\", \"signature\", signature);\n } else {\n result.s = hexZeroPad(result.s, 32);\n }\n\n const vs = arrayify(result.s);\n if (vs[0] >= 128) {\n logger.throwArgumentError(\"signature s out of range\", \"signature\", signature);\n }\n if (result.recoveryParam) { vs[0] |= 0x80; }\n const _vs = hexlify(vs);\n\n if (result._vs) {\n if (!isHexString(result._vs)) {\n logger.throwArgumentError(\"signature invalid _vs\", \"signature\", signature);\n }\n result._vs = hexZeroPad(result._vs, 32);\n }\n\n // Set or check the _vs\n if (result._vs == null) {\n result._vs = _vs;\n } else if (result._vs !== _vs) {\n logger.throwArgumentError(\"signature _vs mismatch v and s\", \"signature\", signature);\n }\n }\n\n result.yParityAndS = result._vs;\n result.compact = result.r + result.yParityAndS.substring(2);\n\n return result;\n}\n\nexport function joinSignature(signature: SignatureLike): string {\n signature = splitSignature(signature);\n\n return hexlify(concat([\n signature.r,\n signature.s,\n (signature.recoveryParam ? \"0x1c\": \"0x1b\")\n ]));\n}\n\n", "export const version = \"bignumber/5.7.0\";\n", "\"use strict\";\n\n/**\n * BigNumber\n *\n * A wrapper around the BN.js object. We use the BN.js library\n * because it is used by elliptic, so it is required regardless.\n *\n */\n\nimport _BN from \"bn.js\";\nimport BN = _BN.BN;\n\nimport { Bytes, Hexable, hexlify, isBytes, isHexString } from \"@ethersproject/bytes\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\nconst _constructorGuard = { };\n\nconst MAX_SAFE = 0x1fffffffffffff;\n\n\nexport type BigNumberish = BigNumber | Bytes | bigint | string | number;\n\nexport function isBigNumberish(value: any): value is BigNumberish {\n return (value != null) && (\n BigNumber.isBigNumber(value) ||\n (typeof(value) === \"number\" && (value % 1) === 0) ||\n (typeof(value) === \"string\" && !!value.match(/^-?[0-9]+$/)) ||\n isHexString(value) ||\n (typeof(value) === \"bigint\") ||\n isBytes(value)\n );\n}\n\n// Only warn about passing 10 into radix once\nlet _warnedToStringRadix = false;\n\nexport class BigNumber implements Hexable {\n readonly _hex: string;\n readonly _isBigNumber: boolean;\n\n constructor(constructorGuard: any, hex: string) {\n if (constructorGuard !== _constructorGuard) {\n logger.throwError(\"cannot call constructor directly; use BigNumber.from\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"new (BigNumber)\"\n });\n }\n\n this._hex = hex;\n this._isBigNumber = true;\n\n Object.freeze(this);\n }\n\n fromTwos(value: number): BigNumber {\n return toBigNumber(toBN(this).fromTwos(value));\n }\n\n toTwos(value: number): BigNumber {\n return toBigNumber(toBN(this).toTwos(value));\n }\n\n abs(): BigNumber {\n if (this._hex[0] === \"-\") {\n return BigNumber.from(this._hex.substring(1));\n }\n return this;\n }\n\n add(other: BigNumberish): BigNumber {\n return toBigNumber(toBN(this).add(toBN(other)));\n }\n\n sub(other: BigNumberish): BigNumber {\n return toBigNumber(toBN(this).sub(toBN(other)));\n }\n\n div(other: BigNumberish): BigNumber {\n const o = BigNumber.from(other);\n if (o.isZero()) {\n throwFault(\"division-by-zero\", \"div\");\n }\n return toBigNumber(toBN(this).div(toBN(other)));\n }\n\n mul(other: BigNumberish): BigNumber {\n return toBigNumber(toBN(this).mul(toBN(other)));\n }\n\n mod(other: BigNumberish): BigNumber {\n const value = toBN(other);\n if (value.isNeg()) {\n throwFault(\"division-by-zero\", \"mod\");\n }\n return toBigNumber(toBN(this).umod(value));\n }\n\n pow(other: BigNumberish): BigNumber {\n const value = toBN(other);\n if (value.isNeg()) {\n throwFault(\"negative-power\", \"pow\");\n }\n return toBigNumber(toBN(this).pow(value));\n }\n\n and(other: BigNumberish): BigNumber {\n const value = toBN(other);\n if (this.isNegative() || value.isNeg()) {\n throwFault(\"unbound-bitwise-result\", \"and\");\n }\n return toBigNumber(toBN(this).and(value));\n }\n\n or(other: BigNumberish): BigNumber {\n const value = toBN(other);\n if (this.isNegative() || value.isNeg()) {\n throwFault(\"unbound-bitwise-result\", \"or\");\n }\n return toBigNumber(toBN(this).or(value));\n }\n\n xor(other: BigNumberish): BigNumber {\n const value = toBN(other);\n if (this.isNegative() || value.isNeg()) {\n throwFault(\"unbound-bitwise-result\", \"xor\");\n }\n return toBigNumber(toBN(this).xor(value));\n }\n\n mask(value: number): BigNumber {\n if (this.isNegative() || value < 0) {\n throwFault(\"negative-width\", \"mask\");\n }\n return toBigNumber(toBN(this).maskn(value));\n }\n\n shl(value: number): BigNumber {\n if (this.isNegative() || value < 0) {\n throwFault(\"negative-width\", \"shl\");\n }\n return toBigNumber(toBN(this).shln(value));\n }\n\n shr(value: number): BigNumber {\n if (this.isNegative() || value < 0) {\n throwFault(\"negative-width\", \"shr\");\n }\n return toBigNumber(toBN(this).shrn(value));\n }\n\n eq(other: BigNumberish): boolean {\n return toBN(this).eq(toBN(other));\n }\n\n lt(other: BigNumberish): boolean {\n return toBN(this).lt(toBN(other));\n }\n\n lte(other: BigNumberish): boolean {\n return toBN(this).lte(toBN(other));\n }\n\n gt(other: BigNumberish): boolean {\n return toBN(this).gt(toBN(other));\n }\n\n gte(other: BigNumberish): boolean {\n return toBN(this).gte(toBN(other));\n }\n\n isNegative(): boolean {\n return (this._hex[0] === \"-\");\n }\n\n isZero(): boolean {\n return toBN(this).isZero();\n }\n\n toNumber(): number {\n try {\n return toBN(this).toNumber();\n } catch (error) {\n throwFault(\"overflow\", \"toNumber\", this.toString());\n }\n return null;\n }\n\n toBigInt(): bigint {\n try {\n return BigInt(this.toString());\n } catch (e) { }\n\n return logger.throwError(\"this platform does not support BigInt\", Logger.errors.UNSUPPORTED_OPERATION, {\n value: this.toString()\n });\n }\n\n toString(): string {\n // Lots of people expect this, which we do not support, so check (See: #889)\n if (arguments.length > 0) {\n if (arguments[0] === 10) {\n if (!_warnedToStringRadix) {\n _warnedToStringRadix = true;\n logger.warn(\"BigNumber.toString does not accept any parameters; base-10 is assumed\");\n }\n } else if (arguments[0] === 16) {\n logger.throwError(\"BigNumber.toString does not accept any parameters; use bigNumber.toHexString()\", Logger.errors.UNEXPECTED_ARGUMENT, { });\n } else {\n logger.throwError(\"BigNumber.toString does not accept parameters\", Logger.errors.UNEXPECTED_ARGUMENT, { });\n }\n }\n return toBN(this).toString(10);\n }\n\n toHexString(): string {\n return this._hex;\n }\n\n toJSON(key?: string): any {\n return { type: \"BigNumber\", hex: this.toHexString() };\n }\n\n static from(value: any): BigNumber {\n if (value instanceof BigNumber) { return value; }\n\n if (typeof(value) === \"string\") {\n if (value.match(/^-?0x[0-9a-f]+$/i)) {\n return new BigNumber(_constructorGuard, toHex(value));\n }\n\n if (value.match(/^-?[0-9]+$/)) {\n return new BigNumber(_constructorGuard, toHex(new BN(value)));\n }\n\n return logger.throwArgumentError(\"invalid BigNumber string\", \"value\", value);\n }\n\n if (typeof(value) === \"number\") {\n if (value % 1) {\n throwFault(\"underflow\", \"BigNumber.from\", value);\n }\n\n if (value >= MAX_SAFE || value <= -MAX_SAFE) {\n throwFault(\"overflow\", \"BigNumber.from\", value);\n }\n\n return BigNumber.from(String(value));\n }\n\n const anyValue = value;\n\n if (typeof(anyValue) === \"bigint\") {\n return BigNumber.from(anyValue.toString());\n }\n\n if (isBytes(anyValue)) {\n return BigNumber.from(hexlify(anyValue));\n }\n\n if (anyValue) {\n\n // Hexable interface (takes priority)\n if (anyValue.toHexString) {\n const hex = anyValue.toHexString();\n if (typeof(hex) === \"string\") {\n return BigNumber.from(hex);\n }\n\n } else {\n // For now, handle legacy JSON-ified values (goes away in v6)\n let hex = anyValue._hex;\n\n // New-form JSON\n if (hex == null && anyValue.type === \"BigNumber\") {\n hex = anyValue.hex;\n }\n\n if (typeof(hex) === \"string\") {\n if (isHexString(hex) || (hex[0] === \"-\" && isHexString(hex.substring(1)))) {\n return BigNumber.from(hex);\n }\n }\n }\n }\n\n return logger.throwArgumentError(\"invalid BigNumber value\", \"value\", value);\n }\n\n static isBigNumber(value: any): value is BigNumber {\n return !!(value && value._isBigNumber);\n }\n}\n\n// Normalize the hex string\nfunction toHex(value: string | BN): string {\n\n // For BN, call on the hex string\n if (typeof(value) !== \"string\") {\n return toHex(value.toString(16));\n }\n\n // If negative, prepend the negative sign to the normalized positive value\n if (value[0] === \"-\") {\n // Strip off the negative sign\n value = value.substring(1);\n\n // Cannot have multiple negative signs (e.g. \"--0x04\")\n if (value[0] === \"-\") { logger.throwArgumentError(\"invalid hex\", \"value\", value); }\n\n // Call toHex on the positive component\n value = toHex(value);\n\n // Do not allow \"-0x00\"\n if (value === \"0x00\") { return value; }\n\n // Negate the value\n return \"-\" + value;\n }\n\n // Add a \"0x\" prefix if missing\n if (value.substring(0, 2) !== \"0x\") { value = \"0x\" + value; }\n\n // Normalize zero\n if (value === \"0x\") { return \"0x00\"; }\n\n // Make the string even length\n if (value.length % 2) { value = \"0x0\" + value.substring(2); }\n\n // Trim to smallest even-length string\n while (value.length > 4 && value.substring(0, 4) === \"0x00\") {\n value = \"0x\" + value.substring(4);\n }\n\n return value;\n}\n\nfunction toBigNumber(value: BN): BigNumber {\n return BigNumber.from(toHex(value));\n}\n\nfunction toBN(value: BigNumberish): BN {\n const hex = BigNumber.from(value).toHexString();\n if (hex[0] === \"-\") {\n return (new BN(\"-\" + hex.substring(3), 16));\n }\n return new BN(hex.substring(2), 16);\n}\n\nfunction throwFault(fault: string, operation: string, value?: any): never {\n const params: any = { fault: fault, operation: operation };\n if (value != null) { params.value = value; }\n\n return logger.throwError(fault, Logger.errors.NUMERIC_FAULT, params);\n}\n\n// value should have no prefix\nexport function _base36To16(value: string): string {\n return (new BN(value, 36)).toString(16);\n}\n\n// value should have no prefix\nexport function _base16To36(value: string): string {\n return (new BN(value, 16)).toString(36);\n}\n", "\"use strict\";\n\nimport { arrayify, BytesLike, hexZeroPad, isBytes } from \"@ethersproject/bytes\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\nimport { BigNumber, BigNumberish, isBigNumberish } from \"./bignumber\";\n\nconst _constructorGuard = { };\n\nconst Zero = BigNumber.from(0);\nconst NegativeOne = BigNumber.from(-1);\n\nfunction throwFault(message: string, fault: string, operation: string, value?: any): never {\n const params: any = { fault: fault, operation: operation };\n if (value !== undefined) { params.value = value; }\n return logger.throwError(message, Logger.errors.NUMERIC_FAULT, params);\n}\n\n// Constant to pull zeros from for multipliers\nlet zeros = \"0\";\nwhile (zeros.length < 256) { zeros += zeros; }\n\n// Returns a string \"1\" followed by decimal \"0\"s\nfunction getMultiplier(decimals: BigNumberish): string {\n\n if (typeof(decimals) !== \"number\") {\n try {\n decimals = BigNumber.from(decimals).toNumber();\n } catch (e) { }\n }\n\n if (typeof(decimals) === \"number\" && decimals >= 0 && decimals <= 256 && !(decimals % 1)) {\n return (\"1\" + zeros.substring(0, decimals));\n }\n\n return logger.throwArgumentError(\"invalid decimal size\", \"decimals\", decimals);\n}\n\nexport function formatFixed(value: BigNumberish, decimals?: string | BigNumberish): string {\n if (decimals == null) { decimals = 0; }\n const multiplier = getMultiplier(decimals);\n\n // Make sure wei is a big number (convert as necessary)\n value = BigNumber.from(value);\n\n const negative = value.lt(Zero);\n if (negative) { value = value.mul(NegativeOne); }\n\n let fraction = value.mod(multiplier).toString();\n while (fraction.length < multiplier.length - 1) { fraction = \"0\" + fraction; }\n\n // Strip training 0\n fraction = fraction.match(/^([0-9]*[1-9]|0)(0*)/)[1];\n\n const whole = value.div(multiplier).toString();\n if (multiplier.length === 1) {\n value = whole;\n } else {\n value = whole + \".\" + fraction;\n }\n\n if (negative) { value = \"-\" + value; }\n\n return value;\n}\n\nexport function parseFixed(value: string, decimals?: BigNumberish): BigNumber {\n\n if (decimals == null) { decimals = 0; }\n const multiplier = getMultiplier(decimals);\n\n if (typeof(value) !== \"string\" || !value.match(/^-?[0-9.]+$/)) {\n logger.throwArgumentError(\"invalid decimal value\", \"value\", value);\n }\n\n // Is it negative?\n const negative = (value.substring(0, 1) === \"-\");\n if (negative) { value = value.substring(1); }\n\n if (value === \".\") {\n logger.throwArgumentError(\"missing value\", \"value\", value);\n }\n\n // Split it into a whole and fractional part\n const comps = value.split(\".\");\n if (comps.length > 2) {\n logger.throwArgumentError(\"too many decimal points\", \"value\", value);\n }\n\n let whole = comps[0], fraction = comps[1];\n if (!whole) { whole = \"0\"; }\n if (!fraction) { fraction = \"0\"; }\n\n // Trim trailing zeros\n while (fraction[fraction.length - 1] === \"0\") {\n fraction = fraction.substring(0, fraction.length - 1);\n }\n\n // Check the fraction doesn't exceed our decimals size\n if (fraction.length > multiplier.length - 1) {\n throwFault(\"fractional component exceeds decimals\", \"underflow\", \"parseFixed\");\n }\n\n // If decimals is 0, we have an empty string for fraction\n if (fraction === \"\") { fraction = \"0\"; }\n\n // Fully pad the string with zeros to get to wei\n while (fraction.length < multiplier.length - 1) { fraction += \"0\"; }\n\n const wholeValue = BigNumber.from(whole);\n const fractionValue = BigNumber.from(fraction);\n\n let wei = (wholeValue.mul(multiplier)).add(fractionValue);\n\n if (negative) { wei = wei.mul(NegativeOne); }\n\n return wei;\n}\n\n\nexport class FixedFormat {\n readonly signed: boolean;\n readonly width: number;\n readonly decimals: number;\n readonly name: string;\n readonly _multiplier: string;\n\n constructor(constructorGuard: any, signed: boolean, width: number, decimals: number) {\n if (constructorGuard !== _constructorGuard) {\n logger.throwError(\"cannot use FixedFormat constructor; use FixedFormat.from\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"new FixedFormat\"\n });\n }\n\n this.signed = signed;\n this.width = width;\n this.decimals = decimals;\n\n this.name = (signed ? \"\": \"u\") + \"fixed\" + String(width) + \"x\" + String(decimals);\n\n this._multiplier = getMultiplier(decimals);\n\n Object.freeze(this);\n }\n\n static from(value: any): FixedFormat {\n if (value instanceof FixedFormat) { return value; }\n\n if (typeof(value) === \"number\") {\n value = `fixed128x${value}`\n }\n\n let signed = true;\n let width = 128;\n let decimals = 18;\n\n if (typeof(value) === \"string\") {\n if (value === \"fixed\") {\n // defaults...\n } else if (value === \"ufixed\") {\n signed = false;\n } else {\n const match = value.match(/^(u?)fixed([0-9]+)x([0-9]+)$/);\n if (!match) { logger.throwArgumentError(\"invalid fixed format\", \"format\", value); }\n signed = (match[1] !== \"u\");\n width = parseInt(match[2]);\n decimals = parseInt(match[3]);\n }\n } else if (value) {\n const check = (key: string, type: string, defaultValue: any): any => {\n if (value[key] == null) { return defaultValue; }\n if (typeof(value[key]) !== type) {\n logger.throwArgumentError(\"invalid fixed format (\" + key + \" not \" + type +\")\", \"format.\" + key, value[key]);\n }\n return value[key];\n }\n signed = check(\"signed\", \"boolean\", signed);\n width = check(\"width\", \"number\", width);\n decimals = check(\"decimals\", \"number\", decimals);\n }\n\n if (width % 8) {\n logger.throwArgumentError(\"invalid fixed format width (not byte aligned)\", \"format.width\", width);\n }\n\n if (decimals > 80) {\n logger.throwArgumentError(\"invalid fixed format (decimals too large)\", \"format.decimals\", decimals);\n }\n\n return new FixedFormat(_constructorGuard, signed, width, decimals);\n }\n}\n\nexport class FixedNumber {\n readonly format: FixedFormat;\n readonly _hex: string;\n readonly _value: string;\n\n readonly _isFixedNumber: boolean;\n\n constructor(constructorGuard: any, hex: string, value: string, format?: FixedFormat) {\n if (constructorGuard !== _constructorGuard) {\n logger.throwError(\"cannot use FixedNumber constructor; use FixedNumber.from\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"new FixedFormat\"\n });\n }\n\n this.format = format;\n this._hex = hex;\n this._value = value;\n\n this._isFixedNumber = true;\n\n Object.freeze(this);\n }\n\n _checkFormat(other: FixedNumber): void {\n if (this.format.name !== other.format.name) {\n logger.throwArgumentError(\"incompatible format; use fixedNumber.toFormat\", \"other\", other);\n }\n }\n\n addUnsafe(other: FixedNumber): FixedNumber {\n this._checkFormat(other);\n const a = parseFixed(this._value, this.format.decimals);\n const b = parseFixed(other._value, other.format.decimals);\n return FixedNumber.fromValue(a.add(b), this.format.decimals, this.format);\n }\n\n subUnsafe(other: FixedNumber): FixedNumber {\n this._checkFormat(other);\n const a = parseFixed(this._value, this.format.decimals);\n const b = parseFixed(other._value, other.format.decimals);\n return FixedNumber.fromValue(a.sub(b), this.format.decimals, this.format);\n }\n\n mulUnsafe(other: FixedNumber): FixedNumber {\n this._checkFormat(other);\n const a = parseFixed(this._value, this.format.decimals);\n const b = parseFixed(other._value, other.format.decimals);\n return FixedNumber.fromValue(a.mul(b).div(this.format._multiplier), this.format.decimals, this.format);\n }\n\n divUnsafe(other: FixedNumber): FixedNumber {\n this._checkFormat(other);\n const a = parseFixed(this._value, this.format.decimals);\n const b = parseFixed(other._value, other.format.decimals);\n return FixedNumber.fromValue(a.mul(this.format._multiplier).div(b), this.format.decimals, this.format);\n }\n\n floor(): FixedNumber {\n const comps = this.toString().split(\".\");\n if (comps.length === 1) { comps.push(\"0\"); }\n\n let result = FixedNumber.from(comps[0], this.format);\n\n const hasFraction = !comps[1].match(/^(0*)$/);\n if (this.isNegative() && hasFraction) {\n result = result.subUnsafe(ONE.toFormat(result.format));\n }\n\n return result;\n }\n\n ceiling(): FixedNumber {\n const comps = this.toString().split(\".\");\n if (comps.length === 1) { comps.push(\"0\"); }\n\n let result = FixedNumber.from(comps[0], this.format);\n\n const hasFraction = !comps[1].match(/^(0*)$/);\n if (!this.isNegative() && hasFraction) {\n result = result.addUnsafe(ONE.toFormat(result.format));\n }\n\n return result;\n }\n\n // @TODO: Support other rounding algorithms\n round(decimals?: number): FixedNumber {\n if (decimals == null) { decimals = 0; }\n\n // If we are already in range, we're done\n const comps = this.toString().split(\".\");\n if (comps.length === 1) { comps.push(\"0\"); }\n\n if (decimals < 0 || decimals > 80 || (decimals % 1)) {\n logger.throwArgumentError(\"invalid decimal count\", \"decimals\", decimals);\n }\n\n if (comps[1].length <= decimals) { return this; }\n\n const factor = FixedNumber.from(\"1\" + zeros.substring(0, decimals), this.format);\n const bump = BUMP.toFormat(this.format);\n\n return this.mulUnsafe(factor).addUnsafe(bump).floor().divUnsafe(factor);\n }\n\n isZero(): boolean {\n return (this._value === \"0.0\" || this._value === \"0\");\n }\n\n isNegative(): boolean {\n return (this._value[0] === \"-\");\n }\n\n toString(): string { return this._value; }\n\n toHexString(width?: number): string {\n if (width == null) { return this._hex; }\n if (width % 8) { logger.throwArgumentError(\"invalid byte width\", \"width\", width); }\n const hex = BigNumber.from(this._hex).fromTwos(this.format.width).toTwos(width).toHexString();\n return hexZeroPad(hex, width / 8);\n }\n\n toUnsafeFloat(): number { return parseFloat(this.toString()); }\n\n toFormat(format: FixedFormat | string): FixedNumber {\n return FixedNumber.fromString(this._value, format);\n }\n\n\n static fromValue(value: BigNumber, decimals?: BigNumberish, format?: FixedFormat | string | number): FixedNumber {\n // If decimals looks more like a format, and there is no format, shift the parameters\n if (format == null && decimals != null && !isBigNumberish(decimals)) {\n format = decimals;\n decimals = null;\n }\n\n if (decimals == null) { decimals = 0; }\n if (format == null) { format = \"fixed\"; }\n\n return FixedNumber.fromString(formatFixed(value, decimals), FixedFormat.from(format));\n }\n\n\n static fromString(value: string, format?: FixedFormat | string | number): FixedNumber {\n if (format == null) { format = \"fixed\"; }\n\n const fixedFormat = FixedFormat.from(format);\n\n const numeric = parseFixed(value, fixedFormat.decimals);\n\n if (!fixedFormat.signed && numeric.lt(Zero)) {\n throwFault(\"unsigned value cannot be negative\", \"overflow\", \"value\", value);\n }\n\n let hex: string = null;\n if (fixedFormat.signed) {\n hex = numeric.toTwos(fixedFormat.width).toHexString();\n } else {\n hex = numeric.toHexString();\n hex = hexZeroPad(hex, fixedFormat.width / 8);\n }\n\n const decimal = formatFixed(numeric, fixedFormat.decimals);\n\n return new FixedNumber(_constructorGuard, hex, decimal, fixedFormat);\n }\n\n static fromBytes(value: BytesLike, format?: FixedFormat | string | number): FixedNumber {\n if (format == null) { format = \"fixed\"; }\n\n const fixedFormat = FixedFormat.from(format);\n\n if (arrayify(value).length > fixedFormat.width / 8) {\n throw new Error(\"overflow\");\n }\n\n let numeric = BigNumber.from(value);\n if (fixedFormat.signed) { numeric = numeric.fromTwos(fixedFormat.width); }\n\n const hex = numeric.toTwos((fixedFormat.signed ? 0: 1) + fixedFormat.width).toHexString();\n const decimal = formatFixed(numeric, fixedFormat.decimals);\n\n return new FixedNumber(_constructorGuard, hex, decimal, fixedFormat);\n }\n\n static from(value: any, format?: FixedFormat | string | number) {\n if (typeof(value) === \"string\") {\n return FixedNumber.fromString(value, format);\n }\n\n if (isBytes(value)) {\n return FixedNumber.fromBytes(value, format);\n }\n\n try {\n return FixedNumber.fromValue(value, 0, format);\n } catch (error) {\n // Allow NUMERIC_FAULT to bubble up\n if (error.code !== Logger.errors.INVALID_ARGUMENT) {\n throw error;\n }\n }\n\n return logger.throwArgumentError(\"invalid FixedNumber value\", \"value\", value);\n }\n\n static isFixedNumber(value: any): value is FixedNumber {\n return !!(value && value._isFixedNumber);\n }\n}\n\nconst ONE = FixedNumber.from(1);\nconst BUMP = FixedNumber.from(\"0.5\");\n", "export { BigNumber, BigNumberish } from \"./bignumber\";\nexport { formatFixed, FixedFormat, FixedNumber, parseFixed } from \"./fixednumber\";\n\n// Internal methods used by address\nexport { _base16To36, _base36To16 } from \"./bignumber\";\n", "export const version = \"properties/5.7.0\";\n", "\"use strict\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\nexport function defineReadOnly(object: T, name: K, value: T[K]): void {\n Object.defineProperty(object, name, {\n enumerable: true,\n value: value,\n writable: false,\n });\n}\n\n// Crawl up the constructor chain to find a static method\nexport function getStatic(ctor: any, key: string): T {\n for (let i = 0; i < 32; i++) {\n if (ctor[key]) { return ctor[key]; }\n if (!ctor.prototype || typeof(ctor.prototype) !== \"object\") { break; }\n ctor = Object.getPrototypeOf(ctor.prototype).constructor;\n }\n return null;\n}\n\nexport type Deferrable = {\n [ K in keyof T ]: T[K] | Promise;\n}\n\n\ntype Result = { key: string, value: any};\n\nexport async function resolveProperties(object: Readonly>): Promise {\n const promises: Array> = Object.keys(object).map((key) => {\n const value = object[>key];\n return Promise.resolve(value).then((v) => ({ key: key, value: v }));\n });\n\n const results = await Promise.all(promises);\n\n return results.reduce((accum, result) => {\n accum[(result.key)] = result.value;\n return accum;\n }, { });\n}\n\nexport function checkProperties(object: any, properties: { [ name: string ]: boolean }): void {\n if (!object || typeof(object) !== \"object\") {\n logger.throwArgumentError(\"invalid object\", \"object\", object);\n }\n\n Object.keys(object).forEach((key) => {\n if (!properties[key]) {\n logger.throwArgumentError(\"invalid object key - \" + key, \"transaction:\" + key, object);\n }\n });\n}\n\nexport function shallowCopy(object: T): T {\n const result: any = {};\n for (const key in object) { result[key] = object[key]; }\n return result;\n}\n\nconst opaque: { [key: string]: boolean } = { bigint: true, boolean: true, \"function\": true, number: true, string: true };\n\nfunction _isFrozen(object: any): boolean {\n\n // Opaque objects are not mutable, so safe to copy by assignment\n if (object === undefined || object === null || opaque[typeof(object)]) { return true; }\n\n if (Array.isArray(object) || typeof(object) === \"object\") {\n if (!Object.isFrozen(object)) { return false; }\n\n const keys = Object.keys(object);\n for (let i = 0; i < keys.length; i++) {\n let value: any = null;\n try {\n value = object[keys[i]];\n } catch (error) {\n // If accessing a value triggers an error, it is a getter\n // designed to do so (e.g. Result) and is therefore \"frozen\"\n continue;\n }\n\n if (!_isFrozen(value)) { return false; }\n }\n\n return true;\n }\n\n return logger.throwArgumentError(`Cannot deepCopy ${ typeof(object) }`, \"object\", object);\n}\n\n// Returns a new copy of object, such that no properties may be replaced.\n// New properties may be added only to objects.\nfunction _deepCopy(object: any): any {\n\n if (_isFrozen(object)) { return object; }\n\n // Arrays are mutable, so we need to create a copy\n if (Array.isArray(object)) {\n return Object.freeze(object.map((item) => deepCopy(item)));\n }\n\n if (typeof(object) === \"object\") {\n const result: { [ key: string ]: any } = {};\n for (const key in object) {\n const value = object[key];\n if (value === undefined) { continue; }\n defineReadOnly(result, key, deepCopy(value));\n }\n\n return result;\n }\n\n return logger.throwArgumentError(`Cannot deepCopy ${ typeof(object) }`, \"object\", object);\n}\n\nexport function deepCopy(object: T): T {\n return _deepCopy(object);\n}\n\nexport class Description {\n constructor(info: { [ K in keyof T ]: T[K] }) {\n for (const key in info) {\n (this)[key] = deepCopy(info[key]);\n }\n }\n}\n", "export const version = \"abi/5.7.0\";\n", "\"use strict\";\n\nimport { BigNumber } from \"@ethersproject/bignumber\";\nimport { defineReadOnly } from \"@ethersproject/properties\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\nexport interface JsonFragmentType {\n readonly name?: string;\n readonly indexed?: boolean;\n readonly type?: string;\n readonly internalType?: any; // @TODO: in v6 reduce type\n readonly components?: ReadonlyArray;\n}\n\nexport interface JsonFragment {\n readonly name?: string;\n readonly type?: string;\n\n readonly anonymous?: boolean;\n\n readonly payable?: boolean;\n readonly constant?: boolean;\n readonly stateMutability?: string;\n\n readonly inputs?: ReadonlyArray;\n readonly outputs?: ReadonlyArray;\n\n readonly gas?: string;\n};\n\nconst _constructorGuard = { };\n\n// AST Node parser state\ntype ParseState = {\n allowArray?: boolean,\n allowName?: boolean,\n allowParams?: boolean,\n allowType?: boolean,\n readArray?: boolean,\n};\n\n// AST Node\ntype ParseNode = {\n parent?: any,\n type?: string,\n name?: string,\n state?: ParseState,\n indexed?: boolean,\n components?: Array\n};\n\nlet ModifiersBytes: { [ name: string ]: boolean } = { calldata: true, memory: true, storage: true };\nlet ModifiersNest: { [ name: string ]: boolean } = { calldata: true, memory: true };\nfunction checkModifier(type: string, name: string): boolean {\n if (type === \"bytes\" || type === \"string\") {\n if (ModifiersBytes[name]) { return true; }\n } else if (type === \"address\") {\n if (name === \"payable\") { return true; }\n } else if (type.indexOf(\"[\") >= 0 || type === \"tuple\") {\n if (ModifiersNest[name]) { return true; }\n }\n if (ModifiersBytes[name] || name === \"payable\") {\n logger.throwArgumentError(\"invalid modifier\", \"name\", name);\n }\n return false;\n}\n\n// @TODO: Make sure that children of an indexed tuple are marked with a null indexed\nfunction parseParamType(param: string, allowIndexed: boolean): ParseNode {\n\n let originalParam = param;\n function throwError(i: number) {\n logger.throwArgumentError(`unexpected character at position ${ i }`, \"param\", param);\n }\n param = param.replace(/\\s/g, \" \");\n\n function newNode(parent: ParseNode): ParseNode {\n let node: ParseNode = { type: \"\", name: \"\", parent: parent, state: { allowType: true } };\n if (allowIndexed) { node.indexed = false; }\n return node\n }\n\n let parent: ParseNode = { type: \"\", name: \"\", state: { allowType: true } };\n let node = parent;\n\n for (let i = 0; i < param.length; i++) {\n let c = param[i];\n switch (c) {\n case \"(\":\n if (node.state.allowType && node.type === \"\") {\n node.type = \"tuple\";\n } else if (!node.state.allowParams) {\n throwError(i);\n }\n node.state.allowType = false;\n node.type = verifyType(node.type);\n node.components = [ newNode(node) ];\n node = node.components[0];\n break;\n\n case \")\":\n delete node.state;\n\n if (node.name === \"indexed\") {\n if (!allowIndexed) { throwError(i); }\n node.indexed = true;\n node.name = \"\";\n }\n\n if (checkModifier(node.type, node.name)) { node.name = \"\"; }\n\n node.type = verifyType(node.type);\n\n let child = node;\n node = node.parent;\n if (!node) { throwError(i); }\n delete child.parent;\n node.state.allowParams = false;\n node.state.allowName = true;\n node.state.allowArray = true;\n break;\n\n case \",\":\n delete node.state;\n\n if (node.name === \"indexed\") {\n if (!allowIndexed) { throwError(i); }\n node.indexed = true;\n node.name = \"\";\n }\n\n if (checkModifier(node.type, node.name)) { node.name = \"\"; }\n\n node.type = verifyType(node.type);\n\n let sibling: ParseNode = newNode(node.parent);\n //{ type: \"\", name: \"\", parent: node.parent, state: { allowType: true } };\n node.parent.components.push(sibling);\n delete node.parent;\n node = sibling;\n break;\n\n // Hit a space...\n case \" \":\n\n // If reading type, the type is done and may read a param or name\n if (node.state.allowType) {\n if (node.type !== \"\") {\n node.type = verifyType(node.type);\n delete node.state.allowType;\n node.state.allowName = true;\n node.state.allowParams = true;\n }\n }\n\n // If reading name, the name is done\n if (node.state.allowName) {\n if (node.name !== \"\") {\n if (node.name === \"indexed\") {\n if (!allowIndexed) { throwError(i); }\n if (node.indexed) { throwError(i); }\n node.indexed = true;\n node.name = \"\";\n } else if (checkModifier(node.type, node.name)) {\n node.name = \"\";\n } else {\n node.state.allowName = false;\n }\n }\n }\n\n break;\n\n case \"[\":\n if (!node.state.allowArray) { throwError(i); }\n\n node.type += c;\n\n node.state.allowArray = false;\n node.state.allowName = false;\n node.state.readArray = true;\n break;\n\n case \"]\":\n if (!node.state.readArray) { throwError(i); }\n\n node.type += c;\n\n node.state.readArray = false;\n node.state.allowArray = true;\n node.state.allowName = true;\n break;\n\n default:\n if (node.state.allowType) {\n node.type += c;\n node.state.allowParams = true;\n node.state.allowArray = true;\n } else if (node.state.allowName) {\n node.name += c;\n delete node.state.allowArray;\n } else if (node.state.readArray) {\n node.type += c;\n } else {\n throwError(i);\n }\n }\n }\n\n if (node.parent) { logger.throwArgumentError(\"unexpected eof\", \"param\", param); }\n\n delete parent.state;\n\n if (node.name === \"indexed\") {\n if (!allowIndexed) { throwError(originalParam.length - 7); }\n if (node.indexed) { throwError(originalParam.length - 7); }\n node.indexed = true;\n node.name = \"\";\n } else if (checkModifier(node.type, node.name)) {\n node.name = \"\";\n }\n\n parent.type = verifyType(parent.type);\n\n return parent;\n}\n\nfunction populate(object: any, params: any) {\n for (let key in params) { defineReadOnly(object, key, params[key]); }\n}\n\nexport const FormatTypes: { [ name: string ]: string } = Object.freeze({\n // Bare formatting, as is needed for computing a sighash of an event or function\n sighash: \"sighash\",\n\n // Human-Readable with Minimal spacing and without names (compact human-readable)\n minimal: \"minimal\",\n\n // Human-Readable with nice spacing, including all names\n full: \"full\",\n\n // JSON-format a la Solidity\n json: \"json\"\n});\n\nconst paramTypeArray = new RegExp(/^(.*)\\[([0-9]*)\\]$/);\n\nexport class ParamType {\n\n // The local name of the parameter (of null if unbound)\n readonly name: string;\n\n // The fully qualified type (e.g. \"address\", \"tuple(address)\", \"uint256[3][]\"\n readonly type: string;\n\n // The base type (e.g. \"address\", \"tuple\", \"array\")\n readonly baseType: string;\n\n // Indexable Paramters ONLY (otherwise null)\n readonly indexed: boolean;\n\n // Tuples ONLY: (otherwise null)\n // - sub-components\n readonly components: Array;\n\n // Arrays ONLY: (otherwise null)\n // - length of the array (-1 for dynamic length)\n // - child type\n readonly arrayLength: number;\n readonly arrayChildren: ParamType;\n\n readonly _isParamType: boolean;\n\n constructor(constructorGuard: any, params: any) {\n if (constructorGuard !== _constructorGuard) { logger.throwError(\"use fromString\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"new ParamType()\"\n }); }\n populate(this, params);\n\n let match = this.type.match(paramTypeArray);\n if (match) {\n populate(this, {\n arrayLength: parseInt(match[2] || \"-1\"),\n arrayChildren: ParamType.fromObject({\n type: match[1],\n components: this.components\n }),\n baseType: \"array\"\n });\n } else {\n populate(this, {\n arrayLength: null,\n arrayChildren: null,\n baseType: ((this.components != null) ? \"tuple\": this.type)\n });\n }\n\n this._isParamType = true;\n\n Object.freeze(this);\n }\n\n // Format the parameter fragment\n // - sighash: \"(uint256,address)\"\n // - minimal: \"tuple(uint256,address) indexed\"\n // - full: \"tuple(uint256 foo, address bar) indexed baz\"\n format(format?: string): string {\n if (!format) { format = FormatTypes.sighash; }\n if (!FormatTypes[format]) {\n logger.throwArgumentError(\"invalid format type\", \"format\", format);\n }\n\n if (format === FormatTypes.json) {\n let result: any = {\n type: ((this.baseType === \"tuple\") ? \"tuple\": this.type),\n name: (this.name || undefined)\n };\n if (typeof(this.indexed) === \"boolean\") { result.indexed = this.indexed; }\n if (this.components) {\n result.components = this.components.map((comp) => JSON.parse(comp.format(format)));\n }\n return JSON.stringify(result);\n }\n\n let result = \"\";\n\n // Array\n if (this.baseType === \"array\") {\n result += this.arrayChildren.format(format);\n result += \"[\" + (this.arrayLength < 0 ? \"\": String(this.arrayLength)) + \"]\";\n } else {\n if (this.baseType === \"tuple\") {\n if (format !== FormatTypes.sighash) {\n result += this.type;\n }\n result += \"(\" + this.components.map(\n (comp) => comp.format(format)\n ).join((format === FormatTypes.full) ? \", \": \",\") + \")\";\n } else {\n result += this.type;\n }\n }\n\n if (format !== FormatTypes.sighash) {\n if (this.indexed === true) { result += \" indexed\"; }\n if (format === FormatTypes.full && this.name) {\n result += \" \" + this.name;\n }\n }\n\n return result;\n }\n\n static from(value: string | JsonFragmentType | ParamType, allowIndexed?: boolean): ParamType {\n if (typeof(value) === \"string\") {\n return ParamType.fromString(value, allowIndexed);\n }\n return ParamType.fromObject(value);\n }\n\n static fromObject(value: JsonFragmentType | ParamType): ParamType {\n if (ParamType.isParamType(value)) { return value; }\n\n return new ParamType(_constructorGuard, {\n name: (value.name || null),\n type: verifyType(value.type),\n indexed: ((value.indexed == null) ? null: !!value.indexed),\n components: (value.components ? value.components.map(ParamType.fromObject): null)\n });\n }\n\n static fromString(value: string, allowIndexed?: boolean): ParamType {\n function ParamTypify(node: ParseNode): ParamType {\n return ParamType.fromObject({\n name: node.name,\n type: node.type,\n indexed: node.indexed,\n components: node.components\n });\n }\n\n return ParamTypify(parseParamType(value, !!allowIndexed));\n }\n\n static isParamType(value: any): value is ParamType {\n return !!(value != null && value._isParamType);\n }\n};\n\nfunction parseParams(value: string, allowIndex: boolean): Array {\n return splitNesting(value).map((param) => ParamType.fromString(param, allowIndex));\n}\n\ntype TypeCheck = { -readonly [ K in keyof T ]: T[K] };\n\ninterface _Fragment {\n readonly type: string;\n readonly name: string;\n readonly inputs: ReadonlyArray;\n}\n\nexport abstract class Fragment {\n\n readonly type: string;\n readonly name: string;\n readonly inputs: Array;\n\n readonly _isFragment: boolean;\n\n constructor(constructorGuard: any, params: any) {\n if (constructorGuard !== _constructorGuard) {\n logger.throwError(\"use a static from method\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"new Fragment()\"\n });\n }\n populate(this, params);\n\n this._isFragment = true;\n\n Object.freeze(this);\n }\n\n abstract format(format?: string): string;\n\n static from(value: Fragment | JsonFragment | string): Fragment {\n if (Fragment.isFragment(value)) { return value; }\n\n if (typeof(value) === \"string\") {\n return Fragment.fromString(value);\n }\n\n return Fragment.fromObject(value);\n }\n\n static fromObject(value: Fragment | JsonFragment): Fragment {\n if (Fragment.isFragment(value)) { return value; }\n\n switch (value.type) {\n case \"function\":\n return FunctionFragment.fromObject(value);\n case \"event\":\n return EventFragment.fromObject(value);\n case \"constructor\":\n return ConstructorFragment.fromObject(value);\n case \"error\":\n return ErrorFragment.fromObject(value);\n case \"fallback\":\n case \"receive\":\n // @TODO: Something? Maybe return a FunctionFragment? A custom DefaultFunctionFragment?\n return null;\n }\n\n return logger.throwArgumentError(\"invalid fragment object\", \"value\", value);\n }\n\n static fromString(value: string): Fragment {\n // Make sure the \"returns\" is surrounded by a space and all whitespace is exactly one space\n value = value.replace(/\\s/g, \" \");\n value = value.replace(/\\(/g, \" (\").replace(/\\)/g, \") \").replace(/\\s+/g, \" \");\n value = value.trim();\n\n if (value.split(\" \")[0] === \"event\") {\n return EventFragment.fromString(value.substring(5).trim());\n } else if (value.split(\" \")[0] === \"function\") {\n return FunctionFragment.fromString(value.substring(8).trim());\n } else if (value.split(\"(\")[0].trim() === \"constructor\") {\n return ConstructorFragment.fromString(value.trim());\n } else if (value.split(\" \")[0] === \"error\") {\n return ErrorFragment.fromString(value.substring(5).trim());\n }\n\n return logger.throwArgumentError(\"unsupported fragment\", \"value\", value);\n }\n\n static isFragment(value: any): value is Fragment {\n return !!(value && value._isFragment);\n }\n}\n\ninterface _EventFragment extends _Fragment {\n readonly anonymous: boolean;\n}\n\nexport class EventFragment extends Fragment {\n readonly anonymous: boolean;\n\n format(format?: string): string {\n if (!format) { format = FormatTypes.sighash; }\n if (!FormatTypes[format]) {\n logger.throwArgumentError(\"invalid format type\", \"format\", format);\n }\n\n if (format === FormatTypes.json) {\n return JSON.stringify({\n type: \"event\",\n anonymous: this.anonymous,\n name: this.name,\n inputs: this.inputs.map((input) => JSON.parse(input.format(format)))\n });\n }\n\n let result = \"\";\n\n if (format !== FormatTypes.sighash) {\n result += \"event \";\n }\n\n result += this.name + \"(\" + this.inputs.map(\n (input) => input.format(format)\n ).join((format === FormatTypes.full) ? \", \": \",\") + \") \";\n\n if (format !== FormatTypes.sighash) {\n if (this.anonymous) {\n result += \"anonymous \";\n }\n }\n\n return result.trim();\n }\n\n static from(value: EventFragment | JsonFragment | string): EventFragment {\n if (typeof(value) === \"string\") {\n return EventFragment.fromString(value);\n }\n return EventFragment.fromObject(value);\n }\n\n static fromObject(value: JsonFragment | EventFragment): EventFragment {\n if (EventFragment.isEventFragment(value)) { return value; }\n\n if (value.type !== \"event\") {\n logger.throwArgumentError(\"invalid event object\", \"value\", value);\n }\n\n const params: TypeCheck<_EventFragment> = {\n name: verifyIdentifier(value.name),\n anonymous: value.anonymous,\n inputs: (value.inputs ? value.inputs.map(ParamType.fromObject) : []),\n type: \"event\"\n };\n\n return new EventFragment(_constructorGuard, params);\n }\n\n static fromString(value: string): EventFragment {\n\n let match = value.match(regexParen);\n if (!match) {\n logger.throwArgumentError(\"invalid event string\", \"value\", value);\n }\n\n let anonymous = false;\n match[3].split(\" \").forEach((modifier) => {\n switch(modifier.trim()) {\n case \"anonymous\":\n anonymous = true;\n break;\n case \"\":\n break;\n default:\n logger.warn(\"unknown modifier: \" + modifier);\n }\n });\n\n return EventFragment.fromObject({\n name: match[1].trim(),\n anonymous: anonymous,\n inputs: parseParams(match[2], true),\n type: \"event\"\n });\n }\n\n static isEventFragment(value: any): value is EventFragment {\n return (value && value._isFragment && value.type === \"event\");\n }\n}\n\nfunction parseGas(value: string, params: any): string {\n params.gas = null;\n\n let comps = value.split(\"@\");\n if (comps.length !== 1) {\n if (comps.length > 2) {\n logger.throwArgumentError(\"invalid human-readable ABI signature\", \"value\", value);\n }\n if (!comps[1].match(/^[0-9]+$/)) {\n logger.throwArgumentError(\"invalid human-readable ABI signature gas\", \"value\", value);\n }\n params.gas = BigNumber.from(comps[1]);\n return comps[0];\n }\n\n return value;\n}\n\nfunction parseModifiers(value: string, params: any): void {\n params.constant = false;\n params.payable = false;\n params.stateMutability = \"nonpayable\";\n\n value.split(\" \").forEach((modifier) => {\n switch (modifier.trim()) {\n case \"constant\":\n params.constant = true;\n break;\n case \"payable\":\n params.payable = true;\n params.stateMutability = \"payable\";\n break;\n case \"nonpayable\":\n params.payable = false;\n params.stateMutability = \"nonpayable\";\n break;\n case \"pure\":\n params.constant = true;\n params.stateMutability = \"pure\";\n break;\n case \"view\":\n params.constant = true;\n params.stateMutability = \"view\";\n break;\n case \"external\":\n case \"public\":\n case \"\":\n break;\n default:\n console.log(\"unknown modifier: \" + modifier);\n }\n });\n}\n\ntype StateInputValue = {\n constant?: boolean;\n payable?: boolean;\n stateMutability?: string;\n type?: string;\n};\n\ntype StateOutputValue = {\n constant: boolean;\n payable: boolean;\n stateMutability: string;\n};\n\nfunction verifyState(value: StateInputValue): StateOutputValue {\n let result: any = {\n constant: false,\n payable: true,\n stateMutability: \"payable\"\n };\n\n if (value.stateMutability != null) {\n result.stateMutability = value.stateMutability;\n\n // Set (and check things are consistent) the constant property\n result.constant = (result.stateMutability === \"view\" || result.stateMutability === \"pure\");\n if (value.constant != null) {\n if ((!!value.constant) !== result.constant) {\n logger.throwArgumentError(\"cannot have constant function with mutability \" + result.stateMutability, \"value\", value);\n }\n }\n\n // Set (and check things are consistent) the payable property\n result.payable = (result.stateMutability === \"payable\");\n if (value.payable != null) {\n if ((!!value.payable) !== result.payable) {\n logger.throwArgumentError(\"cannot have payable function with mutability \" + result.stateMutability, \"value\", value);\n }\n }\n\n } else if (value.payable != null) {\n result.payable = !!value.payable;\n\n // If payable we can assume non-constant; otherwise we can't assume\n if (value.constant == null && !result.payable && value.type !== \"constructor\") {\n logger.throwArgumentError(\"unable to determine stateMutability\", \"value\", value);\n }\n\n result.constant = !!value.constant;\n\n if (result.constant) {\n result.stateMutability = \"view\";\n } else {\n result.stateMutability = (result.payable ? \"payable\": \"nonpayable\");\n }\n\n if (result.payable && result.constant) {\n logger.throwArgumentError(\"cannot have constant payable function\", \"value\", value);\n }\n\n } else if (value.constant != null) {\n result.constant = !!value.constant;\n result.payable = !result.constant;\n result.stateMutability = (result.constant ? \"view\": \"payable\");\n\n } else if (value.type !== \"constructor\") {\n logger.throwArgumentError(\"unable to determine stateMutability\", \"value\", value);\n }\n\n return result;\n}\n\ninterface _ConstructorFragment extends _Fragment {\n stateMutability: string;\n payable: boolean;\n gas?: BigNumber;\n}\n\nexport class ConstructorFragment extends Fragment {\n stateMutability: string;\n payable: boolean;\n gas?: BigNumber;\n\n format(format?: string): string {\n if (!format) { format = FormatTypes.sighash; }\n if (!FormatTypes[format]) {\n logger.throwArgumentError(\"invalid format type\", \"format\", format);\n }\n\n if (format === FormatTypes.json) {\n return JSON.stringify({\n type: \"constructor\",\n stateMutability: ((this.stateMutability !== \"nonpayable\") ? this.stateMutability: undefined),\n payable: this.payable,\n gas: (this.gas ? this.gas.toNumber(): undefined),\n inputs: this.inputs.map((input) => JSON.parse(input.format(format)))\n });\n }\n\n if (format === FormatTypes.sighash) {\n logger.throwError(\"cannot format a constructor for sighash\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"format(sighash)\"\n });\n }\n\n let result = \"constructor(\" + this.inputs.map(\n (input) => input.format(format)\n ).join((format === FormatTypes.full) ? \", \": \",\") + \") \";\n\n if (this.stateMutability && this.stateMutability !== \"nonpayable\") {\n result += this.stateMutability + \" \";\n }\n\n return result.trim();\n }\n\n static from(value: ConstructorFragment | JsonFragment | string): ConstructorFragment {\n if (typeof(value) === \"string\") {\n return ConstructorFragment.fromString(value);\n }\n return ConstructorFragment.fromObject(value);\n }\n\n static fromObject(value: ConstructorFragment | JsonFragment): ConstructorFragment {\n if (ConstructorFragment.isConstructorFragment(value)) { return value; }\n\n if (value.type !== \"constructor\") {\n logger.throwArgumentError(\"invalid constructor object\", \"value\", value);\n }\n\n let state = verifyState(value);\n if (state.constant) {\n logger.throwArgumentError(\"constructor cannot be constant\", \"value\", value);\n }\n\n const params: TypeCheck<_ConstructorFragment> = {\n name: null,\n type: value.type,\n inputs: (value.inputs ? value.inputs.map(ParamType.fromObject): []),\n payable: state.payable,\n stateMutability: state.stateMutability,\n gas: (value.gas ? BigNumber.from(value.gas): null)\n };\n\n return new ConstructorFragment(_constructorGuard, params);\n }\n\n static fromString(value: string): ConstructorFragment {\n let params: any = { type: \"constructor\" };\n\n value = parseGas(value, params);\n\n let parens = value.match(regexParen);\n if (!parens || parens[1].trim() !== \"constructor\") {\n logger.throwArgumentError(\"invalid constructor string\", \"value\", value);\n }\n\n params.inputs = parseParams(parens[2].trim(), false);\n\n parseModifiers(parens[3].trim(), params);\n\n return ConstructorFragment.fromObject(params);\n }\n\n static isConstructorFragment(value: any): value is ConstructorFragment {\n return (value && value._isFragment && value.type === \"constructor\");\n }\n}\n\ninterface _FunctionFragment extends _ConstructorFragment {\n constant: boolean;\n outputs?: Array;\n}\n\nexport class FunctionFragment extends ConstructorFragment {\n constant: boolean;\n outputs?: Array;\n\n format(format?: string): string {\n if (!format) { format = FormatTypes.sighash; }\n if (!FormatTypes[format]) {\n logger.throwArgumentError(\"invalid format type\", \"format\", format);\n }\n\n if (format === FormatTypes.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 ? this.gas.toNumber(): undefined),\n inputs: this.inputs.map((input) => JSON.parse(input.format(format))),\n outputs: this.outputs.map((output) => JSON.parse(output.format(format))),\n });\n }\n\n let result = \"\";\n\n if (format !== FormatTypes.sighash) {\n result += \"function \";\n }\n\n result += this.name + \"(\" + this.inputs.map(\n (input) => input.format(format)\n ).join((format === FormatTypes.full) ? \", \": \",\") + \") \";\n\n if (format !== FormatTypes.sighash) {\n if (this.stateMutability) {\n if (this.stateMutability !== \"nonpayable\") {\n result += (this.stateMutability + \" \");\n }\n } else if (this.constant) {\n result += \"view \";\n }\n\n if (this.outputs && this.outputs.length) {\n result += \"returns (\" + this.outputs.map(\n (output) => output.format(format)\n ).join(\", \") + \") \";\n }\n\n if (this.gas != null) {\n result += \"@\" + this.gas.toString() + \" \";\n }\n }\n\n return result.trim();\n }\n\n static from(value: FunctionFragment | JsonFragment | string): FunctionFragment {\n if (typeof(value) === \"string\") {\n return FunctionFragment.fromString(value);\n }\n return FunctionFragment.fromObject(value);\n }\n\n static fromObject(value: FunctionFragment | JsonFragment): FunctionFragment {\n if (FunctionFragment.isFunctionFragment(value)) { return value; }\n\n if (value.type !== \"function\") {\n logger.throwArgumentError(\"invalid function object\", \"value\", value);\n }\n\n let state = verifyState(value);\n\n const params: TypeCheck<_FunctionFragment> = {\n type: value.type,\n name: verifyIdentifier(value.name),\n constant: state.constant,\n inputs: (value.inputs ? value.inputs.map(ParamType.fromObject): []),\n outputs: (value.outputs ? value.outputs.map(ParamType.fromObject): [ ]),\n payable: state.payable,\n stateMutability: state.stateMutability,\n gas: (value.gas ? BigNumber.from(value.gas): null)\n };\n\n return new FunctionFragment(_constructorGuard, params);\n }\n\n static fromString(value: string): FunctionFragment {\n let params: any = { type: \"function\" };\n value = parseGas(value, params);\n\n let comps = value.split(\" returns \");\n if (comps.length > 2) {\n logger.throwArgumentError(\"invalid function string\", \"value\", value);\n }\n\n let parens = comps[0].match(regexParen);\n if (!parens) {\n logger.throwArgumentError(\"invalid function signature\", \"value\", value);\n }\n\n params.name = parens[1].trim();\n if (params.name) { verifyIdentifier(params.name); }\n\n params.inputs = parseParams(parens[2], false);\n\n parseModifiers(parens[3].trim(), params);\n\n // We have outputs\n if (comps.length > 1) {\n let returns = comps[1].match(regexParen);\n if (returns[1].trim() != \"\" || returns[3].trim() != \"\") {\n logger.throwArgumentError(\"unexpected tokens\", \"value\", value);\n }\n params.outputs = parseParams(returns[2], false);\n } else {\n params.outputs = [ ];\n }\n\n return FunctionFragment.fromObject(params);\n }\n\n static isFunctionFragment(value: any): value is FunctionFragment {\n return (value && value._isFragment && value.type === \"function\");\n }\n}\n\n//export class StructFragment extends Fragment {\n//}\n\nfunction checkForbidden(fragment: ErrorFragment): ErrorFragment {\n const sig = fragment.format();\n if (sig === \"Error(string)\" || sig === \"Panic(uint256)\") {\n logger.throwArgumentError(`cannot specify user defined ${ sig } error`, \"fragment\", fragment);\n }\n return fragment;\n}\n\nexport class ErrorFragment extends Fragment {\n\n format(format?: string): string {\n if (!format) { format = FormatTypes.sighash; }\n if (!FormatTypes[format]) {\n logger.throwArgumentError(\"invalid format type\", \"format\", format);\n }\n\n if (format === FormatTypes.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\n let result = \"\";\n\n if (format !== FormatTypes.sighash) {\n result += \"error \";\n }\n\n result += this.name + \"(\" + this.inputs.map(\n (input) => input.format(format)\n ).join((format === FormatTypes.full) ? \", \": \",\") + \") \";\n\n return result.trim();\n }\n\n static from(value: ErrorFragment | JsonFragment | string): ErrorFragment {\n if (typeof(value) === \"string\") {\n return ErrorFragment.fromString(value);\n }\n return ErrorFragment.fromObject(value);\n }\n\n static fromObject(value: ErrorFragment | JsonFragment): ErrorFragment {\n if (ErrorFragment.isErrorFragment(value)) { return value; }\n\n if (value.type !== \"error\") {\n logger.throwArgumentError(\"invalid error object\", \"value\", value);\n }\n\n const params: TypeCheck<_Fragment> = {\n type: value.type,\n name: verifyIdentifier(value.name),\n inputs: (value.inputs ? value.inputs.map(ParamType.fromObject): [])\n };\n\n return checkForbidden(new ErrorFragment(_constructorGuard, params));\n }\n\n static fromString(value: string): ErrorFragment {\n let params: any = { type: \"error\" };\n\n let parens = value.match(regexParen);\n if (!parens) {\n logger.throwArgumentError(\"invalid error signature\", \"value\", value);\n }\n\n params.name = parens[1].trim();\n if (params.name) { verifyIdentifier(params.name); }\n\n params.inputs = parseParams(parens[2], false);\n\n return checkForbidden(ErrorFragment.fromObject(params));\n }\n\n static isErrorFragment(value: any): value is ErrorFragment {\n return (value && value._isFragment && value.type === \"error\");\n }\n}\n\nfunction verifyType(type: string): string {\n\n // These need to be transformed to their full description\n if (type.match(/^uint($|[^1-9])/)) {\n type = \"uint256\" + type.substring(4);\n } else if (type.match(/^int($|[^1-9])/)) {\n type = \"int256\" + type.substring(3);\n }\n\n // @TODO: more verification\n\n return type;\n}\n\n// See: https://github.com/ethereum/solidity/blob/1f8f1a3db93a548d0555e3e14cfc55a10e25b60e/docs/grammar/SolidityLexer.g4#L234\nconst regexIdentifier = new RegExp(\"^[a-zA-Z$_][a-zA-Z0-9$_]*$\");\nfunction verifyIdentifier(value: string): string {\n if (!value || !value.match(regexIdentifier)) {\n logger.throwArgumentError(`invalid identifier \"${ value }\"`, \"value\", value);\n }\n return value;\n}\n\nconst regexParen = new RegExp(\"^([^)(]*)\\\\((.*)\\\\)([^)(]*)$\");\n\nfunction splitNesting(value: string): Array {\n value = value.trim();\n\n let result = [];\n let accum = \"\";\n let depth = 0;\n for (let offset = 0; offset < value.length; offset++) {\n let c = value[offset];\n if (c === \",\" && depth === 0) {\n result.push(accum);\n accum = \"\";\n } else {\n accum += c;\n if (c === \"(\") {\n depth++;\n } else if (c === \")\") {\n depth--;\n if (depth === -1) {\n logger.throwArgumentError(\"unbalanced parenthesis\", \"value\", value);\n }\n }\n }\n }\n if (accum) { result.push(accum); }\n\n return result;\n}\n\n", "\"use strict\";\n\nimport { arrayify, BytesLike, concat, hexConcat, hexlify } from \"@ethersproject/bytes\";\nimport { BigNumber, BigNumberish } from \"@ethersproject/bignumber\";\nimport { defineReadOnly } from \"@ethersproject/properties\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"../_version\";\nconst logger = new Logger(version);\n\nexport interface Result extends ReadonlyArray {\n readonly [key: string]: any;\n}\n\nexport function checkResultErrors(result: Result): Array<{ path: Array, error: Error }> {\n // Find the first error (if any)\n const errors: Array<{ path: Array, error: Error }> = [ ];\n\n const checkErrors = function(path: Array, object: any): void {\n if (!Array.isArray(object)) { return; }\n for (let key in object) {\n const childPath = path.slice();\n childPath.push(key);\n\n try {\n checkErrors(childPath, object[key]);\n } catch (error) {\n errors.push({ path: childPath, error: error });\n }\n }\n }\n checkErrors([ ], result);\n\n return errors;\n\n}\n\nexport type CoerceFunc = (type: string, value: any) => any;\n\nexport abstract class Coder {\n\n // The coder name:\n // - address, uint256, tuple, array, etc.\n readonly name: string;\n\n // The fully expanded type, including composite types:\n // - address, uint256, tuple(address,bytes), uint256[3][4][], etc.\n readonly type: string;\n\n // The localName bound in the signature, in this example it is \"baz\":\n // - tuple(address foo, uint bar) baz\n readonly localName: string;\n\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 readonly dynamic: boolean;\n\n constructor(name: string, type: string, localName: string, dynamic: boolean) {\n // @TODO: defineReadOnly these\n this.name = name;\n this.type = type;\n this.localName = localName;\n this.dynamic = dynamic;\n }\n\n _throwError(message: string, value: any): void {\n logger.throwArgumentError(message, this.localName, value);\n }\n\n abstract encode(writer: Writer, value: any): number;\n abstract decode(reader: Reader): any;\n\n abstract defaultValue(): any;\n}\n\nexport class Writer {\n readonly wordSize: number;\n\n _data: Array;\n _dataLength: number;\n _padding: Uint8Array;\n\n constructor(wordSize?: number) {\n defineReadOnly(this, \"wordSize\", wordSize || 32);\n this._data = [ ];\n this._dataLength = 0;\n this._padding = new Uint8Array(wordSize);\n }\n\n get data(): string {\n return hexConcat(this._data);\n }\n get length(): number { return this._dataLength; }\n\n _writeData(data: Uint8Array): number {\n this._data.push(data);\n this._dataLength += data.length;\n return data.length;\n }\n\n appendWriter(writer: Writer): number {\n return this._writeData(concat(writer._data));\n }\n\n // Arrayish items; padded on the right to wordSize\n writeBytes(value: BytesLike): number {\n let bytes = arrayify(value);\n const paddingOffset = bytes.length % this.wordSize;\n if (paddingOffset) {\n bytes = concat([ bytes, this._padding.slice(paddingOffset) ])\n }\n return this._writeData(bytes);\n }\n\n _getValue(value: BigNumberish): Uint8Array {\n let bytes = arrayify(BigNumber.from(value));\n if (bytes.length > this.wordSize) {\n logger.throwError(\"value out-of-bounds\", Logger.errors.BUFFER_OVERRUN, {\n length: this.wordSize,\n offset: bytes.length\n });\n }\n if (bytes.length % this.wordSize) {\n bytes = concat([ this._padding.slice(bytes.length % this.wordSize), bytes ]);\n }\n return bytes;\n }\n\n // BigNumberish items; padded on the left to wordSize\n writeValue(value: BigNumberish): number {\n return this._writeData(this._getValue(value));\n }\n\n writeUpdatableValue(): (value: BigNumberish) => void {\n const offset = this._data.length;\n this._data.push(this._padding);\n this._dataLength += this.wordSize;\n return (value: BigNumberish) => {\n this._data[offset] = this._getValue(value);\n };\n }\n}\n\nexport class Reader {\n readonly wordSize: number;\n readonly allowLoose: boolean;\n\n readonly _data: Uint8Array;\n readonly _coerceFunc: CoerceFunc;\n\n _offset: number;\n\n constructor(data: BytesLike, wordSize?: number, coerceFunc?: CoerceFunc, allowLoose?: boolean) {\n defineReadOnly(this, \"_data\", arrayify(data));\n defineReadOnly(this, \"wordSize\", wordSize || 32);\n defineReadOnly(this, \"_coerceFunc\", coerceFunc);\n defineReadOnly(this, \"allowLoose\", allowLoose);\n\n this._offset = 0;\n }\n\n get data(): string { return hexlify(this._data); }\n get consumed(): number { return this._offset; }\n\n // The default Coerce function\n static coerce(name: string, value: any): any {\n let match = name.match(\"^u?int([0-9]+)$\");\n if (match && parseInt(match[1]) <= 48) { value = value.toNumber(); }\n return value;\n }\n\n coerce(name: string, value: any): any {\n if (this._coerceFunc) { return this._coerceFunc(name, value); }\n return Reader.coerce(name, value);\n }\n\n _peekBytes(offset: number, length: number, loose?: boolean): Uint8Array {\n let alignedLength = Math.ceil(length / this.wordSize) * this.wordSize;\n if (this._offset + alignedLength > this._data.length) {\n if (this.allowLoose && loose && this._offset + length <= this._data.length) {\n alignedLength = length;\n } else {\n logger.throwError(\"data out-of-bounds\", Logger.errors.BUFFER_OVERRUN, {\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\n subReader(offset: number): Reader {\n return new Reader(this._data.slice(this._offset + offset), this.wordSize, this._coerceFunc, this.allowLoose);\n }\n\n readBytes(length: number, loose?: boolean): Uint8Array {\n let bytes = this._peekBytes(0, length, !!loose);\n this._offset += bytes.length;\n // @TODO: Make sure the length..end bytes are all 0?\n return bytes.slice(0, length);\n }\n\n readValue(): BigNumber {\n return BigNumber.from(this.readBytes(this.wordSize));\n }\n}\n", "/**\n * [js-sha3]{@link https://github.com/emn178/js-sha3}\n *\n * @version 0.8.0\n * @author Chen, Yi-Cyuan [emn178@gmail.com]\n * @copyright Chen, Yi-Cyuan 2015-2018\n * @license MIT\n */\n/*jslint bitwise: true */\n(function () {\n 'use strict';\n\n var INPUT_ERROR = 'input is invalid type';\n var FINALIZE_ERROR = 'finalize already called';\n var WINDOW = typeof window === 'object';\n var root = WINDOW ? window : {};\n if (root.JS_SHA3_NO_WINDOW) {\n WINDOW = false;\n }\n var WEB_WORKER = !WINDOW && typeof self === 'object';\n var NODE_JS = !root.JS_SHA3_NO_NODE_JS && typeof process === 'object' && process.versions && process.versions.node;\n if (NODE_JS) {\n root = global;\n } else if (WEB_WORKER) {\n root = self;\n }\n var COMMON_JS = !root.JS_SHA3_NO_COMMON_JS && typeof module === 'object' && module.exports;\n var AMD = typeof define === 'function' && define.amd;\n var ARRAY_BUFFER = !root.JS_SHA3_NO_ARRAY_BUFFER && typeof ArrayBuffer !== 'undefined';\n var HEX_CHARS = '0123456789abcdef'.split('');\n var SHAKE_PADDING = [31, 7936, 2031616, 520093696];\n var CSHAKE_PADDING = [4, 1024, 262144, 67108864];\n var KECCAK_PADDING = [1, 256, 65536, 16777216];\n var PADDING = [6, 1536, 393216, 100663296];\n var SHIFT = [0, 8, 16, 24];\n var RC = [1, 0, 32898, 0, 32906, 2147483648, 2147516416, 2147483648, 32907, 0, 2147483649,\n 0, 2147516545, 2147483648, 32777, 2147483648, 138, 0, 136, 0, 2147516425, 0,\n 2147483658, 0, 2147516555, 0, 139, 2147483648, 32905, 2147483648, 32771,\n 2147483648, 32770, 2147483648, 128, 2147483648, 32778, 0, 2147483658, 2147483648,\n 2147516545, 2147483648, 32896, 2147483648, 2147483649, 0, 2147516424, 2147483648];\n var BITS = [224, 256, 384, 512];\n var SHAKE_BITS = [128, 256];\n var OUTPUT_TYPES = ['hex', 'buffer', 'arrayBuffer', 'array', 'digest'];\n var CSHAKE_BYTEPAD = {\n '128': 168,\n '256': 136\n };\n\n if (root.JS_SHA3_NO_NODE_JS || !Array.isArray) {\n Array.isArray = function (obj) {\n return Object.prototype.toString.call(obj) === '[object Array]';\n };\n }\n\n if (ARRAY_BUFFER && (root.JS_SHA3_NO_ARRAY_BUFFER_IS_VIEW || !ArrayBuffer.isView)) {\n ArrayBuffer.isView = function (obj) {\n return typeof obj === 'object' && obj.buffer && obj.buffer.constructor === ArrayBuffer;\n };\n }\n\n var createOutputMethod = function (bits, padding, outputType) {\n return function (message) {\n return new Keccak(bits, padding, bits).update(message)[outputType]();\n };\n };\n\n var createShakeOutputMethod = function (bits, padding, outputType) {\n return function (message, outputBits) {\n return new Keccak(bits, padding, outputBits).update(message)[outputType]();\n };\n };\n\n var createCshakeOutputMethod = function (bits, padding, outputType) {\n return function (message, outputBits, n, s) {\n return methods['cshake' + bits].update(message, outputBits, n, s)[outputType]();\n };\n };\n\n var createKmacOutputMethod = function (bits, padding, outputType) {\n return function (key, message, outputBits, s) {\n return methods['kmac' + bits].update(key, message, outputBits, s)[outputType]();\n };\n };\n\n var createOutputMethods = function (method, createMethod, bits, padding) {\n for (var i = 0; i < OUTPUT_TYPES.length; ++i) {\n var type = OUTPUT_TYPES[i];\n method[type] = createMethod(bits, padding, type);\n }\n return method;\n };\n\n var createMethod = function (bits, padding) {\n var method = createOutputMethod(bits, padding, 'hex');\n method.create = function () {\n return new Keccak(bits, padding, bits);\n };\n method.update = function (message) {\n return method.create().update(message);\n };\n return createOutputMethods(method, createOutputMethod, bits, padding);\n };\n\n var createShakeMethod = function (bits, padding) {\n var method = createShakeOutputMethod(bits, padding, 'hex');\n method.create = function (outputBits) {\n return new Keccak(bits, padding, outputBits);\n };\n method.update = function (message, outputBits) {\n return method.create(outputBits).update(message);\n };\n return createOutputMethods(method, createShakeOutputMethod, bits, padding);\n };\n\n var createCshakeMethod = function (bits, padding) {\n var w = CSHAKE_BYTEPAD[bits];\n var method = createCshakeOutputMethod(bits, padding, 'hex');\n method.create = function (outputBits, n, s) {\n if (!n && !s) {\n return methods['shake' + bits].create(outputBits);\n } else {\n return new Keccak(bits, padding, outputBits).bytepad([n, s], w);\n }\n };\n method.update = function (message, outputBits, n, s) {\n return method.create(outputBits, n, s).update(message);\n };\n return createOutputMethods(method, createCshakeOutputMethod, bits, padding);\n };\n\n var createKmacMethod = function (bits, padding) {\n var w = CSHAKE_BYTEPAD[bits];\n var method = createKmacOutputMethod(bits, padding, 'hex');\n method.create = function (key, outputBits, s) {\n return new Kmac(bits, padding, outputBits).bytepad(['KMAC', s], w).bytepad([key], w);\n };\n method.update = function (key, message, outputBits, s) {\n return method.create(key, outputBits, s).update(message);\n };\n return createOutputMethods(method, createKmacOutputMethod, bits, padding);\n };\n\n var algorithms = [\n { name: 'keccak', padding: KECCAK_PADDING, bits: BITS, createMethod: createMethod },\n { name: 'sha3', padding: PADDING, bits: BITS, createMethod: createMethod },\n { name: 'shake', padding: SHAKE_PADDING, bits: SHAKE_BITS, createMethod: createShakeMethod },\n { name: 'cshake', padding: CSHAKE_PADDING, bits: SHAKE_BITS, createMethod: createCshakeMethod },\n { name: 'kmac', padding: CSHAKE_PADDING, bits: SHAKE_BITS, createMethod: createKmacMethod }\n ];\n\n var methods = {}, methodNames = [];\n\n for (var i = 0; i < algorithms.length; ++i) {\n var algorithm = algorithms[i];\n var bits = algorithm.bits;\n for (var j = 0; j < bits.length; ++j) {\n var methodName = algorithm.name + '_' + bits[j];\n methodNames.push(methodName);\n methods[methodName] = algorithm.createMethod(bits[j], algorithm.padding);\n if (algorithm.name !== 'sha3') {\n var newMethodName = algorithm.name + bits[j];\n methodNames.push(newMethodName);\n methods[newMethodName] = methods[methodName];\n }\n }\n }\n\n function Keccak(bits, padding, outputBits) {\n this.blocks = [];\n this.s = [];\n this.padding = padding;\n this.outputBits = outputBits;\n this.reset = true;\n this.finalized = false;\n this.block = 0;\n this.start = 0;\n this.blockCount = (1600 - (bits << 1)) >> 5;\n this.byteCount = this.blockCount << 2;\n this.outputBlocks = outputBits >> 5;\n this.extraBytes = (outputBits & 31) >> 3;\n\n for (var i = 0; i < 50; ++i) {\n this.s[i] = 0;\n }\n }\n\n Keccak.prototype.update = function (message) {\n if (this.finalized) {\n throw new Error(FINALIZE_ERROR);\n }\n var notString, type = typeof message;\n if (type !== 'string') {\n if (type === 'object') {\n if (message === null) {\n throw new Error(INPUT_ERROR);\n } else if (ARRAY_BUFFER && message.constructor === ArrayBuffer) {\n message = new Uint8Array(message);\n } else if (!Array.isArray(message)) {\n if (!ARRAY_BUFFER || !ArrayBuffer.isView(message)) {\n throw new Error(INPUT_ERROR);\n }\n }\n } else {\n throw new Error(INPUT_ERROR);\n }\n notString = true;\n }\n var blocks = this.blocks, byteCount = this.byteCount, length = message.length,\n blockCount = this.blockCount, index = 0, s = this.s, i, code;\n\n while (index < length) {\n if (this.reset) {\n this.reset = false;\n blocks[0] = this.block;\n for (i = 1; i < blockCount + 1; ++i) {\n blocks[i] = 0;\n }\n }\n if (notString) {\n for (i = this.start; index < length && i < byteCount; ++index) {\n blocks[i >> 2] |= message[index] << SHIFT[i++ & 3];\n }\n } else {\n for (i = this.start; index < length && i < byteCount; ++index) {\n code = message.charCodeAt(index);\n if (code < 0x80) {\n blocks[i >> 2] |= code << SHIFT[i++ & 3];\n } else if (code < 0x800) {\n blocks[i >> 2] |= (0xc0 | (code >> 6)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | (code & 0x3f)) << SHIFT[i++ & 3];\n } else if (code < 0xd800 || code >= 0xe000) {\n blocks[i >> 2] |= (0xe0 | (code >> 12)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | ((code >> 6) & 0x3f)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | (code & 0x3f)) << SHIFT[i++ & 3];\n } else {\n code = 0x10000 + (((code & 0x3ff) << 10) | (message.charCodeAt(++index) & 0x3ff));\n blocks[i >> 2] |= (0xf0 | (code >> 18)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | ((code >> 12) & 0x3f)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | ((code >> 6) & 0x3f)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | (code & 0x3f)) << SHIFT[i++ & 3];\n }\n }\n }\n this.lastByteIndex = i;\n if (i >= byteCount) {\n this.start = i - byteCount;\n this.block = blocks[blockCount];\n for (i = 0; i < blockCount; ++i) {\n s[i] ^= blocks[i];\n }\n f(s);\n this.reset = true;\n } else {\n this.start = i;\n }\n }\n return this;\n };\n\n Keccak.prototype.encode = function (x, right) {\n var o = x & 255, n = 1;\n var bytes = [o];\n x = x >> 8;\n o = x & 255;\n while (o > 0) {\n bytes.unshift(o);\n x = x >> 8;\n o = x & 255;\n ++n;\n }\n if (right) {\n bytes.push(n);\n } else {\n bytes.unshift(n);\n }\n this.update(bytes);\n return bytes.length;\n };\n\n Keccak.prototype.encodeString = function (str) {\n var notString, type = typeof str;\n if (type !== 'string') {\n if (type === 'object') {\n if (str === null) {\n throw new Error(INPUT_ERROR);\n } else if (ARRAY_BUFFER && str.constructor === ArrayBuffer) {\n str = new Uint8Array(str);\n } else if (!Array.isArray(str)) {\n if (!ARRAY_BUFFER || !ArrayBuffer.isView(str)) {\n throw new Error(INPUT_ERROR);\n }\n }\n } else {\n throw new Error(INPUT_ERROR);\n }\n notString = true;\n }\n var bytes = 0, length = str.length;\n if (notString) {\n bytes = length;\n } else {\n for (var i = 0; i < str.length; ++i) {\n var code = str.charCodeAt(i);\n if (code < 0x80) {\n bytes += 1;\n } else if (code < 0x800) {\n bytes += 2;\n } else if (code < 0xd800 || code >= 0xe000) {\n bytes += 3;\n } else {\n code = 0x10000 + (((code & 0x3ff) << 10) | (str.charCodeAt(++i) & 0x3ff));\n bytes += 4;\n }\n }\n }\n bytes += this.encode(bytes * 8);\n this.update(str);\n return bytes;\n };\n\n Keccak.prototype.bytepad = function (strs, w) {\n var bytes = this.encode(w);\n for (var i = 0; i < strs.length; ++i) {\n bytes += this.encodeString(strs[i]);\n }\n var paddingBytes = w - bytes % w;\n var zeros = [];\n zeros.length = paddingBytes;\n this.update(zeros);\n return this;\n };\n\n Keccak.prototype.finalize = function () {\n if (this.finalized) {\n return;\n }\n this.finalized = true;\n var blocks = this.blocks, i = this.lastByteIndex, blockCount = this.blockCount, s = this.s;\n blocks[i >> 2] |= this.padding[i & 3];\n if (this.lastByteIndex === this.byteCount) {\n blocks[0] = blocks[blockCount];\n for (i = 1; i < blockCount + 1; ++i) {\n blocks[i] = 0;\n }\n }\n blocks[blockCount - 1] |= 0x80000000;\n for (i = 0; i < blockCount; ++i) {\n s[i] ^= blocks[i];\n }\n f(s);\n };\n\n Keccak.prototype.toString = Keccak.prototype.hex = function () {\n this.finalize();\n\n var blockCount = this.blockCount, s = this.s, outputBlocks = this.outputBlocks,\n extraBytes = this.extraBytes, i = 0, j = 0;\n var hex = '', block;\n while (j < outputBlocks) {\n for (i = 0; i < blockCount && j < outputBlocks; ++i, ++j) {\n block = s[i];\n hex += HEX_CHARS[(block >> 4) & 0x0F] + HEX_CHARS[block & 0x0F] +\n HEX_CHARS[(block >> 12) & 0x0F] + HEX_CHARS[(block >> 8) & 0x0F] +\n HEX_CHARS[(block >> 20) & 0x0F] + HEX_CHARS[(block >> 16) & 0x0F] +\n HEX_CHARS[(block >> 28) & 0x0F] + HEX_CHARS[(block >> 24) & 0x0F];\n }\n if (j % blockCount === 0) {\n f(s);\n i = 0;\n }\n }\n if (extraBytes) {\n block = s[i];\n hex += HEX_CHARS[(block >> 4) & 0x0F] + HEX_CHARS[block & 0x0F];\n if (extraBytes > 1) {\n hex += HEX_CHARS[(block >> 12) & 0x0F] + HEX_CHARS[(block >> 8) & 0x0F];\n }\n if (extraBytes > 2) {\n hex += HEX_CHARS[(block >> 20) & 0x0F] + HEX_CHARS[(block >> 16) & 0x0F];\n }\n }\n return hex;\n };\n\n Keccak.prototype.arrayBuffer = function () {\n this.finalize();\n\n var blockCount = this.blockCount, s = this.s, outputBlocks = this.outputBlocks,\n extraBytes = this.extraBytes, i = 0, j = 0;\n var bytes = this.outputBits >> 3;\n var buffer;\n if (extraBytes) {\n buffer = new ArrayBuffer((outputBlocks + 1) << 2);\n } else {\n buffer = new ArrayBuffer(bytes);\n }\n var array = new Uint32Array(buffer);\n while (j < outputBlocks) {\n for (i = 0; i < blockCount && j < outputBlocks; ++i, ++j) {\n array[j] = s[i];\n }\n if (j % blockCount === 0) {\n f(s);\n }\n }\n if (extraBytes) {\n array[i] = s[i];\n buffer = buffer.slice(0, bytes);\n }\n return buffer;\n };\n\n Keccak.prototype.buffer = Keccak.prototype.arrayBuffer;\n\n Keccak.prototype.digest = Keccak.prototype.array = function () {\n this.finalize();\n\n var blockCount = this.blockCount, s = this.s, outputBlocks = this.outputBlocks,\n extraBytes = this.extraBytes, i = 0, j = 0;\n var array = [], offset, block;\n while (j < outputBlocks) {\n for (i = 0; i < blockCount && j < outputBlocks; ++i, ++j) {\n offset = j << 2;\n block = s[i];\n array[offset] = block & 0xFF;\n array[offset + 1] = (block >> 8) & 0xFF;\n array[offset + 2] = (block >> 16) & 0xFF;\n array[offset + 3] = (block >> 24) & 0xFF;\n }\n if (j % blockCount === 0) {\n f(s);\n }\n }\n if (extraBytes) {\n offset = j << 2;\n block = s[i];\n array[offset] = block & 0xFF;\n if (extraBytes > 1) {\n array[offset + 1] = (block >> 8) & 0xFF;\n }\n if (extraBytes > 2) {\n array[offset + 2] = (block >> 16) & 0xFF;\n }\n }\n return array;\n };\n\n function Kmac(bits, padding, outputBits) {\n Keccak.call(this, bits, padding, outputBits);\n }\n\n Kmac.prototype = new Keccak();\n\n Kmac.prototype.finalize = function () {\n this.encode(this.outputBits, true);\n return Keccak.prototype.finalize.call(this);\n };\n\n var f = function (s) {\n var h, l, n, c0, c1, c2, c3, c4, c5, c6, c7, c8, c9,\n b0, b1, b2, b3, b4, b5, b6, b7, b8, b9, b10, b11, b12, b13, b14, b15, b16, b17,\n b18, b19, b20, b21, b22, b23, b24, b25, b26, b27, b28, b29, b30, b31, b32, b33,\n b34, b35, b36, b37, b38, b39, b40, b41, b42, b43, b44, b45, b46, b47, b48, b49;\n for (n = 0; n < 48; n += 2) {\n c0 = s[0] ^ s[10] ^ s[20] ^ s[30] ^ s[40];\n c1 = s[1] ^ s[11] ^ s[21] ^ s[31] ^ s[41];\n c2 = s[2] ^ s[12] ^ s[22] ^ s[32] ^ s[42];\n c3 = s[3] ^ s[13] ^ s[23] ^ s[33] ^ s[43];\n c4 = s[4] ^ s[14] ^ s[24] ^ s[34] ^ s[44];\n c5 = s[5] ^ s[15] ^ s[25] ^ s[35] ^ s[45];\n c6 = s[6] ^ s[16] ^ s[26] ^ s[36] ^ s[46];\n c7 = s[7] ^ s[17] ^ s[27] ^ s[37] ^ s[47];\n c8 = s[8] ^ s[18] ^ s[28] ^ s[38] ^ s[48];\n c9 = s[9] ^ s[19] ^ s[29] ^ s[39] ^ s[49];\n\n h = c8 ^ ((c2 << 1) | (c3 >>> 31));\n l = c9 ^ ((c3 << 1) | (c2 >>> 31));\n s[0] ^= h;\n s[1] ^= l;\n s[10] ^= h;\n s[11] ^= l;\n s[20] ^= h;\n s[21] ^= l;\n s[30] ^= h;\n s[31] ^= l;\n s[40] ^= h;\n s[41] ^= l;\n h = c0 ^ ((c4 << 1) | (c5 >>> 31));\n l = c1 ^ ((c5 << 1) | (c4 >>> 31));\n s[2] ^= h;\n s[3] ^= l;\n s[12] ^= h;\n s[13] ^= l;\n s[22] ^= h;\n s[23] ^= l;\n s[32] ^= h;\n s[33] ^= l;\n s[42] ^= h;\n s[43] ^= l;\n h = c2 ^ ((c6 << 1) | (c7 >>> 31));\n l = c3 ^ ((c7 << 1) | (c6 >>> 31));\n s[4] ^= h;\n s[5] ^= l;\n s[14] ^= h;\n s[15] ^= l;\n s[24] ^= h;\n s[25] ^= l;\n s[34] ^= h;\n s[35] ^= l;\n s[44] ^= h;\n s[45] ^= l;\n h = c4 ^ ((c8 << 1) | (c9 >>> 31));\n l = c5 ^ ((c9 << 1) | (c8 >>> 31));\n s[6] ^= h;\n s[7] ^= l;\n s[16] ^= h;\n s[17] ^= l;\n s[26] ^= h;\n s[27] ^= l;\n s[36] ^= h;\n s[37] ^= l;\n s[46] ^= h;\n s[47] ^= l;\n h = c6 ^ ((c0 << 1) | (c1 >>> 31));\n l = c7 ^ ((c1 << 1) | (c0 >>> 31));\n s[8] ^= h;\n s[9] ^= l;\n s[18] ^= h;\n s[19] ^= l;\n s[28] ^= h;\n s[29] ^= l;\n s[38] ^= h;\n s[39] ^= l;\n s[48] ^= h;\n s[49] ^= l;\n\n b0 = s[0];\n b1 = s[1];\n b32 = (s[11] << 4) | (s[10] >>> 28);\n b33 = (s[10] << 4) | (s[11] >>> 28);\n b14 = (s[20] << 3) | (s[21] >>> 29);\n b15 = (s[21] << 3) | (s[20] >>> 29);\n b46 = (s[31] << 9) | (s[30] >>> 23);\n b47 = (s[30] << 9) | (s[31] >>> 23);\n b28 = (s[40] << 18) | (s[41] >>> 14);\n b29 = (s[41] << 18) | (s[40] >>> 14);\n b20 = (s[2] << 1) | (s[3] >>> 31);\n b21 = (s[3] << 1) | (s[2] >>> 31);\n b2 = (s[13] << 12) | (s[12] >>> 20);\n b3 = (s[12] << 12) | (s[13] >>> 20);\n b34 = (s[22] << 10) | (s[23] >>> 22);\n b35 = (s[23] << 10) | (s[22] >>> 22);\n b16 = (s[33] << 13) | (s[32] >>> 19);\n b17 = (s[32] << 13) | (s[33] >>> 19);\n b48 = (s[42] << 2) | (s[43] >>> 30);\n b49 = (s[43] << 2) | (s[42] >>> 30);\n b40 = (s[5] << 30) | (s[4] >>> 2);\n b41 = (s[4] << 30) | (s[5] >>> 2);\n b22 = (s[14] << 6) | (s[15] >>> 26);\n b23 = (s[15] << 6) | (s[14] >>> 26);\n b4 = (s[25] << 11) | (s[24] >>> 21);\n b5 = (s[24] << 11) | (s[25] >>> 21);\n b36 = (s[34] << 15) | (s[35] >>> 17);\n b37 = (s[35] << 15) | (s[34] >>> 17);\n b18 = (s[45] << 29) | (s[44] >>> 3);\n b19 = (s[44] << 29) | (s[45] >>> 3);\n b10 = (s[6] << 28) | (s[7] >>> 4);\n b11 = (s[7] << 28) | (s[6] >>> 4);\n b42 = (s[17] << 23) | (s[16] >>> 9);\n b43 = (s[16] << 23) | (s[17] >>> 9);\n b24 = (s[26] << 25) | (s[27] >>> 7);\n b25 = (s[27] << 25) | (s[26] >>> 7);\n b6 = (s[36] << 21) | (s[37] >>> 11);\n b7 = (s[37] << 21) | (s[36] >>> 11);\n b38 = (s[47] << 24) | (s[46] >>> 8);\n b39 = (s[46] << 24) | (s[47] >>> 8);\n b30 = (s[8] << 27) | (s[9] >>> 5);\n b31 = (s[9] << 27) | (s[8] >>> 5);\n b12 = (s[18] << 20) | (s[19] >>> 12);\n b13 = (s[19] << 20) | (s[18] >>> 12);\n b44 = (s[29] << 7) | (s[28] >>> 25);\n b45 = (s[28] << 7) | (s[29] >>> 25);\n b26 = (s[38] << 8) | (s[39] >>> 24);\n b27 = (s[39] << 8) | (s[38] >>> 24);\n b8 = (s[48] << 14) | (s[49] >>> 18);\n b9 = (s[49] << 14) | (s[48] >>> 18);\n\n s[0] = b0 ^ (~b2 & b4);\n s[1] = b1 ^ (~b3 & b5);\n s[10] = b10 ^ (~b12 & b14);\n s[11] = b11 ^ (~b13 & b15);\n s[20] = b20 ^ (~b22 & b24);\n s[21] = b21 ^ (~b23 & b25);\n s[30] = b30 ^ (~b32 & b34);\n s[31] = b31 ^ (~b33 & b35);\n s[40] = b40 ^ (~b42 & b44);\n s[41] = b41 ^ (~b43 & b45);\n s[2] = b2 ^ (~b4 & b6);\n s[3] = b3 ^ (~b5 & b7);\n s[12] = b12 ^ (~b14 & b16);\n s[13] = b13 ^ (~b15 & b17);\n s[22] = b22 ^ (~b24 & b26);\n s[23] = b23 ^ (~b25 & b27);\n s[32] = b32 ^ (~b34 & b36);\n s[33] = b33 ^ (~b35 & b37);\n s[42] = b42 ^ (~b44 & b46);\n s[43] = b43 ^ (~b45 & b47);\n s[4] = b4 ^ (~b6 & b8);\n s[5] = b5 ^ (~b7 & b9);\n s[14] = b14 ^ (~b16 & b18);\n s[15] = b15 ^ (~b17 & b19);\n s[24] = b24 ^ (~b26 & b28);\n s[25] = b25 ^ (~b27 & b29);\n s[34] = b34 ^ (~b36 & b38);\n s[35] = b35 ^ (~b37 & b39);\n s[44] = b44 ^ (~b46 & b48);\n s[45] = b45 ^ (~b47 & b49);\n s[6] = b6 ^ (~b8 & b0);\n s[7] = b7 ^ (~b9 & b1);\n s[16] = b16 ^ (~b18 & b10);\n s[17] = b17 ^ (~b19 & b11);\n s[26] = b26 ^ (~b28 & b20);\n s[27] = b27 ^ (~b29 & b21);\n s[36] = b36 ^ (~b38 & b30);\n s[37] = b37 ^ (~b39 & b31);\n s[46] = b46 ^ (~b48 & b40);\n s[47] = b47 ^ (~b49 & b41);\n s[8] = b8 ^ (~b0 & b2);\n s[9] = b9 ^ (~b1 & b3);\n s[18] = b18 ^ (~b10 & b12);\n s[19] = b19 ^ (~b11 & b13);\n s[28] = b28 ^ (~b20 & b22);\n s[29] = b29 ^ (~b21 & b23);\n s[38] = b38 ^ (~b30 & b32);\n s[39] = b39 ^ (~b31 & b33);\n s[48] = b48 ^ (~b40 & b42);\n s[49] = b49 ^ (~b41 & b43);\n\n s[0] ^= RC[n];\n s[1] ^= RC[n + 1];\n }\n };\n\n if (COMMON_JS) {\n module.exports = methods;\n } else {\n for (i = 0; i < methodNames.length; ++i) {\n root[methodNames[i]] = methods[methodNames[i]];\n }\n if (AMD) {\n define(function () {\n return methods;\n });\n }\n }\n})();\n", "\"use strict\";\n\nimport sha3 from \"js-sha3\";\n\nimport { arrayify, BytesLike } from \"@ethersproject/bytes\";\n\nexport function keccak256(data: BytesLike): string {\n return '0x' + sha3.keccak_256(arrayify(data));\n}\n", "export const version = \"rlp/5.7.0\";\n", "\"use strict\";\n\n//See: https://github.com/ethereum/wiki/wiki/RLP\n\nimport { arrayify, BytesLike, hexlify, isBytesLike } from \"@ethersproject/bytes\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\nfunction arrayifyInteger(value: number): Array {\n const result = [];\n while (value) {\n result.unshift(value & 0xff);\n value >>= 8;\n }\n return result;\n}\n\nfunction unarrayifyInteger(data: Uint8Array, offset: number, length: number): number {\n let result = 0;\n for (let i = 0; i < length; i++) {\n result = (result * 256) + data[offset + i];\n }\n return result;\n}\n\nfunction _encode(object: Array | string): Array {\n if (Array.isArray(object)) {\n let payload: Array = [];\n object.forEach(function(child) {\n payload = payload.concat(_encode(child));\n });\n\n if (payload.length <= 55) {\n payload.unshift(0xc0 + payload.length)\n return payload;\n }\n\n const length = arrayifyInteger(payload.length);\n length.unshift(0xf7 + length.length);\n\n return length.concat(payload);\n\n }\n\n if (!isBytesLike(object)) {\n logger.throwArgumentError(\"RLP object must be BytesLike\", \"object\", object);\n }\n\n const data: Array = Array.prototype.slice.call(arrayify(object));\n\n if (data.length === 1 && data[0] <= 0x7f) {\n return data;\n\n } else if (data.length <= 55) {\n data.unshift(0x80 + data.length);\n return data;\n }\n\n const length = arrayifyInteger(data.length);\n length.unshift(0xb7 + length.length);\n\n return length.concat(data);\n}\n\nexport function encode(object: any): string {\n return hexlify(_encode(object));\n}\n\ntype Decoded = {\n result: any;\n consumed: number;\n};\n\nfunction _decodeChildren(data: Uint8Array, offset: number, childOffset: number, length: number): Decoded {\n const result = [];\n\n while (childOffset < offset + 1 + length) {\n const decoded = _decode(data, childOffset);\n\n result.push(decoded.result);\n\n childOffset += decoded.consumed;\n if (childOffset > offset + 1 + length) {\n logger.throwError(\"child data too short\", Logger.errors.BUFFER_OVERRUN, { });\n }\n }\n\n return {consumed: (1 + length), result: result};\n}\n\n// returns { consumed: number, result: Object }\nfunction _decode(data: Uint8Array, offset: number): { consumed: number, result: any } {\n if (data.length === 0) {\n logger.throwError(\"data too short\", Logger.errors.BUFFER_OVERRUN, { });\n }\n\n // Array with extra length prefix\n if (data[offset] >= 0xf8) {\n const lengthLength = data[offset] - 0xf7;\n if (offset + 1 + lengthLength > data.length) {\n logger.throwError(\"data short segment too short\", Logger.errors.BUFFER_OVERRUN, { });\n }\n\n const length = unarrayifyInteger(data, offset + 1, lengthLength);\n if (offset + 1 + lengthLength + length > data.length) {\n logger.throwError(\"data long segment too short\", Logger.errors.BUFFER_OVERRUN, { });\n }\n\n return _decodeChildren(data, offset, offset + 1 + lengthLength, lengthLength + length);\n\n } else if (data[offset] >= 0xc0) {\n const length = data[offset] - 0xc0;\n if (offset + 1 + length > data.length) {\n logger.throwError(\"data array too short\", Logger.errors.BUFFER_OVERRUN, { });\n }\n\n return _decodeChildren(data, offset, offset + 1, length);\n\n } else if (data[offset] >= 0xb8) {\n const lengthLength = data[offset] - 0xb7;\n if (offset + 1 + lengthLength > data.length) {\n logger.throwError(\"data array too short\", Logger.errors.BUFFER_OVERRUN, { });\n }\n\n const length = unarrayifyInteger(data, offset + 1, lengthLength);\n if (offset + 1 + lengthLength + length > data.length) {\n logger.throwError(\"data array too short\", Logger.errors.BUFFER_OVERRUN, { });\n }\n\n const result = hexlify(data.slice(offset + 1 + lengthLength, offset + 1 + lengthLength + length));\n return { consumed: (1 + lengthLength + length), result: result }\n\n } else if (data[offset] >= 0x80) {\n const length = data[offset] - 0x80;\n if (offset + 1 + length > data.length) {\n logger.throwError(\"data too short\", Logger.errors.BUFFER_OVERRUN, { });\n }\n\n const result = hexlify(data.slice(offset + 1, offset + 1 + length));\n return { consumed: (1 + length), result: result }\n }\n return { consumed: 1, result: hexlify(data[offset]) };\n}\n\nexport function decode(data: BytesLike): any {\n const bytes = arrayify(data);\n const decoded = _decode(bytes, 0);\n if (decoded.consumed !== bytes.length) {\n logger.throwArgumentError(\"invalid rlp data\", \"data\", data);\n }\n return decoded.result;\n}\n\n", "export const version = \"address/5.7.0\";\n", "\"use strict\";\n\nimport { arrayify, BytesLike, concat, hexDataLength, hexDataSlice, isHexString, stripZeros } from \"@ethersproject/bytes\";\nimport { BigNumber, BigNumberish, _base16To36, _base36To16 } from \"@ethersproject/bignumber\";\nimport { keccak256 } from \"@ethersproject/keccak256\";\nimport { encode } from \"@ethersproject/rlp\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\nfunction getChecksumAddress(address: string): string {\n if (!isHexString(address, 20)) {\n logger.throwArgumentError(\"invalid address\", \"address\", address);\n }\n\n address = address.toLowerCase();\n\n const chars = address.substring(2).split(\"\");\n\n const expanded = new Uint8Array(40);\n for (let i = 0; i < 40; i++) {\n expanded[i] = chars[i].charCodeAt(0);\n }\n\n const hashed = arrayify(keccak256(expanded));\n\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\n return \"0x\" + chars.join(\"\");\n}\n\n// Shims for environments that are missing some required constants and functions\nconst MAX_SAFE_INTEGER: number = 0x1fffffffffffff;\n\nfunction log10(x: number): number {\n if (Math.log10) { return Math.log10(x); }\n return Math.log(x) / Math.LN10;\n}\n\n\n// See: https://en.wikipedia.org/wiki/International_Bank_Account_Number\n\n// Create lookup table\nconst ibanLookup: { [character: string]: string } = { };\nfor (let i = 0; i < 10; i++) { ibanLookup[String(i)] = String(i); }\nfor (let i = 0; i < 26; i++) { ibanLookup[String.fromCharCode(65 + i)] = String(10 + i); }\n\n// How many decimal digits can we process? (for 64-bit float, this is 15)\nconst safeDigits = Math.floor(log10(MAX_SAFE_INTEGER));\n\nfunction ibanChecksum(address: string): string {\n address = address.toUpperCase();\n address = address.substring(4) + address.substring(0, 2) + \"00\";\n\n let expanded = address.split(\"\").map((c) => { return ibanLookup[c]; }).join(\"\");\n\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\n let checksum = String(98 - (parseInt(expanded, 10) % 97));\n while (checksum.length < 2) { checksum = \"0\" + checksum; }\n\n return checksum;\n};\n\nexport function getAddress(address: string): string {\n let result = null;\n\n if (typeof(address) !== \"string\") {\n logger.throwArgumentError(\"invalid address\", \"address\", address);\n }\n\n if (address.match(/^(0x)?[0-9a-fA-F]{40}$/)) {\n\n // Missing the 0x prefix\n if (address.substring(0, 2) !== \"0x\") { address = \"0x\" + address; }\n\n result = getChecksumAddress(address);\n\n // It is a checksummed address with a bad checksum\n if (address.match(/([A-F].*[a-f])|([a-f].*[A-F])/) && result !== address) {\n logger.throwArgumentError(\"bad address checksum\", \"address\", address);\n }\n\n // Maybe ICAP? (we only support direct mode)\n } else if (address.match(/^XE[0-9]{2}[0-9A-Za-z]{30,31}$/)) {\n\n // It is an ICAP address with a bad checksum\n if (address.substring(2, 4) !== ibanChecksum(address)) {\n logger.throwArgumentError(\"bad icap checksum\", \"address\", address);\n }\n\n result = _base36To16(address.substring(4));\n while (result.length < 40) { result = \"0\" + result; }\n result = getChecksumAddress(\"0x\" + result);\n\n } else {\n logger.throwArgumentError(\"invalid address\", \"address\", address);\n }\n\n return result;\n}\n\nexport function isAddress(address: string): boolean {\n try {\n getAddress(address);\n return true;\n } catch (error) { }\n return false;\n}\n\nexport function getIcapAddress(address: string): string {\n let base36 = _base16To36(getAddress(address).substring(2)).toUpperCase();\n while (base36.length < 30) { base36 = \"0\" + base36; }\n return \"XE\" + ibanChecksum(\"XE00\" + base36) + base36;\n}\n\n// http://ethereum.stackexchange.com/questions/760/how-is-the-address-of-an-ethereum-contract-computed\nexport function getContractAddress(transaction: { from: string, nonce: BigNumberish }) {\n let from: string = null;\n try {\n from = getAddress(transaction.from);\n } catch (error) {\n logger.throwArgumentError(\"missing from address\", \"transaction\", transaction);\n }\n\n const nonce = stripZeros(arrayify(BigNumber.from(transaction.nonce).toHexString()));\n\n return getAddress(hexDataSlice(keccak256(encode([ from, nonce ])), 12));\n}\n\nexport function getCreate2Address(from: string, salt: BytesLike, initCodeHash: BytesLike): string {\n if (hexDataLength(salt) !== 32) {\n logger.throwArgumentError(\"salt must be 32 bytes\", \"salt\", salt);\n }\n if (hexDataLength(initCodeHash) !== 32) {\n logger.throwArgumentError(\"initCodeHash must be 32 bytes\", \"initCodeHash\", initCodeHash);\n }\n return getAddress(hexDataSlice(keccak256(concat([ \"0xff\", getAddress(from), salt, initCodeHash ])), 12))\n}\n", "\"use strict\";\n\nimport { getAddress } from \"@ethersproject/address\";\nimport { hexZeroPad } from \"@ethersproject/bytes\";\n\nimport { Coder, Reader, Writer } from \"./abstract-coder\";\n\nexport class AddressCoder extends Coder {\n\n constructor(localName: string) {\n super(\"address\", \"address\", localName, false);\n }\n\n defaultValue(): string {\n return \"0x0000000000000000000000000000000000000000\";\n }\n\n encode(writer: Writer, value: string): number {\n try {\n value = getAddress(value)\n } catch (error) {\n this._throwError(error.message, value);\n }\n return writer.writeValue(value);\n }\n\n decode(reader: Reader): any {\n return getAddress(hexZeroPad(reader.readValue().toHexString(), 20));\n }\n}\n\n", "\"use strict\";\n\nimport { Coder, Reader, Writer } from \"./abstract-coder\";\n\n// Clones the functionality of an existing Coder, but without a localName\nexport class AnonymousCoder extends Coder {\n private coder: Coder;\n\n constructor(coder: Coder) {\n super(coder.name, coder.type, undefined, coder.dynamic);\n this.coder = coder;\n }\n\n defaultValue(): any {\n return this.coder.defaultValue();\n }\n\n encode(writer: Writer, value: any): number {\n return this.coder.encode(writer, value);\n }\n\n decode(reader: Reader): any {\n return this.coder.decode(reader);\n }\n}\n", "\"use strict\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"../_version\";\nconst logger = new Logger(version);\n\nimport { Coder, Reader, Result, Writer } from \"./abstract-coder\";\nimport { AnonymousCoder } from \"./anonymous\";\n\nexport function pack(writer: Writer, coders: ReadonlyArray, values: Array | { [ name: string ]: any }): number {\n let arrayValues: Array = null;\n\n if (Array.isArray(values)) {\n arrayValues = values;\n\n } else if (values && typeof(values) === \"object\") {\n let unique: { [ name: string ]: boolean } = { };\n\n arrayValues = coders.map((coder) => {\n const name = coder.localName;\n if (!name) {\n logger.throwError(\"cannot encode object for signature with missing names\", Logger.errors.INVALID_ARGUMENT, {\n argument: \"values\",\n coder: coder,\n value: values\n });\n }\n\n if (unique[name]) {\n logger.throwError(\"cannot encode object for signature with duplicate names\", Logger.errors.INVALID_ARGUMENT, {\n argument: \"values\",\n coder: coder,\n value: values\n });\n }\n\n unique[name] = true;\n\n return values[name];\n });\n\n } else {\n logger.throwArgumentError(\"invalid tuple value\", \"tuple\", values);\n }\n\n if (coders.length !== arrayValues.length) {\n logger.throwArgumentError(\"types/value length mismatch\", \"tuple\", values);\n }\n\n let staticWriter = new Writer(writer.wordSize);\n let dynamicWriter = new Writer(writer.wordSize);\n\n let updateFuncs: Array<(baseOffset: number) => void> = [];\n coders.forEach((coder, index) => {\n let value = arrayValues[index];\n\n if (coder.dynamic) {\n // Get current dynamic offset (for the future pointer)\n let dynamicOffset = dynamicWriter.length;\n\n // Encode the dynamic value into the dynamicWriter\n coder.encode(dynamicWriter, value);\n\n // Prepare to populate the correct offset once we are done\n let updateFunc = staticWriter.writeUpdatableValue();\n updateFuncs.push((baseOffset: number) => {\n updateFunc(baseOffset + dynamicOffset);\n });\n\n } else {\n coder.encode(staticWriter, value);\n }\n });\n\n // Backfill all the dynamic offsets, now that we know the static length\n updateFuncs.forEach((func) => { func(staticWriter.length); });\n\n let length = writer.appendWriter(staticWriter);\n length += writer.appendWriter(dynamicWriter);\n return length;\n}\n\nexport function unpack(reader: Reader, coders: Array): Result {\n let values: any = [];\n\n // A reader anchored to this base\n let baseReader = reader.subReader(0);\n\n coders.forEach((coder) => {\n let value: any = null;\n\n if (coder.dynamic) {\n let offset = reader.readValue();\n let offsetReader = baseReader.subReader(offset.toNumber());\n try {\n value = coder.decode(offsetReader);\n } catch (error) {\n // Cannot recover from this\n if (error.code === Logger.errors.BUFFER_OVERRUN) { throw error; }\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 } catch (error) {\n // Cannot recover from this\n if (error.code === Logger.errors.BUFFER_OVERRUN) { throw error; }\n value = error;\n value.baseType = coder.name;\n value.name = coder.localName;\n value.type = coder.type;\n }\n }\n\n if (value != undefined) {\n values.push(value);\n }\n });\n\n // We only output named properties for uniquely named coders\n const uniqueNames = coders.reduce((accum, coder) => {\n const name = coder.localName;\n if (name) {\n if (!accum[name]) { accum[name] = 0; }\n accum[name]++;\n }\n return accum;\n }, <{ [ name: string ]: number }>{ });\n\n // Add any named parameters (i.e. tuples)\n coders.forEach((coder: Coder, index: number) => {\n let name = coder.localName;\n if (!name || uniqueNames[name] !== 1) { return; }\n\n if (name === \"length\") { name = \"_length\"; }\n\n if (values[name] != null) { return; }\n\n const value = values[index];\n\n if (value instanceof Error) {\n Object.defineProperty(values, name, {\n enumerable: true,\n get: () => { throw value; }\n });\n } else {\n values[name] = value;\n }\n });\n\n for (let i = 0; i < values.length; i++) {\n const value = values[i];\n if (value instanceof Error) {\n Object.defineProperty(values, i, {\n enumerable: true,\n get: () => { throw value; }\n });\n }\n }\n\n return Object.freeze(values);\n}\n\n\nexport class ArrayCoder extends Coder {\n readonly coder: Coder;\n readonly length: number;\n\n constructor(coder: Coder, length: number, localName: string) {\n const type = (coder.type + \"[\" + (length >= 0 ? length: \"\") + \"]\");\n const dynamic = (length === -1 || coder.dynamic);\n super(\"array\", type, localName, dynamic);\n\n this.coder = coder;\n this.length = length;\n }\n\n defaultValue(): Array {\n // Verifies the child coder is valid (even if the array is dynamic or 0-length)\n const defaultChild = this.coder.defaultValue();\n\n const result: Array = [];\n for (let i = 0; i < this.length; i++) {\n result.push(defaultChild);\n }\n return result;\n }\n\n encode(writer: Writer, value: Array): number {\n if (!Array.isArray(value)) {\n this._throwError(\"expected array value\", value);\n }\n\n let count = this.length;\n\n if (count === -1) {\n count = value.length;\n writer.writeValue(value.length);\n }\n\n logger.checkArgumentCount(value.length, count, \"coder array\" + (this.localName? (\" \"+ this.localName): \"\"));\n\n let coders = [];\n for (let i = 0; i < value.length; i++) { coders.push(this.coder); }\n\n return pack(writer, coders, value);\n }\n\n decode(reader: Reader): any {\n let count = this.length;\n if (count === -1) {\n count = reader.readValue().toNumber();\n\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 if (count * 32 > reader._data.length) {\n logger.throwError(\"insufficient data length\", Logger.errors.BUFFER_OVERRUN, {\n length: reader._data.length,\n count: count\n });\n }\n }\n let coders = [];\n for (let i = 0; i < count; i++) { coders.push(new AnonymousCoder(this.coder)); }\n\n return reader.coerce(this.name, unpack(reader, coders));\n }\n}\n\n", "\"use strict\";\n\nimport { Coder, Reader, Writer } from \"./abstract-coder\";\n\nexport class BooleanCoder extends Coder {\n\n constructor(localName: string) {\n super(\"bool\", \"bool\", localName, false);\n }\n\n defaultValue(): boolean {\n return false;\n }\n\n encode(writer: Writer, value: boolean): number {\n return writer.writeValue(value ? 1: 0);\n }\n\n decode(reader: Reader): any {\n return reader.coerce(this.type, !reader.readValue().isZero());\n }\n}\n\n", "\"use strict\";\n\nimport { arrayify, hexlify } from \"@ethersproject/bytes\";\n\nimport { Coder, Reader, Writer } from \"./abstract-coder\";\n\nexport class DynamicBytesCoder extends Coder {\n constructor(type: string, localName: string) {\n super(type, type, localName, true);\n }\n\n defaultValue(): string {\n return \"0x\";\n }\n\n encode(writer: Writer, value: any): number {\n value = arrayify(value);\n let length = writer.writeValue(value.length);\n length += writer.writeBytes(value);\n return length;\n }\n\n decode(reader: Reader): any {\n return reader.readBytes(reader.readValue().toNumber(), true);\n }\n}\n\nexport class BytesCoder extends DynamicBytesCoder {\n constructor(localName: string) {\n super(\"bytes\", localName);\n }\n\n decode(reader: Reader): any {\n return reader.coerce(this.name, hexlify(super.decode(reader)));\n }\n}\n\n\n", "\"use strict\";\n\nimport { arrayify, BytesLike, hexlify } from \"@ethersproject/bytes\";\n\nimport { Coder, Reader, Writer } from \"./abstract-coder\";\n\n// @TODO: Merge this with bytes\nexport class FixedBytesCoder extends Coder {\n readonly size: number;\n\n constructor(size: number, localName: string) {\n let name = \"bytes\" + String(size);\n super(name, name, localName, false);\n this.size = size;\n }\n\n defaultValue(): string {\n return (\"0x0000000000000000000000000000000000000000000000000000000000000000\").substring(0, 2 + this.size * 2);\n }\n\n encode(writer: Writer, value: BytesLike): number {\n let data = arrayify(value);\n if (data.length !== this.size) { this._throwError(\"incorrect data length\", value); }\n return writer.writeBytes(data);\n }\n\n decode(reader: Reader): any {\n return reader.coerce(this.name, hexlify(reader.readBytes(this.size)));\n }\n}\n", "\"use strict\";\n\nimport { Coder, Reader, Writer } from \"./abstract-coder\";\n\nexport class NullCoder extends Coder {\n\n constructor(localName: string) {\n super(\"null\", \"\", localName, false);\n }\n\n defaultValue(): null {\n return null;\n }\n\n encode(writer: Writer, value: any): number {\n if (value != null) { this._throwError(\"not null\", value); }\n return writer.writeBytes([ ]);\n }\n\n decode(reader: Reader): any {\n reader.readBytes(0);\n return reader.coerce(this.name, null);\n }\n}\n", "export const AddressZero = \"0x0000000000000000000000000000000000000000\";\n\n", "import { BigNumber } from \"@ethersproject/bignumber\";\n\nconst NegativeOne: BigNumber = (/*#__PURE__*/BigNumber.from(-1));\nconst Zero: BigNumber = (/*#__PURE__*/BigNumber.from(0));\nconst One: BigNumber = (/*#__PURE__*/BigNumber.from(1));\nconst Two: BigNumber = (/*#__PURE__*/BigNumber.from(2));\nconst WeiPerEther: BigNumber = (/*#__PURE__*/BigNumber.from(\"1000000000000000000\"));\nconst MaxUint256: BigNumber = (/*#__PURE__*/BigNumber.from(\"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"));\n\nconst MinInt256: BigNumber = (/*#__PURE__*/BigNumber.from(\"-0x8000000000000000000000000000000000000000000000000000000000000000\"));\nconst MaxInt256: BigNumber = (/*#__PURE__*/BigNumber.from(\"0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"));\n\nexport {\n NegativeOne,\n Zero,\n One,\n Two,\n WeiPerEther,\n MaxUint256,\n MinInt256,\n MaxInt256,\n};\n", "export const HashZero = \"0x0000000000000000000000000000000000000000000000000000000000000000\";\n\n", "// NFKC (composed) // (decomposed)\nexport const EtherSymbol = \"\\u039e\"; // \"\\uD835\\uDF63\";\n", "\"use strict\";\n\nexport { AddressZero } from \"./addresses\";\nexport {\n NegativeOne,\n Zero,\n One,\n Two,\n WeiPerEther,\n MaxUint256,\n MinInt256,\n MaxInt256\n} from \"./bignumbers\";\nexport { HashZero } from \"./hashes\";\nexport { EtherSymbol } from \"./strings\";\n\n", "\"use strict\";\n\nimport { BigNumber, BigNumberish } from \"@ethersproject/bignumber\";\nimport { MaxUint256, NegativeOne, One, Zero } from \"@ethersproject/constants\";\n\nimport { Coder, Reader, Writer } from \"./abstract-coder\";\n\nexport class NumberCoder extends Coder {\n readonly size: number;\n readonly signed: boolean;\n\n constructor(size: number, signed: boolean, localName: string) {\n const name = ((signed ? \"int\": \"uint\") + (size * 8));\n super(name, name, localName, false);\n\n this.size = size;\n this.signed = signed;\n }\n\n defaultValue(): number {\n return 0;\n }\n\n encode(writer: Writer, value: BigNumberish): number {\n let v = BigNumber.from(value);\n\n // Check bounds are safe for encoding\n let maxUintValue = MaxUint256.mask(writer.wordSize * 8);\n if (this.signed) {\n let bounds = maxUintValue.mask(this.size * 8 - 1);\n if (v.gt(bounds) || v.lt(bounds.add(One).mul(NegativeOne))) {\n this._throwError(\"value out-of-bounds\", value);\n }\n } else if (v.lt(Zero) || v.gt(maxUintValue.mask(this.size * 8))) {\n this._throwError(\"value out-of-bounds\", value);\n }\n\n v = v.toTwos(this.size * 8).mask(this.size * 8);\n\n if (this.signed) {\n v = v.fromTwos(this.size * 8).toTwos(8 * writer.wordSize);\n }\n\n return writer.writeValue(v);\n }\n\n decode(reader: Reader): any {\n let value = reader.readValue().mask(this.size * 8);\n\n if (this.signed) {\n value = value.fromTwos(this.size * 8);\n }\n\n return reader.coerce(this.name, value);\n }\n}\n\n", "export const version = \"strings/5.7.0\";\n", "\"use strict\";\n\nimport { arrayify, BytesLike } from \"@ethersproject/bytes\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\n///////////////////////////////\n\nexport enum UnicodeNormalizationForm {\n current = \"\",\n NFC = \"NFC\",\n NFD = \"NFD\",\n NFKC = \"NFKC\",\n NFKD = \"NFKD\"\n};\n\nexport enum Utf8ErrorReason {\n // A continuation byte was present where there was nothing to continue\n // - offset = the index the codepoint began in\n UNEXPECTED_CONTINUE = \"unexpected continuation byte\",\n\n // An invalid (non-continuation) byte to start a UTF-8 codepoint was found\n // - offset = the index the codepoint began in\n BAD_PREFIX = \"bad codepoint prefix\",\n\n // The string is too short to process the expected codepoint\n // - offset = the index the codepoint began in\n OVERRUN = \"string overrun\",\n\n // A missing continuation byte was expected but not found\n // - offset = the index the continuation byte was expected at\n MISSING_CONTINUE = \"missing continuation byte\",\n\n // The computed code point is outside the range for UTF-8\n // - offset = start of this codepoint\n // - badCodepoint = the computed codepoint; outside the UTF-8 range\n OUT_OF_RANGE = \"out of UTF-8 range\",\n\n // UTF-8 strings may not contain UTF-16 surrogate pairs\n // - offset = start of this codepoint\n // - badCodepoint = the computed codepoint; inside the UTF-16 surrogate range\n UTF16_SURROGATE = \"UTF-16 surrogate\",\n\n // The string is an overlong representation\n // - offset = start of this codepoint\n // - badCodepoint = the computed codepoint; already bounds checked\n OVERLONG = \"overlong representation\",\n};\n\n\nexport type Utf8ErrorFunc = (reason: Utf8ErrorReason, offset: number, bytes: ArrayLike, output: Array, badCodepoint?: number) => number;\n\nfunction errorFunc(reason: Utf8ErrorReason, offset: number, bytes: ArrayLike, output: Array, badCodepoint?: number): number {\n return logger.throwArgumentError(`invalid codepoint at offset ${ offset }; ${ reason }`, \"bytes\", bytes);\n}\n\nfunction ignoreFunc(reason: Utf8ErrorReason, offset: number, bytes: ArrayLike, output: Array, badCodepoint?: number): number {\n\n // If there is an invalid prefix (including stray continuation), skip any additional continuation bytes\n if (reason === Utf8ErrorReason.BAD_PREFIX || reason === Utf8ErrorReason.UNEXPECTED_CONTINUE) {\n let i = 0;\n for (let o = offset + 1; o < bytes.length; o++) {\n if (bytes[o] >> 6 !== 0x02) { break; }\n i++;\n }\n return i;\n }\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 === Utf8ErrorReason.OVERRUN) {\n return bytes.length - offset - 1;\n }\n\n // Nothing to skip\n return 0;\n}\n\nfunction replaceFunc(reason: Utf8ErrorReason, offset: number, bytes: ArrayLike, output: Array, badCodepoint?: number): number {\n\n // Overlong representations are otherwise \"valid\" code points; just non-deistingtished\n if (reason === Utf8ErrorReason.OVERLONG) {\n output.push(badCodepoint);\n return 0;\n }\n\n // Put the replacement character into the output\n output.push(0xfffd);\n\n // Otherwise, process as if ignoring errors\n return ignoreFunc(reason, offset, bytes, output, badCodepoint);\n}\n\n// Common error handing strategies\nexport const Utf8ErrorFuncs: { [ name: string ]: Utf8ErrorFunc } = Object.freeze({\n error: errorFunc,\n ignore: ignoreFunc,\n replace: replaceFunc\n});\n\n// http://stackoverflow.com/questions/13356493/decode-utf-8-with-javascript#13691499\nfunction getUtf8CodePoints(bytes: BytesLike, onError?: Utf8ErrorFunc): Array {\n if (onError == null) { onError = Utf8ErrorFuncs.error; }\n\n bytes = arrayify(bytes);\n\n const result: Array = [];\n let i = 0;\n\n // Invalid bytes are ignored\n while(i < bytes.length) {\n\n const c = bytes[i++];\n\n // 0xxx xxxx\n if (c >> 7 === 0) {\n result.push(c);\n continue;\n }\n\n // Multibyte; how many bytes left for this character?\n let extraLength = null;\n let overlongMask = null;\n\n // 110x xxxx 10xx xxxx\n if ((c & 0xe0) === 0xc0) {\n extraLength = 1;\n overlongMask = 0x7f;\n\n // 1110 xxxx 10xx xxxx 10xx xxxx\n } else if ((c & 0xf0) === 0xe0) {\n extraLength = 2;\n overlongMask = 0x7ff;\n\n // 1111 0xxx 10xx xxxx 10xx xxxx 10xx xxxx\n } else if ((c & 0xf8) === 0xf0) {\n extraLength = 3;\n overlongMask = 0xffff;\n\n } else {\n if ((c & 0xc0) === 0x80) {\n i += onError(Utf8ErrorReason.UNEXPECTED_CONTINUE, i - 1, bytes, result);\n } else {\n i += onError(Utf8ErrorReason.BAD_PREFIX, i - 1, bytes, result);\n }\n continue;\n }\n\n // Do we have enough bytes in our data?\n if (i - 1 + extraLength >= bytes.length) {\n i += onError(Utf8ErrorReason.OVERRUN, i - 1, bytes, result);\n continue;\n }\n\n // Remove the length prefix from the char\n let res = c & ((1 << (8 - extraLength - 1)) - 1);\n\n for (let j = 0; j < extraLength; j++) {\n let nextChar = bytes[i];\n\n // Invalid continuation byte\n if ((nextChar & 0xc0) != 0x80) {\n i += onError(Utf8ErrorReason.MISSING_CONTINUE, i, bytes, result);\n res = null;\n break;\n };\n\n res = (res << 6) | (nextChar & 0x3f);\n i++;\n }\n\n // See above loop for invalid continuation byte\n if (res === null) { continue; }\n\n // Maximum code point\n if (res > 0x10ffff) {\n i += onError(Utf8ErrorReason.OUT_OF_RANGE, i - 1 - extraLength, bytes, result, res);\n continue;\n }\n\n // Reserved for UTF-16 surrogate halves\n if (res >= 0xd800 && res <= 0xdfff) {\n i += onError(Utf8ErrorReason.UTF16_SURROGATE, i - 1 - extraLength, bytes, result, res);\n continue;\n }\n\n // Check for overlong sequences (more bytes than needed)\n if (res <= overlongMask) {\n i += onError(Utf8ErrorReason.OVERLONG, i - 1 - extraLength, bytes, result, res);\n continue;\n }\n\n result.push(res);\n }\n\n return result;\n}\n\n// http://stackoverflow.com/questions/18729405/how-to-convert-utf8-string-to-byte-array\nexport function toUtf8Bytes(str: string, form: UnicodeNormalizationForm = UnicodeNormalizationForm.current): Uint8Array {\n\n if (form != UnicodeNormalizationForm.current) {\n logger.checkNormalize();\n str = str.normalize(form);\n }\n\n let result = [];\n for (let i = 0; i < str.length; i++) {\n const c = str.charCodeAt(i);\n\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\n if (i >= str.length || (c2 & 0xfc00) !== 0xdc00) {\n throw new Error(\"invalid utf-8 string\");\n }\n\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\n return arrayify(result);\n};\n\nfunction escapeChar(value: number) {\n const hex = (\"0000\" + value.toString(16));\n return \"\\\\u\" + hex.substring(hex.length - 4);\n}\n\nexport function _toEscapedUtf8String(bytes: BytesLike, onError?: Utf8ErrorFunc): string {\n return '\"' + getUtf8CodePoints(bytes, onError).map((codePoint) => {\n if (codePoint < 256) {\n switch (codePoint) {\n case 8: return \"\\\\b\";\n case 9: return \"\\\\t\";\n case 10: return \"\\\\n\"\n case 13: return \"\\\\r\";\n case 34: return \"\\\\\\\"\";\n case 92: return \"\\\\\\\\\";\n }\n\n if (codePoint >= 32 && codePoint < 127) {\n return String.fromCharCode(codePoint);\n }\n }\n\n if (codePoint <= 0xffff) {\n return escapeChar(codePoint);\n }\n\n codePoint -= 0x10000;\n return escapeChar(((codePoint >> 10) & 0x3ff) + 0xd800) + escapeChar((codePoint & 0x3ff) + 0xdc00);\n }).join(\"\") + '\"';\n}\n\nexport function _toUtf8String(codePoints: Array): string {\n return codePoints.map((codePoint) => {\n if (codePoint <= 0xffff) {\n return String.fromCharCode(codePoint);\n }\n codePoint -= 0x10000;\n return String.fromCharCode(\n (((codePoint >> 10) & 0x3ff) + 0xd800),\n ((codePoint & 0x3ff) + 0xdc00)\n );\n }).join(\"\");\n}\n\nexport function toUtf8String(bytes: BytesLike, onError?: Utf8ErrorFunc): string {\n return _toUtf8String(getUtf8CodePoints(bytes, onError));\n}\n\nexport function toUtf8CodePoints(str: string, form: UnicodeNormalizationForm = UnicodeNormalizationForm.current): Array {\n return getUtf8CodePoints(toUtf8Bytes(str, form));\n}\n", "\"use strict\";\n\nimport { HashZero } from \"@ethersproject/constants\";\nimport { arrayify, BytesLike, concat, hexlify } from \"@ethersproject/bytes\";\n\nimport { toUtf8Bytes, toUtf8String } from \"./utf8\";\n\n\nexport function formatBytes32String(text: string): string {\n\n // Get the bytes\n const bytes = toUtf8Bytes(text);\n\n // Check we have room for null-termination\n if (bytes.length > 31) { throw new Error(\"bytes32 string must be less than 32 bytes\"); }\n\n // Zero-pad (implicitly null-terminates)\n return hexlify(concat([ bytes, HashZero ]).slice(0, 32));\n}\n\nexport function parseBytes32String(bytes: BytesLike): string {\n const data = arrayify(bytes);\n\n // Must be 32 bytes with a null-termination\n if (data.length !== 32) { throw new Error(\"invalid bytes32 - not 32 bytes long\"); }\n if (data[31] !== 0) { throw new Error(\"invalid bytes32 string - no null terminator\"); }\n\n // Find the null termination\n let length = 31;\n while (data[length - 1] === 0) { length--; }\n\n // Determine the string value\n return toUtf8String(data.slice(0, length));\n}\n\n", "\"use strict\";\n\nimport { toUtf8CodePoints, _toUtf8String, UnicodeNormalizationForm } from \"./utf8\";\n\ntype Ranged = {\n l: number, // Lo value\n h: number, // High value (less the lo)\n d?: number, // Delta/stride (default: 1)\n s?: number, // Shift (default: 1)\n e?: Array // Exceptions to skip\n};\n\ntype Table = { [ src: number ]: Array };\n\nfunction bytes2(data: string): Array {\n if ((data.length % 4) !== 0) { throw new Error(\"bad data\"); }\n let result = [];\n for (let i = 0; i < data.length; i += 4) {\n result.push(parseInt(data.substring(i, i + 4), 16));\n }\n return result;\n}\n\nfunction createTable(data: string, func?: (value: string) => Array): Table {\n if (!func) {\n func = function(value: string) { return [ parseInt(value, 16) ]; }\n }\n\n let lo = 0;\n\n let result: Table = { };\n data.split(\",\").forEach((pair) => {\n let comps = pair.split(\":\");\n lo += parseInt(comps[0], 16);\n result[lo] = func(comps[1]);\n });\n\n return result;\n}\n\nfunction createRangeTable(data: string): Array {\n let hi = 0;\n return data.split(\",\").map((v) => {\n let comps = v.split(\"-\");\n if (comps.length === 1) {\n comps[1] = \"0\";\n } else if (comps[1] === \"\") {\n comps[1] = \"1\";\n }\n\n let lo = hi + parseInt(comps[0], 16);\n hi = parseInt(comps[1], 16);\n return { l: lo, h: hi };\n });\n}\n\nfunction matchMap(value: number, ranges: Array): Ranged {\n let lo = 0;\n for (let i = 0; i < ranges.length; i++) {\n let range = ranges[i];\n lo += range.l;\n if (value >= lo && value <= lo + range.h && ((value - lo) % (range.d || 1)) === 0) {\n if (range.e && range.e.indexOf(value - lo) !== -1) { continue; }\n return range;\n }\n }\n return null;\n}\n\nconst Table_A_1_ranges = createRangeTable(\"221,13-1b,5f-,40-10,51-f,11-3,3-3,2-2,2-4,8,2,15,2d,28-8,88,48,27-,3-5,11-20,27-,8,28,3-5,12,18,b-a,1c-4,6-16,2-d,2-2,2,1b-4,17-9,8f-,10,f,1f-2,1c-34,33-14e,4,36-,13-,6-2,1a-f,4,9-,3-,17,8,2-2,5-,2,8-,3-,4-8,2-3,3,6-,16-6,2-,7-3,3-,17,8,3,3,3-,2,6-3,3-,4-a,5,2-6,10-b,4,8,2,4,17,8,3,6-,b,4,4-,2-e,2-4,b-10,4,9-,3-,17,8,3-,5-,9-2,3-,4-7,3-3,3,4-3,c-10,3,7-2,4,5-2,3,2,3-2,3-2,4-2,9,4-3,6-2,4,5-8,2-e,d-d,4,9,4,18,b,6-3,8,4,5-6,3-8,3-3,b-11,3,9,4,18,b,6-3,8,4,5-6,3-6,2,3-3,b-11,3,9,4,18,11-3,7-,4,5-8,2-7,3-3,b-11,3,13-2,19,a,2-,8-2,2-3,7,2,9-11,4-b,3b-3,1e-24,3,2-,3,2-,2-5,5,8,4,2,2-,3,e,4-,6,2,7-,b-,3-21,49,23-5,1c-3,9,25,10-,2-2f,23,6,3,8-2,5-5,1b-45,27-9,2a-,2-3,5b-4,45-4,53-5,8,40,2,5-,8,2,5-,28,2,5-,20,2,5-,8,2,5-,8,8,18,20,2,5-,8,28,14-5,1d-22,56-b,277-8,1e-2,52-e,e,8-a,18-8,15-b,e,4,3-b,5e-2,b-15,10,b-5,59-7,2b-555,9d-3,5b-5,17-,7-,27-,7-,9,2,2,2,20-,36,10,f-,7,14-,4,a,54-3,2-6,6-5,9-,1c-10,13-1d,1c-14,3c-,10-6,32-b,240-30,28-18,c-14,a0,115-,3,66-,b-76,5,5-,1d,24,2,5-2,2,8-,35-2,19,f-10,1d-3,311-37f,1b,5a-b,d7-19,d-3,41,57-,68-4,29-3,5f,29-37,2e-2,25-c,2c-2,4e-3,30,78-3,64-,20,19b7-49,51a7-59,48e-2,38-738,2ba5-5b,222f-,3c-94,8-b,6-4,1b,6,2,3,3,6d-20,16e-f,41-,37-7,2e-2,11-f,5-b,18-,b,14,5-3,6,88-,2,bf-2,7-,7-,7-,4-2,8,8-9,8-2ff,20,5-b,1c-b4,27-,27-cbb1,f7-9,28-2,b5-221,56,48,3-,2-,3-,5,d,2,5,3,42,5-,9,8,1d,5,6,2-2,8,153-3,123-3,33-27fd,a6da-5128,21f-5df,3-fffd,3-fffd,3-fffd,3-fffd,3-fffd,3-fffd,3-fffd,3-fffd,3-fffd,3-fffd,3-fffd,3,2-1d,61-ff7d\");\n\n// @TODO: Make this relative...\nconst Table_B_1_flags = \"ad,34f,1806,180b,180c,180d,200b,200c,200d,2060,feff\".split(\",\").map((v) => parseInt(v, 16));\n\nconst Table_B_2_ranges: Array = [\n { h: 25, s: 32, l: 65 },\n { h: 30, s: 32, e: [ 23 ], l: 127 },\n { h: 54, s: 1, e: [ 48 ], l: 64, d: 2 },\n { h: 14, s: 1, l: 57, d: 2 },\n { h: 44, s: 1, l: 17, d: 2 },\n { h: 10, s: 1, e: [ 2, 6, 8 ], l: 61, d: 2 },\n { h: 16, s: 1, l: 68, d: 2 },\n { h: 84, s: 1, e: [ 18, 24, 66 ], l: 19, d: 2 },\n { h: 26, s: 32, e: [ 17 ], l: 435 },\n { h: 22, s: 1, l: 71, d: 2 },\n { h: 15, s: 80, l: 40 },\n { h: 31, s: 32, l: 16 },\n { h: 32, s: 1, l: 80, d: 2 },\n { h: 52, s: 1, l: 42, d: 2 },\n { h: 12, s: 1, l: 55, d: 2 },\n { h: 40, s: 1, e: [ 38 ], l: 15, d: 2 },\n { h: 14, s: 1, l: 48, d: 2 },\n { h: 37, s: 48, l: 49 },\n { h: 148, s: 1, l: 6351, d: 2 },\n { h: 88, s: 1, l: 160, d: 2 },\n { h: 15, s: 16, l: 704 },\n { h: 25, s: 26, l: 854 },\n { h: 25, s: 32, l: 55915 },\n { h: 37, s: 40, l: 1247 },\n { h: 25, s: -119711, l: 53248 },\n { h: 25, s: -119763, l: 52 },\n { h: 25, s: -119815, l: 52 },\n { h: 25, s: -119867, e: [ 1, 4, 5, 7, 8, 11, 12, 17 ], l: 52 },\n { h: 25, s: -119919, l: 52 },\n { h: 24, s: -119971, e: [ 2, 7, 8, 17 ], l: 52 },\n { h: 24, s: -120023, e: [ 2, 7, 13, 15, 16, 17 ], l: 52 },\n { h: 25, s: -120075, l: 52 },\n { h: 25, s: -120127, l: 52 },\n { h: 25, s: -120179, l: 52 },\n { h: 25, s: -120231, l: 52 },\n { h: 25, s: -120283, l: 52 },\n { h: 25, s: -120335, l: 52 },\n { h: 24, s: -119543, e: [ 17 ], l: 56 },\n { h: 24, s: -119601, e: [ 17 ], l: 58 },\n { h: 24, s: -119659, e: [ 17 ], l: 58 },\n { h: 24, s: -119717, e: [ 17 ], l: 58 },\n { h: 24, s: -119775, e: [ 17 ], l: 58 }\n];\nconst Table_B_2_lut_abs = createTable(\"b5:3bc,c3:ff,7:73,2:253,5:254,3:256,1:257,5:259,1:25b,3:260,1:263,2:269,1:268,5:26f,1:272,2:275,7:280,3:283,5:288,3:28a,1:28b,5:292,3f:195,1:1bf,29:19e,125:3b9,8b:3b2,1:3b8,1:3c5,3:3c6,1:3c0,1a:3ba,1:3c1,1:3c3,2:3b8,1:3b5,1bc9:3b9,1c:1f76,1:1f77,f:1f7a,1:1f7b,d:1f78,1:1f79,1:1f7c,1:1f7d,107:63,5:25b,4:68,1:68,1:68,3:69,1:69,1:6c,3:6e,4:70,1:71,1:72,1:72,1:72,7:7a,2:3c9,2:7a,2:6b,1:e5,1:62,1:63,3:65,1:66,2:6d,b:3b3,1:3c0,6:64,1b574:3b8,1a:3c3,20:3b8,1a:3c3,20:3b8,1a:3c3,20:3b8,1a:3c3,20:3b8,1a:3c3\");\nconst Table_B_2_lut_rel = createTable(\"179:1,2:1,2:1,5:1,2:1,a:4f,a:1,8:1,2:1,2:1,3:1,5:1,3:1,4:1,2:1,3:1,4:1,8:2,1:1,2:2,1:1,2:2,27:2,195:26,2:25,1:25,1:25,2:40,2:3f,1:3f,33:1,11:-6,1:-9,1ac7:-3a,6d:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,9:-8,1:-8,1:-8,1:-8,1:-8,1:-8,b:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,9:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,9:-8,1:-8,1:-8,1:-8,1:-8,1:-8,c:-8,2:-8,2:-8,2:-8,9:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,49:-8,1:-8,1:-4a,1:-4a,d:-56,1:-56,1:-56,1:-56,d:-8,1:-8,f:-8,1:-8,3:-7\");\nconst Table_B_2_complex = createTable(\"df:00730073,51:00690307,19:02BC006E,a7:006A030C,18a:002003B9,16:03B903080301,20:03C503080301,1d7:05650582,190f:00680331,1:00740308,1:0077030A,1:0079030A,1:006102BE,b6:03C50313,2:03C503130300,2:03C503130301,2:03C503130342,2a:1F0003B9,1:1F0103B9,1:1F0203B9,1:1F0303B9,1:1F0403B9,1:1F0503B9,1:1F0603B9,1:1F0703B9,1:1F0003B9,1:1F0103B9,1:1F0203B9,1:1F0303B9,1:1F0403B9,1:1F0503B9,1:1F0603B9,1:1F0703B9,1:1F2003B9,1:1F2103B9,1:1F2203B9,1:1F2303B9,1:1F2403B9,1:1F2503B9,1:1F2603B9,1:1F2703B9,1:1F2003B9,1:1F2103B9,1:1F2203B9,1:1F2303B9,1:1F2403B9,1:1F2503B9,1:1F2603B9,1:1F2703B9,1:1F6003B9,1:1F6103B9,1:1F6203B9,1:1F6303B9,1:1F6403B9,1:1F6503B9,1:1F6603B9,1:1F6703B9,1:1F6003B9,1:1F6103B9,1:1F6203B9,1:1F6303B9,1:1F6403B9,1:1F6503B9,1:1F6603B9,1:1F6703B9,3:1F7003B9,1:03B103B9,1:03AC03B9,2:03B10342,1:03B1034203B9,5:03B103B9,6:1F7403B9,1:03B703B9,1:03AE03B9,2:03B70342,1:03B7034203B9,5:03B703B9,6:03B903080300,1:03B903080301,3:03B90342,1:03B903080342,b:03C503080300,1:03C503080301,1:03C10313,2:03C50342,1:03C503080342,b:1F7C03B9,1:03C903B9,1:03CE03B9,2:03C90342,1:03C9034203B9,5:03C903B9,ac:00720073,5b:00B00063,6:00B00066,d:006E006F,a:0073006D,1:00740065006C,1:0074006D,124f:006800700061,2:00610075,2:006F0076,b:00700061,1:006E0061,1:03BC0061,1:006D0061,1:006B0061,1:006B0062,1:006D0062,1:00670062,3:00700066,1:006E0066,1:03BC0066,4:0068007A,1:006B0068007A,1:006D0068007A,1:00670068007A,1:00740068007A,15:00700061,1:006B00700061,1:006D00700061,1:006700700061,8:00700076,1:006E0076,1:03BC0076,1:006D0076,1:006B0076,1:006D0076,1:00700077,1:006E0077,1:03BC0077,1:006D0077,1:006B0077,1:006D0077,1:006B03C9,1:006D03C9,2:00620071,3:00632215006B0067,1:0063006F002E,1:00640062,1:00670079,2:00680070,2:006B006B,1:006B006D,9:00700068,2:00700070006D,1:00700072,2:00730076,1:00770062,c723:00660066,1:00660069,1:0066006C,1:006600660069,1:00660066006C,1:00730074,1:00730074,d:05740576,1:05740565,1:0574056B,1:057E0576,1:0574056D\", bytes2);\n\nconst Table_C_ranges = createRangeTable(\"80-20,2a0-,39c,32,f71,18e,7f2-f,19-7,30-4,7-5,f81-b,5,a800-20ff,4d1-1f,110,fa-6,d174-7,2e84-,ffff-,ffff-,ffff-,ffff-,ffff-,ffff-,ffff-,ffff-,ffff-,ffff-,ffff-,ffff-,2,1f-5f,ff7f-20001\");\n\n\nfunction flatten(values: Array>): Array {\n return values.reduce((accum, value) => {\n value.forEach((value) => { accum.push(value); });\n return accum;\n }, [ ]);\n}\n\nexport function _nameprepTableA1(codepoint: number): boolean {\n return !!matchMap(codepoint, Table_A_1_ranges);\n}\n\nexport function _nameprepTableB2(codepoint: number): Array {\n let range = matchMap(codepoint, Table_B_2_ranges);\n if (range) { return [ codepoint + range.s ]; }\n\n let codes = Table_B_2_lut_abs[codepoint];\n if (codes) { return codes; }\n\n let shift = Table_B_2_lut_rel[codepoint];\n if (shift) { return [ codepoint + shift[0] ]; }\n\n let complex = Table_B_2_complex[codepoint];\n if (complex) { return complex; }\n\n return null;\n}\n\nexport function _nameprepTableC(codepoint: number): boolean {\n return !!matchMap(codepoint, Table_C_ranges);\n}\n\nexport function nameprep(value: string): string {\n\n // This allows platforms with incomplete normalize to bypass\n // it for very basic names which the built-in toLowerCase\n // will certainly handle correctly\n if (value.match(/^[a-z0-9-]*$/i) && value.length <= 59) { return value.toLowerCase(); }\n\n // Get the code points (keeping the current normalization)\n let codes = toUtf8CodePoints(value);\n\n codes = flatten(codes.map((code) => {\n // Substitute Table B.1 (Maps to Nothing)\n if (Table_B_1_flags.indexOf(code) >= 0) { return [ ]; }\n if (code >= 0xfe00 && code <= 0xfe0f) { return [ ]; }\n\n // Substitute Table B.2 (Case Folding)\n let codesTableB2 = _nameprepTableB2(code);\n if (codesTableB2) { return codesTableB2; }\n\n // No Substitution\n return [ code ];\n }));\n\n // Normalize using form KC\n codes = toUtf8CodePoints(_toUtf8String(codes), UnicodeNormalizationForm.NFKC);\n\n // Prohibit Tables C.1.2, C.2.2, C.3, C.4, C.5, C.6, C.7, C.8, C.9\n codes.forEach((code) => {\n if (_nameprepTableC(code)) {\n throw new Error(\"STRINGPREP_CONTAINS_PROHIBITED\");\n }\n });\n\n // Prohibit Unassigned Code Points (Table A.1)\n codes.forEach((code) => {\n if (_nameprepTableA1(code)) {\n throw new Error(\"STRINGPREP_CONTAINS_UNASSIGNED\");\n }\n });\n\n // IDNA extras\n let name = _toUtf8String(codes);\n\n // IDNA: 4.2.3.1\n if (name.substring(0, 1) === \"-\" || name.substring(2, 4) === \"--\" || name.substring(name.length - 1) === \"-\") {\n throw new Error(\"invalid hyphen\");\n }\n\n return name;\n}\n\n", "\"use strict\";\n\nimport { formatBytes32String, parseBytes32String } from \"./bytes32\";\nimport { nameprep } from \"./idna\";\nimport { _toEscapedUtf8String, toUtf8Bytes, toUtf8CodePoints, toUtf8String, UnicodeNormalizationForm, Utf8ErrorFunc, Utf8ErrorFuncs, Utf8ErrorReason } from \"./utf8\";\n\nexport {\n _toEscapedUtf8String,\n toUtf8Bytes,\n toUtf8CodePoints,\n toUtf8String,\n\n Utf8ErrorFunc,\n Utf8ErrorFuncs,\n Utf8ErrorReason,\n\n UnicodeNormalizationForm,\n\n formatBytes32String,\n parseBytes32String,\n\n nameprep\n}\n", "\"use strict\";\n\nimport { toUtf8Bytes, toUtf8String } from \"@ethersproject/strings\";\n\nimport { Reader, Writer } from \"./abstract-coder\";\nimport { DynamicBytesCoder } from \"./bytes\";\n\nexport class StringCoder extends DynamicBytesCoder {\n\n constructor(localName: string) {\n super(\"string\", localName);\n }\n\n defaultValue(): string {\n return \"\";\n }\n\n encode(writer: Writer, value: any): number {\n return super.encode(writer, toUtf8Bytes(value));\n }\n\n decode(reader: Reader): any {\n return toUtf8String(super.decode(reader));\n }\n}\n", "\"use strict\";\n\nimport { Coder, Reader, Writer } from \"./abstract-coder\";\nimport { pack, unpack } from \"./array\";\n\nexport class TupleCoder extends Coder {\n readonly coders: Array;\n\n constructor(coders: Array, localName: string) {\n let dynamic = false;\n const types: Array = [];\n coders.forEach((coder) => {\n if (coder.dynamic) { dynamic = true; }\n types.push(coder.type);\n });\n const type = (\"tuple(\" + types.join(\",\") + \")\");\n\n super(\"tuple\", type, localName, dynamic);\n this.coders = coders;\n }\n\n defaultValue(): any {\n const values: any = [ ];\n this.coders.forEach((coder) => {\n values.push(coder.defaultValue());\n });\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]) { accum[name] = 0; }\n accum[name]++;\n }\n return accum;\n }, <{ [ name: string ]: number }>{ });\n\n // Add named values\n this.coders.forEach((coder: Coder, index: number) => {\n let name = coder.localName;\n if (!name || uniqueNames[name] !== 1) { return; }\n\n if (name === \"length\") { name = \"_length\"; }\n\n if (values[name] != null) { return; }\n\n values[name] = values[index];\n });\n\n return Object.freeze(values);\n }\n\n encode(writer: Writer, value: Array | { [ name: string ]: any }): number {\n return pack(writer, this.coders, value);\n }\n\n decode(reader: Reader): any {\n return reader.coerce(this.name, unpack(reader, this.coders));\n }\n}\n\n", "\"use strict\";\n\n// See: https://github.com/ethereum/wiki/wiki/Ethereum-Contract-ABI\n\nimport { arrayify, BytesLike } from \"@ethersproject/bytes\";\nimport { defineReadOnly } from \"@ethersproject/properties\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\nimport { Coder, Reader, Result, Writer } from \"./coders/abstract-coder\";\nimport { AddressCoder } from \"./coders/address\";\nimport { ArrayCoder } from \"./coders/array\";\nimport { BooleanCoder } from \"./coders/boolean\";\nimport { BytesCoder } from \"./coders/bytes\";\nimport { FixedBytesCoder } from \"./coders/fixed-bytes\";\nimport { NullCoder } from \"./coders/null\";\nimport { NumberCoder } from \"./coders/number\";\nimport { StringCoder } from \"./coders/string\";\nimport { TupleCoder } from \"./coders/tuple\";\n\nimport { ParamType } from \"./fragments\";\n\n\nconst paramTypeBytes = new RegExp(/^bytes([0-9]*)$/);\nconst paramTypeNumber = new RegExp(/^(u?int)([0-9]*)$/);\n\n\nexport type CoerceFunc = (type: string, value: any) => any;\n\nexport class AbiCoder {\n readonly coerceFunc: CoerceFunc;\n\n constructor(coerceFunc?: CoerceFunc) {\n defineReadOnly(this, \"coerceFunc\", coerceFunc || null);\n }\n\n _getCoder(param: ParamType): Coder {\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 \"array\":\n return new ArrayCoder(this._getCoder(param.arrayChildren), param.arrayLength, param.name);\n case \"tuple\":\n return new TupleCoder((param.components || []).map((component) => {\n return this._getCoder(component);\n }), param.name);\n case \"\":\n return new NullCoder(param.name);\n }\n\n // u?int[0-9]*\n let match = param.type.match(paramTypeNumber);\n if (match) {\n let size = parseInt(match[2] || \"256\");\n if (size === 0 || size > 256 || (size % 8) !== 0) {\n logger.throwArgumentError(\"invalid \" + match[1] + \" bit length\", \"param\", param);\n }\n return new NumberCoder(size / 8, (match[1] === \"int\"), param.name);\n }\n\n // bytes[0-9]+\n match = param.type.match(paramTypeBytes);\n if (match) {\n let size = parseInt(match[1]);\n if (size === 0 || size > 32) {\n logger.throwArgumentError(\"invalid bytes length\", \"param\", param);\n }\n return new FixedBytesCoder(size, param.name);\n }\n\n return logger.throwArgumentError(\"invalid type\", \"type\", param.type);\n }\n\n _getWordSize(): number { return 32; }\n\n _getReader(data: Uint8Array, allowLoose?: boolean): Reader {\n return new Reader(data, this._getWordSize(), this.coerceFunc, allowLoose);\n }\n\n _getWriter(): Writer {\n return new Writer(this._getWordSize());\n }\n\n getDefaultValue(types: ReadonlyArray): Result {\n const coders: Array = types.map((type) => this._getCoder(ParamType.from(type)));\n const coder = new TupleCoder(coders, \"_\");\n return coder.defaultValue();\n }\n\n encode(types: ReadonlyArray, values: ReadonlyArray): string {\n if (types.length !== values.length) {\n logger.throwError(\"types/values length mismatch\", Logger.errors.INVALID_ARGUMENT, {\n count: { types: types.length, values: values.length },\n value: { types: types, values: values }\n });\n }\n\n const coders = types.map((type) => this._getCoder(ParamType.from(type)));\n const coder = (new TupleCoder(coders, \"_\"));\n\n const writer = this._getWriter();\n coder.encode(writer, values);\n return writer.data;\n }\n\n decode(types: ReadonlyArray, data: BytesLike, loose?: boolean): Result {\n const coders: Array = types.map((type) => this._getCoder(ParamType.from(type)));\n const coder = new TupleCoder(coders, \"_\");\n return coder.decode(this._getReader(arrayify(data), loose));\n }\n}\n\nexport const defaultAbiCoder: AbiCoder = new AbiCoder();\n\n", "import { keccak256 } from \"@ethersproject/keccak256\";\nimport { toUtf8Bytes } from \"@ethersproject/strings\";\n\nexport function id(text: string): string {\n return keccak256(toUtf8Bytes(text));\n}\n", "export const version = \"hash/5.7.0\";\n", "\"use strict\";\n\nimport { arrayify, BytesLike } from \"@ethersproject/bytes\";\n\n\nexport function decode(textData: string): Uint8Array {\n return arrayify(new Uint8Array(Buffer.from(textData, \"base64\")));\n};\n\nexport function encode(data: BytesLike): string {\n return Buffer.from(arrayify(data)).toString(\"base64\");\n}\n", "\"use strict\";\n\nexport { decode, encode } from \"./base64\";\n", "/**\n * MIT License\n *\n * Copyright (c) 2021 Andrew Raffensperger\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n *\n * This is a near carbon-copy of the original source (link below) with the\n * TypeScript typings added and a few tweaks to make it ES3-compatible.\n *\n * See: https://github.com/adraffy/ens-normalize.js\n */\n\nexport type Numbers = Uint8Array | Array;\nexport type NextFunc = (...args: Array) => number;\n\n// https://github.com/behnammodi/polyfill/blob/master/array.polyfill.js\nfunction flat(array: Array, depth?: number): Array {\n if (depth == null) { depth = 1; }\n const result: Array = [];\n\n const forEach = result.forEach;\n\n const flatDeep = function (arr: Array, depth: number) {\n forEach.call(arr, function (val: any) {\n if (depth > 0 && Array.isArray(val)) {\n flatDeep(val, depth - 1);\n } else {\n result.push(val);\n }\n });\n };\n\n flatDeep(array, depth);\n return result;\n}\n\nfunction fromEntries(array: Array<[T, U]>): Record {\n const result: Record = >{ };\n for (let i = 0; i < array.length; i++) {\n const value = array[i];\n result[value[0]] = value[1];\n }\n return result;\n}\n\nexport function decode_arithmetic(bytes: Numbers): Array {\n\tlet pos = 0;\n\tfunction u16() { return (bytes[pos++] << 8) | bytes[pos++]; }\n\t\n\t// decode the frequency table\n\tlet symbol_count = u16();\n\tlet total = 1;\n\tlet acc = [0, 1]; // first symbol has frequency 1\n\tfor (let i = 1; i < symbol_count; i++) {\n\t\tacc.push(total += u16());\n\t}\n\n\t// skip the sized-payload that the last 3 symbols index into\n\tlet skip = u16();\n\tlet pos_payload = pos;\n\tpos += skip;\n\n\tlet read_width = 0;\n\tlet read_buffer = 0; \n\tfunction read_bit() {\n\t\tif (read_width == 0) {\n\t\t\t// this will read beyond end of buffer\n\t\t\t// but (undefined|0) => zero pad\n\t\t\tread_buffer = (read_buffer << 8) | bytes[pos++];\n\t\t\tread_width = 8;\n\t\t}\n\t\treturn (read_buffer >> --read_width) & 1;\n\t}\n\n\tconst N = 31;\n\tconst FULL = 2**N;\n\tconst HALF = FULL >>> 1;\n\tconst QRTR = HALF >> 1;\n\tconst MASK = FULL - 1;\n\n\t// fill register\n\tlet register = 0;\n\tfor (let i = 0; i < N; i++) register = (register << 1) | read_bit();\n\n\tlet symbols = [];\n\tlet low = 0;\n\tlet range = FULL; // treat like a float\n\twhile (true) {\n\t\tlet value = Math.floor((((register - low + 1) * total) - 1) / range);\n\t\tlet start = 0;\n\t\tlet end = symbol_count;\n\t\twhile (end - start > 1) { // binary search\n\t\t\tlet mid = (start + end) >>> 1;\n\t\t\tif (value < acc[mid]) {\n\t\t\t\tend = mid;\n\t\t\t} else {\n\t\t\t\tstart = mid;\n\t\t\t}\n\t\t}\n\t\tif (start == 0) break; // first symbol is end mark\n\t\tsymbols.push(start);\n\t\tlet a = low + Math.floor(range * acc[start] / total);\n\t\tlet b = low + Math.floor(range * acc[start+1] / total) - 1\n\t\twhile (((a ^ b) & HALF) == 0) {\n\t\t\tregister = (register << 1) & MASK | read_bit();\n\t\t\ta = (a << 1) & MASK;\n\t\t\tb = (b << 1) & MASK | 1;\n\t\t}\n\t\twhile (a & ~b & QRTR) {\n\t\t\tregister = (register & HALF) | ((register << 1) & (MASK >>> 1)) | read_bit();\n\t\t\ta = (a << 1) ^ HALF;\n\t\t\tb = ((b ^ HALF) << 1) | HALF | 1;\n\t\t}\n\t\tlow = a;\n\t\trange = 1 + b - a;\n\t}\n\tlet offset = symbol_count - 4;\n\treturn symbols.map(x => { // index into payload\n\t\tswitch (x - offset) {\n\t\t\tcase 3: return offset + 0x10100 + ((bytes[pos_payload++] << 16) | (bytes[pos_payload++] << 8) | bytes[pos_payload++]);\n\t\t\tcase 2: return offset + 0x100 + ((bytes[pos_payload++] << 8) | bytes[pos_payload++]);\n\t\t\tcase 1: return offset + bytes[pos_payload++];\n\t\t\tdefault: return x - 1;\n\t\t}\n\t});\n}\t\n\n\n// returns an iterator which returns the next symbol\nexport function read_payload(v: Numbers): NextFunc {\n\tlet pos = 0;\n\treturn () => v[pos++];\n}\nexport function read_compressed_payload(bytes: Numbers): NextFunc {\n\treturn read_payload(decode_arithmetic(bytes));\n}\n\n// eg. [0,1,2,3...] => [0,-1,1,-2,...]\nexport function signed(i: number): number { \n\treturn (i & 1) ? (~i >> 1) : (i >> 1);\n}\n\nfunction read_counts(n: number, next: NextFunc): Array {\n\tlet v = Array(n);\n\tfor (let i = 0; i < n; i++) v[i] = 1 + next();\n\treturn v;\n}\n\nfunction read_ascending(n: number, next: NextFunc): Array {\n\tlet v = Array(n);\n\tfor (let i = 0, x = -1; i < n; i++) v[i] = x += 1 + next();\n\treturn v;\n}\n\nfunction read_deltas(n: number, next: NextFunc): Array {\n\tlet v = Array(n);\n\tfor (let i = 0, x = 0; i < n; i++) v[i] = x += signed(next());\n\treturn v;\n}\n\nexport function read_member_array(next: NextFunc, lookup?: Record) {\n let v = read_ascending(next(), next);\n let n = next();\n let vX = read_ascending(n, next);\n let vN = read_counts(n, next);\n for (let i = 0; i < n; i++) {\n for (let j = 0; j < vN[i]; j++) {\n v.push(vX[i] + j);\n }\n }\n return lookup ? v.map(x => lookup[x]) : v;\n}\n\n// returns array of \n// [x, ys] => single replacement rule\n// [x, ys, n, dx, dx] => linear map\nexport function read_mapped_map(next: NextFunc): Record> {\n\tlet ret = [];\n\twhile (true) {\n\t\tlet w = next();\n\t\tif (w == 0) break;\n\t\tret.push(read_linear_table(w, next));\n\t}\n\twhile (true) {\n\t\tlet w = next() - 1;\n\t\tif (w < 0) break;\n\t\tret.push(read_replacement_table(w, next));\n\t}\n\treturn fromEntries>(flat(ret));\n}\n\nexport function read_zero_terminated_array(next: NextFunc): Array {\n\tlet v = [];\n\twhile (true) {\n\t\tlet i = next();\n\t\tif (i == 0) break;\n\t\tv.push(i);\n\t}\n\treturn v;\n}\n\nfunction read_transposed(n: number, w: number, next: NextFunc): Array> {\n let m = Array(n).fill(undefined).map(() => []);\n for (let i = 0; i < w; i++) {\n read_deltas(n, next).forEach((x, j) => m[j].push(x));\n }\n return m;\n}\n\n\nfunction read_linear_table(w: number, next: NextFunc): Array>> {\n\tlet dx = 1 + next();\n\tlet dy = next();\n\tlet vN = read_zero_terminated_array(next);\n\tlet m = read_transposed(vN.length, 1+w, next);\n\treturn flat(m.map((v, i) => {\n\t const x = v[0], ys = v.slice(1);\n\t\t//let [x, ...ys] = v;\n\t\t//return Array(vN[i]).fill().map((_, j) => {\n\t\treturn Array(vN[i]).fill(undefined).map((_, j) => {\n\t\t\tlet j_dy = j * dy;\n\t\t\treturn [x + j * dx, ys.map(y => y + j_dy)];\n\t\t});\n\t}));\n}\n\nfunction read_replacement_table(w: number, next: NextFunc): Array<[ number, Array ]> {\n\tlet n = 1 + next();\n\tlet m = read_transposed(n, 1+w, next);\n\treturn m.map(v => [v[0], v.slice(1)]);\n}\n\nexport type Branch = {\n set: Set;\n node: Node;\n};\n\nexport type Node = {\n branches: Array;\n valid: number;\n fe0f: boolean;\n save: boolean;\n check: boolean;\n};\n\nexport function read_emoji_trie(next: NextFunc): Node {\n\tlet sorted = read_member_array(next).sort((a, b) => a - b);\n\treturn read();\n\tfunction read(): Node {\n\t\tlet branches = [];\n\t\twhile (true) {\n\t\t\tlet keys = read_member_array(next, sorted);\n\t\t\tif (keys.length == 0) break;\n\t\t\tbranches.push({set: new Set(keys), node: read()});\n\t\t}\n branches.sort((a, b) => b.set.size - a.set.size); // sort by likelihood\n \t\tlet temp = next();\n \t\tlet valid = temp % 3;\n \t\ttemp = (temp / 3)|0;\n \t\tlet fe0f = !!(temp & 1);\n \t\ttemp >>= 1;\n \t\tlet save = temp == 1;\n \t\tlet check = temp == 2;\n \t\treturn {branches, valid, fe0f, save, check};\n\t}\n}\n", "/**\n * MIT License\n *\n * Copyright (c) 2021 Andrew Raffensperger\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n *\n * This is a near carbon-copy of the original source (link below) with the\n * TypeScript typings added and a few tweaks to make it ES3-compatible.\n *\n * See: https://github.com/adraffy/ens-normalize.js\n */\n\nimport { decode } from \"@ethersproject/base64\";\n\nimport {read_compressed_payload} from './decoder.js';\n\nexport function getData(): () => number {\n return read_compressed_payload(decode('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'));\n}\n\n", "/**\n * MIT License\n *\n * Copyright (c) 2021 Andrew Raffensperger\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n *\n * This is a near carbon-copy of the original source (link below) with the\n * TypeScript typings added and a few tweaks to make it ES3-compatible.\n *\n * See: https://github.com/adraffy/ens-normalize.js\n */\n\nimport { toUtf8CodePoints } from \"@ethersproject/strings\";\n\nimport { getData } from './include.js';\nconst r = getData();\n\nimport {read_member_array, read_mapped_map, read_emoji_trie} from './decoder.js';\n\n// @TODO: This should be lazily loaded\n\nconst VALID = new Set(read_member_array(r));\nconst IGNORED = new Set(read_member_array(r));\nconst MAPPED = read_mapped_map(r);\nconst EMOJI_ROOT = read_emoji_trie(r);\n//const NFC_CHECK = new Set(read_member_array(r, Array.from(VALID.values()).sort((a, b) => a - b)));\n\n//const STOP = 0x2E;\nconst HYPHEN = 0x2D;\nconst UNDERSCORE = 0x5F;\n\nfunction explode_cp(name: string): Array {\n return toUtf8CodePoints(name);\n}\n\nfunction filter_fe0f(cps: Array): Array {\n return cps.filter(cp => cp != 0xFE0F);\n}\n\nexport function ens_normalize_post_check(name: string): string {\n\tfor (let label of name.split('.')) {\n\t\tlet cps = explode_cp(label);\n\t\ttry {\n\t\t\tfor (let i = cps.lastIndexOf(UNDERSCORE) - 1; i >= 0; i--) {\n\t\t\t\tif (cps[i] !== UNDERSCORE) {\n\t\t\t\t\tthrow new Error(`underscore only allowed at start`);\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (cps.length >= 4 && cps.every(cp => cp < 0x80) && cps[2] === HYPHEN && cps[3] === HYPHEN) {\n\t\t\t\tthrow new Error(`invalid label extension`);\n\t\t\t}\n\t\t} catch (err) {\n\t\t\tthrow new Error(`Invalid label \"${label}\": ${err.message}`);\n\t\t}\n\t}\n\treturn name;\n}\n\nexport function ens_normalize(name: string): string {\n\treturn ens_normalize_post_check(normalize(name, filter_fe0f));\n}\n\nfunction normalize(name: string, emoji_filter: (a: Array) => Array): string {\n\tlet input = explode_cp(name).reverse(); // flip for pop\n\tlet output = [];\n\twhile (input.length) {\t\t\n\t\tlet emoji = consume_emoji_reversed(input);\n\t\tif (emoji) {\n\t\t\toutput.push(...emoji_filter(emoji));\n\t\t\tcontinue;\n\t\t}\n\t\tlet cp = input.pop();\n\t\tif (VALID.has(cp)) {\n\t\t\toutput.push(cp);\n\t\t\tcontinue;\n\t\t} \n\t\tif (IGNORED.has(cp)) {\n\t\t\tcontinue;\n\t\t}\n\t\tlet cps = MAPPED[cp];\n\t\tif (cps) {\n\t\t\toutput.push(...cps);\n\t\t\tcontinue;\n\t\t}\n\t\tthrow new Error(`Disallowed codepoint: 0x${cp.toString(16).toUpperCase()}`);\n\t}\n\treturn ens_normalize_post_check(nfc(String.fromCodePoint(...output)));\n}\n\nfunction nfc(s: string): string {\n return s.normalize('NFC');\n}\n\nfunction consume_emoji_reversed(cps: Array, eaten?: Array) {\n\tlet node = EMOJI_ROOT;\n\tlet emoji;\n\tlet saved;\n\tlet stack = [];\n\tlet pos = cps.length;\n\tif (eaten) eaten.length = 0; // clear input buffer (if needed)\n\twhile (pos) {\n\t\tlet cp = cps[--pos];\n\t\tnode = node.branches.find(x => x.set.has(cp))?.node;\n\t\tif (!node) break;\n\t\tif (node.save) { // remember\n\t\t\tsaved = cp;\n\t\t} else if (node.check) { // check exclusion\n\t\t\tif (cp === saved) break;\n\t\t}\n\t\tstack.push(cp);\n\t\tif (node.fe0f) {\n\t\t\tstack.push(0xFE0F);\n\t\t\tif (pos > 0 && cps[pos - 1] == 0xFE0F) pos--; // consume optional FE0F\n\t\t}\n\t\tif (node.valid) { // this is a valid emoji (so far)\n\t\t\temoji = stack.slice(); // copy stack\n\t\t\tif (node.valid == 2) emoji.splice(1, 1); // delete FE0F at position 1 (RGI ZWJ don't follow spec!)\n\t\t\tif (eaten) eaten.push(...cps.slice(pos).reverse()); // copy input (if needed)\n\t\t\tcps.length = pos; // truncate\n\t\t}\n\t}\n\treturn emoji;\n}\n", "import { concat, hexlify } from \"@ethersproject/bytes\";\nimport { toUtf8Bytes, toUtf8String } from \"@ethersproject/strings\";\nimport { keccak256 } from \"@ethersproject/keccak256\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\nimport { ens_normalize } from \"./ens-normalize/lib\";\n\nconst Zeros = new Uint8Array(32);\nZeros.fill(0);\n\nfunction checkComponent(comp: Uint8Array): Uint8Array {\n if (comp.length === 0) { throw new Error(\"invalid ENS name; empty component\"); }\n return comp;\n}\n\nfunction ensNameSplit(name: string): Array {\n const bytes = toUtf8Bytes(ens_normalize(name));\n const comps: Array = [ ];\n\n if (name.length === 0) { return comps; }\n\n let last = 0;\n for (let i = 0; i < bytes.length; i++) {\n const d = bytes[i];\n\n // A separator (i.e. \".\"); copy this component\n if (d === 0x2e) {\n comps.push(checkComponent(bytes.slice(last, i)));\n last = i + 1;\n }\n }\n\n // There was a stray separator at the end of the name\n if (last >= bytes.length) { throw new Error(\"invalid ENS name; empty component\"); }\n\n comps.push(checkComponent(bytes.slice(last)));\n return comps;\n}\n\nexport function ensNormalize(name: string): string {\n return ensNameSplit(name).map((comp) => toUtf8String(comp)).join(\".\");\n}\n\nexport function isValidName(name: string): boolean {\n try {\n return (ensNameSplit(name).length !== 0);\n } catch (error) { }\n return false;\n}\n\nexport function namehash(name: string): string {\n /* istanbul ignore if */\n if (typeof(name) !== \"string\") {\n logger.throwArgumentError(\"invalid ENS name; not a string\", \"name\", name);\n }\n\n let result: string | Uint8Array = Zeros;\n\n const comps = ensNameSplit(name);\n while (comps.length) {\n result = keccak256(concat([result, keccak256(comps.pop())]));\n }\n\n return hexlify(result);\n}\n\nexport function dnsEncode(name: string): string {\n return hexlify(concat(ensNameSplit(name).map((comp) => {\n // DNS does not allow components over 63 bytes in length\n if (comp.length > 63) {\n throw new Error(\"invalid DNS encoded entry; length exceeds 63 bytes\");\n }\n\n const bytes = new Uint8Array(comp.length + 1);\n bytes.set(comp, 1);\n bytes[0] = bytes.length - 1;\n return bytes;\n\n }))) + \"00\";\n}\n", "import { Bytes, concat } from \"@ethersproject/bytes\";\nimport { keccak256 } from \"@ethersproject/keccak256\";\nimport { toUtf8Bytes } from \"@ethersproject/strings\";\n\nexport const messagePrefix = \"\\x19Ethereum Signed Message:\\n\";\n\nexport function hashMessage(message: Bytes | string): string {\n if (typeof(message) === \"string\") { message = toUtf8Bytes(message); }\n return keccak256(concat([\n toUtf8Bytes(messagePrefix),\n toUtf8Bytes(String(message.length)),\n message\n ]));\n}\n\n", "import { TypedDataDomain, TypedDataField } from \"@ethersproject/abstract-signer\";\nimport { getAddress } from \"@ethersproject/address\";\nimport { BigNumber, BigNumberish } from \"@ethersproject/bignumber\";\nimport { arrayify, BytesLike, hexConcat, hexlify, hexZeroPad, isHexString } from \"@ethersproject/bytes\";\nimport { keccak256 } from \"@ethersproject/keccak256\";\nimport { deepCopy, defineReadOnly, shallowCopy } from \"@ethersproject/properties\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\nimport { id } from \"./id\";\n\nconst padding = new Uint8Array(32);\npadding.fill(0);\n\nconst NegativeOne: BigNumber = BigNumber.from(-1);\nconst Zero: BigNumber = BigNumber.from(0);\nconst One: BigNumber = BigNumber.from(1);\nconst MaxUint256: BigNumber = BigNumber.from(\"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\");\n\nfunction hexPadRight(value: BytesLike) {\n const bytes = arrayify(value);\n const padOffset = bytes.length % 32\n if (padOffset) {\n return hexConcat([ bytes, padding.slice(padOffset) ]);\n }\n return hexlify(bytes);\n}\n\nconst hexTrue = hexZeroPad(One.toHexString(), 32);\nconst hexFalse = hexZeroPad(Zero.toHexString(), 32);\n\nconst domainFieldTypes: Record = {\n name: \"string\",\n version: \"string\",\n chainId: \"uint256\",\n verifyingContract: \"address\",\n salt: \"bytes32\"\n};\n\nconst domainFieldNames: Array = [\n \"name\", \"version\", \"chainId\", \"verifyingContract\", \"salt\"\n];\n\nfunction checkString(key: string): (value: any) => string {\n return function (value: any){\n if (typeof(value) !== \"string\") {\n logger.throwArgumentError(`invalid domain value for ${ JSON.stringify(key) }`, `domain.${ key }`, value);\n }\n return value;\n }\n}\n\nconst domainChecks: Record any> = {\n name: checkString(\"name\"),\n version: checkString(\"version\"),\n chainId: function(value: any) {\n try {\n return BigNumber.from(value).toString()\n } catch (error) { }\n return logger.throwArgumentError(`invalid domain value for \"chainId\"`, \"domain.chainId\", value);\n },\n verifyingContract: function(value: any) {\n try {\n return getAddress(value).toLowerCase();\n } catch (error) { }\n return logger.throwArgumentError(`invalid domain value \"verifyingContract\"`, \"domain.verifyingContract\", value);\n },\n salt: function(value: any) {\n try {\n const bytes = arrayify(value);\n if (bytes.length !== 32) { throw new Error(\"bad length\"); }\n return hexlify(bytes);\n } catch (error) { }\n return logger.throwArgumentError(`invalid domain value \"salt\"`, \"domain.salt\", value);\n }\n}\n\nfunction getBaseEncoder(type: string): (value: any) => string {\n // intXX and uintXX\n {\n const match = type.match(/^(u?)int(\\d*)$/);\n if (match) {\n const signed = (match[1] === \"\");\n\n const width = parseInt(match[2] || \"256\");\n if (width % 8 !== 0 || width > 256 || (match[2] && match[2] !== String(width))) {\n logger.throwArgumentError(\"invalid numeric width\", \"type\", type);\n }\n\n const boundsUpper = MaxUint256.mask(signed ? (width - 1): width);\n const boundsLower = signed ? boundsUpper.add(One).mul(NegativeOne): Zero;\n\n return function(value: BigNumberish) {\n const v = BigNumber.from(value);\n\n if (v.lt(boundsLower) || v.gt(boundsUpper)) {\n logger.throwArgumentError(`value out-of-bounds for ${ type }`, \"value\", value);\n }\n\n return hexZeroPad(v.toTwos(256).toHexString(), 32);\n };\n }\n }\n\n // bytesXX\n {\n const match = type.match(/^bytes(\\d+)$/);\n if (match) {\n const width = parseInt(match[1]);\n if (width === 0 || width > 32 || match[1] !== String(width)) {\n logger.throwArgumentError(\"invalid bytes width\", \"type\", type);\n }\n\n return function(value: BytesLike) {\n const bytes = arrayify(value);\n if (bytes.length !== width) {\n logger.throwArgumentError(`invalid length for ${ type }`, \"value\", value);\n }\n return hexPadRight(value);\n };\n }\n }\n\n switch (type) {\n case \"address\": return function(value: string) {\n return hexZeroPad(getAddress(value), 32);\n };\n case \"bool\": return function(value: boolean) {\n return ((!value) ? hexFalse: hexTrue);\n };\n case \"bytes\": return function(value: BytesLike) {\n return keccak256(value);\n };\n case \"string\": return function(value: string) {\n return id(value);\n };\n }\n\n return null;\n}\n\nfunction encodeType(name: string, fields: Array): string {\n return `${ name }(${ fields.map(({ name, type }) => (type + \" \" + name)).join(\",\") })`;\n}\n\nexport class TypedDataEncoder {\n readonly primaryType: string;\n readonly types: Record>;\n\n readonly _encoderCache: Record string>;\n readonly _types: Record;\n\n constructor(types: Record>) {\n defineReadOnly(this, \"types\", Object.freeze(deepCopy(types)));\n\n defineReadOnly(this, \"_encoderCache\", { });\n defineReadOnly(this, \"_types\", { });\n\n // Link struct types to their direct child structs\n const links: Record> = { };\n\n // Link structs to structs which contain them as a child\n const parents: Record> = { };\n\n // Link all subtypes within a given struct\n const subtypes: Record> = { };\n\n Object.keys(types).forEach((type) => {\n links[type] = { };\n parents[type] = [ ];\n subtypes[type] = { }\n });\n\n for (const name in types) {\n\n const uniqueNames: Record = { };\n\n types[name].forEach((field) => {\n\n // Check each field has a unique name\n if (uniqueNames[field.name]) {\n logger.throwArgumentError(`duplicate variable name ${ JSON.stringify(field.name) } in ${ JSON.stringify(name) }`, \"types\", types);\n }\n uniqueNames[field.name] = true;\n\n // Get the base type (drop any array specifiers)\n const baseType = field.type.match(/^([^\\x5b]*)(\\x5b|$)/)[1];\n if (baseType === name) {\n logger.throwArgumentError(`circular type reference to ${ JSON.stringify(baseType) }`, \"types\", types);\n }\n\n // Is this a base encoding type?\n const encoder = getBaseEncoder(baseType);\n if (encoder) { return ;}\n\n if (!parents[baseType]) {\n logger.throwArgumentError(`unknown type ${ JSON.stringify(baseType) }`, \"types\", types);\n }\n\n // Add linkage\n parents[baseType].push(name);\n links[name][baseType] = true;\n });\n }\n\n // Deduce the primary type\n const primaryTypes = Object.keys(parents).filter((n) => (parents[n].length === 0));\n\n if (primaryTypes.length === 0) {\n logger.throwArgumentError(\"missing primary type\", \"types\", types);\n } else if (primaryTypes.length > 1) {\n logger.throwArgumentError(`ambiguous primary types or unused types: ${ primaryTypes.map((t) => (JSON.stringify(t))).join(\", \") }`, \"types\", types);\n }\n\n defineReadOnly(this, \"primaryType\", primaryTypes[0]);\n\n // Check for circular type references\n function checkCircular(type: string, found: Record) {\n if (found[type]) {\n logger.throwArgumentError(`circular type reference to ${ JSON.stringify(type) }`, \"types\", types);\n }\n\n found[type] = true;\n\n Object.keys(links[type]).forEach((child) => {\n if (!parents[child]) { return; }\n\n // Recursively check children\n checkCircular(child, found);\n\n // Mark all ancestors as having this decendant\n Object.keys(found).forEach((subtype) => {\n subtypes[subtype][child] = true;\n });\n });\n\n delete found[type];\n }\n checkCircular(this.primaryType, { });\n\n // Compute each fully describe type\n for (const name in subtypes) {\n const st = Object.keys(subtypes[name]);\n st.sort();\n this._types[name] = encodeType(name, types[name]) + st.map((t) => encodeType(t, types[t])).join(\"\");\n }\n }\n\n getEncoder(type: string): (value: any) => string {\n let encoder = this._encoderCache[type];\n if (!encoder) {\n encoder = this._encoderCache[type] = this._getEncoder(type);\n }\n return encoder;\n }\n\n _getEncoder(type: string): (value: any) => string {\n\n // Basic encoder type (address, bool, uint256, etc)\n {\n const encoder = getBaseEncoder(type);\n if (encoder) { return encoder; }\n }\n\n // Array\n const match = type.match(/^(.*)(\\x5b(\\d*)\\x5d)$/);\n if (match) {\n const subtype = match[1];\n const subEncoder = this.getEncoder(subtype);\n const length = parseInt(match[3]);\n return (value: Array) => {\n if (length >= 0 && value.length !== length) {\n logger.throwArgumentError(\"array length mismatch; expected length ${ arrayLength }\", \"value\", value);\n }\n\n let result = value.map(subEncoder);\n if (this._types[subtype]) {\n result = result.map(keccak256);\n }\n\n return keccak256(hexConcat(result));\n };\n }\n\n // Struct\n const fields = this.types[type];\n if (fields) {\n const encodedType = id(this._types[type]);\n return (value: Record) => {\n const values = fields.map(({ name, type }) => {\n const result = this.getEncoder(type)(value[name]);\n if (this._types[type]) { return keccak256(result); }\n return result;\n });\n values.unshift(encodedType);\n return hexConcat(values);\n }\n }\n\n return logger.throwArgumentError(`unknown type: ${ type }`, \"type\", type);\n }\n\n encodeType(name: string): string {\n const result = this._types[name];\n if (!result) {\n logger.throwArgumentError(`unknown type: ${ JSON.stringify(name) }`, \"name\", name);\n }\n return result;\n }\n\n encodeData(type: string, value: any): string {\n return this.getEncoder(type)(value);\n }\n\n hashStruct(name: string, value: Record): string {\n return keccak256(this.encodeData(name, value));\n }\n\n encode(value: Record): string {\n return this.encodeData(this.primaryType, value);\n }\n\n hash(value: Record): string {\n return this.hashStruct(this.primaryType, value);\n }\n\n _visit(type: string, value: any, callback: (type: string, data: any) => any): any {\n // Basic encoder type (address, bool, uint256, etc)\n {\n const encoder = getBaseEncoder(type);\n if (encoder) { return callback(type, value); }\n }\n\n // Array\n const match = type.match(/^(.*)(\\x5b(\\d*)\\x5d)$/);\n if (match) {\n const subtype = match[1];\n const length = parseInt(match[3]);\n if (length >= 0 && value.length !== length) {\n logger.throwArgumentError(\"array length mismatch; expected length ${ arrayLength }\", \"value\", value);\n }\n return value.map((v: any) => this._visit(subtype, v, callback));\n }\n\n // Struct\n const fields = this.types[type];\n if (fields) {\n return fields.reduce((accum, { name, type }) => {\n accum[name] = this._visit(type, value[name], callback);\n return accum;\n }, >{});\n }\n\n return logger.throwArgumentError(`unknown type: ${ type }`, \"type\", type);\n }\n\n visit(value: Record, callback: (type: string, data: any) => any): any {\n return this._visit(this.primaryType, value, callback);\n }\n\n static from(types: Record>): TypedDataEncoder {\n return new TypedDataEncoder(types);\n }\n\n static getPrimaryType(types: Record>): string {\n return TypedDataEncoder.from(types).primaryType;\n }\n\n static hashStruct(name: string, types: Record>, value: Record): string {\n return TypedDataEncoder.from(types).hashStruct(name, value);\n }\n\n static hashDomain(domain: TypedDataDomain): string {\n const domainFields: Array = [ ];\n for (const name in domain) {\n const type = domainFieldTypes[name];\n if (!type) {\n logger.throwArgumentError(`invalid typed-data domain key: ${ JSON.stringify(name) }`, \"domain\", domain);\n }\n domainFields.push({ name, type });\n }\n\n domainFields.sort((a, b) => {\n return domainFieldNames.indexOf(a.name) - domainFieldNames.indexOf(b.name);\n });\n\n return TypedDataEncoder.hashStruct(\"EIP712Domain\", { EIP712Domain: domainFields }, domain);\n }\n\n static encode(domain: TypedDataDomain, types: Record>, value: Record): string {\n return hexConcat([\n \"0x1901\",\n TypedDataEncoder.hashDomain(domain),\n TypedDataEncoder.from(types).hash(value)\n ]);\n }\n\n static hash(domain: TypedDataDomain, types: Record>, value: Record): string {\n return keccak256(TypedDataEncoder.encode(domain, types, value));\n }\n\n // Replaces all address types with ENS names with their looked up address\n static async resolveNames(domain: TypedDataDomain, types: Record>, value: Record, resolveName: (name: string) => Promise): Promise<{ domain: TypedDataDomain, value: any }> {\n // Make a copy to isolate it from the object passed in\n domain = shallowCopy(domain);\n\n // Look up all ENS names\n const ensCache: Record = { };\n\n // Do we need to look up the domain's verifyingContract?\n if (domain.verifyingContract && !isHexString(domain.verifyingContract, 20)) {\n ensCache[domain.verifyingContract] = \"0x\";\n }\n\n // We are going to use the encoder to visit all the base values\n const encoder = TypedDataEncoder.from(types);\n\n // Get a list of all the addresses\n encoder.visit(value, (type: string, value: any) => {\n if (type === \"address\" && !isHexString(value, 20)) {\n ensCache[value] = \"0x\";\n }\n return value;\n });\n\n // Lookup each name\n for (const name in ensCache) {\n ensCache[name] = await resolveName(name);\n }\n\n // Replace the domain verifyingContract if needed\n if (domain.verifyingContract && ensCache[domain.verifyingContract]) {\n domain.verifyingContract = ensCache[domain.verifyingContract];\n }\n\n // Replace all ENS names with their address\n value = encoder.visit(value, (type: string, value: any) => {\n if (type === \"address\" && ensCache[value]) { return ensCache[value]; }\n return value;\n });\n\n return { domain, value };\n }\n\n static getPayload(domain: TypedDataDomain, types: Record>, value: Record): any {\n // Validate the domain fields\n TypedDataEncoder.hashDomain(domain);\n\n // Derive the EIP712Domain Struct reference type\n const domainValues: Record = { };\n const domainTypes: Array<{ name: string, type:string }> = [ ];\n\n domainFieldNames.forEach((name) => {\n const value = (domain)[name];\n if (value == null) { return; }\n domainValues[name] = domainChecks[name](value);\n domainTypes.push({ name, type: domainFieldTypes[name] });\n });\n\n const encoder = TypedDataEncoder.from(types);\n\n const typesWithDomain = shallowCopy(types);\n if (typesWithDomain.EIP712Domain) {\n logger.throwArgumentError(\"types must not contain EIP712Domain type\", \"types.EIP712Domain\", types);\n } else {\n typesWithDomain.EIP712Domain = domainTypes;\n }\n\n // Validate the data structures and types\n encoder.encode(value);\n\n return {\n types: typesWithDomain,\n domain: domainValues,\n primaryType: encoder.primaryType,\n message: encoder.visit(value, (type: string, value: any) => {\n\n // bytes\n if (type.match(/^bytes(\\d*)/)) {\n return hexlify(arrayify(value));\n }\n\n // uint or int\n if (type.match(/^u?int/)) {\n return BigNumber.from(value).toString();\n }\n\n switch (type) {\n case \"address\":\n return value.toLowerCase();\n case \"bool\":\n return !!value;\n case \"string\":\n if (typeof(value) !== \"string\") {\n logger.throwArgumentError(`invalid string`, \"value\", value);\n }\n return value;\n }\n\n return logger.throwArgumentError(\"unsupported type\", \"type\", type);\n })\n };\n }\n}\n\n", "\"use strict\";\n\nimport { id } from \"./id\";\nimport { dnsEncode, isValidName, namehash } from \"./namehash\";\nimport { hashMessage, messagePrefix } from \"./message\";\n\nimport { ensNormalize } from \"./namehash\";\n\nimport { TypedDataEncoder as _TypedDataEncoder } from \"./typed-data\";\n\nexport {\n id,\n\n dnsEncode,\n namehash,\n isValidName,\n\n ensNormalize,\n\n messagePrefix,\n hashMessage,\n\n _TypedDataEncoder,\n}\n", "\"use strict\";\n\nimport { getAddress } from \"@ethersproject/address\";\nimport { BigNumber, BigNumberish } from \"@ethersproject/bignumber\";\nimport { arrayify, BytesLike, concat, hexDataSlice, hexlify, hexZeroPad, isHexString } from \"@ethersproject/bytes\";\nimport { id } from \"@ethersproject/hash\";\nimport { keccak256 } from \"@ethersproject/keccak256\"\nimport { defineReadOnly, Description, getStatic } from \"@ethersproject/properties\";\n\nimport { AbiCoder, defaultAbiCoder } from \"./abi-coder\";\nimport { checkResultErrors, Result } from \"./coders/abstract-coder\";\nimport { ConstructorFragment, ErrorFragment, EventFragment, FormatTypes, Fragment, FunctionFragment, JsonFragment, ParamType } from \"./fragments\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\nexport { checkResultErrors, Result };\n\nexport class LogDescription extends Description {\n readonly eventFragment: EventFragment;\n readonly name: string;\n readonly signature: string;\n readonly topic: string;\n readonly args: Result\n}\n\nexport class TransactionDescription extends Description {\n readonly functionFragment: FunctionFragment;\n readonly name: string;\n readonly args: Result;\n readonly signature: string;\n readonly sighash: string;\n readonly value: BigNumber;\n}\n\nexport class ErrorDescription extends Description {\n readonly errorFragment: ErrorFragment;\n readonly name: string;\n readonly args: Result;\n readonly signature: string;\n readonly sighash: string;\n}\n\nexport class Indexed extends Description {\n readonly hash: string;\n readonly _isIndexed: boolean;\n\n static isIndexed(value: any): value is Indexed {\n return !!(value && value._isIndexed);\n }\n}\n\nconst BuiltinErrors: Record, name: string, reason?: boolean }> = {\n \"0x08c379a0\": { signature: \"Error(string)\", name: \"Error\", inputs: [ \"string\" ], reason: true },\n \"0x4e487b71\": { signature: \"Panic(uint256)\", name: \"Panic\", inputs: [ \"uint256\" ] }\n}\n\nfunction wrapAccessError(property: string, error: Error): Error {\n const wrap = new Error(`deferred error during ABI decoding triggered accessing ${ property }`);\n (wrap).error = error;\n return wrap;\n}\n\n/*\nfunction checkNames(fragment: Fragment, type: \"input\" | \"output\", params: Array): void {\n params.reduce((accum, param) => {\n if (param.name) {\n if (accum[param.name]) {\n logger.throwArgumentError(`duplicate ${ type } parameter ${ JSON.stringify(param.name) } in ${ fragment.format(\"full\") }`, \"fragment\", fragment);\n }\n accum[param.name] = true;\n }\n return accum;\n }, <{ [ name: string ]: boolean }>{ });\n}\n*/\nexport class Interface {\n readonly fragments: ReadonlyArray;\n\n readonly errors: { [ name: string ]: ErrorFragment };\n readonly events: { [ name: string ]: EventFragment };\n readonly functions: { [ name: string ]: FunctionFragment };\n readonly structs: { [ name: string ]: any };\n\n readonly deploy: ConstructorFragment;\n\n readonly _abiCoder: AbiCoder;\n\n readonly _isInterface: boolean;\n\n constructor(fragments: string | ReadonlyArray) {\n let abi: ReadonlyArray = [ ];\n if (typeof(fragments) === \"string\") {\n abi = JSON.parse(fragments);\n } else {\n abi = fragments;\n }\n\n defineReadOnly(this, \"fragments\", abi.map((fragment) => {\n return Fragment.from(fragment);\n }).filter((fragment) => (fragment != null)));\n\n defineReadOnly(this, \"_abiCoder\", getStatic<() => AbiCoder>(new.target, \"getAbiCoder\")());\n\n defineReadOnly(this, \"functions\", { });\n defineReadOnly(this, \"errors\", { });\n defineReadOnly(this, \"events\", { });\n defineReadOnly(this, \"structs\", { });\n\n // Add all fragments by their signature\n this.fragments.forEach((fragment) => {\n let bucket: { [ name: string ]: Fragment } = null;\n switch (fragment.type) {\n case \"constructor\":\n if (this.deploy) {\n logger.warn(\"duplicate definition - constructor\");\n return;\n }\n //checkNames(fragment, \"input\", fragment.inputs);\n defineReadOnly(this, \"deploy\", fragment);\n return;\n case \"function\":\n //checkNames(fragment, \"input\", fragment.inputs);\n //checkNames(fragment, \"output\", (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\n let signature = fragment.format();\n if (bucket[signature]) {\n logger.warn(\"duplicate definition - \" + signature);\n return;\n }\n\n bucket[signature] = fragment;\n });\n\n // If we do not have a constructor add a default\n if (!this.deploy) {\n defineReadOnly(this, \"deploy\", ConstructorFragment.from({\n payable: false,\n type: \"constructor\"\n }));\n }\n\n defineReadOnly(this, \"_isInterface\", true);\n }\n\n format(format?: string): string | Array {\n if (!format) { format = FormatTypes.full; }\n if (format === FormatTypes.sighash) {\n logger.throwArgumentError(\"interface does not support formatting sighash\", \"format\", format);\n }\n\n const abi = this.fragments.map((fragment) => fragment.format(format));\n\n // We need to re-bundle the JSON fragments a bit\n if (format === FormatTypes.json) {\n return JSON.stringify(abi.map((j) => JSON.parse(j)));\n }\n\n return abi;\n }\n\n // Sub-classes can override these to handle other blockchains\n static getAbiCoder(): AbiCoder {\n return defaultAbiCoder;\n }\n\n static getAddress(address: string): string {\n return getAddress(address);\n }\n\n static getSighash(fragment: ErrorFragment | FunctionFragment): string {\n return hexDataSlice(id(fragment.format()), 0, 4);\n }\n\n static getEventTopic(eventFragment: EventFragment): string {\n return id(eventFragment.format());\n }\n\n // Find a function definition by any means necessary (unless it is ambiguous)\n getFunction(nameOrSignatureOrSighash: string): FunctionFragment {\n if (isHexString(nameOrSignatureOrSighash)) {\n for (const name in this.functions) {\n if (nameOrSignatureOrSighash === this.getSighash(name)) {\n return this.functions[name];\n }\n }\n logger.throwArgumentError(\"no matching function\", \"sighash\", nameOrSignatureOrSighash);\n }\n\n // It is a bare name, look up the function (will return null if ambiguous)\n if (nameOrSignatureOrSighash.indexOf(\"(\") === -1) {\n const name = nameOrSignatureOrSighash.trim();\n const matching = Object.keys(this.functions).filter((f) => (f.split(\"(\"/* fix:) */)[0] === name));\n if (matching.length === 0) {\n logger.throwArgumentError(\"no matching function\", \"name\", name);\n } else if (matching.length > 1) {\n logger.throwArgumentError(\"multiple matching functions\", \"name\", name);\n }\n\n return this.functions[matching[0]];\n }\n\n // Normalize the signature and lookup the function\n const result = this.functions[FunctionFragment.fromString(nameOrSignatureOrSighash).format()];\n if (!result) {\n logger.throwArgumentError(\"no matching function\", \"signature\", nameOrSignatureOrSighash);\n }\n return result;\n }\n\n // Find an event definition by any means necessary (unless it is ambiguous)\n getEvent(nameOrSignatureOrTopic: string): EventFragment {\n if (isHexString(nameOrSignatureOrTopic)) {\n const topichash = nameOrSignatureOrTopic.toLowerCase();\n for (const name in this.events) {\n if (topichash === this.getEventTopic(name)) {\n return this.events[name];\n }\n }\n logger.throwArgumentError(\"no matching event\", \"topichash\", topichash);\n }\n\n // It is a bare name, look up the function (will return null if ambiguous)\n if (nameOrSignatureOrTopic.indexOf(\"(\") === -1) {\n const name = nameOrSignatureOrTopic.trim();\n const matching = Object.keys(this.events).filter((f) => (f.split(\"(\"/* fix:) */)[0] === name));\n if (matching.length === 0) {\n logger.throwArgumentError(\"no matching event\", \"name\", name);\n } else if (matching.length > 1) {\n logger.throwArgumentError(\"multiple matching events\", \"name\", name);\n }\n\n return this.events[matching[0]];\n }\n\n // Normalize the signature and lookup the function\n const result = this.events[EventFragment.fromString(nameOrSignatureOrTopic).format()];\n if (!result) {\n logger.throwArgumentError(\"no matching event\", \"signature\", nameOrSignatureOrTopic);\n }\n return result;\n }\n\n // Find a function definition by any means necessary (unless it is ambiguous)\n getError(nameOrSignatureOrSighash: string): ErrorFragment {\n if (isHexString(nameOrSignatureOrSighash)) {\n const getSighash = getStatic<(f: ErrorFragment | FunctionFragment) => string>(this.constructor, \"getSighash\");\n for (const name in this.errors) {\n const error = this.errors[name];\n if (nameOrSignatureOrSighash === getSighash(error)) {\n return this.errors[name];\n }\n }\n logger.throwArgumentError(\"no matching error\", \"sighash\", nameOrSignatureOrSighash);\n }\n\n // It is a bare name, look up the function (will return null if ambiguous)\n if (nameOrSignatureOrSighash.indexOf(\"(\") === -1) {\n const name = nameOrSignatureOrSighash.trim();\n const matching = Object.keys(this.errors).filter((f) => (f.split(\"(\"/* fix:) */)[0] === name));\n if (matching.length === 0) {\n logger.throwArgumentError(\"no matching error\", \"name\", name);\n } else if (matching.length > 1) {\n logger.throwArgumentError(\"multiple matching errors\", \"name\", name);\n }\n\n return this.errors[matching[0]];\n }\n\n // Normalize the signature and lookup the function\n const result = this.errors[FunctionFragment.fromString(nameOrSignatureOrSighash).format()];\n if (!result) {\n logger.throwArgumentError(\"no matching error\", \"signature\", nameOrSignatureOrSighash);\n }\n return result;\n }\n\n // Get the sighash (the bytes4 selector) used by Solidity to identify a function\n getSighash(fragment: ErrorFragment | FunctionFragment | string): string {\n if (typeof(fragment) === \"string\") {\n try {\n fragment = this.getFunction(fragment);\n } catch (error) {\n try {\n fragment = this.getError(fragment);\n } catch (_) {\n throw error;\n }\n }\n }\n\n return getStatic<(f: ErrorFragment | FunctionFragment) => string>(this.constructor, \"getSighash\")(fragment);\n }\n\n // Get the topic (the bytes32 hash) used by Solidity to identify an event\n getEventTopic(eventFragment: EventFragment | string): string {\n if (typeof(eventFragment) === \"string\") {\n eventFragment = this.getEvent(eventFragment);\n }\n\n return getStatic<(e: EventFragment) => string>(this.constructor, \"getEventTopic\")(eventFragment);\n }\n\n\n _decodeParams(params: ReadonlyArray, data: BytesLike): Result {\n return this._abiCoder.decode(params, data)\n }\n\n _encodeParams(params: ReadonlyArray, values: ReadonlyArray): string {\n return this._abiCoder.encode(params, values)\n }\n\n encodeDeploy(values?: ReadonlyArray): string {\n return this._encodeParams(this.deploy.inputs, values || [ ]);\n }\n\n decodeErrorResult(fragment: ErrorFragment | string, data: BytesLike): Result {\n if (typeof(fragment) === \"string\") {\n fragment = this.getError(fragment);\n }\n\n const bytes = arrayify(data);\n\n if (hexlify(bytes.slice(0, 4)) !== this.getSighash(fragment)) {\n logger.throwArgumentError(`data signature does not match error ${ fragment.name }.`, \"data\", hexlify(bytes));\n }\n\n return this._decodeParams(fragment.inputs, bytes.slice(4));\n }\n\n encodeErrorResult(fragment: ErrorFragment | string, values?: ReadonlyArray): string {\n if (typeof(fragment) === \"string\") {\n fragment = this.getError(fragment);\n }\n\n return hexlify(concat([\n this.getSighash(fragment),\n this._encodeParams(fragment.inputs, values || [ ])\n ]));\n }\n\n // Decode the data for a function call (e.g. tx.data)\n decodeFunctionData(functionFragment: FunctionFragment | string, data: BytesLike): Result {\n if (typeof(functionFragment) === \"string\") {\n functionFragment = this.getFunction(functionFragment);\n }\n\n const bytes = arrayify(data);\n\n if (hexlify(bytes.slice(0, 4)) !== this.getSighash(functionFragment)) {\n logger.throwArgumentError(`data signature does not match function ${ functionFragment.name }.`, \"data\", hexlify(bytes));\n }\n\n return this._decodeParams(functionFragment.inputs, bytes.slice(4));\n }\n\n // Encode the data for a function call (e.g. tx.data)\n encodeFunctionData(functionFragment: FunctionFragment | string, values?: ReadonlyArray): string {\n if (typeof(functionFragment) === \"string\") {\n functionFragment = this.getFunction(functionFragment);\n }\n\n return hexlify(concat([\n this.getSighash(functionFragment),\n this._encodeParams(functionFragment.inputs, values || [ ])\n ]));\n }\n\n // Decode the result from a function call (e.g. from eth_call)\n decodeFunctionResult(functionFragment: FunctionFragment | string, data: BytesLike): Result {\n if (typeof(functionFragment) === \"string\") {\n functionFragment = this.getFunction(functionFragment);\n }\n\n let bytes = arrayify(data);\n\n let reason: string = null;\n let message = \"\";\n let errorArgs: Result = null;\n let errorName: string = null;\n let errorSignature: string = null;\n switch (bytes.length % this._abiCoder._getWordSize()) {\n case 0:\n try {\n return this._abiCoder.decode(functionFragment.outputs, bytes);\n } catch (error) { }\n break;\n\n case 4: {\n const selector = hexlify(bytes.slice(0, 4));\n const builtin = BuiltinErrors[selector];\n if (builtin) {\n errorArgs = this._abiCoder.decode(builtin.inputs, bytes.slice(4));\n errorName = builtin.name;\n errorSignature = builtin.signature;\n if (builtin.reason) { reason = errorArgs[0]; }\n if (errorName === \"Error\") {\n message = `; VM Exception while processing transaction: reverted with reason string ${ JSON.stringify(errorArgs[0]) }`;\n } else if (errorName === \"Panic\") {\n message = `; VM Exception while processing transaction: reverted with panic code ${ errorArgs[0] }`;\n }\n } else {\n try {\n const error = this.getError(selector);\n errorArgs = this._abiCoder.decode(error.inputs, bytes.slice(4));\n errorName = error.name;\n errorSignature = error.format();\n } catch (error) { }\n }\n break;\n }\n }\n\n return logger.throwError(\"call revert exception\" + message, Logger.errors.CALL_EXCEPTION, {\n method: functionFragment.format(),\n data: hexlify(data), errorArgs, errorName, errorSignature, reason\n });\n }\n\n // Encode the result for a function call (e.g. for eth_call)\n encodeFunctionResult(functionFragment: FunctionFragment | string, values?: ReadonlyArray): string {\n if (typeof(functionFragment) === \"string\") {\n functionFragment = this.getFunction(functionFragment);\n }\n\n return hexlify(this._abiCoder.encode(functionFragment.outputs, values || [ ]));\n }\n\n // Create the filter for the event with search criteria (e.g. for eth_filterLog)\n encodeFilterTopics(eventFragment: EventFragment | string, values: ReadonlyArray): Array> {\n if (typeof(eventFragment) === \"string\") {\n eventFragment = this.getEvent(eventFragment);\n }\n\n if (values.length > eventFragment.inputs.length) {\n logger.throwError(\"too many arguments for \" + eventFragment.format(), Logger.errors.UNEXPECTED_ARGUMENT, {\n argument: \"values\",\n value: values\n })\n }\n\n let topics: Array> = [];\n if (!eventFragment.anonymous) { topics.push(this.getEventTopic(eventFragment)); }\n\n const encodeTopic = (param: ParamType, value: any): string => {\n if (param.type === \"string\") {\n return id(value);\n } else if (param.type === \"bytes\") {\n return keccak256(hexlify(value));\n }\n\n if (param.type === \"bool\" && typeof(value) === \"boolean\") {\n value = (value ? \"0x01\": \"0x00\");\n }\n\n if (param.type.match(/^u?int/)) {\n value = BigNumber.from(value).toHexString();\n }\n\n // Check addresses are valid\n if (param.type === \"address\") { this._abiCoder.encode( [ \"address\" ], [ value ]); }\n return hexZeroPad(hexlify(value), 32);\n };\n\n values.forEach((value, index) => {\n\n let param = (eventFragment).inputs[index];\n\n if (!param.indexed) {\n if (value != null) {\n logger.throwArgumentError(\"cannot filter non-indexed parameters; must be null\", (\"contract.\" + param.name), value);\n }\n return;\n }\n\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 // Trim off trailing nulls\n while (topics.length && topics[topics.length - 1] === null) {\n topics.pop();\n }\n\n return topics;\n }\n\n encodeEventLog(eventFragment: EventFragment | string, values: ReadonlyArray): { data: string, topics: Array } {\n if (typeof(eventFragment) === \"string\") {\n eventFragment = this.getEvent(eventFragment);\n }\n\n const topics: Array = [ ];\n\n const dataTypes: Array = [ ];\n const dataValues: Array = [ ];\n\n if (!eventFragment.anonymous) {\n topics.push(this.getEventTopic(eventFragment));\n }\n\n if (values.length !== eventFragment.inputs.length) {\n logger.throwArgumentError(\"event arguments/values mismatch\", \"values\", values);\n }\n\n eventFragment.inputs.forEach((param, index) => {\n const value = values[index];\n if (param.indexed) {\n if (param.type === \"string\") {\n topics.push(id(value))\n } else if (param.type === \"bytes\") {\n topics.push(keccak256(value))\n } else if (param.baseType === \"tuple\" || param.baseType === \"array\") {\n // @TODO\n throw new Error(\"not implemented\");\n } else {\n topics.push(this._abiCoder.encode([ param.type] , [ value ]));\n }\n } else {\n dataTypes.push(param);\n dataValues.push(value);\n }\n });\n\n return {\n data: this._abiCoder.encode(dataTypes , dataValues),\n topics: topics\n };\n }\n\n // Decode a filter for the event and the search criteria\n decodeEventLog(eventFragment: EventFragment | string, data: BytesLike, topics?: ReadonlyArray): Result {\n if (typeof(eventFragment) === \"string\") {\n eventFragment = this.getEvent(eventFragment);\n }\n\n if (topics != null && !eventFragment.anonymous) {\n let topicHash = this.getEventTopic(eventFragment);\n if (!isHexString(topics[0], 32) || topics[0].toLowerCase() !== topicHash) {\n logger.throwError(\"fragment/topic mismatch\", Logger.errors.INVALID_ARGUMENT, { argument: \"topics[0]\", expected: topicHash, value: topics[0] });\n }\n topics = topics.slice(1);\n }\n\n let indexed: Array = [];\n let nonIndexed: Array = [];\n let dynamic: Array = [];\n\n eventFragment.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.fromObject({ type: \"bytes32\", name: param.name }));\n dynamic.push(true);\n } else {\n indexed.push(param);\n dynamic.push(false);\n }\n } else {\n nonIndexed.push(param);\n dynamic.push(false);\n }\n });\n\n let resultIndexed = (topics != null) ? this._abiCoder.decode(indexed, concat(topics)): null;\n let resultNonIndexed = this._abiCoder.decode(nonIndexed, data, true);\n\n let result: (Array & { [ key: string ]: any }) = [ ];\n let nonIndexedIndex = 0, indexedIndex = 0;\n eventFragment.inputs.forEach((param, index) => {\n if (param.indexed) {\n if (resultIndexed == null) {\n result[index] = new Indexed({ _isIndexed: true, hash: null });\n\n } else if (dynamic[index]) {\n result[index] = new Indexed({ _isIndexed: true, hash: resultIndexed[indexedIndex++] });\n\n } else {\n try {\n result[index] = resultIndexed[indexedIndex++];\n } catch (error) {\n result[index] = error;\n }\n }\n } else {\n try {\n result[index] = resultNonIndexed[nonIndexedIndex++];\n } catch (error) {\n result[index] = error;\n }\n }\n\n // Add the keyword argument if named and safe\n if (param.name && result[param.name] == null) {\n const value = result[index];\n\n // Make error named values throw on access\n if (value instanceof Error) {\n Object.defineProperty(result, param.name, {\n enumerable: true,\n get: () => { throw wrapAccessError(`property ${ JSON.stringify(param.name) }`, value); }\n });\n } else {\n result[param.name] = value;\n }\n }\n });\n\n // Make all error indexed values throw on access\n for (let i = 0; i < result.length; i++) {\n const value = result[i];\n if (value instanceof Error) {\n Object.defineProperty(result, i, {\n enumerable: true,\n get: () => { throw wrapAccessError(`index ${ i }`, value); }\n });\n }\n }\n\n return Object.freeze(result);\n }\n\n // Given a transaction, find the matching function fragment (if any) and\n // determine all its properties and call parameters\n parseTransaction(tx: { data: string, value?: BigNumberish }): TransactionDescription {\n let fragment = this.getFunction(tx.data.substring(0, 10).toLowerCase())\n\n if (!fragment) { return null; }\n\n return new TransactionDescription({\n args: this._abiCoder.decode(fragment.inputs, \"0x\" + tx.data.substring(10)),\n functionFragment: fragment,\n name: fragment.name,\n signature: fragment.format(),\n sighash: this.getSighash(fragment),\n value: BigNumber.from(tx.value || \"0\"),\n });\n }\n\n // @TODO\n //parseCallResult(data: BytesLike): ??\n\n // Given an event log, find the matching event fragment (if any) and\n // determine all its properties and values\n parseLog(log: { topics: Array, data: string}): LogDescription {\n let fragment = this.getEvent(log.topics[0]);\n\n if (!fragment || fragment.anonymous) { 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\n\n return new LogDescription({\n eventFragment: fragment,\n name: fragment.name,\n signature: fragment.format(),\n topic: this.getEventTopic(fragment),\n args: this.decodeEventLog(fragment, log.data, log.topics)\n });\n }\n\n parseError(data: BytesLike): ErrorDescription {\n const hexData = hexlify(data);\n let fragment = this.getError(hexData.substring(0, 10).toLowerCase())\n\n if (!fragment) { return null; }\n\n return new ErrorDescription({\n args: this._abiCoder.decode(fragment.inputs, \"0x\" + hexData.substring(10)),\n errorFragment: fragment,\n name: fragment.name,\n signature: fragment.format(),\n sighash: this.getSighash(fragment),\n });\n }\n\n\n /*\n static from(value: Array | string | Interface) {\n if (Interface.isInterface(value)) {\n return value;\n }\n if (typeof(value) === \"string\") {\n return new Interface(JSON.parse(value));\n }\n return new Interface(value);\n }\n */\n\n static isInterface(value: any): value is Interface {\n return !!(value && value._isInterface);\n }\n}\n\n", "\"use strict\";\n\nimport { ConstructorFragment, ErrorFragment, EventFragment, FormatTypes, Fragment, FunctionFragment, JsonFragment, JsonFragmentType, ParamType } from \"./fragments\";\nimport { AbiCoder, CoerceFunc, defaultAbiCoder } from \"./abi-coder\";\nimport { checkResultErrors, Indexed, Interface, LogDescription, Result, TransactionDescription } from \"./interface\";\n\nexport {\n ConstructorFragment,\n ErrorFragment,\n EventFragment,\n Fragment,\n FunctionFragment,\n ParamType,\n FormatTypes,\n\n AbiCoder,\n defaultAbiCoder,\n\n Interface,\n Indexed,\n\n /////////////////////////\n // Types\n\n CoerceFunc,\n JsonFragment,\n JsonFragmentType,\n\n Result,\n checkResultErrors,\n\n LogDescription,\n TransactionDescription\n};\n", "export const version = \"abstract-provider/5.7.0\";\n", "\"use strict\";\n\nimport { BigNumber, BigNumberish } from \"@ethersproject/bignumber\";\nimport { BytesLike, isHexString } from \"@ethersproject/bytes\";\nimport { Network } from \"@ethersproject/networks\";\nimport { Deferrable, Description, defineReadOnly, resolveProperties } from \"@ethersproject/properties\";\nimport { AccessListish, Transaction } from \"@ethersproject/transactions\";\nimport { OnceBlockable } from \"@ethersproject/web\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\n///////////////////////////////\n// Exported Types\n\n\nexport type TransactionRequest = {\n to?: string,\n from?: string,\n nonce?: BigNumberish,\n\n gasLimit?: BigNumberish,\n gasPrice?: BigNumberish,\n\n data?: BytesLike,\n value?: BigNumberish,\n chainId?: number\n\n type?: number;\n accessList?: AccessListish;\n\n maxPriorityFeePerGas?: BigNumberish;\n maxFeePerGas?: BigNumberish;\n\n customData?: Record;\n ccipReadEnabled?: boolean;\n}\n\nexport interface TransactionResponse extends Transaction {\n hash: string;\n\n // Only if a transaction has been mined\n blockNumber?: number,\n blockHash?: string,\n timestamp?: number,\n\n confirmations: number,\n\n // Not optional (as it is in Transaction)\n from: string;\n\n // The raw transaction\n raw?: string,\n\n // This function waits until the transaction has been mined\n wait: (confirmations?: number) => Promise\n};\n\nexport type BlockTag = string | number;\n\nexport interface _Block {\n hash: string;\n parentHash: string;\n number: number;\n\n timestamp: number;\n nonce: string;\n difficulty: number;\n _difficulty: BigNumber;\n\n gasLimit: BigNumber;\n gasUsed: BigNumber;\n\n miner: string;\n extraData: string;\n\n baseFeePerGas?: null | BigNumber;\n}\n\nexport interface Block extends _Block {\n transactions: Array;\n}\n\nexport interface BlockWithTransactions extends _Block {\n transactions: Array;\n}\n\n\nexport interface Log {\n blockNumber: number;\n blockHash: string;\n transactionIndex: number;\n\n removed: boolean;\n\n address: string;\n data: string;\n\n topics: Array;\n\n transactionHash: string;\n logIndex: number;\n}\n\nexport interface TransactionReceipt {\n to: string;\n from: string;\n contractAddress: string,\n transactionIndex: number,\n root?: string,\n gasUsed: BigNumber,\n logsBloom: string,\n blockHash: string,\n transactionHash: string,\n logs: Array,\n blockNumber: number,\n confirmations: number,\n cumulativeGasUsed: BigNumber,\n effectiveGasPrice: BigNumber,\n byzantium: boolean,\n type: number;\n status?: number\n};\n\nexport interface FeeData {\n lastBaseFeePerGas: null | BigNumber;\n maxFeePerGas: null | BigNumber;\n maxPriorityFeePerGas: null | BigNumber;\n gasPrice: null | BigNumber;\n}\n\nexport interface EventFilter {\n address?: string;\n topics?: Array | null>;\n}\n\nexport interface Filter extends EventFilter {\n fromBlock?: BlockTag,\n toBlock?: BlockTag,\n}\n\nexport interface FilterByBlockHash extends EventFilter {\n blockHash?: string;\n}\n\n//export type CallTransactionable = {\n// call(transaction: TransactionRequest): Promise;\n//};\n\nexport abstract class ForkEvent extends Description {\n readonly expiry: number;\n\n readonly _isForkEvent?: boolean;\n\n static isForkEvent(value: any): value is ForkEvent {\n return !!(value && value._isForkEvent);\n }\n}\n\nexport class BlockForkEvent extends ForkEvent {\n readonly blockHash: string;\n\n readonly _isBlockForkEvent?: boolean;\n\n constructor(blockHash: string, expiry?: number) {\n if (!isHexString(blockHash, 32)) {\n logger.throwArgumentError(\"invalid blockHash\", \"blockHash\", blockHash);\n }\n\n super({\n _isForkEvent: true,\n _isBlockForkEvent: true,\n expiry: (expiry || 0),\n blockHash: blockHash\n });\n }\n}\n\nexport class TransactionForkEvent extends ForkEvent {\n readonly hash: string;\n\n readonly _isTransactionOrderForkEvent?: boolean;\n\n constructor(hash: string, expiry?: number) {\n if (!isHexString(hash, 32)) {\n logger.throwArgumentError(\"invalid transaction hash\", \"hash\", hash);\n }\n\n super({\n _isForkEvent: true,\n _isTransactionForkEvent: true,\n expiry: (expiry || 0),\n hash: hash\n });\n }\n}\n\nexport class TransactionOrderForkEvent extends ForkEvent {\n readonly beforeHash: string;\n readonly afterHash: string;\n\n constructor(beforeHash: string, afterHash: string, expiry?: number) {\n if (!isHexString(beforeHash, 32)) {\n logger.throwArgumentError(\"invalid transaction hash\", \"beforeHash\", beforeHash);\n }\n if (!isHexString(afterHash, 32)) {\n logger.throwArgumentError(\"invalid transaction hash\", \"afterHash\", afterHash);\n }\n\n super({\n _isForkEvent: true,\n _isTransactionOrderForkEvent: true,\n expiry: (expiry || 0),\n beforeHash: beforeHash,\n afterHash: afterHash\n });\n }\n}\n\nexport type EventType = string | Array> | EventFilter | ForkEvent;\n\nexport type Listener = (...args: Array) => void;\n\n///////////////////////////////\n// Exported Abstracts\nexport abstract class Provider implements OnceBlockable {\n\n // Network\n abstract getNetwork(): Promise;\n\n // Latest State\n abstract getBlockNumber(): Promise;\n abstract getGasPrice(): Promise;\n async getFeeData(): Promise {\n const { block, gasPrice } = await resolveProperties({\n block: this.getBlock(\"latest\"),\n gasPrice: this.getGasPrice().catch((error) => {\n // @TODO: Why is this now failing on Calaveras?\n //console.log(error);\n return null;\n })\n });\n\n let lastBaseFeePerGas = null, maxFeePerGas = null, maxPriorityFeePerGas = null;\n\n if (block && block.baseFeePerGas) {\n // We may want to compute this more accurately in the future,\n // using the formula \"check if the base fee is correct\".\n // See: https://eips.ethereum.org/EIPS/eip-1559\n lastBaseFeePerGas = block.baseFeePerGas;\n maxPriorityFeePerGas = BigNumber.from(\"1500000000\");\n maxFeePerGas = block.baseFeePerGas.mul(2).add(maxPriorityFeePerGas);\n }\n\n return { lastBaseFeePerGas, maxFeePerGas, maxPriorityFeePerGas, gasPrice };\n }\n\n // Account\n abstract getBalance(addressOrName: string | Promise, blockTag?: BlockTag | Promise): Promise;\n abstract getTransactionCount(addressOrName: string | Promise, blockTag?: BlockTag | Promise): Promise;\n abstract getCode(addressOrName: string | Promise, blockTag?: BlockTag | Promise): Promise ;\n abstract getStorageAt(addressOrName: string | Promise, position: BigNumberish | Promise, blockTag?: BlockTag | Promise): Promise;\n\n // Execution\n abstract sendTransaction(signedTransaction: string | Promise): Promise;\n abstract call(transaction: Deferrable, blockTag?: BlockTag | Promise): Promise;\n abstract estimateGas(transaction: Deferrable): Promise;\n\n // Queries\n abstract getBlock(blockHashOrBlockTag: BlockTag | string | Promise): Promise;\n abstract getBlockWithTransactions(blockHashOrBlockTag: BlockTag | string | Promise): Promise;\n abstract getTransaction(transactionHash: string): Promise;\n abstract getTransactionReceipt(transactionHash: string): Promise;\n\n // Bloom-filter Queries\n abstract getLogs(filter: Filter): Promise>;\n\n // ENS\n abstract resolveName(name: string | Promise): Promise;\n abstract lookupAddress(address: string | Promise): Promise;\n\n // Event Emitter (ish)\n abstract on(eventName: EventType, listener: Listener): Provider;\n abstract once(eventName: EventType, listener: Listener): Provider;\n abstract emit(eventName: EventType, ...args: Array): boolean\n abstract listenerCount(eventName?: EventType): number;\n abstract listeners(eventName?: EventType): Array;\n abstract off(eventName: EventType, listener?: Listener): Provider;\n abstract removeAllListeners(eventName?: EventType): Provider;\n\n // Alias for \"on\"\n addListener(eventName: EventType, listener: Listener): Provider {\n return this.on(eventName, listener);\n }\n\n // Alias for \"off\"\n removeListener(eventName: EventType, listener: Listener): Provider {\n return this.off(eventName, listener);\n }\n\n // @TODO: This *could* be implemented here, but would pull in events...\n abstract waitForTransaction(transactionHash: string, confirmations?: number, timeout?: number): Promise;\n\n readonly _isProvider: boolean;\n\n constructor() {\n logger.checkAbstract(new.target, Provider);\n defineReadOnly(this, \"_isProvider\", true);\n }\n\n static isProvider(value: any): value is Provider {\n return !!(value && value._isProvider);\n }\n\n/*\n static getResolver(network: Network, callable: CallTransactionable, namehash: string): string {\n // No ENS...\n if (!network.ensAddress) {\n errors.throwError(\n \"network does support ENS\",\n errors.UNSUPPORTED_OPERATION,\n { operation: \"ENS\", network: network.name }\n );\n }\n\n // Not a namehash\n if (!isHexString(namehash, 32)) {\n errors.throwArgumentError(\"invalid name hash\", \"namehash\", namehash);\n }\n\n // keccak256(\"resolver(bytes32)\")\n let data = \"0x0178b8bf\" + namehash.substring(2);\n let transaction = { to: network.ensAddress, data: data };\n\n return provider.call(transaction).then((data) => {\n return provider.formatter.callAddress(data);\n });\n }\n\n static resolveNamehash(network: Network, callable: CallTransactionable, namehash: string): string {\n return this.getResolver(network, callable, namehash).then((resolverAddress) => {\n if (!resolverAddress) { return null; }\n\n // keccak256(\"addr(bytes32)\")\n let data = \"0x3b3b57de\" + namehash(name).substring(2);\n let transaction = { to: resolverAddress, data: data };\n return callable.call(transaction).then((data) => {\n return this.formatter.callAddress(data);\n });\n\n })\n }\n*/\n}\n", "export const version = \"abstract-signer/5.7.0\";\n", "\"use strict\";\n\nimport { BlockTag, FeeData, Provider, TransactionRequest, TransactionResponse } from \"@ethersproject/abstract-provider\";\nimport { BigNumber, BigNumberish } from \"@ethersproject/bignumber\";\nimport { Bytes, BytesLike } from \"@ethersproject/bytes\";\nimport { Deferrable, defineReadOnly, resolveProperties, shallowCopy } from \"@ethersproject/properties\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\nconst allowedTransactionKeys: Array = [\n \"accessList\", \"ccipReadEnabled\", \"chainId\", \"customData\", \"data\", \"from\", \"gasLimit\", \"gasPrice\", \"maxFeePerGas\", \"maxPriorityFeePerGas\", \"nonce\", \"to\", \"type\", \"value\"\n];\n\nconst forwardErrors = [\n Logger.errors.INSUFFICIENT_FUNDS,\n Logger.errors.NONCE_EXPIRED,\n Logger.errors.REPLACEMENT_UNDERPRICED,\n];\n\n// EIP-712 Typed Data\n// See: https://eips.ethereum.org/EIPS/eip-712\n\nexport interface TypedDataDomain {\n name?: string;\n version?: string;\n chainId?: BigNumberish;\n verifyingContract?: string;\n salt?: BytesLike;\n};\n\nexport interface TypedDataField {\n name: string;\n type: string;\n};\n\n// Sub-classes of Signer may optionally extend this interface to indicate\n// they have a private key available synchronously\nexport interface ExternallyOwnedAccount {\n readonly address: string;\n readonly privateKey: string;\n}\n\n// Sub-Class Notes:\n// - A Signer MUST always make sure, that if present, the \"from\" field\n// matches the Signer, before sending or signing a transaction\n// - A Signer SHOULD always wrap private information (such as a private\n// key or mnemonic) in a function, so that console.log does not leak\n// the data\n\n// @TODO: This is a temporary measure to preserve backwards compatibility\n// In v6, the method on TypedDataSigner will be added to Signer\nexport interface TypedDataSigner {\n _signTypedData(domain: TypedDataDomain, types: Record>, value: Record): Promise;\n}\n\nexport abstract class Signer {\n readonly provider?: Provider;\n\n ///////////////////\n // Sub-classes MUST implement these\n\n // Returns the checksum address\n abstract getAddress(): Promise\n\n // Returns the signed prefixed-message. This MUST treat:\n // - Bytes as a binary message\n // - string as a UTF8-message\n // i.e. \"0x1234\" is a SIX (6) byte string, NOT 2 bytes of data\n abstract signMessage(message: Bytes | string): Promise;\n\n // Signs a transaction and returns the fully serialized, signed transaction.\n // The EXACT transaction MUST be signed, and NO additional properties to be added.\n // - This MAY throw if signing transactions is not supports, but if\n // it does, sentTransaction MUST be overridden.\n abstract signTransaction(transaction: Deferrable): Promise;\n\n // Returns a new instance of the Signer, connected to provider.\n // This MAY throw if changing providers is not supported.\n abstract connect(provider: Provider): Signer;\n\n readonly _isSigner: boolean;\n\n\n ///////////////////\n // Sub-classes MUST call super\n constructor() {\n logger.checkAbstract(new.target, Signer);\n defineReadOnly(this, \"_isSigner\", true);\n }\n\n\n ///////////////////\n // Sub-classes MAY override these\n\n async getBalance(blockTag?: BlockTag): Promise {\n this._checkProvider(\"getBalance\");\n return await this.provider.getBalance(this.getAddress(), blockTag);\n }\n\n async getTransactionCount(blockTag?: BlockTag): Promise {\n this._checkProvider(\"getTransactionCount\");\n return await this.provider.getTransactionCount(this.getAddress(), blockTag);\n }\n\n // Populates \"from\" if unspecified, and estimates the gas for the transaction\n async estimateGas(transaction: Deferrable): Promise {\n this._checkProvider(\"estimateGas\");\n const tx = await resolveProperties(this.checkTransaction(transaction));\n return await this.provider.estimateGas(tx);\n }\n\n // Populates \"from\" if unspecified, and calls with the transaction\n async call(transaction: Deferrable, blockTag?: BlockTag): Promise {\n this._checkProvider(\"call\");\n const tx = await resolveProperties(this.checkTransaction(transaction));\n return await this.provider.call(tx, blockTag);\n }\n\n // Populates all fields in a transaction, signs it and sends it to the network\n async sendTransaction(transaction: Deferrable): Promise {\n this._checkProvider(\"sendTransaction\");\n const tx = await this.populateTransaction(transaction);\n const signedTx = await this.signTransaction(tx);\n return await this.provider.sendTransaction(signedTx);\n }\n\n async getChainId(): Promise {\n this._checkProvider(\"getChainId\");\n const network = await this.provider.getNetwork();\n return network.chainId;\n }\n\n async getGasPrice(): Promise {\n this._checkProvider(\"getGasPrice\");\n return await this.provider.getGasPrice();\n }\n\n async getFeeData(): Promise {\n this._checkProvider(\"getFeeData\");\n return await this.provider.getFeeData();\n }\n\n\n async resolveName(name: string): Promise {\n this._checkProvider(\"resolveName\");\n return await this.provider.resolveName(name);\n }\n\n\n\n // Checks a transaction does not contain invalid keys and if\n // no \"from\" is provided, populates it.\n // - does NOT require a provider\n // - adds \"from\" is not present\n // - returns a COPY (safe to mutate the result)\n // By default called from: (overriding these prevents it)\n // - call\n // - estimateGas\n // - populateTransaction (and therefor sendTransaction)\n checkTransaction(transaction: Deferrable): Deferrable {\n for (const key in transaction) {\n if (allowedTransactionKeys.indexOf(key) === -1) {\n logger.throwArgumentError(\"invalid transaction key: \" + key, \"transaction\", transaction);\n }\n }\n\n const tx = shallowCopy(transaction);\n\n if (tx.from == null) {\n tx.from = this.getAddress();\n\n } else {\n // Make sure any provided address matches this signer\n tx.from = Promise.all([\n Promise.resolve(tx.from),\n this.getAddress()\n ]).then((result) => {\n if (result[0].toLowerCase() !== result[1].toLowerCase()) {\n logger.throwArgumentError(\"from address mismatch\", \"transaction\", transaction);\n }\n return result[0];\n });\n }\n\n return tx;\n }\n\n // Populates ALL keys for a transaction and checks that \"from\" matches\n // this Signer. Should be used by sendTransaction but NOT by signTransaction.\n // By default called from: (overriding these prevents it)\n // - sendTransaction\n //\n // Notes:\n // - We allow gasPrice for EIP-1559 as long as it matches maxFeePerGas\n async populateTransaction(transaction: Deferrable): Promise {\n\n const tx: Deferrable = await resolveProperties(this.checkTransaction(transaction))\n\n if (tx.to != null) {\n tx.to = Promise.resolve(tx.to).then(async (to) => {\n if (to == null) { return null; }\n const address = await this.resolveName(to);\n if (address == null) {\n logger.throwArgumentError(\"provided ENS name resolves to null\", \"tx.to\", to);\n }\n return address;\n });\n\n // Prevent this error from causing an UnhandledPromiseException\n tx.to.catch((error) => { });\n }\n\n // Do not allow mixing pre-eip-1559 and eip-1559 properties\n const hasEip1559 = (tx.maxFeePerGas != null || tx.maxPriorityFeePerGas != null);\n if (tx.gasPrice != null && (tx.type === 2 || hasEip1559)) {\n logger.throwArgumentError(\"eip-1559 transaction do not support gasPrice\", \"transaction\", transaction);\n } else if ((tx.type === 0 || tx.type === 1) && hasEip1559) {\n logger.throwArgumentError(\"pre-eip-1559 transaction do not support maxFeePerGas/maxPriorityFeePerGas\", \"transaction\", transaction);\n }\n\n if ((tx.type === 2 || tx.type == null) && (tx.maxFeePerGas != null && tx.maxPriorityFeePerGas != null)) {\n // Fully-formed EIP-1559 transaction (skip getFeeData)\n tx.type = 2;\n\n } else if (tx.type === 0 || tx.type === 1) {\n // Explicit Legacy or EIP-2930 transaction\n\n // Populate missing gasPrice\n if (tx.gasPrice == null) { tx.gasPrice = this.getGasPrice(); }\n\n } else {\n\n // We need to get fee data to determine things\n const feeData = await this.getFeeData();\n\n if (tx.type == null) {\n // We need to auto-detect the intended type of this transaction...\n\n if (feeData.maxFeePerGas != null && feeData.maxPriorityFeePerGas != null) {\n // The network supports EIP-1559!\n\n // Upgrade transaction from null to eip-1559\n tx.type = 2;\n\n if (tx.gasPrice != null) {\n // Using legacy gasPrice property on an eip-1559 network,\n // so use gasPrice as both fee properties\n const gasPrice = tx.gasPrice;\n delete tx.gasPrice;\n tx.maxFeePerGas = gasPrice;\n tx.maxPriorityFeePerGas = gasPrice;\n\n } else {\n // Populate missing fee data\n if (tx.maxFeePerGas == null) { tx.maxFeePerGas = feeData.maxFeePerGas; }\n if (tx.maxPriorityFeePerGas == null) { tx.maxPriorityFeePerGas = feeData.maxPriorityFeePerGas; }\n }\n\n } else if (feeData.gasPrice != null) {\n // Network doesn't support EIP-1559...\n\n // ...but they are trying to use EIP-1559 properties\n if (hasEip1559) {\n logger.throwError(\"network does not support EIP-1559\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"populateTransaction\"\n });\n }\n\n // Populate missing fee data\n if (tx.gasPrice == null) { tx.gasPrice = feeData.gasPrice; }\n\n // Explicitly set untyped transaction to legacy\n tx.type = 0;\n\n } else {\n // getFeeData has failed us.\n logger.throwError(\"failed to get consistent fee data\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"signer.getFeeData\"\n });\n }\n\n } else if (tx.type === 2) {\n // Explicitly using EIP-1559\n\n // Populate missing fee data\n if (tx.maxFeePerGas == null) { tx.maxFeePerGas = feeData.maxFeePerGas; }\n if (tx.maxPriorityFeePerGas == null) { tx.maxPriorityFeePerGas = feeData.maxPriorityFeePerGas; }\n }\n }\n\n if (tx.nonce == null) { tx.nonce = this.getTransactionCount(\"pending\"); }\n\n if (tx.gasLimit == null) {\n tx.gasLimit = this.estimateGas(tx).catch((error) => {\n if (forwardErrors.indexOf(error.code) >= 0) {\n throw error;\n }\n\n return logger.throwError(\"cannot estimate gas; transaction may fail or may require manual gas limit\", Logger.errors.UNPREDICTABLE_GAS_LIMIT, {\n error: error,\n tx: tx\n });\n });\n }\n\n if (tx.chainId == null) {\n tx.chainId = this.getChainId();\n } else {\n tx.chainId = Promise.all([\n Promise.resolve(tx.chainId),\n this.getChainId()\n ]).then((results) => {\n if (results[1] !== 0 && results[0] !== results[1]) {\n logger.throwArgumentError(\"chainId address mismatch\", \"transaction\", transaction);\n }\n return results[0];\n });\n }\n\n return await resolveProperties(tx);\n }\n\n\n ///////////////////\n // Sub-classes SHOULD leave these alone\n\n _checkProvider(operation?: string): void {\n if (!this.provider) { logger.throwError(\"missing provider\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: (operation || \"_checkProvider\") });\n }\n }\n\n static isSigner(value: any): value is Signer {\n return !!(value && value._isSigner);\n }\n}\n\nexport class VoidSigner extends Signer implements TypedDataSigner {\n readonly address: string;\n\n constructor(address: string, provider?: Provider) {\n super();\n defineReadOnly(this, \"address\", address);\n defineReadOnly(this, \"provider\", provider || null);\n }\n\n getAddress(): Promise {\n return Promise.resolve(this.address);\n }\n\n _fail(message: string, operation: string): Promise {\n return Promise.resolve().then(() => {\n logger.throwError(message, Logger.errors.UNSUPPORTED_OPERATION, { operation: operation });\n });\n }\n\n signMessage(message: Bytes | string): Promise {\n return this._fail(\"VoidSigner cannot sign messages\", \"signMessage\");\n }\n\n signTransaction(transaction: Deferrable): Promise {\n return this._fail(\"VoidSigner cannot sign transactions\", \"signTransaction\");\n }\n\n _signTypedData(domain: TypedDataDomain, types: Record>, value: Record): Promise {\n return this._fail(\"VoidSigner cannot sign typed data\", \"signTypedData\");\n }\n\n connect(provider: Provider): VoidSigner {\n return new VoidSigner(this.address, provider);\n }\n}\n\n", "(function (module, exports) {\n 'use strict';\n\n // Utils\n function assert (val, msg) {\n if (!val) throw new Error(msg || 'Assertion failed');\n }\n\n // Could use `inherits` module, but don't want to move from single file\n // architecture yet.\n function inherits (ctor, superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function () {};\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n\n // BN\n\n function BN (number, base, endian) {\n if (BN.isBN(number)) {\n return number;\n }\n\n this.negative = 0;\n this.words = null;\n this.length = 0;\n\n // Reduction context\n this.red = null;\n\n if (number !== null) {\n if (base === 'le' || base === 'be') {\n endian = base;\n base = 10;\n }\n\n this._init(number || 0, base || 10, endian || 'be');\n }\n }\n if (typeof module === 'object') {\n module.exports = BN;\n } else {\n exports.BN = BN;\n }\n\n BN.BN = BN;\n BN.wordSize = 26;\n\n var Buffer;\n try {\n if (typeof window !== 'undefined' && typeof window.Buffer !== 'undefined') {\n Buffer = window.Buffer;\n } else {\n Buffer = require('buffer').Buffer;\n }\n } catch (e) {\n }\n\n BN.isBN = function isBN (num) {\n if (num instanceof BN) {\n return true;\n }\n\n return num !== null && typeof num === 'object' &&\n num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);\n };\n\n BN.max = function max (left, right) {\n if (left.cmp(right) > 0) return left;\n return right;\n };\n\n BN.min = function min (left, right) {\n if (left.cmp(right) < 0) return left;\n return right;\n };\n\n BN.prototype._init = function init (number, base, endian) {\n if (typeof number === 'number') {\n return this._initNumber(number, base, endian);\n }\n\n if (typeof number === 'object') {\n return this._initArray(number, base, endian);\n }\n\n if (base === 'hex') {\n base = 16;\n }\n assert(base === (base | 0) && base >= 2 && base <= 36);\n\n number = number.toString().replace(/\\s+/g, '');\n var start = 0;\n if (number[0] === '-') {\n start++;\n this.negative = 1;\n }\n\n if (start < number.length) {\n if (base === 16) {\n this._parseHex(number, start, endian);\n } else {\n this._parseBase(number, base, start);\n if (endian === 'le') {\n this._initArray(this.toArray(), base, endian);\n }\n }\n }\n };\n\n BN.prototype._initNumber = function _initNumber (number, base, endian) {\n if (number < 0) {\n this.negative = 1;\n number = -number;\n }\n if (number < 0x4000000) {\n this.words = [ number & 0x3ffffff ];\n this.length = 1;\n } else if (number < 0x10000000000000) {\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff\n ];\n this.length = 2;\n } else {\n assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff,\n 1\n ];\n this.length = 3;\n }\n\n if (endian !== 'le') return;\n\n // Reverse the bytes\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initArray = function _initArray (number, base, endian) {\n // Perhaps a Uint8Array\n assert(typeof number.length === 'number');\n if (number.length <= 0) {\n this.words = [ 0 ];\n this.length = 1;\n return this;\n }\n\n this.length = Math.ceil(number.length / 3);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n var off = 0;\n if (endian === 'be') {\n for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n } else if (endian === 'le') {\n for (i = 0, j = 0; i < number.length; i += 3) {\n w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n return this.strip();\n };\n\n function parseHex4Bits (string, index) {\n var c = string.charCodeAt(index);\n // 'A' - 'F'\n if (c >= 65 && c <= 70) {\n return c - 55;\n // 'a' - 'f'\n } else if (c >= 97 && c <= 102) {\n return c - 87;\n // '0' - '9'\n } else {\n return (c - 48) & 0xf;\n }\n }\n\n function parseHexByte (string, lowerBound, index) {\n var r = parseHex4Bits(string, index);\n if (index - 1 >= lowerBound) {\n r |= parseHex4Bits(string, index - 1) << 4;\n }\n return r;\n }\n\n BN.prototype._parseHex = function _parseHex (number, start, endian) {\n // Create possibly bigger array to ensure that it fits the number\n this.length = Math.ceil((number.length - start) / 6);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n // 24-bits chunks\n var off = 0;\n var j = 0;\n\n var w;\n if (endian === 'be') {\n for (i = number.length - 1; i >= start; i -= 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n } else {\n var parseLength = number.length - start;\n for (i = parseLength % 2 === 0 ? start + 1 : start; i < number.length; i += 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n }\n\n this.strip();\n };\n\n function parseBase (str, start, end, mul) {\n var r = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r *= mul;\n\n // 'a'\n if (c >= 49) {\n r += c - 49 + 0xa;\n\n // 'A'\n } else if (c >= 17) {\n r += c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n r += c;\n }\n }\n return r;\n }\n\n BN.prototype._parseBase = function _parseBase (number, base, start) {\n // Initialize as zero\n this.words = [ 0 ];\n this.length = 1;\n\n // Find length of limb in base\n for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n limbLen++;\n }\n limbLen--;\n limbPow = (limbPow / base) | 0;\n\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n\n var word = 0;\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n\n this.imuln(limbPow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n if (mod !== 0) {\n var pow = 1;\n word = parseBase(number, i, number.length, base);\n\n for (i = 0; i < mod; i++) {\n pow *= base;\n }\n\n this.imuln(pow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n this.strip();\n };\n\n BN.prototype.copy = function copy (dest) {\n dest.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n dest.words[i] = this.words[i];\n }\n dest.length = this.length;\n dest.negative = this.negative;\n dest.red = this.red;\n };\n\n BN.prototype.clone = function clone () {\n var r = new BN(null);\n this.copy(r);\n return r;\n };\n\n BN.prototype._expand = function _expand (size) {\n while (this.length < size) {\n this.words[this.length++] = 0;\n }\n return this;\n };\n\n // Remove leading `0` from `this`\n BN.prototype.strip = function strip () {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\n return this._normSign();\n };\n\n BN.prototype._normSign = function _normSign () {\n // -0 = 0\n if (this.length === 1 && this.words[0] === 0) {\n this.negative = 0;\n }\n return this;\n };\n\n BN.prototype.inspect = function inspect () {\n return (this.red ? '';\n };\n\n /*\n\n var zeros = [];\n var groupSizes = [];\n var groupBases = [];\n\n var s = '';\n var i = -1;\n while (++i < BN.wordSize) {\n zeros[i] = s;\n s += '0';\n }\n groupSizes[0] = 0;\n groupSizes[1] = 0;\n groupBases[0] = 0;\n groupBases[1] = 0;\n var base = 2 - 1;\n while (++base < 36 + 1) {\n var groupSize = 0;\n var groupBase = 1;\n while (groupBase < (1 << BN.wordSize) / base) {\n groupBase *= base;\n groupSize += 1;\n }\n groupSizes[base] = groupSize;\n groupBases[base] = groupBase;\n }\n\n */\n\n var zeros = [\n '',\n '0',\n '00',\n '000',\n '0000',\n '00000',\n '000000',\n '0000000',\n '00000000',\n '000000000',\n '0000000000',\n '00000000000',\n '000000000000',\n '0000000000000',\n '00000000000000',\n '000000000000000',\n '0000000000000000',\n '00000000000000000',\n '000000000000000000',\n '0000000000000000000',\n '00000000000000000000',\n '000000000000000000000',\n '0000000000000000000000',\n '00000000000000000000000',\n '000000000000000000000000',\n '0000000000000000000000000'\n ];\n\n var groupSizes = [\n 0, 0,\n 25, 16, 12, 11, 10, 9, 8,\n 8, 7, 7, 7, 7, 6, 6,\n 6, 6, 6, 6, 6, 5, 5,\n 5, 5, 5, 5, 5, 5, 5,\n 5, 5, 5, 5, 5, 5, 5\n ];\n\n var groupBases = [\n 0, 0,\n 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,\n 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,\n 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,\n 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,\n 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176\n ];\n\n BN.prototype.toString = function toString (base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n\n var out;\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = this.words[i];\n var word = (((w << off) | carry) & 0xffffff).toString(16);\n carry = (w >>> (24 - off)) & 0xffffff;\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n off += 2;\n if (off >= 26) {\n off -= 26;\n i--;\n }\n }\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n if (base === (base | 0) && base >= 2 && base <= 36) {\n // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n var groupSize = groupSizes[base];\n // var groupBase = Math.pow(base, groupSize);\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n while (!c.isZero()) {\n var r = c.modn(groupBase).toString(base);\n c = c.idivn(groupBase);\n\n if (!c.isZero()) {\n out = zeros[groupSize - r.length] + r + out;\n } else {\n out = r + out;\n }\n }\n if (this.isZero()) {\n out = '0' + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n assert(false, 'Base should be between 2 and 36');\n };\n\n BN.prototype.toNumber = function toNumber () {\n var ret = this.words[0];\n if (this.length === 2) {\n ret += this.words[1] * 0x4000000;\n } else if (this.length === 3 && this.words[2] === 0x01) {\n // NOTE: at this stage it is known that the top bit is set\n ret += 0x10000000000000 + (this.words[1] * 0x4000000);\n } else if (this.length > 2) {\n assert(false, 'Number can only safely store up to 53 bits');\n }\n return (this.negative !== 0) ? -ret : ret;\n };\n\n BN.prototype.toJSON = function toJSON () {\n return this.toString(16);\n };\n\n BN.prototype.toBuffer = function toBuffer (endian, length) {\n assert(typeof Buffer !== 'undefined');\n return this.toArrayLike(Buffer, endian, length);\n };\n\n BN.prototype.toArray = function toArray (endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n var byteLength = this.byteLength();\n var reqLength = length || Math.max(1, byteLength);\n assert(byteLength <= reqLength, 'byte array longer than desired length');\n assert(reqLength > 0, 'Requested array length <= 0');\n\n this.strip();\n var littleEndian = endian === 'le';\n var res = new ArrayType(reqLength);\n\n var b, i;\n var q = this.clone();\n if (!littleEndian) {\n // Assume big-endian\n for (i = 0; i < reqLength - byteLength; i++) {\n res[i] = 0;\n }\n\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[reqLength - i - 1] = b;\n }\n } else {\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[i] = b;\n }\n\n for (; i < reqLength; i++) {\n res[i] = 0;\n }\n }\n\n return res;\n };\n\n if (Math.clz32) {\n BN.prototype._countBits = function _countBits (w) {\n return 32 - Math.clz32(w);\n };\n } else {\n BN.prototype._countBits = function _countBits (w) {\n var t = w;\n var r = 0;\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\n return r + t;\n };\n }\n\n BN.prototype._zeroBits = function _zeroBits (w) {\n // Short-cut\n if (w === 0) return 26;\n\n var t = w;\n var r = 0;\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n if ((t & 0x1) === 0) {\n r++;\n }\n return r;\n };\n\n // Return number of used bits in a BN\n BN.prototype.bitLength = function bitLength () {\n var w = this.words[this.length - 1];\n var hi = this._countBits(w);\n return (this.length - 1) * 26 + hi;\n };\n\n function toBitArray (num) {\n var w = new Array(num.bitLength());\n\n for (var bit = 0; bit < w.length; bit++) {\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n w[bit] = (num.words[off] & (1 << wbit)) >>> wbit;\n }\n\n return w;\n }\n\n // Number of trailing zero bits\n BN.prototype.zeroBits = function zeroBits () {\n if (this.isZero()) return 0;\n\n var r = 0;\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n r += b;\n if (b !== 26) break;\n }\n return r;\n };\n\n BN.prototype.byteLength = function byteLength () {\n return Math.ceil(this.bitLength() / 8);\n };\n\n BN.prototype.toTwos = function toTwos (width) {\n if (this.negative !== 0) {\n return this.abs().inotn(width).iaddn(1);\n }\n return this.clone();\n };\n\n BN.prototype.fromTwos = function fromTwos (width) {\n if (this.testn(width - 1)) {\n return this.notn(width).iaddn(1).ineg();\n }\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg () {\n return this.negative !== 0;\n };\n\n // Return negative clone of `this`\n BN.prototype.neg = function neg () {\n return this.clone().ineg();\n };\n\n BN.prototype.ineg = function ineg () {\n if (!this.isZero()) {\n this.negative ^= 1;\n }\n\n return this;\n };\n\n // Or `num` with `this` in-place\n BN.prototype.iuor = function iuor (num) {\n while (this.length < num.length) {\n this.words[this.length++] = 0;\n }\n\n for (var i = 0; i < num.length; i++) {\n this.words[i] = this.words[i] | num.words[i];\n }\n\n return this.strip();\n };\n\n BN.prototype.ior = function ior (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuor(num);\n };\n\n // Or `num` with `this`\n BN.prototype.or = function or (num) {\n if (this.length > num.length) return this.clone().ior(num);\n return num.clone().ior(this);\n };\n\n BN.prototype.uor = function uor (num) {\n if (this.length > num.length) return this.clone().iuor(num);\n return num.clone().iuor(this);\n };\n\n // And `num` with `this` in-place\n BN.prototype.iuand = function iuand (num) {\n // b = min-length(num, this)\n var b;\n if (this.length > num.length) {\n b = num;\n } else {\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = this.words[i] & num.words[i];\n }\n\n this.length = b.length;\n\n return this.strip();\n };\n\n BN.prototype.iand = function iand (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuand(num);\n };\n\n // And `num` with `this`\n BN.prototype.and = function and (num) {\n if (this.length > num.length) return this.clone().iand(num);\n return num.clone().iand(this);\n };\n\n BN.prototype.uand = function uand (num) {\n if (this.length > num.length) return this.clone().iuand(num);\n return num.clone().iuand(this);\n };\n\n // Xor `num` with `this` in-place\n BN.prototype.iuxor = function iuxor (num) {\n // a.length > b.length\n var a;\n var b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = a.words[i] ^ b.words[i];\n }\n\n if (this !== a) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = a.length;\n\n return this.strip();\n };\n\n BN.prototype.ixor = function ixor (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuxor(num);\n };\n\n // Xor `num` with `this`\n BN.prototype.xor = function xor (num) {\n if (this.length > num.length) return this.clone().ixor(num);\n return num.clone().ixor(this);\n };\n\n BN.prototype.uxor = function uxor (num) {\n if (this.length > num.length) return this.clone().iuxor(num);\n return num.clone().iuxor(this);\n };\n\n // Not ``this`` with ``width`` bitwidth\n BN.prototype.inotn = function inotn (width) {\n assert(typeof width === 'number' && width >= 0);\n\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26;\n\n // Extend the buffer with leading zeroes\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n }\n\n // Handle complete words\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n }\n\n // Handle the residue\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));\n }\n\n // And remove leading zeroes\n return this.strip();\n };\n\n BN.prototype.notn = function notn (width) {\n return this.clone().inotn(width);\n };\n\n // Set `bit` of `this`\n BN.prototype.setn = function setn (bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\n\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n this._expand(off + 1);\n\n if (val) {\n this.words[off] = this.words[off] | (1 << wbit);\n } else {\n this.words[off] = this.words[off] & ~(1 << wbit);\n }\n\n return this.strip();\n };\n\n // Add `num` to `this` in-place\n BN.prototype.iadd = function iadd (num) {\n var r;\n\n // negative + positive\n if (this.negative !== 0 && num.negative === 0) {\n this.negative = 0;\n r = this.isub(num);\n this.negative ^= 1;\n return this._normSign();\n\n // positive + negative\n } else if (this.negative === 0 && num.negative !== 0) {\n num.negative = 0;\n r = this.isub(num);\n num.negative = 1;\n return r._normSign();\n }\n\n // a.length > b.length\n var a, b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n this.length = a.length;\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++;\n // Copy the rest of the words\n } else if (a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n return this;\n };\n\n // Add `num` to `this`\n BN.prototype.add = function add (num) {\n var res;\n if (num.negative !== 0 && this.negative === 0) {\n num.negative = 0;\n res = this.sub(num);\n num.negative ^= 1;\n return res;\n } else if (num.negative === 0 && this.negative !== 0) {\n this.negative = 0;\n res = num.sub(this);\n this.negative = 1;\n return res;\n }\n\n if (this.length > num.length) return this.clone().iadd(num);\n\n return num.clone().iadd(this);\n };\n\n // Subtract `num` from `this` in-place\n BN.prototype.isub = function isub (num) {\n // this - (-num) = this + num\n if (num.negative !== 0) {\n num.negative = 0;\n var r = this.iadd(num);\n num.negative = 1;\n return r._normSign();\n\n // -this - num = -(this + num)\n } else if (this.negative !== 0) {\n this.negative = 0;\n this.iadd(num);\n this.negative = 1;\n return this._normSign();\n }\n\n // At this point both numbers are positive\n var cmp = this.cmp(num);\n\n // Optimization - zeroify\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n }\n\n // a > b\n var a, b;\n if (cmp > 0) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n\n // Copy rest of the words\n if (carry === 0 && i < a.length && a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = Math.max(this.length, i);\n\n if (a !== this) {\n this.negative = 1;\n }\n\n return this.strip();\n };\n\n // Subtract `num` from `this`\n BN.prototype.sub = function sub (num) {\n return this.clone().isub(num);\n };\n\n function smallMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n var len = (self.length + num.length) | 0;\n out.length = len;\n len = (len - 1) | 0;\n\n // Peel one iteration (compiler can't do it, because of code complexity)\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n var carry = (r / 0x4000000) | 0;\n out.words[0] = lo;\n\n for (var k = 1; k < len; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = carry >>> 26;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = (k - j) | 0;\n a = self.words[i] | 0;\n b = num.words[j] | 0;\n r = a * b + rword;\n ncarry += (r / 0x4000000) | 0;\n rword = r & 0x3ffffff;\n }\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n // TODO(indutny): it may be reasonable to omit it for users who don't need\n // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n // multiplication (like elliptic secp256k1).\n var comb10MulTo = function comb10MulTo (self, num, out) {\n var a = self.words;\n var b = num.words;\n var o = out.words;\n var c = 0;\n var lo;\n var mid;\n var hi;\n var a0 = a[0] | 0;\n var al0 = a0 & 0x1fff;\n var ah0 = a0 >>> 13;\n var a1 = a[1] | 0;\n var al1 = a1 & 0x1fff;\n var ah1 = a1 >>> 13;\n var a2 = a[2] | 0;\n var al2 = a2 & 0x1fff;\n var ah2 = a2 >>> 13;\n var a3 = a[3] | 0;\n var al3 = a3 & 0x1fff;\n var ah3 = a3 >>> 13;\n var a4 = a[4] | 0;\n var al4 = a4 & 0x1fff;\n var ah4 = a4 >>> 13;\n var a5 = a[5] | 0;\n var al5 = a5 & 0x1fff;\n var ah5 = a5 >>> 13;\n var a6 = a[6] | 0;\n var al6 = a6 & 0x1fff;\n var ah6 = a6 >>> 13;\n var a7 = a[7] | 0;\n var al7 = a7 & 0x1fff;\n var ah7 = a7 >>> 13;\n var a8 = a[8] | 0;\n var al8 = a8 & 0x1fff;\n var ah8 = a8 >>> 13;\n var a9 = a[9] | 0;\n var al9 = a9 & 0x1fff;\n var ah9 = a9 >>> 13;\n var b0 = b[0] | 0;\n var bl0 = b0 & 0x1fff;\n var bh0 = b0 >>> 13;\n var b1 = b[1] | 0;\n var bl1 = b1 & 0x1fff;\n var bh1 = b1 >>> 13;\n var b2 = b[2] | 0;\n var bl2 = b2 & 0x1fff;\n var bh2 = b2 >>> 13;\n var b3 = b[3] | 0;\n var bl3 = b3 & 0x1fff;\n var bh3 = b3 >>> 13;\n var b4 = b[4] | 0;\n var bl4 = b4 & 0x1fff;\n var bh4 = b4 >>> 13;\n var b5 = b[5] | 0;\n var bl5 = b5 & 0x1fff;\n var bh5 = b5 >>> 13;\n var b6 = b[6] | 0;\n var bl6 = b6 & 0x1fff;\n var bh6 = b6 >>> 13;\n var b7 = b[7] | 0;\n var bl7 = b7 & 0x1fff;\n var bh7 = b7 >>> 13;\n var b8 = b[8] | 0;\n var bl8 = b8 & 0x1fff;\n var bh8 = b8 >>> 13;\n var b9 = b[9] | 0;\n var bl9 = b9 & 0x1fff;\n var bh9 = b9 >>> 13;\n\n out.negative = self.negative ^ num.negative;\n out.length = 19;\n /* k = 0 */\n lo = Math.imul(al0, bl0);\n mid = Math.imul(al0, bh0);\n mid = (mid + Math.imul(ah0, bl0)) | 0;\n hi = Math.imul(ah0, bh0);\n var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;\n w0 &= 0x3ffffff;\n /* k = 1 */\n lo = Math.imul(al1, bl0);\n mid = Math.imul(al1, bh0);\n mid = (mid + Math.imul(ah1, bl0)) | 0;\n hi = Math.imul(ah1, bh0);\n lo = (lo + Math.imul(al0, bl1)) | 0;\n mid = (mid + Math.imul(al0, bh1)) | 0;\n mid = (mid + Math.imul(ah0, bl1)) | 0;\n hi = (hi + Math.imul(ah0, bh1)) | 0;\n var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;\n w1 &= 0x3ffffff;\n /* k = 2 */\n lo = Math.imul(al2, bl0);\n mid = Math.imul(al2, bh0);\n mid = (mid + Math.imul(ah2, bl0)) | 0;\n hi = Math.imul(ah2, bh0);\n lo = (lo + Math.imul(al1, bl1)) | 0;\n mid = (mid + Math.imul(al1, bh1)) | 0;\n mid = (mid + Math.imul(ah1, bl1)) | 0;\n hi = (hi + Math.imul(ah1, bh1)) | 0;\n lo = (lo + Math.imul(al0, bl2)) | 0;\n mid = (mid + Math.imul(al0, bh2)) | 0;\n mid = (mid + Math.imul(ah0, bl2)) | 0;\n hi = (hi + Math.imul(ah0, bh2)) | 0;\n var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;\n w2 &= 0x3ffffff;\n /* k = 3 */\n lo = Math.imul(al3, bl0);\n mid = Math.imul(al3, bh0);\n mid = (mid + Math.imul(ah3, bl0)) | 0;\n hi = Math.imul(ah3, bh0);\n lo = (lo + Math.imul(al2, bl1)) | 0;\n mid = (mid + Math.imul(al2, bh1)) | 0;\n mid = (mid + Math.imul(ah2, bl1)) | 0;\n hi = (hi + Math.imul(ah2, bh1)) | 0;\n lo = (lo + Math.imul(al1, bl2)) | 0;\n mid = (mid + Math.imul(al1, bh2)) | 0;\n mid = (mid + Math.imul(ah1, bl2)) | 0;\n hi = (hi + Math.imul(ah1, bh2)) | 0;\n lo = (lo + Math.imul(al0, bl3)) | 0;\n mid = (mid + Math.imul(al0, bh3)) | 0;\n mid = (mid + Math.imul(ah0, bl3)) | 0;\n hi = (hi + Math.imul(ah0, bh3)) | 0;\n var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;\n w3 &= 0x3ffffff;\n /* k = 4 */\n lo = Math.imul(al4, bl0);\n mid = Math.imul(al4, bh0);\n mid = (mid + Math.imul(ah4, bl0)) | 0;\n hi = Math.imul(ah4, bh0);\n lo = (lo + Math.imul(al3, bl1)) | 0;\n mid = (mid + Math.imul(al3, bh1)) | 0;\n mid = (mid + Math.imul(ah3, bl1)) | 0;\n hi = (hi + Math.imul(ah3, bh1)) | 0;\n lo = (lo + Math.imul(al2, bl2)) | 0;\n mid = (mid + Math.imul(al2, bh2)) | 0;\n mid = (mid + Math.imul(ah2, bl2)) | 0;\n hi = (hi + Math.imul(ah2, bh2)) | 0;\n lo = (lo + Math.imul(al1, bl3)) | 0;\n mid = (mid + Math.imul(al1, bh3)) | 0;\n mid = (mid + Math.imul(ah1, bl3)) | 0;\n hi = (hi + Math.imul(ah1, bh3)) | 0;\n lo = (lo + Math.imul(al0, bl4)) | 0;\n mid = (mid + Math.imul(al0, bh4)) | 0;\n mid = (mid + Math.imul(ah0, bl4)) | 0;\n hi = (hi + Math.imul(ah0, bh4)) | 0;\n var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;\n w4 &= 0x3ffffff;\n /* k = 5 */\n lo = Math.imul(al5, bl0);\n mid = Math.imul(al5, bh0);\n mid = (mid + Math.imul(ah5, bl0)) | 0;\n hi = Math.imul(ah5, bh0);\n lo = (lo + Math.imul(al4, bl1)) | 0;\n mid = (mid + Math.imul(al4, bh1)) | 0;\n mid = (mid + Math.imul(ah4, bl1)) | 0;\n hi = (hi + Math.imul(ah4, bh1)) | 0;\n lo = (lo + Math.imul(al3, bl2)) | 0;\n mid = (mid + Math.imul(al3, bh2)) | 0;\n mid = (mid + Math.imul(ah3, bl2)) | 0;\n hi = (hi + Math.imul(ah3, bh2)) | 0;\n lo = (lo + Math.imul(al2, bl3)) | 0;\n mid = (mid + Math.imul(al2, bh3)) | 0;\n mid = (mid + Math.imul(ah2, bl3)) | 0;\n hi = (hi + Math.imul(ah2, bh3)) | 0;\n lo = (lo + Math.imul(al1, bl4)) | 0;\n mid = (mid + Math.imul(al1, bh4)) | 0;\n mid = (mid + Math.imul(ah1, bl4)) | 0;\n hi = (hi + Math.imul(ah1, bh4)) | 0;\n lo = (lo + Math.imul(al0, bl5)) | 0;\n mid = (mid + Math.imul(al0, bh5)) | 0;\n mid = (mid + Math.imul(ah0, bl5)) | 0;\n hi = (hi + Math.imul(ah0, bh5)) | 0;\n var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;\n w5 &= 0x3ffffff;\n /* k = 6 */\n lo = Math.imul(al6, bl0);\n mid = Math.imul(al6, bh0);\n mid = (mid + Math.imul(ah6, bl0)) | 0;\n hi = Math.imul(ah6, bh0);\n lo = (lo + Math.imul(al5, bl1)) | 0;\n mid = (mid + Math.imul(al5, bh1)) | 0;\n mid = (mid + Math.imul(ah5, bl1)) | 0;\n hi = (hi + Math.imul(ah5, bh1)) | 0;\n lo = (lo + Math.imul(al4, bl2)) | 0;\n mid = (mid + Math.imul(al4, bh2)) | 0;\n mid = (mid + Math.imul(ah4, bl2)) | 0;\n hi = (hi + Math.imul(ah4, bh2)) | 0;\n lo = (lo + Math.imul(al3, bl3)) | 0;\n mid = (mid + Math.imul(al3, bh3)) | 0;\n mid = (mid + Math.imul(ah3, bl3)) | 0;\n hi = (hi + Math.imul(ah3, bh3)) | 0;\n lo = (lo + Math.imul(al2, bl4)) | 0;\n mid = (mid + Math.imul(al2, bh4)) | 0;\n mid = (mid + Math.imul(ah2, bl4)) | 0;\n hi = (hi + Math.imul(ah2, bh4)) | 0;\n lo = (lo + Math.imul(al1, bl5)) | 0;\n mid = (mid + Math.imul(al1, bh5)) | 0;\n mid = (mid + Math.imul(ah1, bl5)) | 0;\n hi = (hi + Math.imul(ah1, bh5)) | 0;\n lo = (lo + Math.imul(al0, bl6)) | 0;\n mid = (mid + Math.imul(al0, bh6)) | 0;\n mid = (mid + Math.imul(ah0, bl6)) | 0;\n hi = (hi + Math.imul(ah0, bh6)) | 0;\n var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;\n w6 &= 0x3ffffff;\n /* k = 7 */\n lo = Math.imul(al7, bl0);\n mid = Math.imul(al7, bh0);\n mid = (mid + Math.imul(ah7, bl0)) | 0;\n hi = Math.imul(ah7, bh0);\n lo = (lo + Math.imul(al6, bl1)) | 0;\n mid = (mid + Math.imul(al6, bh1)) | 0;\n mid = (mid + Math.imul(ah6, bl1)) | 0;\n hi = (hi + Math.imul(ah6, bh1)) | 0;\n lo = (lo + Math.imul(al5, bl2)) | 0;\n mid = (mid + Math.imul(al5, bh2)) | 0;\n mid = (mid + Math.imul(ah5, bl2)) | 0;\n hi = (hi + Math.imul(ah5, bh2)) | 0;\n lo = (lo + Math.imul(al4, bl3)) | 0;\n mid = (mid + Math.imul(al4, bh3)) | 0;\n mid = (mid + Math.imul(ah4, bl3)) | 0;\n hi = (hi + Math.imul(ah4, bh3)) | 0;\n lo = (lo + Math.imul(al3, bl4)) | 0;\n mid = (mid + Math.imul(al3, bh4)) | 0;\n mid = (mid + Math.imul(ah3, bl4)) | 0;\n hi = (hi + Math.imul(ah3, bh4)) | 0;\n lo = (lo + Math.imul(al2, bl5)) | 0;\n mid = (mid + Math.imul(al2, bh5)) | 0;\n mid = (mid + Math.imul(ah2, bl5)) | 0;\n hi = (hi + Math.imul(ah2, bh5)) | 0;\n lo = (lo + Math.imul(al1, bl6)) | 0;\n mid = (mid + Math.imul(al1, bh6)) | 0;\n mid = (mid + Math.imul(ah1, bl6)) | 0;\n hi = (hi + Math.imul(ah1, bh6)) | 0;\n lo = (lo + Math.imul(al0, bl7)) | 0;\n mid = (mid + Math.imul(al0, bh7)) | 0;\n mid = (mid + Math.imul(ah0, bl7)) | 0;\n hi = (hi + Math.imul(ah0, bh7)) | 0;\n var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;\n w7 &= 0x3ffffff;\n /* k = 8 */\n lo = Math.imul(al8, bl0);\n mid = Math.imul(al8, bh0);\n mid = (mid + Math.imul(ah8, bl0)) | 0;\n hi = Math.imul(ah8, bh0);\n lo = (lo + Math.imul(al7, bl1)) | 0;\n mid = (mid + Math.imul(al7, bh1)) | 0;\n mid = (mid + Math.imul(ah7, bl1)) | 0;\n hi = (hi + Math.imul(ah7, bh1)) | 0;\n lo = (lo + Math.imul(al6, bl2)) | 0;\n mid = (mid + Math.imul(al6, bh2)) | 0;\n mid = (mid + Math.imul(ah6, bl2)) | 0;\n hi = (hi + Math.imul(ah6, bh2)) | 0;\n lo = (lo + Math.imul(al5, bl3)) | 0;\n mid = (mid + Math.imul(al5, bh3)) | 0;\n mid = (mid + Math.imul(ah5, bl3)) | 0;\n hi = (hi + Math.imul(ah5, bh3)) | 0;\n lo = (lo + Math.imul(al4, bl4)) | 0;\n mid = (mid + Math.imul(al4, bh4)) | 0;\n mid = (mid + Math.imul(ah4, bl4)) | 0;\n hi = (hi + Math.imul(ah4, bh4)) | 0;\n lo = (lo + Math.imul(al3, bl5)) | 0;\n mid = (mid + Math.imul(al3, bh5)) | 0;\n mid = (mid + Math.imul(ah3, bl5)) | 0;\n hi = (hi + Math.imul(ah3, bh5)) | 0;\n lo = (lo + Math.imul(al2, bl6)) | 0;\n mid = (mid + Math.imul(al2, bh6)) | 0;\n mid = (mid + Math.imul(ah2, bl6)) | 0;\n hi = (hi + Math.imul(ah2, bh6)) | 0;\n lo = (lo + Math.imul(al1, bl7)) | 0;\n mid = (mid + Math.imul(al1, bh7)) | 0;\n mid = (mid + Math.imul(ah1, bl7)) | 0;\n hi = (hi + Math.imul(ah1, bh7)) | 0;\n lo = (lo + Math.imul(al0, bl8)) | 0;\n mid = (mid + Math.imul(al0, bh8)) | 0;\n mid = (mid + Math.imul(ah0, bl8)) | 0;\n hi = (hi + Math.imul(ah0, bh8)) | 0;\n var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;\n w8 &= 0x3ffffff;\n /* k = 9 */\n lo = Math.imul(al9, bl0);\n mid = Math.imul(al9, bh0);\n mid = (mid + Math.imul(ah9, bl0)) | 0;\n hi = Math.imul(ah9, bh0);\n lo = (lo + Math.imul(al8, bl1)) | 0;\n mid = (mid + Math.imul(al8, bh1)) | 0;\n mid = (mid + Math.imul(ah8, bl1)) | 0;\n hi = (hi + Math.imul(ah8, bh1)) | 0;\n lo = (lo + Math.imul(al7, bl2)) | 0;\n mid = (mid + Math.imul(al7, bh2)) | 0;\n mid = (mid + Math.imul(ah7, bl2)) | 0;\n hi = (hi + Math.imul(ah7, bh2)) | 0;\n lo = (lo + Math.imul(al6, bl3)) | 0;\n mid = (mid + Math.imul(al6, bh3)) | 0;\n mid = (mid + Math.imul(ah6, bl3)) | 0;\n hi = (hi + Math.imul(ah6, bh3)) | 0;\n lo = (lo + Math.imul(al5, bl4)) | 0;\n mid = (mid + Math.imul(al5, bh4)) | 0;\n mid = (mid + Math.imul(ah5, bl4)) | 0;\n hi = (hi + Math.imul(ah5, bh4)) | 0;\n lo = (lo + Math.imul(al4, bl5)) | 0;\n mid = (mid + Math.imul(al4, bh5)) | 0;\n mid = (mid + Math.imul(ah4, bl5)) | 0;\n hi = (hi + Math.imul(ah4, bh5)) | 0;\n lo = (lo + Math.imul(al3, bl6)) | 0;\n mid = (mid + Math.imul(al3, bh6)) | 0;\n mid = (mid + Math.imul(ah3, bl6)) | 0;\n hi = (hi + Math.imul(ah3, bh6)) | 0;\n lo = (lo + Math.imul(al2, bl7)) | 0;\n mid = (mid + Math.imul(al2, bh7)) | 0;\n mid = (mid + Math.imul(ah2, bl7)) | 0;\n hi = (hi + Math.imul(ah2, bh7)) | 0;\n lo = (lo + Math.imul(al1, bl8)) | 0;\n mid = (mid + Math.imul(al1, bh8)) | 0;\n mid = (mid + Math.imul(ah1, bl8)) | 0;\n hi = (hi + Math.imul(ah1, bh8)) | 0;\n lo = (lo + Math.imul(al0, bl9)) | 0;\n mid = (mid + Math.imul(al0, bh9)) | 0;\n mid = (mid + Math.imul(ah0, bl9)) | 0;\n hi = (hi + Math.imul(ah0, bh9)) | 0;\n var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;\n w9 &= 0x3ffffff;\n /* k = 10 */\n lo = Math.imul(al9, bl1);\n mid = Math.imul(al9, bh1);\n mid = (mid + Math.imul(ah9, bl1)) | 0;\n hi = Math.imul(ah9, bh1);\n lo = (lo + Math.imul(al8, bl2)) | 0;\n mid = (mid + Math.imul(al8, bh2)) | 0;\n mid = (mid + Math.imul(ah8, bl2)) | 0;\n hi = (hi + Math.imul(ah8, bh2)) | 0;\n lo = (lo + Math.imul(al7, bl3)) | 0;\n mid = (mid + Math.imul(al7, bh3)) | 0;\n mid = (mid + Math.imul(ah7, bl3)) | 0;\n hi = (hi + Math.imul(ah7, bh3)) | 0;\n lo = (lo + Math.imul(al6, bl4)) | 0;\n mid = (mid + Math.imul(al6, bh4)) | 0;\n mid = (mid + Math.imul(ah6, bl4)) | 0;\n hi = (hi + Math.imul(ah6, bh4)) | 0;\n lo = (lo + Math.imul(al5, bl5)) | 0;\n mid = (mid + Math.imul(al5, bh5)) | 0;\n mid = (mid + Math.imul(ah5, bl5)) | 0;\n hi = (hi + Math.imul(ah5, bh5)) | 0;\n lo = (lo + Math.imul(al4, bl6)) | 0;\n mid = (mid + Math.imul(al4, bh6)) | 0;\n mid = (mid + Math.imul(ah4, bl6)) | 0;\n hi = (hi + Math.imul(ah4, bh6)) | 0;\n lo = (lo + Math.imul(al3, bl7)) | 0;\n mid = (mid + Math.imul(al3, bh7)) | 0;\n mid = (mid + Math.imul(ah3, bl7)) | 0;\n hi = (hi + Math.imul(ah3, bh7)) | 0;\n lo = (lo + Math.imul(al2, bl8)) | 0;\n mid = (mid + Math.imul(al2, bh8)) | 0;\n mid = (mid + Math.imul(ah2, bl8)) | 0;\n hi = (hi + Math.imul(ah2, bh8)) | 0;\n lo = (lo + Math.imul(al1, bl9)) | 0;\n mid = (mid + Math.imul(al1, bh9)) | 0;\n mid = (mid + Math.imul(ah1, bl9)) | 0;\n hi = (hi + Math.imul(ah1, bh9)) | 0;\n var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;\n w10 &= 0x3ffffff;\n /* k = 11 */\n lo = Math.imul(al9, bl2);\n mid = Math.imul(al9, bh2);\n mid = (mid + Math.imul(ah9, bl2)) | 0;\n hi = Math.imul(ah9, bh2);\n lo = (lo + Math.imul(al8, bl3)) | 0;\n mid = (mid + Math.imul(al8, bh3)) | 0;\n mid = (mid + Math.imul(ah8, bl3)) | 0;\n hi = (hi + Math.imul(ah8, bh3)) | 0;\n lo = (lo + Math.imul(al7, bl4)) | 0;\n mid = (mid + Math.imul(al7, bh4)) | 0;\n mid = (mid + Math.imul(ah7, bl4)) | 0;\n hi = (hi + Math.imul(ah7, bh4)) | 0;\n lo = (lo + Math.imul(al6, bl5)) | 0;\n mid = (mid + Math.imul(al6, bh5)) | 0;\n mid = (mid + Math.imul(ah6, bl5)) | 0;\n hi = (hi + Math.imul(ah6, bh5)) | 0;\n lo = (lo + Math.imul(al5, bl6)) | 0;\n mid = (mid + Math.imul(al5, bh6)) | 0;\n mid = (mid + Math.imul(ah5, bl6)) | 0;\n hi = (hi + Math.imul(ah5, bh6)) | 0;\n lo = (lo + Math.imul(al4, bl7)) | 0;\n mid = (mid + Math.imul(al4, bh7)) | 0;\n mid = (mid + Math.imul(ah4, bl7)) | 0;\n hi = (hi + Math.imul(ah4, bh7)) | 0;\n lo = (lo + Math.imul(al3, bl8)) | 0;\n mid = (mid + Math.imul(al3, bh8)) | 0;\n mid = (mid + Math.imul(ah3, bl8)) | 0;\n hi = (hi + Math.imul(ah3, bh8)) | 0;\n lo = (lo + Math.imul(al2, bl9)) | 0;\n mid = (mid + Math.imul(al2, bh9)) | 0;\n mid = (mid + Math.imul(ah2, bl9)) | 0;\n hi = (hi + Math.imul(ah2, bh9)) | 0;\n var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;\n w11 &= 0x3ffffff;\n /* k = 12 */\n lo = Math.imul(al9, bl3);\n mid = Math.imul(al9, bh3);\n mid = (mid + Math.imul(ah9, bl3)) | 0;\n hi = Math.imul(ah9, bh3);\n lo = (lo + Math.imul(al8, bl4)) | 0;\n mid = (mid + Math.imul(al8, bh4)) | 0;\n mid = (mid + Math.imul(ah8, bl4)) | 0;\n hi = (hi + Math.imul(ah8, bh4)) | 0;\n lo = (lo + Math.imul(al7, bl5)) | 0;\n mid = (mid + Math.imul(al7, bh5)) | 0;\n mid = (mid + Math.imul(ah7, bl5)) | 0;\n hi = (hi + Math.imul(ah7, bh5)) | 0;\n lo = (lo + Math.imul(al6, bl6)) | 0;\n mid = (mid + Math.imul(al6, bh6)) | 0;\n mid = (mid + Math.imul(ah6, bl6)) | 0;\n hi = (hi + Math.imul(ah6, bh6)) | 0;\n lo = (lo + Math.imul(al5, bl7)) | 0;\n mid = (mid + Math.imul(al5, bh7)) | 0;\n mid = (mid + Math.imul(ah5, bl7)) | 0;\n hi = (hi + Math.imul(ah5, bh7)) | 0;\n lo = (lo + Math.imul(al4, bl8)) | 0;\n mid = (mid + Math.imul(al4, bh8)) | 0;\n mid = (mid + Math.imul(ah4, bl8)) | 0;\n hi = (hi + Math.imul(ah4, bh8)) | 0;\n lo = (lo + Math.imul(al3, bl9)) | 0;\n mid = (mid + Math.imul(al3, bh9)) | 0;\n mid = (mid + Math.imul(ah3, bl9)) | 0;\n hi = (hi + Math.imul(ah3, bh9)) | 0;\n var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;\n w12 &= 0x3ffffff;\n /* k = 13 */\n lo = Math.imul(al9, bl4);\n mid = Math.imul(al9, bh4);\n mid = (mid + Math.imul(ah9, bl4)) | 0;\n hi = Math.imul(ah9, bh4);\n lo = (lo + Math.imul(al8, bl5)) | 0;\n mid = (mid + Math.imul(al8, bh5)) | 0;\n mid = (mid + Math.imul(ah8, bl5)) | 0;\n hi = (hi + Math.imul(ah8, bh5)) | 0;\n lo = (lo + Math.imul(al7, bl6)) | 0;\n mid = (mid + Math.imul(al7, bh6)) | 0;\n mid = (mid + Math.imul(ah7, bl6)) | 0;\n hi = (hi + Math.imul(ah7, bh6)) | 0;\n lo = (lo + Math.imul(al6, bl7)) | 0;\n mid = (mid + Math.imul(al6, bh7)) | 0;\n mid = (mid + Math.imul(ah6, bl7)) | 0;\n hi = (hi + Math.imul(ah6, bh7)) | 0;\n lo = (lo + Math.imul(al5, bl8)) | 0;\n mid = (mid + Math.imul(al5, bh8)) | 0;\n mid = (mid + Math.imul(ah5, bl8)) | 0;\n hi = (hi + Math.imul(ah5, bh8)) | 0;\n lo = (lo + Math.imul(al4, bl9)) | 0;\n mid = (mid + Math.imul(al4, bh9)) | 0;\n mid = (mid + Math.imul(ah4, bl9)) | 0;\n hi = (hi + Math.imul(ah4, bh9)) | 0;\n var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;\n w13 &= 0x3ffffff;\n /* k = 14 */\n lo = Math.imul(al9, bl5);\n mid = Math.imul(al9, bh5);\n mid = (mid + Math.imul(ah9, bl5)) | 0;\n hi = Math.imul(ah9, bh5);\n lo = (lo + Math.imul(al8, bl6)) | 0;\n mid = (mid + Math.imul(al8, bh6)) | 0;\n mid = (mid + Math.imul(ah8, bl6)) | 0;\n hi = (hi + Math.imul(ah8, bh6)) | 0;\n lo = (lo + Math.imul(al7, bl7)) | 0;\n mid = (mid + Math.imul(al7, bh7)) | 0;\n mid = (mid + Math.imul(ah7, bl7)) | 0;\n hi = (hi + Math.imul(ah7, bh7)) | 0;\n lo = (lo + Math.imul(al6, bl8)) | 0;\n mid = (mid + Math.imul(al6, bh8)) | 0;\n mid = (mid + Math.imul(ah6, bl8)) | 0;\n hi = (hi + Math.imul(ah6, bh8)) | 0;\n lo = (lo + Math.imul(al5, bl9)) | 0;\n mid = (mid + Math.imul(al5, bh9)) | 0;\n mid = (mid + Math.imul(ah5, bl9)) | 0;\n hi = (hi + Math.imul(ah5, bh9)) | 0;\n var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;\n w14 &= 0x3ffffff;\n /* k = 15 */\n lo = Math.imul(al9, bl6);\n mid = Math.imul(al9, bh6);\n mid = (mid + Math.imul(ah9, bl6)) | 0;\n hi = Math.imul(ah9, bh6);\n lo = (lo + Math.imul(al8, bl7)) | 0;\n mid = (mid + Math.imul(al8, bh7)) | 0;\n mid = (mid + Math.imul(ah8, bl7)) | 0;\n hi = (hi + Math.imul(ah8, bh7)) | 0;\n lo = (lo + Math.imul(al7, bl8)) | 0;\n mid = (mid + Math.imul(al7, bh8)) | 0;\n mid = (mid + Math.imul(ah7, bl8)) | 0;\n hi = (hi + Math.imul(ah7, bh8)) | 0;\n lo = (lo + Math.imul(al6, bl9)) | 0;\n mid = (mid + Math.imul(al6, bh9)) | 0;\n mid = (mid + Math.imul(ah6, bl9)) | 0;\n hi = (hi + Math.imul(ah6, bh9)) | 0;\n var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;\n w15 &= 0x3ffffff;\n /* k = 16 */\n lo = Math.imul(al9, bl7);\n mid = Math.imul(al9, bh7);\n mid = (mid + Math.imul(ah9, bl7)) | 0;\n hi = Math.imul(ah9, bh7);\n lo = (lo + Math.imul(al8, bl8)) | 0;\n mid = (mid + Math.imul(al8, bh8)) | 0;\n mid = (mid + Math.imul(ah8, bl8)) | 0;\n hi = (hi + Math.imul(ah8, bh8)) | 0;\n lo = (lo + Math.imul(al7, bl9)) | 0;\n mid = (mid + Math.imul(al7, bh9)) | 0;\n mid = (mid + Math.imul(ah7, bl9)) | 0;\n hi = (hi + Math.imul(ah7, bh9)) | 0;\n var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;\n w16 &= 0x3ffffff;\n /* k = 17 */\n lo = Math.imul(al9, bl8);\n mid = Math.imul(al9, bh8);\n mid = (mid + Math.imul(ah9, bl8)) | 0;\n hi = Math.imul(ah9, bh8);\n lo = (lo + Math.imul(al8, bl9)) | 0;\n mid = (mid + Math.imul(al8, bh9)) | 0;\n mid = (mid + Math.imul(ah8, bl9)) | 0;\n hi = (hi + Math.imul(ah8, bh9)) | 0;\n var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;\n w17 &= 0x3ffffff;\n /* k = 18 */\n lo = Math.imul(al9, bl9);\n mid = Math.imul(al9, bh9);\n mid = (mid + Math.imul(ah9, bl9)) | 0;\n hi = Math.imul(ah9, bh9);\n var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;\n w18 &= 0x3ffffff;\n o[0] = w0;\n o[1] = w1;\n o[2] = w2;\n o[3] = w3;\n o[4] = w4;\n o[5] = w5;\n o[6] = w6;\n o[7] = w7;\n o[8] = w8;\n o[9] = w9;\n o[10] = w10;\n o[11] = w11;\n o[12] = w12;\n o[13] = w13;\n o[14] = w14;\n o[15] = w15;\n o[16] = w16;\n o[17] = w17;\n o[18] = w18;\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n return out;\n };\n\n // Polyfill comb\n if (!Math.imul) {\n comb10MulTo = smallMulTo;\n }\n\n function bigMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n out.length = self.length + num.length;\n\n var carry = 0;\n var hncarry = 0;\n for (var k = 0; k < out.length - 1; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = hncarry;\n hncarry = 0;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j;\n var a = self.words[i] | 0;\n var b = num.words[j] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;\n lo = (lo + rword) | 0;\n rword = lo & 0x3ffffff;\n ncarry = (ncarry + (lo >>> 26)) | 0;\n\n hncarry += ncarry >>> 26;\n ncarry &= 0x3ffffff;\n }\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\n if (carry !== 0) {\n out.words[k] = carry;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n function jumboMulTo (self, num, out) {\n var fftm = new FFTM();\n return fftm.mulp(self, num, out);\n }\n\n BN.prototype.mulTo = function mulTo (num, out) {\n var res;\n var len = this.length + num.length;\n if (this.length === 10 && num.length === 10) {\n res = comb10MulTo(this, num, out);\n } else if (len < 63) {\n res = smallMulTo(this, num, out);\n } else if (len < 1024) {\n res = bigMulTo(this, num, out);\n } else {\n res = jumboMulTo(this, num, out);\n }\n\n return res;\n };\n\n // Cooley-Tukey algorithm for FFT\n // slightly revisited to rely on looping instead of recursion\n\n function FFTM (x, y) {\n this.x = x;\n this.y = y;\n }\n\n FFTM.prototype.makeRBT = function makeRBT (N) {\n var t = new Array(N);\n var l = BN.prototype._countBits(N) - 1;\n for (var i = 0; i < N; i++) {\n t[i] = this.revBin(i, l, N);\n }\n\n return t;\n };\n\n // Returns binary-reversed representation of `x`\n FFTM.prototype.revBin = function revBin (x, l, N) {\n if (x === 0 || x === N - 1) return x;\n\n var rb = 0;\n for (var i = 0; i < l; i++) {\n rb |= (x & 1) << (l - i - 1);\n x >>= 1;\n }\n\n return rb;\n };\n\n // Performs \"tweedling\" phase, therefore 'emulating'\n // behaviour of the recursive algorithm\n FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {\n for (var i = 0; i < N; i++) {\n rtws[i] = rws[rbt[i]];\n itws[i] = iws[rbt[i]];\n }\n };\n\n FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {\n this.permute(rbt, rws, iws, rtws, itws, N);\n\n for (var s = 1; s < N; s <<= 1) {\n var l = s << 1;\n\n var rtwdf = Math.cos(2 * Math.PI / l);\n var itwdf = Math.sin(2 * Math.PI / l);\n\n for (var p = 0; p < N; p += l) {\n var rtwdf_ = rtwdf;\n var itwdf_ = itwdf;\n\n for (var j = 0; j < s; j++) {\n var re = rtws[p + j];\n var ie = itws[p + j];\n\n var ro = rtws[p + j + s];\n var io = itws[p + j + s];\n\n var rx = rtwdf_ * ro - itwdf_ * io;\n\n io = rtwdf_ * io + itwdf_ * ro;\n ro = rx;\n\n rtws[p + j] = re + ro;\n itws[p + j] = ie + io;\n\n rtws[p + j + s] = re - ro;\n itws[p + j + s] = ie - io;\n\n /* jshint maxdepth : false */\n if (j !== l) {\n rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n\n itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n rtwdf_ = rx;\n }\n }\n }\n }\n };\n\n FFTM.prototype.guessLen13b = function guessLen13b (n, m) {\n var N = Math.max(m, n) | 1;\n var odd = N & 1;\n var i = 0;\n for (N = N / 2 | 0; N; N = N >>> 1) {\n i++;\n }\n\n return 1 << i + 1 + odd;\n };\n\n FFTM.prototype.conjugate = function conjugate (rws, iws, N) {\n if (N <= 1) return;\n\n for (var i = 0; i < N / 2; i++) {\n var t = rws[i];\n\n rws[i] = rws[N - i - 1];\n rws[N - i - 1] = t;\n\n t = iws[i];\n\n iws[i] = -iws[N - i - 1];\n iws[N - i - 1] = -t;\n }\n };\n\n FFTM.prototype.normalize13b = function normalize13b (ws, N) {\n var carry = 0;\n for (var i = 0; i < N / 2; i++) {\n var w = Math.round(ws[2 * i + 1] / N) * 0x2000 +\n Math.round(ws[2 * i] / N) +\n carry;\n\n ws[i] = w & 0x3ffffff;\n\n if (w < 0x4000000) {\n carry = 0;\n } else {\n carry = w / 0x4000000 | 0;\n }\n }\n\n return ws;\n };\n\n FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {\n var carry = 0;\n for (var i = 0; i < len; i++) {\n carry = carry + (ws[i] | 0);\n\n rws[2 * i] = carry & 0x1fff; carry = carry >>> 13;\n rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13;\n }\n\n // Pad with zeroes\n for (i = 2 * len; i < N; ++i) {\n rws[i] = 0;\n }\n\n assert(carry === 0);\n assert((carry & ~0x1fff) === 0);\n };\n\n FFTM.prototype.stub = function stub (N) {\n var ph = new Array(N);\n for (var i = 0; i < N; i++) {\n ph[i] = 0;\n }\n\n return ph;\n };\n\n FFTM.prototype.mulp = function mulp (x, y, out) {\n var N = 2 * this.guessLen13b(x.length, y.length);\n\n var rbt = this.makeRBT(N);\n\n var _ = this.stub(N);\n\n var rws = new Array(N);\n var rwst = new Array(N);\n var iwst = new Array(N);\n\n var nrws = new Array(N);\n var nrwst = new Array(N);\n var niwst = new Array(N);\n\n var rmws = out.words;\n rmws.length = N;\n\n this.convert13b(x.words, x.length, rws, N);\n this.convert13b(y.words, y.length, nrws, N);\n\n this.transform(rws, _, rwst, iwst, N, rbt);\n this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n for (var i = 0; i < N; i++) {\n var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n rwst[i] = rx;\n }\n\n this.conjugate(rwst, iwst, N);\n this.transform(rwst, iwst, rmws, _, N, rbt);\n this.conjugate(rmws, _, N);\n this.normalize13b(rmws, N);\n\n out.negative = x.negative ^ y.negative;\n out.length = x.length + y.length;\n return out.strip();\n };\n\n // Multiply `this` by `num`\n BN.prototype.mul = function mul (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return this.mulTo(num, out);\n };\n\n // Multiply employing FFT\n BN.prototype.mulf = function mulf (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return jumboMulTo(this, num, out);\n };\n\n // In-place Multiplication\n BN.prototype.imul = function imul (num) {\n return this.clone().mulTo(num, this);\n };\n\n BN.prototype.imuln = function imuln (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n\n // Carry\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = (this.words[i] | 0) * num;\n var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n carry >>= 26;\n carry += (w / 0x4000000) | 0;\n // NOTE: lo is 27bit maximum\n carry += lo >>> 26;\n this.words[i] = lo & 0x3ffffff;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n\n return this;\n };\n\n BN.prototype.muln = function muln (num) {\n return this.clone().imuln(num);\n };\n\n // `this` * `this`\n BN.prototype.sqr = function sqr () {\n return this.mul(this);\n };\n\n // `this` * `this` in-place\n BN.prototype.isqr = function isqr () {\n return this.imul(this.clone());\n };\n\n // Math.pow(`this`, `num`)\n BN.prototype.pow = function pow (num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1);\n\n // Skip leading zeroes\n var res = this;\n for (var i = 0; i < w.length; i++, res = res.sqr()) {\n if (w[i] !== 0) break;\n }\n\n if (++i < w.length) {\n for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n if (w[i] === 0) continue;\n\n res = res.mul(q);\n }\n }\n\n return res;\n };\n\n // Shift-left in-place\n BN.prototype.iushln = function iushln (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);\n var i;\n\n if (r !== 0) {\n var carry = 0;\n\n for (i = 0; i < this.length; i++) {\n var newCarry = this.words[i] & carryMask;\n var c = ((this.words[i] | 0) - newCarry) << r;\n this.words[i] = c | carry;\n carry = newCarry >>> (26 - r);\n }\n\n if (carry) {\n this.words[i] = carry;\n this.length++;\n }\n }\n\n if (s !== 0) {\n for (i = this.length - 1; i >= 0; i--) {\n this.words[i + s] = this.words[i];\n }\n\n for (i = 0; i < s; i++) {\n this.words[i] = 0;\n }\n\n this.length += s;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishln = function ishln (bits) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushln(bits);\n };\n\n // Shift-right in-place\n // NOTE: `hint` is a lowest bit before trailing zeroes\n // NOTE: if `extended` is present - it will be filled with destroyed bits\n BN.prototype.iushrn = function iushrn (bits, hint, extended) {\n assert(typeof bits === 'number' && bits >= 0);\n var h;\n if (hint) {\n h = (hint - (hint % 26)) / 26;\n } else {\n h = 0;\n }\n\n var r = bits % 26;\n var s = Math.min((bits - r) / 26, this.length);\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n var maskedWords = extended;\n\n h -= s;\n h = Math.max(0, h);\n\n // Extended mode, copy masked part\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n maskedWords.length = s;\n }\n\n if (s === 0) {\n // No-op, we should not move anything at all\n } else if (this.length > s) {\n this.length -= s;\n for (i = 0; i < this.length; i++) {\n this.words[i] = this.words[i + s];\n }\n } else {\n this.words[0] = 0;\n this.length = 1;\n }\n\n var carry = 0;\n for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n var word = this.words[i] | 0;\n this.words[i] = (carry << (26 - r)) | (word >>> r);\n carry = word & mask;\n }\n\n // Push carried bits as a mask\n if (maskedWords && carry !== 0) {\n maskedWords.words[maskedWords.length++] = carry;\n }\n\n if (this.length === 0) {\n this.words[0] = 0;\n this.length = 1;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishrn = function ishrn (bits, hint, extended) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushrn(bits, hint, extended);\n };\n\n // Shift-left\n BN.prototype.shln = function shln (bits) {\n return this.clone().ishln(bits);\n };\n\n BN.prototype.ushln = function ushln (bits) {\n return this.clone().iushln(bits);\n };\n\n // Shift-right\n BN.prototype.shrn = function shrn (bits) {\n return this.clone().ishrn(bits);\n };\n\n BN.prototype.ushrn = function ushrn (bits) {\n return this.clone().iushrn(bits);\n };\n\n // Test if n bit is set\n BN.prototype.testn = function testn (bit) {\n assert(typeof bit === 'number' && bit >= 0);\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) return false;\n\n // Check bit and return\n var w = this.words[s];\n\n return !!(w & q);\n };\n\n // Return only lowers bits of number (in-place)\n BN.prototype.imaskn = function imaskn (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n\n assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n if (this.length <= s) {\n return this;\n }\n\n if (r !== 0) {\n s++;\n }\n this.length = Math.min(s, this.length);\n\n if (r !== 0) {\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n this.words[this.length - 1] &= mask;\n }\n\n return this.strip();\n };\n\n // Return only lowers bits of number\n BN.prototype.maskn = function maskn (bits) {\n return this.clone().imaskn(bits);\n };\n\n // Add plain number `num` to `this`\n BN.prototype.iaddn = function iaddn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.isubn(-num);\n\n // Possible sign change\n if (this.negative !== 0) {\n if (this.length === 1 && (this.words[0] | 0) < num) {\n this.words[0] = num - (this.words[0] | 0);\n this.negative = 0;\n return this;\n }\n\n this.negative = 0;\n this.isubn(num);\n this.negative = 1;\n return this;\n }\n\n // Add without checks\n return this._iaddn(num);\n };\n\n BN.prototype._iaddn = function _iaddn (num) {\n this.words[0] += num;\n\n // Carry\n for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n this.words[i] -= 0x4000000;\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n this.length = Math.max(this.length, i + 1);\n\n return this;\n };\n\n // Subtract plain number `num` from `this`\n BN.prototype.isubn = function isubn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.iaddn(-num);\n\n if (this.negative !== 0) {\n this.negative = 0;\n this.iaddn(num);\n this.negative = 1;\n return this;\n }\n\n this.words[0] -= num;\n\n if (this.length === 1 && this.words[0] < 0) {\n this.words[0] = -this.words[0];\n this.negative = 1;\n } else {\n // Carry\n for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n this.words[i] += 0x4000000;\n this.words[i + 1] -= 1;\n }\n }\n\n return this.strip();\n };\n\n BN.prototype.addn = function addn (num) {\n return this.clone().iaddn(num);\n };\n\n BN.prototype.subn = function subn (num) {\n return this.clone().isubn(num);\n };\n\n BN.prototype.iabs = function iabs () {\n this.negative = 0;\n\n return this;\n };\n\n BN.prototype.abs = function abs () {\n return this.clone().iabs();\n };\n\n BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {\n var len = num.length + shift;\n var i;\n\n this._expand(len);\n\n var w;\n var carry = 0;\n for (i = 0; i < num.length; i++) {\n w = (this.words[i + shift] | 0) + carry;\n var right = (num.words[i] | 0) * mul;\n w -= right & 0x3ffffff;\n carry = (w >> 26) - ((right / 0x4000000) | 0);\n this.words[i + shift] = w & 0x3ffffff;\n }\n for (; i < this.length - shift; i++) {\n w = (this.words[i + shift] | 0) + carry;\n carry = w >> 26;\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n if (carry === 0) return this.strip();\n\n // Subtraction overflow\n assert(carry === -1);\n carry = 0;\n for (i = 0; i < this.length; i++) {\n w = -(this.words[i] | 0) + carry;\n carry = w >> 26;\n this.words[i] = w & 0x3ffffff;\n }\n this.negative = 1;\n\n return this.strip();\n };\n\n BN.prototype._wordDiv = function _wordDiv (num, mode) {\n var shift = this.length - num.length;\n\n var a = this.clone();\n var b = num;\n\n // Normalize\n var bhi = b.words[b.length - 1] | 0;\n var bhiBits = this._countBits(bhi);\n shift = 26 - bhiBits;\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n }\n\n // Initialize quotient\n var m = a.length - b.length;\n var q;\n\n if (mode !== 'mod') {\n q = new BN(null);\n q.length = m + 1;\n q.words = new Array(q.length);\n for (var i = 0; i < q.length; i++) {\n q.words[i] = 0;\n }\n }\n\n var diff = a.clone()._ishlnsubmul(b, 1, m);\n if (diff.negative === 0) {\n a = diff;\n if (q) {\n q.words[m] = 1;\n }\n }\n\n for (var j = m - 1; j >= 0; j--) {\n var qj = (a.words[b.length + j] | 0) * 0x4000000 +\n (a.words[b.length + j - 1] | 0);\n\n // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n // (0x7ffffff)\n qj = Math.min((qj / bhi) | 0, 0x3ffffff);\n\n a._ishlnsubmul(b, qj, j);\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n a._ishlnsubmul(b, 1, j);\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n if (q) {\n q.words[j] = qj;\n }\n }\n if (q) {\n q.strip();\n }\n a.strip();\n\n // Denormalize\n if (mode !== 'div' && shift !== 0) {\n a.iushrn(shift);\n }\n\n return {\n div: q || null,\n mod: a\n };\n };\n\n // NOTE: 1) `mode` can be set to `mod` to request mod only,\n // to `div` to request div only, or be absent to\n // request both div & mod\n // 2) `positive` is true if unsigned mod is requested\n BN.prototype.divmod = function divmod (num, mode, positive) {\n assert(!num.isZero());\n\n if (this.isZero()) {\n return {\n div: new BN(0),\n mod: new BN(0)\n };\n }\n\n var div, mod, res;\n if (this.negative !== 0 && num.negative === 0) {\n res = this.neg().divmod(num, mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.iadd(num);\n }\n }\n\n return {\n div: div,\n mod: mod\n };\n }\n\n if (this.negative === 0 && num.negative !== 0) {\n res = this.divmod(num.neg(), mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n return {\n div: div,\n mod: res.mod\n };\n }\n\n if ((this.negative & num.negative) !== 0) {\n res = this.neg().divmod(num.neg(), mode);\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n\n return {\n div: res.div,\n mod: mod\n };\n }\n\n // Both numbers are positive at this point\n\n // Strip both numbers to approximate shift value\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n }\n\n // Very short reduction\n if (num.length === 1) {\n if (mode === 'div') {\n return {\n div: this.divn(num.words[0]),\n mod: null\n };\n }\n\n if (mode === 'mod') {\n return {\n div: null,\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return this._wordDiv(num, mode);\n };\n\n // Find `this` / `num`\n BN.prototype.div = function div (num) {\n return this.divmod(num, 'div', false).div;\n };\n\n // Find `this` % `num`\n BN.prototype.mod = function mod (num) {\n return this.divmod(num, 'mod', false).mod;\n };\n\n BN.prototype.umod = function umod (num) {\n return this.divmod(num, 'mod', true).mod;\n };\n\n // Find Round(`this` / `num`)\n BN.prototype.divRound = function divRound (num) {\n var dm = this.divmod(num);\n\n // Fast case - exact division\n if (dm.mod.isZero()) return dm.div;\n\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half);\n\n // Round down\n if (cmp < 0 || r2 === 1 && cmp === 0) return dm.div;\n\n // Round up\n return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n };\n\n BN.prototype.modn = function modn (num) {\n assert(num <= 0x3ffffff);\n var p = (1 << 26) % num;\n\n var acc = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n acc = (p * acc + (this.words[i] | 0)) % num;\n }\n\n return acc;\n };\n\n // In-place division by number\n BN.prototype.idivn = function idivn (num) {\n assert(num <= 0x3ffffff);\n\n var carry = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var w = (this.words[i] | 0) + carry * 0x4000000;\n this.words[i] = (w / num) | 0;\n carry = w % num;\n }\n\n return this.strip();\n };\n\n BN.prototype.divn = function divn (num) {\n return this.clone().idivn(num);\n };\n\n BN.prototype.egcd = function egcd (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var x = this;\n var y = p.clone();\n\n if (x.negative !== 0) {\n x = x.umod(p);\n } else {\n x = x.clone();\n }\n\n // A * x + B * y = x\n var A = new BN(1);\n var B = new BN(0);\n\n // C * x + D * y = y\n var C = new BN(0);\n var D = new BN(1);\n\n var g = 0;\n\n while (x.isEven() && y.isEven()) {\n x.iushrn(1);\n y.iushrn(1);\n ++g;\n }\n\n var yp = y.clone();\n var xp = x.clone();\n\n while (!x.isZero()) {\n for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n x.iushrn(i);\n while (i-- > 0) {\n if (A.isOdd() || B.isOdd()) {\n A.iadd(yp);\n B.isub(xp);\n }\n\n A.iushrn(1);\n B.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n y.iushrn(j);\n while (j-- > 0) {\n if (C.isOdd() || D.isOdd()) {\n C.iadd(yp);\n D.isub(xp);\n }\n\n C.iushrn(1);\n D.iushrn(1);\n }\n }\n\n if (x.cmp(y) >= 0) {\n x.isub(y);\n A.isub(C);\n B.isub(D);\n } else {\n y.isub(x);\n C.isub(A);\n D.isub(B);\n }\n }\n\n return {\n a: C,\n b: D,\n gcd: y.iushln(g)\n };\n };\n\n // This is reduced incarnation of the binary EEA\n // above, designated to invert members of the\n // _prime_ fields F(p) at a maximal speed\n BN.prototype._invmp = function _invmp (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var a = this;\n var b = p.clone();\n\n if (a.negative !== 0) {\n a = a.umod(p);\n } else {\n a = a.clone();\n }\n\n var x1 = new BN(1);\n var x2 = new BN(0);\n\n var delta = b.clone();\n\n while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n a.iushrn(i);\n while (i-- > 0) {\n if (x1.isOdd()) {\n x1.iadd(delta);\n }\n\n x1.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n b.iushrn(j);\n while (j-- > 0) {\n if (x2.isOdd()) {\n x2.iadd(delta);\n }\n\n x2.iushrn(1);\n }\n }\n\n if (a.cmp(b) >= 0) {\n a.isub(b);\n x1.isub(x2);\n } else {\n b.isub(a);\n x2.isub(x1);\n }\n }\n\n var res;\n if (a.cmpn(1) === 0) {\n res = x1;\n } else {\n res = x2;\n }\n\n if (res.cmpn(0) < 0) {\n res.iadd(p);\n }\n\n return res;\n };\n\n BN.prototype.gcd = function gcd (num) {\n if (this.isZero()) return num.abs();\n if (num.isZero()) return this.abs();\n\n var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0;\n\n // Remove common factor of two\n for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n a.iushrn(1);\n b.iushrn(1);\n }\n\n do {\n while (a.isEven()) {\n a.iushrn(1);\n }\n while (b.isEven()) {\n b.iushrn(1);\n }\n\n var r = a.cmp(b);\n if (r < 0) {\n // Swap `a` and `b` to make `a` always bigger than `b`\n var t = a;\n a = b;\n b = t;\n } else if (r === 0 || b.cmpn(1) === 0) {\n break;\n }\n\n a.isub(b);\n } while (true);\n\n return b.iushln(shift);\n };\n\n // Invert number in the field F(num)\n BN.prototype.invm = function invm (num) {\n return this.egcd(num).a.umod(num);\n };\n\n BN.prototype.isEven = function isEven () {\n return (this.words[0] & 1) === 0;\n };\n\n BN.prototype.isOdd = function isOdd () {\n return (this.words[0] & 1) === 1;\n };\n\n // And first word and num\n BN.prototype.andln = function andln (num) {\n return this.words[0] & num;\n };\n\n // Increment at the bit position in-line\n BN.prototype.bincn = function bincn (bit) {\n assert(typeof bit === 'number');\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) {\n this._expand(s + 1);\n this.words[s] |= q;\n return this;\n }\n\n // Add bit and propagate, if needed\n var carry = q;\n for (var i = s; carry !== 0 && i < this.length; i++) {\n var w = this.words[i] | 0;\n w += carry;\n carry = w >>> 26;\n w &= 0x3ffffff;\n this.words[i] = w;\n }\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n return this;\n };\n\n BN.prototype.isZero = function isZero () {\n return this.length === 1 && this.words[0] === 0;\n };\n\n BN.prototype.cmpn = function cmpn (num) {\n var negative = num < 0;\n\n if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n\n this.strip();\n\n var res;\n if (this.length > 1) {\n res = 1;\n } else {\n if (negative) {\n num = -num;\n }\n\n assert(num <= 0x3ffffff, 'Number is too big');\n\n var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Compare two numbers and return:\n // 1 - if `this` > `num`\n // 0 - if `this` == `num`\n // -1 - if `this` < `num`\n BN.prototype.cmp = function cmp (num) {\n if (this.negative !== 0 && num.negative === 0) return -1;\n if (this.negative === 0 && num.negative !== 0) return 1;\n\n var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Unsigned comparison\n BN.prototype.ucmp = function ucmp (num) {\n // At this point both numbers have the same sign\n if (this.length > num.length) return 1;\n if (this.length < num.length) return -1;\n\n var res = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var a = this.words[i] | 0;\n var b = num.words[i] | 0;\n\n if (a === b) continue;\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n break;\n }\n return res;\n };\n\n BN.prototype.gtn = function gtn (num) {\n return this.cmpn(num) === 1;\n };\n\n BN.prototype.gt = function gt (num) {\n return this.cmp(num) === 1;\n };\n\n BN.prototype.gten = function gten (num) {\n return this.cmpn(num) >= 0;\n };\n\n BN.prototype.gte = function gte (num) {\n return this.cmp(num) >= 0;\n };\n\n BN.prototype.ltn = function ltn (num) {\n return this.cmpn(num) === -1;\n };\n\n BN.prototype.lt = function lt (num) {\n return this.cmp(num) === -1;\n };\n\n BN.prototype.lten = function lten (num) {\n return this.cmpn(num) <= 0;\n };\n\n BN.prototype.lte = function lte (num) {\n return this.cmp(num) <= 0;\n };\n\n BN.prototype.eqn = function eqn (num) {\n return this.cmpn(num) === 0;\n };\n\n BN.prototype.eq = function eq (num) {\n return this.cmp(num) === 0;\n };\n\n //\n // A reduce context, could be using montgomery or something better, depending\n // on the `m` itself.\n //\n BN.red = function red (num) {\n return new Red(num);\n };\n\n BN.prototype.toRed = function toRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n assert(this.negative === 0, 'red works only with positives');\n return ctx.convertTo(this)._forceRed(ctx);\n };\n\n BN.prototype.fromRed = function fromRed () {\n assert(this.red, 'fromRed works only with numbers in reduction context');\n return this.red.convertFrom(this);\n };\n\n BN.prototype._forceRed = function _forceRed (ctx) {\n this.red = ctx;\n return this;\n };\n\n BN.prototype.forceRed = function forceRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n return this._forceRed(ctx);\n };\n\n BN.prototype.redAdd = function redAdd (num) {\n assert(this.red, 'redAdd works only with red numbers');\n return this.red.add(this, num);\n };\n\n BN.prototype.redIAdd = function redIAdd (num) {\n assert(this.red, 'redIAdd works only with red numbers');\n return this.red.iadd(this, num);\n };\n\n BN.prototype.redSub = function redSub (num) {\n assert(this.red, 'redSub works only with red numbers');\n return this.red.sub(this, num);\n };\n\n BN.prototype.redISub = function redISub (num) {\n assert(this.red, 'redISub works only with red numbers');\n return this.red.isub(this, num);\n };\n\n BN.prototype.redShl = function redShl (num) {\n assert(this.red, 'redShl works only with red numbers');\n return this.red.shl(this, num);\n };\n\n BN.prototype.redMul = function redMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.mul(this, num);\n };\n\n BN.prototype.redIMul = function redIMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.imul(this, num);\n };\n\n BN.prototype.redSqr = function redSqr () {\n assert(this.red, 'redSqr works only with red numbers');\n this.red._verify1(this);\n return this.red.sqr(this);\n };\n\n BN.prototype.redISqr = function redISqr () {\n assert(this.red, 'redISqr works only with red numbers');\n this.red._verify1(this);\n return this.red.isqr(this);\n };\n\n // Square root over p\n BN.prototype.redSqrt = function redSqrt () {\n assert(this.red, 'redSqrt works only with red numbers');\n this.red._verify1(this);\n return this.red.sqrt(this);\n };\n\n BN.prototype.redInvm = function redInvm () {\n assert(this.red, 'redInvm works only with red numbers');\n this.red._verify1(this);\n return this.red.invm(this);\n };\n\n // Return negative clone of `this` % `red modulo`\n BN.prototype.redNeg = function redNeg () {\n assert(this.red, 'redNeg works only with red numbers');\n this.red._verify1(this);\n return this.red.neg(this);\n };\n\n BN.prototype.redPow = function redPow (num) {\n assert(this.red && !num.red, 'redPow(normalNum)');\n this.red._verify1(this);\n return this.red.pow(this, num);\n };\n\n // Prime numbers with efficient reduction\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n };\n\n // Pseudo-Mersenne prime\n function MPrime (name, p) {\n // P = 2 ^ N - K\n this.name = name;\n this.p = new BN(p, 16);\n this.n = this.p.bitLength();\n this.k = new BN(1).iushln(this.n).isub(this.p);\n\n this.tmp = this._tmp();\n }\n\n MPrime.prototype._tmp = function _tmp () {\n var tmp = new BN(null);\n tmp.words = new Array(Math.ceil(this.n / 13));\n return tmp;\n };\n\n MPrime.prototype.ireduce = function ireduce (num) {\n // Assumes that `num` is less than `P^2`\n // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n var r = num;\n var rlen;\n\n do {\n this.split(r, this.tmp);\n r = this.imulK(r);\n r = r.iadd(this.tmp);\n rlen = r.bitLength();\n } while (rlen > this.n);\n\n var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n if (cmp === 0) {\n r.words[0] = 0;\n r.length = 1;\n } else if (cmp > 0) {\n r.isub(this.p);\n } else {\n if (r.strip !== undefined) {\n // r is BN v4 instance\n r.strip();\n } else {\n // r is BN v5 instance\n r._strip();\n }\n }\n\n return r;\n };\n\n MPrime.prototype.split = function split (input, out) {\n input.iushrn(this.n, 0, out);\n };\n\n MPrime.prototype.imulK = function imulK (num) {\n return num.imul(this.k);\n };\n\n function K256 () {\n MPrime.call(\n this,\n 'k256',\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n }\n inherits(K256, MPrime);\n\n K256.prototype.split = function split (input, output) {\n // 256 = 9 * 26 + 22\n var mask = 0x3fffff;\n\n var outLen = Math.min(input.length, 9);\n for (var i = 0; i < outLen; i++) {\n output.words[i] = input.words[i];\n }\n output.length = outLen;\n\n if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n }\n\n // Shift by 9 limbs\n var prev = input.words[9];\n output.words[output.length++] = prev & mask;\n\n for (i = 10; i < input.length; i++) {\n var next = input.words[i] | 0;\n input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22);\n prev = next;\n }\n prev >>>= 22;\n input.words[i - 10] = prev;\n if (prev === 0 && input.length > 10) {\n input.length -= 10;\n } else {\n input.length -= 9;\n }\n };\n\n K256.prototype.imulK = function imulK (num) {\n // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n num.words[num.length] = 0;\n num.words[num.length + 1] = 0;\n num.length += 2;\n\n // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n var lo = 0;\n for (var i = 0; i < num.length; i++) {\n var w = num.words[i] | 0;\n lo += w * 0x3d1;\n num.words[i] = lo & 0x3ffffff;\n lo = w * 0x40 + ((lo / 0x4000000) | 0);\n }\n\n // Fast length reduction\n if (num.words[num.length - 1] === 0) {\n num.length--;\n if (num.words[num.length - 1] === 0) {\n num.length--;\n }\n }\n return num;\n };\n\n function P224 () {\n MPrime.call(\n this,\n 'p224',\n 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n }\n inherits(P224, MPrime);\n\n function P192 () {\n MPrime.call(\n this,\n 'p192',\n 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n }\n inherits(P192, MPrime);\n\n function P25519 () {\n // 2 ^ 255 - 19\n MPrime.call(\n this,\n '25519',\n '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n }\n inherits(P25519, MPrime);\n\n P25519.prototype.imulK = function imulK (num) {\n // K = 0x13\n var carry = 0;\n for (var i = 0; i < num.length; i++) {\n var hi = (num.words[i] | 0) * 0x13 + carry;\n var lo = hi & 0x3ffffff;\n hi >>>= 26;\n\n num.words[i] = lo;\n carry = hi;\n }\n if (carry !== 0) {\n num.words[num.length++] = carry;\n }\n return num;\n };\n\n // Exported mostly for testing purposes, use plain name instead\n BN._prime = function prime (name) {\n // Cached version of prime\n if (primes[name]) return primes[name];\n\n var prime;\n if (name === 'k256') {\n prime = new K256();\n } else if (name === 'p224') {\n prime = new P224();\n } else if (name === 'p192') {\n prime = new P192();\n } else if (name === 'p25519') {\n prime = new P25519();\n } else {\n throw new Error('Unknown prime ' + name);\n }\n primes[name] = prime;\n\n return prime;\n };\n\n //\n // Base reduction engine\n //\n function Red (m) {\n if (typeof m === 'string') {\n var prime = BN._prime(m);\n this.m = prime.p;\n this.prime = prime;\n } else {\n assert(m.gtn(1), 'modulus must be greater than 1');\n this.m = m;\n this.prime = null;\n }\n }\n\n Red.prototype._verify1 = function _verify1 (a) {\n assert(a.negative === 0, 'red works only with positives');\n assert(a.red, 'red works only with red numbers');\n };\n\n Red.prototype._verify2 = function _verify2 (a, b) {\n assert((a.negative | b.negative) === 0, 'red works only with positives');\n assert(a.red && a.red === b.red,\n 'red works only with red numbers');\n };\n\n Red.prototype.imod = function imod (a) {\n if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n return a.umod(this.m)._forceRed(this);\n };\n\n Red.prototype.neg = function neg (a) {\n if (a.isZero()) {\n return a.clone();\n }\n\n return this.m.sub(a)._forceRed(this);\n };\n\n Red.prototype.add = function add (a, b) {\n this._verify2(a, b);\n\n var res = a.add(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.iadd = function iadd (a, b) {\n this._verify2(a, b);\n\n var res = a.iadd(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res;\n };\n\n Red.prototype.sub = function sub (a, b) {\n this._verify2(a, b);\n\n var res = a.sub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.isub = function isub (a, b) {\n this._verify2(a, b);\n\n var res = a.isub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res;\n };\n\n Red.prototype.shl = function shl (a, num) {\n this._verify1(a);\n return this.imod(a.ushln(num));\n };\n\n Red.prototype.imul = function imul (a, b) {\n this._verify2(a, b);\n return this.imod(a.imul(b));\n };\n\n Red.prototype.mul = function mul (a, b) {\n this._verify2(a, b);\n return this.imod(a.mul(b));\n };\n\n Red.prototype.isqr = function isqr (a) {\n return this.imul(a, a.clone());\n };\n\n Red.prototype.sqr = function sqr (a) {\n return this.mul(a, a);\n };\n\n Red.prototype.sqrt = function sqrt (a) {\n if (a.isZero()) return a.clone();\n\n var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1);\n\n // Fast case\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n }\n\n // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n //\n // Find Q and S, that Q * 2 ^ S = (P - 1)\n var q = this.m.subn(1);\n var s = 0;\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n assert(!q.isZero());\n\n var one = new BN(1).toRed(this);\n var nOne = one.redNeg();\n\n // Find quadratic non-residue\n // NOTE: Max is such because of generalized Riemann hypothesis.\n var lpow = this.m.subn(1).iushrn(1);\n var z = this.m.bitLength();\n z = new BN(2 * z * z).toRed(this);\n\n while (this.pow(z, lpow).cmp(nOne) !== 0) {\n z.redIAdd(nOne);\n }\n\n var c = this.pow(z, q);\n var r = this.pow(a, q.addn(1).iushrn(1));\n var t = this.pow(a, q);\n var m = s;\n while (t.cmp(one) !== 0) {\n var tmp = t;\n for (var i = 0; tmp.cmp(one) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\n\n r = r.redMul(b);\n c = b.redSqr();\n t = t.redMul(c);\n m = i;\n }\n\n return r;\n };\n\n Red.prototype.invm = function invm (a) {\n var inv = a._invmp(this.m);\n if (inv.negative !== 0) {\n inv.negative = 0;\n return this.imod(inv).redNeg();\n } else {\n return this.imod(inv);\n }\n };\n\n Red.prototype.pow = function pow (a, num) {\n if (num.isZero()) return new BN(1).toRed(this);\n if (num.cmpn(1) === 0) return a.clone();\n\n var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n for (var i = 2; i < wnd.length; i++) {\n wnd[i] = this.mul(wnd[i - 1], a);\n }\n\n var res = wnd[0];\n var current = 0;\n var currentLen = 0;\n var start = num.bitLength() % 26;\n if (start === 0) {\n start = 26;\n }\n\n for (i = num.length - 1; i >= 0; i--) {\n var word = num.words[i];\n for (var j = start - 1; j >= 0; j--) {\n var bit = (word >> j) & 1;\n if (res !== wnd[0]) {\n res = this.sqr(res);\n }\n\n if (bit === 0 && current === 0) {\n currentLen = 0;\n continue;\n }\n\n current <<= 1;\n current |= bit;\n currentLen++;\n if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n\n res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\n start = 26;\n }\n\n return res;\n };\n\n Red.prototype.convertTo = function convertTo (num) {\n var r = num.umod(this.m);\n\n return r === num ? r.clone() : r;\n };\n\n Red.prototype.convertFrom = function convertFrom (num) {\n var res = num.clone();\n res.red = null;\n return res;\n };\n\n //\n // Montgomery method engine\n //\n\n BN.mont = function mont (num) {\n return new Mont(num);\n };\n\n function Mont (m) {\n Red.call(this, m);\n\n this.shift = this.m.bitLength();\n if (this.shift % 26 !== 0) {\n this.shift += 26 - (this.shift % 26);\n }\n\n this.r = new BN(1).iushln(this.shift);\n this.r2 = this.imod(this.r.sqr());\n this.rinv = this.r._invmp(this.m);\n\n this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n this.minv = this.minv.umod(this.r);\n this.minv = this.r.sub(this.minv);\n }\n inherits(Mont, Red);\n\n Mont.prototype.convertTo = function convertTo (num) {\n return this.imod(num.ushln(this.shift));\n };\n\n Mont.prototype.convertFrom = function convertFrom (num) {\n var r = this.imod(num.mul(this.rinv));\n r.red = null;\n return r;\n };\n\n Mont.prototype.imul = function imul (a, b) {\n if (a.isZero() || b.isZero()) {\n a.words[0] = 0;\n a.length = 1;\n return a;\n }\n\n var t = a.imul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.mul = function mul (a, b) {\n if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n\n var t = a.mul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.invm = function invm (a) {\n // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n var res = this.imod(a._invmp(this.m).mul(this.r2));\n return res._forceRed(this);\n };\n})(typeof module === 'undefined' || module, this);\n", "module.exports = assert;\n\nfunction assert(val, msg) {\n if (!val)\n throw new Error(msg || 'Assertion failed');\n}\n\nassert.equal = function assertEqual(l, r, msg) {\n if (l != r)\n throw new Error(msg || ('Assertion failed: ' + l + ' != ' + r));\n};\n", "'use strict';\n\nvar utils = exports;\n\nfunction toArray(msg, enc) {\n if (Array.isArray(msg))\n return msg.slice();\n if (!msg)\n return [];\n var res = [];\n if (typeof msg !== 'string') {\n for (var i = 0; i < msg.length; i++)\n res[i] = msg[i] | 0;\n return res;\n }\n if (enc === 'hex') {\n msg = msg.replace(/[^a-z0-9]+/ig, '');\n if (msg.length % 2 !== 0)\n msg = '0' + msg;\n for (var i = 0; i < msg.length; i += 2)\n res.push(parseInt(msg[i] + msg[i + 1], 16));\n } else {\n for (var i = 0; i < msg.length; i++) {\n var c = msg.charCodeAt(i);\n var hi = c >> 8;\n var lo = c & 0xff;\n if (hi)\n res.push(hi, lo);\n else\n res.push(lo);\n }\n }\n return res;\n}\nutils.toArray = toArray;\n\nfunction zero2(word) {\n if (word.length === 1)\n return '0' + word;\n else\n return word;\n}\nutils.zero2 = zero2;\n\nfunction toHex(msg) {\n var res = '';\n for (var i = 0; i < msg.length; i++)\n res += zero2(msg[i].toString(16));\n return res;\n}\nutils.toHex = toHex;\n\nutils.encode = function encode(arr, enc) {\n if (enc === 'hex')\n return toHex(arr);\n else\n return arr;\n};\n", "'use strict';\n\nvar utils = exports;\nvar BN = require('bn.js');\nvar minAssert = require('minimalistic-assert');\nvar minUtils = require('minimalistic-crypto-utils');\n\nutils.assert = minAssert;\nutils.toArray = minUtils.toArray;\nutils.zero2 = minUtils.zero2;\nutils.toHex = minUtils.toHex;\nutils.encode = minUtils.encode;\n\n// Represent num in a w-NAF form\nfunction getNAF(num, w, bits) {\n var naf = new Array(Math.max(num.bitLength(), bits) + 1);\n naf.fill(0);\n\n var ws = 1 << (w + 1);\n var k = num.clone();\n\n for (var i = 0; i < naf.length; i++) {\n var z;\n var mod = k.andln(ws - 1);\n if (k.isOdd()) {\n if (mod > (ws >> 1) - 1)\n z = (ws >> 1) - mod;\n else\n z = mod;\n k.isubn(z);\n } else {\n z = 0;\n }\n\n naf[i] = z;\n k.iushrn(1);\n }\n\n return naf;\n}\nutils.getNAF = getNAF;\n\n// Represent k1, k2 in a Joint Sparse Form\nfunction getJSF(k1, k2) {\n var jsf = [\n [],\n [],\n ];\n\n k1 = k1.clone();\n k2 = k2.clone();\n var d1 = 0;\n var d2 = 0;\n var m8;\n while (k1.cmpn(-d1) > 0 || k2.cmpn(-d2) > 0) {\n // First phase\n var m14 = (k1.andln(3) + d1) & 3;\n var m24 = (k2.andln(3) + d2) & 3;\n if (m14 === 3)\n m14 = -1;\n if (m24 === 3)\n m24 = -1;\n var u1;\n if ((m14 & 1) === 0) {\n u1 = 0;\n } else {\n m8 = (k1.andln(7) + d1) & 7;\n if ((m8 === 3 || m8 === 5) && m24 === 2)\n u1 = -m14;\n else\n u1 = m14;\n }\n jsf[0].push(u1);\n\n var u2;\n if ((m24 & 1) === 0) {\n u2 = 0;\n } else {\n m8 = (k2.andln(7) + d2) & 7;\n if ((m8 === 3 || m8 === 5) && m14 === 2)\n u2 = -m24;\n else\n u2 = m24;\n }\n jsf[1].push(u2);\n\n // Second phase\n if (2 * d1 === u1 + 1)\n d1 = 1 - d1;\n if (2 * d2 === u2 + 1)\n d2 = 1 - d2;\n k1.iushrn(1);\n k2.iushrn(1);\n }\n\n return jsf;\n}\nutils.getJSF = getJSF;\n\nfunction cachedProperty(obj, name, computer) {\n var key = '_' + name;\n obj.prototype[name] = function cachedProperty() {\n return this[key] !== undefined ? this[key] :\n this[key] = computer.call(this);\n };\n}\nutils.cachedProperty = cachedProperty;\n\nfunction parseBytes(bytes) {\n return typeof bytes === 'string' ? utils.toArray(bytes, 'hex') :\n bytes;\n}\nutils.parseBytes = parseBytes;\n\nfunction intFromLE(bytes) {\n return new BN(bytes, 'hex', 'le');\n}\nutils.intFromLE = intFromLE;\n\n", "var r;\n\nmodule.exports = function rand(len) {\n if (!r)\n r = new Rand(null);\n\n return r.generate(len);\n};\n\nfunction Rand(rand) {\n this.rand = rand;\n}\nmodule.exports.Rand = Rand;\n\nRand.prototype.generate = function generate(len) {\n return this._rand(len);\n};\n\n// Emulate crypto API using randy\nRand.prototype._rand = function _rand(n) {\n if (this.rand.getBytes)\n return this.rand.getBytes(n);\n\n var res = new Uint8Array(n);\n for (var i = 0; i < res.length; i++)\n res[i] = this.rand.getByte();\n return res;\n};\n\nif (typeof self === 'object') {\n if (self.crypto && self.crypto.getRandomValues) {\n // Modern browsers\n Rand.prototype._rand = function _rand(n) {\n var arr = new Uint8Array(n);\n self.crypto.getRandomValues(arr);\n return arr;\n };\n } else if (self.msCrypto && self.msCrypto.getRandomValues) {\n // IE\n Rand.prototype._rand = function _rand(n) {\n var arr = new Uint8Array(n);\n self.msCrypto.getRandomValues(arr);\n return arr;\n };\n\n // Safari's WebWorkers do not have `crypto`\n } else if (typeof window === 'object') {\n // Old junk\n Rand.prototype._rand = function() {\n throw new Error('Not implemented yet');\n };\n }\n} else {\n // Node.js or Web worker with no crypto support\n try {\n var crypto = require('crypto');\n if (typeof crypto.randomBytes !== 'function')\n throw new Error('Not supported');\n\n Rand.prototype._rand = function _rand(n) {\n return crypto.randomBytes(n);\n };\n } catch (e) {\n }\n}\n", "'use strict';\n\nvar BN = require('bn.js');\nvar utils = require('../utils');\nvar getNAF = utils.getNAF;\nvar getJSF = utils.getJSF;\nvar assert = utils.assert;\n\nfunction BaseCurve(type, conf) {\n this.type = type;\n this.p = new BN(conf.p, 16);\n\n // Use Montgomery, when there is no fast reduction for the prime\n this.red = conf.prime ? BN.red(conf.prime) : BN.mont(this.p);\n\n // Useful for many curves\n this.zero = new BN(0).toRed(this.red);\n this.one = new BN(1).toRed(this.red);\n this.two = new BN(2).toRed(this.red);\n\n // Curve configuration, optional\n this.n = conf.n && new BN(conf.n, 16);\n this.g = conf.g && this.pointFromJSON(conf.g, conf.gRed);\n\n // Temporary arrays\n this._wnafT1 = new Array(4);\n this._wnafT2 = new Array(4);\n this._wnafT3 = new Array(4);\n this._wnafT4 = new Array(4);\n\n this._bitLength = this.n ? this.n.bitLength() : 0;\n\n // Generalized Greg Maxwell's trick\n var adjustCount = this.n && this.p.div(this.n);\n if (!adjustCount || adjustCount.cmpn(100) > 0) {\n this.redN = null;\n } else {\n this._maxwellTrick = true;\n this.redN = this.n.toRed(this.red);\n }\n}\nmodule.exports = BaseCurve;\n\nBaseCurve.prototype.point = function point() {\n throw new Error('Not implemented');\n};\n\nBaseCurve.prototype.validate = function validate() {\n throw new Error('Not implemented');\n};\n\nBaseCurve.prototype._fixedNafMul = function _fixedNafMul(p, k) {\n assert(p.precomputed);\n var doubles = p._getDoubles();\n\n var naf = getNAF(k, 1, this._bitLength);\n var I = (1 << (doubles.step + 1)) - (doubles.step % 2 === 0 ? 2 : 1);\n I /= 3;\n\n // Translate into more windowed form\n var repr = [];\n var j;\n var nafW;\n for (j = 0; j < naf.length; j += doubles.step) {\n nafW = 0;\n for (var l = j + doubles.step - 1; l >= j; l--)\n nafW = (nafW << 1) + naf[l];\n repr.push(nafW);\n }\n\n var a = this.jpoint(null, null, null);\n var b = this.jpoint(null, null, null);\n for (var i = I; i > 0; i--) {\n for (j = 0; j < repr.length; j++) {\n nafW = repr[j];\n if (nafW === i)\n b = b.mixedAdd(doubles.points[j]);\n else if (nafW === -i)\n b = b.mixedAdd(doubles.points[j].neg());\n }\n a = a.add(b);\n }\n return a.toP();\n};\n\nBaseCurve.prototype._wnafMul = function _wnafMul(p, k) {\n var w = 4;\n\n // Precompute window\n var nafPoints = p._getNAFPoints(w);\n w = nafPoints.wnd;\n var wnd = nafPoints.points;\n\n // Get NAF form\n var naf = getNAF(k, w, this._bitLength);\n\n // Add `this`*(N+1) for every w-NAF index\n var acc = this.jpoint(null, null, null);\n for (var i = naf.length - 1; i >= 0; i--) {\n // Count zeroes\n for (var l = 0; i >= 0 && naf[i] === 0; i--)\n l++;\n if (i >= 0)\n l++;\n acc = acc.dblp(l);\n\n if (i < 0)\n break;\n var z = naf[i];\n assert(z !== 0);\n if (p.type === 'affine') {\n // J +- P\n if (z > 0)\n acc = acc.mixedAdd(wnd[(z - 1) >> 1]);\n else\n acc = acc.mixedAdd(wnd[(-z - 1) >> 1].neg());\n } else {\n // J +- J\n if (z > 0)\n acc = acc.add(wnd[(z - 1) >> 1]);\n else\n acc = acc.add(wnd[(-z - 1) >> 1].neg());\n }\n }\n return p.type === 'affine' ? acc.toP() : acc;\n};\n\nBaseCurve.prototype._wnafMulAdd = function _wnafMulAdd(defW,\n points,\n coeffs,\n len,\n jacobianResult) {\n var wndWidth = this._wnafT1;\n var wnd = this._wnafT2;\n var naf = this._wnafT3;\n\n // Fill all arrays\n var max = 0;\n var i;\n var j;\n var p;\n for (i = 0; i < len; i++) {\n p = points[i];\n var nafPoints = p._getNAFPoints(defW);\n wndWidth[i] = nafPoints.wnd;\n wnd[i] = nafPoints.points;\n }\n\n // Comb small window NAFs\n for (i = len - 1; i >= 1; i -= 2) {\n var a = i - 1;\n var b = i;\n if (wndWidth[a] !== 1 || wndWidth[b] !== 1) {\n naf[a] = getNAF(coeffs[a], wndWidth[a], this._bitLength);\n naf[b] = getNAF(coeffs[b], wndWidth[b], this._bitLength);\n max = Math.max(naf[a].length, max);\n max = Math.max(naf[b].length, max);\n continue;\n }\n\n var comb = [\n points[a], /* 1 */\n null, /* 3 */\n null, /* 5 */\n points[b], /* 7 */\n ];\n\n // Try to avoid Projective points, if possible\n if (points[a].y.cmp(points[b].y) === 0) {\n comb[1] = points[a].add(points[b]);\n comb[2] = points[a].toJ().mixedAdd(points[b].neg());\n } else if (points[a].y.cmp(points[b].y.redNeg()) === 0) {\n comb[1] = points[a].toJ().mixedAdd(points[b]);\n comb[2] = points[a].add(points[b].neg());\n } else {\n comb[1] = points[a].toJ().mixedAdd(points[b]);\n comb[2] = points[a].toJ().mixedAdd(points[b].neg());\n }\n\n var index = [\n -3, /* -1 -1 */\n -1, /* -1 0 */\n -5, /* -1 1 */\n -7, /* 0 -1 */\n 0, /* 0 0 */\n 7, /* 0 1 */\n 5, /* 1 -1 */\n 1, /* 1 0 */\n 3, /* 1 1 */\n ];\n\n var jsf = getJSF(coeffs[a], coeffs[b]);\n max = Math.max(jsf[0].length, max);\n naf[a] = new Array(max);\n naf[b] = new Array(max);\n for (j = 0; j < max; j++) {\n var ja = jsf[0][j] | 0;\n var jb = jsf[1][j] | 0;\n\n naf[a][j] = index[(ja + 1) * 3 + (jb + 1)];\n naf[b][j] = 0;\n wnd[a] = comb;\n }\n }\n\n var acc = this.jpoint(null, null, null);\n var tmp = this._wnafT4;\n for (i = max; i >= 0; i--) {\n var k = 0;\n\n while (i >= 0) {\n var zero = true;\n for (j = 0; j < len; j++) {\n tmp[j] = naf[j][i] | 0;\n if (tmp[j] !== 0)\n zero = false;\n }\n if (!zero)\n break;\n k++;\n i--;\n }\n if (i >= 0)\n k++;\n acc = acc.dblp(k);\n if (i < 0)\n break;\n\n for (j = 0; j < len; j++) {\n var z = tmp[j];\n p;\n if (z === 0)\n continue;\n else if (z > 0)\n p = wnd[j][(z - 1) >> 1];\n else if (z < 0)\n p = wnd[j][(-z - 1) >> 1].neg();\n\n if (p.type === 'affine')\n acc = acc.mixedAdd(p);\n else\n acc = acc.add(p);\n }\n }\n // Zeroify references\n for (i = 0; i < len; i++)\n wnd[i] = null;\n\n if (jacobianResult)\n return acc;\n else\n return acc.toP();\n};\n\nfunction BasePoint(curve, type) {\n this.curve = curve;\n this.type = type;\n this.precomputed = null;\n}\nBaseCurve.BasePoint = BasePoint;\n\nBasePoint.prototype.eq = function eq(/*other*/) {\n throw new Error('Not implemented');\n};\n\nBasePoint.prototype.validate = function validate() {\n return this.curve.validate(this);\n};\n\nBaseCurve.prototype.decodePoint = function decodePoint(bytes, enc) {\n bytes = utils.toArray(bytes, enc);\n\n var len = this.p.byteLength();\n\n // uncompressed, hybrid-odd, hybrid-even\n if ((bytes[0] === 0x04 || bytes[0] === 0x06 || bytes[0] === 0x07) &&\n bytes.length - 1 === 2 * len) {\n if (bytes[0] === 0x06)\n assert(bytes[bytes.length - 1] % 2 === 0);\n else if (bytes[0] === 0x07)\n assert(bytes[bytes.length - 1] % 2 === 1);\n\n var res = this.point(bytes.slice(1, 1 + len),\n bytes.slice(1 + len, 1 + 2 * len));\n\n return res;\n } else if ((bytes[0] === 0x02 || bytes[0] === 0x03) &&\n bytes.length - 1 === len) {\n return this.pointFromX(bytes.slice(1, 1 + len), bytes[0] === 0x03);\n }\n throw new Error('Unknown point format');\n};\n\nBasePoint.prototype.encodeCompressed = function encodeCompressed(enc) {\n return this.encode(enc, true);\n};\n\nBasePoint.prototype._encode = function _encode(compact) {\n var len = this.curve.p.byteLength();\n var x = this.getX().toArray('be', len);\n\n if (compact)\n return [ this.getY().isEven() ? 0x02 : 0x03 ].concat(x);\n\n return [ 0x04 ].concat(x, this.getY().toArray('be', len));\n};\n\nBasePoint.prototype.encode = function encode(enc, compact) {\n return utils.encode(this._encode(compact), enc);\n};\n\nBasePoint.prototype.precompute = function precompute(power) {\n if (this.precomputed)\n return this;\n\n var precomputed = {\n doubles: null,\n naf: null,\n beta: null,\n };\n precomputed.naf = this._getNAFPoints(8);\n precomputed.doubles = this._getDoubles(4, power);\n precomputed.beta = this._getBeta();\n this.precomputed = precomputed;\n\n return this;\n};\n\nBasePoint.prototype._hasDoubles = function _hasDoubles(k) {\n if (!this.precomputed)\n return false;\n\n var doubles = this.precomputed.doubles;\n if (!doubles)\n return false;\n\n return doubles.points.length >= Math.ceil((k.bitLength() + 1) / doubles.step);\n};\n\nBasePoint.prototype._getDoubles = function _getDoubles(step, power) {\n if (this.precomputed && this.precomputed.doubles)\n return this.precomputed.doubles;\n\n var doubles = [ this ];\n var acc = this;\n for (var i = 0; i < power; i += step) {\n for (var j = 0; j < step; j++)\n acc = acc.dbl();\n doubles.push(acc);\n }\n return {\n step: step,\n points: doubles,\n };\n};\n\nBasePoint.prototype._getNAFPoints = function _getNAFPoints(wnd) {\n if (this.precomputed && this.precomputed.naf)\n return this.precomputed.naf;\n\n var res = [ this ];\n var max = (1 << wnd) - 1;\n var dbl = max === 1 ? null : this.dbl();\n for (var i = 1; i < max; i++)\n res[i] = res[i - 1].add(dbl);\n return {\n wnd: wnd,\n points: res,\n };\n};\n\nBasePoint.prototype._getBeta = function _getBeta() {\n return null;\n};\n\nBasePoint.prototype.dblp = function dblp(k) {\n var r = this;\n for (var i = 0; i < k; i++)\n r = r.dbl();\n return r;\n};\n", "if (typeof Object.create === 'function') {\n // implementation from standard node.js 'util' module\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n })\n }\n };\n} else {\n // old school shim for old browsers\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor\n var TempCtor = function () {}\n TempCtor.prototype = superCtor.prototype\n ctor.prototype = new TempCtor()\n ctor.prototype.constructor = ctor\n }\n }\n}\n", "try {\n var util = require('util');\n /* istanbul ignore next */\n if (typeof util.inherits !== 'function') throw '';\n module.exports = util.inherits;\n} catch (e) {\n /* istanbul ignore next */\n module.exports = require('./inherits_browser.js');\n}\n", "'use strict';\n\nvar utils = require('../utils');\nvar BN = require('bn.js');\nvar inherits = require('inherits');\nvar Base = require('./base');\n\nvar assert = utils.assert;\n\nfunction ShortCurve(conf) {\n Base.call(this, 'short', conf);\n\n this.a = new BN(conf.a, 16).toRed(this.red);\n this.b = new BN(conf.b, 16).toRed(this.red);\n this.tinv = this.two.redInvm();\n\n this.zeroA = this.a.fromRed().cmpn(0) === 0;\n this.threeA = this.a.fromRed().sub(this.p).cmpn(-3) === 0;\n\n // If the curve is endomorphic, precalculate beta and lambda\n this.endo = this._getEndomorphism(conf);\n this._endoWnafT1 = new Array(4);\n this._endoWnafT2 = new Array(4);\n}\ninherits(ShortCurve, Base);\nmodule.exports = ShortCurve;\n\nShortCurve.prototype._getEndomorphism = function _getEndomorphism(conf) {\n // No efficient endomorphism\n if (!this.zeroA || !this.g || !this.n || this.p.modn(3) !== 1)\n return;\n\n // Compute beta and lambda, that lambda * P = (beta * Px; Py)\n var beta;\n var lambda;\n if (conf.beta) {\n beta = new BN(conf.beta, 16).toRed(this.red);\n } else {\n var betas = this._getEndoRoots(this.p);\n // Choose the smallest beta\n beta = betas[0].cmp(betas[1]) < 0 ? betas[0] : betas[1];\n beta = beta.toRed(this.red);\n }\n if (conf.lambda) {\n lambda = new BN(conf.lambda, 16);\n } else {\n // Choose the lambda that is matching selected beta\n var lambdas = this._getEndoRoots(this.n);\n if (this.g.mul(lambdas[0]).x.cmp(this.g.x.redMul(beta)) === 0) {\n lambda = lambdas[0];\n } else {\n lambda = lambdas[1];\n assert(this.g.mul(lambda).x.cmp(this.g.x.redMul(beta)) === 0);\n }\n }\n\n // Get basis vectors, used for balanced length-two representation\n var basis;\n if (conf.basis) {\n basis = conf.basis.map(function(vec) {\n return {\n a: new BN(vec.a, 16),\n b: new BN(vec.b, 16),\n };\n });\n } else {\n basis = this._getEndoBasis(lambda);\n }\n\n return {\n beta: beta,\n lambda: lambda,\n basis: basis,\n };\n};\n\nShortCurve.prototype._getEndoRoots = function _getEndoRoots(num) {\n // Find roots of for x^2 + x + 1 in F\n // Root = (-1 +- Sqrt(-3)) / 2\n //\n var red = num === this.p ? this.red : BN.mont(num);\n var tinv = new BN(2).toRed(red).redInvm();\n var ntinv = tinv.redNeg();\n\n var s = new BN(3).toRed(red).redNeg().redSqrt().redMul(tinv);\n\n var l1 = ntinv.redAdd(s).fromRed();\n var l2 = ntinv.redSub(s).fromRed();\n return [ l1, l2 ];\n};\n\nShortCurve.prototype._getEndoBasis = function _getEndoBasis(lambda) {\n // aprxSqrt >= sqrt(this.n)\n var aprxSqrt = this.n.ushrn(Math.floor(this.n.bitLength() / 2));\n\n // 3.74\n // Run EGCD, until r(L + 1) < aprxSqrt\n var u = lambda;\n var v = this.n.clone();\n var x1 = new BN(1);\n var y1 = new BN(0);\n var x2 = new BN(0);\n var y2 = new BN(1);\n\n // NOTE: all vectors are roots of: a + b * lambda = 0 (mod n)\n var a0;\n var b0;\n // First vector\n var a1;\n var b1;\n // Second vector\n var a2;\n var b2;\n\n var prevR;\n var i = 0;\n var r;\n var x;\n while (u.cmpn(0) !== 0) {\n var q = v.div(u);\n r = v.sub(q.mul(u));\n x = x2.sub(q.mul(x1));\n var y = y2.sub(q.mul(y1));\n\n if (!a1 && r.cmp(aprxSqrt) < 0) {\n a0 = prevR.neg();\n b0 = x1;\n a1 = r.neg();\n b1 = x;\n } else if (a1 && ++i === 2) {\n break;\n }\n prevR = r;\n\n v = u;\n u = r;\n x2 = x1;\n x1 = x;\n y2 = y1;\n y1 = y;\n }\n a2 = r.neg();\n b2 = x;\n\n var len1 = a1.sqr().add(b1.sqr());\n var len2 = a2.sqr().add(b2.sqr());\n if (len2.cmp(len1) >= 0) {\n a2 = a0;\n b2 = b0;\n }\n\n // Normalize signs\n if (a1.negative) {\n a1 = a1.neg();\n b1 = b1.neg();\n }\n if (a2.negative) {\n a2 = a2.neg();\n b2 = b2.neg();\n }\n\n return [\n { a: a1, b: b1 },\n { a: a2, b: b2 },\n ];\n};\n\nShortCurve.prototype._endoSplit = function _endoSplit(k) {\n var basis = this.endo.basis;\n var v1 = basis[0];\n var v2 = basis[1];\n\n var c1 = v2.b.mul(k).divRound(this.n);\n var c2 = v1.b.neg().mul(k).divRound(this.n);\n\n var p1 = c1.mul(v1.a);\n var p2 = c2.mul(v2.a);\n var q1 = c1.mul(v1.b);\n var q2 = c2.mul(v2.b);\n\n // Calculate answer\n var k1 = k.sub(p1).sub(p2);\n var k2 = q1.add(q2).neg();\n return { k1: k1, k2: k2 };\n};\n\nShortCurve.prototype.pointFromX = function pointFromX(x, odd) {\n x = new BN(x, 16);\n if (!x.red)\n x = x.toRed(this.red);\n\n var y2 = x.redSqr().redMul(x).redIAdd(x.redMul(this.a)).redIAdd(this.b);\n var y = y2.redSqrt();\n if (y.redSqr().redSub(y2).cmp(this.zero) !== 0)\n throw new Error('invalid point');\n\n // XXX Is there any way to tell if the number is odd without converting it\n // to non-red form?\n var isOdd = y.fromRed().isOdd();\n if (odd && !isOdd || !odd && isOdd)\n y = y.redNeg();\n\n return this.point(x, y);\n};\n\nShortCurve.prototype.validate = function validate(point) {\n if (point.inf)\n return true;\n\n var x = point.x;\n var y = point.y;\n\n var ax = this.a.redMul(x);\n var rhs = x.redSqr().redMul(x).redIAdd(ax).redIAdd(this.b);\n return y.redSqr().redISub(rhs).cmpn(0) === 0;\n};\n\nShortCurve.prototype._endoWnafMulAdd =\n function _endoWnafMulAdd(points, coeffs, jacobianResult) {\n var npoints = this._endoWnafT1;\n var ncoeffs = this._endoWnafT2;\n for (var i = 0; i < points.length; i++) {\n var split = this._endoSplit(coeffs[i]);\n var p = points[i];\n var beta = p._getBeta();\n\n if (split.k1.negative) {\n split.k1.ineg();\n p = p.neg(true);\n }\n if (split.k2.negative) {\n split.k2.ineg();\n beta = beta.neg(true);\n }\n\n npoints[i * 2] = p;\n npoints[i * 2 + 1] = beta;\n ncoeffs[i * 2] = split.k1;\n ncoeffs[i * 2 + 1] = split.k2;\n }\n var res = this._wnafMulAdd(1, npoints, ncoeffs, i * 2, jacobianResult);\n\n // Clean-up references to points and coefficients\n for (var j = 0; j < i * 2; j++) {\n npoints[j] = null;\n ncoeffs[j] = null;\n }\n return res;\n };\n\nfunction Point(curve, x, y, isRed) {\n Base.BasePoint.call(this, curve, 'affine');\n if (x === null && y === null) {\n this.x = null;\n this.y = null;\n this.inf = true;\n } else {\n this.x = new BN(x, 16);\n this.y = new BN(y, 16);\n // Force redgomery representation when loading from JSON\n if (isRed) {\n this.x.forceRed(this.curve.red);\n this.y.forceRed(this.curve.red);\n }\n if (!this.x.red)\n this.x = this.x.toRed(this.curve.red);\n if (!this.y.red)\n this.y = this.y.toRed(this.curve.red);\n this.inf = false;\n }\n}\ninherits(Point, Base.BasePoint);\n\nShortCurve.prototype.point = function point(x, y, isRed) {\n return new Point(this, x, y, isRed);\n};\n\nShortCurve.prototype.pointFromJSON = function pointFromJSON(obj, red) {\n return Point.fromJSON(this, obj, red);\n};\n\nPoint.prototype._getBeta = function _getBeta() {\n if (!this.curve.endo)\n return;\n\n var pre = this.precomputed;\n if (pre && pre.beta)\n return pre.beta;\n\n var beta = this.curve.point(this.x.redMul(this.curve.endo.beta), this.y);\n if (pre) {\n var curve = this.curve;\n var endoMul = function(p) {\n return curve.point(p.x.redMul(curve.endo.beta), p.y);\n };\n pre.beta = beta;\n beta.precomputed = {\n beta: null,\n naf: pre.naf && {\n wnd: pre.naf.wnd,\n points: pre.naf.points.map(endoMul),\n },\n doubles: pre.doubles && {\n step: pre.doubles.step,\n points: pre.doubles.points.map(endoMul),\n },\n };\n }\n return beta;\n};\n\nPoint.prototype.toJSON = function toJSON() {\n if (!this.precomputed)\n return [ this.x, this.y ];\n\n return [ this.x, this.y, this.precomputed && {\n doubles: this.precomputed.doubles && {\n step: this.precomputed.doubles.step,\n points: this.precomputed.doubles.points.slice(1),\n },\n naf: this.precomputed.naf && {\n wnd: this.precomputed.naf.wnd,\n points: this.precomputed.naf.points.slice(1),\n },\n } ];\n};\n\nPoint.fromJSON = function fromJSON(curve, obj, red) {\n if (typeof obj === 'string')\n obj = JSON.parse(obj);\n var res = curve.point(obj[0], obj[1], red);\n if (!obj[2])\n return res;\n\n function obj2point(obj) {\n return curve.point(obj[0], obj[1], red);\n }\n\n var pre = obj[2];\n res.precomputed = {\n beta: null,\n doubles: pre.doubles && {\n step: pre.doubles.step,\n points: [ res ].concat(pre.doubles.points.map(obj2point)),\n },\n naf: pre.naf && {\n wnd: pre.naf.wnd,\n points: [ res ].concat(pre.naf.points.map(obj2point)),\n },\n };\n return res;\n};\n\nPoint.prototype.inspect = function inspect() {\n if (this.isInfinity())\n return '';\n return '';\n};\n\nPoint.prototype.isInfinity = function isInfinity() {\n return this.inf;\n};\n\nPoint.prototype.add = function add(p) {\n // O + P = P\n if (this.inf)\n return p;\n\n // P + O = P\n if (p.inf)\n return this;\n\n // P + P = 2P\n if (this.eq(p))\n return this.dbl();\n\n // P + (-P) = O\n if (this.neg().eq(p))\n return this.curve.point(null, null);\n\n // P + Q = O\n if (this.x.cmp(p.x) === 0)\n return this.curve.point(null, null);\n\n var c = this.y.redSub(p.y);\n if (c.cmpn(0) !== 0)\n c = c.redMul(this.x.redSub(p.x).redInvm());\n var nx = c.redSqr().redISub(this.x).redISub(p.x);\n var ny = c.redMul(this.x.redSub(nx)).redISub(this.y);\n return this.curve.point(nx, ny);\n};\n\nPoint.prototype.dbl = function dbl() {\n if (this.inf)\n return this;\n\n // 2P = O\n var ys1 = this.y.redAdd(this.y);\n if (ys1.cmpn(0) === 0)\n return this.curve.point(null, null);\n\n var a = this.curve.a;\n\n var x2 = this.x.redSqr();\n var dyinv = ys1.redInvm();\n var c = x2.redAdd(x2).redIAdd(x2).redIAdd(a).redMul(dyinv);\n\n var nx = c.redSqr().redISub(this.x.redAdd(this.x));\n var ny = c.redMul(this.x.redSub(nx)).redISub(this.y);\n return this.curve.point(nx, ny);\n};\n\nPoint.prototype.getX = function getX() {\n return this.x.fromRed();\n};\n\nPoint.prototype.getY = function getY() {\n return this.y.fromRed();\n};\n\nPoint.prototype.mul = function mul(k) {\n k = new BN(k, 16);\n if (this.isInfinity())\n return this;\n else if (this._hasDoubles(k))\n return this.curve._fixedNafMul(this, k);\n else if (this.curve.endo)\n return this.curve._endoWnafMulAdd([ this ], [ k ]);\n else\n return this.curve._wnafMul(this, k);\n};\n\nPoint.prototype.mulAdd = function mulAdd(k1, p2, k2) {\n var points = [ this, p2 ];\n var coeffs = [ k1, k2 ];\n if (this.curve.endo)\n return this.curve._endoWnafMulAdd(points, coeffs);\n else\n return this.curve._wnafMulAdd(1, points, coeffs, 2);\n};\n\nPoint.prototype.jmulAdd = function jmulAdd(k1, p2, k2) {\n var points = [ this, p2 ];\n var coeffs = [ k1, k2 ];\n if (this.curve.endo)\n return this.curve._endoWnafMulAdd(points, coeffs, true);\n else\n return this.curve._wnafMulAdd(1, points, coeffs, 2, true);\n};\n\nPoint.prototype.eq = function eq(p) {\n return this === p ||\n this.inf === p.inf &&\n (this.inf || this.x.cmp(p.x) === 0 && this.y.cmp(p.y) === 0);\n};\n\nPoint.prototype.neg = function neg(_precompute) {\n if (this.inf)\n return this;\n\n var res = this.curve.point(this.x, this.y.redNeg());\n if (_precompute && this.precomputed) {\n var pre = this.precomputed;\n var negate = function(p) {\n return p.neg();\n };\n res.precomputed = {\n naf: pre.naf && {\n wnd: pre.naf.wnd,\n points: pre.naf.points.map(negate),\n },\n doubles: pre.doubles && {\n step: pre.doubles.step,\n points: pre.doubles.points.map(negate),\n },\n };\n }\n return res;\n};\n\nPoint.prototype.toJ = function toJ() {\n if (this.inf)\n return this.curve.jpoint(null, null, null);\n\n var res = this.curve.jpoint(this.x, this.y, this.curve.one);\n return res;\n};\n\nfunction JPoint(curve, x, y, z) {\n Base.BasePoint.call(this, curve, 'jacobian');\n if (x === null && y === null && z === null) {\n this.x = this.curve.one;\n this.y = this.curve.one;\n this.z = new BN(0);\n } else {\n this.x = new BN(x, 16);\n this.y = new BN(y, 16);\n this.z = new BN(z, 16);\n }\n if (!this.x.red)\n this.x = this.x.toRed(this.curve.red);\n if (!this.y.red)\n this.y = this.y.toRed(this.curve.red);\n if (!this.z.red)\n this.z = this.z.toRed(this.curve.red);\n\n this.zOne = this.z === this.curve.one;\n}\ninherits(JPoint, Base.BasePoint);\n\nShortCurve.prototype.jpoint = function jpoint(x, y, z) {\n return new JPoint(this, x, y, z);\n};\n\nJPoint.prototype.toP = function toP() {\n if (this.isInfinity())\n return this.curve.point(null, null);\n\n var zinv = this.z.redInvm();\n var zinv2 = zinv.redSqr();\n var ax = this.x.redMul(zinv2);\n var ay = this.y.redMul(zinv2).redMul(zinv);\n\n return this.curve.point(ax, ay);\n};\n\nJPoint.prototype.neg = function neg() {\n return this.curve.jpoint(this.x, this.y.redNeg(), this.z);\n};\n\nJPoint.prototype.add = function add(p) {\n // O + P = P\n if (this.isInfinity())\n return p;\n\n // P + O = P\n if (p.isInfinity())\n return this;\n\n // 12M + 4S + 7A\n var pz2 = p.z.redSqr();\n var z2 = this.z.redSqr();\n var u1 = this.x.redMul(pz2);\n var u2 = p.x.redMul(z2);\n var s1 = this.y.redMul(pz2.redMul(p.z));\n var s2 = p.y.redMul(z2.redMul(this.z));\n\n var h = u1.redSub(u2);\n var r = s1.redSub(s2);\n if (h.cmpn(0) === 0) {\n if (r.cmpn(0) !== 0)\n return this.curve.jpoint(null, null, null);\n else\n return this.dbl();\n }\n\n var h2 = h.redSqr();\n var h3 = h2.redMul(h);\n var v = u1.redMul(h2);\n\n var nx = r.redSqr().redIAdd(h3).redISub(v).redISub(v);\n var ny = r.redMul(v.redISub(nx)).redISub(s1.redMul(h3));\n var nz = this.z.redMul(p.z).redMul(h);\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.mixedAdd = function mixedAdd(p) {\n // O + P = P\n if (this.isInfinity())\n return p.toJ();\n\n // P + O = P\n if (p.isInfinity())\n return this;\n\n // 8M + 3S + 7A\n var z2 = this.z.redSqr();\n var u1 = this.x;\n var u2 = p.x.redMul(z2);\n var s1 = this.y;\n var s2 = p.y.redMul(z2).redMul(this.z);\n\n var h = u1.redSub(u2);\n var r = s1.redSub(s2);\n if (h.cmpn(0) === 0) {\n if (r.cmpn(0) !== 0)\n return this.curve.jpoint(null, null, null);\n else\n return this.dbl();\n }\n\n var h2 = h.redSqr();\n var h3 = h2.redMul(h);\n var v = u1.redMul(h2);\n\n var nx = r.redSqr().redIAdd(h3).redISub(v).redISub(v);\n var ny = r.redMul(v.redISub(nx)).redISub(s1.redMul(h3));\n var nz = this.z.redMul(h);\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.dblp = function dblp(pow) {\n if (pow === 0)\n return this;\n if (this.isInfinity())\n return this;\n if (!pow)\n return this.dbl();\n\n var i;\n if (this.curve.zeroA || this.curve.threeA) {\n var r = this;\n for (i = 0; i < pow; i++)\n r = r.dbl();\n return r;\n }\n\n // 1M + 2S + 1A + N * (4S + 5M + 8A)\n // N = 1 => 6M + 6S + 9A\n var a = this.curve.a;\n var tinv = this.curve.tinv;\n\n var jx = this.x;\n var jy = this.y;\n var jz = this.z;\n var jz4 = jz.redSqr().redSqr();\n\n // Reuse results\n var jyd = jy.redAdd(jy);\n for (i = 0; i < pow; i++) {\n var jx2 = jx.redSqr();\n var jyd2 = jyd.redSqr();\n var jyd4 = jyd2.redSqr();\n var c = jx2.redAdd(jx2).redIAdd(jx2).redIAdd(a.redMul(jz4));\n\n var t1 = jx.redMul(jyd2);\n var nx = c.redSqr().redISub(t1.redAdd(t1));\n var t2 = t1.redISub(nx);\n var dny = c.redMul(t2);\n dny = dny.redIAdd(dny).redISub(jyd4);\n var nz = jyd.redMul(jz);\n if (i + 1 < pow)\n jz4 = jz4.redMul(jyd4);\n\n jx = nx;\n jz = nz;\n jyd = dny;\n }\n\n return this.curve.jpoint(jx, jyd.redMul(tinv), jz);\n};\n\nJPoint.prototype.dbl = function dbl() {\n if (this.isInfinity())\n return this;\n\n if (this.curve.zeroA)\n return this._zeroDbl();\n else if (this.curve.threeA)\n return this._threeDbl();\n else\n return this._dbl();\n};\n\nJPoint.prototype._zeroDbl = function _zeroDbl() {\n var nx;\n var ny;\n var nz;\n // Z = 1\n if (this.zOne) {\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-0.html\n // #doubling-mdbl-2007-bl\n // 1M + 5S + 14A\n\n // XX = X1^2\n var xx = this.x.redSqr();\n // YY = Y1^2\n var yy = this.y.redSqr();\n // YYYY = YY^2\n var yyyy = yy.redSqr();\n // S = 2 * ((X1 + YY)^2 - XX - YYYY)\n var s = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);\n s = s.redIAdd(s);\n // M = 3 * XX + a; a = 0\n var m = xx.redAdd(xx).redIAdd(xx);\n // T = M ^ 2 - 2*S\n var t = m.redSqr().redISub(s).redISub(s);\n\n // 8 * YYYY\n var yyyy8 = yyyy.redIAdd(yyyy);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n\n // X3 = T\n nx = t;\n // Y3 = M * (S - T) - 8 * YYYY\n ny = m.redMul(s.redISub(t)).redISub(yyyy8);\n // Z3 = 2*Y1\n nz = this.y.redAdd(this.y);\n } else {\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-0.html\n // #doubling-dbl-2009-l\n // 2M + 5S + 13A\n\n // A = X1^2\n var a = this.x.redSqr();\n // B = Y1^2\n var b = this.y.redSqr();\n // C = B^2\n var c = b.redSqr();\n // D = 2 * ((X1 + B)^2 - A - C)\n var d = this.x.redAdd(b).redSqr().redISub(a).redISub(c);\n d = d.redIAdd(d);\n // E = 3 * A\n var e = a.redAdd(a).redIAdd(a);\n // F = E^2\n var f = e.redSqr();\n\n // 8 * C\n var c8 = c.redIAdd(c);\n c8 = c8.redIAdd(c8);\n c8 = c8.redIAdd(c8);\n\n // X3 = F - 2 * D\n nx = f.redISub(d).redISub(d);\n // Y3 = E * (D - X3) - 8 * C\n ny = e.redMul(d.redISub(nx)).redISub(c8);\n // Z3 = 2 * Y1 * Z1\n nz = this.y.redMul(this.z);\n nz = nz.redIAdd(nz);\n }\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype._threeDbl = function _threeDbl() {\n var nx;\n var ny;\n var nz;\n // Z = 1\n if (this.zOne) {\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-3.html\n // #doubling-mdbl-2007-bl\n // 1M + 5S + 15A\n\n // XX = X1^2\n var xx = this.x.redSqr();\n // YY = Y1^2\n var yy = this.y.redSqr();\n // YYYY = YY^2\n var yyyy = yy.redSqr();\n // S = 2 * ((X1 + YY)^2 - XX - YYYY)\n var s = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);\n s = s.redIAdd(s);\n // M = 3 * XX + a\n var m = xx.redAdd(xx).redIAdd(xx).redIAdd(this.curve.a);\n // T = M^2 - 2 * S\n var t = m.redSqr().redISub(s).redISub(s);\n // X3 = T\n nx = t;\n // Y3 = M * (S - T) - 8 * YYYY\n var yyyy8 = yyyy.redIAdd(yyyy);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n ny = m.redMul(s.redISub(t)).redISub(yyyy8);\n // Z3 = 2 * Y1\n nz = this.y.redAdd(this.y);\n } else {\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-3.html#doubling-dbl-2001-b\n // 3M + 5S\n\n // delta = Z1^2\n var delta = this.z.redSqr();\n // gamma = Y1^2\n var gamma = this.y.redSqr();\n // beta = X1 * gamma\n var beta = this.x.redMul(gamma);\n // alpha = 3 * (X1 - delta) * (X1 + delta)\n var alpha = this.x.redSub(delta).redMul(this.x.redAdd(delta));\n alpha = alpha.redAdd(alpha).redIAdd(alpha);\n // X3 = alpha^2 - 8 * beta\n var beta4 = beta.redIAdd(beta);\n beta4 = beta4.redIAdd(beta4);\n var beta8 = beta4.redAdd(beta4);\n nx = alpha.redSqr().redISub(beta8);\n // Z3 = (Y1 + Z1)^2 - gamma - delta\n nz = this.y.redAdd(this.z).redSqr().redISub(gamma).redISub(delta);\n // Y3 = alpha * (4 * beta - X3) - 8 * gamma^2\n var ggamma8 = gamma.redSqr();\n ggamma8 = ggamma8.redIAdd(ggamma8);\n ggamma8 = ggamma8.redIAdd(ggamma8);\n ggamma8 = ggamma8.redIAdd(ggamma8);\n ny = alpha.redMul(beta4.redISub(nx)).redISub(ggamma8);\n }\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype._dbl = function _dbl() {\n var a = this.curve.a;\n\n // 4M + 6S + 10A\n var jx = this.x;\n var jy = this.y;\n var jz = this.z;\n var jz4 = jz.redSqr().redSqr();\n\n var jx2 = jx.redSqr();\n var jy2 = jy.redSqr();\n\n var c = jx2.redAdd(jx2).redIAdd(jx2).redIAdd(a.redMul(jz4));\n\n var jxd4 = jx.redAdd(jx);\n jxd4 = jxd4.redIAdd(jxd4);\n var t1 = jxd4.redMul(jy2);\n var nx = c.redSqr().redISub(t1.redAdd(t1));\n var t2 = t1.redISub(nx);\n\n var jyd8 = jy2.redSqr();\n jyd8 = jyd8.redIAdd(jyd8);\n jyd8 = jyd8.redIAdd(jyd8);\n jyd8 = jyd8.redIAdd(jyd8);\n var ny = c.redMul(t2).redISub(jyd8);\n var nz = jy.redAdd(jy).redMul(jz);\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.trpl = function trpl() {\n if (!this.curve.zeroA)\n return this.dbl().add(this);\n\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-0.html#tripling-tpl-2007-bl\n // 5M + 10S + ...\n\n // XX = X1^2\n var xx = this.x.redSqr();\n // YY = Y1^2\n var yy = this.y.redSqr();\n // ZZ = Z1^2\n var zz = this.z.redSqr();\n // YYYY = YY^2\n var yyyy = yy.redSqr();\n // M = 3 * XX + a * ZZ2; a = 0\n var m = xx.redAdd(xx).redIAdd(xx);\n // MM = M^2\n var mm = m.redSqr();\n // E = 6 * ((X1 + YY)^2 - XX - YYYY) - MM\n var e = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);\n e = e.redIAdd(e);\n e = e.redAdd(e).redIAdd(e);\n e = e.redISub(mm);\n // EE = E^2\n var ee = e.redSqr();\n // T = 16*YYYY\n var t = yyyy.redIAdd(yyyy);\n t = t.redIAdd(t);\n t = t.redIAdd(t);\n t = t.redIAdd(t);\n // U = (M + E)^2 - MM - EE - T\n var u = m.redIAdd(e).redSqr().redISub(mm).redISub(ee).redISub(t);\n // X3 = 4 * (X1 * EE - 4 * YY * U)\n var yyu4 = yy.redMul(u);\n yyu4 = yyu4.redIAdd(yyu4);\n yyu4 = yyu4.redIAdd(yyu4);\n var nx = this.x.redMul(ee).redISub(yyu4);\n nx = nx.redIAdd(nx);\n nx = nx.redIAdd(nx);\n // Y3 = 8 * Y1 * (U * (T - U) - E * EE)\n var ny = this.y.redMul(u.redMul(t.redISub(u)).redISub(e.redMul(ee)));\n ny = ny.redIAdd(ny);\n ny = ny.redIAdd(ny);\n ny = ny.redIAdd(ny);\n // Z3 = (Z1 + E)^2 - ZZ - EE\n var nz = this.z.redAdd(e).redSqr().redISub(zz).redISub(ee);\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.mul = function mul(k, kbase) {\n k = new BN(k, kbase);\n\n return this.curve._wnafMul(this, k);\n};\n\nJPoint.prototype.eq = function eq(p) {\n if (p.type === 'affine')\n return this.eq(p.toJ());\n\n if (this === p)\n return true;\n\n // x1 * z2^2 == x2 * z1^2\n var z2 = this.z.redSqr();\n var pz2 = p.z.redSqr();\n if (this.x.redMul(pz2).redISub(p.x.redMul(z2)).cmpn(0) !== 0)\n return false;\n\n // y1 * z2^3 == y2 * z1^3\n var z3 = z2.redMul(this.z);\n var pz3 = pz2.redMul(p.z);\n return this.y.redMul(pz3).redISub(p.y.redMul(z3)).cmpn(0) === 0;\n};\n\nJPoint.prototype.eqXToP = function eqXToP(x) {\n var zs = this.z.redSqr();\n var rx = x.toRed(this.curve.red).redMul(zs);\n if (this.x.cmp(rx) === 0)\n return true;\n\n var xc = x.clone();\n var t = this.curve.redN.redMul(zs);\n for (;;) {\n xc.iadd(this.curve.n);\n if (xc.cmp(this.curve.p) >= 0)\n return false;\n\n rx.redIAdd(t);\n if (this.x.cmp(rx) === 0)\n return true;\n }\n};\n\nJPoint.prototype.inspect = function inspect() {\n if (this.isInfinity())\n return '';\n return '';\n};\n\nJPoint.prototype.isInfinity = function isInfinity() {\n // XXX This code assumes that zero is always zero in red\n return this.z.cmpn(0) === 0;\n};\n", "'use strict';\n\nvar BN = require('bn.js');\nvar inherits = require('inherits');\nvar Base = require('./base');\n\nvar utils = require('../utils');\n\nfunction MontCurve(conf) {\n Base.call(this, 'mont', conf);\n\n this.a = new BN(conf.a, 16).toRed(this.red);\n this.b = new BN(conf.b, 16).toRed(this.red);\n this.i4 = new BN(4).toRed(this.red).redInvm();\n this.two = new BN(2).toRed(this.red);\n this.a24 = this.i4.redMul(this.a.redAdd(this.two));\n}\ninherits(MontCurve, Base);\nmodule.exports = MontCurve;\n\nMontCurve.prototype.validate = function validate(point) {\n var x = point.normalize().x;\n var x2 = x.redSqr();\n var rhs = x2.redMul(x).redAdd(x2.redMul(this.a)).redAdd(x);\n var y = rhs.redSqrt();\n\n return y.redSqr().cmp(rhs) === 0;\n};\n\nfunction Point(curve, x, z) {\n Base.BasePoint.call(this, curve, 'projective');\n if (x === null && z === null) {\n this.x = this.curve.one;\n this.z = this.curve.zero;\n } else {\n this.x = new BN(x, 16);\n this.z = new BN(z, 16);\n if (!this.x.red)\n this.x = this.x.toRed(this.curve.red);\n if (!this.z.red)\n this.z = this.z.toRed(this.curve.red);\n }\n}\ninherits(Point, Base.BasePoint);\n\nMontCurve.prototype.decodePoint = function decodePoint(bytes, enc) {\n return this.point(utils.toArray(bytes, enc), 1);\n};\n\nMontCurve.prototype.point = function point(x, z) {\n return new Point(this, x, z);\n};\n\nMontCurve.prototype.pointFromJSON = function pointFromJSON(obj) {\n return Point.fromJSON(this, obj);\n};\n\nPoint.prototype.precompute = function precompute() {\n // No-op\n};\n\nPoint.prototype._encode = function _encode() {\n return this.getX().toArray('be', this.curve.p.byteLength());\n};\n\nPoint.fromJSON = function fromJSON(curve, obj) {\n return new Point(curve, obj[0], obj[1] || curve.one);\n};\n\nPoint.prototype.inspect = function inspect() {\n if (this.isInfinity())\n return '';\n return '';\n};\n\nPoint.prototype.isInfinity = function isInfinity() {\n // XXX This code assumes that zero is always zero in red\n return this.z.cmpn(0) === 0;\n};\n\nPoint.prototype.dbl = function dbl() {\n // http://hyperelliptic.org/EFD/g1p/auto-montgom-xz.html#doubling-dbl-1987-m-3\n // 2M + 2S + 4A\n\n // A = X1 + Z1\n var a = this.x.redAdd(this.z);\n // AA = A^2\n var aa = a.redSqr();\n // B = X1 - Z1\n var b = this.x.redSub(this.z);\n // BB = B^2\n var bb = b.redSqr();\n // C = AA - BB\n var c = aa.redSub(bb);\n // X3 = AA * BB\n var nx = aa.redMul(bb);\n // Z3 = C * (BB + A24 * C)\n var nz = c.redMul(bb.redAdd(this.curve.a24.redMul(c)));\n return this.curve.point(nx, nz);\n};\n\nPoint.prototype.add = function add() {\n throw new Error('Not supported on Montgomery curve');\n};\n\nPoint.prototype.diffAdd = function diffAdd(p, diff) {\n // http://hyperelliptic.org/EFD/g1p/auto-montgom-xz.html#diffadd-dadd-1987-m-3\n // 4M + 2S + 6A\n\n // A = X2 + Z2\n var a = this.x.redAdd(this.z);\n // B = X2 - Z2\n var b = this.x.redSub(this.z);\n // C = X3 + Z3\n var c = p.x.redAdd(p.z);\n // D = X3 - Z3\n var d = p.x.redSub(p.z);\n // DA = D * A\n var da = d.redMul(a);\n // CB = C * B\n var cb = c.redMul(b);\n // X5 = Z1 * (DA + CB)^2\n var nx = diff.z.redMul(da.redAdd(cb).redSqr());\n // Z5 = X1 * (DA - CB)^2\n var nz = diff.x.redMul(da.redISub(cb).redSqr());\n return this.curve.point(nx, nz);\n};\n\nPoint.prototype.mul = function mul(k) {\n var t = k.clone();\n var a = this; // (N / 2) * Q + Q\n var b = this.curve.point(null, null); // (N / 2) * Q\n var c = this; // Q\n\n for (var bits = []; t.cmpn(0) !== 0; t.iushrn(1))\n bits.push(t.andln(1));\n\n for (var i = bits.length - 1; i >= 0; i--) {\n if (bits[i] === 0) {\n // N * Q + Q = ((N / 2) * Q + Q)) + (N / 2) * Q\n a = a.diffAdd(b, c);\n // N * Q = 2 * ((N / 2) * Q + Q))\n b = b.dbl();\n } else {\n // N * Q = ((N / 2) * Q + Q) + ((N / 2) * Q)\n b = a.diffAdd(b, c);\n // N * Q + Q = 2 * ((N / 2) * Q + Q)\n a = a.dbl();\n }\n }\n return b;\n};\n\nPoint.prototype.mulAdd = function mulAdd() {\n throw new Error('Not supported on Montgomery curve');\n};\n\nPoint.prototype.jumlAdd = function jumlAdd() {\n throw new Error('Not supported on Montgomery curve');\n};\n\nPoint.prototype.eq = function eq(other) {\n return this.getX().cmp(other.getX()) === 0;\n};\n\nPoint.prototype.normalize = function normalize() {\n this.x = this.x.redMul(this.z.redInvm());\n this.z = this.curve.one;\n return this;\n};\n\nPoint.prototype.getX = function getX() {\n // Normalize coordinates\n this.normalize();\n\n return this.x.fromRed();\n};\n", "'use strict';\n\nvar utils = require('../utils');\nvar BN = require('bn.js');\nvar inherits = require('inherits');\nvar Base = require('./base');\n\nvar assert = utils.assert;\n\nfunction EdwardsCurve(conf) {\n // NOTE: Important as we are creating point in Base.call()\n this.twisted = (conf.a | 0) !== 1;\n this.mOneA = this.twisted && (conf.a | 0) === -1;\n this.extended = this.mOneA;\n\n Base.call(this, 'edwards', conf);\n\n this.a = new BN(conf.a, 16).umod(this.red.m);\n this.a = this.a.toRed(this.red);\n this.c = new BN(conf.c, 16).toRed(this.red);\n this.c2 = this.c.redSqr();\n this.d = new BN(conf.d, 16).toRed(this.red);\n this.dd = this.d.redAdd(this.d);\n\n assert(!this.twisted || this.c.fromRed().cmpn(1) === 0);\n this.oneC = (conf.c | 0) === 1;\n}\ninherits(EdwardsCurve, Base);\nmodule.exports = EdwardsCurve;\n\nEdwardsCurve.prototype._mulA = function _mulA(num) {\n if (this.mOneA)\n return num.redNeg();\n else\n return this.a.redMul(num);\n};\n\nEdwardsCurve.prototype._mulC = function _mulC(num) {\n if (this.oneC)\n return num;\n else\n return this.c.redMul(num);\n};\n\n// Just for compatibility with Short curve\nEdwardsCurve.prototype.jpoint = function jpoint(x, y, z, t) {\n return this.point(x, y, z, t);\n};\n\nEdwardsCurve.prototype.pointFromX = function pointFromX(x, odd) {\n x = new BN(x, 16);\n if (!x.red)\n x = x.toRed(this.red);\n\n var x2 = x.redSqr();\n var rhs = this.c2.redSub(this.a.redMul(x2));\n var lhs = this.one.redSub(this.c2.redMul(this.d).redMul(x2));\n\n var y2 = rhs.redMul(lhs.redInvm());\n var y = y2.redSqrt();\n if (y.redSqr().redSub(y2).cmp(this.zero) !== 0)\n throw new Error('invalid point');\n\n var isOdd = y.fromRed().isOdd();\n if (odd && !isOdd || !odd && isOdd)\n y = y.redNeg();\n\n return this.point(x, y);\n};\n\nEdwardsCurve.prototype.pointFromY = function pointFromY(y, odd) {\n y = new BN(y, 16);\n if (!y.red)\n y = y.toRed(this.red);\n\n // x^2 = (y^2 - c^2) / (c^2 d y^2 - a)\n var y2 = y.redSqr();\n var lhs = y2.redSub(this.c2);\n var rhs = y2.redMul(this.d).redMul(this.c2).redSub(this.a);\n var x2 = lhs.redMul(rhs.redInvm());\n\n if (x2.cmp(this.zero) === 0) {\n if (odd)\n throw new Error('invalid point');\n else\n return this.point(this.zero, y);\n }\n\n var x = x2.redSqrt();\n if (x.redSqr().redSub(x2).cmp(this.zero) !== 0)\n throw new Error('invalid point');\n\n if (x.fromRed().isOdd() !== odd)\n x = x.redNeg();\n\n return this.point(x, y);\n};\n\nEdwardsCurve.prototype.validate = function validate(point) {\n if (point.isInfinity())\n return true;\n\n // Curve: A * X^2 + Y^2 = C^2 * (1 + D * X^2 * Y^2)\n point.normalize();\n\n var x2 = point.x.redSqr();\n var y2 = point.y.redSqr();\n var lhs = x2.redMul(this.a).redAdd(y2);\n var rhs = this.c2.redMul(this.one.redAdd(this.d.redMul(x2).redMul(y2)));\n\n return lhs.cmp(rhs) === 0;\n};\n\nfunction Point(curve, x, y, z, t) {\n Base.BasePoint.call(this, curve, 'projective');\n if (x === null && y === null && z === null) {\n this.x = this.curve.zero;\n this.y = this.curve.one;\n this.z = this.curve.one;\n this.t = this.curve.zero;\n this.zOne = true;\n } else {\n this.x = new BN(x, 16);\n this.y = new BN(y, 16);\n this.z = z ? new BN(z, 16) : this.curve.one;\n this.t = t && new BN(t, 16);\n if (!this.x.red)\n this.x = this.x.toRed(this.curve.red);\n if (!this.y.red)\n this.y = this.y.toRed(this.curve.red);\n if (!this.z.red)\n this.z = this.z.toRed(this.curve.red);\n if (this.t && !this.t.red)\n this.t = this.t.toRed(this.curve.red);\n this.zOne = this.z === this.curve.one;\n\n // Use extended coordinates\n if (this.curve.extended && !this.t) {\n this.t = this.x.redMul(this.y);\n if (!this.zOne)\n this.t = this.t.redMul(this.z.redInvm());\n }\n }\n}\ninherits(Point, Base.BasePoint);\n\nEdwardsCurve.prototype.pointFromJSON = function pointFromJSON(obj) {\n return Point.fromJSON(this, obj);\n};\n\nEdwardsCurve.prototype.point = function point(x, y, z, t) {\n return new Point(this, x, y, z, t);\n};\n\nPoint.fromJSON = function fromJSON(curve, obj) {\n return new Point(curve, obj[0], obj[1], obj[2]);\n};\n\nPoint.prototype.inspect = function inspect() {\n if (this.isInfinity())\n return '';\n return '';\n};\n\nPoint.prototype.isInfinity = function isInfinity() {\n // XXX This code assumes that zero is always zero in red\n return this.x.cmpn(0) === 0 &&\n (this.y.cmp(this.z) === 0 ||\n (this.zOne && this.y.cmp(this.curve.c) === 0));\n};\n\nPoint.prototype._extDbl = function _extDbl() {\n // hyperelliptic.org/EFD/g1p/auto-twisted-extended-1.html\n // #doubling-dbl-2008-hwcd\n // 4M + 4S\n\n // A = X1^2\n var a = this.x.redSqr();\n // B = Y1^2\n var b = this.y.redSqr();\n // C = 2 * Z1^2\n var c = this.z.redSqr();\n c = c.redIAdd(c);\n // D = a * A\n var d = this.curve._mulA(a);\n // E = (X1 + Y1)^2 - A - B\n var e = this.x.redAdd(this.y).redSqr().redISub(a).redISub(b);\n // G = D + B\n var g = d.redAdd(b);\n // F = G - C\n var f = g.redSub(c);\n // H = D - B\n var h = d.redSub(b);\n // X3 = E * F\n var nx = e.redMul(f);\n // Y3 = G * H\n var ny = g.redMul(h);\n // T3 = E * H\n var nt = e.redMul(h);\n // Z3 = F * G\n var nz = f.redMul(g);\n return this.curve.point(nx, ny, nz, nt);\n};\n\nPoint.prototype._projDbl = function _projDbl() {\n // hyperelliptic.org/EFD/g1p/auto-twisted-projective.html\n // #doubling-dbl-2008-bbjlp\n // #doubling-dbl-2007-bl\n // and others\n // Generally 3M + 4S or 2M + 4S\n\n // B = (X1 + Y1)^2\n var b = this.x.redAdd(this.y).redSqr();\n // C = X1^2\n var c = this.x.redSqr();\n // D = Y1^2\n var d = this.y.redSqr();\n\n var nx;\n var ny;\n var nz;\n var e;\n var h;\n var j;\n if (this.curve.twisted) {\n // E = a * C\n e = this.curve._mulA(c);\n // F = E + D\n var f = e.redAdd(d);\n if (this.zOne) {\n // X3 = (B - C - D) * (F - 2)\n nx = b.redSub(c).redSub(d).redMul(f.redSub(this.curve.two));\n // Y3 = F * (E - D)\n ny = f.redMul(e.redSub(d));\n // Z3 = F^2 - 2 * F\n nz = f.redSqr().redSub(f).redSub(f);\n } else {\n // H = Z1^2\n h = this.z.redSqr();\n // J = F - 2 * H\n j = f.redSub(h).redISub(h);\n // X3 = (B-C-D)*J\n nx = b.redSub(c).redISub(d).redMul(j);\n // Y3 = F * (E - D)\n ny = f.redMul(e.redSub(d));\n // Z3 = F * J\n nz = f.redMul(j);\n }\n } else {\n // E = C + D\n e = c.redAdd(d);\n // H = (c * Z1)^2\n h = this.curve._mulC(this.z).redSqr();\n // J = E - 2 * H\n j = e.redSub(h).redSub(h);\n // X3 = c * (B - E) * J\n nx = this.curve._mulC(b.redISub(e)).redMul(j);\n // Y3 = c * E * (C - D)\n ny = this.curve._mulC(e).redMul(c.redISub(d));\n // Z3 = E * J\n nz = e.redMul(j);\n }\n return this.curve.point(nx, ny, nz);\n};\n\nPoint.prototype.dbl = function dbl() {\n if (this.isInfinity())\n return this;\n\n // Double in extended coordinates\n if (this.curve.extended)\n return this._extDbl();\n else\n return this._projDbl();\n};\n\nPoint.prototype._extAdd = function _extAdd(p) {\n // hyperelliptic.org/EFD/g1p/auto-twisted-extended-1.html\n // #addition-add-2008-hwcd-3\n // 8M\n\n // A = (Y1 - X1) * (Y2 - X2)\n var a = this.y.redSub(this.x).redMul(p.y.redSub(p.x));\n // B = (Y1 + X1) * (Y2 + X2)\n var b = this.y.redAdd(this.x).redMul(p.y.redAdd(p.x));\n // C = T1 * k * T2\n var c = this.t.redMul(this.curve.dd).redMul(p.t);\n // D = Z1 * 2 * Z2\n var d = this.z.redMul(p.z.redAdd(p.z));\n // E = B - A\n var e = b.redSub(a);\n // F = D - C\n var f = d.redSub(c);\n // G = D + C\n var g = d.redAdd(c);\n // H = B + A\n var h = b.redAdd(a);\n // X3 = E * F\n var nx = e.redMul(f);\n // Y3 = G * H\n var ny = g.redMul(h);\n // T3 = E * H\n var nt = e.redMul(h);\n // Z3 = F * G\n var nz = f.redMul(g);\n return this.curve.point(nx, ny, nz, nt);\n};\n\nPoint.prototype._projAdd = function _projAdd(p) {\n // hyperelliptic.org/EFD/g1p/auto-twisted-projective.html\n // #addition-add-2008-bbjlp\n // #addition-add-2007-bl\n // 10M + 1S\n\n // A = Z1 * Z2\n var a = this.z.redMul(p.z);\n // B = A^2\n var b = a.redSqr();\n // C = X1 * X2\n var c = this.x.redMul(p.x);\n // D = Y1 * Y2\n var d = this.y.redMul(p.y);\n // E = d * C * D\n var e = this.curve.d.redMul(c).redMul(d);\n // F = B - E\n var f = b.redSub(e);\n // G = B + E\n var g = b.redAdd(e);\n // X3 = A * F * ((X1 + Y1) * (X2 + Y2) - C - D)\n var tmp = this.x.redAdd(this.y).redMul(p.x.redAdd(p.y)).redISub(c).redISub(d);\n var nx = a.redMul(f).redMul(tmp);\n var ny;\n var nz;\n if (this.curve.twisted) {\n // Y3 = A * G * (D - a * C)\n ny = a.redMul(g).redMul(d.redSub(this.curve._mulA(c)));\n // Z3 = F * G\n nz = f.redMul(g);\n } else {\n // Y3 = A * G * (D - C)\n ny = a.redMul(g).redMul(d.redSub(c));\n // Z3 = c * F * G\n nz = this.curve._mulC(f).redMul(g);\n }\n return this.curve.point(nx, ny, nz);\n};\n\nPoint.prototype.add = function add(p) {\n if (this.isInfinity())\n return p;\n if (p.isInfinity())\n return this;\n\n if (this.curve.extended)\n return this._extAdd(p);\n else\n return this._projAdd(p);\n};\n\nPoint.prototype.mul = function mul(k) {\n if (this._hasDoubles(k))\n return this.curve._fixedNafMul(this, k);\n else\n return this.curve._wnafMul(this, k);\n};\n\nPoint.prototype.mulAdd = function mulAdd(k1, p, k2) {\n return this.curve._wnafMulAdd(1, [ this, p ], [ k1, k2 ], 2, false);\n};\n\nPoint.prototype.jmulAdd = function jmulAdd(k1, p, k2) {\n return this.curve._wnafMulAdd(1, [ this, p ], [ k1, k2 ], 2, true);\n};\n\nPoint.prototype.normalize = function normalize() {\n if (this.zOne)\n return this;\n\n // Normalize coordinates\n var zi = this.z.redInvm();\n this.x = this.x.redMul(zi);\n this.y = this.y.redMul(zi);\n if (this.t)\n this.t = this.t.redMul(zi);\n this.z = this.curve.one;\n this.zOne = true;\n return this;\n};\n\nPoint.prototype.neg = function neg() {\n return this.curve.point(this.x.redNeg(),\n this.y,\n this.z,\n this.t && this.t.redNeg());\n};\n\nPoint.prototype.getX = function getX() {\n this.normalize();\n return this.x.fromRed();\n};\n\nPoint.prototype.getY = function getY() {\n this.normalize();\n return this.y.fromRed();\n};\n\nPoint.prototype.eq = function eq(other) {\n return this === other ||\n this.getX().cmp(other.getX()) === 0 &&\n this.getY().cmp(other.getY()) === 0;\n};\n\nPoint.prototype.eqXToP = function eqXToP(x) {\n var rx = x.toRed(this.curve.red).redMul(this.z);\n if (this.x.cmp(rx) === 0)\n return true;\n\n var xc = x.clone();\n var t = this.curve.redN.redMul(this.z);\n for (;;) {\n xc.iadd(this.curve.n);\n if (xc.cmp(this.curve.p) >= 0)\n return false;\n\n rx.redIAdd(t);\n if (this.x.cmp(rx) === 0)\n return true;\n }\n};\n\n// Compatibility with BaseCurve\nPoint.prototype.toP = Point.prototype.normalize;\nPoint.prototype.mixedAdd = Point.prototype.add;\n", "'use strict';\n\nvar curve = exports;\n\ncurve.base = require('./base');\ncurve.short = require('./short');\ncurve.mont = require('./mont');\ncurve.edwards = require('./edwards');\n", "'use strict';\n\nvar assert = require('minimalistic-assert');\nvar inherits = require('inherits');\n\nexports.inherits = inherits;\n\nfunction isSurrogatePair(msg, i) {\n if ((msg.charCodeAt(i) & 0xFC00) !== 0xD800) {\n return false;\n }\n if (i < 0 || i + 1 >= msg.length) {\n return false;\n }\n return (msg.charCodeAt(i + 1) & 0xFC00) === 0xDC00;\n}\n\nfunction toArray(msg, enc) {\n if (Array.isArray(msg))\n return msg.slice();\n if (!msg)\n return [];\n var res = [];\n if (typeof msg === 'string') {\n if (!enc) {\n // Inspired by stringToUtf8ByteArray() in closure-library by Google\n // https://github.com/google/closure-library/blob/8598d87242af59aac233270742c8984e2b2bdbe0/closure/goog/crypt/crypt.js#L117-L143\n // Apache License 2.0\n // https://github.com/google/closure-library/blob/master/LICENSE\n var p = 0;\n for (var i = 0; i < msg.length; i++) {\n var c = msg.charCodeAt(i);\n if (c < 128) {\n res[p++] = c;\n } else if (c < 2048) {\n res[p++] = (c >> 6) | 192;\n res[p++] = (c & 63) | 128;\n } else if (isSurrogatePair(msg, i)) {\n c = 0x10000 + ((c & 0x03FF) << 10) + (msg.charCodeAt(++i) & 0x03FF);\n res[p++] = (c >> 18) | 240;\n res[p++] = ((c >> 12) & 63) | 128;\n res[p++] = ((c >> 6) & 63) | 128;\n res[p++] = (c & 63) | 128;\n } else {\n res[p++] = (c >> 12) | 224;\n res[p++] = ((c >> 6) & 63) | 128;\n res[p++] = (c & 63) | 128;\n }\n }\n } else if (enc === 'hex') {\n msg = msg.replace(/[^a-z0-9]+/ig, '');\n if (msg.length % 2 !== 0)\n msg = '0' + msg;\n for (i = 0; i < msg.length; i += 2)\n res.push(parseInt(msg[i] + msg[i + 1], 16));\n }\n } else {\n for (i = 0; i < msg.length; i++)\n res[i] = msg[i] | 0;\n }\n return res;\n}\nexports.toArray = toArray;\n\nfunction toHex(msg) {\n var res = '';\n for (var i = 0; i < msg.length; i++)\n res += zero2(msg[i].toString(16));\n return res;\n}\nexports.toHex = toHex;\n\nfunction htonl(w) {\n var res = (w >>> 24) |\n ((w >>> 8) & 0xff00) |\n ((w << 8) & 0xff0000) |\n ((w & 0xff) << 24);\n return res >>> 0;\n}\nexports.htonl = htonl;\n\nfunction toHex32(msg, endian) {\n var res = '';\n for (var i = 0; i < msg.length; i++) {\n var w = msg[i];\n if (endian === 'little')\n w = htonl(w);\n res += zero8(w.toString(16));\n }\n return res;\n}\nexports.toHex32 = toHex32;\n\nfunction zero2(word) {\n if (word.length === 1)\n return '0' + word;\n else\n return word;\n}\nexports.zero2 = zero2;\n\nfunction zero8(word) {\n if (word.length === 7)\n return '0' + word;\n else if (word.length === 6)\n return '00' + word;\n else if (word.length === 5)\n return '000' + word;\n else if (word.length === 4)\n return '0000' + word;\n else if (word.length === 3)\n return '00000' + word;\n else if (word.length === 2)\n return '000000' + word;\n else if (word.length === 1)\n return '0000000' + word;\n else\n return word;\n}\nexports.zero8 = zero8;\n\nfunction join32(msg, start, end, endian) {\n var len = end - start;\n assert(len % 4 === 0);\n var res = new Array(len / 4);\n for (var i = 0, k = start; i < res.length; i++, k += 4) {\n var w;\n if (endian === 'big')\n w = (msg[k] << 24) | (msg[k + 1] << 16) | (msg[k + 2] << 8) | msg[k + 3];\n else\n w = (msg[k + 3] << 24) | (msg[k + 2] << 16) | (msg[k + 1] << 8) | msg[k];\n res[i] = w >>> 0;\n }\n return res;\n}\nexports.join32 = join32;\n\nfunction split32(msg, endian) {\n var res = new Array(msg.length * 4);\n for (var i = 0, k = 0; i < msg.length; i++, k += 4) {\n var m = msg[i];\n if (endian === 'big') {\n res[k] = m >>> 24;\n res[k + 1] = (m >>> 16) & 0xff;\n res[k + 2] = (m >>> 8) & 0xff;\n res[k + 3] = m & 0xff;\n } else {\n res[k + 3] = m >>> 24;\n res[k + 2] = (m >>> 16) & 0xff;\n res[k + 1] = (m >>> 8) & 0xff;\n res[k] = m & 0xff;\n }\n }\n return res;\n}\nexports.split32 = split32;\n\nfunction rotr32(w, b) {\n return (w >>> b) | (w << (32 - b));\n}\nexports.rotr32 = rotr32;\n\nfunction rotl32(w, b) {\n return (w << b) | (w >>> (32 - b));\n}\nexports.rotl32 = rotl32;\n\nfunction sum32(a, b) {\n return (a + b) >>> 0;\n}\nexports.sum32 = sum32;\n\nfunction sum32_3(a, b, c) {\n return (a + b + c) >>> 0;\n}\nexports.sum32_3 = sum32_3;\n\nfunction sum32_4(a, b, c, d) {\n return (a + b + c + d) >>> 0;\n}\nexports.sum32_4 = sum32_4;\n\nfunction sum32_5(a, b, c, d, e) {\n return (a + b + c + d + e) >>> 0;\n}\nexports.sum32_5 = sum32_5;\n\nfunction sum64(buf, pos, ah, al) {\n var bh = buf[pos];\n var bl = buf[pos + 1];\n\n var lo = (al + bl) >>> 0;\n var hi = (lo < al ? 1 : 0) + ah + bh;\n buf[pos] = hi >>> 0;\n buf[pos + 1] = lo;\n}\nexports.sum64 = sum64;\n\nfunction sum64_hi(ah, al, bh, bl) {\n var lo = (al + bl) >>> 0;\n var hi = (lo < al ? 1 : 0) + ah + bh;\n return hi >>> 0;\n}\nexports.sum64_hi = sum64_hi;\n\nfunction sum64_lo(ah, al, bh, bl) {\n var lo = al + bl;\n return lo >>> 0;\n}\nexports.sum64_lo = sum64_lo;\n\nfunction sum64_4_hi(ah, al, bh, bl, ch, cl, dh, dl) {\n var carry = 0;\n var lo = al;\n lo = (lo + bl) >>> 0;\n carry += lo < al ? 1 : 0;\n lo = (lo + cl) >>> 0;\n carry += lo < cl ? 1 : 0;\n lo = (lo + dl) >>> 0;\n carry += lo < dl ? 1 : 0;\n\n var hi = ah + bh + ch + dh + carry;\n return hi >>> 0;\n}\nexports.sum64_4_hi = sum64_4_hi;\n\nfunction sum64_4_lo(ah, al, bh, bl, ch, cl, dh, dl) {\n var lo = al + bl + cl + dl;\n return lo >>> 0;\n}\nexports.sum64_4_lo = sum64_4_lo;\n\nfunction sum64_5_hi(ah, al, bh, bl, ch, cl, dh, dl, eh, el) {\n var carry = 0;\n var lo = al;\n lo = (lo + bl) >>> 0;\n carry += lo < al ? 1 : 0;\n lo = (lo + cl) >>> 0;\n carry += lo < cl ? 1 : 0;\n lo = (lo + dl) >>> 0;\n carry += lo < dl ? 1 : 0;\n lo = (lo + el) >>> 0;\n carry += lo < el ? 1 : 0;\n\n var hi = ah + bh + ch + dh + eh + carry;\n return hi >>> 0;\n}\nexports.sum64_5_hi = sum64_5_hi;\n\nfunction sum64_5_lo(ah, al, bh, bl, ch, cl, dh, dl, eh, el) {\n var lo = al + bl + cl + dl + el;\n\n return lo >>> 0;\n}\nexports.sum64_5_lo = sum64_5_lo;\n\nfunction rotr64_hi(ah, al, num) {\n var r = (al << (32 - num)) | (ah >>> num);\n return r >>> 0;\n}\nexports.rotr64_hi = rotr64_hi;\n\nfunction rotr64_lo(ah, al, num) {\n var r = (ah << (32 - num)) | (al >>> num);\n return r >>> 0;\n}\nexports.rotr64_lo = rotr64_lo;\n\nfunction shr64_hi(ah, al, num) {\n return ah >>> num;\n}\nexports.shr64_hi = shr64_hi;\n\nfunction shr64_lo(ah, al, num) {\n var r = (ah << (32 - num)) | (al >>> num);\n return r >>> 0;\n}\nexports.shr64_lo = shr64_lo;\n", "'use strict';\n\nvar utils = require('./utils');\nvar assert = require('minimalistic-assert');\n\nfunction BlockHash() {\n this.pending = null;\n this.pendingTotal = 0;\n this.blockSize = this.constructor.blockSize;\n this.outSize = this.constructor.outSize;\n this.hmacStrength = this.constructor.hmacStrength;\n this.padLength = this.constructor.padLength / 8;\n this.endian = 'big';\n\n this._delta8 = this.blockSize / 8;\n this._delta32 = this.blockSize / 32;\n}\nexports.BlockHash = BlockHash;\n\nBlockHash.prototype.update = function update(msg, enc) {\n // Convert message to array, pad it, and join into 32bit blocks\n msg = utils.toArray(msg, enc);\n if (!this.pending)\n this.pending = msg;\n else\n this.pending = this.pending.concat(msg);\n this.pendingTotal += msg.length;\n\n // Enough data, try updating\n if (this.pending.length >= this._delta8) {\n msg = this.pending;\n\n // Process pending data in blocks\n var r = msg.length % this._delta8;\n this.pending = msg.slice(msg.length - r, msg.length);\n if (this.pending.length === 0)\n this.pending = null;\n\n msg = utils.join32(msg, 0, msg.length - r, this.endian);\n for (var i = 0; i < msg.length; i += this._delta32)\n this._update(msg, i, i + this._delta32);\n }\n\n return this;\n};\n\nBlockHash.prototype.digest = function digest(enc) {\n this.update(this._pad());\n assert(this.pending === null);\n\n return this._digest(enc);\n};\n\nBlockHash.prototype._pad = function pad() {\n var len = this.pendingTotal;\n var bytes = this._delta8;\n var k = bytes - ((len + this.padLength) % bytes);\n var res = new Array(k + this.padLength);\n res[0] = 0x80;\n for (var i = 1; i < k; i++)\n res[i] = 0;\n\n // Append length\n len <<= 3;\n if (this.endian === 'big') {\n for (var t = 8; t < this.padLength; t++)\n res[i++] = 0;\n\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = (len >>> 24) & 0xff;\n res[i++] = (len >>> 16) & 0xff;\n res[i++] = (len >>> 8) & 0xff;\n res[i++] = len & 0xff;\n } else {\n res[i++] = len & 0xff;\n res[i++] = (len >>> 8) & 0xff;\n res[i++] = (len >>> 16) & 0xff;\n res[i++] = (len >>> 24) & 0xff;\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = 0;\n\n for (t = 8; t < this.padLength; t++)\n res[i++] = 0;\n }\n\n return res;\n};\n", "'use strict';\n\nvar utils = require('../utils');\nvar rotr32 = utils.rotr32;\n\nfunction ft_1(s, x, y, z) {\n if (s === 0)\n return ch32(x, y, z);\n if (s === 1 || s === 3)\n return p32(x, y, z);\n if (s === 2)\n return maj32(x, y, z);\n}\nexports.ft_1 = ft_1;\n\nfunction ch32(x, y, z) {\n return (x & y) ^ ((~x) & z);\n}\nexports.ch32 = ch32;\n\nfunction maj32(x, y, z) {\n return (x & y) ^ (x & z) ^ (y & z);\n}\nexports.maj32 = maj32;\n\nfunction p32(x, y, z) {\n return x ^ y ^ z;\n}\nexports.p32 = p32;\n\nfunction s0_256(x) {\n return rotr32(x, 2) ^ rotr32(x, 13) ^ rotr32(x, 22);\n}\nexports.s0_256 = s0_256;\n\nfunction s1_256(x) {\n return rotr32(x, 6) ^ rotr32(x, 11) ^ rotr32(x, 25);\n}\nexports.s1_256 = s1_256;\n\nfunction g0_256(x) {\n return rotr32(x, 7) ^ rotr32(x, 18) ^ (x >>> 3);\n}\nexports.g0_256 = g0_256;\n\nfunction g1_256(x) {\n return rotr32(x, 17) ^ rotr32(x, 19) ^ (x >>> 10);\n}\nexports.g1_256 = g1_256;\n", "'use strict';\n\nvar utils = require('../utils');\nvar common = require('../common');\nvar shaCommon = require('./common');\n\nvar rotl32 = utils.rotl32;\nvar sum32 = utils.sum32;\nvar sum32_5 = utils.sum32_5;\nvar ft_1 = shaCommon.ft_1;\nvar BlockHash = common.BlockHash;\n\nvar sha1_K = [\n 0x5A827999, 0x6ED9EBA1,\n 0x8F1BBCDC, 0xCA62C1D6\n];\n\nfunction SHA1() {\n if (!(this instanceof SHA1))\n return new SHA1();\n\n BlockHash.call(this);\n this.h = [\n 0x67452301, 0xefcdab89, 0x98badcfe,\n 0x10325476, 0xc3d2e1f0 ];\n this.W = new Array(80);\n}\n\nutils.inherits(SHA1, BlockHash);\nmodule.exports = SHA1;\n\nSHA1.blockSize = 512;\nSHA1.outSize = 160;\nSHA1.hmacStrength = 80;\nSHA1.padLength = 64;\n\nSHA1.prototype._update = function _update(msg, start) {\n var W = this.W;\n\n for (var i = 0; i < 16; i++)\n W[i] = msg[start + i];\n\n for(; i < W.length; i++)\n W[i] = rotl32(W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16], 1);\n\n var a = this.h[0];\n var b = this.h[1];\n var c = this.h[2];\n var d = this.h[3];\n var e = this.h[4];\n\n for (i = 0; i < W.length; i++) {\n var s = ~~(i / 20);\n var t = sum32_5(rotl32(a, 5), ft_1(s, b, c, d), e, W[i], sha1_K[s]);\n e = d;\n d = c;\n c = rotl32(b, 30);\n b = a;\n a = t;\n }\n\n this.h[0] = sum32(this.h[0], a);\n this.h[1] = sum32(this.h[1], b);\n this.h[2] = sum32(this.h[2], c);\n this.h[3] = sum32(this.h[3], d);\n this.h[4] = sum32(this.h[4], e);\n};\n\nSHA1.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h, 'big');\n else\n return utils.split32(this.h, 'big');\n};\n", "'use strict';\n\nvar utils = require('../utils');\nvar common = require('../common');\nvar shaCommon = require('./common');\nvar assert = require('minimalistic-assert');\n\nvar sum32 = utils.sum32;\nvar sum32_4 = utils.sum32_4;\nvar sum32_5 = utils.sum32_5;\nvar ch32 = shaCommon.ch32;\nvar maj32 = shaCommon.maj32;\nvar s0_256 = shaCommon.s0_256;\nvar s1_256 = shaCommon.s1_256;\nvar g0_256 = shaCommon.g0_256;\nvar g1_256 = shaCommon.g1_256;\n\nvar BlockHash = common.BlockHash;\n\nvar sha256_K = [\n 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5,\n 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5,\n 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3,\n 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174,\n 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc,\n 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,\n 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7,\n 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967,\n 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13,\n 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,\n 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3,\n 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,\n 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5,\n 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3,\n 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208,\n 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2\n];\n\nfunction SHA256() {\n if (!(this instanceof SHA256))\n return new SHA256();\n\n BlockHash.call(this);\n this.h = [\n 0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a,\n 0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19\n ];\n this.k = sha256_K;\n this.W = new Array(64);\n}\nutils.inherits(SHA256, BlockHash);\nmodule.exports = SHA256;\n\nSHA256.blockSize = 512;\nSHA256.outSize = 256;\nSHA256.hmacStrength = 192;\nSHA256.padLength = 64;\n\nSHA256.prototype._update = function _update(msg, start) {\n var W = this.W;\n\n for (var i = 0; i < 16; i++)\n W[i] = msg[start + i];\n for (; i < W.length; i++)\n W[i] = sum32_4(g1_256(W[i - 2]), W[i - 7], g0_256(W[i - 15]), W[i - 16]);\n\n var a = this.h[0];\n var b = this.h[1];\n var c = this.h[2];\n var d = this.h[3];\n var e = this.h[4];\n var f = this.h[5];\n var g = this.h[6];\n var h = this.h[7];\n\n assert(this.k.length === W.length);\n for (i = 0; i < W.length; i++) {\n var T1 = sum32_5(h, s1_256(e), ch32(e, f, g), this.k[i], W[i]);\n var T2 = sum32(s0_256(a), maj32(a, b, c));\n h = g;\n g = f;\n f = e;\n e = sum32(d, T1);\n d = c;\n c = b;\n b = a;\n a = sum32(T1, T2);\n }\n\n this.h[0] = sum32(this.h[0], a);\n this.h[1] = sum32(this.h[1], b);\n this.h[2] = sum32(this.h[2], c);\n this.h[3] = sum32(this.h[3], d);\n this.h[4] = sum32(this.h[4], e);\n this.h[5] = sum32(this.h[5], f);\n this.h[6] = sum32(this.h[6], g);\n this.h[7] = sum32(this.h[7], h);\n};\n\nSHA256.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h, 'big');\n else\n return utils.split32(this.h, 'big');\n};\n", "'use strict';\n\nvar utils = require('../utils');\nvar SHA256 = require('./256');\n\nfunction SHA224() {\n if (!(this instanceof SHA224))\n return new SHA224();\n\n SHA256.call(this);\n this.h = [\n 0xc1059ed8, 0x367cd507, 0x3070dd17, 0xf70e5939,\n 0xffc00b31, 0x68581511, 0x64f98fa7, 0xbefa4fa4 ];\n}\nutils.inherits(SHA224, SHA256);\nmodule.exports = SHA224;\n\nSHA224.blockSize = 512;\nSHA224.outSize = 224;\nSHA224.hmacStrength = 192;\nSHA224.padLength = 64;\n\nSHA224.prototype._digest = function digest(enc) {\n // Just truncate output\n if (enc === 'hex')\n return utils.toHex32(this.h.slice(0, 7), 'big');\n else\n return utils.split32(this.h.slice(0, 7), 'big');\n};\n\n", "'use strict';\n\nvar utils = require('../utils');\nvar common = require('../common');\nvar assert = require('minimalistic-assert');\n\nvar rotr64_hi = utils.rotr64_hi;\nvar rotr64_lo = utils.rotr64_lo;\nvar shr64_hi = utils.shr64_hi;\nvar shr64_lo = utils.shr64_lo;\nvar sum64 = utils.sum64;\nvar sum64_hi = utils.sum64_hi;\nvar sum64_lo = utils.sum64_lo;\nvar sum64_4_hi = utils.sum64_4_hi;\nvar sum64_4_lo = utils.sum64_4_lo;\nvar sum64_5_hi = utils.sum64_5_hi;\nvar sum64_5_lo = utils.sum64_5_lo;\n\nvar BlockHash = common.BlockHash;\n\nvar sha512_K = [\n 0x428a2f98, 0xd728ae22, 0x71374491, 0x23ef65cd,\n 0xb5c0fbcf, 0xec4d3b2f, 0xe9b5dba5, 0x8189dbbc,\n 0x3956c25b, 0xf348b538, 0x59f111f1, 0xb605d019,\n 0x923f82a4, 0xaf194f9b, 0xab1c5ed5, 0xda6d8118,\n 0xd807aa98, 0xa3030242, 0x12835b01, 0x45706fbe,\n 0x243185be, 0x4ee4b28c, 0x550c7dc3, 0xd5ffb4e2,\n 0x72be5d74, 0xf27b896f, 0x80deb1fe, 0x3b1696b1,\n 0x9bdc06a7, 0x25c71235, 0xc19bf174, 0xcf692694,\n 0xe49b69c1, 0x9ef14ad2, 0xefbe4786, 0x384f25e3,\n 0x0fc19dc6, 0x8b8cd5b5, 0x240ca1cc, 0x77ac9c65,\n 0x2de92c6f, 0x592b0275, 0x4a7484aa, 0x6ea6e483,\n 0x5cb0a9dc, 0xbd41fbd4, 0x76f988da, 0x831153b5,\n 0x983e5152, 0xee66dfab, 0xa831c66d, 0x2db43210,\n 0xb00327c8, 0x98fb213f, 0xbf597fc7, 0xbeef0ee4,\n 0xc6e00bf3, 0x3da88fc2, 0xd5a79147, 0x930aa725,\n 0x06ca6351, 0xe003826f, 0x14292967, 0x0a0e6e70,\n 0x27b70a85, 0x46d22ffc, 0x2e1b2138, 0x5c26c926,\n 0x4d2c6dfc, 0x5ac42aed, 0x53380d13, 0x9d95b3df,\n 0x650a7354, 0x8baf63de, 0x766a0abb, 0x3c77b2a8,\n 0x81c2c92e, 0x47edaee6, 0x92722c85, 0x1482353b,\n 0xa2bfe8a1, 0x4cf10364, 0xa81a664b, 0xbc423001,\n 0xc24b8b70, 0xd0f89791, 0xc76c51a3, 0x0654be30,\n 0xd192e819, 0xd6ef5218, 0xd6990624, 0x5565a910,\n 0xf40e3585, 0x5771202a, 0x106aa070, 0x32bbd1b8,\n 0x19a4c116, 0xb8d2d0c8, 0x1e376c08, 0x5141ab53,\n 0x2748774c, 0xdf8eeb99, 0x34b0bcb5, 0xe19b48a8,\n 0x391c0cb3, 0xc5c95a63, 0x4ed8aa4a, 0xe3418acb,\n 0x5b9cca4f, 0x7763e373, 0x682e6ff3, 0xd6b2b8a3,\n 0x748f82ee, 0x5defb2fc, 0x78a5636f, 0x43172f60,\n 0x84c87814, 0xa1f0ab72, 0x8cc70208, 0x1a6439ec,\n 0x90befffa, 0x23631e28, 0xa4506ceb, 0xde82bde9,\n 0xbef9a3f7, 0xb2c67915, 0xc67178f2, 0xe372532b,\n 0xca273ece, 0xea26619c, 0xd186b8c7, 0x21c0c207,\n 0xeada7dd6, 0xcde0eb1e, 0xf57d4f7f, 0xee6ed178,\n 0x06f067aa, 0x72176fba, 0x0a637dc5, 0xa2c898a6,\n 0x113f9804, 0xbef90dae, 0x1b710b35, 0x131c471b,\n 0x28db77f5, 0x23047d84, 0x32caab7b, 0x40c72493,\n 0x3c9ebe0a, 0x15c9bebc, 0x431d67c4, 0x9c100d4c,\n 0x4cc5d4be, 0xcb3e42b6, 0x597f299c, 0xfc657e2a,\n 0x5fcb6fab, 0x3ad6faec, 0x6c44198c, 0x4a475817\n];\n\nfunction SHA512() {\n if (!(this instanceof SHA512))\n return new SHA512();\n\n BlockHash.call(this);\n this.h = [\n 0x6a09e667, 0xf3bcc908,\n 0xbb67ae85, 0x84caa73b,\n 0x3c6ef372, 0xfe94f82b,\n 0xa54ff53a, 0x5f1d36f1,\n 0x510e527f, 0xade682d1,\n 0x9b05688c, 0x2b3e6c1f,\n 0x1f83d9ab, 0xfb41bd6b,\n 0x5be0cd19, 0x137e2179 ];\n this.k = sha512_K;\n this.W = new Array(160);\n}\nutils.inherits(SHA512, BlockHash);\nmodule.exports = SHA512;\n\nSHA512.blockSize = 1024;\nSHA512.outSize = 512;\nSHA512.hmacStrength = 192;\nSHA512.padLength = 128;\n\nSHA512.prototype._prepareBlock = function _prepareBlock(msg, start) {\n var W = this.W;\n\n // 32 x 32bit words\n for (var i = 0; i < 32; i++)\n W[i] = msg[start + i];\n for (; i < W.length; i += 2) {\n var c0_hi = g1_512_hi(W[i - 4], W[i - 3]); // i - 2\n var c0_lo = g1_512_lo(W[i - 4], W[i - 3]);\n var c1_hi = W[i - 14]; // i - 7\n var c1_lo = W[i - 13];\n var c2_hi = g0_512_hi(W[i - 30], W[i - 29]); // i - 15\n var c2_lo = g0_512_lo(W[i - 30], W[i - 29]);\n var c3_hi = W[i - 32]; // i - 16\n var c3_lo = W[i - 31];\n\n W[i] = sum64_4_hi(\n c0_hi, c0_lo,\n c1_hi, c1_lo,\n c2_hi, c2_lo,\n c3_hi, c3_lo);\n W[i + 1] = sum64_4_lo(\n c0_hi, c0_lo,\n c1_hi, c1_lo,\n c2_hi, c2_lo,\n c3_hi, c3_lo);\n }\n};\n\nSHA512.prototype._update = function _update(msg, start) {\n this._prepareBlock(msg, start);\n\n var W = this.W;\n\n var ah = this.h[0];\n var al = this.h[1];\n var bh = this.h[2];\n var bl = this.h[3];\n var ch = this.h[4];\n var cl = this.h[5];\n var dh = this.h[6];\n var dl = this.h[7];\n var eh = this.h[8];\n var el = this.h[9];\n var fh = this.h[10];\n var fl = this.h[11];\n var gh = this.h[12];\n var gl = this.h[13];\n var hh = this.h[14];\n var hl = this.h[15];\n\n assert(this.k.length === W.length);\n for (var i = 0; i < W.length; i += 2) {\n var c0_hi = hh;\n var c0_lo = hl;\n var c1_hi = s1_512_hi(eh, el);\n var c1_lo = s1_512_lo(eh, el);\n var c2_hi = ch64_hi(eh, el, fh, fl, gh, gl);\n var c2_lo = ch64_lo(eh, el, fh, fl, gh, gl);\n var c3_hi = this.k[i];\n var c3_lo = this.k[i + 1];\n var c4_hi = W[i];\n var c4_lo = W[i + 1];\n\n var T1_hi = sum64_5_hi(\n c0_hi, c0_lo,\n c1_hi, c1_lo,\n c2_hi, c2_lo,\n c3_hi, c3_lo,\n c4_hi, c4_lo);\n var T1_lo = sum64_5_lo(\n c0_hi, c0_lo,\n c1_hi, c1_lo,\n c2_hi, c2_lo,\n c3_hi, c3_lo,\n c4_hi, c4_lo);\n\n c0_hi = s0_512_hi(ah, al);\n c0_lo = s0_512_lo(ah, al);\n c1_hi = maj64_hi(ah, al, bh, bl, ch, cl);\n c1_lo = maj64_lo(ah, al, bh, bl, ch, cl);\n\n var T2_hi = sum64_hi(c0_hi, c0_lo, c1_hi, c1_lo);\n var T2_lo = sum64_lo(c0_hi, c0_lo, c1_hi, c1_lo);\n\n hh = gh;\n hl = gl;\n\n gh = fh;\n gl = fl;\n\n fh = eh;\n fl = el;\n\n eh = sum64_hi(dh, dl, T1_hi, T1_lo);\n el = sum64_lo(dl, dl, T1_hi, T1_lo);\n\n dh = ch;\n dl = cl;\n\n ch = bh;\n cl = bl;\n\n bh = ah;\n bl = al;\n\n ah = sum64_hi(T1_hi, T1_lo, T2_hi, T2_lo);\n al = sum64_lo(T1_hi, T1_lo, T2_hi, T2_lo);\n }\n\n sum64(this.h, 0, ah, al);\n sum64(this.h, 2, bh, bl);\n sum64(this.h, 4, ch, cl);\n sum64(this.h, 6, dh, dl);\n sum64(this.h, 8, eh, el);\n sum64(this.h, 10, fh, fl);\n sum64(this.h, 12, gh, gl);\n sum64(this.h, 14, hh, hl);\n};\n\nSHA512.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h, 'big');\n else\n return utils.split32(this.h, 'big');\n};\n\nfunction ch64_hi(xh, xl, yh, yl, zh) {\n var r = (xh & yh) ^ ((~xh) & zh);\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction ch64_lo(xh, xl, yh, yl, zh, zl) {\n var r = (xl & yl) ^ ((~xl) & zl);\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction maj64_hi(xh, xl, yh, yl, zh) {\n var r = (xh & yh) ^ (xh & zh) ^ (yh & zh);\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction maj64_lo(xh, xl, yh, yl, zh, zl) {\n var r = (xl & yl) ^ (xl & zl) ^ (yl & zl);\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction s0_512_hi(xh, xl) {\n var c0_hi = rotr64_hi(xh, xl, 28);\n var c1_hi = rotr64_hi(xl, xh, 2); // 34\n var c2_hi = rotr64_hi(xl, xh, 7); // 39\n\n var r = c0_hi ^ c1_hi ^ c2_hi;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction s0_512_lo(xh, xl) {\n var c0_lo = rotr64_lo(xh, xl, 28);\n var c1_lo = rotr64_lo(xl, xh, 2); // 34\n var c2_lo = rotr64_lo(xl, xh, 7); // 39\n\n var r = c0_lo ^ c1_lo ^ c2_lo;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction s1_512_hi(xh, xl) {\n var c0_hi = rotr64_hi(xh, xl, 14);\n var c1_hi = rotr64_hi(xh, xl, 18);\n var c2_hi = rotr64_hi(xl, xh, 9); // 41\n\n var r = c0_hi ^ c1_hi ^ c2_hi;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction s1_512_lo(xh, xl) {\n var c0_lo = rotr64_lo(xh, xl, 14);\n var c1_lo = rotr64_lo(xh, xl, 18);\n var c2_lo = rotr64_lo(xl, xh, 9); // 41\n\n var r = c0_lo ^ c1_lo ^ c2_lo;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction g0_512_hi(xh, xl) {\n var c0_hi = rotr64_hi(xh, xl, 1);\n var c1_hi = rotr64_hi(xh, xl, 8);\n var c2_hi = shr64_hi(xh, xl, 7);\n\n var r = c0_hi ^ c1_hi ^ c2_hi;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction g0_512_lo(xh, xl) {\n var c0_lo = rotr64_lo(xh, xl, 1);\n var c1_lo = rotr64_lo(xh, xl, 8);\n var c2_lo = shr64_lo(xh, xl, 7);\n\n var r = c0_lo ^ c1_lo ^ c2_lo;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction g1_512_hi(xh, xl) {\n var c0_hi = rotr64_hi(xh, xl, 19);\n var c1_hi = rotr64_hi(xl, xh, 29); // 61\n var c2_hi = shr64_hi(xh, xl, 6);\n\n var r = c0_hi ^ c1_hi ^ c2_hi;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction g1_512_lo(xh, xl) {\n var c0_lo = rotr64_lo(xh, xl, 19);\n var c1_lo = rotr64_lo(xl, xh, 29); // 61\n var c2_lo = shr64_lo(xh, xl, 6);\n\n var r = c0_lo ^ c1_lo ^ c2_lo;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n", "'use strict';\n\nvar utils = require('../utils');\n\nvar SHA512 = require('./512');\n\nfunction SHA384() {\n if (!(this instanceof SHA384))\n return new SHA384();\n\n SHA512.call(this);\n this.h = [\n 0xcbbb9d5d, 0xc1059ed8,\n 0x629a292a, 0x367cd507,\n 0x9159015a, 0x3070dd17,\n 0x152fecd8, 0xf70e5939,\n 0x67332667, 0xffc00b31,\n 0x8eb44a87, 0x68581511,\n 0xdb0c2e0d, 0x64f98fa7,\n 0x47b5481d, 0xbefa4fa4 ];\n}\nutils.inherits(SHA384, SHA512);\nmodule.exports = SHA384;\n\nSHA384.blockSize = 1024;\nSHA384.outSize = 384;\nSHA384.hmacStrength = 192;\nSHA384.padLength = 128;\n\nSHA384.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h.slice(0, 12), 'big');\n else\n return utils.split32(this.h.slice(0, 12), 'big');\n};\n", "'use strict';\n\nexports.sha1 = require('./sha/1');\nexports.sha224 = require('./sha/224');\nexports.sha256 = require('./sha/256');\nexports.sha384 = require('./sha/384');\nexports.sha512 = require('./sha/512');\n", "'use strict';\n\nvar utils = require('./utils');\nvar common = require('./common');\n\nvar rotl32 = utils.rotl32;\nvar sum32 = utils.sum32;\nvar sum32_3 = utils.sum32_3;\nvar sum32_4 = utils.sum32_4;\nvar BlockHash = common.BlockHash;\n\nfunction RIPEMD160() {\n if (!(this instanceof RIPEMD160))\n return new RIPEMD160();\n\n BlockHash.call(this);\n\n this.h = [ 0x67452301, 0xefcdab89, 0x98badcfe, 0x10325476, 0xc3d2e1f0 ];\n this.endian = 'little';\n}\nutils.inherits(RIPEMD160, BlockHash);\nexports.ripemd160 = RIPEMD160;\n\nRIPEMD160.blockSize = 512;\nRIPEMD160.outSize = 160;\nRIPEMD160.hmacStrength = 192;\nRIPEMD160.padLength = 64;\n\nRIPEMD160.prototype._update = function update(msg, start) {\n var A = this.h[0];\n var B = this.h[1];\n var C = this.h[2];\n var D = this.h[3];\n var E = this.h[4];\n var Ah = A;\n var Bh = B;\n var Ch = C;\n var Dh = D;\n var Eh = E;\n for (var j = 0; j < 80; j++) {\n var T = sum32(\n rotl32(\n sum32_4(A, f(j, B, C, D), msg[r[j] + start], K(j)),\n s[j]),\n E);\n A = E;\n E = D;\n D = rotl32(C, 10);\n C = B;\n B = T;\n T = sum32(\n rotl32(\n sum32_4(Ah, f(79 - j, Bh, Ch, Dh), msg[rh[j] + start], Kh(j)),\n sh[j]),\n Eh);\n Ah = Eh;\n Eh = Dh;\n Dh = rotl32(Ch, 10);\n Ch = Bh;\n Bh = T;\n }\n T = sum32_3(this.h[1], C, Dh);\n this.h[1] = sum32_3(this.h[2], D, Eh);\n this.h[2] = sum32_3(this.h[3], E, Ah);\n this.h[3] = sum32_3(this.h[4], A, Bh);\n this.h[4] = sum32_3(this.h[0], B, Ch);\n this.h[0] = T;\n};\n\nRIPEMD160.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h, 'little');\n else\n return utils.split32(this.h, 'little');\n};\n\nfunction f(j, x, y, z) {\n if (j <= 15)\n return x ^ y ^ z;\n else if (j <= 31)\n return (x & y) | ((~x) & z);\n else if (j <= 47)\n return (x | (~y)) ^ z;\n else if (j <= 63)\n return (x & z) | (y & (~z));\n else\n return x ^ (y | (~z));\n}\n\nfunction K(j) {\n if (j <= 15)\n return 0x00000000;\n else if (j <= 31)\n return 0x5a827999;\n else if (j <= 47)\n return 0x6ed9eba1;\n else if (j <= 63)\n return 0x8f1bbcdc;\n else\n return 0xa953fd4e;\n}\n\nfunction Kh(j) {\n if (j <= 15)\n return 0x50a28be6;\n else if (j <= 31)\n return 0x5c4dd124;\n else if (j <= 47)\n return 0x6d703ef3;\n else if (j <= 63)\n return 0x7a6d76e9;\n else\n return 0x00000000;\n}\n\nvar r = [\n 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,\n 7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8,\n 3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11, 5, 12,\n 1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2,\n 4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13\n];\n\nvar rh = [\n 5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12,\n 6, 11, 3, 7, 0, 13, 5, 10, 14, 15, 8, 12, 4, 9, 1, 2,\n 15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0, 4, 13,\n 8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14,\n 12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11\n];\n\nvar s = [\n 11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8,\n 7, 6, 8, 13, 11, 9, 7, 15, 7, 12, 15, 9, 11, 7, 13, 12,\n 11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5, 12, 7, 5,\n 11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12,\n 9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6\n];\n\nvar sh = [\n 8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6,\n 9, 13, 15, 7, 12, 8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11,\n 9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14, 13, 13, 7, 5,\n 15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8,\n 8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11\n];\n", "'use strict';\n\nvar utils = require('./utils');\nvar assert = require('minimalistic-assert');\n\nfunction Hmac(hash, key, enc) {\n if (!(this instanceof Hmac))\n return new Hmac(hash, key, enc);\n this.Hash = hash;\n this.blockSize = hash.blockSize / 8;\n this.outSize = hash.outSize / 8;\n this.inner = null;\n this.outer = null;\n\n this._init(utils.toArray(key, enc));\n}\nmodule.exports = Hmac;\n\nHmac.prototype._init = function init(key) {\n // Shorten key, if needed\n if (key.length > this.blockSize)\n key = new this.Hash().update(key).digest();\n assert(key.length <= this.blockSize);\n\n // Add padding to key\n for (var i = key.length; i < this.blockSize; i++)\n key.push(0);\n\n for (i = 0; i < key.length; i++)\n key[i] ^= 0x36;\n this.inner = new this.Hash().update(key);\n\n // 0x36 ^ 0x5c = 0x6a\n for (i = 0; i < key.length; i++)\n key[i] ^= 0x6a;\n this.outer = new this.Hash().update(key);\n};\n\nHmac.prototype.update = function update(msg, enc) {\n this.inner.update(msg, enc);\n return this;\n};\n\nHmac.prototype.digest = function digest(enc) {\n this.outer.update(this.inner.digest());\n return this.outer.digest(enc);\n};\n", "var hash = exports;\n\nhash.utils = require('./hash/utils');\nhash.common = require('./hash/common');\nhash.sha = require('./hash/sha');\nhash.ripemd = require('./hash/ripemd');\nhash.hmac = require('./hash/hmac');\n\n// Proxy hash functions to the main object\nhash.sha1 = hash.sha.sha1;\nhash.sha256 = hash.sha.sha256;\nhash.sha224 = hash.sha.sha224;\nhash.sha384 = hash.sha.sha384;\nhash.sha512 = hash.sha.sha512;\nhash.ripemd160 = hash.ripemd.ripemd160;\n", "module.exports = {\n doubles: {\n step: 4,\n points: [\n [\n 'e60fce93b59e9ec53011aabc21c23e97b2a31369b87a5ae9c44ee89e2a6dec0a',\n 'f7e3507399e595929db99f34f57937101296891e44d23f0be1f32cce69616821',\n ],\n [\n '8282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508',\n '11f8a8098557dfe45e8256e830b60ace62d613ac2f7b17bed31b6eaff6e26caf',\n ],\n [\n '175e159f728b865a72f99cc6c6fc846de0b93833fd2222ed73fce5b551e5b739',\n 'd3506e0d9e3c79eba4ef97a51ff71f5eacb5955add24345c6efa6ffee9fed695',\n ],\n [\n '363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff4640',\n '4e273adfc732221953b445397f3363145b9a89008199ecb62003c7f3bee9de9',\n ],\n [\n '8b4b5f165df3c2be8c6244b5b745638843e4a781a15bcd1b69f79a55dffdf80c',\n '4aad0a6f68d308b4b3fbd7813ab0da04f9e336546162ee56b3eff0c65fd4fd36',\n ],\n [\n '723cbaa6e5db996d6bf771c00bd548c7b700dbffa6c0e77bcb6115925232fcda',\n '96e867b5595cc498a921137488824d6e2660a0653779494801dc069d9eb39f5f',\n ],\n [\n 'eebfa4d493bebf98ba5feec812c2d3b50947961237a919839a533eca0e7dd7fa',\n '5d9a8ca3970ef0f269ee7edaf178089d9ae4cdc3a711f712ddfd4fdae1de8999',\n ],\n [\n '100f44da696e71672791d0a09b7bde459f1215a29b3c03bfefd7835b39a48db0',\n 'cdd9e13192a00b772ec8f3300c090666b7ff4a18ff5195ac0fbd5cd62bc65a09',\n ],\n [\n 'e1031be262c7ed1b1dc9227a4a04c017a77f8d4464f3b3852c8acde6e534fd2d',\n '9d7061928940405e6bb6a4176597535af292dd419e1ced79a44f18f29456a00d',\n ],\n [\n 'feea6cae46d55b530ac2839f143bd7ec5cf8b266a41d6af52d5e688d9094696d',\n 'e57c6b6c97dce1bab06e4e12bf3ecd5c981c8957cc41442d3155debf18090088',\n ],\n [\n 'da67a91d91049cdcb367be4be6ffca3cfeed657d808583de33fa978bc1ec6cb1',\n '9bacaa35481642bc41f463f7ec9780e5dec7adc508f740a17e9ea8e27a68be1d',\n ],\n [\n '53904faa0b334cdda6e000935ef22151ec08d0f7bb11069f57545ccc1a37b7c0',\n '5bc087d0bc80106d88c9eccac20d3c1c13999981e14434699dcb096b022771c8',\n ],\n [\n '8e7bcd0bd35983a7719cca7764ca906779b53a043a9b8bcaeff959f43ad86047',\n '10b7770b2a3da4b3940310420ca9514579e88e2e47fd68b3ea10047e8460372a',\n ],\n [\n '385eed34c1cdff21e6d0818689b81bde71a7f4f18397e6690a841e1599c43862',\n '283bebc3e8ea23f56701de19e9ebf4576b304eec2086dc8cc0458fe5542e5453',\n ],\n [\n '6f9d9b803ecf191637c73a4413dfa180fddf84a5947fbc9c606ed86c3fac3a7',\n '7c80c68e603059ba69b8e2a30e45c4d47ea4dd2f5c281002d86890603a842160',\n ],\n [\n '3322d401243c4e2582a2147c104d6ecbf774d163db0f5e5313b7e0e742d0e6bd',\n '56e70797e9664ef5bfb019bc4ddaf9b72805f63ea2873af624f3a2e96c28b2a0',\n ],\n [\n '85672c7d2de0b7da2bd1770d89665868741b3f9af7643397721d74d28134ab83',\n '7c481b9b5b43b2eb6374049bfa62c2e5e77f17fcc5298f44c8e3094f790313a6',\n ],\n [\n '948bf809b1988a46b06c9f1919413b10f9226c60f668832ffd959af60c82a0a',\n '53a562856dcb6646dc6b74c5d1c3418c6d4dff08c97cd2bed4cb7f88d8c8e589',\n ],\n [\n '6260ce7f461801c34f067ce0f02873a8f1b0e44dfc69752accecd819f38fd8e8',\n 'bc2da82b6fa5b571a7f09049776a1ef7ecd292238051c198c1a84e95b2b4ae17',\n ],\n [\n 'e5037de0afc1d8d43d8348414bbf4103043ec8f575bfdc432953cc8d2037fa2d',\n '4571534baa94d3b5f9f98d09fb990bddbd5f5b03ec481f10e0e5dc841d755bda',\n ],\n [\n 'e06372b0f4a207adf5ea905e8f1771b4e7e8dbd1c6a6c5b725866a0ae4fce725',\n '7a908974bce18cfe12a27bb2ad5a488cd7484a7787104870b27034f94eee31dd',\n ],\n [\n '213c7a715cd5d45358d0bbf9dc0ce02204b10bdde2a3f58540ad6908d0559754',\n '4b6dad0b5ae462507013ad06245ba190bb4850f5f36a7eeddff2c27534b458f2',\n ],\n [\n '4e7c272a7af4b34e8dbb9352a5419a87e2838c70adc62cddf0cc3a3b08fbd53c',\n '17749c766c9d0b18e16fd09f6def681b530b9614bff7dd33e0b3941817dcaae6',\n ],\n [\n 'fea74e3dbe778b1b10f238ad61686aa5c76e3db2be43057632427e2840fb27b6',\n '6e0568db9b0b13297cf674deccb6af93126b596b973f7b77701d3db7f23cb96f',\n ],\n [\n '76e64113f677cf0e10a2570d599968d31544e179b760432952c02a4417bdde39',\n 'c90ddf8dee4e95cf577066d70681f0d35e2a33d2b56d2032b4b1752d1901ac01',\n ],\n [\n 'c738c56b03b2abe1e8281baa743f8f9a8f7cc643df26cbee3ab150242bcbb891',\n '893fb578951ad2537f718f2eacbfbbbb82314eef7880cfe917e735d9699a84c3',\n ],\n [\n 'd895626548b65b81e264c7637c972877d1d72e5f3a925014372e9f6588f6c14b',\n 'febfaa38f2bc7eae728ec60818c340eb03428d632bb067e179363ed75d7d991f',\n ],\n [\n 'b8da94032a957518eb0f6433571e8761ceffc73693e84edd49150a564f676e03',\n '2804dfa44805a1e4d7c99cc9762808b092cc584d95ff3b511488e4e74efdf6e7',\n ],\n [\n 'e80fea14441fb33a7d8adab9475d7fab2019effb5156a792f1a11778e3c0df5d',\n 'eed1de7f638e00771e89768ca3ca94472d155e80af322ea9fcb4291b6ac9ec78',\n ],\n [\n 'a301697bdfcd704313ba48e51d567543f2a182031efd6915ddc07bbcc4e16070',\n '7370f91cfb67e4f5081809fa25d40f9b1735dbf7c0a11a130c0d1a041e177ea1',\n ],\n [\n '90ad85b389d6b936463f9d0512678de208cc330b11307fffab7ac63e3fb04ed4',\n 'e507a3620a38261affdcbd9427222b839aefabe1582894d991d4d48cb6ef150',\n ],\n [\n '8f68b9d2f63b5f339239c1ad981f162ee88c5678723ea3351b7b444c9ec4c0da',\n '662a9f2dba063986de1d90c2b6be215dbbea2cfe95510bfdf23cbf79501fff82',\n ],\n [\n 'e4f3fb0176af85d65ff99ff9198c36091f48e86503681e3e6686fd5053231e11',\n '1e63633ad0ef4f1c1661a6d0ea02b7286cc7e74ec951d1c9822c38576feb73bc',\n ],\n [\n '8c00fa9b18ebf331eb961537a45a4266c7034f2f0d4e1d0716fb6eae20eae29e',\n 'efa47267fea521a1a9dc343a3736c974c2fadafa81e36c54e7d2a4c66702414b',\n ],\n [\n 'e7a26ce69dd4829f3e10cec0a9e98ed3143d084f308b92c0997fddfc60cb3e41',\n '2a758e300fa7984b471b006a1aafbb18d0a6b2c0420e83e20e8a9421cf2cfd51',\n ],\n [\n 'b6459e0ee3662ec8d23540c223bcbdc571cbcb967d79424f3cf29eb3de6b80ef',\n '67c876d06f3e06de1dadf16e5661db3c4b3ae6d48e35b2ff30bf0b61a71ba45',\n ],\n [\n 'd68a80c8280bb840793234aa118f06231d6f1fc67e73c5a5deda0f5b496943e8',\n 'db8ba9fff4b586d00c4b1f9177b0e28b5b0e7b8f7845295a294c84266b133120',\n ],\n [\n '324aed7df65c804252dc0270907a30b09612aeb973449cea4095980fc28d3d5d',\n '648a365774b61f2ff130c0c35aec1f4f19213b0c7e332843967224af96ab7c84',\n ],\n [\n '4df9c14919cde61f6d51dfdbe5fee5dceec4143ba8d1ca888e8bd373fd054c96',\n '35ec51092d8728050974c23a1d85d4b5d506cdc288490192ebac06cad10d5d',\n ],\n [\n '9c3919a84a474870faed8a9c1cc66021523489054d7f0308cbfc99c8ac1f98cd',\n 'ddb84f0f4a4ddd57584f044bf260e641905326f76c64c8e6be7e5e03d4fc599d',\n ],\n [\n '6057170b1dd12fdf8de05f281d8e06bb91e1493a8b91d4cc5a21382120a959e5',\n '9a1af0b26a6a4807add9a2daf71df262465152bc3ee24c65e899be932385a2a8',\n ],\n [\n 'a576df8e23a08411421439a4518da31880cef0fba7d4df12b1a6973eecb94266',\n '40a6bf20e76640b2c92b97afe58cd82c432e10a7f514d9f3ee8be11ae1b28ec8',\n ],\n [\n '7778a78c28dec3e30a05fe9629de8c38bb30d1f5cf9a3a208f763889be58ad71',\n '34626d9ab5a5b22ff7098e12f2ff580087b38411ff24ac563b513fc1fd9f43ac',\n ],\n [\n '928955ee637a84463729fd30e7afd2ed5f96274e5ad7e5cb09eda9c06d903ac',\n 'c25621003d3f42a827b78a13093a95eeac3d26efa8a8d83fc5180e935bcd091f',\n ],\n [\n '85d0fef3ec6db109399064f3a0e3b2855645b4a907ad354527aae75163d82751',\n '1f03648413a38c0be29d496e582cf5663e8751e96877331582c237a24eb1f962',\n ],\n [\n 'ff2b0dce97eece97c1c9b6041798b85dfdfb6d8882da20308f5404824526087e',\n '493d13fef524ba188af4c4dc54d07936c7b7ed6fb90e2ceb2c951e01f0c29907',\n ],\n [\n '827fbbe4b1e880ea9ed2b2e6301b212b57f1ee148cd6dd28780e5e2cf856e241',\n 'c60f9c923c727b0b71bef2c67d1d12687ff7a63186903166d605b68baec293ec',\n ],\n [\n 'eaa649f21f51bdbae7be4ae34ce6e5217a58fdce7f47f9aa7f3b58fa2120e2b3',\n 'be3279ed5bbbb03ac69a80f89879aa5a01a6b965f13f7e59d47a5305ba5ad93d',\n ],\n [\n 'e4a42d43c5cf169d9391df6decf42ee541b6d8f0c9a137401e23632dda34d24f',\n '4d9f92e716d1c73526fc99ccfb8ad34ce886eedfa8d8e4f13a7f7131deba9414',\n ],\n [\n '1ec80fef360cbdd954160fadab352b6b92b53576a88fea4947173b9d4300bf19',\n 'aeefe93756b5340d2f3a4958a7abbf5e0146e77f6295a07b671cdc1cc107cefd',\n ],\n [\n '146a778c04670c2f91b00af4680dfa8bce3490717d58ba889ddb5928366642be',\n 'b318e0ec3354028add669827f9d4b2870aaa971d2f7e5ed1d0b297483d83efd0',\n ],\n [\n 'fa50c0f61d22e5f07e3acebb1aa07b128d0012209a28b9776d76a8793180eef9',\n '6b84c6922397eba9b72cd2872281a68a5e683293a57a213b38cd8d7d3f4f2811',\n ],\n [\n 'da1d61d0ca721a11b1a5bf6b7d88e8421a288ab5d5bba5220e53d32b5f067ec2',\n '8157f55a7c99306c79c0766161c91e2966a73899d279b48a655fba0f1ad836f1',\n ],\n [\n 'a8e282ff0c9706907215ff98e8fd416615311de0446f1e062a73b0610d064e13',\n '7f97355b8db81c09abfb7f3c5b2515888b679a3e50dd6bd6cef7c73111f4cc0c',\n ],\n [\n '174a53b9c9a285872d39e56e6913cab15d59b1fa512508c022f382de8319497c',\n 'ccc9dc37abfc9c1657b4155f2c47f9e6646b3a1d8cb9854383da13ac079afa73',\n ],\n [\n '959396981943785c3d3e57edf5018cdbe039e730e4918b3d884fdff09475b7ba',\n '2e7e552888c331dd8ba0386a4b9cd6849c653f64c8709385e9b8abf87524f2fd',\n ],\n [\n 'd2a63a50ae401e56d645a1153b109a8fcca0a43d561fba2dbb51340c9d82b151',\n 'e82d86fb6443fcb7565aee58b2948220a70f750af484ca52d4142174dcf89405',\n ],\n [\n '64587e2335471eb890ee7896d7cfdc866bacbdbd3839317b3436f9b45617e073',\n 'd99fcdd5bf6902e2ae96dd6447c299a185b90a39133aeab358299e5e9faf6589',\n ],\n [\n '8481bde0e4e4d885b3a546d3e549de042f0aa6cea250e7fd358d6c86dd45e458',\n '38ee7b8cba5404dd84a25bf39cecb2ca900a79c42b262e556d64b1b59779057e',\n ],\n [\n '13464a57a78102aa62b6979ae817f4637ffcfed3c4b1ce30bcd6303f6caf666b',\n '69be159004614580ef7e433453ccb0ca48f300a81d0942e13f495a907f6ecc27',\n ],\n [\n 'bc4a9df5b713fe2e9aef430bcc1dc97a0cd9ccede2f28588cada3a0d2d83f366',\n 'd3a81ca6e785c06383937adf4b798caa6e8a9fbfa547b16d758d666581f33c1',\n ],\n [\n '8c28a97bf8298bc0d23d8c749452a32e694b65e30a9472a3954ab30fe5324caa',\n '40a30463a3305193378fedf31f7cc0eb7ae784f0451cb9459e71dc73cbef9482',\n ],\n [\n '8ea9666139527a8c1dd94ce4f071fd23c8b350c5a4bb33748c4ba111faccae0',\n '620efabbc8ee2782e24e7c0cfb95c5d735b783be9cf0f8e955af34a30e62b945',\n ],\n [\n 'dd3625faef5ba06074669716bbd3788d89bdde815959968092f76cc4eb9a9787',\n '7a188fa3520e30d461da2501045731ca941461982883395937f68d00c644a573',\n ],\n [\n 'f710d79d9eb962297e4f6232b40e8f7feb2bc63814614d692c12de752408221e',\n 'ea98e67232d3b3295d3b535532115ccac8612c721851617526ae47a9c77bfc82',\n ],\n ],\n },\n naf: {\n wnd: 7,\n points: [\n [\n 'f9308a019258c31049344f85f89d5229b531c845836f99b08601f113bce036f9',\n '388f7b0f632de8140fe337e62a37f3566500a99934c2231b6cb9fd7584b8e672',\n ],\n [\n '2f8bde4d1a07209355b4a7250a5c5128e88b84bddc619ab7cba8d569b240efe4',\n 'd8ac222636e5e3d6d4dba9dda6c9c426f788271bab0d6840dca87d3aa6ac62d6',\n ],\n [\n '5cbdf0646e5db4eaa398f365f2ea7a0e3d419b7e0330e39ce92bddedcac4f9bc',\n '6aebca40ba255960a3178d6d861a54dba813d0b813fde7b5a5082628087264da',\n ],\n [\n 'acd484e2f0c7f65309ad178a9f559abde09796974c57e714c35f110dfc27ccbe',\n 'cc338921b0a7d9fd64380971763b61e9add888a4375f8e0f05cc262ac64f9c37',\n ],\n [\n '774ae7f858a9411e5ef4246b70c65aac5649980be5c17891bbec17895da008cb',\n 'd984a032eb6b5e190243dd56d7b7b365372db1e2dff9d6a8301d74c9c953c61b',\n ],\n [\n 'f28773c2d975288bc7d1d205c3748651b075fbc6610e58cddeeddf8f19405aa8',\n 'ab0902e8d880a89758212eb65cdaf473a1a06da521fa91f29b5cb52db03ed81',\n ],\n [\n 'd7924d4f7d43ea965a465ae3095ff41131e5946f3c85f79e44adbcf8e27e080e',\n '581e2872a86c72a683842ec228cc6defea40af2bd896d3a5c504dc9ff6a26b58',\n ],\n [\n 'defdea4cdb677750a420fee807eacf21eb9898ae79b9768766e4faa04a2d4a34',\n '4211ab0694635168e997b0ead2a93daeced1f4a04a95c0f6cfb199f69e56eb77',\n ],\n [\n '2b4ea0a797a443d293ef5cff444f4979f06acfebd7e86d277475656138385b6c',\n '85e89bc037945d93b343083b5a1c86131a01f60c50269763b570c854e5c09b7a',\n ],\n [\n '352bbf4a4cdd12564f93fa332ce333301d9ad40271f8107181340aef25be59d5',\n '321eb4075348f534d59c18259dda3e1f4a1b3b2e71b1039c67bd3d8bcf81998c',\n ],\n [\n '2fa2104d6b38d11b0230010559879124e42ab8dfeff5ff29dc9cdadd4ecacc3f',\n '2de1068295dd865b64569335bd5dd80181d70ecfc882648423ba76b532b7d67',\n ],\n [\n '9248279b09b4d68dab21a9b066edda83263c3d84e09572e269ca0cd7f5453714',\n '73016f7bf234aade5d1aa71bdea2b1ff3fc0de2a887912ffe54a32ce97cb3402',\n ],\n [\n 'daed4f2be3a8bf278e70132fb0beb7522f570e144bf615c07e996d443dee8729',\n 'a69dce4a7d6c98e8d4a1aca87ef8d7003f83c230f3afa726ab40e52290be1c55',\n ],\n [\n 'c44d12c7065d812e8acf28d7cbb19f9011ecd9e9fdf281b0e6a3b5e87d22e7db',\n '2119a460ce326cdc76c45926c982fdac0e106e861edf61c5a039063f0e0e6482',\n ],\n [\n '6a245bf6dc698504c89a20cfded60853152b695336c28063b61c65cbd269e6b4',\n 'e022cf42c2bd4a708b3f5126f16a24ad8b33ba48d0423b6efd5e6348100d8a82',\n ],\n [\n '1697ffa6fd9de627c077e3d2fe541084ce13300b0bec1146f95ae57f0d0bd6a5',\n 'b9c398f186806f5d27561506e4557433a2cf15009e498ae7adee9d63d01b2396',\n ],\n [\n '605bdb019981718b986d0f07e834cb0d9deb8360ffb7f61df982345ef27a7479',\n '2972d2de4f8d20681a78d93ec96fe23c26bfae84fb14db43b01e1e9056b8c49',\n ],\n [\n '62d14dab4150bf497402fdc45a215e10dcb01c354959b10cfe31c7e9d87ff33d',\n '80fc06bd8cc5b01098088a1950eed0db01aa132967ab472235f5642483b25eaf',\n ],\n [\n '80c60ad0040f27dade5b4b06c408e56b2c50e9f56b9b8b425e555c2f86308b6f',\n '1c38303f1cc5c30f26e66bad7fe72f70a65eed4cbe7024eb1aa01f56430bd57a',\n ],\n [\n '7a9375ad6167ad54aa74c6348cc54d344cc5dc9487d847049d5eabb0fa03c8fb',\n 'd0e3fa9eca8726909559e0d79269046bdc59ea10c70ce2b02d499ec224dc7f7',\n ],\n [\n 'd528ecd9b696b54c907a9ed045447a79bb408ec39b68df504bb51f459bc3ffc9',\n 'eecf41253136e5f99966f21881fd656ebc4345405c520dbc063465b521409933',\n ],\n [\n '49370a4b5f43412ea25f514e8ecdad05266115e4a7ecb1387231808f8b45963',\n '758f3f41afd6ed428b3081b0512fd62a54c3f3afbb5b6764b653052a12949c9a',\n ],\n [\n '77f230936ee88cbbd73df930d64702ef881d811e0e1498e2f1c13eb1fc345d74',\n '958ef42a7886b6400a08266e9ba1b37896c95330d97077cbbe8eb3c7671c60d6',\n ],\n [\n 'f2dac991cc4ce4b9ea44887e5c7c0bce58c80074ab9d4dbaeb28531b7739f530',\n 'e0dedc9b3b2f8dad4da1f32dec2531df9eb5fbeb0598e4fd1a117dba703a3c37',\n ],\n [\n '463b3d9f662621fb1b4be8fbbe2520125a216cdfc9dae3debcba4850c690d45b',\n '5ed430d78c296c3543114306dd8622d7c622e27c970a1de31cb377b01af7307e',\n ],\n [\n 'f16f804244e46e2a09232d4aff3b59976b98fac14328a2d1a32496b49998f247',\n 'cedabd9b82203f7e13d206fcdf4e33d92a6c53c26e5cce26d6579962c4e31df6',\n ],\n [\n 'caf754272dc84563b0352b7a14311af55d245315ace27c65369e15f7151d41d1',\n 'cb474660ef35f5f2a41b643fa5e460575f4fa9b7962232a5c32f908318a04476',\n ],\n [\n '2600ca4b282cb986f85d0f1709979d8b44a09c07cb86d7c124497bc86f082120',\n '4119b88753c15bd6a693b03fcddbb45d5ac6be74ab5f0ef44b0be9475a7e4b40',\n ],\n [\n '7635ca72d7e8432c338ec53cd12220bc01c48685e24f7dc8c602a7746998e435',\n '91b649609489d613d1d5e590f78e6d74ecfc061d57048bad9e76f302c5b9c61',\n ],\n [\n '754e3239f325570cdbbf4a87deee8a66b7f2b33479d468fbc1a50743bf56cc18',\n '673fb86e5bda30fb3cd0ed304ea49a023ee33d0197a695d0c5d98093c536683',\n ],\n [\n 'e3e6bd1071a1e96aff57859c82d570f0330800661d1c952f9fe2694691d9b9e8',\n '59c9e0bba394e76f40c0aa58379a3cb6a5a2283993e90c4167002af4920e37f5',\n ],\n [\n '186b483d056a033826ae73d88f732985c4ccb1f32ba35f4b4cc47fdcf04aa6eb',\n '3b952d32c67cf77e2e17446e204180ab21fb8090895138b4a4a797f86e80888b',\n ],\n [\n 'df9d70a6b9876ce544c98561f4be4f725442e6d2b737d9c91a8321724ce0963f',\n '55eb2dafd84d6ccd5f862b785dc39d4ab157222720ef9da217b8c45cf2ba2417',\n ],\n [\n '5edd5cc23c51e87a497ca815d5dce0f8ab52554f849ed8995de64c5f34ce7143',\n 'efae9c8dbc14130661e8cec030c89ad0c13c66c0d17a2905cdc706ab7399a868',\n ],\n [\n '290798c2b6476830da12fe02287e9e777aa3fba1c355b17a722d362f84614fba',\n 'e38da76dcd440621988d00bcf79af25d5b29c094db2a23146d003afd41943e7a',\n ],\n [\n 'af3c423a95d9f5b3054754efa150ac39cd29552fe360257362dfdecef4053b45',\n 'f98a3fd831eb2b749a93b0e6f35cfb40c8cd5aa667a15581bc2feded498fd9c6',\n ],\n [\n '766dbb24d134e745cccaa28c99bf274906bb66b26dcf98df8d2fed50d884249a',\n '744b1152eacbe5e38dcc887980da38b897584a65fa06cedd2c924f97cbac5996',\n ],\n [\n '59dbf46f8c94759ba21277c33784f41645f7b44f6c596a58ce92e666191abe3e',\n 'c534ad44175fbc300f4ea6ce648309a042ce739a7919798cd85e216c4a307f6e',\n ],\n [\n 'f13ada95103c4537305e691e74e9a4a8dd647e711a95e73cb62dc6018cfd87b8',\n 'e13817b44ee14de663bf4bc808341f326949e21a6a75c2570778419bdaf5733d',\n ],\n [\n '7754b4fa0e8aced06d4167a2c59cca4cda1869c06ebadfb6488550015a88522c',\n '30e93e864e669d82224b967c3020b8fa8d1e4e350b6cbcc537a48b57841163a2',\n ],\n [\n '948dcadf5990e048aa3874d46abef9d701858f95de8041d2a6828c99e2262519',\n 'e491a42537f6e597d5d28a3224b1bc25df9154efbd2ef1d2cbba2cae5347d57e',\n ],\n [\n '7962414450c76c1689c7b48f8202ec37fb224cf5ac0bfa1570328a8a3d7c77ab',\n '100b610ec4ffb4760d5c1fc133ef6f6b12507a051f04ac5760afa5b29db83437',\n ],\n [\n '3514087834964b54b15b160644d915485a16977225b8847bb0dd085137ec47ca',\n 'ef0afbb2056205448e1652c48e8127fc6039e77c15c2378b7e7d15a0de293311',\n ],\n [\n 'd3cc30ad6b483e4bc79ce2c9dd8bc54993e947eb8df787b442943d3f7b527eaf',\n '8b378a22d827278d89c5e9be8f9508ae3c2ad46290358630afb34db04eede0a4',\n ],\n [\n '1624d84780732860ce1c78fcbfefe08b2b29823db913f6493975ba0ff4847610',\n '68651cf9b6da903e0914448c6cd9d4ca896878f5282be4c8cc06e2a404078575',\n ],\n [\n '733ce80da955a8a26902c95633e62a985192474b5af207da6df7b4fd5fc61cd4',\n 'f5435a2bd2badf7d485a4d8b8db9fcce3e1ef8e0201e4578c54673bc1dc5ea1d',\n ],\n [\n '15d9441254945064cf1a1c33bbd3b49f8966c5092171e699ef258dfab81c045c',\n 'd56eb30b69463e7234f5137b73b84177434800bacebfc685fc37bbe9efe4070d',\n ],\n [\n 'a1d0fcf2ec9de675b612136e5ce70d271c21417c9d2b8aaaac138599d0717940',\n 'edd77f50bcb5a3cab2e90737309667f2641462a54070f3d519212d39c197a629',\n ],\n [\n 'e22fbe15c0af8ccc5780c0735f84dbe9a790badee8245c06c7ca37331cb36980',\n 'a855babad5cd60c88b430a69f53a1a7a38289154964799be43d06d77d31da06',\n ],\n [\n '311091dd9860e8e20ee13473c1155f5f69635e394704eaa74009452246cfa9b3',\n '66db656f87d1f04fffd1f04788c06830871ec5a64feee685bd80f0b1286d8374',\n ],\n [\n '34c1fd04d301be89b31c0442d3e6ac24883928b45a9340781867d4232ec2dbdf',\n '9414685e97b1b5954bd46f730174136d57f1ceeb487443dc5321857ba73abee',\n ],\n [\n 'f219ea5d6b54701c1c14de5b557eb42a8d13f3abbcd08affcc2a5e6b049b8d63',\n '4cb95957e83d40b0f73af4544cccf6b1f4b08d3c07b27fb8d8c2962a400766d1',\n ],\n [\n 'd7b8740f74a8fbaab1f683db8f45de26543a5490bca627087236912469a0b448',\n 'fa77968128d9c92ee1010f337ad4717eff15db5ed3c049b3411e0315eaa4593b',\n ],\n [\n '32d31c222f8f6f0ef86f7c98d3a3335ead5bcd32abdd94289fe4d3091aa824bf',\n '5f3032f5892156e39ccd3d7915b9e1da2e6dac9e6f26e961118d14b8462e1661',\n ],\n [\n '7461f371914ab32671045a155d9831ea8793d77cd59592c4340f86cbc18347b5',\n '8ec0ba238b96bec0cbdddcae0aa442542eee1ff50c986ea6b39847b3cc092ff6',\n ],\n [\n 'ee079adb1df1860074356a25aa38206a6d716b2c3e67453d287698bad7b2b2d6',\n '8dc2412aafe3be5c4c5f37e0ecc5f9f6a446989af04c4e25ebaac479ec1c8c1e',\n ],\n [\n '16ec93e447ec83f0467b18302ee620f7e65de331874c9dc72bfd8616ba9da6b5',\n '5e4631150e62fb40d0e8c2a7ca5804a39d58186a50e497139626778e25b0674d',\n ],\n [\n 'eaa5f980c245f6f038978290afa70b6bd8855897f98b6aa485b96065d537bd99',\n 'f65f5d3e292c2e0819a528391c994624d784869d7e6ea67fb18041024edc07dc',\n ],\n [\n '78c9407544ac132692ee1910a02439958ae04877151342ea96c4b6b35a49f51',\n 'f3e0319169eb9b85d5404795539a5e68fa1fbd583c064d2462b675f194a3ddb4',\n ],\n [\n '494f4be219a1a77016dcd838431aea0001cdc8ae7a6fc688726578d9702857a5',\n '42242a969283a5f339ba7f075e36ba2af925ce30d767ed6e55f4b031880d562c',\n ],\n [\n 'a598a8030da6d86c6bc7f2f5144ea549d28211ea58faa70ebf4c1e665c1fe9b5',\n '204b5d6f84822c307e4b4a7140737aec23fc63b65b35f86a10026dbd2d864e6b',\n ],\n [\n 'c41916365abb2b5d09192f5f2dbeafec208f020f12570a184dbadc3e58595997',\n '4f14351d0087efa49d245b328984989d5caf9450f34bfc0ed16e96b58fa9913',\n ],\n [\n '841d6063a586fa475a724604da03bc5b92a2e0d2e0a36acfe4c73a5514742881',\n '73867f59c0659e81904f9a1c7543698e62562d6744c169ce7a36de01a8d6154',\n ],\n [\n '5e95bb399a6971d376026947f89bde2f282b33810928be4ded112ac4d70e20d5',\n '39f23f366809085beebfc71181313775a99c9aed7d8ba38b161384c746012865',\n ],\n [\n '36e4641a53948fd476c39f8a99fd974e5ec07564b5315d8bf99471bca0ef2f66',\n 'd2424b1b1abe4eb8164227b085c9aa9456ea13493fd563e06fd51cf5694c78fc',\n ],\n [\n '336581ea7bfbbb290c191a2f507a41cf5643842170e914faeab27c2c579f726',\n 'ead12168595fe1be99252129b6e56b3391f7ab1410cd1e0ef3dcdcabd2fda224',\n ],\n [\n '8ab89816dadfd6b6a1f2634fcf00ec8403781025ed6890c4849742706bd43ede',\n '6fdcef09f2f6d0a044e654aef624136f503d459c3e89845858a47a9129cdd24e',\n ],\n [\n '1e33f1a746c9c5778133344d9299fcaa20b0938e8acff2544bb40284b8c5fb94',\n '60660257dd11b3aa9c8ed618d24edff2306d320f1d03010e33a7d2057f3b3b6',\n ],\n [\n '85b7c1dcb3cec1b7ee7f30ded79dd20a0ed1f4cc18cbcfcfa410361fd8f08f31',\n '3d98a9cdd026dd43f39048f25a8847f4fcafad1895d7a633c6fed3c35e999511',\n ],\n [\n '29df9fbd8d9e46509275f4b125d6d45d7fbe9a3b878a7af872a2800661ac5f51',\n 'b4c4fe99c775a606e2d8862179139ffda61dc861c019e55cd2876eb2a27d84b',\n ],\n [\n 'a0b1cae06b0a847a3fea6e671aaf8adfdfe58ca2f768105c8082b2e449fce252',\n 'ae434102edde0958ec4b19d917a6a28e6b72da1834aff0e650f049503a296cf2',\n ],\n [\n '4e8ceafb9b3e9a136dc7ff67e840295b499dfb3b2133e4ba113f2e4c0e121e5',\n 'cf2174118c8b6d7a4b48f6d534ce5c79422c086a63460502b827ce62a326683c',\n ],\n [\n 'd24a44e047e19b6f5afb81c7ca2f69080a5076689a010919f42725c2b789a33b',\n '6fb8d5591b466f8fc63db50f1c0f1c69013f996887b8244d2cdec417afea8fa3',\n ],\n [\n 'ea01606a7a6c9cdd249fdfcfacb99584001edd28abbab77b5104e98e8e3b35d4',\n '322af4908c7312b0cfbfe369f7a7b3cdb7d4494bc2823700cfd652188a3ea98d',\n ],\n [\n 'af8addbf2b661c8a6c6328655eb96651252007d8c5ea31be4ad196de8ce2131f',\n '6749e67c029b85f52a034eafd096836b2520818680e26ac8f3dfbcdb71749700',\n ],\n [\n 'e3ae1974566ca06cc516d47e0fb165a674a3dabcfca15e722f0e3450f45889',\n '2aeabe7e4531510116217f07bf4d07300de97e4874f81f533420a72eeb0bd6a4',\n ],\n [\n '591ee355313d99721cf6993ffed1e3e301993ff3ed258802075ea8ced397e246',\n 'b0ea558a113c30bea60fc4775460c7901ff0b053d25ca2bdeee98f1a4be5d196',\n ],\n [\n '11396d55fda54c49f19aa97318d8da61fa8584e47b084945077cf03255b52984',\n '998c74a8cd45ac01289d5833a7beb4744ff536b01b257be4c5767bea93ea57a4',\n ],\n [\n '3c5d2a1ba39c5a1790000738c9e0c40b8dcdfd5468754b6405540157e017aa7a',\n 'b2284279995a34e2f9d4de7396fc18b80f9b8b9fdd270f6661f79ca4c81bd257',\n ],\n [\n 'cc8704b8a60a0defa3a99a7299f2e9c3fbc395afb04ac078425ef8a1793cc030',\n 'bdd46039feed17881d1e0862db347f8cf395b74fc4bcdc4e940b74e3ac1f1b13',\n ],\n [\n 'c533e4f7ea8555aacd9777ac5cad29b97dd4defccc53ee7ea204119b2889b197',\n '6f0a256bc5efdf429a2fb6242f1a43a2d9b925bb4a4b3a26bb8e0f45eb596096',\n ],\n [\n 'c14f8f2ccb27d6f109f6d08d03cc96a69ba8c34eec07bbcf566d48e33da6593',\n 'c359d6923bb398f7fd4473e16fe1c28475b740dd098075e6c0e8649113dc3a38',\n ],\n [\n 'a6cbc3046bc6a450bac24789fa17115a4c9739ed75f8f21ce441f72e0b90e6ef',\n '21ae7f4680e889bb130619e2c0f95a360ceb573c70603139862afd617fa9b9f',\n ],\n [\n '347d6d9a02c48927ebfb86c1359b1caf130a3c0267d11ce6344b39f99d43cc38',\n '60ea7f61a353524d1c987f6ecec92f086d565ab687870cb12689ff1e31c74448',\n ],\n [\n 'da6545d2181db8d983f7dcb375ef5866d47c67b1bf31c8cf855ef7437b72656a',\n '49b96715ab6878a79e78f07ce5680c5d6673051b4935bd897fea824b77dc208a',\n ],\n [\n 'c40747cc9d012cb1a13b8148309c6de7ec25d6945d657146b9d5994b8feb1111',\n '5ca560753be2a12fc6de6caf2cb489565db936156b9514e1bb5e83037e0fa2d4',\n ],\n [\n '4e42c8ec82c99798ccf3a610be870e78338c7f713348bd34c8203ef4037f3502',\n '7571d74ee5e0fb92a7a8b33a07783341a5492144cc54bcc40a94473693606437',\n ],\n [\n '3775ab7089bc6af823aba2e1af70b236d251cadb0c86743287522a1b3b0dedea',\n 'be52d107bcfa09d8bcb9736a828cfa7fac8db17bf7a76a2c42ad961409018cf7',\n ],\n [\n 'cee31cbf7e34ec379d94fb814d3d775ad954595d1314ba8846959e3e82f74e26',\n '8fd64a14c06b589c26b947ae2bcf6bfa0149ef0be14ed4d80f448a01c43b1c6d',\n ],\n [\n 'b4f9eaea09b6917619f6ea6a4eb5464efddb58fd45b1ebefcdc1a01d08b47986',\n '39e5c9925b5a54b07433a4f18c61726f8bb131c012ca542eb24a8ac07200682a',\n ],\n [\n 'd4263dfc3d2df923a0179a48966d30ce84e2515afc3dccc1b77907792ebcc60e',\n '62dfaf07a0f78feb30e30d6295853ce189e127760ad6cf7fae164e122a208d54',\n ],\n [\n '48457524820fa65a4f8d35eb6930857c0032acc0a4a2de422233eeda897612c4',\n '25a748ab367979d98733c38a1fa1c2e7dc6cc07db2d60a9ae7a76aaa49bd0f77',\n ],\n [\n 'dfeeef1881101f2cb11644f3a2afdfc2045e19919152923f367a1767c11cceda',\n 'ecfb7056cf1de042f9420bab396793c0c390bde74b4bbdff16a83ae09a9a7517',\n ],\n [\n '6d7ef6b17543f8373c573f44e1f389835d89bcbc6062ced36c82df83b8fae859',\n 'cd450ec335438986dfefa10c57fea9bcc521a0959b2d80bbf74b190dca712d10',\n ],\n [\n 'e75605d59102a5a2684500d3b991f2e3f3c88b93225547035af25af66e04541f',\n 'f5c54754a8f71ee540b9b48728473e314f729ac5308b06938360990e2bfad125',\n ],\n [\n 'eb98660f4c4dfaa06a2be453d5020bc99a0c2e60abe388457dd43fefb1ed620c',\n '6cb9a8876d9cb8520609af3add26cd20a0a7cd8a9411131ce85f44100099223e',\n ],\n [\n '13e87b027d8514d35939f2e6892b19922154596941888336dc3563e3b8dba942',\n 'fef5a3c68059a6dec5d624114bf1e91aac2b9da568d6abeb2570d55646b8adf1',\n ],\n [\n 'ee163026e9fd6fe017c38f06a5be6fc125424b371ce2708e7bf4491691e5764a',\n '1acb250f255dd61c43d94ccc670d0f58f49ae3fa15b96623e5430da0ad6c62b2',\n ],\n [\n 'b268f5ef9ad51e4d78de3a750c2dc89b1e626d43505867999932e5db33af3d80',\n '5f310d4b3c99b9ebb19f77d41c1dee018cf0d34fd4191614003e945a1216e423',\n ],\n [\n 'ff07f3118a9df035e9fad85eb6c7bfe42b02f01ca99ceea3bf7ffdba93c4750d',\n '438136d603e858a3a5c440c38eccbaddc1d2942114e2eddd4740d098ced1f0d8',\n ],\n [\n '8d8b9855c7c052a34146fd20ffb658bea4b9f69e0d825ebec16e8c3ce2b526a1',\n 'cdb559eedc2d79f926baf44fb84ea4d44bcf50fee51d7ceb30e2e7f463036758',\n ],\n [\n '52db0b5384dfbf05bfa9d472d7ae26dfe4b851ceca91b1eba54263180da32b63',\n 'c3b997d050ee5d423ebaf66a6db9f57b3180c902875679de924b69d84a7b375',\n ],\n [\n 'e62f9490d3d51da6395efd24e80919cc7d0f29c3f3fa48c6fff543becbd43352',\n '6d89ad7ba4876b0b22c2ca280c682862f342c8591f1daf5170e07bfd9ccafa7d',\n ],\n [\n '7f30ea2476b399b4957509c88f77d0191afa2ff5cb7b14fd6d8e7d65aaab1193',\n 'ca5ef7d4b231c94c3b15389a5f6311e9daff7bb67b103e9880ef4bff637acaec',\n ],\n [\n '5098ff1e1d9f14fb46a210fada6c903fef0fb7b4a1dd1d9ac60a0361800b7a00',\n '9731141d81fc8f8084d37c6e7542006b3ee1b40d60dfe5362a5b132fd17ddc0',\n ],\n [\n '32b78c7de9ee512a72895be6b9cbefa6e2f3c4ccce445c96b9f2c81e2778ad58',\n 'ee1849f513df71e32efc3896ee28260c73bb80547ae2275ba497237794c8753c',\n ],\n [\n 'e2cb74fddc8e9fbcd076eef2a7c72b0ce37d50f08269dfc074b581550547a4f7',\n 'd3aa2ed71c9dd2247a62df062736eb0baddea9e36122d2be8641abcb005cc4a4',\n ],\n [\n '8438447566d4d7bedadc299496ab357426009a35f235cb141be0d99cd10ae3a8',\n 'c4e1020916980a4da5d01ac5e6ad330734ef0d7906631c4f2390426b2edd791f',\n ],\n [\n '4162d488b89402039b584c6fc6c308870587d9c46f660b878ab65c82c711d67e',\n '67163e903236289f776f22c25fb8a3afc1732f2b84b4e95dbda47ae5a0852649',\n ],\n [\n '3fad3fa84caf0f34f0f89bfd2dcf54fc175d767aec3e50684f3ba4a4bf5f683d',\n 'cd1bc7cb6cc407bb2f0ca647c718a730cf71872e7d0d2a53fa20efcdfe61826',\n ],\n [\n '674f2600a3007a00568c1a7ce05d0816c1fb84bf1370798f1c69532faeb1a86b',\n '299d21f9413f33b3edf43b257004580b70db57da0b182259e09eecc69e0d38a5',\n ],\n [\n 'd32f4da54ade74abb81b815ad1fb3b263d82d6c692714bcff87d29bd5ee9f08f',\n 'f9429e738b8e53b968e99016c059707782e14f4535359d582fc416910b3eea87',\n ],\n [\n '30e4e670435385556e593657135845d36fbb6931f72b08cb1ed954f1e3ce3ff6',\n '462f9bce619898638499350113bbc9b10a878d35da70740dc695a559eb88db7b',\n ],\n [\n 'be2062003c51cc3004682904330e4dee7f3dcd10b01e580bf1971b04d4cad297',\n '62188bc49d61e5428573d48a74e1c655b1c61090905682a0d5558ed72dccb9bc',\n ],\n [\n '93144423ace3451ed29e0fb9ac2af211cb6e84a601df5993c419859fff5df04a',\n '7c10dfb164c3425f5c71a3f9d7992038f1065224f72bb9d1d902a6d13037b47c',\n ],\n [\n 'b015f8044f5fcbdcf21ca26d6c34fb8197829205c7b7d2a7cb66418c157b112c',\n 'ab8c1e086d04e813744a655b2df8d5f83b3cdc6faa3088c1d3aea1454e3a1d5f',\n ],\n [\n 'd5e9e1da649d97d89e4868117a465a3a4f8a18de57a140d36b3f2af341a21b52',\n '4cb04437f391ed73111a13cc1d4dd0db1693465c2240480d8955e8592f27447a',\n ],\n [\n 'd3ae41047dd7ca065dbf8ed77b992439983005cd72e16d6f996a5316d36966bb',\n 'bd1aeb21ad22ebb22a10f0303417c6d964f8cdd7df0aca614b10dc14d125ac46',\n ],\n [\n '463e2763d885f958fc66cdd22800f0a487197d0a82e377b49f80af87c897b065',\n 'bfefacdb0e5d0fd7df3a311a94de062b26b80c61fbc97508b79992671ef7ca7f',\n ],\n [\n '7985fdfd127c0567c6f53ec1bb63ec3158e597c40bfe747c83cddfc910641917',\n '603c12daf3d9862ef2b25fe1de289aed24ed291e0ec6708703a5bd567f32ed03',\n ],\n [\n '74a1ad6b5f76e39db2dd249410eac7f99e74c59cb83d2d0ed5ff1543da7703e9',\n 'cc6157ef18c9c63cd6193d83631bbea0093e0968942e8c33d5737fd790e0db08',\n ],\n [\n '30682a50703375f602d416664ba19b7fc9bab42c72747463a71d0896b22f6da3',\n '553e04f6b018b4fa6c8f39e7f311d3176290d0e0f19ca73f17714d9977a22ff8',\n ],\n [\n '9e2158f0d7c0d5f26c3791efefa79597654e7a2b2464f52b1ee6c1347769ef57',\n '712fcdd1b9053f09003a3481fa7762e9ffd7c8ef35a38509e2fbf2629008373',\n ],\n [\n '176e26989a43c9cfeba4029c202538c28172e566e3c4fce7322857f3be327d66',\n 'ed8cc9d04b29eb877d270b4878dc43c19aefd31f4eee09ee7b47834c1fa4b1c3',\n ],\n [\n '75d46efea3771e6e68abb89a13ad747ecf1892393dfc4f1b7004788c50374da8',\n '9852390a99507679fd0b86fd2b39a868d7efc22151346e1a3ca4726586a6bed8',\n ],\n [\n '809a20c67d64900ffb698c4c825f6d5f2310fb0451c869345b7319f645605721',\n '9e994980d9917e22b76b061927fa04143d096ccc54963e6a5ebfa5f3f8e286c1',\n ],\n [\n '1b38903a43f7f114ed4500b4eac7083fdefece1cf29c63528d563446f972c180',\n '4036edc931a60ae889353f77fd53de4a2708b26b6f5da72ad3394119daf408f9',\n ],\n ],\n },\n};\n", "'use strict';\n\nvar curves = exports;\n\nvar hash = require('hash.js');\nvar curve = require('./curve');\nvar utils = require('./utils');\n\nvar assert = utils.assert;\n\nfunction PresetCurve(options) {\n if (options.type === 'short')\n this.curve = new curve.short(options);\n else if (options.type === 'edwards')\n this.curve = new curve.edwards(options);\n else\n this.curve = new curve.mont(options);\n this.g = this.curve.g;\n this.n = this.curve.n;\n this.hash = options.hash;\n\n assert(this.g.validate(), 'Invalid curve');\n assert(this.g.mul(this.n).isInfinity(), 'Invalid curve, G*N != O');\n}\ncurves.PresetCurve = PresetCurve;\n\nfunction defineCurve(name, options) {\n Object.defineProperty(curves, name, {\n configurable: true,\n enumerable: true,\n get: function() {\n var curve = new PresetCurve(options);\n Object.defineProperty(curves, name, {\n configurable: true,\n enumerable: true,\n value: curve,\n });\n return curve;\n },\n });\n}\n\ndefineCurve('p192', {\n type: 'short',\n prime: 'p192',\n p: 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff',\n a: 'ffffffff ffffffff ffffffff fffffffe ffffffff fffffffc',\n b: '64210519 e59c80e7 0fa7e9ab 72243049 feb8deec c146b9b1',\n n: 'ffffffff ffffffff ffffffff 99def836 146bc9b1 b4d22831',\n hash: hash.sha256,\n gRed: false,\n g: [\n '188da80e b03090f6 7cbf20eb 43a18800 f4ff0afd 82ff1012',\n '07192b95 ffc8da78 631011ed 6b24cdd5 73f977a1 1e794811',\n ],\n});\n\ndefineCurve('p224', {\n type: 'short',\n prime: 'p224',\n p: 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001',\n a: 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff fffffffe',\n b: 'b4050a85 0c04b3ab f5413256 5044b0b7 d7bfd8ba 270b3943 2355ffb4',\n n: 'ffffffff ffffffff ffffffff ffff16a2 e0b8f03e 13dd2945 5c5c2a3d',\n hash: hash.sha256,\n gRed: false,\n g: [\n 'b70e0cbd 6bb4bf7f 321390b9 4a03c1d3 56c21122 343280d6 115c1d21',\n 'bd376388 b5f723fb 4c22dfe6 cd4375a0 5a074764 44d58199 85007e34',\n ],\n});\n\ndefineCurve('p256', {\n type: 'short',\n prime: null,\n p: 'ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff ffffffff',\n a: 'ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff fffffffc',\n b: '5ac635d8 aa3a93e7 b3ebbd55 769886bc 651d06b0 cc53b0f6 3bce3c3e 27d2604b',\n n: 'ffffffff 00000000 ffffffff ffffffff bce6faad a7179e84 f3b9cac2 fc632551',\n hash: hash.sha256,\n gRed: false,\n g: [\n '6b17d1f2 e12c4247 f8bce6e5 63a440f2 77037d81 2deb33a0 f4a13945 d898c296',\n '4fe342e2 fe1a7f9b 8ee7eb4a 7c0f9e16 2bce3357 6b315ece cbb64068 37bf51f5',\n ],\n});\n\ndefineCurve('p384', {\n type: 'short',\n prime: null,\n p: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'fffffffe ffffffff 00000000 00000000 ffffffff',\n a: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'fffffffe ffffffff 00000000 00000000 fffffffc',\n b: 'b3312fa7 e23ee7e4 988e056b e3f82d19 181d9c6e fe814112 0314088f ' +\n '5013875a c656398d 8a2ed19d 2a85c8ed d3ec2aef',\n n: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff c7634d81 ' +\n 'f4372ddf 581a0db2 48b0a77a ecec196a ccc52973',\n hash: hash.sha384,\n gRed: false,\n g: [\n 'aa87ca22 be8b0537 8eb1c71e f320ad74 6e1d3b62 8ba79b98 59f741e0 82542a38 ' +\n '5502f25d bf55296c 3a545e38 72760ab7',\n '3617de4a 96262c6f 5d9e98bf 9292dc29 f8f41dbd 289a147c e9da3113 b5f0b8c0 ' +\n '0a60b1ce 1d7e819d 7a431d7c 90ea0e5f',\n ],\n});\n\ndefineCurve('p521', {\n type: 'short',\n prime: null,\n p: '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff ffffffff',\n a: '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff fffffffc',\n b: '00000051 953eb961 8e1c9a1f 929a21a0 b68540ee a2da725b ' +\n '99b315f3 b8b48991 8ef109e1 56193951 ec7e937b 1652c0bd ' +\n '3bb1bf07 3573df88 3d2c34f1 ef451fd4 6b503f00',\n n: '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff fffffffa 51868783 bf2f966b 7fcc0148 ' +\n 'f709a5d0 3bb5c9b8 899c47ae bb6fb71e 91386409',\n hash: hash.sha512,\n gRed: false,\n g: [\n '000000c6 858e06b7 0404e9cd 9e3ecb66 2395b442 9c648139 ' +\n '053fb521 f828af60 6b4d3dba a14b5e77 efe75928 fe1dc127 ' +\n 'a2ffa8de 3348b3c1 856a429b f97e7e31 c2e5bd66',\n '00000118 39296a78 9a3bc004 5c8a5fb4 2c7d1bd9 98f54449 ' +\n '579b4468 17afbd17 273e662c 97ee7299 5ef42640 c550b901 ' +\n '3fad0761 353c7086 a272c240 88be9476 9fd16650',\n ],\n});\n\ndefineCurve('curve25519', {\n type: 'mont',\n prime: 'p25519',\n p: '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed',\n a: '76d06',\n b: '1',\n n: '1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed',\n hash: hash.sha256,\n gRed: false,\n g: [\n '9',\n ],\n});\n\ndefineCurve('ed25519', {\n type: 'edwards',\n prime: 'p25519',\n p: '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed',\n a: '-1',\n c: '1',\n // -121665 * (121666^(-1)) (mod P)\n d: '52036cee2b6ffe73 8cc740797779e898 00700a4d4141d8ab 75eb4dca135978a3',\n n: '1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed',\n hash: hash.sha256,\n gRed: false,\n g: [\n '216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a',\n\n // 4/5\n '6666666666666666666666666666666666666666666666666666666666666658',\n ],\n});\n\nvar pre;\ntry {\n pre = require('./precomputed/secp256k1');\n} catch (e) {\n pre = undefined;\n}\n\ndefineCurve('secp256k1', {\n type: 'short',\n prime: 'k256',\n p: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f',\n a: '0',\n b: '7',\n n: 'ffffffff ffffffff ffffffff fffffffe baaedce6 af48a03b bfd25e8c d0364141',\n h: '1',\n hash: hash.sha256,\n\n // Precomputed endomorphism\n beta: '7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee',\n lambda: '5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72',\n basis: [\n {\n a: '3086d221a7d46bcde86c90e49284eb15',\n b: '-e4437ed6010e88286f547fa90abfe4c3',\n },\n {\n a: '114ca50f7a8e2f3f657c1108d9d44cfd8',\n b: '3086d221a7d46bcde86c90e49284eb15',\n },\n ],\n\n gRed: false,\n g: [\n '79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798',\n '483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8',\n pre,\n ],\n});\n", "'use strict';\n\nvar hash = require('hash.js');\nvar utils = require('minimalistic-crypto-utils');\nvar assert = require('minimalistic-assert');\n\nfunction HmacDRBG(options) {\n if (!(this instanceof HmacDRBG))\n return new HmacDRBG(options);\n this.hash = options.hash;\n this.predResist = !!options.predResist;\n\n this.outLen = this.hash.outSize;\n this.minEntropy = options.minEntropy || this.hash.hmacStrength;\n\n this._reseed = null;\n this.reseedInterval = null;\n this.K = null;\n this.V = null;\n\n var entropy = utils.toArray(options.entropy, options.entropyEnc || 'hex');\n var nonce = utils.toArray(options.nonce, options.nonceEnc || 'hex');\n var pers = utils.toArray(options.pers, options.persEnc || 'hex');\n assert(entropy.length >= (this.minEntropy / 8),\n 'Not enough entropy. Minimum is: ' + this.minEntropy + ' bits');\n this._init(entropy, nonce, pers);\n}\nmodule.exports = HmacDRBG;\n\nHmacDRBG.prototype._init = function init(entropy, nonce, pers) {\n var seed = entropy.concat(nonce).concat(pers);\n\n this.K = new Array(this.outLen / 8);\n this.V = new Array(this.outLen / 8);\n for (var i = 0; i < this.V.length; i++) {\n this.K[i] = 0x00;\n this.V[i] = 0x01;\n }\n\n this._update(seed);\n this._reseed = 1;\n this.reseedInterval = 0x1000000000000; // 2^48\n};\n\nHmacDRBG.prototype._hmac = function hmac() {\n return new hash.hmac(this.hash, this.K);\n};\n\nHmacDRBG.prototype._update = function update(seed) {\n var kmac = this._hmac()\n .update(this.V)\n .update([ 0x00 ]);\n if (seed)\n kmac = kmac.update(seed);\n this.K = kmac.digest();\n this.V = this._hmac().update(this.V).digest();\n if (!seed)\n return;\n\n this.K = this._hmac()\n .update(this.V)\n .update([ 0x01 ])\n .update(seed)\n .digest();\n this.V = this._hmac().update(this.V).digest();\n};\n\nHmacDRBG.prototype.reseed = function reseed(entropy, entropyEnc, add, addEnc) {\n // Optional entropy enc\n if (typeof entropyEnc !== 'string') {\n addEnc = add;\n add = entropyEnc;\n entropyEnc = null;\n }\n\n entropy = utils.toArray(entropy, entropyEnc);\n add = utils.toArray(add, addEnc);\n\n assert(entropy.length >= (this.minEntropy / 8),\n 'Not enough entropy. Minimum is: ' + this.minEntropy + ' bits');\n\n this._update(entropy.concat(add || []));\n this._reseed = 1;\n};\n\nHmacDRBG.prototype.generate = function generate(len, enc, add, addEnc) {\n if (this._reseed > this.reseedInterval)\n throw new Error('Reseed is required');\n\n // Optional encoding\n if (typeof enc !== 'string') {\n addEnc = add;\n add = enc;\n enc = null;\n }\n\n // Optional additional data\n if (add) {\n add = utils.toArray(add, addEnc || 'hex');\n this._update(add);\n }\n\n var temp = [];\n while (temp.length < len) {\n this.V = this._hmac().update(this.V).digest();\n temp = temp.concat(this.V);\n }\n\n var res = temp.slice(0, len);\n this._update(add);\n this._reseed++;\n return utils.encode(res, enc);\n};\n", "'use strict';\n\nvar BN = require('bn.js');\nvar utils = require('../utils');\nvar assert = utils.assert;\n\nfunction KeyPair(ec, options) {\n this.ec = ec;\n this.priv = null;\n this.pub = null;\n\n // KeyPair(ec, { priv: ..., pub: ... })\n if (options.priv)\n this._importPrivate(options.priv, options.privEnc);\n if (options.pub)\n this._importPublic(options.pub, options.pubEnc);\n}\nmodule.exports = KeyPair;\n\nKeyPair.fromPublic = function fromPublic(ec, pub, enc) {\n if (pub instanceof KeyPair)\n return pub;\n\n return new KeyPair(ec, {\n pub: pub,\n pubEnc: enc,\n });\n};\n\nKeyPair.fromPrivate = function fromPrivate(ec, priv, enc) {\n if (priv instanceof KeyPair)\n return priv;\n\n return new KeyPair(ec, {\n priv: priv,\n privEnc: enc,\n });\n};\n\nKeyPair.prototype.validate = function validate() {\n var pub = this.getPublic();\n\n if (pub.isInfinity())\n return { result: false, reason: 'Invalid public key' };\n if (!pub.validate())\n return { result: false, reason: 'Public key is not a point' };\n if (!pub.mul(this.ec.curve.n).isInfinity())\n return { result: false, reason: 'Public key * N != O' };\n\n return { result: true, reason: null };\n};\n\nKeyPair.prototype.getPublic = function getPublic(compact, enc) {\n // compact is optional argument\n if (typeof compact === 'string') {\n enc = compact;\n compact = null;\n }\n\n if (!this.pub)\n this.pub = this.ec.g.mul(this.priv);\n\n if (!enc)\n return this.pub;\n\n return this.pub.encode(enc, compact);\n};\n\nKeyPair.prototype.getPrivate = function getPrivate(enc) {\n if (enc === 'hex')\n return this.priv.toString(16, 2);\n else\n return this.priv;\n};\n\nKeyPair.prototype._importPrivate = function _importPrivate(key, enc) {\n this.priv = new BN(key, enc || 16);\n\n // Ensure that the priv won't be bigger than n, otherwise we may fail\n // in fixed multiplication method\n this.priv = this.priv.umod(this.ec.curve.n);\n};\n\nKeyPair.prototype._importPublic = function _importPublic(key, enc) {\n if (key.x || key.y) {\n // Montgomery points only have an `x` coordinate.\n // Weierstrass/Edwards points on the other hand have both `x` and\n // `y` coordinates.\n if (this.ec.curve.type === 'mont') {\n assert(key.x, 'Need x coordinate');\n } else if (this.ec.curve.type === 'short' ||\n this.ec.curve.type === 'edwards') {\n assert(key.x && key.y, 'Need both x and y coordinate');\n }\n this.pub = this.ec.curve.point(key.x, key.y);\n return;\n }\n this.pub = this.ec.curve.decodePoint(key, enc);\n};\n\n// ECDH\nKeyPair.prototype.derive = function derive(pub) {\n if(!pub.validate()) {\n assert(pub.validate(), 'public point not validated');\n }\n return pub.mul(this.priv).getX();\n};\n\n// ECDSA\nKeyPair.prototype.sign = function sign(msg, enc, options) {\n return this.ec.sign(msg, this, enc, options);\n};\n\nKeyPair.prototype.verify = function verify(msg, signature) {\n return this.ec.verify(msg, signature, this);\n};\n\nKeyPair.prototype.inspect = function inspect() {\n return '';\n};\n", "'use strict';\n\nvar BN = require('bn.js');\n\nvar utils = require('../utils');\nvar assert = utils.assert;\n\nfunction Signature(options, enc) {\n if (options instanceof Signature)\n return options;\n\n if (this._importDER(options, enc))\n return;\n\n assert(options.r && options.s, 'Signature without r or s');\n this.r = new BN(options.r, 16);\n this.s = new BN(options.s, 16);\n if (options.recoveryParam === undefined)\n this.recoveryParam = null;\n else\n this.recoveryParam = options.recoveryParam;\n}\nmodule.exports = Signature;\n\nfunction Position() {\n this.place = 0;\n}\n\nfunction getLength(buf, p) {\n var initial = buf[p.place++];\n if (!(initial & 0x80)) {\n return initial;\n }\n var octetLen = initial & 0xf;\n\n // Indefinite length or overflow\n if (octetLen === 0 || octetLen > 4) {\n return false;\n }\n\n var val = 0;\n for (var i = 0, off = p.place; i < octetLen; i++, off++) {\n val <<= 8;\n val |= buf[off];\n val >>>= 0;\n }\n\n // Leading zeroes\n if (val <= 0x7f) {\n return false;\n }\n\n p.place = off;\n return val;\n}\n\nfunction rmPadding(buf) {\n var i = 0;\n var len = buf.length - 1;\n while (!buf[i] && !(buf[i + 1] & 0x80) && i < len) {\n i++;\n }\n if (i === 0) {\n return buf;\n }\n return buf.slice(i);\n}\n\nSignature.prototype._importDER = function _importDER(data, enc) {\n data = utils.toArray(data, enc);\n var p = new Position();\n if (data[p.place++] !== 0x30) {\n return false;\n }\n var len = getLength(data, p);\n if (len === false) {\n return false;\n }\n if ((len + p.place) !== data.length) {\n return false;\n }\n if (data[p.place++] !== 0x02) {\n return false;\n }\n var rlen = getLength(data, p);\n if (rlen === false) {\n return false;\n }\n var r = data.slice(p.place, rlen + p.place);\n p.place += rlen;\n if (data[p.place++] !== 0x02) {\n return false;\n }\n var slen = getLength(data, p);\n if (slen === false) {\n return false;\n }\n if (data.length !== slen + p.place) {\n return false;\n }\n var s = data.slice(p.place, slen + p.place);\n if (r[0] === 0) {\n if (r[1] & 0x80) {\n r = r.slice(1);\n } else {\n // Leading zeroes\n return false;\n }\n }\n if (s[0] === 0) {\n if (s[1] & 0x80) {\n s = s.slice(1);\n } else {\n // Leading zeroes\n return false;\n }\n }\n\n this.r = new BN(r);\n this.s = new BN(s);\n this.recoveryParam = null;\n\n return true;\n};\n\nfunction constructLength(arr, len) {\n if (len < 0x80) {\n arr.push(len);\n return;\n }\n var octets = 1 + (Math.log(len) / Math.LN2 >>> 3);\n arr.push(octets | 0x80);\n while (--octets) {\n arr.push((len >>> (octets << 3)) & 0xff);\n }\n arr.push(len);\n}\n\nSignature.prototype.toDER = function toDER(enc) {\n var r = this.r.toArray();\n var s = this.s.toArray();\n\n // Pad values\n if (r[0] & 0x80)\n r = [ 0 ].concat(r);\n // Pad values\n if (s[0] & 0x80)\n s = [ 0 ].concat(s);\n\n r = rmPadding(r);\n s = rmPadding(s);\n\n while (!s[0] && !(s[1] & 0x80)) {\n s = s.slice(1);\n }\n var arr = [ 0x02 ];\n constructLength(arr, r.length);\n arr = arr.concat(r);\n arr.push(0x02);\n constructLength(arr, s.length);\n var backHalf = arr.concat(s);\n var res = [ 0x30 ];\n constructLength(res, backHalf.length);\n res = res.concat(backHalf);\n return utils.encode(res, enc);\n};\n", "'use strict';\n\nvar BN = require('bn.js');\nvar HmacDRBG = require('hmac-drbg');\nvar utils = require('../utils');\nvar curves = require('../curves');\nvar rand = require('brorand');\nvar assert = utils.assert;\n\nvar KeyPair = require('./key');\nvar Signature = require('./signature');\n\nfunction EC(options) {\n if (!(this instanceof EC))\n return new EC(options);\n\n // Shortcut `elliptic.ec(curve-name)`\n if (typeof options === 'string') {\n assert(Object.prototype.hasOwnProperty.call(curves, options),\n 'Unknown curve ' + options);\n\n options = curves[options];\n }\n\n // Shortcut for `elliptic.ec(elliptic.curves.curveName)`\n if (options instanceof curves.PresetCurve)\n options = { curve: options };\n\n this.curve = options.curve.curve;\n this.n = this.curve.n;\n this.nh = this.n.ushrn(1);\n this.g = this.curve.g;\n\n // Point on curve\n this.g = options.curve.g;\n this.g.precompute(options.curve.n.bitLength() + 1);\n\n // Hash for function for DRBG\n this.hash = options.hash || options.curve.hash;\n}\nmodule.exports = EC;\n\nEC.prototype.keyPair = function keyPair(options) {\n return new KeyPair(this, options);\n};\n\nEC.prototype.keyFromPrivate = function keyFromPrivate(priv, enc) {\n return KeyPair.fromPrivate(this, priv, enc);\n};\n\nEC.prototype.keyFromPublic = function keyFromPublic(pub, enc) {\n return KeyPair.fromPublic(this, pub, enc);\n};\n\nEC.prototype.genKeyPair = function genKeyPair(options) {\n if (!options)\n options = {};\n\n // Instantiate Hmac_DRBG\n var drbg = new HmacDRBG({\n hash: this.hash,\n pers: options.pers,\n persEnc: options.persEnc || 'utf8',\n entropy: options.entropy || rand(this.hash.hmacStrength),\n entropyEnc: options.entropy && options.entropyEnc || 'utf8',\n nonce: this.n.toArray(),\n });\n\n var bytes = this.n.byteLength();\n var ns2 = this.n.sub(new BN(2));\n for (;;) {\n var priv = new BN(drbg.generate(bytes));\n if (priv.cmp(ns2) > 0)\n continue;\n\n priv.iaddn(1);\n return this.keyFromPrivate(priv);\n }\n};\n\nEC.prototype._truncateToN = function _truncateToN(msg, truncOnly) {\n var delta = msg.byteLength() * 8 - this.n.bitLength();\n if (delta > 0)\n msg = msg.ushrn(delta);\n if (!truncOnly && msg.cmp(this.n) >= 0)\n return msg.sub(this.n);\n else\n return msg;\n};\n\nEC.prototype.sign = function sign(msg, key, enc, options) {\n if (typeof enc === 'object') {\n options = enc;\n enc = null;\n }\n if (!options)\n options = {};\n\n key = this.keyFromPrivate(key, enc);\n msg = this._truncateToN(new BN(msg, 16));\n\n // Zero-extend key to provide enough entropy\n var bytes = this.n.byteLength();\n var bkey = key.getPrivate().toArray('be', bytes);\n\n // Zero-extend nonce to have the same byte size as N\n var nonce = msg.toArray('be', bytes);\n\n // Instantiate Hmac_DRBG\n var drbg = new HmacDRBG({\n hash: this.hash,\n entropy: bkey,\n nonce: nonce,\n pers: options.pers,\n persEnc: options.persEnc || 'utf8',\n });\n\n // Number of bytes to generate\n var ns1 = this.n.sub(new BN(1));\n\n for (var iter = 0; ; iter++) {\n var k = options.k ?\n options.k(iter) :\n new BN(drbg.generate(this.n.byteLength()));\n k = this._truncateToN(k, true);\n if (k.cmpn(1) <= 0 || k.cmp(ns1) >= 0)\n continue;\n\n var kp = this.g.mul(k);\n if (kp.isInfinity())\n continue;\n\n var kpX = kp.getX();\n var r = kpX.umod(this.n);\n if (r.cmpn(0) === 0)\n continue;\n\n var s = k.invm(this.n).mul(r.mul(key.getPrivate()).iadd(msg));\n s = s.umod(this.n);\n if (s.cmpn(0) === 0)\n continue;\n\n var recoveryParam = (kp.getY().isOdd() ? 1 : 0) |\n (kpX.cmp(r) !== 0 ? 2 : 0);\n\n // Use complement of `s`, if it is > `n / 2`\n if (options.canonical && s.cmp(this.nh) > 0) {\n s = this.n.sub(s);\n recoveryParam ^= 1;\n }\n\n return new Signature({ r: r, s: s, recoveryParam: recoveryParam });\n }\n};\n\nEC.prototype.verify = function verify(msg, signature, key, enc) {\n msg = this._truncateToN(new BN(msg, 16));\n key = this.keyFromPublic(key, enc);\n signature = new Signature(signature, 'hex');\n\n // Perform primitive values validation\n var r = signature.r;\n var s = signature.s;\n if (r.cmpn(1) < 0 || r.cmp(this.n) >= 0)\n return false;\n if (s.cmpn(1) < 0 || s.cmp(this.n) >= 0)\n return false;\n\n // Validate signature\n var sinv = s.invm(this.n);\n var u1 = sinv.mul(msg).umod(this.n);\n var u2 = sinv.mul(r).umod(this.n);\n var p;\n\n if (!this.curve._maxwellTrick) {\n p = this.g.mulAdd(u1, key.getPublic(), u2);\n if (p.isInfinity())\n return false;\n\n return p.getX().umod(this.n).cmp(r) === 0;\n }\n\n // NOTE: Greg Maxwell's trick, inspired by:\n // https://git.io/vad3K\n\n p = this.g.jmulAdd(u1, key.getPublic(), u2);\n if (p.isInfinity())\n return false;\n\n // Compare `p.x` of Jacobian point with `r`,\n // this will do `p.x == r * p.z^2` instead of multiplying `p.x` by the\n // inverse of `p.z^2`\n return p.eqXToP(r);\n};\n\nEC.prototype.recoverPubKey = function(msg, signature, j, enc) {\n assert((3 & j) === j, 'The recovery param is more than two bits');\n signature = new Signature(signature, enc);\n\n var n = this.n;\n var e = new BN(msg);\n var r = signature.r;\n var s = signature.s;\n\n // A set LSB signifies that the y-coordinate is odd\n var isYOdd = j & 1;\n var isSecondKey = j >> 1;\n if (r.cmp(this.curve.p.umod(this.curve.n)) >= 0 && isSecondKey)\n throw new Error('Unable to find sencond key candinate');\n\n // 1.1. Let x = r + jn.\n if (isSecondKey)\n r = this.curve.pointFromX(r.add(this.curve.n), isYOdd);\n else\n r = this.curve.pointFromX(r, isYOdd);\n\n var rInv = signature.r.invm(n);\n var s1 = n.sub(e).mul(rInv).umod(n);\n var s2 = s.mul(rInv).umod(n);\n\n // 1.6.1 Compute Q = r^-1 (sR - eG)\n // Q = r^-1 (sR + -eG)\n return this.g.mulAdd(s1, r, s2);\n};\n\nEC.prototype.getKeyRecoveryParam = function(e, signature, Q, enc) {\n signature = new Signature(signature, enc);\n if (signature.recoveryParam !== null)\n return signature.recoveryParam;\n\n for (var i = 0; i < 4; i++) {\n var Qprime;\n try {\n Qprime = this.recoverPubKey(e, signature, i);\n } catch (e) {\n continue;\n }\n\n if (Qprime.eq(Q))\n return i;\n }\n throw new Error('Unable to find valid recovery factor');\n};\n", "'use strict';\n\nvar utils = require('../utils');\nvar assert = utils.assert;\nvar parseBytes = utils.parseBytes;\nvar cachedProperty = utils.cachedProperty;\n\n/**\n* @param {EDDSA} eddsa - instance\n* @param {Object} params - public/private key parameters\n*\n* @param {Array} [params.secret] - secret seed bytes\n* @param {Point} [params.pub] - public key point (aka `A` in eddsa terms)\n* @param {Array} [params.pub] - public key point encoded as bytes\n*\n*/\nfunction KeyPair(eddsa, params) {\n this.eddsa = eddsa;\n this._secret = parseBytes(params.secret);\n if (eddsa.isPoint(params.pub))\n this._pub = params.pub;\n else\n this._pubBytes = parseBytes(params.pub);\n}\n\nKeyPair.fromPublic = function fromPublic(eddsa, pub) {\n if (pub instanceof KeyPair)\n return pub;\n return new KeyPair(eddsa, { pub: pub });\n};\n\nKeyPair.fromSecret = function fromSecret(eddsa, secret) {\n if (secret instanceof KeyPair)\n return secret;\n return new KeyPair(eddsa, { secret: secret });\n};\n\nKeyPair.prototype.secret = function secret() {\n return this._secret;\n};\n\ncachedProperty(KeyPair, 'pubBytes', function pubBytes() {\n return this.eddsa.encodePoint(this.pub());\n});\n\ncachedProperty(KeyPair, 'pub', function pub() {\n if (this._pubBytes)\n return this.eddsa.decodePoint(this._pubBytes);\n return this.eddsa.g.mul(this.priv());\n});\n\ncachedProperty(KeyPair, 'privBytes', function privBytes() {\n var eddsa = this.eddsa;\n var hash = this.hash();\n var lastIx = eddsa.encodingLength - 1;\n\n var a = hash.slice(0, eddsa.encodingLength);\n a[0] &= 248;\n a[lastIx] &= 127;\n a[lastIx] |= 64;\n\n return a;\n});\n\ncachedProperty(KeyPair, 'priv', function priv() {\n return this.eddsa.decodeInt(this.privBytes());\n});\n\ncachedProperty(KeyPair, 'hash', function hash() {\n return this.eddsa.hash().update(this.secret()).digest();\n});\n\ncachedProperty(KeyPair, 'messagePrefix', function messagePrefix() {\n return this.hash().slice(this.eddsa.encodingLength);\n});\n\nKeyPair.prototype.sign = function sign(message) {\n assert(this._secret, 'KeyPair can only verify');\n return this.eddsa.sign(message, this);\n};\n\nKeyPair.prototype.verify = function verify(message, sig) {\n return this.eddsa.verify(message, sig, this);\n};\n\nKeyPair.prototype.getSecret = function getSecret(enc) {\n assert(this._secret, 'KeyPair is public only');\n return utils.encode(this.secret(), enc);\n};\n\nKeyPair.prototype.getPublic = function getPublic(enc) {\n return utils.encode(this.pubBytes(), enc);\n};\n\nmodule.exports = KeyPair;\n", "'use strict';\n\nvar BN = require('bn.js');\nvar utils = require('../utils');\nvar assert = utils.assert;\nvar cachedProperty = utils.cachedProperty;\nvar parseBytes = utils.parseBytes;\n\n/**\n* @param {EDDSA} eddsa - eddsa instance\n* @param {Array|Object} sig -\n* @param {Array|Point} [sig.R] - R point as Point or bytes\n* @param {Array|bn} [sig.S] - S scalar as bn or bytes\n* @param {Array} [sig.Rencoded] - R point encoded\n* @param {Array} [sig.Sencoded] - S scalar encoded\n*/\nfunction Signature(eddsa, sig) {\n this.eddsa = eddsa;\n\n if (typeof sig !== 'object')\n sig = parseBytes(sig);\n\n if (Array.isArray(sig)) {\n sig = {\n R: sig.slice(0, eddsa.encodingLength),\n S: sig.slice(eddsa.encodingLength),\n };\n }\n\n assert(sig.R && sig.S, 'Signature without R or S');\n\n if (eddsa.isPoint(sig.R))\n this._R = sig.R;\n if (sig.S instanceof BN)\n this._S = sig.S;\n\n this._Rencoded = Array.isArray(sig.R) ? sig.R : sig.Rencoded;\n this._Sencoded = Array.isArray(sig.S) ? sig.S : sig.Sencoded;\n}\n\ncachedProperty(Signature, 'S', function S() {\n return this.eddsa.decodeInt(this.Sencoded());\n});\n\ncachedProperty(Signature, 'R', function R() {\n return this.eddsa.decodePoint(this.Rencoded());\n});\n\ncachedProperty(Signature, 'Rencoded', function Rencoded() {\n return this.eddsa.encodePoint(this.R());\n});\n\ncachedProperty(Signature, 'Sencoded', function Sencoded() {\n return this.eddsa.encodeInt(this.S());\n});\n\nSignature.prototype.toBytes = function toBytes() {\n return this.Rencoded().concat(this.Sencoded());\n};\n\nSignature.prototype.toHex = function toHex() {\n return utils.encode(this.toBytes(), 'hex').toUpperCase();\n};\n\nmodule.exports = Signature;\n", "'use strict';\n\nvar hash = require('hash.js');\nvar curves = require('../curves');\nvar utils = require('../utils');\nvar assert = utils.assert;\nvar parseBytes = utils.parseBytes;\nvar KeyPair = require('./key');\nvar Signature = require('./signature');\n\nfunction EDDSA(curve) {\n assert(curve === 'ed25519', 'only tested with ed25519 so far');\n\n if (!(this instanceof EDDSA))\n return new EDDSA(curve);\n\n curve = curves[curve].curve;\n this.curve = curve;\n this.g = curve.g;\n this.g.precompute(curve.n.bitLength() + 1);\n\n this.pointClass = curve.point().constructor;\n this.encodingLength = Math.ceil(curve.n.bitLength() / 8);\n this.hash = hash.sha512;\n}\n\nmodule.exports = EDDSA;\n\n/**\n* @param {Array|String} message - message bytes\n* @param {Array|String|KeyPair} secret - secret bytes or a keypair\n* @returns {Signature} - signature\n*/\nEDDSA.prototype.sign = function sign(message, secret) {\n message = parseBytes(message);\n var key = this.keyFromSecret(secret);\n var r = this.hashInt(key.messagePrefix(), message);\n var R = this.g.mul(r);\n var Rencoded = this.encodePoint(R);\n var s_ = this.hashInt(Rencoded, key.pubBytes(), message)\n .mul(key.priv());\n var S = r.add(s_).umod(this.curve.n);\n return this.makeSignature({ R: R, S: S, Rencoded: Rencoded });\n};\n\n/**\n* @param {Array} message - message bytes\n* @param {Array|String|Signature} sig - sig bytes\n* @param {Array|String|Point|KeyPair} pub - public key\n* @returns {Boolean} - true if public key matches sig of message\n*/\nEDDSA.prototype.verify = function verify(message, sig, pub) {\n message = parseBytes(message);\n sig = this.makeSignature(sig);\n var key = this.keyFromPublic(pub);\n var h = this.hashInt(sig.Rencoded(), key.pubBytes(), message);\n var SG = this.g.mul(sig.S());\n var RplusAh = sig.R().add(key.pub().mul(h));\n return RplusAh.eq(SG);\n};\n\nEDDSA.prototype.hashInt = function hashInt() {\n var hash = this.hash();\n for (var i = 0; i < arguments.length; i++)\n hash.update(arguments[i]);\n return utils.intFromLE(hash.digest()).umod(this.curve.n);\n};\n\nEDDSA.prototype.keyFromPublic = function keyFromPublic(pub) {\n return KeyPair.fromPublic(this, pub);\n};\n\nEDDSA.prototype.keyFromSecret = function keyFromSecret(secret) {\n return KeyPair.fromSecret(this, secret);\n};\n\nEDDSA.prototype.makeSignature = function makeSignature(sig) {\n if (sig instanceof Signature)\n return sig;\n return new Signature(this, sig);\n};\n\n/**\n* * https://tools.ietf.org/html/draft-josefsson-eddsa-ed25519-03#section-5.2\n*\n* EDDSA defines methods for encoding and decoding points and integers. These are\n* helper convenience methods, that pass along to utility functions implied\n* parameters.\n*\n*/\nEDDSA.prototype.encodePoint = function encodePoint(point) {\n var enc = point.getY().toArray('le', this.encodingLength);\n enc[this.encodingLength - 1] |= point.getX().isOdd() ? 0x80 : 0;\n return enc;\n};\n\nEDDSA.prototype.decodePoint = function decodePoint(bytes) {\n bytes = utils.parseBytes(bytes);\n\n var lastIx = bytes.length - 1;\n var normed = bytes.slice(0, lastIx).concat(bytes[lastIx] & ~0x80);\n var xIsOdd = (bytes[lastIx] & 0x80) !== 0;\n\n var y = utils.intFromLE(normed);\n return this.curve.pointFromY(y, xIsOdd);\n};\n\nEDDSA.prototype.encodeInt = function encodeInt(num) {\n return num.toArray('le', this.encodingLength);\n};\n\nEDDSA.prototype.decodeInt = function decodeInt(bytes) {\n return utils.intFromLE(bytes);\n};\n\nEDDSA.prototype.isPoint = function isPoint(val) {\n return val instanceof this.pointClass;\n};\n", "'use strict';\n\nvar elliptic = exports;\n\nelliptic.version = require('../package.json').version;\nelliptic.utils = require('./elliptic/utils');\nelliptic.rand = require('brorand');\nelliptic.curve = require('./elliptic/curve');\nelliptic.curves = require('./elliptic/curves');\n\n// Protocols\nelliptic.ec = require('./elliptic/ec');\nelliptic.eddsa = require('./elliptic/eddsa');\n", "import _ec from \"elliptic\";\nimport EC = _ec.ec;\n\nexport { EC }\n", "export const version = \"signing-key/5.7.0\";\n", "\"use strict\";\n\nimport { EC } from \"./elliptic\";\n\nimport { arrayify, BytesLike, hexDataLength, hexlify, hexZeroPad, Signature, SignatureLike, splitSignature } from \"@ethersproject/bytes\";\nimport { defineReadOnly } from \"@ethersproject/properties\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\nlet _curve: EC = null\nfunction getCurve() {\n if (!_curve) {\n _curve = new EC(\"secp256k1\");\n }\n return _curve;\n}\n\nexport class SigningKey {\n\n readonly curve: string;\n\n readonly privateKey: string;\n readonly publicKey: string;\n readonly compressedPublicKey: string;\n\n //readonly address: string;\n\n readonly _isSigningKey: boolean;\n\n constructor(privateKey: BytesLike) {\n defineReadOnly(this, \"curve\", \"secp256k1\");\n\n defineReadOnly(this, \"privateKey\", hexlify(privateKey));\n if (hexDataLength(this.privateKey) !== 32) {\n logger.throwArgumentError(\"invalid private key\", \"privateKey\", \"[[ REDACTED ]]\");\n }\n\n const keyPair = getCurve().keyFromPrivate(arrayify(this.privateKey));\n\n defineReadOnly(this, \"publicKey\", \"0x\" + keyPair.getPublic(false, \"hex\"));\n defineReadOnly(this, \"compressedPublicKey\", \"0x\" + keyPair.getPublic(true, \"hex\"));\n\n defineReadOnly(this, \"_isSigningKey\", true);\n }\n\n _addPoint(other: BytesLike): string {\n const p0 = getCurve().keyFromPublic(arrayify(this.publicKey));\n const p1 = getCurve().keyFromPublic(arrayify(other));\n return \"0x\" + p0.pub.add(p1.pub).encodeCompressed(\"hex\");\n }\n\n signDigest(digest: BytesLike): Signature {\n const keyPair = getCurve().keyFromPrivate(arrayify(this.privateKey));\n const digestBytes = arrayify(digest);\n if (digestBytes.length !== 32) {\n logger.throwArgumentError(\"bad digest length\", \"digest\", digest);\n }\n const signature = keyPair.sign(digestBytes, { canonical: true });\n return splitSignature({\n recoveryParam: signature.recoveryParam,\n r: hexZeroPad(\"0x\" + signature.r.toString(16), 32),\n s: hexZeroPad(\"0x\" + signature.s.toString(16), 32),\n })\n }\n\n computeSharedSecret(otherKey: BytesLike): string {\n const keyPair = getCurve().keyFromPrivate(arrayify(this.privateKey));\n const otherKeyPair = getCurve().keyFromPublic(arrayify(computePublicKey(otherKey)));\n return hexZeroPad(\"0x\" + keyPair.derive(otherKeyPair.getPublic()).toString(16), 32);\n }\n\n static isSigningKey(value: any): value is SigningKey {\n return !!(value && value._isSigningKey);\n }\n}\n\nexport function recoverPublicKey(digest: BytesLike, signature: SignatureLike): string {\n const sig = splitSignature(signature);\n const rs = { r: arrayify(sig.r), s: arrayify(sig.s) };\n return \"0x\" + getCurve().recoverPubKey(arrayify(digest), rs, sig.recoveryParam).encode(\"hex\", false);\n}\n\nexport function computePublicKey(key: BytesLike, compressed?: boolean): string {\n const bytes = arrayify(key);\n\n if (bytes.length === 32) {\n const signingKey = new SigningKey(bytes);\n if (compressed) {\n return \"0x\" + getCurve().keyFromPrivate(bytes).getPublic(true, \"hex\");\n }\n return signingKey.publicKey;\n\n } else if (bytes.length === 33) {\n if (compressed) { return hexlify(bytes); }\n return \"0x\" + getCurve().keyFromPublic(bytes).getPublic(false, \"hex\");\n\n } else if (bytes.length === 65) {\n if (!compressed) { return hexlify(bytes); }\n return \"0x\" + getCurve().keyFromPublic(bytes).getPublic(true, \"hex\");\n }\n\n return logger.throwArgumentError(\"invalid public or private key\", \"key\", \"[REDACTED]\");\n}\n\n", "export const version = \"transactions/5.7.0\";\n", "\"use strict\";\n\nimport { getAddress } from \"@ethersproject/address\";\nimport { BigNumber, BigNumberish } from \"@ethersproject/bignumber\";\nimport { arrayify, BytesLike, DataOptions, hexConcat, hexDataLength, hexDataSlice, hexlify, hexZeroPad, isBytesLike, SignatureLike, splitSignature, stripZeros, } from \"@ethersproject/bytes\";\nimport { Zero } from \"@ethersproject/constants\";\nimport { keccak256 } from \"@ethersproject/keccak256\";\nimport { checkProperties } from \"@ethersproject/properties\";\nimport * as RLP from \"@ethersproject/rlp\";\nimport { computePublicKey, recoverPublicKey } from \"@ethersproject/signing-key\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\n///////////////////////////////\n// Exported Types\n\nexport type AccessList = Array<{ address: string, storageKeys: Array }>;\n\n// Input allows flexibility in describing an access list\nexport type AccessListish = AccessList |\n Array<[ string, Array ]> |\n Record>;\n\nexport enum TransactionTypes {\n legacy = 0,\n eip2930 = 1,\n eip1559 = 2,\n};\n\nexport type UnsignedTransaction = {\n to?: string;\n nonce?: number;\n\n gasLimit?: BigNumberish;\n gasPrice?: BigNumberish;\n\n data?: BytesLike;\n value?: BigNumberish;\n chainId?: number;\n\n // Typed-Transaction features\n type?: number | null;\n\n // EIP-2930; Type 1 & EIP-1559; Type 2\n accessList?: AccessListish;\n\n // EIP-1559; Type 2\n maxPriorityFeePerGas?: BigNumberish;\n maxFeePerGas?: BigNumberish;\n}\n\nexport interface Transaction {\n hash?: string;\n\n to?: string;\n from?: string;\n nonce: number;\n\n gasLimit: BigNumber;\n gasPrice?: BigNumber;\n\n data: string;\n value: BigNumber;\n chainId: number;\n\n r?: string;\n s?: string;\n v?: number;\n\n // Typed-Transaction features\n type?: number | null;\n\n // EIP-2930; Type 1 & EIP-1559; Type 2\n accessList?: AccessList;\n\n // EIP-1559; Type 2\n maxPriorityFeePerGas?: BigNumber;\n maxFeePerGas?: BigNumber;\n}\n\n///////////////////////////////\n\nfunction handleAddress(value: string): string {\n if (value === \"0x\") { return null; }\n return getAddress(value);\n}\n\nfunction handleNumber(value: string): BigNumber {\n if (value === \"0x\") { return Zero; }\n return BigNumber.from(value);\n}\n\n// Legacy Transaction Fields\nconst transactionFields = [\n { name: \"nonce\", maxLength: 32, numeric: true },\n { name: \"gasPrice\", maxLength: 32, numeric: true },\n { name: \"gasLimit\", maxLength: 32, numeric: true },\n { name: \"to\", length: 20 },\n { name: \"value\", maxLength: 32, numeric: true },\n { name: \"data\" },\n];\n\nconst allowedTransactionKeys: { [ key: string ]: boolean } = {\n chainId: true, data: true, gasLimit: true, gasPrice:true, nonce: true, to: true, type: true, value: true\n}\n\nexport function computeAddress(key: BytesLike | string): string {\n const publicKey = computePublicKey(key);\n return getAddress(hexDataSlice(keccak256(hexDataSlice(publicKey, 1)), 12));\n}\n\nexport function recoverAddress(digest: BytesLike, signature: SignatureLike): string {\n return computeAddress(recoverPublicKey(arrayify(digest), signature));\n}\n\nfunction formatNumber(value: BigNumberish, name: string): Uint8Array {\n const result = stripZeros(BigNumber.from(value).toHexString());\n if (result.length > 32) {\n logger.throwArgumentError(\"invalid length for \" + name, (\"transaction:\" + name), value);\n }\n return result;\n}\n\nfunction accessSetify(addr: string, storageKeys: Array): { address: string,storageKeys: Array } {\n return {\n address: getAddress(addr),\n storageKeys: (storageKeys || []).map((storageKey, index) => {\n if (hexDataLength(storageKey) !== 32) {\n logger.throwArgumentError(\"invalid access list storageKey\", `accessList[${ addr }:${ index }]`, storageKey)\n }\n return storageKey.toLowerCase();\n })\n };\n}\n\nexport function accessListify(value: AccessListish): AccessList {\n if (Array.isArray(value)) {\n return (] | { address: string, storageKeys: Array}>>value).map((set, index) => {\n if (Array.isArray(set)) {\n if (set.length > 2) {\n logger.throwArgumentError(\"access list expected to be [ address, storageKeys[] ]\", `value[${ index }]`, set);\n }\n return accessSetify(set[0], set[1])\n }\n return accessSetify(set.address, set.storageKeys);\n });\n }\n\n const result: Array<{ address: string, storageKeys: Array }> = Object.keys(value).map((addr) => {\n const storageKeys: Record = 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\nfunction formatAccessList(value: AccessListish): Array<[ string, Array ]> {\n return accessListify(value).map((set) => [ set.address, set.storageKeys ]);\n}\n\nfunction _serializeEip1559(transaction: UnsignedTransaction, signature?: SignatureLike): string {\n // If there is an explicit gasPrice, make sure it matches the\n // EIP-1559 fees; otherwise they may not understand what they\n // think they are setting in terms of fee.\n if (transaction.gasPrice != null) {\n const gasPrice = BigNumber.from(transaction.gasPrice);\n const maxFeePerGas = BigNumber.from(transaction.maxFeePerGas || 0);\n if (!gasPrice.eq(maxFeePerGas)) {\n logger.throwArgumentError(\"mismatch EIP-1559 gasPrice != maxFeePerGas\", \"tx\", {\n gasPrice, maxFeePerGas\n });\n }\n }\n\n const fields: any = [\n formatNumber(transaction.chainId || 0, \"chainId\"),\n formatNumber(transaction.nonce || 0, \"nonce\"),\n formatNumber(transaction.maxPriorityFeePerGas || 0, \"maxPriorityFeePerGas\"),\n formatNumber(transaction.maxFeePerGas || 0, \"maxFeePerGas\"),\n formatNumber(transaction.gasLimit || 0, \"gasLimit\"),\n ((transaction.to != null) ? getAddress(transaction.to): \"0x\"),\n formatNumber(transaction.value || 0, \"value\"),\n (transaction.data || \"0x\"),\n (formatAccessList(transaction.accessList || []))\n ];\n\n if (signature) {\n const sig = splitSignature(signature);\n fields.push(formatNumber(sig.recoveryParam, \"recoveryParam\"));\n fields.push(stripZeros(sig.r));\n fields.push(stripZeros(sig.s));\n }\n\n return hexConcat([ \"0x02\", RLP.encode(fields)]);\n}\n\nfunction _serializeEip2930(transaction: UnsignedTransaction, signature?: SignatureLike): string {\n const fields: any = [\n formatNumber(transaction.chainId || 0, \"chainId\"),\n formatNumber(transaction.nonce || 0, \"nonce\"),\n formatNumber(transaction.gasPrice || 0, \"gasPrice\"),\n formatNumber(transaction.gasLimit || 0, \"gasLimit\"),\n ((transaction.to != null) ? getAddress(transaction.to): \"0x\"),\n formatNumber(transaction.value || 0, \"value\"),\n (transaction.data || \"0x\"),\n (formatAccessList(transaction.accessList || []))\n ];\n\n if (signature) {\n const sig = splitSignature(signature);\n fields.push(formatNumber(sig.recoveryParam, \"recoveryParam\"));\n fields.push(stripZeros(sig.r));\n fields.push(stripZeros(sig.s));\n }\n\n return hexConcat([ \"0x01\", RLP.encode(fields)]);\n}\n\n// Legacy Transactions and EIP-155\nfunction _serialize(transaction: UnsignedTransaction, signature?: SignatureLike): string {\n checkProperties(transaction, allowedTransactionKeys);\n\n const raw: Array = [];\n\n transactionFields.forEach(function(fieldInfo) {\n let value = (transaction)[fieldInfo.name] || ([]);\n const options: DataOptions = { };\n if (fieldInfo.numeric) { options.hexPad = \"left\"; }\n value = arrayify(hexlify(value, options));\n\n // Fixed-width field\n if (fieldInfo.length && value.length !== fieldInfo.length && value.length > 0) {\n logger.throwArgumentError(\"invalid length for \" + fieldInfo.name, (\"transaction:\" + fieldInfo.name), value);\n }\n\n // Variable-width (with a maximum)\n if (fieldInfo.maxLength) {\n value = stripZeros(value);\n if (value.length > fieldInfo.maxLength) {\n logger.throwArgumentError(\"invalid length for \" + fieldInfo.name, (\"transaction:\" + fieldInfo.name), value );\n }\n }\n\n raw.push(hexlify(value));\n });\n\n let chainId = 0;\n if (transaction.chainId != null) {\n // A chainId was provided; if non-zero we'll use EIP-155\n chainId = transaction.chainId;\n\n if (typeof(chainId) !== \"number\") {\n logger.throwArgumentError(\"invalid transaction.chainId\", \"transaction\", transaction);\n }\n\n } else if (signature && !isBytesLike(signature) && signature.v > 28) {\n // No chainId provided, but the signature is signing with EIP-155; derive chainId\n chainId = Math.floor((signature.v - 35) / 2);\n }\n\n // We have an EIP-155 transaction (chainId was specified and non-zero)\n if (chainId !== 0) {\n raw.push(hexlify(chainId)); // @TODO: hexValue?\n raw.push(\"0x\");\n raw.push(\"0x\");\n }\n\n // Requesting an unsigned transaction\n if (!signature) {\n return RLP.encode(raw);\n }\n\n // The splitSignature will ensure the transaction has a recoveryParam in the\n // case that the signTransaction function only adds a v.\n const sig = splitSignature(signature);\n\n // We pushed a chainId and null r, s on for hashing only; remove those\n let v = 27 + sig.recoveryParam\n if (chainId !== 0) {\n raw.pop();\n raw.pop();\n raw.pop();\n v += chainId * 2 + 8;\n\n // If an EIP-155 v (directly or indirectly; maybe _vs) was provided, check it!\n if (sig.v > 28 && sig.v !== v) {\n logger.throwArgumentError(\"transaction.chainId/signature.v mismatch\", \"signature\", signature);\n }\n } else if (sig.v !== v) {\n logger.throwArgumentError(\"transaction.chainId/signature.v mismatch\", \"signature\", signature);\n }\n\n raw.push(hexlify(v));\n raw.push(stripZeros(arrayify(sig.r)));\n raw.push(stripZeros(arrayify(sig.s)));\n\n return RLP.encode(raw);\n}\n\nexport function serialize(transaction: UnsignedTransaction, signature?: SignatureLike): string {\n // Legacy and EIP-155 Transactions\n if (transaction.type == null || transaction.type === 0) {\n if (transaction.accessList != null) {\n logger.throwArgumentError(\"untyped transactions do not support accessList; include type: 1\", \"transaction\", transaction);\n }\n return _serialize(transaction, signature);\n }\n\n // Typed Transactions (EIP-2718)\n switch (transaction.type) {\n case 1:\n return _serializeEip2930(transaction, signature);\n case 2:\n return _serializeEip1559(transaction, signature);\n default:\n break;\n }\n\n return logger.throwError(`unsupported transaction type: ${ transaction.type }`, Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"serializeTransaction\",\n transactionType: transaction.type\n });\n}\n\nfunction _parseEipSignature(tx: Transaction, fields: Array, serialize: (tx: UnsignedTransaction) => string): void {\n try {\n const recid = handleNumber(fields[0]).toNumber();\n if (recid !== 0 && recid !== 1) { throw new Error(\"bad recid\"); }\n tx.v = recid;\n } catch (error) {\n logger.throwArgumentError(\"invalid v for transaction type: 1\", \"v\", fields[0]);\n }\n\n tx.r = hexZeroPad(fields[1], 32);\n tx.s = hexZeroPad(fields[2], 32);\n\n try {\n const digest = keccak256(serialize(tx));\n tx.from = recoverAddress(digest, { r: tx.r, s: tx.s, recoveryParam: tx.v });\n } catch (error) { }\n}\n\nfunction _parseEip1559(payload: Uint8Array): Transaction {\n const transaction = RLP.decode(payload.slice(1));\n\n if (transaction.length !== 9 && transaction.length !== 12) {\n logger.throwArgumentError(\"invalid component count for transaction type: 2\", \"payload\", hexlify(payload));\n }\n\n const maxPriorityFeePerGas = handleNumber(transaction[2]);\n const maxFeePerGas = handleNumber(transaction[3]);\n const tx: Transaction = {\n type: 2,\n chainId: handleNumber(transaction[0]).toNumber(),\n nonce: handleNumber(transaction[1]).toNumber(),\n maxPriorityFeePerGas: maxPriorityFeePerGas,\n maxFeePerGas: maxFeePerGas,\n gasPrice: null,\n gasLimit: handleNumber(transaction[4]),\n to: handleAddress(transaction[5]),\n value: handleNumber(transaction[6]),\n data: transaction[7],\n accessList: accessListify(transaction[8]),\n };\n\n // Unsigned EIP-1559 Transaction\n if (transaction.length === 9) { return tx; }\n\n tx.hash = keccak256(payload);\n\n _parseEipSignature(tx, transaction.slice(9), _serializeEip1559);\n\n return tx;\n}\n\nfunction _parseEip2930(payload: Uint8Array): Transaction {\n const transaction = RLP.decode(payload.slice(1));\n\n if (transaction.length !== 8 && transaction.length !== 11) {\n logger.throwArgumentError(\"invalid component count for transaction type: 1\", \"payload\", hexlify(payload));\n }\n\n const tx: Transaction = {\n type: 1,\n chainId: handleNumber(transaction[0]).toNumber(),\n nonce: handleNumber(transaction[1]).toNumber(),\n gasPrice: handleNumber(transaction[2]),\n gasLimit: handleNumber(transaction[3]),\n to: handleAddress(transaction[4]),\n value: handleNumber(transaction[5]),\n data: transaction[6],\n accessList: accessListify(transaction[7])\n };\n\n // Unsigned EIP-2930 Transaction\n if (transaction.length === 8) { return tx; }\n\n tx.hash = keccak256(payload);\n\n _parseEipSignature(tx, transaction.slice(8), _serializeEip2930);\n\n return tx;\n}\n\n// Legacy Transactions and EIP-155\nfunction _parse(rawTransaction: Uint8Array): Transaction {\n const transaction = RLP.decode(rawTransaction);\n\n if (transaction.length !== 9 && transaction.length !== 6) {\n logger.throwArgumentError(\"invalid raw transaction\", \"rawTransaction\", rawTransaction);\n }\n\n const tx: Transaction = {\n nonce: handleNumber(transaction[0]).toNumber(),\n gasPrice: handleNumber(transaction[1]),\n gasLimit: handleNumber(transaction[2]),\n to: handleAddress(transaction[3]),\n value: handleNumber(transaction[4]),\n data: transaction[5],\n chainId: 0\n };\n\n // Legacy unsigned transaction\n if (transaction.length === 6) { return tx; }\n\n try {\n tx.v = BigNumber.from(transaction[6]).toNumber();\n\n } catch (error) {\n // @TODO: What makes snese to do? The v is too big\n return tx;\n }\n\n tx.r = hexZeroPad(transaction[7], 32);\n tx.s = hexZeroPad(transaction[8], 32);\n\n if (BigNumber.from(tx.r).isZero() && BigNumber.from(tx.s).isZero()) {\n // EIP-155 unsigned transaction\n tx.chainId = tx.v;\n tx.v = 0;\n\n } else {\n // Signed Transaction\n\n tx.chainId = Math.floor((tx.v - 35) / 2);\n if (tx.chainId < 0) { tx.chainId = 0; }\n\n let recoveryParam = tx.v - 27;\n\n const raw = transaction.slice(0, 6);\n\n if (tx.chainId !== 0) {\n raw.push(hexlify(tx.chainId));\n raw.push(\"0x\");\n raw.push(\"0x\");\n recoveryParam -= tx.chainId * 2 + 8;\n }\n\n const digest = keccak256(RLP.encode(raw));\n try {\n tx.from = recoverAddress(digest, { r: hexlify(tx.r), s: hexlify(tx.s), recoveryParam: recoveryParam });\n } catch (error) { }\n\n tx.hash = keccak256(rawTransaction);\n }\n\n tx.type = null;\n\n return tx;\n}\n\n\nexport function parse(rawTransaction: BytesLike): Transaction {\n const payload = arrayify(rawTransaction);\n\n // Legacy and EIP-155 Transactions\n if (payload[0] > 0x7f) { return _parse(payload); }\n\n // Typed Transaction (EIP-2718)\n switch (payload[0]) {\n case 1:\n return _parseEip2930(payload);\n case 2:\n return _parseEip1559(payload);\n default:\n break;\n }\n\n return logger.throwError(`unsupported transaction type: ${ payload[0] }`, Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"parseTransaction\",\n transactionType: payload[0]\n });\n}\n\n", "export const version = \"contracts/5.7.0\";\n", "\"use strict\";\n\nimport { checkResultErrors, EventFragment, Fragment, FunctionFragment, Indexed, Interface, JsonFragment, LogDescription, ParamType, Result } from \"@ethersproject/abi\";\nimport { Block, BlockTag, Filter, FilterByBlockHash, Listener, Log, Provider, TransactionReceipt, TransactionRequest, TransactionResponse } from \"@ethersproject/abstract-provider\";\nimport { Signer, VoidSigner } from \"@ethersproject/abstract-signer\";\nimport { getAddress, getContractAddress } from \"@ethersproject/address\";\nimport { BigNumber, BigNumberish } from \"@ethersproject/bignumber\";\nimport { arrayify, BytesLike, concat, hexlify, isBytes, isHexString } from \"@ethersproject/bytes\";\nimport { Deferrable, defineReadOnly, deepCopy, getStatic, resolveProperties, shallowCopy } from \"@ethersproject/properties\";\nimport { AccessList, accessListify, AccessListish } from \"@ethersproject/transactions\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\n\nconst logger = new Logger(version);\n\nexport interface Overrides {\n gasLimit?: BigNumberish | Promise;\n gasPrice?: BigNumberish | Promise;\n maxFeePerGas?: BigNumberish | Promise;\n maxPriorityFeePerGas?: BigNumberish | Promise;\n nonce?: BigNumberish | Promise;\n type?: number;\n accessList?: AccessListish;\n customData?: Record;\n ccipReadEnabled?: boolean;\n};\n\nexport interface PayableOverrides extends Overrides {\n value?: BigNumberish | Promise;\n}\n\nexport interface CallOverrides extends PayableOverrides {\n blockTag?: BlockTag | Promise;\n from?: string | Promise;\n}\n\n// @TODO: Better hierarchy with: (in v6)\n// - abstract-provider:TransactionRequest\n// - transactions:Transaction\n// - transaction:UnsignedTransaction\n\nexport interface PopulatedTransaction {\n to?: string;\n from?: string;\n nonce?: number;\n\n gasLimit?: BigNumber;\n gasPrice?: BigNumber;\n\n data?: string;\n value?: BigNumber;\n chainId?: number;\n\n type?: number;\n accessList?: AccessList;\n\n maxFeePerGas?: BigNumber;\n maxPriorityFeePerGas?: BigNumber;\n\n customData?: Record;\n ccipReadEnabled?: boolean;\n};\n\nexport type EventFilter = {\n address?: string;\n topics?: Array>;\n};\n\n\nexport type ContractFunction = (...args: Array) => Promise;\n\n\n// The (n + 1)th parameter passed to contract event callbacks\nexport interface Event extends Log {\n\n // The event name\n event?: string;\n\n // The event signature\n eventSignature?: string;\n\n // The parsed arguments to the event\n args?: Result;\n\n // If parsing the arguments failed, this is the error\n decodeError?: Error;\n\n // A function that can be used to decode event data and topics\n decode?: (data: string, topics?: Array) => any;\n\n // A function that will remove the listener responsible for this event (if any)\n removeListener: () => void;\n\n // Get blockchain details about this event's block and transaction\n getBlock: () => Promise;\n getTransaction: () => Promise;\n getTransactionReceipt: () => Promise;\n}\n\nexport interface ContractReceipt extends TransactionReceipt {\n events?: Array;\n}\n\nexport interface ContractTransaction extends TransactionResponse {\n wait(confirmations?: number): Promise;\n}\n\n///////////////////////////////\n\nconst allowedTransactionKeys: { [ key: string ]: boolean } = {\n chainId: true, data: true, from: true, gasLimit: true, gasPrice:true, nonce: true, to: true, value: true,\n type: true, accessList: true,\n maxFeePerGas: true, maxPriorityFeePerGas: true,\n customData: true,\n ccipReadEnabled: true\n}\n\nasync function resolveName(resolver: Signer | Provider, nameOrPromise: string | Promise): Promise {\n const name = await nameOrPromise;\n\n if (typeof(name) !== \"string\") {\n logger.throwArgumentError(\"invalid address or ENS name\", \"name\", name);\n }\n\n // If it is already an address, just use it (after adding checksum)\n try {\n return getAddress(name);\n } catch (error) { }\n\n if (!resolver) {\n logger.throwError(\"a provider or signer is needed to resolve ENS names\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"resolveName\"\n });\n }\n\n const address = await resolver.resolveName(name);\n\n if (address == null) {\n logger.throwArgumentError(\"resolver or addr is not configured for ENS name\", \"name\", name);\n }\n\n return address;\n}\n\n// Recursively replaces ENS names with promises to resolve the name and resolves all properties\nasync function resolveAddresses(resolver: Signer | Provider, value: any, paramType: ParamType | Array): Promise {\n if (Array.isArray(paramType)) {\n return await Promise.all(paramType.map((paramType, index) => {\n return resolveAddresses(\n resolver,\n ((Array.isArray(value)) ? value[index]: value[paramType.name]),\n paramType\n );\n }));\n }\n\n if (paramType.type === \"address\") {\n return await resolveName(resolver, value);\n }\n\n if (paramType.type === \"tuple\") {\n return await resolveAddresses(resolver, value, paramType.components);\n }\n\n if (paramType.baseType === \"array\") {\n if (!Array.isArray(value)) {\n return Promise.reject(logger.makeError(\"invalid value for array\", Logger.errors.INVALID_ARGUMENT, {\n argument: \"value\",\n value\n }));\n }\n return await Promise.all(value.map((v) => resolveAddresses(resolver, v, paramType.arrayChildren)));\n }\n\n return value;\n}\n\nasync function populateTransaction(contract: Contract, fragment: FunctionFragment, args: Array): Promise {\n // If an extra argument is given, it is overrides\n let overrides: CallOverrides = { };\n if (args.length === fragment.inputs.length + 1 && typeof(args[args.length - 1]) === \"object\") {\n overrides = shallowCopy(args.pop());\n }\n\n // Make sure the parameter count matches\n logger.checkArgumentCount(args.length, fragment.inputs.length, \"passed to contract\");\n\n // Populate \"from\" override (allow promises)\n if (contract.signer) {\n if (overrides.from) {\n // Contracts with a Signer are from the Signer's frame-of-reference;\n // but we allow overriding \"from\" if it matches the signer\n overrides.from = resolveProperties({\n override: resolveName(contract.signer, overrides.from),\n signer: contract.signer.getAddress()\n }).then(async (check) => {\n if (getAddress(check.signer) !== check.override) {\n logger.throwError(\"Contract with a Signer cannot override from\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"overrides.from\"\n });\n }\n\n return check.override;\n });\n\n } else {\n overrides.from = contract.signer.getAddress();\n }\n\n } else if (overrides.from) {\n overrides.from = resolveName(contract.provider, overrides.from);\n\n //} else {\n // Contracts without a signer can override \"from\", and if\n // unspecified the zero address is used\n //overrides.from = AddressZero;\n }\n\n // Wait for all dependencies to be resolved (prefer the signer over the provider)\n const resolved = await resolveProperties({\n args: resolveAddresses(contract.signer || contract.provider, args, fragment.inputs),\n address: contract.resolvedAddress,\n overrides: (resolveProperties(overrides) || { })\n });\n\n // The ABI coded transaction\n const data = contract.interface.encodeFunctionData(fragment, resolved.args);\n const tx: PopulatedTransaction = {\n data: data,\n to: resolved.address\n };\n\n // Resolved Overrides\n const ro = resolved.overrides;\n\n // Populate simple overrides\n if (ro.nonce != null) { tx.nonce = BigNumber.from(ro.nonce).toNumber(); }\n if (ro.gasLimit != null) { tx.gasLimit = BigNumber.from(ro.gasLimit); }\n if (ro.gasPrice != null) { tx.gasPrice = BigNumber.from(ro.gasPrice); }\n if (ro.maxFeePerGas != null) { tx.maxFeePerGas = BigNumber.from(ro.maxFeePerGas); }\n if (ro.maxPriorityFeePerGas != null) { tx.maxPriorityFeePerGas = BigNumber.from(ro.maxPriorityFeePerGas); }\n if (ro.from != null) { tx.from = ro.from; }\n\n if (ro.type != null) { tx.type = ro.type; }\n if (ro.accessList != null) { tx.accessList = accessListify(ro.accessList); }\n\n // If there was no \"gasLimit\" override, but the ABI specifies a default, use it\n if (tx.gasLimit == null && fragment.gas != null) {\n // Compute the intrinsic gas cost for this transaction\n // @TODO: This is based on the yellow paper as of Petersburg; this is something\n // we may wish to parameterize in v6 as part of the Network object. Since this\n // is always a non-nil to address, we can ignore G_create, but may wish to add\n // similar logic to the ContractFactory.\n let intrinsic = 21000;\n const bytes = arrayify(data);\n for (let i = 0; i < bytes.length; i++) {\n intrinsic += 4;\n if (bytes[i]) { intrinsic += 64; }\n }\n tx.gasLimit = BigNumber.from(fragment.gas).add(intrinsic);\n }\n\n // Populate \"value\" override\n if (ro.value) {\n const roValue = BigNumber.from(ro.value);\n if (!roValue.isZero() && !fragment.payable) {\n logger.throwError(\"non-payable method cannot override value\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"overrides.value\",\n value: overrides.value\n });\n }\n tx.value = roValue;\n }\n\n if (ro.customData) {\n tx.customData = shallowCopy(ro.customData);\n }\n\n if (ro.ccipReadEnabled) {\n tx.ccipReadEnabled = !!ro.ccipReadEnabled;\n }\n\n // Remove the overrides\n delete overrides.nonce;\n delete overrides.gasLimit;\n delete overrides.gasPrice;\n delete overrides.from;\n delete overrides.value;\n\n delete overrides.type;\n delete overrides.accessList;\n\n delete overrides.maxFeePerGas;\n delete overrides.maxPriorityFeePerGas;\n\n delete overrides.customData;\n delete overrides.ccipReadEnabled;\n\n // Make sure there are no stray overrides, which may indicate a\n // typo or using an unsupported key.\n const leftovers = Object.keys(overrides).filter((key) => ((overrides)[key] != null));\n if (leftovers.length) {\n logger.throwError(`cannot override ${ leftovers.map((l) => JSON.stringify(l)).join(\",\") }`, Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"overrides\",\n overrides: leftovers\n });\n }\n\n return tx;\n}\n\n\nfunction buildPopulate(contract: Contract, fragment: FunctionFragment): ContractFunction {\n return function(...args: Array): Promise {\n return populateTransaction(contract, fragment, args);\n };\n}\n\nfunction buildEstimate(contract: Contract, fragment: FunctionFragment): ContractFunction {\n const signerOrProvider = (contract.signer || contract.provider);\n return async function(...args: Array): Promise {\n if (!signerOrProvider) {\n logger.throwError(\"estimate require a provider or signer\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"estimateGas\"\n })\n }\n\n const tx = await populateTransaction(contract, fragment, args);\n return await signerOrProvider.estimateGas(tx);\n };\n}\n\nfunction addContractWait(contract: Contract, tx: TransactionResponse) {\n const wait = tx.wait.bind(tx);\n tx.wait = (confirmations?: number) => {\n return wait(confirmations).then((receipt: ContractReceipt) => {\n receipt.events = receipt.logs.map((log) => {\n let event: Event = (deepCopy(log));\n let parsed: LogDescription = null;\n try {\n parsed = contract.interface.parseLog(log);\n } catch (e){ }\n\n // Successfully parsed the event log; include it\n if (parsed) {\n event.args = parsed.args;\n event.decode = (data: BytesLike, topics?: Array) => {\n return contract.interface.decodeEventLog(parsed.eventFragment, data, topics);\n };\n event.event = parsed.name;\n event.eventSignature = parsed.signature;\n }\n\n // Useful operations\n event.removeListener = () => { return contract.provider; }\n event.getBlock = () => {\n return contract.provider.getBlock(receipt.blockHash);\n }\n event.getTransaction = () => {\n return contract.provider.getTransaction(receipt.transactionHash);\n }\n event.getTransactionReceipt = () => {\n return Promise.resolve(receipt);\n }\n\n return event;\n });\n\n return receipt;\n });\n };\n}\n\nfunction buildCall(contract: Contract, fragment: FunctionFragment, collapseSimple: boolean): ContractFunction {\n const signerOrProvider = (contract.signer || contract.provider);\n\n return async function(...args: Array): Promise {\n // Extract the \"blockTag\" override if present\n let blockTag = undefined;\n if (args.length === fragment.inputs.length + 1 && typeof(args[args.length - 1]) === \"object\") {\n const overrides = shallowCopy(args.pop());\n if (overrides.blockTag != null) {\n blockTag = await overrides.blockTag;\n }\n delete overrides.blockTag;\n args.push(overrides);\n }\n\n // If the contract was just deployed, wait until it is mined\n if (contract.deployTransaction != null) {\n await contract._deployed(blockTag);\n }\n\n // Call a node and get the result\n const tx = await populateTransaction(contract, fragment, args);\n const result = await signerOrProvider.call(tx, blockTag);\n\n try {\n let value = contract.interface.decodeFunctionResult(fragment, result);\n if (collapseSimple && fragment.outputs.length === 1) {\n value = value[0];\n }\n return value;\n\n } catch (error) {\n if (error.code === Logger.errors.CALL_EXCEPTION) {\n error.address = contract.address;\n error.args = args;\n error.transaction = tx;\n }\n throw error;\n }\n };\n}\n\nfunction buildSend(contract: Contract, fragment: FunctionFragment): ContractFunction {\n return async function(...args: Array): Promise {\n if (!contract.signer) {\n logger.throwError(\"sending a transaction requires a signer\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"sendTransaction\"\n })\n }\n\n // If the contract was just deployed, wait until it is mined\n if (contract.deployTransaction != null) {\n await contract._deployed();\n }\n\n const txRequest = await populateTransaction(contract, fragment, args);\n\n const tx = await contract.signer.sendTransaction(txRequest);\n\n // Tweak the tx.wait so the receipt has extra properties\n addContractWait(contract, tx);\n\n return tx;\n };\n}\n\nfunction buildDefault(contract: Contract, fragment: FunctionFragment, collapseSimple: boolean): ContractFunction {\n if (fragment.constant) {\n return buildCall(contract, fragment, collapseSimple);\n }\n return buildSend(contract, fragment);\n}\n\nfunction getEventTag(filter: EventFilter): string {\n if (filter.address && (filter.topics == null || filter.topics.length === 0)) {\n return \"*\";\n }\n\n return (filter.address || \"*\") + \"@\" + (filter.topics ? filter.topics.map((topic) => {\n if (Array.isArray(topic)) {\n return topic.join(\"|\");\n }\n return topic;\n }).join(\":\"): \"\");\n}\n\nclass RunningEvent {\n readonly tag: string;\n readonly filter: EventFilter;\n private _listeners: Array<{ listener: Listener, once: boolean }>;\n\n constructor(tag: string, filter: EventFilter) {\n defineReadOnly(this, \"tag\", tag);\n defineReadOnly(this, \"filter\", filter);\n this._listeners = [ ];\n }\n\n addListener(listener: Listener, once: boolean): void {\n this._listeners.push({ listener: listener, once: once });\n }\n\n removeListener(listener: Listener): void {\n let done = false;\n this._listeners = this._listeners.filter((item) => {\n if (done || item.listener !== listener) { return true; }\n done = true;\n return false;\n });\n }\n\n removeAllListeners(): void {\n this._listeners = [];\n }\n\n listeners(): Array {\n return this._listeners.map((i) => i.listener);\n }\n\n listenerCount(): number {\n return this._listeners.length;\n }\n\n run(args: Array): number {\n const listenerCount = this.listenerCount();\n this._listeners = this._listeners.filter((item) => {\n\n const argsCopy = args.slice();\n\n // Call the callback in the next event loop\n setTimeout(() => {\n item.listener.apply(this, argsCopy);\n }, 0);\n\n // Reschedule it if it not \"once\"\n return !(item.once);\n });\n\n return listenerCount;\n }\n\n prepareEvent(event: Event): void {\n }\n\n // Returns the array that will be applied to an emit\n getEmit(event: Event): Array {\n return [ event ];\n }\n}\n\nclass ErrorRunningEvent extends RunningEvent {\n constructor() {\n super(\"error\", null);\n }\n}\n\n\n// @TODO Fragment should inherit Wildcard? and just override getEmit?\n// or have a common abstract super class, with enough constructor\n// options to configure both.\n\n// A Fragment Event will populate all the properties that Wildcard\n// will, and additionally dereference the arguments when emitting\nclass FragmentRunningEvent extends RunningEvent {\n readonly address: string;\n readonly interface: Interface;\n readonly fragment: EventFragment;\n\n constructor(address: string, contractInterface: Interface, fragment: EventFragment, topics?: Array>) {\n const filter: EventFilter = {\n address: address\n }\n\n let topic = contractInterface.getEventTopic(fragment);\n if (topics) {\n if (topic !== topics[0]) { logger.throwArgumentError(\"topic mismatch\", \"topics\", topics); }\n filter.topics = topics.slice();\n } else {\n filter.topics = [ topic ];\n }\n\n super(getEventTag(filter), filter);\n defineReadOnly(this, \"address\", address);\n defineReadOnly(this, \"interface\", contractInterface);\n defineReadOnly(this, \"fragment\", fragment);\n }\n\n\n prepareEvent(event: Event): void {\n super.prepareEvent(event);\n\n event.event = this.fragment.name;\n event.eventSignature = this.fragment.format();\n\n event.decode = (data: BytesLike, topics?: Array) => {\n return this.interface.decodeEventLog(this.fragment, data, topics);\n };\n\n try {\n event.args = this.interface.decodeEventLog(this.fragment, event.data, event.topics);\n } catch (error) {\n event.args = null;\n event.decodeError = error;\n }\n }\n\n getEmit(event: Event): Array {\n const errors = checkResultErrors(event.args);\n if (errors.length) { throw errors[0].error; }\n\n const args = (event.args || []).slice();\n args.push(event);\n return args;\n }\n}\n\n// A Wildcard Event will attempt to populate:\n// - event The name of the event name\n// - eventSignature The full signature of the event\n// - decode A function to decode data and topics\n// - args The decoded data and topics\nclass WildcardRunningEvent extends RunningEvent {\n readonly address: string;\n readonly interface: Interface;\n\n constructor(address: string, contractInterface: Interface) {\n super(\"*\", { address: address });\n defineReadOnly(this, \"address\", address);\n defineReadOnly(this, \"interface\", contractInterface);\n }\n\n prepareEvent(event: Event): void {\n super.prepareEvent(event);\n\n try {\n const parsed = this.interface.parseLog(event);\n event.event = parsed.name;\n event.eventSignature = parsed.signature;\n\n event.decode = (data: BytesLike, topics?: Array) => {\n return this.interface.decodeEventLog(parsed.eventFragment, data, topics);\n };\n\n event.args = parsed.args;\n } catch (error) {\n // No matching event\n }\n }\n}\n\nexport type ContractInterface = string | ReadonlyArray | Interface;\n\ntype InterfaceFunc = (contractInterface: ContractInterface) => Interface;\n\n\nexport class BaseContract {\n readonly address: string;\n readonly interface: Interface;\n\n readonly signer: Signer;\n readonly provider: Provider;\n\n readonly functions: { [ name: string ]: ContractFunction };\n\n readonly callStatic: { [ name: string ]: ContractFunction };\n readonly estimateGas: { [ name: string ]: ContractFunction };\n readonly populateTransaction: { [ name: string ]: ContractFunction };\n\n readonly filters: { [ name: string ]: (...args: Array) => EventFilter };\n\n // This will always be an address. This will only differ from\n // address if an ENS name was used in the constructor\n readonly resolvedAddress: Promise;\n\n // This is only set if the contract was created with a call to deploy\n readonly deployTransaction: TransactionResponse;\n\n _deployedPromise: Promise;\n\n // A list of RunningEvents to track listeners for each event tag\n _runningEvents: { [ eventTag: string ]: RunningEvent };\n\n // Wrapped functions to call emit and allow deregistration from the provider\n _wrappedEmits: { [ eventTag: string ]: (...args: Array) => void };\n\n constructor(addressOrName: string, contractInterface: ContractInterface, signerOrProvider?: Signer | Provider) {\n // @TODO: Maybe still check the addressOrName looks like a valid address or name?\n //address = getAddress(address);\n defineReadOnly(this, \"interface\", getStatic(new.target, \"getInterface\")(contractInterface));\n\n if (signerOrProvider == null) {\n defineReadOnly(this, \"provider\", null);\n defineReadOnly(this, \"signer\", null);\n } else if (Signer.isSigner(signerOrProvider)) {\n defineReadOnly(this, \"provider\", signerOrProvider.provider || null);\n defineReadOnly(this, \"signer\", signerOrProvider);\n } else if (Provider.isProvider(signerOrProvider)) {\n defineReadOnly(this, \"provider\", signerOrProvider);\n defineReadOnly(this, \"signer\", null);\n } else {\n logger.throwArgumentError(\"invalid signer or provider\", \"signerOrProvider\", signerOrProvider);\n }\n\n defineReadOnly(this, \"callStatic\", { });\n defineReadOnly(this, \"estimateGas\", { });\n defineReadOnly(this, \"functions\", { });\n defineReadOnly(this, \"populateTransaction\", { });\n\n defineReadOnly(this, \"filters\", { });\n\n {\n const uniqueFilters: { [ name: string ]: Array } = { };\n Object.keys(this.interface.events).forEach((eventSignature) => {\n const event = this.interface.events[eventSignature];\n defineReadOnly(this.filters, eventSignature, (...args: Array) => {\n return {\n address: this.address,\n topics: this.interface.encodeFilterTopics(event, args)\n }\n });\n if (!uniqueFilters[event.name]) { uniqueFilters[event.name] = [ ]; }\n uniqueFilters[event.name].push(eventSignature);\n });\n\n Object.keys(uniqueFilters).forEach((name) => {\n const filters = uniqueFilters[name];\n if (filters.length === 1) {\n defineReadOnly(this.filters, name, this.filters[filters[0]]);\n } else {\n logger.warn(`Duplicate definition of ${ name } (${ filters.join(\", \")})`);\n }\n });\n }\n\n defineReadOnly(this, \"_runningEvents\", { });\n defineReadOnly(this, \"_wrappedEmits\", { });\n\n if (addressOrName == null) {\n logger.throwArgumentError(\"invalid contract address or ENS name\", \"addressOrName\", addressOrName);\n }\n\n defineReadOnly(this, \"address\", addressOrName);\n if (this.provider) {\n defineReadOnly(this, \"resolvedAddress\", resolveName(this.provider, addressOrName));\n } else {\n try {\n defineReadOnly(this, \"resolvedAddress\", Promise.resolve(getAddress(addressOrName)));\n } catch (error) {\n // Without a provider, we cannot use ENS names\n logger.throwError(\"provider is required to use ENS name as contract address\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"new Contract\"\n });\n }\n }\n\n // Swallow bad ENS names to prevent Unhandled Exceptions\n this.resolvedAddress.catch((e) => { });\n\n const uniqueNames: { [ name: string ]: Array } = { };\n const uniqueSignatures: { [ signature: string ]: boolean } = { };\n Object.keys(this.interface.functions).forEach((signature) => {\n const fragment = this.interface.functions[signature];\n\n // Check that the signature is unique; if not the ABI generation has\n // not been cleaned or may be incorrectly generated\n if (uniqueSignatures[signature]) {\n logger.warn(`Duplicate ABI entry for ${ JSON.stringify(signature) }`);\n return;\n }\n uniqueSignatures[signature] = true;\n\n // Track unique names; we only expose bare named functions if they\n // are ambiguous\n {\n const name = fragment.name;\n if (!uniqueNames[`%${ name }`]) { uniqueNames[`%${ name }`] = [ ]; }\n uniqueNames[`%${ name }`].push(signature);\n }\n\n if ((this)[signature] == null) {\n defineReadOnly(this, signature, buildDefault(this, fragment, true));\n }\n\n // We do not collapse simple calls on this bucket, which allows\n // frameworks to safely use this without introspection as well as\n // allows decoding error recovery.\n if (this.functions[signature] == null) {\n defineReadOnly(this.functions, signature, buildDefault(this, fragment, false));\n }\n\n if (this.callStatic[signature] == null) {\n defineReadOnly(this.callStatic, signature, buildCall(this, fragment, true));\n }\n\n if (this.populateTransaction[signature] == null) {\n defineReadOnly(this.populateTransaction, signature, buildPopulate(this, fragment));\n }\n\n if (this.estimateGas[signature] == null) {\n defineReadOnly(this.estimateGas, signature, buildEstimate(this, fragment));\n }\n });\n\n Object.keys(uniqueNames).forEach((name) => {\n // Ambiguous names to not get attached as bare names\n const signatures = uniqueNames[name];\n if (signatures.length > 1) { return; }\n\n // Strip off the leading \"%\" used for prototype protection\n name = name.substring(1);\n\n const signature = signatures[0];\n\n // If overwriting a member property that is null, swallow the error\n try {\n if ((this)[name] == null) {\n defineReadOnly(this, name, (this)[signature]);\n }\n } catch (e) { }\n\n if (this.functions[name] == null) {\n defineReadOnly(this.functions, name, this.functions[signature]);\n }\n\n if (this.callStatic[name] == null) {\n defineReadOnly(this.callStatic, name, this.callStatic[signature]);\n }\n\n if (this.populateTransaction[name] == null) {\n defineReadOnly(this.populateTransaction, name, this.populateTransaction[signature]);\n }\n\n if (this.estimateGas[name] == null) {\n defineReadOnly(this.estimateGas, name, this.estimateGas[signature]);\n }\n });\n }\n\n static getContractAddress(transaction: { from: string, nonce: BigNumberish }): string {\n return getContractAddress(transaction);\n }\n\n static getInterface(contractInterface: ContractInterface): Interface {\n if (Interface.isInterface(contractInterface)) {\n return contractInterface;\n }\n return new Interface(contractInterface);\n }\n\n // @TODO: Allow timeout?\n deployed(): Promise {\n return this._deployed();\n }\n\n _deployed(blockTag?: BlockTag): Promise {\n if (!this._deployedPromise) {\n\n // If we were just deployed, we know the transaction we should occur in\n if (this.deployTransaction) {\n this._deployedPromise = this.deployTransaction.wait().then(() => {\n return this;\n });\n\n } else {\n // @TODO: Once we allow a timeout to be passed in, we will wait\n // up to that many blocks for getCode\n\n // Otherwise, poll for our code to be deployed\n this._deployedPromise = this.provider.getCode(this.address, blockTag).then((code) => {\n if (code === \"0x\") {\n logger.throwError(\"contract not deployed\", Logger.errors.UNSUPPORTED_OPERATION, {\n contractAddress: this.address,\n operation: \"getDeployed\"\n });\n }\n return this;\n });\n }\n }\n\n return this._deployedPromise;\n }\n\n // @TODO:\n // estimateFallback(overrides?: TransactionRequest): Promise\n\n // @TODO:\n // estimateDeploy(bytecode: string, ...args): Promise\n\n fallback(overrides?: TransactionRequest): Promise {\n if (!this.signer) {\n logger.throwError(\"sending a transactions require a signer\", Logger.errors.UNSUPPORTED_OPERATION, { operation: \"sendTransaction(fallback)\" })\n }\n\n const tx: Deferrable = shallowCopy(overrides || {});\n\n [\"from\", \"to\"].forEach(function(key) {\n if ((tx)[key] == null) { return; }\n logger.throwError(\"cannot override \" + key, Logger.errors.UNSUPPORTED_OPERATION, { operation: key })\n });\n\n tx.to = this.resolvedAddress;\n return this.deployed().then(() => {\n return this.signer.sendTransaction(tx);\n });\n }\n\n // Reconnect to a different signer or provider\n connect(signerOrProvider: Signer | Provider | string): Contract {\n if (typeof(signerOrProvider) === \"string\") {\n signerOrProvider = new VoidSigner(signerOrProvider, this.provider);\n }\n\n const contract = new (<{ new(...args: any[]): Contract }>(this.constructor))(this.address, this.interface, signerOrProvider);\n if (this.deployTransaction) {\n defineReadOnly(contract, \"deployTransaction\", this.deployTransaction);\n }\n\n return contract;\n }\n\n // Re-attach to a different on-chain instance of this contract\n attach(addressOrName: string): Contract {\n return new (<{ new(...args: any[]): Contract }>(this.constructor))(addressOrName, this.interface, this.signer || this.provider);\n }\n\n static isIndexed(value: any): value is Indexed {\n return Indexed.isIndexed(value);\n }\n\n private _normalizeRunningEvent(runningEvent: RunningEvent): RunningEvent {\n // Already have an instance of this event running; we can re-use it\n if (this._runningEvents[runningEvent.tag]) {\n return this._runningEvents[runningEvent.tag];\n }\n return runningEvent\n }\n\n private _getRunningEvent(eventName: EventFilter | string): RunningEvent {\n if (typeof(eventName) === \"string\") {\n\n // Listen for \"error\" events (if your contract has an error event, include\n // the full signature to bypass this special event keyword)\n if (eventName === \"error\") {\n return this._normalizeRunningEvent(new ErrorRunningEvent());\n }\n\n // Listen for any event that is registered\n if (eventName === \"event\") {\n return this._normalizeRunningEvent(new RunningEvent(\"event\", null));\n }\n\n // Listen for any event\n if (eventName === \"*\") {\n return this._normalizeRunningEvent(new WildcardRunningEvent(this.address, this.interface));\n }\n\n // Get the event Fragment (throws if ambiguous/unknown event)\n const fragment = this.interface.getEvent(eventName)\n return this._normalizeRunningEvent(new FragmentRunningEvent(this.address, this.interface, fragment));\n }\n\n // We have topics to filter by...\n if (eventName.topics && eventName.topics.length > 0) {\n\n // Is it a known topichash? (throws if no matching topichash)\n try {\n const topic = eventName.topics[0];\n if (typeof(topic) !== \"string\") {\n throw new Error(\"invalid topic\"); // @TODO: May happen for anonymous events\n }\n const fragment = this.interface.getEvent(topic);\n return this._normalizeRunningEvent(new FragmentRunningEvent(this.address, this.interface, fragment, eventName.topics));\n } catch (error) { }\n\n // Filter by the unknown topichash\n const filter: EventFilter = {\n address: this.address,\n topics: eventName.topics\n }\n\n return this._normalizeRunningEvent(new RunningEvent(getEventTag(filter), filter));\n }\n\n return this._normalizeRunningEvent(new WildcardRunningEvent(this.address, this.interface));\n }\n\n _checkRunningEvents(runningEvent: RunningEvent): void {\n if (runningEvent.listenerCount() === 0) {\n delete this._runningEvents[runningEvent.tag];\n\n // If we have a poller for this, remove it\n const emit = this._wrappedEmits[runningEvent.tag];\n if (emit && runningEvent.filter) {\n this.provider.off(runningEvent.filter, emit);\n delete this._wrappedEmits[runningEvent.tag];\n }\n }\n }\n\n // Subclasses can override this to gracefully recover\n // from parse errors if they wish\n _wrapEvent(runningEvent: RunningEvent, log: Log, listener: Listener): Event {\n const event = deepCopy(log);\n\n event.removeListener = () => {\n if (!listener) { return; }\n runningEvent.removeListener(listener);\n this._checkRunningEvents(runningEvent);\n };\n\n event.getBlock = () => { return this.provider.getBlock(log.blockHash); }\n event.getTransaction = () => { return this.provider.getTransaction(log.transactionHash); }\n event.getTransactionReceipt = () => { return this.provider.getTransactionReceipt(log.transactionHash); }\n\n // This may throw if the topics and data mismatch the signature\n runningEvent.prepareEvent(event);\n\n return event;\n }\n\n private _addEventListener(runningEvent: RunningEvent, listener: Listener, once: boolean): void {\n if (!this.provider) {\n logger.throwError(\"events require a provider or a signer with a provider\", Logger.errors.UNSUPPORTED_OPERATION, { operation: \"once\" })\n }\n\n runningEvent.addListener(listener, once);\n\n // Track this running event and its listeners (may already be there; but no hard in updating)\n this._runningEvents[runningEvent.tag] = runningEvent;\n\n // If we are not polling the provider, start polling\n if (!this._wrappedEmits[runningEvent.tag]) {\n const wrappedEmit = (log: Log) => {\n let event = this._wrapEvent(runningEvent, log, listener);\n\n // Try to emit the result for the parameterized event...\n if (event.decodeError == null) {\n try {\n const args = runningEvent.getEmit(event);\n this.emit(runningEvent.filter, ...args);\n } catch (error) {\n event.decodeError = error.error;\n }\n }\n\n // Always emit \"event\" for fragment-base events\n if (runningEvent.filter != null) {\n this.emit(\"event\", event);\n }\n\n // Emit \"error\" if there was an error\n if (event.decodeError != null) {\n this.emit(\"error\", event.decodeError, event);\n }\n };\n this._wrappedEmits[runningEvent.tag] = wrappedEmit;\n\n // Special events, like \"error\" do not have a filter\n if (runningEvent.filter != null) {\n this.provider.on(runningEvent.filter, wrappedEmit);\n }\n }\n }\n\n queryFilter(event: EventFilter | string, fromBlockOrBlockhash?: BlockTag | string, toBlock?: BlockTag): Promise> {\n const runningEvent = this._getRunningEvent(event);\n const filter = shallowCopy(runningEvent.filter);\n\n if (typeof(fromBlockOrBlockhash) === \"string\" && isHexString(fromBlockOrBlockhash, 32)) {\n if (toBlock != null) {\n logger.throwArgumentError(\"cannot specify toBlock with blockhash\", \"toBlock\", toBlock);\n }\n (filter).blockHash = fromBlockOrBlockhash;\n } else {\n (filter).fromBlock = ((fromBlockOrBlockhash != null) ? fromBlockOrBlockhash: 0);\n (filter).toBlock = ((toBlock != null) ? toBlock: \"latest\");\n }\n\n return this.provider.getLogs(filter).then((logs) => {\n return logs.map((log) => this._wrapEvent(runningEvent, log, null));\n });\n }\n\n on(event: EventFilter | string, listener: Listener): this {\n this._addEventListener(this._getRunningEvent(event), listener, false);\n return this;\n }\n\n once(event: EventFilter | string, listener: Listener): this {\n this._addEventListener(this._getRunningEvent(event), listener, true);\n return this;\n }\n\n emit(eventName: EventFilter | string, ...args: Array): boolean {\n if (!this.provider) { return false; }\n\n const runningEvent = this._getRunningEvent(eventName);\n const result = (runningEvent.run(args) > 0);\n\n // May have drained all the \"once\" events; check for living events\n this._checkRunningEvents(runningEvent);\n\n return result;\n }\n\n listenerCount(eventName?: EventFilter | string): number {\n if (!this.provider) { return 0; }\n if (eventName == null) {\n return Object.keys(this._runningEvents).reduce((accum, key) => {\n return accum + this._runningEvents[key].listenerCount();\n }, 0);\n }\n return this._getRunningEvent(eventName).listenerCount();\n }\n\n listeners(eventName?: EventFilter | string): Array {\n if (!this.provider) { return []; }\n\n if (eventName == null) {\n const result: Array = [ ];\n for (let tag in this._runningEvents) {\n this._runningEvents[tag].listeners().forEach((listener) => {\n result.push(listener)\n });\n }\n return result;\n }\n\n return this._getRunningEvent(eventName).listeners();\n }\n\n removeAllListeners(eventName?: EventFilter | string): this {\n if (!this.provider) { return this; }\n\n if (eventName == null) {\n for (const tag in this._runningEvents) {\n const runningEvent = this._runningEvents[tag];\n runningEvent.removeAllListeners();\n this._checkRunningEvents(runningEvent);\n }\n return this;\n }\n\n // Delete any listeners\n const runningEvent = this._getRunningEvent(eventName);\n runningEvent.removeAllListeners();\n this._checkRunningEvents(runningEvent);\n\n return this;\n }\n\n off(eventName: EventFilter | string, listener: Listener): this {\n if (!this.provider) { return this; }\n const runningEvent = this._getRunningEvent(eventName);\n runningEvent.removeListener(listener);\n this._checkRunningEvents(runningEvent);\n return this;\n }\n\n removeListener(eventName: EventFilter | string, listener: Listener): this {\n return this.off(eventName, listener);\n }\n\n}\n\nexport class Contract extends BaseContract {\n // The meta-class properties\n readonly [ key: string ]: ContractFunction | any;\n}\n\nexport class ContractFactory {\n\n readonly interface: Interface;\n readonly bytecode: string;\n readonly signer: Signer;\n\n constructor(contractInterface: ContractInterface, bytecode: BytesLike | { object: string }, signer?: Signer) {\n\n let bytecodeHex: string = null;\n\n if (typeof(bytecode) === \"string\") {\n bytecodeHex = bytecode;\n } else if (isBytes(bytecode)) {\n bytecodeHex = hexlify(bytecode);\n } else if (bytecode && typeof(bytecode.object) === \"string\") {\n // Allow the bytecode object from the Solidity compiler\n bytecodeHex = (bytecode).object;\n } else {\n // Crash in the next verification step\n bytecodeHex = \"!\";\n }\n\n // Make sure it is 0x prefixed\n if (bytecodeHex.substring(0, 2) !== \"0x\") { bytecodeHex = \"0x\" + bytecodeHex; }\n\n // Make sure the final result is valid bytecode\n if (!isHexString(bytecodeHex) || (bytecodeHex.length % 2)) {\n logger.throwArgumentError(\"invalid bytecode\", \"bytecode\", bytecode);\n }\n\n // If we have a signer, make sure it is valid\n if (signer && !Signer.isSigner(signer)) {\n logger.throwArgumentError(\"invalid signer\", \"signer\", signer);\n }\n\n defineReadOnly(this, \"bytecode\", bytecodeHex);\n defineReadOnly(this, \"interface\", getStatic(new.target, \"getInterface\")(contractInterface));\n defineReadOnly(this, \"signer\", signer || null);\n }\n\n // @TODO: Future; rename to populateTransaction?\n getDeployTransaction(...args: Array): TransactionRequest {\n let tx: TransactionRequest = { };\n\n // If we have 1 additional argument, we allow transaction overrides\n if (args.length === this.interface.deploy.inputs.length + 1 && typeof(args[args.length - 1]) === \"object\") {\n tx = shallowCopy(args.pop());\n for (const key in tx) {\n if (!allowedTransactionKeys[key]) {\n throw new Error(\"unknown transaction override \" + key);\n }\n }\n }\n\n // Do not allow these to be overridden in a deployment transaction\n [\"data\", \"from\", \"to\"].forEach((key) => {\n if ((tx)[key] == null) { return; }\n logger.throwError(\"cannot override \" + key, Logger.errors.UNSUPPORTED_OPERATION, { operation: key })\n });\n\n if (tx.value) {\n const value = BigNumber.from(tx.value);\n if (!value.isZero() && !this.interface.deploy.payable) {\n logger.throwError(\"non-payable constructor cannot override value\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"overrides.value\",\n value: tx.value\n });\n }\n }\n\n // Make sure the call matches the constructor signature\n logger.checkArgumentCount(args.length, this.interface.deploy.inputs.length, \" in Contract constructor\");\n\n // Set the data to the bytecode + the encoded constructor arguments\n tx.data = hexlify(concat([\n this.bytecode,\n this.interface.encodeDeploy(args)\n ]));\n\n return tx\n }\n\n async deploy(...args: Array): Promise {\n\n let overrides: any = { };\n\n // If 1 extra parameter was passed in, it contains overrides\n if (args.length === this.interface.deploy.inputs.length + 1) {\n overrides = args.pop();\n }\n\n // Make sure the call matches the constructor signature\n logger.checkArgumentCount(args.length, this.interface.deploy.inputs.length, \" in Contract constructor\");\n\n // Resolve ENS names and promises in the arguments\n const params = await resolveAddresses(this.signer, args, this.interface.deploy.inputs);\n params.push(overrides);\n\n // Get the deployment transaction (with optional overrides)\n const unsignedTx = this.getDeployTransaction(...params);\n\n // Send the deployment transaction\n const tx = await this.signer.sendTransaction(unsignedTx);\n\n const address = getStatic<(tx: TransactionResponse) => string>(this.constructor, \"getContractAddress\")(tx);\n const contract = getStatic<(address: string, contractInterface: ContractInterface, signer?: Signer) => Contract>(this.constructor, \"getContract\")(address, this.interface, this.signer);\n\n // Add the modified wait that wraps events\n addContractWait(contract, tx);\n\n defineReadOnly(contract, \"deployTransaction\", tx);\n return contract;\n }\n\n attach(address: string): Contract {\n return ((this.constructor)).getContract(address, this.interface, this.signer);\n }\n\n connect(signer: Signer) {\n return new (<{ new(...args: any[]): ContractFactory }>(this.constructor))(this.interface, this.bytecode, signer);\n }\n\n static fromSolidity(compilerOutput: any, signer?: Signer): ContractFactory {\n if (compilerOutput == null) {\n logger.throwError(\"missing compiler output\", Logger.errors.MISSING_ARGUMENT, { argument: \"compilerOutput\" });\n }\n\n if (typeof(compilerOutput) === \"string\") {\n compilerOutput = JSON.parse(compilerOutput);\n }\n\n const abi = compilerOutput.abi;\n\n let bytecode: any = null;\n if (compilerOutput.bytecode) {\n bytecode = compilerOutput.bytecode;\n } else if (compilerOutput.evm && compilerOutput.evm.bytecode) {\n bytecode = compilerOutput.evm.bytecode;\n }\n\n return new this(abi, bytecode, signer);\n }\n\n static getInterface(contractInterface: ContractInterface) {\n return Contract.getInterface(contractInterface);\n }\n\n static getContractAddress(tx: { from: string, nonce: BytesLike | BigNumber | number }): string {\n return getContractAddress(tx);\n }\n\n static getContract(address: string, contractInterface: ContractInterface, signer?: Signer): Contract {\n return new Contract(address, contractInterface, signer);\n }\n}\n", "/**\n * var basex = require(\"base-x\");\n *\n * This implementation is heavily based on base-x. The main reason to\n * deviate was to prevent the dependency of Buffer.\n *\n * Contributors:\n *\n * base-x encoding\n * Forked from https://github.com/cryptocoinjs/bs58\n * Originally written by Mike Hearn for BitcoinJ\n * Copyright (c) 2011 Google Inc\n * Ported to JavaScript by Stefan Thomas\n * Merged Buffer refactorings from base58-native by Stephen Pair\n * Copyright (c) 2013 BitPay Inc\n *\n * The MIT License (MIT)\n *\n * Copyright base-x contributors (c) 2016\n *\n * Permission is hereby granted, free of charge, to any person obtaining a\n * copy of this software and associated documentation files (the \"Software\"),\n * to deal in the Software without restriction, including without limitation\n * the rights to use, copy, modify, merge, publish, distribute, sublicense,\n * and/or sell copies of the Software, and to permit persons to whom the\n * Software is furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n *\n */\n\nimport { arrayify, BytesLike } from \"@ethersproject/bytes\";\nimport { defineReadOnly } from \"@ethersproject/properties\";\n\nexport class BaseX {\n readonly alphabet: string;\n readonly base: number;\n\n _alphabetMap: { [ character: string ]: number };\n _leader: string;\n\n constructor(alphabet: string) {\n defineReadOnly(this, \"alphabet\", alphabet);\n defineReadOnly(this, \"base\", alphabet.length);\n\n defineReadOnly(this, \"_alphabetMap\", { });\n defineReadOnly(this, \"_leader\", alphabet.charAt(0));\n\n // pre-compute lookup table\n for (let i = 0; i < alphabet.length; i++) {\n this._alphabetMap[alphabet.charAt(i)] = i;\n }\n }\n\n encode(value: BytesLike): string {\n let source = arrayify(value);\n\n if (source.length === 0) { return \"\"; }\n\n let digits = [ 0 ]\n for (let i = 0; i < source.length; ++i) {\n let carry = source[i];\n for (let j = 0; j < digits.length; ++j) {\n carry += digits[j] << 8;\n digits[j] = carry % this.base;\n carry = (carry / this.base) | 0;\n }\n\n while (carry > 0) {\n digits.push(carry % this.base);\n carry = (carry / this.base) | 0;\n }\n }\n\n let string = \"\"\n\n // deal with leading zeros\n for (let k = 0; source[k] === 0 && k < source.length - 1; ++k) {\n string += this._leader;\n }\n\n // convert digits to a string\n for (let q = digits.length - 1; q >= 0; --q) {\n string += this.alphabet[digits[q]];\n }\n\n return string;\n }\n\n decode(value: string): Uint8Array {\n if (typeof(value) !== \"string\") {\n throw new TypeError(\"Expected String\");\n }\n\n let bytes: Array = [];\n if (value.length === 0) { return new Uint8Array(bytes); }\n\n bytes.push(0);\n for (let i = 0; i < value.length; i++) {\n let byte = this._alphabetMap[value[i]];\n\n if (byte === undefined) {\n throw new Error(\"Non-base\" + this.base + \" character\");\n }\n\n let carry = byte;\n for (let j = 0; j < bytes.length; ++j) {\n carry += bytes[j] * this.base;\n bytes[j] = carry & 0xff;\n carry >>= 8;\n }\n\n while (carry > 0) {\n bytes.push(carry & 0xff);\n carry >>= 8;\n }\n }\n\n // deal with leading zeros\n for (let k = 0; value[k] === this._leader && k < value.length - 1; ++k) {\n bytes.push(0)\n }\n\n return arrayify(new Uint8Array(bytes.reverse()))\n }\n}\n\nconst Base32 = new BaseX(\"abcdefghijklmnopqrstuvwxyz234567\");\nconst Base58 = new BaseX(\"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz\");\n\nexport { Base32, Base58 };\n\n//console.log(Base58.decode(\"Qmd2V777o5XvJbYMeMb8k2nU5f8d3ciUQ5YpYuWhzv8iDj\"))\n//console.log(Base58.encode(Base58.decode(\"Qmd2V777o5XvJbYMeMb8k2nU5f8d3ciUQ5YpYuWhzv8iDj\")))\n", "\"use strict\";\n\nimport { pbkdf2Sync as _pbkdf2 } from \"crypto\";\n\nimport { arrayify, BytesLike, hexlify } from \"@ethersproject/bytes\";\n\n\nfunction bufferify(value: BytesLike): Buffer {\n return Buffer.from(arrayify(value));\n}\n\nexport function pbkdf2(password: BytesLike, salt: BytesLike, iterations: number, keylen: number, hashAlgorithm: string): string {\n return hexlify(_pbkdf2(bufferify(password), bufferify(salt), iterations, keylen, hashAlgorithm));\n}\n", "\nexport { pbkdf2 } from \"./pbkdf2\";\n", "export enum SupportedAlgorithm { sha256 = \"sha256\", sha512 = \"sha512\" };\n\n", "export const version = \"sha2/5.7.0\";\n", "\"use strict\";\n\nimport { createHash, createHmac } from \"crypto\";\n\nimport hash from \"hash.js\";\n\nimport { arrayify, BytesLike } from \"@ethersproject/bytes\";\n\nimport { SupportedAlgorithm } from \"./types\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\nexport function ripemd160(data: BytesLike): string {\n return \"0x\" + (hash.ripemd160().update(arrayify(data)).digest(\"hex\"));\n}\n\nexport function sha256(data: BytesLike): string {\n return \"0x\" + createHash(\"sha256\").update(Buffer.from(arrayify(data))).digest(\"hex\")\n}\n\nexport function sha512(data: BytesLike): string {\n return \"0x\" + createHash(\"sha512\").update(Buffer.from(arrayify(data))).digest(\"hex\")\n}\n\nexport function computeHmac(algorithm: SupportedAlgorithm, key: BytesLike, data: BytesLike): string {\n /* istanbul ignore if */\n if (!SupportedAlgorithm[algorithm]) {\n logger.throwError(\"unsupported algorithm - \" + algorithm, Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"computeHmac\",\n algorithm: algorithm\n });\n }\n\n return \"0x\" + createHmac(algorithm, Buffer.from(arrayify(key))).update(Buffer.from(arrayify(data))).digest(\"hex\");\n}\n\n", "import { computeHmac, ripemd160, sha256, sha512 } from \"./sha2\";\n\nimport { SupportedAlgorithm } from \"./types\";\n\nexport {\n computeHmac,\n\n ripemd160,\n\n sha256,\n sha512,\n\n SupportedAlgorithm\n}\n", "export const version = \"wordlists/5.7.0\";\n", "\"use strict\";\n\n// This gets overridden by rollup\nconst exportWordlist = false;\n\nimport { id } from \"@ethersproject/hash\";\nimport { defineReadOnly } from \"@ethersproject/properties\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nexport const logger = new Logger(version);\n\nexport abstract class Wordlist {\n readonly locale: string;\n\n constructor(locale: string) {\n logger.checkAbstract(new.target, Wordlist);\n defineReadOnly(this, \"locale\", locale);\n }\n\n abstract getWord(index: number): string;\n abstract getWordIndex(word: string): number;\n\n // Subclasses may override this\n split(mnemonic: string): Array {\n return mnemonic.toLowerCase().split(/ +/g)\n }\n\n // Subclasses may override this\n join(words: Array): string {\n return words.join(\" \");\n }\n\n static check(wordlist: Wordlist): string {\n const words = [];\n for (let i = 0; i < 2048; i++) {\n const word = wordlist.getWord(i);\n /* istanbul ignore if */\n if (i !== wordlist.getWordIndex(word)) { return \"0x\"; }\n words.push(word);\n }\n return id(words.join(\"\\n\") + \"\\n\");\n }\n\n static register(lang: Wordlist, name?: string): void {\n if (!name) { name = lang.locale; }\n\n /* istanbul ignore if */\n if (exportWordlist) {\n try {\n const anyGlobal = (window as any)\n if (anyGlobal._ethers && anyGlobal._ethers.wordlists) {\n if (!anyGlobal._ethers.wordlists[name]) {\n defineReadOnly(anyGlobal._ethers.wordlists, name, lang);\n }\n }\n } catch (error) { }\n }\n }\n\n}\n\n", "\"use strict\";\n\nimport { Wordlist } from \"./wordlist\";\n\nconst words = \"AbdikaceAbecedaAdresaAgreseAkceAktovkaAlejAlkoholAmputaceAnanasAndulkaAnekdotaAnketaAntikaAnulovatArchaAroganceAsfaltAsistentAspiraceAstmaAstronomAtlasAtletikaAtolAutobusAzylBabkaBachorBacilBaculkaBadatelBagetaBagrBahnoBakterieBaladaBaletkaBalkonBalonekBalvanBalzaBambusBankomatBarbarBaretBarmanBarokoBarvaBaterkaBatohBavlnaBazalkaBazilikaBazukaBednaBeranBesedaBestieBetonBezinkaBezmocBeztakBicyklBidloBiftekBikinyBilanceBiografBiologBitvaBizonBlahobytBlatouchBlechaBleduleBleskBlikatBliznaBlokovatBlouditBludBobekBobrBodlinaBodnoutBohatostBojkotBojovatBokorysBolestBorecBoroviceBotaBoubelBouchatBoudaBouleBouratBoxerBradavkaBramboraBrankaBratrBreptaBriketaBrkoBrlohBronzBroskevBrunetkaBrusinkaBrzdaBrzyBublinaBubnovatBuchtaBuditelBudkaBudovaBufetBujarostBukviceBuldokBulvaBundaBunkrBurzaButikBuvolBuzolaBydletBylinaBytovkaBzukotCapartCarevnaCedrCeduleCejchCejnCelaCelerCelkemCelniceCeninaCennostCenovkaCentrumCenzorCestopisCetkaChalupaChapadloCharitaChataChechtatChemieChichotChirurgChladChlebaChlubitChmelChmuraChobotChocholChodbaCholeraChomoutChopitChorobaChovChrapotChrlitChrtChrupChtivostChudinaChutnatChvatChvilkaChvostChybaChystatChytitCibuleCigaretaCihelnaCihlaCinkotCirkusCisternaCitaceCitrusCizinecCizostClonaCokolivCouvatCtitelCtnostCudnostCuketaCukrCupotCvaknoutCvalCvikCvrkotCyklistaDalekoDarebaDatelDatumDceraDebataDechovkaDecibelDeficitDeflaceDeklDekretDemokratDepreseDerbyDeskaDetektivDikobrazDiktovatDiodaDiplomDiskDisplejDivadloDivochDlahaDlouhoDluhopisDnesDobroDobytekDocentDochutitDodnesDohledDohodaDohraDojemDojniceDokladDokolaDoktorDokumentDolarDolevaDolinaDomaDominantDomluvitDomovDonutitDopadDopisDoplnitDoposudDoprovodDopustitDorazitDorostDortDosahDoslovDostatekDosudDosytaDotazDotekDotknoutDoufatDoutnatDovozceDozaduDoznatDozorceDrahotaDrakDramatikDravecDrazeDrdolDrobnostDrogerieDrozdDrsnostDrtitDrzostDubenDuchovnoDudekDuhaDuhovkaDusitDusnoDutostDvojiceDvorecDynamitEkologEkonomieElektronElipsaEmailEmiseEmoceEmpatieEpizodaEpochaEpopejEposEsejEsenceEskortaEskymoEtiketaEuforieEvoluceExekuceExkurzeExpediceExplozeExportExtraktFackaFajfkaFakultaFanatikFantazieFarmacieFavoritFazoleFederaceFejetonFenkaFialkaFigurantFilozofFiltrFinanceFintaFixaceFjordFlanelFlirtFlotilaFondFosforFotbalFotkaFotonFrakceFreskaFrontaFukarFunkceFyzikaGalejeGarantGenetikaGeologGilotinaGlazuraGlejtGolemGolfistaGotikaGrafGramofonGranuleGrepGrilGrogGroteskaGumaHadiceHadrHalaHalenkaHanbaHanopisHarfaHarpunaHavranHebkostHejkalHejnoHejtmanHektarHelmaHematomHerecHernaHesloHezkyHistorikHladovkaHlasivkyHlavaHledatHlenHlodavecHlohHloupostHltatHlubinaHluchotaHmatHmotaHmyzHnisHnojivoHnoutHoblinaHobojHochHodinyHodlatHodnotaHodovatHojnostHokejHolinkaHolkaHolubHomoleHonitbaHonoraceHoralHordaHorizontHorkoHorlivecHormonHorninaHoroskopHorstvoHospodaHostinaHotovostHoubaHoufHoupatHouskaHovorHradbaHraniceHravostHrazdaHrbolekHrdinaHrdloHrdostHrnekHrobkaHromadaHrotHroudaHrozenHrstkaHrubostHryzatHubenostHubnoutHudbaHukotHumrHusitaHustotaHvozdHybnostHydrantHygienaHymnaHysterikIdylkaIhnedIkonaIluzeImunitaInfekceInflaceInkasoInovaceInspekceInternetInvalidaInvestorInzerceIronieJablkoJachtaJahodaJakmileJakostJalovecJantarJarmarkJaroJasanJasnoJatkaJavorJazykJedinecJedleJednatelJehlanJekotJelenJelitoJemnostJenomJepiceJeseterJevitJezdecJezeroJinakJindyJinochJiskraJistotaJitrniceJizvaJmenovatJogurtJurtaKabaretKabelKabinetKachnaKadetKadidloKahanKajakKajutaKakaoKaktusKalamitaKalhotyKalibrKalnostKameraKamkolivKamnaKanibalKanoeKantorKapalinaKapelaKapitolaKapkaKapleKapotaKaprKapustaKapybaraKaramelKarotkaKartonKasaKatalogKatedraKauceKauzaKavalecKazajkaKazetaKazivostKdekolivKdesiKedlubenKempKeramikaKinoKlacekKladivoKlamKlapotKlasikaKlaunKlecKlenbaKlepatKlesnoutKlidKlimaKlisnaKloboukKlokanKlopaKloubKlubovnaKlusatKluzkostKmenKmitatKmotrKnihaKnotKoaliceKoberecKobkaKoblihaKobylaKocourKohoutKojenecKokosKoktejlKolapsKoledaKolizeKoloKomandoKometaKomikKomnataKomoraKompasKomunitaKonatKonceptKondiceKonecKonfeseKongresKoninaKonkursKontaktKonzervaKopanecKopieKopnoutKoprovkaKorbelKorektorKormidloKoroptevKorpusKorunaKorytoKorzetKosatecKostkaKotelKotletaKotoulKoukatKoupelnaKousekKouzloKovbojKozaKozorohKrabiceKrachKrajinaKralovatKrasopisKravataKreditKrejcarKresbaKrevetaKriketKritikKrizeKrkavecKrmelecKrmivoKrocanKrokKronikaKropitKroupaKrovkaKrtekKruhadloKrupiceKrutostKrvinkaKrychleKryptaKrystalKrytKudlankaKufrKujnostKuklaKulajdaKulichKulkaKulometKulturaKunaKupodivuKurtKurzorKutilKvalitaKvasinkaKvestorKynologKyselinaKytaraKyticeKytkaKytovecKyvadloLabradorLachtanLadnostLaikLakomecLamelaLampaLanovkaLasiceLasoLasturaLatinkaLavinaLebkaLeckdyLedenLedniceLedovkaLedvinaLegendaLegieLegraceLehceLehkostLehnoutLektvarLenochodLentilkaLepenkaLepidloLetadloLetecLetmoLetokruhLevhartLevitaceLevobokLibraLichotkaLidojedLidskostLihovinaLijavecLilekLimetkaLinieLinkaLinoleumListopadLitinaLitovatLobistaLodivodLogikaLogopedLokalitaLoketLomcovatLopataLopuchLordLososLotrLoudalLouhLoukaLouskatLovecLstivostLucernaLuciferLumpLuskLustraceLviceLyraLyrikaLysinaMadamMadloMagistrMahagonMajetekMajitelMajoritaMakakMakoviceMakrelaMalbaMalinaMalovatMalviceMaminkaMandleMankoMarnostMasakrMaskotMasopustMaticeMatrikaMaturitaMazanecMazivoMazlitMazurkaMdlobaMechanikMeditaceMedovinaMelasaMelounMentolkaMetlaMetodaMetrMezeraMigraceMihnoutMihuleMikinaMikrofonMilenecMilimetrMilostMimikaMincovnaMinibarMinometMinulostMiskaMistrMixovatMladostMlhaMlhovinaMlokMlsatMluvitMnichMnohemMobilMocnostModelkaModlitbaMohylaMokroMolekulaMomentkaMonarchaMonoklMonstrumMontovatMonzunMosazMoskytMostMotivaceMotorkaMotykaMouchaMoudrostMozaikaMozekMozolMramorMravenecMrkevMrtvolaMrzetMrzutostMstitelMudrcMuflonMulatMumieMuniceMusetMutaceMuzeumMuzikantMyslivecMzdaNabouratNachytatNadaceNadbytekNadhozNadobroNadpisNahlasNahnatNahodileNahraditNaivitaNajednouNajistoNajmoutNaklonitNakonecNakrmitNalevoNamazatNamluvitNanometrNaokoNaopakNaostroNapadatNapevnoNaplnitNapnoutNaposledNaprostoNaroditNarubyNarychloNasaditNasekatNaslepoNastatNatolikNavenekNavrchNavzdoryNazvatNebeNechatNeckyNedalekoNedbatNeduhNegaceNehetNehodaNejenNejprveNeklidNelibostNemilostNemocNeochotaNeonkaNepokojNerostNervNesmyslNesouladNetvorNeuronNevinaNezvykleNicotaNijakNikamNikdyNiklNikterakNitroNoclehNohaviceNominaceNoraNorekNositelNosnostNouzeNovinyNovotaNozdraNudaNudleNugetNutitNutnostNutrieNymfaObalObarvitObavaObdivObecObehnatObejmoutObezitaObhajobaObilniceObjasnitObjektObklopitOblastOblekOblibaOblohaObludaObnosObohatitObojekOboutObrazecObrnaObrubaObrysObsahObsluhaObstaratObuvObvazObvinitObvodObvykleObyvatelObzorOcasOcelOcenitOchladitOchotaOchranaOcitnoutOdbojOdbytOdchodOdcizitOdebratOdeslatOdevzdatOdezvaOdhadceOdhoditOdjetOdjinudOdkazOdkoupitOdlivOdlukaOdmlkaOdolnostOdpadOdpisOdploutOdporOdpustitOdpykatOdrazkaOdsouditOdstupOdsunOdtokOdtudOdvahaOdvetaOdvolatOdvracetOdznakOfinaOfsajdOhlasOhniskoOhradaOhrozitOhryzekOkapOkeniceOklikaOknoOkouzlitOkovyOkrasaOkresOkrsekOkruhOkupantOkurkaOkusitOlejninaOlizovatOmakOmeletaOmezitOmladinaOmlouvatOmluvaOmylOnehdyOpakovatOpasekOperaceOpiceOpilostOpisovatOporaOpoziceOpravduOprotiOrbitalOrchestrOrgieOrliceOrlojOrtelOsadaOschnoutOsikaOsivoOslavaOslepitOslnitOslovitOsnovaOsobaOsolitOspalecOstenOstrahaOstudaOstychOsvojitOteplitOtiskOtopOtrhatOtrlostOtrokOtrubyOtvorOvanoutOvarOvesOvlivnitOvoceOxidOzdobaPachatelPacientPadouchPahorekPaktPalandaPalecPalivoPalubaPamfletPamlsekPanenkaPanikaPannaPanovatPanstvoPantoflePaprikaParketaParodiePartaParukaParybaPasekaPasivitaPastelkaPatentPatronaPavoukPaznehtPazourekPeckaPedagogPejsekPekloPelotonPenaltaPendrekPenzePeriskopPeroPestrostPetardaPeticePetrolejPevninaPexesoPianistaPihaPijavicePiklePiknikPilinaPilnostPilulkaPinzetaPipetaPisatelPistolePitevnaPivnicePivovarPlacentaPlakatPlamenPlanetaPlastikaPlatitPlavidloPlazPlechPlemenoPlentaPlesPletivoPlevelPlivatPlnitPlnoPlochaPlodinaPlombaPloutPlukPlynPobavitPobytPochodPocitPoctivecPodatPodcenitPodepsatPodhledPodivitPodkladPodmanitPodnikPodobaPodporaPodrazPodstataPodvodPodzimPoeziePohankaPohnutkaPohovorPohromaPohybPointaPojistkaPojmoutPokazitPoklesPokojPokrokPokutaPokynPolednePolibekPolknoutPolohaPolynomPomaluPominoutPomlkaPomocPomstaPomysletPonechatPonorkaPonurostPopadatPopelPopisekPoplachPoprositPopsatPopudPoradcePorcePorodPoruchaPoryvPosaditPosedPosilaPoskokPoslanecPosouditPospoluPostavaPosudekPosypPotahPotkanPotleskPotomekPotravaPotupaPotvoraPoukazPoutoPouzdroPovahaPovidlaPovlakPovozPovrchPovstatPovykPovzdechPozdravPozemekPoznatekPozorPozvatPracovatPrahoryPraktikaPralesPraotecPraporekPrasePravdaPrincipPrknoProbuditProcentoProdejProfeseProhraProjektProlomitPromilePronikatPropadProrokProsbaProtonProutekProvazPrskavkaPrstenPrudkostPrutPrvekPrvohoryPsanecPsovodPstruhPtactvoPubertaPuchPudlPukavecPuklinaPukrlePultPumpaPuncPupenPusaPusinkaPustinaPutovatPutykaPyramidaPyskPytelRacekRachotRadiaceRadniceRadonRaftRagbyRaketaRakovinaRamenoRampouchRandeRarachRaritaRasovnaRastrRatolestRazanceRazidloReagovatReakceReceptRedaktorReferentReflexRejnokReklamaRekordRekrutRektorReputaceRevizeRevmaRevolverRezervaRiskovatRizikoRobotikaRodokmenRohovkaRokleRokokoRomanetoRopovodRopuchaRorejsRosolRostlinaRotmistrRotopedRotundaRoubenkaRouchoRoupRouraRovinaRovniceRozborRozchodRozdatRozeznatRozhodceRozinkaRozjezdRozkazRozlohaRozmarRozpadRozruchRozsahRoztokRozumRozvodRubrikaRuchadloRukaviceRukopisRybaRybolovRychlostRydloRypadloRytinaRyzostSadistaSahatSakoSamecSamizdatSamotaSanitkaSardinkaSasankaSatelitSazbaSazeniceSborSchovatSebrankaSeceseSedadloSedimentSedloSehnatSejmoutSekeraSektaSekundaSekvojeSemenoSenoServisSesaditSeshoraSeskokSeslatSestraSesuvSesypatSetbaSetinaSetkatSetnoutSetrvatSeverSeznamShodaShrnoutSifonSilniceSirkaSirotekSirupSituaceSkafandrSkaliskoSkanzenSkautSkeptikSkicaSkladbaSkleniceSkloSkluzSkobaSkokanSkoroSkriptaSkrzSkupinaSkvostSkvrnaSlabikaSladidloSlaninaSlastSlavnostSledovatSlepecSlevaSlezinaSlibSlinaSlizniceSlonSloupekSlovoSluchSluhaSlunceSlupkaSlzaSmaragdSmetanaSmilstvoSmlouvaSmogSmradSmrkSmrtkaSmutekSmyslSnadSnahaSnobSobotaSochaSodovkaSokolSopkaSotvaSoubojSoucitSoudceSouhlasSouladSoumrakSoupravaSousedSoutokSouvisetSpalovnaSpasitelSpisSplavSpodekSpojenecSpoluSponzorSpornostSpoustaSprchaSpustitSrandaSrazSrdceSrnaSrnecSrovnatSrpenSrstSrubStaniceStarostaStatikaStavbaStehnoStezkaStodolaStolekStopaStornoStoupatStrachStresStrhnoutStromStrunaStudnaStupniceStvolStykSubjektSubtropySucharSudostSuknoSundatSunoutSurikataSurovinaSvahSvalstvoSvetrSvatbaSvazekSvisleSvitekSvobodaSvodidloSvorkaSvrabSykavkaSykotSynekSynovecSypatSypkostSyrovostSyselSytostTabletkaTabuleTahounTajemnoTajfunTajgaTajitTajnostTaktikaTamhleTamponTancovatTanecTankerTapetaTaveninaTazatelTechnikaTehdyTekutinaTelefonTemnotaTendenceTenistaTenorTeplotaTepnaTeprveTerapieTermoskaTextilTichoTiskopisTitulekTkadlecTkaninaTlapkaTleskatTlukotTlupaTmelToaletaTopinkaTopolTorzoTouhaToulecTradiceTraktorTrampTrasaTraverzaTrefitTrestTrezorTrhavinaTrhlinaTrochuTrojiceTroskaTroubaTrpceTrpitelTrpkostTrubecTruchlitTruhliceTrusTrvatTudyTuhnoutTuhostTundraTuristaTurnajTuzemskoTvarohTvorbaTvrdostTvrzTygrTykevUbohostUbozeUbratUbrousekUbrusUbytovnaUchoUctivostUdivitUhraditUjednatUjistitUjmoutUkazatelUklidnitUklonitUkotvitUkrojitUliceUlitaUlovitUmyvadloUnavitUniformaUniknoutUpadnoutUplatnitUplynoutUpoutatUpravitUranUrazitUsednoutUsilovatUsmrtitUsnadnitUsnoutUsouditUstlatUstrnoutUtahovatUtkatUtlumitUtonoutUtopenecUtrousitUvalitUvolnitUvozovkaUzdravitUzelUzeninaUzlinaUznatVagonValchaValounVanaVandalVanilkaVaranVarhanyVarovatVcelkuVchodVdovaVedroVegetaceVejceVelbloudVeletrhVelitelVelmocVelrybaVenkovVerandaVerzeVeselkaVeskrzeVesniceVespoduVestaVeterinaVeverkaVibraceVichrVideohraVidinaVidleVilaViniceVisetVitalitaVizeVizitkaVjezdVkladVkusVlajkaVlakVlasecVlevoVlhkostVlivVlnovkaVloupatVnucovatVnukVodaVodivostVodoznakVodstvoVojenskyVojnaVojskoVolantVolbaVolitVolnoVoskovkaVozidloVozovnaVpravoVrabecVracetVrahVrataVrbaVrcholekVrhatVrstvaVrtuleVsaditVstoupitVstupVtipVybavitVybratVychovatVydatVydraVyfotitVyhledatVyhnoutVyhoditVyhraditVyhubitVyjasnitVyjetVyjmoutVyklopitVykonatVylekatVymazatVymezitVymizetVymysletVynechatVynikatVynutitVypadatVyplatitVypravitVypustitVyrazitVyrovnatVyrvatVyslovitVysokoVystavitVysunoutVysypatVytasitVytesatVytratitVyvinoutVyvolatVyvrhelVyzdobitVyznatVzaduVzbuditVzchopitVzdorVzduchVzdychatVzestupVzhledemVzkazVzlykatVznikVzorekVzpouraVztahVztekXylofonZabratZabydletZachovatZadarmoZadusitZafoukatZahltitZahoditZahradaZahynoutZajatecZajetZajistitZaklepatZakoupitZalepitZamezitZamotatZamysletZanechatZanikatZaplatitZapojitZapsatZarazitZastavitZasunoutZatajitZatemnitZatknoutZaujmoutZavalitZaveletZavinitZavolatZavrtatZazvonitZbavitZbrusuZbudovatZbytekZdalekaZdarmaZdatnostZdivoZdobitZdrojZdvihZdymadloZeleninaZemanZeminaZeptatZezaduZezdolaZhatitZhltnoutZhlubokaZhotovitZhrubaZimaZimniceZjemnitZklamatZkoumatZkratkaZkumavkaZlatoZlehkaZlobaZlomZlostZlozvykZmapovatZmarZmatekZmijeZmizetZmocnitZmodratZmrzlinaZmutovatZnakZnalostZnamenatZnovuZobrazitZotavitZoubekZoufaleZploditZpomalitZpravaZprostitZprudkaZprvuZradaZranitZrcadloZrnitostZrnoZrovnaZrychlitZrzavostZtichaZtratitZubovinaZubrZvednoutZvenkuZveselaZvonZvratZvukovodZvyk\";\n\nlet wordlist: Array = null;\n\nfunction loadWords(lang: Wordlist): void {\n if (wordlist != null) { return; }\n wordlist = words.replace(/([A-Z])/g, \" $1\").toLowerCase().substring(1).split(\" \");\n\n // Verify the computed list matches the official list\n /* istanbul ignore if */\n if (Wordlist.check(lang) !== \"0x25f44555f4af25b51a711136e1c7d6e50ce9f8917d39d6b1f076b2bb4d2fac1a\") {\n wordlist = null;\n throw new Error(\"BIP39 Wordlist for en (English) FAILED\");\n }\n}\n\nclass LangCz extends Wordlist {\n constructor() {\n super(\"cz\");\n }\n\n getWord(index: number): string {\n loadWords(this);\n return wordlist[index];\n }\n\n getWordIndex(word: string): number {\n loadWords(this);\n return wordlist.indexOf(word);\n }\n}\n\nconst langCz = new LangCz();\nWordlist.register(langCz);\n\nexport { langCz };\n\n", "\"use strict\";\n\nimport { Wordlist } from \"./wordlist\";\n\n\nconst words = \"AbandonAbilityAbleAboutAboveAbsentAbsorbAbstractAbsurdAbuseAccessAccidentAccountAccuseAchieveAcidAcousticAcquireAcrossActActionActorActressActualAdaptAddAddictAddressAdjustAdmitAdultAdvanceAdviceAerobicAffairAffordAfraidAgainAgeAgentAgreeAheadAimAirAirportAisleAlarmAlbumAlcoholAlertAlienAllAlleyAllowAlmostAloneAlphaAlreadyAlsoAlterAlwaysAmateurAmazingAmongAmountAmusedAnalystAnchorAncientAngerAngleAngryAnimalAnkleAnnounceAnnualAnotherAnswerAntennaAntiqueAnxietyAnyApartApologyAppearAppleApproveAprilArchArcticAreaArenaArgueArmArmedArmorArmyAroundArrangeArrestArriveArrowArtArtefactArtistArtworkAskAspectAssaultAssetAssistAssumeAsthmaAthleteAtomAttackAttendAttitudeAttractAuctionAuditAugustAuntAuthorAutoAutumnAverageAvocadoAvoidAwakeAwareAwayAwesomeAwfulAwkwardAxisBabyBachelorBaconBadgeBagBalanceBalconyBallBambooBananaBannerBarBarelyBargainBarrelBaseBasicBasketBattleBeachBeanBeautyBecauseBecomeBeefBeforeBeginBehaveBehindBelieveBelowBeltBenchBenefitBestBetrayBetterBetweenBeyondBicycleBidBikeBindBiologyBirdBirthBitterBlackBladeBlameBlanketBlastBleakBlessBlindBloodBlossomBlouseBlueBlurBlushBoardBoatBodyBoilBombBoneBonusBookBoostBorderBoringBorrowBossBottomBounceBoxBoyBracketBrainBrandBrassBraveBreadBreezeBrickBridgeBriefBrightBringBriskBroccoliBrokenBronzeBroomBrotherBrownBrushBubbleBuddyBudgetBuffaloBuildBulbBulkBulletBundleBunkerBurdenBurgerBurstBusBusinessBusyButterBuyerBuzzCabbageCabinCableCactusCageCakeCallCalmCameraCampCanCanalCancelCandyCannonCanoeCanvasCanyonCapableCapitalCaptainCarCarbonCardCargoCarpetCarryCartCaseCashCasinoCastleCasualCatCatalogCatchCategoryCattleCaughtCauseCautionCaveCeilingCeleryCementCensusCenturyCerealCertainChairChalkChampionChangeChaosChapterChargeChaseChatCheapCheckCheeseChefCherryChestChickenChiefChildChimneyChoiceChooseChronicChuckleChunkChurnCigarCinnamonCircleCitizenCityCivilClaimClapClarifyClawClayCleanClerkCleverClickClientCliffClimbClinicClipClockClogCloseClothCloudClownClubClumpClusterClutchCoachCoastCoconutCodeCoffeeCoilCoinCollectColorColumnCombineComeComfortComicCommonCompanyConcertConductConfirmCongressConnectConsiderControlConvinceCookCoolCopperCopyCoralCoreCornCorrectCostCottonCouchCountryCoupleCourseCousinCoverCoyoteCrackCradleCraftCramCraneCrashCraterCrawlCrazyCreamCreditCreekCrewCricketCrimeCrispCriticCropCrossCrouchCrowdCrucialCruelCruiseCrumbleCrunchCrushCryCrystalCubeCultureCupCupboardCuriousCurrentCurtainCurveCushionCustomCuteCycleDadDamageDampDanceDangerDaringDashDaughterDawnDayDealDebateDebrisDecadeDecemberDecideDeclineDecorateDecreaseDeerDefenseDefineDefyDegreeDelayDeliverDemandDemiseDenialDentistDenyDepartDependDepositDepthDeputyDeriveDescribeDesertDesignDeskDespairDestroyDetailDetectDevelopDeviceDevoteDiagramDialDiamondDiaryDiceDieselDietDifferDigitalDignityDilemmaDinnerDinosaurDirectDirtDisagreeDiscoverDiseaseDishDismissDisorderDisplayDistanceDivertDivideDivorceDizzyDoctorDocumentDogDollDolphinDomainDonateDonkeyDonorDoorDoseDoubleDoveDraftDragonDramaDrasticDrawDreamDressDriftDrillDrinkDripDriveDropDrumDryDuckDumbDuneDuringDustDutchDutyDwarfDynamicEagerEagleEarlyEarnEarthEasilyEastEasyEchoEcologyEconomyEdgeEditEducateEffortEggEightEitherElbowElderElectricElegantElementElephantElevatorEliteElseEmbarkEmbodyEmbraceEmergeEmotionEmployEmpowerEmptyEnableEnactEndEndlessEndorseEnemyEnergyEnforceEngageEngineEnhanceEnjoyEnlistEnoughEnrichEnrollEnsureEnterEntireEntryEnvelopeEpisodeEqualEquipEraEraseErodeErosionErrorEruptEscapeEssayEssenceEstateEternalEthicsEvidenceEvilEvokeEvolveExactExampleExcessExchangeExciteExcludeExcuseExecuteExerciseExhaustExhibitExileExistExitExoticExpandExpectExpireExplainExposeExpressExtendExtraEyeEyebrowFabricFaceFacultyFadeFaintFaithFallFalseFameFamilyFamousFanFancyFantasyFarmFashionFatFatalFatherFatigueFaultFavoriteFeatureFebruaryFederalFeeFeedFeelFemaleFenceFestivalFetchFeverFewFiberFictionFieldFigureFileFilmFilterFinalFindFineFingerFinishFireFirmFirstFiscalFishFitFitnessFixFlagFlameFlashFlatFlavorFleeFlightFlipFloatFlockFloorFlowerFluidFlushFlyFoamFocusFogFoilFoldFollowFoodFootForceForestForgetForkFortuneForumForwardFossilFosterFoundFoxFragileFrameFrequentFreshFriendFringeFrogFrontFrostFrownFrozenFruitFuelFunFunnyFurnaceFuryFutureGadgetGainGalaxyGalleryGameGapGarageGarbageGardenGarlicGarmentGasGaspGateGatherGaugeGazeGeneralGeniusGenreGentleGenuineGestureGhostGiantGiftGiggleGingerGiraffeGirlGiveGladGlanceGlareGlassGlideGlimpseGlobeGloomGloryGloveGlowGlueGoatGoddessGoldGoodGooseGorillaGospelGossipGovernGownGrabGraceGrainGrantGrapeGrassGravityGreatGreenGridGriefGritGroceryGroupGrowGruntGuardGuessGuideGuiltGuitarGunGymHabitHairHalfHammerHamsterHandHappyHarborHardHarshHarvestHatHaveHawkHazardHeadHealthHeartHeavyHedgehogHeightHelloHelmetHelpHenHeroHiddenHighHillHintHipHireHistoryHobbyHockeyHoldHoleHolidayHollowHomeHoneyHoodHopeHornHorrorHorseHospitalHostHotelHourHoverHubHugeHumanHumbleHumorHundredHungryHuntHurdleHurryHurtHusbandHybridIceIconIdeaIdentifyIdleIgnoreIllIllegalIllnessImageImitateImmenseImmuneImpactImposeImproveImpulseInchIncludeIncomeIncreaseIndexIndicateIndoorIndustryInfantInflictInformInhaleInheritInitialInjectInjuryInmateInnerInnocentInputInquiryInsaneInsectInsideInspireInstallIntactInterestIntoInvestInviteInvolveIronIslandIsolateIssueItemIvoryJacketJaguarJarJazzJealousJeansJellyJewelJobJoinJokeJourneyJoyJudgeJuiceJumpJungleJuniorJunkJustKangarooKeenKeepKetchupKeyKickKidKidneyKindKingdomKissKitKitchenKiteKittenKiwiKneeKnifeKnockKnowLabLabelLaborLadderLadyLakeLampLanguageLaptopLargeLaterLatinLaughLaundryLavaLawLawnLawsuitLayerLazyLeaderLeafLearnLeaveLectureLeftLegLegalLegendLeisureLemonLendLengthLensLeopardLessonLetterLevelLiarLibertyLibraryLicenseLifeLiftLightLikeLimbLimitLinkLionLiquidListLittleLiveLizardLoadLoanLobsterLocalLockLogicLonelyLongLoopLotteryLoudLoungeLoveLoyalLuckyLuggageLumberLunarLunchLuxuryLyricsMachineMadMagicMagnetMaidMailMainMajorMakeMammalManManageMandateMangoMansionManualMapleMarbleMarchMarginMarineMarketMarriageMaskMassMasterMatchMaterialMathMatrixMatterMaximumMazeMeadowMeanMeasureMeatMechanicMedalMediaMelodyMeltMemberMemoryMentionMenuMercyMergeMeritMerryMeshMessageMetalMethodMiddleMidnightMilkMillionMimicMindMinimumMinorMinuteMiracleMirrorMiseryMissMistakeMixMixedMixtureMobileModelModifyMomMomentMonitorMonkeyMonsterMonthMoonMoralMoreMorningMosquitoMotherMotionMotorMountainMouseMoveMovieMuchMuffinMuleMultiplyMuscleMuseumMushroomMusicMustMutualMyselfMysteryMythNaiveNameNapkinNarrowNastyNationNatureNearNeckNeedNegativeNeglectNeitherNephewNerveNestNetNetworkNeutralNeverNewsNextNiceNightNobleNoiseNomineeNoodleNormalNorthNoseNotableNoteNothingNoticeNovelNowNuclearNumberNurseNutOakObeyObjectObligeObscureObserveObtainObviousOccurOceanOctoberOdorOffOfferOfficeOftenOilOkayOldOliveOlympicOmitOnceOneOnionOnlineOnlyOpenOperaOpinionOpposeOptionOrangeOrbitOrchardOrderOrdinaryOrganOrientOriginalOrphanOstrichOtherOutdoorOuterOutputOutsideOvalOvenOverOwnOwnerOxygenOysterOzonePactPaddlePagePairPalacePalmPandaPanelPanicPantherPaperParadeParentParkParrotPartyPassPatchPathPatientPatrolPatternPausePavePaymentPeacePeanutPearPeasantPelicanPenPenaltyPencilPeoplePepperPerfectPermitPersonPetPhonePhotoPhrasePhysicalPianoPicnicPicturePiecePigPigeonPillPilotPinkPioneerPipePistolPitchPizzaPlacePlanetPlasticPlatePlayPleasePledgePluckPlugPlungePoemPoetPointPolarPolePolicePondPonyPoolPopularPortionPositionPossiblePostPotatoPotteryPovertyPowderPowerPracticePraisePredictPreferPreparePresentPrettyPreventPricePridePrimaryPrintPriorityPrisonPrivatePrizeProblemProcessProduceProfitProgramProjectPromoteProofPropertyProsperProtectProudProvidePublicPuddingPullPulpPulsePumpkinPunchPupilPuppyPurchasePurityPurposePursePushPutPuzzlePyramidQualityQuantumQuarterQuestionQuickQuitQuizQuoteRabbitRaccoonRaceRackRadarRadioRailRainRaiseRallyRampRanchRandomRangeRapidRareRateRatherRavenRawRazorReadyRealReasonRebelRebuildRecallReceiveRecipeRecordRecycleReduceReflectReformRefuseRegionRegretRegularRejectRelaxReleaseReliefRelyRemainRememberRemindRemoveRenderRenewRentReopenRepairRepeatReplaceReportRequireRescueResembleResistResourceResponseResultRetireRetreatReturnReunionRevealReviewRewardRhythmRibRibbonRiceRichRideRidgeRifleRightRigidRingRiotRippleRiskRitualRivalRiverRoadRoastRobotRobustRocketRomanceRoofRookieRoomRoseRotateRoughRoundRouteRoyalRubberRudeRugRuleRunRunwayRuralSadSaddleSadnessSafeSailSaladSalmonSalonSaltSaluteSameSampleSandSatisfySatoshiSauceSausageSaveSayScaleScanScareScatterSceneSchemeSchoolScienceScissorsScorpionScoutScrapScreenScriptScrubSeaSearchSeasonSeatSecondSecretSectionSecuritySeedSeekSegmentSelectSellSeminarSeniorSenseSentenceSeriesServiceSessionSettleSetupSevenShadowShaftShallowShareShedShellSheriffShieldShiftShineShipShiverShockShoeShootShopShortShoulderShoveShrimpShrugShuffleShySiblingSickSideSiegeSightSignSilentSilkSillySilverSimilarSimpleSinceSingSirenSisterSituateSixSizeSkateSketchSkiSkillSkinSkirtSkullSlabSlamSleepSlenderSliceSlideSlightSlimSloganSlotSlowSlushSmallSmartSmileSmokeSmoothSnackSnakeSnapSniffSnowSoapSoccerSocialSockSodaSoftSolarSoldierSolidSolutionSolveSomeoneSongSoonSorrySortSoulSoundSoupSourceSouthSpaceSpareSpatialSpawnSpeakSpecialSpeedSpellSpendSphereSpiceSpiderSpikeSpinSpiritSplitSpoilSponsorSpoonSportSpotSpraySpreadSpringSpySquareSqueezeSquirrelStableStadiumStaffStageStairsStampStandStartStateStaySteakSteelStemStepStereoStickStillStingStockStomachStoneStoolStoryStoveStrategyStreetStrikeStrongStruggleStudentStuffStumbleStyleSubjectSubmitSubwaySuccessSuchSuddenSufferSugarSuggestSuitSummerSunSunnySunsetSuperSupplySupremeSureSurfaceSurgeSurpriseSurroundSurveySuspectSustainSwallowSwampSwapSwarmSwearSweetSwiftSwimSwingSwitchSwordSymbolSymptomSyrupSystemTableTackleTagTailTalentTalkTankTapeTargetTaskTasteTattooTaxiTeachTeamTellTenTenantTennisTentTermTestTextThankThatThemeThenTheoryThereTheyThingThisThoughtThreeThriveThrowThumbThunderTicketTideTigerTiltTimberTimeTinyTipTiredTissueTitleToastTobaccoTodayToddlerToeTogetherToiletTokenTomatoTomorrowToneTongueTonightToolToothTopTopicToppleTorchTornadoTortoiseTossTotalTouristTowardTowerTownToyTrackTradeTrafficTragicTrainTransferTrapTrashTravelTrayTreatTreeTrendTrialTribeTrickTriggerTrimTripTrophyTroubleTruckTrueTrulyTrumpetTrustTruthTryTubeTuitionTumbleTunaTunnelTurkeyTurnTurtleTwelveTwentyTwiceTwinTwistTwoTypeTypicalUglyUmbrellaUnableUnawareUncleUncoverUnderUndoUnfairUnfoldUnhappyUniformUniqueUnitUniverseUnknownUnlockUntilUnusualUnveilUpdateUpgradeUpholdUponUpperUpsetUrbanUrgeUsageUseUsedUsefulUselessUsualUtilityVacantVacuumVagueValidValleyValveVanVanishVaporVariousVastVaultVehicleVelvetVendorVentureVenueVerbVerifyVersionVeryVesselVeteranViableVibrantViciousVictoryVideoViewVillageVintageViolinVirtualVirusVisaVisitVisualVitalVividVocalVoiceVoidVolcanoVolumeVoteVoyageWageWagonWaitWalkWallWalnutWantWarfareWarmWarriorWashWaspWasteWaterWaveWayWealthWeaponWearWeaselWeatherWebWeddingWeekendWeirdWelcomeWestWetWhaleWhatWheatWheelWhenWhereWhipWhisperWideWidthWifeWildWillWinWindowWineWingWinkWinnerWinterWireWisdomWiseWishWitnessWolfWomanWonderWoodWoolWordWorkWorldWorryWorthWrapWreckWrestleWristWriteWrongYardYearYellowYouYoungYouthZebraZeroZoneZoo\";\n\nlet wordlist: Array = null;\n\n\nfunction loadWords(lang: Wordlist): void {\n if (wordlist != null) { return; }\n wordlist = words.replace(/([A-Z])/g, \" $1\").toLowerCase().substring(1).split(\" \");\n\n // Verify the computed list matches the official list\n /* istanbul ignore if */\n if (Wordlist.check(lang) !== \"0x3c8acc1e7b08d8e76f9fda015ef48dc8c710a73cb7e0f77b2c18a9b5a7adde60\") {\n wordlist = null;\n throw new Error(\"BIP39 Wordlist for en (English) FAILED\");\n }\n}\n\nclass LangEn extends Wordlist {\n constructor() {\n super(\"en\");\n }\n\n getWord(index: number): string {\n loadWords(this);\n return wordlist[index];\n }\n\n getWordIndex(word: string): number {\n loadWords(this);\n return wordlist.indexOf(word);\n }\n}\n\nconst langEn = new LangEn();\nWordlist.register(langEn);\n\nexport { langEn };\n", "\"use strict\";\n\nimport { toUtf8Bytes, toUtf8String } from \"@ethersproject/strings\";\n\nimport { logger, Wordlist } from \"./wordlist\";\n\n\nconst words = \"A/bacoAbdomenAbejaAbiertoAbogadoAbonoAbortoAbrazoAbrirAbueloAbusoAcabarAcademiaAccesoAccio/nAceiteAcelgaAcentoAceptarA/cidoAclararAcne/AcogerAcosoActivoActoActrizActuarAcudirAcuerdoAcusarAdictoAdmitirAdoptarAdornoAduanaAdultoAe/reoAfectarAficio/nAfinarAfirmarA/gilAgitarAgoni/aAgostoAgotarAgregarAgrioAguaAgudoA/guilaAgujaAhogoAhorroAireAislarAjedrezAjenoAjusteAlacra/nAlambreAlarmaAlbaA/lbumAlcaldeAldeaAlegreAlejarAlertaAletaAlfilerAlgaAlgodo/nAliadoAlientoAlivioAlmaAlmejaAlmi/barAltarAltezaAltivoAltoAlturaAlumnoAlzarAmableAmanteAmapolaAmargoAmasarA/mbarA/mbitoAmenoAmigoAmistadAmorAmparoAmplioAnchoAncianoAnclaAndarAnde/nAnemiaA/nguloAnilloA/nimoAni/sAnotarAntenaAntiguoAntojoAnualAnularAnuncioA~adirA~ejoA~oApagarAparatoApetitoApioAplicarApodoAporteApoyoAprenderAprobarApuestaApuroAradoAra~aArarA/rbitroA/rbolArbustoArchivoArcoArderArdillaArduoA/reaA/ridoAriesArmoni/aArne/sAromaArpaArpo/nArregloArrozArrugaArteArtistaAsaAsadoAsaltoAscensoAsegurarAseoAsesorAsientoAsiloAsistirAsnoAsombroA/speroAstillaAstroAstutoAsumirAsuntoAtajoAtaqueAtarAtentoAteoA/ticoAtletaA/tomoAtraerAtrozAtu/nAudazAudioAugeAulaAumentoAusenteAutorAvalAvanceAvaroAveAvellanaAvenaAvestruzAvio/nAvisoAyerAyudaAyunoAzafra/nAzarAzoteAzu/carAzufreAzulBabaBaborBacheBahi/aBaileBajarBalanzaBalco/nBaldeBambu/BancoBandaBa~oBarbaBarcoBarnizBarroBa/sculaBasto/nBasuraBatallaBateri/aBatirBatutaBau/lBazarBebe/BebidaBelloBesarBesoBestiaBichoBienBingoBlancoBloqueBlusaBoaBobinaBoboBocaBocinaBodaBodegaBoinaBolaBoleroBolsaBombaBondadBonitoBonoBonsa/iBordeBorrarBosqueBoteBoti/nBo/vedaBozalBravoBrazoBrechaBreveBrilloBrincoBrisaBrocaBromaBronceBroteBrujaBruscoBrutoBuceoBucleBuenoBueyBufandaBufo/nBu/hoBuitreBultoBurbujaBurlaBurroBuscarButacaBuzo/nCaballoCabezaCabinaCabraCacaoCada/verCadenaCaerCafe/Cai/daCaima/nCajaCajo/nCalCalamarCalcioCaldoCalidadCalleCalmaCalorCalvoCamaCambioCamelloCaminoCampoCa/ncerCandilCanelaCanguroCanicaCantoCa~aCa~o/nCaobaCaosCapazCapita/nCapoteCaptarCapuchaCaraCarbo/nCa/rcelCaretaCargaCari~oCarneCarpetaCarroCartaCasaCascoCaseroCaspaCastorCatorceCatreCaudalCausaCazoCebollaCederCedroCeldaCe/lebreCelosoCe/lulaCementoCenizaCentroCercaCerdoCerezaCeroCerrarCertezaCe/spedCetroChacalChalecoChampu/ChanclaChapaCharlaChicoChisteChivoChoqueChozaChuletaChuparCiclo/nCiegoCieloCienCiertoCifraCigarroCimaCincoCineCintaCipre/sCircoCiruelaCisneCitaCiudadClamorClanClaroClaseClaveClienteClimaCli/nicaCobreCoccio/nCochinoCocinaCocoCo/digoCodoCofreCogerCoheteCoji/nCojoColaColchaColegioColgarColinaCollarColmoColumnaCombateComerComidaCo/modoCompraCondeConejoCongaConocerConsejoContarCopaCopiaCorazo/nCorbataCorchoCordo/nCoronaCorrerCoserCosmosCostaCra/neoCra/terCrearCrecerCrei/doCremaCri/aCrimenCriptaCrisisCromoCro/nicaCroquetaCrudoCruzCuadroCuartoCuatroCuboCubrirCucharaCuelloCuentoCuerdaCuestaCuevaCuidarCulebraCulpaCultoCumbreCumplirCunaCunetaCuotaCupo/nCu/pulaCurarCuriosoCursoCurvaCutisDamaDanzaDarDardoDa/tilDeberDe/bilDe/cadaDecirDedoDefensaDefinirDejarDelfi/nDelgadoDelitoDemoraDensoDentalDeporteDerechoDerrotaDesayunoDeseoDesfileDesnudoDestinoDesvi/oDetalleDetenerDeudaDi/aDiabloDiademaDiamanteDianaDiarioDibujoDictarDienteDietaDiezDifi/cilDignoDilemaDiluirDineroDirectoDirigirDiscoDise~oDisfrazDivaDivinoDobleDoceDolorDomingoDonDonarDoradoDormirDorsoDosDosisDrago/nDrogaDuchaDudaDueloDue~oDulceDu/oDuqueDurarDurezaDuroE/banoEbrioEcharEcoEcuadorEdadEdicio/nEdificioEditorEducarEfectoEficazEjeEjemploElefanteElegirElementoElevarElipseE/liteElixirElogioEludirEmbudoEmitirEmocio/nEmpateEmpe~oEmpleoEmpresaEnanoEncargoEnchufeEnci/aEnemigoEneroEnfadoEnfermoEnga~oEnigmaEnlaceEnormeEnredoEnsayoEnse~arEnteroEntrarEnvaseEnvi/oE/pocaEquipoErizoEscalaEscenaEscolarEscribirEscudoEsenciaEsferaEsfuerzoEspadaEspejoEspi/aEsposaEspumaEsqui/EstarEsteEstiloEstufaEtapaEternoE/ticaEtniaEvadirEvaluarEventoEvitarExactoExamenExcesoExcusaExentoExigirExilioExistirE/xitoExpertoExplicarExponerExtremoFa/bricaFa/bulaFachadaFa/cilFactorFaenaFajaFaldaFalloFalsoFaltarFamaFamiliaFamosoFarao/nFarmaciaFarolFarsaFaseFatigaFaunaFavorFaxFebreroFechaFelizFeoFeriaFerozFe/rtilFervorFesti/nFiableFianzaFiarFibraFiccio/nFichaFideoFiebreFielFieraFiestaFiguraFijarFijoFilaFileteFilialFiltroFinFincaFingirFinitoFirmaFlacoFlautaFlechaFlorFlotaFluirFlujoFlu/orFobiaFocaFogataFogo/nFolioFolletoFondoFormaForroFortunaForzarFosaFotoFracasoFra/gilFranjaFraseFraudeFrei/rFrenoFresaFri/oFritoFrutaFuegoFuenteFuerzaFugaFumarFuncio/nFundaFurgo/nFuriaFusilFu/tbolFuturoGacelaGafasGaitaGajoGalaGaleri/aGalloGambaGanarGanchoGangaGansoGarajeGarzaGasolinaGastarGatoGavila/nGemeloGemirGenGe/neroGenioGenteGeranioGerenteGermenGestoGiganteGimnasioGirarGiroGlaciarGloboGloriaGolGolfoGolosoGolpeGomaGordoGorilaGorraGotaGoteoGozarGradaGra/ficoGranoGrasaGratisGraveGrietaGrilloGripeGrisGritoGrosorGru/aGruesoGrumoGrupoGuanteGuapoGuardiaGuerraGui/aGui~oGuionGuisoGuitarraGusanoGustarHaberHa/bilHablarHacerHachaHadaHallarHamacaHarinaHazHaza~aHebillaHebraHechoHeladoHelioHembraHerirHermanoHe/roeHervirHieloHierroHi/gadoHigieneHijoHimnoHistoriaHocicoHogarHogueraHojaHombreHongoHonorHonraHoraHormigaHornoHostilHoyoHuecoHuelgaHuertaHuesoHuevoHuidaHuirHumanoHu/medoHumildeHumoHundirHuraca/nHurtoIconoIdealIdiomaI/doloIglesiaIglu/IgualIlegalIlusio/nImagenIma/nImitarImparImperioImponerImpulsoIncapazI/ndiceInerteInfielInformeIngenioInicioInmensoInmuneInnatoInsectoInstanteIntere/sI/ntimoIntuirInu/tilInviernoIraIrisIroni/aIslaIsloteJabali/Jabo/nJamo/nJarabeJardi/nJarraJaulaJazmi/nJefeJeringaJineteJornadaJorobaJovenJoyaJuergaJuevesJuezJugadorJugoJugueteJuicioJuncoJunglaJunioJuntarJu/piterJurarJustoJuvenilJuzgarKiloKoalaLabioLacioLacraLadoLadro/nLagartoLa/grimaLagunaLaicoLamerLa/minaLa/mparaLanaLanchaLangostaLanzaLa/pizLargoLarvaLa/stimaLataLa/texLatirLaurelLavarLazoLealLeccio/nLecheLectorLeerLegio/nLegumbreLejanoLenguaLentoLe~aLeo/nLeopardoLesio/nLetalLetraLeveLeyendaLibertadLibroLicorLi/derLidiarLienzoLigaLigeroLimaLi/miteLimo/nLimpioLinceLindoLi/neaLingoteLinoLinternaLi/quidoLisoListaLiteraLitioLitroLlagaLlamaLlantoLlaveLlegarLlenarLlevarLlorarLloverLluviaLoboLocio/nLocoLocuraLo/gicaLogroLombrizLomoLonjaLoteLuchaLucirLugarLujoLunaLunesLupaLustroLutoLuzMacetaMachoMaderaMadreMaduroMaestroMafiaMagiaMagoMai/zMaldadMaletaMallaMaloMama/MamboMamutMancoMandoManejarMangaManiqui/ManjarManoMansoMantaMa~anaMapaMa/quinaMarMarcoMareaMarfilMargenMaridoMa/rmolMarro/nMartesMarzoMasaMa/scaraMasivoMatarMateriaMatizMatrizMa/ximoMayorMazorcaMechaMedallaMedioMe/dulaMejillaMejorMelenaMelo/nMemoriaMenorMensajeMenteMenu/MercadoMerengueMe/ritoMesMeso/nMetaMeterMe/todoMetroMezclaMiedoMielMiembroMigaMilMilagroMilitarMillo/nMimoMinaMineroMi/nimoMinutoMiopeMirarMisaMiseriaMisilMismoMitadMitoMochilaMocio/nModaModeloMohoMojarMoldeMolerMolinoMomentoMomiaMonarcaMonedaMonjaMontoMo~oMoradaMorderMorenoMorirMorroMorsaMortalMoscaMostrarMotivoMoverMo/vilMozoMuchoMudarMuebleMuelaMuerteMuestraMugreMujerMulaMuletaMultaMundoMu~ecaMuralMuroMu/sculoMuseoMusgoMu/sicaMusloNa/carNacio/nNadarNaipeNaranjaNarizNarrarNasalNatalNativoNaturalNa/useaNavalNaveNavidadNecioNe/ctarNegarNegocioNegroNeo/nNervioNetoNeutroNevarNeveraNichoNidoNieblaNietoNi~ezNi~oNi/tidoNivelNoblezaNocheNo/minaNoriaNormaNorteNotaNoticiaNovatoNovelaNovioNubeNucaNu/cleoNudilloNudoNueraNueveNuezNuloNu/meroNutriaOasisObesoObispoObjetoObraObreroObservarObtenerObvioOcaOcasoOce/anoOchentaOchoOcioOcreOctavoOctubreOcultoOcuparOcurrirOdiarOdioOdiseaOesteOfensaOfertaOficioOfrecerOgroOi/doOi/rOjoOlaOleadaOlfatoOlivoOllaOlmoOlorOlvidoOmbligoOndaOnzaOpacoOpcio/nO/peraOpinarOponerOptarO/pticaOpuestoOracio/nOradorOralO/rbitaOrcaOrdenOrejaO/rganoOrgi/aOrgulloOrienteOrigenOrillaOroOrquestaOrugaOsadi/aOscuroOseznoOsoOstraOto~oOtroOvejaO/vuloO/xidoOxi/genoOyenteOzonoPactoPadrePaellaPa/ginaPagoPai/sPa/jaroPalabraPalcoPaletaPa/lidoPalmaPalomaPalparPanPanalPa/nicoPanteraPa~ueloPapa/PapelPapillaPaquetePararParcelaParedParirParoPa/rpadoParquePa/rrafoPartePasarPaseoPasio/nPasoPastaPataPatioPatriaPausaPautaPavoPayasoPeato/nPecadoPeceraPechoPedalPedirPegarPeinePelarPelda~oPeleaPeligroPellejoPeloPelucaPenaPensarPe~o/nPeo/nPeorPepinoPeque~oPeraPerchaPerderPerezaPerfilPericoPerlaPermisoPerroPersonaPesaPescaPe/simoPesta~aPe/taloPetro/leoPezPezu~aPicarPicho/nPiePiedraPiernaPiezaPijamaPilarPilotoPimientaPinoPintorPinzaPi~aPiojoPipaPirataPisarPiscinaPisoPistaPito/nPizcaPlacaPlanPlataPlayaPlazaPleitoPlenoPlomoPlumaPluralPobrePocoPoderPodioPoemaPoesi/aPoetaPolenPolici/aPolloPolvoPomadaPomeloPomoPompaPonerPorcio/nPortalPosadaPoseerPosiblePostePotenciaPotroPozoPradoPrecozPreguntaPremioPrensaPresoPrevioPrimoPri/ncipePrisio/nPrivarProaProbarProcesoProductoProezaProfesorProgramaProlePromesaProntoPropioPro/ximoPruebaPu/blicoPucheroPudorPuebloPuertaPuestoPulgaPulirPulmo/nPulpoPulsoPumaPuntoPu~alPu~oPupaPupilaPure/QuedarQuejaQuemarQuererQuesoQuietoQui/micaQuinceQuitarRa/banoRabiaRaboRacio/nRadicalRai/zRamaRampaRanchoRangoRapazRa/pidoRaptoRasgoRaspaRatoRayoRazaRazo/nReaccio/nRealidadReba~oReboteRecaerRecetaRechazoRecogerRecreoRectoRecursoRedRedondoReducirReflejoReformaRefra/nRefugioRegaloRegirReglaRegresoRehe/nReinoRei/rRejaRelatoRelevoRelieveRellenoRelojRemarRemedioRemoRencorRendirRentaRepartoRepetirReposoReptilResRescateResinaRespetoRestoResumenRetiroRetornoRetratoReunirReve/sRevistaReyRezarRicoRiegoRiendaRiesgoRifaRi/gidoRigorRinco/nRi~o/nRi/oRiquezaRisaRitmoRitoRizoRobleRoceRociarRodarRodeoRodillaRoerRojizoRojoRomeroRomperRonRoncoRondaRopaRoperoRosaRoscaRostroRotarRubi/RuborRudoRuedaRugirRuidoRuinaRuletaRuloRumboRumorRupturaRutaRutinaSa/badoSaberSabioSableSacarSagazSagradoSalaSaldoSaleroSalirSalmo/nSalo/nSalsaSaltoSaludSalvarSambaSancio/nSandi/aSanearSangreSanidadSanoSantoSapoSaqueSardinaSarte/nSastreSata/nSaunaSaxofo/nSeccio/nSecoSecretoSectaSedSeguirSeisSelloSelvaSemanaSemillaSendaSensorSe~alSe~orSepararSepiaSequi/aSerSerieSermo/nServirSesentaSesio/nSetaSetentaSeveroSexoSextoSidraSiestaSieteSigloSignoSi/labaSilbarSilencioSillaSi/mboloSimioSirenaSistemaSitioSituarSobreSocioSodioSolSolapaSoldadoSoledadSo/lidoSoltarSolucio/nSombraSondeoSonidoSonoroSonrisaSopaSoplarSoporteSordoSorpresaSorteoSoste/nSo/tanoSuaveSubirSucesoSudorSuegraSueloSue~oSuerteSufrirSujetoSulta/nSumarSuperarSuplirSuponerSupremoSurSurcoSure~oSurgirSustoSutilTabacoTabiqueTablaTabu/TacoTactoTajoTalarTalcoTalentoTallaTalo/nTama~oTamborTangoTanqueTapaTapeteTapiaTapo/nTaquillaTardeTareaTarifaTarjetaTarotTarroTartaTatuajeTauroTazaTazo/nTeatroTechoTeclaTe/cnicaTejadoTejerTejidoTelaTele/fonoTemaTemorTemploTenazTenderTenerTenisTensoTeori/aTerapiaTercoTe/rminoTernuraTerrorTesisTesoroTestigoTeteraTextoTezTibioTiburo/nTiempoTiendaTierraTiesoTigreTijeraTildeTimbreTi/midoTimoTintaTi/oTi/picoTipoTiraTiro/nTita/nTi/tereTi/tuloTizaToallaTobilloTocarTocinoTodoTogaToldoTomarTonoTontoToparTopeToqueTo/raxToreroTormentaTorneoToroTorpedoTorreTorsoTortugaTosToscoToserTo/xicoTrabajoTractorTraerTra/ficoTragoTrajeTramoTranceTratoTraumaTrazarTre/bolTreguaTreintaTrenTreparTresTribuTrigoTripaTristeTriunfoTrofeoTrompaTroncoTropaTroteTrozoTrucoTruenoTrufaTuberi/aTuboTuertoTumbaTumorTu/nelTu/nicaTurbinaTurismoTurnoTutorUbicarU/lceraUmbralUnidadUnirUniversoUnoUntarU~aUrbanoUrbeUrgenteUrnaUsarUsuarioU/tilUtopi/aUvaVacaVaci/oVacunaVagarVagoVainaVajillaValeVa/lidoValleValorVa/lvulaVampiroVaraVariarVaro/nVasoVecinoVectorVehi/culoVeinteVejezVelaVeleroVelozVenaVencerVendaVenenoVengarVenirVentaVenusVerVeranoVerboVerdeVeredaVerjaVersoVerterVi/aViajeVibrarVicioVi/ctimaVidaVi/deoVidrioViejoViernesVigorVilVillaVinagreVinoVi~edoVioli/nViralVirgoVirtudVisorVi/speraVistaVitaminaViudoVivazViveroVivirVivoVolca/nVolumenVolverVorazVotarVotoVozVueloVulgarYacerYateYeguaYemaYernoYesoYodoYogaYogurZafiroZanjaZapatoZarzaZonaZorroZumoZurdo\";\n\nconst lookup: { [word: string]: number } = {};\nlet wordlist: Array = null;\n\nfunction dropDiacritic(word: string): string {\n logger.checkNormalize();\n return toUtf8String(Array.prototype.filter.call(toUtf8Bytes(word.normalize(\"NFD\").toLowerCase()), (c: number) => {\n return ((c >= 65 && c <= 90) || (c >= 97 && c <= 123));\n }));\n}\n\nfunction expand(word: string): string {\n const output: Array = [];\n Array.prototype.forEach.call(toUtf8Bytes(word), (c: number) => {\n // Acute accent\n if (c === 47) {\n output.push(204);\n output.push(129);\n // n-tilde\n } else if (c === 126) {\n output.push(110);\n output.push(204);\n output.push(131);\n } else {\n output.push(c);\n }\n });\n\n return toUtf8String(output);\n}\n\nfunction loadWords(lang: Wordlist): void {\n if (wordlist != null) { return; }\n wordlist = words.replace(/([A-Z])/g, \" $1\").toLowerCase().substring(1).split(\" \").map((w) => expand(w));\n wordlist.forEach((word, index) => {\n lookup[dropDiacritic(word)] = index;\n });\n\n // Verify the computed list matches the official list\n /* istanbul ignore if */\n if (Wordlist.check(lang) !== \"0xf74fb7092aeacdfbf8959557de22098da512207fb9f109cb526994938cf40300\") {\n wordlist = null;\n throw new Error(\"BIP39 Wordlist for es (Spanish) FAILED\");\n }\n}\n\nclass LangEs extends Wordlist {\n constructor() {\n super(\"es\");\n }\n\n getWord(index: number): string {\n loadWords(this);\n return wordlist[index];\n }\n\n getWordIndex(word: string): number {\n loadWords(this);\n return lookup[dropDiacritic(word)];\n }\n}\n\nconst langEs = new LangEs();\nWordlist.register(langEs);\n\nexport { langEs };\n", "\"use strict\";\n\nimport { toUtf8Bytes, toUtf8String } from \"@ethersproject/strings\";\n\nimport { logger, Wordlist } from \"./wordlist\";\n\n\nconst words = \"AbaisserAbandonAbdiquerAbeilleAbolirAborderAboutirAboyerAbrasifAbreuverAbriterAbrogerAbruptAbsenceAbsoluAbsurdeAbusifAbyssalAcade/mieAcajouAcarienAccablerAccepterAcclamerAccoladeAccrocheAccuserAcerbeAchatAcheterAcidulerAcierAcompteAcque/rirAcronymeActeurActifActuelAdepteAde/quatAdhe/sifAdjectifAdjugerAdmettreAdmirerAdopterAdorerAdoucirAdresseAdroitAdulteAdverbeAe/rerAe/ronefAffaireAffecterAfficheAffreuxAffublerAgacerAgencerAgileAgiterAgraferAgre/ableAgrumeAiderAiguilleAilierAimableAisanceAjouterAjusterAlarmerAlchimieAlerteAlge-breAlgueAlie/nerAlimentAlle/gerAlliageAllouerAllumerAlourdirAlpagaAltesseAlve/oleAmateurAmbiguAmbreAme/nagerAmertumeAmidonAmiralAmorcerAmourAmovibleAmphibieAmpleurAmusantAnalyseAnaphoreAnarchieAnatomieAncienAne/antirAngleAngoisseAnguleuxAnimalAnnexerAnnonceAnnuelAnodinAnomalieAnonymeAnormalAntenneAntidoteAnxieuxApaiserApe/ritifAplanirApologieAppareilAppelerApporterAppuyerAquariumAqueducArbitreArbusteArdeurArdoiseArgentArlequinArmatureArmementArmoireArmureArpenterArracherArriverArroserArsenicArte/rielArticleAspectAsphalteAspirerAssautAsservirAssietteAssocierAssurerAsticotAstreAstuceAtelierAtomeAtriumAtroceAttaqueAttentifAttirerAttraperAubaineAubergeAudaceAudibleAugurerAuroreAutomneAutrucheAvalerAvancerAvariceAvenirAverseAveugleAviateurAvideAvionAviserAvoineAvouerAvrilAxialAxiomeBadgeBafouerBagageBaguetteBaignadeBalancerBalconBaleineBalisageBambinBancaireBandageBanlieueBannie-reBanquierBarbierBarilBaronBarqueBarrageBassinBastionBatailleBateauBatterieBaudrierBavarderBeletteBe/lierBeloteBe/ne/ficeBerceauBergerBerlineBermudaBesaceBesogneBe/tailBeurreBiberonBicycleBiduleBijouBilanBilingueBillardBinaireBiologieBiopsieBiotypeBiscuitBisonBistouriBitumeBizarreBlafardBlagueBlanchirBlessantBlinderBlondBloquerBlousonBobardBobineBoireBoiserBolideBonbonBondirBonheurBonifierBonusBordureBorneBotteBoucleBoueuxBougieBoulonBouquinBourseBoussoleBoutiqueBoxeurBrancheBrasierBraveBrebisBre-cheBreuvageBricolerBrigadeBrillantBriocheBriqueBrochureBroderBronzerBrousseBroyeurBrumeBrusqueBrutalBruyantBuffleBuissonBulletinBureauBurinBustierButinerButoirBuvableBuvetteCabanonCabineCachetteCadeauCadreCafe/ineCaillouCaissonCalculerCalepinCalibreCalmerCalomnieCalvaireCamaradeCame/raCamionCampagneCanalCanetonCanonCantineCanularCapableCaporalCapriceCapsuleCapterCapucheCarabineCarboneCaresserCaribouCarnageCarotteCarreauCartonCascadeCasierCasqueCassureCauserCautionCavalierCaverneCaviarCe/dilleCeintureCe/lesteCelluleCendrierCensurerCentralCercleCe/re/bralCeriseCernerCerveauCesserChagrinChaiseChaleurChambreChanceChapitreCharbonChasseurChatonChaussonChavirerChemiseChenilleChe/quierChercherChevalChienChiffreChignonChime-reChiotChlorureChocolatChoisirChoseChouetteChromeChuteCigareCigogneCimenterCine/maCintrerCirculerCirerCirqueCiterneCitoyenCitronCivilClaironClameurClaquerClasseClavierClientClignerClimatClivageClocheClonageCloporteCobaltCobraCocasseCocotierCoderCodifierCoffreCognerCohe/sionCoifferCoincerCole-reColibriCollineColmaterColonelCombatCome/dieCommandeCompactConcertConduireConfierCongelerConnoterConsonneContactConvexeCopainCopieCorailCorbeauCordageCornicheCorpusCorrectCorte-geCosmiqueCostumeCotonCoudeCoupureCourageCouteauCouvrirCoyoteCrabeCrainteCravateCrayonCre/atureCre/diterCre/meuxCreuserCrevetteCriblerCrierCristalCrite-reCroireCroquerCrotaleCrucialCruelCrypterCubiqueCueillirCuille-reCuisineCuivreCulminerCultiverCumulerCupideCuratifCurseurCyanureCycleCylindreCyniqueDaignerDamierDangerDanseurDauphinDe/battreDe/biterDe/borderDe/briderDe/butantDe/calerDe/cembreDe/chirerDe/ciderDe/clarerDe/corerDe/crireDe/cuplerDe/daleDe/ductifDe/esseDe/fensifDe/filerDe/frayerDe/gagerDe/givrerDe/glutirDe/graferDe/jeunerDe/liceDe/logerDemanderDemeurerDe/molirDe/nicherDe/nouerDentelleDe/nuderDe/partDe/penserDe/phaserDe/placerDe/poserDe/rangerDe/roberDe/sastreDescenteDe/sertDe/signerDe/sobe/irDessinerDestrierDe/tacherDe/testerDe/tourerDe/tresseDevancerDevenirDevinerDevoirDiableDialogueDiamantDicterDiffe/rerDige/rerDigitalDigneDiluerDimancheDiminuerDioxydeDirectifDirigerDiscuterDisposerDissiperDistanceDivertirDiviserDocileDocteurDogmeDoigtDomaineDomicileDompterDonateurDonjonDonnerDopamineDortoirDorureDosageDoseurDossierDotationDouanierDoubleDouceurDouterDoyenDragonDraperDresserDribblerDroitureDuperieDuplexeDurableDurcirDynastieE/blouirE/carterE/charpeE/chelleE/clairerE/clipseE/cloreE/cluseE/coleE/conomieE/corceE/couterE/craserE/cre/merE/crivainE/crouE/cumeE/cureuilE/difierE/duquerEffacerEffectifEffigieEffortEffrayerEffusionE/galiserE/garerE/jecterE/laborerE/largirE/lectronE/le/gantE/le/phantE/le-veE/ligibleE/litismeE/logeE/luciderE/luderEmballerEmbellirEmbryonE/meraudeE/missionEmmenerE/motionE/mouvoirEmpereurEmployerEmporterEmpriseE/mulsionEncadrerEnche-reEnclaveEncocheEndiguerEndosserEndroitEnduireE/nergieEnfanceEnfermerEnfouirEngagerEnginEngloberE/nigmeEnjamberEnjeuEnleverEnnemiEnnuyeuxEnrichirEnrobageEnseigneEntasserEntendreEntierEntourerEntraverE/nume/rerEnvahirEnviableEnvoyerEnzymeE/olienE/paissirE/pargneE/patantE/pauleE/picerieE/pide/mieE/pierE/pilogueE/pineE/pisodeE/pitapheE/poqueE/preuveE/prouverE/puisantE/querreE/quipeE/rigerE/rosionErreurE/ruptionEscalierEspadonEspe-ceEspie-gleEspoirEspritEsquiverEssayerEssenceEssieuEssorerEstimeEstomacEstradeE/tage-reE/talerE/tancheE/tatiqueE/teindreE/tendoirE/ternelE/thanolE/thiqueEthnieE/tirerE/tofferE/toileE/tonnantE/tourdirE/trangeE/troitE/tudeEuphorieE/valuerE/vasionE/ventailE/videnceE/viterE/volutifE/voquerExactExage/rerExaucerExcellerExcitantExclusifExcuseExe/cuterExempleExercerExhalerExhorterExigenceExilerExisterExotiqueExpe/dierExplorerExposerExprimerExquisExtensifExtraireExulterFableFabuleuxFacetteFacileFactureFaiblirFalaiseFameuxFamilleFarceurFarfeluFarineFaroucheFascinerFatalFatigueFauconFautifFaveurFavoriFe/brileFe/conderFe/de/rerFe/linFemmeFe/murFendoirFe/odalFermerFe/roceFerveurFestivalFeuilleFeutreFe/vrierFiascoFicelerFictifFide-leFigureFilatureFiletageFilie-reFilleulFilmerFilouFiltrerFinancerFinirFioleFirmeFissureFixerFlairerFlammeFlasqueFlatteurFle/auFle-cheFleurFlexionFloconFloreFluctuerFluideFluvialFolieFonderieFongibleFontaineForcerForgeronFormulerFortuneFossileFoudreFouge-reFouillerFoulureFourmiFragileFraiseFranchirFrapperFrayeurFre/gateFreinerFrelonFre/mirFre/ne/sieFre-reFriableFrictionFrissonFrivoleFroidFromageFrontalFrotterFruitFugitifFuiteFureurFurieuxFurtifFusionFuturGagnerGalaxieGalerieGambaderGarantirGardienGarnirGarrigueGazelleGazonGe/antGe/latineGe/luleGendarmeGe/ne/ralGe/nieGenouGentilGe/ologieGe/ome-treGe/raniumGermeGestuelGeyserGibierGiclerGirafeGivreGlaceGlaiveGlisserGlobeGloireGlorieuxGolfeurGommeGonflerGorgeGorilleGoudronGouffreGoulotGoupilleGourmandGoutteGraduelGraffitiGraineGrandGrappinGratuitGravirGrenatGriffureGrillerGrimperGrognerGronderGrotteGroupeGrugerGrutierGruye-reGue/pardGuerrierGuideGuimauveGuitareGustatifGymnasteGyrostatHabitudeHachoirHalteHameauHangarHannetonHaricotHarmonieHarponHasardHe/liumHe/matomeHerbeHe/rissonHermineHe/ronHe/siterHeureuxHibernerHibouHilarantHistoireHiverHomardHommageHomoge-neHonneurHonorerHonteuxHordeHorizonHorlogeHormoneHorribleHouleuxHousseHublotHuileuxHumainHumbleHumideHumourHurlerHydromelHygie-neHymneHypnoseIdylleIgnorerIguaneIlliciteIllusionImageImbiberImiterImmenseImmobileImmuableImpactImpe/rialImplorerImposerImprimerImputerIncarnerIncendieIncidentInclinerIncoloreIndexerIndiceInductifIne/ditIneptieInexactInfiniInfligerInformerInfusionInge/rerInhalerInhiberInjecterInjureInnocentInoculerInonderInscrireInsecteInsigneInsoliteInspirerInstinctInsulterIntactIntenseIntimeIntrigueIntuitifInutileInvasionInventerInviterInvoquerIroniqueIrradierIrre/elIrriterIsolerIvoireIvresseJaguarJaillirJambeJanvierJardinJaugerJauneJavelotJetableJetonJeudiJeunesseJoindreJoncherJonglerJoueurJouissifJournalJovialJoyauJoyeuxJubilerJugementJuniorJuponJuristeJusticeJuteuxJuve/nileKayakKimonoKiosqueLabelLabialLabourerLace/rerLactoseLaguneLaineLaisserLaitierLambeauLamelleLampeLanceurLangageLanterneLapinLargeurLarmeLaurierLavaboLavoirLectureLe/galLe/gerLe/gumeLessiveLettreLevierLexiqueLe/zardLiasseLibe/rerLibreLicenceLicorneLie-geLie-vreLigatureLigoterLigueLimerLimiteLimonadeLimpideLine/aireLingotLionceauLiquideLisie-reListerLithiumLitigeLittoralLivreurLogiqueLointainLoisirLombricLoterieLouerLourdLoutreLouveLoyalLubieLucideLucratifLueurLugubreLuisantLumie-reLunaireLundiLuronLutterLuxueuxMachineMagasinMagentaMagiqueMaigreMaillonMaintienMairieMaisonMajorerMalaxerMale/ficeMalheurMaliceMalletteMammouthMandaterManiableManquantManteauManuelMarathonMarbreMarchandMardiMaritimeMarqueurMarronMartelerMascotteMassifMate/rielMatie-reMatraqueMaudireMaussadeMauveMaximalMe/chantMe/connuMe/dailleMe/decinMe/diterMe/duseMeilleurMe/langeMe/lodieMembreMe/moireMenacerMenerMenhirMensongeMentorMercrediMe/riteMerleMessagerMesureMe/talMe/te/oreMe/thodeMe/tierMeubleMiaulerMicrobeMietteMignonMigrerMilieuMillionMimiqueMinceMine/ralMinimalMinorerMinuteMiracleMiroiterMissileMixteMobileModerneMoelleuxMondialMoniteurMonnaieMonotoneMonstreMontagneMonumentMoqueurMorceauMorsureMortierMoteurMotifMoucheMoufleMoulinMoussonMoutonMouvantMultipleMunitionMurailleMure-neMurmureMuscleMuse/umMusicienMutationMuterMutuelMyriadeMyrtilleMyste-reMythiqueNageurNappeNarquoisNarrerNatationNationNatureNaufrageNautiqueNavireNe/buleuxNectarNe/fasteNe/gationNe/gligerNe/gocierNeigeNerveuxNettoyerNeuroneNeutronNeveuNicheNickelNitrateNiveauNobleNocifNocturneNoirceurNoisetteNomadeNombreuxNommerNormatifNotableNotifierNotoireNourrirNouveauNovateurNovembreNoviceNuageNuancerNuireNuisibleNume/roNuptialNuqueNutritifObe/irObjectifObligerObscurObserverObstacleObtenirObturerOccasionOccuperOce/anOctobreOctroyerOctuplerOculaireOdeurOdorantOffenserOfficierOffrirOgiveOiseauOisillonOlfactifOlivierOmbrageOmettreOnctueuxOndulerOne/reuxOniriqueOpaleOpaqueOpe/rerOpinionOpportunOpprimerOpterOptiqueOrageuxOrangeOrbiteOrdonnerOreilleOrganeOrgueilOrificeOrnementOrqueOrtieOscillerOsmoseOssatureOtarieOuraganOursonOutilOutragerOuvrageOvationOxydeOxyge-neOzonePaisiblePalacePalmare-sPalourdePalperPanachePandaPangolinPaniquerPanneauPanoramaPantalonPapayePapierPapoterPapyrusParadoxeParcelleParesseParfumerParlerParoleParrainParsemerPartagerParureParvenirPassionPaste-quePaternelPatiencePatronPavillonPavoiserPayerPaysagePeignePeintrePelagePe/licanPellePelousePeluchePendulePe/ne/trerPe/niblePensifPe/nuriePe/pitePe/plumPerdrixPerforerPe/riodePermuterPerplexePersilPertePeserPe/talePetitPe/trirPeuplePharaonPhobiePhoquePhotonPhrasePhysiquePianoPicturalPie-cePierrePieuvrePilotePinceauPipettePiquerPiroguePiscinePistonPivoterPixelPizzaPlacardPlafondPlaisirPlanerPlaquePlastronPlateauPleurerPlexusPliagePlombPlongerPluiePlumagePochettePoe/siePoe-tePointePoirierPoissonPoivrePolairePolicierPollenPolygonePommadePompierPonctuelPonde/rerPoneyPortiquePositionPosse/derPosturePotagerPoteauPotionPoucePoulainPoumonPourprePoussinPouvoirPrairiePratiquePre/cieuxPre/direPre/fixePre/ludePre/nomPre/sencePre/textePre/voirPrimitifPrincePrisonPriverProble-meProce/derProdigeProfondProgre-sProieProjeterProloguePromenerPropreProspe-reProte/gerProuesseProverbePrudencePruneauPsychosePublicPuceronPuiserPulpePulsarPunaisePunitifPupitrePurifierPuzzlePyramideQuasarQuerelleQuestionQuie/tudeQuitterQuotientRacineRaconterRadieuxRagondinRaideurRaisinRalentirRallongeRamasserRapideRasageRatisserRavagerRavinRayonnerRe/actifRe/agirRe/aliserRe/animerRecevoirRe/citerRe/clamerRe/colterRecruterReculerRecyclerRe/digerRedouterRefaireRe/flexeRe/formerRefrainRefugeRe/galienRe/gionRe/glageRe/gulierRe/ite/rerRejeterRejouerRelatifReleverReliefRemarqueReme-deRemiseRemonterRemplirRemuerRenardRenfortReniflerRenoncerRentrerRenvoiReplierReporterRepriseReptileRequinRe/serveRe/sineuxRe/soudreRespectResterRe/sultatRe/tablirRetenirRe/ticuleRetomberRetracerRe/unionRe/ussirRevancheRevivreRe/volteRe/vulsifRichesseRideauRieurRigideRigolerRincerRiposterRisibleRisqueRituelRivalRivie-reRocheuxRomanceRompreRonceRondinRoseauRosierRotatifRotorRotuleRougeRouilleRouleauRoutineRoyaumeRubanRubisRucheRuelleRugueuxRuinerRuisseauRuserRustiqueRythmeSablerSaboterSabreSacocheSafariSagesseSaisirSaladeSaliveSalonSaluerSamediSanctionSanglierSarcasmeSardineSaturerSaugrenuSaumonSauterSauvageSavantSavonnerScalpelScandaleSce/le/ratSce/narioSceptreSche/maScienceScinderScoreScrutinSculpterSe/anceSe/cableSe/cherSecouerSe/cre/terSe/datifSe/duireSeigneurSe/jourSe/lectifSemaineSemblerSemenceSe/minalSe/nateurSensibleSentenceSe/parerSe/quenceSereinSergentSe/rieuxSerrureSe/rumServiceSe/sameSe/virSevrageSextupleSide/ralSie-cleSie/gerSifflerSigleSignalSilenceSiliciumSimpleSince-reSinistreSiphonSiropSismiqueSituerSkierSocialSocleSodiumSoigneuxSoldatSoleilSolitudeSolubleSombreSommeilSomnolerSondeSongeurSonnetteSonoreSorcierSortirSosieSottiseSoucieuxSoudureSouffleSouleverSoupapeSourceSoutirerSouvenirSpacieuxSpatialSpe/cialSphe-reSpiralStableStationSternumStimulusStipulerStrictStudieuxStupeurStylisteSublimeSubstratSubtilSubvenirSucce-sSucreSuffixeSugge/rerSuiveurSulfateSuperbeSupplierSurfaceSuricateSurmenerSurpriseSursautSurvieSuspectSyllabeSymboleSyme/trieSynapseSyntaxeSyste-meTabacTablierTactileTaillerTalentTalismanTalonnerTambourTamiserTangibleTapisTaquinerTarderTarifTartineTasseTatamiTatouageTaupeTaureauTaxerTe/moinTemporelTenailleTendreTeneurTenirTensionTerminerTerneTerribleTe/tineTexteThe-meThe/orieThe/rapieThoraxTibiaTie-deTimideTirelireTiroirTissuTitaneTitreTituberTobogganTole/rantTomateToniqueTonneauToponymeTorcheTordreTornadeTorpilleTorrentTorseTortueTotemToucherTournageTousserToxineTractionTraficTragiqueTrahirTrainTrancherTravailTre-fleTremperTre/sorTreuilTriageTribunalTricoterTrilogieTriompheTriplerTriturerTrivialTromboneTroncTropicalTroupeauTuileTulipeTumulteTunnelTurbineTuteurTutoyerTuyauTympanTyphonTypiqueTyranUbuesqueUltimeUltrasonUnanimeUnifierUnionUniqueUnitaireUniversUraniumUrbainUrticantUsageUsineUsuelUsureUtileUtopieVacarmeVaccinVagabondVagueVaillantVaincreVaisseauValableValiseVallonValveVampireVanilleVapeurVarierVaseuxVassalVasteVecteurVedetteVe/ge/talVe/hiculeVeinardVe/loceVendrediVe/ne/rerVengerVenimeuxVentouseVerdureVe/rinVernirVerrouVerserVertuVestonVe/te/ranVe/tusteVexantVexerViaducViandeVictoireVidangeVide/oVignetteVigueurVilainVillageVinaigreViolonVipe-reVirementVirtuoseVirusVisageViseurVisionVisqueuxVisuelVitalVitesseViticoleVitrineVivaceVivipareVocationVoguerVoileVoisinVoitureVolailleVolcanVoltigerVolumeVoraceVortexVoterVouloirVoyageVoyelleWagonXe/nonYachtZe-breZe/nithZesteZoologie\";\n\nlet wordlist: Array = null;\nconst lookup: { [word: string]: number } = { }\n\nfunction dropDiacritic(word: string): string {\n logger.checkNormalize();\n return toUtf8String(Array.prototype.filter.call(toUtf8Bytes(word.normalize(\"NFD\").toLowerCase()), (c: number) => {\n return ((c >= 65 && c <= 90) || (c >= 97 && c <= 123));\n }));\n}\n\nfunction expand(word: string): string {\n const output: Array = [];\n\n Array.prototype.forEach.call(toUtf8Bytes(word), (c: number) => {\n // Acute accent\n if (c === 47) {\n output.push(204);\n output.push(129);\n\n // Grave accent\n } else if (c === 45) {\n output.push(204);\n output.push(128);\n\n } else {\n output.push(c);\n }\n });\n\n return toUtf8String(output);\n}\n\nfunction loadWords(lang: Wordlist): void {\n if (wordlist != null) { return; }\n wordlist = words.replace(/([A-Z])/g, \" $1\").toLowerCase().substring(1).split(\" \").map((w) => expand(w));\n wordlist.forEach((word, index) => {\n lookup[dropDiacritic(word)] = index;\n });\n\n // Verify the computed list matches the official list\n /* istanbul ignore if */\n if (Wordlist.check(lang) !== \"0x51deb7ae009149dc61a6bd18a918eb7ac78d2775726c68e598b92d002519b045\") {\n wordlist = null;\n throw new Error(\"BIP39 Wordlist for fr (French) FAILED\");\n }\n}\n\nclass LangFr extends Wordlist {\n constructor() {\n super(\"fr\");\n }\n\n getWord(index: number): string {\n loadWords(this);\n return wordlist[index];\n }\n\n getWordIndex(word: string): number {\n loadWords(this);\n return lookup[dropDiacritic(word)];\n }\n}\n\nconst langFr = new LangFr();\nWordlist.register(langFr);\n\nexport { langFr };\n", "\"use strict\";\n\nimport { hexlify } from \"@ethersproject/bytes\";\nimport { toUtf8Bytes, toUtf8String } from \"@ethersproject/strings\";\n\nimport { logger, Wordlist } from \"./wordlist\";\n\n\nconst data = [\n\n // 4-kana words\n \"AQRASRAGBAGUAIRAHBAghAURAdBAdcAnoAMEAFBAFCBKFBQRBSFBCXBCDBCHBGFBEQBpBBpQBIkBHNBeOBgFBVCBhBBhNBmOBmRBiHBiFBUFBZDBvFBsXBkFBlcBjYBwDBMBBTBBTRBWBBWXXaQXaRXQWXSRXCFXYBXpHXOQXHRXhRXuRXmXXbRXlXXwDXTRXrCXWQXWGaBWaKcaYgasFadQalmaMBacAKaRKKBKKXKKjKQRKDRKCYKCRKIDKeVKHcKlXKjHKrYNAHNBWNaRNKcNIBNIONmXNsXNdXNnBNMBNRBNrXNWDNWMNFOQABQAHQBrQXBQXFQaRQKXQKDQKOQKFQNBQNDQQgQCXQCDQGBQGDQGdQYXQpBQpQQpHQLXQHuQgBQhBQhCQuFQmXQiDQUFQZDQsFQdRQkHQbRQlOQlmQPDQjDQwXQMBQMDQcFQTBQTHQrDDXQDNFDGBDGQDGRDpFDhFDmXDZXDbRDMYDRdDTRDrXSAhSBCSBrSGQSEQSHBSVRShYShkSyQSuFSiBSdcSoESocSlmSMBSFBSFKSFNSFdSFcCByCaRCKcCSBCSRCCrCGbCEHCYXCpBCpQCIBCIHCeNCgBCgFCVECVcCmkCmwCZXCZFCdRClOClmClFCjDCjdCnXCwBCwXCcRCFQCFjGXhGNhGDEGDMGCDGCHGIFGgBGVXGVEGVRGmXGsXGdYGoSGbRGnXGwXGwDGWRGFNGFLGFOGFdGFkEABEBDEBFEXOEaBEKSENBENDEYXEIgEIkEgBEgQEgHEhFEudEuFEiBEiHEiFEZDEvBEsXEsFEdXEdREkFEbBEbRElFEPCEfkEFNYAEYAhYBNYQdYDXYSRYCEYYoYgQYgRYuRYmCYZTYdBYbEYlXYjQYRbYWRpKXpQopQnpSFpCXpIBpISphNpdBpdRpbRpcZpFBpFNpFDpFopFrLADLBuLXQLXcLaFLCXLEhLpBLpFLHXLeVLhILdHLdRLoDLbRLrXIABIBQIBCIBsIBoIBMIBRIXaIaRIKYIKRINBINuICDIGBIIDIIkIgRIxFIyQIiHIdRIbYIbRIlHIwRIMYIcRIRVITRIFBIFNIFQOABOAFOBQOaFONBONMOQFOSFOCDOGBOEQOpBOLXOIBOIFOgQOgFOyQOycOmXOsXOdIOkHOMEOMkOWWHBNHXNHXWHNXHDuHDRHSuHSRHHoHhkHmRHdRHkQHlcHlRHwBHWcgAEgAggAkgBNgBQgBEgXOgYcgLXgHjgyQgiBgsFgdagMYgWSgFQgFEVBTVXEVKBVKNVKDVKYVKRVNBVNYVDBVDxVSBVSRVCjVGNVLXVIFVhBVhcVsXVdRVbRVlRhBYhKYhDYhGShxWhmNhdahdkhbRhjohMXhTRxAXxXSxKBxNBxEQxeNxeQxhXxsFxdbxlHxjcxFBxFNxFQxFOxFoyNYyYoybcyMYuBQuBRuBruDMuCouHBudQukkuoBulVuMXuFEmCYmCRmpRmeDmiMmjdmTFmFQiADiBOiaRiKRiNBiNRiSFiGkiGFiERipRiLFiIFihYibHijBijEiMXiWBiFBiFCUBQUXFUaRUNDUNcUNRUNFUDBUSHUCDUGBUGFUEqULNULoUIRUeEUeYUgBUhFUuRUiFUsXUdFUkHUbBUjSUjYUwXUMDUcHURdUTBUrBUrXUrQZAFZXZZaRZKFZNBZQFZCXZGBZYdZpBZLDZIFZHXZHNZeQZVRZVFZmXZiBZvFZdFZkFZbHZbFZwXZcCZcRZRBvBQvBGvBLvBWvCovMYsAFsBDsaRsKFsNFsDrsSHsSFsCXsCRsEBsEHsEfspBsLBsLDsIgsIRseGsbRsFBsFQsFSdNBdSRdCVdGHdYDdHcdVbdySduDdsXdlRdwXdWYdWcdWRkBMkXOkaRkNIkNFkSFkCFkYBkpRkeNkgBkhVkmXksFklVkMBkWDkFNoBNoaQoaFoNBoNXoNaoNEoSRoEroYXoYCoYbopRopFomXojkowXorFbBEbEIbdBbjYlaRlDElMXlFDjKjjSRjGBjYBjYkjpRjLXjIBjOFjeVjbRjwBnXQnSHnpFnLXnINnMBnTRwXBwXNwXYwNFwQFwSBwGFwLXwLDweNwgBwuHwjDwnXMBXMpFMIBMeNMTHcaQcNBcDHcSFcCXcpBcLXcLDcgFcuFcnXcwXccDcTQcrFTQErXNrCHrpFrgFrbFrTHrFcWNYWNbWEHWMXWTR\",\n\n // 5-kana words\n \"ABGHABIJAEAVAYJQALZJAIaRAHNXAHdcAHbRAZJMAZJRAZTRAdVJAklmAbcNAjdRAMnRAMWYAWpRAWgRAFgBAFhBAFdcBNJBBNJDBQKBBQhcBQlmBDEJBYJkBYJTBpNBBpJFBIJBBIJDBIcABOKXBOEJBOVJBOiJBOZJBepBBeLXBeIFBegBBgGJBVJXBuocBiJRBUJQBlXVBlITBwNFBMYVBcqXBTlmBWNFBWiJBWnRBFGHBFwXXKGJXNJBXNZJXDTTXSHSXSVRXSlHXCJDXGQJXEhXXYQJXYbRXOfXXeNcXVJFXhQJXhEJXdTRXjdXXMhBXcQTXRGBXTEBXTnQXFCXXFOFXFgFaBaFaBNJaBCJaBpBaBwXaNJKaNJDaQIBaDpRaEPDaHMFamDJalEJaMZJaFaFaFNBaFQJaFLDaFVHKBCYKBEBKBHDKXaFKXGdKXEJKXpHKXIBKXZDKXwXKKwLKNacKNYJKNJoKNWcKDGdKDTRKChXKGaRKGhBKGbRKEBTKEaRKEPTKLMDKLWRKOHDKVJcKdBcKlIBKlOPKFSBKFEPKFpFNBNJNJBQNBGHNBEPNBHXNBgFNBVXNBZDNBsXNBwXNNaRNNJDNNJENNJkNDCJNDVDNGJRNJiDNZJNNsCJNJFNNFSBNFCXNFEPNFLXNFIFQJBFQCaRQJEQQLJDQLJFQIaRQOqXQHaFQHHQQVJXQVJDQhNJQmEIQZJFQsJXQJrFQWbRDJABDBYJDXNFDXCXDXLXDXZDDXsJDQqXDSJFDJCXDEPkDEqXDYmQDpSJDOCkDOGQDHEIDVJDDuDuDWEBDJFgSBNDSBSFSBGHSBIBSBTQSKVYSJQNSJQiSJCXSEqXSJYVSIiJSOMYSHAHSHaQSeCFSepQSegBSHdHSHrFShSJSJuHSJUFSkNRSrSrSWEBSFaHSJFQSFCXSFGDSFYXSFODSFgBSFVXSFhBSFxFSFkFSFbBSFMFCADdCJXBCXaFCXKFCXNFCXCXCXGBCXEJCXYBCXLDCXIBCXOPCXHXCXgBCXhBCXiBCXlDCXcHCJNBCJNFCDCJCDGBCDVXCDhBCDiDCDJdCCmNCpJFCIaRCOqXCHCHCHZJCViJCuCuCmddCJiFCdNBCdHhClEJCnUJCreSCWlgCWTRCFBFCFNBCFYBCFVFCFhFCFdSCFTBCFWDGBNBGBQFGJBCGBEqGBpBGBgQGNBEGNJYGNkOGNJRGDUFGJpQGHaBGJeNGJeEGVBlGVKjGiJDGvJHGsVJGkEBGMIJGWjNGFBFGFCXGFGBGFYXGFpBGFMFEASJEAWpEJNFECJVEIXSEIQJEOqXEOcFEeNcEHEJEHlFEJgFEhlmEmDJEmZJEiMBEUqXEoSREPBFEPXFEPKFEPSFEPEFEPpFEPLXEPIBEJPdEPcFEPTBEJnXEqlHEMpREFCXEFODEFcFYASJYJAFYBaBYBVXYXpFYDhBYCJBYJGFYYbRYeNcYJeVYiIJYZJcYvJgYvJRYJsXYsJFYMYMYreVpBNHpBEJpBwXpQxFpYEJpeNDpJeDpeSFpeCHpHUJpHbBpHcHpmUJpiiJpUJrpsJuplITpFaBpFQqpFGBpFEfpFYBpFpBpFLJpFIDpFgBpFVXpFyQpFuFpFlFpFjDpFnXpFwXpJFMpFTBLXCJLXEFLXhFLXUJLXbFLalmLNJBLSJQLCLCLGJBLLDJLHaFLeNFLeSHLeCXLepFLhaRLZsJLsJDLsJrLocaLlLlLMdbLFNBLFSBLFEHLFkFIBBFIBXFIBaQIBKXIBSFIBpHIBLXIBgBIBhBIBuHIBmXIBiFIBZXIBvFIBbFIBjQIBwXIBWFIKTRIQUJIDGFICjQIYSRIINXIJeCIVaRImEkIZJFIvJRIsJXIdCJIJoRIbBQIjYBIcqXITFVIreVIFKFIFSFIFCJIFGFIFLDIFIBIJFOIFgBIFVXIJFhIFxFIFmXIFdHIFbBIJFrIJFWOBGBOQfXOOKjOUqXOfXBOqXEOcqXORVJOFIBOFlDHBIOHXiFHNTRHCJXHIaRHHJDHHEJHVbRHZJYHbIBHRsJHRkDHWlmgBKFgBSBgBCDgBGHgBpBgBIBgBVJgBuBgBvFgKDTgQVXgDUJgGSJgOqXgmUMgZIJgTUJgWIEgFBFgFNBgFDJgFSFgFGBgFYXgJFOgFgQgFVXgFhBgFbHgJFWVJABVQKcVDgFVOfXVeDFVhaRVmGdViJYVMaRVFNHhBNDhBCXhBEqhBpFhBLXhNJBhSJRheVXhhKEhxlmhZIJhdBQhkIJhbMNhMUJhMZJxNJgxQUJxDEkxDdFxSJRxplmxeSBxeCXxeGFxeYXxepQxegBxWVcxFEQxFLXxFIBxFgBxFxDxFZtxFdcxFbBxFwXyDJXyDlcuASJuDJpuDIBuCpJuGSJuIJFueEFuZIJusJXudWEuoIBuWGJuFBcuFKEuFNFuFQFuFDJuFGJuFVJuFUtuFdHuFTBmBYJmNJYmQhkmLJDmLJomIdXmiJYmvJRmsJRmklmmMBymMuCmclmmcnQiJABiJBNiJBDiBSFiBCJiBEFiBYBiBpFiBLXiBTHiJNciDEfiCZJiECJiJEqiOkHiHKFieNDiHJQieQcieDHieSFieCXieGFieEFieIHiegFihUJixNoioNXiFaBiFKFiFNDiFEPiFYXitFOitFHiFgBiFVEiFmXiFitiFbBiFMFiFrFUCXQUIoQUIJcUHQJUeCEUHwXUUJDUUqXUdWcUcqXUrnQUFNDUFSHUFCFUFEfUFLXUtFOZBXOZXSBZXpFZXVXZEQJZEJkZpDJZOqXZeNHZeCDZUqXZFBQZFEHZFLXvBAFvBKFvBCXvBEPvBpHvBIDvBgFvBuHvQNJvFNFvFGBvFIBvJFcsXCDsXLXsXsXsXlFsXcHsQqXsJQFsEqXseIFsFEHsFjDdBxOdNpRdNJRdEJbdpJRdhZJdnSJdrjNdFNJdFQHdFhNkNJDkYaRkHNRkHSRkVbRkuMRkjSJkcqDoSJFoEiJoYZJoOfXohEBoMGQocqXbBAFbBXFbBaFbBNDbBGBbBLXbBTBbBWDbGJYbIJHbFQqbFpQlDgQlOrFlVJRjGEBjZJRnXvJnXbBnEfHnOPDngJRnxfXnUJWwXEJwNpJwDpBwEfXwrEBMDCJMDGHMDIJMLJDcQGDcQpHcqXccqNFcqCXcFCJRBSBRBGBRBEJRBpQTBNFTBQJTBpBTBVXTFABTFSBTFCFTFGBTFMDrXCJrXLDrDNJrEfHrFQJrFitWNjdWNTR\",\n\n // 6-kana words\n \"AKLJMANOPFASNJIAEJWXAYJNRAIIbRAIcdaAeEfDAgidRAdjNYAMYEJAMIbRAFNJBAFpJFBBIJYBDZJFBSiJhBGdEBBEJfXBEJqXBEJWRBpaUJBLXrXBIYJMBOcfXBeEfFBestXBjNJRBcDJOBFEqXXNvJRXDMBhXCJNYXOAWpXONJWXHDEBXeIaRXhYJDXZJSJXMDJOXcASJXFVJXaBQqXaBZJFasXdQaFSJQaFEfXaFpJHaFOqXKBNSRKXvJBKQJhXKEJQJKEJGFKINJBKIJjNKgJNSKVElmKVhEBKiJGFKlBgJKjnUJKwsJYKMFIJKFNJDKFIJFKFOfXNJBSFNJBCXNBpJFNJBvQNJBMBNJLJXNJOqXNJeCXNJeGFNdsJCNbTKFNwXUJQNFEPQDiJcQDMSJQSFpBQGMQJQJeOcQyCJEQUJEBQJFBrQFEJqDXDJFDJXpBDJXIMDGiJhDIJGRDJeYcDHrDJDVXgFDkAWpDkIgRDjDEqDMvJRDJFNFDJFIBSKclmSJQOFSJQVHSJQjDSJGJBSJGJFSECJoSHEJqSJHTBSJVJDSViJYSZJNBSJsJDSFSJFSFEfXSJFLXCBUJVCJXSBCJXpBCXVJXCJXsXCJXdFCJNJHCLIJgCHiJFCVNJMChCJhCUHEJCsJTRCJdYcCoQJCCFEfXCFIJgCFUJxCFstFGJBaQGJBIDGQJqXGYJNRGJHKFGeQqDGHEJFGJeLXGHIiJGHdBlGUJEBGkIJTGFQPDGJFEqEAGegEJIJBEJVJXEhQJTEiJNcEJZJFEJoEqEjDEqEPDsXEPGJBEPOqXEPeQFEfDiDEJfEFEfepQEfMiJEqXNBEqDIDEqeSFEqVJXEMvJRYXNJDYXEJHYKVJcYYJEBYJeEcYJUqXYFpJFYFstXpAZJMpBSJFpNBNFpeQPDpHLJDpHIJFpHgJFpeitFpHZJFpJFADpFSJFpJFCJpFOqXpFitBpJFZJLXIJFLIJgRLVNJWLVHJMLwNpJLFGJBLFLJDLFOqXLJFUJIBDJXIBGJBIJBYQIJBIBIBOqXIBcqDIEGJFILNJTIIJEBIOiJhIJeNBIJeIBIhiJIIWoTRIJFAHIJFpBIJFuHIFUtFIJFTHOSBYJOEcqXOHEJqOvBpFOkVJrObBVJOncqDOcNJkHhNJRHuHJuHdMhBgBUqXgBsJXgONJBgHNJDgHHJQgJeitgHsJXgJyNagyDJBgZJDrgsVJQgkEJNgkjSJgJFAHgFCJDgFZtMVJXNFVXQfXVJXDJVXoQJVQVJQVDEfXVDvJHVEqNFVeQfXVHpJFVHxfXVVJSRVVmaRVlIJOhCXVJhHjYkhxCJVhWVUJhWiJcxBNJIxeEqDxfXBFxcFEPxFSJFxFYJXyBDQJydaUJyFOPDuYCJYuLvJRuHLJXuZJLDuFOPDuFZJHuFcqXmKHJdmCQJcmOsVJiJAGFitLCFieOfXiestXiZJMEikNJQirXzFiFQqXiFIJFiFZJFiFvtFUHpJFUteIcUteOcUVCJkUhdHcUbEJEUJqXQUMNJhURjYkUFitFZDGJHZJIxDZJVJXZJFDJZJFpQvBNJBvBSJFvJxBrseQqDsVFVJdFLJDkEJNBkmNJYkFLJDoQJOPoGsJRoEAHBoEJfFbBQqDbBZJHbFVJXlFIJBjYIrXjeitcjjCEBjWMNBwXQfXwXOaFwDsJXwCJTRwrCZJMDNJQcDDJFcqDOPRYiJFTBsJXTQIJBTFEfXTFLJDrXEJFrEJXMrFZJFWEJdEWYTlm\",\n\n // 7-kana words\n \"ABCDEFACNJTRAMBDJdAcNJVXBLNJEBXSIdWRXErNJkXYDJMBXZJCJaXMNJaYKKVJKcKDEJqXKDcNJhKVJrNYKbgJVXKFVJSBNBYBwDNJeQfXNJeEqXNhGJWENJFiJRQlIJbEQJfXxDQqXcfXQFNDEJQFwXUJDYcnUJDJIBgQDIUJTRDJFEqDSJQSJFSJQIJFSOPeZtSJFZJHCJXQfXCTDEqFGJBSJFGJBOfXGJBcqXGJHNJDGJRLiJEJfXEqEJFEJPEFpBEJYJBZJFYBwXUJYiJMEBYJZJyTYTONJXpQMFXFpeGIDdpJFstXpJFcPDLBVSJRLHQJqXLJFZJFIJBNJDIJBUqXIBkFDJIJEJPTIYJGWRIJeQPDIJeEfHIJFsJXOqGDSFHXEJqXgJCsJCgGQJqXgdQYJEgFMFNBgJFcqDVJwXUJVJFZJchIgJCCxOEJqXxOwXUJyDJBVRuscisciJBiJBieUtqXiJFDJkiFsJXQUGEZJcUJFsJXZtXIrXZDZJDrZJFNJDZJFstXvJFQqXvJFCJEsJXQJqkhkNGBbDJdTRbYJMEBlDwXUJMEFiJFcfXNJDRcNJWMTBLJXC\",\n\n // 8-kana words\n \"BraFUtHBFSJFdbNBLJXVJQoYJNEBSJBEJfHSJHwXUJCJdAZJMGjaFVJXEJPNJBlEJfFiJFpFbFEJqIJBVJCrIBdHiJhOPFChvJVJZJNJWxGFNIFLueIBQJqUHEJfUFstOZJDrlXEASJRlXVJXSFwVJNJWD\",\n\n // 9-kana words\n \"QJEJNNJDQJEJIBSFQJEJxegBQJEJfHEPSJBmXEJFSJCDEJqXLXNJFQqXIcQsFNJFIFEJqXUJgFsJXIJBUJEJfHNFvJxEqXNJnXUJFQqD\",\n\n // 10-kana words\n \"IJBEJqXZJ\"\n];\n\n// Maps each character into its kana value (the index)\nconst mapping = \"~~AzB~X~a~KN~Q~D~S~C~G~E~Y~p~L~I~O~eH~g~V~hxyumi~~U~~Z~~v~~s~~dkoblPjfnqwMcRTr~W~~~F~~~~~Jt\"\n\nlet wordlist: Array = null;\n\nfunction hex(word: string) {\n return hexlify(toUtf8Bytes(word));\n}\n\nconst KiYoKu = \"0xe3818de38284e3818f\";\nconst KyoKu = \"0xe3818de38283e3818f\"\n\nfunction loadWords(lang: Wordlist) {\n if (wordlist !== null) { return; }\n\n wordlist = [];\n\n // Transforms for normalizing (sort is a not quite UTF-8)\n const transform: { [key: string]: string | boolean } = {};\n\n // Delete the diacritic marks\n transform[toUtf8String([227, 130, 154])] = false;\n transform[toUtf8String([227, 130, 153])] = false;\n\n // Some simple transforms that sort out most of the order\n transform[toUtf8String([227, 130, 133])] = toUtf8String([227, 130, 134]);\n transform[toUtf8String([227, 129, 163])] = toUtf8String([227, 129, 164]);\n transform[toUtf8String([227, 130, 131])] = toUtf8String([227, 130, 132]);\n transform[toUtf8String([227, 130, 135])] = toUtf8String([227, 130, 136]);\n\n\n // Normalize words using the transform\n function normalize(word: string) {\n let result = \"\";\n for (let i = 0; i < word.length; i++) {\n let kana = word[i];\n const target = transform[kana];\n if (target === false) { continue; }\n if (target) { kana = target; }\n result += kana;\n }\n return result;\n }\n\n // Sort how the Japanese list is sorted\n function sortJapanese(a: string, b: string) {\n a = normalize(a);\n b = normalize(b);\n if (a < b) { return -1; }\n if (a > b) { return 1; }\n return 0;\n }\n\n // Load all the words\n for (let length = 3; length <= 9; length++) {\n const d = data[length - 3];\n for (let offset = 0; offset < d.length; offset += length) {\n const word = [];\n for (let i = 0; i < length; i++) {\n const k = mapping.indexOf(d[offset + i]);\n word.push(227);\n word.push((k & 0x40) ? 130: 129);\n word.push((k & 0x3f) + 128);\n }\n wordlist.push(toUtf8String(word));\n }\n }\n wordlist.sort(sortJapanese);\n\n // For some reason kyoku and kiyoku are flipped in node (!!).\n // The order SHOULD be:\n // - kyoku\n // - kiyoku\n\n // This should ignore \"if\", but that doesn't work here??\n /* istanbul ignore next */\n if (hex(wordlist[442]) === KiYoKu && hex(wordlist[443]) === KyoKu) {\n const tmp = wordlist[442];\n wordlist[442] = wordlist[443];\n wordlist[443] = tmp;\n }\n\n // Verify the computed list matches the official list\n /* istanbul ignore if */\n if (Wordlist.check(lang) !== \"0xcb36b09e6baa935787fd762ce65e80b0c6a8dabdfbc3a7f86ac0e2c4fd111600\") {\n wordlist = null;\n throw new Error(\"BIP39 Wordlist for ja (Japanese) FAILED\");\n }\n}\n\nclass LangJa extends Wordlist {\n constructor() {\n super(\"ja\");\n }\n\n getWord(index: number): string {\n loadWords(this);\n return wordlist[index];\n }\n\n getWordIndex(word: string): number {\n loadWords(this);\n return wordlist.indexOf(word);\n }\n\n split(mnemonic: string): Array {\n logger.checkNormalize();\n return mnemonic.split(/(?:\\u3000| )+/g);\n }\n\n join(words: Array): string {\n return words.join(\"\\u3000\");\n }\n}\n\nconst langJa = new LangJa();\nWordlist.register(langJa);\n\nexport { langJa };\n\n", "\"use strict\";\n\nimport { toUtf8String } from \"@ethersproject/strings\";\n\nimport { Wordlist } from \"./wordlist\";\n\n\nconst data = [\n \"OYAa\",\n \"ATAZoATBl3ATCTrATCl8ATDloATGg3ATHT8ATJT8ATJl3ATLlvATLn4ATMT8ATMX8ATMboATMgoAToLbAToMTATrHgATvHnAT3AnAT3JbAT3MTAT8DbAT8JTAT8LmAT8MYAT8MbAT#LnAUHT8AUHZvAUJXrAUJX8AULnrAXJnvAXLUoAXLgvAXMn6AXRg3AXrMbAX3JTAX3QbAYLn3AZLgvAZrSUAZvAcAZ8AaAZ8AbAZ8AnAZ8HnAZ8LgAZ8MYAZ8MgAZ8OnAaAboAaDTrAaFTrAaJTrAaJboAaLVoAaMXvAaOl8AaSeoAbAUoAbAg8AbAl4AbGnrAbMT8AbMXrAbMn4AbQb8AbSV8AbvRlAb8AUAb8AnAb8HgAb8JTAb8NTAb8RbAcGboAcLnvAcMT8AcMX8AcSToAcrAaAcrFnAc8AbAc8MgAfGgrAfHboAfJnvAfLV8AfLkoAfMT8AfMnoAfQb8AfScrAfSgrAgAZ8AgFl3AgGX8AgHZvAgHgrAgJXoAgJX8AgJboAgLZoAgLn4AgOX8AgoATAgoAnAgoCUAgoJgAgoLXAgoMYAgoSeAgrDUAgrJTAhrFnAhrLjAhrQgAjAgoAjJnrAkMX8AkOnoAlCTvAlCV8AlClvAlFg4AlFl6AlFn3AloSnAlrAXAlrAfAlrFUAlrFbAlrGgAlrOXAlvKnAlvMTAl3AbAl3MnAnATrAnAcrAnCZ3AnCl8AnDg8AnFboAnFl3AnHX4AnHbrAnHgrAnIl3AnJgvAnLXoAnLX4AnLbrAnLgrAnLhrAnMXoAnMgrAnOn3AnSbrAnSeoAnvLnAn3OnCTGgvCTSlvCTvAUCTvKnCTvNTCT3CZCT3GUCT3MTCT8HnCUCZrCULf8CULnvCU3HnCU3JUCY6NUCbDb8CbFZoCbLnrCboOTCboScCbrFnCbvLnCb8AgCb8HgCb$LnCkLfoClBn3CloDUDTHT8DTLl3DTSU8DTrAaDTrLXDTrLjDTrOYDTrOgDTvFXDTvFnDT3HUDT3LfDUCT9DUDT4DUFVoDUFV8DUFkoDUGgrDUJnrDULl8DUMT8DUMXrDUMX4DUMg8DUOUoDUOgvDUOg8DUSToDUSZ8DbDXoDbDgoDbGT8DbJn3DbLg3DbLn4DbMXrDbMg8DbOToDboJXGTClvGTDT8GTFZrGTLVoGTLlvGTLl3GTMg8GTOTvGTSlrGToCUGTrDgGTrJYGTrScGTtLnGTvAnGTvQgGUCZrGUDTvGUFZoGUHXrGULnvGUMT8GUoMgGXoLnGXrMXGXrMnGXvFnGYLnvGZOnvGZvOnGZ8LaGZ8LmGbAl3GbDYvGbDlrGbHX3GbJl4GbLV8GbLn3GbMn4GboJTGboRfGbvFUGb3GUGb4JnGgDX3GgFl$GgJlrGgLX6GgLZoGgLf8GgOXoGgrAgGgrJXGgrMYGgrScGgvATGgvOYGnAgoGnJgvGnLZoGnLg3GnLnrGnQn8GnSbrGnrMgHTClvHTDToHTFT3HTQT8HToJTHToJgHTrDUHTrMnHTvFYHTvRfHT8MnHT8SUHUAZ8HUBb4HUDTvHUoMYHXFl6HXJX6HXQlrHXrAUHXrMnHXrSbHXvFYHXvKXHX3LjHX3MeHYvQlHZrScHZvDbHbAcrHbFT3HbFl3HbJT8HbLTrHbMT8HbMXrHbMbrHbQb8HbSX3HboDbHboJTHbrFUHbrHgHbrJTHb8JTHb8MnHb8QgHgAlrHgDT3HgGgrHgHgrHgJTrHgJT8HgLX@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!Ln$CTGXMnCToLZ4CTrHT8CT3JTrCT3RZrCT#GTvCU6GgvCU8Db8CU8GZrCU8HT8CboLl3CbrGgrCbrMU8Cb8DT3Cb8GnrCb8LX4Cb8MT8Cb8ObrCgrGgvCgrKX4Cl8FZoDTrAbvDTrDboDTrGT6DTrJgrDTrMX3DTrRZrDTrRg8DTvAVvDTvFZoDT3DT8DT3Ln3DT4HZrDT4MT8DT8AlrDT8MT8DUAkGbDUDbJnDYLnQlDbDUOYDbMTAnDbMXSnDboAT3DboFn4DboLnvDj6JTrGTCgFTGTGgFnGTJTMnGTLnPlGToJT8GTrCT3GTrLVoGTrLnvGTrMX3GTrMboGTvKl3GZClFnGZrDT3GZ8DTrGZ8FZ8GZ8MXvGZ8On8GZ8ST3GbCnQXGbMbFnGboFboGboJg3GboMXoGb3JTvGb3JboGb3Mn6Gb3Qb8GgDXLjGgMnAUGgrDloGgrHX4GgrSToGgvAXrGgvAZvGgvFbrGgvLl3GgvMnvGnDnLXGnrATrGnrMboGnuLl3HTATMnHTAgCnHTCTCTHTrGTvHTrHTvHTrJX8HTrLl8HTrMT8HTrMgoHTrOTrHTuOn3HTvAZrHTvDTvHTvGboHTvJU8HTvLl3HTvMXrHTvQb4HT4GT6HT4JT8HT4Jb#HT8Al3HT8GZrHT8GgrHT8HX4HT8Jb8HT8JnoHT8LTrHT8LgvHT8SToHT8SV8HUoJUoHUoJX8HUoLnrHXrLZoHXvAl3HX3LnrHX4FkvHX4LhrHX4MXoHX4OnoHZrAZ8HZrDb8HZrGZ8HZrJnrHZvGZ8HZvLnvHZ8JnvHZ8LhrHbCXJlHbMTAnHboJl4HbpLl3HbrJX8HbrLnrHbrMnvHbvRYrHgoSTrHgrFV8HgrGZ8HgrJXoHgrRnvHgvBb!HgvGTrHgvHX4HgvHn!HgvLTrHgvSU8HnDnLbHnFbJbHnvDn8Hn6GgvHn!BTvJTCTLnJTQgFnJTrAnvJTrLX4JTrOUoJTvFn3JTvLnrJTvNToJT3AgoJT3Jn4JT3LhvJT3ObrJT8AcrJT8Al3JT8JT8JT8JnoJT8LX4JT8LnrJT8MX3JT8Rg3JT8Sc8JUoBTvJU8AToJU8GZ8JU8GgvJU8JTrJU8JXrJU8JnrJU8LnvJU8ScvJXHnJlJXrGgvJXrJU8JXrLhrJXrMT8JXrMXrJXrQUoJXvCTvJXvGZ8JXvGgrJXvQT8JX8Ab8JX8DT8JX8GZ8JX8HZvJX8LnrJX8MT8JX8MXoJX8MnvJX8ST3JYGnCTJbAkGbJbCTAnJbLTAcJboDT3JboLb6JbrAnvJbrCn3JbrDl8JbrGboJbrIZoJbrJnvJbrMnvJbrQb4Jb8RZrJeAbAnJgJnFbJgScAnJgrATrJgvHZ8JgvMn4JlJlFbJlLiQXJlLjOnJlRbOlJlvNXoJlvRl3Jl4AcrJl8AUoJl8MnrJnFnMlJnHgGbJnoDT8JnoFV8JnoGgvJnoIT8JnoQToJnoRg3JnrCZ3JnrGgrJnrHTvJnrLf8JnrOX8JnvAT3JnvFZoJnvGT8JnvJl4JnvMT8JnvMX8JnvOXrJnvPX6JnvSX3JnvSZrJn3MT8Jn3MX8Jn3RTrLTATKnLTJnLTLTMXKnLTRTQlLToGb8LTrAZ8LTrCZ8LTrDb8LTrHT8LT3PX6LT4FZoLT$CTvLT$GgrLUvHX3LVoATrLVoAgoLVoJboLVoMX3LVoRg3LV8CZ3LV8FZoLV8GTvLXrDXoLXrFbrLXvAgvLXvFlrLXvLl3LXvRn6LX4Mb8LX8GT8LYCXMnLYrMnrLZoSTvLZrAZvLZrAloLZrFToLZrJXvLZrJboLZrJl4LZrLnrLZrMT8LZrOgvLZrRnvLZrST4LZvMX8LZvSlvLZ8AgoLZ8CT3LZ8JT8LZ8LV8LZ8LZoLZ8Lg8LZ8SV8LZ8SbrLZ$HT8LZ$Mn4La6CTvLbFbMnLbRYFTLbSnFZLboJT8LbrAT9LbrGb3LbrQb8LcrJX8LcrMXrLerHTvLerJbrLerNboLgrDb8LgrGZ8LgrHTrLgrMXrLgrSU8LgvJTrLgvLl3Lg6Ll3LhrLnrLhrMT8LhvAl4LiLnQXLkoAgrLkoJT8LkoJn4LlrSU8Ll3FZoLl3HTrLl3JX8Ll3JnoLl3LToLmLeFbLnDUFbLnLVAnLnrATrLnrAZoLnrAb8LnrAlrLnrGgvLnrJU8LnrLZrLnrLhrLnrMb8LnrOXrLnrSZ8LnvAb4LnvDTrLnvDl8LnvHTrLnvHbrLnvJT8LnvJU8LnvJbrLnvLhvLnvMX8LnvMb8LnvNnoLnvSU8Ln3Al3Ln4FZoLn4GT6Ln4JgvLn4LhrLn4MT8Ln4SToMToCZrMToJX8MToLX4MToLf8MToRg3MTrEloMTvGb6MT3BTrMT3Lb6MT8AcrMT8AgrMT8GZrMT8JnoMT8LnrMT8MX3MUOUAnMXAbFnMXoAloMXoJX8MXoLf8MXoLl8MXrAb8MXrDTvMXrGT8MXrGgrMXrHTrMXrLf8MXrMU8MXrOXvMXrQb8MXvGT8MXvHTrMXvLVoMX3AX3MX3Jn3MX3LhrMX3MX3MX4AlrMX4OboMX8GTvMX8GZrMX8GgrMX8JT8MX8JX8MX8LhrMX8MT8MYDUFbMYMgDbMbGnFfMbvLX4MbvLl3Mb8Mb8Mb8ST4MgGXCnMg8ATrMg8AgoMg8CZrMg8DTrMg8DboMg8HTrMg8JgrMg8LT8MloJXoMl8AhrMl8JT8MnLgAUMnoJXrMnoLX4MnoLhrMnoMT8MnrAl4MnrDb8MnrOTvMnrOgvMnrQb8MnrSU8MnvGgrMnvHZ8Mn3MToMn4DTrMn4LTrMn4Mg8NnBXAnOTFTFnOToAToOTrGgvOTrJX8OT3JXoOT6MTrOT8GgrOT8HTpOT8MToOUoHT8OUoJT8OUoLn3OXrAgoOXrDg8OXrMT8OXvSToOX6CTvOX8CZrOX8OgrOb6HgvOb8AToOb8MT8OcvLZ8OgvAlrOgvHTvOgvJTrOgvJnrOgvLZrOgvLn4OgvMT8OgvRTrOg8AZoOg8DbvOnrOXoOnvJn4OnvLhvOnvRTrOn3GgoOn3JnvOn6JbvOn8OTrPTGYFTPbBnFnPbGnDnPgDYQTPlrAnvPlrETvPlrLnvPlrMXvPlvFX4QTMTAnQTrJU8QYCnJlQYJlQlQbGTQbQb8JnrQb8LZoQb8LnvQb8MT8Qb8Ml8Qb8ST4QloAl4QloHZvQloJX8QloMn8QnJZOlRTrAZvRTrDTrRTvJn4RTvLhvRT4Jb8RZrAZrRZ8AkrRZ8JU8RZ8LV8RZ8LnvRbJlQXRg3GboRg3MnvRg8AZ8Rg8JboRg8Jl4RnLTCbRnvFl3RnvQb8SToAl4SToCZrSToFZoSToHXrSToJU8SToJgvSToJl4SToLhrSToMX3STrAlvSTrCT9STrCgrSTrGgrSTrHXrSTrHboSTrJnoSTrNboSTvLnrST4AZoST8Ab8ST8JT8SUoJn3SU6HZ#SU6JTvSU8Db8SU8HboSU8LgrSV8JT8SZrAcrSZrAl3SZrJT8SZrJnvSZrMT8SZvLUoSZ4FZoSZ8JnoSZ8RZrScoLnrScoMT8ScoMX8ScrAT4ScrAZ8ScrLZ8ScrLkvScvDb8ScvLf8ScvNToSgrFZrShvKnrSloHUoSloLnrSlrMXoSl8HgrSmrJUoSn3BX6\",\n \"ATFlOn3ATLgrDYAT4MTAnAT8LTMnAYJnRTrAbGgJnrAbLV8LnAbvNTAnAeFbLg3AgOYMXoAlQbFboAnDboAfAnJgoJTBToDgAnBUJbAl3BboDUAnCTDlvLnCTFTrSnCYoQTLnDTwAbAnDUDTrSnDUHgHgrDX8LXFnDbJXAcrETvLTLnGTFTQbrGTMnGToGT3DUFbGUJlPX3GbQg8LnGboJbFnGb3GgAYGgAg8ScGgMbAXrGgvAbAnGnJTLnvGnvATFgHTDT6ATHTrDlJnHYLnMn8HZrSbJTHZ8LTFnHbFTJUoHgSeMT8HgrLjAnHgvAbAnHlFUrDlHnDgvAnHnHTFT3HnQTGnrJTAaMXvJTGbCn3JTOgrAnJXvAXMnJbMg8SnJbMnRg3Jb8LTMnJnAl3OnJnGYrQlJnJlQY3LTDlCn3LTJjLg3LTLgvFXLTMg3GTLV8HUOgLXFZLg3LXNXrMnLX8QXFnLX9AlMYLYLXPXrLZAbJU8LZDUJU8LZMXrSnLZ$AgFnLaPXrDULbFYrMnLbMn8LXLboJgJgLeFbLg3LgLZrSnLgOYAgoLhrRnJlLkCTrSnLkOnLhrLnFX%AYLnFZoJXLnHTvJbLnLloAbMTATLf8MTHgJn3MTMXrAXMT3MTFnMUITvFnMXFX%AYMXMXvFbMXrFTDbMYAcMX3MbLf8SnMb8JbFnMgMXrMTMgvAXFnMgvGgCmMnAloSnMnFnJTrOXvMXSnOX8HTMnObJT8ScObLZFl3ObMXCZoPTLgrQXPUFnoQXPU3RXJlPX3RkQXPbrJXQlPlrJbFnQUAhrDbQXGnCXvQYLnHlvQbLfLnvRTOgvJbRXJYrQlRYLnrQlRbLnrQlRlFT8JlRlFnrQXSTClCn3STHTrAnSTLZQlrSTMnGTrSToHgGbSTrGTDnSTvGXCnST3HgFbSU3HXAXSbAnJn3SbFT8LnScLfLnv\",\n \"AT3JgJX8AT8FZoSnAT8JgFV8AT8LhrDbAZ8JT8DbAb8GgLhrAb8SkLnvAe8MT8SnAlMYJXLVAl3GYDTvAl3LfLnvBUDTvLl3CTOn3HTrCT3DUGgrCU8MT8AbCbFTrJUoCgrDb8MTDTLV8JX8DTLnLXQlDT8LZrSnDUQb8FZ8DUST4JnvDb8ScOUoDj6GbJl4GTLfCYMlGToAXvFnGboAXvLnGgAcrJn3GgvFnSToGnLf8JnvGn#HTDToHTLnFXJlHTvATFToHTvHTDToHTvMTAgoHT3STClvHT4AlFl6HT8HTDToHUoDgJTrHUoScMX3HbRZrMXoHboJg8LTHgDb8JTrHgMToLf8HgvLnLnoHnHn3HT4Hn6MgvAnJTJU8ScvJT3AaQT8JT8HTrAnJXrRg8AnJbAloMXoJbrATFToJbvMnoSnJgDb6GgvJgDb8MXoJgSX3JU8JguATFToJlPYLnQlJlQkDnLbJlQlFYJlJl8Lf8OTJnCTFnLbJnLTHXMnJnLXGXCnJnoFfRg3JnrMYRg3Jn3HgFl3KT8Dg8LnLTRlFnPTLTvPbLbvLVoSbrCZLXMY6HT3LXNU7DlrLXNXDTATLX8DX8LnLZDb8JU8LZMnoLhrLZSToJU8LZrLaLnrLZvJn3SnLZ8LhrSnLaJnoMT8LbFlrHTvLbrFTLnrLbvATLlvLb6OTFn3LcLnJZOlLeAT6Mn4LeJT3ObrLg6LXFlrLhrJg8LnLhvDlPX4LhvLfLnvLj6JTFT3LnFbrMXoLnQluCTvLnrQXCY6LnvLfLnvLnvMgLnvLnvSeLf8MTMbrJn3MT3JgST3MT8AnATrMT8LULnrMUMToCZrMUScvLf8MXoDT8SnMX6ATFToMX8AXMT8MX8FkMT8MX8HTrDUMX8ScoSnMYJT6CTvMgAcrMXoMg8SToAfMlvAXLg3MnFl3AnvOT3AnFl3OUoATHT8OU3RnLXrOXrOXrSnObPbvFn6Og8HgrSnOg8OX8DbPTvAgoJgPU3RYLnrPXrDnJZrPb8CTGgvPlrLTDlvPlvFUJnoQUvFXrQlQeMnoAl3QlrQlrSnRTFTrJUoSTDlLiLXSTFg6HT3STJgoMn4STrFTJTrSTrLZFl3ST4FnMXoSUrDlHUoScvHTvSnSfLkvMXo\",\n \"AUoAcrMXoAZ8HboAg8AbOg6ATFgAg8AloMXoAl3AT8JTrAl8MX8MXoCT3SToJU8Cl8Db8MXoDT8HgrATrDboOT8MXoGTOTrATMnGT8LhrAZ8GnvFnGnQXHToGgvAcrHTvAXvLl3HbrAZoMXoHgBlFXLg3HgMnFXrSnHgrSb8JUoHn6HT8LgvITvATrJUoJUoLZrRnvJU8HT8Jb8JXvFX8QT8JXvLToJTrJYrQnGnQXJgrJnoATrJnoJU8ScvJnvMnvMXoLTCTLgrJXLTJlRTvQlLbRnJlQYvLbrMb8LnvLbvFn3RnoLdCVSTGZrLeSTvGXCnLg3MnoLn3MToLlrETvMT8SToAl3MbrDU6GTvMb8LX4LhrPlrLXGXCnSToLf8Rg3STrDb8LTrSTvLTHXMnSb3RYLnMnSgOg6ATFg\",\n \"HUDlGnrQXrJTrHgLnrAcJYMb8DULc8LTvFgGnCk3Mg8JbAnLX4QYvFYHnMXrRUoJnGnvFnRlvFTJlQnoSTrBXHXrLYSUJgLfoMT8Se8DTrHbDb\",\n \"AbDl8SToJU8An3RbAb8ST8DUSTrGnrAgoLbFU6Db8LTrMg8AaHT8Jb8ObDl8SToJU8Pb3RlvFYoJl\"\n]\n\nconst codes = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789!@#$%^&*\"\n\nfunction getHangul(code: number): string {\n if (code >= 40) {\n code = code + 168 - 40;\n } else if (code >= 19) {\n code = code + 97 - 19;\n }\n\n return toUtf8String([ 225, (code >> 6) + 132, (code & 0x3f) + 128]);\n}\n\nlet wordlist: Array = null;\n\nfunction loadWords(lang: Wordlist): void {\n if (wordlist != null) { return; }\n\n wordlist = [];\n\n data.forEach((data, length) => {\n length += 4;\n for (let i = 0; i < data.length; i += length) {\n let word = \"\";\n for (let j = 0; j < length; j++) {\n word += getHangul(codes.indexOf(data[i + j]));\n }\n wordlist.push(word)\n }\n });\n\n wordlist.sort();\n\n // Verify the computed list matches the official list\n /* istanbul ignore if */\n if (Wordlist.check(lang) !== \"0xf9eddeace9c5d3da9c93cf7d3cd38f6a13ed3affb933259ae865714e8a3ae71a\") {\n wordlist = null;\n throw new Error(\"BIP39 Wordlist for ko (Korean) FAILED\");\n }\n}\n\n\nclass LangKo extends Wordlist {\n constructor() {\n super(\"ko\");\n }\n\n getWord(index: number): string {\n loadWords(this);\n return wordlist[index];\n }\n\n getWordIndex(word: string): number {\n loadWords(this);\n return wordlist.indexOf(word);\n }\n}\n\nconst langKo = new LangKo();\nWordlist.register(langKo);\n\nexport { langKo }\n", "\"use strict\";\n\nimport { Wordlist } from \"./wordlist\";\n\nconst words = \"AbacoAbbaglioAbbinatoAbeteAbissoAbolireAbrasivoAbrogatoAccadereAccennoAccusatoAcetoneAchilleAcidoAcquaAcreAcrilicoAcrobataAcutoAdagioAddebitoAddomeAdeguatoAderireAdipeAdottareAdulareAffabileAffettoAffissoAffrantoAforismaAfosoAfricanoAgaveAgenteAgevoleAggancioAgireAgitareAgonismoAgricoloAgrumetoAguzzoAlabardaAlatoAlbatroAlberatoAlboAlbumeAlceAlcolicoAlettoneAlfaAlgebraAlianteAlibiAlimentoAllagatoAllegroAllievoAllodolaAllusivoAlmenoAlogenoAlpacaAlpestreAltalenaAlternoAlticcioAltroveAlunnoAlveoloAlzareAmalgamaAmanitaAmarenaAmbitoAmbratoAmebaAmericaAmetistaAmicoAmmassoAmmendaAmmirareAmmonitoAmoreAmpioAmpliareAmuletoAnacardoAnagrafeAnalistaAnarchiaAnatraAncaAncellaAncoraAndareAndreaAnelloAngeloAngolareAngustoAnimaAnnegareAnnidatoAnnoAnnuncioAnonimoAnticipoAnziApaticoAperturaApodeApparireAppetitoAppoggioApprodoAppuntoAprileArabicaArachideAragostaAraldicaArancioAraturaArazzoArbitroArchivioArditoArenileArgentoArgineArgutoAriaArmoniaArneseArredatoArringaArrostoArsenicoArsoArteficeArzilloAsciuttoAscoltoAsepsiAsetticoAsfaltoAsinoAsolaAspiratoAsproAssaggioAsseAssolutoAssurdoAstaAstenutoAsticeAstrattoAtavicoAteismoAtomicoAtonoAttesaAttivareAttornoAttritoAttualeAusilioAustriaAutistaAutonomoAutunnoAvanzatoAvereAvvenireAvvisoAvvolgereAzioneAzotoAzzimoAzzurroBabeleBaccanoBacinoBacoBadessaBadilataBagnatoBaitaBalconeBaldoBalenaBallataBalzanoBambinoBandireBaraondaBarbaroBarcaBaritonoBarlumeBaroccoBasilicoBassoBatostaBattutoBauleBavaBavosaBeccoBeffaBelgioBelvaBendaBenevoleBenignoBenzinaBereBerlinaBetaBibitaBiciBidoneBifidoBigaBilanciaBimboBinocoloBiologoBipedeBipolareBirbanteBirraBiscottoBisestoBisnonnoBisonteBisturiBizzarroBlandoBlattaBollitoBonificoBordoBoscoBotanicoBottinoBozzoloBraccioBradipoBramaBrancaBravuraBretellaBrevettoBrezzaBrigliaBrillanteBrindareBroccoloBrodoBronzinaBrulloBrunoBubboneBucaBudinoBuffoneBuioBulboBuonoBurloneBurrascaBussolaBustaCadettoCaducoCalamaroCalcoloCalesseCalibroCalmoCaloriaCambusaCamerataCamiciaCamminoCamolaCampaleCanapaCandelaCaneCaninoCanottoCantinaCapaceCapelloCapitoloCapogiroCapperoCapraCapsulaCarapaceCarcassaCardoCarismaCarovanaCarrettoCartolinaCasaccioCascataCasermaCasoCassoneCastelloCasualeCatastaCatenaCatrameCautoCavilloCedibileCedrataCefaloCelebreCellulareCenaCenoneCentesimoCeramicaCercareCertoCerumeCervelloCesoiaCespoCetoChelaChiaroChiccaChiedereChimeraChinaChirurgoChitarraCiaoCiclismoCifrareCignoCilindroCiottoloCircaCirrosiCitricoCittadinoCiuffoCivettaCivileClassicoClinicaCloroCoccoCodardoCodiceCoerenteCognomeCollareColmatoColoreColposoColtivatoColzaComaCometaCommandoComodoComputerComuneConcisoCondurreConfermaCongelareConiugeConnessoConoscereConsumoContinuoConvegnoCopertoCopioneCoppiaCopricapoCorazzaCordataCoricatoCorniceCorollaCorpoCorredoCorsiaCorteseCosmicoCostanteCotturaCovatoCratereCravattaCreatoCredereCremosoCrescitaCretaCricetoCrinaleCrisiCriticoCroceCronacaCrostataCrucialeCruscaCucireCuculoCuginoCullatoCupolaCuratoreCursoreCurvoCuscinoCustodeDadoDainoDalmataDamerinoDanielaDannosoDanzareDatatoDavantiDavveroDebuttoDecennioDecisoDeclinoDecolloDecretoDedicatoDefinitoDeformeDegnoDelegareDelfinoDelirioDeltaDemenzaDenotatoDentroDepositoDerapataDerivareDerogaDescrittoDesertoDesiderioDesumereDetersivoDevotoDiametroDicembreDiedroDifesoDiffusoDigerireDigitaleDiluvioDinamicoDinnanziDipintoDiplomaDipoloDiradareDireDirottoDirupoDisagioDiscretoDisfareDisgeloDispostoDistanzaDisumanoDitoDivanoDiveltoDividereDivoratoDobloneDocenteDoganaleDogmaDolceDomatoDomenicaDominareDondoloDonoDormireDoteDottoreDovutoDozzinaDragoDruidoDubbioDubitareDucaleDunaDuomoDupliceDuraturoEbanoEccessoEccoEclissiEconomiaEderaEdicolaEdileEditoriaEducareEgemoniaEgliEgoismoEgregioElaboratoElargireEleganteElencatoElettoElevareElficoElicaElmoElsaElusoEmanatoEmblemaEmessoEmiroEmotivoEmozioneEmpiricoEmuloEndemicoEnduroEnergiaEnfasiEnotecaEntrareEnzimaEpatiteEpilogoEpisodioEpocaleEppureEquatoreErarioErbaErbosoEredeEremitaErigereErmeticoEroeErosivoErranteEsagonoEsameEsanimeEsaudireEscaEsempioEsercitoEsibitoEsigenteEsistereEsitoEsofagoEsortatoEsosoEspansoEspressoEssenzaEssoEstesoEstimareEstoniaEstrosoEsultareEtilicoEtnicoEtruscoEttoEuclideoEuropaEvasoEvidenzaEvitatoEvolutoEvvivaFabbricaFaccendaFachiroFalcoFamigliaFanaleFanfaraFangoFantasmaFareFarfallaFarinosoFarmacoFasciaFastosoFasulloFaticareFatoFavolosoFebbreFecolaFedeFegatoFelpaFeltroFemminaFendereFenomenoFermentoFerroFertileFessuraFestivoFettaFeudoFiabaFiduciaFifaFiguratoFiloFinanzaFinestraFinireFioreFiscaleFisicoFiumeFlaconeFlamencoFleboFlemmaFloridoFluenteFluoroFobicoFocacciaFocosoFoderatoFoglioFolataFolcloreFolgoreFondenteFoneticoFoniaFontanaForbitoForchettaForestaFormicaFornaioForoFortezzaForzareFosfatoFossoFracassoFranaFrassinoFratelloFreccettaFrenataFrescoFrigoFrollinoFrondeFrugaleFruttaFucilataFucsiaFuggenteFulmineFulvoFumanteFumettoFumosoFuneFunzioneFuocoFurboFurgoneFuroreFusoFutileGabbianoGaffeGalateoGallinaGaloppoGamberoGammaGaranziaGarboGarofanoGarzoneGasdottoGasolioGastricoGattoGaudioGazeboGazzellaGecoGelatinaGelsoGemelloGemmatoGeneGenitoreGennaioGenotipoGergoGhepardoGhiaccioGhisaGialloGildaGineproGiocareGioielloGiornoGioveGiratoGironeGittataGiudizioGiuratoGiustoGlobuloGlutineGnomoGobbaGolfGomitoGommoneGonfioGonnaGovernoGracileGradoGraficoGrammoGrandeGrattareGravosoGraziaGrecaGreggeGrifoneGrigioGrinzaGrottaGruppoGuadagnoGuaioGuantoGuardareGufoGuidareIbernatoIconaIdenticoIdillioIdoloIdraIdricoIdrogenoIgieneIgnaroIgnoratoIlareIllesoIllogicoIlludereImballoImbevutoImboccoImbutoImmaneImmersoImmolatoImpaccoImpetoImpiegoImportoImprontaInalareInarcareInattivoIncantoIncendioInchinoIncisivoInclusoIncontroIncrocioIncuboIndagineIndiaIndoleIneditoInfattiInfilareInflittoIngaggioIngegnoIngleseIngordoIngrossoInnescoInodoreInoltrareInondatoInsanoInsettoInsiemeInsonniaInsulinaIntasatoInteroIntonacoIntuitoInumidireInvalidoInveceInvitoIperboleIpnoticoIpotesiIppicaIrideIrlandaIronicoIrrigatoIrrorareIsolatoIsotopoIstericoIstitutoIstriceItaliaIterareLabbroLabirintoLaccaLaceratoLacrimaLacunaLaddoveLagoLampoLancettaLanternaLardosoLargaLaringeLastraLatenzaLatinoLattugaLavagnaLavoroLegaleLeggeroLemboLentezzaLenzaLeoneLepreLesivoLessatoLestoLetteraleLevaLevigatoLiberoLidoLievitoLillaLimaturaLimitareLimpidoLineareLinguaLiquidoLiraLiricaLiscaLiteLitigioLivreaLocandaLodeLogicaLombareLondraLongevoLoquaceLorenzoLotoLotteriaLuceLucidatoLumacaLuminosoLungoLupoLuppoloLusingaLussoLuttoMacabroMacchinaMaceroMacinatoMadamaMagicoMagliaMagneteMagroMaiolicaMalafedeMalgradoMalintesoMalsanoMaltoMalumoreManaManciaMandorlaMangiareManifestoMannaroManovraMansardaMantideManubrioMappaMaratonaMarcireMarettaMarmoMarsupioMascheraMassaiaMastinoMaterassoMatricolaMattoneMaturoMazurcaMeandroMeccanicoMecenateMedesimoMeditareMegaMelassaMelisMelodiaMeningeMenoMensolaMercurioMerendaMerloMeschinoMeseMessereMestoloMetalloMetodoMettereMiagolareMicaMicelioMicheleMicroboMidolloMieleMiglioreMilanoMiliteMimosaMineraleMiniMinoreMirinoMirtilloMiscelaMissivaMistoMisurareMitezzaMitigareMitraMittenteMnemonicoModelloModificaModuloMoganoMogioMoleMolossoMonasteroMoncoMondinaMonetarioMonileMonotonoMonsoneMontatoMonvisoMoraMordereMorsicatoMostroMotivatoMotosegaMottoMovenzaMovimentoMozzoMuccaMucosaMuffaMughettoMugnaioMulattoMulinelloMultiploMummiaMuntoMuovereMuraleMusaMuscoloMusicaMutevoleMutoNababboNaftaNanometroNarcisoNariceNarratoNascereNastrareNaturaleNauticaNaviglioNebulosaNecrosiNegativoNegozioNemmenoNeofitaNerettoNervoNessunoNettunoNeutraleNeveNevroticoNicchiaNinfaNitidoNobileNocivoNodoNomeNominaNordicoNormaleNorvegeseNostranoNotareNotiziaNotturnoNovellaNucleoNullaNumeroNuovoNutrireNuvolaNuzialeOasiObbedireObbligoObeliscoOblioOboloObsoletoOccasioneOcchioOccidenteOccorrereOccultareOcraOculatoOdiernoOdorareOffertaOffrireOffuscatoOggettoOggiOgnunoOlandeseOlfattoOliatoOlivaOlogrammaOltreOmaggioOmbelicoOmbraOmegaOmissioneOndosoOnereOniceOnnivoroOnorevoleOntaOperatoOpinioneOppostoOracoloOrafoOrdineOrecchinoOreficeOrfanoOrganicoOrigineOrizzonteOrmaOrmeggioOrnativoOrologioOrrendoOrribileOrtensiaOrticaOrzataOrzoOsareOscurareOsmosiOspedaleOspiteOssaOssidareOstacoloOsteOtiteOtreOttagonoOttimoOttobreOvaleOvestOvinoOviparoOvocitoOvunqueOvviareOzioPacchettoPacePacificoPadellaPadronePaesePagaPaginaPalazzinaPalesarePallidoPaloPaludePandoroPannelloPaoloPaonazzoPapricaParabolaParcellaParerePargoloPariParlatoParolaPartireParvenzaParzialePassivoPasticcaPataccaPatologiaPattumePavonePeccatoPedalarePedonalePeggioPelosoPenarePendicePenisolaPennutoPenombraPensarePentolaPepePepitaPerbenePercorsoPerdonatoPerforarePergamenaPeriodoPermessoPernoPerplessoPersuasoPertugioPervasoPesatorePesistaPesoPestiferoPetaloPettinePetulantePezzoPiacerePiantaPiattinoPiccinoPicozzaPiegaPietraPifferoPigiamaPigolioPigroPilaPiliferoPillolaPilotaPimpantePinetaPinnaPinoloPioggiaPiomboPiramidePireticoPiritePirolisiPitonePizzicoPlaceboPlanarePlasmaPlatanoPlenarioPochezzaPoderosoPodismoPoesiaPoggiarePolentaPoligonoPollicePolmonitePolpettaPolsoPoltronaPolverePomicePomodoroPontePopolosoPorfidoPorosoPorporaPorrePortataPosaPositivoPossessoPostulatoPotassioPoterePranzoPrassiPraticaPreclusoPredicaPrefissoPregiatoPrelievoPremerePrenotarePreparatoPresenzaPretestoPrevalsoPrimaPrincipePrivatoProblemaProcuraProdurreProfumoProgettoProlungaPromessaPronomePropostaProrogaProtesoProvaPrudentePrugnaPruritoPsichePubblicoPudicaPugilatoPugnoPulcePulitoPulsantePuntarePupazzoPupillaPuroQuadroQualcosaQuasiQuerelaQuotaRaccoltoRaddoppioRadicaleRadunatoRafficaRagazzoRagioneRagnoRamarroRamingoRamoRandagioRantolareRapatoRapinaRappresoRasaturaRaschiatoRasenteRassegnaRastrelloRataRavvedutoRealeRecepireRecintoReclutaReconditoRecuperoRedditoRedimereRegalatoRegistroRegolaRegressoRelazioneRemareRemotoRennaReplicaReprimereReputareResaResidenteResponsoRestauroReteRetinaRetoricaRettificaRevocatoRiassuntoRibadireRibelleRibrezzoRicaricaRiccoRicevereRiciclatoRicordoRicredutoRidicoloRidurreRifasareRiflessoRiformaRifugioRigareRigettatoRighelloRilassatoRilevatoRimanereRimbalzoRimedioRimorchioRinascitaRincaroRinforzoRinnovoRinomatoRinsavitoRintoccoRinunciaRinvenireRiparatoRipetutoRipienoRiportareRipresaRipulireRisataRischioRiservaRisibileRisoRispettoRistoroRisultatoRisvoltoRitardoRitegnoRitmicoRitrovoRiunioneRivaRiversoRivincitaRivoltoRizomaRobaRoboticoRobustoRocciaRocoRodaggioRodereRoditoreRogitoRollioRomanticoRompereRonzioRosolareRospoRotanteRotondoRotulaRovescioRubizzoRubricaRugaRullinoRumineRumorosoRuoloRupeRussareRusticoSabatoSabbiareSabotatoSagomaSalassoSaldaturaSalgemmaSalivareSalmoneSaloneSaltareSalutoSalvoSapereSapidoSaporitoSaracenoSarcasmoSartoSassosoSatelliteSatiraSatolloSaturnoSavanaSavioSaziatoSbadiglioSbalzoSbancatoSbarraSbattereSbavareSbendareSbirciareSbloccatoSbocciatoSbrinareSbruffoneSbuffareScabrosoScadenzaScalaScambiareScandaloScapolaScarsoScatenareScavatoSceltoScenicoScettroSchedaSchienaSciarpaScienzaScindereScippoSciroppoScivoloSclerareScodellaScolpitoScompartoSconfortoScoprireScortaScossoneScozzeseScribaScrollareScrutinioScuderiaScultoreScuolaScuroScusareSdebitareSdoganareSeccaturaSecondoSedanoSeggiolaSegnalatoSegregatoSeguitoSelciatoSelettivoSellaSelvaggioSemaforoSembrareSemeSeminatoSempreSensoSentireSepoltoSequenzaSerataSerbatoSerenoSerioSerpenteSerraglioServireSestinaSetolaSettimanaSfaceloSfaldareSfamatoSfarzosoSfaticatoSferaSfidaSfilatoSfingeSfocatoSfoderareSfogoSfoltireSforzatoSfrattoSfruttatoSfuggitoSfumareSfusoSgabelloSgarbatoSgonfiareSgorbioSgrassatoSguardoSibiloSiccomeSierraSiglaSignoreSilenzioSillabaSimboloSimpaticoSimulatoSinfoniaSingoloSinistroSinoSintesiSinusoideSiparioSismaSistoleSituatoSlittaSlogaturaSlovenoSmarritoSmemoratoSmentitoSmeraldoSmilzoSmontareSmottatoSmussatoSnellireSnervatoSnodoSobbalzoSobrioSoccorsoSocialeSodaleSoffittoSognoSoldatoSolenneSolidoSollazzoSoloSolubileSolventeSomaticoSommaSondaSonettoSonniferoSopireSoppesoSopraSorgereSorpassoSorrisoSorsoSorteggioSorvolatoSospiroSostaSottileSpadaSpallaSpargereSpatolaSpaventoSpazzolaSpecieSpedireSpegnereSpelaturaSperanzaSpessoreSpettraleSpezzatoSpiaSpigolosoSpillatoSpinosoSpiraleSplendidoSportivoSposoSprangaSprecareSpronatoSpruzzoSpuntinoSquilloSradicareSrotolatoStabileStaccoStaffaStagnareStampatoStantioStarnutoStaseraStatutoSteloSteppaSterzoStilettoStimaStirpeStivaleStizzosoStonatoStoricoStrappoStregatoStriduloStrozzareStruttoStuccareStufoStupendoSubentroSuccosoSudoreSuggeritoSugoSultanoSuonareSuperboSupportoSurgelatoSurrogatoSussurroSuturaSvagareSvedeseSveglioSvelareSvenutoSveziaSviluppoSvistaSvizzeraSvoltaSvuotareTabaccoTabulatoTacciareTaciturnoTaleTalismanoTamponeTanninoTaraTardivoTargatoTariffaTarpareTartarugaTastoTatticoTavernaTavolataTazzaTecaTecnicoTelefonoTemerarioTempoTemutoTendoneTeneroTensioneTentacoloTeoremaTermeTerrazzoTerzettoTesiTesseratoTestatoTetroTettoiaTifareTigellaTimbroTintoTipicoTipografoTiraggioTiroTitanioTitoloTitubanteTizioTizzoneToccareTollerareToltoTombolaTomoTonfoTonsillaTopazioTopologiaToppaTorbaTornareTorroneTortoraToscanoTossireTostaturaTotanoTraboccoTracheaTrafilaTragediaTralcioTramontoTransitoTrapanoTrarreTraslocoTrattatoTraveTrecciaTremolioTrespoloTributoTrichecoTrifoglioTrilloTrinceaTrioTristezzaTrituratoTrivellaTrombaTronoTroppoTrottolaTrovareTruccatoTubaturaTuffatoTulipanoTumultoTunisiaTurbareTurchinoTutaTutelaUbicatoUccelloUccisoreUdireUditivoUffaUfficioUgualeUlisseUltimatoUmanoUmileUmorismoUncinettoUngereUnghereseUnicornoUnificatoUnisonoUnitarioUnteUovoUpupaUraganoUrgenzaUrloUsanzaUsatoUscitoUsignoloUsuraioUtensileUtilizzoUtopiaVacanteVaccinatoVagabondoVagliatoValangaValgoValicoVallettaValorosoValutareValvolaVampataVangareVanitosoVanoVantaggioVanveraVaporeVaranoVarcatoVarianteVascaVedettaVedovaVedutoVegetaleVeicoloVelcroVelinaVellutoVeloceVenatoVendemmiaVentoVeraceVerbaleVergognaVerificaVeroVerrucaVerticaleVescicaVessilloVestaleVeteranoVetrinaVetustoViandanteVibranteVicendaVichingoVicinanzaVidimareVigiliaVignetoVigoreVileVillanoViminiVincitoreViolaViperaVirgolaVirologoVirulentoViscosoVisioneVispoVissutoVisuraVitaVitelloVittimaVivandaVividoViziareVoceVogaVolatileVolereVolpeVoragineVulcanoZampognaZannaZappatoZatteraZavorraZefiroZelanteZeloZenzeroZerbinoZibettoZincoZirconeZittoZollaZoticoZuccheroZufoloZuluZuppa\";\n\nlet wordlist: Array = null;\n\nfunction loadWords(lang: Wordlist): void {\n if (wordlist != null) { return; }\n wordlist = words.replace(/([A-Z])/g, \" $1\").toLowerCase().substring(1).split(\" \");\n\n // Verify the computed list matches the official list\n /* istanbul ignore if */\n if (Wordlist.check(lang) !== \"0x5c1362d88fd4cf614a96f3234941d29f7d37c08c5292fde03bf62c2db6ff7620\") {\n wordlist = null;\n throw new Error(\"BIP39 Wordlist for it (Italian) FAILED\");\n }\n}\n\nclass LangIt extends Wordlist {\n constructor() {\n super(\"it\");\n }\n\n getWord(index: number): string {\n loadWords(this);\n return wordlist[index];\n }\n\n getWordIndex(word: string): number {\n loadWords(this);\n return wordlist.indexOf(word);\n }\n}\n\nconst langIt = new LangIt();\nWordlist.register(langIt);\n\nexport { langIt }\n", "\"use strict\";\n\nimport { toUtf8String } from \"@ethersproject/strings\";\n\nimport { Wordlist } from \"./wordlist\";\n\n\nconst data = \"}aE#4A=Yv&co#4N#6G=cJ&SM#66|/Z#4t&kn~46#4K~4q%b9=IR#7l,mB#7W_X2*dl}Uo~7s}Uf&Iw#9c&cw~6O&H6&wx&IG%v5=IQ~8a&Pv#47$PR&50%Ko&QM&3l#5f,D9#4L|/H&tQ;v0~6n]nN } = {\n zh_cn: null,\n zh_tw: null\n}\n\nconst Checks: { [key: string]: string } = {\n zh_cn: \"0x17bcc4d8547e5a7135e365d1ab443aaae95e76d8230c2782c67305d4f21497a1\",\n zh_tw: \"0x51e720e90c7b87bec1d70eb6e74a21a449bd3ec9c020b01d3a40ed991b60ce5d\"\n}\n\nconst codes = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\";\nconst style = \"~!@#$%^&*_-=[]{}|;:,.()<>?\"\n\nfunction loadWords(lang: Wordlist) {\n if (wordlist[lang.locale] !== null) { return; }\n\n wordlist[lang.locale] = [];\n\n let deltaOffset = 0;\n for (let i = 0; i < 2048; i++) {\n const s = style.indexOf(data[i * 3]);\n const bytes = [\n 228 + (s >> 2),\n 128 + codes.indexOf(data[i * 3 + 1]),\n 128 + codes.indexOf(data[i * 3 + 2]),\n ];\n\n if (lang.locale === \"zh_tw\") {\n const common = s % 4;\n for (let i = common; i < 3; i++) {\n bytes[i] = codes.indexOf(deltaData[deltaOffset++]) + ((i == 0) ? 228: 128);\n }\n }\n\n wordlist[lang.locale].push(toUtf8String(bytes));\n }\n\n // Verify the computed list matches the official list\n /* istanbul ignore if */\n if (Wordlist.check(lang) !== Checks[lang.locale]) {\n wordlist[lang.locale] = null;\n throw new Error(\"BIP39 Wordlist for \" + lang.locale + \" (Chinese) FAILED\");\n }\n}\n\nclass LangZh extends Wordlist {\n constructor(country: string) {\n super(\"zh_\" + country);\n }\n\n getWord(index: number): string {\n loadWords(this);\n return wordlist[this.locale][index];\n }\n\n getWordIndex(word: string): number {\n loadWords(this);\n return wordlist[this.locale].indexOf(word);\n }\n\n split(mnemonic: string): Array {\n mnemonic = mnemonic.replace(/(?:\\u3000| )+/g, \"\");\n return mnemonic.split(\"\");\n }\n}\n\nconst langZhCn = new LangZh(\"cn\");\nWordlist.register(langZhCn);\nWordlist.register(langZhCn, \"zh\");\n\nconst langZhTw = new LangZh(\"tw\");\nWordlist.register(langZhTw);\n\nexport { langZhCn, langZhTw };\n", "import { Wordlist } from \"./wordlist\";\n\nimport { langCz as cz } from \"./lang-cz\";\nimport { langEn as en } from \"./lang-en\";\nimport { langEs as es } from \"./lang-es\";\nimport { langFr as fr } from \"./lang-fr\";\nimport { langJa as ja } from \"./lang-ja\";\nimport { langKo as ko } from \"./lang-ko\";\nimport { langIt as it } from \"./lang-it\";\nimport { langZhCn as zh_cn, langZhTw as zh_tw } from \"./lang-zh\";\n\nexport const wordlists: { [ locale: string ]: Wordlist } = {\n cz: cz,\n en: en,\n es: es,\n fr: fr,\n it: it,\n ja: ja,\n ko: ko,\n zh: zh_cn,\n zh_cn: zh_cn,\n zh_tw: zh_tw\n};\n\n\n", "\"use strict\";\n\n// Wordlists\n// See: https://github.com/bitcoin/bips/blob/master/bip-0039/bip-0039-wordlists.md\n\nimport { logger, Wordlist } from \"./wordlist\";\n\nimport { wordlists } from \"./wordlists\";\n\nexport {\n logger,\n Wordlist,\n wordlists\n}\n", "export const version = \"hdnode/5.7.0\";\n", "\"use strict\";\n\n// See: https://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki\n// See: https://github.com/bitcoin/bips/blob/master/bip-0039.mediawiki\n\n\nimport { ExternallyOwnedAccount } from \"@ethersproject/abstract-signer\";\nimport { Base58 } from \"@ethersproject/basex\";\nimport { arrayify, BytesLike, concat, hexDataSlice, hexZeroPad, hexlify } from \"@ethersproject/bytes\";\nimport { BigNumber } from \"@ethersproject/bignumber\";\nimport { toUtf8Bytes, UnicodeNormalizationForm } from \"@ethersproject/strings\";\nimport { pbkdf2 } from \"@ethersproject/pbkdf2\";\nimport { defineReadOnly } from \"@ethersproject/properties\";\nimport { SigningKey } from \"@ethersproject/signing-key\";\nimport { computeHmac, ripemd160, sha256, SupportedAlgorithm } from \"@ethersproject/sha2\";\nimport { computeAddress } from \"@ethersproject/transactions\";\nimport { Wordlist, wordlists } from \"@ethersproject/wordlists\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\nconst N = BigNumber.from(\"0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141\");\n\n\n// \"Bitcoin seed\"\nconst MasterSecret = toUtf8Bytes(\"Bitcoin seed\");\n\nconst HardenedBit = 0x80000000;\n\n// Returns a byte with the MSB bits set\nfunction getUpperMask(bits: number): number {\n return ((1 << bits) - 1) << (8 - bits);\n}\n\n// Returns a byte with the LSB bits set\nfunction getLowerMask(bits: number): number {\n return (1 << bits) - 1;\n}\n\nfunction bytes32(value: BigNumber | Uint8Array): string {\n return hexZeroPad(hexlify(value), 32);\n}\n\nfunction base58check(data: Uint8Array): string {\n return Base58.encode(concat([ data, hexDataSlice(sha256(sha256(data)), 0, 4) ]));\n}\n\nfunction getWordlist(wordlist: string | Wordlist): Wordlist {\n if (wordlist == null) {\n return wordlists[\"en\"];\n }\n\n if (typeof(wordlist) === \"string\") {\n const words = wordlists[wordlist];\n if (words == null) {\n logger.throwArgumentError(\"unknown locale\", \"wordlist\", wordlist);\n }\n return words;\n }\n\n return wordlist;\n}\n\nconst _constructorGuard: any = {};\n\nexport const defaultPath = \"m/44'/60'/0'/0/0\";\n\nexport interface Mnemonic {\n readonly phrase: string;\n readonly path: string;\n readonly locale: string;\n};\n\nexport class HDNode implements ExternallyOwnedAccount {\n readonly privateKey: string;\n readonly publicKey: string;\n\n readonly fingerprint: string;\n readonly parentFingerprint: string;\n\n readonly address: string;\n\n readonly mnemonic?: Mnemonic;\n readonly path: string;\n\n readonly chainCode: string;\n\n readonly index: number;\n readonly depth: number;\n\n /**\n * This constructor should not be called directly.\n *\n * Please use:\n * - fromMnemonic\n * - fromSeed\n */\n constructor(constructorGuard: any, privateKey: string, publicKey: string, parentFingerprint: string, chainCode: string, index: number, depth: number, mnemonicOrPath: Mnemonic | string) {\n /* istanbul ignore if */\n if (constructorGuard !== _constructorGuard) {\n throw new Error(\"HDNode constructor cannot be called directly\");\n }\n\n if (privateKey) {\n const signingKey = new SigningKey(privateKey);\n defineReadOnly(this, \"privateKey\", signingKey.privateKey);\n defineReadOnly(this, \"publicKey\", signingKey.compressedPublicKey);\n } else {\n defineReadOnly(this, \"privateKey\", null);\n defineReadOnly(this, \"publicKey\", hexlify(publicKey));\n }\n\n defineReadOnly(this, \"parentFingerprint\", parentFingerprint);\n defineReadOnly(this, \"fingerprint\", hexDataSlice(ripemd160(sha256(this.publicKey)), 0, 4));\n\n defineReadOnly(this, \"address\", computeAddress(this.publicKey));\n\n defineReadOnly(this, \"chainCode\", chainCode);\n\n defineReadOnly(this, \"index\", index);\n defineReadOnly(this, \"depth\", depth);\n\n if (mnemonicOrPath == null) {\n // From a source that does not preserve the path (e.g. extended keys)\n defineReadOnly(this, \"mnemonic\", null);\n defineReadOnly(this, \"path\", null);\n\n } else if (typeof(mnemonicOrPath) === \"string\") {\n // From a source that does not preserve the mnemonic (e.g. neutered)\n defineReadOnly(this, \"mnemonic\", null);\n defineReadOnly(this, \"path\", mnemonicOrPath);\n\n } else {\n // From a fully qualified source\n defineReadOnly(this, \"mnemonic\", mnemonicOrPath);\n defineReadOnly(this, \"path\", mnemonicOrPath.path);\n }\n }\n\n get extendedKey(): string {\n // We only support the mainnet values for now, but if anyone needs\n // testnet values, let me know. I believe current sentiment is that\n // we should always use mainnet, and use BIP-44 to derive the network\n // - Mainnet: public=0x0488B21E, private=0x0488ADE4\n // - Testnet: public=0x043587CF, private=0x04358394\n\n if (this.depth >= 256) { throw new Error(\"Depth too large!\"); }\n\n return base58check(concat([\n ((this.privateKey != null) ? \"0x0488ADE4\": \"0x0488B21E\"),\n hexlify(this.depth),\n this.parentFingerprint,\n hexZeroPad(hexlify(this.index), 4),\n this.chainCode,\n ((this.privateKey != null) ? concat([ \"0x00\", this.privateKey ]): this.publicKey),\n ]));\n }\n\n neuter(): HDNode {\n return new HDNode(_constructorGuard, null, this.publicKey, this.parentFingerprint, this.chainCode, this.index, this.depth, this.path);\n }\n\n private _derive(index: number): HDNode {\n if (index > 0xffffffff) { throw new Error(\"invalid index - \" + String(index)); }\n\n // Base path\n let path = this.path;\n if (path) { path += \"/\" + (index & ~HardenedBit); }\n\n const data = new Uint8Array(37);\n\n if (index & HardenedBit) {\n if (!this.privateKey) {\n throw new Error(\"cannot derive child of neutered node\");\n }\n\n // Data = 0x00 || ser_256(k_par)\n data.set(arrayify(this.privateKey), 1);\n\n // Hardened path\n if (path) { path += \"'\"; }\n\n } else {\n // Data = ser_p(point(k_par))\n data.set(arrayify(this.publicKey));\n }\n\n // Data += ser_32(i)\n for (let i = 24; i >= 0; i -= 8) { data[33 + (i >> 3)] = ((index >> (24 - i)) & 0xff); }\n\n const I = arrayify(computeHmac(SupportedAlgorithm.sha512, this.chainCode, data));\n const IL = I.slice(0, 32);\n const IR = I.slice(32);\n\n // The private key\n let ki: string = null\n\n // The public key\n let Ki: string = null;\n\n if (this.privateKey) {\n ki = bytes32(BigNumber.from(IL).add(this.privateKey).mod(N));\n } else {\n const ek = new SigningKey(hexlify(IL));\n Ki = ek._addPoint(this.publicKey);\n }\n\n let mnemonicOrPath: Mnemonic | string = path;\n\n const srcMnemonic = this.mnemonic;\n if (srcMnemonic) {\n mnemonicOrPath = Object.freeze({\n phrase: srcMnemonic.phrase,\n path: path,\n locale: (srcMnemonic.locale || \"en\")\n });\n }\n\n return new HDNode(_constructorGuard, ki, Ki, this.fingerprint, bytes32(IR), index, this.depth + 1, mnemonicOrPath);\n }\n\n derivePath(path: string): HDNode {\n const components = path.split(\"/\");\n\n if (components.length === 0 || (components[0] === \"m\" && this.depth !== 0)) {\n throw new Error(\"invalid path - \" + path);\n }\n\n if (components[0] === \"m\") { components.shift(); }\n\n let result: HDNode = this;\n for (let i = 0; i < components.length; i++) {\n const component = components[i];\n if (component.match(/^[0-9]+'$/)) {\n const index = parseInt(component.substring(0, component.length - 1));\n if (index >= HardenedBit) { throw new Error(\"invalid path index - \" + component); }\n result = result._derive(HardenedBit + index);\n } else if (component.match(/^[0-9]+$/)) {\n const index = parseInt(component);\n if (index >= HardenedBit) { throw new Error(\"invalid path index - \" + component); }\n result = result._derive(index);\n } else {\n throw new Error(\"invalid path component - \" + component);\n }\n }\n\n return result;\n }\n\n\n static _fromSeed(seed: BytesLike, mnemonic: Mnemonic): HDNode {\n const seedArray: Uint8Array = arrayify(seed);\n if (seedArray.length < 16 || seedArray.length > 64) { throw new Error(\"invalid seed\"); }\n\n const I: Uint8Array = arrayify(computeHmac(SupportedAlgorithm.sha512, MasterSecret, seedArray));\n\n return new HDNode(_constructorGuard, bytes32(I.slice(0, 32)), null, \"0x00000000\", bytes32(I.slice(32)), 0, 0, mnemonic);\n }\n\n static fromMnemonic(mnemonic: string, password?: string, wordlist?: string | Wordlist): HDNode {\n\n // If a locale name was passed in, find the associated wordlist\n wordlist = getWordlist(wordlist);\n\n // Normalize the case and spacing in the mnemonic (throws if the mnemonic is invalid)\n mnemonic = entropyToMnemonic(mnemonicToEntropy(mnemonic, wordlist), wordlist);\n\n return HDNode._fromSeed(mnemonicToSeed(mnemonic, password), {\n phrase: mnemonic,\n path: \"m\",\n locale: wordlist.locale\n });\n }\n\n static fromSeed(seed: BytesLike): HDNode {\n return HDNode._fromSeed(seed, null);\n }\n\n static fromExtendedKey(extendedKey: string): HDNode {\n const bytes = Base58.decode(extendedKey);\n\n if (bytes.length !== 82 || base58check(bytes.slice(0, 78)) !== extendedKey) {\n logger.throwArgumentError(\"invalid extended key\", \"extendedKey\", \"[REDACTED]\");\n }\n\n const depth = bytes[4];\n const parentFingerprint = hexlify(bytes.slice(5, 9));\n const index = parseInt(hexlify(bytes.slice(9, 13)).substring(2), 16);\n const chainCode = hexlify(bytes.slice(13, 45));\n const key = bytes.slice(45, 78);\n\n switch (hexlify(bytes.slice(0, 4))) {\n // Public Key\n case \"0x0488b21e\": case \"0x043587cf\":\n return new HDNode(_constructorGuard, null, hexlify(key), parentFingerprint, chainCode, index, depth, null);\n\n // Private Key\n case \"0x0488ade4\": case \"0x04358394 \":\n if (key[0] !== 0) { break; }\n return new HDNode(_constructorGuard, hexlify(key.slice(1)), null, parentFingerprint, chainCode, index, depth, null);\n }\n\n return logger.throwArgumentError(\"invalid extended key\", \"extendedKey\", \"[REDACTED]\");\n }\n}\n\nexport function mnemonicToSeed(mnemonic: string, password?: string): string {\n if (!password) { password = \"\"; }\n\n const salt = toUtf8Bytes(\"mnemonic\" + password, UnicodeNormalizationForm.NFKD);\n\n return pbkdf2(toUtf8Bytes(mnemonic, UnicodeNormalizationForm.NFKD), salt, 2048, 64, \"sha512\");\n}\n\nexport function mnemonicToEntropy(mnemonic: string, wordlist?: string | Wordlist): string {\n wordlist = getWordlist(wordlist);\n\n logger.checkNormalize();\n\n const words = wordlist.split(mnemonic);\n if ((words.length % 3) !== 0) { throw new Error(\"invalid mnemonic\"); }\n\n const entropy = arrayify(new Uint8Array(Math.ceil(11 * words.length / 8)));\n\n let offset = 0;\n for (let i = 0; i < words.length; i++) {\n let index = wordlist.getWordIndex(words[i].normalize(\"NFKD\"));\n if (index === -1) { throw new Error(\"invalid mnemonic\"); }\n\n for (let bit = 0; bit < 11; bit++) {\n if (index & (1 << (10 - bit))) {\n entropy[offset >> 3] |= (1 << (7 - (offset % 8)));\n }\n offset++;\n }\n }\n\n const entropyBits = 32 * words.length / 3;\n\n const checksumBits = words.length / 3;\n const checksumMask = getUpperMask(checksumBits);\n\n const checksum = arrayify(sha256(entropy.slice(0, entropyBits / 8)))[0] & checksumMask;\n\n if (checksum !== (entropy[entropy.length - 1] & checksumMask)) {\n throw new Error(\"invalid checksum\");\n }\n\n return hexlify(entropy.slice(0, entropyBits / 8));\n}\n\nexport function entropyToMnemonic(entropy: BytesLike, wordlist?: string | Wordlist): string {\n wordlist = getWordlist(wordlist);\n\n entropy = arrayify(entropy);\n\n if ((entropy.length % 4) !== 0 || entropy.length < 16 || entropy.length > 32) {\n throw new Error(\"invalid entropy\");\n }\n\n const indices: Array = [ 0 ];\n\n let remainingBits = 11;\n for (let i = 0; i < entropy.length; i++) {\n\n // Consume the whole byte (with still more to go)\n if (remainingBits > 8) {\n indices[indices.length - 1] <<= 8;\n indices[indices.length - 1] |= entropy[i];\n\n remainingBits -= 8;\n\n // This byte will complete an 11-bit index\n } else {\n indices[indices.length - 1] <<= remainingBits;\n indices[indices.length - 1] |= entropy[i] >> (8 - remainingBits);\n\n // Start the next word\n indices.push(entropy[i] & getLowerMask(8 - remainingBits));\n\n remainingBits += 3;\n }\n }\n\n // Compute the checksum bits\n const checksumBits = entropy.length / 4;\n const checksum = arrayify(sha256(entropy))[0] & getUpperMask(checksumBits);\n\n // Shift the checksum into the word indices\n indices[indices.length - 1] <<= checksumBits;\n indices[indices.length - 1] |= (checksum >> (8 - checksumBits));\n\n return wordlist.join(indices.map((index) => (wordlist).getWord(index)));\n}\n\nexport function isValidMnemonic(mnemonic: string, wordlist?: Wordlist): boolean {\n try {\n mnemonicToEntropy(mnemonic, wordlist);\n return true;\n } catch (error) { }\n return false;\n}\n\nexport function getAccountPath(index: number): string {\n if (typeof(index) !== \"number\" || index < 0 || index >= HardenedBit || index % 1) {\n logger.throwArgumentError(\"invalid account index\", \"index\", index);\n }\n return `m/44'/60'/${ index }'/0/0`;\n}\n", "import { randomBytes as _randomBytes } from \"crypto\";\n\nimport { arrayify } from \"@ethersproject/bytes\";\n\nexport function randomBytes(length: number): Uint8Array {\n return arrayify(_randomBytes(length));\n}\n", "\"use strict\";\n\nexport function shuffled(array: Array): Array {\n array = array.slice();\n\n for (let i = array.length - 1; i > 0; i--) {\n const j = Math.floor(Math.random() * (i + 1));\n const tmp = array[i];\n array[i] = array[j];\n array[j] = tmp;\n }\n\n return array;\n}\n", "\"use strict\";\n\nexport { randomBytes } from \"./random\";\nexport { shuffled } from \"./shuffle\";\n", "\"use strict\";\n\n(function(root) {\n\n function checkInt(value) {\n return (parseInt(value) === value);\n }\n\n function checkInts(arrayish) {\n if (!checkInt(arrayish.length)) { return false; }\n\n for (var i = 0; i < arrayish.length; i++) {\n if (!checkInt(arrayish[i]) || arrayish[i] < 0 || arrayish[i] > 255) {\n return false;\n }\n }\n\n return true;\n }\n\n function coerceArray(arg, copy) {\n\n // ArrayBuffer view\n if (arg.buffer && ArrayBuffer.isView(arg) && arg.name === 'Uint8Array') {\n\n if (copy) {\n if (arg.slice) {\n arg = arg.slice();\n } else {\n arg = Array.prototype.slice.call(arg);\n }\n }\n\n return arg;\n }\n\n // It's an array; check it is a valid representation of a byte\n if (Array.isArray(arg)) {\n if (!checkInts(arg)) {\n throw new Error('Array contains invalid value: ' + arg);\n }\n\n return new Uint8Array(arg);\n }\n\n // Something else, but behaves like an array (maybe a Buffer? Arguments?)\n if (checkInt(arg.length) && checkInts(arg)) {\n return new Uint8Array(arg);\n }\n\n throw new Error('unsupported array-like object');\n }\n\n function createArray(length) {\n return new Uint8Array(length);\n }\n\n function copyArray(sourceArray, targetArray, targetStart, sourceStart, sourceEnd) {\n if (sourceStart != null || sourceEnd != null) {\n if (sourceArray.slice) {\n sourceArray = sourceArray.slice(sourceStart, sourceEnd);\n } else {\n sourceArray = Array.prototype.slice.call(sourceArray, sourceStart, sourceEnd);\n }\n }\n targetArray.set(sourceArray, targetStart);\n }\n\n\n\n var convertUtf8 = (function() {\n function toBytes(text) {\n var result = [], i = 0;\n text = encodeURI(text);\n while (i < text.length) {\n var c = text.charCodeAt(i++);\n\n // if it is a % sign, encode the following 2 bytes as a hex value\n if (c === 37) {\n result.push(parseInt(text.substr(i, 2), 16))\n i += 2;\n\n // otherwise, just the actual byte\n } else {\n result.push(c)\n }\n }\n\n return coerceArray(result);\n }\n\n function fromBytes(bytes) {\n var result = [], i = 0;\n\n while (i < bytes.length) {\n var c = bytes[i];\n\n if (c < 128) {\n result.push(String.fromCharCode(c));\n i++;\n } else if (c > 191 && c < 224) {\n result.push(String.fromCharCode(((c & 0x1f) << 6) | (bytes[i + 1] & 0x3f)));\n i += 2;\n } else {\n result.push(String.fromCharCode(((c & 0x0f) << 12) | ((bytes[i + 1] & 0x3f) << 6) | (bytes[i + 2] & 0x3f)));\n i += 3;\n }\n }\n\n return result.join('');\n }\n\n return {\n toBytes: toBytes,\n fromBytes: fromBytes,\n }\n })();\n\n var convertHex = (function() {\n function toBytes(text) {\n var result = [];\n for (var i = 0; i < text.length; i += 2) {\n result.push(parseInt(text.substr(i, 2), 16));\n }\n\n return result;\n }\n\n // http://ixti.net/development/javascript/2011/11/11/base64-encodedecode-of-utf8-in-browser-with-js.html\n var Hex = '0123456789abcdef';\n\n function fromBytes(bytes) {\n var result = [];\n for (var i = 0; i < bytes.length; i++) {\n var v = bytes[i];\n result.push(Hex[(v & 0xf0) >> 4] + Hex[v & 0x0f]);\n }\n return result.join('');\n }\n\n return {\n toBytes: toBytes,\n fromBytes: fromBytes,\n }\n })();\n\n\n // Number of rounds by keysize\n var numberOfRounds = {16: 10, 24: 12, 32: 14}\n\n // Round constant words\n var rcon = [0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36, 0x6c, 0xd8, 0xab, 0x4d, 0x9a, 0x2f, 0x5e, 0xbc, 0x63, 0xc6, 0x97, 0x35, 0x6a, 0xd4, 0xb3, 0x7d, 0xfa, 0xef, 0xc5, 0x91];\n\n // S-box and Inverse S-box (S is for Substitution)\n var S = [0x63, 0x7c, 0x77, 0x7b, 0xf2, 0x6b, 0x6f, 0xc5, 0x30, 0x01, 0x67, 0x2b, 0xfe, 0xd7, 0xab, 0x76, 0xca, 0x82, 0xc9, 0x7d, 0xfa, 0x59, 0x47, 0xf0, 0xad, 0xd4, 0xa2, 0xaf, 0x9c, 0xa4, 0x72, 0xc0, 0xb7, 0xfd, 0x93, 0x26, 0x36, 0x3f, 0xf7, 0xcc, 0x34, 0xa5, 0xe5, 0xf1, 0x71, 0xd8, 0x31, 0x15, 0x04, 0xc7, 0x23, 0xc3, 0x18, 0x96, 0x05, 0x9a, 0x07, 0x12, 0x80, 0xe2, 0xeb, 0x27, 0xb2, 0x75, 0x09, 0x83, 0x2c, 0x1a, 0x1b, 0x6e, 0x5a, 0xa0, 0x52, 0x3b, 0xd6, 0xb3, 0x29, 0xe3, 0x2f, 0x84, 0x53, 0xd1, 0x00, 0xed, 0x20, 0xfc, 0xb1, 0x5b, 0x6a, 0xcb, 0xbe, 0x39, 0x4a, 0x4c, 0x58, 0xcf, 0xd0, 0xef, 0xaa, 0xfb, 0x43, 0x4d, 0x33, 0x85, 0x45, 0xf9, 0x02, 0x7f, 0x50, 0x3c, 0x9f, 0xa8, 0x51, 0xa3, 0x40, 0x8f, 0x92, 0x9d, 0x38, 0xf5, 0xbc, 0xb6, 0xda, 0x21, 0x10, 0xff, 0xf3, 0xd2, 0xcd, 0x0c, 0x13, 0xec, 0x5f, 0x97, 0x44, 0x17, 0xc4, 0xa7, 0x7e, 0x3d, 0x64, 0x5d, 0x19, 0x73, 0x60, 0x81, 0x4f, 0xdc, 0x22, 0x2a, 0x90, 0x88, 0x46, 0xee, 0xb8, 0x14, 0xde, 0x5e, 0x0b, 0xdb, 0xe0, 0x32, 0x3a, 0x0a, 0x49, 0x06, 0x24, 0x5c, 0xc2, 0xd3, 0xac, 0x62, 0x91, 0x95, 0xe4, 0x79, 0xe7, 0xc8, 0x37, 0x6d, 0x8d, 0xd5, 0x4e, 0xa9, 0x6c, 0x56, 0xf4, 0xea, 0x65, 0x7a, 0xae, 0x08, 0xba, 0x78, 0x25, 0x2e, 0x1c, 0xa6, 0xb4, 0xc6, 0xe8, 0xdd, 0x74, 0x1f, 0x4b, 0xbd, 0x8b, 0x8a, 0x70, 0x3e, 0xb5, 0x66, 0x48, 0x03, 0xf6, 0x0e, 0x61, 0x35, 0x57, 0xb9, 0x86, 0xc1, 0x1d, 0x9e, 0xe1, 0xf8, 0x98, 0x11, 0x69, 0xd9, 0x8e, 0x94, 0x9b, 0x1e, 0x87, 0xe9, 0xce, 0x55, 0x28, 0xdf, 0x8c, 0xa1, 0x89, 0x0d, 0xbf, 0xe6, 0x42, 0x68, 0x41, 0x99, 0x2d, 0x0f, 0xb0, 0x54, 0xbb, 0x16];\n var Si =[0x52, 0x09, 0x6a, 0xd5, 0x30, 0x36, 0xa5, 0x38, 0xbf, 0x40, 0xa3, 0x9e, 0x81, 0xf3, 0xd7, 0xfb, 0x7c, 0xe3, 0x39, 0x82, 0x9b, 0x2f, 0xff, 0x87, 0x34, 0x8e, 0x43, 0x44, 0xc4, 0xde, 0xe9, 0xcb, 0x54, 0x7b, 0x94, 0x32, 0xa6, 0xc2, 0x23, 0x3d, 0xee, 0x4c, 0x95, 0x0b, 0x42, 0xfa, 0xc3, 0x4e, 0x08, 0x2e, 0xa1, 0x66, 0x28, 0xd9, 0x24, 0xb2, 0x76, 0x5b, 0xa2, 0x49, 0x6d, 0x8b, 0xd1, 0x25, 0x72, 0xf8, 0xf6, 0x64, 0x86, 0x68, 0x98, 0x16, 0xd4, 0xa4, 0x5c, 0xcc, 0x5d, 0x65, 0xb6, 0x92, 0x6c, 0x70, 0x48, 0x50, 0xfd, 0xed, 0xb9, 0xda, 0x5e, 0x15, 0x46, 0x57, 0xa7, 0x8d, 0x9d, 0x84, 0x90, 0xd8, 0xab, 0x00, 0x8c, 0xbc, 0xd3, 0x0a, 0xf7, 0xe4, 0x58, 0x05, 0xb8, 0xb3, 0x45, 0x06, 0xd0, 0x2c, 0x1e, 0x8f, 0xca, 0x3f, 0x0f, 0x02, 0xc1, 0xaf, 0xbd, 0x03, 0x01, 0x13, 0x8a, 0x6b, 0x3a, 0x91, 0x11, 0x41, 0x4f, 0x67, 0xdc, 0xea, 0x97, 0xf2, 0xcf, 0xce, 0xf0, 0xb4, 0xe6, 0x73, 0x96, 0xac, 0x74, 0x22, 0xe7, 0xad, 0x35, 0x85, 0xe2, 0xf9, 0x37, 0xe8, 0x1c, 0x75, 0xdf, 0x6e, 0x47, 0xf1, 0x1a, 0x71, 0x1d, 0x29, 0xc5, 0x89, 0x6f, 0xb7, 0x62, 0x0e, 0xaa, 0x18, 0xbe, 0x1b, 0xfc, 0x56, 0x3e, 0x4b, 0xc6, 0xd2, 0x79, 0x20, 0x9a, 0xdb, 0xc0, 0xfe, 0x78, 0xcd, 0x5a, 0xf4, 0x1f, 0xdd, 0xa8, 0x33, 0x88, 0x07, 0xc7, 0x31, 0xb1, 0x12, 0x10, 0x59, 0x27, 0x80, 0xec, 0x5f, 0x60, 0x51, 0x7f, 0xa9, 0x19, 0xb5, 0x4a, 0x0d, 0x2d, 0xe5, 0x7a, 0x9f, 0x93, 0xc9, 0x9c, 0xef, 0xa0, 0xe0, 0x3b, 0x4d, 0xae, 0x2a, 0xf5, 0xb0, 0xc8, 0xeb, 0xbb, 0x3c, 0x83, 0x53, 0x99, 0x61, 0x17, 0x2b, 0x04, 0x7e, 0xba, 0x77, 0xd6, 0x26, 0xe1, 0x69, 0x14, 0x63, 0x55, 0x21, 0x0c, 0x7d];\n\n // Transformations for encryption\n var T1 = [0xc66363a5, 0xf87c7c84, 0xee777799, 0xf67b7b8d, 0xfff2f20d, 0xd66b6bbd, 0xde6f6fb1, 0x91c5c554, 0x60303050, 0x02010103, 0xce6767a9, 0x562b2b7d, 0xe7fefe19, 0xb5d7d762, 0x4dababe6, 0xec76769a, 0x8fcaca45, 0x1f82829d, 0x89c9c940, 0xfa7d7d87, 0xeffafa15, 0xb25959eb, 0x8e4747c9, 0xfbf0f00b, 0x41adadec, 0xb3d4d467, 0x5fa2a2fd, 0x45afafea, 0x239c9cbf, 0x53a4a4f7, 0xe4727296, 0x9bc0c05b, 0x75b7b7c2, 0xe1fdfd1c, 0x3d9393ae, 0x4c26266a, 0x6c36365a, 0x7e3f3f41, 0xf5f7f702, 0x83cccc4f, 0x6834345c, 0x51a5a5f4, 0xd1e5e534, 0xf9f1f108, 0xe2717193, 0xabd8d873, 0x62313153, 0x2a15153f, 0x0804040c, 0x95c7c752, 0x46232365, 0x9dc3c35e, 0x30181828, 0x379696a1, 0x0a05050f, 0x2f9a9ab5, 0x0e070709, 0x24121236, 0x1b80809b, 0xdfe2e23d, 0xcdebeb26, 0x4e272769, 0x7fb2b2cd, 0xea75759f, 0x1209091b, 0x1d83839e, 0x582c2c74, 0x341a1a2e, 0x361b1b2d, 0xdc6e6eb2, 0xb45a5aee, 0x5ba0a0fb, 0xa45252f6, 0x763b3b4d, 0xb7d6d661, 0x7db3b3ce, 0x5229297b, 0xdde3e33e, 0x5e2f2f71, 0x13848497, 0xa65353f5, 0xb9d1d168, 0x00000000, 0xc1eded2c, 0x40202060, 0xe3fcfc1f, 0x79b1b1c8, 0xb65b5bed, 0xd46a6abe, 0x8dcbcb46, 0x67bebed9, 0x7239394b, 0x944a4ade, 0x984c4cd4, 0xb05858e8, 0x85cfcf4a, 0xbbd0d06b, 0xc5efef2a, 0x4faaaae5, 0xedfbfb16, 0x864343c5, 0x9a4d4dd7, 0x66333355, 0x11858594, 0x8a4545cf, 0xe9f9f910, 0x04020206, 0xfe7f7f81, 0xa05050f0, 0x783c3c44, 0x259f9fba, 0x4ba8a8e3, 0xa25151f3, 0x5da3a3fe, 0x804040c0, 0x058f8f8a, 0x3f9292ad, 0x219d9dbc, 0x70383848, 0xf1f5f504, 0x63bcbcdf, 0x77b6b6c1, 0xafdada75, 0x42212163, 0x20101030, 0xe5ffff1a, 0xfdf3f30e, 0xbfd2d26d, 0x81cdcd4c, 0x180c0c14, 0x26131335, 0xc3ecec2f, 0xbe5f5fe1, 0x359797a2, 0x884444cc, 0x2e171739, 0x93c4c457, 0x55a7a7f2, 0xfc7e7e82, 0x7a3d3d47, 0xc86464ac, 0xba5d5de7, 0x3219192b, 0xe6737395, 0xc06060a0, 0x19818198, 0x9e4f4fd1, 0xa3dcdc7f, 0x44222266, 0x542a2a7e, 0x3b9090ab, 0x0b888883, 0x8c4646ca, 0xc7eeee29, 0x6bb8b8d3, 0x2814143c, 0xa7dede79, 0xbc5e5ee2, 0x160b0b1d, 0xaddbdb76, 0xdbe0e03b, 0x64323256, 0x743a3a4e, 0x140a0a1e, 0x924949db, 0x0c06060a, 0x4824246c, 0xb85c5ce4, 0x9fc2c25d, 0xbdd3d36e, 0x43acacef, 0xc46262a6, 0x399191a8, 0x319595a4, 0xd3e4e437, 0xf279798b, 0xd5e7e732, 0x8bc8c843, 0x6e373759, 0xda6d6db7, 0x018d8d8c, 0xb1d5d564, 0x9c4e4ed2, 0x49a9a9e0, 0xd86c6cb4, 0xac5656fa, 0xf3f4f407, 0xcfeaea25, 0xca6565af, 0xf47a7a8e, 0x47aeaee9, 0x10080818, 0x6fbabad5, 0xf0787888, 0x4a25256f, 0x5c2e2e72, 0x381c1c24, 0x57a6a6f1, 0x73b4b4c7, 0x97c6c651, 0xcbe8e823, 0xa1dddd7c, 0xe874749c, 0x3e1f1f21, 0x964b4bdd, 0x61bdbddc, 0x0d8b8b86, 0x0f8a8a85, 0xe0707090, 0x7c3e3e42, 0x71b5b5c4, 0xcc6666aa, 0x904848d8, 0x06030305, 0xf7f6f601, 0x1c0e0e12, 0xc26161a3, 0x6a35355f, 0xae5757f9, 0x69b9b9d0, 0x17868691, 0x99c1c158, 0x3a1d1d27, 0x279e9eb9, 0xd9e1e138, 0xebf8f813, 0x2b9898b3, 0x22111133, 0xd26969bb, 0xa9d9d970, 0x078e8e89, 0x339494a7, 0x2d9b9bb6, 0x3c1e1e22, 0x15878792, 0xc9e9e920, 0x87cece49, 0xaa5555ff, 0x50282878, 0xa5dfdf7a, 0x038c8c8f, 0x59a1a1f8, 0x09898980, 0x1a0d0d17, 0x65bfbfda, 0xd7e6e631, 0x844242c6, 0xd06868b8, 0x824141c3, 0x299999b0, 0x5a2d2d77, 0x1e0f0f11, 0x7bb0b0cb, 0xa85454fc, 0x6dbbbbd6, 0x2c16163a];\n var T2 = [0xa5c66363, 0x84f87c7c, 0x99ee7777, 0x8df67b7b, 0x0dfff2f2, 0xbdd66b6b, 0xb1de6f6f, 0x5491c5c5, 0x50603030, 0x03020101, 0xa9ce6767, 0x7d562b2b, 0x19e7fefe, 0x62b5d7d7, 0xe64dabab, 0x9aec7676, 0x458fcaca, 0x9d1f8282, 0x4089c9c9, 0x87fa7d7d, 0x15effafa, 0xebb25959, 0xc98e4747, 0x0bfbf0f0, 0xec41adad, 0x67b3d4d4, 0xfd5fa2a2, 0xea45afaf, 0xbf239c9c, 0xf753a4a4, 0x96e47272, 0x5b9bc0c0, 0xc275b7b7, 0x1ce1fdfd, 0xae3d9393, 0x6a4c2626, 0x5a6c3636, 0x417e3f3f, 0x02f5f7f7, 0x4f83cccc, 0x5c683434, 0xf451a5a5, 0x34d1e5e5, 0x08f9f1f1, 0x93e27171, 0x73abd8d8, 0x53623131, 0x3f2a1515, 0x0c080404, 0x5295c7c7, 0x65462323, 0x5e9dc3c3, 0x28301818, 0xa1379696, 0x0f0a0505, 0xb52f9a9a, 0x090e0707, 0x36241212, 0x9b1b8080, 0x3ddfe2e2, 0x26cdebeb, 0x694e2727, 0xcd7fb2b2, 0x9fea7575, 0x1b120909, 0x9e1d8383, 0x74582c2c, 0x2e341a1a, 0x2d361b1b, 0xb2dc6e6e, 0xeeb45a5a, 0xfb5ba0a0, 0xf6a45252, 0x4d763b3b, 0x61b7d6d6, 0xce7db3b3, 0x7b522929, 0x3edde3e3, 0x715e2f2f, 0x97138484, 0xf5a65353, 0x68b9d1d1, 0x00000000, 0x2cc1eded, 0x60402020, 0x1fe3fcfc, 0xc879b1b1, 0xedb65b5b, 0xbed46a6a, 0x468dcbcb, 0xd967bebe, 0x4b723939, 0xde944a4a, 0xd4984c4c, 0xe8b05858, 0x4a85cfcf, 0x6bbbd0d0, 0x2ac5efef, 0xe54faaaa, 0x16edfbfb, 0xc5864343, 0xd79a4d4d, 0x55663333, 0x94118585, 0xcf8a4545, 0x10e9f9f9, 0x06040202, 0x81fe7f7f, 0xf0a05050, 0x44783c3c, 0xba259f9f, 0xe34ba8a8, 0xf3a25151, 0xfe5da3a3, 0xc0804040, 0x8a058f8f, 0xad3f9292, 0xbc219d9d, 0x48703838, 0x04f1f5f5, 0xdf63bcbc, 0xc177b6b6, 0x75afdada, 0x63422121, 0x30201010, 0x1ae5ffff, 0x0efdf3f3, 0x6dbfd2d2, 0x4c81cdcd, 0x14180c0c, 0x35261313, 0x2fc3ecec, 0xe1be5f5f, 0xa2359797, 0xcc884444, 0x392e1717, 0x5793c4c4, 0xf255a7a7, 0x82fc7e7e, 0x477a3d3d, 0xacc86464, 0xe7ba5d5d, 0x2b321919, 0x95e67373, 0xa0c06060, 0x98198181, 0xd19e4f4f, 0x7fa3dcdc, 0x66442222, 0x7e542a2a, 0xab3b9090, 0x830b8888, 0xca8c4646, 0x29c7eeee, 0xd36bb8b8, 0x3c281414, 0x79a7dede, 0xe2bc5e5e, 0x1d160b0b, 0x76addbdb, 0x3bdbe0e0, 0x56643232, 0x4e743a3a, 0x1e140a0a, 0xdb924949, 0x0a0c0606, 0x6c482424, 0xe4b85c5c, 0x5d9fc2c2, 0x6ebdd3d3, 0xef43acac, 0xa6c46262, 0xa8399191, 0xa4319595, 0x37d3e4e4, 0x8bf27979, 0x32d5e7e7, 0x438bc8c8, 0x596e3737, 0xb7da6d6d, 0x8c018d8d, 0x64b1d5d5, 0xd29c4e4e, 0xe049a9a9, 0xb4d86c6c, 0xfaac5656, 0x07f3f4f4, 0x25cfeaea, 0xafca6565, 0x8ef47a7a, 0xe947aeae, 0x18100808, 0xd56fbaba, 0x88f07878, 0x6f4a2525, 0x725c2e2e, 0x24381c1c, 0xf157a6a6, 0xc773b4b4, 0x5197c6c6, 0x23cbe8e8, 0x7ca1dddd, 0x9ce87474, 0x213e1f1f, 0xdd964b4b, 0xdc61bdbd, 0x860d8b8b, 0x850f8a8a, 0x90e07070, 0x427c3e3e, 0xc471b5b5, 0xaacc6666, 0xd8904848, 0x05060303, 0x01f7f6f6, 0x121c0e0e, 0xa3c26161, 0x5f6a3535, 0xf9ae5757, 0xd069b9b9, 0x91178686, 0x5899c1c1, 0x273a1d1d, 0xb9279e9e, 0x38d9e1e1, 0x13ebf8f8, 0xb32b9898, 0x33221111, 0xbbd26969, 0x70a9d9d9, 0x89078e8e, 0xa7339494, 0xb62d9b9b, 0x223c1e1e, 0x92158787, 0x20c9e9e9, 0x4987cece, 0xffaa5555, 0x78502828, 0x7aa5dfdf, 0x8f038c8c, 0xf859a1a1, 0x80098989, 0x171a0d0d, 0xda65bfbf, 0x31d7e6e6, 0xc6844242, 0xb8d06868, 0xc3824141, 0xb0299999, 0x775a2d2d, 0x111e0f0f, 0xcb7bb0b0, 0xfca85454, 0xd66dbbbb, 0x3a2c1616];\n var T3 = [0x63a5c663, 0x7c84f87c, 0x7799ee77, 0x7b8df67b, 0xf20dfff2, 0x6bbdd66b, 0x6fb1de6f, 0xc55491c5, 0x30506030, 0x01030201, 0x67a9ce67, 0x2b7d562b, 0xfe19e7fe, 0xd762b5d7, 0xabe64dab, 0x769aec76, 0xca458fca, 0x829d1f82, 0xc94089c9, 0x7d87fa7d, 0xfa15effa, 0x59ebb259, 0x47c98e47, 0xf00bfbf0, 0xadec41ad, 0xd467b3d4, 0xa2fd5fa2, 0xafea45af, 0x9cbf239c, 0xa4f753a4, 0x7296e472, 0xc05b9bc0, 0xb7c275b7, 0xfd1ce1fd, 0x93ae3d93, 0x266a4c26, 0x365a6c36, 0x3f417e3f, 0xf702f5f7, 0xcc4f83cc, 0x345c6834, 0xa5f451a5, 0xe534d1e5, 0xf108f9f1, 0x7193e271, 0xd873abd8, 0x31536231, 0x153f2a15, 0x040c0804, 0xc75295c7, 0x23654623, 0xc35e9dc3, 0x18283018, 0x96a13796, 0x050f0a05, 0x9ab52f9a, 0x07090e07, 0x12362412, 0x809b1b80, 0xe23ddfe2, 0xeb26cdeb, 0x27694e27, 0xb2cd7fb2, 0x759fea75, 0x091b1209, 0x839e1d83, 0x2c74582c, 0x1a2e341a, 0x1b2d361b, 0x6eb2dc6e, 0x5aeeb45a, 0xa0fb5ba0, 0x52f6a452, 0x3b4d763b, 0xd661b7d6, 0xb3ce7db3, 0x297b5229, 0xe33edde3, 0x2f715e2f, 0x84971384, 0x53f5a653, 0xd168b9d1, 0x00000000, 0xed2cc1ed, 0x20604020, 0xfc1fe3fc, 0xb1c879b1, 0x5bedb65b, 0x6abed46a, 0xcb468dcb, 0xbed967be, 0x394b7239, 0x4ade944a, 0x4cd4984c, 0x58e8b058, 0xcf4a85cf, 0xd06bbbd0, 0xef2ac5ef, 0xaae54faa, 0xfb16edfb, 0x43c58643, 0x4dd79a4d, 0x33556633, 0x85941185, 0x45cf8a45, 0xf910e9f9, 0x02060402, 0x7f81fe7f, 0x50f0a050, 0x3c44783c, 0x9fba259f, 0xa8e34ba8, 0x51f3a251, 0xa3fe5da3, 0x40c08040, 0x8f8a058f, 0x92ad3f92, 0x9dbc219d, 0x38487038, 0xf504f1f5, 0xbcdf63bc, 0xb6c177b6, 0xda75afda, 0x21634221, 0x10302010, 0xff1ae5ff, 0xf30efdf3, 0xd26dbfd2, 0xcd4c81cd, 0x0c14180c, 0x13352613, 0xec2fc3ec, 0x5fe1be5f, 0x97a23597, 0x44cc8844, 0x17392e17, 0xc45793c4, 0xa7f255a7, 0x7e82fc7e, 0x3d477a3d, 0x64acc864, 0x5de7ba5d, 0x192b3219, 0x7395e673, 0x60a0c060, 0x81981981, 0x4fd19e4f, 0xdc7fa3dc, 0x22664422, 0x2a7e542a, 0x90ab3b90, 0x88830b88, 0x46ca8c46, 0xee29c7ee, 0xb8d36bb8, 0x143c2814, 0xde79a7de, 0x5ee2bc5e, 0x0b1d160b, 0xdb76addb, 0xe03bdbe0, 0x32566432, 0x3a4e743a, 0x0a1e140a, 0x49db9249, 0x060a0c06, 0x246c4824, 0x5ce4b85c, 0xc25d9fc2, 0xd36ebdd3, 0xacef43ac, 0x62a6c462, 0x91a83991, 0x95a43195, 0xe437d3e4, 0x798bf279, 0xe732d5e7, 0xc8438bc8, 0x37596e37, 0x6db7da6d, 0x8d8c018d, 0xd564b1d5, 0x4ed29c4e, 0xa9e049a9, 0x6cb4d86c, 0x56faac56, 0xf407f3f4, 0xea25cfea, 0x65afca65, 0x7a8ef47a, 0xaee947ae, 0x08181008, 0xbad56fba, 0x7888f078, 0x256f4a25, 0x2e725c2e, 0x1c24381c, 0xa6f157a6, 0xb4c773b4, 0xc65197c6, 0xe823cbe8, 0xdd7ca1dd, 0x749ce874, 0x1f213e1f, 0x4bdd964b, 0xbddc61bd, 0x8b860d8b, 0x8a850f8a, 0x7090e070, 0x3e427c3e, 0xb5c471b5, 0x66aacc66, 0x48d89048, 0x03050603, 0xf601f7f6, 0x0e121c0e, 0x61a3c261, 0x355f6a35, 0x57f9ae57, 0xb9d069b9, 0x86911786, 0xc15899c1, 0x1d273a1d, 0x9eb9279e, 0xe138d9e1, 0xf813ebf8, 0x98b32b98, 0x11332211, 0x69bbd269, 0xd970a9d9, 0x8e89078e, 0x94a73394, 0x9bb62d9b, 0x1e223c1e, 0x87921587, 0xe920c9e9, 0xce4987ce, 0x55ffaa55, 0x28785028, 0xdf7aa5df, 0x8c8f038c, 0xa1f859a1, 0x89800989, 0x0d171a0d, 0xbfda65bf, 0xe631d7e6, 0x42c68442, 0x68b8d068, 0x41c38241, 0x99b02999, 0x2d775a2d, 0x0f111e0f, 0xb0cb7bb0, 0x54fca854, 0xbbd66dbb, 0x163a2c16];\n var T4 = [0x6363a5c6, 0x7c7c84f8, 0x777799ee, 0x7b7b8df6, 0xf2f20dff, 0x6b6bbdd6, 0x6f6fb1de, 0xc5c55491, 0x30305060, 0x01010302, 0x6767a9ce, 0x2b2b7d56, 0xfefe19e7, 0xd7d762b5, 0xababe64d, 0x76769aec, 0xcaca458f, 0x82829d1f, 0xc9c94089, 0x7d7d87fa, 0xfafa15ef, 0x5959ebb2, 0x4747c98e, 0xf0f00bfb, 0xadadec41, 0xd4d467b3, 0xa2a2fd5f, 0xafafea45, 0x9c9cbf23, 0xa4a4f753, 0x727296e4, 0xc0c05b9b, 0xb7b7c275, 0xfdfd1ce1, 0x9393ae3d, 0x26266a4c, 0x36365a6c, 0x3f3f417e, 0xf7f702f5, 0xcccc4f83, 0x34345c68, 0xa5a5f451, 0xe5e534d1, 0xf1f108f9, 0x717193e2, 0xd8d873ab, 0x31315362, 0x15153f2a, 0x04040c08, 0xc7c75295, 0x23236546, 0xc3c35e9d, 0x18182830, 0x9696a137, 0x05050f0a, 0x9a9ab52f, 0x0707090e, 0x12123624, 0x80809b1b, 0xe2e23ddf, 0xebeb26cd, 0x2727694e, 0xb2b2cd7f, 0x75759fea, 0x09091b12, 0x83839e1d, 0x2c2c7458, 0x1a1a2e34, 0x1b1b2d36, 0x6e6eb2dc, 0x5a5aeeb4, 0xa0a0fb5b, 0x5252f6a4, 0x3b3b4d76, 0xd6d661b7, 0xb3b3ce7d, 0x29297b52, 0xe3e33edd, 0x2f2f715e, 0x84849713, 0x5353f5a6, 0xd1d168b9, 0x00000000, 0xeded2cc1, 0x20206040, 0xfcfc1fe3, 0xb1b1c879, 0x5b5bedb6, 0x6a6abed4, 0xcbcb468d, 0xbebed967, 0x39394b72, 0x4a4ade94, 0x4c4cd498, 0x5858e8b0, 0xcfcf4a85, 0xd0d06bbb, 0xefef2ac5, 0xaaaae54f, 0xfbfb16ed, 0x4343c586, 0x4d4dd79a, 0x33335566, 0x85859411, 0x4545cf8a, 0xf9f910e9, 0x02020604, 0x7f7f81fe, 0x5050f0a0, 0x3c3c4478, 0x9f9fba25, 0xa8a8e34b, 0x5151f3a2, 0xa3a3fe5d, 0x4040c080, 0x8f8f8a05, 0x9292ad3f, 0x9d9dbc21, 0x38384870, 0xf5f504f1, 0xbcbcdf63, 0xb6b6c177, 0xdada75af, 0x21216342, 0x10103020, 0xffff1ae5, 0xf3f30efd, 0xd2d26dbf, 0xcdcd4c81, 0x0c0c1418, 0x13133526, 0xecec2fc3, 0x5f5fe1be, 0x9797a235, 0x4444cc88, 0x1717392e, 0xc4c45793, 0xa7a7f255, 0x7e7e82fc, 0x3d3d477a, 0x6464acc8, 0x5d5de7ba, 0x19192b32, 0x737395e6, 0x6060a0c0, 0x81819819, 0x4f4fd19e, 0xdcdc7fa3, 0x22226644, 0x2a2a7e54, 0x9090ab3b, 0x8888830b, 0x4646ca8c, 0xeeee29c7, 0xb8b8d36b, 0x14143c28, 0xdede79a7, 0x5e5ee2bc, 0x0b0b1d16, 0xdbdb76ad, 0xe0e03bdb, 0x32325664, 0x3a3a4e74, 0x0a0a1e14, 0x4949db92, 0x06060a0c, 0x24246c48, 0x5c5ce4b8, 0xc2c25d9f, 0xd3d36ebd, 0xacacef43, 0x6262a6c4, 0x9191a839, 0x9595a431, 0xe4e437d3, 0x79798bf2, 0xe7e732d5, 0xc8c8438b, 0x3737596e, 0x6d6db7da, 0x8d8d8c01, 0xd5d564b1, 0x4e4ed29c, 0xa9a9e049, 0x6c6cb4d8, 0x5656faac, 0xf4f407f3, 0xeaea25cf, 0x6565afca, 0x7a7a8ef4, 0xaeaee947, 0x08081810, 0xbabad56f, 0x787888f0, 0x25256f4a, 0x2e2e725c, 0x1c1c2438, 0xa6a6f157, 0xb4b4c773, 0xc6c65197, 0xe8e823cb, 0xdddd7ca1, 0x74749ce8, 0x1f1f213e, 0x4b4bdd96, 0xbdbddc61, 0x8b8b860d, 0x8a8a850f, 0x707090e0, 0x3e3e427c, 0xb5b5c471, 0x6666aacc, 0x4848d890, 0x03030506, 0xf6f601f7, 0x0e0e121c, 0x6161a3c2, 0x35355f6a, 0x5757f9ae, 0xb9b9d069, 0x86869117, 0xc1c15899, 0x1d1d273a, 0x9e9eb927, 0xe1e138d9, 0xf8f813eb, 0x9898b32b, 0x11113322, 0x6969bbd2, 0xd9d970a9, 0x8e8e8907, 0x9494a733, 0x9b9bb62d, 0x1e1e223c, 0x87879215, 0xe9e920c9, 0xcece4987, 0x5555ffaa, 0x28287850, 0xdfdf7aa5, 0x8c8c8f03, 0xa1a1f859, 0x89898009, 0x0d0d171a, 0xbfbfda65, 0xe6e631d7, 0x4242c684, 0x6868b8d0, 0x4141c382, 0x9999b029, 0x2d2d775a, 0x0f0f111e, 0xb0b0cb7b, 0x5454fca8, 0xbbbbd66d, 0x16163a2c];\n\n // Transformations for decryption\n var T5 = [0x51f4a750, 0x7e416553, 0x1a17a4c3, 0x3a275e96, 0x3bab6bcb, 0x1f9d45f1, 0xacfa58ab, 0x4be30393, 0x2030fa55, 0xad766df6, 0x88cc7691, 0xf5024c25, 0x4fe5d7fc, 0xc52acbd7, 0x26354480, 0xb562a38f, 0xdeb15a49, 0x25ba1b67, 0x45ea0e98, 0x5dfec0e1, 0xc32f7502, 0x814cf012, 0x8d4697a3, 0x6bd3f9c6, 0x038f5fe7, 0x15929c95, 0xbf6d7aeb, 0x955259da, 0xd4be832d, 0x587421d3, 0x49e06929, 0x8ec9c844, 0x75c2896a, 0xf48e7978, 0x99583e6b, 0x27b971dd, 0xbee14fb6, 0xf088ad17, 0xc920ac66, 0x7dce3ab4, 0x63df4a18, 0xe51a3182, 0x97513360, 0x62537f45, 0xb16477e0, 0xbb6bae84, 0xfe81a01c, 0xf9082b94, 0x70486858, 0x8f45fd19, 0x94de6c87, 0x527bf8b7, 0xab73d323, 0x724b02e2, 0xe31f8f57, 0x6655ab2a, 0xb2eb2807, 0x2fb5c203, 0x86c57b9a, 0xd33708a5, 0x302887f2, 0x23bfa5b2, 0x02036aba, 0xed16825c, 0x8acf1c2b, 0xa779b492, 0xf307f2f0, 0x4e69e2a1, 0x65daf4cd, 0x0605bed5, 0xd134621f, 0xc4a6fe8a, 0x342e539d, 0xa2f355a0, 0x058ae132, 0xa4f6eb75, 0x0b83ec39, 0x4060efaa, 0x5e719f06, 0xbd6e1051, 0x3e218af9, 0x96dd063d, 0xdd3e05ae, 0x4de6bd46, 0x91548db5, 0x71c45d05, 0x0406d46f, 0x605015ff, 0x1998fb24, 0xd6bde997, 0x894043cc, 0x67d99e77, 0xb0e842bd, 0x07898b88, 0xe7195b38, 0x79c8eedb, 0xa17c0a47, 0x7c420fe9, 0xf8841ec9, 0x00000000, 0x09808683, 0x322bed48, 0x1e1170ac, 0x6c5a724e, 0xfd0efffb, 0x0f853856, 0x3daed51e, 0x362d3927, 0x0a0fd964, 0x685ca621, 0x9b5b54d1, 0x24362e3a, 0x0c0a67b1, 0x9357e70f, 0xb4ee96d2, 0x1b9b919e, 0x80c0c54f, 0x61dc20a2, 0x5a774b69, 0x1c121a16, 0xe293ba0a, 0xc0a02ae5, 0x3c22e043, 0x121b171d, 0x0e090d0b, 0xf28bc7ad, 0x2db6a8b9, 0x141ea9c8, 0x57f11985, 0xaf75074c, 0xee99ddbb, 0xa37f60fd, 0xf701269f, 0x5c72f5bc, 0x44663bc5, 0x5bfb7e34, 0x8b432976, 0xcb23c6dc, 0xb6edfc68, 0xb8e4f163, 0xd731dcca, 0x42638510, 0x13972240, 0x84c61120, 0x854a247d, 0xd2bb3df8, 0xaef93211, 0xc729a16d, 0x1d9e2f4b, 0xdcb230f3, 0x0d8652ec, 0x77c1e3d0, 0x2bb3166c, 0xa970b999, 0x119448fa, 0x47e96422, 0xa8fc8cc4, 0xa0f03f1a, 0x567d2cd8, 0x223390ef, 0x87494ec7, 0xd938d1c1, 0x8ccaa2fe, 0x98d40b36, 0xa6f581cf, 0xa57ade28, 0xdab78e26, 0x3fadbfa4, 0x2c3a9de4, 0x5078920d, 0x6a5fcc9b, 0x547e4662, 0xf68d13c2, 0x90d8b8e8, 0x2e39f75e, 0x82c3aff5, 0x9f5d80be, 0x69d0937c, 0x6fd52da9, 0xcf2512b3, 0xc8ac993b, 0x10187da7, 0xe89c636e, 0xdb3bbb7b, 0xcd267809, 0x6e5918f4, 0xec9ab701, 0x834f9aa8, 0xe6956e65, 0xaaffe67e, 0x21bccf08, 0xef15e8e6, 0xbae79bd9, 0x4a6f36ce, 0xea9f09d4, 0x29b07cd6, 0x31a4b2af, 0x2a3f2331, 0xc6a59430, 0x35a266c0, 0x744ebc37, 0xfc82caa6, 0xe090d0b0, 0x33a7d815, 0xf104984a, 0x41ecdaf7, 0x7fcd500e, 0x1791f62f, 0x764dd68d, 0x43efb04d, 0xccaa4d54, 0xe49604df, 0x9ed1b5e3, 0x4c6a881b, 0xc12c1fb8, 0x4665517f, 0x9d5eea04, 0x018c355d, 0xfa877473, 0xfb0b412e, 0xb3671d5a, 0x92dbd252, 0xe9105633, 0x6dd64713, 0x9ad7618c, 0x37a10c7a, 0x59f8148e, 0xeb133c89, 0xcea927ee, 0xb761c935, 0xe11ce5ed, 0x7a47b13c, 0x9cd2df59, 0x55f2733f, 0x1814ce79, 0x73c737bf, 0x53f7cdea, 0x5ffdaa5b, 0xdf3d6f14, 0x7844db86, 0xcaaff381, 0xb968c43e, 0x3824342c, 0xc2a3405f, 0x161dc372, 0xbce2250c, 0x283c498b, 0xff0d9541, 0x39a80171, 0x080cb3de, 0xd8b4e49c, 0x6456c190, 0x7bcb8461, 0xd532b670, 0x486c5c74, 0xd0b85742];\n var T6 = [0x5051f4a7, 0x537e4165, 0xc31a17a4, 0x963a275e, 0xcb3bab6b, 0xf11f9d45, 0xabacfa58, 0x934be303, 0x552030fa, 0xf6ad766d, 0x9188cc76, 0x25f5024c, 0xfc4fe5d7, 0xd7c52acb, 0x80263544, 0x8fb562a3, 0x49deb15a, 0x6725ba1b, 0x9845ea0e, 0xe15dfec0, 0x02c32f75, 0x12814cf0, 0xa38d4697, 0xc66bd3f9, 0xe7038f5f, 0x9515929c, 0xebbf6d7a, 0xda955259, 0x2dd4be83, 0xd3587421, 0x2949e069, 0x448ec9c8, 0x6a75c289, 0x78f48e79, 0x6b99583e, 0xdd27b971, 0xb6bee14f, 0x17f088ad, 0x66c920ac, 0xb47dce3a, 0x1863df4a, 0x82e51a31, 0x60975133, 0x4562537f, 0xe0b16477, 0x84bb6bae, 0x1cfe81a0, 0x94f9082b, 0x58704868, 0x198f45fd, 0x8794de6c, 0xb7527bf8, 0x23ab73d3, 0xe2724b02, 0x57e31f8f, 0x2a6655ab, 0x07b2eb28, 0x032fb5c2, 0x9a86c57b, 0xa5d33708, 0xf2302887, 0xb223bfa5, 0xba02036a, 0x5ced1682, 0x2b8acf1c, 0x92a779b4, 0xf0f307f2, 0xa14e69e2, 0xcd65daf4, 0xd50605be, 0x1fd13462, 0x8ac4a6fe, 0x9d342e53, 0xa0a2f355, 0x32058ae1, 0x75a4f6eb, 0x390b83ec, 0xaa4060ef, 0x065e719f, 0x51bd6e10, 0xf93e218a, 0x3d96dd06, 0xaedd3e05, 0x464de6bd, 0xb591548d, 0x0571c45d, 0x6f0406d4, 0xff605015, 0x241998fb, 0x97d6bde9, 0xcc894043, 0x7767d99e, 0xbdb0e842, 0x8807898b, 0x38e7195b, 0xdb79c8ee, 0x47a17c0a, 0xe97c420f, 0xc9f8841e, 0x00000000, 0x83098086, 0x48322bed, 0xac1e1170, 0x4e6c5a72, 0xfbfd0eff, 0x560f8538, 0x1e3daed5, 0x27362d39, 0x640a0fd9, 0x21685ca6, 0xd19b5b54, 0x3a24362e, 0xb10c0a67, 0x0f9357e7, 0xd2b4ee96, 0x9e1b9b91, 0x4f80c0c5, 0xa261dc20, 0x695a774b, 0x161c121a, 0x0ae293ba, 0xe5c0a02a, 0x433c22e0, 0x1d121b17, 0x0b0e090d, 0xadf28bc7, 0xb92db6a8, 0xc8141ea9, 0x8557f119, 0x4caf7507, 0xbbee99dd, 0xfda37f60, 0x9ff70126, 0xbc5c72f5, 0xc544663b, 0x345bfb7e, 0x768b4329, 0xdccb23c6, 0x68b6edfc, 0x63b8e4f1, 0xcad731dc, 0x10426385, 0x40139722, 0x2084c611, 0x7d854a24, 0xf8d2bb3d, 0x11aef932, 0x6dc729a1, 0x4b1d9e2f, 0xf3dcb230, 0xec0d8652, 0xd077c1e3, 0x6c2bb316, 0x99a970b9, 0xfa119448, 0x2247e964, 0xc4a8fc8c, 0x1aa0f03f, 0xd8567d2c, 0xef223390, 0xc787494e, 0xc1d938d1, 0xfe8ccaa2, 0x3698d40b, 0xcfa6f581, 0x28a57ade, 0x26dab78e, 0xa43fadbf, 0xe42c3a9d, 0x0d507892, 0x9b6a5fcc, 0x62547e46, 0xc2f68d13, 0xe890d8b8, 0x5e2e39f7, 0xf582c3af, 0xbe9f5d80, 0x7c69d093, 0xa96fd52d, 0xb3cf2512, 0x3bc8ac99, 0xa710187d, 0x6ee89c63, 0x7bdb3bbb, 0x09cd2678, 0xf46e5918, 0x01ec9ab7, 0xa8834f9a, 0x65e6956e, 0x7eaaffe6, 0x0821bccf, 0xe6ef15e8, 0xd9bae79b, 0xce4a6f36, 0xd4ea9f09, 0xd629b07c, 0xaf31a4b2, 0x312a3f23, 0x30c6a594, 0xc035a266, 0x37744ebc, 0xa6fc82ca, 0xb0e090d0, 0x1533a7d8, 0x4af10498, 0xf741ecda, 0x0e7fcd50, 0x2f1791f6, 0x8d764dd6, 0x4d43efb0, 0x54ccaa4d, 0xdfe49604, 0xe39ed1b5, 0x1b4c6a88, 0xb8c12c1f, 0x7f466551, 0x049d5eea, 0x5d018c35, 0x73fa8774, 0x2efb0b41, 0x5ab3671d, 0x5292dbd2, 0x33e91056, 0x136dd647, 0x8c9ad761, 0x7a37a10c, 0x8e59f814, 0x89eb133c, 0xeecea927, 0x35b761c9, 0xede11ce5, 0x3c7a47b1, 0x599cd2df, 0x3f55f273, 0x791814ce, 0xbf73c737, 0xea53f7cd, 0x5b5ffdaa, 0x14df3d6f, 0x867844db, 0x81caaff3, 0x3eb968c4, 0x2c382434, 0x5fc2a340, 0x72161dc3, 0x0cbce225, 0x8b283c49, 0x41ff0d95, 0x7139a801, 0xde080cb3, 0x9cd8b4e4, 0x906456c1, 0x617bcb84, 0x70d532b6, 0x74486c5c, 0x42d0b857];\n var T7 = [0xa75051f4, 0x65537e41, 0xa4c31a17, 0x5e963a27, 0x6bcb3bab, 0x45f11f9d, 0x58abacfa, 0x03934be3, 0xfa552030, 0x6df6ad76, 0x769188cc, 0x4c25f502, 0xd7fc4fe5, 0xcbd7c52a, 0x44802635, 0xa38fb562, 0x5a49deb1, 0x1b6725ba, 0x0e9845ea, 0xc0e15dfe, 0x7502c32f, 0xf012814c, 0x97a38d46, 0xf9c66bd3, 0x5fe7038f, 0x9c951592, 0x7aebbf6d, 0x59da9552, 0x832dd4be, 0x21d35874, 0x692949e0, 0xc8448ec9, 0x896a75c2, 0x7978f48e, 0x3e6b9958, 0x71dd27b9, 0x4fb6bee1, 0xad17f088, 0xac66c920, 0x3ab47dce, 0x4a1863df, 0x3182e51a, 0x33609751, 0x7f456253, 0x77e0b164, 0xae84bb6b, 0xa01cfe81, 0x2b94f908, 0x68587048, 0xfd198f45, 0x6c8794de, 0xf8b7527b, 0xd323ab73, 0x02e2724b, 0x8f57e31f, 0xab2a6655, 0x2807b2eb, 0xc2032fb5, 0x7b9a86c5, 0x08a5d337, 0x87f23028, 0xa5b223bf, 0x6aba0203, 0x825ced16, 0x1c2b8acf, 0xb492a779, 0xf2f0f307, 0xe2a14e69, 0xf4cd65da, 0xbed50605, 0x621fd134, 0xfe8ac4a6, 0x539d342e, 0x55a0a2f3, 0xe132058a, 0xeb75a4f6, 0xec390b83, 0xefaa4060, 0x9f065e71, 0x1051bd6e, 0x8af93e21, 0x063d96dd, 0x05aedd3e, 0xbd464de6, 0x8db59154, 0x5d0571c4, 0xd46f0406, 0x15ff6050, 0xfb241998, 0xe997d6bd, 0x43cc8940, 0x9e7767d9, 0x42bdb0e8, 0x8b880789, 0x5b38e719, 0xeedb79c8, 0x0a47a17c, 0x0fe97c42, 0x1ec9f884, 0x00000000, 0x86830980, 0xed48322b, 0x70ac1e11, 0x724e6c5a, 0xfffbfd0e, 0x38560f85, 0xd51e3dae, 0x3927362d, 0xd9640a0f, 0xa621685c, 0x54d19b5b, 0x2e3a2436, 0x67b10c0a, 0xe70f9357, 0x96d2b4ee, 0x919e1b9b, 0xc54f80c0, 0x20a261dc, 0x4b695a77, 0x1a161c12, 0xba0ae293, 0x2ae5c0a0, 0xe0433c22, 0x171d121b, 0x0d0b0e09, 0xc7adf28b, 0xa8b92db6, 0xa9c8141e, 0x198557f1, 0x074caf75, 0xddbbee99, 0x60fda37f, 0x269ff701, 0xf5bc5c72, 0x3bc54466, 0x7e345bfb, 0x29768b43, 0xc6dccb23, 0xfc68b6ed, 0xf163b8e4, 0xdccad731, 0x85104263, 0x22401397, 0x112084c6, 0x247d854a, 0x3df8d2bb, 0x3211aef9, 0xa16dc729, 0x2f4b1d9e, 0x30f3dcb2, 0x52ec0d86, 0xe3d077c1, 0x166c2bb3, 0xb999a970, 0x48fa1194, 0x642247e9, 0x8cc4a8fc, 0x3f1aa0f0, 0x2cd8567d, 0x90ef2233, 0x4ec78749, 0xd1c1d938, 0xa2fe8cca, 0x0b3698d4, 0x81cfa6f5, 0xde28a57a, 0x8e26dab7, 0xbfa43fad, 0x9de42c3a, 0x920d5078, 0xcc9b6a5f, 0x4662547e, 0x13c2f68d, 0xb8e890d8, 0xf75e2e39, 0xaff582c3, 0x80be9f5d, 0x937c69d0, 0x2da96fd5, 0x12b3cf25, 0x993bc8ac, 0x7da71018, 0x636ee89c, 0xbb7bdb3b, 0x7809cd26, 0x18f46e59, 0xb701ec9a, 0x9aa8834f, 0x6e65e695, 0xe67eaaff, 0xcf0821bc, 0xe8e6ef15, 0x9bd9bae7, 0x36ce4a6f, 0x09d4ea9f, 0x7cd629b0, 0xb2af31a4, 0x23312a3f, 0x9430c6a5, 0x66c035a2, 0xbc37744e, 0xcaa6fc82, 0xd0b0e090, 0xd81533a7, 0x984af104, 0xdaf741ec, 0x500e7fcd, 0xf62f1791, 0xd68d764d, 0xb04d43ef, 0x4d54ccaa, 0x04dfe496, 0xb5e39ed1, 0x881b4c6a, 0x1fb8c12c, 0x517f4665, 0xea049d5e, 0x355d018c, 0x7473fa87, 0x412efb0b, 0x1d5ab367, 0xd25292db, 0x5633e910, 0x47136dd6, 0x618c9ad7, 0x0c7a37a1, 0x148e59f8, 0x3c89eb13, 0x27eecea9, 0xc935b761, 0xe5ede11c, 0xb13c7a47, 0xdf599cd2, 0x733f55f2, 0xce791814, 0x37bf73c7, 0xcdea53f7, 0xaa5b5ffd, 0x6f14df3d, 0xdb867844, 0xf381caaf, 0xc43eb968, 0x342c3824, 0x405fc2a3, 0xc372161d, 0x250cbce2, 0x498b283c, 0x9541ff0d, 0x017139a8, 0xb3de080c, 0xe49cd8b4, 0xc1906456, 0x84617bcb, 0xb670d532, 0x5c74486c, 0x5742d0b8];\n var T8 = [0xf4a75051, 0x4165537e, 0x17a4c31a, 0x275e963a, 0xab6bcb3b, 0x9d45f11f, 0xfa58abac, 0xe303934b, 0x30fa5520, 0x766df6ad, 0xcc769188, 0x024c25f5, 0xe5d7fc4f, 0x2acbd7c5, 0x35448026, 0x62a38fb5, 0xb15a49de, 0xba1b6725, 0xea0e9845, 0xfec0e15d, 0x2f7502c3, 0x4cf01281, 0x4697a38d, 0xd3f9c66b, 0x8f5fe703, 0x929c9515, 0x6d7aebbf, 0x5259da95, 0xbe832dd4, 0x7421d358, 0xe0692949, 0xc9c8448e, 0xc2896a75, 0x8e7978f4, 0x583e6b99, 0xb971dd27, 0xe14fb6be, 0x88ad17f0, 0x20ac66c9, 0xce3ab47d, 0xdf4a1863, 0x1a3182e5, 0x51336097, 0x537f4562, 0x6477e0b1, 0x6bae84bb, 0x81a01cfe, 0x082b94f9, 0x48685870, 0x45fd198f, 0xde6c8794, 0x7bf8b752, 0x73d323ab, 0x4b02e272, 0x1f8f57e3, 0x55ab2a66, 0xeb2807b2, 0xb5c2032f, 0xc57b9a86, 0x3708a5d3, 0x2887f230, 0xbfa5b223, 0x036aba02, 0x16825ced, 0xcf1c2b8a, 0x79b492a7, 0x07f2f0f3, 0x69e2a14e, 0xdaf4cd65, 0x05bed506, 0x34621fd1, 0xa6fe8ac4, 0x2e539d34, 0xf355a0a2, 0x8ae13205, 0xf6eb75a4, 0x83ec390b, 0x60efaa40, 0x719f065e, 0x6e1051bd, 0x218af93e, 0xdd063d96, 0x3e05aedd, 0xe6bd464d, 0x548db591, 0xc45d0571, 0x06d46f04, 0x5015ff60, 0x98fb2419, 0xbde997d6, 0x4043cc89, 0xd99e7767, 0xe842bdb0, 0x898b8807, 0x195b38e7, 0xc8eedb79, 0x7c0a47a1, 0x420fe97c, 0x841ec9f8, 0x00000000, 0x80868309, 0x2bed4832, 0x1170ac1e, 0x5a724e6c, 0x0efffbfd, 0x8538560f, 0xaed51e3d, 0x2d392736, 0x0fd9640a, 0x5ca62168, 0x5b54d19b, 0x362e3a24, 0x0a67b10c, 0x57e70f93, 0xee96d2b4, 0x9b919e1b, 0xc0c54f80, 0xdc20a261, 0x774b695a, 0x121a161c, 0x93ba0ae2, 0xa02ae5c0, 0x22e0433c, 0x1b171d12, 0x090d0b0e, 0x8bc7adf2, 0xb6a8b92d, 0x1ea9c814, 0xf1198557, 0x75074caf, 0x99ddbbee, 0x7f60fda3, 0x01269ff7, 0x72f5bc5c, 0x663bc544, 0xfb7e345b, 0x4329768b, 0x23c6dccb, 0xedfc68b6, 0xe4f163b8, 0x31dccad7, 0x63851042, 0x97224013, 0xc6112084, 0x4a247d85, 0xbb3df8d2, 0xf93211ae, 0x29a16dc7, 0x9e2f4b1d, 0xb230f3dc, 0x8652ec0d, 0xc1e3d077, 0xb3166c2b, 0x70b999a9, 0x9448fa11, 0xe9642247, 0xfc8cc4a8, 0xf03f1aa0, 0x7d2cd856, 0x3390ef22, 0x494ec787, 0x38d1c1d9, 0xcaa2fe8c, 0xd40b3698, 0xf581cfa6, 0x7ade28a5, 0xb78e26da, 0xadbfa43f, 0x3a9de42c, 0x78920d50, 0x5fcc9b6a, 0x7e466254, 0x8d13c2f6, 0xd8b8e890, 0x39f75e2e, 0xc3aff582, 0x5d80be9f, 0xd0937c69, 0xd52da96f, 0x2512b3cf, 0xac993bc8, 0x187da710, 0x9c636ee8, 0x3bbb7bdb, 0x267809cd, 0x5918f46e, 0x9ab701ec, 0x4f9aa883, 0x956e65e6, 0xffe67eaa, 0xbccf0821, 0x15e8e6ef, 0xe79bd9ba, 0x6f36ce4a, 0x9f09d4ea, 0xb07cd629, 0xa4b2af31, 0x3f23312a, 0xa59430c6, 0xa266c035, 0x4ebc3774, 0x82caa6fc, 0x90d0b0e0, 0xa7d81533, 0x04984af1, 0xecdaf741, 0xcd500e7f, 0x91f62f17, 0x4dd68d76, 0xefb04d43, 0xaa4d54cc, 0x9604dfe4, 0xd1b5e39e, 0x6a881b4c, 0x2c1fb8c1, 0x65517f46, 0x5eea049d, 0x8c355d01, 0x877473fa, 0x0b412efb, 0x671d5ab3, 0xdbd25292, 0x105633e9, 0xd647136d, 0xd7618c9a, 0xa10c7a37, 0xf8148e59, 0x133c89eb, 0xa927eece, 0x61c935b7, 0x1ce5ede1, 0x47b13c7a, 0xd2df599c, 0xf2733f55, 0x14ce7918, 0xc737bf73, 0xf7cdea53, 0xfdaa5b5f, 0x3d6f14df, 0x44db8678, 0xaff381ca, 0x68c43eb9, 0x24342c38, 0xa3405fc2, 0x1dc37216, 0xe2250cbc, 0x3c498b28, 0x0d9541ff, 0xa8017139, 0x0cb3de08, 0xb4e49cd8, 0x56c19064, 0xcb84617b, 0x32b670d5, 0x6c5c7448, 0xb85742d0];\n\n // Transformations for decryption key expansion\n var U1 = [0x00000000, 0x0e090d0b, 0x1c121a16, 0x121b171d, 0x3824342c, 0x362d3927, 0x24362e3a, 0x2a3f2331, 0x70486858, 0x7e416553, 0x6c5a724e, 0x62537f45, 0x486c5c74, 0x4665517f, 0x547e4662, 0x5a774b69, 0xe090d0b0, 0xee99ddbb, 0xfc82caa6, 0xf28bc7ad, 0xd8b4e49c, 0xd6bde997, 0xc4a6fe8a, 0xcaaff381, 0x90d8b8e8, 0x9ed1b5e3, 0x8ccaa2fe, 0x82c3aff5, 0xa8fc8cc4, 0xa6f581cf, 0xb4ee96d2, 0xbae79bd9, 0xdb3bbb7b, 0xd532b670, 0xc729a16d, 0xc920ac66, 0xe31f8f57, 0xed16825c, 0xff0d9541, 0xf104984a, 0xab73d323, 0xa57ade28, 0xb761c935, 0xb968c43e, 0x9357e70f, 0x9d5eea04, 0x8f45fd19, 0x814cf012, 0x3bab6bcb, 0x35a266c0, 0x27b971dd, 0x29b07cd6, 0x038f5fe7, 0x0d8652ec, 0x1f9d45f1, 0x119448fa, 0x4be30393, 0x45ea0e98, 0x57f11985, 0x59f8148e, 0x73c737bf, 0x7dce3ab4, 0x6fd52da9, 0x61dc20a2, 0xad766df6, 0xa37f60fd, 0xb16477e0, 0xbf6d7aeb, 0x955259da, 0x9b5b54d1, 0x894043cc, 0x87494ec7, 0xdd3e05ae, 0xd33708a5, 0xc12c1fb8, 0xcf2512b3, 0xe51a3182, 0xeb133c89, 0xf9082b94, 0xf701269f, 0x4de6bd46, 0x43efb04d, 0x51f4a750, 0x5ffdaa5b, 0x75c2896a, 0x7bcb8461, 0x69d0937c, 0x67d99e77, 0x3daed51e, 0x33a7d815, 0x21bccf08, 0x2fb5c203, 0x058ae132, 0x0b83ec39, 0x1998fb24, 0x1791f62f, 0x764dd68d, 0x7844db86, 0x6a5fcc9b, 0x6456c190, 0x4e69e2a1, 0x4060efaa, 0x527bf8b7, 0x5c72f5bc, 0x0605bed5, 0x080cb3de, 0x1a17a4c3, 0x141ea9c8, 0x3e218af9, 0x302887f2, 0x223390ef, 0x2c3a9de4, 0x96dd063d, 0x98d40b36, 0x8acf1c2b, 0x84c61120, 0xaef93211, 0xa0f03f1a, 0xb2eb2807, 0xbce2250c, 0xe6956e65, 0xe89c636e, 0xfa877473, 0xf48e7978, 0xdeb15a49, 0xd0b85742, 0xc2a3405f, 0xccaa4d54, 0x41ecdaf7, 0x4fe5d7fc, 0x5dfec0e1, 0x53f7cdea, 0x79c8eedb, 0x77c1e3d0, 0x65daf4cd, 0x6bd3f9c6, 0x31a4b2af, 0x3fadbfa4, 0x2db6a8b9, 0x23bfa5b2, 0x09808683, 0x07898b88, 0x15929c95, 0x1b9b919e, 0xa17c0a47, 0xaf75074c, 0xbd6e1051, 0xb3671d5a, 0x99583e6b, 0x97513360, 0x854a247d, 0x8b432976, 0xd134621f, 0xdf3d6f14, 0xcd267809, 0xc32f7502, 0xe9105633, 0xe7195b38, 0xf5024c25, 0xfb0b412e, 0x9ad7618c, 0x94de6c87, 0x86c57b9a, 0x88cc7691, 0xa2f355a0, 0xacfa58ab, 0xbee14fb6, 0xb0e842bd, 0xea9f09d4, 0xe49604df, 0xf68d13c2, 0xf8841ec9, 0xd2bb3df8, 0xdcb230f3, 0xcea927ee, 0xc0a02ae5, 0x7a47b13c, 0x744ebc37, 0x6655ab2a, 0x685ca621, 0x42638510, 0x4c6a881b, 0x5e719f06, 0x5078920d, 0x0a0fd964, 0x0406d46f, 0x161dc372, 0x1814ce79, 0x322bed48, 0x3c22e043, 0x2e39f75e, 0x2030fa55, 0xec9ab701, 0xe293ba0a, 0xf088ad17, 0xfe81a01c, 0xd4be832d, 0xdab78e26, 0xc8ac993b, 0xc6a59430, 0x9cd2df59, 0x92dbd252, 0x80c0c54f, 0x8ec9c844, 0xa4f6eb75, 0xaaffe67e, 0xb8e4f163, 0xb6edfc68, 0x0c0a67b1, 0x02036aba, 0x10187da7, 0x1e1170ac, 0x342e539d, 0x3a275e96, 0x283c498b, 0x26354480, 0x7c420fe9, 0x724b02e2, 0x605015ff, 0x6e5918f4, 0x44663bc5, 0x4a6f36ce, 0x587421d3, 0x567d2cd8, 0x37a10c7a, 0x39a80171, 0x2bb3166c, 0x25ba1b67, 0x0f853856, 0x018c355d, 0x13972240, 0x1d9e2f4b, 0x47e96422, 0x49e06929, 0x5bfb7e34, 0x55f2733f, 0x7fcd500e, 0x71c45d05, 0x63df4a18, 0x6dd64713, 0xd731dcca, 0xd938d1c1, 0xcb23c6dc, 0xc52acbd7, 0xef15e8e6, 0xe11ce5ed, 0xf307f2f0, 0xfd0efffb, 0xa779b492, 0xa970b999, 0xbb6bae84, 0xb562a38f, 0x9f5d80be, 0x91548db5, 0x834f9aa8, 0x8d4697a3];\n var U2 = [0x00000000, 0x0b0e090d, 0x161c121a, 0x1d121b17, 0x2c382434, 0x27362d39, 0x3a24362e, 0x312a3f23, 0x58704868, 0x537e4165, 0x4e6c5a72, 0x4562537f, 0x74486c5c, 0x7f466551, 0x62547e46, 0x695a774b, 0xb0e090d0, 0xbbee99dd, 0xa6fc82ca, 0xadf28bc7, 0x9cd8b4e4, 0x97d6bde9, 0x8ac4a6fe, 0x81caaff3, 0xe890d8b8, 0xe39ed1b5, 0xfe8ccaa2, 0xf582c3af, 0xc4a8fc8c, 0xcfa6f581, 0xd2b4ee96, 0xd9bae79b, 0x7bdb3bbb, 0x70d532b6, 0x6dc729a1, 0x66c920ac, 0x57e31f8f, 0x5ced1682, 0x41ff0d95, 0x4af10498, 0x23ab73d3, 0x28a57ade, 0x35b761c9, 0x3eb968c4, 0x0f9357e7, 0x049d5eea, 0x198f45fd, 0x12814cf0, 0xcb3bab6b, 0xc035a266, 0xdd27b971, 0xd629b07c, 0xe7038f5f, 0xec0d8652, 0xf11f9d45, 0xfa119448, 0x934be303, 0x9845ea0e, 0x8557f119, 0x8e59f814, 0xbf73c737, 0xb47dce3a, 0xa96fd52d, 0xa261dc20, 0xf6ad766d, 0xfda37f60, 0xe0b16477, 0xebbf6d7a, 0xda955259, 0xd19b5b54, 0xcc894043, 0xc787494e, 0xaedd3e05, 0xa5d33708, 0xb8c12c1f, 0xb3cf2512, 0x82e51a31, 0x89eb133c, 0x94f9082b, 0x9ff70126, 0x464de6bd, 0x4d43efb0, 0x5051f4a7, 0x5b5ffdaa, 0x6a75c289, 0x617bcb84, 0x7c69d093, 0x7767d99e, 0x1e3daed5, 0x1533a7d8, 0x0821bccf, 0x032fb5c2, 0x32058ae1, 0x390b83ec, 0x241998fb, 0x2f1791f6, 0x8d764dd6, 0x867844db, 0x9b6a5fcc, 0x906456c1, 0xa14e69e2, 0xaa4060ef, 0xb7527bf8, 0xbc5c72f5, 0xd50605be, 0xde080cb3, 0xc31a17a4, 0xc8141ea9, 0xf93e218a, 0xf2302887, 0xef223390, 0xe42c3a9d, 0x3d96dd06, 0x3698d40b, 0x2b8acf1c, 0x2084c611, 0x11aef932, 0x1aa0f03f, 0x07b2eb28, 0x0cbce225, 0x65e6956e, 0x6ee89c63, 0x73fa8774, 0x78f48e79, 0x49deb15a, 0x42d0b857, 0x5fc2a340, 0x54ccaa4d, 0xf741ecda, 0xfc4fe5d7, 0xe15dfec0, 0xea53f7cd, 0xdb79c8ee, 0xd077c1e3, 0xcd65daf4, 0xc66bd3f9, 0xaf31a4b2, 0xa43fadbf, 0xb92db6a8, 0xb223bfa5, 0x83098086, 0x8807898b, 0x9515929c, 0x9e1b9b91, 0x47a17c0a, 0x4caf7507, 0x51bd6e10, 0x5ab3671d, 0x6b99583e, 0x60975133, 0x7d854a24, 0x768b4329, 0x1fd13462, 0x14df3d6f, 0x09cd2678, 0x02c32f75, 0x33e91056, 0x38e7195b, 0x25f5024c, 0x2efb0b41, 0x8c9ad761, 0x8794de6c, 0x9a86c57b, 0x9188cc76, 0xa0a2f355, 0xabacfa58, 0xb6bee14f, 0xbdb0e842, 0xd4ea9f09, 0xdfe49604, 0xc2f68d13, 0xc9f8841e, 0xf8d2bb3d, 0xf3dcb230, 0xeecea927, 0xe5c0a02a, 0x3c7a47b1, 0x37744ebc, 0x2a6655ab, 0x21685ca6, 0x10426385, 0x1b4c6a88, 0x065e719f, 0x0d507892, 0x640a0fd9, 0x6f0406d4, 0x72161dc3, 0x791814ce, 0x48322bed, 0x433c22e0, 0x5e2e39f7, 0x552030fa, 0x01ec9ab7, 0x0ae293ba, 0x17f088ad, 0x1cfe81a0, 0x2dd4be83, 0x26dab78e, 0x3bc8ac99, 0x30c6a594, 0x599cd2df, 0x5292dbd2, 0x4f80c0c5, 0x448ec9c8, 0x75a4f6eb, 0x7eaaffe6, 0x63b8e4f1, 0x68b6edfc, 0xb10c0a67, 0xba02036a, 0xa710187d, 0xac1e1170, 0x9d342e53, 0x963a275e, 0x8b283c49, 0x80263544, 0xe97c420f, 0xe2724b02, 0xff605015, 0xf46e5918, 0xc544663b, 0xce4a6f36, 0xd3587421, 0xd8567d2c, 0x7a37a10c, 0x7139a801, 0x6c2bb316, 0x6725ba1b, 0x560f8538, 0x5d018c35, 0x40139722, 0x4b1d9e2f, 0x2247e964, 0x2949e069, 0x345bfb7e, 0x3f55f273, 0x0e7fcd50, 0x0571c45d, 0x1863df4a, 0x136dd647, 0xcad731dc, 0xc1d938d1, 0xdccb23c6, 0xd7c52acb, 0xe6ef15e8, 0xede11ce5, 0xf0f307f2, 0xfbfd0eff, 0x92a779b4, 0x99a970b9, 0x84bb6bae, 0x8fb562a3, 0xbe9f5d80, 0xb591548d, 0xa8834f9a, 0xa38d4697];\n var U3 = [0x00000000, 0x0d0b0e09, 0x1a161c12, 0x171d121b, 0x342c3824, 0x3927362d, 0x2e3a2436, 0x23312a3f, 0x68587048, 0x65537e41, 0x724e6c5a, 0x7f456253, 0x5c74486c, 0x517f4665, 0x4662547e, 0x4b695a77, 0xd0b0e090, 0xddbbee99, 0xcaa6fc82, 0xc7adf28b, 0xe49cd8b4, 0xe997d6bd, 0xfe8ac4a6, 0xf381caaf, 0xb8e890d8, 0xb5e39ed1, 0xa2fe8cca, 0xaff582c3, 0x8cc4a8fc, 0x81cfa6f5, 0x96d2b4ee, 0x9bd9bae7, 0xbb7bdb3b, 0xb670d532, 0xa16dc729, 0xac66c920, 0x8f57e31f, 0x825ced16, 0x9541ff0d, 0x984af104, 0xd323ab73, 0xde28a57a, 0xc935b761, 0xc43eb968, 0xe70f9357, 0xea049d5e, 0xfd198f45, 0xf012814c, 0x6bcb3bab, 0x66c035a2, 0x71dd27b9, 0x7cd629b0, 0x5fe7038f, 0x52ec0d86, 0x45f11f9d, 0x48fa1194, 0x03934be3, 0x0e9845ea, 0x198557f1, 0x148e59f8, 0x37bf73c7, 0x3ab47dce, 0x2da96fd5, 0x20a261dc, 0x6df6ad76, 0x60fda37f, 0x77e0b164, 0x7aebbf6d, 0x59da9552, 0x54d19b5b, 0x43cc8940, 0x4ec78749, 0x05aedd3e, 0x08a5d337, 0x1fb8c12c, 0x12b3cf25, 0x3182e51a, 0x3c89eb13, 0x2b94f908, 0x269ff701, 0xbd464de6, 0xb04d43ef, 0xa75051f4, 0xaa5b5ffd, 0x896a75c2, 0x84617bcb, 0x937c69d0, 0x9e7767d9, 0xd51e3dae, 0xd81533a7, 0xcf0821bc, 0xc2032fb5, 0xe132058a, 0xec390b83, 0xfb241998, 0xf62f1791, 0xd68d764d, 0xdb867844, 0xcc9b6a5f, 0xc1906456, 0xe2a14e69, 0xefaa4060, 0xf8b7527b, 0xf5bc5c72, 0xbed50605, 0xb3de080c, 0xa4c31a17, 0xa9c8141e, 0x8af93e21, 0x87f23028, 0x90ef2233, 0x9de42c3a, 0x063d96dd, 0x0b3698d4, 0x1c2b8acf, 0x112084c6, 0x3211aef9, 0x3f1aa0f0, 0x2807b2eb, 0x250cbce2, 0x6e65e695, 0x636ee89c, 0x7473fa87, 0x7978f48e, 0x5a49deb1, 0x5742d0b8, 0x405fc2a3, 0x4d54ccaa, 0xdaf741ec, 0xd7fc4fe5, 0xc0e15dfe, 0xcdea53f7, 0xeedb79c8, 0xe3d077c1, 0xf4cd65da, 0xf9c66bd3, 0xb2af31a4, 0xbfa43fad, 0xa8b92db6, 0xa5b223bf, 0x86830980, 0x8b880789, 0x9c951592, 0x919e1b9b, 0x0a47a17c, 0x074caf75, 0x1051bd6e, 0x1d5ab367, 0x3e6b9958, 0x33609751, 0x247d854a, 0x29768b43, 0x621fd134, 0x6f14df3d, 0x7809cd26, 0x7502c32f, 0x5633e910, 0x5b38e719, 0x4c25f502, 0x412efb0b, 0x618c9ad7, 0x6c8794de, 0x7b9a86c5, 0x769188cc, 0x55a0a2f3, 0x58abacfa, 0x4fb6bee1, 0x42bdb0e8, 0x09d4ea9f, 0x04dfe496, 0x13c2f68d, 0x1ec9f884, 0x3df8d2bb, 0x30f3dcb2, 0x27eecea9, 0x2ae5c0a0, 0xb13c7a47, 0xbc37744e, 0xab2a6655, 0xa621685c, 0x85104263, 0x881b4c6a, 0x9f065e71, 0x920d5078, 0xd9640a0f, 0xd46f0406, 0xc372161d, 0xce791814, 0xed48322b, 0xe0433c22, 0xf75e2e39, 0xfa552030, 0xb701ec9a, 0xba0ae293, 0xad17f088, 0xa01cfe81, 0x832dd4be, 0x8e26dab7, 0x993bc8ac, 0x9430c6a5, 0xdf599cd2, 0xd25292db, 0xc54f80c0, 0xc8448ec9, 0xeb75a4f6, 0xe67eaaff, 0xf163b8e4, 0xfc68b6ed, 0x67b10c0a, 0x6aba0203, 0x7da71018, 0x70ac1e11, 0x539d342e, 0x5e963a27, 0x498b283c, 0x44802635, 0x0fe97c42, 0x02e2724b, 0x15ff6050, 0x18f46e59, 0x3bc54466, 0x36ce4a6f, 0x21d35874, 0x2cd8567d, 0x0c7a37a1, 0x017139a8, 0x166c2bb3, 0x1b6725ba, 0x38560f85, 0x355d018c, 0x22401397, 0x2f4b1d9e, 0x642247e9, 0x692949e0, 0x7e345bfb, 0x733f55f2, 0x500e7fcd, 0x5d0571c4, 0x4a1863df, 0x47136dd6, 0xdccad731, 0xd1c1d938, 0xc6dccb23, 0xcbd7c52a, 0xe8e6ef15, 0xe5ede11c, 0xf2f0f307, 0xfffbfd0e, 0xb492a779, 0xb999a970, 0xae84bb6b, 0xa38fb562, 0x80be9f5d, 0x8db59154, 0x9aa8834f, 0x97a38d46];\n var U4 = [0x00000000, 0x090d0b0e, 0x121a161c, 0x1b171d12, 0x24342c38, 0x2d392736, 0x362e3a24, 0x3f23312a, 0x48685870, 0x4165537e, 0x5a724e6c, 0x537f4562, 0x6c5c7448, 0x65517f46, 0x7e466254, 0x774b695a, 0x90d0b0e0, 0x99ddbbee, 0x82caa6fc, 0x8bc7adf2, 0xb4e49cd8, 0xbde997d6, 0xa6fe8ac4, 0xaff381ca, 0xd8b8e890, 0xd1b5e39e, 0xcaa2fe8c, 0xc3aff582, 0xfc8cc4a8, 0xf581cfa6, 0xee96d2b4, 0xe79bd9ba, 0x3bbb7bdb, 0x32b670d5, 0x29a16dc7, 0x20ac66c9, 0x1f8f57e3, 0x16825ced, 0x0d9541ff, 0x04984af1, 0x73d323ab, 0x7ade28a5, 0x61c935b7, 0x68c43eb9, 0x57e70f93, 0x5eea049d, 0x45fd198f, 0x4cf01281, 0xab6bcb3b, 0xa266c035, 0xb971dd27, 0xb07cd629, 0x8f5fe703, 0x8652ec0d, 0x9d45f11f, 0x9448fa11, 0xe303934b, 0xea0e9845, 0xf1198557, 0xf8148e59, 0xc737bf73, 0xce3ab47d, 0xd52da96f, 0xdc20a261, 0x766df6ad, 0x7f60fda3, 0x6477e0b1, 0x6d7aebbf, 0x5259da95, 0x5b54d19b, 0x4043cc89, 0x494ec787, 0x3e05aedd, 0x3708a5d3, 0x2c1fb8c1, 0x2512b3cf, 0x1a3182e5, 0x133c89eb, 0x082b94f9, 0x01269ff7, 0xe6bd464d, 0xefb04d43, 0xf4a75051, 0xfdaa5b5f, 0xc2896a75, 0xcb84617b, 0xd0937c69, 0xd99e7767, 0xaed51e3d, 0xa7d81533, 0xbccf0821, 0xb5c2032f, 0x8ae13205, 0x83ec390b, 0x98fb2419, 0x91f62f17, 0x4dd68d76, 0x44db8678, 0x5fcc9b6a, 0x56c19064, 0x69e2a14e, 0x60efaa40, 0x7bf8b752, 0x72f5bc5c, 0x05bed506, 0x0cb3de08, 0x17a4c31a, 0x1ea9c814, 0x218af93e, 0x2887f230, 0x3390ef22, 0x3a9de42c, 0xdd063d96, 0xd40b3698, 0xcf1c2b8a, 0xc6112084, 0xf93211ae, 0xf03f1aa0, 0xeb2807b2, 0xe2250cbc, 0x956e65e6, 0x9c636ee8, 0x877473fa, 0x8e7978f4, 0xb15a49de, 0xb85742d0, 0xa3405fc2, 0xaa4d54cc, 0xecdaf741, 0xe5d7fc4f, 0xfec0e15d, 0xf7cdea53, 0xc8eedb79, 0xc1e3d077, 0xdaf4cd65, 0xd3f9c66b, 0xa4b2af31, 0xadbfa43f, 0xb6a8b92d, 0xbfa5b223, 0x80868309, 0x898b8807, 0x929c9515, 0x9b919e1b, 0x7c0a47a1, 0x75074caf, 0x6e1051bd, 0x671d5ab3, 0x583e6b99, 0x51336097, 0x4a247d85, 0x4329768b, 0x34621fd1, 0x3d6f14df, 0x267809cd, 0x2f7502c3, 0x105633e9, 0x195b38e7, 0x024c25f5, 0x0b412efb, 0xd7618c9a, 0xde6c8794, 0xc57b9a86, 0xcc769188, 0xf355a0a2, 0xfa58abac, 0xe14fb6be, 0xe842bdb0, 0x9f09d4ea, 0x9604dfe4, 0x8d13c2f6, 0x841ec9f8, 0xbb3df8d2, 0xb230f3dc, 0xa927eece, 0xa02ae5c0, 0x47b13c7a, 0x4ebc3774, 0x55ab2a66, 0x5ca62168, 0x63851042, 0x6a881b4c, 0x719f065e, 0x78920d50, 0x0fd9640a, 0x06d46f04, 0x1dc37216, 0x14ce7918, 0x2bed4832, 0x22e0433c, 0x39f75e2e, 0x30fa5520, 0x9ab701ec, 0x93ba0ae2, 0x88ad17f0, 0x81a01cfe, 0xbe832dd4, 0xb78e26da, 0xac993bc8, 0xa59430c6, 0xd2df599c, 0xdbd25292, 0xc0c54f80, 0xc9c8448e, 0xf6eb75a4, 0xffe67eaa, 0xe4f163b8, 0xedfc68b6, 0x0a67b10c, 0x036aba02, 0x187da710, 0x1170ac1e, 0x2e539d34, 0x275e963a, 0x3c498b28, 0x35448026, 0x420fe97c, 0x4b02e272, 0x5015ff60, 0x5918f46e, 0x663bc544, 0x6f36ce4a, 0x7421d358, 0x7d2cd856, 0xa10c7a37, 0xa8017139, 0xb3166c2b, 0xba1b6725, 0x8538560f, 0x8c355d01, 0x97224013, 0x9e2f4b1d, 0xe9642247, 0xe0692949, 0xfb7e345b, 0xf2733f55, 0xcd500e7f, 0xc45d0571, 0xdf4a1863, 0xd647136d, 0x31dccad7, 0x38d1c1d9, 0x23c6dccb, 0x2acbd7c5, 0x15e8e6ef, 0x1ce5ede1, 0x07f2f0f3, 0x0efffbfd, 0x79b492a7, 0x70b999a9, 0x6bae84bb, 0x62a38fb5, 0x5d80be9f, 0x548db591, 0x4f9aa883, 0x4697a38d];\n\n function convertToInt32(bytes) {\n var result = [];\n for (var i = 0; i < bytes.length; i += 4) {\n result.push(\n (bytes[i ] << 24) |\n (bytes[i + 1] << 16) |\n (bytes[i + 2] << 8) |\n bytes[i + 3]\n );\n }\n return result;\n }\n\n var AES = function(key) {\n if (!(this instanceof AES)) {\n throw Error('AES must be instanitated with `new`');\n }\n\n Object.defineProperty(this, 'key', {\n value: coerceArray(key, true)\n });\n\n this._prepare();\n }\n\n\n AES.prototype._prepare = function() {\n\n var rounds = numberOfRounds[this.key.length];\n if (rounds == null) {\n throw new Error('invalid key size (must be 16, 24 or 32 bytes)');\n }\n\n // encryption round keys\n this._Ke = [];\n\n // decryption round keys\n this._Kd = [];\n\n for (var i = 0; i <= rounds; i++) {\n this._Ke.push([0, 0, 0, 0]);\n this._Kd.push([0, 0, 0, 0]);\n }\n\n var roundKeyCount = (rounds + 1) * 4;\n var KC = this.key.length / 4;\n\n // convert the key into ints\n var tk = convertToInt32(this.key);\n\n // copy values into round key arrays\n var index;\n for (var i = 0; i < KC; i++) {\n index = i >> 2;\n this._Ke[index][i % 4] = tk[i];\n this._Kd[rounds - index][i % 4] = tk[i];\n }\n\n // key expansion (fips-197 section 5.2)\n var rconpointer = 0;\n var t = KC, tt;\n while (t < roundKeyCount) {\n tt = tk[KC - 1];\n tk[0] ^= ((S[(tt >> 16) & 0xFF] << 24) ^\n (S[(tt >> 8) & 0xFF] << 16) ^\n (S[ tt & 0xFF] << 8) ^\n S[(tt >> 24) & 0xFF] ^\n (rcon[rconpointer] << 24));\n rconpointer += 1;\n\n // key expansion (for non-256 bit)\n if (KC != 8) {\n for (var i = 1; i < KC; i++) {\n tk[i] ^= tk[i - 1];\n }\n\n // key expansion for 256-bit keys is \"slightly different\" (fips-197)\n } else {\n for (var i = 1; i < (KC / 2); i++) {\n tk[i] ^= tk[i - 1];\n }\n tt = tk[(KC / 2) - 1];\n\n tk[KC / 2] ^= (S[ tt & 0xFF] ^\n (S[(tt >> 8) & 0xFF] << 8) ^\n (S[(tt >> 16) & 0xFF] << 16) ^\n (S[(tt >> 24) & 0xFF] << 24));\n\n for (var i = (KC / 2) + 1; i < KC; i++) {\n tk[i] ^= tk[i - 1];\n }\n }\n\n // copy values into round key arrays\n var i = 0, r, c;\n while (i < KC && t < roundKeyCount) {\n r = t >> 2;\n c = t % 4;\n this._Ke[r][c] = tk[i];\n this._Kd[rounds - r][c] = tk[i++];\n t++;\n }\n }\n\n // inverse-cipher-ify the decryption round key (fips-197 section 5.3)\n for (var r = 1; r < rounds; r++) {\n for (var c = 0; c < 4; c++) {\n tt = this._Kd[r][c];\n this._Kd[r][c] = (U1[(tt >> 24) & 0xFF] ^\n U2[(tt >> 16) & 0xFF] ^\n U3[(tt >> 8) & 0xFF] ^\n U4[ tt & 0xFF]);\n }\n }\n }\n\n AES.prototype.encrypt = function(plaintext) {\n if (plaintext.length != 16) {\n throw new Error('invalid plaintext size (must be 16 bytes)');\n }\n\n var rounds = this._Ke.length - 1;\n var a = [0, 0, 0, 0];\n\n // convert plaintext to (ints ^ key)\n var t = convertToInt32(plaintext);\n for (var i = 0; i < 4; i++) {\n t[i] ^= this._Ke[0][i];\n }\n\n // apply round transforms\n for (var r = 1; r < rounds; r++) {\n for (var i = 0; i < 4; i++) {\n a[i] = (T1[(t[ i ] >> 24) & 0xff] ^\n T2[(t[(i + 1) % 4] >> 16) & 0xff] ^\n T3[(t[(i + 2) % 4] >> 8) & 0xff] ^\n T4[ t[(i + 3) % 4] & 0xff] ^\n this._Ke[r][i]);\n }\n t = a.slice();\n }\n\n // the last round is special\n var result = createArray(16), tt;\n for (var i = 0; i < 4; i++) {\n tt = this._Ke[rounds][i];\n result[4 * i ] = (S[(t[ i ] >> 24) & 0xff] ^ (tt >> 24)) & 0xff;\n result[4 * i + 1] = (S[(t[(i + 1) % 4] >> 16) & 0xff] ^ (tt >> 16)) & 0xff;\n result[4 * i + 2] = (S[(t[(i + 2) % 4] >> 8) & 0xff] ^ (tt >> 8)) & 0xff;\n result[4 * i + 3] = (S[ t[(i + 3) % 4] & 0xff] ^ tt ) & 0xff;\n }\n\n return result;\n }\n\n AES.prototype.decrypt = function(ciphertext) {\n if (ciphertext.length != 16) {\n throw new Error('invalid ciphertext size (must be 16 bytes)');\n }\n\n var rounds = this._Kd.length - 1;\n var a = [0, 0, 0, 0];\n\n // convert plaintext to (ints ^ key)\n var t = convertToInt32(ciphertext);\n for (var i = 0; i < 4; i++) {\n t[i] ^= this._Kd[0][i];\n }\n\n // apply round transforms\n for (var r = 1; r < rounds; r++) {\n for (var i = 0; i < 4; i++) {\n a[i] = (T5[(t[ i ] >> 24) & 0xff] ^\n T6[(t[(i + 3) % 4] >> 16) & 0xff] ^\n T7[(t[(i + 2) % 4] >> 8) & 0xff] ^\n T8[ t[(i + 1) % 4] & 0xff] ^\n this._Kd[r][i]);\n }\n t = a.slice();\n }\n\n // the last round is special\n var result = createArray(16), tt;\n for (var i = 0; i < 4; i++) {\n tt = this._Kd[rounds][i];\n result[4 * i ] = (Si[(t[ i ] >> 24) & 0xff] ^ (tt >> 24)) & 0xff;\n result[4 * i + 1] = (Si[(t[(i + 3) % 4] >> 16) & 0xff] ^ (tt >> 16)) & 0xff;\n result[4 * i + 2] = (Si[(t[(i + 2) % 4] >> 8) & 0xff] ^ (tt >> 8)) & 0xff;\n result[4 * i + 3] = (Si[ t[(i + 1) % 4] & 0xff] ^ tt ) & 0xff;\n }\n\n return result;\n }\n\n\n /**\n * Mode Of Operation - Electonic Codebook (ECB)\n */\n var ModeOfOperationECB = function(key) {\n if (!(this instanceof ModeOfOperationECB)) {\n throw Error('AES must be instanitated with `new`');\n }\n\n this.description = \"Electronic Code Block\";\n this.name = \"ecb\";\n\n this._aes = new AES(key);\n }\n\n ModeOfOperationECB.prototype.encrypt = function(plaintext) {\n plaintext = coerceArray(plaintext);\n\n if ((plaintext.length % 16) !== 0) {\n throw new Error('invalid plaintext size (must be multiple of 16 bytes)');\n }\n\n var ciphertext = createArray(plaintext.length);\n var block = createArray(16);\n\n for (var i = 0; i < plaintext.length; i += 16) {\n copyArray(plaintext, block, 0, i, i + 16);\n block = this._aes.encrypt(block);\n copyArray(block, ciphertext, i);\n }\n\n return ciphertext;\n }\n\n ModeOfOperationECB.prototype.decrypt = function(ciphertext) {\n ciphertext = coerceArray(ciphertext);\n\n if ((ciphertext.length % 16) !== 0) {\n throw new Error('invalid ciphertext size (must be multiple of 16 bytes)');\n }\n\n var plaintext = createArray(ciphertext.length);\n var block = createArray(16);\n\n for (var i = 0; i < ciphertext.length; i += 16) {\n copyArray(ciphertext, block, 0, i, i + 16);\n block = this._aes.decrypt(block);\n copyArray(block, plaintext, i);\n }\n\n return plaintext;\n }\n\n\n /**\n * Mode Of Operation - Cipher Block Chaining (CBC)\n */\n var ModeOfOperationCBC = function(key, iv) {\n if (!(this instanceof ModeOfOperationCBC)) {\n throw Error('AES must be instanitated with `new`');\n }\n\n this.description = \"Cipher Block Chaining\";\n this.name = \"cbc\";\n\n if (!iv) {\n iv = createArray(16);\n\n } else if (iv.length != 16) {\n throw new Error('invalid initialation vector size (must be 16 bytes)');\n }\n\n this._lastCipherblock = coerceArray(iv, true);\n\n this._aes = new AES(key);\n }\n\n ModeOfOperationCBC.prototype.encrypt = function(plaintext) {\n plaintext = coerceArray(plaintext);\n\n if ((plaintext.length % 16) !== 0) {\n throw new Error('invalid plaintext size (must be multiple of 16 bytes)');\n }\n\n var ciphertext = createArray(plaintext.length);\n var block = createArray(16);\n\n for (var i = 0; i < plaintext.length; i += 16) {\n copyArray(plaintext, block, 0, i, i + 16);\n\n for (var j = 0; j < 16; j++) {\n block[j] ^= this._lastCipherblock[j];\n }\n\n this._lastCipherblock = this._aes.encrypt(block);\n copyArray(this._lastCipherblock, ciphertext, i);\n }\n\n return ciphertext;\n }\n\n ModeOfOperationCBC.prototype.decrypt = function(ciphertext) {\n ciphertext = coerceArray(ciphertext);\n\n if ((ciphertext.length % 16) !== 0) {\n throw new Error('invalid ciphertext size (must be multiple of 16 bytes)');\n }\n\n var plaintext = createArray(ciphertext.length);\n var block = createArray(16);\n\n for (var i = 0; i < ciphertext.length; i += 16) {\n copyArray(ciphertext, block, 0, i, i + 16);\n block = this._aes.decrypt(block);\n\n for (var j = 0; j < 16; j++) {\n plaintext[i + j] = block[j] ^ this._lastCipherblock[j];\n }\n\n copyArray(ciphertext, this._lastCipherblock, 0, i, i + 16);\n }\n\n return plaintext;\n }\n\n\n /**\n * Mode Of Operation - Cipher Feedback (CFB)\n */\n var ModeOfOperationCFB = function(key, iv, segmentSize) {\n if (!(this instanceof ModeOfOperationCFB)) {\n throw Error('AES must be instanitated with `new`');\n }\n\n this.description = \"Cipher Feedback\";\n this.name = \"cfb\";\n\n if (!iv) {\n iv = createArray(16);\n\n } else if (iv.length != 16) {\n throw new Error('invalid initialation vector size (must be 16 size)');\n }\n\n if (!segmentSize) { segmentSize = 1; }\n\n this.segmentSize = segmentSize;\n\n this._shiftRegister = coerceArray(iv, true);\n\n this._aes = new AES(key);\n }\n\n ModeOfOperationCFB.prototype.encrypt = function(plaintext) {\n if ((plaintext.length % this.segmentSize) != 0) {\n throw new Error('invalid plaintext size (must be segmentSize bytes)');\n }\n\n var encrypted = coerceArray(plaintext, true);\n\n var xorSegment;\n for (var i = 0; i < encrypted.length; i += this.segmentSize) {\n xorSegment = this._aes.encrypt(this._shiftRegister);\n for (var j = 0; j < this.segmentSize; j++) {\n encrypted[i + j] ^= xorSegment[j];\n }\n\n // Shift the register\n copyArray(this._shiftRegister, this._shiftRegister, 0, this.segmentSize);\n copyArray(encrypted, this._shiftRegister, 16 - this.segmentSize, i, i + this.segmentSize);\n }\n\n return encrypted;\n }\n\n ModeOfOperationCFB.prototype.decrypt = function(ciphertext) {\n if ((ciphertext.length % this.segmentSize) != 0) {\n throw new Error('invalid ciphertext size (must be segmentSize bytes)');\n }\n\n var plaintext = coerceArray(ciphertext, true);\n\n var xorSegment;\n for (var i = 0; i < plaintext.length; i += this.segmentSize) {\n xorSegment = this._aes.encrypt(this._shiftRegister);\n\n for (var j = 0; j < this.segmentSize; j++) {\n plaintext[i + j] ^= xorSegment[j];\n }\n\n // Shift the register\n copyArray(this._shiftRegister, this._shiftRegister, 0, this.segmentSize);\n copyArray(ciphertext, this._shiftRegister, 16 - this.segmentSize, i, i + this.segmentSize);\n }\n\n return plaintext;\n }\n\n /**\n * Mode Of Operation - Output Feedback (OFB)\n */\n var ModeOfOperationOFB = function(key, iv) {\n if (!(this instanceof ModeOfOperationOFB)) {\n throw Error('AES must be instanitated with `new`');\n }\n\n this.description = \"Output Feedback\";\n this.name = \"ofb\";\n\n if (!iv) {\n iv = createArray(16);\n\n } else if (iv.length != 16) {\n throw new Error('invalid initialation vector size (must be 16 bytes)');\n }\n\n this._lastPrecipher = coerceArray(iv, true);\n this._lastPrecipherIndex = 16;\n\n this._aes = new AES(key);\n }\n\n ModeOfOperationOFB.prototype.encrypt = function(plaintext) {\n var encrypted = coerceArray(plaintext, true);\n\n for (var i = 0; i < encrypted.length; i++) {\n if (this._lastPrecipherIndex === 16) {\n this._lastPrecipher = this._aes.encrypt(this._lastPrecipher);\n this._lastPrecipherIndex = 0;\n }\n encrypted[i] ^= this._lastPrecipher[this._lastPrecipherIndex++];\n }\n\n return encrypted;\n }\n\n // Decryption is symetric\n ModeOfOperationOFB.prototype.decrypt = ModeOfOperationOFB.prototype.encrypt;\n\n\n /**\n * Counter object for CTR common mode of operation\n */\n var Counter = function(initialValue) {\n if (!(this instanceof Counter)) {\n throw Error('Counter must be instanitated with `new`');\n }\n\n // We allow 0, but anything false-ish uses the default 1\n if (initialValue !== 0 && !initialValue) { initialValue = 1; }\n\n if (typeof(initialValue) === 'number') {\n this._counter = createArray(16);\n this.setValue(initialValue);\n\n } else {\n this.setBytes(initialValue);\n }\n }\n\n Counter.prototype.setValue = function(value) {\n if (typeof(value) !== 'number' || parseInt(value) != value) {\n throw new Error('invalid counter value (must be an integer)');\n }\n\n for (var index = 15; index >= 0; --index) {\n this._counter[index] = value % 256;\n value = value >> 8;\n }\n }\n\n Counter.prototype.setBytes = function(bytes) {\n bytes = coerceArray(bytes, true);\n\n if (bytes.length != 16) {\n throw new Error('invalid counter bytes size (must be 16 bytes)');\n }\n\n this._counter = bytes;\n };\n\n Counter.prototype.increment = function() {\n for (var i = 15; i >= 0; i--) {\n if (this._counter[i] === 255) {\n this._counter[i] = 0;\n } else {\n this._counter[i]++;\n break;\n }\n }\n }\n\n\n /**\n * Mode Of Operation - Counter (CTR)\n */\n var ModeOfOperationCTR = function(key, counter) {\n if (!(this instanceof ModeOfOperationCTR)) {\n throw Error('AES must be instanitated with `new`');\n }\n\n this.description = \"Counter\";\n this.name = \"ctr\";\n\n if (!(counter instanceof Counter)) {\n counter = new Counter(counter)\n }\n\n this._counter = counter;\n\n this._remainingCounter = null;\n this._remainingCounterIndex = 16;\n\n this._aes = new AES(key);\n }\n\n ModeOfOperationCTR.prototype.encrypt = function(plaintext) {\n var encrypted = coerceArray(plaintext, true);\n\n for (var i = 0; i < encrypted.length; i++) {\n if (this._remainingCounterIndex === 16) {\n this._remainingCounter = this._aes.encrypt(this._counter._counter);\n this._remainingCounterIndex = 0;\n this._counter.increment();\n }\n encrypted[i] ^= this._remainingCounter[this._remainingCounterIndex++];\n }\n\n return encrypted;\n }\n\n // Decryption is symetric\n ModeOfOperationCTR.prototype.decrypt = ModeOfOperationCTR.prototype.encrypt;\n\n\n ///////////////////////\n // Padding\n\n // See:https://tools.ietf.org/html/rfc2315\n function pkcs7pad(data) {\n data = coerceArray(data, true);\n var padder = 16 - (data.length % 16);\n var result = createArray(data.length + padder);\n copyArray(data, result);\n for (var i = data.length; i < result.length; i++) {\n result[i] = padder;\n }\n return result;\n }\n\n function pkcs7strip(data) {\n data = coerceArray(data, true);\n if (data.length < 16) { throw new Error('PKCS#7 invalid length'); }\n\n var padder = data[data.length - 1];\n if (padder > 16) { throw new Error('PKCS#7 padding byte out of range'); }\n\n var length = data.length - padder;\n for (var i = 0; i < padder; i++) {\n if (data[length + i] !== padder) {\n throw new Error('PKCS#7 invalid padding byte');\n }\n }\n\n var result = createArray(length);\n copyArray(data, result, 0, 0, length);\n return result;\n }\n\n ///////////////////////\n // Exporting\n\n\n // The block cipher\n var aesjs = {\n AES: AES,\n Counter: Counter,\n\n ModeOfOperation: {\n ecb: ModeOfOperationECB,\n cbc: ModeOfOperationCBC,\n cfb: ModeOfOperationCFB,\n ofb: ModeOfOperationOFB,\n ctr: ModeOfOperationCTR\n },\n\n utils: {\n hex: convertHex,\n utf8: convertUtf8\n },\n\n padding: {\n pkcs7: {\n pad: pkcs7pad,\n strip: pkcs7strip\n }\n },\n\n _arrayTest: {\n coerceArray: coerceArray,\n createArray: createArray,\n copyArray: copyArray,\n }\n };\n\n\n // node.js\n if (typeof exports !== 'undefined') {\n module.exports = aesjs\n\n // RequireJS/AMD\n // http://www.requirejs.org/docs/api.html\n // https://github.com/amdjs/amdjs-api/wiki/AMD\n } else if (typeof(define) === 'function' && define.amd) {\n define(aesjs);\n\n // Web Browsers\n } else {\n\n // If there was an existing library at \"aesjs\" make sure it's still available\n if (root.aesjs) {\n aesjs._aesjs = root.aesjs;\n }\n\n root.aesjs = aesjs;\n }\n\n\n})(this);\n", "export const version = \"json-wallets/5.7.0\";\n", "\"use strict\";\n\nimport { arrayify, Bytes, BytesLike, hexlify } from \"@ethersproject/bytes\";\nimport { toUtf8Bytes, UnicodeNormalizationForm } from '@ethersproject/strings';\n\nexport function looseArrayify(hexString: string): Uint8Array {\n if (typeof(hexString) === 'string' && hexString.substring(0, 2) !== '0x') {\n hexString = '0x' + hexString;\n }\n return arrayify(hexString);\n}\n\nexport function zpad(value: String | number, length: number): String {\n value = String(value);\n while (value.length < length) { value = '0' + value; }\n return value;\n}\n\nexport function getPassword(password: Bytes | string): Uint8Array {\n if (typeof(password) === 'string') {\n return toUtf8Bytes(password, UnicodeNormalizationForm.NFKC);\n }\n return arrayify(password);\n}\n\nexport function searchPath(object: any, path: string): string {\n let currentChild = object;\n\n const comps = path.toLowerCase().split('/');\n for (let i = 0; i < comps.length; i++) {\n\n // Search for a child object with a case-insensitive matching key\n let matchingChild = null;\n for (const key in currentChild) {\n if (key.toLowerCase() === comps[i]) {\n matchingChild = currentChild[key];\n break;\n }\n }\n\n // Didn't find one. :'(\n if (matchingChild === null) {\n return null;\n }\n\n // Now check this child...\n currentChild = matchingChild;\n }\n\n return currentChild;\n}\n\n// See: https://www.ietf.org/rfc/rfc4122.txt (Section 4.4)\nexport function uuidV4(randomBytes: BytesLike): string {\n const bytes = arrayify(randomBytes);\n\n // Section: 4.1.3:\n // - time_hi_and_version[12:16] = 0b0100\n bytes[6] = (bytes[6] & 0x0f) | 0x40;\n\n // Section 4.4\n // - clock_seq_hi_and_reserved[6] = 0b0\n // - clock_seq_hi_and_reserved[7] = 0b1\n bytes[8] = (bytes[8] & 0x3f) | 0x80;\n\n const value = hexlify(bytes);\n\n return [\n value.substring(2, 10),\n value.substring(10, 14),\n value.substring(14, 18),\n value.substring(18, 22),\n value.substring(22, 34),\n ].join(\"-\");\n}\n\n", "\"use strict\";\n\nimport aes from \"aes-js\";\n\nimport { ExternallyOwnedAccount } from \"@ethersproject/abstract-signer\";\nimport { getAddress } from \"@ethersproject/address\";\nimport { arrayify, Bytes } from \"@ethersproject/bytes\";\nimport { keccak256 } from \"@ethersproject/keccak256\";\nimport { pbkdf2 } from \"@ethersproject/pbkdf2\";\nimport { toUtf8Bytes } from \"@ethersproject/strings\";\nimport { Description } from \"@ethersproject/properties\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\nimport { getPassword, looseArrayify, searchPath } from \"./utils\";\n\nexport interface _CrowdsaleAccount {\n address: string;\n privateKey: string;\n\n _isCrowdsaleAccount: boolean;\n}\n\nexport class CrowdsaleAccount extends Description<_CrowdsaleAccount> implements ExternallyOwnedAccount {\n readonly address: string;\n readonly privateKey: string;\n readonly mnemonic?: string;\n readonly path?: string;\n\n readonly _isCrowdsaleAccount: boolean;\n\n isCrowdsaleAccount(value: any): value is CrowdsaleAccount {\n return !!(value && value._isCrowdsaleAccount);\n }\n}\n\n// See: https://github.com/ethereum/pyethsaletool\nexport function decrypt(json: string, password: Bytes | string): ExternallyOwnedAccount {\n const data = JSON.parse(json);\n\n password = getPassword(password);\n\n // Ethereum Address\n const ethaddr = getAddress(searchPath(data, \"ethaddr\"));\n\n // Encrypted Seed\n const encseed = looseArrayify(searchPath(data, \"encseed\"));\n if (!encseed || (encseed.length % 16) !== 0) {\n logger.throwArgumentError(\"invalid encseed\", \"json\", json);\n }\n\n const key = arrayify(pbkdf2(password, password, 2000, 32, \"sha256\")).slice(0, 16);\n\n const iv = encseed.slice(0, 16);\n const encryptedSeed = encseed.slice(16);\n\n // Decrypt the seed\n const aesCbc = new aes.ModeOfOperation.cbc(key, iv);\n const seed = aes.padding.pkcs7.strip(arrayify(aesCbc.decrypt(encryptedSeed)));\n\n // This wallet format is weird... Convert the binary encoded hex to a string.\n let seedHex = \"\";\n for (let i = 0; i < seed.length; i++) {\n seedHex += String.fromCharCode(seed[i]);\n }\n\n const seedHexBytes = toUtf8Bytes(seedHex);\n\n const privateKey = keccak256(seedHexBytes);\n\n return new CrowdsaleAccount ({\n _isCrowdsaleAccount: true,\n address: ethaddr,\n privateKey: privateKey\n });\n}\n\n", "\"use strict\";\n\nimport { getAddress } from \"@ethersproject/address\";\n\n\nexport function isCrowdsaleWallet(json: string): boolean {\n let data: any = null;\n try {\n data = JSON.parse(json);\n } catch (error) { return false; }\n\n return (data.encseed && data.ethaddr);\n}\n\nexport function isKeystoreWallet(json: string): boolean {\n let data: any = null;\n try {\n data = JSON.parse(json);\n } catch (error) { return false; }\n\n if (!data.version || parseInt(data.version) !== data.version || parseInt(data.version) !== 3) {\n return false;\n }\n\n // @TODO: Put more checks to make sure it has kdf, iv and all that good stuff\n return true;\n}\n\n//export function isJsonWallet(json: string): boolean {\n// return (isSecretStorageWallet(json) || isCrowdsaleWallet(json));\n//}\n\nexport function getJsonWalletAddress(json: string): string {\n if (isCrowdsaleWallet(json)) {\n try {\n return getAddress(JSON.parse(json).ethaddr);\n } catch (error) { return null; }\n }\n\n if (isKeystoreWallet(json)) {\n try {\n return getAddress(JSON.parse(json).address);\n } catch (error) { return null; }\n }\n\n return null;\n}\n\n", "\"use strict\";\n\n(function(root) {\n const MAX_VALUE = 0x7fffffff;\n\n // The SHA256 and PBKDF2 implementation are from scrypt-async-js:\n // See: https://github.com/dchest/scrypt-async-js\n function SHA256(m) {\n const K = new Uint32Array([\n 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b,\n 0x59f111f1, 0x923f82a4, 0xab1c5ed5, 0xd807aa98, 0x12835b01,\n 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7,\n 0xc19bf174, 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc,\n 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da, 0x983e5152,\n 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147,\n 0x06ca6351, 0x14292967, 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc,\n 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,\n 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819,\n 0xd6990624, 0xf40e3585, 0x106aa070, 0x19a4c116, 0x1e376c08,\n 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f,\n 0x682e6ff3, 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208,\n 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2\n ]);\n\n let h0 = 0x6a09e667, h1 = 0xbb67ae85, h2 = 0x3c6ef372, h3 = 0xa54ff53a;\n let h4 = 0x510e527f, h5 = 0x9b05688c, h6 = 0x1f83d9ab, h7 = 0x5be0cd19;\n const w = new Uint32Array(64);\n\n function blocks(p) {\n let off = 0, len = p.length;\n while (len >= 64) {\n let a = h0, b = h1, c = h2, d = h3, e = h4, f = h5, g = h6, h = h7, u, i, j, t1, t2;\n\n for (i = 0; i < 16; i++) {\n j = off + i*4;\n w[i] = ((p[j] & 0xff)<<24) | ((p[j+1] & 0xff)<<16) |\n ((p[j+2] & 0xff)<<8) | (p[j+3] & 0xff);\n }\n\n for (i = 16; i < 64; i++) {\n u = w[i-2];\n t1 = ((u>>>17) | (u<<(32-17))) ^ ((u>>>19) | (u<<(32-19))) ^ (u>>>10);\n\n u = w[i-15];\n t2 = ((u>>>7) | (u<<(32-7))) ^ ((u>>>18) | (u<<(32-18))) ^ (u>>>3);\n\n w[i] = (((t1 + w[i-7]) | 0) + ((t2 + w[i-16]) | 0)) | 0;\n }\n\n for (i = 0; i < 64; i++) {\n t1 = ((((((e>>>6) | (e<<(32-6))) ^ ((e>>>11) | (e<<(32-11))) ^\n ((e>>>25) | (e<<(32-25)))) + ((e & f) ^ (~e & g))) | 0) +\n ((h + ((K[i] + w[i]) | 0)) | 0)) | 0;\n\n t2 = ((((a>>>2) | (a<<(32-2))) ^ ((a>>>13) | (a<<(32-13))) ^\n ((a>>>22) | (a<<(32-22)))) + ((a & b) ^ (a & c) ^ (b & c))) | 0;\n\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\n h0 = (h0 + a) | 0;\n h1 = (h1 + b) | 0;\n h2 = (h2 + c) | 0;\n h3 = (h3 + d) | 0;\n h4 = (h4 + e) | 0;\n h5 = (h5 + f) | 0;\n h6 = (h6 + g) | 0;\n h7 = (h7 + h) | 0;\n\n off += 64;\n len -= 64;\n }\n }\n\n blocks(m);\n\n let i, bytesLeft = m.length % 64,\n bitLenHi = (m.length / 0x20000000) | 0,\n bitLenLo = m.length << 3,\n numZeros = (bytesLeft < 56) ? 56 : 120,\n p = m.slice(m.length - bytesLeft, m.length);\n\n p.push(0x80);\n for (i = bytesLeft + 1; i < numZeros; i++) { p.push(0); }\n p.push((bitLenHi >>> 24) & 0xff);\n p.push((bitLenHi >>> 16) & 0xff);\n p.push((bitLenHi >>> 8) & 0xff);\n p.push((bitLenHi >>> 0) & 0xff);\n p.push((bitLenLo >>> 24) & 0xff);\n p.push((bitLenLo >>> 16) & 0xff);\n p.push((bitLenLo >>> 8) & 0xff);\n p.push((bitLenLo >>> 0) & 0xff);\n\n blocks(p);\n\n return [\n (h0 >>> 24) & 0xff, (h0 >>> 16) & 0xff, (h0 >>> 8) & 0xff, (h0 >>> 0) & 0xff,\n (h1 >>> 24) & 0xff, (h1 >>> 16) & 0xff, (h1 >>> 8) & 0xff, (h1 >>> 0) & 0xff,\n (h2 >>> 24) & 0xff, (h2 >>> 16) & 0xff, (h2 >>> 8) & 0xff, (h2 >>> 0) & 0xff,\n (h3 >>> 24) & 0xff, (h3 >>> 16) & 0xff, (h3 >>> 8) & 0xff, (h3 >>> 0) & 0xff,\n (h4 >>> 24) & 0xff, (h4 >>> 16) & 0xff, (h4 >>> 8) & 0xff, (h4 >>> 0) & 0xff,\n (h5 >>> 24) & 0xff, (h5 >>> 16) & 0xff, (h5 >>> 8) & 0xff, (h5 >>> 0) & 0xff,\n (h6 >>> 24) & 0xff, (h6 >>> 16) & 0xff, (h6 >>> 8) & 0xff, (h6 >>> 0) & 0xff,\n (h7 >>> 24) & 0xff, (h7 >>> 16) & 0xff, (h7 >>> 8) & 0xff, (h7 >>> 0) & 0xff\n ];\n }\n\n function PBKDF2_HMAC_SHA256_OneIter(password, salt, dkLen) {\n // compress password if it's longer than hash block length\n password = (password.length <= 64) ? password : SHA256(password);\n\n const innerLen = 64 + salt.length + 4;\n const inner = new Array(innerLen);\n const outerKey = new Array(64);\n\n let i;\n let dk = [];\n\n // inner = (password ^ ipad) || salt || counter\n for (i = 0; i < 64; i++) { inner[i] = 0x36; }\n for (i = 0; i < password.length; i++) { inner[i] ^= password[i]; }\n for (i = 0; i < salt.length; i++) { inner[64 + i] = salt[i]; }\n for (i = innerLen - 4; i < innerLen; i++) { inner[i] = 0; }\n\n // outerKey = password ^ opad\n for (i = 0; i < 64; i++) outerKey[i] = 0x5c;\n for (i = 0; i < password.length; i++) outerKey[i] ^= password[i];\n\n // increments counter inside inner\n function incrementCounter() {\n for (let i = innerLen - 1; i >= innerLen - 4; i--) {\n inner[i]++;\n if (inner[i] <= 0xff) return;\n inner[i] = 0;\n }\n }\n\n // output blocks = SHA256(outerKey || SHA256(inner)) ...\n while (dkLen >= 32) {\n incrementCounter();\n dk = dk.concat(SHA256(outerKey.concat(SHA256(inner))));\n dkLen -= 32;\n }\n if (dkLen > 0) {\n incrementCounter();\n dk = dk.concat(SHA256(outerKey.concat(SHA256(inner))).slice(0, dkLen));\n }\n\n return dk;\n }\n\n // The following is an adaptation of scryptsy\n // See: https://www.npmjs.com/package/scryptsy\n function blockmix_salsa8(BY, Yi, r, x, _X) {\n let i;\n\n arraycopy(BY, (2 * r - 1) * 16, _X, 0, 16);\n for (i = 0; i < 2 * r; i++) {\n blockxor(BY, i * 16, _X, 16);\n salsa20_8(_X, x);\n arraycopy(_X, 0, BY, Yi + (i * 16), 16);\n }\n\n for (i = 0; i < r; i++) {\n arraycopy(BY, Yi + (i * 2) * 16, BY, (i * 16), 16);\n }\n\n for (i = 0; i < r; i++) {\n arraycopy(BY, Yi + (i * 2 + 1) * 16, BY, (i + r) * 16, 16);\n }\n }\n\n function R(a, b) {\n return (a << b) | (a >>> (32 - b));\n }\n\n function salsa20_8(B, x) {\n arraycopy(B, 0, x, 0, 16);\n\n for (let i = 8; i > 0; i -= 2) {\n x[ 4] ^= R(x[ 0] + x[12], 7);\n x[ 8] ^= R(x[ 4] + x[ 0], 9);\n x[12] ^= R(x[ 8] + x[ 4], 13);\n x[ 0] ^= R(x[12] + x[ 8], 18);\n x[ 9] ^= R(x[ 5] + x[ 1], 7);\n x[13] ^= R(x[ 9] + x[ 5], 9);\n x[ 1] ^= R(x[13] + x[ 9], 13);\n x[ 5] ^= R(x[ 1] + x[13], 18);\n x[14] ^= R(x[10] + x[ 6], 7);\n x[ 2] ^= R(x[14] + x[10], 9);\n x[ 6] ^= R(x[ 2] + x[14], 13);\n x[10] ^= R(x[ 6] + x[ 2], 18);\n x[ 3] ^= R(x[15] + x[11], 7);\n x[ 7] ^= R(x[ 3] + x[15], 9);\n x[11] ^= R(x[ 7] + x[ 3], 13);\n x[15] ^= R(x[11] + x[ 7], 18);\n x[ 1] ^= R(x[ 0] + x[ 3], 7);\n x[ 2] ^= R(x[ 1] + x[ 0], 9);\n x[ 3] ^= R(x[ 2] + x[ 1], 13);\n x[ 0] ^= R(x[ 3] + x[ 2], 18);\n x[ 6] ^= R(x[ 5] + x[ 4], 7);\n x[ 7] ^= R(x[ 6] + x[ 5], 9);\n x[ 4] ^= R(x[ 7] + x[ 6], 13);\n x[ 5] ^= R(x[ 4] + x[ 7], 18);\n x[11] ^= R(x[10] + x[ 9], 7);\n x[ 8] ^= R(x[11] + x[10], 9);\n x[ 9] ^= R(x[ 8] + x[11], 13);\n x[10] ^= R(x[ 9] + x[ 8], 18);\n x[12] ^= R(x[15] + x[14], 7);\n x[13] ^= R(x[12] + x[15], 9);\n x[14] ^= R(x[13] + x[12], 13);\n x[15] ^= R(x[14] + x[13], 18);\n }\n\n for (let i = 0; i < 16; ++i) {\n B[i] += x[i];\n }\n }\n\n // naive approach... going back to loop unrolling may yield additional performance\n function blockxor(S, Si, D, len) {\n for (let i = 0; i < len; i++) {\n D[i] ^= S[Si + i]\n }\n }\n\n function arraycopy(src, srcPos, dest, destPos, length) {\n while (length--) {\n dest[destPos++] = src[srcPos++];\n }\n }\n\n function checkBufferish(o) {\n if (!o || typeof(o.length) !== 'number') { return false; }\n\n for (let i = 0; i < o.length; i++) {\n const v = o[i];\n if (typeof(v) !== 'number' || v % 1 || v < 0 || v >= 256) {\n return false;\n }\n }\n\n return true;\n }\n\n function ensureInteger(value, name) {\n if (typeof(value) !== \"number\" || (value % 1)) { throw new Error('invalid ' + name); }\n return value;\n }\n\n // N = Cpu cost, r = Memory cost, p = parallelization cost\n // callback(error, progress, key)\n function _scrypt(password, salt, N, r, p, dkLen, callback) {\n\n N = ensureInteger(N, 'N');\n r = ensureInteger(r, 'r');\n p = ensureInteger(p, 'p');\n\n dkLen = ensureInteger(dkLen, 'dkLen');\n\n if (N === 0 || (N & (N - 1)) !== 0) { throw new Error('N must be power of 2'); }\n\n if (N > MAX_VALUE / 128 / r) { throw new Error('N too large'); }\n if (r > MAX_VALUE / 128 / p) { throw new Error('r too large'); }\n\n if (!checkBufferish(password)) {\n throw new Error('password must be an array or buffer');\n }\n password = Array.prototype.slice.call(password);\n\n if (!checkBufferish(salt)) {\n throw new Error('salt must be an array or buffer');\n }\n salt = Array.prototype.slice.call(salt);\n\n let b = PBKDF2_HMAC_SHA256_OneIter(password, salt, p * 128 * r);\n const B = new Uint32Array(p * 32 * r)\n for (let i = 0; i < B.length; i++) {\n const j = i * 4;\n B[i] = ((b[j + 3] & 0xff) << 24) |\n ((b[j + 2] & 0xff) << 16) |\n ((b[j + 1] & 0xff) << 8) |\n ((b[j + 0] & 0xff) << 0);\n }\n\n const XY = new Uint32Array(64 * r);\n const V = new Uint32Array(32 * r * N);\n\n const Yi = 32 * r;\n\n // scratch space\n const x = new Uint32Array(16); // salsa20_8\n const _X = new Uint32Array(16); // blockmix_salsa8\n\n const totalOps = p * N * 2;\n let currentOp = 0;\n let lastPercent10 = null;\n\n // Set this to true to abandon the scrypt on the next step\n let stop = false;\n\n // State information\n let state = 0;\n let i0 = 0, i1;\n let Bi;\n\n // How many blockmix_salsa8 can we do per step?\n const limit = callback ? parseInt(1000 / r): 0xffffffff;\n\n // Trick from scrypt-async; if there is a setImmediate shim in place, use it\n const nextTick = (typeof(setImmediate) !== 'undefined') ? setImmediate : setTimeout;\n\n // This is really all I changed; making scryptsy a state machine so we occasionally\n // stop and give other evnts on the evnt loop a chance to run. ~RicMoo\n const incrementalSMix = function() {\n if (stop) {\n return callback(new Error('cancelled'), currentOp / totalOps);\n }\n\n let steps;\n\n switch (state) {\n case 0:\n // for (var i = 0; i < p; i++)...\n Bi = i0 * 32 * r;\n\n arraycopy(B, Bi, XY, 0, Yi); // ROMix - 1\n\n state = 1; // Move to ROMix 2\n i1 = 0;\n\n // Fall through\n\n case 1:\n\n // Run up to 1000 steps of the first inner smix loop\n steps = N - i1;\n if (steps > limit) { steps = limit; }\n for (let i = 0; i < steps; i++) { // ROMix - 2\n arraycopy(XY, 0, V, (i1 + i) * Yi, Yi) // ROMix - 3\n blockmix_salsa8(XY, Yi, r, x, _X); // ROMix - 4\n }\n\n // for (var i = 0; i < N; i++)\n i1 += steps;\n currentOp += steps;\n\n if (callback) {\n // Call the callback with the progress (optionally stopping us)\n const percent10 = parseInt(1000 * currentOp / totalOps);\n if (percent10 !== lastPercent10) {\n stop = callback(null, currentOp / totalOps);\n if (stop) { break; }\n lastPercent10 = percent10;\n }\n }\n\n if (i1 < N) { break; }\n\n i1 = 0; // Move to ROMix 6\n state = 2;\n\n // Fall through\n\n case 2:\n\n // Run up to 1000 steps of the second inner smix loop\n steps = N - i1;\n if (steps > limit) { steps = limit; }\n for (let i = 0; i < steps; i++) { // ROMix - 6\n const offset = (2 * r - 1) * 16; // ROMix - 7\n const j = XY[offset] & (N - 1);\n blockxor(V, j * Yi, XY, Yi); // ROMix - 8 (inner)\n blockmix_salsa8(XY, Yi, r, x, _X); // ROMix - 9 (outer)\n }\n\n // for (var i = 0; i < N; i++)...\n i1 += steps;\n currentOp += steps;\n\n // Call the callback with the progress (optionally stopping us)\n if (callback) {\n const percent10 = parseInt(1000 * currentOp / totalOps);\n if (percent10 !== lastPercent10) {\n stop = callback(null, currentOp / totalOps);\n if (stop) { break; }\n lastPercent10 = percent10;\n }\n }\n\n if (i1 < N) { break; }\n\n arraycopy(XY, 0, B, Bi, Yi); // ROMix - 10\n\n // for (var i = 0; i < p; i++)...\n i0++;\n if (i0 < p) {\n state = 0;\n break;\n }\n\n b = [];\n for (let i = 0; i < B.length; i++) {\n b.push((B[i] >> 0) & 0xff);\n b.push((B[i] >> 8) & 0xff);\n b.push((B[i] >> 16) & 0xff);\n b.push((B[i] >> 24) & 0xff);\n }\n\n const derivedKey = PBKDF2_HMAC_SHA256_OneIter(password, b, dkLen);\n\n // Send the result to the callback\n if (callback) { callback(null, 1.0, derivedKey); }\n\n // Done; don't break (which would reschedule)\n return derivedKey;\n }\n\n // Schedule the next steps\n if (callback) { nextTick(incrementalSMix); }\n }\n\n // Run the smix state machine until completion\n if (!callback) {\n while (true) {\n const derivedKey = incrementalSMix();\n if (derivedKey != undefined) { return derivedKey; }\n }\n }\n\n // Bootstrap the async incremental smix\n incrementalSMix();\n }\n\n const lib = {\n scrypt: function(password, salt, N, r, p, dkLen, progressCallback) {\n return new Promise(function(resolve, reject) {\n let lastProgress = 0;\n if (progressCallback) { progressCallback(0); }\n _scrypt(password, salt, N, r, p, dkLen, function(error, progress, key) {\n if (error) {\n reject(error);\n } else if (key) {\n if (progressCallback && lastProgress !== 1) {\n progressCallback(1);\n }\n resolve(new Uint8Array(key));\n } else if (progressCallback && progress !== lastProgress) {\n lastProgress = progress;\n return progressCallback(progress);\n }\n });\n });\n },\n syncScrypt: function(password, salt, N, r, p, dkLen) {\n return new Uint8Array(_scrypt(password, salt, N, r, p, dkLen));\n }\n };\n\n // node.js\n if (typeof(exports) !== 'undefined') {\n module.exports = lib;\n\n // RequireJS/AMD\n // http://www.requirejs.org/docs/api.html\n // https://github.com/amdjs/amdjs-api/wiki/AMD\n } else if (typeof(define) === 'function' && define.amd) {\n define(lib);\n\n // Web Browsers\n } else if (root) {\n\n // If there was an existing library \"scrypt\", make sure it is still available\n if (root.scrypt) {\n root._scrypt = root.scrypt;\n }\n\n root.scrypt = lib;\n }\n\n})(this);\n", "\"use strict\";\n\nimport aes from \"aes-js\";\nimport scrypt from \"scrypt-js\";\n\nimport { ExternallyOwnedAccount } from \"@ethersproject/abstract-signer\";\nimport { getAddress } from \"@ethersproject/address\";\nimport { arrayify, Bytes, BytesLike, concat, hexlify } from \"@ethersproject/bytes\";\nimport { defaultPath, entropyToMnemonic, HDNode, Mnemonic, mnemonicToEntropy } from \"@ethersproject/hdnode\";\nimport { keccak256 } from \"@ethersproject/keccak256\";\nimport { pbkdf2 as _pbkdf2 } from \"@ethersproject/pbkdf2\";\nimport { randomBytes } from \"@ethersproject/random\";\nimport { Description } from \"@ethersproject/properties\";\nimport { computeAddress } from \"@ethersproject/transactions\";\n\nimport { getPassword, looseArrayify, searchPath, uuidV4, zpad } from \"./utils\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\n// Exported Types\n\nfunction hasMnemonic(value: any): value is { mnemonic: Mnemonic } {\n return (value != null && value.mnemonic && value.mnemonic.phrase);\n}\n\nexport interface _KeystoreAccount {\n address: string;\n privateKey: string;\n mnemonic?: Mnemonic;\n\n _isKeystoreAccount: boolean;\n}\n\nexport class KeystoreAccount extends Description<_KeystoreAccount> implements ExternallyOwnedAccount {\n readonly address: string;\n readonly privateKey: string;\n readonly mnemonic?: Mnemonic;\n\n readonly _isKeystoreAccount: boolean;\n\n isKeystoreAccount(value: any): value is KeystoreAccount {\n return !!(value && value._isKeystoreAccount);\n }\n}\n\nexport type ProgressCallback = (percent: number) => void;\n\nexport type EncryptOptions = {\n iv?: BytesLike;\n entropy?: BytesLike;\n client?: string;\n salt?: BytesLike;\n uuid?: string;\n scrypt?: {\n N?: number;\n r?: number;\n p?: number;\n }\n}\n\nfunction _decrypt(data: any, key: Uint8Array, ciphertext: Uint8Array): Uint8Array {\n const cipher = searchPath(data, \"crypto/cipher\");\n if (cipher === \"aes-128-ctr\") {\n const iv = looseArrayify(searchPath(data, \"crypto/cipherparams/iv\"))\n const counter = new aes.Counter(iv);\n\n const aesCtr = new aes.ModeOfOperation.ctr(key, counter);\n\n return arrayify(aesCtr.decrypt(ciphertext));\n }\n\n return null;\n}\n\nfunction _getAccount(data: any, key: Uint8Array): KeystoreAccount {\n const ciphertext = looseArrayify(searchPath(data, \"crypto/ciphertext\"));\n\n const computedMAC = hexlify(keccak256(concat([ key.slice(16, 32), ciphertext ]))).substring(2);\n if (computedMAC !== searchPath(data, \"crypto/mac\").toLowerCase()) {\n throw new Error(\"invalid password\");\n }\n\n const privateKey = _decrypt(data, key.slice(0, 16), ciphertext);\n\n if (!privateKey) {\n logger.throwError(\"unsupported cipher\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"decrypt\"\n });\n }\n\n const mnemonicKey = key.slice(32, 64);\n\n const address = computeAddress(privateKey);\n if (data.address) {\n let check = data.address.toLowerCase();\n if (check.substring(0, 2) !== \"0x\") { check = \"0x\" + check; }\n\n if (getAddress(check) !== address) {\n throw new Error(\"address mismatch\");\n }\n }\n\n const account: _KeystoreAccount = {\n _isKeystoreAccount: true,\n address: address,\n privateKey: hexlify(privateKey)\n };\n\n // Version 0.1 x-ethers metadata must contain an encrypted mnemonic phrase\n if (searchPath(data, \"x-ethers/version\") === \"0.1\") {\n const mnemonicCiphertext = looseArrayify(searchPath(data, \"x-ethers/mnemonicCiphertext\"));\n const mnemonicIv = looseArrayify(searchPath(data, \"x-ethers/mnemonicCounter\"));\n\n const mnemonicCounter = new aes.Counter(mnemonicIv);\n const mnemonicAesCtr = new aes.ModeOfOperation.ctr(mnemonicKey, mnemonicCounter);\n\n const path = searchPath(data, \"x-ethers/path\") || defaultPath;\n const locale = searchPath(data, \"x-ethers/locale\") || \"en\";\n\n const entropy = arrayify(mnemonicAesCtr.decrypt(mnemonicCiphertext));\n\n try {\n const mnemonic = entropyToMnemonic(entropy, locale);\n const node = HDNode.fromMnemonic(mnemonic, null, locale).derivePath(path);\n\n if (node.privateKey != account.privateKey) {\n throw new Error(\"mnemonic mismatch\");\n }\n\n account.mnemonic = node.mnemonic;\n\n } catch (error) {\n // If we don't have the locale wordlist installed to\n // read this mnemonic, just bail and don't set the\n // mnemonic\n if (error.code !== Logger.errors.INVALID_ARGUMENT || error.argument !== \"wordlist\") {\n throw error;\n }\n }\n }\n\n return new KeystoreAccount(account);\n}\n\ntype ScryptFunc = (pw: Uint8Array, salt: Uint8Array, n: number, r: number, p: number, dkLen: number, callback?: ProgressCallback) => T;\ntype Pbkdf2Func = (pw: Uint8Array, salt: Uint8Array, c: number, dkLen: number, prfFunc: string) => T;\n\nfunction pbkdf2Sync(passwordBytes: Uint8Array, salt: Uint8Array, count: number, dkLen: number, prfFunc: string): Uint8Array {\n return arrayify(_pbkdf2(passwordBytes, salt, count, dkLen, prfFunc));\n}\n\nfunction pbkdf2(passwordBytes: Uint8Array, salt: Uint8Array, count: number, dkLen: number, prfFunc: string): Promise {\n return Promise.resolve(pbkdf2Sync(passwordBytes, salt, count, dkLen, prfFunc));\n}\n\nfunction _computeKdfKey(data: any, password: Bytes | string, pbkdf2Func: Pbkdf2Func, scryptFunc: ScryptFunc, progressCallback?: ProgressCallback): T {\n const passwordBytes = getPassword(password);\n\n const kdf = searchPath(data, \"crypto/kdf\");\n\n if (kdf && typeof(kdf) === \"string\") {\n const throwError = function(name: string, value: any): never {\n return logger.throwArgumentError(\"invalid key-derivation function parameters\", name, value);\n }\n\n if (kdf.toLowerCase() === \"scrypt\") {\n const salt = looseArrayify(searchPath(data, \"crypto/kdfparams/salt\"));\n const N = parseInt(searchPath(data, \"crypto/kdfparams/n\"));\n const r = parseInt(searchPath(data, \"crypto/kdfparams/r\"));\n const p = parseInt(searchPath(data, \"crypto/kdfparams/p\"));\n\n // Check for all required parameters\n if (!N || !r || !p) { throwError(\"kdf\", kdf); }\n\n // Make sure N is a power of 2\n if ((N & (N - 1)) !== 0) { throwError(\"N\", N); }\n\n const dkLen = parseInt(searchPath(data, \"crypto/kdfparams/dklen\"));\n if (dkLen !== 32) { throwError(\"dklen\", dkLen); }\n\n return scryptFunc(passwordBytes, salt, N, r, p, 64, progressCallback);\n\n } else if (kdf.toLowerCase() === \"pbkdf2\") {\n\n const salt = looseArrayify(searchPath(data, \"crypto/kdfparams/salt\"));\n\n let prfFunc: string = null;\n const prf = searchPath(data, \"crypto/kdfparams/prf\");\n if (prf === \"hmac-sha256\") {\n prfFunc = \"sha256\";\n } else if (prf === \"hmac-sha512\") {\n prfFunc = \"sha512\";\n } else {\n throwError(\"prf\", prf);\n }\n\n const count = parseInt(searchPath(data, \"crypto/kdfparams/c\"));\n\n const dkLen = parseInt(searchPath(data, \"crypto/kdfparams/dklen\"));\n if (dkLen !== 32) { throwError(\"dklen\", dkLen); }\n\n return pbkdf2Func(passwordBytes, salt, count, dkLen, prfFunc);\n }\n }\n\n return logger.throwArgumentError(\"unsupported key-derivation function\", \"kdf\", kdf);\n}\n\n\nexport function decryptSync(json: string, password: Bytes | string): KeystoreAccount {\n const data = JSON.parse(json);\n\n const key = _computeKdfKey(data, password, pbkdf2Sync, scrypt.syncScrypt);\n return _getAccount(data, key);\n}\n\nexport async function decrypt(json: string, password: Bytes | string, progressCallback?: ProgressCallback): Promise {\n const data = JSON.parse(json);\n\n const key = await _computeKdfKey(data, password, pbkdf2, scrypt.scrypt, progressCallback);\n return _getAccount(data, key);\n}\n\n\nexport function encrypt(account: ExternallyOwnedAccount, password: Bytes | string, options?: EncryptOptions, progressCallback?: ProgressCallback): Promise {\n\n try {\n // Check the address matches the private key\n if (getAddress(account.address) !== computeAddress(account.privateKey)) {\n throw new Error(\"address/privateKey mismatch\");\n }\n\n // Check the mnemonic (if any) matches the private key\n if (hasMnemonic(account)) {\n const mnemonic = account.mnemonic;\n const node = HDNode.fromMnemonic(mnemonic.phrase, null, mnemonic.locale).derivePath(mnemonic.path || defaultPath);\n\n if (node.privateKey != account.privateKey) {\n throw new Error(\"mnemonic mismatch\");\n }\n }\n\n } catch (e) {\n return Promise.reject(e);\n }\n\n // The options are optional, so adjust the call as needed\n if (typeof(options) === \"function\" && !progressCallback) {\n progressCallback = options;\n options = {};\n }\n if (!options) { options = {}; }\n\n const privateKey: Uint8Array = arrayify(account.privateKey);\n const passwordBytes = getPassword(password);\n\n let entropy: Uint8Array = null\n let path: string = null;\n let locale: string = null;\n if (hasMnemonic(account)) {\n const srcMnemonic = account.mnemonic;\n entropy = arrayify(mnemonicToEntropy(srcMnemonic.phrase, srcMnemonic.locale || \"en\"));\n path = srcMnemonic.path || defaultPath;\n locale = srcMnemonic.locale || \"en\";\n }\n\n let client = options.client;\n if (!client) { client = \"ethers.js\"; }\n\n // Check/generate the salt\n let salt: Uint8Array = null;\n if (options.salt) {\n salt = arrayify(options.salt);\n } else {\n salt = randomBytes(32);;\n }\n\n // Override initialization vector\n let iv: Uint8Array = null;\n if (options.iv) {\n iv = arrayify(options.iv);\n if (iv.length !== 16) { throw new Error(\"invalid iv\"); }\n } else {\n iv = randomBytes(16);\n }\n\n // Override the uuid\n let uuidRandom: Uint8Array = null;\n if (options.uuid) {\n uuidRandom = arrayify(options.uuid);\n if (uuidRandom.length !== 16) { throw new Error(\"invalid uuid\"); }\n } else {\n uuidRandom = randomBytes(16);\n }\n\n // Override the scrypt password-based key derivation function parameters\n let N = (1 << 17), r = 8, p = 1;\n if (options.scrypt) {\n if (options.scrypt.N) { N = options.scrypt.N; }\n if (options.scrypt.r) { r = options.scrypt.r; }\n if (options.scrypt.p) { p = options.scrypt.p; }\n }\n\n // We take 64 bytes:\n // - 32 bytes As normal for the Web3 secret storage (derivedKey, macPrefix)\n // - 32 bytes AES key to encrypt mnemonic with (required here to be Ethers Wallet)\n return scrypt.scrypt(passwordBytes, salt, N, r, p, 64, progressCallback).then((key) => {\n key = arrayify(key);\n\n // This will be used to encrypt the wallet (as per Web3 secret storage)\n const derivedKey = key.slice(0, 16);\n const macPrefix = key.slice(16, 32);\n\n // This will be used to encrypt the mnemonic phrase (if any)\n const mnemonicKey = key.slice(32, 64);\n\n // Encrypt the private key\n const counter = new aes.Counter(iv);\n const aesCtr = new aes.ModeOfOperation.ctr(derivedKey, counter);\n const ciphertext = arrayify(aesCtr.encrypt(privateKey));\n\n // Compute the message authentication code, used to check the password\n const mac = keccak256(concat([macPrefix, ciphertext]))\n\n // See: https://github.com/ethereum/wiki/wiki/Web3-Secret-Storage-Definition\n const data: { [key: string]: any } = {\n address: account.address.substring(2).toLowerCase(),\n id: uuidV4(uuidRandom),\n version: 3,\n crypto: {\n cipher: \"aes-128-ctr\",\n cipherparams: {\n iv: hexlify(iv).substring(2),\n },\n ciphertext: hexlify(ciphertext).substring(2),\n kdf: \"scrypt\",\n kdfparams: {\n salt: hexlify(salt).substring(2),\n n: N,\n dklen: 32,\n p: p,\n r: r\n },\n mac: mac.substring(2)\n }\n };\n\n // If we have a mnemonic, encrypt it into the JSON wallet\n if (entropy) {\n const mnemonicIv = randomBytes(16);\n const mnemonicCounter = new aes.Counter(mnemonicIv);\n const mnemonicAesCtr = new aes.ModeOfOperation.ctr(mnemonicKey, mnemonicCounter);\n const mnemonicCiphertext = arrayify(mnemonicAesCtr.encrypt(entropy));\n const now = new Date();\n const timestamp = (now.getUTCFullYear() + \"-\" +\n zpad(now.getUTCMonth() + 1, 2) + \"-\" +\n zpad(now.getUTCDate(), 2) + \"T\" +\n zpad(now.getUTCHours(), 2) + \"-\" +\n zpad(now.getUTCMinutes(), 2) + \"-\" +\n zpad(now.getUTCSeconds(), 2) + \".0Z\"\n );\n data[\"x-ethers\"] = {\n client: client,\n gethFilename: (\"UTC--\" + timestamp + \"--\" + data.address),\n mnemonicCounter: hexlify(mnemonicIv).substring(2),\n mnemonicCiphertext: hexlify(mnemonicCiphertext).substring(2),\n path: path,\n locale: locale,\n version: \"0.1\"\n };\n }\n\n return JSON.stringify(data);\n });\n}\n", "\"use strict\";\n\nimport { Bytes } from \"@ethersproject/bytes\";\nimport { ExternallyOwnedAccount } from \"@ethersproject/abstract-signer\";\n\nimport { decrypt as decryptCrowdsale } from \"./crowdsale\";\nimport { getJsonWalletAddress, isCrowdsaleWallet, isKeystoreWallet } from \"./inspect\";\nimport { decrypt as decryptKeystore, decryptSync as decryptKeystoreSync, encrypt as encryptKeystore, EncryptOptions, ProgressCallback } from \"./keystore\";\n\nfunction decryptJsonWallet(json: string, password: Bytes | string, progressCallback?: ProgressCallback): Promise {\n if (isCrowdsaleWallet(json)) {\n if (progressCallback) { progressCallback(0); }\n const account = decryptCrowdsale(json, password)\n if (progressCallback) { progressCallback(1); }\n return Promise.resolve(account);\n }\n\n if (isKeystoreWallet(json)) {\n return decryptKeystore(json, password, progressCallback);\n }\n\n return Promise.reject(new Error(\"invalid JSON wallet\"));\n}\n\nfunction decryptJsonWalletSync(json: string, password: Bytes | string): ExternallyOwnedAccount {\n if (isCrowdsaleWallet(json)) {\n return decryptCrowdsale(json, password)\n }\n\n if (isKeystoreWallet(json)) {\n return decryptKeystoreSync(json, password);\n }\n\n throw new Error(\"invalid JSON wallet\");\n}\n\nexport {\n decryptCrowdsale,\n\n decryptKeystore,\n decryptKeystoreSync,\n encryptKeystore,\n\n isCrowdsaleWallet,\n isKeystoreWallet,\n getJsonWalletAddress,\n\n decryptJsonWallet,\n decryptJsonWalletSync,\n\n ProgressCallback,\n EncryptOptions,\n};\n", "export const version = \"wallet/5.7.0\";\n", "\"use strict\";\n\nimport { getAddress } from \"@ethersproject/address\";\nimport { Provider, TransactionRequest } from \"@ethersproject/abstract-provider\";\nimport { ExternallyOwnedAccount, Signer, TypedDataDomain, TypedDataField, TypedDataSigner } from \"@ethersproject/abstract-signer\";\nimport { arrayify, Bytes, BytesLike, concat, hexDataSlice, isHexString, joinSignature, SignatureLike } from \"@ethersproject/bytes\";\nimport { hashMessage, _TypedDataEncoder } from \"@ethersproject/hash\";\nimport { defaultPath, HDNode, entropyToMnemonic, Mnemonic } from \"@ethersproject/hdnode\";\nimport { keccak256 } from \"@ethersproject/keccak256\";\nimport { defineReadOnly, resolveProperties } from \"@ethersproject/properties\";\nimport { randomBytes } from \"@ethersproject/random\";\nimport { SigningKey } from \"@ethersproject/signing-key\";\nimport { decryptJsonWallet, decryptJsonWalletSync, encryptKeystore, ProgressCallback } from \"@ethersproject/json-wallets\";\nimport { computeAddress, recoverAddress, serialize, UnsignedTransaction } from \"@ethersproject/transactions\";\nimport { Wordlist } from \"@ethersproject/wordlists\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\nfunction isAccount(value: any): value is ExternallyOwnedAccount {\n return (value != null && isHexString(value.privateKey, 32) && value.address != null);\n}\n\nfunction hasMnemonic(value: any): value is { mnemonic: Mnemonic } {\n const mnemonic = value.mnemonic;\n return (mnemonic && mnemonic.phrase);\n}\n\nexport class Wallet extends Signer implements ExternallyOwnedAccount, TypedDataSigner {\n\n readonly address: string;\n readonly provider: Provider;\n\n // Wrapping the _signingKey and _mnemonic in a getter function prevents\n // leaking the private key in console.log; still, be careful! :)\n readonly _signingKey: () => SigningKey;\n readonly _mnemonic: () => Mnemonic;\n\n constructor(privateKey: BytesLike | ExternallyOwnedAccount | SigningKey, provider?: Provider) {\n super();\n\n if (isAccount(privateKey)) {\n const signingKey = new SigningKey(privateKey.privateKey);\n defineReadOnly(this, \"_signingKey\", () => signingKey);\n defineReadOnly(this, \"address\", computeAddress(this.publicKey));\n\n if (this.address !== getAddress(privateKey.address)) {\n logger.throwArgumentError(\"privateKey/address mismatch\", \"privateKey\", \"[REDACTED]\");\n }\n\n if (hasMnemonic(privateKey)) {\n const srcMnemonic = privateKey.mnemonic;\n defineReadOnly(this, \"_mnemonic\", () => (\n {\n phrase: srcMnemonic.phrase,\n path: srcMnemonic.path || defaultPath,\n locale: srcMnemonic.locale || \"en\"\n }\n ));\n const mnemonic = this.mnemonic;\n const node = HDNode.fromMnemonic(mnemonic.phrase, null, mnemonic.locale).derivePath(mnemonic.path);\n if (computeAddress(node.privateKey) !== this.address) {\n logger.throwArgumentError(\"mnemonic/address mismatch\", \"privateKey\", \"[REDACTED]\");\n }\n } else {\n defineReadOnly(this, \"_mnemonic\", (): Mnemonic => null);\n }\n\n\n } else {\n if (SigningKey.isSigningKey(privateKey)) {\n /* istanbul ignore if */\n if (privateKey.curve !== \"secp256k1\") {\n logger.throwArgumentError(\"unsupported curve; must be secp256k1\", \"privateKey\", \"[REDACTED]\");\n }\n defineReadOnly(this, \"_signingKey\", () => (privateKey));\n\n } else {\n // A lot of common tools do not prefix private keys with a 0x (see: #1166)\n if (typeof(privateKey) === \"string\") {\n if (privateKey.match(/^[0-9a-f]*$/i) && privateKey.length === 64) {\n privateKey = \"0x\" + privateKey;\n }\n }\n\n const signingKey = new SigningKey(privateKey);\n defineReadOnly(this, \"_signingKey\", () => signingKey);\n }\n\n defineReadOnly(this, \"_mnemonic\", (): Mnemonic => null);\n defineReadOnly(this, \"address\", computeAddress(this.publicKey));\n }\n\n /* istanbul ignore if */\n if (provider && !Provider.isProvider(provider)) {\n logger.throwArgumentError(\"invalid provider\", \"provider\", provider);\n }\n\n defineReadOnly(this, \"provider\", provider || null);\n }\n\n get mnemonic(): Mnemonic { return this._mnemonic(); }\n get privateKey(): string { return this._signingKey().privateKey; }\n get publicKey(): string { return this._signingKey().publicKey; }\n\n getAddress(): Promise {\n return Promise.resolve(this.address);\n }\n\n connect(provider: Provider): Wallet {\n return new Wallet(this, provider);\n }\n\n signTransaction(transaction: TransactionRequest): Promise {\n return resolveProperties(transaction).then((tx) => {\n if (tx.from != null) {\n if (getAddress(tx.from) !== this.address) {\n logger.throwArgumentError(\"transaction from address mismatch\", \"transaction.from\", transaction.from);\n }\n delete tx.from;\n }\n\n const signature = this._signingKey().signDigest(keccak256(serialize(tx)));\n return serialize(tx, signature);\n });\n }\n\n async signMessage(message: Bytes | string): Promise {\n return joinSignature(this._signingKey().signDigest(hashMessage(message)));\n }\n\n async _signTypedData(domain: TypedDataDomain, types: Record>, value: Record): Promise {\n // Populate any ENS names\n const populated = await _TypedDataEncoder.resolveNames(domain, types, value, (name: string) => {\n if (this.provider == null) {\n logger.throwError(\"cannot resolve ENS names without a provider\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"resolveName\",\n value: name\n });\n }\n return this.provider.resolveName(name);\n });\n\n return joinSignature(this._signingKey().signDigest(_TypedDataEncoder.hash(populated.domain, types, populated.value)));\n }\n\n encrypt(password: Bytes | string, options?: any, progressCallback?: ProgressCallback): Promise {\n if (typeof(options) === \"function\" && !progressCallback) {\n progressCallback = options;\n options = {};\n }\n\n if (progressCallback && typeof(progressCallback) !== \"function\") {\n throw new Error(\"invalid callback\");\n }\n\n if (!options) { options = {}; }\n\n return encryptKeystore(this, password, options, progressCallback);\n }\n\n\n /**\n * Static methods to create Wallet instances.\n */\n static createRandom(options?: any): Wallet {\n let entropy: Uint8Array = randomBytes(16);\n\n if (!options) { options = { }; }\n\n if (options.extraEntropy) {\n entropy = arrayify(hexDataSlice(keccak256(concat([ entropy, options.extraEntropy ])), 0, 16));\n }\n\n const mnemonic = entropyToMnemonic(entropy, options.locale);\n return Wallet.fromMnemonic(mnemonic, options.path, options.locale);\n }\n\n static fromEncryptedJson(json: string, password: Bytes | string, progressCallback?: ProgressCallback): Promise {\n return decryptJsonWallet(json, password, progressCallback).then((account) => {\n return new Wallet(account);\n });\n }\n\n static fromEncryptedJsonSync(json: string, password: Bytes | string): Wallet {\n return new Wallet(decryptJsonWalletSync(json, password));\n }\n\n static fromMnemonic(mnemonic: string, path?: string, wordlist?: Wordlist): Wallet {\n if (!path) { path = defaultPath; }\n return new Wallet(HDNode.fromMnemonic(mnemonic, null, wordlist).derivePath(path));\n }\n}\n\nexport function verifyMessage(message: Bytes | string, signature: SignatureLike): string {\n return recoverAddress(hashMessage(message), signature);\n}\n\nexport function verifyTypedData(domain: TypedDataDomain, types: Record>, value: Record, signature: SignatureLike): string {\n return recoverAddress(_TypedDataEncoder.hash(domain, types, value), signature);\n}\n", "export const version = \"networks/5.7.1\";\n", "\"use strict\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\nimport { Network, Networkish } from \"./types\";\n\nexport {\n Network,\n Networkish\n};\n\ntype DefaultProviderFunc = (providers: any, options?: any) => any;\n\ninterface Renetworkable extends DefaultProviderFunc {\n renetwork: (network: Network) => DefaultProviderFunc;\n};\n\nfunction isRenetworkable(value: any): value is Renetworkable {\n return (value && typeof(value.renetwork) === \"function\");\n}\n\nfunction ethDefaultProvider(network: string | Network): Renetworkable {\n const func = function(providers: any, options?: any): any {\n if (options == null) { options = { }; }\n const providerList: Array = [];\n\n if (providers.InfuraProvider && options.infura !== \"-\") {\n try {\n providerList.push(new providers.InfuraProvider(network, options.infura));\n } catch(error) { }\n }\n\n if (providers.EtherscanProvider && options.etherscan !== \"-\") {\n try {\n providerList.push(new providers.EtherscanProvider(network, options.etherscan));\n } catch(error) { }\n }\n\n if (providers.AlchemyProvider && options.alchemy !== \"-\") {\n try {\n providerList.push(new providers.AlchemyProvider(network, options.alchemy));\n } catch(error) { }\n }\n\n if (providers.PocketProvider && options.pocket !== \"-\") {\n // These networks are currently faulty on Pocket as their\n // network does not handle the Berlin hardfork, which is\n // live on these ones.\n // @TODO: This goes away once Pocket has upgraded their nodes\n const skip = [ \"goerli\", \"ropsten\", \"rinkeby\", \"sepolia\" ];\n try {\n const provider = new providers.PocketProvider(network, options.pocket);\n if (provider.network && skip.indexOf(provider.network.name) === -1) {\n providerList.push(provider);\n }\n } catch(error) { }\n }\n\n if (providers.CloudflareProvider && options.cloudflare !== \"-\") {\n try {\n providerList.push(new providers.CloudflareProvider(network));\n } catch(error) { }\n }\n\n if (providers.AnkrProvider && options.ankr !== \"-\") {\n try {\n const skip = [ \"ropsten\" ];\n const provider = new providers.AnkrProvider(network, options.ankr);\n if (provider.network && skip.indexOf(provider.network.name) === -1) {\n providerList.push(provider);\n }\n } catch(error) { }\n }\n\n if (providerList.length === 0) { return null; }\n\n if (providers.FallbackProvider) {\n let quorum = 1;\n if (options.quorum != null) {\n quorum = options.quorum;\n } else if (network === \"homestead\") {\n quorum = 2;\n }\n return new providers.FallbackProvider(providerList, quorum);\n }\n\n return providerList[0];\n };\n\n func.renetwork = function(network: Network) {\n return ethDefaultProvider(network);\n };\n\n return func;\n}\n\nfunction etcDefaultProvider(url: string, network: string | Network): Renetworkable {\n const func = function(providers: any, options?: any): any {\n if (providers.JsonRpcProvider) {\n return new providers.JsonRpcProvider(url, network);\n }\n\n return null;\n };\n\n func.renetwork = function(network: Network) {\n return etcDefaultProvider(url, network);\n };\n\n return func;\n}\n\nconst homestead: Network = {\n chainId: 1,\n ensAddress: \"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e\",\n name: \"homestead\",\n _defaultProvider: ethDefaultProvider(\"homestead\")\n};\n\nconst ropsten: Network = {\n chainId: 3,\n ensAddress: \"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e\",\n name: \"ropsten\",\n _defaultProvider: ethDefaultProvider(\"ropsten\")\n};\n\nconst classicMordor: Network = {\n chainId: 63,\n name: \"classicMordor\",\n _defaultProvider: etcDefaultProvider(\"https://www.ethercluster.com/mordor\", \"classicMordor\")\n};\n\n// See: https://chainlist.org\nconst networks: { [name: string]: Network } = {\n unspecified: { chainId: 0, name: \"unspecified\" },\n\n homestead: homestead,\n mainnet: homestead,\n\n morden: { chainId: 2, name: \"morden\" },\n\n ropsten: ropsten,\n testnet: ropsten,\n\n rinkeby: {\n chainId: 4,\n ensAddress: \"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e\",\n name: \"rinkeby\",\n _defaultProvider: ethDefaultProvider(\"rinkeby\")\n },\n\n kovan: {\n chainId: 42,\n name: \"kovan\",\n _defaultProvider: ethDefaultProvider(\"kovan\")\n },\n\n goerli: {\n chainId: 5,\n ensAddress: \"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e\",\n name: \"goerli\",\n _defaultProvider: ethDefaultProvider(\"goerli\")\n },\n\n kintsugi: { chainId: 1337702, name: \"kintsugi\" },\n\n sepolia: {\n chainId: 11155111,\n name: \"sepolia\",\n _defaultProvider: ethDefaultProvider(\"sepolia\")\n },\n\n\n // ETC (See: #351)\n classic: {\n chainId: 61,\n name: \"classic\",\n _defaultProvider: etcDefaultProvider(\"https:/\\/www.ethercluster.com/etc\", \"classic\")\n },\n\n classicMorden: { chainId: 62, name: \"classicMorden\" },\n\n classicMordor: classicMordor,\n classicTestnet: classicMordor,\n\n classicKotti: {\n chainId: 6,\n name: \"classicKotti\",\n _defaultProvider: etcDefaultProvider(\"https:/\\/www.ethercluster.com/kotti\", \"classicKotti\")\n },\n\n xdai: { chainId: 100, name: \"xdai\" },\n\n matic: {\n chainId: 137,\n name: \"matic\",\n _defaultProvider: ethDefaultProvider(\"matic\")\n },\n maticmum: { chainId: 80001, name: \"maticmum\" },\n\n optimism: {\n chainId: 10,\n name: \"optimism\",\n _defaultProvider: ethDefaultProvider(\"optimism\")\n },\n \"optimism-kovan\": { chainId: 69, name: \"optimism-kovan\" },\n \"optimism-goerli\": { chainId: 420, name: \"optimism-goerli\" },\n\n arbitrum: { chainId: 42161, name: \"arbitrum\" },\n \"arbitrum-rinkeby\": { chainId: 421611, name: \"arbitrum-rinkeby\" },\n \"arbitrum-goerli\": { chainId: 421613, name: \"arbitrum-goerli\" },\n\n bnb: { chainId: 56, name: \"bnb\" },\n bnbt: { chainId: 97, name: \"bnbt\" },\n}\n\n/**\n * getNetwork\n *\n * Converts a named common networks or chain ID (network ID) to a Network\n * and verifies a network is a valid Network..\n */\nexport function getNetwork(network: Networkish): Network {\n // No network (null)\n if (network == null) { return null; }\n\n if (typeof(network) === \"number\") {\n for (const name in networks) {\n const standard = networks[name];\n if (standard.chainId === network) {\n return {\n name: standard.name,\n chainId: standard.chainId,\n ensAddress: (standard.ensAddress || null),\n _defaultProvider: (standard._defaultProvider || null)\n };\n }\n }\n\n return {\n chainId: network,\n name: \"unknown\"\n };\n }\n\n if (typeof(network) === \"string\") {\n const standard = networks[network];\n if (standard == null) { return null; }\n return {\n name: standard.name,\n chainId: standard.chainId,\n ensAddress: standard.ensAddress,\n _defaultProvider: (standard._defaultProvider || null)\n };\n }\n\n const standard = networks[network.name];\n\n // Not a standard network; check that it is a valid network in general\n if (!standard) {\n if (typeof(network.chainId) !== \"number\") {\n logger.throwArgumentError(\"invalid network chainId\", \"network\", network);\n }\n return network;\n }\n\n // Make sure the chainId matches the expected network chainId (or is 0; disable EIP-155)\n if (network.chainId !== 0 && network.chainId !== standard.chainId) {\n logger.throwArgumentError(\"network chainId mismatch\", \"network\", network);\n }\n\n // @TODO: In the next major version add an attach function to a defaultProvider\n // class and move the _defaultProvider internal to this file (extend Network)\n let defaultProvider: DefaultProviderFunc = network._defaultProvider || null;\n if (defaultProvider == null && standard._defaultProvider) {\n if (isRenetworkable(standard._defaultProvider)) {\n defaultProvider = standard._defaultProvider.renetwork(network);\n } else {\n defaultProvider = standard._defaultProvider;\n }\n }\n\n // Standard Network (allow overriding the ENS address)\n return {\n name: network.name,\n chainId: standard.chainId,\n ensAddress: (network.ensAddress || standard.ensAddress || null),\n _defaultProvider: defaultProvider\n };\n}\n", "export const version = \"web/5.7.1\";\n", "\"use strict\";\n\nimport http from \"http\";\nimport https from \"https\";\nimport { gunzipSync } from \"zlib\";\nimport { parse } from \"url\"\n\nimport { arrayify, concat } from \"@ethersproject/bytes\";\nimport { shallowCopy } from \"@ethersproject/properties\";\n\nimport type { GetUrlResponse, Options } from \"./types\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\nexport { GetUrlResponse, Options };\n\nfunction getResponse(request: http.ClientRequest): Promise {\n return new Promise((resolve, reject) => {\n request.once(\"response\", (resp: http.IncomingMessage) => {\n const response: GetUrlResponse = {\n statusCode: resp.statusCode,\n statusMessage: resp.statusMessage,\n headers: Object.keys(resp.headers).reduce((accum, name) => {\n let value = resp.headers[name];\n if (Array.isArray(value)) {\n value = value.join(\", \");\n }\n accum[name] = value;\n return accum;\n }, <{ [ name: string ]: string }>{ }),\n body: null\n };\n //resp.setEncoding(\"utf8\");\n\n resp.on(\"data\", (chunk: Uint8Array) => {\n if (response.body == null) { response.body = new Uint8Array(0); }\n response.body = concat([ response.body, chunk ]);\n });\n\n resp.on(\"end\", () => {\n if (response.headers[\"content-encoding\"] === \"gzip\") {\n //const size = response.body.length;\n response.body = arrayify(gunzipSync(response.body));\n //console.log(\"Delta:\", response.body.length - size, Buffer.from(response.body).toString());\n }\n resolve(response);\n });\n\n resp.on(\"error\", (error) => {\n /* istanbul ignore next */\n (error).response = response;\n reject(error);\n });\n });\n\n request.on(\"error\", (error) => { reject(error); });\n });\n}\n\n// The URL.parse uses null instead of the empty string\nfunction nonnull(value: string): string {\n if (value == null) { return \"\"; }\n return value;\n}\n\nexport async function getUrl(href: string, options?: Options): Promise {\n if (options == null) { options = { }; }\n\n // @TODO: Once we drop support for node 8, we can pass the href\n // directly into request and skip adding the components\n // to this request object\n const url = parse(href);\n\n const request = {\n protocol: nonnull(url.protocol),\n hostname: nonnull(url.hostname),\n port: nonnull(url.port),\n path: (nonnull(url.pathname) + nonnull(url.search)),\n\n method: (options.method || \"GET\"),\n headers: shallowCopy(options.headers || { }),\n };\n\n if (options.allowGzip) {\n request.headers[\"accept-encoding\"] = \"gzip\";\n }\n\n let req: http.ClientRequest = null;\n switch (nonnull(url.protocol)) {\n case \"http:\":\n req = http.request(request);\n break;\n case \"https:\":\n req = https.request(request);\n break;\n default:\n /* istanbul ignore next */\n logger.throwError(`unsupported protocol ${ url.protocol }`, Logger.errors.UNSUPPORTED_OPERATION, {\n protocol: url.protocol,\n operation: \"request\"\n });\n }\n\n if (options.body) {\n req.write(Buffer.from(options.body));\n }\n req.end();\n\n const response = await getResponse(req);\n return response;\n}\n\n", "\"use strict\";\n\nimport { decode as base64Decode, encode as base64Encode } from \"@ethersproject/base64\";\nimport { hexlify, isBytesLike } from \"@ethersproject/bytes\";\nimport { shallowCopy } from \"@ethersproject/properties\";\nimport { toUtf8Bytes, toUtf8String } from \"@ethersproject/strings\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\nimport { getUrl, GetUrlResponse, Options } from \"./geturl\";\n\nfunction staller(duration: number): Promise {\n return new Promise((resolve) => {\n setTimeout(resolve, duration);\n });\n}\n\nfunction bodyify(value: any, type: string): string {\n if (value == null) { return null; }\n\n if (typeof(value) === \"string\") { return value; }\n\n if (isBytesLike(value)) {\n if (type && (type.split(\"/\")[0] === \"text\" || type.split(\";\")[0].trim() === \"application/json\")) {\n try {\n return toUtf8String(value);\n } catch (error) { };\n }\n return hexlify(value);\n }\n\n return value;\n}\n\n// Exported Types\nexport type ConnectionInfo = {\n url: string,\n headers?: { [key: string]: string | number }\n\n user?: string,\n password?: string,\n\n allowInsecureAuthentication?: boolean,\n allowGzip?: boolean,\n\n throttleLimit?: number,\n throttleSlotInterval?: number;\n throttleCallback?: (attempt: number, url: string) => Promise,\n\n skipFetchSetup?: boolean;\n fetchOptions?: Record;\n errorPassThrough?: boolean;\n\n timeout?: number,\n};\n\nexport interface OnceBlockable {\n once(eventName: \"block\", handler: () => void): void;\n}\n\nexport interface OncePollable {\n once(eventName: \"poll\", handler: () => void): void;\n}\n\nexport type PollOptions = {\n timeout?: number,\n floor?: number,\n ceiling?: number,\n interval?: number,\n retryLimit?: number,\n onceBlock?: OnceBlockable\n oncePoll?: OncePollable\n};\n\nexport type FetchJsonResponse = {\n statusCode: number;\n headers: { [ header: string ]: string };\n};\n\n\ntype Header = { key: string, value: string };\n\nfunction unpercent(value: string): Uint8Array {\n return toUtf8Bytes(value.replace(/%([0-9a-f][0-9a-f])/gi, (all, code) => {\n return String.fromCharCode(parseInt(code, 16));\n }));\n}\n\n// This API is still a work in progress; the future changes will likely be:\n// - ConnectionInfo => FetchDataRequest\n// - FetchDataRequest.body? = string | Uint8Array | { contentType: string, data: string | Uint8Array }\n// - If string => text/plain, Uint8Array => application/octet-stream (if content-type unspecified)\n// - FetchDataRequest.processFunc = (body: Uint8Array, response: FetchDataResponse) => T\n// For this reason, it should be considered internal until the API is finalized\nexport function _fetchData(connection: string | ConnectionInfo, body?: Uint8Array, processFunc?: (value: Uint8Array, response: FetchJsonResponse) => T): Promise {\n\n // How many times to retry in the event of a throttle\n const attemptLimit = (typeof(connection) === \"object\" && connection.throttleLimit != null) ? connection.throttleLimit: 12;\n logger.assertArgument((attemptLimit > 0 && (attemptLimit % 1) === 0),\n \"invalid connection throttle limit\", \"connection.throttleLimit\", attemptLimit);\n\n const throttleCallback = ((typeof(connection) === \"object\") ? connection.throttleCallback: null);\n const throttleSlotInterval = ((typeof(connection) === \"object\" && typeof(connection.throttleSlotInterval) === \"number\") ? connection.throttleSlotInterval: 100);\n logger.assertArgument((throttleSlotInterval > 0 && (throttleSlotInterval % 1) === 0),\n \"invalid connection throttle slot interval\", \"connection.throttleSlotInterval\", throttleSlotInterval);\n\n const errorPassThrough = ((typeof(connection) === \"object\") ? !!(connection.errorPassThrough): false);\n\n const headers: { [key: string]: Header } = { };\n\n let url: string = null;\n\n // @TODO: Allow ConnectionInfo to override some of these values\n const options: Options = {\n method: \"GET\",\n };\n\n let allow304 = false;\n\n let timeout = 2 * 60 * 1000;\n\n if (typeof(connection) === \"string\") {\n url = connection;\n\n } else if (typeof(connection) === \"object\") {\n if (connection == null || connection.url == null) {\n logger.throwArgumentError(\"missing URL\", \"connection.url\", connection);\n }\n\n url = connection.url;\n\n if (typeof(connection.timeout) === \"number\" && connection.timeout > 0) {\n timeout = connection.timeout;\n }\n\n if (connection.headers) {\n for (const key in connection.headers) {\n headers[key.toLowerCase()] = { key: key, value: String(connection.headers[key]) };\n if ([\"if-none-match\", \"if-modified-since\"].indexOf(key.toLowerCase()) >= 0) {\n allow304 = true;\n }\n }\n }\n\n options.allowGzip = !!connection.allowGzip;\n\n if (connection.user != null && connection.password != null) {\n if (url.substring(0, 6) !== \"https:\" && connection.allowInsecureAuthentication !== true) {\n logger.throwError(\n \"basic authentication requires a secure https url\",\n Logger.errors.INVALID_ARGUMENT,\n { argument: \"url\", url: url, user: connection.user, password: \"[REDACTED]\" }\n );\n }\n\n const authorization = connection.user + \":\" + connection.password;\n headers[\"authorization\"] = {\n key: \"Authorization\",\n value: \"Basic \" + base64Encode(toUtf8Bytes(authorization))\n };\n }\n\n if (connection.skipFetchSetup != null) {\n options.skipFetchSetup = !!connection.skipFetchSetup;\n }\n\n if (connection.fetchOptions != null) {\n options.fetchOptions = shallowCopy(connection.fetchOptions);\n }\n }\n\n const reData = new RegExp(\"^data:([^;:]*)?(;base64)?,(.*)$\", \"i\");\n const dataMatch = ((url) ? url.match(reData): null);\n if (dataMatch) {\n try {\n const response = {\n statusCode: 200,\n statusMessage: \"OK\",\n headers: { \"content-type\": (dataMatch[1] || \"text/plain\")},\n body: (dataMatch[2] ? base64Decode(dataMatch[3]): unpercent(dataMatch[3]))\n };\n\n let result: T = response.body;\n if (processFunc) {\n result = processFunc(response.body, response);\n }\n return Promise.resolve(result);\n\n } catch (error) {\n logger.throwError(\"processing response error\", Logger.errors.SERVER_ERROR, {\n body: bodyify(dataMatch[1], dataMatch[2]),\n error: error,\n requestBody: null,\n requestMethod: \"GET\",\n url: url\n });\n }\n }\n\n if (body) {\n options.method = \"POST\";\n options.body = body;\n if (headers[\"content-type\"] == null) {\n headers[\"content-type\"] = { key: \"Content-Type\", value: \"application/octet-stream\" };\n }\n if (headers[\"content-length\"] == null) {\n headers[\"content-length\"] = { key: \"Content-Length\", value: String(body.length) };\n }\n }\n\n const flatHeaders: { [ key: string ]: string } = { };\n Object.keys(headers).forEach((key) => {\n const header = headers[key];\n flatHeaders[header.key] = header.value;\n });\n options.headers = flatHeaders;\n\n const runningTimeout = (function() {\n let timer: NodeJS.Timer = null;\n const promise: Promise = new Promise(function(resolve, reject) {\n if (timeout) {\n timer = setTimeout(() => {\n if (timer == null) { return; }\n timer = null;\n\n reject(logger.makeError(\"timeout\", Logger.errors.TIMEOUT, {\n requestBody: bodyify(options.body, flatHeaders[\"content-type\"]),\n requestMethod: options.method,\n timeout: timeout,\n url: url\n }));\n }, timeout);\n }\n });\n\n const cancel = function() {\n if (timer == null) { return; }\n clearTimeout(timer);\n timer = null;\n }\n\n return { promise, cancel };\n })();\n\n const runningFetch = (async function() {\n\n for (let attempt = 0; attempt < attemptLimit; attempt++) {\n let response: GetUrlResponse = null;\n\n try {\n response = await getUrl(url, options);\n\n if (attempt < attemptLimit) {\n if (response.statusCode === 301 || response.statusCode === 302) {\n // Redirection; for now we only support absolute locataions\n const location = response.headers.location || \"\";\n if (options.method === \"GET\" && location.match(/^https:/)) {\n url = response.headers.location;\n continue;\n }\n\n } else if (response.statusCode === 429) {\n // Exponential back-off throttling\n let tryAgain = true;\n if (throttleCallback) {\n tryAgain = await throttleCallback(attempt, url);\n }\n\n if (tryAgain) {\n let stall = 0;\n\n const retryAfter = response.headers[\"retry-after\"];\n if (typeof(retryAfter) === \"string\" && retryAfter.match(/^[1-9][0-9]*$/)) {\n stall = parseInt(retryAfter) * 1000;\n } else {\n stall = throttleSlotInterval * parseInt(String(Math.random() * Math.pow(2, attempt)));\n }\n\n //console.log(\"Stalling 429\");\n await staller(stall);\n continue;\n }\n }\n }\n\n } catch (error) {\n response = (error).response;\n if (response == null) {\n runningTimeout.cancel();\n logger.throwError(\"missing response\", Logger.errors.SERVER_ERROR, {\n requestBody: bodyify(options.body, flatHeaders[\"content-type\"]),\n requestMethod: options.method,\n serverError: error,\n url: url\n });\n }\n }\n\n\n let body = response.body;\n\n if (allow304 && response.statusCode === 304) {\n body = null;\n } else if (!errorPassThrough && (response.statusCode < 200 || response.statusCode >= 300)) {\n runningTimeout.cancel();\n logger.throwError(\"bad response\", Logger.errors.SERVER_ERROR, {\n status: response.statusCode,\n headers: response.headers,\n body: bodyify(body, ((response.headers) ? response.headers[\"content-type\"]: null)),\n requestBody: bodyify(options.body, flatHeaders[\"content-type\"]),\n requestMethod: options.method,\n url: url\n });\n }\n\n if (processFunc) {\n try {\n const result = await processFunc(body, response);\n runningTimeout.cancel();\n return result;\n\n } catch (error) {\n // Allow the processFunc to trigger a throttle\n if (error.throttleRetry && attempt < attemptLimit) {\n let tryAgain = true;\n if (throttleCallback) {\n tryAgain = await throttleCallback(attempt, url);\n }\n\n if (tryAgain) {\n const timeout = throttleSlotInterval * parseInt(String(Math.random() * Math.pow(2, attempt)));\n //console.log(\"Stalling callback\");\n await staller(timeout);\n continue;\n }\n }\n\n runningTimeout.cancel();\n logger.throwError(\"processing response error\", Logger.errors.SERVER_ERROR, {\n body: bodyify(body, ((response.headers) ? response.headers[\"content-type\"]: null)),\n error: error,\n requestBody: bodyify(options.body, flatHeaders[\"content-type\"]),\n requestMethod: options.method,\n url: url\n });\n }\n }\n\n runningTimeout.cancel();\n\n // If we had a processFunc, it either returned a T or threw above.\n // The \"body\" is now a Uint8Array.\n return (body);\n }\n\n return logger.throwError(\"failed response\", Logger.errors.SERVER_ERROR, {\n requestBody: bodyify(options.body, flatHeaders[\"content-type\"]),\n requestMethod: options.method,\n url: url\n });\n })();\n\n return Promise.race([ runningTimeout.promise, runningFetch ]);\n}\n\nexport function fetchJson(connection: string | ConnectionInfo, json?: string, processFunc?: (value: any, response: FetchJsonResponse) => any): Promise {\n let processJsonFunc = (value: Uint8Array, response: FetchJsonResponse) => {\n let result: any = null;\n if (value != null) {\n try {\n result = JSON.parse(toUtf8String(value));\n } catch (error) {\n logger.throwError(\"invalid JSON\", Logger.errors.SERVER_ERROR, {\n body: value,\n error: error\n });\n }\n }\n\n if (processFunc) {\n result = processFunc(result, response);\n }\n\n return result;\n }\n\n // If we have json to send, we must\n // - add content-type of application/json (unless already overridden)\n // - convert the json to bytes\n let body: Uint8Array = null;\n if (json != null) {\n body = toUtf8Bytes(json);\n\n // Create a connection with the content-type set for JSON\n const updated: ConnectionInfo = (typeof(connection) === \"string\") ? ({ url: connection }): shallowCopy(connection);\n if (updated.headers) {\n const hasContentType = (Object.keys(updated.headers).filter((k) => (k.toLowerCase() === \"content-type\")).length) !== 0;\n if (!hasContentType) {\n updated.headers = shallowCopy(updated.headers);\n updated.headers[\"content-type\"] = \"application/json\";\n }\n } else {\n updated.headers = { \"content-type\": \"application/json\" };\n }\n connection = updated;\n }\n\n return _fetchData(connection, body, processJsonFunc);\n}\n\nexport function poll(func: () => Promise, options?: PollOptions): Promise {\n if (!options) { options = {}; }\n options = shallowCopy(options);\n if (options.floor == null) { options.floor = 0; }\n if (options.ceiling == null) { options.ceiling = 10000; }\n if (options.interval == null) { options.interval = 250; }\n\n return new Promise(function(resolve, reject) {\n\n let timer: NodeJS.Timer = null;\n let done: boolean = false;\n\n // Returns true if cancel was successful. Unsuccessful cancel means we're already done.\n const cancel = (): boolean => {\n if (done) { return false; }\n done = true;\n if (timer) { clearTimeout(timer); }\n return true;\n };\n\n if (options.timeout) {\n timer = setTimeout(() => {\n if (cancel()) { reject(new Error(\"timeout\")); }\n }, options.timeout)\n }\n\n const retryLimit = options.retryLimit;\n\n let attempt = 0;\n function check() {\n return func().then(function(result) {\n\n // If we have a result, or are allowed null then we're done\n if (result !== undefined) {\n if (cancel()) { resolve(result); }\n\n } else if (options.oncePoll) {\n options.oncePoll.once(\"poll\", check);\n\n } else if (options.onceBlock) {\n options.onceBlock.once(\"block\", check);\n\n // Otherwise, exponential back-off (up to 10s) our next request\n } else if (!done) {\n attempt++;\n if (attempt > retryLimit) {\n if (cancel()) { reject(new Error(\"retry limit reached\")); }\n return;\n }\n\n let timeout = options.interval * parseInt(String(Math.random() * Math.pow(2, attempt)));\n if (timeout < options.floor) { timeout = options.floor; }\n if (timeout > options.ceiling) { timeout = options.ceiling; }\n\n setTimeout(check, timeout);\n }\n\n return null;\n }, function(error) {\n if (cancel()) { reject(error); }\n });\n }\n check();\n });\n}\n\n", "'use strict'\nvar ALPHABET = 'qpzry9x8gf2tvdw0s3jn54khce6mua7l'\n\n// pre-compute lookup table\nvar ALPHABET_MAP = {}\nfor (var z = 0; z < ALPHABET.length; z++) {\n var x = ALPHABET.charAt(z)\n\n if (ALPHABET_MAP[x] !== undefined) throw new TypeError(x + ' is ambiguous')\n ALPHABET_MAP[x] = z\n}\n\nfunction polymodStep (pre) {\n var b = pre >> 25\n return ((pre & 0x1FFFFFF) << 5) ^\n (-((b >> 0) & 1) & 0x3b6a57b2) ^\n (-((b >> 1) & 1) & 0x26508e6d) ^\n (-((b >> 2) & 1) & 0x1ea119fa) ^\n (-((b >> 3) & 1) & 0x3d4233dd) ^\n (-((b >> 4) & 1) & 0x2a1462b3)\n}\n\nfunction prefixChk (prefix) {\n var chk = 1\n for (var i = 0; i < prefix.length; ++i) {\n var c = prefix.charCodeAt(i)\n if (c < 33 || c > 126) return 'Invalid prefix (' + prefix + ')'\n\n chk = polymodStep(chk) ^ (c >> 5)\n }\n chk = polymodStep(chk)\n\n for (i = 0; i < prefix.length; ++i) {\n var v = prefix.charCodeAt(i)\n chk = polymodStep(chk) ^ (v & 0x1f)\n }\n return chk\n}\n\nfunction encode (prefix, words, LIMIT) {\n LIMIT = LIMIT || 90\n if ((prefix.length + 7 + words.length) > LIMIT) throw new TypeError('Exceeds length limit')\n\n prefix = prefix.toLowerCase()\n\n // determine chk mod\n var chk = prefixChk(prefix)\n if (typeof chk === 'string') throw new Error(chk)\n\n var result = prefix + '1'\n for (var i = 0; i < words.length; ++i) {\n var x = words[i]\n if ((x >> 5) !== 0) throw new Error('Non 5-bit word')\n\n chk = polymodStep(chk) ^ x\n result += ALPHABET.charAt(x)\n }\n\n for (i = 0; i < 6; ++i) {\n chk = polymodStep(chk)\n }\n chk ^= 1\n\n for (i = 0; i < 6; ++i) {\n var v = (chk >> ((5 - i) * 5)) & 0x1f\n result += ALPHABET.charAt(v)\n }\n\n return result\n}\n\nfunction __decode (str, LIMIT) {\n LIMIT = LIMIT || 90\n if (str.length < 8) return str + ' too short'\n if (str.length > LIMIT) return 'Exceeds length limit'\n\n // don't allow mixed case\n var lowered = str.toLowerCase()\n var uppered = str.toUpperCase()\n if (str !== lowered && str !== uppered) return 'Mixed-case string ' + str\n str = lowered\n\n var split = str.lastIndexOf('1')\n if (split === -1) return 'No separator character for ' + str\n if (split === 0) return 'Missing prefix for ' + str\n\n var prefix = str.slice(0, split)\n var wordChars = str.slice(split + 1)\n if (wordChars.length < 6) return 'Data too short'\n\n var chk = prefixChk(prefix)\n if (typeof chk === 'string') return chk\n\n var words = []\n for (var i = 0; i < wordChars.length; ++i) {\n var c = wordChars.charAt(i)\n var v = ALPHABET_MAP[c]\n if (v === undefined) return 'Unknown character ' + c\n chk = polymodStep(chk) ^ v\n\n // not in the checksum?\n if (i + 6 >= wordChars.length) continue\n words.push(v)\n }\n\n if (chk !== 1) return 'Invalid checksum for ' + str\n return { prefix: prefix, words: words }\n}\n\nfunction decodeUnsafe () {\n var res = __decode.apply(null, arguments)\n if (typeof res === 'object') return res\n}\n\nfunction decode (str) {\n var res = __decode.apply(null, arguments)\n if (typeof res === 'object') return res\n\n throw new Error(res)\n}\n\nfunction convert (data, inBits, outBits, pad) {\n var value = 0\n var bits = 0\n var maxV = (1 << outBits) - 1\n\n var result = []\n for (var i = 0; i < data.length; ++i) {\n value = (value << inBits) | data[i]\n bits += inBits\n\n while (bits >= outBits) {\n bits -= outBits\n result.push((value >> bits) & maxV)\n }\n }\n\n if (pad) {\n if (bits > 0) {\n result.push((value << (outBits - bits)) & maxV)\n }\n } else {\n if (bits >= inBits) return 'Excess padding'\n if ((value << (outBits - bits)) & maxV) return 'Non-zero padding'\n }\n\n return result\n}\n\nfunction toWordsUnsafe (bytes) {\n var res = convert(bytes, 8, 5, true)\n if (Array.isArray(res)) return res\n}\n\nfunction toWords (bytes) {\n var res = convert(bytes, 8, 5, true)\n if (Array.isArray(res)) return res\n\n throw new Error(res)\n}\n\nfunction fromWordsUnsafe (words) {\n var res = convert(words, 5, 8, false)\n if (Array.isArray(res)) return res\n}\n\nfunction fromWords (words) {\n var res = convert(words, 5, 8, false)\n if (Array.isArray(res)) return res\n\n throw new Error(res)\n}\n\nmodule.exports = {\n decodeUnsafe: decodeUnsafe,\n decode: decode,\n encode: encode,\n toWordsUnsafe: toWordsUnsafe,\n toWords: toWords,\n fromWordsUnsafe: fromWordsUnsafe,\n fromWords: fromWords\n}\n", "export const version = \"providers/5.7.2\";\n", "\"use strict\";\n\nimport { Block, TransactionReceipt, TransactionResponse } from \"@ethersproject/abstract-provider\";\nimport { getAddress, getContractAddress } from \"@ethersproject/address\";\nimport { BigNumber } from \"@ethersproject/bignumber\";\nimport { hexDataLength, hexDataSlice, hexValue, hexZeroPad, isHexString } from \"@ethersproject/bytes\";\nimport { AddressZero } from \"@ethersproject/constants\";\nimport { shallowCopy } from \"@ethersproject/properties\";\nimport { AccessList, accessListify, parse as parseTransaction } from \"@ethersproject/transactions\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\nexport type FormatFunc = (value: any) => any;\n\nexport type FormatFuncs = { [ key: string ]: FormatFunc };\n\nexport type Formats = {\n transaction: FormatFuncs,\n transactionRequest: FormatFuncs,\n receipt: FormatFuncs,\n receiptLog: FormatFuncs,\n block: FormatFuncs,\n blockWithTransactions: FormatFuncs,\n filter: FormatFuncs,\n filterLog: FormatFuncs,\n};\n\nexport class Formatter {\n readonly formats: Formats;\n\n constructor() {\n this.formats = this.getDefaultFormats();\n }\n\n getDefaultFormats(): Formats {\n const formats: Formats = ({ });\n\n const address = this.address.bind(this);\n const bigNumber = this.bigNumber.bind(this);\n const blockTag = this.blockTag.bind(this);\n const data = this.data.bind(this);\n const hash = this.hash.bind(this);\n const hex = this.hex.bind(this);\n const number = this.number.bind(this);\n const type = this.type.bind(this);\n\n const strictData = (v: any) => { return this.data(v, true); };\n\n formats.transaction = {\n hash: hash,\n\n type: type,\n accessList: Formatter.allowNull(this.accessList.bind(this), null),\n\n blockHash: Formatter.allowNull(hash, null),\n blockNumber: Formatter.allowNull(number, null),\n transactionIndex: Formatter.allowNull(number, null),\n\n confirmations: Formatter.allowNull(number, null),\n\n from: address,\n\n // either (gasPrice) or (maxPriorityFeePerGas + maxFeePerGas)\n // must be set\n gasPrice: Formatter.allowNull(bigNumber),\n maxPriorityFeePerGas: Formatter.allowNull(bigNumber),\n maxFeePerGas: Formatter.allowNull(bigNumber),\n\n gasLimit: bigNumber,\n to: Formatter.allowNull(address, null),\n value: bigNumber,\n nonce: number,\n data: data,\n\n r: Formatter.allowNull(this.uint256),\n s: Formatter.allowNull(this.uint256),\n v: Formatter.allowNull(number),\n\n creates: Formatter.allowNull(address, null),\n\n raw: Formatter.allowNull(data),\n };\n\n formats.transactionRequest = {\n from: Formatter.allowNull(address),\n nonce: Formatter.allowNull(number),\n gasLimit: Formatter.allowNull(bigNumber),\n gasPrice: Formatter.allowNull(bigNumber),\n maxPriorityFeePerGas: Formatter.allowNull(bigNumber),\n maxFeePerGas: Formatter.allowNull(bigNumber),\n to: Formatter.allowNull(address),\n value: Formatter.allowNull(bigNumber),\n data: Formatter.allowNull(strictData),\n type: Formatter.allowNull(number),\n accessList: Formatter.allowNull(this.accessList.bind(this), null),\n };\n\n formats.receiptLog = {\n transactionIndex: number,\n blockNumber: number,\n transactionHash: hash,\n address: address,\n topics: Formatter.arrayOf(hash),\n data: data,\n logIndex: number,\n blockHash: hash,\n };\n\n formats.receipt = {\n to: Formatter.allowNull(this.address, null),\n from: Formatter.allowNull(this.address, null),\n contractAddress: Formatter.allowNull(address, null),\n transactionIndex: number,\n // should be allowNull(hash), but broken-EIP-658 support is handled in receipt\n root: Formatter.allowNull(hex),\n gasUsed: bigNumber,\n logsBloom: Formatter.allowNull(data),// @TODO: should this be data?\n blockHash: hash,\n transactionHash: hash,\n logs: Formatter.arrayOf(this.receiptLog.bind(this)),\n blockNumber: number,\n confirmations: Formatter.allowNull(number, null),\n cumulativeGasUsed: bigNumber,\n effectiveGasPrice: Formatter.allowNull(bigNumber),\n status: Formatter.allowNull(number),\n type: type\n };\n\n formats.block = {\n hash: Formatter.allowNull(hash),\n parentHash: hash,\n number: number,\n\n timestamp: number,\n nonce: Formatter.allowNull(hex),\n difficulty: this.difficulty.bind(this),\n\n gasLimit: bigNumber,\n gasUsed: bigNumber,\n\n miner: Formatter.allowNull(address),\n extraData: data,\n\n transactions: Formatter.allowNull(Formatter.arrayOf(hash)),\n\n baseFeePerGas: Formatter.allowNull(bigNumber)\n };\n\n formats.blockWithTransactions = shallowCopy(formats.block);\n formats.blockWithTransactions.transactions = Formatter.allowNull(Formatter.arrayOf(this.transactionResponse.bind(this)));\n\n formats.filter = {\n fromBlock: Formatter.allowNull(blockTag, undefined),\n toBlock: Formatter.allowNull(blockTag, undefined),\n blockHash: Formatter.allowNull(hash, undefined),\n address: Formatter.allowNull(address, undefined),\n topics: Formatter.allowNull(this.topics.bind(this), undefined),\n };\n\n formats.filterLog = {\n blockNumber: Formatter.allowNull(number),\n blockHash: Formatter.allowNull(hash),\n transactionIndex: number,\n\n removed: Formatter.allowNull(this.boolean.bind(this)),\n\n address: address,\n data: Formatter.allowFalsish(data, \"0x\"),\n\n topics: Formatter.arrayOf(hash),\n\n transactionHash: hash,\n logIndex: number,\n };\n\n return formats;\n }\n\n accessList(accessList: Array): AccessList {\n return accessListify(accessList || []);\n }\n\n // Requires a BigNumberish that is within the IEEE754 safe integer range; returns a number\n // Strict! Used on input.\n number(number: any): number {\n if (number === \"0x\") { return 0; }\n return BigNumber.from(number).toNumber();\n }\n\n type(number: any): number {\n if (number === \"0x\" || number == null) { return 0; }\n return BigNumber.from(number).toNumber();\n }\n\n // Strict! Used on input.\n bigNumber(value: any): BigNumber {\n return BigNumber.from(value);\n }\n\n // Requires a boolean, \"true\" or \"false\"; returns a boolean\n boolean(value: any): boolean {\n if (typeof(value) === \"boolean\") { return value; }\n if (typeof(value) === \"string\") {\n value = value.toLowerCase();\n if (value === \"true\") { return true; }\n if (value === \"false\") { return false; }\n }\n throw new Error(\"invalid boolean - \" + value);\n }\n\n hex(value: any, strict?: boolean): string {\n if (typeof(value) === \"string\") {\n if (!strict && value.substring(0, 2) !== \"0x\") { value = \"0x\" + value; }\n if (isHexString(value)) {\n return value.toLowerCase();\n }\n }\n return logger.throwArgumentError(\"invalid hash\", \"value\", value);\n }\n\n data(value: any, strict?: boolean): string {\n const result = this.hex(value, strict);\n if ((result.length % 2) !== 0) {\n throw new Error(\"invalid data; odd-length - \" + value);\n }\n return result;\n }\n\n // Requires an address\n // Strict! Used on input.\n address(value: any): string {\n return getAddress(value);\n }\n\n callAddress(value: any): string {\n if (!isHexString(value, 32)) { return null; }\n const address = getAddress(hexDataSlice(value, 12));\n return (address === AddressZero) ? null: address;\n }\n\n contractAddress(value: any): string {\n return getContractAddress(value);\n }\n\n // Strict! Used on input.\n blockTag(blockTag: any): string {\n if (blockTag == null) { return \"latest\"; }\n\n if (blockTag === \"earliest\") { return \"0x0\"; }\n\n switch (blockTag) {\n case \"earliest\": return \"0x0\";\n case \"latest\": case \"pending\": case \"safe\": case \"finalized\":\n return blockTag;\n }\n\n if (typeof(blockTag) === \"number\" || isHexString(blockTag)) {\n return hexValue(blockTag);\n }\n\n throw new Error(\"invalid blockTag\");\n }\n\n // Requires a hash, optionally requires 0x prefix; returns prefixed lowercase hash.\n hash(value: any, strict?: boolean): string {\n const result = this.hex(value, strict);\n if (hexDataLength(result) !== 32) {\n return logger.throwArgumentError(\"invalid hash\", \"value\", value);\n }\n return result;\n }\n\n // Returns the difficulty as a number, or if too large (i.e. PoA network) null\n difficulty(value: any): number {\n if (value == null) { return null; }\n\n const v = BigNumber.from(value);\n\n try {\n return v.toNumber();\n } catch (error) { }\n\n return null;\n }\n\n uint256(value: any): string {\n if (!isHexString(value)) {\n throw new Error(\"invalid uint256\");\n }\n return hexZeroPad(value, 32);\n }\n\n _block(value: any, format: any): Block {\n if (value.author != null && value.miner == null) {\n value.miner = value.author;\n }\n // The difficulty may need to come from _difficulty in recursed blocks\n const difficulty = (value._difficulty != null) ? value._difficulty: value.difficulty;\n const result = Formatter.check(format, value);\n result._difficulty = ((difficulty == null) ? null: BigNumber.from(difficulty));\n return result;\n }\n\n block(value: any): Block {\n return this._block(value, this.formats.block);\n }\n\n blockWithTransactions(value: any): Block {\n return this._block(value, this.formats.blockWithTransactions);\n }\n\n // Strict! Used on input.\n transactionRequest(value: any): any {\n return Formatter.check(this.formats.transactionRequest, value);\n }\n\n transactionResponse(transaction: any): TransactionResponse {\n\n // Rename gas to gasLimit\n if (transaction.gas != null && transaction.gasLimit == null) {\n transaction.gasLimit = transaction.gas;\n }\n\n // Some clients (TestRPC) do strange things like return 0x0 for the\n // 0 address; correct this to be a real address\n if (transaction.to && BigNumber.from(transaction.to).isZero()) {\n transaction.to = \"0x0000000000000000000000000000000000000000\";\n }\n\n // Rename input to data\n if (transaction.input != null && transaction.data == null) {\n transaction.data = transaction.input;\n }\n\n // If to and creates are empty, populate the creates from the transaction\n if (transaction.to == null && transaction.creates == null) {\n transaction.creates = this.contractAddress(transaction);\n }\n\n if ((transaction.type === 1 || transaction.type === 2)&& transaction.accessList == null) {\n transaction.accessList = [ ];\n }\n\n const result: TransactionResponse = Formatter.check(this.formats.transaction, transaction);\n\n if (transaction.chainId != null) {\n let chainId = transaction.chainId;\n\n if (isHexString(chainId)) {\n chainId = BigNumber.from(chainId).toNumber();\n }\n\n result.chainId = chainId;\n\n } else {\n let chainId = transaction.networkId;\n\n // geth-etc returns chainId\n if (chainId == null && result.v == null) {\n chainId = transaction.chainId;\n }\n\n if (isHexString(chainId)) {\n chainId = BigNumber.from(chainId).toNumber();\n }\n\n if (typeof(chainId) !== \"number\" && result.v != null) {\n chainId = (result.v - 35) / 2;\n if (chainId < 0) { chainId = 0; }\n chainId = parseInt(chainId);\n }\n\n if (typeof(chainId) !== \"number\") { chainId = 0; }\n\n result.chainId = chainId;\n }\n\n // 0x0000... should actually be null\n if (result.blockHash && result.blockHash.replace(/0/g, \"\") === \"x\") {\n result.blockHash = null;\n }\n\n return result;\n }\n\n transaction(value: any): any {\n return parseTransaction(value);\n }\n\n receiptLog(value: any): any {\n return Formatter.check(this.formats.receiptLog, value);\n }\n\n receipt(value: any): TransactionReceipt {\n const result: TransactionReceipt = Formatter.check(this.formats.receipt, value);\n\n // RSK incorrectly implemented EIP-658, so we munge things a bit here for it\n if (result.root != null) {\n if (result.root.length <= 4) {\n // Could be 0x00, 0x0, 0x01 or 0x1\n const value = BigNumber.from(result.root).toNumber();\n if (value === 0 || value === 1) {\n // Make sure if both are specified, they match\n if (result.status != null && (result.status !== value)) {\n logger.throwArgumentError(\"alt-root-status/status mismatch\", \"value\", { root: result.root, status: result.status });\n }\n result.status = value;\n delete result.root;\n } else {\n logger.throwArgumentError(\"invalid alt-root-status\", \"value.root\", result.root);\n }\n } else if (result.root.length !== 66) {\n // Must be a valid bytes32\n logger.throwArgumentError(\"invalid root hash\", \"value.root\", result.root);\n }\n }\n\n if (result.status != null) {\n result.byzantium = true;\n }\n\n return result;\n }\n\n topics(value: any): any {\n if (Array.isArray(value)) {\n return value.map((v) => this.topics(v));\n\n } else if (value != null) {\n return this.hash(value, true);\n }\n\n return null;\n }\n\n filter(value: any): any {\n return Formatter.check(this.formats.filter, value);\n }\n\n filterLog(value: any): any {\n return Formatter.check(this.formats.filterLog, value);\n }\n\n static check(format: { [ name: string ]: FormatFunc }, object: any): any {\n const result: any = {};\n for (const key in format) {\n try {\n const value = format[key](object[key]);\n if (value !== undefined) { result[key] = value; }\n } catch (error) {\n error.checkKey = key;\n error.checkValue = object[key];\n throw error;\n }\n }\n return result;\n }\n\n // if value is null-ish, nullValue is returned\n static allowNull(format: FormatFunc, nullValue?: any): FormatFunc {\n return (function(value: any) {\n if (value == null) { return nullValue; }\n return format(value);\n });\n }\n\n // If value is false-ish, replaceValue is returned\n static allowFalsish(format: FormatFunc, replaceValue: any): FormatFunc {\n return (function(value: any) {\n if (!value) { return replaceValue; }\n return format(value);\n });\n }\n\n // Requires an Array satisfying check\n static arrayOf(format: FormatFunc): FormatFunc {\n return (function(array: any): Array {\n if (!Array.isArray(array)) { throw new Error(\"not an array\"); }\n\n const result: any = [];\n\n array.forEach(function(value) {\n result.push(format(value));\n });\n\n return result;\n });\n }\n}\n\nexport interface CommunityResourcable {\n isCommunityResource(): boolean;\n}\n\nexport function isCommunityResourcable(value: any): value is CommunityResourcable {\n return (value && typeof(value.isCommunityResource) === \"function\");\n}\n\nexport function isCommunityResource(value: any): boolean {\n return (isCommunityResourcable(value) && value.isCommunityResource());\n}\n\n// Show the throttle message only once\nlet throttleMessage = false;\nexport function showThrottleMessage() {\n if (throttleMessage) { return; }\n throttleMessage = true;\n\n console.log(\"========= NOTICE =========\")\n console.log(\"Request-Rate Exceeded (this message will not be repeated)\");\n console.log(\"\");\n console.log(\"The default API keys for each service are provided as a highly-throttled,\");\n console.log(\"community resource for low-traffic projects and early prototyping.\");\n console.log(\"\");\n console.log(\"While your application will continue to function, we highly recommended\");\n console.log(\"signing up for your own API keys to improve performance, increase your\");\n console.log(\"request rate/limit and enable other perks, such as metrics and advanced APIs.\");\n console.log(\"\");\n console.log(\"For more details: https:/\\/docs.ethers.io/api-keys/\");\n console.log(\"==========================\");\n}\n\n", "\"use strict\";\n\nimport {\n Block, BlockTag, BlockWithTransactions, EventType, Filter, FilterByBlockHash, ForkEvent,\n Listener, Log, Provider, TransactionReceipt, TransactionRequest, TransactionResponse\n} from \"@ethersproject/abstract-provider\";\nimport { encode as base64Encode } from \"@ethersproject/base64\";\nimport { Base58 } from \"@ethersproject/basex\";\nimport { BigNumber, BigNumberish } from \"@ethersproject/bignumber\";\nimport { arrayify, BytesLike, concat, hexConcat, hexDataLength, hexDataSlice, hexlify, hexValue, hexZeroPad, isHexString } from \"@ethersproject/bytes\";\nimport { HashZero } from \"@ethersproject/constants\";\nimport { dnsEncode, namehash } from \"@ethersproject/hash\";\nimport { getNetwork, Network, Networkish } from \"@ethersproject/networks\";\nimport { Deferrable, defineReadOnly, getStatic, resolveProperties } from \"@ethersproject/properties\";\nimport { Transaction } from \"@ethersproject/transactions\";\nimport { sha256 } from \"@ethersproject/sha2\";\nimport { toUtf8Bytes, toUtf8String } from \"@ethersproject/strings\";\nimport { fetchJson, poll } from \"@ethersproject/web\";\n\nimport bech32 from \"bech32\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\nimport { Formatter } from \"./formatter\";\n\nconst MAX_CCIP_REDIRECTS = 10;\n\n//////////////////////////////\n// Event Serializeing\n\nfunction checkTopic(topic: string): string {\n if (topic == null) { return \"null\"; }\n if (hexDataLength(topic) !== 32) {\n logger.throwArgumentError(\"invalid topic\", \"topic\", topic);\n }\n return topic.toLowerCase();\n}\n\nfunction serializeTopics(topics: Array>): string {\n // Remove trailing null AND-topics; they are redundant\n topics = topics.slice();\n while (topics.length > 0 && topics[topics.length - 1] == null) { topics.pop(); }\n\n return topics.map((topic) => {\n if (Array.isArray(topic)) {\n\n // Only track unique OR-topics\n const unique: { [ topic: string ]: boolean } = { }\n topic.forEach((topic) => {\n unique[checkTopic(topic)] = true;\n });\n\n // The order of OR-topics does not matter\n const sorted = Object.keys(unique);\n sorted.sort();\n\n return sorted.join(\"|\");\n\n } else {\n return checkTopic(topic);\n }\n }).join(\"&\");\n}\n\nfunction deserializeTopics(data: string): Array> {\n if (data === \"\") { return [ ]; }\n\n return data.split(/&/g).map((topic) => {\n if (topic === \"\") { return [ ]; }\n\n const comps = topic.split(\"|\").map((topic) => {\n return ((topic === \"null\") ? null: topic);\n });\n\n return ((comps.length === 1) ? comps[0]: comps);\n });\n}\n\nfunction getEventTag(eventName: EventType): string {\n if (typeof(eventName) === \"string\") {\n eventName = eventName.toLowerCase();\n\n if (hexDataLength(eventName) === 32) {\n return \"tx:\" + eventName;\n }\n\n if (eventName.indexOf(\":\") === -1) {\n return eventName;\n }\n\n } else if (Array.isArray(eventName)) {\n return \"filter:*:\" + serializeTopics(eventName);\n\n } else if (ForkEvent.isForkEvent(eventName)) {\n logger.warn(\"not implemented\");\n throw new Error(\"not implemented\");\n\n } else if (eventName && typeof(eventName) === \"object\") {\n return \"filter:\" + (eventName.address || \"*\") + \":\" + serializeTopics(eventName.topics || []);\n }\n\n throw new Error(\"invalid event - \" + eventName);\n}\n\n//////////////////////////////\n// Helper Object\n\nfunction getTime() {\n return (new Date()).getTime();\n}\n\nfunction stall(duration: number): Promise {\n return new Promise((resolve) => {\n setTimeout(resolve, duration);\n });\n}\n\n//////////////////////////////\n// Provider Object\n\n\n/**\n * EventType\n * - \"block\"\n * - \"poll\"\n * - \"didPoll\"\n * - \"pending\"\n * - \"error\"\n * - \"network\"\n * - filter\n * - topics array\n * - transaction hash\n */\n\nconst PollableEvents = [ \"block\", \"network\", \"pending\", \"poll\" ];\n\nexport class Event {\n readonly listener: Listener;\n readonly once: boolean;\n readonly tag: string;\n\n _lastBlockNumber: number\n _inflight: boolean;\n\n constructor(tag: string, listener: Listener, once: boolean) {\n defineReadOnly(this, \"tag\", tag);\n defineReadOnly(this, \"listener\", listener);\n defineReadOnly(this, \"once\", once);\n\n this._lastBlockNumber = -2;\n this._inflight = false;\n }\n\n get event(): EventType {\n switch (this.type) {\n case \"tx\":\n return this.hash;\n case \"filter\":\n return this.filter;\n }\n return this.tag;\n }\n\n get type(): string {\n return this.tag.split(\":\")[0]\n }\n\n get hash(): string {\n const comps = this.tag.split(\":\");\n if (comps[0] !== \"tx\") { return null; }\n return comps[1];\n }\n\n get filter(): Filter {\n const comps = this.tag.split(\":\");\n if (comps[0] !== \"filter\") { return null; }\n const address = comps[1];\n\n const topics = deserializeTopics(comps[2]);\n const filter: Filter = { };\n\n if (topics.length > 0) { filter.topics = topics; }\n if (address && address !== \"*\") { filter.address = address; }\n\n return filter;\n }\n\n pollable(): boolean {\n return (this.tag.indexOf(\":\") >= 0 || PollableEvents.indexOf(this.tag) >= 0);\n }\n}\n\nexport interface EnsResolver {\n\n // Name this Resolver is associated with\n readonly name: string;\n\n // The address of the resolver\n readonly address: string;\n\n // Multichain address resolution (also normal address resolution)\n // See: https://eips.ethereum.org/EIPS/eip-2304\n getAddress(coinType?: 60): Promise\n\n // Contenthash field\n // See: https://eips.ethereum.org/EIPS/eip-1577\n getContentHash(): Promise;\n\n // Storage of text records\n // See: https://eips.ethereum.org/EIPS/eip-634\n getText(key: string): Promise;\n};\n\nexport interface EnsProvider {\n resolveName(name: string): Promise;\n lookupAddress(address: string): Promise;\n getResolver(name: string): Promise;\n}\n\ntype CoinInfo = {\n symbol: string,\n ilk?: string, // General family\n prefix?: string, // Bech32 prefix\n p2pkh?: number, // Pay-to-Public-Key-Hash Version\n p2sh?: number, // Pay-to-Script-Hash Version\n};\n\n// https://github.com/satoshilabs/slips/blob/master/slip-0044.md\nconst coinInfos: { [ coinType: string ]: CoinInfo } = {\n \"0\": { symbol: \"btc\", p2pkh: 0x00, p2sh: 0x05, prefix: \"bc\" },\n \"2\": { symbol: \"ltc\", p2pkh: 0x30, p2sh: 0x32, prefix: \"ltc\" },\n \"3\": { symbol: \"doge\", p2pkh: 0x1e, p2sh: 0x16 },\n \"60\": { symbol: \"eth\", ilk: \"eth\" },\n \"61\": { symbol: \"etc\", ilk: \"eth\" },\n \"700\": { symbol: \"xdai\", ilk: \"eth\" },\n};\n\nfunction bytes32ify(value: number): string {\n return hexZeroPad(BigNumber.from(value).toHexString(), 32);\n}\n\n// Compute the Base58Check encoded data (checksum is first 4 bytes of sha256d)\nfunction base58Encode(data: Uint8Array): string {\n return Base58.encode(concat([ data, hexDataSlice(sha256(sha256(data)), 0, 4) ]));\n}\n\nexport interface Avatar {\n url: string;\n linkage: Array<{ type: string, content: string }>;\n}\n\nconst matcherIpfs = new RegExp(\"^(ipfs):/\\/(.*)$\", \"i\");\nconst matchers = [\n new RegExp(\"^(https):/\\/(.*)$\", \"i\"),\n new RegExp(\"^(data):(.*)$\", \"i\"),\n matcherIpfs,\n new RegExp(\"^eip155:[0-9]+/(erc[0-9]+):(.*)$\", \"i\"),\n];\n\nfunction _parseString(result: string, start: number): null | string {\n try {\n return toUtf8String(_parseBytes(result, start));\n } catch(error) { }\n return null;\n}\n\nfunction _parseBytes(result: string, start: number): null | string {\n if (result === \"0x\") { return null; }\n\n const offset = BigNumber.from(hexDataSlice(result, start, start + 32)).toNumber();\n const length = BigNumber.from(hexDataSlice(result, offset, offset + 32)).toNumber();\n\n return hexDataSlice(result, offset + 32, offset + 32 + length);\n}\n\n// Trim off the ipfs:// prefix and return the default gateway URL\nfunction getIpfsLink(link: string): string {\n if (link.match(/^ipfs:\\/\\/ipfs\\//i)) {\n link = link.substring(12);\n } else if (link.match(/^ipfs:\\/\\//i)) {\n link = link.substring(7);\n } else {\n logger.throwArgumentError(\"unsupported IPFS format\", \"link\", link);\n }\n\n return `https:/\\/gateway.ipfs.io/ipfs/${ link }`;\n}\n\nfunction numPad(value: number): Uint8Array {\n const result = arrayify(value);\n if (result.length > 32) { throw new Error(\"internal; should not happen\"); }\n\n const padded = new Uint8Array(32);\n padded.set(result, 32 - result.length);\n return padded;\n}\n\nfunction bytesPad(value: Uint8Array): Uint8Array {\n if ((value.length % 32) === 0) { return value; }\n\n const result = new Uint8Array(Math.ceil(value.length / 32) * 32);\n result.set(value);\n return result;\n}\n\n// ABI Encodes a series of (bytes, bytes, ...)\nfunction encodeBytes(datas: Array) {\n const result: Array = [ ];\n\n let byteCount = 0;\n\n // Add place-holders for pointers as we add items\n for (let i = 0; i < datas.length; i++) {\n result.push(null);\n byteCount += 32;\n }\n\n for (let i = 0; i < datas.length; i++) {\n const data = arrayify(datas[i]);\n\n // Update the bytes offset\n result[i] = numPad(byteCount);\n\n // The length and padded value of data\n result.push(numPad(data.length));\n result.push(bytesPad(data));\n byteCount += 32 + Math.ceil(data.length / 32) * 32;\n }\n\n return hexConcat(result);\n}\n\nexport class Resolver implements EnsResolver {\n readonly provider: BaseProvider;\n\n readonly name: string;\n readonly address: string;\n\n readonly _resolvedAddress: null | string;\n\n // For EIP-2544 names, the ancestor that provided the resolver\n _supportsEip2544: null | Promise;\n\n // The resolvedAddress is only for creating a ReverseLookup resolver\n constructor(provider: BaseProvider, address: string, name: string, resolvedAddress?: string) {\n defineReadOnly(this, \"provider\", provider);\n defineReadOnly(this, \"name\", name);\n defineReadOnly(this, \"address\", provider.formatter.address(address));\n defineReadOnly(this, \"_resolvedAddress\", resolvedAddress);\n }\n\n supportsWildcard(): Promise {\n if (!this._supportsEip2544) {\n // supportsInterface(bytes4 = selector(\"resolve(bytes,bytes)\"))\n this._supportsEip2544 = this.provider.call({\n to: this.address,\n data: \"0x01ffc9a79061b92300000000000000000000000000000000000000000000000000000000\"\n }).then((result) => {\n return BigNumber.from(result).eq(1);\n }).catch((error) => {\n if (error.code === Logger.errors.CALL_EXCEPTION) { return false; }\n // Rethrow the error: link is down, etc. Let future attempts retry.\n this._supportsEip2544 = null;\n throw error;\n });\n }\n\n return this._supportsEip2544;\n }\n\n async _fetch(selector: string, parameters?: string): Promise {\n\n // e.g. keccak256(\"addr(bytes32,uint256)\")\n const tx = {\n to: this.address,\n ccipReadEnabled: true,\n data: hexConcat([ selector, namehash(this.name), (parameters || \"0x\") ])\n };\n\n // Wildcard support; use EIP-2544 to resolve the request\n let parseBytes = false;\n if (await this.supportsWildcard()) {\n parseBytes = true;\n\n // selector(\"resolve(bytes,bytes)\")\n tx.data = hexConcat([ \"0x9061b923\", encodeBytes([ dnsEncode(this.name), tx.data ]) ]);\n }\n\n try {\n let result = await this.provider.call(tx);\n if ((arrayify(result).length % 32) === 4) {\n logger.throwError(\"resolver threw error\", Logger.errors.CALL_EXCEPTION, {\n transaction: tx, data: result\n });\n }\n if (parseBytes) { result = _parseBytes(result, 0); }\n return result;\n } catch (error) {\n if (error.code === Logger.errors.CALL_EXCEPTION) { return null; }\n throw error;\n }\n }\n\n async _fetchBytes(selector: string, parameters?: string): Promise {\n const result = await this._fetch(selector, parameters);\n if (result != null) { return _parseBytes(result, 0); }\n return null;\n }\n\n _getAddress(coinType: number, hexBytes: string): string {\n const coinInfo = coinInfos[String(coinType)];\n\n if (coinInfo == null) {\n logger.throwError(`unsupported coin type: ${ coinType }`, Logger.errors.UNSUPPORTED_OPERATION, {\n operation: `getAddress(${ coinType })`\n });\n }\n\n if (coinInfo.ilk === \"eth\") {\n return this.provider.formatter.address(hexBytes);\n }\n\n const bytes = arrayify(hexBytes);\n\n // P2PKH: OP_DUP OP_HASH160 OP_EQUALVERIFY OP_CHECKSIG\n if (coinInfo.p2pkh != null) {\n const p2pkh = hexBytes.match(/^0x76a9([0-9a-f][0-9a-f])([0-9a-f]*)88ac$/);\n if (p2pkh) {\n const length = parseInt(p2pkh[1], 16);\n if (p2pkh[2].length === length * 2 && length >= 1 && length <= 75) {\n return base58Encode(concat([ [ coinInfo.p2pkh ], (\"0x\" + p2pkh[2]) ]));\n }\n }\n }\n\n // P2SH: OP_HASH160 OP_EQUAL\n if (coinInfo.p2sh != null) {\n const p2sh = hexBytes.match(/^0xa9([0-9a-f][0-9a-f])([0-9a-f]*)87$/);\n if (p2sh) {\n const length = parseInt(p2sh[1], 16);\n if (p2sh[2].length === length * 2 && length >= 1 && length <= 75) {\n return base58Encode(concat([ [ coinInfo.p2sh ], (\"0x\" + p2sh[2]) ]));\n }\n }\n }\n\n // Bech32\n if (coinInfo.prefix != null) {\n const length = bytes[1];\n\n // https://github.com/bitcoin/bips/blob/master/bip-0141.mediawiki#witness-program\n let version = bytes[0];\n if (version === 0x00) {\n if (length !== 20 && length !== 32) {\n version = -1;\n }\n } else {\n version = -1;\n }\n\n if (version >= 0 && bytes.length === 2 + length && length >= 1 && length <= 75) {\n const words = bech32.toWords(bytes.slice(2));\n words.unshift(version);\n return bech32.encode(coinInfo.prefix, words);\n }\n }\n\n return null;\n }\n\n\n async getAddress(coinType?: number): Promise {\n if (coinType == null) { coinType = 60; }\n\n // If Ethereum, use the standard `addr(bytes32)`\n if (coinType === 60) {\n try {\n // keccak256(\"addr(bytes32)\")\n const result = await this._fetch(\"0x3b3b57de\");\n\n // No address\n if (result === \"0x\" || result === HashZero) { return null; }\n\n return this.provider.formatter.callAddress(result);\n } catch (error) {\n if (error.code === Logger.errors.CALL_EXCEPTION) { return null; }\n throw error;\n }\n }\n\n // keccak256(\"addr(bytes32,uint256\")\n const hexBytes = await this._fetchBytes(\"0xf1cb7e06\", bytes32ify(coinType));\n\n // No address\n if (hexBytes == null || hexBytes === \"0x\") { return null; }\n\n // Compute the address\n const address = this._getAddress(coinType, hexBytes);\n\n if (address == null) {\n logger.throwError(`invalid or unsupported coin data`, Logger.errors.UNSUPPORTED_OPERATION, {\n operation: `getAddress(${ coinType })`,\n coinType: coinType,\n data: hexBytes\n });\n }\n\n return address;\n }\n\n async getAvatar(): Promise {\n const linkage: Array<{ type: string, content: string }> = [ { type: \"name\", content: this.name } ];\n try {\n // test data for ricmoo.eth\n //const avatar = \"eip155:1/erc721:0x265385c7f4132228A0d54EB1A9e7460b91c0cC68/29233\";\n const avatar = await this.getText(\"avatar\");\n if (avatar == null) { return null; }\n\n for (let i = 0; i < matchers.length; i++) {\n const match = avatar.match(matchers[i]);\n if (match == null) { continue; }\n\n const scheme = match[1].toLowerCase();\n\n switch (scheme) {\n case \"https\":\n linkage.push({ type: \"url\", content: avatar });\n return { linkage, url: avatar };\n\n case \"data\":\n linkage.push({ type: \"data\", content: avatar });\n return { linkage, url: avatar };\n\n case \"ipfs\":\n linkage.push({ type: \"ipfs\", content: avatar });\n return { linkage, url: getIpfsLink(avatar) };\n\n case \"erc721\":\n case \"erc1155\": {\n // Depending on the ERC type, use tokenURI(uint256) or url(uint256)\n const selector = (scheme === \"erc721\") ? \"0xc87b56dd\": \"0x0e89341c\";\n linkage.push({ type: scheme, content: avatar });\n\n // The owner of this name\n const owner = (this._resolvedAddress || await this.getAddress());\n\n const comps = (match[2] || \"\").split(\"/\");\n if (comps.length !== 2) { return null; }\n\n const addr = await this.provider.formatter.address(comps[0]);\n const tokenId = hexZeroPad(BigNumber.from(comps[1]).toHexString(), 32);\n\n // Check that this account owns the token\n if (scheme === \"erc721\") {\n // ownerOf(uint256 tokenId)\n const tokenOwner = this.provider.formatter.callAddress(await this.provider.call({\n to: addr, data: hexConcat([ \"0x6352211e\", tokenId ])\n }));\n if (owner !== tokenOwner) { return null; }\n linkage.push({ type: \"owner\", content: tokenOwner });\n\n } else if (scheme === \"erc1155\") {\n // balanceOf(address owner, uint256 tokenId)\n const balance = BigNumber.from(await this.provider.call({\n to: addr, data: hexConcat([ \"0x00fdd58e\", hexZeroPad(owner, 32), tokenId ])\n }));\n if (balance.isZero()) { return null; }\n linkage.push({ type: \"balance\", content: balance.toString() });\n }\n\n // Call the token contract for the metadata URL\n const tx = {\n to: this.provider.formatter.address(comps[0]),\n data: hexConcat([ selector, tokenId ])\n };\n\n let metadataUrl = _parseString(await this.provider.call(tx), 0);\n if (metadataUrl == null) { return null; }\n linkage.push({ type: \"metadata-url-base\", content: metadataUrl });\n\n // ERC-1155 allows a generic {id} in the URL\n if (scheme === \"erc1155\") {\n metadataUrl = metadataUrl.replace(\"{id}\", tokenId.substring(2));\n linkage.push({ type: \"metadata-url-expanded\", content: metadataUrl });\n }\n\n // Transform IPFS metadata links\n if (metadataUrl.match(/^ipfs:/i)) {\n metadataUrl = getIpfsLink(metadataUrl);\n }\n\n linkage.push({ type: \"metadata-url\", content: metadataUrl });\n\n // Get the token metadata\n const metadata = await fetchJson(metadataUrl);\n if (!metadata) { return null; }\n linkage.push({ type: \"metadata\", content: JSON.stringify(metadata) });\n\n // Pull the image URL out\n let imageUrl = metadata.image;\n if (typeof(imageUrl) !== \"string\") { return null; }\n\n if (imageUrl.match(/^(https:\\/\\/|data:)/i)) {\n // Allow\n } else {\n // Transform IPFS link to gateway\n const ipfs = imageUrl.match(matcherIpfs);\n if (ipfs == null) { return null; }\n\n linkage.push({ type: \"url-ipfs\", content: imageUrl });\n imageUrl = getIpfsLink(imageUrl);\n }\n\n linkage.push({ type: \"url\", content: imageUrl });\n\n return { linkage, url: imageUrl };\n }\n }\n }\n } catch (error) { }\n\n return null;\n }\n\n async getContentHash(): Promise {\n\n // keccak256(\"contenthash()\")\n const hexBytes = await this._fetchBytes(\"0xbc1c58d1\");\n\n // No contenthash\n if (hexBytes == null || hexBytes === \"0x\") { return null; }\n\n // IPFS (CID: 1, Type: DAG-PB)\n const ipfs = hexBytes.match(/^0xe3010170(([0-9a-f][0-9a-f])([0-9a-f][0-9a-f])([0-9a-f]*))$/);\n if (ipfs) {\n const length = parseInt(ipfs[3], 16);\n if (ipfs[4].length === length * 2) {\n return \"ipfs:/\\/\" + Base58.encode(\"0x\" + ipfs[1]);\n }\n }\n\n // IPNS (CID: 1, Type: libp2p-key)\n const ipns = hexBytes.match(/^0xe5010172(([0-9a-f][0-9a-f])([0-9a-f][0-9a-f])([0-9a-f]*))$/);\n if (ipns) {\n const length = parseInt(ipns[3], 16);\n if (ipns[4].length === length * 2) {\n return \"ipns:/\\/\" + Base58.encode(\"0x\" + ipns[1]);\n }\n }\n\n // Swarm (CID: 1, Type: swarm-manifest; hash/length hard-coded to keccak256/32)\n const swarm = hexBytes.match(/^0xe40101fa011b20([0-9a-f]*)$/)\n if (swarm) {\n if (swarm[1].length === (32 * 2)) {\n return \"bzz:/\\/\" + swarm[1]\n }\n }\n\n const skynet = hexBytes.match(/^0x90b2c605([0-9a-f]*)$/);\n if (skynet) {\n if (skynet[1].length === (34 * 2)) {\n // URL Safe base64; https://datatracker.ietf.org/doc/html/rfc4648#section-5\n const urlSafe: Record = { \"=\": \"\", \"+\": \"-\", \"/\": \"_\" };\n const hash = base64Encode(\"0x\" + skynet[1]).replace(/[=+\\/]/g, (a) => (urlSafe[a]));\n return \"sia:/\\/\" + hash;\n }\n }\n\n return logger.throwError(`invalid or unsupported content hash data`, Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"getContentHash()\",\n data: hexBytes\n });\n }\n\n async getText(key: string): Promise {\n\n // The key encoded as parameter to fetchBytes\n let keyBytes = toUtf8Bytes(key);\n\n // The nodehash consumes the first slot, so the string pointer targets\n // offset 64, with the length at offset 64 and data starting at offset 96\n keyBytes = concat([ bytes32ify(64), bytes32ify(keyBytes.length), keyBytes ]);\n\n // Pad to word-size (32 bytes)\n if ((keyBytes.length % 32) !== 0) {\n keyBytes = concat([ keyBytes, hexZeroPad(\"0x\", 32 - (key.length % 32)) ])\n }\n\n const hexBytes = await this._fetchBytes(\"0x59d1d43c\", hexlify(keyBytes));\n if (hexBytes == null || hexBytes === \"0x\") { return null; }\n\n return toUtf8String(hexBytes);\n }\n}\n\nlet defaultFormatter: Formatter = null;\n\nlet nextPollId = 1;\n\nexport class BaseProvider extends Provider implements EnsProvider {\n _networkPromise: Promise;\n _network: Network;\n\n _events: Array;\n\n formatter: Formatter;\n\n // To help mitigate the eventually consistent nature of the blockchain\n // we keep a mapping of events we emit. If we emit an event X, we expect\n // that a user should be able to query for that event in the callback,\n // if the node returns null, we stall the response until we get back a\n // meaningful value, since we may be hitting a re-org, or a node that\n // has not indexed the event yet.\n // Events:\n // - t:{hash} - Transaction hash\n // - b:{hash} - BlockHash\n // - block - The most recent emitted block\n _emitted: { [ eventName: string ]: number | \"pending\" };\n\n _pollingInterval: number;\n _poller: NodeJS.Timer;\n _bootstrapPoll: NodeJS.Timer;\n\n _lastBlockNumber: number;\n _maxFilterBlockRange: number;\n\n _fastBlockNumber: number;\n _fastBlockNumberPromise: Promise;\n _fastQueryDate: number;\n\n _maxInternalBlockNumber: number;\n _internalBlockNumber: Promise<{ blockNumber: number, reqTime: number, respTime: number }>;\n\n readonly anyNetwork: boolean;\n\n disableCcipRead: boolean;\n\n\n /**\n * ready\n *\n * A Promise that resolves only once the provider is ready.\n *\n * Sub-classes that call the super with a network without a chainId\n * MUST set this. Standard named networks have a known chainId.\n *\n */\n\n constructor(network: Networkish | Promise) {\n super();\n\n // Events being listened to\n this._events = [];\n\n this._emitted = { block: -2 };\n\n this.disableCcipRead = false;\n\n this.formatter = new.target.getFormatter();\n\n // If network is any, this Provider allows the underlying\n // network to change dynamically, and we auto-detect the\n // current network\n defineReadOnly(this, \"anyNetwork\", (network === \"any\"));\n if (this.anyNetwork) { network = this.detectNetwork(); }\n\n if (network instanceof Promise) {\n this._networkPromise = network;\n\n // Squash any \"unhandled promise\" errors; that do not need to be handled\n network.catch((error) => { });\n\n // Trigger initial network setting (async)\n this._ready().catch((error) => { });\n\n } else {\n const knownNetwork = getStatic<(network: Networkish) => Network>(new.target, \"getNetwork\")(network);\n if (knownNetwork) {\n defineReadOnly(this, \"_network\", knownNetwork);\n this.emit(\"network\", knownNetwork, null);\n\n } else {\n logger.throwArgumentError(\"invalid network\", \"network\", network);\n }\n }\n\n this._maxInternalBlockNumber = -1024;\n\n this._lastBlockNumber = -2;\n this._maxFilterBlockRange = 10;\n\n this._pollingInterval = 4000;\n\n this._fastQueryDate = 0;\n }\n\n async _ready(): Promise {\n if (this._network == null) {\n let network: Network = null;\n if (this._networkPromise) {\n try {\n network = await this._networkPromise;\n } catch (error) { }\n }\n\n // Try the Provider's network detection (this MUST throw if it cannot)\n if (network == null) {\n network = await this.detectNetwork();\n }\n\n // This should never happen; every Provider sub-class should have\n // suggested a network by here (or have thrown).\n if (!network) {\n logger.throwError(\"no network detected\", Logger.errors.UNKNOWN_ERROR, { });\n }\n\n // Possible this call stacked so do not call defineReadOnly again\n if (this._network == null) {\n if (this.anyNetwork) {\n this._network = network;\n } else {\n defineReadOnly(this, \"_network\", network);\n }\n this.emit(\"network\", network, null);\n }\n }\n\n return this._network;\n }\n\n // This will always return the most recently established network.\n // For \"any\", this can change (a \"network\" event is emitted before\n // any change is reflected); otherwise this cannot change\n get ready(): Promise {\n return poll(() => {\n return this._ready().then((network) => {\n return network;\n }, (error) => {\n // If the network isn't running yet, we will wait\n if (error.code === Logger.errors.NETWORK_ERROR && error.event === \"noNetwork\") {\n return undefined;\n }\n throw error;\n });\n });\n }\n\n // @TODO: Remove this and just create a singleton formatter\n static getFormatter(): Formatter {\n if (defaultFormatter == null) {\n defaultFormatter = new Formatter();\n }\n return defaultFormatter;\n }\n\n // @TODO: Remove this and just use getNetwork\n static getNetwork(network: Networkish): Network {\n return getNetwork((network == null) ? \"homestead\": network);\n }\n\n async ccipReadFetch(tx: Transaction, calldata: string, urls: Array): Promise {\n if (this.disableCcipRead || urls.length === 0) { return null; }\n\n const sender = tx.to.toLowerCase();\n const data = calldata.toLowerCase();\n\n const errorMessages: Array = [ ];\n\n for (let i = 0; i < urls.length; i++) {\n const url = urls[i];\n\n // URL expansion\n const href = url.replace(\"{sender}\", sender).replace(\"{data}\", data);\n\n // If no {data} is present, use POST; otherwise GET\n const json: string | null = (url.indexOf(\"{data}\") >= 0) ? null: JSON.stringify({ data, sender });\n\n const result = await fetchJson({ url: href, errorPassThrough: true }, json, (value, response) => {\n value.status = response.statusCode;\n return value;\n });\n\n if (result.data) { return result.data; }\n\n const errorMessage = (result.message || \"unknown error\");\n\n // 4xx indicates the result is not present; stop\n if (result.status >= 400 && result.status < 500) {\n return logger.throwError(`response not found during CCIP fetch: ${ errorMessage }`, Logger.errors.SERVER_ERROR, { url, errorMessage });\n }\n\n // 5xx indicates server issue; try the next url\n errorMessages.push(errorMessage);\n }\n\n return logger.throwError(`error encountered during CCIP fetch: ${ errorMessages.map((m) => JSON.stringify(m)).join(\", \") }`, Logger.errors.SERVER_ERROR, {\n urls, errorMessages\n });\n }\n\n // Fetches the blockNumber, but will reuse any result that is less\n // than maxAge old or has been requested since the last request\n async _getInternalBlockNumber(maxAge: number): Promise {\n await this._ready();\n\n // Allowing stale data up to maxAge old\n if (maxAge > 0) {\n\n // While there are pending internal block requests...\n while (this._internalBlockNumber) {\n\n // ...\"remember\" which fetch we started with\n const internalBlockNumber = this._internalBlockNumber;\n\n try {\n // Check the result is not too stale\n const result = await internalBlockNumber;\n if ((getTime() - result.respTime) <= maxAge) {\n return result.blockNumber;\n }\n\n // Too old; fetch a new value\n break;\n\n } catch(error) {\n\n // The fetch rejected; if we are the first to get the\n // rejection, drop through so we replace it with a new\n // fetch; all others blocked will then get that fetch\n // which won't match the one they \"remembered\" and loop\n if (this._internalBlockNumber === internalBlockNumber) {\n break;\n }\n }\n }\n }\n\n const reqTime = getTime();\n\n const checkInternalBlockNumber = resolveProperties({\n blockNumber: this.perform(\"getBlockNumber\", { }),\n networkError: this.getNetwork().then((network) => (null), (error) => (error))\n }).then(({ blockNumber, networkError }) => {\n if (networkError) {\n // Unremember this bad internal block number\n if (this._internalBlockNumber === checkInternalBlockNumber) {\n this._internalBlockNumber = null;\n }\n throw networkError;\n }\n\n const respTime = getTime();\n\n blockNumber = BigNumber.from(blockNumber).toNumber();\n if (blockNumber < this._maxInternalBlockNumber) { blockNumber = this._maxInternalBlockNumber; }\n\n this._maxInternalBlockNumber = blockNumber;\n this._setFastBlockNumber(blockNumber); // @TODO: Still need this?\n return { blockNumber, reqTime, respTime };\n });\n\n this._internalBlockNumber = checkInternalBlockNumber;\n\n // Swallow unhandled exceptions; if needed they are handled else where\n checkInternalBlockNumber.catch((error) => {\n // Don't null the dead (rejected) fetch, if it has already been updated\n if (this._internalBlockNumber === checkInternalBlockNumber) {\n this._internalBlockNumber = null;\n }\n });\n\n return (await checkInternalBlockNumber).blockNumber;\n }\n\n async poll(): Promise {\n const pollId = nextPollId++;\n\n // Track all running promises, so we can trigger a post-poll once they are complete\n const runners: Array> = [];\n\n let blockNumber: number = null;\n try {\n blockNumber = await this._getInternalBlockNumber(100 + this.pollingInterval / 2);\n } catch (error) {\n this.emit(\"error\", error);\n return;\n }\n this._setFastBlockNumber(blockNumber);\n\n // Emit a poll event after we have the latest (fast) block number\n this.emit(\"poll\", pollId, blockNumber);\n\n // If the block has not changed, meh.\n if (blockNumber === this._lastBlockNumber) {\n this.emit(\"didPoll\", pollId);\n return;\n }\n\n // First polling cycle, trigger a \"block\" events\n if (this._emitted.block === -2) {\n this._emitted.block = blockNumber - 1;\n }\n\n if (Math.abs(((this._emitted.block)) - blockNumber) > 1000) {\n logger.warn(`network block skew detected; skipping block events (emitted=${ this._emitted.block } blockNumber${ blockNumber })`);\n this.emit(\"error\", logger.makeError(\"network block skew detected\", Logger.errors.NETWORK_ERROR, {\n blockNumber: blockNumber,\n event: \"blockSkew\",\n previousBlockNumber: this._emitted.block\n }));\n this.emit(\"block\", blockNumber);\n\n } else {\n // Notify all listener for each block that has passed\n for (let i = (this._emitted.block) + 1; i <= blockNumber; i++) {\n this.emit(\"block\", i);\n }\n }\n\n // The emitted block was updated, check for obsolete events\n if ((this._emitted.block) !== blockNumber) {\n this._emitted.block = blockNumber;\n\n Object.keys(this._emitted).forEach((key) => {\n // The block event does not expire\n if (key === \"block\") { return; }\n\n // The block we were at when we emitted this event\n const eventBlockNumber = this._emitted[key];\n\n // We cannot garbage collect pending transactions or blocks here\n // They should be garbage collected by the Provider when setting\n // \"pending\" events\n if (eventBlockNumber === \"pending\") { return; }\n\n // Evict any transaction hashes or block hashes over 12 blocks\n // old, since they should not return null anyways\n if (blockNumber - eventBlockNumber > 12) {\n delete this._emitted[key];\n }\n });\n }\n\n // First polling cycle\n if (this._lastBlockNumber === -2) {\n this._lastBlockNumber = blockNumber - 1;\n }\n // Find all transaction hashes we are waiting on\n this._events.forEach((event) => {\n switch (event.type) {\n case \"tx\": {\n const hash = event.hash;\n let runner = this.getTransactionReceipt(hash).then((receipt) => {\n if (!receipt || receipt.blockNumber == null) { return null; }\n this._emitted[\"t:\" + hash] = receipt.blockNumber;\n this.emit(hash, receipt);\n return null;\n }).catch((error: Error) => { this.emit(\"error\", error); });\n\n runners.push(runner);\n\n break;\n }\n\n case \"filter\": {\n // We only allow a single getLogs to be in-flight at a time\n if (!event._inflight) {\n event._inflight = true;\n\n // This is the first filter for this event, so we want to\n // restrict events to events that happened no earlier than now\n if (event._lastBlockNumber === -2) {\n event._lastBlockNumber = blockNumber - 1;\n }\n\n // Filter from the last *known* event; due to load-balancing\n // and some nodes returning updated block numbers before\n // indexing events, a logs result with 0 entries cannot be\n // trusted and we must retry a range which includes it again\n const filter = event.filter;\n filter.fromBlock = event._lastBlockNumber + 1;\n filter.toBlock = blockNumber;\n\n // Prevent fitler ranges from growing too wild, since it is quite\n // likely there just haven't been any events to move the lastBlockNumber.\n const minFromBlock = filter.toBlock - this._maxFilterBlockRange;\n if (minFromBlock > filter.fromBlock) { filter.fromBlock = minFromBlock; }\n\n if (filter.fromBlock < 0) { filter.fromBlock = 0; }\n\n const runner = this.getLogs(filter).then((logs) => {\n // Allow the next getLogs\n event._inflight = false;\n\n if (logs.length === 0) { return; }\n\n logs.forEach((log: Log) => {\n // Only when we get an event for a given block number\n // can we trust the events are indexed\n if (log.blockNumber > event._lastBlockNumber) {\n event._lastBlockNumber = log.blockNumber;\n }\n\n // Make sure we stall requests to fetch blocks and txs\n this._emitted[\"b:\" + log.blockHash] = log.blockNumber;\n this._emitted[\"t:\" + log.transactionHash] = log.blockNumber;\n\n this.emit(filter, log);\n });\n }).catch((error: Error) => {\n this.emit(\"error\", error);\n\n // Allow another getLogs (the range was not updated)\n event._inflight = false;\n });\n runners.push(runner);\n }\n\n break;\n }\n }\n });\n\n this._lastBlockNumber = blockNumber;\n\n // Once all events for this loop have been processed, emit \"didPoll\"\n Promise.all(runners).then(() => {\n this.emit(\"didPoll\", pollId);\n }).catch((error) => { this.emit(\"error\", error); });\n\n return;\n }\n\n // Deprecated; do not use this\n resetEventsBlock(blockNumber: number): void {\n this._lastBlockNumber = blockNumber - 1;\n if (this.polling) { this.poll(); }\n }\n\n get network(): Network {\n return this._network;\n }\n\n // This method should query the network if the underlying network\n // can change, such as when connected to a JSON-RPC backend\n async detectNetwork(): Promise {\n return logger.throwError(\"provider does not support network detection\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"provider.detectNetwork\"\n });\n }\n\n async getNetwork(): Promise {\n const network = await this._ready();\n\n // Make sure we are still connected to the same network; this is\n // only an external call for backends which can have the underlying\n // network change spontaneously\n const currentNetwork = await this.detectNetwork();\n if (network.chainId !== currentNetwork.chainId) {\n\n // We are allowing network changes, things can get complex fast;\n // make sure you know what you are doing if you use \"any\"\n if (this.anyNetwork) {\n this._network = currentNetwork;\n\n // Reset all internal block number guards and caches\n this._lastBlockNumber = -2;\n this._fastBlockNumber = null;\n this._fastBlockNumberPromise = null;\n this._fastQueryDate = 0;\n this._emitted.block = -2;\n this._maxInternalBlockNumber = -1024;\n this._internalBlockNumber = null;\n\n // The \"network\" event MUST happen before this method resolves\n // so any events have a chance to unregister, so we stall an\n // additional event loop before returning from /this/ call\n this.emit(\"network\", currentNetwork, network);\n await stall(0);\n\n return this._network;\n }\n\n const error = logger.makeError(\"underlying network changed\", Logger.errors.NETWORK_ERROR, {\n event: \"changed\",\n network: network,\n detectedNetwork: currentNetwork\n });\n\n this.emit(\"error\", error);\n throw error;\n }\n\n return network;\n }\n\n get blockNumber(): number {\n this._getInternalBlockNumber(100 + this.pollingInterval / 2).then((blockNumber) => {\n this._setFastBlockNumber(blockNumber);\n }, (error) => { });\n\n return (this._fastBlockNumber != null) ? this._fastBlockNumber: -1;\n }\n\n get polling(): boolean {\n return (this._poller != null);\n }\n\n set polling(value: boolean) {\n if (value && !this._poller) {\n this._poller = setInterval(() => { this.poll(); }, this.pollingInterval);\n\n if (!this._bootstrapPoll) {\n this._bootstrapPoll = setTimeout(() => {\n this.poll();\n\n // We block additional polls until the polling interval\n // is done, to prevent overwhelming the poll function\n this._bootstrapPoll = setTimeout(() => {\n // If polling was disabled, something may require a poke\n // since starting the bootstrap poll and it was disabled\n if (!this._poller) { this.poll(); }\n\n // Clear out the bootstrap so we can do another\n this._bootstrapPoll = null;\n }, this.pollingInterval);\n }, 0);\n }\n\n } else if (!value && this._poller) {\n clearInterval(this._poller);\n this._poller = null;\n }\n }\n\n get pollingInterval(): number {\n return this._pollingInterval;\n }\n\n set pollingInterval(value: number) {\n if (typeof(value) !== \"number\" || value <= 0 || parseInt(String(value)) != value) {\n throw new Error(\"invalid polling interval\");\n }\n\n this._pollingInterval = value;\n\n if (this._poller) {\n clearInterval(this._poller);\n this._poller = setInterval(() => { this.poll(); }, this._pollingInterval);\n }\n }\n\n _getFastBlockNumber(): Promise {\n const now = getTime();\n\n // Stale block number, request a newer value\n if ((now - this._fastQueryDate) > 2 * this._pollingInterval) {\n this._fastQueryDate = now;\n this._fastBlockNumberPromise = this.getBlockNumber().then((blockNumber) => {\n if (this._fastBlockNumber == null || blockNumber > this._fastBlockNumber) {\n this._fastBlockNumber = blockNumber;\n }\n return this._fastBlockNumber;\n });\n }\n\n return this._fastBlockNumberPromise;\n }\n\n _setFastBlockNumber(blockNumber: number): void {\n // Older block, maybe a stale request\n if (this._fastBlockNumber != null && blockNumber < this._fastBlockNumber) { return; }\n\n // Update the time we updated the blocknumber\n this._fastQueryDate = getTime();\n\n // Newer block number, use it\n if (this._fastBlockNumber == null || blockNumber > this._fastBlockNumber) {\n this._fastBlockNumber = blockNumber;\n this._fastBlockNumberPromise = Promise.resolve(blockNumber);\n }\n }\n\n async waitForTransaction(transactionHash: string, confirmations?: number, timeout?: number): Promise {\n return this._waitForTransaction(transactionHash, (confirmations == null) ? 1: confirmations, timeout || 0, null);\n }\n\n async _waitForTransaction(transactionHash: string, confirmations: number, timeout: number, replaceable: { data: string, from: string, nonce: number, to: string, value: BigNumber, startBlock: number }): Promise {\n const receipt = await this.getTransactionReceipt(transactionHash);\n\n // Receipt is already good\n if ((receipt ? receipt.confirmations: 0) >= confirmations) { return receipt; }\n\n // Poll until the receipt is good...\n return new Promise((resolve, reject) => {\n const cancelFuncs: Array<() => void> = [];\n\n let done = false;\n const alreadyDone = function() {\n if (done) { return true; }\n done = true;\n cancelFuncs.forEach((func) => { func(); });\n return false;\n };\n\n const minedHandler = (receipt: TransactionReceipt) => {\n if (receipt.confirmations < confirmations) { return; }\n if (alreadyDone()) { return; }\n resolve(receipt);\n }\n this.on(transactionHash, minedHandler);\n cancelFuncs.push(() => { this.removeListener(transactionHash, minedHandler); });\n\n if (replaceable) {\n let lastBlockNumber = replaceable.startBlock;\n let scannedBlock: number = null;\n const replaceHandler = async (blockNumber: number) => {\n if (done) { return; }\n\n // Wait 1 second; this is only used in the case of a fault, so\n // we will trade off a little bit of latency for more consistent\n // results and fewer JSON-RPC calls\n await stall(1000);\n\n this.getTransactionCount(replaceable.from).then(async (nonce) => {\n if (done) { return; }\n\n if (nonce <= replaceable.nonce) {\n lastBlockNumber = blockNumber;\n\n } else {\n // First check if the transaction was mined\n {\n const mined = await this.getTransaction(transactionHash);\n if (mined && mined.blockNumber != null) { return; }\n }\n\n // First time scanning. We start a little earlier for some\n // wiggle room here to handle the eventually consistent nature\n // of blockchain (e.g. the getTransactionCount was for a\n // different block)\n if (scannedBlock == null) {\n scannedBlock = lastBlockNumber - 3;\n if (scannedBlock < replaceable.startBlock) {\n scannedBlock = replaceable.startBlock;\n }\n }\n\n while (scannedBlock <= blockNumber) {\n if (done) { return; }\n\n const block = await this.getBlockWithTransactions(scannedBlock);\n for (let ti = 0; ti < block.transactions.length; ti++) {\n const tx = block.transactions[ti];\n\n // Successfully mined!\n if (tx.hash === transactionHash) { return; }\n\n // Matches our transaction from and nonce; its a replacement\n if (tx.from === replaceable.from && tx.nonce === replaceable.nonce) {\n if (done) { return; }\n\n // Get the receipt of the replacement\n const receipt = await this.waitForTransaction(tx.hash, confirmations);\n\n // Already resolved or rejected (prolly a timeout)\n if (alreadyDone()) { return; }\n\n // The reason we were replaced\n let reason = \"replaced\";\n if (tx.data === replaceable.data && tx.to === replaceable.to && tx.value.eq(replaceable.value)) {\n reason = \"repriced\";\n } else if (tx.data === \"0x\" && tx.from === tx.to && tx.value.isZero()) {\n reason = \"cancelled\"\n }\n\n // Explain why we were replaced\n reject(logger.makeError(\"transaction was replaced\", Logger.errors.TRANSACTION_REPLACED, {\n cancelled: (reason === \"replaced\" || reason === \"cancelled\"),\n reason,\n replacement: this._wrapTransaction(tx),\n hash: transactionHash,\n receipt\n }));\n\n return;\n }\n }\n scannedBlock++;\n }\n }\n\n if (done) { return; }\n this.once(\"block\", replaceHandler);\n\n }, (error) => {\n if (done) { return; }\n this.once(\"block\", replaceHandler);\n });\n };\n\n if (done) { return; }\n this.once(\"block\", replaceHandler);\n\n cancelFuncs.push(() => {\n this.removeListener(\"block\", replaceHandler);\n });\n }\n\n if (typeof(timeout) === \"number\" && timeout > 0) {\n const timer = setTimeout(() => {\n if (alreadyDone()) { return; }\n reject(logger.makeError(\"timeout exceeded\", Logger.errors.TIMEOUT, { timeout: timeout }));\n }, timeout);\n if (timer.unref) { timer.unref(); }\n\n cancelFuncs.push(() => { clearTimeout(timer); });\n }\n });\n }\n\n async getBlockNumber(): Promise {\n return this._getInternalBlockNumber(0);\n }\n\n async getGasPrice(): Promise {\n await this.getNetwork();\n\n const result = await this.perform(\"getGasPrice\", { });\n try {\n return BigNumber.from(result);\n } catch (error) {\n return logger.throwError(\"bad result from backend\", Logger.errors.SERVER_ERROR, {\n method: \"getGasPrice\",\n result, error\n });\n }\n }\n\n async getBalance(addressOrName: string | Promise, blockTag?: BlockTag | Promise): Promise {\n await this.getNetwork();\n const params = await resolveProperties({\n address: this._getAddress(addressOrName),\n blockTag: this._getBlockTag(blockTag)\n });\n\n const result = await this.perform(\"getBalance\", params);\n try {\n return BigNumber.from(result);\n } catch (error) {\n return logger.throwError(\"bad result from backend\", Logger.errors.SERVER_ERROR, {\n method: \"getBalance\",\n params, result, error\n });\n }\n }\n\n async getTransactionCount(addressOrName: string | Promise, blockTag?: BlockTag | Promise): Promise {\n await this.getNetwork();\n const params = await resolveProperties({\n address: this._getAddress(addressOrName),\n blockTag: this._getBlockTag(blockTag)\n });\n\n const result = await this.perform(\"getTransactionCount\", params);\n try {\n return BigNumber.from(result).toNumber();\n } catch (error) {\n return logger.throwError(\"bad result from backend\", Logger.errors.SERVER_ERROR, {\n method: \"getTransactionCount\",\n params, result, error\n });\n }\n }\n\n async getCode(addressOrName: string | Promise, blockTag?: BlockTag | Promise): Promise {\n await this.getNetwork();\n const params = await resolveProperties({\n address: this._getAddress(addressOrName),\n blockTag: this._getBlockTag(blockTag)\n });\n\n const result = await this.perform(\"getCode\", params);\n try {\n return hexlify(result);\n } catch (error) {\n return logger.throwError(\"bad result from backend\", Logger.errors.SERVER_ERROR, {\n method: \"getCode\",\n params, result, error\n });\n }\n }\n\n async getStorageAt(addressOrName: string | Promise, position: BigNumberish | Promise, blockTag?: BlockTag | Promise): Promise {\n await this.getNetwork();\n const params = await resolveProperties({\n address: this._getAddress(addressOrName),\n blockTag: this._getBlockTag(blockTag),\n position: Promise.resolve(position).then((p) => hexValue(p))\n });\n const result = await this.perform(\"getStorageAt\", params);\n try {\n return hexlify(result);\n } catch (error) {\n return logger.throwError(\"bad result from backend\", Logger.errors.SERVER_ERROR, {\n method: \"getStorageAt\",\n params, result, error\n });\n }\n }\n\n // This should be called by any subclass wrapping a TransactionResponse\n _wrapTransaction(tx: Transaction, hash?: string, startBlock?: number): TransactionResponse {\n if (hash != null && hexDataLength(hash) !== 32) { throw new Error(\"invalid response - sendTransaction\"); }\n\n const result = tx;\n\n // Check the hash we expect is the same as the hash the server reported\n if (hash != null && tx.hash !== hash) {\n logger.throwError(\"Transaction hash mismatch from Provider.sendTransaction.\", Logger.errors.UNKNOWN_ERROR, { expectedHash: tx.hash, returnedHash: hash });\n }\n\n result.wait = async (confirms?: number, timeout?: number) => {\n if (confirms == null) { confirms = 1; }\n if (timeout == null) { timeout = 0; }\n\n // Get the details to detect replacement\n let replacement = undefined;\n if (confirms !== 0 && startBlock != null) {\n replacement = {\n data: tx.data,\n from: tx.from,\n nonce: tx.nonce,\n to: tx.to,\n value: tx.value,\n startBlock\n };\n }\n\n const receipt = await this._waitForTransaction(tx.hash, confirms, timeout, replacement);\n if (receipt == null && confirms === 0) { return null; }\n\n // No longer pending, allow the polling loop to garbage collect this\n this._emitted[\"t:\" + tx.hash] = receipt.blockNumber;\n\n if (receipt.status === 0) {\n logger.throwError(\"transaction failed\", Logger.errors.CALL_EXCEPTION, {\n transactionHash: tx.hash,\n transaction: tx,\n receipt: receipt\n });\n }\n return receipt;\n };\n\n return result;\n }\n\n async sendTransaction(signedTransaction: string | Promise): Promise {\n await this.getNetwork();\n const hexTx = await Promise.resolve(signedTransaction).then(t => hexlify(t));\n const tx = this.formatter.transaction(signedTransaction);\n if (tx.confirmations == null) { tx.confirmations = 0; }\n const blockNumber = await this._getInternalBlockNumber(100 + 2 * this.pollingInterval);\n try {\n const hash = await this.perform(\"sendTransaction\", { signedTransaction: hexTx });\n return this._wrapTransaction(tx, hash, blockNumber);\n } catch (error) {\n (error).transaction = tx;\n (error).transactionHash = tx.hash;\n throw error;\n }\n }\n\n async _getTransactionRequest(transaction: Deferrable): Promise {\n const values: any = await transaction;\n\n const tx: any = { };\n\n [\"from\", \"to\"].forEach((key) => {\n if (values[key] == null) { return; }\n tx[key] = Promise.resolve(values[key]).then((v) => (v ? this._getAddress(v): null))\n });\n\n [\"gasLimit\", \"gasPrice\", \"maxFeePerGas\", \"maxPriorityFeePerGas\", \"value\"].forEach((key) => {\n if (values[key] == null) { return; }\n tx[key] = Promise.resolve(values[key]).then((v) => (v ? BigNumber.from(v): null));\n });\n\n [\"type\"].forEach((key) => {\n if (values[key] == null) { return; }\n tx[key] = Promise.resolve(values[key]).then((v) => ((v != null) ? v: null));\n });\n\n if (values.accessList) {\n tx.accessList = this.formatter.accessList(values.accessList);\n }\n\n [\"data\"].forEach((key) => {\n if (values[key] == null) { return; }\n tx[key] = Promise.resolve(values[key]).then((v) => (v ? hexlify(v): null));\n });\n\n return this.formatter.transactionRequest(await resolveProperties(tx));\n }\n\n async _getFilter(filter: Filter | FilterByBlockHash | Promise): Promise {\n filter = await filter;\n\n const result: any = { };\n\n if (filter.address != null) {\n result.address = this._getAddress(filter.address);\n }\n\n [\"blockHash\", \"topics\"].forEach((key) => {\n if ((filter)[key] == null) { return; }\n result[key] = (filter)[key];\n });\n\n [\"fromBlock\", \"toBlock\"].forEach((key) => {\n if ((filter)[key] == null) { return; }\n result[key] = this._getBlockTag((filter)[key]);\n });\n\n return this.formatter.filter(await resolveProperties(result));\n }\n\n async _call(transaction: TransactionRequest, blockTag: BlockTag, attempt: number): Promise {\n if (attempt >= MAX_CCIP_REDIRECTS) {\n logger.throwError(\"CCIP read exceeded maximum redirections\", Logger.errors.SERVER_ERROR, {\n redirects: attempt, transaction\n });\n }\n\n const txSender = transaction.to;\n\n const result = await this.perform(\"call\", { transaction, blockTag });\n\n // CCIP Read request via OffchainLookup(address,string[],bytes,bytes4,bytes)\n if (attempt >= 0 && blockTag === \"latest\" && txSender != null && result.substring(0, 10) === \"0x556f1830\" && (hexDataLength(result) % 32 === 4)) {\n try {\n const data = hexDataSlice(result, 4);\n\n // Check the sender of the OffchainLookup matches the transaction\n const sender = hexDataSlice(data, 0, 32);\n if (!BigNumber.from(sender).eq(txSender)) {\n logger.throwError(\"CCIP Read sender did not match\", Logger.errors.CALL_EXCEPTION, {\n name: \"OffchainLookup\",\n signature: \"OffchainLookup(address,string[],bytes,bytes4,bytes)\",\n transaction, data: result\n });\n }\n\n // Read the URLs from the response\n const urls: Array = [];\n const urlsOffset = BigNumber.from(hexDataSlice(data, 32, 64)).toNumber();\n const urlsLength = BigNumber.from(hexDataSlice(data, urlsOffset, urlsOffset + 32)).toNumber();\n const urlsData = hexDataSlice(data, urlsOffset + 32);\n for (let u = 0; u < urlsLength; u++) {\n const url = _parseString(urlsData, u * 32);\n if (url == null) {\n logger.throwError(\"CCIP Read contained corrupt URL string\", Logger.errors.CALL_EXCEPTION, {\n name: \"OffchainLookup\",\n signature: \"OffchainLookup(address,string[],bytes,bytes4,bytes)\",\n transaction, data: result\n });\n }\n urls.push(url);\n }\n\n // Get the CCIP calldata to forward\n const calldata = _parseBytes(data, 64);\n\n // Get the callbackSelector (bytes4)\n if (!BigNumber.from(hexDataSlice(data, 100, 128)).isZero()) {\n logger.throwError(\"CCIP Read callback selector included junk\", Logger.errors.CALL_EXCEPTION, {\n name: \"OffchainLookup\",\n signature: \"OffchainLookup(address,string[],bytes,bytes4,bytes)\",\n transaction, data: result\n });\n }\n const callbackSelector = hexDataSlice(data, 96, 100);\n\n // Get the extra data to send back to the contract as context\n const extraData = _parseBytes(data, 128);\n\n const ccipResult = await this.ccipReadFetch(transaction, calldata, urls);\n if (ccipResult == null) {\n logger.throwError(\"CCIP Read disabled or provided no URLs\", Logger.errors.CALL_EXCEPTION, {\n name: \"OffchainLookup\",\n signature: \"OffchainLookup(address,string[],bytes,bytes4,bytes)\",\n transaction, data: result\n });\n }\n\n const tx = {\n to: txSender,\n data: hexConcat([ callbackSelector, encodeBytes([ ccipResult, extraData ]) ])\n };\n\n return this._call(tx, blockTag, attempt + 1);\n\n } catch (error) {\n if (error.code === Logger.errors.SERVER_ERROR) { throw error; }\n }\n }\n\n try {\n return hexlify(result);\n } catch (error) {\n return logger.throwError(\"bad result from backend\", Logger.errors.SERVER_ERROR, {\n method: \"call\",\n params: { transaction, blockTag }, result, error\n });\n }\n\n }\n\n async call(transaction: Deferrable, blockTag?: BlockTag | Promise): Promise {\n await this.getNetwork();\n const resolved = await resolveProperties({\n transaction: this._getTransactionRequest(transaction),\n blockTag: this._getBlockTag(blockTag),\n ccipReadEnabled: Promise.resolve(transaction.ccipReadEnabled)\n });\n return this._call(resolved.transaction, resolved.blockTag, resolved.ccipReadEnabled ? 0: -1);\n }\n\n async estimateGas(transaction: Deferrable): Promise {\n await this.getNetwork();\n const params = await resolveProperties({\n transaction: this._getTransactionRequest(transaction)\n });\n\n const result = await this.perform(\"estimateGas\", params);\n try {\n return BigNumber.from(result);\n } catch (error) {\n return logger.throwError(\"bad result from backend\", Logger.errors.SERVER_ERROR, {\n method: \"estimateGas\",\n params, result, error\n });\n }\n }\n\n async _getAddress(addressOrName: string | Promise): Promise {\n addressOrName = await addressOrName;\n if (typeof(addressOrName) !== \"string\") {\n logger.throwArgumentError(\"invalid address or ENS name\", \"name\", addressOrName);\n }\n\n const address = await this.resolveName(addressOrName);\n if (address == null) {\n logger.throwError(\"ENS name not configured\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: `resolveName(${ JSON.stringify(addressOrName) })`\n });\n }\n return address;\n }\n\n async _getBlock(blockHashOrBlockTag: BlockTag | string | Promise, includeTransactions?: boolean): Promise {\n await this.getNetwork();\n\n blockHashOrBlockTag = await blockHashOrBlockTag;\n\n // If blockTag is a number (not \"latest\", etc), this is the block number\n let blockNumber = -128;\n\n const params: { [key: string]: any } = {\n includeTransactions: !!includeTransactions\n };\n\n if (isHexString(blockHashOrBlockTag, 32)) {\n params.blockHash = blockHashOrBlockTag;\n } else {\n try {\n params.blockTag = await this._getBlockTag(blockHashOrBlockTag);\n if (isHexString(params.blockTag)) {\n blockNumber = parseInt(params.blockTag.substring(2), 16);\n }\n } catch (error) {\n logger.throwArgumentError(\"invalid block hash or block tag\", \"blockHashOrBlockTag\", blockHashOrBlockTag);\n }\n }\n\n return poll(async () => {\n const block = await this.perform(\"getBlock\", params);\n\n // Block was not found\n if (block == null) {\n\n // For blockhashes, if we didn't say it existed, that blockhash may\n // not exist. If we did see it though, perhaps from a log, we know\n // it exists, and this node is just not caught up yet.\n if (params.blockHash != null) {\n if (this._emitted[\"b:\" + params.blockHash] == null) { return null; }\n }\n\n // For block tags, if we are asking for a future block, we return null\n if (params.blockTag != null) {\n if (blockNumber > this._emitted.block) { return null; }\n }\n\n // Retry on the next block\n return undefined;\n }\n\n // Add transactions\n if (includeTransactions) {\n let blockNumber: number = null;\n for (let i = 0; i < block.transactions.length; i++) {\n const tx = block.transactions[i];\n if (tx.blockNumber == null) {\n tx.confirmations = 0;\n\n } else if (tx.confirmations == null) {\n if (blockNumber == null) {\n blockNumber = await this._getInternalBlockNumber(100 + 2 * this.pollingInterval);\n }\n\n // Add the confirmations using the fast block number (pessimistic)\n let confirmations = (blockNumber - tx.blockNumber) + 1;\n if (confirmations <= 0) { confirmations = 1; }\n tx.confirmations = confirmations;\n }\n }\n\n const blockWithTxs: any = this.formatter.blockWithTransactions(block);\n blockWithTxs.transactions = blockWithTxs.transactions.map((tx: TransactionResponse) => this._wrapTransaction(tx));\n return blockWithTxs;\n }\n\n return this.formatter.block(block);\n\n }, { oncePoll: this });\n }\n\n getBlock(blockHashOrBlockTag: BlockTag | string | Promise): Promise {\n return >(this._getBlock(blockHashOrBlockTag, false));\n }\n\n getBlockWithTransactions(blockHashOrBlockTag: BlockTag | string | Promise): Promise {\n return >(this._getBlock(blockHashOrBlockTag, true));\n }\n\n async getTransaction(transactionHash: string | Promise): Promise {\n await this.getNetwork();\n transactionHash = await transactionHash;\n\n const params = { transactionHash: this.formatter.hash(transactionHash, true) };\n\n return poll(async () => {\n const result = await this.perform(\"getTransaction\", params);\n\n if (result == null) {\n if (this._emitted[\"t:\" + transactionHash] == null) {\n return null;\n }\n return undefined;\n }\n\n const tx = this.formatter.transactionResponse(result);\n\n if (tx.blockNumber == null) {\n tx.confirmations = 0;\n\n } else if (tx.confirmations == null) {\n const blockNumber = await this._getInternalBlockNumber(100 + 2 * this.pollingInterval);\n\n // Add the confirmations using the fast block number (pessimistic)\n let confirmations = (blockNumber - tx.blockNumber) + 1;\n if (confirmations <= 0) { confirmations = 1; }\n tx.confirmations = confirmations;\n }\n\n return this._wrapTransaction(tx);\n }, { oncePoll: this });\n }\n\n async getTransactionReceipt(transactionHash: string | Promise): Promise {\n await this.getNetwork();\n\n transactionHash = await transactionHash;\n\n const params = { transactionHash: this.formatter.hash(transactionHash, true) };\n\n return poll(async () => {\n const result = await this.perform(\"getTransactionReceipt\", params);\n\n if (result == null) {\n if (this._emitted[\"t:\" + transactionHash] == null) {\n return null;\n }\n return undefined;\n }\n\n // \"geth-etc\" returns receipts before they are ready\n if (result.blockHash == null) { return undefined; }\n\n const receipt = this.formatter.receipt(result);\n\n if (receipt.blockNumber == null) {\n receipt.confirmations = 0;\n\n } else if (receipt.confirmations == null) {\n const blockNumber = await this._getInternalBlockNumber(100 + 2 * this.pollingInterval);\n\n // Add the confirmations using the fast block number (pessimistic)\n let confirmations = (blockNumber - receipt.blockNumber) + 1;\n if (confirmations <= 0) { confirmations = 1; }\n receipt.confirmations = confirmations;\n }\n\n return receipt;\n }, { oncePoll: this });\n }\n\n async getLogs(filter: Filter | FilterByBlockHash | Promise): Promise> {\n await this.getNetwork();\n const params = await resolveProperties({ filter: this._getFilter(filter) });\n const logs: Array = await this.perform(\"getLogs\", params);\n logs.forEach((log) => {\n if (log.removed == null) { log.removed = false; }\n });\n return Formatter.arrayOf(this.formatter.filterLog.bind(this.formatter))(logs);\n }\n\n async getEtherPrice(): Promise {\n await this.getNetwork();\n return this.perform(\"getEtherPrice\", { });\n }\n\n async _getBlockTag(blockTag: BlockTag | Promise): Promise {\n blockTag = await blockTag;\n\n if (typeof(blockTag) === \"number\" && blockTag < 0) {\n if (blockTag % 1) {\n logger.throwArgumentError(\"invalid BlockTag\", \"blockTag\", blockTag);\n }\n\n let blockNumber = await this._getInternalBlockNumber(100 + 2 * this.pollingInterval);\n blockNumber += blockTag;\n if (blockNumber < 0) { blockNumber = 0; }\n return this.formatter.blockTag(blockNumber)\n }\n\n return this.formatter.blockTag(blockTag);\n }\n\n\n async getResolver(name: string): Promise {\n let currentName = name;\n while (true) {\n if (currentName === \"\" || currentName === \".\") { return null; }\n\n // Optimization since the eth node cannot change and does\n // not have a wildcard resolver\n if (name !== \"eth\" && currentName === \"eth\") { return null; }\n\n // Check the current node for a resolver\n const addr = await this._getResolver(currentName, \"getResolver\");\n\n // Found a resolver!\n if (addr != null) {\n const resolver = new Resolver(this, addr, name);\n\n // Legacy resolver found, using EIP-2544 so it isn't safe to use\n if (currentName !== name && !(await resolver.supportsWildcard())) { return null; }\n\n return resolver;\n }\n\n // Get the parent node\n currentName = currentName.split(\".\").slice(1).join(\".\");\n }\n\n }\n\n async _getResolver(name: string, operation?: string): Promise {\n if (operation == null) { operation = \"ENS\"; }\n\n const network = await this.getNetwork();\n\n // No ENS...\n if (!network.ensAddress) {\n logger.throwError(\n \"network does not support ENS\",\n Logger.errors.UNSUPPORTED_OPERATION,\n { operation, network: network.name }\n );\n }\n\n try {\n // keccak256(\"resolver(bytes32)\")\n const addrData = await this.call({\n to: network.ensAddress,\n data: (\"0x0178b8bf\" + namehash(name).substring(2))\n });\n return this.formatter.callAddress(addrData);\n } catch (error) {\n // ENS registry cannot throw errors on resolver(bytes32)\n }\n\n return null;\n }\n\n async resolveName(name: string | Promise): Promise {\n name = await name;\n\n // If it is already an address, nothing to resolve\n try {\n return Promise.resolve(this.formatter.address(name));\n } catch (error) {\n // If is is a hexstring, the address is bad (See #694)\n if (isHexString(name)) { throw error; }\n }\n\n if (typeof(name) !== \"string\") {\n logger.throwArgumentError(\"invalid ENS name\", \"name\", name);\n }\n\n // Get the addr from the resolver\n const resolver = await this.getResolver(name);\n if (!resolver) { return null; }\n\n return await resolver.getAddress();\n }\n\n async lookupAddress(address: string | Promise): Promise {\n address = await address;\n address = this.formatter.address(address);\n\n const node = address.substring(2).toLowerCase() + \".addr.reverse\";\n\n const resolverAddr = await this._getResolver(node, \"lookupAddress\");\n if (resolverAddr == null) { return null; }\n\n // keccak(\"name(bytes32)\")\n const name = _parseString(await this.call({\n to: resolverAddr,\n data: (\"0x691f3431\" + namehash(node).substring(2))\n }), 0);\n\n const addr = await this.resolveName(name);\n if (addr != address) { return null; }\n\n return name;\n }\n\n async getAvatar(nameOrAddress: string): Promise {\n let resolver: Resolver = null;\n if (isHexString(nameOrAddress)) {\n // Address; reverse lookup\n const address = this.formatter.address(nameOrAddress);\n\n const node = address.substring(2).toLowerCase() + \".addr.reverse\";\n\n const resolverAddress = await this._getResolver(node, \"getAvatar\");\n if (!resolverAddress) { return null; }\n\n // Try resolving the avatar against the addr.reverse resolver\n resolver = new Resolver(this, resolverAddress, node);\n try {\n const avatar = await resolver.getAvatar();\n if (avatar) { return avatar.url; }\n } catch (error) {\n if (error.code !== Logger.errors.CALL_EXCEPTION) { throw error; }\n }\n\n // Try getting the name and performing forward lookup; allowing wildcards\n try {\n // keccak(\"name(bytes32)\")\n const name = _parseString(await this.call({\n to: resolverAddress,\n data: (\"0x691f3431\" + namehash(node).substring(2))\n }), 0);\n resolver = await this.getResolver(name);\n } catch (error) {\n if (error.code !== Logger.errors.CALL_EXCEPTION) { throw error; }\n return null;\n }\n\n } else {\n // ENS name; forward lookup with wildcard\n resolver = await this.getResolver(nameOrAddress);\n if (!resolver) { return null; }\n }\n\n const avatar = await resolver.getAvatar();\n if (avatar == null) { return null; }\n\n return avatar.url;\n }\n\n perform(method: string, params: any): Promise {\n return logger.throwError(method + \" not implemented\", Logger.errors.NOT_IMPLEMENTED, { operation: method });\n }\n\n _startEvent(event: Event): void {\n this.polling = (this._events.filter((e) => e.pollable()).length > 0);\n }\n\n _stopEvent(event: Event): void {\n this.polling = (this._events.filter((e) => e.pollable()).length > 0);\n }\n\n _addEventListener(eventName: EventType, listener: Listener, once: boolean): this {\n const event = new Event(getEventTag(eventName), listener, once)\n this._events.push(event);\n this._startEvent(event);\n\n return this;\n }\n\n on(eventName: EventType, listener: Listener): this {\n return this._addEventListener(eventName, listener, false);\n }\n\n once(eventName: EventType, listener: Listener): this {\n return this._addEventListener(eventName, listener, true);\n }\n\n\n emit(eventName: EventType, ...args: Array): boolean {\n let result = false;\n\n let stopped: Array = [ ];\n\n let eventTag = getEventTag(eventName);\n this._events = this._events.filter((event) => {\n if (event.tag !== eventTag) { return true; }\n\n setTimeout(() => {\n event.listener.apply(this, args);\n }, 0);\n\n result = true;\n\n if (event.once) {\n stopped.push(event);\n return false;\n }\n\n return true;\n });\n\n stopped.forEach((event) => { this._stopEvent(event); });\n\n return result;\n }\n\n listenerCount(eventName?: EventType): number {\n if (!eventName) { return this._events.length; }\n\n let eventTag = getEventTag(eventName);\n return this._events.filter((event) => {\n return (event.tag === eventTag);\n }).length;\n }\n\n listeners(eventName?: EventType): Array {\n if (eventName == null) {\n return this._events.map((event) => event.listener);\n }\n\n let eventTag = getEventTag(eventName);\n return this._events\n .filter((event) => (event.tag === eventTag))\n .map((event) => event.listener);\n }\n\n off(eventName: EventType, listener?: Listener): this {\n if (listener == null) {\n return this.removeAllListeners(eventName);\n }\n\n const stopped: Array = [ ];\n\n let found = false;\n\n let eventTag = getEventTag(eventName);\n this._events = this._events.filter((event) => {\n if (event.tag !== eventTag || event.listener != listener) { return true; }\n if (found) { return true; }\n found = true;\n stopped.push(event);\n return false;\n });\n\n stopped.forEach((event) => { this._stopEvent(event); });\n\n return this;\n }\n\n removeAllListeners(eventName?: EventType): this {\n let stopped: Array = [ ];\n if (eventName == null) {\n stopped = this._events;\n\n this._events = [ ];\n } else {\n const eventTag = getEventTag(eventName);\n this._events = this._events.filter((event) => {\n if (event.tag !== eventTag) { return true; }\n stopped.push(event);\n return false;\n });\n }\n\n stopped.forEach((event) => { this._stopEvent(event); });\n\n return this;\n }\n}\n", "\"use strict\";\n\n// See: https://github.com/ethereum/wiki/wiki/JSON-RPC\n\nimport { Provider, TransactionRequest, TransactionResponse } from \"@ethersproject/abstract-provider\";\nimport { Signer, TypedDataDomain, TypedDataField, TypedDataSigner } from \"@ethersproject/abstract-signer\";\nimport { BigNumber } from \"@ethersproject/bignumber\";\nimport { Bytes, hexlify, hexValue, hexZeroPad, isHexString } from \"@ethersproject/bytes\";\nimport { _TypedDataEncoder } from \"@ethersproject/hash\";\nimport { Network, Networkish } from \"@ethersproject/networks\";\nimport { checkProperties, deepCopy, Deferrable, defineReadOnly, getStatic, resolveProperties, shallowCopy } from \"@ethersproject/properties\";\nimport { toUtf8Bytes } from \"@ethersproject/strings\";\nimport { AccessList, accessListify } from \"@ethersproject/transactions\";\nimport { ConnectionInfo, fetchJson, poll } from \"@ethersproject/web\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\nimport { BaseProvider, Event } from \"./base-provider\";\n\n\nconst errorGas = [ \"call\", \"estimateGas\" ];\n\nfunction spelunk(value: any, requireData: boolean): null | { message: string, data: null | string } {\n if (value == null) { return null; }\n\n // These *are* the droids we're looking for.\n if (typeof(value.message) === \"string\" && value.message.match(\"reverted\")) {\n const data = isHexString(value.data) ? value.data: null;\n if (!requireData || data) {\n return { message: value.message, data };\n }\n }\n\n // Spelunk further...\n if (typeof(value) === \"object\") {\n for (const key in value) {\n const result = spelunk(value[key], requireData);\n if (result) { return result; }\n }\n return null;\n }\n\n // Might be a JSON string we can further descend...\n if (typeof(value) === \"string\") {\n try {\n return spelunk(JSON.parse(value), requireData);\n } catch (error) { }\n }\n\n return null;\n}\n\nfunction checkError(method: string, error: any, params: any): any {\n\n const transaction = params.transaction || params.signedTransaction;\n\n // Undo the \"convenience\" some nodes are attempting to prevent backwards\n // incompatibility; maybe for v6 consider forwarding reverts as errors\n if (method === \"call\") {\n const result = spelunk(error, true);\n if (result) { return result.data; }\n\n // Nothing descriptive..\n logger.throwError(\"missing revert data in call exception; Transaction reverted without a reason string\", Logger.errors.CALL_EXCEPTION, {\n data: \"0x\", transaction, error\n });\n }\n\n if (method === \"estimateGas\") {\n // Try to find something, with a preference on SERVER_ERROR body\n let result = spelunk(error.body, false);\n if (result == null) { result = spelunk(error, false); }\n\n // Found \"reverted\", this is a CALL_EXCEPTION\n if (result) {\n logger.throwError(\"cannot estimate gas; transaction may fail or may require manual gas limit\", Logger.errors.UNPREDICTABLE_GAS_LIMIT, {\n reason: result.message, method, transaction, error\n });\n }\n }\n\n // @TODO: Should we spelunk for message too?\n\n let message = error.message;\n if (error.code === Logger.errors.SERVER_ERROR && error.error && typeof(error.error.message) === \"string\") {\n message = error.error.message;\n } else if (typeof(error.body) === \"string\") {\n message = error.body;\n } else if (typeof(error.responseText) === \"string\") {\n message = error.responseText;\n }\n message = (message || \"\").toLowerCase();\n\n // \"insufficient funds for gas * price + value + cost(data)\"\n if (message.match(/insufficient funds|base fee exceeds gas limit|InsufficientFunds/i)) {\n logger.throwError(\"insufficient funds for intrinsic transaction cost\", Logger.errors.INSUFFICIENT_FUNDS, {\n error, method, transaction\n });\n }\n\n // \"nonce too low\"\n if (message.match(/nonce (is )?too low/i)) {\n logger.throwError(\"nonce has already been used\", Logger.errors.NONCE_EXPIRED, {\n error, method, transaction\n });\n }\n\n // \"replacement transaction underpriced\"\n if (message.match(/replacement transaction underpriced|transaction gas price.*too low/i)) {\n logger.throwError(\"replacement fee too low\", Logger.errors.REPLACEMENT_UNDERPRICED, {\n error, method, transaction\n });\n }\n\n // \"replacement transaction underpriced\"\n if (message.match(/only replay-protected/i)) {\n logger.throwError(\"legacy pre-eip-155 transactions not supported\", Logger.errors.UNSUPPORTED_OPERATION, {\n error, method, transaction\n });\n }\n\n if (errorGas.indexOf(method) >= 0 && message.match(/gas required exceeds allowance|always failing transaction|execution reverted|revert/)) {\n logger.throwError(\"cannot estimate gas; transaction may fail or may require manual gas limit\", Logger.errors.UNPREDICTABLE_GAS_LIMIT, {\n error, method, transaction\n });\n }\n\n throw error;\n}\n\nfunction timer(timeout: number): Promise {\n return new Promise(function(resolve) {\n setTimeout(resolve, timeout);\n });\n}\n\nfunction getResult(payload: { error?: { code?: number, data?: any, message?: string }, result?: any }): any {\n if (payload.error) {\n // @TODO: not any\n const error: any = new Error(payload.error.message);\n error.code = payload.error.code;\n error.data = payload.error.data;\n throw error;\n }\n\n return payload.result;\n}\n\nfunction getLowerCase(value: string): string {\n if (value) { return value.toLowerCase(); }\n return value;\n}\n\nconst _constructorGuard = {};\n\nexport class JsonRpcSigner extends Signer implements TypedDataSigner {\n readonly provider: JsonRpcProvider;\n _index: number;\n _address: string;\n\n constructor(constructorGuard: any, provider: JsonRpcProvider, addressOrIndex?: string | number) {\n super();\n\n if (constructorGuard !== _constructorGuard) {\n throw new Error(\"do not call the JsonRpcSigner constructor directly; use provider.getSigner\");\n }\n\n defineReadOnly(this, \"provider\", provider);\n\n if (addressOrIndex == null) { addressOrIndex = 0; }\n\n if (typeof(addressOrIndex) === \"string\") {\n defineReadOnly(this, \"_address\", this.provider.formatter.address(addressOrIndex));\n defineReadOnly(this, \"_index\", null);\n\n } else if (typeof(addressOrIndex) === \"number\") {\n defineReadOnly(this, \"_index\", addressOrIndex);\n defineReadOnly(this, \"_address\", null);\n\n } else {\n logger.throwArgumentError(\"invalid address or index\", \"addressOrIndex\", addressOrIndex);\n }\n }\n\n connect(provider: Provider): JsonRpcSigner {\n return logger.throwError(\"cannot alter JSON-RPC Signer connection\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"connect\"\n });\n }\n\n connectUnchecked(): JsonRpcSigner {\n return new UncheckedJsonRpcSigner(_constructorGuard, this.provider, this._address || this._index);\n }\n\n getAddress(): Promise {\n if (this._address) {\n return Promise.resolve(this._address);\n }\n\n return this.provider.send(\"eth_accounts\", []).then((accounts) => {\n if (accounts.length <= this._index) {\n logger.throwError(\"unknown account #\" + this._index, Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"getAddress\"\n });\n }\n return this.provider.formatter.address(accounts[this._index])\n });\n }\n\n sendUncheckedTransaction(transaction: Deferrable): Promise {\n transaction = shallowCopy(transaction);\n\n const fromAddress = this.getAddress().then((address) => {\n if (address) { address = address.toLowerCase(); }\n return address;\n });\n\n // The JSON-RPC for eth_sendTransaction uses 90000 gas; if the user\n // wishes to use this, it is easy to specify explicitly, otherwise\n // we look it up for them.\n if (transaction.gasLimit == null) {\n const estimate = shallowCopy(transaction);\n estimate.from = fromAddress;\n transaction.gasLimit = this.provider.estimateGas(estimate);\n }\n\n if (transaction.to != null) {\n transaction.to = Promise.resolve(transaction.to).then(async (to) => {\n if (to == null) { return null; }\n const address = await this.provider.resolveName(to);\n if (address == null) {\n logger.throwArgumentError(\"provided ENS name resolves to null\", \"tx.to\", to);\n }\n return address;\n });\n }\n\n return resolveProperties({\n tx: resolveProperties(transaction),\n sender: fromAddress\n }).then(({ tx, sender }) => {\n\n if (tx.from != null) {\n if (tx.from.toLowerCase() !== sender) {\n logger.throwArgumentError(\"from address mismatch\", \"transaction\", transaction);\n }\n } else {\n tx.from = sender;\n }\n\n const hexTx = (this.provider.constructor).hexlifyTransaction(tx, { from: true });\n\n return this.provider.send(\"eth_sendTransaction\", [ hexTx ]).then((hash) => {\n return hash;\n }, (error) => {\n if (typeof(error.message) === \"string\" && error.message.match(/user denied/i)) {\n logger.throwError(\"user rejected transaction\", Logger.errors.ACTION_REJECTED, {\n action: \"sendTransaction\",\n transaction: tx\n });\n }\n\n return checkError(\"sendTransaction\", error, hexTx);\n });\n });\n }\n\n signTransaction(transaction: Deferrable): Promise {\n return logger.throwError(\"signing transactions is unsupported\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"signTransaction\"\n });\n }\n\n async sendTransaction(transaction: Deferrable): Promise {\n // This cannot be mined any earlier than any recent block\n const blockNumber = await this.provider._getInternalBlockNumber(100 + 2 * this.provider.pollingInterval);\n\n // Send the transaction\n const hash = await this.sendUncheckedTransaction(transaction);\n\n try {\n // Unfortunately, JSON-RPC only provides and opaque transaction hash\n // for a response, and we need the actual transaction, so we poll\n // for it; it should show up very quickly\n return await poll(async () => {\n const tx = await this.provider.getTransaction(hash);\n if (tx === null) { return undefined; }\n return this.provider._wrapTransaction(tx, hash, blockNumber);\n }, { oncePoll: this.provider });\n } catch (error) {\n (error).transactionHash = hash;\n throw error;\n }\n }\n\n async signMessage(message: Bytes | string): Promise {\n const data = ((typeof(message) === \"string\") ? toUtf8Bytes(message): message);\n const address = await this.getAddress();\n try {\n return await this.provider.send(\"personal_sign\", [ hexlify(data), address.toLowerCase() ]);\n } catch (error) {\n if (typeof(error.message) === \"string\" && error.message.match(/user denied/i)) {\n logger.throwError(\"user rejected signing\", Logger.errors.ACTION_REJECTED, {\n action: \"signMessage\",\n from: address,\n messageData: message\n });\n }\n throw error;\n }\n }\n\n async _legacySignMessage(message: Bytes | string): Promise {\n const data = ((typeof(message) === \"string\") ? toUtf8Bytes(message): message);\n const address = await this.getAddress();\n\n try {\n // https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_sign\n return await this.provider.send(\"eth_sign\", [ address.toLowerCase(), hexlify(data) ]);\n } catch (error) {\n if (typeof(error.message) === \"string\" && error.message.match(/user denied/i)) {\n logger.throwError(\"user rejected signing\", Logger.errors.ACTION_REJECTED, {\n action: \"_legacySignMessage\",\n from: address,\n messageData: message\n });\n }\n throw error;\n }\n }\n\n async _signTypedData(domain: TypedDataDomain, types: Record>, value: Record): Promise {\n // Populate any ENS names (in-place)\n const populated = await _TypedDataEncoder.resolveNames(domain, types, value, (name: string) => {\n return this.provider.resolveName(name);\n });\n\n const address = await this.getAddress();\n\n try {\n return await this.provider.send(\"eth_signTypedData_v4\", [\n address.toLowerCase(),\n JSON.stringify(_TypedDataEncoder.getPayload(populated.domain, types, populated.value))\n ]);\n } catch (error) {\n if (typeof(error.message) === \"string\" && error.message.match(/user denied/i)) {\n logger.throwError(\"user rejected signing\", Logger.errors.ACTION_REJECTED, {\n action: \"_signTypedData\",\n from: address,\n messageData: { domain: populated.domain, types, value: populated.value }\n });\n }\n throw error;\n }\n }\n\n async unlock(password: string): Promise {\n const provider = this.provider;\n\n const address = await this.getAddress();\n\n return provider.send(\"personal_unlockAccount\", [ address.toLowerCase(), password, null ]);\n }\n}\n\nclass UncheckedJsonRpcSigner extends JsonRpcSigner {\n sendTransaction(transaction: Deferrable): Promise {\n return this.sendUncheckedTransaction(transaction).then((hash) => {\n return {\n hash: hash,\n nonce: null,\n gasLimit: null,\n gasPrice: null,\n data: null,\n value: null,\n chainId: null,\n confirmations: 0,\n from: null,\n wait: (confirmations?: number) => { return this.provider.waitForTransaction(hash, confirmations); }\n };\n });\n }\n}\n\nconst allowedTransactionKeys: { [ key: string ]: boolean } = {\n chainId: true, data: true, gasLimit: true, gasPrice:true, nonce: true, to: true, value: true,\n type: true, accessList: true,\n maxFeePerGas: true, maxPriorityFeePerGas: true\n}\n\nexport class JsonRpcProvider extends BaseProvider {\n readonly connection: ConnectionInfo;\n\n _pendingFilter: Promise;\n _nextId: number;\n\n // During any given event loop, the results for a given call will\n // all be the same, so we can dedup the calls to save requests and\n // bandwidth. @TODO: Try out generalizing this against send?\n _eventLoopCache: Record>;\n get _cache(): Record> {\n if (this._eventLoopCache == null) {\n this._eventLoopCache = { };\n }\n return this._eventLoopCache;\n }\n\n constructor(url?: ConnectionInfo | string, network?: Networkish) {\n let networkOrReady: Networkish | Promise = network;\n\n // The network is unknown, query the JSON-RPC for it\n if (networkOrReady == null) {\n networkOrReady = new Promise((resolve, reject) => {\n setTimeout(() => {\n this.detectNetwork().then((network) => {\n resolve(network);\n }, (error) => {\n reject(error);\n });\n }, 0);\n });\n }\n\n super(networkOrReady);\n\n // Default URL\n if (!url) { url = getStatic<() => string>(this.constructor, \"defaultUrl\")(); }\n\n if (typeof(url) === \"string\") {\n defineReadOnly(this, \"connection\",Object.freeze({\n url: url\n }));\n } else {\n defineReadOnly(this, \"connection\", Object.freeze(shallowCopy(url)));\n }\n\n this._nextId = 42;\n }\n\n static defaultUrl(): string {\n return \"http:/\\/localhost:8545\";\n }\n\n detectNetwork(): Promise {\n if (!this._cache[\"detectNetwork\"]) {\n this._cache[\"detectNetwork\"] = this._uncachedDetectNetwork();\n\n // Clear this cache at the beginning of the next event loop\n setTimeout(() => {\n this._cache[\"detectNetwork\"] = null;\n }, 0);\n }\n return this._cache[\"detectNetwork\"];\n }\n\n async _uncachedDetectNetwork(): Promise {\n await timer(0);\n\n let chainId = null;\n try {\n chainId = await this.send(\"eth_chainId\", [ ]);\n } catch (error) {\n try {\n chainId = await this.send(\"net_version\", [ ]);\n } catch (error) { }\n }\n\n if (chainId != null) {\n const getNetwork = getStatic<(network: Networkish) => Network>(this.constructor, \"getNetwork\");\n try {\n return getNetwork(BigNumber.from(chainId).toNumber());\n } catch (error) {\n return logger.throwError(\"could not detect network\", Logger.errors.NETWORK_ERROR, {\n chainId: chainId,\n event: \"invalidNetwork\",\n serverError: error\n });\n }\n }\n\n return logger.throwError(\"could not detect network\", Logger.errors.NETWORK_ERROR, {\n event: \"noNetwork\"\n });\n }\n\n getSigner(addressOrIndex?: string | number): JsonRpcSigner {\n return new JsonRpcSigner(_constructorGuard, this, addressOrIndex);\n }\n\n getUncheckedSigner(addressOrIndex?: string | number): UncheckedJsonRpcSigner {\n return this.getSigner(addressOrIndex).connectUnchecked();\n }\n\n listAccounts(): Promise> {\n return this.send(\"eth_accounts\", []).then((accounts: Array) => {\n return accounts.map((a) => this.formatter.address(a));\n });\n }\n\n send(method: string, params: Array): Promise {\n const request = {\n method: method,\n params: params,\n id: (this._nextId++),\n jsonrpc: \"2.0\"\n };\n\n this.emit(\"debug\", {\n action: \"request\",\n request: deepCopy(request),\n provider: this\n });\n\n // We can expand this in the future to any call, but for now these\n // are the biggest wins and do not require any serializing parameters.\n const cache = ([ \"eth_chainId\", \"eth_blockNumber\" ].indexOf(method) >= 0);\n if (cache && this._cache[method]) {\n return this._cache[method];\n }\n\n const result = fetchJson(this.connection, JSON.stringify(request), getResult).then((result) => {\n this.emit(\"debug\", {\n action: \"response\",\n request: request,\n response: result,\n provider: this\n });\n\n return result;\n\n }, (error) => {\n this.emit(\"debug\", {\n action: \"response\",\n error: error,\n request: request,\n provider: this\n });\n\n throw error;\n });\n\n // Cache the fetch, but clear it on the next event loop\n if (cache) {\n this._cache[method] = result;\n setTimeout(() => {\n this._cache[method] = null;\n }, 0);\n }\n\n return result;\n }\n\n prepareRequest(method: string, params: any): [ string, Array ] {\n switch (method) {\n case \"getBlockNumber\":\n return [ \"eth_blockNumber\", [] ];\n\n case \"getGasPrice\":\n return [ \"eth_gasPrice\", [] ];\n\n case \"getBalance\":\n return [ \"eth_getBalance\", [ getLowerCase(params.address), params.blockTag ] ];\n\n case \"getTransactionCount\":\n return [ \"eth_getTransactionCount\", [ getLowerCase(params.address), params.blockTag ] ];\n\n case \"getCode\":\n return [ \"eth_getCode\", [ getLowerCase(params.address), params.blockTag ] ];\n\n case \"getStorageAt\":\n return [ \"eth_getStorageAt\", [ getLowerCase(params.address), hexZeroPad(params.position, 32), params.blockTag ] ];\n\n case \"sendTransaction\":\n return [ \"eth_sendRawTransaction\", [ params.signedTransaction ] ]\n\n case \"getBlock\":\n if (params.blockTag) {\n return [ \"eth_getBlockByNumber\", [ params.blockTag, !!params.includeTransactions ] ];\n } else if (params.blockHash) {\n return [ \"eth_getBlockByHash\", [ params.blockHash, !!params.includeTransactions ] ];\n }\n return null;\n\n case \"getTransaction\":\n return [ \"eth_getTransactionByHash\", [ params.transactionHash ] ];\n\n case \"getTransactionReceipt\":\n return [ \"eth_getTransactionReceipt\", [ params.transactionHash ] ];\n\n case \"call\": {\n const hexlifyTransaction = getStatic<(t: TransactionRequest, a?: { [key: string]: boolean }) => { [key: string]: string }>(this.constructor, \"hexlifyTransaction\");\n return [ \"eth_call\", [ hexlifyTransaction(params.transaction, { from: true }), params.blockTag ] ];\n }\n\n case \"estimateGas\": {\n const hexlifyTransaction = getStatic<(t: TransactionRequest, a?: { [key: string]: boolean }) => { [key: string]: string }>(this.constructor, \"hexlifyTransaction\");\n return [ \"eth_estimateGas\", [ hexlifyTransaction(params.transaction, { from: true }) ] ];\n }\n\n case \"getLogs\":\n if (params.filter && params.filter.address != null) {\n params.filter.address = getLowerCase(params.filter.address);\n }\n return [ \"eth_getLogs\", [ params.filter ] ];\n\n default:\n break;\n }\n\n return null;\n }\n\n async perform(method: string, params: any): Promise {\n // Legacy networks do not like the type field being passed along (which\n // is fair), so we delete type if it is 0 and a non-EIP-1559 network\n if (method === \"call\" || method === \"estimateGas\") {\n const tx = params.transaction;\n if (tx && tx.type != null && BigNumber.from(tx.type).isZero()) {\n // If there are no EIP-1559 properties, it might be non-EIP-1559\n if (tx.maxFeePerGas == null && tx.maxPriorityFeePerGas == null) {\n const feeData = await this.getFeeData();\n if (feeData.maxFeePerGas == null && feeData.maxPriorityFeePerGas == null) {\n // Network doesn't know about EIP-1559 (and hence type)\n params = shallowCopy(params);\n params.transaction = shallowCopy(tx);\n delete params.transaction.type;\n }\n }\n }\n }\n\n const args = this.prepareRequest(method, params);\n\n if (args == null) {\n logger.throwError(method + \" not implemented\", Logger.errors.NOT_IMPLEMENTED, { operation: method });\n }\n try {\n return await this.send(args[0], args[1])\n } catch (error) {\n return checkError(method, error, params);\n }\n }\n\n _startEvent(event: Event): void {\n if (event.tag === \"pending\") { this._startPending(); }\n super._startEvent(event);\n }\n\n _startPending(): void {\n if (this._pendingFilter != null) { return; }\n const self = this;\n\n const pendingFilter: Promise = this.send(\"eth_newPendingTransactionFilter\", []);\n this._pendingFilter = pendingFilter;\n\n pendingFilter.then(function(filterId) {\n function poll() {\n self.send(\"eth_getFilterChanges\", [ filterId ]).then(function(hashes: Array) {\n if (self._pendingFilter != pendingFilter) { return null; }\n\n let seq = Promise.resolve();\n hashes.forEach(function(hash) {\n // @TODO: This should be garbage collected at some point... How? When?\n self._emitted[\"t:\" + hash.toLowerCase()] = \"pending\";\n seq = seq.then(function() {\n return self.getTransaction(hash).then(function(tx) {\n self.emit(\"pending\", tx);\n return null;\n });\n });\n });\n\n return seq.then(function() {\n return timer(1000);\n });\n }).then(function() {\n if (self._pendingFilter != pendingFilter) {\n self.send(\"eth_uninstallFilter\", [ filterId ]);\n return;\n }\n setTimeout(function() { poll(); }, 0);\n\n return null;\n }).catch((error: Error) => { });\n }\n poll();\n\n return filterId;\n }).catch((error: Error) => { });\n }\n\n _stopEvent(event: Event): void {\n if (event.tag === \"pending\" && this.listenerCount(\"pending\") === 0) {\n this._pendingFilter = null;\n }\n super._stopEvent(event);\n }\n\n // Convert an ethers.js transaction into a JSON-RPC transaction\n // - gasLimit => gas\n // - All values hexlified\n // - All numeric values zero-striped\n // - All addresses are lowercased\n // NOTE: This allows a TransactionRequest, but all values should be resolved\n // before this is called\n // @TODO: This will likely be removed in future versions and prepareRequest\n // will be the preferred method for this.\n static hexlifyTransaction(transaction: TransactionRequest, allowExtra?: { [key: string]: boolean }): { [key: string]: string | AccessList } {\n // Check only allowed properties are given\n const allowed = shallowCopy(allowedTransactionKeys);\n if (allowExtra) {\n for (const key in allowExtra) {\n if (allowExtra[key]) { allowed[key] = true; }\n }\n }\n\n checkProperties(transaction, allowed);\n\n const result: { [key: string]: string | AccessList } = {};\n\n // JSON-RPC now requires numeric values to be \"quantity\" values\n [\"chainId\", \"gasLimit\", \"gasPrice\", \"type\", \"maxFeePerGas\", \"maxPriorityFeePerGas\", \"nonce\", \"value\"].forEach(function(key) {\n if ((transaction)[key] == null) { return; }\n const value = hexValue(BigNumber.from((transaction)[key]));\n if (key === \"gasLimit\") { key = \"gas\"; }\n result[key] = value;\n });\n\n [\"from\", \"to\", \"data\"].forEach(function(key) {\n if ((transaction)[key] == null) { return; }\n result[key] = hexlify((transaction)[key]);\n });\n\n if ((transaction).accessList) {\n result[\"accessList\"] = accessListify((transaction).accessList);\n }\n\n return result;\n }\n}\n", "'use strict';\n\nmodule.exports = {\n BINARY_TYPES: ['nodebuffer', 'arraybuffer', 'fragments'],\n GUID: '258EAFA5-E914-47DA-95CA-C5AB0DC85B11',\n kStatusCode: Symbol('status-code'),\n kWebSocket: Symbol('websocket'),\n EMPTY_BUFFER: Buffer.alloc(0),\n NOOP: () => {}\n};\n", "var fs = require('fs')\nvar path = require('path')\nvar os = require('os')\n\n// Workaround to fix webpack's build warnings: 'the request of a dependency is an expression'\nvar runtimeRequire = typeof __webpack_require__ === 'function' ? __non_webpack_require__ : require // eslint-disable-line\n\nvar vars = (process.config && process.config.variables) || {}\nvar prebuildsOnly = !!process.env.PREBUILDS_ONLY\nvar abi = process.versions.modules // TODO: support old node where this is undef\nvar runtime = isElectron() ? 'electron' : 'node'\nvar arch = os.arch()\nvar platform = os.platform()\nvar libc = process.env.LIBC || (isAlpine(platform) ? 'musl' : 'glibc')\nvar armv = process.env.ARM_VERSION || (arch === 'arm64' ? '8' : vars.arm_version) || ''\nvar uv = (process.versions.uv || '').split('.')[0]\n\nmodule.exports = load\n\nfunction load (dir) {\n return runtimeRequire(load.path(dir))\n}\n\nload.path = function (dir) {\n dir = path.resolve(dir || '.')\n\n try {\n var name = runtimeRequire(path.join(dir, 'package.json')).name.toUpperCase().replace(/-/g, '_')\n if (process.env[name + '_PREBUILD']) dir = process.env[name + '_PREBUILD']\n } catch (err) {}\n\n if (!prebuildsOnly) {\n var release = getFirst(path.join(dir, 'build/Release'), matchBuild)\n if (release) return release\n\n var debug = getFirst(path.join(dir, 'build/Debug'), matchBuild)\n if (debug) return debug\n }\n\n var prebuild = resolve(dir)\n if (prebuild) return prebuild\n\n var nearby = resolve(path.dirname(process.execPath))\n if (nearby) return nearby\n\n var target = [\n 'platform=' + platform,\n 'arch=' + arch,\n 'runtime=' + runtime,\n 'abi=' + abi,\n 'uv=' + uv,\n armv ? 'armv=' + armv : '',\n 'libc=' + libc,\n 'node=' + process.versions.node,\n process.versions.electron ? 'electron=' + process.versions.electron : '',\n typeof __webpack_require__ === 'function' ? 'webpack=true' : '' // eslint-disable-line\n ].filter(Boolean).join(' ')\n\n throw new Error('No native build was found for ' + target + '\\n loaded from: ' + dir + '\\n')\n\n function resolve (dir) {\n // Find matching \"prebuilds/-\" directory\n var tuples = readdirSync(path.join(dir, 'prebuilds')).map(parseTuple)\n var tuple = tuples.filter(matchTuple(platform, arch)).sort(compareTuples)[0]\n if (!tuple) return\n\n // Find most specific flavor first\n var prebuilds = path.join(dir, 'prebuilds', tuple.name)\n var parsed = readdirSync(prebuilds).map(parseTags)\n var candidates = parsed.filter(matchTags(runtime, abi))\n var winner = candidates.sort(compareTags(runtime))[0]\n if (winner) return path.join(prebuilds, winner.file)\n }\n}\n\nfunction readdirSync (dir) {\n try {\n return fs.readdirSync(dir)\n } catch (err) {\n return []\n }\n}\n\nfunction getFirst (dir, filter) {\n var files = readdirSync(dir).filter(filter)\n return files[0] && path.join(dir, files[0])\n}\n\nfunction matchBuild (name) {\n return /\\.node$/.test(name)\n}\n\nfunction parseTuple (name) {\n // Example: darwin-x64+arm64\n var arr = name.split('-')\n if (arr.length !== 2) return\n\n var platform = arr[0]\n var architectures = arr[1].split('+')\n\n if (!platform) return\n if (!architectures.length) return\n if (!architectures.every(Boolean)) return\n\n return { name, platform, architectures }\n}\n\nfunction matchTuple (platform, arch) {\n return function (tuple) {\n if (tuple == null) return false\n if (tuple.platform !== platform) return false\n return tuple.architectures.includes(arch)\n }\n}\n\nfunction compareTuples (a, b) {\n // Prefer single-arch prebuilds over multi-arch\n return a.architectures.length - b.architectures.length\n}\n\nfunction parseTags (file) {\n var arr = file.split('.')\n var extension = arr.pop()\n var tags = { file: file, specificity: 0 }\n\n if (extension !== 'node') return\n\n for (var i = 0; i < arr.length; i++) {\n var tag = arr[i]\n\n if (tag === 'node' || tag === 'electron' || tag === 'node-webkit') {\n tags.runtime = tag\n } else if (tag === 'napi') {\n tags.napi = true\n } else if (tag.slice(0, 3) === 'abi') {\n tags.abi = tag.slice(3)\n } else if (tag.slice(0, 2) === 'uv') {\n tags.uv = tag.slice(2)\n } else if (tag.slice(0, 4) === 'armv') {\n tags.armv = tag.slice(4)\n } else if (tag === 'glibc' || tag === 'musl') {\n tags.libc = tag\n } else {\n continue\n }\n\n tags.specificity++\n }\n\n return tags\n}\n\nfunction matchTags (runtime, abi) {\n return function (tags) {\n if (tags == null) return false\n if (tags.runtime !== runtime && !runtimeAgnostic(tags)) return false\n if (tags.abi !== abi && !tags.napi) return false\n if (tags.uv && tags.uv !== uv) return false\n if (tags.armv && tags.armv !== armv) return false\n if (tags.libc && tags.libc !== libc) return false\n\n return true\n }\n}\n\nfunction runtimeAgnostic (tags) {\n return tags.runtime === 'node' && tags.napi\n}\n\nfunction compareTags (runtime) {\n // Precedence: non-agnostic runtime, abi over napi, then by specificity.\n return function (a, b) {\n if (a.runtime !== b.runtime) {\n return a.runtime === runtime ? -1 : 1\n } else if (a.abi !== b.abi) {\n return a.abi ? -1 : 1\n } else if (a.specificity !== b.specificity) {\n return a.specificity > b.specificity ? -1 : 1\n } else {\n return 0\n }\n }\n}\n\nfunction isElectron () {\n if (process.versions && process.versions.electron) return true\n if (process.env.ELECTRON_RUN_AS_NODE) return true\n return typeof window !== 'undefined' && window.process && window.process.type === 'renderer'\n}\n\nfunction isAlpine (platform) {\n return platform === 'linux' && fs.existsSync('/etc/alpine-release')\n}\n\n// Exposed for unit tests\n// TODO: move to lib\nload.parseTags = parseTags\nload.matchTags = matchTags\nload.compareTags = compareTags\nload.parseTuple = parseTuple\nload.matchTuple = matchTuple\nload.compareTuples = compareTuples\n", "'use strict';\n\n/**\n * Masks a buffer using the given mask.\n *\n * @param {Buffer} source The buffer to mask\n * @param {Buffer} mask The mask to use\n * @param {Buffer} output The buffer where to store the result\n * @param {Number} offset The offset at which to start writing\n * @param {Number} length The number of bytes to mask.\n * @public\n */\nconst mask = (source, mask, output, offset, length) => {\n for (var i = 0; i < length; i++) {\n output[offset + i] = source[i] ^ mask[i & 3];\n }\n};\n\n/**\n * Unmasks a buffer using the given mask.\n *\n * @param {Buffer} buffer The buffer to unmask\n * @param {Buffer} mask The mask to use\n * @public\n */\nconst unmask = (buffer, mask) => {\n // Required until https://github.com/nodejs/node/issues/9006 is resolved.\n const length = buffer.length;\n for (var i = 0; i < length; i++) {\n buffer[i] ^= mask[i & 3];\n }\n};\n\nmodule.exports = { mask, unmask };\n", "'use strict';\n\ntry {\n module.exports = require('node-gyp-build')(__dirname);\n} catch (e) {\n module.exports = require('./fallback');\n}\n", "'use strict';\n\nconst { EMPTY_BUFFER } = require('./constants');\n\n/**\n * Merges an array of buffers into a new buffer.\n *\n * @param {Buffer[]} list The array of buffers to concat\n * @param {Number} totalLength The total length of buffers in the list\n * @return {Buffer} The resulting buffer\n * @public\n */\nfunction concat(list, totalLength) {\n if (list.length === 0) return EMPTY_BUFFER;\n if (list.length === 1) return list[0];\n\n const target = Buffer.allocUnsafe(totalLength);\n let offset = 0;\n\n for (let i = 0; i < list.length; i++) {\n const buf = list[i];\n target.set(buf, offset);\n offset += buf.length;\n }\n\n if (offset < totalLength) return target.slice(0, offset);\n\n return target;\n}\n\n/**\n * Masks a buffer using the given mask.\n *\n * @param {Buffer} source The buffer to mask\n * @param {Buffer} mask The mask to use\n * @param {Buffer} output The buffer where to store the result\n * @param {Number} offset The offset at which to start writing\n * @param {Number} length The number of bytes to mask.\n * @public\n */\nfunction _mask(source, mask, output, offset, length) {\n for (let i = 0; i < length; i++) {\n output[offset + i] = source[i] ^ mask[i & 3];\n }\n}\n\n/**\n * Unmasks a buffer using the given mask.\n *\n * @param {Buffer} buffer The buffer to unmask\n * @param {Buffer} mask The mask to use\n * @public\n */\nfunction _unmask(buffer, mask) {\n // Required until https://github.com/nodejs/node/issues/9006 is resolved.\n const length = buffer.length;\n for (let i = 0; i < length; i++) {\n buffer[i] ^= mask[i & 3];\n }\n}\n\n/**\n * Converts a buffer to an `ArrayBuffer`.\n *\n * @param {Buffer} buf The buffer to convert\n * @return {ArrayBuffer} Converted buffer\n * @public\n */\nfunction toArrayBuffer(buf) {\n if (buf.byteLength === buf.buffer.byteLength) {\n return buf.buffer;\n }\n\n return buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength);\n}\n\n/**\n * Converts `data` to a `Buffer`.\n *\n * @param {*} data The data to convert\n * @return {Buffer} The buffer\n * @throws {TypeError}\n * @public\n */\nfunction toBuffer(data) {\n toBuffer.readOnly = true;\n\n if (Buffer.isBuffer(data)) return data;\n\n let buf;\n\n if (data instanceof ArrayBuffer) {\n buf = Buffer.from(data);\n } else if (ArrayBuffer.isView(data)) {\n buf = Buffer.from(data.buffer, data.byteOffset, data.byteLength);\n } else {\n buf = Buffer.from(data);\n toBuffer.readOnly = false;\n }\n\n return buf;\n}\n\ntry {\n const bufferUtil = require('bufferutil');\n const bu = bufferUtil.BufferUtil || bufferUtil;\n\n module.exports = {\n concat,\n mask(source, mask, output, offset, length) {\n if (length < 48) _mask(source, mask, output, offset, length);\n else bu.mask(source, mask, output, offset, length);\n },\n toArrayBuffer,\n toBuffer,\n unmask(buffer, mask) {\n if (buffer.length < 32) _unmask(buffer, mask);\n else bu.unmask(buffer, mask);\n }\n };\n} catch (e) /* istanbul ignore next */ {\n module.exports = {\n concat,\n mask: _mask,\n toArrayBuffer,\n toBuffer,\n unmask: _unmask\n };\n}\n", "'use strict';\n\nconst kDone = Symbol('kDone');\nconst kRun = Symbol('kRun');\n\n/**\n * A very simple job queue with adjustable concurrency. Adapted from\n * https://github.com/STRML/async-limiter\n */\nclass Limiter {\n /**\n * Creates a new `Limiter`.\n *\n * @param {Number} [concurrency=Infinity] The maximum number of jobs allowed\n * to run concurrently\n */\n constructor(concurrency) {\n this[kDone] = () => {\n this.pending--;\n this[kRun]();\n };\n this.concurrency = concurrency || Infinity;\n this.jobs = [];\n this.pending = 0;\n }\n\n /**\n * Adds a job to the queue.\n *\n * @param {Function} job The job to run\n * @public\n */\n add(job) {\n this.jobs.push(job);\n this[kRun]();\n }\n\n /**\n * Removes a job from the queue and runs it if possible.\n *\n * @private\n */\n [kRun]() {\n if (this.pending === this.concurrency) return;\n\n if (this.jobs.length) {\n const job = this.jobs.shift();\n\n this.pending++;\n job(this[kDone]);\n }\n }\n}\n\nmodule.exports = Limiter;\n", "'use strict';\n\nconst zlib = require('zlib');\n\nconst bufferUtil = require('./buffer-util');\nconst Limiter = require('./limiter');\nconst { kStatusCode, NOOP } = require('./constants');\n\nconst TRAILER = Buffer.from([0x00, 0x00, 0xff, 0xff]);\nconst kPerMessageDeflate = Symbol('permessage-deflate');\nconst kTotalLength = Symbol('total-length');\nconst kCallback = Symbol('callback');\nconst kBuffers = Symbol('buffers');\nconst kError = Symbol('error');\n\n//\n// We limit zlib concurrency, which prevents severe memory fragmentation\n// as documented in https://github.com/nodejs/node/issues/8871#issuecomment-250915913\n// and https://github.com/websockets/ws/issues/1202\n//\n// Intentionally global; it's the global thread pool that's an issue.\n//\nlet zlibLimiter;\n\n/**\n * permessage-deflate implementation.\n */\nclass PerMessageDeflate {\n /**\n * Creates a PerMessageDeflate instance.\n *\n * @param {Object} [options] Configuration options\n * @param {Boolean} [options.serverNoContextTakeover=false] Request/accept\n * disabling of server context takeover\n * @param {Boolean} [options.clientNoContextTakeover=false] Advertise/\n * acknowledge disabling of client context takeover\n * @param {(Boolean|Number)} [options.serverMaxWindowBits] Request/confirm the\n * use of a custom server window size\n * @param {(Boolean|Number)} [options.clientMaxWindowBits] Advertise support\n * for, or request, a custom client window size\n * @param {Object} [options.zlibDeflateOptions] Options to pass to zlib on\n * deflate\n * @param {Object} [options.zlibInflateOptions] Options to pass to zlib on\n * inflate\n * @param {Number} [options.threshold=1024] Size (in bytes) below which\n * messages should not be compressed\n * @param {Number} [options.concurrencyLimit=10] The number of concurrent\n * calls to zlib\n * @param {Boolean} [isServer=false] Create the instance in either server or\n * client mode\n * @param {Number} [maxPayload=0] The maximum allowed message length\n */\n constructor(options, isServer, maxPayload) {\n this._maxPayload = maxPayload | 0;\n this._options = options || {};\n this._threshold =\n this._options.threshold !== undefined ? this._options.threshold : 1024;\n this._isServer = !!isServer;\n this._deflate = null;\n this._inflate = null;\n\n this.params = null;\n\n if (!zlibLimiter) {\n const concurrency =\n this._options.concurrencyLimit !== undefined\n ? this._options.concurrencyLimit\n : 10;\n zlibLimiter = new Limiter(concurrency);\n }\n }\n\n /**\n * @type {String}\n */\n static get extensionName() {\n return 'permessage-deflate';\n }\n\n /**\n * Create an extension negotiation offer.\n *\n * @return {Object} Extension parameters\n * @public\n */\n offer() {\n const params = {};\n\n if (this._options.serverNoContextTakeover) {\n params.server_no_context_takeover = true;\n }\n if (this._options.clientNoContextTakeover) {\n params.client_no_context_takeover = true;\n }\n if (this._options.serverMaxWindowBits) {\n params.server_max_window_bits = this._options.serverMaxWindowBits;\n }\n if (this._options.clientMaxWindowBits) {\n params.client_max_window_bits = this._options.clientMaxWindowBits;\n } else if (this._options.clientMaxWindowBits == null) {\n params.client_max_window_bits = true;\n }\n\n return params;\n }\n\n /**\n * Accept an extension negotiation offer/response.\n *\n * @param {Array} configurations The extension negotiation offers/reponse\n * @return {Object} Accepted configuration\n * @public\n */\n accept(configurations) {\n configurations = this.normalizeParams(configurations);\n\n this.params = this._isServer\n ? this.acceptAsServer(configurations)\n : this.acceptAsClient(configurations);\n\n return this.params;\n }\n\n /**\n * Releases all resources used by the extension.\n *\n * @public\n */\n cleanup() {\n if (this._inflate) {\n this._inflate.close();\n this._inflate = null;\n }\n\n if (this._deflate) {\n const callback = this._deflate[kCallback];\n\n this._deflate.close();\n this._deflate = null;\n\n if (callback) {\n callback(\n new Error(\n 'The deflate stream was closed while data was being processed'\n )\n );\n }\n }\n }\n\n /**\n * Accept an extension negotiation offer.\n *\n * @param {Array} offers The extension negotiation offers\n * @return {Object} Accepted configuration\n * @private\n */\n acceptAsServer(offers) {\n const opts = this._options;\n const accepted = offers.find((params) => {\n if (\n (opts.serverNoContextTakeover === false &&\n params.server_no_context_takeover) ||\n (params.server_max_window_bits &&\n (opts.serverMaxWindowBits === false ||\n (typeof opts.serverMaxWindowBits === 'number' &&\n opts.serverMaxWindowBits > params.server_max_window_bits))) ||\n (typeof opts.clientMaxWindowBits === 'number' &&\n !params.client_max_window_bits)\n ) {\n return false;\n }\n\n return true;\n });\n\n if (!accepted) {\n throw new Error('None of the extension offers can be accepted');\n }\n\n if (opts.serverNoContextTakeover) {\n accepted.server_no_context_takeover = true;\n }\n if (opts.clientNoContextTakeover) {\n accepted.client_no_context_takeover = true;\n }\n if (typeof opts.serverMaxWindowBits === 'number') {\n accepted.server_max_window_bits = opts.serverMaxWindowBits;\n }\n if (typeof opts.clientMaxWindowBits === 'number') {\n accepted.client_max_window_bits = opts.clientMaxWindowBits;\n } else if (\n accepted.client_max_window_bits === true ||\n opts.clientMaxWindowBits === false\n ) {\n delete accepted.client_max_window_bits;\n }\n\n return accepted;\n }\n\n /**\n * Accept the extension negotiation response.\n *\n * @param {Array} response The extension negotiation response\n * @return {Object} Accepted configuration\n * @private\n */\n acceptAsClient(response) {\n const params = response[0];\n\n if (\n this._options.clientNoContextTakeover === false &&\n params.client_no_context_takeover\n ) {\n throw new Error('Unexpected parameter \"client_no_context_takeover\"');\n }\n\n if (!params.client_max_window_bits) {\n if (typeof this._options.clientMaxWindowBits === 'number') {\n params.client_max_window_bits = this._options.clientMaxWindowBits;\n }\n } else if (\n this._options.clientMaxWindowBits === false ||\n (typeof this._options.clientMaxWindowBits === 'number' &&\n params.client_max_window_bits > this._options.clientMaxWindowBits)\n ) {\n throw new Error(\n 'Unexpected or invalid parameter \"client_max_window_bits\"'\n );\n }\n\n return params;\n }\n\n /**\n * Normalize parameters.\n *\n * @param {Array} configurations The extension negotiation offers/reponse\n * @return {Array} The offers/response with normalized parameters\n * @private\n */\n normalizeParams(configurations) {\n configurations.forEach((params) => {\n Object.keys(params).forEach((key) => {\n let value = params[key];\n\n if (value.length > 1) {\n throw new Error(`Parameter \"${key}\" must have only a single value`);\n }\n\n value = value[0];\n\n if (key === 'client_max_window_bits') {\n if (value !== true) {\n const num = +value;\n if (!Number.isInteger(num) || num < 8 || num > 15) {\n throw new TypeError(\n `Invalid value for parameter \"${key}\": ${value}`\n );\n }\n value = num;\n } else if (!this._isServer) {\n throw new TypeError(\n `Invalid value for parameter \"${key}\": ${value}`\n );\n }\n } else if (key === 'server_max_window_bits') {\n const num = +value;\n if (!Number.isInteger(num) || num < 8 || num > 15) {\n throw new TypeError(\n `Invalid value for parameter \"${key}\": ${value}`\n );\n }\n value = num;\n } else if (\n key === 'client_no_context_takeover' ||\n key === 'server_no_context_takeover'\n ) {\n if (value !== true) {\n throw new TypeError(\n `Invalid value for parameter \"${key}\": ${value}`\n );\n }\n } else {\n throw new Error(`Unknown parameter \"${key}\"`);\n }\n\n params[key] = value;\n });\n });\n\n return configurations;\n }\n\n /**\n * Decompress data. Concurrency limited.\n *\n * @param {Buffer} data Compressed data\n * @param {Boolean} fin Specifies whether or not this is the last fragment\n * @param {Function} callback Callback\n * @public\n */\n decompress(data, fin, callback) {\n zlibLimiter.add((done) => {\n this._decompress(data, fin, (err, result) => {\n done();\n callback(err, result);\n });\n });\n }\n\n /**\n * Compress data. Concurrency limited.\n *\n * @param {Buffer} data Data to compress\n * @param {Boolean} fin Specifies whether or not this is the last fragment\n * @param {Function} callback Callback\n * @public\n */\n compress(data, fin, callback) {\n zlibLimiter.add((done) => {\n this._compress(data, fin, (err, result) => {\n done();\n callback(err, result);\n });\n });\n }\n\n /**\n * Decompress data.\n *\n * @param {Buffer} data Compressed data\n * @param {Boolean} fin Specifies whether or not this is the last fragment\n * @param {Function} callback Callback\n * @private\n */\n _decompress(data, fin, callback) {\n const endpoint = this._isServer ? 'client' : 'server';\n\n if (!this._inflate) {\n const key = `${endpoint}_max_window_bits`;\n const windowBits =\n typeof this.params[key] !== 'number'\n ? zlib.Z_DEFAULT_WINDOWBITS\n : this.params[key];\n\n this._inflate = zlib.createInflateRaw({\n ...this._options.zlibInflateOptions,\n windowBits\n });\n this._inflate[kPerMessageDeflate] = this;\n this._inflate[kTotalLength] = 0;\n this._inflate[kBuffers] = [];\n this._inflate.on('error', inflateOnError);\n this._inflate.on('data', inflateOnData);\n }\n\n this._inflate[kCallback] = callback;\n\n this._inflate.write(data);\n if (fin) this._inflate.write(TRAILER);\n\n this._inflate.flush(() => {\n const err = this._inflate[kError];\n\n if (err) {\n this._inflate.close();\n this._inflate = null;\n callback(err);\n return;\n }\n\n const data = bufferUtil.concat(\n this._inflate[kBuffers],\n this._inflate[kTotalLength]\n );\n\n if (this._inflate._readableState.endEmitted) {\n this._inflate.close();\n this._inflate = null;\n } else {\n this._inflate[kTotalLength] = 0;\n this._inflate[kBuffers] = [];\n\n if (fin && this.params[`${endpoint}_no_context_takeover`]) {\n this._inflate.reset();\n }\n }\n\n callback(null, data);\n });\n }\n\n /**\n * Compress data.\n *\n * @param {Buffer} data Data to compress\n * @param {Boolean} fin Specifies whether or not this is the last fragment\n * @param {Function} callback Callback\n * @private\n */\n _compress(data, fin, callback) {\n const endpoint = this._isServer ? 'server' : 'client';\n\n if (!this._deflate) {\n const key = `${endpoint}_max_window_bits`;\n const windowBits =\n typeof this.params[key] !== 'number'\n ? zlib.Z_DEFAULT_WINDOWBITS\n : this.params[key];\n\n this._deflate = zlib.createDeflateRaw({\n ...this._options.zlibDeflateOptions,\n windowBits\n });\n\n this._deflate[kTotalLength] = 0;\n this._deflate[kBuffers] = [];\n\n //\n // An `'error'` event is emitted, only on Node.js < 10.0.0, if the\n // `zlib.DeflateRaw` instance is closed while data is being processed.\n // This can happen if `PerMessageDeflate#cleanup()` is called at the wrong\n // time due to an abnormal WebSocket closure.\n //\n this._deflate.on('error', NOOP);\n this._deflate.on('data', deflateOnData);\n }\n\n this._deflate[kCallback] = callback;\n\n this._deflate.write(data);\n this._deflate.flush(zlib.Z_SYNC_FLUSH, () => {\n if (!this._deflate) {\n //\n // The deflate stream was closed while data was being processed.\n //\n return;\n }\n\n let data = bufferUtil.concat(\n this._deflate[kBuffers],\n this._deflate[kTotalLength]\n );\n\n if (fin) data = data.slice(0, data.length - 4);\n\n //\n // Ensure that the callback will not be called again in\n // `PerMessageDeflate#cleanup()`.\n //\n this._deflate[kCallback] = null;\n\n this._deflate[kTotalLength] = 0;\n this._deflate[kBuffers] = [];\n\n if (fin && this.params[`${endpoint}_no_context_takeover`]) {\n this._deflate.reset();\n }\n\n callback(null, data);\n });\n }\n}\n\nmodule.exports = PerMessageDeflate;\n\n/**\n * The listener of the `zlib.DeflateRaw` stream `'data'` event.\n *\n * @param {Buffer} chunk A chunk of data\n * @private\n */\nfunction deflateOnData(chunk) {\n this[kBuffers].push(chunk);\n this[kTotalLength] += chunk.length;\n}\n\n/**\n * The listener of the `zlib.InflateRaw` stream `'data'` event.\n *\n * @param {Buffer} chunk A chunk of data\n * @private\n */\nfunction inflateOnData(chunk) {\n this[kTotalLength] += chunk.length;\n\n if (\n this[kPerMessageDeflate]._maxPayload < 1 ||\n this[kTotalLength] <= this[kPerMessageDeflate]._maxPayload\n ) {\n this[kBuffers].push(chunk);\n return;\n }\n\n this[kError] = new RangeError('Max payload size exceeded');\n this[kError][kStatusCode] = 1009;\n this.removeListener('data', inflateOnData);\n this.reset();\n}\n\n/**\n * The listener of the `zlib.InflateRaw` stream `'error'` event.\n *\n * @param {Error} err The emitted error\n * @private\n */\nfunction inflateOnError(err) {\n //\n // There is no need to call `Zlib#close()` as the handle is automatically\n // closed when an error is emitted.\n //\n this[kPerMessageDeflate]._inflate = null;\n err[kStatusCode] = 1007;\n this[kCallback](err);\n}\n", "'use strict';\n\n/**\n * Checks if a given buffer contains only correct UTF-8.\n * Ported from https://www.cl.cam.ac.uk/%7Emgk25/ucs/utf8_check.c by\n * Markus Kuhn.\n *\n * @param {Buffer} buf The buffer to check\n * @return {Boolean} `true` if `buf` contains only correct UTF-8, else `false`\n * @public\n */\nfunction isValidUTF8(buf) {\n const len = buf.length;\n let i = 0;\n\n while (i < len) {\n if ((buf[i] & 0x80) === 0x00) { // 0xxxxxxx\n i++;\n } else if ((buf[i] & 0xe0) === 0xc0) { // 110xxxxx 10xxxxxx\n if (\n i + 1 === len ||\n (buf[i + 1] & 0xc0) !== 0x80 ||\n (buf[i] & 0xfe) === 0xc0 // overlong\n ) {\n return false;\n }\n\n i += 2;\n } else if ((buf[i] & 0xf0) === 0xe0) { // 1110xxxx 10xxxxxx 10xxxxxx\n if (\n i + 2 >= len ||\n (buf[i + 1] & 0xc0) !== 0x80 ||\n (buf[i + 2] & 0xc0) !== 0x80 ||\n buf[i] === 0xe0 && (buf[i + 1] & 0xe0) === 0x80 || // overlong\n buf[i] === 0xed && (buf[i + 1] & 0xe0) === 0xa0 // surrogate (U+D800 - U+DFFF)\n ) {\n return false;\n }\n\n i += 3;\n } else if ((buf[i] & 0xf8) === 0xf0) { // 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx\n if (\n i + 3 >= len ||\n (buf[i + 1] & 0xc0) !== 0x80 ||\n (buf[i + 2] & 0xc0) !== 0x80 ||\n (buf[i + 3] & 0xc0) !== 0x80 ||\n buf[i] === 0xf0 && (buf[i + 1] & 0xf0) === 0x80 || // overlong\n buf[i] === 0xf4 && buf[i + 1] > 0x8f || buf[i] > 0xf4 // > U+10FFFF\n ) {\n return false;\n }\n\n i += 4;\n } else {\n return false;\n }\n }\n\n return true;\n}\n\nmodule.exports = isValidUTF8;\n", "'use strict';\n\ntry {\n module.exports = require('node-gyp-build')(__dirname);\n} catch (e) {\n module.exports = require('./fallback');\n}\n", "'use strict';\n\n/**\n * Checks if a status code is allowed in a close frame.\n *\n * @param {Number} code The status code\n * @return {Boolean} `true` if the status code is valid, else `false`\n * @public\n */\nfunction isValidStatusCode(code) {\n return (\n (code >= 1000 &&\n code <= 1014 &&\n code !== 1004 &&\n code !== 1005 &&\n code !== 1006) ||\n (code >= 3000 && code <= 4999)\n );\n}\n\n/**\n * Checks if a given buffer contains only correct UTF-8.\n * Ported from https://www.cl.cam.ac.uk/%7Emgk25/ucs/utf8_check.c by\n * Markus Kuhn.\n *\n * @param {Buffer} buf The buffer to check\n * @return {Boolean} `true` if `buf` contains only correct UTF-8, else `false`\n * @public\n */\nfunction _isValidUTF8(buf) {\n const len = buf.length;\n let i = 0;\n\n while (i < len) {\n if ((buf[i] & 0x80) === 0) {\n // 0xxxxxxx\n i++;\n } else if ((buf[i] & 0xe0) === 0xc0) {\n // 110xxxxx 10xxxxxx\n if (\n i + 1 === len ||\n (buf[i + 1] & 0xc0) !== 0x80 ||\n (buf[i] & 0xfe) === 0xc0 // Overlong\n ) {\n return false;\n }\n\n i += 2;\n } else if ((buf[i] & 0xf0) === 0xe0) {\n // 1110xxxx 10xxxxxx 10xxxxxx\n if (\n i + 2 >= len ||\n (buf[i + 1] & 0xc0) !== 0x80 ||\n (buf[i + 2] & 0xc0) !== 0x80 ||\n (buf[i] === 0xe0 && (buf[i + 1] & 0xe0) === 0x80) || // Overlong\n (buf[i] === 0xed && (buf[i + 1] & 0xe0) === 0xa0) // Surrogate (U+D800 - U+DFFF)\n ) {\n return false;\n }\n\n i += 3;\n } else if ((buf[i] & 0xf8) === 0xf0) {\n // 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx\n if (\n i + 3 >= len ||\n (buf[i + 1] & 0xc0) !== 0x80 ||\n (buf[i + 2] & 0xc0) !== 0x80 ||\n (buf[i + 3] & 0xc0) !== 0x80 ||\n (buf[i] === 0xf0 && (buf[i + 1] & 0xf0) === 0x80) || // Overlong\n (buf[i] === 0xf4 && buf[i + 1] > 0x8f) ||\n buf[i] > 0xf4 // > U+10FFFF\n ) {\n return false;\n }\n\n i += 4;\n } else {\n return false;\n }\n }\n\n return true;\n}\n\ntry {\n let isValidUTF8 = require('utf-8-validate');\n\n /* istanbul ignore if */\n if (typeof isValidUTF8 === 'object') {\n isValidUTF8 = isValidUTF8.Validation.isValidUTF8; // utf-8-validate@<3.0.0\n }\n\n module.exports = {\n isValidStatusCode,\n isValidUTF8(buf) {\n return buf.length < 150 ? _isValidUTF8(buf) : isValidUTF8(buf);\n }\n };\n} catch (e) /* istanbul ignore next */ {\n module.exports = {\n isValidStatusCode,\n isValidUTF8: _isValidUTF8\n };\n}\n", "'use strict';\n\nconst { Writable } = require('stream');\n\nconst PerMessageDeflate = require('./permessage-deflate');\nconst {\n BINARY_TYPES,\n EMPTY_BUFFER,\n kStatusCode,\n kWebSocket\n} = require('./constants');\nconst { concat, toArrayBuffer, unmask } = require('./buffer-util');\nconst { isValidStatusCode, isValidUTF8 } = require('./validation');\n\nconst GET_INFO = 0;\nconst GET_PAYLOAD_LENGTH_16 = 1;\nconst GET_PAYLOAD_LENGTH_64 = 2;\nconst GET_MASK = 3;\nconst GET_DATA = 4;\nconst INFLATING = 5;\n\n/**\n * HyBi Receiver implementation.\n *\n * @extends stream.Writable\n */\nclass Receiver extends Writable {\n /**\n * Creates a Receiver instance.\n *\n * @param {String} [binaryType=nodebuffer] The type for binary data\n * @param {Object} [extensions] An object containing the negotiated extensions\n * @param {Boolean} [isServer=false] Specifies whether to operate in client or\n * server mode\n * @param {Number} [maxPayload=0] The maximum allowed message length\n */\n constructor(binaryType, extensions, isServer, maxPayload) {\n super();\n\n this._binaryType = binaryType || BINARY_TYPES[0];\n this[kWebSocket] = undefined;\n this._extensions = extensions || {};\n this._isServer = !!isServer;\n this._maxPayload = maxPayload | 0;\n\n this._bufferedBytes = 0;\n this._buffers = [];\n\n this._compressed = false;\n this._payloadLength = 0;\n this._mask = undefined;\n this._fragmented = 0;\n this._masked = false;\n this._fin = false;\n this._opcode = 0;\n\n this._totalPayloadLength = 0;\n this._messageLength = 0;\n this._fragments = [];\n\n this._state = GET_INFO;\n this._loop = false;\n }\n\n /**\n * Implements `Writable.prototype._write()`.\n *\n * @param {Buffer} chunk The chunk of data to write\n * @param {String} encoding The character encoding of `chunk`\n * @param {Function} cb Callback\n * @private\n */\n _write(chunk, encoding, cb) {\n if (this._opcode === 0x08 && this._state == GET_INFO) return cb();\n\n this._bufferedBytes += chunk.length;\n this._buffers.push(chunk);\n this.startLoop(cb);\n }\n\n /**\n * Consumes `n` bytes from the buffered data.\n *\n * @param {Number} n The number of bytes to consume\n * @return {Buffer} The consumed bytes\n * @private\n */\n consume(n) {\n this._bufferedBytes -= n;\n\n if (n === this._buffers[0].length) return this._buffers.shift();\n\n if (n < this._buffers[0].length) {\n const buf = this._buffers[0];\n this._buffers[0] = buf.slice(n);\n return buf.slice(0, n);\n }\n\n const dst = Buffer.allocUnsafe(n);\n\n do {\n const buf = this._buffers[0];\n const offset = dst.length - n;\n\n if (n >= buf.length) {\n dst.set(this._buffers.shift(), offset);\n } else {\n dst.set(new Uint8Array(buf.buffer, buf.byteOffset, n), offset);\n this._buffers[0] = buf.slice(n);\n }\n\n n -= buf.length;\n } while (n > 0);\n\n return dst;\n }\n\n /**\n * Starts the parsing loop.\n *\n * @param {Function} cb Callback\n * @private\n */\n startLoop(cb) {\n let err;\n this._loop = true;\n\n do {\n switch (this._state) {\n case GET_INFO:\n err = this.getInfo();\n break;\n case GET_PAYLOAD_LENGTH_16:\n err = this.getPayloadLength16();\n break;\n case GET_PAYLOAD_LENGTH_64:\n err = this.getPayloadLength64();\n break;\n case GET_MASK:\n this.getMask();\n break;\n case GET_DATA:\n err = this.getData(cb);\n break;\n default:\n // `INFLATING`\n this._loop = false;\n return;\n }\n } while (this._loop);\n\n cb(err);\n }\n\n /**\n * Reads the first two bytes of a frame.\n *\n * @return {(RangeError|undefined)} A possible error\n * @private\n */\n getInfo() {\n if (this._bufferedBytes < 2) {\n this._loop = false;\n return;\n }\n\n const buf = this.consume(2);\n\n if ((buf[0] & 0x30) !== 0x00) {\n this._loop = false;\n return error(RangeError, 'RSV2 and RSV3 must be clear', true, 1002);\n }\n\n const compressed = (buf[0] & 0x40) === 0x40;\n\n if (compressed && !this._extensions[PerMessageDeflate.extensionName]) {\n this._loop = false;\n return error(RangeError, 'RSV1 must be clear', true, 1002);\n }\n\n this._fin = (buf[0] & 0x80) === 0x80;\n this._opcode = buf[0] & 0x0f;\n this._payloadLength = buf[1] & 0x7f;\n\n if (this._opcode === 0x00) {\n if (compressed) {\n this._loop = false;\n return error(RangeError, 'RSV1 must be clear', true, 1002);\n }\n\n if (!this._fragmented) {\n this._loop = false;\n return error(RangeError, 'invalid opcode 0', true, 1002);\n }\n\n this._opcode = this._fragmented;\n } else if (this._opcode === 0x01 || this._opcode === 0x02) {\n if (this._fragmented) {\n this._loop = false;\n return error(RangeError, `invalid opcode ${this._opcode}`, true, 1002);\n }\n\n this._compressed = compressed;\n } else if (this._opcode > 0x07 && this._opcode < 0x0b) {\n if (!this._fin) {\n this._loop = false;\n return error(RangeError, 'FIN must be set', true, 1002);\n }\n\n if (compressed) {\n this._loop = false;\n return error(RangeError, 'RSV1 must be clear', true, 1002);\n }\n\n if (this._payloadLength > 0x7d) {\n this._loop = false;\n return error(\n RangeError,\n `invalid payload length ${this._payloadLength}`,\n true,\n 1002\n );\n }\n } else {\n this._loop = false;\n return error(RangeError, `invalid opcode ${this._opcode}`, true, 1002);\n }\n\n if (!this._fin && !this._fragmented) this._fragmented = this._opcode;\n this._masked = (buf[1] & 0x80) === 0x80;\n\n if (this._isServer) {\n if (!this._masked) {\n this._loop = false;\n return error(RangeError, 'MASK must be set', true, 1002);\n }\n } else if (this._masked) {\n this._loop = false;\n return error(RangeError, 'MASK must be clear', true, 1002);\n }\n\n if (this._payloadLength === 126) this._state = GET_PAYLOAD_LENGTH_16;\n else if (this._payloadLength === 127) this._state = GET_PAYLOAD_LENGTH_64;\n else return this.haveLength();\n }\n\n /**\n * Gets extended payload length (7+16).\n *\n * @return {(RangeError|undefined)} A possible error\n * @private\n */\n getPayloadLength16() {\n if (this._bufferedBytes < 2) {\n this._loop = false;\n return;\n }\n\n this._payloadLength = this.consume(2).readUInt16BE(0);\n return this.haveLength();\n }\n\n /**\n * Gets extended payload length (7+64).\n *\n * @return {(RangeError|undefined)} A possible error\n * @private\n */\n getPayloadLength64() {\n if (this._bufferedBytes < 8) {\n this._loop = false;\n return;\n }\n\n const buf = this.consume(8);\n const num = buf.readUInt32BE(0);\n\n //\n // The maximum safe integer in JavaScript is 2^53 - 1. An error is returned\n // if payload length is greater than this number.\n //\n if (num > Math.pow(2, 53 - 32) - 1) {\n this._loop = false;\n return error(\n RangeError,\n 'Unsupported WebSocket frame: payload length > 2^53 - 1',\n false,\n 1009\n );\n }\n\n this._payloadLength = num * Math.pow(2, 32) + buf.readUInt32BE(4);\n return this.haveLength();\n }\n\n /**\n * Payload length has been read.\n *\n * @return {(RangeError|undefined)} A possible error\n * @private\n */\n haveLength() {\n if (this._payloadLength && this._opcode < 0x08) {\n this._totalPayloadLength += this._payloadLength;\n if (this._totalPayloadLength > this._maxPayload && this._maxPayload > 0) {\n this._loop = false;\n return error(RangeError, 'Max payload size exceeded', false, 1009);\n }\n }\n\n if (this._masked) this._state = GET_MASK;\n else this._state = GET_DATA;\n }\n\n /**\n * Reads mask bytes.\n *\n * @private\n */\n getMask() {\n if (this._bufferedBytes < 4) {\n this._loop = false;\n return;\n }\n\n this._mask = this.consume(4);\n this._state = GET_DATA;\n }\n\n /**\n * Reads data bytes.\n *\n * @param {Function} cb Callback\n * @return {(Error|RangeError|undefined)} A possible error\n * @private\n */\n getData(cb) {\n let data = EMPTY_BUFFER;\n\n if (this._payloadLength) {\n if (this._bufferedBytes < this._payloadLength) {\n this._loop = false;\n return;\n }\n\n data = this.consume(this._payloadLength);\n if (this._masked) unmask(data, this._mask);\n }\n\n if (this._opcode > 0x07) return this.controlMessage(data);\n\n if (this._compressed) {\n this._state = INFLATING;\n this.decompress(data, cb);\n return;\n }\n\n if (data.length) {\n //\n // This message is not compressed so its lenght is the sum of the payload\n // length of all fragments.\n //\n this._messageLength = this._totalPayloadLength;\n this._fragments.push(data);\n }\n\n return this.dataMessage();\n }\n\n /**\n * Decompresses data.\n *\n * @param {Buffer} data Compressed data\n * @param {Function} cb Callback\n * @private\n */\n decompress(data, cb) {\n const perMessageDeflate = this._extensions[PerMessageDeflate.extensionName];\n\n perMessageDeflate.decompress(data, this._fin, (err, buf) => {\n if (err) return cb(err);\n\n if (buf.length) {\n this._messageLength += buf.length;\n if (this._messageLength > this._maxPayload && this._maxPayload > 0) {\n return cb(\n error(RangeError, 'Max payload size exceeded', false, 1009)\n );\n }\n\n this._fragments.push(buf);\n }\n\n const er = this.dataMessage();\n if (er) return cb(er);\n\n this.startLoop(cb);\n });\n }\n\n /**\n * Handles a data message.\n *\n * @return {(Error|undefined)} A possible error\n * @private\n */\n dataMessage() {\n if (this._fin) {\n const messageLength = this._messageLength;\n const fragments = this._fragments;\n\n this._totalPayloadLength = 0;\n this._messageLength = 0;\n this._fragmented = 0;\n this._fragments = [];\n\n if (this._opcode === 2) {\n let data;\n\n if (this._binaryType === 'nodebuffer') {\n data = concat(fragments, messageLength);\n } else if (this._binaryType === 'arraybuffer') {\n data = toArrayBuffer(concat(fragments, messageLength));\n } else {\n data = fragments;\n }\n\n this.emit('message', data);\n } else {\n const buf = concat(fragments, messageLength);\n\n if (!isValidUTF8(buf)) {\n this._loop = false;\n return error(Error, 'invalid UTF-8 sequence', true, 1007);\n }\n\n this.emit('message', buf.toString());\n }\n }\n\n this._state = GET_INFO;\n }\n\n /**\n * Handles a control message.\n *\n * @param {Buffer} data Data to handle\n * @return {(Error|RangeError|undefined)} A possible error\n * @private\n */\n controlMessage(data) {\n if (this._opcode === 0x08) {\n this._loop = false;\n\n if (data.length === 0) {\n this.emit('conclude', 1005, '');\n this.end();\n } else if (data.length === 1) {\n return error(RangeError, 'invalid payload length 1', true, 1002);\n } else {\n const code = data.readUInt16BE(0);\n\n if (!isValidStatusCode(code)) {\n return error(RangeError, `invalid status code ${code}`, true, 1002);\n }\n\n const buf = data.slice(2);\n\n if (!isValidUTF8(buf)) {\n return error(Error, 'invalid UTF-8 sequence', true, 1007);\n }\n\n this.emit('conclude', code, buf.toString());\n this.end();\n }\n } else if (this._opcode === 0x09) {\n this.emit('ping', data);\n } else {\n this.emit('pong', data);\n }\n\n this._state = GET_INFO;\n }\n}\n\nmodule.exports = Receiver;\n\n/**\n * Builds an error object.\n *\n * @param {(Error|RangeError)} ErrorCtor The error constructor\n * @param {String} message The error message\n * @param {Boolean} prefix Specifies whether or not to add a default prefix to\n * `message`\n * @param {Number} statusCode The status code\n * @return {(Error|RangeError)} The error\n * @private\n */\nfunction error(ErrorCtor, message, prefix, statusCode) {\n const err = new ErrorCtor(\n prefix ? `Invalid WebSocket frame: ${message}` : message\n );\n\n Error.captureStackTrace(err, error);\n err[kStatusCode] = statusCode;\n return err;\n}\n", "'use strict';\n\nconst { randomFillSync } = require('crypto');\n\nconst PerMessageDeflate = require('./permessage-deflate');\nconst { EMPTY_BUFFER } = require('./constants');\nconst { isValidStatusCode } = require('./validation');\nconst { mask: applyMask, toBuffer } = require('./buffer-util');\n\nconst mask = Buffer.alloc(4);\n\n/**\n * HyBi Sender implementation.\n */\nclass Sender {\n /**\n * Creates a Sender instance.\n *\n * @param {net.Socket} socket The connection socket\n * @param {Object} [extensions] An object containing the negotiated extensions\n */\n constructor(socket, extensions) {\n this._extensions = extensions || {};\n this._socket = socket;\n\n this._firstFragment = true;\n this._compress = false;\n\n this._bufferedBytes = 0;\n this._deflating = false;\n this._queue = [];\n }\n\n /**\n * Frames a piece of data according to the HyBi WebSocket protocol.\n *\n * @param {Buffer} data The data to frame\n * @param {Object} options Options object\n * @param {Number} options.opcode The opcode\n * @param {Boolean} [options.readOnly=false] Specifies whether `data` can be\n * modified\n * @param {Boolean} [options.fin=false] Specifies whether or not to set the\n * FIN bit\n * @param {Boolean} [options.mask=false] Specifies whether or not to mask\n * `data`\n * @param {Boolean} [options.rsv1=false] Specifies whether or not to set the\n * RSV1 bit\n * @return {Buffer[]} The framed data as a list of `Buffer` instances\n * @public\n */\n static frame(data, options) {\n const merge = options.mask && options.readOnly;\n let offset = options.mask ? 6 : 2;\n let payloadLength = data.length;\n\n if (data.length >= 65536) {\n offset += 8;\n payloadLength = 127;\n } else if (data.length > 125) {\n offset += 2;\n payloadLength = 126;\n }\n\n const target = Buffer.allocUnsafe(merge ? data.length + offset : offset);\n\n target[0] = options.fin ? options.opcode | 0x80 : options.opcode;\n if (options.rsv1) target[0] |= 0x40;\n\n target[1] = payloadLength;\n\n if (payloadLength === 126) {\n target.writeUInt16BE(data.length, 2);\n } else if (payloadLength === 127) {\n target.writeUInt32BE(0, 2);\n target.writeUInt32BE(data.length, 6);\n }\n\n if (!options.mask) return [target, data];\n\n randomFillSync(mask, 0, 4);\n\n target[1] |= 0x80;\n target[offset - 4] = mask[0];\n target[offset - 3] = mask[1];\n target[offset - 2] = mask[2];\n target[offset - 1] = mask[3];\n\n if (merge) {\n applyMask(data, mask, target, offset, data.length);\n return [target];\n }\n\n applyMask(data, mask, data, 0, data.length);\n return [target, data];\n }\n\n /**\n * Sends a close message to the other peer.\n *\n * @param {Number} [code] The status code component of the body\n * @param {String} [data] The message component of the body\n * @param {Boolean} [mask=false] Specifies whether or not to mask the message\n * @param {Function} [cb] Callback\n * @public\n */\n close(code, data, mask, cb) {\n let buf;\n\n if (code === undefined) {\n buf = EMPTY_BUFFER;\n } else if (typeof code !== 'number' || !isValidStatusCode(code)) {\n throw new TypeError('First argument must be a valid error code number');\n } else if (data === undefined || data === '') {\n buf = Buffer.allocUnsafe(2);\n buf.writeUInt16BE(code, 0);\n } else {\n const length = Buffer.byteLength(data);\n\n if (length > 123) {\n throw new RangeError('The message must not be greater than 123 bytes');\n }\n\n buf = Buffer.allocUnsafe(2 + length);\n buf.writeUInt16BE(code, 0);\n buf.write(data, 2);\n }\n\n if (this._deflating) {\n this.enqueue([this.doClose, buf, mask, cb]);\n } else {\n this.doClose(buf, mask, cb);\n }\n }\n\n /**\n * Frames and sends a close message.\n *\n * @param {Buffer} data The message to send\n * @param {Boolean} [mask=false] Specifies whether or not to mask `data`\n * @param {Function} [cb] Callback\n * @private\n */\n doClose(data, mask, cb) {\n this.sendFrame(\n Sender.frame(data, {\n fin: true,\n rsv1: false,\n opcode: 0x08,\n mask,\n readOnly: false\n }),\n cb\n );\n }\n\n /**\n * Sends a ping message to the other peer.\n *\n * @param {*} data The message to send\n * @param {Boolean} [mask=false] Specifies whether or not to mask `data`\n * @param {Function} [cb] Callback\n * @public\n */\n ping(data, mask, cb) {\n const buf = toBuffer(data);\n\n if (buf.length > 125) {\n throw new RangeError('The data size must not be greater than 125 bytes');\n }\n\n if (this._deflating) {\n this.enqueue([this.doPing, buf, mask, toBuffer.readOnly, cb]);\n } else {\n this.doPing(buf, mask, toBuffer.readOnly, cb);\n }\n }\n\n /**\n * Frames and sends a ping message.\n *\n * @param {Buffer} data The message to send\n * @param {Boolean} [mask=false] Specifies whether or not to mask `data`\n * @param {Boolean} [readOnly=false] Specifies whether `data` can be modified\n * @param {Function} [cb] Callback\n * @private\n */\n doPing(data, mask, readOnly, cb) {\n this.sendFrame(\n Sender.frame(data, {\n fin: true,\n rsv1: false,\n opcode: 0x09,\n mask,\n readOnly\n }),\n cb\n );\n }\n\n /**\n * Sends a pong message to the other peer.\n *\n * @param {*} data The message to send\n * @param {Boolean} [mask=false] Specifies whether or not to mask `data`\n * @param {Function} [cb] Callback\n * @public\n */\n pong(data, mask, cb) {\n const buf = toBuffer(data);\n\n if (buf.length > 125) {\n throw new RangeError('The data size must not be greater than 125 bytes');\n }\n\n if (this._deflating) {\n this.enqueue([this.doPong, buf, mask, toBuffer.readOnly, cb]);\n } else {\n this.doPong(buf, mask, toBuffer.readOnly, cb);\n }\n }\n\n /**\n * Frames and sends a pong message.\n *\n * @param {Buffer} data The message to send\n * @param {Boolean} [mask=false] Specifies whether or not to mask `data`\n * @param {Boolean} [readOnly=false] Specifies whether `data` can be modified\n * @param {Function} [cb] Callback\n * @private\n */\n doPong(data, mask, readOnly, cb) {\n this.sendFrame(\n Sender.frame(data, {\n fin: true,\n rsv1: false,\n opcode: 0x0a,\n mask,\n readOnly\n }),\n cb\n );\n }\n\n /**\n * Sends a data message to the other peer.\n *\n * @param {*} data The message to send\n * @param {Object} options Options object\n * @param {Boolean} [options.compress=false] Specifies whether or not to\n * compress `data`\n * @param {Boolean} [options.binary=false] Specifies whether `data` is binary\n * or text\n * @param {Boolean} [options.fin=false] Specifies whether the fragment is the\n * last one\n * @param {Boolean} [options.mask=false] Specifies whether or not to mask\n * `data`\n * @param {Function} [cb] Callback\n * @public\n */\n send(data, options, cb) {\n const buf = toBuffer(data);\n const perMessageDeflate = this._extensions[PerMessageDeflate.extensionName];\n let opcode = options.binary ? 2 : 1;\n let rsv1 = options.compress;\n\n if (this._firstFragment) {\n this._firstFragment = false;\n if (rsv1 && perMessageDeflate) {\n rsv1 = buf.length >= perMessageDeflate._threshold;\n }\n this._compress = rsv1;\n } else {\n rsv1 = false;\n opcode = 0;\n }\n\n if (options.fin) this._firstFragment = true;\n\n if (perMessageDeflate) {\n const opts = {\n fin: options.fin,\n rsv1,\n opcode,\n mask: options.mask,\n readOnly: toBuffer.readOnly\n };\n\n if (this._deflating) {\n this.enqueue([this.dispatch, buf, this._compress, opts, cb]);\n } else {\n this.dispatch(buf, this._compress, opts, cb);\n }\n } else {\n this.sendFrame(\n Sender.frame(buf, {\n fin: options.fin,\n rsv1: false,\n opcode,\n mask: options.mask,\n readOnly: toBuffer.readOnly\n }),\n cb\n );\n }\n }\n\n /**\n * Dispatches a data message.\n *\n * @param {Buffer} data The message to send\n * @param {Boolean} [compress=false] Specifies whether or not to compress\n * `data`\n * @param {Object} options Options object\n * @param {Number} options.opcode The opcode\n * @param {Boolean} [options.readOnly=false] Specifies whether `data` can be\n * modified\n * @param {Boolean} [options.fin=false] Specifies whether or not to set the\n * FIN bit\n * @param {Boolean} [options.mask=false] Specifies whether or not to mask\n * `data`\n * @param {Boolean} [options.rsv1=false] Specifies whether or not to set the\n * RSV1 bit\n * @param {Function} [cb] Callback\n * @private\n */\n dispatch(data, compress, options, cb) {\n if (!compress) {\n this.sendFrame(Sender.frame(data, options), cb);\n return;\n }\n\n const perMessageDeflate = this._extensions[PerMessageDeflate.extensionName];\n\n this._bufferedBytes += data.length;\n this._deflating = true;\n perMessageDeflate.compress(data, options.fin, (_, buf) => {\n if (this._socket.destroyed) {\n const err = new Error(\n 'The socket was closed while data was being compressed'\n );\n\n if (typeof cb === 'function') cb(err);\n\n for (let i = 0; i < this._queue.length; i++) {\n const callback = this._queue[i][4];\n\n if (typeof callback === 'function') callback(err);\n }\n\n return;\n }\n\n this._bufferedBytes -= data.length;\n this._deflating = false;\n options.readOnly = false;\n this.sendFrame(Sender.frame(buf, options), cb);\n this.dequeue();\n });\n }\n\n /**\n * Executes queued send operations.\n *\n * @private\n */\n dequeue() {\n while (!this._deflating && this._queue.length) {\n const params = this._queue.shift();\n\n this._bufferedBytes -= params[1].length;\n Reflect.apply(params[0], this, params.slice(1));\n }\n }\n\n /**\n * Enqueues a send operation.\n *\n * @param {Array} params Send operation parameters.\n * @private\n */\n enqueue(params) {\n this._bufferedBytes += params[1].length;\n this._queue.push(params);\n }\n\n /**\n * Sends a frame.\n *\n * @param {Buffer[]} list The frame to send\n * @param {Function} [cb] Callback\n * @private\n */\n sendFrame(list, cb) {\n if (list.length === 2) {\n this._socket.cork();\n this._socket.write(list[0]);\n this._socket.write(list[1], cb);\n this._socket.uncork();\n } else {\n this._socket.write(list[0], cb);\n }\n }\n}\n\nmodule.exports = Sender;\n", "'use strict';\n\n/**\n * Class representing an event.\n *\n * @private\n */\nclass Event {\n /**\n * Create a new `Event`.\n *\n * @param {String} type The name of the event\n * @param {Object} target A reference to the target to which the event was\n * dispatched\n */\n constructor(type, target) {\n this.target = target;\n this.type = type;\n }\n}\n\n/**\n * Class representing a message event.\n *\n * @extends Event\n * @private\n */\nclass MessageEvent extends Event {\n /**\n * Create a new `MessageEvent`.\n *\n * @param {(String|Buffer|ArrayBuffer|Buffer[])} data The received data\n * @param {WebSocket} target A reference to the target to which the event was\n * dispatched\n */\n constructor(data, target) {\n super('message', target);\n\n this.data = data;\n }\n}\n\n/**\n * Class representing a close event.\n *\n * @extends Event\n * @private\n */\nclass CloseEvent extends Event {\n /**\n * Create a new `CloseEvent`.\n *\n * @param {Number} code The status code explaining why the connection is being\n * closed\n * @param {String} reason A human-readable string explaining why the\n * connection is closing\n * @param {WebSocket} target A reference to the target to which the event was\n * dispatched\n */\n constructor(code, reason, target) {\n super('close', target);\n\n this.wasClean = target._closeFrameReceived && target._closeFrameSent;\n this.reason = reason;\n this.code = code;\n }\n}\n\n/**\n * Class representing an open event.\n *\n * @extends Event\n * @private\n */\nclass OpenEvent extends Event {\n /**\n * Create a new `OpenEvent`.\n *\n * @param {WebSocket} target A reference to the target to which the event was\n * dispatched\n */\n constructor(target) {\n super('open', target);\n }\n}\n\n/**\n * Class representing an error event.\n *\n * @extends Event\n * @private\n */\nclass ErrorEvent extends Event {\n /**\n * Create a new `ErrorEvent`.\n *\n * @param {Object} error The error that generated this event\n * @param {WebSocket} target A reference to the target to which the event was\n * dispatched\n */\n constructor(error, target) {\n super('error', target);\n\n this.message = error.message;\n this.error = error;\n }\n}\n\n/**\n * This provides methods for emulating the `EventTarget` interface. It's not\n * meant to be used directly.\n *\n * @mixin\n */\nconst EventTarget = {\n /**\n * Register an event listener.\n *\n * @param {String} type A string representing the event type to listen for\n * @param {Function} listener The listener to add\n * @param {Object} [options] An options object specifies characteristics about\n * the event listener\n * @param {Boolean} [options.once=false] A `Boolean`` indicating that the\n * listener should be invoked at most once after being added. If `true`,\n * the listener would be automatically removed when invoked.\n * @public\n */\n addEventListener(type, listener, options) {\n if (typeof listener !== 'function') return;\n\n function onMessage(data) {\n listener.call(this, new MessageEvent(data, this));\n }\n\n function onClose(code, message) {\n listener.call(this, new CloseEvent(code, message, this));\n }\n\n function onError(error) {\n listener.call(this, new ErrorEvent(error, this));\n }\n\n function onOpen() {\n listener.call(this, new OpenEvent(this));\n }\n\n const method = options && options.once ? 'once' : 'on';\n\n if (type === 'message') {\n onMessage._listener = listener;\n this[method](type, onMessage);\n } else if (type === 'close') {\n onClose._listener = listener;\n this[method](type, onClose);\n } else if (type === 'error') {\n onError._listener = listener;\n this[method](type, onError);\n } else if (type === 'open') {\n onOpen._listener = listener;\n this[method](type, onOpen);\n } else {\n this[method](type, listener);\n }\n },\n\n /**\n * Remove an event listener.\n *\n * @param {String} type A string representing the event type to remove\n * @param {Function} listener The listener to remove\n * @public\n */\n removeEventListener(type, listener) {\n const listeners = this.listeners(type);\n\n for (let i = 0; i < listeners.length; i++) {\n if (listeners[i] === listener || listeners[i]._listener === listener) {\n this.removeListener(type, listeners[i]);\n }\n }\n }\n};\n\nmodule.exports = EventTarget;\n", "'use strict';\n\n//\n// Allowed token characters:\n//\n// '!', '#', '$', '%', '&', ''', '*', '+', '-',\n// '.', 0-9, A-Z, '^', '_', '`', a-z, '|', '~'\n//\n// tokenChars[32] === 0 // ' '\n// tokenChars[33] === 1 // '!'\n// tokenChars[34] === 0 // '\"'\n// ...\n//\n// prettier-ignore\nconst tokenChars = [\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 0 - 15\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 16 - 31\n 0, 1, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, // 32 - 47\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, // 48 - 63\n 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 64 - 79\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, // 80 - 95\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 96 - 111\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0 // 112 - 127\n];\n\n/**\n * Adds an offer to the map of extension offers or a parameter to the map of\n * parameters.\n *\n * @param {Object} dest The map of extension offers or parameters\n * @param {String} name The extension or parameter name\n * @param {(Object|Boolean|String)} elem The extension parameters or the\n * parameter value\n * @private\n */\nfunction push(dest, name, elem) {\n if (dest[name] === undefined) dest[name] = [elem];\n else dest[name].push(elem);\n}\n\n/**\n * Parses the `Sec-WebSocket-Extensions` header into an object.\n *\n * @param {String} header The field value of the header\n * @return {Object} The parsed object\n * @public\n */\nfunction parse(header) {\n const offers = Object.create(null);\n\n if (header === undefined || header === '') return offers;\n\n let params = Object.create(null);\n let mustUnescape = false;\n let isEscaping = false;\n let inQuotes = false;\n let extensionName;\n let paramName;\n let start = -1;\n let end = -1;\n let i = 0;\n\n for (; i < header.length; i++) {\n const code = header.charCodeAt(i);\n\n if (extensionName === undefined) {\n if (end === -1 && tokenChars[code] === 1) {\n if (start === -1) start = i;\n } else if (code === 0x20 /* ' ' */ || code === 0x09 /* '\\t' */) {\n if (end === -1 && start !== -1) end = i;\n } else if (code === 0x3b /* ';' */ || code === 0x2c /* ',' */) {\n if (start === -1) {\n throw new SyntaxError(`Unexpected character at index ${i}`);\n }\n\n if (end === -1) end = i;\n const name = header.slice(start, end);\n if (code === 0x2c) {\n push(offers, name, params);\n params = Object.create(null);\n } else {\n extensionName = name;\n }\n\n start = end = -1;\n } else {\n throw new SyntaxError(`Unexpected character at index ${i}`);\n }\n } else if (paramName === undefined) {\n if (end === -1 && tokenChars[code] === 1) {\n if (start === -1) start = i;\n } else if (code === 0x20 || code === 0x09) {\n if (end === -1 && start !== -1) end = i;\n } else if (code === 0x3b || code === 0x2c) {\n if (start === -1) {\n throw new SyntaxError(`Unexpected character at index ${i}`);\n }\n\n if (end === -1) end = i;\n push(params, header.slice(start, end), true);\n if (code === 0x2c) {\n push(offers, extensionName, params);\n params = Object.create(null);\n extensionName = undefined;\n }\n\n start = end = -1;\n } else if (code === 0x3d /* '=' */ && start !== -1 && end === -1) {\n paramName = header.slice(start, i);\n start = end = -1;\n } else {\n throw new SyntaxError(`Unexpected character at index ${i}`);\n }\n } else {\n //\n // The value of a quoted-string after unescaping must conform to the\n // token ABNF, so only token characters are valid.\n // Ref: https://tools.ietf.org/html/rfc6455#section-9.1\n //\n if (isEscaping) {\n if (tokenChars[code] !== 1) {\n throw new SyntaxError(`Unexpected character at index ${i}`);\n }\n if (start === -1) start = i;\n else if (!mustUnescape) mustUnescape = true;\n isEscaping = false;\n } else if (inQuotes) {\n if (tokenChars[code] === 1) {\n if (start === -1) start = i;\n } else if (code === 0x22 /* '\"' */ && start !== -1) {\n inQuotes = false;\n end = i;\n } else if (code === 0x5c /* '\\' */) {\n isEscaping = true;\n } else {\n throw new SyntaxError(`Unexpected character at index ${i}`);\n }\n } else if (code === 0x22 && header.charCodeAt(i - 1) === 0x3d) {\n inQuotes = true;\n } else if (end === -1 && tokenChars[code] === 1) {\n if (start === -1) start = i;\n } else if (start !== -1 && (code === 0x20 || code === 0x09)) {\n if (end === -1) end = i;\n } else if (code === 0x3b || code === 0x2c) {\n if (start === -1) {\n throw new SyntaxError(`Unexpected character at index ${i}`);\n }\n\n if (end === -1) end = i;\n let value = header.slice(start, end);\n if (mustUnescape) {\n value = value.replace(/\\\\/g, '');\n mustUnescape = false;\n }\n push(params, paramName, value);\n if (code === 0x2c) {\n push(offers, extensionName, params);\n params = Object.create(null);\n extensionName = undefined;\n }\n\n paramName = undefined;\n start = end = -1;\n } else {\n throw new SyntaxError(`Unexpected character at index ${i}`);\n }\n }\n }\n\n if (start === -1 || inQuotes) {\n throw new SyntaxError('Unexpected end of input');\n }\n\n if (end === -1) end = i;\n const token = header.slice(start, end);\n if (extensionName === undefined) {\n push(offers, token, params);\n } else {\n if (paramName === undefined) {\n push(params, token, true);\n } else if (mustUnescape) {\n push(params, paramName, token.replace(/\\\\/g, ''));\n } else {\n push(params, paramName, token);\n }\n push(offers, extensionName, params);\n }\n\n return offers;\n}\n\n/**\n * Builds the `Sec-WebSocket-Extensions` header field value.\n *\n * @param {Object} extensions The map of extensions and parameters to format\n * @return {String} A string representing the given object\n * @public\n */\nfunction format(extensions) {\n return Object.keys(extensions)\n .map((extension) => {\n let configurations = extensions[extension];\n if (!Array.isArray(configurations)) configurations = [configurations];\n return configurations\n .map((params) => {\n return [extension]\n .concat(\n Object.keys(params).map((k) => {\n let values = params[k];\n if (!Array.isArray(values)) values = [values];\n return values\n .map((v) => (v === true ? k : `${k}=${v}`))\n .join('; ');\n })\n )\n .join('; ');\n })\n .join(', ');\n })\n .join(', ');\n}\n\nmodule.exports = { format, parse };\n", "'use strict';\n\nconst EventEmitter = require('events');\nconst https = require('https');\nconst http = require('http');\nconst net = require('net');\nconst tls = require('tls');\nconst { randomBytes, createHash } = require('crypto');\nconst { URL } = require('url');\n\nconst PerMessageDeflate = require('./permessage-deflate');\nconst Receiver = require('./receiver');\nconst Sender = require('./sender');\nconst {\n BINARY_TYPES,\n EMPTY_BUFFER,\n GUID,\n kStatusCode,\n kWebSocket,\n NOOP\n} = require('./constants');\nconst { addEventListener, removeEventListener } = require('./event-target');\nconst { format, parse } = require('./extension');\nconst { toBuffer } = require('./buffer-util');\n\nconst readyStates = ['CONNECTING', 'OPEN', 'CLOSING', 'CLOSED'];\nconst protocolVersions = [8, 13];\nconst closeTimeout = 30 * 1000;\n\n/**\n * Class representing a WebSocket.\n *\n * @extends EventEmitter\n */\nclass WebSocket extends EventEmitter {\n /**\n * Create a new `WebSocket`.\n *\n * @param {(String|url.URL)} address The URL to which to connect\n * @param {(String|String[])} [protocols] The subprotocols\n * @param {Object} [options] Connection options\n */\n constructor(address, protocols, options) {\n super();\n\n this._binaryType = BINARY_TYPES[0];\n this._closeCode = 1006;\n this._closeFrameReceived = false;\n this._closeFrameSent = false;\n this._closeMessage = '';\n this._closeTimer = null;\n this._extensions = {};\n this._protocol = '';\n this._readyState = WebSocket.CONNECTING;\n this._receiver = null;\n this._sender = null;\n this._socket = null;\n\n if (address !== null) {\n this._bufferedAmount = 0;\n this._isServer = false;\n this._redirects = 0;\n\n if (Array.isArray(protocols)) {\n protocols = protocols.join(', ');\n } else if (typeof protocols === 'object' && protocols !== null) {\n options = protocols;\n protocols = undefined;\n }\n\n initAsClient(this, address, protocols, options);\n } else {\n this._isServer = true;\n }\n }\n\n /**\n * This deviates from the WHATWG interface since ws doesn't support the\n * required default \"blob\" type (instead we define a custom \"nodebuffer\"\n * type).\n *\n * @type {String}\n */\n get binaryType() {\n return this._binaryType;\n }\n\n set binaryType(type) {\n if (!BINARY_TYPES.includes(type)) return;\n\n this._binaryType = type;\n\n //\n // Allow to change `binaryType` on the fly.\n //\n if (this._receiver) this._receiver._binaryType = type;\n }\n\n /**\n * @type {Number}\n */\n get bufferedAmount() {\n if (!this._socket) return this._bufferedAmount;\n\n return this._socket._writableState.length + this._sender._bufferedBytes;\n }\n\n /**\n * @type {String}\n */\n get extensions() {\n return Object.keys(this._extensions).join();\n }\n\n /**\n * @type {String}\n */\n get protocol() {\n return this._protocol;\n }\n\n /**\n * @type {Number}\n */\n get readyState() {\n return this._readyState;\n }\n\n /**\n * @type {String}\n */\n get url() {\n return this._url;\n }\n\n /**\n * Set up the socket and the internal resources.\n *\n * @param {net.Socket} socket The network socket between the server and client\n * @param {Buffer} head The first packet of the upgraded stream\n * @param {Number} [maxPayload=0] The maximum allowed message size\n * @private\n */\n setSocket(socket, head, maxPayload) {\n const receiver = new Receiver(\n this.binaryType,\n this._extensions,\n this._isServer,\n maxPayload\n );\n\n this._sender = new Sender(socket, this._extensions);\n this._receiver = receiver;\n this._socket = socket;\n\n receiver[kWebSocket] = this;\n socket[kWebSocket] = this;\n\n receiver.on('conclude', receiverOnConclude);\n receiver.on('drain', receiverOnDrain);\n receiver.on('error', receiverOnError);\n receiver.on('message', receiverOnMessage);\n receiver.on('ping', receiverOnPing);\n receiver.on('pong', receiverOnPong);\n\n socket.setTimeout(0);\n socket.setNoDelay();\n\n if (head.length > 0) socket.unshift(head);\n\n socket.on('close', socketOnClose);\n socket.on('data', socketOnData);\n socket.on('end', socketOnEnd);\n socket.on('error', socketOnError);\n\n this._readyState = WebSocket.OPEN;\n this.emit('open');\n }\n\n /**\n * Emit the `'close'` event.\n *\n * @private\n */\n emitClose() {\n if (!this._socket) {\n this._readyState = WebSocket.CLOSED;\n this.emit('close', this._closeCode, this._closeMessage);\n return;\n }\n\n if (this._extensions[PerMessageDeflate.extensionName]) {\n this._extensions[PerMessageDeflate.extensionName].cleanup();\n }\n\n this._receiver.removeAllListeners();\n this._readyState = WebSocket.CLOSED;\n this.emit('close', this._closeCode, this._closeMessage);\n }\n\n /**\n * Start a closing handshake.\n *\n * +----------+ +-----------+ +----------+\n * - - -|ws.close()|-->|close frame|-->|ws.close()|- - -\n * | +----------+ +-----------+ +----------+ |\n * +----------+ +-----------+ |\n * CLOSING |ws.close()|<--|close frame|<--+-----+ CLOSING\n * +----------+ +-----------+ |\n * | | | +---+ |\n * +------------------------+-->|fin| - - - -\n * | +---+ | +---+\n * - - - - -|fin|<---------------------+\n * +---+\n *\n * @param {Number} [code] Status code explaining why the connection is closing\n * @param {String} [data] A string explaining why the connection is closing\n * @public\n */\n close(code, data) {\n if (this.readyState === WebSocket.CLOSED) return;\n if (this.readyState === WebSocket.CONNECTING) {\n const msg = 'WebSocket was closed before the connection was established';\n return abortHandshake(this, this._req, msg);\n }\n\n if (this.readyState === WebSocket.CLOSING) {\n if (this._closeFrameSent && this._closeFrameReceived) this._socket.end();\n return;\n }\n\n this._readyState = WebSocket.CLOSING;\n this._sender.close(code, data, !this._isServer, (err) => {\n //\n // This error is handled by the `'error'` listener on the socket. We only\n // want to know if the close frame has been sent here.\n //\n if (err) return;\n\n this._closeFrameSent = true;\n if (this._closeFrameReceived) this._socket.end();\n });\n\n //\n // Specify a timeout for the closing handshake to complete.\n //\n this._closeTimer = setTimeout(\n this._socket.destroy.bind(this._socket),\n closeTimeout\n );\n }\n\n /**\n * Send a ping.\n *\n * @param {*} [data] The data to send\n * @param {Boolean} [mask] Indicates whether or not to mask `data`\n * @param {Function} [cb] Callback which is executed when the ping is sent\n * @public\n */\n ping(data, mask, cb) {\n if (this.readyState === WebSocket.CONNECTING) {\n throw new Error('WebSocket is not open: readyState 0 (CONNECTING)');\n }\n\n if (typeof data === 'function') {\n cb = data;\n data = mask = undefined;\n } else if (typeof mask === 'function') {\n cb = mask;\n mask = undefined;\n }\n\n if (typeof data === 'number') data = data.toString();\n\n if (this.readyState !== WebSocket.OPEN) {\n sendAfterClose(this, data, cb);\n return;\n }\n\n if (mask === undefined) mask = !this._isServer;\n this._sender.ping(data || EMPTY_BUFFER, mask, cb);\n }\n\n /**\n * Send a pong.\n *\n * @param {*} [data] The data to send\n * @param {Boolean} [mask] Indicates whether or not to mask `data`\n * @param {Function} [cb] Callback which is executed when the pong is sent\n * @public\n */\n pong(data, mask, cb) {\n if (this.readyState === WebSocket.CONNECTING) {\n throw new Error('WebSocket is not open: readyState 0 (CONNECTING)');\n }\n\n if (typeof data === 'function') {\n cb = data;\n data = mask = undefined;\n } else if (typeof mask === 'function') {\n cb = mask;\n mask = undefined;\n }\n\n if (typeof data === 'number') data = data.toString();\n\n if (this.readyState !== WebSocket.OPEN) {\n sendAfterClose(this, data, cb);\n return;\n }\n\n if (mask === undefined) mask = !this._isServer;\n this._sender.pong(data || EMPTY_BUFFER, mask, cb);\n }\n\n /**\n * Send a data message.\n *\n * @param {*} data The message to send\n * @param {Object} [options] Options object\n * @param {Boolean} [options.compress] Specifies whether or not to compress\n * `data`\n * @param {Boolean} [options.binary] Specifies whether `data` is binary or\n * text\n * @param {Boolean} [options.fin=true] Specifies whether the fragment is the\n * last one\n * @param {Boolean} [options.mask] Specifies whether or not to mask `data`\n * @param {Function} [cb] Callback which is executed when data is written out\n * @public\n */\n send(data, options, cb) {\n if (this.readyState === WebSocket.CONNECTING) {\n throw new Error('WebSocket is not open: readyState 0 (CONNECTING)');\n }\n\n if (typeof options === 'function') {\n cb = options;\n options = {};\n }\n\n if (typeof data === 'number') data = data.toString();\n\n if (this.readyState !== WebSocket.OPEN) {\n sendAfterClose(this, data, cb);\n return;\n }\n\n const opts = {\n binary: typeof data !== 'string',\n mask: !this._isServer,\n compress: true,\n fin: true,\n ...options\n };\n\n if (!this._extensions[PerMessageDeflate.extensionName]) {\n opts.compress = false;\n }\n\n this._sender.send(data || EMPTY_BUFFER, opts, cb);\n }\n\n /**\n * Forcibly close the connection.\n *\n * @public\n */\n terminate() {\n if (this.readyState === WebSocket.CLOSED) return;\n if (this.readyState === WebSocket.CONNECTING) {\n const msg = 'WebSocket was closed before the connection was established';\n return abortHandshake(this, this._req, msg);\n }\n\n if (this._socket) {\n this._readyState = WebSocket.CLOSING;\n this._socket.destroy();\n }\n }\n}\n\nreadyStates.forEach((readyState, i) => {\n const descriptor = { enumerable: true, value: i };\n\n Object.defineProperty(WebSocket.prototype, readyState, descriptor);\n Object.defineProperty(WebSocket, readyState, descriptor);\n});\n\n[\n 'binaryType',\n 'bufferedAmount',\n 'extensions',\n 'protocol',\n 'readyState',\n 'url'\n].forEach((property) => {\n Object.defineProperty(WebSocket.prototype, property, { enumerable: true });\n});\n\n//\n// Add the `onopen`, `onerror`, `onclose`, and `onmessage` attributes.\n// See https://html.spec.whatwg.org/multipage/comms.html#the-websocket-interface\n//\n['open', 'error', 'close', 'message'].forEach((method) => {\n Object.defineProperty(WebSocket.prototype, `on${method}`, {\n configurable: true,\n enumerable: true,\n /**\n * Return the listener of the event.\n *\n * @return {(Function|undefined)} The event listener or `undefined`\n * @public\n */\n get() {\n const listeners = this.listeners(method);\n for (let i = 0; i < listeners.length; i++) {\n if (listeners[i]._listener) return listeners[i]._listener;\n }\n\n return undefined;\n },\n /**\n * Add a listener for the event.\n *\n * @param {Function} listener The listener to add\n * @public\n */\n set(listener) {\n const listeners = this.listeners(method);\n for (let i = 0; i < listeners.length; i++) {\n //\n // Remove only the listeners added via `addEventListener`.\n //\n if (listeners[i]._listener) this.removeListener(method, listeners[i]);\n }\n this.addEventListener(method, listener);\n }\n });\n});\n\nWebSocket.prototype.addEventListener = addEventListener;\nWebSocket.prototype.removeEventListener = removeEventListener;\n\nmodule.exports = WebSocket;\n\n/**\n * Initialize a WebSocket client.\n *\n * @param {WebSocket} websocket The client to initialize\n * @param {(String|url.URL)} address The URL to which to connect\n * @param {String} [protocols] The subprotocols\n * @param {Object} [options] Connection options\n * @param {(Boolean|Object)} [options.perMessageDeflate=true] Enable/disable\n * permessage-deflate\n * @param {Number} [options.handshakeTimeout] Timeout in milliseconds for the\n * handshake request\n * @param {Number} [options.protocolVersion=13] Value of the\n * `Sec-WebSocket-Version` header\n * @param {String} [options.origin] Value of the `Origin` or\n * `Sec-WebSocket-Origin` header\n * @param {Number} [options.maxPayload=104857600] The maximum allowed message\n * size\n * @param {Boolean} [options.followRedirects=false] Whether or not to follow\n * redirects\n * @param {Number} [options.maxRedirects=10] The maximum number of redirects\n * allowed\n * @private\n */\nfunction initAsClient(websocket, address, protocols, options) {\n const opts = {\n protocolVersion: protocolVersions[1],\n maxPayload: 100 * 1024 * 1024,\n perMessageDeflate: true,\n followRedirects: false,\n maxRedirects: 10,\n ...options,\n createConnection: undefined,\n socketPath: undefined,\n hostname: undefined,\n protocol: undefined,\n timeout: undefined,\n method: undefined,\n host: undefined,\n path: undefined,\n port: undefined\n };\n\n if (!protocolVersions.includes(opts.protocolVersion)) {\n throw new RangeError(\n `Unsupported protocol version: ${opts.protocolVersion} ` +\n `(supported versions: ${protocolVersions.join(', ')})`\n );\n }\n\n let parsedUrl;\n\n if (address instanceof URL) {\n parsedUrl = address;\n websocket._url = address.href;\n } else {\n parsedUrl = new URL(address);\n websocket._url = address;\n }\n\n const isUnixSocket = parsedUrl.protocol === 'ws+unix:';\n\n if (!parsedUrl.host && (!isUnixSocket || !parsedUrl.pathname)) {\n throw new Error(`Invalid URL: ${websocket.url}`);\n }\n\n const isSecure =\n parsedUrl.protocol === 'wss:' || parsedUrl.protocol === 'https:';\n const defaultPort = isSecure ? 443 : 80;\n const key = randomBytes(16).toString('base64');\n const get = isSecure ? https.get : http.get;\n let perMessageDeflate;\n\n opts.createConnection = isSecure ? tlsConnect : netConnect;\n opts.defaultPort = opts.defaultPort || defaultPort;\n opts.port = parsedUrl.port || defaultPort;\n opts.host = parsedUrl.hostname.startsWith('[')\n ? parsedUrl.hostname.slice(1, -1)\n : parsedUrl.hostname;\n opts.headers = {\n 'Sec-WebSocket-Version': opts.protocolVersion,\n 'Sec-WebSocket-Key': key,\n Connection: 'Upgrade',\n Upgrade: 'websocket',\n ...opts.headers\n };\n opts.path = parsedUrl.pathname + parsedUrl.search;\n opts.timeout = opts.handshakeTimeout;\n\n if (opts.perMessageDeflate) {\n perMessageDeflate = new PerMessageDeflate(\n opts.perMessageDeflate !== true ? opts.perMessageDeflate : {},\n false,\n opts.maxPayload\n );\n opts.headers['Sec-WebSocket-Extensions'] = format({\n [PerMessageDeflate.extensionName]: perMessageDeflate.offer()\n });\n }\n if (protocols) {\n opts.headers['Sec-WebSocket-Protocol'] = protocols;\n }\n if (opts.origin) {\n if (opts.protocolVersion < 13) {\n opts.headers['Sec-WebSocket-Origin'] = opts.origin;\n } else {\n opts.headers.Origin = opts.origin;\n }\n }\n if (parsedUrl.username || parsedUrl.password) {\n opts.auth = `${parsedUrl.username}:${parsedUrl.password}`;\n }\n\n if (isUnixSocket) {\n const parts = opts.path.split(':');\n\n opts.socketPath = parts[0];\n opts.path = parts[1];\n }\n\n let req = (websocket._req = get(opts));\n\n if (opts.timeout) {\n req.on('timeout', () => {\n abortHandshake(websocket, req, 'Opening handshake has timed out');\n });\n }\n\n req.on('error', (err) => {\n if (req === null || req.aborted) return;\n\n req = websocket._req = null;\n websocket._readyState = WebSocket.CLOSING;\n websocket.emit('error', err);\n websocket.emitClose();\n });\n\n req.on('response', (res) => {\n const location = res.headers.location;\n const statusCode = res.statusCode;\n\n if (\n location &&\n opts.followRedirects &&\n statusCode >= 300 &&\n statusCode < 400\n ) {\n if (++websocket._redirects > opts.maxRedirects) {\n abortHandshake(websocket, req, 'Maximum redirects exceeded');\n return;\n }\n\n req.abort();\n\n const addr = new URL(location, address);\n\n initAsClient(websocket, addr, protocols, options);\n } else if (!websocket.emit('unexpected-response', req, res)) {\n abortHandshake(\n websocket,\n req,\n `Unexpected server response: ${res.statusCode}`\n );\n }\n });\n\n req.on('upgrade', (res, socket, head) => {\n websocket.emit('upgrade', res);\n\n //\n // The user may have closed the connection from a listener of the `upgrade`\n // event.\n //\n if (websocket.readyState !== WebSocket.CONNECTING) return;\n\n req = websocket._req = null;\n\n const digest = createHash('sha1')\n .update(key + GUID)\n .digest('base64');\n\n if (res.headers['sec-websocket-accept'] !== digest) {\n abortHandshake(websocket, socket, 'Invalid Sec-WebSocket-Accept header');\n return;\n }\n\n const serverProt = res.headers['sec-websocket-protocol'];\n const protList = (protocols || '').split(/, */);\n let protError;\n\n if (!protocols && serverProt) {\n protError = 'Server sent a subprotocol but none was requested';\n } else if (protocols && !serverProt) {\n protError = 'Server sent no subprotocol';\n } else if (serverProt && !protList.includes(serverProt)) {\n protError = 'Server sent an invalid subprotocol';\n }\n\n if (protError) {\n abortHandshake(websocket, socket, protError);\n return;\n }\n\n if (serverProt) websocket._protocol = serverProt;\n\n if (perMessageDeflate) {\n try {\n const extensions = parse(res.headers['sec-websocket-extensions']);\n\n if (extensions[PerMessageDeflate.extensionName]) {\n perMessageDeflate.accept(extensions[PerMessageDeflate.extensionName]);\n websocket._extensions[PerMessageDeflate.extensionName] =\n perMessageDeflate;\n }\n } catch (err) {\n abortHandshake(\n websocket,\n socket,\n 'Invalid Sec-WebSocket-Extensions header'\n );\n return;\n }\n }\n\n websocket.setSocket(socket, head, opts.maxPayload);\n });\n}\n\n/**\n * Create a `net.Socket` and initiate a connection.\n *\n * @param {Object} options Connection options\n * @return {net.Socket} The newly created socket used to start the connection\n * @private\n */\nfunction netConnect(options) {\n options.path = options.socketPath;\n return net.connect(options);\n}\n\n/**\n * Create a `tls.TLSSocket` and initiate a connection.\n *\n * @param {Object} options Connection options\n * @return {tls.TLSSocket} The newly created socket used to start the connection\n * @private\n */\nfunction tlsConnect(options) {\n options.path = undefined;\n\n if (!options.servername && options.servername !== '') {\n options.servername = net.isIP(options.host) ? '' : options.host;\n }\n\n return tls.connect(options);\n}\n\n/**\n * Abort the handshake and emit an error.\n *\n * @param {WebSocket} websocket The WebSocket instance\n * @param {(http.ClientRequest|net.Socket)} stream The request to abort or the\n * socket to destroy\n * @param {String} message The error message\n * @private\n */\nfunction abortHandshake(websocket, stream, message) {\n websocket._readyState = WebSocket.CLOSING;\n\n const err = new Error(message);\n Error.captureStackTrace(err, abortHandshake);\n\n if (stream.setHeader) {\n stream.abort();\n\n if (stream.socket && !stream.socket.destroyed) {\n //\n // On Node.js >= 14.3.0 `request.abort()` does not destroy the socket if\n // called after the request completed. See\n // https://github.com/websockets/ws/issues/1869.\n //\n stream.socket.destroy();\n }\n\n stream.once('abort', websocket.emitClose.bind(websocket));\n websocket.emit('error', err);\n } else {\n stream.destroy(err);\n stream.once('error', websocket.emit.bind(websocket, 'error'));\n stream.once('close', websocket.emitClose.bind(websocket));\n }\n}\n\n/**\n * Handle cases where the `ping()`, `pong()`, or `send()` methods are called\n * when the `readyState` attribute is `CLOSING` or `CLOSED`.\n *\n * @param {WebSocket} websocket The WebSocket instance\n * @param {*} [data] The data to send\n * @param {Function} [cb] Callback\n * @private\n */\nfunction sendAfterClose(websocket, data, cb) {\n if (data) {\n const length = toBuffer(data).length;\n\n //\n // The `_bufferedAmount` property is used only when the peer is a client and\n // the opening handshake fails. Under these circumstances, in fact, the\n // `setSocket()` method is not called, so the `_socket` and `_sender`\n // properties are set to `null`.\n //\n if (websocket._socket) websocket._sender._bufferedBytes += length;\n else websocket._bufferedAmount += length;\n }\n\n if (cb) {\n const err = new Error(\n `WebSocket is not open: readyState ${websocket.readyState} ` +\n `(${readyStates[websocket.readyState]})`\n );\n cb(err);\n }\n}\n\n/**\n * The listener of the `Receiver` `'conclude'` event.\n *\n * @param {Number} code The status code\n * @param {String} reason The reason for closing\n * @private\n */\nfunction receiverOnConclude(code, reason) {\n const websocket = this[kWebSocket];\n\n websocket._socket.removeListener('data', socketOnData);\n websocket._socket.resume();\n\n websocket._closeFrameReceived = true;\n websocket._closeMessage = reason;\n websocket._closeCode = code;\n\n if (code === 1005) websocket.close();\n else websocket.close(code, reason);\n}\n\n/**\n * The listener of the `Receiver` `'drain'` event.\n *\n * @private\n */\nfunction receiverOnDrain() {\n this[kWebSocket]._socket.resume();\n}\n\n/**\n * The listener of the `Receiver` `'error'` event.\n *\n * @param {(RangeError|Error)} err The emitted error\n * @private\n */\nfunction receiverOnError(err) {\n const websocket = this[kWebSocket];\n\n websocket._socket.removeListener('data', socketOnData);\n\n websocket._readyState = WebSocket.CLOSING;\n websocket._closeCode = err[kStatusCode];\n websocket.emit('error', err);\n websocket._socket.destroy();\n}\n\n/**\n * The listener of the `Receiver` `'finish'` event.\n *\n * @private\n */\nfunction receiverOnFinish() {\n this[kWebSocket].emitClose();\n}\n\n/**\n * The listener of the `Receiver` `'message'` event.\n *\n * @param {(String|Buffer|ArrayBuffer|Buffer[])} data The message\n * @private\n */\nfunction receiverOnMessage(data) {\n this[kWebSocket].emit('message', data);\n}\n\n/**\n * The listener of the `Receiver` `'ping'` event.\n *\n * @param {Buffer} data The data included in the ping frame\n * @private\n */\nfunction receiverOnPing(data) {\n const websocket = this[kWebSocket];\n\n websocket.pong(data, !websocket._isServer, NOOP);\n websocket.emit('ping', data);\n}\n\n/**\n * The listener of the `Receiver` `'pong'` event.\n *\n * @param {Buffer} data The data included in the pong frame\n * @private\n */\nfunction receiverOnPong(data) {\n this[kWebSocket].emit('pong', data);\n}\n\n/**\n * The listener of the `net.Socket` `'close'` event.\n *\n * @private\n */\nfunction socketOnClose() {\n const websocket = this[kWebSocket];\n\n this.removeListener('close', socketOnClose);\n this.removeListener('end', socketOnEnd);\n\n websocket._readyState = WebSocket.CLOSING;\n\n //\n // The close frame might not have been received or the `'end'` event emitted,\n // for example, if the socket was destroyed due to an error. Ensure that the\n // `receiver` stream is closed after writing any remaining buffered data to\n // it. If the readable side of the socket is in flowing mode then there is no\n // buffered data as everything has been already written and `readable.read()`\n // will return `null`. If instead, the socket is paused, any possible buffered\n // data will be read as a single chunk and emitted synchronously in a single\n // `'data'` event.\n //\n websocket._socket.read();\n websocket._receiver.end();\n\n this.removeListener('data', socketOnData);\n this[kWebSocket] = undefined;\n\n clearTimeout(websocket._closeTimer);\n\n if (\n websocket._receiver._writableState.finished ||\n websocket._receiver._writableState.errorEmitted\n ) {\n websocket.emitClose();\n } else {\n websocket._receiver.on('error', receiverOnFinish);\n websocket._receiver.on('finish', receiverOnFinish);\n }\n}\n\n/**\n * The listener of the `net.Socket` `'data'` event.\n *\n * @param {Buffer} chunk A chunk of data\n * @private\n */\nfunction socketOnData(chunk) {\n if (!this[kWebSocket]._receiver.write(chunk)) {\n this.pause();\n }\n}\n\n/**\n * The listener of the `net.Socket` `'end'` event.\n *\n * @private\n */\nfunction socketOnEnd() {\n const websocket = this[kWebSocket];\n\n websocket._readyState = WebSocket.CLOSING;\n websocket._receiver.end();\n this.end();\n}\n\n/**\n * The listener of the `net.Socket` `'error'` event.\n *\n * @private\n */\nfunction socketOnError() {\n const websocket = this[kWebSocket];\n\n this.removeListener('error', socketOnError);\n this.on('error', NOOP);\n\n if (websocket) {\n websocket._readyState = WebSocket.CLOSING;\n this.destroy();\n }\n}\n", "'use strict';\n\nconst { Duplex } = require('stream');\n\n/**\n * Emits the `'close'` event on a stream.\n *\n * @param {stream.Duplex} The stream.\n * @private\n */\nfunction emitClose(stream) {\n stream.emit('close');\n}\n\n/**\n * The listener of the `'end'` event.\n *\n * @private\n */\nfunction duplexOnEnd() {\n if (!this.destroyed && this._writableState.finished) {\n this.destroy();\n }\n}\n\n/**\n * The listener of the `'error'` event.\n *\n * @param {Error} err The error\n * @private\n */\nfunction duplexOnError(err) {\n this.removeListener('error', duplexOnError);\n this.destroy();\n if (this.listenerCount('error') === 0) {\n // Do not suppress the throwing behavior.\n this.emit('error', err);\n }\n}\n\n/**\n * Wraps a `WebSocket` in a duplex stream.\n *\n * @param {WebSocket} ws The `WebSocket` to wrap\n * @param {Object} [options] The options for the `Duplex` constructor\n * @return {stream.Duplex} The duplex stream\n * @public\n */\nfunction createWebSocketStream(ws, options) {\n let resumeOnReceiverDrain = true;\n\n function receiverOnDrain() {\n if (resumeOnReceiverDrain) ws._socket.resume();\n }\n\n if (ws.readyState === ws.CONNECTING) {\n ws.once('open', function open() {\n ws._receiver.removeAllListeners('drain');\n ws._receiver.on('drain', receiverOnDrain);\n });\n } else {\n ws._receiver.removeAllListeners('drain');\n ws._receiver.on('drain', receiverOnDrain);\n }\n\n const duplex = new Duplex({\n ...options,\n autoDestroy: false,\n emitClose: false,\n objectMode: false,\n writableObjectMode: false\n });\n\n ws.on('message', function message(msg) {\n if (!duplex.push(msg)) {\n resumeOnReceiverDrain = false;\n ws._socket.pause();\n }\n });\n\n ws.once('error', function error(err) {\n if (duplex.destroyed) return;\n\n duplex.destroy(err);\n });\n\n ws.once('close', function close() {\n if (duplex.destroyed) return;\n\n duplex.push(null);\n });\n\n duplex._destroy = function (err, callback) {\n if (ws.readyState === ws.CLOSED) {\n callback(err);\n process.nextTick(emitClose, duplex);\n return;\n }\n\n let called = false;\n\n ws.once('error', function error(err) {\n called = true;\n callback(err);\n });\n\n ws.once('close', function close() {\n if (!called) callback(err);\n process.nextTick(emitClose, duplex);\n });\n ws.terminate();\n };\n\n duplex._final = function (callback) {\n if (ws.readyState === ws.CONNECTING) {\n ws.once('open', function open() {\n duplex._final(callback);\n });\n return;\n }\n\n // If the value of the `_socket` property is `null` it means that `ws` is a\n // client websocket and the handshake failed. In fact, when this happens, a\n // socket is never assigned to the websocket. Wait for the `'error'` event\n // that will be emitted by the websocket.\n if (ws._socket === null) return;\n\n if (ws._socket._writableState.finished) {\n callback();\n if (duplex._readableState.endEmitted) duplex.destroy();\n } else {\n ws._socket.once('finish', function finish() {\n // `duplex` is not destroyed here because the `'end'` event will be\n // emitted on `duplex` after this `'finish'` event. The EOF signaling\n // `null` chunk is, in fact, pushed when the websocket emits `'close'`.\n callback();\n });\n ws.close();\n }\n };\n\n duplex._read = function () {\n if (ws.readyState === ws.OPEN && !resumeOnReceiverDrain) {\n resumeOnReceiverDrain = true;\n if (!ws._receiver._writableState.needDrain) ws._socket.resume();\n }\n };\n\n duplex._write = function (chunk, encoding, callback) {\n if (ws.readyState === ws.CONNECTING) {\n ws.once('open', function open() {\n duplex._write(chunk, encoding, callback);\n });\n return;\n }\n\n ws.send(chunk, callback);\n };\n\n duplex.on('end', duplexOnEnd);\n duplex.on('error', duplexOnError);\n return duplex;\n}\n\nmodule.exports = createWebSocketStream;\n", "'use strict';\n\nconst EventEmitter = require('events');\nconst { createHash } = require('crypto');\nconst { createServer, STATUS_CODES } = require('http');\n\nconst PerMessageDeflate = require('./permessage-deflate');\nconst WebSocket = require('./websocket');\nconst { format, parse } = require('./extension');\nconst { GUID, kWebSocket } = require('./constants');\n\nconst keyRegex = /^[+/0-9A-Za-z]{22}==$/;\n\n/**\n * Class representing a WebSocket server.\n *\n * @extends EventEmitter\n */\nclass WebSocketServer extends EventEmitter {\n /**\n * Create a `WebSocketServer` instance.\n *\n * @param {Object} options Configuration options\n * @param {Number} [options.backlog=511] The maximum length of the queue of\n * pending connections\n * @param {Boolean} [options.clientTracking=true] Specifies whether or not to\n * track clients\n * @param {Function} [options.handleProtocols] A hook to handle protocols\n * @param {String} [options.host] The hostname where to bind the server\n * @param {Number} [options.maxPayload=104857600] The maximum allowed message\n * size\n * @param {Boolean} [options.noServer=false] Enable no server mode\n * @param {String} [options.path] Accept only connections matching this path\n * @param {(Boolean|Object)} [options.perMessageDeflate=false] Enable/disable\n * permessage-deflate\n * @param {Number} [options.port] The port where to bind the server\n * @param {http.Server} [options.server] A pre-created HTTP/S server to use\n * @param {Function} [options.verifyClient] A hook to reject connections\n * @param {Function} [callback] A listener for the `listening` event\n */\n constructor(options, callback) {\n super();\n\n options = {\n maxPayload: 100 * 1024 * 1024,\n perMessageDeflate: false,\n handleProtocols: null,\n clientTracking: true,\n verifyClient: null,\n noServer: false,\n backlog: null, // use default (511 as implemented in net.js)\n server: null,\n host: null,\n path: null,\n port: null,\n ...options\n };\n\n if (options.port == null && !options.server && !options.noServer) {\n throw new TypeError(\n 'One of the \"port\", \"server\", or \"noServer\" options must be specified'\n );\n }\n\n if (options.port != null) {\n this._server = createServer((req, res) => {\n const body = STATUS_CODES[426];\n\n res.writeHead(426, {\n 'Content-Length': body.length,\n 'Content-Type': 'text/plain'\n });\n res.end(body);\n });\n this._server.listen(\n options.port,\n options.host,\n options.backlog,\n callback\n );\n } else if (options.server) {\n this._server = options.server;\n }\n\n if (this._server) {\n const emitConnection = this.emit.bind(this, 'connection');\n\n this._removeListeners = addListeners(this._server, {\n listening: this.emit.bind(this, 'listening'),\n error: this.emit.bind(this, 'error'),\n upgrade: (req, socket, head) => {\n this.handleUpgrade(req, socket, head, emitConnection);\n }\n });\n }\n\n if (options.perMessageDeflate === true) options.perMessageDeflate = {};\n if (options.clientTracking) this.clients = new Set();\n this.options = options;\n }\n\n /**\n * Returns the bound address, the address family name, and port of the server\n * as reported by the operating system if listening on an IP socket.\n * If the server is listening on a pipe or UNIX domain socket, the name is\n * returned as a string.\n *\n * @return {(Object|String|null)} The address of the server\n * @public\n */\n address() {\n if (this.options.noServer) {\n throw new Error('The server is operating in \"noServer\" mode');\n }\n\n if (!this._server) return null;\n return this._server.address();\n }\n\n /**\n * Close the server.\n *\n * @param {Function} [cb] Callback\n * @public\n */\n close(cb) {\n if (cb) this.once('close', cb);\n\n //\n // Terminate all associated clients.\n //\n if (this.clients) {\n for (const client of this.clients) client.terminate();\n }\n\n const server = this._server;\n\n if (server) {\n this._removeListeners();\n this._removeListeners = this._server = null;\n\n //\n // Close the http server if it was internally created.\n //\n if (this.options.port != null) {\n server.close(() => this.emit('close'));\n return;\n }\n }\n\n process.nextTick(emitClose, this);\n }\n\n /**\n * See if a given request should be handled by this server instance.\n *\n * @param {http.IncomingMessage} req Request object to inspect\n * @return {Boolean} `true` if the request is valid, else `false`\n * @public\n */\n shouldHandle(req) {\n if (this.options.path) {\n const index = req.url.indexOf('?');\n const pathname = index !== -1 ? req.url.slice(0, index) : req.url;\n\n if (pathname !== this.options.path) return false;\n }\n\n return true;\n }\n\n /**\n * Handle a HTTP Upgrade request.\n *\n * @param {http.IncomingMessage} req The request object\n * @param {net.Socket} socket The network socket between the server and client\n * @param {Buffer} head The first packet of the upgraded stream\n * @param {Function} cb Callback\n * @public\n */\n handleUpgrade(req, socket, head, cb) {\n socket.on('error', socketOnError);\n\n const key =\n req.headers['sec-websocket-key'] !== undefined\n ? req.headers['sec-websocket-key'].trim()\n : false;\n const version = +req.headers['sec-websocket-version'];\n const extensions = {};\n\n if (\n req.method !== 'GET' ||\n req.headers.upgrade.toLowerCase() !== 'websocket' ||\n !key ||\n !keyRegex.test(key) ||\n (version !== 8 && version !== 13) ||\n !this.shouldHandle(req)\n ) {\n return abortHandshake(socket, 400);\n }\n\n if (this.options.perMessageDeflate) {\n const perMessageDeflate = new PerMessageDeflate(\n this.options.perMessageDeflate,\n true,\n this.options.maxPayload\n );\n\n try {\n const offers = parse(req.headers['sec-websocket-extensions']);\n\n if (offers[PerMessageDeflate.extensionName]) {\n perMessageDeflate.accept(offers[PerMessageDeflate.extensionName]);\n extensions[PerMessageDeflate.extensionName] = perMessageDeflate;\n }\n } catch (err) {\n return abortHandshake(socket, 400);\n }\n }\n\n //\n // Optionally call external client verification handler.\n //\n if (this.options.verifyClient) {\n const info = {\n origin:\n req.headers[`${version === 8 ? 'sec-websocket-origin' : 'origin'}`],\n secure: !!(req.socket.authorized || req.socket.encrypted),\n req\n };\n\n if (this.options.verifyClient.length === 2) {\n this.options.verifyClient(info, (verified, code, message, headers) => {\n if (!verified) {\n return abortHandshake(socket, code || 401, message, headers);\n }\n\n this.completeUpgrade(key, extensions, req, socket, head, cb);\n });\n return;\n }\n\n if (!this.options.verifyClient(info)) return abortHandshake(socket, 401);\n }\n\n this.completeUpgrade(key, extensions, req, socket, head, cb);\n }\n\n /**\n * Upgrade the connection to WebSocket.\n *\n * @param {String} key The value of the `Sec-WebSocket-Key` header\n * @param {Object} extensions The accepted extensions\n * @param {http.IncomingMessage} req The request object\n * @param {net.Socket} socket The network socket between the server and client\n * @param {Buffer} head The first packet of the upgraded stream\n * @param {Function} cb Callback\n * @throws {Error} If called more than once with the same socket\n * @private\n */\n completeUpgrade(key, extensions, req, socket, head, cb) {\n //\n // Destroy the socket if the client has already sent a FIN packet.\n //\n if (!socket.readable || !socket.writable) return socket.destroy();\n\n if (socket[kWebSocket]) {\n throw new Error(\n 'server.handleUpgrade() was called more than once with the same ' +\n 'socket, possibly due to a misconfiguration'\n );\n }\n\n const digest = createHash('sha1')\n .update(key + GUID)\n .digest('base64');\n\n const headers = [\n 'HTTP/1.1 101 Switching Protocols',\n 'Upgrade: websocket',\n 'Connection: Upgrade',\n `Sec-WebSocket-Accept: ${digest}`\n ];\n\n const ws = new WebSocket(null);\n let protocol = req.headers['sec-websocket-protocol'];\n\n if (protocol) {\n protocol = protocol.split(',').map(trim);\n\n //\n // Optionally call external protocol selection handler.\n //\n if (this.options.handleProtocols) {\n protocol = this.options.handleProtocols(protocol, req);\n } else {\n protocol = protocol[0];\n }\n\n if (protocol) {\n headers.push(`Sec-WebSocket-Protocol: ${protocol}`);\n ws._protocol = protocol;\n }\n }\n\n if (extensions[PerMessageDeflate.extensionName]) {\n const params = extensions[PerMessageDeflate.extensionName].params;\n const value = format({\n [PerMessageDeflate.extensionName]: [params]\n });\n headers.push(`Sec-WebSocket-Extensions: ${value}`);\n ws._extensions = extensions;\n }\n\n //\n // Allow external modification/inspection of handshake headers.\n //\n this.emit('headers', headers, req);\n\n socket.write(headers.concat('\\r\\n').join('\\r\\n'));\n socket.removeListener('error', socketOnError);\n\n ws.setSocket(socket, head, this.options.maxPayload);\n\n if (this.clients) {\n this.clients.add(ws);\n ws.on('close', () => this.clients.delete(ws));\n }\n\n cb(ws, req);\n }\n}\n\nmodule.exports = WebSocketServer;\n\n/**\n * Add event listeners on an `EventEmitter` using a map of \n * pairs.\n *\n * @param {EventEmitter} server The event emitter\n * @param {Object.} map The listeners to add\n * @return {Function} A function that will remove the added listeners when\n * called\n * @private\n */\nfunction addListeners(server, map) {\n for (const event of Object.keys(map)) server.on(event, map[event]);\n\n return function removeListeners() {\n for (const event of Object.keys(map)) {\n server.removeListener(event, map[event]);\n }\n };\n}\n\n/**\n * Emit a `'close'` event on an `EventEmitter`.\n *\n * @param {EventEmitter} server The event emitter\n * @private\n */\nfunction emitClose(server) {\n server.emit('close');\n}\n\n/**\n * Handle premature socket errors.\n *\n * @private\n */\nfunction socketOnError() {\n this.destroy();\n}\n\n/**\n * Close the connection when preconditions are not fulfilled.\n *\n * @param {net.Socket} socket The socket of the upgrade request\n * @param {Number} code The HTTP response status code\n * @param {String} [message] The HTTP response body\n * @param {Object} [headers] Additional HTTP response headers\n * @private\n */\nfunction abortHandshake(socket, code, message, headers) {\n if (socket.writable) {\n message = message || STATUS_CODES[code];\n headers = {\n Connection: 'close',\n 'Content-Type': 'text/html',\n 'Content-Length': Buffer.byteLength(message),\n ...headers\n };\n\n socket.write(\n `HTTP/1.1 ${code} ${STATUS_CODES[code]}\\r\\n` +\n Object.keys(headers)\n .map((h) => `${h}: ${headers[h]}`)\n .join('\\r\\n') +\n '\\r\\n\\r\\n' +\n message\n );\n }\n\n socket.removeListener('error', socketOnError);\n socket.destroy();\n}\n\n/**\n * Remove whitespace characters from both ends of a string.\n *\n * @param {String} str The string\n * @return {String} A new string representing `str` stripped of whitespace\n * characters from both its beginning and end\n * @private\n */\nfunction trim(str) {\n return str.trim();\n}\n", "'use strict';\n\nconst WebSocket = require('./lib/websocket');\n\nWebSocket.createWebSocketStream = require('./lib/stream');\nWebSocket.Server = require('./lib/websocket-server');\nWebSocket.Receiver = require('./lib/receiver');\nWebSocket.Sender = require('./lib/sender');\n\nmodule.exports = WebSocket;\n", "import WebSocket from \"ws\";\n\nexport { WebSocket }\n", "\"use strict\";\n\nimport { BigNumber } from \"@ethersproject/bignumber\";\nimport { Network, Networkish } from \"@ethersproject/networks\";\nimport { defineReadOnly } from \"@ethersproject/properties\";\n\nimport { Event } from \"./base-provider\";\nimport { JsonRpcProvider } from \"./json-rpc-provider\";\nimport { WebSocket } from \"./ws\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\n/**\n * Notes:\n *\n * This provider differs a bit from the polling providers. One main\n * difference is how it handles consistency. The polling providers\n * will stall responses to ensure a consistent state, while this\n * WebSocket provider assumes the connected backend will manage this.\n *\n * For example, if a polling provider emits an event which indicates\n * the event occurred in blockhash XXX, a call to fetch that block by\n * its hash XXX, if not present will retry until it is present. This\n * can occur when querying a pool of nodes that are mildly out of sync\n * with each other.\n */\n\nlet NextId = 1;\n\nexport type InflightRequest = {\n callback: (error: Error, result: any) => void;\n payload: string;\n};\n\nexport type Subscription = {\n tag: string;\n processFunc: (payload: any) => void;\n};\n\nexport interface WebSocketLike {\n onopen: ((...args: Array) => any) | null;\n onmessage: ((...args: Array) => any) | null;\n onerror: ((...args: Array) => any) | null;\n\n readyState: number;\n\n send(payload: any): void;\n close(code?: number, reason?: string): void;\n}\n\n// For more info about the Real-time Event API see:\n// https://geth.ethereum.org/docs/rpc/pubsub\n\nexport class WebSocketProvider extends JsonRpcProvider {\n readonly _websocket: any;\n readonly _requests: { [ name: string ]: InflightRequest };\n readonly _detectNetwork: Promise;\n\n // Maps event tag to subscription ID (we dedupe identical events)\n readonly _subIds: { [ tag: string ]: Promise };\n\n // Maps Subscription ID to Subscription\n readonly _subs: { [ name: string ]: Subscription };\n\n _wsReady: boolean;\n\n constructor(url: string | WebSocketLike, network?: Networkish) {\n\n // This will be added in the future; please open an issue to expedite\n if (network === \"any\") {\n logger.throwError(\"WebSocketProvider does not support 'any' network yet\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"network:any\"\n });\n }\n\n if (typeof(url) === \"string\") {\n super(url, network);\n } else {\n super(\"_websocket\", network);\n }\n\n this._pollingInterval = -1;\n\n this._wsReady = false;\n\n if (typeof(url) === \"string\") {\n defineReadOnly(this, \"_websocket\", new WebSocket(this.connection.url));\n } else {\n defineReadOnly(this, \"_websocket\", url);\n }\n\n defineReadOnly(this, \"_requests\", { });\n defineReadOnly(this, \"_subs\", { });\n defineReadOnly(this, \"_subIds\", { });\n defineReadOnly(this, \"_detectNetwork\", super.detectNetwork());\n\n // Stall sending requests until the socket is open...\n this.websocket.onopen = () => {\n this._wsReady = true;\n Object.keys(this._requests).forEach((id) => {\n this.websocket.send(this._requests[id].payload);\n });\n };\n\n this.websocket.onmessage = (messageEvent: { data: string }) => {\n const data = messageEvent.data;\n const result = JSON.parse(data);\n if (result.id != null) {\n const id = String(result.id);\n const request = this._requests[id];\n delete this._requests[id];\n\n if (result.result !== undefined) {\n request.callback(null, result.result);\n\n this.emit(\"debug\", {\n action: \"response\",\n request: JSON.parse(request.payload),\n response: result.result,\n provider: this\n });\n\n } else {\n let error: Error = null;\n if (result.error) {\n error = new Error(result.error.message || \"unknown error\");\n defineReadOnly(error, \"code\", result.error.code || null);\n defineReadOnly(error, \"response\", data);\n } else {\n error = new Error(\"unknown error\");\n }\n\n request.callback(error, undefined);\n\n this.emit(\"debug\", {\n action: \"response\",\n error: error,\n request: JSON.parse(request.payload),\n provider: this\n });\n\n }\n\n } else if (result.method === \"eth_subscription\") {\n // Subscription...\n const sub = this._subs[result.params.subscription];\n if (sub) {\n //this.emit.apply(this, );\n sub.processFunc(result.params.result)\n }\n\n } else {\n console.warn(\"this should not happen\");\n }\n };\n\n // This Provider does not actually poll, but we want to trigger\n // poll events for things that depend on them (like stalling for\n // block and transaction lookups)\n const fauxPoll = setInterval(() => {\n this.emit(\"poll\");\n }, 1000);\n if (fauxPoll.unref) { fauxPoll.unref(); }\n }\n\n // Cannot narrow the type of _websocket, as that is not backwards compatible\n // so we add a getter and let the WebSocket be a public API.\n get websocket(): WebSocketLike { return this._websocket; }\n\n detectNetwork(): Promise {\n return this._detectNetwork;\n }\n\n get pollingInterval(): number {\n return 0;\n }\n\n resetEventsBlock(blockNumber: number): void {\n logger.throwError(\"cannot reset events block on WebSocketProvider\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"resetEventBlock\"\n });\n }\n\n set pollingInterval(value: number) {\n logger.throwError(\"cannot set polling interval on WebSocketProvider\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"setPollingInterval\"\n });\n }\n\n async poll(): Promise {\n return null;\n }\n\n set polling(value: boolean) {\n if (!value) { return; }\n\n logger.throwError(\"cannot set polling on WebSocketProvider\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"setPolling\"\n });\n }\n\n send(method: string, params?: Array): Promise {\n const rid = NextId++;\n\n return new Promise((resolve, reject) => {\n function callback(error: Error, result: any) {\n if (error) { return reject(error); }\n return resolve(result);\n }\n\n const payload = JSON.stringify({\n method: method,\n params: params,\n id: rid,\n jsonrpc: \"2.0\"\n });\n\n this.emit(\"debug\", {\n action: \"request\",\n request: JSON.parse(payload),\n provider: this\n });\n\n this._requests[String(rid)] = { callback, payload };\n\n if (this._wsReady) { this.websocket.send(payload); }\n });\n }\n\n static defaultUrl(): string {\n return \"ws:/\\/localhost:8546\";\n }\n\n async _subscribe(tag: string, param: Array, processFunc: (result: any) => void): Promise {\n let subIdPromise = this._subIds[tag];\n if (subIdPromise == null) {\n subIdPromise = Promise.all(param).then((param) => {\n return this.send(\"eth_subscribe\", param);\n });\n this._subIds[tag] = subIdPromise;\n }\n const subId = await subIdPromise;\n this._subs[subId] = { tag, processFunc };\n }\n\n _startEvent(event: Event): void {\n switch (event.type) {\n case \"block\":\n this._subscribe(\"block\", [ \"newHeads\" ], (result: any) => {\n const blockNumber = BigNumber.from(result.number).toNumber();\n this._emitted.block = blockNumber;\n this.emit(\"block\", blockNumber);\n });\n break;\n\n case \"pending\":\n this._subscribe(\"pending\", [ \"newPendingTransactions\" ], (result: any) => {\n this.emit(\"pending\", result);\n });\n break;\n\n case \"filter\":\n this._subscribe(event.tag, [ \"logs\", this._getFilter(event.filter) ], (result: any) => {\n if (result.removed == null) { result.removed = false; }\n this.emit(event.filter, this.formatter.filterLog(result));\n });\n break;\n\n case \"tx\": {\n const emitReceipt = (event: Event) => {\n const hash = event.hash;\n this.getTransactionReceipt(hash).then((receipt) => {\n if (!receipt) { return; }\n this.emit(hash, receipt);\n });\n };\n\n // In case it is already mined\n emitReceipt(event);\n\n // To keep things simple, we start up a single newHeads subscription\n // to keep an eye out for transactions we are watching for.\n // Starting a subscription for an event (i.e. \"tx\") that is already\n // running is (basically) a nop.\n this._subscribe(\"tx\", [ \"newHeads\" ], (result: any) => {\n this._events.filter((e) => (e.type === \"tx\")).forEach(emitReceipt);\n });\n break;\n }\n\n // Nothing is needed\n case \"debug\":\n case \"poll\":\n case \"willPoll\":\n case \"didPoll\":\n case \"error\":\n break;\n\n default:\n console.log(\"unhandled:\", event);\n break;\n }\n }\n\n _stopEvent(event: Event): void {\n let tag = event.tag;\n\n if (event.type === \"tx\") {\n // There are remaining transaction event listeners\n if (this._events.filter((e) => (e.type === \"tx\")).length) {\n return;\n }\n tag = \"tx\";\n } else if (this.listenerCount(event.event)) {\n // There are remaining event listeners\n return;\n }\n\n const subId = this._subIds[tag];\n if (!subId) { return; }\n\n delete this._subIds[tag];\n subId.then((subId) => {\n if (!this._subs[subId]) { return; }\n delete this._subs[subId];\n this.send(\"eth_unsubscribe\", [ subId ]);\n });\n }\n\n async destroy(): Promise {\n // Wait until we have connected before trying to disconnect\n if (this.websocket.readyState === WebSocket.CONNECTING) {\n await (new Promise((resolve) => {\n this.websocket.onopen = function() {\n resolve(true);\n };\n\n this.websocket.onerror = function() {\n resolve(false);\n };\n }));\n }\n\n // Hangup\n // See: https://developer.mozilla.org/en-US/docs/Web/API/CloseEvent#Status_codes\n this.websocket.close(1000);\n }\n}\n", "\n\"use strict\";\n\nimport { Network, Networkish } from \"@ethersproject/networks\";\nimport { defineReadOnly, getStatic } from \"@ethersproject/properties\";\nimport { ConnectionInfo } from \"@ethersproject/web\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\nimport { CommunityResourcable } from \"./formatter\";\nimport { JsonRpcProvider, JsonRpcSigner } from \"./json-rpc-provider\";\n\ntype getUrlFunc = (network: Network, apiKey: string) => string | ConnectionInfo;\n\n// A StaticJsonRpcProvider is useful when you *know* for certain that\n// the backend will never change, as it never calls eth_chainId to\n// verify its backend. However, if the backend does change, the effects\n// are undefined and may include:\n// - inconsistent results\n// - locking up the UI\n// - block skew warnings\n// - wrong results\n// If the network is not explicit (i.e. auto-detection is expected), the\n// node MUST be running and available to respond to requests BEFORE this\n// is instantiated.\nexport class StaticJsonRpcProvider extends JsonRpcProvider {\n async detectNetwork(): Promise {\n let network = this.network;\n if (network == null) {\n network = await super.detectNetwork();\n\n if (!network) {\n logger.throwError(\"no network detected\", Logger.errors.UNKNOWN_ERROR, { });\n }\n\n // If still not set, set it\n if (this._network == null) {\n // A static network does not support \"any\"\n defineReadOnly(this, \"_network\", network);\n\n this.emit(\"network\", network, null);\n }\n }\n return network;\n }\n}\n\nexport abstract class UrlJsonRpcProvider extends StaticJsonRpcProvider implements CommunityResourcable {\n readonly apiKey: any;\n\n constructor(network?: Networkish, apiKey?: any) {\n logger.checkAbstract(new.target, UrlJsonRpcProvider);\n\n // Normalize the Network and API Key\n network = getStatic<(network: Networkish) => Network>(new.target, \"getNetwork\")(network);\n apiKey = getStatic<(apiKey: string) => string>(new.target, \"getApiKey\")(apiKey);\n\n const connection = getStatic(new.target, \"getUrl\")(network, apiKey);\n\n super(connection, network);\n\n if (typeof(apiKey) === \"string\") {\n defineReadOnly(this, \"apiKey\", apiKey);\n } else if (apiKey != null) {\n Object.keys(apiKey).forEach((key) => {\n defineReadOnly(this, key, apiKey[key]);\n });\n }\n }\n\n _startPending(): void {\n logger.warn(\"WARNING: API provider does not support pending filters\");\n }\n\n isCommunityResource(): boolean {\n return false;\n }\n\n getSigner(address?: string): JsonRpcSigner {\n return logger.throwError(\n \"API provider does not support signing\",\n Logger.errors.UNSUPPORTED_OPERATION,\n { operation: \"getSigner\" }\n );\n }\n\n listAccounts(): Promise> {\n return Promise.resolve([]);\n }\n\n // Return a defaultApiKey if null, otherwise validate the API key\n static getApiKey(apiKey: any): any {\n return apiKey;\n }\n\n // Returns the url or connection for the given network and API key. The\n // API key will have been sanitized by the getApiKey first, so any validation\n // or transformations can be done there.\n static getUrl(network: Network, apiKey: any): string | ConnectionInfo {\n return logger.throwError(\"not implemented; sub-classes must override getUrl\", Logger.errors.NOT_IMPLEMENTED, {\n operation: \"getUrl\"\n });\n }\n}\n", "\"use strict\";\n\nimport { Network, Networkish } from \"@ethersproject/networks\";\nimport { defineReadOnly } from \"@ethersproject/properties\";\nimport { ConnectionInfo } from \"@ethersproject/web\";\n\nimport { CommunityResourcable, showThrottleMessage } from \"./formatter\";\nimport { WebSocketProvider } from \"./websocket-provider\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\nimport { UrlJsonRpcProvider } from \"./url-json-rpc-provider\";\n\n// This key was provided to ethers.js by Alchemy to be used by the\n// default provider, but it is recommended that for your own\n// production environments, that you acquire your own API key at:\n// https://dashboard.alchemyapi.io\n\nconst defaultApiKey = \"_gg7wSSi0KMBsdKnGVfHDueq6xMB9EkC\"\n\nexport class AlchemyWebSocketProvider extends WebSocketProvider implements CommunityResourcable {\n readonly apiKey: string;\n\n constructor(network?: Networkish, apiKey?: any) {\n const provider = new AlchemyProvider(network, apiKey);\n\n const url = provider.connection.url.replace(/^http/i, \"ws\")\n .replace(\".alchemyapi.\", \".ws.alchemyapi.\");\n\n super(url, provider.network);\n defineReadOnly(this, \"apiKey\", provider.apiKey);\n }\n\n isCommunityResource(): boolean {\n return (this.apiKey === defaultApiKey);\n }\n}\n\nexport class AlchemyProvider extends UrlJsonRpcProvider {\n\n static getWebSocketProvider(network?: Networkish, apiKey?: any): AlchemyWebSocketProvider {\n return new AlchemyWebSocketProvider(network, apiKey);\n }\n\n static getApiKey(apiKey: any): any {\n if (apiKey == null) { return defaultApiKey; }\n if (apiKey && typeof(apiKey) !== \"string\") {\n logger.throwArgumentError(\"invalid apiKey\", \"apiKey\", apiKey);\n }\n return apiKey;\n }\n\n static getUrl(network: Network, apiKey: string): ConnectionInfo {\n let host = null;\n switch (network.name) {\n case \"homestead\":\n host = \"eth-mainnet.alchemyapi.io/v2/\";\n break;\n case \"goerli\":\n host = \"eth-goerli.g.alchemy.com/v2/\";\n break;\n case \"matic\":\n host = \"polygon-mainnet.g.alchemy.com/v2/\";\n break;\n case \"maticmum\":\n host = \"polygon-mumbai.g.alchemy.com/v2/\";\n break;\n case \"arbitrum\":\n host = \"arb-mainnet.g.alchemy.com/v2/\";\n break;\n case \"arbitrum-goerli\":\n host = \"arb-goerli.g.alchemy.com/v2/\";\n break;\n case \"optimism\":\n host = \"opt-mainnet.g.alchemy.com/v2/\";\n break;\n case \"optimism-goerli\":\n host = \"opt-goerli.g.alchemy.com/v2/\"\n break;\n default:\n logger.throwArgumentError(\"unsupported network\", \"network\", arguments[0]);\n }\n\n return {\n allowGzip: true,\n url: (\"https:/\" + \"/\" + host + apiKey),\n throttleCallback: (attempt: number, url: string) => {\n if (apiKey === defaultApiKey) {\n showThrottleMessage();\n }\n return Promise.resolve(true);\n }\n };\n }\n\n isCommunityResource(): boolean {\n return (this.apiKey === defaultApiKey);\n }\n}\n", "\nimport { Network } from \"@ethersproject/networks\";\n\nimport { showThrottleMessage } from \"./formatter\";\nimport { UrlJsonRpcProvider } from \"./url-json-rpc-provider\";\n\nimport type { ConnectionInfo } from \"@ethersproject/web\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\n\nconst defaultApiKey = \"9f7d929b018cdffb338517efa06f58359e86ff1ffd350bc889738523659e7972\";\n\nfunction getHost(name: string): string {\n switch (name) {\n case \"homestead\":\n return \"rpc.ankr.com/eth/\";\n case \"ropsten\":\n return \"rpc.ankr.com/eth_ropsten/\";\n case \"rinkeby\":\n return \"rpc.ankr.com/eth_rinkeby/\";\n case \"goerli\":\n return \"rpc.ankr.com/eth_goerli/\";\n\n case \"matic\":\n return \"rpc.ankr.com/polygon/\";\n\n case \"arbitrum\":\n return \"rpc.ankr.com/arbitrum/\";\n }\n return logger.throwArgumentError(\"unsupported network\", \"name\", name);\n}\n\nexport class AnkrProvider extends UrlJsonRpcProvider {\n readonly apiKey: string;\n\n isCommunityResource(): boolean {\n return (this.apiKey === defaultApiKey);\n }\n\n static getApiKey(apiKey: any): any {\n if (apiKey == null) { return defaultApiKey; }\n return apiKey;\n }\n\n static getUrl(network: Network, apiKey: any): ConnectionInfo {\n if (apiKey == null) { apiKey = defaultApiKey; }\n const connection: ConnectionInfo = {\n allowGzip: true,\n url: (\"https:/\\/\" + getHost(network.name) + apiKey),\n throttleCallback: (attempt: number, url: string) => {\n if (apiKey.apiKey === defaultApiKey) {\n showThrottleMessage();\n }\n return Promise.resolve(true);\n }\n };\n\n if (apiKey.projectSecret != null) {\n connection.user = \"\";\n connection.password = apiKey.projectSecret\n }\n\n return connection;\n }\n}\n", "\"use strict\";\n\nimport { Network } from \"@ethersproject/networks\";\nimport { UrlJsonRpcProvider } from \"./url-json-rpc-provider\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\nexport class CloudflareProvider extends UrlJsonRpcProvider {\n\n static getApiKey(apiKey: any): any {\n if (apiKey != null) {\n logger.throwArgumentError(\"apiKey not supported for cloudflare\", \"apiKey\", apiKey);\n }\n return null;\n }\n\n static getUrl(network: Network, apiKey?: any): string {\n let host = null;\n switch (network.name) {\n case \"homestead\":\n host = \"https://cloudflare-eth.com/\";\n break;\n default:\n logger.throwArgumentError(\"unsupported network\", \"network\", arguments[0]);\n }\n\n return host;\n }\n\n async perform(method: string, params: any): Promise {\n // The Cloudflare provider does not support eth_blockNumber,\n // so we get the latest block and pull it from that\n if (method === \"getBlockNumber\") {\n const block = await super.perform(\"getBlock\", { blockTag: \"latest\" });\n return block.number;\n }\n\n return super.perform(method, params);\n }\n}\n", "\"use strict\";\n\nimport { BlockTag, TransactionRequest, TransactionResponse } from \"@ethersproject/abstract-provider\";\nimport { hexlify, hexValue, isHexString } from \"@ethersproject/bytes\";\nimport { Network, Networkish } from \"@ethersproject/networks\";\nimport { deepCopy, defineReadOnly } from \"@ethersproject/properties\";\nimport { accessListify } from \"@ethersproject/transactions\";\nimport { ConnectionInfo, fetchJson } from \"@ethersproject/web\";\n\nimport { showThrottleMessage } from \"./formatter\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\nimport { BaseProvider } from \"./base-provider\";\n\n\n// The transaction has already been sanitized by the calls in Provider\nfunction getTransactionPostData(transaction: TransactionRequest): Record {\n const result: Record = { };\n for (let key in transaction) {\n if ((transaction)[key] == null) { continue; }\n let value = (transaction)[key];\n if (key === \"type\" && value === 0) { continue; }\n\n // Quantity-types require no leading zero, unless 0\n if (({ type: true, gasLimit: true, gasPrice: true, maxFeePerGs: true, maxPriorityFeePerGas: true, nonce: true, value: true })[key]) {\n value = hexValue(hexlify(value));\n } else if (key === \"accessList\") {\n value = \"[\" + accessListify(value).map((set) => {\n return `{address:\"${ set.address }\",storageKeys:[\"${ set.storageKeys.join('\",\"') }\"]}`;\n }).join(\",\") + \"]\";\n } else {\n value = hexlify(value);\n }\n result[key] = value;\n }\n return result;\n}\n\nfunction getResult(result: { status?: number, message?: string, result?: any }): any {\n // getLogs, getHistory have weird success responses\n if (result.status == 0 && (result.message === \"No records found\" || result.message === \"No transactions found\")) {\n return result.result;\n }\n\n if (result.status != 1 || typeof(result.message) !== \"string\" || !result.message.match(/^OK/)) {\n const error: any = new Error(\"invalid response\");\n error.result = JSON.stringify(result);\n if ((result.result || \"\").toLowerCase().indexOf(\"rate limit\") >= 0) {\n error.throttleRetry = true;\n }\n throw error;\n }\n\n return result.result;\n}\n\nfunction getJsonResult(result: { jsonrpc: string, result?: any, error?: { code?: number, data?: any, message?: string} } ): any {\n // This response indicates we are being throttled\n if (result && (result).status == 0 && (result).message == \"NOTOK\" && (result.result || \"\").toLowerCase().indexOf(\"rate limit\") >= 0) {\n const error: any = new Error(\"throttled response\");\n error.result = JSON.stringify(result);\n error.throttleRetry = true;\n throw error;\n }\n\n if (result.jsonrpc != \"2.0\") {\n // @TODO: not any\n const error: any = new Error(\"invalid response\");\n error.result = JSON.stringify(result);\n throw error;\n }\n\n if (result.error) {\n // @TODO: not any\n const error: any = new Error(result.error.message || \"unknown error\");\n if (result.error.code) { error.code = result.error.code; }\n if (result.error.data) { error.data = result.error.data; }\n throw error;\n }\n\n return result.result;\n}\n\n// The blockTag was normalized as a string by the Provider pre-perform operations\nfunction checkLogTag(blockTag: string): number | \"latest\" {\n if (blockTag === \"pending\") { throw new Error(\"pending not supported\"); }\n if (blockTag === \"latest\") { return blockTag; }\n\n return parseInt(blockTag.substring(2), 16);\n}\n\n\nfunction checkError(method: string, error: any, transaction: any): any {\n // Undo the \"convenience\" some nodes are attempting to prevent backwards\n // incompatibility; maybe for v6 consider forwarding reverts as errors\n if (method === \"call\" && error.code === Logger.errors.SERVER_ERROR) {\n const e = error.error;\n\n // Etherscan keeps changing their string\n if (e && (e.message.match(/reverted/i) || e.message.match(/VM execution error/i))) {\n // Etherscan prefixes the data like \"Reverted 0x1234\"\n let data = e.data;\n if (data) { data = \"0x\" + data.replace(/^.*0x/i, \"\"); }\n\n if (isHexString(data)) { return data; }\n\n logger.throwError(\"missing revert data in call exception\", Logger.errors.CALL_EXCEPTION, {\n error, data: \"0x\"\n });\n }\n }\n\n // Get the message from any nested error structure\n let message = error.message;\n if (error.code === Logger.errors.SERVER_ERROR) {\n if (error.error && typeof(error.error.message) === \"string\") {\n message = error.error.message;\n } else if (typeof(error.body) === \"string\") {\n message = error.body;\n } else if (typeof(error.responseText) === \"string\") {\n message = error.responseText;\n }\n }\n message = (message || \"\").toLowerCase();\n\n // \"Insufficient funds. The account you tried to send transaction from does not have enough funds. Required 21464000000000 and got: 0\"\n if (message.match(/insufficient funds/)) {\n logger.throwError(\"insufficient funds for intrinsic transaction cost\", Logger.errors.INSUFFICIENT_FUNDS, {\n error, method, transaction\n });\n }\n\n // \"Transaction with the same hash was already imported.\"\n if (message.match(/same hash was already imported|transaction nonce is too low|nonce too low/)) {\n logger.throwError(\"nonce has already been used\", Logger.errors.NONCE_EXPIRED, {\n error, method, transaction\n });\n }\n\n // \"Transaction gas price is too low. There is another transaction with same nonce in the queue. Try increasing the gas price or incrementing the nonce.\"\n if (message.match(/another transaction with same nonce/)) {\n logger.throwError(\"replacement fee too low\", Logger.errors.REPLACEMENT_UNDERPRICED, {\n error, method, transaction\n });\n }\n\n if (message.match(/execution failed due to an exception|execution reverted/)) {\n logger.throwError(\"cannot estimate gas; transaction may fail or may require manual gas limit\", Logger.errors.UNPREDICTABLE_GAS_LIMIT, {\n error, method, transaction\n });\n }\n\n throw error;\n}\n\nexport class EtherscanProvider extends BaseProvider{\n readonly baseUrl: string;\n readonly apiKey: string | null;\n\n constructor(network?: Networkish, apiKey?: string) {\n super(network);\n\n defineReadOnly(this, \"baseUrl\", this.getBaseUrl());\n defineReadOnly(this, \"apiKey\", apiKey || null);\n }\n\n getBaseUrl(): string {\n switch(this.network ? this.network.name: \"invalid\") {\n case \"homestead\":\n return \"https:/\\/api.etherscan.io\";\n case \"goerli\":\n return \"https:/\\/api-goerli.etherscan.io\";\n case \"sepolia\":\n return \"https:/\\/api-sepolia.etherscan.io\";\n case \"matic\":\n return \"https:/\\/api.polygonscan.com\";\n case \"maticmum\":\n return \"https:/\\/api-testnet.polygonscan.com\";\n case \"arbitrum\":\n return \"https:/\\/api.arbiscan.io\";\n case \"arbitrum-goerli\":\n return \"https:/\\/api-goerli.arbiscan.io\";\n case \"optimism\":\n return \"https:/\\/api-optimistic.etherscan.io\";\n case \"optimism-goerli\":\n return \"https:/\\/api-goerli-optimistic.etherscan.io\";\n default:\n }\n\n return logger.throwArgumentError(\"unsupported network\", \"network\", this.network.name);\n }\n\n getUrl(module: string, params: Record): string {\n const query = Object.keys(params).reduce((accum, key) => {\n const value = params[key];\n if (value != null) {\n accum += `&${ key }=${ value }`\n }\n return accum\n }, \"\");\n const apiKey = ((this.apiKey) ? `&apikey=${ this.apiKey }`: \"\");\n return `${ this.baseUrl }/api?module=${ module }${ query }${ apiKey }`;\n }\n\n getPostUrl(): string {\n return `${ this.baseUrl }/api`;\n }\n\n getPostData(module: string, params: Record): Record {\n params.module = module;\n params.apikey = this.apiKey;\n return params;\n }\n\n async fetch(module: string, params: Record, post?: boolean): Promise {\n const url = (post ? this.getPostUrl(): this.getUrl(module, params));\n const payload = (post ? this.getPostData(module, params): null);\n const procFunc = (module === \"proxy\") ? getJsonResult: getResult;\n\n this.emit(\"debug\", {\n action: \"request\",\n request: url,\n provider: this\n });\n\n const connection: ConnectionInfo = {\n url: url,\n throttleSlotInterval: 1000,\n throttleCallback: (attempt: number, url: string) => {\n if (this.isCommunityResource()) {\n showThrottleMessage();\n }\n return Promise.resolve(true);\n }\n };\n\n let payloadStr: string = null;\n if (payload) {\n connection.headers = { \"content-type\": \"application/x-www-form-urlencoded; charset=UTF-8\" };\n payloadStr = Object.keys(payload).map((key) => {\n return `${ key }=${ payload[key] }`\n }).join(\"&\");\n }\n\n const result = await fetchJson(connection, payloadStr, procFunc || getJsonResult);\n\n this.emit(\"debug\", {\n action: \"response\",\n request: url,\n response: deepCopy(result),\n provider: this\n });\n\n return result;\n }\n\n async detectNetwork(): Promise {\n return this.network;\n }\n\n async perform(method: string, params: any): Promise {\n\n switch (method) {\n case \"getBlockNumber\":\n return this.fetch(\"proxy\", { action: \"eth_blockNumber\" });\n\n case \"getGasPrice\":\n return this.fetch(\"proxy\", { action: \"eth_gasPrice\" });\n\n case \"getBalance\":\n // Returns base-10 result\n return this.fetch(\"account\", {\n action: \"balance\",\n address: params.address,\n tag: params.blockTag\n });\n\n case \"getTransactionCount\":\n return this.fetch(\"proxy\", {\n action: \"eth_getTransactionCount\",\n address: params.address,\n tag: params.blockTag\n });\n\n case \"getCode\":\n return this.fetch(\"proxy\", {\n action: \"eth_getCode\",\n address: params.address,\n tag: params.blockTag\n });\n\n case \"getStorageAt\":\n return this.fetch(\"proxy\", {\n action: \"eth_getStorageAt\",\n address: params.address,\n position: params.position,\n tag: params.blockTag\n });\n\n case \"sendTransaction\":\n return this.fetch(\"proxy\", {\n action: \"eth_sendRawTransaction\",\n hex: params.signedTransaction\n }, true).catch((error) => {\n return checkError(\"sendTransaction\", error, params.signedTransaction);\n });\n\n case \"getBlock\":\n if (params.blockTag) {\n return this.fetch(\"proxy\", {\n action: \"eth_getBlockByNumber\",\n tag: params.blockTag,\n boolean: (params.includeTransactions ? \"true\": \"false\")\n });\n }\n throw new Error(\"getBlock by blockHash not implemented\");\n\n case \"getTransaction\":\n return this.fetch(\"proxy\", {\n action: \"eth_getTransactionByHash\",\n txhash: params.transactionHash\n });\n\n case \"getTransactionReceipt\":\n return this.fetch(\"proxy\", {\n action: \"eth_getTransactionReceipt\",\n txhash: params.transactionHash\n });\n\n case \"call\": {\n if (params.blockTag !== \"latest\") {\n throw new Error(\"EtherscanProvider does not support blockTag for call\");\n }\n\n const postData = getTransactionPostData(params.transaction);\n postData.module = \"proxy\";\n postData.action = \"eth_call\";\n\n try {\n return await this.fetch(\"proxy\", postData, true);\n } catch (error) {\n return checkError(\"call\", error, params.transaction);\n }\n }\n\n case \"estimateGas\": {\n const postData = getTransactionPostData(params.transaction);\n postData.module = \"proxy\";\n postData.action = \"eth_estimateGas\";\n\n try {\n return await this.fetch(\"proxy\", postData, true);\n } catch (error) {\n return checkError(\"estimateGas\", error, params.transaction);\n }\n }\n\n case \"getLogs\": {\n const args: Record = { action: \"getLogs\" }\n\n if (params.filter.fromBlock) {\n args.fromBlock = checkLogTag(params.filter.fromBlock);\n }\n\n if (params.filter.toBlock) {\n args.toBlock = checkLogTag(params.filter.toBlock);\n }\n\n if (params.filter.address) {\n args.address = params.filter.address;\n }\n\n // @TODO: We can handle slightly more complicated logs using the logs API\n if (params.filter.topics && params.filter.topics.length > 0) {\n if (params.filter.topics.length > 1) {\n logger.throwError(\"unsupported topic count\", Logger.errors.UNSUPPORTED_OPERATION, { topics: params.filter.topics });\n }\n\n if (params.filter.topics.length === 1) {\n const topic0 = params.filter.topics[0];\n if (typeof(topic0) !== \"string\" || topic0.length !== 66) {\n logger.throwError(\"unsupported topic format\", Logger.errors.UNSUPPORTED_OPERATION, { topic0: topic0 });\n }\n args.topic0 = topic0;\n }\n }\n\n const logs: Array = await this.fetch(\"logs\", args);\n\n // Cache txHash => blockHash\n let blocks: { [tag: string]: string } = {};\n\n // Add any missing blockHash to the logs\n for (let i = 0; i < logs.length; i++) {\n const log = logs[i];\n if (log.blockHash != null) { continue; }\n if (blocks[log.blockNumber] == null) {\n const block = await this.getBlock(log.blockNumber);\n if (block) {\n blocks[log.blockNumber] = block.hash;\n }\n }\n log.blockHash = blocks[log.blockNumber];\n }\n\n return logs;\n }\n\n case \"getEtherPrice\":\n if (this.network.name !== \"homestead\") { return 0.0; }\n return parseFloat((await this.fetch(\"stats\", { action: \"ethprice\" })).ethusd);\n\n default:\n break;\n }\n\n return super.perform(method, params);\n }\n\n // Note: The `page` page parameter only allows pagination within the\n // 10,000 window available without a page and offset parameter\n // Error: Result window is too large, PageNo x Offset size must\n // be less than or equal to 10000\n async getHistory(addressOrName: string | Promise, startBlock?: BlockTag, endBlock?: BlockTag): Promise> {\n const params = {\n action: \"txlist\",\n address: (await this.resolveName(addressOrName)),\n startblock: ((startBlock == null) ? 0: startBlock),\n endblock: ((endBlock == null) ? 99999999: endBlock),\n sort: \"asc\"\n };\n\n const result = await this.fetch(\"account\", params);\n\n return result.map((tx: any) => {\n [\"contractAddress\", \"to\"].forEach(function(key) {\n if (tx[key] == \"\") { delete tx[key]; }\n });\n if (tx.creates == null && tx.contractAddress != null) {\n tx.creates = tx.contractAddress;\n }\n const item = this.formatter.transactionResponse(tx);\n if (tx.timeStamp) { item.timestamp = parseInt(tx.timeStamp); }\n return item;\n });\n }\n\n isCommunityResource(): boolean {\n return (this.apiKey == null);\n }\n}\n", "\"use strict\";\n\nimport { Block, BlockWithTransactions, Provider } from \"@ethersproject/abstract-provider\";\nimport { BigNumber } from \"@ethersproject/bignumber\";\nimport { isHexString } from \"@ethersproject/bytes\";\nimport { Network } from \"@ethersproject/networks\";\nimport { deepCopy, defineReadOnly, shallowCopy } from \"@ethersproject/properties\";\nimport { shuffled } from \"@ethersproject/random\";\nimport { poll } from \"@ethersproject/web\";\n\nimport { BaseProvider } from \"./base-provider\";\nimport { isCommunityResource } from \"./formatter\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\nfunction now() { return (new Date()).getTime(); }\n\n// Returns to network as long as all agree, or null if any is null.\n// Throws an error if any two networks do not match.\nfunction checkNetworks(networks: Array): Network {\n let result = null;\n\n for (let i = 0; i < networks.length; i++) {\n const network = networks[i];\n\n // Null! We do not know our network; bail.\n if (network == null) { return null; }\n\n if (result) {\n // Make sure the network matches the previous networks\n if (!(result.name === network.name && result.chainId === network.chainId &&\n ((result.ensAddress === network.ensAddress) || (result.ensAddress == null && network.ensAddress == null)))) {\n\n logger.throwArgumentError(\"provider mismatch\", \"networks\", networks);\n }\n } else {\n result = network;\n }\n }\n\n return result;\n}\n\nfunction median(values: Array, maxDelta?: number): number {\n values = values.slice().sort();\n const middle = Math.floor(values.length / 2);\n\n // Odd length; take the middle\n if (values.length % 2) {\n return values[middle];\n }\n\n // Even length; take the average of the two middle\n const a = values[middle - 1], b = values[middle];\n\n if (maxDelta != null && Math.abs(a - b) > maxDelta) {\n return null;\n }\n\n return (a + b) / 2;\n}\n\nfunction serialize(value: any): string {\n if (value === null) {\n return \"null\";\n } else if (typeof(value) === \"number\" || typeof(value) === \"boolean\") {\n return JSON.stringify(value);\n } else if (typeof(value) === \"string\") {\n return value;\n } else if (BigNumber.isBigNumber(value)) {\n return value.toString();\n } else if (Array.isArray(value)) {\n return JSON.stringify(value.map((i) => serialize(i)));\n } else if (typeof(value) === \"object\") {\n const keys = Object.keys(value);\n keys.sort();\n return \"{\" + keys.map((key) => {\n let v = value[key];\n if (typeof(v) === \"function\") {\n v = \"[function]\";\n } else {\n v = serialize(v);\n }\n return JSON.stringify(key) + \":\" + v;\n }).join(\",\") + \"}\";\n }\n\n throw new Error(\"unknown value type: \" + typeof(value));\n}\n\n// Next request ID to use for emitting debug info\nlet nextRid = 1;\n\n\nexport interface FallbackProviderConfig {\n // The Provider\n provider: Provider;\n\n // The priority to favour this Provider; lower values are used first (higher priority)\n priority?: number;\n\n // Timeout before also triggering the next provider; this does not stop\n // this provider and if its result comes back before a quorum is reached\n // it will be incorporated into the vote\n // - lower values will cause more network traffic but may result in a\n // faster result.\n stallTimeout?: number;\n\n // How much this provider contributes to the quorum; sometimes a specific\n // provider may be more reliable or trustworthy than others, but usually\n // this should be left as the default\n weight?: number;\n};\n\n// A Staller is used to provide a delay to give a Provider a chance to response\n// before asking the next Provider to try.\ntype Staller = {\n wait: (func: () => void) => Promise\n getPromise: () => Promise,\n cancel: () => void\n};\n\nfunction stall(duration: number): Staller {\n let cancel: () => void = null;\n\n let timer: NodeJS.Timer = null;\n let promise = >(new Promise((resolve) => {\n cancel = function() {\n if (timer) {\n clearTimeout(timer);\n timer = null;\n }\n resolve();\n }\n timer = setTimeout(cancel, duration);\n }));\n\n const wait = (func: () => void) => {\n promise = promise.then(func);\n return promise;\n }\n\n function getPromise(): Promise {\n return promise;\n }\n\n return { cancel, getPromise, wait };\n}\n\nconst ForwardErrors = [\n Logger.errors.CALL_EXCEPTION,\n Logger.errors.INSUFFICIENT_FUNDS,\n Logger.errors.NONCE_EXPIRED,\n Logger.errors.REPLACEMENT_UNDERPRICED,\n Logger.errors.UNPREDICTABLE_GAS_LIMIT\n];\n\nconst ForwardProperties = [\n \"address\",\n \"args\",\n \"errorArgs\",\n \"errorSignature\",\n \"method\",\n \"transaction\",\n];\n\n\n// @TODO: Make this an object with staller and cancel built-in\ninterface RunningConfig extends FallbackProviderConfig {\n start?: number;\n done?: boolean;\n cancelled?: boolean;\n runner?: Promise;\n staller?: Staller;\n result?: any;\n error?: Error;\n};\n\nfunction exposeDebugConfig(config: RunningConfig, now?: number): any {\n const result: any = {\n weight: config.weight\n };\n Object.defineProperty(result, \"provider\", { get: () => config.provider });\n if (config.start) { result.start = config.start; }\n if (now) { result.duration = (now - config.start); }\n if (config.done) {\n if (config.error) {\n result.error = config.error;\n } else {\n result.result = config.result || null;\n }\n }\n return result;\n}\n\nfunction normalizedTally(normalize: (value: any) => string, quorum: number): (configs: Array) => any {\n return function(configs: Array): any {\n\n // Count the votes for each result\n const tally: { [ key: string]: { count: number, result: any } } = { };\n configs.forEach((c) => {\n const value = normalize(c.result);\n if (!tally[value]) { tally[value] = { count: 0, result: c.result }; }\n tally[value].count++;\n });\n\n // Check for a quorum on any given result\n const keys = Object.keys(tally);\n for (let i = 0; i < keys.length; i++) {\n const check = tally[keys[i]];\n if (check.count >= quorum) {\n return check.result;\n }\n }\n\n // No quroum\n return undefined;\n }\n}\nfunction getProcessFunc(provider: FallbackProvider, method: string, params: { [ key: string ]: any }): (configs: Array) => any {\n\n let normalize = serialize;\n\n switch (method) {\n case \"getBlockNumber\":\n // Return the median value, unless there is (median + 1) is also\n // present, in which case that is probably true and the median\n // is going to be stale soon. In the event of a malicious node,\n // the lie will be true soon enough.\n return function(configs: Array): number {\n const values = configs.map((c) => c.result);\n\n // Get the median block number\n let blockNumber = median(configs.map((c) => c.result), 2);\n if (blockNumber == null) { return undefined; }\n\n blockNumber = Math.ceil(blockNumber);\n\n // If the next block height is present, its prolly safe to use\n if (values.indexOf(blockNumber + 1) >= 0) { blockNumber++; }\n\n // Don't ever roll back the blockNumber\n if (blockNumber >= provider._highestBlockNumber) {\n provider._highestBlockNumber = blockNumber;\n }\n\n return provider._highestBlockNumber;\n };\n\n case \"getGasPrice\":\n // Return the middle (round index up) value, similar to median\n // but do not average even entries and choose the higher.\n // Malicious actors must compromise 50% of the nodes to lie.\n return function(configs: Array): BigNumber {\n const values = configs.map((c) => c.result);\n values.sort();\n return values[Math.floor(values.length / 2)];\n }\n\n case \"getEtherPrice\":\n // Returns the median price. Malicious actors must compromise at\n // least 50% of the nodes to lie (in a meaningful way).\n return function(configs: Array): number {\n return median(configs.map((c) => c.result));\n }\n\n // No additional normalizing required; serialize is enough\n case \"getBalance\":\n case \"getTransactionCount\":\n case \"getCode\":\n case \"getStorageAt\":\n case \"call\":\n case \"estimateGas\":\n case \"getLogs\":\n break;\n\n // We drop the confirmations from transactions as it is approximate\n case \"getTransaction\":\n case \"getTransactionReceipt\":\n normalize = function(tx: any): string {\n if (tx == null) { return null; }\n\n tx = shallowCopy(tx);\n tx.confirmations = -1;\n return serialize(tx);\n }\n break;\n\n // We drop the confirmations from transactions as it is approximate\n case \"getBlock\":\n // We drop the confirmations from transactions as it is approximate\n if (params.includeTransactions) {\n normalize = function(block: BlockWithTransactions): string {\n if (block == null) { return null; }\n\n block = shallowCopy(block);\n block.transactions = block.transactions.map((tx) => {\n tx = shallowCopy(tx);\n tx.confirmations = -1;\n return tx;\n });\n return serialize(block);\n };\n } else {\n normalize = function(block: Block): string {\n if (block == null) { return null; }\n return serialize(block);\n }\n }\n break;\n\n default:\n throw new Error(\"unknown method: \" + method);\n }\n\n // Return the result if and only if the expected quorum is\n // satisfied and agreed upon for the final result.\n return normalizedTally(normalize, provider.quorum);\n\n}\n\n// If we are doing a blockTag query, we need to make sure the backend is\n// caught up to the FallbackProvider, before sending a request to it.\nasync function waitForSync(config: RunningConfig, blockNumber: number): Promise {\n const provider = (config.provider);\n\n if ((provider.blockNumber != null && provider.blockNumber >= blockNumber) || blockNumber === -1) {\n return provider;\n }\n\n return poll(() => {\n return new Promise((resolve, reject) => {\n setTimeout(function() {\n\n // We are synced\n if (provider.blockNumber >= blockNumber) { return resolve(provider); }\n\n // We're done; just quit\n if (config.cancelled) { return resolve(null); }\n\n // Try again, next block\n return resolve(undefined);\n }, 0);\n });\n }, { oncePoll: provider });\n}\n\nasync function getRunner(config: RunningConfig, currentBlockNumber: number, method: string, params: { [ key: string]: any }): Promise {\n let provider = config.provider;\n\n switch (method) {\n case \"getBlockNumber\":\n case \"getGasPrice\":\n return provider[method]();\n case \"getEtherPrice\":\n if ((provider).getEtherPrice) {\n return (provider).getEtherPrice();\n }\n break;\n case \"getBalance\":\n case \"getTransactionCount\":\n case \"getCode\":\n if (params.blockTag && isHexString(params.blockTag)) {\n provider = await waitForSync(config, currentBlockNumber)\n }\n return provider[method](params.address, params.blockTag || \"latest\");\n case \"getStorageAt\":\n if (params.blockTag && isHexString(params.blockTag)) {\n provider = await waitForSync(config, currentBlockNumber)\n }\n return provider.getStorageAt(params.address, params.position, params.blockTag || \"latest\");\n case \"getBlock\":\n if (params.blockTag && isHexString(params.blockTag)) {\n provider = await waitForSync(config, currentBlockNumber)\n }\n return provider[(params.includeTransactions ? \"getBlockWithTransactions\": \"getBlock\")](params.blockTag || params.blockHash);\n case \"call\":\n case \"estimateGas\":\n if (params.blockTag && isHexString(params.blockTag)) {\n provider = await waitForSync(config, currentBlockNumber)\n }\n if (method === \"call\" && params.blockTag) {\n return provider[method](params.transaction, params.blockTag);\n }\n return provider[method](params.transaction);\n case \"getTransaction\":\n case \"getTransactionReceipt\":\n return provider[method](params.transactionHash);\n case \"getLogs\": {\n let filter = params.filter;\n if ((filter.fromBlock && isHexString(filter.fromBlock)) || (filter.toBlock && isHexString(filter.toBlock))) {\n provider = await waitForSync(config, currentBlockNumber)\n }\n return provider.getLogs(filter);\n }\n }\n\n return logger.throwError(\"unknown method error\", Logger.errors.UNKNOWN_ERROR, {\n method: method,\n params: params\n });\n}\n\nexport class FallbackProvider extends BaseProvider {\n readonly providerConfigs: ReadonlyArray;\n readonly quorum: number;\n\n // Due to the highly asyncronous nature of the blockchain, we need\n // to make sure we never unroll the blockNumber due to our random\n // sample of backends\n _highestBlockNumber: number;\n\n constructor(providers: Array, quorum?: number) {\n if (providers.length === 0) {\n logger.throwArgumentError(\"missing providers\", \"providers\", providers);\n }\n\n const providerConfigs: Array = providers.map((configOrProvider, index) => {\n if (Provider.isProvider(configOrProvider)) {\n const stallTimeout = isCommunityResource(configOrProvider) ? 2000: 750;\n const priority = 1;\n return Object.freeze({ provider: configOrProvider, weight: 1, stallTimeout, priority });\n }\n\n const config: FallbackProviderConfig = shallowCopy(configOrProvider);\n\n if (config.priority == null) { config.priority = 1; }\n if (config.stallTimeout == null) {\n config.stallTimeout = isCommunityResource(configOrProvider) ? 2000: 750;\n }\n if (config.weight == null) { config.weight = 1; }\n\n const weight = config.weight;\n if (weight % 1 || weight > 512 || weight < 1) {\n logger.throwArgumentError(\"invalid weight; must be integer in [1, 512]\", `providers[${ index }].weight`, weight);\n }\n\n return Object.freeze(config);\n });\n\n const total = providerConfigs.reduce((accum, c) => (accum + c.weight), 0);\n\n if (quorum == null) {\n quorum = total / 2;\n } else if (quorum > total) {\n logger.throwArgumentError(\"quorum will always fail; larger than total weight\", \"quorum\", quorum);\n }\n\n // Are all providers' networks are known\n let networkOrReady: Network | Promise = checkNetworks(providerConfigs.map((c) => ((c.provider)).network));\n\n // Not all networks are known; we must stall\n if (networkOrReady == null) {\n networkOrReady = new Promise((resolve, reject) => {\n setTimeout(() => {\n this.detectNetwork().then(resolve, reject);\n }, 0);\n });\n }\n\n super(networkOrReady);\n\n // Preserve a copy, so we do not get mutated\n defineReadOnly(this, \"providerConfigs\", Object.freeze(providerConfigs));\n defineReadOnly(this, \"quorum\", quorum);\n\n this._highestBlockNumber = -1;\n }\n\n async detectNetwork(): Promise {\n const networks = await Promise.all(this.providerConfigs.map((c) => c.provider.getNetwork()));\n return checkNetworks(networks);\n }\n\n async perform(method: string, params: { [name: string]: any }): Promise {\n // Sending transactions is special; always broadcast it to all backends\n if (method === \"sendTransaction\") {\n const results: Array = await Promise.all(this.providerConfigs.map((c) => {\n return c.provider.sendTransaction(params.signedTransaction).then((result) => {\n return result.hash;\n }, (error) => {\n return error;\n });\n }));\n\n // Any success is good enough (other errors are likely \"already seen\" errors\n for (let i = 0; i < results.length; i++) {\n const result = results[i];\n if (typeof(result) === \"string\") { return result; }\n }\n\n // They were all an error; pick the first error\n throw results[0];\n }\n\n // We need to make sure we are in sync with our backends, so we need\n // to know this before we can make a lot of calls\n if (this._highestBlockNumber === -1 && method !== \"getBlockNumber\") {\n await this.getBlockNumber();\n }\n\n const processFunc = getProcessFunc(this, method, params);\n\n // Shuffle the providers and then sort them by their priority; we\n // shallowCopy them since we will store the result in them too\n const configs: Array = shuffled(this.providerConfigs.map(shallowCopy));\n configs.sort((a, b) => (a.priority - b.priority));\n\n const currentBlockNumber = this._highestBlockNumber;\n\n let i = 0;\n let first = true;\n while (true) {\n const t0 = now();\n\n // Compute the inflight weight (exclude anything past)\n let inflightWeight = configs.filter((c) => (c.runner && ((t0 - c.start) < c.stallTimeout)))\n .reduce((accum, c) => (accum + c.weight), 0);\n\n // Start running enough to meet quorum\n while (inflightWeight < this.quorum && i < configs.length) {\n const config = configs[i++];\n\n const rid = nextRid++;\n\n config.start = now();\n config.staller = stall(config.stallTimeout);\n config.staller.wait(() => { config.staller = null; });\n\n config.runner = getRunner(config, currentBlockNumber, method, params).then((result) => {\n config.done = true;\n config.result = result;\n\n if (this.listenerCount(\"debug\")) {\n this.emit(\"debug\", {\n action: \"request\",\n rid: rid,\n backend: exposeDebugConfig(config, now()),\n request: { method: method, params: deepCopy(params) },\n provider: this\n });\n }\n\n }, (error) => {\n config.done = true;\n config.error = error;\n\n if (this.listenerCount(\"debug\")) {\n this.emit(\"debug\", {\n action: \"request\",\n rid: rid,\n backend: exposeDebugConfig(config, now()),\n request: { method: method, params: deepCopy(params) },\n provider: this\n });\n }\n });\n\n if (this.listenerCount(\"debug\")) {\n this.emit(\"debug\", {\n action: \"request\",\n rid: rid,\n backend: exposeDebugConfig(config, null),\n request: { method: method, params: deepCopy(params) },\n provider: this\n });\n }\n\n inflightWeight += config.weight;\n }\n\n // Wait for anything meaningful to finish or stall out\n const waiting: Array> = [ ];\n configs.forEach((c) => {\n if (c.done || !c.runner) { return; }\n waiting.push(c.runner);\n if (c.staller) { waiting.push(c.staller.getPromise()); }\n });\n\n if (waiting.length) { await Promise.race(waiting); }\n\n // Check the quorum and process the results; the process function\n // may additionally decide the quorum is not met\n const results = configs.filter((c) => (c.done && c.error == null));\n if (results.length >= this.quorum) {\n const result = processFunc(results);\n if (result !== undefined) {\n // Shut down any stallers\n configs.forEach(c => {\n if (c.staller) { c.staller.cancel(); }\n c.cancelled = true;\n });\n return result;\n }\n if (!first) { await stall(100).getPromise(); }\n first = false;\n }\n\n // No result, check for errors that should be forwarded\n const errors = configs.reduce((accum, c) => {\n if (!c.done || c.error == null) { return accum; }\n\n const code = ((c.error)).code;\n if (ForwardErrors.indexOf(code) >= 0) {\n if (!accum[code]) { accum[code] = { error: c.error, weight: 0 }; }\n accum[code].weight += c.weight;\n }\n\n return accum;\n }, <{ [ code: string ]: { error: Error, weight: number } }>({ }));\n\n Object.keys(errors).forEach((errorCode: string) => {\n const tally = errors[errorCode];\n if (tally.weight < this.quorum) { return; }\n\n // Shut down any stallers\n configs.forEach(c => {\n if (c.staller) { c.staller.cancel(); }\n c.cancelled = true;\n });\n\n const e = (tally.error);\n\n const props: { [ name: string ]: any } = { };\n ForwardProperties.forEach((name) => {\n if (e[name] == null) { return; }\n props[name] = e[name];\n });\n\n logger.throwError(e.reason || e.message, errorCode, props);\n });\n\n // All configs have run to completion; we will never get more data\n if (configs.filter((c) => !c.done).length === 0) { break; }\n }\n\n // Shut down any stallers; shouldn't be any\n configs.forEach(c => {\n if (c.staller) { c.staller.cancel(); }\n c.cancelled = true;\n });\n\n return logger.throwError(\"failed to meet quorum\", Logger.errors.SERVER_ERROR, {\n method: method,\n params: params,\n //results: configs.map((c) => c.result),\n //errors: configs.map((c) => c.error),\n results: configs.map((c) => exposeDebugConfig(c)),\n provider: this\n });\n }\n}\n", "\"use strict\";\n\nimport { connect } from \"net\";\n\nimport { defineReadOnly } from \"@ethersproject/properties\";\nimport { Networkish } from \"@ethersproject/networks\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\nimport { JsonRpcProvider } from \"./json-rpc-provider\";\n\n\nexport class IpcProvider extends JsonRpcProvider {\n readonly path: string;\n\n constructor(path: string, network?: Networkish) {\n if (path == null) {\n logger.throwError(\"missing path\", Logger.errors.MISSING_ARGUMENT, { arg: \"path\" });\n }\n\n super(\"ipc://\" + path, network);\n\n defineReadOnly(this, \"path\", path);\n }\n\n // @TODO: Create a connection to the IPC path and use filters instead of polling for block\n\n send(method: string, params: Array): Promise {\n // This method is very simple right now. We create a new socket\n // connection each time, which may be slower, but the main\n // advantage we are aiming for now is security. This simplifies\n // multiplexing requests (since we do not need to multiplex).\n\n let payload = JSON.stringify({\n method: method,\n params: params,\n id: 42,\n jsonrpc: \"2.0\"\n });\n\n return new Promise((resolve, reject) => {\n let response = Buffer.alloc(0);\n\n let stream = connect(this.path);\n\n stream.on(\"data\", (data) => {\n response = Buffer.concat([ response, data ]);\n });\n\n stream.on(\"end\", () => {\n try {\n resolve(JSON.parse(response.toString()).result);\n // @TODO: Better pull apart the error\n stream.destroy();\n } catch (error) {\n reject(error);\n stream.destroy();\n }\n });\n\n stream.on(\"error\", (error) => {\n reject(error);\n stream.destroy();\n });\n\n stream.write(payload);\n stream.end();\n });\n }\n}\n", "\"use strict\";\n\nimport { Network, Networkish } from \"@ethersproject/networks\";\nimport { defineReadOnly } from \"@ethersproject/properties\";\nimport { ConnectionInfo } from \"@ethersproject/web\";\n\nimport { WebSocketProvider } from \"./websocket-provider\";\nimport { CommunityResourcable, showThrottleMessage } from \"./formatter\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\nimport { UrlJsonRpcProvider } from \"./url-json-rpc-provider\";\n\n\nconst defaultProjectId = \"84842078b09946638c03157f83405213\"\n\nexport class InfuraWebSocketProvider extends WebSocketProvider implements CommunityResourcable {\n readonly apiKey: string;\n readonly projectId: string;\n readonly projectSecret: string;\n\n constructor(network?: Networkish, apiKey?: any) {\n const provider = new InfuraProvider(network, apiKey);\n const connection = provider.connection;\n if (connection.password) {\n logger.throwError(\"INFURA WebSocket project secrets unsupported\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"InfuraProvider.getWebSocketProvider()\"\n });\n }\n\n const url = connection.url.replace(/^http/i, \"ws\").replace(\"/v3/\", \"/ws/v3/\");\n super(url, network);\n\n defineReadOnly(this, \"apiKey\", provider.projectId);\n defineReadOnly(this, \"projectId\", provider.projectId);\n defineReadOnly(this, \"projectSecret\", provider.projectSecret);\n }\n\n isCommunityResource(): boolean {\n return (this.projectId === defaultProjectId);\n }\n}\n\nexport class InfuraProvider extends UrlJsonRpcProvider {\n readonly projectId: string;\n readonly projectSecret: string;\n\n static getWebSocketProvider(network?: Networkish, apiKey?: any): InfuraWebSocketProvider {\n return new InfuraWebSocketProvider(network, apiKey);\n }\n\n static getApiKey(apiKey: any): any {\n const apiKeyObj: { apiKey: string, projectId: string, projectSecret: string } = {\n apiKey: defaultProjectId,\n projectId: defaultProjectId,\n projectSecret: null\n };\n\n if (apiKey == null) { return apiKeyObj; }\n\n if (typeof(apiKey) === \"string\") {\n apiKeyObj.projectId = apiKey;\n\n } else if (apiKey.projectSecret != null) {\n logger.assertArgument((typeof(apiKey.projectId) === \"string\"),\n \"projectSecret requires a projectId\", \"projectId\", apiKey.projectId);\n logger.assertArgument((typeof(apiKey.projectSecret) === \"string\"),\n \"invalid projectSecret\", \"projectSecret\", \"[REDACTED]\");\n\n apiKeyObj.projectId = apiKey.projectId;\n apiKeyObj.projectSecret = apiKey.projectSecret;\n\n } else if (apiKey.projectId) {\n apiKeyObj.projectId = apiKey.projectId;\n }\n\n apiKeyObj.apiKey = apiKeyObj.projectId;\n\n return apiKeyObj;\n }\n\n static getUrl(network: Network, apiKey: any): ConnectionInfo {\n let host: string = null;\n switch(network ? network.name: \"unknown\") {\n case \"homestead\":\n host = \"mainnet.infura.io\";\n break;\n case \"goerli\":\n host = \"goerli.infura.io\";\n break;\n case \"sepolia\":\n host = \"sepolia.infura.io\";\n break;\n case \"matic\":\n host = \"polygon-mainnet.infura.io\";\n break;\n case \"maticmum\":\n host = \"polygon-mumbai.infura.io\";\n break;\n case \"optimism\":\n host = \"optimism-mainnet.infura.io\";\n break;\n case \"optimism-goerli\":\n host = \"optimism-goerli.infura.io\";\n break;\n case \"arbitrum\":\n host = \"arbitrum-mainnet.infura.io\";\n break;\n case \"arbitrum-goerli\":\n host = \"arbitrum-goerli.infura.io\";\n break;\n default:\n logger.throwError(\"unsupported network\", Logger.errors.INVALID_ARGUMENT, {\n argument: \"network\",\n value: network\n });\n }\n\n const connection: ConnectionInfo = {\n allowGzip: true,\n url: (\"https:/\" + \"/\" + host + \"/v3/\" + apiKey.projectId),\n throttleCallback: (attempt: number, url: string) => {\n if (apiKey.projectId === defaultProjectId) {\n showThrottleMessage();\n }\n return Promise.resolve(true);\n }\n };\n\n if (apiKey.projectSecret != null) {\n connection.user = \"\";\n connection.password = apiKey.projectSecret\n }\n\n return connection;\n }\n\n isCommunityResource(): boolean {\n return (this.projectId === defaultProjectId);\n }\n}\n", "\nimport { deepCopy } from \"@ethersproject/properties\";\nimport { fetchJson } from \"@ethersproject/web\";\n\nimport { JsonRpcProvider } from \"./json-rpc-provider\";\n\n// Experimental\n\nexport class JsonRpcBatchProvider extends JsonRpcProvider {\n _pendingBatchAggregator: NodeJS.Timer;\n _pendingBatch: Array<{\n request: { method: string, params: Array, id: number, jsonrpc: \"2.0\" },\n resolve: (result: any) => void,\n reject: (error: Error) => void\n }>;\n\n send(method: string, params: Array): Promise {\n const request = {\n method: method,\n params: params,\n id: (this._nextId++),\n jsonrpc: \"2.0\"\n };\n\n if (this._pendingBatch == null) {\n this._pendingBatch = [ ];\n }\n\n const inflightRequest: any = { request, resolve: null, reject: null };\n\n const promise = new Promise((resolve, reject) => {\n inflightRequest.resolve = resolve;\n inflightRequest.reject = reject;\n });\n\n this._pendingBatch.push(inflightRequest);\n\n if (!this._pendingBatchAggregator) {\n // Schedule batch for next event loop + short duration\n this._pendingBatchAggregator = setTimeout(() => {\n\n // Get teh current batch and clear it, so new requests\n // go into the next batch\n const batch = this._pendingBatch;\n this._pendingBatch = null;\n this._pendingBatchAggregator = null;\n\n // Get the request as an array of requests\n const request = batch.map((inflight) => inflight.request);\n\n this.emit(\"debug\", {\n action: \"requestBatch\",\n request: deepCopy(request),\n provider: this\n });\n\n return fetchJson(this.connection, JSON.stringify(request)).then((result) => {\n this.emit(\"debug\", {\n action: \"response\",\n request: request,\n response: result,\n provider: this\n });\n\n // For each result, feed it to the correct Promise, depending\n // on whether it was a success or error\n batch.forEach((inflightRequest, index) => {\n const payload = result[index];\n if (payload.error) {\n const error = new Error(payload.error.message);\n (error).code = payload.error.code;\n (error).data = payload.error.data;\n inflightRequest.reject(error);\n } else {\n inflightRequest.resolve(payload.result);\n }\n });\n\n }, (error) => {\n this.emit(\"debug\", {\n action: \"response\",\n error: error,\n request: request,\n provider: this\n });\n\n batch.forEach((inflightRequest) => {\n inflightRequest.reject(error);\n });\n });\n\n }, 10);\n }\n\n return promise;\n }\n}\n", "/* istanbul ignore file */\n\n\"use strict\";\n\nimport { Network } from \"@ethersproject/networks\";\nimport { UrlJsonRpcProvider } from \"./url-json-rpc-provider\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\n// Special API key provided by Nodesmith for ethers.js\nconst defaultApiKey = \"ETHERS_JS_SHARED\";\n\nexport class NodesmithProvider extends UrlJsonRpcProvider {\n\n static getApiKey(apiKey: any): any {\n if (apiKey && typeof(apiKey) !== \"string\") {\n logger.throwArgumentError(\"invalid apiKey\", \"apiKey\", apiKey);\n }\n return apiKey || defaultApiKey;\n }\n\n static getUrl(network: Network, apiKey?: any): string {\n logger.warn(\"NodeSmith will be discontinued on 2019-12-20; please migrate to another platform.\");\n\n let host = null;\n switch (network.name) {\n case \"homestead\":\n host = \"https://ethereum.api.nodesmith.io/v1/mainnet/jsonrpc\";\n break;\n case \"ropsten\":\n host = \"https://ethereum.api.nodesmith.io/v1/ropsten/jsonrpc\";\n break;\n case \"rinkeby\":\n host = \"https://ethereum.api.nodesmith.io/v1/rinkeby/jsonrpc\";\n break;\n case \"goerli\":\n host = \"https://ethereum.api.nodesmith.io/v1/goerli/jsonrpc\";\n break;\n case \"kovan\":\n host = \"https://ethereum.api.nodesmith.io/v1/kovan/jsonrpc\";\n break;\n default:\n logger.throwArgumentError(\"unsupported network\", \"network\", arguments[0]);\n }\n\n return (host + \"?apiKey=\" + apiKey);\n }\n}\n", "\"use strict\";\n\nimport { Network } from \"@ethersproject/networks\";\nimport { ConnectionInfo } from \"@ethersproject/web\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\nimport { UrlJsonRpcProvider } from \"./url-json-rpc-provider\";\n\nconst defaultApplicationId = \"62e1ad51b37b8e00394bda3b\";\n\n\nexport class PocketProvider extends UrlJsonRpcProvider {\n readonly applicationId: string;\n readonly applicationSecretKey: string;\n readonly loadBalancer: boolean;\n\n static getApiKey(apiKey: any): any {\n const apiKeyObj: { applicationId: string, applicationSecretKey: string, loadBalancer: boolean } = {\n applicationId: null,\n loadBalancer: true,\n applicationSecretKey: null\n };\n\n // Parse applicationId and applicationSecretKey\n if (apiKey == null) {\n apiKeyObj.applicationId = defaultApplicationId;\n\n } else if (typeof (apiKey) === \"string\") {\n apiKeyObj.applicationId = apiKey;\n\n } else if (apiKey.applicationSecretKey != null) {\n apiKeyObj.applicationId = apiKey.applicationId;\n apiKeyObj.applicationSecretKey = apiKey.applicationSecretKey;\n\n } else if (apiKey.applicationId) {\n apiKeyObj.applicationId = apiKey.applicationId;\n\n } else {\n logger.throwArgumentError(\"unsupported PocketProvider apiKey\", \"apiKey\", apiKey);\n }\n\n return apiKeyObj;\n }\n\n static getUrl(network: Network, apiKey: any): ConnectionInfo {\n let host: string = null;\n switch (network ? network.name : \"unknown\") {\n case \"goerli\":\n host = \"eth-goerli.gateway.pokt.network\";\n break;\n case \"homestead\":\n host = \"eth-mainnet.gateway.pokt.network\";\n break;\n case \"kovan\":\n host = \"poa-kovan.gateway.pokt.network\";\n break;\n case \"matic\":\n host = \"poly-mainnet.gateway.pokt.network\";\n break;\n case \"maticmum\":\n host = \"polygon-mumbai-rpc.gateway.pokt.network\";\n break;\n case \"rinkeby\":\n host = \"eth-rinkeby.gateway.pokt.network\";\n break;\n case \"ropsten\":\n host = \"eth-ropsten.gateway.pokt.network\";\n break;\n default:\n logger.throwError(\"unsupported network\", Logger.errors.INVALID_ARGUMENT, {\n argument: \"network\",\n value: network\n });\n }\n\n const url = `https:/\\/${ host }/v1/lb/${ apiKey.applicationId }`\n\n const connection: ConnectionInfo = { headers: { }, url };\n if (apiKey.applicationSecretKey != null) {\n connection.user = \"\";\n connection.password = apiKey.applicationSecretKey\n }\n\n return connection;\n }\n\n isCommunityResource(): boolean {\n return (this.applicationId === defaultApplicationId);\n }\n}\n", "\"use strict\";\n\nimport { Networkish } from \"@ethersproject/networks\";\nimport { deepCopy, defineReadOnly } from \"@ethersproject/properties\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\nimport { JsonRpcProvider } from \"./json-rpc-provider\";\n\n// Exported Types\nexport type ExternalProvider = {\n isMetaMask?: boolean;\n isStatus?: boolean;\n host?: string;\n path?: string;\n sendAsync?: (request: { method: string, params?: Array }, callback: (error: any, response: any) => void) => void\n send?: (request: { method: string, params?: Array }, callback: (error: any, response: any) => void) => void\n request?: (request: { method: string, params?: Array }) => Promise\n}\n\nlet _nextId = 1;\n\nexport type JsonRpcFetchFunc = (method: string, params?: Array) => Promise;\n\ntype Web3LegacySend = (request: any, callback: (error: Error, response: any) => void) => void;\n\nfunction buildWeb3LegacyFetcher(provider: ExternalProvider, sendFunc: Web3LegacySend) : JsonRpcFetchFunc {\n const fetcher = \"Web3LegacyFetcher\";\n\n return function(method: string, params: Array): Promise {\n const request = {\n method: method,\n params: params,\n id: (_nextId++),\n jsonrpc: \"2.0\"\n };\n\n return new Promise((resolve, reject) => {\n this.emit(\"debug\", {\n action: \"request\",\n fetcher,\n request: deepCopy(request),\n provider: this\n });\n\n sendFunc(request, (error, response) => {\n\n if (error) {\n this.emit(\"debug\", {\n action: \"response\",\n fetcher,\n error,\n request,\n provider: this\n });\n\n return reject(error);\n }\n\n this.emit(\"debug\", {\n action: \"response\",\n fetcher,\n request,\n response,\n provider: this\n });\n\n if (response.error) {\n const error = new Error(response.error.message);\n (error).code = response.error.code;\n (error).data = response.error.data;\n return reject(error);\n }\n\n resolve(response.result);\n });\n });\n }\n}\n\nfunction buildEip1193Fetcher(provider: ExternalProvider): JsonRpcFetchFunc {\n return function(method: string, params: Array): Promise {\n if (params == null) { params = [ ]; }\n\n const request = { method, params };\n\n this.emit(\"debug\", {\n action: \"request\",\n fetcher: \"Eip1193Fetcher\",\n request: deepCopy(request),\n provider: this\n });\n\n return provider.request(request).then((response) => {\n this.emit(\"debug\", {\n action: \"response\",\n fetcher: \"Eip1193Fetcher\",\n request,\n response,\n provider: this\n });\n\n return response;\n\n }, (error) => {\n this.emit(\"debug\", {\n action: \"response\",\n fetcher: \"Eip1193Fetcher\",\n request,\n error,\n provider: this\n });\n\n throw error;\n });\n }\n}\n\nexport class Web3Provider extends JsonRpcProvider {\n readonly provider: ExternalProvider;\n readonly jsonRpcFetchFunc: JsonRpcFetchFunc;\n\n constructor(provider: ExternalProvider | JsonRpcFetchFunc, network?: Networkish) {\n if (provider == null) {\n logger.throwArgumentError(\"missing provider\", \"provider\", provider);\n }\n\n let path: string = null;\n let jsonRpcFetchFunc: JsonRpcFetchFunc = null;\n let subprovider: ExternalProvider = null;\n\n if (typeof(provider) === \"function\") {\n path = \"unknown:\";\n jsonRpcFetchFunc = provider;\n\n } else {\n path = provider.host || provider.path || \"\";\n if (!path && provider.isMetaMask) {\n path = \"metamask\";\n }\n\n subprovider = provider;\n\n if (provider.request) {\n if (path === \"\") { path = \"eip-1193:\"; }\n jsonRpcFetchFunc = buildEip1193Fetcher(provider);\n } else if (provider.sendAsync) {\n jsonRpcFetchFunc = buildWeb3LegacyFetcher(provider, provider.sendAsync.bind(provider));\n } else if (provider.send) {\n jsonRpcFetchFunc = buildWeb3LegacyFetcher(provider, provider.send.bind(provider));\n } else {\n logger.throwArgumentError(\"unsupported provider\", \"provider\", provider);\n }\n\n if (!path) { path = \"unknown:\"; }\n }\n\n super(path, network);\n\n defineReadOnly(this, \"jsonRpcFetchFunc\", jsonRpcFetchFunc);\n defineReadOnly(this, \"provider\", subprovider);\n }\n\n send(method: string, params: Array): Promise {\n return this.jsonRpcFetchFunc(method, params);\n }\n}\n", "\"use strict\";\n\nimport {\n Block,\n BlockTag,\n EventType,\n FeeData,\n Filter,\n Log,\n Listener,\n Provider,\n TransactionReceipt,\n TransactionRequest,\n TransactionResponse\n} from \"@ethersproject/abstract-provider\";\n\nimport { getNetwork } from \"@ethersproject/networks\";\nimport { Network, Networkish } from \"@ethersproject/networks\";\n\nimport { BaseProvider, EnsProvider, EnsResolver, Resolver } from \"./base-provider\";\n\nimport { AlchemyProvider, AlchemyWebSocketProvider } from \"./alchemy-provider\";\nimport { AnkrProvider } from \"./ankr-provider\";\nimport { CloudflareProvider } from \"./cloudflare-provider\";\nimport { EtherscanProvider } from \"./etherscan-provider\";\nimport { FallbackProvider, FallbackProviderConfig } from \"./fallback-provider\";\nimport { IpcProvider } from \"./ipc-provider\";\nimport { InfuraProvider, InfuraWebSocketProvider } from \"./infura-provider\";\nimport { JsonRpcProvider, JsonRpcSigner } from \"./json-rpc-provider\";\nimport { JsonRpcBatchProvider } from \"./json-rpc-batch-provider\";\nimport { NodesmithProvider } from \"./nodesmith-provider\";\nimport { PocketProvider } from \"./pocket-provider\";\nimport { StaticJsonRpcProvider, UrlJsonRpcProvider } from \"./url-json-rpc-provider\";\nimport { Web3Provider } from \"./web3-provider\";\nimport { WebSocketProvider } from \"./websocket-provider\";\nimport { ExternalProvider, JsonRpcFetchFunc } from \"./web3-provider\";\n\nimport { CommunityResourcable, Formatter, isCommunityResourcable, isCommunityResource, showThrottleMessage } from \"./formatter\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\n////////////////////////\n// Helper Functions\n\nfunction getDefaultProvider(network?: Networkish, options?: any): BaseProvider {\n if (network == null) { network = \"homestead\"; }\n\n // If passed a URL, figure out the right type of provider based on the scheme\n if (typeof(network) === \"string\") {\n // @TODO: Add support for IpcProvider; maybe if it ends in \".ipc\"?\n\n // Handle http and ws (and their secure variants)\n const match = network.match(/^(ws|http)s?:/i);\n if (match) {\n switch (match[1].toLowerCase()) {\n case \"http\": case \"https\":\n return new JsonRpcProvider(network);\n case \"ws\": case \"wss\":\n return new WebSocketProvider(network);\n default:\n logger.throwArgumentError(\"unsupported URL scheme\", \"network\", network);\n }\n }\n }\n\n const n = getNetwork(network);\n if (!n || !n._defaultProvider) {\n logger.throwError(\"unsupported getDefaultProvider network\", Logger.errors.NETWORK_ERROR, {\n operation: \"getDefaultProvider\",\n network: network\n });\n }\n\n return n._defaultProvider({\n FallbackProvider,\n\n AlchemyProvider,\n AnkrProvider,\n CloudflareProvider,\n EtherscanProvider,\n InfuraProvider,\n JsonRpcProvider,\n NodesmithProvider,\n PocketProvider,\n Web3Provider,\n\n IpcProvider,\n }, options);\n}\n\n////////////////////////\n// Exports\n\nexport {\n\n // Abstract Providers (or Abstract-ish)\n Provider,\n BaseProvider,\n\n Resolver,\n\n UrlJsonRpcProvider,\n\n ///////////////////////\n // Concrete Providers\n\n FallbackProvider,\n\n AlchemyProvider,\n AlchemyWebSocketProvider,\n AnkrProvider,\n CloudflareProvider,\n EtherscanProvider,\n InfuraProvider,\n InfuraWebSocketProvider,\n JsonRpcProvider,\n JsonRpcBatchProvider,\n NodesmithProvider,\n PocketProvider,\n StaticJsonRpcProvider,\n Web3Provider,\n WebSocketProvider,\n\n IpcProvider,\n\n\n ///////////////////////\n // Signer\n\n JsonRpcSigner,\n\n\n ///////////////////////\n // Functions\n\n getDefaultProvider,\n getNetwork,\n isCommunityResource,\n isCommunityResourcable,\n showThrottleMessage,\n\n\n ///////////////////////\n // Objects\n\n Formatter,\n\n\n ///////////////////////\n // Types\n\n Block,\n BlockTag,\n EventType,\n FeeData,\n Filter,\n Log,\n Listener,\n TransactionReceipt,\n TransactionRequest,\n TransactionResponse,\n\n ExternalProvider,\n JsonRpcFetchFunc,\n\n FallbackProviderConfig,\n\n Network,\n Networkish,\n\n EnsProvider,\n EnsResolver,\n\n CommunityResourcable\n};\n\n", "export const version = \"solidity/5.7.0\";\n", "\"use strict\";\n\nimport { BigNumber } from \"@ethersproject/bignumber\";\nimport { arrayify, concat, hexlify, zeroPad } from \"@ethersproject/bytes\";\nimport { keccak256 as hashKeccak256 } from \"@ethersproject/keccak256\";\nimport { sha256 as hashSha256 } from \"@ethersproject/sha2\";\nimport { toUtf8Bytes } from \"@ethersproject/strings\";\n\nconst regexBytes = new RegExp(\"^bytes([0-9]+)$\");\nconst regexNumber = new RegExp(\"^(u?int)([0-9]*)$\");\nconst regexArray = new RegExp(\"^(.*)\\\\[([0-9]*)\\\\]$\");\n\nconst Zeros = \"0000000000000000000000000000000000000000000000000000000000000000\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\n\nfunction _pack(type: string, value: any, isArray?: boolean): Uint8Array {\n switch(type) {\n case \"address\":\n if (isArray) { return zeroPad(value, 32); }\n return arrayify(value);\n case \"string\":\n return toUtf8Bytes(value);\n case \"bytes\":\n return arrayify(value);\n case \"bool\":\n value = (value ? \"0x01\": \"0x00\");\n if (isArray) { return zeroPad(value, 32); }\n return arrayify(value);\n }\n\n let match = type.match(regexNumber);\n if (match) {\n //let signed = (match[1] === \"int\")\n let size = parseInt(match[2] || \"256\")\n\n if ((match[2] && String(size) !== match[2]) || (size % 8 !== 0) || size === 0 || size > 256) {\n logger.throwArgumentError(\"invalid number type\", \"type\", type)\n }\n\n if (isArray) { size = 256; }\n\n value = BigNumber.from(value).toTwos(size);\n\n return zeroPad(value, size / 8);\n }\n\n match = type.match(regexBytes);\n if (match) {\n const size = parseInt(match[1]);\n\n if (String(size) !== match[1] || size === 0 || size > 32) {\n logger.throwArgumentError(\"invalid bytes type\", \"type\", type)\n }\n if (arrayify(value).byteLength !== size) {\n logger.throwArgumentError(`invalid value for ${ type }`, \"value\", value)\n }\n if (isArray) { return arrayify((value + Zeros).substring(0, 66)); }\n return value;\n }\n\n match = type.match(regexArray);\n if (match && Array.isArray(value)) {\n const baseType = match[1];\n const count = parseInt(match[2] || String(value.length));\n if (count != value.length) {\n logger.throwArgumentError(`invalid array length for ${ type }`, \"value\", value)\n }\n const result: Array = [];\n value.forEach(function(value) {\n result.push(_pack(baseType, value, true));\n });\n return concat(result);\n }\n\n return logger.throwArgumentError(\"invalid type\", \"type\", type)\n}\n\n// @TODO: Array Enum\n\nexport function pack(types: ReadonlyArray, values: ReadonlyArray) {\n if (types.length != values.length) {\n logger.throwArgumentError(\"wrong number of values; expected ${ types.length }\", \"values\", values)\n }\n const tight: Array = [];\n types.forEach(function(type, index) {\n tight.push(_pack(type, values[index]));\n });\n return hexlify(concat(tight));\n}\n\nexport function keccak256(types: ReadonlyArray, values: ReadonlyArray) {\n return hashKeccak256(pack(types, values));\n}\n\nexport function sha256(types: ReadonlyArray, values: ReadonlyArray) {\n return hashSha256(pack(types, values));\n}\n", "export const version = \"units/5.7.0\";\n", "\"use strict\";\n\nimport { BigNumber, BigNumberish } from \"@ethersproject/bignumber\";\nimport { formatFixed, parseFixed } from \"@ethersproject/bignumber\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\nconst names = [\n \"wei\",\n \"kwei\",\n \"mwei\",\n \"gwei\",\n \"szabo\",\n \"finney\",\n \"ether\",\n];\n\n\n// Some environments have issues with RegEx that contain back-tracking, so we cannot\n// use them.\nexport function commify(value: string | number): string {\n const comps = String(value).split(\".\");\n\n if (comps.length > 2 || !comps[0].match(/^-?[0-9]*$/) || (comps[1] && !comps[1].match(/^[0-9]*$/)) || value === \".\" || value === \"-.\") {\n logger.throwArgumentError(\"invalid value\", \"value\", value);\n }\n\n // Make sure we have at least one whole digit (0 if none)\n let whole = comps[0];\n\n let negative = \"\";\n if (whole.substring(0, 1) === \"-\") {\n negative = \"-\";\n whole = whole.substring(1);\n }\n\n // Make sure we have at least 1 whole digit with no leading zeros\n while (whole.substring(0, 1) === \"0\") { whole = whole.substring(1); }\n if (whole === \"\") { whole = \"0\"; }\n\n let suffix = \"\";\n if (comps.length === 2) { suffix = \".\" + (comps[1] || \"0\"); }\n while (suffix.length > 2 && suffix[suffix.length - 1] === \"0\") {\n suffix = suffix.substring(0, suffix.length - 1);\n }\n\n const formatted = [];\n while (whole.length) {\n if (whole.length <= 3) {\n formatted.unshift(whole);\n break;\n } else {\n const index = whole.length - 3;\n formatted.unshift(whole.substring(index));\n whole = whole.substring(0, index);\n }\n }\n\n return negative + formatted.join(\",\") + suffix;\n}\n\nexport function formatUnits(value: BigNumberish, unitName?: string | BigNumberish): string {\n if (typeof(unitName) === \"string\") {\n const index = names.indexOf(unitName);\n if (index !== -1) { unitName = 3 * index; }\n }\n return formatFixed(value, (unitName != null) ? unitName: 18);\n}\n\nexport function parseUnits(value: string, unitName?: BigNumberish): BigNumber {\n if (typeof(value) !== \"string\") {\n logger.throwArgumentError(\"value must be a string\", \"value\", value);\n }\n if (typeof(unitName) === \"string\") {\n const index = names.indexOf(unitName);\n if (index !== -1) { unitName = 3 * index; }\n }\n return parseFixed(value, (unitName != null) ? unitName: 18);\n}\n\nexport function formatEther(wei: BigNumberish): string {\n return formatUnits(wei, 18);\n}\n\nexport function parseEther(ether: string): BigNumber {\n return parseUnits(ether, 18);\n}\n\n", "\"use strict\";\n\nimport { AbiCoder, checkResultErrors, ConstructorFragment, defaultAbiCoder, ErrorFragment, EventFragment, FormatTypes, Fragment, FunctionFragment, Indexed, Interface, LogDescription, ParamType, Result, TransactionDescription }from \"@ethersproject/abi\";\nimport { getAddress, getCreate2Address, getContractAddress, getIcapAddress, isAddress } from \"@ethersproject/address\";\nimport * as base64 from \"@ethersproject/base64\";\nimport { Base58 as base58 } from \"@ethersproject/basex\";\nimport { arrayify, concat, hexConcat, hexDataSlice, hexDataLength, hexlify, hexStripZeros, hexValue, hexZeroPad, isBytes, isBytesLike, isHexString, joinSignature, zeroPad, splitSignature, stripZeros } from \"@ethersproject/bytes\";\nimport { _TypedDataEncoder, dnsEncode, hashMessage, id, isValidName, namehash } from \"@ethersproject/hash\";\nimport { defaultPath, entropyToMnemonic, getAccountPath, HDNode, isValidMnemonic, mnemonicToEntropy, mnemonicToSeed } from \"@ethersproject/hdnode\";\nimport { getJsonWalletAddress } from \"@ethersproject/json-wallets\";\nimport { keccak256 } from \"@ethersproject/keccak256\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { computeHmac, ripemd160, sha256, sha512 } from \"@ethersproject/sha2\";\nimport { keccak256 as solidityKeccak256, pack as solidityPack, sha256 as soliditySha256 } from \"@ethersproject/solidity\";\nimport { randomBytes, shuffled } from \"@ethersproject/random\";\nimport { checkProperties, deepCopy, defineReadOnly, getStatic, resolveProperties, shallowCopy } from \"@ethersproject/properties\";\nimport * as RLP from \"@ethersproject/rlp\";\nimport { computePublicKey, recoverPublicKey, SigningKey } from \"@ethersproject/signing-key\";\nimport { formatBytes32String, nameprep, parseBytes32String, _toEscapedUtf8String, toUtf8Bytes, toUtf8CodePoints, toUtf8String, Utf8ErrorFuncs } from \"@ethersproject/strings\";\nimport { accessListify, computeAddress, parse as parseTransaction, recoverAddress, serialize as serializeTransaction, TransactionTypes } from \"@ethersproject/transactions\";\nimport { commify, formatEther, parseEther, formatUnits, parseUnits } from \"@ethersproject/units\";\nimport { verifyMessage, verifyTypedData } from \"@ethersproject/wallet\";\nimport { _fetchData, fetchJson, poll } from \"@ethersproject/web\";\n\n////////////////////////\n// Enums\n\nimport { SupportedAlgorithm } from \"@ethersproject/sha2\";\nimport { UnicodeNormalizationForm, Utf8ErrorReason } from \"@ethersproject/strings\";\nimport { UnsignedTransaction } from \"@ethersproject/transactions\";\n\n////////////////////////\n// Types and Interfaces\n\nimport { CoerceFunc } from \"@ethersproject/abi\";\nimport { Bytes, BytesLike, Hexable } from \"@ethersproject/bytes\"\nimport { Mnemonic } from \"@ethersproject/hdnode\";\nimport { EncryptOptions, ProgressCallback } from \"@ethersproject/json-wallets\";\nimport { Deferrable } from \"@ethersproject/properties\";\nimport { Utf8ErrorFunc } from \"@ethersproject/strings\";\nimport { AccessList, AccessListish } from \"@ethersproject/transactions\";\nimport { ConnectionInfo, FetchJsonResponse, OnceBlockable, OncePollable, PollOptions } from \"@ethersproject/web\";\n\n////////////////////////\n// Exports\n\nexport {\n AbiCoder,\n defaultAbiCoder,\n\n Fragment,\n ConstructorFragment,\n ErrorFragment,\n EventFragment,\n FunctionFragment,\n ParamType,\n FormatTypes,\n\n checkResultErrors,\n Result,\n\n Logger,\n\n RLP,\n\n _fetchData,\n fetchJson,\n poll,\n\n checkProperties,\n deepCopy,\n defineReadOnly,\n getStatic,\n resolveProperties,\n shallowCopy,\n\n arrayify,\n\n concat,\n stripZeros,\n zeroPad,\n\n isBytes,\n isBytesLike,\n\n defaultPath,\n HDNode,\n SigningKey,\n\n Interface,\n\n LogDescription,\n TransactionDescription,\n\n base58,\n base64,\n\n hexlify,\n isHexString,\n hexConcat,\n hexStripZeros,\n hexValue,\n hexZeroPad,\n hexDataLength,\n hexDataSlice,\n\n nameprep,\n _toEscapedUtf8String,\n toUtf8Bytes,\n toUtf8CodePoints,\n toUtf8String,\n Utf8ErrorFuncs,\n\n formatBytes32String,\n parseBytes32String,\n\n dnsEncode,\n hashMessage,\n namehash,\n isValidName,\n id,\n\n _TypedDataEncoder,\n\n getAddress,\n getIcapAddress,\n getContractAddress,\n getCreate2Address,\n isAddress,\n\n formatEther,\n parseEther,\n\n formatUnits,\n parseUnits,\n\n commify,\n\n computeHmac,\n keccak256,\n ripemd160,\n sha256,\n sha512,\n\n randomBytes,\n shuffled,\n\n solidityPack,\n solidityKeccak256,\n soliditySha256,\n\n splitSignature,\n joinSignature,\n\n accessListify,\n parseTransaction,\n serializeTransaction,\n TransactionTypes,\n\n getJsonWalletAddress,\n\n computeAddress,\n recoverAddress,\n\n computePublicKey,\n recoverPublicKey,\n\n verifyMessage,\n verifyTypedData,\n\n getAccountPath,\n mnemonicToEntropy,\n entropyToMnemonic,\n isValidMnemonic,\n mnemonicToSeed,\n\n\n ////////////////////////\n // Enums\n\n SupportedAlgorithm,\n\n UnicodeNormalizationForm,\n Utf8ErrorReason,\n\n ////////////////////////\n // Types\n\n Bytes,\n BytesLike,\n Hexable,\n\n AccessList,\n AccessListish,\n UnsignedTransaction,\n\n CoerceFunc,\n\n Indexed,\n\n Mnemonic,\n\n Deferrable,\n\n Utf8ErrorFunc,\n\n ConnectionInfo,\n OnceBlockable,\n OncePollable,\n PollOptions,\n FetchJsonResponse,\n\n EncryptOptions,\n ProgressCallback\n}\n\n", "export const version = \"ethers/5.7.2\";\n", "\"use strict\";\n\nimport { BaseContract, Contract, ContractFactory } from \"@ethersproject/contracts\";\n\nimport { BigNumber, FixedNumber } from \"@ethersproject/bignumber\";\n\nimport { Signer, VoidSigner } from \"@ethersproject/abstract-signer\";\nimport { Wallet } from \"@ethersproject/wallet\";\n\nimport * as constants from \"@ethersproject/constants\";\n\nimport * as providers from \"@ethersproject/providers\";\nimport { getDefaultProvider } from \"@ethersproject/providers\";\n\nimport { Wordlist, wordlists} from \"@ethersproject/wordlists\";\n\nimport * as utils from \"./utils\";\n\nimport { ErrorCode as errors, Logger } from \"@ethersproject/logger\";\n\n////////////////////////\n// Types\n\nimport type { TypedDataDomain, TypedDataField } from \"@ethersproject/abstract-signer\";\nimport { BigNumberish } from \"@ethersproject/bignumber\";\nimport { Bytes, BytesLike, Signature } from \"@ethersproject/bytes\";\nimport { Transaction, UnsignedTransaction } from \"@ethersproject/transactions\";\n\n\n////////////////////////\n// Compile-Time Constants\n\n// This is generated by \"npm run dist\"\nimport { version } from \"./_version\";\n\nconst logger = new Logger(version);\n\n////////////////////////\n// Types\n\nimport {\n ContractFunction,\n ContractReceipt,\n ContractTransaction,\n\n Event,\n EventFilter,\n\n Overrides,\n PayableOverrides,\n CallOverrides,\n\n PopulatedTransaction,\n\n ContractInterface\n} from \"@ethersproject/contracts\";\n\n\n////////////////////////\n// Exports\n\nexport {\n Signer,\n\n Wallet,\n VoidSigner,\n\n getDefaultProvider,\n providers,\n\n BaseContract,\n Contract,\n ContractFactory,\n\n BigNumber,\n FixedNumber,\n\n constants,\n errors,\n\n logger,\n\n utils,\n\n wordlists,\n\n\n ////////////////////////\n // Compile-Time Constants\n\n version,\n\n\n ////////////////////////\n // Types\n\n ContractFunction,\n ContractReceipt,\n ContractTransaction,\n Event,\n EventFilter,\n\n Overrides,\n PayableOverrides,\n CallOverrides,\n\n PopulatedTransaction,\n\n ContractInterface,\n\n TypedDataDomain,\n TypedDataField,\n\n BigNumberish,\n\n Bytes,\n BytesLike,\n\n Signature,\n\n Transaction,\n UnsignedTransaction,\n\n Wordlist\n};\n\n", "\"use strict\";\n\n// To modify this file, you must update ./misc/admin/lib/cmds/update-exports.js\n\nimport * as ethers from \"./ethers\";\n\ntry {\n const anyGlobal = (window as any);\n\n if (anyGlobal._ethers == null) {\n anyGlobal._ethers = ethers;\n }\n} catch (error) { }\n\nexport { ethers };\n\nexport {\n Signer,\n\n Wallet,\n VoidSigner,\n\n getDefaultProvider,\n providers,\n\n BaseContract,\n Contract,\n ContractFactory,\n\n BigNumber,\n FixedNumber,\n\n constants,\n errors,\n\n logger,\n\n utils,\n\n wordlists,\n\n\n ////////////////////////\n // Compile-Time Constants\n\n version,\n\n\n ////////////////////////\n // Types\n\n ContractFunction,\n ContractReceipt,\n ContractTransaction,\n Event,\n EventFilter,\n\n Overrides,\n PayableOverrides,\n CallOverrides,\n\n PopulatedTransaction,\n\n ContractInterface,\n\n TypedDataDomain,\n TypedDataField,\n\n BigNumberish,\n\n Bytes,\n BytesLike,\n\n Signature,\n\n Transaction,\n UnsignedTransaction,\n\n Wordlist\n} from \"./ethers\";\n", "/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global global, define, System, Reflect, Promise */\r\nvar __extends;\r\nvar __assign;\r\nvar __rest;\r\nvar __decorate;\r\nvar __param;\r\nvar __esDecorate;\r\nvar __runInitializers;\r\nvar __propKey;\r\nvar __setFunctionName;\r\nvar __metadata;\r\nvar __awaiter;\r\nvar __generator;\r\nvar __exportStar;\r\nvar __values;\r\nvar __read;\r\nvar __spread;\r\nvar __spreadArrays;\r\nvar __spreadArray;\r\nvar __await;\r\nvar __asyncGenerator;\r\nvar __asyncDelegator;\r\nvar __asyncValues;\r\nvar __makeTemplateObject;\r\nvar __importStar;\r\nvar __importDefault;\r\nvar __classPrivateFieldGet;\r\nvar __classPrivateFieldSet;\r\nvar __classPrivateFieldIn;\r\nvar __createBinding;\r\n(function (factory) {\r\n var root = typeof global === \"object\" ? global : typeof self === \"object\" ? self : typeof this === \"object\" ? this : {};\r\n if (typeof define === \"function\" && define.amd) {\r\n define(\"tslib\", [\"exports\"], function (exports) { factory(createExporter(root, createExporter(exports))); });\r\n }\r\n else if (typeof module === \"object\" && typeof module.exports === \"object\") {\r\n factory(createExporter(root, createExporter(module.exports)));\r\n }\r\n else {\r\n factory(createExporter(root));\r\n }\r\n function createExporter(exports, previous) {\r\n if (exports !== root) {\r\n if (typeof Object.create === \"function\") {\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n }\r\n else {\r\n exports.__esModule = true;\r\n }\r\n }\r\n return function (id, v) { return exports[id] = previous ? previous(id, v) : v; };\r\n }\r\n})\r\n(function (exporter) {\r\n var extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n\r\n __extends = function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n\r\n __assign = Object.assign || function (t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n\r\n __rest = function (s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n };\r\n\r\n __decorate = function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n };\r\n\r\n __param = function (paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n };\r\n\r\n __esDecorate = function (ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\r\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\r\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\r\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\r\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\r\n var _, done = false;\r\n for (var i = decorators.length - 1; i >= 0; i--) {\r\n var context = {};\r\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\r\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\r\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\r\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\r\n if (kind === \"accessor\") {\r\n if (result === void 0) continue;\r\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\r\n if (_ = accept(result.get)) descriptor.get = _;\r\n if (_ = accept(result.set)) descriptor.set = _;\r\n if (_ = accept(result.init)) initializers.push(_);\r\n }\r\n else if (_ = accept(result)) {\r\n if (kind === \"field\") initializers.push(_);\r\n else descriptor[key] = _;\r\n }\r\n }\r\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\r\n done = true;\r\n };\r\n\r\n __runInitializers = function (thisArg, initializers, value) {\r\n var useValue = arguments.length > 2;\r\n for (var i = 0; i < initializers.length; i++) {\r\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\r\n }\r\n return useValue ? value : void 0;\r\n };\r\n\r\n __propKey = function (x) {\r\n return typeof x === \"symbol\" ? x : \"\".concat(x);\r\n };\r\n\r\n __setFunctionName = function (f, name, prefix) {\r\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\r\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\r\n };\r\n\r\n __metadata = function (metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n };\r\n\r\n __awaiter = function (thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n };\r\n\r\n __generator = function (thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n };\r\n\r\n __exportStar = function(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n };\r\n\r\n __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n }) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n });\r\n\r\n __values = function (o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n };\r\n\r\n __read = function (o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n };\r\n\r\n /** @deprecated */\r\n __spread = function () {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n };\r\n\r\n /** @deprecated */\r\n __spreadArrays = function () {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n };\r\n\r\n __spreadArray = function (to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n };\r\n\r\n __await = function (v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n };\r\n\r\n __asyncGenerator = function (thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n };\r\n\r\n __asyncDelegator = function (o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\r\n };\r\n\r\n __asyncValues = function (o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n };\r\n\r\n __makeTemplateObject = function (cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n };\r\n\r\n var __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n }) : function(o, v) {\r\n o[\"default\"] = v;\r\n };\r\n\r\n __importStar = function (mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n };\r\n\r\n __importDefault = function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n };\r\n\r\n __classPrivateFieldGet = function (receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n };\r\n\r\n __classPrivateFieldSet = function (receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n };\r\n\r\n __classPrivateFieldIn = function (state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n };\r\n\r\n exporter(\"__extends\", __extends);\r\n exporter(\"__assign\", __assign);\r\n exporter(\"__rest\", __rest);\r\n exporter(\"__decorate\", __decorate);\r\n exporter(\"__param\", __param);\r\n exporter(\"__esDecorate\", __esDecorate);\r\n exporter(\"__runInitializers\", __runInitializers);\r\n exporter(\"__propKey\", __propKey);\r\n exporter(\"__setFunctionName\", __setFunctionName);\r\n exporter(\"__metadata\", __metadata);\r\n exporter(\"__awaiter\", __awaiter);\r\n exporter(\"__generator\", __generator);\r\n exporter(\"__exportStar\", __exportStar);\r\n exporter(\"__createBinding\", __createBinding);\r\n exporter(\"__values\", __values);\r\n exporter(\"__read\", __read);\r\n exporter(\"__spread\", __spread);\r\n exporter(\"__spreadArrays\", __spreadArrays);\r\n exporter(\"__spreadArray\", __spreadArray);\r\n exporter(\"__await\", __await);\r\n exporter(\"__asyncGenerator\", __asyncGenerator);\r\n exporter(\"__asyncDelegator\", __asyncDelegator);\r\n exporter(\"__asyncValues\", __asyncValues);\r\n exporter(\"__makeTemplateObject\", __makeTemplateObject);\r\n exporter(\"__importStar\", __importStar);\r\n exporter(\"__importDefault\", __importDefault);\r\n exporter(\"__classPrivateFieldGet\", __classPrivateFieldGet);\r\n exporter(\"__classPrivateFieldSet\", __classPrivateFieldSet);\r\n exporter(\"__classPrivateFieldIn\", __classPrivateFieldIn);\r\n});\r\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.LIBUSB_ERROR_MESSAGE = exports.WEBUSB_ERROR_MESSAGE = exports.INVALID_PIN_ERROR_MESSAGE = exports.WRONG_PREVIOUS_SESSION_ERROR_MESSAGE = exports.serializeError = exports.TypedError = exports.TrezorError = exports.ERROR_CODES = void 0;\nexports.ERROR_CODES = {\n Init_NotInitialized: 'TrezorConnect not initialized',\n Init_AlreadyInitialized: 'TrezorConnect has been already initialized',\n Init_IframeBlocked: 'Iframe blocked',\n Init_IframeTimeout: 'Iframe timeout',\n Init_ManifestMissing: 'Manifest not set. Read more at https://github.com/trezor/trezor-suite/blob/develop/docs/packages/connect/index.md',\n Popup_ConnectionMissing: 'Unable to establish connection with iframe',\n Transport_Missing: 'Transport is missing',\n Transport_InvalidProtobuf: '',\n Method_InvalidPackage: 'This package is not suitable to work with browser. Use @trezor/connect-web package instead',\n Method_InvalidParameter: '',\n Method_NotAllowed: 'Method not allowed for this configuration',\n Method_PermissionsNotGranted: 'Permissions not granted',\n Method_Cancel: 'Cancelled',\n Method_Interrupted: 'Popup closed',\n Method_UnknownCoin: 'Coin not found',\n Method_AddressNotMatch: 'Addresses do not match',\n Method_FirmwareUpdate_DownloadFailed: 'Failed to download firmware binary',\n Method_Discovery_BundleException: '',\n Method_Override: 'override',\n Method_NoResponse: 'Call resolved without response',\n Backend_NotSupported: 'BlockchainLink settings not found in coins.json',\n Backend_WorkerMissing: '',\n Backend_Disconnected: 'Backend disconnected',\n Backend_Invalid: 'Invalid backend',\n Backend_Error: '',\n Runtime: '',\n Device_NotFound: 'Device not found',\n Device_InitializeFailed: '',\n Device_FwException: '',\n Device_ModeException: '',\n Device_Disconnected: 'Device disconnected',\n Device_UsedElsewhere: 'Device is used in another window',\n Device_InvalidState: 'Passphrase is incorrect',\n Device_CallInProgress: 'Device call in progress',\n};\nclass TrezorError extends Error {\n constructor(code, message) {\n super(message);\n this.code = code;\n this.message = message;\n }\n}\nexports.TrezorError = TrezorError;\nconst TypedError = (id, message) => new TrezorError(id, message || exports.ERROR_CODES[id]);\nexports.TypedError = TypedError;\nconst serializeError = (payload) => {\n if (payload && payload.error instanceof Error) {\n return { error: payload.error.message, code: payload.error.code };\n }\n return payload;\n};\nexports.serializeError = serializeError;\nexports.WRONG_PREVIOUS_SESSION_ERROR_MESSAGE = 'wrong previous session';\nexports.INVALID_PIN_ERROR_MESSAGE = 'PIN invalid';\nexports.WEBUSB_ERROR_MESSAGE = 'NetworkError: Unable to claim interface.';\nexports.LIBUSB_ERROR_MESSAGE = 'LIBUSB_ERROR';\n//# sourceMappingURL=errors.js.map", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TYPES = void 0;\nexports.TYPES = {\n bitcoin: 'Bitcoin',\n ethereum: 'Ethereum',\n eos: 'Eos',\n nem: 'NEM',\n stellar: 'Stellar',\n cardano: 'Cardano',\n ripple: 'Ripple',\n tezos: 'Tezos',\n binance: 'Binance',\n};\n//# sourceMappingURL=network.js.map", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NETWORK_IDS = exports.PROTOCOL_MAGICS = void 0;\nvar PROTOCOL_MAGICS;\n(function (PROTOCOL_MAGICS) {\n PROTOCOL_MAGICS[PROTOCOL_MAGICS[\"mainnet\"] = 764824073] = \"mainnet\";\n PROTOCOL_MAGICS[PROTOCOL_MAGICS[\"testnet_preprod\"] = 1] = \"testnet_preprod\";\n PROTOCOL_MAGICS[PROTOCOL_MAGICS[\"testnet_preview\"] = 2] = \"testnet_preview\";\n PROTOCOL_MAGICS[PROTOCOL_MAGICS[\"testnet_legacy\"] = 1097911063] = \"testnet_legacy\";\n})(PROTOCOL_MAGICS = exports.PROTOCOL_MAGICS || (exports.PROTOCOL_MAGICS = {}));\nvar NETWORK_IDS;\n(function (NETWORK_IDS) {\n NETWORK_IDS[NETWORK_IDS[\"mainnet\"] = 1] = \"mainnet\";\n NETWORK_IDS[NETWORK_IDS[\"testnet\"] = 0] = \"testnet\";\n})(NETWORK_IDS = exports.NETWORK_IDS || (exports.NETWORK_IDS = {}));\n//# sourceMappingURL=cardano.js.map", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TxVersion = exports.TxType = exports.Networks = void 0;\nvar Networks;\n(function (Networks) {\n Networks[Networks[\"mainnet\"] = 104] = \"mainnet\";\n Networks[Networks[\"testnet\"] = 152] = \"testnet\";\n Networks[Networks[\"mijin\"] = 96] = \"mijin\";\n})(Networks = exports.Networks || (exports.Networks = {}));\nvar TxType;\n(function (TxType) {\n TxType[TxType[\"TRANSFER\"] = 257] = \"TRANSFER\";\n TxType[TxType[\"COSIGNING\"] = 258] = \"COSIGNING\";\n TxType[TxType[\"IMPORTANCE_TRANSFER\"] = 2049] = \"IMPORTANCE_TRANSFER\";\n TxType[TxType[\"AGGREGATE_MODIFICATION\"] = 4097] = \"AGGREGATE_MODIFICATION\";\n TxType[TxType[\"MULTISIG_SIGNATURE\"] = 4098] = \"MULTISIG_SIGNATURE\";\n TxType[TxType[\"MULTISIG\"] = 4100] = \"MULTISIG\";\n TxType[TxType[\"PROVISION_NAMESPACE\"] = 8193] = \"PROVISION_NAMESPACE\";\n TxType[TxType[\"MOSAIC_CREATION\"] = 16385] = \"MOSAIC_CREATION\";\n TxType[TxType[\"SUPPLY_CHANGE\"] = 16386] = \"SUPPLY_CHANGE\";\n})(TxType = exports.TxType || (exports.TxType = {}));\nvar TxVersion;\n(function (TxVersion) {\n TxVersion[TxVersion[\"mainnet\"] = 1744830464] = \"mainnet\";\n TxVersion[TxVersion[\"testnet\"] = -1744830464] = \"testnet\";\n TxVersion[TxVersion[\"mijin\"] = 1610612736] = \"mijin\";\n})(TxVersion = exports.TxVersion || (exports.TxVersion = {}));\n//# sourceMappingURL=nem.js.map", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TezosBallotType = exports.TezosContractType = exports.StellarSignerType = exports.StellarMemoType = exports.StellarAssetType = exports.NEMImportanceTransferMode = exports.NEMModificationType = exports.NEMSupplyChangeType = exports.NEMMosaicLevy = exports.MoneroNetworkType = exports.Enum_WordRequestType = exports.RecoveryDeviceType = exports.SdProtectOperationType = exports.Enum_Capability = exports.Enum_SafetyCheckLevel = exports.Enum_BackupType = exports.EthereumDataType = exports.DebugButton = exports.Enum_PinMatrixRequestType = exports.Enum_ButtonRequestType = exports.FailureType = exports.CardanoTxWitnessType = exports.CardanoTxSigningMode = exports.CardanoGovernanceRegistrationFormat = exports.CardanoTxAuxiliaryDataSupplementType = exports.CardanoPoolRelayType = exports.CardanoCertificateType = exports.CardanoTxOutputSerializationFormat = exports.CardanoNativeScriptHashDisplayFormat = exports.CardanoNativeScriptType = exports.CardanoAddressType = exports.CardanoDerivationType = exports.Enum_RequestType = exports.AmountUnit = exports.DecredStakingSpendType = exports.Enum_OutputScriptType = exports.Enum_InputScriptType = exports.BinanceTimeInForce = exports.BinanceOrderSide = exports.BinanceOrderType = void 0;\nvar BinanceOrderType;\n(function (BinanceOrderType) {\n BinanceOrderType[BinanceOrderType[\"OT_UNKNOWN\"] = 0] = \"OT_UNKNOWN\";\n BinanceOrderType[BinanceOrderType[\"MARKET\"] = 1] = \"MARKET\";\n BinanceOrderType[BinanceOrderType[\"LIMIT\"] = 2] = \"LIMIT\";\n BinanceOrderType[BinanceOrderType[\"OT_RESERVED\"] = 3] = \"OT_RESERVED\";\n})(BinanceOrderType = exports.BinanceOrderType || (exports.BinanceOrderType = {}));\nvar BinanceOrderSide;\n(function (BinanceOrderSide) {\n BinanceOrderSide[BinanceOrderSide[\"SIDE_UNKNOWN\"] = 0] = \"SIDE_UNKNOWN\";\n BinanceOrderSide[BinanceOrderSide[\"BUY\"] = 1] = \"BUY\";\n BinanceOrderSide[BinanceOrderSide[\"SELL\"] = 2] = \"SELL\";\n})(BinanceOrderSide = exports.BinanceOrderSide || (exports.BinanceOrderSide = {}));\nvar BinanceTimeInForce;\n(function (BinanceTimeInForce) {\n BinanceTimeInForce[BinanceTimeInForce[\"TIF_UNKNOWN\"] = 0] = \"TIF_UNKNOWN\";\n BinanceTimeInForce[BinanceTimeInForce[\"GTE\"] = 1] = \"GTE\";\n BinanceTimeInForce[BinanceTimeInForce[\"TIF_RESERVED\"] = 2] = \"TIF_RESERVED\";\n BinanceTimeInForce[BinanceTimeInForce[\"IOC\"] = 3] = \"IOC\";\n})(BinanceTimeInForce = exports.BinanceTimeInForce || (exports.BinanceTimeInForce = {}));\nvar Enum_InputScriptType;\n(function (Enum_InputScriptType) {\n Enum_InputScriptType[Enum_InputScriptType[\"SPENDADDRESS\"] = 0] = \"SPENDADDRESS\";\n Enum_InputScriptType[Enum_InputScriptType[\"SPENDMULTISIG\"] = 1] = \"SPENDMULTISIG\";\n Enum_InputScriptType[Enum_InputScriptType[\"EXTERNAL\"] = 2] = \"EXTERNAL\";\n Enum_InputScriptType[Enum_InputScriptType[\"SPENDWITNESS\"] = 3] = \"SPENDWITNESS\";\n Enum_InputScriptType[Enum_InputScriptType[\"SPENDP2SHWITNESS\"] = 4] = \"SPENDP2SHWITNESS\";\n Enum_InputScriptType[Enum_InputScriptType[\"SPENDTAPROOT\"] = 5] = \"SPENDTAPROOT\";\n})(Enum_InputScriptType = exports.Enum_InputScriptType || (exports.Enum_InputScriptType = {}));\nvar Enum_OutputScriptType;\n(function (Enum_OutputScriptType) {\n Enum_OutputScriptType[Enum_OutputScriptType[\"PAYTOADDRESS\"] = 0] = \"PAYTOADDRESS\";\n Enum_OutputScriptType[Enum_OutputScriptType[\"PAYTOSCRIPTHASH\"] = 1] = \"PAYTOSCRIPTHASH\";\n Enum_OutputScriptType[Enum_OutputScriptType[\"PAYTOMULTISIG\"] = 2] = \"PAYTOMULTISIG\";\n Enum_OutputScriptType[Enum_OutputScriptType[\"PAYTOOPRETURN\"] = 3] = \"PAYTOOPRETURN\";\n Enum_OutputScriptType[Enum_OutputScriptType[\"PAYTOWITNESS\"] = 4] = \"PAYTOWITNESS\";\n Enum_OutputScriptType[Enum_OutputScriptType[\"PAYTOP2SHWITNESS\"] = 5] = \"PAYTOP2SHWITNESS\";\n Enum_OutputScriptType[Enum_OutputScriptType[\"PAYTOTAPROOT\"] = 6] = \"PAYTOTAPROOT\";\n})(Enum_OutputScriptType = exports.Enum_OutputScriptType || (exports.Enum_OutputScriptType = {}));\nvar DecredStakingSpendType;\n(function (DecredStakingSpendType) {\n DecredStakingSpendType[DecredStakingSpendType[\"SSGen\"] = 0] = \"SSGen\";\n DecredStakingSpendType[DecredStakingSpendType[\"SSRTX\"] = 1] = \"SSRTX\";\n})(DecredStakingSpendType = exports.DecredStakingSpendType || (exports.DecredStakingSpendType = {}));\nvar AmountUnit;\n(function (AmountUnit) {\n AmountUnit[AmountUnit[\"BITCOIN\"] = 0] = \"BITCOIN\";\n AmountUnit[AmountUnit[\"MILLIBITCOIN\"] = 1] = \"MILLIBITCOIN\";\n AmountUnit[AmountUnit[\"MICROBITCOIN\"] = 2] = \"MICROBITCOIN\";\n AmountUnit[AmountUnit[\"SATOSHI\"] = 3] = \"SATOSHI\";\n})(AmountUnit = exports.AmountUnit || (exports.AmountUnit = {}));\nvar Enum_RequestType;\n(function (Enum_RequestType) {\n Enum_RequestType[Enum_RequestType[\"TXINPUT\"] = 0] = \"TXINPUT\";\n Enum_RequestType[Enum_RequestType[\"TXOUTPUT\"] = 1] = \"TXOUTPUT\";\n Enum_RequestType[Enum_RequestType[\"TXMETA\"] = 2] = \"TXMETA\";\n Enum_RequestType[Enum_RequestType[\"TXFINISHED\"] = 3] = \"TXFINISHED\";\n Enum_RequestType[Enum_RequestType[\"TXEXTRADATA\"] = 4] = \"TXEXTRADATA\";\n Enum_RequestType[Enum_RequestType[\"TXORIGINPUT\"] = 5] = \"TXORIGINPUT\";\n Enum_RequestType[Enum_RequestType[\"TXORIGOUTPUT\"] = 6] = \"TXORIGOUTPUT\";\n Enum_RequestType[Enum_RequestType[\"TXPAYMENTREQ\"] = 7] = \"TXPAYMENTREQ\";\n})(Enum_RequestType = exports.Enum_RequestType || (exports.Enum_RequestType = {}));\nvar CardanoDerivationType;\n(function (CardanoDerivationType) {\n CardanoDerivationType[CardanoDerivationType[\"LEDGER\"] = 0] = \"LEDGER\";\n CardanoDerivationType[CardanoDerivationType[\"ICARUS\"] = 1] = \"ICARUS\";\n CardanoDerivationType[CardanoDerivationType[\"ICARUS_TREZOR\"] = 2] = \"ICARUS_TREZOR\";\n})(CardanoDerivationType = exports.CardanoDerivationType || (exports.CardanoDerivationType = {}));\nvar CardanoAddressType;\n(function (CardanoAddressType) {\n CardanoAddressType[CardanoAddressType[\"BASE\"] = 0] = \"BASE\";\n CardanoAddressType[CardanoAddressType[\"BASE_SCRIPT_KEY\"] = 1] = \"BASE_SCRIPT_KEY\";\n CardanoAddressType[CardanoAddressType[\"BASE_KEY_SCRIPT\"] = 2] = \"BASE_KEY_SCRIPT\";\n CardanoAddressType[CardanoAddressType[\"BASE_SCRIPT_SCRIPT\"] = 3] = \"BASE_SCRIPT_SCRIPT\";\n CardanoAddressType[CardanoAddressType[\"POINTER\"] = 4] = \"POINTER\";\n CardanoAddressType[CardanoAddressType[\"POINTER_SCRIPT\"] = 5] = \"POINTER_SCRIPT\";\n CardanoAddressType[CardanoAddressType[\"ENTERPRISE\"] = 6] = \"ENTERPRISE\";\n CardanoAddressType[CardanoAddressType[\"ENTERPRISE_SCRIPT\"] = 7] = \"ENTERPRISE_SCRIPT\";\n CardanoAddressType[CardanoAddressType[\"BYRON\"] = 8] = \"BYRON\";\n CardanoAddressType[CardanoAddressType[\"REWARD\"] = 14] = \"REWARD\";\n CardanoAddressType[CardanoAddressType[\"REWARD_SCRIPT\"] = 15] = \"REWARD_SCRIPT\";\n})(CardanoAddressType = exports.CardanoAddressType || (exports.CardanoAddressType = {}));\nvar CardanoNativeScriptType;\n(function (CardanoNativeScriptType) {\n CardanoNativeScriptType[CardanoNativeScriptType[\"PUB_KEY\"] = 0] = \"PUB_KEY\";\n CardanoNativeScriptType[CardanoNativeScriptType[\"ALL\"] = 1] = \"ALL\";\n CardanoNativeScriptType[CardanoNativeScriptType[\"ANY\"] = 2] = \"ANY\";\n CardanoNativeScriptType[CardanoNativeScriptType[\"N_OF_K\"] = 3] = \"N_OF_K\";\n CardanoNativeScriptType[CardanoNativeScriptType[\"INVALID_BEFORE\"] = 4] = \"INVALID_BEFORE\";\n CardanoNativeScriptType[CardanoNativeScriptType[\"INVALID_HEREAFTER\"] = 5] = \"INVALID_HEREAFTER\";\n})(CardanoNativeScriptType = exports.CardanoNativeScriptType || (exports.CardanoNativeScriptType = {}));\nvar CardanoNativeScriptHashDisplayFormat;\n(function (CardanoNativeScriptHashDisplayFormat) {\n CardanoNativeScriptHashDisplayFormat[CardanoNativeScriptHashDisplayFormat[\"HIDE\"] = 0] = \"HIDE\";\n CardanoNativeScriptHashDisplayFormat[CardanoNativeScriptHashDisplayFormat[\"BECH32\"] = 1] = \"BECH32\";\n CardanoNativeScriptHashDisplayFormat[CardanoNativeScriptHashDisplayFormat[\"POLICY_ID\"] = 2] = \"POLICY_ID\";\n})(CardanoNativeScriptHashDisplayFormat = exports.CardanoNativeScriptHashDisplayFormat || (exports.CardanoNativeScriptHashDisplayFormat = {}));\nvar CardanoTxOutputSerializationFormat;\n(function (CardanoTxOutputSerializationFormat) {\n CardanoTxOutputSerializationFormat[CardanoTxOutputSerializationFormat[\"ARRAY_LEGACY\"] = 0] = \"ARRAY_LEGACY\";\n CardanoTxOutputSerializationFormat[CardanoTxOutputSerializationFormat[\"MAP_BABBAGE\"] = 1] = \"MAP_BABBAGE\";\n})(CardanoTxOutputSerializationFormat = exports.CardanoTxOutputSerializationFormat || (exports.CardanoTxOutputSerializationFormat = {}));\nvar CardanoCertificateType;\n(function (CardanoCertificateType) {\n CardanoCertificateType[CardanoCertificateType[\"STAKE_REGISTRATION\"] = 0] = \"STAKE_REGISTRATION\";\n CardanoCertificateType[CardanoCertificateType[\"STAKE_DEREGISTRATION\"] = 1] = \"STAKE_DEREGISTRATION\";\n CardanoCertificateType[CardanoCertificateType[\"STAKE_DELEGATION\"] = 2] = \"STAKE_DELEGATION\";\n CardanoCertificateType[CardanoCertificateType[\"STAKE_POOL_REGISTRATION\"] = 3] = \"STAKE_POOL_REGISTRATION\";\n})(CardanoCertificateType = exports.CardanoCertificateType || (exports.CardanoCertificateType = {}));\nvar CardanoPoolRelayType;\n(function (CardanoPoolRelayType) {\n CardanoPoolRelayType[CardanoPoolRelayType[\"SINGLE_HOST_IP\"] = 0] = \"SINGLE_HOST_IP\";\n CardanoPoolRelayType[CardanoPoolRelayType[\"SINGLE_HOST_NAME\"] = 1] = \"SINGLE_HOST_NAME\";\n CardanoPoolRelayType[CardanoPoolRelayType[\"MULTIPLE_HOST_NAME\"] = 2] = \"MULTIPLE_HOST_NAME\";\n})(CardanoPoolRelayType = exports.CardanoPoolRelayType || (exports.CardanoPoolRelayType = {}));\nvar CardanoTxAuxiliaryDataSupplementType;\n(function (CardanoTxAuxiliaryDataSupplementType) {\n CardanoTxAuxiliaryDataSupplementType[CardanoTxAuxiliaryDataSupplementType[\"NONE\"] = 0] = \"NONE\";\n CardanoTxAuxiliaryDataSupplementType[CardanoTxAuxiliaryDataSupplementType[\"GOVERNANCE_REGISTRATION_SIGNATURE\"] = 1] = \"GOVERNANCE_REGISTRATION_SIGNATURE\";\n})(CardanoTxAuxiliaryDataSupplementType = exports.CardanoTxAuxiliaryDataSupplementType || (exports.CardanoTxAuxiliaryDataSupplementType = {}));\nvar CardanoGovernanceRegistrationFormat;\n(function (CardanoGovernanceRegistrationFormat) {\n CardanoGovernanceRegistrationFormat[CardanoGovernanceRegistrationFormat[\"CIP15\"] = 0] = \"CIP15\";\n CardanoGovernanceRegistrationFormat[CardanoGovernanceRegistrationFormat[\"CIP36\"] = 1] = \"CIP36\";\n})(CardanoGovernanceRegistrationFormat = exports.CardanoGovernanceRegistrationFormat || (exports.CardanoGovernanceRegistrationFormat = {}));\nvar CardanoTxSigningMode;\n(function (CardanoTxSigningMode) {\n CardanoTxSigningMode[CardanoTxSigningMode[\"ORDINARY_TRANSACTION\"] = 0] = \"ORDINARY_TRANSACTION\";\n CardanoTxSigningMode[CardanoTxSigningMode[\"POOL_REGISTRATION_AS_OWNER\"] = 1] = \"POOL_REGISTRATION_AS_OWNER\";\n CardanoTxSigningMode[CardanoTxSigningMode[\"MULTISIG_TRANSACTION\"] = 2] = \"MULTISIG_TRANSACTION\";\n CardanoTxSigningMode[CardanoTxSigningMode[\"PLUTUS_TRANSACTION\"] = 3] = \"PLUTUS_TRANSACTION\";\n})(CardanoTxSigningMode = exports.CardanoTxSigningMode || (exports.CardanoTxSigningMode = {}));\nvar CardanoTxWitnessType;\n(function (CardanoTxWitnessType) {\n CardanoTxWitnessType[CardanoTxWitnessType[\"BYRON_WITNESS\"] = 0] = \"BYRON_WITNESS\";\n CardanoTxWitnessType[CardanoTxWitnessType[\"SHELLEY_WITNESS\"] = 1] = \"SHELLEY_WITNESS\";\n})(CardanoTxWitnessType = exports.CardanoTxWitnessType || (exports.CardanoTxWitnessType = {}));\nvar FailureType;\n(function (FailureType) {\n FailureType[FailureType[\"Failure_UnexpectedMessage\"] = 1] = \"Failure_UnexpectedMessage\";\n FailureType[FailureType[\"Failure_ButtonExpected\"] = 2] = \"Failure_ButtonExpected\";\n FailureType[FailureType[\"Failure_DataError\"] = 3] = \"Failure_DataError\";\n FailureType[FailureType[\"Failure_ActionCancelled\"] = 4] = \"Failure_ActionCancelled\";\n FailureType[FailureType[\"Failure_PinExpected\"] = 5] = \"Failure_PinExpected\";\n FailureType[FailureType[\"Failure_PinCancelled\"] = 6] = \"Failure_PinCancelled\";\n FailureType[FailureType[\"Failure_PinInvalid\"] = 7] = \"Failure_PinInvalid\";\n FailureType[FailureType[\"Failure_InvalidSignature\"] = 8] = \"Failure_InvalidSignature\";\n FailureType[FailureType[\"Failure_ProcessError\"] = 9] = \"Failure_ProcessError\";\n FailureType[FailureType[\"Failure_NotEnoughFunds\"] = 10] = \"Failure_NotEnoughFunds\";\n FailureType[FailureType[\"Failure_NotInitialized\"] = 11] = \"Failure_NotInitialized\";\n FailureType[FailureType[\"Failure_PinMismatch\"] = 12] = \"Failure_PinMismatch\";\n FailureType[FailureType[\"Failure_WipeCodeMismatch\"] = 13] = \"Failure_WipeCodeMismatch\";\n FailureType[FailureType[\"Failure_InvalidSession\"] = 14] = \"Failure_InvalidSession\";\n FailureType[FailureType[\"Failure_FirmwareError\"] = 99] = \"Failure_FirmwareError\";\n})(FailureType = exports.FailureType || (exports.FailureType = {}));\nvar Enum_ButtonRequestType;\n(function (Enum_ButtonRequestType) {\n Enum_ButtonRequestType[Enum_ButtonRequestType[\"ButtonRequest_Other\"] = 1] = \"ButtonRequest_Other\";\n Enum_ButtonRequestType[Enum_ButtonRequestType[\"ButtonRequest_FeeOverThreshold\"] = 2] = \"ButtonRequest_FeeOverThreshold\";\n Enum_ButtonRequestType[Enum_ButtonRequestType[\"ButtonRequest_ConfirmOutput\"] = 3] = \"ButtonRequest_ConfirmOutput\";\n Enum_ButtonRequestType[Enum_ButtonRequestType[\"ButtonRequest_ResetDevice\"] = 4] = \"ButtonRequest_ResetDevice\";\n Enum_ButtonRequestType[Enum_ButtonRequestType[\"ButtonRequest_ConfirmWord\"] = 5] = \"ButtonRequest_ConfirmWord\";\n Enum_ButtonRequestType[Enum_ButtonRequestType[\"ButtonRequest_WipeDevice\"] = 6] = \"ButtonRequest_WipeDevice\";\n Enum_ButtonRequestType[Enum_ButtonRequestType[\"ButtonRequest_ProtectCall\"] = 7] = \"ButtonRequest_ProtectCall\";\n Enum_ButtonRequestType[Enum_ButtonRequestType[\"ButtonRequest_SignTx\"] = 8] = \"ButtonRequest_SignTx\";\n Enum_ButtonRequestType[Enum_ButtonRequestType[\"ButtonRequest_FirmwareCheck\"] = 9] = \"ButtonRequest_FirmwareCheck\";\n Enum_ButtonRequestType[Enum_ButtonRequestType[\"ButtonRequest_Address\"] = 10] = \"ButtonRequest_Address\";\n Enum_ButtonRequestType[Enum_ButtonRequestType[\"ButtonRequest_PublicKey\"] = 11] = \"ButtonRequest_PublicKey\";\n Enum_ButtonRequestType[Enum_ButtonRequestType[\"ButtonRequest_MnemonicWordCount\"] = 12] = \"ButtonRequest_MnemonicWordCount\";\n Enum_ButtonRequestType[Enum_ButtonRequestType[\"ButtonRequest_MnemonicInput\"] = 13] = \"ButtonRequest_MnemonicInput\";\n Enum_ButtonRequestType[Enum_ButtonRequestType[\"_Deprecated_ButtonRequest_PassphraseType\"] = 14] = \"_Deprecated_ButtonRequest_PassphraseType\";\n Enum_ButtonRequestType[Enum_ButtonRequestType[\"ButtonRequest_UnknownDerivationPath\"] = 15] = \"ButtonRequest_UnknownDerivationPath\";\n Enum_ButtonRequestType[Enum_ButtonRequestType[\"ButtonRequest_RecoveryHomepage\"] = 16] = \"ButtonRequest_RecoveryHomepage\";\n Enum_ButtonRequestType[Enum_ButtonRequestType[\"ButtonRequest_Success\"] = 17] = \"ButtonRequest_Success\";\n Enum_ButtonRequestType[Enum_ButtonRequestType[\"ButtonRequest_Warning\"] = 18] = \"ButtonRequest_Warning\";\n Enum_ButtonRequestType[Enum_ButtonRequestType[\"ButtonRequest_PassphraseEntry\"] = 19] = \"ButtonRequest_PassphraseEntry\";\n Enum_ButtonRequestType[Enum_ButtonRequestType[\"ButtonRequest_PinEntry\"] = 20] = \"ButtonRequest_PinEntry\";\n})(Enum_ButtonRequestType = exports.Enum_ButtonRequestType || (exports.Enum_ButtonRequestType = {}));\nvar Enum_PinMatrixRequestType;\n(function (Enum_PinMatrixRequestType) {\n Enum_PinMatrixRequestType[Enum_PinMatrixRequestType[\"PinMatrixRequestType_Current\"] = 1] = \"PinMatrixRequestType_Current\";\n Enum_PinMatrixRequestType[Enum_PinMatrixRequestType[\"PinMatrixRequestType_NewFirst\"] = 2] = \"PinMatrixRequestType_NewFirst\";\n Enum_PinMatrixRequestType[Enum_PinMatrixRequestType[\"PinMatrixRequestType_NewSecond\"] = 3] = \"PinMatrixRequestType_NewSecond\";\n Enum_PinMatrixRequestType[Enum_PinMatrixRequestType[\"PinMatrixRequestType_WipeCodeFirst\"] = 4] = \"PinMatrixRequestType_WipeCodeFirst\";\n Enum_PinMatrixRequestType[Enum_PinMatrixRequestType[\"PinMatrixRequestType_WipeCodeSecond\"] = 5] = \"PinMatrixRequestType_WipeCodeSecond\";\n})(Enum_PinMatrixRequestType = exports.Enum_PinMatrixRequestType || (exports.Enum_PinMatrixRequestType = {}));\nvar DebugButton;\n(function (DebugButton) {\n DebugButton[DebugButton[\"NO\"] = 0] = \"NO\";\n DebugButton[DebugButton[\"YES\"] = 1] = \"YES\";\n DebugButton[DebugButton[\"INFO\"] = 2] = \"INFO\";\n})(DebugButton = exports.DebugButton || (exports.DebugButton = {}));\nvar EthereumDataType;\n(function (EthereumDataType) {\n EthereumDataType[EthereumDataType[\"UINT\"] = 1] = \"UINT\";\n EthereumDataType[EthereumDataType[\"INT\"] = 2] = \"INT\";\n EthereumDataType[EthereumDataType[\"BYTES\"] = 3] = \"BYTES\";\n EthereumDataType[EthereumDataType[\"STRING\"] = 4] = \"STRING\";\n EthereumDataType[EthereumDataType[\"BOOL\"] = 5] = \"BOOL\";\n EthereumDataType[EthereumDataType[\"ADDRESS\"] = 6] = \"ADDRESS\";\n EthereumDataType[EthereumDataType[\"ARRAY\"] = 7] = \"ARRAY\";\n EthereumDataType[EthereumDataType[\"STRUCT\"] = 8] = \"STRUCT\";\n})(EthereumDataType = exports.EthereumDataType || (exports.EthereumDataType = {}));\nvar Enum_BackupType;\n(function (Enum_BackupType) {\n Enum_BackupType[Enum_BackupType[\"Bip39\"] = 0] = \"Bip39\";\n Enum_BackupType[Enum_BackupType[\"Slip39_Basic\"] = 1] = \"Slip39_Basic\";\n Enum_BackupType[Enum_BackupType[\"Slip39_Advanced\"] = 2] = \"Slip39_Advanced\";\n})(Enum_BackupType = exports.Enum_BackupType || (exports.Enum_BackupType = {}));\nvar Enum_SafetyCheckLevel;\n(function (Enum_SafetyCheckLevel) {\n Enum_SafetyCheckLevel[Enum_SafetyCheckLevel[\"Strict\"] = 0] = \"Strict\";\n Enum_SafetyCheckLevel[Enum_SafetyCheckLevel[\"PromptAlways\"] = 1] = \"PromptAlways\";\n Enum_SafetyCheckLevel[Enum_SafetyCheckLevel[\"PromptTemporarily\"] = 2] = \"PromptTemporarily\";\n})(Enum_SafetyCheckLevel = exports.Enum_SafetyCheckLevel || (exports.Enum_SafetyCheckLevel = {}));\nvar Enum_Capability;\n(function (Enum_Capability) {\n Enum_Capability[Enum_Capability[\"Capability_Bitcoin\"] = 1] = \"Capability_Bitcoin\";\n Enum_Capability[Enum_Capability[\"Capability_Bitcoin_like\"] = 2] = \"Capability_Bitcoin_like\";\n Enum_Capability[Enum_Capability[\"Capability_Binance\"] = 3] = \"Capability_Binance\";\n Enum_Capability[Enum_Capability[\"Capability_Cardano\"] = 4] = \"Capability_Cardano\";\n Enum_Capability[Enum_Capability[\"Capability_Crypto\"] = 5] = \"Capability_Crypto\";\n Enum_Capability[Enum_Capability[\"Capability_EOS\"] = 6] = \"Capability_EOS\";\n Enum_Capability[Enum_Capability[\"Capability_Ethereum\"] = 7] = \"Capability_Ethereum\";\n Enum_Capability[Enum_Capability[\"Capability_Lisk\"] = 8] = \"Capability_Lisk\";\n Enum_Capability[Enum_Capability[\"Capability_Monero\"] = 9] = \"Capability_Monero\";\n Enum_Capability[Enum_Capability[\"Capability_NEM\"] = 10] = \"Capability_NEM\";\n Enum_Capability[Enum_Capability[\"Capability_Ripple\"] = 11] = \"Capability_Ripple\";\n Enum_Capability[Enum_Capability[\"Capability_Stellar\"] = 12] = \"Capability_Stellar\";\n Enum_Capability[Enum_Capability[\"Capability_Tezos\"] = 13] = \"Capability_Tezos\";\n Enum_Capability[Enum_Capability[\"Capability_U2F\"] = 14] = \"Capability_U2F\";\n Enum_Capability[Enum_Capability[\"Capability_Shamir\"] = 15] = \"Capability_Shamir\";\n Enum_Capability[Enum_Capability[\"Capability_ShamirGroups\"] = 16] = \"Capability_ShamirGroups\";\n Enum_Capability[Enum_Capability[\"Capability_PassphraseEntry\"] = 17] = \"Capability_PassphraseEntry\";\n})(Enum_Capability = exports.Enum_Capability || (exports.Enum_Capability = {}));\nvar SdProtectOperationType;\n(function (SdProtectOperationType) {\n SdProtectOperationType[SdProtectOperationType[\"DISABLE\"] = 0] = \"DISABLE\";\n SdProtectOperationType[SdProtectOperationType[\"ENABLE\"] = 1] = \"ENABLE\";\n SdProtectOperationType[SdProtectOperationType[\"REFRESH\"] = 2] = \"REFRESH\";\n})(SdProtectOperationType = exports.SdProtectOperationType || (exports.SdProtectOperationType = {}));\nvar RecoveryDeviceType;\n(function (RecoveryDeviceType) {\n RecoveryDeviceType[RecoveryDeviceType[\"RecoveryDeviceType_ScrambledWords\"] = 0] = \"RecoveryDeviceType_ScrambledWords\";\n RecoveryDeviceType[RecoveryDeviceType[\"RecoveryDeviceType_Matrix\"] = 1] = \"RecoveryDeviceType_Matrix\";\n})(RecoveryDeviceType = exports.RecoveryDeviceType || (exports.RecoveryDeviceType = {}));\nvar Enum_WordRequestType;\n(function (Enum_WordRequestType) {\n Enum_WordRequestType[Enum_WordRequestType[\"WordRequestType_Plain\"] = 0] = \"WordRequestType_Plain\";\n Enum_WordRequestType[Enum_WordRequestType[\"WordRequestType_Matrix9\"] = 1] = \"WordRequestType_Matrix9\";\n Enum_WordRequestType[Enum_WordRequestType[\"WordRequestType_Matrix6\"] = 2] = \"WordRequestType_Matrix6\";\n})(Enum_WordRequestType = exports.Enum_WordRequestType || (exports.Enum_WordRequestType = {}));\nvar MoneroNetworkType;\n(function (MoneroNetworkType) {\n MoneroNetworkType[MoneroNetworkType[\"MAINNET\"] = 0] = \"MAINNET\";\n MoneroNetworkType[MoneroNetworkType[\"TESTNET\"] = 1] = \"TESTNET\";\n MoneroNetworkType[MoneroNetworkType[\"STAGENET\"] = 2] = \"STAGENET\";\n MoneroNetworkType[MoneroNetworkType[\"FAKECHAIN\"] = 3] = \"FAKECHAIN\";\n})(MoneroNetworkType = exports.MoneroNetworkType || (exports.MoneroNetworkType = {}));\nvar NEMMosaicLevy;\n(function (NEMMosaicLevy) {\n NEMMosaicLevy[NEMMosaicLevy[\"MosaicLevy_Absolute\"] = 1] = \"MosaicLevy_Absolute\";\n NEMMosaicLevy[NEMMosaicLevy[\"MosaicLevy_Percentile\"] = 2] = \"MosaicLevy_Percentile\";\n})(NEMMosaicLevy = exports.NEMMosaicLevy || (exports.NEMMosaicLevy = {}));\nvar NEMSupplyChangeType;\n(function (NEMSupplyChangeType) {\n NEMSupplyChangeType[NEMSupplyChangeType[\"SupplyChange_Increase\"] = 1] = \"SupplyChange_Increase\";\n NEMSupplyChangeType[NEMSupplyChangeType[\"SupplyChange_Decrease\"] = 2] = \"SupplyChange_Decrease\";\n})(NEMSupplyChangeType = exports.NEMSupplyChangeType || (exports.NEMSupplyChangeType = {}));\nvar NEMModificationType;\n(function (NEMModificationType) {\n NEMModificationType[NEMModificationType[\"CosignatoryModification_Add\"] = 1] = \"CosignatoryModification_Add\";\n NEMModificationType[NEMModificationType[\"CosignatoryModification_Delete\"] = 2] = \"CosignatoryModification_Delete\";\n})(NEMModificationType = exports.NEMModificationType || (exports.NEMModificationType = {}));\nvar NEMImportanceTransferMode;\n(function (NEMImportanceTransferMode) {\n NEMImportanceTransferMode[NEMImportanceTransferMode[\"ImportanceTransfer_Activate\"] = 1] = \"ImportanceTransfer_Activate\";\n NEMImportanceTransferMode[NEMImportanceTransferMode[\"ImportanceTransfer_Deactivate\"] = 2] = \"ImportanceTransfer_Deactivate\";\n})(NEMImportanceTransferMode = exports.NEMImportanceTransferMode || (exports.NEMImportanceTransferMode = {}));\nvar StellarAssetType;\n(function (StellarAssetType) {\n StellarAssetType[StellarAssetType[\"NATIVE\"] = 0] = \"NATIVE\";\n StellarAssetType[StellarAssetType[\"ALPHANUM4\"] = 1] = \"ALPHANUM4\";\n StellarAssetType[StellarAssetType[\"ALPHANUM12\"] = 2] = \"ALPHANUM12\";\n})(StellarAssetType = exports.StellarAssetType || (exports.StellarAssetType = {}));\nvar StellarMemoType;\n(function (StellarMemoType) {\n StellarMemoType[StellarMemoType[\"NONE\"] = 0] = \"NONE\";\n StellarMemoType[StellarMemoType[\"TEXT\"] = 1] = \"TEXT\";\n StellarMemoType[StellarMemoType[\"ID\"] = 2] = \"ID\";\n StellarMemoType[StellarMemoType[\"HASH\"] = 3] = \"HASH\";\n StellarMemoType[StellarMemoType[\"RETURN\"] = 4] = \"RETURN\";\n})(StellarMemoType = exports.StellarMemoType || (exports.StellarMemoType = {}));\nvar StellarSignerType;\n(function (StellarSignerType) {\n StellarSignerType[StellarSignerType[\"ACCOUNT\"] = 0] = \"ACCOUNT\";\n StellarSignerType[StellarSignerType[\"PRE_AUTH\"] = 1] = \"PRE_AUTH\";\n StellarSignerType[StellarSignerType[\"HASH\"] = 2] = \"HASH\";\n})(StellarSignerType = exports.StellarSignerType || (exports.StellarSignerType = {}));\nvar TezosContractType;\n(function (TezosContractType) {\n TezosContractType[TezosContractType[\"Implicit\"] = 0] = \"Implicit\";\n TezosContractType[TezosContractType[\"Originated\"] = 1] = \"Originated\";\n})(TezosContractType = exports.TezosContractType || (exports.TezosContractType = {}));\nvar TezosBallotType;\n(function (TezosBallotType) {\n TezosBallotType[TezosBallotType[\"Yay\"] = 0] = \"Yay\";\n TezosBallotType[TezosBallotType[\"Nay\"] = 1] = \"Nay\";\n TezosBallotType[TezosBallotType[\"Pass\"] = 2] = \"Pass\";\n})(TezosBallotType = exports.TezosBallotType || (exports.TezosBallotType = {}));\n//# sourceMappingURL=messages.js.map", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PROTO = exports.NEM = exports.CARDANO = exports.NETWORK = exports.ERRORS = void 0;\nconst tslib_1 = require(\"tslib\");\nexports.ERRORS = tslib_1.__importStar(require(\"./errors\"));\nexports.NETWORK = tslib_1.__importStar(require(\"./network\"));\nexports.CARDANO = tslib_1.__importStar(require(\"./cardano\"));\nexports.NEM = tslib_1.__importStar(require(\"./nem\"));\nexports.PROTO = tslib_1.__importStar(require(\"@trezor/transport/lib/types/messages\"));\n//# sourceMappingURL=index.js.map", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createUiMessage = exports.UI_REQUEST = exports.UI_EVENT = void 0;\nexports.UI_EVENT = 'UI_EVENT';\nexports.UI_REQUEST = {\n TRANSPORT: 'ui-no_transport',\n BOOTLOADER: 'ui-device_bootloader_mode',\n NOT_IN_BOOTLOADER: 'ui-device_not_in_bootloader_mode',\n REQUIRE_MODE: 'ui-device_require_mode',\n INITIALIZE: 'ui-device_not_initialized',\n SEEDLESS: 'ui-device_seedless',\n FIRMWARE_OLD: 'ui-device_firmware_old',\n FIRMWARE_OUTDATED: 'ui-device_firmware_outdated',\n FIRMWARE_NOT_SUPPORTED: 'ui-device_firmware_unsupported',\n FIRMWARE_NOT_COMPATIBLE: 'ui-device_firmware_not_compatible',\n FIRMWARE_NOT_INSTALLED: 'ui-device_firmware_not_installed',\n FIRMWARE_PROGRESS: 'ui-firmware-progress',\n DEVICE_NEEDS_BACKUP: 'ui-device_needs_backup',\n REQUEST_UI_WINDOW: 'ui-request_window',\n CLOSE_UI_WINDOW: 'ui-close_window',\n REQUEST_PERMISSION: 'ui-request_permission',\n REQUEST_CONFIRMATION: 'ui-request_confirmation',\n REQUEST_PIN: 'ui-request_pin',\n INVALID_PIN: 'ui-invalid_pin',\n REQUEST_PASSPHRASE: 'ui-request_passphrase',\n REQUEST_PASSPHRASE_ON_DEVICE: 'ui-request_passphrase_on_device',\n INVALID_PASSPHRASE: 'ui-invalid_passphrase',\n CONNECT: 'ui-connect',\n LOADING: 'ui-loading',\n SET_OPERATION: 'ui-set_operation',\n SELECT_DEVICE: 'ui-select_device',\n SELECT_ACCOUNT: 'ui-select_account',\n SELECT_FEE: 'ui-select_fee',\n UPDATE_CUSTOM_FEE: 'ui-update_custom_fee',\n INSUFFICIENT_FUNDS: 'ui-insufficient_funds',\n REQUEST_BUTTON: 'ui-button',\n REQUEST_WORD: 'ui-request_word',\n LOGIN_CHALLENGE_REQUEST: 'ui-login_challenge_request',\n BUNDLE_PROGRESS: 'ui-bundle_progress',\n ADDRESS_VALIDATION: 'ui-address_validation',\n IFRAME_FAILURE: 'ui-iframe_failure',\n};\nconst createUiMessage = (type, payload) => ({\n event: exports.UI_EVENT,\n type,\n payload,\n});\nexports.createUiMessage = createUiMessage;\n//# sourceMappingURL=ui-request.js.map", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createUiResponse = exports.UI_RESPONSE = void 0;\nconst ui_request_1 = require(\"./ui-request\");\nexports.UI_RESPONSE = {\n RECEIVE_PERMISSION: 'ui-receive_permission',\n RECEIVE_CONFIRMATION: 'ui-receive_confirmation',\n RECEIVE_PIN: 'ui-receive_pin',\n RECEIVE_PASSPHRASE: 'ui-receive_passphrase',\n RECEIVE_DEVICE: 'ui-receive_device',\n RECEIVE_ACCOUNT: 'ui-receive_account',\n RECEIVE_FEE: 'ui-receive_fee',\n RECEIVE_WORD: 'ui-receive_word',\n INVALID_PASSPHRASE_ACTION: 'ui-invalid_passphrase_action',\n CHANGE_SETTINGS: 'ui-change_settings',\n LOGIN_CHALLENGE_RESPONSE: 'ui-login_challenge_response',\n};\nconst createUiResponse = (type, payload) => ({\n event: ui_request_1.UI_EVENT,\n type,\n payload,\n});\nexports.createUiResponse = createUiResponse;\n//# sourceMappingURL=ui-response.js.map", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createBlockchainMessage = exports.BLOCKCHAIN = exports.BLOCKCHAIN_EVENT = void 0;\nexports.BLOCKCHAIN_EVENT = 'BLOCKCHAIN_EVENT';\nexports.BLOCKCHAIN = {\n CONNECT: 'blockchain-connect',\n ERROR: 'blockchain-error',\n BLOCK: 'blockchain-block',\n NOTIFICATION: 'blockchain-notification',\n FIAT_RATES_UPDATE: 'fiat-rates-update',\n};\nconst createBlockchainMessage = (type, payload) => ({\n event: exports.BLOCKCHAIN_EVENT,\n type,\n payload,\n});\nexports.createBlockchainMessage = createBlockchainMessage;\n//# sourceMappingURL=blockchain.js.map", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createResponseMessage = exports.RESPONSE_EVENT = void 0;\nconst errors_1 = require(\"../constants/errors\");\nexports.RESPONSE_EVENT = 'RESPONSE_EVENT';\nconst createResponseMessage = (id, success, payload) => ({\n event: exports.RESPONSE_EVENT,\n type: exports.RESPONSE_EVENT,\n id,\n success,\n payload: success ? payload : (0, errors_1.serializeError)(payload),\n});\nexports.createResponseMessage = createResponseMessage;\n//# sourceMappingURL=call.js.map", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createErrorMessage = exports.parseMessage = exports.CORE_EVENT = void 0;\nexports.CORE_EVENT = 'CORE_EVENT';\nconst parseMessage = (messageData) => {\n const message = {\n event: messageData.event,\n type: messageData.type,\n payload: messageData.payload,\n };\n if (typeof messageData.id === 'number') {\n message.id = messageData.id;\n }\n if (typeof messageData.success === 'boolean') {\n message.success = messageData.success;\n }\n return message;\n};\nexports.parseMessage = parseMessage;\nconst createErrorMessage = (error) => ({\n success: false,\n payload: {\n error: error.message,\n code: error.code,\n },\n});\nexports.createErrorMessage = createErrorMessage;\n//# sourceMappingURL=core.js.map", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createDeviceMessage = exports.DEVICE = exports.DEVICE_EVENT = void 0;\nexports.DEVICE_EVENT = 'DEVICE_EVENT';\nexports.DEVICE = {\n CONNECT: 'device-connect',\n CONNECT_UNACQUIRED: 'device-connect_unacquired',\n DISCONNECT: 'device-disconnect',\n CHANGED: 'device-changed',\n ACQUIRE: 'device-acquire',\n RELEASE: 'device-release',\n ACQUIRED: 'device-acquired',\n RELEASED: 'device-released',\n USED_ELSEWHERE: 'device-used_elsewhere',\n LOADING: 'device-loading',\n BUTTON: 'button',\n PIN: 'pin',\n PASSPHRASE: 'passphrase',\n PASSPHRASE_ON_DEVICE: 'passphrase_on_device',\n WORD: 'word',\n};\nconst createDeviceMessage = (type, payload) => ({\n event: exports.DEVICE_EVENT,\n type,\n payload,\n});\nexports.createDeviceMessage = createDeviceMessage;\n//# sourceMappingURL=device.js.map", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createIFrameMessage = exports.IFRAME = void 0;\nconst ui_request_1 = require(\"./ui-request\");\nexports.IFRAME = {\n BOOTSTRAP: 'iframe-bootstrap',\n LOADED: 'iframe-loaded',\n INIT: 'iframe-init',\n ERROR: 'iframe-error',\n CALL: 'iframe-call',\n};\nconst createIFrameMessage = (type, payload) => ({\n event: ui_request_1.UI_EVENT,\n type,\n payload,\n});\nexports.createIFrameMessage = createIFrameMessage;\n//# sourceMappingURL=iframe.js.map", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createPopupMessage = exports.POPUP = void 0;\nconst ui_request_1 = require(\"./ui-request\");\nexports.POPUP = {\n BOOTSTRAP: 'popup-bootstrap',\n LOADED: 'popup-loaded',\n INIT: 'popup-init',\n ERROR: 'popup-error',\n EXTENSION_USB_PERMISSIONS: 'open-usb-permissions',\n HANDSHAKE: 'popup-handshake',\n CLOSED: 'popup-closed',\n CANCEL_POPUP_REQUEST: 'ui-cancel-popup-request',\n CLOSE_WINDOW: 'window.close',\n};\nconst createPopupMessage = (type, payload) => ({\n event: ui_request_1.UI_EVENT,\n type,\n payload,\n});\nexports.createPopupMessage = createPopupMessage;\n//# sourceMappingURL=popup.js.map", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createTransportMessage = exports.TRANSPORT = exports.TRANSPORT_EVENT = void 0;\nconst errors_1 = require(\"../constants/errors\");\nexports.TRANSPORT_EVENT = 'TRANSPORT_EVENT';\nexports.TRANSPORT = {\n START: 'transport-start',\n ERROR: 'transport-error',\n UPDATE: 'transport-update',\n STREAM: 'transport-stream',\n REQUEST_DEVICE: 'transport-request_device',\n DISABLE_WEBUSB: 'transport-disable_webusb',\n START_PENDING: 'transport-start_pending',\n};\nconst createTransportMessage = (type, payload) => ({\n event: exports.TRANSPORT_EVENT,\n type,\n payload: 'error' in payload ? (0, errors_1.serializeError)(payload) : payload,\n});\nexports.createTransportMessage = createTransportMessage;\n//# sourceMappingURL=transport.js.map", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=ui-promise.js.map", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.UI = void 0;\nconst tslib_1 = require(\"tslib\");\nconst ui_request_1 = require(\"./ui-request\");\nconst ui_response_1 = require(\"./ui-response\");\ntslib_1.__exportStar(require(\"./blockchain\"), exports);\ntslib_1.__exportStar(require(\"./call\"), exports);\ntslib_1.__exportStar(require(\"./core\"), exports);\ntslib_1.__exportStar(require(\"./device\"), exports);\ntslib_1.__exportStar(require(\"./iframe\"), exports);\ntslib_1.__exportStar(require(\"./popup\"), exports);\ntslib_1.__exportStar(require(\"./transport\"), exports);\ntslib_1.__exportStar(require(\"./ui-promise\"), exports);\ntslib_1.__exportStar(require(\"./ui-request\"), exports);\ntslib_1.__exportStar(require(\"./ui-response\"), exports);\nexports.UI = {\n ...ui_request_1.UI_REQUEST,\n ...ui_response_1.UI_RESPONSE,\n};\n//# sourceMappingURL=index.js.map", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=index.js.map", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=account.js.map", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=coinInfo.js.map", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=device.js.map", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=firmware.js.map", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=params.js.map", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=settings.js.map", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=index.js.map", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=index.js.map", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=index.js.map", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=index.js.map", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=index.js.map", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=index.js.map", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=index.js.map", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=index.js.map", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./api\"), exports);\ntslib_1.__exportStar(require(\"./account\"), exports);\ntslib_1.__exportStar(require(\"./coinInfo\"), exports);\ntslib_1.__exportStar(require(\"./device\"), exports);\ntslib_1.__exportStar(require(\"./firmware\"), exports);\ntslib_1.__exportStar(require(\"./params\"), exports);\ntslib_1.__exportStar(require(\"./settings\"), exports);\ntslib_1.__exportStar(require(\"./api/cardano\"), exports);\ntslib_1.__exportStar(require(\"./api/binance\"), exports);\ntslib_1.__exportStar(require(\"./api/bitcoin\"), exports);\ntslib_1.__exportStar(require(\"./api/eos\"), exports);\ntslib_1.__exportStar(require(\"./api/ripple\"), exports);\ntslib_1.__exportStar(require(\"./api/ethereum\"), exports);\ntslib_1.__exportStar(require(\"./api/stellar\"), exports);\ntslib_1.__exportStar(require(\"./api/tezos\"), exports);\n//# sourceMappingURL=index.js.map", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DEFAULT_DOMAIN = exports.VERSION = void 0;\nexports.VERSION = '9.0.7';\nconst versionN = exports.VERSION.split('.').map(s => parseInt(s, 10));\nexports.DEFAULT_DOMAIN = `https://connect.trezor.io/${versionN[0]}/`;\n//# sourceMappingURL=version.js.map", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.parseConnectSettings = exports.corsValidator = exports.getEnv = exports.DEFAULT_PRIORITY = void 0;\nconst version_1 = require(\"./version\");\nexports.DEFAULT_PRIORITY = 2;\nconst initialSettings = {\n configSrc: './data/config.json',\n version: version_1.VERSION,\n debug: false,\n priority: exports.DEFAULT_PRIORITY,\n trustedHost: false,\n connectSrc: version_1.DEFAULT_DOMAIN,\n iframeSrc: `${version_1.DEFAULT_DOMAIN}iframe.html`,\n popup: true,\n popupSrc: `${version_1.DEFAULT_DOMAIN}popup.html`,\n webusbSrc: `${version_1.DEFAULT_DOMAIN}webusb.html`,\n transports: undefined,\n pendingTransportEvent: true,\n supportedBrowser: typeof navigator !== 'undefined' ? !/Trident|MSIE|Edge/.test(navigator.userAgent) : true,\n env: 'web',\n lazyLoad: false,\n timestamp: new Date().getTime(),\n interactionTimeout: 600,\n};\nconst parseManifest = (manifest) => {\n if (!manifest)\n return;\n if (typeof manifest.email !== 'string')\n return;\n if (typeof manifest.appUrl !== 'string')\n return;\n return {\n email: manifest.email,\n appUrl: manifest.appUrl,\n };\n};\nconst getEnv = () => {\n if (typeof chrome !== 'undefined' &&\n chrome.runtime &&\n typeof chrome.runtime.onConnect !== 'undefined') {\n return 'webextension';\n }\n if (typeof navigator !== 'undefined') {\n if (typeof navigator.product === 'string' &&\n navigator.product.toLowerCase() === 'reactnative') {\n return 'react-native';\n }\n const userAgent = navigator.userAgent.toLowerCase();\n if (userAgent.indexOf(' electron/') > -1) {\n return 'electron';\n }\n }\n return 'web';\n};\nexports.getEnv = getEnv;\nconst corsValidator = (url) => {\n if (typeof url !== 'string')\n return;\n if (url.match(/^https:\\/\\/([A-Za-z0-9\\-_]+\\.)*trezor\\.io\\//))\n return url;\n if (url.match(/^https?:\\/\\/localhost:[58][0-9]{3}\\//))\n return url;\n if (url.match(/^https:\\/\\/([A-Za-z0-9\\-_]+\\.)*sldev\\.cz\\//))\n return url;\n if (url.match(/^https?:\\/\\/([A-Za-z0-9\\-_]+\\.)*trezoriovpjcahpzkrewelclulmszwbqpzmzgub37gbcjlvluxtruqad\\.onion\\//))\n return url;\n};\nexports.corsValidator = corsValidator;\nconst parseConnectSettings = (input = {}) => {\n const settings = { ...initialSettings };\n if (Object.prototype.hasOwnProperty.call(input, 'debug')) {\n if (Array.isArray(input)) {\n }\n if (typeof input.debug === 'boolean') {\n settings.debug = input.debug;\n }\n else if (typeof input.debug === 'string') {\n settings.debug = input.debug === 'true';\n }\n }\n if (typeof input.connectSrc === 'string') {\n settings.connectSrc = input.connectSrc;\n }\n let globalSrc;\n if (typeof window !== 'undefined') {\n globalSrc = window.__TREZOR_CONNECT_SRC;\n }\n else if (typeof global !== 'undefined') {\n globalSrc = global.__TREZOR_CONNECT_SRC;\n }\n if (typeof globalSrc === 'string') {\n settings.connectSrc = (0, exports.corsValidator)(globalSrc);\n settings.debug = true;\n }\n if (typeof window !== 'undefined' &&\n window.location &&\n typeof window.location.search === 'string') {\n const vars = window.location.search.split('&');\n const customUrl = vars.find(v => v.indexOf('trezor-connect-src') >= 0);\n if (customUrl) {\n const [, connectSrc] = customUrl.split('=');\n settings.connectSrc = (0, exports.corsValidator)(decodeURIComponent(connectSrc));\n settings.debug = true;\n }\n }\n const src = settings.connectSrc || version_1.DEFAULT_DOMAIN;\n settings.iframeSrc = `${src}iframe.html`;\n settings.popupSrc = `${src}popup.html`;\n settings.webusbSrc = `${src}webusb.html`;\n if (typeof input.transportReconnect === 'boolean') {\n settings.transportReconnect = input.transportReconnect;\n }\n if (typeof input.webusb === 'boolean') {\n settings.webusb = input.webusb;\n }\n if (Array.isArray(input.transports)) {\n settings.transports = input.transports;\n }\n if (typeof input.popup === 'boolean') {\n settings.popup = input.popup;\n }\n if (typeof input.lazyLoad === 'boolean') {\n settings.lazyLoad = input.lazyLoad;\n }\n if (typeof input.pendingTransportEvent === 'boolean') {\n settings.pendingTransportEvent = input.pendingTransportEvent;\n }\n if (typeof window !== 'undefined' && window.location && window.location.protocol === 'file:') {\n settings.origin = `file://${window.location.pathname}`;\n settings.webusb = false;\n }\n if (typeof input.extension === 'string') {\n settings.extension = input.extension;\n }\n if (typeof input.env === 'string') {\n settings.env = input.env;\n }\n else {\n settings.env = (0, exports.getEnv)();\n }\n if (typeof input.timestamp === 'number') {\n settings.timestamp = input.timestamp;\n }\n if (typeof input.interactionTimeout === 'number') {\n settings.interactionTimeout = input.interactionTimeout;\n }\n if (typeof input.manifest === 'object') {\n settings.manifest = parseManifest(input.manifest);\n }\n return settings;\n};\nexports.parseConnectSettings = parseConnectSettings;\n//# sourceMappingURL=connectSettings.js.map", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.parseConnectSettings = void 0;\nconst tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./constants\"), exports);\ntslib_1.__exportStar(require(\"./events\"), exports);\ntslib_1.__exportStar(require(\"./types\"), exports);\nvar connectSettings_1 = require(\"./data/connectSettings\");\nObject.defineProperty(exports, \"parseConnectSettings\", { enumerable: true, get: function () { return connectSettings_1.parseConnectSettings; } });\n//# sourceMappingURL=exports.js.map", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.factory = void 0;\nconst events_1 = require(\"./events\");\nconst factory = ({ eventEmitter, manifest, init, call, requestLogin, uiResponse, renderWebUSBButton, disableWebUSB, requestWebUSBDevice, cancel, dispose, }) => {\n const api = {\n manifest,\n init,\n getSettings: () => call({ method: 'getSettings' }),\n on: (type, fn) => {\n eventEmitter.on(type, fn);\n },\n off: (type, fn) => {\n eventEmitter.removeListener(type, fn);\n },\n removeAllListeners: type => {\n if (typeof type === 'string') {\n eventEmitter.removeAllListeners(type);\n }\n else {\n eventEmitter.removeAllListeners();\n }\n },\n uiResponse,\n blockchainGetAccountBalanceHistory: params => call({ ...params, method: 'blockchainGetAccountBalanceHistory' }),\n blockchainGetCurrentFiatRates: params => call({ ...params, method: 'blockchainGetCurrentFiatRates' }),\n blockchainGetFiatRatesForTimestamps: params => call({ ...params, method: 'blockchainGetFiatRatesForTimestamps' }),\n blockchainDisconnect: params => call({ ...params, method: 'blockchainDisconnect' }),\n blockchainEstimateFee: params => call({ ...params, method: 'blockchainEstimateFee' }),\n blockchainGetTransactions: params => call({ ...params, method: 'blockchainGetTransactions' }),\n blockchainSetCustomBackend: params => call({ ...params, method: 'blockchainSetCustomBackend' }),\n blockchainSubscribe: params => call({ ...params, method: 'blockchainSubscribe' }),\n blockchainSubscribeFiatRates: params => call({ ...params, method: 'blockchainSubscribeFiatRates' }),\n blockchainUnsubscribe: params => call({ ...params, method: 'blockchainUnsubscribe' }),\n blockchainUnsubscribeFiatRates: params => call({ ...params, method: 'blockchainUnsubscribeFiatRates' }),\n requestLogin: params => requestLogin(params),\n cardanoGetAddress: params => call({\n ...params,\n method: 'cardanoGetAddress',\n useEventListener: eventEmitter.listenerCount(events_1.UI.ADDRESS_VALIDATION) > 0,\n }),\n cardanoGetNativeScriptHash: params => call({ ...params, method: 'cardanoGetNativeScriptHash' }),\n cardanoGetPublicKey: params => call({ ...params, method: 'cardanoGetPublicKey' }),\n cardanoSignTransaction: params => call({ ...params, method: 'cardanoSignTransaction' }),\n cipherKeyValue: params => call({ ...params, method: 'cipherKeyValue' }),\n composeTransaction: params => call({ ...params, method: 'composeTransaction' }),\n ethereumGetAddress: params => call({\n ...params,\n method: 'ethereumGetAddress',\n useEventListener: eventEmitter.listenerCount(events_1.UI.ADDRESS_VALIDATION) > 0,\n }),\n ethereumGetPublicKey: params => call({ ...params, method: 'ethereumGetPublicKey' }),\n ethereumSignMessage: params => call({ ...params, method: 'ethereumSignMessage' }),\n ethereumSignTransaction: params => call({ ...params, method: 'ethereumSignTransaction' }),\n ethereumSignTypedData: params => call({ ...params, method: 'ethereumSignTypedData' }),\n ethereumVerifyMessage: params => call({ ...params, method: 'ethereumVerifyMessage' }),\n getAccountInfo: params => call({ ...params, method: 'getAccountInfo' }),\n getAddress: params => call({\n ...params,\n method: 'getAddress',\n useEventListener: eventEmitter.listenerCount(events_1.UI.ADDRESS_VALIDATION) > 0,\n }),\n getDeviceState: params => call({ ...params, method: 'getDeviceState' }),\n getFeatures: params => call({ ...params, method: 'getFeatures' }),\n getFirmwareHash: params => call({ ...params, method: 'getFirmwareHash' }),\n getOwnershipId: params => call({ ...params, method: 'getOwnershipId' }),\n getOwnershipProof: params => call({ ...params, method: 'getOwnershipProof' }),\n getPublicKey: params => call({ ...params, method: 'getPublicKey' }),\n nemGetAddress: params => call({\n ...params,\n method: 'nemGetAddress',\n useEventListener: eventEmitter.listenerCount(events_1.UI.ADDRESS_VALIDATION) > 0,\n }),\n nemSignTransaction: params => call({ ...params, method: 'nemSignTransaction' }),\n pushTransaction: params => call({ ...params, method: 'pushTransaction' }),\n rippleGetAddress: params => call({\n ...params,\n method: 'rippleGetAddress',\n useEventListener: eventEmitter.listenerCount(events_1.UI.ADDRESS_VALIDATION) > 0,\n }),\n rippleSignTransaction: params => call({ ...params, method: 'rippleSignTransaction' }),\n signMessage: params => call({ ...params, method: 'signMessage' }),\n signTransaction: params => call({ ...params, method: 'signTransaction' }),\n stellarGetAddress: params => call({\n ...params,\n method: 'stellarGetAddress',\n useEventListener: eventEmitter.listenerCount(events_1.UI.ADDRESS_VALIDATION) > 0,\n }),\n stellarSignTransaction: params => call({ ...params, method: 'stellarSignTransaction' }),\n tezosGetAddress: params => call({\n ...params,\n method: 'tezosGetAddress',\n useEventListener: eventEmitter.listenerCount(events_1.UI.ADDRESS_VALIDATION) > 0,\n }),\n tezosGetPublicKey: params => call({ ...params, method: 'tezosGetPublicKey' }),\n tezosSignTransaction: params => call({ ...params, method: 'tezosSignTransaction' }),\n unlockPath: params => call({ ...params, method: 'unlockPath' }),\n eosGetPublicKey: params => call({ ...params, method: 'eosGetPublicKey' }),\n eosSignTransaction: params => call({ ...params, method: 'eosSignTransaction' }),\n binanceGetAddress: params => call({\n ...params,\n method: 'binanceGetAddress',\n useEventListener: eventEmitter.listenerCount(events_1.UI.ADDRESS_VALIDATION) > 0,\n }),\n binanceGetPublicKey: params => call({ ...params, method: 'binanceGetPublicKey' }),\n binanceSignTransaction: params => call({ ...params, method: 'binanceSignTransaction' }),\n verifyMessage: params => call({ ...params, method: 'verifyMessage' }),\n resetDevice: params => call({ ...params, method: 'resetDevice' }),\n wipeDevice: params => call({ ...params, method: 'wipeDevice' }),\n checkFirmwareAuthenticity: params => call({ ...params, method: 'checkFirmwareAuthenticity' }),\n applyFlags: params => call({ ...params, method: 'applyFlags' }),\n applySettings: params => call({ ...params, method: 'applySettings' }),\n authorizeCoinjoin: params => call({ ...params, method: 'authorizeCoinjoin' }),\n backupDevice: params => call({ ...params, method: 'backupDevice' }),\n changePin: params => call({ ...params, method: 'changePin' }),\n firmwareUpdate: params => call({ ...params, method: 'firmwareUpdate' }),\n recoveryDevice: params => call({ ...params, method: 'recoveryDevice' }),\n getCoinInfo: params => call({ ...params, method: 'getCoinInfo' }),\n rebootToBootloader: params => call({ ...params, method: 'rebootToBootloader' }),\n setBusy: params => call({ ...params, method: 'setBusy' }),\n setProxy: params => call({ ...params, method: 'setProxy' }),\n dispose,\n cancel,\n renderWebUSBButton,\n disableWebUSB,\n requestWebUSBDevice,\n };\n return api;\n};\nexports.factory = factory;\n//# sourceMappingURL=factory.js.map", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getLog = exports.enableLogByPrefix = exports.enableLog = exports.initLog = void 0;\nconst colors = {\n '@trezor/connect': 'color: #f4a742; background: #000;',\n IFrame: 'color: #f4a742; background: #000;',\n Core: 'color: #f4a742; background: #000;',\n DescriptorStream: 'color: #77ab59; background: #000;',\n DeviceList: 'color: #77ab59; background: #000;',\n Device: 'color: #bada55; background: #000;',\n DeviceCommands: 'color: #bada55; background: #000;',\n};\nconst MAX_ENTRIES = 100;\nclass Log {\n constructor(prefix, enabled) {\n this.prefix = prefix;\n this.enabled = enabled;\n this.messages = [];\n this.css = typeof window !== 'undefined' && colors[prefix] ? colors[prefix] : '';\n }\n addMessage(level, prefix, ...args) {\n this.messages.push({\n level,\n prefix,\n message: args,\n timestamp: new Date().getTime(),\n });\n if (this.messages.length > MAX_ENTRIES) {\n this.messages.shift();\n }\n }\n log(...args) {\n this.addMessage('log', this.prefix, ...args);\n if (this.enabled) {\n console.log(this.prefix, ...args);\n }\n }\n error(...args) {\n this.addMessage('error', this.prefix, ...args);\n if (this.enabled) {\n console.error(this.prefix, ...args);\n }\n }\n warn(...args) {\n this.addMessage('warn', this.prefix, ...args);\n if (this.enabled) {\n console.warn(this.prefix, ...args);\n }\n }\n debug(...args) {\n this.addMessage('debug', this.prefix, ...args);\n if (this.enabled) {\n if (this.css) {\n console.log(`%c${this.prefix}`, this.css, ...args);\n }\n else {\n console.log(this.prefix, ...args);\n }\n }\n }\n}\nconst _logs = {};\nconst initLog = (prefix, enabled) => {\n const instance = new Log(prefix, !!enabled);\n _logs[prefix] = instance;\n return instance;\n};\nexports.initLog = initLog;\nconst enableLog = (enabled) => {\n Object.keys(_logs).forEach(key => {\n _logs[key].enabled = !!enabled;\n });\n};\nexports.enableLog = enableLog;\nconst enableLogByPrefix = (prefix, enabled) => {\n if (_logs[prefix]) {\n _logs[prefix].enabled = enabled;\n }\n};\nexports.enableLogByPrefix = enableLogByPrefix;\nconst getLog = () => {\n let logs = [];\n Object.keys(_logs).forEach(key => {\n logs = logs.concat(_logs[key].messages);\n });\n logs.sort((a, b) => a.timestamp - b.timestamp);\n return logs;\n};\nexports.getLog = getLog;\n//# sourceMappingURL=debug.js.map", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AbortablePromise = exports.AbortError = void 0;\nclass AbortError extends Error {\n constructor(message = 'Aborted') {\n super(message);\n this.name = 'AbortError';\n }\n}\nexports.AbortError = AbortError;\nclass AbortablePromise extends Promise {\n get abortReason() {\n return this._abortReason;\n }\n constructor(executor, abortControllerParam) {\n const abortController = abortControllerParam || new AbortController();\n const abortSignal = abortController.signal;\n const normalExecutor = (resolve, reject) => {\n abortSignal.addEventListener('abort', () => {\n reject(new AbortError(this.abortReason));\n });\n executor(resolve, reject, abortSignal);\n };\n super(normalExecutor);\n this.abort = reason => {\n this._abortReason = reason || 'Aborted';\n abortController.abort();\n };\n }\n}\nexports.AbortablePromise = AbortablePromise;\nAbortablePromise.from = (promise) => {\n if (promise instanceof AbortablePromise) {\n return promise;\n }\n return new AbortablePromise((resolve, reject) => {\n promise.then(resolve).catch(reject);\n });\n};\n//# sourceMappingURL=abortablePromise.js.map", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.arrayDistinct = void 0;\nconst arrayDistinct = (item, index, self) => self.indexOf(item) === index;\nexports.arrayDistinct = arrayDistinct;\n//# sourceMappingURL=arrayDistinct.js.map", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.arrayPartition = void 0;\nconst arrayPartition = (array, condition) => array.reduce(([pass, fail], elem) => condition(elem) ? [[...pass, elem], fail] : [pass, [...fail, elem]], [[], []]);\nexports.arrayPartition = arrayPartition;\n//# sourceMappingURL=arrayPartition.js.map", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.arrayToDictionary = void 0;\nconst validateKey = (key) => {\n if (['string', 'number'].includes(typeof key)) {\n return true;\n }\n return false;\n};\nconst arrayToDictionary = (array, getKey, multiple) => multiple\n ? array.reduce((prev, cur) => {\n var _a;\n const key = getKey(cur);\n if (validateKey(key)) {\n return Object.assign(Object.assign({}, prev), { [key]: [...((_a = prev[key]) !== null && _a !== void 0 ? _a : []), cur] });\n }\n return prev;\n }, {})\n : array.reduce((prev, cur) => {\n const key = getKey(cur);\n if (validateKey(key)) {\n return Object.assign(Object.assign({}, prev), { [key]: cur });\n }\n return prev;\n }, {});\nexports.arrayToDictionary = arrayToDictionary;\n//# sourceMappingURL=arrayToDictionary.js.map", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.reverseBuffer = void 0;\nconst reverseBuffer = (src) => {\n if (src.length < 1)\n return src;\n const buffer = Buffer.alloc(src.length);\n let j = buffer.length - 1;\n for (let i = 0; i < buffer.length / 2; i++) {\n buffer[i] = src[j];\n buffer[j] = src[i];\n j--;\n }\n return buffer;\n};\nexports.reverseBuffer = reverseBuffer;\n//# sourceMappingURL=bufferUtils.js.map", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.bytesToHumanReadable = void 0;\nconst units = ['B', 'KB', 'MB', 'GB', 'TB'];\nconst bytesToHumanReadable = (bytes) => {\n let size = Math.abs(bytes);\n let i = 0;\n while (size >= 1024 || i >= units.length) {\n size /= 1024;\n i++;\n }\n return `${size.toFixed(1)} ${units[i]}`;\n};\nexports.bytesToHumanReadable = bytesToHumanReadable;\n//# sourceMappingURL=bytesToHumanReadable.js.map", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.capitalizeFirstLetter = void 0;\nconst capitalizeFirstLetter = (s) => s.charAt(0).toUpperCase() + s.slice(1);\nexports.capitalizeFirstLetter = capitalizeFirstLetter;\n//# sourceMappingURL=capitalizeFirstLetter.js.map", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.countBytesInString = void 0;\nconst countBytesInString = (input) => encodeURI(input).split(/%..|./).length - 1;\nexports.countBytesInString = countBytesInString;\n//# sourceMappingURL=countBytesInString.js.map", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createDeferred = void 0;\nconst createDeferred = (id) => {\n let localResolve = () => { };\n let localReject = () => { };\n const promise = new Promise((resolve, reject) => {\n localResolve = resolve;\n localReject = reject;\n });\n return {\n id,\n resolve: localResolve,\n reject: localReject,\n promise,\n };\n};\nexports.createDeferred = createDeferred;\n//# sourceMappingURL=createDeferred.js.map", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createTimeoutPromise = void 0;\nconst createTimeoutPromise = (timeout) => new Promise(resolve => setTimeout(resolve, timeout));\nexports.createTimeoutPromise = createTimeoutPromise;\n//# sourceMappingURL=createTimeoutPromise.js.map", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getValueByKey = exports.getKeyByValue = void 0;\nfunction getKeyByValue(obj, value) {\n return obj && Object.keys(obj).find(x => obj[x] === value);\n}\nexports.getKeyByValue = getKeyByValue;\nfunction getValueByKey(obj, enumKey) {\n const key = obj && Object.keys(obj).find(x => x === enumKey);\n return key && obj[key];\n}\nexports.getValueByKey = getValueByKey;\n//# sourceMappingURL=enumUtils.js.map", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getNumberFromPixelString = void 0;\nconst getNumberFromPixelString = (size) => parseInt(size.replace('px', ''), 10);\nexports.getNumberFromPixelString = getNumberFromPixelString;\n//# sourceMappingURL=getNumberFromPixelString.js.map", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRandomNumberInRange = void 0;\nconst getRandomNumberInRange = (min, max) => Math.floor(Math.random() * (max - min + 1)) + min;\nexports.getRandomNumberInRange = getRandomNumberInRange;\n//# sourceMappingURL=getRandomNumberInRange.js.map", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getWeakRandomId = void 0;\nconst getWeakRandomId = (length) => {\n let id = '';\n const list = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';\n for (let i = 0; i < length; i++) {\n id += list.charAt(Math.floor(Math.random() * list.length));\n }\n return id;\n};\nexports.getWeakRandomId = getWeakRandomId;\n//# sourceMappingURL=getWeakRandomId.js.map", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.hasUppercaseLetter = void 0;\nconst HAS_UPPERCASE_LATER_REGEXP = new RegExp('^(.*[A-Z].*)$');\nconst hasUppercaseLetter = (value) => HAS_UPPERCASE_LATER_REGEXP.test(value);\nexports.hasUppercaseLetter = hasUppercaseLetter;\n//# sourceMappingURL=hasUppercaseLetter.js.map", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isAscii = void 0;\nfunction isAscii(value) {\n if (!value)\n return true;\n return /^[\\x00-\\x7F]*$/.test(value);\n}\nexports.isAscii = isAscii;\n//# sourceMappingURL=isAscii.js.map", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isHex = void 0;\nconst isHex = (str) => {\n const regExp = /^(0x|0X)?[0-9A-Fa-f]+$/g;\n return regExp.test(str);\n};\nexports.isHex = isHex;\n//# sourceMappingURL=isHex.js.map", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isNotUndefined = void 0;\nconst isNotUndefined = (item) => typeof item !== 'undefined';\nexports.isNotUndefined = isNotUndefined;\n//# sourceMappingURL=isNotUndefined.js.map", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isUrl = void 0;\nconst URL_REGEXP = /^(http|ws)s?:\\/\\/[a-z0-9]([a-z0-9.-]+)?(:[0-9]{1,5})?((\\/)?(([a-z0-9-_])+(\\/)?)+)$/i;\nconst isUrl = (value) => URL_REGEXP.test(value);\nexports.isUrl = isUrl;\n//# sourceMappingURL=isUrl.js.map", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.mergeDeepObject = void 0;\nconst isObject = (obj) => {\n if (typeof obj === 'object' && obj !== null) {\n if (typeof Object.getPrototypeOf === 'function') {\n const prototype = Object.getPrototypeOf(obj);\n return prototype === Object.prototype || prototype === null;\n }\n return Object.prototype.toString.call(obj) === '[object Object]';\n }\n return false;\n};\nconst mergeDeepObject = (...objects) => objects.reduce((result, current) => {\n if (Array.isArray(current)) {\n throw new TypeError('Arguments provided to ts-deepmerge must be objects, not arrays.');\n }\n Object.keys(current).forEach(key => {\n if (['__proto__', 'constructor', 'prototype'].includes(key)) {\n return;\n }\n if (Array.isArray(result[key]) && Array.isArray(current[key])) {\n result[key] = exports.mergeDeepObject.options.mergeArrays\n ? Array.from(new Set(result[key].concat(current[key])))\n : current[key];\n }\n else if (isObject(result[key]) && isObject(current[key])) {\n result[key] = (0, exports.mergeDeepObject)(result[key], current[key]);\n }\n else {\n result[key] = current[key];\n }\n });\n return result;\n}, {});\nexports.mergeDeepObject = mergeDeepObject;\nconst defaultOptions = {\n mergeArrays: true,\n};\nexports.mergeDeepObject.options = defaultOptions;\nexports.mergeDeepObject.withOptions = (options, ...objects) => {\n exports.mergeDeepObject.options = Object.assign({ mergeArrays: true }, options);\n const result = (0, exports.mergeDeepObject)(...objects);\n exports.mergeDeepObject.options = defaultOptions;\n return result;\n};\n//# sourceMappingURL=mergeDeepObject.js.map", "\"use strict\";\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.objectPartition = void 0;\nconst objectPartition = (obj, keys) => keys.reduce(([included, excluded], key) => {\n const _a = excluded, _b = key, value = _a[_b], rest = __rest(_a, [typeof _b === \"symbol\" ? _b : _b + \"\"]);\n return typeof value !== 'undefined'\n ? [Object.assign(Object.assign({}, included), { [key]: value }), rest]\n : [included, excluded];\n}, [{}, obj]);\nexports.objectPartition = objectPartition;\n//# sourceMappingURL=objectPartition.js.map", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.parseHostname = void 0;\nconst HOSTNAME_REGEX = /^([a-z0-9.+-]+:\\/\\/)?([a-z0-9.-]+)([:/][^:/]+)*\\/?$/i;\nconst parseHostname = (url) => { var _a, _b; return (_b = (_a = url.match(HOSTNAME_REGEX)) === null || _a === void 0 ? void 0 : _a[2]) === null || _b === void 0 ? void 0 : _b.toLowerCase(); };\nexports.parseHostname = parseHostname;\n//# sourceMappingURL=parseHostname.js.map", "\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.promiseAllSequence = void 0;\nconst promiseAllSequence = (actions) => __awaiter(void 0, void 0, void 0, function* () {\n const results = [];\n yield actions.reduce((promise, fn) => promise.then(fn).then(result => {\n results.push(result);\n return result;\n }), Promise.resolve());\n return results;\n});\nexports.promiseAllSequence = promiseAllSequence;\n//# sourceMappingURL=promiseAllSequence.js.map", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.redactUserPathFromString = exports.startOfUserPathRegex = void 0;\nexports.startOfUserPathRegex = /([/\\\\][Uu]sers[/\\\\]{1,4})([^\"^'^[^\\]^/^\\\\]*)/g;\nconst redactUserPathFromString = (text) => text.replace(exports.startOfUserPathRegex, '$1[*]');\nexports.redactUserPathFromString = redactUserPathFromString;\n//# sourceMappingURL=redactUserPath.js.map", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.resolveStaticPath = void 0;\nconst resolveStaticPath = (path, pathPrefix = process.env.ASSET_PREFIX) => `${pathPrefix || ''}/static/${path.replace(/^\\/+/, '')}`;\nexports.resolveStaticPath = resolveStaticPath;\n//# sourceMappingURL=resolveStaticPath.js.map", "\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.scheduleAction = void 0;\nconst isArray = (attempts) => Array.isArray(attempts);\nconst abortedBySignal = () => new Error('Aborted by signal');\nconst abortedByDeadline = () => new Error('Aborted by deadline');\nconst abortedByTimeout = () => new Error('Aborted by timeout');\nconst resolveAfterMs = (ms, clear) => new Promise((resolve, reject) => {\n if (clear.aborted)\n return reject();\n if (ms === undefined)\n return resolve();\n const timeout = setTimeout(resolve, ms);\n const onClear = () => {\n clearTimeout(timeout);\n clear.removeEventListener('abort', onClear);\n reject();\n };\n clear.addEventListener('abort', onClear);\n});\nconst rejectAfterMs = (ms, reason, clear) => new Promise((_, reject) => {\n if (clear.aborted)\n return reject();\n const timeout = ms !== undefined ? setTimeout(() => reject(reason()), ms) : undefined;\n const onClear = () => {\n clearTimeout(timeout);\n clear.removeEventListener('abort', onClear);\n reject();\n };\n clear.addEventListener('abort', onClear);\n});\nconst rejectWhenAborted = (signal, clear) => new Promise((_, reject) => {\n if (clear.aborted)\n return reject();\n if (signal === null || signal === void 0 ? void 0 : signal.aborted)\n return reject(abortedBySignal());\n const onAbort = () => reject(abortedBySignal());\n signal === null || signal === void 0 ? void 0 : signal.addEventListener('abort', onAbort);\n const onClear = () => {\n signal === null || signal === void 0 ? void 0 : signal.removeEventListener('abort', onAbort);\n clear.removeEventListener('abort', onClear);\n reject();\n };\n clear.addEventListener('abort', onClear);\n});\nconst resolveAction = (action, clear) => __awaiter(void 0, void 0, void 0, function* () {\n const aborter = new AbortController();\n const onClear = () => aborter.abort();\n if (clear.aborted)\n onClear();\n clear.addEventListener('abort', onClear);\n try {\n return yield new Promise(resolve => resolve(action(aborter.signal)));\n }\n finally {\n clear.removeEventListener('abort', onClear);\n }\n});\nconst attemptLoop = (attempts, attempt, failure, clear) => __awaiter(void 0, void 0, void 0, function* () {\n for (let a = 0; a < attempts - 1; a++) {\n if (clear.aborted)\n break;\n const aborter = new AbortController();\n const onClear = () => aborter.abort();\n clear.addEventListener('abort', onClear);\n try {\n return yield attempt(a, aborter.signal);\n }\n catch (_a) {\n onClear();\n yield failure(a);\n }\n finally {\n clear.removeEventListener('abort', onClear);\n }\n }\n return clear.aborted ? Promise.reject() : attempt(attempts - 1, clear);\n});\nconst scheduleAction = (action, params) => __awaiter(void 0, void 0, void 0, function* () {\n const { signal, delay, attempts, timeout, deadline, gap } = params;\n const deadlineMs = deadline && deadline - Date.now();\n const attemptCount = isArray(attempts)\n ? attempts.length\n : attempts !== null && attempts !== void 0 ? attempts : (deadline ? Infinity : 1);\n const clearAborter = new AbortController();\n const clear = clearAborter.signal;\n const getParams = isArray(attempts)\n ? (attempt) => attempts[attempt]\n : () => ({ timeout, gap });\n try {\n return yield Promise.race([\n rejectWhenAborted(signal, clear),\n rejectAfterMs(deadlineMs, abortedByDeadline, clear),\n resolveAfterMs(delay, clear).then(() => attemptLoop(attemptCount, (attempt, abort) => Promise.race([\n rejectAfterMs(getParams(attempt).timeout, abortedByTimeout, clear),\n resolveAction(action, abort),\n ]), attempt => { var _a; return resolveAfterMs((_a = getParams(attempt).gap) !== null && _a !== void 0 ? _a : 0, clear); }, clear)),\n ]);\n }\n finally {\n clearAborter.abort();\n }\n});\nexports.scheduleAction = scheduleAction;\n//# sourceMappingURL=scheduleAction.js.map", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.throwError = void 0;\nconst throwError = (reason) => {\n throw new Error(reason);\n};\nexports.throwError = throwError;\n//# sourceMappingURL=throwError.js.map", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.truncateMiddle = void 0;\nconst truncateMiddle = (text, startChars, endChars) => {\n if (text.length <= startChars + endChars)\n return text;\n const start = text.substring(0, startChars);\n const end = text.substring(text.length - endChars, text.length);\n return `${start}\u2026${end}`;\n};\nexports.truncateMiddle = truncateMiddle;\n//# sourceMappingURL=truncateMiddle.js.map", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.topologicalSort = void 0;\nconst arrayPartition_1 = require(\"./arrayPartition\");\nconst topologicalSort = (elements, precedes, tie) => {\n const result = [];\n const filterRoots = (verts) => (0, arrayPartition_1.arrayPartition)(verts, succ => !verts.some(pred => precedes(pred, succ)));\n let elem = elements;\n while (elem.length) {\n const [roots, rest] = filterRoots(elem);\n if (!roots.length)\n throw new Error('Cycle detected');\n result.push(...(tie ? roots.sort(tie) : roots));\n elem = rest;\n }\n return result;\n};\nexports.topologicalSort = topologicalSort;\n//# sourceMappingURL=topologicalSort.js.map", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.normalizeVersion = exports.isNewerOrEqual = exports.isEqual = exports.isNewer = exports.isVersionArray = void 0;\nconst parse = (versionArr) => ({\n major: versionArr[0],\n minor: versionArr[1],\n patch: versionArr[2],\n});\nconst split = (version) => {\n const arr = version.split('.');\n if (arr.length !== 3) {\n throw new Error('version string is in wrong format');\n }\n return arr;\n};\nconst versionToString = (arr) => `${arr[0]}.${arr[1]}.${arr[2]}`;\nconst isVersionArray = (arr) => arr.length === 3;\nexports.isVersionArray = isVersionArray;\nconst isNewer = (versionX, versionY) => {\n const parsedX = parse(typeof versionX === 'string' ? split(versionX) : versionX);\n const parsedY = parse(typeof versionY === 'string' ? split(versionY) : versionY);\n if (parsedX.major - parsedY.major !== 0) {\n return parsedX.major > parsedY.major;\n }\n if (parsedX.minor - parsedY.minor !== 0) {\n return parsedX.minor > parsedY.minor;\n }\n if (parsedX.patch - parsedY.patch !== 0) {\n return parsedX.patch > parsedY.patch;\n }\n return false;\n};\nexports.isNewer = isNewer;\nconst isEqual = (versionX, versionY) => {\n const strX = typeof versionX === 'string' ? versionX : versionToString(versionX);\n const strY = typeof versionY === 'string' ? versionY : versionToString(versionY);\n return strX === strY;\n};\nexports.isEqual = isEqual;\nconst isNewerOrEqual = (versionX, versionY) => (0, exports.isNewer)(versionX, versionY) || (0, exports.isEqual)(versionX, versionY);\nexports.isNewerOrEqual = isNewerOrEqual;\nconst normalizeVersion = (version) => version.replace(/\\b0+(\\d)/g, '$1');\nexports.normalizeVersion = normalizeVersion;\n//# sourceMappingURL=versionUtils.js.map", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.inDoubleQuotes = exports.inSingleQuotes = exports.inHTML = void 0;\nconst LT = / value.replace(LT, '<');\nexports.inHTML = inHTML;\nconst inSingleQuotes = (value) => value.replace(SQUOT, ''');\nexports.inSingleQuotes = inSingleQuotes;\nconst inDoubleQuotes = (value) => value.replace(QUOT, '"');\nexports.inDoubleQuotes = inDoubleQuotes;\n//# sourceMappingURL=xssFilters.js.map", "\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.xssFilters = exports.versionUtils = exports.enumUtils = exports.bufferUtils = void 0;\n__exportStar(require(\"./abortablePromise\"), exports);\n__exportStar(require(\"./arrayDistinct\"), exports);\n__exportStar(require(\"./arrayPartition\"), exports);\n__exportStar(require(\"./arrayToDictionary\"), exports);\nexports.bufferUtils = __importStar(require(\"./bufferUtils\"));\n__exportStar(require(\"./bytesToHumanReadable\"), exports);\n__exportStar(require(\"./capitalizeFirstLetter\"), exports);\n__exportStar(require(\"./countBytesInString\"), exports);\n__exportStar(require(\"./createDeferred\"), exports);\n__exportStar(require(\"./createTimeoutPromise\"), exports);\nexports.enumUtils = __importStar(require(\"./enumUtils\"));\n__exportStar(require(\"./getNumberFromPixelString\"), exports);\n__exportStar(require(\"./getRandomNumberInRange\"), exports);\n__exportStar(require(\"./getWeakRandomId\"), exports);\n__exportStar(require(\"./hasUppercaseLetter\"), exports);\n__exportStar(require(\"./isAscii\"), exports);\n__exportStar(require(\"./isHex\"), exports);\n__exportStar(require(\"./isNotUndefined\"), exports);\n__exportStar(require(\"./isUrl\"), exports);\n__exportStar(require(\"./mergeDeepObject\"), exports);\n__exportStar(require(\"./objectPartition\"), exports);\n__exportStar(require(\"./parseHostname\"), exports);\n__exportStar(require(\"./promiseAllSequence\"), exports);\n__exportStar(require(\"./redactUserPath\"), exports);\n__exportStar(require(\"./resolveStaticPath\"), exports);\n__exportStar(require(\"./scheduleAction\"), exports);\n__exportStar(require(\"./throwError\"), exports);\n__exportStar(require(\"./truncateMiddle\"), exports);\n__exportStar(require(\"./topologicalSort\"), exports);\nexports.versionUtils = __importStar(require(\"./versionUtils\"));\nexports.xssFilters = __importStar(require(\"./xssFilters\"));\n//# sourceMappingURL=index.js.map", "\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.request = exports.setFetch = void 0;\nlet _fetch = typeof window === 'undefined' ? () => Promise.reject() : window.fetch;\nlet _isNode = false;\nfunction setFetch(fetch, isNode) {\n _fetch = fetch;\n _isNode = !!isNode;\n}\nexports.setFetch = setFetch;\nfunction contentType(body) {\n if (typeof body === 'string') {\n if (body === '') {\n return 'text/plain';\n }\n return 'application/octet-stream';\n }\n return 'application/json';\n}\nfunction wrapBody(body) {\n if (typeof body === 'string') {\n return body;\n }\n return JSON.stringify(body);\n}\nfunction parseResult(text) {\n try {\n return JSON.parse(text);\n }\n catch (e) {\n return text;\n }\n}\nfunction request(options) {\n return __awaiter(this, void 0, void 0, function* () {\n const fetchOptions = {\n method: options.method,\n body: wrapBody(options.body),\n credentials: 'same-origin',\n headers: {},\n };\n if (options.skipContentTypeHeader == null || options.skipContentTypeHeader === false) {\n fetchOptions.headers = Object.assign(Object.assign({}, fetchOptions.headers), { 'Content-Type': contentType(options.body == null ? '' : options.body) });\n }\n if (_isNode) {\n fetchOptions.headers = Object.assign(Object.assign({}, fetchOptions.headers), { Origin: 'https://node.trezor.io' });\n }\n const res = yield _fetch(options.url, fetchOptions);\n const resText = yield res.text();\n if (res.ok) {\n return parseResult(resText);\n }\n const resJson = parseResult(resText);\n if (typeof resJson === 'object' && resJson != null && resJson.error != null) {\n throw new Error(resJson.error);\n }\n else {\n throw new Error(resText);\n }\n });\n}\nexports.request = request;\n//# sourceMappingURL=http.js.map", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.call = exports.acquire = exports.devices = exports.version = exports.info = void 0;\nconst ERROR = 'Wrong result type.';\nfunction info(res) {\n if (typeof res !== 'object' || res == null) {\n throw new Error('Wrong result type.');\n }\n const { version } = res;\n if (typeof version !== 'string') {\n throw new Error(ERROR);\n }\n const configured = !!res.configured;\n return { version, configured };\n}\nexports.info = info;\nfunction version(version) {\n if (typeof version !== 'string') {\n throw new Error(ERROR);\n }\n return version.trim();\n}\nexports.version = version;\nfunction convertSession(r) {\n if (r == null) {\n return null;\n }\n if (typeof r !== 'string') {\n throw new Error(ERROR);\n }\n return r;\n}\nfunction devices(res) {\n if (typeof res !== 'object') {\n throw new Error(ERROR);\n }\n if (!(res instanceof Array)) {\n throw new Error(ERROR);\n }\n return res.map((o) => {\n if (typeof o !== 'object' || o == null) {\n throw new Error(ERROR);\n }\n const { path } = o;\n if (typeof path !== 'string') {\n throw new Error(ERROR);\n }\n const pathS = path.toString();\n return {\n path: pathS,\n session: convertSession(o.session),\n debugSession: convertSession(o.debugSession),\n product: o.product,\n vendor: o.vendor,\n debug: !!o.debug,\n };\n });\n}\nexports.devices = devices;\nfunction acquire(res) {\n if (typeof res !== 'object' || res == null) {\n throw new Error(ERROR);\n }\n const { session } = res;\n if (typeof session !== 'string' && typeof session !== 'number') {\n throw new Error(ERROR);\n }\n return session.toString();\n}\nexports.acquire = acquire;\nfunction call(res) {\n if (typeof res !== 'object' || res == null) {\n throw new Error(ERROR);\n }\n const { type } = res;\n if (typeof type !== 'string') {\n throw new Error(ERROR);\n }\n const { message } = res;\n if (typeof message !== 'object' || message == null) {\n throw new Error(ERROR);\n }\n return { type, message };\n}\nexports.call = call;\n//# sourceMappingURL=highlevel-checks.js.map", "/*\r\n Copyright 2013 Daniel Wirtz \r\n Copyright 2009 The Closure Library Authors. All Rights Reserved.\r\n\r\n Licensed under the Apache License, Version 2.0 (the \"License\");\r\n you may not use this file except in compliance with the License.\r\n You may obtain a copy of the License at\r\n\r\n http://www.apache.org/licenses/LICENSE-2.0\r\n\r\n Unless required by applicable law or agreed to in writing, software\r\n distributed under the License is distributed on an \"AS-IS\" BASIS,\r\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n See the License for the specific language governing permissions and\r\n limitations under the License.\r\n */\r\n\r\n/**\r\n * @license long.js (c) 2013 Daniel Wirtz \r\n * Released under the Apache License, Version 2.0\r\n * see: https://github.com/dcodeIO/long.js for details\r\n */\r\n(function(global, factory) {\r\n\r\n /* AMD */ if (typeof define === 'function' && define[\"amd\"])\r\n define([], factory);\r\n /* CommonJS */ else if (typeof require === 'function' && typeof module === \"object\" && module && module[\"exports\"])\r\n module[\"exports\"] = factory();\r\n /* Global */ else\r\n (global[\"dcodeIO\"] = global[\"dcodeIO\"] || {})[\"Long\"] = factory();\r\n\r\n})(this, function() {\r\n \"use strict\";\r\n\r\n /**\r\n * Constructs a 64 bit two's-complement integer, given its low and high 32 bit values as *signed* integers.\r\n * See the from* functions below for more convenient ways of constructing Longs.\r\n * @exports Long\r\n * @class A Long class for representing a 64 bit two's-complement integer value.\r\n * @param {number} low The low (signed) 32 bits of the long\r\n * @param {number} high The high (signed) 32 bits of the long\r\n * @param {boolean=} unsigned Whether unsigned or not, defaults to `false` for signed\r\n * @constructor\r\n */\r\n function Long(low, high, unsigned) {\r\n\r\n /**\r\n * The low 32 bits as a signed value.\r\n * @type {number}\r\n */\r\n this.low = low | 0;\r\n\r\n /**\r\n * The high 32 bits as a signed value.\r\n * @type {number}\r\n */\r\n this.high = high | 0;\r\n\r\n /**\r\n * Whether unsigned or not.\r\n * @type {boolean}\r\n */\r\n this.unsigned = !!unsigned;\r\n }\r\n\r\n // The internal representation of a long is the two given signed, 32-bit values.\r\n // We use 32-bit pieces because these are the size of integers on which\r\n // Javascript performs bit-operations. For operations like addition and\r\n // multiplication, we split each number into 16 bit pieces, which can easily be\r\n // multiplied within Javascript's floating-point representation without overflow\r\n // or change in sign.\r\n //\r\n // In the algorithms below, we frequently reduce the negative case to the\r\n // positive case by negating the input(s) and then post-processing the result.\r\n // Note that we must ALWAYS check specially whether those values are MIN_VALUE\r\n // (-2^63) because -MIN_VALUE == MIN_VALUE (since 2^63 cannot be represented as\r\n // a positive number, it overflows back into a negative). Not handling this\r\n // case would often result in infinite recursion.\r\n //\r\n // Common constant values ZERO, ONE, NEG_ONE, etc. are defined below the from*\r\n // methods on which they depend.\r\n\r\n /**\r\n * An indicator used to reliably determine if an object is a Long or not.\r\n * @type {boolean}\r\n * @const\r\n * @private\r\n */\r\n Long.prototype.__isLong__;\r\n\r\n Object.defineProperty(Long.prototype, \"__isLong__\", {\r\n value: true,\r\n enumerable: false,\r\n configurable: false\r\n });\r\n\r\n /**\r\n * @function\r\n * @param {*} obj Object\r\n * @returns {boolean}\r\n * @inner\r\n */\r\n function isLong(obj) {\r\n return (obj && obj[\"__isLong__\"]) === true;\r\n }\r\n\r\n /**\r\n * Tests if the specified object is a Long.\r\n * @function\r\n * @param {*} obj Object\r\n * @returns {boolean}\r\n */\r\n Long.isLong = isLong;\r\n\r\n /**\r\n * A cache of the Long representations of small integer values.\r\n * @type {!Object}\r\n * @inner\r\n */\r\n var INT_CACHE = {};\r\n\r\n /**\r\n * A cache of the Long representations of small unsigned integer values.\r\n * @type {!Object}\r\n * @inner\r\n */\r\n var UINT_CACHE = {};\r\n\r\n /**\r\n * @param {number} value\r\n * @param {boolean=} unsigned\r\n * @returns {!Long}\r\n * @inner\r\n */\r\n function fromInt(value, unsigned) {\r\n var obj, cachedObj, cache;\r\n if (unsigned) {\r\n value >>>= 0;\r\n if (cache = (0 <= value && value < 256)) {\r\n cachedObj = UINT_CACHE[value];\r\n if (cachedObj)\r\n return cachedObj;\r\n }\r\n obj = fromBits(value, (value | 0) < 0 ? -1 : 0, true);\r\n if (cache)\r\n UINT_CACHE[value] = obj;\r\n return obj;\r\n } else {\r\n value |= 0;\r\n if (cache = (-128 <= value && value < 128)) {\r\n cachedObj = INT_CACHE[value];\r\n if (cachedObj)\r\n return cachedObj;\r\n }\r\n obj = fromBits(value, value < 0 ? -1 : 0, false);\r\n if (cache)\r\n INT_CACHE[value] = obj;\r\n return obj;\r\n }\r\n }\r\n\r\n /**\r\n * Returns a Long representing the given 32 bit integer value.\r\n * @function\r\n * @param {number} value The 32 bit integer in question\r\n * @param {boolean=} unsigned Whether unsigned or not, defaults to `false` for signed\r\n * @returns {!Long} The corresponding Long value\r\n */\r\n Long.fromInt = fromInt;\r\n\r\n /**\r\n * @param {number} value\r\n * @param {boolean=} unsigned\r\n * @returns {!Long}\r\n * @inner\r\n */\r\n function fromNumber(value, unsigned) {\r\n if (isNaN(value) || !isFinite(value))\r\n return unsigned ? UZERO : ZERO;\r\n if (unsigned) {\r\n if (value < 0)\r\n return UZERO;\r\n if (value >= TWO_PWR_64_DBL)\r\n return MAX_UNSIGNED_VALUE;\r\n } else {\r\n if (value <= -TWO_PWR_63_DBL)\r\n return MIN_VALUE;\r\n if (value + 1 >= TWO_PWR_63_DBL)\r\n return MAX_VALUE;\r\n }\r\n if (value < 0)\r\n return fromNumber(-value, unsigned).neg();\r\n return fromBits((value % TWO_PWR_32_DBL) | 0, (value / TWO_PWR_32_DBL) | 0, unsigned);\r\n }\r\n\r\n /**\r\n * Returns a Long representing the given value, provided that it is a finite number. Otherwise, zero is returned.\r\n * @function\r\n * @param {number} value The number in question\r\n * @param {boolean=} unsigned Whether unsigned or not, defaults to `false` for signed\r\n * @returns {!Long} The corresponding Long value\r\n */\r\n Long.fromNumber = fromNumber;\r\n\r\n /**\r\n * @param {number} lowBits\r\n * @param {number} highBits\r\n * @param {boolean=} unsigned\r\n * @returns {!Long}\r\n * @inner\r\n */\r\n function fromBits(lowBits, highBits, unsigned) {\r\n return new Long(lowBits, highBits, unsigned);\r\n }\r\n\r\n /**\r\n * Returns a Long representing the 64 bit integer that comes by concatenating the given low and high bits. Each is\r\n * assumed to use 32 bits.\r\n * @function\r\n * @param {number} lowBits The low 32 bits\r\n * @param {number} highBits The high 32 bits\r\n * @param {boolean=} unsigned Whether unsigned or not, defaults to `false` for signed\r\n * @returns {!Long} The corresponding Long value\r\n */\r\n Long.fromBits = fromBits;\r\n\r\n /**\r\n * @function\r\n * @param {number} base\r\n * @param {number} exponent\r\n * @returns {number}\r\n * @inner\r\n */\r\n var pow_dbl = Math.pow; // Used 4 times (4*8 to 15+4)\r\n\r\n /**\r\n * @param {string} str\r\n * @param {(boolean|number)=} unsigned\r\n * @param {number=} radix\r\n * @returns {!Long}\r\n * @inner\r\n */\r\n function fromString(str, unsigned, radix) {\r\n if (str.length === 0)\r\n throw Error('empty string');\r\n if (str === \"NaN\" || str === \"Infinity\" || str === \"+Infinity\" || str === \"-Infinity\")\r\n return ZERO;\r\n if (typeof unsigned === 'number') {\r\n // For goog.math.long compatibility\r\n radix = unsigned,\r\n unsigned = false;\r\n } else {\r\n unsigned = !! unsigned;\r\n }\r\n radix = radix || 10;\r\n if (radix < 2 || 36 < radix)\r\n throw RangeError('radix');\r\n\r\n var p;\r\n if ((p = str.indexOf('-')) > 0)\r\n throw Error('interior hyphen');\r\n else if (p === 0) {\r\n return fromString(str.substring(1), unsigned, radix).neg();\r\n }\r\n\r\n // Do several (8) digits each time through the loop, so as to\r\n // minimize the calls to the very expensive emulated div.\r\n var radixToPower = fromNumber(pow_dbl(radix, 8));\r\n\r\n var result = ZERO;\r\n for (var i = 0; i < str.length; i += 8) {\r\n var size = Math.min(8, str.length - i),\r\n value = parseInt(str.substring(i, i + size), radix);\r\n if (size < 8) {\r\n var power = fromNumber(pow_dbl(radix, size));\r\n result = result.mul(power).add(fromNumber(value));\r\n } else {\r\n result = result.mul(radixToPower);\r\n result = result.add(fromNumber(value));\r\n }\r\n }\r\n result.unsigned = unsigned;\r\n return result;\r\n }\r\n\r\n /**\r\n * Returns a Long representation of the given string, written using the specified radix.\r\n * @function\r\n * @param {string} str The textual representation of the Long\r\n * @param {(boolean|number)=} unsigned Whether unsigned or not, defaults to `false` for signed\r\n * @param {number=} radix The radix in which the text is written (2-36), defaults to 10\r\n * @returns {!Long} The corresponding Long value\r\n */\r\n Long.fromString = fromString;\r\n\r\n /**\r\n * @function\r\n * @param {!Long|number|string|!{low: number, high: number, unsigned: boolean}} val\r\n * @returns {!Long}\r\n * @inner\r\n */\r\n function fromValue(val) {\r\n if (val /* is compatible */ instanceof Long)\r\n return val;\r\n if (typeof val === 'number')\r\n return fromNumber(val);\r\n if (typeof val === 'string')\r\n return fromString(val);\r\n // Throws for non-objects, converts non-instanceof Long:\r\n return fromBits(val.low, val.high, val.unsigned);\r\n }\r\n\r\n /**\r\n * Converts the specified value to a Long.\r\n * @function\r\n * @param {!Long|number|string|!{low: number, high: number, unsigned: boolean}} val Value\r\n * @returns {!Long}\r\n */\r\n Long.fromValue = fromValue;\r\n\r\n // NOTE: the compiler should inline these constant values below and then remove these variables, so there should be\r\n // no runtime penalty for these.\r\n\r\n /**\r\n * @type {number}\r\n * @const\r\n * @inner\r\n */\r\n var TWO_PWR_16_DBL = 1 << 16;\r\n\r\n /**\r\n * @type {number}\r\n * @const\r\n * @inner\r\n */\r\n var TWO_PWR_24_DBL = 1 << 24;\r\n\r\n /**\r\n * @type {number}\r\n * @const\r\n * @inner\r\n */\r\n var TWO_PWR_32_DBL = TWO_PWR_16_DBL * TWO_PWR_16_DBL;\r\n\r\n /**\r\n * @type {number}\r\n * @const\r\n * @inner\r\n */\r\n var TWO_PWR_64_DBL = TWO_PWR_32_DBL * TWO_PWR_32_DBL;\r\n\r\n /**\r\n * @type {number}\r\n * @const\r\n * @inner\r\n */\r\n var TWO_PWR_63_DBL = TWO_PWR_64_DBL / 2;\r\n\r\n /**\r\n * @type {!Long}\r\n * @const\r\n * @inner\r\n */\r\n var TWO_PWR_24 = fromInt(TWO_PWR_24_DBL);\r\n\r\n /**\r\n * @type {!Long}\r\n * @inner\r\n */\r\n var ZERO = fromInt(0);\r\n\r\n /**\r\n * Signed zero.\r\n * @type {!Long}\r\n */\r\n Long.ZERO = ZERO;\r\n\r\n /**\r\n * @type {!Long}\r\n * @inner\r\n */\r\n var UZERO = fromInt(0, true);\r\n\r\n /**\r\n * Unsigned zero.\r\n * @type {!Long}\r\n */\r\n Long.UZERO = UZERO;\r\n\r\n /**\r\n * @type {!Long}\r\n * @inner\r\n */\r\n var ONE = fromInt(1);\r\n\r\n /**\r\n * Signed one.\r\n * @type {!Long}\r\n */\r\n Long.ONE = ONE;\r\n\r\n /**\r\n * @type {!Long}\r\n * @inner\r\n */\r\n var UONE = fromInt(1, true);\r\n\r\n /**\r\n * Unsigned one.\r\n * @type {!Long}\r\n */\r\n Long.UONE = UONE;\r\n\r\n /**\r\n * @type {!Long}\r\n * @inner\r\n */\r\n var NEG_ONE = fromInt(-1);\r\n\r\n /**\r\n * Signed negative one.\r\n * @type {!Long}\r\n */\r\n Long.NEG_ONE = NEG_ONE;\r\n\r\n /**\r\n * @type {!Long}\r\n * @inner\r\n */\r\n var MAX_VALUE = fromBits(0xFFFFFFFF|0, 0x7FFFFFFF|0, false);\r\n\r\n /**\r\n * Maximum signed value.\r\n * @type {!Long}\r\n */\r\n Long.MAX_VALUE = MAX_VALUE;\r\n\r\n /**\r\n * @type {!Long}\r\n * @inner\r\n */\r\n var MAX_UNSIGNED_VALUE = fromBits(0xFFFFFFFF|0, 0xFFFFFFFF|0, true);\r\n\r\n /**\r\n * Maximum unsigned value.\r\n * @type {!Long}\r\n */\r\n Long.MAX_UNSIGNED_VALUE = MAX_UNSIGNED_VALUE;\r\n\r\n /**\r\n * @type {!Long}\r\n * @inner\r\n */\r\n var MIN_VALUE = fromBits(0, 0x80000000|0, false);\r\n\r\n /**\r\n * Minimum signed value.\r\n * @type {!Long}\r\n */\r\n Long.MIN_VALUE = MIN_VALUE;\r\n\r\n /**\r\n * @alias Long.prototype\r\n * @inner\r\n */\r\n var LongPrototype = Long.prototype;\r\n\r\n /**\r\n * Converts the Long to a 32 bit integer, assuming it is a 32 bit integer.\r\n * @returns {number}\r\n */\r\n LongPrototype.toInt = function toInt() {\r\n return this.unsigned ? this.low >>> 0 : this.low;\r\n };\r\n\r\n /**\r\n * Converts the Long to a the nearest floating-point representation of this value (double, 53 bit mantissa).\r\n * @returns {number}\r\n */\r\n LongPrototype.toNumber = function toNumber() {\r\n if (this.unsigned)\r\n return ((this.high >>> 0) * TWO_PWR_32_DBL) + (this.low >>> 0);\r\n return this.high * TWO_PWR_32_DBL + (this.low >>> 0);\r\n };\r\n\r\n /**\r\n * Converts the Long to a string written in the specified radix.\r\n * @param {number=} radix Radix (2-36), defaults to 10\r\n * @returns {string}\r\n * @override\r\n * @throws {RangeError} If `radix` is out of range\r\n */\r\n LongPrototype.toString = function toString(radix) {\r\n radix = radix || 10;\r\n if (radix < 2 || 36 < radix)\r\n throw RangeError('radix');\r\n if (this.isZero())\r\n return '0';\r\n if (this.isNegative()) { // Unsigned Longs are never negative\r\n if (this.eq(MIN_VALUE)) {\r\n // We need to change the Long value before it can be negated, so we remove\r\n // the bottom-most digit in this base and then recurse to do the rest.\r\n var radixLong = fromNumber(radix),\r\n div = this.div(radixLong),\r\n rem1 = div.mul(radixLong).sub(this);\r\n return div.toString(radix) + rem1.toInt().toString(radix);\r\n } else\r\n return '-' + this.neg().toString(radix);\r\n }\r\n\r\n // Do several (6) digits each time through the loop, so as to\r\n // minimize the calls to the very expensive emulated div.\r\n var radixToPower = fromNumber(pow_dbl(radix, 6), this.unsigned),\r\n rem = this;\r\n var result = '';\r\n while (true) {\r\n var remDiv = rem.div(radixToPower),\r\n intval = rem.sub(remDiv.mul(radixToPower)).toInt() >>> 0,\r\n digits = intval.toString(radix);\r\n rem = remDiv;\r\n if (rem.isZero())\r\n return digits + result;\r\n else {\r\n while (digits.length < 6)\r\n digits = '0' + digits;\r\n result = '' + digits + result;\r\n }\r\n }\r\n };\r\n\r\n /**\r\n * Gets the high 32 bits as a signed integer.\r\n * @returns {number} Signed high bits\r\n */\r\n LongPrototype.getHighBits = function getHighBits() {\r\n return this.high;\r\n };\r\n\r\n /**\r\n * Gets the high 32 bits as an unsigned integer.\r\n * @returns {number} Unsigned high bits\r\n */\r\n LongPrototype.getHighBitsUnsigned = function getHighBitsUnsigned() {\r\n return this.high >>> 0;\r\n };\r\n\r\n /**\r\n * Gets the low 32 bits as a signed integer.\r\n * @returns {number} Signed low bits\r\n */\r\n LongPrototype.getLowBits = function getLowBits() {\r\n return this.low;\r\n };\r\n\r\n /**\r\n * Gets the low 32 bits as an unsigned integer.\r\n * @returns {number} Unsigned low bits\r\n */\r\n LongPrototype.getLowBitsUnsigned = function getLowBitsUnsigned() {\r\n return this.low >>> 0;\r\n };\r\n\r\n /**\r\n * Gets the number of bits needed to represent the absolute value of this Long.\r\n * @returns {number}\r\n */\r\n LongPrototype.getNumBitsAbs = function getNumBitsAbs() {\r\n if (this.isNegative()) // Unsigned Longs are never negative\r\n return this.eq(MIN_VALUE) ? 64 : this.neg().getNumBitsAbs();\r\n var val = this.high != 0 ? this.high : this.low;\r\n for (var bit = 31; bit > 0; bit--)\r\n if ((val & (1 << bit)) != 0)\r\n break;\r\n return this.high != 0 ? bit + 33 : bit + 1;\r\n };\r\n\r\n /**\r\n * Tests if this Long's value equals zero.\r\n * @returns {boolean}\r\n */\r\n LongPrototype.isZero = function isZero() {\r\n return this.high === 0 && this.low === 0;\r\n };\r\n\r\n /**\r\n * Tests if this Long's value is negative.\r\n * @returns {boolean}\r\n */\r\n LongPrototype.isNegative = function isNegative() {\r\n return !this.unsigned && this.high < 0;\r\n };\r\n\r\n /**\r\n * Tests if this Long's value is positive.\r\n * @returns {boolean}\r\n */\r\n LongPrototype.isPositive = function isPositive() {\r\n return this.unsigned || this.high >= 0;\r\n };\r\n\r\n /**\r\n * Tests if this Long's value is odd.\r\n * @returns {boolean}\r\n */\r\n LongPrototype.isOdd = function isOdd() {\r\n return (this.low & 1) === 1;\r\n };\r\n\r\n /**\r\n * Tests if this Long's value is even.\r\n * @returns {boolean}\r\n */\r\n LongPrototype.isEven = function isEven() {\r\n return (this.low & 1) === 0;\r\n };\r\n\r\n /**\r\n * Tests if this Long's value equals the specified's.\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\n LongPrototype.equals = function equals(other) {\r\n if (!isLong(other))\r\n other = fromValue(other);\r\n if (this.unsigned !== other.unsigned && (this.high >>> 31) === 1 && (other.high >>> 31) === 1)\r\n return false;\r\n return this.high === other.high && this.low === other.low;\r\n };\r\n\r\n /**\r\n * Tests if this Long's value equals the specified's. This is an alias of {@link Long#equals}.\r\n * @function\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\n LongPrototype.eq = LongPrototype.equals;\r\n\r\n /**\r\n * Tests if this Long's value differs from the specified's.\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\n LongPrototype.notEquals = function notEquals(other) {\r\n return !this.eq(/* validates */ other);\r\n };\r\n\r\n /**\r\n * Tests if this Long's value differs from the specified's. This is an alias of {@link Long#notEquals}.\r\n * @function\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\n LongPrototype.neq = LongPrototype.notEquals;\r\n\r\n /**\r\n * Tests if this Long's value is less than the specified's.\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\n LongPrototype.lessThan = function lessThan(other) {\r\n return this.comp(/* validates */ other) < 0;\r\n };\r\n\r\n /**\r\n * Tests if this Long's value is less than the specified's. This is an alias of {@link Long#lessThan}.\r\n * @function\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\n LongPrototype.lt = LongPrototype.lessThan;\r\n\r\n /**\r\n * Tests if this Long's value is less than or equal the specified's.\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\n LongPrototype.lessThanOrEqual = function lessThanOrEqual(other) {\r\n return this.comp(/* validates */ other) <= 0;\r\n };\r\n\r\n /**\r\n * Tests if this Long's value is less than or equal the specified's. This is an alias of {@link Long#lessThanOrEqual}.\r\n * @function\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\n LongPrototype.lte = LongPrototype.lessThanOrEqual;\r\n\r\n /**\r\n * Tests if this Long's value is greater than the specified's.\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\n LongPrototype.greaterThan = function greaterThan(other) {\r\n return this.comp(/* validates */ other) > 0;\r\n };\r\n\r\n /**\r\n * Tests if this Long's value is greater than the specified's. This is an alias of {@link Long#greaterThan}.\r\n * @function\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\n LongPrototype.gt = LongPrototype.greaterThan;\r\n\r\n /**\r\n * Tests if this Long's value is greater than or equal the specified's.\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\n LongPrototype.greaterThanOrEqual = function greaterThanOrEqual(other) {\r\n return this.comp(/* validates */ other) >= 0;\r\n };\r\n\r\n /**\r\n * Tests if this Long's value is greater than or equal the specified's. This is an alias of {@link Long#greaterThanOrEqual}.\r\n * @function\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\n LongPrototype.gte = LongPrototype.greaterThanOrEqual;\r\n\r\n /**\r\n * Compares this Long's value with the specified's.\r\n * @param {!Long|number|string} other Other value\r\n * @returns {number} 0 if they are the same, 1 if the this is greater and -1\r\n * if the given one is greater\r\n */\r\n LongPrototype.compare = function compare(other) {\r\n if (!isLong(other))\r\n other = fromValue(other);\r\n if (this.eq(other))\r\n return 0;\r\n var thisNeg = this.isNegative(),\r\n otherNeg = other.isNegative();\r\n if (thisNeg && !otherNeg)\r\n return -1;\r\n if (!thisNeg && otherNeg)\r\n return 1;\r\n // At this point the sign bits are the same\r\n if (!this.unsigned)\r\n return this.sub(other).isNegative() ? -1 : 1;\r\n // Both are positive if at least one is unsigned\r\n return (other.high >>> 0) > (this.high >>> 0) || (other.high === this.high && (other.low >>> 0) > (this.low >>> 0)) ? -1 : 1;\r\n };\r\n\r\n /**\r\n * Compares this Long's value with the specified's. This is an alias of {@link Long#compare}.\r\n * @function\r\n * @param {!Long|number|string} other Other value\r\n * @returns {number} 0 if they are the same, 1 if the this is greater and -1\r\n * if the given one is greater\r\n */\r\n LongPrototype.comp = LongPrototype.compare;\r\n\r\n /**\r\n * Negates this Long's value.\r\n * @returns {!Long} Negated Long\r\n */\r\n LongPrototype.negate = function negate() {\r\n if (!this.unsigned && this.eq(MIN_VALUE))\r\n return MIN_VALUE;\r\n return this.not().add(ONE);\r\n };\r\n\r\n /**\r\n * Negates this Long's value. This is an alias of {@link Long#negate}.\r\n * @function\r\n * @returns {!Long} Negated Long\r\n */\r\n LongPrototype.neg = LongPrototype.negate;\r\n\r\n /**\r\n * Returns the sum of this and the specified Long.\r\n * @param {!Long|number|string} addend Addend\r\n * @returns {!Long} Sum\r\n */\r\n LongPrototype.add = function add(addend) {\r\n if (!isLong(addend))\r\n addend = fromValue(addend);\r\n\r\n // Divide each number into 4 chunks of 16 bits, and then sum the chunks.\r\n\r\n var a48 = this.high >>> 16;\r\n var a32 = this.high & 0xFFFF;\r\n var a16 = this.low >>> 16;\r\n var a00 = this.low & 0xFFFF;\r\n\r\n var b48 = addend.high >>> 16;\r\n var b32 = addend.high & 0xFFFF;\r\n var b16 = addend.low >>> 16;\r\n var b00 = addend.low & 0xFFFF;\r\n\r\n var c48 = 0, c32 = 0, c16 = 0, c00 = 0;\r\n c00 += a00 + b00;\r\n c16 += c00 >>> 16;\r\n c00 &= 0xFFFF;\r\n c16 += a16 + b16;\r\n c32 += c16 >>> 16;\r\n c16 &= 0xFFFF;\r\n c32 += a32 + b32;\r\n c48 += c32 >>> 16;\r\n c32 &= 0xFFFF;\r\n c48 += a48 + b48;\r\n c48 &= 0xFFFF;\r\n return fromBits((c16 << 16) | c00, (c48 << 16) | c32, this.unsigned);\r\n };\r\n\r\n /**\r\n * Returns the difference of this and the specified Long.\r\n * @param {!Long|number|string} subtrahend Subtrahend\r\n * @returns {!Long} Difference\r\n */\r\n LongPrototype.subtract = function subtract(subtrahend) {\r\n if (!isLong(subtrahend))\r\n subtrahend = fromValue(subtrahend);\r\n return this.add(subtrahend.neg());\r\n };\r\n\r\n /**\r\n * Returns the difference of this and the specified Long. This is an alias of {@link Long#subtract}.\r\n * @function\r\n * @param {!Long|number|string} subtrahend Subtrahend\r\n * @returns {!Long} Difference\r\n */\r\n LongPrototype.sub = LongPrototype.subtract;\r\n\r\n /**\r\n * Returns the product of this and the specified Long.\r\n * @param {!Long|number|string} multiplier Multiplier\r\n * @returns {!Long} Product\r\n */\r\n LongPrototype.multiply = function multiply(multiplier) {\r\n if (this.isZero())\r\n return ZERO;\r\n if (!isLong(multiplier))\r\n multiplier = fromValue(multiplier);\r\n if (multiplier.isZero())\r\n return ZERO;\r\n if (this.eq(MIN_VALUE))\r\n return multiplier.isOdd() ? MIN_VALUE : ZERO;\r\n if (multiplier.eq(MIN_VALUE))\r\n return this.isOdd() ? MIN_VALUE : ZERO;\r\n\r\n if (this.isNegative()) {\r\n if (multiplier.isNegative())\r\n return this.neg().mul(multiplier.neg());\r\n else\r\n return this.neg().mul(multiplier).neg();\r\n } else if (multiplier.isNegative())\r\n return this.mul(multiplier.neg()).neg();\r\n\r\n // If both longs are small, use float multiplication\r\n if (this.lt(TWO_PWR_24) && multiplier.lt(TWO_PWR_24))\r\n return fromNumber(this.toNumber() * multiplier.toNumber(), this.unsigned);\r\n\r\n // Divide each long into 4 chunks of 16 bits, and then add up 4x4 products.\r\n // We can skip products that would overflow.\r\n\r\n var a48 = this.high >>> 16;\r\n var a32 = this.high & 0xFFFF;\r\n var a16 = this.low >>> 16;\r\n var a00 = this.low & 0xFFFF;\r\n\r\n var b48 = multiplier.high >>> 16;\r\n var b32 = multiplier.high & 0xFFFF;\r\n var b16 = multiplier.low >>> 16;\r\n var b00 = multiplier.low & 0xFFFF;\r\n\r\n var c48 = 0, c32 = 0, c16 = 0, c00 = 0;\r\n c00 += a00 * b00;\r\n c16 += c00 >>> 16;\r\n c00 &= 0xFFFF;\r\n c16 += a16 * b00;\r\n c32 += c16 >>> 16;\r\n c16 &= 0xFFFF;\r\n c16 += a00 * b16;\r\n c32 += c16 >>> 16;\r\n c16 &= 0xFFFF;\r\n c32 += a32 * b00;\r\n c48 += c32 >>> 16;\r\n c32 &= 0xFFFF;\r\n c32 += a16 * b16;\r\n c48 += c32 >>> 16;\r\n c32 &= 0xFFFF;\r\n c32 += a00 * b32;\r\n c48 += c32 >>> 16;\r\n c32 &= 0xFFFF;\r\n c48 += a48 * b00 + a32 * b16 + a16 * b32 + a00 * b48;\r\n c48 &= 0xFFFF;\r\n return fromBits((c16 << 16) | c00, (c48 << 16) | c32, this.unsigned);\r\n };\r\n\r\n /**\r\n * Returns the product of this and the specified Long. This is an alias of {@link Long#multiply}.\r\n * @function\r\n * @param {!Long|number|string} multiplier Multiplier\r\n * @returns {!Long} Product\r\n */\r\n LongPrototype.mul = LongPrototype.multiply;\r\n\r\n /**\r\n * Returns this Long divided by the specified. The result is signed if this Long is signed or\r\n * unsigned if this Long is unsigned.\r\n * @param {!Long|number|string} divisor Divisor\r\n * @returns {!Long} Quotient\r\n */\r\n LongPrototype.divide = function divide(divisor) {\r\n if (!isLong(divisor))\r\n divisor = fromValue(divisor);\r\n if (divisor.isZero())\r\n throw Error('division by zero');\r\n if (this.isZero())\r\n return this.unsigned ? UZERO : ZERO;\r\n var approx, rem, res;\r\n if (!this.unsigned) {\r\n // This section is only relevant for signed longs and is derived from the\r\n // closure library as a whole.\r\n if (this.eq(MIN_VALUE)) {\r\n if (divisor.eq(ONE) || divisor.eq(NEG_ONE))\r\n return MIN_VALUE; // recall that -MIN_VALUE == MIN_VALUE\r\n else if (divisor.eq(MIN_VALUE))\r\n return ONE;\r\n else {\r\n // At this point, we have |other| >= 2, so |this/other| < |MIN_VALUE|.\r\n var halfThis = this.shr(1);\r\n approx = halfThis.div(divisor).shl(1);\r\n if (approx.eq(ZERO)) {\r\n return divisor.isNegative() ? ONE : NEG_ONE;\r\n } else {\r\n rem = this.sub(divisor.mul(approx));\r\n res = approx.add(rem.div(divisor));\r\n return res;\r\n }\r\n }\r\n } else if (divisor.eq(MIN_VALUE))\r\n return this.unsigned ? UZERO : ZERO;\r\n if (this.isNegative()) {\r\n if (divisor.isNegative())\r\n return this.neg().div(divisor.neg());\r\n return this.neg().div(divisor).neg();\r\n } else if (divisor.isNegative())\r\n return this.div(divisor.neg()).neg();\r\n res = ZERO;\r\n } else {\r\n // The algorithm below has not been made for unsigned longs. It's therefore\r\n // required to take special care of the MSB prior to running it.\r\n if (!divisor.unsigned)\r\n divisor = divisor.toUnsigned();\r\n if (divisor.gt(this))\r\n return UZERO;\r\n if (divisor.gt(this.shru(1))) // 15 >>> 1 = 7 ; with divisor = 8 ; true\r\n return UONE;\r\n res = UZERO;\r\n }\r\n\r\n // Repeat the following until the remainder is less than other: find a\r\n // floating-point that approximates remainder / other *from below*, add this\r\n // into the result, and subtract it from the remainder. It is critical that\r\n // the approximate value is less than or equal to the real value so that the\r\n // remainder never becomes negative.\r\n rem = this;\r\n while (rem.gte(divisor)) {\r\n // Approximate the result of division. This may be a little greater or\r\n // smaller than the actual value.\r\n approx = Math.max(1, Math.floor(rem.toNumber() / divisor.toNumber()));\r\n\r\n // We will tweak the approximate result by changing it in the 48-th digit or\r\n // the smallest non-fractional digit, whichever is larger.\r\n var log2 = Math.ceil(Math.log(approx) / Math.LN2),\r\n delta = (log2 <= 48) ? 1 : pow_dbl(2, log2 - 48),\r\n\r\n // Decrease the approximation until it is smaller than the remainder. Note\r\n // that if it is too large, the product overflows and is negative.\r\n approxRes = fromNumber(approx),\r\n approxRem = approxRes.mul(divisor);\r\n while (approxRem.isNegative() || approxRem.gt(rem)) {\r\n approx -= delta;\r\n approxRes = fromNumber(approx, this.unsigned);\r\n approxRem = approxRes.mul(divisor);\r\n }\r\n\r\n // We know the answer can't be zero... and actually, zero would cause\r\n // infinite recursion since we would make no progress.\r\n if (approxRes.isZero())\r\n approxRes = ONE;\r\n\r\n res = res.add(approxRes);\r\n rem = rem.sub(approxRem);\r\n }\r\n return res;\r\n };\r\n\r\n /**\r\n * Returns this Long divided by the specified. This is an alias of {@link Long#divide}.\r\n * @function\r\n * @param {!Long|number|string} divisor Divisor\r\n * @returns {!Long} Quotient\r\n */\r\n LongPrototype.div = LongPrototype.divide;\r\n\r\n /**\r\n * Returns this Long modulo the specified.\r\n * @param {!Long|number|string} divisor Divisor\r\n * @returns {!Long} Remainder\r\n */\r\n LongPrototype.modulo = function modulo(divisor) {\r\n if (!isLong(divisor))\r\n divisor = fromValue(divisor);\r\n return this.sub(this.div(divisor).mul(divisor));\r\n };\r\n\r\n /**\r\n * Returns this Long modulo the specified. This is an alias of {@link Long#modulo}.\r\n * @function\r\n * @param {!Long|number|string} divisor Divisor\r\n * @returns {!Long} Remainder\r\n */\r\n LongPrototype.mod = LongPrototype.modulo;\r\n\r\n /**\r\n * Returns the bitwise NOT of this Long.\r\n * @returns {!Long}\r\n */\r\n LongPrototype.not = function not() {\r\n return fromBits(~this.low, ~this.high, this.unsigned);\r\n };\r\n\r\n /**\r\n * Returns the bitwise AND of this Long and the specified.\r\n * @param {!Long|number|string} other Other Long\r\n * @returns {!Long}\r\n */\r\n LongPrototype.and = function and(other) {\r\n if (!isLong(other))\r\n other = fromValue(other);\r\n return fromBits(this.low & other.low, this.high & other.high, this.unsigned);\r\n };\r\n\r\n /**\r\n * Returns the bitwise OR of this Long and the specified.\r\n * @param {!Long|number|string} other Other Long\r\n * @returns {!Long}\r\n */\r\n LongPrototype.or = function or(other) {\r\n if (!isLong(other))\r\n other = fromValue(other);\r\n return fromBits(this.low | other.low, this.high | other.high, this.unsigned);\r\n };\r\n\r\n /**\r\n * Returns the bitwise XOR of this Long and the given one.\r\n * @param {!Long|number|string} other Other Long\r\n * @returns {!Long}\r\n */\r\n LongPrototype.xor = function xor(other) {\r\n if (!isLong(other))\r\n other = fromValue(other);\r\n return fromBits(this.low ^ other.low, this.high ^ other.high, this.unsigned);\r\n };\r\n\r\n /**\r\n * Returns this Long with bits shifted to the left by the given amount.\r\n * @param {number|!Long} numBits Number of bits\r\n * @returns {!Long} Shifted Long\r\n */\r\n LongPrototype.shiftLeft = function shiftLeft(numBits) {\r\n if (isLong(numBits))\r\n numBits = numBits.toInt();\r\n if ((numBits &= 63) === 0)\r\n return this;\r\n else if (numBits < 32)\r\n return fromBits(this.low << numBits, (this.high << numBits) | (this.low >>> (32 - numBits)), this.unsigned);\r\n else\r\n return fromBits(0, this.low << (numBits - 32), this.unsigned);\r\n };\r\n\r\n /**\r\n * Returns this Long with bits shifted to the left by the given amount. This is an alias of {@link Long#shiftLeft}.\r\n * @function\r\n * @param {number|!Long} numBits Number of bits\r\n * @returns {!Long} Shifted Long\r\n */\r\n LongPrototype.shl = LongPrototype.shiftLeft;\r\n\r\n /**\r\n * Returns this Long with bits arithmetically shifted to the right by the given amount.\r\n * @param {number|!Long} numBits Number of bits\r\n * @returns {!Long} Shifted Long\r\n */\r\n LongPrototype.shiftRight = function shiftRight(numBits) {\r\n if (isLong(numBits))\r\n numBits = numBits.toInt();\r\n if ((numBits &= 63) === 0)\r\n return this;\r\n else if (numBits < 32)\r\n return fromBits((this.low >>> numBits) | (this.high << (32 - numBits)), this.high >> numBits, this.unsigned);\r\n else\r\n return fromBits(this.high >> (numBits - 32), this.high >= 0 ? 0 : -1, this.unsigned);\r\n };\r\n\r\n /**\r\n * Returns this Long with bits arithmetically shifted to the right by the given amount. This is an alias of {@link Long#shiftRight}.\r\n * @function\r\n * @param {number|!Long} numBits Number of bits\r\n * @returns {!Long} Shifted Long\r\n */\r\n LongPrototype.shr = LongPrototype.shiftRight;\r\n\r\n /**\r\n * Returns this Long with bits logically shifted to the right by the given amount.\r\n * @param {number|!Long} numBits Number of bits\r\n * @returns {!Long} Shifted Long\r\n */\r\n LongPrototype.shiftRightUnsigned = function shiftRightUnsigned(numBits) {\r\n if (isLong(numBits))\r\n numBits = numBits.toInt();\r\n numBits &= 63;\r\n if (numBits === 0)\r\n return this;\r\n else {\r\n var high = this.high;\r\n if (numBits < 32) {\r\n var low = this.low;\r\n return fromBits((low >>> numBits) | (high << (32 - numBits)), high >>> numBits, this.unsigned);\r\n } else if (numBits === 32)\r\n return fromBits(high, 0, this.unsigned);\r\n else\r\n return fromBits(high >>> (numBits - 32), 0, this.unsigned);\r\n }\r\n };\r\n\r\n /**\r\n * Returns this Long with bits logically shifted to the right by the given amount. This is an alias of {@link Long#shiftRightUnsigned}.\r\n * @function\r\n * @param {number|!Long} numBits Number of bits\r\n * @returns {!Long} Shifted Long\r\n */\r\n LongPrototype.shru = LongPrototype.shiftRightUnsigned;\r\n\r\n /**\r\n * Converts this Long to signed.\r\n * @returns {!Long} Signed long\r\n */\r\n LongPrototype.toSigned = function toSigned() {\r\n if (!this.unsigned)\r\n return this;\r\n return fromBits(this.low, this.high, false);\r\n };\r\n\r\n /**\r\n * Converts this Long to unsigned.\r\n * @returns {!Long} Unsigned long\r\n */\r\n LongPrototype.toUnsigned = function toUnsigned() {\r\n if (this.unsigned)\r\n return this;\r\n return fromBits(this.low, this.high, true);\r\n };\r\n\r\n /**\r\n * Converts this Long to its byte representation.\r\n * @param {boolean=} le Whether little or big endian, defaults to big endian\r\n * @returns {!Array.} Byte representation\r\n */\r\n LongPrototype.toBytes = function(le) {\r\n return le ? this.toBytesLE() : this.toBytesBE();\r\n }\r\n\r\n /**\r\n * Converts this Long to its little endian byte representation.\r\n * @returns {!Array.} Little endian byte representation\r\n */\r\n LongPrototype.toBytesLE = function() {\r\n var hi = this.high,\r\n lo = this.low;\r\n return [\r\n lo & 0xff,\r\n (lo >>> 8) & 0xff,\r\n (lo >>> 16) & 0xff,\r\n (lo >>> 24) & 0xff,\r\n hi & 0xff,\r\n (hi >>> 8) & 0xff,\r\n (hi >>> 16) & 0xff,\r\n (hi >>> 24) & 0xff\r\n ];\r\n }\r\n\r\n /**\r\n * Converts this Long to its big endian byte representation.\r\n * @returns {!Array.} Big endian byte representation\r\n */\r\n LongPrototype.toBytesBE = function() {\r\n var hi = this.high,\r\n lo = this.low;\r\n return [\r\n (hi >>> 24) & 0xff,\r\n (hi >>> 16) & 0xff,\r\n (hi >>> 8) & 0xff,\r\n hi & 0xff,\r\n (lo >>> 24) & 0xff,\r\n (lo >>> 16) & 0xff,\r\n (lo >>> 8) & 0xff,\r\n lo & 0xff\r\n ];\r\n }\r\n\r\n return Long;\r\n});\r\n", "/*\r\n Copyright 2013-2014 Daniel Wirtz \r\n\r\n Licensed under the Apache License, Version 2.0 (the \"License\");\r\n you may not use this file except in compliance with the License.\r\n You may obtain a copy of the License at\r\n\r\n http://www.apache.org/licenses/LICENSE-2.0\r\n\r\n Unless required by applicable law or agreed to in writing, software\r\n distributed under the License is distributed on an \"AS IS\" BASIS,\r\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n See the License for the specific language governing permissions and\r\n limitations under the License.\r\n */\r\n\r\n/**\r\n * @license bytebuffer.js (c) 2015 Daniel Wirtz \r\n * Backing buffer / Accessor: node Buffer\r\n * Released under the Apache License, Version 2.0\r\n * see: https://github.com/dcodeIO/bytebuffer.js for details\r\n */\r\nmodule.exports = (function() {\r\n \"use strict\";\r\n\r\n var buffer = require(\"buffer\"),\r\n Buffer = buffer[\"Buffer\"],\r\n Long = require(\"long\"),\r\n memcpy = null; try { memcpy = require(\"memcpy\"); } catch (e) {}\r\n\r\n /**\r\n * Constructs a new ByteBuffer.\r\n * @class The swiss army knife for binary data in JavaScript.\r\n * @exports ByteBuffer\r\n * @constructor\r\n * @param {number=} capacity Initial capacity. Defaults to {@link ByteBuffer.DEFAULT_CAPACITY}.\r\n * @param {boolean=} littleEndian Whether to use little or big endian byte order. Defaults to\r\n * {@link ByteBuffer.DEFAULT_ENDIAN}.\r\n * @param {boolean=} noAssert Whether to skip assertions of offsets and values. Defaults to\r\n * {@link ByteBuffer.DEFAULT_NOASSERT}.\r\n * @expose\r\n */\r\n var ByteBuffer = function(capacity, littleEndian, noAssert) {\r\n if (typeof capacity === 'undefined')\r\n capacity = ByteBuffer.DEFAULT_CAPACITY;\r\n if (typeof littleEndian === 'undefined')\r\n littleEndian = ByteBuffer.DEFAULT_ENDIAN;\r\n if (typeof noAssert === 'undefined')\r\n noAssert = ByteBuffer.DEFAULT_NOASSERT;\r\n if (!noAssert) {\r\n capacity = capacity | 0;\r\n if (capacity < 0)\r\n throw RangeError(\"Illegal capacity\");\r\n littleEndian = !!littleEndian;\r\n noAssert = !!noAssert;\r\n }\r\n\r\n /**\r\n * Backing node Buffer.\r\n * @type {!Buffer}\r\n * @expose\r\n */\r\n this.buffer = capacity === 0 ? EMPTY_BUFFER : new Buffer(capacity);\r\n\r\n /**\r\n * Absolute read/write offset.\r\n * @type {number}\r\n * @expose\r\n * @see ByteBuffer#flip\r\n * @see ByteBuffer#clear\r\n */\r\n this.offset = 0;\r\n\r\n /**\r\n * Marked offset.\r\n * @type {number}\r\n * @expose\r\n * @see ByteBuffer#mark\r\n * @see ByteBuffer#reset\r\n */\r\n this.markedOffset = -1;\r\n\r\n /**\r\n * Absolute limit of the contained data. Set to the backing buffer's capacity upon allocation.\r\n * @type {number}\r\n * @expose\r\n * @see ByteBuffer#flip\r\n * @see ByteBuffer#clear\r\n */\r\n this.limit = capacity;\r\n\r\n /**\r\n * Whether to use little endian byte order, defaults to `false` for big endian.\r\n * @type {boolean}\r\n * @expose\r\n */\r\n this.littleEndian = littleEndian;\r\n\r\n /**\r\n * Whether to skip assertions of offsets and values, defaults to `false`.\r\n * @type {boolean}\r\n * @expose\r\n */\r\n this.noAssert = noAssert;\r\n };\r\n\r\n /**\r\n * ByteBuffer version.\r\n * @type {string}\r\n * @const\r\n * @expose\r\n */\r\n ByteBuffer.VERSION = \"5.0.1\";\r\n\r\n /**\r\n * Little endian constant that can be used instead of its boolean value. Evaluates to `true`.\r\n * @type {boolean}\r\n * @const\r\n * @expose\r\n */\r\n ByteBuffer.LITTLE_ENDIAN = true;\r\n\r\n /**\r\n * Big endian constant that can be used instead of its boolean value. Evaluates to `false`.\r\n * @type {boolean}\r\n * @const\r\n * @expose\r\n */\r\n ByteBuffer.BIG_ENDIAN = false;\r\n\r\n /**\r\n * Default initial capacity of `16`.\r\n * @type {number}\r\n * @expose\r\n */\r\n ByteBuffer.DEFAULT_CAPACITY = 16;\r\n\r\n /**\r\n * Default endianess of `false` for big endian.\r\n * @type {boolean}\r\n * @expose\r\n */\r\n ByteBuffer.DEFAULT_ENDIAN = ByteBuffer.BIG_ENDIAN;\r\n\r\n /**\r\n * Default no assertions flag of `false`.\r\n * @type {boolean}\r\n * @expose\r\n */\r\n ByteBuffer.DEFAULT_NOASSERT = false;\r\n\r\n /**\r\n * A `Long` class for representing a 64-bit two's-complement integer value.\r\n * @type {!Long}\r\n * @const\r\n * @see https://npmjs.org/package/long\r\n * @expose\r\n */\r\n ByteBuffer.Long = Long;\r\n\r\n /**\r\n * @alias ByteBuffer.prototype\r\n * @inner\r\n */\r\n var ByteBufferPrototype = ByteBuffer.prototype;\r\n\r\n /**\r\n * An indicator used to reliably determine if an object is a ByteBuffer or not.\r\n * @type {boolean}\r\n * @const\r\n * @expose\r\n * @private\r\n */\r\n ByteBufferPrototype.__isByteBuffer__;\r\n\r\n Object.defineProperty(ByteBufferPrototype, \"__isByteBuffer__\", {\r\n value: true,\r\n enumerable: false,\r\n configurable: false\r\n });\r\n\r\n // helpers\r\n\r\n /**\r\n * @type {!Buffer}\r\n * @inner\r\n */\r\n var EMPTY_BUFFER = new Buffer(0);\r\n\r\n /**\r\n * String.fromCharCode reference for compile-time renaming.\r\n * @type {function(...number):string}\r\n * @inner\r\n */\r\n var stringFromCharCode = String.fromCharCode;\r\n\r\n /**\r\n * Creates a source function for a string.\r\n * @param {string} s String to read from\r\n * @returns {function():number|null} Source function returning the next char code respectively `null` if there are\r\n * no more characters left.\r\n * @throws {TypeError} If the argument is invalid\r\n * @inner\r\n */\r\n function stringSource(s) {\r\n var i=0; return function() {\r\n return i < s.length ? s.charCodeAt(i++) : null;\r\n };\r\n }\r\n\r\n /**\r\n * Creates a destination function for a string.\r\n * @returns {function(number=):undefined|string} Destination function successively called with the next char code.\r\n * Returns the final string when called without arguments.\r\n * @inner\r\n */\r\n function stringDestination() {\r\n var cs = [], ps = []; return function() {\r\n if (arguments.length === 0)\r\n return ps.join('')+stringFromCharCode.apply(String, cs);\r\n if (cs.length + arguments.length > 1024)\r\n ps.push(stringFromCharCode.apply(String, cs)),\r\n cs.length = 0;\r\n Array.prototype.push.apply(cs, arguments);\r\n };\r\n }\r\n\r\n /**\r\n * Gets the accessor type.\r\n * @returns {Function} `Buffer` under node.js, `Uint8Array` respectively `DataView` in the browser (classes)\r\n * @expose\r\n */\r\n ByteBuffer.accessor = function() {\r\n return Buffer;\r\n };\r\n /**\r\n * Allocates a new ByteBuffer backed by a buffer of the specified capacity.\r\n * @param {number=} capacity Initial capacity. Defaults to {@link ByteBuffer.DEFAULT_CAPACITY}.\r\n * @param {boolean=} littleEndian Whether to use little or big endian byte order. Defaults to\r\n * {@link ByteBuffer.DEFAULT_ENDIAN}.\r\n * @param {boolean=} noAssert Whether to skip assertions of offsets and values. Defaults to\r\n * {@link ByteBuffer.DEFAULT_NOASSERT}.\r\n * @returns {!ByteBuffer}\r\n * @expose\r\n */\r\n ByteBuffer.allocate = function(capacity, littleEndian, noAssert) {\r\n return new ByteBuffer(capacity, littleEndian, noAssert);\r\n };\r\n\r\n /**\r\n * Concatenates multiple ByteBuffers into one.\r\n * @param {!Array.} buffers Buffers to concatenate\r\n * @param {(string|boolean)=} encoding String encoding if `buffers` contains a string (\"base64\", \"hex\", \"binary\",\r\n * defaults to \"utf8\")\r\n * @param {boolean=} littleEndian Whether to use little or big endian byte order for the resulting ByteBuffer. Defaults\r\n * to {@link ByteBuffer.DEFAULT_ENDIAN}.\r\n * @param {boolean=} noAssert Whether to skip assertions of offsets and values for the resulting ByteBuffer. Defaults to\r\n * {@link ByteBuffer.DEFAULT_NOASSERT}.\r\n * @returns {!ByteBuffer} Concatenated ByteBuffer\r\n * @expose\r\n */\r\n ByteBuffer.concat = function(buffers, encoding, littleEndian, noAssert) {\r\n if (typeof encoding === 'boolean' || typeof encoding !== 'string') {\r\n noAssert = littleEndian;\r\n littleEndian = encoding;\r\n encoding = undefined;\r\n }\r\n var capacity = 0;\r\n for (var i=0, k=buffers.length, length; i 0) capacity += length;\r\n }\r\n if (capacity === 0)\r\n return new ByteBuffer(0, littleEndian, noAssert);\r\n var bb = new ByteBuffer(capacity, littleEndian, noAssert),\r\n bi;\r\n i=0; while (i} buffer Anything that can be wrapped\r\n * @param {(string|boolean)=} encoding String encoding if `buffer` is a string (\"base64\", \"hex\", \"binary\", defaults to\r\n * \"utf8\")\r\n * @param {boolean=} littleEndian Whether to use little or big endian byte order. Defaults to\r\n * {@link ByteBuffer.DEFAULT_ENDIAN}.\r\n * @param {boolean=} noAssert Whether to skip assertions of offsets and values. Defaults to\r\n * {@link ByteBuffer.DEFAULT_NOASSERT}.\r\n * @returns {!ByteBuffer} A ByteBuffer wrapping `buffer`\r\n * @expose\r\n */\r\n ByteBuffer.wrap = function(buffer, encoding, littleEndian, noAssert) {\r\n if (typeof encoding !== 'string') {\r\n noAssert = littleEndian;\r\n littleEndian = encoding;\r\n encoding = undefined;\r\n }\r\n if (typeof buffer === 'string') {\r\n if (typeof encoding === 'undefined')\r\n encoding = \"utf8\";\r\n switch (encoding) {\r\n case \"base64\":\r\n return ByteBuffer.fromBase64(buffer, littleEndian);\r\n case \"hex\":\r\n return ByteBuffer.fromHex(buffer, littleEndian);\r\n case \"binary\":\r\n return ByteBuffer.fromBinary(buffer, littleEndian);\r\n case \"utf8\":\r\n return ByteBuffer.fromUTF8(buffer, littleEndian);\r\n case \"debug\":\r\n return ByteBuffer.fromDebug(buffer, littleEndian);\r\n default:\r\n throw Error(\"Unsupported encoding: \"+encoding);\r\n }\r\n }\r\n if (buffer === null || typeof buffer !== 'object')\r\n throw TypeError(\"Illegal buffer\");\r\n var bb;\r\n if (ByteBuffer.isByteBuffer(buffer)) {\r\n bb = ByteBufferPrototype.clone.call(buffer);\r\n bb.markedOffset = -1;\r\n return bb;\r\n }\r\n var i = 0,\r\n k = 0,\r\n b;\r\n if (buffer instanceof Uint8Array) { // Extract bytes from Uint8Array\r\n b = new Buffer(buffer.length);\r\n if (memcpy) { // Fast\r\n memcpy(b, 0, buffer.buffer, buffer.byteOffset, buffer.byteOffset + buffer.length);\r\n } else { // Slow\r\n for (i=0, k=buffer.length; i 0) { // Avoid references to more than one EMPTY_BUFFER\r\n bb.buffer = buffer;\r\n bb.limit = buffer.length;\r\n }\r\n return bb;\r\n };\r\n\r\n /**\r\n * Writes the array as a bitset.\r\n * @param {Array} value Array of booleans to write\r\n * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by `length` if omitted.\r\n * @returns {!ByteBuffer}\r\n * @expose\r\n */\r\n ByteBufferPrototype.writeBitSet = function(value, offset) {\r\n var relative = typeof offset === 'undefined';\n if (relative) offset = this.offset;\n if (!this.noAssert) {\r\n if (!(value instanceof Array))\r\n throw TypeError(\"Illegal BitSet: Not an array\");\r\n if (typeof offset !== 'number' || offset % 1 !== 0)\n throw TypeError(\"Illegal offset: \"+offset+\" (not an integer)\");\n offset >>>= 0;\n if (offset < 0 || offset + 0 > this.buffer.length)\n throw RangeError(\"Illegal offset: 0 <= \"+offset+\" (+\"+0+\") <= \"+this.buffer.length);\n }\r\n\r\n var start = offset,\r\n bits = value.length,\r\n bytes = (bits >> 3),\r\n bit = 0,\r\n k;\r\n\r\n offset += this.writeVarint32(bits,offset);\r\n\r\n while(bytes--) {\r\n k = (!!value[bit++] & 1) |\r\n ((!!value[bit++] & 1) << 1) |\r\n ((!!value[bit++] & 1) << 2) |\r\n ((!!value[bit++] & 1) << 3) |\r\n ((!!value[bit++] & 1) << 4) |\r\n ((!!value[bit++] & 1) << 5) |\r\n ((!!value[bit++] & 1) << 6) |\r\n ((!!value[bit++] & 1) << 7);\r\n this.writeByte(k,offset++);\r\n }\r\n\r\n if(bit < bits) {\r\n var m = 0; k = 0;\r\n while(bit < bits) k = k | ((!!value[bit++] & 1) << (m++));\r\n this.writeByte(k,offset++);\r\n }\r\n\r\n if (relative) {\r\n this.offset = offset;\r\n return this;\r\n }\r\n return offset - start;\r\n }\r\n\r\n /**\r\n * Reads a BitSet as an array of booleans.\r\n * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by `length` if omitted.\r\n * @returns {Array\r\n * @expose\r\n */\r\n ByteBufferPrototype.readBitSet = function(offset) {\r\n var relative = typeof offset === 'undefined';\n if (relative) offset = this.offset;\n\r\n var ret = this.readVarint32(offset),\r\n bits = ret.value,\r\n bytes = (bits >> 3),\r\n bit = 0,\r\n value = [],\r\n k;\r\n\r\n offset += ret.length;\r\n\r\n while(bytes--) {\r\n k = this.readByte(offset++);\r\n value[bit++] = !!(k & 0x01);\r\n value[bit++] = !!(k & 0x02);\r\n value[bit++] = !!(k & 0x04);\r\n value[bit++] = !!(k & 0x08);\r\n value[bit++] = !!(k & 0x10);\r\n value[bit++] = !!(k & 0x20);\r\n value[bit++] = !!(k & 0x40);\r\n value[bit++] = !!(k & 0x80);\r\n }\r\n\r\n if(bit < bits) {\r\n var m = 0;\r\n k = this.readByte(offset++);\r\n while(bit < bits) value[bit++] = !!((k >> (m++)) & 1);\r\n }\r\n\r\n if (relative) {\r\n this.offset = offset;\r\n }\r\n return value;\r\n }\r\n /**\r\n * Reads the specified number of bytes.\r\n * @param {number} length Number of bytes to read\r\n * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by `length` if omitted.\r\n * @returns {!ByteBuffer}\r\n * @expose\r\n */\r\n ByteBufferPrototype.readBytes = function(length, offset) {\r\n var relative = typeof offset === 'undefined';\n if (relative) offset = this.offset;\n if (!this.noAssert) {\r\n if (typeof offset !== 'number' || offset % 1 !== 0)\n throw TypeError(\"Illegal offset: \"+offset+\" (not an integer)\");\n offset >>>= 0;\n if (offset < 0 || offset + length > this.buffer.length)\n throw RangeError(\"Illegal offset: 0 <= \"+offset+\" (+\"+length+\") <= \"+this.buffer.length);\n }\r\n var slice = this.slice(offset, offset + length);\r\n if (relative) this.offset += length;\n return slice;\r\n };\r\n\r\n /**\r\n * Writes a payload of bytes. This is an alias of {@link ByteBuffer#append}.\r\n * @function\r\n * @param {!ByteBuffer|!Buffer|!ArrayBuffer|!Uint8Array|string} source Data to write. If `source` is a ByteBuffer, its\r\n * offsets will be modified according to the performed read operation.\r\n * @param {(string|number)=} encoding Encoding if `data` is a string (\"base64\", \"hex\", \"binary\", defaults to \"utf8\")\r\n * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by the number of bytes\r\n * written if omitted.\r\n * @returns {!ByteBuffer} this\r\n * @expose\r\n */\r\n ByteBufferPrototype.writeBytes = ByteBufferPrototype.append;\r\n\r\n // types/ints/int8\r\n\r\n /**\r\n * Writes an 8bit signed integer.\r\n * @param {number} value Value to write\r\n * @param {number=} offset Offset to write to. Will use and advance {@link ByteBuffer#offset} by `1` if omitted.\r\n * @returns {!ByteBuffer} this\r\n * @expose\r\n */\r\n ByteBufferPrototype.writeInt8 = function(value, offset) {\r\n var relative = typeof offset === 'undefined';\n if (relative) offset = this.offset;\n if (!this.noAssert) {\r\n if (typeof value !== 'number' || value % 1 !== 0)\n throw TypeError(\"Illegal value: \"+value+\" (not an integer)\");\n value |= 0;\n if (typeof offset !== 'number' || offset % 1 !== 0)\n throw TypeError(\"Illegal offset: \"+offset+\" (not an integer)\");\n offset >>>= 0;\n if (offset < 0 || offset + 0 > this.buffer.length)\n throw RangeError(\"Illegal offset: 0 <= \"+offset+\" (+\"+0+\") <= \"+this.buffer.length);\n }\r\n offset += 1;\n var capacity0 = this.buffer.length;\n if (offset > capacity0)\n this.resize((capacity0 *= 2) > offset ? capacity0 : offset);\n offset -= 1;\n this.buffer[offset] = value;\r\n if (relative) this.offset += 1;\n return this;\r\n };\r\n\r\n /**\r\n * Writes an 8bit signed integer. This is an alias of {@link ByteBuffer#writeInt8}.\r\n * @function\r\n * @param {number} value Value to write\r\n * @param {number=} offset Offset to write to. Will use and advance {@link ByteBuffer#offset} by `1` if omitted.\r\n * @returns {!ByteBuffer} this\r\n * @expose\r\n */\r\n ByteBufferPrototype.writeByte = ByteBufferPrototype.writeInt8;\r\n\r\n /**\r\n * Reads an 8bit signed integer.\r\n * @param {number=} offset Offset to read from. Will use and advance {@link ByteBuffer#offset} by `1` if omitted.\r\n * @returns {number} Value read\r\n * @expose\r\n */\r\n ByteBufferPrototype.readInt8 = function(offset) {\r\n var relative = typeof offset === 'undefined';\n if (relative) offset = this.offset;\n if (!this.noAssert) {\r\n if (typeof offset !== 'number' || offset % 1 !== 0)\n throw TypeError(\"Illegal offset: \"+offset+\" (not an integer)\");\n offset >>>= 0;\n if (offset < 0 || offset + 1 > this.buffer.length)\n throw RangeError(\"Illegal offset: 0 <= \"+offset+\" (+\"+1+\") <= \"+this.buffer.length);\n }\r\n var value = this.buffer[offset];\r\n if ((value & 0x80) === 0x80) value = -(0xFF - value + 1); // Cast to signed\r\n if (relative) this.offset += 1;\n return value;\r\n };\r\n\r\n /**\r\n * Reads an 8bit signed integer. This is an alias of {@link ByteBuffer#readInt8}.\r\n * @function\r\n * @param {number=} offset Offset to read from. Will use and advance {@link ByteBuffer#offset} by `1` if omitted.\r\n * @returns {number} Value read\r\n * @expose\r\n */\r\n ByteBufferPrototype.readByte = ByteBufferPrototype.readInt8;\r\n\r\n /**\r\n * Writes an 8bit unsigned integer.\r\n * @param {number} value Value to write\r\n * @param {number=} offset Offset to write to. Will use and advance {@link ByteBuffer#offset} by `1` if omitted.\r\n * @returns {!ByteBuffer} this\r\n * @expose\r\n */\r\n ByteBufferPrototype.writeUint8 = function(value, offset) {\r\n var relative = typeof offset === 'undefined';\n if (relative) offset = this.offset;\n if (!this.noAssert) {\r\n if (typeof value !== 'number' || value % 1 !== 0)\n throw TypeError(\"Illegal value: \"+value+\" (not an integer)\");\n value >>>= 0;\n if (typeof offset !== 'number' || offset % 1 !== 0)\n throw TypeError(\"Illegal offset: \"+offset+\" (not an integer)\");\n offset >>>= 0;\n if (offset < 0 || offset + 0 > this.buffer.length)\n throw RangeError(\"Illegal offset: 0 <= \"+offset+\" (+\"+0+\") <= \"+this.buffer.length);\n }\r\n offset += 1;\n var capacity1 = this.buffer.length;\n if (offset > capacity1)\n this.resize((capacity1 *= 2) > offset ? capacity1 : offset);\n offset -= 1;\n this.buffer[offset] = value;\r\n if (relative) this.offset += 1;\n return this;\r\n };\r\n\r\n /**\r\n * Writes an 8bit unsigned integer. This is an alias of {@link ByteBuffer#writeUint8}.\r\n * @function\r\n * @param {number} value Value to write\r\n * @param {number=} offset Offset to write to. Will use and advance {@link ByteBuffer#offset} by `1` if omitted.\r\n * @returns {!ByteBuffer} this\r\n * @expose\r\n */\r\n ByteBufferPrototype.writeUInt8 = ByteBufferPrototype.writeUint8;\r\n\r\n /**\r\n * Reads an 8bit unsigned integer.\r\n * @param {number=} offset Offset to read from. Will use and advance {@link ByteBuffer#offset} by `1` if omitted.\r\n * @returns {number} Value read\r\n * @expose\r\n */\r\n ByteBufferPrototype.readUint8 = function(offset) {\r\n var relative = typeof offset === 'undefined';\n if (relative) offset = this.offset;\n if (!this.noAssert) {\r\n if (typeof offset !== 'number' || offset % 1 !== 0)\n throw TypeError(\"Illegal offset: \"+offset+\" (not an integer)\");\n offset >>>= 0;\n if (offset < 0 || offset + 1 > this.buffer.length)\n throw RangeError(\"Illegal offset: 0 <= \"+offset+\" (+\"+1+\") <= \"+this.buffer.length);\n }\r\n var value = this.buffer[offset];\r\n if (relative) this.offset += 1;\n return value;\r\n };\r\n\r\n /**\r\n * Reads an 8bit unsigned integer. This is an alias of {@link ByteBuffer#readUint8}.\r\n * @function\r\n * @param {number=} offset Offset to read from. Will use and advance {@link ByteBuffer#offset} by `1` if omitted.\r\n * @returns {number} Value read\r\n * @expose\r\n */\r\n ByteBufferPrototype.readUInt8 = ByteBufferPrototype.readUint8;\r\n\r\n // types/ints/int16\r\n\r\n /**\r\n * Writes a 16bit signed integer.\r\n * @param {number} value Value to write\r\n * @param {number=} offset Offset to write to. Will use and advance {@link ByteBuffer#offset} by `2` if omitted.\r\n * @throws {TypeError} If `offset` or `value` is not a valid number\r\n * @throws {RangeError} If `offset` is out of bounds\r\n * @expose\r\n */\r\n ByteBufferPrototype.writeInt16 = function(value, offset) {\r\n var relative = typeof offset === 'undefined';\n if (relative) offset = this.offset;\n if (!this.noAssert) {\r\n if (typeof value !== 'number' || value % 1 !== 0)\n throw TypeError(\"Illegal value: \"+value+\" (not an integer)\");\n value |= 0;\n if (typeof offset !== 'number' || offset % 1 !== 0)\n throw TypeError(\"Illegal offset: \"+offset+\" (not an integer)\");\n offset >>>= 0;\n if (offset < 0 || offset + 0 > this.buffer.length)\n throw RangeError(\"Illegal offset: 0 <= \"+offset+\" (+\"+0+\") <= \"+this.buffer.length);\n }\r\n offset += 2;\n var capacity2 = this.buffer.length;\n if (offset > capacity2)\n this.resize((capacity2 *= 2) > offset ? capacity2 : offset);\n offset -= 2;\n if (this.littleEndian) {\r\n this.buffer[offset+1] = (value & 0xFF00) >>> 8;\r\n this.buffer[offset ] = value & 0x00FF;\r\n } else {\r\n this.buffer[offset] = (value & 0xFF00) >>> 8;\r\n this.buffer[offset+1] = value & 0x00FF;\r\n }\r\n if (relative) this.offset += 2;\n return this;\r\n };\r\n\r\n /**\r\n * Writes a 16bit signed integer. This is an alias of {@link ByteBuffer#writeInt16}.\r\n * @function\r\n * @param {number} value Value to write\r\n * @param {number=} offset Offset to write to. Will use and advance {@link ByteBuffer#offset} by `2` if omitted.\r\n * @throws {TypeError} If `offset` or `value` is not a valid number\r\n * @throws {RangeError} If `offset` is out of bounds\r\n * @expose\r\n */\r\n ByteBufferPrototype.writeShort = ByteBufferPrototype.writeInt16;\r\n\r\n /**\r\n * Reads a 16bit signed integer.\r\n * @param {number=} offset Offset to read from. Will use and advance {@link ByteBuffer#offset} by `2` if omitted.\r\n * @returns {number} Value read\r\n * @throws {TypeError} If `offset` is not a valid number\r\n * @throws {RangeError} If `offset` is out of bounds\r\n * @expose\r\n */\r\n ByteBufferPrototype.readInt16 = function(offset) {\r\n var relative = typeof offset === 'undefined';\n if (relative) offset = this.offset;\n if (!this.noAssert) {\r\n if (typeof offset !== 'number' || offset % 1 !== 0)\n throw TypeError(\"Illegal offset: \"+offset+\" (not an integer)\");\n offset >>>= 0;\n if (offset < 0 || offset + 2 > this.buffer.length)\n throw RangeError(\"Illegal offset: 0 <= \"+offset+\" (+\"+2+\") <= \"+this.buffer.length);\n }\r\n var value = 0;\r\n if (this.littleEndian) {\r\n value = this.buffer[offset ];\r\n value |= this.buffer[offset+1] << 8;\r\n } else {\r\n value = this.buffer[offset ] << 8;\r\n value |= this.buffer[offset+1];\r\n }\r\n if ((value & 0x8000) === 0x8000) value = -(0xFFFF - value + 1); // Cast to signed\r\n if (relative) this.offset += 2;\n return value;\r\n };\r\n\r\n /**\r\n * Reads a 16bit signed integer. This is an alias of {@link ByteBuffer#readInt16}.\r\n * @function\r\n * @param {number=} offset Offset to read from. Will use and advance {@link ByteBuffer#offset} by `2` if omitted.\r\n * @returns {number} Value read\r\n * @throws {TypeError} If `offset` is not a valid number\r\n * @throws {RangeError} If `offset` is out of bounds\r\n * @expose\r\n */\r\n ByteBufferPrototype.readShort = ByteBufferPrototype.readInt16;\r\n\r\n /**\r\n * Writes a 16bit unsigned integer.\r\n * @param {number} value Value to write\r\n * @param {number=} offset Offset to write to. Will use and advance {@link ByteBuffer#offset} by `2` if omitted.\r\n * @throws {TypeError} If `offset` or `value` is not a valid number\r\n * @throws {RangeError} If `offset` is out of bounds\r\n * @expose\r\n */\r\n ByteBufferPrototype.writeUint16 = function(value, offset) {\r\n var relative = typeof offset === 'undefined';\n if (relative) offset = this.offset;\n if (!this.noAssert) {\r\n if (typeof value !== 'number' || value % 1 !== 0)\n throw TypeError(\"Illegal value: \"+value+\" (not an integer)\");\n value >>>= 0;\n if (typeof offset !== 'number' || offset % 1 !== 0)\n throw TypeError(\"Illegal offset: \"+offset+\" (not an integer)\");\n offset >>>= 0;\n if (offset < 0 || offset + 0 > this.buffer.length)\n throw RangeError(\"Illegal offset: 0 <= \"+offset+\" (+\"+0+\") <= \"+this.buffer.length);\n }\r\n offset += 2;\n var capacity3 = this.buffer.length;\n if (offset > capacity3)\n this.resize((capacity3 *= 2) > offset ? capacity3 : offset);\n offset -= 2;\n if (this.littleEndian) {\r\n this.buffer[offset+1] = (value & 0xFF00) >>> 8;\r\n this.buffer[offset ] = value & 0x00FF;\r\n } else {\r\n this.buffer[offset] = (value & 0xFF00) >>> 8;\r\n this.buffer[offset+1] = value & 0x00FF;\r\n }\r\n if (relative) this.offset += 2;\n return this;\r\n };\r\n\r\n /**\r\n * Writes a 16bit unsigned integer. This is an alias of {@link ByteBuffer#writeUint16}.\r\n * @function\r\n * @param {number} value Value to write\r\n * @param {number=} offset Offset to write to. Will use and advance {@link ByteBuffer#offset} by `2` if omitted.\r\n * @throws {TypeError} If `offset` or `value` is not a valid number\r\n * @throws {RangeError} If `offset` is out of bounds\r\n * @expose\r\n */\r\n ByteBufferPrototype.writeUInt16 = ByteBufferPrototype.writeUint16;\r\n\r\n /**\r\n * Reads a 16bit unsigned integer.\r\n * @param {number=} offset Offset to read from. Will use and advance {@link ByteBuffer#offset} by `2` if omitted.\r\n * @returns {number} Value read\r\n * @throws {TypeError} If `offset` is not a valid number\r\n * @throws {RangeError} If `offset` is out of bounds\r\n * @expose\r\n */\r\n ByteBufferPrototype.readUint16 = function(offset) {\r\n var relative = typeof offset === 'undefined';\n if (relative) offset = this.offset;\n if (!this.noAssert) {\r\n if (typeof offset !== 'number' || offset % 1 !== 0)\n throw TypeError(\"Illegal offset: \"+offset+\" (not an integer)\");\n offset >>>= 0;\n if (offset < 0 || offset + 2 > this.buffer.length)\n throw RangeError(\"Illegal offset: 0 <= \"+offset+\" (+\"+2+\") <= \"+this.buffer.length);\n }\r\n var value = 0;\r\n if (this.littleEndian) {\r\n value = this.buffer[offset ];\r\n value |= this.buffer[offset+1] << 8;\r\n } else {\r\n value = this.buffer[offset ] << 8;\r\n value |= this.buffer[offset+1];\r\n }\r\n if (relative) this.offset += 2;\n return value;\r\n };\r\n\r\n /**\r\n * Reads a 16bit unsigned integer. This is an alias of {@link ByteBuffer#readUint16}.\r\n * @function\r\n * @param {number=} offset Offset to read from. Will use and advance {@link ByteBuffer#offset} by `2` if omitted.\r\n * @returns {number} Value read\r\n * @throws {TypeError} If `offset` is not a valid number\r\n * @throws {RangeError} If `offset` is out of bounds\r\n * @expose\r\n */\r\n ByteBufferPrototype.readUInt16 = ByteBufferPrototype.readUint16;\r\n\r\n // types/ints/int32\r\n\r\n /**\r\n * Writes a 32bit signed integer.\r\n * @param {number} value Value to write\r\n * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by `4` if omitted.\r\n * @expose\r\n */\r\n ByteBufferPrototype.writeInt32 = function(value, offset) {\r\n var relative = typeof offset === 'undefined';\n if (relative) offset = this.offset;\n if (!this.noAssert) {\r\n if (typeof value !== 'number' || value % 1 !== 0)\n throw TypeError(\"Illegal value: \"+value+\" (not an integer)\");\n value |= 0;\n if (typeof offset !== 'number' || offset % 1 !== 0)\n throw TypeError(\"Illegal offset: \"+offset+\" (not an integer)\");\n offset >>>= 0;\n if (offset < 0 || offset + 0 > this.buffer.length)\n throw RangeError(\"Illegal offset: 0 <= \"+offset+\" (+\"+0+\") <= \"+this.buffer.length);\n }\r\n offset += 4;\n var capacity4 = this.buffer.length;\n if (offset > capacity4)\n this.resize((capacity4 *= 2) > offset ? capacity4 : offset);\n offset -= 4;\n if (this.littleEndian) {\n this.buffer[offset+3] = (value >>> 24) & 0xFF;\n this.buffer[offset+2] = (value >>> 16) & 0xFF;\n this.buffer[offset+1] = (value >>> 8) & 0xFF;\n this.buffer[offset ] = value & 0xFF;\n } else {\n this.buffer[offset ] = (value >>> 24) & 0xFF;\n this.buffer[offset+1] = (value >>> 16) & 0xFF;\n this.buffer[offset+2] = (value >>> 8) & 0xFF;\n this.buffer[offset+3] = value & 0xFF;\n }\n if (relative) this.offset += 4;\n return this;\r\n };\r\n\r\n /**\r\n * Writes a 32bit signed integer. This is an alias of {@link ByteBuffer#writeInt32}.\r\n * @param {number} value Value to write\r\n * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by `4` if omitted.\r\n * @expose\r\n */\r\n ByteBufferPrototype.writeInt = ByteBufferPrototype.writeInt32;\r\n\r\n /**\r\n * Reads a 32bit signed integer.\r\n * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by `4` if omitted.\r\n * @returns {number} Value read\r\n * @expose\r\n */\r\n ByteBufferPrototype.readInt32 = function(offset) {\r\n var relative = typeof offset === 'undefined';\n if (relative) offset = this.offset;\n if (!this.noAssert) {\r\n if (typeof offset !== 'number' || offset % 1 !== 0)\n throw TypeError(\"Illegal offset: \"+offset+\" (not an integer)\");\n offset >>>= 0;\n if (offset < 0 || offset + 4 > this.buffer.length)\n throw RangeError(\"Illegal offset: 0 <= \"+offset+\" (+\"+4+\") <= \"+this.buffer.length);\n }\r\n var value = 0;\r\n if (this.littleEndian) {\n value = this.buffer[offset+2] << 16;\n value |= this.buffer[offset+1] << 8;\n value |= this.buffer[offset ];\n value += this.buffer[offset+3] << 24 >>> 0;\n } else {\n value = this.buffer[offset+1] << 16;\n value |= this.buffer[offset+2] << 8;\n value |= this.buffer[offset+3];\n value += this.buffer[offset ] << 24 >>> 0;\n }\n value |= 0; // Cast to signed\r\n if (relative) this.offset += 4;\n return value;\r\n };\r\n\r\n /**\r\n * Reads a 32bit signed integer. This is an alias of {@link ByteBuffer#readInt32}.\r\n * @param {number=} offset Offset to read from. Will use and advance {@link ByteBuffer#offset} by `4` if omitted.\r\n * @returns {number} Value read\r\n * @expose\r\n */\r\n ByteBufferPrototype.readInt = ByteBufferPrototype.readInt32;\r\n\r\n /**\r\n * Writes a 32bit unsigned integer.\r\n * @param {number} value Value to write\r\n * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by `4` if omitted.\r\n * @expose\r\n */\r\n ByteBufferPrototype.writeUint32 = function(value, offset) {\r\n var relative = typeof offset === 'undefined';\n if (relative) offset = this.offset;\n if (!this.noAssert) {\r\n if (typeof value !== 'number' || value % 1 !== 0)\n throw TypeError(\"Illegal value: \"+value+\" (not an integer)\");\n value >>>= 0;\n if (typeof offset !== 'number' || offset % 1 !== 0)\n throw TypeError(\"Illegal offset: \"+offset+\" (not an integer)\");\n offset >>>= 0;\n if (offset < 0 || offset + 0 > this.buffer.length)\n throw RangeError(\"Illegal offset: 0 <= \"+offset+\" (+\"+0+\") <= \"+this.buffer.length);\n }\r\n offset += 4;\n var capacity5 = this.buffer.length;\n if (offset > capacity5)\n this.resize((capacity5 *= 2) > offset ? capacity5 : offset);\n offset -= 4;\n if (this.littleEndian) {\n this.buffer[offset+3] = (value >>> 24) & 0xFF;\n this.buffer[offset+2] = (value >>> 16) & 0xFF;\n this.buffer[offset+1] = (value >>> 8) & 0xFF;\n this.buffer[offset ] = value & 0xFF;\n } else {\n this.buffer[offset ] = (value >>> 24) & 0xFF;\n this.buffer[offset+1] = (value >>> 16) & 0xFF;\n this.buffer[offset+2] = (value >>> 8) & 0xFF;\n this.buffer[offset+3] = value & 0xFF;\n }\n if (relative) this.offset += 4;\n return this;\r\n };\r\n\r\n /**\r\n * Writes a 32bit unsigned integer. This is an alias of {@link ByteBuffer#writeUint32}.\r\n * @function\r\n * @param {number} value Value to write\r\n * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by `4` if omitted.\r\n * @expose\r\n */\r\n ByteBufferPrototype.writeUInt32 = ByteBufferPrototype.writeUint32;\r\n\r\n /**\r\n * Reads a 32bit unsigned integer.\r\n * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by `4` if omitted.\r\n * @returns {number} Value read\r\n * @expose\r\n */\r\n ByteBufferPrototype.readUint32 = function(offset) {\r\n var relative = typeof offset === 'undefined';\n if (relative) offset = this.offset;\n if (!this.noAssert) {\r\n if (typeof offset !== 'number' || offset % 1 !== 0)\n throw TypeError(\"Illegal offset: \"+offset+\" (not an integer)\");\n offset >>>= 0;\n if (offset < 0 || offset + 4 > this.buffer.length)\n throw RangeError(\"Illegal offset: 0 <= \"+offset+\" (+\"+4+\") <= \"+this.buffer.length);\n }\r\n var value = 0;\r\n if (this.littleEndian) {\n value = this.buffer[offset+2] << 16;\n value |= this.buffer[offset+1] << 8;\n value |= this.buffer[offset ];\n value += this.buffer[offset+3] << 24 >>> 0;\n } else {\n value = this.buffer[offset+1] << 16;\n value |= this.buffer[offset+2] << 8;\n value |= this.buffer[offset+3];\n value += this.buffer[offset ] << 24 >>> 0;\n }\n if (relative) this.offset += 4;\n return value;\r\n };\r\n\r\n /**\r\n * Reads a 32bit unsigned integer. This is an alias of {@link ByteBuffer#readUint32}.\r\n * @function\r\n * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by `4` if omitted.\r\n * @returns {number} Value read\r\n * @expose\r\n */\r\n ByteBufferPrototype.readUInt32 = ByteBufferPrototype.readUint32;\r\n\r\n // types/ints/int64\r\n\r\n if (Long) {\r\n\r\n /**\r\n * Writes a 64bit signed integer.\r\n * @param {number|!Long} value Value to write\r\n * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by `8` if omitted.\r\n * @returns {!ByteBuffer} this\r\n * @expose\r\n */\r\n ByteBufferPrototype.writeInt64 = function(value, offset) {\r\n var relative = typeof offset === 'undefined';\n if (relative) offset = this.offset;\n if (!this.noAssert) {\r\n if (typeof value === 'number')\n value = Long.fromNumber(value);\n else if (typeof value === 'string')\n value = Long.fromString(value);\n else if (!(value && value instanceof Long))\n throw TypeError(\"Illegal value: \"+value+\" (not an integer or Long)\");\n if (typeof offset !== 'number' || offset % 1 !== 0)\n throw TypeError(\"Illegal offset: \"+offset+\" (not an integer)\");\n offset >>>= 0;\n if (offset < 0 || offset + 0 > this.buffer.length)\n throw RangeError(\"Illegal offset: 0 <= \"+offset+\" (+\"+0+\") <= \"+this.buffer.length);\n }\r\n if (typeof value === 'number')\n value = Long.fromNumber(value);\n else if (typeof value === 'string')\n value = Long.fromString(value);\n offset += 8;\n var capacity6 = this.buffer.length;\n if (offset > capacity6)\n this.resize((capacity6 *= 2) > offset ? capacity6 : offset);\n offset -= 8;\n var lo = value.low,\r\n hi = value.high;\r\n if (this.littleEndian) {\r\n this.buffer[offset+3] = (lo >>> 24) & 0xFF;\n this.buffer[offset+2] = (lo >>> 16) & 0xFF;\n this.buffer[offset+1] = (lo >>> 8) & 0xFF;\n this.buffer[offset ] = lo & 0xFF;\n offset += 4;\r\n this.buffer[offset+3] = (hi >>> 24) & 0xFF;\n this.buffer[offset+2] = (hi >>> 16) & 0xFF;\n this.buffer[offset+1] = (hi >>> 8) & 0xFF;\n this.buffer[offset ] = hi & 0xFF;\n } else {\r\n this.buffer[offset ] = (hi >>> 24) & 0xFF;\n this.buffer[offset+1] = (hi >>> 16) & 0xFF;\n this.buffer[offset+2] = (hi >>> 8) & 0xFF;\n this.buffer[offset+3] = hi & 0xFF;\n offset += 4;\r\n this.buffer[offset ] = (lo >>> 24) & 0xFF;\n this.buffer[offset+1] = (lo >>> 16) & 0xFF;\n this.buffer[offset+2] = (lo >>> 8) & 0xFF;\n this.buffer[offset+3] = lo & 0xFF;\n }\r\n if (relative) this.offset += 8;\n return this;\r\n };\r\n\r\n /**\r\n * Writes a 64bit signed integer. This is an alias of {@link ByteBuffer#writeInt64}.\r\n * @param {number|!Long} value Value to write\r\n * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by `8` if omitted.\r\n * @returns {!ByteBuffer} this\r\n * @expose\r\n */\r\n ByteBufferPrototype.writeLong = ByteBufferPrototype.writeInt64;\r\n\r\n /**\r\n * Reads a 64bit signed integer.\r\n * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by `8` if omitted.\r\n * @returns {!Long}\r\n * @expose\r\n */\r\n ByteBufferPrototype.readInt64 = function(offset) {\r\n var relative = typeof offset === 'undefined';\n if (relative) offset = this.offset;\n if (!this.noAssert) {\r\n if (typeof offset !== 'number' || offset % 1 !== 0)\n throw TypeError(\"Illegal offset: \"+offset+\" (not an integer)\");\n offset >>>= 0;\n if (offset < 0 || offset + 8 > this.buffer.length)\n throw RangeError(\"Illegal offset: 0 <= \"+offset+\" (+\"+8+\") <= \"+this.buffer.length);\n }\r\n var lo = 0,\r\n hi = 0;\r\n if (this.littleEndian) {\r\n lo = this.buffer[offset+2] << 16;\n lo |= this.buffer[offset+1] << 8;\n lo |= this.buffer[offset ];\n lo += this.buffer[offset+3] << 24 >>> 0;\n offset += 4;\r\n hi = this.buffer[offset+2] << 16;\n hi |= this.buffer[offset+1] << 8;\n hi |= this.buffer[offset ];\n hi += this.buffer[offset+3] << 24 >>> 0;\n } else {\r\n hi = this.buffer[offset+1] << 16;\n hi |= this.buffer[offset+2] << 8;\n hi |= this.buffer[offset+3];\n hi += this.buffer[offset ] << 24 >>> 0;\n offset += 4;\r\n lo = this.buffer[offset+1] << 16;\n lo |= this.buffer[offset+2] << 8;\n lo |= this.buffer[offset+3];\n lo += this.buffer[offset ] << 24 >>> 0;\n }\r\n var value = new Long(lo, hi, false);\r\n if (relative) this.offset += 8;\n return value;\r\n };\r\n\r\n /**\r\n * Reads a 64bit signed integer. This is an alias of {@link ByteBuffer#readInt64}.\r\n * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by `8` if omitted.\r\n * @returns {!Long}\r\n * @expose\r\n */\r\n ByteBufferPrototype.readLong = ByteBufferPrototype.readInt64;\r\n\r\n /**\r\n * Writes a 64bit unsigned integer.\r\n * @param {number|!Long} value Value to write\r\n * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by `8` if omitted.\r\n * @returns {!ByteBuffer} this\r\n * @expose\r\n */\r\n ByteBufferPrototype.writeUint64 = function(value, offset) {\r\n var relative = typeof offset === 'undefined';\n if (relative) offset = this.offset;\n if (!this.noAssert) {\r\n if (typeof value === 'number')\n value = Long.fromNumber(value);\n else if (typeof value === 'string')\n value = Long.fromString(value);\n else if (!(value && value instanceof Long))\n throw TypeError(\"Illegal value: \"+value+\" (not an integer or Long)\");\n if (typeof offset !== 'number' || offset % 1 !== 0)\n throw TypeError(\"Illegal offset: \"+offset+\" (not an integer)\");\n offset >>>= 0;\n if (offset < 0 || offset + 0 > this.buffer.length)\n throw RangeError(\"Illegal offset: 0 <= \"+offset+\" (+\"+0+\") <= \"+this.buffer.length);\n }\r\n if (typeof value === 'number')\n value = Long.fromNumber(value);\n else if (typeof value === 'string')\n value = Long.fromString(value);\n offset += 8;\n var capacity7 = this.buffer.length;\n if (offset > capacity7)\n this.resize((capacity7 *= 2) > offset ? capacity7 : offset);\n offset -= 8;\n var lo = value.low,\r\n hi = value.high;\r\n if (this.littleEndian) {\r\n this.buffer[offset+3] = (lo >>> 24) & 0xFF;\n this.buffer[offset+2] = (lo >>> 16) & 0xFF;\n this.buffer[offset+1] = (lo >>> 8) & 0xFF;\n this.buffer[offset ] = lo & 0xFF;\n offset += 4;\r\n this.buffer[offset+3] = (hi >>> 24) & 0xFF;\n this.buffer[offset+2] = (hi >>> 16) & 0xFF;\n this.buffer[offset+1] = (hi >>> 8) & 0xFF;\n this.buffer[offset ] = hi & 0xFF;\n } else {\r\n this.buffer[offset ] = (hi >>> 24) & 0xFF;\n this.buffer[offset+1] = (hi >>> 16) & 0xFF;\n this.buffer[offset+2] = (hi >>> 8) & 0xFF;\n this.buffer[offset+3] = hi & 0xFF;\n offset += 4;\r\n this.buffer[offset ] = (lo >>> 24) & 0xFF;\n this.buffer[offset+1] = (lo >>> 16) & 0xFF;\n this.buffer[offset+2] = (lo >>> 8) & 0xFF;\n this.buffer[offset+3] = lo & 0xFF;\n }\r\n if (relative) this.offset += 8;\n return this;\r\n };\r\n\r\n /**\r\n * Writes a 64bit unsigned integer. This is an alias of {@link ByteBuffer#writeUint64}.\r\n * @function\r\n * @param {number|!Long} value Value to write\r\n * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by `8` if omitted.\r\n * @returns {!ByteBuffer} this\r\n * @expose\r\n */\r\n ByteBufferPrototype.writeUInt64 = ByteBufferPrototype.writeUint64;\r\n\r\n /**\r\n * Reads a 64bit unsigned integer.\r\n * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by `8` if omitted.\r\n * @returns {!Long}\r\n * @expose\r\n */\r\n ByteBufferPrototype.readUint64 = function(offset) {\r\n var relative = typeof offset === 'undefined';\n if (relative) offset = this.offset;\n if (!this.noAssert) {\r\n if (typeof offset !== 'number' || offset % 1 !== 0)\n throw TypeError(\"Illegal offset: \"+offset+\" (not an integer)\");\n offset >>>= 0;\n if (offset < 0 || offset + 8 > this.buffer.length)\n throw RangeError(\"Illegal offset: 0 <= \"+offset+\" (+\"+8+\") <= \"+this.buffer.length);\n }\r\n var lo = 0,\r\n hi = 0;\r\n if (this.littleEndian) {\r\n lo = this.buffer[offset+2] << 16;\n lo |= this.buffer[offset+1] << 8;\n lo |= this.buffer[offset ];\n lo += this.buffer[offset+3] << 24 >>> 0;\n offset += 4;\r\n hi = this.buffer[offset+2] << 16;\n hi |= this.buffer[offset+1] << 8;\n hi |= this.buffer[offset ];\n hi += this.buffer[offset+3] << 24 >>> 0;\n } else {\r\n hi = this.buffer[offset+1] << 16;\n hi |= this.buffer[offset+2] << 8;\n hi |= this.buffer[offset+3];\n hi += this.buffer[offset ] << 24 >>> 0;\n offset += 4;\r\n lo = this.buffer[offset+1] << 16;\n lo |= this.buffer[offset+2] << 8;\n lo |= this.buffer[offset+3];\n lo += this.buffer[offset ] << 24 >>> 0;\n }\r\n var value = new Long(lo, hi, true);\r\n if (relative) this.offset += 8;\n return value;\r\n };\r\n\r\n /**\r\n * Reads a 64bit unsigned integer. This is an alias of {@link ByteBuffer#readUint64}.\r\n * @function\r\n * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by `8` if omitted.\r\n * @returns {!Long}\r\n * @expose\r\n */\r\n ByteBufferPrototype.readUInt64 = ByteBufferPrototype.readUint64;\r\n\r\n } // Long\r\n\r\n\r\n // types/floats/float32\r\n\r\n /**\r\n * Writes a 32bit float.\r\n * @param {number} value Value to write\r\n * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by `4` if omitted.\r\n * @returns {!ByteBuffer} this\r\n * @expose\r\n */\r\n ByteBufferPrototype.writeFloat32 = function(value, offset) {\r\n var relative = typeof offset === 'undefined';\n if (relative) offset = this.offset;\n if (!this.noAssert) {\r\n if (typeof value !== 'number')\r\n throw TypeError(\"Illegal value: \"+value+\" (not a number)\");\r\n if (typeof offset !== 'number' || offset % 1 !== 0)\n throw TypeError(\"Illegal offset: \"+offset+\" (not an integer)\");\n offset >>>= 0;\n if (offset < 0 || offset + 0 > this.buffer.length)\n throw RangeError(\"Illegal offset: 0 <= \"+offset+\" (+\"+0+\") <= \"+this.buffer.length);\n }\r\n offset += 4;\n var capacity8 = this.buffer.length;\n if (offset > capacity8)\n this.resize((capacity8 *= 2) > offset ? capacity8 : offset);\n offset -= 4;\n this.littleEndian\r\n ? this.buffer.writeFloatLE(value, offset, true)\r\n : this.buffer.writeFloatBE(value, offset, true);\r\n if (relative) this.offset += 4;\n return this;\r\n };\r\n\r\n /**\r\n * Writes a 32bit float. This is an alias of {@link ByteBuffer#writeFloat32}.\r\n * @function\r\n * @param {number} value Value to write\r\n * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by `4` if omitted.\r\n * @returns {!ByteBuffer} this\r\n * @expose\r\n */\r\n ByteBufferPrototype.writeFloat = ByteBufferPrototype.writeFloat32;\r\n\r\n /**\r\n * Reads a 32bit float.\r\n * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by `4` if omitted.\r\n * @returns {number}\r\n * @expose\r\n */\r\n ByteBufferPrototype.readFloat32 = function(offset) {\r\n var relative = typeof offset === 'undefined';\n if (relative) offset = this.offset;\n if (!this.noAssert) {\r\n if (typeof offset !== 'number' || offset % 1 !== 0)\n throw TypeError(\"Illegal offset: \"+offset+\" (not an integer)\");\n offset >>>= 0;\n if (offset < 0 || offset + 4 > this.buffer.length)\n throw RangeError(\"Illegal offset: 0 <= \"+offset+\" (+\"+4+\") <= \"+this.buffer.length);\n }\r\n var value = this.littleEndian\r\n ? this.buffer.readFloatLE(offset, true)\r\n : this.buffer.readFloatBE(offset, true);\r\n if (relative) this.offset += 4;\n return value;\r\n };\r\n\r\n /**\r\n * Reads a 32bit float. This is an alias of {@link ByteBuffer#readFloat32}.\r\n * @function\r\n * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by `4` if omitted.\r\n * @returns {number}\r\n * @expose\r\n */\r\n ByteBufferPrototype.readFloat = ByteBufferPrototype.readFloat32;\r\n\r\n // types/floats/float64\r\n\r\n /**\r\n * Writes a 64bit float.\r\n * @param {number} value Value to write\r\n * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by `8` if omitted.\r\n * @returns {!ByteBuffer} this\r\n * @expose\r\n */\r\n ByteBufferPrototype.writeFloat64 = function(value, offset) {\r\n var relative = typeof offset === 'undefined';\n if (relative) offset = this.offset;\n if (!this.noAssert) {\r\n if (typeof value !== 'number')\r\n throw TypeError(\"Illegal value: \"+value+\" (not a number)\");\r\n if (typeof offset !== 'number' || offset % 1 !== 0)\n throw TypeError(\"Illegal offset: \"+offset+\" (not an integer)\");\n offset >>>= 0;\n if (offset < 0 || offset + 0 > this.buffer.length)\n throw RangeError(\"Illegal offset: 0 <= \"+offset+\" (+\"+0+\") <= \"+this.buffer.length);\n }\r\n offset += 8;\n var capacity9 = this.buffer.length;\n if (offset > capacity9)\n this.resize((capacity9 *= 2) > offset ? capacity9 : offset);\n offset -= 8;\n this.littleEndian\r\n ? this.buffer.writeDoubleLE(value, offset, true)\r\n : this.buffer.writeDoubleBE(value, offset, true);\r\n if (relative) this.offset += 8;\n return this;\r\n };\r\n\r\n /**\r\n * Writes a 64bit float. This is an alias of {@link ByteBuffer#writeFloat64}.\r\n * @function\r\n * @param {number} value Value to write\r\n * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by `8` if omitted.\r\n * @returns {!ByteBuffer} this\r\n * @expose\r\n */\r\n ByteBufferPrototype.writeDouble = ByteBufferPrototype.writeFloat64;\r\n\r\n /**\r\n * Reads a 64bit float.\r\n * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by `8` if omitted.\r\n * @returns {number}\r\n * @expose\r\n */\r\n ByteBufferPrototype.readFloat64 = function(offset) {\r\n var relative = typeof offset === 'undefined';\n if (relative) offset = this.offset;\n if (!this.noAssert) {\r\n if (typeof offset !== 'number' || offset % 1 !== 0)\n throw TypeError(\"Illegal offset: \"+offset+\" (not an integer)\");\n offset >>>= 0;\n if (offset < 0 || offset + 8 > this.buffer.length)\n throw RangeError(\"Illegal offset: 0 <= \"+offset+\" (+\"+8+\") <= \"+this.buffer.length);\n }\r\n var value = this.littleEndian\r\n ? this.buffer.readDoubleLE(offset, true)\r\n : this.buffer.readDoubleBE(offset, true);\r\n if (relative) this.offset += 8;\n return value;\r\n };\r\n\r\n /**\r\n * Reads a 64bit float. This is an alias of {@link ByteBuffer#readFloat64}.\r\n * @function\r\n * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by `8` if omitted.\r\n * @returns {number}\r\n * @expose\r\n */\r\n ByteBufferPrototype.readDouble = ByteBufferPrototype.readFloat64;\r\n\r\n\r\n // types/varints/varint32\r\n\r\n /**\r\n * Maximum number of bytes required to store a 32bit base 128 variable-length integer.\r\n * @type {number}\r\n * @const\r\n * @expose\r\n */\r\n ByteBuffer.MAX_VARINT32_BYTES = 5;\r\n\r\n /**\r\n * Calculates the actual number of bytes required to store a 32bit base 128 variable-length integer.\r\n * @param {number} value Value to encode\r\n * @returns {number} Number of bytes required. Capped to {@link ByteBuffer.MAX_VARINT32_BYTES}\r\n * @expose\r\n */\r\n ByteBuffer.calculateVarint32 = function(value) {\r\n // ref: src/google/protobuf/io/coded_stream.cc\r\n value = value >>> 0;\r\n if (value < 1 << 7 ) return 1;\r\n else if (value < 1 << 14) return 2;\r\n else if (value < 1 << 21) return 3;\r\n else if (value < 1 << 28) return 4;\r\n else return 5;\r\n };\r\n\r\n /**\r\n * Zigzag encodes a signed 32bit integer so that it can be effectively used with varint encoding.\r\n * @param {number} n Signed 32bit integer\r\n * @returns {number} Unsigned zigzag encoded 32bit integer\r\n * @expose\r\n */\r\n ByteBuffer.zigZagEncode32 = function(n) {\r\n return (((n |= 0) << 1) ^ (n >> 31)) >>> 0; // ref: src/google/protobuf/wire_format_lite.h\r\n };\r\n\r\n /**\r\n * Decodes a zigzag encoded signed 32bit integer.\r\n * @param {number} n Unsigned zigzag encoded 32bit integer\r\n * @returns {number} Signed 32bit integer\r\n * @expose\r\n */\r\n ByteBuffer.zigZagDecode32 = function(n) {\r\n return ((n >>> 1) ^ -(n & 1)) | 0; // // ref: src/google/protobuf/wire_format_lite.h\r\n };\r\n\r\n /**\r\n * Writes a 32bit base 128 variable-length integer.\r\n * @param {number} value Value to write\r\n * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by the number of bytes\r\n * written if omitted.\r\n * @returns {!ByteBuffer|number} this if `offset` is omitted, else the actual number of bytes written\r\n * @expose\r\n */\r\n ByteBufferPrototype.writeVarint32 = function(value, offset) {\r\n var relative = typeof offset === 'undefined';\n if (relative) offset = this.offset;\n if (!this.noAssert) {\r\n if (typeof value !== 'number' || value % 1 !== 0)\n throw TypeError(\"Illegal value: \"+value+\" (not an integer)\");\n value |= 0;\n if (typeof offset !== 'number' || offset % 1 !== 0)\n throw TypeError(\"Illegal offset: \"+offset+\" (not an integer)\");\n offset >>>= 0;\n if (offset < 0 || offset + 0 > this.buffer.length)\n throw RangeError(\"Illegal offset: 0 <= \"+offset+\" (+\"+0+\") <= \"+this.buffer.length);\n }\r\n var size = ByteBuffer.calculateVarint32(value),\r\n b;\r\n offset += size;\n var capacity10 = this.buffer.length;\n if (offset > capacity10)\n this.resize((capacity10 *= 2) > offset ? capacity10 : offset);\n offset -= size;\n value >>>= 0;\r\n while (value >= 0x80) {\r\n b = (value & 0x7f) | 0x80;\r\n this.buffer[offset++] = b;\r\n value >>>= 7;\r\n }\r\n this.buffer[offset++] = value;\r\n if (relative) {\r\n this.offset = offset;\r\n return this;\r\n }\r\n return size;\r\n };\r\n\r\n /**\r\n * Writes a zig-zag encoded (signed) 32bit base 128 variable-length integer.\r\n * @param {number} value Value to write\r\n * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by the number of bytes\r\n * written if omitted.\r\n * @returns {!ByteBuffer|number} this if `offset` is omitted, else the actual number of bytes written\r\n * @expose\r\n */\r\n ByteBufferPrototype.writeVarint32ZigZag = function(value, offset) {\r\n return this.writeVarint32(ByteBuffer.zigZagEncode32(value), offset);\r\n };\r\n\r\n /**\r\n * Reads a 32bit base 128 variable-length integer.\r\n * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by the number of bytes\r\n * written if omitted.\r\n * @returns {number|!{value: number, length: number}} The value read if offset is omitted, else the value read\r\n * and the actual number of bytes read.\r\n * @throws {Error} If it's not a valid varint. Has a property `truncated = true` if there is not enough data available\r\n * to fully decode the varint.\r\n * @expose\r\n */\r\n ByteBufferPrototype.readVarint32 = function(offset) {\r\n var relative = typeof offset === 'undefined';\n if (relative) offset = this.offset;\n if (!this.noAssert) {\r\n if (typeof offset !== 'number' || offset % 1 !== 0)\n throw TypeError(\"Illegal offset: \"+offset+\" (not an integer)\");\n offset >>>= 0;\n if (offset < 0 || offset + 1 > this.buffer.length)\n throw RangeError(\"Illegal offset: 0 <= \"+offset+\" (+\"+1+\") <= \"+this.buffer.length);\n }\r\n var c = 0,\r\n value = 0 >>> 0,\r\n b;\r\n do {\r\n if (!this.noAssert && offset > this.limit) {\r\n var err = Error(\"Truncated\");\r\n err['truncated'] = true;\r\n throw err;\r\n }\r\n b = this.buffer[offset++];\r\n if (c < 5)\r\n value |= (b & 0x7f) << (7*c);\r\n ++c;\r\n } while ((b & 0x80) !== 0);\r\n value |= 0;\r\n if (relative) {\r\n this.offset = offset;\r\n return value;\r\n }\r\n return {\r\n \"value\": value,\r\n \"length\": c\r\n };\r\n };\r\n\r\n /**\r\n * Reads a zig-zag encoded (signed) 32bit base 128 variable-length integer.\r\n * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by the number of bytes\r\n * written if omitted.\r\n * @returns {number|!{value: number, length: number}} The value read if offset is omitted, else the value read\r\n * and the actual number of bytes read.\r\n * @throws {Error} If it's not a valid varint\r\n * @expose\r\n */\r\n ByteBufferPrototype.readVarint32ZigZag = function(offset) {\r\n var val = this.readVarint32(offset);\r\n if (typeof val === 'object')\r\n val[\"value\"] = ByteBuffer.zigZagDecode32(val[\"value\"]);\r\n else\r\n val = ByteBuffer.zigZagDecode32(val);\r\n return val;\r\n };\r\n\r\n // types/varints/varint64\r\n\r\n if (Long) {\r\n\r\n /**\r\n * Maximum number of bytes required to store a 64bit base 128 variable-length integer.\r\n * @type {number}\r\n * @const\r\n * @expose\r\n */\r\n ByteBuffer.MAX_VARINT64_BYTES = 10;\r\n\r\n /**\r\n * Calculates the actual number of bytes required to store a 64bit base 128 variable-length integer.\r\n * @param {number|!Long} value Value to encode\r\n * @returns {number} Number of bytes required. Capped to {@link ByteBuffer.MAX_VARINT64_BYTES}\r\n * @expose\r\n */\r\n ByteBuffer.calculateVarint64 = function(value) {\r\n if (typeof value === 'number')\n value = Long.fromNumber(value);\n else if (typeof value === 'string')\n value = Long.fromString(value);\n // ref: src/google/protobuf/io/coded_stream.cc\r\n var part0 = value.toInt() >>> 0,\r\n part1 = value.shiftRightUnsigned(28).toInt() >>> 0,\r\n part2 = value.shiftRightUnsigned(56).toInt() >>> 0;\r\n if (part2 == 0) {\r\n if (part1 == 0) {\r\n if (part0 < 1 << 14)\r\n return part0 < 1 << 7 ? 1 : 2;\r\n else\r\n return part0 < 1 << 21 ? 3 : 4;\r\n } else {\r\n if (part1 < 1 << 14)\r\n return part1 < 1 << 7 ? 5 : 6;\r\n else\r\n return part1 < 1 << 21 ? 7 : 8;\r\n }\r\n } else\r\n return part2 < 1 << 7 ? 9 : 10;\r\n };\r\n\r\n /**\r\n * Zigzag encodes a signed 64bit integer so that it can be effectively used with varint encoding.\r\n * @param {number|!Long} value Signed long\r\n * @returns {!Long} Unsigned zigzag encoded long\r\n * @expose\r\n */\r\n ByteBuffer.zigZagEncode64 = function(value) {\r\n if (typeof value === 'number')\n value = Long.fromNumber(value, false);\n else if (typeof value === 'string')\n value = Long.fromString(value, false);\n else if (value.unsigned !== false) value = value.toSigned();\n // ref: src/google/protobuf/wire_format_lite.h\r\n return value.shiftLeft(1).xor(value.shiftRight(63)).toUnsigned();\r\n };\r\n\r\n /**\r\n * Decodes a zigzag encoded signed 64bit integer.\r\n * @param {!Long|number} value Unsigned zigzag encoded long or JavaScript number\r\n * @returns {!Long} Signed long\r\n * @expose\r\n */\r\n ByteBuffer.zigZagDecode64 = function(value) {\r\n if (typeof value === 'number')\n value = Long.fromNumber(value, false);\n else if (typeof value === 'string')\n value = Long.fromString(value, false);\n else if (value.unsigned !== false) value = value.toSigned();\n // ref: src/google/protobuf/wire_format_lite.h\r\n return value.shiftRightUnsigned(1).xor(value.and(Long.ONE).toSigned().negate()).toSigned();\r\n };\r\n\r\n /**\r\n * Writes a 64bit base 128 variable-length integer.\r\n * @param {number|Long} value Value to write\r\n * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by the number of bytes\r\n * written if omitted.\r\n * @returns {!ByteBuffer|number} `this` if offset is omitted, else the actual number of bytes written.\r\n * @expose\r\n */\r\n ByteBufferPrototype.writeVarint64 = function(value, offset) {\r\n var relative = typeof offset === 'undefined';\n if (relative) offset = this.offset;\n if (!this.noAssert) {\r\n if (typeof value === 'number')\n value = Long.fromNumber(value);\n else if (typeof value === 'string')\n value = Long.fromString(value);\n else if (!(value && value instanceof Long))\n throw TypeError(\"Illegal value: \"+value+\" (not an integer or Long)\");\n if (typeof offset !== 'number' || offset % 1 !== 0)\n throw TypeError(\"Illegal offset: \"+offset+\" (not an integer)\");\n offset >>>= 0;\n if (offset < 0 || offset + 0 > this.buffer.length)\n throw RangeError(\"Illegal offset: 0 <= \"+offset+\" (+\"+0+\") <= \"+this.buffer.length);\n }\r\n if (typeof value === 'number')\n value = Long.fromNumber(value, false);\n else if (typeof value === 'string')\n value = Long.fromString(value, false);\n else if (value.unsigned !== false) value = value.toSigned();\n var size = ByteBuffer.calculateVarint64(value),\r\n part0 = value.toInt() >>> 0,\r\n part1 = value.shiftRightUnsigned(28).toInt() >>> 0,\r\n part2 = value.shiftRightUnsigned(56).toInt() >>> 0;\r\n offset += size;\n var capacity11 = this.buffer.length;\n if (offset > capacity11)\n this.resize((capacity11 *= 2) > offset ? capacity11 : offset);\n offset -= size;\n switch (size) {\r\n case 10: this.buffer[offset+9] = (part2 >>> 7) & 0x01;\r\n case 9 : this.buffer[offset+8] = size !== 9 ? (part2 ) | 0x80 : (part2 ) & 0x7F;\r\n case 8 : this.buffer[offset+7] = size !== 8 ? (part1 >>> 21) | 0x80 : (part1 >>> 21) & 0x7F;\r\n case 7 : this.buffer[offset+6] = size !== 7 ? (part1 >>> 14) | 0x80 : (part1 >>> 14) & 0x7F;\r\n case 6 : this.buffer[offset+5] = size !== 6 ? (part1 >>> 7) | 0x80 : (part1 >>> 7) & 0x7F;\r\n case 5 : this.buffer[offset+4] = size !== 5 ? (part1 ) | 0x80 : (part1 ) & 0x7F;\r\n case 4 : this.buffer[offset+3] = size !== 4 ? (part0 >>> 21) | 0x80 : (part0 >>> 21) & 0x7F;\r\n case 3 : this.buffer[offset+2] = size !== 3 ? (part0 >>> 14) | 0x80 : (part0 >>> 14) & 0x7F;\r\n case 2 : this.buffer[offset+1] = size !== 2 ? (part0 >>> 7) | 0x80 : (part0 >>> 7) & 0x7F;\r\n case 1 : this.buffer[offset ] = size !== 1 ? (part0 ) | 0x80 : (part0 ) & 0x7F;\r\n }\r\n if (relative) {\r\n this.offset += size;\r\n return this;\r\n } else {\r\n return size;\r\n }\r\n };\r\n\r\n /**\r\n * Writes a zig-zag encoded 64bit base 128 variable-length integer.\r\n * @param {number|Long} value Value to write\r\n * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by the number of bytes\r\n * written if omitted.\r\n * @returns {!ByteBuffer|number} `this` if offset is omitted, else the actual number of bytes written.\r\n * @expose\r\n */\r\n ByteBufferPrototype.writeVarint64ZigZag = function(value, offset) {\r\n return this.writeVarint64(ByteBuffer.zigZagEncode64(value), offset);\r\n };\r\n\r\n /**\r\n * Reads a 64bit base 128 variable-length integer. Requires Long.js.\r\n * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by the number of bytes\r\n * read if omitted.\r\n * @returns {!Long|!{value: Long, length: number}} The value read if offset is omitted, else the value read and\r\n * the actual number of bytes read.\r\n * @throws {Error} If it's not a valid varint\r\n * @expose\r\n */\r\n ByteBufferPrototype.readVarint64 = function(offset) {\r\n var relative = typeof offset === 'undefined';\n if (relative) offset = this.offset;\n if (!this.noAssert) {\r\n if (typeof offset !== 'number' || offset % 1 !== 0)\n throw TypeError(\"Illegal offset: \"+offset+\" (not an integer)\");\n offset >>>= 0;\n if (offset < 0 || offset + 1 > this.buffer.length)\n throw RangeError(\"Illegal offset: 0 <= \"+offset+\" (+\"+1+\") <= \"+this.buffer.length);\n }\r\n // ref: src/google/protobuf/io/coded_stream.cc\r\n var start = offset,\r\n part0 = 0,\r\n part1 = 0,\r\n part2 = 0,\r\n b = 0;\r\n b = this.buffer[offset++]; part0 = (b & 0x7F) ; if ( b & 0x80 ) {\r\n b = this.buffer[offset++]; part0 |= (b & 0x7F) << 7; if ((b & 0x80) || (this.noAssert && typeof b === 'undefined')) {\r\n b = this.buffer[offset++]; part0 |= (b & 0x7F) << 14; if ((b & 0x80) || (this.noAssert && typeof b === 'undefined')) {\r\n b = this.buffer[offset++]; part0 |= (b & 0x7F) << 21; if ((b & 0x80) || (this.noAssert && typeof b === 'undefined')) {\r\n b = this.buffer[offset++]; part1 = (b & 0x7F) ; if ((b & 0x80) || (this.noAssert && typeof b === 'undefined')) {\r\n b = this.buffer[offset++]; part1 |= (b & 0x7F) << 7; if ((b & 0x80) || (this.noAssert && typeof b === 'undefined')) {\r\n b = this.buffer[offset++]; part1 |= (b & 0x7F) << 14; if ((b & 0x80) || (this.noAssert && typeof b === 'undefined')) {\r\n b = this.buffer[offset++]; part1 |= (b & 0x7F) << 21; if ((b & 0x80) || (this.noAssert && typeof b === 'undefined')) {\r\n b = this.buffer[offset++]; part2 = (b & 0x7F) ; if ((b & 0x80) || (this.noAssert && typeof b === 'undefined')) {\r\n b = this.buffer[offset++]; part2 |= (b & 0x7F) << 7; if ((b & 0x80) || (this.noAssert && typeof b === 'undefined')) {\r\n throw Error(\"Buffer overrun\"); }}}}}}}}}}\r\n var value = Long.fromBits(part0 | (part1 << 28), (part1 >>> 4) | (part2) << 24, false);\r\n if (relative) {\r\n this.offset = offset;\r\n return value;\r\n } else {\r\n return {\r\n 'value': value,\r\n 'length': offset-start\r\n };\r\n }\r\n };\r\n\r\n /**\r\n * Reads a zig-zag encoded 64bit base 128 variable-length integer. Requires Long.js.\r\n * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by the number of bytes\r\n * read if omitted.\r\n * @returns {!Long|!{value: Long, length: number}} The value read if offset is omitted, else the value read and\r\n * the actual number of bytes read.\r\n * @throws {Error} If it's not a valid varint\r\n * @expose\r\n */\r\n ByteBufferPrototype.readVarint64ZigZag = function(offset) {\r\n var val = this.readVarint64(offset);\r\n if (val && val['value'] instanceof Long)\r\n val[\"value\"] = ByteBuffer.zigZagDecode64(val[\"value\"]);\r\n else\r\n val = ByteBuffer.zigZagDecode64(val);\r\n return val;\r\n };\r\n\r\n } // Long\r\n\r\n\r\n // types/strings/cstring\r\n\r\n /**\r\n * Writes a NULL-terminated UTF8 encoded string. For this to work the specified string must not contain any NULL\r\n * characters itself.\r\n * @param {string} str String to write\r\n * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by the number of bytes\r\n * contained in `str` + 1 if omitted.\r\n * @returns {!ByteBuffer|number} this if offset is omitted, else the actual number of bytes written\r\n * @expose\r\n */\r\n ByteBufferPrototype.writeCString = function(str, offset) {\r\n var relative = typeof offset === 'undefined';\n if (relative) offset = this.offset;\n var i,\r\n k = str.length;\r\n if (!this.noAssert) {\r\n if (typeof str !== 'string')\r\n throw TypeError(\"Illegal str: Not a string\");\r\n for (i=0; i>>= 0;\n if (offset < 0 || offset + 0 > this.buffer.length)\n throw RangeError(\"Illegal offset: 0 <= \"+offset+\" (+\"+0+\") <= \"+this.buffer.length);\n }\r\n // UTF8 strings do not contain zero bytes in between except for the zero character, so:\r\n k = Buffer.byteLength(str, \"utf8\");\r\n offset += k+1;\n var capacity12 = this.buffer.length;\n if (offset > capacity12)\n this.resize((capacity12 *= 2) > offset ? capacity12 : offset);\n offset -= k+1;\n offset += this.buffer.write(str, offset, k, \"utf8\");\r\n this.buffer[offset++] = 0;\r\n if (relative) {\r\n this.offset = offset;\r\n return this;\r\n }\r\n return k;\r\n };\r\n\r\n /**\r\n * Reads a NULL-terminated UTF8 encoded string. For this to work the string read must not contain any NULL characters\r\n * itself.\r\n * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by the number of bytes\r\n * read if omitted.\r\n * @returns {string|!{string: string, length: number}} The string read if offset is omitted, else the string\r\n * read and the actual number of bytes read.\r\n * @expose\r\n */\r\n ByteBufferPrototype.readCString = function(offset) {\r\n var relative = typeof offset === 'undefined';\n if (relative) offset = this.offset;\n if (!this.noAssert) {\r\n if (typeof offset !== 'number' || offset % 1 !== 0)\n throw TypeError(\"Illegal offset: \"+offset+\" (not an integer)\");\n offset >>>= 0;\n if (offset < 0 || offset + 1 > this.buffer.length)\n throw RangeError(\"Illegal offset: 0 <= \"+offset+\" (+\"+1+\") <= \"+this.buffer.length);\n }\r\n var start = offset,\r\n temp;\r\n // UTF8 strings do not contain zero bytes in between except for the zero character itself, so:\r\n do {\r\n if (offset >= this.buffer.length)\r\n throw RangeError(\"Index out of range: \"+offset+\" <= \"+this.buffer.length);\r\n temp = this.buffer[offset++];\r\n } while (temp !== 0);\r\n var str = this.buffer.toString(\"utf8\", start, offset-1);\r\n if (relative) {\r\n this.offset = offset;\r\n return str;\r\n } else {\r\n return {\r\n \"string\": str,\r\n \"length\": offset - start\r\n };\r\n }\r\n };\r\n\r\n // types/strings/istring\r\n\r\n /**\r\n * Writes a length as uint32 prefixed UTF8 encoded string.\r\n * @param {string} str String to write\r\n * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by the number of bytes\r\n * written if omitted.\r\n * @returns {!ByteBuffer|number} `this` if `offset` is omitted, else the actual number of bytes written\r\n * @expose\r\n * @see ByteBuffer#writeVarint32\r\n */\r\n ByteBufferPrototype.writeIString = function(str, offset) {\r\n var relative = typeof offset === 'undefined';\n if (relative) offset = this.offset;\n if (!this.noAssert) {\r\n if (typeof str !== 'string')\r\n throw TypeError(\"Illegal str: Not a string\");\r\n if (typeof offset !== 'number' || offset % 1 !== 0)\n throw TypeError(\"Illegal offset: \"+offset+\" (not an integer)\");\n offset >>>= 0;\n if (offset < 0 || offset + 0 > this.buffer.length)\n throw RangeError(\"Illegal offset: 0 <= \"+offset+\" (+\"+0+\") <= \"+this.buffer.length);\n }\r\n var start = offset,\r\n k;\r\n k = Buffer.byteLength(str, \"utf8\");\r\n offset += 4+k;\n var capacity13 = this.buffer.length;\n if (offset > capacity13)\n this.resize((capacity13 *= 2) > offset ? capacity13 : offset);\n offset -= 4+k;\n if (this.littleEndian) {\n this.buffer[offset+3] = (k >>> 24) & 0xFF;\n this.buffer[offset+2] = (k >>> 16) & 0xFF;\n this.buffer[offset+1] = (k >>> 8) & 0xFF;\n this.buffer[offset ] = k & 0xFF;\n } else {\n this.buffer[offset ] = (k >>> 24) & 0xFF;\n this.buffer[offset+1] = (k >>> 16) & 0xFF;\n this.buffer[offset+2] = (k >>> 8) & 0xFF;\n this.buffer[offset+3] = k & 0xFF;\n }\n offset += 4;\r\n offset += this.buffer.write(str, offset, k, \"utf8\");\r\n if (relative) {\r\n this.offset = offset;\r\n return this;\r\n }\r\n return offset - start;\r\n };\r\n\r\n /**\r\n * Reads a length as uint32 prefixed UTF8 encoded string.\r\n * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by the number of bytes\r\n * read if omitted.\r\n * @returns {string|!{string: string, length: number}} The string read if offset is omitted, else the string\r\n * read and the actual number of bytes read.\r\n * @expose\r\n * @see ByteBuffer#readVarint32\r\n */\r\n ByteBufferPrototype.readIString = function(offset) {\r\n var relative = typeof offset === 'undefined';\n if (relative) offset = this.offset;\n if (!this.noAssert) {\r\n if (typeof offset !== 'number' || offset % 1 !== 0)\n throw TypeError(\"Illegal offset: \"+offset+\" (not an integer)\");\n offset >>>= 0;\n if (offset < 0 || offset + 4 > this.buffer.length)\n throw RangeError(\"Illegal offset: 0 <= \"+offset+\" (+\"+4+\") <= \"+this.buffer.length);\n }\r\n var start = offset;\r\n var len = this.readUint32(offset);\r\n var str = this.readUTF8String(len, ByteBuffer.METRICS_BYTES, offset += 4);\r\n offset += str['length'];\r\n if (relative) {\r\n this.offset = offset;\r\n return str['string'];\r\n } else {\r\n return {\r\n 'string': str['string'],\r\n 'length': offset - start\r\n };\r\n }\r\n };\r\n\r\n // types/strings/utf8string\r\n\r\n /**\r\n * Metrics representing number of UTF8 characters. Evaluates to `c`.\r\n * @type {string}\r\n * @const\r\n * @expose\r\n */\r\n ByteBuffer.METRICS_CHARS = 'c';\r\n\r\n /**\r\n * Metrics representing number of bytes. Evaluates to `b`.\r\n * @type {string}\r\n * @const\r\n * @expose\r\n */\r\n ByteBuffer.METRICS_BYTES = 'b';\r\n\r\n /**\r\n * Writes an UTF8 encoded string.\r\n * @param {string} str String to write\r\n * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} if omitted.\r\n * @returns {!ByteBuffer|number} this if offset is omitted, else the actual number of bytes written.\r\n * @expose\r\n */\r\n ByteBufferPrototype.writeUTF8String = function(str, offset) {\r\n var relative = typeof offset === 'undefined';\n if (relative) offset = this.offset;\n if (!this.noAssert) {\r\n if (typeof offset !== 'number' || offset % 1 !== 0)\n throw TypeError(\"Illegal offset: \"+offset+\" (not an integer)\");\n offset >>>= 0;\n if (offset < 0 || offset + 0 > this.buffer.length)\n throw RangeError(\"Illegal offset: 0 <= \"+offset+\" (+\"+0+\") <= \"+this.buffer.length);\n }\r\n var k;\r\n k = Buffer.byteLength(str, \"utf8\");\r\n offset += k;\n var capacity14 = this.buffer.length;\n if (offset > capacity14)\n this.resize((capacity14 *= 2) > offset ? capacity14 : offset);\n offset -= k;\n offset += this.buffer.write(str, offset, k, \"utf8\");\r\n if (relative) {\r\n this.offset = offset;\r\n return this;\r\n }\r\n return k;\r\n };\r\n\r\n /**\r\n * Writes an UTF8 encoded string. This is an alias of {@link ByteBuffer#writeUTF8String}.\r\n * @function\r\n * @param {string} str String to write\r\n * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} if omitted.\r\n * @returns {!ByteBuffer|number} this if offset is omitted, else the actual number of bytes written.\r\n * @expose\r\n */\r\n ByteBufferPrototype.writeString = ByteBufferPrototype.writeUTF8String;\r\n\r\n /**\r\n * Calculates the number of UTF8 characters of a string. JavaScript itself uses UTF-16, so that a string's\r\n * `length` property does not reflect its actual UTF8 size if it contains code points larger than 0xFFFF.\r\n * @param {string} str String to calculate\r\n * @returns {number} Number of UTF8 characters\r\n * @expose\r\n */\r\n ByteBuffer.calculateUTF8Chars = function(str) {\r\n return utfx.calculateUTF16asUTF8(stringSource(str))[0];\r\n };\r\n\r\n /**\r\n * Calculates the number of UTF8 bytes of a string.\r\n * @param {string} str String to calculate\r\n * @returns {number} Number of UTF8 bytes\r\n * @expose\r\n */\r\n ByteBuffer.calculateUTF8Bytes = function(str) {\r\n if (typeof str !== 'string')\r\n throw TypeError(\"Illegal argument: \"+(typeof str));\r\n return Buffer.byteLength(str, \"utf8\");\r\n };\r\n\r\n /**\r\n * Calculates the number of UTF8 bytes of a string. This is an alias of {@link ByteBuffer.calculateUTF8Bytes}.\r\n * @function\r\n * @param {string} str String to calculate\r\n * @returns {number} Number of UTF8 bytes\r\n * @expose\r\n */\r\n ByteBuffer.calculateString = ByteBuffer.calculateUTF8Bytes;\r\n\r\n /**\r\n * Reads an UTF8 encoded string.\r\n * @param {number} length Number of characters or bytes to read.\r\n * @param {string=} metrics Metrics specifying what `length` is meant to count. Defaults to\r\n * {@link ByteBuffer.METRICS_CHARS}.\r\n * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by the number of bytes\r\n * read if omitted.\r\n * @returns {string|!{string: string, length: number}} The string read if offset is omitted, else the string\r\n * read and the actual number of bytes read.\r\n * @expose\r\n */\r\n ByteBufferPrototype.readUTF8String = function(length, metrics, offset) {\r\n if (typeof metrics === 'number') {\r\n offset = metrics;\r\n metrics = undefined;\r\n }\r\n var relative = typeof offset === 'undefined';\n if (relative) offset = this.offset;\n if (typeof metrics === 'undefined') metrics = ByteBuffer.METRICS_CHARS;\r\n if (!this.noAssert) {\r\n if (typeof length !== 'number' || length % 1 !== 0)\n throw TypeError(\"Illegal length: \"+length+\" (not an integer)\");\n length |= 0;\n if (typeof offset !== 'number' || offset % 1 !== 0)\n throw TypeError(\"Illegal offset: \"+offset+\" (not an integer)\");\n offset >>>= 0;\n if (offset < 0 || offset + 0 > this.buffer.length)\n throw RangeError(\"Illegal offset: 0 <= \"+offset+\" (+\"+0+\") <= \"+this.buffer.length);\n }\r\n var i = 0,\r\n start = offset,\r\n temp,\r\n sd;\r\n if (metrics === ByteBuffer.METRICS_CHARS) { // The same for node and the browser\r\n sd = stringDestination();\r\n utfx.decodeUTF8(function() {\r\n return i < length && offset < this.limit ? this.buffer[offset++] : null;\r\n }.bind(this), function(cp) {\r\n ++i; utfx.UTF8toUTF16(cp, sd);\r\n });\r\n if (i !== length)\r\n throw RangeError(\"Illegal range: Truncated data, \"+i+\" == \"+length);\r\n if (relative) {\r\n this.offset = offset;\r\n return sd();\r\n } else {\r\n return {\r\n \"string\": sd(),\r\n \"length\": offset - start\r\n };\r\n }\r\n } else if (metrics === ByteBuffer.METRICS_BYTES) {\r\n if (!this.noAssert) {\r\n if (typeof offset !== 'number' || offset % 1 !== 0)\n throw TypeError(\"Illegal offset: \"+offset+\" (not an integer)\");\n offset >>>= 0;\n if (offset < 0 || offset + length > this.buffer.length)\n throw RangeError(\"Illegal offset: 0 <= \"+offset+\" (+\"+length+\") <= \"+this.buffer.length);\n }\r\n temp = this.buffer.toString(\"utf8\", offset, offset+length);\r\n if (relative) {\r\n this.offset += length;\r\n return temp;\r\n } else {\r\n return {\r\n 'string': temp,\r\n 'length': length\r\n };\r\n }\r\n } else\r\n throw TypeError(\"Unsupported metrics: \"+metrics);\r\n };\r\n\r\n /**\r\n * Reads an UTF8 encoded string. This is an alias of {@link ByteBuffer#readUTF8String}.\r\n * @function\r\n * @param {number} length Number of characters or bytes to read\r\n * @param {number=} metrics Metrics specifying what `n` is meant to count. Defaults to\r\n * {@link ByteBuffer.METRICS_CHARS}.\r\n * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by the number of bytes\r\n * read if omitted.\r\n * @returns {string|!{string: string, length: number}} The string read if offset is omitted, else the string\r\n * read and the actual number of bytes read.\r\n * @expose\r\n */\r\n ByteBufferPrototype.readString = ByteBufferPrototype.readUTF8String;\r\n\r\n // types/strings/vstring\r\n\r\n /**\r\n * Writes a length as varint32 prefixed UTF8 encoded string.\r\n * @param {string} str String to write\r\n * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by the number of bytes\r\n * written if omitted.\r\n * @returns {!ByteBuffer|number} `this` if `offset` is omitted, else the actual number of bytes written\r\n * @expose\r\n * @see ByteBuffer#writeVarint32\r\n */\r\n ByteBufferPrototype.writeVString = function(str, offset) {\r\n var relative = typeof offset === 'undefined';\n if (relative) offset = this.offset;\n if (!this.noAssert) {\r\n if (typeof str !== 'string')\r\n throw TypeError(\"Illegal str: Not a string\");\r\n if (typeof offset !== 'number' || offset % 1 !== 0)\n throw TypeError(\"Illegal offset: \"+offset+\" (not an integer)\");\n offset >>>= 0;\n if (offset < 0 || offset + 0 > this.buffer.length)\n throw RangeError(\"Illegal offset: 0 <= \"+offset+\" (+\"+0+\") <= \"+this.buffer.length);\n }\r\n var start = offset,\r\n k, l;\r\n k = Buffer.byteLength(str, \"utf8\");\r\n l = ByteBuffer.calculateVarint32(k);\r\n offset += l+k;\n var capacity15 = this.buffer.length;\n if (offset > capacity15)\n this.resize((capacity15 *= 2) > offset ? capacity15 : offset);\n offset -= l+k;\n offset += this.writeVarint32(k, offset);\r\n offset += this.buffer.write(str, offset, k, \"utf8\");\r\n if (relative) {\r\n this.offset = offset;\r\n return this;\r\n }\r\n return offset - start;\r\n };\r\n\r\n /**\r\n * Reads a length as varint32 prefixed UTF8 encoded string.\r\n * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by the number of bytes\r\n * read if omitted.\r\n * @returns {string|!{string: string, length: number}} The string read if offset is omitted, else the string\r\n * read and the actual number of bytes read.\r\n * @expose\r\n * @see ByteBuffer#readVarint32\r\n */\r\n ByteBufferPrototype.readVString = function(offset) {\r\n var relative = typeof offset === 'undefined';\n if (relative) offset = this.offset;\n if (!this.noAssert) {\r\n if (typeof offset !== 'number' || offset % 1 !== 0)\n throw TypeError(\"Illegal offset: \"+offset+\" (not an integer)\");\n offset >>>= 0;\n if (offset < 0 || offset + 1 > this.buffer.length)\n throw RangeError(\"Illegal offset: 0 <= \"+offset+\" (+\"+1+\") <= \"+this.buffer.length);\n }\r\n var start = offset;\r\n var len = this.readVarint32(offset);\r\n var str = this.readUTF8String(len['value'], ByteBuffer.METRICS_BYTES, offset += len['length']);\r\n offset += str['length'];\r\n if (relative) {\r\n this.offset = offset;\r\n return str['string'];\r\n } else {\r\n return {\r\n 'string': str['string'],\r\n 'length': offset - start\r\n };\r\n }\r\n };\r\n\r\n\r\n /**\r\n * Appends some data to this ByteBuffer. This will overwrite any contents behind the specified offset up to the appended\r\n * data's length.\r\n * @param {!ByteBuffer|!Buffer|!ArrayBuffer|!Uint8Array|string} source Data to append. If `source` is a ByteBuffer, its\r\n * offsets will be modified according to the performed read operation.\r\n * @param {(string|number)=} encoding Encoding if `data` is a string (\"base64\", \"hex\", \"binary\", defaults to \"utf8\")\r\n * @param {number=} offset Offset to append at. Will use and increase {@link ByteBuffer#offset} by the number of bytes\r\n * written if omitted.\r\n * @returns {!ByteBuffer} this\r\n * @expose\r\n * @example A relative `<01 02>03.append(<04 05>)` will result in `<01 02 04 05>, 04 05|`\r\n * @example An absolute `<01 02>03.append(04 05>, 1)` will result in `<01 04>05, 04 05|`\r\n */\r\n ByteBufferPrototype.append = function(source, encoding, offset) {\r\n if (typeof encoding === 'number' || typeof encoding !== 'string') {\r\n offset = encoding;\r\n encoding = undefined;\r\n }\r\n var relative = typeof offset === 'undefined';\n if (relative) offset = this.offset;\n if (!this.noAssert) {\r\n if (typeof offset !== 'number' || offset % 1 !== 0)\n throw TypeError(\"Illegal offset: \"+offset+\" (not an integer)\");\n offset >>>= 0;\n if (offset < 0 || offset + 0 > this.buffer.length)\n throw RangeError(\"Illegal offset: 0 <= \"+offset+\" (+\"+0+\") <= \"+this.buffer.length);\n }\r\n if (!(source instanceof ByteBuffer))\r\n source = ByteBuffer.wrap(source, encoding);\r\n var length = source.limit - source.offset;\r\n if (length <= 0) return this; // Nothing to append\r\n offset += length;\n var capacity16 = this.buffer.length;\n if (offset > capacity16)\n this.resize((capacity16 *= 2) > offset ? capacity16 : offset);\n offset -= length;\n source.buffer.copy(this.buffer, offset, source.offset, source.limit);\r\n source.offset += length;\r\n if (relative) this.offset += length;\n return this;\r\n };\r\n\r\n /**\r\n * Appends this ByteBuffer's contents to another ByteBuffer. This will overwrite any contents at and after the\r\n specified offset up to the length of this ByteBuffer's data.\r\n * @param {!ByteBuffer} target Target ByteBuffer\r\n * @param {number=} offset Offset to append to. Will use and increase {@link ByteBuffer#offset} by the number of bytes\r\n * read if omitted.\r\n * @returns {!ByteBuffer} this\r\n * @expose\r\n * @see ByteBuffer#append\r\n */\r\n ByteBufferPrototype.appendTo = function(target, offset) {\r\n target.append(this, offset);\r\n return this;\r\n };\r\n\r\n /**\r\n * Enables or disables assertions of argument types and offsets. Assertions are enabled by default but you can opt to\r\n * disable them if your code already makes sure that everything is valid.\r\n * @param {boolean} assert `true` to enable assertions, otherwise `false`\r\n * @returns {!ByteBuffer} this\r\n * @expose\r\n */\r\n ByteBufferPrototype.assert = function(assert) {\r\n this.noAssert = !assert;\r\n return this;\r\n };\r\n\r\n /**\r\n * Gets the capacity of this ByteBuffer's backing buffer.\r\n * @returns {number} Capacity of the backing buffer\r\n * @expose\r\n */\r\n ByteBufferPrototype.capacity = function() {\r\n return this.buffer.length;\r\n };\r\n /**\r\n * Clears this ByteBuffer's offsets by setting {@link ByteBuffer#offset} to `0` and {@link ByteBuffer#limit} to the\r\n * backing buffer's capacity. Discards {@link ByteBuffer#markedOffset}.\r\n * @returns {!ByteBuffer} this\r\n * @expose\r\n */\r\n ByteBufferPrototype.clear = function() {\r\n this.offset = 0;\r\n this.limit = this.buffer.length;\r\n this.markedOffset = -1;\r\n return this;\r\n };\r\n\r\n /**\r\n * Creates a cloned instance of this ByteBuffer, preset with this ByteBuffer's values for {@link ByteBuffer#offset},\r\n * {@link ByteBuffer#markedOffset} and {@link ByteBuffer#limit}.\r\n * @param {boolean=} copy Whether to copy the backing buffer or to return another view on the same, defaults to `false`\r\n * @returns {!ByteBuffer} Cloned instance\r\n * @expose\r\n */\r\n ByteBufferPrototype.clone = function(copy) {\r\n var bb = new ByteBuffer(0, this.littleEndian, this.noAssert);\r\n if (copy) {\r\n var buffer = new Buffer(this.buffer.length);\r\n this.buffer.copy(buffer);\r\n bb.buffer = buffer;\r\n } else {\r\n bb.buffer = this.buffer;\r\n }\r\n bb.offset = this.offset;\r\n bb.markedOffset = this.markedOffset;\r\n bb.limit = this.limit;\r\n return bb;\r\n };\r\n\r\n /**\r\n * Compacts this ByteBuffer to be backed by a {@link ByteBuffer#buffer} of its contents' length. Contents are the bytes\r\n * between {@link ByteBuffer#offset} and {@link ByteBuffer#limit}. Will set `offset = 0` and `limit = capacity` and\r\n * adapt {@link ByteBuffer#markedOffset} to the same relative position if set.\r\n * @param {number=} begin Offset to start at, defaults to {@link ByteBuffer#offset}\r\n * @param {number=} end Offset to end at, defaults to {@link ByteBuffer#limit}\r\n * @returns {!ByteBuffer} this\r\n * @expose\r\n */\r\n ByteBufferPrototype.compact = function(begin, end) {\r\n if (typeof begin === 'undefined') begin = this.offset;\r\n if (typeof end === 'undefined') end = this.limit;\r\n if (!this.noAssert) {\r\n if (typeof begin !== 'number' || begin % 1 !== 0)\n throw TypeError(\"Illegal begin: Not an integer\");\n begin >>>= 0;\n if (typeof end !== 'number' || end % 1 !== 0)\n throw TypeError(\"Illegal end: Not an integer\");\n end >>>= 0;\n if (begin < 0 || begin > end || end > this.buffer.length)\n throw RangeError(\"Illegal range: 0 <= \"+begin+\" <= \"+end+\" <= \"+this.buffer.length);\n }\r\n if (begin === 0 && end === this.buffer.length)\r\n return this; // Already compacted\r\n var len = end - begin;\r\n if (len === 0) {\r\n this.buffer = EMPTY_BUFFER;\r\n if (this.markedOffset >= 0) this.markedOffset -= begin;\r\n this.offset = 0;\r\n this.limit = 0;\r\n return this;\r\n }\r\n var buffer = new Buffer(len);\r\n this.buffer.copy(buffer, 0, begin, end);\r\n this.buffer = buffer;\r\n if (this.markedOffset >= 0) this.markedOffset -= begin;\r\n this.offset = 0;\r\n this.limit = len;\r\n return this;\r\n };\r\n\r\n /**\r\n * Creates a copy of this ByteBuffer's contents. Contents are the bytes between {@link ByteBuffer#offset} and\r\n * {@link ByteBuffer#limit}.\r\n * @param {number=} begin Begin offset, defaults to {@link ByteBuffer#offset}.\r\n * @param {number=} end End offset, defaults to {@link ByteBuffer#limit}.\r\n * @returns {!ByteBuffer} Copy\r\n * @expose\r\n */\r\n ByteBufferPrototype.copy = function(begin, end) {\r\n if (typeof begin === 'undefined') begin = this.offset;\r\n if (typeof end === 'undefined') end = this.limit;\r\n if (!this.noAssert) {\r\n if (typeof begin !== 'number' || begin % 1 !== 0)\n throw TypeError(\"Illegal begin: Not an integer\");\n begin >>>= 0;\n if (typeof end !== 'number' || end % 1 !== 0)\n throw TypeError(\"Illegal end: Not an integer\");\n end >>>= 0;\n if (begin < 0 || begin > end || end > this.buffer.length)\n throw RangeError(\"Illegal range: 0 <= \"+begin+\" <= \"+end+\" <= \"+this.buffer.length);\n }\r\n if (begin === end)\r\n return new ByteBuffer(0, this.littleEndian, this.noAssert);\r\n var capacity = end - begin,\r\n bb = new ByteBuffer(capacity, this.littleEndian, this.noAssert);\r\n bb.offset = 0;\r\n bb.limit = capacity;\r\n if (bb.markedOffset >= 0) bb.markedOffset -= begin;\r\n this.copyTo(bb, 0, begin, end);\r\n return bb;\r\n };\r\n\r\n /**\r\n * Copies this ByteBuffer's contents to another ByteBuffer. Contents are the bytes between {@link ByteBuffer#offset} and\r\n * {@link ByteBuffer#limit}.\r\n * @param {!ByteBuffer} target Target ByteBuffer\r\n * @param {number=} targetOffset Offset to copy to. Will use and increase the target's {@link ByteBuffer#offset}\r\n * by the number of bytes copied if omitted.\r\n * @param {number=} sourceOffset Offset to start copying from. Will use and increase {@link ByteBuffer#offset} by the\r\n * number of bytes copied if omitted.\r\n * @param {number=} sourceLimit Offset to end copying from, defaults to {@link ByteBuffer#limit}\r\n * @returns {!ByteBuffer} this\r\n * @expose\r\n */\r\n ByteBufferPrototype.copyTo = function(target, targetOffset, sourceOffset, sourceLimit) {\r\n var relative,\r\n targetRelative;\r\n if (!this.noAssert) {\r\n if (!ByteBuffer.isByteBuffer(target))\r\n throw TypeError(\"Illegal target: Not a ByteBuffer\");\r\n }\r\n targetOffset = (targetRelative = typeof targetOffset === 'undefined') ? target.offset : targetOffset | 0;\r\n sourceOffset = (relative = typeof sourceOffset === 'undefined') ? this.offset : sourceOffset | 0;\r\n sourceLimit = typeof sourceLimit === 'undefined' ? this.limit : sourceLimit | 0;\r\n\r\n if (targetOffset < 0 || targetOffset > target.buffer.length)\r\n throw RangeError(\"Illegal target range: 0 <= \"+targetOffset+\" <= \"+target.buffer.length);\r\n if (sourceOffset < 0 || sourceLimit > this.buffer.length)\r\n throw RangeError(\"Illegal source range: 0 <= \"+sourceOffset+\" <= \"+this.buffer.length);\r\n\r\n var len = sourceLimit - sourceOffset;\r\n if (len === 0)\r\n return target; // Nothing to copy\r\n\r\n target.ensureCapacity(targetOffset + len);\r\n\r\n this.buffer.copy(target.buffer, targetOffset, sourceOffset, sourceLimit);\r\n\r\n if (relative) this.offset += len;\r\n if (targetRelative) target.offset += len;\r\n\r\n return this;\r\n };\r\n\r\n /**\r\n * Makes sure that this ByteBuffer is backed by a {@link ByteBuffer#buffer} of at least the specified capacity. If the\r\n * current capacity is exceeded, it will be doubled. If double the current capacity is less than the required capacity,\r\n * the required capacity will be used instead.\r\n * @param {number} capacity Required capacity\r\n * @returns {!ByteBuffer} this\r\n * @expose\r\n */\r\n ByteBufferPrototype.ensureCapacity = function(capacity) {\r\n var current = this.buffer.length;\r\n if (current < capacity)\r\n return this.resize((current *= 2) > capacity ? current : capacity);\r\n return this;\r\n };\r\n\r\n /**\r\n * Overwrites this ByteBuffer's contents with the specified value. Contents are the bytes between\r\n * {@link ByteBuffer#offset} and {@link ByteBuffer#limit}.\r\n * @param {number|string} value Byte value to fill with. If given as a string, the first character is used.\r\n * @param {number=} begin Begin offset. Will use and increase {@link ByteBuffer#offset} by the number of bytes\r\n * written if omitted. defaults to {@link ByteBuffer#offset}.\r\n * @param {number=} end End offset, defaults to {@link ByteBuffer#limit}.\r\n * @returns {!ByteBuffer} this\r\n * @expose\r\n * @example `someByteBuffer.clear().fill(0)` fills the entire backing buffer with zeroes\r\n */\r\n ByteBufferPrototype.fill = function(value, begin, end) {\r\n var relative = typeof begin === 'undefined';\n if (relative) begin = this.offset;\n if (typeof value === 'string' && value.length > 0)\r\n value = value.charCodeAt(0);\r\n if (typeof begin === 'undefined') begin = this.offset;\r\n if (typeof end === 'undefined') end = this.limit;\r\n if (!this.noAssert) {\r\n if (typeof value !== 'number' || value % 1 !== 0)\n throw TypeError(\"Illegal value: \"+value+\" (not an integer)\");\n value |= 0;\n if (typeof begin !== 'number' || begin % 1 !== 0)\n throw TypeError(\"Illegal begin: Not an integer\");\n begin >>>= 0;\n if (typeof end !== 'number' || end % 1 !== 0)\n throw TypeError(\"Illegal end: Not an integer\");\n end >>>= 0;\n if (begin < 0 || begin > end || end > this.buffer.length)\n throw RangeError(\"Illegal range: 0 <= \"+begin+\" <= \"+end+\" <= \"+this.buffer.length);\n }\r\n if (begin >= end)\r\n return this; // Nothing to fill\r\n this.buffer.fill(value, begin, end);\r\n begin = end;\r\n if (relative) this.offset = begin;\r\n return this;\r\n };\r\n\r\n /**\r\n * Makes this ByteBuffer ready for a new sequence of write or relative read operations. Sets `limit = offset` and\r\n * `offset = 0`. Make sure always to flip a ByteBuffer when all relative read or write operations are complete.\r\n * @returns {!ByteBuffer} this\r\n * @expose\r\n */\r\n ByteBufferPrototype.flip = function() {\r\n this.limit = this.offset;\r\n this.offset = 0;\r\n return this;\r\n };\r\n /**\r\n * Marks an offset on this ByteBuffer to be used later.\r\n * @param {number=} offset Offset to mark. Defaults to {@link ByteBuffer#offset}.\r\n * @returns {!ByteBuffer} this\r\n * @throws {TypeError} If `offset` is not a valid number\r\n * @throws {RangeError} If `offset` is out of bounds\r\n * @see ByteBuffer#reset\r\n * @expose\r\n */\r\n ByteBufferPrototype.mark = function(offset) {\r\n offset = typeof offset === 'undefined' ? this.offset : offset;\r\n if (!this.noAssert) {\r\n if (typeof offset !== 'number' || offset % 1 !== 0)\n throw TypeError(\"Illegal offset: \"+offset+\" (not an integer)\");\n offset >>>= 0;\n if (offset < 0 || offset + 0 > this.buffer.length)\n throw RangeError(\"Illegal offset: 0 <= \"+offset+\" (+\"+0+\") <= \"+this.buffer.length);\n }\r\n this.markedOffset = offset;\r\n return this;\r\n };\r\n /**\r\n * Sets the byte order.\r\n * @param {boolean} littleEndian `true` for little endian byte order, `false` for big endian\r\n * @returns {!ByteBuffer} this\r\n * @expose\r\n */\r\n ByteBufferPrototype.order = function(littleEndian) {\r\n if (!this.noAssert) {\r\n if (typeof littleEndian !== 'boolean')\r\n throw TypeError(\"Illegal littleEndian: Not a boolean\");\r\n }\r\n this.littleEndian = !!littleEndian;\r\n return this;\r\n };\r\n\r\n /**\r\n * Switches (to) little endian byte order.\r\n * @param {boolean=} littleEndian Defaults to `true`, otherwise uses big endian\r\n * @returns {!ByteBuffer} this\r\n * @expose\r\n */\r\n ByteBufferPrototype.LE = function(littleEndian) {\r\n this.littleEndian = typeof littleEndian !== 'undefined' ? !!littleEndian : true;\r\n return this;\r\n };\r\n\r\n /**\r\n * Switches (to) big endian byte order.\r\n * @param {boolean=} bigEndian Defaults to `true`, otherwise uses little endian\r\n * @returns {!ByteBuffer} this\r\n * @expose\r\n */\r\n ByteBufferPrototype.BE = function(bigEndian) {\r\n this.littleEndian = typeof bigEndian !== 'undefined' ? !bigEndian : false;\r\n return this;\r\n };\r\n /**\r\n * Prepends some data to this ByteBuffer. This will overwrite any contents before the specified offset up to the\r\n * prepended data's length. If there is not enough space available before the specified `offset`, the backing buffer\r\n * will be resized and its contents moved accordingly.\r\n * @param {!ByteBuffer|string||!Buffer} source Data to prepend. If `source` is a ByteBuffer, its offset will be modified\r\n * according to the performed read operation.\r\n * @param {(string|number)=} encoding Encoding if `data` is a string (\"base64\", \"hex\", \"binary\", defaults to \"utf8\")\r\n * @param {number=} offset Offset to prepend at. Will use and decrease {@link ByteBuffer#offset} by the number of bytes\r\n * prepended if omitted.\r\n * @returns {!ByteBuffer} this\r\n * @expose\r\n * @example A relative `00<01 02 03>.prepend(<04 05>)` results in `<04 05 01 02 03>, 04 05|`\r\n * @example An absolute `00<01 02 03>.prepend(<04 05>, 2)` results in `04<05 02 03>, 04 05|`\r\n */\r\n ByteBufferPrototype.prepend = function(source, encoding, offset) {\r\n if (typeof encoding === 'number' || typeof encoding !== 'string') {\r\n offset = encoding;\r\n encoding = undefined;\r\n }\r\n var relative = typeof offset === 'undefined';\n if (relative) offset = this.offset;\n if (!this.noAssert) {\r\n if (typeof offset !== 'number' || offset % 1 !== 0)\n throw TypeError(\"Illegal offset: \"+offset+\" (not an integer)\");\n offset >>>= 0;\n if (offset < 0 || offset + 0 > this.buffer.length)\n throw RangeError(\"Illegal offset: 0 <= \"+offset+\" (+\"+0+\") <= \"+this.buffer.length);\n }\r\n if (!(source instanceof ByteBuffer))\r\n source = ByteBuffer.wrap(source, encoding);\r\n var len = source.limit - source.offset;\r\n if (len <= 0) return this; // Nothing to prepend\r\n var diff = len - offset;\r\n if (diff > 0) { // Not enough space before offset, so resize + move\r\n var buffer = new Buffer(this.buffer.length + diff);\r\n this.buffer.copy(buffer, len, offset, this.buffer.length);\r\n this.buffer = buffer;\r\n this.offset += diff;\r\n if (this.markedOffset >= 0) this.markedOffset += diff;\r\n this.limit += diff;\r\n offset += diff;\r\n } source.buffer.copy(this.buffer, offset - len, source.offset, source.limit);\r\n\r\n source.offset = source.limit;\r\n if (relative)\r\n this.offset -= len;\r\n return this;\r\n };\r\n\r\n /**\r\n * Prepends this ByteBuffer to another ByteBuffer. This will overwrite any contents before the specified offset up to the\r\n * prepended data's length. If there is not enough space available before the specified `offset`, the backing buffer\r\n * will be resized and its contents moved accordingly.\r\n * @param {!ByteBuffer} target Target ByteBuffer\r\n * @param {number=} offset Offset to prepend at. Will use and decrease {@link ByteBuffer#offset} by the number of bytes\r\n * prepended if omitted.\r\n * @returns {!ByteBuffer} this\r\n * @expose\r\n * @see ByteBuffer#prepend\r\n */\r\n ByteBufferPrototype.prependTo = function(target, offset) {\r\n target.prepend(this, offset);\r\n return this;\r\n };\r\n /**\r\n * Prints debug information about this ByteBuffer's contents.\r\n * @param {function(string)=} out Output function to call, defaults to console.log\r\n * @expose\r\n */\r\n ByteBufferPrototype.printDebug = function(out) {\r\n if (typeof out !== 'function') out = console.log.bind(console);\r\n out(\r\n this.toString()+\"\\n\"+\r\n \"-------------------------------------------------------------------\\n\"+\r\n this.toDebug(/* columns */ true)\r\n );\r\n };\r\n\r\n /**\r\n * Gets the number of remaining readable bytes. Contents are the bytes between {@link ByteBuffer#offset} and\r\n * {@link ByteBuffer#limit}, so this returns `limit - offset`.\r\n * @returns {number} Remaining readable bytes. May be negative if `offset > limit`.\r\n * @expose\r\n */\r\n ByteBufferPrototype.remaining = function() {\r\n return this.limit - this.offset;\r\n };\r\n /**\r\n * Resets this ByteBuffer's {@link ByteBuffer#offset}. If an offset has been marked through {@link ByteBuffer#mark}\r\n * before, `offset` will be set to {@link ByteBuffer#markedOffset}, which will then be discarded. If no offset has been\r\n * marked, sets `offset = 0`.\r\n * @returns {!ByteBuffer} this\r\n * @see ByteBuffer#mark\r\n * @expose\r\n */\r\n ByteBufferPrototype.reset = function() {\r\n if (this.markedOffset >= 0) {\r\n this.offset = this.markedOffset;\r\n this.markedOffset = -1;\r\n } else {\r\n this.offset = 0;\r\n }\r\n return this;\r\n };\r\n /**\r\n * Resizes this ByteBuffer to be backed by a buffer of at least the given capacity. Will do nothing if already that\r\n * large or larger.\r\n * @param {number} capacity Capacity required\r\n * @returns {!ByteBuffer} this\r\n * @throws {TypeError} If `capacity` is not a number\r\n * @throws {RangeError} If `capacity < 0`\r\n * @expose\r\n */\r\n ByteBufferPrototype.resize = function(capacity) {\r\n if (!this.noAssert) {\r\n if (typeof capacity !== 'number' || capacity % 1 !== 0)\n throw TypeError(\"Illegal capacity: \"+capacity+\" (not an integer)\");\n capacity |= 0;\n if (capacity < 0)\r\n throw RangeError(\"Illegal capacity: 0 <= \"+capacity);\r\n }\r\n if (this.buffer.length < capacity) {\r\n var buffer = new Buffer(capacity);\r\n this.buffer.copy(buffer);\r\n this.buffer = buffer;\r\n }\r\n return this;\r\n };\r\n /**\r\n * Reverses this ByteBuffer's contents.\r\n * @param {number=} begin Offset to start at, defaults to {@link ByteBuffer#offset}\r\n * @param {number=} end Offset to end at, defaults to {@link ByteBuffer#limit}\r\n * @returns {!ByteBuffer} this\r\n * @expose\r\n */\r\n ByteBufferPrototype.reverse = function(begin, end) {\r\n if (typeof begin === 'undefined') begin = this.offset;\r\n if (typeof end === 'undefined') end = this.limit;\r\n if (!this.noAssert) {\r\n if (typeof begin !== 'number' || begin % 1 !== 0)\n throw TypeError(\"Illegal begin: Not an integer\");\n begin >>>= 0;\n if (typeof end !== 'number' || end % 1 !== 0)\n throw TypeError(\"Illegal end: Not an integer\");\n end >>>= 0;\n if (begin < 0 || begin > end || end > this.buffer.length)\n throw RangeError(\"Illegal range: 0 <= \"+begin+\" <= \"+end+\" <= \"+this.buffer.length);\n }\r\n if (begin === end)\r\n return this; // Nothing to reverse\r\n Array.prototype.reverse.call(this.buffer.slice(begin, end));\r\n return this;\r\n };\r\n /**\r\n * Skips the next `length` bytes. This will just advance\r\n * @param {number} length Number of bytes to skip. May also be negative to move the offset back.\r\n * @returns {!ByteBuffer} this\r\n * @expose\r\n */\r\n ByteBufferPrototype.skip = function(length) {\r\n if (!this.noAssert) {\r\n if (typeof length !== 'number' || length % 1 !== 0)\n throw TypeError(\"Illegal length: \"+length+\" (not an integer)\");\n length |= 0;\n }\r\n var offset = this.offset + length;\r\n if (!this.noAssert) {\r\n if (offset < 0 || offset > this.buffer.length)\r\n throw RangeError(\"Illegal length: 0 <= \"+this.offset+\" + \"+length+\" <= \"+this.buffer.length);\r\n }\r\n this.offset = offset;\r\n return this;\r\n };\r\n\r\n /**\r\n * Slices this ByteBuffer by creating a cloned instance with `offset = begin` and `limit = end`.\r\n * @param {number=} begin Begin offset, defaults to {@link ByteBuffer#offset}.\r\n * @param {number=} end End offset, defaults to {@link ByteBuffer#limit}.\r\n * @returns {!ByteBuffer} Clone of this ByteBuffer with slicing applied, backed by the same {@link ByteBuffer#buffer}\r\n * @expose\r\n */\r\n ByteBufferPrototype.slice = function(begin, end) {\r\n if (typeof begin === 'undefined') begin = this.offset;\r\n if (typeof end === 'undefined') end = this.limit;\r\n if (!this.noAssert) {\r\n if (typeof begin !== 'number' || begin % 1 !== 0)\n throw TypeError(\"Illegal begin: Not an integer\");\n begin >>>= 0;\n if (typeof end !== 'number' || end % 1 !== 0)\n throw TypeError(\"Illegal end: Not an integer\");\n end >>>= 0;\n if (begin < 0 || begin > end || end > this.buffer.length)\n throw RangeError(\"Illegal range: 0 <= \"+begin+\" <= \"+end+\" <= \"+this.buffer.length);\n }\r\n var bb = this.clone();\r\n bb.offset = begin;\r\n bb.limit = end;\r\n return bb;\r\n };\r\n /**\r\n * Returns a copy of the backing buffer that contains this ByteBuffer's contents. Contents are the bytes between\r\n * {@link ByteBuffer#offset} and {@link ByteBuffer#limit}.\r\n * @param {boolean=} forceCopy If `true` returns a copy, otherwise returns a view referencing the same memory if\r\n * possible. Defaults to `false`\r\n * @returns {!Buffer} Contents as a Buffer\r\n * @expose\r\n */\r\n ByteBufferPrototype.toBuffer = function(forceCopy) {\r\n var offset = this.offset,\r\n limit = this.limit;\r\n if (!this.noAssert) {\r\n if (typeof offset !== 'number' || offset % 1 !== 0)\n throw TypeError(\"Illegal offset: Not an integer\");\n offset >>>= 0;\n if (typeof limit !== 'number' || limit % 1 !== 0)\n throw TypeError(\"Illegal limit: Not an integer\");\n limit >>>= 0;\n if (offset < 0 || offset > limit || limit > this.buffer.length)\n throw RangeError(\"Illegal range: 0 <= \"+offset+\" <= \"+limit+\" <= \"+this.buffer.length);\n }\r\n if (forceCopy) {\r\n var buffer = new Buffer(limit - offset);\r\n this.buffer.copy(buffer, 0, offset, limit);\r\n return buffer;\r\n } else {\r\n if (offset === 0 && limit === this.buffer.length)\r\n return this.buffer;\r\n else\r\n return this.buffer.slice(offset, limit);\r\n }\r\n };\r\n\r\n /**\r\n * Returns a copy of the backing buffer compacted to contain this ByteBuffer's contents. Contents are the bytes between\r\n * {@link ByteBuffer#offset} and {@link ByteBuffer#limit}.\r\n * @returns {!ArrayBuffer} Contents as an ArrayBuffer\r\n */\r\n ByteBufferPrototype.toArrayBuffer = function() {\r\n var offset = this.offset,\r\n limit = this.limit;\r\n if (!this.noAssert) {\r\n if (typeof offset !== 'number' || offset % 1 !== 0)\n throw TypeError(\"Illegal offset: Not an integer\");\n offset >>>= 0;\n if (typeof limit !== 'number' || limit % 1 !== 0)\n throw TypeError(\"Illegal limit: Not an integer\");\n limit >>>= 0;\n if (offset < 0 || offset > limit || limit > this.buffer.length)\n throw RangeError(\"Illegal range: 0 <= \"+offset+\" <= \"+limit+\" <= \"+this.buffer.length);\n }\r\n var ab = new ArrayBuffer(limit - offset);\r\n if (memcpy) { // Fast\r\n memcpy(ab, 0, this.buffer, offset, limit);\r\n } else { // Slow\r\n var dst = new Uint8Array(ab);\r\n for (var i=offset; i this.capacity || begin > end)\r\n throw RangeError(\"begin, end\");\r\n return this.buffer.toString(\"base64\", begin, end);\r\n };\r\n\r\n /**\r\n * Decodes a base64 encoded string to a ByteBuffer.\r\n * @param {string} str String to decode\r\n * @param {boolean=} littleEndian Whether to use little or big endian byte order. Defaults to\r\n * {@link ByteBuffer.DEFAULT_ENDIAN}.\r\n * @returns {!ByteBuffer} ByteBuffer\r\n * @expose\r\n */\r\n ByteBuffer.fromBase64 = function(str, littleEndian) {\r\n return ByteBuffer.wrap(new Buffer(str, \"base64\"), littleEndian);\r\n return bb;\r\n };\r\n\r\n /**\r\n * Encodes a binary string to base64 like `window.btoa` does.\r\n * @param {string} str Binary string\r\n * @returns {string} Base64 encoded string\r\n * @see https://developer.mozilla.org/en-US/docs/Web/API/Window.btoa\r\n * @expose\r\n */\r\n ByteBuffer.btoa = function(str) {\r\n return ByteBuffer.fromBinary(str).toBase64();\r\n };\r\n\r\n /**\r\n * Decodes a base64 encoded string to binary like `window.atob` does.\r\n * @param {string} b64 Base64 encoded string\r\n * @returns {string} Binary string\r\n * @see https://developer.mozilla.org/en-US/docs/Web/API/Window.atob\r\n * @expose\r\n */\r\n ByteBuffer.atob = function(b64) {\r\n return ByteBuffer.fromBase64(b64).toBinary();\r\n };\r\n\r\n // encodings/binary\r\n\r\n /**\r\n * Encodes this ByteBuffer to a binary encoded string, that is using only characters 0x00-0xFF as bytes.\r\n * @param {number=} begin Offset to begin at. Defaults to {@link ByteBuffer#offset}.\r\n * @param {number=} end Offset to end at. Defaults to {@link ByteBuffer#limit}.\r\n * @returns {string} Binary encoded string\r\n * @throws {RangeError} If `offset > limit`\r\n * @expose\r\n */\r\n ByteBufferPrototype.toBinary = function(begin, end) {\r\n if (typeof begin === 'undefined')\r\n begin = this.offset;\r\n if (typeof end === 'undefined')\r\n end = this.limit;\r\n begin |= 0; end |= 0;\r\n if (begin < 0 || end > this.capacity() || begin > end)\r\n throw RangeError(\"begin, end\");\r\n return this.buffer.toString(\"binary\", begin, end);\r\n };\r\n\r\n /**\r\n * Decodes a binary encoded string, that is using only characters 0x00-0xFF as bytes, to a ByteBuffer.\r\n * @param {string} str String to decode\r\n * @param {boolean=} littleEndian Whether to use little or big endian byte order. Defaults to\r\n * {@link ByteBuffer.DEFAULT_ENDIAN}.\r\n * @returns {!ByteBuffer} ByteBuffer\r\n * @expose\r\n */\r\n ByteBuffer.fromBinary = function(str, littleEndian) {\r\n return ByteBuffer.wrap(new Buffer(str, \"binary\"), littleEndian);\r\n return bb;\r\n };\r\n\r\n // encodings/debug\r\n\r\n /**\r\n * Encodes this ByteBuffer to a hex encoded string with marked offsets. Offset symbols are:\r\n * * `<` : offset,\r\n * * `'` : markedOffset,\r\n * * `>` : limit,\r\n * * `|` : offset and limit,\r\n * * `[` : offset and markedOffset,\r\n * * `]` : markedOffset and limit,\r\n * * `!` : offset, markedOffset and limit\r\n * @param {boolean=} columns If `true` returns two columns hex + ascii, defaults to `false`\r\n * @returns {string|!Array.} Debug string or array of lines if `asArray = true`\r\n * @expose\r\n * @example `>00'01 02<03` contains four bytes with `limit=0, markedOffset=1, offset=3`\r\n * @example `00[01 02 03>` contains four bytes with `offset=markedOffset=1, limit=4`\r\n * @example `00|01 02 03` contains four bytes with `offset=limit=1, markedOffset=-1`\r\n * @example `|` contains zero bytes with `offset=limit=0, markedOffset=-1`\r\n */\r\n ByteBufferPrototype.toDebug = function(columns) {\r\n var i = -1,\r\n k = this.buffer.length,\r\n b,\r\n hex = \"\",\r\n asc = \"\",\r\n out = \"\";\r\n while (i 32 && b < 127 ? String.fromCharCode(b) : '.';\r\n }\r\n ++i;\r\n if (columns) {\r\n if (i > 0 && i % 16 === 0 && i !== k) {\r\n while (hex.length < 3*16+3) hex += \" \";\r\n out += hex+asc+\"\\n\";\r\n hex = asc = \"\";\r\n }\r\n }\r\n if (i === this.offset && i === this.limit)\r\n hex += i === this.markedOffset ? \"!\" : \"|\";\r\n else if (i === this.offset)\r\n hex += i === this.markedOffset ? \"[\" : \"<\";\r\n else if (i === this.limit)\r\n hex += i === this.markedOffset ? \"]\" : \">\";\r\n else\r\n hex += i === this.markedOffset ? \"'\" : (columns || (i !== 0 && i !== k) ? \" \" : \"\");\r\n }\r\n if (columns && hex !== \" \") {\r\n while (hex.length < 3*16+3)\r\n hex += \" \";\r\n out += hex + asc + \"\\n\";\r\n }\r\n return columns ? out : hex;\r\n };\r\n\r\n /**\r\n * Decodes a hex encoded string with marked offsets to a ByteBuffer.\r\n * @param {string} str Debug string to decode (not be generated with `columns = true`)\r\n * @param {boolean=} littleEndian Whether to use little or big endian byte order. Defaults to\r\n * {@link ByteBuffer.DEFAULT_ENDIAN}.\r\n * @param {boolean=} noAssert Whether to skip assertions of offsets and values. Defaults to\r\n * {@link ByteBuffer.DEFAULT_NOASSERT}.\r\n * @returns {!ByteBuffer} ByteBuffer\r\n * @expose\r\n * @see ByteBuffer#toDebug\r\n */\r\n ByteBuffer.fromDebug = function(str, littleEndian, noAssert) {\r\n var k = str.length,\r\n bb = new ByteBuffer(((k+1)/3)|0, littleEndian, noAssert);\r\n var i = 0, j = 0, ch, b,\r\n rs = false, // Require symbol next\r\n ho = false, hm = false, hl = false, // Already has offset (ho), markedOffset (hm), limit (hl)?\r\n fail = false;\r\n while (i':\r\n if (!noAssert) {\r\n if (hl) {\r\n fail = true;\r\n break;\r\n }\r\n hl = true;\r\n }\r\n bb.limit = j;\r\n rs = false;\r\n break;\r\n case \"'\":\r\n if (!noAssert) {\r\n if (hm) {\r\n fail = true;\r\n break;\r\n }\r\n hm = true;\r\n }\r\n bb.markedOffset = j;\r\n rs = false;\r\n break;\r\n case ' ':\r\n rs = false;\r\n break;\r\n default:\r\n if (!noAssert) {\r\n if (rs) {\r\n fail = true;\r\n break;\r\n }\r\n }\r\n b = parseInt(ch+str.charAt(i++), 16);\r\n if (!noAssert) {\r\n if (isNaN(b) || b < 0 || b > 255)\r\n throw TypeError(\"Illegal str: Not a debug encoded string\");\r\n }\r\n bb.buffer[j++] = b;\r\n rs = true;\r\n }\r\n if (fail)\r\n throw TypeError(\"Illegal str: Invalid symbol at \"+i);\r\n }\r\n if (!noAssert) {\r\n if (!ho || !hl)\r\n throw TypeError(\"Illegal str: Missing offset or limit\");\r\n if (j>>= 0;\n if (typeof end !== 'number' || end % 1 !== 0)\n throw TypeError(\"Illegal end: Not an integer\");\n end >>>= 0;\n if (begin < 0 || begin > end || end > this.buffer.length)\n throw RangeError(\"Illegal range: 0 <= \"+begin+\" <= \"+end+\" <= \"+this.buffer.length);\n }\r\n return this.buffer.toString(\"hex\", begin, end);\r\n };\r\n\r\n /**\r\n * Decodes a hex encoded string to a ByteBuffer.\r\n * @param {string} str String to decode\r\n * @param {boolean=} littleEndian Whether to use little or big endian byte order. Defaults to\r\n * {@link ByteBuffer.DEFAULT_ENDIAN}.\r\n * @param {boolean=} noAssert Whether to skip assertions of offsets and values. Defaults to\r\n * {@link ByteBuffer.DEFAULT_NOASSERT}.\r\n * @returns {!ByteBuffer} ByteBuffer\r\n * @expose\r\n */\r\n ByteBuffer.fromHex = function(str, littleEndian, noAssert) {\r\n if (!noAssert) {\r\n if (typeof str !== 'string')\r\n throw TypeError(\"Illegal str: Not a string\");\r\n if (str.length % 2 !== 0)\r\n throw TypeError(\"Illegal str: Length not a multiple of 2\");\r\n }\r\n var bb = new ByteBuffer(0, littleEndian, true);\r\n bb.buffer = new Buffer(str, \"hex\");\r\n bb.limit = bb.buffer.length;\r\n return bb;\r\n };\r\n\r\n // utfx-embeddable\r\n\r\n /**\r\n * utfx-embeddable (c) 2014 Daniel Wirtz \r\n * Released under the Apache License, Version 2.0\r\n * see: https://github.com/dcodeIO/utfx for details\r\n */\r\n var utfx = function() {\r\n \"use strict\";\r\n\r\n /**\r\n * utfx namespace.\r\n * @inner\r\n * @type {!Object.}\r\n */\r\n var utfx = {};\r\n\r\n /**\r\n * Maximum valid code point.\r\n * @type {number}\r\n * @const\r\n */\r\n utfx.MAX_CODEPOINT = 0x10FFFF;\r\n\r\n /**\r\n * Encodes UTF8 code points to UTF8 bytes.\r\n * @param {(!function():number|null) | number} src Code points source, either as a function returning the next code point\r\n * respectively `null` if there are no more code points left or a single numeric code point.\r\n * @param {!function(number)} dst Bytes destination as a function successively called with the next byte\r\n */\r\n utfx.encodeUTF8 = function(src, dst) {\r\n var cp = null;\r\n if (typeof src === 'number')\r\n cp = src,\r\n src = function() { return null; };\r\n while (cp !== null || (cp = src()) !== null) {\r\n if (cp < 0x80)\r\n dst(cp&0x7F);\r\n else if (cp < 0x800)\r\n dst(((cp>>6)&0x1F)|0xC0),\r\n dst((cp&0x3F)|0x80);\r\n else if (cp < 0x10000)\r\n dst(((cp>>12)&0x0F)|0xE0),\r\n dst(((cp>>6)&0x3F)|0x80),\r\n dst((cp&0x3F)|0x80);\r\n else\r\n dst(((cp>>18)&0x07)|0xF0),\r\n dst(((cp>>12)&0x3F)|0x80),\r\n dst(((cp>>6)&0x3F)|0x80),\r\n dst((cp&0x3F)|0x80);\r\n cp = null;\r\n }\r\n };\r\n\r\n /**\r\n * Decodes UTF8 bytes to UTF8 code points.\r\n * @param {!function():number|null} src Bytes source as a function returning the next byte respectively `null` if there\r\n * are no more bytes left.\r\n * @param {!function(number)} dst Code points destination as a function successively called with each decoded code point.\r\n * @throws {RangeError} If a starting byte is invalid in UTF8\r\n * @throws {Error} If the last sequence is truncated. Has an array property `bytes` holding the\r\n * remaining bytes.\r\n */\r\n utfx.decodeUTF8 = function(src, dst) {\r\n var a, b, c, d, fail = function(b) {\r\n b = b.slice(0, b.indexOf(null));\r\n var err = Error(b.toString());\r\n err.name = \"TruncatedError\";\r\n err['bytes'] = b;\r\n throw err;\r\n };\r\n while ((a = src()) !== null) {\r\n if ((a&0x80) === 0)\r\n dst(a);\r\n else if ((a&0xE0) === 0xC0)\r\n ((b = src()) === null) && fail([a, b]),\r\n dst(((a&0x1F)<<6) | (b&0x3F));\r\n else if ((a&0xF0) === 0xE0)\r\n ((b=src()) === null || (c=src()) === null) && fail([a, b, c]),\r\n dst(((a&0x0F)<<12) | ((b&0x3F)<<6) | (c&0x3F));\r\n else if ((a&0xF8) === 0xF0)\r\n ((b=src()) === null || (c=src()) === null || (d=src()) === null) && fail([a, b, c ,d]),\r\n dst(((a&0x07)<<18) | ((b&0x3F)<<12) | ((c&0x3F)<<6) | (d&0x3F));\r\n else throw RangeError(\"Illegal starting byte: \"+a);\r\n }\r\n };\r\n\r\n /**\r\n * Converts UTF16 characters to UTF8 code points.\r\n * @param {!function():number|null} src Characters source as a function returning the next char code respectively\r\n * `null` if there are no more characters left.\r\n * @param {!function(number)} dst Code points destination as a function successively called with each converted code\r\n * point.\r\n */\r\n utfx.UTF16toUTF8 = function(src, dst) {\r\n var c1, c2 = null;\r\n while (true) {\r\n if ((c1 = c2 !== null ? c2 : src()) === null)\r\n break;\r\n if (c1 >= 0xD800 && c1 <= 0xDFFF) {\r\n if ((c2 = src()) !== null) {\r\n if (c2 >= 0xDC00 && c2 <= 0xDFFF) {\r\n dst((c1-0xD800)*0x400+c2-0xDC00+0x10000);\r\n c2 = null; continue;\r\n }\r\n }\r\n }\r\n dst(c1);\r\n }\r\n if (c2 !== null) dst(c2);\r\n };\r\n\r\n /**\r\n * Converts UTF8 code points to UTF16 characters.\r\n * @param {(!function():number|null) | number} src Code points source, either as a function returning the next code point\r\n * respectively `null` if there are no more code points left or a single numeric code point.\r\n * @param {!function(number)} dst Characters destination as a function successively called with each converted char code.\r\n * @throws {RangeError} If a code point is out of range\r\n */\r\n utfx.UTF8toUTF16 = function(src, dst) {\r\n var cp = null;\r\n if (typeof src === 'number')\r\n cp = src, src = function() { return null; };\r\n while (cp !== null || (cp = src()) !== null) {\r\n if (cp <= 0xFFFF)\r\n dst(cp);\r\n else\r\n cp -= 0x10000,\r\n dst((cp>>10)+0xD800),\r\n dst((cp%0x400)+0xDC00);\r\n cp = null;\r\n }\r\n };\r\n\r\n /**\r\n * Converts and encodes UTF16 characters to UTF8 bytes.\r\n * @param {!function():number|null} src Characters source as a function returning the next char code respectively `null`\r\n * if there are no more characters left.\r\n * @param {!function(number)} dst Bytes destination as a function successively called with the next byte.\r\n */\r\n utfx.encodeUTF16toUTF8 = function(src, dst) {\r\n utfx.UTF16toUTF8(src, function(cp) {\r\n utfx.encodeUTF8(cp, dst);\r\n });\r\n };\r\n\r\n /**\r\n * Decodes and converts UTF8 bytes to UTF16 characters.\r\n * @param {!function():number|null} src Bytes source as a function returning the next byte respectively `null` if there\r\n * are no more bytes left.\r\n * @param {!function(number)} dst Characters destination as a function successively called with each converted char code.\r\n * @throws {RangeError} If a starting byte is invalid in UTF8\r\n * @throws {Error} If the last sequence is truncated. Has an array property `bytes` holding the remaining bytes.\r\n */\r\n utfx.decodeUTF8toUTF16 = function(src, dst) {\r\n utfx.decodeUTF8(src, function(cp) {\r\n utfx.UTF8toUTF16(cp, dst);\r\n });\r\n };\r\n\r\n /**\r\n * Calculates the byte length of an UTF8 code point.\r\n * @param {number} cp UTF8 code point\r\n * @returns {number} Byte length\r\n */\r\n utfx.calculateCodePoint = function(cp) {\r\n return (cp < 0x80) ? 1 : (cp < 0x800) ? 2 : (cp < 0x10000) ? 3 : 4;\r\n };\r\n\r\n /**\r\n * Calculates the number of UTF8 bytes required to store UTF8 code points.\r\n * @param {(!function():number|null)} src Code points source as a function returning the next code point respectively\r\n * `null` if there are no more code points left.\r\n * @returns {number} The number of UTF8 bytes required\r\n */\r\n utfx.calculateUTF8 = function(src) {\r\n var cp, l=0;\r\n while ((cp = src()) !== null)\r\n l += (cp < 0x80) ? 1 : (cp < 0x800) ? 2 : (cp < 0x10000) ? 3 : 4;\r\n return l;\r\n };\r\n\r\n /**\r\n * Calculates the number of UTF8 code points respectively UTF8 bytes required to store UTF16 char codes.\r\n * @param {(!function():number|null)} src Characters source as a function returning the next char code respectively\r\n * `null` if there are no more characters left.\r\n * @returns {!Array.} The number of UTF8 code points at index 0 and the number of UTF8 bytes required at index 1.\r\n */\r\n utfx.calculateUTF16asUTF8 = function(src) {\r\n var n=0, l=0;\r\n utfx.UTF16toUTF8(src, function(cp) {\r\n ++n; l += (cp < 0x80) ? 1 : (cp < 0x800) ? 2 : (cp < 0x10000) ? 3 : 4;\r\n });\r\n return [n,l];\r\n };\r\n\r\n return utfx;\r\n }();\r\n\r\n // encodings/utf8\r\n\r\n /**\r\n * Encodes this ByteBuffer's contents between {@link ByteBuffer#offset} and {@link ByteBuffer#limit} to an UTF8 encoded\r\n * string.\r\n * @returns {string} Hex encoded string\r\n * @throws {RangeError} If `offset > limit`\r\n * @expose\r\n */\r\n ByteBufferPrototype.toUTF8 = function(begin, end) {\r\n if (typeof begin === 'undefined') begin = this.offset;\r\n if (typeof end === 'undefined') end = this.limit;\r\n if (!this.noAssert) {\r\n if (typeof begin !== 'number' || begin % 1 !== 0)\n throw TypeError(\"Illegal begin: Not an integer\");\n begin >>>= 0;\n if (typeof end !== 'number' || end % 1 !== 0)\n throw TypeError(\"Illegal end: Not an integer\");\n end >>>= 0;\n if (begin < 0 || begin > end || end > this.buffer.length)\n throw RangeError(\"Illegal range: 0 <= \"+begin+\" <= \"+end+\" <= \"+this.buffer.length);\n }\r\n return this.buffer.toString(\"utf8\", begin, end);\r\n };\r\n\r\n /**\r\n * Decodes an UTF8 encoded string to a ByteBuffer.\r\n * @param {string} str String to decode\r\n * @param {boolean=} littleEndian Whether to use little or big endian byte order. Defaults to\r\n * {@link ByteBuffer.DEFAULT_ENDIAN}.\r\n * @param {boolean=} noAssert Whether to skip assertions of offsets and values. Defaults to\r\n * {@link ByteBuffer.DEFAULT_NOASSERT}.\r\n * @returns {!ByteBuffer} ByteBuffer\r\n * @expose\r\n */\r\n ByteBuffer.fromUTF8 = function(str, littleEndian, noAssert) {\r\n if (!noAssert)\r\n if (typeof str !== 'string')\r\n throw TypeError(\"Illegal str: Not a string\");\r\n var bb = new ByteBuffer(0, littleEndian, noAssert);\r\n bb.buffer = new Buffer(str, \"utf8\");\r\n bb.limit = bb.buffer.length;\r\n return bb;\r\n };\r\n\r\n\r\n /**\r\n * node-memcpy. This is an optional binding dependency and may not be present.\r\n * @function\r\n * @param {!(Buffer|ArrayBuffer|Uint8Array)} target Destination\r\n * @param {number|!(Buffer|ArrayBuffer)} targetStart Destination start, defaults to 0.\r\n * @param {(!(Buffer|ArrayBuffer|Uint8Array)|number)=} source Source\r\n * @param {number=} sourceStart Source start, defaults to 0.\r\n * @param {number=} sourceEnd Source end, defaults to capacity.\r\n * @returns {number} Number of bytes copied\r\n * @throws {Error} If any index is out of bounds\r\n * @expose\r\n */\r\n ByteBuffer.memcpy = memcpy;\r\n\r\n return ByteBuffer;\r\n\r\n})();\r\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isPrimitiveField = void 0;\nconst primitiveTypes = [\n 'bool',\n 'string',\n 'bytes',\n 'int32',\n 'int64',\n 'uint32',\n 'uint64',\n 'sint32',\n 'sint64',\n 'fixed32',\n 'fixed64',\n 'sfixed32',\n 'sfixed64',\n 'double',\n 'float',\n];\nconst isPrimitiveField = (field) => primitiveTypes.includes(field);\nexports.isPrimitiveField = isPrimitiveField;\n//# sourceMappingURL=protobuf.js.map", "\"use strict\";\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.decode = void 0;\nconst ByteBuffer = require(\"bytebuffer\");\nconst protobuf_1 = require(\"../../utils/protobuf\");\nconst transform = (field, value) => {\n if ((0, protobuf_1.isPrimitiveField)(field.type)) {\n if (field.optional && typeof value === 'undefined') {\n return null;\n }\n if (field.type === 'bytes') {\n return ByteBuffer.wrap(value).toString('hex');\n }\n if (field.long) {\n if (Number.isSafeInteger(value.toNumber())) {\n return value.toNumber();\n }\n return value.toString();\n }\n return value;\n }\n if ('valuesById' in field.resolvedType) {\n return field.resolvedType.valuesById[value];\n }\n if (field.resolvedType.fields) {\n return messageToJSON(value, field.resolvedType.fields);\n }\n throw new Error(`transport: decode: case not handled: ${field}`);\n};\nfunction messageToJSON(Message, fields) {\n const message = __rest(Message, []);\n const res = {};\n Object.keys(fields).forEach(key => {\n const field = fields[key];\n const value = message[key];\n if (field.repeated) {\n res[key] = value.map((v) => transform(field, v));\n }\n else {\n res[key] = transform(field, value);\n }\n });\n return res;\n}\nconst decode = (Message, data) => {\n const buff = data.toBuffer();\n const a = new Uint8Array(buff);\n const decoded = Message.decode(a);\n return messageToJSON(decoded, decoded.$type.fields);\n};\nexports.decode = decode;\n//# sourceMappingURL=decode.js.map", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.encode = exports.patch = void 0;\nconst ByteBuffer = require(\"bytebuffer\");\nconst protobuf_1 = require(\"../../utils/protobuf\");\nconst transform = (fieldType, value) => {\n if (fieldType === 'bytes') {\n if (typeof value === 'string' && !value)\n return value;\n return Buffer.from(value, 'hex');\n }\n if (typeof value === 'number' && !Number.isSafeInteger(value)) {\n throw new RangeError('field value is not within safe integer range');\n }\n return value;\n};\nfunction patch(Message, payload) {\n const patched = {};\n if (!Message.fields) {\n return patched;\n }\n Object.keys(Message.fields).forEach(key => {\n const field = Message.fields[key];\n const value = payload[key];\n if (typeof value === 'undefined') {\n return;\n }\n if ((0, protobuf_1.isPrimitiveField)(field.type)) {\n if (field.repeated) {\n patched[key] = value.map((v) => transform(field.type, v));\n }\n else {\n patched[key] = transform(field.type, value);\n }\n return;\n }\n if (field.repeated) {\n const RefMessage = Message.lookupTypeOrEnum(field.type);\n patched[key] = value.map((v) => patch(RefMessage, v));\n }\n else if (typeof value === 'object' && value !== null) {\n const RefMessage = Message.lookupType(field.type);\n patched[key] = patch(RefMessage, value);\n }\n else if (typeof value === 'number') {\n const RefMessage = Message.lookupEnum(field.type);\n patched[key] = RefMessage.values[value];\n }\n else {\n patched[key] = value;\n }\n });\n return patched;\n}\nexports.patch = patch;\nconst encode = (Message, data) => {\n const payload = patch(Message, data);\n const message = Message.fromObject(payload);\n const buffer = Message.encode(message).finish();\n const bytebuffer = new ByteBuffer(buffer.byteLength);\n bytebuffer.append(buffer);\n bytebuffer.reset();\n return bytebuffer;\n};\nexports.encode = encode;\n//# sourceMappingURL=encode.js.map", "\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./decode\"), exports);\n__exportStar(require(\"./encode\"), exports);\n//# sourceMappingURL=index.js.map", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BUFFER_SIZE = exports.HEADER_SIZE = exports.MESSAGE_HEADER_BYTE = exports.DEFAULT_VERSION_URL = exports.DEFAULT_URL = void 0;\nexports.DEFAULT_URL = 'http://127.0.0.1:21325';\nexports.DEFAULT_VERSION_URL = 'https://data.trezor.io/bridge/latest.txt';\nexports.MESSAGE_HEADER_BYTE = 0x23;\nexports.HEADER_SIZE = 1 + 1 + 4 + 2;\nexports.BUFFER_SIZE = 63;\n//# sourceMappingURL=config.js.map", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.decodeChunked = exports.decode = void 0;\nconst ByteBuffer = require(\"bytebuffer\");\nconst config_1 = require(\"../../config\");\nconst readHeader = (buffer) => {\n const typeId = buffer.readUint16();\n const length = buffer.readUint32();\n return { typeId, length };\n};\nconst readHeaderChunked = (buffer) => {\n const sharp1 = buffer.readByte();\n const sharp2 = buffer.readByte();\n const typeId = buffer.readUint16();\n const length = buffer.readUint32();\n return { sharp1, sharp2, typeId, length };\n};\nconst decode = (byteBuffer) => {\n const { typeId } = readHeader(byteBuffer);\n return {\n typeId,\n buffer: byteBuffer,\n };\n};\nexports.decode = decode;\nconst decodeChunked = (bytes) => {\n const byteBuffer = ByteBuffer.wrap(bytes, undefined, undefined, true);\n const { sharp1, sharp2, typeId, length } = readHeaderChunked(byteBuffer);\n if (sharp1 !== config_1.MESSAGE_HEADER_BYTE || sharp2 !== config_1.MESSAGE_HEADER_BYTE) {\n throw new Error(\"Didn't receive expected header signature.\");\n }\n return { length, typeId, restBuffer: byteBuffer };\n};\nexports.decodeChunked = decodeChunked;\n//# sourceMappingURL=decode.js.map", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.encode = void 0;\nconst ByteBuffer = require(\"bytebuffer\");\nconst config_1 = require(\"../../config\");\nfunction encode(data, options) {\n const { addTrezorHeaders, chunked, messageType } = options;\n const fullSize = (addTrezorHeaders ? config_1.HEADER_SIZE : config_1.HEADER_SIZE - 2) + data.limit;\n const encodedByteBuffer = new ByteBuffer(fullSize);\n if (addTrezorHeaders) {\n encodedByteBuffer.writeByte(config_1.MESSAGE_HEADER_BYTE);\n encodedByteBuffer.writeByte(config_1.MESSAGE_HEADER_BYTE);\n }\n encodedByteBuffer.writeUint16(messageType);\n encodedByteBuffer.writeUint32(data.limit);\n encodedByteBuffer.append(data.buffer);\n encodedByteBuffer.reset();\n if (chunked === false) {\n return encodedByteBuffer;\n }\n const result = [];\n const size = config_1.BUFFER_SIZE;\n const count = Math.floor((encodedByteBuffer.limit - 1) / size) + 1 || 1;\n for (let i = 0; i < count; i++) {\n const start = i * size;\n const end = Math.min((i + 1) * size, encodedByteBuffer.limit);\n const slice = encodedByteBuffer.slice(start, end);\n slice.compact();\n result.push(slice.buffer);\n }\n return result;\n}\nexports.encode = encode;\n//# sourceMappingURL=encode.js.map", "\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./decode\"), exports);\n__exportStar(require(\"./encode\"), exports);\n//# sourceMappingURL=index.js.map", "\"use strict\";\r\nmodule.exports = asPromise;\r\n\r\n/**\r\n * Callback as used by {@link util.asPromise}.\r\n * @typedef asPromiseCallback\r\n * @type {function}\r\n * @param {Error|null} error Error, if any\r\n * @param {...*} params Additional arguments\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Returns a promise from a node-style callback function.\r\n * @memberof util\r\n * @param {asPromiseCallback} fn Function to call\r\n * @param {*} ctx Function context\r\n * @param {...*} params Function arguments\r\n * @returns {Promise<*>} Promisified function\r\n */\r\nfunction asPromise(fn, ctx/*, varargs */) {\r\n var params = new Array(arguments.length - 1),\r\n offset = 0,\r\n index = 2,\r\n pending = true;\r\n while (index < arguments.length)\r\n params[offset++] = arguments[index++];\r\n return new Promise(function executor(resolve, reject) {\r\n params[offset] = function callback(err/*, varargs */) {\r\n if (pending) {\r\n pending = false;\r\n if (err)\r\n reject(err);\r\n else {\r\n var params = new Array(arguments.length - 1),\r\n offset = 0;\r\n while (offset < params.length)\r\n params[offset++] = arguments[offset];\r\n resolve.apply(null, params);\r\n }\r\n }\r\n };\r\n try {\r\n fn.apply(ctx || null, params);\r\n } catch (err) {\r\n if (pending) {\r\n pending = false;\r\n reject(err);\r\n }\r\n }\r\n });\r\n}\r\n", "\"use strict\";\r\n\r\n/**\r\n * A minimal base64 implementation for number arrays.\r\n * @memberof util\r\n * @namespace\r\n */\r\nvar base64 = exports;\r\n\r\n/**\r\n * Calculates the byte length of a base64 encoded string.\r\n * @param {string} string Base64 encoded string\r\n * @returns {number} Byte length\r\n */\r\nbase64.length = function length(string) {\r\n var p = string.length;\r\n if (!p)\r\n return 0;\r\n var n = 0;\r\n while (--p % 4 > 1 && string.charAt(p) === \"=\")\r\n ++n;\r\n return Math.ceil(string.length * 3) / 4 - n;\r\n};\r\n\r\n// Base64 encoding table\r\nvar b64 = new Array(64);\r\n\r\n// Base64 decoding table\r\nvar s64 = new Array(123);\r\n\r\n// 65..90, 97..122, 48..57, 43, 47\r\nfor (var i = 0; i < 64;)\r\n s64[b64[i] = i < 26 ? i + 65 : i < 52 ? i + 71 : i < 62 ? i - 4 : i - 59 | 43] = i++;\r\n\r\n/**\r\n * Encodes a buffer to a base64 encoded string.\r\n * @param {Uint8Array} buffer Source buffer\r\n * @param {number} start Source start\r\n * @param {number} end Source end\r\n * @returns {string} Base64 encoded string\r\n */\r\nbase64.encode = function encode(buffer, start, end) {\r\n var parts = null,\r\n chunk = [];\r\n var i = 0, // output index\r\n j = 0, // goto index\r\n t; // temporary\r\n while (start < end) {\r\n var b = buffer[start++];\r\n switch (j) {\r\n case 0:\r\n chunk[i++] = b64[b >> 2];\r\n t = (b & 3) << 4;\r\n j = 1;\r\n break;\r\n case 1:\r\n chunk[i++] = b64[t | b >> 4];\r\n t = (b & 15) << 2;\r\n j = 2;\r\n break;\r\n case 2:\r\n chunk[i++] = b64[t | b >> 6];\r\n chunk[i++] = b64[b & 63];\r\n j = 0;\r\n break;\r\n }\r\n if (i > 8191) {\r\n (parts || (parts = [])).push(String.fromCharCode.apply(String, chunk));\r\n i = 0;\r\n }\r\n }\r\n if (j) {\r\n chunk[i++] = b64[t];\r\n chunk[i++] = 61;\r\n if (j === 1)\r\n chunk[i++] = 61;\r\n }\r\n if (parts) {\r\n if (i)\r\n parts.push(String.fromCharCode.apply(String, chunk.slice(0, i)));\r\n return parts.join(\"\");\r\n }\r\n return String.fromCharCode.apply(String, chunk.slice(0, i));\r\n};\r\n\r\nvar invalidEncoding = \"invalid encoding\";\r\n\r\n/**\r\n * Decodes a base64 encoded string to a buffer.\r\n * @param {string} string Source string\r\n * @param {Uint8Array} buffer Destination buffer\r\n * @param {number} offset Destination offset\r\n * @returns {number} Number of bytes written\r\n * @throws {Error} If encoding is invalid\r\n */\r\nbase64.decode = function decode(string, buffer, offset) {\r\n var start = offset;\r\n var j = 0, // goto index\r\n t; // temporary\r\n for (var i = 0; i < string.length;) {\r\n var c = string.charCodeAt(i++);\r\n if (c === 61 && j > 1)\r\n break;\r\n if ((c = s64[c]) === undefined)\r\n throw Error(invalidEncoding);\r\n switch (j) {\r\n case 0:\r\n t = c;\r\n j = 1;\r\n break;\r\n case 1:\r\n buffer[offset++] = t << 2 | (c & 48) >> 4;\r\n t = c;\r\n j = 2;\r\n break;\r\n case 2:\r\n buffer[offset++] = (t & 15) << 4 | (c & 60) >> 2;\r\n t = c;\r\n j = 3;\r\n break;\r\n case 3:\r\n buffer[offset++] = (t & 3) << 6 | c;\r\n j = 0;\r\n break;\r\n }\r\n }\r\n if (j === 1)\r\n throw Error(invalidEncoding);\r\n return offset - start;\r\n};\r\n\r\n/**\r\n * Tests if the specified string appears to be base64 encoded.\r\n * @param {string} string String to test\r\n * @returns {boolean} `true` if probably base64 encoded, otherwise false\r\n */\r\nbase64.test = function test(string) {\r\n return /^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(string);\r\n};\r\n", "\"use strict\";\r\nmodule.exports = EventEmitter;\r\n\r\n/**\r\n * Constructs a new event emitter instance.\r\n * @classdesc A minimal event emitter.\r\n * @memberof util\r\n * @constructor\r\n */\r\nfunction EventEmitter() {\r\n\r\n /**\r\n * Registered listeners.\r\n * @type {Object.}\r\n * @private\r\n */\r\n this._listeners = {};\r\n}\r\n\r\n/**\r\n * Registers an event listener.\r\n * @param {string} evt Event name\r\n * @param {function} fn Listener\r\n * @param {*} [ctx] Listener context\r\n * @returns {util.EventEmitter} `this`\r\n */\r\nEventEmitter.prototype.on = function on(evt, fn, ctx) {\r\n (this._listeners[evt] || (this._listeners[evt] = [])).push({\r\n fn : fn,\r\n ctx : ctx || this\r\n });\r\n return this;\r\n};\r\n\r\n/**\r\n * Removes an event listener or any matching listeners if arguments are omitted.\r\n * @param {string} [evt] Event name. Removes all listeners if omitted.\r\n * @param {function} [fn] Listener to remove. Removes all listeners of `evt` if omitted.\r\n * @returns {util.EventEmitter} `this`\r\n */\r\nEventEmitter.prototype.off = function off(evt, fn) {\r\n if (evt === undefined)\r\n this._listeners = {};\r\n else {\r\n if (fn === undefined)\r\n this._listeners[evt] = [];\r\n else {\r\n var listeners = this._listeners[evt];\r\n for (var i = 0; i < listeners.length;)\r\n if (listeners[i].fn === fn)\r\n listeners.splice(i, 1);\r\n else\r\n ++i;\r\n }\r\n }\r\n return this;\r\n};\r\n\r\n/**\r\n * Emits an event by calling its listeners with the specified arguments.\r\n * @param {string} evt Event name\r\n * @param {...*} args Arguments\r\n * @returns {util.EventEmitter} `this`\r\n */\r\nEventEmitter.prototype.emit = function emit(evt) {\r\n var listeners = this._listeners[evt];\r\n if (listeners) {\r\n var args = [],\r\n i = 1;\r\n for (; i < arguments.length;)\r\n args.push(arguments[i++]);\r\n for (i = 0; i < listeners.length;)\r\n listeners[i].fn.apply(listeners[i++].ctx, args);\r\n }\r\n return this;\r\n};\r\n", "\"use strict\";\r\n\r\nmodule.exports = factory(factory);\r\n\r\n/**\r\n * Reads / writes floats / doubles from / to buffers.\r\n * @name util.float\r\n * @namespace\r\n */\r\n\r\n/**\r\n * Writes a 32 bit float to a buffer using little endian byte order.\r\n * @name util.float.writeFloatLE\r\n * @function\r\n * @param {number} val Value to write\r\n * @param {Uint8Array} buf Target buffer\r\n * @param {number} pos Target buffer offset\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Writes a 32 bit float to a buffer using big endian byte order.\r\n * @name util.float.writeFloatBE\r\n * @function\r\n * @param {number} val Value to write\r\n * @param {Uint8Array} buf Target buffer\r\n * @param {number} pos Target buffer offset\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Reads a 32 bit float from a buffer using little endian byte order.\r\n * @name util.float.readFloatLE\r\n * @function\r\n * @param {Uint8Array} buf Source buffer\r\n * @param {number} pos Source buffer offset\r\n * @returns {number} Value read\r\n */\r\n\r\n/**\r\n * Reads a 32 bit float from a buffer using big endian byte order.\r\n * @name util.float.readFloatBE\r\n * @function\r\n * @param {Uint8Array} buf Source buffer\r\n * @param {number} pos Source buffer offset\r\n * @returns {number} Value read\r\n */\r\n\r\n/**\r\n * Writes a 64 bit double to a buffer using little endian byte order.\r\n * @name util.float.writeDoubleLE\r\n * @function\r\n * @param {number} val Value to write\r\n * @param {Uint8Array} buf Target buffer\r\n * @param {number} pos Target buffer offset\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Writes a 64 bit double to a buffer using big endian byte order.\r\n * @name util.float.writeDoubleBE\r\n * @function\r\n * @param {number} val Value to write\r\n * @param {Uint8Array} buf Target buffer\r\n * @param {number} pos Target buffer offset\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Reads a 64 bit double from a buffer using little endian byte order.\r\n * @name util.float.readDoubleLE\r\n * @function\r\n * @param {Uint8Array} buf Source buffer\r\n * @param {number} pos Source buffer offset\r\n * @returns {number} Value read\r\n */\r\n\r\n/**\r\n * Reads a 64 bit double from a buffer using big endian byte order.\r\n * @name util.float.readDoubleBE\r\n * @function\r\n * @param {Uint8Array} buf Source buffer\r\n * @param {number} pos Source buffer offset\r\n * @returns {number} Value read\r\n */\r\n\r\n// Factory function for the purpose of node-based testing in modified global environments\r\nfunction factory(exports) {\r\n\r\n // float: typed array\r\n if (typeof Float32Array !== \"undefined\") (function() {\r\n\r\n var f32 = new Float32Array([ -0 ]),\r\n f8b = new Uint8Array(f32.buffer),\r\n le = f8b[3] === 128;\r\n\r\n function writeFloat_f32_cpy(val, buf, pos) {\r\n f32[0] = val;\r\n buf[pos ] = f8b[0];\r\n buf[pos + 1] = f8b[1];\r\n buf[pos + 2] = f8b[2];\r\n buf[pos + 3] = f8b[3];\r\n }\r\n\r\n function writeFloat_f32_rev(val, buf, pos) {\r\n f32[0] = val;\r\n buf[pos ] = f8b[3];\r\n buf[pos + 1] = f8b[2];\r\n buf[pos + 2] = f8b[1];\r\n buf[pos + 3] = f8b[0];\r\n }\r\n\r\n /* istanbul ignore next */\r\n exports.writeFloatLE = le ? writeFloat_f32_cpy : writeFloat_f32_rev;\r\n /* istanbul ignore next */\r\n exports.writeFloatBE = le ? writeFloat_f32_rev : writeFloat_f32_cpy;\r\n\r\n function readFloat_f32_cpy(buf, pos) {\r\n f8b[0] = buf[pos ];\r\n f8b[1] = buf[pos + 1];\r\n f8b[2] = buf[pos + 2];\r\n f8b[3] = buf[pos + 3];\r\n return f32[0];\r\n }\r\n\r\n function readFloat_f32_rev(buf, pos) {\r\n f8b[3] = buf[pos ];\r\n f8b[2] = buf[pos + 1];\r\n f8b[1] = buf[pos + 2];\r\n f8b[0] = buf[pos + 3];\r\n return f32[0];\r\n }\r\n\r\n /* istanbul ignore next */\r\n exports.readFloatLE = le ? readFloat_f32_cpy : readFloat_f32_rev;\r\n /* istanbul ignore next */\r\n exports.readFloatBE = le ? readFloat_f32_rev : readFloat_f32_cpy;\r\n\r\n // float: ieee754\r\n })(); else (function() {\r\n\r\n function writeFloat_ieee754(writeUint, val, buf, pos) {\r\n var sign = val < 0 ? 1 : 0;\r\n if (sign)\r\n val = -val;\r\n if (val === 0)\r\n writeUint(1 / val > 0 ? /* positive */ 0 : /* negative 0 */ 2147483648, buf, pos);\r\n else if (isNaN(val))\r\n writeUint(2143289344, buf, pos);\r\n else if (val > 3.4028234663852886e+38) // +-Infinity\r\n writeUint((sign << 31 | 2139095040) >>> 0, buf, pos);\r\n else if (val < 1.1754943508222875e-38) // denormal\r\n writeUint((sign << 31 | Math.round(val / 1.401298464324817e-45)) >>> 0, buf, pos);\r\n else {\r\n var exponent = Math.floor(Math.log(val) / Math.LN2),\r\n mantissa = Math.round(val * Math.pow(2, -exponent) * 8388608) & 8388607;\r\n writeUint((sign << 31 | exponent + 127 << 23 | mantissa) >>> 0, buf, pos);\r\n }\r\n }\r\n\r\n exports.writeFloatLE = writeFloat_ieee754.bind(null, writeUintLE);\r\n exports.writeFloatBE = writeFloat_ieee754.bind(null, writeUintBE);\r\n\r\n function readFloat_ieee754(readUint, buf, pos) {\r\n var uint = readUint(buf, pos),\r\n sign = (uint >> 31) * 2 + 1,\r\n exponent = uint >>> 23 & 255,\r\n mantissa = uint & 8388607;\r\n return exponent === 255\r\n ? mantissa\r\n ? NaN\r\n : sign * Infinity\r\n : exponent === 0 // denormal\r\n ? sign * 1.401298464324817e-45 * mantissa\r\n : sign * Math.pow(2, exponent - 150) * (mantissa + 8388608);\r\n }\r\n\r\n exports.readFloatLE = readFloat_ieee754.bind(null, readUintLE);\r\n exports.readFloatBE = readFloat_ieee754.bind(null, readUintBE);\r\n\r\n })();\r\n\r\n // double: typed array\r\n if (typeof Float64Array !== \"undefined\") (function() {\r\n\r\n var f64 = new Float64Array([-0]),\r\n f8b = new Uint8Array(f64.buffer),\r\n le = f8b[7] === 128;\r\n\r\n function writeDouble_f64_cpy(val, buf, pos) {\r\n f64[0] = val;\r\n buf[pos ] = f8b[0];\r\n buf[pos + 1] = f8b[1];\r\n buf[pos + 2] = f8b[2];\r\n buf[pos + 3] = f8b[3];\r\n buf[pos + 4] = f8b[4];\r\n buf[pos + 5] = f8b[5];\r\n buf[pos + 6] = f8b[6];\r\n buf[pos + 7] = f8b[7];\r\n }\r\n\r\n function writeDouble_f64_rev(val, buf, pos) {\r\n f64[0] = val;\r\n buf[pos ] = f8b[7];\r\n buf[pos + 1] = f8b[6];\r\n buf[pos + 2] = f8b[5];\r\n buf[pos + 3] = f8b[4];\r\n buf[pos + 4] = f8b[3];\r\n buf[pos + 5] = f8b[2];\r\n buf[pos + 6] = f8b[1];\r\n buf[pos + 7] = f8b[0];\r\n }\r\n\r\n /* istanbul ignore next */\r\n exports.writeDoubleLE = le ? writeDouble_f64_cpy : writeDouble_f64_rev;\r\n /* istanbul ignore next */\r\n exports.writeDoubleBE = le ? writeDouble_f64_rev : writeDouble_f64_cpy;\r\n\r\n function readDouble_f64_cpy(buf, pos) {\r\n f8b[0] = buf[pos ];\r\n f8b[1] = buf[pos + 1];\r\n f8b[2] = buf[pos + 2];\r\n f8b[3] = buf[pos + 3];\r\n f8b[4] = buf[pos + 4];\r\n f8b[5] = buf[pos + 5];\r\n f8b[6] = buf[pos + 6];\r\n f8b[7] = buf[pos + 7];\r\n return f64[0];\r\n }\r\n\r\n function readDouble_f64_rev(buf, pos) {\r\n f8b[7] = buf[pos ];\r\n f8b[6] = buf[pos + 1];\r\n f8b[5] = buf[pos + 2];\r\n f8b[4] = buf[pos + 3];\r\n f8b[3] = buf[pos + 4];\r\n f8b[2] = buf[pos + 5];\r\n f8b[1] = buf[pos + 6];\r\n f8b[0] = buf[pos + 7];\r\n return f64[0];\r\n }\r\n\r\n /* istanbul ignore next */\r\n exports.readDoubleLE = le ? readDouble_f64_cpy : readDouble_f64_rev;\r\n /* istanbul ignore next */\r\n exports.readDoubleBE = le ? readDouble_f64_rev : readDouble_f64_cpy;\r\n\r\n // double: ieee754\r\n })(); else (function() {\r\n\r\n function writeDouble_ieee754(writeUint, off0, off1, val, buf, pos) {\r\n var sign = val < 0 ? 1 : 0;\r\n if (sign)\r\n val = -val;\r\n if (val === 0) {\r\n writeUint(0, buf, pos + off0);\r\n writeUint(1 / val > 0 ? /* positive */ 0 : /* negative 0 */ 2147483648, buf, pos + off1);\r\n } else if (isNaN(val)) {\r\n writeUint(0, buf, pos + off0);\r\n writeUint(2146959360, buf, pos + off1);\r\n } else if (val > 1.7976931348623157e+308) { // +-Infinity\r\n writeUint(0, buf, pos + off0);\r\n writeUint((sign << 31 | 2146435072) >>> 0, buf, pos + off1);\r\n } else {\r\n var mantissa;\r\n if (val < 2.2250738585072014e-308) { // denormal\r\n mantissa = val / 5e-324;\r\n writeUint(mantissa >>> 0, buf, pos + off0);\r\n writeUint((sign << 31 | mantissa / 4294967296) >>> 0, buf, pos + off1);\r\n } else {\r\n var exponent = Math.floor(Math.log(val) / Math.LN2);\r\n if (exponent === 1024)\r\n exponent = 1023;\r\n mantissa = val * Math.pow(2, -exponent);\r\n writeUint(mantissa * 4503599627370496 >>> 0, buf, pos + off0);\r\n writeUint((sign << 31 | exponent + 1023 << 20 | mantissa * 1048576 & 1048575) >>> 0, buf, pos + off1);\r\n }\r\n }\r\n }\r\n\r\n exports.writeDoubleLE = writeDouble_ieee754.bind(null, writeUintLE, 0, 4);\r\n exports.writeDoubleBE = writeDouble_ieee754.bind(null, writeUintBE, 4, 0);\r\n\r\n function readDouble_ieee754(readUint, off0, off1, buf, pos) {\r\n var lo = readUint(buf, pos + off0),\r\n hi = readUint(buf, pos + off1);\r\n var sign = (hi >> 31) * 2 + 1,\r\n exponent = hi >>> 20 & 2047,\r\n mantissa = 4294967296 * (hi & 1048575) + lo;\r\n return exponent === 2047\r\n ? mantissa\r\n ? NaN\r\n : sign * Infinity\r\n : exponent === 0 // denormal\r\n ? sign * 5e-324 * mantissa\r\n : sign * Math.pow(2, exponent - 1075) * (mantissa + 4503599627370496);\r\n }\r\n\r\n exports.readDoubleLE = readDouble_ieee754.bind(null, readUintLE, 0, 4);\r\n exports.readDoubleBE = readDouble_ieee754.bind(null, readUintBE, 4, 0);\r\n\r\n })();\r\n\r\n return exports;\r\n}\r\n\r\n// uint helpers\r\n\r\nfunction writeUintLE(val, buf, pos) {\r\n buf[pos ] = val & 255;\r\n buf[pos + 1] = val >>> 8 & 255;\r\n buf[pos + 2] = val >>> 16 & 255;\r\n buf[pos + 3] = val >>> 24;\r\n}\r\n\r\nfunction writeUintBE(val, buf, pos) {\r\n buf[pos ] = val >>> 24;\r\n buf[pos + 1] = val >>> 16 & 255;\r\n buf[pos + 2] = val >>> 8 & 255;\r\n buf[pos + 3] = val & 255;\r\n}\r\n\r\nfunction readUintLE(buf, pos) {\r\n return (buf[pos ]\r\n | buf[pos + 1] << 8\r\n | buf[pos + 2] << 16\r\n | buf[pos + 3] << 24) >>> 0;\r\n}\r\n\r\nfunction readUintBE(buf, pos) {\r\n return (buf[pos ] << 24\r\n | buf[pos + 1] << 16\r\n | buf[pos + 2] << 8\r\n | buf[pos + 3]) >>> 0;\r\n}\r\n", "\"use strict\";\r\nmodule.exports = inquire;\r\n\r\n/**\r\n * Requires a module only if available.\r\n * @memberof util\r\n * @param {string} moduleName Module to require\r\n * @returns {?Object} Required module if available and not empty, otherwise `null`\r\n */\r\nfunction inquire(moduleName) {\r\n try {\r\n var mod = eval(\"quire\".replace(/^/,\"re\"))(moduleName); // eslint-disable-line no-eval\r\n if (mod && (mod.length || Object.keys(mod).length))\r\n return mod;\r\n } catch (e) {} // eslint-disable-line no-empty\r\n return null;\r\n}\r\n", "\"use strict\";\r\n\r\n/**\r\n * A minimal UTF8 implementation for number arrays.\r\n * @memberof util\r\n * @namespace\r\n */\r\nvar utf8 = exports;\r\n\r\n/**\r\n * Calculates the UTF8 byte length of a string.\r\n * @param {string} string String\r\n * @returns {number} Byte length\r\n */\r\nutf8.length = function utf8_length(string) {\r\n var len = 0,\r\n c = 0;\r\n for (var i = 0; i < string.length; ++i) {\r\n c = string.charCodeAt(i);\r\n if (c < 128)\r\n len += 1;\r\n else if (c < 2048)\r\n len += 2;\r\n else if ((c & 0xFC00) === 0xD800 && (string.charCodeAt(i + 1) & 0xFC00) === 0xDC00) {\r\n ++i;\r\n len += 4;\r\n } else\r\n len += 3;\r\n }\r\n return len;\r\n};\r\n\r\n/**\r\n * Reads UTF8 bytes as a string.\r\n * @param {Uint8Array} buffer Source buffer\r\n * @param {number} start Source start\r\n * @param {number} end Source end\r\n * @returns {string} String read\r\n */\r\nutf8.read = function utf8_read(buffer, start, end) {\r\n var len = end - start;\r\n if (len < 1)\r\n return \"\";\r\n var parts = null,\r\n chunk = [],\r\n i = 0, // char offset\r\n t; // temporary\r\n while (start < end) {\r\n t = buffer[start++];\r\n if (t < 128)\r\n chunk[i++] = t;\r\n else if (t > 191 && t < 224)\r\n chunk[i++] = (t & 31) << 6 | buffer[start++] & 63;\r\n else if (t > 239 && t < 365) {\r\n t = ((t & 7) << 18 | (buffer[start++] & 63) << 12 | (buffer[start++] & 63) << 6 | buffer[start++] & 63) - 0x10000;\r\n chunk[i++] = 0xD800 + (t >> 10);\r\n chunk[i++] = 0xDC00 + (t & 1023);\r\n } else\r\n chunk[i++] = (t & 15) << 12 | (buffer[start++] & 63) << 6 | buffer[start++] & 63;\r\n if (i > 8191) {\r\n (parts || (parts = [])).push(String.fromCharCode.apply(String, chunk));\r\n i = 0;\r\n }\r\n }\r\n if (parts) {\r\n if (i)\r\n parts.push(String.fromCharCode.apply(String, chunk.slice(0, i)));\r\n return parts.join(\"\");\r\n }\r\n return String.fromCharCode.apply(String, chunk.slice(0, i));\r\n};\r\n\r\n/**\r\n * Writes a string as UTF8 bytes.\r\n * @param {string} string Source string\r\n * @param {Uint8Array} buffer Destination buffer\r\n * @param {number} offset Destination offset\r\n * @returns {number} Bytes written\r\n */\r\nutf8.write = function utf8_write(string, buffer, offset) {\r\n var start = offset,\r\n c1, // character 1\r\n c2; // character 2\r\n for (var i = 0; i < string.length; ++i) {\r\n c1 = string.charCodeAt(i);\r\n if (c1 < 128) {\r\n buffer[offset++] = c1;\r\n } else if (c1 < 2048) {\r\n buffer[offset++] = c1 >> 6 | 192;\r\n buffer[offset++] = c1 & 63 | 128;\r\n } else if ((c1 & 0xFC00) === 0xD800 && ((c2 = string.charCodeAt(i + 1)) & 0xFC00) === 0xDC00) {\r\n c1 = 0x10000 + ((c1 & 0x03FF) << 10) + (c2 & 0x03FF);\r\n ++i;\r\n buffer[offset++] = c1 >> 18 | 240;\r\n buffer[offset++] = c1 >> 12 & 63 | 128;\r\n buffer[offset++] = c1 >> 6 & 63 | 128;\r\n buffer[offset++] = c1 & 63 | 128;\r\n } else {\r\n buffer[offset++] = c1 >> 12 | 224;\r\n buffer[offset++] = c1 >> 6 & 63 | 128;\r\n buffer[offset++] = c1 & 63 | 128;\r\n }\r\n }\r\n return offset - start;\r\n};\r\n", "\"use strict\";\r\nmodule.exports = pool;\r\n\r\n/**\r\n * An allocator as used by {@link util.pool}.\r\n * @typedef PoolAllocator\r\n * @type {function}\r\n * @param {number} size Buffer size\r\n * @returns {Uint8Array} Buffer\r\n */\r\n\r\n/**\r\n * A slicer as used by {@link util.pool}.\r\n * @typedef PoolSlicer\r\n * @type {function}\r\n * @param {number} start Start offset\r\n * @param {number} end End offset\r\n * @returns {Uint8Array} Buffer slice\r\n * @this {Uint8Array}\r\n */\r\n\r\n/**\r\n * A general purpose buffer pool.\r\n * @memberof util\r\n * @function\r\n * @param {PoolAllocator} alloc Allocator\r\n * @param {PoolSlicer} slice Slicer\r\n * @param {number} [size=8192] Slab size\r\n * @returns {PoolAllocator} Pooled allocator\r\n */\r\nfunction pool(alloc, slice, size) {\r\n var SIZE = size || 8192;\r\n var MAX = SIZE >>> 1;\r\n var slab = null;\r\n var offset = SIZE;\r\n return function pool_alloc(size) {\r\n if (size < 1 || size > MAX)\r\n return alloc(size);\r\n if (offset + size > SIZE) {\r\n slab = alloc(SIZE);\r\n offset = 0;\r\n }\r\n var buf = slice.call(slab, offset, offset += size);\r\n if (offset & 7) // align to 32 bit\r\n offset = (offset | 7) + 1;\r\n return buf;\r\n };\r\n}\r\n", "\"use strict\";\nmodule.exports = LongBits;\n\nvar util = require(\"../util/minimal\");\n\n/**\n * Constructs new long bits.\n * @classdesc Helper class for working with the low and high bits of a 64 bit value.\n * @memberof util\n * @constructor\n * @param {number} lo Low 32 bits, unsigned\n * @param {number} hi High 32 bits, unsigned\n */\nfunction LongBits(lo, hi) {\n\n // note that the casts below are theoretically unnecessary as of today, but older statically\n // generated converter code might still call the ctor with signed 32bits. kept for compat.\n\n /**\n * Low bits.\n * @type {number}\n */\n this.lo = lo >>> 0;\n\n /**\n * High bits.\n * @type {number}\n */\n this.hi = hi >>> 0;\n}\n\n/**\n * Zero bits.\n * @memberof util.LongBits\n * @type {util.LongBits}\n */\nvar zero = LongBits.zero = new LongBits(0, 0);\n\nzero.toNumber = function() { return 0; };\nzero.zzEncode = zero.zzDecode = function() { return this; };\nzero.length = function() { return 1; };\n\n/**\n * Zero hash.\n * @memberof util.LongBits\n * @type {string}\n */\nvar zeroHash = LongBits.zeroHash = \"\\0\\0\\0\\0\\0\\0\\0\\0\";\n\n/**\n * Constructs new long bits from the specified number.\n * @param {number} value Value\n * @returns {util.LongBits} Instance\n */\nLongBits.fromNumber = function fromNumber(value) {\n if (value === 0)\n return zero;\n var sign = value < 0;\n if (sign)\n value = -value;\n var lo = value >>> 0,\n hi = (value - lo) / 4294967296 >>> 0;\n if (sign) {\n hi = ~hi >>> 0;\n lo = ~lo >>> 0;\n if (++lo > 4294967295) {\n lo = 0;\n if (++hi > 4294967295)\n hi = 0;\n }\n }\n return new LongBits(lo, hi);\n};\n\n/**\n * Constructs new long bits from a number, long or string.\n * @param {Long|number|string} value Value\n * @returns {util.LongBits} Instance\n */\nLongBits.from = function from(value) {\n if (typeof value === \"number\")\n return LongBits.fromNumber(value);\n if (util.isString(value)) {\n /* istanbul ignore else */\n if (util.Long)\n value = util.Long.fromString(value);\n else\n return LongBits.fromNumber(parseInt(value, 10));\n }\n return value.low || value.high ? new LongBits(value.low >>> 0, value.high >>> 0) : zero;\n};\n\n/**\n * Converts this long bits to a possibly unsafe JavaScript number.\n * @param {boolean} [unsigned=false] Whether unsigned or not\n * @returns {number} Possibly unsafe number\n */\nLongBits.prototype.toNumber = function toNumber(unsigned) {\n if (!unsigned && this.hi >>> 31) {\n var lo = ~this.lo + 1 >>> 0,\n hi = ~this.hi >>> 0;\n if (!lo)\n hi = hi + 1 >>> 0;\n return -(lo + hi * 4294967296);\n }\n return this.lo + this.hi * 4294967296;\n};\n\n/**\n * Converts this long bits to a long.\n * @param {boolean} [unsigned=false] Whether unsigned or not\n * @returns {Long} Long\n */\nLongBits.prototype.toLong = function toLong(unsigned) {\n return util.Long\n ? new util.Long(this.lo | 0, this.hi | 0, Boolean(unsigned))\n /* istanbul ignore next */\n : { low: this.lo | 0, high: this.hi | 0, unsigned: Boolean(unsigned) };\n};\n\nvar charCodeAt = String.prototype.charCodeAt;\n\n/**\n * Constructs new long bits from the specified 8 characters long hash.\n * @param {string} hash Hash\n * @returns {util.LongBits} Bits\n */\nLongBits.fromHash = function fromHash(hash) {\n if (hash === zeroHash)\n return zero;\n return new LongBits(\n ( charCodeAt.call(hash, 0)\n | charCodeAt.call(hash, 1) << 8\n | charCodeAt.call(hash, 2) << 16\n | charCodeAt.call(hash, 3) << 24) >>> 0\n ,\n ( charCodeAt.call(hash, 4)\n | charCodeAt.call(hash, 5) << 8\n | charCodeAt.call(hash, 6) << 16\n | charCodeAt.call(hash, 7) << 24) >>> 0\n );\n};\n\n/**\n * Converts this long bits to a 8 characters long hash.\n * @returns {string} Hash\n */\nLongBits.prototype.toHash = function toHash() {\n return String.fromCharCode(\n this.lo & 255,\n this.lo >>> 8 & 255,\n this.lo >>> 16 & 255,\n this.lo >>> 24 ,\n this.hi & 255,\n this.hi >>> 8 & 255,\n this.hi >>> 16 & 255,\n this.hi >>> 24\n );\n};\n\n/**\n * Zig-zag encodes this long bits.\n * @returns {util.LongBits} `this`\n */\nLongBits.prototype.zzEncode = function zzEncode() {\n var mask = this.hi >> 31;\n this.hi = ((this.hi << 1 | this.lo >>> 31) ^ mask) >>> 0;\n this.lo = ( this.lo << 1 ^ mask) >>> 0;\n return this;\n};\n\n/**\n * Zig-zag decodes this long bits.\n * @returns {util.LongBits} `this`\n */\nLongBits.prototype.zzDecode = function zzDecode() {\n var mask = -(this.lo & 1);\n this.lo = ((this.lo >>> 1 | this.hi << 31) ^ mask) >>> 0;\n this.hi = ( this.hi >>> 1 ^ mask) >>> 0;\n return this;\n};\n\n/**\n * Calculates the length of this longbits when encoded as a varint.\n * @returns {number} Length\n */\nLongBits.prototype.length = function length() {\n var part0 = this.lo,\n part1 = (this.lo >>> 28 | this.hi << 4) >>> 0,\n part2 = this.hi >>> 24;\n return part2 === 0\n ? part1 === 0\n ? part0 < 16384\n ? part0 < 128 ? 1 : 2\n : part0 < 2097152 ? 3 : 4\n : part1 < 16384\n ? part1 < 128 ? 5 : 6\n : part1 < 2097152 ? 7 : 8\n : part2 < 128 ? 9 : 10;\n};\n", "\"use strict\";\nvar util = exports;\n\n// used to return a Promise where callback is omitted\nutil.asPromise = require(\"@protobufjs/aspromise\");\n\n// converts to / from base64 encoded strings\nutil.base64 = require(\"@protobufjs/base64\");\n\n// base class of rpc.Service\nutil.EventEmitter = require(\"@protobufjs/eventemitter\");\n\n// float handling accross browsers\nutil.float = require(\"@protobufjs/float\");\n\n// requires modules optionally and hides the call from bundlers\nutil.inquire = require(\"@protobufjs/inquire\");\n\n// converts to / from utf8 encoded strings\nutil.utf8 = require(\"@protobufjs/utf8\");\n\n// provides a node-like buffer pool in the browser\nutil.pool = require(\"@protobufjs/pool\");\n\n// utility to work with the low and high bits of a 64 bit value\nutil.LongBits = require(\"./longbits\");\n\n/**\n * Whether running within node or not.\n * @memberof util\n * @type {boolean}\n */\nutil.isNode = Boolean(typeof global !== \"undefined\"\n && global\n && global.process\n && global.process.versions\n && global.process.versions.node);\n\n/**\n * Global object reference.\n * @memberof util\n * @type {Object}\n */\nutil.global = util.isNode && global\n || typeof window !== \"undefined\" && window\n || typeof self !== \"undefined\" && self\n || this; // eslint-disable-line no-invalid-this\n\n/**\n * An immuable empty array.\n * @memberof util\n * @type {Array.<*>}\n * @const\n */\nutil.emptyArray = Object.freeze ? Object.freeze([]) : /* istanbul ignore next */ []; // used on prototypes\n\n/**\n * An immutable empty object.\n * @type {Object}\n * @const\n */\nutil.emptyObject = Object.freeze ? Object.freeze({}) : /* istanbul ignore next */ {}; // used on prototypes\n\n/**\n * Tests if the specified value is an integer.\n * @function\n * @param {*} value Value to test\n * @returns {boolean} `true` if the value is an integer\n */\nutil.isInteger = Number.isInteger || /* istanbul ignore next */ function isInteger(value) {\n return typeof value === \"number\" && isFinite(value) && Math.floor(value) === value;\n};\n\n/**\n * Tests if the specified value is a string.\n * @param {*} value Value to test\n * @returns {boolean} `true` if the value is a string\n */\nutil.isString = function isString(value) {\n return typeof value === \"string\" || value instanceof String;\n};\n\n/**\n * Tests if the specified value is a non-null object.\n * @param {*} value Value to test\n * @returns {boolean} `true` if the value is a non-null object\n */\nutil.isObject = function isObject(value) {\n return value && typeof value === \"object\";\n};\n\n/**\n * Checks if a property on a message is considered to be present.\n * This is an alias of {@link util.isSet}.\n * @function\n * @param {Object} obj Plain object or message instance\n * @param {string} prop Property name\n * @returns {boolean} `true` if considered to be present, otherwise `false`\n */\nutil.isset =\n\n/**\n * Checks if a property on a message is considered to be present.\n * @param {Object} obj Plain object or message instance\n * @param {string} prop Property name\n * @returns {boolean} `true` if considered to be present, otherwise `false`\n */\nutil.isSet = function isSet(obj, prop) {\n var value = obj[prop];\n if (value != null && obj.hasOwnProperty(prop)) // eslint-disable-line eqeqeq, no-prototype-builtins\n return typeof value !== \"object\" || (Array.isArray(value) ? value.length : Object.keys(value).length) > 0;\n return false;\n};\n\n/**\n * Any compatible Buffer instance.\n * This is a minimal stand-alone definition of a Buffer instance. The actual type is that exported by node's typings.\n * @interface Buffer\n * @extends Uint8Array\n */\n\n/**\n * Node's Buffer class if available.\n * @type {Constructor}\n */\nutil.Buffer = (function() {\n try {\n var Buffer = util.inquire(\"buffer\").Buffer;\n // refuse to use non-node buffers if not explicitly assigned (perf reasons):\n return Buffer.prototype.utf8Write ? Buffer : /* istanbul ignore next */ null;\n } catch (e) {\n /* istanbul ignore next */\n return null;\n }\n})();\n\n// Internal alias of or polyfull for Buffer.from.\nutil._Buffer_from = null;\n\n// Internal alias of or polyfill for Buffer.allocUnsafe.\nutil._Buffer_allocUnsafe = null;\n\n/**\n * Creates a new buffer of whatever type supported by the environment.\n * @param {number|number[]} [sizeOrArray=0] Buffer size or number array\n * @returns {Uint8Array|Buffer} Buffer\n */\nutil.newBuffer = function newBuffer(sizeOrArray) {\n /* istanbul ignore next */\n return typeof sizeOrArray === \"number\"\n ? util.Buffer\n ? util._Buffer_allocUnsafe(sizeOrArray)\n : new util.Array(sizeOrArray)\n : util.Buffer\n ? util._Buffer_from(sizeOrArray)\n : typeof Uint8Array === \"undefined\"\n ? sizeOrArray\n : new Uint8Array(sizeOrArray);\n};\n\n/**\n * Array implementation used in the browser. `Uint8Array` if supported, otherwise `Array`.\n * @type {Constructor}\n */\nutil.Array = typeof Uint8Array !== \"undefined\" ? Uint8Array /* istanbul ignore next */ : Array;\n\n/**\n * Any compatible Long instance.\n * This is a minimal stand-alone definition of a Long instance. The actual type is that exported by long.js.\n * @interface Long\n * @property {number} low Low bits\n * @property {number} high High bits\n * @property {boolean} unsigned Whether unsigned or not\n */\n\n/**\n * Long.js's Long class if available.\n * @type {Constructor}\n */\nutil.Long = /* istanbul ignore next */ util.global.dcodeIO && /* istanbul ignore next */ util.global.dcodeIO.Long\n || /* istanbul ignore next */ util.global.Long\n || util.inquire(\"long\");\n\n/**\n * Regular expression used to verify 2 bit (`bool`) map keys.\n * @type {RegExp}\n * @const\n */\nutil.key2Re = /^true|false|0|1$/;\n\n/**\n * Regular expression used to verify 32 bit (`int32` etc.) map keys.\n * @type {RegExp}\n * @const\n */\nutil.key32Re = /^-?(?:0|[1-9][0-9]*)$/;\n\n/**\n * Regular expression used to verify 64 bit (`int64` etc.) map keys.\n * @type {RegExp}\n * @const\n */\nutil.key64Re = /^(?:[\\\\x00-\\\\xff]{8}|-?(?:0|[1-9][0-9]*))$/;\n\n/**\n * Converts a number or long to an 8 characters long hash string.\n * @param {Long|number} value Value to convert\n * @returns {string} Hash\n */\nutil.longToHash = function longToHash(value) {\n return value\n ? util.LongBits.from(value).toHash()\n : util.LongBits.zeroHash;\n};\n\n/**\n * Converts an 8 characters long hash string to a long or number.\n * @param {string} hash Hash\n * @param {boolean} [unsigned=false] Whether unsigned or not\n * @returns {Long|number} Original value\n */\nutil.longFromHash = function longFromHash(hash, unsigned) {\n var bits = util.LongBits.fromHash(hash);\n if (util.Long)\n return util.Long.fromBits(bits.lo, bits.hi, unsigned);\n return bits.toNumber(Boolean(unsigned));\n};\n\n/**\n * Merges the properties of the source object into the destination object.\n * @memberof util\n * @param {Object.} dst Destination object\n * @param {Object.} src Source object\n * @param {boolean} [ifNotSet=false] Merges only if the key is not already set\n * @returns {Object.} Destination object\n */\nfunction merge(dst, src, ifNotSet) { // used by converters\n for (var keys = Object.keys(src), i = 0; i < keys.length; ++i)\n if (dst[keys[i]] === undefined || !ifNotSet)\n dst[keys[i]] = src[keys[i]];\n return dst;\n}\n\nutil.merge = merge;\n\n/**\n * Converts the first character of a string to lower case.\n * @param {string} str String to convert\n * @returns {string} Converted string\n */\nutil.lcFirst = function lcFirst(str) {\n return str.charAt(0).toLowerCase() + str.substring(1);\n};\n\n/**\n * Creates a custom error constructor.\n * @memberof util\n * @param {string} name Error name\n * @returns {Constructor} Custom error constructor\n */\nfunction newError(name) {\n\n function CustomError(message, properties) {\n\n if (!(this instanceof CustomError))\n return new CustomError(message, properties);\n\n // Error.call(this, message);\n // ^ just returns a new error instance because the ctor can be called as a function\n\n Object.defineProperty(this, \"message\", { get: function() { return message; } });\n\n /* istanbul ignore next */\n if (Error.captureStackTrace) // node\n Error.captureStackTrace(this, CustomError);\n else\n Object.defineProperty(this, \"stack\", { value: new Error().stack || \"\" });\n\n if (properties)\n merge(this, properties);\n }\n\n (CustomError.prototype = Object.create(Error.prototype)).constructor = CustomError;\n\n Object.defineProperty(CustomError.prototype, \"name\", { get: function() { return name; } });\n\n CustomError.prototype.toString = function toString() {\n return this.name + \": \" + this.message;\n };\n\n return CustomError;\n}\n\nutil.newError = newError;\n\n/**\n * Constructs a new protocol error.\n * @classdesc Error subclass indicating a protocol specifc error.\n * @memberof util\n * @extends Error\n * @template T extends Message\n * @constructor\n * @param {string} message Error message\n * @param {Object.} [properties] Additional properties\n * @example\n * try {\n * MyMessage.decode(someBuffer); // throws if required fields are missing\n * } catch (e) {\n * if (e instanceof ProtocolError && e.instance)\n * console.log(\"decoded so far: \" + JSON.stringify(e.instance));\n * }\n */\nutil.ProtocolError = newError(\"ProtocolError\");\n\n/**\n * So far decoded message instance.\n * @name util.ProtocolError#instance\n * @type {Message}\n */\n\n/**\n * A OneOf getter as returned by {@link util.oneOfGetter}.\n * @typedef OneOfGetter\n * @type {function}\n * @returns {string|undefined} Set field name, if any\n */\n\n/**\n * Builds a getter for a oneof's present field name.\n * @param {string[]} fieldNames Field names\n * @returns {OneOfGetter} Unbound getter\n */\nutil.oneOfGetter = function getOneOf(fieldNames) {\n var fieldMap = {};\n for (var i = 0; i < fieldNames.length; ++i)\n fieldMap[fieldNames[i]] = 1;\n\n /**\n * @returns {string|undefined} Set field name, if any\n * @this Object\n * @ignore\n */\n return function() { // eslint-disable-line consistent-return\n for (var keys = Object.keys(this), i = keys.length - 1; i > -1; --i)\n if (fieldMap[keys[i]] === 1 && this[keys[i]] !== undefined && this[keys[i]] !== null)\n return keys[i];\n };\n};\n\n/**\n * A OneOf setter as returned by {@link util.oneOfSetter}.\n * @typedef OneOfSetter\n * @type {function}\n * @param {string|undefined} value Field name\n * @returns {undefined}\n */\n\n/**\n * Builds a setter for a oneof's present field name.\n * @param {string[]} fieldNames Field names\n * @returns {OneOfSetter} Unbound setter\n */\nutil.oneOfSetter = function setOneOf(fieldNames) {\n\n /**\n * @param {string} name Field name\n * @returns {undefined}\n * @this Object\n * @ignore\n */\n return function(name) {\n for (var i = 0; i < fieldNames.length; ++i)\n if (fieldNames[i] !== name)\n delete this[fieldNames[i]];\n };\n};\n\n/**\n * Default conversion options used for {@link Message#toJSON} implementations.\n *\n * These options are close to proto3's JSON mapping with the exception that internal types like Any are handled just like messages. More precisely:\n *\n * - Longs become strings\n * - Enums become string keys\n * - Bytes become base64 encoded strings\n * - (Sub-)Messages become plain objects\n * - Maps become plain objects with all string keys\n * - Repeated fields become arrays\n * - NaN and Infinity for float and double fields become strings\n *\n * @type {IConversionOptions}\n * @see https://developers.google.com/protocol-buffers/docs/proto3?hl=en#json\n */\nutil.toJSONOptions = {\n longs: String,\n enums: String,\n bytes: String,\n json: true\n};\n\n// Sets up buffer utility according to the environment (called in index-minimal)\nutil._configure = function() {\n var Buffer = util.Buffer;\n /* istanbul ignore if */\n if (!Buffer) {\n util._Buffer_from = util._Buffer_allocUnsafe = null;\n return;\n }\n // because node 4.x buffers are incompatible & immutable\n // see: https://github.com/dcodeIO/protobuf.js/pull/665\n util._Buffer_from = Buffer.from !== Uint8Array.from && Buffer.from ||\n /* istanbul ignore next */\n function Buffer_from(value, encoding) {\n return new Buffer(value, encoding);\n };\n util._Buffer_allocUnsafe = Buffer.allocUnsafe ||\n /* istanbul ignore next */\n function Buffer_allocUnsafe(size) {\n return new Buffer(size);\n };\n};\n", "\"use strict\";\nmodule.exports = Writer;\n\nvar util = require(\"./util/minimal\");\n\nvar BufferWriter; // cyclic\n\nvar LongBits = util.LongBits,\n base64 = util.base64,\n utf8 = util.utf8;\n\n/**\n * Constructs a new writer operation instance.\n * @classdesc Scheduled writer operation.\n * @constructor\n * @param {function(*, Uint8Array, number)} fn Function to call\n * @param {number} len Value byte length\n * @param {*} val Value to write\n * @ignore\n */\nfunction Op(fn, len, val) {\n\n /**\n * Function to call.\n * @type {function(Uint8Array, number, *)}\n */\n this.fn = fn;\n\n /**\n * Value byte length.\n * @type {number}\n */\n this.len = len;\n\n /**\n * Next operation.\n * @type {Writer.Op|undefined}\n */\n this.next = undefined;\n\n /**\n * Value to write.\n * @type {*}\n */\n this.val = val; // type varies\n}\n\n/* istanbul ignore next */\nfunction noop() {} // eslint-disable-line no-empty-function\n\n/**\n * Constructs a new writer state instance.\n * @classdesc Copied writer state.\n * @memberof Writer\n * @constructor\n * @param {Writer} writer Writer to copy state from\n * @ignore\n */\nfunction State(writer) {\n\n /**\n * Current head.\n * @type {Writer.Op}\n */\n this.head = writer.head;\n\n /**\n * Current tail.\n * @type {Writer.Op}\n */\n this.tail = writer.tail;\n\n /**\n * Current buffer length.\n * @type {number}\n */\n this.len = writer.len;\n\n /**\n * Next state.\n * @type {State|null}\n */\n this.next = writer.states;\n}\n\n/**\n * Constructs a new writer instance.\n * @classdesc Wire format writer using `Uint8Array` if available, otherwise `Array`.\n * @constructor\n */\nfunction Writer() {\n\n /**\n * Current length.\n * @type {number}\n */\n this.len = 0;\n\n /**\n * Operations head.\n * @type {Object}\n */\n this.head = new Op(noop, 0, 0);\n\n /**\n * Operations tail\n * @type {Object}\n */\n this.tail = this.head;\n\n /**\n * Linked forked states.\n * @type {Object|null}\n */\n this.states = null;\n\n // When a value is written, the writer calculates its byte length and puts it into a linked\n // list of operations to perform when finish() is called. This both allows us to allocate\n // buffers of the exact required size and reduces the amount of work we have to do compared\n // to first calculating over objects and then encoding over objects. In our case, the encoding\n // part is just a linked list walk calling operations with already prepared values.\n}\n\nvar create = function create() {\n return util.Buffer\n ? function create_buffer_setup() {\n return (Writer.create = function create_buffer() {\n return new BufferWriter();\n })();\n }\n /* istanbul ignore next */\n : function create_array() {\n return new Writer();\n };\n};\n\n/**\n * Creates a new writer.\n * @function\n * @returns {BufferWriter|Writer} A {@link BufferWriter} when Buffers are supported, otherwise a {@link Writer}\n */\nWriter.create = create();\n\n/**\n * Allocates a buffer of the specified size.\n * @param {number} size Buffer size\n * @returns {Uint8Array} Buffer\n */\nWriter.alloc = function alloc(size) {\n return new util.Array(size);\n};\n\n// Use Uint8Array buffer pool in the browser, just like node does with buffers\n/* istanbul ignore else */\nif (util.Array !== Array)\n Writer.alloc = util.pool(Writer.alloc, util.Array.prototype.subarray);\n\n/**\n * Pushes a new operation to the queue.\n * @param {function(Uint8Array, number, *)} fn Function to call\n * @param {number} len Value byte length\n * @param {number} val Value to write\n * @returns {Writer} `this`\n * @private\n */\nWriter.prototype._push = function push(fn, len, val) {\n this.tail = this.tail.next = new Op(fn, len, val);\n this.len += len;\n return this;\n};\n\nfunction writeByte(val, buf, pos) {\n buf[pos] = val & 255;\n}\n\nfunction writeVarint32(val, buf, pos) {\n while (val > 127) {\n buf[pos++] = val & 127 | 128;\n val >>>= 7;\n }\n buf[pos] = val;\n}\n\n/**\n * Constructs a new varint writer operation instance.\n * @classdesc Scheduled varint writer operation.\n * @extends Op\n * @constructor\n * @param {number} len Value byte length\n * @param {number} val Value to write\n * @ignore\n */\nfunction VarintOp(len, val) {\n this.len = len;\n this.next = undefined;\n this.val = val;\n}\n\nVarintOp.prototype = Object.create(Op.prototype);\nVarintOp.prototype.fn = writeVarint32;\n\n/**\n * Writes an unsigned 32 bit value as a varint.\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.uint32 = function write_uint32(value) {\n // here, the call to this.push has been inlined and a varint specific Op subclass is used.\n // uint32 is by far the most frequently used operation and benefits significantly from this.\n this.len += (this.tail = this.tail.next = new VarintOp(\n (value = value >>> 0)\n < 128 ? 1\n : value < 16384 ? 2\n : value < 2097152 ? 3\n : value < 268435456 ? 4\n : 5,\n value)).len;\n return this;\n};\n\n/**\n * Writes a signed 32 bit value as a varint.\n * @function\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.int32 = function write_int32(value) {\n return value < 0\n ? this._push(writeVarint64, 10, LongBits.fromNumber(value)) // 10 bytes per spec\n : this.uint32(value);\n};\n\n/**\n * Writes a 32 bit value as a varint, zig-zag encoded.\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.sint32 = function write_sint32(value) {\n return this.uint32((value << 1 ^ value >> 31) >>> 0);\n};\n\nfunction writeVarint64(val, buf, pos) {\n while (val.hi) {\n buf[pos++] = val.lo & 127 | 128;\n val.lo = (val.lo >>> 7 | val.hi << 25) >>> 0;\n val.hi >>>= 7;\n }\n while (val.lo > 127) {\n buf[pos++] = val.lo & 127 | 128;\n val.lo = val.lo >>> 7;\n }\n buf[pos++] = val.lo;\n}\n\n/**\n * Writes an unsigned 64 bit value as a varint.\n * @param {Long|number|string} value Value to write\n * @returns {Writer} `this`\n * @throws {TypeError} If `value` is a string and no long library is present.\n */\nWriter.prototype.uint64 = function write_uint64(value) {\n var bits = LongBits.from(value);\n return this._push(writeVarint64, bits.length(), bits);\n};\n\n/**\n * Writes a signed 64 bit value as a varint.\n * @function\n * @param {Long|number|string} value Value to write\n * @returns {Writer} `this`\n * @throws {TypeError} If `value` is a string and no long library is present.\n */\nWriter.prototype.int64 = Writer.prototype.uint64;\n\n/**\n * Writes a signed 64 bit value as a varint, zig-zag encoded.\n * @param {Long|number|string} value Value to write\n * @returns {Writer} `this`\n * @throws {TypeError} If `value` is a string and no long library is present.\n */\nWriter.prototype.sint64 = function write_sint64(value) {\n var bits = LongBits.from(value).zzEncode();\n return this._push(writeVarint64, bits.length(), bits);\n};\n\n/**\n * Writes a boolish value as a varint.\n * @param {boolean} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.bool = function write_bool(value) {\n return this._push(writeByte, 1, value ? 1 : 0);\n};\n\nfunction writeFixed32(val, buf, pos) {\n buf[pos ] = val & 255;\n buf[pos + 1] = val >>> 8 & 255;\n buf[pos + 2] = val >>> 16 & 255;\n buf[pos + 3] = val >>> 24;\n}\n\n/**\n * Writes an unsigned 32 bit value as fixed 32 bits.\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.fixed32 = function write_fixed32(value) {\n return this._push(writeFixed32, 4, value >>> 0);\n};\n\n/**\n * Writes a signed 32 bit value as fixed 32 bits.\n * @function\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.sfixed32 = Writer.prototype.fixed32;\n\n/**\n * Writes an unsigned 64 bit value as fixed 64 bits.\n * @param {Long|number|string} value Value to write\n * @returns {Writer} `this`\n * @throws {TypeError} If `value` is a string and no long library is present.\n */\nWriter.prototype.fixed64 = function write_fixed64(value) {\n var bits = LongBits.from(value);\n return this._push(writeFixed32, 4, bits.lo)._push(writeFixed32, 4, bits.hi);\n};\n\n/**\n * Writes a signed 64 bit value as fixed 64 bits.\n * @function\n * @param {Long|number|string} value Value to write\n * @returns {Writer} `this`\n * @throws {TypeError} If `value` is a string and no long library is present.\n */\nWriter.prototype.sfixed64 = Writer.prototype.fixed64;\n\n/**\n * Writes a float (32 bit).\n * @function\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.float = function write_float(value) {\n return this._push(util.float.writeFloatLE, 4, value);\n};\n\n/**\n * Writes a double (64 bit float).\n * @function\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.double = function write_double(value) {\n return this._push(util.float.writeDoubleLE, 8, value);\n};\n\nvar writeBytes = util.Array.prototype.set\n ? function writeBytes_set(val, buf, pos) {\n buf.set(val, pos); // also works for plain array values\n }\n /* istanbul ignore next */\n : function writeBytes_for(val, buf, pos) {\n for (var i = 0; i < val.length; ++i)\n buf[pos + i] = val[i];\n };\n\n/**\n * Writes a sequence of bytes.\n * @param {Uint8Array|string} value Buffer or base64 encoded string to write\n * @returns {Writer} `this`\n */\nWriter.prototype.bytes = function write_bytes(value) {\n var len = value.length >>> 0;\n if (!len)\n return this._push(writeByte, 1, 0);\n if (util.isString(value)) {\n var buf = Writer.alloc(len = base64.length(value));\n base64.decode(value, buf, 0);\n value = buf;\n }\n return this.uint32(len)._push(writeBytes, len, value);\n};\n\n/**\n * Writes a string.\n * @param {string} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.string = function write_string(value) {\n var len = utf8.length(value);\n return len\n ? this.uint32(len)._push(utf8.write, len, value)\n : this._push(writeByte, 1, 0);\n};\n\n/**\n * Forks this writer's state by pushing it to a stack.\n * Calling {@link Writer#reset|reset} or {@link Writer#ldelim|ldelim} resets the writer to the previous state.\n * @returns {Writer} `this`\n */\nWriter.prototype.fork = function fork() {\n this.states = new State(this);\n this.head = this.tail = new Op(noop, 0, 0);\n this.len = 0;\n return this;\n};\n\n/**\n * Resets this instance to the last state.\n * @returns {Writer} `this`\n */\nWriter.prototype.reset = function reset() {\n if (this.states) {\n this.head = this.states.head;\n this.tail = this.states.tail;\n this.len = this.states.len;\n this.states = this.states.next;\n } else {\n this.head = this.tail = new Op(noop, 0, 0);\n this.len = 0;\n }\n return this;\n};\n\n/**\n * Resets to the last state and appends the fork state's current write length as a varint followed by its operations.\n * @returns {Writer} `this`\n */\nWriter.prototype.ldelim = function ldelim() {\n var head = this.head,\n tail = this.tail,\n len = this.len;\n this.reset().uint32(len);\n if (len) {\n this.tail.next = head.next; // skip noop\n this.tail = tail;\n this.len += len;\n }\n return this;\n};\n\n/**\n * Finishes the write operation.\n * @returns {Uint8Array} Finished buffer\n */\nWriter.prototype.finish = function finish() {\n var head = this.head.next, // skip noop\n buf = this.constructor.alloc(this.len),\n pos = 0;\n while (head) {\n head.fn(head.val, buf, pos);\n pos += head.len;\n head = head.next;\n }\n // this.head = this.tail = null;\n return buf;\n};\n\nWriter._configure = function(BufferWriter_) {\n BufferWriter = BufferWriter_;\n Writer.create = create();\n BufferWriter._configure();\n};\n", "\"use strict\";\nmodule.exports = BufferWriter;\n\n// extends Writer\nvar Writer = require(\"./writer\");\n(BufferWriter.prototype = Object.create(Writer.prototype)).constructor = BufferWriter;\n\nvar util = require(\"./util/minimal\");\n\n/**\n * Constructs a new buffer writer instance.\n * @classdesc Wire format writer using node buffers.\n * @extends Writer\n * @constructor\n */\nfunction BufferWriter() {\n Writer.call(this);\n}\n\nBufferWriter._configure = function () {\n /**\n * Allocates a buffer of the specified size.\n * @function\n * @param {number} size Buffer size\n * @returns {Buffer} Buffer\n */\n BufferWriter.alloc = util._Buffer_allocUnsafe;\n\n BufferWriter.writeBytesBuffer = util.Buffer && util.Buffer.prototype instanceof Uint8Array && util.Buffer.prototype.set.name === \"set\"\n ? function writeBytesBuffer_set(val, buf, pos) {\n buf.set(val, pos); // faster than copy (requires node >= 4 where Buffers extend Uint8Array and set is properly inherited)\n // also works for plain array values\n }\n /* istanbul ignore next */\n : function writeBytesBuffer_copy(val, buf, pos) {\n if (val.copy) // Buffer values\n val.copy(buf, pos, 0, val.length);\n else for (var i = 0; i < val.length;) // plain array values\n buf[pos++] = val[i++];\n };\n};\n\n\n/**\n * @override\n */\nBufferWriter.prototype.bytes = function write_bytes_buffer(value) {\n if (util.isString(value))\n value = util._Buffer_from(value, \"base64\");\n var len = value.length >>> 0;\n this.uint32(len);\n if (len)\n this._push(BufferWriter.writeBytesBuffer, len, value);\n return this;\n};\n\nfunction writeStringBuffer(val, buf, pos) {\n if (val.length < 40) // plain js is faster for short strings (probably due to redundant assertions)\n util.utf8.write(val, buf, pos);\n else if (buf.utf8Write)\n buf.utf8Write(val, pos);\n else\n buf.write(val, pos);\n}\n\n/**\n * @override\n */\nBufferWriter.prototype.string = function write_string_buffer(value) {\n var len = util.Buffer.byteLength(value);\n this.uint32(len);\n if (len)\n this._push(writeStringBuffer, len, value);\n return this;\n};\n\n\n/**\n * Finishes the write operation.\n * @name BufferWriter#finish\n * @function\n * @returns {Buffer} Finished buffer\n */\n\nBufferWriter._configure();\n", "\"use strict\";\nmodule.exports = Reader;\n\nvar util = require(\"./util/minimal\");\n\nvar BufferReader; // cyclic\n\nvar LongBits = util.LongBits,\n utf8 = util.utf8;\n\n/* istanbul ignore next */\nfunction indexOutOfRange(reader, writeLength) {\n return RangeError(\"index out of range: \" + reader.pos + \" + \" + (writeLength || 1) + \" > \" + reader.len);\n}\n\n/**\n * Constructs a new reader instance using the specified buffer.\n * @classdesc Wire format reader using `Uint8Array` if available, otherwise `Array`.\n * @constructor\n * @param {Uint8Array} buffer Buffer to read from\n */\nfunction Reader(buffer) {\n\n /**\n * Read buffer.\n * @type {Uint8Array}\n */\n this.buf = buffer;\n\n /**\n * Read buffer position.\n * @type {number}\n */\n this.pos = 0;\n\n /**\n * Read buffer length.\n * @type {number}\n */\n this.len = buffer.length;\n}\n\nvar create_array = typeof Uint8Array !== \"undefined\"\n ? function create_typed_array(buffer) {\n if (buffer instanceof Uint8Array || Array.isArray(buffer))\n return new Reader(buffer);\n throw Error(\"illegal buffer\");\n }\n /* istanbul ignore next */\n : function create_array(buffer) {\n if (Array.isArray(buffer))\n return new Reader(buffer);\n throw Error(\"illegal buffer\");\n };\n\nvar create = function create() {\n return util.Buffer\n ? function create_buffer_setup(buffer) {\n return (Reader.create = function create_buffer(buffer) {\n return util.Buffer.isBuffer(buffer)\n ? new BufferReader(buffer)\n /* istanbul ignore next */\n : create_array(buffer);\n })(buffer);\n }\n /* istanbul ignore next */\n : create_array;\n};\n\n/**\n * Creates a new reader using the specified buffer.\n * @function\n * @param {Uint8Array|Buffer} buffer Buffer to read from\n * @returns {Reader|BufferReader} A {@link BufferReader} if `buffer` is a Buffer, otherwise a {@link Reader}\n * @throws {Error} If `buffer` is not a valid buffer\n */\nReader.create = create();\n\nReader.prototype._slice = util.Array.prototype.subarray || /* istanbul ignore next */ util.Array.prototype.slice;\n\n/**\n * Reads a varint as an unsigned 32 bit value.\n * @function\n * @returns {number} Value read\n */\nReader.prototype.uint32 = (function read_uint32_setup() {\n var value = 4294967295; // optimizer type-hint, tends to deopt otherwise (?!)\n return function read_uint32() {\n value = ( this.buf[this.pos] & 127 ) >>> 0; if (this.buf[this.pos++] < 128) return value;\n value = (value | (this.buf[this.pos] & 127) << 7) >>> 0; if (this.buf[this.pos++] < 128) return value;\n value = (value | (this.buf[this.pos] & 127) << 14) >>> 0; if (this.buf[this.pos++] < 128) return value;\n value = (value | (this.buf[this.pos] & 127) << 21) >>> 0; if (this.buf[this.pos++] < 128) return value;\n value = (value | (this.buf[this.pos] & 15) << 28) >>> 0; if (this.buf[this.pos++] < 128) return value;\n\n /* istanbul ignore if */\n if ((this.pos += 5) > this.len) {\n this.pos = this.len;\n throw indexOutOfRange(this, 10);\n }\n return value;\n };\n})();\n\n/**\n * Reads a varint as a signed 32 bit value.\n * @returns {number} Value read\n */\nReader.prototype.int32 = function read_int32() {\n return this.uint32() | 0;\n};\n\n/**\n * Reads a zig-zag encoded varint as a signed 32 bit value.\n * @returns {number} Value read\n */\nReader.prototype.sint32 = function read_sint32() {\n var value = this.uint32();\n return value >>> 1 ^ -(value & 1) | 0;\n};\n\n/* eslint-disable no-invalid-this */\n\nfunction readLongVarint() {\n // tends to deopt with local vars for octet etc.\n var bits = new LongBits(0, 0);\n var i = 0;\n if (this.len - this.pos > 4) { // fast route (lo)\n for (; i < 4; ++i) {\n // 1st..4th\n bits.lo = (bits.lo | (this.buf[this.pos] & 127) << i * 7) >>> 0;\n if (this.buf[this.pos++] < 128)\n return bits;\n }\n // 5th\n bits.lo = (bits.lo | (this.buf[this.pos] & 127) << 28) >>> 0;\n bits.hi = (bits.hi | (this.buf[this.pos] & 127) >> 4) >>> 0;\n if (this.buf[this.pos++] < 128)\n return bits;\n i = 0;\n } else {\n for (; i < 3; ++i) {\n /* istanbul ignore if */\n if (this.pos >= this.len)\n throw indexOutOfRange(this);\n // 1st..3th\n bits.lo = (bits.lo | (this.buf[this.pos] & 127) << i * 7) >>> 0;\n if (this.buf[this.pos++] < 128)\n return bits;\n }\n // 4th\n bits.lo = (bits.lo | (this.buf[this.pos++] & 127) << i * 7) >>> 0;\n return bits;\n }\n if (this.len - this.pos > 4) { // fast route (hi)\n for (; i < 5; ++i) {\n // 6th..10th\n bits.hi = (bits.hi | (this.buf[this.pos] & 127) << i * 7 + 3) >>> 0;\n if (this.buf[this.pos++] < 128)\n return bits;\n }\n } else {\n for (; i < 5; ++i) {\n /* istanbul ignore if */\n if (this.pos >= this.len)\n throw indexOutOfRange(this);\n // 6th..10th\n bits.hi = (bits.hi | (this.buf[this.pos] & 127) << i * 7 + 3) >>> 0;\n if (this.buf[this.pos++] < 128)\n return bits;\n }\n }\n /* istanbul ignore next */\n throw Error(\"invalid varint encoding\");\n}\n\n/* eslint-enable no-invalid-this */\n\n/**\n * Reads a varint as a signed 64 bit value.\n * @name Reader#int64\n * @function\n * @returns {Long} Value read\n */\n\n/**\n * Reads a varint as an unsigned 64 bit value.\n * @name Reader#uint64\n * @function\n * @returns {Long} Value read\n */\n\n/**\n * Reads a zig-zag encoded varint as a signed 64 bit value.\n * @name Reader#sint64\n * @function\n * @returns {Long} Value read\n */\n\n/**\n * Reads a varint as a boolean.\n * @returns {boolean} Value read\n */\nReader.prototype.bool = function read_bool() {\n return this.uint32() !== 0;\n};\n\nfunction readFixed32_end(buf, end) { // note that this uses `end`, not `pos`\n return (buf[end - 4]\n | buf[end - 3] << 8\n | buf[end - 2] << 16\n | buf[end - 1] << 24) >>> 0;\n}\n\n/**\n * Reads fixed 32 bits as an unsigned 32 bit integer.\n * @returns {number} Value read\n */\nReader.prototype.fixed32 = function read_fixed32() {\n\n /* istanbul ignore if */\n if (this.pos + 4 > this.len)\n throw indexOutOfRange(this, 4);\n\n return readFixed32_end(this.buf, this.pos += 4);\n};\n\n/**\n * Reads fixed 32 bits as a signed 32 bit integer.\n * @returns {number} Value read\n */\nReader.prototype.sfixed32 = function read_sfixed32() {\n\n /* istanbul ignore if */\n if (this.pos + 4 > this.len)\n throw indexOutOfRange(this, 4);\n\n return readFixed32_end(this.buf, this.pos += 4) | 0;\n};\n\n/* eslint-disable no-invalid-this */\n\nfunction readFixed64(/* this: Reader */) {\n\n /* istanbul ignore if */\n if (this.pos + 8 > this.len)\n throw indexOutOfRange(this, 8);\n\n return new LongBits(readFixed32_end(this.buf, this.pos += 4), readFixed32_end(this.buf, this.pos += 4));\n}\n\n/* eslint-enable no-invalid-this */\n\n/**\n * Reads fixed 64 bits.\n * @name Reader#fixed64\n * @function\n * @returns {Long} Value read\n */\n\n/**\n * Reads zig-zag encoded fixed 64 bits.\n * @name Reader#sfixed64\n * @function\n * @returns {Long} Value read\n */\n\n/**\n * Reads a float (32 bit) as a number.\n * @function\n * @returns {number} Value read\n */\nReader.prototype.float = function read_float() {\n\n /* istanbul ignore if */\n if (this.pos + 4 > this.len)\n throw indexOutOfRange(this, 4);\n\n var value = util.float.readFloatLE(this.buf, this.pos);\n this.pos += 4;\n return value;\n};\n\n/**\n * Reads a double (64 bit float) as a number.\n * @function\n * @returns {number} Value read\n */\nReader.prototype.double = function read_double() {\n\n /* istanbul ignore if */\n if (this.pos + 8 > this.len)\n throw indexOutOfRange(this, 4);\n\n var value = util.float.readDoubleLE(this.buf, this.pos);\n this.pos += 8;\n return value;\n};\n\n/**\n * Reads a sequence of bytes preceeded by its length as a varint.\n * @returns {Uint8Array} Value read\n */\nReader.prototype.bytes = function read_bytes() {\n var length = this.uint32(),\n start = this.pos,\n end = this.pos + length;\n\n /* istanbul ignore if */\n if (end > this.len)\n throw indexOutOfRange(this, length);\n\n this.pos += length;\n if (Array.isArray(this.buf)) // plain array\n return this.buf.slice(start, end);\n return start === end // fix for IE 10/Win8 and others' subarray returning array of size 1\n ? new this.buf.constructor(0)\n : this._slice.call(this.buf, start, end);\n};\n\n/**\n * Reads a string preceeded by its byte length as a varint.\n * @returns {string} Value read\n */\nReader.prototype.string = function read_string() {\n var bytes = this.bytes();\n return utf8.read(bytes, 0, bytes.length);\n};\n\n/**\n * Skips the specified number of bytes if specified, otherwise skips a varint.\n * @param {number} [length] Length if known, otherwise a varint is assumed\n * @returns {Reader} `this`\n */\nReader.prototype.skip = function skip(length) {\n if (typeof length === \"number\") {\n /* istanbul ignore if */\n if (this.pos + length > this.len)\n throw indexOutOfRange(this, length);\n this.pos += length;\n } else {\n do {\n /* istanbul ignore if */\n if (this.pos >= this.len)\n throw indexOutOfRange(this);\n } while (this.buf[this.pos++] & 128);\n }\n return this;\n};\n\n/**\n * Skips the next element of the specified wire type.\n * @param {number} wireType Wire type received\n * @returns {Reader} `this`\n */\nReader.prototype.skipType = function(wireType) {\n switch (wireType) {\n case 0:\n this.skip();\n break;\n case 1:\n this.skip(8);\n break;\n case 2:\n this.skip(this.uint32());\n break;\n case 3:\n while ((wireType = this.uint32() & 7) !== 4) {\n this.skipType(wireType);\n }\n break;\n case 5:\n this.skip(4);\n break;\n\n /* istanbul ignore next */\n default:\n throw Error(\"invalid wire type \" + wireType + \" at offset \" + this.pos);\n }\n return this;\n};\n\nReader._configure = function(BufferReader_) {\n BufferReader = BufferReader_;\n Reader.create = create();\n BufferReader._configure();\n\n var fn = util.Long ? \"toLong\" : /* istanbul ignore next */ \"toNumber\";\n util.merge(Reader.prototype, {\n\n int64: function read_int64() {\n return readLongVarint.call(this)[fn](false);\n },\n\n uint64: function read_uint64() {\n return readLongVarint.call(this)[fn](true);\n },\n\n sint64: function read_sint64() {\n return readLongVarint.call(this).zzDecode()[fn](false);\n },\n\n fixed64: function read_fixed64() {\n return readFixed64.call(this)[fn](true);\n },\n\n sfixed64: function read_sfixed64() {\n return readFixed64.call(this)[fn](false);\n }\n\n });\n};\n", "\"use strict\";\nmodule.exports = BufferReader;\n\n// extends Reader\nvar Reader = require(\"./reader\");\n(BufferReader.prototype = Object.create(Reader.prototype)).constructor = BufferReader;\n\nvar util = require(\"./util/minimal\");\n\n/**\n * Constructs a new buffer reader instance.\n * @classdesc Wire format reader using node buffers.\n * @extends Reader\n * @constructor\n * @param {Buffer} buffer Buffer to read from\n */\nfunction BufferReader(buffer) {\n Reader.call(this, buffer);\n\n /**\n * Read buffer.\n * @name BufferReader#buf\n * @type {Buffer}\n */\n}\n\nBufferReader._configure = function () {\n /* istanbul ignore else */\n if (util.Buffer)\n BufferReader.prototype._slice = util.Buffer.prototype.slice;\n};\n\n\n/**\n * @override\n */\nBufferReader.prototype.string = function read_string_buffer() {\n var len = this.uint32(); // modifies pos\n return this.buf.utf8Slice\n ? this.buf.utf8Slice(this.pos, this.pos = Math.min(this.pos + len, this.len))\n : this.buf.toString(\"utf-8\", this.pos, this.pos = Math.min(this.pos + len, this.len));\n};\n\n/**\n * Reads a sequence of bytes preceeded by its length as a varint.\n * @name BufferReader#bytes\n * @function\n * @returns {Buffer} Value read\n */\n\nBufferReader._configure();\n", "\"use strict\";\nmodule.exports = Service;\n\nvar util = require(\"../util/minimal\");\n\n// Extends EventEmitter\n(Service.prototype = Object.create(util.EventEmitter.prototype)).constructor = Service;\n\n/**\n * A service method callback as used by {@link rpc.ServiceMethod|ServiceMethod}.\n *\n * Differs from {@link RPCImplCallback} in that it is an actual callback of a service method which may not return `response = null`.\n * @typedef rpc.ServiceMethodCallback\n * @template TRes extends Message\n * @type {function}\n * @param {Error|null} error Error, if any\n * @param {TRes} [response] Response message\n * @returns {undefined}\n */\n\n/**\n * A service method part of a {@link rpc.Service} as created by {@link Service.create}.\n * @typedef rpc.ServiceMethod\n * @template TReq extends Message\n * @template TRes extends Message\n * @type {function}\n * @param {TReq|Properties} request Request message or plain object\n * @param {rpc.ServiceMethodCallback} [callback] Node-style callback called with the error, if any, and the response message\n * @returns {Promise>} Promise if `callback` has been omitted, otherwise `undefined`\n */\n\n/**\n * Constructs a new RPC service instance.\n * @classdesc An RPC service as returned by {@link Service#create}.\n * @exports rpc.Service\n * @extends util.EventEmitter\n * @constructor\n * @param {RPCImpl} rpcImpl RPC implementation\n * @param {boolean} [requestDelimited=false] Whether requests are length-delimited\n * @param {boolean} [responseDelimited=false] Whether responses are length-delimited\n */\nfunction Service(rpcImpl, requestDelimited, responseDelimited) {\n\n if (typeof rpcImpl !== \"function\")\n throw TypeError(\"rpcImpl must be a function\");\n\n util.EventEmitter.call(this);\n\n /**\n * RPC implementation. Becomes `null` once the service is ended.\n * @type {RPCImpl|null}\n */\n this.rpcImpl = rpcImpl;\n\n /**\n * Whether requests are length-delimited.\n * @type {boolean}\n */\n this.requestDelimited = Boolean(requestDelimited);\n\n /**\n * Whether responses are length-delimited.\n * @type {boolean}\n */\n this.responseDelimited = Boolean(responseDelimited);\n}\n\n/**\n * Calls a service method through {@link rpc.Service#rpcImpl|rpcImpl}.\n * @param {Method|rpc.ServiceMethod} method Reflected or static method\n * @param {Constructor} requestCtor Request constructor\n * @param {Constructor} responseCtor Response constructor\n * @param {TReq|Properties} request Request message or plain object\n * @param {rpc.ServiceMethodCallback} callback Service callback\n * @returns {undefined}\n * @template TReq extends Message\n * @template TRes extends Message\n */\nService.prototype.rpcCall = function rpcCall(method, requestCtor, responseCtor, request, callback) {\n\n if (!request)\n throw TypeError(\"request must be specified\");\n\n var self = this;\n if (!callback)\n return util.asPromise(rpcCall, self, method, requestCtor, responseCtor, request);\n\n if (!self.rpcImpl) {\n setTimeout(function() { callback(Error(\"already ended\")); }, 0);\n return undefined;\n }\n\n try {\n return self.rpcImpl(\n method,\n requestCtor[self.requestDelimited ? \"encodeDelimited\" : \"encode\"](request).finish(),\n function rpcCallback(err, response) {\n\n if (err) {\n self.emit(\"error\", err, method);\n return callback(err);\n }\n\n if (response === null) {\n self.end(/* endedByRPC */ true);\n return undefined;\n }\n\n if (!(response instanceof responseCtor)) {\n try {\n response = responseCtor[self.responseDelimited ? \"decodeDelimited\" : \"decode\"](response);\n } catch (err) {\n self.emit(\"error\", err, method);\n return callback(err);\n }\n }\n\n self.emit(\"data\", response, method);\n return callback(null, response);\n }\n );\n } catch (err) {\n self.emit(\"error\", err, method);\n setTimeout(function() { callback(err); }, 0);\n return undefined;\n }\n};\n\n/**\n * Ends this service and emits the `end` event.\n * @param {boolean} [endedByRPC=false] Whether the service has been ended by the RPC implementation.\n * @returns {rpc.Service} `this`\n */\nService.prototype.end = function end(endedByRPC) {\n if (this.rpcImpl) {\n if (!endedByRPC) // signal end to rpcImpl\n this.rpcImpl(null, null, null);\n this.rpcImpl = null;\n this.emit(\"end\").off();\n }\n return this;\n};\n", "\"use strict\";\n\n/**\n * Streaming RPC helpers.\n * @namespace\n */\nvar rpc = exports;\n\n/**\n * RPC implementation passed to {@link Service#create} performing a service request on network level, i.e. by utilizing http requests or websockets.\n * @typedef RPCImpl\n * @type {function}\n * @param {Method|rpc.ServiceMethod,Message<{}>>} method Reflected or static method being called\n * @param {Uint8Array} requestData Request data\n * @param {RPCImplCallback} callback Callback function\n * @returns {undefined}\n * @example\n * function rpcImpl(method, requestData, callback) {\n * if (protobuf.util.lcFirst(method.name) !== \"myMethod\") // compatible with static code\n * throw Error(\"no such method\");\n * asynchronouslyObtainAResponse(requestData, function(err, responseData) {\n * callback(err, responseData);\n * });\n * }\n */\n\n/**\n * Node-style callback as used by {@link RPCImpl}.\n * @typedef RPCImplCallback\n * @type {function}\n * @param {Error|null} error Error, if any, otherwise `null`\n * @param {Uint8Array|null} [response] Response data or `null` to signal end of stream, if there hasn't been an error\n * @returns {undefined}\n */\n\nrpc.Service = require(\"./rpc/service\");\n", "\"use strict\";\nmodule.exports = {};\n\n/**\n * Named roots.\n * This is where pbjs stores generated structures (the option `-r, --root` specifies a name).\n * Can also be used manually to make roots available accross modules.\n * @name roots\n * @type {Object.}\n * @example\n * // pbjs -r myroot -o compiled.js ...\n *\n * // in another module:\n * require(\"./compiled.js\");\n *\n * // in any subsequent module:\n * var root = protobuf.roots[\"myroot\"];\n */\n", "\"use strict\";\nvar protobuf = exports;\n\n/**\n * Build type, one of `\"full\"`, `\"light\"` or `\"minimal\"`.\n * @name build\n * @type {string}\n * @const\n */\nprotobuf.build = \"minimal\";\n\n// Serialization\nprotobuf.Writer = require(\"./writer\");\nprotobuf.BufferWriter = require(\"./writer_buffer\");\nprotobuf.Reader = require(\"./reader\");\nprotobuf.BufferReader = require(\"./reader_buffer\");\n\n// Utility\nprotobuf.util = require(\"./util/minimal\");\nprotobuf.rpc = require(\"./rpc\");\nprotobuf.roots = require(\"./roots\");\nprotobuf.configure = configure;\n\n/* istanbul ignore next */\n/**\n * Reconfigures the library according to the environment.\n * @returns {undefined}\n */\nfunction configure() {\n protobuf.util._configure();\n protobuf.Writer._configure(protobuf.BufferWriter);\n protobuf.Reader._configure(protobuf.BufferReader);\n}\n\n// Set up buffer utility according to the environment\nconfigure();\n", "\"use strict\";\r\nmodule.exports = codegen;\r\n\r\n/**\r\n * Begins generating a function.\r\n * @memberof util\r\n * @param {string[]} functionParams Function parameter names\r\n * @param {string} [functionName] Function name if not anonymous\r\n * @returns {Codegen} Appender that appends code to the function's body\r\n */\r\nfunction codegen(functionParams, functionName) {\r\n\r\n /* istanbul ignore if */\r\n if (typeof functionParams === \"string\") {\r\n functionName = functionParams;\r\n functionParams = undefined;\r\n }\r\n\r\n var body = [];\r\n\r\n /**\r\n * Appends code to the function's body or finishes generation.\r\n * @typedef Codegen\r\n * @type {function}\r\n * @param {string|Object.} [formatStringOrScope] Format string or, to finish the function, an object of additional scope variables, if any\r\n * @param {...*} [formatParams] Format parameters\r\n * @returns {Codegen|Function} Itself or the generated function if finished\r\n * @throws {Error} If format parameter counts do not match\r\n */\r\n\r\n function Codegen(formatStringOrScope) {\r\n // note that explicit array handling below makes this ~50% faster\r\n\r\n // finish the function\r\n if (typeof formatStringOrScope !== \"string\") {\r\n var source = toString();\r\n if (codegen.verbose)\r\n console.log(\"codegen: \" + source); // eslint-disable-line no-console\r\n source = \"return \" + source;\r\n if (formatStringOrScope) {\r\n var scopeKeys = Object.keys(formatStringOrScope),\r\n scopeParams = new Array(scopeKeys.length + 1),\r\n scopeValues = new Array(scopeKeys.length),\r\n scopeOffset = 0;\r\n while (scopeOffset < scopeKeys.length) {\r\n scopeParams[scopeOffset] = scopeKeys[scopeOffset];\r\n scopeValues[scopeOffset] = formatStringOrScope[scopeKeys[scopeOffset++]];\r\n }\r\n scopeParams[scopeOffset] = source;\r\n return Function.apply(null, scopeParams).apply(null, scopeValues); // eslint-disable-line no-new-func\r\n }\r\n return Function(source)(); // eslint-disable-line no-new-func\r\n }\r\n\r\n // otherwise append to body\r\n var formatParams = new Array(arguments.length - 1),\r\n formatOffset = 0;\r\n while (formatOffset < formatParams.length)\r\n formatParams[formatOffset] = arguments[++formatOffset];\r\n formatOffset = 0;\r\n formatStringOrScope = formatStringOrScope.replace(/%([%dfijs])/g, function replace($0, $1) {\r\n var value = formatParams[formatOffset++];\r\n switch ($1) {\r\n case \"d\": case \"f\": return String(Number(value));\r\n case \"i\": return String(Math.floor(value));\r\n case \"j\": return JSON.stringify(value);\r\n case \"s\": return String(value);\r\n }\r\n return \"%\";\r\n });\r\n if (formatOffset !== formatParams.length)\r\n throw Error(\"parameter count mismatch\");\r\n body.push(formatStringOrScope);\r\n return Codegen;\r\n }\r\n\r\n function toString(functionNameOverride) {\r\n return \"function \" + (functionNameOverride || functionName || \"\") + \"(\" + (functionParams && functionParams.join(\",\") || \"\") + \"){\\n \" + body.join(\"\\n \") + \"\\n}\";\r\n }\r\n\r\n Codegen.toString = toString;\r\n return Codegen;\r\n}\r\n\r\n/**\r\n * Begins generating a function.\r\n * @memberof util\r\n * @function codegen\r\n * @param {string} [functionName] Function name if not anonymous\r\n * @returns {Codegen} Appender that appends code to the function's body\r\n * @variation 2\r\n */\r\n\r\n/**\r\n * When set to `true`, codegen will log generated code to console. Useful for debugging.\r\n * @name util.codegen.verbose\r\n * @type {boolean}\r\n */\r\ncodegen.verbose = false;\r\n", "\"use strict\";\r\nmodule.exports = fetch;\r\n\r\nvar asPromise = require(\"@protobufjs/aspromise\"),\r\n inquire = require(\"@protobufjs/inquire\");\r\n\r\nvar fs = inquire(\"fs\");\r\n\r\n/**\r\n * Node-style callback as used by {@link util.fetch}.\r\n * @typedef FetchCallback\r\n * @type {function}\r\n * @param {?Error} error Error, if any, otherwise `null`\r\n * @param {string} [contents] File contents, if there hasn't been an error\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Options as used by {@link util.fetch}.\r\n * @typedef FetchOptions\r\n * @type {Object}\r\n * @property {boolean} [binary=false] Whether expecting a binary response\r\n * @property {boolean} [xhr=false] If `true`, forces the use of XMLHttpRequest\r\n */\r\n\r\n/**\r\n * Fetches the contents of a file.\r\n * @memberof util\r\n * @param {string} filename File path or url\r\n * @param {FetchOptions} options Fetch options\r\n * @param {FetchCallback} callback Callback function\r\n * @returns {undefined}\r\n */\r\nfunction fetch(filename, options, callback) {\r\n if (typeof options === \"function\") {\r\n callback = options;\r\n options = {};\r\n } else if (!options)\r\n options = {};\r\n\r\n if (!callback)\r\n return asPromise(fetch, this, filename, options); // eslint-disable-line no-invalid-this\r\n\r\n // if a node-like filesystem is present, try it first but fall back to XHR if nothing is found.\r\n if (!options.xhr && fs && fs.readFile)\r\n return fs.readFile(filename, function fetchReadFileCallback(err, contents) {\r\n return err && typeof XMLHttpRequest !== \"undefined\"\r\n ? fetch.xhr(filename, options, callback)\r\n : err\r\n ? callback(err)\r\n : callback(null, options.binary ? contents : contents.toString(\"utf8\"));\r\n });\r\n\r\n // use the XHR version otherwise.\r\n return fetch.xhr(filename, options, callback);\r\n}\r\n\r\n/**\r\n * Fetches the contents of a file.\r\n * @name util.fetch\r\n * @function\r\n * @param {string} path File path or url\r\n * @param {FetchCallback} callback Callback function\r\n * @returns {undefined}\r\n * @variation 2\r\n */\r\n\r\n/**\r\n * Fetches the contents of a file.\r\n * @name util.fetch\r\n * @function\r\n * @param {string} path File path or url\r\n * @param {FetchOptions} [options] Fetch options\r\n * @returns {Promise} Promise\r\n * @variation 3\r\n */\r\n\r\n/**/\r\nfetch.xhr = function fetch_xhr(filename, options, callback) {\r\n var xhr = new XMLHttpRequest();\r\n xhr.onreadystatechange /* works everywhere */ = function fetchOnReadyStateChange() {\r\n\r\n if (xhr.readyState !== 4)\r\n return undefined;\r\n\r\n // local cors security errors return status 0 / empty string, too. afaik this cannot be\r\n // reliably distinguished from an actually empty file for security reasons. feel free\r\n // to send a pull request if you are aware of a solution.\r\n if (xhr.status !== 0 && xhr.status !== 200)\r\n return callback(Error(\"status \" + xhr.status));\r\n\r\n // if binary data is expected, make sure that some sort of array is returned, even if\r\n // ArrayBuffers are not supported. the binary string fallback, however, is unsafe.\r\n if (options.binary) {\r\n var buffer = xhr.response;\r\n if (!buffer) {\r\n buffer = [];\r\n for (var i = 0; i < xhr.responseText.length; ++i)\r\n buffer.push(xhr.responseText.charCodeAt(i) & 255);\r\n }\r\n return callback(null, typeof Uint8Array !== \"undefined\" ? new Uint8Array(buffer) : buffer);\r\n }\r\n return callback(null, xhr.responseText);\r\n };\r\n\r\n if (options.binary) {\r\n // ref: https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/Sending_and_Receiving_Binary_Data#Receiving_binary_data_in_older_browsers\r\n if (\"overrideMimeType\" in xhr)\r\n xhr.overrideMimeType(\"text/plain; charset=x-user-defined\");\r\n xhr.responseType = \"arraybuffer\";\r\n }\r\n\r\n xhr.open(\"GET\", filename);\r\n xhr.send();\r\n};\r\n", "\"use strict\";\r\n\r\n/**\r\n * A minimal path module to resolve Unix, Windows and URL paths alike.\r\n * @memberof util\r\n * @namespace\r\n */\r\nvar path = exports;\r\n\r\nvar isAbsolute =\r\n/**\r\n * Tests if the specified path is absolute.\r\n * @param {string} path Path to test\r\n * @returns {boolean} `true` if path is absolute\r\n */\r\npath.isAbsolute = function isAbsolute(path) {\r\n return /^(?:\\/|\\w+:)/.test(path);\r\n};\r\n\r\nvar normalize =\r\n/**\r\n * Normalizes the specified path.\r\n * @param {string} path Path to normalize\r\n * @returns {string} Normalized path\r\n */\r\npath.normalize = function normalize(path) {\r\n path = path.replace(/\\\\/g, \"/\")\r\n .replace(/\\/{2,}/g, \"/\");\r\n var parts = path.split(\"/\"),\r\n absolute = isAbsolute(path),\r\n prefix = \"\";\r\n if (absolute)\r\n prefix = parts.shift() + \"/\";\r\n for (var i = 0; i < parts.length;) {\r\n if (parts[i] === \"..\") {\r\n if (i > 0 && parts[i - 1] !== \"..\")\r\n parts.splice(--i, 2);\r\n else if (absolute)\r\n parts.splice(i, 1);\r\n else\r\n ++i;\r\n } else if (parts[i] === \".\")\r\n parts.splice(i, 1);\r\n else\r\n ++i;\r\n }\r\n return prefix + parts.join(\"/\");\r\n};\r\n\r\n/**\r\n * Resolves the specified include path against the specified origin path.\r\n * @param {string} originPath Path to the origin file\r\n * @param {string} includePath Include path relative to origin path\r\n * @param {boolean} [alreadyNormalized=false] `true` if both paths are already known to be normalized\r\n * @returns {string} Path to the include file\r\n */\r\npath.resolve = function resolve(originPath, includePath, alreadyNormalized) {\r\n if (!alreadyNormalized)\r\n includePath = normalize(includePath);\r\n if (isAbsolute(includePath))\r\n return includePath;\r\n if (!alreadyNormalized)\r\n originPath = normalize(originPath);\r\n return (originPath = originPath.replace(/(?:\\/|^)[^/]+$/, \"\")).length ? normalize(originPath + \"/\" + includePath) : includePath;\r\n};\r\n", "\"use strict\";\n\n/**\n * Common type constants.\n * @namespace\n */\nvar types = exports;\n\nvar util = require(\"./util\");\n\nvar s = [\n \"double\", // 0\n \"float\", // 1\n \"int32\", // 2\n \"uint32\", // 3\n \"sint32\", // 4\n \"fixed32\", // 5\n \"sfixed32\", // 6\n \"int64\", // 7\n \"uint64\", // 8\n \"sint64\", // 9\n \"fixed64\", // 10\n \"sfixed64\", // 11\n \"bool\", // 12\n \"string\", // 13\n \"bytes\" // 14\n];\n\nfunction bake(values, offset) {\n var i = 0, o = {};\n offset |= 0;\n while (i < values.length) o[s[i + offset]] = values[i++];\n return o;\n}\n\n/**\n * Basic type wire types.\n * @type {Object.}\n * @const\n * @property {number} double=1 Fixed64 wire type\n * @property {number} float=5 Fixed32 wire type\n * @property {number} int32=0 Varint wire type\n * @property {number} uint32=0 Varint wire type\n * @property {number} sint32=0 Varint wire type\n * @property {number} fixed32=5 Fixed32 wire type\n * @property {number} sfixed32=5 Fixed32 wire type\n * @property {number} int64=0 Varint wire type\n * @property {number} uint64=0 Varint wire type\n * @property {number} sint64=0 Varint wire type\n * @property {number} fixed64=1 Fixed64 wire type\n * @property {number} sfixed64=1 Fixed64 wire type\n * @property {number} bool=0 Varint wire type\n * @property {number} string=2 Ldelim wire type\n * @property {number} bytes=2 Ldelim wire type\n */\ntypes.basic = bake([\n /* double */ 1,\n /* float */ 5,\n /* int32 */ 0,\n /* uint32 */ 0,\n /* sint32 */ 0,\n /* fixed32 */ 5,\n /* sfixed32 */ 5,\n /* int64 */ 0,\n /* uint64 */ 0,\n /* sint64 */ 0,\n /* fixed64 */ 1,\n /* sfixed64 */ 1,\n /* bool */ 0,\n /* string */ 2,\n /* bytes */ 2\n]);\n\n/**\n * Basic type defaults.\n * @type {Object.}\n * @const\n * @property {number} double=0 Double default\n * @property {number} float=0 Float default\n * @property {number} int32=0 Int32 default\n * @property {number} uint32=0 Uint32 default\n * @property {number} sint32=0 Sint32 default\n * @property {number} fixed32=0 Fixed32 default\n * @property {number} sfixed32=0 Sfixed32 default\n * @property {number} int64=0 Int64 default\n * @property {number} uint64=0 Uint64 default\n * @property {number} sint64=0 Sint32 default\n * @property {number} fixed64=0 Fixed64 default\n * @property {number} sfixed64=0 Sfixed64 default\n * @property {boolean} bool=false Bool default\n * @property {string} string=\"\" String default\n * @property {Array.} bytes=Array(0) Bytes default\n * @property {null} message=null Message default\n */\ntypes.defaults = bake([\n /* double */ 0,\n /* float */ 0,\n /* int32 */ 0,\n /* uint32 */ 0,\n /* sint32 */ 0,\n /* fixed32 */ 0,\n /* sfixed32 */ 0,\n /* int64 */ 0,\n /* uint64 */ 0,\n /* sint64 */ 0,\n /* fixed64 */ 0,\n /* sfixed64 */ 0,\n /* bool */ false,\n /* string */ \"\",\n /* bytes */ util.emptyArray,\n /* message */ null\n]);\n\n/**\n * Basic long type wire types.\n * @type {Object.}\n * @const\n * @property {number} int64=0 Varint wire type\n * @property {number} uint64=0 Varint wire type\n * @property {number} sint64=0 Varint wire type\n * @property {number} fixed64=1 Fixed64 wire type\n * @property {number} sfixed64=1 Fixed64 wire type\n */\ntypes.long = bake([\n /* int64 */ 0,\n /* uint64 */ 0,\n /* sint64 */ 0,\n /* fixed64 */ 1,\n /* sfixed64 */ 1\n], 7);\n\n/**\n * Allowed types for map keys with their associated wire type.\n * @type {Object.}\n * @const\n * @property {number} int32=0 Varint wire type\n * @property {number} uint32=0 Varint wire type\n * @property {number} sint32=0 Varint wire type\n * @property {number} fixed32=5 Fixed32 wire type\n * @property {number} sfixed32=5 Fixed32 wire type\n * @property {number} int64=0 Varint wire type\n * @property {number} uint64=0 Varint wire type\n * @property {number} sint64=0 Varint wire type\n * @property {number} fixed64=1 Fixed64 wire type\n * @property {number} sfixed64=1 Fixed64 wire type\n * @property {number} bool=0 Varint wire type\n * @property {number} string=2 Ldelim wire type\n */\ntypes.mapKey = bake([\n /* int32 */ 0,\n /* uint32 */ 0,\n /* sint32 */ 0,\n /* fixed32 */ 5,\n /* sfixed32 */ 5,\n /* int64 */ 0,\n /* uint64 */ 0,\n /* sint64 */ 0,\n /* fixed64 */ 1,\n /* sfixed64 */ 1,\n /* bool */ 0,\n /* string */ 2\n], 2);\n\n/**\n * Allowed types for packed repeated fields with their associated wire type.\n * @type {Object.}\n * @const\n * @property {number} double=1 Fixed64 wire type\n * @property {number} float=5 Fixed32 wire type\n * @property {number} int32=0 Varint wire type\n * @property {number} uint32=0 Varint wire type\n * @property {number} sint32=0 Varint wire type\n * @property {number} fixed32=5 Fixed32 wire type\n * @property {number} sfixed32=5 Fixed32 wire type\n * @property {number} int64=0 Varint wire type\n * @property {number} uint64=0 Varint wire type\n * @property {number} sint64=0 Varint wire type\n * @property {number} fixed64=1 Fixed64 wire type\n * @property {number} sfixed64=1 Fixed64 wire type\n * @property {number} bool=0 Varint wire type\n */\ntypes.packed = bake([\n /* double */ 1,\n /* float */ 5,\n /* int32 */ 0,\n /* uint32 */ 0,\n /* sint32 */ 0,\n /* fixed32 */ 5,\n /* sfixed32 */ 5,\n /* int64 */ 0,\n /* uint64 */ 0,\n /* sint64 */ 0,\n /* fixed64 */ 1,\n /* sfixed64 */ 1,\n /* bool */ 0\n]);\n", "\"use strict\";\nmodule.exports = Field;\n\n// extends ReflectionObject\nvar ReflectionObject = require(\"./object\");\n((Field.prototype = Object.create(ReflectionObject.prototype)).constructor = Field).className = \"Field\";\n\nvar Enum = require(\"./enum\"),\n types = require(\"./types\"),\n util = require(\"./util\");\n\nvar Type; // cyclic\n\nvar ruleRe = /^required|optional|repeated$/;\n\n/**\n * Constructs a new message field instance. Note that {@link MapField|map fields} have their own class.\n * @name Field\n * @classdesc Reflected message field.\n * @extends FieldBase\n * @constructor\n * @param {string} name Unique name within its namespace\n * @param {number} id Unique id within its namespace\n * @param {string} type Value type\n * @param {string|Object.} [rule=\"optional\"] Field rule\n * @param {string|Object.} [extend] Extended type if different from parent\n * @param {Object.} [options] Declared options\n */\n\n/**\n * Constructs a field from a field descriptor.\n * @param {string} name Field name\n * @param {IField} json Field descriptor\n * @returns {Field} Created field\n * @throws {TypeError} If arguments are invalid\n */\nField.fromJSON = function fromJSON(name, json) {\n return new Field(name, json.id, json.type, json.rule, json.extend, json.options, json.comment);\n};\n\n/**\n * Not an actual constructor. Use {@link Field} instead.\n * @classdesc Base class of all reflected message fields. This is not an actual class but here for the sake of having consistent type definitions.\n * @exports FieldBase\n * @extends ReflectionObject\n * @constructor\n * @param {string} name Unique name within its namespace\n * @param {number} id Unique id within its namespace\n * @param {string} type Value type\n * @param {string|Object.} [rule=\"optional\"] Field rule\n * @param {string|Object.} [extend] Extended type if different from parent\n * @param {Object.} [options] Declared options\n * @param {string} [comment] Comment associated with this field\n */\nfunction Field(name, id, type, rule, extend, options, comment) {\n\n if (util.isObject(rule)) {\n comment = extend;\n options = rule;\n rule = extend = undefined;\n } else if (util.isObject(extend)) {\n comment = options;\n options = extend;\n extend = undefined;\n }\n\n ReflectionObject.call(this, name, options);\n\n if (!util.isInteger(id) || id < 0)\n throw TypeError(\"id must be a non-negative integer\");\n\n if (!util.isString(type))\n throw TypeError(\"type must be a string\");\n\n if (rule !== undefined && !ruleRe.test(rule = rule.toString().toLowerCase()))\n throw TypeError(\"rule must be a string rule\");\n\n if (extend !== undefined && !util.isString(extend))\n throw TypeError(\"extend must be a string\");\n\n if (rule === \"proto3_optional\") {\n rule = \"optional\";\n }\n /**\n * Field rule, if any.\n * @type {string|undefined}\n */\n this.rule = rule && rule !== \"optional\" ? rule : undefined; // toJSON\n\n /**\n * Field type.\n * @type {string}\n */\n this.type = type; // toJSON\n\n /**\n * Unique field id.\n * @type {number}\n */\n this.id = id; // toJSON, marker\n\n /**\n * Extended type if different from parent.\n * @type {string|undefined}\n */\n this.extend = extend || undefined; // toJSON\n\n /**\n * Whether this field is required.\n * @type {boolean}\n */\n this.required = rule === \"required\";\n\n /**\n * Whether this field is optional.\n * @type {boolean}\n */\n this.optional = !this.required;\n\n /**\n * Whether this field is repeated.\n * @type {boolean}\n */\n this.repeated = rule === \"repeated\";\n\n /**\n * Whether this field is a map or not.\n * @type {boolean}\n */\n this.map = false;\n\n /**\n * Message this field belongs to.\n * @type {Type|null}\n */\n this.message = null;\n\n /**\n * OneOf this field belongs to, if any,\n * @type {OneOf|null}\n */\n this.partOf = null;\n\n /**\n * The field type's default value.\n * @type {*}\n */\n this.typeDefault = null;\n\n /**\n * The field's default value on prototypes.\n * @type {*}\n */\n this.defaultValue = null;\n\n /**\n * Whether this field's value should be treated as a long.\n * @type {boolean}\n */\n this.long = util.Long ? types.long[type] !== undefined : /* istanbul ignore next */ false;\n\n /**\n * Whether this field's value is a buffer.\n * @type {boolean}\n */\n this.bytes = type === \"bytes\";\n\n /**\n * Resolved type if not a basic type.\n * @type {Type|Enum|null}\n */\n this.resolvedType = null;\n\n /**\n * Sister-field within the extended type if a declaring extension field.\n * @type {Field|null}\n */\n this.extensionField = null;\n\n /**\n * Sister-field within the declaring namespace if an extended field.\n * @type {Field|null}\n */\n this.declaringField = null;\n\n /**\n * Internally remembers whether this field is packed.\n * @type {boolean|null}\n * @private\n */\n this._packed = null;\n\n /**\n * Comment for this field.\n * @type {string|null}\n */\n this.comment = comment;\n}\n\n/**\n * Determines whether this field is packed. Only relevant when repeated and working with proto2.\n * @name Field#packed\n * @type {boolean}\n * @readonly\n */\nObject.defineProperty(Field.prototype, \"packed\", {\n get: function() {\n // defaults to packed=true if not explicity set to false\n if (this._packed === null)\n this._packed = this.getOption(\"packed\") !== false;\n return this._packed;\n }\n});\n\n/**\n * @override\n */\nField.prototype.setOption = function setOption(name, value, ifNotSet) {\n if (name === \"packed\") // clear cached before setting\n this._packed = null;\n return ReflectionObject.prototype.setOption.call(this, name, value, ifNotSet);\n};\n\n/**\n * Field descriptor.\n * @interface IField\n * @property {string} [rule=\"optional\"] Field rule\n * @property {string} type Field type\n * @property {number} id Field id\n * @property {Object.} [options] Field options\n */\n\n/**\n * Extension field descriptor.\n * @interface IExtensionField\n * @extends IField\n * @property {string} extend Extended type\n */\n\n/**\n * Converts this field to a field descriptor.\n * @param {IToJSONOptions} [toJSONOptions] JSON conversion options\n * @returns {IField} Field descriptor\n */\nField.prototype.toJSON = function toJSON(toJSONOptions) {\n var keepComments = toJSONOptions ? Boolean(toJSONOptions.keepComments) : false;\n return util.toObject([\n \"rule\" , this.rule !== \"optional\" && this.rule || undefined,\n \"type\" , this.type,\n \"id\" , this.id,\n \"extend\" , this.extend,\n \"options\" , this.options,\n \"comment\" , keepComments ? this.comment : undefined\n ]);\n};\n\n/**\n * Resolves this field's type references.\n * @returns {Field} `this`\n * @throws {Error} If any reference cannot be resolved\n */\nField.prototype.resolve = function resolve() {\n\n if (this.resolved)\n return this;\n\n if ((this.typeDefault = types.defaults[this.type]) === undefined) { // if not a basic type, resolve it\n this.resolvedType = (this.declaringField ? this.declaringField.parent : this.parent).lookupTypeOrEnum(this.type);\n if (this.resolvedType instanceof Type)\n this.typeDefault = null;\n else // instanceof Enum\n this.typeDefault = this.resolvedType.values[Object.keys(this.resolvedType.values)[0]]; // first defined\n }\n\n // use explicitly set default value if present\n if (this.options && this.options[\"default\"] != null) {\n this.typeDefault = this.options[\"default\"];\n if (this.resolvedType instanceof Enum && typeof this.typeDefault === \"string\")\n this.typeDefault = this.resolvedType.values[this.typeDefault];\n }\n\n // remove unnecessary options\n if (this.options) {\n if (this.options.packed === true || this.options.packed !== undefined && this.resolvedType && !(this.resolvedType instanceof Enum))\n delete this.options.packed;\n if (!Object.keys(this.options).length)\n this.options = undefined;\n }\n\n // convert to internal data type if necesssary\n if (this.long) {\n this.typeDefault = util.Long.fromNumber(this.typeDefault, this.type.charAt(0) === \"u\");\n\n /* istanbul ignore else */\n if (Object.freeze)\n Object.freeze(this.typeDefault); // long instances are meant to be immutable anyway (i.e. use small int cache that even requires it)\n\n } else if (this.bytes && typeof this.typeDefault === \"string\") {\n var buf;\n if (util.base64.test(this.typeDefault))\n util.base64.decode(this.typeDefault, buf = util.newBuffer(util.base64.length(this.typeDefault)), 0);\n else\n util.utf8.write(this.typeDefault, buf = util.newBuffer(util.utf8.length(this.typeDefault)), 0);\n this.typeDefault = buf;\n }\n\n // take special care of maps and repeated fields\n if (this.map)\n this.defaultValue = util.emptyObject;\n else if (this.repeated)\n this.defaultValue = util.emptyArray;\n else\n this.defaultValue = this.typeDefault;\n\n // ensure proper value on prototype\n if (this.parent instanceof Type)\n this.parent.ctor.prototype[this.name] = this.defaultValue;\n\n return ReflectionObject.prototype.resolve.call(this);\n};\n\n/**\n * Decorator function as returned by {@link Field.d} and {@link MapField.d} (TypeScript).\n * @typedef FieldDecorator\n * @type {function}\n * @param {Object} prototype Target prototype\n * @param {string} fieldName Field name\n * @returns {undefined}\n */\n\n/**\n * Field decorator (TypeScript).\n * @name Field.d\n * @function\n * @param {number} fieldId Field id\n * @param {\"double\"|\"float\"|\"int32\"|\"uint32\"|\"sint32\"|\"fixed32\"|\"sfixed32\"|\"int64\"|\"uint64\"|\"sint64\"|\"fixed64\"|\"sfixed64\"|\"string\"|\"bool\"|\"bytes\"|Object} fieldType Field type\n * @param {\"optional\"|\"required\"|\"repeated\"} [fieldRule=\"optional\"] Field rule\n * @param {T} [defaultValue] Default value\n * @returns {FieldDecorator} Decorator function\n * @template T extends number | number[] | Long | Long[] | string | string[] | boolean | boolean[] | Uint8Array | Uint8Array[] | Buffer | Buffer[]\n */\nField.d = function decorateField(fieldId, fieldType, fieldRule, defaultValue) {\n\n // submessage: decorate the submessage and use its name as the type\n if (typeof fieldType === \"function\")\n fieldType = util.decorateType(fieldType).name;\n\n // enum reference: create a reflected copy of the enum and keep reuseing it\n else if (fieldType && typeof fieldType === \"object\")\n fieldType = util.decorateEnum(fieldType).name;\n\n return function fieldDecorator(prototype, fieldName) {\n util.decorateType(prototype.constructor)\n .add(new Field(fieldName, fieldId, fieldType, fieldRule, { \"default\": defaultValue }));\n };\n};\n\n/**\n * Field decorator (TypeScript).\n * @name Field.d\n * @function\n * @param {number} fieldId Field id\n * @param {Constructor|string} fieldType Field type\n * @param {\"optional\"|\"required\"|\"repeated\"} [fieldRule=\"optional\"] Field rule\n * @returns {FieldDecorator} Decorator function\n * @template T extends Message\n * @variation 2\n */\n// like Field.d but without a default value\n\n// Sets up cyclic dependencies (called in index-light)\nField._configure = function configure(Type_) {\n Type = Type_;\n};\n", "\"use strict\";\nmodule.exports = OneOf;\n\n// extends ReflectionObject\nvar ReflectionObject = require(\"./object\");\n((OneOf.prototype = Object.create(ReflectionObject.prototype)).constructor = OneOf).className = \"OneOf\";\n\nvar Field = require(\"./field\"),\n util = require(\"./util\");\n\n/**\n * Constructs a new oneof instance.\n * @classdesc Reflected oneof.\n * @extends ReflectionObject\n * @constructor\n * @param {string} name Oneof name\n * @param {string[]|Object.} [fieldNames] Field names\n * @param {Object.} [options] Declared options\n * @param {string} [comment] Comment associated with this field\n */\nfunction OneOf(name, fieldNames, options, comment) {\n if (!Array.isArray(fieldNames)) {\n options = fieldNames;\n fieldNames = undefined;\n }\n ReflectionObject.call(this, name, options);\n\n /* istanbul ignore if */\n if (!(fieldNames === undefined || Array.isArray(fieldNames)))\n throw TypeError(\"fieldNames must be an Array\");\n\n /**\n * Field names that belong to this oneof.\n * @type {string[]}\n */\n this.oneof = fieldNames || []; // toJSON, marker\n\n /**\n * Fields that belong to this oneof as an array for iteration.\n * @type {Field[]}\n * @readonly\n */\n this.fieldsArray = []; // declared readonly for conformance, possibly not yet added to parent\n\n /**\n * Comment for this field.\n * @type {string|null}\n */\n this.comment = comment;\n}\n\n/**\n * Oneof descriptor.\n * @interface IOneOf\n * @property {Array.} oneof Oneof field names\n * @property {Object.} [options] Oneof options\n */\n\n/**\n * Constructs a oneof from a oneof descriptor.\n * @param {string} name Oneof name\n * @param {IOneOf} json Oneof descriptor\n * @returns {OneOf} Created oneof\n * @throws {TypeError} If arguments are invalid\n */\nOneOf.fromJSON = function fromJSON(name, json) {\n return new OneOf(name, json.oneof, json.options, json.comment);\n};\n\n/**\n * Converts this oneof to a oneof descriptor.\n * @param {IToJSONOptions} [toJSONOptions] JSON conversion options\n * @returns {IOneOf} Oneof descriptor\n */\nOneOf.prototype.toJSON = function toJSON(toJSONOptions) {\n var keepComments = toJSONOptions ? Boolean(toJSONOptions.keepComments) : false;\n return util.toObject([\n \"options\" , this.options,\n \"oneof\" , this.oneof,\n \"comment\" , keepComments ? this.comment : undefined\n ]);\n};\n\n/**\n * Adds the fields of the specified oneof to the parent if not already done so.\n * @param {OneOf} oneof The oneof\n * @returns {undefined}\n * @inner\n * @ignore\n */\nfunction addFieldsToParent(oneof) {\n if (oneof.parent)\n for (var i = 0; i < oneof.fieldsArray.length; ++i)\n if (!oneof.fieldsArray[i].parent)\n oneof.parent.add(oneof.fieldsArray[i]);\n}\n\n/**\n * Adds a field to this oneof and removes it from its current parent, if any.\n * @param {Field} field Field to add\n * @returns {OneOf} `this`\n */\nOneOf.prototype.add = function add(field) {\n\n /* istanbul ignore if */\n if (!(field instanceof Field))\n throw TypeError(\"field must be a Field\");\n\n if (field.parent && field.parent !== this.parent)\n field.parent.remove(field);\n this.oneof.push(field.name);\n this.fieldsArray.push(field);\n field.partOf = this; // field.parent remains null\n addFieldsToParent(this);\n return this;\n};\n\n/**\n * Removes a field from this oneof and puts it back to the oneof's parent.\n * @param {Field} field Field to remove\n * @returns {OneOf} `this`\n */\nOneOf.prototype.remove = function remove(field) {\n\n /* istanbul ignore if */\n if (!(field instanceof Field))\n throw TypeError(\"field must be a Field\");\n\n var index = this.fieldsArray.indexOf(field);\n\n /* istanbul ignore if */\n if (index < 0)\n throw Error(field + \" is not a member of \" + this);\n\n this.fieldsArray.splice(index, 1);\n index = this.oneof.indexOf(field.name);\n\n /* istanbul ignore else */\n if (index > -1) // theoretical\n this.oneof.splice(index, 1);\n\n field.partOf = null;\n return this;\n};\n\n/**\n * @override\n */\nOneOf.prototype.onAdd = function onAdd(parent) {\n ReflectionObject.prototype.onAdd.call(this, parent);\n var self = this;\n // Collect present fields\n for (var i = 0; i < this.oneof.length; ++i) {\n var field = parent.get(this.oneof[i]);\n if (field && !field.partOf) {\n field.partOf = self;\n self.fieldsArray.push(field);\n }\n }\n // Add not yet present fields\n addFieldsToParent(this);\n};\n\n/**\n * @override\n */\nOneOf.prototype.onRemove = function onRemove(parent) {\n for (var i = 0, field; i < this.fieldsArray.length; ++i)\n if ((field = this.fieldsArray[i]).parent)\n field.parent.remove(field);\n ReflectionObject.prototype.onRemove.call(this, parent);\n};\n\n/**\n * Decorator function as returned by {@link OneOf.d} (TypeScript).\n * @typedef OneOfDecorator\n * @type {function}\n * @param {Object} prototype Target prototype\n * @param {string} oneofName OneOf name\n * @returns {undefined}\n */\n\n/**\n * OneOf decorator (TypeScript).\n * @function\n * @param {...string} fieldNames Field names\n * @returns {OneOfDecorator} Decorator function\n * @template T extends string\n */\nOneOf.d = function decorateOneOf() {\n var fieldNames = new Array(arguments.length),\n index = 0;\n while (index < arguments.length)\n fieldNames[index] = arguments[index++];\n return function oneOfDecorator(prototype, oneofName) {\n util.decorateType(prototype.constructor)\n .add(new OneOf(oneofName, fieldNames));\n Object.defineProperty(prototype, oneofName, {\n get: util.oneOfGetter(fieldNames),\n set: util.oneOfSetter(fieldNames)\n });\n };\n};\n", "\"use strict\";\nmodule.exports = Namespace;\n\n// extends ReflectionObject\nvar ReflectionObject = require(\"./object\");\n((Namespace.prototype = Object.create(ReflectionObject.prototype)).constructor = Namespace).className = \"Namespace\";\n\nvar Field = require(\"./field\"),\n OneOf = require(\"./oneof\"),\n util = require(\"./util\");\n\nvar Type, // cyclic\n Service,\n Enum;\n\n/**\n * Constructs a new namespace instance.\n * @name Namespace\n * @classdesc Reflected namespace.\n * @extends NamespaceBase\n * @constructor\n * @param {string} name Namespace name\n * @param {Object.} [options] Declared options\n */\n\n/**\n * Constructs a namespace from JSON.\n * @memberof Namespace\n * @function\n * @param {string} name Namespace name\n * @param {Object.} json JSON object\n * @returns {Namespace} Created namespace\n * @throws {TypeError} If arguments are invalid\n */\nNamespace.fromJSON = function fromJSON(name, json) {\n return new Namespace(name, json.options).addJSON(json.nested);\n};\n\n/**\n * Converts an array of reflection objects to JSON.\n * @memberof Namespace\n * @param {ReflectionObject[]} array Object array\n * @param {IToJSONOptions} [toJSONOptions] JSON conversion options\n * @returns {Object.|undefined} JSON object or `undefined` when array is empty\n */\nfunction arrayToJSON(array, toJSONOptions) {\n if (!(array && array.length))\n return undefined;\n var obj = {};\n for (var i = 0; i < array.length; ++i)\n obj[array[i].name] = array[i].toJSON(toJSONOptions);\n return obj;\n}\n\nNamespace.arrayToJSON = arrayToJSON;\n\n/**\n * Tests if the specified id is reserved.\n * @param {Array.|undefined} reserved Array of reserved ranges and names\n * @param {number} id Id to test\n * @returns {boolean} `true` if reserved, otherwise `false`\n */\nNamespace.isReservedId = function isReservedId(reserved, id) {\n if (reserved)\n for (var i = 0; i < reserved.length; ++i)\n if (typeof reserved[i] !== \"string\" && reserved[i][0] <= id && reserved[i][1] > id)\n return true;\n return false;\n};\n\n/**\n * Tests if the specified name is reserved.\n * @param {Array.|undefined} reserved Array of reserved ranges and names\n * @param {string} name Name to test\n * @returns {boolean} `true` if reserved, otherwise `false`\n */\nNamespace.isReservedName = function isReservedName(reserved, name) {\n if (reserved)\n for (var i = 0; i < reserved.length; ++i)\n if (reserved[i] === name)\n return true;\n return false;\n};\n\n/**\n * Not an actual constructor. Use {@link Namespace} instead.\n * @classdesc Base class of all reflection objects containing nested objects. This is not an actual class but here for the sake of having consistent type definitions.\n * @exports NamespaceBase\n * @extends ReflectionObject\n * @abstract\n * @constructor\n * @param {string} name Namespace name\n * @param {Object.} [options] Declared options\n * @see {@link Namespace}\n */\nfunction Namespace(name, options) {\n ReflectionObject.call(this, name, options);\n\n /**\n * Nested objects by name.\n * @type {Object.|undefined}\n */\n this.nested = undefined; // toJSON\n\n /**\n * Cached nested objects as an array.\n * @type {ReflectionObject[]|null}\n * @private\n */\n this._nestedArray = null;\n}\n\nfunction clearCache(namespace) {\n namespace._nestedArray = null;\n return namespace;\n}\n\n/**\n * Nested objects of this namespace as an array for iteration.\n * @name NamespaceBase#nestedArray\n * @type {ReflectionObject[]}\n * @readonly\n */\nObject.defineProperty(Namespace.prototype, \"nestedArray\", {\n get: function() {\n return this._nestedArray || (this._nestedArray = util.toArray(this.nested));\n }\n});\n\n/**\n * Namespace descriptor.\n * @interface INamespace\n * @property {Object.} [options] Namespace options\n * @property {Object.} [nested] Nested object descriptors\n */\n\n/**\n * Any extension field descriptor.\n * @typedef AnyExtensionField\n * @type {IExtensionField|IExtensionMapField}\n */\n\n/**\n * Any nested object descriptor.\n * @typedef AnyNestedObject\n * @type {IEnum|IType|IService|AnyExtensionField|INamespace}\n */\n// ^ BEWARE: VSCode hangs forever when using more than 5 types (that's why AnyExtensionField exists in the first place)\n\n/**\n * Converts this namespace to a namespace descriptor.\n * @param {IToJSONOptions} [toJSONOptions] JSON conversion options\n * @returns {INamespace} Namespace descriptor\n */\nNamespace.prototype.toJSON = function toJSON(toJSONOptions) {\n return util.toObject([\n \"options\" , this.options,\n \"nested\" , arrayToJSON(this.nestedArray, toJSONOptions)\n ]);\n};\n\n/**\n * Adds nested objects to this namespace from nested object descriptors.\n * @param {Object.} nestedJson Any nested object descriptors\n * @returns {Namespace} `this`\n */\nNamespace.prototype.addJSON = function addJSON(nestedJson) {\n var ns = this;\n /* istanbul ignore else */\n if (nestedJson) {\n for (var names = Object.keys(nestedJson), i = 0, nested; i < names.length; ++i) {\n nested = nestedJson[names[i]];\n ns.add( // most to least likely\n ( nested.fields !== undefined\n ? Type.fromJSON\n : nested.values !== undefined\n ? Enum.fromJSON\n : nested.methods !== undefined\n ? Service.fromJSON\n : nested.id !== undefined\n ? Field.fromJSON\n : Namespace.fromJSON )(names[i], nested)\n );\n }\n }\n return this;\n};\n\n/**\n * Gets the nested object of the specified name.\n * @param {string} name Nested object name\n * @returns {ReflectionObject|null} The reflection object or `null` if it doesn't exist\n */\nNamespace.prototype.get = function get(name) {\n return this.nested && this.nested[name]\n || null;\n};\n\n/**\n * Gets the values of the nested {@link Enum|enum} of the specified name.\n * This methods differs from {@link Namespace#get|get} in that it returns an enum's values directly and throws instead of returning `null`.\n * @param {string} name Nested enum name\n * @returns {Object.} Enum values\n * @throws {Error} If there is no such enum\n */\nNamespace.prototype.getEnum = function getEnum(name) {\n if (this.nested && this.nested[name] instanceof Enum)\n return this.nested[name].values;\n throw Error(\"no such enum: \" + name);\n};\n\n/**\n * Adds a nested object to this namespace.\n * @param {ReflectionObject} object Nested object to add\n * @returns {Namespace} `this`\n * @throws {TypeError} If arguments are invalid\n * @throws {Error} If there is already a nested object with this name\n */\nNamespace.prototype.add = function add(object) {\n\n if (!(object instanceof Field && object.extend !== undefined || object instanceof Type || object instanceof Enum || object instanceof Service || object instanceof Namespace || object instanceof OneOf))\n throw TypeError(\"object must be a valid nested object\");\n\n if (!this.nested)\n this.nested = {};\n else {\n var prev = this.get(object.name);\n if (prev) {\n if (prev instanceof Namespace && object instanceof Namespace && !(prev instanceof Type || prev instanceof Service)) {\n // replace plain namespace but keep existing nested elements and options\n var nested = prev.nestedArray;\n for (var i = 0; i < nested.length; ++i)\n object.add(nested[i]);\n this.remove(prev);\n if (!this.nested)\n this.nested = {};\n object.setOptions(prev.options, true);\n\n } else\n throw Error(\"duplicate name '\" + object.name + \"' in \" + this);\n }\n }\n this.nested[object.name] = object;\n object.onAdd(this);\n return clearCache(this);\n};\n\n/**\n * Removes a nested object from this namespace.\n * @param {ReflectionObject} object Nested object to remove\n * @returns {Namespace} `this`\n * @throws {TypeError} If arguments are invalid\n * @throws {Error} If `object` is not a member of this namespace\n */\nNamespace.prototype.remove = function remove(object) {\n\n if (!(object instanceof ReflectionObject))\n throw TypeError(\"object must be a ReflectionObject\");\n if (object.parent !== this)\n throw Error(object + \" is not a member of \" + this);\n\n delete this.nested[object.name];\n if (!Object.keys(this.nested).length)\n this.nested = undefined;\n\n object.onRemove(this);\n return clearCache(this);\n};\n\n/**\n * Defines additial namespaces within this one if not yet existing.\n * @param {string|string[]} path Path to create\n * @param {*} [json] Nested types to create from JSON\n * @returns {Namespace} Pointer to the last namespace created or `this` if path is empty\n */\nNamespace.prototype.define = function define(path, json) {\n\n if (util.isString(path))\n path = path.split(\".\");\n else if (!Array.isArray(path))\n throw TypeError(\"illegal path\");\n if (path && path.length && path[0] === \"\")\n throw Error(\"path must be relative\");\n\n var ptr = this;\n while (path.length > 0) {\n var part = path.shift();\n if (ptr.nested && ptr.nested[part]) {\n ptr = ptr.nested[part];\n if (!(ptr instanceof Namespace))\n throw Error(\"path conflicts with non-namespace objects\");\n } else\n ptr.add(ptr = new Namespace(part));\n }\n if (json)\n ptr.addJSON(json);\n return ptr;\n};\n\n/**\n * Resolves this namespace's and all its nested objects' type references. Useful to validate a reflection tree, but comes at a cost.\n * @returns {Namespace} `this`\n */\nNamespace.prototype.resolveAll = function resolveAll() {\n var nested = this.nestedArray, i = 0;\n while (i < nested.length)\n if (nested[i] instanceof Namespace)\n nested[i++].resolveAll();\n else\n nested[i++].resolve();\n return this.resolve();\n};\n\n/**\n * Recursively looks up the reflection object matching the specified path in the scope of this namespace.\n * @param {string|string[]} path Path to look up\n * @param {*|Array.<*>} filterTypes Filter types, any combination of the constructors of `protobuf.Type`, `protobuf.Enum`, `protobuf.Service` etc.\n * @param {boolean} [parentAlreadyChecked=false] If known, whether the parent has already been checked\n * @returns {ReflectionObject|null} Looked up object or `null` if none could be found\n */\nNamespace.prototype.lookup = function lookup(path, filterTypes, parentAlreadyChecked) {\n\n /* istanbul ignore next */\n if (typeof filterTypes === \"boolean\") {\n parentAlreadyChecked = filterTypes;\n filterTypes = undefined;\n } else if (filterTypes && !Array.isArray(filterTypes))\n filterTypes = [ filterTypes ];\n\n if (util.isString(path) && path.length) {\n if (path === \".\")\n return this.root;\n path = path.split(\".\");\n } else if (!path.length)\n return this;\n\n // Start at root if path is absolute\n if (path[0] === \"\")\n return this.root.lookup(path.slice(1), filterTypes);\n\n // Test if the first part matches any nested object, and if so, traverse if path contains more\n var found = this.get(path[0]);\n if (found) {\n if (path.length === 1) {\n if (!filterTypes || filterTypes.indexOf(found.constructor) > -1)\n return found;\n } else if (found instanceof Namespace && (found = found.lookup(path.slice(1), filterTypes, true)))\n return found;\n\n // Otherwise try each nested namespace\n } else\n for (var i = 0; i < this.nestedArray.length; ++i)\n if (this._nestedArray[i] instanceof Namespace && (found = this._nestedArray[i].lookup(path, filterTypes, true)))\n return found;\n\n // If there hasn't been a match, try again at the parent\n if (this.parent === null || parentAlreadyChecked)\n return null;\n return this.parent.lookup(path, filterTypes);\n};\n\n/**\n * Looks up the reflection object at the specified path, relative to this namespace.\n * @name NamespaceBase#lookup\n * @function\n * @param {string|string[]} path Path to look up\n * @param {boolean} [parentAlreadyChecked=false] Whether the parent has already been checked\n * @returns {ReflectionObject|null} Looked up object or `null` if none could be found\n * @variation 2\n */\n// lookup(path: string, [parentAlreadyChecked: boolean])\n\n/**\n * Looks up the {@link Type|type} at the specified path, relative to this namespace.\n * Besides its signature, this methods differs from {@link Namespace#lookup|lookup} in that it throws instead of returning `null`.\n * @param {string|string[]} path Path to look up\n * @returns {Type} Looked up type\n * @throws {Error} If `path` does not point to a type\n */\nNamespace.prototype.lookupType = function lookupType(path) {\n var found = this.lookup(path, [ Type ]);\n if (!found)\n throw Error(\"no such type: \" + path);\n return found;\n};\n\n/**\n * Looks up the values of the {@link Enum|enum} at the specified path, relative to this namespace.\n * Besides its signature, this methods differs from {@link Namespace#lookup|lookup} in that it throws instead of returning `null`.\n * @param {string|string[]} path Path to look up\n * @returns {Enum} Looked up enum\n * @throws {Error} If `path` does not point to an enum\n */\nNamespace.prototype.lookupEnum = function lookupEnum(path) {\n var found = this.lookup(path, [ Enum ]);\n if (!found)\n throw Error(\"no such Enum '\" + path + \"' in \" + this);\n return found;\n};\n\n/**\n * Looks up the {@link Type|type} or {@link Enum|enum} at the specified path, relative to this namespace.\n * Besides its signature, this methods differs from {@link Namespace#lookup|lookup} in that it throws instead of returning `null`.\n * @param {string|string[]} path Path to look up\n * @returns {Type} Looked up type or enum\n * @throws {Error} If `path` does not point to a type or enum\n */\nNamespace.prototype.lookupTypeOrEnum = function lookupTypeOrEnum(path) {\n var found = this.lookup(path, [ Type, Enum ]);\n if (!found)\n throw Error(\"no such Type or Enum '\" + path + \"' in \" + this);\n return found;\n};\n\n/**\n * Looks up the {@link Service|service} at the specified path, relative to this namespace.\n * Besides its signature, this methods differs from {@link Namespace#lookup|lookup} in that it throws instead of returning `null`.\n * @param {string|string[]} path Path to look up\n * @returns {Service} Looked up service\n * @throws {Error} If `path` does not point to a service\n */\nNamespace.prototype.lookupService = function lookupService(path) {\n var found = this.lookup(path, [ Service ]);\n if (!found)\n throw Error(\"no such Service '\" + path + \"' in \" + this);\n return found;\n};\n\n// Sets up cyclic dependencies (called in index-light)\nNamespace._configure = function(Type_, Service_, Enum_) {\n Type = Type_;\n Service = Service_;\n Enum = Enum_;\n};\n", "\"use strict\";\nmodule.exports = MapField;\n\n// extends Field\nvar Field = require(\"./field\");\n((MapField.prototype = Object.create(Field.prototype)).constructor = MapField).className = \"MapField\";\n\nvar types = require(\"./types\"),\n util = require(\"./util\");\n\n/**\n * Constructs a new map field instance.\n * @classdesc Reflected map field.\n * @extends FieldBase\n * @constructor\n * @param {string} name Unique name within its namespace\n * @param {number} id Unique id within its namespace\n * @param {string} keyType Key type\n * @param {string} type Value type\n * @param {Object.} [options] Declared options\n * @param {string} [comment] Comment associated with this field\n */\nfunction MapField(name, id, keyType, type, options, comment) {\n Field.call(this, name, id, type, undefined, undefined, options, comment);\n\n /* istanbul ignore if */\n if (!util.isString(keyType))\n throw TypeError(\"keyType must be a string\");\n\n /**\n * Key type.\n * @type {string}\n */\n this.keyType = keyType; // toJSON, marker\n\n /**\n * Resolved key type if not a basic type.\n * @type {ReflectionObject|null}\n */\n this.resolvedKeyType = null;\n\n // Overrides Field#map\n this.map = true;\n}\n\n/**\n * Map field descriptor.\n * @interface IMapField\n * @extends {IField}\n * @property {string} keyType Key type\n */\n\n/**\n * Extension map field descriptor.\n * @interface IExtensionMapField\n * @extends IMapField\n * @property {string} extend Extended type\n */\n\n/**\n * Constructs a map field from a map field descriptor.\n * @param {string} name Field name\n * @param {IMapField} json Map field descriptor\n * @returns {MapField} Created map field\n * @throws {TypeError} If arguments are invalid\n */\nMapField.fromJSON = function fromJSON(name, json) {\n return new MapField(name, json.id, json.keyType, json.type, json.options, json.comment);\n};\n\n/**\n * Converts this map field to a map field descriptor.\n * @param {IToJSONOptions} [toJSONOptions] JSON conversion options\n * @returns {IMapField} Map field descriptor\n */\nMapField.prototype.toJSON = function toJSON(toJSONOptions) {\n var keepComments = toJSONOptions ? Boolean(toJSONOptions.keepComments) : false;\n return util.toObject([\n \"keyType\" , this.keyType,\n \"type\" , this.type,\n \"id\" , this.id,\n \"extend\" , this.extend,\n \"options\" , this.options,\n \"comment\" , keepComments ? this.comment : undefined\n ]);\n};\n\n/**\n * @override\n */\nMapField.prototype.resolve = function resolve() {\n if (this.resolved)\n return this;\n\n // Besides a value type, map fields have a key type that may be \"any scalar type except for floating point types and bytes\"\n if (types.mapKey[this.keyType] === undefined)\n throw Error(\"invalid key type: \" + this.keyType);\n\n return Field.prototype.resolve.call(this);\n};\n\n/**\n * Map field decorator (TypeScript).\n * @name MapField.d\n * @function\n * @param {number} fieldId Field id\n * @param {\"int32\"|\"uint32\"|\"sint32\"|\"fixed32\"|\"sfixed32\"|\"int64\"|\"uint64\"|\"sint64\"|\"fixed64\"|\"sfixed64\"|\"bool\"|\"string\"} fieldKeyType Field key type\n * @param {\"double\"|\"float\"|\"int32\"|\"uint32\"|\"sint32\"|\"fixed32\"|\"sfixed32\"|\"int64\"|\"uint64\"|\"sint64\"|\"fixed64\"|\"sfixed64\"|\"bool\"|\"string\"|\"bytes\"|Object|Constructor<{}>} fieldValueType Field value type\n * @returns {FieldDecorator} Decorator function\n * @template T extends { [key: string]: number | Long | string | boolean | Uint8Array | Buffer | number[] | Message<{}> }\n */\nMapField.d = function decorateMapField(fieldId, fieldKeyType, fieldValueType) {\n\n // submessage value: decorate the submessage and use its name as the type\n if (typeof fieldValueType === \"function\")\n fieldValueType = util.decorateType(fieldValueType).name;\n\n // enum reference value: create a reflected copy of the enum and keep reuseing it\n else if (fieldValueType && typeof fieldValueType === \"object\")\n fieldValueType = util.decorateEnum(fieldValueType).name;\n\n return function mapFieldDecorator(prototype, fieldName) {\n util.decorateType(prototype.constructor)\n .add(new MapField(fieldName, fieldId, fieldKeyType, fieldValueType));\n };\n};\n", "\"use strict\";\nmodule.exports = Method;\n\n// extends ReflectionObject\nvar ReflectionObject = require(\"./object\");\n((Method.prototype = Object.create(ReflectionObject.prototype)).constructor = Method).className = \"Method\";\n\nvar util = require(\"./util\");\n\n/**\n * Constructs a new service method instance.\n * @classdesc Reflected service method.\n * @extends ReflectionObject\n * @constructor\n * @param {string} name Method name\n * @param {string|undefined} type Method type, usually `\"rpc\"`\n * @param {string} requestType Request message type\n * @param {string} responseType Response message type\n * @param {boolean|Object.} [requestStream] Whether the request is streamed\n * @param {boolean|Object.} [responseStream] Whether the response is streamed\n * @param {Object.} [options] Declared options\n * @param {string} [comment] The comment for this method\n * @param {Object.} [parsedOptions] Declared options, properly parsed into an object\n */\nfunction Method(name, type, requestType, responseType, requestStream, responseStream, options, comment, parsedOptions) {\n\n /* istanbul ignore next */\n if (util.isObject(requestStream)) {\n options = requestStream;\n requestStream = responseStream = undefined;\n } else if (util.isObject(responseStream)) {\n options = responseStream;\n responseStream = undefined;\n }\n\n /* istanbul ignore if */\n if (!(type === undefined || util.isString(type)))\n throw TypeError(\"type must be a string\");\n\n /* istanbul ignore if */\n if (!util.isString(requestType))\n throw TypeError(\"requestType must be a string\");\n\n /* istanbul ignore if */\n if (!util.isString(responseType))\n throw TypeError(\"responseType must be a string\");\n\n ReflectionObject.call(this, name, options);\n\n /**\n * Method type.\n * @type {string}\n */\n this.type = type || \"rpc\"; // toJSON\n\n /**\n * Request type.\n * @type {string}\n */\n this.requestType = requestType; // toJSON, marker\n\n /**\n * Whether requests are streamed or not.\n * @type {boolean|undefined}\n */\n this.requestStream = requestStream ? true : undefined; // toJSON\n\n /**\n * Response type.\n * @type {string}\n */\n this.responseType = responseType; // toJSON\n\n /**\n * Whether responses are streamed or not.\n * @type {boolean|undefined}\n */\n this.responseStream = responseStream ? true : undefined; // toJSON\n\n /**\n * Resolved request type.\n * @type {Type|null}\n */\n this.resolvedRequestType = null;\n\n /**\n * Resolved response type.\n * @type {Type|null}\n */\n this.resolvedResponseType = null;\n\n /**\n * Comment for this method\n * @type {string|null}\n */\n this.comment = comment;\n\n /**\n * Options properly parsed into an object\n */\n this.parsedOptions = parsedOptions;\n}\n\n/**\n * Method descriptor.\n * @interface IMethod\n * @property {string} [type=\"rpc\"] Method type\n * @property {string} requestType Request type\n * @property {string} responseType Response type\n * @property {boolean} [requestStream=false] Whether requests are streamed\n * @property {boolean} [responseStream=false] Whether responses are streamed\n * @property {Object.} [options] Method options\n * @property {string} comment Method comments\n * @property {Object.} [parsedOptions] Method options properly parsed into an object\n */\n\n/**\n * Constructs a method from a method descriptor.\n * @param {string} name Method name\n * @param {IMethod} json Method descriptor\n * @returns {Method} Created method\n * @throws {TypeError} If arguments are invalid\n */\nMethod.fromJSON = function fromJSON(name, json) {\n return new Method(name, json.type, json.requestType, json.responseType, json.requestStream, json.responseStream, json.options, json.comment, json.parsedOptions);\n};\n\n/**\n * Converts this method to a method descriptor.\n * @param {IToJSONOptions} [toJSONOptions] JSON conversion options\n * @returns {IMethod} Method descriptor\n */\nMethod.prototype.toJSON = function toJSON(toJSONOptions) {\n var keepComments = toJSONOptions ? Boolean(toJSONOptions.keepComments) : false;\n return util.toObject([\n \"type\" , this.type !== \"rpc\" && /* istanbul ignore next */ this.type || undefined,\n \"requestType\" , this.requestType,\n \"requestStream\" , this.requestStream,\n \"responseType\" , this.responseType,\n \"responseStream\" , this.responseStream,\n \"options\" , this.options,\n \"comment\" , keepComments ? this.comment : undefined,\n \"parsedOptions\" , this.parsedOptions,\n ]);\n};\n\n/**\n * @override\n */\nMethod.prototype.resolve = function resolve() {\n\n /* istanbul ignore if */\n if (this.resolved)\n return this;\n\n this.resolvedRequestType = this.parent.lookupType(this.requestType);\n this.resolvedResponseType = this.parent.lookupType(this.responseType);\n\n return ReflectionObject.prototype.resolve.call(this);\n};\n", "\"use strict\";\nmodule.exports = Service;\n\n// extends Namespace\nvar Namespace = require(\"./namespace\");\n((Service.prototype = Object.create(Namespace.prototype)).constructor = Service).className = \"Service\";\n\nvar Method = require(\"./method\"),\n util = require(\"./util\"),\n rpc = require(\"./rpc\");\n\n/**\n * Constructs a new service instance.\n * @classdesc Reflected service.\n * @extends NamespaceBase\n * @constructor\n * @param {string} name Service name\n * @param {Object.} [options] Service options\n * @throws {TypeError} If arguments are invalid\n */\nfunction Service(name, options) {\n Namespace.call(this, name, options);\n\n /**\n * Service methods.\n * @type {Object.}\n */\n this.methods = {}; // toJSON, marker\n\n /**\n * Cached methods as an array.\n * @type {Method[]|null}\n * @private\n */\n this._methodsArray = null;\n}\n\n/**\n * Service descriptor.\n * @interface IService\n * @extends INamespace\n * @property {Object.} methods Method descriptors\n */\n\n/**\n * Constructs a service from a service descriptor.\n * @param {string} name Service name\n * @param {IService} json Service descriptor\n * @returns {Service} Created service\n * @throws {TypeError} If arguments are invalid\n */\nService.fromJSON = function fromJSON(name, json) {\n var service = new Service(name, json.options);\n /* istanbul ignore else */\n if (json.methods)\n for (var names = Object.keys(json.methods), i = 0; i < names.length; ++i)\n service.add(Method.fromJSON(names[i], json.methods[names[i]]));\n if (json.nested)\n service.addJSON(json.nested);\n service.comment = json.comment;\n return service;\n};\n\n/**\n * Converts this service to a service descriptor.\n * @param {IToJSONOptions} [toJSONOptions] JSON conversion options\n * @returns {IService} Service descriptor\n */\nService.prototype.toJSON = function toJSON(toJSONOptions) {\n var inherited = Namespace.prototype.toJSON.call(this, toJSONOptions);\n var keepComments = toJSONOptions ? Boolean(toJSONOptions.keepComments) : false;\n return util.toObject([\n \"options\" , inherited && inherited.options || undefined,\n \"methods\" , Namespace.arrayToJSON(this.methodsArray, toJSONOptions) || /* istanbul ignore next */ {},\n \"nested\" , inherited && inherited.nested || undefined,\n \"comment\" , keepComments ? this.comment : undefined\n ]);\n};\n\n/**\n * Methods of this service as an array for iteration.\n * @name Service#methodsArray\n * @type {Method[]}\n * @readonly\n */\nObject.defineProperty(Service.prototype, \"methodsArray\", {\n get: function() {\n return this._methodsArray || (this._methodsArray = util.toArray(this.methods));\n }\n});\n\nfunction clearCache(service) {\n service._methodsArray = null;\n return service;\n}\n\n/**\n * @override\n */\nService.prototype.get = function get(name) {\n return this.methods[name]\n || Namespace.prototype.get.call(this, name);\n};\n\n/**\n * @override\n */\nService.prototype.resolveAll = function resolveAll() {\n var methods = this.methodsArray;\n for (var i = 0; i < methods.length; ++i)\n methods[i].resolve();\n return Namespace.prototype.resolve.call(this);\n};\n\n/**\n * @override\n */\nService.prototype.add = function add(object) {\n\n /* istanbul ignore if */\n if (this.get(object.name))\n throw Error(\"duplicate name '\" + object.name + \"' in \" + this);\n\n if (object instanceof Method) {\n this.methods[object.name] = object;\n object.parent = this;\n return clearCache(this);\n }\n return Namespace.prototype.add.call(this, object);\n};\n\n/**\n * @override\n */\nService.prototype.remove = function remove(object) {\n if (object instanceof Method) {\n\n /* istanbul ignore if */\n if (this.methods[object.name] !== object)\n throw Error(object + \" is not a member of \" + this);\n\n delete this.methods[object.name];\n object.parent = null;\n return clearCache(this);\n }\n return Namespace.prototype.remove.call(this, object);\n};\n\n/**\n * Creates a runtime service using the specified rpc implementation.\n * @param {RPCImpl} rpcImpl RPC implementation\n * @param {boolean} [requestDelimited=false] Whether requests are length-delimited\n * @param {boolean} [responseDelimited=false] Whether responses are length-delimited\n * @returns {rpc.Service} RPC service. Useful where requests and/or responses are streamed.\n */\nService.prototype.create = function create(rpcImpl, requestDelimited, responseDelimited) {\n var rpcService = new rpc.Service(rpcImpl, requestDelimited, responseDelimited);\n for (var i = 0, method; i < /* initializes */ this.methodsArray.length; ++i) {\n var methodName = util.lcFirst((method = this._methodsArray[i]).resolve().name).replace(/[^$\\w_]/g, \"\");\n rpcService[methodName] = util.codegen([\"r\",\"c\"], util.isReserved(methodName) ? methodName + \"_\" : methodName)(\"return this.rpcCall(m,q,s,r,c)\")({\n m: method,\n q: method.resolvedRequestType.ctor,\n s: method.resolvedResponseType.ctor\n });\n }\n return rpcService;\n};\n", "\"use strict\";\nmodule.exports = Message;\n\nvar util = require(\"./util/minimal\");\n\n/**\n * Constructs a new message instance.\n * @classdesc Abstract runtime message.\n * @constructor\n * @param {Properties} [properties] Properties to set\n * @template T extends object = object\n */\nfunction Message(properties) {\n // not used internally\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n this[keys[i]] = properties[keys[i]];\n}\n\n/**\n * Reference to the reflected type.\n * @name Message.$type\n * @type {Type}\n * @readonly\n */\n\n/**\n * Reference to the reflected type.\n * @name Message#$type\n * @type {Type}\n * @readonly\n */\n\n/*eslint-disable valid-jsdoc*/\n\n/**\n * Creates a new message of this type using the specified properties.\n * @param {Object.} [properties] Properties to set\n * @returns {Message} Message instance\n * @template T extends Message\n * @this Constructor\n */\nMessage.create = function create(properties) {\n return this.$type.create(properties);\n};\n\n/**\n * Encodes a message of this type.\n * @param {T|Object.} message Message to encode\n * @param {Writer} [writer] Writer to use\n * @returns {Writer} Writer\n * @template T extends Message\n * @this Constructor\n */\nMessage.encode = function encode(message, writer) {\n return this.$type.encode(message, writer);\n};\n\n/**\n * Encodes a message of this type preceeded by its length as a varint.\n * @param {T|Object.} message Message to encode\n * @param {Writer} [writer] Writer to use\n * @returns {Writer} Writer\n * @template T extends Message\n * @this Constructor\n */\nMessage.encodeDelimited = function encodeDelimited(message, writer) {\n return this.$type.encodeDelimited(message, writer);\n};\n\n/**\n * Decodes a message of this type.\n * @name Message.decode\n * @function\n * @param {Reader|Uint8Array} reader Reader or buffer to decode\n * @returns {T} Decoded message\n * @template T extends Message\n * @this Constructor\n */\nMessage.decode = function decode(reader) {\n return this.$type.decode(reader);\n};\n\n/**\n * Decodes a message of this type preceeded by its length as a varint.\n * @name Message.decodeDelimited\n * @function\n * @param {Reader|Uint8Array} reader Reader or buffer to decode\n * @returns {T} Decoded message\n * @template T extends Message\n * @this Constructor\n */\nMessage.decodeDelimited = function decodeDelimited(reader) {\n return this.$type.decodeDelimited(reader);\n};\n\n/**\n * Verifies a message of this type.\n * @name Message.verify\n * @function\n * @param {Object.} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\nMessage.verify = function verify(message) {\n return this.$type.verify(message);\n};\n\n/**\n * Creates a new message of this type from a plain object. Also converts values to their respective internal types.\n * @param {Object.} object Plain object\n * @returns {T} Message instance\n * @template T extends Message\n * @this Constructor\n */\nMessage.fromObject = function fromObject(object) {\n return this.$type.fromObject(object);\n};\n\n/**\n * Creates a plain object from a message of this type. Also converts values to other types if specified.\n * @param {T} message Message instance\n * @param {IConversionOptions} [options] Conversion options\n * @returns {Object.} Plain object\n * @template T extends Message\n * @this Constructor\n */\nMessage.toObject = function toObject(message, options) {\n return this.$type.toObject(message, options);\n};\n\n/**\n * Converts this message to JSON.\n * @returns {Object.} JSON object\n */\nMessage.prototype.toJSON = function toJSON() {\n return this.$type.toObject(this, util.toJSONOptions);\n};\n\n/*eslint-enable valid-jsdoc*/", "\"use strict\";\nmodule.exports = decoder;\n\nvar Enum = require(\"./enum\"),\n types = require(\"./types\"),\n util = require(\"./util\");\n\nfunction missing(field) {\n return \"missing required '\" + field.name + \"'\";\n}\n\n/**\n * Generates a decoder specific to the specified message type.\n * @param {Type} mtype Message type\n * @returns {Codegen} Codegen instance\n */\nfunction decoder(mtype) {\n /* eslint-disable no-unexpected-multiline */\n var gen = util.codegen([\"r\", \"l\"], mtype.name + \"$decode\")\n (\"if(!(r instanceof Reader))\")\n (\"r=Reader.create(r)\")\n (\"var c=l===undefined?r.len:r.pos+l,m=new this.ctor\" + (mtype.fieldsArray.filter(function(field) { return field.map; }).length ? \",k,value\" : \"\"))\n (\"while(r.pos>>3){\");\n\n var i = 0;\n for (; i < /* initializes */ mtype.fieldsArray.length; ++i) {\n var field = mtype._fieldsArray[i].resolve(),\n type = field.resolvedType instanceof Enum ? \"int32\" : field.type,\n ref = \"m\" + util.safeProp(field.name); gen\n (\"case %i:\", field.id);\n\n // Map fields\n if (field.map) { gen\n (\"if(%s===util.emptyObject)\", ref)\n (\"%s={}\", ref)\n (\"var c2 = r.uint32()+r.pos\");\n\n if (types.defaults[field.keyType] !== undefined) gen\n (\"k=%j\", types.defaults[field.keyType]);\n else gen\n (\"k=null\");\n\n if (types.defaults[type] !== undefined) gen\n (\"value=%j\", types.defaults[type]);\n else gen\n (\"value=null\");\n\n gen\n (\"while(r.pos>>3){\")\n (\"case 1: k=r.%s(); break\", field.keyType)\n (\"case 2:\");\n\n if (types.basic[type] === undefined) gen\n (\"value=types[%i].decode(r,r.uint32())\", i); // can't be groups\n else gen\n (\"value=r.%s()\", type);\n\n gen\n (\"break\")\n (\"default:\")\n (\"r.skipType(tag2&7)\")\n (\"break\")\n (\"}\")\n (\"}\");\n\n if (types.long[field.keyType] !== undefined) gen\n (\"%s[typeof k===\\\"object\\\"?util.longToHash(k):k]=value\", ref);\n else gen\n (\"%s[k]=value\", ref);\n\n // Repeated fields\n } else if (field.repeated) { gen\n\n (\"if(!(%s&&%s.length))\", ref, ref)\n (\"%s=[]\", ref);\n\n // Packable (always check for forward and backward compatiblity)\n if (types.packed[type] !== undefined) gen\n (\"if((t&7)===2){\")\n (\"var c2=r.uint32()+r.pos\")\n (\"while(r.pos>>0\", prop, prop);\n break;\n case \"int32\":\n case \"sint32\":\n case \"sfixed32\": gen\n (\"m%s=d%s|0\", prop, prop);\n break;\n case \"uint64\":\n isUnsigned = true;\n // eslint-disable-line no-fallthrough\n case \"int64\":\n case \"sint64\":\n case \"fixed64\":\n case \"sfixed64\": gen\n (\"if(util.Long)\")\n (\"(m%s=util.Long.fromValue(d%s)).unsigned=%j\", prop, prop, isUnsigned)\n (\"else if(typeof d%s===\\\"string\\\")\", prop)\n (\"m%s=parseInt(d%s,10)\", prop, prop)\n (\"else if(typeof d%s===\\\"number\\\")\", prop)\n (\"m%s=d%s\", prop, prop)\n (\"else if(typeof d%s===\\\"object\\\")\", prop)\n (\"m%s=new util.LongBits(d%s.low>>>0,d%s.high>>>0).toNumber(%s)\", prop, prop, prop, isUnsigned ? \"true\" : \"\");\n break;\n case \"bytes\": gen\n (\"if(typeof d%s===\\\"string\\\")\", prop)\n (\"util.base64.decode(d%s,m%s=util.newBuffer(util.base64.length(d%s)),0)\", prop, prop, prop)\n (\"else if(d%s.length)\", prop)\n (\"m%s=d%s\", prop, prop);\n break;\n case \"string\": gen\n (\"m%s=String(d%s)\", prop, prop);\n break;\n case \"bool\": gen\n (\"m%s=Boolean(d%s)\", prop, prop);\n break;\n /* default: gen\n (\"m%s=d%s\", prop, prop);\n break; */\n }\n }\n return gen;\n /* eslint-enable no-unexpected-multiline, block-scoped-var, no-redeclare */\n}\n\n/**\n * Generates a plain object to runtime message converter specific to the specified message type.\n * @param {Type} mtype Message type\n * @returns {Codegen} Codegen instance\n */\nconverter.fromObject = function fromObject(mtype) {\n /* eslint-disable no-unexpected-multiline, block-scoped-var, no-redeclare */\n var fields = mtype.fieldsArray;\n var gen = util.codegen([\"d\"], mtype.name + \"$fromObject\")\n (\"if(d instanceof this.ctor)\")\n (\"return d\");\n if (!fields.length) return gen\n (\"return new this.ctor\");\n gen\n (\"var m=new this.ctor\");\n for (var i = 0; i < fields.length; ++i) {\n var field = fields[i].resolve(),\n prop = util.safeProp(field.name);\n\n // Map fields\n if (field.map) { gen\n (\"if(d%s){\", prop)\n (\"if(typeof d%s!==\\\"object\\\")\", prop)\n (\"throw TypeError(%j)\", field.fullName + \": object expected\")\n (\"m%s={}\", prop)\n (\"for(var ks=Object.keys(d%s),i=0;i>>0,m%s.high>>>0).toNumber(%s):m%s\", prop, prop, prop, prop, isUnsigned ? \"true\": \"\", prop);\n break;\n case \"bytes\": gen\n (\"d%s=o.bytes===String?util.base64.encode(m%s,0,m%s.length):o.bytes===Array?Array.prototype.slice.call(m%s):m%s\", prop, prop, prop, prop, prop);\n break;\n default: gen\n (\"d%s=m%s\", prop, prop);\n break;\n }\n }\n return gen;\n /* eslint-enable no-unexpected-multiline, block-scoped-var, no-redeclare */\n}\n\n/**\n * Generates a runtime message to plain object converter specific to the specified message type.\n * @param {Type} mtype Message type\n * @returns {Codegen} Codegen instance\n */\nconverter.toObject = function toObject(mtype) {\n /* eslint-disable no-unexpected-multiline, block-scoped-var, no-redeclare */\n var fields = mtype.fieldsArray.slice().sort(util.compareFieldsById);\n if (!fields.length)\n return util.codegen()(\"return {}\");\n var gen = util.codegen([\"m\", \"o\"], mtype.name + \"$toObject\")\n (\"if(!o)\")\n (\"o={}\")\n (\"var d={}\");\n\n var repeatedFields = [],\n mapFields = [],\n normalFields = [],\n i = 0;\n for (; i < fields.length; ++i)\n if (!fields[i].partOf)\n ( fields[i].resolve().repeated ? repeatedFields\n : fields[i].map ? mapFields\n : normalFields).push(fields[i]);\n\n if (repeatedFields.length) { gen\n (\"if(o.arrays||o.defaults){\");\n for (i = 0; i < repeatedFields.length; ++i) gen\n (\"d%s=[]\", util.safeProp(repeatedFields[i].name));\n gen\n (\"}\");\n }\n\n if (mapFields.length) { gen\n (\"if(o.objects||o.defaults){\");\n for (i = 0; i < mapFields.length; ++i) gen\n (\"d%s={}\", util.safeProp(mapFields[i].name));\n gen\n (\"}\");\n }\n\n if (normalFields.length) { gen\n (\"if(o.defaults){\");\n for (i = 0; i < normalFields.length; ++i) {\n var field = normalFields[i],\n prop = util.safeProp(field.name);\n if (field.resolvedType instanceof Enum) gen\n (\"d%s=o.enums===String?%j:%j\", prop, field.resolvedType.valuesById[field.typeDefault], field.typeDefault);\n else if (field.long) gen\n (\"if(util.Long){\")\n (\"var n=new util.Long(%i,%i,%j)\", field.typeDefault.low, field.typeDefault.high, field.typeDefault.unsigned)\n (\"d%s=o.longs===String?n.toString():o.longs===Number?n.toNumber():n\", prop)\n (\"}else\")\n (\"d%s=o.longs===String?%j:%i\", prop, field.typeDefault.toString(), field.typeDefault.toNumber());\n else if (field.bytes) {\n var arrayDefault = \"[\" + Array.prototype.slice.call(field.typeDefault).join(\",\") + \"]\";\n gen\n (\"if(o.bytes===String)d%s=%j\", prop, String.fromCharCode.apply(String, field.typeDefault))\n (\"else{\")\n (\"d%s=%s\", prop, arrayDefault)\n (\"if(o.bytes!==Array)d%s=util.newBuffer(d%s)\", prop, prop)\n (\"}\");\n } else gen\n (\"d%s=%j\", prop, field.typeDefault); // also messages (=null)\n } gen\n (\"}\");\n }\n var hasKs2 = false;\n for (i = 0; i < fields.length; ++i) {\n var field = fields[i],\n index = mtype._fieldsArray.indexOf(field),\n prop = util.safeProp(field.name);\n if (field.map) {\n if (!hasKs2) { hasKs2 = true; gen\n (\"var ks2\");\n } gen\n (\"if(m%s&&(ks2=Object.keys(m%s)).length){\", prop, prop)\n (\"d%s={}\", prop)\n (\"for(var j=0;j}\n * @const\n */\nvar wrappers = exports;\n\nvar Message = require(\"./message\");\n\n/**\n * From object converter part of an {@link IWrapper}.\n * @typedef WrapperFromObjectConverter\n * @type {function}\n * @param {Object.} object Plain object\n * @returns {Message<{}>} Message instance\n * @this Type\n */\n\n/**\n * To object converter part of an {@link IWrapper}.\n * @typedef WrapperToObjectConverter\n * @type {function}\n * @param {Message<{}>} message Message instance\n * @param {IConversionOptions} [options] Conversion options\n * @returns {Object.} Plain object\n * @this Type\n */\n\n/**\n * Common type wrapper part of {@link wrappers}.\n * @interface IWrapper\n * @property {WrapperFromObjectConverter} [fromObject] From object converter\n * @property {WrapperToObjectConverter} [toObject] To object converter\n */\n\n// Custom wrapper for Any\nwrappers[\".google.protobuf.Any\"] = {\n\n fromObject: function(object) {\n\n // unwrap value type if mapped\n if (object && object[\"@type\"]) {\n // Only use fully qualified type name after the last '/'\n var name = object[\"@type\"].substring(object[\"@type\"].lastIndexOf(\"/\") + 1);\n var type = this.lookup(name);\n /* istanbul ignore else */\n if (type) {\n // type_url does not accept leading \".\"\n var type_url = object[\"@type\"].charAt(0) === \".\" ?\n object[\"@type\"].substr(1) : object[\"@type\"];\n // type_url prefix is optional, but path seperator is required\n if (type_url.indexOf(\"/\") === -1) {\n type_url = \"/\" + type_url;\n }\n return this.create({\n type_url: type_url,\n value: type.encode(type.fromObject(object)).finish()\n });\n }\n }\n\n return this.fromObject(object);\n },\n\n toObject: function(message, options) {\n\n // Default prefix\n var googleApi = \"type.googleapis.com/\";\n var prefix = \"\";\n var name = \"\";\n\n // decode value if requested and unmapped\n if (options && options.json && message.type_url && message.value) {\n // Only use fully qualified type name after the last '/'\n name = message.type_url.substring(message.type_url.lastIndexOf(\"/\") + 1);\n // Separate the prefix used\n prefix = message.type_url.substring(0, message.type_url.lastIndexOf(\"/\") + 1);\n var type = this.lookup(name);\n /* istanbul ignore else */\n if (type)\n message = type.decode(message.value);\n }\n\n // wrap value if unmapped\n if (!(message instanceof this.ctor) && message instanceof Message) {\n var object = message.$type.toObject(message, options);\n var messageName = message.$type.fullName[0] === \".\" ?\n message.$type.fullName.substr(1) : message.$type.fullName;\n // Default to type.googleapis.com prefix if no prefix is used\n if (prefix === \"\") {\n prefix = googleApi;\n }\n name = prefix + messageName;\n object[\"@type\"] = name;\n return object;\n }\n\n return this.toObject(message, options);\n }\n};\n", "\"use strict\";\nmodule.exports = Type;\n\n// extends Namespace\nvar Namespace = require(\"./namespace\");\n((Type.prototype = Object.create(Namespace.prototype)).constructor = Type).className = \"Type\";\n\nvar Enum = require(\"./enum\"),\n OneOf = require(\"./oneof\"),\n Field = require(\"./field\"),\n MapField = require(\"./mapfield\"),\n Service = require(\"./service\"),\n Message = require(\"./message\"),\n Reader = require(\"./reader\"),\n Writer = require(\"./writer\"),\n util = require(\"./util\"),\n encoder = require(\"./encoder\"),\n decoder = require(\"./decoder\"),\n verifier = require(\"./verifier\"),\n converter = require(\"./converter\"),\n wrappers = require(\"./wrappers\");\n\n/**\n * Constructs a new reflected message type instance.\n * @classdesc Reflected message type.\n * @extends NamespaceBase\n * @constructor\n * @param {string} name Message name\n * @param {Object.} [options] Declared options\n */\nfunction Type(name, options) {\n Namespace.call(this, name, options);\n\n /**\n * Message fields.\n * @type {Object.}\n */\n this.fields = {}; // toJSON, marker\n\n /**\n * Oneofs declared within this namespace, if any.\n * @type {Object.}\n */\n this.oneofs = undefined; // toJSON\n\n /**\n * Extension ranges, if any.\n * @type {number[][]}\n */\n this.extensions = undefined; // toJSON\n\n /**\n * Reserved ranges, if any.\n * @type {Array.}\n */\n this.reserved = undefined; // toJSON\n\n /*?\n * Whether this type is a legacy group.\n * @type {boolean|undefined}\n */\n this.group = undefined; // toJSON\n\n /**\n * Cached fields by id.\n * @type {Object.|null}\n * @private\n */\n this._fieldsById = null;\n\n /**\n * Cached fields as an array.\n * @type {Field[]|null}\n * @private\n */\n this._fieldsArray = null;\n\n /**\n * Cached oneofs as an array.\n * @type {OneOf[]|null}\n * @private\n */\n this._oneofsArray = null;\n\n /**\n * Cached constructor.\n * @type {Constructor<{}>}\n * @private\n */\n this._ctor = null;\n}\n\nObject.defineProperties(Type.prototype, {\n\n /**\n * Message fields by id.\n * @name Type#fieldsById\n * @type {Object.}\n * @readonly\n */\n fieldsById: {\n get: function() {\n\n /* istanbul ignore if */\n if (this._fieldsById)\n return this._fieldsById;\n\n this._fieldsById = {};\n for (var names = Object.keys(this.fields), i = 0; i < names.length; ++i) {\n var field = this.fields[names[i]],\n id = field.id;\n\n /* istanbul ignore if */\n if (this._fieldsById[id])\n throw Error(\"duplicate id \" + id + \" in \" + this);\n\n this._fieldsById[id] = field;\n }\n return this._fieldsById;\n }\n },\n\n /**\n * Fields of this message as an array for iteration.\n * @name Type#fieldsArray\n * @type {Field[]}\n * @readonly\n */\n fieldsArray: {\n get: function() {\n return this._fieldsArray || (this._fieldsArray = util.toArray(this.fields));\n }\n },\n\n /**\n * Oneofs of this message as an array for iteration.\n * @name Type#oneofsArray\n * @type {OneOf[]}\n * @readonly\n */\n oneofsArray: {\n get: function() {\n return this._oneofsArray || (this._oneofsArray = util.toArray(this.oneofs));\n }\n },\n\n /**\n * The registered constructor, if any registered, otherwise a generic constructor.\n * Assigning a function replaces the internal constructor. If the function does not extend {@link Message} yet, its prototype will be setup accordingly and static methods will be populated. If it already extends {@link Message}, it will just replace the internal constructor.\n * @name Type#ctor\n * @type {Constructor<{}>}\n */\n ctor: {\n get: function() {\n return this._ctor || (this.ctor = Type.generateConstructor(this)());\n },\n set: function(ctor) {\n\n // Ensure proper prototype\n var prototype = ctor.prototype;\n if (!(prototype instanceof Message)) {\n (ctor.prototype = new Message()).constructor = ctor;\n util.merge(ctor.prototype, prototype);\n }\n\n // Classes and messages reference their reflected type\n ctor.$type = ctor.prototype.$type = this;\n\n // Mix in static methods\n util.merge(ctor, Message, true);\n\n this._ctor = ctor;\n\n // Messages have non-enumerable default values on their prototype\n var i = 0;\n for (; i < /* initializes */ this.fieldsArray.length; ++i)\n this._fieldsArray[i].resolve(); // ensures a proper value\n\n // Messages have non-enumerable getters and setters for each virtual oneof field\n var ctorProperties = {};\n for (i = 0; i < /* initializes */ this.oneofsArray.length; ++i)\n ctorProperties[this._oneofsArray[i].resolve().name] = {\n get: util.oneOfGetter(this._oneofsArray[i].oneof),\n set: util.oneOfSetter(this._oneofsArray[i].oneof)\n };\n if (i)\n Object.defineProperties(ctor.prototype, ctorProperties);\n }\n }\n});\n\n/**\n * Generates a constructor function for the specified type.\n * @param {Type} mtype Message type\n * @returns {Codegen} Codegen instance\n */\nType.generateConstructor = function generateConstructor(mtype) {\n /* eslint-disable no-unexpected-multiline */\n var gen = util.codegen([\"p\"], mtype.name);\n // explicitly initialize mutable object/array fields so that these aren't just inherited from the prototype\n for (var i = 0, field; i < mtype.fieldsArray.length; ++i)\n if ((field = mtype._fieldsArray[i]).map) gen\n (\"this%s={}\", util.safeProp(field.name));\n else if (field.repeated) gen\n (\"this%s=[]\", util.safeProp(field.name));\n return gen\n (\"if(p)for(var ks=Object.keys(p),i=0;i} [oneofs] Oneof descriptors\n * @property {Object.} fields Field descriptors\n * @property {number[][]} [extensions] Extension ranges\n * @property {number[][]} [reserved] Reserved ranges\n * @property {boolean} [group=false] Whether a legacy group or not\n */\n\n/**\n * Creates a message type from a message type descriptor.\n * @param {string} name Message name\n * @param {IType} json Message type descriptor\n * @returns {Type} Created message type\n */\nType.fromJSON = function fromJSON(name, json) {\n var type = new Type(name, json.options);\n type.extensions = json.extensions;\n type.reserved = json.reserved;\n var names = Object.keys(json.fields),\n i = 0;\n for (; i < names.length; ++i)\n type.add(\n ( typeof json.fields[names[i]].keyType !== \"undefined\"\n ? MapField.fromJSON\n : Field.fromJSON )(names[i], json.fields[names[i]])\n );\n if (json.oneofs)\n for (names = Object.keys(json.oneofs), i = 0; i < names.length; ++i)\n type.add(OneOf.fromJSON(names[i], json.oneofs[names[i]]));\n if (json.nested)\n for (names = Object.keys(json.nested), i = 0; i < names.length; ++i) {\n var nested = json.nested[names[i]];\n type.add( // most to least likely\n ( nested.id !== undefined\n ? Field.fromJSON\n : nested.fields !== undefined\n ? Type.fromJSON\n : nested.values !== undefined\n ? Enum.fromJSON\n : nested.methods !== undefined\n ? Service.fromJSON\n : Namespace.fromJSON )(names[i], nested)\n );\n }\n if (json.extensions && json.extensions.length)\n type.extensions = json.extensions;\n if (json.reserved && json.reserved.length)\n type.reserved = json.reserved;\n if (json.group)\n type.group = true;\n if (json.comment)\n type.comment = json.comment;\n return type;\n};\n\n/**\n * Converts this message type to a message type descriptor.\n * @param {IToJSONOptions} [toJSONOptions] JSON conversion options\n * @returns {IType} Message type descriptor\n */\nType.prototype.toJSON = function toJSON(toJSONOptions) {\n var inherited = Namespace.prototype.toJSON.call(this, toJSONOptions);\n var keepComments = toJSONOptions ? Boolean(toJSONOptions.keepComments) : false;\n return util.toObject([\n \"options\" , inherited && inherited.options || undefined,\n \"oneofs\" , Namespace.arrayToJSON(this.oneofsArray, toJSONOptions),\n \"fields\" , Namespace.arrayToJSON(this.fieldsArray.filter(function(obj) { return !obj.declaringField; }), toJSONOptions) || {},\n \"extensions\" , this.extensions && this.extensions.length ? this.extensions : undefined,\n \"reserved\" , this.reserved && this.reserved.length ? this.reserved : undefined,\n \"group\" , this.group || undefined,\n \"nested\" , inherited && inherited.nested || undefined,\n \"comment\" , keepComments ? this.comment : undefined\n ]);\n};\n\n/**\n * @override\n */\nType.prototype.resolveAll = function resolveAll() {\n var fields = this.fieldsArray, i = 0;\n while (i < fields.length)\n fields[i++].resolve();\n var oneofs = this.oneofsArray; i = 0;\n while (i < oneofs.length)\n oneofs[i++].resolve();\n return Namespace.prototype.resolveAll.call(this);\n};\n\n/**\n * @override\n */\nType.prototype.get = function get(name) {\n return this.fields[name]\n || this.oneofs && this.oneofs[name]\n || this.nested && this.nested[name]\n || null;\n};\n\n/**\n * Adds a nested object to this type.\n * @param {ReflectionObject} object Nested object to add\n * @returns {Type} `this`\n * @throws {TypeError} If arguments are invalid\n * @throws {Error} If there is already a nested object with this name or, if a field, when there is already a field with this id\n */\nType.prototype.add = function add(object) {\n\n if (this.get(object.name))\n throw Error(\"duplicate name '\" + object.name + \"' in \" + this);\n\n if (object instanceof Field && object.extend === undefined) {\n // NOTE: Extension fields aren't actual fields on the declaring type, but nested objects.\n // The root object takes care of adding distinct sister-fields to the respective extended\n // type instead.\n\n // avoids calling the getter if not absolutely necessary because it's called quite frequently\n if (this._fieldsById ? /* istanbul ignore next */ this._fieldsById[object.id] : this.fieldsById[object.id])\n throw Error(\"duplicate id \" + object.id + \" in \" + this);\n if (this.isReservedId(object.id))\n throw Error(\"id \" + object.id + \" is reserved in \" + this);\n if (this.isReservedName(object.name))\n throw Error(\"name '\" + object.name + \"' is reserved in \" + this);\n\n if (object.parent)\n object.parent.remove(object);\n this.fields[object.name] = object;\n object.message = this;\n object.onAdd(this);\n return clearCache(this);\n }\n if (object instanceof OneOf) {\n if (!this.oneofs)\n this.oneofs = {};\n this.oneofs[object.name] = object;\n object.onAdd(this);\n return clearCache(this);\n }\n return Namespace.prototype.add.call(this, object);\n};\n\n/**\n * Removes a nested object from this type.\n * @param {ReflectionObject} object Nested object to remove\n * @returns {Type} `this`\n * @throws {TypeError} If arguments are invalid\n * @throws {Error} If `object` is not a member of this type\n */\nType.prototype.remove = function remove(object) {\n if (object instanceof Field && object.extend === undefined) {\n // See Type#add for the reason why extension fields are excluded here.\n\n /* istanbul ignore if */\n if (!this.fields || this.fields[object.name] !== object)\n throw Error(object + \" is not a member of \" + this);\n\n delete this.fields[object.name];\n object.parent = null;\n object.onRemove(this);\n return clearCache(this);\n }\n if (object instanceof OneOf) {\n\n /* istanbul ignore if */\n if (!this.oneofs || this.oneofs[object.name] !== object)\n throw Error(object + \" is not a member of \" + this);\n\n delete this.oneofs[object.name];\n object.parent = null;\n object.onRemove(this);\n return clearCache(this);\n }\n return Namespace.prototype.remove.call(this, object);\n};\n\n/**\n * Tests if the specified id is reserved.\n * @param {number} id Id to test\n * @returns {boolean} `true` if reserved, otherwise `false`\n */\nType.prototype.isReservedId = function isReservedId(id) {\n return Namespace.isReservedId(this.reserved, id);\n};\n\n/**\n * Tests if the specified name is reserved.\n * @param {string} name Name to test\n * @returns {boolean} `true` if reserved, otherwise `false`\n */\nType.prototype.isReservedName = function isReservedName(name) {\n return Namespace.isReservedName(this.reserved, name);\n};\n\n/**\n * Creates a new message of this type using the specified properties.\n * @param {Object.} [properties] Properties to set\n * @returns {Message<{}>} Message instance\n */\nType.prototype.create = function create(properties) {\n return new this.ctor(properties);\n};\n\n/**\n * Sets up {@link Type#encode|encode}, {@link Type#decode|decode} and {@link Type#verify|verify}.\n * @returns {Type} `this`\n */\nType.prototype.setup = function setup() {\n // Sets up everything at once so that the prototype chain does not have to be re-evaluated\n // multiple times (V8, soft-deopt prototype-check).\n\n var fullName = this.fullName,\n types = [];\n for (var i = 0; i < /* initializes */ this.fieldsArray.length; ++i)\n types.push(this._fieldsArray[i].resolve().resolvedType);\n\n // Replace setup methods with type-specific generated functions\n this.encode = encoder(this)({\n Writer : Writer,\n types : types,\n util : util\n });\n this.decode = decoder(this)({\n Reader : Reader,\n types : types,\n util : util\n });\n this.verify = verifier(this)({\n types : types,\n util : util\n });\n this.fromObject = converter.fromObject(this)({\n types : types,\n util : util\n });\n this.toObject = converter.toObject(this)({\n types : types,\n util : util\n });\n\n // Inject custom wrappers for common types\n var wrapper = wrappers[fullName];\n if (wrapper) {\n var originalThis = Object.create(this);\n // if (wrapper.fromObject) {\n originalThis.fromObject = this.fromObject;\n this.fromObject = wrapper.fromObject.bind(originalThis);\n // }\n // if (wrapper.toObject) {\n originalThis.toObject = this.toObject;\n this.toObject = wrapper.toObject.bind(originalThis);\n // }\n }\n\n return this;\n};\n\n/**\n * Encodes a message of this type. Does not implicitly {@link Type#verify|verify} messages.\n * @param {Message<{}>|Object.} message Message instance or plain object\n * @param {Writer} [writer] Writer to encode to\n * @returns {Writer} writer\n */\nType.prototype.encode = function encode_setup(message, writer) {\n return this.setup().encode(message, writer); // overrides this method\n};\n\n/**\n * Encodes a message of this type preceeded by its byte length as a varint. Does not implicitly {@link Type#verify|verify} messages.\n * @param {Message<{}>|Object.} message Message instance or plain object\n * @param {Writer} [writer] Writer to encode to\n * @returns {Writer} writer\n */\nType.prototype.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim();\n};\n\n/**\n * Decodes a message of this type.\n * @param {Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Length of the message, if known beforehand\n * @returns {Message<{}>} Decoded message\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {util.ProtocolError<{}>} If required fields are missing\n */\nType.prototype.decode = function decode_setup(reader, length) {\n return this.setup().decode(reader, length); // overrides this method\n};\n\n/**\n * Decodes a message of this type preceeded by its byte length as a varint.\n * @param {Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {Message<{}>} Decoded message\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {util.ProtocolError} If required fields are missing\n */\nType.prototype.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof Reader))\n reader = Reader.create(reader);\n return this.decode(reader, reader.uint32());\n};\n\n/**\n * Verifies that field values are valid and that required fields are present.\n * @param {Object.} message Plain object to verify\n * @returns {null|string} `null` if valid, otherwise the reason why it is not\n */\nType.prototype.verify = function verify_setup(message) {\n return this.setup().verify(message); // overrides this method\n};\n\n/**\n * Creates a new message of this type from a plain object. Also converts values to their respective internal types.\n * @param {Object.} object Plain object to convert\n * @returns {Message<{}>} Message instance\n */\nType.prototype.fromObject = function fromObject(object) {\n return this.setup().fromObject(object);\n};\n\n/**\n * Conversion options as used by {@link Type#toObject} and {@link Message.toObject}.\n * @interface IConversionOptions\n * @property {Function} [longs] Long conversion type.\n * Valid values are `String` and `Number` (the global types).\n * Defaults to copy the present value, which is a possibly unsafe number without and a {@link Long} with a long library.\n * @property {Function} [enums] Enum value conversion type.\n * Only valid value is `String` (the global type).\n * Defaults to copy the present value, which is the numeric id.\n * @property {Function} [bytes] Bytes value conversion type.\n * Valid values are `Array` and (a base64 encoded) `String` (the global types).\n * Defaults to copy the present value, which usually is a Buffer under node and an Uint8Array in the browser.\n * @property {boolean} [defaults=false] Also sets default values on the resulting object\n * @property {boolean} [arrays=false] Sets empty arrays for missing repeated fields even if `defaults=false`\n * @property {boolean} [objects=false] Sets empty objects for missing map fields even if `defaults=false`\n * @property {boolean} [oneofs=false] Includes virtual oneof properties set to the present field's name, if any\n * @property {boolean} [json=false] Performs additional JSON compatibility conversions, i.e. NaN and Infinity to strings\n */\n\n/**\n * Creates a plain object from a message of this type. Also converts values to other types if specified.\n * @param {Message<{}>} message Message instance\n * @param {IConversionOptions} [options] Conversion options\n * @returns {Object.} Plain object\n */\nType.prototype.toObject = function toObject(message, options) {\n return this.setup().toObject(message, options);\n};\n\n/**\n * Decorator function as returned by {@link Type.d} (TypeScript).\n * @typedef TypeDecorator\n * @type {function}\n * @param {Constructor} target Target constructor\n * @returns {undefined}\n * @template T extends Message\n */\n\n/**\n * Type decorator (TypeScript).\n * @param {string} [typeName] Type name, defaults to the constructor's name\n * @returns {TypeDecorator} Decorator function\n * @template T extends Message\n */\nType.d = function decorateType(typeName) {\n return function typeDecorator(target) {\n util.decorateType(target, typeName);\n };\n};\n", "\"use strict\";\nmodule.exports = Root;\n\n// extends Namespace\nvar Namespace = require(\"./namespace\");\n((Root.prototype = Object.create(Namespace.prototype)).constructor = Root).className = \"Root\";\n\nvar Field = require(\"./field\"),\n Enum = require(\"./enum\"),\n OneOf = require(\"./oneof\"),\n util = require(\"./util\");\n\nvar Type, // cyclic\n parse, // might be excluded\n common; // \"\n\n/**\n * Constructs a new root namespace instance.\n * @classdesc Root namespace wrapping all types, enums, services, sub-namespaces etc. that belong together.\n * @extends NamespaceBase\n * @constructor\n * @param {Object.} [options] Top level options\n */\nfunction Root(options) {\n Namespace.call(this, \"\", options);\n\n /**\n * Deferred extension fields.\n * @type {Field[]}\n */\n this.deferred = [];\n\n /**\n * Resolved file names of loaded files.\n * @type {string[]}\n */\n this.files = [];\n}\n\n/**\n * Loads a namespace descriptor into a root namespace.\n * @param {INamespace} json Nameespace descriptor\n * @param {Root} [root] Root namespace, defaults to create a new one if omitted\n * @returns {Root} Root namespace\n */\nRoot.fromJSON = function fromJSON(json, root) {\n if (!root)\n root = new Root();\n if (json.options)\n root.setOptions(json.options);\n return root.addJSON(json.nested);\n};\n\n/**\n * Resolves the path of an imported file, relative to the importing origin.\n * This method exists so you can override it with your own logic in case your imports are scattered over multiple directories.\n * @function\n * @param {string} origin The file name of the importing file\n * @param {string} target The file name being imported\n * @returns {string|null} Resolved path to `target` or `null` to skip the file\n */\nRoot.prototype.resolvePath = util.path.resolve;\n\n/**\n * Fetch content from file path or url\n * This method exists so you can override it with your own logic.\n * @function\n * @param {string} path File path or url\n * @param {FetchCallback} callback Callback function\n * @returns {undefined}\n */\nRoot.prototype.fetch = util.fetch;\n\n// A symbol-like function to safely signal synchronous loading\n/* istanbul ignore next */\nfunction SYNC() {} // eslint-disable-line no-empty-function\n\n/**\n * Loads one or multiple .proto or preprocessed .json files into this root namespace and calls the callback.\n * @param {string|string[]} filename Names of one or multiple files to load\n * @param {IParseOptions} options Parse options\n * @param {LoadCallback} callback Callback function\n * @returns {undefined}\n */\nRoot.prototype.load = function load(filename, options, callback) {\n if (typeof options === \"function\") {\n callback = options;\n options = undefined;\n }\n var self = this;\n if (!callback)\n return util.asPromise(load, self, filename, options);\n\n var sync = callback === SYNC; // undocumented\n\n // Finishes loading by calling the callback (exactly once)\n function finish(err, root) {\n /* istanbul ignore if */\n if (!callback)\n return;\n var cb = callback;\n callback = null;\n if (sync)\n throw err;\n cb(err, root);\n }\n\n // Bundled definition existence checking\n function getBundledFileName(filename) {\n var idx = filename.lastIndexOf(\"google/protobuf/\");\n if (idx > -1) {\n var altname = filename.substring(idx);\n if (altname in common) return altname;\n }\n return null;\n }\n\n // Processes a single file\n function process(filename, source) {\n try {\n if (util.isString(source) && source.charAt(0) === \"{\")\n source = JSON.parse(source);\n if (!util.isString(source))\n self.setOptions(source.options).addJSON(source.nested);\n else {\n parse.filename = filename;\n var parsed = parse(source, self, options),\n resolved,\n i = 0;\n if (parsed.imports)\n for (; i < parsed.imports.length; ++i)\n if (resolved = getBundledFileName(parsed.imports[i]) || self.resolvePath(filename, parsed.imports[i]))\n fetch(resolved);\n if (parsed.weakImports)\n for (i = 0; i < parsed.weakImports.length; ++i)\n if (resolved = getBundledFileName(parsed.weakImports[i]) || self.resolvePath(filename, parsed.weakImports[i]))\n fetch(resolved, true);\n }\n } catch (err) {\n finish(err);\n }\n if (!sync && !queued)\n finish(null, self); // only once anyway\n }\n\n // Fetches a single file\n function fetch(filename, weak) {\n\n // Skip if already loaded / attempted\n if (self.files.indexOf(filename) > -1)\n return;\n self.files.push(filename);\n\n // Shortcut bundled definitions\n if (filename in common) {\n if (sync)\n process(filename, common[filename]);\n else {\n ++queued;\n setTimeout(function() {\n --queued;\n process(filename, common[filename]);\n });\n }\n return;\n }\n\n // Otherwise fetch from disk or network\n if (sync) {\n var source;\n try {\n source = util.fs.readFileSync(filename).toString(\"utf8\");\n } catch (err) {\n if (!weak)\n finish(err);\n return;\n }\n process(filename, source);\n } else {\n ++queued;\n self.fetch(filename, function(err, source) {\n --queued;\n /* istanbul ignore if */\n if (!callback)\n return; // terminated meanwhile\n if (err) {\n /* istanbul ignore else */\n if (!weak)\n finish(err);\n else if (!queued) // can't be covered reliably\n finish(null, self);\n return;\n }\n process(filename, source);\n });\n }\n }\n var queued = 0;\n\n // Assembling the root namespace doesn't require working type\n // references anymore, so we can load everything in parallel\n if (util.isString(filename))\n filename = [ filename ];\n for (var i = 0, resolved; i < filename.length; ++i)\n if (resolved = self.resolvePath(\"\", filename[i]))\n fetch(resolved);\n\n if (sync)\n return self;\n if (!queued)\n finish(null, self);\n return undefined;\n};\n// function load(filename:string, options:IParseOptions, callback:LoadCallback):undefined\n\n/**\n * Loads one or multiple .proto or preprocessed .json files into this root namespace and calls the callback.\n * @function Root#load\n * @param {string|string[]} filename Names of one or multiple files to load\n * @param {LoadCallback} callback Callback function\n * @returns {undefined}\n * @variation 2\n */\n// function load(filename:string, callback:LoadCallback):undefined\n\n/**\n * Loads one or multiple .proto or preprocessed .json files into this root namespace and returns a promise.\n * @function Root#load\n * @param {string|string[]} filename Names of one or multiple files to load\n * @param {IParseOptions} [options] Parse options. Defaults to {@link parse.defaults} when omitted.\n * @returns {Promise} Promise\n * @variation 3\n */\n// function load(filename:string, [options:IParseOptions]):Promise\n\n/**\n * Synchronously loads one or multiple .proto or preprocessed .json files into this root namespace (node only).\n * @function Root#loadSync\n * @param {string|string[]} filename Names of one or multiple files to load\n * @param {IParseOptions} [options] Parse options. Defaults to {@link parse.defaults} when omitted.\n * @returns {Root} Root namespace\n * @throws {Error} If synchronous fetching is not supported (i.e. in browsers) or if a file's syntax is invalid\n */\nRoot.prototype.loadSync = function loadSync(filename, options) {\n if (!util.isNode)\n throw Error(\"not supported\");\n return this.load(filename, options, SYNC);\n};\n\n/**\n * @override\n */\nRoot.prototype.resolveAll = function resolveAll() {\n if (this.deferred.length)\n throw Error(\"unresolvable extensions: \" + this.deferred.map(function(field) {\n return \"'extend \" + field.extend + \"' in \" + field.parent.fullName;\n }).join(\", \"));\n return Namespace.prototype.resolveAll.call(this);\n};\n\n// only uppercased (and thus conflict-free) children are exposed, see below\nvar exposeRe = /^[A-Z]/;\n\n/**\n * Handles a deferred declaring extension field by creating a sister field to represent it within its extended type.\n * @param {Root} root Root instance\n * @param {Field} field Declaring extension field witin the declaring type\n * @returns {boolean} `true` if successfully added to the extended type, `false` otherwise\n * @inner\n * @ignore\n */\nfunction tryHandleExtension(root, field) {\n var extendedType = field.parent.lookup(field.extend);\n if (extendedType) {\n var sisterField = new Field(field.fullName, field.id, field.type, field.rule, undefined, field.options);\n sisterField.declaringField = field;\n field.extensionField = sisterField;\n extendedType.add(sisterField);\n return true;\n }\n return false;\n}\n\n/**\n * Called when any object is added to this root or its sub-namespaces.\n * @param {ReflectionObject} object Object added\n * @returns {undefined}\n * @private\n */\nRoot.prototype._handleAdd = function _handleAdd(object) {\n if (object instanceof Field) {\n\n if (/* an extension field (implies not part of a oneof) */ object.extend !== undefined && /* not already handled */ !object.extensionField)\n if (!tryHandleExtension(this, object))\n this.deferred.push(object);\n\n } else if (object instanceof Enum) {\n\n if (exposeRe.test(object.name))\n object.parent[object.name] = object.values; // expose enum values as property of its parent\n\n } else if (!(object instanceof OneOf)) /* everything else is a namespace */ {\n\n if (object instanceof Type) // Try to handle any deferred extensions\n for (var i = 0; i < this.deferred.length;)\n if (tryHandleExtension(this, this.deferred[i]))\n this.deferred.splice(i, 1);\n else\n ++i;\n for (var j = 0; j < /* initializes */ object.nestedArray.length; ++j) // recurse into the namespace\n this._handleAdd(object._nestedArray[j]);\n if (exposeRe.test(object.name))\n object.parent[object.name] = object; // expose namespace as property of its parent\n }\n\n // The above also adds uppercased (and thus conflict-free) nested types, services and enums as\n // properties of namespaces just like static code does. This allows using a .d.ts generated for\n // a static module with reflection-based solutions where the condition is met.\n};\n\n/**\n * Called when any object is removed from this root or its sub-namespaces.\n * @param {ReflectionObject} object Object removed\n * @returns {undefined}\n * @private\n */\nRoot.prototype._handleRemove = function _handleRemove(object) {\n if (object instanceof Field) {\n\n if (/* an extension field */ object.extend !== undefined) {\n if (/* already handled */ object.extensionField) { // remove its sister field\n object.extensionField.parent.remove(object.extensionField);\n object.extensionField = null;\n } else { // cancel the extension\n var index = this.deferred.indexOf(object);\n /* istanbul ignore else */\n if (index > -1)\n this.deferred.splice(index, 1);\n }\n }\n\n } else if (object instanceof Enum) {\n\n if (exposeRe.test(object.name))\n delete object.parent[object.name]; // unexpose enum values\n\n } else if (object instanceof Namespace) {\n\n for (var i = 0; i < /* initializes */ object.nestedArray.length; ++i) // recurse into the namespace\n this._handleRemove(object._nestedArray[i]);\n\n if (exposeRe.test(object.name))\n delete object.parent[object.name]; // unexpose namespaces\n\n }\n};\n\n// Sets up cyclic dependencies (called in index-light)\nRoot._configure = function(Type_, parse_, common_) {\n Type = Type_;\n parse = parse_;\n common = common_;\n};\n", "\"use strict\";\n\n/**\n * Various utility functions.\n * @namespace\n */\nvar util = module.exports = require(\"./util/minimal\");\n\nvar roots = require(\"./roots\");\n\nvar Type, // cyclic\n Enum;\n\nutil.codegen = require(\"@protobufjs/codegen\");\nutil.fetch = require(\"@protobufjs/fetch\");\nutil.path = require(\"@protobufjs/path\");\n\n/**\n * Node's fs module if available.\n * @type {Object.}\n */\nutil.fs = util.inquire(\"fs\");\n\n/**\n * Converts an object's values to an array.\n * @param {Object.} object Object to convert\n * @returns {Array.<*>} Converted array\n */\nutil.toArray = function toArray(object) {\n if (object) {\n var keys = Object.keys(object),\n array = new Array(keys.length),\n index = 0;\n while (index < keys.length)\n array[index] = object[keys[index++]];\n return array;\n }\n return [];\n};\n\n/**\n * Converts an array of keys immediately followed by their respective value to an object, omitting undefined values.\n * @param {Array.<*>} array Array to convert\n * @returns {Object.} Converted object\n */\nutil.toObject = function toObject(array) {\n var object = {},\n index = 0;\n while (index < array.length) {\n var key = array[index++],\n val = array[index++];\n if (val !== undefined)\n object[key] = val;\n }\n return object;\n};\n\nvar safePropBackslashRe = /\\\\/g,\n safePropQuoteRe = /\"/g;\n\n/**\n * Tests whether the specified name is a reserved word in JS.\n * @param {string} name Name to test\n * @returns {boolean} `true` if reserved, otherwise `false`\n */\nutil.isReserved = function isReserved(name) {\n return /^(?:do|if|in|for|let|new|try|var|case|else|enum|eval|false|null|this|true|void|with|break|catch|class|const|super|throw|while|yield|delete|export|import|public|return|static|switch|typeof|default|extends|finally|package|private|continue|debugger|function|arguments|interface|protected|implements|instanceof)$/.test(name);\n};\n\n/**\n * Returns a safe property accessor for the specified property name.\n * @param {string} prop Property name\n * @returns {string} Safe accessor\n */\nutil.safeProp = function safeProp(prop) {\n if (!/^[$\\w_]+$/.test(prop) || util.isReserved(prop))\n return \"[\\\"\" + prop.replace(safePropBackslashRe, \"\\\\\\\\\").replace(safePropQuoteRe, \"\\\\\\\"\") + \"\\\"]\";\n return \".\" + prop;\n};\n\n/**\n * Converts the first character of a string to upper case.\n * @param {string} str String to convert\n * @returns {string} Converted string\n */\nutil.ucFirst = function ucFirst(str) {\n return str.charAt(0).toUpperCase() + str.substring(1);\n};\n\nvar camelCaseRe = /_([a-z])/g;\n\n/**\n * Converts a string to camel case.\n * @param {string} str String to convert\n * @returns {string} Converted string\n */\nutil.camelCase = function camelCase(str) {\n return str.substring(0, 1)\n + str.substring(1)\n .replace(camelCaseRe, function($0, $1) { return $1.toUpperCase(); });\n};\n\n/**\n * Compares reflected fields by id.\n * @param {Field} a First field\n * @param {Field} b Second field\n * @returns {number} Comparison value\n */\nutil.compareFieldsById = function compareFieldsById(a, b) {\n return a.id - b.id;\n};\n\n/**\n * Decorator helper for types (TypeScript).\n * @param {Constructor} ctor Constructor function\n * @param {string} [typeName] Type name, defaults to the constructor's name\n * @returns {Type} Reflected type\n * @template T extends Message\n * @property {Root} root Decorators root\n */\nutil.decorateType = function decorateType(ctor, typeName) {\n\n /* istanbul ignore if */\n if (ctor.$type) {\n if (typeName && ctor.$type.name !== typeName) {\n util.decorateRoot.remove(ctor.$type);\n ctor.$type.name = typeName;\n util.decorateRoot.add(ctor.$type);\n }\n return ctor.$type;\n }\n\n /* istanbul ignore next */\n if (!Type)\n Type = require(\"./type\");\n\n var type = new Type(typeName || ctor.name);\n util.decorateRoot.add(type);\n type.ctor = ctor; // sets up .encode, .decode etc.\n Object.defineProperty(ctor, \"$type\", { value: type, enumerable: false });\n Object.defineProperty(ctor.prototype, \"$type\", { value: type, enumerable: false });\n return type;\n};\n\nvar decorateEnumIndex = 0;\n\n/**\n * Decorator helper for enums (TypeScript).\n * @param {Object} object Enum object\n * @returns {Enum} Reflected enum\n */\nutil.decorateEnum = function decorateEnum(object) {\n\n /* istanbul ignore if */\n if (object.$type)\n return object.$type;\n\n /* istanbul ignore next */\n if (!Enum)\n Enum = require(\"./enum\");\n\n var enm = new Enum(\"Enum\" + decorateEnumIndex++, object);\n util.decorateRoot.add(enm);\n Object.defineProperty(object, \"$type\", { value: enm, enumerable: false });\n return enm;\n};\n\n\n/**\n * Sets the value of a property by property path. If a value already exists, it is turned to an array\n * @param {Object.} dst Destination object\n * @param {string} path dot '.' delimited path of the property to set\n * @param {Object} value the value to set\n * @returns {Object.} Destination object\n */\nutil.setProperty = function setProperty(dst, path, value) {\n function setProp(dst, path, value) {\n var part = path.shift();\n if (part === \"__proto__\") {\n return dst;\n }\n if (path.length > 0) {\n dst[part] = setProp(dst[part] || {}, path, value);\n } else {\n var prevValue = dst[part];\n if (prevValue)\n value = [].concat(prevValue).concat(value);\n dst[part] = value;\n }\n return dst;\n }\n\n if (typeof dst !== \"object\")\n throw TypeError(\"dst must be an object\");\n if (!path)\n throw TypeError(\"path must be specified\");\n\n path = path.split(\".\");\n return setProp(dst, path, value);\n};\n\n/**\n * Decorator root (TypeScript).\n * @name util.decorateRoot\n * @type {Root}\n * @readonly\n */\nObject.defineProperty(util, \"decorateRoot\", {\n get: function() {\n return roots[\"decorated\"] || (roots[\"decorated\"] = new (require(\"./root\"))());\n }\n});\n", "\"use strict\";\nmodule.exports = ReflectionObject;\n\nReflectionObject.className = \"ReflectionObject\";\n\nvar util = require(\"./util\");\n\nvar Root; // cyclic\n\n/**\n * Constructs a new reflection object instance.\n * @classdesc Base class of all reflection objects.\n * @constructor\n * @param {string} name Object name\n * @param {Object.} [options] Declared options\n * @abstract\n */\nfunction ReflectionObject(name, options) {\n\n if (!util.isString(name))\n throw TypeError(\"name must be a string\");\n\n if (options && !util.isObject(options))\n throw TypeError(\"options must be an object\");\n\n /**\n * Options.\n * @type {Object.|undefined}\n */\n this.options = options; // toJSON\n\n /**\n * Parsed Options.\n * @type {Array.>|undefined}\n */\n this.parsedOptions = null;\n\n /**\n * Unique name within its namespace.\n * @type {string}\n */\n this.name = name;\n\n /**\n * Parent namespace.\n * @type {Namespace|null}\n */\n this.parent = null;\n\n /**\n * Whether already resolved or not.\n * @type {boolean}\n */\n this.resolved = false;\n\n /**\n * Comment text, if any.\n * @type {string|null}\n */\n this.comment = null;\n\n /**\n * Defining file name.\n * @type {string|null}\n */\n this.filename = null;\n}\n\nObject.defineProperties(ReflectionObject.prototype, {\n\n /**\n * Reference to the root namespace.\n * @name ReflectionObject#root\n * @type {Root}\n * @readonly\n */\n root: {\n get: function() {\n var ptr = this;\n while (ptr.parent !== null)\n ptr = ptr.parent;\n return ptr;\n }\n },\n\n /**\n * Full name including leading dot.\n * @name ReflectionObject#fullName\n * @type {string}\n * @readonly\n */\n fullName: {\n get: function() {\n var path = [ this.name ],\n ptr = this.parent;\n while (ptr) {\n path.unshift(ptr.name);\n ptr = ptr.parent;\n }\n return path.join(\".\");\n }\n }\n});\n\n/**\n * Converts this reflection object to its descriptor representation.\n * @returns {Object.} Descriptor\n * @abstract\n */\nReflectionObject.prototype.toJSON = /* istanbul ignore next */ function toJSON() {\n throw Error(); // not implemented, shouldn't happen\n};\n\n/**\n * Called when this object is added to a parent.\n * @param {ReflectionObject} parent Parent added to\n * @returns {undefined}\n */\nReflectionObject.prototype.onAdd = function onAdd(parent) {\n if (this.parent && this.parent !== parent)\n this.parent.remove(this);\n this.parent = parent;\n this.resolved = false;\n var root = parent.root;\n if (root instanceof Root)\n root._handleAdd(this);\n};\n\n/**\n * Called when this object is removed from a parent.\n * @param {ReflectionObject} parent Parent removed from\n * @returns {undefined}\n */\nReflectionObject.prototype.onRemove = function onRemove(parent) {\n var root = parent.root;\n if (root instanceof Root)\n root._handleRemove(this);\n this.parent = null;\n this.resolved = false;\n};\n\n/**\n * Resolves this objects type references.\n * @returns {ReflectionObject} `this`\n */\nReflectionObject.prototype.resolve = function resolve() {\n if (this.resolved)\n return this;\n if (this.root instanceof Root)\n this.resolved = true; // only if part of a root\n return this;\n};\n\n/**\n * Gets an option value.\n * @param {string} name Option name\n * @returns {*} Option value or `undefined` if not set\n */\nReflectionObject.prototype.getOption = function getOption(name) {\n if (this.options)\n return this.options[name];\n return undefined;\n};\n\n/**\n * Sets an option.\n * @param {string} name Option name\n * @param {*} value Option value\n * @param {boolean} [ifNotSet] Sets the option only if it isn't currently set\n * @returns {ReflectionObject} `this`\n */\nReflectionObject.prototype.setOption = function setOption(name, value, ifNotSet) {\n if (!ifNotSet || !this.options || this.options[name] === undefined)\n (this.options || (this.options = {}))[name] = value;\n return this;\n};\n\n/**\n * Sets a parsed option.\n * @param {string} name parsed Option name\n * @param {*} value Option value\n * @param {string} propName dot '.' delimited full path of property within the option to set. if undefined\\empty, will add a new option with that value\n * @returns {ReflectionObject} `this`\n */\nReflectionObject.prototype.setParsedOption = function setParsedOption(name, value, propName) {\n if (!this.parsedOptions) {\n this.parsedOptions = [];\n }\n var parsedOptions = this.parsedOptions;\n if (propName) {\n // If setting a sub property of an option then try to merge it\n // with an existing option\n var opt = parsedOptions.find(function (opt) {\n return Object.prototype.hasOwnProperty.call(opt, name);\n });\n if (opt) {\n // If we found an existing option - just merge the property value\n var newValue = opt[name];\n util.setProperty(newValue, propName, value);\n } else {\n // otherwise, create a new option, set it's property and add it to the list\n opt = {};\n opt[name] = util.setProperty({}, propName, value);\n parsedOptions.push(opt);\n }\n } else {\n // Always create a new option when setting the value of the option itself\n var newOpt = {};\n newOpt[name] = value;\n parsedOptions.push(newOpt);\n }\n return this;\n};\n\n/**\n * Sets multiple options.\n * @param {Object.} options Options to set\n * @param {boolean} [ifNotSet] Sets an option only if it isn't currently set\n * @returns {ReflectionObject} `this`\n */\nReflectionObject.prototype.setOptions = function setOptions(options, ifNotSet) {\n if (options)\n for (var keys = Object.keys(options), i = 0; i < keys.length; ++i)\n this.setOption(keys[i], options[keys[i]], ifNotSet);\n return this;\n};\n\n/**\n * Converts this instance to its string representation.\n * @returns {string} Class name[, space, full name]\n */\nReflectionObject.prototype.toString = function toString() {\n var className = this.constructor.className,\n fullName = this.fullName;\n if (fullName.length)\n return className + \" \" + fullName;\n return className;\n};\n\n// Sets up cyclic dependencies (called in index-light)\nReflectionObject._configure = function(Root_) {\n Root = Root_;\n};\n", "\"use strict\";\nmodule.exports = Enum;\n\n// extends ReflectionObject\nvar ReflectionObject = require(\"./object\");\n((Enum.prototype = Object.create(ReflectionObject.prototype)).constructor = Enum).className = \"Enum\";\n\nvar Namespace = require(\"./namespace\"),\n util = require(\"./util\");\n\n/**\n * Constructs a new enum instance.\n * @classdesc Reflected enum.\n * @extends ReflectionObject\n * @constructor\n * @param {string} name Unique name within its namespace\n * @param {Object.} [values] Enum values as an object, by name\n * @param {Object.} [options] Declared options\n * @param {string} [comment] The comment for this enum\n * @param {Object.} [comments] The value comments for this enum\n */\nfunction Enum(name, values, options, comment, comments) {\n ReflectionObject.call(this, name, options);\n\n if (values && typeof values !== \"object\")\n throw TypeError(\"values must be an object\");\n\n /**\n * Enum values by id.\n * @type {Object.}\n */\n this.valuesById = {};\n\n /**\n * Enum values by name.\n * @type {Object.}\n */\n this.values = Object.create(this.valuesById); // toJSON, marker\n\n /**\n * Enum comment text.\n * @type {string|null}\n */\n this.comment = comment;\n\n /**\n * Value comment texts, if any.\n * @type {Object.}\n */\n this.comments = comments || {};\n\n /**\n * Reserved ranges, if any.\n * @type {Array.}\n */\n this.reserved = undefined; // toJSON\n\n // Note that values inherit valuesById on their prototype which makes them a TypeScript-\n // compatible enum. This is used by pbts to write actual enum definitions that work for\n // static and reflection code alike instead of emitting generic object definitions.\n\n if (values)\n for (var keys = Object.keys(values), i = 0; i < keys.length; ++i)\n if (typeof values[keys[i]] === \"number\") // use forward entries only\n this.valuesById[ this.values[keys[i]] = values[keys[i]] ] = keys[i];\n}\n\n/**\n * Enum descriptor.\n * @interface IEnum\n * @property {Object.} values Enum values\n * @property {Object.} [options] Enum options\n */\n\n/**\n * Constructs an enum from an enum descriptor.\n * @param {string} name Enum name\n * @param {IEnum} json Enum descriptor\n * @returns {Enum} Created enum\n * @throws {TypeError} If arguments are invalid\n */\nEnum.fromJSON = function fromJSON(name, json) {\n var enm = new Enum(name, json.values, json.options, json.comment, json.comments);\n enm.reserved = json.reserved;\n return enm;\n};\n\n/**\n * Converts this enum to an enum descriptor.\n * @param {IToJSONOptions} [toJSONOptions] JSON conversion options\n * @returns {IEnum} Enum descriptor\n */\nEnum.prototype.toJSON = function toJSON(toJSONOptions) {\n var keepComments = toJSONOptions ? Boolean(toJSONOptions.keepComments) : false;\n return util.toObject([\n \"options\" , this.options,\n \"values\" , this.values,\n \"reserved\" , this.reserved && this.reserved.length ? this.reserved : undefined,\n \"comment\" , keepComments ? this.comment : undefined,\n \"comments\" , keepComments ? this.comments : undefined\n ]);\n};\n\n/**\n * Adds a value to this enum.\n * @param {string} name Value name\n * @param {number} id Value id\n * @param {string} [comment] Comment, if any\n * @returns {Enum} `this`\n * @throws {TypeError} If arguments are invalid\n * @throws {Error} If there is already a value with this name or id\n */\nEnum.prototype.add = function add(name, id, comment) {\n // utilized by the parser but not by .fromJSON\n\n if (!util.isString(name))\n throw TypeError(\"name must be a string\");\n\n if (!util.isInteger(id))\n throw TypeError(\"id must be an integer\");\n\n if (this.values[name] !== undefined)\n throw Error(\"duplicate name '\" + name + \"' in \" + this);\n\n if (this.isReservedId(id))\n throw Error(\"id \" + id + \" is reserved in \" + this);\n\n if (this.isReservedName(name))\n throw Error(\"name '\" + name + \"' is reserved in \" + this);\n\n if (this.valuesById[id] !== undefined) {\n if (!(this.options && this.options.allow_alias))\n throw Error(\"duplicate id \" + id + \" in \" + this);\n this.values[name] = id;\n } else\n this.valuesById[this.values[name] = id] = name;\n\n this.comments[name] = comment || null;\n return this;\n};\n\n/**\n * Removes a value from this enum\n * @param {string} name Value name\n * @returns {Enum} `this`\n * @throws {TypeError} If arguments are invalid\n * @throws {Error} If `name` is not a name of this enum\n */\nEnum.prototype.remove = function remove(name) {\n\n if (!util.isString(name))\n throw TypeError(\"name must be a string\");\n\n var val = this.values[name];\n if (val == null)\n throw Error(\"name '\" + name + \"' does not exist in \" + this);\n\n delete this.valuesById[val];\n delete this.values[name];\n delete this.comments[name];\n\n return this;\n};\n\n/**\n * Tests if the specified id is reserved.\n * @param {number} id Id to test\n * @returns {boolean} `true` if reserved, otherwise `false`\n */\nEnum.prototype.isReservedId = function isReservedId(id) {\n return Namespace.isReservedId(this.reserved, id);\n};\n\n/**\n * Tests if the specified name is reserved.\n * @param {string} name Name to test\n * @returns {boolean} `true` if reserved, otherwise `false`\n */\nEnum.prototype.isReservedName = function isReservedName(name) {\n return Namespace.isReservedName(this.reserved, name);\n};\n", "\"use strict\";\nmodule.exports = encoder;\n\nvar Enum = require(\"./enum\"),\n types = require(\"./types\"),\n util = require(\"./util\");\n\n/**\n * Generates a partial message type encoder.\n * @param {Codegen} gen Codegen instance\n * @param {Field} field Reflected field\n * @param {number} fieldIndex Field index\n * @param {string} ref Variable reference\n * @returns {Codegen} Codegen instance\n * @ignore\n */\nfunction genTypePartial(gen, field, fieldIndex, ref) {\n return field.resolvedType.group\n ? gen(\"types[%i].encode(%s,w.uint32(%i)).uint32(%i)\", fieldIndex, ref, (field.id << 3 | 3) >>> 0, (field.id << 3 | 4) >>> 0)\n : gen(\"types[%i].encode(%s,w.uint32(%i).fork()).ldelim()\", fieldIndex, ref, (field.id << 3 | 2) >>> 0);\n}\n\n/**\n * Generates an encoder specific to the specified message type.\n * @param {Type} mtype Message type\n * @returns {Codegen} Codegen instance\n */\nfunction encoder(mtype) {\n /* eslint-disable no-unexpected-multiline, block-scoped-var, no-redeclare */\n var gen = util.codegen([\"m\", \"w\"], mtype.name + \"$encode\")\n (\"if(!w)\")\n (\"w=Writer.create()\");\n\n var i, ref;\n\n // \"when a message is serialized its known fields should be written sequentially by field number\"\n var fields = /* initializes */ mtype.fieldsArray.slice().sort(util.compareFieldsById);\n\n for (var i = 0; i < fields.length; ++i) {\n var field = fields[i].resolve(),\n index = mtype._fieldsArray.indexOf(field),\n type = field.resolvedType instanceof Enum ? \"int32\" : field.type,\n wireType = types.basic[type];\n ref = \"m\" + util.safeProp(field.name);\n\n // Map fields\n if (field.map) {\n gen\n (\"if(%s!=null&&Object.hasOwnProperty.call(m,%j)){\", ref, field.name) // !== undefined && !== null\n (\"for(var ks=Object.keys(%s),i=0;i>> 0, 8 | types.mapKey[field.keyType], field.keyType);\n if (wireType === undefined) gen\n (\"types[%i].encode(%s[ks[i]],w.uint32(18).fork()).ldelim().ldelim()\", index, ref); // can't be groups\n else gen\n (\".uint32(%i).%s(%s[ks[i]]).ldelim()\", 16 | wireType, type, ref);\n gen\n (\"}\")\n (\"}\");\n\n // Repeated fields\n } else if (field.repeated) { gen\n (\"if(%s!=null&&%s.length){\", ref, ref); // !== undefined && !== null\n\n // Packed repeated\n if (field.packed && types.packed[type] !== undefined) { gen\n\n (\"w.uint32(%i).fork()\", (field.id << 3 | 2) >>> 0)\n (\"for(var i=0;i<%s.length;++i)\", ref)\n (\"w.%s(%s[i])\", type, ref)\n (\"w.ldelim()\");\n\n // Non-packed\n } else { gen\n\n (\"for(var i=0;i<%s.length;++i)\", ref);\n if (wireType === undefined)\n genTypePartial(gen, field, index, ref + \"[i]\");\n else gen\n (\"w.uint32(%i).%s(%s[i])\", (field.id << 3 | wireType) >>> 0, type, ref);\n\n } gen\n (\"}\");\n\n // Non-repeated\n } else {\n if (field.optional) gen\n (\"if(%s!=null&&Object.hasOwnProperty.call(m,%j))\", ref, field.name); // !== undefined && !== null\n\n if (wireType === undefined)\n genTypePartial(gen, field, index, ref);\n else gen\n (\"w.uint32(%i).%s(%s)\", (field.id << 3 | wireType) >>> 0, type, ref);\n\n }\n }\n\n return gen\n (\"return w\");\n /* eslint-enable no-unexpected-multiline, block-scoped-var, no-redeclare */\n}\n", "\"use strict\";\nvar protobuf = module.exports = require(\"./index-minimal\");\n\nprotobuf.build = \"light\";\n\n/**\n * A node-style callback as used by {@link load} and {@link Root#load}.\n * @typedef LoadCallback\n * @type {function}\n * @param {Error|null} error Error, if any, otherwise `null`\n * @param {Root} [root] Root, if there hasn't been an error\n * @returns {undefined}\n */\n\n/**\n * Loads one or multiple .proto or preprocessed .json files into a common root namespace and calls the callback.\n * @param {string|string[]} filename One or multiple files to load\n * @param {Root} root Root namespace, defaults to create a new one if omitted.\n * @param {LoadCallback} callback Callback function\n * @returns {undefined}\n * @see {@link Root#load}\n */\nfunction load(filename, root, callback) {\n if (typeof root === \"function\") {\n callback = root;\n root = new protobuf.Root();\n } else if (!root)\n root = new protobuf.Root();\n return root.load(filename, callback);\n}\n\n/**\n * Loads one or multiple .proto or preprocessed .json files into a common root namespace and calls the callback.\n * @name load\n * @function\n * @param {string|string[]} filename One or multiple files to load\n * @param {LoadCallback} callback Callback function\n * @returns {undefined}\n * @see {@link Root#load}\n * @variation 2\n */\n// function load(filename:string, callback:LoadCallback):undefined\n\n/**\n * Loads one or multiple .proto or preprocessed .json files into a common root namespace and returns a promise.\n * @name load\n * @function\n * @param {string|string[]} filename One or multiple files to load\n * @param {Root} [root] Root namespace, defaults to create a new one if omitted.\n * @returns {Promise} Promise\n * @see {@link Root#load}\n * @variation 3\n */\n// function load(filename:string, [root:Root]):Promise\n\nprotobuf.load = load;\n\n/**\n * Synchronously loads one or multiple .proto or preprocessed .json files into a common root namespace (node only).\n * @param {string|string[]} filename One or multiple files to load\n * @param {Root} [root] Root namespace, defaults to create a new one if omitted.\n * @returns {Root} Root namespace\n * @throws {Error} If synchronous fetching is not supported (i.e. in browsers) or if a file's syntax is invalid\n * @see {@link Root#loadSync}\n */\nfunction loadSync(filename, root) {\n if (!root)\n root = new protobuf.Root();\n return root.loadSync(filename);\n}\n\nprotobuf.loadSync = loadSync;\n\n// Serialization\nprotobuf.encoder = require(\"./encoder\");\nprotobuf.decoder = require(\"./decoder\");\nprotobuf.verifier = require(\"./verifier\");\nprotobuf.converter = require(\"./converter\");\n\n// Reflection\nprotobuf.ReflectionObject = require(\"./object\");\nprotobuf.Namespace = require(\"./namespace\");\nprotobuf.Root = require(\"./root\");\nprotobuf.Enum = require(\"./enum\");\nprotobuf.Type = require(\"./type\");\nprotobuf.Field = require(\"./field\");\nprotobuf.OneOf = require(\"./oneof\");\nprotobuf.MapField = require(\"./mapfield\");\nprotobuf.Service = require(\"./service\");\nprotobuf.Method = require(\"./method\");\n\n// Runtime\nprotobuf.Message = require(\"./message\");\nprotobuf.wrappers = require(\"./wrappers\");\n\n// Utility\nprotobuf.types = require(\"./types\");\nprotobuf.util = require(\"./util\");\n\n// Set up possibly cyclic reflection dependencies\nprotobuf.ReflectionObject._configure(protobuf.Root);\nprotobuf.Namespace._configure(protobuf.Type, protobuf.Service, protobuf.Enum);\nprotobuf.Root._configure(protobuf.Type);\nprotobuf.Field._configure(protobuf.Type);\n", "// light library entry point.\n\n\"use strict\";\nmodule.exports = require(\"./src/index-light\");", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createMessageFromType = exports.createMessageFromName = exports.parseConfigure = void 0;\nconst protobuf = require(\"protobufjs/light\");\nfunction parseConfigure(data) {\n if (typeof data === 'string') {\n return protobuf.Root.fromJSON(JSON.parse(data));\n }\n return protobuf.Root.fromJSON(data);\n}\nexports.parseConfigure = parseConfigure;\nconst createMessageFromName = (messages, name) => {\n const Message = messages.lookupType(name);\n const MessageType = messages.lookupEnum('MessageType');\n let messageType = MessageType.values[`MessageType_${name}`];\n if (!messageType && Message.options) {\n messageType = Message.options['(wire_type)'];\n }\n return {\n Message,\n messageType,\n };\n};\nexports.createMessageFromName = createMessageFromName;\nconst createMessageFromType = (messages, typeId) => {\n const MessageType = messages.lookupEnum('MessageType');\n const messageName = MessageType.valuesById[typeId].replace('MessageType_', '');\n const Message = messages.lookupType(messageName);\n return {\n Message,\n messageName,\n };\n};\nexports.createMessageFromType = createMessageFromType;\n//# sourceMappingURL=messages.js.map", "\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.buildAndSend = exports.buildBuffers = exports.buildOne = void 0;\nconst protobuf_1 = require(\"./protobuf\");\nconst protocol_1 = require(\"./protocol\");\nconst messages_1 = require(\"./protobuf/messages\");\nfunction sendBuffers(sender, buffers) {\n return __awaiter(this, void 0, void 0, function* () {\n for (const buffer of buffers) {\n yield sender(buffer);\n }\n });\n}\nfunction buildOne(messages, name, data) {\n const { Message, messageType } = (0, messages_1.createMessageFromName)(messages, name);\n const buffer = (0, protobuf_1.encode)(Message, data);\n return (0, protocol_1.encode)(buffer, {\n addTrezorHeaders: false,\n chunked: false,\n messageType,\n });\n}\nexports.buildOne = buildOne;\nconst buildBuffers = (messages, name, data) => {\n const { Message, messageType } = (0, messages_1.createMessageFromName)(messages, name);\n const buffer = (0, protobuf_1.encode)(Message, data);\n return (0, protocol_1.encode)(buffer, {\n addTrezorHeaders: true,\n chunked: true,\n messageType,\n });\n};\nexports.buildBuffers = buildBuffers;\nfunction buildAndSend(messages, sender, name, data) {\n const buffers = (0, exports.buildBuffers)(messages, name, data);\n return sendBuffers(sender, buffers);\n}\nexports.buildAndSend = buildAndSend;\n//# sourceMappingURL=send.js.map", "\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.receiveAndParse = exports.receiveOne = void 0;\nconst ByteBuffer = require(\"bytebuffer\");\nconst decodeProtobuf = require(\"./protobuf/decode\");\nconst decodeProtocol = require(\"./protocol/decode\");\nconst messages_1 = require(\"./protobuf/messages\");\nfunction receiveOne(messages, data) {\n const bytebuffer = ByteBuffer.wrap(data, 'hex');\n const { typeId, buffer } = decodeProtocol.decode(bytebuffer);\n const { Message, messageName } = (0, messages_1.createMessageFromType)(messages, typeId);\n const message = decodeProtobuf.decode(Message, buffer);\n return {\n message,\n type: messageName,\n };\n}\nexports.receiveOne = receiveOne;\nfunction receiveRest(parsedInput, receiver, expectedLength) {\n return __awaiter(this, void 0, void 0, function* () {\n if (parsedInput.offset >= expectedLength) {\n return;\n }\n const data = yield receiver();\n if (data == null) {\n throw new Error('Received no data.');\n }\n parsedInput.append(data);\n return receiveRest(parsedInput, receiver, expectedLength);\n });\n}\nfunction receiveBuffer(receiver) {\n return __awaiter(this, void 0, void 0, function* () {\n const data = yield receiver();\n const { length, typeId, restBuffer } = decodeProtocol.decodeChunked(data);\n const decoded = new ByteBuffer(length);\n if (length) {\n decoded.append(restBuffer);\n }\n yield receiveRest(decoded, receiver, length);\n return { received: decoded, typeId };\n });\n}\nfunction receiveAndParse(messages, receiver) {\n return __awaiter(this, void 0, void 0, function* () {\n const { received, typeId } = yield receiveBuffer(receiver);\n const { Message, messageName } = (0, messages_1.createMessageFromType)(messages, typeId);\n received.reset();\n const message = decodeProtobuf.decode(Message, received);\n return {\n message,\n type: messageName,\n };\n });\n}\nexports.receiveAndParse = receiveAndParse;\n//# sourceMappingURL=receive.js.map", "\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst utils_1 = require(\"@trezor/utils\");\nconst http_1 = require(\"./http\");\nconst check = require(\"../utils/highlevel-checks\");\nconst send_1 = require(\"../lowlevel/send\");\nconst messages_1 = require(\"../lowlevel/protobuf/messages\");\nconst receive_1 = require(\"../lowlevel/receive\");\nconst config_1 = require(\"../config\");\nclass BridgeTransport {\n constructor(url, newestVersionUrl) {\n this.configured = false;\n this.debug = false;\n this.name = 'BridgeTransport';\n this.requestNeeded = false;\n this.stopped = false;\n this.version = '';\n this.url = url == null ? config_1.DEFAULT_URL : url;\n this.newestVersionUrl = newestVersionUrl == null ? config_1.DEFAULT_VERSION_URL : newestVersionUrl;\n }\n _post(options) {\n if (this.stopped) {\n return Promise.reject('Transport stopped.');\n }\n return (0, http_1.request)(Object.assign(Object.assign({}, options), { method: 'POST', url: this.url + options.url, skipContentTypeHeader: true }));\n }\n init(debug) {\n return __awaiter(this, void 0, void 0, function* () {\n this.debug = !!debug;\n yield this._silentInit();\n });\n }\n _silentInit() {\n return __awaiter(this, void 0, void 0, function* () {\n const infoS = yield (0, http_1.request)({\n url: this.url,\n method: 'POST',\n });\n const info = check.info(infoS);\n this.version = info.version;\n const newVersion = typeof this.bridgeVersion === 'string'\n ? this.bridgeVersion\n : check.version(yield (0, http_1.request)({\n url: `${this.newestVersionUrl}?${Date.now()}`,\n method: 'GET',\n }));\n this.isOutdated = utils_1.versionUtils.isNewer(newVersion, this.version);\n });\n }\n configure(signedData) {\n const messages = (0, messages_1.parseConfigure)(signedData);\n this.configured = true;\n this._messages = messages;\n }\n listen(old) {\n return __awaiter(this, void 0, void 0, function* () {\n if (old == null) {\n throw new Error('Bridge v2 does not support listen without previous.');\n }\n const devicesS = yield this._post({\n url: '/listen',\n body: old,\n });\n const devices = check.devices(devicesS);\n return devices;\n });\n }\n enumerate() {\n return __awaiter(this, void 0, void 0, function* () {\n const devicesS = yield this._post({ url: '/enumerate' });\n const devices = check.devices(devicesS);\n return devices;\n });\n }\n _acquireMixed(input, debugLink) {\n const previousStr = input.previous == null ? 'null' : input.previous;\n const url = `${debugLink ? '/debug' : ''}/acquire/${input.path}/${previousStr}`;\n return this._post({ url });\n }\n acquire(input, debugLink) {\n return __awaiter(this, void 0, void 0, function* () {\n const acquireS = yield this._acquireMixed(input, debugLink);\n return check.acquire(acquireS);\n });\n }\n release(session, onclose, debugLink) {\n return __awaiter(this, void 0, void 0, function* () {\n const res = this._post({\n url: `${debugLink ? '/debug' : ''}/release/${session}`,\n });\n if (onclose) {\n return;\n }\n yield res;\n });\n }\n call(session, name, data, debugLink) {\n return __awaiter(this, void 0, void 0, function* () {\n if (this._messages == null) {\n throw new Error('Transport not configured.');\n }\n const messages = this._messages;\n const o = (0, send_1.buildOne)(messages, name, data);\n const outData = o.toString('hex');\n const resData = yield this._post({\n url: `${debugLink ? '/debug' : ''}/call/${session}`,\n body: outData,\n });\n if (typeof resData !== 'string') {\n throw new Error('Returning data is not string.');\n }\n const jsonData = (0, receive_1.receiveOne)(messages, resData);\n return check.call(jsonData);\n });\n }\n post(session, name, data, debugLink) {\n return __awaiter(this, void 0, void 0, function* () {\n if (this._messages == null) {\n throw new Error('Transport not configured.');\n }\n const messages = this._messages;\n const outData = (0, send_1.buildOne)(messages, name, data).toString('hex');\n yield this._post({\n url: `${debugLink ? '/debug' : ''}/post/${session}`,\n body: outData,\n });\n });\n }\n read(session, debugLink) {\n return __awaiter(this, void 0, void 0, function* () {\n if (this._messages == null) {\n throw new Error('Transport not configured.');\n }\n const messages = this._messages;\n const resData = yield this._post({\n url: `${debugLink ? '/debug' : ''}/read/${session}`,\n });\n if (typeof resData !== 'string') {\n throw new Error('Returning data is not string.');\n }\n const jsonData = (0, receive_1.receiveOne)(messages, resData);\n return check.call(jsonData);\n });\n }\n static setFetch(fetch, isNode) {\n (0, http_1.setFetch)(fetch, isNode);\n }\n requestDevice() {\n return Promise.reject();\n }\n setBridgeLatestUrl(url) {\n this.newestVersionUrl = url;\n }\n setBridgeLatestVersion(version) {\n this.bridgeVersion = version;\n }\n stop() {\n this.stopped = true;\n }\n}\nexports.default = BridgeTransport;\n//# sourceMappingURL=v2.js.map", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.resolveTimeoutPromise = exports.create = void 0;\nfunction create() {\n let localResolve = () => { };\n let localReject = () => { };\n const promise = new Promise((resolve, reject) => {\n localResolve = resolve;\n localReject = reject;\n });\n const rejectingPromise = promise.then(() => {\n throw new Error('Promise is always rejecting');\n });\n rejectingPromise.catch(() => { });\n return {\n resolve: localResolve,\n reject: localReject,\n promise,\n rejectingPromise,\n };\n}\nexports.create = create;\nfunction resolveTimeoutPromise(delay, result) {\n return new Promise(resolve => {\n setTimeout(() => {\n resolve(result);\n }, delay);\n });\n}\nexports.resolveTimeoutPromise = resolveTimeoutPromise;\n//# sourceMappingURL=defered.js.map", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.postModuleMessage = void 0;\nconst defered_1 = require(\"../utils/defered\");\nconst normalSessions = {};\nconst debugSessions = {};\nlet lock = null;\nlet waitPromise = Promise.resolve();\nfunction startLock() {\n const newLock = (0, defered_1.create)();\n lock = newLock;\n setTimeout(() => newLock.reject(new Error('Timed out')), 10 * 1000);\n}\nfunction releaseLock(obj) {\n if (lock == null) {\n return;\n }\n lock.resolve(obj);\n}\nfunction waitForLock() {\n if (lock == null) {\n return Promise.reject(new Error('???'));\n }\n return lock.promise;\n}\nfunction waitInQueue(fn) {\n const res = waitPromise.then(() => fn());\n waitPromise = res.catch(() => { });\n}\nfunction sendBack(message, id, port) {\n port.postMessage({ id, message });\n}\nfunction handleEnumerateIntent(id, port) {\n startLock();\n sendBack({ type: 'ok' }, id, port);\n return waitForLock().then(obj => {\n sendBack({ type: 'ok' }, obj.id, port);\n });\n}\nfunction handleReleaseDone(id) {\n releaseLock({ id });\n}\nfunction handleReleaseOnClose(session) {\n let path_ = null;\n Object.keys(normalSessions).forEach(kpath => {\n if (normalSessions[kpath] === session) {\n path_ = kpath;\n }\n });\n if (path_ == null) {\n return Promise.resolve();\n }\n const path = path_;\n delete normalSessions[path];\n delete debugSessions[path];\n return Promise.resolve();\n}\nfunction handleReleaseIntent(session, debug, id, port) {\n let path_ = null;\n const sessions = debug ? debugSessions : normalSessions;\n const otherSessions = !debug ? debugSessions : normalSessions;\n Object.keys(sessions).forEach(kpath => {\n if (sessions[kpath] === session) {\n path_ = kpath;\n }\n });\n if (path_ == null) {\n sendBack({ type: 'double-release' }, id, port);\n return Promise.resolve();\n }\n const path = path_;\n const otherSession = otherSessions[path];\n startLock();\n sendBack({ type: 'path', path, otherSession }, id, port);\n return waitForLock().then(obj => {\n delete sessions[path];\n sendBack({ type: 'ok' }, obj.id, port);\n });\n}\nfunction handleGetSessions(id, port, devices) {\n if (devices != null) {\n const connected = {};\n devices.forEach(d => {\n connected[d.path] = true;\n });\n Object.keys(normalSessions).forEach(path => {\n if (!normalSessions[path]) {\n delete normalSessions[path];\n }\n });\n Object.keys(debugSessions).forEach(path => {\n if (!debugSessions[path]) {\n delete debugSessions[path];\n }\n });\n }\n sendBack({ type: 'sessions', debugSessions, normalSessions }, id, port);\n return Promise.resolve();\n}\nlet lastSession = 0;\nfunction handleAcquireDone(id) {\n releaseLock({ good: true, id });\n}\nfunction handleAcquireFailed(id) {\n releaseLock({ good: false, id });\n}\nfunction handleAcquireIntent(path, id, port, previous, debug) {\n let error = false;\n const thisTable = debug ? debugSessions : normalSessions;\n const otherTable = !debug ? debugSessions : normalSessions;\n const realPrevious = thisTable[path];\n if (realPrevious == null) {\n error = previous != null;\n }\n else {\n error = previous !== realPrevious;\n }\n if (error) {\n sendBack({ type: 'wrong-previous-session' }, id, port);\n return Promise.resolve();\n }\n startLock();\n sendBack({ type: 'other-session', otherSession: otherTable[path] }, id, port);\n return waitForLock().then(obj => {\n if (obj.good) {\n lastSession++;\n let session = lastSession.toString();\n if (debug) {\n session = `debug${session}`;\n }\n thisTable[path] = session;\n sendBack({ type: 'session-number', number: session }, obj.id, port);\n }\n else {\n sendBack({ type: 'ok' }, obj.id, port);\n }\n });\n}\nfunction handleMessage({ id, message }, port) {\n if (message.type === 'acquire-intent') {\n const { path } = message;\n const { previous } = message;\n const { debug } = message;\n waitInQueue(() => handleAcquireIntent(path, id, port, previous, debug));\n }\n if (message.type === 'acquire-done') {\n handleAcquireDone(id);\n }\n if (message.type === 'acquire-failed') {\n handleAcquireFailed(id);\n }\n if (message.type === 'get-sessions') {\n waitInQueue(() => handleGetSessions(id, port));\n }\n if (message.type === 'get-sessions-and-disconnect') {\n const { devices } = message;\n waitInQueue(() => handleGetSessions(id, port, devices));\n }\n if (message.type === 'release-onclose') {\n const { session } = message;\n waitInQueue(() => handleReleaseOnClose(session));\n }\n if (message.type === 'release-intent') {\n const { session } = message;\n const { debug } = message;\n waitInQueue(() => handleReleaseIntent(session, debug, id, port));\n }\n if (message.type === 'release-done') {\n handleReleaseDone(id);\n }\n if (message.type === 'enumerate-intent') {\n waitInQueue(() => handleEnumerateIntent(id, port));\n }\n if (message.type === 'enumerate-done') {\n handleReleaseDone(id);\n }\n}\nif (typeof onconnect !== 'undefined') {\n onconnect = function (e) {\n const port = e.ports[0];\n port.onmessage = function (e) {\n handleMessage(e.data, port);\n };\n };\n}\nfunction postModuleMessage({ id, message }, fn) {\n handleMessage({ id, message }, { postMessage: fn });\n}\nexports.postModuleMessage = postModuleMessage;\n//# sourceMappingURL=sharedConnectionWorker.js.map", "'use strict';\n\nvar at; // The index of the current character\nvar ch; // The current character\nvar escapee = {\n\t'\"': '\"',\n\t'\\\\': '\\\\',\n\t'/': '/',\n\tb: '\\b',\n\tf: '\\f',\n\tn: '\\n',\n\tr: '\\r',\n\tt: '\\t'\n};\nvar text;\n\n// Call error when something is wrong.\nfunction error(m) {\n\tthrow {\n\t\tname: 'SyntaxError',\n\t\tmessage: m,\n\t\tat: at,\n\t\ttext: text\n\t};\n}\n\nfunction next(c) {\n\t// If a c parameter is provided, verify that it matches the current character.\n\tif (c && c !== ch) {\n\t\terror(\"Expected '\" + c + \"' instead of '\" + ch + \"'\");\n\t}\n\n\t// Get the next character. When there are no more characters, return the empty string.\n\n\tch = text.charAt(at);\n\tat += 1;\n\treturn ch;\n}\n\nfunction number() {\n\t// Parse a number value.\n\tvar num;\n\tvar str = '';\n\n\tif (ch === '-') {\n\t\tstr = '-';\n\t\tnext('-');\n\t}\n\twhile (ch >= '0' && ch <= '9') {\n\t\tstr += ch;\n\t\tnext();\n\t}\n\tif (ch === '.') {\n\t\tstr += '.';\n\t\twhile (next() && ch >= '0' && ch <= '9') {\n\t\t\tstr += ch;\n\t\t}\n\t}\n\tif (ch === 'e' || ch === 'E') {\n\t\tstr += ch;\n\t\tnext();\n\t\tif (ch === '-' || ch === '+') {\n\t\t\tstr += ch;\n\t\t\tnext();\n\t\t}\n\t\twhile (ch >= '0' && ch <= '9') {\n\t\t\tstr += ch;\n\t\t\tnext();\n\t\t}\n\t}\n\tnum = Number(str);\n\tif (!isFinite(num)) {\n\t\terror('Bad number');\n\t}\n\treturn num;\n}\n\nfunction string() {\n\t// Parse a string value.\n\tvar hex;\n\tvar i;\n\tvar str = '';\n\tvar uffff;\n\n\t// When parsing for string values, we must look for \" and \\ characters.\n\tif (ch === '\"') {\n\t\twhile (next()) {\n\t\t\tif (ch === '\"') {\n\t\t\t\tnext();\n\t\t\t\treturn str;\n\t\t\t} else if (ch === '\\\\') {\n\t\t\t\tnext();\n\t\t\t\tif (ch === 'u') {\n\t\t\t\t\tuffff = 0;\n\t\t\t\t\tfor (i = 0; i < 4; i += 1) {\n\t\t\t\t\t\thex = parseInt(next(), 16);\n\t\t\t\t\t\tif (!isFinite(hex)) {\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tuffff = (uffff * 16) + hex;\n\t\t\t\t\t}\n\t\t\t\t\tstr += String.fromCharCode(uffff);\n\t\t\t\t} else if (typeof escapee[ch] === 'string') {\n\t\t\t\t\tstr += escapee[ch];\n\t\t\t\t} else {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tstr += ch;\n\t\t\t}\n\t\t}\n\t}\n\terror('Bad string');\n}\n\n// Skip whitespace.\nfunction white() {\n\twhile (ch && ch <= ' ') {\n\t\tnext();\n\t}\n}\n\n// true, false, or null.\nfunction word() {\n\tswitch (ch) {\n\t\tcase 't':\n\t\t\tnext('t');\n\t\t\tnext('r');\n\t\t\tnext('u');\n\t\t\tnext('e');\n\t\t\treturn true;\n\t\tcase 'f':\n\t\t\tnext('f');\n\t\t\tnext('a');\n\t\t\tnext('l');\n\t\t\tnext('s');\n\t\t\tnext('e');\n\t\t\treturn false;\n\t\tcase 'n':\n\t\t\tnext('n');\n\t\t\tnext('u');\n\t\t\tnext('l');\n\t\t\tnext('l');\n\t\t\treturn null;\n\t\tdefault:\n\t\t\terror(\"Unexpected '\" + ch + \"'\");\n\t}\n}\n\n// Parse an array value.\nfunction array() {\n\tvar arr = [];\n\n\tif (ch === '[') {\n\t\tnext('[');\n\t\twhite();\n\t\tif (ch === ']') {\n\t\t\tnext(']');\n\t\t\treturn arr; // empty array\n\t\t}\n\t\twhile (ch) {\n\t\t\tarr.push(value()); // eslint-disable-line no-use-before-define\n\t\t\twhite();\n\t\t\tif (ch === ']') {\n\t\t\t\tnext(']');\n\t\t\t\treturn arr;\n\t\t\t}\n\t\t\tnext(',');\n\t\t\twhite();\n\t\t}\n\t}\n\terror('Bad array');\n}\n\n// Parse an object value.\nfunction object() {\n\tvar key;\n\tvar obj = {};\n\n\tif (ch === '{') {\n\t\tnext('{');\n\t\twhite();\n\t\tif (ch === '}') {\n\t\t\tnext('}');\n\t\t\treturn obj; // empty object\n\t\t}\n\t\twhile (ch) {\n\t\t\tkey = string();\n\t\t\twhite();\n\t\t\tnext(':');\n\t\t\tif (Object.prototype.hasOwnProperty.call(obj, key)) {\n\t\t\t\terror('Duplicate key \"' + key + '\"');\n\t\t\t}\n\t\t\tobj[key] = value(); // eslint-disable-line no-use-before-define\n\t\t\twhite();\n\t\t\tif (ch === '}') {\n\t\t\t\tnext('}');\n\t\t\t\treturn obj;\n\t\t\t}\n\t\t\tnext(',');\n\t\t\twhite();\n\t\t}\n\t}\n\terror('Bad object');\n}\n\n// Parse a JSON value. It could be an object, an array, a string, a number, or a word.\nfunction value() {\n\twhite();\n\tswitch (ch) {\n\t\tcase '{':\n\t\t\treturn object();\n\t\tcase '[':\n\t\t\treturn array();\n\t\tcase '\"':\n\t\t\treturn string();\n\t\tcase '-':\n\t\t\treturn number();\n\t\tdefault:\n\t\t\treturn ch >= '0' && ch <= '9' ? number() : word();\n\t}\n}\n\n// Return the json_parse function. It will have access to all of the above functions and variables.\nmodule.exports = function (source, reviver) {\n\tvar result;\n\n\ttext = source;\n\tat = 0;\n\tch = ' ';\n\tresult = value();\n\twhite();\n\tif (ch) {\n\t\terror('Syntax error');\n\t}\n\n\t// If there is a reviver function, we recursively walk the new structure,\n\t// passing each name/value pair to the reviver function for possible\n\t// transformation, starting with a temporary root object that holds the result\n\t// in an empty key. If there is not a reviver function, we simply return the\n\t// result.\n\n\treturn typeof reviver === 'function' ? (function walk(holder, key) {\n\t\tvar k;\n\t\tvar v;\n\t\tvar val = holder[key];\n\t\tif (val && typeof val === 'object') {\n\t\t\tfor (k in value) {\n\t\t\t\tif (Object.prototype.hasOwnProperty.call(val, k)) {\n\t\t\t\t\tv = walk(val, k);\n\t\t\t\t\tif (typeof v === 'undefined') {\n\t\t\t\t\t\tdelete val[k];\n\t\t\t\t\t} else {\n\t\t\t\t\t\tval[k] = v;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn reviver.call(holder, key, val);\n\t}({ '': result }, '')) : result;\n};\n", "'use strict';\n\nvar escapable = /[\\\\\"\\x00-\\x1f\\x7f-\\x9f\\u00ad\\u0600-\\u0604\\u070f\\u17b4\\u17b5\\u200c-\\u200f\\u2028-\\u202f\\u2060-\\u206f\\ufeff\\ufff0-\\uffff]/g;\nvar gap;\nvar indent;\nvar meta = { // table of character substitutions\n\t'\\b': '\\\\b',\n\t'\\t': '\\\\t',\n\t'\\n': '\\\\n',\n\t'\\f': '\\\\f',\n\t'\\r': '\\\\r',\n\t'\"': '\\\\\"',\n\t'\\\\': '\\\\\\\\'\n};\nvar rep;\n\nfunction quote(string) {\n\t// If the string contains no control characters, no quote characters, and no\n\t// backslash characters, then we can safely slap some quotes around it.\n\t// Otherwise we must also replace the offending characters with safe escape sequences.\n\n\tescapable.lastIndex = 0;\n\treturn escapable.test(string) ? '\"' + string.replace(escapable, function (a) {\n\t\tvar c = meta[a];\n\t\treturn typeof c === 'string' ? c\n\t\t\t: '\\\\u' + ('0000' + a.charCodeAt(0).toString(16)).slice(-4);\n\t}) + '\"' : '\"' + string + '\"';\n}\n\nfunction str(key, holder) {\n\t// Produce a string from holder[key].\n\tvar i; // The loop counter.\n\tvar k; // The member key.\n\tvar v; // The member value.\n\tvar length;\n\tvar mind = gap;\n\tvar partial;\n\tvar value = holder[key];\n\n\t// If the value has a toJSON method, call it to obtain a replacement value.\n\tif (value && typeof value === 'object' && typeof value.toJSON === 'function') {\n\t\tvalue = value.toJSON(key);\n\t}\n\n\t// If we were called with a replacer function, then call the replacer to obtain a replacement value.\n\tif (typeof rep === 'function') {\n\t\tvalue = rep.call(holder, key, value);\n\t}\n\n\t// What happens next depends on the value's type.\n\tswitch (typeof value) {\n\t\tcase 'string':\n\t\t\treturn quote(value);\n\n\t\tcase 'number':\n\t\t\t// JSON numbers must be finite. Encode non-finite numbers as null.\n\t\t\treturn isFinite(value) ? String(value) : 'null';\n\n\t\tcase 'boolean':\n\t\tcase 'null':\n\t\t\t// If the value is a boolean or null, convert it to a string. Note:\n\t\t\t// typeof null does not produce 'null'. The case is included here in\n\t\t\t// the remote chance that this gets fixed someday.\n\t\t\treturn String(value);\n\n\t\tcase 'object':\n\t\t\tif (!value) {\n\t\t\t\treturn 'null';\n\t\t\t}\n\t\t\tgap += indent;\n\t\t\tpartial = [];\n\n\t\t\t// Array.isArray\n\t\t\tif (Object.prototype.toString.apply(value) === '[object Array]') {\n\t\t\t\tlength = value.length;\n\t\t\t\tfor (i = 0; i < length; i += 1) {\n\t\t\t\t\tpartial[i] = str(i, value) || 'null';\n\t\t\t\t}\n\n\t\t\t\t// Join all of the elements together, separated with commas, and wrap them in brackets.\n\t\t\t\tv = partial.length === 0 ? '[]' : gap\n\t\t\t\t\t? '[\\n' + gap + partial.join(',\\n' + gap) + '\\n' + mind + ']'\n\t\t\t\t\t: '[' + partial.join(',') + ']';\n\t\t\t\tgap = mind;\n\t\t\t\treturn v;\n\t\t\t}\n\n\t\t\t// If the replacer is an array, use it to select the members to be stringified.\n\t\t\tif (rep && typeof rep === 'object') {\n\t\t\t\tlength = rep.length;\n\t\t\t\tfor (i = 0; i < length; i += 1) {\n\t\t\t\t\tk = rep[i];\n\t\t\t\t\tif (typeof k === 'string') {\n\t\t\t\t\t\tv = str(k, value);\n\t\t\t\t\t\tif (v) {\n\t\t\t\t\t\t\tpartial.push(quote(k) + (gap ? ': ' : ':') + v);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// Otherwise, iterate through all of the keys in the object.\n\t\t\t\tfor (k in value) {\n\t\t\t\t\tif (Object.prototype.hasOwnProperty.call(value, k)) {\n\t\t\t\t\t\tv = str(k, value);\n\t\t\t\t\t\tif (v) {\n\t\t\t\t\t\t\tpartial.push(quote(k) + (gap ? ': ' : ':') + v);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Join all of the member texts together, separated with commas, and wrap them in braces.\n\n\t\t\tv = partial.length === 0 ? '{}' : gap\n\t\t\t\t? '{\\n' + gap + partial.join(',\\n' + gap) + '\\n' + mind + '}'\n\t\t\t\t: '{' + partial.join(',') + '}';\n\t\t\tgap = mind;\n\t\t\treturn v;\n\t\tdefault:\n\t}\n}\n\nmodule.exports = function (value, replacer, space) {\n\tvar i;\n\tgap = '';\n\tindent = '';\n\n\t// If the space parameter is a number, make an indent string containing that many spaces.\n\tif (typeof space === 'number') {\n\t\tfor (i = 0; i < space; i += 1) {\n\t\t\tindent += ' ';\n\t\t}\n\t} else if (typeof space === 'string') {\n\t\t// If the space parameter is a string, it will be used as the indent string.\n\t\tindent = space;\n\t}\n\n\t// If there is a replacer, it must be a function or an array. Otherwise, throw an error.\n\trep = replacer;\n\tif (\n\t\treplacer\n\t\t&& typeof replacer !== 'function'\n\t\t&& (typeof replacer !== 'object' || typeof replacer.length !== 'number')\n\t) {\n\t\tthrow new Error('JSON.stringify');\n\t}\n\n\t// Make a fake root object containing our value under the key of ''.\n\t// Return the result of stringifying the value.\n\treturn str('', { '': value });\n};\n", "'use strict';\n\nexports.parse = require('./lib/parse');\nexports.stringify = require('./lib/stringify');\n", "'use strict';\n\nvar json = typeof JSON !== 'undefined' ? JSON : require('jsonify');\n\nvar isArray = Array.isArray || function (x) {\n\treturn {}.toString.call(x) === '[object Array]';\n};\n\nvar objectKeys = Object.keys || function (obj) {\n\tvar has = Object.prototype.hasOwnProperty || function () { return true; };\n\tvar keys = [];\n\tfor (var key in obj) {\n\t\tif (has.call(obj, key)) { keys.push(key); }\n\t}\n\treturn keys;\n};\n\nmodule.exports = function (obj, opts) {\n\tif (!opts) { opts = {}; }\n\tif (typeof opts === 'function') { opts = { cmp: opts }; }\n\tvar space = opts.space || '';\n\tif (typeof space === 'number') { space = Array(space + 1).join(' '); }\n\tvar cycles = typeof opts.cycles === 'boolean' ? opts.cycles : false;\n\tvar replacer = opts.replacer || function (key, value) { return value; };\n\n\tvar cmp = opts.cmp && (function (f) {\n\t\treturn function (node) {\n\t\t\treturn function (a, b) {\n\t\t\t\tvar aobj = { key: a, value: node[a] };\n\t\t\t\tvar bobj = { key: b, value: node[b] };\n\t\t\t\treturn f(aobj, bobj);\n\t\t\t};\n\t\t};\n\t}(opts.cmp));\n\n\tvar seen = [];\n\treturn (function stringify(parent, key, node, level) {\n\t\tvar indent = space ? '\\n' + new Array(level + 1).join(space) : '';\n\t\tvar colonSeparator = space ? ': ' : ':';\n\n\t\tif (node && node.toJSON && typeof node.toJSON === 'function') {\n\t\t\tnode = node.toJSON();\n\t\t}\n\n\t\tnode = replacer.call(parent, key, node);\n\n\t\tif (node === undefined) {\n\t\t\treturn;\n\t\t}\n\t\tif (typeof node !== 'object' || node === null) {\n\t\t\treturn json.stringify(node);\n\t\t}\n\t\tif (isArray(node)) {\n\t\t\tvar out = [];\n\t\t\tfor (var i = 0; i < node.length; i++) {\n\t\t\t\tvar item = stringify(node, i, node[i], level + 1) || json.stringify(null);\n\t\t\t\tout.push(indent + space + item);\n\t\t\t}\n\t\t\treturn '[' + out.join(',') + indent + ']';\n\t\t}\n\n\t\tif (seen.indexOf(node) !== -1) {\n\t\t\tif (cycles) { return json.stringify('__cycle__'); }\n\t\t\tthrow new TypeError('Converting circular structure to JSON');\n\t\t} else { seen.push(node); }\n\n\t\tvar keys = objectKeys(node).sort(cmp && cmp(node));\n\t\tvar out = [];\n\t\tfor (var i = 0; i < keys.length; i++) {\n\t\t\tvar key = keys[i];\n\t\t\tvar value = stringify(node, key, node[key], level + 1);\n\n\t\t\tif (!value) { continue; }\n\n\t\t\tvar keyValue = json.stringify(key)\n\t\t\t\t\t+ colonSeparator\n\t\t\t\t\t+ value;\n\n\t\t\tout.push(indent + space + keyValue);\n\t\t}\n\t\tseen.splice(seen.indexOf(node), 1);\n\t\treturn '{' + out.join(',') + indent + '}';\n\n\t}({ '': obj }, '', obj, 0));\n};\n", "\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst defered_1 = require(\"../utils/defered\");\nconst messages_1 = require(\"./protobuf/messages\");\nconst send_1 = require(\"./send\");\nconst receive_1 = require(\"./receive\");\nconst sharedConnectionWorker_1 = require(\"./sharedConnectionWorker\");\nconst stringify = require('json-stable-stringify');\nfunction stableStringify(devices) {\n if (devices == null) {\n return 'null';\n }\n const pureDevices = devices.map(device => {\n const { path } = device;\n const session = device.session == null ? null : device.session;\n return { path, session };\n });\n return stringify(pureDevices);\n}\nfunction compare(a, b) {\n if (!Number.isNaN(parseInt(a.path, 10))) {\n return parseInt(a.path, 10) - parseInt(b.path, 10);\n }\n if (a.path < b.path) {\n return -1;\n }\n return a.path > b.path ? 1 : 0;\n}\nconst ITER_MAX = 60;\nconst ITER_DELAY = 500;\nclass LowlevelTransportWithSharedConnections {\n constructor(plugin, sharedWorkerFactory) {\n this.configured = false;\n this.debug = false;\n this.deferedDebugOnRelease = {};\n this.deferedNormalOnRelease = {};\n this.defereds = {};\n this.isOutdated = false;\n this.latestId = 0;\n this.name = 'WebUsbTransport';\n this.requestNeeded = false;\n this.sharedWorker = null;\n this.stopped = false;\n this._lastStringified = '';\n this.plugin = plugin;\n this.version = plugin.version;\n this._sharedWorkerFactory = sharedWorkerFactory;\n if (!this.plugin.allowsWriteAndEnumerate) {\n throw new Error('Plugin with shared connections cannot disallow write and enumerate');\n }\n }\n enumerate() {\n return this._silentEnumerate();\n }\n _silentEnumerate() {\n return __awaiter(this, void 0, void 0, function* () {\n yield this.sendToWorker({ type: 'enumerate-intent' });\n let devices = [];\n try {\n devices = yield this.plugin.enumerate();\n }\n finally {\n yield this.sendToWorker({ type: 'enumerate-done' });\n }\n const sessionsM = yield this.sendToWorker({\n type: 'get-sessions-and-disconnect',\n devices,\n });\n if (sessionsM.type !== 'sessions') {\n throw new Error('Wrong reply');\n }\n const { debugSessions } = sessionsM;\n const { normalSessions } = sessionsM;\n const devicesWithSessions = devices.map(device => {\n const session = normalSessions[device.path];\n const debugSession = debugSessions[device.path];\n return {\n path: device.path,\n session,\n debug: device.debug,\n debugSession,\n };\n });\n this._releaseDisconnected(devicesWithSessions);\n return devicesWithSessions.sort(compare);\n });\n }\n _releaseDisconnected(devices) {\n const connected = {};\n devices.forEach(device => {\n if (device.session != null) {\n connected[device.session] = true;\n }\n });\n Object.keys(this.deferedDebugOnRelease).forEach(session => {\n if (connected[session] == null) {\n this._releaseCleanup(session, true);\n }\n });\n Object.keys(this.deferedNormalOnRelease).forEach(session => {\n if (connected[session] == null) {\n this._releaseCleanup(session, false);\n }\n });\n }\n listen(old) {\n const oldStringified = stableStringify(old);\n const last = old == null ? this._lastStringified : oldStringified;\n return this._runIter(0, last);\n }\n _runIter(iteration, oldStringified) {\n return __awaiter(this, void 0, void 0, function* () {\n const devices = yield this._silentEnumerate();\n const stringified = stableStringify(devices);\n if (stringified !== oldStringified || iteration === ITER_MAX) {\n this._lastStringified = stringified;\n return devices;\n }\n yield (0, defered_1.resolveTimeoutPromise)(ITER_DELAY, null);\n return this._runIter(iteration + 1, stringified);\n });\n }\n acquire(input, debugLink) {\n return __awaiter(this, void 0, void 0, function* () {\n const messBack = yield this.sendToWorker({\n type: 'acquire-intent',\n path: input.path,\n previous: input.previous,\n debug: debugLink,\n });\n if (messBack.type === 'wrong-previous-session') {\n throw new Error('wrong previous session');\n }\n if (messBack.type !== 'other-session') {\n throw new Error('Strange reply');\n }\n const reset = messBack.otherSession == null;\n try {\n yield this.plugin.connect(input.path, debugLink, reset);\n }\n catch (e) {\n yield this.sendToWorker({ type: 'acquire-failed' });\n throw e;\n }\n const messBack2 = yield this.sendToWorker({ type: 'acquire-done' });\n if (messBack2.type !== 'session-number') {\n throw new Error('Strange reply.');\n }\n const session = messBack2.number;\n if (debugLink) {\n this.deferedDebugOnRelease[session] = (0, defered_1.create)();\n }\n else {\n this.deferedNormalOnRelease[session] = (0, defered_1.create)();\n }\n return session;\n });\n }\n release(session, onclose, debugLink) {\n return __awaiter(this, void 0, void 0, function* () {\n if (onclose && !debugLink) {\n this.sendToWorker({ type: 'release-onclose', session });\n return;\n }\n const messback = yield this.sendToWorker({\n type: 'release-intent',\n session,\n debug: debugLink,\n });\n if (messback.type === 'double-release') {\n throw new Error('Trying to double release.');\n }\n if (messback.type !== 'path') {\n throw new Error('Strange reply.');\n }\n const { path } = messback;\n const { otherSession } = messback;\n const last = otherSession == null;\n this._releaseCleanup(session, debugLink);\n try {\n yield this.plugin.disconnect(path, debugLink, last);\n }\n catch (e) {\n }\n yield this.sendToWorker({ type: 'release-done' });\n });\n }\n _releaseCleanup(session, debugLink) {\n const table = debugLink ? this.deferedDebugOnRelease : this.deferedNormalOnRelease;\n if (table[session] != null) {\n table[session].reject(new Error('Device released or disconnected'));\n delete table[session];\n }\n }\n configure(signedData) {\n const messages = (0, messages_1.parseConfigure)(signedData);\n this._messages = messages;\n this.configured = true;\n }\n _sendLowlevel(path, debug) {\n return data => this.plugin.send(path, data, debug);\n }\n _receiveLowlevel(path, debug) {\n return () => this.plugin.receive(path, debug);\n }\n messages() {\n if (this._messages == null) {\n throw new Error('Transport not configured.');\n }\n return this._messages;\n }\n doWithSession(session, debugLink, inside) {\n return __awaiter(this, void 0, void 0, function* () {\n const sessionsM = yield this.sendToWorker({ type: 'get-sessions' });\n if (sessionsM.type !== 'sessions') {\n throw new Error('Wrong reply');\n }\n const sessionsMM = debugLink ? sessionsM.debugSessions : sessionsM.normalSessions;\n let path_ = null;\n Object.keys(sessionsMM).forEach(kpath => {\n if (sessionsMM[kpath] === session) {\n path_ = kpath;\n }\n });\n if (path_ == null) {\n throw new Error('Session not available.');\n }\n const path = path_;\n const resPromise = yield inside(path);\n const defered = debugLink\n ? this.deferedDebugOnRelease[session]\n : this.deferedNormalOnRelease[session];\n return Promise.race([defered.rejectingPromise, resPromise]);\n });\n }\n call(session, name, data, debugLink) {\n const callInside = (path) => __awaiter(this, void 0, void 0, function* () {\n const messages = this.messages();\n yield (0, send_1.buildAndSend)(messages, this._sendLowlevel(path, debugLink), name, data);\n const message = yield (0, receive_1.receiveAndParse)(messages, this._receiveLowlevel(path, debugLink));\n return message;\n });\n return this.doWithSession(session, debugLink, callInside);\n }\n post(session, name, data, debugLink) {\n const callInside = (path) => __awaiter(this, void 0, void 0, function* () {\n const messages = this.messages();\n yield (0, send_1.buildAndSend)(messages, this._sendLowlevel(path, debugLink), name, data);\n });\n return this.doWithSession(session, debugLink, callInside);\n }\n read(session, debugLink) {\n const callInside = (path) => __awaiter(this, void 0, void 0, function* () {\n const messages = this.messages();\n const message = yield (0, receive_1.receiveAndParse)(messages, this._receiveLowlevel(path, debugLink));\n return message;\n });\n return this.doWithSession(session, debugLink, callInside);\n }\n init(debug) {\n return __awaiter(this, void 0, void 0, function* () {\n this.debug = !!debug;\n this.requestNeeded = this.plugin.requestNeeded;\n yield this.plugin.init(debug);\n if (this._sharedWorkerFactory != null) {\n this.sharedWorker = this._sharedWorkerFactory();\n if (this.sharedWorker != null) {\n this.sharedWorker.port.onmessage = e => {\n this.receiveFromWorker(e.data);\n };\n }\n }\n });\n }\n requestDevice() {\n return this.plugin.requestDevice();\n }\n sendToWorker(message) {\n if (this.stopped) {\n return Promise.reject('Transport stopped.');\n }\n this.latestId++;\n const id = this.latestId;\n this.defereds[id] = (0, defered_1.create)();\n if (this.sharedWorker != null) {\n this.sharedWorker.port.postMessage({ id, message });\n }\n else {\n (0, sharedConnectionWorker_1.postModuleMessage)({ id, message }, m => this.receiveFromWorker(m));\n }\n return this.defereds[id].promise;\n }\n receiveFromWorker(m) {\n this.defereds[m.id].resolve(m.message);\n delete this.defereds[m.id];\n }\n stop() {\n this.stopped = true;\n this.sharedWorker = null;\n }\n}\nexports.default = LowlevelTransportWithSharedConnections;\n//# sourceMappingURL=withSharedConnections.js.map", "\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nclass FallbackTransport {\n constructor(transports) {\n this._availableTransports = [];\n this.activeName = '';\n this.configured = false;\n this.debug = false;\n this.isOutdated = false;\n this.name = 'FallbackTransport';\n this.requestNeeded = false;\n this.transports = [];\n this.version = '';\n this.transports = transports;\n }\n _tryInitTransports() {\n return __awaiter(this, void 0, void 0, function* () {\n const res = [];\n let lastError = null;\n for (const transport of this.transports) {\n try {\n yield transport.init(this.debug);\n res.push(transport);\n }\n catch (e) {\n lastError = e;\n }\n }\n if (res.length === 0) {\n throw lastError || new Error('No transport could be initialized.');\n }\n return res;\n });\n }\n _tryConfigureTransports(data) {\n return __awaiter(this, void 0, void 0, function* () {\n let lastError = null;\n for (const transport of this._availableTransports) {\n try {\n yield transport.configure(data);\n return transport;\n }\n catch (e) {\n lastError = e;\n }\n }\n throw lastError || new Error('No transport could be initialized.');\n });\n }\n init(debug) {\n return __awaiter(this, void 0, void 0, function* () {\n this.debug = !!debug;\n const transports = yield this._tryInitTransports();\n this._availableTransports = transports;\n this.version = transports[0].version;\n this.configured = false;\n });\n }\n configure(signedData) {\n return __awaiter(this, void 0, void 0, function* () {\n const pt = this._tryConfigureTransports(signedData);\n this.activeTransport = yield pt;\n this.configured = this.activeTransport.configured;\n this.version = this.activeTransport.version;\n this.activeName = this.activeTransport.name;\n this.requestNeeded = this.activeTransport.requestNeeded;\n this.isOutdated = this.activeTransport.isOutdated;\n });\n }\n enumerate() {\n return this.activeTransport.enumerate();\n }\n listen(old) {\n return this.activeTransport.listen(old);\n }\n acquire(input, debugLink) {\n return this.activeTransport.acquire(input, debugLink);\n }\n release(session, onclose, debugLink) {\n return this.activeTransport.release(session, onclose, debugLink);\n }\n call(session, name, data, debugLink) {\n return this.activeTransport.call(session, name, data, debugLink);\n }\n post(session, name, data, debugLink) {\n return this.activeTransport.post(session, name, data, debugLink);\n }\n read(session, debugLink) {\n return this.activeTransport.read(session, debugLink);\n }\n requestDevice() {\n return this.activeTransport.requestDevice();\n }\n setBridgeLatestUrl(url) {\n for (const transport of this.transports) {\n transport.setBridgeLatestUrl(url);\n }\n }\n setBridgeLatestVersion(version) {\n for (const transport of this.transports) {\n transport.setBridgeLatestVersion(version);\n }\n }\n stop() {\n for (const transport of this.transports) {\n transport.stop();\n }\n }\n}\nexports.default = FallbackTransport;\n//# sourceMappingURL=fallback.js.map", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TREZOR_DESCS = void 0;\nexports.TREZOR_DESCS = [\n { vendorId: 0x534c, productId: 0x0001 },\n { vendorId: 0x1209, productId: 0x53c0 },\n { vendorId: 0x1209, productId: 0x53c1 },\n];\n//# sourceMappingURL=constants.js.map", "\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst events_1 = require(\"events\");\nconst constants_1 = require(\"../constants\");\nconst T1HID_VENDOR = 0x534c;\nconst CONFIGURATION_ID = 1;\nconst INTERFACE_ID = 0;\nconst ENDPOINT_ID = 1;\nconst DEBUG_INTERFACE_ID = 1;\nconst DEBUG_ENDPOINT_ID = 2;\nclass WebUsbPlugin {\n constructor() {\n this.allowsWriteAndEnumerate = true;\n this.configurationId = CONFIGURATION_ID;\n this.debug = false;\n this.debugEndpointId = DEBUG_ENDPOINT_ID;\n this.debugInterfaceId = DEBUG_INTERFACE_ID;\n this.name = 'WebUsbPlugin';\n this.normalEndpointId = ENDPOINT_ID;\n this.normalInterfaceId = INTERFACE_ID;\n this.requestNeeded = true;\n this.unreadableHidDevice = false;\n this.unreadableHidDeviceChange = new events_1.EventEmitter();\n this.version = '';\n this._lastDevices = [];\n }\n init(debug) {\n this.debug = !!debug;\n const { usb } = navigator;\n if (!usb) {\n throw new Error('WebUSB is not available on this browser.');\n }\n else {\n this.usb = usb;\n }\n }\n _deviceHasDebugLink(device) {\n try {\n const iface = device.configurations[0].interfaces[DEBUG_INTERFACE_ID].alternates[0];\n return (iface.interfaceClass === 255 &&\n iface.endpoints[0].endpointNumber === DEBUG_ENDPOINT_ID);\n }\n catch (e) {\n return false;\n }\n }\n _deviceIsHid(device) {\n return device.vendorId === T1HID_VENDOR;\n }\n _listDevices() {\n return __awaiter(this, void 0, void 0, function* () {\n let bootloaderId = 0;\n const devices = yield this.usb.getDevices();\n const trezorDevices = devices.filter(dev => {\n const isTrezor = constants_1.TREZOR_DESCS.some(desc => dev.vendorId === desc.vendorId && dev.productId === desc.productId);\n return isTrezor;\n });\n const hidDevices = trezorDevices.filter(dev => this._deviceIsHid(dev));\n const nonHidDevices = trezorDevices.filter(dev => !this._deviceIsHid(dev));\n this._lastDevices = nonHidDevices.map(device => {\n const { serialNumber } = device;\n let path = serialNumber == null || serialNumber === '' ? 'bootloader' : serialNumber;\n if (path === 'bootloader') {\n bootloaderId++;\n path += bootloaderId;\n }\n const debug = this._deviceHasDebugLink(device);\n return { path, device, debug };\n });\n const oldUnreadableHidDevice = this.unreadableHidDevice;\n this.unreadableHidDevice = hidDevices.length > 0;\n if (oldUnreadableHidDevice !== this.unreadableHidDevice) {\n this.unreadableHidDeviceChange.emit('change');\n }\n return this._lastDevices;\n });\n }\n enumerate() {\n return __awaiter(this, void 0, void 0, function* () {\n return (yield this._listDevices()).map(info => ({\n path: info.path,\n debug: info.debug,\n }));\n });\n }\n _findDevice(path) {\n const deviceO = this._lastDevices.find(d => d.path === path);\n if (deviceO == null) {\n throw new Error('Action was interrupted.');\n }\n return deviceO.device;\n }\n send(path, data, debug) {\n return __awaiter(this, void 0, void 0, function* () {\n const device = yield this._findDevice(path);\n const newArray = new Uint8Array(64);\n newArray[0] = 63;\n newArray.set(new Uint8Array(data), 1);\n if (!device.opened) {\n yield this.connect(path, debug, false);\n }\n const endpoint = debug ? this.debugEndpointId : this.normalEndpointId;\n return device.transferOut(endpoint, newArray).then(() => { });\n });\n }\n receive(path, debug) {\n return __awaiter(this, void 0, void 0, function* () {\n const device = yield this._findDevice(path);\n const endpoint = debug ? this.debugEndpointId : this.normalEndpointId;\n try {\n if (!device.opened) {\n yield this.connect(path, debug, false);\n }\n const res = yield device.transferIn(endpoint, 64);\n if (!res.data) {\n throw new Error('no data');\n }\n if (res.data.byteLength === 0) {\n return this.receive(path, debug);\n }\n return res.data.buffer.slice(1);\n }\n catch (e) {\n if (e.message === 'Device unavailable.') {\n throw new Error('Action was interrupted.');\n }\n else {\n throw e;\n }\n }\n });\n }\n connect(path, debug, first) {\n return __awaiter(this, void 0, void 0, function* () {\n for (let i = 0; i < 5; i++) {\n if (i > 0) {\n yield new Promise(resolve => setTimeout(() => resolve(undefined), i * 200));\n }\n try {\n return yield this._connectIn(path, debug, first);\n }\n catch (e) {\n if (i === 4) {\n throw e;\n }\n }\n }\n });\n }\n _connectIn(path, debug, first) {\n return __awaiter(this, void 0, void 0, function* () {\n const device = yield this._findDevice(path);\n yield device.open();\n if (first) {\n yield device.selectConfiguration(this.configurationId);\n try {\n yield device.reset();\n }\n catch (error) {\n }\n }\n const interfaceId = debug ? this.debugInterfaceId : this.normalInterfaceId;\n yield device.claimInterface(interfaceId);\n });\n }\n disconnect(path, debug, last) {\n return __awaiter(this, void 0, void 0, function* () {\n const device = yield this._findDevice(path);\n const interfaceId = debug ? this.debugInterfaceId : this.normalInterfaceId;\n yield device.releaseInterface(interfaceId);\n if (last) {\n yield device.close();\n }\n });\n }\n requestDevice() {\n return __awaiter(this, void 0, void 0, function* () {\n yield this.usb.requestDevice({ filters: constants_1.TREZOR_DESCS });\n });\n }\n}\nexports.default = WebUsbPlugin;\n//# sourceMappingURL=webusb.js.map", "module.exports = Long;\r\n\r\n/**\r\n * wasm optimizations, to do native i64 multiplication and divide\r\n */\r\nvar wasm = null;\r\n\r\ntry {\r\n wasm = new WebAssembly.Instance(new WebAssembly.Module(new Uint8Array([\r\n 0, 97, 115, 109, 1, 0, 0, 0, 1, 13, 2, 96, 0, 1, 127, 96, 4, 127, 127, 127, 127, 1, 127, 3, 7, 6, 0, 1, 1, 1, 1, 1, 6, 6, 1, 127, 1, 65, 0, 11, 7, 50, 6, 3, 109, 117, 108, 0, 1, 5, 100, 105, 118, 95, 115, 0, 2, 5, 100, 105, 118, 95, 117, 0, 3, 5, 114, 101, 109, 95, 115, 0, 4, 5, 114, 101, 109, 95, 117, 0, 5, 8, 103, 101, 116, 95, 104, 105, 103, 104, 0, 0, 10, 191, 1, 6, 4, 0, 35, 0, 11, 36, 1, 1, 126, 32, 0, 173, 32, 1, 173, 66, 32, 134, 132, 32, 2, 173, 32, 3, 173, 66, 32, 134, 132, 126, 34, 4, 66, 32, 135, 167, 36, 0, 32, 4, 167, 11, 36, 1, 1, 126, 32, 0, 173, 32, 1, 173, 66, 32, 134, 132, 32, 2, 173, 32, 3, 173, 66, 32, 134, 132, 127, 34, 4, 66, 32, 135, 167, 36, 0, 32, 4, 167, 11, 36, 1, 1, 126, 32, 0, 173, 32, 1, 173, 66, 32, 134, 132, 32, 2, 173, 32, 3, 173, 66, 32, 134, 132, 128, 34, 4, 66, 32, 135, 167, 36, 0, 32, 4, 167, 11, 36, 1, 1, 126, 32, 0, 173, 32, 1, 173, 66, 32, 134, 132, 32, 2, 173, 32, 3, 173, 66, 32, 134, 132, 129, 34, 4, 66, 32, 135, 167, 36, 0, 32, 4, 167, 11, 36, 1, 1, 126, 32, 0, 173, 32, 1, 173, 66, 32, 134, 132, 32, 2, 173, 32, 3, 173, 66, 32, 134, 132, 130, 34, 4, 66, 32, 135, 167, 36, 0, 32, 4, 167, 11\r\n ])), {}).exports;\r\n} catch (e) {\r\n // no wasm support :(\r\n}\r\n\r\n/**\r\n * Constructs a 64 bit two's-complement integer, given its low and high 32 bit values as *signed* integers.\r\n * See the from* functions below for more convenient ways of constructing Longs.\r\n * @exports Long\r\n * @class A Long class for representing a 64 bit two's-complement integer value.\r\n * @param {number} low The low (signed) 32 bits of the long\r\n * @param {number} high The high (signed) 32 bits of the long\r\n * @param {boolean=} unsigned Whether unsigned or not, defaults to signed\r\n * @constructor\r\n */\r\nfunction Long(low, high, unsigned) {\r\n\r\n /**\r\n * The low 32 bits as a signed value.\r\n * @type {number}\r\n */\r\n this.low = low | 0;\r\n\r\n /**\r\n * The high 32 bits as a signed value.\r\n * @type {number}\r\n */\r\n this.high = high | 0;\r\n\r\n /**\r\n * Whether unsigned or not.\r\n * @type {boolean}\r\n */\r\n this.unsigned = !!unsigned;\r\n}\r\n\r\n// The internal representation of a long is the two given signed, 32-bit values.\r\n// We use 32-bit pieces because these are the size of integers on which\r\n// Javascript performs bit-operations. For operations like addition and\r\n// multiplication, we split each number into 16 bit pieces, which can easily be\r\n// multiplied within Javascript's floating-point representation without overflow\r\n// or change in sign.\r\n//\r\n// In the algorithms below, we frequently reduce the negative case to the\r\n// positive case by negating the input(s) and then post-processing the result.\r\n// Note that we must ALWAYS check specially whether those values are MIN_VALUE\r\n// (-2^63) because -MIN_VALUE == MIN_VALUE (since 2^63 cannot be represented as\r\n// a positive number, it overflows back into a negative). Not handling this\r\n// case would often result in infinite recursion.\r\n//\r\n// Common constant values ZERO, ONE, NEG_ONE, etc. are defined below the from*\r\n// methods on which they depend.\r\n\r\n/**\r\n * An indicator used to reliably determine if an object is a Long or not.\r\n * @type {boolean}\r\n * @const\r\n * @private\r\n */\r\nLong.prototype.__isLong__;\r\n\r\nObject.defineProperty(Long.prototype, \"__isLong__\", { value: true });\r\n\r\n/**\r\n * @function\r\n * @param {*} obj Object\r\n * @returns {boolean}\r\n * @inner\r\n */\r\nfunction isLong(obj) {\r\n return (obj && obj[\"__isLong__\"]) === true;\r\n}\r\n\r\n/**\r\n * Tests if the specified object is a Long.\r\n * @function\r\n * @param {*} obj Object\r\n * @returns {boolean}\r\n */\r\nLong.isLong = isLong;\r\n\r\n/**\r\n * A cache of the Long representations of small integer values.\r\n * @type {!Object}\r\n * @inner\r\n */\r\nvar INT_CACHE = {};\r\n\r\n/**\r\n * A cache of the Long representations of small unsigned integer values.\r\n * @type {!Object}\r\n * @inner\r\n */\r\nvar UINT_CACHE = {};\r\n\r\n/**\r\n * @param {number} value\r\n * @param {boolean=} unsigned\r\n * @returns {!Long}\r\n * @inner\r\n */\r\nfunction fromInt(value, unsigned) {\r\n var obj, cachedObj, cache;\r\n if (unsigned) {\r\n value >>>= 0;\r\n if (cache = (0 <= value && value < 256)) {\r\n cachedObj = UINT_CACHE[value];\r\n if (cachedObj)\r\n return cachedObj;\r\n }\r\n obj = fromBits(value, (value | 0) < 0 ? -1 : 0, true);\r\n if (cache)\r\n UINT_CACHE[value] = obj;\r\n return obj;\r\n } else {\r\n value |= 0;\r\n if (cache = (-128 <= value && value < 128)) {\r\n cachedObj = INT_CACHE[value];\r\n if (cachedObj)\r\n return cachedObj;\r\n }\r\n obj = fromBits(value, value < 0 ? -1 : 0, false);\r\n if (cache)\r\n INT_CACHE[value] = obj;\r\n return obj;\r\n }\r\n}\r\n\r\n/**\r\n * Returns a Long representing the given 32 bit integer value.\r\n * @function\r\n * @param {number} value The 32 bit integer in question\r\n * @param {boolean=} unsigned Whether unsigned or not, defaults to signed\r\n * @returns {!Long} The corresponding Long value\r\n */\r\nLong.fromInt = fromInt;\r\n\r\n/**\r\n * @param {number} value\r\n * @param {boolean=} unsigned\r\n * @returns {!Long}\r\n * @inner\r\n */\r\nfunction fromNumber(value, unsigned) {\r\n if (isNaN(value))\r\n return unsigned ? UZERO : ZERO;\r\n if (unsigned) {\r\n if (value < 0)\r\n return UZERO;\r\n if (value >= TWO_PWR_64_DBL)\r\n return MAX_UNSIGNED_VALUE;\r\n } else {\r\n if (value <= -TWO_PWR_63_DBL)\r\n return MIN_VALUE;\r\n if (value + 1 >= TWO_PWR_63_DBL)\r\n return MAX_VALUE;\r\n }\r\n if (value < 0)\r\n return fromNumber(-value, unsigned).neg();\r\n return fromBits((value % TWO_PWR_32_DBL) | 0, (value / TWO_PWR_32_DBL) | 0, unsigned);\r\n}\r\n\r\n/**\r\n * Returns a Long representing the given value, provided that it is a finite number. Otherwise, zero is returned.\r\n * @function\r\n * @param {number} value The number in question\r\n * @param {boolean=} unsigned Whether unsigned or not, defaults to signed\r\n * @returns {!Long} The corresponding Long value\r\n */\r\nLong.fromNumber = fromNumber;\r\n\r\n/**\r\n * @param {number} lowBits\r\n * @param {number} highBits\r\n * @param {boolean=} unsigned\r\n * @returns {!Long}\r\n * @inner\r\n */\r\nfunction fromBits(lowBits, highBits, unsigned) {\r\n return new Long(lowBits, highBits, unsigned);\r\n}\r\n\r\n/**\r\n * Returns a Long representing the 64 bit integer that comes by concatenating the given low and high bits. Each is\r\n * assumed to use 32 bits.\r\n * @function\r\n * @param {number} lowBits The low 32 bits\r\n * @param {number} highBits The high 32 bits\r\n * @param {boolean=} unsigned Whether unsigned or not, defaults to signed\r\n * @returns {!Long} The corresponding Long value\r\n */\r\nLong.fromBits = fromBits;\r\n\r\n/**\r\n * @function\r\n * @param {number} base\r\n * @param {number} exponent\r\n * @returns {number}\r\n * @inner\r\n */\r\nvar pow_dbl = Math.pow; // Used 4 times (4*8 to 15+4)\r\n\r\n/**\r\n * @param {string} str\r\n * @param {(boolean|number)=} unsigned\r\n * @param {number=} radix\r\n * @returns {!Long}\r\n * @inner\r\n */\r\nfunction fromString(str, unsigned, radix) {\r\n if (str.length === 0)\r\n throw Error('empty string');\r\n if (str === \"NaN\" || str === \"Infinity\" || str === \"+Infinity\" || str === \"-Infinity\")\r\n return ZERO;\r\n if (typeof unsigned === 'number') {\r\n // For goog.math.long compatibility\r\n radix = unsigned,\r\n unsigned = false;\r\n } else {\r\n unsigned = !! unsigned;\r\n }\r\n radix = radix || 10;\r\n if (radix < 2 || 36 < radix)\r\n throw RangeError('radix');\r\n\r\n var p;\r\n if ((p = str.indexOf('-')) > 0)\r\n throw Error('interior hyphen');\r\n else if (p === 0) {\r\n return fromString(str.substring(1), unsigned, radix).neg();\r\n }\r\n\r\n // Do several (8) digits each time through the loop, so as to\r\n // minimize the calls to the very expensive emulated div.\r\n var radixToPower = fromNumber(pow_dbl(radix, 8));\r\n\r\n var result = ZERO;\r\n for (var i = 0; i < str.length; i += 8) {\r\n var size = Math.min(8, str.length - i),\r\n value = parseInt(str.substring(i, i + size), radix);\r\n if (size < 8) {\r\n var power = fromNumber(pow_dbl(radix, size));\r\n result = result.mul(power).add(fromNumber(value));\r\n } else {\r\n result = result.mul(radixToPower);\r\n result = result.add(fromNumber(value));\r\n }\r\n }\r\n result.unsigned = unsigned;\r\n return result;\r\n}\r\n\r\n/**\r\n * Returns a Long representation of the given string, written using the specified radix.\r\n * @function\r\n * @param {string} str The textual representation of the Long\r\n * @param {(boolean|number)=} unsigned Whether unsigned or not, defaults to signed\r\n * @param {number=} radix The radix in which the text is written (2-36), defaults to 10\r\n * @returns {!Long} The corresponding Long value\r\n */\r\nLong.fromString = fromString;\r\n\r\n/**\r\n * @function\r\n * @param {!Long|number|string|!{low: number, high: number, unsigned: boolean}} val\r\n * @param {boolean=} unsigned\r\n * @returns {!Long}\r\n * @inner\r\n */\r\nfunction fromValue(val, unsigned) {\r\n if (typeof val === 'number')\r\n return fromNumber(val, unsigned);\r\n if (typeof val === 'string')\r\n return fromString(val, unsigned);\r\n // Throws for non-objects, converts non-instanceof Long:\r\n return fromBits(val.low, val.high, typeof unsigned === 'boolean' ? unsigned : val.unsigned);\r\n}\r\n\r\n/**\r\n * Converts the specified value to a Long using the appropriate from* function for its type.\r\n * @function\r\n * @param {!Long|number|string|!{low: number, high: number, unsigned: boolean}} val Value\r\n * @param {boolean=} unsigned Whether unsigned or not, defaults to signed\r\n * @returns {!Long}\r\n */\r\nLong.fromValue = fromValue;\r\n\r\n// NOTE: the compiler should inline these constant values below and then remove these variables, so there should be\r\n// no runtime penalty for these.\r\n\r\n/**\r\n * @type {number}\r\n * @const\r\n * @inner\r\n */\r\nvar TWO_PWR_16_DBL = 1 << 16;\r\n\r\n/**\r\n * @type {number}\r\n * @const\r\n * @inner\r\n */\r\nvar TWO_PWR_24_DBL = 1 << 24;\r\n\r\n/**\r\n * @type {number}\r\n * @const\r\n * @inner\r\n */\r\nvar TWO_PWR_32_DBL = TWO_PWR_16_DBL * TWO_PWR_16_DBL;\r\n\r\n/**\r\n * @type {number}\r\n * @const\r\n * @inner\r\n */\r\nvar TWO_PWR_64_DBL = TWO_PWR_32_DBL * TWO_PWR_32_DBL;\r\n\r\n/**\r\n * @type {number}\r\n * @const\r\n * @inner\r\n */\r\nvar TWO_PWR_63_DBL = TWO_PWR_64_DBL / 2;\r\n\r\n/**\r\n * @type {!Long}\r\n * @const\r\n * @inner\r\n */\r\nvar TWO_PWR_24 = fromInt(TWO_PWR_24_DBL);\r\n\r\n/**\r\n * @type {!Long}\r\n * @inner\r\n */\r\nvar ZERO = fromInt(0);\r\n\r\n/**\r\n * Signed zero.\r\n * @type {!Long}\r\n */\r\nLong.ZERO = ZERO;\r\n\r\n/**\r\n * @type {!Long}\r\n * @inner\r\n */\r\nvar UZERO = fromInt(0, true);\r\n\r\n/**\r\n * Unsigned zero.\r\n * @type {!Long}\r\n */\r\nLong.UZERO = UZERO;\r\n\r\n/**\r\n * @type {!Long}\r\n * @inner\r\n */\r\nvar ONE = fromInt(1);\r\n\r\n/**\r\n * Signed one.\r\n * @type {!Long}\r\n */\r\nLong.ONE = ONE;\r\n\r\n/**\r\n * @type {!Long}\r\n * @inner\r\n */\r\nvar UONE = fromInt(1, true);\r\n\r\n/**\r\n * Unsigned one.\r\n * @type {!Long}\r\n */\r\nLong.UONE = UONE;\r\n\r\n/**\r\n * @type {!Long}\r\n * @inner\r\n */\r\nvar NEG_ONE = fromInt(-1);\r\n\r\n/**\r\n * Signed negative one.\r\n * @type {!Long}\r\n */\r\nLong.NEG_ONE = NEG_ONE;\r\n\r\n/**\r\n * @type {!Long}\r\n * @inner\r\n */\r\nvar MAX_VALUE = fromBits(0xFFFFFFFF|0, 0x7FFFFFFF|0, false);\r\n\r\n/**\r\n * Maximum signed value.\r\n * @type {!Long}\r\n */\r\nLong.MAX_VALUE = MAX_VALUE;\r\n\r\n/**\r\n * @type {!Long}\r\n * @inner\r\n */\r\nvar MAX_UNSIGNED_VALUE = fromBits(0xFFFFFFFF|0, 0xFFFFFFFF|0, true);\r\n\r\n/**\r\n * Maximum unsigned value.\r\n * @type {!Long}\r\n */\r\nLong.MAX_UNSIGNED_VALUE = MAX_UNSIGNED_VALUE;\r\n\r\n/**\r\n * @type {!Long}\r\n * @inner\r\n */\r\nvar MIN_VALUE = fromBits(0, 0x80000000|0, false);\r\n\r\n/**\r\n * Minimum signed value.\r\n * @type {!Long}\r\n */\r\nLong.MIN_VALUE = MIN_VALUE;\r\n\r\n/**\r\n * @alias Long.prototype\r\n * @inner\r\n */\r\nvar LongPrototype = Long.prototype;\r\n\r\n/**\r\n * Converts the Long to a 32 bit integer, assuming it is a 32 bit integer.\r\n * @returns {number}\r\n */\r\nLongPrototype.toInt = function toInt() {\r\n return this.unsigned ? this.low >>> 0 : this.low;\r\n};\r\n\r\n/**\r\n * Converts the Long to a the nearest floating-point representation of this value (double, 53 bit mantissa).\r\n * @returns {number}\r\n */\r\nLongPrototype.toNumber = function toNumber() {\r\n if (this.unsigned)\r\n return ((this.high >>> 0) * TWO_PWR_32_DBL) + (this.low >>> 0);\r\n return this.high * TWO_PWR_32_DBL + (this.low >>> 0);\r\n};\r\n\r\n/**\r\n * Converts the Long to a string written in the specified radix.\r\n * @param {number=} radix Radix (2-36), defaults to 10\r\n * @returns {string}\r\n * @override\r\n * @throws {RangeError} If `radix` is out of range\r\n */\r\nLongPrototype.toString = function toString(radix) {\r\n radix = radix || 10;\r\n if (radix < 2 || 36 < radix)\r\n throw RangeError('radix');\r\n if (this.isZero())\r\n return '0';\r\n if (this.isNegative()) { // Unsigned Longs are never negative\r\n if (this.eq(MIN_VALUE)) {\r\n // We need to change the Long value before it can be negated, so we remove\r\n // the bottom-most digit in this base and then recurse to do the rest.\r\n var radixLong = fromNumber(radix),\r\n div = this.div(radixLong),\r\n rem1 = div.mul(radixLong).sub(this);\r\n return div.toString(radix) + rem1.toInt().toString(radix);\r\n } else\r\n return '-' + this.neg().toString(radix);\r\n }\r\n\r\n // Do several (6) digits each time through the loop, so as to\r\n // minimize the calls to the very expensive emulated div.\r\n var radixToPower = fromNumber(pow_dbl(radix, 6), this.unsigned),\r\n rem = this;\r\n var result = '';\r\n while (true) {\r\n var remDiv = rem.div(radixToPower),\r\n intval = rem.sub(remDiv.mul(radixToPower)).toInt() >>> 0,\r\n digits = intval.toString(radix);\r\n rem = remDiv;\r\n if (rem.isZero())\r\n return digits + result;\r\n else {\r\n while (digits.length < 6)\r\n digits = '0' + digits;\r\n result = '' + digits + result;\r\n }\r\n }\r\n};\r\n\r\n/**\r\n * Gets the high 32 bits as a signed integer.\r\n * @returns {number} Signed high bits\r\n */\r\nLongPrototype.getHighBits = function getHighBits() {\r\n return this.high;\r\n};\r\n\r\n/**\r\n * Gets the high 32 bits as an unsigned integer.\r\n * @returns {number} Unsigned high bits\r\n */\r\nLongPrototype.getHighBitsUnsigned = function getHighBitsUnsigned() {\r\n return this.high >>> 0;\r\n};\r\n\r\n/**\r\n * Gets the low 32 bits as a signed integer.\r\n * @returns {number} Signed low bits\r\n */\r\nLongPrototype.getLowBits = function getLowBits() {\r\n return this.low;\r\n};\r\n\r\n/**\r\n * Gets the low 32 bits as an unsigned integer.\r\n * @returns {number} Unsigned low bits\r\n */\r\nLongPrototype.getLowBitsUnsigned = function getLowBitsUnsigned() {\r\n return this.low >>> 0;\r\n};\r\n\r\n/**\r\n * Gets the number of bits needed to represent the absolute value of this Long.\r\n * @returns {number}\r\n */\r\nLongPrototype.getNumBitsAbs = function getNumBitsAbs() {\r\n if (this.isNegative()) // Unsigned Longs are never negative\r\n return this.eq(MIN_VALUE) ? 64 : this.neg().getNumBitsAbs();\r\n var val = this.high != 0 ? this.high : this.low;\r\n for (var bit = 31; bit > 0; bit--)\r\n if ((val & (1 << bit)) != 0)\r\n break;\r\n return this.high != 0 ? bit + 33 : bit + 1;\r\n};\r\n\r\n/**\r\n * Tests if this Long's value equals zero.\r\n * @returns {boolean}\r\n */\r\nLongPrototype.isZero = function isZero() {\r\n return this.high === 0 && this.low === 0;\r\n};\r\n\r\n/**\r\n * Tests if this Long's value equals zero. This is an alias of {@link Long#isZero}.\r\n * @returns {boolean}\r\n */\r\nLongPrototype.eqz = LongPrototype.isZero;\r\n\r\n/**\r\n * Tests if this Long's value is negative.\r\n * @returns {boolean}\r\n */\r\nLongPrototype.isNegative = function isNegative() {\r\n return !this.unsigned && this.high < 0;\r\n};\r\n\r\n/**\r\n * Tests if this Long's value is positive.\r\n * @returns {boolean}\r\n */\r\nLongPrototype.isPositive = function isPositive() {\r\n return this.unsigned || this.high >= 0;\r\n};\r\n\r\n/**\r\n * Tests if this Long's value is odd.\r\n * @returns {boolean}\r\n */\r\nLongPrototype.isOdd = function isOdd() {\r\n return (this.low & 1) === 1;\r\n};\r\n\r\n/**\r\n * Tests if this Long's value is even.\r\n * @returns {boolean}\r\n */\r\nLongPrototype.isEven = function isEven() {\r\n return (this.low & 1) === 0;\r\n};\r\n\r\n/**\r\n * Tests if this Long's value equals the specified's.\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.equals = function equals(other) {\r\n if (!isLong(other))\r\n other = fromValue(other);\r\n if (this.unsigned !== other.unsigned && (this.high >>> 31) === 1 && (other.high >>> 31) === 1)\r\n return false;\r\n return this.high === other.high && this.low === other.low;\r\n};\r\n\r\n/**\r\n * Tests if this Long's value equals the specified's. This is an alias of {@link Long#equals}.\r\n * @function\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.eq = LongPrototype.equals;\r\n\r\n/**\r\n * Tests if this Long's value differs from the specified's.\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.notEquals = function notEquals(other) {\r\n return !this.eq(/* validates */ other);\r\n};\r\n\r\n/**\r\n * Tests if this Long's value differs from the specified's. This is an alias of {@link Long#notEquals}.\r\n * @function\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.neq = LongPrototype.notEquals;\r\n\r\n/**\r\n * Tests if this Long's value differs from the specified's. This is an alias of {@link Long#notEquals}.\r\n * @function\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.ne = LongPrototype.notEquals;\r\n\r\n/**\r\n * Tests if this Long's value is less than the specified's.\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.lessThan = function lessThan(other) {\r\n return this.comp(/* validates */ other) < 0;\r\n};\r\n\r\n/**\r\n * Tests if this Long's value is less than the specified's. This is an alias of {@link Long#lessThan}.\r\n * @function\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.lt = LongPrototype.lessThan;\r\n\r\n/**\r\n * Tests if this Long's value is less than or equal the specified's.\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.lessThanOrEqual = function lessThanOrEqual(other) {\r\n return this.comp(/* validates */ other) <= 0;\r\n};\r\n\r\n/**\r\n * Tests if this Long's value is less than or equal the specified's. This is an alias of {@link Long#lessThanOrEqual}.\r\n * @function\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.lte = LongPrototype.lessThanOrEqual;\r\n\r\n/**\r\n * Tests if this Long's value is less than or equal the specified's. This is an alias of {@link Long#lessThanOrEqual}.\r\n * @function\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.le = LongPrototype.lessThanOrEqual;\r\n\r\n/**\r\n * Tests if this Long's value is greater than the specified's.\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.greaterThan = function greaterThan(other) {\r\n return this.comp(/* validates */ other) > 0;\r\n};\r\n\r\n/**\r\n * Tests if this Long's value is greater than the specified's. This is an alias of {@link Long#greaterThan}.\r\n * @function\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.gt = LongPrototype.greaterThan;\r\n\r\n/**\r\n * Tests if this Long's value is greater than or equal the specified's.\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.greaterThanOrEqual = function greaterThanOrEqual(other) {\r\n return this.comp(/* validates */ other) >= 0;\r\n};\r\n\r\n/**\r\n * Tests if this Long's value is greater than or equal the specified's. This is an alias of {@link Long#greaterThanOrEqual}.\r\n * @function\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.gte = LongPrototype.greaterThanOrEqual;\r\n\r\n/**\r\n * Tests if this Long's value is greater than or equal the specified's. This is an alias of {@link Long#greaterThanOrEqual}.\r\n * @function\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.ge = LongPrototype.greaterThanOrEqual;\r\n\r\n/**\r\n * Compares this Long's value with the specified's.\r\n * @param {!Long|number|string} other Other value\r\n * @returns {number} 0 if they are the same, 1 if the this is greater and -1\r\n * if the given one is greater\r\n */\r\nLongPrototype.compare = function compare(other) {\r\n if (!isLong(other))\r\n other = fromValue(other);\r\n if (this.eq(other))\r\n return 0;\r\n var thisNeg = this.isNegative(),\r\n otherNeg = other.isNegative();\r\n if (thisNeg && !otherNeg)\r\n return -1;\r\n if (!thisNeg && otherNeg)\r\n return 1;\r\n // At this point the sign bits are the same\r\n if (!this.unsigned)\r\n return this.sub(other).isNegative() ? -1 : 1;\r\n // Both are positive if at least one is unsigned\r\n return (other.high >>> 0) > (this.high >>> 0) || (other.high === this.high && (other.low >>> 0) > (this.low >>> 0)) ? -1 : 1;\r\n};\r\n\r\n/**\r\n * Compares this Long's value with the specified's. This is an alias of {@link Long#compare}.\r\n * @function\r\n * @param {!Long|number|string} other Other value\r\n * @returns {number} 0 if they are the same, 1 if the this is greater and -1\r\n * if the given one is greater\r\n */\r\nLongPrototype.comp = LongPrototype.compare;\r\n\r\n/**\r\n * Negates this Long's value.\r\n * @returns {!Long} Negated Long\r\n */\r\nLongPrototype.negate = function negate() {\r\n if (!this.unsigned && this.eq(MIN_VALUE))\r\n return MIN_VALUE;\r\n return this.not().add(ONE);\r\n};\r\n\r\n/**\r\n * Negates this Long's value. This is an alias of {@link Long#negate}.\r\n * @function\r\n * @returns {!Long} Negated Long\r\n */\r\nLongPrototype.neg = LongPrototype.negate;\r\n\r\n/**\r\n * Returns the sum of this and the specified Long.\r\n * @param {!Long|number|string} addend Addend\r\n * @returns {!Long} Sum\r\n */\r\nLongPrototype.add = function add(addend) {\r\n if (!isLong(addend))\r\n addend = fromValue(addend);\r\n\r\n // Divide each number into 4 chunks of 16 bits, and then sum the chunks.\r\n\r\n var a48 = this.high >>> 16;\r\n var a32 = this.high & 0xFFFF;\r\n var a16 = this.low >>> 16;\r\n var a00 = this.low & 0xFFFF;\r\n\r\n var b48 = addend.high >>> 16;\r\n var b32 = addend.high & 0xFFFF;\r\n var b16 = addend.low >>> 16;\r\n var b00 = addend.low & 0xFFFF;\r\n\r\n var c48 = 0, c32 = 0, c16 = 0, c00 = 0;\r\n c00 += a00 + b00;\r\n c16 += c00 >>> 16;\r\n c00 &= 0xFFFF;\r\n c16 += a16 + b16;\r\n c32 += c16 >>> 16;\r\n c16 &= 0xFFFF;\r\n c32 += a32 + b32;\r\n c48 += c32 >>> 16;\r\n c32 &= 0xFFFF;\r\n c48 += a48 + b48;\r\n c48 &= 0xFFFF;\r\n return fromBits((c16 << 16) | c00, (c48 << 16) | c32, this.unsigned);\r\n};\r\n\r\n/**\r\n * Returns the difference of this and the specified Long.\r\n * @param {!Long|number|string} subtrahend Subtrahend\r\n * @returns {!Long} Difference\r\n */\r\nLongPrototype.subtract = function subtract(subtrahend) {\r\n if (!isLong(subtrahend))\r\n subtrahend = fromValue(subtrahend);\r\n return this.add(subtrahend.neg());\r\n};\r\n\r\n/**\r\n * Returns the difference of this and the specified Long. This is an alias of {@link Long#subtract}.\r\n * @function\r\n * @param {!Long|number|string} subtrahend Subtrahend\r\n * @returns {!Long} Difference\r\n */\r\nLongPrototype.sub = LongPrototype.subtract;\r\n\r\n/**\r\n * Returns the product of this and the specified Long.\r\n * @param {!Long|number|string} multiplier Multiplier\r\n * @returns {!Long} Product\r\n */\r\nLongPrototype.multiply = function multiply(multiplier) {\r\n if (this.isZero())\r\n return ZERO;\r\n if (!isLong(multiplier))\r\n multiplier = fromValue(multiplier);\r\n\r\n // use wasm support if present\r\n if (wasm) {\r\n var low = wasm.mul(this.low,\r\n this.high,\r\n multiplier.low,\r\n multiplier.high);\r\n return fromBits(low, wasm.get_high(), this.unsigned);\r\n }\r\n\r\n if (multiplier.isZero())\r\n return ZERO;\r\n if (this.eq(MIN_VALUE))\r\n return multiplier.isOdd() ? MIN_VALUE : ZERO;\r\n if (multiplier.eq(MIN_VALUE))\r\n return this.isOdd() ? MIN_VALUE : ZERO;\r\n\r\n if (this.isNegative()) {\r\n if (multiplier.isNegative())\r\n return this.neg().mul(multiplier.neg());\r\n else\r\n return this.neg().mul(multiplier).neg();\r\n } else if (multiplier.isNegative())\r\n return this.mul(multiplier.neg()).neg();\r\n\r\n // If both longs are small, use float multiplication\r\n if (this.lt(TWO_PWR_24) && multiplier.lt(TWO_PWR_24))\r\n return fromNumber(this.toNumber() * multiplier.toNumber(), this.unsigned);\r\n\r\n // Divide each long into 4 chunks of 16 bits, and then add up 4x4 products.\r\n // We can skip products that would overflow.\r\n\r\n var a48 = this.high >>> 16;\r\n var a32 = this.high & 0xFFFF;\r\n var a16 = this.low >>> 16;\r\n var a00 = this.low & 0xFFFF;\r\n\r\n var b48 = multiplier.high >>> 16;\r\n var b32 = multiplier.high & 0xFFFF;\r\n var b16 = multiplier.low >>> 16;\r\n var b00 = multiplier.low & 0xFFFF;\r\n\r\n var c48 = 0, c32 = 0, c16 = 0, c00 = 0;\r\n c00 += a00 * b00;\r\n c16 += c00 >>> 16;\r\n c00 &= 0xFFFF;\r\n c16 += a16 * b00;\r\n c32 += c16 >>> 16;\r\n c16 &= 0xFFFF;\r\n c16 += a00 * b16;\r\n c32 += c16 >>> 16;\r\n c16 &= 0xFFFF;\r\n c32 += a32 * b00;\r\n c48 += c32 >>> 16;\r\n c32 &= 0xFFFF;\r\n c32 += a16 * b16;\r\n c48 += c32 >>> 16;\r\n c32 &= 0xFFFF;\r\n c32 += a00 * b32;\r\n c48 += c32 >>> 16;\r\n c32 &= 0xFFFF;\r\n c48 += a48 * b00 + a32 * b16 + a16 * b32 + a00 * b48;\r\n c48 &= 0xFFFF;\r\n return fromBits((c16 << 16) | c00, (c48 << 16) | c32, this.unsigned);\r\n};\r\n\r\n/**\r\n * Returns the product of this and the specified Long. This is an alias of {@link Long#multiply}.\r\n * @function\r\n * @param {!Long|number|string} multiplier Multiplier\r\n * @returns {!Long} Product\r\n */\r\nLongPrototype.mul = LongPrototype.multiply;\r\n\r\n/**\r\n * Returns this Long divided by the specified. The result is signed if this Long is signed or\r\n * unsigned if this Long is unsigned.\r\n * @param {!Long|number|string} divisor Divisor\r\n * @returns {!Long} Quotient\r\n */\r\nLongPrototype.divide = function divide(divisor) {\r\n if (!isLong(divisor))\r\n divisor = fromValue(divisor);\r\n if (divisor.isZero())\r\n throw Error('division by zero');\r\n\r\n // use wasm support if present\r\n if (wasm) {\r\n // guard against signed division overflow: the largest\r\n // negative number / -1 would be 1 larger than the largest\r\n // positive number, due to two's complement.\r\n if (!this.unsigned &&\r\n this.high === -0x80000000 &&\r\n divisor.low === -1 && divisor.high === -1) {\r\n // be consistent with non-wasm code path\r\n return this;\r\n }\r\n var low = (this.unsigned ? wasm.div_u : wasm.div_s)(\r\n this.low,\r\n this.high,\r\n divisor.low,\r\n divisor.high\r\n );\r\n return fromBits(low, wasm.get_high(), this.unsigned);\r\n }\r\n\r\n if (this.isZero())\r\n return this.unsigned ? UZERO : ZERO;\r\n var approx, rem, res;\r\n if (!this.unsigned) {\r\n // This section is only relevant for signed longs and is derived from the\r\n // closure library as a whole.\r\n if (this.eq(MIN_VALUE)) {\r\n if (divisor.eq(ONE) || divisor.eq(NEG_ONE))\r\n return MIN_VALUE; // recall that -MIN_VALUE == MIN_VALUE\r\n else if (divisor.eq(MIN_VALUE))\r\n return ONE;\r\n else {\r\n // At this point, we have |other| >= 2, so |this/other| < |MIN_VALUE|.\r\n var halfThis = this.shr(1);\r\n approx = halfThis.div(divisor).shl(1);\r\n if (approx.eq(ZERO)) {\r\n return divisor.isNegative() ? ONE : NEG_ONE;\r\n } else {\r\n rem = this.sub(divisor.mul(approx));\r\n res = approx.add(rem.div(divisor));\r\n return res;\r\n }\r\n }\r\n } else if (divisor.eq(MIN_VALUE))\r\n return this.unsigned ? UZERO : ZERO;\r\n if (this.isNegative()) {\r\n if (divisor.isNegative())\r\n return this.neg().div(divisor.neg());\r\n return this.neg().div(divisor).neg();\r\n } else if (divisor.isNegative())\r\n return this.div(divisor.neg()).neg();\r\n res = ZERO;\r\n } else {\r\n // The algorithm below has not been made for unsigned longs. It's therefore\r\n // required to take special care of the MSB prior to running it.\r\n if (!divisor.unsigned)\r\n divisor = divisor.toUnsigned();\r\n if (divisor.gt(this))\r\n return UZERO;\r\n if (divisor.gt(this.shru(1))) // 15 >>> 1 = 7 ; with divisor = 8 ; true\r\n return UONE;\r\n res = UZERO;\r\n }\r\n\r\n // Repeat the following until the remainder is less than other: find a\r\n // floating-point that approximates remainder / other *from below*, add this\r\n // into the result, and subtract it from the remainder. It is critical that\r\n // the approximate value is less than or equal to the real value so that the\r\n // remainder never becomes negative.\r\n rem = this;\r\n while (rem.gte(divisor)) {\r\n // Approximate the result of division. This may be a little greater or\r\n // smaller than the actual value.\r\n approx = Math.max(1, Math.floor(rem.toNumber() / divisor.toNumber()));\r\n\r\n // We will tweak the approximate result by changing it in the 48-th digit or\r\n // the smallest non-fractional digit, whichever is larger.\r\n var log2 = Math.ceil(Math.log(approx) / Math.LN2),\r\n delta = (log2 <= 48) ? 1 : pow_dbl(2, log2 - 48),\r\n\r\n // Decrease the approximation until it is smaller than the remainder. Note\r\n // that if it is too large, the product overflows and is negative.\r\n approxRes = fromNumber(approx),\r\n approxRem = approxRes.mul(divisor);\r\n while (approxRem.isNegative() || approxRem.gt(rem)) {\r\n approx -= delta;\r\n approxRes = fromNumber(approx, this.unsigned);\r\n approxRem = approxRes.mul(divisor);\r\n }\r\n\r\n // We know the answer can't be zero... and actually, zero would cause\r\n // infinite recursion since we would make no progress.\r\n if (approxRes.isZero())\r\n approxRes = ONE;\r\n\r\n res = res.add(approxRes);\r\n rem = rem.sub(approxRem);\r\n }\r\n return res;\r\n};\r\n\r\n/**\r\n * Returns this Long divided by the specified. This is an alias of {@link Long#divide}.\r\n * @function\r\n * @param {!Long|number|string} divisor Divisor\r\n * @returns {!Long} Quotient\r\n */\r\nLongPrototype.div = LongPrototype.divide;\r\n\r\n/**\r\n * Returns this Long modulo the specified.\r\n * @param {!Long|number|string} divisor Divisor\r\n * @returns {!Long} Remainder\r\n */\r\nLongPrototype.modulo = function modulo(divisor) {\r\n if (!isLong(divisor))\r\n divisor = fromValue(divisor);\r\n\r\n // use wasm support if present\r\n if (wasm) {\r\n var low = (this.unsigned ? wasm.rem_u : wasm.rem_s)(\r\n this.low,\r\n this.high,\r\n divisor.low,\r\n divisor.high\r\n );\r\n return fromBits(low, wasm.get_high(), this.unsigned);\r\n }\r\n\r\n return this.sub(this.div(divisor).mul(divisor));\r\n};\r\n\r\n/**\r\n * Returns this Long modulo the specified. This is an alias of {@link Long#modulo}.\r\n * @function\r\n * @param {!Long|number|string} divisor Divisor\r\n * @returns {!Long} Remainder\r\n */\r\nLongPrototype.mod = LongPrototype.modulo;\r\n\r\n/**\r\n * Returns this Long modulo the specified. This is an alias of {@link Long#modulo}.\r\n * @function\r\n * @param {!Long|number|string} divisor Divisor\r\n * @returns {!Long} Remainder\r\n */\r\nLongPrototype.rem = LongPrototype.modulo;\r\n\r\n/**\r\n * Returns the bitwise NOT of this Long.\r\n * @returns {!Long}\r\n */\r\nLongPrototype.not = function not() {\r\n return fromBits(~this.low, ~this.high, this.unsigned);\r\n};\r\n\r\n/**\r\n * Returns the bitwise AND of this Long and the specified.\r\n * @param {!Long|number|string} other Other Long\r\n * @returns {!Long}\r\n */\r\nLongPrototype.and = function and(other) {\r\n if (!isLong(other))\r\n other = fromValue(other);\r\n return fromBits(this.low & other.low, this.high & other.high, this.unsigned);\r\n};\r\n\r\n/**\r\n * Returns the bitwise OR of this Long and the specified.\r\n * @param {!Long|number|string} other Other Long\r\n * @returns {!Long}\r\n */\r\nLongPrototype.or = function or(other) {\r\n if (!isLong(other))\r\n other = fromValue(other);\r\n return fromBits(this.low | other.low, this.high | other.high, this.unsigned);\r\n};\r\n\r\n/**\r\n * Returns the bitwise XOR of this Long and the given one.\r\n * @param {!Long|number|string} other Other Long\r\n * @returns {!Long}\r\n */\r\nLongPrototype.xor = function xor(other) {\r\n if (!isLong(other))\r\n other = fromValue(other);\r\n return fromBits(this.low ^ other.low, this.high ^ other.high, this.unsigned);\r\n};\r\n\r\n/**\r\n * Returns this Long with bits shifted to the left by the given amount.\r\n * @param {number|!Long} numBits Number of bits\r\n * @returns {!Long} Shifted Long\r\n */\r\nLongPrototype.shiftLeft = function shiftLeft(numBits) {\r\n if (isLong(numBits))\r\n numBits = numBits.toInt();\r\n if ((numBits &= 63) === 0)\r\n return this;\r\n else if (numBits < 32)\r\n return fromBits(this.low << numBits, (this.high << numBits) | (this.low >>> (32 - numBits)), this.unsigned);\r\n else\r\n return fromBits(0, this.low << (numBits - 32), this.unsigned);\r\n};\r\n\r\n/**\r\n * Returns this Long with bits shifted to the left by the given amount. This is an alias of {@link Long#shiftLeft}.\r\n * @function\r\n * @param {number|!Long} numBits Number of bits\r\n * @returns {!Long} Shifted Long\r\n */\r\nLongPrototype.shl = LongPrototype.shiftLeft;\r\n\r\n/**\r\n * Returns this Long with bits arithmetically shifted to the right by the given amount.\r\n * @param {number|!Long} numBits Number of bits\r\n * @returns {!Long} Shifted Long\r\n */\r\nLongPrototype.shiftRight = function shiftRight(numBits) {\r\n if (isLong(numBits))\r\n numBits = numBits.toInt();\r\n if ((numBits &= 63) === 0)\r\n return this;\r\n else if (numBits < 32)\r\n return fromBits((this.low >>> numBits) | (this.high << (32 - numBits)), this.high >> numBits, this.unsigned);\r\n else\r\n return fromBits(this.high >> (numBits - 32), this.high >= 0 ? 0 : -1, this.unsigned);\r\n};\r\n\r\n/**\r\n * Returns this Long with bits arithmetically shifted to the right by the given amount. This is an alias of {@link Long#shiftRight}.\r\n * @function\r\n * @param {number|!Long} numBits Number of bits\r\n * @returns {!Long} Shifted Long\r\n */\r\nLongPrototype.shr = LongPrototype.shiftRight;\r\n\r\n/**\r\n * Returns this Long with bits logically shifted to the right by the given amount.\r\n * @param {number|!Long} numBits Number of bits\r\n * @returns {!Long} Shifted Long\r\n */\r\nLongPrototype.shiftRightUnsigned = function shiftRightUnsigned(numBits) {\r\n if (isLong(numBits))\r\n numBits = numBits.toInt();\r\n numBits &= 63;\r\n if (numBits === 0)\r\n return this;\r\n else {\r\n var high = this.high;\r\n if (numBits < 32) {\r\n var low = this.low;\r\n return fromBits((low >>> numBits) | (high << (32 - numBits)), high >>> numBits, this.unsigned);\r\n } else if (numBits === 32)\r\n return fromBits(high, 0, this.unsigned);\r\n else\r\n return fromBits(high >>> (numBits - 32), 0, this.unsigned);\r\n }\r\n};\r\n\r\n/**\r\n * Returns this Long with bits logically shifted to the right by the given amount. This is an alias of {@link Long#shiftRightUnsigned}.\r\n * @function\r\n * @param {number|!Long} numBits Number of bits\r\n * @returns {!Long} Shifted Long\r\n */\r\nLongPrototype.shru = LongPrototype.shiftRightUnsigned;\r\n\r\n/**\r\n * Returns this Long with bits logically shifted to the right by the given amount. This is an alias of {@link Long#shiftRightUnsigned}.\r\n * @function\r\n * @param {number|!Long} numBits Number of bits\r\n * @returns {!Long} Shifted Long\r\n */\r\nLongPrototype.shr_u = LongPrototype.shiftRightUnsigned;\r\n\r\n/**\r\n * Converts this Long to signed.\r\n * @returns {!Long} Signed long\r\n */\r\nLongPrototype.toSigned = function toSigned() {\r\n if (!this.unsigned)\r\n return this;\r\n return fromBits(this.low, this.high, false);\r\n};\r\n\r\n/**\r\n * Converts this Long to unsigned.\r\n * @returns {!Long} Unsigned long\r\n */\r\nLongPrototype.toUnsigned = function toUnsigned() {\r\n if (this.unsigned)\r\n return this;\r\n return fromBits(this.low, this.high, true);\r\n};\r\n\r\n/**\r\n * Converts this Long to its byte representation.\r\n * @param {boolean=} le Whether little or big endian, defaults to big endian\r\n * @returns {!Array.} Byte representation\r\n */\r\nLongPrototype.toBytes = function toBytes(le) {\r\n return le ? this.toBytesLE() : this.toBytesBE();\r\n};\r\n\r\n/**\r\n * Converts this Long to its little endian byte representation.\r\n * @returns {!Array.} Little endian byte representation\r\n */\r\nLongPrototype.toBytesLE = function toBytesLE() {\r\n var hi = this.high,\r\n lo = this.low;\r\n return [\r\n lo & 0xff,\r\n lo >>> 8 & 0xff,\r\n lo >>> 16 & 0xff,\r\n lo >>> 24 ,\r\n hi & 0xff,\r\n hi >>> 8 & 0xff,\r\n hi >>> 16 & 0xff,\r\n hi >>> 24\r\n ];\r\n};\r\n\r\n/**\r\n * Converts this Long to its big endian byte representation.\r\n * @returns {!Array.} Big endian byte representation\r\n */\r\nLongPrototype.toBytesBE = function toBytesBE() {\r\n var hi = this.high,\r\n lo = this.low;\r\n return [\r\n hi >>> 24 ,\r\n hi >>> 16 & 0xff,\r\n hi >>> 8 & 0xff,\r\n hi & 0xff,\r\n lo >>> 24 ,\r\n lo >>> 16 & 0xff,\r\n lo >>> 8 & 0xff,\r\n lo & 0xff\r\n ];\r\n};\r\n\r\n/**\r\n * Creates a Long from its byte representation.\r\n * @param {!Array.} bytes Byte representation\r\n * @param {boolean=} unsigned Whether unsigned or not, defaults to signed\r\n * @param {boolean=} le Whether little or big endian, defaults to big endian\r\n * @returns {Long} The corresponding Long value\r\n */\r\nLong.fromBytes = function fromBytes(bytes, unsigned, le) {\r\n return le ? Long.fromBytesLE(bytes, unsigned) : Long.fromBytesBE(bytes, unsigned);\r\n};\r\n\r\n/**\r\n * Creates a Long from its little endian byte representation.\r\n * @param {!Array.} bytes Little endian byte representation\r\n * @param {boolean=} unsigned Whether unsigned or not, defaults to signed\r\n * @returns {Long} The corresponding Long value\r\n */\r\nLong.fromBytesLE = function fromBytesLE(bytes, unsigned) {\r\n return new Long(\r\n bytes[0] |\r\n bytes[1] << 8 |\r\n bytes[2] << 16 |\r\n bytes[3] << 24,\r\n bytes[4] |\r\n bytes[5] << 8 |\r\n bytes[6] << 16 |\r\n bytes[7] << 24,\r\n unsigned\r\n );\r\n};\r\n\r\n/**\r\n * Creates a Long from its big endian byte representation.\r\n * @param {!Array.} bytes Big endian byte representation\r\n * @param {boolean=} unsigned Whether unsigned or not, defaults to signed\r\n * @returns {Long} The corresponding Long value\r\n */\r\nLong.fromBytesBE = function fromBytesBE(bytes, unsigned) {\r\n return new Long(\r\n bytes[4] << 24 |\r\n bytes[5] << 16 |\r\n bytes[6] << 8 |\r\n bytes[7],\r\n bytes[0] << 24 |\r\n bytes[1] << 16 |\r\n bytes[2] << 8 |\r\n bytes[3],\r\n unsigned\r\n );\r\n};\r\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Messages = void 0;\nexports.Messages = require(\"./messages\");\n//# sourceMappingURL=index.js.map", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Messages = exports.TREZOR_DESCS = void 0;\nconst v2_1 = require(\"./bridge/v2\");\nconst withSharedConnections_1 = require(\"./lowlevel/withSharedConnections\");\nconst fallback_1 = require(\"./fallback\");\nconst webusb_1 = require(\"./lowlevel/webusb\");\nconst protobuf = require(\"protobufjs/light\");\nconst Long = require(\"long\");\nprotobuf.util.Long = Long;\nprotobuf.configure();\nvar constants_1 = require(\"./constants\");\nObject.defineProperty(exports, \"TREZOR_DESCS\", { enumerable: true, get: function () { return constants_1.TREZOR_DESCS; } });\nvar types_1 = require(\"./types\");\nObject.defineProperty(exports, \"Messages\", { enumerable: true, get: function () { return types_1.Messages; } });\nexports.default = {\n BridgeV2: v2_1.default,\n Fallback: fallback_1.default,\n Lowlevel: withSharedConnections_1.default,\n WebUsb: webusb_1.default,\n};\n//# sourceMappingURL=index.js.map", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.config = void 0;\nconst transport_1 = require(\"@trezor/transport\");\nexports.config = {\n webusb: transport_1.TREZOR_DESCS,\n whitelist: [\n { origin: 'chrome-extension://imloifkgjagghnncjkhggdhalmcnfklk', priority: 1 },\n { origin: 'chrome-extension://niebkpllfhmpfbffbfifagfgoamhpflf', priority: 1 },\n { origin: 'file://', priority: 2 },\n { origin: 'trezor.io', priority: 0 },\n { origin: 'sldev.cz', priority: 0 },\n { origin: 'localhost', priority: 0 },\n { origin: 'trezoriovpjcahpzkrewelclulmszwbqpzmzgub37gbcjlvluxtruqad.onion', priority: 0 },\n ],\n management: [{ origin: 'trezor.io' }, { origin: 'sldev.cz' }, { origin: 'localhost' }],\n knownHosts: [\n {\n origin: 'imloifkgjagghnncjkhggdhalmcnfklk',\n label: 'Trezor Password Manager (Develop)',\n icon: '',\n },\n { origin: 'niebkpllfhmpfbffbfifagfgoamhpflf', label: 'Trezor Password Manager', icon: '' },\n { origin: 'trezor-connect@trezor.io', label: 'Trezor Connect FF Extension', icon: '' },\n {\n origin: 'efbfhenfhihgdcmnfdkhaphjdnopihlf',\n label: 'Trezor Connect Chrome Extension',\n icon: '',\n },\n {\n origin: 'mnpfhpndmjholfdlhpkjfmjkgppmodaf',\n label: 'MetaMask',\n icon: '',\n },\n {\n origin: 'webextension@metamask.io',\n label: 'MetaMask',\n icon: '',\n },\n { origin: 'file://', label: ' ', icon: '' },\n ],\n onionDomains: {\n 'trezor.io': 'trezoriovpjcahpzkrewelclulmszwbqpzmzgub37gbcjlvluxtruqad.onion',\n },\n assets: [\n {\n name: 'coins',\n url: './data/coins.json',\n },\n {\n name: 'bridge',\n url: './data/bridge/releases.json',\n },\n {\n name: 'firmware-t1',\n url: './data/firmware/1/releases.json',\n },\n {\n name: 'firmware-t2',\n url: './data/firmware/2/releases.json',\n },\n ],\n messages: './data/messages/messages.json',\n supportedBrowsers: {\n chrome: {\n version: 59,\n download: 'https://www.google.com/chrome/',\n update: 'https://support.google.com/chrome/answer/95414',\n },\n chromium: {\n version: 59,\n download: 'https://www.chromium.org/',\n update: 'https://www.chromium.org/',\n },\n electron: {\n version: 0,\n download: 'https://www.electronjs.org/',\n update: 'https://www.electronjs.org/',\n },\n firefox: {\n version: 54,\n download: 'https://www.mozilla.org/en-US/firefox/new/',\n update: 'https://support.mozilla.org/en-US/kb/update-firefox-latest-version',\n },\n },\n supportedFirmware: [\n {\n coin: ['xrp', 'txrp'],\n methods: ['getAccountInfo'],\n min: ['0', '2.1.0'],\n max: undefined,\n comment: [\n \"Since firmware 2.1.0 there is a new protobuf field 'destination_tag' in RippleSignTx\",\n ],\n },\n {\n coin: ['bnb'],\n min: ['1.9.0', '2.3.0'],\n comment: [\n 'There were protobuf backwards incompatible changes with introduction of 1.9.0/2.3.0 firmwares',\n ],\n },\n {\n coin: ['eth', 'trop', 'tgor'],\n min: ['1.8.0', '2.1.0'],\n comment: ['There were protobuf backwards incompatible changes.'],\n },\n {\n methods: ['rippleGetAddress', 'rippleSignTransaction'],\n min: ['0', '2.1.0'],\n comment: [\n \"Since firmware 2.1.0 there is a new protobuf field 'destination_tag' in RippleSignTx\",\n ],\n },\n {\n methods: ['cardanoGetAddress', 'cardanoGetPublicKey'],\n min: ['0', '2.3.2'],\n comment: ['Shelley fork support since firmware 2.3.2'],\n },\n {\n methods: ['cardanoSignTransaction'],\n min: ['0', '2.4.2'],\n comment: ['Non-streamed signing no longer supported'],\n },\n {\n methods: ['cardanoGetNativeScriptHash'],\n min: ['0', '2.4.3'],\n comment: ['Cardano GetNativeScriptHash call added in 2.4.3'],\n },\n {\n methods: ['tezosSignTransaction'],\n min: ['0', '2.1.8'],\n comment: [\n 'Since 2.1.8 there are new protobuf fields in tezos transaction (Babylon fork)',\n ],\n },\n {\n methods: ['stellarSignTransaction'],\n min: ['1.9.0', '2.3.0'],\n comment: [\n 'There were protobuf backwards incompatible changes with introduction of 1.9.0/2.3.0 firmwares',\n ],\n },\n {\n capabilities: ['replaceTransaction', 'amountUnit'],\n min: ['1.9.4', '2.3.5'],\n comment: ['new sign tx process since 1.9.4/2.3.5'],\n },\n {\n capabilities: ['decreaseOutput'],\n min: ['1.10.0', '2.4.0'],\n comment: ['allow reduce output in RBF transaction since 1.10.0/2.4.0'],\n },\n {\n capabilities: ['eip1559'],\n min: ['1.10.4', '2.4.2'],\n comment: ['new eth transaction pricing mechanism (EIP1559) since 1.10.4/2.4.2'],\n },\n {\n capabilities: ['taproot', 'signMessageNoScriptType'],\n min: ['1.10.4', '2.4.3'],\n comment: [\n 'new btc accounts taproot since 1.10.4/2.4.3 (BTC + TEST only)',\n 'SignMessage with no_script_type support',\n ],\n },\n {\n coin: ['dcr', 'tdcr'],\n methods: ['signTransaction'],\n min: ['1.10.1', '2.4.0'],\n comment: [''],\n },\n {\n methods: ['ethereumSignTypedData'],\n min: ['1.10.5', '2.4.3'],\n comment: ['EIP-712 typed signing support added in 1.10.5/2.4.3'],\n },\n {\n capabilities: ['eip712-domain-only'],\n min: ['1.10.6', '2.4.4'],\n comment: ['EIP-712 domain-only signing, when primaryType=EIP712Domain'],\n },\n {\n capabilities: ['coinjoin'],\n methods: ['authorizeCoinjoin', 'getOwnershipId', 'getOwnershipProof'],\n min: ['0', '2.5.3'],\n },\n ],\n};\n//# sourceMappingURL=config.js.map", "'use strict'\n\nmodule.exports = (str, opts = {}) => {\n if (!str) return undefined\n\n const o = {\n key: [\n 'source',\n 'protocol',\n 'authority',\n 'userInfo',\n 'user',\n 'password',\n 'host',\n 'port',\n 'relative',\n 'path',\n 'directory',\n 'file',\n 'query',\n 'anchor'\n ],\n q: {\n name: 'queryKey',\n parser: /(?:^|&)([^&=]*)=?([^&]*)/g\n },\n parser: {\n strict: /^(?:([^:/?#]+):)?(?:\\/\\/((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:/?#]*)(?::(\\d*))?))?((((?:[^?#/]*\\/)*)([^?#]*))(?:\\?([^#]*))?(?:#(.*))?)/,\n loose: /^(?:(?![^:@]+:[^:@/]*@)([^:/?#.]+):)?(?:\\/\\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:/?#]*)(?::(\\d*))?)(((\\/(?:[^?#](?![^?#/]*\\.[^?#/.]+(?:[?#]|$)))*\\/?)?([^?#/]*))(?:\\?([^#]*))?(?:#(.*))?)/\n }\n }\n\n const m = o.parser[opts.strictMode ? 'strict' : 'loose'].exec(str)\n const uri = {}\n let i = 14\n\n while (i--) uri[o.key[i]] = m[i] || ''\n\n uri[o.q.name] = {}\n uri[o.key[12]].replace(o.q.parser, function ($0, $1, $2) {\n if ($1) uri[o.q.name][$1] = $2\n })\n\n return uri\n}\n", "\"use strict\";\n\nvar conversions = {};\nmodule.exports = conversions;\n\nfunction sign(x) {\n return x < 0 ? -1 : 1;\n}\n\nfunction evenRound(x) {\n // Round x to the nearest integer, choosing the even integer if it lies halfway between two.\n if ((x % 1) === 0.5 && (x & 1) === 0) { // [even number].5; round down (i.e. floor)\n return Math.floor(x);\n } else {\n return Math.round(x);\n }\n}\n\nfunction createNumberConversion(bitLength, typeOpts) {\n if (!typeOpts.unsigned) {\n --bitLength;\n }\n const lowerBound = typeOpts.unsigned ? 0 : -Math.pow(2, bitLength);\n const upperBound = Math.pow(2, bitLength) - 1;\n\n const moduloVal = typeOpts.moduloBitLength ? Math.pow(2, typeOpts.moduloBitLength) : Math.pow(2, bitLength);\n const moduloBound = typeOpts.moduloBitLength ? Math.pow(2, typeOpts.moduloBitLength - 1) : Math.pow(2, bitLength - 1);\n\n return function(V, opts) {\n if (!opts) opts = {};\n\n let x = +V;\n\n if (opts.enforceRange) {\n if (!Number.isFinite(x)) {\n throw new TypeError(\"Argument is not a finite number\");\n }\n\n x = sign(x) * Math.floor(Math.abs(x));\n if (x < lowerBound || x > upperBound) {\n throw new TypeError(\"Argument is not in byte range\");\n }\n\n return x;\n }\n\n if (!isNaN(x) && opts.clamp) {\n x = evenRound(x);\n\n if (x < lowerBound) x = lowerBound;\n if (x > upperBound) x = upperBound;\n return x;\n }\n\n if (!Number.isFinite(x) || x === 0) {\n return 0;\n }\n\n x = sign(x) * Math.floor(Math.abs(x));\n x = x % moduloVal;\n\n if (!typeOpts.unsigned && x >= moduloBound) {\n return x - moduloVal;\n } else if (typeOpts.unsigned) {\n if (x < 0) {\n x += moduloVal;\n } else if (x === -0) { // don't return negative zero\n return 0;\n }\n }\n\n return x;\n }\n}\n\nconversions[\"void\"] = function () {\n return undefined;\n};\n\nconversions[\"boolean\"] = function (val) {\n return !!val;\n};\n\nconversions[\"byte\"] = createNumberConversion(8, { unsigned: false });\nconversions[\"octet\"] = createNumberConversion(8, { unsigned: true });\n\nconversions[\"short\"] = createNumberConversion(16, { unsigned: false });\nconversions[\"unsigned short\"] = createNumberConversion(16, { unsigned: true });\n\nconversions[\"long\"] = createNumberConversion(32, { unsigned: false });\nconversions[\"unsigned long\"] = createNumberConversion(32, { unsigned: true });\n\nconversions[\"long long\"] = createNumberConversion(32, { unsigned: false, moduloBitLength: 64 });\nconversions[\"unsigned long long\"] = createNumberConversion(32, { unsigned: true, moduloBitLength: 64 });\n\nconversions[\"double\"] = function (V) {\n const x = +V;\n\n if (!Number.isFinite(x)) {\n throw new TypeError(\"Argument is not a finite floating-point value\");\n }\n\n return x;\n};\n\nconversions[\"unrestricted double\"] = function (V) {\n const x = +V;\n\n if (isNaN(x)) {\n throw new TypeError(\"Argument is NaN\");\n }\n\n return x;\n};\n\n// not quite valid, but good enough for JS\nconversions[\"float\"] = conversions[\"double\"];\nconversions[\"unrestricted float\"] = conversions[\"unrestricted double\"];\n\nconversions[\"DOMString\"] = function (V, opts) {\n if (!opts) opts = {};\n\n if (opts.treatNullAsEmptyString && V === null) {\n return \"\";\n }\n\n return String(V);\n};\n\nconversions[\"ByteString\"] = function (V, opts) {\n const x = String(V);\n let c = undefined;\n for (let i = 0; (c = x.codePointAt(i)) !== undefined; ++i) {\n if (c > 255) {\n throw new TypeError(\"Argument is not a valid bytestring\");\n }\n }\n\n return x;\n};\n\nconversions[\"USVString\"] = function (V) {\n const S = String(V);\n const n = S.length;\n const U = [];\n for (let i = 0; i < n; ++i) {\n const c = S.charCodeAt(i);\n if (c < 0xD800 || c > 0xDFFF) {\n U.push(String.fromCodePoint(c));\n } else if (0xDC00 <= c && c <= 0xDFFF) {\n U.push(String.fromCodePoint(0xFFFD));\n } else {\n if (i === n - 1) {\n U.push(String.fromCodePoint(0xFFFD));\n } else {\n const d = S.charCodeAt(i + 1);\n if (0xDC00 <= d && d <= 0xDFFF) {\n const a = c & 0x3FF;\n const b = d & 0x3FF;\n U.push(String.fromCodePoint((2 << 15) + (2 << 9) * a + b));\n ++i;\n } else {\n U.push(String.fromCodePoint(0xFFFD));\n }\n }\n }\n }\n\n return U.join('');\n};\n\nconversions[\"Date\"] = function (V, opts) {\n if (!(V instanceof Date)) {\n throw new TypeError(\"Argument is not a Date object\");\n }\n if (isNaN(V)) {\n return undefined;\n }\n\n return V;\n};\n\nconversions[\"RegExp\"] = function (V, opts) {\n if (!(V instanceof RegExp)) {\n V = new RegExp(V);\n }\n\n return V;\n};\n", "\"use strict\";\n\nmodule.exports.mixin = function mixin(target, source) {\n const keys = Object.getOwnPropertyNames(source);\n for (let i = 0; i < keys.length; ++i) {\n Object.defineProperty(target, keys[i], Object.getOwnPropertyDescriptor(source, keys[i]));\n }\n};\n\nmodule.exports.wrapperSymbol = Symbol(\"wrapper\");\nmodule.exports.implSymbol = Symbol(\"impl\");\n\nmodule.exports.wrapperForImpl = function (impl) {\n return impl[module.exports.wrapperSymbol];\n};\n\nmodule.exports.implForWrapper = function (wrapper) {\n return wrapper[module.exports.implSymbol];\n};\n\n", "\"use strict\";\n\nvar punycode = require(\"punycode\");\nvar mappingTable = require(\"./lib/mappingTable.json\");\n\nvar PROCESSING_OPTIONS = {\n TRANSITIONAL: 0,\n NONTRANSITIONAL: 1\n};\n\nfunction normalize(str) { // fix bug in v8\n return str.split('\\u0000').map(function (s) { return s.normalize('NFC'); }).join('\\u0000');\n}\n\nfunction findStatus(val) {\n var start = 0;\n var end = mappingTable.length - 1;\n\n while (start <= end) {\n var mid = Math.floor((start + end) / 2);\n\n var target = mappingTable[mid];\n if (target[0][0] <= val && target[0][1] >= val) {\n return target;\n } else if (target[0][0] > val) {\n end = mid - 1;\n } else {\n start = mid + 1;\n }\n }\n\n return null;\n}\n\nvar regexAstralSymbols = /[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/g;\n\nfunction countSymbols(string) {\n return string\n // replace every surrogate pair with a BMP symbol\n .replace(regexAstralSymbols, '_')\n // then get the length\n .length;\n}\n\nfunction mapChars(domain_name, useSTD3, processing_option) {\n var hasError = false;\n var processed = \"\";\n\n var len = countSymbols(domain_name);\n for (var i = 0; i < len; ++i) {\n var codePoint = domain_name.codePointAt(i);\n var status = findStatus(codePoint);\n\n switch (status[1]) {\n case \"disallowed\":\n hasError = true;\n processed += String.fromCodePoint(codePoint);\n break;\n case \"ignored\":\n break;\n case \"mapped\":\n processed += String.fromCodePoint.apply(String, status[2]);\n break;\n case \"deviation\":\n if (processing_option === PROCESSING_OPTIONS.TRANSITIONAL) {\n processed += String.fromCodePoint.apply(String, status[2]);\n } else {\n processed += String.fromCodePoint(codePoint);\n }\n break;\n case \"valid\":\n processed += String.fromCodePoint(codePoint);\n break;\n case \"disallowed_STD3_mapped\":\n if (useSTD3) {\n hasError = true;\n processed += String.fromCodePoint(codePoint);\n } else {\n processed += String.fromCodePoint.apply(String, status[2]);\n }\n break;\n case \"disallowed_STD3_valid\":\n if (useSTD3) {\n hasError = true;\n }\n\n processed += String.fromCodePoint(codePoint);\n break;\n }\n }\n\n return {\n string: processed,\n error: hasError\n };\n}\n\nvar combiningMarksRegex = /[\\u0300-\\u036F\\u0483-\\u0489\\u0591-\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4\\u05C5\\u05C7\\u0610-\\u061A\\u064B-\\u065F\\u0670\\u06D6-\\u06DC\\u06DF-\\u06E4\\u06E7\\u06E8\\u06EA-\\u06ED\\u0711\\u0730-\\u074A\\u07A6-\\u07B0\\u07EB-\\u07F3\\u0816-\\u0819\\u081B-\\u0823\\u0825-\\u0827\\u0829-\\u082D\\u0859-\\u085B\\u08E4-\\u0903\\u093A-\\u093C\\u093E-\\u094F\\u0951-\\u0957\\u0962\\u0963\\u0981-\\u0983\\u09BC\\u09BE-\\u09C4\\u09C7\\u09C8\\u09CB-\\u09CD\\u09D7\\u09E2\\u09E3\\u0A01-\\u0A03\\u0A3C\\u0A3E-\\u0A42\\u0A47\\u0A48\\u0A4B-\\u0A4D\\u0A51\\u0A70\\u0A71\\u0A75\\u0A81-\\u0A83\\u0ABC\\u0ABE-\\u0AC5\\u0AC7-\\u0AC9\\u0ACB-\\u0ACD\\u0AE2\\u0AE3\\u0B01-\\u0B03\\u0B3C\\u0B3E-\\u0B44\\u0B47\\u0B48\\u0B4B-\\u0B4D\\u0B56\\u0B57\\u0B62\\u0B63\\u0B82\\u0BBE-\\u0BC2\\u0BC6-\\u0BC8\\u0BCA-\\u0BCD\\u0BD7\\u0C00-\\u0C03\\u0C3E-\\u0C44\\u0C46-\\u0C48\\u0C4A-\\u0C4D\\u0C55\\u0C56\\u0C62\\u0C63\\u0C81-\\u0C83\\u0CBC\\u0CBE-\\u0CC4\\u0CC6-\\u0CC8\\u0CCA-\\u0CCD\\u0CD5\\u0CD6\\u0CE2\\u0CE3\\u0D01-\\u0D03\\u0D3E-\\u0D44\\u0D46-\\u0D48\\u0D4A-\\u0D4D\\u0D57\\u0D62\\u0D63\\u0D82\\u0D83\\u0DCA\\u0DCF-\\u0DD4\\u0DD6\\u0DD8-\\u0DDF\\u0DF2\\u0DF3\\u0E31\\u0E34-\\u0E3A\\u0E47-\\u0E4E\\u0EB1\\u0EB4-\\u0EB9\\u0EBB\\u0EBC\\u0EC8-\\u0ECD\\u0F18\\u0F19\\u0F35\\u0F37\\u0F39\\u0F3E\\u0F3F\\u0F71-\\u0F84\\u0F86\\u0F87\\u0F8D-\\u0F97\\u0F99-\\u0FBC\\u0FC6\\u102B-\\u103E\\u1056-\\u1059\\u105E-\\u1060\\u1062-\\u1064\\u1067-\\u106D\\u1071-\\u1074\\u1082-\\u108D\\u108F\\u109A-\\u109D\\u135D-\\u135F\\u1712-\\u1714\\u1732-\\u1734\\u1752\\u1753\\u1772\\u1773\\u17B4-\\u17D3\\u17DD\\u180B-\\u180D\\u18A9\\u1920-\\u192B\\u1930-\\u193B\\u19B0-\\u19C0\\u19C8\\u19C9\\u1A17-\\u1A1B\\u1A55-\\u1A5E\\u1A60-\\u1A7C\\u1A7F\\u1AB0-\\u1ABE\\u1B00-\\u1B04\\u1B34-\\u1B44\\u1B6B-\\u1B73\\u1B80-\\u1B82\\u1BA1-\\u1BAD\\u1BE6-\\u1BF3\\u1C24-\\u1C37\\u1CD0-\\u1CD2\\u1CD4-\\u1CE8\\u1CED\\u1CF2-\\u1CF4\\u1CF8\\u1CF9\\u1DC0-\\u1DF5\\u1DFC-\\u1DFF\\u20D0-\\u20F0\\u2CEF-\\u2CF1\\u2D7F\\u2DE0-\\u2DFF\\u302A-\\u302F\\u3099\\u309A\\uA66F-\\uA672\\uA674-\\uA67D\\uA69F\\uA6F0\\uA6F1\\uA802\\uA806\\uA80B\\uA823-\\uA827\\uA880\\uA881\\uA8B4-\\uA8C4\\uA8E0-\\uA8F1\\uA926-\\uA92D\\uA947-\\uA953\\uA980-\\uA983\\uA9B3-\\uA9C0\\uA9E5\\uAA29-\\uAA36\\uAA43\\uAA4C\\uAA4D\\uAA7B-\\uAA7D\\uAAB0\\uAAB2-\\uAAB4\\uAAB7\\uAAB8\\uAABE\\uAABF\\uAAC1\\uAAEB-\\uAAEF\\uAAF5\\uAAF6\\uABE3-\\uABEA\\uABEC\\uABED\\uFB1E\\uFE00-\\uFE0F\\uFE20-\\uFE2D]|\\uD800[\\uDDFD\\uDEE0\\uDF76-\\uDF7A]|\\uD802[\\uDE01-\\uDE03\\uDE05\\uDE06\\uDE0C-\\uDE0F\\uDE38-\\uDE3A\\uDE3F\\uDEE5\\uDEE6]|\\uD804[\\uDC00-\\uDC02\\uDC38-\\uDC46\\uDC7F-\\uDC82\\uDCB0-\\uDCBA\\uDD00-\\uDD02\\uDD27-\\uDD34\\uDD73\\uDD80-\\uDD82\\uDDB3-\\uDDC0\\uDE2C-\\uDE37\\uDEDF-\\uDEEA\\uDF01-\\uDF03\\uDF3C\\uDF3E-\\uDF44\\uDF47\\uDF48\\uDF4B-\\uDF4D\\uDF57\\uDF62\\uDF63\\uDF66-\\uDF6C\\uDF70-\\uDF74]|\\uD805[\\uDCB0-\\uDCC3\\uDDAF-\\uDDB5\\uDDB8-\\uDDC0\\uDE30-\\uDE40\\uDEAB-\\uDEB7]|\\uD81A[\\uDEF0-\\uDEF4\\uDF30-\\uDF36]|\\uD81B[\\uDF51-\\uDF7E\\uDF8F-\\uDF92]|\\uD82F[\\uDC9D\\uDC9E]|\\uD834[\\uDD65-\\uDD69\\uDD6D-\\uDD72\\uDD7B-\\uDD82\\uDD85-\\uDD8B\\uDDAA-\\uDDAD\\uDE42-\\uDE44]|\\uD83A[\\uDCD0-\\uDCD6]|\\uDB40[\\uDD00-\\uDDEF]/;\n\nfunction validateLabel(label, processing_option) {\n if (label.substr(0, 4) === \"xn--\") {\n label = punycode.toUnicode(label);\n processing_option = PROCESSING_OPTIONS.NONTRANSITIONAL;\n }\n\n var error = false;\n\n if (normalize(label) !== label ||\n (label[3] === \"-\" && label[4] === \"-\") ||\n label[0] === \"-\" || label[label.length - 1] === \"-\" ||\n label.indexOf(\".\") !== -1 ||\n label.search(combiningMarksRegex) === 0) {\n error = true;\n }\n\n var len = countSymbols(label);\n for (var i = 0; i < len; ++i) {\n var status = findStatus(label.codePointAt(i));\n if ((processing === PROCESSING_OPTIONS.TRANSITIONAL && status[1] !== \"valid\") ||\n (processing === PROCESSING_OPTIONS.NONTRANSITIONAL &&\n status[1] !== \"valid\" && status[1] !== \"deviation\")) {\n error = true;\n break;\n }\n }\n\n return {\n label: label,\n error: error\n };\n}\n\nfunction processing(domain_name, useSTD3, processing_option) {\n var result = mapChars(domain_name, useSTD3, processing_option);\n result.string = normalize(result.string);\n\n var labels = result.string.split(\".\");\n for (var i = 0; i < labels.length; ++i) {\n try {\n var validation = validateLabel(labels[i]);\n labels[i] = validation.label;\n result.error = result.error || validation.error;\n } catch(e) {\n result.error = true;\n }\n }\n\n return {\n string: labels.join(\".\"),\n error: result.error\n };\n}\n\nmodule.exports.toASCII = function(domain_name, useSTD3, processing_option, verifyDnsLength) {\n var result = processing(domain_name, useSTD3, processing_option);\n var labels = result.string.split(\".\");\n labels = labels.map(function(l) {\n try {\n return punycode.toASCII(l);\n } catch(e) {\n result.error = true;\n return l;\n }\n });\n\n if (verifyDnsLength) {\n var total = labels.slice(0, labels.length - 1).join(\".\").length;\n if (total.length > 253 || total.length === 0) {\n result.error = true;\n }\n\n for (var i=0; i < labels.length; ++i) {\n if (labels.length > 63 || labels.length === 0) {\n result.error = true;\n break;\n }\n }\n }\n\n if (result.error) return null;\n return labels.join(\".\");\n};\n\nmodule.exports.toUnicode = function(domain_name, useSTD3) {\n var result = processing(domain_name, useSTD3, PROCESSING_OPTIONS.NONTRANSITIONAL);\n\n return {\n domain: result.string,\n error: result.error\n };\n};\n\nmodule.exports.PROCESSING_OPTIONS = PROCESSING_OPTIONS;\n", "\"use strict\";\r\nconst punycode = require(\"punycode\");\r\nconst tr46 = require(\"tr46\");\r\n\r\nconst specialSchemes = {\r\n ftp: 21,\r\n file: null,\r\n gopher: 70,\r\n http: 80,\r\n https: 443,\r\n ws: 80,\r\n wss: 443\r\n};\r\n\r\nconst failure = Symbol(\"failure\");\r\n\r\nfunction countSymbols(str) {\r\n return punycode.ucs2.decode(str).length;\r\n}\r\n\r\nfunction at(input, idx) {\r\n const c = input[idx];\r\n return isNaN(c) ? undefined : String.fromCodePoint(c);\r\n}\r\n\r\nfunction isASCIIDigit(c) {\r\n return c >= 0x30 && c <= 0x39;\r\n}\r\n\r\nfunction isASCIIAlpha(c) {\r\n return (c >= 0x41 && c <= 0x5A) || (c >= 0x61 && c <= 0x7A);\r\n}\r\n\r\nfunction isASCIIAlphanumeric(c) {\r\n return isASCIIAlpha(c) || isASCIIDigit(c);\r\n}\r\n\r\nfunction isASCIIHex(c) {\r\n return isASCIIDigit(c) || (c >= 0x41 && c <= 0x46) || (c >= 0x61 && c <= 0x66);\r\n}\r\n\r\nfunction isSingleDot(buffer) {\r\n return buffer === \".\" || buffer.toLowerCase() === \"%2e\";\r\n}\r\n\r\nfunction isDoubleDot(buffer) {\r\n buffer = buffer.toLowerCase();\r\n return buffer === \"..\" || buffer === \"%2e.\" || buffer === \".%2e\" || buffer === \"%2e%2e\";\r\n}\r\n\r\nfunction isWindowsDriveLetterCodePoints(cp1, cp2) {\r\n return isASCIIAlpha(cp1) && (cp2 === 58 || cp2 === 124);\r\n}\r\n\r\nfunction isWindowsDriveLetterString(string) {\r\n return string.length === 2 && isASCIIAlpha(string.codePointAt(0)) && (string[1] === \":\" || string[1] === \"|\");\r\n}\r\n\r\nfunction isNormalizedWindowsDriveLetterString(string) {\r\n return string.length === 2 && isASCIIAlpha(string.codePointAt(0)) && string[1] === \":\";\r\n}\r\n\r\nfunction containsForbiddenHostCodePoint(string) {\r\n return string.search(/\\u0000|\\u0009|\\u000A|\\u000D|\\u0020|#|%|\\/|:|\\?|@|\\[|\\\\|\\]/) !== -1;\r\n}\r\n\r\nfunction containsForbiddenHostCodePointExcludingPercent(string) {\r\n return string.search(/\\u0000|\\u0009|\\u000A|\\u000D|\\u0020|#|\\/|:|\\?|@|\\[|\\\\|\\]/) !== -1;\r\n}\r\n\r\nfunction isSpecialScheme(scheme) {\r\n return specialSchemes[scheme] !== undefined;\r\n}\r\n\r\nfunction isSpecial(url) {\r\n return isSpecialScheme(url.scheme);\r\n}\r\n\r\nfunction defaultPort(scheme) {\r\n return specialSchemes[scheme];\r\n}\r\n\r\nfunction percentEncode(c) {\r\n let hex = c.toString(16).toUpperCase();\r\n if (hex.length === 1) {\r\n hex = \"0\" + hex;\r\n }\r\n\r\n return \"%\" + hex;\r\n}\r\n\r\nfunction utf8PercentEncode(c) {\r\n const buf = new Buffer(c);\r\n\r\n let str = \"\";\r\n\r\n for (let i = 0; i < buf.length; ++i) {\r\n str += percentEncode(buf[i]);\r\n }\r\n\r\n return str;\r\n}\r\n\r\nfunction utf8PercentDecode(str) {\r\n const input = new Buffer(str);\r\n const output = [];\r\n for (let i = 0; i < input.length; ++i) {\r\n if (input[i] !== 37) {\r\n output.push(input[i]);\r\n } else if (input[i] === 37 && isASCIIHex(input[i + 1]) && isASCIIHex(input[i + 2])) {\r\n output.push(parseInt(input.slice(i + 1, i + 3).toString(), 16));\r\n i += 2;\r\n } else {\r\n output.push(input[i]);\r\n }\r\n }\r\n return new Buffer(output).toString();\r\n}\r\n\r\nfunction isC0ControlPercentEncode(c) {\r\n return c <= 0x1F || c > 0x7E;\r\n}\r\n\r\nconst extraPathPercentEncodeSet = new Set([32, 34, 35, 60, 62, 63, 96, 123, 125]);\r\nfunction isPathPercentEncode(c) {\r\n return isC0ControlPercentEncode(c) || extraPathPercentEncodeSet.has(c);\r\n}\r\n\r\nconst extraUserinfoPercentEncodeSet =\r\n new Set([47, 58, 59, 61, 64, 91, 92, 93, 94, 124]);\r\nfunction isUserinfoPercentEncode(c) {\r\n return isPathPercentEncode(c) || extraUserinfoPercentEncodeSet.has(c);\r\n}\r\n\r\nfunction percentEncodeChar(c, encodeSetPredicate) {\r\n const cStr = String.fromCodePoint(c);\r\n\r\n if (encodeSetPredicate(c)) {\r\n return utf8PercentEncode(cStr);\r\n }\r\n\r\n return cStr;\r\n}\r\n\r\nfunction parseIPv4Number(input) {\r\n let R = 10;\r\n\r\n if (input.length >= 2 && input.charAt(0) === \"0\" && input.charAt(1).toLowerCase() === \"x\") {\r\n input = input.substring(2);\r\n R = 16;\r\n } else if (input.length >= 2 && input.charAt(0) === \"0\") {\r\n input = input.substring(1);\r\n R = 8;\r\n }\r\n\r\n if (input === \"\") {\r\n return 0;\r\n }\r\n\r\n const regex = R === 10 ? /[^0-9]/ : (R === 16 ? /[^0-9A-Fa-f]/ : /[^0-7]/);\r\n if (regex.test(input)) {\r\n return failure;\r\n }\r\n\r\n return parseInt(input, R);\r\n}\r\n\r\nfunction parseIPv4(input) {\r\n const parts = input.split(\".\");\r\n if (parts[parts.length - 1] === \"\") {\r\n if (parts.length > 1) {\r\n parts.pop();\r\n }\r\n }\r\n\r\n if (parts.length > 4) {\r\n return input;\r\n }\r\n\r\n const numbers = [];\r\n for (const part of parts) {\r\n if (part === \"\") {\r\n return input;\r\n }\r\n const n = parseIPv4Number(part);\r\n if (n === failure) {\r\n return input;\r\n }\r\n\r\n numbers.push(n);\r\n }\r\n\r\n for (let i = 0; i < numbers.length - 1; ++i) {\r\n if (numbers[i] > 255) {\r\n return failure;\r\n }\r\n }\r\n if (numbers[numbers.length - 1] >= Math.pow(256, 5 - numbers.length)) {\r\n return failure;\r\n }\r\n\r\n let ipv4 = numbers.pop();\r\n let counter = 0;\r\n\r\n for (const n of numbers) {\r\n ipv4 += n * Math.pow(256, 3 - counter);\r\n ++counter;\r\n }\r\n\r\n return ipv4;\r\n}\r\n\r\nfunction serializeIPv4(address) {\r\n let output = \"\";\r\n let n = address;\r\n\r\n for (let i = 1; i <= 4; ++i) {\r\n output = String(n % 256) + output;\r\n if (i !== 4) {\r\n output = \".\" + output;\r\n }\r\n n = Math.floor(n / 256);\r\n }\r\n\r\n return output;\r\n}\r\n\r\nfunction parseIPv6(input) {\r\n const address = [0, 0, 0, 0, 0, 0, 0, 0];\r\n let pieceIndex = 0;\r\n let compress = null;\r\n let pointer = 0;\r\n\r\n input = punycode.ucs2.decode(input);\r\n\r\n if (input[pointer] === 58) {\r\n if (input[pointer + 1] !== 58) {\r\n return failure;\r\n }\r\n\r\n pointer += 2;\r\n ++pieceIndex;\r\n compress = pieceIndex;\r\n }\r\n\r\n while (pointer < input.length) {\r\n if (pieceIndex === 8) {\r\n return failure;\r\n }\r\n\r\n if (input[pointer] === 58) {\r\n if (compress !== null) {\r\n return failure;\r\n }\r\n ++pointer;\r\n ++pieceIndex;\r\n compress = pieceIndex;\r\n continue;\r\n }\r\n\r\n let value = 0;\r\n let length = 0;\r\n\r\n while (length < 4 && isASCIIHex(input[pointer])) {\r\n value = value * 0x10 + parseInt(at(input, pointer), 16);\r\n ++pointer;\r\n ++length;\r\n }\r\n\r\n if (input[pointer] === 46) {\r\n if (length === 0) {\r\n return failure;\r\n }\r\n\r\n pointer -= length;\r\n\r\n if (pieceIndex > 6) {\r\n return failure;\r\n }\r\n\r\n let numbersSeen = 0;\r\n\r\n while (input[pointer] !== undefined) {\r\n let ipv4Piece = null;\r\n\r\n if (numbersSeen > 0) {\r\n if (input[pointer] === 46 && numbersSeen < 4) {\r\n ++pointer;\r\n } else {\r\n return failure;\r\n }\r\n }\r\n\r\n if (!isASCIIDigit(input[pointer])) {\r\n return failure;\r\n }\r\n\r\n while (isASCIIDigit(input[pointer])) {\r\n const number = parseInt(at(input, pointer));\r\n if (ipv4Piece === null) {\r\n ipv4Piece = number;\r\n } else if (ipv4Piece === 0) {\r\n return failure;\r\n } else {\r\n ipv4Piece = ipv4Piece * 10 + number;\r\n }\r\n if (ipv4Piece > 255) {\r\n return failure;\r\n }\r\n ++pointer;\r\n }\r\n\r\n address[pieceIndex] = address[pieceIndex] * 0x100 + ipv4Piece;\r\n\r\n ++numbersSeen;\r\n\r\n if (numbersSeen === 2 || numbersSeen === 4) {\r\n ++pieceIndex;\r\n }\r\n }\r\n\r\n if (numbersSeen !== 4) {\r\n return failure;\r\n }\r\n\r\n break;\r\n } else if (input[pointer] === 58) {\r\n ++pointer;\r\n if (input[pointer] === undefined) {\r\n return failure;\r\n }\r\n } else if (input[pointer] !== undefined) {\r\n return failure;\r\n }\r\n\r\n address[pieceIndex] = value;\r\n ++pieceIndex;\r\n }\r\n\r\n if (compress !== null) {\r\n let swaps = pieceIndex - compress;\r\n pieceIndex = 7;\r\n while (pieceIndex !== 0 && swaps > 0) {\r\n const temp = address[compress + swaps - 1];\r\n address[compress + swaps - 1] = address[pieceIndex];\r\n address[pieceIndex] = temp;\r\n --pieceIndex;\r\n --swaps;\r\n }\r\n } else if (compress === null && pieceIndex !== 8) {\r\n return failure;\r\n }\r\n\r\n return address;\r\n}\r\n\r\nfunction serializeIPv6(address) {\r\n let output = \"\";\r\n const seqResult = findLongestZeroSequence(address);\r\n const compress = seqResult.idx;\r\n let ignore0 = false;\r\n\r\n for (let pieceIndex = 0; pieceIndex <= 7; ++pieceIndex) {\r\n if (ignore0 && address[pieceIndex] === 0) {\r\n continue;\r\n } else if (ignore0) {\r\n ignore0 = false;\r\n }\r\n\r\n if (compress === pieceIndex) {\r\n const separator = pieceIndex === 0 ? \"::\" : \":\";\r\n output += separator;\r\n ignore0 = true;\r\n continue;\r\n }\r\n\r\n output += address[pieceIndex].toString(16);\r\n\r\n if (pieceIndex !== 7) {\r\n output += \":\";\r\n }\r\n }\r\n\r\n return output;\r\n}\r\n\r\nfunction parseHost(input, isSpecialArg) {\r\n if (input[0] === \"[\") {\r\n if (input[input.length - 1] !== \"]\") {\r\n return failure;\r\n }\r\n\r\n return parseIPv6(input.substring(1, input.length - 1));\r\n }\r\n\r\n if (!isSpecialArg) {\r\n return parseOpaqueHost(input);\r\n }\r\n\r\n const domain = utf8PercentDecode(input);\r\n const asciiDomain = tr46.toASCII(domain, false, tr46.PROCESSING_OPTIONS.NONTRANSITIONAL, false);\r\n if (asciiDomain === null) {\r\n return failure;\r\n }\r\n\r\n if (containsForbiddenHostCodePoint(asciiDomain)) {\r\n return failure;\r\n }\r\n\r\n const ipv4Host = parseIPv4(asciiDomain);\r\n if (typeof ipv4Host === \"number\" || ipv4Host === failure) {\r\n return ipv4Host;\r\n }\r\n\r\n return asciiDomain;\r\n}\r\n\r\nfunction parseOpaqueHost(input) {\r\n if (containsForbiddenHostCodePointExcludingPercent(input)) {\r\n return failure;\r\n }\r\n\r\n let output = \"\";\r\n const decoded = punycode.ucs2.decode(input);\r\n for (let i = 0; i < decoded.length; ++i) {\r\n output += percentEncodeChar(decoded[i], isC0ControlPercentEncode);\r\n }\r\n return output;\r\n}\r\n\r\nfunction findLongestZeroSequence(arr) {\r\n let maxIdx = null;\r\n let maxLen = 1; // only find elements > 1\r\n let currStart = null;\r\n let currLen = 0;\r\n\r\n for (let i = 0; i < arr.length; ++i) {\r\n if (arr[i] !== 0) {\r\n if (currLen > maxLen) {\r\n maxIdx = currStart;\r\n maxLen = currLen;\r\n }\r\n\r\n currStart = null;\r\n currLen = 0;\r\n } else {\r\n if (currStart === null) {\r\n currStart = i;\r\n }\r\n ++currLen;\r\n }\r\n }\r\n\r\n // if trailing zeros\r\n if (currLen > maxLen) {\r\n maxIdx = currStart;\r\n maxLen = currLen;\r\n }\r\n\r\n return {\r\n idx: maxIdx,\r\n len: maxLen\r\n };\r\n}\r\n\r\nfunction serializeHost(host) {\r\n if (typeof host === \"number\") {\r\n return serializeIPv4(host);\r\n }\r\n\r\n // IPv6 serializer\r\n if (host instanceof Array) {\r\n return \"[\" + serializeIPv6(host) + \"]\";\r\n }\r\n\r\n return host;\r\n}\r\n\r\nfunction trimControlChars(url) {\r\n return url.replace(/^[\\u0000-\\u001F\\u0020]+|[\\u0000-\\u001F\\u0020]+$/g, \"\");\r\n}\r\n\r\nfunction trimTabAndNewline(url) {\r\n return url.replace(/\\u0009|\\u000A|\\u000D/g, \"\");\r\n}\r\n\r\nfunction shortenPath(url) {\r\n const path = url.path;\r\n if (path.length === 0) {\r\n return;\r\n }\r\n if (url.scheme === \"file\" && path.length === 1 && isNormalizedWindowsDriveLetter(path[0])) {\r\n return;\r\n }\r\n\r\n path.pop();\r\n}\r\n\r\nfunction includesCredentials(url) {\r\n return url.username !== \"\" || url.password !== \"\";\r\n}\r\n\r\nfunction cannotHaveAUsernamePasswordPort(url) {\r\n return url.host === null || url.host === \"\" || url.cannotBeABaseURL || url.scheme === \"file\";\r\n}\r\n\r\nfunction isNormalizedWindowsDriveLetter(string) {\r\n return /^[A-Za-z]:$/.test(string);\r\n}\r\n\r\nfunction URLStateMachine(input, base, encodingOverride, url, stateOverride) {\r\n this.pointer = 0;\r\n this.input = input;\r\n this.base = base || null;\r\n this.encodingOverride = encodingOverride || \"utf-8\";\r\n this.stateOverride = stateOverride;\r\n this.url = url;\r\n this.failure = false;\r\n this.parseError = false;\r\n\r\n if (!this.url) {\r\n this.url = {\r\n scheme: \"\",\r\n username: \"\",\r\n password: \"\",\r\n host: null,\r\n port: null,\r\n path: [],\r\n query: null,\r\n fragment: null,\r\n\r\n cannotBeABaseURL: false\r\n };\r\n\r\n const res = trimControlChars(this.input);\r\n if (res !== this.input) {\r\n this.parseError = true;\r\n }\r\n this.input = res;\r\n }\r\n\r\n const res = trimTabAndNewline(this.input);\r\n if (res !== this.input) {\r\n this.parseError = true;\r\n }\r\n this.input = res;\r\n\r\n this.state = stateOverride || \"scheme start\";\r\n\r\n this.buffer = \"\";\r\n this.atFlag = false;\r\n this.arrFlag = false;\r\n this.passwordTokenSeenFlag = false;\r\n\r\n this.input = punycode.ucs2.decode(this.input);\r\n\r\n for (; this.pointer <= this.input.length; ++this.pointer) {\r\n const c = this.input[this.pointer];\r\n const cStr = isNaN(c) ? undefined : String.fromCodePoint(c);\r\n\r\n // exec state machine\r\n const ret = this[\"parse \" + this.state](c, cStr);\r\n if (!ret) {\r\n break; // terminate algorithm\r\n } else if (ret === failure) {\r\n this.failure = true;\r\n break;\r\n }\r\n }\r\n}\r\n\r\nURLStateMachine.prototype[\"parse scheme start\"] = function parseSchemeStart(c, cStr) {\r\n if (isASCIIAlpha(c)) {\r\n this.buffer += cStr.toLowerCase();\r\n this.state = \"scheme\";\r\n } else if (!this.stateOverride) {\r\n this.state = \"no scheme\";\r\n --this.pointer;\r\n } else {\r\n this.parseError = true;\r\n return failure;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse scheme\"] = function parseScheme(c, cStr) {\r\n if (isASCIIAlphanumeric(c) || c === 43 || c === 45 || c === 46) {\r\n this.buffer += cStr.toLowerCase();\r\n } else if (c === 58) {\r\n if (this.stateOverride) {\r\n if (isSpecial(this.url) && !isSpecialScheme(this.buffer)) {\r\n return false;\r\n }\r\n\r\n if (!isSpecial(this.url) && isSpecialScheme(this.buffer)) {\r\n return false;\r\n }\r\n\r\n if ((includesCredentials(this.url) || this.url.port !== null) && this.buffer === \"file\") {\r\n return false;\r\n }\r\n\r\n if (this.url.scheme === \"file\" && (this.url.host === \"\" || this.url.host === null)) {\r\n return false;\r\n }\r\n }\r\n this.url.scheme = this.buffer;\r\n this.buffer = \"\";\r\n if (this.stateOverride) {\r\n return false;\r\n }\r\n if (this.url.scheme === \"file\") {\r\n if (this.input[this.pointer + 1] !== 47 || this.input[this.pointer + 2] !== 47) {\r\n this.parseError = true;\r\n }\r\n this.state = \"file\";\r\n } else if (isSpecial(this.url) && this.base !== null && this.base.scheme === this.url.scheme) {\r\n this.state = \"special relative or authority\";\r\n } else if (isSpecial(this.url)) {\r\n this.state = \"special authority slashes\";\r\n } else if (this.input[this.pointer + 1] === 47) {\r\n this.state = \"path or authority\";\r\n ++this.pointer;\r\n } else {\r\n this.url.cannotBeABaseURL = true;\r\n this.url.path.push(\"\");\r\n this.state = \"cannot-be-a-base-URL path\";\r\n }\r\n } else if (!this.stateOverride) {\r\n this.buffer = \"\";\r\n this.state = \"no scheme\";\r\n this.pointer = -1;\r\n } else {\r\n this.parseError = true;\r\n return failure;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse no scheme\"] = function parseNoScheme(c) {\r\n if (this.base === null || (this.base.cannotBeABaseURL && c !== 35)) {\r\n return failure;\r\n } else if (this.base.cannotBeABaseURL && c === 35) {\r\n this.url.scheme = this.base.scheme;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = this.base.query;\r\n this.url.fragment = \"\";\r\n this.url.cannotBeABaseURL = true;\r\n this.state = \"fragment\";\r\n } else if (this.base.scheme === \"file\") {\r\n this.state = \"file\";\r\n --this.pointer;\r\n } else {\r\n this.state = \"relative\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse special relative or authority\"] = function parseSpecialRelativeOrAuthority(c) {\r\n if (c === 47 && this.input[this.pointer + 1] === 47) {\r\n this.state = \"special authority ignore slashes\";\r\n ++this.pointer;\r\n } else {\r\n this.parseError = true;\r\n this.state = \"relative\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse path or authority\"] = function parsePathOrAuthority(c) {\r\n if (c === 47) {\r\n this.state = \"authority\";\r\n } else {\r\n this.state = \"path\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse relative\"] = function parseRelative(c) {\r\n this.url.scheme = this.base.scheme;\r\n if (isNaN(c)) {\r\n this.url.username = this.base.username;\r\n this.url.password = this.base.password;\r\n this.url.host = this.base.host;\r\n this.url.port = this.base.port;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = this.base.query;\r\n } else if (c === 47) {\r\n this.state = \"relative slash\";\r\n } else if (c === 63) {\r\n this.url.username = this.base.username;\r\n this.url.password = this.base.password;\r\n this.url.host = this.base.host;\r\n this.url.port = this.base.port;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = \"\";\r\n this.state = \"query\";\r\n } else if (c === 35) {\r\n this.url.username = this.base.username;\r\n this.url.password = this.base.password;\r\n this.url.host = this.base.host;\r\n this.url.port = this.base.port;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = this.base.query;\r\n this.url.fragment = \"\";\r\n this.state = \"fragment\";\r\n } else if (isSpecial(this.url) && c === 92) {\r\n this.parseError = true;\r\n this.state = \"relative slash\";\r\n } else {\r\n this.url.username = this.base.username;\r\n this.url.password = this.base.password;\r\n this.url.host = this.base.host;\r\n this.url.port = this.base.port;\r\n this.url.path = this.base.path.slice(0, this.base.path.length - 1);\r\n\r\n this.state = \"path\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse relative slash\"] = function parseRelativeSlash(c) {\r\n if (isSpecial(this.url) && (c === 47 || c === 92)) {\r\n if (c === 92) {\r\n this.parseError = true;\r\n }\r\n this.state = \"special authority ignore slashes\";\r\n } else if (c === 47) {\r\n this.state = \"authority\";\r\n } else {\r\n this.url.username = this.base.username;\r\n this.url.password = this.base.password;\r\n this.url.host = this.base.host;\r\n this.url.port = this.base.port;\r\n this.state = \"path\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse special authority slashes\"] = function parseSpecialAuthoritySlashes(c) {\r\n if (c === 47 && this.input[this.pointer + 1] === 47) {\r\n this.state = \"special authority ignore slashes\";\r\n ++this.pointer;\r\n } else {\r\n this.parseError = true;\r\n this.state = \"special authority ignore slashes\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse special authority ignore slashes\"] = function parseSpecialAuthorityIgnoreSlashes(c) {\r\n if (c !== 47 && c !== 92) {\r\n this.state = \"authority\";\r\n --this.pointer;\r\n } else {\r\n this.parseError = true;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse authority\"] = function parseAuthority(c, cStr) {\r\n if (c === 64) {\r\n this.parseError = true;\r\n if (this.atFlag) {\r\n this.buffer = \"%40\" + this.buffer;\r\n }\r\n this.atFlag = true;\r\n\r\n // careful, this is based on buffer and has its own pointer (this.pointer != pointer) and inner chars\r\n const len = countSymbols(this.buffer);\r\n for (let pointer = 0; pointer < len; ++pointer) {\r\n const codePoint = this.buffer.codePointAt(pointer);\r\n\r\n if (codePoint === 58 && !this.passwordTokenSeenFlag) {\r\n this.passwordTokenSeenFlag = true;\r\n continue;\r\n }\r\n const encodedCodePoints = percentEncodeChar(codePoint, isUserinfoPercentEncode);\r\n if (this.passwordTokenSeenFlag) {\r\n this.url.password += encodedCodePoints;\r\n } else {\r\n this.url.username += encodedCodePoints;\r\n }\r\n }\r\n this.buffer = \"\";\r\n } else if (isNaN(c) || c === 47 || c === 63 || c === 35 ||\r\n (isSpecial(this.url) && c === 92)) {\r\n if (this.atFlag && this.buffer === \"\") {\r\n this.parseError = true;\r\n return failure;\r\n }\r\n this.pointer -= countSymbols(this.buffer) + 1;\r\n this.buffer = \"\";\r\n this.state = \"host\";\r\n } else {\r\n this.buffer += cStr;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse hostname\"] =\r\nURLStateMachine.prototype[\"parse host\"] = function parseHostName(c, cStr) {\r\n if (this.stateOverride && this.url.scheme === \"file\") {\r\n --this.pointer;\r\n this.state = \"file host\";\r\n } else if (c === 58 && !this.arrFlag) {\r\n if (this.buffer === \"\") {\r\n this.parseError = true;\r\n return failure;\r\n }\r\n\r\n const host = parseHost(this.buffer, isSpecial(this.url));\r\n if (host === failure) {\r\n return failure;\r\n }\r\n\r\n this.url.host = host;\r\n this.buffer = \"\";\r\n this.state = \"port\";\r\n if (this.stateOverride === \"hostname\") {\r\n return false;\r\n }\r\n } else if (isNaN(c) || c === 47 || c === 63 || c === 35 ||\r\n (isSpecial(this.url) && c === 92)) {\r\n --this.pointer;\r\n if (isSpecial(this.url) && this.buffer === \"\") {\r\n this.parseError = true;\r\n return failure;\r\n } else if (this.stateOverride && this.buffer === \"\" &&\r\n (includesCredentials(this.url) || this.url.port !== null)) {\r\n this.parseError = true;\r\n return false;\r\n }\r\n\r\n const host = parseHost(this.buffer, isSpecial(this.url));\r\n if (host === failure) {\r\n return failure;\r\n }\r\n\r\n this.url.host = host;\r\n this.buffer = \"\";\r\n this.state = \"path start\";\r\n if (this.stateOverride) {\r\n return false;\r\n }\r\n } else {\r\n if (c === 91) {\r\n this.arrFlag = true;\r\n } else if (c === 93) {\r\n this.arrFlag = false;\r\n }\r\n this.buffer += cStr;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse port\"] = function parsePort(c, cStr) {\r\n if (isASCIIDigit(c)) {\r\n this.buffer += cStr;\r\n } else if (isNaN(c) || c === 47 || c === 63 || c === 35 ||\r\n (isSpecial(this.url) && c === 92) ||\r\n this.stateOverride) {\r\n if (this.buffer !== \"\") {\r\n const port = parseInt(this.buffer);\r\n if (port > Math.pow(2, 16) - 1) {\r\n this.parseError = true;\r\n return failure;\r\n }\r\n this.url.port = port === defaultPort(this.url.scheme) ? null : port;\r\n this.buffer = \"\";\r\n }\r\n if (this.stateOverride) {\r\n return false;\r\n }\r\n this.state = \"path start\";\r\n --this.pointer;\r\n } else {\r\n this.parseError = true;\r\n return failure;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nconst fileOtherwiseCodePoints = new Set([47, 92, 63, 35]);\r\n\r\nURLStateMachine.prototype[\"parse file\"] = function parseFile(c) {\r\n this.url.scheme = \"file\";\r\n\r\n if (c === 47 || c === 92) {\r\n if (c === 92) {\r\n this.parseError = true;\r\n }\r\n this.state = \"file slash\";\r\n } else if (this.base !== null && this.base.scheme === \"file\") {\r\n if (isNaN(c)) {\r\n this.url.host = this.base.host;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = this.base.query;\r\n } else if (c === 63) {\r\n this.url.host = this.base.host;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = \"\";\r\n this.state = \"query\";\r\n } else if (c === 35) {\r\n this.url.host = this.base.host;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = this.base.query;\r\n this.url.fragment = \"\";\r\n this.state = \"fragment\";\r\n } else {\r\n if (this.input.length - this.pointer - 1 === 0 || // remaining consists of 0 code points\r\n !isWindowsDriveLetterCodePoints(c, this.input[this.pointer + 1]) ||\r\n (this.input.length - this.pointer - 1 >= 2 && // remaining has at least 2 code points\r\n !fileOtherwiseCodePoints.has(this.input[this.pointer + 2]))) {\r\n this.url.host = this.base.host;\r\n this.url.path = this.base.path.slice();\r\n shortenPath(this.url);\r\n } else {\r\n this.parseError = true;\r\n }\r\n\r\n this.state = \"path\";\r\n --this.pointer;\r\n }\r\n } else {\r\n this.state = \"path\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse file slash\"] = function parseFileSlash(c) {\r\n if (c === 47 || c === 92) {\r\n if (c === 92) {\r\n this.parseError = true;\r\n }\r\n this.state = \"file host\";\r\n } else {\r\n if (this.base !== null && this.base.scheme === \"file\") {\r\n if (isNormalizedWindowsDriveLetterString(this.base.path[0])) {\r\n this.url.path.push(this.base.path[0]);\r\n } else {\r\n this.url.host = this.base.host;\r\n }\r\n }\r\n this.state = \"path\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse file host\"] = function parseFileHost(c, cStr) {\r\n if (isNaN(c) || c === 47 || c === 92 || c === 63 || c === 35) {\r\n --this.pointer;\r\n if (!this.stateOverride && isWindowsDriveLetterString(this.buffer)) {\r\n this.parseError = true;\r\n this.state = \"path\";\r\n } else if (this.buffer === \"\") {\r\n this.url.host = \"\";\r\n if (this.stateOverride) {\r\n return false;\r\n }\r\n this.state = \"path start\";\r\n } else {\r\n let host = parseHost(this.buffer, isSpecial(this.url));\r\n if (host === failure) {\r\n return failure;\r\n }\r\n if (host === \"localhost\") {\r\n host = \"\";\r\n }\r\n this.url.host = host;\r\n\r\n if (this.stateOverride) {\r\n return false;\r\n }\r\n\r\n this.buffer = \"\";\r\n this.state = \"path start\";\r\n }\r\n } else {\r\n this.buffer += cStr;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse path start\"] = function parsePathStart(c) {\r\n if (isSpecial(this.url)) {\r\n if (c === 92) {\r\n this.parseError = true;\r\n }\r\n this.state = \"path\";\r\n\r\n if (c !== 47 && c !== 92) {\r\n --this.pointer;\r\n }\r\n } else if (!this.stateOverride && c === 63) {\r\n this.url.query = \"\";\r\n this.state = \"query\";\r\n } else if (!this.stateOverride && c === 35) {\r\n this.url.fragment = \"\";\r\n this.state = \"fragment\";\r\n } else if (c !== undefined) {\r\n this.state = \"path\";\r\n if (c !== 47) {\r\n --this.pointer;\r\n }\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse path\"] = function parsePath(c) {\r\n if (isNaN(c) || c === 47 || (isSpecial(this.url) && c === 92) ||\r\n (!this.stateOverride && (c === 63 || c === 35))) {\r\n if (isSpecial(this.url) && c === 92) {\r\n this.parseError = true;\r\n }\r\n\r\n if (isDoubleDot(this.buffer)) {\r\n shortenPath(this.url);\r\n if (c !== 47 && !(isSpecial(this.url) && c === 92)) {\r\n this.url.path.push(\"\");\r\n }\r\n } else if (isSingleDot(this.buffer) && c !== 47 &&\r\n !(isSpecial(this.url) && c === 92)) {\r\n this.url.path.push(\"\");\r\n } else if (!isSingleDot(this.buffer)) {\r\n if (this.url.scheme === \"file\" && this.url.path.length === 0 && isWindowsDriveLetterString(this.buffer)) {\r\n if (this.url.host !== \"\" && this.url.host !== null) {\r\n this.parseError = true;\r\n this.url.host = \"\";\r\n }\r\n this.buffer = this.buffer[0] + \":\";\r\n }\r\n this.url.path.push(this.buffer);\r\n }\r\n this.buffer = \"\";\r\n if (this.url.scheme === \"file\" && (c === undefined || c === 63 || c === 35)) {\r\n while (this.url.path.length > 1 && this.url.path[0] === \"\") {\r\n this.parseError = true;\r\n this.url.path.shift();\r\n }\r\n }\r\n if (c === 63) {\r\n this.url.query = \"\";\r\n this.state = \"query\";\r\n }\r\n if (c === 35) {\r\n this.url.fragment = \"\";\r\n this.state = \"fragment\";\r\n }\r\n } else {\r\n // TODO: If c is not a URL code point and not \"%\", parse error.\r\n\r\n if (c === 37 &&\r\n (!isASCIIHex(this.input[this.pointer + 1]) ||\r\n !isASCIIHex(this.input[this.pointer + 2]))) {\r\n this.parseError = true;\r\n }\r\n\r\n this.buffer += percentEncodeChar(c, isPathPercentEncode);\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse cannot-be-a-base-URL path\"] = function parseCannotBeABaseURLPath(c) {\r\n if (c === 63) {\r\n this.url.query = \"\";\r\n this.state = \"query\";\r\n } else if (c === 35) {\r\n this.url.fragment = \"\";\r\n this.state = \"fragment\";\r\n } else {\r\n // TODO: Add: not a URL code point\r\n if (!isNaN(c) && c !== 37) {\r\n this.parseError = true;\r\n }\r\n\r\n if (c === 37 &&\r\n (!isASCIIHex(this.input[this.pointer + 1]) ||\r\n !isASCIIHex(this.input[this.pointer + 2]))) {\r\n this.parseError = true;\r\n }\r\n\r\n if (!isNaN(c)) {\r\n this.url.path[0] = this.url.path[0] + percentEncodeChar(c, isC0ControlPercentEncode);\r\n }\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse query\"] = function parseQuery(c, cStr) {\r\n if (isNaN(c) || (!this.stateOverride && c === 35)) {\r\n if (!isSpecial(this.url) || this.url.scheme === \"ws\" || this.url.scheme === \"wss\") {\r\n this.encodingOverride = \"utf-8\";\r\n }\r\n\r\n const buffer = new Buffer(this.buffer); // TODO: Use encoding override instead\r\n for (let i = 0; i < buffer.length; ++i) {\r\n if (buffer[i] < 0x21 || buffer[i] > 0x7E || buffer[i] === 0x22 || buffer[i] === 0x23 ||\r\n buffer[i] === 0x3C || buffer[i] === 0x3E) {\r\n this.url.query += percentEncode(buffer[i]);\r\n } else {\r\n this.url.query += String.fromCodePoint(buffer[i]);\r\n }\r\n }\r\n\r\n this.buffer = \"\";\r\n if (c === 35) {\r\n this.url.fragment = \"\";\r\n this.state = \"fragment\";\r\n }\r\n } else {\r\n // TODO: If c is not a URL code point and not \"%\", parse error.\r\n if (c === 37 &&\r\n (!isASCIIHex(this.input[this.pointer + 1]) ||\r\n !isASCIIHex(this.input[this.pointer + 2]))) {\r\n this.parseError = true;\r\n }\r\n\r\n this.buffer += cStr;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse fragment\"] = function parseFragment(c) {\r\n if (isNaN(c)) { // do nothing\r\n } else if (c === 0x0) {\r\n this.parseError = true;\r\n } else {\r\n // TODO: If c is not a URL code point and not \"%\", parse error.\r\n if (c === 37 &&\r\n (!isASCIIHex(this.input[this.pointer + 1]) ||\r\n !isASCIIHex(this.input[this.pointer + 2]))) {\r\n this.parseError = true;\r\n }\r\n\r\n this.url.fragment += percentEncodeChar(c, isC0ControlPercentEncode);\r\n }\r\n\r\n return true;\r\n};\r\n\r\nfunction serializeURL(url, excludeFragment) {\r\n let output = url.scheme + \":\";\r\n if (url.host !== null) {\r\n output += \"//\";\r\n\r\n if (url.username !== \"\" || url.password !== \"\") {\r\n output += url.username;\r\n if (url.password !== \"\") {\r\n output += \":\" + url.password;\r\n }\r\n output += \"@\";\r\n }\r\n\r\n output += serializeHost(url.host);\r\n\r\n if (url.port !== null) {\r\n output += \":\" + url.port;\r\n }\r\n } else if (url.host === null && url.scheme === \"file\") {\r\n output += \"//\";\r\n }\r\n\r\n if (url.cannotBeABaseURL) {\r\n output += url.path[0];\r\n } else {\r\n for (const string of url.path) {\r\n output += \"/\" + string;\r\n }\r\n }\r\n\r\n if (url.query !== null) {\r\n output += \"?\" + url.query;\r\n }\r\n\r\n if (!excludeFragment && url.fragment !== null) {\r\n output += \"#\" + url.fragment;\r\n }\r\n\r\n return output;\r\n}\r\n\r\nfunction serializeOrigin(tuple) {\r\n let result = tuple.scheme + \"://\";\r\n result += serializeHost(tuple.host);\r\n\r\n if (tuple.port !== null) {\r\n result += \":\" + tuple.port;\r\n }\r\n\r\n return result;\r\n}\r\n\r\nmodule.exports.serializeURL = serializeURL;\r\n\r\nmodule.exports.serializeURLOrigin = function (url) {\r\n // https://url.spec.whatwg.org/#concept-url-origin\r\n switch (url.scheme) {\r\n case \"blob\":\r\n try {\r\n return module.exports.serializeURLOrigin(module.exports.parseURL(url.path[0]));\r\n } catch (e) {\r\n // serializing an opaque origin returns \"null\"\r\n return \"null\";\r\n }\r\n case \"ftp\":\r\n case \"gopher\":\r\n case \"http\":\r\n case \"https\":\r\n case \"ws\":\r\n case \"wss\":\r\n return serializeOrigin({\r\n scheme: url.scheme,\r\n host: url.host,\r\n port: url.port\r\n });\r\n case \"file\":\r\n // spec says \"exercise to the reader\", chrome says \"file://\"\r\n return \"file://\";\r\n default:\r\n // serializing an opaque origin returns \"null\"\r\n return \"null\";\r\n }\r\n};\r\n\r\nmodule.exports.basicURLParse = function (input, options) {\r\n if (options === undefined) {\r\n options = {};\r\n }\r\n\r\n const usm = new URLStateMachine(input, options.baseURL, options.encodingOverride, options.url, options.stateOverride);\r\n if (usm.failure) {\r\n return \"failure\";\r\n }\r\n\r\n return usm.url;\r\n};\r\n\r\nmodule.exports.setTheUsername = function (url, username) {\r\n url.username = \"\";\r\n const decoded = punycode.ucs2.decode(username);\r\n for (let i = 0; i < decoded.length; ++i) {\r\n url.username += percentEncodeChar(decoded[i], isUserinfoPercentEncode);\r\n }\r\n};\r\n\r\nmodule.exports.setThePassword = function (url, password) {\r\n url.password = \"\";\r\n const decoded = punycode.ucs2.decode(password);\r\n for (let i = 0; i < decoded.length; ++i) {\r\n url.password += percentEncodeChar(decoded[i], isUserinfoPercentEncode);\r\n }\r\n};\r\n\r\nmodule.exports.serializeHost = serializeHost;\r\n\r\nmodule.exports.cannotHaveAUsernamePasswordPort = cannotHaveAUsernamePasswordPort;\r\n\r\nmodule.exports.serializeInteger = function (integer) {\r\n return String(integer);\r\n};\r\n\r\nmodule.exports.parseURL = function (input, options) {\r\n if (options === undefined) {\r\n options = {};\r\n }\r\n\r\n // We don't handle blobs, so this just delegates:\r\n return module.exports.basicURLParse(input, { baseURL: options.baseURL, encodingOverride: options.encodingOverride });\r\n};\r\n", "\"use strict\";\nconst usm = require(\"./url-state-machine\");\n\nexports.implementation = class URLImpl {\n constructor(constructorArgs) {\n const url = constructorArgs[0];\n const base = constructorArgs[1];\n\n let parsedBase = null;\n if (base !== undefined) {\n parsedBase = usm.basicURLParse(base);\n if (parsedBase === \"failure\") {\n throw new TypeError(\"Invalid base URL\");\n }\n }\n\n const parsedURL = usm.basicURLParse(url, { baseURL: parsedBase });\n if (parsedURL === \"failure\") {\n throw new TypeError(\"Invalid URL\");\n }\n\n this._url = parsedURL;\n\n // TODO: query stuff\n }\n\n get href() {\n return usm.serializeURL(this._url);\n }\n\n set href(v) {\n const parsedURL = usm.basicURLParse(v);\n if (parsedURL === \"failure\") {\n throw new TypeError(\"Invalid URL\");\n }\n\n this._url = parsedURL;\n }\n\n get origin() {\n return usm.serializeURLOrigin(this._url);\n }\n\n get protocol() {\n return this._url.scheme + \":\";\n }\n\n set protocol(v) {\n usm.basicURLParse(v + \":\", { url: this._url, stateOverride: \"scheme start\" });\n }\n\n get username() {\n return this._url.username;\n }\n\n set username(v) {\n if (usm.cannotHaveAUsernamePasswordPort(this._url)) {\n return;\n }\n\n usm.setTheUsername(this._url, v);\n }\n\n get password() {\n return this._url.password;\n }\n\n set password(v) {\n if (usm.cannotHaveAUsernamePasswordPort(this._url)) {\n return;\n }\n\n usm.setThePassword(this._url, v);\n }\n\n get host() {\n const url = this._url;\n\n if (url.host === null) {\n return \"\";\n }\n\n if (url.port === null) {\n return usm.serializeHost(url.host);\n }\n\n return usm.serializeHost(url.host) + \":\" + usm.serializeInteger(url.port);\n }\n\n set host(v) {\n if (this._url.cannotBeABaseURL) {\n return;\n }\n\n usm.basicURLParse(v, { url: this._url, stateOverride: \"host\" });\n }\n\n get hostname() {\n if (this._url.host === null) {\n return \"\";\n }\n\n return usm.serializeHost(this._url.host);\n }\n\n set hostname(v) {\n if (this._url.cannotBeABaseURL) {\n return;\n }\n\n usm.basicURLParse(v, { url: this._url, stateOverride: \"hostname\" });\n }\n\n get port() {\n if (this._url.port === null) {\n return \"\";\n }\n\n return usm.serializeInteger(this._url.port);\n }\n\n set port(v) {\n if (usm.cannotHaveAUsernamePasswordPort(this._url)) {\n return;\n }\n\n if (v === \"\") {\n this._url.port = null;\n } else {\n usm.basicURLParse(v, { url: this._url, stateOverride: \"port\" });\n }\n }\n\n get pathname() {\n if (this._url.cannotBeABaseURL) {\n return this._url.path[0];\n }\n\n if (this._url.path.length === 0) {\n return \"\";\n }\n\n return \"/\" + this._url.path.join(\"/\");\n }\n\n set pathname(v) {\n if (this._url.cannotBeABaseURL) {\n return;\n }\n\n this._url.path = [];\n usm.basicURLParse(v, { url: this._url, stateOverride: \"path start\" });\n }\n\n get search() {\n if (this._url.query === null || this._url.query === \"\") {\n return \"\";\n }\n\n return \"?\" + this._url.query;\n }\n\n set search(v) {\n // TODO: query stuff\n\n const url = this._url;\n\n if (v === \"\") {\n url.query = null;\n return;\n }\n\n const input = v[0] === \"?\" ? v.substring(1) : v;\n url.query = \"\";\n usm.basicURLParse(input, { url, stateOverride: \"query\" });\n }\n\n get hash() {\n if (this._url.fragment === null || this._url.fragment === \"\") {\n return \"\";\n }\n\n return \"#\" + this._url.fragment;\n }\n\n set hash(v) {\n if (v === \"\") {\n this._url.fragment = null;\n return;\n }\n\n const input = v[0] === \"#\" ? v.substring(1) : v;\n this._url.fragment = \"\";\n usm.basicURLParse(input, { url: this._url, stateOverride: \"fragment\" });\n }\n\n toJSON() {\n return this.href;\n }\n};\n", "\"use strict\";\n\nconst conversions = require(\"webidl-conversions\");\nconst utils = require(\"./utils.js\");\nconst Impl = require(\".//URL-impl.js\");\n\nconst impl = utils.implSymbol;\n\nfunction URL(url) {\n if (!this || this[impl] || !(this instanceof URL)) {\n throw new TypeError(\"Failed to construct 'URL': Please use the 'new' operator, this DOM object constructor cannot be called as a function.\");\n }\n if (arguments.length < 1) {\n throw new TypeError(\"Failed to construct 'URL': 1 argument required, but only \" + arguments.length + \" present.\");\n }\n const args = [];\n for (let i = 0; i < arguments.length && i < 2; ++i) {\n args[i] = arguments[i];\n }\n args[0] = conversions[\"USVString\"](args[0]);\n if (args[1] !== undefined) {\n args[1] = conversions[\"USVString\"](args[1]);\n }\n\n module.exports.setup(this, args);\n}\n\nURL.prototype.toJSON = function toJSON() {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n const args = [];\n for (let i = 0; i < arguments.length && i < 0; ++i) {\n args[i] = arguments[i];\n }\n return this[impl].toJSON.apply(this[impl], args);\n};\nObject.defineProperty(URL.prototype, \"href\", {\n get() {\n return this[impl].href;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].href = V;\n },\n enumerable: true,\n configurable: true\n});\n\nURL.prototype.toString = function () {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n return this.href;\n};\n\nObject.defineProperty(URL.prototype, \"origin\", {\n get() {\n return this[impl].origin;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"protocol\", {\n get() {\n return this[impl].protocol;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].protocol = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"username\", {\n get() {\n return this[impl].username;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].username = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"password\", {\n get() {\n return this[impl].password;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].password = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"host\", {\n get() {\n return this[impl].host;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].host = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"hostname\", {\n get() {\n return this[impl].hostname;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].hostname = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"port\", {\n get() {\n return this[impl].port;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].port = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"pathname\", {\n get() {\n return this[impl].pathname;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].pathname = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"search\", {\n get() {\n return this[impl].search;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].search = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"hash\", {\n get() {\n return this[impl].hash;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].hash = V;\n },\n enumerable: true,\n configurable: true\n});\n\n\nmodule.exports = {\n is(obj) {\n return !!obj && obj[impl] instanceof Impl.implementation;\n },\n create(constructorArgs, privateData) {\n let obj = Object.create(URL.prototype);\n this.setup(obj, constructorArgs, privateData);\n return obj;\n },\n setup(obj, constructorArgs, privateData) {\n if (!privateData) privateData = {};\n privateData.wrapper = obj;\n\n obj[impl] = new Impl.implementation(constructorArgs, privateData);\n obj[impl][utils.wrapperSymbol] = obj;\n },\n interface: URL,\n expose: {\n Window: { URL: URL },\n Worker: { URL: URL }\n }\n};\n\n", "\"use strict\";\n\nexports.URL = require(\"./URL\").interface;\nexports.serializeURL = require(\"./url-state-machine\").serializeURL;\nexports.serializeURLOrigin = require(\"./url-state-machine\").serializeURLOrigin;\nexports.basicURLParse = require(\"./url-state-machine\").basicURLParse;\nexports.setTheUsername = require(\"./url-state-machine\").setTheUsername;\nexports.setThePassword = require(\"./url-state-machine\").setThePassword;\nexports.serializeHost = require(\"./url-state-machine\").serializeHost;\nexports.serializeInteger = require(\"./url-state-machine\").serializeInteger;\nexports.parseURL = require(\"./url-state-machine\").parseURL;\n", "'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nfunction _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }\n\nvar Stream = _interopDefault(require('stream'));\nvar http = _interopDefault(require('http'));\nvar Url = _interopDefault(require('url'));\nvar whatwgUrl = _interopDefault(require('whatwg-url'));\nvar https = _interopDefault(require('https'));\nvar zlib = _interopDefault(require('zlib'));\n\n// Based on https://github.com/tmpvar/jsdom/blob/aa85b2abf07766ff7bf5c1f6daafb3726f2f2db5/lib/jsdom/living/blob.js\n\n// fix for \"Readable\" isn't a named export issue\nconst Readable = Stream.Readable;\n\nconst BUFFER = Symbol('buffer');\nconst TYPE = Symbol('type');\n\nclass Blob {\n\tconstructor() {\n\t\tthis[TYPE] = '';\n\n\t\tconst blobParts = arguments[0];\n\t\tconst options = arguments[1];\n\n\t\tconst buffers = [];\n\t\tlet size = 0;\n\n\t\tif (blobParts) {\n\t\t\tconst a = blobParts;\n\t\t\tconst length = Number(a.length);\n\t\t\tfor (let i = 0; i < length; i++) {\n\t\t\t\tconst element = a[i];\n\t\t\t\tlet buffer;\n\t\t\t\tif (element instanceof Buffer) {\n\t\t\t\t\tbuffer = element;\n\t\t\t\t} else if (ArrayBuffer.isView(element)) {\n\t\t\t\t\tbuffer = Buffer.from(element.buffer, element.byteOffset, element.byteLength);\n\t\t\t\t} else if (element instanceof ArrayBuffer) {\n\t\t\t\t\tbuffer = Buffer.from(element);\n\t\t\t\t} else if (element instanceof Blob) {\n\t\t\t\t\tbuffer = element[BUFFER];\n\t\t\t\t} else {\n\t\t\t\t\tbuffer = Buffer.from(typeof element === 'string' ? element : String(element));\n\t\t\t\t}\n\t\t\t\tsize += buffer.length;\n\t\t\t\tbuffers.push(buffer);\n\t\t\t}\n\t\t}\n\n\t\tthis[BUFFER] = Buffer.concat(buffers);\n\n\t\tlet type = options && options.type !== undefined && String(options.type).toLowerCase();\n\t\tif (type && !/[^\\u0020-\\u007E]/.test(type)) {\n\t\t\tthis[TYPE] = type;\n\t\t}\n\t}\n\tget size() {\n\t\treturn this[BUFFER].length;\n\t}\n\tget type() {\n\t\treturn this[TYPE];\n\t}\n\ttext() {\n\t\treturn Promise.resolve(this[BUFFER].toString());\n\t}\n\tarrayBuffer() {\n\t\tconst buf = this[BUFFER];\n\t\tconst ab = buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength);\n\t\treturn Promise.resolve(ab);\n\t}\n\tstream() {\n\t\tconst readable = new Readable();\n\t\treadable._read = function () {};\n\t\treadable.push(this[BUFFER]);\n\t\treadable.push(null);\n\t\treturn readable;\n\t}\n\ttoString() {\n\t\treturn '[object Blob]';\n\t}\n\tslice() {\n\t\tconst size = this.size;\n\n\t\tconst start = arguments[0];\n\t\tconst end = arguments[1];\n\t\tlet relativeStart, relativeEnd;\n\t\tif (start === undefined) {\n\t\t\trelativeStart = 0;\n\t\t} else if (start < 0) {\n\t\t\trelativeStart = Math.max(size + start, 0);\n\t\t} else {\n\t\t\trelativeStart = Math.min(start, size);\n\t\t}\n\t\tif (end === undefined) {\n\t\t\trelativeEnd = size;\n\t\t} else if (end < 0) {\n\t\t\trelativeEnd = Math.max(size + end, 0);\n\t\t} else {\n\t\t\trelativeEnd = Math.min(end, size);\n\t\t}\n\t\tconst span = Math.max(relativeEnd - relativeStart, 0);\n\n\t\tconst buffer = this[BUFFER];\n\t\tconst slicedBuffer = buffer.slice(relativeStart, relativeStart + span);\n\t\tconst blob = new Blob([], { type: arguments[2] });\n\t\tblob[BUFFER] = slicedBuffer;\n\t\treturn blob;\n\t}\n}\n\nObject.defineProperties(Blob.prototype, {\n\tsize: { enumerable: true },\n\ttype: { enumerable: true },\n\tslice: { enumerable: true }\n});\n\nObject.defineProperty(Blob.prototype, Symbol.toStringTag, {\n\tvalue: 'Blob',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\n/**\n * fetch-error.js\n *\n * FetchError interface for operational errors\n */\n\n/**\n * Create FetchError instance\n *\n * @param String message Error message for human\n * @param String type Error type for machine\n * @param String systemError For Node.js system error\n * @return FetchError\n */\nfunction FetchError(message, type, systemError) {\n Error.call(this, message);\n\n this.message = message;\n this.type = type;\n\n // when err.type is `system`, err.code contains system error code\n if (systemError) {\n this.code = this.errno = systemError.code;\n }\n\n // hide custom error implementation details from end-users\n Error.captureStackTrace(this, this.constructor);\n}\n\nFetchError.prototype = Object.create(Error.prototype);\nFetchError.prototype.constructor = FetchError;\nFetchError.prototype.name = 'FetchError';\n\nlet convert;\ntry {\n\tconvert = require('encoding').convert;\n} catch (e) {}\n\nconst INTERNALS = Symbol('Body internals');\n\n// fix an issue where \"PassThrough\" isn't a named export for node <10\nconst PassThrough = Stream.PassThrough;\n\n/**\n * Body mixin\n *\n * Ref: https://fetch.spec.whatwg.org/#body\n *\n * @param Stream body Readable stream\n * @param Object opts Response options\n * @return Void\n */\nfunction Body(body) {\n\tvar _this = this;\n\n\tvar _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n\t _ref$size = _ref.size;\n\n\tlet size = _ref$size === undefined ? 0 : _ref$size;\n\tvar _ref$timeout = _ref.timeout;\n\tlet timeout = _ref$timeout === undefined ? 0 : _ref$timeout;\n\n\tif (body == null) {\n\t\t// body is undefined or null\n\t\tbody = null;\n\t} else if (isURLSearchParams(body)) {\n\t\t// body is a URLSearchParams\n\t\tbody = Buffer.from(body.toString());\n\t} else if (isBlob(body)) ; else if (Buffer.isBuffer(body)) ; else if (Object.prototype.toString.call(body) === '[object ArrayBuffer]') {\n\t\t// body is ArrayBuffer\n\t\tbody = Buffer.from(body);\n\t} else if (ArrayBuffer.isView(body)) {\n\t\t// body is ArrayBufferView\n\t\tbody = Buffer.from(body.buffer, body.byteOffset, body.byteLength);\n\t} else if (body instanceof Stream) ; else {\n\t\t// none of the above\n\t\t// coerce to string then buffer\n\t\tbody = Buffer.from(String(body));\n\t}\n\tthis[INTERNALS] = {\n\t\tbody,\n\t\tdisturbed: false,\n\t\terror: null\n\t};\n\tthis.size = size;\n\tthis.timeout = timeout;\n\n\tif (body instanceof Stream) {\n\t\tbody.on('error', function (err) {\n\t\t\tconst error = err.name === 'AbortError' ? err : new FetchError(`Invalid response body while trying to fetch ${_this.url}: ${err.message}`, 'system', err);\n\t\t\t_this[INTERNALS].error = error;\n\t\t});\n\t}\n}\n\nBody.prototype = {\n\tget body() {\n\t\treturn this[INTERNALS].body;\n\t},\n\n\tget bodyUsed() {\n\t\treturn this[INTERNALS].disturbed;\n\t},\n\n\t/**\n * Decode response as ArrayBuffer\n *\n * @return Promise\n */\n\tarrayBuffer() {\n\t\treturn consumeBody.call(this).then(function (buf) {\n\t\t\treturn buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength);\n\t\t});\n\t},\n\n\t/**\n * Return raw response as Blob\n *\n * @return Promise\n */\n\tblob() {\n\t\tlet ct = this.headers && this.headers.get('content-type') || '';\n\t\treturn consumeBody.call(this).then(function (buf) {\n\t\t\treturn Object.assign(\n\t\t\t// Prevent copying\n\t\t\tnew Blob([], {\n\t\t\t\ttype: ct.toLowerCase()\n\t\t\t}), {\n\t\t\t\t[BUFFER]: buf\n\t\t\t});\n\t\t});\n\t},\n\n\t/**\n * Decode response as json\n *\n * @return Promise\n */\n\tjson() {\n\t\tvar _this2 = this;\n\n\t\treturn consumeBody.call(this).then(function (buffer) {\n\t\t\ttry {\n\t\t\t\treturn JSON.parse(buffer.toString());\n\t\t\t} catch (err) {\n\t\t\t\treturn Body.Promise.reject(new FetchError(`invalid json response body at ${_this2.url} reason: ${err.message}`, 'invalid-json'));\n\t\t\t}\n\t\t});\n\t},\n\n\t/**\n * Decode response as text\n *\n * @return Promise\n */\n\ttext() {\n\t\treturn consumeBody.call(this).then(function (buffer) {\n\t\t\treturn buffer.toString();\n\t\t});\n\t},\n\n\t/**\n * Decode response as buffer (non-spec api)\n *\n * @return Promise\n */\n\tbuffer() {\n\t\treturn consumeBody.call(this);\n\t},\n\n\t/**\n * Decode response as text, while automatically detecting the encoding and\n * trying to decode to UTF-8 (non-spec api)\n *\n * @return Promise\n */\n\ttextConverted() {\n\t\tvar _this3 = this;\n\n\t\treturn consumeBody.call(this).then(function (buffer) {\n\t\t\treturn convertBody(buffer, _this3.headers);\n\t\t});\n\t}\n};\n\n// In browsers, all properties are enumerable.\nObject.defineProperties(Body.prototype, {\n\tbody: { enumerable: true },\n\tbodyUsed: { enumerable: true },\n\tarrayBuffer: { enumerable: true },\n\tblob: { enumerable: true },\n\tjson: { enumerable: true },\n\ttext: { enumerable: true }\n});\n\nBody.mixIn = function (proto) {\n\tfor (const name of Object.getOwnPropertyNames(Body.prototype)) {\n\t\t// istanbul ignore else: future proof\n\t\tif (!(name in proto)) {\n\t\t\tconst desc = Object.getOwnPropertyDescriptor(Body.prototype, name);\n\t\t\tObject.defineProperty(proto, name, desc);\n\t\t}\n\t}\n};\n\n/**\n * Consume and convert an entire Body to a Buffer.\n *\n * Ref: https://fetch.spec.whatwg.org/#concept-body-consume-body\n *\n * @return Promise\n */\nfunction consumeBody() {\n\tvar _this4 = this;\n\n\tif (this[INTERNALS].disturbed) {\n\t\treturn Body.Promise.reject(new TypeError(`body used already for: ${this.url}`));\n\t}\n\n\tthis[INTERNALS].disturbed = true;\n\n\tif (this[INTERNALS].error) {\n\t\treturn Body.Promise.reject(this[INTERNALS].error);\n\t}\n\n\tlet body = this.body;\n\n\t// body is null\n\tif (body === null) {\n\t\treturn Body.Promise.resolve(Buffer.alloc(0));\n\t}\n\n\t// body is blob\n\tif (isBlob(body)) {\n\t\tbody = body.stream();\n\t}\n\n\t// body is buffer\n\tif (Buffer.isBuffer(body)) {\n\t\treturn Body.Promise.resolve(body);\n\t}\n\n\t// istanbul ignore if: should never happen\n\tif (!(body instanceof Stream)) {\n\t\treturn Body.Promise.resolve(Buffer.alloc(0));\n\t}\n\n\t// body is stream\n\t// get ready to actually consume the body\n\tlet accum = [];\n\tlet accumBytes = 0;\n\tlet abort = false;\n\n\treturn new Body.Promise(function (resolve, reject) {\n\t\tlet resTimeout;\n\n\t\t// allow timeout on slow response body\n\t\tif (_this4.timeout) {\n\t\t\tresTimeout = setTimeout(function () {\n\t\t\t\tabort = true;\n\t\t\t\treject(new FetchError(`Response timeout while trying to fetch ${_this4.url} (over ${_this4.timeout}ms)`, 'body-timeout'));\n\t\t\t}, _this4.timeout);\n\t\t}\n\n\t\t// handle stream errors\n\t\tbody.on('error', function (err) {\n\t\t\tif (err.name === 'AbortError') {\n\t\t\t\t// if the request was aborted, reject with this Error\n\t\t\t\tabort = true;\n\t\t\t\treject(err);\n\t\t\t} else {\n\t\t\t\t// other errors, such as incorrect content-encoding\n\t\t\t\treject(new FetchError(`Invalid response body while trying to fetch ${_this4.url}: ${err.message}`, 'system', err));\n\t\t\t}\n\t\t});\n\n\t\tbody.on('data', function (chunk) {\n\t\t\tif (abort || chunk === null) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (_this4.size && accumBytes + chunk.length > _this4.size) {\n\t\t\t\tabort = true;\n\t\t\t\treject(new FetchError(`content size at ${_this4.url} over limit: ${_this4.size}`, 'max-size'));\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\taccumBytes += chunk.length;\n\t\t\taccum.push(chunk);\n\t\t});\n\n\t\tbody.on('end', function () {\n\t\t\tif (abort) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tclearTimeout(resTimeout);\n\n\t\t\ttry {\n\t\t\t\tresolve(Buffer.concat(accum, accumBytes));\n\t\t\t} catch (err) {\n\t\t\t\t// handle streams that have accumulated too much data (issue #414)\n\t\t\t\treject(new FetchError(`Could not create Buffer from response body for ${_this4.url}: ${err.message}`, 'system', err));\n\t\t\t}\n\t\t});\n\t});\n}\n\n/**\n * Detect buffer encoding and convert to target encoding\n * ref: http://www.w3.org/TR/2011/WD-html5-20110113/parsing.html#determining-the-character-encoding\n *\n * @param Buffer buffer Incoming buffer\n * @param String encoding Target encoding\n * @return String\n */\nfunction convertBody(buffer, headers) {\n\tif (typeof convert !== 'function') {\n\t\tthrow new Error('The package `encoding` must be installed to use the textConverted() function');\n\t}\n\n\tconst ct = headers.get('content-type');\n\tlet charset = 'utf-8';\n\tlet res, str;\n\n\t// header\n\tif (ct) {\n\t\tres = /charset=([^;]*)/i.exec(ct);\n\t}\n\n\t// no charset in content type, peek at response body for at most 1024 bytes\n\tstr = buffer.slice(0, 1024).toString();\n\n\t// html5\n\tif (!res && str) {\n\t\tres = / 0 && arguments[0] !== undefined ? arguments[0] : undefined;\n\n\t\tthis[MAP] = Object.create(null);\n\n\t\tif (init instanceof Headers) {\n\t\t\tconst rawHeaders = init.raw();\n\t\t\tconst headerNames = Object.keys(rawHeaders);\n\n\t\t\tfor (const headerName of headerNames) {\n\t\t\t\tfor (const value of rawHeaders[headerName]) {\n\t\t\t\t\tthis.append(headerName, value);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn;\n\t\t}\n\n\t\t// We don't worry about converting prop to ByteString here as append()\n\t\t// will handle it.\n\t\tif (init == null) ; else if (typeof init === 'object') {\n\t\t\tconst method = init[Symbol.iterator];\n\t\t\tif (method != null) {\n\t\t\t\tif (typeof method !== 'function') {\n\t\t\t\t\tthrow new TypeError('Header pairs must be iterable');\n\t\t\t\t}\n\n\t\t\t\t// sequence>\n\t\t\t\t// Note: per spec we have to first exhaust the lists then process them\n\t\t\t\tconst pairs = [];\n\t\t\t\tfor (const pair of init) {\n\t\t\t\t\tif (typeof pair !== 'object' || typeof pair[Symbol.iterator] !== 'function') {\n\t\t\t\t\t\tthrow new TypeError('Each header pair must be iterable');\n\t\t\t\t\t}\n\t\t\t\t\tpairs.push(Array.from(pair));\n\t\t\t\t}\n\n\t\t\t\tfor (const pair of pairs) {\n\t\t\t\t\tif (pair.length !== 2) {\n\t\t\t\t\t\tthrow new TypeError('Each header pair must be a name/value tuple');\n\t\t\t\t\t}\n\t\t\t\t\tthis.append(pair[0], pair[1]);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// record\n\t\t\t\tfor (const key of Object.keys(init)) {\n\t\t\t\t\tconst value = init[key];\n\t\t\t\t\tthis.append(key, value);\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tthrow new TypeError('Provided initializer must be an object');\n\t\t}\n\t}\n\n\t/**\n * Return combined header value given name\n *\n * @param String name Header name\n * @return Mixed\n */\n\tget(name) {\n\t\tname = `${name}`;\n\t\tvalidateName(name);\n\t\tconst key = find(this[MAP], name);\n\t\tif (key === undefined) {\n\t\t\treturn null;\n\t\t}\n\n\t\treturn this[MAP][key].join(', ');\n\t}\n\n\t/**\n * Iterate over all headers\n *\n * @param Function callback Executed for each item with parameters (value, name, thisArg)\n * @param Boolean thisArg `this` context for callback function\n * @return Void\n */\n\tforEach(callback) {\n\t\tlet thisArg = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : undefined;\n\n\t\tlet pairs = getHeaders(this);\n\t\tlet i = 0;\n\t\twhile (i < pairs.length) {\n\t\t\tvar _pairs$i = pairs[i];\n\t\t\tconst name = _pairs$i[0],\n\t\t\t value = _pairs$i[1];\n\n\t\t\tcallback.call(thisArg, value, name, this);\n\t\t\tpairs = getHeaders(this);\n\t\t\ti++;\n\t\t}\n\t}\n\n\t/**\n * Overwrite header values given name\n *\n * @param String name Header name\n * @param String value Header value\n * @return Void\n */\n\tset(name, value) {\n\t\tname = `${name}`;\n\t\tvalue = `${value}`;\n\t\tvalidateName(name);\n\t\tvalidateValue(value);\n\t\tconst key = find(this[MAP], name);\n\t\tthis[MAP][key !== undefined ? key : name] = [value];\n\t}\n\n\t/**\n * Append a value onto existing header\n *\n * @param String name Header name\n * @param String value Header value\n * @return Void\n */\n\tappend(name, value) {\n\t\tname = `${name}`;\n\t\tvalue = `${value}`;\n\t\tvalidateName(name);\n\t\tvalidateValue(value);\n\t\tconst key = find(this[MAP], name);\n\t\tif (key !== undefined) {\n\t\t\tthis[MAP][key].push(value);\n\t\t} else {\n\t\t\tthis[MAP][name] = [value];\n\t\t}\n\t}\n\n\t/**\n * Check for header name existence\n *\n * @param String name Header name\n * @return Boolean\n */\n\thas(name) {\n\t\tname = `${name}`;\n\t\tvalidateName(name);\n\t\treturn find(this[MAP], name) !== undefined;\n\t}\n\n\t/**\n * Delete all header values given name\n *\n * @param String name Header name\n * @return Void\n */\n\tdelete(name) {\n\t\tname = `${name}`;\n\t\tvalidateName(name);\n\t\tconst key = find(this[MAP], name);\n\t\tif (key !== undefined) {\n\t\t\tdelete this[MAP][key];\n\t\t}\n\t}\n\n\t/**\n * Return raw headers (non-spec api)\n *\n * @return Object\n */\n\traw() {\n\t\treturn this[MAP];\n\t}\n\n\t/**\n * Get an iterator on keys.\n *\n * @return Iterator\n */\n\tkeys() {\n\t\treturn createHeadersIterator(this, 'key');\n\t}\n\n\t/**\n * Get an iterator on values.\n *\n * @return Iterator\n */\n\tvalues() {\n\t\treturn createHeadersIterator(this, 'value');\n\t}\n\n\t/**\n * Get an iterator on entries.\n *\n * This is the default iterator of the Headers object.\n *\n * @return Iterator\n */\n\t[Symbol.iterator]() {\n\t\treturn createHeadersIterator(this, 'key+value');\n\t}\n}\nHeaders.prototype.entries = Headers.prototype[Symbol.iterator];\n\nObject.defineProperty(Headers.prototype, Symbol.toStringTag, {\n\tvalue: 'Headers',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\nObject.defineProperties(Headers.prototype, {\n\tget: { enumerable: true },\n\tforEach: { enumerable: true },\n\tset: { enumerable: true },\n\tappend: { enumerable: true },\n\thas: { enumerable: true },\n\tdelete: { enumerable: true },\n\tkeys: { enumerable: true },\n\tvalues: { enumerable: true },\n\tentries: { enumerable: true }\n});\n\nfunction getHeaders(headers) {\n\tlet kind = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'key+value';\n\n\tconst keys = Object.keys(headers[MAP]).sort();\n\treturn keys.map(kind === 'key' ? function (k) {\n\t\treturn k.toLowerCase();\n\t} : kind === 'value' ? function (k) {\n\t\treturn headers[MAP][k].join(', ');\n\t} : function (k) {\n\t\treturn [k.toLowerCase(), headers[MAP][k].join(', ')];\n\t});\n}\n\nconst INTERNAL = Symbol('internal');\n\nfunction createHeadersIterator(target, kind) {\n\tconst iterator = Object.create(HeadersIteratorPrototype);\n\titerator[INTERNAL] = {\n\t\ttarget,\n\t\tkind,\n\t\tindex: 0\n\t};\n\treturn iterator;\n}\n\nconst HeadersIteratorPrototype = Object.setPrototypeOf({\n\tnext() {\n\t\t// istanbul ignore if\n\t\tif (!this || Object.getPrototypeOf(this) !== HeadersIteratorPrototype) {\n\t\t\tthrow new TypeError('Value of `this` is not a HeadersIterator');\n\t\t}\n\n\t\tvar _INTERNAL = this[INTERNAL];\n\t\tconst target = _INTERNAL.target,\n\t\t kind = _INTERNAL.kind,\n\t\t index = _INTERNAL.index;\n\n\t\tconst values = getHeaders(target, kind);\n\t\tconst len = values.length;\n\t\tif (index >= len) {\n\t\t\treturn {\n\t\t\t\tvalue: undefined,\n\t\t\t\tdone: true\n\t\t\t};\n\t\t}\n\n\t\tthis[INTERNAL].index = index + 1;\n\n\t\treturn {\n\t\t\tvalue: values[index],\n\t\t\tdone: false\n\t\t};\n\t}\n}, Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]())));\n\nObject.defineProperty(HeadersIteratorPrototype, Symbol.toStringTag, {\n\tvalue: 'HeadersIterator',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\n/**\n * Export the Headers object in a form that Node.js can consume.\n *\n * @param Headers headers\n * @return Object\n */\nfunction exportNodeCompatibleHeaders(headers) {\n\tconst obj = Object.assign({ __proto__: null }, headers[MAP]);\n\n\t// http.request() only supports string as Host header. This hack makes\n\t// specifying custom Host header possible.\n\tconst hostHeaderKey = find(headers[MAP], 'Host');\n\tif (hostHeaderKey !== undefined) {\n\t\tobj[hostHeaderKey] = obj[hostHeaderKey][0];\n\t}\n\n\treturn obj;\n}\n\n/**\n * Create a Headers object from an object of headers, ignoring those that do\n * not conform to HTTP grammar productions.\n *\n * @param Object obj Object of headers\n * @return Headers\n */\nfunction createHeadersLenient(obj) {\n\tconst headers = new Headers();\n\tfor (const name of Object.keys(obj)) {\n\t\tif (invalidTokenRegex.test(name)) {\n\t\t\tcontinue;\n\t\t}\n\t\tif (Array.isArray(obj[name])) {\n\t\t\tfor (const val of obj[name]) {\n\t\t\t\tif (invalidHeaderCharRegex.test(val)) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tif (headers[MAP][name] === undefined) {\n\t\t\t\t\theaders[MAP][name] = [val];\n\t\t\t\t} else {\n\t\t\t\t\theaders[MAP][name].push(val);\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (!invalidHeaderCharRegex.test(obj[name])) {\n\t\t\theaders[MAP][name] = [obj[name]];\n\t\t}\n\t}\n\treturn headers;\n}\n\nconst INTERNALS$1 = Symbol('Response internals');\n\n// fix an issue where \"STATUS_CODES\" aren't a named export for node <10\nconst STATUS_CODES = http.STATUS_CODES;\n\n/**\n * Response class\n *\n * @param Stream body Readable stream\n * @param Object opts Response options\n * @return Void\n */\nclass Response {\n\tconstructor() {\n\t\tlet body = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n\t\tlet opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n\t\tBody.call(this, body, opts);\n\n\t\tconst status = opts.status || 200;\n\t\tconst headers = new Headers(opts.headers);\n\n\t\tif (body != null && !headers.has('Content-Type')) {\n\t\t\tconst contentType = extractContentType(body);\n\t\t\tif (contentType) {\n\t\t\t\theaders.append('Content-Type', contentType);\n\t\t\t}\n\t\t}\n\n\t\tthis[INTERNALS$1] = {\n\t\t\turl: opts.url,\n\t\t\tstatus,\n\t\t\tstatusText: opts.statusText || STATUS_CODES[status],\n\t\t\theaders,\n\t\t\tcounter: opts.counter\n\t\t};\n\t}\n\n\tget url() {\n\t\treturn this[INTERNALS$1].url || '';\n\t}\n\n\tget status() {\n\t\treturn this[INTERNALS$1].status;\n\t}\n\n\t/**\n * Convenience property representing if the request ended normally\n */\n\tget ok() {\n\t\treturn this[INTERNALS$1].status >= 200 && this[INTERNALS$1].status < 300;\n\t}\n\n\tget redirected() {\n\t\treturn this[INTERNALS$1].counter > 0;\n\t}\n\n\tget statusText() {\n\t\treturn this[INTERNALS$1].statusText;\n\t}\n\n\tget headers() {\n\t\treturn this[INTERNALS$1].headers;\n\t}\n\n\t/**\n * Clone this response\n *\n * @return Response\n */\n\tclone() {\n\t\treturn new Response(clone(this), {\n\t\t\turl: this.url,\n\t\t\tstatus: this.status,\n\t\t\tstatusText: this.statusText,\n\t\t\theaders: this.headers,\n\t\t\tok: this.ok,\n\t\t\tredirected: this.redirected\n\t\t});\n\t}\n}\n\nBody.mixIn(Response.prototype);\n\nObject.defineProperties(Response.prototype, {\n\turl: { enumerable: true },\n\tstatus: { enumerable: true },\n\tok: { enumerable: true },\n\tredirected: { enumerable: true },\n\tstatusText: { enumerable: true },\n\theaders: { enumerable: true },\n\tclone: { enumerable: true }\n});\n\nObject.defineProperty(Response.prototype, Symbol.toStringTag, {\n\tvalue: 'Response',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\nconst INTERNALS$2 = Symbol('Request internals');\nconst URL = Url.URL || whatwgUrl.URL;\n\n// fix an issue where \"format\", \"parse\" aren't a named export for node <10\nconst parse_url = Url.parse;\nconst format_url = Url.format;\n\n/**\n * Wrapper around `new URL` to handle arbitrary URLs\n *\n * @param {string} urlStr\n * @return {void}\n */\nfunction parseURL(urlStr) {\n\t/*\n \tCheck whether the URL is absolute or not\n \t\tScheme: https://tools.ietf.org/html/rfc3986#section-3.1\n \tAbsolute URL: https://tools.ietf.org/html/rfc3986#section-4.3\n */\n\tif (/^[a-zA-Z][a-zA-Z\\d+\\-.]*:/.exec(urlStr)) {\n\t\turlStr = new URL(urlStr).toString();\n\t}\n\n\t// Fallback to old implementation for arbitrary URLs\n\treturn parse_url(urlStr);\n}\n\nconst streamDestructionSupported = 'destroy' in Stream.Readable.prototype;\n\n/**\n * Check if a value is an instance of Request.\n *\n * @param Mixed input\n * @return Boolean\n */\nfunction isRequest(input) {\n\treturn typeof input === 'object' && typeof input[INTERNALS$2] === 'object';\n}\n\nfunction isAbortSignal(signal) {\n\tconst proto = signal && typeof signal === 'object' && Object.getPrototypeOf(signal);\n\treturn !!(proto && proto.constructor.name === 'AbortSignal');\n}\n\n/**\n * Request class\n *\n * @param Mixed input Url or Request instance\n * @param Object init Custom options\n * @return Void\n */\nclass Request {\n\tconstructor(input) {\n\t\tlet init = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n\t\tlet parsedURL;\n\n\t\t// normalize input\n\t\tif (!isRequest(input)) {\n\t\t\tif (input && input.href) {\n\t\t\t\t// in order to support Node.js' Url objects; though WHATWG's URL objects\n\t\t\t\t// will fall into this branch also (since their `toString()` will return\n\t\t\t\t// `href` property anyway)\n\t\t\t\tparsedURL = parseURL(input.href);\n\t\t\t} else {\n\t\t\t\t// coerce input to a string before attempting to parse\n\t\t\t\tparsedURL = parseURL(`${input}`);\n\t\t\t}\n\t\t\tinput = {};\n\t\t} else {\n\t\t\tparsedURL = parseURL(input.url);\n\t\t}\n\n\t\tlet method = init.method || input.method || 'GET';\n\t\tmethod = method.toUpperCase();\n\n\t\tif ((init.body != null || isRequest(input) && input.body !== null) && (method === 'GET' || method === 'HEAD')) {\n\t\t\tthrow new TypeError('Request with GET/HEAD method cannot have body');\n\t\t}\n\n\t\tlet inputBody = init.body != null ? init.body : isRequest(input) && input.body !== null ? clone(input) : null;\n\n\t\tBody.call(this, inputBody, {\n\t\t\ttimeout: init.timeout || input.timeout || 0,\n\t\t\tsize: init.size || input.size || 0\n\t\t});\n\n\t\tconst headers = new Headers(init.headers || input.headers || {});\n\n\t\tif (inputBody != null && !headers.has('Content-Type')) {\n\t\t\tconst contentType = extractContentType(inputBody);\n\t\t\tif (contentType) {\n\t\t\t\theaders.append('Content-Type', contentType);\n\t\t\t}\n\t\t}\n\n\t\tlet signal = isRequest(input) ? input.signal : null;\n\t\tif ('signal' in init) signal = init.signal;\n\n\t\tif (signal != null && !isAbortSignal(signal)) {\n\t\t\tthrow new TypeError('Expected signal to be an instanceof AbortSignal');\n\t\t}\n\n\t\tthis[INTERNALS$2] = {\n\t\t\tmethod,\n\t\t\tredirect: init.redirect || input.redirect || 'follow',\n\t\t\theaders,\n\t\t\tparsedURL,\n\t\t\tsignal\n\t\t};\n\n\t\t// node-fetch-only options\n\t\tthis.follow = init.follow !== undefined ? init.follow : input.follow !== undefined ? input.follow : 20;\n\t\tthis.compress = init.compress !== undefined ? init.compress : input.compress !== undefined ? input.compress : true;\n\t\tthis.counter = init.counter || input.counter || 0;\n\t\tthis.agent = init.agent || input.agent;\n\t}\n\n\tget method() {\n\t\treturn this[INTERNALS$2].method;\n\t}\n\n\tget url() {\n\t\treturn format_url(this[INTERNALS$2].parsedURL);\n\t}\n\n\tget headers() {\n\t\treturn this[INTERNALS$2].headers;\n\t}\n\n\tget redirect() {\n\t\treturn this[INTERNALS$2].redirect;\n\t}\n\n\tget signal() {\n\t\treturn this[INTERNALS$2].signal;\n\t}\n\n\t/**\n * Clone this request\n *\n * @return Request\n */\n\tclone() {\n\t\treturn new Request(this);\n\t}\n}\n\nBody.mixIn(Request.prototype);\n\nObject.defineProperty(Request.prototype, Symbol.toStringTag, {\n\tvalue: 'Request',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\nObject.defineProperties(Request.prototype, {\n\tmethod: { enumerable: true },\n\turl: { enumerable: true },\n\theaders: { enumerable: true },\n\tredirect: { enumerable: true },\n\tclone: { enumerable: true },\n\tsignal: { enumerable: true }\n});\n\n/**\n * Convert a Request to Node.js http request options.\n *\n * @param Request A Request instance\n * @return Object The options object to be passed to http.request\n */\nfunction getNodeRequestOptions(request) {\n\tconst parsedURL = request[INTERNALS$2].parsedURL;\n\tconst headers = new Headers(request[INTERNALS$2].headers);\n\n\t// fetch step 1.3\n\tif (!headers.has('Accept')) {\n\t\theaders.set('Accept', '*/*');\n\t}\n\n\t// Basic fetch\n\tif (!parsedURL.protocol || !parsedURL.hostname) {\n\t\tthrow new TypeError('Only absolute URLs are supported');\n\t}\n\n\tif (!/^https?:$/.test(parsedURL.protocol)) {\n\t\tthrow new TypeError('Only HTTP(S) protocols are supported');\n\t}\n\n\tif (request.signal && request.body instanceof Stream.Readable && !streamDestructionSupported) {\n\t\tthrow new Error('Cancellation of streamed requests with AbortSignal is not supported in node < 8');\n\t}\n\n\t// HTTP-network-or-cache fetch steps 2.4-2.7\n\tlet contentLengthValue = null;\n\tif (request.body == null && /^(POST|PUT)$/i.test(request.method)) {\n\t\tcontentLengthValue = '0';\n\t}\n\tif (request.body != null) {\n\t\tconst totalBytes = getTotalBytes(request);\n\t\tif (typeof totalBytes === 'number') {\n\t\t\tcontentLengthValue = String(totalBytes);\n\t\t}\n\t}\n\tif (contentLengthValue) {\n\t\theaders.set('Content-Length', contentLengthValue);\n\t}\n\n\t// HTTP-network-or-cache fetch step 2.11\n\tif (!headers.has('User-Agent')) {\n\t\theaders.set('User-Agent', 'node-fetch/1.0 (+https://github.com/bitinn/node-fetch)');\n\t}\n\n\t// HTTP-network-or-cache fetch step 2.15\n\tif (request.compress && !headers.has('Accept-Encoding')) {\n\t\theaders.set('Accept-Encoding', 'gzip,deflate');\n\t}\n\n\tlet agent = request.agent;\n\tif (typeof agent === 'function') {\n\t\tagent = agent(parsedURL);\n\t}\n\n\tif (!headers.has('Connection') && !agent) {\n\t\theaders.set('Connection', 'close');\n\t}\n\n\t// HTTP-network fetch step 4.2\n\t// chunked encoding is handled by Node.js\n\n\treturn Object.assign({}, parsedURL, {\n\t\tmethod: request.method,\n\t\theaders: exportNodeCompatibleHeaders(headers),\n\t\tagent\n\t});\n}\n\n/**\n * abort-error.js\n *\n * AbortError interface for cancelled requests\n */\n\n/**\n * Create AbortError instance\n *\n * @param String message Error message for human\n * @return AbortError\n */\nfunction AbortError(message) {\n Error.call(this, message);\n\n this.type = 'aborted';\n this.message = message;\n\n // hide custom error implementation details from end-users\n Error.captureStackTrace(this, this.constructor);\n}\n\nAbortError.prototype = Object.create(Error.prototype);\nAbortError.prototype.constructor = AbortError;\nAbortError.prototype.name = 'AbortError';\n\nconst URL$1 = Url.URL || whatwgUrl.URL;\n\n// fix an issue where \"PassThrough\", \"resolve\" aren't a named export for node <10\nconst PassThrough$1 = Stream.PassThrough;\n\nconst isDomainOrSubdomain = function isDomainOrSubdomain(destination, original) {\n\tconst orig = new URL$1(original).hostname;\n\tconst dest = new URL$1(destination).hostname;\n\n\treturn orig === dest || orig[orig.length - dest.length - 1] === '.' && orig.endsWith(dest);\n};\n\n/**\n * Fetch function\n *\n * @param Mixed url Absolute url or Request instance\n * @param Object opts Fetch options\n * @return Promise\n */\nfunction fetch(url, opts) {\n\n\t// allow custom promise\n\tif (!fetch.Promise) {\n\t\tthrow new Error('native promise missing, set fetch.Promise to your favorite alternative');\n\t}\n\n\tBody.Promise = fetch.Promise;\n\n\t// wrap http.request into fetch\n\treturn new fetch.Promise(function (resolve, reject) {\n\t\t// build request object\n\t\tconst request = new Request(url, opts);\n\t\tconst options = getNodeRequestOptions(request);\n\n\t\tconst send = (options.protocol === 'https:' ? https : http).request;\n\t\tconst signal = request.signal;\n\n\t\tlet response = null;\n\n\t\tconst abort = function abort() {\n\t\t\tlet error = new AbortError('The user aborted a request.');\n\t\t\treject(error);\n\t\t\tif (request.body && request.body instanceof Stream.Readable) {\n\t\t\t\trequest.body.destroy(error);\n\t\t\t}\n\t\t\tif (!response || !response.body) return;\n\t\t\tresponse.body.emit('error', error);\n\t\t};\n\n\t\tif (signal && signal.aborted) {\n\t\t\tabort();\n\t\t\treturn;\n\t\t}\n\n\t\tconst abortAndFinalize = function abortAndFinalize() {\n\t\t\tabort();\n\t\t\tfinalize();\n\t\t};\n\n\t\t// send request\n\t\tconst req = send(options);\n\t\tlet reqTimeout;\n\n\t\tif (signal) {\n\t\t\tsignal.addEventListener('abort', abortAndFinalize);\n\t\t}\n\n\t\tfunction finalize() {\n\t\t\treq.abort();\n\t\t\tif (signal) signal.removeEventListener('abort', abortAndFinalize);\n\t\t\tclearTimeout(reqTimeout);\n\t\t}\n\n\t\tif (request.timeout) {\n\t\t\treq.once('socket', function (socket) {\n\t\t\t\treqTimeout = setTimeout(function () {\n\t\t\t\t\treject(new FetchError(`network timeout at: ${request.url}`, 'request-timeout'));\n\t\t\t\t\tfinalize();\n\t\t\t\t}, request.timeout);\n\t\t\t});\n\t\t}\n\n\t\treq.on('error', function (err) {\n\t\t\treject(new FetchError(`request to ${request.url} failed, reason: ${err.message}`, 'system', err));\n\t\t\tfinalize();\n\t\t});\n\n\t\treq.on('response', function (res) {\n\t\t\tclearTimeout(reqTimeout);\n\n\t\t\tconst headers = createHeadersLenient(res.headers);\n\n\t\t\t// HTTP fetch step 5\n\t\t\tif (fetch.isRedirect(res.statusCode)) {\n\t\t\t\t// HTTP fetch step 5.2\n\t\t\t\tconst location = headers.get('Location');\n\n\t\t\t\t// HTTP fetch step 5.3\n\t\t\t\tlet locationURL = null;\n\t\t\t\ttry {\n\t\t\t\t\tlocationURL = location === null ? null : new URL$1(location, request.url).toString();\n\t\t\t\t} catch (err) {\n\t\t\t\t\t// error here can only be invalid URL in Location: header\n\t\t\t\t\t// do not throw when options.redirect == manual\n\t\t\t\t\t// let the user extract the errorneous redirect URL\n\t\t\t\t\tif (request.redirect !== 'manual') {\n\t\t\t\t\t\treject(new FetchError(`uri requested responds with an invalid redirect URL: ${location}`, 'invalid-redirect'));\n\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// HTTP fetch step 5.5\n\t\t\t\tswitch (request.redirect) {\n\t\t\t\t\tcase 'error':\n\t\t\t\t\t\treject(new FetchError(`uri requested responds with a redirect, redirect mode is set to error: ${request.url}`, 'no-redirect'));\n\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\treturn;\n\t\t\t\t\tcase 'manual':\n\t\t\t\t\t\t// node-fetch-specific step: make manual redirect a bit easier to use by setting the Location header value to the resolved URL.\n\t\t\t\t\t\tif (locationURL !== null) {\n\t\t\t\t\t\t\t// handle corrupted header\n\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\theaders.set('Location', locationURL);\n\t\t\t\t\t\t\t} catch (err) {\n\t\t\t\t\t\t\t\t// istanbul ignore next: nodejs server prevent invalid response headers, we can't test this through normal request\n\t\t\t\t\t\t\t\treject(err);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'follow':\n\t\t\t\t\t\t// HTTP-redirect fetch step 2\n\t\t\t\t\t\tif (locationURL === null) {\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 5\n\t\t\t\t\t\tif (request.counter >= request.follow) {\n\t\t\t\t\t\t\treject(new FetchError(`maximum redirect reached at: ${request.url}`, 'max-redirect'));\n\t\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 6 (counter increment)\n\t\t\t\t\t\t// Create a new Request object.\n\t\t\t\t\t\tconst requestOpts = {\n\t\t\t\t\t\t\theaders: new Headers(request.headers),\n\t\t\t\t\t\t\tfollow: request.follow,\n\t\t\t\t\t\t\tcounter: request.counter + 1,\n\t\t\t\t\t\t\tagent: request.agent,\n\t\t\t\t\t\t\tcompress: request.compress,\n\t\t\t\t\t\t\tmethod: request.method,\n\t\t\t\t\t\t\tbody: request.body,\n\t\t\t\t\t\t\tsignal: request.signal,\n\t\t\t\t\t\t\ttimeout: request.timeout,\n\t\t\t\t\t\t\tsize: request.size\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\tif (!isDomainOrSubdomain(request.url, locationURL)) {\n\t\t\t\t\t\t\tfor (const name of ['authorization', 'www-authenticate', 'cookie', 'cookie2']) {\n\t\t\t\t\t\t\t\trequestOpts.headers.delete(name);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 9\n\t\t\t\t\t\tif (res.statusCode !== 303 && request.body && getTotalBytes(request) === null) {\n\t\t\t\t\t\t\treject(new FetchError('Cannot follow redirect with body being a readable stream', 'unsupported-redirect'));\n\t\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 11\n\t\t\t\t\t\tif (res.statusCode === 303 || (res.statusCode === 301 || res.statusCode === 302) && request.method === 'POST') {\n\t\t\t\t\t\t\trequestOpts.method = 'GET';\n\t\t\t\t\t\t\trequestOpts.body = undefined;\n\t\t\t\t\t\t\trequestOpts.headers.delete('content-length');\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 15\n\t\t\t\t\t\tresolve(fetch(new Request(locationURL, requestOpts)));\n\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// prepare response\n\t\t\tres.once('end', function () {\n\t\t\t\tif (signal) signal.removeEventListener('abort', abortAndFinalize);\n\t\t\t});\n\t\t\tlet body = res.pipe(new PassThrough$1());\n\n\t\t\tconst response_options = {\n\t\t\t\turl: request.url,\n\t\t\t\tstatus: res.statusCode,\n\t\t\t\tstatusText: res.statusMessage,\n\t\t\t\theaders: headers,\n\t\t\t\tsize: request.size,\n\t\t\t\ttimeout: request.timeout,\n\t\t\t\tcounter: request.counter\n\t\t\t};\n\n\t\t\t// HTTP-network fetch step 12.1.1.3\n\t\t\tconst codings = headers.get('Content-Encoding');\n\n\t\t\t// HTTP-network fetch step 12.1.1.4: handle content codings\n\n\t\t\t// in following scenarios we ignore compression support\n\t\t\t// 1. compression support is disabled\n\t\t\t// 2. HEAD request\n\t\t\t// 3. no Content-Encoding header\n\t\t\t// 4. no content response (204)\n\t\t\t// 5. content not modified response (304)\n\t\t\tif (!request.compress || request.method === 'HEAD' || codings === null || res.statusCode === 204 || res.statusCode === 304) {\n\t\t\t\tresponse = new Response(body, response_options);\n\t\t\t\tresolve(response);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// For Node v6+\n\t\t\t// Be less strict when decoding compressed responses, since sometimes\n\t\t\t// servers send slightly invalid responses that are still accepted\n\t\t\t// by common browsers.\n\t\t\t// Always using Z_SYNC_FLUSH is what cURL does.\n\t\t\tconst zlibOptions = {\n\t\t\t\tflush: zlib.Z_SYNC_FLUSH,\n\t\t\t\tfinishFlush: zlib.Z_SYNC_FLUSH\n\t\t\t};\n\n\t\t\t// for gzip\n\t\t\tif (codings == 'gzip' || codings == 'x-gzip') {\n\t\t\t\tbody = body.pipe(zlib.createGunzip(zlibOptions));\n\t\t\t\tresponse = new Response(body, response_options);\n\t\t\t\tresolve(response);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// for deflate\n\t\t\tif (codings == 'deflate' || codings == 'x-deflate') {\n\t\t\t\t// handle the infamous raw deflate response from old servers\n\t\t\t\t// a hack for old IIS and Apache servers\n\t\t\t\tconst raw = res.pipe(new PassThrough$1());\n\t\t\t\traw.once('data', function (chunk) {\n\t\t\t\t\t// see http://stackoverflow.com/questions/37519828\n\t\t\t\t\tif ((chunk[0] & 0x0F) === 0x08) {\n\t\t\t\t\t\tbody = body.pipe(zlib.createInflate());\n\t\t\t\t\t} else {\n\t\t\t\t\t\tbody = body.pipe(zlib.createInflateRaw());\n\t\t\t\t\t}\n\t\t\t\t\tresponse = new Response(body, response_options);\n\t\t\t\t\tresolve(response);\n\t\t\t\t});\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// for br\n\t\t\tif (codings == 'br' && typeof zlib.createBrotliDecompress === 'function') {\n\t\t\t\tbody = body.pipe(zlib.createBrotliDecompress());\n\t\t\t\tresponse = new Response(body, response_options);\n\t\t\t\tresolve(response);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// otherwise, use response as-is\n\t\t\tresponse = new Response(body, response_options);\n\t\t\tresolve(response);\n\t\t});\n\n\t\twriteToStream(req, request);\n\t});\n}\n/**\n * Redirect code matching\n *\n * @param Number code Status code\n * @return Boolean\n */\nfetch.isRedirect = function (code) {\n\treturn code === 301 || code === 302 || code === 303 || code === 307 || code === 308;\n};\n\n// expose Promise\nfetch.Promise = global.Promise;\n\nmodule.exports = exports = fetch;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = exports;\nexports.Headers = Headers;\nexports.Request = Request;\nexports.Response = Response;\nexports.FetchError = FetchError;\n", "const nodeFetch = require('node-fetch')\nconst realFetch = nodeFetch.default || nodeFetch\n\nconst fetch = function (url, options) {\n // Support schemaless URIs on the server for parity with the browser.\n // Ex: //github.com/ -> https://github.com/\n if (/^\\/\\//.test(url)) {\n url = 'https:' + url\n }\n return realFetch.call(this, url, options)\n}\n\nfetch.ponyfill = true\n\nmodule.exports = exports = fetch\nexports.fetch = fetch\nexports.Headers = nodeFetch.Headers\nexports.Request = nodeFetch.Request\nexports.Response = nodeFetch.Response\n\n// Needed for TypeScript consumers without esModuleInterop.\nexports.default = fetch\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.httpRequest = void 0;\nconst tslib_1 = require(\"tslib\");\nconst cross_fetch_1 = tslib_1.__importDefault(require(\"cross-fetch\"));\nconst httpRequest = async (url, type = 'text') => {\n const response = await (0, cross_fetch_1.default)(url, { credentials: 'same-origin' });\n if (response.ok) {\n if (type === 'json') {\n const txt = await response.text();\n return JSON.parse(txt);\n }\n if (type === 'binary') {\n return response.arrayBuffer();\n }\n return response.text();\n }\n throw new Error(`httpRequest error: ${url} ${response.statusText}`);\n};\nexports.httpRequest = httpRequest;\n//# sourceMappingURL=assets-browser.js.map", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getAssetByUrl = void 0;\nconst getAssetByUrl = (url) => {\n const fileUrl = url.split('?')[0];\n switch (fileUrl) {\n case './data/coins.json':\n return require('@trezor/connect-common/files/coins.json');\n case './data/bridge/releases.json':\n return require('@trezor/connect-common/files/bridge/releases.json');\n case './data/firmware/1/releases.json':\n return require('@trezor/connect-common/files/firmware/1/releases.json');\n case './data/firmware/2/releases.json':\n return require('@trezor/connect-common/files/firmware/2/releases.json');\n case './data/messages/messages.json':\n return require('@trezor/transport/messages.json');\n default:\n return null;\n }\n};\nexports.getAssetByUrl = getAssetByUrl;\n//# sourceMappingURL=assetUtils.js.map", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.httpRequest = void 0;\nconst tslib_1 = require(\"tslib\");\nconst cross_fetch_1 = tslib_1.__importDefault(require(\"cross-fetch\"));\nconst fs_1 = require(\"fs\");\nconst assets_browser_1 = require(\"./assets-browser\");\nconst assetUtils_1 = require(\"./assetUtils\");\nif (global && typeof global.fetch !== 'function') {\n global.fetch = cross_fetch_1.default;\n}\nconst httpRequest = (url, type) => {\n const asset = (0, assetUtils_1.getAssetByUrl)(url);\n if (!asset) {\n return /^https?/.test(url) ? (0, assets_browser_1.httpRequest)(url, type) : fs_1.promises.readFile(url);\n }\n return asset;\n};\nexports.httpRequest = httpRequest;\n//# sourceMappingURL=assets.js.map", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getLabel = exports.fixPath = exports.getIndexFromPath = exports.getPathFromIndex = exports.getSerializedPath = exports.validatePath = exports.getOutputScriptType = exports.getScriptType = exports.getAccountType = exports.isTaprootPath = exports.isBech32Path = exports.isSegwitPath = exports.getHDPath = exports.fromHardened = exports.toHardened = exports.HD_HARDENED = void 0;\nconst constants_1 = require(\"../constants\");\nexports.HD_HARDENED = 0x80000000;\nconst toHardened = (n) => (n | exports.HD_HARDENED) >>> 0;\nexports.toHardened = toHardened;\nconst fromHardened = (n) => (n & ~exports.HD_HARDENED) >>> 0;\nexports.fromHardened = fromHardened;\nconst PATH_NOT_VALID = constants_1.ERRORS.TypedError('Method_InvalidParameter', 'Not a valid path');\nconst PATH_NEGATIVE_VALUES = constants_1.ERRORS.TypedError('Method_InvalidParameter', 'Path cannot contain negative values');\nconst getHDPath = (path) => {\n const parts = path.toLowerCase().split('/');\n if (parts[0] !== 'm')\n throw PATH_NOT_VALID;\n return parts\n .filter(p => p !== 'm' && p !== '')\n .map(p => {\n let hardened = false;\n if (p.endsWith(\"'\")) {\n hardened = true;\n p = p.substring(0, p.length - 1);\n }\n let n = parseInt(p, 10);\n if (Number.isNaN(n)) {\n throw PATH_NOT_VALID;\n }\n else if (n < 0) {\n throw PATH_NEGATIVE_VALUES;\n }\n if (hardened) {\n n = (0, exports.toHardened)(n);\n }\n return n;\n });\n};\nexports.getHDPath = getHDPath;\nconst isSegwitPath = (path) => Array.isArray(path) && path[0] === (0, exports.toHardened)(49);\nexports.isSegwitPath = isSegwitPath;\nconst isBech32Path = (path) => Array.isArray(path) && path[0] === (0, exports.toHardened)(84);\nexports.isBech32Path = isBech32Path;\nconst isTaprootPath = (path) => Array.isArray(path) && (path[0] === (0, exports.toHardened)(86) || path[0] === (0, exports.toHardened)(10025));\nexports.isTaprootPath = isTaprootPath;\nconst getAccountType = (path) => {\n if ((0, exports.isTaprootPath)(path))\n return 'p2tr';\n if ((0, exports.isBech32Path)(path))\n return 'p2wpkh';\n if ((0, exports.isSegwitPath)(path))\n return 'p2sh';\n return 'p2pkh';\n};\nexports.getAccountType = getAccountType;\nconst getScriptType = (path) => {\n if (!Array.isArray(path) || path.length < 1)\n return undefined;\n const p1 = (0, exports.fromHardened)(path[0]);\n switch (p1) {\n case 44:\n return 'SPENDADDRESS';\n case 48: {\n if (path.length < 4)\n return undefined;\n const p3 = (0, exports.fromHardened)(path[3]);\n switch (p3) {\n case 0:\n return 'SPENDMULTISIG';\n case 1:\n return 'SPENDP2SHWITNESS';\n case 2:\n return 'SPENDWITNESS';\n default:\n return undefined;\n }\n }\n case 49:\n return 'SPENDP2SHWITNESS';\n case 84:\n return 'SPENDWITNESS';\n case 86:\n case 10025:\n return 'SPENDTAPROOT';\n default:\n return undefined;\n }\n};\nexports.getScriptType = getScriptType;\nconst getOutputScriptType = (path) => {\n if (!Array.isArray(path) || path.length < 1)\n return undefined;\n const p = (0, exports.fromHardened)(path[0]);\n switch (p) {\n case 44:\n return 'PAYTOADDRESS';\n case 48: {\n if (path.length < 4)\n return undefined;\n const p3 = (0, exports.fromHardened)(path[3]);\n switch (p3) {\n case 0:\n return 'PAYTOMULTISIG';\n case 1:\n return 'PAYTOP2SHWITNESS';\n case 2:\n return 'PAYTOWITNESS';\n default:\n return undefined;\n }\n }\n case 49:\n return 'PAYTOP2SHWITNESS';\n case 84:\n return 'PAYTOWITNESS';\n case 86:\n case 10025:\n return 'PAYTOTAPROOT';\n default:\n return undefined;\n }\n};\nexports.getOutputScriptType = getOutputScriptType;\nconst validatePath = (path, length = 0, base = false) => {\n let valid;\n if (typeof path === 'string') {\n valid = (0, exports.getHDPath)(path);\n }\n else if (Array.isArray(path)) {\n valid = path.map((p) => {\n const n = parseInt(p, 10);\n if (Number.isNaN(n)) {\n throw PATH_NOT_VALID;\n }\n else if (n < 0) {\n throw PATH_NEGATIVE_VALUES;\n }\n return n;\n });\n }\n if (!valid)\n throw PATH_NOT_VALID;\n if (length > 0 && valid.length < length)\n throw PATH_NOT_VALID;\n return base ? valid.splice(0, 3) : valid;\n};\nexports.validatePath = validatePath;\nconst getSerializedPath = (path) => `m/${path\n .map(i => {\n const s = (i & ~exports.HD_HARDENED).toString();\n if (i & exports.HD_HARDENED) {\n return `${s}'`;\n }\n return s;\n})\n .join('/')}`;\nexports.getSerializedPath = getSerializedPath;\nconst getPathFromIndex = (bip44purpose, bip44cointype, index) => [\n (0, exports.toHardened)(bip44purpose),\n (0, exports.toHardened)(bip44cointype),\n (0, exports.toHardened)(index),\n];\nexports.getPathFromIndex = getPathFromIndex;\nconst getIndexFromPath = (path) => {\n if (path.length < 3) {\n throw constants_1.ERRORS.TypedError('Method_InvalidParameter', `getIndexFromPath: invalid path length ${path.toString()}`);\n }\n return (0, exports.fromHardened)(path[2]);\n};\nexports.getIndexFromPath = getIndexFromPath;\nconst fixPath = (utxo) => {\n if (utxo.address_n && Array.isArray(utxo.address_n)) {\n utxo.address_n = utxo.address_n.map(i => i >>> 0);\n }\n if (utxo.address_n && typeof utxo.address_n === 'string') {\n utxo.address_n = (0, exports.getHDPath)(utxo.address_n);\n }\n return utxo;\n};\nexports.fixPath = fixPath;\nconst getLabel = (label, coinInfo) => {\n if (coinInfo) {\n return label.replace('#NETWORK', coinInfo.label);\n }\n return label.replace('#NETWORK', '');\n};\nexports.getLabel = getLabel;\n//# sourceMappingURL=pathUtils.js.map", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getAllNetworks = exports.getUniqueNetworks = exports.parseCoinsJson = exports.getCoinName = exports.getCoinInfo = exports.getCoinInfoByHash = exports.fixCoinInfoNetwork = exports.getBech32Network = exports.getSegwitNetwork = exports.getMiscNetwork = exports.getEthereumNetwork = exports.getBitcoinNetwork = exports.cloneCoinInfo = void 0;\nconst constants_1 = require(\"../constants\");\nconst pathUtils_1 = require(\"../utils/pathUtils\");\nconst bitcoinNetworks = [];\nconst ethereumNetworks = [];\nconst miscNetworks = [];\nfunction cloneCoinInfo(info) {\n const jsonString = JSON.stringify(info);\n if (jsonString === undefined) {\n return info;\n }\n return JSON.parse(jsonString);\n}\nexports.cloneCoinInfo = cloneCoinInfo;\nconst getBitcoinNetwork = (pathOrName) => {\n const networks = cloneCoinInfo(bitcoinNetworks);\n if (typeof pathOrName === 'string') {\n const name = pathOrName.toLowerCase();\n return networks.find(n => n.name.toLowerCase() === name ||\n n.shortcut.toLowerCase() === name ||\n n.label.toLowerCase() === name);\n }\n const slip44 = (0, pathUtils_1.fromHardened)(pathOrName[1]);\n return networks.find(n => n.slip44 === slip44);\n};\nexports.getBitcoinNetwork = getBitcoinNetwork;\nconst getEthereumNetwork = (pathOrName) => {\n const networks = cloneCoinInfo(ethereumNetworks);\n if (typeof pathOrName === 'string') {\n const name = pathOrName.toLowerCase();\n return networks.find(n => n.name.toLowerCase() === name || n.shortcut.toLowerCase() === name);\n }\n const slip44 = (0, pathUtils_1.fromHardened)(pathOrName[1]);\n return networks.find(n => n.slip44 === slip44);\n};\nexports.getEthereumNetwork = getEthereumNetwork;\nconst getMiscNetwork = (pathOrName) => {\n const networks = cloneCoinInfo(miscNetworks);\n if (typeof pathOrName === 'string') {\n const name = pathOrName.toLowerCase();\n return networks.find(n => n.name.toLowerCase() === name || n.shortcut.toLowerCase() === name);\n }\n const slip44 = (0, pathUtils_1.fromHardened)(pathOrName[1]);\n return networks.find(n => n.slip44 === slip44);\n};\nexports.getMiscNetwork = getMiscNetwork;\nconst getSegwitNetwork = (coin) => {\n if (coin.segwit && typeof coin.xPubMagicSegwit === 'number') {\n return {\n ...coin.network,\n bip32: {\n ...coin.network.bip32,\n public: coin.xPubMagicSegwit,\n },\n };\n }\n return null;\n};\nexports.getSegwitNetwork = getSegwitNetwork;\nconst getBech32Network = (coin) => {\n if (coin.segwit && typeof coin.xPubMagicSegwitNative === 'number') {\n return {\n ...coin.network,\n bip32: {\n ...coin.network.bip32,\n public: coin.xPubMagicSegwitNative,\n },\n };\n }\n return null;\n};\nexports.getBech32Network = getBech32Network;\nconst fixCoinInfoNetwork = (ci, path) => {\n const coinInfo = cloneCoinInfo(ci);\n if (path[0] === (0, pathUtils_1.toHardened)(84)) {\n const bech32Network = (0, exports.getBech32Network)(coinInfo);\n if (bech32Network) {\n coinInfo.network = bech32Network;\n }\n }\n else if (path[0] === (0, pathUtils_1.toHardened)(49)) {\n const segwitNetwork = (0, exports.getSegwitNetwork)(coinInfo);\n if (segwitNetwork) {\n coinInfo.network = segwitNetwork;\n }\n }\n else {\n coinInfo.segwit = false;\n }\n return coinInfo;\n};\nexports.fixCoinInfoNetwork = fixCoinInfoNetwork;\nconst detectBtcVersion = (data) => {\n if (data.subversion == null) {\n return 'btc';\n }\n if (data.subversion.startsWith('/Bitcoin ABC')) {\n return 'bch';\n }\n if (data.subversion.startsWith('/Bitcoin Cash')) {\n return 'bch';\n }\n if (data.subversion.startsWith('/Bitcoin Gold')) {\n return 'btg';\n }\n return 'btc';\n};\nconst getCoinInfoByHash = (hash, networkInfo) => {\n const networks = cloneCoinInfo(bitcoinNetworks);\n const result = networks.find(info => hash.toLowerCase() === info.hashGenesisBlock.toLowerCase());\n if (!result) {\n throw constants_1.ERRORS.TypedError('Method_UnknownCoin', `Coin info not found for hash: ${hash} ${networkInfo.hashGenesisBlock}`);\n }\n if (result.isBitcoin) {\n const btcVersion = detectBtcVersion(networkInfo);\n let fork;\n if (btcVersion === 'bch') {\n fork = networks.find(info => info.name === 'Bcash');\n }\n else if (btcVersion === 'btg') {\n fork = networks.find(info => info.name === 'Bgold');\n }\n if (fork) {\n return fork;\n }\n throw constants_1.ERRORS.TypedError('Method_UnknownCoin', `Coin info not found for hash: ${hash} ${networkInfo.hashGenesisBlock} BTC version:${btcVersion}`);\n }\n return result;\n};\nexports.getCoinInfoByHash = getCoinInfoByHash;\nconst getCoinInfo = (currency) => (0, exports.getBitcoinNetwork)(currency) || (0, exports.getEthereumNetwork)(currency) || (0, exports.getMiscNetwork)(currency);\nexports.getCoinInfo = getCoinInfo;\nconst getCoinName = (path) => {\n const slip44 = (0, pathUtils_1.fromHardened)(path[1]);\n const network = ethereumNetworks.find(n => n.slip44 === slip44);\n return network ? network.name : 'Unknown coin';\n};\nexports.getCoinName = getCoinName;\nconst parseBitcoinNetworksJson = (json) => {\n Object.keys(json).forEach(key => {\n const coin = json[key];\n const shortcut = coin.coin_shortcut;\n const isBitcoin = shortcut === 'BTC' || shortcut === 'TEST';\n const network = {\n messagePrefix: coin.signed_message_header,\n bech32: coin.bech32_prefix,\n bip32: {\n public: coin.xpub_magic,\n private: coin.xprv_magic,\n },\n pubKeyHash: coin.address_type,\n scriptHash: coin.address_type_p2sh,\n forkId: coin.fork_id,\n wif: 0,\n };\n bitcoinNetworks.push({\n type: 'bitcoin',\n blockchainLink: coin.blockchain_link,\n blocktime: Math.round(coin.blocktime_seconds / 60),\n cashAddrPrefix: coin.cashaddr_prefix,\n label: coin.coin_label,\n name: coin.coin_name,\n shortcut,\n curveName: coin.curve_name,\n defaultFees: coin.default_fee_b,\n dustLimit: coin.dust_limit,\n forceBip143: coin.force_bip143,\n hashGenesisBlock: coin.hash_genesis_block,\n maxAddressLength: coin.max_address_length,\n maxFeeSatoshiKb: coin.maxfee_kb,\n minAddressLength: coin.min_address_length,\n minFeeSatoshiKb: coin.minfee_kb,\n segwit: coin.segwit,\n slip44: coin.slip44,\n support: coin.support,\n xPubMagic: coin.xpub_magic,\n xPubMagicSegwitNative: coin.xpub_magic_segwit_native,\n xPubMagicSegwit: coin.xpub_magic_segwit_p2sh,\n taproot: coin.taproot,\n network,\n isBitcoin,\n maxFee: Math.round(coin.maxfee_kb / 1000),\n minFee: Math.round(coin.minfee_kb / 1000),\n blocks: Math.round(coin.blocktime_seconds / 60),\n decimals: coin.decimals,\n });\n });\n};\nconst parseEthereumNetworksJson = (json) => {\n Object.keys(json).forEach(key => {\n const network = json[key];\n ethereumNetworks.push({\n type: 'ethereum',\n blockchainLink: network.blockchain_link,\n blocktime: -1,\n chain: network.chain,\n chainId: network.chain_id,\n defaultFees: [\n {\n label: 'normal',\n feePerUnit: '5000000000',\n feeLimit: '21000',\n },\n ],\n minFee: 1,\n maxFee: 10000,\n label: network.name,\n name: network.name,\n shortcut: network.shortcut,\n rskip60: network.rskip60,\n slip44: network.slip44,\n support: network.support,\n network: undefined,\n decimals: 16,\n });\n });\n};\nconst parseMiscNetworksJSON = (json, type) => {\n Object.keys(json).forEach(key => {\n const network = json[key];\n let minFee = -1;\n let maxFee = -1;\n let defaultFees = { Normal: -1 };\n const shortcut = network.shortcut.toLowerCase();\n if (shortcut === 'xrp' || shortcut === 'txrp') {\n minFee = 10;\n maxFee = 10000;\n defaultFees = { Normal: 12 };\n }\n if (shortcut === 'ada' || shortcut === 'tada') {\n minFee = 44;\n maxFee = 16384 * 44 + 155381;\n defaultFees = { Normal: 44 };\n }\n miscNetworks.push({\n type: type || 'misc',\n blockchainLink: network.blockchain_link,\n blocktime: -1,\n curve: network.curve,\n defaultFees,\n minFee,\n maxFee,\n label: network.name,\n name: network.name,\n shortcut: network.shortcut,\n slip44: network.slip44,\n support: network.support,\n network: undefined,\n decimals: network.decimals,\n });\n });\n};\nconst parseCoinsJson = (json) => {\n Object.keys(json).forEach(key => {\n switch (key) {\n case 'bitcoin':\n return parseBitcoinNetworksJson(json[key]);\n case 'eth':\n return parseEthereumNetworksJson(json[key]);\n case 'misc':\n return parseMiscNetworksJSON(json[key]);\n case 'nem':\n return parseMiscNetworksJSON(json[key], 'nem');\n }\n });\n};\nexports.parseCoinsJson = parseCoinsJson;\nconst getUniqueNetworks = (networks) => networks.reduce((result, info) => {\n if (!info || result.find(i => i.shortcut === info.shortcut))\n return result;\n return result.concat(info);\n}, []);\nexports.getUniqueNetworks = getUniqueNetworks;\nconst getAllNetworks = () => [...bitcoinNetworks, ...ethereumNetworks, ...miscNetworks];\nexports.getAllNetworks = getAllNetworks;\n//# sourceMappingURL=coinInfo.js.map", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.filterSafeListByFirmware = exports.filterSafeListByBootloader = exports.getScore = exports.isValidReleases = exports.isStrictFeatures = void 0;\nconst crypto_1 = require(\"crypto\");\nconst utils_1 = require(\"@trezor/utils\");\nconst isStrictFeatures = (extFeatures) => [1, 2].includes(extFeatures.major_version) &&\n (extFeatures.firmware_present === false ||\n extFeatures.bootloader_mode == null ||\n extFeatures.bootloader_mode === true);\nexports.isStrictFeatures = isStrictFeatures;\nconst isValidReleases = (extReleases) => Array.isArray(extReleases) &&\n extReleases.every(release => release.version && release.min_firmware_version && release.min_bootloader_version);\nexports.isValidReleases = isValidReleases;\nconst getScore = (device_id) => {\n const hash = (0, crypto_1.createHash)('sha256');\n hash.update(device_id);\n const output = parseInt(hash.digest('hex'), 16) / 2 ** 256;\n return Math.round(output * 100) / 100;\n};\nexports.getScore = getScore;\nconst filterSafeListByBootloader = (releasesList, bootloaderVersion) => releasesList.filter(item => (!item.min_bootloader_version ||\n utils_1.versionUtils.isNewerOrEqual(bootloaderVersion, item.min_bootloader_version)) &&\n (!item.bootloader_version ||\n utils_1.versionUtils.isNewerOrEqual(item.bootloader_version, bootloaderVersion)));\nexports.filterSafeListByBootloader = filterSafeListByBootloader;\nconst filterSafeListByFirmware = (releasesList, firmwareVersion) => releasesList.filter(item => utils_1.versionUtils.isNewerOrEqual(firmwareVersion, item.min_firmware_version));\nexports.filterSafeListByFirmware = filterSafeListByFirmware;\n//# sourceMappingURL=firmwareUtils.js.map", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getReleases = exports.getRelease = exports.getFirmwareStatus = exports.getInfo = exports.parseFirmware = void 0;\nconst utils_1 = require(\"@trezor/utils\");\nconst firmwareUtils_1 = require(\"../utils/firmwareUtils\");\nconst releases = {};\nreleases[1] = [];\nreleases[2] = [];\nconst parseFirmware = (json, model) => {\n Object.keys(json).forEach(key => {\n const release = json[key];\n releases[model].push({\n ...release,\n });\n });\n};\nexports.parseFirmware = parseFirmware;\nconst getChangelog = (releases, features) => {\n if (features.bootloader_mode) {\n if (features.firmware_present && features.major_version === 1) {\n return null;\n }\n if (features.firmware_present && features.major_version === 2) {\n return releases.filter(r => utils_1.versionUtils.isNewer(r.version, [\n features.fw_major,\n features.fw_minor,\n features.fw_patch,\n ]));\n }\n return releases;\n }\n return releases.filter(r => utils_1.versionUtils.isNewer(r.version, [\n features.major_version,\n features.minor_version,\n features.patch_version,\n ]));\n};\nconst isNewer = (release, features) => {\n if (features.major_version === 1 && features.bootloader_mode) {\n return null;\n }\n return utils_1.versionUtils.isNewer(release.version, [\n features.major_version,\n features.minor_version,\n features.patch_version,\n ]);\n};\nconst isRequired = (changelog) => {\n if (!changelog || !changelog.length)\n return null;\n return changelog.some(item => item.required);\n};\nconst isEqual = (release, latest) => utils_1.versionUtils.isEqual(release.version, latest.version);\nconst getInfo = ({ features, releases }) => {\n if (!(0, firmwareUtils_1.isStrictFeatures)(features)) {\n throw new Error('Features of unexpected shape provided.');\n }\n if (!(0, firmwareUtils_1.isValidReleases)(releases)) {\n throw new Error(`Release object in unexpected shape.`);\n }\n let parsedReleases = releases;\n let score = 0;\n if (features.device_id) {\n score = (0, firmwareUtils_1.getScore)(features.device_id);\n }\n const { bootloader_mode, major_version, minor_version, patch_version, fw_major, fw_minor, fw_patch, } = features;\n if (score) {\n parsedReleases = parsedReleases.filter(item => {\n if (!item.rollout)\n return true;\n return item.rollout >= score;\n });\n }\n const latest = parsedReleases[0];\n if (major_version === 2 && bootloader_mode) {\n if (fw_major !== null && fw_minor !== null && fw_patch !== null) {\n parsedReleases = (0, firmwareUtils_1.filterSafeListByFirmware)(parsedReleases, [\n fw_major,\n fw_minor,\n fw_patch,\n ]);\n }\n parsedReleases = (0, firmwareUtils_1.filterSafeListByBootloader)(parsedReleases, [\n major_version,\n minor_version,\n patch_version,\n ]);\n }\n else if (major_version === 1 && bootloader_mode) {\n parsedReleases = (0, firmwareUtils_1.filterSafeListByBootloader)(parsedReleases, [\n major_version,\n minor_version,\n patch_version,\n ]);\n }\n else {\n parsedReleases = (0, firmwareUtils_1.filterSafeListByFirmware)(parsedReleases, [\n major_version,\n minor_version,\n patch_version,\n ]);\n }\n if (!parsedReleases.length) {\n return null;\n }\n const isLatest = isEqual(parsedReleases[0], latest);\n const changelog = getChangelog(parsedReleases, features);\n return {\n changelog,\n release: parsedReleases[0],\n isLatest,\n latest,\n isRequired: isRequired(changelog),\n isNewer: isNewer(parsedReleases[0], features),\n };\n};\nexports.getInfo = getInfo;\nconst getFirmwareStatus = (features) => {\n if (features.firmware_present === false) {\n return 'none';\n }\n if (features.major_version === 1 && features.bootloader_mode) {\n return 'unknown';\n }\n const info = (0, exports.getInfo)({ features, releases: releases[features.major_version] });\n if (!info)\n return 'unknown';\n if (info.isRequired)\n return 'required';\n if (info.isNewer)\n return 'outdated';\n return 'valid';\n};\nexports.getFirmwareStatus = getFirmwareStatus;\nconst getRelease = (features) => (0, exports.getInfo)({ features, releases: releases[features.major_version] });\nexports.getRelease = getRelease;\nconst getReleases = (model) => releases[model];\nexports.getReleases = getReleases;\n//# sourceMappingURL=firmwareInfo.js.map", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getBridgeInfo = exports.parseBridgeJSON = void 0;\nconst info = {\n version: [],\n directory: '',\n packages: [],\n changelog: '',\n};\nconst parseBridgeJSON = (json) => {\n const latest = json[0];\n const version = latest.version.join('.');\n const data = JSON.parse(JSON.stringify(latest).replace(/{version}/g, version));\n const { directory } = data;\n const packages = data.packages.map(p => ({\n name: p.name,\n platform: p.platform,\n url: `${directory}${p.url}`,\n signature: p.signature ? `${directory}${p.signature}` : undefined,\n }));\n info.version = data.version;\n info.directory = directory;\n info.packages = packages;\n return info;\n};\nexports.parseBridgeJSON = parseBridgeJSON;\nconst getBridgeInfo = () => info;\nexports.getBridgeInfo = getBridgeInfo;\n//# sourceMappingURL=transportInfo.js.map", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DataManager = void 0;\nconst tslib_1 = require(\"tslib\");\nconst parse_uri_1 = tslib_1.__importDefault(require(\"parse-uri\"));\nconst assets_1 = require(\"../utils/assets\");\nconst connectSettings_1 = require(\"./connectSettings\");\nconst coinInfo_1 = require(\"./coinInfo\");\nconst firmwareInfo_1 = require(\"./firmwareInfo\");\nconst transportInfo_1 = require(\"./transportInfo\");\nconst config_1 = require(\"./config\");\nclass DataManager {\n static async load(settings, withAssets = true) {\n var _a;\n const ts = settings.env === 'web' ? `?r=${settings.timestamp}` : '';\n this.settings = settings;\n const isLocalhost = typeof window !== 'undefined' && window.location\n ? window.location.hostname === 'localhost'\n : true;\n const whitelist = DataManager.isWhitelisted(this.settings.origin || '');\n this.settings.trustedHost = (isLocalhost || !!whitelist) && !this.settings.popup;\n if (!this.settings.trustedHost) {\n this.settings.popup = true;\n }\n if (!this.settings.trustedHost && !whitelist) {\n this.settings.debug = false;\n }\n this.settings.priority = DataManager.getPriority(whitelist);\n const knownHost = DataManager.getHostLabel(this.settings.extension || this.settings.origin || '');\n if (knownHost) {\n this.settings.hostLabel = knownHost.label;\n this.settings.hostIcon = knownHost.icon;\n }\n if (this.settings.popup && this.settings.env !== 'webextension') {\n this.settings.transports = (_a = this.settings.transports) === null || _a === void 0 ? void 0 : _a.filter((transport) => transport !== 'WebUsbTransport');\n }\n if (!withAssets)\n return;\n const assetPromises = config_1.config.assets.map(async (asset) => {\n const json = await (0, assets_1.httpRequest)(`${asset.url}${ts}`, 'json');\n this.assets[asset.name] = json;\n });\n await Promise.all(assetPromises);\n this.messages = await (0, assets_1.httpRequest)(`${config_1.config.messages}${ts}`, 'json');\n (0, transportInfo_1.parseBridgeJSON)(this.assets.bridge);\n (0, coinInfo_1.parseCoinsJson)(this.assets.coins);\n (0, firmwareInfo_1.parseFirmware)(this.assets['firmware-t1'], 1);\n (0, firmwareInfo_1.parseFirmware)(this.assets['firmware-t2'], 2);\n }\n static getProtobufMessages() {\n return this.messages;\n }\n static isWhitelisted(origin) {\n const uri = (0, parse_uri_1.default)(origin);\n if (uri && typeof uri.host === 'string') {\n const parts = uri.host.split('.');\n if (parts.length > 2) {\n uri.host = parts.slice(parts.length - 2, parts.length).join('.');\n }\n return config_1.config.whitelist.find(item => item.origin === origin || item.origin === uri.host);\n }\n }\n static isManagementAllowed() {\n var _a;\n const uri = (0, parse_uri_1.default)((_a = this.settings.origin) !== null && _a !== void 0 ? _a : '');\n if (uri && typeof uri.host === 'string') {\n const parts = uri.host.split('.');\n if (parts.length > 2) {\n uri.host = parts.slice(parts.length - 2, parts.length).join('.');\n }\n return config_1.config.management.find(item => item.origin === this.settings.origin || item.origin === uri.host);\n }\n }\n static getPriority(whitelist) {\n if (whitelist) {\n return whitelist.priority;\n }\n return connectSettings_1.DEFAULT_PRIORITY;\n }\n static getHostLabel(origin) {\n return config_1.config.knownHosts.find(host => host.origin === origin);\n }\n static getSettings(key) {\n if (!this.settings)\n return null;\n if (typeof key === 'string') {\n return this.settings[key];\n }\n return this.settings;\n }\n}\nexports.DataManager = DataManager;\nDataManager.assets = {};\n//# sourceMappingURL=DataManager.js.map", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.resolveAfter = void 0;\nconst resolveAfter = (msec, value) => new Promise(resolve => {\n setTimeout(resolve, msec, value);\n});\nexports.resolveAfter = resolveAfter;\n//# sourceMappingURL=promiseUtils.js.map", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DescriptorStream = void 0;\nconst tslib_1 = require(\"tslib\");\nconst events_1 = tslib_1.__importDefault(require(\"events\"));\nconst transport_1 = require(\"../events/transport\");\nconst device_1 = require(\"../events/device\");\nconst debug_1 = require(\"../utils/debug\");\nconst DataManager_1 = require(\"../data/DataManager\");\nconst promiseUtils_1 = require(\"../utils/promiseUtils\");\nconst logger = (0, debug_1.initLog)('DescriptorStream');\nconst getDiff = (current, descriptors) => {\n const connected = descriptors.filter(d => current.find(x => x.path === d.path) === undefined);\n const disconnected = current.filter(d => descriptors.find(x => x.path === d.path) === undefined);\n const changedSessions = descriptors.filter(d => {\n const currentDescriptor = current.find(x => x.path === d.path);\n if (currentDescriptor) {\n return currentDescriptor.session !== d.session;\n }\n return false;\n });\n const acquired = changedSessions.filter(d => typeof d.session === 'string');\n const released = changedSessions.filter(d => typeof d.session !== 'string');\n const changedDebugSessions = descriptors.filter(d => {\n const currentDescriptor = current.find(x => x.path === d.path);\n if (currentDescriptor) {\n return currentDescriptor.debugSession !== d.debugSession;\n }\n return false;\n });\n const debugAcquired = changedSessions.filter(d => typeof d.debugSession === 'string');\n const debugReleased = changedSessions.filter(d => typeof d.debugSession !== 'string');\n const didUpdate = connected.length +\n disconnected.length +\n changedSessions.length +\n changedDebugSessions.length >\n 0;\n return {\n connected,\n disconnected,\n changedSessions,\n acquired,\n released,\n changedDebugSessions,\n debugAcquired,\n debugReleased,\n didUpdate,\n descriptors,\n };\n};\nclass DescriptorStream extends events_1.default {\n constructor(transport) {\n super();\n this.listening = false;\n this.listenTimestamp = 0;\n this.current = null;\n this.upcoming = [];\n this.transport = transport;\n }\n async listen() {\n const waitForEvent = this.current !== null;\n const current = this.current || [];\n this.listening = true;\n let descriptors;\n try {\n logger.debug('Start listening', current);\n this.listenTimestamp = new Date().getTime();\n descriptors = waitForEvent\n ? await this.transport.listen(current)\n : await this.transport.enumerate();\n if (this.listening && !waitForEvent) {\n if (descriptors.length > 0 && DataManager_1.DataManager.getSettings('pendingTransportEvent')) {\n this.emit(transport_1.TRANSPORT.START_PENDING, descriptors.length);\n }\n else {\n this.emit(transport_1.TRANSPORT.START);\n }\n }\n if (!this.listening)\n return;\n this.upcoming = descriptors;\n logger.debug('Listen result', descriptors);\n this._reportChanges();\n if (this.listening)\n this.listen();\n }\n catch (error) {\n const time = new Date().getTime() - this.listenTimestamp;\n logger.debug('Listen error', 'timestamp', time, typeof error);\n if (time > 1100) {\n await (0, promiseUtils_1.resolveAfter)(1000, null);\n if (this.listening)\n this.listen();\n }\n else {\n logger.warn('Transport error');\n this.emit(transport_1.TRANSPORT.ERROR, error);\n }\n }\n }\n async enumerate() {\n if (!this.listening)\n return;\n try {\n this.upcoming = await this.transport.enumerate();\n this._reportChanges();\n }\n catch (error) {\n }\n }\n stop() {\n this.listening = false;\n this.removeAllListeners();\n }\n _reportChanges() {\n const diff = getDiff(this.current || [], this.upcoming);\n this.current = this.upcoming;\n if (diff.didUpdate && this.listening) {\n diff.connected.forEach(d => {\n this.emit(device_1.DEVICE.CONNECT, d);\n });\n diff.disconnected.forEach(d => {\n this.emit(device_1.DEVICE.DISCONNECT, d);\n });\n diff.acquired.forEach(d => {\n this.emit(device_1.DEVICE.ACQUIRED, d);\n });\n diff.released.forEach(d => {\n this.emit(device_1.DEVICE.RELEASED, d);\n });\n diff.changedSessions.forEach(d => {\n this.emit(device_1.DEVICE.CHANGED, d);\n });\n this.emit(transport_1.TRANSPORT.UPDATE, diff);\n }\n }\n}\nexports.DescriptorStream = DescriptorStream;\n//# sourceMappingURL=DescriptorStream.js.map", "module.exports = require('crypto').randomBytes\n", "'use strict';\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.bech32m = exports.bech32 = void 0;\nconst ALPHABET = 'qpzry9x8gf2tvdw0s3jn54khce6mua7l';\nconst ALPHABET_MAP = {};\nfor (let z = 0; z < ALPHABET.length; z++) {\n const x = ALPHABET.charAt(z);\n ALPHABET_MAP[x] = z;\n}\nfunction polymodStep(pre) {\n const b = pre >> 25;\n return (((pre & 0x1ffffff) << 5) ^\n (-((b >> 0) & 1) & 0x3b6a57b2) ^\n (-((b >> 1) & 1) & 0x26508e6d) ^\n (-((b >> 2) & 1) & 0x1ea119fa) ^\n (-((b >> 3) & 1) & 0x3d4233dd) ^\n (-((b >> 4) & 1) & 0x2a1462b3));\n}\nfunction prefixChk(prefix) {\n let chk = 1;\n for (let i = 0; i < prefix.length; ++i) {\n const c = prefix.charCodeAt(i);\n if (c < 33 || c > 126)\n return 'Invalid prefix (' + prefix + ')';\n chk = polymodStep(chk) ^ (c >> 5);\n }\n chk = polymodStep(chk);\n for (let i = 0; i < prefix.length; ++i) {\n const v = prefix.charCodeAt(i);\n chk = polymodStep(chk) ^ (v & 0x1f);\n }\n return chk;\n}\nfunction convert(data, inBits, outBits, pad) {\n let value = 0;\n let bits = 0;\n const maxV = (1 << outBits) - 1;\n const result = [];\n for (let i = 0; i < data.length; ++i) {\n value = (value << inBits) | data[i];\n bits += inBits;\n while (bits >= outBits) {\n bits -= outBits;\n result.push((value >> bits) & maxV);\n }\n }\n if (pad) {\n if (bits > 0) {\n result.push((value << (outBits - bits)) & maxV);\n }\n }\n else {\n if (bits >= inBits)\n return 'Excess padding';\n if ((value << (outBits - bits)) & maxV)\n return 'Non-zero padding';\n }\n return result;\n}\nfunction toWords(bytes) {\n return convert(bytes, 8, 5, true);\n}\nfunction fromWordsUnsafe(words) {\n const res = convert(words, 5, 8, false);\n if (Array.isArray(res))\n return res;\n}\nfunction fromWords(words) {\n const res = convert(words, 5, 8, false);\n if (Array.isArray(res))\n return res;\n throw new Error(res);\n}\nfunction getLibraryFromEncoding(encoding) {\n let ENCODING_CONST;\n if (encoding === 'bech32') {\n ENCODING_CONST = 1;\n }\n else {\n ENCODING_CONST = 0x2bc830a3;\n }\n function encode(prefix, words, LIMIT) {\n LIMIT = LIMIT || 90;\n if (prefix.length + 7 + words.length > LIMIT)\n throw new TypeError('Exceeds length limit');\n prefix = prefix.toLowerCase();\n // determine chk mod\n let chk = prefixChk(prefix);\n if (typeof chk === 'string')\n throw new Error(chk);\n let result = prefix + '1';\n for (let i = 0; i < words.length; ++i) {\n const x = words[i];\n if (x >> 5 !== 0)\n throw new Error('Non 5-bit word');\n chk = polymodStep(chk) ^ x;\n result += ALPHABET.charAt(x);\n }\n for (let i = 0; i < 6; ++i) {\n chk = polymodStep(chk);\n }\n chk ^= ENCODING_CONST;\n for (let i = 0; i < 6; ++i) {\n const v = (chk >> ((5 - i) * 5)) & 0x1f;\n result += ALPHABET.charAt(v);\n }\n return result;\n }\n function __decode(str, LIMIT) {\n LIMIT = LIMIT || 90;\n if (str.length < 8)\n return str + ' too short';\n if (str.length > LIMIT)\n return 'Exceeds length limit';\n // don't allow mixed case\n const lowered = str.toLowerCase();\n const uppered = str.toUpperCase();\n if (str !== lowered && str !== uppered)\n return 'Mixed-case string ' + str;\n str = lowered;\n const split = str.lastIndexOf('1');\n if (split === -1)\n return 'No separator character for ' + str;\n if (split === 0)\n return 'Missing prefix for ' + str;\n const prefix = str.slice(0, split);\n const wordChars = str.slice(split + 1);\n if (wordChars.length < 6)\n return 'Data too short';\n let chk = prefixChk(prefix);\n if (typeof chk === 'string')\n return chk;\n const words = [];\n for (let i = 0; i < wordChars.length; ++i) {\n const c = wordChars.charAt(i);\n const v = ALPHABET_MAP[c];\n if (v === undefined)\n return 'Unknown character ' + c;\n chk = polymodStep(chk) ^ v;\n // not in the checksum?\n if (i + 6 >= wordChars.length)\n continue;\n words.push(v);\n }\n if (chk !== ENCODING_CONST)\n return 'Invalid checksum for ' + str;\n return { prefix, words };\n }\n function decodeUnsafe(str, LIMIT) {\n const res = __decode(str, LIMIT);\n if (typeof res === 'object')\n return res;\n }\n function decode(str, LIMIT) {\n const res = __decode(str, LIMIT);\n if (typeof res === 'object')\n return res;\n throw new Error(res);\n }\n return {\n decodeUnsafe,\n decode,\n encode,\n toWords,\n fromWordsUnsafe,\n fromWords,\n };\n}\nexports.bech32 = getLibraryFromEncoding('bech32');\nexports.bech32m = getLibraryFromEncoding('bech32m');\n", "var types = {\n Array: function (value) { return value !== null && value !== undefined && value.constructor === Array },\n Boolean: function (value) { return typeof value === 'boolean' },\n Function: function (value) { return typeof value === 'function' },\n Nil: function (value) { return value === undefined || value === null },\n Number: function (value) { return typeof value === 'number' },\n Object: function (value) { return typeof value === 'object' },\n String: function (value) { return typeof value === 'string' },\n '': function () { return true }\n}\n\n// TODO: deprecate\ntypes.Null = types.Nil\n\nfor (var typeName in types) {\n types[typeName].toJSON = function (t) {\n return t\n }.bind(null, typeName)\n}\n\nmodule.exports = types\n", "var native = require('./native')\n\nfunction getTypeName (fn) {\n return fn.name || fn.toString().match(/function (.*?)\\s*\\(/)[1]\n}\n\nfunction getValueTypeName (value) {\n return native.Nil(value) ? '' : getTypeName(value.constructor)\n}\n\nfunction getValue (value) {\n if (native.Function(value)) return ''\n if (native.String(value)) return JSON.stringify(value)\n if (value && native.Object(value)) return ''\n return value\n}\n\nfunction captureStackTrace (e, t) {\n if (Error.captureStackTrace) {\n Error.captureStackTrace(e, t)\n }\n}\n\nfunction tfJSON (type) {\n if (native.Function(type)) return type.toJSON ? type.toJSON() : getTypeName(type)\n if (native.Array(type)) return 'Array'\n if (type && native.Object(type)) return 'Object'\n\n return type !== undefined ? type : ''\n}\n\nfunction tfErrorString (type, value, valueTypeName) {\n var valueJson = getValue(value)\n\n return 'Expected ' + tfJSON(type) + ', got' +\n (valueTypeName !== '' ? ' ' + valueTypeName : '') +\n (valueJson !== '' ? ' ' + valueJson : '')\n}\n\nfunction TfTypeError (type, value, valueTypeName) {\n valueTypeName = valueTypeName || getValueTypeName(value)\n this.message = tfErrorString(type, value, valueTypeName)\n\n captureStackTrace(this, TfTypeError)\n this.__type = type\n this.__value = value\n this.__valueTypeName = valueTypeName\n}\n\nTfTypeError.prototype = Object.create(Error.prototype)\nTfTypeError.prototype.constructor = TfTypeError\n\nfunction tfPropertyErrorString (type, label, name, value, valueTypeName) {\n var description = '\" of type '\n if (label === 'key') description = '\" with key type '\n\n return tfErrorString('property \"' + tfJSON(name) + description + tfJSON(type), value, valueTypeName)\n}\n\nfunction TfPropertyTypeError (type, property, label, value, valueTypeName) {\n if (type) {\n valueTypeName = valueTypeName || getValueTypeName(value)\n this.message = tfPropertyErrorString(type, label, property, value, valueTypeName)\n } else {\n this.message = 'Unexpected property \"' + property + '\"'\n }\n\n captureStackTrace(this, TfTypeError)\n this.__label = label\n this.__property = property\n this.__type = type\n this.__value = value\n this.__valueTypeName = valueTypeName\n}\n\nTfPropertyTypeError.prototype = Object.create(Error.prototype)\nTfPropertyTypeError.prototype.constructor = TfTypeError\n\nfunction tfCustomError (expected, actual) {\n return new TfTypeError(expected, {}, actual)\n}\n\nfunction tfSubError (e, property, label) {\n // sub child?\n if (e instanceof TfPropertyTypeError) {\n property = property + '.' + e.__property\n\n e = new TfPropertyTypeError(\n e.__type, property, e.__label, e.__value, e.__valueTypeName\n )\n\n // child?\n } else if (e instanceof TfTypeError) {\n e = new TfPropertyTypeError(\n e.__type, property, label, e.__value, e.__valueTypeName\n )\n }\n\n captureStackTrace(e)\n return e\n}\n\nmodule.exports = {\n TfTypeError: TfTypeError,\n TfPropertyTypeError: TfPropertyTypeError,\n tfCustomError: tfCustomError,\n tfSubError: tfSubError,\n tfJSON: tfJSON,\n getValueTypeName: getValueTypeName\n}\n", "var NATIVE = require('./native')\nvar ERRORS = require('./errors')\n\nfunction _Buffer (value) {\n return Buffer.isBuffer(value)\n}\n\nfunction Hex (value) {\n return typeof value === 'string' && /^([0-9a-f]{2})+$/i.test(value)\n}\n\nfunction _LengthN (type, length) {\n var name = type.toJSON()\n\n function Length (value) {\n if (!type(value)) return false\n if (value.length === length) return true\n\n throw ERRORS.tfCustomError(name + '(Length: ' + length + ')', name + '(Length: ' + value.length + ')')\n }\n Length.toJSON = function () { return name }\n\n return Length\n}\n\nvar _ArrayN = _LengthN.bind(null, NATIVE.Array)\nvar _BufferN = _LengthN.bind(null, _Buffer)\nvar _HexN = _LengthN.bind(null, Hex)\nvar _StringN = _LengthN.bind(null, NATIVE.String)\n\nfunction Range (a, b, f) {\n f = f || NATIVE.Number\n function _range (value, strict) {\n return f(value, strict) && (value > a) && (value < b)\n }\n _range.toJSON = function () {\n return `${f.toJSON()} between [${a}, ${b}]`\n }\n return _range\n}\n\nvar INT53_MAX = Math.pow(2, 53) - 1\n\nfunction Finite (value) {\n return typeof value === 'number' && isFinite(value)\n}\nfunction Int8 (value) { return ((value << 24) >> 24) === value }\nfunction Int16 (value) { return ((value << 16) >> 16) === value }\nfunction Int32 (value) { return (value | 0) === value }\nfunction Int53 (value) {\n return typeof value === 'number' &&\n value >= -INT53_MAX &&\n value <= INT53_MAX &&\n Math.floor(value) === value\n}\nfunction UInt8 (value) { return (value & 0xff) === value }\nfunction UInt16 (value) { return (value & 0xffff) === value }\nfunction UInt32 (value) { return (value >>> 0) === value }\nfunction UInt53 (value) {\n return typeof value === 'number' &&\n value >= 0 &&\n value <= INT53_MAX &&\n Math.floor(value) === value\n}\n\nvar types = {\n ArrayN: _ArrayN,\n Buffer: _Buffer,\n BufferN: _BufferN,\n Finite: Finite,\n Hex: Hex,\n HexN: _HexN,\n Int8: Int8,\n Int16: Int16,\n Int32: Int32,\n Int53: Int53,\n Range: Range,\n StringN: _StringN,\n UInt8: UInt8,\n UInt16: UInt16,\n UInt32: UInt32,\n UInt53: UInt53\n}\n\nfor (var typeName in types) {\n types[typeName].toJSON = function (t) {\n return t\n }.bind(null, typeName)\n}\n\nmodule.exports = types\n", "var ERRORS = require('./errors')\nvar NATIVE = require('./native')\n\n// short-hand\nvar tfJSON = ERRORS.tfJSON\nvar TfTypeError = ERRORS.TfTypeError\nvar TfPropertyTypeError = ERRORS.TfPropertyTypeError\nvar tfSubError = ERRORS.tfSubError\nvar getValueTypeName = ERRORS.getValueTypeName\n\nvar TYPES = {\n arrayOf: function arrayOf (type, options) {\n type = compile(type)\n options = options || {}\n\n function _arrayOf (array, strict) {\n if (!NATIVE.Array(array)) return false\n if (NATIVE.Nil(array)) return false\n if (options.minLength !== undefined && array.length < options.minLength) return false\n if (options.maxLength !== undefined && array.length > options.maxLength) return false\n if (options.length !== undefined && array.length !== options.length) return false\n\n return array.every(function (value, i) {\n try {\n return typeforce(type, value, strict)\n } catch (e) {\n throw tfSubError(e, i)\n }\n })\n }\n _arrayOf.toJSON = function () {\n var str = '[' + tfJSON(type) + ']'\n if (options.length !== undefined) {\n str += '{' + options.length + '}'\n } else if (options.minLength !== undefined || options.maxLength !== undefined) {\n str += '{' +\n (options.minLength === undefined ? 0 : options.minLength) + ',' +\n (options.maxLength === undefined ? Infinity : options.maxLength) + '}'\n }\n return str\n }\n\n return _arrayOf\n },\n\n maybe: function maybe (type) {\n type = compile(type)\n\n function _maybe (value, strict) {\n return NATIVE.Nil(value) || type(value, strict, maybe)\n }\n _maybe.toJSON = function () { return '?' + tfJSON(type) }\n\n return _maybe\n },\n\n map: function map (propertyType, propertyKeyType) {\n propertyType = compile(propertyType)\n if (propertyKeyType) propertyKeyType = compile(propertyKeyType)\n\n function _map (value, strict) {\n if (!NATIVE.Object(value)) return false\n if (NATIVE.Nil(value)) return false\n\n for (var propertyName in value) {\n try {\n if (propertyKeyType) {\n typeforce(propertyKeyType, propertyName, strict)\n }\n } catch (e) {\n throw tfSubError(e, propertyName, 'key')\n }\n\n try {\n var propertyValue = value[propertyName]\n typeforce(propertyType, propertyValue, strict)\n } catch (e) {\n throw tfSubError(e, propertyName)\n }\n }\n\n return true\n }\n\n if (propertyKeyType) {\n _map.toJSON = function () {\n return '{' + tfJSON(propertyKeyType) + ': ' + tfJSON(propertyType) + '}'\n }\n } else {\n _map.toJSON = function () { return '{' + tfJSON(propertyType) + '}' }\n }\n\n return _map\n },\n\n object: function object (uncompiled) {\n var type = {}\n\n for (var typePropertyName in uncompiled) {\n type[typePropertyName] = compile(uncompiled[typePropertyName])\n }\n\n function _object (value, strict) {\n if (!NATIVE.Object(value)) return false\n if (NATIVE.Nil(value)) return false\n\n var propertyName\n\n try {\n for (propertyName in type) {\n var propertyType = type[propertyName]\n var propertyValue = value[propertyName]\n\n typeforce(propertyType, propertyValue, strict)\n }\n } catch (e) {\n throw tfSubError(e, propertyName)\n }\n\n if (strict) {\n for (propertyName in value) {\n if (type[propertyName]) continue\n\n throw new TfPropertyTypeError(undefined, propertyName)\n }\n }\n\n return true\n }\n _object.toJSON = function () { return tfJSON(type) }\n\n return _object\n },\n\n anyOf: function anyOf () {\n var types = [].slice.call(arguments).map(compile)\n\n function _anyOf (value, strict) {\n return types.some(function (type) {\n try {\n return typeforce(type, value, strict)\n } catch (e) {\n return false\n }\n })\n }\n _anyOf.toJSON = function () { return types.map(tfJSON).join('|') }\n\n return _anyOf\n },\n\n allOf: function allOf () {\n var types = [].slice.call(arguments).map(compile)\n\n function _allOf (value, strict) {\n return types.every(function (type) {\n try {\n return typeforce(type, value, strict)\n } catch (e) {\n return false\n }\n })\n }\n _allOf.toJSON = function () { return types.map(tfJSON).join(' & ') }\n\n return _allOf\n },\n\n quacksLike: function quacksLike (type) {\n function _quacksLike (value) {\n return type === getValueTypeName(value)\n }\n _quacksLike.toJSON = function () { return type }\n\n return _quacksLike\n },\n\n tuple: function tuple () {\n var types = [].slice.call(arguments).map(compile)\n\n function _tuple (values, strict) {\n if (NATIVE.Nil(values)) return false\n if (NATIVE.Nil(values.length)) return false\n if (strict && (values.length !== types.length)) return false\n\n return types.every(function (type, i) {\n try {\n return typeforce(type, values[i], strict)\n } catch (e) {\n throw tfSubError(e, i)\n }\n })\n }\n _tuple.toJSON = function () { return '(' + types.map(tfJSON).join(', ') + ')' }\n\n return _tuple\n },\n\n value: function value (expected) {\n function _value (actual) {\n return actual === expected\n }\n _value.toJSON = function () { return expected }\n\n return _value\n }\n}\n\n// TODO: deprecate\nTYPES.oneOf = TYPES.anyOf\n\nfunction compile (type) {\n if (NATIVE.String(type)) {\n if (type[0] === '?') return TYPES.maybe(type.slice(1))\n\n return NATIVE[type] || TYPES.quacksLike(type)\n } else if (type && NATIVE.Object(type)) {\n if (NATIVE.Array(type)) {\n if (type.length !== 1) throw new TypeError('Expected compile() parameter of type Array of length 1')\n return TYPES.arrayOf(type[0])\n }\n\n return TYPES.object(type)\n } else if (NATIVE.Function(type)) {\n return type\n }\n\n return TYPES.value(type)\n}\n\nfunction typeforce (type, value, strict, surrogate) {\n if (NATIVE.Function(type)) {\n if (type(value, strict)) return true\n\n throw new TfTypeError(surrogate || type, value)\n }\n\n // JIT\n return typeforce(compile(type), value, strict)\n}\n\n// assign types to typeforce function\nfor (var typeName in NATIVE) {\n typeforce[typeName] = NATIVE[typeName]\n}\n\nfor (typeName in TYPES) {\n typeforce[typeName] = TYPES[typeName]\n}\n\nvar EXTRA = require('./extra')\nfor (typeName in EXTRA) {\n typeforce[typeName] = EXTRA[typeName]\n}\n\ntypeforce.compile = compile\ntypeforce.TfTypeError = TfTypeError\ntypeforce.TfPropertyTypeError = TfPropertyTypeError\n\nmodule.exports = typeforce\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isNetworkType = exports.doge = exports.decredSim = exports.decredTest = exports.decred = exports.komodo = exports.peercoinTest = exports.peercoin = exports.zcashTest = exports.zcash = exports.dashTest = exports.dash = exports.litecoinTest = exports.litecoin = exports.bitcoingold = exports.bitcoincashTest = exports.bitcoincash = exports.testnet = exports.regtest = exports.bitcoin = void 0;\nconst typeforce = require(\"typeforce\");\nexports.bitcoin = {\n messagePrefix: '\\x18Bitcoin Signed Message:\\n',\n bech32: 'bc',\n bip32: {\n public: 0x0488b21e,\n private: 0x0488ade4,\n },\n pubKeyHash: 0x00,\n scriptHash: 0x05,\n wif: 0x80,\n};\nexports.regtest = {\n messagePrefix: '\\x18Bitcoin Signed Message:\\n',\n bech32: 'bcrt',\n bip32: {\n public: 0x043587cf,\n private: 0x04358394,\n },\n pubKeyHash: 0x6f,\n scriptHash: 0xc4,\n wif: 0xef,\n};\nexports.testnet = {\n messagePrefix: '\\x18Bitcoin Signed Message:\\n',\n bech32: 'tb',\n bip32: {\n public: 0x043587cf,\n private: 0x04358394,\n },\n pubKeyHash: 0x6f,\n scriptHash: 0xc4,\n wif: 0xef,\n};\nexports.bitcoincash = {\n messagePrefix: '\\x18Bitcoin Signed Message:\\n',\n bech32: '',\n bip32: {\n public: 0x0488b21e,\n private: 0x0488ade4,\n },\n pubKeyHash: 0x00,\n scriptHash: 0x05,\n wif: 0x80,\n forkId: 0x00,\n};\nexports.bitcoincashTest = {\n messagePrefix: '\\x18Bitcoin Signed Message:\\n',\n bech32: '',\n bip32: {\n public: 0x043587cf,\n private: 0x04358394,\n },\n pubKeyHash: 0x6f,\n scriptHash: 0xc4,\n wif: 0xef,\n forkId: 0x00,\n};\nexports.bitcoingold = {\n messagePrefix: '\\x18Bitcoin Gold Signed Message:\\n',\n bech32: 'btg',\n bip32: {\n public: 0x0488b21e,\n private: 0x0488ade4,\n },\n pubKeyHash: 0x26,\n scriptHash: 0x17,\n wif: 0x80,\n forkId: 0x4f,\n};\nexports.litecoin = {\n messagePrefix: '\\x19Litecoin Signed Message:\\n',\n bech32: 'ltc',\n bip32: {\n public: 0x019da462,\n private: 0x019d9cfe,\n },\n pubKeyHash: 0x30,\n scriptHash: 0x32,\n wif: 0xb0,\n};\nexports.litecoinTest = {\n messagePrefix: '\\x19Litecoin Signed Message:\\n',\n bech32: 'tltc',\n bip32: {\n public: 0x043587cf,\n private: 0x04358394,\n },\n pubKeyHash: 0x6f,\n scriptHash: 0x3a,\n wif: 0xb0,\n};\nexports.dash = {\n messagePrefix: '\\x19DarkCoin Signed Message:\\n',\n bech32: '',\n bip32: {\n public: 0x02fe52cc,\n private: 0x2fe52f8,\n },\n pubKeyHash: 0x4c,\n scriptHash: 0x10,\n wif: 0xcc,\n};\nexports.dashTest = {\n messagePrefix: '\\x19DarkCoin Signed Message:\\n',\n bech32: '',\n bip32: {\n public: 0x043587cf,\n private: 0x04358394,\n },\n pubKeyHash: 0x8c,\n scriptHash: 0x13,\n wif: 0xef,\n};\nexports.zcash = {\n messagePrefix: '\\x18ZCash Signed Message:\\n',\n bech32: '',\n bip32: {\n public: 0x0488b21e,\n private: 0x0488ade4,\n },\n pubKeyHash: 0x1cb8,\n scriptHash: 0x1cbd,\n wif: 0x80,\n};\nexports.zcashTest = {\n messagePrefix: '\\x18ZCash Signed Message:\\n',\n bech32: '',\n bip32: {\n public: 0x043587cf,\n private: 0x04358394,\n },\n pubKeyHash: 0x1d25,\n scriptHash: 0x1cba,\n wif: 0xef,\n};\nexports.peercoin = {\n messagePrefix: '\\x18Peercoin Signed Message:\\n',\n bech32: 'pc',\n bip32: {\n public: 0x488b21e,\n private: 0x0488ade4,\n },\n pubKeyHash: 0x37,\n scriptHash: 0x75,\n wif: 0,\n};\nexports.peercoinTest = {\n messagePrefix: '\\x18Peercoin Signed Message:\\n',\n bech32: 'tpc',\n bip32: {\n public: 0x43587cf,\n private: 0x04358394,\n },\n pubKeyHash: 0x6f,\n scriptHash: 0xc4,\n wif: 0,\n};\nexports.komodo = {\n messagePrefix: '\\x18Komodo Signed Message:\\n',\n bech32: '',\n bip32: {\n public: 0x0488b21e,\n private: 0x0488ade4,\n },\n pubKeyHash: 0x3c,\n scriptHash: 0x55,\n wif: 0xbc,\n};\nexports.decred = {\n messagePrefix: '\\x17Decred Signed Message:\\n',\n bech32: '',\n bip32: {\n public: 0x02fda926,\n private: 0x02fda4e8,\n },\n pubKeyHash: 0x073f,\n scriptHash: 0x071a,\n wif: 0x22de,\n};\nexports.decredTest = {\n messagePrefix: '\\x17Decred Signed Message:\\n',\n bech32: '',\n bip32: {\n public: 0x043587d1,\n private: 0x04358397,\n },\n pubKeyHash: 0x0f21,\n scriptHash: 0x0efc,\n wif: 0x230e,\n};\nexports.decredSim = {\n messagePrefix: '\\x17Decred Signed Message:\\n',\n bech32: '',\n bip32: {\n public: 0x0420bd3d,\n private: 0x0420b903,\n },\n pubKeyHash: 0x0e91,\n scriptHash: 0x0e6c,\n wif: 0x2307,\n};\nexports.doge = {\n messagePrefix: '\\x19Dogecoin Signed Message:\\n',\n bech32: '',\n bip32: {\n public: 0x02facafd,\n private: 0x02fac398,\n },\n pubKeyHash: 0x1e,\n scriptHash: 0x16,\n wif: 0x9e,\n};\nconst NETWORK_TYPES = {\n bitcoinCash: [exports.bitcoincash, exports.bitcoincashTest],\n dash: [exports.dash, exports.dashTest],\n decred: [exports.decred, exports.decredTest, exports.decredSim],\n peercoin: [exports.peercoin, exports.peercoinTest],\n zcash: [exports.zcash, exports.zcashTest, exports.komodo],\n litecoin: [exports.litecoin, exports.litecoinTest],\n};\nfunction isNetworkType(type, network) {\n if (typeof type !== 'string' || !network || !NETWORK_TYPES[type])\n return false;\n try {\n typeforce({\n bip32: {\n public: typeforce.UInt32,\n private: typeforce.UInt32,\n },\n pubKeyHash: typeforce.anyOf(typeforce.UInt8, typeforce.UInt16),\n scriptHash: typeforce.anyOf(typeforce.UInt8, typeforce.UInt16),\n }, network);\n }\n catch (e) {\n return false;\n }\n return !!NETWORK_TYPES[type].find(n => n.bip32.public === network.bip32.public &&\n n.bip32.private === network.bip32.private &&\n ((!n.bech32 && !network.bech32) || n.bech32 === network.bech32) &&\n ((!n.forkId && !network.forkId) || n.forkId === network.forkId) &&\n n.pubKeyHash === network.pubKeyHash &&\n n.scriptHash === network.scriptHash);\n}\nexports.isNetworkType = isNetworkType;\n//# sourceMappingURL=networks.js.map", "module.exports = require('crypto').createHash\n", "/*! safe-buffer. MIT License. Feross Aboukhadijeh */\n/* eslint-disable node/no-deprecated-api */\nvar buffer = require('buffer')\nvar Buffer = buffer.Buffer\n\n// alternative to using Object.keys for old browsers\nfunction copyProps (src, dst) {\n for (var key in src) {\n dst[key] = src[key]\n }\n}\nif (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) {\n module.exports = buffer\n} else {\n // Copy properties from require('buffer')\n copyProps(buffer, exports)\n exports.Buffer = SafeBuffer\n}\n\nfunction SafeBuffer (arg, encodingOrOffset, length) {\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.prototype = Object.create(Buffer.prototype)\n\n// Copy static methods from Buffer\ncopyProps(Buffer, SafeBuffer)\n\nSafeBuffer.from = function (arg, encodingOrOffset, length) {\n if (typeof arg === 'number') {\n throw new TypeError('Argument must not be a number')\n }\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.alloc = function (size, fill, encoding) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n var buf = Buffer(size)\n if (fill !== undefined) {\n if (typeof encoding === 'string') {\n buf.fill(fill, encoding)\n } else {\n buf.fill(fill)\n }\n } else {\n buf.fill(0)\n }\n return buf\n}\n\nSafeBuffer.allocUnsafe = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return Buffer(size)\n}\n\nSafeBuffer.allocUnsafeSlow = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return buffer.SlowBuffer(size)\n}\n", "'use strict'\n// base-x encoding / decoding\n// Copyright (c) 2018 base-x contributors\n// Copyright (c) 2014-2018 The Bitcoin Core developers (base58.cpp)\n// Distributed under the MIT software license, see the accompanying\n// file LICENSE or http://www.opensource.org/licenses/mit-license.php.\n// @ts-ignore\nvar _Buffer = require('safe-buffer').Buffer\nfunction base (ALPHABET) {\n if (ALPHABET.length >= 255) { throw new TypeError('Alphabet too long') }\n var BASE_MAP = new Uint8Array(256)\n for (var j = 0; j < BASE_MAP.length; j++) {\n BASE_MAP[j] = 255\n }\n for (var i = 0; i < ALPHABET.length; i++) {\n var x = ALPHABET.charAt(i)\n var xc = x.charCodeAt(0)\n if (BASE_MAP[xc] !== 255) { throw new TypeError(x + ' is ambiguous') }\n BASE_MAP[xc] = i\n }\n var BASE = ALPHABET.length\n var LEADER = ALPHABET.charAt(0)\n var FACTOR = Math.log(BASE) / Math.log(256) // log(BASE) / log(256), rounded up\n var iFACTOR = Math.log(256) / Math.log(BASE) // log(256) / log(BASE), rounded up\n function encode (source) {\n if (Array.isArray(source) || source instanceof Uint8Array) { source = _Buffer.from(source) }\n if (!_Buffer.isBuffer(source)) { throw new TypeError('Expected Buffer') }\n if (source.length === 0) { return '' }\n // Skip & count leading zeroes.\n var zeroes = 0\n var length = 0\n var pbegin = 0\n var pend = source.length\n while (pbegin !== pend && source[pbegin] === 0) {\n pbegin++\n zeroes++\n }\n // Allocate enough space in big-endian base58 representation.\n var size = ((pend - pbegin) * iFACTOR + 1) >>> 0\n var b58 = new Uint8Array(size)\n // Process the bytes.\n while (pbegin !== pend) {\n var carry = source[pbegin]\n // Apply \"b58 = b58 * 256 + ch\".\n var i = 0\n for (var it1 = size - 1; (carry !== 0 || i < length) && (it1 !== -1); it1--, i++) {\n carry += (256 * b58[it1]) >>> 0\n b58[it1] = (carry % BASE) >>> 0\n carry = (carry / BASE) >>> 0\n }\n if (carry !== 0) { throw new Error('Non-zero carry') }\n length = i\n pbegin++\n }\n // Skip leading zeroes in base58 result.\n var it2 = size - length\n while (it2 !== size && b58[it2] === 0) {\n it2++\n }\n // Translate the result into a string.\n var str = LEADER.repeat(zeroes)\n for (; it2 < size; ++it2) { str += ALPHABET.charAt(b58[it2]) }\n return str\n }\n function decodeUnsafe (source) {\n if (typeof source !== 'string') { throw new TypeError('Expected String') }\n if (source.length === 0) { return _Buffer.alloc(0) }\n var psz = 0\n // Skip and count leading '1's.\n var zeroes = 0\n var length = 0\n while (source[psz] === LEADER) {\n zeroes++\n psz++\n }\n // Allocate enough space in big-endian base256 representation.\n var size = (((source.length - psz) * FACTOR) + 1) >>> 0 // log(58) / log(256), rounded up.\n var b256 = new Uint8Array(size)\n // Process the characters.\n while (source[psz]) {\n // Decode character\n var carry = BASE_MAP[source.charCodeAt(psz)]\n // Invalid character\n if (carry === 255) { return }\n var i = 0\n for (var it3 = size - 1; (carry !== 0 || i < length) && (it3 !== -1); it3--, i++) {\n carry += (BASE * b256[it3]) >>> 0\n b256[it3] = (carry % 256) >>> 0\n carry = (carry / 256) >>> 0\n }\n if (carry !== 0) { throw new Error('Non-zero carry') }\n length = i\n psz++\n }\n // Skip leading zeroes in b256.\n var it4 = size - length\n while (it4 !== size && b256[it4] === 0) {\n it4++\n }\n var vch = _Buffer.allocUnsafe(zeroes + (size - it4))\n vch.fill(0x00, 0, zeroes)\n var j = zeroes\n while (it4 !== size) {\n vch[j++] = b256[it4++]\n }\n return vch\n }\n function decode (string) {\n var buffer = decodeUnsafe(string)\n if (buffer) { return buffer }\n throw new Error('Non-base' + BASE + ' character')\n }\n return {\n encode: encode,\n decodeUnsafe: decodeUnsafe,\n decode: decode\n }\n}\nmodule.exports = base\n", "var basex = require('base-x')\nvar ALPHABET = '123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz'\n\nmodule.exports = basex(ALPHABET)\n", "'use strict'\n\nvar base58 = require('bs58')\nvar Buffer = require('safe-buffer').Buffer\n\nmodule.exports = function (checksumFn) {\n // Encode a buffer as a base58-check encoded string\n function encode (payload) {\n var checksum = checksumFn(payload)\n\n return base58.encode(Buffer.concat([\n payload,\n checksum\n ], payload.length + 4))\n }\n\n function decodeRaw (buffer) {\n var payload = buffer.slice(0, -4)\n var checksum = buffer.slice(-4)\n var newChecksum = checksumFn(payload)\n\n if (checksum[0] ^ newChecksum[0] |\n checksum[1] ^ newChecksum[1] |\n checksum[2] ^ newChecksum[2] |\n checksum[3] ^ newChecksum[3]) return\n\n return payload\n }\n\n // Decode a base58-check encoded string to a buffer, no result if checksum is wrong\n function decodeUnsafe (string) {\n var buffer = base58.decodeUnsafe(string)\n if (!buffer) return\n\n return decodeRaw(buffer)\n }\n\n function decode (string) {\n var buffer = base58.decode(string)\n var payload = decodeRaw(buffer, checksumFn)\n if (!payload) throw new Error('Invalid checksum')\n return payload\n }\n\n return {\n encode: encode,\n decode: decode,\n decodeUnsafe: decodeUnsafe\n }\n}\n", "'use strict'\n\nvar createHash = require('create-hash')\nvar bs58checkBase = require('./base')\n\n// SHA256(SHA256(buffer))\nfunction sha256x2 (buffer) {\n var tmp = createHash('sha256').update(buffer).digest()\n return createHash('sha256').update(tmp).digest()\n}\n\nmodule.exports = bs58checkBase(sha256x2)\n", "/**\n * @license\n * https://github.com/ealmansi/cashaddrjs\n * Copyright (c) 2017-2020 Emilio Almansi\n * Distributed under the MIT software license, see the accompanying\n * file LICENSE or http://www.opensource.org/licenses/mit-license.php.\n */\n\n'use strict';\n\n/**\n * Validation utility.\n *\n * @module validation\n */\n\n/**\n * Error thrown when encoding or decoding fail due to invalid input.\n *\n * @constructor ValidationError\n * @param {string} message Error description.\n */\nfunction ValidationError(message) {\n var error = new Error();\n this.name = error.name = 'ValidationError';\n this.message = error.message = message;\n this.stack = error.stack;\n}\n\nValidationError.prototype = Object.create(Error.prototype);\n\n/**\n * Validates a given condition, throwing a {@link ValidationError} if\n * the given condition does not hold.\n *\n * @static\n * @param {boolean} condition Condition to validate.\n * @param {string} message Error message in case the condition does not hold.\n */\nfunction validate(condition, message) {\n if (!condition) {\n throw new ValidationError(message);\n }\n}\n\nmodule.exports = {\n ValidationError: ValidationError,\n validate: validate,\n};\n", "/**\n * @license\n * https://github.com/ealmansi/cashaddrjs\n * Copyright (c) 2017-2020 Emilio Almansi\n * Distributed under the MIT software license, see the accompanying\n * file LICENSE or http://www.opensource.org/licenses/mit-license.php.\n */\n\n'use strict';\n\nvar validate = require('./validation').validate;\n\n/**\n * Base32 encoding and decoding.\n *\n * @module base32\n */\n\n/**\n * Charset containing the 32 symbols used in the base32 encoding.\n * @private\n */\nvar CHARSET = 'qpzry9x8gf2tvdw0s3jn54khce6mua7l';\n\n/**\n * Inverted index mapping each symbol into its index within the charset.\n * @private\n */\nvar CHARSET_INVERSE_INDEX = {\n 'q': 0, 'p': 1, 'z': 2, 'r': 3, 'y': 4, '9': 5, 'x': 6, '8': 7,\n 'g': 8, 'f': 9, '2': 10, 't': 11, 'v': 12, 'd': 13, 'w': 14, '0': 15,\n 's': 16, '3': 17, 'j': 18, 'n': 19, '5': 20, '4': 21, 'k': 22, 'h': 23,\n 'c': 24, 'e': 25, '6': 26, 'm': 27, 'u': 28, 'a': 29, '7': 30, 'l': 31,\n};\n\n/**\n * Encodes the given array of 5-bit integers as a base32-encoded string.\n *\n * @static\n * @param {Uint8Array} data Array of integers between 0 and 31 inclusive.\n * @returns {string}\n * @throws {ValidationError}\n */\nfunction encode(data) {\n validate(data instanceof Uint8Array, 'Invalid data: ' + data + '.');\n var base32 = '';\n for (var i = 0; i < data.length; ++i) {\n var value = data[i];\n validate(0 <= value && value < 32, 'Invalid value: ' + value + '.');\n base32 += CHARSET[value];\n }\n return base32;\n}\n\n/**\n * Decodes the given base32-encoded string into an array of 5-bit integers.\n *\n * @static\n * @param {string} string\n * @returns {Uint8Array}\n * @throws {ValidationError}\n */\nfunction decode(string) {\n validate(typeof string === 'string', 'Invalid base32-encoded string: ' + string + '.');\n var data = new Uint8Array(string.length);\n for (var i = 0; i < string.length; ++i) {\n var value = string[i];\n validate(value in CHARSET_INVERSE_INDEX, 'Invalid value: ' + value + '.');\n data[i] = CHARSET_INVERSE_INDEX[value];\n }\n return data;\n}\n\nmodule.exports = {\n encode: encode,\n decode: decode,\n};\n", "var bigInt = (function (undefined) {\r\n \"use strict\";\r\n\r\n var BASE = 1e7,\r\n LOG_BASE = 7,\r\n MAX_INT = 9007199254740992,\r\n MAX_INT_ARR = smallToArray(MAX_INT),\r\n LOG_MAX_INT = Math.log(MAX_INT);\r\n\r\n function Integer(v, radix) {\r\n if (typeof v === \"undefined\") return Integer[0];\r\n if (typeof radix !== \"undefined\") return +radix === 10 ? parseValue(v) : parseBase(v, radix);\r\n return parseValue(v);\r\n }\r\n\r\n function BigInteger(value, sign) {\r\n this.value = value;\r\n this.sign = sign;\r\n this.isSmall = false;\r\n }\r\n BigInteger.prototype = Object.create(Integer.prototype);\r\n\r\n function SmallInteger(value) {\r\n this.value = value;\r\n this.sign = value < 0;\r\n this.isSmall = true;\r\n }\r\n SmallInteger.prototype = Object.create(Integer.prototype);\r\n\r\n function isPrecise(n) {\r\n return -MAX_INT < n && n < MAX_INT;\r\n }\r\n\r\n function smallToArray(n) { // For performance reasons doesn't reference BASE, need to change this function if BASE changes\r\n if (n < 1e7)\r\n return [n];\r\n if (n < 1e14)\r\n return [n % 1e7, Math.floor(n / 1e7)];\r\n return [n % 1e7, Math.floor(n / 1e7) % 1e7, Math.floor(n / 1e14)];\r\n }\r\n\r\n function arrayToSmall(arr) { // If BASE changes this function may need to change\r\n trim(arr);\r\n var length = arr.length;\r\n if (length < 4 && compareAbs(arr, MAX_INT_ARR) < 0) {\r\n switch (length) {\r\n case 0: return 0;\r\n case 1: return arr[0];\r\n case 2: return arr[0] + arr[1] * BASE;\r\n default: return arr[0] + (arr[1] + arr[2] * BASE) * BASE;\r\n }\r\n }\r\n return arr;\r\n }\r\n\r\n function trim(v) {\r\n var i = v.length;\r\n while (v[--i] === 0);\r\n v.length = i + 1;\r\n }\r\n\r\n function createArray(length) { // function shamelessly stolen from Yaffle's library https://github.com/Yaffle/BigInteger\r\n var x = new Array(length);\r\n var i = -1;\r\n while (++i < length) {\r\n x[i] = 0;\r\n }\r\n return x;\r\n }\r\n\r\n function truncate(n) {\r\n if (n > 0) return Math.floor(n);\r\n return Math.ceil(n);\r\n }\r\n\r\n function add(a, b) { // assumes a and b are arrays with a.length >= b.length\r\n var l_a = a.length,\r\n l_b = b.length,\r\n r = new Array(l_a),\r\n carry = 0,\r\n base = BASE,\r\n sum, i;\r\n for (i = 0; i < l_b; i++) {\r\n sum = a[i] + b[i] + carry;\r\n carry = sum >= base ? 1 : 0;\r\n r[i] = sum - carry * base;\r\n }\r\n while (i < l_a) {\r\n sum = a[i] + carry;\r\n carry = sum === base ? 1 : 0;\r\n r[i++] = sum - carry * base;\r\n }\r\n if (carry > 0) r.push(carry);\r\n return r;\r\n }\r\n\r\n function addAny(a, b) {\r\n if (a.length >= b.length) return add(a, b);\r\n return add(b, a);\r\n }\r\n\r\n function addSmall(a, carry) { // assumes a is array, carry is number with 0 <= carry < MAX_INT\r\n var l = a.length,\r\n r = new Array(l),\r\n base = BASE,\r\n sum, i;\r\n for (i = 0; i < l; i++) {\r\n sum = a[i] - base + carry;\r\n carry = Math.floor(sum / base);\r\n r[i] = sum - carry * base;\r\n carry += 1;\r\n }\r\n while (carry > 0) {\r\n r[i++] = carry % base;\r\n carry = Math.floor(carry / base);\r\n }\r\n return r;\r\n }\r\n\r\n BigInteger.prototype.add = function (v) {\r\n var n = parseValue(v);\r\n if (this.sign !== n.sign) {\r\n return this.subtract(n.negate());\r\n }\r\n var a = this.value, b = n.value;\r\n if (n.isSmall) {\r\n return new BigInteger(addSmall(a, Math.abs(b)), this.sign);\r\n }\r\n return new BigInteger(addAny(a, b), this.sign);\r\n };\r\n BigInteger.prototype.plus = BigInteger.prototype.add;\r\n\r\n SmallInteger.prototype.add = function (v) {\r\n var n = parseValue(v);\r\n var a = this.value;\r\n if (a < 0 !== n.sign) {\r\n return this.subtract(n.negate());\r\n }\r\n var b = n.value;\r\n if (n.isSmall) {\r\n if (isPrecise(a + b)) return new SmallInteger(a + b);\r\n b = smallToArray(Math.abs(b));\r\n }\r\n return new BigInteger(addSmall(b, Math.abs(a)), a < 0);\r\n };\r\n SmallInteger.prototype.plus = SmallInteger.prototype.add;\r\n\r\n function subtract(a, b) { // assumes a and b are arrays with a >= b\r\n var a_l = a.length,\r\n b_l = b.length,\r\n r = new Array(a_l),\r\n borrow = 0,\r\n base = BASE,\r\n i, difference;\r\n for (i = 0; i < b_l; i++) {\r\n difference = a[i] - borrow - b[i];\r\n if (difference < 0) {\r\n difference += base;\r\n borrow = 1;\r\n } else borrow = 0;\r\n r[i] = difference;\r\n }\r\n for (i = b_l; i < a_l; i++) {\r\n difference = a[i] - borrow;\r\n if (difference < 0) difference += base;\r\n else {\r\n r[i++] = difference;\r\n break;\r\n }\r\n r[i] = difference;\r\n }\r\n for (; i < a_l; i++) {\r\n r[i] = a[i];\r\n }\r\n trim(r);\r\n return r;\r\n }\r\n\r\n function subtractAny(a, b, sign) {\r\n var value;\r\n if (compareAbs(a, b) >= 0) {\r\n value = subtract(a, b);\r\n } else {\r\n value = subtract(b, a);\r\n sign = !sign;\r\n }\r\n value = arrayToSmall(value);\r\n if (typeof value === \"number\") {\r\n if (sign) value = -value;\r\n return new SmallInteger(value);\r\n }\r\n return new BigInteger(value, sign);\r\n }\r\n\r\n function subtractSmall(a, b, sign) { // assumes a is array, b is number with 0 <= b < MAX_INT\r\n var l = a.length,\r\n r = new Array(l),\r\n carry = -b,\r\n base = BASE,\r\n i, difference;\r\n for (i = 0; i < l; i++) {\r\n difference = a[i] + carry;\r\n carry = Math.floor(difference / base);\r\n difference %= base;\r\n r[i] = difference < 0 ? difference + base : difference;\r\n }\r\n r = arrayToSmall(r);\r\n if (typeof r === \"number\") {\r\n if (sign) r = -r;\r\n return new SmallInteger(r);\r\n } return new BigInteger(r, sign);\r\n }\r\n\r\n BigInteger.prototype.subtract = function (v) {\r\n var n = parseValue(v);\r\n if (this.sign !== n.sign) {\r\n return this.add(n.negate());\r\n }\r\n var a = this.value, b = n.value;\r\n if (n.isSmall)\r\n return subtractSmall(a, Math.abs(b), this.sign);\r\n return subtractAny(a, b, this.sign);\r\n };\r\n BigInteger.prototype.minus = BigInteger.prototype.subtract;\r\n\r\n SmallInteger.prototype.subtract = function (v) {\r\n var n = parseValue(v);\r\n var a = this.value;\r\n if (a < 0 !== n.sign) {\r\n return this.add(n.negate());\r\n }\r\n var b = n.value;\r\n if (n.isSmall) {\r\n return new SmallInteger(a - b);\r\n }\r\n return subtractSmall(b, Math.abs(a), a >= 0);\r\n };\r\n SmallInteger.prototype.minus = SmallInteger.prototype.subtract;\r\n\r\n BigInteger.prototype.negate = function () {\r\n return new BigInteger(this.value, !this.sign);\r\n };\r\n SmallInteger.prototype.negate = function () {\r\n var sign = this.sign;\r\n var small = new SmallInteger(-this.value);\r\n small.sign = !sign;\r\n return small;\r\n };\r\n\r\n BigInteger.prototype.abs = function () {\r\n return new BigInteger(this.value, false);\r\n };\r\n SmallInteger.prototype.abs = function () {\r\n return new SmallInteger(Math.abs(this.value));\r\n };\r\n\r\n function multiplyLong(a, b) {\r\n var a_l = a.length,\r\n b_l = b.length,\r\n l = a_l + b_l,\r\n r = createArray(l),\r\n base = BASE,\r\n product, carry, i, a_i, b_j;\r\n for (i = 0; i < a_l; ++i) {\r\n a_i = a[i];\r\n for (var j = 0; j < b_l; ++j) {\r\n b_j = b[j];\r\n product = a_i * b_j + r[i + j];\r\n carry = Math.floor(product / base);\r\n r[i + j] = product - carry * base;\r\n r[i + j + 1] += carry;\r\n }\r\n }\r\n trim(r);\r\n return r;\r\n }\r\n\r\n function multiplySmall(a, b) { // assumes a is array, b is number with |b| < BASE\r\n var l = a.length,\r\n r = new Array(l),\r\n base = BASE,\r\n carry = 0,\r\n product, i;\r\n for (i = 0; i < l; i++) {\r\n product = a[i] * b + carry;\r\n carry = Math.floor(product / base);\r\n r[i] = product - carry * base;\r\n }\r\n while (carry > 0) {\r\n r[i++] = carry % base;\r\n carry = Math.floor(carry / base);\r\n }\r\n return r;\r\n }\r\n\r\n function shiftLeft(x, n) {\r\n var r = [];\r\n while (n-- > 0) r.push(0);\r\n return r.concat(x);\r\n }\r\n\r\n function multiplyKaratsuba(x, y) {\r\n var n = Math.max(x.length, y.length);\r\n\r\n if (n <= 30) return multiplyLong(x, y);\r\n n = Math.ceil(n / 2);\r\n\r\n var b = x.slice(n),\r\n a = x.slice(0, n),\r\n d = y.slice(n),\r\n c = y.slice(0, n);\r\n\r\n var ac = multiplyKaratsuba(a, c),\r\n bd = multiplyKaratsuba(b, d),\r\n abcd = multiplyKaratsuba(addAny(a, b), addAny(c, d));\r\n\r\n var product = addAny(addAny(ac, shiftLeft(subtract(subtract(abcd, ac), bd), n)), shiftLeft(bd, 2 * n));\r\n trim(product);\r\n return product;\r\n }\r\n\r\n // The following function is derived from a surface fit of a graph plotting the performance difference\r\n // between long multiplication and karatsuba multiplication versus the lengths of the two arrays.\r\n function useKaratsuba(l1, l2) {\r\n return -0.012 * l1 - 0.012 * l2 + 0.000015 * l1 * l2 > 0;\r\n }\r\n\r\n BigInteger.prototype.multiply = function (v) {\r\n var n = parseValue(v),\r\n a = this.value, b = n.value,\r\n sign = this.sign !== n.sign,\r\n abs;\r\n if (n.isSmall) {\r\n if (b === 0) return Integer[0];\r\n if (b === 1) return this;\r\n if (b === -1) return this.negate();\r\n abs = Math.abs(b);\r\n if (abs < BASE) {\r\n return new BigInteger(multiplySmall(a, abs), sign);\r\n }\r\n b = smallToArray(abs);\r\n }\r\n if (useKaratsuba(a.length, b.length)) // Karatsuba is only faster for certain array sizes\r\n return new BigInteger(multiplyKaratsuba(a, b), sign);\r\n return new BigInteger(multiplyLong(a, b), sign);\r\n };\r\n\r\n BigInteger.prototype.times = BigInteger.prototype.multiply;\r\n\r\n function multiplySmallAndArray(a, b, sign) { // a >= 0\r\n if (a < BASE) {\r\n return new BigInteger(multiplySmall(b, a), sign);\r\n }\r\n return new BigInteger(multiplyLong(b, smallToArray(a)), sign);\r\n }\r\n SmallInteger.prototype._multiplyBySmall = function (a) {\r\n if (isPrecise(a.value * this.value)) {\r\n return new SmallInteger(a.value * this.value);\r\n }\r\n return multiplySmallAndArray(Math.abs(a.value), smallToArray(Math.abs(this.value)), this.sign !== a.sign);\r\n };\r\n BigInteger.prototype._multiplyBySmall = function (a) {\r\n if (a.value === 0) return Integer[0];\r\n if (a.value === 1) return this;\r\n if (a.value === -1) return this.negate();\r\n return multiplySmallAndArray(Math.abs(a.value), this.value, this.sign !== a.sign);\r\n };\r\n SmallInteger.prototype.multiply = function (v) {\r\n return parseValue(v)._multiplyBySmall(this);\r\n };\r\n SmallInteger.prototype.times = SmallInteger.prototype.multiply;\r\n\r\n function square(a) {\r\n //console.assert(2 * BASE * BASE < MAX_INT);\r\n var l = a.length,\r\n r = createArray(l + l),\r\n base = BASE,\r\n product, carry, i, a_i, a_j;\r\n for (i = 0; i < l; i++) {\r\n a_i = a[i];\r\n carry = 0 - a_i * a_i;\r\n for (var j = i; j < l; j++) {\r\n a_j = a[j];\r\n product = 2 * (a_i * a_j) + r[i + j] + carry;\r\n carry = Math.floor(product / base);\r\n r[i + j] = product - carry * base;\r\n }\r\n r[i + l] = carry;\r\n }\r\n trim(r);\r\n return r;\r\n }\r\n\r\n BigInteger.prototype.square = function () {\r\n return new BigInteger(square(this.value), false);\r\n };\r\n\r\n SmallInteger.prototype.square = function () {\r\n var value = this.value * this.value;\r\n if (isPrecise(value)) return new SmallInteger(value);\r\n return new BigInteger(square(smallToArray(Math.abs(this.value))), false);\r\n };\r\n\r\n function divMod1(a, b) { // Left over from previous version. Performs faster than divMod2 on smaller input sizes.\r\n var a_l = a.length,\r\n b_l = b.length,\r\n base = BASE,\r\n result = createArray(b.length),\r\n divisorMostSignificantDigit = b[b_l - 1],\r\n // normalization\r\n lambda = Math.ceil(base / (2 * divisorMostSignificantDigit)),\r\n remainder = multiplySmall(a, lambda),\r\n divisor = multiplySmall(b, lambda),\r\n quotientDigit, shift, carry, borrow, i, l, q;\r\n if (remainder.length <= a_l) remainder.push(0);\r\n divisor.push(0);\r\n divisorMostSignificantDigit = divisor[b_l - 1];\r\n for (shift = a_l - b_l; shift >= 0; shift--) {\r\n quotientDigit = base - 1;\r\n if (remainder[shift + b_l] !== divisorMostSignificantDigit) {\r\n quotientDigit = Math.floor((remainder[shift + b_l] * base + remainder[shift + b_l - 1]) / divisorMostSignificantDigit);\r\n }\r\n // quotientDigit <= base - 1\r\n carry = 0;\r\n borrow = 0;\r\n l = divisor.length;\r\n for (i = 0; i < l; i++) {\r\n carry += quotientDigit * divisor[i];\r\n q = Math.floor(carry / base);\r\n borrow += remainder[shift + i] - (carry - q * base);\r\n carry = q;\r\n if (borrow < 0) {\r\n remainder[shift + i] = borrow + base;\r\n borrow = -1;\r\n } else {\r\n remainder[shift + i] = borrow;\r\n borrow = 0;\r\n }\r\n }\r\n while (borrow !== 0) {\r\n quotientDigit -= 1;\r\n carry = 0;\r\n for (i = 0; i < l; i++) {\r\n carry += remainder[shift + i] - base + divisor[i];\r\n if (carry < 0) {\r\n remainder[shift + i] = carry + base;\r\n carry = 0;\r\n } else {\r\n remainder[shift + i] = carry;\r\n carry = 1;\r\n }\r\n }\r\n borrow += carry;\r\n }\r\n result[shift] = quotientDigit;\r\n }\r\n // denormalization\r\n remainder = divModSmall(remainder, lambda)[0];\r\n return [arrayToSmall(result), arrayToSmall(remainder)];\r\n }\r\n\r\n function divMod2(a, b) { // Implementation idea shamelessly stolen from Silent Matt's library http://silentmatt.com/biginteger/\r\n // Performs faster than divMod1 on larger input sizes.\r\n var a_l = a.length,\r\n b_l = b.length,\r\n result = [],\r\n part = [],\r\n base = BASE,\r\n guess, xlen, highx, highy, check;\r\n while (a_l) {\r\n part.unshift(a[--a_l]);\r\n trim(part);\r\n if (compareAbs(part, b) < 0) {\r\n result.push(0);\r\n continue;\r\n }\r\n xlen = part.length;\r\n highx = part[xlen - 1] * base + part[xlen - 2];\r\n highy = b[b_l - 1] * base + b[b_l - 2];\r\n if (xlen > b_l) {\r\n highx = (highx + 1) * base;\r\n }\r\n guess = Math.ceil(highx / highy);\r\n do {\r\n check = multiplySmall(b, guess);\r\n if (compareAbs(check, part) <= 0) break;\r\n guess--;\r\n } while (guess);\r\n result.push(guess);\r\n part = subtract(part, check);\r\n }\r\n result.reverse();\r\n return [arrayToSmall(result), arrayToSmall(part)];\r\n }\r\n\r\n function divModSmall(value, lambda) {\r\n var length = value.length,\r\n quotient = createArray(length),\r\n base = BASE,\r\n i, q, remainder, divisor;\r\n remainder = 0;\r\n for (i = length - 1; i >= 0; --i) {\r\n divisor = remainder * base + value[i];\r\n q = truncate(divisor / lambda);\r\n remainder = divisor - q * lambda;\r\n quotient[i] = q | 0;\r\n }\r\n return [quotient, remainder | 0];\r\n }\r\n\r\n function divModAny(self, v) {\r\n var value, n = parseValue(v);\r\n var a = self.value, b = n.value;\r\n var quotient;\r\n if (b === 0) throw new Error(\"Cannot divide by zero\");\r\n if (self.isSmall) {\r\n if (n.isSmall) {\r\n return [new SmallInteger(truncate(a / b)), new SmallInteger(a % b)];\r\n }\r\n return [Integer[0], self];\r\n }\r\n if (n.isSmall) {\r\n if (b === 1) return [self, Integer[0]];\r\n if (b == -1) return [self.negate(), Integer[0]];\r\n var abs = Math.abs(b);\r\n if (abs < BASE) {\r\n value = divModSmall(a, abs);\r\n quotient = arrayToSmall(value[0]);\r\n var remainder = value[1];\r\n if (self.sign) remainder = -remainder;\r\n if (typeof quotient === \"number\") {\r\n if (self.sign !== n.sign) quotient = -quotient;\r\n return [new SmallInteger(quotient), new SmallInteger(remainder)];\r\n }\r\n return [new BigInteger(quotient, self.sign !== n.sign), new SmallInteger(remainder)];\r\n }\r\n b = smallToArray(abs);\r\n }\r\n var comparison = compareAbs(a, b);\r\n if (comparison === -1) return [Integer[0], self];\r\n if (comparison === 0) return [Integer[self.sign === n.sign ? 1 : -1], Integer[0]];\r\n\r\n // divMod1 is faster on smaller input sizes\r\n if (a.length + b.length <= 200)\r\n value = divMod1(a, b);\r\n else value = divMod2(a, b);\r\n\r\n quotient = value[0];\r\n var qSign = self.sign !== n.sign,\r\n mod = value[1],\r\n mSign = self.sign;\r\n if (typeof quotient === \"number\") {\r\n if (qSign) quotient = -quotient;\r\n quotient = new SmallInteger(quotient);\r\n } else quotient = new BigInteger(quotient, qSign);\r\n if (typeof mod === \"number\") {\r\n if (mSign) mod = -mod;\r\n mod = new SmallInteger(mod);\r\n } else mod = new BigInteger(mod, mSign);\r\n return [quotient, mod];\r\n }\r\n\r\n BigInteger.prototype.divmod = function (v) {\r\n var result = divModAny(this, v);\r\n return {\r\n quotient: result[0],\r\n remainder: result[1]\r\n };\r\n };\r\n SmallInteger.prototype.divmod = BigInteger.prototype.divmod;\r\n\r\n BigInteger.prototype.divide = function (v) {\r\n return divModAny(this, v)[0];\r\n };\r\n SmallInteger.prototype.over = SmallInteger.prototype.divide = BigInteger.prototype.over = BigInteger.prototype.divide;\r\n\r\n BigInteger.prototype.mod = function (v) {\r\n return divModAny(this, v)[1];\r\n };\r\n SmallInteger.prototype.remainder = SmallInteger.prototype.mod = BigInteger.prototype.remainder = BigInteger.prototype.mod;\r\n\r\n BigInteger.prototype.pow = function (v) {\r\n var n = parseValue(v),\r\n a = this.value,\r\n b = n.value,\r\n value, x, y;\r\n if (b === 0) return Integer[1];\r\n if (a === 0) return Integer[0];\r\n if (a === 1) return Integer[1];\r\n if (a === -1) return n.isEven() ? Integer[1] : Integer[-1];\r\n if (n.sign) {\r\n return Integer[0];\r\n }\r\n if (!n.isSmall) throw new Error(\"The exponent \" + n.toString() + \" is too large.\");\r\n if (this.isSmall) {\r\n if (isPrecise(value = Math.pow(a, b)))\r\n return new SmallInteger(truncate(value));\r\n }\r\n x = this;\r\n y = Integer[1];\r\n while (true) {\r\n if (b & 1 === 1) {\r\n y = y.times(x);\r\n --b;\r\n }\r\n if (b === 0) break;\r\n b /= 2;\r\n x = x.square();\r\n }\r\n return y;\r\n };\r\n SmallInteger.prototype.pow = BigInteger.prototype.pow;\r\n\r\n BigInteger.prototype.modPow = function (exp, mod) {\r\n exp = parseValue(exp);\r\n mod = parseValue(mod);\r\n if (mod.isZero()) throw new Error(\"Cannot take modPow with modulus 0\");\r\n var r = Integer[1],\r\n base = this.mod(mod);\r\n while (exp.isPositive()) {\r\n if (base.isZero()) return Integer[0];\r\n if (exp.isOdd()) r = r.multiply(base).mod(mod);\r\n exp = exp.divide(2);\r\n base = base.square().mod(mod);\r\n }\r\n return r;\r\n };\r\n SmallInteger.prototype.modPow = BigInteger.prototype.modPow;\r\n\r\n function compareAbs(a, b) {\r\n if (a.length !== b.length) {\r\n return a.length > b.length ? 1 : -1;\r\n }\r\n for (var i = a.length - 1; i >= 0; i--) {\r\n if (a[i] !== b[i]) return a[i] > b[i] ? 1 : -1;\r\n }\r\n return 0;\r\n }\r\n\r\n BigInteger.prototype.compareAbs = function (v) {\r\n var n = parseValue(v),\r\n a = this.value,\r\n b = n.value;\r\n if (n.isSmall) return 1;\r\n return compareAbs(a, b);\r\n };\r\n SmallInteger.prototype.compareAbs = function (v) {\r\n var n = parseValue(v),\r\n a = Math.abs(this.value),\r\n b = n.value;\r\n if (n.isSmall) {\r\n b = Math.abs(b);\r\n return a === b ? 0 : a > b ? 1 : -1;\r\n }\r\n return -1;\r\n };\r\n\r\n BigInteger.prototype.compare = function (v) {\r\n // See discussion about comparison with Infinity:\r\n // https://github.com/peterolson/BigInteger.js/issues/61\r\n if (v === Infinity) {\r\n return -1;\r\n }\r\n if (v === -Infinity) {\r\n return 1;\r\n }\r\n\r\n var n = parseValue(v),\r\n a = this.value,\r\n b = n.value;\r\n if (this.sign !== n.sign) {\r\n return n.sign ? 1 : -1;\r\n }\r\n if (n.isSmall) {\r\n return this.sign ? -1 : 1;\r\n }\r\n return compareAbs(a, b) * (this.sign ? -1 : 1);\r\n };\r\n BigInteger.prototype.compareTo = BigInteger.prototype.compare;\r\n\r\n SmallInteger.prototype.compare = function (v) {\r\n if (v === Infinity) {\r\n return -1;\r\n }\r\n if (v === -Infinity) {\r\n return 1;\r\n }\r\n\r\n var n = parseValue(v),\r\n a = this.value,\r\n b = n.value;\r\n if (n.isSmall) {\r\n return a == b ? 0 : a > b ? 1 : -1;\r\n }\r\n if (a < 0 !== n.sign) {\r\n return a < 0 ? -1 : 1;\r\n }\r\n return a < 0 ? 1 : -1;\r\n };\r\n SmallInteger.prototype.compareTo = SmallInteger.prototype.compare;\r\n\r\n BigInteger.prototype.equals = function (v) {\r\n return this.compare(v) === 0;\r\n };\r\n SmallInteger.prototype.eq = SmallInteger.prototype.equals = BigInteger.prototype.eq = BigInteger.prototype.equals;\r\n\r\n BigInteger.prototype.notEquals = function (v) {\r\n return this.compare(v) !== 0;\r\n };\r\n SmallInteger.prototype.neq = SmallInteger.prototype.notEquals = BigInteger.prototype.neq = BigInteger.prototype.notEquals;\r\n\r\n BigInteger.prototype.greater = function (v) {\r\n return this.compare(v) > 0;\r\n };\r\n SmallInteger.prototype.gt = SmallInteger.prototype.greater = BigInteger.prototype.gt = BigInteger.prototype.greater;\r\n\r\n BigInteger.prototype.lesser = function (v) {\r\n return this.compare(v) < 0;\r\n };\r\n SmallInteger.prototype.lt = SmallInteger.prototype.lesser = BigInteger.prototype.lt = BigInteger.prototype.lesser;\r\n\r\n BigInteger.prototype.greaterOrEquals = function (v) {\r\n return this.compare(v) >= 0;\r\n };\r\n SmallInteger.prototype.geq = SmallInteger.prototype.greaterOrEquals = BigInteger.prototype.geq = BigInteger.prototype.greaterOrEquals;\r\n\r\n BigInteger.prototype.lesserOrEquals = function (v) {\r\n return this.compare(v) <= 0;\r\n };\r\n SmallInteger.prototype.leq = SmallInteger.prototype.lesserOrEquals = BigInteger.prototype.leq = BigInteger.prototype.lesserOrEquals;\r\n\r\n BigInteger.prototype.isEven = function () {\r\n return (this.value[0] & 1) === 0;\r\n };\r\n SmallInteger.prototype.isEven = function () {\r\n return (this.value & 1) === 0;\r\n };\r\n\r\n BigInteger.prototype.isOdd = function () {\r\n return (this.value[0] & 1) === 1;\r\n };\r\n SmallInteger.prototype.isOdd = function () {\r\n return (this.value & 1) === 1;\r\n };\r\n\r\n BigInteger.prototype.isPositive = function () {\r\n return !this.sign;\r\n };\r\n SmallInteger.prototype.isPositive = function () {\r\n return this.value > 0;\r\n };\r\n\r\n BigInteger.prototype.isNegative = function () {\r\n return this.sign;\r\n };\r\n SmallInteger.prototype.isNegative = function () {\r\n return this.value < 0;\r\n };\r\n\r\n BigInteger.prototype.isUnit = function () {\r\n return false;\r\n };\r\n SmallInteger.prototype.isUnit = function () {\r\n return Math.abs(this.value) === 1;\r\n };\r\n\r\n BigInteger.prototype.isZero = function () {\r\n return false;\r\n };\r\n SmallInteger.prototype.isZero = function () {\r\n return this.value === 0;\r\n };\r\n BigInteger.prototype.isDivisibleBy = function (v) {\r\n var n = parseValue(v);\r\n var value = n.value;\r\n if (value === 0) return false;\r\n if (value === 1) return true;\r\n if (value === 2) return this.isEven();\r\n return this.mod(n).equals(Integer[0]);\r\n };\r\n SmallInteger.prototype.isDivisibleBy = BigInteger.prototype.isDivisibleBy;\r\n\r\n function isBasicPrime(v) {\r\n var n = v.abs();\r\n if (n.isUnit()) return false;\r\n if (n.equals(2) || n.equals(3) || n.equals(5)) return true;\r\n if (n.isEven() || n.isDivisibleBy(3) || n.isDivisibleBy(5)) return false;\r\n if (n.lesser(49)) return true;\r\n // we don't know if it's prime: let the other functions figure it out\r\n }\r\n \r\n function millerRabinTest(n, a) {\r\n var nPrev = n.prev(),\r\n b = nPrev,\r\n r = 0,\r\n d, t, i, x;\r\n while (b.isEven()) b = b.divide(2), r++;\r\n next : for (i = 0; i < a.length; i++) {\r\n if (n.lesser(a[i])) continue;\r\n x = bigInt(a[i]).modPow(b, n);\r\n if (x.equals(Integer[1]) || x.equals(nPrev)) continue;\r\n for (d = r - 1; d != 0; d--) {\r\n x = x.square().mod(n);\r\n if (x.isUnit()) return false; \r\n if (x.equals(nPrev)) continue next;\r\n }\r\n return false;\r\n }\r\n return true;\r\n }\r\n \r\n// Set \"strict\" to true to force GRH-supported lower bound of 2*log(N)^2\r\n BigInteger.prototype.isPrime = function (strict) {\r\n var isPrime = isBasicPrime(this);\r\n if (isPrime !== undefined) return isPrime;\r\n var n = this.abs();\r\n var bits = n.bitLength();\r\n if(bits <= 64)\r\n return millerRabinTest(n, [2, 325, 9375, 28178, 450775, 9780504, 1795265022]);\r\n var logN = Math.log(2) * bits;\r\n var t = Math.ceil((strict === true) ? (2 * Math.pow(logN, 2)) : logN);\r\n for (var a = [], i = 0; i < t; i++) {\r\n a.push(bigInt(i + 2));\r\n }\r\n return millerRabinTest(n, a);\r\n };\r\n SmallInteger.prototype.isPrime = BigInteger.prototype.isPrime;\r\n\r\n BigInteger.prototype.isProbablePrime = function (iterations) {\r\n var isPrime = isBasicPrime(this);\r\n if (isPrime !== undefined) return isPrime;\r\n var n = this.abs();\r\n var t = iterations === undefined ? 5 : iterations;\r\n for (var a = [], i = 0; i < t; i++) {\r\n a.push(bigInt.randBetween(2, n.minus(2)));\r\n }\r\n return millerRabinTest(n, a);\r\n };\r\n SmallInteger.prototype.isProbablePrime = BigInteger.prototype.isProbablePrime;\r\n\r\n BigInteger.prototype.modInv = function (n) {\r\n var t = bigInt.zero, newT = bigInt.one, r = parseValue(n), newR = this.abs(), q, lastT, lastR;\r\n while (!newR.equals(bigInt.zero)) {\r\n q = r.divide(newR);\r\n lastT = t;\r\n lastR = r;\r\n t = newT;\r\n r = newR;\r\n newT = lastT.subtract(q.multiply(newT));\r\n newR = lastR.subtract(q.multiply(newR));\r\n }\r\n if (!r.equals(1)) throw new Error(this.toString() + \" and \" + n.toString() + \" are not co-prime\");\r\n if (t.compare(0) === -1) {\r\n t = t.add(n);\r\n }\r\n if (this.isNegative()) {\r\n return t.negate();\r\n }\r\n return t;\r\n };\r\n\r\n SmallInteger.prototype.modInv = BigInteger.prototype.modInv;\r\n\r\n BigInteger.prototype.next = function () {\r\n var value = this.value;\r\n if (this.sign) {\r\n return subtractSmall(value, 1, this.sign);\r\n }\r\n return new BigInteger(addSmall(value, 1), this.sign);\r\n };\r\n SmallInteger.prototype.next = function () {\r\n var value = this.value;\r\n if (value + 1 < MAX_INT) return new SmallInteger(value + 1);\r\n return new BigInteger(MAX_INT_ARR, false);\r\n };\r\n\r\n BigInteger.prototype.prev = function () {\r\n var value = this.value;\r\n if (this.sign) {\r\n return new BigInteger(addSmall(value, 1), true);\r\n }\r\n return subtractSmall(value, 1, this.sign);\r\n };\r\n SmallInteger.prototype.prev = function () {\r\n var value = this.value;\r\n if (value - 1 > -MAX_INT) return new SmallInteger(value - 1);\r\n return new BigInteger(MAX_INT_ARR, true);\r\n };\r\n\r\n var powersOfTwo = [1];\r\n while (2 * powersOfTwo[powersOfTwo.length - 1] <= BASE) powersOfTwo.push(2 * powersOfTwo[powersOfTwo.length - 1]);\r\n var powers2Length = powersOfTwo.length, highestPower2 = powersOfTwo[powers2Length - 1];\r\n\r\n function shift_isSmall(n) {\r\n return ((typeof n === \"number\" || typeof n === \"string\") && +Math.abs(n) <= BASE) ||\r\n (n instanceof BigInteger && n.value.length <= 1);\r\n }\r\n\r\n BigInteger.prototype.shiftLeft = function (n) {\r\n if (!shift_isSmall(n)) {\r\n throw new Error(String(n) + \" is too large for shifting.\");\r\n }\r\n n = +n;\r\n if (n < 0) return this.shiftRight(-n);\r\n var result = this;\r\n if (result.isZero()) return result;\r\n while (n >= powers2Length) {\r\n result = result.multiply(highestPower2);\r\n n -= powers2Length - 1;\r\n }\r\n return result.multiply(powersOfTwo[n]);\r\n };\r\n SmallInteger.prototype.shiftLeft = BigInteger.prototype.shiftLeft;\r\n\r\n BigInteger.prototype.shiftRight = function (n) {\r\n var remQuo;\r\n if (!shift_isSmall(n)) {\r\n throw new Error(String(n) + \" is too large for shifting.\");\r\n }\r\n n = +n;\r\n if (n < 0) return this.shiftLeft(-n);\r\n var result = this;\r\n while (n >= powers2Length) {\r\n if (result.isZero() || (result.isNegative() && result.isUnit())) return result;\r\n remQuo = divModAny(result, highestPower2);\r\n result = remQuo[1].isNegative() ? remQuo[0].prev() : remQuo[0];\r\n n -= powers2Length - 1;\r\n }\r\n remQuo = divModAny(result, powersOfTwo[n]);\r\n return remQuo[1].isNegative() ? remQuo[0].prev() : remQuo[0];\r\n };\r\n SmallInteger.prototype.shiftRight = BigInteger.prototype.shiftRight;\r\n\r\n function bitwise(x, y, fn) {\r\n y = parseValue(y);\r\n var xSign = x.isNegative(), ySign = y.isNegative();\r\n var xRem = xSign ? x.not() : x,\r\n yRem = ySign ? y.not() : y;\r\n var xDigit = 0, yDigit = 0;\r\n var xDivMod = null, yDivMod = null;\r\n var result = [];\r\n while (!xRem.isZero() || !yRem.isZero()) {\r\n xDivMod = divModAny(xRem, highestPower2);\r\n xDigit = xDivMod[1].toJSNumber();\r\n if (xSign) {\r\n xDigit = highestPower2 - 1 - xDigit; // two's complement for negative numbers\r\n }\r\n\r\n yDivMod = divModAny(yRem, highestPower2);\r\n yDigit = yDivMod[1].toJSNumber();\r\n if (ySign) {\r\n yDigit = highestPower2 - 1 - yDigit; // two's complement for negative numbers\r\n }\r\n\r\n xRem = xDivMod[0];\r\n yRem = yDivMod[0];\r\n result.push(fn(xDigit, yDigit));\r\n }\r\n var sum = fn(xSign ? 1 : 0, ySign ? 1 : 0) !== 0 ? bigInt(-1) : bigInt(0);\r\n for (var i = result.length - 1; i >= 0; i -= 1) {\r\n sum = sum.multiply(highestPower2).add(bigInt(result[i]));\r\n }\r\n return sum;\r\n }\r\n\r\n BigInteger.prototype.not = function () {\r\n return this.negate().prev();\r\n };\r\n SmallInteger.prototype.not = BigInteger.prototype.not;\r\n\r\n BigInteger.prototype.and = function (n) {\r\n return bitwise(this, n, function (a, b) { return a & b; });\r\n };\r\n SmallInteger.prototype.and = BigInteger.prototype.and;\r\n\r\n BigInteger.prototype.or = function (n) {\r\n return bitwise(this, n, function (a, b) { return a | b; });\r\n };\r\n SmallInteger.prototype.or = BigInteger.prototype.or;\r\n\r\n BigInteger.prototype.xor = function (n) {\r\n return bitwise(this, n, function (a, b) { return a ^ b; });\r\n };\r\n SmallInteger.prototype.xor = BigInteger.prototype.xor;\r\n\r\n var LOBMASK_I = 1 << 30, LOBMASK_BI = (BASE & -BASE) * (BASE & -BASE) | LOBMASK_I;\r\n function roughLOB(n) { // get lowestOneBit (rough)\r\n // SmallInteger: return Min(lowestOneBit(n), 1 << 30)\r\n // BigInteger: return Min(lowestOneBit(n), 1 << 14) [BASE=1e7]\r\n var v = n.value, x = typeof v === \"number\" ? v | LOBMASK_I : v[0] + v[1] * BASE | LOBMASK_BI;\r\n return x & -x;\r\n }\r\n\r\n function integerLogarithm(value, base) {\r\n if (base.compareTo(value) <= 0) {\r\n var tmp = integerLogarithm(value, base.square(base));\r\n var p = tmp.p;\r\n var e = tmp.e;\r\n var t = p.multiply(base);\r\n return t.compareTo(value) <= 0 ? { p: t, e: e * 2 + 1 } : { p: p, e: e * 2 };\r\n }\r\n return { p: bigInt(1), e: 0 };\r\n }\r\n\r\n BigInteger.prototype.bitLength = function () {\r\n var n = this;\r\n if (n.compareTo(bigInt(0)) < 0) {\r\n n = n.negate().subtract(bigInt(1));\r\n }\r\n if (n.compareTo(bigInt(0)) === 0) {\r\n return bigInt(0);\r\n }\r\n return bigInt(integerLogarithm(n, bigInt(2)).e).add(bigInt(1));\r\n }\r\n SmallInteger.prototype.bitLength = BigInteger.prototype.bitLength;\r\n\r\n function max(a, b) {\r\n a = parseValue(a);\r\n b = parseValue(b);\r\n return a.greater(b) ? a : b;\r\n }\r\n function min(a, b) {\r\n a = parseValue(a);\r\n b = parseValue(b);\r\n return a.lesser(b) ? a : b;\r\n }\r\n function gcd(a, b) {\r\n a = parseValue(a).abs();\r\n b = parseValue(b).abs();\r\n if (a.equals(b)) return a;\r\n if (a.isZero()) return b;\r\n if (b.isZero()) return a;\r\n var c = Integer[1], d, t;\r\n while (a.isEven() && b.isEven()) {\r\n d = Math.min(roughLOB(a), roughLOB(b));\r\n a = a.divide(d);\r\n b = b.divide(d);\r\n c = c.multiply(d);\r\n }\r\n while (a.isEven()) {\r\n a = a.divide(roughLOB(a));\r\n }\r\n do {\r\n while (b.isEven()) {\r\n b = b.divide(roughLOB(b));\r\n }\r\n if (a.greater(b)) {\r\n t = b; b = a; a = t;\r\n }\r\n b = b.subtract(a);\r\n } while (!b.isZero());\r\n return c.isUnit() ? a : a.multiply(c);\r\n }\r\n function lcm(a, b) {\r\n a = parseValue(a).abs();\r\n b = parseValue(b).abs();\r\n return a.divide(gcd(a, b)).multiply(b);\r\n }\r\n function randBetween(a, b) {\r\n a = parseValue(a);\r\n b = parseValue(b);\r\n var low = min(a, b), high = max(a, b);\r\n var range = high.subtract(low).add(1);\r\n if (range.isSmall) return low.add(Math.floor(Math.random() * range));\r\n var length = range.value.length - 1;\r\n var result = [], restricted = true;\r\n for (var i = length; i >= 0; i--) {\r\n var top = restricted ? range.value[i] : BASE;\r\n var digit = truncate(Math.random() * top);\r\n result.unshift(digit);\r\n if (digit < top) restricted = false;\r\n }\r\n result = arrayToSmall(result);\r\n return low.add(typeof result === \"number\" ? new SmallInteger(result) : new BigInteger(result, false));\r\n }\r\n var parseBase = function (text, base) {\r\n var length = text.length;\r\n var i;\r\n var absBase = Math.abs(base);\r\n for (var i = 0; i < length; i++) {\r\n var c = text[i].toLowerCase();\r\n if (c === \"-\") continue;\r\n if (/[a-z0-9]/.test(c)) {\r\n if (/[0-9]/.test(c) && +c >= absBase) {\r\n if (c === \"1\" && absBase === 1) continue;\r\n throw new Error(c + \" is not a valid digit in base \" + base + \".\");\r\n } else if (c.charCodeAt(0) - 87 >= absBase) {\r\n throw new Error(c + \" is not a valid digit in base \" + base + \".\");\r\n }\r\n }\r\n }\r\n if (2 <= base && base <= 36) {\r\n if (length <= LOG_MAX_INT / Math.log(base)) {\r\n var result = parseInt(text, base);\r\n if (isNaN(result)) {\r\n throw new Error(c + \" is not a valid digit in base \" + base + \".\");\r\n }\r\n return new SmallInteger(parseInt(text, base));\r\n }\r\n }\r\n base = parseValue(base);\r\n var digits = [];\r\n var isNegative = text[0] === \"-\";\r\n for (i = isNegative ? 1 : 0; i < text.length; i++) {\r\n var c = text[i].toLowerCase(),\r\n charCode = c.charCodeAt(0);\r\n if (48 <= charCode && charCode <= 57) digits.push(parseValue(c));\r\n else if (97 <= charCode && charCode <= 122) digits.push(parseValue(c.charCodeAt(0) - 87));\r\n else if (c === \"<\") {\r\n var start = i;\r\n do { i++; } while (text[i] !== \">\");\r\n digits.push(parseValue(text.slice(start + 1, i)));\r\n }\r\n else throw new Error(c + \" is not a valid character\");\r\n }\r\n return parseBaseFromArray(digits, base, isNegative);\r\n };\r\n\r\n function parseBaseFromArray(digits, base, isNegative) {\r\n var val = Integer[0], pow = Integer[1], i;\r\n for (i = digits.length - 1; i >= 0; i--) {\r\n val = val.add(digits[i].times(pow));\r\n pow = pow.times(base);\r\n }\r\n return isNegative ? val.negate() : val;\r\n }\r\n\r\n function stringify(digit) {\r\n if (digit <= 35) {\r\n return \"0123456789abcdefghijklmnopqrstuvwxyz\".charAt(digit);\r\n }\r\n return \"<\" + digit + \">\";\r\n }\r\n\r\n function toBase(n, base) {\r\n base = bigInt(base);\r\n if (base.isZero()) {\r\n if (n.isZero()) return { value: [0], isNegative: false };\r\n throw new Error(\"Cannot convert nonzero numbers to base 0.\");\r\n }\r\n if (base.equals(-1)) {\r\n if (n.isZero()) return { value: [0], isNegative: false };\r\n if (n.isNegative())\r\n return {\r\n value: [].concat.apply([], Array.apply(null, Array(-n))\r\n .map(Array.prototype.valueOf, [1, 0])\r\n ),\r\n isNegative: false\r\n };\r\n\r\n var arr = Array.apply(null, Array(+n - 1))\r\n .map(Array.prototype.valueOf, [0, 1]);\r\n arr.unshift([1]);\r\n return {\r\n value: [].concat.apply([], arr),\r\n isNegative: false\r\n };\r\n }\r\n\r\n var neg = false;\r\n if (n.isNegative() && base.isPositive()) {\r\n neg = true;\r\n n = n.abs();\r\n }\r\n if (base.equals(1)) {\r\n if (n.isZero()) return { value: [0], isNegative: false };\r\n\r\n return {\r\n value: Array.apply(null, Array(+n))\r\n .map(Number.prototype.valueOf, 1),\r\n isNegative: neg\r\n };\r\n }\r\n var out = [];\r\n var left = n, divmod;\r\n while (left.isNegative() || left.compareAbs(base) >= 0) {\r\n divmod = left.divmod(base);\r\n left = divmod.quotient;\r\n var digit = divmod.remainder;\r\n if (digit.isNegative()) {\r\n digit = base.minus(digit).abs();\r\n left = left.next();\r\n }\r\n out.push(digit.toJSNumber());\r\n }\r\n out.push(left.toJSNumber());\r\n return { value: out.reverse(), isNegative: neg };\r\n }\r\n\r\n function toBaseString(n, base) {\r\n var arr = toBase(n, base);\r\n return (arr.isNegative ? \"-\" : \"\") + arr.value.map(stringify).join('');\r\n }\r\n\r\n BigInteger.prototype.toArray = function (radix) {\r\n return toBase(this, radix);\r\n };\r\n\r\n SmallInteger.prototype.toArray = function (radix) {\r\n return toBase(this, radix);\r\n };\r\n\r\n BigInteger.prototype.toString = function (radix) {\r\n if (radix === undefined) radix = 10;\r\n if (radix !== 10) return toBaseString(this, radix);\r\n var v = this.value, l = v.length, str = String(v[--l]), zeros = \"0000000\", digit;\r\n while (--l >= 0) {\r\n digit = String(v[l]);\r\n str += zeros.slice(digit.length) + digit;\r\n }\r\n var sign = this.sign ? \"-\" : \"\";\r\n return sign + str;\r\n };\r\n\r\n SmallInteger.prototype.toString = function (radix) {\r\n if (radix === undefined) radix = 10;\r\n if (radix != 10) return toBaseString(this, radix);\r\n return String(this.value);\r\n };\r\n BigInteger.prototype.toJSON = SmallInteger.prototype.toJSON = function () { return this.toString(); }\r\n\r\n BigInteger.prototype.valueOf = function () {\r\n return parseInt(this.toString(), 10);\r\n };\r\n BigInteger.prototype.toJSNumber = BigInteger.prototype.valueOf;\r\n\r\n SmallInteger.prototype.valueOf = function () {\r\n return this.value;\r\n };\r\n SmallInteger.prototype.toJSNumber = SmallInteger.prototype.valueOf;\r\n\r\n function parseStringValue(v) {\r\n if (isPrecise(+v)) {\r\n var x = +v;\r\n if (x === truncate(x))\r\n return new SmallInteger(x);\r\n throw new Error(\"Invalid integer: \" + v);\r\n }\r\n var sign = v[0] === \"-\";\r\n if (sign) v = v.slice(1);\r\n var split = v.split(/e/i);\r\n if (split.length > 2) throw new Error(\"Invalid integer: \" + split.join(\"e\"));\r\n if (split.length === 2) {\r\n var exp = split[1];\r\n if (exp[0] === \"+\") exp = exp.slice(1);\r\n exp = +exp;\r\n if (exp !== truncate(exp) || !isPrecise(exp)) throw new Error(\"Invalid integer: \" + exp + \" is not a valid exponent.\");\r\n var text = split[0];\r\n var decimalPlace = text.indexOf(\".\");\r\n if (decimalPlace >= 0) {\r\n exp -= text.length - decimalPlace - 1;\r\n text = text.slice(0, decimalPlace) + text.slice(decimalPlace + 1);\r\n }\r\n if (exp < 0) throw new Error(\"Cannot include negative exponent part for integers\");\r\n text += (new Array(exp + 1)).join(\"0\");\r\n v = text;\r\n }\r\n var isValid = /^([0-9][0-9]*)$/.test(v);\r\n if (!isValid) throw new Error(\"Invalid integer: \" + v);\r\n var r = [], max = v.length, l = LOG_BASE, min = max - l;\r\n while (max > 0) {\r\n r.push(+v.slice(min, max));\r\n min -= l;\r\n if (min < 0) min = 0;\r\n max -= l;\r\n }\r\n trim(r);\r\n return new BigInteger(r, sign);\r\n }\r\n\r\n function parseNumberValue(v) {\r\n if (isPrecise(v)) {\r\n if (v !== truncate(v)) throw new Error(v + \" is not an integer.\");\r\n return new SmallInteger(v);\r\n }\r\n return parseStringValue(v.toString());\r\n }\r\n\r\n function parseValue(v) {\r\n if (typeof v === \"number\") {\r\n return parseNumberValue(v);\r\n }\r\n if (typeof v === \"string\") {\r\n return parseStringValue(v);\r\n }\r\n return v;\r\n }\r\n // Pre-define numbers in range [-999,999]\r\n for (var i = 0; i < 1000; i++) {\r\n Integer[i] = new SmallInteger(i);\r\n if (i > 0) Integer[-i] = new SmallInteger(-i);\r\n }\r\n // Backwards compatibility\r\n Integer.one = Integer[1];\r\n Integer.zero = Integer[0];\r\n Integer.minusOne = Integer[-1];\r\n Integer.max = max;\r\n Integer.min = min;\r\n Integer.gcd = gcd;\r\n Integer.lcm = lcm;\r\n Integer.isInstance = function (x) { return x instanceof BigInteger || x instanceof SmallInteger; };\r\n Integer.randBetween = randBetween;\r\n\r\n Integer.fromArray = function (digits, base, isNegative) {\r\n return parseBaseFromArray(digits.map(parseValue), parseValue(base || 10), isNegative);\r\n };\r\n\r\n return Integer;\r\n})();\r\n\r\n// Node.js check\r\nif (typeof module !== \"undefined\" && module.hasOwnProperty(\"exports\")) {\r\n module.exports = bigInt;\r\n}\r\n\r\n//amd check\r\nif (typeof define === \"function\" && define.amd) {\r\n define(\"big-integer\", [], function () {\r\n return bigInt;\r\n });\r\n}\r\n", "// Copyright (c) 2017-2018 Emilio Almansi\n// Copyright (c) 2017 Pieter Wuille\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\n'use strict';\n\nvar validate = require('./validation').validate;\n\n/**\n * Converts an array of integers made up of 'from' bits into an\n * array of integers made up of 'to' bits. The output array is\n * zero-padded if necessary, unless strict mode is true.\n * Throws a {@link ValidationError} if input is invalid.\n * Original by Pieter Wuille: https://github.com/sipa/bech32.\n *\n * @param {Uint8Array} data Array of integers made up of 'from' bits.\n * @param {number} from Length in bits of elements in the input array.\n * @param {number} to Length in bits of elements in the output array.\n * @param {bool} strictMode Require the conversion to be completed without padding.\n * @returns {Uint8Array}\n */\nmodule.exports = function(data, from, to, strictMode) {\n var length = strictMode\n ? Math.floor(data.length * from / to)\n : Math.ceil(data.length * from / to);\n var mask = (1 << to) - 1;\n var result = new Uint8Array(length);\n var index = 0;\n var accumulator = 0;\n var bits = 0;\n for (var i = 0; i < data.length; ++i) {\n var value = data[i];\n validate(0 <= value && (value >> from) === 0, 'Invalid value: ' + value + '.');\n accumulator = (accumulator << from) | value;\n bits += from;\n while (bits >= to) {\n bits -= to;\n result[index] = (accumulator >> bits) & mask;\n ++index;\n }\n }\n if (!strictMode) {\n if (bits > 0) {\n result[index] = (accumulator << (to - bits)) & mask;\n ++index;\n }\n } else {\n validate(\n bits < from && ((accumulator << (to - bits)) & mask) === 0,\n 'Input cannot be converted to ' + to + ' bits without padding, but strict mode was used.'\n );\n }\n return result;\n};\n", "/**\n * @license\n * https://github.com/ealmansi/cashaddrjs\n * Copyright (c) 2017-2020 Emilio Almansi\n * Distributed under the MIT software license, see the accompanying\n * file LICENSE or http://www.opensource.org/licenses/mit-license.php.\n */\n\n'use strict';\n\nvar base32 = require('./base32');\nvar bigInt = require('big-integer');\nvar convertBits = require('./convertBits');\nvar validation = require('./validation');\nvar validate = validation.validate;\n\n/**\n * Encoding and decoding of the new Cash Address format for Bitcoin Cash.
\n * Compliant with the original cashaddr specification:\n * {@link https://github.com/bitcoincashorg/bitcoincash.org/blob/master/spec/cashaddr.md}\n * @module cashaddr\n */\n\n/**\n * Encodes a hash from a given type into a Bitcoin Cash address with the given prefix.\n * \n * @static\n * @param {string} prefix Network prefix. E.g.: 'bitcoincash'.\n * @param {string} type Type of address to generate. Either 'P2PKH' or 'P2SH'.\n * @param {Uint8Array} hash Hash to encode represented as an array of 8-bit integers.\n * @returns {string}\n * @throws {ValidationError}\n */\nfunction encode(prefix, type, hash) {\n validate(typeof prefix === 'string' && isValidPrefix(prefix), 'Invalid prefix: ' + prefix + '.');\n validate(typeof type === 'string', 'Invalid type: ' + type + '.');\n validate(hash instanceof Uint8Array, 'Invalid hash: ' + hash + '.');\n var prefixData = concat(prefixToUint5Array(prefix), new Uint8Array(1));\n var versionByte = getTypeBits(type) + getHashSizeBits(hash);\n var payloadData = toUint5Array(concat(new Uint8Array([versionByte]), hash));\n var checksumData = concat(concat(prefixData, payloadData), new Uint8Array(8));\n var payload = concat(payloadData, checksumToUint5Array(polymod(checksumData)));\n return prefix + ':' + base32.encode(payload);\n}\n\n/**\n * Decodes the given address into its constituting prefix, type and hash. See [#encode()]{@link encode}.\n * \n * @static\n * @param {string} address Address to decode. E.g.: 'bitcoincash:qpm2qsznhks23z7629mms6s4cwef74vcwvy22gdx6a'.\n * @returns {object}\n * @throws {ValidationError}\n */\nfunction decode(address) {\n validate(typeof address === 'string' && hasSingleCase(address), 'Invalid address: ' + address + '.');\n var pieces = address.toLowerCase().split(':');\n validate(pieces.length === 2, 'Missing prefix: ' + address + '.');\n var prefix = pieces[0];\n var payload = base32.decode(pieces[1]);\n validate(validChecksum(prefix, payload), 'Invalid checksum: ' + address + '.');\n var payloadData = fromUint5Array(payload.subarray(0, -8));\n var versionByte = payloadData[0];\n var hash = payloadData.subarray(1);\n validate(getHashSize(versionByte) === hash.length * 8, 'Invalid hash size: ' + address + '.');\n var type = getType(versionByte);\n return {\n prefix: prefix,\n type: type,\n hash: hash,\n };\n}\n\n/**\n * Error thrown when encoding or decoding fail due to invalid input.\n *\n * @constructor ValidationError\n * @param {string} message Error description.\n */\nvar ValidationError = validation.ValidationError;\n\n/**\n * Valid address prefixes.\n *\n * @private\n */\nvar VALID_PREFIXES = ['bitcoincash', 'bchtest', 'bchreg'];\n\n/**\n * Checks whether a string is a valid prefix; ie., it has a single letter case\n * and is one of 'bitcoincash', 'bchtest', or 'bchreg'.\n *\n * @private\n * @param {string} prefix \n * @returns {boolean}\n */\nfunction isValidPrefix(prefix) {\n return hasSingleCase(prefix) && VALID_PREFIXES.indexOf(prefix.toLowerCase()) !== -1;\n}\n\n/**\n * Derives an array from the given prefix to be used in the computation\n * of the address' checksum.\n *\n * @private\n * @param {string} prefix Network prefix. E.g.: 'bitcoincash'. \n * @returns {Uint8Array}\n */\nfunction prefixToUint5Array(prefix) {\n var result = new Uint8Array(prefix.length);\n for (var i = 0; i < prefix.length; ++i) {\n result[i] = prefix[i].charCodeAt(0) & 31;\n }\n return result;\n}\n\n/**\n * Returns an array representation of the given checksum to be encoded\n * within the address' payload.\n *\n * @private\n * @param {BigInteger} checksum Computed checksum.\n * @returns {Uint8Array}\n */\nfunction checksumToUint5Array(checksum) {\n var result = new Uint8Array(8);\n for (var i = 0; i < 8; ++i) {\n result[7 - i] = checksum.and(31).toJSNumber();\n checksum = checksum.shiftRight(5);\n }\n return result;\n}\n\n/**\n * Returns the bit representation of the given type within the version\n * byte.\n *\n * @private\n * @param {string} type Address type. Either 'P2PKH' or 'P2SH'.\n * @returns {number}\n * @throws {ValidationError}\n */\nfunction getTypeBits(type) {\n switch (type) {\n case 'P2PKH':\n return 0;\n case 'P2SH':\n return 8;\n default:\n throw new ValidationError('Invalid type: ' + type + '.');\n }\n}\n\n/**\n * Retrieves the address type from its bit representation within the\n * version byte.\n *\n * @private\n * @param {number} versionByte\n * @returns {string}\n * @throws {ValidationError}\n */\nfunction getType(versionByte) {\n switch (versionByte & 120) {\n case 0:\n return 'P2PKH';\n case 8:\n return 'P2SH';\n default:\n throw new ValidationError('Invalid address type in version byte: ' + versionByte + '.');\n }\n}\n\n/**\n * Returns the bit representation of the length in bits of the given\n * hash within the version byte.\n *\n * @private\n * @param {Uint8Array} hash Hash to encode represented as an array of 8-bit integers.\n * @returns {number}\n * @throws {ValidationError}\n */\nfunction getHashSizeBits(hash) {\n switch (hash.length * 8) {\n case 160:\n return 0;\n case 192:\n return 1;\n case 224:\n return 2;\n case 256:\n return 3;\n case 320:\n return 4;\n case 384:\n return 5;\n case 448:\n return 6;\n case 512:\n return 7;\n default:\n throw new ValidationError('Invalid hash size: ' + hash.length + '.');\n }\n}\n\n/**\n * Retrieves the the length in bits of the encoded hash from its bit\n * representation within the version byte.\n *\n * @private\n * @param {number} versionByte\n * @returns {number}\n */\nfunction getHashSize(versionByte) {\n switch (versionByte & 7) {\n case 0:\n return 160;\n case 1:\n return 192;\n case 2:\n return 224;\n case 3:\n return 256;\n case 4:\n return 320;\n case 5:\n return 384;\n case 6:\n return 448;\n case 7:\n return 512;\n }\n}\n\n/**\n * Converts an array of 8-bit integers into an array of 5-bit integers,\n * right-padding with zeroes if necessary.\n *\n * @private\n * @param {Uint8Array} data\n * @returns {Uint8Array}\n */\nfunction toUint5Array(data) {\n return convertBits(data, 8, 5);\n}\n\n/**\n * Converts an array of 5-bit integers back into an array of 8-bit integers,\n * removing extra zeroes left from padding if necessary.\n * Throws a {@link ValidationError} if input is not a zero-padded array of 8-bit integers.\n *\n * @private\n * @param {Uint8Array} data\n * @returns {Uint8Array}\n * @throws {ValidationError}\n */\nfunction fromUint5Array(data) {\n return convertBits(data, 5, 8, true);\n}\n\n/**\n * Returns the concatenation a and b.\n *\n * @private\n * @param {Uint8Array} a \n * @param {Uint8Array} b \n * @returns {Uint8Array}\n * @throws {ValidationError}\n */\nfunction concat(a, b) {\n var ab = new Uint8Array(a.length + b.length);\n ab.set(a);\n ab.set(b, a.length);\n return ab;\n}\n\n/**\n * Computes a checksum from the given input data as specified for the CashAddr\n * format: https://github.com/Bitcoin-UAHF/spec/blob/master/cashaddr.md.\n *\n * @private\n * @param {Uint8Array} data Array of 5-bit integers over which the checksum is to be computed.\n * @returns {BigInteger}\n */\nfunction polymod(data) {\n var GENERATOR = [0x98f2bc8e61, 0x79b76d99e2, 0xf33e5fb3c4, 0xae2eabe2a8, 0x1e4f43e470];\n var checksum = bigInt(1);\n for (var i = 0; i < data.length; ++i) {\n var value = data[i];\n var topBits = checksum.shiftRight(35);\n checksum = checksum.and(0x07ffffffff).shiftLeft(5).xor(value);\n for (var j = 0; j < GENERATOR.length; ++j) {\n if (topBits.shiftRight(j).and(1).equals(1)) {\n checksum = checksum.xor(GENERATOR[j]);\n }\n }\n }\n return checksum.xor(1);\n}\n\n/**\n * Verify that the payload has not been corrupted by checking that the\n * checksum is valid.\n * \n * @private\n * @param {string} prefix Network prefix. E.g.: 'bitcoincash'.\n * @param {Uint8Array} payload Array of 5-bit integers containing the address' payload.\n * @returns {boolean}\n */\nfunction validChecksum(prefix, payload) {\n var prefixData = concat(prefixToUint5Array(prefix), new Uint8Array(1));\n var checksumData = concat(prefixData, payload);\n return polymod(checksumData).equals(0);\n}\n\n/**\n * Returns true if, and only if, the given string contains either uppercase\n * or lowercase letters, but not both.\n *\n * @private\n * @param {string} string Input string.\n * @returns {boolean}\n */\nfunction hasSingleCase(string) {\n return string === string.toLowerCase() || string === string.toUpperCase();\n}\n\nmodule.exports = {\n encode: encode,\n decode: decode,\n ValidationError: ValidationError,\n};\n", "'use strict'\n\nexports.byteLength = byteLength\nexports.toByteArray = toByteArray\nexports.fromByteArray = fromByteArray\n\nvar lookup = []\nvar revLookup = []\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array\n\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\nfor (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i]\n revLookup[code.charCodeAt(i)] = i\n}\n\n// Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\nrevLookup['-'.charCodeAt(0)] = 62\nrevLookup['_'.charCodeAt(0)] = 63\n\nfunction getLens (b64) {\n var len = b64.length\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n var validLen = b64.indexOf('=')\n if (validLen === -1) validLen = len\n\n var placeHoldersLen = validLen === len\n ? 0\n : 4 - (validLen % 4)\n\n return [validLen, placeHoldersLen]\n}\n\n// base64 is 4/3 + up to two characters of the original data\nfunction byteLength (b64) {\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction _byteLength (b64, validLen, placeHoldersLen) {\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction toByteArray (b64) {\n var tmp\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))\n\n var curByte = 0\n\n // if there are placeholders, only get up to the last complete 4 chars\n var len = placeHoldersLen > 0\n ? validLen - 4\n : validLen\n\n var i\n for (i = 0; i < len; i += 4) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 18) |\n (revLookup[b64.charCodeAt(i + 1)] << 12) |\n (revLookup[b64.charCodeAt(i + 2)] << 6) |\n revLookup[b64.charCodeAt(i + 3)]\n arr[curByte++] = (tmp >> 16) & 0xFF\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 2) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 2) |\n (revLookup[b64.charCodeAt(i + 1)] >> 4)\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 1) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 10) |\n (revLookup[b64.charCodeAt(i + 1)] << 4) |\n (revLookup[b64.charCodeAt(i + 2)] >> 2)\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] +\n lookup[num >> 12 & 0x3F] +\n lookup[num >> 6 & 0x3F] +\n lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp\n var output = []\n for (var i = start; i < end; i += 3) {\n tmp =\n ((uint8[i] << 16) & 0xFF0000) +\n ((uint8[i + 1] << 8) & 0xFF00) +\n (uint8[i + 2] & 0xFF)\n output.push(tripletToBase64(tmp))\n }\n return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n var tmp\n var len = uint8.length\n var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n var parts = []\n var maxChunkLength = 16383 // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)))\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1]\n parts.push(\n lookup[tmp >> 2] +\n lookup[(tmp << 4) & 0x3F] +\n '=='\n )\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1]\n parts.push(\n lookup[tmp >> 10] +\n lookup[(tmp >> 4) & 0x3F] +\n lookup[(tmp << 2) & 0x3F] +\n '='\n )\n }\n\n return parts.join('')\n}\n", "/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */\nexports.read = function (buffer, offset, isLE, mLen, nBytes) {\n var e, m\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var nBits = -7\n var i = isLE ? (nBytes - 1) : 0\n var d = isLE ? -1 : 1\n var s = buffer[offset + i]\n\n i += d\n\n e = s & ((1 << (-nBits)) - 1)\n s >>= (-nBits)\n nBits += eLen\n for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n m = e & ((1 << (-nBits)) - 1)\n e >>= (-nBits)\n nBits += mLen\n for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n if (e === 0) {\n e = 1 - eBias\n } else if (e === eMax) {\n return m ? NaN : ((s ? -1 : 1) * Infinity)\n } else {\n m = m + Math.pow(2, mLen)\n e = e - eBias\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n}\n\nexports.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)\n var i = isLE ? 0 : (nBytes - 1)\n var d = isLE ? 1 : -1\n var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0\n\n value = Math.abs(value)\n\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0\n e = eMax\n } else {\n e = Math.floor(Math.log(value) / Math.LN2)\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--\n c *= 2\n }\n if (e + eBias >= 1) {\n value += rt / c\n } else {\n value += rt * Math.pow(2, 1 - eBias)\n }\n if (value * c >= 2) {\n e++\n c /= 2\n }\n\n if (e + eBias >= eMax) {\n m = 0\n e = eMax\n } else if (e + eBias >= 1) {\n m = ((value * c) - 1) * Math.pow(2, mLen)\n e = e + eBias\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)\n e = 0\n }\n }\n\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n e = (e << mLen) | m\n eLen += mLen\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128\n}\n", "/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n/* eslint-disable no-proto */\n\n'use strict'\n\nconst base64 = require('base64-js')\nconst ieee754 = require('ieee754')\nconst customInspectSymbol =\n (typeof Symbol === 'function' && typeof Symbol['for'] === 'function') // eslint-disable-line dot-notation\n ? Symbol['for']('nodejs.util.inspect.custom') // eslint-disable-line dot-notation\n : null\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\n\nconst K_MAX_LENGTH = 0x7fffffff\nexports.kMaxLength = K_MAX_LENGTH\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Print warning and recommend using `buffer` v4.x which has an Object\n * implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * We report that the browser does not support typed arrays if the are not subclassable\n * using __proto__. Firefox 4-29 lacks support for adding new properties to `Uint8Array`\n * (See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438). IE 10 lacks support\n * for __proto__ and has a buggy typed array implementation.\n */\nBuffer.TYPED_ARRAY_SUPPORT = typedArraySupport()\n\nif (!Buffer.TYPED_ARRAY_SUPPORT && typeof console !== 'undefined' &&\n typeof console.error === 'function') {\n console.error(\n 'This browser lacks typed array (Uint8Array) support which is required by ' +\n '`buffer` v5.x. Use `buffer` v4.x if you require old browser support.'\n )\n}\n\nfunction typedArraySupport () {\n // Can typed array instances can be augmented?\n try {\n const arr = new Uint8Array(1)\n const proto = { foo: function () { return 42 } }\n Object.setPrototypeOf(proto, Uint8Array.prototype)\n Object.setPrototypeOf(arr, proto)\n return arr.foo() === 42\n } catch (e) {\n return false\n }\n}\n\nObject.defineProperty(Buffer.prototype, 'parent', {\n enumerable: true,\n get: function () {\n if (!Buffer.isBuffer(this)) return undefined\n return this.buffer\n }\n})\n\nObject.defineProperty(Buffer.prototype, 'offset', {\n enumerable: true,\n get: function () {\n if (!Buffer.isBuffer(this)) return undefined\n return this.byteOffset\n }\n})\n\nfunction createBuffer (length) {\n if (length > K_MAX_LENGTH) {\n throw new RangeError('The value \"' + length + '\" is invalid for option \"size\"')\n }\n // Return an augmented `Uint8Array` instance\n const buf = new Uint8Array(length)\n Object.setPrototypeOf(buf, Buffer.prototype)\n return buf\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nfunction Buffer (arg, encodingOrOffset, length) {\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new TypeError(\n 'The \"string\" argument must be of type string. Received type number'\n )\n }\n return allocUnsafe(arg)\n }\n return from(arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\nfunction from (value, encodingOrOffset, length) {\n if (typeof value === 'string') {\n return fromString(value, encodingOrOffset)\n }\n\n if (ArrayBuffer.isView(value)) {\n return fromArrayView(value)\n }\n\n if (value == null) {\n throw new TypeError(\n 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n 'or Array-like Object. Received type ' + (typeof value)\n )\n }\n\n if (isInstance(value, ArrayBuffer) ||\n (value && isInstance(value.buffer, ArrayBuffer))) {\n return fromArrayBuffer(value, encodingOrOffset, length)\n }\n\n if (typeof SharedArrayBuffer !== 'undefined' &&\n (isInstance(value, SharedArrayBuffer) ||\n (value && isInstance(value.buffer, SharedArrayBuffer)))) {\n return fromArrayBuffer(value, encodingOrOffset, length)\n }\n\n if (typeof value === 'number') {\n throw new TypeError(\n 'The \"value\" argument must not be of type number. Received type number'\n )\n }\n\n const valueOf = value.valueOf && value.valueOf()\n if (valueOf != null && valueOf !== value) {\n return Buffer.from(valueOf, encodingOrOffset, length)\n }\n\n const b = fromObject(value)\n if (b) return b\n\n if (typeof Symbol !== 'undefined' && Symbol.toPrimitive != null &&\n typeof value[Symbol.toPrimitive] === 'function') {\n return Buffer.from(value[Symbol.toPrimitive]('string'), encodingOrOffset, length)\n }\n\n throw new TypeError(\n 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n 'or Array-like Object. Received type ' + (typeof value)\n )\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer.from = function (value, encodingOrOffset, length) {\n return from(value, encodingOrOffset, length)\n}\n\n// Note: Change prototype *after* Buffer.from is defined to workaround Chrome bug:\n// https://github.com/feross/buffer/pull/148\nObject.setPrototypeOf(Buffer.prototype, Uint8Array.prototype)\nObject.setPrototypeOf(Buffer, Uint8Array)\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be of type number')\n } else if (size < 0) {\n throw new RangeError('The value \"' + size + '\" is invalid for option \"size\"')\n }\n}\n\nfunction alloc (size, fill, encoding) {\n assertSize(size)\n if (size <= 0) {\n return createBuffer(size)\n }\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpreted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(size).fill(fill, encoding)\n : createBuffer(size).fill(fill)\n }\n return createBuffer(size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n return alloc(size, fill, encoding)\n}\n\nfunction allocUnsafe (size) {\n assertSize(size)\n return createBuffer(size < 0 ? 0 : checked(size) | 0)\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n return allocUnsafe(size)\n}\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(size)\n}\n\nfunction fromString (string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8'\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n\n const length = byteLength(string, encoding) | 0\n let buf = createBuffer(length)\n\n const actual = buf.write(string, encoding)\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n buf = buf.slice(0, actual)\n }\n\n return buf\n}\n\nfunction fromArrayLike (array) {\n const length = array.length < 0 ? 0 : checked(array.length) | 0\n const buf = createBuffer(length)\n for (let i = 0; i < length; i += 1) {\n buf[i] = array[i] & 255\n }\n return buf\n}\n\nfunction fromArrayView (arrayView) {\n if (isInstance(arrayView, Uint8Array)) {\n const copy = new Uint8Array(arrayView)\n return fromArrayBuffer(copy.buffer, copy.byteOffset, copy.byteLength)\n }\n return fromArrayLike(arrayView)\n}\n\nfunction fromArrayBuffer (array, byteOffset, length) {\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\"offset\" is outside of buffer bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\"length\" is outside of buffer bounds')\n }\n\n let buf\n if (byteOffset === undefined && length === undefined) {\n buf = new Uint8Array(array)\n } else if (length === undefined) {\n buf = new Uint8Array(array, byteOffset)\n } else {\n buf = new Uint8Array(array, byteOffset, length)\n }\n\n // Return an augmented `Uint8Array` instance\n Object.setPrototypeOf(buf, Buffer.prototype)\n\n return buf\n}\n\nfunction fromObject (obj) {\n if (Buffer.isBuffer(obj)) {\n const len = checked(obj.length) | 0\n const buf = createBuffer(len)\n\n if (buf.length === 0) {\n return buf\n }\n\n obj.copy(buf, 0, 0, len)\n return buf\n }\n\n if (obj.length !== undefined) {\n if (typeof obj.length !== 'number' || numberIsNaN(obj.length)) {\n return createBuffer(0)\n }\n return fromArrayLike(obj)\n }\n\n if (obj.type === 'Buffer' && Array.isArray(obj.data)) {\n return fromArrayLike(obj.data)\n }\n}\n\nfunction checked (length) {\n // Note: cannot use `length < K_MAX_LENGTH` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= K_MAX_LENGTH) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + K_MAX_LENGTH.toString(16) + ' bytes')\n }\n return length | 0\n}\n\nfunction SlowBuffer (length) {\n if (+length != length) { // eslint-disable-line eqeqeq\n length = 0\n }\n return Buffer.alloc(+length)\n}\n\nBuffer.isBuffer = function isBuffer (b) {\n return b != null && b._isBuffer === true &&\n b !== Buffer.prototype // so Buffer.isBuffer(Buffer.prototype) will be false\n}\n\nBuffer.compare = function compare (a, b) {\n if (isInstance(a, Uint8Array)) a = Buffer.from(a, a.offset, a.byteLength)\n if (isInstance(b, Uint8Array)) b = Buffer.from(b, b.offset, b.byteLength)\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError(\n 'The \"buf1\", \"buf2\" arguments must be one of type Buffer or Uint8Array'\n )\n }\n\n if (a === b) return 0\n\n let x = a.length\n let y = b.length\n\n for (let i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i]\n y = b[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\nBuffer.isEncoding = function isEncoding (encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true\n default:\n return false\n }\n}\n\nBuffer.concat = function concat (list, length) {\n if (!Array.isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n\n if (list.length === 0) {\n return Buffer.alloc(0)\n }\n\n let i\n if (length === undefined) {\n length = 0\n for (i = 0; i < list.length; ++i) {\n length += list[i].length\n }\n }\n\n const buffer = Buffer.allocUnsafe(length)\n let pos = 0\n for (i = 0; i < list.length; ++i) {\n let buf = list[i]\n if (isInstance(buf, Uint8Array)) {\n if (pos + buf.length > buffer.length) {\n if (!Buffer.isBuffer(buf)) buf = Buffer.from(buf)\n buf.copy(buffer, pos)\n } else {\n Uint8Array.prototype.set.call(\n buffer,\n buf,\n pos\n )\n }\n } else if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n } else {\n buf.copy(buffer, pos)\n }\n pos += buf.length\n }\n return buffer\n}\n\nfunction byteLength (string, encoding) {\n if (Buffer.isBuffer(string)) {\n return string.length\n }\n if (ArrayBuffer.isView(string) || isInstance(string, ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n throw new TypeError(\n 'The \"string\" argument must be one of type string, Buffer, or ArrayBuffer. ' +\n 'Received type ' + typeof string\n )\n }\n\n const len = string.length\n const mustMatch = (arguments.length > 2 && arguments[2] === true)\n if (!mustMatch && len === 0) return 0\n\n // Use a for loop to avoid recursion\n let loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len\n case 'utf8':\n case 'utf-8':\n return utf8ToBytes(string).length\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2\n case 'hex':\n return len >>> 1\n case 'base64':\n return base64ToBytes(string).length\n default:\n if (loweredCase) {\n return mustMatch ? -1 : utf8ToBytes(string).length // assume utf8\n }\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n let loweredCase = false\n\n // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n if (start === undefined || start < 0) {\n start = 0\n }\n // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n if (start > this.length) {\n return ''\n }\n\n if (end === undefined || end > this.length) {\n end = this.length\n }\n\n if (end <= 0) {\n return ''\n }\n\n // Force coercion to uint32. This will also coerce falsey/NaN values to 0.\n end >>>= 0\n start >>>= 0\n\n if (end <= start) {\n return ''\n }\n\n if (!encoding) encoding = 'utf8'\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end)\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end)\n\n case 'ascii':\n return asciiSlice(this, start, end)\n\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end)\n\n case 'base64':\n return base64Slice(this, start, end)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = (encoding + '').toLowerCase()\n loweredCase = true\n }\n }\n}\n\n// This property is used by `Buffer.isBuffer` (and the `is-buffer` npm package)\n// to detect a Buffer instance. It's not possible to use `instanceof Buffer`\n// reliably in a browserify context because there could be multiple different\n// copies of the 'buffer' package in use. This method works even for Buffer\n// instances that were created from another copy of the `buffer` package.\n// See: https://github.com/feross/buffer/issues/154\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n const i = b[n]\n b[n] = b[m]\n b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n const len = this.length\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (let i = 0; i < len; i += 2) {\n swap(this, i, i + 1)\n }\n return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n const len = this.length\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (let i = 0; i < len; i += 4) {\n swap(this, i, i + 3)\n swap(this, i + 1, i + 2)\n }\n return this\n}\n\nBuffer.prototype.swap64 = function swap64 () {\n const len = this.length\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (let i = 0; i < len; i += 8) {\n swap(this, i, i + 7)\n swap(this, i + 1, i + 6)\n swap(this, i + 2, i + 5)\n swap(this, i + 3, i + 4)\n }\n return this\n}\n\nBuffer.prototype.toString = function toString () {\n const length = this.length\n if (length === 0) return ''\n if (arguments.length === 0) return utf8Slice(this, 0, length)\n return slowToString.apply(this, arguments)\n}\n\nBuffer.prototype.toLocaleString = Buffer.prototype.toString\n\nBuffer.prototype.equals = function equals (b) {\n if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n if (this === b) return true\n return Buffer.compare(this, b) === 0\n}\n\nBuffer.prototype.inspect = function inspect () {\n let str = ''\n const max = exports.INSPECT_MAX_BYTES\n str = this.toString('hex', 0, max).replace(/(.{2})/g, '$1 ').trim()\n if (this.length > max) str += ' ... '\n return ''\n}\nif (customInspectSymbol) {\n Buffer.prototype[customInspectSymbol] = Buffer.prototype.inspect\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (isInstance(target, Uint8Array)) {\n target = Buffer.from(target, target.offset, target.byteLength)\n }\n if (!Buffer.isBuffer(target)) {\n throw new TypeError(\n 'The \"target\" argument must be one of type Buffer or Uint8Array. ' +\n 'Received type ' + (typeof target)\n )\n }\n\n if (start === undefined) {\n start = 0\n }\n if (end === undefined) {\n end = target ? target.length : 0\n }\n if (thisStart === undefined) {\n thisStart = 0\n }\n if (thisEnd === undefined) {\n thisEnd = this.length\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index')\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0\n }\n if (thisStart >= thisEnd) {\n return -1\n }\n if (start >= end) {\n return 1\n }\n\n start >>>= 0\n end >>>= 0\n thisStart >>>= 0\n thisEnd >>>= 0\n\n if (this === target) return 0\n\n let x = thisEnd - thisStart\n let y = end - start\n const len = Math.min(x, y)\n\n const thisCopy = this.slice(thisStart, thisEnd)\n const targetCopy = target.slice(start, end)\n\n for (let i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i]\n y = targetCopy[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1\n\n // Normalize byteOffset\n if (typeof byteOffset === 'string') {\n encoding = byteOffset\n byteOffset = 0\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000\n }\n byteOffset = +byteOffset // Coerce to Number.\n if (numberIsNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : (buffer.length - 1)\n }\n\n // Normalize byteOffset: negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset\n if (byteOffset >= buffer.length) {\n if (dir) return -1\n else byteOffset = buffer.length - 1\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0\n else return -1\n }\n\n // Normalize val\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding)\n }\n\n // Finally, search either indexOf (if dir is true) or lastIndexOf\n if (Buffer.isBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n } else if (typeof val === 'number') {\n val = val & 0xFF // Search for a byte value [0-255]\n if (typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n }\n }\n return arrayIndexOf(buffer, [val], byteOffset, encoding, dir)\n }\n\n throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n let indexSize = 1\n let arrLength = arr.length\n let valLength = val.length\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase()\n if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1\n }\n indexSize = 2\n arrLength /= 2\n valLength /= 2\n byteOffset /= 2\n }\n }\n\n function read (buf, i) {\n if (indexSize === 1) {\n return buf[i]\n } else {\n return buf.readUInt16BE(i * indexSize)\n }\n }\n\n let i\n if (dir) {\n let foundIndex = -1\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n } else {\n if (foundIndex !== -1) i -= i - foundIndex\n foundIndex = -1\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength\n for (i = byteOffset; i >= 0; i--) {\n let found = true\n for (let j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false\n break\n }\n }\n if (found) return i\n }\n }\n\n return -1\n}\n\nBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1\n}\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n}\n\nBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n}\n\nfunction hexWrite (buf, string, offset, length) {\n offset = Number(offset) || 0\n const remaining = buf.length - offset\n if (!length) {\n length = remaining\n } else {\n length = Number(length)\n if (length > remaining) {\n length = remaining\n }\n }\n\n const strLen = string.length\n\n if (length > strLen / 2) {\n length = strLen / 2\n }\n let i\n for (i = 0; i < length; ++i) {\n const parsed = parseInt(string.substr(i * 2, 2), 16)\n if (numberIsNaN(parsed)) return i\n buf[offset + i] = parsed\n }\n return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8'\n length = this.length\n offset = 0\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset\n length = this.length\n offset = 0\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset >>> 0\n if (isFinite(length)) {\n length = length >>> 0\n if (encoding === undefined) encoding = 'utf8'\n } else {\n encoding = length\n length = undefined\n }\n } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n const remaining = this.length - offset\n if (length === undefined || length > remaining) length = remaining\n\n if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds')\n }\n\n if (!encoding) encoding = 'utf8'\n\n let loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length)\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length)\n\n case 'ascii':\n case 'latin1':\n case 'binary':\n return asciiWrite(this, string, offset, length)\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\n\nBuffer.prototype.toJSON = function toJSON () {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n }\n}\n\nfunction base64Slice (buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf)\n } else {\n return base64.fromByteArray(buf.slice(start, end))\n }\n}\n\nfunction utf8Slice (buf, start, end) {\n end = Math.min(buf.length, end)\n const res = []\n\n let i = start\n while (i < end) {\n const firstByte = buf[i]\n let codePoint = null\n let bytesPerSequence = (firstByte > 0xEF)\n ? 4\n : (firstByte > 0xDF)\n ? 3\n : (firstByte > 0xBF)\n ? 2\n : 1\n\n if (i + bytesPerSequence <= end) {\n let secondByte, thirdByte, fourthByte, tempCodePoint\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte\n }\n break\n case 2:\n secondByte = buf[i + 1]\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint\n }\n }\n break\n case 3:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint\n }\n }\n break\n case 4:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n fourthByte = buf[i + 3]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint\n }\n }\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD\n bytesPerSequence = 1\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000\n res.push(codePoint >>> 10 & 0x3FF | 0xD800)\n codePoint = 0xDC00 | codePoint & 0x3FF\n }\n\n res.push(codePoint)\n i += bytesPerSequence\n }\n\n return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nconst MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n const len = codePoints.length\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n }\n\n // Decode in chunks to avoid \"call stack size exceeded\".\n let res = ''\n let i = 0\n while (i < len) {\n res += String.fromCharCode.apply(\n String,\n codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n )\n }\n return res\n}\n\nfunction asciiSlice (buf, start, end) {\n let ret = ''\n end = Math.min(buf.length, end)\n\n for (let i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F)\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n let ret = ''\n end = Math.min(buf.length, end)\n\n for (let i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i])\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n const len = buf.length\n\n if (!start || start < 0) start = 0\n if (!end || end < 0 || end > len) end = len\n\n let out = ''\n for (let i = start; i < end; ++i) {\n out += hexSliceLookupTable[buf[i]]\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n const bytes = buf.slice(start, end)\n let res = ''\n // If bytes.length is odd, the last 8 bits must be ignored (same as node.js)\n for (let i = 0; i < bytes.length - 1; i += 2) {\n res += String.fromCharCode(bytes[i] + (bytes[i + 1] * 256))\n }\n return res\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n const len = this.length\n start = ~~start\n end = end === undefined ? len : ~~end\n\n if (start < 0) {\n start += len\n if (start < 0) start = 0\n } else if (start > len) {\n start = len\n }\n\n if (end < 0) {\n end += len\n if (end < 0) end = 0\n } else if (end > len) {\n end = len\n }\n\n if (end < start) end = start\n\n const newBuf = this.subarray(start, end)\n // Return an augmented `Uint8Array` instance\n Object.setPrototypeOf(newBuf, Buffer.prototype)\n\n return newBuf\n}\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUintLE =\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n let val = this[offset]\n let mul = 1\n let i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUintBE =\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length)\n }\n\n let val = this[offset + --byteLength]\n let mul = 1\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUint8 =\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 1, this.length)\n return this[offset]\n}\n\nBuffer.prototype.readUint16LE =\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUint16BE =\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUint32LE =\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return ((this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16)) +\n (this[offset + 3] * 0x1000000)\n}\n\nBuffer.prototype.readUint32BE =\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] * 0x1000000) +\n ((this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n this[offset + 3])\n}\n\nBuffer.prototype.readBigUInt64LE = defineBigIntMethod(function readBigUInt64LE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const lo = first +\n this[++offset] * 2 ** 8 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 24\n\n const hi = this[++offset] +\n this[++offset] * 2 ** 8 +\n this[++offset] * 2 ** 16 +\n last * 2 ** 24\n\n return BigInt(lo) + (BigInt(hi) << BigInt(32))\n})\n\nBuffer.prototype.readBigUInt64BE = defineBigIntMethod(function readBigUInt64BE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const hi = first * 2 ** 24 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n this[++offset]\n\n const lo = this[++offset] * 2 ** 24 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n last\n\n return (BigInt(hi) << BigInt(32)) + BigInt(lo)\n})\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n let val = this[offset]\n let mul = 1\n let i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n let i = byteLength\n let mul = 1\n let val = this[offset + --i]\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 1, this.length)\n if (!(this[offset] & 0x80)) return (this[offset])\n return ((0xff - this[offset] + 1) * -1)\n}\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n const val = this[offset] | (this[offset + 1] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n const val = this[offset + 1] | (this[offset] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16) |\n (this[offset + 3] << 24)\n}\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] << 24) |\n (this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n (this[offset + 3])\n}\n\nBuffer.prototype.readBigInt64LE = defineBigIntMethod(function readBigInt64LE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const val = this[offset + 4] +\n this[offset + 5] * 2 ** 8 +\n this[offset + 6] * 2 ** 16 +\n (last << 24) // Overflow\n\n return (BigInt(val) << BigInt(32)) +\n BigInt(first +\n this[++offset] * 2 ** 8 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 24)\n})\n\nBuffer.prototype.readBigInt64BE = defineBigIntMethod(function readBigInt64BE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const val = (first << 24) + // Overflow\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n this[++offset]\n\n return (BigInt(val) << BigInt(32)) +\n BigInt(this[++offset] * 2 ** 24 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n last)\n})\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, true, 23, 4)\n}\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, false, 23, 4)\n}\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, true, 52, 8)\n}\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, false, 52, 8)\n}\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer.prototype.writeUintLE =\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n const maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n let mul = 1\n let i = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUintBE =\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n const maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n let i = byteLength - 1\n let mul = 1\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUint8 =\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeUint16LE =\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n return offset + 2\n}\n\nBuffer.prototype.writeUint16BE =\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n return offset + 2\n}\n\nBuffer.prototype.writeUint32LE =\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n this[offset + 3] = (value >>> 24)\n this[offset + 2] = (value >>> 16)\n this[offset + 1] = (value >>> 8)\n this[offset] = (value & 0xff)\n return offset + 4\n}\n\nBuffer.prototype.writeUint32BE =\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n return offset + 4\n}\n\nfunction wrtBigUInt64LE (buf, value, offset, min, max) {\n checkIntBI(value, min, max, buf, offset, 7)\n\n let lo = Number(value & BigInt(0xffffffff))\n buf[offset++] = lo\n lo = lo >> 8\n buf[offset++] = lo\n lo = lo >> 8\n buf[offset++] = lo\n lo = lo >> 8\n buf[offset++] = lo\n let hi = Number(value >> BigInt(32) & BigInt(0xffffffff))\n buf[offset++] = hi\n hi = hi >> 8\n buf[offset++] = hi\n hi = hi >> 8\n buf[offset++] = hi\n hi = hi >> 8\n buf[offset++] = hi\n return offset\n}\n\nfunction wrtBigUInt64BE (buf, value, offset, min, max) {\n checkIntBI(value, min, max, buf, offset, 7)\n\n let lo = Number(value & BigInt(0xffffffff))\n buf[offset + 7] = lo\n lo = lo >> 8\n buf[offset + 6] = lo\n lo = lo >> 8\n buf[offset + 5] = lo\n lo = lo >> 8\n buf[offset + 4] = lo\n let hi = Number(value >> BigInt(32) & BigInt(0xffffffff))\n buf[offset + 3] = hi\n hi = hi >> 8\n buf[offset + 2] = hi\n hi = hi >> 8\n buf[offset + 1] = hi\n hi = hi >> 8\n buf[offset] = hi\n return offset + 8\n}\n\nBuffer.prototype.writeBigUInt64LE = defineBigIntMethod(function writeBigUInt64LE (value, offset = 0) {\n return wrtBigUInt64LE(this, value, offset, BigInt(0), BigInt('0xffffffffffffffff'))\n})\n\nBuffer.prototype.writeBigUInt64BE = defineBigIntMethod(function writeBigUInt64BE (value, offset = 0) {\n return wrtBigUInt64BE(this, value, offset, BigInt(0), BigInt('0xffffffffffffffff'))\n})\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n const limit = Math.pow(2, (8 * byteLength) - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n let i = 0\n let mul = 1\n let sub = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n const limit = Math.pow(2, (8 * byteLength) - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n let i = byteLength - 1\n let mul = 1\n let sub = 0\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)\n if (value < 0) value = 0xff + value + 1\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n return offset + 2\n}\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n return offset + 2\n}\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n this[offset + 2] = (value >>> 16)\n this[offset + 3] = (value >>> 24)\n return offset + 4\n}\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (value < 0) value = 0xffffffff + value + 1\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n return offset + 4\n}\n\nBuffer.prototype.writeBigInt64LE = defineBigIntMethod(function writeBigInt64LE (value, offset = 0) {\n return wrtBigUInt64LE(this, value, offset, -BigInt('0x8000000000000000'), BigInt('0x7fffffffffffffff'))\n})\n\nBuffer.prototype.writeBigInt64BE = defineBigIntMethod(function writeBigInt64BE (value, offset = 0) {\n return wrtBigUInt64BE(this, value, offset, -BigInt('0x8000000000000000'), BigInt('0x7fffffffffffffff'))\n})\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)\n }\n ieee754.write(buf, value, offset, littleEndian, 23, 4)\n return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert)\n}\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)\n }\n ieee754.write(buf, value, offset, littleEndian, 52, 8)\n return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert)\n}\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n if (!Buffer.isBuffer(target)) throw new TypeError('argument should be a Buffer')\n if (!start) start = 0\n if (!end && end !== 0) end = this.length\n if (targetStart >= target.length) targetStart = target.length\n if (!targetStart) targetStart = 0\n if (end > 0 && end < start) end = start\n\n // Copy 0 bytes; we're done\n if (end === start) return 0\n if (target.length === 0 || this.length === 0) return 0\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds')\n }\n if (start < 0 || start >= this.length) throw new RangeError('Index out of range')\n if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n // Are we oob?\n if (end > this.length) end = this.length\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start\n }\n\n const len = end - start\n\n if (this === target && typeof Uint8Array.prototype.copyWithin === 'function') {\n // Use built-in when available, missing from IE11\n this.copyWithin(targetStart, start, end)\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, end),\n targetStart\n )\n }\n\n return len\n}\n\n// Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill = function fill (val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start\n start = 0\n end = this.length\n } else if (typeof end === 'string') {\n encoding = end\n end = this.length\n }\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string')\n }\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n if (val.length === 1) {\n const code = val.charCodeAt(0)\n if ((encoding === 'utf8' && code < 128) ||\n encoding === 'latin1') {\n // Fast path: If `val` fits into a single byte, use that numeric value.\n val = code\n }\n }\n } else if (typeof val === 'number') {\n val = val & 255\n } else if (typeof val === 'boolean') {\n val = Number(val)\n }\n\n // Invalid ranges are not set to a default, so can range check early.\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index')\n }\n\n if (end <= start) {\n return this\n }\n\n start = start >>> 0\n end = end === undefined ? this.length : end >>> 0\n\n if (!val) val = 0\n\n let i\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val\n }\n } else {\n const bytes = Buffer.isBuffer(val)\n ? val\n : Buffer.from(val, encoding)\n const len = bytes.length\n if (len === 0) {\n throw new TypeError('The value \"' + val +\n '\" is invalid for argument \"value\"')\n }\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len]\n }\n }\n\n return this\n}\n\n// CUSTOM ERRORS\n// =============\n\n// Simplified versions from Node, changed for Buffer-only usage\nconst errors = {}\nfunction E (sym, getMessage, Base) {\n errors[sym] = class NodeError extends Base {\n constructor () {\n super()\n\n Object.defineProperty(this, 'message', {\n value: getMessage.apply(this, arguments),\n writable: true,\n configurable: true\n })\n\n // Add the error code to the name to include it in the stack trace.\n this.name = `${this.name} [${sym}]`\n // Access the stack to generate the error message including the error code\n // from the name.\n this.stack // eslint-disable-line no-unused-expressions\n // Reset the name to the actual name.\n delete this.name\n }\n\n get code () {\n return sym\n }\n\n set code (value) {\n Object.defineProperty(this, 'code', {\n configurable: true,\n enumerable: true,\n value,\n writable: true\n })\n }\n\n toString () {\n return `${this.name} [${sym}]: ${this.message}`\n }\n }\n}\n\nE('ERR_BUFFER_OUT_OF_BOUNDS',\n function (name) {\n if (name) {\n return `${name} is outside of buffer bounds`\n }\n\n return 'Attempt to access memory outside buffer bounds'\n }, RangeError)\nE('ERR_INVALID_ARG_TYPE',\n function (name, actual) {\n return `The \"${name}\" argument must be of type number. Received type ${typeof actual}`\n }, TypeError)\nE('ERR_OUT_OF_RANGE',\n function (str, range, input) {\n let msg = `The value of \"${str}\" is out of range.`\n let received = input\n if (Number.isInteger(input) && Math.abs(input) > 2 ** 32) {\n received = addNumericalSeparator(String(input))\n } else if (typeof input === 'bigint') {\n received = String(input)\n if (input > BigInt(2) ** BigInt(32) || input < -(BigInt(2) ** BigInt(32))) {\n received = addNumericalSeparator(received)\n }\n received += 'n'\n }\n msg += ` It must be ${range}. Received ${received}`\n return msg\n }, RangeError)\n\nfunction addNumericalSeparator (val) {\n let res = ''\n let i = val.length\n const start = val[0] === '-' ? 1 : 0\n for (; i >= start + 4; i -= 3) {\n res = `_${val.slice(i - 3, i)}${res}`\n }\n return `${val.slice(0, i)}${res}`\n}\n\n// CHECK FUNCTIONS\n// ===============\n\nfunction checkBounds (buf, offset, byteLength) {\n validateNumber(offset, 'offset')\n if (buf[offset] === undefined || buf[offset + byteLength] === undefined) {\n boundsError(offset, buf.length - (byteLength + 1))\n }\n}\n\nfunction checkIntBI (value, min, max, buf, offset, byteLength) {\n if (value > max || value < min) {\n const n = typeof min === 'bigint' ? 'n' : ''\n let range\n if (byteLength > 3) {\n if (min === 0 || min === BigInt(0)) {\n range = `>= 0${n} and < 2${n} ** ${(byteLength + 1) * 8}${n}`\n } else {\n range = `>= -(2${n} ** ${(byteLength + 1) * 8 - 1}${n}) and < 2 ** ` +\n `${(byteLength + 1) * 8 - 1}${n}`\n }\n } else {\n range = `>= ${min}${n} and <= ${max}${n}`\n }\n throw new errors.ERR_OUT_OF_RANGE('value', range, value)\n }\n checkBounds(buf, offset, byteLength)\n}\n\nfunction validateNumber (value, name) {\n if (typeof value !== 'number') {\n throw new errors.ERR_INVALID_ARG_TYPE(name, 'number', value)\n }\n}\n\nfunction boundsError (value, length, type) {\n if (Math.floor(value) !== value) {\n validateNumber(value, type)\n throw new errors.ERR_OUT_OF_RANGE(type || 'offset', 'an integer', value)\n }\n\n if (length < 0) {\n throw new errors.ERR_BUFFER_OUT_OF_BOUNDS()\n }\n\n throw new errors.ERR_OUT_OF_RANGE(type || 'offset',\n `>= ${type ? 1 : 0} and <= ${length}`,\n value)\n}\n\n// HELPER FUNCTIONS\n// ================\n\nconst INVALID_BASE64_RE = /[^+/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n // Node takes equal signs as end of the Base64 encoding\n str = str.split('=')[0]\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = str.trim().replace(INVALID_BASE64_RE, '')\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return ''\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + '='\n }\n return str\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity\n let codePoint\n const length = string.length\n let leadSurrogate = null\n const bytes = []\n\n for (let i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i)\n\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n }\n\n // valid lead\n leadSurrogate = codePoint\n\n continue\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n leadSurrogate = codePoint\n continue\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n }\n\n leadSurrogate = null\n\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break\n bytes.push(codePoint)\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break\n bytes.push(\n codePoint >> 0x6 | 0xC0,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break\n bytes.push(\n codePoint >> 0xC | 0xE0,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break\n bytes.push(\n codePoint >> 0x12 | 0xF0,\n codePoint >> 0xC & 0x3F | 0x80,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else {\n throw new Error('Invalid code point')\n }\n }\n\n return bytes\n}\n\nfunction asciiToBytes (str) {\n const byteArray = []\n for (let i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF)\n }\n return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n let c, hi, lo\n const byteArray = []\n for (let i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break\n\n c = str.charCodeAt(i)\n hi = c >> 8\n lo = c % 256\n byteArray.push(lo)\n byteArray.push(hi)\n }\n\n return byteArray\n}\n\nfunction base64ToBytes (str) {\n return base64.toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n let i\n for (i = 0; i < length; ++i) {\n if ((i + offset >= dst.length) || (i >= src.length)) break\n dst[i + offset] = src[i]\n }\n return i\n}\n\n// ArrayBuffer or Uint8Array objects from other contexts (i.e. iframes) do not pass\n// the `instanceof` check but they should be treated as of that type.\n// See: https://github.com/feross/buffer/issues/166\nfunction isInstance (obj, type) {\n return obj instanceof type ||\n (obj != null && obj.constructor != null && obj.constructor.name != null &&\n obj.constructor.name === type.name)\n}\nfunction numberIsNaN (obj) {\n // For IE11 support\n return obj !== obj // eslint-disable-line no-self-compare\n}\n\n// Create lookup table for `toString('hex')`\n// See: https://github.com/feross/buffer/issues/219\nconst hexSliceLookupTable = (function () {\n const alphabet = '0123456789abcdef'\n const table = new Array(256)\n for (let i = 0; i < 16; ++i) {\n const i16 = i * 16\n for (let j = 0; j < 16; ++j) {\n table[i16 + j] = alphabet[i] + alphabet[j]\n }\n }\n return table\n})()\n\n// Return not function with Error if BigInt not supported\nfunction defineBigIntMethod (fn) {\n return typeof BigInt === 'undefined' ? BufferBigIntNotDefined : fn\n}\n\nfunction BufferBigIntNotDefined () {\n throw new Error('BigInt not supported')\n}\n", "/***\n * @license\n * https://github.com/ealmansi/bchaddrjs\n * Copyright (c) 2018-2020 Emilio Almansi\n * Distributed under the MIT software license, see the accompanying\n * file LICENSE or http://www.opensource.org/licenses/mit-license.php.\n */\n\nvar bs58check = require('bs58check')\nvar cashaddr = require('cashaddrjs')\nvar Buffer = require('buffer/').Buffer\n\n/**\n * General purpose Bitcoin Cash address detection and translation.
\n * Supports all major Bitcoin Cash address formats.
\n * Currently:\n *
    \n *
  • Legacy format
  • \n *
  • Bitpay format
  • \n *
  • Cashaddr format
  • \n *
\n * @module bchaddr\n */\n\n/**\n * @static\n * Supported Bitcoin Cash address formats.\n */\nvar Format = {}\nFormat.Legacy = 'legacy'\nFormat.Bitpay = 'bitpay'\nFormat.Cashaddr = 'cashaddr'\n\n/**\n * @static\n * Supported networks.\n */\nvar Network = {}\nNetwork.Mainnet = 'mainnet'\nNetwork.Testnet = 'testnet'\n\n/**\n * @static\n * Supported address types.\n */\nvar Type = {}\nType.P2PKH = 'p2pkh'\nType.P2SH = 'p2sh'\n\n/**\n * Returns a boolean indicating whether the given input is a valid Bitcoin Cash address.\n * @static\n * @param {*} input - Any input to check for validity.\n * @returns {boolean}\n */\nfunction isValidAddress (input) {\n try {\n decodeAddress(input)\n return true\n } catch (error) {\n return false\n }\n}\n\n/**\n * Detects what is the given address' format.\n * @static\n * @param {string} address - A valid Bitcoin Cash address in any format.\n * @return {string}\n * @throws {InvalidAddressError}\n */\nfunction detectAddressFormat (address) {\n return decodeAddress(address).format\n}\n\n/**\n * Detects what is the given address' network.\n * @static\n * @param {string} address - A valid Bitcoin Cash address in any format.\n * @return {string}\n * @throws {InvalidAddressError}\n */\nfunction detectAddressNetwork (address) {\n return decodeAddress(address).network\n}\n\n/**\n * Detects what is the given address' type.\n * @static\n * @param {string} address - A valid Bitcoin Cash address in any format.\n * @return {string}\n * @throws {InvalidAddressError}\n */\nfunction detectAddressType (address) {\n return decodeAddress(address).type\n}\n\n/**\n * Translates the given address into legacy format.\n * @static\n * @param {string} address - A valid Bitcoin Cash address in any format.\n * @return {string}\n * @throws {InvalidAddressError}\n */\nfunction toLegacyAddress (address) {\n var decoded = decodeAddress(address)\n if (decoded.format === Format.Legacy) {\n return address\n }\n return encodeAsLegacy(decoded)\n}\n\n/**\n * Translates the given address into bitpay format.\n * @static\n * @param {string} address - A valid Bitcoin Cash address in any format.\n * @return {string}\n * @throws {InvalidAddressError}\n */\nfunction toBitpayAddress (address) {\n var decoded = decodeAddress(address)\n if (decoded.format === Format.Bitpay) {\n return address\n }\n return encodeAsBitpay(decoded)\n}\n\n/**\n * Translates the given address into cashaddr format.\n * @static\n * @param {string} address - A valid Bitcoin Cash address in any format.\n * @return {string}\n * @throws {InvalidAddressError}\n */\nfunction toCashAddress (address) {\n var decoded = decodeAddress(address)\n return encodeAsCashaddr(decoded)\n}\n\n/**\n * Version byte table for base58 formats.\n * @private\n */\nvar VERSION_BYTE = {}\nVERSION_BYTE[Format.Legacy] = {}\nVERSION_BYTE[Format.Legacy][Network.Mainnet] = {}\nVERSION_BYTE[Format.Legacy][Network.Mainnet][Type.P2PKH] = 0\nVERSION_BYTE[Format.Legacy][Network.Mainnet][Type.P2SH] = 5\nVERSION_BYTE[Format.Legacy][Network.Testnet] = {}\nVERSION_BYTE[Format.Legacy][Network.Testnet][Type.P2PKH] = 111\nVERSION_BYTE[Format.Legacy][Network.Testnet][Type.P2SH] = 196\nVERSION_BYTE[Format.Bitpay] = {}\nVERSION_BYTE[Format.Bitpay][Network.Mainnet] = {}\nVERSION_BYTE[Format.Bitpay][Network.Mainnet][Type.P2PKH] = 28\nVERSION_BYTE[Format.Bitpay][Network.Mainnet][Type.P2SH] = 40\nVERSION_BYTE[Format.Bitpay][Network.Testnet] = {}\nVERSION_BYTE[Format.Bitpay][Network.Testnet][Type.P2PKH] = 111\nVERSION_BYTE[Format.Bitpay][Network.Testnet][Type.P2SH] = 196\n\n/**\n * Decodes the given address into its constituting hash, format, network and type.\n * @private\n * @param {string} address - A valid Bitcoin Cash address in any format.\n * @return {object}\n * @throws {InvalidAddressError}\n */\nfunction decodeAddress (address) {\n try {\n return decodeBase58Address(address)\n } catch (error) {\n }\n try {\n return decodeCashAddress(address)\n } catch (error) {\n }\n throw new InvalidAddressError()\n}\n\n/**\n * Length of a valid base58check encoding payload: 1 byte for\n * the version byte plus 20 bytes for a RIPEMD-160 hash.\n * @private\n */\nvar BASE_58_CHECK_PAYLOAD_LENGTH = 21\n\n/**\n * Attempts to decode the given address assuming it is a base58 address.\n * @private\n * @param {string} address - A valid Bitcoin Cash address in any format.\n * @return {object}\n * @throws {InvalidAddressError}\n */\nfunction decodeBase58Address (address) {\n try {\n var payload = bs58check.decode(address)\n if (payload.length !== BASE_58_CHECK_PAYLOAD_LENGTH) {\n throw new InvalidAddressError()\n }\n var versionByte = payload[0]\n var hash = Array.prototype.slice.call(payload, 1)\n switch (versionByte) {\n case VERSION_BYTE[Format.Legacy][Network.Mainnet][Type.P2PKH]:\n return {\n hash: hash,\n format: Format.Legacy,\n network: Network.Mainnet,\n type: Type.P2PKH\n }\n case VERSION_BYTE[Format.Legacy][Network.Mainnet][Type.P2SH]:\n return {\n hash: hash,\n format: Format.Legacy,\n network: Network.Mainnet,\n type: Type.P2SH\n }\n case VERSION_BYTE[Format.Legacy][Network.Testnet][Type.P2PKH]:\n return {\n hash: hash,\n format: Format.Legacy,\n network: Network.Testnet,\n type: Type.P2PKH\n }\n case VERSION_BYTE[Format.Legacy][Network.Testnet][Type.P2SH]:\n return {\n hash: hash,\n format: Format.Legacy,\n network: Network.Testnet,\n type: Type.P2SH\n }\n case VERSION_BYTE[Format.Bitpay][Network.Mainnet][Type.P2PKH]:\n return {\n hash: hash,\n format: Format.Bitpay,\n network: Network.Mainnet,\n type: Type.P2PKH\n }\n case VERSION_BYTE[Format.Bitpay][Network.Mainnet][Type.P2SH]:\n return {\n hash: hash,\n format: Format.Bitpay,\n network: Network.Mainnet,\n type: Type.P2SH\n }\n }\n } catch (error) {\n }\n throw new InvalidAddressError()\n}\n\n/**\n * Attempts to decode the given address assuming it is a cashaddr address.\n * @private\n * @param {string} address - A valid Bitcoin Cash address in any format.\n * @return {object}\n * @throws {InvalidAddressError}\n */\nfunction decodeCashAddress (address) {\n if (address.indexOf(':') !== -1) {\n try {\n return decodeCashAddressWithPrefix(address)\n } catch (error) {\n }\n } else {\n var prefixes = ['bitcoincash', 'bchtest', 'bchreg']\n for (var i = 0; i < prefixes.length; ++i) {\n try {\n var prefix = prefixes[i]\n return decodeCashAddressWithPrefix(prefix + ':' + address)\n } catch (error) {\n }\n }\n }\n throw new InvalidAddressError()\n}\n\n/**\n * Attempts to decode the given address assuming it is a cashaddr address with explicit prefix.\n * @private\n * @param {string} address - A valid Bitcoin Cash address in any format.\n * @return {object}\n * @throws {InvalidAddressError}\n */\nfunction decodeCashAddressWithPrefix (address) {\n try {\n var decoded = cashaddr.decode(address)\n var hash = Array.prototype.slice.call(decoded.hash, 0)\n var type = decoded.type === 'P2PKH' ? Type.P2PKH : Type.P2SH\n switch (decoded.prefix) {\n case 'bitcoincash':\n return {\n hash: hash,\n format: Format.Cashaddr,\n network: Network.Mainnet,\n type: type\n }\n case 'bchtest':\n case 'bchreg':\n return {\n hash: hash,\n format: Format.Cashaddr,\n network: Network.Testnet,\n type: type\n }\n }\n } catch (error) {\n }\n throw new InvalidAddressError()\n}\n\n/**\n * Encodes the given decoded address into legacy format.\n * @private\n * @param {object} decoded\n * @returns {string}\n */\nfunction encodeAsLegacy (decoded) {\n var versionByte = VERSION_BYTE[Format.Legacy][decoded.network][decoded.type]\n var buffer = Buffer.alloc(1 + decoded.hash.length)\n buffer[0] = versionByte\n buffer.set(decoded.hash, 1)\n return bs58check.encode(buffer)\n}\n\n/**\n * Encodes the given decoded address into bitpay format.\n * @private\n * @param {object} decoded\n * @returns {string}\n */\nfunction encodeAsBitpay (decoded) {\n var versionByte = VERSION_BYTE[Format.Bitpay][decoded.network][decoded.type]\n var buffer = Buffer.alloc(1 + decoded.hash.length)\n buffer[0] = versionByte\n buffer.set(decoded.hash, 1)\n return bs58check.encode(buffer)\n}\n\n/**\n * Encodes the given decoded address into cashaddr format.\n * @private\n * @param {object} decoded\n * @returns {string}\n */\nfunction encodeAsCashaddr (decoded) {\n var prefix = decoded.network === Network.Mainnet ? 'bitcoincash' : 'bchtest'\n var type = decoded.type === Type.P2PKH ? 'P2PKH' : 'P2SH'\n var hash = new Uint8Array(decoded.hash)\n return cashaddr.encode(prefix, type, hash)\n}\n\n/**\n * Returns a boolean indicating whether the address is in legacy format.\n * @static\n * @param {string} address - A valid Bitcoin Cash address in any format.\n * @returns {boolean}\n * @throws {InvalidAddressError}\n */\nfunction isLegacyAddress (address) {\n return detectAddressFormat(address) === Format.Legacy\n}\n\n/**\n * Returns a boolean indicating whether the address is in bitpay format.\n * @static\n * @param {string} address - A valid Bitcoin Cash address in any format.\n * @returns {boolean}\n * @throws {InvalidAddressError}\n */\nfunction isBitpayAddress (address) {\n return detectAddressFormat(address) === Format.Bitpay\n}\n\n/**\n * Returns a boolean indicating whether the address is in cashaddr format.\n * @static\n * @param {string} address - A valid Bitcoin Cash address in any format.\n * @returns {boolean}\n * @throws {InvalidAddressError}\n */\nfunction isCashAddress (address) {\n return detectAddressFormat(address) === Format.Cashaddr\n}\n\n/**\n * Returns a boolean indicating whether the address is a mainnet address.\n * @static\n * @param {string} address - A valid Bitcoin Cash address in any format.\n * @returns {boolean}\n * @throws {InvalidAddressError}\n */\nfunction isMainnetAddress (address) {\n return detectAddressNetwork(address) === Network.Mainnet\n}\n\n/**\n * Returns a boolean indicating whether the address is a testnet address.\n * @static\n * @param {string} address - A valid Bitcoin Cash address in any format.\n * @returns {boolean}\n * @throws {InvalidAddressError}\n */\nfunction isTestnetAddress (address) {\n return detectAddressNetwork(address) === Network.Testnet\n}\n\n/**\n * Returns a boolean indicating whether the address is a p2pkh address.\n * @static\n * @param {string} address - A valid Bitcoin Cash address in any format.\n * @returns {boolean}\n * @throws {InvalidAddressError}\n */\nfunction isP2PKHAddress (address) {\n return detectAddressType(address) === Type.P2PKH\n}\n\n/**\n * Returns a boolean indicating whether the address is a p2sh address.\n * @static\n * @param {string} address - A valid Bitcoin Cash address in any format.\n * @returns {boolean}\n * @throws {InvalidAddressError}\n */\nfunction isP2SHAddress (address) {\n return detectAddressType(address) === Type.P2SH\n}\n\n/**\n * Error thrown when the address given as input is not a valid Bitcoin Cash address.\n * @constructor\n * InvalidAddressError\n */\nfunction InvalidAddressError () {\n var error = new Error()\n this.name = error.name = 'InvalidAddressError'\n this.message = error.message = 'Received an invalid Bitcoin Cash address as input.'\n this.stack = error.stack\n}\n\nInvalidAddressError.prototype = Object.create(Error.prototype)\n\nmodule.exports = {\n Format: Format,\n Network: Network,\n Type: Type,\n isValidAddress: isValidAddress,\n detectAddressFormat: detectAddressFormat,\n detectAddressNetwork: detectAddressNetwork,\n detectAddressType: detectAddressType,\n toLegacyAddress: toLegacyAddress,\n toBitpayAddress: toBitpayAddress,\n toCashAddress: toCashAddress,\n isLegacyAddress: isLegacyAddress,\n isBitpayAddress: isBitpayAddress,\n isCashAddress: isCashAddress,\n isMainnetAddress: isMainnetAddress,\n isTestnetAddress: isTestnetAddress,\n isP2PKHAddress: isP2PKHAddress,\n isP2SHAddress: isP2SHAddress,\n InvalidAddressError: InvalidAddressError\n}\n", "'use strict'\n// base-x encoding / decoding\n// Copyright (c) 2018 base-x contributors\n// Copyright (c) 2014-2018 The Bitcoin Core developers (base58.cpp)\n// Distributed under the MIT software license, see the accompanying\n// file LICENSE or http://www.opensource.org/licenses/mit-license.php.\nfunction base (ALPHABET) {\n if (ALPHABET.length >= 255) { throw new TypeError('Alphabet too long') }\n var BASE_MAP = new Uint8Array(256)\n for (var j = 0; j < BASE_MAP.length; j++) {\n BASE_MAP[j] = 255\n }\n for (var i = 0; i < ALPHABET.length; i++) {\n var x = ALPHABET.charAt(i)\n var xc = x.charCodeAt(0)\n if (BASE_MAP[xc] !== 255) { throw new TypeError(x + ' is ambiguous') }\n BASE_MAP[xc] = i\n }\n var BASE = ALPHABET.length\n var LEADER = ALPHABET.charAt(0)\n var FACTOR = Math.log(BASE) / Math.log(256) // log(BASE) / log(256), rounded up\n var iFACTOR = Math.log(256) / Math.log(BASE) // log(256) / log(BASE), rounded up\n function encode (source) {\n if (source instanceof Uint8Array) {\n } else if (ArrayBuffer.isView(source)) {\n source = new Uint8Array(source.buffer, source.byteOffset, source.byteLength)\n } else if (Array.isArray(source)) {\n source = Uint8Array.from(source)\n }\n if (!(source instanceof Uint8Array)) { throw new TypeError('Expected Uint8Array') }\n if (source.length === 0) { return '' }\n // Skip & count leading zeroes.\n var zeroes = 0\n var length = 0\n var pbegin = 0\n var pend = source.length\n while (pbegin !== pend && source[pbegin] === 0) {\n pbegin++\n zeroes++\n }\n // Allocate enough space in big-endian base58 representation.\n var size = ((pend - pbegin) * iFACTOR + 1) >>> 0\n var b58 = new Uint8Array(size)\n // Process the bytes.\n while (pbegin !== pend) {\n var carry = source[pbegin]\n // Apply \"b58 = b58 * 256 + ch\".\n var i = 0\n for (var it1 = size - 1; (carry !== 0 || i < length) && (it1 !== -1); it1--, i++) {\n carry += (256 * b58[it1]) >>> 0\n b58[it1] = (carry % BASE) >>> 0\n carry = (carry / BASE) >>> 0\n }\n if (carry !== 0) { throw new Error('Non-zero carry') }\n length = i\n pbegin++\n }\n // Skip leading zeroes in base58 result.\n var it2 = size - length\n while (it2 !== size && b58[it2] === 0) {\n it2++\n }\n // Translate the result into a string.\n var str = LEADER.repeat(zeroes)\n for (; it2 < size; ++it2) { str += ALPHABET.charAt(b58[it2]) }\n return str\n }\n function decodeUnsafe (source) {\n if (typeof source !== 'string') { throw new TypeError('Expected String') }\n if (source.length === 0) { return new Uint8Array() }\n var psz = 0\n // Skip and count leading '1's.\n var zeroes = 0\n var length = 0\n while (source[psz] === LEADER) {\n zeroes++\n psz++\n }\n // Allocate enough space in big-endian base256 representation.\n var size = (((source.length - psz) * FACTOR) + 1) >>> 0 // log(58) / log(256), rounded up.\n var b256 = new Uint8Array(size)\n // Process the characters.\n while (source[psz]) {\n // Decode character\n var carry = BASE_MAP[source.charCodeAt(psz)]\n // Invalid character\n if (carry === 255) { return }\n var i = 0\n for (var it3 = size - 1; (carry !== 0 || i < length) && (it3 !== -1); it3--, i++) {\n carry += (BASE * b256[it3]) >>> 0\n b256[it3] = (carry % 256) >>> 0\n carry = (carry / 256) >>> 0\n }\n if (carry !== 0) { throw new Error('Non-zero carry') }\n length = i\n psz++\n }\n // Skip leading zeroes in b256.\n var it4 = size - length\n while (it4 !== size && b256[it4] === 0) {\n it4++\n }\n var vch = new Uint8Array(zeroes + (size - it4))\n var j = zeroes\n while (it4 !== size) {\n vch[j++] = b256[it4++]\n }\n return vch\n }\n function decode (string) {\n var buffer = decodeUnsafe(string)\n if (buffer) { return buffer }\n throw new Error('Non-base' + BASE + ' character')\n }\n return {\n encode: encode,\n decodeUnsafe: decodeUnsafe,\n decode: decode\n }\n}\nmodule.exports = base\n", "const basex = require('base-x')\nconst ALPHABET = '123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz'\n\nmodule.exports = basex(ALPHABET)\n", "module.exports = require('stream');\n", "'use strict';\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return typeof key === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (typeof input !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (typeof res !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nconst _require = require('buffer'),\n Buffer = _require.Buffer;\nconst _require2 = require('util'),\n inspect = _require2.inspect;\nconst custom = inspect && inspect.custom || 'inspect';\nfunction copyBuffer(src, target, offset) {\n Buffer.prototype.copy.call(src, target, offset);\n}\nmodule.exports = class BufferList {\n constructor() {\n this.head = null;\n this.tail = null;\n this.length = 0;\n }\n push(v) {\n const entry = {\n data: v,\n next: null\n };\n if (this.length > 0) this.tail.next = entry;else this.head = entry;\n this.tail = entry;\n ++this.length;\n }\n unshift(v) {\n const entry = {\n data: v,\n next: this.head\n };\n if (this.length === 0) this.tail = entry;\n this.head = entry;\n ++this.length;\n }\n shift() {\n if (this.length === 0) return;\n const ret = this.head.data;\n if (this.length === 1) this.head = this.tail = null;else this.head = this.head.next;\n --this.length;\n return ret;\n }\n clear() {\n this.head = this.tail = null;\n this.length = 0;\n }\n join(s) {\n if (this.length === 0) return '';\n var p = this.head;\n var ret = '' + p.data;\n while (p = p.next) ret += s + p.data;\n return ret;\n }\n concat(n) {\n if (this.length === 0) return Buffer.alloc(0);\n const ret = Buffer.allocUnsafe(n >>> 0);\n var p = this.head;\n var i = 0;\n while (p) {\n copyBuffer(p.data, ret, i);\n i += p.data.length;\n p = p.next;\n }\n return ret;\n }\n\n // Consumes a specified amount of bytes or characters from the buffered data.\n consume(n, hasStrings) {\n var ret;\n if (n < this.head.data.length) {\n // `slice` is the same for buffers and strings.\n ret = this.head.data.slice(0, n);\n this.head.data = this.head.data.slice(n);\n } else if (n === this.head.data.length) {\n // First chunk is a perfect match.\n ret = this.shift();\n } else {\n // Result spans more than one buffer.\n ret = hasStrings ? this._getString(n) : this._getBuffer(n);\n }\n return ret;\n }\n first() {\n return this.head.data;\n }\n\n // Consumes a specified amount of characters from the buffered data.\n _getString(n) {\n var p = this.head;\n var c = 1;\n var ret = p.data;\n n -= ret.length;\n while (p = p.next) {\n const str = p.data;\n const nb = n > str.length ? str.length : n;\n if (nb === str.length) ret += str;else ret += str.slice(0, n);\n n -= nb;\n if (n === 0) {\n if (nb === str.length) {\n ++c;\n if (p.next) this.head = p.next;else this.head = this.tail = null;\n } else {\n this.head = p;\n p.data = str.slice(nb);\n }\n break;\n }\n ++c;\n }\n this.length -= c;\n return ret;\n }\n\n // Consumes a specified amount of bytes from the buffered data.\n _getBuffer(n) {\n const ret = Buffer.allocUnsafe(n);\n var p = this.head;\n var c = 1;\n p.data.copy(ret);\n n -= p.data.length;\n while (p = p.next) {\n const buf = p.data;\n const nb = n > buf.length ? buf.length : n;\n buf.copy(ret, ret.length - n, 0, nb);\n n -= nb;\n if (n === 0) {\n if (nb === buf.length) {\n ++c;\n if (p.next) this.head = p.next;else this.head = this.tail = null;\n } else {\n this.head = p;\n p.data = buf.slice(nb);\n }\n break;\n }\n ++c;\n }\n this.length -= c;\n return ret;\n }\n\n // Make sure the linked list only shows the minimal necessary information.\n [custom](_, options) {\n return inspect(this, _objectSpread(_objectSpread({}, options), {}, {\n // Only inspect one level.\n depth: 0,\n // It should not recurse.\n customInspect: false\n }));\n }\n};", "'use strict';\n\n// undocumented cb() API, needed for core, not for public API\nfunction destroy(err, cb) {\n const readableDestroyed = this._readableState && this._readableState.destroyed;\n const writableDestroyed = this._writableState && this._writableState.destroyed;\n if (readableDestroyed || writableDestroyed) {\n if (cb) {\n cb(err);\n } else if (err) {\n if (!this._writableState) {\n process.nextTick(emitErrorNT, this, err);\n } else if (!this._writableState.errorEmitted) {\n this._writableState.errorEmitted = true;\n process.nextTick(emitErrorNT, this, err);\n }\n }\n return this;\n }\n\n // we set destroyed to true before firing error callbacks in order\n // to make it re-entrance safe in case destroy() is called within callbacks\n\n if (this._readableState) {\n this._readableState.destroyed = true;\n }\n\n // if this is a duplex stream mark the writable part as destroyed as well\n if (this._writableState) {\n this._writableState.destroyed = true;\n }\n this._destroy(err || null, err => {\n if (!cb && err) {\n if (!this._writableState) {\n process.nextTick(emitErrorAndCloseNT, this, err);\n } else if (!this._writableState.errorEmitted) {\n this._writableState.errorEmitted = true;\n process.nextTick(emitErrorAndCloseNT, this, err);\n } else {\n process.nextTick(emitCloseNT, this);\n }\n } else if (cb) {\n process.nextTick(emitCloseNT, this);\n cb(err);\n } else {\n process.nextTick(emitCloseNT, this);\n }\n });\n return this;\n}\nfunction emitErrorAndCloseNT(self, err) {\n emitErrorNT(self, err);\n emitCloseNT(self);\n}\nfunction emitCloseNT(self) {\n if (self._writableState && !self._writableState.emitClose) return;\n if (self._readableState && !self._readableState.emitClose) return;\n self.emit('close');\n}\nfunction undestroy() {\n if (this._readableState) {\n this._readableState.destroyed = false;\n this._readableState.reading = false;\n this._readableState.ended = false;\n this._readableState.endEmitted = false;\n }\n if (this._writableState) {\n this._writableState.destroyed = false;\n this._writableState.ended = false;\n this._writableState.ending = false;\n this._writableState.finalCalled = false;\n this._writableState.prefinished = false;\n this._writableState.finished = false;\n this._writableState.errorEmitted = false;\n }\n}\nfunction emitErrorNT(self, err) {\n self.emit('error', err);\n}\nfunction errorOrDestroy(stream, err) {\n // We have tests that rely on errors being emitted\n // in the same tick, so changing this is semver major.\n // For now when you opt-in to autoDestroy we allow\n // the error to be emitted nextTick. In a future\n // semver major update we should change the default to this.\n\n const rState = stream._readableState;\n const wState = stream._writableState;\n if (rState && rState.autoDestroy || wState && wState.autoDestroy) stream.destroy(err);else stream.emit('error', err);\n}\nmodule.exports = {\n destroy,\n undestroy,\n errorOrDestroy\n};", "'use strict';\n\nconst codes = {};\n\nfunction createErrorType(code, message, Base) {\n if (!Base) {\n Base = Error\n }\n\n function getMessage (arg1, arg2, arg3) {\n if (typeof message === 'string') {\n return message\n } else {\n return message(arg1, arg2, arg3)\n }\n }\n\n class NodeError extends Base {\n constructor (arg1, arg2, arg3) {\n super(getMessage(arg1, arg2, arg3));\n }\n }\n\n NodeError.prototype.name = Base.name;\n NodeError.prototype.code = code;\n\n codes[code] = NodeError;\n}\n\n// https://github.com/nodejs/node/blob/v10.8.0/lib/internal/errors.js\nfunction oneOf(expected, thing) {\n if (Array.isArray(expected)) {\n const len = expected.length;\n expected = expected.map((i) => String(i));\n if (len > 2) {\n return `one of ${thing} ${expected.slice(0, len - 1).join(', ')}, or ` +\n expected[len - 1];\n } else if (len === 2) {\n return `one of ${thing} ${expected[0]} or ${expected[1]}`;\n } else {\n return `of ${thing} ${expected[0]}`;\n }\n } else {\n return `of ${thing} ${String(expected)}`;\n }\n}\n\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/startsWith\nfunction startsWith(str, search, pos) {\n\treturn str.substr(!pos || pos < 0 ? 0 : +pos, search.length) === search;\n}\n\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/endsWith\nfunction endsWith(str, search, this_len) {\n\tif (this_len === undefined || this_len > str.length) {\n\t\tthis_len = str.length;\n\t}\n\treturn str.substring(this_len - search.length, this_len) === search;\n}\n\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/includes\nfunction includes(str, search, start) {\n if (typeof start !== 'number') {\n start = 0;\n }\n\n if (start + search.length > str.length) {\n return false;\n } else {\n return str.indexOf(search, start) !== -1;\n }\n}\n\ncreateErrorType('ERR_INVALID_OPT_VALUE', function (name, value) {\n return 'The value \"' + value + '\" is invalid for option \"' + name + '\"'\n}, TypeError);\ncreateErrorType('ERR_INVALID_ARG_TYPE', function (name, expected, actual) {\n // determiner: 'must be' or 'must not be'\n let determiner;\n if (typeof expected === 'string' && startsWith(expected, 'not ')) {\n determiner = 'must not be';\n expected = expected.replace(/^not /, '');\n } else {\n determiner = 'must be';\n }\n\n let msg;\n if (endsWith(name, ' argument')) {\n // For cases like 'first argument'\n msg = `The ${name} ${determiner} ${oneOf(expected, 'type')}`;\n } else {\n const type = includes(name, '.') ? 'property' : 'argument';\n msg = `The \"${name}\" ${type} ${determiner} ${oneOf(expected, 'type')}`;\n }\n\n msg += `. Received type ${typeof actual}`;\n return msg;\n}, TypeError);\ncreateErrorType('ERR_STREAM_PUSH_AFTER_EOF', 'stream.push() after EOF');\ncreateErrorType('ERR_METHOD_NOT_IMPLEMENTED', function (name) {\n return 'The ' + name + ' method is not implemented'\n});\ncreateErrorType('ERR_STREAM_PREMATURE_CLOSE', 'Premature close');\ncreateErrorType('ERR_STREAM_DESTROYED', function (name) {\n return 'Cannot call ' + name + ' after a stream was destroyed';\n});\ncreateErrorType('ERR_MULTIPLE_CALLBACK', 'Callback called multiple times');\ncreateErrorType('ERR_STREAM_CANNOT_PIPE', 'Cannot pipe, not readable');\ncreateErrorType('ERR_STREAM_WRITE_AFTER_END', 'write after end');\ncreateErrorType('ERR_STREAM_NULL_VALUES', 'May not write null values to stream', TypeError);\ncreateErrorType('ERR_UNKNOWN_ENCODING', function (arg) {\n return 'Unknown encoding: ' + arg\n}, TypeError);\ncreateErrorType('ERR_STREAM_UNSHIFT_AFTER_END_EVENT', 'stream.unshift() after end event');\n\nmodule.exports.codes = codes;\n", "'use strict';\n\nconst ERR_INVALID_OPT_VALUE = require('../../../errors').codes.ERR_INVALID_OPT_VALUE;\nfunction highWaterMarkFrom(options, isDuplex, duplexKey) {\n return options.highWaterMark != null ? options.highWaterMark : isDuplex ? options[duplexKey] : null;\n}\nfunction getHighWaterMark(state, options, duplexKey, isDuplex) {\n const hwm = highWaterMarkFrom(options, isDuplex, duplexKey);\n if (hwm != null) {\n if (!(isFinite(hwm) && Math.floor(hwm) === hwm) || hwm < 0) {\n const name = isDuplex ? duplexKey : 'highWaterMark';\n throw new ERR_INVALID_OPT_VALUE(name, hwm);\n }\n return Math.floor(hwm);\n }\n\n // Default value\n return state.objectMode ? 16 : 16 * 1024;\n}\nmodule.exports = {\n getHighWaterMark\n};", "\n/**\n * For Node.js, simply re-export the core `util.deprecate` function.\n */\n\nmodule.exports = require('util').deprecate;\n", "// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// A bit simpler than readable streams.\n// Implement an async ._write(chunk, encoding, cb), and it'll handle all\n// the drain event emission and buffering.\n\n'use strict';\n\nmodule.exports = Writable;\n\n/* */\nfunction WriteReq(chunk, encoding, cb) {\n this.chunk = chunk;\n this.encoding = encoding;\n this.callback = cb;\n this.next = null;\n}\n\n// It seems a linked list but it is not\n// there will be only 2 of these for each stream\nfunction CorkedRequest(state) {\n this.next = null;\n this.entry = null;\n this.finish = () => {\n onCorkedFinish(this, state);\n };\n}\n/* */\n\n/**/\nvar Duplex;\n/**/\n\nWritable.WritableState = WritableState;\n\n/**/\nconst internalUtil = {\n deprecate: require('util-deprecate')\n};\n/**/\n\n/**/\nvar Stream = require('./internal/streams/stream');\n/**/\n\nconst Buffer = require('buffer').Buffer;\nconst OurUint8Array = (typeof global !== 'undefined' ? global : typeof window !== 'undefined' ? window : typeof self !== 'undefined' ? self : {}).Uint8Array || function () {};\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\nconst destroyImpl = require('./internal/streams/destroy');\nconst _require = require('./internal/streams/state'),\n getHighWaterMark = _require.getHighWaterMark;\nconst _require$codes = require('../errors').codes,\n ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK,\n ERR_STREAM_CANNOT_PIPE = _require$codes.ERR_STREAM_CANNOT_PIPE,\n ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED,\n ERR_STREAM_NULL_VALUES = _require$codes.ERR_STREAM_NULL_VALUES,\n ERR_STREAM_WRITE_AFTER_END = _require$codes.ERR_STREAM_WRITE_AFTER_END,\n ERR_UNKNOWN_ENCODING = _require$codes.ERR_UNKNOWN_ENCODING;\nconst errorOrDestroy = destroyImpl.errorOrDestroy;\nrequire('inherits')(Writable, Stream);\nfunction nop() {}\nfunction WritableState(options, stream, isDuplex) {\n Duplex = Duplex || require('./_stream_duplex');\n options = options || {};\n\n // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream,\n // e.g. options.readableObjectMode vs. options.writableObjectMode, etc.\n if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex;\n\n // object stream flag to indicate whether or not this stream\n // contains buffers or objects.\n this.objectMode = !!options.objectMode;\n if (isDuplex) this.objectMode = this.objectMode || !!options.writableObjectMode;\n\n // the point at which write() starts returning false\n // Note: 0 is a valid value, means that we always return false if\n // the entire buffer is not flushed immediately on write()\n this.highWaterMark = getHighWaterMark(this, options, 'writableHighWaterMark', isDuplex);\n\n // if _final has been called\n this.finalCalled = false;\n\n // drain event flag.\n this.needDrain = false;\n // at the start of calling end()\n this.ending = false;\n // when end() has been called, and returned\n this.ended = false;\n // when 'finish' is emitted\n this.finished = false;\n\n // has it been destroyed\n this.destroyed = false;\n\n // should we decode strings into buffers before passing to _write?\n // this is here so that some node-core streams can optimize string\n // handling at a lower level.\n var noDecode = options.decodeStrings === false;\n this.decodeStrings = !noDecode;\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n // not an actual buffer we keep track of, but a measurement\n // of how much we're waiting to get pushed to some underlying\n // socket or file.\n this.length = 0;\n\n // a flag to see when we're in the middle of a write.\n this.writing = false;\n\n // when true all writes will be buffered until .uncork() call\n this.corked = 0;\n\n // a flag to be able to tell if the onwrite cb is called immediately,\n // or on a later tick. We set this to true at first, because any\n // actions that shouldn't happen until \"later\" should generally also\n // not happen before the first write call.\n this.sync = true;\n\n // a flag to know if we're processing previously buffered items, which\n // may call the _write() callback in the same tick, so that we don't\n // end up in an overlapped onwrite situation.\n this.bufferProcessing = false;\n\n // the callback that's passed to _write(chunk,cb)\n this.onwrite = function (er) {\n onwrite(stream, er);\n };\n\n // the callback that the user supplies to write(chunk,encoding,cb)\n this.writecb = null;\n\n // the amount that is being written when _write is called.\n this.writelen = 0;\n this.bufferedRequest = null;\n this.lastBufferedRequest = null;\n\n // number of pending user-supplied write callbacks\n // this must be 0 before 'finish' can be emitted\n this.pendingcb = 0;\n\n // emit prefinish if the only thing we're waiting for is _write cbs\n // This is relevant for synchronous Transform streams\n this.prefinished = false;\n\n // True if the error was already emitted and should not be thrown again\n this.errorEmitted = false;\n\n // Should close be emitted on destroy. Defaults to true.\n this.emitClose = options.emitClose !== false;\n\n // Should .destroy() be called after 'finish' (and potentially 'end')\n this.autoDestroy = !!options.autoDestroy;\n\n // count buffered requests\n this.bufferedRequestCount = 0;\n\n // allocate the first CorkedRequest, there is always\n // one allocated and free to use, and we maintain at most two\n this.corkedRequestsFree = new CorkedRequest(this);\n}\nWritableState.prototype.getBuffer = function getBuffer() {\n var current = this.bufferedRequest;\n var out = [];\n while (current) {\n out.push(current);\n current = current.next;\n }\n return out;\n};\n(function () {\n try {\n Object.defineProperty(WritableState.prototype, 'buffer', {\n get: internalUtil.deprecate(function writableStateBufferGetter() {\n return this.getBuffer();\n }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.', 'DEP0003')\n });\n } catch (_) {}\n})();\n\n// Test _writableState for inheritance to account for Duplex streams,\n// whose prototype chain only points to Readable.\nvar realHasInstance;\nif (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') {\n realHasInstance = Function.prototype[Symbol.hasInstance];\n Object.defineProperty(Writable, Symbol.hasInstance, {\n value: function value(object) {\n if (realHasInstance.call(this, object)) return true;\n if (this !== Writable) return false;\n return object && object._writableState instanceof WritableState;\n }\n });\n} else {\n realHasInstance = function realHasInstance(object) {\n return object instanceof this;\n };\n}\nfunction Writable(options) {\n Duplex = Duplex || require('./_stream_duplex');\n\n // Writable ctor is applied to Duplexes, too.\n // `realHasInstance` is necessary because using plain `instanceof`\n // would return false, as no `_writableState` property is attached.\n\n // Trying to use the custom `instanceof` for Writable here will also break the\n // Node.js LazyTransform implementation, which has a non-trivial getter for\n // `_writableState` that would lead to infinite recursion.\n\n // Checking for a Stream.Duplex instance is faster here instead of inside\n // the WritableState constructor, at least with V8 6.5\n const isDuplex = this instanceof Duplex;\n if (!isDuplex && !realHasInstance.call(Writable, this)) return new Writable(options);\n this._writableState = new WritableState(options, this, isDuplex);\n\n // legacy.\n this.writable = true;\n if (options) {\n if (typeof options.write === 'function') this._write = options.write;\n if (typeof options.writev === 'function') this._writev = options.writev;\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n if (typeof options.final === 'function') this._final = options.final;\n }\n Stream.call(this);\n}\n\n// Otherwise people can pipe Writable streams, which is just wrong.\nWritable.prototype.pipe = function () {\n errorOrDestroy(this, new ERR_STREAM_CANNOT_PIPE());\n};\nfunction writeAfterEnd(stream, cb) {\n var er = new ERR_STREAM_WRITE_AFTER_END();\n // TODO: defer error events consistently everywhere, not just the cb\n errorOrDestroy(stream, er);\n process.nextTick(cb, er);\n}\n\n// Checks that a user-supplied chunk is valid, especially for the particular\n// mode the stream is in. Currently this means that `null` is never accepted\n// and undefined/non-string values are only allowed in object mode.\nfunction validChunk(stream, state, chunk, cb) {\n var er;\n if (chunk === null) {\n er = new ERR_STREAM_NULL_VALUES();\n } else if (typeof chunk !== 'string' && !state.objectMode) {\n er = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer'], chunk);\n }\n if (er) {\n errorOrDestroy(stream, er);\n process.nextTick(cb, er);\n return false;\n }\n return true;\n}\nWritable.prototype.write = function (chunk, encoding, cb) {\n var state = this._writableState;\n var ret = false;\n var isBuf = !state.objectMode && _isUint8Array(chunk);\n if (isBuf && !Buffer.isBuffer(chunk)) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n if (isBuf) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding;\n if (typeof cb !== 'function') cb = nop;\n if (state.ending) writeAfterEnd(this, cb);else if (isBuf || validChunk(this, state, chunk, cb)) {\n state.pendingcb++;\n ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb);\n }\n return ret;\n};\nWritable.prototype.cork = function () {\n this._writableState.corked++;\n};\nWritable.prototype.uncork = function () {\n var state = this._writableState;\n if (state.corked) {\n state.corked--;\n if (!state.writing && !state.corked && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);\n }\n};\nWritable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {\n // node::ParseEncoding() requires lower case.\n if (typeof encoding === 'string') encoding = encoding.toLowerCase();\n if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new ERR_UNKNOWN_ENCODING(encoding);\n this._writableState.defaultEncoding = encoding;\n return this;\n};\nObject.defineProperty(Writable.prototype, 'writableBuffer', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState && this._writableState.getBuffer();\n }\n});\nfunction decodeChunk(state, chunk, encoding) {\n if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') {\n chunk = Buffer.from(chunk, encoding);\n }\n return chunk;\n}\nObject.defineProperty(Writable.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.highWaterMark;\n }\n});\n\n// if we're already writing something, then just put this\n// in the queue, and wait our turn. Otherwise, call _write\n// If we return false, then we need a drain event, so set that flag.\nfunction writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) {\n if (!isBuf) {\n var newChunk = decodeChunk(state, chunk, encoding);\n if (chunk !== newChunk) {\n isBuf = true;\n encoding = 'buffer';\n chunk = newChunk;\n }\n }\n var len = state.objectMode ? 1 : chunk.length;\n state.length += len;\n var ret = state.length < state.highWaterMark;\n // we must ensure that previous needDrain will not be reset to false.\n if (!ret) state.needDrain = true;\n if (state.writing || state.corked) {\n var last = state.lastBufferedRequest;\n state.lastBufferedRequest = {\n chunk,\n encoding,\n isBuf,\n callback: cb,\n next: null\n };\n if (last) {\n last.next = state.lastBufferedRequest;\n } else {\n state.bufferedRequest = state.lastBufferedRequest;\n }\n state.bufferedRequestCount += 1;\n } else {\n doWrite(stream, state, false, len, chunk, encoding, cb);\n }\n return ret;\n}\nfunction doWrite(stream, state, writev, len, chunk, encoding, cb) {\n state.writelen = len;\n state.writecb = cb;\n state.writing = true;\n state.sync = true;\n if (state.destroyed) state.onwrite(new ERR_STREAM_DESTROYED('write'));else if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite);\n state.sync = false;\n}\nfunction onwriteError(stream, state, sync, er, cb) {\n --state.pendingcb;\n if (sync) {\n // defer the callback if we are being called synchronously\n // to avoid piling up things on the stack\n process.nextTick(cb, er);\n // this can emit finish, and it will always happen\n // after error\n process.nextTick(finishMaybe, stream, state);\n stream._writableState.errorEmitted = true;\n errorOrDestroy(stream, er);\n } else {\n // the caller expect this to happen before if\n // it is async\n cb(er);\n stream._writableState.errorEmitted = true;\n errorOrDestroy(stream, er);\n // this can emit finish, but finish must\n // always follow error\n finishMaybe(stream, state);\n }\n}\nfunction onwriteStateUpdate(state) {\n state.writing = false;\n state.writecb = null;\n state.length -= state.writelen;\n state.writelen = 0;\n}\nfunction onwrite(stream, er) {\n var state = stream._writableState;\n var sync = state.sync;\n var cb = state.writecb;\n if (typeof cb !== 'function') throw new ERR_MULTIPLE_CALLBACK();\n onwriteStateUpdate(state);\n if (er) onwriteError(stream, state, sync, er, cb);else {\n // Check if we're actually ready to finish, but don't emit yet\n var finished = needFinish(state) || stream.destroyed;\n if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {\n clearBuffer(stream, state);\n }\n if (sync) {\n process.nextTick(afterWrite, stream, state, finished, cb);\n } else {\n afterWrite(stream, state, finished, cb);\n }\n }\n}\nfunction afterWrite(stream, state, finished, cb) {\n if (!finished) onwriteDrain(stream, state);\n state.pendingcb--;\n cb();\n finishMaybe(stream, state);\n}\n\n// Must force callback to be called on nextTick, so that we don't\n// emit 'drain' before the write() consumer gets the 'false' return\n// value, and has a chance to attach a 'drain' listener.\nfunction onwriteDrain(stream, state) {\n if (state.length === 0 && state.needDrain) {\n state.needDrain = false;\n stream.emit('drain');\n }\n}\n\n// if there's something in the buffer waiting, then process it\nfunction clearBuffer(stream, state) {\n state.bufferProcessing = true;\n var entry = state.bufferedRequest;\n if (stream._writev && entry && entry.next) {\n // Fast case, write everything using _writev()\n var l = state.bufferedRequestCount;\n var buffer = new Array(l);\n var holder = state.corkedRequestsFree;\n holder.entry = entry;\n var count = 0;\n var allBuffers = true;\n while (entry) {\n buffer[count] = entry;\n if (!entry.isBuf) allBuffers = false;\n entry = entry.next;\n count += 1;\n }\n buffer.allBuffers = allBuffers;\n doWrite(stream, state, true, state.length, buffer, '', holder.finish);\n\n // doWrite is almost always async, defer these to save a bit of time\n // as the hot path ends with doWrite\n state.pendingcb++;\n state.lastBufferedRequest = null;\n if (holder.next) {\n state.corkedRequestsFree = holder.next;\n holder.next = null;\n } else {\n state.corkedRequestsFree = new CorkedRequest(state);\n }\n state.bufferedRequestCount = 0;\n } else {\n // Slow case, write chunks one-by-one\n while (entry) {\n var chunk = entry.chunk;\n var encoding = entry.encoding;\n var cb = entry.callback;\n var len = state.objectMode ? 1 : chunk.length;\n doWrite(stream, state, false, len, chunk, encoding, cb);\n entry = entry.next;\n state.bufferedRequestCount--;\n // if we didn't call the onwrite immediately, then\n // it means that we need to wait until it does.\n // also, that means that the chunk and cb are currently\n // being processed, so move the buffer counter past them.\n if (state.writing) {\n break;\n }\n }\n if (entry === null) state.lastBufferedRequest = null;\n }\n state.bufferedRequest = entry;\n state.bufferProcessing = false;\n}\nWritable.prototype._write = function (chunk, encoding, cb) {\n cb(new ERR_METHOD_NOT_IMPLEMENTED('_write()'));\n};\nWritable.prototype._writev = null;\nWritable.prototype.end = function (chunk, encoding, cb) {\n var state = this._writableState;\n if (typeof chunk === 'function') {\n cb = chunk;\n chunk = null;\n encoding = null;\n } else if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n if (chunk !== null && chunk !== undefined) this.write(chunk, encoding);\n\n // .end() fully uncorks\n if (state.corked) {\n state.corked = 1;\n this.uncork();\n }\n\n // ignore unnecessary end() calls.\n if (!state.ending) endWritable(this, state, cb);\n return this;\n};\nObject.defineProperty(Writable.prototype, 'writableLength', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get() {\n return this._writableState.length;\n }\n});\nfunction needFinish(state) {\n return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing;\n}\nfunction callFinal(stream, state) {\n stream._final(err => {\n state.pendingcb--;\n if (err) {\n errorOrDestroy(stream, err);\n }\n state.prefinished = true;\n stream.emit('prefinish');\n finishMaybe(stream, state);\n });\n}\nfunction prefinish(stream, state) {\n if (!state.prefinished && !state.finalCalled) {\n if (typeof stream._final === 'function' && !state.destroyed) {\n state.pendingcb++;\n state.finalCalled = true;\n process.nextTick(callFinal, stream, state);\n } else {\n state.prefinished = true;\n stream.emit('prefinish');\n }\n }\n}\nfunction finishMaybe(stream, state) {\n var need = needFinish(state);\n if (need) {\n prefinish(stream, state);\n if (state.pendingcb === 0) {\n state.finished = true;\n stream.emit('finish');\n if (state.autoDestroy) {\n // In case of duplex streams we need a way to detect\n // if the readable side is ready for autoDestroy as well\n const rState = stream._readableState;\n if (!rState || rState.autoDestroy && rState.endEmitted) {\n stream.destroy();\n }\n }\n }\n }\n return need;\n}\nfunction endWritable(stream, state, cb) {\n state.ending = true;\n finishMaybe(stream, state);\n if (cb) {\n if (state.finished) process.nextTick(cb);else stream.once('finish', cb);\n }\n state.ended = true;\n stream.writable = false;\n}\nfunction onCorkedFinish(corkReq, state, err) {\n var entry = corkReq.entry;\n corkReq.entry = null;\n while (entry) {\n var cb = entry.callback;\n state.pendingcb--;\n cb(err);\n entry = entry.next;\n }\n\n // reuse the free corkReq.\n state.corkedRequestsFree.next = corkReq;\n}\nObject.defineProperty(Writable.prototype, 'destroyed', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get() {\n if (this._writableState === undefined) {\n return false;\n }\n return this._writableState.destroyed;\n },\n set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._writableState) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._writableState.destroyed = value;\n }\n});\nWritable.prototype.destroy = destroyImpl.destroy;\nWritable.prototype._undestroy = destroyImpl.undestroy;\nWritable.prototype._destroy = function (err, cb) {\n cb(err);\n};", "// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a duplex stream is just a stream that is both readable and writable.\n// Since JS doesn't have multiple prototypal inheritance, this class\n// prototypally inherits from Readable, and then parasitically from\n// Writable.\n\n'use strict';\n\n/**/\nvar objectKeys = Object.keys || function (obj) {\n var keys = [];\n for (var key in obj) keys.push(key);\n return keys;\n};\n/**/\n\nmodule.exports = Duplex;\nconst Readable = require('./_stream_readable');\nconst Writable = require('./_stream_writable');\nrequire('inherits')(Duplex, Readable);\n{\n // Allow the keys array to be GC'ed.\n const keys = objectKeys(Writable.prototype);\n for (var v = 0; v < keys.length; v++) {\n const method = keys[v];\n if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method];\n }\n}\nfunction Duplex(options) {\n if (!(this instanceof Duplex)) return new Duplex(options);\n Readable.call(this, options);\n Writable.call(this, options);\n this.allowHalfOpen = true;\n if (options) {\n if (options.readable === false) this.readable = false;\n if (options.writable === false) this.writable = false;\n if (options.allowHalfOpen === false) {\n this.allowHalfOpen = false;\n this.once('end', onend);\n }\n }\n}\nObject.defineProperty(Duplex.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get() {\n return this._writableState.highWaterMark;\n }\n});\nObject.defineProperty(Duplex.prototype, 'writableBuffer', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState && this._writableState.getBuffer();\n }\n});\nObject.defineProperty(Duplex.prototype, 'writableLength', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get() {\n return this._writableState.length;\n }\n});\n\n// the no-half-open enforcer\nfunction onend() {\n // If the writable side ended, then we're ok.\n if (this._writableState.ended) return;\n\n // no more data can be written.\n // But allow more writes to happen in this tick.\n process.nextTick(onEndNT, this);\n}\nfunction onEndNT(self) {\n self.end();\n}\nObject.defineProperty(Duplex.prototype, 'destroyed', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get() {\n if (this._readableState === undefined || this._writableState === undefined) {\n return false;\n }\n return this._readableState.destroyed && this._writableState.destroyed;\n },\n set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (this._readableState === undefined || this._writableState === undefined) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._readableState.destroyed = value;\n this._writableState.destroyed = value;\n }\n});", "// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\n/**/\n\nvar Buffer = require('safe-buffer').Buffer;\n/**/\n\nvar isEncoding = Buffer.isEncoding || function (encoding) {\n encoding = '' + encoding;\n switch (encoding && encoding.toLowerCase()) {\n case 'hex':case 'utf8':case 'utf-8':case 'ascii':case 'binary':case 'base64':case 'ucs2':case 'ucs-2':case 'utf16le':case 'utf-16le':case 'raw':\n return true;\n default:\n return false;\n }\n};\n\nfunction _normalizeEncoding(enc) {\n if (!enc) return 'utf8';\n var retried;\n while (true) {\n switch (enc) {\n case 'utf8':\n case 'utf-8':\n return 'utf8';\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return 'utf16le';\n case 'latin1':\n case 'binary':\n return 'latin1';\n case 'base64':\n case 'ascii':\n case 'hex':\n return enc;\n default:\n if (retried) return; // undefined\n enc = ('' + enc).toLowerCase();\n retried = true;\n }\n }\n};\n\n// Do not cache `Buffer.isEncoding` when checking encoding names as some\n// modules monkey-patch it to support additional encodings\nfunction normalizeEncoding(enc) {\n var nenc = _normalizeEncoding(enc);\n if (typeof nenc !== 'string' && (Buffer.isEncoding === isEncoding || !isEncoding(enc))) throw new Error('Unknown encoding: ' + enc);\n return nenc || enc;\n}\n\n// StringDecoder provides an interface for efficiently splitting a series of\n// buffers into a series of JS strings without breaking apart multi-byte\n// characters.\nexports.StringDecoder = StringDecoder;\nfunction StringDecoder(encoding) {\n this.encoding = normalizeEncoding(encoding);\n var nb;\n switch (this.encoding) {\n case 'utf16le':\n this.text = utf16Text;\n this.end = utf16End;\n nb = 4;\n break;\n case 'utf8':\n this.fillLast = utf8FillLast;\n nb = 4;\n break;\n case 'base64':\n this.text = base64Text;\n this.end = base64End;\n nb = 3;\n break;\n default:\n this.write = simpleWrite;\n this.end = simpleEnd;\n return;\n }\n this.lastNeed = 0;\n this.lastTotal = 0;\n this.lastChar = Buffer.allocUnsafe(nb);\n}\n\nStringDecoder.prototype.write = function (buf) {\n if (buf.length === 0) return '';\n var r;\n var i;\n if (this.lastNeed) {\n r = this.fillLast(buf);\n if (r === undefined) return '';\n i = this.lastNeed;\n this.lastNeed = 0;\n } else {\n i = 0;\n }\n if (i < buf.length) return r ? r + this.text(buf, i) : this.text(buf, i);\n return r || '';\n};\n\nStringDecoder.prototype.end = utf8End;\n\n// Returns only complete characters in a Buffer\nStringDecoder.prototype.text = utf8Text;\n\n// Attempts to complete a partial non-UTF-8 character using bytes from a Buffer\nStringDecoder.prototype.fillLast = function (buf) {\n if (this.lastNeed <= buf.length) {\n buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, buf.length);\n this.lastNeed -= buf.length;\n};\n\n// Checks the type of a UTF-8 byte, whether it's ASCII, a leading byte, or a\n// continuation byte. If an invalid byte is detected, -2 is returned.\nfunction utf8CheckByte(byte) {\n if (byte <= 0x7F) return 0;else if (byte >> 5 === 0x06) return 2;else if (byte >> 4 === 0x0E) return 3;else if (byte >> 3 === 0x1E) return 4;\n return byte >> 6 === 0x02 ? -1 : -2;\n}\n\n// Checks at most 3 bytes at the end of a Buffer in order to detect an\n// incomplete multi-byte UTF-8 character. The total number of bytes (2, 3, or 4)\n// needed to complete the UTF-8 character (if applicable) are returned.\nfunction utf8CheckIncomplete(self, buf, i) {\n var j = buf.length - 1;\n if (j < i) return 0;\n var nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) self.lastNeed = nb - 1;\n return nb;\n }\n if (--j < i || nb === -2) return 0;\n nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) self.lastNeed = nb - 2;\n return nb;\n }\n if (--j < i || nb === -2) return 0;\n nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) {\n if (nb === 2) nb = 0;else self.lastNeed = nb - 3;\n }\n return nb;\n }\n return 0;\n}\n\n// Validates as many continuation bytes for a multi-byte UTF-8 character as\n// needed or are available. If we see a non-continuation byte where we expect\n// one, we \"replace\" the validated continuation bytes we've seen so far with\n// a single UTF-8 replacement character ('\\ufffd'), to match v8's UTF-8 decoding\n// behavior. The continuation byte check is included three times in the case\n// where all of the continuation bytes for a character exist in the same buffer.\n// It is also done this way as a slight performance increase instead of using a\n// loop.\nfunction utf8CheckExtraBytes(self, buf, p) {\n if ((buf[0] & 0xC0) !== 0x80) {\n self.lastNeed = 0;\n return '\\ufffd';\n }\n if (self.lastNeed > 1 && buf.length > 1) {\n if ((buf[1] & 0xC0) !== 0x80) {\n self.lastNeed = 1;\n return '\\ufffd';\n }\n if (self.lastNeed > 2 && buf.length > 2) {\n if ((buf[2] & 0xC0) !== 0x80) {\n self.lastNeed = 2;\n return '\\ufffd';\n }\n }\n }\n}\n\n// Attempts to complete a multi-byte UTF-8 character using bytes from a Buffer.\nfunction utf8FillLast(buf) {\n var p = this.lastTotal - this.lastNeed;\n var r = utf8CheckExtraBytes(this, buf, p);\n if (r !== undefined) return r;\n if (this.lastNeed <= buf.length) {\n buf.copy(this.lastChar, p, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n buf.copy(this.lastChar, p, 0, buf.length);\n this.lastNeed -= buf.length;\n}\n\n// Returns all complete UTF-8 characters in a Buffer. If the Buffer ended on a\n// partial character, the character's bytes are buffered until the required\n// number of bytes are available.\nfunction utf8Text(buf, i) {\n var total = utf8CheckIncomplete(this, buf, i);\n if (!this.lastNeed) return buf.toString('utf8', i);\n this.lastTotal = total;\n var end = buf.length - (total - this.lastNeed);\n buf.copy(this.lastChar, 0, end);\n return buf.toString('utf8', i, end);\n}\n\n// For UTF-8, a replacement character is added when ending on a partial\n// character.\nfunction utf8End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) return r + '\\ufffd';\n return r;\n}\n\n// UTF-16LE typically needs two bytes per character, but even if we have an even\n// number of bytes available, we need to check if we end on a leading/high\n// surrogate. In that case, we need to wait for the next two bytes in order to\n// decode the last character properly.\nfunction utf16Text(buf, i) {\n if ((buf.length - i) % 2 === 0) {\n var r = buf.toString('utf16le', i);\n if (r) {\n var c = r.charCodeAt(r.length - 1);\n if (c >= 0xD800 && c <= 0xDBFF) {\n this.lastNeed = 2;\n this.lastTotal = 4;\n this.lastChar[0] = buf[buf.length - 2];\n this.lastChar[1] = buf[buf.length - 1];\n return r.slice(0, -1);\n }\n }\n return r;\n }\n this.lastNeed = 1;\n this.lastTotal = 2;\n this.lastChar[0] = buf[buf.length - 1];\n return buf.toString('utf16le', i, buf.length - 1);\n}\n\n// For UTF-16LE we do not explicitly append special replacement characters if we\n// end on a partial character, we simply let v8 handle that.\nfunction utf16End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) {\n var end = this.lastTotal - this.lastNeed;\n return r + this.lastChar.toString('utf16le', 0, end);\n }\n return r;\n}\n\nfunction base64Text(buf, i) {\n var n = (buf.length - i) % 3;\n if (n === 0) return buf.toString('base64', i);\n this.lastNeed = 3 - n;\n this.lastTotal = 3;\n if (n === 1) {\n this.lastChar[0] = buf[buf.length - 1];\n } else {\n this.lastChar[0] = buf[buf.length - 2];\n this.lastChar[1] = buf[buf.length - 1];\n }\n return buf.toString('base64', i, buf.length - n);\n}\n\nfunction base64End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) return r + this.lastChar.toString('base64', 0, 3 - this.lastNeed);\n return r;\n}\n\n// Pass bytes on through for single-byte encodings (e.g. ascii, latin1, hex)\nfunction simpleWrite(buf) {\n return buf.toString(this.encoding);\n}\n\nfunction simpleEnd(buf) {\n return buf && buf.length ? this.write(buf) : '';\n}", "// Ported from https://github.com/mafintosh/end-of-stream with\n// permission from the author, Mathias Buus (@mafintosh).\n\n'use strict';\n\nconst ERR_STREAM_PREMATURE_CLOSE = require('../../../errors').codes.ERR_STREAM_PREMATURE_CLOSE;\nfunction once(callback) {\n let called = false;\n return function () {\n if (called) return;\n called = true;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n callback.apply(this, args);\n };\n}\nfunction noop() {}\nfunction isRequest(stream) {\n return stream.setHeader && typeof stream.abort === 'function';\n}\nfunction eos(stream, opts, callback) {\n if (typeof opts === 'function') return eos(stream, null, opts);\n if (!opts) opts = {};\n callback = once(callback || noop);\n let readable = opts.readable || opts.readable !== false && stream.readable;\n let writable = opts.writable || opts.writable !== false && stream.writable;\n const onlegacyfinish = () => {\n if (!stream.writable) onfinish();\n };\n var writableEnded = stream._writableState && stream._writableState.finished;\n const onfinish = () => {\n writable = false;\n writableEnded = true;\n if (!readable) callback.call(stream);\n };\n var readableEnded = stream._readableState && stream._readableState.endEmitted;\n const onend = () => {\n readable = false;\n readableEnded = true;\n if (!writable) callback.call(stream);\n };\n const onerror = err => {\n callback.call(stream, err);\n };\n const onclose = () => {\n let err;\n if (readable && !readableEnded) {\n if (!stream._readableState || !stream._readableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE();\n return callback.call(stream, err);\n }\n if (writable && !writableEnded) {\n if (!stream._writableState || !stream._writableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE();\n return callback.call(stream, err);\n }\n };\n const onrequest = () => {\n stream.req.on('finish', onfinish);\n };\n if (isRequest(stream)) {\n stream.on('complete', onfinish);\n stream.on('abort', onclose);\n if (stream.req) onrequest();else stream.on('request', onrequest);\n } else if (writable && !stream._writableState) {\n // legacy streams\n stream.on('end', onlegacyfinish);\n stream.on('close', onlegacyfinish);\n }\n stream.on('end', onend);\n stream.on('finish', onfinish);\n if (opts.error !== false) stream.on('error', onerror);\n stream.on('close', onclose);\n return function () {\n stream.removeListener('complete', onfinish);\n stream.removeListener('abort', onclose);\n stream.removeListener('request', onrequest);\n if (stream.req) stream.req.removeListener('finish', onfinish);\n stream.removeListener('end', onlegacyfinish);\n stream.removeListener('close', onlegacyfinish);\n stream.removeListener('finish', onfinish);\n stream.removeListener('end', onend);\n stream.removeListener('error', onerror);\n stream.removeListener('close', onclose);\n };\n}\nmodule.exports = eos;", "'use strict';\n\nconst finished = require('./end-of-stream');\nconst kLastResolve = Symbol('lastResolve');\nconst kLastReject = Symbol('lastReject');\nconst kError = Symbol('error');\nconst kEnded = Symbol('ended');\nconst kLastPromise = Symbol('lastPromise');\nconst kHandlePromise = Symbol('handlePromise');\nconst kStream = Symbol('stream');\nfunction createIterResult(value, done) {\n return {\n value,\n done\n };\n}\nfunction readAndResolve(iter) {\n const resolve = iter[kLastResolve];\n if (resolve !== null) {\n const data = iter[kStream].read();\n // we defer if data is null\n // we can be expecting either 'end' or\n // 'error'\n if (data !== null) {\n iter[kLastPromise] = null;\n iter[kLastResolve] = null;\n iter[kLastReject] = null;\n resolve(createIterResult(data, false));\n }\n }\n}\nfunction onReadable(iter) {\n // we wait for the next tick, because it might\n // emit an error with process.nextTick\n process.nextTick(readAndResolve, iter);\n}\nfunction wrapForNext(lastPromise, iter) {\n return (resolve, reject) => {\n lastPromise.then(() => {\n if (iter[kEnded]) {\n resolve(createIterResult(undefined, true));\n return;\n }\n iter[kHandlePromise](resolve, reject);\n }, reject);\n };\n}\nconst AsyncIteratorPrototype = Object.getPrototypeOf(function () {});\nconst ReadableStreamAsyncIteratorPrototype = Object.setPrototypeOf({\n get stream() {\n return this[kStream];\n },\n next() {\n // if we have detected an error in the meanwhile\n // reject straight away\n const error = this[kError];\n if (error !== null) {\n return Promise.reject(error);\n }\n if (this[kEnded]) {\n return Promise.resolve(createIterResult(undefined, true));\n }\n if (this[kStream].destroyed) {\n // We need to defer via nextTick because if .destroy(err) is\n // called, the error will be emitted via nextTick, and\n // we cannot guarantee that there is no error lingering around\n // waiting to be emitted.\n return new Promise((resolve, reject) => {\n process.nextTick(() => {\n if (this[kError]) {\n reject(this[kError]);\n } else {\n resolve(createIterResult(undefined, true));\n }\n });\n });\n }\n\n // if we have multiple next() calls\n // we will wait for the previous Promise to finish\n // this logic is optimized to support for await loops,\n // where next() is only called once at a time\n const lastPromise = this[kLastPromise];\n let promise;\n if (lastPromise) {\n promise = new Promise(wrapForNext(lastPromise, this));\n } else {\n // fast path needed to support multiple this.push()\n // without triggering the next() queue\n const data = this[kStream].read();\n if (data !== null) {\n return Promise.resolve(createIterResult(data, false));\n }\n promise = new Promise(this[kHandlePromise]);\n }\n this[kLastPromise] = promise;\n return promise;\n },\n [Symbol.asyncIterator]() {\n return this;\n },\n return() {\n // destroy(err, cb) is a private API\n // we can guarantee we have that here, because we control the\n // Readable class this is attached to\n return new Promise((resolve, reject) => {\n this[kStream].destroy(null, err => {\n if (err) {\n reject(err);\n return;\n }\n resolve(createIterResult(undefined, true));\n });\n });\n }\n}, AsyncIteratorPrototype);\nconst createReadableStreamAsyncIterator = stream => {\n const iterator = Object.create(ReadableStreamAsyncIteratorPrototype, {\n [kStream]: {\n value: stream,\n writable: true\n },\n [kLastResolve]: {\n value: null,\n writable: true\n },\n [kLastReject]: {\n value: null,\n writable: true\n },\n [kError]: {\n value: null,\n writable: true\n },\n [kEnded]: {\n value: stream._readableState.endEmitted,\n writable: true\n },\n // the function passed to new Promise\n // is cached so we avoid allocating a new\n // closure at every run\n [kHandlePromise]: {\n value: (resolve, reject) => {\n const data = iterator[kStream].read();\n if (data) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n resolve(createIterResult(data, false));\n } else {\n iterator[kLastResolve] = resolve;\n iterator[kLastReject] = reject;\n }\n },\n writable: true\n }\n });\n iterator[kLastPromise] = null;\n finished(stream, err => {\n if (err && err.code !== 'ERR_STREAM_PREMATURE_CLOSE') {\n const reject = iterator[kLastReject];\n // reject if we are waiting for data in the Promise\n // returned by next() and store the error\n if (reject !== null) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n reject(err);\n }\n iterator[kError] = err;\n return;\n }\n const resolve = iterator[kLastResolve];\n if (resolve !== null) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n resolve(createIterResult(undefined, true));\n }\n iterator[kEnded] = true;\n });\n stream.on('readable', onReadable.bind(null, iterator));\n return iterator;\n};\nmodule.exports = createReadableStreamAsyncIterator;", "'use strict';\n\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }\nfunction _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err); } _next(undefined); }); }; }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return typeof key === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (typeof input !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (typeof res !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nconst ERR_INVALID_ARG_TYPE = require('../../../errors').codes.ERR_INVALID_ARG_TYPE;\nfunction from(Readable, iterable, opts) {\n let iterator;\n if (iterable && typeof iterable.next === 'function') {\n iterator = iterable;\n } else if (iterable && iterable[Symbol.asyncIterator]) iterator = iterable[Symbol.asyncIterator]();else if (iterable && iterable[Symbol.iterator]) iterator = iterable[Symbol.iterator]();else throw new ERR_INVALID_ARG_TYPE('iterable', ['Iterable'], iterable);\n const readable = new Readable(_objectSpread({\n objectMode: true\n }, opts));\n // Reading boolean to protect against _read\n // being called before last iteration completion.\n let reading = false;\n readable._read = function () {\n if (!reading) {\n reading = true;\n next();\n }\n };\n function next() {\n return _next2.apply(this, arguments);\n }\n function _next2() {\n _next2 = _asyncToGenerator(function* () {\n try {\n const _yield$iterator$next = yield iterator.next(),\n value = _yield$iterator$next.value,\n done = _yield$iterator$next.done;\n if (done) {\n readable.push(null);\n } else if (readable.push(yield value)) {\n next();\n } else {\n reading = false;\n }\n } catch (err) {\n readable.destroy(err);\n }\n });\n return _next2.apply(this, arguments);\n }\n return readable;\n}\nmodule.exports = from;", "// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nmodule.exports = Readable;\n\n/**/\nvar Duplex;\n/**/\n\nReadable.ReadableState = ReadableState;\n\n/**/\nconst EE = require('events').EventEmitter;\nvar EElistenerCount = function EElistenerCount(emitter, type) {\n return emitter.listeners(type).length;\n};\n/**/\n\n/**/\nvar Stream = require('./internal/streams/stream');\n/**/\n\nconst Buffer = require('buffer').Buffer;\nconst OurUint8Array = (typeof global !== 'undefined' ? global : typeof window !== 'undefined' ? window : typeof self !== 'undefined' ? self : {}).Uint8Array || function () {};\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n\n/**/\nconst debugUtil = require('util');\nlet debug;\nif (debugUtil && debugUtil.debuglog) {\n debug = debugUtil.debuglog('stream');\n} else {\n debug = function debug() {};\n}\n/**/\n\nconst BufferList = require('./internal/streams/buffer_list');\nconst destroyImpl = require('./internal/streams/destroy');\nconst _require = require('./internal/streams/state'),\n getHighWaterMark = _require.getHighWaterMark;\nconst _require$codes = require('../errors').codes,\n ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE,\n ERR_STREAM_PUSH_AFTER_EOF = _require$codes.ERR_STREAM_PUSH_AFTER_EOF,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_STREAM_UNSHIFT_AFTER_END_EVENT = _require$codes.ERR_STREAM_UNSHIFT_AFTER_END_EVENT;\n\n// Lazy loaded to improve the startup performance.\nlet StringDecoder;\nlet createReadableStreamAsyncIterator;\nlet from;\nrequire('inherits')(Readable, Stream);\nconst errorOrDestroy = destroyImpl.errorOrDestroy;\nconst kProxyEvents = ['error', 'close', 'destroy', 'pause', 'resume'];\nfunction prependListener(emitter, event, fn) {\n // Sadly this is not cacheable as some libraries bundle their own\n // event emitter implementation with them.\n if (typeof emitter.prependListener === 'function') return emitter.prependListener(event, fn);\n\n // This is a hack to make sure that our error handler is attached before any\n // userland ones. NEVER DO THIS. This is here only because this code needs\n // to continue to work with older versions of Node.js that do not include\n // the prependListener() method. The goal is to eventually remove this hack.\n if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (Array.isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]];\n}\nfunction ReadableState(options, stream, isDuplex) {\n Duplex = Duplex || require('./_stream_duplex');\n options = options || {};\n\n // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream.\n // These options can be provided separately as readableXXX and writableXXX.\n if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex;\n\n // object stream flag. Used to make read(n) ignore n and to\n // make all the buffer merging and length checks go away\n this.objectMode = !!options.objectMode;\n if (isDuplex) this.objectMode = this.objectMode || !!options.readableObjectMode;\n\n // the point at which it stops calling _read() to fill the buffer\n // Note: 0 is a valid value, means \"don't call _read preemptively ever\"\n this.highWaterMark = getHighWaterMark(this, options, 'readableHighWaterMark', isDuplex);\n\n // A linked list is used to store data chunks instead of an array because the\n // linked list can remove elements from the beginning faster than\n // array.shift()\n this.buffer = new BufferList();\n this.length = 0;\n this.pipes = null;\n this.pipesCount = 0;\n this.flowing = null;\n this.ended = false;\n this.endEmitted = false;\n this.reading = false;\n\n // a flag to be able to tell if the event 'readable'/'data' is emitted\n // immediately, or on a later tick. We set this to true at first, because\n // any actions that shouldn't happen until \"later\" should generally also\n // not happen before the first read call.\n this.sync = true;\n\n // whenever we return null, then we set a flag to say\n // that we're awaiting a 'readable' event emission.\n this.needReadable = false;\n this.emittedReadable = false;\n this.readableListening = false;\n this.resumeScheduled = false;\n this.paused = true;\n\n // Should close be emitted on destroy. Defaults to true.\n this.emitClose = options.emitClose !== false;\n\n // Should .destroy() be called after 'end' (and potentially 'finish')\n this.autoDestroy = !!options.autoDestroy;\n\n // has it been destroyed\n this.destroyed = false;\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n // the number of writers that are awaiting a drain event in .pipe()s\n this.awaitDrain = 0;\n\n // if true, a maybeReadMore has been scheduled\n this.readingMore = false;\n this.decoder = null;\n this.encoding = null;\n if (options.encoding) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n this.decoder = new StringDecoder(options.encoding);\n this.encoding = options.encoding;\n }\n}\nfunction Readable(options) {\n Duplex = Duplex || require('./_stream_duplex');\n if (!(this instanceof Readable)) return new Readable(options);\n\n // Checking for a Stream.Duplex instance is faster here instead of inside\n // the ReadableState constructor, at least with V8 6.5\n const isDuplex = this instanceof Duplex;\n this._readableState = new ReadableState(options, this, isDuplex);\n\n // legacy\n this.readable = true;\n if (options) {\n if (typeof options.read === 'function') this._read = options.read;\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n }\n Stream.call(this);\n}\nObject.defineProperty(Readable.prototype, 'destroyed', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get() {\n if (this._readableState === undefined) {\n return false;\n }\n return this._readableState.destroyed;\n },\n set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._readableState) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._readableState.destroyed = value;\n }\n});\nReadable.prototype.destroy = destroyImpl.destroy;\nReadable.prototype._undestroy = destroyImpl.undestroy;\nReadable.prototype._destroy = function (err, cb) {\n cb(err);\n};\n\n// Manually shove something into the read() buffer.\n// This returns true if the highWaterMark has not been hit yet,\n// similar to how Writable.write() returns true if you should\n// write() some more.\nReadable.prototype.push = function (chunk, encoding) {\n var state = this._readableState;\n var skipChunkCheck;\n if (!state.objectMode) {\n if (typeof chunk === 'string') {\n encoding = encoding || state.defaultEncoding;\n if (encoding !== state.encoding) {\n chunk = Buffer.from(chunk, encoding);\n encoding = '';\n }\n skipChunkCheck = true;\n }\n } else {\n skipChunkCheck = true;\n }\n return readableAddChunk(this, chunk, encoding, false, skipChunkCheck);\n};\n\n// Unshift should *always* be something directly out of read()\nReadable.prototype.unshift = function (chunk) {\n return readableAddChunk(this, chunk, null, true, false);\n};\nfunction readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) {\n debug('readableAddChunk', chunk);\n var state = stream._readableState;\n if (chunk === null) {\n state.reading = false;\n onEofChunk(stream, state);\n } else {\n var er;\n if (!skipChunkCheck) er = chunkInvalid(state, chunk);\n if (er) {\n errorOrDestroy(stream, er);\n } else if (state.objectMode || chunk && chunk.length > 0) {\n if (typeof chunk !== 'string' && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer.prototype) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n if (addToFront) {\n if (state.endEmitted) errorOrDestroy(stream, new ERR_STREAM_UNSHIFT_AFTER_END_EVENT());else addChunk(stream, state, chunk, true);\n } else if (state.ended) {\n errorOrDestroy(stream, new ERR_STREAM_PUSH_AFTER_EOF());\n } else if (state.destroyed) {\n return false;\n } else {\n state.reading = false;\n if (state.decoder && !encoding) {\n chunk = state.decoder.write(chunk);\n if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false);else maybeReadMore(stream, state);\n } else {\n addChunk(stream, state, chunk, false);\n }\n }\n } else if (!addToFront) {\n state.reading = false;\n maybeReadMore(stream, state);\n }\n }\n\n // We can push more data if we are below the highWaterMark.\n // Also, if we have no data yet, we can stand some more bytes.\n // This is to work around cases where hwm=0, such as the repl.\n return !state.ended && (state.length < state.highWaterMark || state.length === 0);\n}\nfunction addChunk(stream, state, chunk, addToFront) {\n if (state.flowing && state.length === 0 && !state.sync) {\n state.awaitDrain = 0;\n stream.emit('data', chunk);\n } else {\n // update the buffer info.\n state.length += state.objectMode ? 1 : chunk.length;\n if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk);\n if (state.needReadable) emitReadable(stream);\n }\n maybeReadMore(stream, state);\n}\nfunction chunkInvalid(state, chunk) {\n var er;\n if (!_isUint8Array(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n er = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer', 'Uint8Array'], chunk);\n }\n return er;\n}\nReadable.prototype.isPaused = function () {\n return this._readableState.flowing === false;\n};\n\n// backwards compatibility.\nReadable.prototype.setEncoding = function (enc) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n const decoder = new StringDecoder(enc);\n this._readableState.decoder = decoder;\n // If setEncoding(null), decoder.encoding equals utf8\n this._readableState.encoding = this._readableState.decoder.encoding;\n\n // Iterate over current buffer to convert already stored Buffers:\n let p = this._readableState.buffer.head;\n let content = '';\n while (p !== null) {\n content += decoder.write(p.data);\n p = p.next;\n }\n this._readableState.buffer.clear();\n if (content !== '') this._readableState.buffer.push(content);\n this._readableState.length = content.length;\n return this;\n};\n\n// Don't raise the hwm > 1GB\nconst MAX_HWM = 0x40000000;\nfunction computeNewHighWaterMark(n) {\n if (n >= MAX_HWM) {\n // TODO(ronag): Throw ERR_VALUE_OUT_OF_RANGE.\n n = MAX_HWM;\n } else {\n // Get the next highest power of 2 to prevent increasing hwm excessively in\n // tiny amounts\n n--;\n n |= n >>> 1;\n n |= n >>> 2;\n n |= n >>> 4;\n n |= n >>> 8;\n n |= n >>> 16;\n n++;\n }\n return n;\n}\n\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction howMuchToRead(n, state) {\n if (n <= 0 || state.length === 0 && state.ended) return 0;\n if (state.objectMode) return 1;\n if (n !== n) {\n // Only flow one buffer at a time\n if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length;\n }\n // If we're asking for more than the current hwm, then raise the hwm.\n if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);\n if (n <= state.length) return n;\n // Don't have enough\n if (!state.ended) {\n state.needReadable = true;\n return 0;\n }\n return state.length;\n}\n\n// you can override either this method, or the async _read(n) below.\nReadable.prototype.read = function (n) {\n debug('read', n);\n n = parseInt(n, 10);\n var state = this._readableState;\n var nOrig = n;\n if (n !== 0) state.emittedReadable = false;\n\n // if we're doing read(0) to trigger a readable event, but we\n // already have a bunch of data in the buffer, then just trigger\n // the 'readable' event and move on.\n if (n === 0 && state.needReadable && ((state.highWaterMark !== 0 ? state.length >= state.highWaterMark : state.length > 0) || state.ended)) {\n debug('read: emitReadable', state.length, state.ended);\n if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this);\n return null;\n }\n n = howMuchToRead(n, state);\n\n // if we've ended, and we're now clear, then finish it up.\n if (n === 0 && state.ended) {\n if (state.length === 0) endReadable(this);\n return null;\n }\n\n // All the actual chunk generation logic needs to be\n // *below* the call to _read. The reason is that in certain\n // synthetic stream cases, such as passthrough streams, _read\n // may be a completely synchronous operation which may change\n // the state of the read buffer, providing enough data when\n // before there was *not* enough.\n //\n // So, the steps are:\n // 1. Figure out what the state of things will be after we do\n // a read from the buffer.\n //\n // 2. If that resulting state will trigger a _read, then call _read.\n // Note that this may be asynchronous, or synchronous. Yes, it is\n // deeply ugly to write APIs this way, but that still doesn't mean\n // that the Readable class should behave improperly, as streams are\n // designed to be sync/async agnostic.\n // Take note if the _read call is sync or async (ie, if the read call\n // has returned yet), so that we know whether or not it's safe to emit\n // 'readable' etc.\n //\n // 3. Actually pull the requested chunks out of the buffer and return.\n\n // if we need a readable event, then we need to do some reading.\n var doRead = state.needReadable;\n debug('need readable', doRead);\n\n // if we currently have less than the highWaterMark, then also read some\n if (state.length === 0 || state.length - n < state.highWaterMark) {\n doRead = true;\n debug('length less than watermark', doRead);\n }\n\n // however, if we've ended, then there's no point, and if we're already\n // reading, then it's unnecessary.\n if (state.ended || state.reading) {\n doRead = false;\n debug('reading or ended', doRead);\n } else if (doRead) {\n debug('do read');\n state.reading = true;\n state.sync = true;\n // if the length is currently zero, then we *need* a readable event.\n if (state.length === 0) state.needReadable = true;\n // call internal read method\n this._read(state.highWaterMark);\n state.sync = false;\n // If _read pushed data synchronously, then `reading` will be false,\n // and we need to re-evaluate how much data we can return to the user.\n if (!state.reading) n = howMuchToRead(nOrig, state);\n }\n var ret;\n if (n > 0) ret = fromList(n, state);else ret = null;\n if (ret === null) {\n state.needReadable = state.length <= state.highWaterMark;\n n = 0;\n } else {\n state.length -= n;\n state.awaitDrain = 0;\n }\n if (state.length === 0) {\n // If we have nothing in the buffer, then we want to know\n // as soon as we *do* get something into the buffer.\n if (!state.ended) state.needReadable = true;\n\n // If we tried to read() past the EOF, then emit end on the next tick.\n if (nOrig !== n && state.ended) endReadable(this);\n }\n if (ret !== null) this.emit('data', ret);\n return ret;\n};\nfunction onEofChunk(stream, state) {\n debug('onEofChunk');\n if (state.ended) return;\n if (state.decoder) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) {\n state.buffer.push(chunk);\n state.length += state.objectMode ? 1 : chunk.length;\n }\n }\n state.ended = true;\n if (state.sync) {\n // if we are sync, wait until next tick to emit the data.\n // Otherwise we risk emitting data in the flow()\n // the readable code triggers during a read() call\n emitReadable(stream);\n } else {\n // emit 'readable' now to make sure it gets picked up.\n state.needReadable = false;\n if (!state.emittedReadable) {\n state.emittedReadable = true;\n emitReadable_(stream);\n }\n }\n}\n\n// Don't emit readable right away in sync mode, because this can trigger\n// another read() call => stack overflow. This way, it might trigger\n// a nextTick recursion warning, but that's not so bad.\nfunction emitReadable(stream) {\n var state = stream._readableState;\n debug('emitReadable', state.needReadable, state.emittedReadable);\n state.needReadable = false;\n if (!state.emittedReadable) {\n debug('emitReadable', state.flowing);\n state.emittedReadable = true;\n process.nextTick(emitReadable_, stream);\n }\n}\nfunction emitReadable_(stream) {\n var state = stream._readableState;\n debug('emitReadable_', state.destroyed, state.length, state.ended);\n if (!state.destroyed && (state.length || state.ended)) {\n stream.emit('readable');\n state.emittedReadable = false;\n }\n\n // The stream needs another readable event if\n // 1. It is not flowing, as the flow mechanism will take\n // care of it.\n // 2. It is not ended.\n // 3. It is below the highWaterMark, so we can schedule\n // another readable later.\n state.needReadable = !state.flowing && !state.ended && state.length <= state.highWaterMark;\n flow(stream);\n}\n\n// at this point, the user has presumably seen the 'readable' event,\n// and called read() to consume some data. that may have triggered\n// in turn another _read(n) call, in which case reading = true if\n// it's in progress.\n// However, if we're not ended, or reading, and the length < hwm,\n// then go ahead and try to read some more preemptively.\nfunction maybeReadMore(stream, state) {\n if (!state.readingMore) {\n state.readingMore = true;\n process.nextTick(maybeReadMore_, stream, state);\n }\n}\nfunction maybeReadMore_(stream, state) {\n // Attempt to read more data if we should.\n //\n // The conditions for reading more data are (one of):\n // - Not enough data buffered (state.length < state.highWaterMark). The loop\n // is responsible for filling the buffer with enough data if such data\n // is available. If highWaterMark is 0 and we are not in the flowing mode\n // we should _not_ attempt to buffer any extra data. We'll get more data\n // when the stream consumer calls read() instead.\n // - No data in the buffer, and the stream is in flowing mode. In this mode\n // the loop below is responsible for ensuring read() is called. Failing to\n // call read here would abort the flow and there's no other mechanism for\n // continuing the flow if the stream consumer has just subscribed to the\n // 'data' event.\n //\n // In addition to the above conditions to keep reading data, the following\n // conditions prevent the data from being read:\n // - The stream has ended (state.ended).\n // - There is already a pending 'read' operation (state.reading). This is a\n // case where the the stream has called the implementation defined _read()\n // method, but they are processing the call asynchronously and have _not_\n // called push() with new data. In this case we skip performing more\n // read()s. The execution ends in this method again after the _read() ends\n // up calling push() with more data.\n while (!state.reading && !state.ended && (state.length < state.highWaterMark || state.flowing && state.length === 0)) {\n const len = state.length;\n debug('maybeReadMore read 0');\n stream.read(0);\n if (len === state.length)\n // didn't get any data, stop spinning.\n break;\n }\n state.readingMore = false;\n}\n\n// abstract method. to be overridden in specific implementation classes.\n// call cb(er, data) where data is <= n in length.\n// for virtual (non-string, non-buffer) streams, \"length\" is somewhat\n// arbitrary, and perhaps not very meaningful.\nReadable.prototype._read = function (n) {\n errorOrDestroy(this, new ERR_METHOD_NOT_IMPLEMENTED('_read()'));\n};\nReadable.prototype.pipe = function (dest, pipeOpts) {\n var src = this;\n var state = this._readableState;\n switch (state.pipesCount) {\n case 0:\n state.pipes = dest;\n break;\n case 1:\n state.pipes = [state.pipes, dest];\n break;\n default:\n state.pipes.push(dest);\n break;\n }\n state.pipesCount += 1;\n debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);\n var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;\n var endFn = doEnd ? onend : unpipe;\n if (state.endEmitted) process.nextTick(endFn);else src.once('end', endFn);\n dest.on('unpipe', onunpipe);\n function onunpipe(readable, unpipeInfo) {\n debug('onunpipe');\n if (readable === src) {\n if (unpipeInfo && unpipeInfo.hasUnpiped === false) {\n unpipeInfo.hasUnpiped = true;\n cleanup();\n }\n }\n }\n function onend() {\n debug('onend');\n dest.end();\n }\n\n // when the dest drains, it reduces the awaitDrain counter\n // on the source. This would be more elegant with a .once()\n // handler in flow(), but adding and removing repeatedly is\n // too slow.\n var ondrain = pipeOnDrain(src);\n dest.on('drain', ondrain);\n var cleanedUp = false;\n function cleanup() {\n debug('cleanup');\n // cleanup event handlers once the pipe is broken\n dest.removeListener('close', onclose);\n dest.removeListener('finish', onfinish);\n dest.removeListener('drain', ondrain);\n dest.removeListener('error', onerror);\n dest.removeListener('unpipe', onunpipe);\n src.removeListener('end', onend);\n src.removeListener('end', unpipe);\n src.removeListener('data', ondata);\n cleanedUp = true;\n\n // if the reader is waiting for a drain event from this\n // specific writer, then it would cause it to never start\n // flowing again.\n // So, if this is awaiting a drain, then we just call it now.\n // If we don't know, then assume that we are waiting for one.\n if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();\n }\n src.on('data', ondata);\n function ondata(chunk) {\n debug('ondata');\n var ret = dest.write(chunk);\n debug('dest.write', ret);\n if (ret === false) {\n // If the user unpiped during `dest.write()`, it is possible\n // to get stuck in a permanently paused state if that write\n // also returned false.\n // => Check whether `dest` is still a piping destination.\n if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) {\n debug('false write response, pause', state.awaitDrain);\n state.awaitDrain++;\n }\n src.pause();\n }\n }\n\n // if the dest has an error, then stop piping into it.\n // however, don't suppress the throwing behavior for this.\n function onerror(er) {\n debug('onerror', er);\n unpipe();\n dest.removeListener('error', onerror);\n if (EElistenerCount(dest, 'error') === 0) errorOrDestroy(dest, er);\n }\n\n // Make sure our error handler is attached before userland ones.\n prependListener(dest, 'error', onerror);\n\n // Both close and finish should trigger unpipe, but only once.\n function onclose() {\n dest.removeListener('finish', onfinish);\n unpipe();\n }\n dest.once('close', onclose);\n function onfinish() {\n debug('onfinish');\n dest.removeListener('close', onclose);\n unpipe();\n }\n dest.once('finish', onfinish);\n function unpipe() {\n debug('unpipe');\n src.unpipe(dest);\n }\n\n // tell the dest that it's being piped to\n dest.emit('pipe', src);\n\n // start the flow if it hasn't been started already.\n if (!state.flowing) {\n debug('pipe resume');\n src.resume();\n }\n return dest;\n};\nfunction pipeOnDrain(src) {\n return function pipeOnDrainFunctionResult() {\n var state = src._readableState;\n debug('pipeOnDrain', state.awaitDrain);\n if (state.awaitDrain) state.awaitDrain--;\n if (state.awaitDrain === 0 && EElistenerCount(src, 'data')) {\n state.flowing = true;\n flow(src);\n }\n };\n}\nReadable.prototype.unpipe = function (dest) {\n var state = this._readableState;\n var unpipeInfo = {\n hasUnpiped: false\n };\n\n // if we're not piping anywhere, then do nothing.\n if (state.pipesCount === 0) return this;\n\n // just one destination. most common case.\n if (state.pipesCount === 1) {\n // passed in one, but it's not the right one.\n if (dest && dest !== state.pipes) return this;\n if (!dest) dest = state.pipes;\n\n // got a match.\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n if (dest) dest.emit('unpipe', this, unpipeInfo);\n return this;\n }\n\n // slow case. multiple pipe destinations.\n\n if (!dest) {\n // remove all.\n var dests = state.pipes;\n var len = state.pipesCount;\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n for (var i = 0; i < len; i++) dests[i].emit('unpipe', this, {\n hasUnpiped: false\n });\n return this;\n }\n\n // try to find the right one.\n var index = indexOf(state.pipes, dest);\n if (index === -1) return this;\n state.pipes.splice(index, 1);\n state.pipesCount -= 1;\n if (state.pipesCount === 1) state.pipes = state.pipes[0];\n dest.emit('unpipe', this, unpipeInfo);\n return this;\n};\n\n// set up data events if they are asked for\n// Ensure readable listeners eventually get something\nReadable.prototype.on = function (ev, fn) {\n const res = Stream.prototype.on.call(this, ev, fn);\n const state = this._readableState;\n if (ev === 'data') {\n // update readableListening so that resume() may be a no-op\n // a few lines down. This is needed to support once('readable').\n state.readableListening = this.listenerCount('readable') > 0;\n\n // Try start flowing on next tick if stream isn't explicitly paused\n if (state.flowing !== false) this.resume();\n } else if (ev === 'readable') {\n if (!state.endEmitted && !state.readableListening) {\n state.readableListening = state.needReadable = true;\n state.flowing = false;\n state.emittedReadable = false;\n debug('on readable', state.length, state.reading);\n if (state.length) {\n emitReadable(this);\n } else if (!state.reading) {\n process.nextTick(nReadingNextTick, this);\n }\n }\n }\n return res;\n};\nReadable.prototype.addListener = Readable.prototype.on;\nReadable.prototype.removeListener = function (ev, fn) {\n const res = Stream.prototype.removeListener.call(this, ev, fn);\n if (ev === 'readable') {\n // We need to check if there is someone still listening to\n // readable and reset the state. However this needs to happen\n // after readable has been emitted but before I/O (nextTick) to\n // support once('readable', fn) cycles. This means that calling\n // resume within the same tick will have no\n // effect.\n process.nextTick(updateReadableListening, this);\n }\n return res;\n};\nReadable.prototype.removeAllListeners = function (ev) {\n const res = Stream.prototype.removeAllListeners.apply(this, arguments);\n if (ev === 'readable' || ev === undefined) {\n // We need to check if there is someone still listening to\n // readable and reset the state. However this needs to happen\n // after readable has been emitted but before I/O (nextTick) to\n // support once('readable', fn) cycles. This means that calling\n // resume within the same tick will have no\n // effect.\n process.nextTick(updateReadableListening, this);\n }\n return res;\n};\nfunction updateReadableListening(self) {\n const state = self._readableState;\n state.readableListening = self.listenerCount('readable') > 0;\n if (state.resumeScheduled && !state.paused) {\n // flowing needs to be set to true now, otherwise\n // the upcoming resume will not flow.\n state.flowing = true;\n\n // crude way to check if we should resume\n } else if (self.listenerCount('data') > 0) {\n self.resume();\n }\n}\nfunction nReadingNextTick(self) {\n debug('readable nexttick read 0');\n self.read(0);\n}\n\n// pause() and resume() are remnants of the legacy readable stream API\n// If the user uses them, then switch into old mode.\nReadable.prototype.resume = function () {\n var state = this._readableState;\n if (!state.flowing) {\n debug('resume');\n // we flow only if there is no one listening\n // for readable, but we still have to call\n // resume()\n state.flowing = !state.readableListening;\n resume(this, state);\n }\n state.paused = false;\n return this;\n};\nfunction resume(stream, state) {\n if (!state.resumeScheduled) {\n state.resumeScheduled = true;\n process.nextTick(resume_, stream, state);\n }\n}\nfunction resume_(stream, state) {\n debug('resume', state.reading);\n if (!state.reading) {\n stream.read(0);\n }\n state.resumeScheduled = false;\n stream.emit('resume');\n flow(stream);\n if (state.flowing && !state.reading) stream.read(0);\n}\nReadable.prototype.pause = function () {\n debug('call pause flowing=%j', this._readableState.flowing);\n if (this._readableState.flowing !== false) {\n debug('pause');\n this._readableState.flowing = false;\n this.emit('pause');\n }\n this._readableState.paused = true;\n return this;\n};\nfunction flow(stream) {\n const state = stream._readableState;\n debug('flow', state.flowing);\n while (state.flowing && stream.read() !== null);\n}\n\n// wrap an old-style stream as the async data source.\n// This is *not* part of the readable stream interface.\n// It is an ugly unfortunate mess of history.\nReadable.prototype.wrap = function (stream) {\n var state = this._readableState;\n var paused = false;\n stream.on('end', () => {\n debug('wrapped end');\n if (state.decoder && !state.ended) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) this.push(chunk);\n }\n this.push(null);\n });\n stream.on('data', chunk => {\n debug('wrapped data');\n if (state.decoder) chunk = state.decoder.write(chunk);\n\n // don't skip over falsy values in objectMode\n if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return;\n var ret = this.push(chunk);\n if (!ret) {\n paused = true;\n stream.pause();\n }\n });\n\n // proxy all the other methods.\n // important when wrapping filters and duplexes.\n for (var i in stream) {\n if (this[i] === undefined && typeof stream[i] === 'function') {\n this[i] = function methodWrap(method) {\n return function methodWrapReturnFunction() {\n return stream[method].apply(stream, arguments);\n };\n }(i);\n }\n }\n\n // proxy certain important events.\n for (var n = 0; n < kProxyEvents.length; n++) {\n stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n]));\n }\n\n // when we try to consume some more bytes, simply unpause the\n // underlying stream.\n this._read = n => {\n debug('wrapped _read', n);\n if (paused) {\n paused = false;\n stream.resume();\n }\n };\n return this;\n};\nif (typeof Symbol === 'function') {\n Readable.prototype[Symbol.asyncIterator] = function () {\n if (createReadableStreamAsyncIterator === undefined) {\n createReadableStreamAsyncIterator = require('./internal/streams/async_iterator');\n }\n return createReadableStreamAsyncIterator(this);\n };\n}\nObject.defineProperty(Readable.prototype, 'readableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.highWaterMark;\n }\n});\nObject.defineProperty(Readable.prototype, 'readableBuffer', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState && this._readableState.buffer;\n }\n});\nObject.defineProperty(Readable.prototype, 'readableFlowing', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.flowing;\n },\n set: function set(state) {\n if (this._readableState) {\n this._readableState.flowing = state;\n }\n }\n});\n\n// exposed for testing purposes only.\nReadable._fromList = fromList;\nObject.defineProperty(Readable.prototype, 'readableLength', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get() {\n return this._readableState.length;\n }\n});\n\n// Pluck off n bytes from an array of buffers.\n// Length is the combined lengths of all the buffers in the list.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction fromList(n, state) {\n // nothing buffered\n if (state.length === 0) return null;\n var ret;\n if (state.objectMode) ret = state.buffer.shift();else if (!n || n >= state.length) {\n // read it all, truncate the list\n if (state.decoder) ret = state.buffer.join('');else if (state.buffer.length === 1) ret = state.buffer.first();else ret = state.buffer.concat(state.length);\n state.buffer.clear();\n } else {\n // read part of list\n ret = state.buffer.consume(n, state.decoder);\n }\n return ret;\n}\nfunction endReadable(stream) {\n var state = stream._readableState;\n debug('endReadable', state.endEmitted);\n if (!state.endEmitted) {\n state.ended = true;\n process.nextTick(endReadableNT, state, stream);\n }\n}\nfunction endReadableNT(state, stream) {\n debug('endReadableNT', state.endEmitted, state.length);\n\n // Check that we didn't get one last unshift.\n if (!state.endEmitted && state.length === 0) {\n state.endEmitted = true;\n stream.readable = false;\n stream.emit('end');\n if (state.autoDestroy) {\n // In case of duplex streams we need a way to detect\n // if the writable side is ready for autoDestroy as well\n const wState = stream._writableState;\n if (!wState || wState.autoDestroy && wState.finished) {\n stream.destroy();\n }\n }\n }\n}\nif (typeof Symbol === 'function') {\n Readable.from = function (iterable, opts) {\n if (from === undefined) {\n from = require('./internal/streams/from');\n }\n return from(Readable, iterable, opts);\n };\n}\nfunction indexOf(xs, x) {\n for (var i = 0, l = xs.length; i < l; i++) {\n if (xs[i] === x) return i;\n }\n return -1;\n}", "// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a transform stream is a readable/writable stream where you do\n// something with the data. Sometimes it's called a \"filter\",\n// but that's not a great name for it, since that implies a thing where\n// some bits pass through, and others are simply ignored. (That would\n// be a valid example of a transform, of course.)\n//\n// While the output is causally related to the input, it's not a\n// necessarily symmetric or synchronous transformation. For example,\n// a zlib stream might take multiple plain-text writes(), and then\n// emit a single compressed chunk some time in the future.\n//\n// Here's how this works:\n//\n// The Transform stream has all the aspects of the readable and writable\n// stream classes. When you write(chunk), that calls _write(chunk,cb)\n// internally, and returns false if there's a lot of pending writes\n// buffered up. When you call read(), that calls _read(n) until\n// there's enough pending readable data buffered up.\n//\n// In a transform stream, the written data is placed in a buffer. When\n// _read(n) is called, it transforms the queued up data, calling the\n// buffered _write cb's as it consumes chunks. If consuming a single\n// written chunk would result in multiple output chunks, then the first\n// outputted bit calls the readcb, and subsequent chunks just go into\n// the read buffer, and will cause it to emit 'readable' if necessary.\n//\n// This way, back-pressure is actually determined by the reading side,\n// since _read has to be called to start processing a new chunk. However,\n// a pathological inflate type of transform can cause excessive buffering\n// here. For example, imagine a stream where every byte of input is\n// interpreted as an integer from 0-255, and then results in that many\n// bytes of output. Writing the 4 bytes {ff,ff,ff,ff} would result in\n// 1kb of data being output. In this case, you could write a very small\n// amount of input, and end up with a very large amount of output. In\n// such a pathological inflating mechanism, there'd be no way to tell\n// the system to stop doing the transform. A single 4MB write could\n// cause the system to run out of memory.\n//\n// However, even in such a pathological case, only a single written chunk\n// would be consumed, and then the rest would wait (un-transformed) until\n// the results of the previous transformed chunk were consumed.\n\n'use strict';\n\nmodule.exports = Transform;\nconst _require$codes = require('../errors').codes,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK,\n ERR_TRANSFORM_ALREADY_TRANSFORMING = _require$codes.ERR_TRANSFORM_ALREADY_TRANSFORMING,\n ERR_TRANSFORM_WITH_LENGTH_0 = _require$codes.ERR_TRANSFORM_WITH_LENGTH_0;\nconst Duplex = require('./_stream_duplex');\nrequire('inherits')(Transform, Duplex);\nfunction afterTransform(er, data) {\n var ts = this._transformState;\n ts.transforming = false;\n var cb = ts.writecb;\n if (cb === null) {\n return this.emit('error', new ERR_MULTIPLE_CALLBACK());\n }\n ts.writechunk = null;\n ts.writecb = null;\n if (data != null)\n // single equals check for both `null` and `undefined`\n this.push(data);\n cb(er);\n var rs = this._readableState;\n rs.reading = false;\n if (rs.needReadable || rs.length < rs.highWaterMark) {\n this._read(rs.highWaterMark);\n }\n}\nfunction Transform(options) {\n if (!(this instanceof Transform)) return new Transform(options);\n Duplex.call(this, options);\n this._transformState = {\n afterTransform: afterTransform.bind(this),\n needTransform: false,\n transforming: false,\n writecb: null,\n writechunk: null,\n writeencoding: null\n };\n\n // start out asking for a readable event once data is transformed.\n this._readableState.needReadable = true;\n\n // we have implemented the _read method, and done the other things\n // that Readable wants before the first _read call, so unset the\n // sync guard flag.\n this._readableState.sync = false;\n if (options) {\n if (typeof options.transform === 'function') this._transform = options.transform;\n if (typeof options.flush === 'function') this._flush = options.flush;\n }\n\n // When the writable side finishes, then flush out anything remaining.\n this.on('prefinish', prefinish);\n}\nfunction prefinish() {\n if (typeof this._flush === 'function' && !this._readableState.destroyed) {\n this._flush((er, data) => {\n done(this, er, data);\n });\n } else {\n done(this, null, null);\n }\n}\nTransform.prototype.push = function (chunk, encoding) {\n this._transformState.needTransform = false;\n return Duplex.prototype.push.call(this, chunk, encoding);\n};\n\n// This is the part where you do stuff!\n// override this function in implementation classes.\n// 'chunk' is an input chunk.\n//\n// Call `push(newChunk)` to pass along transformed output\n// to the readable side. You may call 'push' zero or more times.\n//\n// Call `cb(err)` when you are done with this chunk. If you pass\n// an error, then that'll put the hurt on the whole operation. If you\n// never call cb(), then you'll never get another chunk.\nTransform.prototype._transform = function (chunk, encoding, cb) {\n cb(new ERR_METHOD_NOT_IMPLEMENTED('_transform()'));\n};\nTransform.prototype._write = function (chunk, encoding, cb) {\n var ts = this._transformState;\n ts.writecb = cb;\n ts.writechunk = chunk;\n ts.writeencoding = encoding;\n if (!ts.transforming) {\n var rs = this._readableState;\n if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark);\n }\n};\n\n// Doesn't matter what the args are here.\n// _transform does all the work.\n// That we got here means that the readable side wants more data.\nTransform.prototype._read = function (n) {\n var ts = this._transformState;\n if (ts.writechunk !== null && !ts.transforming) {\n ts.transforming = true;\n this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);\n } else {\n // mark that we need a transform, so that any data that comes in\n // will get processed, now that we've asked for it.\n ts.needTransform = true;\n }\n};\nTransform.prototype._destroy = function (err, cb) {\n Duplex.prototype._destroy.call(this, err, err2 => {\n cb(err2);\n });\n};\nfunction done(stream, er, data) {\n if (er) return stream.emit('error', er);\n if (data != null)\n // single equals check for both `null` and `undefined`\n stream.push(data);\n\n // TODO(BridgeAR): Write a test for these two error cases\n // if there's nothing in the write buffer, then that means\n // that nothing more will ever be provided\n if (stream._writableState.length) throw new ERR_TRANSFORM_WITH_LENGTH_0();\n if (stream._transformState.transforming) throw new ERR_TRANSFORM_ALREADY_TRANSFORMING();\n return stream.push(null);\n}", "// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a passthrough stream.\n// basically just the most minimal sort of Transform stream.\n// Every written chunk gets output as-is.\n\n'use strict';\n\nmodule.exports = PassThrough;\nconst Transform = require('./_stream_transform');\nrequire('inherits')(PassThrough, Transform);\nfunction PassThrough(options) {\n if (!(this instanceof PassThrough)) return new PassThrough(options);\n Transform.call(this, options);\n}\nPassThrough.prototype._transform = function (chunk, encoding, cb) {\n cb(null, chunk);\n};", "// Ported from https://github.com/mafintosh/pump with\n// permission from the author, Mathias Buus (@mafintosh).\n\n'use strict';\n\nlet eos;\nfunction once(callback) {\n let called = false;\n return function () {\n if (called) return;\n called = true;\n callback(...arguments);\n };\n}\nconst _require$codes = require('../../../errors').codes,\n ERR_MISSING_ARGS = _require$codes.ERR_MISSING_ARGS,\n ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED;\nfunction noop(err) {\n // Rethrow the error if it exists to avoid swallowing it\n if (err) throw err;\n}\nfunction isRequest(stream) {\n return stream.setHeader && typeof stream.abort === 'function';\n}\nfunction destroyer(stream, reading, writing, callback) {\n callback = once(callback);\n let closed = false;\n stream.on('close', () => {\n closed = true;\n });\n if (eos === undefined) eos = require('./end-of-stream');\n eos(stream, {\n readable: reading,\n writable: writing\n }, err => {\n if (err) return callback(err);\n closed = true;\n callback();\n });\n let destroyed = false;\n return err => {\n if (closed) return;\n if (destroyed) return;\n destroyed = true;\n\n // request.destroy just do .end - .abort is what we want\n if (isRequest(stream)) return stream.abort();\n if (typeof stream.destroy === 'function') return stream.destroy();\n callback(err || new ERR_STREAM_DESTROYED('pipe'));\n };\n}\nfunction call(fn) {\n fn();\n}\nfunction pipe(from, to) {\n return from.pipe(to);\n}\nfunction popCallback(streams) {\n if (!streams.length) return noop;\n if (typeof streams[streams.length - 1] !== 'function') return noop;\n return streams.pop();\n}\nfunction pipeline() {\n for (var _len = arguments.length, streams = new Array(_len), _key = 0; _key < _len; _key++) {\n streams[_key] = arguments[_key];\n }\n const callback = popCallback(streams);\n if (Array.isArray(streams[0])) streams = streams[0];\n if (streams.length < 2) {\n throw new ERR_MISSING_ARGS('streams');\n }\n let error;\n const destroys = streams.map(function (stream, i) {\n const reading = i < streams.length - 1;\n const writing = i > 0;\n return destroyer(stream, reading, writing, function (err) {\n if (!error) error = err;\n if (err) destroys.forEach(call);\n if (reading) return;\n destroys.forEach(call);\n callback(error);\n });\n });\n return streams.reduce(pipe);\n}\nmodule.exports = pipeline;", "var Stream = require('stream');\nif (process.env.READABLE_STREAM === 'disable' && Stream) {\n module.exports = Stream.Readable;\n Object.assign(module.exports, Stream);\n module.exports.Stream = Stream;\n} else {\n exports = module.exports = require('./lib/_stream_readable.js');\n exports.Stream = Stream || exports;\n exports.Readable = exports;\n exports.Writable = require('./lib/_stream_writable.js');\n exports.Duplex = require('./lib/_stream_duplex.js');\n exports.Transform = require('./lib/_stream_transform.js');\n exports.PassThrough = require('./lib/_stream_passthrough.js');\n exports.finished = require('./lib/internal/streams/end-of-stream.js');\n exports.pipeline = require('./lib/internal/streams/pipeline.js');\n}\n", "const Transform = require('readable-stream').Transform\n\nmodule.exports = class Blake extends Transform {\n constructor (engine, options) {\n super(options)\n\n this._engine = engine\n this._finalized = false\n }\n\n _transform (chunk, encoding, callback) {\n let error = null\n try {\n this.update(chunk, encoding)\n } catch (err) {\n error = err\n }\n\n callback(error)\n }\n\n _flush (callback) {\n let error = null\n try {\n this.push(this.digest())\n } catch (err) {\n error = err\n }\n\n callback(error)\n }\n\n update (data, encoding) {\n if (!Buffer.isBuffer(data) && typeof data !== 'string') throw new TypeError('Data must be a string or a buffer')\n if (this._finalized) throw new Error('Digest already called')\n if (!Buffer.isBuffer(data)) data = Buffer.from(data, encoding)\n\n this._engine.update(data)\n\n return this\n }\n\n digest (encoding) {\n if (this._finalized) throw new Error('Digest already called')\n this._finalized = true\n\n let digest = this._engine.digest()\n if (encoding !== undefined) digest = digest.toString(encoding)\n\n return digest\n }\n}\n", "const Blake = require('./blake')\n\nmodule.exports = (engines) => {\n const getEngine = (algorithm) => {\n const hash = typeof algorithm === 'string' ? algorithm.toLowerCase() : algorithm\n switch (hash) {\n case 'blake224': return engines.Blake224\n case 'blake256': return engines.Blake256\n case 'blake384': return engines.Blake384\n case 'blake512': return engines.Blake512\n\n default: throw new Error('Invald algorithm: ' + algorithm)\n }\n }\n\n return (algorithm, options) => {\n const Engine = getEngine(algorithm)\n return new Blake(new Engine(), options)\n }\n}\n", "module.exports = require('./lib/api')(require('node-gyp-build')(__dirname))\n", "class Blake {\n _lengthCarry (arr) {\n for (let j = 0; j < arr.length; ++j) {\n if (arr[j] < 0x0100000000) break\n arr[j] -= 0x0100000000\n arr[j + 1] += 1\n }\n }\n\n update (data) {\n const block = this._block\n let offset = 0\n\n while (this._blockOffset + data.length - offset >= block.length) {\n for (let i = this._blockOffset; i < block.length;) block[i++] = data[offset++]\n\n this._length[0] += block.length * 8\n this._lengthCarry(this._length)\n\n this._compress()\n this._blockOffset = 0\n }\n\n while (offset < data.length) block[this._blockOffset++] = data[offset++]\n }\n}\n\nBlake.sigma = [\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 [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]\n\nBlake.u256 = [\n 0x243f6a88, 0x85a308d3, 0x13198a2e, 0x03707344,\n 0xa4093822, 0x299f31d0, 0x082efa98, 0xec4e6c89,\n 0x452821e6, 0x38d01377, 0xbe5466cf, 0x34e90c6c,\n 0xc0ac29b7, 0xc97c50dd, 0x3f84d5b5, 0xb5470917\n]\n\nBlake.u512 = [\n 0x243f6a88, 0x85a308d3, 0x13198a2e, 0x03707344,\n 0xa4093822, 0x299f31d0, 0x082efa98, 0xec4e6c89,\n 0x452821e6, 0x38d01377, 0xbe5466cf, 0x34e90c6c,\n 0xc0ac29b7, 0xc97c50dd, 0x3f84d5b5, 0xb5470917,\n 0x9216d5d9, 0x8979fb1b, 0xd1310ba6, 0x98dfb5ac,\n 0x2ffd72db, 0xd01adfb7, 0xb8e1afed, 0x6a267e96,\n 0xba7c9045, 0xf12c7f99, 0x24a19947, 0xb3916cf7,\n 0x0801f2e2, 0x858efc16, 0x636920d8, 0x71574e69\n]\n\nBlake.padding = Buffer.from([\n 0x80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0\n])\n\nmodule.exports = Blake\n", "const Blake = require('./blake')\n\nconst zo = Buffer.from([0x01])\nconst oo = Buffer.from([0x81])\n\nconst rot = (x, n) => ((x << (32 - n)) | (x >>> n)) >>> 0\n\nfunction g (v, m, i, a, b, c, d, e) {\n const sigma = Blake.sigma\n const u256 = Blake.u256\n\n v[a] = (v[a] + ((m[sigma[i][e]] ^ u256[sigma[i][e + 1]]) >>> 0) + v[b]) >>> 0\n v[d] = rot(v[d] ^ v[a], 16)\n v[c] = (v[c] + v[d]) >>> 0\n v[b] = rot(v[b] ^ v[c], 12)\n v[a] = (v[a] + ((m[sigma[i][e + 1]] ^ u256[sigma[i][e]]) >>> 0) + v[b]) >>> 0\n v[d] = rot(v[d] ^ v[a], 8)\n v[c] = (v[c] + v[d]) >>> 0\n v[b] = rot(v[b] ^ v[c], 7)\n}\n\nmodule.exports = class Blake256 extends Blake {\n constructor () {\n super()\n\n this._h = [\n 0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a,\n 0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19\n ]\n\n this._s = [0, 0, 0, 0]\n\n this._block = Buffer.alloc(64)\n this._blockOffset = 0\n this._length = [0, 0]\n\n this._nullt = false\n\n this._zo = zo\n this._oo = oo\n }\n\n _compress () {\n const u256 = Blake.u256\n const v = new Array(16)\n const m = new Array(16)\n let i\n\n for (i = 0; i < 16; ++i) m[i] = this._block.readUInt32BE(i * 4)\n for (i = 0; i < 8; ++i) v[i] = this._h[i] >>> 0\n for (i = 8; i < 12; ++i) v[i] = (this._s[i - 8] ^ u256[i - 8]) >>> 0\n for (i = 12; i < 16; ++i) v[i] = u256[i - 8]\n\n if (!this._nullt) {\n v[12] = (v[12] ^ this._length[0]) >>> 0\n v[13] = (v[13] ^ this._length[0]) >>> 0\n v[14] = (v[14] ^ this._length[1]) >>> 0\n v[15] = (v[15] ^ this._length[1]) >>> 0\n }\n\n for (i = 0; i < 14; ++i) {\n /* column step */\n g(v, m, i, 0, 4, 8, 12, 0)\n g(v, m, i, 1, 5, 9, 13, 2)\n g(v, m, i, 2, 6, 10, 14, 4)\n g(v, m, i, 3, 7, 11, 15, 6)\n /* diagonal step */\n g(v, m, i, 0, 5, 10, 15, 8)\n g(v, m, i, 1, 6, 11, 12, 10)\n g(v, m, i, 2, 7, 8, 13, 12)\n g(v, m, i, 3, 4, 9, 14, 14)\n }\n\n for (i = 0; i < 16; ++i) this._h[i % 8] = (this._h[i % 8] ^ v[i]) >>> 0\n for (i = 0; i < 8; ++i) this._h[i] = (this._h[i] ^ this._s[i % 4]) >>> 0\n }\n\n _padding () {\n let lo = this._length[0] + this._blockOffset * 8\n let hi = this._length[1]\n if (lo >= 0x0100000000) {\n lo -= 0x0100000000\n hi += 1\n }\n\n const msglen = Buffer.alloc(8)\n msglen.writeUInt32BE(hi, 0)\n msglen.writeUInt32BE(lo, 4)\n\n if (this._blockOffset === 55) {\n this._length[0] -= 8\n this.update(this._oo)\n } else {\n if (this._blockOffset < 55) {\n if (this._blockOffset === 0) this._nullt = true\n this._length[0] -= (55 - this._blockOffset) * 8\n this.update(Blake.padding.slice(0, 55 - this._blockOffset))\n } else {\n this._length[0] -= (64 - this._blockOffset) * 8\n this.update(Blake.padding.slice(0, 64 - this._blockOffset))\n this._length[0] -= 55 * 8\n this.update(Blake.padding.slice(1, 1 + 55))\n this._nullt = true\n }\n\n this.update(this._zo)\n this._length[0] -= 8\n }\n\n this._length[0] -= 64\n this.update(msglen)\n }\n\n digest () {\n this._padding()\n\n const buffer = Buffer.alloc(32)\n for (let i = 0; i < 8; ++i) buffer.writeUInt32BE(this._h[i], i * 4)\n return buffer\n }\n}\n", "const Blake256 = require('./blake256')\n\nconst zo = Buffer.from([0x00])\nconst oo = Buffer.from([0x80])\n\nmodule.exports = class Blake224 extends Blake256 {\n constructor () {\n super()\n\n this._h = [\n 0xc1059ed8, 0x367cd507, 0x3070dd17, 0xf70e5939,\n 0xffc00b31, 0x68581511, 0x64f98fa7, 0xbefa4fa4\n ]\n\n this._zo = zo\n this._oo = oo\n }\n\n digest () {\n this._padding()\n\n const buffer = Buffer.alloc(28)\n for (let i = 0; i < 7; ++i) buffer.writeUInt32BE(this._h[i], i * 4)\n return buffer\n }\n}\n", "const Blake = require('./blake')\n\nconst zo = Buffer.from([0x01])\nconst oo = Buffer.from([0x81])\n\nfunction rot (v, i, j, n) {\n let hi = v[i * 2] ^ v[j * 2]\n let lo = v[i * 2 + 1] ^ v[j * 2 + 1]\n\n if (n >= 32) {\n lo = lo ^ hi\n hi = lo ^ hi\n lo = lo ^ hi\n n -= 32\n }\n\n if (n === 0) {\n v[i * 2] = hi >>> 0\n v[i * 2 + 1] = lo >>> 0\n } else {\n v[i * 2] = ((hi >>> n) | (lo << (32 - n))) >>> 0\n v[i * 2 + 1] = ((lo >>> n) | (hi << (32 - n))) >>> 0\n }\n}\n\nfunction g (v, m, i, a, b, c, d, e) {\n const sigma = Blake.sigma\n const u512 = Blake.u512\n let lo\n\n // v[a] += (m[sigma[i][e]] ^ u512[sigma[i][e+1]]) + v[b];\n lo = v[a * 2 + 1] + ((m[sigma[i][e] * 2 + 1] ^ u512[sigma[i][e + 1] * 2 + 1]) >>> 0) + v[b * 2 + 1]\n v[a * 2] = (v[a * 2] + ((m[sigma[i][e] * 2] ^ u512[sigma[i][e + 1] * 2]) >>> 0) + v[b * 2] + ~~(lo / 0x0100000000)) >>> 0\n v[a * 2 + 1] = lo >>> 0\n\n // v[d] = ROT( v[d] ^ v[a],32);\n rot(v, d, a, 32)\n\n // v[c] += v[d];\n lo = v[c * 2 + 1] + v[d * 2 + 1]\n v[c * 2] = (v[c * 2] + v[d * 2] + ~~(lo / 0x0100000000)) >>> 0\n v[c * 2 + 1] = lo >>> 0\n\n // v[b] = ROT( v[b] ^ v[c],25);\n rot(v, b, c, 25)\n\n // v[a] += (m[sigma[i][e+1]] ^ u512[sigma[i][e]])+v[b];\n lo = v[a * 2 + 1] + ((m[sigma[i][e + 1] * 2 + 1] ^ u512[sigma[i][e] * 2 + 1]) >>> 0) + v[b * 2 + 1]\n v[a * 2] = (v[a * 2] + ((m[sigma[i][e + 1] * 2] ^ u512[sigma[i][e] * 2]) >>> 0) + v[b * 2] + ~~(lo / 0x0100000000)) >>> 0\n v[a * 2 + 1] = lo >>> 0\n\n // v[d] = ROT( v[d] ^ v[a],16);\n rot(v, d, a, 16)\n\n // v[c] += v[d];\n lo = v[c * 2 + 1] + v[d * 2 + 1]\n v[c * 2] = (v[c * 2] + v[d * 2] + ~~(lo / 0x0100000000)) >>> 0\n v[c * 2 + 1] = lo >>> 0\n\n // v[b] = ROT( v[b] ^ v[c],11)\n rot(v, b, c, 11)\n}\n\nmodule.exports = class Blake512 extends Blake {\n constructor () {\n super()\n\n this._h = [\n 0x6a09e667, 0xf3bcc908, 0xbb67ae85, 0x84caa73b,\n 0x3c6ef372, 0xfe94f82b, 0xa54ff53a, 0x5f1d36f1,\n 0x510e527f, 0xade682d1, 0x9b05688c, 0x2b3e6c1f,\n 0x1f83d9ab, 0xfb41bd6b, 0x5be0cd19, 0x137e2179\n ]\n\n this._s = [0, 0, 0, 0, 0, 0, 0, 0]\n\n this._block = Buffer.alloc(128)\n this._blockOffset = 0\n this._length = [0, 0, 0, 0]\n\n this._nullt = false\n\n this._zo = zo\n this._oo = oo\n }\n\n _compress () {\n const u512 = Blake.u512\n const v = new Array(32)\n const m = new Array(32)\n let i\n\n for (i = 0; i < 32; ++i) m[i] = this._block.readUInt32BE(i * 4)\n for (i = 0; i < 16; ++i) v[i] = this._h[i] >>> 0\n for (i = 16; i < 24; ++i) v[i] = (this._s[i - 16] ^ u512[i - 16]) >>> 0\n for (i = 24; i < 32; ++i) v[i] = u512[i - 16]\n\n if (!this._nullt) {\n v[24] = (v[24] ^ this._length[1]) >>> 0\n v[25] = (v[25] ^ this._length[0]) >>> 0\n v[26] = (v[26] ^ this._length[1]) >>> 0\n v[27] = (v[27] ^ this._length[0]) >>> 0\n v[28] = (v[28] ^ this._length[3]) >>> 0\n v[29] = (v[29] ^ this._length[2]) >>> 0\n v[30] = (v[30] ^ this._length[3]) >>> 0\n v[31] = (v[31] ^ this._length[2]) >>> 0\n }\n\n for (i = 0; i < 16; ++i) {\n /* column step */\n g(v, m, i, 0, 4, 8, 12, 0)\n g(v, m, i, 1, 5, 9, 13, 2)\n g(v, m, i, 2, 6, 10, 14, 4)\n g(v, m, i, 3, 7, 11, 15, 6)\n /* diagonal step */\n g(v, m, i, 0, 5, 10, 15, 8)\n g(v, m, i, 1, 6, 11, 12, 10)\n g(v, m, i, 2, 7, 8, 13, 12)\n g(v, m, i, 3, 4, 9, 14, 14)\n }\n\n for (i = 0; i < 16; ++i) {\n this._h[(i % 8) * 2] = (this._h[(i % 8) * 2] ^ v[i * 2]) >>> 0\n this._h[(i % 8) * 2 + 1] = (this._h[(i % 8) * 2 + 1] ^ v[i * 2 + 1]) >>> 0\n }\n\n for (i = 0; i < 8; ++i) {\n this._h[i * 2] = (this._h[i * 2] ^ this._s[(i % 4) * 2]) >>> 0\n this._h[i * 2 + 1] = (this._h[i * 2 + 1] ^ this._s[(i % 4) * 2 + 1]) >>> 0\n }\n }\n\n _padding () {\n const len = this._length.slice()\n len[0] += this._blockOffset * 8\n this._lengthCarry(len)\n\n const msglen = Buffer.alloc(16)\n for (let i = 0; i < 4; ++i) msglen.writeUInt32BE(len[3 - i], i * 4)\n\n if (this._blockOffset === 111) {\n this._length[0] -= 8\n this.update(this._oo)\n } else {\n if (this._blockOffset < 111) {\n if (this._blockOffset === 0) this._nullt = true\n this._length[0] -= (111 - this._blockOffset) * 8\n this.update(Blake.padding.slice(0, 111 - this._blockOffset))\n } else {\n this._length[0] -= (128 - this._blockOffset) * 8\n this.update(Blake.padding.slice(0, 128 - this._blockOffset))\n this._length[0] -= 111 * 8\n this.update(Blake.padding.slice(1, 1 + 111))\n this._nullt = true\n }\n\n this.update(this._zo)\n this._length[0] -= 8\n }\n\n this._length[0] -= 128\n this.update(msglen)\n }\n\n digest () {\n this._padding()\n\n const buffer = Buffer.alloc(64)\n for (let i = 0; i < 16; ++i) buffer.writeUInt32BE(this._h[i], i * 4)\n return buffer\n }\n}\n", "const Blake512 = require('./blake512')\n\nconst zo = Buffer.from([0x00])\nconst oo = Buffer.from([0x80])\n\nmodule.exports = class Blake384 extends Blake512 {\n constructor () {\n super()\n\n this._h = [\n 0xcbbb9d5d, 0xc1059ed8, 0x629a292a, 0x367cd507,\n 0x9159015a, 0x3070dd17, 0x152fecd8, 0xf70e5939,\n 0x67332667, 0xffc00b31, 0x8eb44a87, 0x68581511,\n 0xdb0c2e0d, 0x64f98fa7, 0x47b5481d, 0xbefa4fa4\n ]\n\n this._zo = zo\n this._oo = oo\n }\n\n digest () {\n this._padding()\n\n const buffer = Buffer.alloc(48)\n for (let i = 0; i < 12; ++i) buffer.writeUInt32BE(this._h[i], i * 4)\n return buffer\n }\n}\n", "module.exports = {\n Blake224: require('./blake224'),\n Blake256: require('./blake256'),\n Blake384: require('./blake384'),\n Blake512: require('./blake512')\n}\n", "module.exports = require('./lib/api')(require('./lib'))\n", "try {\n module.exports = require('./bindings')\n} catch (err) {\n module.exports = require('./js')\n}\n", "module.exports = require('crypto').createHmac\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.hmacSHA512 = exports.hash256 = exports.hash160blake256 = exports.hash160 = exports.blake256 = exports.sha256 = exports.sha1 = exports.ripemd160 = void 0;\nconst blakeHash = require(\"blake-hash\");\nconst createHash = require(\"create-hash\");\nconst createHmac = require(\"create-hmac\");\nfunction ripemd160(buffer) {\n try {\n return createHash('rmd160').update(buffer).digest();\n }\n catch (err) {\n return createHash('ripemd160').update(buffer).digest();\n }\n}\nexports.ripemd160 = ripemd160;\nfunction sha1(buffer) {\n return createHash('sha1').update(buffer).digest();\n}\nexports.sha1 = sha1;\nfunction sha256(buffer) {\n return createHash('sha256').update(buffer).digest();\n}\nexports.sha256 = sha256;\nfunction blake256(buffer) {\n return blakeHash('blake256').update(buffer).digest();\n}\nexports.blake256 = blake256;\nfunction hash160(buffer) {\n return ripemd160(sha256(buffer));\n}\nexports.hash160 = hash160;\nfunction hash160blake256(buffer) {\n return ripemd160(blake256(buffer));\n}\nexports.hash160blake256 = hash160blake256;\nfunction hash256(buffer) {\n return sha256(sha256(buffer));\n}\nexports.hash256 = hash256;\nfunction hmacSHA512(key, data) {\n return createHmac('sha512', key).update(data).digest();\n}\nexports.hmacSHA512 = hmacSHA512;\n//# sourceMappingURL=crypto.js.map", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.encodeAddress = exports.decodeAddress = exports.decode = exports.encode = exports.encodeBlake256 = exports.decodeBlake256 = exports.decodeBlake256Key = exports.decodeBlake = void 0;\nconst networks_1 = require(\"./networks\");\nconst bchaddrjs = require(\"bchaddrjs\");\nconst bs58 = require(\"bs58\");\nconst bs58check = require(\"bs58check\");\nconst crypto_1 = require(\"./crypto\");\nfunction decodeBlake(buffer) {\n const want = buffer.slice(-4);\n const payload = buffer.slice(0, -4);\n const got = (0, crypto_1.blake256)((0, crypto_1.blake256)(payload)).slice(0, 4);\n if ((want[0] ^ got[0]) | (want[1] ^ got[1]) | (want[2] ^ got[2]) | (want[3] ^ got[3]))\n throw new Error('invalid checksum');\n return payload;\n}\nexports.decodeBlake = decodeBlake;\nfunction decodeBlake256Key(key) {\n const bytes = bs58.decode(key);\n const buffer = Buffer.from(bytes);\n return decodeBlake(buffer);\n}\nexports.decodeBlake256Key = decodeBlake256Key;\nfunction decodeBlake256(address) {\n const bytes = bs58.decode(address);\n const buffer = Buffer.from(bytes);\n if (buffer.length !== 26)\n throw new Error(`${address} invalid address length`);\n let payload;\n try {\n payload = decodeBlake(buffer);\n }\n catch (e) {\n if (e instanceof Error) {\n throw new Error(`${address} ${e.message}`);\n }\n throw new Error(`${address} ${e}`);\n }\n return payload;\n}\nexports.decodeBlake256 = decodeBlake256;\nfunction encodeBlake256(payload) {\n const checksum = (0, crypto_1.blake256)((0, crypto_1.blake256)(payload)).slice(0, 4);\n return bs58.encode(Buffer.concat([payload, checksum]));\n}\nexports.encodeBlake256 = encodeBlake256;\nfunction encode(payload, network = networks_1.bitcoin) {\n return (0, networks_1.isNetworkType)('decred', network) ? encodeBlake256(payload) : bs58check.encode(payload);\n}\nexports.encode = encode;\nfunction decode(payload, network = networks_1.bitcoin) {\n return (0, networks_1.isNetworkType)('decred', network) ? decodeBlake256(payload) : bs58check.decode(payload);\n}\nexports.decode = decode;\nfunction decodeAddress(address, network = networks_1.bitcoin) {\n let payload;\n if ((0, networks_1.isNetworkType)('bitcoinCash', network)) {\n if (!bchaddrjs.isCashAddress(address))\n throw Error(`${address} is not a cash address`);\n payload = bs58check.decode(bchaddrjs.toLegacyAddress(address));\n }\n else {\n payload = decode(address, network);\n }\n if (payload.length < 21)\n throw new TypeError(`${address} is too short`);\n if (payload.length > 22)\n throw new TypeError(`${address} is too long`);\n const multibyte = payload.length === 22;\n const offset = multibyte ? 2 : 1;\n const version = multibyte ? payload.readUInt16BE(0) : payload[0];\n const hash = payload.slice(offset);\n return { version, hash };\n}\nexports.decodeAddress = decodeAddress;\nfunction encodeAddress(hash, version, network = networks_1.bitcoin) {\n const multibyte = version > 0xff;\n const size = multibyte ? 22 : 21;\n const offset = multibyte ? 2 : 1;\n const payload = Buffer.allocUnsafe(size);\n if (multibyte) {\n payload.writeUInt16BE(version, 0);\n }\n else {\n payload.writeUInt8(version, 0);\n }\n hash.copy(payload, offset);\n const encoded = encode(payload, network);\n return (0, networks_1.isNetworkType)('bitcoinCash', network) ? bchaddrjs.toCashAddress(encoded) : encoded;\n}\nexports.encodeAddress = encodeAddress;\n//# sourceMappingURL=bs58check.js.map", "// Reference https://github.com/bitcoin/bips/blob/master/bip-0066.mediawiki\n// Format: 0x30 [total-length] 0x02 [R-length] [R] 0x02 [S-length] [S]\n// NOTE: SIGHASH byte ignored AND restricted, truncate before use\n\nvar Buffer = require('safe-buffer').Buffer\n\nfunction check (buffer) {\n if (buffer.length < 8) return false\n if (buffer.length > 72) return false\n if (buffer[0] !== 0x30) return false\n if (buffer[1] !== buffer.length - 2) return false\n if (buffer[2] !== 0x02) return false\n\n var lenR = buffer[3]\n if (lenR === 0) return false\n if (5 + lenR >= buffer.length) return false\n if (buffer[4 + lenR] !== 0x02) return false\n\n var lenS = buffer[5 + lenR]\n if (lenS === 0) return false\n if ((6 + lenR + lenS) !== buffer.length) return false\n\n if (buffer[4] & 0x80) return false\n if (lenR > 1 && (buffer[4] === 0x00) && !(buffer[5] & 0x80)) return false\n\n if (buffer[lenR + 6] & 0x80) return false\n if (lenS > 1 && (buffer[lenR + 6] === 0x00) && !(buffer[lenR + 7] & 0x80)) return false\n return true\n}\n\nfunction decode (buffer) {\n if (buffer.length < 8) throw new Error('DER sequence length is too short')\n if (buffer.length > 72) throw new Error('DER sequence length is too long')\n if (buffer[0] !== 0x30) throw new Error('Expected DER sequence')\n if (buffer[1] !== buffer.length - 2) throw new Error('DER sequence length is invalid')\n if (buffer[2] !== 0x02) throw new Error('Expected DER integer')\n\n var lenR = buffer[3]\n if (lenR === 0) throw new Error('R length is zero')\n if (5 + lenR >= buffer.length) throw new Error('R length is too long')\n if (buffer[4 + lenR] !== 0x02) throw new Error('Expected DER integer (2)')\n\n var lenS = buffer[5 + lenR]\n if (lenS === 0) throw new Error('S length is zero')\n if ((6 + lenR + lenS) !== buffer.length) throw new Error('S length is invalid')\n\n if (buffer[4] & 0x80) throw new Error('R value is negative')\n if (lenR > 1 && (buffer[4] === 0x00) && !(buffer[5] & 0x80)) throw new Error('R value excessively padded')\n\n if (buffer[lenR + 6] & 0x80) throw new Error('S value is negative')\n if (lenS > 1 && (buffer[lenR + 6] === 0x00) && !(buffer[lenR + 7] & 0x80)) throw new Error('S value excessively padded')\n\n // non-BIP66 - extract R, S values\n return {\n r: buffer.slice(4, 4 + lenR),\n s: buffer.slice(6 + lenR)\n }\n}\n\n/*\n * Expects r and s to be positive DER integers.\n *\n * The DER format uses the most significant bit as a sign bit (& 0x80).\n * If the significant bit is set AND the integer is positive, a 0x00 is prepended.\n *\n * Examples:\n *\n * 0 => 0x00\n * 1 => 0x01\n * -1 => 0xff\n * 127 => 0x7f\n * -127 => 0x81\n * 128 => 0x0080\n * -128 => 0x80\n * 255 => 0x00ff\n * -255 => 0xff01\n * 16300 => 0x3fac\n * -16300 => 0xc054\n * 62300 => 0x00f35c\n * -62300 => 0xff0ca4\n*/\nfunction encode (r, s) {\n var lenR = r.length\n var lenS = s.length\n if (lenR === 0) throw new Error('R length is zero')\n if (lenS === 0) throw new Error('S length is zero')\n if (lenR > 33) throw new Error('R length is too long')\n if (lenS > 33) throw new Error('S length is too long')\n if (r[0] & 0x80) throw new Error('R value is negative')\n if (s[0] & 0x80) throw new Error('S value is negative')\n if (lenR > 1 && (r[0] === 0x00) && !(r[1] & 0x80)) throw new Error('R value excessively padded')\n if (lenS > 1 && (s[0] === 0x00) && !(s[1] & 0x80)) throw new Error('S value excessively padded')\n\n var signature = Buffer.allocUnsafe(6 + lenR + lenS)\n\n // 0x30 [total-length] 0x02 [R-length] [R] 0x02 [S-length] [S]\n signature[0] = 0x30\n signature[1] = signature.length - 2\n signature[2] = 0x02\n signature[3] = r.length\n r.copy(signature, 4)\n signature[4 + lenR] = 0x02\n signature[5 + lenR] = s.length\n s.copy(signature, 6 + lenR)\n\n return signature\n}\n\nmodule.exports = {\n check: check,\n decode: decode,\n encode: encode\n}\n", "var OPS = require('bitcoin-ops')\n\nfunction encodingLength (i) {\n return i < OPS.OP_PUSHDATA1 ? 1\n : i <= 0xff ? 2\n : i <= 0xffff ? 3\n : 5\n}\n\nfunction encode (buffer, number, offset) {\n var size = encodingLength(number)\n\n // ~6 bit\n if (size === 1) {\n buffer.writeUInt8(number, offset)\n\n // 8 bit\n } else if (size === 2) {\n buffer.writeUInt8(OPS.OP_PUSHDATA1, offset)\n buffer.writeUInt8(number, offset + 1)\n\n // 16 bit\n } else if (size === 3) {\n buffer.writeUInt8(OPS.OP_PUSHDATA2, offset)\n buffer.writeUInt16LE(number, offset + 1)\n\n // 32 bit\n } else {\n buffer.writeUInt8(OPS.OP_PUSHDATA4, offset)\n buffer.writeUInt32LE(number, offset + 1)\n }\n\n return size\n}\n\nfunction decode (buffer, offset) {\n var opcode = buffer.readUInt8(offset)\n var number, size\n\n // ~6 bit\n if (opcode < OPS.OP_PUSHDATA1) {\n number = opcode\n size = 1\n\n // 8 bit\n } else if (opcode === OPS.OP_PUSHDATA1) {\n if (offset + 2 > buffer.length) return null\n number = buffer.readUInt8(offset + 1)\n size = 2\n\n // 16 bit\n } else if (opcode === OPS.OP_PUSHDATA2) {\n if (offset + 3 > buffer.length) return null\n number = buffer.readUInt16LE(offset + 1)\n size = 3\n\n // 32 bit\n } else {\n if (offset + 5 > buffer.length) return null\n if (opcode !== OPS.OP_PUSHDATA4) throw new Error('Unexpected opcode')\n\n number = buffer.readUInt32LE(offset + 1)\n size = 5\n }\n\n return {\n opcode: opcode,\n number: number,\n size: size\n }\n}\n\nmodule.exports = {\n encodingLength: encodingLength,\n encode: encode,\n decode: decode\n}\n", "\n/**\n * Module dependencies.\n */\n\nvar sep = require('path').sep || '/';\n\n/**\n * Module exports.\n */\n\nmodule.exports = fileUriToPath;\n\n/**\n * File URI to Path function.\n *\n * @param {String} uri\n * @return {String} path\n * @api public\n */\n\nfunction fileUriToPath (uri) {\n if ('string' != typeof uri ||\n uri.length <= 7 ||\n 'file://' != uri.substring(0, 7)) {\n throw new TypeError('must pass in a file:// URI to convert to a file path');\n }\n\n var rest = decodeURI(uri.substring(7));\n var firstSlash = rest.indexOf('/');\n var host = rest.substring(0, firstSlash);\n var path = rest.substring(firstSlash + 1);\n\n // 2. Scheme Definition\n // As a special case, can be the string \"localhost\" or the empty\n // string; this is interpreted as \"the machine from which the URL is\n // being interpreted\".\n if ('localhost' == host) host = '';\n\n if (host) {\n host = sep + sep + host;\n }\n\n // 3.2 Drives, drive letters, mount points, file system root\n // Drive letters are mapped into the top of a file URI in various ways,\n // depending on the implementation; some applications substitute\n // vertical bar (\"|\") for the colon after the drive letter, yielding\n // \"file:///c|/tmp/test.txt\". In some cases, the colon is left\n // unchanged, as in \"file:///c:/tmp/test.txt\". In other cases, the\n // colon is simply omitted, as in \"file:///c/tmp/test.txt\".\n path = path.replace(/^(.+)\\|/, '$1:');\n\n // for Windows, we need to invert the path separators from what a URI uses\n if (sep == '\\\\') {\n path = path.replace(/\\//g, '\\\\');\n }\n\n if (/^.+\\:/.test(path)) {\n // has Windows drive at beginning of path\n } else {\n // unix path\u2026\n path = sep + path;\n }\n\n return host + path;\n}\n", "/**\n * Module dependencies.\n */\n\nvar fs = require('fs'),\n path = require('path'),\n fileURLToPath = require('file-uri-to-path'),\n join = path.join,\n dirname = path.dirname,\n exists =\n (fs.accessSync &&\n function(path) {\n try {\n fs.accessSync(path);\n } catch (e) {\n return false;\n }\n return true;\n }) ||\n fs.existsSync ||\n path.existsSync,\n defaults = {\n arrow: process.env.NODE_BINDINGS_ARROW || ' \u2192 ',\n compiled: process.env.NODE_BINDINGS_COMPILED_DIR || 'compiled',\n platform: process.platform,\n arch: process.arch,\n nodePreGyp:\n 'node-v' +\n process.versions.modules +\n '-' +\n process.platform +\n '-' +\n process.arch,\n version: process.versions.node,\n bindings: 'bindings.node',\n try: [\n // node-gyp's linked version in the \"build\" dir\n ['module_root', 'build', 'bindings'],\n // node-waf and gyp_addon (a.k.a node-gyp)\n ['module_root', 'build', 'Debug', 'bindings'],\n ['module_root', 'build', 'Release', 'bindings'],\n // Debug files, for development (legacy behavior, remove for node v0.9)\n ['module_root', 'out', 'Debug', 'bindings'],\n ['module_root', 'Debug', 'bindings'],\n // Release files, but manually compiled (legacy behavior, remove for node v0.9)\n ['module_root', 'out', 'Release', 'bindings'],\n ['module_root', 'Release', 'bindings'],\n // Legacy from node-waf, node <= 0.4.x\n ['module_root', 'build', 'default', 'bindings'],\n // Production \"Release\" buildtype binary (meh...)\n ['module_root', 'compiled', 'version', 'platform', 'arch', 'bindings'],\n // node-qbs builds\n ['module_root', 'addon-build', 'release', 'install-root', 'bindings'],\n ['module_root', 'addon-build', 'debug', 'install-root', 'bindings'],\n ['module_root', 'addon-build', 'default', 'install-root', 'bindings'],\n // node-pre-gyp path ./lib/binding/{node_abi}-{platform}-{arch}\n ['module_root', 'lib', 'binding', 'nodePreGyp', 'bindings']\n ]\n };\n\n/**\n * The main `bindings()` function loads the compiled bindings for a given module.\n * It uses V8's Error API to determine the parent filename that this function is\n * being invoked from, which is then used to find the root directory.\n */\n\nfunction bindings(opts) {\n // Argument surgery\n if (typeof opts == 'string') {\n opts = { bindings: opts };\n } else if (!opts) {\n opts = {};\n }\n\n // maps `defaults` onto `opts` object\n Object.keys(defaults).map(function(i) {\n if (!(i in opts)) opts[i] = defaults[i];\n });\n\n // Get the module root\n if (!opts.module_root) {\n opts.module_root = exports.getRoot(exports.getFileName());\n }\n\n // Ensure the given bindings name ends with .node\n if (path.extname(opts.bindings) != '.node') {\n opts.bindings += '.node';\n }\n\n // https://github.com/webpack/webpack/issues/4175#issuecomment-342931035\n var requireFunc =\n typeof __webpack_require__ === 'function'\n ? __non_webpack_require__\n : require;\n\n var tries = [],\n i = 0,\n l = opts.try.length,\n n,\n b,\n err;\n\n for (; i < l; i++) {\n n = join.apply(\n null,\n opts.try[i].map(function(p) {\n return opts[p] || p;\n })\n );\n tries.push(n);\n try {\n b = opts.path ? requireFunc.resolve(n) : requireFunc(n);\n if (!opts.path) {\n b.path = n;\n }\n return b;\n } catch (e) {\n if (e.code !== 'MODULE_NOT_FOUND' &&\n e.code !== 'QUALIFIED_PATH_RESOLUTION_FAILED' &&\n !/not find/i.test(e.message)) {\n throw e;\n }\n }\n }\n\n err = new Error(\n 'Could not locate the bindings file. Tried:\\n' +\n tries\n .map(function(a) {\n return opts.arrow + a;\n })\n .join('\\n')\n );\n err.tries = tries;\n throw err;\n}\nmodule.exports = exports = bindings;\n\n/**\n * Gets the filename of the JavaScript file that invokes this function.\n * Used to help find the root directory of a module.\n * Optionally accepts an filename argument to skip when searching for the invoking filename\n */\n\nexports.getFileName = function getFileName(calling_file) {\n var origPST = Error.prepareStackTrace,\n origSTL = Error.stackTraceLimit,\n dummy = {},\n fileName;\n\n Error.stackTraceLimit = 10;\n\n Error.prepareStackTrace = function(e, st) {\n for (var i = 0, l = st.length; i < l; i++) {\n fileName = st[i].getFileName();\n if (fileName !== __filename) {\n if (calling_file) {\n if (fileName !== calling_file) {\n return;\n }\n } else {\n return;\n }\n }\n }\n };\n\n // run the 'prepareStackTrace' function above\n Error.captureStackTrace(dummy);\n dummy.stack;\n\n // cleanup\n Error.prepareStackTrace = origPST;\n Error.stackTraceLimit = origSTL;\n\n // handle filename that starts with \"file://\"\n var fileSchema = 'file://';\n if (fileName.indexOf(fileSchema) === 0) {\n fileName = fileURLToPath(fileName);\n }\n\n return fileName;\n};\n\n/**\n * Gets the root directory of a module, given an arbitrary filename\n * somewhere in the module tree. The \"root directory\" is the directory\n * containing the `package.json` file.\n *\n * In: /home/nate/node-native-module/lib/index.js\n * Out: /home/nate/node-native-module\n */\n\nexports.getRoot = function getRoot(file) {\n var dir = dirname(file),\n prev;\n while (true) {\n if (dir === '.') {\n // Avoids an infinite loop in rare cases, like the REPL\n dir = process.cwd();\n }\n if (\n exists(join(dir, 'package.json')) ||\n exists(join(dir, 'node_modules'))\n ) {\n // Found the 'package.json' file or 'node_modules' dir; we're done\n return dir;\n }\n if (prev === dir) {\n // Got to the top\n throw new Error(\n 'Could not find module root given file: \"' +\n file +\n '\". Do you have a `package.json` file? '\n );\n }\n // Try the parent dir next\n prev = dir;\n dir = join(dir, '..');\n }\n};\n", "'use strict'\n\nlet binding = require('bindings')('secp256k1')\ndelete binding.path\n\n// NaN drops function names, add them for is* (via toJSON)\nfor (let key in binding) {\n if (key.indexOf('is') !== 0) continue\n\n binding[key].toJSON = function () { return key }\n}\n\nmodule.exports = binding\n", "(function (module, exports) {\n 'use strict';\n\n // Utils\n function assert (val, msg) {\n if (!val) throw new Error(msg || 'Assertion failed');\n }\n\n // Could use `inherits` module, but don't want to move from single file\n // architecture yet.\n function inherits (ctor, superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function () {};\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n\n // BN\n\n function BN (number, base, endian) {\n if (BN.isBN(number)) {\n return number;\n }\n\n this.negative = 0;\n this.words = null;\n this.length = 0;\n\n // Reduction context\n this.red = null;\n\n if (number !== null) {\n if (base === 'le' || base === 'be') {\n endian = base;\n base = 10;\n }\n\n this._init(number || 0, base || 10, endian || 'be');\n }\n }\n if (typeof module === 'object') {\n module.exports = BN;\n } else {\n exports.BN = BN;\n }\n\n BN.BN = BN;\n BN.wordSize = 26;\n\n var Buffer;\n try {\n if (typeof window !== 'undefined' && typeof window.Buffer !== 'undefined') {\n Buffer = window.Buffer;\n } else {\n Buffer = require('buffer').Buffer;\n }\n } catch (e) {\n }\n\n BN.isBN = function isBN (num) {\n if (num instanceof BN) {\n return true;\n }\n\n return num !== null && typeof num === 'object' &&\n num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);\n };\n\n BN.max = function max (left, right) {\n if (left.cmp(right) > 0) return left;\n return right;\n };\n\n BN.min = function min (left, right) {\n if (left.cmp(right) < 0) return left;\n return right;\n };\n\n BN.prototype._init = function init (number, base, endian) {\n if (typeof number === 'number') {\n return this._initNumber(number, base, endian);\n }\n\n if (typeof number === 'object') {\n return this._initArray(number, base, endian);\n }\n\n if (base === 'hex') {\n base = 16;\n }\n assert(base === (base | 0) && base >= 2 && base <= 36);\n\n number = number.toString().replace(/\\s+/g, '');\n var start = 0;\n if (number[0] === '-') {\n start++;\n this.negative = 1;\n }\n\n if (start < number.length) {\n if (base === 16) {\n this._parseHex(number, start, endian);\n } else {\n this._parseBase(number, base, start);\n if (endian === 'le') {\n this._initArray(this.toArray(), base, endian);\n }\n }\n }\n };\n\n BN.prototype._initNumber = function _initNumber (number, base, endian) {\n if (number < 0) {\n this.negative = 1;\n number = -number;\n }\n if (number < 0x4000000) {\n this.words = [ number & 0x3ffffff ];\n this.length = 1;\n } else if (number < 0x10000000000000) {\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff\n ];\n this.length = 2;\n } else {\n assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff,\n 1\n ];\n this.length = 3;\n }\n\n if (endian !== 'le') return;\n\n // Reverse the bytes\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initArray = function _initArray (number, base, endian) {\n // Perhaps a Uint8Array\n assert(typeof number.length === 'number');\n if (number.length <= 0) {\n this.words = [ 0 ];\n this.length = 1;\n return this;\n }\n\n this.length = Math.ceil(number.length / 3);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n var off = 0;\n if (endian === 'be') {\n for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n } else if (endian === 'le') {\n for (i = 0, j = 0; i < number.length; i += 3) {\n w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n return this.strip();\n };\n\n function parseHex4Bits (string, index) {\n var c = string.charCodeAt(index);\n // 'A' - 'F'\n if (c >= 65 && c <= 70) {\n return c - 55;\n // 'a' - 'f'\n } else if (c >= 97 && c <= 102) {\n return c - 87;\n // '0' - '9'\n } else {\n return (c - 48) & 0xf;\n }\n }\n\n function parseHexByte (string, lowerBound, index) {\n var r = parseHex4Bits(string, index);\n if (index - 1 >= lowerBound) {\n r |= parseHex4Bits(string, index - 1) << 4;\n }\n return r;\n }\n\n BN.prototype._parseHex = function _parseHex (number, start, endian) {\n // Create possibly bigger array to ensure that it fits the number\n this.length = Math.ceil((number.length - start) / 6);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n // 24-bits chunks\n var off = 0;\n var j = 0;\n\n var w;\n if (endian === 'be') {\n for (i = number.length - 1; i >= start; i -= 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n } else {\n var parseLength = number.length - start;\n for (i = parseLength % 2 === 0 ? start + 1 : start; i < number.length; i += 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n }\n\n this.strip();\n };\n\n function parseBase (str, start, end, mul) {\n var r = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r *= mul;\n\n // 'a'\n if (c >= 49) {\n r += c - 49 + 0xa;\n\n // 'A'\n } else if (c >= 17) {\n r += c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n r += c;\n }\n }\n return r;\n }\n\n BN.prototype._parseBase = function _parseBase (number, base, start) {\n // Initialize as zero\n this.words = [ 0 ];\n this.length = 1;\n\n // Find length of limb in base\n for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n limbLen++;\n }\n limbLen--;\n limbPow = (limbPow / base) | 0;\n\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n\n var word = 0;\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n\n this.imuln(limbPow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n if (mod !== 0) {\n var pow = 1;\n word = parseBase(number, i, number.length, base);\n\n for (i = 0; i < mod; i++) {\n pow *= base;\n }\n\n this.imuln(pow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n this.strip();\n };\n\n BN.prototype.copy = function copy (dest) {\n dest.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n dest.words[i] = this.words[i];\n }\n dest.length = this.length;\n dest.negative = this.negative;\n dest.red = this.red;\n };\n\n BN.prototype.clone = function clone () {\n var r = new BN(null);\n this.copy(r);\n return r;\n };\n\n BN.prototype._expand = function _expand (size) {\n while (this.length < size) {\n this.words[this.length++] = 0;\n }\n return this;\n };\n\n // Remove leading `0` from `this`\n BN.prototype.strip = function strip () {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\n return this._normSign();\n };\n\n BN.prototype._normSign = function _normSign () {\n // -0 = 0\n if (this.length === 1 && this.words[0] === 0) {\n this.negative = 0;\n }\n return this;\n };\n\n BN.prototype.inspect = function inspect () {\n return (this.red ? '';\n };\n\n /*\n\n var zeros = [];\n var groupSizes = [];\n var groupBases = [];\n\n var s = '';\n var i = -1;\n while (++i < BN.wordSize) {\n zeros[i] = s;\n s += '0';\n }\n groupSizes[0] = 0;\n groupSizes[1] = 0;\n groupBases[0] = 0;\n groupBases[1] = 0;\n var base = 2 - 1;\n while (++base < 36 + 1) {\n var groupSize = 0;\n var groupBase = 1;\n while (groupBase < (1 << BN.wordSize) / base) {\n groupBase *= base;\n groupSize += 1;\n }\n groupSizes[base] = groupSize;\n groupBases[base] = groupBase;\n }\n\n */\n\n var zeros = [\n '',\n '0',\n '00',\n '000',\n '0000',\n '00000',\n '000000',\n '0000000',\n '00000000',\n '000000000',\n '0000000000',\n '00000000000',\n '000000000000',\n '0000000000000',\n '00000000000000',\n '000000000000000',\n '0000000000000000',\n '00000000000000000',\n '000000000000000000',\n '0000000000000000000',\n '00000000000000000000',\n '000000000000000000000',\n '0000000000000000000000',\n '00000000000000000000000',\n '000000000000000000000000',\n '0000000000000000000000000'\n ];\n\n var groupSizes = [\n 0, 0,\n 25, 16, 12, 11, 10, 9, 8,\n 8, 7, 7, 7, 7, 6, 6,\n 6, 6, 6, 6, 6, 5, 5,\n 5, 5, 5, 5, 5, 5, 5,\n 5, 5, 5, 5, 5, 5, 5\n ];\n\n var groupBases = [\n 0, 0,\n 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,\n 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,\n 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,\n 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,\n 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176\n ];\n\n BN.prototype.toString = function toString (base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n\n var out;\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = this.words[i];\n var word = (((w << off) | carry) & 0xffffff).toString(16);\n carry = (w >>> (24 - off)) & 0xffffff;\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n off += 2;\n if (off >= 26) {\n off -= 26;\n i--;\n }\n }\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n if (base === (base | 0) && base >= 2 && base <= 36) {\n // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n var groupSize = groupSizes[base];\n // var groupBase = Math.pow(base, groupSize);\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n while (!c.isZero()) {\n var r = c.modn(groupBase).toString(base);\n c = c.idivn(groupBase);\n\n if (!c.isZero()) {\n out = zeros[groupSize - r.length] + r + out;\n } else {\n out = r + out;\n }\n }\n if (this.isZero()) {\n out = '0' + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n assert(false, 'Base should be between 2 and 36');\n };\n\n BN.prototype.toNumber = function toNumber () {\n var ret = this.words[0];\n if (this.length === 2) {\n ret += this.words[1] * 0x4000000;\n } else if (this.length === 3 && this.words[2] === 0x01) {\n // NOTE: at this stage it is known that the top bit is set\n ret += 0x10000000000000 + (this.words[1] * 0x4000000);\n } else if (this.length > 2) {\n assert(false, 'Number can only safely store up to 53 bits');\n }\n return (this.negative !== 0) ? -ret : ret;\n };\n\n BN.prototype.toJSON = function toJSON () {\n return this.toString(16);\n };\n\n BN.prototype.toBuffer = function toBuffer (endian, length) {\n assert(typeof Buffer !== 'undefined');\n return this.toArrayLike(Buffer, endian, length);\n };\n\n BN.prototype.toArray = function toArray (endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n var byteLength = this.byteLength();\n var reqLength = length || Math.max(1, byteLength);\n assert(byteLength <= reqLength, 'byte array longer than desired length');\n assert(reqLength > 0, 'Requested array length <= 0');\n\n this.strip();\n var littleEndian = endian === 'le';\n var res = new ArrayType(reqLength);\n\n var b, i;\n var q = this.clone();\n if (!littleEndian) {\n // Assume big-endian\n for (i = 0; i < reqLength - byteLength; i++) {\n res[i] = 0;\n }\n\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[reqLength - i - 1] = b;\n }\n } else {\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[i] = b;\n }\n\n for (; i < reqLength; i++) {\n res[i] = 0;\n }\n }\n\n return res;\n };\n\n if (Math.clz32) {\n BN.prototype._countBits = function _countBits (w) {\n return 32 - Math.clz32(w);\n };\n } else {\n BN.prototype._countBits = function _countBits (w) {\n var t = w;\n var r = 0;\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\n return r + t;\n };\n }\n\n BN.prototype._zeroBits = function _zeroBits (w) {\n // Short-cut\n if (w === 0) return 26;\n\n var t = w;\n var r = 0;\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n if ((t & 0x1) === 0) {\n r++;\n }\n return r;\n };\n\n // Return number of used bits in a BN\n BN.prototype.bitLength = function bitLength () {\n var w = this.words[this.length - 1];\n var hi = this._countBits(w);\n return (this.length - 1) * 26 + hi;\n };\n\n function toBitArray (num) {\n var w = new Array(num.bitLength());\n\n for (var bit = 0; bit < w.length; bit++) {\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n w[bit] = (num.words[off] & (1 << wbit)) >>> wbit;\n }\n\n return w;\n }\n\n // Number of trailing zero bits\n BN.prototype.zeroBits = function zeroBits () {\n if (this.isZero()) return 0;\n\n var r = 0;\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n r += b;\n if (b !== 26) break;\n }\n return r;\n };\n\n BN.prototype.byteLength = function byteLength () {\n return Math.ceil(this.bitLength() / 8);\n };\n\n BN.prototype.toTwos = function toTwos (width) {\n if (this.negative !== 0) {\n return this.abs().inotn(width).iaddn(1);\n }\n return this.clone();\n };\n\n BN.prototype.fromTwos = function fromTwos (width) {\n if (this.testn(width - 1)) {\n return this.notn(width).iaddn(1).ineg();\n }\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg () {\n return this.negative !== 0;\n };\n\n // Return negative clone of `this`\n BN.prototype.neg = function neg () {\n return this.clone().ineg();\n };\n\n BN.prototype.ineg = function ineg () {\n if (!this.isZero()) {\n this.negative ^= 1;\n }\n\n return this;\n };\n\n // Or `num` with `this` in-place\n BN.prototype.iuor = function iuor (num) {\n while (this.length < num.length) {\n this.words[this.length++] = 0;\n }\n\n for (var i = 0; i < num.length; i++) {\n this.words[i] = this.words[i] | num.words[i];\n }\n\n return this.strip();\n };\n\n BN.prototype.ior = function ior (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuor(num);\n };\n\n // Or `num` with `this`\n BN.prototype.or = function or (num) {\n if (this.length > num.length) return this.clone().ior(num);\n return num.clone().ior(this);\n };\n\n BN.prototype.uor = function uor (num) {\n if (this.length > num.length) return this.clone().iuor(num);\n return num.clone().iuor(this);\n };\n\n // And `num` with `this` in-place\n BN.prototype.iuand = function iuand (num) {\n // b = min-length(num, this)\n var b;\n if (this.length > num.length) {\n b = num;\n } else {\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = this.words[i] & num.words[i];\n }\n\n this.length = b.length;\n\n return this.strip();\n };\n\n BN.prototype.iand = function iand (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuand(num);\n };\n\n // And `num` with `this`\n BN.prototype.and = function and (num) {\n if (this.length > num.length) return this.clone().iand(num);\n return num.clone().iand(this);\n };\n\n BN.prototype.uand = function uand (num) {\n if (this.length > num.length) return this.clone().iuand(num);\n return num.clone().iuand(this);\n };\n\n // Xor `num` with `this` in-place\n BN.prototype.iuxor = function iuxor (num) {\n // a.length > b.length\n var a;\n var b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = a.words[i] ^ b.words[i];\n }\n\n if (this !== a) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = a.length;\n\n return this.strip();\n };\n\n BN.prototype.ixor = function ixor (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuxor(num);\n };\n\n // Xor `num` with `this`\n BN.prototype.xor = function xor (num) {\n if (this.length > num.length) return this.clone().ixor(num);\n return num.clone().ixor(this);\n };\n\n BN.prototype.uxor = function uxor (num) {\n if (this.length > num.length) return this.clone().iuxor(num);\n return num.clone().iuxor(this);\n };\n\n // Not ``this`` with ``width`` bitwidth\n BN.prototype.inotn = function inotn (width) {\n assert(typeof width === 'number' && width >= 0);\n\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26;\n\n // Extend the buffer with leading zeroes\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n }\n\n // Handle complete words\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n }\n\n // Handle the residue\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));\n }\n\n // And remove leading zeroes\n return this.strip();\n };\n\n BN.prototype.notn = function notn (width) {\n return this.clone().inotn(width);\n };\n\n // Set `bit` of `this`\n BN.prototype.setn = function setn (bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\n\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n this._expand(off + 1);\n\n if (val) {\n this.words[off] = this.words[off] | (1 << wbit);\n } else {\n this.words[off] = this.words[off] & ~(1 << wbit);\n }\n\n return this.strip();\n };\n\n // Add `num` to `this` in-place\n BN.prototype.iadd = function iadd (num) {\n var r;\n\n // negative + positive\n if (this.negative !== 0 && num.negative === 0) {\n this.negative = 0;\n r = this.isub(num);\n this.negative ^= 1;\n return this._normSign();\n\n // positive + negative\n } else if (this.negative === 0 && num.negative !== 0) {\n num.negative = 0;\n r = this.isub(num);\n num.negative = 1;\n return r._normSign();\n }\n\n // a.length > b.length\n var a, b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n this.length = a.length;\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++;\n // Copy the rest of the words\n } else if (a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n return this;\n };\n\n // Add `num` to `this`\n BN.prototype.add = function add (num) {\n var res;\n if (num.negative !== 0 && this.negative === 0) {\n num.negative = 0;\n res = this.sub(num);\n num.negative ^= 1;\n return res;\n } else if (num.negative === 0 && this.negative !== 0) {\n this.negative = 0;\n res = num.sub(this);\n this.negative = 1;\n return res;\n }\n\n if (this.length > num.length) return this.clone().iadd(num);\n\n return num.clone().iadd(this);\n };\n\n // Subtract `num` from `this` in-place\n BN.prototype.isub = function isub (num) {\n // this - (-num) = this + num\n if (num.negative !== 0) {\n num.negative = 0;\n var r = this.iadd(num);\n num.negative = 1;\n return r._normSign();\n\n // -this - num = -(this + num)\n } else if (this.negative !== 0) {\n this.negative = 0;\n this.iadd(num);\n this.negative = 1;\n return this._normSign();\n }\n\n // At this point both numbers are positive\n var cmp = this.cmp(num);\n\n // Optimization - zeroify\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n }\n\n // a > b\n var a, b;\n if (cmp > 0) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n\n // Copy rest of the words\n if (carry === 0 && i < a.length && a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = Math.max(this.length, i);\n\n if (a !== this) {\n this.negative = 1;\n }\n\n return this.strip();\n };\n\n // Subtract `num` from `this`\n BN.prototype.sub = function sub (num) {\n return this.clone().isub(num);\n };\n\n function smallMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n var len = (self.length + num.length) | 0;\n out.length = len;\n len = (len - 1) | 0;\n\n // Peel one iteration (compiler can't do it, because of code complexity)\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n var carry = (r / 0x4000000) | 0;\n out.words[0] = lo;\n\n for (var k = 1; k < len; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = carry >>> 26;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = (k - j) | 0;\n a = self.words[i] | 0;\n b = num.words[j] | 0;\n r = a * b + rword;\n ncarry += (r / 0x4000000) | 0;\n rword = r & 0x3ffffff;\n }\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n // TODO(indutny): it may be reasonable to omit it for users who don't need\n // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n // multiplication (like elliptic secp256k1).\n var comb10MulTo = function comb10MulTo (self, num, out) {\n var a = self.words;\n var b = num.words;\n var o = out.words;\n var c = 0;\n var lo;\n var mid;\n var hi;\n var a0 = a[0] | 0;\n var al0 = a0 & 0x1fff;\n var ah0 = a0 >>> 13;\n var a1 = a[1] | 0;\n var al1 = a1 & 0x1fff;\n var ah1 = a1 >>> 13;\n var a2 = a[2] | 0;\n var al2 = a2 & 0x1fff;\n var ah2 = a2 >>> 13;\n var a3 = a[3] | 0;\n var al3 = a3 & 0x1fff;\n var ah3 = a3 >>> 13;\n var a4 = a[4] | 0;\n var al4 = a4 & 0x1fff;\n var ah4 = a4 >>> 13;\n var a5 = a[5] | 0;\n var al5 = a5 & 0x1fff;\n var ah5 = a5 >>> 13;\n var a6 = a[6] | 0;\n var al6 = a6 & 0x1fff;\n var ah6 = a6 >>> 13;\n var a7 = a[7] | 0;\n var al7 = a7 & 0x1fff;\n var ah7 = a7 >>> 13;\n var a8 = a[8] | 0;\n var al8 = a8 & 0x1fff;\n var ah8 = a8 >>> 13;\n var a9 = a[9] | 0;\n var al9 = a9 & 0x1fff;\n var ah9 = a9 >>> 13;\n var b0 = b[0] | 0;\n var bl0 = b0 & 0x1fff;\n var bh0 = b0 >>> 13;\n var b1 = b[1] | 0;\n var bl1 = b1 & 0x1fff;\n var bh1 = b1 >>> 13;\n var b2 = b[2] | 0;\n var bl2 = b2 & 0x1fff;\n var bh2 = b2 >>> 13;\n var b3 = b[3] | 0;\n var bl3 = b3 & 0x1fff;\n var bh3 = b3 >>> 13;\n var b4 = b[4] | 0;\n var bl4 = b4 & 0x1fff;\n var bh4 = b4 >>> 13;\n var b5 = b[5] | 0;\n var bl5 = b5 & 0x1fff;\n var bh5 = b5 >>> 13;\n var b6 = b[6] | 0;\n var bl6 = b6 & 0x1fff;\n var bh6 = b6 >>> 13;\n var b7 = b[7] | 0;\n var bl7 = b7 & 0x1fff;\n var bh7 = b7 >>> 13;\n var b8 = b[8] | 0;\n var bl8 = b8 & 0x1fff;\n var bh8 = b8 >>> 13;\n var b9 = b[9] | 0;\n var bl9 = b9 & 0x1fff;\n var bh9 = b9 >>> 13;\n\n out.negative = self.negative ^ num.negative;\n out.length = 19;\n /* k = 0 */\n lo = Math.imul(al0, bl0);\n mid = Math.imul(al0, bh0);\n mid = (mid + Math.imul(ah0, bl0)) | 0;\n hi = Math.imul(ah0, bh0);\n var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;\n w0 &= 0x3ffffff;\n /* k = 1 */\n lo = Math.imul(al1, bl0);\n mid = Math.imul(al1, bh0);\n mid = (mid + Math.imul(ah1, bl0)) | 0;\n hi = Math.imul(ah1, bh0);\n lo = (lo + Math.imul(al0, bl1)) | 0;\n mid = (mid + Math.imul(al0, bh1)) | 0;\n mid = (mid + Math.imul(ah0, bl1)) | 0;\n hi = (hi + Math.imul(ah0, bh1)) | 0;\n var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;\n w1 &= 0x3ffffff;\n /* k = 2 */\n lo = Math.imul(al2, bl0);\n mid = Math.imul(al2, bh0);\n mid = (mid + Math.imul(ah2, bl0)) | 0;\n hi = Math.imul(ah2, bh0);\n lo = (lo + Math.imul(al1, bl1)) | 0;\n mid = (mid + Math.imul(al1, bh1)) | 0;\n mid = (mid + Math.imul(ah1, bl1)) | 0;\n hi = (hi + Math.imul(ah1, bh1)) | 0;\n lo = (lo + Math.imul(al0, bl2)) | 0;\n mid = (mid + Math.imul(al0, bh2)) | 0;\n mid = (mid + Math.imul(ah0, bl2)) | 0;\n hi = (hi + Math.imul(ah0, bh2)) | 0;\n var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;\n w2 &= 0x3ffffff;\n /* k = 3 */\n lo = Math.imul(al3, bl0);\n mid = Math.imul(al3, bh0);\n mid = (mid + Math.imul(ah3, bl0)) | 0;\n hi = Math.imul(ah3, bh0);\n lo = (lo + Math.imul(al2, bl1)) | 0;\n mid = (mid + Math.imul(al2, bh1)) | 0;\n mid = (mid + Math.imul(ah2, bl1)) | 0;\n hi = (hi + Math.imul(ah2, bh1)) | 0;\n lo = (lo + Math.imul(al1, bl2)) | 0;\n mid = (mid + Math.imul(al1, bh2)) | 0;\n mid = (mid + Math.imul(ah1, bl2)) | 0;\n hi = (hi + Math.imul(ah1, bh2)) | 0;\n lo = (lo + Math.imul(al0, bl3)) | 0;\n mid = (mid + Math.imul(al0, bh3)) | 0;\n mid = (mid + Math.imul(ah0, bl3)) | 0;\n hi = (hi + Math.imul(ah0, bh3)) | 0;\n var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;\n w3 &= 0x3ffffff;\n /* k = 4 */\n lo = Math.imul(al4, bl0);\n mid = Math.imul(al4, bh0);\n mid = (mid + Math.imul(ah4, bl0)) | 0;\n hi = Math.imul(ah4, bh0);\n lo = (lo + Math.imul(al3, bl1)) | 0;\n mid = (mid + Math.imul(al3, bh1)) | 0;\n mid = (mid + Math.imul(ah3, bl1)) | 0;\n hi = (hi + Math.imul(ah3, bh1)) | 0;\n lo = (lo + Math.imul(al2, bl2)) | 0;\n mid = (mid + Math.imul(al2, bh2)) | 0;\n mid = (mid + Math.imul(ah2, bl2)) | 0;\n hi = (hi + Math.imul(ah2, bh2)) | 0;\n lo = (lo + Math.imul(al1, bl3)) | 0;\n mid = (mid + Math.imul(al1, bh3)) | 0;\n mid = (mid + Math.imul(ah1, bl3)) | 0;\n hi = (hi + Math.imul(ah1, bh3)) | 0;\n lo = (lo + Math.imul(al0, bl4)) | 0;\n mid = (mid + Math.imul(al0, bh4)) | 0;\n mid = (mid + Math.imul(ah0, bl4)) | 0;\n hi = (hi + Math.imul(ah0, bh4)) | 0;\n var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;\n w4 &= 0x3ffffff;\n /* k = 5 */\n lo = Math.imul(al5, bl0);\n mid = Math.imul(al5, bh0);\n mid = (mid + Math.imul(ah5, bl0)) | 0;\n hi = Math.imul(ah5, bh0);\n lo = (lo + Math.imul(al4, bl1)) | 0;\n mid = (mid + Math.imul(al4, bh1)) | 0;\n mid = (mid + Math.imul(ah4, bl1)) | 0;\n hi = (hi + Math.imul(ah4, bh1)) | 0;\n lo = (lo + Math.imul(al3, bl2)) | 0;\n mid = (mid + Math.imul(al3, bh2)) | 0;\n mid = (mid + Math.imul(ah3, bl2)) | 0;\n hi = (hi + Math.imul(ah3, bh2)) | 0;\n lo = (lo + Math.imul(al2, bl3)) | 0;\n mid = (mid + Math.imul(al2, bh3)) | 0;\n mid = (mid + Math.imul(ah2, bl3)) | 0;\n hi = (hi + Math.imul(ah2, bh3)) | 0;\n lo = (lo + Math.imul(al1, bl4)) | 0;\n mid = (mid + Math.imul(al1, bh4)) | 0;\n mid = (mid + Math.imul(ah1, bl4)) | 0;\n hi = (hi + Math.imul(ah1, bh4)) | 0;\n lo = (lo + Math.imul(al0, bl5)) | 0;\n mid = (mid + Math.imul(al0, bh5)) | 0;\n mid = (mid + Math.imul(ah0, bl5)) | 0;\n hi = (hi + Math.imul(ah0, bh5)) | 0;\n var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;\n w5 &= 0x3ffffff;\n /* k = 6 */\n lo = Math.imul(al6, bl0);\n mid = Math.imul(al6, bh0);\n mid = (mid + Math.imul(ah6, bl0)) | 0;\n hi = Math.imul(ah6, bh0);\n lo = (lo + Math.imul(al5, bl1)) | 0;\n mid = (mid + Math.imul(al5, bh1)) | 0;\n mid = (mid + Math.imul(ah5, bl1)) | 0;\n hi = (hi + Math.imul(ah5, bh1)) | 0;\n lo = (lo + Math.imul(al4, bl2)) | 0;\n mid = (mid + Math.imul(al4, bh2)) | 0;\n mid = (mid + Math.imul(ah4, bl2)) | 0;\n hi = (hi + Math.imul(ah4, bh2)) | 0;\n lo = (lo + Math.imul(al3, bl3)) | 0;\n mid = (mid + Math.imul(al3, bh3)) | 0;\n mid = (mid + Math.imul(ah3, bl3)) | 0;\n hi = (hi + Math.imul(ah3, bh3)) | 0;\n lo = (lo + Math.imul(al2, bl4)) | 0;\n mid = (mid + Math.imul(al2, bh4)) | 0;\n mid = (mid + Math.imul(ah2, bl4)) | 0;\n hi = (hi + Math.imul(ah2, bh4)) | 0;\n lo = (lo + Math.imul(al1, bl5)) | 0;\n mid = (mid + Math.imul(al1, bh5)) | 0;\n mid = (mid + Math.imul(ah1, bl5)) | 0;\n hi = (hi + Math.imul(ah1, bh5)) | 0;\n lo = (lo + Math.imul(al0, bl6)) | 0;\n mid = (mid + Math.imul(al0, bh6)) | 0;\n mid = (mid + Math.imul(ah0, bl6)) | 0;\n hi = (hi + Math.imul(ah0, bh6)) | 0;\n var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;\n w6 &= 0x3ffffff;\n /* k = 7 */\n lo = Math.imul(al7, bl0);\n mid = Math.imul(al7, bh0);\n mid = (mid + Math.imul(ah7, bl0)) | 0;\n hi = Math.imul(ah7, bh0);\n lo = (lo + Math.imul(al6, bl1)) | 0;\n mid = (mid + Math.imul(al6, bh1)) | 0;\n mid = (mid + Math.imul(ah6, bl1)) | 0;\n hi = (hi + Math.imul(ah6, bh1)) | 0;\n lo = (lo + Math.imul(al5, bl2)) | 0;\n mid = (mid + Math.imul(al5, bh2)) | 0;\n mid = (mid + Math.imul(ah5, bl2)) | 0;\n hi = (hi + Math.imul(ah5, bh2)) | 0;\n lo = (lo + Math.imul(al4, bl3)) | 0;\n mid = (mid + Math.imul(al4, bh3)) | 0;\n mid = (mid + Math.imul(ah4, bl3)) | 0;\n hi = (hi + Math.imul(ah4, bh3)) | 0;\n lo = (lo + Math.imul(al3, bl4)) | 0;\n mid = (mid + Math.imul(al3, bh4)) | 0;\n mid = (mid + Math.imul(ah3, bl4)) | 0;\n hi = (hi + Math.imul(ah3, bh4)) | 0;\n lo = (lo + Math.imul(al2, bl5)) | 0;\n mid = (mid + Math.imul(al2, bh5)) | 0;\n mid = (mid + Math.imul(ah2, bl5)) | 0;\n hi = (hi + Math.imul(ah2, bh5)) | 0;\n lo = (lo + Math.imul(al1, bl6)) | 0;\n mid = (mid + Math.imul(al1, bh6)) | 0;\n mid = (mid + Math.imul(ah1, bl6)) | 0;\n hi = (hi + Math.imul(ah1, bh6)) | 0;\n lo = (lo + Math.imul(al0, bl7)) | 0;\n mid = (mid + Math.imul(al0, bh7)) | 0;\n mid = (mid + Math.imul(ah0, bl7)) | 0;\n hi = (hi + Math.imul(ah0, bh7)) | 0;\n var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;\n w7 &= 0x3ffffff;\n /* k = 8 */\n lo = Math.imul(al8, bl0);\n mid = Math.imul(al8, bh0);\n mid = (mid + Math.imul(ah8, bl0)) | 0;\n hi = Math.imul(ah8, bh0);\n lo = (lo + Math.imul(al7, bl1)) | 0;\n mid = (mid + Math.imul(al7, bh1)) | 0;\n mid = (mid + Math.imul(ah7, bl1)) | 0;\n hi = (hi + Math.imul(ah7, bh1)) | 0;\n lo = (lo + Math.imul(al6, bl2)) | 0;\n mid = (mid + Math.imul(al6, bh2)) | 0;\n mid = (mid + Math.imul(ah6, bl2)) | 0;\n hi = (hi + Math.imul(ah6, bh2)) | 0;\n lo = (lo + Math.imul(al5, bl3)) | 0;\n mid = (mid + Math.imul(al5, bh3)) | 0;\n mid = (mid + Math.imul(ah5, bl3)) | 0;\n hi = (hi + Math.imul(ah5, bh3)) | 0;\n lo = (lo + Math.imul(al4, bl4)) | 0;\n mid = (mid + Math.imul(al4, bh4)) | 0;\n mid = (mid + Math.imul(ah4, bl4)) | 0;\n hi = (hi + Math.imul(ah4, bh4)) | 0;\n lo = (lo + Math.imul(al3, bl5)) | 0;\n mid = (mid + Math.imul(al3, bh5)) | 0;\n mid = (mid + Math.imul(ah3, bl5)) | 0;\n hi = (hi + Math.imul(ah3, bh5)) | 0;\n lo = (lo + Math.imul(al2, bl6)) | 0;\n mid = (mid + Math.imul(al2, bh6)) | 0;\n mid = (mid + Math.imul(ah2, bl6)) | 0;\n hi = (hi + Math.imul(ah2, bh6)) | 0;\n lo = (lo + Math.imul(al1, bl7)) | 0;\n mid = (mid + Math.imul(al1, bh7)) | 0;\n mid = (mid + Math.imul(ah1, bl7)) | 0;\n hi = (hi + Math.imul(ah1, bh7)) | 0;\n lo = (lo + Math.imul(al0, bl8)) | 0;\n mid = (mid + Math.imul(al0, bh8)) | 0;\n mid = (mid + Math.imul(ah0, bl8)) | 0;\n hi = (hi + Math.imul(ah0, bh8)) | 0;\n var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;\n w8 &= 0x3ffffff;\n /* k = 9 */\n lo = Math.imul(al9, bl0);\n mid = Math.imul(al9, bh0);\n mid = (mid + Math.imul(ah9, bl0)) | 0;\n hi = Math.imul(ah9, bh0);\n lo = (lo + Math.imul(al8, bl1)) | 0;\n mid = (mid + Math.imul(al8, bh1)) | 0;\n mid = (mid + Math.imul(ah8, bl1)) | 0;\n hi = (hi + Math.imul(ah8, bh1)) | 0;\n lo = (lo + Math.imul(al7, bl2)) | 0;\n mid = (mid + Math.imul(al7, bh2)) | 0;\n mid = (mid + Math.imul(ah7, bl2)) | 0;\n hi = (hi + Math.imul(ah7, bh2)) | 0;\n lo = (lo + Math.imul(al6, bl3)) | 0;\n mid = (mid + Math.imul(al6, bh3)) | 0;\n mid = (mid + Math.imul(ah6, bl3)) | 0;\n hi = (hi + Math.imul(ah6, bh3)) | 0;\n lo = (lo + Math.imul(al5, bl4)) | 0;\n mid = (mid + Math.imul(al5, bh4)) | 0;\n mid = (mid + Math.imul(ah5, bl4)) | 0;\n hi = (hi + Math.imul(ah5, bh4)) | 0;\n lo = (lo + Math.imul(al4, bl5)) | 0;\n mid = (mid + Math.imul(al4, bh5)) | 0;\n mid = (mid + Math.imul(ah4, bl5)) | 0;\n hi = (hi + Math.imul(ah4, bh5)) | 0;\n lo = (lo + Math.imul(al3, bl6)) | 0;\n mid = (mid + Math.imul(al3, bh6)) | 0;\n mid = (mid + Math.imul(ah3, bl6)) | 0;\n hi = (hi + Math.imul(ah3, bh6)) | 0;\n lo = (lo + Math.imul(al2, bl7)) | 0;\n mid = (mid + Math.imul(al2, bh7)) | 0;\n mid = (mid + Math.imul(ah2, bl7)) | 0;\n hi = (hi + Math.imul(ah2, bh7)) | 0;\n lo = (lo + Math.imul(al1, bl8)) | 0;\n mid = (mid + Math.imul(al1, bh8)) | 0;\n mid = (mid + Math.imul(ah1, bl8)) | 0;\n hi = (hi + Math.imul(ah1, bh8)) | 0;\n lo = (lo + Math.imul(al0, bl9)) | 0;\n mid = (mid + Math.imul(al0, bh9)) | 0;\n mid = (mid + Math.imul(ah0, bl9)) | 0;\n hi = (hi + Math.imul(ah0, bh9)) | 0;\n var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;\n w9 &= 0x3ffffff;\n /* k = 10 */\n lo = Math.imul(al9, bl1);\n mid = Math.imul(al9, bh1);\n mid = (mid + Math.imul(ah9, bl1)) | 0;\n hi = Math.imul(ah9, bh1);\n lo = (lo + Math.imul(al8, bl2)) | 0;\n mid = (mid + Math.imul(al8, bh2)) | 0;\n mid = (mid + Math.imul(ah8, bl2)) | 0;\n hi = (hi + Math.imul(ah8, bh2)) | 0;\n lo = (lo + Math.imul(al7, bl3)) | 0;\n mid = (mid + Math.imul(al7, bh3)) | 0;\n mid = (mid + Math.imul(ah7, bl3)) | 0;\n hi = (hi + Math.imul(ah7, bh3)) | 0;\n lo = (lo + Math.imul(al6, bl4)) | 0;\n mid = (mid + Math.imul(al6, bh4)) | 0;\n mid = (mid + Math.imul(ah6, bl4)) | 0;\n hi = (hi + Math.imul(ah6, bh4)) | 0;\n lo = (lo + Math.imul(al5, bl5)) | 0;\n mid = (mid + Math.imul(al5, bh5)) | 0;\n mid = (mid + Math.imul(ah5, bl5)) | 0;\n hi = (hi + Math.imul(ah5, bh5)) | 0;\n lo = (lo + Math.imul(al4, bl6)) | 0;\n mid = (mid + Math.imul(al4, bh6)) | 0;\n mid = (mid + Math.imul(ah4, bl6)) | 0;\n hi = (hi + Math.imul(ah4, bh6)) | 0;\n lo = (lo + Math.imul(al3, bl7)) | 0;\n mid = (mid + Math.imul(al3, bh7)) | 0;\n mid = (mid + Math.imul(ah3, bl7)) | 0;\n hi = (hi + Math.imul(ah3, bh7)) | 0;\n lo = (lo + Math.imul(al2, bl8)) | 0;\n mid = (mid + Math.imul(al2, bh8)) | 0;\n mid = (mid + Math.imul(ah2, bl8)) | 0;\n hi = (hi + Math.imul(ah2, bh8)) | 0;\n lo = (lo + Math.imul(al1, bl9)) | 0;\n mid = (mid + Math.imul(al1, bh9)) | 0;\n mid = (mid + Math.imul(ah1, bl9)) | 0;\n hi = (hi + Math.imul(ah1, bh9)) | 0;\n var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;\n w10 &= 0x3ffffff;\n /* k = 11 */\n lo = Math.imul(al9, bl2);\n mid = Math.imul(al9, bh2);\n mid = (mid + Math.imul(ah9, bl2)) | 0;\n hi = Math.imul(ah9, bh2);\n lo = (lo + Math.imul(al8, bl3)) | 0;\n mid = (mid + Math.imul(al8, bh3)) | 0;\n mid = (mid + Math.imul(ah8, bl3)) | 0;\n hi = (hi + Math.imul(ah8, bh3)) | 0;\n lo = (lo + Math.imul(al7, bl4)) | 0;\n mid = (mid + Math.imul(al7, bh4)) | 0;\n mid = (mid + Math.imul(ah7, bl4)) | 0;\n hi = (hi + Math.imul(ah7, bh4)) | 0;\n lo = (lo + Math.imul(al6, bl5)) | 0;\n mid = (mid + Math.imul(al6, bh5)) | 0;\n mid = (mid + Math.imul(ah6, bl5)) | 0;\n hi = (hi + Math.imul(ah6, bh5)) | 0;\n lo = (lo + Math.imul(al5, bl6)) | 0;\n mid = (mid + Math.imul(al5, bh6)) | 0;\n mid = (mid + Math.imul(ah5, bl6)) | 0;\n hi = (hi + Math.imul(ah5, bh6)) | 0;\n lo = (lo + Math.imul(al4, bl7)) | 0;\n mid = (mid + Math.imul(al4, bh7)) | 0;\n mid = (mid + Math.imul(ah4, bl7)) | 0;\n hi = (hi + Math.imul(ah4, bh7)) | 0;\n lo = (lo + Math.imul(al3, bl8)) | 0;\n mid = (mid + Math.imul(al3, bh8)) | 0;\n mid = (mid + Math.imul(ah3, bl8)) | 0;\n hi = (hi + Math.imul(ah3, bh8)) | 0;\n lo = (lo + Math.imul(al2, bl9)) | 0;\n mid = (mid + Math.imul(al2, bh9)) | 0;\n mid = (mid + Math.imul(ah2, bl9)) | 0;\n hi = (hi + Math.imul(ah2, bh9)) | 0;\n var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;\n w11 &= 0x3ffffff;\n /* k = 12 */\n lo = Math.imul(al9, bl3);\n mid = Math.imul(al9, bh3);\n mid = (mid + Math.imul(ah9, bl3)) | 0;\n hi = Math.imul(ah9, bh3);\n lo = (lo + Math.imul(al8, bl4)) | 0;\n mid = (mid + Math.imul(al8, bh4)) | 0;\n mid = (mid + Math.imul(ah8, bl4)) | 0;\n hi = (hi + Math.imul(ah8, bh4)) | 0;\n lo = (lo + Math.imul(al7, bl5)) | 0;\n mid = (mid + Math.imul(al7, bh5)) | 0;\n mid = (mid + Math.imul(ah7, bl5)) | 0;\n hi = (hi + Math.imul(ah7, bh5)) | 0;\n lo = (lo + Math.imul(al6, bl6)) | 0;\n mid = (mid + Math.imul(al6, bh6)) | 0;\n mid = (mid + Math.imul(ah6, bl6)) | 0;\n hi = (hi + Math.imul(ah6, bh6)) | 0;\n lo = (lo + Math.imul(al5, bl7)) | 0;\n mid = (mid + Math.imul(al5, bh7)) | 0;\n mid = (mid + Math.imul(ah5, bl7)) | 0;\n hi = (hi + Math.imul(ah5, bh7)) | 0;\n lo = (lo + Math.imul(al4, bl8)) | 0;\n mid = (mid + Math.imul(al4, bh8)) | 0;\n mid = (mid + Math.imul(ah4, bl8)) | 0;\n hi = (hi + Math.imul(ah4, bh8)) | 0;\n lo = (lo + Math.imul(al3, bl9)) | 0;\n mid = (mid + Math.imul(al3, bh9)) | 0;\n mid = (mid + Math.imul(ah3, bl9)) | 0;\n hi = (hi + Math.imul(ah3, bh9)) | 0;\n var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;\n w12 &= 0x3ffffff;\n /* k = 13 */\n lo = Math.imul(al9, bl4);\n mid = Math.imul(al9, bh4);\n mid = (mid + Math.imul(ah9, bl4)) | 0;\n hi = Math.imul(ah9, bh4);\n lo = (lo + Math.imul(al8, bl5)) | 0;\n mid = (mid + Math.imul(al8, bh5)) | 0;\n mid = (mid + Math.imul(ah8, bl5)) | 0;\n hi = (hi + Math.imul(ah8, bh5)) | 0;\n lo = (lo + Math.imul(al7, bl6)) | 0;\n mid = (mid + Math.imul(al7, bh6)) | 0;\n mid = (mid + Math.imul(ah7, bl6)) | 0;\n hi = (hi + Math.imul(ah7, bh6)) | 0;\n lo = (lo + Math.imul(al6, bl7)) | 0;\n mid = (mid + Math.imul(al6, bh7)) | 0;\n mid = (mid + Math.imul(ah6, bl7)) | 0;\n hi = (hi + Math.imul(ah6, bh7)) | 0;\n lo = (lo + Math.imul(al5, bl8)) | 0;\n mid = (mid + Math.imul(al5, bh8)) | 0;\n mid = (mid + Math.imul(ah5, bl8)) | 0;\n hi = (hi + Math.imul(ah5, bh8)) | 0;\n lo = (lo + Math.imul(al4, bl9)) | 0;\n mid = (mid + Math.imul(al4, bh9)) | 0;\n mid = (mid + Math.imul(ah4, bl9)) | 0;\n hi = (hi + Math.imul(ah4, bh9)) | 0;\n var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;\n w13 &= 0x3ffffff;\n /* k = 14 */\n lo = Math.imul(al9, bl5);\n mid = Math.imul(al9, bh5);\n mid = (mid + Math.imul(ah9, bl5)) | 0;\n hi = Math.imul(ah9, bh5);\n lo = (lo + Math.imul(al8, bl6)) | 0;\n mid = (mid + Math.imul(al8, bh6)) | 0;\n mid = (mid + Math.imul(ah8, bl6)) | 0;\n hi = (hi + Math.imul(ah8, bh6)) | 0;\n lo = (lo + Math.imul(al7, bl7)) | 0;\n mid = (mid + Math.imul(al7, bh7)) | 0;\n mid = (mid + Math.imul(ah7, bl7)) | 0;\n hi = (hi + Math.imul(ah7, bh7)) | 0;\n lo = (lo + Math.imul(al6, bl8)) | 0;\n mid = (mid + Math.imul(al6, bh8)) | 0;\n mid = (mid + Math.imul(ah6, bl8)) | 0;\n hi = (hi + Math.imul(ah6, bh8)) | 0;\n lo = (lo + Math.imul(al5, bl9)) | 0;\n mid = (mid + Math.imul(al5, bh9)) | 0;\n mid = (mid + Math.imul(ah5, bl9)) | 0;\n hi = (hi + Math.imul(ah5, bh9)) | 0;\n var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;\n w14 &= 0x3ffffff;\n /* k = 15 */\n lo = Math.imul(al9, bl6);\n mid = Math.imul(al9, bh6);\n mid = (mid + Math.imul(ah9, bl6)) | 0;\n hi = Math.imul(ah9, bh6);\n lo = (lo + Math.imul(al8, bl7)) | 0;\n mid = (mid + Math.imul(al8, bh7)) | 0;\n mid = (mid + Math.imul(ah8, bl7)) | 0;\n hi = (hi + Math.imul(ah8, bh7)) | 0;\n lo = (lo + Math.imul(al7, bl8)) | 0;\n mid = (mid + Math.imul(al7, bh8)) | 0;\n mid = (mid + Math.imul(ah7, bl8)) | 0;\n hi = (hi + Math.imul(ah7, bh8)) | 0;\n lo = (lo + Math.imul(al6, bl9)) | 0;\n mid = (mid + Math.imul(al6, bh9)) | 0;\n mid = (mid + Math.imul(ah6, bl9)) | 0;\n hi = (hi + Math.imul(ah6, bh9)) | 0;\n var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;\n w15 &= 0x3ffffff;\n /* k = 16 */\n lo = Math.imul(al9, bl7);\n mid = Math.imul(al9, bh7);\n mid = (mid + Math.imul(ah9, bl7)) | 0;\n hi = Math.imul(ah9, bh7);\n lo = (lo + Math.imul(al8, bl8)) | 0;\n mid = (mid + Math.imul(al8, bh8)) | 0;\n mid = (mid + Math.imul(ah8, bl8)) | 0;\n hi = (hi + Math.imul(ah8, bh8)) | 0;\n lo = (lo + Math.imul(al7, bl9)) | 0;\n mid = (mid + Math.imul(al7, bh9)) | 0;\n mid = (mid + Math.imul(ah7, bl9)) | 0;\n hi = (hi + Math.imul(ah7, bh9)) | 0;\n var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;\n w16 &= 0x3ffffff;\n /* k = 17 */\n lo = Math.imul(al9, bl8);\n mid = Math.imul(al9, bh8);\n mid = (mid + Math.imul(ah9, bl8)) | 0;\n hi = Math.imul(ah9, bh8);\n lo = (lo + Math.imul(al8, bl9)) | 0;\n mid = (mid + Math.imul(al8, bh9)) | 0;\n mid = (mid + Math.imul(ah8, bl9)) | 0;\n hi = (hi + Math.imul(ah8, bh9)) | 0;\n var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;\n w17 &= 0x3ffffff;\n /* k = 18 */\n lo = Math.imul(al9, bl9);\n mid = Math.imul(al9, bh9);\n mid = (mid + Math.imul(ah9, bl9)) | 0;\n hi = Math.imul(ah9, bh9);\n var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;\n w18 &= 0x3ffffff;\n o[0] = w0;\n o[1] = w1;\n o[2] = w2;\n o[3] = w3;\n o[4] = w4;\n o[5] = w5;\n o[6] = w6;\n o[7] = w7;\n o[8] = w8;\n o[9] = w9;\n o[10] = w10;\n o[11] = w11;\n o[12] = w12;\n o[13] = w13;\n o[14] = w14;\n o[15] = w15;\n o[16] = w16;\n o[17] = w17;\n o[18] = w18;\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n return out;\n };\n\n // Polyfill comb\n if (!Math.imul) {\n comb10MulTo = smallMulTo;\n }\n\n function bigMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n out.length = self.length + num.length;\n\n var carry = 0;\n var hncarry = 0;\n for (var k = 0; k < out.length - 1; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = hncarry;\n hncarry = 0;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j;\n var a = self.words[i] | 0;\n var b = num.words[j] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;\n lo = (lo + rword) | 0;\n rword = lo & 0x3ffffff;\n ncarry = (ncarry + (lo >>> 26)) | 0;\n\n hncarry += ncarry >>> 26;\n ncarry &= 0x3ffffff;\n }\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\n if (carry !== 0) {\n out.words[k] = carry;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n function jumboMulTo (self, num, out) {\n var fftm = new FFTM();\n return fftm.mulp(self, num, out);\n }\n\n BN.prototype.mulTo = function mulTo (num, out) {\n var res;\n var len = this.length + num.length;\n if (this.length === 10 && num.length === 10) {\n res = comb10MulTo(this, num, out);\n } else if (len < 63) {\n res = smallMulTo(this, num, out);\n } else if (len < 1024) {\n res = bigMulTo(this, num, out);\n } else {\n res = jumboMulTo(this, num, out);\n }\n\n return res;\n };\n\n // Cooley-Tukey algorithm for FFT\n // slightly revisited to rely on looping instead of recursion\n\n function FFTM (x, y) {\n this.x = x;\n this.y = y;\n }\n\n FFTM.prototype.makeRBT = function makeRBT (N) {\n var t = new Array(N);\n var l = BN.prototype._countBits(N) - 1;\n for (var i = 0; i < N; i++) {\n t[i] = this.revBin(i, l, N);\n }\n\n return t;\n };\n\n // Returns binary-reversed representation of `x`\n FFTM.prototype.revBin = function revBin (x, l, N) {\n if (x === 0 || x === N - 1) return x;\n\n var rb = 0;\n for (var i = 0; i < l; i++) {\n rb |= (x & 1) << (l - i - 1);\n x >>= 1;\n }\n\n return rb;\n };\n\n // Performs \"tweedling\" phase, therefore 'emulating'\n // behaviour of the recursive algorithm\n FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {\n for (var i = 0; i < N; i++) {\n rtws[i] = rws[rbt[i]];\n itws[i] = iws[rbt[i]];\n }\n };\n\n FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {\n this.permute(rbt, rws, iws, rtws, itws, N);\n\n for (var s = 1; s < N; s <<= 1) {\n var l = s << 1;\n\n var rtwdf = Math.cos(2 * Math.PI / l);\n var itwdf = Math.sin(2 * Math.PI / l);\n\n for (var p = 0; p < N; p += l) {\n var rtwdf_ = rtwdf;\n var itwdf_ = itwdf;\n\n for (var j = 0; j < s; j++) {\n var re = rtws[p + j];\n var ie = itws[p + j];\n\n var ro = rtws[p + j + s];\n var io = itws[p + j + s];\n\n var rx = rtwdf_ * ro - itwdf_ * io;\n\n io = rtwdf_ * io + itwdf_ * ro;\n ro = rx;\n\n rtws[p + j] = re + ro;\n itws[p + j] = ie + io;\n\n rtws[p + j + s] = re - ro;\n itws[p + j + s] = ie - io;\n\n /* jshint maxdepth : false */\n if (j !== l) {\n rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n\n itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n rtwdf_ = rx;\n }\n }\n }\n }\n };\n\n FFTM.prototype.guessLen13b = function guessLen13b (n, m) {\n var N = Math.max(m, n) | 1;\n var odd = N & 1;\n var i = 0;\n for (N = N / 2 | 0; N; N = N >>> 1) {\n i++;\n }\n\n return 1 << i + 1 + odd;\n };\n\n FFTM.prototype.conjugate = function conjugate (rws, iws, N) {\n if (N <= 1) return;\n\n for (var i = 0; i < N / 2; i++) {\n var t = rws[i];\n\n rws[i] = rws[N - i - 1];\n rws[N - i - 1] = t;\n\n t = iws[i];\n\n iws[i] = -iws[N - i - 1];\n iws[N - i - 1] = -t;\n }\n };\n\n FFTM.prototype.normalize13b = function normalize13b (ws, N) {\n var carry = 0;\n for (var i = 0; i < N / 2; i++) {\n var w = Math.round(ws[2 * i + 1] / N) * 0x2000 +\n Math.round(ws[2 * i] / N) +\n carry;\n\n ws[i] = w & 0x3ffffff;\n\n if (w < 0x4000000) {\n carry = 0;\n } else {\n carry = w / 0x4000000 | 0;\n }\n }\n\n return ws;\n };\n\n FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {\n var carry = 0;\n for (var i = 0; i < len; i++) {\n carry = carry + (ws[i] | 0);\n\n rws[2 * i] = carry & 0x1fff; carry = carry >>> 13;\n rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13;\n }\n\n // Pad with zeroes\n for (i = 2 * len; i < N; ++i) {\n rws[i] = 0;\n }\n\n assert(carry === 0);\n assert((carry & ~0x1fff) === 0);\n };\n\n FFTM.prototype.stub = function stub (N) {\n var ph = new Array(N);\n for (var i = 0; i < N; i++) {\n ph[i] = 0;\n }\n\n return ph;\n };\n\n FFTM.prototype.mulp = function mulp (x, y, out) {\n var N = 2 * this.guessLen13b(x.length, y.length);\n\n var rbt = this.makeRBT(N);\n\n var _ = this.stub(N);\n\n var rws = new Array(N);\n var rwst = new Array(N);\n var iwst = new Array(N);\n\n var nrws = new Array(N);\n var nrwst = new Array(N);\n var niwst = new Array(N);\n\n var rmws = out.words;\n rmws.length = N;\n\n this.convert13b(x.words, x.length, rws, N);\n this.convert13b(y.words, y.length, nrws, N);\n\n this.transform(rws, _, rwst, iwst, N, rbt);\n this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n for (var i = 0; i < N; i++) {\n var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n rwst[i] = rx;\n }\n\n this.conjugate(rwst, iwst, N);\n this.transform(rwst, iwst, rmws, _, N, rbt);\n this.conjugate(rmws, _, N);\n this.normalize13b(rmws, N);\n\n out.negative = x.negative ^ y.negative;\n out.length = x.length + y.length;\n return out.strip();\n };\n\n // Multiply `this` by `num`\n BN.prototype.mul = function mul (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return this.mulTo(num, out);\n };\n\n // Multiply employing FFT\n BN.prototype.mulf = function mulf (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return jumboMulTo(this, num, out);\n };\n\n // In-place Multiplication\n BN.prototype.imul = function imul (num) {\n return this.clone().mulTo(num, this);\n };\n\n BN.prototype.imuln = function imuln (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n\n // Carry\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = (this.words[i] | 0) * num;\n var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n carry >>= 26;\n carry += (w / 0x4000000) | 0;\n // NOTE: lo is 27bit maximum\n carry += lo >>> 26;\n this.words[i] = lo & 0x3ffffff;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n\n return this;\n };\n\n BN.prototype.muln = function muln (num) {\n return this.clone().imuln(num);\n };\n\n // `this` * `this`\n BN.prototype.sqr = function sqr () {\n return this.mul(this);\n };\n\n // `this` * `this` in-place\n BN.prototype.isqr = function isqr () {\n return this.imul(this.clone());\n };\n\n // Math.pow(`this`, `num`)\n BN.prototype.pow = function pow (num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1);\n\n // Skip leading zeroes\n var res = this;\n for (var i = 0; i < w.length; i++, res = res.sqr()) {\n if (w[i] !== 0) break;\n }\n\n if (++i < w.length) {\n for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n if (w[i] === 0) continue;\n\n res = res.mul(q);\n }\n }\n\n return res;\n };\n\n // Shift-left in-place\n BN.prototype.iushln = function iushln (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);\n var i;\n\n if (r !== 0) {\n var carry = 0;\n\n for (i = 0; i < this.length; i++) {\n var newCarry = this.words[i] & carryMask;\n var c = ((this.words[i] | 0) - newCarry) << r;\n this.words[i] = c | carry;\n carry = newCarry >>> (26 - r);\n }\n\n if (carry) {\n this.words[i] = carry;\n this.length++;\n }\n }\n\n if (s !== 0) {\n for (i = this.length - 1; i >= 0; i--) {\n this.words[i + s] = this.words[i];\n }\n\n for (i = 0; i < s; i++) {\n this.words[i] = 0;\n }\n\n this.length += s;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishln = function ishln (bits) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushln(bits);\n };\n\n // Shift-right in-place\n // NOTE: `hint` is a lowest bit before trailing zeroes\n // NOTE: if `extended` is present - it will be filled with destroyed bits\n BN.prototype.iushrn = function iushrn (bits, hint, extended) {\n assert(typeof bits === 'number' && bits >= 0);\n var h;\n if (hint) {\n h = (hint - (hint % 26)) / 26;\n } else {\n h = 0;\n }\n\n var r = bits % 26;\n var s = Math.min((bits - r) / 26, this.length);\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n var maskedWords = extended;\n\n h -= s;\n h = Math.max(0, h);\n\n // Extended mode, copy masked part\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n maskedWords.length = s;\n }\n\n if (s === 0) {\n // No-op, we should not move anything at all\n } else if (this.length > s) {\n this.length -= s;\n for (i = 0; i < this.length; i++) {\n this.words[i] = this.words[i + s];\n }\n } else {\n this.words[0] = 0;\n this.length = 1;\n }\n\n var carry = 0;\n for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n var word = this.words[i] | 0;\n this.words[i] = (carry << (26 - r)) | (word >>> r);\n carry = word & mask;\n }\n\n // Push carried bits as a mask\n if (maskedWords && carry !== 0) {\n maskedWords.words[maskedWords.length++] = carry;\n }\n\n if (this.length === 0) {\n this.words[0] = 0;\n this.length = 1;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishrn = function ishrn (bits, hint, extended) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushrn(bits, hint, extended);\n };\n\n // Shift-left\n BN.prototype.shln = function shln (bits) {\n return this.clone().ishln(bits);\n };\n\n BN.prototype.ushln = function ushln (bits) {\n return this.clone().iushln(bits);\n };\n\n // Shift-right\n BN.prototype.shrn = function shrn (bits) {\n return this.clone().ishrn(bits);\n };\n\n BN.prototype.ushrn = function ushrn (bits) {\n return this.clone().iushrn(bits);\n };\n\n // Test if n bit is set\n BN.prototype.testn = function testn (bit) {\n assert(typeof bit === 'number' && bit >= 0);\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) return false;\n\n // Check bit and return\n var w = this.words[s];\n\n return !!(w & q);\n };\n\n // Return only lowers bits of number (in-place)\n BN.prototype.imaskn = function imaskn (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n\n assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n if (this.length <= s) {\n return this;\n }\n\n if (r !== 0) {\n s++;\n }\n this.length = Math.min(s, this.length);\n\n if (r !== 0) {\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n this.words[this.length - 1] &= mask;\n }\n\n return this.strip();\n };\n\n // Return only lowers bits of number\n BN.prototype.maskn = function maskn (bits) {\n return this.clone().imaskn(bits);\n };\n\n // Add plain number `num` to `this`\n BN.prototype.iaddn = function iaddn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.isubn(-num);\n\n // Possible sign change\n if (this.negative !== 0) {\n if (this.length === 1 && (this.words[0] | 0) < num) {\n this.words[0] = num - (this.words[0] | 0);\n this.negative = 0;\n return this;\n }\n\n this.negative = 0;\n this.isubn(num);\n this.negative = 1;\n return this;\n }\n\n // Add without checks\n return this._iaddn(num);\n };\n\n BN.prototype._iaddn = function _iaddn (num) {\n this.words[0] += num;\n\n // Carry\n for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n this.words[i] -= 0x4000000;\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n this.length = Math.max(this.length, i + 1);\n\n return this;\n };\n\n // Subtract plain number `num` from `this`\n BN.prototype.isubn = function isubn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.iaddn(-num);\n\n if (this.negative !== 0) {\n this.negative = 0;\n this.iaddn(num);\n this.negative = 1;\n return this;\n }\n\n this.words[0] -= num;\n\n if (this.length === 1 && this.words[0] < 0) {\n this.words[0] = -this.words[0];\n this.negative = 1;\n } else {\n // Carry\n for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n this.words[i] += 0x4000000;\n this.words[i + 1] -= 1;\n }\n }\n\n return this.strip();\n };\n\n BN.prototype.addn = function addn (num) {\n return this.clone().iaddn(num);\n };\n\n BN.prototype.subn = function subn (num) {\n return this.clone().isubn(num);\n };\n\n BN.prototype.iabs = function iabs () {\n this.negative = 0;\n\n return this;\n };\n\n BN.prototype.abs = function abs () {\n return this.clone().iabs();\n };\n\n BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {\n var len = num.length + shift;\n var i;\n\n this._expand(len);\n\n var w;\n var carry = 0;\n for (i = 0; i < num.length; i++) {\n w = (this.words[i + shift] | 0) + carry;\n var right = (num.words[i] | 0) * mul;\n w -= right & 0x3ffffff;\n carry = (w >> 26) - ((right / 0x4000000) | 0);\n this.words[i + shift] = w & 0x3ffffff;\n }\n for (; i < this.length - shift; i++) {\n w = (this.words[i + shift] | 0) + carry;\n carry = w >> 26;\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n if (carry === 0) return this.strip();\n\n // Subtraction overflow\n assert(carry === -1);\n carry = 0;\n for (i = 0; i < this.length; i++) {\n w = -(this.words[i] | 0) + carry;\n carry = w >> 26;\n this.words[i] = w & 0x3ffffff;\n }\n this.negative = 1;\n\n return this.strip();\n };\n\n BN.prototype._wordDiv = function _wordDiv (num, mode) {\n var shift = this.length - num.length;\n\n var a = this.clone();\n var b = num;\n\n // Normalize\n var bhi = b.words[b.length - 1] | 0;\n var bhiBits = this._countBits(bhi);\n shift = 26 - bhiBits;\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n }\n\n // Initialize quotient\n var m = a.length - b.length;\n var q;\n\n if (mode !== 'mod') {\n q = new BN(null);\n q.length = m + 1;\n q.words = new Array(q.length);\n for (var i = 0; i < q.length; i++) {\n q.words[i] = 0;\n }\n }\n\n var diff = a.clone()._ishlnsubmul(b, 1, m);\n if (diff.negative === 0) {\n a = diff;\n if (q) {\n q.words[m] = 1;\n }\n }\n\n for (var j = m - 1; j >= 0; j--) {\n var qj = (a.words[b.length + j] | 0) * 0x4000000 +\n (a.words[b.length + j - 1] | 0);\n\n // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n // (0x7ffffff)\n qj = Math.min((qj / bhi) | 0, 0x3ffffff);\n\n a._ishlnsubmul(b, qj, j);\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n a._ishlnsubmul(b, 1, j);\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n if (q) {\n q.words[j] = qj;\n }\n }\n if (q) {\n q.strip();\n }\n a.strip();\n\n // Denormalize\n if (mode !== 'div' && shift !== 0) {\n a.iushrn(shift);\n }\n\n return {\n div: q || null,\n mod: a\n };\n };\n\n // NOTE: 1) `mode` can be set to `mod` to request mod only,\n // to `div` to request div only, or be absent to\n // request both div & mod\n // 2) `positive` is true if unsigned mod is requested\n BN.prototype.divmod = function divmod (num, mode, positive) {\n assert(!num.isZero());\n\n if (this.isZero()) {\n return {\n div: new BN(0),\n mod: new BN(0)\n };\n }\n\n var div, mod, res;\n if (this.negative !== 0 && num.negative === 0) {\n res = this.neg().divmod(num, mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.iadd(num);\n }\n }\n\n return {\n div: div,\n mod: mod\n };\n }\n\n if (this.negative === 0 && num.negative !== 0) {\n res = this.divmod(num.neg(), mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n return {\n div: div,\n mod: res.mod\n };\n }\n\n if ((this.negative & num.negative) !== 0) {\n res = this.neg().divmod(num.neg(), mode);\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n\n return {\n div: res.div,\n mod: mod\n };\n }\n\n // Both numbers are positive at this point\n\n // Strip both numbers to approximate shift value\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n }\n\n // Very short reduction\n if (num.length === 1) {\n if (mode === 'div') {\n return {\n div: this.divn(num.words[0]),\n mod: null\n };\n }\n\n if (mode === 'mod') {\n return {\n div: null,\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return this._wordDiv(num, mode);\n };\n\n // Find `this` / `num`\n BN.prototype.div = function div (num) {\n return this.divmod(num, 'div', false).div;\n };\n\n // Find `this` % `num`\n BN.prototype.mod = function mod (num) {\n return this.divmod(num, 'mod', false).mod;\n };\n\n BN.prototype.umod = function umod (num) {\n return this.divmod(num, 'mod', true).mod;\n };\n\n // Find Round(`this` / `num`)\n BN.prototype.divRound = function divRound (num) {\n var dm = this.divmod(num);\n\n // Fast case - exact division\n if (dm.mod.isZero()) return dm.div;\n\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half);\n\n // Round down\n if (cmp < 0 || r2 === 1 && cmp === 0) return dm.div;\n\n // Round up\n return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n };\n\n BN.prototype.modn = function modn (num) {\n assert(num <= 0x3ffffff);\n var p = (1 << 26) % num;\n\n var acc = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n acc = (p * acc + (this.words[i] | 0)) % num;\n }\n\n return acc;\n };\n\n // In-place division by number\n BN.prototype.idivn = function idivn (num) {\n assert(num <= 0x3ffffff);\n\n var carry = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var w = (this.words[i] | 0) + carry * 0x4000000;\n this.words[i] = (w / num) | 0;\n carry = w % num;\n }\n\n return this.strip();\n };\n\n BN.prototype.divn = function divn (num) {\n return this.clone().idivn(num);\n };\n\n BN.prototype.egcd = function egcd (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var x = this;\n var y = p.clone();\n\n if (x.negative !== 0) {\n x = x.umod(p);\n } else {\n x = x.clone();\n }\n\n // A * x + B * y = x\n var A = new BN(1);\n var B = new BN(0);\n\n // C * x + D * y = y\n var C = new BN(0);\n var D = new BN(1);\n\n var g = 0;\n\n while (x.isEven() && y.isEven()) {\n x.iushrn(1);\n y.iushrn(1);\n ++g;\n }\n\n var yp = y.clone();\n var xp = x.clone();\n\n while (!x.isZero()) {\n for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n x.iushrn(i);\n while (i-- > 0) {\n if (A.isOdd() || B.isOdd()) {\n A.iadd(yp);\n B.isub(xp);\n }\n\n A.iushrn(1);\n B.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n y.iushrn(j);\n while (j-- > 0) {\n if (C.isOdd() || D.isOdd()) {\n C.iadd(yp);\n D.isub(xp);\n }\n\n C.iushrn(1);\n D.iushrn(1);\n }\n }\n\n if (x.cmp(y) >= 0) {\n x.isub(y);\n A.isub(C);\n B.isub(D);\n } else {\n y.isub(x);\n C.isub(A);\n D.isub(B);\n }\n }\n\n return {\n a: C,\n b: D,\n gcd: y.iushln(g)\n };\n };\n\n // This is reduced incarnation of the binary EEA\n // above, designated to invert members of the\n // _prime_ fields F(p) at a maximal speed\n BN.prototype._invmp = function _invmp (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var a = this;\n var b = p.clone();\n\n if (a.negative !== 0) {\n a = a.umod(p);\n } else {\n a = a.clone();\n }\n\n var x1 = new BN(1);\n var x2 = new BN(0);\n\n var delta = b.clone();\n\n while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n a.iushrn(i);\n while (i-- > 0) {\n if (x1.isOdd()) {\n x1.iadd(delta);\n }\n\n x1.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n b.iushrn(j);\n while (j-- > 0) {\n if (x2.isOdd()) {\n x2.iadd(delta);\n }\n\n x2.iushrn(1);\n }\n }\n\n if (a.cmp(b) >= 0) {\n a.isub(b);\n x1.isub(x2);\n } else {\n b.isub(a);\n x2.isub(x1);\n }\n }\n\n var res;\n if (a.cmpn(1) === 0) {\n res = x1;\n } else {\n res = x2;\n }\n\n if (res.cmpn(0) < 0) {\n res.iadd(p);\n }\n\n return res;\n };\n\n BN.prototype.gcd = function gcd (num) {\n if (this.isZero()) return num.abs();\n if (num.isZero()) return this.abs();\n\n var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0;\n\n // Remove common factor of two\n for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n a.iushrn(1);\n b.iushrn(1);\n }\n\n do {\n while (a.isEven()) {\n a.iushrn(1);\n }\n while (b.isEven()) {\n b.iushrn(1);\n }\n\n var r = a.cmp(b);\n if (r < 0) {\n // Swap `a` and `b` to make `a` always bigger than `b`\n var t = a;\n a = b;\n b = t;\n } else if (r === 0 || b.cmpn(1) === 0) {\n break;\n }\n\n a.isub(b);\n } while (true);\n\n return b.iushln(shift);\n };\n\n // Invert number in the field F(num)\n BN.prototype.invm = function invm (num) {\n return this.egcd(num).a.umod(num);\n };\n\n BN.prototype.isEven = function isEven () {\n return (this.words[0] & 1) === 0;\n };\n\n BN.prototype.isOdd = function isOdd () {\n return (this.words[0] & 1) === 1;\n };\n\n // And first word and num\n BN.prototype.andln = function andln (num) {\n return this.words[0] & num;\n };\n\n // Increment at the bit position in-line\n BN.prototype.bincn = function bincn (bit) {\n assert(typeof bit === 'number');\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) {\n this._expand(s + 1);\n this.words[s] |= q;\n return this;\n }\n\n // Add bit and propagate, if needed\n var carry = q;\n for (var i = s; carry !== 0 && i < this.length; i++) {\n var w = this.words[i] | 0;\n w += carry;\n carry = w >>> 26;\n w &= 0x3ffffff;\n this.words[i] = w;\n }\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n return this;\n };\n\n BN.prototype.isZero = function isZero () {\n return this.length === 1 && this.words[0] === 0;\n };\n\n BN.prototype.cmpn = function cmpn (num) {\n var negative = num < 0;\n\n if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n\n this.strip();\n\n var res;\n if (this.length > 1) {\n res = 1;\n } else {\n if (negative) {\n num = -num;\n }\n\n assert(num <= 0x3ffffff, 'Number is too big');\n\n var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Compare two numbers and return:\n // 1 - if `this` > `num`\n // 0 - if `this` == `num`\n // -1 - if `this` < `num`\n BN.prototype.cmp = function cmp (num) {\n if (this.negative !== 0 && num.negative === 0) return -1;\n if (this.negative === 0 && num.negative !== 0) return 1;\n\n var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Unsigned comparison\n BN.prototype.ucmp = function ucmp (num) {\n // At this point both numbers have the same sign\n if (this.length > num.length) return 1;\n if (this.length < num.length) return -1;\n\n var res = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var a = this.words[i] | 0;\n var b = num.words[i] | 0;\n\n if (a === b) continue;\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n break;\n }\n return res;\n };\n\n BN.prototype.gtn = function gtn (num) {\n return this.cmpn(num) === 1;\n };\n\n BN.prototype.gt = function gt (num) {\n return this.cmp(num) === 1;\n };\n\n BN.prototype.gten = function gten (num) {\n return this.cmpn(num) >= 0;\n };\n\n BN.prototype.gte = function gte (num) {\n return this.cmp(num) >= 0;\n };\n\n BN.prototype.ltn = function ltn (num) {\n return this.cmpn(num) === -1;\n };\n\n BN.prototype.lt = function lt (num) {\n return this.cmp(num) === -1;\n };\n\n BN.prototype.lten = function lten (num) {\n return this.cmpn(num) <= 0;\n };\n\n BN.prototype.lte = function lte (num) {\n return this.cmp(num) <= 0;\n };\n\n BN.prototype.eqn = function eqn (num) {\n return this.cmpn(num) === 0;\n };\n\n BN.prototype.eq = function eq (num) {\n return this.cmp(num) === 0;\n };\n\n //\n // A reduce context, could be using montgomery or something better, depending\n // on the `m` itself.\n //\n BN.red = function red (num) {\n return new Red(num);\n };\n\n BN.prototype.toRed = function toRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n assert(this.negative === 0, 'red works only with positives');\n return ctx.convertTo(this)._forceRed(ctx);\n };\n\n BN.prototype.fromRed = function fromRed () {\n assert(this.red, 'fromRed works only with numbers in reduction context');\n return this.red.convertFrom(this);\n };\n\n BN.prototype._forceRed = function _forceRed (ctx) {\n this.red = ctx;\n return this;\n };\n\n BN.prototype.forceRed = function forceRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n return this._forceRed(ctx);\n };\n\n BN.prototype.redAdd = function redAdd (num) {\n assert(this.red, 'redAdd works only with red numbers');\n return this.red.add(this, num);\n };\n\n BN.prototype.redIAdd = function redIAdd (num) {\n assert(this.red, 'redIAdd works only with red numbers');\n return this.red.iadd(this, num);\n };\n\n BN.prototype.redSub = function redSub (num) {\n assert(this.red, 'redSub works only with red numbers');\n return this.red.sub(this, num);\n };\n\n BN.prototype.redISub = function redISub (num) {\n assert(this.red, 'redISub works only with red numbers');\n return this.red.isub(this, num);\n };\n\n BN.prototype.redShl = function redShl (num) {\n assert(this.red, 'redShl works only with red numbers');\n return this.red.shl(this, num);\n };\n\n BN.prototype.redMul = function redMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.mul(this, num);\n };\n\n BN.prototype.redIMul = function redIMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.imul(this, num);\n };\n\n BN.prototype.redSqr = function redSqr () {\n assert(this.red, 'redSqr works only with red numbers');\n this.red._verify1(this);\n return this.red.sqr(this);\n };\n\n BN.prototype.redISqr = function redISqr () {\n assert(this.red, 'redISqr works only with red numbers');\n this.red._verify1(this);\n return this.red.isqr(this);\n };\n\n // Square root over p\n BN.prototype.redSqrt = function redSqrt () {\n assert(this.red, 'redSqrt works only with red numbers');\n this.red._verify1(this);\n return this.red.sqrt(this);\n };\n\n BN.prototype.redInvm = function redInvm () {\n assert(this.red, 'redInvm works only with red numbers');\n this.red._verify1(this);\n return this.red.invm(this);\n };\n\n // Return negative clone of `this` % `red modulo`\n BN.prototype.redNeg = function redNeg () {\n assert(this.red, 'redNeg works only with red numbers');\n this.red._verify1(this);\n return this.red.neg(this);\n };\n\n BN.prototype.redPow = function redPow (num) {\n assert(this.red && !num.red, 'redPow(normalNum)');\n this.red._verify1(this);\n return this.red.pow(this, num);\n };\n\n // Prime numbers with efficient reduction\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n };\n\n // Pseudo-Mersenne prime\n function MPrime (name, p) {\n // P = 2 ^ N - K\n this.name = name;\n this.p = new BN(p, 16);\n this.n = this.p.bitLength();\n this.k = new BN(1).iushln(this.n).isub(this.p);\n\n this.tmp = this._tmp();\n }\n\n MPrime.prototype._tmp = function _tmp () {\n var tmp = new BN(null);\n tmp.words = new Array(Math.ceil(this.n / 13));\n return tmp;\n };\n\n MPrime.prototype.ireduce = function ireduce (num) {\n // Assumes that `num` is less than `P^2`\n // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n var r = num;\n var rlen;\n\n do {\n this.split(r, this.tmp);\n r = this.imulK(r);\n r = r.iadd(this.tmp);\n rlen = r.bitLength();\n } while (rlen > this.n);\n\n var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n if (cmp === 0) {\n r.words[0] = 0;\n r.length = 1;\n } else if (cmp > 0) {\n r.isub(this.p);\n } else {\n if (r.strip !== undefined) {\n // r is BN v4 instance\n r.strip();\n } else {\n // r is BN v5 instance\n r._strip();\n }\n }\n\n return r;\n };\n\n MPrime.prototype.split = function split (input, out) {\n input.iushrn(this.n, 0, out);\n };\n\n MPrime.prototype.imulK = function imulK (num) {\n return num.imul(this.k);\n };\n\n function K256 () {\n MPrime.call(\n this,\n 'k256',\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n }\n inherits(K256, MPrime);\n\n K256.prototype.split = function split (input, output) {\n // 256 = 9 * 26 + 22\n var mask = 0x3fffff;\n\n var outLen = Math.min(input.length, 9);\n for (var i = 0; i < outLen; i++) {\n output.words[i] = input.words[i];\n }\n output.length = outLen;\n\n if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n }\n\n // Shift by 9 limbs\n var prev = input.words[9];\n output.words[output.length++] = prev & mask;\n\n for (i = 10; i < input.length; i++) {\n var next = input.words[i] | 0;\n input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22);\n prev = next;\n }\n prev >>>= 22;\n input.words[i - 10] = prev;\n if (prev === 0 && input.length > 10) {\n input.length -= 10;\n } else {\n input.length -= 9;\n }\n };\n\n K256.prototype.imulK = function imulK (num) {\n // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n num.words[num.length] = 0;\n num.words[num.length + 1] = 0;\n num.length += 2;\n\n // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n var lo = 0;\n for (var i = 0; i < num.length; i++) {\n var w = num.words[i] | 0;\n lo += w * 0x3d1;\n num.words[i] = lo & 0x3ffffff;\n lo = w * 0x40 + ((lo / 0x4000000) | 0);\n }\n\n // Fast length reduction\n if (num.words[num.length - 1] === 0) {\n num.length--;\n if (num.words[num.length - 1] === 0) {\n num.length--;\n }\n }\n return num;\n };\n\n function P224 () {\n MPrime.call(\n this,\n 'p224',\n 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n }\n inherits(P224, MPrime);\n\n function P192 () {\n MPrime.call(\n this,\n 'p192',\n 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n }\n inherits(P192, MPrime);\n\n function P25519 () {\n // 2 ^ 255 - 19\n MPrime.call(\n this,\n '25519',\n '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n }\n inherits(P25519, MPrime);\n\n P25519.prototype.imulK = function imulK (num) {\n // K = 0x13\n var carry = 0;\n for (var i = 0; i < num.length; i++) {\n var hi = (num.words[i] | 0) * 0x13 + carry;\n var lo = hi & 0x3ffffff;\n hi >>>= 26;\n\n num.words[i] = lo;\n carry = hi;\n }\n if (carry !== 0) {\n num.words[num.length++] = carry;\n }\n return num;\n };\n\n // Exported mostly for testing purposes, use plain name instead\n BN._prime = function prime (name) {\n // Cached version of prime\n if (primes[name]) return primes[name];\n\n var prime;\n if (name === 'k256') {\n prime = new K256();\n } else if (name === 'p224') {\n prime = new P224();\n } else if (name === 'p192') {\n prime = new P192();\n } else if (name === 'p25519') {\n prime = new P25519();\n } else {\n throw new Error('Unknown prime ' + name);\n }\n primes[name] = prime;\n\n return prime;\n };\n\n //\n // Base reduction engine\n //\n function Red (m) {\n if (typeof m === 'string') {\n var prime = BN._prime(m);\n this.m = prime.p;\n this.prime = prime;\n } else {\n assert(m.gtn(1), 'modulus must be greater than 1');\n this.m = m;\n this.prime = null;\n }\n }\n\n Red.prototype._verify1 = function _verify1 (a) {\n assert(a.negative === 0, 'red works only with positives');\n assert(a.red, 'red works only with red numbers');\n };\n\n Red.prototype._verify2 = function _verify2 (a, b) {\n assert((a.negative | b.negative) === 0, 'red works only with positives');\n assert(a.red && a.red === b.red,\n 'red works only with red numbers');\n };\n\n Red.prototype.imod = function imod (a) {\n if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n return a.umod(this.m)._forceRed(this);\n };\n\n Red.prototype.neg = function neg (a) {\n if (a.isZero()) {\n return a.clone();\n }\n\n return this.m.sub(a)._forceRed(this);\n };\n\n Red.prototype.add = function add (a, b) {\n this._verify2(a, b);\n\n var res = a.add(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.iadd = function iadd (a, b) {\n this._verify2(a, b);\n\n var res = a.iadd(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res;\n };\n\n Red.prototype.sub = function sub (a, b) {\n this._verify2(a, b);\n\n var res = a.sub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.isub = function isub (a, b) {\n this._verify2(a, b);\n\n var res = a.isub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res;\n };\n\n Red.prototype.shl = function shl (a, num) {\n this._verify1(a);\n return this.imod(a.ushln(num));\n };\n\n Red.prototype.imul = function imul (a, b) {\n this._verify2(a, b);\n return this.imod(a.imul(b));\n };\n\n Red.prototype.mul = function mul (a, b) {\n this._verify2(a, b);\n return this.imod(a.mul(b));\n };\n\n Red.prototype.isqr = function isqr (a) {\n return this.imul(a, a.clone());\n };\n\n Red.prototype.sqr = function sqr (a) {\n return this.mul(a, a);\n };\n\n Red.prototype.sqrt = function sqrt (a) {\n if (a.isZero()) return a.clone();\n\n var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1);\n\n // Fast case\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n }\n\n // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n //\n // Find Q and S, that Q * 2 ^ S = (P - 1)\n var q = this.m.subn(1);\n var s = 0;\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n assert(!q.isZero());\n\n var one = new BN(1).toRed(this);\n var nOne = one.redNeg();\n\n // Find quadratic non-residue\n // NOTE: Max is such because of generalized Riemann hypothesis.\n var lpow = this.m.subn(1).iushrn(1);\n var z = this.m.bitLength();\n z = new BN(2 * z * z).toRed(this);\n\n while (this.pow(z, lpow).cmp(nOne) !== 0) {\n z.redIAdd(nOne);\n }\n\n var c = this.pow(z, q);\n var r = this.pow(a, q.addn(1).iushrn(1));\n var t = this.pow(a, q);\n var m = s;\n while (t.cmp(one) !== 0) {\n var tmp = t;\n for (var i = 0; tmp.cmp(one) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\n\n r = r.redMul(b);\n c = b.redSqr();\n t = t.redMul(c);\n m = i;\n }\n\n return r;\n };\n\n Red.prototype.invm = function invm (a) {\n var inv = a._invmp(this.m);\n if (inv.negative !== 0) {\n inv.negative = 0;\n return this.imod(inv).redNeg();\n } else {\n return this.imod(inv);\n }\n };\n\n Red.prototype.pow = function pow (a, num) {\n if (num.isZero()) return new BN(1).toRed(this);\n if (num.cmpn(1) === 0) return a.clone();\n\n var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n for (var i = 2; i < wnd.length; i++) {\n wnd[i] = this.mul(wnd[i - 1], a);\n }\n\n var res = wnd[0];\n var current = 0;\n var currentLen = 0;\n var start = num.bitLength() % 26;\n if (start === 0) {\n start = 26;\n }\n\n for (i = num.length - 1; i >= 0; i--) {\n var word = num.words[i];\n for (var j = start - 1; j >= 0; j--) {\n var bit = (word >> j) & 1;\n if (res !== wnd[0]) {\n res = this.sqr(res);\n }\n\n if (bit === 0 && current === 0) {\n currentLen = 0;\n continue;\n }\n\n current <<= 1;\n current |= bit;\n currentLen++;\n if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n\n res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\n start = 26;\n }\n\n return res;\n };\n\n Red.prototype.convertTo = function convertTo (num) {\n var r = num.umod(this.m);\n\n return r === num ? r.clone() : r;\n };\n\n Red.prototype.convertFrom = function convertFrom (num) {\n var res = num.clone();\n res.red = null;\n return res;\n };\n\n //\n // Montgomery method engine\n //\n\n BN.mont = function mont (num) {\n return new Mont(num);\n };\n\n function Mont (m) {\n Red.call(this, m);\n\n this.shift = this.m.bitLength();\n if (this.shift % 26 !== 0) {\n this.shift += 26 - (this.shift % 26);\n }\n\n this.r = new BN(1).iushln(this.shift);\n this.r2 = this.imod(this.r.sqr());\n this.rinv = this.r._invmp(this.m);\n\n this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n this.minv = this.minv.umod(this.r);\n this.minv = this.r.sub(this.minv);\n }\n inherits(Mont, Red);\n\n Mont.prototype.convertTo = function convertTo (num) {\n return this.imod(num.ushln(this.shift));\n };\n\n Mont.prototype.convertFrom = function convertFrom (num) {\n var r = this.imod(num.mul(this.rinv));\n r.red = null;\n return r;\n };\n\n Mont.prototype.imul = function imul (a, b) {\n if (a.isZero() || b.isZero()) {\n a.words[0] = 0;\n a.length = 1;\n return a;\n }\n\n var t = a.imul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.mul = function mul (a, b) {\n if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n\n var t = a.mul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.invm = function invm (a) {\n // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n var res = this.imod(a._invmp(this.m).mul(this.r2));\n return res._forceRed(this);\n };\n})(typeof module === 'undefined' || module, this);\n", "const createHmac = require('create-hmac')\n\nconst ONE1 = Buffer.alloc(1, 1)\nconst ZERO1 = Buffer.alloc(1, 0)\n\n// https://tools.ietf.org/html/rfc6979#section-3.2\nfunction deterministicGenerateK (hash, x, checkSig, isPrivate, extraEntropy) {\n // Step A, ignored as hash already provided\n // Step B\n // Step C\n let k = Buffer.alloc(32, 0)\n let v = Buffer.alloc(32, 1)\n\n // Step D\n k = createHmac('sha256', k)\n .update(v)\n .update(ZERO1)\n .update(x)\n .update(hash)\n .update(extraEntropy || '')\n .digest()\n\n // Step E\n v = createHmac('sha256', k).update(v).digest()\n\n // Step F\n k = createHmac('sha256', k)\n .update(v)\n .update(ONE1)\n .update(x)\n .update(hash)\n .update(extraEntropy || '')\n .digest()\n\n // Step G\n v = createHmac('sha256', k).update(v).digest()\n\n // Step H1/H2a, ignored as tlen === qlen (256 bit)\n // Step H2b\n v = createHmac('sha256', k).update(v).digest()\n\n let T = v\n\n // Step H3, repeat until T is within the interval [1, n - 1] and is suitable for ECDSA\n while (!isPrivate(T) || !checkSig(T)) {\n k = createHmac('sha256', k)\n .update(v)\n .update(ZERO1)\n .digest()\n\n v = createHmac('sha256', k).update(v).digest()\n\n // Step H1/H2a, again, ignored as tlen === qlen (256 bit)\n // Step H2b again\n v = createHmac('sha256', k).update(v).digest()\n T = v\n }\n\n return T\n}\n\nmodule.exports = deterministicGenerateK\n", "const BN = require('bn.js')\nconst EC = require('elliptic').ec\nconst secp256k1 = new EC('secp256k1')\nconst deterministicGenerateK = require('./rfc6979')\n\nconst ZERO32 = Buffer.alloc(32, 0)\nconst EC_GROUP_ORDER = Buffer.from('fffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141', 'hex')\nconst EC_P = Buffer.from('fffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f', 'hex')\n\nconst n = secp256k1.curve.n\nconst nDiv2 = n.shrn(1)\nconst G = secp256k1.curve.g\n\nconst THROW_BAD_PRIVATE = 'Expected Private'\nconst THROW_BAD_POINT = 'Expected Point'\nconst THROW_BAD_TWEAK = 'Expected Tweak'\nconst THROW_BAD_HASH = 'Expected Hash'\nconst THROW_BAD_SIGNATURE = 'Expected Signature'\nconst THROW_BAD_EXTRA_DATA = 'Expected Extra Data (32 bytes)'\n\nfunction isScalar (x) {\n return Buffer.isBuffer(x) && x.length === 32\n}\n\nfunction isOrderScalar (x) {\n if (!isScalar(x)) return false\n return x.compare(EC_GROUP_ORDER) < 0 // < G\n}\n\nfunction isPoint (p) {\n if (!Buffer.isBuffer(p)) return false\n if (p.length < 33) return false\n\n const t = p[0]\n const x = p.slice(1, 33)\n if (x.compare(ZERO32) === 0) return false\n if (x.compare(EC_P) >= 0) return false\n if ((t === 0x02 || t === 0x03) && p.length === 33) {\n try { decodeFrom(p) } catch (e) { return false } // TODO: temporary\n return true\n }\n\n const y = p.slice(33)\n if (y.compare(ZERO32) === 0) return false\n if (y.compare(EC_P) >= 0) return false\n if (t === 0x04 && p.length === 65) return true\n return false\n}\n\nfunction __isPointCompressed (p) {\n return p[0] !== 0x04\n}\n\nfunction isPointCompressed (p) {\n if (!isPoint(p)) return false\n return __isPointCompressed(p)\n}\n\nfunction isPrivate (x) {\n if (!isScalar(x)) return false\n return x.compare(ZERO32) > 0 && // > 0\n x.compare(EC_GROUP_ORDER) < 0 // < G\n}\n\nfunction isSignature (value) {\n const r = value.slice(0, 32)\n const s = value.slice(32, 64)\n return Buffer.isBuffer(value) && value.length === 64 &&\n r.compare(EC_GROUP_ORDER) < 0 &&\n s.compare(EC_GROUP_ORDER) < 0\n}\n\nfunction assumeCompression (value, pubkey) {\n if (value === undefined && pubkey !== undefined) return __isPointCompressed(pubkey)\n if (value === undefined) return true\n return value\n}\n\nfunction fromBuffer (d) { return new BN(d) }\nfunction toBuffer (d) { return d.toArrayLike(Buffer, 'be', 32) }\nfunction decodeFrom (P) { return secp256k1.curve.decodePoint(P) }\nfunction getEncoded (P, compressed) { return Buffer.from(P._encode(compressed)) }\n\nfunction pointAdd (pA, pB, __compressed) {\n if (!isPoint(pA)) throw new TypeError(THROW_BAD_POINT)\n if (!isPoint(pB)) throw new TypeError(THROW_BAD_POINT)\n\n const a = decodeFrom(pA)\n const b = decodeFrom(pB)\n const pp = a.add(b)\n if (pp.isInfinity()) return null\n\n const compressed = assumeCompression(__compressed, pA)\n return getEncoded(pp, compressed)\n}\n\nfunction pointAddScalar (p, tweak, __compressed) {\n if (!isPoint(p)) throw new TypeError(THROW_BAD_POINT)\n if (!isOrderScalar(tweak)) throw new TypeError(THROW_BAD_TWEAK)\n\n const compressed = assumeCompression(__compressed, p)\n const pp = decodeFrom(p)\n if (tweak.compare(ZERO32) === 0) return getEncoded(pp, compressed)\n\n const tt = fromBuffer(tweak)\n const qq = G.mul(tt)\n const uu = pp.add(qq)\n if (uu.isInfinity()) return null\n\n return getEncoded(uu, compressed)\n}\n\nfunction pointCompress (p, __compressed) {\n if (!isPoint(p)) throw new TypeError(THROW_BAD_POINT)\n\n const pp = decodeFrom(p)\n if (pp.isInfinity()) throw new TypeError(THROW_BAD_POINT)\n\n const compressed = assumeCompression(__compressed, p)\n\n return getEncoded(pp, compressed)\n}\n\nfunction pointFromScalar (d, __compressed) {\n if (!isPrivate(d)) throw new TypeError(THROW_BAD_PRIVATE)\n\n const dd = fromBuffer(d)\n const pp = G.mul(dd)\n if (pp.isInfinity()) return null\n\n const compressed = assumeCompression(__compressed)\n return getEncoded(pp, compressed)\n}\n\nfunction pointMultiply (p, tweak, __compressed) {\n if (!isPoint(p)) throw new TypeError(THROW_BAD_POINT)\n if (!isOrderScalar(tweak)) throw new TypeError(THROW_BAD_TWEAK)\n\n const compressed = assumeCompression(__compressed, p)\n const pp = decodeFrom(p)\n const tt = fromBuffer(tweak)\n const qq = pp.mul(tt)\n if (qq.isInfinity()) return null\n\n return getEncoded(qq, compressed)\n}\n\nfunction privateAdd (d, tweak) {\n if (!isPrivate(d)) throw new TypeError(THROW_BAD_PRIVATE)\n if (!isOrderScalar(tweak)) throw new TypeError(THROW_BAD_TWEAK)\n\n const dd = fromBuffer(d)\n const tt = fromBuffer(tweak)\n const dt = toBuffer(dd.add(tt).umod(n))\n if (!isPrivate(dt)) return null\n\n return dt\n}\n\nfunction privateSub (d, tweak) {\n if (!isPrivate(d)) throw new TypeError(THROW_BAD_PRIVATE)\n if (!isOrderScalar(tweak)) throw new TypeError(THROW_BAD_TWEAK)\n\n const dd = fromBuffer(d)\n const tt = fromBuffer(tweak)\n const dt = toBuffer(dd.sub(tt).umod(n))\n if (!isPrivate(dt)) return null\n\n return dt\n}\n\nfunction sign (hash, x) {\n return __sign(hash, x)\n}\n\nfunction signWithEntropy (hash, x, addData) {\n return __sign(hash, x, addData)\n}\n\nfunction __sign (hash, x, addData) {\n if (!isScalar(hash)) throw new TypeError(THROW_BAD_HASH)\n if (!isPrivate(x)) throw new TypeError(THROW_BAD_PRIVATE)\n if (addData !== undefined && !isScalar(addData)) throw new TypeError(THROW_BAD_EXTRA_DATA)\n\n const d = fromBuffer(x)\n const e = fromBuffer(hash)\n\n let r, s\n const checkSig = function (k) {\n const kI = fromBuffer(k)\n const Q = G.mul(kI)\n\n if (Q.isInfinity()) return false\n\n r = Q.x.umod(n)\n if (r.isZero() === 0) return false\n\n s = kI\n .invm(n)\n .mul(e.add(d.mul(r)))\n .umod(n)\n if (s.isZero() === 0) return false\n\n return true\n }\n\n deterministicGenerateK(hash, x, checkSig, isPrivate, addData)\n\n // enforce low S values, see bip62: 'low s values in signatures'\n if (s.cmp(nDiv2) > 0) {\n s = n.sub(s)\n }\n\n const buffer = Buffer.allocUnsafe(64)\n toBuffer(r).copy(buffer, 0)\n toBuffer(s).copy(buffer, 32)\n return buffer\n}\n\nfunction verify (hash, q, signature, strict) {\n if (!isScalar(hash)) throw new TypeError(THROW_BAD_HASH)\n if (!isPoint(q)) throw new TypeError(THROW_BAD_POINT)\n\n // 1.4.1 Enforce r and s are both integers in the interval [1, n \u2212 1] (1, isSignature enforces '< n - 1')\n if (!isSignature(signature)) throw new TypeError(THROW_BAD_SIGNATURE)\n\n const Q = decodeFrom(q)\n const r = fromBuffer(signature.slice(0, 32))\n const s = fromBuffer(signature.slice(32, 64))\n\n if (strict && s.cmp(nDiv2) > 0) {\n return false\n }\n\n // 1.4.1 Enforce r and s are both integers in the interval [1, n \u2212 1] (2, enforces '> 0')\n if (r.gtn(0) <= 0 /* || r.compareTo(n) >= 0 */) return false\n if (s.gtn(0) <= 0 /* || s.compareTo(n) >= 0 */) return false\n\n // 1.4.2 H = Hash(M), already done by the user\n // 1.4.3 e = H\n const e = fromBuffer(hash)\n\n // Compute s^-1\n const sInv = s.invm(n)\n\n // 1.4.4 Compute u1 = es^\u22121 mod n\n // u2 = rs^\u22121 mod n\n const u1 = e.mul(sInv).umod(n)\n const u2 = r.mul(sInv).umod(n)\n\n // 1.4.5 Compute R = (xR, yR)\n // R = u1G + u2Q\n const R = G.mulAdd(u1, Q, u2)\n\n // 1.4.5 (cont.) Enforce R is not at infinity\n if (R.isInfinity()) return false\n\n // 1.4.6 Convert the field element R.x to an integer\n const xR = R.x\n\n // 1.4.7 Set v = xR mod n\n const v = xR.umod(n)\n\n // 1.4.8 If v = r, output \"valid\", and if v != r, output \"invalid\"\n return v.eq(r)\n}\n\nmodule.exports = {\n isPoint,\n isPointCompressed,\n isPrivate,\n pointAdd,\n pointAddScalar,\n pointCompress,\n pointFromScalar,\n pointMultiply,\n privateAdd,\n privateSub,\n sign,\n signWithEntropy,\n verify\n}\n", "'use strict'\n\ntry {\n module.exports = require('./native')\n} catch (err) {\n module.exports = require('./js')\n}\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.encode = exports.decode = void 0;\nfunction decode(buffer, maxLength = 4, minimal = true) {\n const { length } = buffer;\n if (length === 0)\n return 0;\n if (length > maxLength)\n throw new TypeError('Script number overflow');\n if (minimal) {\n if ((buffer[length - 1] & 0x7f) === 0) {\n if (length <= 1 || (buffer[length - 2] & 0x80) === 0)\n throw new Error('Non-minimally encoded script number');\n }\n }\n if (length === 5) {\n const a = buffer.readUInt32LE(0);\n const b = buffer.readUInt8(4);\n if (b & 0x80)\n return -((b & ~0x80) * 0x100000000 + a);\n return b * 0x100000000 + a;\n }\n let result = 0;\n for (let i = 0; i < length; ++i) {\n result |= buffer[i] << (8 * i);\n }\n if (buffer[length - 1] & 0x80)\n return -(result & ~(0x80 << (8 * (length - 1))));\n return result;\n}\nexports.decode = decode;\nfunction scriptNumSize(i) {\n if (i > 0x7fffffff)\n return 5;\n if (i > 0x7fffff)\n return 4;\n if (i > 0x7fff)\n return 3;\n if (i > 0x7f)\n return 2;\n if (i > 0x00)\n return 1;\n return 0;\n}\nfunction encode(number) {\n let value = Math.abs(number);\n const size = scriptNumSize(value);\n const buffer = Buffer.allocUnsafe(size);\n const negative = number < 0;\n for (let i = 0; i < size; ++i) {\n buffer.writeUInt8(value & 0xff, i);\n value >>= 8;\n }\n if (buffer[size - 1] & 0x80) {\n buffer.writeUInt8(negative ? 0x80 : 0x00, size - 1);\n }\n else if (negative) {\n buffer[size - 1] |= 0x80;\n }\n return buffer;\n}\nexports.encode = encode;\n//# sourceMappingURL=scriptNumber.js.map", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.anyOf = exports.Nil = exports.BufferN = exports.Function = exports.UInt32 = exports.UInt16 = exports.UInt8 = exports.tuple = exports.maybe = exports.Hex = exports.Buffer = exports.String = exports.Boolean = exports.Array = exports.Number = exports.Hash256bit = exports.Hash160bit = exports.Buffer256bit = exports.Satoshi = void 0;\nconst typeforce = require(\"typeforce\");\nconst SATOSHI_MAX = 21 * 1e14;\nfunction Satoshi(value) {\n return typeforce.UInt53(value) && value <= SATOSHI_MAX;\n}\nexports.Satoshi = Satoshi;\nexports.Buffer256bit = typeforce.BufferN(32);\nexports.Hash160bit = typeforce.BufferN(20);\nexports.Hash256bit = typeforce.BufferN(32);\nexports.Number = typeforce.Number, exports.Array = typeforce.Array, exports.Boolean = typeforce.Boolean, exports.String = typeforce.String, exports.Buffer = typeforce.Buffer, exports.Hex = typeforce.Hex, exports.maybe = typeforce.maybe, exports.tuple = typeforce.tuple, exports.UInt8 = typeforce.UInt8, exports.UInt16 = typeforce.UInt16, exports.UInt32 = typeforce.UInt32, exports.Function = typeforce.Function, exports.BufferN = typeforce.BufferN, exports.Nil = typeforce.Nil, exports.anyOf = typeforce.anyOf;\n//# sourceMappingURL=types.js.map", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.encode = exports.decode = exports.fromDER = exports.toDER = void 0;\nconst bip66 = require(\"bip66\");\nconst typeforce = require(\"typeforce\");\nconst types = require(\"../types\");\nconst ZERO = Buffer.alloc(1, 0);\nfunction toDER(x) {\n let i = 0;\n while (x[i] === 0)\n ++i;\n if (i === x.length)\n return ZERO;\n x = x.slice(i);\n if (x[0] & 0x80)\n return Buffer.concat([ZERO, x], 1 + x.length);\n return x;\n}\nexports.toDER = toDER;\nfunction fromDER(x) {\n if (x[0] === 0x00)\n x = x.slice(1);\n const buffer = Buffer.alloc(32, 0);\n const bstart = Math.max(0, 32 - x.length);\n x.copy(buffer, bstart);\n return buffer;\n}\nexports.fromDER = fromDER;\nfunction decode(buffer) {\n const hashType = buffer.readUInt8(buffer.length - 1);\n const hashTypeMod = hashType & ~0x80;\n if (hashTypeMod <= 0 || hashTypeMod >= 4)\n throw new Error(`Invalid hashType ${hashType}`);\n const decoded = bip66.decode(buffer.slice(0, -1));\n const r = fromDER(decoded.r);\n const s = fromDER(decoded.s);\n const signature = Buffer.concat([r, s], 64);\n return { signature, hashType };\n}\nexports.decode = decode;\nfunction encode(signature, hashType) {\n typeforce({\n signature: types.BufferN(64),\n hashType: types.UInt8,\n }, { signature, hashType });\n const hashTypeMod = hashType & ~0x80;\n if (hashTypeMod <= 0 || hashTypeMod >= 4)\n throw new Error(`Invalid hashType ${hashType}`);\n const hashTypeBuffer = Buffer.allocUnsafe(1);\n hashTypeBuffer.writeUInt8(hashType, 0);\n const r = toDER(signature.slice(0, 32));\n const s = toDER(signature.slice(32, 64));\n return Buffer.concat([bip66.encode(r, s), hashTypeBuffer]);\n}\nexports.encode = encode;\n//# sourceMappingURL=scriptSignature.js.map", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.REVERSE_OPS = exports.OPS = void 0;\nconst ops = require(\"bitcoin-ops\");\nconst OPS = Object.assign({\n OP_SSTX: 0xba,\n OP_SSTXCHANGE: 0xbd,\n OP_SSGEN: 0xbb,\n OP_SSRTX: 0xbc,\n}, ops || {});\nexports.OPS = OPS;\nconst REVERSE_OPS = [];\nexports.REVERSE_OPS = REVERSE_OPS;\nObject.keys(OPS).forEach(code => {\n REVERSE_OPS[OPS[code]] = code;\n});\n//# sourceMappingURL=ops.js.map", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.OPS = exports.signature = exports.number = exports.isCanonicalScriptSignature = exports.isDefinedHashType = exports.isCanonicalPubKey = exports.toStack = exports.fromASM = exports.toASM = exports.decompile = exports.compile = exports.isPushOnly = void 0;\nconst bip66 = require(\"bip66\");\nconst pushdata = require(\"pushdata-bitcoin\");\nconst typeforce = require(\"typeforce\");\nconst ecc = require(\"tiny-secp256k1\");\nconst scriptNumber = require(\"./scriptNumber\");\nconst scriptSignature = require(\"./scriptSignature\");\nconst ops_1 = require(\"./ops\");\nconst types = require(\"../types\");\nconst OP_INT_BASE = ops_1.OPS.OP_RESERVED;\nfunction isOPInt(value) {\n return (types.Number(value) &&\n (value === ops_1.OPS.OP_0 ||\n (value >= ops_1.OPS.OP_1 && value <= ops_1.OPS.OP_16) ||\n value === ops_1.OPS.OP_1NEGATE));\n}\nfunction isPushOnlyChunk(value) {\n return types.Buffer(value) || isOPInt(value);\n}\nfunction isPushOnly(value) {\n return types.Array(value) && value.every(isPushOnlyChunk);\n}\nexports.isPushOnly = isPushOnly;\nfunction asMinimalOP(buffer) {\n if (buffer.length === 0)\n return ops_1.OPS.OP_0;\n if (buffer.length !== 1)\n return;\n if (buffer[0] >= 1 && buffer[0] <= 16)\n return OP_INT_BASE + buffer[0];\n if (buffer[0] === 0x81)\n return ops_1.OPS.OP_1NEGATE;\n}\nfunction compile(chunks) {\n if (types.Buffer(chunks))\n return chunks;\n typeforce(types.Array, chunks);\n const bufferSize = chunks.reduce((accum, chunk) => {\n if (types.Buffer(chunk)) {\n if (chunk.length === 1 && asMinimalOP(chunk) !== undefined) {\n return accum + 1;\n }\n return accum + pushdata.encodingLength(chunk.length) + chunk.length;\n }\n return accum + 1;\n }, 0.0);\n const buffer = Buffer.allocUnsafe(bufferSize);\n let offset = 0;\n chunks.forEach(chunk => {\n if (types.Buffer(chunk)) {\n const opcode = asMinimalOP(chunk);\n if (opcode !== undefined) {\n buffer.writeUInt8(opcode, offset);\n offset += 1;\n return;\n }\n offset += pushdata.encode(buffer, chunk.length, offset);\n chunk.copy(buffer, offset);\n offset += chunk.length;\n }\n else {\n buffer.writeUInt8(chunk, offset);\n offset += 1;\n }\n });\n if (offset !== buffer.length)\n throw new Error('Could not decode chunks');\n return buffer;\n}\nexports.compile = compile;\nfunction decompile(buffer) {\n if (types.Array(buffer))\n return buffer;\n typeforce(types.Buffer, buffer);\n const chunks = [];\n let i = 0;\n while (i < buffer.length) {\n const opcode = buffer[i];\n if (opcode > ops_1.OPS.OP_0 && opcode <= ops_1.OPS.OP_PUSHDATA4) {\n const d = pushdata.decode(buffer, i);\n if (d === null)\n return [];\n i += d.size;\n if (i + d.number > buffer.length)\n return [];\n const data = buffer.slice(i, i + d.number);\n i += d.number;\n const op = asMinimalOP(data);\n if (op !== undefined) {\n chunks.push(op);\n }\n else {\n chunks.push(data);\n }\n }\n else {\n chunks.push(opcode);\n i += 1;\n }\n }\n return chunks;\n}\nexports.decompile = decompile;\nfunction toASM(chunks) {\n if (types.Buffer(chunks)) {\n chunks = decompile(chunks);\n }\n return chunks\n .map(chunk => {\n if (types.Buffer(chunk)) {\n const op = asMinimalOP(chunk);\n if (op === undefined)\n return chunk.toString('hex');\n chunk = op;\n }\n return ops_1.REVERSE_OPS[chunk];\n })\n .join(' ');\n}\nexports.toASM = toASM;\nfunction fromASM(asm) {\n typeforce(types.String, asm);\n return compile(asm.split(' ').map(chunkStr => {\n if (ops_1.OPS[chunkStr] !== undefined)\n return ops_1.OPS[chunkStr];\n typeforce(types.Hex, chunkStr);\n return Buffer.from(chunkStr, 'hex');\n }));\n}\nexports.fromASM = fromASM;\nfunction toStack(chunks0) {\n const chunks = decompile(chunks0);\n typeforce(isPushOnly, chunks);\n return chunks === null || chunks === void 0 ? void 0 : chunks.map(op => {\n if (types.Buffer(op))\n return op;\n if (op === ops_1.OPS.OP_0)\n return Buffer.allocUnsafe(0);\n return scriptNumber.encode(op - OP_INT_BASE);\n });\n}\nexports.toStack = toStack;\nfunction isCanonicalPubKey(buffer) {\n return ecc.isPoint(buffer);\n}\nexports.isCanonicalPubKey = isCanonicalPubKey;\nfunction isDefinedHashType(hashType) {\n const hashTypeMod = hashType & ~0x80;\n return hashTypeMod > 0x00 && hashTypeMod < 0x04;\n}\nexports.isDefinedHashType = isDefinedHashType;\nfunction isCanonicalScriptSignature(buffer) {\n if (!types.Buffer(buffer))\n return false;\n if (!isDefinedHashType(buffer[buffer.length - 1]))\n return false;\n return bip66.check(buffer.slice(0, -1));\n}\nexports.isCanonicalScriptSignature = isCanonicalScriptSignature;\nexports.number = scriptNumber;\nexports.signature = scriptSignature;\nvar ops_2 = require(\"./ops\");\nObject.defineProperty(exports, \"OPS\", { enumerable: true, get: function () { return ops_2.OPS; } });\n//# sourceMappingURL=index.js.map", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.value = exports.prop = void 0;\nfunction prop(object, name, f) {\n Object.defineProperty(object, name, {\n configurable: true,\n enumerable: true,\n get() {\n const value = f.call(this);\n this[name] = value;\n return value;\n },\n set(value) {\n Object.defineProperty(this, name, {\n configurable: true,\n enumerable: true,\n value,\n writable: true,\n });\n },\n });\n}\nexports.prop = prop;\nfunction value(f) {\n let value;\n return () => {\n if (value !== undefined)\n return value;\n value = f();\n return value;\n };\n}\nexports.value = value;\n//# sourceMappingURL=lazy.js.map", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.p2data = void 0;\nconst typef = require(\"typeforce\");\nconst networks_1 = require(\"../networks\");\nconst bscript = require(\"../script\");\nconst lazy = require(\"./lazy\");\nconst { OPS } = bscript;\nfunction stacksEqual(a, b) {\n if (a.length !== b.length)\n return false;\n return a.every((x, i) => x.equals(b[i]));\n}\nfunction p2data(a, opts) {\n if (!a.data && !a.output)\n throw new TypeError('Not enough data');\n opts = Object.assign({ validate: true }, opts || {});\n typef({\n network: typef.maybe(typef.Object),\n output: typef.maybe(typef.Buffer),\n data: typef.maybe(typef.arrayOf(typef.Buffer)),\n }, a);\n const network = a.network || networks_1.bitcoin;\n const o = { name: 'embed', network };\n lazy.prop(o, 'output', () => {\n if (!a.data)\n return;\n return bscript.compile([OPS.OP_RETURN].concat(a.data));\n });\n lazy.prop(o, 'data', () => {\n if (!a.output)\n return;\n return bscript.decompile(a.output).slice(1);\n });\n if (opts.validate) {\n if (a.output) {\n const chunks = bscript.decompile(a.output);\n if (chunks[0] !== OPS.OP_RETURN)\n throw new TypeError('Output is invalid');\n if (!chunks.slice(1).every(typef.Buffer))\n throw new TypeError('Output is invalid');\n if (a.data && !stacksEqual(a.data, o.data))\n throw new TypeError('Data mismatch');\n }\n }\n return Object.assign(o, a);\n}\nexports.p2data = p2data;\n//# sourceMappingURL=embed.js.map", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.p2ms = void 0;\nconst ecc = require(\"tiny-secp256k1\");\nconst typef = require(\"typeforce\");\nconst networks_1 = require(\"../networks\");\nconst bscript = require(\"../script\");\nconst lazy = require(\"./lazy\");\nconst { OPS } = bscript;\nconst OP_INT_BASE = OPS.OP_RESERVED;\nfunction stacksEqual(a, b) {\n if (a.length !== b.length)\n return false;\n return a.every((x, i) => x.equals(b[i]));\n}\nfunction p2ms(a, opts) {\n if (!a.input && !a.output && !(a.pubkeys && a.m !== undefined) && !a.signatures)\n throw new TypeError('Not enough data');\n opts = Object.assign({ validate: true }, opts || {});\n function isAcceptableSignature(x) {\n return (bscript.isCanonicalScriptSignature(x) ||\n (opts.allowIncomplete && x === OPS.OP_0) !== undefined);\n }\n typef({\n network: typef.maybe(typef.Object),\n m: typef.maybe(typef.Number),\n n: typef.maybe(typef.Number),\n output: typef.maybe(typef.Buffer),\n pubkeys: typef.maybe(typef.arrayOf(ecc.isPoint)),\n signatures: typef.maybe(typef.arrayOf(isAcceptableSignature)),\n input: typef.maybe(typef.Buffer),\n }, a);\n const network = a.network || networks_1.bitcoin;\n const o = { network };\n let chunks = [];\n let decoded = false;\n function decode(output) {\n if (decoded)\n return;\n decoded = true;\n chunks = bscript.decompile(output);\n o.m = chunks[0] - OP_INT_BASE;\n o.n = chunks[chunks.length - 2] - OP_INT_BASE;\n o.pubkeys = chunks.slice(1, -2);\n }\n lazy.prop(o, 'output', () => {\n if (!a.m)\n return;\n if (!o.n)\n return;\n if (!a.pubkeys)\n return;\n return bscript.compile([].concat(OP_INT_BASE + a.m, a.pubkeys, OP_INT_BASE + o.n, OPS.OP_CHECKMULTISIG));\n });\n lazy.prop(o, 'm', () => {\n if (!o.output)\n return;\n decode(o.output);\n return o.m;\n });\n lazy.prop(o, 'n', () => {\n if (!o.pubkeys)\n return;\n return o.pubkeys.length;\n });\n lazy.prop(o, 'pubkeys', () => {\n if (!a.output)\n return;\n decode(a.output);\n return o.pubkeys;\n });\n lazy.prop(o, 'signatures', () => {\n if (!a.input)\n return;\n return bscript.decompile(a.input).slice(1);\n });\n lazy.prop(o, 'input', () => {\n if (!a.signatures)\n return;\n return bscript.compile([OPS.OP_0].concat(a.signatures));\n });\n lazy.prop(o, 'witness', () => {\n if (!o.input)\n return;\n return [];\n });\n lazy.prop(o, 'name', () => {\n if (!o.m || !o.n)\n return;\n return `p2ms(${o.m} of ${o.n})`;\n });\n if (opts.validate) {\n if (a.output) {\n decode(a.output);\n if (!typef.Number(chunks[0]))\n throw new TypeError('Output is invalid');\n if (!typef.Number(chunks[chunks.length - 2]))\n throw new TypeError('Output is invalid');\n if (chunks[chunks.length - 1] !== OPS.OP_CHECKMULTISIG)\n throw new TypeError('Output is invalid');\n if (o.m <= 0 || o.n > 16 || o.m > o.n || o.n !== chunks.length - 3)\n throw new TypeError('Output is invalid');\n if (!o.pubkeys.every(x => ecc.isPoint(x)))\n throw new TypeError('Output is invalid');\n if (a.m !== undefined && a.m !== o.m)\n throw new TypeError('m mismatch');\n if (a.n !== undefined && a.n !== o.n)\n throw new TypeError('n mismatch');\n if (a.pubkeys && !stacksEqual(a.pubkeys, o.pubkeys))\n throw new TypeError('Pubkeys mismatch');\n }\n if (a.pubkeys) {\n if (a.n !== undefined && a.n !== a.pubkeys.length)\n throw new TypeError('Pubkey count mismatch');\n o.n = a.pubkeys.length;\n if (o.n < o.m)\n throw new TypeError('Pubkey count cannot be less than m');\n }\n if (a.signatures) {\n if (a.signatures.length < o.m)\n throw new TypeError('Not enough signatures provided');\n if (a.signatures.length > o.m)\n throw new TypeError('Too many signatures provided');\n }\n if (a.input) {\n if (a.input[0] !== OPS.OP_0)\n throw new TypeError('Input is invalid');\n if (o.signatures.length === 0 || !o.signatures.every(isAcceptableSignature))\n throw new TypeError('Input has invalid signature(s)');\n if (a.signatures && !stacksEqual(a.signatures, o.signatures))\n throw new TypeError('Signature mismatch');\n if (a.m !== undefined && a.m !== a.signatures.length)\n throw new TypeError('Signature count mismatch');\n }\n }\n return Object.assign(o, a);\n}\nexports.p2ms = p2ms;\n//# sourceMappingURL=p2ms.js.map", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.p2pk = void 0;\nconst ecc = require(\"tiny-secp256k1\");\nconst typef = require(\"typeforce\");\nconst networks_1 = require(\"../networks\");\nconst bscript = require(\"../script\");\nconst lazy = require(\"./lazy\");\nconst { OPS } = bscript;\nfunction p2pk(a, opts) {\n if (!a.input && !a.output && !a.pubkey && !a.input && !a.signature)\n throw new TypeError('Not enough data');\n opts = Object.assign({ validate: true }, opts || {});\n typef({\n network: typef.maybe(typef.Object),\n output: typef.maybe(typef.Buffer),\n pubkey: typef.maybe(ecc.isPoint),\n signature: typef.maybe(bscript.isCanonicalScriptSignature),\n input: typef.maybe(typef.Buffer),\n }, a);\n const _chunks = lazy.value(() => bscript.decompile(a.input));\n const network = a.network || networks_1.bitcoin;\n const o = { name: 'p2pk', network };\n lazy.prop(o, 'output', () => {\n if (!a.pubkey)\n return;\n return bscript.compile([a.pubkey, OPS.OP_CHECKSIG]);\n });\n lazy.prop(o, 'pubkey', () => {\n if (!a.output)\n return;\n return a.output.slice(1, -1);\n });\n lazy.prop(o, 'signature', () => {\n if (!a.input)\n return;\n return _chunks()[0];\n });\n lazy.prop(o, 'input', () => {\n if (!a.signature)\n return;\n return bscript.compile([a.signature]);\n });\n lazy.prop(o, 'witness', () => {\n if (!o.input)\n return;\n return [];\n });\n if (opts.validate) {\n if (a.output) {\n if (a.output[a.output.length - 1] !== OPS.OP_CHECKSIG)\n throw new TypeError('Output is invalid');\n if (!ecc.isPoint(o.pubkey))\n throw new TypeError('Output pubkey is invalid');\n if (a.pubkey && !a.pubkey.equals(o.pubkey))\n throw new TypeError('Pubkey mismatch');\n }\n if (a.signature) {\n if (a.input && !a.input.equals(o.input))\n throw new TypeError('Signature mismatch');\n }\n if (a.input) {\n if (_chunks().length !== 1)\n throw new TypeError('Input is invalid');\n if (!bscript.isCanonicalScriptSignature(o.signature))\n throw new TypeError('Input has invalid signature');\n }\n }\n return Object.assign(o, a);\n}\nexports.p2pk = p2pk;\n//# sourceMappingURL=p2pk.js.map", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.p2pkh = void 0;\nconst ecc = require(\"tiny-secp256k1\");\nconst typef = require(\"typeforce\");\nconst bs58check = require(\"../bs58check\");\nconst bcrypto = require(\"../crypto\");\nconst networks_1 = require(\"../networks\");\nconst bscript = require(\"../script\");\nconst lazy = require(\"./lazy\");\nconst { OPS } = bscript;\nfunction p2pkh(a, opts) {\n if (!a.address && !a.hash && !a.output && !a.pubkey && !a.input)\n throw new TypeError('Not enough data');\n opts = Object.assign({ validate: true }, opts || {});\n typef({\n network: typef.maybe(typef.Object),\n address: typef.maybe(typef.String),\n hash: typef.maybe(typef.BufferN(20)),\n output: typef.maybe(typef.BufferN(25)),\n pubkey: typef.maybe(ecc.isPoint),\n signature: typef.maybe(bscript.isCanonicalScriptSignature),\n input: typef.maybe(typef.Buffer),\n }, a);\n const _address = lazy.value(() => bs58check.decodeAddress(a.address, a.network));\n const _chunks = lazy.value(() => bscript.decompile(a.input));\n const network = a.network || networks_1.bitcoin;\n const o = { name: 'p2pkh', network };\n lazy.prop(o, 'address', () => {\n if (!o.hash)\n return;\n return bs58check.encodeAddress(o.hash, network.pubKeyHash, network);\n });\n lazy.prop(o, 'hash', () => {\n if (a.output)\n return a.output.slice(3, 23);\n if (a.address)\n return _address().hash;\n if (a.pubkey || o.pubkey)\n return bcrypto.hash160(a.pubkey || o.pubkey);\n });\n lazy.prop(o, 'output', () => {\n if (!o.hash)\n return;\n return bscript.compile([\n OPS.OP_DUP,\n OPS.OP_HASH160,\n o.hash,\n OPS.OP_EQUALVERIFY,\n OPS.OP_CHECKSIG,\n ]);\n });\n lazy.prop(o, 'pubkey', () => {\n if (!a.input)\n return;\n return _chunks()[1];\n });\n lazy.prop(o, 'signature', () => {\n if (!a.input)\n return;\n return _chunks()[0];\n });\n lazy.prop(o, 'input', () => {\n if (!a.pubkey)\n return;\n if (!a.signature)\n return;\n return bscript.compile([a.signature, a.pubkey]);\n });\n lazy.prop(o, 'witness', () => {\n if (!o.input)\n return;\n return [];\n });\n if (opts.validate) {\n let hash = Buffer.from([]);\n if (a.address) {\n const { version, hash: aHash } = _address();\n if (version !== network.pubKeyHash)\n throw new TypeError('Invalid version or Network mismatch');\n if (aHash.length !== 20)\n throw new TypeError('Invalid address');\n hash = aHash;\n }\n if (a.hash) {\n if (hash.length > 0 && !hash.equals(a.hash))\n throw new TypeError('Hash mismatch');\n else\n hash = a.hash;\n }\n if (a.output) {\n if (a.output.length !== 25 ||\n a.output[0] !== OPS.OP_DUP ||\n a.output[1] !== OPS.OP_HASH160 ||\n a.output[2] !== 0x14 ||\n a.output[23] !== OPS.OP_EQUALVERIFY ||\n a.output[24] !== OPS.OP_CHECKSIG)\n throw new TypeError('Output is invalid');\n const hash2 = a.output.slice(3, 23);\n if (hash.length > 0 && !hash.equals(hash2))\n throw new TypeError('Hash mismatch');\n else\n hash = hash2;\n }\n if (a.pubkey) {\n const pkh = bcrypto.hash160(a.pubkey);\n if (hash.length > 0 && !hash.equals(pkh))\n throw new TypeError('Hash mismatch');\n else\n hash = pkh;\n }\n if (a.input) {\n const chunks = _chunks();\n if (chunks.length !== 2)\n throw new TypeError('Input is invalid');\n if (!bscript.isCanonicalScriptSignature(chunks[0]))\n throw new TypeError('Input has invalid signature');\n if (!ecc.isPoint(chunks[1]))\n throw new TypeError('Input has invalid pubkey');\n if (a.signature && !a.signature.equals(chunks[0]))\n throw new TypeError('Signature mismatch');\n if (a.pubkey && !a.pubkey.equals(chunks[1]))\n throw new TypeError('Pubkey mismatch');\n const pkh = bcrypto.hash160(chunks[1]);\n if (hash.length > 0 && !hash.equals(pkh))\n throw new TypeError('Hash mismatch');\n }\n }\n return Object.assign(o, a);\n}\nexports.p2pkh = p2pkh;\n//# sourceMappingURL=p2pkh.js.map", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.p2sh = void 0;\nconst typef = require(\"typeforce\");\nconst bs58check = require(\"../bs58check\");\nconst bcrypto = require(\"../crypto\");\nconst networks_1 = require(\"../networks\");\nconst bscript = require(\"../script\");\nconst lazy = require(\"./lazy\");\nconst { OPS } = bscript;\nfunction stacksEqual(a, b) {\n if (a.length !== b.length)\n return false;\n return a.every((x, i) => x.equals(b[i]));\n}\nfunction p2sh(a, opts) {\n if (!a.address && !a.hash && !a.output && !a.redeem && !a.input)\n throw new TypeError('Not enough data');\n opts = Object.assign({ validate: true }, opts || {});\n typef({\n network: typef.maybe(typef.Object),\n address: typef.maybe(typef.String),\n hash: typef.maybe(typef.BufferN(20)),\n output: typef.maybe(typef.BufferN(23)),\n redeem: typef.maybe({\n network: typef.maybe(typef.Object),\n output: typef.maybe(typef.Buffer),\n input: typef.maybe(typef.Buffer),\n witness: typef.maybe(typef.arrayOf(typef.Buffer)),\n }),\n input: typef.maybe(typef.Buffer),\n witness: typef.maybe(typef.arrayOf(typef.Buffer)),\n }, a);\n let { network } = a;\n if (!network) {\n network = (a.redeem && a.redeem.network) || networks_1.bitcoin;\n }\n const o = { network };\n const _address = lazy.value(() => bs58check.decodeAddress(a.address, a.network));\n const _chunks = lazy.value(() => bscript.decompile(a.input));\n const _redeem = lazy.value(() => {\n const chunks = _chunks();\n return {\n network,\n output: chunks[chunks.length - 1],\n input: bscript.compile(chunks.slice(0, -1)),\n witness: a.witness || [],\n };\n });\n lazy.prop(o, 'address', () => {\n if (!o.hash)\n return;\n return bs58check.encodeAddress(o.hash, network.scriptHash, network);\n });\n lazy.prop(o, 'hash', () => {\n if (a.output)\n return a.output.slice(2, 22);\n if (a.address)\n return _address().hash;\n if (o.redeem && o.redeem.output)\n return bcrypto.hash160(o.redeem.output);\n });\n lazy.prop(o, 'output', () => {\n if (!o.hash)\n return;\n return bscript.compile([OPS.OP_HASH160, o.hash, OPS.OP_EQUAL]);\n });\n lazy.prop(o, 'redeem', () => {\n if (!a.input)\n return;\n return _redeem();\n });\n lazy.prop(o, 'input', () => {\n if (!a.redeem || !a.redeem.input || !a.redeem.output)\n return;\n return bscript.compile([].concat(bscript.decompile(a.redeem.input), a.redeem.output));\n });\n lazy.prop(o, 'witness', () => {\n if (o.redeem && o.redeem.witness)\n return o.redeem.witness;\n if (o.input)\n return [];\n });\n lazy.prop(o, 'name', () => {\n const nameParts = ['p2sh'];\n if (o.redeem !== undefined && o.redeem.name !== undefined)\n nameParts.push(o.redeem.name);\n return nameParts.join('-');\n });\n if (opts.validate) {\n let hash = Buffer.from([]);\n if (a.address) {\n const { version, hash: aHash } = _address();\n if (version !== network.scriptHash)\n throw new TypeError('Invalid version or Network mismatch');\n if (aHash.length !== 20)\n throw new TypeError('Invalid address');\n hash = aHash;\n }\n if (a.hash) {\n if (hash.length > 0 && !hash.equals(a.hash))\n throw new TypeError('Hash mismatch');\n else\n hash = a.hash;\n }\n if (a.output) {\n if (a.output.length !== 23 ||\n a.output[0] !== OPS.OP_HASH160 ||\n a.output[1] !== 0x14 ||\n a.output[22] !== OPS.OP_EQUAL)\n throw new TypeError('Output is invalid');\n const hash2 = a.output.slice(2, 22);\n if (hash.length > 0 && !hash.equals(hash2))\n throw new TypeError('Hash mismatch');\n else\n hash = hash2;\n }\n const checkRedeem = (redeem) => {\n if (redeem.output) {\n const decompile = bscript.decompile(redeem.output);\n if (!decompile || decompile.length < 1)\n throw new TypeError('Redeem.output too short');\n const hash2 = bcrypto.hash160(redeem.output);\n if (hash.length > 0 && !hash.equals(hash2))\n throw new TypeError('Hash mismatch');\n else\n hash = hash2;\n }\n if (redeem.input) {\n const hasInput = redeem.input.length > 0;\n const hasWitness = redeem.witness && redeem.witness.length > 0;\n if (!hasInput && !hasWitness)\n throw new TypeError('Empty input');\n if (hasInput && hasWitness)\n throw new TypeError('Input and witness provided');\n if (hasInput) {\n const richunks = bscript.decompile(redeem.input);\n if (!bscript.isPushOnly(richunks))\n throw new TypeError('Non push-only scriptSig');\n }\n }\n };\n if (a.input) {\n const chunks = _chunks();\n if (!chunks || chunks.length < 1)\n throw new TypeError('Input too short');\n if (!Buffer.isBuffer(_redeem().output))\n throw new TypeError('Input is invalid');\n checkRedeem(_redeem());\n }\n if (a.redeem) {\n if (a.redeem.network && a.redeem.network !== network)\n throw new TypeError('Network mismatch');\n if (a.input) {\n const redeem = _redeem();\n if (a.redeem.output && !a.redeem.output.equals(redeem.output))\n throw new TypeError('Redeem.output mismatch');\n if (a.redeem.input && !a.redeem.input.equals(redeem.input))\n throw new TypeError('Redeem.input mismatch');\n }\n checkRedeem(a.redeem);\n }\n if (a.witness) {\n if (a.redeem && a.redeem.witness && !stacksEqual(a.redeem.witness, a.witness))\n throw new TypeError('Witness and redeem.witness mismatch');\n }\n }\n return Object.assign(o, a);\n}\nexports.p2sh = p2sh;\n//# sourceMappingURL=p2sh.js.map", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.p2tr = void 0;\nconst ecc = require(\"tiny-secp256k1\");\nconst typef = require(\"typeforce\");\nconst bech32_1 = require(\"bech32\");\nconst networks_1 = require(\"../networks\");\nconst bcrypto = require(\"../crypto\");\nconst bscript = require(\"../script\");\nconst lazy = require(\"./lazy\");\nconst { OPS } = bscript;\nconst TAGS = ['TapLeaf', 'TapBranch', 'TapTweak', 'KeyAgg list', 'KeyAgg coefficient'];\nconst TAGGED_HASH_PREFIXES = TAGS.reduce((obj, tag) => {\n const tagHash = bcrypto.sha256(Buffer.from(tag));\n obj[tag] = Buffer.concat([tagHash, tagHash]);\n return obj;\n}, {});\nconst EVEN_Y_COORD_PREFIX = new Uint8Array([0x02]);\nfunction taggedHash(prefix, data) {\n return bcrypto.sha256(Buffer.concat([TAGGED_HASH_PREFIXES[prefix], data]));\n}\nfunction tapTweakPubkey(pubkey, tapTreeRoot) {\n let tapTweak;\n if (tapTreeRoot) {\n tapTweak = taggedHash('TapTweak', Buffer.concat([pubkey, tapTreeRoot]));\n }\n else {\n tapTweak = taggedHash('TapTweak', pubkey);\n }\n const tweakedPubkey = ecc.pointAddScalar(Buffer.concat([EVEN_Y_COORD_PREFIX, pubkey]), tapTweak);\n return {\n parity: tweakedPubkey[0] === EVEN_Y_COORD_PREFIX[0] ? 0 : 1,\n pubkey: tweakedPubkey.slice(1),\n };\n}\nconst liftX = (pubkey) => {\n const offset = pubkey.length === 33 ? 1 : 0;\n return pubkey.slice(offset);\n};\nfunction p2tr(a, opts) {\n if (!a.address && !a.pubkey && !a.output)\n throw new TypeError('Not enough data');\n opts = Object.assign({ validate: true }, opts || {});\n const network = a.network || networks_1.bitcoin;\n const o = { name: 'p2tr', network };\n typef({\n network: typef.maybe(typef.Object),\n address: typef.maybe(typef.String),\n output: typef.maybe(typef.BufferN(34)),\n pubkey: typef.maybe(typef.anyOf(typef.BufferN(32), typef.BufferN(33))),\n }, a);\n const _address = lazy.value(() => {\n const result = bech32_1.bech32m.decode(a.address);\n const version = result.words.shift();\n const data = bech32_1.bech32m.fromWords(result.words);\n return {\n version,\n prefix: result.prefix,\n data: Buffer.from(data),\n };\n });\n lazy.prop(o, 'address', () => {\n if (!o.hash)\n return;\n const words = bech32_1.bech32m.toWords(o.hash);\n words.unshift(0x01);\n return bech32_1.bech32m.encode(network.bech32, words);\n });\n lazy.prop(o, 'hash', () => {\n if (a.output)\n return a.output.slice(2);\n if (a.address)\n return _address().data;\n if (a.pubkey) {\n return tapTweakPubkey(liftX(a.pubkey)).pubkey;\n }\n });\n lazy.prop(o, 'output', () => {\n if (!o.hash)\n return;\n return bscript.compile([OPS.OP_1, o.hash]);\n });\n if (opts.validate) {\n let hash = Buffer.from([]);\n if (a.address) {\n const { prefix, version, data } = _address();\n if (prefix !== network.bech32)\n throw new TypeError('Invalid prefix or Network mismatch');\n if (version !== 0x01)\n throw new TypeError('Invalid address version');\n if (data.length !== 32)\n throw new TypeError('Invalid address data');\n hash = data;\n }\n if (a.hash) {\n if (hash.length > 0 && !hash.equals(a.hash))\n throw new TypeError('Hash mismatch');\n else\n hash = a.hash;\n }\n if (a.output) {\n if (a.output[0] !== OPS.OP_1 || a.output[1] !== 0x20)\n throw new TypeError('p2tr output is invalid');\n const hash2 = a.output.slice(2);\n if (hash.length > 0 && !hash.equals(hash2))\n throw new TypeError('Hash mismatch');\n else\n hash = hash2;\n }\n if (a.pubkey) {\n const pkh = tapTweakPubkey(liftX(a.pubkey)).pubkey;\n if (hash.length > 0 && !hash.equals(pkh))\n throw new TypeError('Hash mismatch');\n else\n hash = pkh;\n if (!ecc.isPoint(Buffer.concat([EVEN_Y_COORD_PREFIX, liftX(a.pubkey)])))\n throw new TypeError('Invalid pubkey for p2tr');\n }\n }\n return Object.assign(o, a);\n}\nexports.p2tr = p2tr;\n//# sourceMappingURL=p2tr.js.map", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.p2wpkh = void 0;\nconst ecc = require(\"tiny-secp256k1\");\nconst typef = require(\"typeforce\");\nconst bech32_1 = require(\"bech32\");\nconst bcrypto = require(\"../crypto\");\nconst networks_1 = require(\"../networks\");\nconst bscript = require(\"../script\");\nconst lazy = require(\"./lazy\");\nconst { OPS } = bscript;\nconst EMPTY_BUFFER = Buffer.alloc(0);\nfunction p2wpkh(a, opts) {\n if (!a.address && !a.hash && !a.output && !a.pubkey && !a.witness)\n throw new TypeError('Not enough data');\n opts = Object.assign({ validate: true }, opts || {});\n typef({\n address: typef.maybe(typef.String),\n hash: typef.maybe(typef.BufferN(20)),\n input: typef.maybe(typef.BufferN(0)),\n network: typef.maybe(typef.Object),\n output: typef.maybe(typef.BufferN(22)),\n pubkey: typef.maybe(ecc.isPoint),\n signature: typef.maybe(bscript.isCanonicalScriptSignature),\n witness: typef.maybe(typef.arrayOf(typef.Buffer)),\n }, a);\n const _address = lazy.value(() => {\n const result = bech32_1.bech32.decode(a.address);\n const version = result.words.shift();\n const data = bech32_1.bech32.fromWords(result.words);\n return {\n version,\n prefix: result.prefix,\n data: Buffer.from(data),\n };\n });\n const network = a.network || networks_1.bitcoin;\n const o = { name: 'p2wpkh', network };\n lazy.prop(o, 'address', () => {\n if (!o.hash)\n return;\n const words = bech32_1.bech32.toWords(o.hash);\n words.unshift(0x00);\n return bech32_1.bech32.encode(network.bech32, words);\n });\n lazy.prop(o, 'hash', () => {\n if (a.output)\n return a.output.slice(2, 22);\n if (a.address)\n return _address().data;\n if (a.pubkey || o.pubkey)\n return bcrypto.hash160(a.pubkey || o.pubkey);\n });\n lazy.prop(o, 'output', () => {\n if (!o.hash)\n return;\n return bscript.compile([OPS.OP_0, o.hash]);\n });\n lazy.prop(o, 'pubkey', () => {\n if (a.pubkey)\n return a.pubkey;\n if (!a.witness)\n return;\n return a.witness[1];\n });\n lazy.prop(o, 'signature', () => {\n if (!a.witness)\n return;\n return a.witness[0];\n });\n lazy.prop(o, 'input', () => {\n if (!o.witness)\n return;\n return EMPTY_BUFFER;\n });\n lazy.prop(o, 'witness', () => {\n if (!a.pubkey)\n return;\n if (!a.signature)\n return;\n return [a.signature, a.pubkey];\n });\n if (opts.validate) {\n let hash = Buffer.from([]);\n if (a.address) {\n const { prefix, version, data } = _address();\n if (network && network.bech32 !== prefix)\n throw new TypeError('Invalid prefix or Network mismatch');\n if (version !== 0x00)\n throw new TypeError('Invalid address version');\n if (data.length !== 20)\n throw new TypeError('Invalid address data');\n hash = data;\n }\n if (a.hash) {\n if (hash.length > 0 && !hash.equals(a.hash))\n throw new TypeError('Hash mismatch');\n else\n hash = a.hash;\n }\n if (a.output) {\n if (a.output.length !== 22 || a.output[0] !== OPS.OP_0 || a.output[1] !== 0x14)\n throw new TypeError('Output is invalid');\n if (hash.length > 0 && !hash.equals(a.output.slice(2)))\n throw new TypeError('Hash mismatch');\n else\n hash = a.output.slice(2);\n }\n if (a.pubkey) {\n const pkh = bcrypto.hash160(a.pubkey);\n if (hash.length > 0 && !hash.equals(pkh))\n throw new TypeError('Hash mismatch');\n else\n hash = pkh;\n if (!ecc.isPoint(a.pubkey) || a.pubkey.length !== 33)\n throw new TypeError('Invalid pubkey for p2wpkh');\n }\n if (a.witness) {\n if (a.witness.length !== 2)\n throw new TypeError('Witness is invalid');\n if (!bscript.isCanonicalScriptSignature(a.witness[0]))\n throw new TypeError('Witness has invalid signature');\n if (!ecc.isPoint(a.witness[1]) || a.witness[1].length !== 33)\n throw new TypeError('Witness has invalid pubkey');\n if (a.signature && !a.signature.equals(a.witness[0]))\n throw new TypeError('Signature mismatch');\n if (a.pubkey && !a.pubkey.equals(a.witness[1]))\n throw new TypeError('Pubkey mismatch');\n const pkh = bcrypto.hash160(a.witness[1]);\n if (hash.length > 0 && !hash.equals(pkh))\n throw new TypeError('Hash mismatch');\n }\n }\n return Object.assign(o, a);\n}\nexports.p2wpkh = p2wpkh;\n//# sourceMappingURL=p2wpkh.js.map", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.p2wsh = void 0;\nconst ecc = require(\"tiny-secp256k1\");\nconst typef = require(\"typeforce\");\nconst bech32_1 = require(\"bech32\");\nconst bcrypto = require(\"../crypto\");\nconst networks_1 = require(\"../networks\");\nconst bscript = require(\"../script\");\nconst lazy = require(\"./lazy\");\nconst { OPS } = bscript;\nconst EMPTY_BUFFER = Buffer.alloc(0);\nfunction stacksEqual(a, b) {\n if (a.length !== b.length)\n return false;\n return a.every((x, i) => x.equals(b[i]));\n}\nfunction chunkHasUncompressedPubkey(chunk) {\n if (Buffer.isBuffer(chunk) && chunk.length === 65 && chunk[0] === 0x04 && ecc.isPoint(chunk)) {\n return true;\n }\n return false;\n}\nfunction p2wsh(a, opts) {\n if (!a.address && !a.hash && !a.output && !a.redeem && !a.witness)\n throw new TypeError('Not enough data');\n opts = Object.assign({ validate: true }, opts || {});\n typef({\n network: typef.maybe(typef.Object),\n address: typef.maybe(typef.String),\n hash: typef.maybe(typef.BufferN(32)),\n output: typef.maybe(typef.BufferN(34)),\n redeem: typef.maybe({\n input: typef.maybe(typef.Buffer),\n network: typef.maybe(typef.Object),\n output: typef.maybe(typef.Buffer),\n witness: typef.maybe(typef.arrayOf(typef.Buffer)),\n }),\n input: typef.maybe(typef.BufferN(0)),\n witness: typef.maybe(typef.arrayOf(typef.Buffer)),\n }, a);\n const _address = lazy.value(() => {\n const result = bech32_1.bech32.decode(a.address);\n const version = result.words.shift();\n const data = bech32_1.bech32.fromWords(result.words);\n return {\n version,\n prefix: result.prefix,\n data: Buffer.from(data),\n };\n });\n const _rchunks = lazy.value(() => bscript.decompile(a.redeem.input));\n let { network } = a;\n if (!network) {\n network = (a.redeem && a.redeem.network) || networks_1.bitcoin;\n }\n const o = { network };\n lazy.prop(o, 'address', () => {\n if (!o.hash)\n return;\n const words = bech32_1.bech32.toWords(o.hash);\n words.unshift(0x00);\n return bech32_1.bech32.encode(network.bech32, words);\n });\n lazy.prop(o, 'hash', () => {\n if (a.output)\n return a.output.slice(2);\n if (a.address)\n return _address().data;\n if (o.redeem && o.redeem.output)\n return bcrypto.sha256(o.redeem.output);\n });\n lazy.prop(o, 'output', () => {\n if (!o.hash)\n return;\n return bscript.compile([OPS.OP_0, o.hash]);\n });\n lazy.prop(o, 'redeem', () => {\n if (!a.witness)\n return;\n return {\n output: a.witness[a.witness.length - 1],\n input: EMPTY_BUFFER,\n witness: a.witness.slice(0, -1),\n };\n });\n lazy.prop(o, 'input', () => {\n if (!o.witness)\n return;\n return EMPTY_BUFFER;\n });\n lazy.prop(o, 'witness', () => {\n if (a.redeem &&\n a.redeem.input &&\n a.redeem.input.length > 0 &&\n a.redeem.output &&\n a.redeem.output.length > 0) {\n const stack = bscript.toStack(_rchunks());\n o.redeem = Object.assign({ witness: stack }, a.redeem);\n o.redeem.input = EMPTY_BUFFER;\n return [].concat(stack, a.redeem.output);\n }\n if (!a.redeem)\n return;\n if (!a.redeem.output)\n return;\n if (!a.redeem.witness)\n return;\n return [].concat(a.redeem.witness, a.redeem.output);\n });\n lazy.prop(o, 'name', () => {\n const nameParts = ['p2wsh'];\n if (o.redeem !== undefined && o.redeem.name !== undefined)\n nameParts.push(o.redeem.name);\n return nameParts.join('-');\n });\n if (opts.validate) {\n let hash = Buffer.from([]);\n if (a.address) {\n const { prefix, version, data } = _address();\n if (prefix !== network.bech32)\n throw new TypeError('Invalid prefix or Network mismatch');\n if (version !== 0x00)\n throw new TypeError('Invalid address version');\n if (data.length !== 32)\n throw new TypeError('Invalid address data');\n hash = data;\n }\n if (a.hash) {\n if (hash.length > 0 && !hash.equals(a.hash))\n throw new TypeError('Hash mismatch');\n else\n hash = a.hash;\n }\n if (a.output) {\n if (a.output.length !== 34 || a.output[0] !== OPS.OP_0 || a.output[1] !== 0x20)\n throw new TypeError('Output is invalid');\n const hash2 = a.output.slice(2);\n if (hash.length > 0 && !hash.equals(hash2))\n throw new TypeError('Hash mismatch');\n else\n hash = hash2;\n }\n if (a.redeem) {\n if (a.redeem.network && a.redeem.network !== network)\n throw new TypeError('Network mismatch');\n if (a.redeem.input &&\n a.redeem.input.length > 0 &&\n a.redeem.witness &&\n a.redeem.witness.length > 0)\n throw new TypeError('Ambiguous witness source');\n if (a.redeem.output) {\n if (bscript.decompile(a.redeem.output).length === 0)\n throw new TypeError('Redeem.output is invalid');\n const hash2 = bcrypto.sha256(a.redeem.output);\n if (hash.length > 0 && !hash.equals(hash2))\n throw new TypeError('Hash mismatch');\n else\n hash = hash2;\n }\n if (a.redeem.input && !bscript.isPushOnly(_rchunks()))\n throw new TypeError('Non push-only scriptSig');\n if (a.witness && a.redeem.witness && !stacksEqual(a.witness, a.redeem.witness))\n throw new TypeError('Witness and redeem.witness mismatch');\n if ((a.redeem.input && _rchunks().some(chunkHasUncompressedPubkey)) ||\n (a.redeem.output &&\n (bscript.decompile(a.redeem.output) || []).some(chunkHasUncompressedPubkey))) {\n throw new TypeError('redeem.input or redeem.output contains uncompressed pubkey');\n }\n }\n if (a.witness && a.witness.length > 0) {\n const wScript = a.witness[a.witness.length - 1];\n if (a.redeem && a.redeem.output && !a.redeem.output.equals(wScript))\n throw new TypeError('Witness and redeem.output mismatch');\n if (a.witness.some(chunkHasUncompressedPubkey) ||\n (bscript.decompile(wScript) || []).some(chunkHasUncompressedPubkey))\n throw new TypeError('Witness contains uncompressed pubkey');\n }\n }\n return Object.assign(o, a);\n}\nexports.p2wsh = p2wsh;\n//# sourceMappingURL=p2wsh.js.map", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.sstxchange = void 0;\nconst typef = require(\"typeforce\");\nconst bs58check = require(\"../bs58check\");\nconst networks_1 = require(\"../networks\");\nconst bscript = require(\"../script\");\nconst lazy = require(\"./lazy\");\nconst { OPS } = bscript;\nfunction sstxchange(a, opts) {\n if (!a.address && !a.hash && !a.output)\n throw new TypeError('Not enough data');\n opts = Object.assign({ validate: true }, opts || {});\n typef({\n network: typef.maybe(typef.Object),\n address: typef.maybe(typef.String),\n hash: typef.maybe(typef.BufferN(20)),\n output: typef.maybe(typef.Buffer),\n }, a);\n const _address = lazy.value(() => bs58check.decodeAddress(a.address, a.network));\n const network = a.network || networks_1.decred;\n const o = { name: 'sstxchange', network };\n lazy.prop(o, 'address', () => {\n if (!o.hash)\n return;\n return bs58check.encodeAddress(o.hash, network.pubKeyHash, network);\n });\n lazy.prop(o, 'hash', () => {\n if (a.output)\n return a.output.slice(4, 24);\n if (a.address)\n return _address().hash;\n });\n lazy.prop(o, 'output', () => {\n if (!o.hash)\n return;\n return bscript.compile([\n OPS.OP_SSTXCHANGE,\n OPS.OP_DUP,\n OPS.OP_HASH160,\n o.hash,\n OPS.OP_EQUALVERIFY,\n OPS.OP_CHECKSIG,\n ]);\n });\n if (opts.validate) {\n let hash = Buffer.from([]);\n if (a.address) {\n const { version, hash: aHash } = _address();\n if (version !== network.pubKeyHash)\n throw new TypeError('Invalid version or Network mismatch');\n if (aHash.length !== 20)\n throw new TypeError('Invalid address');\n hash = aHash;\n }\n if (a.hash) {\n if (hash.length > 0 && !hash.equals(a.hash))\n throw new TypeError('Hash mismatch');\n else\n hash = a.hash;\n }\n if (a.output) {\n if (a.output.length !== 26 ||\n a.output[0] !== OPS.OP_SSTXCHANGE ||\n a.output[1] !== OPS.OP_DUP ||\n a.output[2] !== OPS.OP_HASH160 ||\n a.output[3] !== 0x14 ||\n a.output[24] !== OPS.OP_EQUALVERIFY ||\n a.output[25] !== OPS.OP_CHECKSIG)\n throw new TypeError('sstxchange output is invalid');\n const hash2 = a.output.slice(4, 24);\n if (hash.length > 0 && !hash.equals(hash2))\n throw new TypeError('Hash mismatch');\n }\n }\n return Object.assign(o, a);\n}\nexports.sstxchange = sstxchange;\n//# sourceMappingURL=sstxchange.js.map", "'use strict'\nvar Buffer = require('safe-buffer').Buffer\n\n// Number.MAX_SAFE_INTEGER\nvar MAX_SAFE_INTEGER = 9007199254740991\n\nfunction checkUInt53 (n) {\n if (n < 0 || n > MAX_SAFE_INTEGER || n % 1 !== 0) throw new RangeError('value out of range')\n}\n\nfunction encode (number, buffer, offset) {\n checkUInt53(number)\n\n if (!buffer) buffer = Buffer.allocUnsafe(encodingLength(number))\n if (!Buffer.isBuffer(buffer)) throw new TypeError('buffer must be a Buffer instance')\n if (!offset) offset = 0\n\n // 8 bit\n if (number < 0xfd) {\n buffer.writeUInt8(number, offset)\n encode.bytes = 1\n\n // 16 bit\n } else if (number <= 0xffff) {\n buffer.writeUInt8(0xfd, offset)\n buffer.writeUInt16LE(number, offset + 1)\n encode.bytes = 3\n\n // 32 bit\n } else if (number <= 0xffffffff) {\n buffer.writeUInt8(0xfe, offset)\n buffer.writeUInt32LE(number, offset + 1)\n encode.bytes = 5\n\n // 64 bit\n } else {\n buffer.writeUInt8(0xff, offset)\n buffer.writeUInt32LE(number >>> 0, offset + 1)\n buffer.writeUInt32LE((number / 0x100000000) | 0, offset + 5)\n encode.bytes = 9\n }\n\n return buffer\n}\n\nfunction decode (buffer, offset) {\n if (!Buffer.isBuffer(buffer)) throw new TypeError('buffer must be a Buffer instance')\n if (!offset) offset = 0\n\n var first = buffer.readUInt8(offset)\n\n // 8 bit\n if (first < 0xfd) {\n decode.bytes = 1\n return first\n\n // 16 bit\n } else if (first === 0xfd) {\n decode.bytes = 3\n return buffer.readUInt16LE(offset + 1)\n\n // 32 bit\n } else if (first === 0xfe) {\n decode.bytes = 5\n return buffer.readUInt32LE(offset + 1)\n\n // 64 bit\n } else {\n decode.bytes = 9\n var lo = buffer.readUInt32LE(offset + 1)\n var hi = buffer.readUInt32LE(offset + 5)\n var number = hi * 0x0100000000 + lo\n checkUInt53(number)\n\n return number\n }\n}\n\nfunction encodingLength (number) {\n checkUInt53(number)\n\n return (\n number < 0xfd ? 1\n : number <= 0xffff ? 3\n : number <= 0xffffffff ? 5\n : 9\n )\n}\n\nmodule.exports = { encode: encode, decode: decode, encodingLength: encodingLength }\n", "// int64-buffer.js\n\n/*jshint -W018 */ // Confusing use of '!'.\n/*jshint -W030 */ // Expected an assignment or function call and instead saw an expression.\n/*jshint -W093 */ // Did you mean to return a conditional instead of an assignment?\n\nvar Uint64BE, Int64BE, Uint64LE, Int64LE;\n\n!function(exports) {\n // constants\n\n var UNDEFINED = \"undefined\";\n var BUFFER = (UNDEFINED !== typeof Buffer) && Buffer;\n var UINT8ARRAY = (UNDEFINED !== typeof Uint8Array) && Uint8Array;\n var ARRAYBUFFER = (UNDEFINED !== typeof ArrayBuffer) && ArrayBuffer;\n var ZERO = [0, 0, 0, 0, 0, 0, 0, 0];\n var isArray = Array.isArray || _isArray;\n var BIT32 = 4294967296;\n var BIT24 = 16777216;\n\n // storage class\n\n var storage; // Array;\n\n // generate classes\n\n Uint64BE = factory(\"Uint64BE\", true, true);\n Int64BE = factory(\"Int64BE\", true, false);\n Uint64LE = factory(\"Uint64LE\", false, true);\n Int64LE = factory(\"Int64LE\", false, false);\n\n // class factory\n\n function factory(name, bigendian, unsigned) {\n var posH = bigendian ? 0 : 4;\n var posL = bigendian ? 4 : 0;\n var pos0 = bigendian ? 0 : 3;\n var pos1 = bigendian ? 1 : 2;\n var pos2 = bigendian ? 2 : 1;\n var pos3 = bigendian ? 3 : 0;\n var fromPositive = bigendian ? fromPositiveBE : fromPositiveLE;\n var fromNegative = bigendian ? fromNegativeBE : fromNegativeLE;\n var proto = Int64.prototype;\n var isName = \"is\" + name;\n var _isInt64 = \"_\" + isName;\n\n // properties\n proto.buffer = void 0;\n proto.offset = 0;\n proto[_isInt64] = true;\n\n // methods\n proto.toNumber = toNumber;\n proto.toString = toString;\n proto.toJSON = toNumber;\n proto.toArray = toArray;\n\n // add .toBuffer() method only when Buffer available\n if (BUFFER) proto.toBuffer = toBuffer;\n\n // add .toArrayBuffer() method only when Uint8Array available\n if (UINT8ARRAY) proto.toArrayBuffer = toArrayBuffer;\n\n // isUint64BE, isInt64BE\n Int64[isName] = isInt64;\n\n // CommonJS\n exports[name] = Int64;\n\n return Int64;\n\n // constructor\n function Int64(buffer, offset, value, raddix) {\n if (!(this instanceof Int64)) return new Int64(buffer, offset, value, raddix);\n return init(this, buffer, offset, value, raddix);\n }\n\n // isUint64BE, isInt64BE\n function isInt64(b) {\n return !!(b && b[_isInt64]);\n }\n\n // initializer\n function init(that, buffer, offset, value, raddix) {\n if (UINT8ARRAY && ARRAYBUFFER) {\n if (buffer instanceof ARRAYBUFFER) buffer = new UINT8ARRAY(buffer);\n if (value instanceof ARRAYBUFFER) value = new UINT8ARRAY(value);\n }\n\n // Int64BE() style\n if (!buffer && !offset && !value && !storage) {\n // shortcut to initialize with zero\n that.buffer = newArray(ZERO, 0);\n return;\n }\n\n // Int64BE(value, raddix) style\n if (!isValidBuffer(buffer, offset)) {\n var _storage = storage || Array;\n raddix = offset;\n value = buffer;\n offset = 0;\n buffer = (storage === BUFFER) ? BUFFER.alloc(8) : new _storage(8);\n }\n\n that.buffer = buffer;\n that.offset = offset |= 0;\n\n // Int64BE(buffer, offset) style\n if (UNDEFINED === typeof value) return;\n\n // Int64BE(buffer, offset, value, raddix) style\n if (\"string\" === typeof value) {\n fromString(buffer, offset, value, raddix || 10);\n } else if (isValidBuffer(value, raddix)) {\n fromArray(buffer, offset, value, raddix);\n } else if (\"number\" === typeof raddix) {\n writeInt32(buffer, offset + posH, value); // high\n writeInt32(buffer, offset + posL, raddix); // low\n } else if (value > 0) {\n fromPositive(buffer, offset, value); // positive\n } else if (value < 0) {\n fromNegative(buffer, offset, value); // negative\n } else {\n fromArray(buffer, offset, ZERO, 0); // zero, NaN and others\n }\n }\n\n function fromString(buffer, offset, str, raddix) {\n var pos = 0;\n var len = str.length;\n var high = 0;\n var low = 0;\n if (str[0] === \"-\") pos++;\n var sign = pos;\n while (pos < len) {\n var chr = parseInt(str[pos++], raddix);\n if (!(chr >= 0)) break; // NaN\n low = low * raddix + chr;\n high = high * raddix + Math.floor(low / BIT32);\n low %= BIT32;\n }\n if (sign) {\n high = ~high;\n if (low) {\n low = BIT32 - low;\n } else {\n high++;\n }\n }\n writeInt32(buffer, offset + posH, high);\n writeInt32(buffer, offset + posL, low);\n }\n\n function toNumber() {\n var buffer = this.buffer;\n var offset = this.offset;\n var high = readInt32(buffer, offset + posH);\n var low = readInt32(buffer, offset + posL);\n if (!unsigned) high |= 0; // a trick to get signed\n return high ? (high * BIT32 + low) : low;\n }\n\n function toString(radix) {\n var buffer = this.buffer;\n var offset = this.offset;\n var high = readInt32(buffer, offset + posH);\n var low = readInt32(buffer, offset + posL);\n var str = \"\";\n var sign = !unsigned && (high & 0x80000000);\n if (sign) {\n high = ~high;\n low = BIT32 - low;\n }\n radix = radix || 10;\n while (1) {\n var mod = (high % radix) * BIT32 + low;\n high = Math.floor(high / radix);\n low = Math.floor(mod / radix);\n str = (mod % radix).toString(radix) + str;\n if (!high && !low) break;\n }\n if (sign) {\n str = \"-\" + str;\n }\n return str;\n }\n\n function writeInt32(buffer, offset, value) {\n buffer[offset + pos3] = value & 255;\n value = value >> 8;\n buffer[offset + pos2] = value & 255;\n value = value >> 8;\n buffer[offset + pos1] = value & 255;\n value = value >> 8;\n buffer[offset + pos0] = value & 255;\n }\n\n function readInt32(buffer, offset) {\n return (buffer[offset + pos0] * BIT24) +\n (buffer[offset + pos1] << 16) +\n (buffer[offset + pos2] << 8) +\n buffer[offset + pos3];\n }\n }\n\n function toArray(raw) {\n var buffer = this.buffer;\n var offset = this.offset;\n storage = null; // Array\n\n if (raw !== false && isArray(buffer)) {\n return (buffer.length === 8) ? buffer : buffer.slice(offset, offset + 8);\n }\n\n return newArray(buffer, offset);\n }\n\n function toBuffer(raw) {\n var buffer = this.buffer;\n var offset = this.offset;\n storage = BUFFER;\n\n if (raw !== false && BUFFER.isBuffer(buffer)) {\n return (buffer.length === 8) ? buffer : buffer.slice(offset, offset + 8);\n }\n\n // Buffer.from(arraybuffer) available since Node v4.5.0\n // https://nodejs.org/en/blog/release/v4.5.0/\n return BUFFER.from(toArrayBuffer.call(this, raw));\n }\n\n function toArrayBuffer(raw) {\n var buffer = this.buffer;\n var offset = this.offset;\n var arrbuf = buffer.buffer;\n storage = UINT8ARRAY;\n\n // arrbuf.slice() ignores buffer.offset until Node v8.0.0\n if (raw !== false && !buffer.offset && (arrbuf instanceof ARRAYBUFFER)) {\n return (arrbuf.byteLength === 8) ? arrbuf : arrbuf.slice(offset, offset + 8);\n }\n\n var dest = new UINT8ARRAY(8);\n fromArray(dest, 0, buffer, offset);\n return dest.buffer;\n }\n\n function isValidBuffer(buffer, offset) {\n var len = buffer && buffer.length;\n offset |= 0;\n return len && (offset + 8 <= len) && (\"string\" !== typeof buffer[offset]);\n }\n\n function fromArray(destbuf, destoff, srcbuf, srcoff) {\n destoff |= 0;\n srcoff |= 0;\n for (var i = 0; i < 8; i++) {\n destbuf[destoff++] = srcbuf[srcoff++] & 255;\n }\n }\n\n function newArray(buffer, offset) {\n return Array.prototype.slice.call(buffer, offset, offset + 8);\n }\n\n function fromPositiveBE(buffer, offset, value) {\n var pos = offset + 8;\n while (pos > offset) {\n buffer[--pos] = value & 255;\n value /= 256;\n }\n }\n\n function fromNegativeBE(buffer, offset, value) {\n var pos = offset + 8;\n value++;\n while (pos > offset) {\n buffer[--pos] = ((-value) & 255) ^ 255;\n value /= 256;\n }\n }\n\n function fromPositiveLE(buffer, offset, value) {\n var end = offset + 8;\n while (offset < end) {\n buffer[offset++] = value & 255;\n value /= 256;\n }\n }\n\n function fromNegativeLE(buffer, offset, value) {\n var end = offset + 8;\n value++;\n while (offset < end) {\n buffer[offset++] = ((-value) & 255) ^ 255;\n value /= 256;\n }\n }\n\n // https://github.com/retrofox/is-array\n function _isArray(val) {\n return !!val && \"[object Array]\" == Object.prototype.toString.call(val);\n }\n\n}(typeof exports === 'object' && typeof exports.nodeName !== 'string' ? exports : (this || {}));\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BufferReader = exports.BufferWriter = exports.reverseBuffer = exports.writePushDataInt = exports.varIntSize = exports.readPushDataInt = exports.pushDataSize = exports.getChunkSize = exports.cloneBuffer = exports.writeVarInt = exports.readVarInt = exports.writeInt64LE = exports.writeUInt64LEasString = exports.writeUInt64LE = exports.readInt64LE = exports.readUInt64LEasString = exports.readUInt64LE = exports.verifuint = void 0;\nconst BN = require(\"bn.js\");\nconst pushdata = require(\"pushdata-bitcoin\");\nconst varuint = require(\"varuint-bitcoin\");\nconst int64_buffer_1 = require(\"int64-buffer\");\nconst typeforce = require(\"typeforce\");\nconst utils_1 = require(\"@trezor/utils\");\nconst types = require(\"./types\");\nfunction verifuint(value, max) {\n if (typeof value !== 'number')\n throw new Error('cannot write a non-number as a number');\n if (value < 0)\n throw new Error('specified a negative value for writing an unsigned value');\n if (value > max)\n throw new Error('value out of range');\n if (Math.floor(value) !== value)\n throw new Error('value has a fractional component');\n}\nexports.verifuint = verifuint;\nfunction readUInt64LE(buffer, offset) {\n const a = buffer.readUInt32LE(offset);\n let b = buffer.readUInt32LE(offset + 4);\n b *= 0x100000000;\n verifuint(b + a, 0x001fffffffffffff);\n return b + a;\n}\nexports.readUInt64LE = readUInt64LE;\nfunction readUInt64LEasString(buffer, offset) {\n try {\n const result = readUInt64LE(buffer, offset);\n return result.toString();\n }\n catch (error) {\n const aUint = buffer.readUInt32LE(offset);\n const bUint = buffer.readUInt32LE(offset + 4);\n const m = new BN(0x100000000);\n const a = new BN(aUint);\n const b = new BN(bUint).mul(m);\n return a.add(b).toString();\n }\n}\nexports.readUInt64LEasString = readUInt64LEasString;\nfunction readInt64LE(buffer, offset) {\n const a = buffer.readUInt32LE(offset);\n let b = buffer.readInt32LE(offset + 4);\n b *= 0x100000000;\n return b + a;\n}\nexports.readInt64LE = readInt64LE;\nfunction writeUInt64LE(buffer, value, offset) {\n verifuint(value, 0x001fffffffffffff);\n buffer.writeInt32LE(value & -1, offset);\n buffer.writeUInt32LE(Math.floor(value / 0x100000000), offset + 4);\n return offset + 8;\n}\nexports.writeUInt64LE = writeUInt64LE;\nfunction writeUInt64LEasString(buffer, value, offset) {\n if (typeof value !== 'string') {\n return writeUInt64LE(buffer, value, offset);\n }\n const v = new int64_buffer_1.Int64LE(value);\n v.toBuffer().copy(buffer, offset);\n return offset + 8;\n}\nexports.writeUInt64LEasString = writeUInt64LEasString;\nfunction writeInt64LE(buffer, value, offset) {\n const v = new int64_buffer_1.Int64LE(value);\n const a = v.toArray();\n for (let i = 0; i < 8; i++) {\n buffer.writeUInt8(a[i], offset + i);\n }\n return offset + 8;\n}\nexports.writeInt64LE = writeInt64LE;\nfunction readVarInt(buffer, offset) {\n const result = varuint.decode(buffer, offset);\n return {\n number: result,\n size: varuint.decode.bytes,\n };\n}\nexports.readVarInt = readVarInt;\nfunction writeVarInt(buffer, number, offset) {\n varuint.encode(number, buffer, offset);\n return varuint.encode.bytes;\n}\nexports.writeVarInt = writeVarInt;\nfunction cloneBuffer(buffer) {\n const clone = Buffer.allocUnsafe(buffer.length);\n buffer.copy(clone);\n return clone;\n}\nexports.cloneBuffer = cloneBuffer;\nfunction getChunkSize(n) {\n const buf = Buffer.allocUnsafe(1);\n buf.writeUInt8(n);\n return buf;\n}\nexports.getChunkSize = getChunkSize;\nexports.pushDataSize = pushdata.encodingLength;\nexports.readPushDataInt = pushdata.decode;\nexports.varIntSize = varuint.encodingLength;\nexports.writePushDataInt = pushdata.encode;\nexports.reverseBuffer = utils_1.bufferUtils.reverseBuffer;\nclass BufferWriter {\n constructor(buffer, offset = 0) {\n this.buffer = buffer;\n this.offset = offset;\n typeforce(types.tuple(types.Buffer, types.UInt32), [buffer, offset]);\n }\n writeUInt8(i) {\n this.offset = this.buffer.writeUInt8(i, this.offset);\n }\n writeUInt16(i) {\n this.offset = this.buffer.writeUInt16LE(i, this.offset);\n }\n writeInt32(i) {\n this.offset = this.buffer.writeInt32LE(i, this.offset);\n }\n writeUInt32(i) {\n this.offset = this.buffer.writeUInt32LE(i, this.offset);\n }\n writeInt64(i) {\n this.offset = writeInt64LE(this.buffer, i, this.offset);\n }\n writeUInt64(i) {\n this.offset =\n typeof i === 'string'\n ? writeUInt64LEasString(this.buffer, i, this.offset)\n : writeUInt64LE(this.buffer, i, this.offset);\n }\n writeVarInt(i) {\n varuint.encode(i, this.buffer, this.offset);\n this.offset += varuint.encode.bytes;\n }\n writeSlice(slice) {\n if (this.buffer.length < this.offset + slice.length) {\n throw new Error('Cannot write slice out of bounds');\n }\n this.offset += slice.copy(this.buffer, this.offset);\n }\n writeVarSlice(slice) {\n this.writeVarInt(slice.length);\n this.writeSlice(slice);\n }\n writeVector(vector) {\n this.writeVarInt(vector.length);\n vector.forEach((buf) => this.writeVarSlice(buf));\n }\n}\nexports.BufferWriter = BufferWriter;\nclass BufferReader {\n constructor(buffer, offset = 0) {\n this.buffer = buffer;\n this.offset = offset;\n typeforce(types.tuple(types.Buffer, types.UInt32), [buffer, offset]);\n }\n readUInt8() {\n const result = this.buffer.readUInt8(this.offset);\n this.offset++;\n return result;\n }\n readUInt16() {\n const result = this.buffer.readUInt16LE(this.offset);\n this.offset += 2;\n return result;\n }\n readInt32() {\n const result = this.buffer.readInt32LE(this.offset);\n this.offset += 4;\n return result;\n }\n readUInt32() {\n const result = this.buffer.readUInt32LE(this.offset);\n this.offset += 4;\n return result;\n }\n readInt64() {\n const result = readInt64LE(this.buffer, this.offset);\n this.offset += 8;\n return result;\n }\n readUInt64() {\n const result = readUInt64LE(this.buffer, this.offset);\n this.offset += 8;\n return result;\n }\n readUInt64String() {\n const result = readUInt64LEasString(this.buffer, this.offset);\n this.offset += 8;\n return result;\n }\n readVarInt() {\n const vi = varuint.decode(this.buffer, this.offset);\n this.offset += varuint.decode.bytes;\n return vi;\n }\n readSlice(n) {\n if (this.buffer.length < this.offset + n) {\n throw new Error('Cannot read slice out of bounds');\n }\n const result = this.buffer.slice(this.offset, this.offset + n);\n this.offset += n;\n return result;\n }\n readVarSlice() {\n return this.readSlice(this.readVarInt());\n }\n readVector() {\n const count = this.readVarInt();\n const vector = [];\n for (let i = 0; i < count; i++)\n vector.push(this.readVarSlice());\n return vector;\n }\n}\nexports.BufferReader = BufferReader;\n//# sourceMappingURL=bufferutils.js.map", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.sstxcommitment = void 0;\nconst typeforce = require(\"typeforce\");\nconst bufferutils_1 = require(\"../bufferutils\");\nconst bs58check = require(\"../bs58check\");\nconst networks_1 = require(\"../networks\");\nconst bscript = require(\"../script\");\nconst lazy = require(\"./lazy\");\nconst { OPS } = bscript;\nfunction sstxcommitment(a, opts) {\n if (!a.address && !a.amount && !a.hash && !a.output)\n throw new TypeError('Not enough data');\n opts = Object.assign({ validate: true }, opts || {});\n typeforce({\n network: typeforce.maybe(typeforce.Object),\n address: typeforce.maybe(typeforce.String),\n amount: typeforce.maybe(typeforce.String),\n hash: typeforce.maybe(typeforce.BufferN(20)),\n output: typeforce.maybe(typeforce.Buffer),\n }, a);\n const _address = lazy.value(() => bs58check.decodeAddress(a.address, a.network));\n const network = a.network || networks_1.decred;\n const o = { name: 'sstxcommitment', network };\n lazy.prop(o, 'address', () => {\n if (!o.hash)\n return;\n return bs58check.encodeAddress(o.hash, network.pubKeyHash, network);\n });\n lazy.prop(o, 'hash', () => {\n if (a.output)\n return a.output.slice(2, 22);\n if (a.address)\n return _address().hash;\n });\n lazy.prop(o, 'output', () => {\n if (!o.hash || !a.amount)\n return;\n const buf = Buffer.allocUnsafe(o.hash.length + 10);\n const writer = new bufferutils_1.BufferWriter(buf);\n writer.writeSlice(o.hash);\n writer.writeUInt64(a.amount);\n writer.writeUInt8(0);\n writer.writeUInt8(88);\n return bscript.compile([OPS.OP_RETURN, buf]);\n });\n if (opts.validate) {\n let hash = Buffer.from([]);\n if (a.address) {\n const { version, hash: aHash } = _address();\n if (version !== network.pubKeyHash)\n throw new TypeError('Invalid version or Network mismatch');\n if (aHash.length !== 20)\n throw new TypeError('Invalid address');\n hash = aHash;\n }\n if (a.hash) {\n if (hash.length > 0 && !hash.equals(a.hash))\n throw new TypeError('Hash mismatch');\n else\n hash = a.hash;\n }\n if (a.output) {\n if (a.output.length !== 32 || a.output[0] !== OPS.OP_RETURN)\n throw new TypeError('sstxcommitment output is invalid');\n const hash2 = a.output.slice(2, 22);\n if (hash.length > 0 && !hash.equals(hash2))\n throw new TypeError('Hash mismatch');\n }\n }\n return Object.assign(o, a);\n}\nexports.sstxcommitment = sstxcommitment;\n//# sourceMappingURL=sstxcommitment.js.map", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.sstxpkh = void 0;\nconst typef = require(\"typeforce\");\nconst bs58check = require(\"../bs58check\");\nconst networks_1 = require(\"../networks\");\nconst bscript = require(\"../script\");\nconst lazy = require(\"./lazy\");\nconst { OPS } = bscript;\nfunction sstxpkh(a, opts) {\n if (!a.address && !a.hash && !a.output)\n throw new TypeError('Not enough data');\n opts = Object.assign({ validate: true }, opts || {});\n typef({\n network: typef.maybe(typef.Object),\n address: typef.maybe(typef.String),\n hash: typef.maybe(typef.BufferN(20)),\n output: typef.maybe(typef.Buffer),\n }, a);\n const _address = lazy.value(() => bs58check.decodeAddress(a.address, a.network));\n const network = a.network || networks_1.decred;\n const o = { name: 'sstxpkh', network };\n lazy.prop(o, 'address', () => {\n if (!o.hash)\n return;\n return bs58check.encodeAddress(o.hash, network.pubKeyHash, network);\n });\n lazy.prop(o, 'hash', () => {\n if (a.output)\n return a.output.slice(4, 24);\n if (a.address)\n return _address().hash;\n });\n lazy.prop(o, 'output', () => {\n if (!o.hash)\n return;\n return bscript.compile([\n OPS.OP_SSTX,\n OPS.OP_DUP,\n OPS.OP_HASH160,\n o.hash,\n OPS.OP_EQUALVERIFY,\n OPS.OP_CHECKSIG,\n ]);\n });\n if (opts.validate) {\n let hash = Buffer.from([]);\n if (a.address) {\n const { version, hash: aHash } = _address();\n if (version !== network.pubKeyHash)\n throw new TypeError('Invalid version or Network mismatch');\n if (aHash.length !== 20)\n throw new TypeError('Invalid address');\n hash = aHash;\n }\n if (a.hash) {\n if (hash.length > 0 && !hash.equals(a.hash))\n throw new TypeError('Hash mismatch');\n else\n hash = a.hash;\n }\n if (a.output) {\n if (a.output.length !== 26 ||\n a.output[0] !== OPS.OP_SSTX ||\n a.output[1] !== OPS.OP_DUP ||\n a.output[2] !== OPS.OP_HASH160 ||\n a.output[3] !== 0x14 ||\n a.output[24] !== OPS.OP_EQUALVERIFY ||\n a.output[25] !== OPS.OP_CHECKSIG)\n throw new TypeError('sstxpkh output is invalid');\n const hash2 = a.output.slice(4, 24);\n if (hash.length > 0 && !hash.equals(hash2))\n throw new TypeError('Hash mismatch');\n }\n }\n return Object.assign(o, a);\n}\nexports.sstxpkh = sstxpkh;\n//# sourceMappingURL=sstxpkh.js.map", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.sstxsh = void 0;\nconst typef = require(\"typeforce\");\nconst bs58check = require(\"../bs58check\");\nconst networks_1 = require(\"../networks\");\nconst bscript = require(\"../script\");\nconst lazy = require(\"./lazy\");\nconst { OPS } = bscript;\nfunction sstxsh(a, opts) {\n if (!a.address && !a.hash && !a.output)\n throw new TypeError('Not enough data');\n opts = Object.assign({ validate: true }, opts || {});\n typef({\n network: typef.maybe(typef.Object),\n address: typef.maybe(typef.String),\n hash: typef.maybe(typef.BufferN(20)),\n output: typef.maybe(typef.Buffer),\n }, a);\n const network = a.network || networks_1.decred;\n const o = { name: 'sstxsh', network };\n const _address = lazy.value(() => bs58check.decodeAddress(a.address, network));\n lazy.prop(o, 'address', () => {\n if (!o.hash)\n return;\n return bs58check.encodeAddress(o.hash, network.scriptHash, network);\n });\n lazy.prop(o, 'hash', () => {\n if (a.output)\n return a.output.slice(3, 23);\n if (a.address)\n return _address().hash;\n });\n lazy.prop(o, 'output', () => {\n if (!o.hash)\n return;\n return bscript.compile([OPS.OP_SSTX, OPS.OP_HASH160, o.hash, OPS.OP_EQUAL]);\n });\n if (opts.validate) {\n let hash = Buffer.from([]);\n if (a.address) {\n const { version, hash: aHash } = _address();\n if (version !== network.scriptHash)\n throw new TypeError('Invalid version or Network mismatch');\n if (aHash.length !== 20)\n throw new TypeError('Invalid address');\n hash = aHash;\n }\n if (a.hash) {\n if (hash.length > 0 && !hash.equals(a.hash))\n throw new TypeError('Hash mismatch');\n else\n hash = a.hash;\n }\n if (a.output) {\n if (a.output.length !== 24 ||\n a.output[0] !== OPS.OP_SSTX ||\n a.output[1] !== OPS.OP_HASH160 ||\n a.output[2] !== 0x14 ||\n a.output[23] !== OPS.OP_EQUAL)\n throw new TypeError('sstxsh output is invalid');\n const hash2 = a.output.slice(3, 23);\n if (hash.length > 0 && !hash.equals(hash2))\n throw new TypeError('Hash mismatch');\n }\n }\n return Object.assign(o, a);\n}\nexports.sstxsh = sstxsh;\n//# sourceMappingURL=sstxsh.js.map", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.sstxsh = exports.sstxpkh = exports.sstxcommitment = exports.sstxchange = exports.p2wsh = exports.p2wpkh = exports.p2tr = exports.p2sh = exports.p2pkh = exports.p2pk = exports.p2ms = exports.embed = void 0;\nconst embed_1 = require(\"./embed\");\nObject.defineProperty(exports, \"embed\", { enumerable: true, get: function () { return embed_1.p2data; } });\nconst p2ms_1 = require(\"./p2ms\");\nObject.defineProperty(exports, \"p2ms\", { enumerable: true, get: function () { return p2ms_1.p2ms; } });\nconst p2pk_1 = require(\"./p2pk\");\nObject.defineProperty(exports, \"p2pk\", { enumerable: true, get: function () { return p2pk_1.p2pk; } });\nconst p2pkh_1 = require(\"./p2pkh\");\nObject.defineProperty(exports, \"p2pkh\", { enumerable: true, get: function () { return p2pkh_1.p2pkh; } });\nconst p2sh_1 = require(\"./p2sh\");\nObject.defineProperty(exports, \"p2sh\", { enumerable: true, get: function () { return p2sh_1.p2sh; } });\nconst p2tr_1 = require(\"./p2tr\");\nObject.defineProperty(exports, \"p2tr\", { enumerable: true, get: function () { return p2tr_1.p2tr; } });\nconst p2wpkh_1 = require(\"./p2wpkh\");\nObject.defineProperty(exports, \"p2wpkh\", { enumerable: true, get: function () { return p2wpkh_1.p2wpkh; } });\nconst p2wsh_1 = require(\"./p2wsh\");\nObject.defineProperty(exports, \"p2wsh\", { enumerable: true, get: function () { return p2wsh_1.p2wsh; } });\nconst sstxchange_1 = require(\"./sstxchange\");\nObject.defineProperty(exports, \"sstxchange\", { enumerable: true, get: function () { return sstxchange_1.sstxchange; } });\nconst sstxcommitment_1 = require(\"./sstxcommitment\");\nObject.defineProperty(exports, \"sstxcommitment\", { enumerable: true, get: function () { return sstxcommitment_1.sstxcommitment; } });\nconst sstxpkh_1 = require(\"./sstxpkh\");\nObject.defineProperty(exports, \"sstxpkh\", { enumerable: true, get: function () { return sstxpkh_1.sstxpkh; } });\nconst sstxsh_1 = require(\"./sstxsh\");\nObject.defineProperty(exports, \"sstxsh\", { enumerable: true, get: function () { return sstxsh_1.sstxsh; } });\n//# sourceMappingURL=index.js.map", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.toOutputScript = exports.getAddressType = exports.fromOutputScript = exports.toBech32 = exports.toBase58Check = exports.fromBech32 = exports.fromBase58Check = void 0;\nconst bech32_1 = require(\"bech32\");\nconst bs58check = require(\"./bs58check\");\nconst typeforce = require(\"typeforce\");\nconst bscript = require(\"./script\");\nconst payments = require(\"./payments\");\nconst networks_1 = require(\"./networks\");\nconst types = require(\"./types\");\nfunction fromBase58Check(address, network = networks_1.bitcoin) {\n return bs58check.decodeAddress(address, network);\n}\nexports.fromBase58Check = fromBase58Check;\nfunction fromBech32(address) {\n let result;\n let version;\n try {\n result = bech32_1.bech32.decode(address);\n }\n catch (e) {\n }\n if (result) {\n [version] = result.words;\n if (version !== 0)\n throw new TypeError(`${address} uses wrong encoding`);\n }\n else {\n result = bech32_1.bech32m.decode(address);\n [version] = result.words;\n if (version === 0)\n throw new TypeError(`${address} uses wrong encoding`);\n }\n const data = bech32_1.bech32.fromWords(result.words.slice(1));\n return {\n version,\n prefix: result.prefix,\n data: Buffer.from(data),\n };\n}\nexports.fromBech32 = fromBech32;\nfunction toBase58Check(hash, version, network = networks_1.bitcoin) {\n typeforce(types.tuple(types.Hash160bit, types.UInt16), [hash, version]);\n return bs58check.encodeAddress(hash, version, network);\n}\nexports.toBase58Check = toBase58Check;\nfunction toBech32(data, version, prefix) {\n const words = bech32_1.bech32.toWords(data);\n words.unshift(version);\n return version === 0 ? bech32_1.bech32.encode(prefix, words) : bech32_1.bech32m.encode(prefix, words);\n}\nexports.toBech32 = toBech32;\nconst FUTURE_SEGWIT_MAX_SIZE = 40;\nconst FUTURE_SEGWIT_MIN_SIZE = 2;\nconst FUTURE_SEGWIT_MAX_VERSION = 16;\nconst FUTURE_SEGWIT_MIN_VERSION = 1;\nconst FUTURE_SEGWIT_VERSION_DIFF = 0x50;\nfunction toFutureSegwitAddress(output, network = networks_1.bitcoin) {\n const data = output.slice(2);\n if (data.length < FUTURE_SEGWIT_MIN_SIZE || data.length > FUTURE_SEGWIT_MAX_SIZE)\n throw new TypeError('Invalid program length for segwit address');\n const version = output[0] - FUTURE_SEGWIT_VERSION_DIFF;\n if (version < FUTURE_SEGWIT_MIN_VERSION || version > FUTURE_SEGWIT_MAX_VERSION)\n throw new TypeError('Invalid version for segwit address');\n if (output[1] !== data.length)\n throw new TypeError('Invalid script for segwit address');\n return toBech32(data, version, network.bech32);\n}\nfunction fromOutputScript(output, network = networks_1.bitcoin) {\n try {\n return payments.p2pkh({ output, network }).address;\n }\n catch (e) {\n }\n try {\n return payments.p2sh({ output, network }).address;\n }\n catch (e) {\n }\n try {\n return payments.p2wpkh({ output, network }).address;\n }\n catch (e) {\n }\n try {\n return payments.p2wsh({ output, network }).address;\n }\n catch (e) {\n }\n try {\n return payments.p2tr({ output, network }).address;\n }\n catch (e) {\n }\n try {\n return toFutureSegwitAddress(output, network);\n }\n catch (e) {\n }\n throw new Error(`${bscript.toASM(output)} has no matching Address`);\n}\nexports.fromOutputScript = fromOutputScript;\nfunction decodeAddress(address, network) {\n try {\n const { hash, version } = fromBase58Check(address, network);\n return { success: true, format: 'base58', version, hash };\n }\n catch (_a) {\n try {\n const { data, prefix, version } = fromBech32(address);\n if (prefix === network.bech32) {\n return { success: true, format: 'bech32', version, hash: data };\n }\n return { success: false, error: 'bech32-invalid-prefix' };\n }\n catch (_b) {\n }\n }\n return { success: false, error: 'unknown-format' };\n}\nfunction identifyAddressType(format, version, hash, network) {\n if (format === 'base58') {\n if (version === network.pubKeyHash)\n return 'p2pkh';\n if (version === network.scriptHash)\n return 'p2sh';\n }\n else if (format === 'bech32') {\n if (version === 0) {\n if (hash.length === 20)\n return 'p2wpkh';\n if (hash.length === 32)\n return 'p2wsh';\n }\n else if (version === 1 && hash.length === 32) {\n return 'p2tr';\n }\n else if (version >= FUTURE_SEGWIT_MIN_VERSION &&\n version <= FUTURE_SEGWIT_MAX_VERSION &&\n hash.length >= FUTURE_SEGWIT_MIN_SIZE &&\n hash.length <= FUTURE_SEGWIT_MAX_SIZE) {\n return 'p2w-unknown';\n }\n }\n return 'unknown';\n}\nfunction createOutputScript(type, hash, version) {\n switch (type) {\n case 'p2pkh':\n return payments.p2pkh({ hash }).output;\n case 'p2sh':\n return payments.p2sh({ hash }).output;\n case 'p2wpkh':\n return payments.p2wpkh({ hash }).output;\n case 'p2wsh':\n return payments.p2wsh({ hash }).output;\n case 'p2tr':\n case 'p2w-unknown':\n return bscript.compile([version + FUTURE_SEGWIT_VERSION_DIFF, hash]);\n }\n}\nfunction getAddressType(address, network = networks_1.bitcoin) {\n const { success, format, version, hash } = decodeAddress(address, network);\n return success ? identifyAddressType(format, version, hash, network) : 'unknown';\n}\nexports.getAddressType = getAddressType;\nfunction toOutputScript(address, network = networks_1.bitcoin) {\n const { success, format, version, hash, error } = decodeAddress(address, network);\n if (success) {\n const type = identifyAddressType(format, version, hash, network);\n if (type !== 'unknown') {\n return createOutputScript(type, hash, version);\n }\n }\n else if (error === 'bech32-invalid-prefix') {\n throw new Error(`${address} has an invalid prefix`);\n }\n throw new Error(`${address} has no matching Script`);\n}\nexports.toOutputScript = toOutputScript;\n//# sourceMappingURL=address.js.map", "var bs58check = require('bs58check')\n\nfunction decodeRaw (buffer, version) {\n // check version only if defined\n if (version !== undefined && buffer[0] !== version) throw new Error('Invalid network version')\n\n // uncompressed\n if (buffer.length === 33) {\n return {\n version: buffer[0],\n privateKey: buffer.slice(1, 33),\n compressed: false\n }\n }\n\n // invalid length\n if (buffer.length !== 34) throw new Error('Invalid WIF length')\n\n // invalid compression flag\n if (buffer[33] !== 0x01) throw new Error('Invalid compression flag')\n\n return {\n version: buffer[0],\n privateKey: buffer.slice(1, 33),\n compressed: true\n }\n}\n\nfunction encodeRaw (version, privateKey, compressed) {\n var result = new Buffer(compressed ? 34 : 33)\n\n result.writeUInt8(version, 0)\n privateKey.copy(result, 1)\n\n if (compressed) {\n result[33] = 0x01\n }\n\n return result\n}\n\nfunction decode (string, version) {\n return decodeRaw(bs58check.decode(string), version)\n}\n\nfunction encode (version, privateKey, compressed) {\n if (typeof version === 'number') return bs58check.encode(encodeRaw(version, privateKey, compressed))\n\n return bs58check.encode(\n encodeRaw(\n version.version,\n version.privateKey,\n version.compressed\n )\n )\n}\n\nmodule.exports = {\n decode: decode,\n decodeRaw: decodeRaw,\n encode: encode,\n encodeRaw: encodeRaw\n}\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fromSeed = exports.fromPublicKey = exports.fromPrivateKey = exports.fromBase58 = void 0;\nconst ecc = require(\"tiny-secp256k1\");\nconst wif = require(\"wif\");\nconst typeforce = require(\"typeforce\");\nconst bs58check = require(\"./bs58check\");\nconst crypto = require(\"./crypto\");\nconst networks_1 = require(\"./networks\");\nconst UINT256_TYPE = typeforce.BufferN(32);\nconst NETWORK_TYPE = typeforce.compile({\n wif: typeforce.UInt8,\n bip32: {\n public: typeforce.UInt32,\n private: typeforce.UInt32,\n },\n});\nconst HIGHEST_BIT = 0x80000000;\nconst UINT31_MAX = Math.pow(2, 31) - 1;\nfunction BIP32Path(value) {\n return typeforce.String(value) && value.match(/^(m\\/)?(\\d+'?\\/)*\\d+'?$/) !== null;\n}\nfunction UInt31(value) {\n return typeforce.UInt32(value) && value <= UINT31_MAX;\n}\nfunction fromPrivateKeyLocal(privateKey, chainCode, network, depth, index, parentFingerprint) {\n typeforce({\n privateKey: UINT256_TYPE,\n chainCode: UINT256_TYPE,\n }, { privateKey, chainCode });\n network = network || networks_1.bitcoin;\n if (!ecc.isPrivate(privateKey))\n throw new TypeError('Private key not in range [1, n)');\n return new BIP32(privateKey, undefined, chainCode, network, depth, index, parentFingerprint);\n}\nfunction fromPublicKeyLocal(publicKey, chainCode, network, depth, index, parentFingerprint) {\n typeforce({\n publicKey: typeforce.BufferN(33),\n chainCode: UINT256_TYPE,\n }, { publicKey, chainCode });\n network = network || networks_1.bitcoin;\n if (!ecc.isPoint(publicKey))\n throw new TypeError('Point is not on the curve');\n return new BIP32(undefined, publicKey, chainCode, network, depth, index, parentFingerprint);\n}\nclass BIP32 {\n constructor(__D, __Q, chainCode, network, __DEPTH = 0, __INDEX = 0, __PARENT_FINGERPRINT = 0x00000000) {\n this.__D = __D;\n this.__Q = __Q;\n this.chainCode = chainCode;\n this.network = network;\n this.__DEPTH = __DEPTH;\n this.__INDEX = __INDEX;\n this.__PARENT_FINGERPRINT = __PARENT_FINGERPRINT;\n typeforce(NETWORK_TYPE, network);\n this.lowR = false;\n }\n get depth() {\n return this.__DEPTH;\n }\n get index() {\n return this.__INDEX;\n }\n get parentFingerprint() {\n return this.__PARENT_FINGERPRINT;\n }\n get publicKey() {\n if (this.__Q === undefined)\n this.__Q = ecc.pointFromScalar(this.__D, true);\n return this.__Q;\n }\n get privateKey() {\n return this.__D;\n }\n get identifier() {\n if ((0, networks_1.isNetworkType)('decred', this.network))\n return crypto.hash160blake256(this.publicKey);\n return crypto.hash160(this.publicKey);\n }\n get fingerprint() {\n return this.identifier.slice(0, 4);\n }\n get compressed() {\n return true;\n }\n isNeutered() {\n return this.__D === undefined;\n }\n neutered() {\n return fromPublicKeyLocal(this.publicKey, this.chainCode, this.network, this.depth, this.index, this.parentFingerprint);\n }\n toBase58() {\n const { network } = this;\n const version = !this.isNeutered() ? network.bip32.private : network.bip32.public;\n const buffer = Buffer.allocUnsafe(78);\n buffer.writeUInt32BE(version, 0);\n buffer.writeUInt8(this.depth, 4);\n buffer.writeUInt32BE(this.parentFingerprint, 5);\n buffer.writeUInt32BE(this.index, 9);\n this.chainCode.copy(buffer, 13);\n if (!this.isNeutered()) {\n buffer.writeUInt8(0, 45);\n this.privateKey.copy(buffer, 46);\n }\n else {\n this.publicKey.copy(buffer, 45);\n }\n return bs58check.encode(buffer, network);\n }\n toWIF() {\n if (!this.privateKey)\n throw new TypeError('Missing private key');\n return wif.encode(this.network.wif, this.privateKey, true);\n }\n derive(index) {\n typeforce(typeforce.UInt32, index);\n const isHardened = index >= HIGHEST_BIT;\n const data = Buffer.allocUnsafe(37);\n if (isHardened) {\n if (this.isNeutered())\n throw new TypeError('Missing private key for hardened child key');\n data[0] = 0x00;\n this.privateKey.copy(data, 1);\n data.writeUInt32BE(index, 33);\n }\n else {\n this.publicKey.copy(data, 0);\n data.writeUInt32BE(index, 33);\n }\n const I = crypto.hmacSHA512(this.chainCode, data);\n const IL = I.slice(0, 32);\n const IR = I.slice(32);\n if (!ecc.isPrivate(IL))\n return this.derive(index + 1);\n let hd;\n if (!this.isNeutered()) {\n const ki = ecc.privateAdd(this.privateKey, IL);\n if (ki == null)\n return this.derive(index + 1);\n hd = fromPrivateKeyLocal(ki, IR, this.network, this.depth + 1, index, this.fingerprint.readUInt32BE(0));\n }\n else {\n const Ki = ecc.pointAddScalar(this.publicKey, IL, true);\n if (Ki === null)\n return this.derive(index + 1);\n hd = fromPublicKeyLocal(Ki, IR, this.network, this.depth + 1, index, this.fingerprint.readUInt32BE(0));\n }\n return hd;\n }\n deriveHardened(index) {\n typeforce(UInt31, index);\n return this.derive(index + HIGHEST_BIT);\n }\n derivePath(path) {\n typeforce(BIP32Path, path);\n let splitPath = path.split('/');\n if (splitPath[0] === 'm') {\n if (this.parentFingerprint)\n throw new TypeError('Expected master, got child');\n splitPath = splitPath.slice(1);\n }\n return splitPath.reduce((prevHd, indexStr) => {\n let index;\n if (indexStr.slice(-1) === `'`) {\n index = parseInt(indexStr.slice(0, -1), 10);\n return prevHd.deriveHardened(index);\n }\n index = parseInt(indexStr, 10);\n return prevHd.derive(index);\n }, this);\n }\n sign(hash, lowR) {\n if (!this.privateKey)\n throw new Error('Missing private key');\n if (lowR === undefined)\n lowR = this.lowR;\n if (lowR === false) {\n return ecc.sign(hash, this.privateKey);\n }\n let sig = ecc.sign(hash, this.privateKey);\n const extraData = Buffer.alloc(32, 0);\n let counter = 0;\n while (sig[0] > 0x7f) {\n counter++;\n extraData.writeUIntLE(counter, 0, 6);\n sig = ecc.signWithEntropy(hash, this.privateKey, extraData);\n }\n return sig;\n }\n verify(hash, signature) {\n return ecc.verify(hash, this.publicKey, signature);\n }\n}\nfunction fromBase58(inString, network) {\n const buffer = (0, networks_1.isNetworkType)('decred', network)\n ? bs58check.decodeBlake256Key(inString)\n : bs58check.decode(inString, network);\n if (buffer.length !== 78)\n throw new TypeError('Invalid buffer length');\n network = network || networks_1.bitcoin;\n const version = buffer.readUInt32BE(0);\n if (version !== network.bip32.private && version !== network.bip32.public)\n throw new TypeError('Invalid network version');\n const depth = buffer[4];\n const parentFingerprint = buffer.readUInt32BE(5);\n if (depth === 0) {\n if (parentFingerprint !== 0x00000000)\n throw new TypeError('Invalid parent fingerprint');\n }\n const index = buffer.readUInt32BE(9);\n if (depth === 0 && index !== 0)\n throw new TypeError('Invalid index');\n const chainCode = buffer.slice(13, 45);\n let hd;\n if (version === network.bip32.private) {\n if (buffer.readUInt8(45) !== 0x00)\n throw new TypeError('Invalid private key');\n const k = buffer.slice(46, 78);\n hd = fromPrivateKeyLocal(k, chainCode, network, depth, index, parentFingerprint);\n }\n else {\n const X = buffer.slice(45, 78);\n hd = fromPublicKeyLocal(X, chainCode, network, depth, index, parentFingerprint);\n }\n return hd;\n}\nexports.fromBase58 = fromBase58;\nfunction fromPrivateKey(privateKey, chainCode, network) {\n return fromPrivateKeyLocal(privateKey, chainCode, network);\n}\nexports.fromPrivateKey = fromPrivateKey;\nfunction fromPublicKey(publicKey, chainCode, network) {\n return fromPublicKeyLocal(publicKey, chainCode, network);\n}\nexports.fromPublicKey = fromPublicKey;\nfunction fromSeed(seed, network) {\n typeforce(typeforce.Buffer, seed);\n if (seed.length < 16)\n throw new TypeError('Seed should be at least 128 bits');\n if (seed.length > 64)\n throw new TypeError('Seed should be at most 512 bits');\n network = network || networks_1.bitcoin;\n const I = crypto.hmacSHA512(Buffer.from('Bitcoin seed', 'utf8'), seed);\n const IL = I.slice(0, 32);\n const IR = I.slice(32);\n return fromPrivateKey(IL, IR, network);\n}\nexports.fromSeed = fromSeed;\n//# sourceMappingURL=bip32.js.map", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getMax = exports.splitByCompleteness = void 0;\nfunction splitByCompleteness(outputs) {\n const complete = [];\n const incomplete = [];\n outputs.forEach(output => {\n if (output.type === 'complete' ||\n output.type === 'send-max' ||\n output.type === 'opreturn') {\n complete.push(output);\n }\n else {\n incomplete.push(output);\n }\n });\n return {\n complete,\n incomplete,\n };\n}\nexports.splitByCompleteness = splitByCompleteness;\nfunction getMax(outputs) {\n const countMaxRequests = outputs.filter(output => output.type === 'send-max-noaddress' || output.type === 'send-max');\n if (countMaxRequests.length >= 2) {\n throw new Error('TWO-SEND-MAX');\n }\n const id = outputs.findIndex(output => output.type === 'send-max-noaddress' || output.type === 'send-max');\n const exists = countMaxRequests.length === 1;\n return {\n id,\n exists,\n };\n}\nexports.getMax = getMax;\n//# sourceMappingURL=request.js.map", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getFinalResult = exports.getNonfinalResult = exports.empty = void 0;\nexports.empty = {\n type: 'error',\n error: 'EMPTY',\n};\nfunction getNonfinalResult(result) {\n const { max, fee, feePerByte, bytes, totalSpent } = result.result;\n return {\n type: 'nonfinal',\n fee: fee.toString(),\n feePerByte: feePerByte.toString(),\n bytes,\n max,\n totalSpent,\n };\n}\nexports.getNonfinalResult = getNonfinalResult;\nfunction getFinalResult(result, transaction) {\n const { max, fee, feePerByte, bytes, totalSpent } = result.result;\n return {\n type: 'final',\n fee: fee.toString(),\n feePerByte: feePerByte.toString(),\n bytes,\n transaction,\n max,\n totalSpent,\n };\n}\nexports.getFinalResult = getFinalResult;\n//# sourceMappingURL=result.js.map", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Permutation = void 0;\nclass Permutation {\n constructor(sorted, permutation) {\n this.sorted = sorted;\n this.permutation = permutation;\n }\n static fromFunction(original, sort) {\n const range = original.map((_v, i) => i);\n const permutation = range.sort((a, b) => sort(original[a], original[b]));\n const res = new Permutation([], permutation);\n res.forEach((originalIx, newIx) => {\n res.sorted[newIx] = original[originalIx];\n });\n return res;\n }\n forEach(fn) {\n this.permutation.forEach(fn);\n }\n map(fn) {\n const original = this.sorted.map(fn);\n const res = new Permutation(original, this.permutation);\n return res;\n }\n}\nexports.Permutation = Permutation;\n//# sourceMappingURL=permutation.js.map", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createTransaction = void 0;\nconst BN = require(\"bn.js\");\nconst BitcoinJsAddress = require(\"../address\");\nconst embed_1 = require(\"../payments/embed\");\nconst permutation_1 = require(\"./permutation\");\nconst bufferutils_1 = require(\"../bufferutils\");\nfunction convertInput(utxo, basePath) {\n return {\n hash: (0, bufferutils_1.reverseBuffer)(Buffer.from(utxo.transactionHash, 'hex')),\n index: utxo.index,\n path: basePath.concat([...utxo.addressPath]),\n amount: utxo.value,\n };\n}\nfunction convertOpReturnOutput(opReturnData) {\n const opReturnDataBuffer = Buffer.from(opReturnData, 'hex');\n const output = {\n opReturnData: opReturnDataBuffer,\n value: undefined,\n };\n const script = (0, embed_1.p2data)({ data: [opReturnDataBuffer] }).output;\n return {\n output,\n script,\n };\n}\nfunction convertOutput(address, value, network, basePath, changeId, isChange) {\n const output = isChange\n ? {\n path: [...basePath, 1, changeId],\n value,\n }\n : {\n address,\n value,\n };\n return {\n output,\n script: BitcoinJsAddress.toOutputScript(address, network),\n };\n}\nfunction inputComparator(aHash, aVout, bHash, bVout) {\n return (0, bufferutils_1.reverseBuffer)(aHash).compare((0, bufferutils_1.reverseBuffer)(bHash)) || aVout - bVout;\n}\nfunction outputComparator(aScript, aValue, bScript, bValue) {\n return new BN(aValue).cmp(new BN(bValue)) || aScript.compare(bScript);\n}\nfunction createTransaction(allInputs, selectedInputs, allOutputs, selectedOutputs, basePath, changeId, changeAddress, network, skipPermutation) {\n const convertedInputs = selectedInputs.map(input => convertInput(allInputs[input.i], basePath));\n const convertedOutputs = selectedOutputs.map((output, i) => {\n const isChange = i === allOutputs.length;\n const original = allOutputs[i];\n if (original && original.type === 'opreturn') {\n return convertOpReturnOutput(original.dataHex);\n }\n const address = !original ? changeAddress : original.address;\n const amount = output.value;\n return convertOutput(address, amount, network, basePath, changeId, isChange);\n });\n if (skipPermutation) {\n return {\n inputs: convertedInputs,\n outputs: new permutation_1.Permutation(convertedOutputs.map(o => o.output), convertedOutputs.map((_o, i) => i)),\n };\n }\n convertedInputs.sort((a, b) => inputComparator(a.hash, a.index, b.hash, b.index));\n const permutedOutputs = permutation_1.Permutation.fromFunction(convertedOutputs, (a, b) => {\n const aValue = typeof a.output.value === 'string' ? a.output.value : '0';\n const bValue = typeof b.output.value === 'string' ? b.output.value : '0';\n return outputComparator(a.script, aValue, b.script, bValue);\n }).map(o => o.output);\n return {\n inputs: convertedInputs,\n outputs: permutedOutputs,\n };\n}\nexports.createTransaction = createTransaction;\n//# sourceMappingURL=transaction.js.map", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.filterCoinbase = exports.sortByScore = exports.utxoScore = exports.anyOf = exports.finalize = exports.getFee = exports.sumOrNaN = exports.bignumberOrNaN = exports.dustThreshold = exports.transactionBytes = exports.transactionWeight = exports.getFeeForBytes = exports.outputBytes = exports.outputWeight = exports.inputBytes = exports.inputWeight = exports.getVarIntSize = exports.OUTPUT_SCRIPT_LENGTH = exports.INPUT_SCRIPT_LENGTH = exports.ZERO = void 0;\nconst BN = require(\"bn.js\");\nexports.ZERO = new BN(0);\nexports.INPUT_SCRIPT_LENGTH = {\n p2pkh: 108,\n p2sh: 107,\n p2tr: 65,\n p2wpkh: 107,\n p2wsh: 107,\n};\nexports.OUTPUT_SCRIPT_LENGTH = {\n p2pkh: 25,\n p2sh: 23,\n p2tr: 34,\n p2wpkh: 22,\n p2wsh: 34,\n};\nconst SEGWIT_INPUT_SCRIPT_TYPES = ['p2sh', 'p2tr', 'p2wpkh', 'p2wsh'];\nconst TX_BASE = 32;\nconst INPUT_SIZE = 160;\nfunction getVarIntSize(length) {\n if (length < 253)\n return 1;\n if (length < 65536)\n return 3;\n if (length < 4294967296)\n return 5;\n return 9;\n}\nexports.getVarIntSize = getVarIntSize;\nfunction inputWeight(input) {\n if (input.weight)\n return input.weight;\n let weight = INPUT_SIZE;\n if (!SEGWIT_INPUT_SCRIPT_TYPES.includes(input.type)) {\n weight += 4 * input.script.length;\n }\n else {\n if (input.type === 'p2sh') {\n weight += 4 * (2 + 22);\n }\n else {\n weight += 4;\n }\n weight += 1 + input.script.length;\n }\n return weight;\n}\nexports.inputWeight = inputWeight;\nfunction inputBytes(input) {\n return Math.ceil(inputWeight(input) / 4);\n}\nexports.inputBytes = inputBytes;\nfunction outputWeight(output) {\n if (output.weight)\n return output.weight;\n return 4 * (8 + 1 + output.script.length);\n}\nexports.outputWeight = outputWeight;\nfunction outputBytes(output) {\n return Math.ceil(outputWeight(output) / 4);\n}\nexports.outputBytes = outputBytes;\nfunction getFeeForBytes(feeRate, bytes) {\n return Math.ceil(feeRate * bytes);\n}\nexports.getFeeForBytes = getFeeForBytes;\nfunction transactionWeight(inputs, outputs) {\n const segwitInputs = inputs.filter(i => SEGWIT_INPUT_SCRIPT_TYPES.includes(i.type)).length;\n return (TX_BASE +\n 4 * getVarIntSize(inputs.length) +\n inputs.reduce((x, i) => x + inputWeight(i), 0) +\n 4 * getVarIntSize(outputs.length) +\n outputs.reduce((x, o) => x + outputWeight(o), 0) +\n (segwitInputs ? 2 + (inputs.length - segwitInputs) : 0));\n}\nexports.transactionWeight = transactionWeight;\nfunction transactionBytes(inputs, outputs) {\n return Math.ceil(transactionWeight(inputs, outputs) / 4);\n}\nexports.transactionBytes = transactionBytes;\nfunction dustThreshold(feeRate, options) {\n const size = transactionBytes([\n {\n type: options.txType,\n script: {\n length: exports.INPUT_SCRIPT_LENGTH[options.txType],\n },\n },\n ], [\n {\n script: {\n length: exports.OUTPUT_SCRIPT_LENGTH[options.txType],\n },\n },\n ]);\n const price = getFeeForBytes(feeRate, size);\n return Math.max(options.dustThreshold, price);\n}\nexports.dustThreshold = dustThreshold;\nfunction bignumberOrNaN(v, forgiving = false) {\n if (BN.isBN(v))\n return v;\n const defaultValue = forgiving ? exports.ZERO : undefined;\n if (!v || typeof v !== 'string' || !/^\\d+$/.test(v))\n return defaultValue;\n try {\n return new BN(v);\n }\n catch (error) {\n return defaultValue;\n }\n}\nexports.bignumberOrNaN = bignumberOrNaN;\nfunction sumOrNaN(range, forgiving = false) {\n return range.reduce((a, x) => {\n if (!a)\n return a;\n const value = bignumberOrNaN(x.value);\n if (!value)\n return forgiving ? exports.ZERO.add(a) : undefined;\n return value.add(a);\n }, exports.ZERO);\n}\nexports.sumOrNaN = sumOrNaN;\nfunction getFee(feeRate, bytes, options, outputs) {\n const defaultFee = getFeeForBytes(feeRate, bytes);\n let baseFee = options.baseFee || 0;\n if (baseFee && bytes) {\n if (options.floorBaseFee) {\n baseFee *= Math.floor((baseFee + defaultFee) / baseFee);\n }\n else {\n baseFee += defaultFee;\n }\n }\n if (options.dustOutputFee && options.dustThreshold) {\n for (let i = 0; i < outputs.length; i++) {\n const { value } = outputs[i];\n if (value && new BN(value).sub(new BN(options.dustThreshold)).isNeg()) {\n baseFee += options.dustOutputFee;\n }\n }\n }\n return baseFee || defaultFee;\n}\nexports.getFee = getFee;\nfunction finalize(inputs, outputs, feeRate, options) {\n const bytesAccum = transactionBytes(inputs, outputs);\n const blankOutputBytes = outputBytes({\n script: { length: exports.OUTPUT_SCRIPT_LENGTH[options.txType] },\n });\n const fee = getFee(feeRate, bytesAccum, options, outputs);\n const feeAfterExtraOutput = getFee(feeRate, bytesAccum + blankOutputBytes, options, outputs);\n const sumInputs = sumOrNaN(inputs);\n const sumOutputs = sumOrNaN(outputs);\n if (!sumInputs || !sumOutputs || sumInputs.sub(sumOutputs).lt(new BN(fee))) {\n return { fee };\n }\n const remainderAfterExtraOutput = sumInputs.sub(sumOutputs.add(new BN(feeAfterExtraOutput)));\n const dust = dustThreshold(feeRate, options);\n const finalOutputs = outputs.map(o => Object.assign({}, o, {\n value: o.value,\n }));\n if (remainderAfterExtraOutput.gt(new BN(dust))) {\n finalOutputs.push({\n value: remainderAfterExtraOutput.toString(),\n script: {\n length: exports.OUTPUT_SCRIPT_LENGTH[options.txType],\n },\n });\n }\n return {\n inputs,\n outputs: finalOutputs,\n fee: sumInputs.sub(sumOrNaN(finalOutputs, true)).toNumber(),\n };\n}\nexports.finalize = finalize;\nfunction anyOf(algorithms) {\n return (utxos, outputs, feeRate, options) => {\n let result = { fee: 0 };\n for (let i = 0; i < algorithms.length; i++) {\n const algorithm = algorithms[i];\n result = algorithm(utxos, outputs, feeRate, options);\n if (result.inputs) {\n return result;\n }\n }\n return result;\n };\n}\nexports.anyOf = anyOf;\nfunction utxoScore(x, feeRate) {\n return new BN(x.value).sub(new BN(getFeeForBytes(feeRate, inputBytes(x))));\n}\nexports.utxoScore = utxoScore;\nfunction sortByScore(feeRate) {\n return (a, b) => {\n const difference = utxoScore(a, feeRate).sub(utxoScore(b, feeRate));\n if (difference.eq(exports.ZERO)) {\n return a.i - b.i;\n }\n return difference.isNeg() ? 1 : -1;\n };\n}\nexports.sortByScore = sortByScore;\nfunction filterCoinbase(utxos, minConfCoinbase) {\n return utxos.filter(utxo => {\n if (utxo.coinbase && !utxo.required) {\n return utxo.confirmations >= minConfCoinbase;\n }\n return true;\n });\n}\nexports.filterCoinbase = filterCoinbase;\n//# sourceMappingURL=utils.js.map", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.convertFeeRate = exports.convertOutputs = exports.getScriptFromAddress = exports.convertInputs = void 0;\nconst BitcoinJsAddress = require(\"../address\");\nconst utils_1 = require(\"../coinselect/utils\");\nfunction convertInputs(inputs, height = 0, txType) {\n return inputs\n .map((input, i) => ({\n type: txType,\n i,\n script: { length: utils_1.INPUT_SCRIPT_LENGTH[txType] },\n value: input.value,\n own: input.own,\n coinbase: input.coinbase,\n confirmations: input.height == null ? 0 : 1 + height - input.height,\n required: input.required,\n }))\n .map(input => Object.assign(input, { weight: (0, utils_1.inputWeight)(input) }));\n}\nexports.convertInputs = convertInputs;\nfunction getScriptFromAddress(address, network) {\n return {\n length: BitcoinJsAddress.toOutputScript(address, network).length,\n };\n}\nexports.getScriptFromAddress = getScriptFromAddress;\nfunction convertOutputs(outputs, network, txType) {\n const script = { length: utils_1.OUTPUT_SCRIPT_LENGTH[txType] };\n return outputs\n .map(output => {\n if (output.type === 'complete') {\n return {\n value: output.amount,\n script: getScriptFromAddress(output.address, network),\n };\n }\n if (output.type === 'noaddress') {\n return {\n value: output.amount,\n script,\n };\n }\n if (output.type === 'opreturn') {\n return {\n value: '0',\n script: { length: 2 + output.dataHex.length / 2 },\n };\n }\n if (output.type === 'send-max') {\n return {\n script: getScriptFromAddress(output.address, network),\n };\n }\n if (output.type === 'send-max-noaddress') {\n return {\n script,\n };\n }\n throw new Error('WRONG-OUTPUT-TYPE');\n })\n .map(output => Object.assign(output, { weight: (0, utils_1.outputWeight)(output) }));\n}\nexports.convertOutputs = convertOutputs;\nfunction convertFeeRate(rate) {\n const feeRate = typeof rate === 'string' ? Number(rate) : rate;\n if (Number.isNaN(feeRate) ||\n !Number.isFinite(feeRate) ||\n feeRate > Number.MAX_SAFE_INTEGER ||\n feeRate <= 0) {\n return;\n }\n return feeRate;\n}\nexports.convertFeeRate = convertFeeRate;\n//# sourceMappingURL=utils.js.map", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.split = void 0;\nconst BN = require(\"bn.js\");\nconst utils = require(\"../utils\");\nfunction split(utxosOrig, outputs, feeRate, options) {\n const coinbase = options.coinbase || 100;\n const utxos = utils.filterCoinbase(utxosOrig, coinbase);\n const bytesAccum = utils.transactionBytes(utxos, outputs);\n const fee = utils.getFee(feeRate, bytesAccum, options, outputs);\n if (outputs.length === 0)\n return { fee };\n const inAccum = utils.sumOrNaN(utxos);\n const outAccum = utils.sumOrNaN(outputs, true);\n if (!inAccum)\n return { fee };\n const remaining = inAccum.sub(outAccum).sub(new BN(fee));\n if (remaining.lt(utils.ZERO))\n return { fee };\n const unspecified = outputs.reduce((a, x) => a + (!utils.bignumberOrNaN(x.value) ? 1 : 0), 0);\n if (remaining.isZero() || unspecified === 0) {\n return utils.finalize(utxos, outputs, feeRate, options);\n }\n const splitValue = remaining.div(new BN(unspecified));\n const dustThreshold = utils.dustThreshold(feeRate, options);\n if (unspecified && splitValue.lte(new BN(dustThreshold)))\n return { fee };\n const outputsSplit = outputs.map(x => {\n if (x.value)\n return x;\n const y = Object.assign({}, x);\n y.value = splitValue.toString();\n return y;\n });\n return utils.finalize(utxos, outputsSplit, feeRate, options);\n}\nexports.split = split;\n//# sourceMappingURL=split.js.map", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.accumulative = void 0;\nconst BN = require(\"bn.js\");\nconst utils = require(\"../utils\");\nfunction accumulative(utxos0, outputs, feeRate, options) {\n let bytesAccum = utils.transactionBytes([], outputs);\n let inAccum = utils.ZERO;\n const inputs = [];\n const outAccum = utils.sumOrNaN(outputs);\n const requiredUtxos = [];\n const utxos = [];\n utxos0.forEach(u => {\n if (u.required) {\n requiredUtxos.push(u);\n const utxoBytes = utils.inputBytes(u);\n const utxoValue = utils.bignumberOrNaN(u.value, true);\n bytesAccum += utxoBytes;\n inAccum = inAccum.add(utxoValue);\n inputs.push(u);\n }\n else {\n utxos.push(u);\n }\n });\n if (requiredUtxos.length > 0) {\n const requiredIsEnough = utils.finalize(requiredUtxos, outputs, feeRate, options);\n if (requiredIsEnough.inputs) {\n return requiredIsEnough;\n }\n }\n for (let i = 0; i < utxos.length; ++i) {\n const utxo = utxos[i];\n const utxoBytes = utils.inputBytes(utxo);\n const utxoFee = utils.getFeeForBytes(feeRate, utxoBytes);\n const utxoValue = utils.bignumberOrNaN(utxo.value);\n if (!utxoValue || utxoValue.lt(new BN(utxoFee))) {\n if (i === utxos.length - 1) {\n const fee = utils.getFee(feeRate, bytesAccum + utxoBytes, options, outputs);\n return { fee };\n }\n }\n else {\n bytesAccum += utxoBytes;\n inAccum = inAccum.add(utxoValue);\n inputs.push(utxo);\n const fee = utils.getFee(feeRate, bytesAccum, options, outputs);\n const outAccumWithFee = outAccum ? outAccum.add(new BN(fee)) : utils.ZERO;\n if (inAccum.gte(outAccumWithFee)) {\n return utils.finalize(inputs, outputs, feeRate, options);\n }\n }\n }\n const fee = utils.getFee(feeRate, bytesAccum, options, outputs);\n return { fee };\n}\nexports.accumulative = accumulative;\n//# sourceMappingURL=accumulative.js.map", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.bnb = void 0;\nconst BN = require(\"bn.js\");\nconst utils = require(\"../utils\");\nconst MAX_TRIES = 1000000;\nfunction calculateEffectiveValues(utxos, feeRate) {\n return utxos.map(utxo => {\n const value = utils.bignumberOrNaN(utxo.value);\n if (!value) {\n return {\n utxo,\n effectiveValue: new BN(0),\n };\n }\n const effectiveFee = utils.getFeeForBytes(feeRate, utils.inputBytes(utxo));\n const effectiveValue = value.sub(new BN(effectiveFee));\n return {\n utxo,\n effectiveValue,\n };\n });\n}\nfunction search(effectiveUtxos, target, costOfChange) {\n if (effectiveUtxos.length === 0) {\n return null;\n }\n let tries = MAX_TRIES;\n const selected = [];\n let selectedAccum = new BN(0);\n let done = false;\n let backtrack = false;\n let remaining = effectiveUtxos.reduce((a, x) => x.effectiveValue.add(a), new BN(0));\n const costRange = target.add(new BN(costOfChange));\n let depth = 0;\n while (!done) {\n if (tries <= 0) {\n return null;\n }\n if (selectedAccum.gt(costRange)) {\n backtrack = true;\n }\n else if (selectedAccum.gte(target)) {\n done = true;\n }\n else if (depth >= effectiveUtxos.length) {\n backtrack = true;\n }\n else if (selectedAccum.add(remaining).lt(target)) {\n if (depth === 0) {\n return null;\n }\n backtrack = true;\n }\n else {\n remaining = remaining.sub(effectiveUtxos[depth].effectiveValue);\n selected[depth] = true;\n selectedAccum = selectedAccum.add(effectiveUtxos[depth].effectiveValue);\n depth++;\n }\n if (backtrack) {\n backtrack = false;\n depth--;\n while (!selected[depth]) {\n remaining = remaining.add(effectiveUtxos[depth].effectiveValue);\n depth--;\n if (depth < 0) {\n return null;\n }\n }\n selected[depth] = false;\n selectedAccum = selectedAccum.sub(effectiveUtxos[depth].effectiveValue);\n depth++;\n }\n tries--;\n }\n return selected;\n}\nfunction bnb(factor) {\n return (utxos, outputs, feeRate, options) => {\n if (options.baseFee)\n return { fee: 0 };\n if (utxos.find(u => u.required))\n return { fee: 0 };\n const costPerChangeOutput = utils.getFeeForBytes(feeRate, utils.outputBytes({\n script: {\n length: utils.OUTPUT_SCRIPT_LENGTH[options.txType],\n },\n }));\n const costPerInput = utils.getFeeForBytes(feeRate, utils.inputBytes({\n type: options.txType,\n script: {\n length: utils.INPUT_SCRIPT_LENGTH[options.txType],\n },\n }));\n const costOfChange = Math.floor((costPerInput + costPerChangeOutput) * factor);\n const txBytes = utils.transactionBytes([], outputs);\n const bytesAndFee = utils.getFeeForBytes(feeRate, txBytes);\n const outSum = utils.sumOrNaN(outputs);\n if (!outSum)\n return { fee: 0 };\n const outAccum = outSum.add(new BN(bytesAndFee));\n const effectiveUtxos = calculateEffectiveValues(utxos, feeRate)\n .filter(x => x.effectiveValue.gt(utils.ZERO))\n .sort((a, b) => {\n const subtract = b.effectiveValue.sub(a.effectiveValue).toNumber();\n if (subtract !== 0) {\n return subtract;\n }\n return a.utxo.i - b.utxo.i;\n });\n const selected = search(effectiveUtxos, outAccum, costOfChange);\n if (selected !== null) {\n const inputs = [];\n for (let i = 0; i < effectiveUtxos.length; i++) {\n if (selected[i]) {\n inputs.push(effectiveUtxos[i].utxo);\n }\n }\n return utils.finalize(inputs, outputs, feeRate, options);\n }\n return { fee: 0 };\n };\n}\nexports.bnb = bnb;\n//# sourceMappingURL=bnb.js.map", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.tryConfirmed = void 0;\nconst utils_1 = require(\"./utils\");\nfunction filterUtxos(utxos, minConfOwn, minConfOther) {\n const usable = [];\n const unusable = [];\n for (let i = 0; i < utxos.length; i++) {\n const utxo = utxos[i];\n const isUsed = utxo.own\n ? utxo.confirmations >= minConfOwn\n : utxo.confirmations >= minConfOther;\n if (isUsed || utxo.required) {\n usable.push(utxo);\n }\n else {\n unusable.push(utxo);\n }\n }\n return {\n usable,\n unusable,\n };\n}\nfunction tryConfirmed(algorithm, options) {\n const own = options.own || 1;\n const other = options.other || 6;\n const coinbase = options.coinbase || 100;\n return (utxosO, outputs, feeRate, optionsIn) => {\n utxosO.forEach(utxo => {\n if (utxo.coinbase == null || utxo.own == null || utxo.confirmations == null) {\n throw new Error('Missing information.');\n }\n });\n const utxos = (0, utils_1.filterCoinbase)(utxosO, coinbase);\n if (utxos.length === 0) {\n return { fee: 0 };\n }\n const trials = [];\n let i;\n for (i = own; i > 0; i--) {\n trials.push({ other, own: i });\n }\n for (i = other - 1; i > 0; i--) {\n trials.push({ other: i, own: 1 });\n }\n trials.push({ other: 1, own: 0 });\n trials.push({ other: 0, own: 0 });\n let unusable = utxos;\n let usable = [];\n for (i = 0; i < trials.length; i++) {\n const trial = trials[i];\n const filterResult = filterUtxos(unusable, trial.own, trial.other);\n if (filterResult.usable.length > 0) {\n usable = usable.concat(filterResult.usable);\n const unusableH = filterResult.unusable;\n unusable = unusableH;\n const result = algorithm(usable, outputs, feeRate, optionsIn);\n if (result.inputs) {\n return result;\n }\n if (unusable.length === 0) {\n return result;\n }\n }\n }\n throw new Error('Unexpected unreturned result');\n };\n}\nexports.tryConfirmed = tryConfirmed;\n//# sourceMappingURL=tryconfirmed.js.map", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.coinselect = void 0;\nconst accumulative_1 = require(\"./inputs/accumulative\");\nconst bnb_1 = require(\"./inputs/bnb\");\nconst utils_1 = require(\"./utils\");\nconst tryconfirmed_1 = require(\"./tryconfirmed\");\nfunction coinselect(inputs, outputs, feeRate, options) {\n const sortedInputs = options.skipPermutation ? inputs : inputs.sort((0, utils_1.sortByScore)(feeRate));\n const algorithm = (0, tryconfirmed_1.tryConfirmed)((0, utils_1.anyOf)([(0, bnb_1.bnb)(0.5), accumulative_1.accumulative]), options);\n return algorithm(sortedInputs, outputs, feeRate, options);\n}\nexports.coinselect = coinselect;\n//# sourceMappingURL=index.js.map", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.coinselect = void 0;\nconst BN = require(\"bn.js\");\nconst split_1 = require(\"../coinselect/outputs/split\");\nconst coinselect_1 = require(\"../coinselect\");\nconst utils_1 = require(\"../coinselect/utils\");\nconst utils = require(\"./utils\");\nfunction coinselect(txType, utxos, rOutputs, height, feeRate, countMax, countMaxId, dustThreshold, network, baseFee, floorBaseFee, dustOutputFee, skipPermutation) {\n const inputs0 = utils.convertInputs(utxos, height, txType);\n const outputs0 = utils.convertOutputs(rOutputs, network, txType);\n const options = {\n txType,\n dustThreshold,\n baseFee,\n floorBaseFee,\n dustOutputFee,\n skipPermutation,\n };\n const algorithm = countMax ? split_1.split : coinselect_1.coinselect;\n const result = algorithm(inputs0, outputs0, feeRate, options);\n if (!result.inputs || !result.outputs) {\n return {\n type: 'false',\n };\n }\n const { fee, inputs, outputs } = result;\n const max = countMaxId !== -1 ? outputs[countMaxId].value : undefined;\n const totalSpent = outputs\n .filter((_output, i) => i !== rOutputs.length)\n .map(o => o.value)\n .reduce((a, b) => a.add(new BN(b)), new BN(0))\n .add(new BN(fee))\n .toString();\n const bytes = (0, utils_1.transactionBytes)(inputs, outputs);\n const feePerByte = fee / bytes;\n return {\n type: 'true',\n result: {\n inputs,\n outputs,\n fee,\n feePerByte,\n bytes,\n max,\n totalSpent,\n },\n };\n}\nexports.coinselect = coinselect;\n//# sourceMappingURL=coinselect.js.map", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.composeTx = void 0;\nconst request = require(\"./request\");\nconst result = require(\"./result\");\nconst transaction = require(\"./transaction\");\nconst utils_1 = require(\"./utils\");\nconst coinselect_1 = require(\"./coinselect\");\nfunction composeTx({ txType, utxos, outputs, height, feeRate, basePath, network, changeId, changeAddress, dustThreshold, baseFee, floorBaseFee, dustOutputFee, skipPermutation, }) {\n if (outputs.length === 0) {\n return result.empty;\n }\n if (utxos.length === 0) {\n return { type: 'error', error: 'NOT-ENOUGH-FUNDS' };\n }\n const feeRateNumber = (0, utils_1.convertFeeRate)(feeRate);\n if (!feeRateNumber) {\n return { type: 'error', error: 'INCORRECT-FEE-RATE' };\n }\n let countMax = { exists: false, id: 0 };\n try {\n countMax = request.getMax(outputs);\n }\n catch (e) {\n if (e instanceof Error) {\n return { type: 'error', error: e.message };\n }\n return { type: 'error', error: `${e}` };\n }\n const splitOutputs = request.splitByCompleteness(outputs);\n let csResult = { type: 'false' };\n try {\n csResult = (0, coinselect_1.coinselect)(txType || 'p2pkh', utxos, outputs, height, feeRateNumber, countMax.exists, countMax.id, dustThreshold, network, baseFee, floorBaseFee, dustOutputFee, skipPermutation);\n }\n catch (e) {\n if (e instanceof Error) {\n return { type: 'error', error: e.message };\n }\n return { type: 'error', error: `${e}` };\n }\n if (csResult.type === 'false') {\n return { type: 'error', error: 'NOT-ENOUGH-FUNDS' };\n }\n if (splitOutputs.incomplete.length > 0) {\n return result.getNonfinalResult(csResult);\n }\n const resTransaction = transaction.createTransaction(utxos, csResult.result.inputs, splitOutputs.complete, csResult.result.outputs, basePath, changeId, changeAddress, network, skipPermutation);\n return result.getFinalResult(csResult, resTransaction);\n}\nexports.composeTx = composeTx;\n//# sourceMappingURL=index.js.map", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.deriveAddresses = void 0;\nconst bs58_1 = require(\"bs58\");\nconst utils_1 = require(\"@trezor/utils\");\nconst payments_1 = require(\"./payments\");\nconst bip32_1 = require(\"./bip32\");\nconst networks_1 = require(\"./networks\");\nconst BIP32_PAYMENT_TYPES = {\n 0x0488b21e: 'p2pkh',\n 0x049d7cb2: 'p2sh',\n 0x04b24746: 'p2wpkh',\n 0x043587cf: 'p2pkh',\n 0x044a5262: 'p2sh',\n 0x045f1cf6: 'p2wpkh',\n};\nconst BIP32_COIN_TYPES = {\n 0x0488b21e: \"0'\",\n 0x049d7cb2: \"0'\",\n 0x04b24746: \"0'\",\n 0x043587cf: \"1'\",\n 0x044a5262: \"1'\",\n 0x045f1cf6: \"1'\",\n};\nconst BIP32_PURPOSES = {\n p2pkh: \"44'\",\n p2sh: \"49'\",\n p2wpkh: \"84'\",\n p2tr: \"86'\",\n};\nconst validateVersion = (version) => !!BIP32_PAYMENT_TYPES[version];\nconst getVersion = (xpub) => {\n const version = Buffer.from((0, bs58_1.decode)(xpub)).readUInt32BE();\n if (!validateVersion(version))\n throw new Error(`Unknown xpub version: ${xpub}`);\n return version;\n};\nconst getPubkeyToPayment = (type, network) => (pubkey) => {\n switch (type) {\n case 'p2pkh':\n return (0, payments_1.p2pkh)({ pubkey, network });\n case 'p2sh':\n return (0, payments_1.p2sh)({\n redeem: (0, payments_1.p2wpkh)({\n pubkey,\n network,\n }),\n network,\n });\n case 'p2wpkh':\n return (0, payments_1.p2wpkh)({ pubkey, network });\n case 'p2tr':\n return (0, payments_1.p2tr)({ pubkey, network });\n default:\n throw new Error(`Unknown payment type '${type}'`);\n }\n};\nconst getBip32Node = (xpub, version, network) => (0, bip32_1.fromBase58)(xpub, Object.assign(Object.assign({}, network), { bip32: Object.assign(Object.assign({}, network.bip32), { public: version }) }));\nconst getXpubInfo = (xpub, network) => {\n const version = getVersion(xpub);\n const paymentType = BIP32_PAYMENT_TYPES[version];\n const coinType = BIP32_COIN_TYPES[version];\n const purpose = BIP32_PURPOSES[paymentType];\n const node = getBip32Node(xpub, version, network);\n const account = `${(node.index << 1) >>> 1}'`;\n const levels = [purpose, coinType, account];\n return {\n levels,\n paymentType,\n node,\n };\n};\nconst getDescriptorInfo = (paymentType, descriptor, network) => {\n const [_match, _script, path, xpub] = descriptor.match(/^([a-z]+\\()+\\[([a-z0-9]{8}(?:\\/[0-9]+'?){3,})\\]([xyztuv]pub[a-zA-Z0-9]*)\\/<0;1>\\/\\*\\)+$/) || (0, utils_1.throwError)(`Descriptor cannot be parsed: ${descriptor}`);\n const [_fingerprint, ...levels] = path.split('/');\n const version = getVersion(xpub);\n const node = getBip32Node(xpub, version, network);\n return {\n levels,\n paymentType,\n node,\n };\n};\nconst getXpubOrDescriptorInfo = (descriptor, network) => {\n if (descriptor.startsWith('pkh(')) {\n return getDescriptorInfo('p2pkh', descriptor, network);\n }\n if (descriptor.startsWith('sh(wpkh(')) {\n return getDescriptorInfo('p2sh', descriptor, network);\n }\n if (descriptor.startsWith('wpkh(')) {\n return getDescriptorInfo('p2wpkh', descriptor, network);\n }\n if (descriptor.startsWith('tr(')) {\n return getDescriptorInfo('p2tr', descriptor, network);\n }\n return getXpubInfo(descriptor, network);\n};\nconst deriveAddresses = (descriptor, type, from, count, network = networks_1.bitcoin) => {\n const { levels, node, paymentType } = getXpubOrDescriptorInfo(descriptor, network);\n const getAddress = getPubkeyToPayment(paymentType, network);\n const change = type === 'receive' ? 0 : 1;\n const changeNode = node.derive(change);\n return Array.from(Array(count).keys())\n .map(i => changeNode.derive(from + i).publicKey)\n .map(a => getAddress(a).address || (0, utils_1.throwError)('Cannot convert pubkey to address'))\n .map((address, i) => ({\n address,\n path: `m/${levels.join('/')}/${change}/${from + i}`,\n }));\n};\nexports.deriveAddresses = deriveAddresses;\n//# sourceMappingURL=derivation.js.map", "\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.discovery = exports.countUnusedFromEnd = void 0;\nconst derivation_1 = require(\"./derivation\");\nconst DISCOVERY_LOOKOUT = 20;\nconst countUnusedFromEnd = (array, isUnused, lookout) => {\n const boundary = array.length > lookout ? array.length - lookout : 0;\n for (let i = array.length; i > boundary; --i) {\n if (!isUnused(array[i - 1])) {\n return array.length - i;\n }\n }\n return array.length;\n};\nexports.countUnusedFromEnd = countUnusedFromEnd;\nconst discovery = (discover, xpub, type, network, lookout = DISCOVERY_LOOKOUT) => {\n const discoverRecursive = (from, prev) => __awaiter(void 0, void 0, void 0, function* () {\n const unused = (0, exports.countUnusedFromEnd)(prev, a => a.empty, lookout);\n if (unused >= lookout)\n return prev;\n const moreCount = lookout - unused;\n const addresses = (0, derivation_1.deriveAddresses)(xpub, type, from, moreCount, network);\n const more = yield Promise.all(addresses.map(discover));\n return discoverRecursive(from + moreCount, prev.concat(more));\n });\n return discoverRecursive(0, []);\n};\nexports.discovery = discovery;\n//# sourceMappingURL=discovery.js.map", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TransactionBase = exports.EMPTY_SCRIPT = exports.isCoinbaseHash = exports.vectorSize = exports.varSliceSize = void 0;\nconst varuint = require(\"varuint-bitcoin\");\nconst typeforce = require(\"typeforce\");\nconst bufferutils_1 = require(\"../bufferutils\");\nconst bcrypto = require(\"../crypto\");\nconst types = require(\"../types\");\nconst bscript = require(\"../script\");\nconst networks_1 = require(\"../networks\");\nfunction varSliceSize(someScript) {\n const { length } = someScript;\n return varuint.encodingLength(length) + length;\n}\nexports.varSliceSize = varSliceSize;\nfunction vectorSize(someVector) {\n return (varuint.encodingLength(someVector.length) +\n someVector.reduce((sum, witness) => sum + varSliceSize(witness), 0));\n}\nexports.vectorSize = vectorSize;\nfunction isCoinbaseHash(buffer) {\n typeforce(types.Hash256bit, buffer);\n for (let i = 0; i < 32; ++i) {\n if (buffer[i] !== 0)\n return false;\n }\n return true;\n}\nexports.isCoinbaseHash = isCoinbaseHash;\nexports.EMPTY_SCRIPT = Buffer.allocUnsafe(0);\nclass TransactionBase {\n constructor(options) {\n this.version = 1;\n this.locktime = 0;\n this.ins = [];\n this.outs = [];\n this.network = options.network || networks_1.bitcoin;\n this.specific = options.txSpecific;\n }\n isCoinbase() {\n return this.ins.length === 1 && isCoinbaseHash(this.ins[0].hash);\n }\n hasWitnesses() {\n return this.ins.some(x => x.witness.length !== 0);\n }\n isMwebPegOutTx() {\n if (!(0, networks_1.isNetworkType)('litecoin', this.network)) {\n return false;\n }\n return (this.outs.some(output => {\n const asm = bscript.toASM(output.script);\n return asm.startsWith('OP_8');\n }) &&\n this.ins.some(input => !input.script.length));\n }\n weight() {\n const base = this.byteLength(false, false);\n const total = this.byteLength(true, false);\n return base * 3 + total;\n }\n virtualSize() {\n return Math.ceil(this.weight() / 4);\n }\n byteLength(_ALLOW_WITNESS = true, _ALLOW_MWEB = true) {\n const hasWitnesses = _ALLOW_WITNESS && this.hasWitnesses();\n return ((hasWitnesses ? 10 : 8) +\n (this.timestamp ? 4 : 0) +\n varuint.encodingLength(this.ins.length) +\n varuint.encodingLength(this.outs.length) +\n this.ins.reduce((sum, input) => sum + 40 + varSliceSize(input.script), 0) +\n this.outs.reduce((sum, output) => sum + 8 + varSliceSize(output.script), 0) +\n (hasWitnesses\n ? this.ins.reduce((sum, input) => sum + vectorSize(input.witness), 0)\n : 0) +\n (_ALLOW_MWEB && this.isMwebPegOutTx() ? 3 : 0));\n }\n getHash(forWitness = false, forMweb = false) {\n if (forWitness && this.isCoinbase())\n return Buffer.alloc(32, 0);\n return bcrypto.hash256(this.toBuffer(undefined, undefined, forWitness, forMweb));\n }\n getId() {\n return (0, bufferutils_1.reverseBuffer)(this.getHash(false)).toString('hex');\n }\n getWitness(index) {\n if (!this.hasWitnesses() ||\n !this.ins[index] ||\n !Array.isArray(this.ins[index].witness) ||\n this.ins[index].witness.length < 1)\n return;\n const { witness } = this.ins[index];\n const chunks = witness.reduce((arr, chunk) => arr.concat([(0, bufferutils_1.getChunkSize)(chunk.length), chunk]), [(0, bufferutils_1.getChunkSize)(witness.length)]);\n return Buffer.concat(chunks);\n }\n getExtraData() {\n }\n getSpecificData() {\n return this.specific;\n }\n toBuffer(_buffer, _initialOffset, _ALLOW_WITNESS = true, _ALLOW_MWEB = true) {\n return exports.EMPTY_SCRIPT;\n }\n toHex() {\n return this.toBuffer().toString('hex');\n }\n}\nexports.TransactionBase = TransactionBase;\n//# sourceMappingURL=base.js.map", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fromBuffer = exports.fromConstructor = void 0;\nconst bufferutils_1 = require(\"../bufferutils\");\nconst networks_1 = require(\"../networks\");\nconst base_1 = require(\"./base\");\nconst ADVANCED_TRANSACTION_MARKER = 0x00;\nconst ADVANCED_TRANSACTION_FLAG = 0x01;\nconst MWEB_PEGOUT_TX_FLAG = 0x08;\nfunction toBuffer(tx, buffer, initialOffset, _ALLOW_WITNESS = true, _ALLOW_MWEB = true) {\n if (!buffer)\n buffer = Buffer.allocUnsafe(tx.byteLength(_ALLOW_WITNESS, _ALLOW_MWEB));\n const bufferWriter = new bufferutils_1.BufferWriter(buffer, initialOffset || 0);\n bufferWriter.writeInt32(tx.version);\n const hasWitnesses = _ALLOW_WITNESS && tx.hasWitnesses();\n const hasMweb = _ALLOW_MWEB && tx.isMwebPegOutTx();\n if (hasWitnesses) {\n bufferWriter.writeUInt8(ADVANCED_TRANSACTION_MARKER);\n bufferWriter.writeUInt8(ADVANCED_TRANSACTION_FLAG);\n }\n else if (hasMweb) {\n bufferWriter.writeUInt8(ADVANCED_TRANSACTION_MARKER);\n bufferWriter.writeUInt8(MWEB_PEGOUT_TX_FLAG);\n }\n bufferWriter.writeVarInt(tx.ins.length);\n tx.ins.forEach(txIn => {\n bufferWriter.writeSlice(txIn.hash);\n bufferWriter.writeUInt32(txIn.index);\n bufferWriter.writeVarSlice(txIn.script);\n bufferWriter.writeUInt32(txIn.sequence);\n });\n bufferWriter.writeVarInt(tx.outs.length);\n tx.outs.forEach(txOut => {\n bufferWriter.writeUInt64(txOut.value);\n bufferWriter.writeVarSlice(txOut.script);\n });\n if (hasWitnesses) {\n tx.ins.forEach(input => {\n bufferWriter.writeVector(input.witness);\n });\n }\n if (hasMweb) {\n bufferWriter.writeUInt8(0);\n }\n bufferWriter.writeUInt32(tx.locktime);\n if (initialOffset !== undefined)\n return buffer.slice(initialOffset, bufferWriter.offset);\n return buffer;\n}\nfunction fromConstructor(options) {\n const tx = new base_1.TransactionBase(options);\n tx.toBuffer = toBuffer.bind(null, tx);\n return tx;\n}\nexports.fromConstructor = fromConstructor;\nfunction fromBuffer(buffer, options) {\n const bufferReader = new bufferutils_1.BufferReader(buffer);\n const tx = fromConstructor(options);\n tx.version = bufferReader.readInt32();\n const marker = bufferReader.readUInt8();\n const flag = bufferReader.readUInt8();\n let hasWitnesses = false;\n let hasMweb = false;\n if ((0, networks_1.isNetworkType)('litecoin', tx.network)) {\n if (marker === ADVANCED_TRANSACTION_MARKER && flag === MWEB_PEGOUT_TX_FLAG) {\n hasMweb = true;\n }\n }\n if (marker === ADVANCED_TRANSACTION_MARKER && flag === ADVANCED_TRANSACTION_FLAG) {\n hasWitnesses = true;\n }\n else if (!hasMweb) {\n bufferReader.offset -= 2;\n }\n const vinLen = bufferReader.readVarInt();\n for (let i = 0; i < vinLen; ++i) {\n tx.ins.push({\n hash: bufferReader.readSlice(32),\n index: bufferReader.readUInt32(),\n script: bufferReader.readVarSlice(),\n sequence: bufferReader.readUInt32(),\n witness: [],\n });\n }\n const voutLen = bufferReader.readVarInt();\n for (let i = 0; i < voutLen; ++i) {\n tx.outs.push({\n value: bufferReader.readUInt64String(),\n script: bufferReader.readVarSlice(),\n });\n }\n if (hasWitnesses) {\n for (let i = 0; i < vinLen; ++i) {\n tx.ins[i].witness = bufferReader.readVector();\n }\n if (!tx.hasWitnesses())\n throw new Error('Transaction has superfluous witness data');\n }\n if (hasMweb) {\n bufferReader.readUInt8();\n }\n tx.locktime = bufferReader.readUInt32();\n if (options.nostrict)\n return tx;\n if (bufferReader.offset !== buffer.length)\n throw new Error('Transaction has unexpected data');\n return tx;\n}\nexports.fromBuffer = fromBuffer;\n//# sourceMappingURL=bitcoin.js.map", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fromBuffer = exports.fromConstructor = void 0;\nconst varuint = require(\"varuint-bitcoin\");\nconst bufferutils_1 = require(\"../bufferutils\");\nconst base_1 = require(\"./base\");\nconst DASH_NORMAL = 0;\nconst DASH_QUORUM_COMMITMENT = 6;\nfunction byteLength(tx, _ALLOW_WITNESS = true) {\n var _a;\n const hasWitnesses = _ALLOW_WITNESS && tx.hasWitnesses();\n return ((hasWitnesses ? 10 : 8) +\n (tx.timestamp ? 4 : 0) +\n varuint.encodingLength(tx.ins.length) +\n varuint.encodingLength(tx.outs.length) +\n tx.ins.reduce((sum, input) => sum + 40 + (0, base_1.varSliceSize)(input.script), 0) +\n tx.outs.reduce((sum, output) => sum + 8 + (0, base_1.varSliceSize)(output.script), 0) +\n (((_a = tx.specific) === null || _a === void 0 ? void 0 : _a.extraPayload) ? (0, base_1.varSliceSize)(tx.specific.extraPayload) : 0) +\n (hasWitnesses ? tx.ins.reduce((sum, input) => sum + (0, base_1.vectorSize)(input.witness), 0) : 0));\n}\nfunction toBuffer(tx, buffer, initialOffset, _ALLOW_WITNESS = true) {\n var _a;\n if (!buffer)\n buffer = Buffer.allocUnsafe(tx.byteLength(_ALLOW_WITNESS));\n const bufferWriter = new bufferutils_1.BufferWriter(buffer, initialOffset || 0);\n if (tx.version >= 3 && tx.type !== DASH_NORMAL) {\n bufferWriter.writeUInt16(tx.version);\n bufferWriter.writeUInt16(tx.type);\n }\n else {\n bufferWriter.writeInt32(tx.version);\n }\n bufferWriter.writeVarInt(tx.ins.length);\n tx.ins.forEach(txIn => {\n bufferWriter.writeSlice(txIn.hash);\n bufferWriter.writeUInt32(txIn.index);\n bufferWriter.writeVarSlice(txIn.script);\n bufferWriter.writeUInt32(txIn.sequence);\n });\n bufferWriter.writeVarInt(tx.outs.length);\n tx.outs.forEach(txOut => {\n bufferWriter.writeUInt64(txOut.value);\n bufferWriter.writeVarSlice(txOut.script);\n });\n bufferWriter.writeUInt32(tx.locktime);\n if ((_a = tx.specific) === null || _a === void 0 ? void 0 : _a.extraPayload)\n bufferWriter.writeVarSlice(tx.specific.extraPayload);\n if (initialOffset !== undefined)\n return buffer.slice(initialOffset, bufferWriter.offset);\n return buffer;\n}\nfunction getExtraData(tx) {\n var _a;\n if (!((_a = tx.specific) === null || _a === void 0 ? void 0 : _a.extraPayload))\n return;\n const extraDataLength = varuint.encode(tx.specific.extraPayload.length);\n return Buffer.concat([extraDataLength, tx.specific.extraPayload]);\n}\nfunction fromConstructor(options) {\n const tx = new base_1.TransactionBase(options);\n tx.specific = tx.specific || { type: 'dash' };\n tx.byteLength = byteLength.bind(null, tx);\n tx.toBuffer = toBuffer.bind(null, tx);\n tx.getExtraData = getExtraData.bind(null, tx);\n return tx;\n}\nexports.fromConstructor = fromConstructor;\nfunction fromBuffer(buffer, options) {\n const bufferReader = new bufferutils_1.BufferReader(buffer);\n const tx = fromConstructor(options);\n tx.version = bufferReader.readInt32();\n tx.type = tx.version >> 16;\n tx.version &= 0xffff;\n if (tx.version === 3 && (tx.type < DASH_NORMAL || tx.type > DASH_QUORUM_COMMITMENT)) {\n throw new Error('Unsupported Dash transaction type');\n }\n const vinLen = bufferReader.readVarInt();\n for (let i = 0; i < vinLen; ++i) {\n tx.ins.push({\n hash: bufferReader.readSlice(32),\n index: bufferReader.readUInt32(),\n script: bufferReader.readVarSlice(),\n sequence: bufferReader.readUInt32(),\n witness: [],\n });\n }\n const voutLen = bufferReader.readVarInt();\n for (let i = 0; i < voutLen; ++i) {\n tx.outs.push({\n value: bufferReader.readUInt64String(),\n script: bufferReader.readVarSlice(),\n });\n }\n tx.locktime = bufferReader.readUInt32();\n if (tx.version >= 3 && tx.type !== DASH_NORMAL) {\n tx.specific.extraPayload = bufferReader.readVarSlice();\n }\n if (options.nostrict)\n return tx;\n if (bufferReader.offset !== buffer.length)\n throw new Error('Transaction has unexpected data');\n return tx;\n}\nexports.fromBuffer = fromBuffer;\n//# sourceMappingURL=dash.js.map", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fromBuffer = exports.fromConstructor = void 0;\nconst varuint = require(\"varuint-bitcoin\");\nconst bufferutils_1 = require(\"../bufferutils\");\nconst bcrypto = require(\"../crypto\");\nconst base_1 = require(\"./base\");\nconst DECRED_TX_VERSION = 1;\nconst DECRED_TX_SERIALIZE_FULL = 0;\nconst DECRED_TX_SERIALIZE_NO_WITNESS = 1;\nconst DECRED_SCRIPT_VERSION = 0;\nfunction hasWitnesses(tx) {\n return tx.type === DECRED_TX_SERIALIZE_FULL;\n}\nfunction byteLength(tx, _ALLOW_WITNESS = true) {\n let byteLength = 4 + varuint.encodingLength(tx.ins.length);\n let nWitness = 0;\n const hasWitnesses = _ALLOW_WITNESS && tx.hasWitnesses();\n byteLength += tx.ins.reduce((sum, input) => {\n sum += 32 + 4 + 1 + 4;\n if (hasWitnesses) {\n nWitness += 1;\n sum += 8 + 4 + 4;\n sum += (0, base_1.varSliceSize)(input.decredWitness.script);\n }\n return sum;\n }, 0);\n if (hasWitnesses) {\n byteLength += varuint.encodingLength(nWitness);\n }\n byteLength += varuint.encodingLength(tx.outs.length);\n byteLength += tx.outs.reduce((sum, output) => {\n sum += 8 + 2;\n sum += (0, base_1.varSliceSize)(output.script);\n return sum;\n }, 0);\n byteLength += 4 + 4;\n return byteLength;\n}\nfunction toBuffer(tx, buffer, initialOffset, _ALLOW_WITNESS = true) {\n if (!buffer)\n buffer = Buffer.allocUnsafe(byteLength(tx, _ALLOW_WITNESS));\n const bufferWriter = new bufferutils_1.BufferWriter(buffer, initialOffset || 0);\n bufferWriter.writeUInt16(tx.version);\n bufferWriter.writeUInt16(_ALLOW_WITNESS ? tx.type : DECRED_TX_SERIALIZE_NO_WITNESS);\n bufferWriter.writeVarInt(tx.ins.length);\n tx.ins.forEach(txIn => {\n bufferWriter.writeSlice(txIn.hash);\n bufferWriter.writeUInt32(txIn.index);\n bufferWriter.writeUInt8(txIn.decredTree);\n bufferWriter.writeUInt32(txIn.sequence);\n });\n bufferWriter.writeVarInt(tx.outs.length);\n tx.outs.forEach(txOut => {\n bufferWriter.writeUInt64(txOut.value);\n bufferWriter.writeUInt16(txOut.decredVersion);\n bufferWriter.writeVarSlice(txOut.script);\n });\n bufferWriter.writeUInt32(tx.locktime);\n bufferWriter.writeUInt32(tx.expiry);\n if (_ALLOW_WITNESS && tx.hasWitnesses()) {\n bufferWriter.writeVarInt(tx.ins.length);\n tx.ins.forEach(input => {\n bufferWriter.writeUInt64(input.decredWitness.value);\n bufferWriter.writeUInt32(input.decredWitness.height);\n bufferWriter.writeUInt32(input.decredWitness.blockIndex);\n bufferWriter.writeVarSlice(input.decredWitness.script);\n });\n }\n if (initialOffset !== undefined)\n return buffer.slice(initialOffset, bufferWriter.offset);\n return buffer;\n}\nfunction getHash(tx, forWitness = false) {\n if (forWitness && tx.isCoinbase())\n return Buffer.alloc(32, 0);\n return bcrypto.blake256(toBuffer(tx, undefined, undefined, forWitness));\n}\nfunction weight(tx) {\n return tx.byteLength(true);\n}\nfunction fromConstructor(options) {\n const tx = new base_1.TransactionBase(options);\n tx.byteLength = byteLength.bind(null, tx);\n tx.toBuffer = toBuffer.bind(null, tx);\n tx.hasWitnesses = hasWitnesses.bind(null, tx);\n tx.getHash = getHash.bind(null, tx);\n tx.weight = weight.bind(null, tx);\n return tx;\n}\nexports.fromConstructor = fromConstructor;\nfunction fromBuffer(buffer, options) {\n const bufferReader = new bufferutils_1.BufferReader(buffer);\n const tx = fromConstructor(options);\n tx.version = bufferReader.readInt32();\n tx.type = tx.version >> 16;\n tx.version &= 0xffff;\n if (tx.version !== DECRED_TX_VERSION) {\n throw new Error('Unsupported Decred transaction version');\n }\n if (tx.type !== DECRED_TX_SERIALIZE_FULL && tx.type !== DECRED_TX_SERIALIZE_NO_WITNESS) {\n throw new Error('Unsupported Decred transaction type');\n }\n const vinLen = bufferReader.readVarInt();\n for (let i = 0; i < vinLen; ++i) {\n tx.ins.push({\n hash: bufferReader.readSlice(32),\n index: bufferReader.readUInt32(),\n decredTree: bufferReader.readUInt8(),\n sequence: bufferReader.readUInt32(),\n script: base_1.EMPTY_SCRIPT,\n witness: [],\n });\n }\n const voutLen = bufferReader.readVarInt();\n for (let i = 0; i < voutLen; i++) {\n const value = bufferReader.readUInt64String();\n const version = bufferReader.readUInt16();\n if (version !== DECRED_SCRIPT_VERSION)\n throw new Error('Unsupported Decred script version');\n tx.outs.push({\n value,\n decredVersion: version,\n script: bufferReader.readVarSlice(),\n });\n }\n tx.locktime = bufferReader.readUInt32();\n tx.expiry = bufferReader.readUInt32();\n if (tx.type === DECRED_TX_SERIALIZE_FULL) {\n const count = bufferReader.readVarInt();\n if (count !== vinLen)\n throw new Error('Non equal number of ins and witnesses');\n tx.ins.forEach(vin => {\n vin.decredWitness = {\n value: bufferReader.readUInt64String(),\n height: bufferReader.readUInt32(),\n blockIndex: bufferReader.readUInt32(),\n script: bufferReader.readVarSlice(),\n };\n });\n }\n if (options.nostrict)\n return tx;\n if (bufferReader.offset !== buffer.length)\n throw new Error('Transaction has unexpected data');\n return tx;\n}\nexports.fromBuffer = fromBuffer;\n//# sourceMappingURL=decred.js.map", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fromBuffer = exports.fromConstructor = void 0;\nconst bufferutils_1 = require(\"../bufferutils\");\nconst base_1 = require(\"./base\");\nfunction toBuffer(tx, buffer, initialOffset) {\n if (!buffer)\n buffer = Buffer.allocUnsafe(tx.byteLength(false));\n const bufferWriter = new bufferutils_1.BufferWriter(buffer, initialOffset || 0);\n bufferWriter.writeInt32(tx.version);\n bufferWriter.writeUInt32(tx.timestamp);\n bufferWriter.writeVarInt(tx.ins.length);\n tx.ins.forEach(txIn => {\n bufferWriter.writeSlice(txIn.hash);\n bufferWriter.writeUInt32(txIn.index);\n bufferWriter.writeVarSlice(txIn.script);\n bufferWriter.writeUInt32(txIn.sequence);\n });\n bufferWriter.writeVarInt(tx.outs.length);\n tx.outs.forEach(txOut => {\n bufferWriter.writeUInt64(txOut.value);\n bufferWriter.writeVarSlice(txOut.script);\n });\n bufferWriter.writeUInt32(tx.locktime);\n if (initialOffset !== undefined)\n return buffer.slice(initialOffset, bufferWriter.offset);\n return buffer;\n}\nfunction fromConstructor(options) {\n const tx = new base_1.TransactionBase(options);\n tx.toBuffer = toBuffer.bind(null, tx);\n return tx;\n}\nexports.fromConstructor = fromConstructor;\nfunction fromBuffer(buffer, options) {\n const bufferReader = new bufferutils_1.BufferReader(buffer);\n const tx = fromConstructor(options);\n tx.version = bufferReader.readInt32();\n tx.timestamp = bufferReader.readUInt32();\n const vinLen = bufferReader.readVarInt();\n for (let i = 0; i < vinLen; ++i) {\n tx.ins.push({\n hash: bufferReader.readSlice(32),\n index: bufferReader.readUInt32(),\n script: bufferReader.readVarSlice(),\n sequence: bufferReader.readUInt32(),\n witness: [],\n });\n }\n const voutLen = bufferReader.readVarInt();\n for (let i = 0; i < voutLen; ++i) {\n tx.outs.push({\n value: bufferReader.readUInt64String(),\n script: bufferReader.readVarSlice(),\n });\n }\n tx.locktime = bufferReader.readUInt32();\n if (options.nostrict)\n return tx;\n if (bufferReader.offset !== buffer.length)\n throw new Error('Transaction has unexpected data');\n return tx;\n}\nexports.fromBuffer = fromBuffer;\n//# sourceMappingURL=peercoin.js.map", "const ERROR_MSG_INPUT = 'Input must be an string, Buffer or Uint8Array'\n\n// For convenience, let people hash a string, not just a Uint8Array\nfunction normalizeInput (input) {\n let ret\n if (input instanceof Uint8Array) {\n ret = input\n } else if (typeof input === 'string') {\n const encoder = new TextEncoder()\n ret = encoder.encode(input)\n } else {\n throw new Error(ERROR_MSG_INPUT)\n }\n return ret\n}\n\n// Converts a Uint8Array to a hexadecimal string\n// For example, toHex([255, 0, 255]) returns \"ff00ff\"\nfunction toHex (bytes) {\n return Array.prototype.map\n .call(bytes, function (n) {\n return (n < 16 ? '0' : '') + n.toString(16)\n })\n .join('')\n}\n\n// Converts any value in [0...2^32-1] to an 8-character hex string\nfunction uint32ToHex (val) {\n return (0x100000000 + val).toString(16).substring(1)\n}\n\n// For debugging: prints out hash state in the same format as the RFC\n// sample computation exactly, so that you can diff\nfunction debugPrint (label, arr, size) {\n let msg = '\\n' + label + ' = '\n for (let i = 0; i < arr.length; i += 2) {\n if (size === 32) {\n msg += uint32ToHex(arr[i]).toUpperCase()\n msg += ' '\n msg += uint32ToHex(arr[i + 1]).toUpperCase()\n } else if (size === 64) {\n msg += uint32ToHex(arr[i + 1]).toUpperCase()\n msg += uint32ToHex(arr[i]).toUpperCase()\n } else throw new Error('Invalid size ' + size)\n if (i % 6 === 4) {\n msg += '\\n' + new Array(label.length + 4).join(' ')\n } else if (i < arr.length - 2) {\n msg += ' '\n }\n }\n console.log(msg)\n}\n\n// For performance testing: generates N bytes of input, hashes M times\n// Measures and prints MB/second hash performance each time\nfunction testSpeed (hashFn, N, M) {\n let startMs = new Date().getTime()\n\n const input = new Uint8Array(N)\n for (let i = 0; i < N; i++) {\n input[i] = i % 256\n }\n const genMs = new Date().getTime()\n console.log('Generated random input in ' + (genMs - startMs) + 'ms')\n startMs = genMs\n\n for (let i = 0; i < M; i++) {\n const hashHex = hashFn(input)\n const hashMs = new Date().getTime()\n const ms = hashMs - startMs\n startMs = hashMs\n console.log('Hashed in ' + ms + 'ms: ' + hashHex.substring(0, 20) + '...')\n console.log(\n Math.round((N / (1 << 20) / (ms / 1000)) * 100) / 100 + ' MB PER SECOND'\n )\n }\n}\n\nmodule.exports = {\n normalizeInput: normalizeInput,\n toHex: toHex,\n debugPrint: debugPrint,\n testSpeed: testSpeed\n}\n", "// Blake2B in pure Javascript\n// Adapted from the reference implementation in RFC7693\n// Ported to Javascript by DC - https://github.com/dcposch\n\nconst util = require('./util')\n\n// 64-bit unsigned addition\n// Sets v[a,a+1] += v[b,b+1]\n// v should be a Uint32Array\nfunction ADD64AA (v, a, b) {\n const o0 = v[a] + v[b]\n let o1 = v[a + 1] + v[b + 1]\n if (o0 >= 0x100000000) {\n o1++\n }\n v[a] = o0\n v[a + 1] = o1\n}\n\n// 64-bit unsigned addition\n// Sets v[a,a+1] += b\n// b0 is the low 32 bits of b, b1 represents the high 32 bits\nfunction ADD64AC (v, a, b0, b1) {\n let o0 = v[a] + b0\n if (b0 < 0) {\n o0 += 0x100000000\n }\n let o1 = v[a + 1] + b1\n if (o0 >= 0x100000000) {\n o1++\n }\n v[a] = o0\n v[a + 1] = o1\n}\n\n// Little-endian byte access\nfunction B2B_GET32 (arr, i) {\n return arr[i] ^ (arr[i + 1] << 8) ^ (arr[i + 2] << 16) ^ (arr[i + 3] << 24)\n}\n\n// G Mixing function\n// The ROTRs are inlined for speed\nfunction B2B_G (a, b, c, d, ix, iy) {\n const x0 = m[ix]\n const x1 = m[ix + 1]\n const y0 = m[iy]\n const y1 = m[iy + 1]\n\n ADD64AA(v, a, b) // v[a,a+1] += v[b,b+1] ... in JS we must store a uint64 as two uint32s\n ADD64AC(v, a, x0, x1) // v[a, a+1] += x ... x0 is the low 32 bits of x, x1 is the high 32 bits\n\n // v[d,d+1] = (v[d,d+1] xor v[a,a+1]) rotated to the right by 32 bits\n let xor0 = v[d] ^ v[a]\n let xor1 = v[d + 1] ^ v[a + 1]\n v[d] = xor1\n v[d + 1] = xor0\n\n ADD64AA(v, c, d)\n\n // v[b,b+1] = (v[b,b+1] xor v[c,c+1]) rotated right by 24 bits\n xor0 = v[b] ^ v[c]\n xor1 = v[b + 1] ^ v[c + 1]\n v[b] = (xor0 >>> 24) ^ (xor1 << 8)\n v[b + 1] = (xor1 >>> 24) ^ (xor0 << 8)\n\n ADD64AA(v, a, b)\n ADD64AC(v, a, y0, y1)\n\n // v[d,d+1] = (v[d,d+1] xor v[a,a+1]) rotated right by 16 bits\n xor0 = v[d] ^ v[a]\n xor1 = v[d + 1] ^ v[a + 1]\n v[d] = (xor0 >>> 16) ^ (xor1 << 16)\n v[d + 1] = (xor1 >>> 16) ^ (xor0 << 16)\n\n ADD64AA(v, c, d)\n\n // v[b,b+1] = (v[b,b+1] xor v[c,c+1]) rotated right by 63 bits\n xor0 = v[b] ^ v[c]\n xor1 = v[b + 1] ^ v[c + 1]\n v[b] = (xor1 >>> 31) ^ (xor0 << 1)\n v[b + 1] = (xor0 >>> 31) ^ (xor1 << 1)\n}\n\n// Initialization Vector\nconst BLAKE2B_IV32 = new Uint32Array([\n 0xf3bcc908, 0x6a09e667, 0x84caa73b, 0xbb67ae85, 0xfe94f82b, 0x3c6ef372,\n 0x5f1d36f1, 0xa54ff53a, 0xade682d1, 0x510e527f, 0x2b3e6c1f, 0x9b05688c,\n 0xfb41bd6b, 0x1f83d9ab, 0x137e2179, 0x5be0cd19\n])\n\nconst SIGMA8 = [\n 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 14, 10, 4, 8, 9, 15, 13,\n 6, 1, 12, 0, 2, 11, 7, 5, 3, 11, 8, 12, 0, 5, 2, 15, 13, 10, 14, 3, 6, 7, 1,\n 9, 4, 7, 9, 3, 1, 13, 12, 11, 14, 2, 6, 5, 10, 4, 0, 15, 8, 9, 0, 5, 7, 2, 4,\n 10, 15, 14, 1, 11, 12, 6, 8, 3, 13, 2, 12, 6, 10, 0, 11, 8, 3, 4, 13, 7, 5,\n 15, 14, 1, 9, 12, 5, 1, 15, 14, 13, 4, 10, 0, 7, 6, 3, 9, 2, 8, 11, 13, 11, 7,\n 14, 12, 1, 3, 9, 5, 0, 15, 4, 8, 6, 2, 10, 6, 15, 14, 9, 11, 3, 0, 8, 12, 2,\n 13, 7, 1, 4, 10, 5, 10, 2, 8, 4, 7, 6, 1, 5, 15, 11, 9, 14, 3, 12, 13, 0, 0,\n 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 14, 10, 4, 8, 9, 15, 13, 6,\n 1, 12, 0, 2, 11, 7, 5, 3\n]\n\n// These are offsets into a uint64 buffer.\n// Multiply them all by 2 to make them offsets into a uint32 buffer,\n// because this is Javascript and we don't have uint64s\nconst SIGMA82 = new Uint8Array(\n SIGMA8.map(function (x) {\n return x * 2\n })\n)\n\n// Compression function. 'last' flag indicates last block.\n// Note we're representing 16 uint64s as 32 uint32s\nconst v = new Uint32Array(32)\nconst m = new Uint32Array(32)\nfunction blake2bCompress (ctx, last) {\n let i = 0\n\n // init work variables\n for (i = 0; i < 16; i++) {\n v[i] = ctx.h[i]\n v[i + 16] = BLAKE2B_IV32[i]\n }\n\n // low 64 bits of offset\n v[24] = v[24] ^ ctx.t\n v[25] = v[25] ^ (ctx.t / 0x100000000)\n // high 64 bits not supported, offset may not be higher than 2**53-1\n\n // last block flag set ?\n if (last) {\n v[28] = ~v[28]\n v[29] = ~v[29]\n }\n\n // get little-endian words\n for (i = 0; i < 32; i++) {\n m[i] = B2B_GET32(ctx.b, 4 * i)\n }\n\n // twelve rounds of mixing\n // uncomment the DebugPrint calls to log the computation\n // and match the RFC sample documentation\n // util.debugPrint(' m[16]', m, 64)\n for (i = 0; i < 12; i++) {\n // util.debugPrint(' (i=' + (i < 10 ? ' ' : '') + i + ') v[16]', v, 64)\n B2B_G(0, 8, 16, 24, SIGMA82[i * 16 + 0], SIGMA82[i * 16 + 1])\n B2B_G(2, 10, 18, 26, SIGMA82[i * 16 + 2], SIGMA82[i * 16 + 3])\n B2B_G(4, 12, 20, 28, SIGMA82[i * 16 + 4], SIGMA82[i * 16 + 5])\n B2B_G(6, 14, 22, 30, SIGMA82[i * 16 + 6], SIGMA82[i * 16 + 7])\n B2B_G(0, 10, 20, 30, SIGMA82[i * 16 + 8], SIGMA82[i * 16 + 9])\n B2B_G(2, 12, 22, 24, SIGMA82[i * 16 + 10], SIGMA82[i * 16 + 11])\n B2B_G(4, 14, 16, 26, SIGMA82[i * 16 + 12], SIGMA82[i * 16 + 13])\n B2B_G(6, 8, 18, 28, SIGMA82[i * 16 + 14], SIGMA82[i * 16 + 15])\n }\n // util.debugPrint(' (i=12) v[16]', v, 64)\n\n for (i = 0; i < 16; i++) {\n ctx.h[i] = ctx.h[i] ^ v[i] ^ v[i + 16]\n }\n // util.debugPrint('h[8]', ctx.h, 64)\n}\n\n// reusable parameterBlock\nconst parameterBlock = new Uint8Array([\n 0,\n 0,\n 0,\n 0, // 0: outlen, keylen, fanout, depth\n 0,\n 0,\n 0,\n 0, // 4: leaf length, sequential mode\n 0,\n 0,\n 0,\n 0, // 8: node offset\n 0,\n 0,\n 0,\n 0, // 12: node offset\n 0,\n 0,\n 0,\n 0, // 16: node depth, inner length, rfu\n 0,\n 0,\n 0,\n 0, // 20: rfu\n 0,\n 0,\n 0,\n 0, // 24: rfu\n 0,\n 0,\n 0,\n 0, // 28: rfu\n 0,\n 0,\n 0,\n 0, // 32: salt\n 0,\n 0,\n 0,\n 0, // 36: salt\n 0,\n 0,\n 0,\n 0, // 40: salt\n 0,\n 0,\n 0,\n 0, // 44: salt\n 0,\n 0,\n 0,\n 0, // 48: personal\n 0,\n 0,\n 0,\n 0, // 52: personal\n 0,\n 0,\n 0,\n 0, // 56: personal\n 0,\n 0,\n 0,\n 0 // 60: personal\n])\n\n// Creates a BLAKE2b hashing context\n// Requires an output length between 1 and 64 bytes\n// Takes an optional Uint8Array key\n// Takes an optinal Uint8Array salt\n// Takes an optinal Uint8Array personal\nfunction blake2bInit (outlen, key, salt, personal) {\n if (outlen === 0 || outlen > 64) {\n throw new Error('Illegal output length, expected 0 < length <= 64')\n }\n if (key && key.length > 64) {\n throw new Error('Illegal key, expected Uint8Array with 0 < length <= 64')\n }\n if (salt && salt.length !== 16) {\n throw new Error('Illegal salt, expected Uint8Array with length is 16')\n }\n if (personal && personal.length !== 16) {\n throw new Error('Illegal personal, expected Uint8Array with length is 16')\n }\n\n // state, 'param block'\n const ctx = {\n b: new Uint8Array(128),\n h: new Uint32Array(16),\n t: 0, // input count\n c: 0, // pointer within buffer\n outlen: outlen // output length in bytes\n }\n\n // initialize parameterBlock before usage\n parameterBlock.fill(0)\n parameterBlock[0] = outlen\n if (key) parameterBlock[1] = key.length\n parameterBlock[2] = 1 // fanout\n parameterBlock[3] = 1 // depth\n if (salt) parameterBlock.set(salt, 32)\n if (personal) parameterBlock.set(personal, 48)\n\n // initialize hash state\n for (let i = 0; i < 16; i++) {\n ctx.h[i] = BLAKE2B_IV32[i] ^ B2B_GET32(parameterBlock, i * 4)\n }\n\n // key the hash, if applicable\n if (key) {\n blake2bUpdate(ctx, key)\n // at the end\n ctx.c = 128\n }\n\n return ctx\n}\n\n// Updates a BLAKE2b streaming hash\n// Requires hash context and Uint8Array (byte array)\nfunction blake2bUpdate (ctx, input) {\n for (let i = 0; i < input.length; i++) {\n if (ctx.c === 128) {\n // buffer full ?\n ctx.t += ctx.c // add counters\n blake2bCompress(ctx, false) // compress (not last)\n ctx.c = 0 // counter to zero\n }\n ctx.b[ctx.c++] = input[i]\n }\n}\n\n// Completes a BLAKE2b streaming hash\n// Returns a Uint8Array containing the message digest\nfunction blake2bFinal (ctx) {\n ctx.t += ctx.c // mark last block offset\n\n while (ctx.c < 128) {\n // fill up with zeros\n ctx.b[ctx.c++] = 0\n }\n blake2bCompress(ctx, true) // final block flag = 1\n\n // little endian convert and store\n const out = new Uint8Array(ctx.outlen)\n for (let i = 0; i < ctx.outlen; i++) {\n out[i] = ctx.h[i >> 2] >> (8 * (i & 3))\n }\n return out\n}\n\n// Computes the BLAKE2B hash of a string or byte array, and returns a Uint8Array\n//\n// Returns a n-byte Uint8Array\n//\n// Parameters:\n// - input - the input bytes, as a string, Buffer or Uint8Array\n// - key - optional key Uint8Array, up to 64 bytes\n// - outlen - optional output length in bytes, default 64\n// - salt - optional salt bytes, string, Buffer or Uint8Array\n// - personal - optional personal bytes, string, Buffer or Uint8Array\nfunction blake2b (input, key, outlen, salt, personal) {\n // preprocess inputs\n outlen = outlen || 64\n input = util.normalizeInput(input)\n if (salt) {\n salt = util.normalizeInput(salt)\n }\n if (personal) {\n personal = util.normalizeInput(personal)\n }\n\n // do the math\n const ctx = blake2bInit(outlen, key, salt, personal)\n blake2bUpdate(ctx, input)\n return blake2bFinal(ctx)\n}\n\n// Computes the BLAKE2B hash of a string or byte array\n//\n// Returns an n-byte hash in hex, all lowercase\n//\n// Parameters:\n// - input - the input bytes, as a string, Buffer, or Uint8Array\n// - key - optional key Uint8Array, up to 64 bytes\n// - outlen - optional output length in bytes, default 64\n// - salt - optional salt bytes, string, Buffer or Uint8Array\n// - personal - optional personal bytes, string, Buffer or Uint8Array\nfunction blake2bHex (input, key, outlen, salt, personal) {\n const output = blake2b(input, key, outlen, salt, personal)\n return util.toHex(output)\n}\n\nmodule.exports = {\n blake2b: blake2b,\n blake2bHex: blake2bHex,\n blake2bInit: blake2bInit,\n blake2bUpdate: blake2bUpdate,\n blake2bFinal: blake2bFinal\n}\n", "// BLAKE2s hash function in pure Javascript\n// Adapted from the reference implementation in RFC7693\n// Ported to Javascript by DC - https://github.com/dcposch\n\nconst util = require('./util')\n\n// Little-endian byte access.\n// Expects a Uint8Array and an index\n// Returns the little-endian uint32 at v[i..i+3]\nfunction B2S_GET32 (v, i) {\n return v[i] ^ (v[i + 1] << 8) ^ (v[i + 2] << 16) ^ (v[i + 3] << 24)\n}\n\n// Mixing function G.\nfunction B2S_G (a, b, c, d, x, y) {\n v[a] = v[a] + v[b] + x\n v[d] = ROTR32(v[d] ^ v[a], 16)\n v[c] = v[c] + v[d]\n v[b] = ROTR32(v[b] ^ v[c], 12)\n v[a] = v[a] + v[b] + y\n v[d] = ROTR32(v[d] ^ v[a], 8)\n v[c] = v[c] + v[d]\n v[b] = ROTR32(v[b] ^ v[c], 7)\n}\n\n// 32-bit right rotation\n// x should be a uint32\n// y must be between 1 and 31, inclusive\nfunction ROTR32 (x, y) {\n return (x >>> y) ^ (x << (32 - y))\n}\n\n// Initialization Vector.\nconst BLAKE2S_IV = new Uint32Array([\n 0x6a09e667,\n 0xbb67ae85,\n 0x3c6ef372,\n 0xa54ff53a,\n 0x510e527f,\n 0x9b05688c,\n 0x1f83d9ab,\n 0x5be0cd19\n])\n\nconst SIGMA = new Uint8Array([\n 0,\n 1,\n 2,\n 3,\n 4,\n 5,\n 6,\n 7,\n 8,\n 9,\n 10,\n 11,\n 12,\n 13,\n 14,\n 15,\n 14,\n 10,\n 4,\n 8,\n 9,\n 15,\n 13,\n 6,\n 1,\n 12,\n 0,\n 2,\n 11,\n 7,\n 5,\n 3,\n 11,\n 8,\n 12,\n 0,\n 5,\n 2,\n 15,\n 13,\n 10,\n 14,\n 3,\n 6,\n 7,\n 1,\n 9,\n 4,\n 7,\n 9,\n 3,\n 1,\n 13,\n 12,\n 11,\n 14,\n 2,\n 6,\n 5,\n 10,\n 4,\n 0,\n 15,\n 8,\n 9,\n 0,\n 5,\n 7,\n 2,\n 4,\n 10,\n 15,\n 14,\n 1,\n 11,\n 12,\n 6,\n 8,\n 3,\n 13,\n 2,\n 12,\n 6,\n 10,\n 0,\n 11,\n 8,\n 3,\n 4,\n 13,\n 7,\n 5,\n 15,\n 14,\n 1,\n 9,\n 12,\n 5,\n 1,\n 15,\n 14,\n 13,\n 4,\n 10,\n 0,\n 7,\n 6,\n 3,\n 9,\n 2,\n 8,\n 11,\n 13,\n 11,\n 7,\n 14,\n 12,\n 1,\n 3,\n 9,\n 5,\n 0,\n 15,\n 4,\n 8,\n 6,\n 2,\n 10,\n 6,\n 15,\n 14,\n 9,\n 11,\n 3,\n 0,\n 8,\n 12,\n 2,\n 13,\n 7,\n 1,\n 4,\n 10,\n 5,\n 10,\n 2,\n 8,\n 4,\n 7,\n 6,\n 1,\n 5,\n 15,\n 11,\n 9,\n 14,\n 3,\n 12,\n 13,\n 0\n])\n\n// Compression function. \"last\" flag indicates last block\nconst v = new Uint32Array(16)\nconst m = new Uint32Array(16)\nfunction blake2sCompress (ctx, last) {\n let i = 0\n for (i = 0; i < 8; i++) {\n // init work variables\n v[i] = ctx.h[i]\n v[i + 8] = BLAKE2S_IV[i]\n }\n\n v[12] ^= ctx.t // low 32 bits of offset\n v[13] ^= ctx.t / 0x100000000 // high 32 bits\n if (last) {\n // last block flag set ?\n v[14] = ~v[14]\n }\n\n for (i = 0; i < 16; i++) {\n // get little-endian words\n m[i] = B2S_GET32(ctx.b, 4 * i)\n }\n\n // ten rounds of mixing\n // uncomment the DebugPrint calls to log the computation\n // and match the RFC sample documentation\n // util.debugPrint(' m[16]', m, 32)\n for (i = 0; i < 10; i++) {\n // util.debugPrint(' (i=' + i + ') v[16]', v, 32)\n B2S_G(0, 4, 8, 12, m[SIGMA[i * 16 + 0]], m[SIGMA[i * 16 + 1]])\n B2S_G(1, 5, 9, 13, m[SIGMA[i * 16 + 2]], m[SIGMA[i * 16 + 3]])\n B2S_G(2, 6, 10, 14, m[SIGMA[i * 16 + 4]], m[SIGMA[i * 16 + 5]])\n B2S_G(3, 7, 11, 15, m[SIGMA[i * 16 + 6]], m[SIGMA[i * 16 + 7]])\n B2S_G(0, 5, 10, 15, m[SIGMA[i * 16 + 8]], m[SIGMA[i * 16 + 9]])\n B2S_G(1, 6, 11, 12, m[SIGMA[i * 16 + 10]], m[SIGMA[i * 16 + 11]])\n B2S_G(2, 7, 8, 13, m[SIGMA[i * 16 + 12]], m[SIGMA[i * 16 + 13]])\n B2S_G(3, 4, 9, 14, m[SIGMA[i * 16 + 14]], m[SIGMA[i * 16 + 15]])\n }\n // util.debugPrint(' (i=10) v[16]', v, 32)\n\n for (i = 0; i < 8; i++) {\n ctx.h[i] ^= v[i] ^ v[i + 8]\n }\n // util.debugPrint('h[8]', ctx.h, 32)\n}\n\n// Creates a BLAKE2s hashing context\n// Requires an output length between 1 and 32 bytes\n// Takes an optional Uint8Array key\nfunction blake2sInit (outlen, key) {\n if (!(outlen > 0 && outlen <= 32)) {\n throw new Error('Incorrect output length, should be in [1, 32]')\n }\n const keylen = key ? key.length : 0\n if (key && !(keylen > 0 && keylen <= 32)) {\n throw new Error('Incorrect key length, should be in [1, 32]')\n }\n\n const ctx = {\n h: new Uint32Array(BLAKE2S_IV), // hash state\n b: new Uint8Array(64), // input block\n c: 0, // pointer within block\n t: 0, // input count\n outlen: outlen // output length in bytes\n }\n ctx.h[0] ^= 0x01010000 ^ (keylen << 8) ^ outlen\n\n if (keylen > 0) {\n blake2sUpdate(ctx, key)\n ctx.c = 64 // at the end\n }\n\n return ctx\n}\n\n// Updates a BLAKE2s streaming hash\n// Requires hash context and Uint8Array (byte array)\nfunction blake2sUpdate (ctx, input) {\n for (let i = 0; i < input.length; i++) {\n if (ctx.c === 64) {\n // buffer full ?\n ctx.t += ctx.c // add counters\n blake2sCompress(ctx, false) // compress (not last)\n ctx.c = 0 // counter to zero\n }\n ctx.b[ctx.c++] = input[i]\n }\n}\n\n// Completes a BLAKE2s streaming hash\n// Returns a Uint8Array containing the message digest\nfunction blake2sFinal (ctx) {\n ctx.t += ctx.c // mark last block offset\n while (ctx.c < 64) {\n // fill up with zeros\n ctx.b[ctx.c++] = 0\n }\n blake2sCompress(ctx, true) // final block flag = 1\n\n // little endian convert and store\n const out = new Uint8Array(ctx.outlen)\n for (let i = 0; i < ctx.outlen; i++) {\n out[i] = (ctx.h[i >> 2] >> (8 * (i & 3))) & 0xff\n }\n return out\n}\n\n// Computes the BLAKE2S hash of a string or byte array, and returns a Uint8Array\n//\n// Returns a n-byte Uint8Array\n//\n// Parameters:\n// - input - the input bytes, as a string, Buffer, or Uint8Array\n// - key - optional key Uint8Array, up to 32 bytes\n// - outlen - optional output length in bytes, default 64\nfunction blake2s (input, key, outlen) {\n // preprocess inputs\n outlen = outlen || 32\n input = util.normalizeInput(input)\n\n // do the math\n const ctx = blake2sInit(outlen, key)\n blake2sUpdate(ctx, input)\n return blake2sFinal(ctx)\n}\n\n// Computes the BLAKE2S hash of a string or byte array\n//\n// Returns an n-byte hash in hex, all lowercase\n//\n// Parameters:\n// - input - the input bytes, as a string, Buffer, or Uint8Array\n// - key - optional key Uint8Array, up to 32 bytes\n// - outlen - optional output length in bytes, default 64\nfunction blake2sHex (input, key, outlen) {\n const output = blake2s(input, key, outlen)\n return util.toHex(output)\n}\n\nmodule.exports = {\n blake2s: blake2s,\n blake2sHex: blake2sHex,\n blake2sInit: blake2sInit,\n blake2sUpdate: blake2sUpdate,\n blake2sFinal: blake2sFinal\n}\n", "const b2b = require('./blake2b')\nconst b2s = require('./blake2s')\n\nmodule.exports = {\n blake2b: b2b.blake2b,\n blake2bHex: b2b.blake2bHex,\n blake2bInit: b2b.blake2bInit,\n blake2bUpdate: b2b.blake2bUpdate,\n blake2bFinal: b2b.blake2bFinal,\n blake2s: b2s.blake2s,\n blake2sHex: b2s.blake2sHex,\n blake2sInit: b2s.blake2sInit,\n blake2sUpdate: b2s.blake2sUpdate,\n blake2sFinal: b2s.blake2sFinal\n}\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fromBuffer = exports.fromConstructor = void 0;\nconst varuint = require(\"varuint-bitcoin\");\nconst blakejs_1 = require(\"blakejs\");\nconst bufferutils_1 = require(\"../bufferutils\");\nconst base_1 = require(\"./base\");\nconst crypto_1 = require(\"../crypto\");\nconst ZCASH_JOINSPLITS_SUPPORT_VERSION = 2;\nconst ZCASH_OVERWINTER_VERSION = 3;\nconst ZCASH_SAPLING_VERSION = 4;\nconst ZCASH_NU5_VERSION = 5;\nconst ZCASH_NUM_JOINSPLITS_INPUTS = 2;\nconst ZCASH_NUM_JOINSPLITS_OUTPUTS = 2;\nconst ZCASH_NOTECIPHERTEXT_SIZE = 1 + 8 + 32 + 32 + 512 + 16;\nconst ZCASH_G1_PREFIX_MASK = 0x02;\nconst ZCASH_G2_PREFIX_MASK = 0x0a;\nfunction byteLength(tx) {\n const overwinterSize = tx.version >= ZCASH_OVERWINTER_VERSION\n ? 4 +\n 4\n : 0;\n const txSpecific = tx.specific;\n const getJoinSplitsSize = () => {\n if (tx.version < ZCASH_JOINSPLITS_SUPPORT_VERSION || tx.version >= ZCASH_NU5_VERSION)\n return 0;\n const joinSplitsLen = txSpecific.joinsplits.length;\n if (joinSplitsLen < 1)\n return (0, bufferutils_1.varIntSize)(joinSplitsLen);\n return ((0, bufferutils_1.varIntSize)(joinSplitsLen) +\n (tx.version >= ZCASH_SAPLING_VERSION ? 1698 * joinSplitsLen : 1802 * joinSplitsLen) +\n 32 +\n 64);\n };\n const saplingSize = tx.version === ZCASH_SAPLING_VERSION\n ? 8 +\n varuint.encodingLength(txSpecific.vShieldedSpend.length) +\n 384 * txSpecific.vShieldedSpend.length +\n varuint.encodingLength(txSpecific.vShieldedOutput.length) +\n 948 * txSpecific.vShieldedOutput.length +\n (txSpecific.vShieldedSpend.length + txSpecific.vShieldedOutput.length > 0 ? 64 : 0)\n : 0;\n const NU5size = tx.version >= ZCASH_NU5_VERSION\n ? 4 +\n 1 +\n 1 +\n 1\n : 0;\n return (4 +\n varuint.encodingLength(tx.ins.length) +\n varuint.encodingLength(tx.outs.length) +\n tx.ins.reduce((sum, input) => sum + 40 + (0, base_1.varSliceSize)(input.script), 0) +\n tx.outs.reduce((sum, output) => sum + 8 + (0, base_1.varSliceSize)(output.script), 0) +\n 4 +\n overwinterSize +\n getJoinSplitsSize() +\n saplingSize +\n NU5size);\n}\nfunction toBuffer(tx, buffer, initialOffset) {\n if (!buffer)\n buffer = Buffer.allocUnsafe(byteLength(tx));\n const bufferWriter = new bufferutils_1.BufferWriter(buffer, initialOffset || 0);\n const txSpecific = tx.specific;\n if (tx.version >= ZCASH_OVERWINTER_VERSION) {\n const mask = txSpecific.overwintered ? 1 : 0;\n bufferWriter.writeInt32(tx.version | (mask << 31));\n bufferWriter.writeUInt32(txSpecific.versionGroupId);\n }\n else {\n bufferWriter.writeInt32(tx.version);\n }\n if (tx.version >= ZCASH_NU5_VERSION) {\n bufferWriter.writeUInt32(txSpecific.consensusBranchId);\n bufferWriter.writeUInt32(tx.locktime);\n bufferWriter.writeUInt32(tx.expiry);\n }\n bufferWriter.writeVarInt(tx.ins.length);\n tx.ins.forEach(txIn => {\n bufferWriter.writeSlice(txIn.hash);\n bufferWriter.writeUInt32(txIn.index);\n bufferWriter.writeVarSlice(txIn.script);\n bufferWriter.writeUInt32(txIn.sequence);\n });\n bufferWriter.writeVarInt(tx.outs.length);\n tx.outs.forEach(txOut => {\n bufferWriter.writeUInt64(txOut.value);\n bufferWriter.writeVarSlice(txOut.script);\n });\n if (tx.version < ZCASH_NU5_VERSION) {\n bufferWriter.writeUInt32(tx.locktime);\n if (tx.version >= ZCASH_OVERWINTER_VERSION) {\n bufferWriter.writeUInt32(tx.expiry);\n }\n }\n if (tx.version === ZCASH_SAPLING_VERSION) {\n bufferWriter.writeInt64(txSpecific.valueBalance);\n bufferWriter.writeVarInt(txSpecific.vShieldedSpend.length);\n txSpecific.vShieldedSpend.forEach(shieldedSpend => {\n bufferWriter.writeSlice(shieldedSpend.cv);\n bufferWriter.writeSlice(shieldedSpend.anchor);\n bufferWriter.writeSlice(shieldedSpend.nullifier);\n bufferWriter.writeSlice(shieldedSpend.rk);\n bufferWriter.writeSlice(shieldedSpend.zkproof.sA);\n bufferWriter.writeSlice(shieldedSpend.zkproof.sB);\n bufferWriter.writeSlice(shieldedSpend.zkproof.sC);\n bufferWriter.writeSlice(shieldedSpend.spendAuthSig);\n });\n bufferWriter.writeVarInt(txSpecific.vShieldedOutput.length);\n txSpecific.vShieldedOutput.forEach(shieldedOutput => {\n bufferWriter.writeSlice(shieldedOutput.cv);\n bufferWriter.writeSlice(shieldedOutput.cmu);\n bufferWriter.writeSlice(shieldedOutput.ephemeralKey);\n bufferWriter.writeSlice(shieldedOutput.encCiphertext);\n bufferWriter.writeSlice(shieldedOutput.outCiphertext);\n bufferWriter.writeSlice(shieldedOutput.zkproof.sA);\n bufferWriter.writeSlice(shieldedOutput.zkproof.sB);\n bufferWriter.writeSlice(shieldedOutput.zkproof.sC);\n });\n }\n function writeCompressedG1(i) {\n bufferWriter.writeUInt8(ZCASH_G1_PREFIX_MASK | i.yLsb);\n bufferWriter.writeSlice(i.x);\n }\n function writeCompressedG2(i) {\n bufferWriter.writeUInt8(ZCASH_G2_PREFIX_MASK | i.yLsb);\n bufferWriter.writeSlice(i.x);\n }\n if (tx.version >= ZCASH_JOINSPLITS_SUPPORT_VERSION && tx.version < ZCASH_NU5_VERSION) {\n bufferWriter.writeVarInt(txSpecific.joinsplits.length);\n txSpecific.joinsplits.forEach(joinsplit => {\n bufferWriter.writeUInt64(joinsplit.vpubOld);\n bufferWriter.writeUInt64(joinsplit.vpubNew);\n bufferWriter.writeSlice(joinsplit.anchor);\n joinsplit.nullifiers.forEach(nullifier => {\n bufferWriter.writeSlice(nullifier);\n });\n joinsplit.commitments.forEach(nullifier => {\n bufferWriter.writeSlice(nullifier);\n });\n bufferWriter.writeSlice(joinsplit.ephemeralKey);\n bufferWriter.writeSlice(joinsplit.randomSeed);\n joinsplit.macs.forEach(nullifier => {\n bufferWriter.writeSlice(nullifier);\n });\n if (joinsplit.zkproof.type === 'sapling') {\n bufferWriter.writeSlice(joinsplit.zkproof.sA);\n bufferWriter.writeSlice(joinsplit.zkproof.sB);\n bufferWriter.writeSlice(joinsplit.zkproof.sC);\n }\n else {\n writeCompressedG1(joinsplit.zkproof.gA);\n writeCompressedG1(joinsplit.zkproof.gAPrime);\n writeCompressedG2(joinsplit.zkproof.gB);\n writeCompressedG1(joinsplit.zkproof.gBPrime);\n writeCompressedG1(joinsplit.zkproof.gC);\n writeCompressedG1(joinsplit.zkproof.gCPrime);\n writeCompressedG1(joinsplit.zkproof.gK);\n writeCompressedG1(joinsplit.zkproof.gH);\n }\n joinsplit.ciphertexts.forEach(ciphertext => {\n bufferWriter.writeSlice(ciphertext);\n });\n });\n if (txSpecific.joinsplits.length > 0) {\n bufferWriter.writeSlice(txSpecific.joinsplitPubkey);\n bufferWriter.writeSlice(txSpecific.joinsplitSig);\n }\n }\n if (tx.version >= ZCASH_SAPLING_VERSION &&\n txSpecific.vShieldedSpend.length + txSpecific.vShieldedOutput.length > 0) {\n bufferWriter.writeSlice(txSpecific.bindingSig);\n }\n if (tx.version === ZCASH_NU5_VERSION) {\n bufferWriter.writeVarInt(0);\n bufferWriter.writeVarInt(0);\n bufferWriter.writeUInt8(0x00);\n }\n if (initialOffset !== undefined)\n return buffer.slice(initialOffset, bufferWriter.offset);\n return buffer;\n}\nfunction getExtraData(tx) {\n if (tx.version < ZCASH_JOINSPLITS_SUPPORT_VERSION || tx.version >= ZCASH_NU5_VERSION)\n return;\n const offset = 4 +\n (tx.version >= ZCASH_OVERWINTER_VERSION ? 8 : 0) +\n varuint.encodingLength(tx.ins.length) +\n varuint.encodingLength(tx.outs.length) +\n tx.ins.reduce((sum, input) => sum + 40 + (0, base_1.varSliceSize)(input.script), 0) +\n tx.outs.reduce((sum, output) => sum + 8 + (0, base_1.varSliceSize)(output.script), 0) +\n 4;\n return tx.toBuffer().slice(offset);\n}\nfunction getBlake2bDigestHash(buffer, personalization) {\n const hash = (0, blakejs_1.blake2b)(buffer, undefined, 32, undefined, Buffer.from(personalization));\n return Buffer.from(hash);\n}\nfunction getHeaderDigest(tx) {\n const mask = tx.specific.overwintered ? 1 : 0;\n const writer = new bufferutils_1.BufferWriter(Buffer.alloc(4 * 5));\n writer.writeInt32(tx.version | (mask << 31));\n writer.writeUInt32(tx.specific.versionGroupId);\n writer.writeUInt32(tx.specific.consensusBranchId);\n writer.writeUInt32(tx.locktime);\n writer.writeUInt32(tx.expiry);\n return getBlake2bDigestHash(writer.buffer, 'ZTxIdHeadersHash');\n}\nfunction getPrevoutsDigest(ins) {\n const bufferWriter = new bufferutils_1.BufferWriter(Buffer.allocUnsafe(36 * ins.length));\n ins.forEach(txIn => {\n bufferWriter.writeSlice(txIn.hash);\n bufferWriter.writeUInt32(txIn.index);\n });\n return getBlake2bDigestHash(bufferWriter.buffer, 'ZTxIdPrevoutHash');\n}\nfunction getSequenceDigest(ins) {\n const bufferWriter = new bufferutils_1.BufferWriter(Buffer.allocUnsafe(4 * ins.length));\n ins.forEach(txIn => {\n bufferWriter.writeUInt32(txIn.sequence);\n });\n return getBlake2bDigestHash(bufferWriter.buffer, 'ZTxIdSequencHash');\n}\nfunction getOutputsDigest(outs) {\n const txOutsSize = outs.reduce((sum, output) => sum + 8 + (0, base_1.varSliceSize)(output.script), 0);\n const bufferWriter = new bufferutils_1.BufferWriter(Buffer.allocUnsafe(txOutsSize));\n outs.forEach(out => {\n bufferWriter.writeUInt64(out.value);\n bufferWriter.writeVarSlice(out.script);\n });\n return getBlake2bDigestHash(bufferWriter.buffer, 'ZTxIdOutputsHash');\n}\nfunction getTransparentDigest(tx) {\n let buffer;\n if (tx.ins.length || tx.outs.length) {\n const writer = new bufferutils_1.BufferWriter(Buffer.alloc(32 * 3));\n writer.writeSlice(getPrevoutsDigest(tx.ins));\n writer.writeSlice(getSequenceDigest(tx.ins));\n writer.writeSlice(getOutputsDigest(tx.outs));\n buffer = writer.buffer;\n }\n else {\n buffer = Buffer.of();\n }\n return getBlake2bDigestHash(buffer, 'ZTxIdTranspaHash');\n}\nfunction getHash(tx, _forWitness = false) {\n if (tx.version < ZCASH_NU5_VERSION) {\n return (0, crypto_1.hash256)(toBuffer(tx));\n }\n const writer = new bufferutils_1.BufferWriter(Buffer.alloc(32 * 4));\n writer.writeSlice(getHeaderDigest(tx));\n writer.writeSlice(getTransparentDigest(tx));\n writer.writeSlice(getBlake2bDigestHash(Buffer.of(), 'ZTxIdSaplingHash'));\n writer.writeSlice(getBlake2bDigestHash(Buffer.of(), 'ZTxIdOrchardHash'));\n const personalizationTag = 'ZcashTxHash_';\n const personalization = new bufferutils_1.BufferWriter(Buffer.alloc(personalizationTag.length + 4));\n personalization.writeSlice(Buffer.from(personalizationTag));\n personalization.writeUInt32(tx.specific.consensusBranchId);\n return getBlake2bDigestHash(writer.buffer, personalization.buffer);\n}\nfunction fromConstructor(options) {\n const tx = new base_1.TransactionBase(options);\n tx.specific = tx.specific || {\n type: 'zcash',\n joinsplits: [],\n joinsplitPubkey: base_1.EMPTY_SCRIPT,\n joinsplitSig: base_1.EMPTY_SCRIPT,\n overwintered: 0,\n versionGroupId: 0,\n valueBalance: 0,\n vShieldedSpend: [],\n vShieldedOutput: [],\n bindingSig: base_1.EMPTY_SCRIPT,\n consensusBranchId: 0,\n };\n tx.byteLength = byteLength.bind(null, tx);\n tx.toBuffer = toBuffer.bind(null, tx);\n tx.getExtraData = getExtraData.bind(null, tx);\n tx.getHash = getHash.bind(null, tx);\n return tx;\n}\nexports.fromConstructor = fromConstructor;\nfunction fromBuffer(buffer, options) {\n const bufferReader = new bufferutils_1.BufferReader(buffer);\n const tx = fromConstructor(options);\n const txSpecific = tx.specific;\n tx.version = bufferReader.readInt32();\n txSpecific.overwintered = tx.version >>> 31;\n tx.version &= 0x07fffffff;\n if (tx.version >= ZCASH_OVERWINTER_VERSION) {\n txSpecific.versionGroupId = bufferReader.readUInt32();\n }\n if (tx.version >= ZCASH_NU5_VERSION) {\n txSpecific.consensusBranchId = bufferReader.readUInt32();\n tx.locktime = bufferReader.readUInt32();\n tx.expiry = bufferReader.readUInt32();\n }\n const vinLen = bufferReader.readVarInt();\n for (let i = 0; i < vinLen; ++i) {\n tx.ins.push({\n hash: bufferReader.readSlice(32),\n index: bufferReader.readUInt32(),\n script: bufferReader.readVarSlice(),\n sequence: bufferReader.readUInt32(),\n witness: [],\n });\n }\n const voutLen = bufferReader.readVarInt();\n for (let i = 0; i < voutLen; ++i) {\n tx.outs.push({\n value: bufferReader.readUInt64String(),\n script: bufferReader.readVarSlice(),\n });\n }\n if (tx.version < ZCASH_NU5_VERSION) {\n tx.locktime = bufferReader.readUInt32();\n tx.expiry = tx.version >= ZCASH_OVERWINTER_VERSION ? bufferReader.readUInt32() : 0;\n }\n function readCompressedG1() {\n const yLsb = bufferReader.readUInt8() & 1;\n const x = bufferReader.readSlice(32);\n return {\n x,\n yLsb,\n };\n }\n function readCompressedG2() {\n const yLsb = bufferReader.readUInt8() & 1;\n const x = bufferReader.readSlice(64);\n return {\n x,\n yLsb,\n };\n }\n function readSaplingZKProof() {\n return {\n type: 'sapling',\n sA: bufferReader.readSlice(48),\n sB: bufferReader.readSlice(96),\n sC: bufferReader.readSlice(48),\n };\n }\n function readZKProof() {\n if (tx.version >= ZCASH_SAPLING_VERSION) {\n return readSaplingZKProof();\n }\n return {\n type: 'joinsplit',\n gA: readCompressedG1(),\n gAPrime: readCompressedG1(),\n gB: readCompressedG2(),\n gBPrime: readCompressedG1(),\n gC: readCompressedG1(),\n gCPrime: readCompressedG1(),\n gK: readCompressedG1(),\n gH: readCompressedG1(),\n };\n }\n if (tx.version === ZCASH_SAPLING_VERSION) {\n txSpecific.valueBalance = bufferReader.readInt64();\n const nShieldedSpend = bufferReader.readVarInt();\n for (let i = 0; i < nShieldedSpend; ++i) {\n txSpecific.vShieldedSpend.push({\n cv: bufferReader.readSlice(32),\n anchor: bufferReader.readSlice(32),\n nullifier: bufferReader.readSlice(32),\n rk: bufferReader.readSlice(32),\n zkproof: readSaplingZKProof(),\n spendAuthSig: bufferReader.readSlice(64),\n });\n }\n const nShieldedOutput = bufferReader.readVarInt();\n for (let i = 0; i < nShieldedOutput; ++i) {\n txSpecific.vShieldedOutput.push({\n cv: bufferReader.readSlice(32),\n cmu: bufferReader.readSlice(32),\n ephemeralKey: bufferReader.readSlice(32),\n encCiphertext: bufferReader.readSlice(580),\n outCiphertext: bufferReader.readSlice(80),\n zkproof: readSaplingZKProof(),\n });\n }\n }\n if (tx.version >= ZCASH_JOINSPLITS_SUPPORT_VERSION && tx.version < ZCASH_NU5_VERSION) {\n const joinSplitsLen = bufferReader.readVarInt();\n for (let i = 0; i < joinSplitsLen; ++i) {\n let j;\n const vpubOld = bufferReader.readUInt64();\n const vpubNew = bufferReader.readUInt64();\n const anchor = bufferReader.readSlice(32);\n const nullifiers = [];\n for (j = 0; j < ZCASH_NUM_JOINSPLITS_INPUTS; j++) {\n nullifiers.push(bufferReader.readSlice(32));\n }\n const commitments = [];\n for (j = 0; j < ZCASH_NUM_JOINSPLITS_OUTPUTS; j++) {\n commitments.push(bufferReader.readSlice(32));\n }\n const ephemeralKey = bufferReader.readSlice(32);\n const randomSeed = bufferReader.readSlice(32);\n const macs = [];\n for (j = 0; j < ZCASH_NUM_JOINSPLITS_INPUTS; j++) {\n macs.push(bufferReader.readSlice(32));\n }\n const zkproof = readZKProof();\n const ciphertexts = [];\n for (j = 0; j < ZCASH_NUM_JOINSPLITS_OUTPUTS; j++) {\n ciphertexts.push(bufferReader.readSlice(ZCASH_NOTECIPHERTEXT_SIZE));\n }\n txSpecific.joinsplits.push({\n vpubOld,\n vpubNew,\n anchor,\n nullifiers,\n commitments,\n ephemeralKey,\n randomSeed,\n macs,\n zkproof,\n ciphertexts,\n });\n }\n if (joinSplitsLen > 0) {\n txSpecific.joinsplitPubkey = bufferReader.readSlice(32);\n txSpecific.joinsplitSig = bufferReader.readSlice(64);\n }\n }\n if (tx.version >= ZCASH_SAPLING_VERSION &&\n txSpecific.vShieldedSpend.length + txSpecific.vShieldedOutput.length > 0) {\n txSpecific.bindingSig = bufferReader.readSlice(64);\n }\n if (tx.version === ZCASH_NU5_VERSION) {\n if (bufferReader.readVarInt() !== 0) {\n throw Error('Unexpected vSpendsSapling vector');\n }\n if (bufferReader.readVarInt() !== 0) {\n throw Error('Unexpected vOutputsSapling vector');\n }\n if (bufferReader.readUInt8() !== 0x00) {\n throw Error('Unexpected orchard byte');\n }\n }\n if (options.nostrict)\n return tx;\n if (bufferReader.offset !== buffer.length)\n throw new Error('Transaction has unexpected data');\n return tx;\n}\nexports.fromBuffer = fromBuffer;\n//# sourceMappingURL=zcash.js.map", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Transaction = void 0;\nconst networks_1 = require(\"../networks\");\nconst base_1 = require(\"./base\");\nconst bitcoin = require(\"./bitcoin\");\nconst dash = require(\"./dash\");\nconst decred = require(\"./decred\");\nconst peercoin = require(\"./peercoin\");\nconst zcash = require(\"./zcash\");\nclass Transaction extends base_1.TransactionBase {\n constructor(options = {}) {\n super(options);\n if ((0, networks_1.isNetworkType)('dash', this.network))\n return dash.fromConstructor(options);\n if ((0, networks_1.isNetworkType)('decred', this.network))\n return decred.fromConstructor(options);\n if ((0, networks_1.isNetworkType)('peercoin', this.network))\n return peercoin.fromConstructor(options);\n if ((0, networks_1.isNetworkType)('zcash', this.network))\n return zcash.fromConstructor(options);\n return bitcoin.fromConstructor(options);\n }\n static isCoinbaseHash(buffer) {\n return (0, base_1.isCoinbaseHash)(buffer);\n }\n static fromBuffer(buffer, options = {}) {\n if ((0, networks_1.isNetworkType)('dash', options.network))\n return dash.fromBuffer(buffer, options);\n if ((0, networks_1.isNetworkType)('decred', options.network))\n return decred.fromBuffer(buffer, options);\n if ((0, networks_1.isNetworkType)('peercoin', options.network))\n return peercoin.fromBuffer(buffer, options);\n if ((0, networks_1.isNetworkType)('zcash', options.network))\n return zcash.fromBuffer(buffer, options);\n return bitcoin.fromBuffer(buffer, options);\n }\n static fromHex(hex, options = {}) {\n return this.fromBuffer(Buffer.from(hex, 'hex'), Object.assign(options, { nostrict: false }));\n }\n}\nexports.Transaction = Transaction;\n//# sourceMappingURL=index.js.map", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.discovery = exports.deriveAddresses = exports.composeTx = exports.networks = exports.script = exports.payments = exports.crypto = exports.bufferutils = exports.bip32 = exports.address = exports.Transaction = void 0;\nconst address = require(\"./address\");\nexports.address = address;\nconst bip32 = require(\"./bip32\");\nexports.bip32 = bip32;\nconst bufferutils = require(\"./bufferutils\");\nexports.bufferutils = bufferutils;\nconst crypto = require(\"./crypto\");\nexports.crypto = crypto;\nconst payments = require(\"./payments\");\nexports.payments = payments;\nconst script = require(\"./script\");\nexports.script = script;\nconst networks = require(\"./networks\");\nexports.networks = networks;\nconst compose_1 = require(\"./compose\");\nObject.defineProperty(exports, \"composeTx\", { enumerable: true, get: function () { return compose_1.composeTx; } });\nconst derivation_1 = require(\"./derivation\");\nObject.defineProperty(exports, \"deriveAddresses\", { enumerable: true, get: function () { return derivation_1.deriveAddresses; } });\nconst discovery_1 = require(\"./discovery\");\nObject.defineProperty(exports, \"discovery\", { enumerable: true, get: function () { return discovery_1.discovery; } });\nvar transaction_1 = require(\"./transaction\");\nObject.defineProperty(exports, \"Transaction\", { enumerable: true, get: function () { return transaction_1.Transaction; } });\n//# sourceMappingURL=index.js.map", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.convertMultisigPubKey = exports.xpubToHDNodeType = exports.xpubDerive = exports.convertBitcoinXpub = exports.convertXpub = void 0;\nconst utxo_lib_1 = require(\"@trezor/utxo-lib\");\nconst constants_1 = require(\"../constants\");\nconst pubNode2bjsNode = (node, network) => {\n const chainCode = Buffer.from(node.chain_code, 'hex');\n const publicKey = Buffer.from(node.public_key, 'hex');\n const res = utxo_lib_1.bip32.fromPublicKey(publicKey, chainCode, network);\n res.__DEPTH = node.depth;\n res.__INDEX = node.child_num;\n res.__PARENT_FINGERPRINT = node.fingerprint;\n return res;\n};\nconst convertXpub = (xpub, originalNetwork, requestedNetwork) => {\n const node = utxo_lib_1.bip32.fromBase58(xpub, originalNetwork);\n if (requestedNetwork) {\n node.network = requestedNetwork;\n }\n return node.toBase58();\n};\nexports.convertXpub = convertXpub;\nconst convertBitcoinXpub = (xpub, network) => {\n if (network.bip32.public === 0x0488b21e) {\n return xpub;\n }\n const node = utxo_lib_1.bip32.fromBase58(xpub);\n node.network = network;\n return node.toBase58();\n};\nexports.convertBitcoinXpub = convertBitcoinXpub;\nconst pubKey2bjsNode = (key, network) => {\n const keyNode = key.node;\n const bjsNode = pubNode2bjsNode(keyNode, network);\n const bjsXpub = bjsNode.toBase58();\n const keyXpub = (0, exports.convertXpub)(key.xpub, network);\n if (bjsXpub !== keyXpub) {\n throw constants_1.ERRORS.TypedError('Runtime', `pubKey2bjsNode: Invalid public key transmission detected. Key: ${bjsXpub}, Received: ${keyXpub}`);\n }\n return bjsNode;\n};\nconst checkDerivation = (parBjsNode, childBjsNode, suffix) => {\n const derivedChildBjsNode = parBjsNode.derive(suffix);\n const derivedXpub = derivedChildBjsNode.toBase58();\n const compXpub = childBjsNode.toBase58();\n if (derivedXpub !== compXpub) {\n throw constants_1.ERRORS.TypedError('Runtime', `checkDerivation: Invalid child cross-check public key. Derived: ${derivedXpub}, Received: ${compXpub}`);\n }\n};\nfunction xpubDerive(xpub, childXPub, suffix, network, _requestedNetwork) {\n const resNode = pubKey2bjsNode(xpub, network);\n const childNode = pubKey2bjsNode(childXPub, network);\n checkDerivation(resNode, childNode, suffix);\n return xpub;\n}\nexports.xpubDerive = xpubDerive;\nconst xpubToHDNodeType = (xpub, network) => {\n const hd = utxo_lib_1.bip32.fromBase58(xpub, network);\n return {\n depth: hd.depth,\n child_num: hd.index,\n fingerprint: hd.parentFingerprint,\n public_key: hd.publicKey.toString('hex'),\n chain_code: hd.chainCode.toString('hex'),\n };\n};\nexports.xpubToHDNodeType = xpubToHDNodeType;\nconst convertMultisigPubKey = (network, utxo) => {\n var _a;\n if ('multisig' in utxo && ((_a = utxo.multisig) === null || _a === void 0 ? void 0 : _a.pubkeys)) {\n utxo.multisig.pubkeys.forEach(pk => {\n if (typeof pk.node === 'string') {\n pk.node = (0, exports.xpubToHDNodeType)(pk.node, network);\n }\n });\n }\n return utxo;\n};\nexports.convertMultisigPubKey = convertMultisigPubKey;\n//# sourceMappingURL=hdnodeUtils.js.map", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isUtxoBased = exports.getPublicKeyLabel = exports.getAccountLabel = exports.getAccountAddressN = void 0;\nconst pathUtils_1 = require(\"./pathUtils\");\nconst coinInfo_1 = require(\"../data/coinInfo\");\nconst constants_1 = require(\"../constants\");\nconst getAccountAddressN = (coinInfo, accountIndex, bip44) => {\n if (!coinInfo) {\n throw constants_1.ERRORS.TypedError('Method_UnknownCoin');\n }\n const index = typeof accountIndex === 'number' ? accountIndex : 0;\n const options = {\n purpose: 44,\n coinType: coinInfo.slip44,\n ...bip44,\n };\n if (coinInfo.type === 'bitcoin') {\n return [(0, pathUtils_1.toHardened)(options.purpose), (0, pathUtils_1.toHardened)(options.coinType), (0, pathUtils_1.toHardened)(index)];\n }\n if (coinInfo.shortcut === 'ADA' || coinInfo.shortcut === 'tADA') {\n return [(0, pathUtils_1.toHardened)(1852), (0, pathUtils_1.toHardened)(options.coinType), (0, pathUtils_1.toHardened)(index)];\n }\n if (coinInfo.type === 'ethereum') {\n return [(0, pathUtils_1.toHardened)(options.purpose), (0, pathUtils_1.toHardened)(options.coinType), (0, pathUtils_1.toHardened)(0), 0, index];\n }\n if (coinInfo.shortcut === 'tXRP') {\n return [(0, pathUtils_1.toHardened)(options.purpose), (0, pathUtils_1.toHardened)(144), (0, pathUtils_1.toHardened)(index), 0, 0];\n }\n return [(0, pathUtils_1.toHardened)(options.purpose), (0, pathUtils_1.toHardened)(options.coinType), (0, pathUtils_1.toHardened)(index), 0, 0];\n};\nexports.getAccountAddressN = getAccountAddressN;\nconst getAccountLabel = (path, coinInfo) => {\n if (coinInfo.type === 'bitcoin') {\n const accountType = (0, pathUtils_1.fromHardened)(path[0]);\n const account = (0, pathUtils_1.fromHardened)(path[2]);\n let prefix = '';\n if (accountType === 48) {\n prefix = 'multisig';\n }\n else if (accountType === 49 && coinInfo.segwit) {\n prefix = 'segwit';\n }\n else if (accountType === 44 && coinInfo.segwit) {\n prefix = 'legacy';\n }\n return `${prefix} account #${account + 1}`;\n }\n const account = (0, pathUtils_1.fromHardened)(path[4]);\n return `account #${account + 1}`;\n};\nexports.getAccountLabel = getAccountLabel;\nconst getPublicKeyLabel = (path, coinInfo) => {\n let hasSegwit = false;\n let coinLabel = 'Unknown coin';\n if (coinInfo) {\n coinLabel = coinInfo.label;\n hasSegwit = coinInfo.segwit;\n }\n else {\n coinLabel = (0, coinInfo_1.getCoinName)(path);\n }\n const p1 = (0, pathUtils_1.fromHardened)(path[0]);\n let account = path.length >= 3 ? (0, pathUtils_1.fromHardened)(path[2]) : -1;\n let realAccountId = account + 1;\n let prefix = 'Export public key';\n let accountType = '';\n if (p1 === 45342) {\n const p2 = (0, pathUtils_1.fromHardened)(path[1]);\n account = (0, pathUtils_1.fromHardened)(path[3]);\n realAccountId = account + 1;\n prefix = 'Export Copay ID of';\n if (p2 === 48) {\n accountType = 'multisig';\n }\n else if (p2 === 44) {\n accountType = 'legacy';\n }\n }\n else if (p1 === 48) {\n accountType = `${coinLabel} multisig`;\n }\n else if (p1 === 44 && hasSegwit) {\n accountType = `${coinLabel} legacy`;\n }\n else if (p1 === 84 && hasSegwit) {\n accountType = `${coinLabel} native segwit`;\n }\n else {\n accountType = coinLabel;\n }\n if (realAccountId > 0) {\n return `${prefix} of ${accountType} account #${realAccountId}`;\n }\n return prefix;\n};\nexports.getPublicKeyLabel = getPublicKeyLabel;\nconst isUtxoBased = (coinInfo) => coinInfo.type === 'bitcoin' || coinInfo.shortcut === 'ADA' || coinInfo.shortcut === 'tADA';\nexports.isUtxoBased = isUtxoBased;\n//# sourceMappingURL=accountUtils.js.map", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.versionCompare = exports.versionSplit = exports.normalizeVersionArray = exports.isValidVersionArray = exports.isValidVersionString = void 0;\nconst VER_NUMS = 3;\nconst versionRegex = new RegExp(/^[0-9]{1,3}(\\.[0-9]{1,3}){0,2}$/);\nconst isValidVersionString = (version) => versionRegex.test(version);\nexports.isValidVersionString = isValidVersionString;\nconst isValidVersionArray = (version) => {\n if (!Array.isArray(version)) {\n return false;\n }\n if (version.length === 0 || version.length > VER_NUMS) {\n return false;\n }\n if (version[0] === 0) {\n return false;\n }\n for (let i = 0; i < version.length; i++) {\n if (typeof version[i] !== 'number' || version[i] < 0) {\n return false;\n }\n }\n return true;\n};\nexports.isValidVersionArray = isValidVersionArray;\nconst normalizeVersionArray = (version) => {\n if (version.length === VER_NUMS) {\n return version;\n }\n const partialVersion = [...version];\n for (let i = version.length; i < VER_NUMS; i++) {\n partialVersion.push(0);\n }\n return partialVersion;\n};\nexports.normalizeVersionArray = normalizeVersionArray;\nconst versionSplit = (version) => {\n if (!(0, exports.isValidVersionString)(version)) {\n return [0, 0, 0];\n }\n return version.split('.').map(v => Number(v));\n};\nexports.versionSplit = versionSplit;\nconst versionCompare = (a, b) => {\n if (typeof a === 'string' && typeof b === 'string' && a === b) {\n return 0;\n }\n const pa = typeof a === 'string' ? (0, exports.versionSplit)(a) : a;\n const pb = typeof b === 'string' ? (0, exports.versionSplit)(b) : b;\n const vpa = (0, exports.isValidVersionArray)(pa);\n const vpb = (0, exports.isValidVersionArray)(pb);\n if (!vpa && !vpb) {\n return 0;\n }\n if (!vpa && vpb) {\n return -1;\n }\n if (vpa && !vpb) {\n return 1;\n }\n const npa = (0, exports.normalizeVersionArray)(pa);\n const npb = (0, exports.normalizeVersionArray)(pb);\n for (let i = 0; i < VER_NUMS; i++) {\n if (npa[i] > npb[i])\n return 1;\n if (npb[i] > npa[i])\n return -1;\n }\n return 0;\n};\nexports.versionCompare = versionCompare;\n//# sourceMappingURL=versionUtils.js.map", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DeviceCommands = void 0;\nconst tslib_1 = require(\"tslib\");\nconst randombytes_1 = tslib_1.__importDefault(require(\"randombytes\"));\nconst constants_1 = require(\"../constants\");\nconst events_1 = require(\"../events\");\nconst hdnodeUtils = tslib_1.__importStar(require(\"../utils/hdnodeUtils\"));\nconst pathUtils_1 = require(\"../utils/pathUtils\");\nconst accountUtils_1 = require(\"../utils/accountUtils\");\nconst versionUtils_1 = require(\"../utils/versionUtils\");\nconst coinInfo_1 = require(\"../data/coinInfo\");\nconst debug_1 = require(\"../utils/debug\");\nconst logger = (0, debug_1.initLog)('DeviceCommands');\nconst assertType = (res, resType) => {\n const splitResTypes = Array.isArray(resType) ? resType : resType.split('|');\n if (!splitResTypes.includes(res.type)) {\n throw constants_1.ERRORS.TypedError('Runtime', `assertType: Response of unexpected type: ${res.type}. Should be ${resType}`);\n }\n};\nconst generateEntropy = (len) => {\n try {\n return (0, randombytes_1.default)(len);\n }\n catch (err) {\n throw constants_1.ERRORS.TypedError('Runtime', 'generateEntropy: Environment does not support crypto random');\n }\n};\nconst filterForLog = (type, msg) => {\n const blacklist = {};\n if (type in blacklist) {\n return { ...msg, ...blacklist[type] };\n }\n return msg;\n};\nclass DeviceCommands {\n constructor(device, transport, sessionId) {\n this.device = device;\n this.transport = transport;\n this.sessionId = sessionId;\n this.disposed = false;\n }\n dispose() {\n this.disposed = true;\n this._cancelableRequest = undefined;\n }\n isDisposed() {\n return this.disposed;\n }\n unlockPath(params) {\n return this.typedCall('UnlockPath', 'UnlockedPathRequest', params);\n }\n async getPublicKey(params, unlockPath) {\n if (unlockPath) {\n await this.unlockPath(unlockPath);\n }\n const response = await this.typedCall('GetPublicKey', 'PublicKey', {\n address_n: params.address_n,\n coin_name: params.coin_name || 'Bitcoin',\n script_type: params.script_type,\n show_display: params.show_display,\n ignore_xpub_magic: params.ignore_xpub_magic,\n ecdsa_curve_name: params.ecdsa_curve_name,\n });\n return response.message;\n }\n async getHDNode(params, options = {}) {\n const path = params.address_n;\n const { coinInfo, unlockPath } = options;\n const validation = typeof options.validation === 'boolean' ? options.validation : true;\n if (!this.device.atLeast(['1.7.2', '2.0.10']) || !coinInfo) {\n return this.getBitcoinHDNode(path, coinInfo);\n }\n let network = null;\n if (!params.script_type) {\n params.script_type = (0, pathUtils_1.getScriptType)(path);\n }\n if (params.script_type === 'SPENDP2SHWITNESS') {\n network = (0, coinInfo_1.getSegwitNetwork)(coinInfo);\n }\n else if (params.script_type === 'SPENDWITNESS') {\n network = (0, coinInfo_1.getBech32Network)(coinInfo);\n }\n if (!network) {\n network = coinInfo.network;\n }\n if (!params.coin_name) {\n params.coin_name = coinInfo.name;\n }\n let publicKey;\n if (params.show_display || !validation) {\n publicKey = await this.getPublicKey(params, unlockPath);\n }\n else {\n const suffix = 0;\n const childPath = path.concat([suffix]);\n const resKey = await this.getPublicKey(params, unlockPath);\n const childKey = await this.getPublicKey({ ...params, address_n: childPath }, unlockPath);\n publicKey = hdnodeUtils.xpubDerive(resKey, childKey, suffix, network, coinInfo.network);\n }\n const response = {\n path,\n serializedPath: (0, pathUtils_1.getSerializedPath)(path),\n childNum: publicKey.node.child_num,\n xpub: publicKey.xpub,\n chainCode: publicKey.node.chain_code,\n publicKey: publicKey.node.public_key,\n fingerprint: publicKey.node.fingerprint,\n depth: publicKey.node.depth,\n };\n if (network !== coinInfo.network) {\n response.xpubSegwit = response.xpub;\n response.xpub = hdnodeUtils.convertXpub(publicKey.xpub, network, coinInfo.network);\n }\n if ((0, pathUtils_1.isTaprootPath)(path)) {\n const fingerprint = Number(publicKey.root_fingerprint || 0)\n .toString(16)\n .padStart(8, '0');\n const descriptorPath = `${fingerprint}${response.serializedPath.substring(1)}`;\n response.xpubSegwit = `tr([${descriptorPath}]${response.xpub}/<0;1>/*)`;\n }\n return response;\n }\n async getBitcoinHDNode(path, coinInfo, validation = true) {\n let publicKey;\n if (!validation) {\n publicKey = await this.getPublicKey({ address_n: path });\n }\n else {\n const suffix = 0;\n const childPath = path.concat([suffix]);\n const resKey = await this.getPublicKey({ address_n: path });\n const childKey = await this.getPublicKey({ address_n: childPath });\n publicKey = hdnodeUtils.xpubDerive(resKey, childKey, suffix);\n }\n const response = {\n path,\n serializedPath: (0, pathUtils_1.getSerializedPath)(path),\n childNum: publicKey.node.child_num,\n xpub: coinInfo\n ? hdnodeUtils.convertBitcoinXpub(publicKey.xpub, coinInfo.network)\n : publicKey.xpub,\n chainCode: publicKey.node.chain_code,\n publicKey: publicKey.node.public_key,\n fingerprint: publicKey.node.fingerprint,\n depth: publicKey.node.depth,\n };\n if (coinInfo) {\n const bech32Network = (0, coinInfo_1.getBech32Network)(coinInfo);\n const segwitNetwork = (0, coinInfo_1.getSegwitNetwork)(coinInfo);\n if (bech32Network && (0, pathUtils_1.isBech32Path)(path)) {\n response.xpubSegwit = hdnodeUtils.convertBitcoinXpub(publicKey.xpub, bech32Network);\n }\n else if (segwitNetwork && (0, pathUtils_1.isSegwitPath)(path)) {\n response.xpubSegwit = hdnodeUtils.convertBitcoinXpub(publicKey.xpub, segwitNetwork);\n }\n }\n return response;\n }\n async getAddress({ address_n, show_display, multisig, script_type }, coinInfo) {\n if (!script_type) {\n script_type = (0, pathUtils_1.getScriptType)(address_n);\n if (script_type === 'SPENDMULTISIG' && !multisig) {\n script_type = 'SPENDADDRESS';\n }\n }\n if (multisig && multisig.pubkeys) {\n multisig.pubkeys.forEach(pk => {\n if (typeof pk.node === 'string') {\n pk.node = hdnodeUtils.xpubToHDNodeType(pk.node, coinInfo.network);\n }\n });\n }\n const response = await this.typedCall('GetAddress', 'Address', {\n address_n,\n coin_name: coinInfo.name,\n show_display,\n multisig,\n script_type: script_type || 'SPENDADDRESS',\n });\n return {\n path: address_n,\n serializedPath: (0, pathUtils_1.getSerializedPath)(address_n),\n address: response.message.address,\n };\n }\n async ethereumGetAddress({ address_n, show_display }) {\n const response = await this.typedCall('EthereumGetAddress', 'EthereumAddress', {\n address_n,\n show_display,\n });\n return {\n path: address_n,\n serializedPath: (0, pathUtils_1.getSerializedPath)(address_n),\n address: response.message.address,\n };\n }\n async ethereumGetPublicKey({ address_n, show_display, }) {\n if (!this.device.atLeast(['1.8.1', '2.1.0'])) {\n return this.getHDNode({ address_n });\n }\n const suffix = 0;\n const childPath = address_n.concat([suffix]);\n const resKey = await this.typedCall('EthereumGetPublicKey', 'EthereumPublicKey', {\n address_n,\n show_display,\n });\n const childKey = await this.typedCall('EthereumGetPublicKey', 'EthereumPublicKey', {\n address_n: childPath,\n show_display: false,\n });\n const publicKey = hdnodeUtils.xpubDerive(resKey.message, childKey.message, suffix);\n return {\n path: address_n,\n serializedPath: (0, pathUtils_1.getSerializedPath)(address_n),\n childNum: publicKey.node.child_num,\n xpub: publicKey.xpub,\n chainCode: publicKey.node.chain_code,\n publicKey: publicKey.node.public_key,\n fingerprint: publicKey.node.fingerprint,\n depth: publicKey.node.depth,\n };\n }\n async preauthorize(throwError) {\n try {\n await this.typedCall('DoPreauthorized', 'PreauthorizedRequest', {});\n return true;\n }\n catch (error) {\n if (throwError)\n throw error;\n return false;\n }\n }\n getDeviceState(networkType) {\n if (!this.device.atLeast('2.4.3')) {\n return this._getAddressForNetworkType(networkType);\n }\n return this._getAddressForNetworkType();\n }\n async call(type, msg = {}) {\n const logMessage = filterForLog(type, msg);\n logger.debug('Sending', type, logMessage);\n try {\n const promise = this.transport.call(this.sessionId, type, msg, false);\n this.callPromise = promise;\n const res = await promise;\n const logMessage = filterForLog(res.type, res.message);\n logger.debug('Received', res.type, logMessage);\n return res;\n }\n catch (error) {\n logger.warn('Received error', error);\n throw error;\n }\n }\n async typedCall(type, resType, msg) {\n if (this.disposed) {\n throw constants_1.ERRORS.TypedError('Runtime', 'typedCall: DeviceCommands already disposed');\n }\n const response = await this._commonCall(type, msg);\n try {\n assertType(response, resType);\n }\n catch (error) {\n await this.transport.read(this.sessionId, false);\n throw error;\n }\n return response;\n }\n async _commonCall(type, msg) {\n const resp = await this.call(type, msg);\n return this._filterCommonTypes(resp);\n }\n _filterCommonTypes(res) {\n if (res.type === 'Failure') {\n const { code } = res.message;\n let { message } = res.message;\n if (code === 'Failure_FirmwareError' && !message) {\n message = 'Firmware installation failed';\n }\n if (code === 'Failure_ActionCancelled' && !message) {\n message = 'Action cancelled by user';\n }\n return Promise.reject(new constants_1.ERRORS.TrezorError(code || 'Failure_UnknownCode', message || 'Failure_UnknownMessage'));\n }\n if (res.type === 'Features') {\n return Promise.resolve(res);\n }\n if (res.type === 'ButtonRequest') {\n if (res.message.code === '_Deprecated_ButtonRequest_PassphraseType') {\n res.message.code = 'ButtonRequest_PassphraseType';\n }\n if (res.message.code === 'ButtonRequest_PassphraseEntry') {\n this.device.emit(events_1.DEVICE.PASSPHRASE_ON_DEVICE, this.device);\n }\n else {\n this.device.emit(events_1.DEVICE.BUTTON, this.device, res.message);\n }\n return this._commonCall('ButtonAck', {});\n }\n if (res.type === 'EntropyRequest') {\n return this._commonCall('EntropyAck', {\n entropy: generateEntropy(32).toString('hex'),\n });\n }\n if (res.type === 'PinMatrixRequest') {\n return this._promptPin(res.message.type).then(pin => this._commonCall('PinMatrixAck', { pin }), () => this._commonCall('Cancel', {}));\n }\n if (res.type === 'PassphraseRequest') {\n const state = this.device.getInternalState();\n const legacy = this.device.useLegacyPassphrase();\n const legacyT1 = legacy && this.device.isT1();\n if (legacyT1 && typeof state === 'string') {\n return this._commonCall('PassphraseAck', { passphrase: state });\n }\n if (legacy && res.message._on_device) {\n this.device.emit(events_1.DEVICE.PASSPHRASE_ON_DEVICE, this.device);\n return this._commonCall('PassphraseAck', { _state: state });\n }\n return this._promptPassphrase().then(response => {\n const { passphrase, passphraseOnDevice, cache } = response;\n if (legacyT1) {\n this.device.setInternalState(cache ? passphrase : undefined);\n return this._commonCall('PassphraseAck', { passphrase });\n }\n if (legacy) {\n return this._commonCall('PassphraseAck', { passphrase, _state: state });\n }\n return !passphraseOnDevice\n ? this._commonCall('PassphraseAck', { passphrase })\n : this._commonCall('PassphraseAck', { on_device: true });\n }, err => this._commonCall('Cancel', {}).catch((e) => {\n throw err || e;\n }));\n }\n if (res.type === 'Deprecated_PassphraseStateRequest') {\n const { state } = res.message;\n this.device.setInternalState(state);\n return this._commonCall('Deprecated_PassphraseStateAck', {});\n }\n if (res.type === 'WordRequest') {\n return this._promptWord(res.message.type).then(word => this._commonCall('WordAck', { word }), () => this._commonCall('Cancel', {}));\n }\n return Promise.resolve(res);\n }\n async _getAddressForNetworkType(networkType) {\n switch (networkType) {\n case constants_1.NETWORK.TYPES.cardano: {\n const { message } = await this.typedCall('CardanoGetAddress', 'CardanoAddress', {\n address_parameters: {\n address_type: 8,\n address_n: [(0, pathUtils_1.toHardened)(44), (0, pathUtils_1.toHardened)(1815), (0, pathUtils_1.toHardened)(0), 0, 0],\n address_n_staking: [],\n },\n protocol_magic: 42,\n network_id: 0,\n derivation_type: 2,\n });\n return message.address;\n }\n default: {\n const { message } = await this.typedCall('GetAddress', 'Address', {\n address_n: [(0, pathUtils_1.toHardened)(44), (0, pathUtils_1.toHardened)(1), (0, pathUtils_1.toHardened)(0), 0, 0],\n coin_name: 'Testnet',\n script_type: 'SPENDADDRESS',\n });\n return message.address;\n }\n }\n }\n _promptPin(type) {\n return new Promise((resolve, reject) => {\n if (this.device.listenerCount(events_1.DEVICE.PIN) > 0) {\n this._cancelableRequest = reject;\n this.device.emit(events_1.DEVICE.PIN, this.device, type, (err, pin) => {\n this._cancelableRequest = undefined;\n if (err || pin == null) {\n reject(err);\n }\n else {\n resolve(pin);\n }\n });\n }\n else {\n console.warn('[DeviceCommands] [call] PIN callback not configured, cancelling request');\n reject(constants_1.ERRORS.TypedError('Runtime', '_promptPin: PIN callback not configured'));\n }\n });\n }\n _promptPassphrase() {\n return new Promise((resolve, reject) => {\n if (this.device.listenerCount(events_1.DEVICE.PASSPHRASE) > 0) {\n this._cancelableRequest = reject;\n this.device.emit(events_1.DEVICE.PASSPHRASE, this.device, (response, error) => {\n this._cancelableRequest = undefined;\n if (error) {\n reject(error);\n }\n else {\n resolve(response);\n }\n });\n }\n else {\n console.warn('[DeviceCommands] [call] Passphrase callback not configured, cancelling request');\n reject(constants_1.ERRORS.TypedError('Runtime', '_promptPassphrase: Passphrase callback not configured'));\n }\n });\n }\n _promptWord(type) {\n return new Promise((resolve, reject) => {\n this._cancelableRequest = reject;\n this.device.emit(events_1.DEVICE.WORD, this.device, type, (err, word) => {\n this._cancelableRequest = undefined;\n if (err || word == null) {\n reject(err);\n }\n else {\n resolve(word.toLocaleLowerCase());\n }\n });\n });\n }\n async getAccountDescriptor(coinInfo, indexOrPath, derivationType) {\n const address_n = Array.isArray(indexOrPath)\n ? indexOrPath\n : (0, accountUtils_1.getAccountAddressN)(coinInfo, indexOrPath);\n if (coinInfo.type === 'bitcoin') {\n const resp = await this.getHDNode({ address_n }, { coinInfo, validation: false });\n return {\n descriptor: resp.xpubSegwit || resp.xpub,\n legacyXpub: resp.xpub,\n address_n,\n };\n }\n if (coinInfo.type === 'ethereum') {\n const resp = await this.ethereumGetAddress({ address_n });\n return {\n descriptor: resp.address,\n address_n,\n };\n }\n if (coinInfo.shortcut === 'ADA' || coinInfo.shortcut === 'tADA') {\n if (typeof derivationType === 'undefined')\n throw new Error('Derivation type is not specified');\n const { message } = await this.typedCall('CardanoGetPublicKey', 'CardanoPublicKey', {\n address_n,\n derivation_type: derivationType,\n });\n return {\n descriptor: message.xpub,\n address_n,\n };\n }\n if (coinInfo.shortcut === 'XRP' || coinInfo.shortcut === 'tXRP') {\n const { message } = await this.typedCall('RippleGetAddress', 'RippleAddress', {\n address_n,\n });\n return {\n descriptor: message.address,\n address_n,\n };\n }\n throw constants_1.ERRORS.TypedError('Runtime', 'DeviceCommands.getAccountDescriptor: unsupported coinInfo.type');\n }\n async cancel() {\n if (this._cancelableRequest) {\n this._cancelableRequest();\n this._cancelableRequest = undefined;\n return;\n }\n if (this.disposed) {\n return;\n }\n const { name, version } = this.transport;\n if (name === 'BridgeTransport' && (0, versionUtils_1.versionCompare)(version, '2.0.28') < 1) {\n await this.device.legacyForceRelease();\n }\n else {\n await this.transport.post(this.sessionId, 'Cancel', {}, false).catch(() => { });\n await this.transport.read(this.sessionId, false).catch(() => { });\n }\n }\n}\nexports.DeviceCommands = DeviceCommands;\n//# sourceMappingURL=DeviceCommands.js.map", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.parseRevision = exports.getUnavailableCapabilities = exports.parseCapabilities = void 0;\nconst versionUtils_1 = require(\"./versionUtils\");\nconst config_1 = require(\"../data/config\");\nconst DEFAULT_CAPABILITIES_T1 = [\n 'Capability_Bitcoin',\n 'Capability_Bitcoin_like',\n 'Capability_Crypto',\n 'Capability_Ethereum',\n 'Capability_NEM',\n 'Capability_Stellar',\n 'Capability_U2F',\n];\nconst DEFAULT_CAPABILITIES_TT = [\n 'Capability_Bitcoin',\n 'Capability_Bitcoin_like',\n 'Capability_Binance',\n 'Capability_Cardano',\n 'Capability_Crypto',\n 'Capability_EOS',\n 'Capability_Ethereum',\n 'Capability_Monero',\n 'Capability_NEM',\n 'Capability_Ripple',\n 'Capability_Stellar',\n 'Capability_Tezos',\n 'Capability_U2F',\n];\nconst parseCapabilities = (features) => {\n if (!features || features.firmware_present === false)\n return [];\n if (!features.capabilities || !features.capabilities.length) {\n return features.major_version === 1 ? DEFAULT_CAPABILITIES_T1 : DEFAULT_CAPABILITIES_TT;\n }\n return features.capabilities;\n};\nexports.parseCapabilities = parseCapabilities;\nconst getUnavailableCapabilities = (features, coins) => {\n const { capabilities } = features;\n const list = {};\n if (!capabilities)\n return list;\n const fw = [features.major_version, features.minor_version, features.patch_version];\n const key = `trezor${features.major_version}`;\n const supported = coins.filter(info => {\n if (!info.support || typeof info.support[key] !== 'string') {\n list[info.shortcut.toLowerCase()] = 'no-support';\n return false;\n }\n return true;\n });\n const unavailable = supported.filter(info => {\n if (info.type === 'bitcoin') {\n if (info.name === 'Bitcoin' || info.name === 'Testnet' || info.name === 'Regtest') {\n return !capabilities.includes('Capability_Bitcoin');\n }\n return !capabilities.includes('Capability_Bitcoin_like');\n }\n if (info.type === 'ethereum') {\n return !capabilities.includes('Capability_Ethereum');\n }\n if (info.type === 'nem') {\n return !capabilities.includes('Capability_NEM');\n }\n if (info.shortcut === 'BNB')\n return !capabilities.includes('Capability_Binance');\n if (info.shortcut === 'ADA' || info.shortcut === 'tADA')\n return !capabilities.includes('Capability_Cardano');\n if (info.shortcut === 'XRP' || info.shortcut === 'tXRP')\n return !capabilities.includes('Capability_Ripple');\n return !capabilities.includes(`Capability_${info.name}`);\n });\n unavailable.forEach(info => {\n list[info.shortcut.toLowerCase()] = 'no-capability';\n });\n supported\n .filter(info => !unavailable.includes(info))\n .forEach(info => {\n if ((0, versionUtils_1.versionCompare)(info.support[key], fw) > 0) {\n list[info.shortcut.toLowerCase()] = 'update-required';\n unavailable.push(info);\n }\n });\n config_1.config.supportedFirmware.forEach(s => {\n if (!s.capabilities)\n return;\n const min = s.min ? s.min[fw[0] - 1] : null;\n const max = s.max ? s.max[fw[0] - 1] : null;\n if (min && (min === '0' || (0, versionUtils_1.versionCompare)(min, fw) > 0)) {\n const value = min === '0' ? 'no-support' : 'update-required';\n s.capabilities.forEach(m => {\n list[m] = value;\n });\n }\n if (max && (0, versionUtils_1.versionCompare)(max, fw) < 0) {\n s.capabilities.forEach(m => {\n list[m] = 'trezor-connect-outdated';\n });\n }\n });\n return list;\n};\nexports.getUnavailableCapabilities = getUnavailableCapabilities;\nconst parseRevision = (features) => {\n const { revision } = features;\n if (!revision)\n return null;\n if (/^(?=.*[a-f])([a-f0-9]*)$/gi.test(revision))\n return revision;\n const revisionUtf8 = Buffer.from(revision, 'hex').toString('utf-8');\n return /^([a-f0-9])*$/gi.test(revisionUtf8) ? revisionUtf8 : revision;\n};\nexports.parseRevision = parseRevision;\n//# sourceMappingURL=deviceFeaturesUtils.js.map", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.rejectTimeoutPromise = exports.resolveTimeoutPromise = exports.createAsync = exports.create = void 0;\nfunction create(arg, data) {\n let localResolve = (_t) => { };\n let localReject = (_e) => { };\n let id;\n const promise = new Promise(async (resolve, reject) => {\n localResolve = resolve;\n localReject = reject;\n if (typeof arg === 'function') {\n try {\n await arg();\n }\n catch (error) {\n reject(error);\n }\n }\n if (typeof arg === 'string')\n id = arg;\n });\n return {\n id,\n data,\n resolve: localResolve,\n reject: localReject,\n promise,\n };\n}\nexports.create = create;\nfunction createAsync(innerFn) {\n let localResolve = (_t) => { };\n let localReject = _e => { };\n const promise = new Promise((resolve, reject) => {\n localResolve = resolve;\n localReject = reject;\n });\n const inner = async () => {\n await innerFn();\n };\n return {\n resolve: localResolve,\n reject: localReject,\n promise,\n run: () => {\n inner();\n return promise;\n },\n };\n}\nexports.createAsync = createAsync;\nfunction resolveTimeoutPromise(delay, result) {\n return new Promise(resolve => {\n setTimeout(() => {\n resolve(result);\n }, delay);\n });\n}\nexports.resolveTimeoutPromise = resolveTimeoutPromise;\nconst rejectTimeoutPromise = (delay, error) => new Promise((_resolve, reject) => {\n setTimeout(() => {\n reject(error);\n }, delay);\n});\nexports.rejectTimeoutPromise = rejectTimeoutPromise;\n//# sourceMappingURL=deferred.js.map", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Device = void 0;\nconst tslib_1 = require(\"tslib\");\nconst events_1 = tslib_1.__importDefault(require(\"events\"));\nconst DeviceCommands_1 = require(\"./DeviceCommands\");\nconst constants_1 = require(\"../constants\");\nconst events_2 = require(\"../events\");\nconst coinInfo_1 = require(\"../data/coinInfo\");\nconst firmwareInfo_1 = require(\"../data/firmwareInfo\");\nconst deviceFeaturesUtils_1 = require(\"../utils/deviceFeaturesUtils\");\nconst versionUtils_1 = require(\"../utils/versionUtils\");\nconst deferred_1 = require(\"../utils/deferred\");\nconst debug_1 = require(\"../utils/debug\");\nconst _log = (0, debug_1.initLog)('Device');\nconst parseRunOptions = (options) => {\n if (!options)\n options = {};\n return options;\n};\nclass Device extends events_1.default {\n constructor(transport, descriptor) {\n super();\n this.featuresNeedsReload = false;\n this.deferredActions = {};\n this.loaded = false;\n this.inconsistent = false;\n this.keepSession = false;\n this.instance = 0;\n this.internalState = [];\n this.externalState = [];\n this.unavailableCapabilities = {};\n this.networkTypeState = [];\n this.firmwareType = 'regular';\n this.transport = transport;\n this.originalDescriptor = descriptor;\n this.firstRunPromise = (0, deferred_1.create)();\n }\n static fromDescriptor(transport, originalDescriptor) {\n const descriptor = { ...originalDescriptor, session: null };\n try {\n const device = new Device(transport, descriptor);\n return device;\n }\n catch (error) {\n _log.error('Device.fromDescriptor', error);\n throw error;\n }\n }\n static createUnacquired(transport, descriptor, unreadableError) {\n const device = new Device(transport, descriptor);\n device.unreadableError = unreadableError;\n return device;\n }\n async acquire() {\n this.deferredActions[events_2.DEVICE.ACQUIRE] = (0, deferred_1.create)();\n this.deferredActions[events_2.DEVICE.ACQUIRED] = (0, deferred_1.create)();\n try {\n const sessionID = await this.transport.acquire({\n path: this.originalDescriptor.path,\n previous: this.originalDescriptor.session,\n }, false);\n _log.debug('Expected session id:', sessionID);\n this.activitySessionID = sessionID;\n this.deferredActions[events_2.DEVICE.ACQUIRED].resolve();\n delete this.deferredActions[events_2.DEVICE.ACQUIRED];\n if (this.commands) {\n this.commands.dispose();\n }\n this.commands = new DeviceCommands_1.DeviceCommands(this, this.transport, sessionID);\n this.deferredActions[events_2.DEVICE.RELEASE] = (0, deferred_1.create)();\n }\n catch (error) {\n this.deferredActions[events_2.DEVICE.ACQUIRED].resolve();\n delete this.deferredActions[events_2.DEVICE.ACQUIRED];\n if (this.runPromise) {\n this.runPromise.reject(error);\n }\n else {\n throw error;\n }\n this.runPromise = null;\n }\n }\n async release() {\n if (this.isUsedHere() && !this.keepSession && this.activitySessionID) {\n if (this.commands) {\n this.commands.dispose();\n if (this.commands.callPromise) {\n try {\n await this.commands.callPromise;\n }\n catch (error) {\n this.commands.callPromise = undefined;\n }\n }\n }\n try {\n await this.transport.release(this.activitySessionID, false, false);\n if (this.deferredActions[events_2.DEVICE.RELEASE])\n await this.deferredActions[events_2.DEVICE.RELEASE].promise;\n }\n catch (err) {\n }\n }\n }\n async cleanup() {\n this.removeAllListeners();\n this.runPromise = null;\n await this.release();\n }\n run(fn, options) {\n if (this.runPromise) {\n _log.warn('Previous call is still running');\n throw constants_1.ERRORS.TypedError('Device_CallInProgress');\n }\n options = parseRunOptions(options);\n this.runPromise = (0, deferred_1.create)(this._runInner.bind(this, fn, options));\n return this.runPromise.promise;\n }\n async override(error) {\n if (this.deferredActions[events_2.DEVICE.ACQUIRE]) {\n await this.deferredActions[events_2.DEVICE.ACQUIRE].promise;\n }\n if (this.runPromise) {\n await this.interruptionFromUser(error);\n }\n if (!this.keepSession && this.deferredActions[events_2.DEVICE.RELEASE]) {\n await this.deferredActions[events_2.DEVICE.RELEASE].promise;\n }\n }\n async interruptionFromUser(error) {\n _log.debug('interruptionFromUser');\n if (this.commands) {\n await this.commands.cancel();\n this.commands.dispose();\n }\n if (this.runPromise) {\n this.runPromise.reject(error);\n this.runPromise = null;\n }\n }\n interruptionFromOutside() {\n _log.debug('interruptionFromOutside');\n if (this.commands) {\n this.commands.dispose();\n }\n if (this.runPromise) {\n this.runPromise.reject(constants_1.ERRORS.TypedError('Device_UsedElsewhere'));\n this.runPromise = null;\n }\n }\n async _runInner(fn, options) {\n var _a;\n if (!this.isUsedHere() || ((_a = this.commands) === null || _a === void 0 ? void 0 : _a.disposed) || !this.getExternalState()) {\n await this.acquire();\n try {\n if (fn) {\n await this.initialize(!!options.useEmptyPassphrase, !!options.useCardanoDerivation);\n }\n else {\n await Promise.race([\n this.getFeatures(),\n new Promise((_resolve, reject) => setTimeout(() => reject(new Error('GetFeatures timeout')), 3000)),\n ]);\n }\n }\n catch (error) {\n if (!this.inconsistent && error.message === 'GetFeatures timeout') {\n this.inconsistent = true;\n return this._runInner(() => Promise.resolve({}), options);\n }\n this.inconsistent = true;\n await this.deferredActions[events_2.DEVICE.ACQUIRE].promise;\n this.runPromise = null;\n return Promise.reject(constants_1.ERRORS.TypedError('Device_InitializeFailed', `Initialize failed: ${error.message}, code: ${error.code}`));\n }\n }\n if (options.keepSession) {\n this.keepSession = true;\n }\n await this.deferredActions[events_2.DEVICE.ACQUIRE].promise;\n if (fn) {\n await fn();\n }\n if (this.loaded && this.features && !options.skipFinalReload) {\n await this.getFeatures();\n }\n if ((!this.keepSession && typeof options.keepSession !== 'boolean') ||\n options.keepSession === false) {\n this.keepSession = false;\n await this.release();\n }\n if (this.runPromise) {\n this.runPromise.resolve();\n }\n this.runPromise = null;\n if (!this.loaded) {\n this.loaded = true;\n this.firstRunPromise.resolve(true);\n }\n }\n getCommands() {\n if (!this.commands) {\n throw constants_1.ERRORS.TypedError('Runtime', `Device: commands not defined`);\n }\n return this.commands;\n }\n setInstance(instance = 0) {\n if (this.instance !== instance) {\n if (this.keepSession) {\n this.activitySessionID = null;\n this.keepSession = false;\n }\n if (this.isT1() && this.useLegacyPassphrase()) {\n this.setInternalState(undefined);\n }\n }\n this.instance = instance;\n }\n getInstance() {\n return this.instance;\n }\n setInternalState(state) {\n if (typeof state !== 'string') {\n delete this.internalState[this.instance];\n }\n else {\n this.internalState[this.instance] = state;\n }\n }\n getInternalState() {\n return this.internalState[this.instance];\n }\n setExternalState(state) {\n if (typeof state !== 'string') {\n delete this.internalState[this.instance];\n delete this.externalState[this.instance];\n }\n else {\n this.externalState[this.instance] = state;\n }\n }\n getExternalState() {\n return this.externalState[this.instance];\n }\n async validateState(networkType, preauthorized = false) {\n if (!this.features)\n return;\n if (!this.features.unlocked && preauthorized) {\n if (await this.getCommands().preauthorize(false)) {\n return;\n }\n }\n const altMode = this._altModeChange(networkType);\n const expectedState = altMode ? undefined : this.getExternalState();\n const state = await this.getCommands().getDeviceState(networkType);\n const uniqueState = `${state}@${this.features.device_id || 'device_id'}:${this.instance}`;\n if (!this.useLegacyPassphrase() && this.features.session_id) {\n this.setInternalState(this.features.session_id);\n }\n if (expectedState && expectedState !== uniqueState) {\n return uniqueState;\n }\n if (!expectedState) {\n this.setExternalState(uniqueState);\n }\n }\n useLegacyPassphrase() {\n return !this.atLeast(['1.9.0', '2.3.0']);\n }\n async initialize(useEmptyPassphrase, useCardanoDerivation) {\n let payload;\n if (this.features) {\n const legacy = this.useLegacyPassphrase();\n const internalState = this.getInternalState();\n payload = {};\n payload.derive_cardano = useCardanoDerivation;\n if (!legacy && internalState) {\n payload.session_id = internalState;\n }\n if (legacy && !this.isT1()) {\n payload.session_id = internalState;\n if (useEmptyPassphrase) {\n payload._skip_passphrase = useEmptyPassphrase;\n payload.session_id = undefined;\n }\n }\n }\n const { message } = await this.getCommands().typedCall('Initialize', 'Features', payload);\n this._updateFeatures(message);\n }\n async getFeatures() {\n const { message } = await this.getCommands().typedCall('GetFeatures', 'Features', {});\n this._updateFeatures(message);\n }\n _updateFeatures(feat) {\n var _a;\n const capabilities = (0, deviceFeaturesUtils_1.parseCapabilities)(feat);\n feat.capabilities = capabilities;\n const version = [feat.major_version, feat.minor_version, feat.patch_version];\n const capabilitiesDidChange = this.features &&\n this.features.capabilities &&\n this.features.capabilities.join('') !== capabilities.join('');\n if ((0, versionUtils_1.versionCompare)(version, this.getVersion()) !== 0 || capabilitiesDidChange) {\n this.unavailableCapabilities = (0, deviceFeaturesUtils_1.getUnavailableCapabilities)(feat, (0, coinInfo_1.getAllNetworks)());\n this.firmwareStatus = (0, firmwareInfo_1.getFirmwareStatus)(feat);\n this.firmwareRelease = (0, firmwareInfo_1.getRelease)(feat);\n }\n if (this.features && this.features.session_id && !feat.session_id) {\n feat.session_id = this.features.session_id;\n }\n feat.unlocked = (_a = feat.unlocked) !== null && _a !== void 0 ? _a : true;\n const revision = (0, deviceFeaturesUtils_1.parseRevision)(feat);\n feat.revision = revision;\n if (!feat.model && feat.major_version === 1) {\n feat.model = '1';\n }\n this.features = feat;\n this.featuresNeedsReload = false;\n this.firmwareType =\n feat.capabilities &&\n feat.capabilities.length > 0 &&\n !feat.capabilities.includes('Capability_Bitcoin_like')\n ? 'bitcoin-only'\n : 'regular';\n }\n isUnacquired() {\n return this.features === undefined;\n }\n async updateDescriptor(upcomingDescriptor) {\n const originalSession = this.originalDescriptor.session;\n const upcomingSession = upcomingDescriptor.session;\n _log.debug('updateDescriptor', 'currentSession', originalSession, 'upcoming', upcomingSession, 'lastUsedID', this.activitySessionID);\n if (!originalSession && !upcomingSession && !this.activitySessionID) {\n return;\n }\n if (this.deferredActions[events_2.DEVICE.ACQUIRED]) {\n await this.deferredActions[events_2.DEVICE.ACQUIRED].promise;\n }\n if (!upcomingSession) {\n if (this.listeners(events_2.DEVICE.ACQUIRED).length > 0) {\n this.emit(events_2.DEVICE.ACQUIRED);\n }\n }\n const methodStillRunning = this.commands && !this.commands.disposed;\n if (!upcomingSession && !methodStillRunning) {\n if (originalSession === this.activitySessionID) {\n _log.debug('Session released by this app');\n if (this.deferredActions[events_2.DEVICE.RELEASE]) {\n this.deferredActions[events_2.DEVICE.RELEASE].resolve();\n delete this.deferredActions[events_2.DEVICE.RELEASE];\n }\n this.activitySessionID = null;\n }\n else {\n _log.debug('Session released by other app');\n this.featuresNeedsReload = true;\n }\n this.keepSession = false;\n }\n else if (upcomingSession === this.activitySessionID) {\n _log.debug('Session acquired by this app');\n if (this.deferredActions[events_2.DEVICE.ACQUIRE]) {\n this.deferredActions[events_2.DEVICE.ACQUIRE].resolve();\n }\n }\n else {\n _log.debug('Session acquired by other app');\n this.interruptionFromOutside();\n }\n this.originalDescriptor = upcomingDescriptor;\n }\n disconnect() {\n _log.debug('Disconnect cleanup');\n if (this.deferredActions[events_2.DEVICE.RELEASE]) {\n this.deferredActions[events_2.DEVICE.RELEASE].resolve();\n delete this.deferredActions[events_2.DEVICE.RELEASE];\n }\n this.interruptionFromUser(constants_1.ERRORS.TypedError('Device_Disconnected'));\n this.runPromise = null;\n }\n isBootloader() {\n return this.features && !!this.features.bootloader_mode;\n }\n isInitialized() {\n return this.features && !!this.features.initialized;\n }\n isSeedless() {\n return this.features && !!this.features.no_backup;\n }\n isInconsistent() {\n return this.inconsistent;\n }\n getVersion() {\n if (!this.features)\n return [];\n return [\n this.features.major_version,\n this.features.minor_version,\n this.features.patch_version,\n ];\n }\n atLeast(versions) {\n if (!this.features)\n return false;\n const modelVersion = typeof versions === 'string' ? versions : versions[this.features.major_version - 1];\n return (0, versionUtils_1.versionCompare)(this.getVersion(), modelVersion) >= 0;\n }\n isUsed() {\n return typeof this.originalDescriptor.session === 'string';\n }\n isUsedHere() {\n return this.isUsed() && this.originalDescriptor.session === this.activitySessionID;\n }\n isUsedElsewhere() {\n return this.isUsed() && !this.isUsedHere();\n }\n isRunning() {\n return !!this.runPromise;\n }\n isLoaded() {\n return this.loaded;\n }\n waitForFirstRun() {\n return this.firstRunPromise.promise;\n }\n getDevicePath() {\n return this.originalDescriptor.path;\n }\n isT1() {\n return this.features ? this.features.major_version === 1 : false;\n }\n hasUnexpectedMode(allow, require) {\n if (this.features) {\n if (this.isBootloader() && !allow.includes(events_2.UI.BOOTLOADER)) {\n return events_2.UI.BOOTLOADER;\n }\n if (!this.isInitialized() && !allow.includes(events_2.UI.INITIALIZE)) {\n return events_2.UI.INITIALIZE;\n }\n if (this.isSeedless() && !allow.includes(events_2.UI.SEEDLESS)) {\n return events_2.UI.SEEDLESS;\n }\n if (!this.isBootloader() && require.includes(events_2.UI.BOOTLOADER)) {\n return events_2.UI.NOT_IN_BOOTLOADER;\n }\n }\n return null;\n }\n dispose() {\n this.removeAllListeners();\n if (this.isUsedHere() && this.activitySessionID) {\n try {\n if (this.commands) {\n this.commands.cancel();\n }\n return this.transport.release(this.activitySessionID, true);\n }\n catch (err) {\n }\n }\n }\n getMode() {\n if (this.features.bootloader_mode)\n return 'bootloader';\n if (!this.features.initialized)\n return 'initialize';\n if (this.features.no_backup)\n return 'seedless';\n return 'normal';\n }\n toMessageObject() {\n if (this.unreadableError) {\n return {\n type: 'unreadable',\n path: this.originalDescriptor.path,\n error: this.unreadableError,\n label: 'Unreadable device',\n };\n }\n if (this.isUnacquired()) {\n return {\n type: 'unacquired',\n path: this.originalDescriptor.path,\n label: 'Unacquired device',\n };\n }\n const defaultLabel = 'My Trezor';\n const label = this.features.label === '' || !this.features.label ? defaultLabel : this.features.label;\n let status = this.isUsedElsewhere() ? 'occupied' : 'available';\n if (this.featuresNeedsReload)\n status = 'used';\n return {\n type: 'acquired',\n id: this.features.device_id || null,\n path: this.originalDescriptor.path,\n label,\n state: this.getExternalState(),\n status,\n mode: this.getMode(),\n firmware: this.firmwareStatus,\n firmwareRelease: this.firmwareRelease,\n firmwareType: this.firmwareType,\n features: this.features,\n unavailableCapabilities: this.unavailableCapabilities,\n };\n }\n _getNetworkTypeState() {\n return this.networkTypeState[this.instance];\n }\n _setNetworkTypeState(networkType) {\n if (typeof networkType !== 'string') {\n delete this.networkTypeState[this.instance];\n }\n else {\n this.networkTypeState[this.instance] = networkType;\n }\n }\n _altModeChange(networkType) {\n const prevAltMode = this._isAltModeNetworkType(this._getNetworkTypeState());\n const nextAltMode = this._isAltModeNetworkType(networkType);\n this._setNetworkTypeState(networkType);\n return prevAltMode !== nextAltMode;\n }\n _isAltModeNetworkType(networkType) {\n return networkType ? ['cardano'].includes(networkType) : false;\n }\n async legacyForceRelease() {\n if (this.isUsedHere()) {\n await this.acquire();\n await this.getFeatures();\n await this.release();\n }\n }\n}\nexports.Device = Device;\n//# sourceMappingURL=Device.js.map", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CustomError = void 0;\nconst PREFIX = 'blockchain_link/';\nconst ERROR = {\n worker_not_found: 'Worker not found',\n worker_invalid: 'Invalid worker object',\n worker_timeout: 'Worker timeout',\n worker_unknown_request: 'Unknown message type:',\n worker_runtime: undefined,\n invalid_param: 'Invalid parameter:',\n websocket_not_initialized: 'WebSocket not initialized',\n websocket_no_url: 'Cannot connect because no server was specified',\n websocket_timeout: 'Websocket timeout',\n websocket_error_message: undefined,\n websocket_runtime_error: undefined,\n};\nclass CustomError extends Error {\n constructor(code, message = '') {\n super(message);\n this.message = '';\n this.message = message;\n if (typeof code === 'string') {\n const c = code.indexOf(PREFIX) === 0 ? code.substring(PREFIX.length, code.length) : code;\n this.code = `${PREFIX}${c}`;\n const msg = ERROR[c];\n if (typeof msg === 'string') {\n if (this.message === '') {\n this.message = msg;\n }\n else if (message.indexOf('+') === 0) {\n this.message = `${msg} ${message.substr(1, message.length)}`;\n }\n }\n }\n if (typeof this.message !== 'string' || this.message === '') {\n this.message = 'Message not set';\n }\n }\n}\nexports.CustomError = CustomError;\n//# sourceMappingURL=errors.js.map", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TERMINATE = exports.PUSH_TRANSACTION = exports.UNSUBSCRIBE = exports.SUBSCRIBE = exports.ESTIMATE_FEE = exports.GET_TRANSACTION = exports.GET_ACCOUNT_UTXO = exports.GET_ACCOUNT_INFO = exports.GET_BLOCK = exports.GET_BLOCK_HASH = exports.GET_FIAT_RATES_TICKERS_LIST = exports.GET_ACCOUNT_BALANCE_HISTORY = exports.GET_FIAT_RATES_FOR_TIMESTAMPS = exports.GET_CURRENT_FIAT_RATES = exports.GET_INFO = exports.DISCONNECT = exports.CONNECT = exports.INIT = exports.HANDSHAKE = void 0;\nexports.HANDSHAKE = 'm_handshake';\nexports.INIT = 'm_init';\nexports.CONNECT = 'm_connect';\nexports.DISCONNECT = 'm_disconnect';\nexports.GET_INFO = 'm_get_info';\nexports.GET_CURRENT_FIAT_RATES = 'm_get_current_fiat_rates';\nexports.GET_FIAT_RATES_FOR_TIMESTAMPS = 'm_get_fiat_rates_for_timestamps';\nexports.GET_ACCOUNT_BALANCE_HISTORY = 'm_get_account_balance_history';\nexports.GET_FIAT_RATES_TICKERS_LIST = 'm_get_fiat_rates_tickers_list';\nexports.GET_BLOCK_HASH = 'm_get_block_hash';\nexports.GET_BLOCK = 'm_get_block';\nexports.GET_ACCOUNT_INFO = 'm_get_account_info';\nexports.GET_ACCOUNT_UTXO = 'm_get_account_utxo';\nexports.GET_TRANSACTION = 'm_get_transaction';\nexports.ESTIMATE_FEE = 'm_estimate_fee';\nexports.SUBSCRIBE = 'm_subscribe';\nexports.UNSUBSCRIBE = 'm_unsubscribe';\nexports.PUSH_TRANSACTION = 'm_push_tx';\nexports.TERMINATE = 'terminate';\n//# sourceMappingURL=messages.js.map", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NOTIFICATION = exports.DISCONNECTED = exports.CONNECTED = exports.PUSH_TRANSACTION = exports.UNSUBSCRIBE = exports.SUBSCRIBE = exports.ESTIMATE_FEE = exports.GET_TRANSACTION = exports.GET_ACCOUNT_BALANCE_HISTORY = exports.GET_ACCOUNT_UTXO = exports.GET_ACCOUNT_INFO = exports.GET_FIAT_RATES_TICKERS_LIST = exports.GET_FIAT_RATES_FOR_TIMESTAMPS = exports.GET_CURRENT_FIAT_RATES = exports.GET_BLOCK = exports.GET_BLOCK_HASH = exports.GET_INFO = exports.CONNECT = exports.ERROR = void 0;\nexports.ERROR = 'r_error';\nexports.CONNECT = 'r_connect';\nexports.GET_INFO = 'r_info';\nexports.GET_BLOCK_HASH = 'r_get_block_hash';\nexports.GET_BLOCK = 'r_get_block';\nexports.GET_CURRENT_FIAT_RATES = 'r_get_current_fiat_rates';\nexports.GET_FIAT_RATES_FOR_TIMESTAMPS = 'r_get_fiat_rates_for_timestamps';\nexports.GET_FIAT_RATES_TICKERS_LIST = 'r_GET_FIAT_RATES_TICKERS_LIST';\nexports.GET_ACCOUNT_INFO = 'r_account_info';\nexports.GET_ACCOUNT_UTXO = 'r_get_account_utxo';\nexports.GET_ACCOUNT_BALANCE_HISTORY = 'r_get_account_balance_history';\nexports.GET_TRANSACTION = 'r_get_transaction';\nexports.ESTIMATE_FEE = 'r_estimate_fee';\nexports.SUBSCRIBE = 'r_subscribe';\nexports.UNSUBSCRIBE = 'r_unsubscribe';\nexports.PUSH_TRANSACTION = 'r_push_tx';\nexports.CONNECTED = 'r_connected';\nexports.DISCONNECTED = 'r_disconnected';\nexports.NOTIFICATION = 'r_notification';\n//# sourceMappingURL=responses.js.map", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NETWORKS = exports.RESPONSES = exports.MESSAGES = void 0;\nconst MESSAGES = require(\"./messages\");\nexports.MESSAGES = MESSAGES;\nconst RESPONSES = require(\"./responses\");\nexports.RESPONSES = RESPONSES;\nexports.NETWORKS = {\n RIPPLE: 'ripple',\n BLOCKBOOK: 'blockbook',\n BLOCKFROST: 'blockfrost',\n};\n//# sourceMappingURL=index.js.map", "/**\n * Helpers.\n */\n\nvar s = 1000;\nvar m = s * 60;\nvar h = m * 60;\nvar d = h * 24;\nvar w = d * 7;\nvar y = d * 365.25;\n\n/**\n * Parse or format the given `val`.\n *\n * Options:\n *\n * - `long` verbose formatting [false]\n *\n * @param {String|Number} val\n * @param {Object} [options]\n * @throws {Error} throw an error if val is not a non-empty string or a number\n * @return {String|Number}\n * @api public\n */\n\nmodule.exports = function(val, options) {\n options = options || {};\n var type = typeof val;\n if (type === 'string' && val.length > 0) {\n return parse(val);\n } else if (type === 'number' && isFinite(val)) {\n return options.long ? fmtLong(val) : fmtShort(val);\n }\n throw new Error(\n 'val is not a non-empty string or a valid number. val=' +\n JSON.stringify(val)\n );\n};\n\n/**\n * Parse the given `str` and return milliseconds.\n *\n * @param {String} str\n * @return {Number}\n * @api private\n */\n\nfunction parse(str) {\n str = String(str);\n if (str.length > 100) {\n return;\n }\n var match = /^(-?(?:\\d+)?\\.?\\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(\n str\n );\n if (!match) {\n return;\n }\n var n = parseFloat(match[1]);\n var type = (match[2] || 'ms').toLowerCase();\n switch (type) {\n case 'years':\n case 'year':\n case 'yrs':\n case 'yr':\n case 'y':\n return n * y;\n case 'weeks':\n case 'week':\n case 'w':\n return n * w;\n case 'days':\n case 'day':\n case 'd':\n return n * d;\n case 'hours':\n case 'hour':\n case 'hrs':\n case 'hr':\n case 'h':\n return n * h;\n case 'minutes':\n case 'minute':\n case 'mins':\n case 'min':\n case 'm':\n return n * m;\n case 'seconds':\n case 'second':\n case 'secs':\n case 'sec':\n case 's':\n return n * s;\n case 'milliseconds':\n case 'millisecond':\n case 'msecs':\n case 'msec':\n case 'ms':\n return n;\n default:\n return undefined;\n }\n}\n\n/**\n * Short format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtShort(ms) {\n var msAbs = Math.abs(ms);\n if (msAbs >= d) {\n return Math.round(ms / d) + 'd';\n }\n if (msAbs >= h) {\n return Math.round(ms / h) + 'h';\n }\n if (msAbs >= m) {\n return Math.round(ms / m) + 'm';\n }\n if (msAbs >= s) {\n return Math.round(ms / s) + 's';\n }\n return ms + 'ms';\n}\n\n/**\n * Long format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtLong(ms) {\n var msAbs = Math.abs(ms);\n if (msAbs >= d) {\n return plural(ms, msAbs, d, 'day');\n }\n if (msAbs >= h) {\n return plural(ms, msAbs, h, 'hour');\n }\n if (msAbs >= m) {\n return plural(ms, msAbs, m, 'minute');\n }\n if (msAbs >= s) {\n return plural(ms, msAbs, s, 'second');\n }\n return ms + ' ms';\n}\n\n/**\n * Pluralization helper.\n */\n\nfunction plural(ms, msAbs, n, name) {\n var isPlural = msAbs >= n * 1.5;\n return Math.round(ms / n) + ' ' + name + (isPlural ? 's' : '');\n}\n", "\n/**\n * This is the common logic for both the Node.js and web browser\n * implementations of `debug()`.\n */\n\nfunction setup(env) {\n\tcreateDebug.debug = createDebug;\n\tcreateDebug.default = createDebug;\n\tcreateDebug.coerce = coerce;\n\tcreateDebug.disable = disable;\n\tcreateDebug.enable = enable;\n\tcreateDebug.enabled = enabled;\n\tcreateDebug.humanize = require('ms');\n\tcreateDebug.destroy = destroy;\n\n\tObject.keys(env).forEach(key => {\n\t\tcreateDebug[key] = env[key];\n\t});\n\n\t/**\n\t* The currently active debug mode names, and names to skip.\n\t*/\n\n\tcreateDebug.names = [];\n\tcreateDebug.skips = [];\n\n\t/**\n\t* Map of special \"%n\" handling functions, for the debug \"format\" argument.\n\t*\n\t* Valid key names are a single, lower or upper-case letter, i.e. \"n\" and \"N\".\n\t*/\n\tcreateDebug.formatters = {};\n\n\t/**\n\t* Selects a color for a debug namespace\n\t* @param {String} namespace The namespace string for the debug instance to be colored\n\t* @return {Number|String} An ANSI color code for the given namespace\n\t* @api private\n\t*/\n\tfunction selectColor(namespace) {\n\t\tlet hash = 0;\n\n\t\tfor (let i = 0; i < namespace.length; i++) {\n\t\t\thash = ((hash << 5) - hash) + namespace.charCodeAt(i);\n\t\t\thash |= 0; // Convert to 32bit integer\n\t\t}\n\n\t\treturn createDebug.colors[Math.abs(hash) % createDebug.colors.length];\n\t}\n\tcreateDebug.selectColor = selectColor;\n\n\t/**\n\t* Create a debugger with the given `namespace`.\n\t*\n\t* @param {String} namespace\n\t* @return {Function}\n\t* @api public\n\t*/\n\tfunction createDebug(namespace) {\n\t\tlet prevTime;\n\t\tlet enableOverride = null;\n\t\tlet namespacesCache;\n\t\tlet enabledCache;\n\n\t\tfunction debug(...args) {\n\t\t\t// Disabled?\n\t\t\tif (!debug.enabled) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst self = debug;\n\n\t\t\t// Set `diff` timestamp\n\t\t\tconst curr = Number(new Date());\n\t\t\tconst ms = curr - (prevTime || curr);\n\t\t\tself.diff = ms;\n\t\t\tself.prev = prevTime;\n\t\t\tself.curr = curr;\n\t\t\tprevTime = curr;\n\n\t\t\targs[0] = createDebug.coerce(args[0]);\n\n\t\t\tif (typeof args[0] !== 'string') {\n\t\t\t\t// Anything else let's inspect with %O\n\t\t\t\targs.unshift('%O');\n\t\t\t}\n\n\t\t\t// Apply any `formatters` transformations\n\t\t\tlet index = 0;\n\t\t\targs[0] = args[0].replace(/%([a-zA-Z%])/g, (match, format) => {\n\t\t\t\t// If we encounter an escaped % then don't increase the array index\n\t\t\t\tif (match === '%%') {\n\t\t\t\t\treturn '%';\n\t\t\t\t}\n\t\t\t\tindex++;\n\t\t\t\tconst formatter = createDebug.formatters[format];\n\t\t\t\tif (typeof formatter === 'function') {\n\t\t\t\t\tconst val = args[index];\n\t\t\t\t\tmatch = formatter.call(self, val);\n\n\t\t\t\t\t// Now we need to remove `args[index]` since it's inlined in the `format`\n\t\t\t\t\targs.splice(index, 1);\n\t\t\t\t\tindex--;\n\t\t\t\t}\n\t\t\t\treturn match;\n\t\t\t});\n\n\t\t\t// Apply env-specific formatting (colors, etc.)\n\t\t\tcreateDebug.formatArgs.call(self, args);\n\n\t\t\tconst logFn = self.log || createDebug.log;\n\t\t\tlogFn.apply(self, args);\n\t\t}\n\n\t\tdebug.namespace = namespace;\n\t\tdebug.useColors = createDebug.useColors();\n\t\tdebug.color = createDebug.selectColor(namespace);\n\t\tdebug.extend = extend;\n\t\tdebug.destroy = createDebug.destroy; // XXX Temporary. Will be removed in the next major release.\n\n\t\tObject.defineProperty(debug, 'enabled', {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: false,\n\t\t\tget: () => {\n\t\t\t\tif (enableOverride !== null) {\n\t\t\t\t\treturn enableOverride;\n\t\t\t\t}\n\t\t\t\tif (namespacesCache !== createDebug.namespaces) {\n\t\t\t\t\tnamespacesCache = createDebug.namespaces;\n\t\t\t\t\tenabledCache = createDebug.enabled(namespace);\n\t\t\t\t}\n\n\t\t\t\treturn enabledCache;\n\t\t\t},\n\t\t\tset: v => {\n\t\t\t\tenableOverride = v;\n\t\t\t}\n\t\t});\n\n\t\t// Env-specific initialization logic for debug instances\n\t\tif (typeof createDebug.init === 'function') {\n\t\t\tcreateDebug.init(debug);\n\t\t}\n\n\t\treturn debug;\n\t}\n\n\tfunction extend(namespace, delimiter) {\n\t\tconst newDebug = createDebug(this.namespace + (typeof delimiter === 'undefined' ? ':' : delimiter) + namespace);\n\t\tnewDebug.log = this.log;\n\t\treturn newDebug;\n\t}\n\n\t/**\n\t* Enables a debug mode by namespaces. This can include modes\n\t* separated by a colon and wildcards.\n\t*\n\t* @param {String} namespaces\n\t* @api public\n\t*/\n\tfunction enable(namespaces) {\n\t\tcreateDebug.save(namespaces);\n\t\tcreateDebug.namespaces = namespaces;\n\n\t\tcreateDebug.names = [];\n\t\tcreateDebug.skips = [];\n\n\t\tlet i;\n\t\tconst split = (typeof namespaces === 'string' ? namespaces : '').split(/[\\s,]+/);\n\t\tconst len = split.length;\n\n\t\tfor (i = 0; i < len; i++) {\n\t\t\tif (!split[i]) {\n\t\t\t\t// ignore empty strings\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tnamespaces = split[i].replace(/\\*/g, '.*?');\n\n\t\t\tif (namespaces[0] === '-') {\n\t\t\t\tcreateDebug.skips.push(new RegExp('^' + namespaces.slice(1) + '$'));\n\t\t\t} else {\n\t\t\t\tcreateDebug.names.push(new RegExp('^' + namespaces + '$'));\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t* Disable debug output.\n\t*\n\t* @return {String} namespaces\n\t* @api public\n\t*/\n\tfunction disable() {\n\t\tconst namespaces = [\n\t\t\t...createDebug.names.map(toNamespace),\n\t\t\t...createDebug.skips.map(toNamespace).map(namespace => '-' + namespace)\n\t\t].join(',');\n\t\tcreateDebug.enable('');\n\t\treturn namespaces;\n\t}\n\n\t/**\n\t* Returns true if the given mode name is enabled, false otherwise.\n\t*\n\t* @param {String} name\n\t* @return {Boolean}\n\t* @api public\n\t*/\n\tfunction enabled(name) {\n\t\tif (name[name.length - 1] === '*') {\n\t\t\treturn true;\n\t\t}\n\n\t\tlet i;\n\t\tlet len;\n\n\t\tfor (i = 0, len = createDebug.skips.length; i < len; i++) {\n\t\t\tif (createDebug.skips[i].test(name)) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\n\t\tfor (i = 0, len = createDebug.names.length; i < len; i++) {\n\t\t\tif (createDebug.names[i].test(name)) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t}\n\n\t/**\n\t* Convert regexp to namespace\n\t*\n\t* @param {RegExp} regxep\n\t* @return {String} namespace\n\t* @api private\n\t*/\n\tfunction toNamespace(regexp) {\n\t\treturn regexp.toString()\n\t\t\t.substring(2, regexp.toString().length - 2)\n\t\t\t.replace(/\\.\\*\\?$/, '*');\n\t}\n\n\t/**\n\t* Coerce `val`.\n\t*\n\t* @param {Mixed} val\n\t* @return {Mixed}\n\t* @api private\n\t*/\n\tfunction coerce(val) {\n\t\tif (val instanceof Error) {\n\t\t\treturn val.stack || val.message;\n\t\t}\n\t\treturn val;\n\t}\n\n\t/**\n\t* XXX DO NOT USE. This is a temporary stub function.\n\t* XXX It WILL be removed in the next major release.\n\t*/\n\tfunction destroy() {\n\t\tconsole.warn('Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.');\n\t}\n\n\tcreateDebug.enable(createDebug.load());\n\n\treturn createDebug;\n}\n\nmodule.exports = setup;\n", "/* eslint-env browser */\n\n/**\n * This is the web browser implementation of `debug()`.\n */\n\nexports.formatArgs = formatArgs;\nexports.save = save;\nexports.load = load;\nexports.useColors = useColors;\nexports.storage = localstorage();\nexports.destroy = (() => {\n\tlet warned = false;\n\n\treturn () => {\n\t\tif (!warned) {\n\t\t\twarned = true;\n\t\t\tconsole.warn('Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.');\n\t\t}\n\t};\n})();\n\n/**\n * Colors.\n */\n\nexports.colors = [\n\t'#0000CC',\n\t'#0000FF',\n\t'#0033CC',\n\t'#0033FF',\n\t'#0066CC',\n\t'#0066FF',\n\t'#0099CC',\n\t'#0099FF',\n\t'#00CC00',\n\t'#00CC33',\n\t'#00CC66',\n\t'#00CC99',\n\t'#00CCCC',\n\t'#00CCFF',\n\t'#3300CC',\n\t'#3300FF',\n\t'#3333CC',\n\t'#3333FF',\n\t'#3366CC',\n\t'#3366FF',\n\t'#3399CC',\n\t'#3399FF',\n\t'#33CC00',\n\t'#33CC33',\n\t'#33CC66',\n\t'#33CC99',\n\t'#33CCCC',\n\t'#33CCFF',\n\t'#6600CC',\n\t'#6600FF',\n\t'#6633CC',\n\t'#6633FF',\n\t'#66CC00',\n\t'#66CC33',\n\t'#9900CC',\n\t'#9900FF',\n\t'#9933CC',\n\t'#9933FF',\n\t'#99CC00',\n\t'#99CC33',\n\t'#CC0000',\n\t'#CC0033',\n\t'#CC0066',\n\t'#CC0099',\n\t'#CC00CC',\n\t'#CC00FF',\n\t'#CC3300',\n\t'#CC3333',\n\t'#CC3366',\n\t'#CC3399',\n\t'#CC33CC',\n\t'#CC33FF',\n\t'#CC6600',\n\t'#CC6633',\n\t'#CC9900',\n\t'#CC9933',\n\t'#CCCC00',\n\t'#CCCC33',\n\t'#FF0000',\n\t'#FF0033',\n\t'#FF0066',\n\t'#FF0099',\n\t'#FF00CC',\n\t'#FF00FF',\n\t'#FF3300',\n\t'#FF3333',\n\t'#FF3366',\n\t'#FF3399',\n\t'#FF33CC',\n\t'#FF33FF',\n\t'#FF6600',\n\t'#FF6633',\n\t'#FF9900',\n\t'#FF9933',\n\t'#FFCC00',\n\t'#FFCC33'\n];\n\n/**\n * Currently only WebKit-based Web Inspectors, Firefox >= v31,\n * and the Firebug extension (any Firefox version) are known\n * to support \"%c\" CSS customizations.\n *\n * TODO: add a `localStorage` variable to explicitly enable/disable colors\n */\n\n// eslint-disable-next-line complexity\nfunction useColors() {\n\t// NB: In an Electron preload script, document will be defined but not fully\n\t// initialized. Since we know we're in Chrome, we'll just detect this case\n\t// explicitly\n\tif (typeof window !== 'undefined' && window.process && (window.process.type === 'renderer' || window.process.__nwjs)) {\n\t\treturn true;\n\t}\n\n\t// Internet Explorer and Edge do not support colors.\n\tif (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/(edge|trident)\\/(\\d+)/)) {\n\t\treturn false;\n\t}\n\n\t// Is webkit? http://stackoverflow.com/a/16459606/376773\n\t// document is undefined in react-native: https://github.com/facebook/react-native/pull/1632\n\treturn (typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance) ||\n\t\t// Is firebug? http://stackoverflow.com/a/398120/376773\n\t\t(typeof window !== 'undefined' && window.console && (window.console.firebug || (window.console.exception && window.console.table))) ||\n\t\t// Is firefox >= v31?\n\t\t// https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages\n\t\t(typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\\/(\\d+)/) && parseInt(RegExp.$1, 10) >= 31) ||\n\t\t// Double check webkit in userAgent just in case we are in a worker\n\t\t(typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\\/(\\d+)/));\n}\n\n/**\n * Colorize log arguments if enabled.\n *\n * @api public\n */\n\nfunction formatArgs(args) {\n\targs[0] = (this.useColors ? '%c' : '') +\n\t\tthis.namespace +\n\t\t(this.useColors ? ' %c' : ' ') +\n\t\targs[0] +\n\t\t(this.useColors ? '%c ' : ' ') +\n\t\t'+' + module.exports.humanize(this.diff);\n\n\tif (!this.useColors) {\n\t\treturn;\n\t}\n\n\tconst c = 'color: ' + this.color;\n\targs.splice(1, 0, c, 'color: inherit');\n\n\t// The final \"%c\" is somewhat tricky, because there could be other\n\t// arguments passed either before or after the %c, so we need to\n\t// figure out the correct index to insert the CSS into\n\tlet index = 0;\n\tlet lastC = 0;\n\targs[0].replace(/%[a-zA-Z%]/g, match => {\n\t\tif (match === '%%') {\n\t\t\treturn;\n\t\t}\n\t\tindex++;\n\t\tif (match === '%c') {\n\t\t\t// We only are interested in the *last* %c\n\t\t\t// (the user may have provided their own)\n\t\t\tlastC = index;\n\t\t}\n\t});\n\n\targs.splice(lastC, 0, c);\n}\n\n/**\n * Invokes `console.debug()` when available.\n * No-op when `console.debug` is not a \"function\".\n * If `console.debug` is not available, falls back\n * to `console.log`.\n *\n * @api public\n */\nexports.log = console.debug || console.log || (() => {});\n\n/**\n * Save `namespaces`.\n *\n * @param {String} namespaces\n * @api private\n */\nfunction save(namespaces) {\n\ttry {\n\t\tif (namespaces) {\n\t\t\texports.storage.setItem('debug', namespaces);\n\t\t} else {\n\t\t\texports.storage.removeItem('debug');\n\t\t}\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n}\n\n/**\n * Load `namespaces`.\n *\n * @return {String} returns the previously persisted debug modes\n * @api private\n */\nfunction load() {\n\tlet r;\n\ttry {\n\t\tr = exports.storage.getItem('debug');\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n\n\t// If debug isn't set in LS, and we're in Electron, try to load $DEBUG\n\tif (!r && typeof process !== 'undefined' && 'env' in process) {\n\t\tr = process.env.DEBUG;\n\t}\n\n\treturn r;\n}\n\n/**\n * Localstorage attempts to return the localstorage.\n *\n * This is necessary because safari throws\n * when a user disables cookies/localstorage\n * and you attempt to access it.\n *\n * @return {LocalStorage}\n * @api private\n */\n\nfunction localstorage() {\n\ttry {\n\t\t// TVMLKit (Apple TV JS Runtime) does not have a window object, just localStorage in the global context\n\t\t// The Browser also has localStorage in the global context.\n\t\treturn localStorage;\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n}\n\nmodule.exports = require('./common')(exports);\n\nconst {formatters} = module.exports;\n\n/**\n * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default.\n */\n\nformatters.j = function (v) {\n\ttry {\n\t\treturn JSON.stringify(v);\n\t} catch (error) {\n\t\treturn '[UnexpectedJSONParseError]: ' + error.message;\n\t}\n};\n", "'use strict';\n\nmodule.exports = (flag, argv = process.argv) => {\n\tconst prefix = flag.startsWith('-') ? '' : (flag.length === 1 ? '-' : '--');\n\tconst position = argv.indexOf(prefix + flag);\n\tconst terminatorPosition = argv.indexOf('--');\n\treturn position !== -1 && (terminatorPosition === -1 || position < terminatorPosition);\n};\n", "'use strict';\nconst os = require('os');\nconst tty = require('tty');\nconst hasFlag = require('has-flag');\n\nconst {env} = process;\n\nlet forceColor;\nif (hasFlag('no-color') ||\n\thasFlag('no-colors') ||\n\thasFlag('color=false') ||\n\thasFlag('color=never')) {\n\tforceColor = 0;\n} else if (hasFlag('color') ||\n\thasFlag('colors') ||\n\thasFlag('color=true') ||\n\thasFlag('color=always')) {\n\tforceColor = 1;\n}\n\nif ('FORCE_COLOR' in env) {\n\tif (env.FORCE_COLOR === 'true') {\n\t\tforceColor = 1;\n\t} else if (env.FORCE_COLOR === 'false') {\n\t\tforceColor = 0;\n\t} else {\n\t\tforceColor = env.FORCE_COLOR.length === 0 ? 1 : Math.min(parseInt(env.FORCE_COLOR, 10), 3);\n\t}\n}\n\nfunction translateLevel(level) {\n\tif (level === 0) {\n\t\treturn false;\n\t}\n\n\treturn {\n\t\tlevel,\n\t\thasBasic: true,\n\t\thas256: level >= 2,\n\t\thas16m: level >= 3\n\t};\n}\n\nfunction supportsColor(haveStream, streamIsTTY) {\n\tif (forceColor === 0) {\n\t\treturn 0;\n\t}\n\n\tif (hasFlag('color=16m') ||\n\t\thasFlag('color=full') ||\n\t\thasFlag('color=truecolor')) {\n\t\treturn 3;\n\t}\n\n\tif (hasFlag('color=256')) {\n\t\treturn 2;\n\t}\n\n\tif (haveStream && !streamIsTTY && forceColor === undefined) {\n\t\treturn 0;\n\t}\n\n\tconst min = forceColor || 0;\n\n\tif (env.TERM === 'dumb') {\n\t\treturn min;\n\t}\n\n\tif (process.platform === 'win32') {\n\t\t// Windows 10 build 10586 is the first Windows release that supports 256 colors.\n\t\t// Windows 10 build 14931 is the first release that supports 16m/TrueColor.\n\t\tconst osRelease = os.release().split('.');\n\t\tif (\n\t\t\tNumber(osRelease[0]) >= 10 &&\n\t\t\tNumber(osRelease[2]) >= 10586\n\t\t) {\n\t\t\treturn Number(osRelease[2]) >= 14931 ? 3 : 2;\n\t\t}\n\n\t\treturn 1;\n\t}\n\n\tif ('CI' in env) {\n\t\tif (['TRAVIS', 'CIRCLECI', 'APPVEYOR', 'GITLAB_CI', 'GITHUB_ACTIONS', 'BUILDKITE'].some(sign => sign in env) || env.CI_NAME === 'codeship') {\n\t\t\treturn 1;\n\t\t}\n\n\t\treturn min;\n\t}\n\n\tif ('TEAMCITY_VERSION' in env) {\n\t\treturn /^(9\\.(0*[1-9]\\d*)\\.|\\d{2,}\\.)/.test(env.TEAMCITY_VERSION) ? 1 : 0;\n\t}\n\n\tif (env.COLORTERM === 'truecolor') {\n\t\treturn 3;\n\t}\n\n\tif ('TERM_PROGRAM' in env) {\n\t\tconst version = parseInt((env.TERM_PROGRAM_VERSION || '').split('.')[0], 10);\n\n\t\tswitch (env.TERM_PROGRAM) {\n\t\t\tcase 'iTerm.app':\n\t\t\t\treturn version >= 3 ? 3 : 2;\n\t\t\tcase 'Apple_Terminal':\n\t\t\t\treturn 2;\n\t\t\t// No default\n\t\t}\n\t}\n\n\tif (/-256(color)?$/i.test(env.TERM)) {\n\t\treturn 2;\n\t}\n\n\tif (/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(env.TERM)) {\n\t\treturn 1;\n\t}\n\n\tif ('COLORTERM' in env) {\n\t\treturn 1;\n\t}\n\n\treturn min;\n}\n\nfunction getSupportLevel(stream) {\n\tconst level = supportsColor(stream, stream && stream.isTTY);\n\treturn translateLevel(level);\n}\n\nmodule.exports = {\n\tsupportsColor: getSupportLevel,\n\tstdout: translateLevel(supportsColor(true, tty.isatty(1))),\n\tstderr: translateLevel(supportsColor(true, tty.isatty(2)))\n};\n", "/**\n * Module dependencies.\n */\n\nconst tty = require('tty');\nconst util = require('util');\n\n/**\n * This is the Node.js implementation of `debug()`.\n */\n\nexports.init = init;\nexports.log = log;\nexports.formatArgs = formatArgs;\nexports.save = save;\nexports.load = load;\nexports.useColors = useColors;\nexports.destroy = util.deprecate(\n\t() => {},\n\t'Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.'\n);\n\n/**\n * Colors.\n */\n\nexports.colors = [6, 2, 3, 4, 5, 1];\n\ntry {\n\t// Optional dependency (as in, doesn't need to be installed, NOT like optionalDependencies in package.json)\n\t// eslint-disable-next-line import/no-extraneous-dependencies\n\tconst supportsColor = require('supports-color');\n\n\tif (supportsColor && (supportsColor.stderr || supportsColor).level >= 2) {\n\t\texports.colors = [\n\t\t\t20,\n\t\t\t21,\n\t\t\t26,\n\t\t\t27,\n\t\t\t32,\n\t\t\t33,\n\t\t\t38,\n\t\t\t39,\n\t\t\t40,\n\t\t\t41,\n\t\t\t42,\n\t\t\t43,\n\t\t\t44,\n\t\t\t45,\n\t\t\t56,\n\t\t\t57,\n\t\t\t62,\n\t\t\t63,\n\t\t\t68,\n\t\t\t69,\n\t\t\t74,\n\t\t\t75,\n\t\t\t76,\n\t\t\t77,\n\t\t\t78,\n\t\t\t79,\n\t\t\t80,\n\t\t\t81,\n\t\t\t92,\n\t\t\t93,\n\t\t\t98,\n\t\t\t99,\n\t\t\t112,\n\t\t\t113,\n\t\t\t128,\n\t\t\t129,\n\t\t\t134,\n\t\t\t135,\n\t\t\t148,\n\t\t\t149,\n\t\t\t160,\n\t\t\t161,\n\t\t\t162,\n\t\t\t163,\n\t\t\t164,\n\t\t\t165,\n\t\t\t166,\n\t\t\t167,\n\t\t\t168,\n\t\t\t169,\n\t\t\t170,\n\t\t\t171,\n\t\t\t172,\n\t\t\t173,\n\t\t\t178,\n\t\t\t179,\n\t\t\t184,\n\t\t\t185,\n\t\t\t196,\n\t\t\t197,\n\t\t\t198,\n\t\t\t199,\n\t\t\t200,\n\t\t\t201,\n\t\t\t202,\n\t\t\t203,\n\t\t\t204,\n\t\t\t205,\n\t\t\t206,\n\t\t\t207,\n\t\t\t208,\n\t\t\t209,\n\t\t\t214,\n\t\t\t215,\n\t\t\t220,\n\t\t\t221\n\t\t];\n\t}\n} catch (error) {\n\t// Swallow - we only care if `supports-color` is available; it doesn't have to be.\n}\n\n/**\n * Build up the default `inspectOpts` object from the environment variables.\n *\n * $ DEBUG_COLORS=no DEBUG_DEPTH=10 DEBUG_SHOW_HIDDEN=enabled node script.js\n */\n\nexports.inspectOpts = Object.keys(process.env).filter(key => {\n\treturn /^debug_/i.test(key);\n}).reduce((obj, key) => {\n\t// Camel-case\n\tconst prop = key\n\t\t.substring(6)\n\t\t.toLowerCase()\n\t\t.replace(/_([a-z])/g, (_, k) => {\n\t\t\treturn k.toUpperCase();\n\t\t});\n\n\t// Coerce string value into JS value\n\tlet val = process.env[key];\n\tif (/^(yes|on|true|enabled)$/i.test(val)) {\n\t\tval = true;\n\t} else if (/^(no|off|false|disabled)$/i.test(val)) {\n\t\tval = false;\n\t} else if (val === 'null') {\n\t\tval = null;\n\t} else {\n\t\tval = Number(val);\n\t}\n\n\tobj[prop] = val;\n\treturn obj;\n}, {});\n\n/**\n * Is stdout a TTY? Colored output is enabled when `true`.\n */\n\nfunction useColors() {\n\treturn 'colors' in exports.inspectOpts ?\n\t\tBoolean(exports.inspectOpts.colors) :\n\t\ttty.isatty(process.stderr.fd);\n}\n\n/**\n * Adds ANSI color escape codes if enabled.\n *\n * @api public\n */\n\nfunction formatArgs(args) {\n\tconst {namespace: name, useColors} = this;\n\n\tif (useColors) {\n\t\tconst c = this.color;\n\t\tconst colorCode = '\\u001B[3' + (c < 8 ? c : '8;5;' + c);\n\t\tconst prefix = ` ${colorCode};1m${name} \\u001B[0m`;\n\n\t\targs[0] = prefix + args[0].split('\\n').join('\\n' + prefix);\n\t\targs.push(colorCode + 'm+' + module.exports.humanize(this.diff) + '\\u001B[0m');\n\t} else {\n\t\targs[0] = getDate() + name + ' ' + args[0];\n\t}\n}\n\nfunction getDate() {\n\tif (exports.inspectOpts.hideDate) {\n\t\treturn '';\n\t}\n\treturn new Date().toISOString() + ' ';\n}\n\n/**\n * Invokes `util.format()` with the specified arguments and writes to stderr.\n */\n\nfunction log(...args) {\n\treturn process.stderr.write(util.format(...args) + '\\n');\n}\n\n/**\n * Save `namespaces`.\n *\n * @param {String} namespaces\n * @api private\n */\nfunction save(namespaces) {\n\tif (namespaces) {\n\t\tprocess.env.DEBUG = namespaces;\n\t} else {\n\t\t// If you set a process.env field to null or undefined, it gets cast to the\n\t\t// string 'null' or 'undefined'. Just delete instead.\n\t\tdelete process.env.DEBUG;\n\t}\n}\n\n/**\n * Load `namespaces`.\n *\n * @return {String} returns the previously persisted debug modes\n * @api private\n */\n\nfunction load() {\n\treturn process.env.DEBUG;\n}\n\n/**\n * Init logic for `debug` instances.\n *\n * Create a new `inspectOpts` object in case `useColors` is set\n * differently for a particular `debug` instance.\n */\n\nfunction init(debug) {\n\tdebug.inspectOpts = {};\n\n\tconst keys = Object.keys(exports.inspectOpts);\n\tfor (let i = 0; i < keys.length; i++) {\n\t\tdebug.inspectOpts[keys[i]] = exports.inspectOpts[keys[i]];\n\t}\n}\n\nmodule.exports = require('./common')(exports);\n\nconst {formatters} = module.exports;\n\n/**\n * Map %o to `util.inspect()`, all on a single line.\n */\n\nformatters.o = function (v) {\n\tthis.inspectOpts.colors = this.useColors;\n\treturn util.inspect(v, this.inspectOpts)\n\t\t.split('\\n')\n\t\t.map(str => str.trim())\n\t\t.join(' ');\n};\n\n/**\n * Map %O to `util.inspect()`, allowing multiple lines if needed.\n */\n\nformatters.O = function (v) {\n\tthis.inspectOpts.colors = this.useColors;\n\treturn util.inspect(v, this.inspectOpts);\n};\n", "/**\n * Detect Electron renderer / nwjs process, which is node, but we should\n * treat as a browser.\n */\n\nif (typeof process === 'undefined' || process.type === 'renderer' || process.browser === true || process.__nwjs) {\n\tmodule.exports = require('./browser.js');\n} else {\n\tmodule.exports = require('./node.js');\n}\n", "import {\n\tAgent,\n\tClientRequest,\n\tRequestOptions,\n\tAgentCallbackCallback,\n\tAgentCallbackPromise,\n\tAgentCallbackReturn\n} from './index';\n\ntype LegacyCallback = (\n\treq: ClientRequest,\n\topts: RequestOptions,\n\tfn: AgentCallbackCallback\n) => void;\n\nexport default function promisify(fn: LegacyCallback): AgentCallbackPromise {\n\treturn function(this: Agent, req: ClientRequest, opts: RequestOptions) {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tfn.call(\n\t\t\t\tthis,\n\t\t\t\treq,\n\t\t\t\topts,\n\t\t\t\t(err: Error | null | undefined, rtn?: AgentCallbackReturn) => {\n\t\t\t\t\tif (err) {\n\t\t\t\t\t\treject(err);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tresolve(rtn);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t);\n\t\t});\n\t};\n}\n", "import net from 'net';\nimport http from 'http';\nimport https from 'https';\nimport { Duplex } from 'stream';\nimport { EventEmitter } from 'events';\nimport createDebug from 'debug';\nimport promisify from './promisify';\n\nconst debug = createDebug('agent-base');\n\nfunction isAgent(v: any): v is createAgent.AgentLike {\n\treturn Boolean(v) && typeof v.addRequest === 'function';\n}\n\nfunction isSecureEndpoint(): boolean {\n\tconst { stack } = new Error();\n\tif (typeof stack !== 'string') return false;\n\treturn stack.split('\\n').some(l => l.indexOf('(https.js:') !== -1 || l.indexOf('node:https:') !== -1);\n}\n\nfunction createAgent(opts?: createAgent.AgentOptions): createAgent.Agent;\nfunction createAgent(\n\tcallback: createAgent.AgentCallback,\n\topts?: createAgent.AgentOptions\n): createAgent.Agent;\nfunction createAgent(\n\tcallback?: createAgent.AgentCallback | createAgent.AgentOptions,\n\topts?: createAgent.AgentOptions\n) {\n\treturn new createAgent.Agent(callback, opts);\n}\n\nnamespace createAgent {\n\texport interface ClientRequest extends http.ClientRequest {\n\t\t_last?: boolean;\n\t\t_hadError?: boolean;\n\t\tmethod: string;\n\t}\n\n\texport interface AgentRequestOptions {\n\t\thost?: string;\n\t\tpath?: string;\n\t\t// `port` on `http.RequestOptions` can be a string or undefined,\n\t\t// but `net.TcpNetConnectOpts` expects only a number\n\t\tport: number;\n\t}\n\n\texport interface HttpRequestOptions\n\t\textends AgentRequestOptions,\n\t\t\tOmit {\n\t\tsecureEndpoint: false;\n\t}\n\n\texport interface HttpsRequestOptions\n\t\textends AgentRequestOptions,\n\t\t\tOmit {\n\t\tsecureEndpoint: true;\n\t}\n\n\texport type RequestOptions = HttpRequestOptions | HttpsRequestOptions;\n\n\texport type AgentLike = Pick | http.Agent;\n\n\texport type AgentCallbackReturn = Duplex | AgentLike;\n\n\texport type AgentCallbackCallback = (\n\t\terr?: Error | null,\n\t\tsocket?: createAgent.AgentCallbackReturn\n\t) => void;\n\n\texport type AgentCallbackPromise = (\n\t\treq: createAgent.ClientRequest,\n\t\topts: createAgent.RequestOptions\n\t) =>\n\t\t| createAgent.AgentCallbackReturn\n\t\t| Promise;\n\n\texport type AgentCallback = typeof Agent.prototype.callback;\n\n\texport type AgentOptions = {\n\t\ttimeout?: number;\n\t};\n\n\t/**\n\t * Base `http.Agent` implementation.\n\t * No pooling/keep-alive is implemented by default.\n\t *\n\t * @param {Function} callback\n\t * @api public\n\t */\n\texport class Agent extends EventEmitter {\n\t\tpublic timeout: number | null;\n\t\tpublic maxFreeSockets: number;\n\t\tpublic maxTotalSockets: number;\n\t\tpublic maxSockets: number;\n\t\tpublic sockets: {\n\t\t\t[key: string]: net.Socket[];\n\t\t};\n\t\tpublic freeSockets: {\n\t\t\t[key: string]: net.Socket[];\n\t\t};\n\t\tpublic requests: {\n\t\t\t[key: string]: http.IncomingMessage[];\n\t\t};\n\t\tpublic options: https.AgentOptions;\n\t\tprivate promisifiedCallback?: createAgent.AgentCallbackPromise;\n\t\tprivate explicitDefaultPort?: number;\n\t\tprivate explicitProtocol?: string;\n\n\t\tconstructor(\n\t\t\tcallback?: createAgent.AgentCallback | createAgent.AgentOptions,\n\t\t\t_opts?: createAgent.AgentOptions\n\t\t) {\n\t\t\tsuper();\n\n\t\t\tlet opts = _opts;\n\t\t\tif (typeof callback === 'function') {\n\t\t\t\tthis.callback = callback;\n\t\t\t} else if (callback) {\n\t\t\t\topts = callback;\n\t\t\t}\n\n\t\t\t// Timeout for the socket to be returned from the callback\n\t\t\tthis.timeout = null;\n\t\t\tif (opts && typeof opts.timeout === 'number') {\n\t\t\t\tthis.timeout = opts.timeout;\n\t\t\t}\n\n\t\t\t// These aren't actually used by `agent-base`, but are required\n\t\t\t// for the TypeScript definition files in `@types/node` :/\n\t\t\tthis.maxFreeSockets = 1;\n\t\t\tthis.maxSockets = 1;\n\t\t\tthis.maxTotalSockets = Infinity;\n\t\t\tthis.sockets = {};\n\t\t\tthis.freeSockets = {};\n\t\t\tthis.requests = {};\n\t\t\tthis.options = {};\n\t\t}\n\n\t\tget defaultPort(): number {\n\t\t\tif (typeof this.explicitDefaultPort === 'number') {\n\t\t\t\treturn this.explicitDefaultPort;\n\t\t\t}\n\t\t\treturn isSecureEndpoint() ? 443 : 80;\n\t\t}\n\n\t\tset defaultPort(v: number) {\n\t\t\tthis.explicitDefaultPort = v;\n\t\t}\n\n\t\tget protocol(): string {\n\t\t\tif (typeof this.explicitProtocol === 'string') {\n\t\t\t\treturn this.explicitProtocol;\n\t\t\t}\n\t\t\treturn isSecureEndpoint() ? 'https:' : 'http:';\n\t\t}\n\n\t\tset protocol(v: string) {\n\t\t\tthis.explicitProtocol = v;\n\t\t}\n\n\t\tcallback(\n\t\t\treq: createAgent.ClientRequest,\n\t\t\topts: createAgent.RequestOptions,\n\t\t\tfn: createAgent.AgentCallbackCallback\n\t\t): void;\n\t\tcallback(\n\t\t\treq: createAgent.ClientRequest,\n\t\t\topts: createAgent.RequestOptions\n\t\t):\n\t\t\t| createAgent.AgentCallbackReturn\n\t\t\t| Promise;\n\t\tcallback(\n\t\t\treq: createAgent.ClientRequest,\n\t\t\topts: createAgent.AgentOptions,\n\t\t\tfn?: createAgent.AgentCallbackCallback\n\t\t):\n\t\t\t| createAgent.AgentCallbackReturn\n\t\t\t| Promise\n\t\t\t| void {\n\t\t\tthrow new Error(\n\t\t\t\t'\"agent-base\" has no default implementation, you must subclass and override `callback()`'\n\t\t\t);\n\t\t}\n\n\t\t/**\n\t\t * Called by node-core's \"_http_client.js\" module when creating\n\t\t * a new HTTP request with this Agent instance.\n\t\t *\n\t\t * @api public\n\t\t */\n\t\taddRequest(req: ClientRequest, _opts: RequestOptions): void {\n\t\t\tconst opts: RequestOptions = { ..._opts };\n\n\t\t\tif (typeof opts.secureEndpoint !== 'boolean') {\n\t\t\t\topts.secureEndpoint = isSecureEndpoint();\n\t\t\t}\n\n\t\t\tif (opts.host == null) {\n\t\t\t\topts.host = 'localhost';\n\t\t\t}\n\n\t\t\tif (opts.port == null) {\n\t\t\t\topts.port = opts.secureEndpoint ? 443 : 80;\n\t\t\t}\n\n\t\t\tif (opts.protocol == null) {\n\t\t\t\topts.protocol = opts.secureEndpoint ? 'https:' : 'http:';\n\t\t\t}\n\n\t\t\tif (opts.host && opts.path) {\n\t\t\t\t// If both a `host` and `path` are specified then it's most\n\t\t\t\t// likely the result of a `url.parse()` call... we need to\n\t\t\t\t// remove the `path` portion so that `net.connect()` doesn't\n\t\t\t\t// attempt to open that as a unix socket file.\n\t\t\t\tdelete opts.path;\n\t\t\t}\n\n\t\t\tdelete opts.agent;\n\t\t\tdelete opts.hostname;\n\t\t\tdelete opts._defaultAgent;\n\t\t\tdelete opts.defaultPort;\n\t\t\tdelete opts.createConnection;\n\n\t\t\t// Hint to use \"Connection: close\"\n\t\t\t// XXX: non-documented `http` module API :(\n\t\t\treq._last = true;\n\t\t\treq.shouldKeepAlive = false;\n\n\t\t\tlet timedOut = false;\n\t\t\tlet timeoutId: ReturnType | null = null;\n\t\t\tconst timeoutMs = opts.timeout || this.timeout;\n\n\t\t\tconst onerror = (err: NodeJS.ErrnoException) => {\n\t\t\t\tif (req._hadError) return;\n\t\t\t\treq.emit('error', err);\n\t\t\t\t// For Safety. Some additional errors might fire later on\n\t\t\t\t// and we need to make sure we don't double-fire the error event.\n\t\t\t\treq._hadError = true;\n\t\t\t};\n\n\t\t\tconst ontimeout = () => {\n\t\t\t\ttimeoutId = null;\n\t\t\t\ttimedOut = true;\n\t\t\t\tconst err: NodeJS.ErrnoException = new Error(\n\t\t\t\t\t`A \"socket\" was not created for HTTP request before ${timeoutMs}ms`\n\t\t\t\t);\n\t\t\t\terr.code = 'ETIMEOUT';\n\t\t\t\tonerror(err);\n\t\t\t};\n\n\t\t\tconst callbackError = (err: NodeJS.ErrnoException) => {\n\t\t\t\tif (timedOut) return;\n\t\t\t\tif (timeoutId !== null) {\n\t\t\t\t\tclearTimeout(timeoutId);\n\t\t\t\t\ttimeoutId = null;\n\t\t\t\t}\n\t\t\t\tonerror(err);\n\t\t\t};\n\n\t\t\tconst onsocket = (socket: AgentCallbackReturn) => {\n\t\t\t\tif (timedOut) return;\n\t\t\t\tif (timeoutId != null) {\n\t\t\t\t\tclearTimeout(timeoutId);\n\t\t\t\t\ttimeoutId = null;\n\t\t\t\t}\n\n\t\t\t\tif (isAgent(socket)) {\n\t\t\t\t\t// `socket` is actually an `http.Agent` instance, so\n\t\t\t\t\t// relinquish responsibility for this `req` to the Agent\n\t\t\t\t\t// from here on\n\t\t\t\t\tdebug(\n\t\t\t\t\t\t'Callback returned another Agent instance %o',\n\t\t\t\t\t\tsocket.constructor.name\n\t\t\t\t\t);\n\t\t\t\t\t(socket as createAgent.Agent).addRequest(req, opts);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (socket) {\n\t\t\t\t\tsocket.once('free', () => {\n\t\t\t\t\t\tthis.freeSocket(socket as net.Socket, opts);\n\t\t\t\t\t});\n\t\t\t\t\treq.onSocket(socket as net.Socket);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tconst err = new Error(\n\t\t\t\t\t`no Duplex stream was returned to agent-base for \\`${req.method} ${req.path}\\``\n\t\t\t\t);\n\t\t\t\tonerror(err);\n\t\t\t};\n\n\t\t\tif (typeof this.callback !== 'function') {\n\t\t\t\tonerror(new Error('`callback` is not defined'));\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (!this.promisifiedCallback) {\n\t\t\t\tif (this.callback.length >= 3) {\n\t\t\t\t\tdebug('Converting legacy callback function to promise');\n\t\t\t\t\tthis.promisifiedCallback = promisify(this.callback);\n\t\t\t\t} else {\n\t\t\t\t\tthis.promisifiedCallback = this.callback;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (typeof timeoutMs === 'number' && timeoutMs > 0) {\n\t\t\t\ttimeoutId = setTimeout(ontimeout, timeoutMs);\n\t\t\t}\n\n\t\t\tif ('port' in opts && typeof opts.port !== 'number') {\n\t\t\t\topts.port = Number(opts.port);\n\t\t\t}\n\n\t\t\ttry {\n\t\t\t\tdebug(\n\t\t\t\t\t'Resolving socket for %o request: %o',\n\t\t\t\t\topts.protocol,\n\t\t\t\t\t`${req.method} ${req.path}`\n\t\t\t\t);\n\t\t\t\tPromise.resolve(this.promisifiedCallback(req, opts)).then(\n\t\t\t\t\tonsocket,\n\t\t\t\t\tcallbackError\n\t\t\t\t);\n\t\t\t} catch (err) {\n\t\t\t\tPromise.reject(err).catch(callbackError);\n\t\t\t}\n\t\t}\n\n\t\tfreeSocket(socket: net.Socket, opts: AgentOptions) {\n\t\t\tdebug('Freeing socket %o %o', socket.constructor.name, opts);\n\t\t\tsocket.destroy();\n\t\t}\n\n\t\tdestroy() {\n\t\t\tdebug('Destroying agent %o', this.constructor.name);\n\t\t}\n\t}\n\n\t// So that `instanceof` works correctly\n\tcreateAgent.prototype = createAgent.Agent.prototype;\n}\n\nexport = createAgent;\n", "const ip = exports;\nconst { Buffer } = require('buffer');\nconst os = require('os');\n\nip.toBuffer = function (ip, buff, offset) {\n offset = ~~offset;\n\n let result;\n\n if (this.isV4Format(ip)) {\n result = buff || Buffer.alloc(offset + 4);\n ip.split(/\\./g).map((byte) => {\n result[offset++] = parseInt(byte, 10) & 0xff;\n });\n } else if (this.isV6Format(ip)) {\n const sections = ip.split(':', 8);\n\n let i;\n for (i = 0; i < sections.length; i++) {\n const isv4 = this.isV4Format(sections[i]);\n let v4Buffer;\n\n if (isv4) {\n v4Buffer = this.toBuffer(sections[i]);\n sections[i] = v4Buffer.slice(0, 2).toString('hex');\n }\n\n if (v4Buffer && ++i < 8) {\n sections.splice(i, 0, v4Buffer.slice(2, 4).toString('hex'));\n }\n }\n\n if (sections[0] === '') {\n while (sections.length < 8) sections.unshift('0');\n } else if (sections[sections.length - 1] === '') {\n while (sections.length < 8) sections.push('0');\n } else if (sections.length < 8) {\n for (i = 0; i < sections.length && sections[i] !== ''; i++);\n const argv = [i, 1];\n for (i = 9 - sections.length; i > 0; i--) {\n argv.push('0');\n }\n sections.splice(...argv);\n }\n\n result = buff || Buffer.alloc(offset + 16);\n for (i = 0; i < sections.length; i++) {\n const word = parseInt(sections[i], 16);\n result[offset++] = (word >> 8) & 0xff;\n result[offset++] = word & 0xff;\n }\n }\n\n if (!result) {\n throw Error(`Invalid ip address: ${ip}`);\n }\n\n return result;\n};\n\nip.toString = function (buff, offset, length) {\n offset = ~~offset;\n length = length || (buff.length - offset);\n\n let result = [];\n if (length === 4) {\n // IPv4\n for (let i = 0; i < length; i++) {\n result.push(buff[offset + i]);\n }\n result = result.join('.');\n } else if (length === 16) {\n // IPv6\n for (let i = 0; i < length; i += 2) {\n result.push(buff.readUInt16BE(offset + i).toString(16));\n }\n result = result.join(':');\n result = result.replace(/(^|:)0(:0)*:0(:|$)/, '$1::$3');\n result = result.replace(/:{3,4}/, '::');\n }\n\n return result;\n};\n\nconst ipv4Regex = /^(\\d{1,3}\\.){3,3}\\d{1,3}$/;\nconst ipv6Regex = /^(::)?(((\\d{1,3}\\.){3}(\\d{1,3}){1})?([0-9a-f]){0,4}:{0,2}){1,8}(::)?$/i;\n\nip.isV4Format = function (ip) {\n return ipv4Regex.test(ip);\n};\n\nip.isV6Format = function (ip) {\n return ipv6Regex.test(ip);\n};\n\nfunction _normalizeFamily(family) {\n if (family === 4) {\n return 'ipv4';\n }\n if (family === 6) {\n return 'ipv6';\n }\n return family ? family.toLowerCase() : 'ipv4';\n}\n\nip.fromPrefixLen = function (prefixlen, family) {\n if (prefixlen > 32) {\n family = 'ipv6';\n } else {\n family = _normalizeFamily(family);\n }\n\n let len = 4;\n if (family === 'ipv6') {\n len = 16;\n }\n const buff = Buffer.alloc(len);\n\n for (let i = 0, n = buff.length; i < n; ++i) {\n let bits = 8;\n if (prefixlen < 8) {\n bits = prefixlen;\n }\n prefixlen -= bits;\n\n buff[i] = ~(0xff >> bits) & 0xff;\n }\n\n return ip.toString(buff);\n};\n\nip.mask = function (addr, mask) {\n addr = ip.toBuffer(addr);\n mask = ip.toBuffer(mask);\n\n const result = Buffer.alloc(Math.max(addr.length, mask.length));\n\n // Same protocol - do bitwise and\n let i;\n if (addr.length === mask.length) {\n for (i = 0; i < addr.length; i++) {\n result[i] = addr[i] & mask[i];\n }\n } else if (mask.length === 4) {\n // IPv6 address and IPv4 mask\n // (Mask low bits)\n for (i = 0; i < mask.length; i++) {\n result[i] = addr[addr.length - 4 + i] & mask[i];\n }\n } else {\n // IPv6 mask and IPv4 addr\n for (i = 0; i < result.length - 6; i++) {\n result[i] = 0;\n }\n\n // ::ffff:ipv4\n result[10] = 0xff;\n result[11] = 0xff;\n for (i = 0; i < addr.length; i++) {\n result[i + 12] = addr[i] & mask[i + 12];\n }\n i += 12;\n }\n for (; i < result.length; i++) {\n result[i] = 0;\n }\n\n return ip.toString(result);\n};\n\nip.cidr = function (cidrString) {\n const cidrParts = cidrString.split('/');\n\n const addr = cidrParts[0];\n if (cidrParts.length !== 2) {\n throw new Error(`invalid CIDR subnet: ${addr}`);\n }\n\n const mask = ip.fromPrefixLen(parseInt(cidrParts[1], 10));\n\n return ip.mask(addr, mask);\n};\n\nip.subnet = function (addr, mask) {\n const networkAddress = ip.toLong(ip.mask(addr, mask));\n\n // Calculate the mask's length.\n const maskBuffer = ip.toBuffer(mask);\n let maskLength = 0;\n\n for (let i = 0; i < maskBuffer.length; i++) {\n if (maskBuffer[i] === 0xff) {\n maskLength += 8;\n } else {\n let octet = maskBuffer[i] & 0xff;\n while (octet) {\n octet = (octet << 1) & 0xff;\n maskLength++;\n }\n }\n }\n\n const numberOfAddresses = 2 ** (32 - maskLength);\n\n return {\n networkAddress: ip.fromLong(networkAddress),\n firstAddress: numberOfAddresses <= 2\n ? ip.fromLong(networkAddress)\n : ip.fromLong(networkAddress + 1),\n lastAddress: numberOfAddresses <= 2\n ? ip.fromLong(networkAddress + numberOfAddresses - 1)\n : ip.fromLong(networkAddress + numberOfAddresses - 2),\n broadcastAddress: ip.fromLong(networkAddress + numberOfAddresses - 1),\n subnetMask: mask,\n subnetMaskLength: maskLength,\n numHosts: numberOfAddresses <= 2\n ? numberOfAddresses : numberOfAddresses - 2,\n length: numberOfAddresses,\n contains(other) {\n return networkAddress === ip.toLong(ip.mask(other, mask));\n },\n };\n};\n\nip.cidrSubnet = function (cidrString) {\n const cidrParts = cidrString.split('/');\n\n const addr = cidrParts[0];\n if (cidrParts.length !== 2) {\n throw new Error(`invalid CIDR subnet: ${addr}`);\n }\n\n const mask = ip.fromPrefixLen(parseInt(cidrParts[1], 10));\n\n return ip.subnet(addr, mask);\n};\n\nip.not = function (addr) {\n const buff = ip.toBuffer(addr);\n for (let i = 0; i < buff.length; i++) {\n buff[i] = 0xff ^ buff[i];\n }\n return ip.toString(buff);\n};\n\nip.or = function (a, b) {\n a = ip.toBuffer(a);\n b = ip.toBuffer(b);\n\n // same protocol\n if (a.length === b.length) {\n for (let i = 0; i < a.length; ++i) {\n a[i] |= b[i];\n }\n return ip.toString(a);\n\n // mixed protocols\n }\n let buff = a;\n let other = b;\n if (b.length > a.length) {\n buff = b;\n other = a;\n }\n\n const offset = buff.length - other.length;\n for (let i = offset; i < buff.length; ++i) {\n buff[i] |= other[i - offset];\n }\n\n return ip.toString(buff);\n};\n\nip.isEqual = function (a, b) {\n a = ip.toBuffer(a);\n b = ip.toBuffer(b);\n\n // Same protocol\n if (a.length === b.length) {\n for (let i = 0; i < a.length; i++) {\n if (a[i] !== b[i]) return false;\n }\n return true;\n }\n\n // Swap\n if (b.length === 4) {\n const t = b;\n b = a;\n a = t;\n }\n\n // a - IPv4, b - IPv6\n for (let i = 0; i < 10; i++) {\n if (b[i] !== 0) return false;\n }\n\n const word = b.readUInt16BE(10);\n if (word !== 0 && word !== 0xffff) return false;\n\n for (let i = 0; i < 4; i++) {\n if (a[i] !== b[i + 12]) return false;\n }\n\n return true;\n};\n\nip.isPrivate = function (addr) {\n return /^(::f{4}:)?10\\.([0-9]{1,3})\\.([0-9]{1,3})\\.([0-9]{1,3})$/i\n .test(addr)\n || /^(::f{4}:)?192\\.168\\.([0-9]{1,3})\\.([0-9]{1,3})$/i.test(addr)\n || /^(::f{4}:)?172\\.(1[6-9]|2\\d|30|31)\\.([0-9]{1,3})\\.([0-9]{1,3})$/i\n .test(addr)\n || /^(::f{4}:)?127\\.([0-9]{1,3})\\.([0-9]{1,3})\\.([0-9]{1,3})$/i.test(addr)\n || /^(::f{4}:)?169\\.254\\.([0-9]{1,3})\\.([0-9]{1,3})$/i.test(addr)\n || /^f[cd][0-9a-f]{2}:/i.test(addr)\n || /^fe80:/i.test(addr)\n || /^::1$/.test(addr)\n || /^::$/.test(addr);\n};\n\nip.isPublic = function (addr) {\n return !ip.isPrivate(addr);\n};\n\nip.isLoopback = function (addr) {\n return /^(::f{4}:)?127\\.([0-9]{1,3})\\.([0-9]{1,3})\\.([0-9]{1,3})/\n .test(addr)\n || /^fe80::1$/.test(addr)\n || /^::1$/.test(addr)\n || /^::$/.test(addr);\n};\n\nip.loopback = function (family) {\n //\n // Default to `ipv4`\n //\n family = _normalizeFamily(family);\n\n if (family !== 'ipv4' && family !== 'ipv6') {\n throw new Error('family must be ipv4 or ipv6');\n }\n\n return family === 'ipv4' ? '127.0.0.1' : 'fe80::1';\n};\n\n//\n// ### function address (name, family)\n// #### @name {string|'public'|'private'} **Optional** Name or security\n// of the network interface.\n// #### @family {ipv4|ipv6} **Optional** IP family of the address (defaults\n// to ipv4).\n//\n// Returns the address for the network interface on the current system with\n// the specified `name`:\n// * String: First `family` address of the interface.\n// If not found see `undefined`.\n// * 'public': the first public ip address of family.\n// * 'private': the first private ip address of family.\n// * undefined: First address with `ipv4` or loopback address `127.0.0.1`.\n//\nip.address = function (name, family) {\n const interfaces = os.networkInterfaces();\n\n //\n // Default to `ipv4`\n //\n family = _normalizeFamily(family);\n\n //\n // If a specific network interface has been named,\n // return the address.\n //\n if (name && name !== 'private' && name !== 'public') {\n const res = interfaces[name].filter((details) => {\n const itemFamily = _normalizeFamily(details.family);\n return itemFamily === family;\n });\n if (res.length === 0) {\n return undefined;\n }\n return res[0].address;\n }\n\n const all = Object.keys(interfaces).map((nic) => {\n //\n // Note: name will only be `public` or `private`\n // when this is called.\n //\n const addresses = interfaces[nic].filter((details) => {\n details.family = _normalizeFamily(details.family);\n if (details.family !== family || ip.isLoopback(details.address)) {\n return false;\n } if (!name) {\n return true;\n }\n\n return name === 'public' ? ip.isPrivate(details.address)\n : ip.isPublic(details.address);\n });\n\n return addresses.length ? addresses[0].address : undefined;\n }).filter(Boolean);\n\n return !all.length ? ip.loopback(family) : all[0];\n};\n\nip.toLong = function (ip) {\n let ipl = 0;\n ip.split('.').forEach((octet) => {\n ipl <<= 8;\n ipl += parseInt(octet);\n });\n return (ipl >>> 0);\n};\n\nip.fromLong = function (ipl) {\n return (`${ipl >>> 24}.${\n ipl >> 16 & 255}.${\n ipl >> 8 & 255}.${\n ipl & 255}`);\n};\n", null, null, null, null, null, null, null, null, null, null, "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.WorkerState = void 0;\nconst errors_1 = require(\"../constants/errors\");\nclass WorkerState {\n constructor() {\n this.addresses = [];\n this.accounts = [];\n this.subscription = {};\n }\n validateAddresses(addr) {\n if (!Array.isArray(addr))\n throw new errors_1.CustomError('invalid_param', '+addresses');\n const seen = [];\n return addr.filter(a => {\n if (typeof a !== 'string')\n return false;\n if (seen.indexOf(a) >= 0)\n return false;\n seen.push(a);\n return true;\n });\n }\n addAddresses(addr) {\n const unique = this.validateAddresses(addr).filter(a => this.addresses.indexOf(a) < 0);\n this.addresses = this.addresses.concat(unique);\n return unique;\n }\n getAddresses() {\n return this.addresses;\n }\n removeAddresses(addr) {\n const unique = this.validateAddresses(addr);\n this.addresses = this.addresses.filter(a => unique.indexOf(a) < 0);\n return this.addresses;\n }\n validateAccounts(acc) {\n if (!Array.isArray(acc))\n throw new errors_1.CustomError('invalid_param', '+accounts');\n const seen = [];\n return acc.filter(a => {\n if (a && typeof a === 'object' && typeof a.descriptor === 'string') {\n if (seen.indexOf(a.descriptor) >= 0)\n return false;\n seen.push(a.descriptor);\n return true;\n }\n return false;\n });\n }\n getAccountAddresses(acc) {\n if (acc.addresses) {\n const { change, used, unused } = acc.addresses;\n return change.concat(used, unused).map(a => a.address);\n }\n return [acc.descriptor];\n }\n addAccounts(acc) {\n const valid = this.validateAccounts(acc);\n const others = this.accounts.filter(a => !valid.find(b => b.descriptor === a.descriptor));\n this.accounts = others.concat(valid);\n const addresses = this.accounts.reduce((addr, a) => addr.concat(this.getAccountAddresses(a)), []);\n this.addAddresses(addresses);\n return valid;\n }\n getAccount(address) {\n return this.accounts.find(a => {\n if (a.descriptor === address)\n return true;\n if (a.addresses) {\n const { change, used, unused } = a.addresses;\n if (change.find(ad => ad.address === address))\n return true;\n if (used.find(ad => ad.address === address))\n return true;\n if (unused.find(ad => ad.address === address))\n return true;\n }\n return false;\n });\n }\n getAccounts() {\n return this.accounts;\n }\n removeAccounts(acc) {\n const valid = this.validateAccounts(acc);\n const accountsToRemove = this.accounts.filter(a => valid.find(b => b.descriptor === a.descriptor));\n const addressesToRemove = accountsToRemove.reduce((addr, acc) => addr.concat(this.getAccountAddresses(acc)), []);\n this.accounts = this.accounts.filter(a => accountsToRemove.indexOf(a) < 0);\n this.removeAddresses(addressesToRemove);\n return this.accounts;\n }\n addSubscription(type) {\n this.subscription[type] = true;\n }\n getSubscription(type) {\n return this.subscription[type];\n }\n hasSubscriptions() {\n return Object.keys(this.subscription).length > 0;\n }\n removeSubscription(type) {\n delete this.subscription[type];\n }\n clearSubscriptions() {\n Object.keys(this.subscription).forEach(key => {\n delete this.subscription[key];\n });\n }\n removeEmpty(obj) {\n Object.keys(obj).forEach(key => {\n if (Array.isArray(obj[key]))\n obj[key].map((o) => this.removeEmpty(o));\n if (obj[key] && typeof obj[key] === 'object')\n this.removeEmpty(obj[key]);\n else if (obj[key] === undefined)\n delete obj[key];\n });\n return obj;\n }\n cleanup() {\n this.removeAccounts(this.getAccounts());\n this.removeAddresses(this.getAddresses());\n this.clearSubscriptions();\n }\n}\nexports.WorkerState = WorkerState;\n//# sourceMappingURL=state.js.map", ";(function (globalObject) {\r\n 'use strict';\r\n\r\n/*\r\n * bignumber.js v9.1.1\r\n * A JavaScript library for arbitrary-precision arithmetic.\r\n * https://github.com/MikeMcl/bignumber.js\r\n * Copyright (c) 2022 Michael Mclaughlin \r\n * MIT Licensed.\r\n *\r\n * BigNumber.prototype methods | BigNumber methods\r\n * |\r\n * absoluteValue abs | clone\r\n * comparedTo | config set\r\n * decimalPlaces dp | DECIMAL_PLACES\r\n * dividedBy div | ROUNDING_MODE\r\n * dividedToIntegerBy idiv | EXPONENTIAL_AT\r\n * exponentiatedBy pow | RANGE\r\n * integerValue | CRYPTO\r\n * isEqualTo eq | MODULO_MODE\r\n * isFinite | POW_PRECISION\r\n * isGreaterThan gt | FORMAT\r\n * isGreaterThanOrEqualTo gte | ALPHABET\r\n * isInteger | isBigNumber\r\n * isLessThan lt | maximum max\r\n * isLessThanOrEqualTo lte | minimum min\r\n * isNaN | random\r\n * isNegative | sum\r\n * isPositive |\r\n * isZero |\r\n * minus |\r\n * modulo mod |\r\n * multipliedBy times |\r\n * negated |\r\n * plus |\r\n * precision sd |\r\n * shiftedBy |\r\n * squareRoot sqrt |\r\n * toExponential |\r\n * toFixed |\r\n * toFormat |\r\n * toFraction |\r\n * toJSON |\r\n * toNumber |\r\n * toPrecision |\r\n * toString |\r\n * valueOf |\r\n *\r\n */\r\n\r\n\r\n var BigNumber,\r\n isNumeric = /^-?(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:e[+-]?\\d+)?$/i,\r\n mathceil = Math.ceil,\r\n mathfloor = Math.floor,\r\n\r\n bignumberError = '[BigNumber Error] ',\r\n tooManyDigits = bignumberError + 'Number primitive has more than 15 significant digits: ',\r\n\r\n BASE = 1e14,\r\n LOG_BASE = 14,\r\n MAX_SAFE_INTEGER = 0x1fffffffffffff, // 2^53 - 1\r\n // MAX_INT32 = 0x7fffffff, // 2^31 - 1\r\n POWS_TEN = [1, 10, 100, 1e3, 1e4, 1e5, 1e6, 1e7, 1e8, 1e9, 1e10, 1e11, 1e12, 1e13],\r\n SQRT_BASE = 1e7,\r\n\r\n // EDITABLE\r\n // The limit on the value of DECIMAL_PLACES, TO_EXP_NEG, TO_EXP_POS, MIN_EXP, MAX_EXP, and\r\n // the arguments to toExponential, toFixed, toFormat, and toPrecision.\r\n MAX = 1E9; // 0 to MAX_INT32\r\n\r\n\r\n /*\r\n * Create and return a BigNumber constructor.\r\n */\r\n function clone(configObject) {\r\n var div, convertBase, parseNumeric,\r\n P = BigNumber.prototype = { constructor: BigNumber, toString: null, valueOf: null },\r\n ONE = new BigNumber(1),\r\n\r\n\r\n //----------------------------- EDITABLE CONFIG DEFAULTS -------------------------------\r\n\r\n\r\n // The default values below must be integers within the inclusive ranges stated.\r\n // The values can also be changed at run-time using BigNumber.set.\r\n\r\n // The maximum number of decimal places for operations involving division.\r\n DECIMAL_PLACES = 20, // 0 to MAX\r\n\r\n // The rounding mode used when rounding to the above decimal places, and when using\r\n // toExponential, toFixed, toFormat and toPrecision, and round (default value).\r\n // UP 0 Away from zero.\r\n // DOWN 1 Towards zero.\r\n // CEIL 2 Towards +Infinity.\r\n // FLOOR 3 Towards -Infinity.\r\n // HALF_UP 4 Towards nearest neighbour. If equidistant, up.\r\n // HALF_DOWN 5 Towards nearest neighbour. If equidistant, down.\r\n // HALF_EVEN 6 Towards nearest neighbour. If equidistant, towards even neighbour.\r\n // HALF_CEIL 7 Towards nearest neighbour. If equidistant, towards +Infinity.\r\n // HALF_FLOOR 8 Towards nearest neighbour. If equidistant, towards -Infinity.\r\n ROUNDING_MODE = 4, // 0 to 8\r\n\r\n // EXPONENTIAL_AT : [TO_EXP_NEG , TO_EXP_POS]\r\n\r\n // The exponent value at and beneath which toString returns exponential notation.\r\n // Number type: -7\r\n TO_EXP_NEG = -7, // 0 to -MAX\r\n\r\n // The exponent value at and above which toString returns exponential notation.\r\n // Number type: 21\r\n TO_EXP_POS = 21, // 0 to MAX\r\n\r\n // RANGE : [MIN_EXP, MAX_EXP]\r\n\r\n // The minimum exponent value, beneath which underflow to zero occurs.\r\n // Number type: -324 (5e-324)\r\n MIN_EXP = -1e7, // -1 to -MAX\r\n\r\n // The maximum exponent value, above which overflow to Infinity occurs.\r\n // Number type: 308 (1.7976931348623157e+308)\r\n // For MAX_EXP > 1e7, e.g. new BigNumber('1e100000000').plus(1) may be slow.\r\n MAX_EXP = 1e7, // 1 to MAX\r\n\r\n // Whether to use cryptographically-secure random number generation, if available.\r\n CRYPTO = false, // true or false\r\n\r\n // The modulo mode used when calculating the modulus: a mod n.\r\n // The quotient (q = a / n) is calculated according to the corresponding rounding mode.\r\n // The remainder (r) is calculated as: r = a - n * q.\r\n //\r\n // UP 0 The remainder is positive if the dividend is negative, else is negative.\r\n // DOWN 1 The remainder has the same sign as the dividend.\r\n // This modulo mode is commonly known as 'truncated division' and is\r\n // equivalent to (a % n) in JavaScript.\r\n // FLOOR 3 The remainder has the same sign as the divisor (Python %).\r\n // HALF_EVEN 6 This modulo mode implements the IEEE 754 remainder function.\r\n // EUCLID 9 Euclidian division. q = sign(n) * floor(a / abs(n)).\r\n // The remainder is always positive.\r\n //\r\n // The truncated division, floored division, Euclidian division and IEEE 754 remainder\r\n // modes are commonly used for the modulus operation.\r\n // Although the other rounding modes can also be used, they may not give useful results.\r\n MODULO_MODE = 1, // 0 to 9\r\n\r\n // The maximum number of significant digits of the result of the exponentiatedBy operation.\r\n // If POW_PRECISION is 0, there will be unlimited significant digits.\r\n POW_PRECISION = 0, // 0 to MAX\r\n\r\n // The format specification used by the BigNumber.prototype.toFormat method.\r\n FORMAT = {\r\n prefix: '',\r\n groupSize: 3,\r\n secondaryGroupSize: 0,\r\n groupSeparator: ',',\r\n decimalSeparator: '.',\r\n fractionGroupSize: 0,\r\n fractionGroupSeparator: '\\xA0', // non-breaking space\r\n suffix: ''\r\n },\r\n\r\n // The alphabet used for base conversion. It must be at least 2 characters long, with no '+',\r\n // '-', '.', whitespace, or repeated character.\r\n // '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ$_'\r\n ALPHABET = '0123456789abcdefghijklmnopqrstuvwxyz',\r\n alphabetHasNormalDecimalDigits = true;\r\n\r\n\r\n //------------------------------------------------------------------------------------------\r\n\r\n\r\n // CONSTRUCTOR\r\n\r\n\r\n /*\r\n * The BigNumber constructor and exported function.\r\n * Create and return a new instance of a BigNumber object.\r\n *\r\n * v {number|string|BigNumber} A numeric value.\r\n * [b] {number} The base of v. Integer, 2 to ALPHABET.length inclusive.\r\n */\r\n function BigNumber(v, b) {\r\n var alphabet, c, caseChanged, e, i, isNum, len, str,\r\n x = this;\r\n\r\n // Enable constructor call without `new`.\r\n if (!(x instanceof BigNumber)) return new BigNumber(v, b);\r\n\r\n if (b == null) {\r\n\r\n if (v && v._isBigNumber === true) {\r\n x.s = v.s;\r\n\r\n if (!v.c || v.e > MAX_EXP) {\r\n x.c = x.e = null;\r\n } else if (v.e < MIN_EXP) {\r\n x.c = [x.e = 0];\r\n } else {\r\n x.e = v.e;\r\n x.c = v.c.slice();\r\n }\r\n\r\n return;\r\n }\r\n\r\n if ((isNum = typeof v == 'number') && v * 0 == 0) {\r\n\r\n // Use `1 / n` to handle minus zero also.\r\n x.s = 1 / v < 0 ? (v = -v, -1) : 1;\r\n\r\n // Fast path for integers, where n < 2147483648 (2**31).\r\n if (v === ~~v) {\r\n for (e = 0, i = v; i >= 10; i /= 10, e++);\r\n\r\n if (e > MAX_EXP) {\r\n x.c = x.e = null;\r\n } else {\r\n x.e = e;\r\n x.c = [v];\r\n }\r\n\r\n return;\r\n }\r\n\r\n str = String(v);\r\n } else {\r\n\r\n if (!isNumeric.test(str = String(v))) return parseNumeric(x, str, isNum);\r\n\r\n x.s = str.charCodeAt(0) == 45 ? (str = str.slice(1), -1) : 1;\r\n }\r\n\r\n // Decimal point?\r\n if ((e = str.indexOf('.')) > -1) str = str.replace('.', '');\r\n\r\n // Exponential form?\r\n if ((i = str.search(/e/i)) > 0) {\r\n\r\n // Determine exponent.\r\n if (e < 0) e = i;\r\n e += +str.slice(i + 1);\r\n str = str.substring(0, i);\r\n } else if (e < 0) {\r\n\r\n // Integer.\r\n e = str.length;\r\n }\r\n\r\n } else {\r\n\r\n // '[BigNumber Error] Base {not a primitive number|not an integer|out of range}: {b}'\r\n intCheck(b, 2, ALPHABET.length, 'Base');\r\n\r\n // Allow exponential notation to be used with base 10 argument, while\r\n // also rounding to DECIMAL_PLACES as with other bases.\r\n if (b == 10 && alphabetHasNormalDecimalDigits) {\r\n x = new BigNumber(v);\r\n return round(x, DECIMAL_PLACES + x.e + 1, ROUNDING_MODE);\r\n }\r\n\r\n str = String(v);\r\n\r\n if (isNum = typeof v == 'number') {\r\n\r\n // Avoid potential interpretation of Infinity and NaN as base 44+ values.\r\n if (v * 0 != 0) return parseNumeric(x, str, isNum, b);\r\n\r\n x.s = 1 / v < 0 ? (str = str.slice(1), -1) : 1;\r\n\r\n // '[BigNumber Error] Number primitive has more than 15 significant digits: {n}'\r\n if (BigNumber.DEBUG && str.replace(/^0\\.0*|\\./, '').length > 15) {\r\n throw Error\r\n (tooManyDigits + v);\r\n }\r\n } else {\r\n x.s = str.charCodeAt(0) === 45 ? (str = str.slice(1), -1) : 1;\r\n }\r\n\r\n alphabet = ALPHABET.slice(0, b);\r\n e = i = 0;\r\n\r\n // Check that str is a valid base b number.\r\n // Don't use RegExp, so alphabet can contain special characters.\r\n for (len = str.length; i < len; i++) {\r\n if (alphabet.indexOf(c = str.charAt(i)) < 0) {\r\n if (c == '.') {\r\n\r\n // If '.' is not the first character and it has not be found before.\r\n if (i > e) {\r\n e = len;\r\n continue;\r\n }\r\n } else if (!caseChanged) {\r\n\r\n // Allow e.g. hexadecimal 'FF' as well as 'ff'.\r\n if (str == str.toUpperCase() && (str = str.toLowerCase()) ||\r\n str == str.toLowerCase() && (str = str.toUpperCase())) {\r\n caseChanged = true;\r\n i = -1;\r\n e = 0;\r\n continue;\r\n }\r\n }\r\n\r\n return parseNumeric(x, String(v), isNum, b);\r\n }\r\n }\r\n\r\n // Prevent later check for length on converted number.\r\n isNum = false;\r\n str = convertBase(str, b, 10, x.s);\r\n\r\n // Decimal point?\r\n if ((e = str.indexOf('.')) > -1) str = str.replace('.', '');\r\n else e = str.length;\r\n }\r\n\r\n // Determine leading zeros.\r\n for (i = 0; str.charCodeAt(i) === 48; i++);\r\n\r\n // Determine trailing zeros.\r\n for (len = str.length; str.charCodeAt(--len) === 48;);\r\n\r\n if (str = str.slice(i, ++len)) {\r\n len -= i;\r\n\r\n // '[BigNumber Error] Number primitive has more than 15 significant digits: {n}'\r\n if (isNum && BigNumber.DEBUG &&\r\n len > 15 && (v > MAX_SAFE_INTEGER || v !== mathfloor(v))) {\r\n throw Error\r\n (tooManyDigits + (x.s * v));\r\n }\r\n\r\n // Overflow?\r\n if ((e = e - i - 1) > MAX_EXP) {\r\n\r\n // Infinity.\r\n x.c = x.e = null;\r\n\r\n // Underflow?\r\n } else if (e < MIN_EXP) {\r\n\r\n // Zero.\r\n x.c = [x.e = 0];\r\n } else {\r\n x.e = e;\r\n x.c = [];\r\n\r\n // Transform base\r\n\r\n // e is the base 10 exponent.\r\n // i is where to slice str to get the first element of the coefficient array.\r\n i = (e + 1) % LOG_BASE;\r\n if (e < 0) i += LOG_BASE; // i < 1\r\n\r\n if (i < len) {\r\n if (i) x.c.push(+str.slice(0, i));\r\n\r\n for (len -= LOG_BASE; i < len;) {\r\n x.c.push(+str.slice(i, i += LOG_BASE));\r\n }\r\n\r\n i = LOG_BASE - (str = str.slice(i)).length;\r\n } else {\r\n i -= len;\r\n }\r\n\r\n for (; i--; str += '0');\r\n x.c.push(+str);\r\n }\r\n } else {\r\n\r\n // Zero.\r\n x.c = [x.e = 0];\r\n }\r\n }\r\n\r\n\r\n // CONSTRUCTOR PROPERTIES\r\n\r\n\r\n BigNumber.clone = clone;\r\n\r\n BigNumber.ROUND_UP = 0;\r\n BigNumber.ROUND_DOWN = 1;\r\n BigNumber.ROUND_CEIL = 2;\r\n BigNumber.ROUND_FLOOR = 3;\r\n BigNumber.ROUND_HALF_UP = 4;\r\n BigNumber.ROUND_HALF_DOWN = 5;\r\n BigNumber.ROUND_HALF_EVEN = 6;\r\n BigNumber.ROUND_HALF_CEIL = 7;\r\n BigNumber.ROUND_HALF_FLOOR = 8;\r\n BigNumber.EUCLID = 9;\r\n\r\n\r\n /*\r\n * Configure infrequently-changing library-wide settings.\r\n *\r\n * Accept an object with the following optional properties (if the value of a property is\r\n * a number, it must be an integer within the inclusive range stated):\r\n *\r\n * DECIMAL_PLACES {number} 0 to MAX\r\n * ROUNDING_MODE {number} 0 to 8\r\n * EXPONENTIAL_AT {number|number[]} -MAX to MAX or [-MAX to 0, 0 to MAX]\r\n * RANGE {number|number[]} -MAX to MAX (not zero) or [-MAX to -1, 1 to MAX]\r\n * CRYPTO {boolean} true or false\r\n * MODULO_MODE {number} 0 to 9\r\n * POW_PRECISION {number} 0 to MAX\r\n * ALPHABET {string} A string of two or more unique characters which does\r\n * not contain '.'.\r\n * FORMAT {object} An object with some of the following properties:\r\n * prefix {string}\r\n * groupSize {number}\r\n * secondaryGroupSize {number}\r\n * groupSeparator {string}\r\n * decimalSeparator {string}\r\n * fractionGroupSize {number}\r\n * fractionGroupSeparator {string}\r\n * suffix {string}\r\n *\r\n * (The values assigned to the above FORMAT object properties are not checked for validity.)\r\n *\r\n * E.g.\r\n * BigNumber.config({ DECIMAL_PLACES : 20, ROUNDING_MODE : 4 })\r\n *\r\n * Ignore properties/parameters set to null or undefined, except for ALPHABET.\r\n *\r\n * Return an object with the properties current values.\r\n */\r\n BigNumber.config = BigNumber.set = function (obj) {\r\n var p, v;\r\n\r\n if (obj != null) {\r\n\r\n if (typeof obj == 'object') {\r\n\r\n // DECIMAL_PLACES {number} Integer, 0 to MAX inclusive.\r\n // '[BigNumber Error] DECIMAL_PLACES {not a primitive number|not an integer|out of range}: {v}'\r\n if (obj.hasOwnProperty(p = 'DECIMAL_PLACES')) {\r\n v = obj[p];\r\n intCheck(v, 0, MAX, p);\r\n DECIMAL_PLACES = v;\r\n }\r\n\r\n // ROUNDING_MODE {number} Integer, 0 to 8 inclusive.\r\n // '[BigNumber Error] ROUNDING_MODE {not a primitive number|not an integer|out of range}: {v}'\r\n if (obj.hasOwnProperty(p = 'ROUNDING_MODE')) {\r\n v = obj[p];\r\n intCheck(v, 0, 8, p);\r\n ROUNDING_MODE = v;\r\n }\r\n\r\n // EXPONENTIAL_AT {number|number[]}\r\n // Integer, -MAX to MAX inclusive or\r\n // [integer -MAX to 0 inclusive, 0 to MAX inclusive].\r\n // '[BigNumber Error] EXPONENTIAL_AT {not a primitive number|not an integer|out of range}: {v}'\r\n if (obj.hasOwnProperty(p = 'EXPONENTIAL_AT')) {\r\n v = obj[p];\r\n if (v && v.pop) {\r\n intCheck(v[0], -MAX, 0, p);\r\n intCheck(v[1], 0, MAX, p);\r\n TO_EXP_NEG = v[0];\r\n TO_EXP_POS = v[1];\r\n } else {\r\n intCheck(v, -MAX, MAX, p);\r\n TO_EXP_NEG = -(TO_EXP_POS = v < 0 ? -v : v);\r\n }\r\n }\r\n\r\n // RANGE {number|number[]} Non-zero integer, -MAX to MAX inclusive or\r\n // [integer -MAX to -1 inclusive, integer 1 to MAX inclusive].\r\n // '[BigNumber Error] RANGE {not a primitive number|not an integer|out of range|cannot be zero}: {v}'\r\n if (obj.hasOwnProperty(p = 'RANGE')) {\r\n v = obj[p];\r\n if (v && v.pop) {\r\n intCheck(v[0], -MAX, -1, p);\r\n intCheck(v[1], 1, MAX, p);\r\n MIN_EXP = v[0];\r\n MAX_EXP = v[1];\r\n } else {\r\n intCheck(v, -MAX, MAX, p);\r\n if (v) {\r\n MIN_EXP = -(MAX_EXP = v < 0 ? -v : v);\r\n } else {\r\n throw Error\r\n (bignumberError + p + ' cannot be zero: ' + v);\r\n }\r\n }\r\n }\r\n\r\n // CRYPTO {boolean} true or false.\r\n // '[BigNumber Error] CRYPTO not true or false: {v}'\r\n // '[BigNumber Error] crypto unavailable'\r\n if (obj.hasOwnProperty(p = 'CRYPTO')) {\r\n v = obj[p];\r\n if (v === !!v) {\r\n if (v) {\r\n if (typeof crypto != 'undefined' && crypto &&\r\n (crypto.getRandomValues || crypto.randomBytes)) {\r\n CRYPTO = v;\r\n } else {\r\n CRYPTO = !v;\r\n throw Error\r\n (bignumberError + 'crypto unavailable');\r\n }\r\n } else {\r\n CRYPTO = v;\r\n }\r\n } else {\r\n throw Error\r\n (bignumberError + p + ' not true or false: ' + v);\r\n }\r\n }\r\n\r\n // MODULO_MODE {number} Integer, 0 to 9 inclusive.\r\n // '[BigNumber Error] MODULO_MODE {not a primitive number|not an integer|out of range}: {v}'\r\n if (obj.hasOwnProperty(p = 'MODULO_MODE')) {\r\n v = obj[p];\r\n intCheck(v, 0, 9, p);\r\n MODULO_MODE = v;\r\n }\r\n\r\n // POW_PRECISION {number} Integer, 0 to MAX inclusive.\r\n // '[BigNumber Error] POW_PRECISION {not a primitive number|not an integer|out of range}: {v}'\r\n if (obj.hasOwnProperty(p = 'POW_PRECISION')) {\r\n v = obj[p];\r\n intCheck(v, 0, MAX, p);\r\n POW_PRECISION = v;\r\n }\r\n\r\n // FORMAT {object}\r\n // '[BigNumber Error] FORMAT not an object: {v}'\r\n if (obj.hasOwnProperty(p = 'FORMAT')) {\r\n v = obj[p];\r\n if (typeof v == 'object') FORMAT = v;\r\n else throw Error\r\n (bignumberError + p + ' not an object: ' + v);\r\n }\r\n\r\n // ALPHABET {string}\r\n // '[BigNumber Error] ALPHABET invalid: {v}'\r\n if (obj.hasOwnProperty(p = 'ALPHABET')) {\r\n v = obj[p];\r\n\r\n // Disallow if less than two characters,\r\n // or if it contains '+', '-', '.', whitespace, or a repeated character.\r\n if (typeof v == 'string' && !/^.?$|[+\\-.\\s]|(.).*\\1/.test(v)) {\r\n alphabetHasNormalDecimalDigits = v.slice(0, 10) == '0123456789';\r\n ALPHABET = v;\r\n } else {\r\n throw Error\r\n (bignumberError + p + ' invalid: ' + v);\r\n }\r\n }\r\n\r\n } else {\r\n\r\n // '[BigNumber Error] Object expected: {v}'\r\n throw Error\r\n (bignumberError + 'Object expected: ' + obj);\r\n }\r\n }\r\n\r\n return {\r\n DECIMAL_PLACES: DECIMAL_PLACES,\r\n ROUNDING_MODE: ROUNDING_MODE,\r\n EXPONENTIAL_AT: [TO_EXP_NEG, TO_EXP_POS],\r\n RANGE: [MIN_EXP, MAX_EXP],\r\n CRYPTO: CRYPTO,\r\n MODULO_MODE: MODULO_MODE,\r\n POW_PRECISION: POW_PRECISION,\r\n FORMAT: FORMAT,\r\n ALPHABET: ALPHABET\r\n };\r\n };\r\n\r\n\r\n /*\r\n * Return true if v is a BigNumber instance, otherwise return false.\r\n *\r\n * If BigNumber.DEBUG is true, throw if a BigNumber instance is not well-formed.\r\n *\r\n * v {any}\r\n *\r\n * '[BigNumber Error] Invalid BigNumber: {v}'\r\n */\r\n BigNumber.isBigNumber = function (v) {\r\n if (!v || v._isBigNumber !== true) return false;\r\n if (!BigNumber.DEBUG) return true;\r\n\r\n var i, n,\r\n c = v.c,\r\n e = v.e,\r\n s = v.s;\r\n\r\n out: if ({}.toString.call(c) == '[object Array]') {\r\n\r\n if ((s === 1 || s === -1) && e >= -MAX && e <= MAX && e === mathfloor(e)) {\r\n\r\n // If the first element is zero, the BigNumber value must be zero.\r\n if (c[0] === 0) {\r\n if (e === 0 && c.length === 1) return true;\r\n break out;\r\n }\r\n\r\n // Calculate number of digits that c[0] should have, based on the exponent.\r\n i = (e + 1) % LOG_BASE;\r\n if (i < 1) i += LOG_BASE;\r\n\r\n // Calculate number of digits of c[0].\r\n //if (Math.ceil(Math.log(c[0] + 1) / Math.LN10) == i) {\r\n if (String(c[0]).length == i) {\r\n\r\n for (i = 0; i < c.length; i++) {\r\n n = c[i];\r\n if (n < 0 || n >= BASE || n !== mathfloor(n)) break out;\r\n }\r\n\r\n // Last element cannot be zero, unless it is the only element.\r\n if (n !== 0) return true;\r\n }\r\n }\r\n\r\n // Infinity/NaN\r\n } else if (c === null && e === null && (s === null || s === 1 || s === -1)) {\r\n return true;\r\n }\r\n\r\n throw Error\r\n (bignumberError + 'Invalid BigNumber: ' + v);\r\n };\r\n\r\n\r\n /*\r\n * Return a new BigNumber whose value is the maximum of the arguments.\r\n *\r\n * arguments {number|string|BigNumber}\r\n */\r\n BigNumber.maximum = BigNumber.max = function () {\r\n return maxOrMin(arguments, P.lt);\r\n };\r\n\r\n\r\n /*\r\n * Return a new BigNumber whose value is the minimum of the arguments.\r\n *\r\n * arguments {number|string|BigNumber}\r\n */\r\n BigNumber.minimum = BigNumber.min = function () {\r\n return maxOrMin(arguments, P.gt);\r\n };\r\n\r\n\r\n /*\r\n * Return a new BigNumber with a random value equal to or greater than 0 and less than 1,\r\n * and with dp, or DECIMAL_PLACES if dp is omitted, decimal places (or less if trailing\r\n * zeros are produced).\r\n *\r\n * [dp] {number} Decimal places. Integer, 0 to MAX inclusive.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {dp}'\r\n * '[BigNumber Error] crypto unavailable'\r\n */\r\n BigNumber.random = (function () {\r\n var pow2_53 = 0x20000000000000;\r\n\r\n // Return a 53 bit integer n, where 0 <= n < 9007199254740992.\r\n // Check if Math.random() produces more than 32 bits of randomness.\r\n // If it does, assume at least 53 bits are produced, otherwise assume at least 30 bits.\r\n // 0x40000000 is 2^30, 0x800000 is 2^23, 0x1fffff is 2^21 - 1.\r\n var random53bitInt = (Math.random() * pow2_53) & 0x1fffff\r\n ? function () { return mathfloor(Math.random() * pow2_53); }\r\n : function () { return ((Math.random() * 0x40000000 | 0) * 0x800000) +\r\n (Math.random() * 0x800000 | 0); };\r\n\r\n return function (dp) {\r\n var a, b, e, k, v,\r\n i = 0,\r\n c = [],\r\n rand = new BigNumber(ONE);\r\n\r\n if (dp == null) dp = DECIMAL_PLACES;\r\n else intCheck(dp, 0, MAX);\r\n\r\n k = mathceil(dp / LOG_BASE);\r\n\r\n if (CRYPTO) {\r\n\r\n // Browsers supporting crypto.getRandomValues.\r\n if (crypto.getRandomValues) {\r\n\r\n a = crypto.getRandomValues(new Uint32Array(k *= 2));\r\n\r\n for (; i < k;) {\r\n\r\n // 53 bits:\r\n // ((Math.pow(2, 32) - 1) * Math.pow(2, 21)).toString(2)\r\n // 11111 11111111 11111111 11111111 11100000 00000000 00000000\r\n // ((Math.pow(2, 32) - 1) >>> 11).toString(2)\r\n // 11111 11111111 11111111\r\n // 0x20000 is 2^21.\r\n v = a[i] * 0x20000 + (a[i + 1] >>> 11);\r\n\r\n // Rejection sampling:\r\n // 0 <= v < 9007199254740992\r\n // Probability that v >= 9e15, is\r\n // 7199254740992 / 9007199254740992 ~= 0.0008, i.e. 1 in 1251\r\n if (v >= 9e15) {\r\n b = crypto.getRandomValues(new Uint32Array(2));\r\n a[i] = b[0];\r\n a[i + 1] = b[1];\r\n } else {\r\n\r\n // 0 <= v <= 8999999999999999\r\n // 0 <= (v % 1e14) <= 99999999999999\r\n c.push(v % 1e14);\r\n i += 2;\r\n }\r\n }\r\n i = k / 2;\r\n\r\n // Node.js supporting crypto.randomBytes.\r\n } else if (crypto.randomBytes) {\r\n\r\n // buffer\r\n a = crypto.randomBytes(k *= 7);\r\n\r\n for (; i < k;) {\r\n\r\n // 0x1000000000000 is 2^48, 0x10000000000 is 2^40\r\n // 0x100000000 is 2^32, 0x1000000 is 2^24\r\n // 11111 11111111 11111111 11111111 11111111 11111111 11111111\r\n // 0 <= v < 9007199254740992\r\n v = ((a[i] & 31) * 0x1000000000000) + (a[i + 1] * 0x10000000000) +\r\n (a[i + 2] * 0x100000000) + (a[i + 3] * 0x1000000) +\r\n (a[i + 4] << 16) + (a[i + 5] << 8) + a[i + 6];\r\n\r\n if (v >= 9e15) {\r\n crypto.randomBytes(7).copy(a, i);\r\n } else {\r\n\r\n // 0 <= (v % 1e14) <= 99999999999999\r\n c.push(v % 1e14);\r\n i += 7;\r\n }\r\n }\r\n i = k / 7;\r\n } else {\r\n CRYPTO = false;\r\n throw Error\r\n (bignumberError + 'crypto unavailable');\r\n }\r\n }\r\n\r\n // Use Math.random.\r\n if (!CRYPTO) {\r\n\r\n for (; i < k;) {\r\n v = random53bitInt();\r\n if (v < 9e15) c[i++] = v % 1e14;\r\n }\r\n }\r\n\r\n k = c[--i];\r\n dp %= LOG_BASE;\r\n\r\n // Convert trailing digits to zeros according to dp.\r\n if (k && dp) {\r\n v = POWS_TEN[LOG_BASE - dp];\r\n c[i] = mathfloor(k / v) * v;\r\n }\r\n\r\n // Remove trailing elements which are zero.\r\n for (; c[i] === 0; c.pop(), i--);\r\n\r\n // Zero?\r\n if (i < 0) {\r\n c = [e = 0];\r\n } else {\r\n\r\n // Remove leading elements which are zero and adjust exponent accordingly.\r\n for (e = -1 ; c[0] === 0; c.splice(0, 1), e -= LOG_BASE);\r\n\r\n // Count the digits of the first element of c to determine leading zeros, and...\r\n for (i = 1, v = c[0]; v >= 10; v /= 10, i++);\r\n\r\n // adjust the exponent accordingly.\r\n if (i < LOG_BASE) e -= LOG_BASE - i;\r\n }\r\n\r\n rand.e = e;\r\n rand.c = c;\r\n return rand;\r\n };\r\n })();\r\n\r\n\r\n /*\r\n * Return a BigNumber whose value is the sum of the arguments.\r\n *\r\n * arguments {number|string|BigNumber}\r\n */\r\n BigNumber.sum = function () {\r\n var i = 1,\r\n args = arguments,\r\n sum = new BigNumber(args[0]);\r\n for (; i < args.length;) sum = sum.plus(args[i++]);\r\n return sum;\r\n };\r\n\r\n\r\n // PRIVATE FUNCTIONS\r\n\r\n\r\n // Called by BigNumber and BigNumber.prototype.toString.\r\n convertBase = (function () {\r\n var decimal = '0123456789';\r\n\r\n /*\r\n * Convert string of baseIn to an array of numbers of baseOut.\r\n * Eg. toBaseOut('255', 10, 16) returns [15, 15].\r\n * Eg. toBaseOut('ff', 16, 10) returns [2, 5, 5].\r\n */\r\n function toBaseOut(str, baseIn, baseOut, alphabet) {\r\n var j,\r\n arr = [0],\r\n arrL,\r\n i = 0,\r\n len = str.length;\r\n\r\n for (; i < len;) {\r\n for (arrL = arr.length; arrL--; arr[arrL] *= baseIn);\r\n\r\n arr[0] += alphabet.indexOf(str.charAt(i++));\r\n\r\n for (j = 0; j < arr.length; j++) {\r\n\r\n if (arr[j] > baseOut - 1) {\r\n if (arr[j + 1] == null) arr[j + 1] = 0;\r\n arr[j + 1] += arr[j] / baseOut | 0;\r\n arr[j] %= baseOut;\r\n }\r\n }\r\n }\r\n\r\n return arr.reverse();\r\n }\r\n\r\n // Convert a numeric string of baseIn to a numeric string of baseOut.\r\n // If the caller is toString, we are converting from base 10 to baseOut.\r\n // If the caller is BigNumber, we are converting from baseIn to base 10.\r\n return function (str, baseIn, baseOut, sign, callerIsToString) {\r\n var alphabet, d, e, k, r, x, xc, y,\r\n i = str.indexOf('.'),\r\n dp = DECIMAL_PLACES,\r\n rm = ROUNDING_MODE;\r\n\r\n // Non-integer.\r\n if (i >= 0) {\r\n k = POW_PRECISION;\r\n\r\n // Unlimited precision.\r\n POW_PRECISION = 0;\r\n str = str.replace('.', '');\r\n y = new BigNumber(baseIn);\r\n x = y.pow(str.length - i);\r\n POW_PRECISION = k;\r\n\r\n // Convert str as if an integer, then restore the fraction part by dividing the\r\n // result by its base raised to a power.\r\n\r\n y.c = toBaseOut(toFixedPoint(coeffToString(x.c), x.e, '0'),\r\n 10, baseOut, decimal);\r\n y.e = y.c.length;\r\n }\r\n\r\n // Convert the number as integer.\r\n\r\n xc = toBaseOut(str, baseIn, baseOut, callerIsToString\r\n ? (alphabet = ALPHABET, decimal)\r\n : (alphabet = decimal, ALPHABET));\r\n\r\n // xc now represents str as an integer and converted to baseOut. e is the exponent.\r\n e = k = xc.length;\r\n\r\n // Remove trailing zeros.\r\n for (; xc[--k] == 0; xc.pop());\r\n\r\n // Zero?\r\n if (!xc[0]) return alphabet.charAt(0);\r\n\r\n // Does str represent an integer? If so, no need for the division.\r\n if (i < 0) {\r\n --e;\r\n } else {\r\n x.c = xc;\r\n x.e = e;\r\n\r\n // The sign is needed for correct rounding.\r\n x.s = sign;\r\n x = div(x, y, dp, rm, baseOut);\r\n xc = x.c;\r\n r = x.r;\r\n e = x.e;\r\n }\r\n\r\n // xc now represents str converted to baseOut.\r\n\r\n // THe index of the rounding digit.\r\n d = e + dp + 1;\r\n\r\n // The rounding digit: the digit to the right of the digit that may be rounded up.\r\n i = xc[d];\r\n\r\n // Look at the rounding digits and mode to determine whether to round up.\r\n\r\n k = baseOut / 2;\r\n r = r || d < 0 || xc[d + 1] != null;\r\n\r\n r = rm < 4 ? (i != null || r) && (rm == 0 || rm == (x.s < 0 ? 3 : 2))\r\n : i > k || i == k &&(rm == 4 || r || rm == 6 && xc[d - 1] & 1 ||\r\n rm == (x.s < 0 ? 8 : 7));\r\n\r\n // If the index of the rounding digit is not greater than zero, or xc represents\r\n // zero, then the result of the base conversion is zero or, if rounding up, a value\r\n // such as 0.00001.\r\n if (d < 1 || !xc[0]) {\r\n\r\n // 1^-dp or 0\r\n str = r ? toFixedPoint(alphabet.charAt(1), -dp, alphabet.charAt(0)) : alphabet.charAt(0);\r\n } else {\r\n\r\n // Truncate xc to the required number of decimal places.\r\n xc.length = d;\r\n\r\n // Round up?\r\n if (r) {\r\n\r\n // Rounding up may mean the previous digit has to be rounded up and so on.\r\n for (--baseOut; ++xc[--d] > baseOut;) {\r\n xc[d] = 0;\r\n\r\n if (!d) {\r\n ++e;\r\n xc = [1].concat(xc);\r\n }\r\n }\r\n }\r\n\r\n // Determine trailing zeros.\r\n for (k = xc.length; !xc[--k];);\r\n\r\n // E.g. [4, 11, 15] becomes 4bf.\r\n for (i = 0, str = ''; i <= k; str += alphabet.charAt(xc[i++]));\r\n\r\n // Add leading zeros, decimal point and trailing zeros as required.\r\n str = toFixedPoint(str, e, alphabet.charAt(0));\r\n }\r\n\r\n // The caller will add the sign.\r\n return str;\r\n };\r\n })();\r\n\r\n\r\n // Perform division in the specified base. Called by div and convertBase.\r\n div = (function () {\r\n\r\n // Assume non-zero x and k.\r\n function multiply(x, k, base) {\r\n var m, temp, xlo, xhi,\r\n carry = 0,\r\n i = x.length,\r\n klo = k % SQRT_BASE,\r\n khi = k / SQRT_BASE | 0;\r\n\r\n for (x = x.slice(); i--;) {\r\n xlo = x[i] % SQRT_BASE;\r\n xhi = x[i] / SQRT_BASE | 0;\r\n m = khi * xlo + xhi * klo;\r\n temp = klo * xlo + ((m % SQRT_BASE) * SQRT_BASE) + carry;\r\n carry = (temp / base | 0) + (m / SQRT_BASE | 0) + khi * xhi;\r\n x[i] = temp % base;\r\n }\r\n\r\n if (carry) x = [carry].concat(x);\r\n\r\n return x;\r\n }\r\n\r\n function compare(a, b, aL, bL) {\r\n var i, cmp;\r\n\r\n if (aL != bL) {\r\n cmp = aL > bL ? 1 : -1;\r\n } else {\r\n\r\n for (i = cmp = 0; i < aL; i++) {\r\n\r\n if (a[i] != b[i]) {\r\n cmp = a[i] > b[i] ? 1 : -1;\r\n break;\r\n }\r\n }\r\n }\r\n\r\n return cmp;\r\n }\r\n\r\n function subtract(a, b, aL, base) {\r\n var i = 0;\r\n\r\n // Subtract b from a.\r\n for (; aL--;) {\r\n a[aL] -= i;\r\n i = a[aL] < b[aL] ? 1 : 0;\r\n a[aL] = i * base + a[aL] - b[aL];\r\n }\r\n\r\n // Remove leading zeros.\r\n for (; !a[0] && a.length > 1; a.splice(0, 1));\r\n }\r\n\r\n // x: dividend, y: divisor.\r\n return function (x, y, dp, rm, base) {\r\n var cmp, e, i, more, n, prod, prodL, q, qc, rem, remL, rem0, xi, xL, yc0,\r\n yL, yz,\r\n s = x.s == y.s ? 1 : -1,\r\n xc = x.c,\r\n yc = y.c;\r\n\r\n // Either NaN, Infinity or 0?\r\n if (!xc || !xc[0] || !yc || !yc[0]) {\r\n\r\n return new BigNumber(\r\n\r\n // Return NaN if either NaN, or both Infinity or 0.\r\n !x.s || !y.s || (xc ? yc && xc[0] == yc[0] : !yc) ? NaN :\r\n\r\n // Return \u00B10 if x is \u00B10 or y is \u00B1Infinity, or return \u00B1Infinity as y is \u00B10.\r\n xc && xc[0] == 0 || !yc ? s * 0 : s / 0\r\n );\r\n }\r\n\r\n q = new BigNumber(s);\r\n qc = q.c = [];\r\n e = x.e - y.e;\r\n s = dp + e + 1;\r\n\r\n if (!base) {\r\n base = BASE;\r\n e = bitFloor(x.e / LOG_BASE) - bitFloor(y.e / LOG_BASE);\r\n s = s / LOG_BASE | 0;\r\n }\r\n\r\n // Result exponent may be one less then the current value of e.\r\n // The coefficients of the BigNumbers from convertBase may have trailing zeros.\r\n for (i = 0; yc[i] == (xc[i] || 0); i++);\r\n\r\n if (yc[i] > (xc[i] || 0)) e--;\r\n\r\n if (s < 0) {\r\n qc.push(1);\r\n more = true;\r\n } else {\r\n xL = xc.length;\r\n yL = yc.length;\r\n i = 0;\r\n s += 2;\r\n\r\n // Normalise xc and yc so highest order digit of yc is >= base / 2.\r\n\r\n n = mathfloor(base / (yc[0] + 1));\r\n\r\n // Not necessary, but to handle odd bases where yc[0] == (base / 2) - 1.\r\n // if (n > 1 || n++ == 1 && yc[0] < base / 2) {\r\n if (n > 1) {\r\n yc = multiply(yc, n, base);\r\n xc = multiply(xc, n, base);\r\n yL = yc.length;\r\n xL = xc.length;\r\n }\r\n\r\n xi = yL;\r\n rem = xc.slice(0, yL);\r\n remL = rem.length;\r\n\r\n // Add zeros to make remainder as long as divisor.\r\n for (; remL < yL; rem[remL++] = 0);\r\n yz = yc.slice();\r\n yz = [0].concat(yz);\r\n yc0 = yc[0];\r\n if (yc[1] >= base / 2) yc0++;\r\n // Not necessary, but to prevent trial digit n > base, when using base 3.\r\n // else if (base == 3 && yc0 == 1) yc0 = 1 + 1e-15;\r\n\r\n do {\r\n n = 0;\r\n\r\n // Compare divisor and remainder.\r\n cmp = compare(yc, rem, yL, remL);\r\n\r\n // If divisor < remainder.\r\n if (cmp < 0) {\r\n\r\n // Calculate trial digit, n.\r\n\r\n rem0 = rem[0];\r\n if (yL != remL) rem0 = rem0 * base + (rem[1] || 0);\r\n\r\n // n is how many times the divisor goes into the current remainder.\r\n n = mathfloor(rem0 / yc0);\r\n\r\n // Algorithm:\r\n // product = divisor multiplied by trial digit (n).\r\n // Compare product and remainder.\r\n // If product is greater than remainder:\r\n // Subtract divisor from product, decrement trial digit.\r\n // Subtract product from remainder.\r\n // If product was less than remainder at the last compare:\r\n // Compare new remainder and divisor.\r\n // If remainder is greater than divisor:\r\n // Subtract divisor from remainder, increment trial digit.\r\n\r\n if (n > 1) {\r\n\r\n // n may be > base only when base is 3.\r\n if (n >= base) n = base - 1;\r\n\r\n // product = divisor * trial digit.\r\n prod = multiply(yc, n, base);\r\n prodL = prod.length;\r\n remL = rem.length;\r\n\r\n // Compare product and remainder.\r\n // If product > remainder then trial digit n too high.\r\n // n is 1 too high about 5% of the time, and is not known to have\r\n // ever been more than 1 too high.\r\n while (compare(prod, rem, prodL, remL) == 1) {\r\n n--;\r\n\r\n // Subtract divisor from product.\r\n subtract(prod, yL < prodL ? yz : yc, prodL, base);\r\n prodL = prod.length;\r\n cmp = 1;\r\n }\r\n } else {\r\n\r\n // n is 0 or 1, cmp is -1.\r\n // If n is 0, there is no need to compare yc and rem again below,\r\n // so change cmp to 1 to avoid it.\r\n // If n is 1, leave cmp as -1, so yc and rem are compared again.\r\n if (n == 0) {\r\n\r\n // divisor < remainder, so n must be at least 1.\r\n cmp = n = 1;\r\n }\r\n\r\n // product = divisor\r\n prod = yc.slice();\r\n prodL = prod.length;\r\n }\r\n\r\n if (prodL < remL) prod = [0].concat(prod);\r\n\r\n // Subtract product from remainder.\r\n subtract(rem, prod, remL, base);\r\n remL = rem.length;\r\n\r\n // If product was < remainder.\r\n if (cmp == -1) {\r\n\r\n // Compare divisor and new remainder.\r\n // If divisor < new remainder, subtract divisor from remainder.\r\n // Trial digit n too low.\r\n // n is 1 too low about 5% of the time, and very rarely 2 too low.\r\n while (compare(yc, rem, yL, remL) < 1) {\r\n n++;\r\n\r\n // Subtract divisor from remainder.\r\n subtract(rem, yL < remL ? yz : yc, remL, base);\r\n remL = rem.length;\r\n }\r\n }\r\n } else if (cmp === 0) {\r\n n++;\r\n rem = [0];\r\n } // else cmp === 1 and n will be 0\r\n\r\n // Add the next digit, n, to the result array.\r\n qc[i++] = n;\r\n\r\n // Update the remainder.\r\n if (rem[0]) {\r\n rem[remL++] = xc[xi] || 0;\r\n } else {\r\n rem = [xc[xi]];\r\n remL = 1;\r\n }\r\n } while ((xi++ < xL || rem[0] != null) && s--);\r\n\r\n more = rem[0] != null;\r\n\r\n // Leading zero?\r\n if (!qc[0]) qc.splice(0, 1);\r\n }\r\n\r\n if (base == BASE) {\r\n\r\n // To calculate q.e, first get the number of digits of qc[0].\r\n for (i = 1, s = qc[0]; s >= 10; s /= 10, i++);\r\n\r\n round(q, dp + (q.e = i + e * LOG_BASE - 1) + 1, rm, more);\r\n\r\n // Caller is convertBase.\r\n } else {\r\n q.e = e;\r\n q.r = +more;\r\n }\r\n\r\n return q;\r\n };\r\n })();\r\n\r\n\r\n /*\r\n * Return a string representing the value of BigNumber n in fixed-point or exponential\r\n * notation rounded to the specified decimal places or significant digits.\r\n *\r\n * n: a BigNumber.\r\n * i: the index of the last digit required (i.e. the digit that may be rounded up).\r\n * rm: the rounding mode.\r\n * id: 1 (toExponential) or 2 (toPrecision).\r\n */\r\n function format(n, i, rm, id) {\r\n var c0, e, ne, len, str;\r\n\r\n if (rm == null) rm = ROUNDING_MODE;\r\n else intCheck(rm, 0, 8);\r\n\r\n if (!n.c) return n.toString();\r\n\r\n c0 = n.c[0];\r\n ne = n.e;\r\n\r\n if (i == null) {\r\n str = coeffToString(n.c);\r\n str = id == 1 || id == 2 && (ne <= TO_EXP_NEG || ne >= TO_EXP_POS)\r\n ? toExponential(str, ne)\r\n : toFixedPoint(str, ne, '0');\r\n } else {\r\n n = round(new BigNumber(n), i, rm);\r\n\r\n // n.e may have changed if the value was rounded up.\r\n e = n.e;\r\n\r\n str = coeffToString(n.c);\r\n len = str.length;\r\n\r\n // toPrecision returns exponential notation if the number of significant digits\r\n // specified is less than the number of digits necessary to represent the integer\r\n // part of the value in fixed-point notation.\r\n\r\n // Exponential notation.\r\n if (id == 1 || id == 2 && (i <= e || e <= TO_EXP_NEG)) {\r\n\r\n // Append zeros?\r\n for (; len < i; str += '0', len++);\r\n str = toExponential(str, e);\r\n\r\n // Fixed-point notation.\r\n } else {\r\n i -= ne;\r\n str = toFixedPoint(str, e, '0');\r\n\r\n // Append zeros?\r\n if (e + 1 > len) {\r\n if (--i > 0) for (str += '.'; i--; str += '0');\r\n } else {\r\n i += e - len;\r\n if (i > 0) {\r\n if (e + 1 == len) str += '.';\r\n for (; i--; str += '0');\r\n }\r\n }\r\n }\r\n }\r\n\r\n return n.s < 0 && c0 ? '-' + str : str;\r\n }\r\n\r\n\r\n // Handle BigNumber.max and BigNumber.min.\r\n function maxOrMin(args, method) {\r\n var n,\r\n i = 1,\r\n m = new BigNumber(args[0]);\r\n\r\n for (; i < args.length; i++) {\r\n n = new BigNumber(args[i]);\r\n\r\n // If any number is NaN, return NaN.\r\n if (!n.s) {\r\n m = n;\r\n break;\r\n } else if (method.call(m, n)) {\r\n m = n;\r\n }\r\n }\r\n\r\n return m;\r\n }\r\n\r\n\r\n /*\r\n * Strip trailing zeros, calculate base 10 exponent and check against MIN_EXP and MAX_EXP.\r\n * Called by minus, plus and times.\r\n */\r\n function normalise(n, c, e) {\r\n var i = 1,\r\n j = c.length;\r\n\r\n // Remove trailing zeros.\r\n for (; !c[--j]; c.pop());\r\n\r\n // Calculate the base 10 exponent. First get the number of digits of c[0].\r\n for (j = c[0]; j >= 10; j /= 10, i++);\r\n\r\n // Overflow?\r\n if ((e = i + e * LOG_BASE - 1) > MAX_EXP) {\r\n\r\n // Infinity.\r\n n.c = n.e = null;\r\n\r\n // Underflow?\r\n } else if (e < MIN_EXP) {\r\n\r\n // Zero.\r\n n.c = [n.e = 0];\r\n } else {\r\n n.e = e;\r\n n.c = c;\r\n }\r\n\r\n return n;\r\n }\r\n\r\n\r\n // Handle values that fail the validity test in BigNumber.\r\n parseNumeric = (function () {\r\n var basePrefix = /^(-?)0([xbo])(?=\\w[\\w.]*$)/i,\r\n dotAfter = /^([^.]+)\\.$/,\r\n dotBefore = /^\\.([^.]+)$/,\r\n isInfinityOrNaN = /^-?(Infinity|NaN)$/,\r\n whitespaceOrPlus = /^\\s*\\+(?=[\\w.])|^\\s+|\\s+$/g;\r\n\r\n return function (x, str, isNum, b) {\r\n var base,\r\n s = isNum ? str : str.replace(whitespaceOrPlus, '');\r\n\r\n // No exception on \u00B1Infinity or NaN.\r\n if (isInfinityOrNaN.test(s)) {\r\n x.s = isNaN(s) ? null : s < 0 ? -1 : 1;\r\n } else {\r\n if (!isNum) {\r\n\r\n // basePrefix = /^(-?)0([xbo])(?=\\w[\\w.]*$)/i\r\n s = s.replace(basePrefix, function (m, p1, p2) {\r\n base = (p2 = p2.toLowerCase()) == 'x' ? 16 : p2 == 'b' ? 2 : 8;\r\n return !b || b == base ? p1 : m;\r\n });\r\n\r\n if (b) {\r\n base = b;\r\n\r\n // E.g. '1.' to '1', '.1' to '0.1'\r\n s = s.replace(dotAfter, '$1').replace(dotBefore, '0.$1');\r\n }\r\n\r\n if (str != s) return new BigNumber(s, base);\r\n }\r\n\r\n // '[BigNumber Error] Not a number: {n}'\r\n // '[BigNumber Error] Not a base {b} number: {n}'\r\n if (BigNumber.DEBUG) {\r\n throw Error\r\n (bignumberError + 'Not a' + (b ? ' base ' + b : '') + ' number: ' + str);\r\n }\r\n\r\n // NaN\r\n x.s = null;\r\n }\r\n\r\n x.c = x.e = null;\r\n }\r\n })();\r\n\r\n\r\n /*\r\n * Round x to sd significant digits using rounding mode rm. Check for over/under-flow.\r\n * If r is truthy, it is known that there are more digits after the rounding digit.\r\n */\r\n function round(x, sd, rm, r) {\r\n var d, i, j, k, n, ni, rd,\r\n xc = x.c,\r\n pows10 = POWS_TEN;\r\n\r\n // if x is not Infinity or NaN...\r\n if (xc) {\r\n\r\n // rd is the rounding digit, i.e. the digit after the digit that may be rounded up.\r\n // n is a base 1e14 number, the value of the element of array x.c containing rd.\r\n // ni is the index of n within x.c.\r\n // d is the number of digits of n.\r\n // i is the index of rd within n including leading zeros.\r\n // j is the actual index of rd within n (if < 0, rd is a leading zero).\r\n out: {\r\n\r\n // Get the number of digits of the first element of xc.\r\n for (d = 1, k = xc[0]; k >= 10; k /= 10, d++);\r\n i = sd - d;\r\n\r\n // If the rounding digit is in the first element of xc...\r\n if (i < 0) {\r\n i += LOG_BASE;\r\n j = sd;\r\n n = xc[ni = 0];\r\n\r\n // Get the rounding digit at index j of n.\r\n rd = n / pows10[d - j - 1] % 10 | 0;\r\n } else {\r\n ni = mathceil((i + 1) / LOG_BASE);\r\n\r\n if (ni >= xc.length) {\r\n\r\n if (r) {\r\n\r\n // Needed by sqrt.\r\n for (; xc.length <= ni; xc.push(0));\r\n n = rd = 0;\r\n d = 1;\r\n i %= LOG_BASE;\r\n j = i - LOG_BASE + 1;\r\n } else {\r\n break out;\r\n }\r\n } else {\r\n n = k = xc[ni];\r\n\r\n // Get the number of digits of n.\r\n for (d = 1; k >= 10; k /= 10, d++);\r\n\r\n // Get the index of rd within n.\r\n i %= LOG_BASE;\r\n\r\n // Get the index of rd within n, adjusted for leading zeros.\r\n // The number of leading zeros of n is given by LOG_BASE - d.\r\n j = i - LOG_BASE + d;\r\n\r\n // Get the rounding digit at index j of n.\r\n rd = j < 0 ? 0 : n / pows10[d - j - 1] % 10 | 0;\r\n }\r\n }\r\n\r\n r = r || sd < 0 ||\r\n\r\n // Are there any non-zero digits after the rounding digit?\r\n // The expression n % pows10[d - j - 1] returns all digits of n to the right\r\n // of the digit at j, e.g. if n is 908714 and j is 2, the expression gives 714.\r\n xc[ni + 1] != null || (j < 0 ? n : n % pows10[d - j - 1]);\r\n\r\n r = rm < 4\r\n ? (rd || r) && (rm == 0 || rm == (x.s < 0 ? 3 : 2))\r\n : rd > 5 || rd == 5 && (rm == 4 || r || rm == 6 &&\r\n\r\n // Check whether the digit to the left of the rounding digit is odd.\r\n ((i > 0 ? j > 0 ? n / pows10[d - j] : 0 : xc[ni - 1]) % 10) & 1 ||\r\n rm == (x.s < 0 ? 8 : 7));\r\n\r\n if (sd < 1 || !xc[0]) {\r\n xc.length = 0;\r\n\r\n if (r) {\r\n\r\n // Convert sd to decimal places.\r\n sd -= x.e + 1;\r\n\r\n // 1, 0.1, 0.01, 0.001, 0.0001 etc.\r\n xc[0] = pows10[(LOG_BASE - sd % LOG_BASE) % LOG_BASE];\r\n x.e = -sd || 0;\r\n } else {\r\n\r\n // Zero.\r\n xc[0] = x.e = 0;\r\n }\r\n\r\n return x;\r\n }\r\n\r\n // Remove excess digits.\r\n if (i == 0) {\r\n xc.length = ni;\r\n k = 1;\r\n ni--;\r\n } else {\r\n xc.length = ni + 1;\r\n k = pows10[LOG_BASE - i];\r\n\r\n // E.g. 56700 becomes 56000 if 7 is the rounding digit.\r\n // j > 0 means i > number of leading zeros of n.\r\n xc[ni] = j > 0 ? mathfloor(n / pows10[d - j] % pows10[j]) * k : 0;\r\n }\r\n\r\n // Round up?\r\n if (r) {\r\n\r\n for (; ;) {\r\n\r\n // If the digit to be rounded up is in the first element of xc...\r\n if (ni == 0) {\r\n\r\n // i will be the length of xc[0] before k is added.\r\n for (i = 1, j = xc[0]; j >= 10; j /= 10, i++);\r\n j = xc[0] += k;\r\n for (k = 1; j >= 10; j /= 10, k++);\r\n\r\n // if i != k the length has increased.\r\n if (i != k) {\r\n x.e++;\r\n if (xc[0] == BASE) xc[0] = 1;\r\n }\r\n\r\n break;\r\n } else {\r\n xc[ni] += k;\r\n if (xc[ni] != BASE) break;\r\n xc[ni--] = 0;\r\n k = 1;\r\n }\r\n }\r\n }\r\n\r\n // Remove trailing zeros.\r\n for (i = xc.length; xc[--i] === 0; xc.pop());\r\n }\r\n\r\n // Overflow? Infinity.\r\n if (x.e > MAX_EXP) {\r\n x.c = x.e = null;\r\n\r\n // Underflow? Zero.\r\n } else if (x.e < MIN_EXP) {\r\n x.c = [x.e = 0];\r\n }\r\n }\r\n\r\n return x;\r\n }\r\n\r\n\r\n function valueOf(n) {\r\n var str,\r\n e = n.e;\r\n\r\n if (e === null) return n.toString();\r\n\r\n str = coeffToString(n.c);\r\n\r\n str = e <= TO_EXP_NEG || e >= TO_EXP_POS\r\n ? toExponential(str, e)\r\n : toFixedPoint(str, e, '0');\r\n\r\n return n.s < 0 ? '-' + str : str;\r\n }\r\n\r\n\r\n // PROTOTYPE/INSTANCE METHODS\r\n\r\n\r\n /*\r\n * Return a new BigNumber whose value is the absolute value of this BigNumber.\r\n */\r\n P.absoluteValue = P.abs = function () {\r\n var x = new BigNumber(this);\r\n if (x.s < 0) x.s = 1;\r\n return x;\r\n };\r\n\r\n\r\n /*\r\n * Return\r\n * 1 if the value of this BigNumber is greater than the value of BigNumber(y, b),\r\n * -1 if the value of this BigNumber is less than the value of BigNumber(y, b),\r\n * 0 if they have the same value,\r\n * or null if the value of either is NaN.\r\n */\r\n P.comparedTo = function (y, b) {\r\n return compare(this, new BigNumber(y, b));\r\n };\r\n\r\n\r\n /*\r\n * If dp is undefined or null or true or false, return the number of decimal places of the\r\n * value of this BigNumber, or null if the value of this BigNumber is \u00B1Infinity or NaN.\r\n *\r\n * Otherwise, if dp is a number, return a new BigNumber whose value is the value of this\r\n * BigNumber rounded to a maximum of dp decimal places using rounding mode rm, or\r\n * ROUNDING_MODE if rm is omitted.\r\n *\r\n * [dp] {number} Decimal places: integer, 0 to MAX inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {dp|rm}'\r\n */\r\n P.decimalPlaces = P.dp = function (dp, rm) {\r\n var c, n, v,\r\n x = this;\r\n\r\n if (dp != null) {\r\n intCheck(dp, 0, MAX);\r\n if (rm == null) rm = ROUNDING_MODE;\r\n else intCheck(rm, 0, 8);\r\n\r\n return round(new BigNumber(x), dp + x.e + 1, rm);\r\n }\r\n\r\n if (!(c = x.c)) return null;\r\n n = ((v = c.length - 1) - bitFloor(this.e / LOG_BASE)) * LOG_BASE;\r\n\r\n // Subtract the number of trailing zeros of the last number.\r\n if (v = c[v]) for (; v % 10 == 0; v /= 10, n--);\r\n if (n < 0) n = 0;\r\n\r\n return n;\r\n };\r\n\r\n\r\n /*\r\n * n / 0 = I\r\n * n / N = N\r\n * n / I = 0\r\n * 0 / n = 0\r\n * 0 / 0 = N\r\n * 0 / N = N\r\n * 0 / I = 0\r\n * N / n = N\r\n * N / 0 = N\r\n * N / N = N\r\n * N / I = N\r\n * I / n = I\r\n * I / 0 = I\r\n * I / N = N\r\n * I / I = N\r\n *\r\n * Return a new BigNumber whose value is the value of this BigNumber divided by the value of\r\n * BigNumber(y, b), rounded according to DECIMAL_PLACES and ROUNDING_MODE.\r\n */\r\n P.dividedBy = P.div = function (y, b) {\r\n return div(this, new BigNumber(y, b), DECIMAL_PLACES, ROUNDING_MODE);\r\n };\r\n\r\n\r\n /*\r\n * Return a new BigNumber whose value is the integer part of dividing the value of this\r\n * BigNumber by the value of BigNumber(y, b).\r\n */\r\n P.dividedToIntegerBy = P.idiv = function (y, b) {\r\n return div(this, new BigNumber(y, b), 0, 1);\r\n };\r\n\r\n\r\n /*\r\n * Return a BigNumber whose value is the value of this BigNumber exponentiated by n.\r\n *\r\n * If m is present, return the result modulo m.\r\n * If n is negative round according to DECIMAL_PLACES and ROUNDING_MODE.\r\n * If POW_PRECISION is non-zero and m is not present, round to POW_PRECISION using ROUNDING_MODE.\r\n *\r\n * The modular power operation works efficiently when x, n, and m are integers, otherwise it\r\n * is equivalent to calculating x.exponentiatedBy(n).modulo(m) with a POW_PRECISION of 0.\r\n *\r\n * n {number|string|BigNumber} The exponent. An integer.\r\n * [m] {number|string|BigNumber} The modulus.\r\n *\r\n * '[BigNumber Error] Exponent not an integer: {n}'\r\n */\r\n P.exponentiatedBy = P.pow = function (n, m) {\r\n var half, isModExp, i, k, more, nIsBig, nIsNeg, nIsOdd, y,\r\n x = this;\r\n\r\n n = new BigNumber(n);\r\n\r\n // Allow NaN and \u00B1Infinity, but not other non-integers.\r\n if (n.c && !n.isInteger()) {\r\n throw Error\r\n (bignumberError + 'Exponent not an integer: ' + valueOf(n));\r\n }\r\n\r\n if (m != null) m = new BigNumber(m);\r\n\r\n // Exponent of MAX_SAFE_INTEGER is 15.\r\n nIsBig = n.e > 14;\r\n\r\n // If x is NaN, \u00B1Infinity, \u00B10 or \u00B11, or n is \u00B1Infinity, NaN or \u00B10.\r\n if (!x.c || !x.c[0] || x.c[0] == 1 && !x.e && x.c.length == 1 || !n.c || !n.c[0]) {\r\n\r\n // The sign of the result of pow when x is negative depends on the evenness of n.\r\n // If +n overflows to \u00B1Infinity, the evenness of n would be not be known.\r\n y = new BigNumber(Math.pow(+valueOf(x), nIsBig ? n.s * (2 - isOdd(n)) : +valueOf(n)));\r\n return m ? y.mod(m) : y;\r\n }\r\n\r\n nIsNeg = n.s < 0;\r\n\r\n if (m) {\r\n\r\n // x % m returns NaN if abs(m) is zero, or m is NaN.\r\n if (m.c ? !m.c[0] : !m.s) return new BigNumber(NaN);\r\n\r\n isModExp = !nIsNeg && x.isInteger() && m.isInteger();\r\n\r\n if (isModExp) x = x.mod(m);\r\n\r\n // Overflow to \u00B1Infinity: >=2**1e10 or >=1.0000024**1e15.\r\n // Underflow to \u00B10: <=0.79**1e10 or <=0.9999975**1e15.\r\n } else if (n.e > 9 && (x.e > 0 || x.e < -1 || (x.e == 0\r\n // [1, 240000000]\r\n ? x.c[0] > 1 || nIsBig && x.c[1] >= 24e7\r\n // [80000000000000] [99999750000000]\r\n : x.c[0] < 8e13 || nIsBig && x.c[0] <= 9999975e7))) {\r\n\r\n // If x is negative and n is odd, k = -0, else k = 0.\r\n k = x.s < 0 && isOdd(n) ? -0 : 0;\r\n\r\n // If x >= 1, k = \u00B1Infinity.\r\n if (x.e > -1) k = 1 / k;\r\n\r\n // If n is negative return \u00B10, else return \u00B1Infinity.\r\n return new BigNumber(nIsNeg ? 1 / k : k);\r\n\r\n } else if (POW_PRECISION) {\r\n\r\n // Truncating each coefficient array to a length of k after each multiplication\r\n // equates to truncating significant digits to POW_PRECISION + [28, 41],\r\n // i.e. there will be a minimum of 28 guard digits retained.\r\n k = mathceil(POW_PRECISION / LOG_BASE + 2);\r\n }\r\n\r\n if (nIsBig) {\r\n half = new BigNumber(0.5);\r\n if (nIsNeg) n.s = 1;\r\n nIsOdd = isOdd(n);\r\n } else {\r\n i = Math.abs(+valueOf(n));\r\n nIsOdd = i % 2;\r\n }\r\n\r\n y = new BigNumber(ONE);\r\n\r\n // Performs 54 loop iterations for n of 9007199254740991.\r\n for (; ;) {\r\n\r\n if (nIsOdd) {\r\n y = y.times(x);\r\n if (!y.c) break;\r\n\r\n if (k) {\r\n if (y.c.length > k) y.c.length = k;\r\n } else if (isModExp) {\r\n y = y.mod(m); //y = y.minus(div(y, m, 0, MODULO_MODE).times(m));\r\n }\r\n }\r\n\r\n if (i) {\r\n i = mathfloor(i / 2);\r\n if (i === 0) break;\r\n nIsOdd = i % 2;\r\n } else {\r\n n = n.times(half);\r\n round(n, n.e + 1, 1);\r\n\r\n if (n.e > 14) {\r\n nIsOdd = isOdd(n);\r\n } else {\r\n i = +valueOf(n);\r\n if (i === 0) break;\r\n nIsOdd = i % 2;\r\n }\r\n }\r\n\r\n x = x.times(x);\r\n\r\n if (k) {\r\n if (x.c && x.c.length > k) x.c.length = k;\r\n } else if (isModExp) {\r\n x = x.mod(m); //x = x.minus(div(x, m, 0, MODULO_MODE).times(m));\r\n }\r\n }\r\n\r\n if (isModExp) return y;\r\n if (nIsNeg) y = ONE.div(y);\r\n\r\n return m ? y.mod(m) : k ? round(y, POW_PRECISION, ROUNDING_MODE, more) : y;\r\n };\r\n\r\n\r\n /*\r\n * Return a new BigNumber whose value is the value of this BigNumber rounded to an integer\r\n * using rounding mode rm, or ROUNDING_MODE if rm is omitted.\r\n *\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {rm}'\r\n */\r\n P.integerValue = function (rm) {\r\n var n = new BigNumber(this);\r\n if (rm == null) rm = ROUNDING_MODE;\r\n else intCheck(rm, 0, 8);\r\n return round(n, n.e + 1, rm);\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is equal to the value of BigNumber(y, b),\r\n * otherwise return false.\r\n */\r\n P.isEqualTo = P.eq = function (y, b) {\r\n return compare(this, new BigNumber(y, b)) === 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is a finite number, otherwise return false.\r\n */\r\n P.isFinite = function () {\r\n return !!this.c;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is greater than the value of BigNumber(y, b),\r\n * otherwise return false.\r\n */\r\n P.isGreaterThan = P.gt = function (y, b) {\r\n return compare(this, new BigNumber(y, b)) > 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is greater than or equal to the value of\r\n * BigNumber(y, b), otherwise return false.\r\n */\r\n P.isGreaterThanOrEqualTo = P.gte = function (y, b) {\r\n return (b = compare(this, new BigNumber(y, b))) === 1 || b === 0;\r\n\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is an integer, otherwise return false.\r\n */\r\n P.isInteger = function () {\r\n return !!this.c && bitFloor(this.e / LOG_BASE) > this.c.length - 2;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is less than the value of BigNumber(y, b),\r\n * otherwise return false.\r\n */\r\n P.isLessThan = P.lt = function (y, b) {\r\n return compare(this, new BigNumber(y, b)) < 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is less than or equal to the value of\r\n * BigNumber(y, b), otherwise return false.\r\n */\r\n P.isLessThanOrEqualTo = P.lte = function (y, b) {\r\n return (b = compare(this, new BigNumber(y, b))) === -1 || b === 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is NaN, otherwise return false.\r\n */\r\n P.isNaN = function () {\r\n return !this.s;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is negative, otherwise return false.\r\n */\r\n P.isNegative = function () {\r\n return this.s < 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is positive, otherwise return false.\r\n */\r\n P.isPositive = function () {\r\n return this.s > 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is 0 or -0, otherwise return false.\r\n */\r\n P.isZero = function () {\r\n return !!this.c && this.c[0] == 0;\r\n };\r\n\r\n\r\n /*\r\n * n - 0 = n\r\n * n - N = N\r\n * n - I = -I\r\n * 0 - n = -n\r\n * 0 - 0 = 0\r\n * 0 - N = N\r\n * 0 - I = -I\r\n * N - n = N\r\n * N - 0 = N\r\n * N - N = N\r\n * N - I = N\r\n * I - n = I\r\n * I - 0 = I\r\n * I - N = N\r\n * I - I = N\r\n *\r\n * Return a new BigNumber whose value is the value of this BigNumber minus the value of\r\n * BigNumber(y, b).\r\n */\r\n P.minus = function (y, b) {\r\n var i, j, t, xLTy,\r\n x = this,\r\n a = x.s;\r\n\r\n y = new BigNumber(y, b);\r\n b = y.s;\r\n\r\n // Either NaN?\r\n if (!a || !b) return new BigNumber(NaN);\r\n\r\n // Signs differ?\r\n if (a != b) {\r\n y.s = -b;\r\n return x.plus(y);\r\n }\r\n\r\n var xe = x.e / LOG_BASE,\r\n ye = y.e / LOG_BASE,\r\n xc = x.c,\r\n yc = y.c;\r\n\r\n if (!xe || !ye) {\r\n\r\n // Either Infinity?\r\n if (!xc || !yc) return xc ? (y.s = -b, y) : new BigNumber(yc ? x : NaN);\r\n\r\n // Either zero?\r\n if (!xc[0] || !yc[0]) {\r\n\r\n // Return y if y is non-zero, x if x is non-zero, or zero if both are zero.\r\n return yc[0] ? (y.s = -b, y) : new BigNumber(xc[0] ? x :\r\n\r\n // IEEE 754 (2008) 6.3: n - n = -0 when rounding to -Infinity\r\n ROUNDING_MODE == 3 ? -0 : 0);\r\n }\r\n }\r\n\r\n xe = bitFloor(xe);\r\n ye = bitFloor(ye);\r\n xc = xc.slice();\r\n\r\n // Determine which is the bigger number.\r\n if (a = xe - ye) {\r\n\r\n if (xLTy = a < 0) {\r\n a = -a;\r\n t = xc;\r\n } else {\r\n ye = xe;\r\n t = yc;\r\n }\r\n\r\n t.reverse();\r\n\r\n // Prepend zeros to equalise exponents.\r\n for (b = a; b--; t.push(0));\r\n t.reverse();\r\n } else {\r\n\r\n // Exponents equal. Check digit by digit.\r\n j = (xLTy = (a = xc.length) < (b = yc.length)) ? a : b;\r\n\r\n for (a = b = 0; b < j; b++) {\r\n\r\n if (xc[b] != yc[b]) {\r\n xLTy = xc[b] < yc[b];\r\n break;\r\n }\r\n }\r\n }\r\n\r\n // x < y? Point xc to the array of the bigger number.\r\n if (xLTy) {\r\n t = xc;\r\n xc = yc;\r\n yc = t;\r\n y.s = -y.s;\r\n }\r\n\r\n b = (j = yc.length) - (i = xc.length);\r\n\r\n // Append zeros to xc if shorter.\r\n // No need to add zeros to yc if shorter as subtract only needs to start at yc.length.\r\n if (b > 0) for (; b--; xc[i++] = 0);\r\n b = BASE - 1;\r\n\r\n // Subtract yc from xc.\r\n for (; j > a;) {\r\n\r\n if (xc[--j] < yc[j]) {\r\n for (i = j; i && !xc[--i]; xc[i] = b);\r\n --xc[i];\r\n xc[j] += BASE;\r\n }\r\n\r\n xc[j] -= yc[j];\r\n }\r\n\r\n // Remove leading zeros and adjust exponent accordingly.\r\n for (; xc[0] == 0; xc.splice(0, 1), --ye);\r\n\r\n // Zero?\r\n if (!xc[0]) {\r\n\r\n // Following IEEE 754 (2008) 6.3,\r\n // n - n = +0 but n - n = -0 when rounding towards -Infinity.\r\n y.s = ROUNDING_MODE == 3 ? -1 : 1;\r\n y.c = [y.e = 0];\r\n return y;\r\n }\r\n\r\n // No need to check for Infinity as +x - +y != Infinity && -x - -y != Infinity\r\n // for finite x and y.\r\n return normalise(y, xc, ye);\r\n };\r\n\r\n\r\n /*\r\n * n % 0 = N\r\n * n % N = N\r\n * n % I = n\r\n * 0 % n = 0\r\n * -0 % n = -0\r\n * 0 % 0 = N\r\n * 0 % N = N\r\n * 0 % I = 0\r\n * N % n = N\r\n * N % 0 = N\r\n * N % N = N\r\n * N % I = N\r\n * I % n = N\r\n * I % 0 = N\r\n * I % N = N\r\n * I % I = N\r\n *\r\n * Return a new BigNumber whose value is the value of this BigNumber modulo the value of\r\n * BigNumber(y, b). The result depends on the value of MODULO_MODE.\r\n */\r\n P.modulo = P.mod = function (y, b) {\r\n var q, s,\r\n x = this;\r\n\r\n y = new BigNumber(y, b);\r\n\r\n // Return NaN if x is Infinity or NaN, or y is NaN or zero.\r\n if (!x.c || !y.s || y.c && !y.c[0]) {\r\n return new BigNumber(NaN);\r\n\r\n // Return x if y is Infinity or x is zero.\r\n } else if (!y.c || x.c && !x.c[0]) {\r\n return new BigNumber(x);\r\n }\r\n\r\n if (MODULO_MODE == 9) {\r\n\r\n // Euclidian division: q = sign(y) * floor(x / abs(y))\r\n // r = x - qy where 0 <= r < abs(y)\r\n s = y.s;\r\n y.s = 1;\r\n q = div(x, y, 0, 3);\r\n y.s = s;\r\n q.s *= s;\r\n } else {\r\n q = div(x, y, 0, MODULO_MODE);\r\n }\r\n\r\n y = x.minus(q.times(y));\r\n\r\n // To match JavaScript %, ensure sign of zero is sign of dividend.\r\n if (!y.c[0] && MODULO_MODE == 1) y.s = x.s;\r\n\r\n return y;\r\n };\r\n\r\n\r\n /*\r\n * n * 0 = 0\r\n * n * N = N\r\n * n * I = I\r\n * 0 * n = 0\r\n * 0 * 0 = 0\r\n * 0 * N = N\r\n * 0 * I = N\r\n * N * n = N\r\n * N * 0 = N\r\n * N * N = N\r\n * N * I = N\r\n * I * n = I\r\n * I * 0 = N\r\n * I * N = N\r\n * I * I = I\r\n *\r\n * Return a new BigNumber whose value is the value of this BigNumber multiplied by the value\r\n * of BigNumber(y, b).\r\n */\r\n P.multipliedBy = P.times = function (y, b) {\r\n var c, e, i, j, k, m, xcL, xlo, xhi, ycL, ylo, yhi, zc,\r\n base, sqrtBase,\r\n x = this,\r\n xc = x.c,\r\n yc = (y = new BigNumber(y, b)).c;\r\n\r\n // Either NaN, \u00B1Infinity or \u00B10?\r\n if (!xc || !yc || !xc[0] || !yc[0]) {\r\n\r\n // Return NaN if either is NaN, or one is 0 and the other is Infinity.\r\n if (!x.s || !y.s || xc && !xc[0] && !yc || yc && !yc[0] && !xc) {\r\n y.c = y.e = y.s = null;\r\n } else {\r\n y.s *= x.s;\r\n\r\n // Return \u00B1Infinity if either is \u00B1Infinity.\r\n if (!xc || !yc) {\r\n y.c = y.e = null;\r\n\r\n // Return \u00B10 if either is \u00B10.\r\n } else {\r\n y.c = [0];\r\n y.e = 0;\r\n }\r\n }\r\n\r\n return y;\r\n }\r\n\r\n e = bitFloor(x.e / LOG_BASE) + bitFloor(y.e / LOG_BASE);\r\n y.s *= x.s;\r\n xcL = xc.length;\r\n ycL = yc.length;\r\n\r\n // Ensure xc points to longer array and xcL to its length.\r\n if (xcL < ycL) {\r\n zc = xc;\r\n xc = yc;\r\n yc = zc;\r\n i = xcL;\r\n xcL = ycL;\r\n ycL = i;\r\n }\r\n\r\n // Initialise the result array with zeros.\r\n for (i = xcL + ycL, zc = []; i--; zc.push(0));\r\n\r\n base = BASE;\r\n sqrtBase = SQRT_BASE;\r\n\r\n for (i = ycL; --i >= 0;) {\r\n c = 0;\r\n ylo = yc[i] % sqrtBase;\r\n yhi = yc[i] / sqrtBase | 0;\r\n\r\n for (k = xcL, j = i + k; j > i;) {\r\n xlo = xc[--k] % sqrtBase;\r\n xhi = xc[k] / sqrtBase | 0;\r\n m = yhi * xlo + xhi * ylo;\r\n xlo = ylo * xlo + ((m % sqrtBase) * sqrtBase) + zc[j] + c;\r\n c = (xlo / base | 0) + (m / sqrtBase | 0) + yhi * xhi;\r\n zc[j--] = xlo % base;\r\n }\r\n\r\n zc[j] = c;\r\n }\r\n\r\n if (c) {\r\n ++e;\r\n } else {\r\n zc.splice(0, 1);\r\n }\r\n\r\n return normalise(y, zc, e);\r\n };\r\n\r\n\r\n /*\r\n * Return a new BigNumber whose value is the value of this BigNumber negated,\r\n * i.e. multiplied by -1.\r\n */\r\n P.negated = function () {\r\n var x = new BigNumber(this);\r\n x.s = -x.s || null;\r\n return x;\r\n };\r\n\r\n\r\n /*\r\n * n + 0 = n\r\n * n + N = N\r\n * n + I = I\r\n * 0 + n = n\r\n * 0 + 0 = 0\r\n * 0 + N = N\r\n * 0 + I = I\r\n * N + n = N\r\n * N + 0 = N\r\n * N + N = N\r\n * N + I = N\r\n * I + n = I\r\n * I + 0 = I\r\n * I + N = N\r\n * I + I = I\r\n *\r\n * Return a new BigNumber whose value is the value of this BigNumber plus the value of\r\n * BigNumber(y, b).\r\n */\r\n P.plus = function (y, b) {\r\n var t,\r\n x = this,\r\n a = x.s;\r\n\r\n y = new BigNumber(y, b);\r\n b = y.s;\r\n\r\n // Either NaN?\r\n if (!a || !b) return new BigNumber(NaN);\r\n\r\n // Signs differ?\r\n if (a != b) {\r\n y.s = -b;\r\n return x.minus(y);\r\n }\r\n\r\n var xe = x.e / LOG_BASE,\r\n ye = y.e / LOG_BASE,\r\n xc = x.c,\r\n yc = y.c;\r\n\r\n if (!xe || !ye) {\r\n\r\n // Return \u00B1Infinity if either \u00B1Infinity.\r\n if (!xc || !yc) return new BigNumber(a / 0);\r\n\r\n // Either zero?\r\n // Return y if y is non-zero, x if x is non-zero, or zero if both are zero.\r\n if (!xc[0] || !yc[0]) return yc[0] ? y : new BigNumber(xc[0] ? x : a * 0);\r\n }\r\n\r\n xe = bitFloor(xe);\r\n ye = bitFloor(ye);\r\n xc = xc.slice();\r\n\r\n // Prepend zeros to equalise exponents. Faster to use reverse then do unshifts.\r\n if (a = xe - ye) {\r\n if (a > 0) {\r\n ye = xe;\r\n t = yc;\r\n } else {\r\n a = -a;\r\n t = xc;\r\n }\r\n\r\n t.reverse();\r\n for (; a--; t.push(0));\r\n t.reverse();\r\n }\r\n\r\n a = xc.length;\r\n b = yc.length;\r\n\r\n // Point xc to the longer array, and b to the shorter length.\r\n if (a - b < 0) {\r\n t = yc;\r\n yc = xc;\r\n xc = t;\r\n b = a;\r\n }\r\n\r\n // Only start adding at yc.length - 1 as the further digits of xc can be ignored.\r\n for (a = 0; b;) {\r\n a = (xc[--b] = xc[b] + yc[b] + a) / BASE | 0;\r\n xc[b] = BASE === xc[b] ? 0 : xc[b] % BASE;\r\n }\r\n\r\n if (a) {\r\n xc = [a].concat(xc);\r\n ++ye;\r\n }\r\n\r\n // No need to check for zero, as +x + +y != 0 && -x + -y != 0\r\n // ye = MAX_EXP + 1 possible\r\n return normalise(y, xc, ye);\r\n };\r\n\r\n\r\n /*\r\n * If sd is undefined or null or true or false, return the number of significant digits of\r\n * the value of this BigNumber, or null if the value of this BigNumber is \u00B1Infinity or NaN.\r\n * If sd is true include integer-part trailing zeros in the count.\r\n *\r\n * Otherwise, if sd is a number, return a new BigNumber whose value is the value of this\r\n * BigNumber rounded to a maximum of sd significant digits using rounding mode rm, or\r\n * ROUNDING_MODE if rm is omitted.\r\n *\r\n * sd {number|boolean} number: significant digits: integer, 1 to MAX inclusive.\r\n * boolean: whether to count integer-part trailing zeros: true or false.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {sd|rm}'\r\n */\r\n P.precision = P.sd = function (sd, rm) {\r\n var c, n, v,\r\n x = this;\r\n\r\n if (sd != null && sd !== !!sd) {\r\n intCheck(sd, 1, MAX);\r\n if (rm == null) rm = ROUNDING_MODE;\r\n else intCheck(rm, 0, 8);\r\n\r\n return round(new BigNumber(x), sd, rm);\r\n }\r\n\r\n if (!(c = x.c)) return null;\r\n v = c.length - 1;\r\n n = v * LOG_BASE + 1;\r\n\r\n if (v = c[v]) {\r\n\r\n // Subtract the number of trailing zeros of the last element.\r\n for (; v % 10 == 0; v /= 10, n--);\r\n\r\n // Add the number of digits of the first element.\r\n for (v = c[0]; v >= 10; v /= 10, n++);\r\n }\r\n\r\n if (sd && x.e + 1 > n) n = x.e + 1;\r\n\r\n return n;\r\n };\r\n\r\n\r\n /*\r\n * Return a new BigNumber whose value is the value of this BigNumber shifted by k places\r\n * (powers of 10). Shift to the right if n > 0, and to the left if n < 0.\r\n *\r\n * k {number} Integer, -MAX_SAFE_INTEGER to MAX_SAFE_INTEGER inclusive.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {k}'\r\n */\r\n P.shiftedBy = function (k) {\r\n intCheck(k, -MAX_SAFE_INTEGER, MAX_SAFE_INTEGER);\r\n return this.times('1e' + k);\r\n };\r\n\r\n\r\n /*\r\n * sqrt(-n) = N\r\n * sqrt(N) = N\r\n * sqrt(-I) = N\r\n * sqrt(I) = I\r\n * sqrt(0) = 0\r\n * sqrt(-0) = -0\r\n *\r\n * Return a new BigNumber whose value is the square root of the value of this BigNumber,\r\n * rounded according to DECIMAL_PLACES and ROUNDING_MODE.\r\n */\r\n P.squareRoot = P.sqrt = function () {\r\n var m, n, r, rep, t,\r\n x = this,\r\n c = x.c,\r\n s = x.s,\r\n e = x.e,\r\n dp = DECIMAL_PLACES + 4,\r\n half = new BigNumber('0.5');\r\n\r\n // Negative/NaN/Infinity/zero?\r\n if (s !== 1 || !c || !c[0]) {\r\n return new BigNumber(!s || s < 0 && (!c || c[0]) ? NaN : c ? x : 1 / 0);\r\n }\r\n\r\n // Initial estimate.\r\n s = Math.sqrt(+valueOf(x));\r\n\r\n // Math.sqrt underflow/overflow?\r\n // Pass x to Math.sqrt as integer, then adjust the exponent of the result.\r\n if (s == 0 || s == 1 / 0) {\r\n n = coeffToString(c);\r\n if ((n.length + e) % 2 == 0) n += '0';\r\n s = Math.sqrt(+n);\r\n e = bitFloor((e + 1) / 2) - (e < 0 || e % 2);\r\n\r\n if (s == 1 / 0) {\r\n n = '5e' + e;\r\n } else {\r\n n = s.toExponential();\r\n n = n.slice(0, n.indexOf('e') + 1) + e;\r\n }\r\n\r\n r = new BigNumber(n);\r\n } else {\r\n r = new BigNumber(s + '');\r\n }\r\n\r\n // Check for zero.\r\n // r could be zero if MIN_EXP is changed after the this value was created.\r\n // This would cause a division by zero (x/t) and hence Infinity below, which would cause\r\n // coeffToString to throw.\r\n if (r.c[0]) {\r\n e = r.e;\r\n s = e + dp;\r\n if (s < 3) s = 0;\r\n\r\n // Newton-Raphson iteration.\r\n for (; ;) {\r\n t = r;\r\n r = half.times(t.plus(div(x, t, dp, 1)));\r\n\r\n if (coeffToString(t.c).slice(0, s) === (n = coeffToString(r.c)).slice(0, s)) {\r\n\r\n // The exponent of r may here be one less than the final result exponent,\r\n // e.g 0.0009999 (e-4) --> 0.001 (e-3), so adjust s so the rounding digits\r\n // are indexed correctly.\r\n if (r.e < e) --s;\r\n n = n.slice(s - 3, s + 1);\r\n\r\n // The 4th rounding digit may be in error by -1 so if the 4 rounding digits\r\n // are 9999 or 4999 (i.e. approaching a rounding boundary) continue the\r\n // iteration.\r\n if (n == '9999' || !rep && n == '4999') {\r\n\r\n // On the first iteration only, check to see if rounding up gives the\r\n // exact result as the nines may infinitely repeat.\r\n if (!rep) {\r\n round(t, t.e + DECIMAL_PLACES + 2, 0);\r\n\r\n if (t.times(t).eq(x)) {\r\n r = t;\r\n break;\r\n }\r\n }\r\n\r\n dp += 4;\r\n s += 4;\r\n rep = 1;\r\n } else {\r\n\r\n // If rounding digits are null, 0{0,4} or 50{0,3}, check for exact\r\n // result. If not, then there are further digits and m will be truthy.\r\n if (!+n || !+n.slice(1) && n.charAt(0) == '5') {\r\n\r\n // Truncate to the first rounding digit.\r\n round(r, r.e + DECIMAL_PLACES + 2, 1);\r\n m = !r.times(r).eq(x);\r\n }\r\n\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n\r\n return round(r, r.e + DECIMAL_PLACES + 1, ROUNDING_MODE, m);\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this BigNumber in exponential notation and\r\n * rounded using ROUNDING_MODE to dp fixed decimal places.\r\n *\r\n * [dp] {number} Decimal places. Integer, 0 to MAX inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {dp|rm}'\r\n */\r\n P.toExponential = function (dp, rm) {\r\n if (dp != null) {\r\n intCheck(dp, 0, MAX);\r\n dp++;\r\n }\r\n return format(this, dp, rm, 1);\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this BigNumber in fixed-point notation rounding\r\n * to dp fixed decimal places using rounding mode rm, or ROUNDING_MODE if rm is omitted.\r\n *\r\n * Note: as with JavaScript's number type, (-0).toFixed(0) is '0',\r\n * but e.g. (-0.00001).toFixed(0) is '-0'.\r\n *\r\n * [dp] {number} Decimal places. Integer, 0 to MAX inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {dp|rm}'\r\n */\r\n P.toFixed = function (dp, rm) {\r\n if (dp != null) {\r\n intCheck(dp, 0, MAX);\r\n dp = dp + this.e + 1;\r\n }\r\n return format(this, dp, rm);\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this BigNumber in fixed-point notation rounded\r\n * using rm or ROUNDING_MODE to dp decimal places, and formatted according to the properties\r\n * of the format or FORMAT object (see BigNumber.set).\r\n *\r\n * The formatting object may contain some or all of the properties shown below.\r\n *\r\n * FORMAT = {\r\n * prefix: '',\r\n * groupSize: 3,\r\n * secondaryGroupSize: 0,\r\n * groupSeparator: ',',\r\n * decimalSeparator: '.',\r\n * fractionGroupSize: 0,\r\n * fractionGroupSeparator: '\\xA0', // non-breaking space\r\n * suffix: ''\r\n * };\r\n *\r\n * [dp] {number} Decimal places. Integer, 0 to MAX inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n * [format] {object} Formatting options. See FORMAT pbject above.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {dp|rm}'\r\n * '[BigNumber Error] Argument not an object: {format}'\r\n */\r\n P.toFormat = function (dp, rm, format) {\r\n var str,\r\n x = this;\r\n\r\n if (format == null) {\r\n if (dp != null && rm && typeof rm == 'object') {\r\n format = rm;\r\n rm = null;\r\n } else if (dp && typeof dp == 'object') {\r\n format = dp;\r\n dp = rm = null;\r\n } else {\r\n format = FORMAT;\r\n }\r\n } else if (typeof format != 'object') {\r\n throw Error\r\n (bignumberError + 'Argument not an object: ' + format);\r\n }\r\n\r\n str = x.toFixed(dp, rm);\r\n\r\n if (x.c) {\r\n var i,\r\n arr = str.split('.'),\r\n g1 = +format.groupSize,\r\n g2 = +format.secondaryGroupSize,\r\n groupSeparator = format.groupSeparator || '',\r\n intPart = arr[0],\r\n fractionPart = arr[1],\r\n isNeg = x.s < 0,\r\n intDigits = isNeg ? intPart.slice(1) : intPart,\r\n len = intDigits.length;\r\n\r\n if (g2) {\r\n i = g1;\r\n g1 = g2;\r\n g2 = i;\r\n len -= i;\r\n }\r\n\r\n if (g1 > 0 && len > 0) {\r\n i = len % g1 || g1;\r\n intPart = intDigits.substr(0, i);\r\n for (; i < len; i += g1) intPart += groupSeparator + intDigits.substr(i, g1);\r\n if (g2 > 0) intPart += groupSeparator + intDigits.slice(i);\r\n if (isNeg) intPart = '-' + intPart;\r\n }\r\n\r\n str = fractionPart\r\n ? intPart + (format.decimalSeparator || '') + ((g2 = +format.fractionGroupSize)\r\n ? fractionPart.replace(new RegExp('\\\\d{' + g2 + '}\\\\B', 'g'),\r\n '$&' + (format.fractionGroupSeparator || ''))\r\n : fractionPart)\r\n : intPart;\r\n }\r\n\r\n return (format.prefix || '') + str + (format.suffix || '');\r\n };\r\n\r\n\r\n /*\r\n * Return an array of two BigNumbers representing the value of this BigNumber as a simple\r\n * fraction with an integer numerator and an integer denominator.\r\n * The denominator will be a positive non-zero value less than or equal to the specified\r\n * maximum denominator. If a maximum denominator is not specified, the denominator will be\r\n * the lowest value necessary to represent the number exactly.\r\n *\r\n * [md] {number|string|BigNumber} Integer >= 1, or Infinity. The maximum denominator.\r\n *\r\n * '[BigNumber Error] Argument {not an integer|out of range} : {md}'\r\n */\r\n P.toFraction = function (md) {\r\n var d, d0, d1, d2, e, exp, n, n0, n1, q, r, s,\r\n x = this,\r\n xc = x.c;\r\n\r\n if (md != null) {\r\n n = new BigNumber(md);\r\n\r\n // Throw if md is less than one or is not an integer, unless it is Infinity.\r\n if (!n.isInteger() && (n.c || n.s !== 1) || n.lt(ONE)) {\r\n throw Error\r\n (bignumberError + 'Argument ' +\r\n (n.isInteger() ? 'out of range: ' : 'not an integer: ') + valueOf(n));\r\n }\r\n }\r\n\r\n if (!xc) return new BigNumber(x);\r\n\r\n d = new BigNumber(ONE);\r\n n1 = d0 = new BigNumber(ONE);\r\n d1 = n0 = new BigNumber(ONE);\r\n s = coeffToString(xc);\r\n\r\n // Determine initial denominator.\r\n // d is a power of 10 and the minimum max denominator that specifies the value exactly.\r\n e = d.e = s.length - x.e - 1;\r\n d.c[0] = POWS_TEN[(exp = e % LOG_BASE) < 0 ? LOG_BASE + exp : exp];\r\n md = !md || n.comparedTo(d) > 0 ? (e > 0 ? d : n1) : n;\r\n\r\n exp = MAX_EXP;\r\n MAX_EXP = 1 / 0;\r\n n = new BigNumber(s);\r\n\r\n // n0 = d1 = 0\r\n n0.c[0] = 0;\r\n\r\n for (; ;) {\r\n q = div(n, d, 0, 1);\r\n d2 = d0.plus(q.times(d1));\r\n if (d2.comparedTo(md) == 1) break;\r\n d0 = d1;\r\n d1 = d2;\r\n n1 = n0.plus(q.times(d2 = n1));\r\n n0 = d2;\r\n d = n.minus(q.times(d2 = d));\r\n n = d2;\r\n }\r\n\r\n d2 = div(md.minus(d0), d1, 0, 1);\r\n n0 = n0.plus(d2.times(n1));\r\n d0 = d0.plus(d2.times(d1));\r\n n0.s = n1.s = x.s;\r\n e = e * 2;\r\n\r\n // Determine which fraction is closer to x, n0/d0 or n1/d1\r\n r = div(n1, d1, e, ROUNDING_MODE).minus(x).abs().comparedTo(\r\n div(n0, d0, e, ROUNDING_MODE).minus(x).abs()) < 1 ? [n1, d1] : [n0, d0];\r\n\r\n MAX_EXP = exp;\r\n\r\n return r;\r\n };\r\n\r\n\r\n /*\r\n * Return the value of this BigNumber converted to a number primitive.\r\n */\r\n P.toNumber = function () {\r\n return +valueOf(this);\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this BigNumber rounded to sd significant digits\r\n * using rounding mode rm or ROUNDING_MODE. If sd is less than the number of digits\r\n * necessary to represent the integer part of the value in fixed-point notation, then use\r\n * exponential notation.\r\n *\r\n * [sd] {number} Significant digits. Integer, 1 to MAX inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {sd|rm}'\r\n */\r\n P.toPrecision = function (sd, rm) {\r\n if (sd != null) intCheck(sd, 1, MAX);\r\n return format(this, sd, rm, 2);\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this BigNumber in base b, or base 10 if b is\r\n * omitted. If a base is specified, including base 10, round according to DECIMAL_PLACES and\r\n * ROUNDING_MODE. If a base is not specified, and this BigNumber has a positive exponent\r\n * that is equal to or greater than TO_EXP_POS, or a negative exponent equal to or less than\r\n * TO_EXP_NEG, return exponential notation.\r\n *\r\n * [b] {number} Integer, 2 to ALPHABET.length inclusive.\r\n *\r\n * '[BigNumber Error] Base {not a primitive number|not an integer|out of range}: {b}'\r\n */\r\n P.toString = function (b) {\r\n var str,\r\n n = this,\r\n s = n.s,\r\n e = n.e;\r\n\r\n // Infinity or NaN?\r\n if (e === null) {\r\n if (s) {\r\n str = 'Infinity';\r\n if (s < 0) str = '-' + str;\r\n } else {\r\n str = 'NaN';\r\n }\r\n } else {\r\n if (b == null) {\r\n str = e <= TO_EXP_NEG || e >= TO_EXP_POS\r\n ? toExponential(coeffToString(n.c), e)\r\n : toFixedPoint(coeffToString(n.c), e, '0');\r\n } else if (b === 10 && alphabetHasNormalDecimalDigits) {\r\n n = round(new BigNumber(n), DECIMAL_PLACES + e + 1, ROUNDING_MODE);\r\n str = toFixedPoint(coeffToString(n.c), n.e, '0');\r\n } else {\r\n intCheck(b, 2, ALPHABET.length, 'Base');\r\n str = convertBase(toFixedPoint(coeffToString(n.c), e, '0'), 10, b, s, true);\r\n }\r\n\r\n if (s < 0 && n.c[0]) str = '-' + str;\r\n }\r\n\r\n return str;\r\n };\r\n\r\n\r\n /*\r\n * Return as toString, but do not accept a base argument, and include the minus sign for\r\n * negative zero.\r\n */\r\n P.valueOf = P.toJSON = function () {\r\n return valueOf(this);\r\n };\r\n\r\n\r\n P._isBigNumber = true;\r\n\r\n if (configObject != null) BigNumber.set(configObject);\r\n\r\n return BigNumber;\r\n }\r\n\r\n\r\n // PRIVATE HELPER FUNCTIONS\r\n\r\n // These functions don't need access to variables,\r\n // e.g. DECIMAL_PLACES, in the scope of the `clone` function above.\r\n\r\n\r\n function bitFloor(n) {\r\n var i = n | 0;\r\n return n > 0 || n === i ? i : i - 1;\r\n }\r\n\r\n\r\n // Return a coefficient array as a string of base 10 digits.\r\n function coeffToString(a) {\r\n var s, z,\r\n i = 1,\r\n j = a.length,\r\n r = a[0] + '';\r\n\r\n for (; i < j;) {\r\n s = a[i++] + '';\r\n z = LOG_BASE - s.length;\r\n for (; z--; s = '0' + s);\r\n r += s;\r\n }\r\n\r\n // Determine trailing zeros.\r\n for (j = r.length; r.charCodeAt(--j) === 48;);\r\n\r\n return r.slice(0, j + 1 || 1);\r\n }\r\n\r\n\r\n // Compare the value of BigNumbers x and y.\r\n function compare(x, y) {\r\n var a, b,\r\n xc = x.c,\r\n yc = y.c,\r\n i = x.s,\r\n j = y.s,\r\n k = x.e,\r\n l = y.e;\r\n\r\n // Either NaN?\r\n if (!i || !j) return null;\r\n\r\n a = xc && !xc[0];\r\n b = yc && !yc[0];\r\n\r\n // Either zero?\r\n if (a || b) return a ? b ? 0 : -j : i;\r\n\r\n // Signs differ?\r\n if (i != j) return i;\r\n\r\n a = i < 0;\r\n b = k == l;\r\n\r\n // Either Infinity?\r\n if (!xc || !yc) return b ? 0 : !xc ^ a ? 1 : -1;\r\n\r\n // Compare exponents.\r\n if (!b) return k > l ^ a ? 1 : -1;\r\n\r\n j = (k = xc.length) < (l = yc.length) ? k : l;\r\n\r\n // Compare digit by digit.\r\n for (i = 0; i < j; i++) if (xc[i] != yc[i]) return xc[i] > yc[i] ^ a ? 1 : -1;\r\n\r\n // Compare lengths.\r\n return k == l ? 0 : k > l ^ a ? 1 : -1;\r\n }\r\n\r\n\r\n /*\r\n * Check that n is a primitive number, an integer, and in range, otherwise throw.\r\n */\r\n function intCheck(n, min, max, name) {\r\n if (n < min || n > max || n !== mathfloor(n)) {\r\n throw Error\r\n (bignumberError + (name || 'Argument') + (typeof n == 'number'\r\n ? n < min || n > max ? ' out of range: ' : ' not an integer: '\r\n : ' not a primitive number: ') + String(n));\r\n }\r\n }\r\n\r\n\r\n // Assumes finite n.\r\n function isOdd(n) {\r\n var k = n.c.length - 1;\r\n return bitFloor(n.e / LOG_BASE) == k && n.c[k] % 2 != 0;\r\n }\r\n\r\n\r\n function toExponential(str, e) {\r\n return (str.length > 1 ? str.charAt(0) + '.' + str.slice(1) : str) +\r\n (e < 0 ? 'e' : 'e+') + e;\r\n }\r\n\r\n\r\n function toFixedPoint(str, e, z) {\r\n var len, zs;\r\n\r\n // Negative exponent?\r\n if (e < 0) {\r\n\r\n // Prepend zeros.\r\n for (zs = z + '.'; ++e; zs += z);\r\n str = zs + str;\r\n\r\n // Positive exponent\r\n } else {\r\n len = str.length;\r\n\r\n // Append zeros.\r\n if (++e > len) {\r\n for (zs = z, e -= len; --e; zs += z);\r\n str += zs;\r\n } else if (e < len) {\r\n str = str.slice(0, e) + '.' + str.slice(e);\r\n }\r\n }\r\n\r\n return str;\r\n }\r\n\r\n\r\n // EXPORT\r\n\r\n\r\n BigNumber = clone();\r\n BigNumber['default'] = BigNumber.BigNumber = BigNumber;\r\n\r\n // AMD.\r\n if (typeof define == 'function' && define.amd) {\r\n define(function () { return BigNumber; });\r\n\r\n // Node.js and other environments that support module.exports.\r\n } else if (typeof module != 'undefined' && module.exports) {\r\n module.exports = BigNumber;\r\n\r\n // Browser.\r\n } else {\r\n if (!globalObject) {\r\n globalObject = typeof self != 'undefined' && self ? self : window;\r\n }\r\n\r\n globalObject.BigNumber = BigNumber;\r\n }\r\n})(this);\r\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.sortTxsFromLatest = exports.prioritizeEndpoints = exports.transformTarget = exports.sumVinVout = exports.enhanceVinVout = exports.filterTargets = exports.isAccountOwned = void 0;\nconst bignumber_js_1 = require(\"bignumber.js\");\nconst utils_1 = require(\"@trezor/utils\");\nconst isAccountOwned = (addresses) => (vinVout) => Array.isArray(vinVout === null || vinVout === void 0 ? void 0 : vinVout.addresses) && vinVout.addresses.some(a => addresses.includes(a));\nexports.isAccountOwned = isAccountOwned;\nconst filterTargets = (addresses, targets) => {\n if (typeof addresses === 'string') {\n addresses = [addresses];\n }\n if (!addresses || !Array.isArray(addresses) || !targets || !Array.isArray(targets))\n return [];\n const all = addresses\n .map(a => {\n if (typeof a === 'string')\n return a;\n if (typeof a === 'object' && typeof a.address === 'string')\n return a.address;\n return undefined;\n })\n .filter(utils_1.isNotUndefined);\n return targets.filter((0, exports.isAccountOwned)(all));\n};\nexports.filterTargets = filterTargets;\nconst enhanceVinVout = (addresses) => (vinVout) => (Object.assign(Object.assign({}, vinVout), { isAccountOwned: (0, exports.isAccountOwned)(addresses)(vinVout) || undefined }));\nexports.enhanceVinVout = enhanceVinVout;\nconst sumVinVout = (sum, { value }) => typeof value === 'string' ? new bignumber_js_1.default(value || '0').plus(sum) : sum;\nexports.sumVinVout = sumVinVout;\nconst transformTarget = (target, incoming) => ({\n n: target.n || 0,\n addresses: target.addresses,\n isAddress: target.isAddress,\n amount: target.value,\n coinbase: target.coinbase,\n isAccountTarget: incoming.includes(target) ? true : undefined,\n});\nexports.transformTarget = transformTarget;\nconst prioritizeEndpoints = (urls) => urls\n .map((url) => {\n const hostname = (0, utils_1.parseHostname)(url);\n let priority = Math.random();\n if (hostname === 'localhost' || hostname === '127.0.0.1') {\n priority += 2;\n }\n else if (hostname === null || hostname === void 0 ? void 0 : hostname.endsWith('.onion')) {\n priority += 1;\n }\n return [url, priority];\n})\n .sort(([, a], [, b]) => b - a)\n .map(([url]) => url);\nexports.prioritizeEndpoints = prioritizeEndpoints;\nconst adjustHeight = ({ blockHeight }) => blockHeight === undefined || blockHeight <= 0 ? Number.MAX_SAFE_INTEGER : blockHeight;\nconst sortTxsFromLatest = (transactions) => {\n const txs = transactions.slice().sort((a, b) => adjustHeight(b) - adjustHeight(a));\n let from = 0;\n while (from < txs.length - 1) {\n const fromHeight = adjustHeight(txs[from]);\n let to = from + 1;\n if (fromHeight === adjustHeight(txs[to])) {\n do {\n to++;\n } while (to < txs.length && fromHeight === adjustHeight(txs[to]));\n const toposorted = (0, utils_1.topologicalSort)(txs.slice(from, to), (a, b) => a.details.vin.some(({ txid }) => txid === b.txid));\n txs.splice(from, toposorted.length, ...toposorted);\n }\n from = to;\n }\n return txs;\n};\nexports.sortTxsFromLatest = sortTxsFromLatest;\n//# sourceMappingURL=utils.js.map", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BaseWorker = exports.CONTEXT = void 0;\nconst SocksProxyAgent = require(\"socks-proxy-agent\");\nconst errors_1 = require(\"../constants/errors\");\nconst state_1 = require(\"./state\");\nconst utils_1 = require(\"./utils\");\nconst constants_1 = require(\"../constants\");\nexports.CONTEXT = (typeof WorkerGlobalScope !== 'undefined' && self instanceof WorkerGlobalScope) ||\n typeof importScripts !== 'undefined'\n ? 'worker'\n : 'main';\nclass BaseWorker {\n constructor() {\n this.settings = {};\n if (exports.CONTEXT === 'worker') {\n this.post = (data) => self.postMessage(data);\n }\n else {\n this.post = (data) => this.onmessage({ data });\n }\n this.state = new state_1.WorkerState();\n setTimeout(() => {\n this.post({ id: -1, type: constants_1.MESSAGES.HANDSHAKE });\n }, 10);\n }\n debug(...args) {\n if (!this.settings.debug)\n return;\n const debugPrefix = `[Worker \"${this.settings.name}\"]:`;\n const fn = args[0];\n if (fn === 'warn' || fn === 'error') {\n console[fn](debugPrefix, ...args.slice(1));\n }\n else {\n console.log(debugPrefix, ...args);\n }\n }\n cleanup() {\n this.api = undefined;\n this.state.cleanup();\n }\n connect() {\n if (this.isConnected(this.api)) {\n return Promise.resolve(this.api);\n }\n if (!this.connectPromise) {\n const urls = Array.isArray(this.settings.server)\n ? this.settings.server.filter(url => typeof url === 'string')\n : [];\n if (urls.length < 1) {\n throw new errors_1.CustomError('connect', 'Endpoint not set');\n }\n const endpoints = (0, utils_1.prioritizeEndpoints)(urls);\n this.connectPromise = this.connectRecursive(endpoints).then(api => {\n this.debug('Connected');\n this.api = api;\n this.connectPromise = undefined;\n return api;\n });\n }\n return this.connectPromise;\n }\n connectRecursive([url, ...rest]) {\n if (!url) {\n throw new errors_1.CustomError('connect', 'All backends are down');\n }\n if (this.proxyAgent) {\n this.proxyAgent.protocol = /^(https|wss):/.test(url) ? 'https:' : 'http:';\n }\n this.debug('Connecting to', url);\n return this.tryConnect(url).catch(error => {\n this.debug('Connection failed', error);\n return this.connectRecursive(rest);\n });\n }\n disconnect() {\n }\n async messageHandler(event) {\n if (!event.data)\n return true;\n const { data } = event;\n const { id } = data;\n this.debug('onmessage', data);\n if (data.type === constants_1.MESSAGES.HANDSHAKE) {\n this.settings = data.settings;\n this.proxyAgent = data.settings.proxy\n ? SocksProxyAgent(data.settings.proxy)\n : undefined;\n return true;\n }\n if (data.type === constants_1.MESSAGES.CONNECT) {\n await this.connect();\n this.post({ id, type: constants_1.RESPONSES.CONNECT, payload: true });\n return true;\n }\n if (data.type === constants_1.MESSAGES.DISCONNECT) {\n this.disconnect();\n this.post({ id, type: constants_1.RESPONSES.DISCONNECTED, payload: true });\n return true;\n }\n if (data.type === constants_1.MESSAGES.TERMINATE) {\n this.disconnect();\n this.cleanup();\n return true;\n }\n }\n errorResponse(id, error) {\n const payload = { code: '', message: '' };\n if (error instanceof Error) {\n payload.message = error.message;\n payload.code = error instanceof errors_1.CustomError && error.code ? error.code : '';\n }\n this.post({\n id,\n type: constants_1.RESPONSES.ERROR,\n payload,\n });\n }\n postMessage(data) {\n this.messageHandler({ data });\n }\n onmessage(_evt) {\n }\n onmessageerror(_error) {\n }\n onerror(_error) {\n }\n terminate() {\n this.postMessage({ id: -1, type: constants_1.MESSAGES.TERMINATE });\n }\n}\nexports.BaseWorker = BaseWorker;\n//# sourceMappingURL=base.js.map", "'use strict';\n\nmodule.exports = {\n BINARY_TYPES: ['nodebuffer', 'arraybuffer', 'fragments'],\n GUID: '258EAFA5-E914-47DA-95CA-C5AB0DC85B11',\n kStatusCode: Symbol('status-code'),\n kWebSocket: Symbol('websocket'),\n EMPTY_BUFFER: Buffer.alloc(0),\n NOOP: () => {}\n};\n", "'use strict';\n\nconst { EMPTY_BUFFER } = require('./constants');\n\n/**\n * Merges an array of buffers into a new buffer.\n *\n * @param {Buffer[]} list The array of buffers to concat\n * @param {Number} totalLength The total length of buffers in the list\n * @return {Buffer} The resulting buffer\n * @public\n */\nfunction concat(list, totalLength) {\n if (list.length === 0) return EMPTY_BUFFER;\n if (list.length === 1) return list[0];\n\n const target = Buffer.allocUnsafe(totalLength);\n let offset = 0;\n\n for (let i = 0; i < list.length; i++) {\n const buf = list[i];\n target.set(buf, offset);\n offset += buf.length;\n }\n\n if (offset < totalLength) return target.slice(0, offset);\n\n return target;\n}\n\n/**\n * Masks a buffer using the given mask.\n *\n * @param {Buffer} source The buffer to mask\n * @param {Buffer} mask The mask to use\n * @param {Buffer} output The buffer where to store the result\n * @param {Number} offset The offset at which to start writing\n * @param {Number} length The number of bytes to mask.\n * @public\n */\nfunction _mask(source, mask, output, offset, length) {\n for (let i = 0; i < length; i++) {\n output[offset + i] = source[i] ^ mask[i & 3];\n }\n}\n\n/**\n * Unmasks a buffer using the given mask.\n *\n * @param {Buffer} buffer The buffer to unmask\n * @param {Buffer} mask The mask to use\n * @public\n */\nfunction _unmask(buffer, mask) {\n // Required until https://github.com/nodejs/node/issues/9006 is resolved.\n const length = buffer.length;\n for (let i = 0; i < length; i++) {\n buffer[i] ^= mask[i & 3];\n }\n}\n\n/**\n * Converts a buffer to an `ArrayBuffer`.\n *\n * @param {Buffer} buf The buffer to convert\n * @return {ArrayBuffer} Converted buffer\n * @public\n */\nfunction toArrayBuffer(buf) {\n if (buf.byteLength === buf.buffer.byteLength) {\n return buf.buffer;\n }\n\n return buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength);\n}\n\n/**\n * Converts `data` to a `Buffer`.\n *\n * @param {*} data The data to convert\n * @return {Buffer} The buffer\n * @throws {TypeError}\n * @public\n */\nfunction toBuffer(data) {\n toBuffer.readOnly = true;\n\n if (Buffer.isBuffer(data)) return data;\n\n let buf;\n\n if (data instanceof ArrayBuffer) {\n buf = Buffer.from(data);\n } else if (ArrayBuffer.isView(data)) {\n buf = Buffer.from(data.buffer, data.byteOffset, data.byteLength);\n } else {\n buf = Buffer.from(data);\n toBuffer.readOnly = false;\n }\n\n return buf;\n}\n\ntry {\n const bufferUtil = require('bufferutil');\n const bu = bufferUtil.BufferUtil || bufferUtil;\n\n module.exports = {\n concat,\n mask(source, mask, output, offset, length) {\n if (length < 48) _mask(source, mask, output, offset, length);\n else bu.mask(source, mask, output, offset, length);\n },\n toArrayBuffer,\n toBuffer,\n unmask(buffer, mask) {\n if (buffer.length < 32) _unmask(buffer, mask);\n else bu.unmask(buffer, mask);\n }\n };\n} catch (e) /* istanbul ignore next */ {\n module.exports = {\n concat,\n mask: _mask,\n toArrayBuffer,\n toBuffer,\n unmask: _unmask\n };\n}\n", "'use strict';\n\nconst kDone = Symbol('kDone');\nconst kRun = Symbol('kRun');\n\n/**\n * A very simple job queue with adjustable concurrency. Adapted from\n * https://github.com/STRML/async-limiter\n */\nclass Limiter {\n /**\n * Creates a new `Limiter`.\n *\n * @param {Number} [concurrency=Infinity] The maximum number of jobs allowed\n * to run concurrently\n */\n constructor(concurrency) {\n this[kDone] = () => {\n this.pending--;\n this[kRun]();\n };\n this.concurrency = concurrency || Infinity;\n this.jobs = [];\n this.pending = 0;\n }\n\n /**\n * Adds a job to the queue.\n *\n * @param {Function} job The job to run\n * @public\n */\n add(job) {\n this.jobs.push(job);\n this[kRun]();\n }\n\n /**\n * Removes a job from the queue and runs it if possible.\n *\n * @private\n */\n [kRun]() {\n if (this.pending === this.concurrency) return;\n\n if (this.jobs.length) {\n const job = this.jobs.shift();\n\n this.pending++;\n job(this[kDone]);\n }\n }\n}\n\nmodule.exports = Limiter;\n", "'use strict';\n\nconst zlib = require('zlib');\n\nconst bufferUtil = require('./buffer-util');\nconst Limiter = require('./limiter');\nconst { kStatusCode, NOOP } = require('./constants');\n\nconst TRAILER = Buffer.from([0x00, 0x00, 0xff, 0xff]);\nconst kPerMessageDeflate = Symbol('permessage-deflate');\nconst kTotalLength = Symbol('total-length');\nconst kCallback = Symbol('callback');\nconst kBuffers = Symbol('buffers');\nconst kError = Symbol('error');\n\n//\n// We limit zlib concurrency, which prevents severe memory fragmentation\n// as documented in https://github.com/nodejs/node/issues/8871#issuecomment-250915913\n// and https://github.com/websockets/ws/issues/1202\n//\n// Intentionally global; it's the global thread pool that's an issue.\n//\nlet zlibLimiter;\n\n/**\n * permessage-deflate implementation.\n */\nclass PerMessageDeflate {\n /**\n * Creates a PerMessageDeflate instance.\n *\n * @param {Object} [options] Configuration options\n * @param {Boolean} [options.serverNoContextTakeover=false] Request/accept\n * disabling of server context takeover\n * @param {Boolean} [options.clientNoContextTakeover=false] Advertise/\n * acknowledge disabling of client context takeover\n * @param {(Boolean|Number)} [options.serverMaxWindowBits] Request/confirm the\n * use of a custom server window size\n * @param {(Boolean|Number)} [options.clientMaxWindowBits] Advertise support\n * for, or request, a custom client window size\n * @param {Object} [options.zlibDeflateOptions] Options to pass to zlib on\n * deflate\n * @param {Object} [options.zlibInflateOptions] Options to pass to zlib on\n * inflate\n * @param {Number} [options.threshold=1024] Size (in bytes) below which\n * messages should not be compressed\n * @param {Number} [options.concurrencyLimit=10] The number of concurrent\n * calls to zlib\n * @param {Boolean} [isServer=false] Create the instance in either server or\n * client mode\n * @param {Number} [maxPayload=0] The maximum allowed message length\n */\n constructor(options, isServer, maxPayload) {\n this._maxPayload = maxPayload | 0;\n this._options = options || {};\n this._threshold =\n this._options.threshold !== undefined ? this._options.threshold : 1024;\n this._isServer = !!isServer;\n this._deflate = null;\n this._inflate = null;\n\n this.params = null;\n\n if (!zlibLimiter) {\n const concurrency =\n this._options.concurrencyLimit !== undefined\n ? this._options.concurrencyLimit\n : 10;\n zlibLimiter = new Limiter(concurrency);\n }\n }\n\n /**\n * @type {String}\n */\n static get extensionName() {\n return 'permessage-deflate';\n }\n\n /**\n * Create an extension negotiation offer.\n *\n * @return {Object} Extension parameters\n * @public\n */\n offer() {\n const params = {};\n\n if (this._options.serverNoContextTakeover) {\n params.server_no_context_takeover = true;\n }\n if (this._options.clientNoContextTakeover) {\n params.client_no_context_takeover = true;\n }\n if (this._options.serverMaxWindowBits) {\n params.server_max_window_bits = this._options.serverMaxWindowBits;\n }\n if (this._options.clientMaxWindowBits) {\n params.client_max_window_bits = this._options.clientMaxWindowBits;\n } else if (this._options.clientMaxWindowBits == null) {\n params.client_max_window_bits = true;\n }\n\n return params;\n }\n\n /**\n * Accept an extension negotiation offer/response.\n *\n * @param {Array} configurations The extension negotiation offers/reponse\n * @return {Object} Accepted configuration\n * @public\n */\n accept(configurations) {\n configurations = this.normalizeParams(configurations);\n\n this.params = this._isServer\n ? this.acceptAsServer(configurations)\n : this.acceptAsClient(configurations);\n\n return this.params;\n }\n\n /**\n * Releases all resources used by the extension.\n *\n * @public\n */\n cleanup() {\n if (this._inflate) {\n this._inflate.close();\n this._inflate = null;\n }\n\n if (this._deflate) {\n const callback = this._deflate[kCallback];\n\n this._deflate.close();\n this._deflate = null;\n\n if (callback) {\n callback(\n new Error(\n 'The deflate stream was closed while data was being processed'\n )\n );\n }\n }\n }\n\n /**\n * Accept an extension negotiation offer.\n *\n * @param {Array} offers The extension negotiation offers\n * @return {Object} Accepted configuration\n * @private\n */\n acceptAsServer(offers) {\n const opts = this._options;\n const accepted = offers.find((params) => {\n if (\n (opts.serverNoContextTakeover === false &&\n params.server_no_context_takeover) ||\n (params.server_max_window_bits &&\n (opts.serverMaxWindowBits === false ||\n (typeof opts.serverMaxWindowBits === 'number' &&\n opts.serverMaxWindowBits > params.server_max_window_bits))) ||\n (typeof opts.clientMaxWindowBits === 'number' &&\n !params.client_max_window_bits)\n ) {\n return false;\n }\n\n return true;\n });\n\n if (!accepted) {\n throw new Error('None of the extension offers can be accepted');\n }\n\n if (opts.serverNoContextTakeover) {\n accepted.server_no_context_takeover = true;\n }\n if (opts.clientNoContextTakeover) {\n accepted.client_no_context_takeover = true;\n }\n if (typeof opts.serverMaxWindowBits === 'number') {\n accepted.server_max_window_bits = opts.serverMaxWindowBits;\n }\n if (typeof opts.clientMaxWindowBits === 'number') {\n accepted.client_max_window_bits = opts.clientMaxWindowBits;\n } else if (\n accepted.client_max_window_bits === true ||\n opts.clientMaxWindowBits === false\n ) {\n delete accepted.client_max_window_bits;\n }\n\n return accepted;\n }\n\n /**\n * Accept the extension negotiation response.\n *\n * @param {Array} response The extension negotiation response\n * @return {Object} Accepted configuration\n * @private\n */\n acceptAsClient(response) {\n const params = response[0];\n\n if (\n this._options.clientNoContextTakeover === false &&\n params.client_no_context_takeover\n ) {\n throw new Error('Unexpected parameter \"client_no_context_takeover\"');\n }\n\n if (!params.client_max_window_bits) {\n if (typeof this._options.clientMaxWindowBits === 'number') {\n params.client_max_window_bits = this._options.clientMaxWindowBits;\n }\n } else if (\n this._options.clientMaxWindowBits === false ||\n (typeof this._options.clientMaxWindowBits === 'number' &&\n params.client_max_window_bits > this._options.clientMaxWindowBits)\n ) {\n throw new Error(\n 'Unexpected or invalid parameter \"client_max_window_bits\"'\n );\n }\n\n return params;\n }\n\n /**\n * Normalize parameters.\n *\n * @param {Array} configurations The extension negotiation offers/reponse\n * @return {Array} The offers/response with normalized parameters\n * @private\n */\n normalizeParams(configurations) {\n configurations.forEach((params) => {\n Object.keys(params).forEach((key) => {\n let value = params[key];\n\n if (value.length > 1) {\n throw new Error(`Parameter \"${key}\" must have only a single value`);\n }\n\n value = value[0];\n\n if (key === 'client_max_window_bits') {\n if (value !== true) {\n const num = +value;\n if (!Number.isInteger(num) || num < 8 || num > 15) {\n throw new TypeError(\n `Invalid value for parameter \"${key}\": ${value}`\n );\n }\n value = num;\n } else if (!this._isServer) {\n throw new TypeError(\n `Invalid value for parameter \"${key}\": ${value}`\n );\n }\n } else if (key === 'server_max_window_bits') {\n const num = +value;\n if (!Number.isInteger(num) || num < 8 || num > 15) {\n throw new TypeError(\n `Invalid value for parameter \"${key}\": ${value}`\n );\n }\n value = num;\n } else if (\n key === 'client_no_context_takeover' ||\n key === 'server_no_context_takeover'\n ) {\n if (value !== true) {\n throw new TypeError(\n `Invalid value for parameter \"${key}\": ${value}`\n );\n }\n } else {\n throw new Error(`Unknown parameter \"${key}\"`);\n }\n\n params[key] = value;\n });\n });\n\n return configurations;\n }\n\n /**\n * Decompress data. Concurrency limited.\n *\n * @param {Buffer} data Compressed data\n * @param {Boolean} fin Specifies whether or not this is the last fragment\n * @param {Function} callback Callback\n * @public\n */\n decompress(data, fin, callback) {\n zlibLimiter.add((done) => {\n this._decompress(data, fin, (err, result) => {\n done();\n callback(err, result);\n });\n });\n }\n\n /**\n * Compress data. Concurrency limited.\n *\n * @param {Buffer} data Data to compress\n * @param {Boolean} fin Specifies whether or not this is the last fragment\n * @param {Function} callback Callback\n * @public\n */\n compress(data, fin, callback) {\n zlibLimiter.add((done) => {\n this._compress(data, fin, (err, result) => {\n done();\n callback(err, result);\n });\n });\n }\n\n /**\n * Decompress data.\n *\n * @param {Buffer} data Compressed data\n * @param {Boolean} fin Specifies whether or not this is the last fragment\n * @param {Function} callback Callback\n * @private\n */\n _decompress(data, fin, callback) {\n const endpoint = this._isServer ? 'client' : 'server';\n\n if (!this._inflate) {\n const key = `${endpoint}_max_window_bits`;\n const windowBits =\n typeof this.params[key] !== 'number'\n ? zlib.Z_DEFAULT_WINDOWBITS\n : this.params[key];\n\n this._inflate = zlib.createInflateRaw({\n ...this._options.zlibInflateOptions,\n windowBits\n });\n this._inflate[kPerMessageDeflate] = this;\n this._inflate[kTotalLength] = 0;\n this._inflate[kBuffers] = [];\n this._inflate.on('error', inflateOnError);\n this._inflate.on('data', inflateOnData);\n }\n\n this._inflate[kCallback] = callback;\n\n this._inflate.write(data);\n if (fin) this._inflate.write(TRAILER);\n\n this._inflate.flush(() => {\n const err = this._inflate[kError];\n\n if (err) {\n this._inflate.close();\n this._inflate = null;\n callback(err);\n return;\n }\n\n const data = bufferUtil.concat(\n this._inflate[kBuffers],\n this._inflate[kTotalLength]\n );\n\n if (this._inflate._readableState.endEmitted) {\n this._inflate.close();\n this._inflate = null;\n } else {\n this._inflate[kTotalLength] = 0;\n this._inflate[kBuffers] = [];\n\n if (fin && this.params[`${endpoint}_no_context_takeover`]) {\n this._inflate.reset();\n }\n }\n\n callback(null, data);\n });\n }\n\n /**\n * Compress data.\n *\n * @param {Buffer} data Data to compress\n * @param {Boolean} fin Specifies whether or not this is the last fragment\n * @param {Function} callback Callback\n * @private\n */\n _compress(data, fin, callback) {\n const endpoint = this._isServer ? 'server' : 'client';\n\n if (!this._deflate) {\n const key = `${endpoint}_max_window_bits`;\n const windowBits =\n typeof this.params[key] !== 'number'\n ? zlib.Z_DEFAULT_WINDOWBITS\n : this.params[key];\n\n this._deflate = zlib.createDeflateRaw({\n ...this._options.zlibDeflateOptions,\n windowBits\n });\n\n this._deflate[kTotalLength] = 0;\n this._deflate[kBuffers] = [];\n\n //\n // An `'error'` event is emitted, only on Node.js < 10.0.0, if the\n // `zlib.DeflateRaw` instance is closed while data is being processed.\n // This can happen if `PerMessageDeflate#cleanup()` is called at the wrong\n // time due to an abnormal WebSocket closure.\n //\n this._deflate.on('error', NOOP);\n this._deflate.on('data', deflateOnData);\n }\n\n this._deflate[kCallback] = callback;\n\n this._deflate.write(data);\n this._deflate.flush(zlib.Z_SYNC_FLUSH, () => {\n if (!this._deflate) {\n //\n // The deflate stream was closed while data was being processed.\n //\n return;\n }\n\n let data = bufferUtil.concat(\n this._deflate[kBuffers],\n this._deflate[kTotalLength]\n );\n\n if (fin) data = data.slice(0, data.length - 4);\n\n //\n // Ensure that the callback will not be called again in\n // `PerMessageDeflate#cleanup()`.\n //\n this._deflate[kCallback] = null;\n\n this._deflate[kTotalLength] = 0;\n this._deflate[kBuffers] = [];\n\n if (fin && this.params[`${endpoint}_no_context_takeover`]) {\n this._deflate.reset();\n }\n\n callback(null, data);\n });\n }\n}\n\nmodule.exports = PerMessageDeflate;\n\n/**\n * The listener of the `zlib.DeflateRaw` stream `'data'` event.\n *\n * @param {Buffer} chunk A chunk of data\n * @private\n */\nfunction deflateOnData(chunk) {\n this[kBuffers].push(chunk);\n this[kTotalLength] += chunk.length;\n}\n\n/**\n * The listener of the `zlib.InflateRaw` stream `'data'` event.\n *\n * @param {Buffer} chunk A chunk of data\n * @private\n */\nfunction inflateOnData(chunk) {\n this[kTotalLength] += chunk.length;\n\n if (\n this[kPerMessageDeflate]._maxPayload < 1 ||\n this[kTotalLength] <= this[kPerMessageDeflate]._maxPayload\n ) {\n this[kBuffers].push(chunk);\n return;\n }\n\n this[kError] = new RangeError('Max payload size exceeded');\n this[kError].code = 'WS_ERR_UNSUPPORTED_MESSAGE_LENGTH';\n this[kError][kStatusCode] = 1009;\n this.removeListener('data', inflateOnData);\n this.reset();\n}\n\n/**\n * The listener of the `zlib.InflateRaw` stream `'error'` event.\n *\n * @param {Error} err The emitted error\n * @private\n */\nfunction inflateOnError(err) {\n //\n // There is no need to call `Zlib#close()` as the handle is automatically\n // closed when an error is emitted.\n //\n this[kPerMessageDeflate]._inflate = null;\n err[kStatusCode] = 1007;\n this[kCallback](err);\n}\n", "'use strict';\n\n/**\n * Checks if a status code is allowed in a close frame.\n *\n * @param {Number} code The status code\n * @return {Boolean} `true` if the status code is valid, else `false`\n * @public\n */\nfunction isValidStatusCode(code) {\n return (\n (code >= 1000 &&\n code <= 1014 &&\n code !== 1004 &&\n code !== 1005 &&\n code !== 1006) ||\n (code >= 3000 && code <= 4999)\n );\n}\n\n/**\n * Checks if a given buffer contains only correct UTF-8.\n * Ported from https://www.cl.cam.ac.uk/%7Emgk25/ucs/utf8_check.c by\n * Markus Kuhn.\n *\n * @param {Buffer} buf The buffer to check\n * @return {Boolean} `true` if `buf` contains only correct UTF-8, else `false`\n * @public\n */\nfunction _isValidUTF8(buf) {\n const len = buf.length;\n let i = 0;\n\n while (i < len) {\n if ((buf[i] & 0x80) === 0) {\n // 0xxxxxxx\n i++;\n } else if ((buf[i] & 0xe0) === 0xc0) {\n // 110xxxxx 10xxxxxx\n if (\n i + 1 === len ||\n (buf[i + 1] & 0xc0) !== 0x80 ||\n (buf[i] & 0xfe) === 0xc0 // Overlong\n ) {\n return false;\n }\n\n i += 2;\n } else if ((buf[i] & 0xf0) === 0xe0) {\n // 1110xxxx 10xxxxxx 10xxxxxx\n if (\n i + 2 >= len ||\n (buf[i + 1] & 0xc0) !== 0x80 ||\n (buf[i + 2] & 0xc0) !== 0x80 ||\n (buf[i] === 0xe0 && (buf[i + 1] & 0xe0) === 0x80) || // Overlong\n (buf[i] === 0xed && (buf[i + 1] & 0xe0) === 0xa0) // Surrogate (U+D800 - U+DFFF)\n ) {\n return false;\n }\n\n i += 3;\n } else if ((buf[i] & 0xf8) === 0xf0) {\n // 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx\n if (\n i + 3 >= len ||\n (buf[i + 1] & 0xc0) !== 0x80 ||\n (buf[i + 2] & 0xc0) !== 0x80 ||\n (buf[i + 3] & 0xc0) !== 0x80 ||\n (buf[i] === 0xf0 && (buf[i + 1] & 0xf0) === 0x80) || // Overlong\n (buf[i] === 0xf4 && buf[i + 1] > 0x8f) ||\n buf[i] > 0xf4 // > U+10FFFF\n ) {\n return false;\n }\n\n i += 4;\n } else {\n return false;\n }\n }\n\n return true;\n}\n\ntry {\n let isValidUTF8 = require('utf-8-validate');\n\n /* istanbul ignore if */\n if (typeof isValidUTF8 === 'object') {\n isValidUTF8 = isValidUTF8.Validation.isValidUTF8; // utf-8-validate@<3.0.0\n }\n\n module.exports = {\n isValidStatusCode,\n isValidUTF8(buf) {\n return buf.length < 150 ? _isValidUTF8(buf) : isValidUTF8(buf);\n }\n };\n} catch (e) /* istanbul ignore next */ {\n module.exports = {\n isValidStatusCode,\n isValidUTF8: _isValidUTF8\n };\n}\n", "'use strict';\n\nconst { Writable } = require('stream');\n\nconst PerMessageDeflate = require('./permessage-deflate');\nconst {\n BINARY_TYPES,\n EMPTY_BUFFER,\n kStatusCode,\n kWebSocket\n} = require('./constants');\nconst { concat, toArrayBuffer, unmask } = require('./buffer-util');\nconst { isValidStatusCode, isValidUTF8 } = require('./validation');\n\nconst GET_INFO = 0;\nconst GET_PAYLOAD_LENGTH_16 = 1;\nconst GET_PAYLOAD_LENGTH_64 = 2;\nconst GET_MASK = 3;\nconst GET_DATA = 4;\nconst INFLATING = 5;\n\n/**\n * HyBi Receiver implementation.\n *\n * @extends Writable\n */\nclass Receiver extends Writable {\n /**\n * Creates a Receiver instance.\n *\n * @param {String} [binaryType=nodebuffer] The type for binary data\n * @param {Object} [extensions] An object containing the negotiated extensions\n * @param {Boolean} [isServer=false] Specifies whether to operate in client or\n * server mode\n * @param {Number} [maxPayload=0] The maximum allowed message length\n */\n constructor(binaryType, extensions, isServer, maxPayload) {\n super();\n\n this._binaryType = binaryType || BINARY_TYPES[0];\n this[kWebSocket] = undefined;\n this._extensions = extensions || {};\n this._isServer = !!isServer;\n this._maxPayload = maxPayload | 0;\n\n this._bufferedBytes = 0;\n this._buffers = [];\n\n this._compressed = false;\n this._payloadLength = 0;\n this._mask = undefined;\n this._fragmented = 0;\n this._masked = false;\n this._fin = false;\n this._opcode = 0;\n\n this._totalPayloadLength = 0;\n this._messageLength = 0;\n this._fragments = [];\n\n this._state = GET_INFO;\n this._loop = false;\n }\n\n /**\n * Implements `Writable.prototype._write()`.\n *\n * @param {Buffer} chunk The chunk of data to write\n * @param {String} encoding The character encoding of `chunk`\n * @param {Function} cb Callback\n * @private\n */\n _write(chunk, encoding, cb) {\n if (this._opcode === 0x08 && this._state == GET_INFO) return cb();\n\n this._bufferedBytes += chunk.length;\n this._buffers.push(chunk);\n this.startLoop(cb);\n }\n\n /**\n * Consumes `n` bytes from the buffered data.\n *\n * @param {Number} n The number of bytes to consume\n * @return {Buffer} The consumed bytes\n * @private\n */\n consume(n) {\n this._bufferedBytes -= n;\n\n if (n === this._buffers[0].length) return this._buffers.shift();\n\n if (n < this._buffers[0].length) {\n const buf = this._buffers[0];\n this._buffers[0] = buf.slice(n);\n return buf.slice(0, n);\n }\n\n const dst = Buffer.allocUnsafe(n);\n\n do {\n const buf = this._buffers[0];\n const offset = dst.length - n;\n\n if (n >= buf.length) {\n dst.set(this._buffers.shift(), offset);\n } else {\n dst.set(new Uint8Array(buf.buffer, buf.byteOffset, n), offset);\n this._buffers[0] = buf.slice(n);\n }\n\n n -= buf.length;\n } while (n > 0);\n\n return dst;\n }\n\n /**\n * Starts the parsing loop.\n *\n * @param {Function} cb Callback\n * @private\n */\n startLoop(cb) {\n let err;\n this._loop = true;\n\n do {\n switch (this._state) {\n case GET_INFO:\n err = this.getInfo();\n break;\n case GET_PAYLOAD_LENGTH_16:\n err = this.getPayloadLength16();\n break;\n case GET_PAYLOAD_LENGTH_64:\n err = this.getPayloadLength64();\n break;\n case GET_MASK:\n this.getMask();\n break;\n case GET_DATA:\n err = this.getData(cb);\n break;\n default:\n // `INFLATING`\n this._loop = false;\n return;\n }\n } while (this._loop);\n\n cb(err);\n }\n\n /**\n * Reads the first two bytes of a frame.\n *\n * @return {(RangeError|undefined)} A possible error\n * @private\n */\n getInfo() {\n if (this._bufferedBytes < 2) {\n this._loop = false;\n return;\n }\n\n const buf = this.consume(2);\n\n if ((buf[0] & 0x30) !== 0x00) {\n this._loop = false;\n return error(\n RangeError,\n 'RSV2 and RSV3 must be clear',\n true,\n 1002,\n 'WS_ERR_UNEXPECTED_RSV_2_3'\n );\n }\n\n const compressed = (buf[0] & 0x40) === 0x40;\n\n if (compressed && !this._extensions[PerMessageDeflate.extensionName]) {\n this._loop = false;\n return error(\n RangeError,\n 'RSV1 must be clear',\n true,\n 1002,\n 'WS_ERR_UNEXPECTED_RSV_1'\n );\n }\n\n this._fin = (buf[0] & 0x80) === 0x80;\n this._opcode = buf[0] & 0x0f;\n this._payloadLength = buf[1] & 0x7f;\n\n if (this._opcode === 0x00) {\n if (compressed) {\n this._loop = false;\n return error(\n RangeError,\n 'RSV1 must be clear',\n true,\n 1002,\n 'WS_ERR_UNEXPECTED_RSV_1'\n );\n }\n\n if (!this._fragmented) {\n this._loop = false;\n return error(\n RangeError,\n 'invalid opcode 0',\n true,\n 1002,\n 'WS_ERR_INVALID_OPCODE'\n );\n }\n\n this._opcode = this._fragmented;\n } else if (this._opcode === 0x01 || this._opcode === 0x02) {\n if (this._fragmented) {\n this._loop = false;\n return error(\n RangeError,\n `invalid opcode ${this._opcode}`,\n true,\n 1002,\n 'WS_ERR_INVALID_OPCODE'\n );\n }\n\n this._compressed = compressed;\n } else if (this._opcode > 0x07 && this._opcode < 0x0b) {\n if (!this._fin) {\n this._loop = false;\n return error(\n RangeError,\n 'FIN must be set',\n true,\n 1002,\n 'WS_ERR_EXPECTED_FIN'\n );\n }\n\n if (compressed) {\n this._loop = false;\n return error(\n RangeError,\n 'RSV1 must be clear',\n true,\n 1002,\n 'WS_ERR_UNEXPECTED_RSV_1'\n );\n }\n\n if (this._payloadLength > 0x7d) {\n this._loop = false;\n return error(\n RangeError,\n `invalid payload length ${this._payloadLength}`,\n true,\n 1002,\n 'WS_ERR_INVALID_CONTROL_PAYLOAD_LENGTH'\n );\n }\n } else {\n this._loop = false;\n return error(\n RangeError,\n `invalid opcode ${this._opcode}`,\n true,\n 1002,\n 'WS_ERR_INVALID_OPCODE'\n );\n }\n\n if (!this._fin && !this._fragmented) this._fragmented = this._opcode;\n this._masked = (buf[1] & 0x80) === 0x80;\n\n if (this._isServer) {\n if (!this._masked) {\n this._loop = false;\n return error(\n RangeError,\n 'MASK must be set',\n true,\n 1002,\n 'WS_ERR_EXPECTED_MASK'\n );\n }\n } else if (this._masked) {\n this._loop = false;\n return error(\n RangeError,\n 'MASK must be clear',\n true,\n 1002,\n 'WS_ERR_UNEXPECTED_MASK'\n );\n }\n\n if (this._payloadLength === 126) this._state = GET_PAYLOAD_LENGTH_16;\n else if (this._payloadLength === 127) this._state = GET_PAYLOAD_LENGTH_64;\n else return this.haveLength();\n }\n\n /**\n * Gets extended payload length (7+16).\n *\n * @return {(RangeError|undefined)} A possible error\n * @private\n */\n getPayloadLength16() {\n if (this._bufferedBytes < 2) {\n this._loop = false;\n return;\n }\n\n this._payloadLength = this.consume(2).readUInt16BE(0);\n return this.haveLength();\n }\n\n /**\n * Gets extended payload length (7+64).\n *\n * @return {(RangeError|undefined)} A possible error\n * @private\n */\n getPayloadLength64() {\n if (this._bufferedBytes < 8) {\n this._loop = false;\n return;\n }\n\n const buf = this.consume(8);\n const num = buf.readUInt32BE(0);\n\n //\n // The maximum safe integer in JavaScript is 2^53 - 1. An error is returned\n // if payload length is greater than this number.\n //\n if (num > Math.pow(2, 53 - 32) - 1) {\n this._loop = false;\n return error(\n RangeError,\n 'Unsupported WebSocket frame: payload length > 2^53 - 1',\n false,\n 1009,\n 'WS_ERR_UNSUPPORTED_DATA_PAYLOAD_LENGTH'\n );\n }\n\n this._payloadLength = num * Math.pow(2, 32) + buf.readUInt32BE(4);\n return this.haveLength();\n }\n\n /**\n * Payload length has been read.\n *\n * @return {(RangeError|undefined)} A possible error\n * @private\n */\n haveLength() {\n if (this._payloadLength && this._opcode < 0x08) {\n this._totalPayloadLength += this._payloadLength;\n if (this._totalPayloadLength > this._maxPayload && this._maxPayload > 0) {\n this._loop = false;\n return error(\n RangeError,\n 'Max payload size exceeded',\n false,\n 1009,\n 'WS_ERR_UNSUPPORTED_MESSAGE_LENGTH'\n );\n }\n }\n\n if (this._masked) this._state = GET_MASK;\n else this._state = GET_DATA;\n }\n\n /**\n * Reads mask bytes.\n *\n * @private\n */\n getMask() {\n if (this._bufferedBytes < 4) {\n this._loop = false;\n return;\n }\n\n this._mask = this.consume(4);\n this._state = GET_DATA;\n }\n\n /**\n * Reads data bytes.\n *\n * @param {Function} cb Callback\n * @return {(Error|RangeError|undefined)} A possible error\n * @private\n */\n getData(cb) {\n let data = EMPTY_BUFFER;\n\n if (this._payloadLength) {\n if (this._bufferedBytes < this._payloadLength) {\n this._loop = false;\n return;\n }\n\n data = this.consume(this._payloadLength);\n if (this._masked) unmask(data, this._mask);\n }\n\n if (this._opcode > 0x07) return this.controlMessage(data);\n\n if (this._compressed) {\n this._state = INFLATING;\n this.decompress(data, cb);\n return;\n }\n\n if (data.length) {\n //\n // This message is not compressed so its lenght is the sum of the payload\n // length of all fragments.\n //\n this._messageLength = this._totalPayloadLength;\n this._fragments.push(data);\n }\n\n return this.dataMessage();\n }\n\n /**\n * Decompresses data.\n *\n * @param {Buffer} data Compressed data\n * @param {Function} cb Callback\n * @private\n */\n decompress(data, cb) {\n const perMessageDeflate = this._extensions[PerMessageDeflate.extensionName];\n\n perMessageDeflate.decompress(data, this._fin, (err, buf) => {\n if (err) return cb(err);\n\n if (buf.length) {\n this._messageLength += buf.length;\n if (this._messageLength > this._maxPayload && this._maxPayload > 0) {\n return cb(\n error(\n RangeError,\n 'Max payload size exceeded',\n false,\n 1009,\n 'WS_ERR_UNSUPPORTED_MESSAGE_LENGTH'\n )\n );\n }\n\n this._fragments.push(buf);\n }\n\n const er = this.dataMessage();\n if (er) return cb(er);\n\n this.startLoop(cb);\n });\n }\n\n /**\n * Handles a data message.\n *\n * @return {(Error|undefined)} A possible error\n * @private\n */\n dataMessage() {\n if (this._fin) {\n const messageLength = this._messageLength;\n const fragments = this._fragments;\n\n this._totalPayloadLength = 0;\n this._messageLength = 0;\n this._fragmented = 0;\n this._fragments = [];\n\n if (this._opcode === 2) {\n let data;\n\n if (this._binaryType === 'nodebuffer') {\n data = concat(fragments, messageLength);\n } else if (this._binaryType === 'arraybuffer') {\n data = toArrayBuffer(concat(fragments, messageLength));\n } else {\n data = fragments;\n }\n\n this.emit('message', data);\n } else {\n const buf = concat(fragments, messageLength);\n\n if (!isValidUTF8(buf)) {\n this._loop = false;\n return error(\n Error,\n 'invalid UTF-8 sequence',\n true,\n 1007,\n 'WS_ERR_INVALID_UTF8'\n );\n }\n\n this.emit('message', buf.toString());\n }\n }\n\n this._state = GET_INFO;\n }\n\n /**\n * Handles a control message.\n *\n * @param {Buffer} data Data to handle\n * @return {(Error|RangeError|undefined)} A possible error\n * @private\n */\n controlMessage(data) {\n if (this._opcode === 0x08) {\n this._loop = false;\n\n if (data.length === 0) {\n this.emit('conclude', 1005, '');\n this.end();\n } else if (data.length === 1) {\n return error(\n RangeError,\n 'invalid payload length 1',\n true,\n 1002,\n 'WS_ERR_INVALID_CONTROL_PAYLOAD_LENGTH'\n );\n } else {\n const code = data.readUInt16BE(0);\n\n if (!isValidStatusCode(code)) {\n return error(\n RangeError,\n `invalid status code ${code}`,\n true,\n 1002,\n 'WS_ERR_INVALID_CLOSE_CODE'\n );\n }\n\n const buf = data.slice(2);\n\n if (!isValidUTF8(buf)) {\n return error(\n Error,\n 'invalid UTF-8 sequence',\n true,\n 1007,\n 'WS_ERR_INVALID_UTF8'\n );\n }\n\n this.emit('conclude', code, buf.toString());\n this.end();\n }\n } else if (this._opcode === 0x09) {\n this.emit('ping', data);\n } else {\n this.emit('pong', data);\n }\n\n this._state = GET_INFO;\n }\n}\n\nmodule.exports = Receiver;\n\n/**\n * Builds an error object.\n *\n * @param {function(new:Error|RangeError)} ErrorCtor The error constructor\n * @param {String} message The error message\n * @param {Boolean} prefix Specifies whether or not to add a default prefix to\n * `message`\n * @param {Number} statusCode The status code\n * @param {String} errorCode The exposed error code\n * @return {(Error|RangeError)} The error\n * @private\n */\nfunction error(ErrorCtor, message, prefix, statusCode, errorCode) {\n const err = new ErrorCtor(\n prefix ? `Invalid WebSocket frame: ${message}` : message\n );\n\n Error.captureStackTrace(err, error);\n err.code = errorCode;\n err[kStatusCode] = statusCode;\n return err;\n}\n", "/* eslint no-unused-vars: [\"error\", { \"varsIgnorePattern\": \"^net|tls$\" }] */\n\n'use strict';\n\nconst net = require('net');\nconst tls = require('tls');\nconst { randomFillSync } = require('crypto');\n\nconst PerMessageDeflate = require('./permessage-deflate');\nconst { EMPTY_BUFFER } = require('./constants');\nconst { isValidStatusCode } = require('./validation');\nconst { mask: applyMask, toBuffer } = require('./buffer-util');\n\nconst mask = Buffer.alloc(4);\n\n/**\n * HyBi Sender implementation.\n */\nclass Sender {\n /**\n * Creates a Sender instance.\n *\n * @param {(net.Socket|tls.Socket)} socket The connection socket\n * @param {Object} [extensions] An object containing the negotiated extensions\n */\n constructor(socket, extensions) {\n this._extensions = extensions || {};\n this._socket = socket;\n\n this._firstFragment = true;\n this._compress = false;\n\n this._bufferedBytes = 0;\n this._deflating = false;\n this._queue = [];\n }\n\n /**\n * Frames a piece of data according to the HyBi WebSocket protocol.\n *\n * @param {Buffer} data The data to frame\n * @param {Object} options Options object\n * @param {Number} options.opcode The opcode\n * @param {Boolean} [options.readOnly=false] Specifies whether `data` can be\n * modified\n * @param {Boolean} [options.fin=false] Specifies whether or not to set the\n * FIN bit\n * @param {Boolean} [options.mask=false] Specifies whether or not to mask\n * `data`\n * @param {Boolean} [options.rsv1=false] Specifies whether or not to set the\n * RSV1 bit\n * @return {Buffer[]} The framed data as a list of `Buffer` instances\n * @public\n */\n static frame(data, options) {\n const merge = options.mask && options.readOnly;\n let offset = options.mask ? 6 : 2;\n let payloadLength = data.length;\n\n if (data.length >= 65536) {\n offset += 8;\n payloadLength = 127;\n } else if (data.length > 125) {\n offset += 2;\n payloadLength = 126;\n }\n\n const target = Buffer.allocUnsafe(merge ? data.length + offset : offset);\n\n target[0] = options.fin ? options.opcode | 0x80 : options.opcode;\n if (options.rsv1) target[0] |= 0x40;\n\n target[1] = payloadLength;\n\n if (payloadLength === 126) {\n target.writeUInt16BE(data.length, 2);\n } else if (payloadLength === 127) {\n target.writeUInt32BE(0, 2);\n target.writeUInt32BE(data.length, 6);\n }\n\n if (!options.mask) return [target, data];\n\n randomFillSync(mask, 0, 4);\n\n target[1] |= 0x80;\n target[offset - 4] = mask[0];\n target[offset - 3] = mask[1];\n target[offset - 2] = mask[2];\n target[offset - 1] = mask[3];\n\n if (merge) {\n applyMask(data, mask, target, offset, data.length);\n return [target];\n }\n\n applyMask(data, mask, data, 0, data.length);\n return [target, data];\n }\n\n /**\n * Sends a close message to the other peer.\n *\n * @param {Number} [code] The status code component of the body\n * @param {String} [data] The message component of the body\n * @param {Boolean} [mask=false] Specifies whether or not to mask the message\n * @param {Function} [cb] Callback\n * @public\n */\n close(code, data, mask, cb) {\n let buf;\n\n if (code === undefined) {\n buf = EMPTY_BUFFER;\n } else if (typeof code !== 'number' || !isValidStatusCode(code)) {\n throw new TypeError('First argument must be a valid error code number');\n } else if (data === undefined || data === '') {\n buf = Buffer.allocUnsafe(2);\n buf.writeUInt16BE(code, 0);\n } else {\n const length = Buffer.byteLength(data);\n\n if (length > 123) {\n throw new RangeError('The message must not be greater than 123 bytes');\n }\n\n buf = Buffer.allocUnsafe(2 + length);\n buf.writeUInt16BE(code, 0);\n buf.write(data, 2);\n }\n\n if (this._deflating) {\n this.enqueue([this.doClose, buf, mask, cb]);\n } else {\n this.doClose(buf, mask, cb);\n }\n }\n\n /**\n * Frames and sends a close message.\n *\n * @param {Buffer} data The message to send\n * @param {Boolean} [mask=false] Specifies whether or not to mask `data`\n * @param {Function} [cb] Callback\n * @private\n */\n doClose(data, mask, cb) {\n this.sendFrame(\n Sender.frame(data, {\n fin: true,\n rsv1: false,\n opcode: 0x08,\n mask,\n readOnly: false\n }),\n cb\n );\n }\n\n /**\n * Sends a ping message to the other peer.\n *\n * @param {*} data The message to send\n * @param {Boolean} [mask=false] Specifies whether or not to mask `data`\n * @param {Function} [cb] Callback\n * @public\n */\n ping(data, mask, cb) {\n const buf = toBuffer(data);\n\n if (buf.length > 125) {\n throw new RangeError('The data size must not be greater than 125 bytes');\n }\n\n if (this._deflating) {\n this.enqueue([this.doPing, buf, mask, toBuffer.readOnly, cb]);\n } else {\n this.doPing(buf, mask, toBuffer.readOnly, cb);\n }\n }\n\n /**\n * Frames and sends a ping message.\n *\n * @param {Buffer} data The message to send\n * @param {Boolean} [mask=false] Specifies whether or not to mask `data`\n * @param {Boolean} [readOnly=false] Specifies whether `data` can be modified\n * @param {Function} [cb] Callback\n * @private\n */\n doPing(data, mask, readOnly, cb) {\n this.sendFrame(\n Sender.frame(data, {\n fin: true,\n rsv1: false,\n opcode: 0x09,\n mask,\n readOnly\n }),\n cb\n );\n }\n\n /**\n * Sends a pong message to the other peer.\n *\n * @param {*} data The message to send\n * @param {Boolean} [mask=false] Specifies whether or not to mask `data`\n * @param {Function} [cb] Callback\n * @public\n */\n pong(data, mask, cb) {\n const buf = toBuffer(data);\n\n if (buf.length > 125) {\n throw new RangeError('The data size must not be greater than 125 bytes');\n }\n\n if (this._deflating) {\n this.enqueue([this.doPong, buf, mask, toBuffer.readOnly, cb]);\n } else {\n this.doPong(buf, mask, toBuffer.readOnly, cb);\n }\n }\n\n /**\n * Frames and sends a pong message.\n *\n * @param {Buffer} data The message to send\n * @param {Boolean} [mask=false] Specifies whether or not to mask `data`\n * @param {Boolean} [readOnly=false] Specifies whether `data` can be modified\n * @param {Function} [cb] Callback\n * @private\n */\n doPong(data, mask, readOnly, cb) {\n this.sendFrame(\n Sender.frame(data, {\n fin: true,\n rsv1: false,\n opcode: 0x0a,\n mask,\n readOnly\n }),\n cb\n );\n }\n\n /**\n * Sends a data message to the other peer.\n *\n * @param {*} data The message to send\n * @param {Object} options Options object\n * @param {Boolean} [options.compress=false] Specifies whether or not to\n * compress `data`\n * @param {Boolean} [options.binary=false] Specifies whether `data` is binary\n * or text\n * @param {Boolean} [options.fin=false] Specifies whether the fragment is the\n * last one\n * @param {Boolean} [options.mask=false] Specifies whether or not to mask\n * `data`\n * @param {Function} [cb] Callback\n * @public\n */\n send(data, options, cb) {\n const buf = toBuffer(data);\n const perMessageDeflate = this._extensions[PerMessageDeflate.extensionName];\n let opcode = options.binary ? 2 : 1;\n let rsv1 = options.compress;\n\n if (this._firstFragment) {\n this._firstFragment = false;\n if (rsv1 && perMessageDeflate) {\n rsv1 = buf.length >= perMessageDeflate._threshold;\n }\n this._compress = rsv1;\n } else {\n rsv1 = false;\n opcode = 0;\n }\n\n if (options.fin) this._firstFragment = true;\n\n if (perMessageDeflate) {\n const opts = {\n fin: options.fin,\n rsv1,\n opcode,\n mask: options.mask,\n readOnly: toBuffer.readOnly\n };\n\n if (this._deflating) {\n this.enqueue([this.dispatch, buf, this._compress, opts, cb]);\n } else {\n this.dispatch(buf, this._compress, opts, cb);\n }\n } else {\n this.sendFrame(\n Sender.frame(buf, {\n fin: options.fin,\n rsv1: false,\n opcode,\n mask: options.mask,\n readOnly: toBuffer.readOnly\n }),\n cb\n );\n }\n }\n\n /**\n * Dispatches a data message.\n *\n * @param {Buffer} data The message to send\n * @param {Boolean} [compress=false] Specifies whether or not to compress\n * `data`\n * @param {Object} options Options object\n * @param {Number} options.opcode The opcode\n * @param {Boolean} [options.readOnly=false] Specifies whether `data` can be\n * modified\n * @param {Boolean} [options.fin=false] Specifies whether or not to set the\n * FIN bit\n * @param {Boolean} [options.mask=false] Specifies whether or not to mask\n * `data`\n * @param {Boolean} [options.rsv1=false] Specifies whether or not to set the\n * RSV1 bit\n * @param {Function} [cb] Callback\n * @private\n */\n dispatch(data, compress, options, cb) {\n if (!compress) {\n this.sendFrame(Sender.frame(data, options), cb);\n return;\n }\n\n const perMessageDeflate = this._extensions[PerMessageDeflate.extensionName];\n\n this._bufferedBytes += data.length;\n this._deflating = true;\n perMessageDeflate.compress(data, options.fin, (_, buf) => {\n if (this._socket.destroyed) {\n const err = new Error(\n 'The socket was closed while data was being compressed'\n );\n\n if (typeof cb === 'function') cb(err);\n\n for (let i = 0; i < this._queue.length; i++) {\n const callback = this._queue[i][4];\n\n if (typeof callback === 'function') callback(err);\n }\n\n return;\n }\n\n this._bufferedBytes -= data.length;\n this._deflating = false;\n options.readOnly = false;\n this.sendFrame(Sender.frame(buf, options), cb);\n this.dequeue();\n });\n }\n\n /**\n * Executes queued send operations.\n *\n * @private\n */\n dequeue() {\n while (!this._deflating && this._queue.length) {\n const params = this._queue.shift();\n\n this._bufferedBytes -= params[1].length;\n Reflect.apply(params[0], this, params.slice(1));\n }\n }\n\n /**\n * Enqueues a send operation.\n *\n * @param {Array} params Send operation parameters.\n * @private\n */\n enqueue(params) {\n this._bufferedBytes += params[1].length;\n this._queue.push(params);\n }\n\n /**\n * Sends a frame.\n *\n * @param {Buffer[]} list The frame to send\n * @param {Function} [cb] Callback\n * @private\n */\n sendFrame(list, cb) {\n if (list.length === 2) {\n this._socket.cork();\n this._socket.write(list[0]);\n this._socket.write(list[1], cb);\n this._socket.uncork();\n } else {\n this._socket.write(list[0], cb);\n }\n }\n}\n\nmodule.exports = Sender;\n", "'use strict';\n\n/**\n * Class representing an event.\n *\n * @private\n */\nclass Event {\n /**\n * Create a new `Event`.\n *\n * @param {String} type The name of the event\n * @param {Object} target A reference to the target to which the event was\n * dispatched\n */\n constructor(type, target) {\n this.target = target;\n this.type = type;\n }\n}\n\n/**\n * Class representing a message event.\n *\n * @extends Event\n * @private\n */\nclass MessageEvent extends Event {\n /**\n * Create a new `MessageEvent`.\n *\n * @param {(String|Buffer|ArrayBuffer|Buffer[])} data The received data\n * @param {WebSocket} target A reference to the target to which the event was\n * dispatched\n */\n constructor(data, target) {\n super('message', target);\n\n this.data = data;\n }\n}\n\n/**\n * Class representing a close event.\n *\n * @extends Event\n * @private\n */\nclass CloseEvent extends Event {\n /**\n * Create a new `CloseEvent`.\n *\n * @param {Number} code The status code explaining why the connection is being\n * closed\n * @param {String} reason A human-readable string explaining why the\n * connection is closing\n * @param {WebSocket} target A reference to the target to which the event was\n * dispatched\n */\n constructor(code, reason, target) {\n super('close', target);\n\n this.wasClean = target._closeFrameReceived && target._closeFrameSent;\n this.reason = reason;\n this.code = code;\n }\n}\n\n/**\n * Class representing an open event.\n *\n * @extends Event\n * @private\n */\nclass OpenEvent extends Event {\n /**\n * Create a new `OpenEvent`.\n *\n * @param {WebSocket} target A reference to the target to which the event was\n * dispatched\n */\n constructor(target) {\n super('open', target);\n }\n}\n\n/**\n * Class representing an error event.\n *\n * @extends Event\n * @private\n */\nclass ErrorEvent extends Event {\n /**\n * Create a new `ErrorEvent`.\n *\n * @param {Object} error The error that generated this event\n * @param {WebSocket} target A reference to the target to which the event was\n * dispatched\n */\n constructor(error, target) {\n super('error', target);\n\n this.message = error.message;\n this.error = error;\n }\n}\n\n/**\n * This provides methods for emulating the `EventTarget` interface. It's not\n * meant to be used directly.\n *\n * @mixin\n */\nconst EventTarget = {\n /**\n * Register an event listener.\n *\n * @param {String} type A string representing the event type to listen for\n * @param {Function} listener The listener to add\n * @param {Object} [options] An options object specifies characteristics about\n * the event listener\n * @param {Boolean} [options.once=false] A `Boolean`` indicating that the\n * listener should be invoked at most once after being added. If `true`,\n * the listener would be automatically removed when invoked.\n * @public\n */\n addEventListener(type, listener, options) {\n if (typeof listener !== 'function') return;\n\n function onMessage(data) {\n listener.call(this, new MessageEvent(data, this));\n }\n\n function onClose(code, message) {\n listener.call(this, new CloseEvent(code, message, this));\n }\n\n function onError(error) {\n listener.call(this, new ErrorEvent(error, this));\n }\n\n function onOpen() {\n listener.call(this, new OpenEvent(this));\n }\n\n const method = options && options.once ? 'once' : 'on';\n\n if (type === 'message') {\n onMessage._listener = listener;\n this[method](type, onMessage);\n } else if (type === 'close') {\n onClose._listener = listener;\n this[method](type, onClose);\n } else if (type === 'error') {\n onError._listener = listener;\n this[method](type, onError);\n } else if (type === 'open') {\n onOpen._listener = listener;\n this[method](type, onOpen);\n } else {\n this[method](type, listener);\n }\n },\n\n /**\n * Remove an event listener.\n *\n * @param {String} type A string representing the event type to remove\n * @param {Function} listener The listener to remove\n * @public\n */\n removeEventListener(type, listener) {\n const listeners = this.listeners(type);\n\n for (let i = 0; i < listeners.length; i++) {\n if (listeners[i] === listener || listeners[i]._listener === listener) {\n this.removeListener(type, listeners[i]);\n }\n }\n }\n};\n\nmodule.exports = EventTarget;\n", "'use strict';\n\n//\n// Allowed token characters:\n//\n// '!', '#', '$', '%', '&', ''', '*', '+', '-',\n// '.', 0-9, A-Z, '^', '_', '`', a-z, '|', '~'\n//\n// tokenChars[32] === 0 // ' '\n// tokenChars[33] === 1 // '!'\n// tokenChars[34] === 0 // '\"'\n// ...\n//\n// prettier-ignore\nconst tokenChars = [\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 0 - 15\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 16 - 31\n 0, 1, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, // 32 - 47\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, // 48 - 63\n 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 64 - 79\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, // 80 - 95\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 96 - 111\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0 // 112 - 127\n];\n\n/**\n * Adds an offer to the map of extension offers or a parameter to the map of\n * parameters.\n *\n * @param {Object} dest The map of extension offers or parameters\n * @param {String} name The extension or parameter name\n * @param {(Object|Boolean|String)} elem The extension parameters or the\n * parameter value\n * @private\n */\nfunction push(dest, name, elem) {\n if (dest[name] === undefined) dest[name] = [elem];\n else dest[name].push(elem);\n}\n\n/**\n * Parses the `Sec-WebSocket-Extensions` header into an object.\n *\n * @param {String} header The field value of the header\n * @return {Object} The parsed object\n * @public\n */\nfunction parse(header) {\n const offers = Object.create(null);\n\n if (header === undefined || header === '') return offers;\n\n let params = Object.create(null);\n let mustUnescape = false;\n let isEscaping = false;\n let inQuotes = false;\n let extensionName;\n let paramName;\n let start = -1;\n let end = -1;\n let i = 0;\n\n for (; i < header.length; i++) {\n const code = header.charCodeAt(i);\n\n if (extensionName === undefined) {\n if (end === -1 && tokenChars[code] === 1) {\n if (start === -1) start = i;\n } else if (code === 0x20 /* ' ' */ || code === 0x09 /* '\\t' */) {\n if (end === -1 && start !== -1) end = i;\n } else if (code === 0x3b /* ';' */ || code === 0x2c /* ',' */) {\n if (start === -1) {\n throw new SyntaxError(`Unexpected character at index ${i}`);\n }\n\n if (end === -1) end = i;\n const name = header.slice(start, end);\n if (code === 0x2c) {\n push(offers, name, params);\n params = Object.create(null);\n } else {\n extensionName = name;\n }\n\n start = end = -1;\n } else {\n throw new SyntaxError(`Unexpected character at index ${i}`);\n }\n } else if (paramName === undefined) {\n if (end === -1 && tokenChars[code] === 1) {\n if (start === -1) start = i;\n } else if (code === 0x20 || code === 0x09) {\n if (end === -1 && start !== -1) end = i;\n } else if (code === 0x3b || code === 0x2c) {\n if (start === -1) {\n throw new SyntaxError(`Unexpected character at index ${i}`);\n }\n\n if (end === -1) end = i;\n push(params, header.slice(start, end), true);\n if (code === 0x2c) {\n push(offers, extensionName, params);\n params = Object.create(null);\n extensionName = undefined;\n }\n\n start = end = -1;\n } else if (code === 0x3d /* '=' */ && start !== -1 && end === -1) {\n paramName = header.slice(start, i);\n start = end = -1;\n } else {\n throw new SyntaxError(`Unexpected character at index ${i}`);\n }\n } else {\n //\n // The value of a quoted-string after unescaping must conform to the\n // token ABNF, so only token characters are valid.\n // Ref: https://tools.ietf.org/html/rfc6455#section-9.1\n //\n if (isEscaping) {\n if (tokenChars[code] !== 1) {\n throw new SyntaxError(`Unexpected character at index ${i}`);\n }\n if (start === -1) start = i;\n else if (!mustUnescape) mustUnescape = true;\n isEscaping = false;\n } else if (inQuotes) {\n if (tokenChars[code] === 1) {\n if (start === -1) start = i;\n } else if (code === 0x22 /* '\"' */ && start !== -1) {\n inQuotes = false;\n end = i;\n } else if (code === 0x5c /* '\\' */) {\n isEscaping = true;\n } else {\n throw new SyntaxError(`Unexpected character at index ${i}`);\n }\n } else if (code === 0x22 && header.charCodeAt(i - 1) === 0x3d) {\n inQuotes = true;\n } else if (end === -1 && tokenChars[code] === 1) {\n if (start === -1) start = i;\n } else if (start !== -1 && (code === 0x20 || code === 0x09)) {\n if (end === -1) end = i;\n } else if (code === 0x3b || code === 0x2c) {\n if (start === -1) {\n throw new SyntaxError(`Unexpected character at index ${i}`);\n }\n\n if (end === -1) end = i;\n let value = header.slice(start, end);\n if (mustUnescape) {\n value = value.replace(/\\\\/g, '');\n mustUnescape = false;\n }\n push(params, paramName, value);\n if (code === 0x2c) {\n push(offers, extensionName, params);\n params = Object.create(null);\n extensionName = undefined;\n }\n\n paramName = undefined;\n start = end = -1;\n } else {\n throw new SyntaxError(`Unexpected character at index ${i}`);\n }\n }\n }\n\n if (start === -1 || inQuotes) {\n throw new SyntaxError('Unexpected end of input');\n }\n\n if (end === -1) end = i;\n const token = header.slice(start, end);\n if (extensionName === undefined) {\n push(offers, token, params);\n } else {\n if (paramName === undefined) {\n push(params, token, true);\n } else if (mustUnescape) {\n push(params, paramName, token.replace(/\\\\/g, ''));\n } else {\n push(params, paramName, token);\n }\n push(offers, extensionName, params);\n }\n\n return offers;\n}\n\n/**\n * Builds the `Sec-WebSocket-Extensions` header field value.\n *\n * @param {Object} extensions The map of extensions and parameters to format\n * @return {String} A string representing the given object\n * @public\n */\nfunction format(extensions) {\n return Object.keys(extensions)\n .map((extension) => {\n let configurations = extensions[extension];\n if (!Array.isArray(configurations)) configurations = [configurations];\n return configurations\n .map((params) => {\n return [extension]\n .concat(\n Object.keys(params).map((k) => {\n let values = params[k];\n if (!Array.isArray(values)) values = [values];\n return values\n .map((v) => (v === true ? k : `${k}=${v}`))\n .join('; ');\n })\n )\n .join('; ');\n })\n .join(', ');\n })\n .join(', ');\n}\n\nmodule.exports = { format, parse };\n", "/* eslint no-unused-vars: [\"error\", { \"varsIgnorePattern\": \"^Readable$\" }] */\n\n'use strict';\n\nconst EventEmitter = require('events');\nconst https = require('https');\nconst http = require('http');\nconst net = require('net');\nconst tls = require('tls');\nconst { randomBytes, createHash } = require('crypto');\nconst { Readable } = require('stream');\nconst { URL } = require('url');\n\nconst PerMessageDeflate = require('./permessage-deflate');\nconst Receiver = require('./receiver');\nconst Sender = require('./sender');\nconst {\n BINARY_TYPES,\n EMPTY_BUFFER,\n GUID,\n kStatusCode,\n kWebSocket,\n NOOP\n} = require('./constants');\nconst { addEventListener, removeEventListener } = require('./event-target');\nconst { format, parse } = require('./extension');\nconst { toBuffer } = require('./buffer-util');\n\nconst readyStates = ['CONNECTING', 'OPEN', 'CLOSING', 'CLOSED'];\nconst protocolVersions = [8, 13];\nconst closeTimeout = 30 * 1000;\n\n/**\n * Class representing a WebSocket.\n *\n * @extends EventEmitter\n */\nclass WebSocket extends EventEmitter {\n /**\n * Create a new `WebSocket`.\n *\n * @param {(String|URL)} address The URL to which to connect\n * @param {(String|String[])} [protocols] The subprotocols\n * @param {Object} [options] Connection options\n */\n constructor(address, protocols, options) {\n super();\n\n this._binaryType = BINARY_TYPES[0];\n this._closeCode = 1006;\n this._closeFrameReceived = false;\n this._closeFrameSent = false;\n this._closeMessage = '';\n this._closeTimer = null;\n this._extensions = {};\n this._protocol = '';\n this._readyState = WebSocket.CONNECTING;\n this._receiver = null;\n this._sender = null;\n this._socket = null;\n\n if (address !== null) {\n this._bufferedAmount = 0;\n this._isServer = false;\n this._redirects = 0;\n\n if (Array.isArray(protocols)) {\n protocols = protocols.join(', ');\n } else if (typeof protocols === 'object' && protocols !== null) {\n options = protocols;\n protocols = undefined;\n }\n\n initAsClient(this, address, protocols, options);\n } else {\n this._isServer = true;\n }\n }\n\n /**\n * This deviates from the WHATWG interface since ws doesn't support the\n * required default \"blob\" type (instead we define a custom \"nodebuffer\"\n * type).\n *\n * @type {String}\n */\n get binaryType() {\n return this._binaryType;\n }\n\n set binaryType(type) {\n if (!BINARY_TYPES.includes(type)) return;\n\n this._binaryType = type;\n\n //\n // Allow to change `binaryType` on the fly.\n //\n if (this._receiver) this._receiver._binaryType = type;\n }\n\n /**\n * @type {Number}\n */\n get bufferedAmount() {\n if (!this._socket) return this._bufferedAmount;\n\n return this._socket._writableState.length + this._sender._bufferedBytes;\n }\n\n /**\n * @type {String}\n */\n get extensions() {\n return Object.keys(this._extensions).join();\n }\n\n /**\n * @type {Function}\n */\n /* istanbul ignore next */\n get onclose() {\n return undefined;\n }\n\n /* istanbul ignore next */\n set onclose(listener) {}\n\n /**\n * @type {Function}\n */\n /* istanbul ignore next */\n get onerror() {\n return undefined;\n }\n\n /* istanbul ignore next */\n set onerror(listener) {}\n\n /**\n * @type {Function}\n */\n /* istanbul ignore next */\n get onopen() {\n return undefined;\n }\n\n /* istanbul ignore next */\n set onopen(listener) {}\n\n /**\n * @type {Function}\n */\n /* istanbul ignore next */\n get onmessage() {\n return undefined;\n }\n\n /* istanbul ignore next */\n set onmessage(listener) {}\n\n /**\n * @type {String}\n */\n get protocol() {\n return this._protocol;\n }\n\n /**\n * @type {Number}\n */\n get readyState() {\n return this._readyState;\n }\n\n /**\n * @type {String}\n */\n get url() {\n return this._url;\n }\n\n /**\n * Set up the socket and the internal resources.\n *\n * @param {(net.Socket|tls.Socket)} socket The network socket between the\n * server and client\n * @param {Buffer} head The first packet of the upgraded stream\n * @param {Number} [maxPayload=0] The maximum allowed message size\n * @private\n */\n setSocket(socket, head, maxPayload) {\n const receiver = new Receiver(\n this.binaryType,\n this._extensions,\n this._isServer,\n maxPayload\n );\n\n this._sender = new Sender(socket, this._extensions);\n this._receiver = receiver;\n this._socket = socket;\n\n receiver[kWebSocket] = this;\n socket[kWebSocket] = this;\n\n receiver.on('conclude', receiverOnConclude);\n receiver.on('drain', receiverOnDrain);\n receiver.on('error', receiverOnError);\n receiver.on('message', receiverOnMessage);\n receiver.on('ping', receiverOnPing);\n receiver.on('pong', receiverOnPong);\n\n socket.setTimeout(0);\n socket.setNoDelay();\n\n if (head.length > 0) socket.unshift(head);\n\n socket.on('close', socketOnClose);\n socket.on('data', socketOnData);\n socket.on('end', socketOnEnd);\n socket.on('error', socketOnError);\n\n this._readyState = WebSocket.OPEN;\n this.emit('open');\n }\n\n /**\n * Emit the `'close'` event.\n *\n * @private\n */\n emitClose() {\n if (!this._socket) {\n this._readyState = WebSocket.CLOSED;\n this.emit('close', this._closeCode, this._closeMessage);\n return;\n }\n\n if (this._extensions[PerMessageDeflate.extensionName]) {\n this._extensions[PerMessageDeflate.extensionName].cleanup();\n }\n\n this._receiver.removeAllListeners();\n this._readyState = WebSocket.CLOSED;\n this.emit('close', this._closeCode, this._closeMessage);\n }\n\n /**\n * Start a closing handshake.\n *\n * +----------+ +-----------+ +----------+\n * - - -|ws.close()|-->|close frame|-->|ws.close()|- - -\n * | +----------+ +-----------+ +----------+ |\n * +----------+ +-----------+ |\n * CLOSING |ws.close()|<--|close frame|<--+-----+ CLOSING\n * +----------+ +-----------+ |\n * | | | +---+ |\n * +------------------------+-->|fin| - - - -\n * | +---+ | +---+\n * - - - - -|fin|<---------------------+\n * +---+\n *\n * @param {Number} [code] Status code explaining why the connection is closing\n * @param {String} [data] A string explaining why the connection is closing\n * @public\n */\n close(code, data) {\n if (this.readyState === WebSocket.CLOSED) return;\n if (this.readyState === WebSocket.CONNECTING) {\n const msg = 'WebSocket was closed before the connection was established';\n return abortHandshake(this, this._req, msg);\n }\n\n if (this.readyState === WebSocket.CLOSING) {\n if (\n this._closeFrameSent &&\n (this._closeFrameReceived || this._receiver._writableState.errorEmitted)\n ) {\n this._socket.end();\n }\n\n return;\n }\n\n this._readyState = WebSocket.CLOSING;\n this._sender.close(code, data, !this._isServer, (err) => {\n //\n // This error is handled by the `'error'` listener on the socket. We only\n // want to know if the close frame has been sent here.\n //\n if (err) return;\n\n this._closeFrameSent = true;\n\n if (\n this._closeFrameReceived ||\n this._receiver._writableState.errorEmitted\n ) {\n this._socket.end();\n }\n });\n\n //\n // Specify a timeout for the closing handshake to complete.\n //\n this._closeTimer = setTimeout(\n this._socket.destroy.bind(this._socket),\n closeTimeout\n );\n }\n\n /**\n * Send a ping.\n *\n * @param {*} [data] The data to send\n * @param {Boolean} [mask] Indicates whether or not to mask `data`\n * @param {Function} [cb] Callback which is executed when the ping is sent\n * @public\n */\n ping(data, mask, cb) {\n if (this.readyState === WebSocket.CONNECTING) {\n throw new Error('WebSocket is not open: readyState 0 (CONNECTING)');\n }\n\n if (typeof data === 'function') {\n cb = data;\n data = mask = undefined;\n } else if (typeof mask === 'function') {\n cb = mask;\n mask = undefined;\n }\n\n if (typeof data === 'number') data = data.toString();\n\n if (this.readyState !== WebSocket.OPEN) {\n sendAfterClose(this, data, cb);\n return;\n }\n\n if (mask === undefined) mask = !this._isServer;\n this._sender.ping(data || EMPTY_BUFFER, mask, cb);\n }\n\n /**\n * Send a pong.\n *\n * @param {*} [data] The data to send\n * @param {Boolean} [mask] Indicates whether or not to mask `data`\n * @param {Function} [cb] Callback which is executed when the pong is sent\n * @public\n */\n pong(data, mask, cb) {\n if (this.readyState === WebSocket.CONNECTING) {\n throw new Error('WebSocket is not open: readyState 0 (CONNECTING)');\n }\n\n if (typeof data === 'function') {\n cb = data;\n data = mask = undefined;\n } else if (typeof mask === 'function') {\n cb = mask;\n mask = undefined;\n }\n\n if (typeof data === 'number') data = data.toString();\n\n if (this.readyState !== WebSocket.OPEN) {\n sendAfterClose(this, data, cb);\n return;\n }\n\n if (mask === undefined) mask = !this._isServer;\n this._sender.pong(data || EMPTY_BUFFER, mask, cb);\n }\n\n /**\n * Send a data message.\n *\n * @param {*} data The message to send\n * @param {Object} [options] Options object\n * @param {Boolean} [options.compress] Specifies whether or not to compress\n * `data`\n * @param {Boolean} [options.binary] Specifies whether `data` is binary or\n * text\n * @param {Boolean} [options.fin=true] Specifies whether the fragment is the\n * last one\n * @param {Boolean} [options.mask] Specifies whether or not to mask `data`\n * @param {Function} [cb] Callback which is executed when data is written out\n * @public\n */\n send(data, options, cb) {\n if (this.readyState === WebSocket.CONNECTING) {\n throw new Error('WebSocket is not open: readyState 0 (CONNECTING)');\n }\n\n if (typeof options === 'function') {\n cb = options;\n options = {};\n }\n\n if (typeof data === 'number') data = data.toString();\n\n if (this.readyState !== WebSocket.OPEN) {\n sendAfterClose(this, data, cb);\n return;\n }\n\n const opts = {\n binary: typeof data !== 'string',\n mask: !this._isServer,\n compress: true,\n fin: true,\n ...options\n };\n\n if (!this._extensions[PerMessageDeflate.extensionName]) {\n opts.compress = false;\n }\n\n this._sender.send(data || EMPTY_BUFFER, opts, cb);\n }\n\n /**\n * Forcibly close the connection.\n *\n * @public\n */\n terminate() {\n if (this.readyState === WebSocket.CLOSED) return;\n if (this.readyState === WebSocket.CONNECTING) {\n const msg = 'WebSocket was closed before the connection was established';\n return abortHandshake(this, this._req, msg);\n }\n\n if (this._socket) {\n this._readyState = WebSocket.CLOSING;\n this._socket.destroy();\n }\n }\n}\n\n/**\n * @constant {Number} CONNECTING\n * @memberof WebSocket\n */\nObject.defineProperty(WebSocket, 'CONNECTING', {\n enumerable: true,\n value: readyStates.indexOf('CONNECTING')\n});\n\n/**\n * @constant {Number} CONNECTING\n * @memberof WebSocket.prototype\n */\nObject.defineProperty(WebSocket.prototype, 'CONNECTING', {\n enumerable: true,\n value: readyStates.indexOf('CONNECTING')\n});\n\n/**\n * @constant {Number} OPEN\n * @memberof WebSocket\n */\nObject.defineProperty(WebSocket, 'OPEN', {\n enumerable: true,\n value: readyStates.indexOf('OPEN')\n});\n\n/**\n * @constant {Number} OPEN\n * @memberof WebSocket.prototype\n */\nObject.defineProperty(WebSocket.prototype, 'OPEN', {\n enumerable: true,\n value: readyStates.indexOf('OPEN')\n});\n\n/**\n * @constant {Number} CLOSING\n * @memberof WebSocket\n */\nObject.defineProperty(WebSocket, 'CLOSING', {\n enumerable: true,\n value: readyStates.indexOf('CLOSING')\n});\n\n/**\n * @constant {Number} CLOSING\n * @memberof WebSocket.prototype\n */\nObject.defineProperty(WebSocket.prototype, 'CLOSING', {\n enumerable: true,\n value: readyStates.indexOf('CLOSING')\n});\n\n/**\n * @constant {Number} CLOSED\n * @memberof WebSocket\n */\nObject.defineProperty(WebSocket, 'CLOSED', {\n enumerable: true,\n value: readyStates.indexOf('CLOSED')\n});\n\n/**\n * @constant {Number} CLOSED\n * @memberof WebSocket.prototype\n */\nObject.defineProperty(WebSocket.prototype, 'CLOSED', {\n enumerable: true,\n value: readyStates.indexOf('CLOSED')\n});\n\n[\n 'binaryType',\n 'bufferedAmount',\n 'extensions',\n 'protocol',\n 'readyState',\n 'url'\n].forEach((property) => {\n Object.defineProperty(WebSocket.prototype, property, { enumerable: true });\n});\n\n//\n// Add the `onopen`, `onerror`, `onclose`, and `onmessage` attributes.\n// See https://html.spec.whatwg.org/multipage/comms.html#the-websocket-interface\n//\n['open', 'error', 'close', 'message'].forEach((method) => {\n Object.defineProperty(WebSocket.prototype, `on${method}`, {\n enumerable: true,\n get() {\n const listeners = this.listeners(method);\n for (let i = 0; i < listeners.length; i++) {\n if (listeners[i]._listener) return listeners[i]._listener;\n }\n\n return undefined;\n },\n set(listener) {\n const listeners = this.listeners(method);\n for (let i = 0; i < listeners.length; i++) {\n //\n // Remove only the listeners added via `addEventListener`.\n //\n if (listeners[i]._listener) this.removeListener(method, listeners[i]);\n }\n this.addEventListener(method, listener);\n }\n });\n});\n\nWebSocket.prototype.addEventListener = addEventListener;\nWebSocket.prototype.removeEventListener = removeEventListener;\n\nmodule.exports = WebSocket;\n\n/**\n * Initialize a WebSocket client.\n *\n * @param {WebSocket} websocket The client to initialize\n * @param {(String|URL)} address The URL to which to connect\n * @param {String} [protocols] The subprotocols\n * @param {Object} [options] Connection options\n * @param {(Boolean|Object)} [options.perMessageDeflate=true] Enable/disable\n * permessage-deflate\n * @param {Number} [options.handshakeTimeout] Timeout in milliseconds for the\n * handshake request\n * @param {Number} [options.protocolVersion=13] Value of the\n * `Sec-WebSocket-Version` header\n * @param {String} [options.origin] Value of the `Origin` or\n * `Sec-WebSocket-Origin` header\n * @param {Number} [options.maxPayload=104857600] The maximum allowed message\n * size\n * @param {Boolean} [options.followRedirects=false] Whether or not to follow\n * redirects\n * @param {Number} [options.maxRedirects=10] The maximum number of redirects\n * allowed\n * @private\n */\nfunction initAsClient(websocket, address, protocols, options) {\n const opts = {\n protocolVersion: protocolVersions[1],\n maxPayload: 100 * 1024 * 1024,\n perMessageDeflate: true,\n followRedirects: false,\n maxRedirects: 10,\n ...options,\n createConnection: undefined,\n socketPath: undefined,\n hostname: undefined,\n protocol: undefined,\n timeout: undefined,\n method: undefined,\n host: undefined,\n path: undefined,\n port: undefined\n };\n\n if (!protocolVersions.includes(opts.protocolVersion)) {\n throw new RangeError(\n `Unsupported protocol version: ${opts.protocolVersion} ` +\n `(supported versions: ${protocolVersions.join(', ')})`\n );\n }\n\n let parsedUrl;\n\n if (address instanceof URL) {\n parsedUrl = address;\n websocket._url = address.href;\n } else {\n parsedUrl = new URL(address);\n websocket._url = address;\n }\n\n const isUnixSocket = parsedUrl.protocol === 'ws+unix:';\n\n if (!parsedUrl.host && (!isUnixSocket || !parsedUrl.pathname)) {\n const err = new Error(`Invalid URL: ${websocket.url}`);\n\n if (websocket._redirects === 0) {\n throw err;\n } else {\n emitErrorAndClose(websocket, err);\n return;\n }\n }\n\n const isSecure =\n parsedUrl.protocol === 'wss:' || parsedUrl.protocol === 'https:';\n const defaultPort = isSecure ? 443 : 80;\n const key = randomBytes(16).toString('base64');\n const get = isSecure ? https.get : http.get;\n let perMessageDeflate;\n\n opts.createConnection = isSecure ? tlsConnect : netConnect;\n opts.defaultPort = opts.defaultPort || defaultPort;\n opts.port = parsedUrl.port || defaultPort;\n opts.host = parsedUrl.hostname.startsWith('[')\n ? parsedUrl.hostname.slice(1, -1)\n : parsedUrl.hostname;\n opts.headers = {\n 'Sec-WebSocket-Version': opts.protocolVersion,\n 'Sec-WebSocket-Key': key,\n Connection: 'Upgrade',\n Upgrade: 'websocket',\n ...opts.headers\n };\n opts.path = parsedUrl.pathname + parsedUrl.search;\n opts.timeout = opts.handshakeTimeout;\n\n if (opts.perMessageDeflate) {\n perMessageDeflate = new PerMessageDeflate(\n opts.perMessageDeflate !== true ? opts.perMessageDeflate : {},\n false,\n opts.maxPayload\n );\n opts.headers['Sec-WebSocket-Extensions'] = format({\n [PerMessageDeflate.extensionName]: perMessageDeflate.offer()\n });\n }\n if (protocols) {\n opts.headers['Sec-WebSocket-Protocol'] = protocols;\n }\n if (opts.origin) {\n if (opts.protocolVersion < 13) {\n opts.headers['Sec-WebSocket-Origin'] = opts.origin;\n } else {\n opts.headers.Origin = opts.origin;\n }\n }\n if (parsedUrl.username || parsedUrl.password) {\n opts.auth = `${parsedUrl.username}:${parsedUrl.password}`;\n }\n\n if (isUnixSocket) {\n const parts = opts.path.split(':');\n\n opts.socketPath = parts[0];\n opts.path = parts[1];\n }\n\n if (opts.followRedirects) {\n if (websocket._redirects === 0) {\n websocket._originalUnixSocket = isUnixSocket;\n websocket._originalSecure = isSecure;\n websocket._originalHostOrSocketPath = isUnixSocket\n ? opts.socketPath\n : parsedUrl.host;\n\n const headers = options && options.headers;\n\n //\n // Shallow copy the user provided options so that headers can be changed\n // without mutating the original object.\n //\n options = { ...options, headers: {} };\n\n if (headers) {\n for (const [key, value] of Object.entries(headers)) {\n options.headers[key.toLowerCase()] = value;\n }\n }\n } else {\n const isSameHost = isUnixSocket\n ? websocket._originalUnixSocket\n ? opts.socketPath === websocket._originalHostOrSocketPath\n : false\n : websocket._originalUnixSocket\n ? false\n : parsedUrl.host === websocket._originalHostOrSocketPath;\n\n if (!isSameHost || (websocket._originalSecure && !isSecure)) {\n //\n // Match curl 7.77.0 behavior and drop the following headers. These\n // headers are also dropped when following a redirect to a subdomain.\n //\n delete opts.headers.authorization;\n delete opts.headers.cookie;\n\n if (!isSameHost) delete opts.headers.host;\n\n opts.auth = undefined;\n }\n }\n\n //\n // Match curl 7.77.0 behavior and make the first `Authorization` header win.\n // If the `Authorization` header is set, then there is nothing to do as it\n // will take precedence.\n //\n if (opts.auth && !options.headers.authorization) {\n options.headers.authorization =\n 'Basic ' + Buffer.from(opts.auth).toString('base64');\n }\n }\n\n let req = (websocket._req = get(opts));\n\n if (opts.timeout) {\n req.on('timeout', () => {\n abortHandshake(websocket, req, 'Opening handshake has timed out');\n });\n }\n\n req.on('error', (err) => {\n if (req === null || req.aborted) return;\n\n req = websocket._req = null;\n emitErrorAndClose(websocket, err);\n });\n\n req.on('response', (res) => {\n const location = res.headers.location;\n const statusCode = res.statusCode;\n\n if (\n location &&\n opts.followRedirects &&\n statusCode >= 300 &&\n statusCode < 400\n ) {\n if (++websocket._redirects > opts.maxRedirects) {\n abortHandshake(websocket, req, 'Maximum redirects exceeded');\n return;\n }\n\n req.abort();\n\n let addr;\n\n try {\n addr = new URL(location, address);\n } catch (err) {\n emitErrorAndClose(websocket, err);\n return;\n }\n\n initAsClient(websocket, addr, protocols, options);\n } else if (!websocket.emit('unexpected-response', req, res)) {\n abortHandshake(\n websocket,\n req,\n `Unexpected server response: ${res.statusCode}`\n );\n }\n });\n\n req.on('upgrade', (res, socket, head) => {\n websocket.emit('upgrade', res);\n\n //\n // The user may have closed the connection from a listener of the `upgrade`\n // event.\n //\n if (websocket.readyState !== WebSocket.CONNECTING) return;\n\n req = websocket._req = null;\n\n if (res.headers.upgrade.toLowerCase() !== 'websocket') {\n abortHandshake(websocket, socket, 'Invalid Upgrade header');\n return;\n }\n\n const digest = createHash('sha1')\n .update(key + GUID)\n .digest('base64');\n\n if (res.headers['sec-websocket-accept'] !== digest) {\n abortHandshake(websocket, socket, 'Invalid Sec-WebSocket-Accept header');\n return;\n }\n\n const serverProt = res.headers['sec-websocket-protocol'];\n const protList = (protocols || '').split(/, */);\n let protError;\n\n if (!protocols && serverProt) {\n protError = 'Server sent a subprotocol but none was requested';\n } else if (protocols && !serverProt) {\n protError = 'Server sent no subprotocol';\n } else if (serverProt && !protList.includes(serverProt)) {\n protError = 'Server sent an invalid subprotocol';\n }\n\n if (protError) {\n abortHandshake(websocket, socket, protError);\n return;\n }\n\n if (serverProt) websocket._protocol = serverProt;\n\n const secWebSocketExtensions = res.headers['sec-websocket-extensions'];\n\n if (secWebSocketExtensions !== undefined) {\n if (!perMessageDeflate) {\n const message =\n 'Server sent a Sec-WebSocket-Extensions header but no extension ' +\n 'was requested';\n abortHandshake(websocket, socket, message);\n return;\n }\n\n let extensions;\n\n try {\n extensions = parse(secWebSocketExtensions);\n } catch (err) {\n const message = 'Invalid Sec-WebSocket-Extensions header';\n abortHandshake(websocket, socket, message);\n return;\n }\n\n const extensionNames = Object.keys(extensions);\n\n if (extensionNames.length) {\n if (\n extensionNames.length !== 1 ||\n extensionNames[0] !== PerMessageDeflate.extensionName\n ) {\n const message =\n 'Server indicated an extension that was not requested';\n abortHandshake(websocket, socket, message);\n return;\n }\n\n try {\n perMessageDeflate.accept(extensions[PerMessageDeflate.extensionName]);\n } catch (err) {\n const message = 'Invalid Sec-WebSocket-Extensions header';\n abortHandshake(websocket, socket, message);\n return;\n }\n\n websocket._extensions[PerMessageDeflate.extensionName] =\n perMessageDeflate;\n }\n }\n\n websocket.setSocket(socket, head, opts.maxPayload);\n });\n}\n\n/**\n * Emit the `'error'` and `'close'` event.\n *\n * @param {WebSocket} websocket The WebSocket instance\n * @param {Error} The error to emit\n * @private\n */\nfunction emitErrorAndClose(websocket, err) {\n websocket._readyState = WebSocket.CLOSING;\n websocket.emit('error', err);\n websocket.emitClose();\n}\n\n/**\n * Create a `net.Socket` and initiate a connection.\n *\n * @param {Object} options Connection options\n * @return {net.Socket} The newly created socket used to start the connection\n * @private\n */\nfunction netConnect(options) {\n options.path = options.socketPath;\n return net.connect(options);\n}\n\n/**\n * Create a `tls.TLSSocket` and initiate a connection.\n *\n * @param {Object} options Connection options\n * @return {tls.TLSSocket} The newly created socket used to start the connection\n * @private\n */\nfunction tlsConnect(options) {\n options.path = undefined;\n\n if (!options.servername && options.servername !== '') {\n options.servername = net.isIP(options.host) ? '' : options.host;\n }\n\n return tls.connect(options);\n}\n\n/**\n * Abort the handshake and emit an error.\n *\n * @param {WebSocket} websocket The WebSocket instance\n * @param {(http.ClientRequest|net.Socket|tls.Socket)} stream The request to\n * abort or the socket to destroy\n * @param {String} message The error message\n * @private\n */\nfunction abortHandshake(websocket, stream, message) {\n websocket._readyState = WebSocket.CLOSING;\n\n const err = new Error(message);\n Error.captureStackTrace(err, abortHandshake);\n\n if (stream.setHeader) {\n stream.abort();\n\n if (stream.socket && !stream.socket.destroyed) {\n //\n // On Node.js >= 14.3.0 `request.abort()` does not destroy the socket if\n // called after the request completed. See\n // https://github.com/websockets/ws/issues/1869.\n //\n stream.socket.destroy();\n }\n\n stream.once('abort', websocket.emitClose.bind(websocket));\n websocket.emit('error', err);\n } else {\n stream.destroy(err);\n stream.once('error', websocket.emit.bind(websocket, 'error'));\n stream.once('close', websocket.emitClose.bind(websocket));\n }\n}\n\n/**\n * Handle cases where the `ping()`, `pong()`, or `send()` methods are called\n * when the `readyState` attribute is `CLOSING` or `CLOSED`.\n *\n * @param {WebSocket} websocket The WebSocket instance\n * @param {*} [data] The data to send\n * @param {Function} [cb] Callback\n * @private\n */\nfunction sendAfterClose(websocket, data, cb) {\n if (data) {\n const length = toBuffer(data).length;\n\n //\n // The `_bufferedAmount` property is used only when the peer is a client and\n // the opening handshake fails. Under these circumstances, in fact, the\n // `setSocket()` method is not called, so the `_socket` and `_sender`\n // properties are set to `null`.\n //\n if (websocket._socket) websocket._sender._bufferedBytes += length;\n else websocket._bufferedAmount += length;\n }\n\n if (cb) {\n const err = new Error(\n `WebSocket is not open: readyState ${websocket.readyState} ` +\n `(${readyStates[websocket.readyState]})`\n );\n cb(err);\n }\n}\n\n/**\n * The listener of the `Receiver` `'conclude'` event.\n *\n * @param {Number} code The status code\n * @param {String} reason The reason for closing\n * @private\n */\nfunction receiverOnConclude(code, reason) {\n const websocket = this[kWebSocket];\n\n websocket._closeFrameReceived = true;\n websocket._closeMessage = reason;\n websocket._closeCode = code;\n\n if (websocket._socket[kWebSocket] === undefined) return;\n\n websocket._socket.removeListener('data', socketOnData);\n process.nextTick(resume, websocket._socket);\n\n if (code === 1005) websocket.close();\n else websocket.close(code, reason);\n}\n\n/**\n * The listener of the `Receiver` `'drain'` event.\n *\n * @private\n */\nfunction receiverOnDrain() {\n this[kWebSocket]._socket.resume();\n}\n\n/**\n * The listener of the `Receiver` `'error'` event.\n *\n * @param {(RangeError|Error)} err The emitted error\n * @private\n */\nfunction receiverOnError(err) {\n const websocket = this[kWebSocket];\n\n if (websocket._socket[kWebSocket] !== undefined) {\n websocket._socket.removeListener('data', socketOnData);\n\n //\n // On Node.js < 14.0.0 the `'error'` event is emitted synchronously. See\n // https://github.com/websockets/ws/issues/1940.\n //\n process.nextTick(resume, websocket._socket);\n\n websocket.close(err[kStatusCode]);\n }\n\n websocket.emit('error', err);\n}\n\n/**\n * The listener of the `Receiver` `'finish'` event.\n *\n * @private\n */\nfunction receiverOnFinish() {\n this[kWebSocket].emitClose();\n}\n\n/**\n * The listener of the `Receiver` `'message'` event.\n *\n * @param {(String|Buffer|ArrayBuffer|Buffer[])} data The message\n * @private\n */\nfunction receiverOnMessage(data) {\n this[kWebSocket].emit('message', data);\n}\n\n/**\n * The listener of the `Receiver` `'ping'` event.\n *\n * @param {Buffer} data The data included in the ping frame\n * @private\n */\nfunction receiverOnPing(data) {\n const websocket = this[kWebSocket];\n\n websocket.pong(data, !websocket._isServer, NOOP);\n websocket.emit('ping', data);\n}\n\n/**\n * The listener of the `Receiver` `'pong'` event.\n *\n * @param {Buffer} data The data included in the pong frame\n * @private\n */\nfunction receiverOnPong(data) {\n this[kWebSocket].emit('pong', data);\n}\n\n/**\n * Resume a readable stream\n *\n * @param {Readable} stream The readable stream\n * @private\n */\nfunction resume(stream) {\n stream.resume();\n}\n\n/**\n * The listener of the `net.Socket` `'close'` event.\n *\n * @private\n */\nfunction socketOnClose() {\n const websocket = this[kWebSocket];\n\n this.removeListener('close', socketOnClose);\n this.removeListener('data', socketOnData);\n this.removeListener('end', socketOnEnd);\n\n websocket._readyState = WebSocket.CLOSING;\n\n let chunk;\n\n //\n // The close frame might not have been received or the `'end'` event emitted,\n // for example, if the socket was destroyed due to an error. Ensure that the\n // `receiver` stream is closed after writing any remaining buffered data to\n // it. If the readable side of the socket is in flowing mode then there is no\n // buffered data as everything has been already written and `readable.read()`\n // will return `null`. If instead, the socket is paused, any possible buffered\n // data will be read as a single chunk.\n //\n if (\n !this._readableState.endEmitted &&\n !websocket._closeFrameReceived &&\n !websocket._receiver._writableState.errorEmitted &&\n (chunk = websocket._socket.read()) !== null\n ) {\n websocket._receiver.write(chunk);\n }\n\n websocket._receiver.end();\n\n this[kWebSocket] = undefined;\n\n clearTimeout(websocket._closeTimer);\n\n if (\n websocket._receiver._writableState.finished ||\n websocket._receiver._writableState.errorEmitted\n ) {\n websocket.emitClose();\n } else {\n websocket._receiver.on('error', receiverOnFinish);\n websocket._receiver.on('finish', receiverOnFinish);\n }\n}\n\n/**\n * The listener of the `net.Socket` `'data'` event.\n *\n * @param {Buffer} chunk A chunk of data\n * @private\n */\nfunction socketOnData(chunk) {\n if (!this[kWebSocket]._receiver.write(chunk)) {\n this.pause();\n }\n}\n\n/**\n * The listener of the `net.Socket` `'end'` event.\n *\n * @private\n */\nfunction socketOnEnd() {\n const websocket = this[kWebSocket];\n\n websocket._readyState = WebSocket.CLOSING;\n websocket._receiver.end();\n this.end();\n}\n\n/**\n * The listener of the `net.Socket` `'error'` event.\n *\n * @private\n */\nfunction socketOnError() {\n const websocket = this[kWebSocket];\n\n this.removeListener('error', socketOnError);\n this.on('error', NOOP);\n\n if (websocket) {\n websocket._readyState = WebSocket.CLOSING;\n this.destroy();\n }\n}\n", "'use strict';\n\nconst { Duplex } = require('stream');\n\n/**\n * Emits the `'close'` event on a stream.\n *\n * @param {Duplex} stream The stream.\n * @private\n */\nfunction emitClose(stream) {\n stream.emit('close');\n}\n\n/**\n * The listener of the `'end'` event.\n *\n * @private\n */\nfunction duplexOnEnd() {\n if (!this.destroyed && this._writableState.finished) {\n this.destroy();\n }\n}\n\n/**\n * The listener of the `'error'` event.\n *\n * @param {Error} err The error\n * @private\n */\nfunction duplexOnError(err) {\n this.removeListener('error', duplexOnError);\n this.destroy();\n if (this.listenerCount('error') === 0) {\n // Do not suppress the throwing behavior.\n this.emit('error', err);\n }\n}\n\n/**\n * Wraps a `WebSocket` in a duplex stream.\n *\n * @param {WebSocket} ws The `WebSocket` to wrap\n * @param {Object} [options] The options for the `Duplex` constructor\n * @return {Duplex} The duplex stream\n * @public\n */\nfunction createWebSocketStream(ws, options) {\n let resumeOnReceiverDrain = true;\n let terminateOnDestroy = true;\n\n function receiverOnDrain() {\n if (resumeOnReceiverDrain) ws._socket.resume();\n }\n\n if (ws.readyState === ws.CONNECTING) {\n ws.once('open', function open() {\n ws._receiver.removeAllListeners('drain');\n ws._receiver.on('drain', receiverOnDrain);\n });\n } else {\n ws._receiver.removeAllListeners('drain');\n ws._receiver.on('drain', receiverOnDrain);\n }\n\n const duplex = new Duplex({\n ...options,\n autoDestroy: false,\n emitClose: false,\n objectMode: false,\n writableObjectMode: false\n });\n\n ws.on('message', function message(msg) {\n if (!duplex.push(msg)) {\n resumeOnReceiverDrain = false;\n ws._socket.pause();\n }\n });\n\n ws.once('error', function error(err) {\n if (duplex.destroyed) return;\n\n // Prevent `ws.terminate()` from being called by `duplex._destroy()`.\n //\n // - If the `'error'` event is emitted before the `'open'` event, then\n // `ws.terminate()` is a noop as no socket is assigned.\n // - Otherwise, the error is re-emitted by the listener of the `'error'`\n // event of the `Receiver` object. The listener already closes the\n // connection by calling `ws.close()`. This allows a close frame to be\n // sent to the other peer. If `ws.terminate()` is called right after this,\n // then the close frame might not be sent.\n terminateOnDestroy = false;\n duplex.destroy(err);\n });\n\n ws.once('close', function close() {\n if (duplex.destroyed) return;\n\n duplex.push(null);\n });\n\n duplex._destroy = function (err, callback) {\n if (ws.readyState === ws.CLOSED) {\n callback(err);\n process.nextTick(emitClose, duplex);\n return;\n }\n\n let called = false;\n\n ws.once('error', function error(err) {\n called = true;\n callback(err);\n });\n\n ws.once('close', function close() {\n if (!called) callback(err);\n process.nextTick(emitClose, duplex);\n });\n\n if (terminateOnDestroy) ws.terminate();\n };\n\n duplex._final = function (callback) {\n if (ws.readyState === ws.CONNECTING) {\n ws.once('open', function open() {\n duplex._final(callback);\n });\n return;\n }\n\n // If the value of the `_socket` property is `null` it means that `ws` is a\n // client websocket and the handshake failed. In fact, when this happens, a\n // socket is never assigned to the websocket. Wait for the `'error'` event\n // that will be emitted by the websocket.\n if (ws._socket === null) return;\n\n if (ws._socket._writableState.finished) {\n callback();\n if (duplex._readableState.endEmitted) duplex.destroy();\n } else {\n ws._socket.once('finish', function finish() {\n // `duplex` is not destroyed here because the `'end'` event will be\n // emitted on `duplex` after this `'finish'` event. The EOF signaling\n // `null` chunk is, in fact, pushed when the websocket emits `'close'`.\n callback();\n });\n ws.close();\n }\n };\n\n duplex._read = function () {\n if (\n (ws.readyState === ws.OPEN || ws.readyState === ws.CLOSING) &&\n !resumeOnReceiverDrain\n ) {\n resumeOnReceiverDrain = true;\n if (!ws._receiver._writableState.needDrain) ws._socket.resume();\n }\n };\n\n duplex._write = function (chunk, encoding, callback) {\n if (ws.readyState === ws.CONNECTING) {\n ws.once('open', function open() {\n duplex._write(chunk, encoding, callback);\n });\n return;\n }\n\n ws.send(chunk, callback);\n };\n\n duplex.on('end', duplexOnEnd);\n duplex.on('error', duplexOnError);\n return duplex;\n}\n\nmodule.exports = createWebSocketStream;\n", "/* eslint no-unused-vars: [\"error\", { \"varsIgnorePattern\": \"^net|tls|https$\" }] */\n\n'use strict';\n\nconst EventEmitter = require('events');\nconst http = require('http');\nconst https = require('https');\nconst net = require('net');\nconst tls = require('tls');\nconst { createHash } = require('crypto');\n\nconst PerMessageDeflate = require('./permessage-deflate');\nconst WebSocket = require('./websocket');\nconst { format, parse } = require('./extension');\nconst { GUID, kWebSocket } = require('./constants');\n\nconst keyRegex = /^[+/0-9A-Za-z]{22}==$/;\n\nconst RUNNING = 0;\nconst CLOSING = 1;\nconst CLOSED = 2;\n\n/**\n * Class representing a WebSocket server.\n *\n * @extends EventEmitter\n */\nclass WebSocketServer extends EventEmitter {\n /**\n * Create a `WebSocketServer` instance.\n *\n * @param {Object} options Configuration options\n * @param {Number} [options.backlog=511] The maximum length of the queue of\n * pending connections\n * @param {Boolean} [options.clientTracking=true] Specifies whether or not to\n * track clients\n * @param {Function} [options.handleProtocols] A hook to handle protocols\n * @param {String} [options.host] The hostname where to bind the server\n * @param {Number} [options.maxPayload=104857600] The maximum allowed message\n * size\n * @param {Boolean} [options.noServer=false] Enable no server mode\n * @param {String} [options.path] Accept only connections matching this path\n * @param {(Boolean|Object)} [options.perMessageDeflate=false] Enable/disable\n * permessage-deflate\n * @param {Number} [options.port] The port where to bind the server\n * @param {(http.Server|https.Server)} [options.server] A pre-created HTTP/S\n * server to use\n * @param {Function} [options.verifyClient] A hook to reject connections\n * @param {Function} [callback] A listener for the `listening` event\n */\n constructor(options, callback) {\n super();\n\n options = {\n maxPayload: 100 * 1024 * 1024,\n perMessageDeflate: false,\n handleProtocols: null,\n clientTracking: true,\n verifyClient: null,\n noServer: false,\n backlog: null, // use default (511 as implemented in net.js)\n server: null,\n host: null,\n path: null,\n port: null,\n ...options\n };\n\n if (\n (options.port == null && !options.server && !options.noServer) ||\n (options.port != null && (options.server || options.noServer)) ||\n (options.server && options.noServer)\n ) {\n throw new TypeError(\n 'One and only one of the \"port\", \"server\", or \"noServer\" options ' +\n 'must be specified'\n );\n }\n\n if (options.port != null) {\n this._server = http.createServer((req, res) => {\n const body = http.STATUS_CODES[426];\n\n res.writeHead(426, {\n 'Content-Length': body.length,\n 'Content-Type': 'text/plain'\n });\n res.end(body);\n });\n this._server.listen(\n options.port,\n options.host,\n options.backlog,\n callback\n );\n } else if (options.server) {\n this._server = options.server;\n }\n\n if (this._server) {\n const emitConnection = this.emit.bind(this, 'connection');\n\n this._removeListeners = addListeners(this._server, {\n listening: this.emit.bind(this, 'listening'),\n error: this.emit.bind(this, 'error'),\n upgrade: (req, socket, head) => {\n this.handleUpgrade(req, socket, head, emitConnection);\n }\n });\n }\n\n if (options.perMessageDeflate === true) options.perMessageDeflate = {};\n if (options.clientTracking) this.clients = new Set();\n this.options = options;\n this._state = RUNNING;\n }\n\n /**\n * Returns the bound address, the address family name, and port of the server\n * as reported by the operating system if listening on an IP socket.\n * If the server is listening on a pipe or UNIX domain socket, the name is\n * returned as a string.\n *\n * @return {(Object|String|null)} The address of the server\n * @public\n */\n address() {\n if (this.options.noServer) {\n throw new Error('The server is operating in \"noServer\" mode');\n }\n\n if (!this._server) return null;\n return this._server.address();\n }\n\n /**\n * Close the server.\n *\n * @param {Function} [cb] Callback\n * @public\n */\n close(cb) {\n if (cb) this.once('close', cb);\n\n if (this._state === CLOSED) {\n process.nextTick(emitClose, this);\n return;\n }\n\n if (this._state === CLOSING) return;\n this._state = CLOSING;\n\n //\n // Terminate all associated clients.\n //\n if (this.clients) {\n for (const client of this.clients) client.terminate();\n }\n\n const server = this._server;\n\n if (server) {\n this._removeListeners();\n this._removeListeners = this._server = null;\n\n //\n // Close the http server if it was internally created.\n //\n if (this.options.port != null) {\n server.close(emitClose.bind(undefined, this));\n return;\n }\n }\n\n process.nextTick(emitClose, this);\n }\n\n /**\n * See if a given request should be handled by this server instance.\n *\n * @param {http.IncomingMessage} req Request object to inspect\n * @return {Boolean} `true` if the request is valid, else `false`\n * @public\n */\n shouldHandle(req) {\n if (this.options.path) {\n const index = req.url.indexOf('?');\n const pathname = index !== -1 ? req.url.slice(0, index) : req.url;\n\n if (pathname !== this.options.path) return false;\n }\n\n return true;\n }\n\n /**\n * Handle a HTTP Upgrade request.\n *\n * @param {http.IncomingMessage} req The request object\n * @param {(net.Socket|tls.Socket)} socket The network socket between the\n * server and client\n * @param {Buffer} head The first packet of the upgraded stream\n * @param {Function} cb Callback\n * @public\n */\n handleUpgrade(req, socket, head, cb) {\n socket.on('error', socketOnError);\n\n const key =\n req.headers['sec-websocket-key'] !== undefined\n ? req.headers['sec-websocket-key'].trim()\n : false;\n const version = +req.headers['sec-websocket-version'];\n const extensions = {};\n\n if (\n req.method !== 'GET' ||\n req.headers.upgrade.toLowerCase() !== 'websocket' ||\n !key ||\n !keyRegex.test(key) ||\n (version !== 8 && version !== 13) ||\n !this.shouldHandle(req)\n ) {\n return abortHandshake(socket, 400);\n }\n\n if (this.options.perMessageDeflate) {\n const perMessageDeflate = new PerMessageDeflate(\n this.options.perMessageDeflate,\n true,\n this.options.maxPayload\n );\n\n try {\n const offers = parse(req.headers['sec-websocket-extensions']);\n\n if (offers[PerMessageDeflate.extensionName]) {\n perMessageDeflate.accept(offers[PerMessageDeflate.extensionName]);\n extensions[PerMessageDeflate.extensionName] = perMessageDeflate;\n }\n } catch (err) {\n return abortHandshake(socket, 400);\n }\n }\n\n //\n // Optionally call external client verification handler.\n //\n if (this.options.verifyClient) {\n const info = {\n origin:\n req.headers[`${version === 8 ? 'sec-websocket-origin' : 'origin'}`],\n secure: !!(req.socket.authorized || req.socket.encrypted),\n req\n };\n\n if (this.options.verifyClient.length === 2) {\n this.options.verifyClient(info, (verified, code, message, headers) => {\n if (!verified) {\n return abortHandshake(socket, code || 401, message, headers);\n }\n\n this.completeUpgrade(key, extensions, req, socket, head, cb);\n });\n return;\n }\n\n if (!this.options.verifyClient(info)) return abortHandshake(socket, 401);\n }\n\n this.completeUpgrade(key, extensions, req, socket, head, cb);\n }\n\n /**\n * Upgrade the connection to WebSocket.\n *\n * @param {String} key The value of the `Sec-WebSocket-Key` header\n * @param {Object} extensions The accepted extensions\n * @param {http.IncomingMessage} req The request object\n * @param {(net.Socket|tls.Socket)} socket The network socket between the\n * server and client\n * @param {Buffer} head The first packet of the upgraded stream\n * @param {Function} cb Callback\n * @throws {Error} If called more than once with the same socket\n * @private\n */\n completeUpgrade(key, extensions, req, socket, head, cb) {\n //\n // Destroy the socket if the client has already sent a FIN packet.\n //\n if (!socket.readable || !socket.writable) return socket.destroy();\n\n if (socket[kWebSocket]) {\n throw new Error(\n 'server.handleUpgrade() was called more than once with the same ' +\n 'socket, possibly due to a misconfiguration'\n );\n }\n\n if (this._state > RUNNING) return abortHandshake(socket, 503);\n\n const digest = createHash('sha1')\n .update(key + GUID)\n .digest('base64');\n\n const headers = [\n 'HTTP/1.1 101 Switching Protocols',\n 'Upgrade: websocket',\n 'Connection: Upgrade',\n `Sec-WebSocket-Accept: ${digest}`\n ];\n\n const ws = new WebSocket(null);\n let protocol = req.headers['sec-websocket-protocol'];\n\n if (protocol) {\n protocol = protocol.split(',').map(trim);\n\n //\n // Optionally call external protocol selection handler.\n //\n if (this.options.handleProtocols) {\n protocol = this.options.handleProtocols(protocol, req);\n } else {\n protocol = protocol[0];\n }\n\n if (protocol) {\n headers.push(`Sec-WebSocket-Protocol: ${protocol}`);\n ws._protocol = protocol;\n }\n }\n\n if (extensions[PerMessageDeflate.extensionName]) {\n const params = extensions[PerMessageDeflate.extensionName].params;\n const value = format({\n [PerMessageDeflate.extensionName]: [params]\n });\n headers.push(`Sec-WebSocket-Extensions: ${value}`);\n ws._extensions = extensions;\n }\n\n //\n // Allow external modification/inspection of handshake headers.\n //\n this.emit('headers', headers, req);\n\n socket.write(headers.concat('\\r\\n').join('\\r\\n'));\n socket.removeListener('error', socketOnError);\n\n ws.setSocket(socket, head, this.options.maxPayload);\n\n if (this.clients) {\n this.clients.add(ws);\n ws.on('close', () => this.clients.delete(ws));\n }\n\n cb(ws, req);\n }\n}\n\nmodule.exports = WebSocketServer;\n\n/**\n * Add event listeners on an `EventEmitter` using a map of \n * pairs.\n *\n * @param {EventEmitter} server The event emitter\n * @param {Object.} map The listeners to add\n * @return {Function} A function that will remove the added listeners when\n * called\n * @private\n */\nfunction addListeners(server, map) {\n for (const event of Object.keys(map)) server.on(event, map[event]);\n\n return function removeListeners() {\n for (const event of Object.keys(map)) {\n server.removeListener(event, map[event]);\n }\n };\n}\n\n/**\n * Emit a `'close'` event on an `EventEmitter`.\n *\n * @param {EventEmitter} server The event emitter\n * @private\n */\nfunction emitClose(server) {\n server._state = CLOSED;\n server.emit('close');\n}\n\n/**\n * Handle premature socket errors.\n *\n * @private\n */\nfunction socketOnError() {\n this.destroy();\n}\n\n/**\n * Close the connection when preconditions are not fulfilled.\n *\n * @param {(net.Socket|tls.Socket)} socket The socket of the upgrade request\n * @param {Number} code The HTTP response status code\n * @param {String} [message] The HTTP response body\n * @param {Object} [headers] Additional HTTP response headers\n * @private\n */\nfunction abortHandshake(socket, code, message, headers) {\n if (socket.writable) {\n message = message || http.STATUS_CODES[code];\n headers = {\n Connection: 'close',\n 'Content-Type': 'text/html',\n 'Content-Length': Buffer.byteLength(message),\n ...headers\n };\n\n socket.write(\n `HTTP/1.1 ${code} ${http.STATUS_CODES[code]}\\r\\n` +\n Object.keys(headers)\n .map((h) => `${h}: ${headers[h]}`)\n .join('\\r\\n') +\n '\\r\\n\\r\\n' +\n message\n );\n }\n\n socket.removeListener('error', socketOnError);\n socket.destroy();\n}\n\n/**\n * Remove whitespace characters from both ends of a string.\n *\n * @param {String} str The string\n * @return {String} A new string representing `str` stripped of whitespace\n * characters from both its beginning and end\n * @private\n */\nfunction trim(str) {\n return str.trim();\n}\n", "'use strict';\n\nconst WebSocket = require('./lib/websocket');\n\nWebSocket.createWebSocketStream = require('./lib/stream');\nWebSocket.Server = require('./lib/websocket-server');\nWebSocket.Receiver = require('./lib/receiver');\nWebSocket.Sender = require('./lib/sender');\n\nmodule.exports = WebSocket;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BlockbookAPI = void 0;\nconst WebSocket = require(\"ws\");\nconst events_1 = require(\"events\");\nconst createDeferred_1 = require(\"@trezor/utils/lib/createDeferred\");\nconst errors_1 = require(\"../../constants/errors\");\nconst NOT_INITIALIZED = new errors_1.CustomError('websocket_not_initialized');\nconst DEFAULT_TIMEOUT = 20 * 1000;\nconst DEFAULT_PING_TIMEOUT = 50 * 1000;\nclass BlockbookAPI extends events_1.EventEmitter {\n constructor(options) {\n super();\n this.messageID = 0;\n this.messages = [];\n this.subscriptions = [];\n this.send = (method, params = {}) => {\n const { ws } = this;\n if (!ws)\n throw NOT_INITIALIZED;\n const id = this.messageID.toString();\n const dfd = (0, createDeferred_1.createDeferred)(id);\n const req = {\n id,\n method,\n params,\n };\n this.messageID++;\n this.messages.push(dfd);\n this.setConnectionTimeout();\n this.setPingTimeout();\n ws.send(JSON.stringify(req));\n return dfd.promise;\n };\n this.setMaxListeners(Infinity);\n this.options = options;\n }\n setConnectionTimeout() {\n this.clearConnectionTimeout();\n this.connectionTimeout = setTimeout(this.onTimeout.bind(this), this.options.timeout || DEFAULT_TIMEOUT);\n }\n clearConnectionTimeout() {\n if (this.connectionTimeout) {\n clearTimeout(this.connectionTimeout);\n this.connectionTimeout = undefined;\n }\n }\n setPingTimeout() {\n if (this.pingTimeout) {\n clearTimeout(this.pingTimeout);\n }\n this.pingTimeout = setTimeout(this.onPing.bind(this), this.options.pingTimeout || DEFAULT_PING_TIMEOUT);\n }\n onTimeout() {\n const { ws } = this;\n if (!ws)\n return;\n if (ws.listenerCount('open') > 0) {\n ws.emit('error', 'Websocket timeout');\n try {\n ws.close();\n }\n catch (error) {\n }\n }\n else {\n this.messages.forEach(m => m.reject(new errors_1.CustomError('websocket_timeout')));\n ws.close();\n }\n }\n async onPing() {\n if (this.ws && this.isConnected()) {\n if (this.subscriptions.length > 0 || this.options.keepAlive) {\n await this.getBlockHash(0);\n }\n else {\n try {\n this.ws.close();\n }\n catch (error) {\n }\n }\n }\n }\n onError() {\n this.dispose();\n }\n onmessage(message) {\n try {\n const resp = JSON.parse(message);\n const { id, data } = resp;\n const dfd = this.messages.find(m => m.id === id);\n if (dfd) {\n if (data.error) {\n dfd.reject(new errors_1.CustomError('websocket_error_message', data.error.message));\n }\n else {\n dfd.resolve(data);\n }\n this.messages.splice(this.messages.indexOf(dfd), 1);\n }\n else {\n const subs = this.subscriptions.find(s => s && s.id === id);\n if (subs) {\n subs.callback(data);\n }\n }\n }\n catch (error) {\n }\n if (this.messages.length === 0) {\n this.clearConnectionTimeout();\n }\n this.setPingTimeout();\n }\n connect() {\n let { url } = this.options;\n if (typeof url !== 'string') {\n throw new errors_1.CustomError('websocket_no_url');\n }\n if (url.startsWith('https')) {\n url = url.replace('https', 'wss');\n }\n if (url.startsWith('http')) {\n url = url.replace('http', 'ws');\n }\n if (!url.endsWith('/websocket')) {\n const suffix = url.endsWith('/') ? 'websocket' : '/websocket';\n url += suffix;\n }\n this.setConnectionTimeout();\n const dfd = (0, createDeferred_1.createDeferred)(-1);\n const ws = new WebSocket(url, {\n agent: this.options.agent,\n headers: {\n Origin: 'https://node.trezor.io',\n 'User-Agent': 'Trezor Suite',\n },\n });\n if (typeof ws.setMaxListeners === 'function') {\n ws.setMaxListeners(Infinity);\n }\n ws.once('error', error => {\n this.dispose();\n dfd.reject(new errors_1.CustomError('websocket_runtime_error', error.message));\n });\n ws.on('open', () => {\n this.init();\n dfd.resolve();\n });\n this.ws = ws;\n return dfd.promise;\n }\n init() {\n const { ws } = this;\n if (!ws || !this.isConnected()) {\n throw Error('Blockbook websocket init cannot be called');\n }\n this.clearConnectionTimeout();\n ws.removeAllListeners();\n ws.on('error', this.onError.bind(this));\n ws.on('message', this.onmessage.bind(this));\n ws.on('close', () => {\n this.emit('disconnected');\n this.dispose();\n });\n }\n disconnect() {\n if (this.ws) {\n this.ws.close();\n }\n }\n isConnected() {\n const { ws } = this;\n return ws && ws.readyState === WebSocket.OPEN;\n }\n getServerInfo() {\n return this.send('getInfo');\n }\n getBlockHash(block) {\n return this.send('getBlockHash', { height: block });\n }\n getBlock(block) {\n return this.send('getBlock', { id: `${block}` });\n }\n getAccountInfo(payload) {\n return this.send('getAccountInfo', payload);\n }\n getAccountUtxo(descriptor) {\n return this.send('getAccountUtxo', { descriptor });\n }\n getTransaction(txid) {\n return this.send('getTransaction', { txid });\n }\n pushTransaction(hex) {\n return this.send('sendTransaction', { hex });\n }\n estimateFee(payload) {\n return this.send('estimateFee', payload);\n }\n getCurrentFiatRates(payload) {\n return this.send('getCurrentFiatRates', payload);\n }\n getAccountBalanceHistory(payload) {\n return this.send('getBalanceHistory', payload);\n }\n getFiatRatesForTimestamps(payload) {\n return this.send('getFiatRatesForTimestamps', payload);\n }\n getFiatRatesTickersList(payload) {\n return this.send('getFiatRatesTickersList', payload);\n }\n removeSubscription(type) {\n const index = this.subscriptions.findIndex(s => s.type === type);\n if (index >= 0) {\n this.subscriptions.splice(index, 1);\n }\n return index;\n }\n subscribeAddresses(addresses) {\n this.removeSubscription('notification');\n const id = this.messageID.toString();\n this.subscriptions.push({\n id,\n type: 'notification',\n callback: (result) => {\n this.emit('notification', result);\n },\n });\n return this.send('subscribeAddresses', { addresses });\n }\n unsubscribeAddresses() {\n const index = this.removeSubscription('notification');\n if (index >= 0) {\n return this.send('unsubscribeAddresses');\n }\n return { subscribed: false };\n }\n subscribeBlock() {\n this.removeSubscription('block');\n const id = this.messageID.toString();\n this.subscriptions.push({\n id,\n type: 'block',\n callback: (result) => {\n this.emit('block', result);\n },\n });\n return this.send('subscribeNewBlock');\n }\n unsubscribeBlock() {\n const index = this.removeSubscription('block');\n if (index >= 0) {\n return this.send('unsubscribeNewBlock');\n }\n return { subscribed: false };\n }\n subscribeFiatRates(currency) {\n this.removeSubscription('fiatRates');\n const id = this.messageID.toString();\n this.subscriptions.push({\n id,\n type: 'fiatRates',\n callback: (result) => {\n this.emit('fiatRates', result);\n },\n });\n return this.send('subscribeFiatRates', { currency });\n }\n unsubscribeFiatRates() {\n const index = this.removeSubscription('fiatRates');\n if (index >= 0) {\n return this.send('unsubscribeFiatRates');\n }\n return { subscribed: false };\n }\n subscribeMempool() {\n this.removeSubscription('mempool');\n const id = this.messageID.toString();\n this.subscriptions.push({\n id,\n type: 'mempool',\n callback: result => {\n this.emit('mempool', result);\n },\n });\n return this.send('subscribeNewTransaction');\n }\n unsubscribeMempool() {\n const index = this.removeSubscription('mempool');\n if (index >= 0) {\n return this.send('unsubscribeNewTransaction');\n }\n return { subscribed: false };\n }\n dispose() {\n if (this.pingTimeout) {\n clearTimeout(this.pingTimeout);\n }\n if (this.connectionTimeout) {\n clearTimeout(this.connectionTimeout);\n }\n const { ws } = this;\n if (this.isConnected()) {\n this.disconnect();\n }\n if (ws) {\n ws.removeAllListeners();\n }\n this.removeAllListeners();\n }\n}\nexports.BlockbookAPI = BlockbookAPI;\n//# sourceMappingURL=websocket.js.map", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformAccountUtxo = exports.transformAccountInfo = exports.transformAddresses = exports.transformTokenInfo = exports.transformTransaction = exports.filterTokenTransfers = exports.transformServerInfo = void 0;\nconst bignumber_js_1 = require(\"bignumber.js\");\nconst utils_1 = require(\"../utils\");\nconst transformServerInfo = (payload) => {\n var _a;\n return ({\n name: payload.name,\n shortcut: payload.shortcut,\n testnet: payload.testnet,\n version: payload.version,\n decimals: payload.decimals,\n blockHeight: payload.bestHeight,\n blockHash: payload.bestHash,\n consensusBranchId: ((_a = payload.backend) === null || _a === void 0 ? void 0 : _a.consensus)\n ? parseInt(payload.backend.consensus.chaintip, 16)\n : undefined,\n });\n};\nexports.transformServerInfo = transformServerInfo;\nconst filterTokenTransfers = (addresses, transfers) => {\n if (typeof addresses === 'string') {\n addresses = [addresses];\n }\n if (!addresses || !Array.isArray(addresses) || !transfers || !Array.isArray(transfers))\n return [];\n const all = addresses.map(a => {\n if (typeof a === 'string')\n return a;\n if (typeof a === 'object' && typeof a.address === 'string')\n return a.address;\n return null;\n });\n return transfers\n .filter(tr => {\n if (tr && typeof tr === 'object') {\n return (tr.from && all.indexOf(tr.from) >= 0) || (tr.to && all.indexOf(tr.to) >= 0);\n }\n return false;\n })\n .map(tr => {\n const incoming = tr.from && all.indexOf(tr.from) >= 0;\n const outgoing = tr.to && all.indexOf(tr.to) >= 0;\n let type = 'unknown';\n if (incoming && outgoing) {\n type = 'self';\n }\n else {\n if (incoming) {\n type = 'sent';\n }\n if (outgoing) {\n type = 'recv';\n }\n }\n return {\n type,\n name: tr.name,\n symbol: tr.symbol,\n address: tr.token,\n decimals: tr.decimals || 0,\n amount: tr.value,\n from: tr.from,\n to: tr.to,\n };\n });\n};\nexports.filterTokenTransfers = filterTokenTransfers;\nconst transformTransaction = (descriptor, addresses, tx) => {\n var _a;\n const myAddresses = addresses\n ? addresses.change.concat(addresses.used, addresses.unused).map(a => a.address)\n : [descriptor];\n const inputs = Array.isArray(tx.vin) ? tx.vin : [];\n const totalInput = inputs.reduce(utils_1.sumVinVout, 0);\n const myInputs = (0, utils_1.filterTargets)(myAddresses, tx.vin);\n const myTotalInput = myInputs.reduce(utils_1.sumVinVout, 0);\n const outputs = Array.isArray(tx.vout) ? tx.vout : [];\n const totalOutput = outputs.reduce(utils_1.sumVinVout, 0);\n const myOutputs = (0, utils_1.filterTargets)(myAddresses, tx.vout);\n const myTotalOutput = myOutputs.reduce(utils_1.sumVinVout, 0);\n const myTokens = (0, exports.filterTokenTransfers)(myAddresses, tx.tokenTransfers);\n const isNonChangeOutput = (o) => addresses ? (0, utils_1.filterTargets)(addresses.change, tx.vout).indexOf(o) < 0 : true;\n const isNonZero = (o) => o.value && o.value !== '0';\n let type;\n let amount;\n let targets;\n if (myInputs.length) {\n if (myInputs.length < inputs.length) {\n type = 'joint';\n targets = [];\n amount = new bignumber_js_1.default(myTotalOutput).minus(myTotalInput).toString();\n }\n else if (myOutputs.length < outputs.length || !outputs.length) {\n type = 'sent';\n targets = myTokens.length\n ? outputs.filter(isNonZero)\n : outputs.filter(isNonChangeOutput);\n amount =\n !outputs.length || tx.ethereumSpecific\n ? tx.value\n : new bignumber_js_1.default(myTotalInput)\n .minus(myTotalOutput)\n .minus((_a = tx.fees) !== null && _a !== void 0 ? _a : '0')\n .toString();\n }\n else {\n type = 'self';\n amount = tx.fees;\n const intentionalOutputs = outputs.filter(isNonChangeOutput);\n targets = intentionalOutputs.length ? intentionalOutputs : outputs;\n }\n }\n else if (myOutputs.length || myTokens.length) {\n type = 'recv';\n amount = myTotalOutput.toString();\n targets = myOutputs;\n }\n else {\n type = 'unknown';\n amount = tx.value;\n targets = [];\n }\n const rbf = inputs.find(i => typeof i.sequence === 'number' && i.sequence < 0xffffffff - 1)\n ? true\n : undefined;\n const fee = tx.ethereumSpecific && !tx.ethereumSpecific.gasUsed\n ? new bignumber_js_1.default(tx.ethereumSpecific.gasPrice)\n .times(tx.ethereumSpecific.gasLimit)\n .toString()\n : tx.fees;\n const feeRate = tx.vsize\n ? new bignumber_js_1.default(fee).div(tx.vsize).decimalPlaces(2).toString()\n : undefined;\n const size = tx.size || typeof tx.hex === 'string' ? tx.hex.length / 2 : 0;\n return {\n type,\n txid: tx.txid,\n blockTime: tx.blockTime,\n blockHeight: tx.blockHeight,\n blockHash: tx.blockHash,\n lockTime: tx.lockTime,\n amount,\n fee,\n vsize: tx.vsize,\n feeRate,\n targets: targets.filter(t => typeof t === 'object').map(t => (0, utils_1.transformTarget)(t, myOutputs)),\n tokens: myTokens,\n rbf,\n ethereumSpecific: tx.ethereumSpecific,\n details: {\n vin: inputs.map((0, utils_1.enhanceVinVout)(myAddresses)),\n vout: outputs.map((0, utils_1.enhanceVinVout)(myAddresses)),\n size,\n totalInput: totalInput.toString(),\n totalOutput: totalOutput.toString(),\n },\n };\n};\nexports.transformTransaction = transformTransaction;\nconst transformTokenInfo = (tokens) => {\n if (!tokens || !Array.isArray(tokens))\n return undefined;\n const info = tokens.reduce((arr, t) => {\n if (t.type !== 'ERC20')\n return arr;\n return arr.concat([\n {\n type: t.type,\n name: t.name,\n symbol: t.symbol,\n address: t.contract,\n balance: t.balance,\n decimals: t.decimals || 0,\n },\n ]);\n }, []);\n return info.length > 0 ? info : undefined;\n};\nexports.transformTokenInfo = transformTokenInfo;\nconst transformAddresses = (tokens) => {\n if (!tokens || !Array.isArray(tokens))\n return undefined;\n const addresses = tokens.reduce((arr, t) => {\n if (t.type !== 'XPUBAddress')\n return arr;\n return arr.concat([\n {\n address: t.name,\n path: t.path,\n transfers: t.transfers,\n balance: t.balance,\n sent: t.totalSent,\n received: t.totalReceived,\n },\n ]);\n }, []);\n if (addresses.length < 1)\n return undefined;\n const internal = addresses.filter(a => a.path.split('/')[4] === '1');\n const external = addresses.filter(a => internal.indexOf(a) < 0);\n return {\n change: internal,\n used: external.filter(a => a.transfers > 0),\n unused: external.filter(a => a.transfers === 0),\n };\n};\nexports.transformAddresses = transformAddresses;\nconst transformAccountInfo = (payload) => {\n let page;\n if (typeof payload.page === 'number') {\n page = {\n index: payload.page,\n size: payload.itemsOnPage,\n total: payload.totalPages,\n };\n }\n let misc = {};\n if (typeof payload.nonce === 'string') {\n misc.nonce = payload.nonce;\n }\n if (payload.erc20Contract) {\n const token = (0, exports.transformTokenInfo)([\n Object.assign(Object.assign({}, payload.erc20Contract), { type: payload.erc20Contract.type || 'ERC20' }),\n ]);\n if (token) {\n const [erc20Contract] = token;\n misc.erc20Contract = erc20Contract;\n }\n }\n if (Object.keys(misc).length < 1) {\n misc = undefined;\n }\n const descriptor = payload.address;\n const addresses = (0, exports.transformAddresses)(payload.tokens);\n const tokens = (0, exports.transformTokenInfo)(payload.tokens);\n const unconfirmed = new bignumber_js_1.default(payload.unconfirmedBalance);\n const availableBalance = !unconfirmed.isNaN() && !unconfirmed.isZero()\n ? unconfirmed.plus(payload.balance).toString()\n : payload.balance;\n const empty = payload.txs === 0 &&\n payload.unconfirmedTxs === 0 &&\n new bignumber_js_1.default(availableBalance).isZero();\n return {\n descriptor,\n balance: payload.balance,\n availableBalance,\n empty,\n tokens,\n addresses,\n history: {\n total: payload.txs,\n tokens: typeof payload.nonTokenTxs === 'number'\n ? payload.txs - payload.nonTokenTxs\n : undefined,\n unconfirmed: payload.unconfirmedTxs,\n transactions: payload.transactions\n ? payload.transactions.map(t => (0, exports.transformTransaction)(descriptor, addresses, t))\n : undefined,\n },\n misc,\n page,\n };\n};\nexports.transformAccountInfo = transformAccountInfo;\nconst transformAccountUtxo = (payload) => payload.map(utxo => ({\n txid: utxo.txid,\n vout: utxo.vout,\n amount: utxo.value,\n blockHeight: utxo.height,\n address: utxo.address,\n path: utxo.path,\n confirmations: utxo.confirmations,\n coinbase: utxo.coinbase,\n}));\nexports.transformAccountUtxo = transformAccountUtxo;\n//# sourceMappingURL=utils.js.map", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst errors_1 = require(\"../../constants/errors\");\nconst constants_1 = require(\"../../constants\");\nconst base_1 = require(\"../base\");\nconst websocket_1 = require(\"./websocket\");\nconst utils = require(\"./utils\");\nconst getInfo = async (request) => {\n const api = await request.connect();\n const info = await api.getServerInfo();\n return {\n type: constants_1.RESPONSES.GET_INFO,\n payload: Object.assign({ url: api.options.url }, utils.transformServerInfo(info)),\n };\n};\nconst getBlockHash = async (request) => {\n const api = await request.connect();\n const info = await api.getBlockHash(request.payload);\n return {\n type: constants_1.RESPONSES.GET_BLOCK_HASH,\n payload: info.hash,\n };\n};\nconst getBlock = async (request) => {\n const api = await request.connect();\n const info = await api.getBlock(request.payload);\n return {\n type: constants_1.RESPONSES.GET_BLOCK,\n payload: info,\n };\n};\nconst getAccountInfo = async (request) => {\n const { payload } = request;\n const api = await request.connect();\n const info = await api.getAccountInfo(payload);\n return {\n type: constants_1.RESPONSES.GET_ACCOUNT_INFO,\n payload: utils.transformAccountInfo(info),\n };\n};\nconst getAccountUtxo = async (request) => {\n const { payload } = request;\n const api = await request.connect();\n const utxos = await api.getAccountUtxo(payload);\n return {\n type: constants_1.RESPONSES.GET_ACCOUNT_UTXO,\n payload: utils.transformAccountUtxo(utxos),\n };\n};\nconst getAccountBalanceHistory = async (request) => {\n const { payload } = request;\n const api = await request.connect();\n const history = await api.getAccountBalanceHistory(payload);\n return {\n type: constants_1.RESPONSES.GET_ACCOUNT_BALANCE_HISTORY,\n payload: history,\n };\n};\nconst getCurrentFiatRates = async (request) => {\n const { payload } = request;\n const api = await request.connect();\n const fiatRates = await api.getCurrentFiatRates(payload);\n return {\n type: constants_1.RESPONSES.GET_CURRENT_FIAT_RATES,\n payload: fiatRates,\n };\n};\nconst getFiatRatesForTimestamps = async (request) => {\n const { payload } = request;\n const api = await request.connect();\n const { tickers } = await api.getFiatRatesForTimestamps(payload);\n return {\n type: constants_1.RESPONSES.GET_FIAT_RATES_FOR_TIMESTAMPS,\n payload: { tickers },\n };\n};\nconst getFiatRatesTickersList = async (request) => {\n const { payload } = request;\n const api = await request.connect();\n const tickers = await api.getFiatRatesTickersList(payload);\n return {\n type: constants_1.RESPONSES.GET_FIAT_RATES_TICKERS_LIST,\n payload: {\n ts: tickers.ts,\n availableCurrencies: tickers.available_currencies,\n },\n };\n};\nconst getTransaction = async (request) => {\n const api = await request.connect();\n const tx = await api.getTransaction(request.payload);\n return {\n type: constants_1.RESPONSES.GET_TRANSACTION,\n payload: {\n type: 'blockbook',\n tx,\n },\n };\n};\nconst pushTransaction = async (request) => {\n const api = await request.connect();\n const resp = await api.pushTransaction(request.payload);\n return {\n type: constants_1.RESPONSES.PUSH_TRANSACTION,\n payload: resp.result,\n };\n};\nconst estimateFee = async (request) => {\n const api = await request.connect();\n const resp = await api.estimateFee(request.payload);\n return {\n type: constants_1.RESPONSES.ESTIMATE_FEE,\n payload: resp,\n };\n};\nconst onNewBlock = ({ post }, event) => {\n post({\n id: -1,\n type: constants_1.RESPONSES.NOTIFICATION,\n payload: {\n type: 'block',\n payload: {\n blockHeight: event.height,\n blockHash: event.hash,\n },\n },\n });\n};\nconst onMempoolTx = ({ post }, payload) => {\n post({\n id: -1,\n type: constants_1.RESPONSES.NOTIFICATION,\n payload: {\n type: 'mempool',\n payload,\n },\n });\n};\nconst onTransaction = ({ state, post }, event) => {\n if (!event.tx)\n return;\n const descriptor = event.address;\n const account = state.getAccount(descriptor);\n post({\n id: -1,\n type: constants_1.RESPONSES.NOTIFICATION,\n payload: {\n type: 'notification',\n payload: {\n descriptor: account ? account.descriptor : descriptor,\n tx: account\n ? utils.transformTransaction(account.descriptor, account.addresses, event.tx)\n : utils.transformTransaction(descriptor, undefined, event.tx),\n },\n },\n });\n};\nconst onNewFiatRates = ({ post }, event) => {\n post({\n id: -1,\n type: constants_1.RESPONSES.NOTIFICATION,\n payload: {\n type: 'fiatRates',\n payload: {\n rates: event.rates,\n },\n },\n });\n};\nconst subscribeAccounts = async (ctx, accounts) => {\n const api = await ctx.connect();\n const { state } = ctx;\n state.addAccounts(accounts);\n if (!state.getSubscription('notification')) {\n api.on('notification', ev => onTransaction(ctx, ev));\n state.addSubscription('notification');\n }\n return api.subscribeAddresses(state.getAddresses());\n};\nconst subscribeAddresses = async (ctx, addresses) => {\n const api = await ctx.connect();\n const { state } = ctx;\n state.addAddresses(addresses);\n if (!state.getSubscription('notification')) {\n api.on('notification', ev => onTransaction(ctx, ev));\n state.addSubscription('notification');\n }\n return api.subscribeAddresses(state.getAddresses());\n};\nconst subscribeBlock = async (ctx) => {\n if (ctx.state.getSubscription('block'))\n return { subscribed: true };\n const api = await ctx.connect();\n ctx.state.addSubscription('block');\n api.on('block', ev => onNewBlock(ctx, ev));\n return api.subscribeBlock();\n};\nconst subscribeFiatRates = async (ctx, currency) => {\n const api = await ctx.connect();\n if (!ctx.state.getSubscription('fiatRates')) {\n ctx.state.addSubscription('fiatRates');\n api.on('fiatRates', ev => onNewFiatRates(ctx, ev));\n }\n return api.subscribeFiatRates(currency);\n};\nconst subscribeMempool = async (ctx) => {\n const api = await ctx.connect();\n if (!ctx.state.getSubscription('mempool')) {\n ctx.state.addSubscription('mempool');\n api.on('mempool', ev => onMempoolTx(ctx, ev));\n }\n return api.subscribeMempool();\n};\nconst subscribe = async (request) => {\n const { payload } = request;\n let response;\n if (payload.type === 'accounts') {\n response = await subscribeAccounts(request, payload.accounts);\n }\n else if (payload.type === 'addresses') {\n response = await subscribeAddresses(request, payload.addresses);\n }\n else if (payload.type === 'block') {\n response = await subscribeBlock(request);\n }\n else if (payload.type === 'fiatRates') {\n response = await subscribeFiatRates(request, payload.currency);\n }\n else if (payload.type === 'mempool') {\n response = await subscribeMempool(request);\n }\n else {\n throw new errors_1.CustomError('invalid_param', '+type');\n }\n return {\n type: constants_1.RESPONSES.SUBSCRIBE,\n payload: response,\n };\n};\nconst unsubscribeAccounts = async ({ state, connect }, accounts) => {\n state.removeAccounts(accounts || state.getAccounts());\n const api = await connect();\n const subscribed = state.getAddresses();\n if (subscribed.length < 1) {\n api.removeAllListeners('notification');\n state.removeSubscription('notification');\n return api.unsubscribeAddresses();\n }\n return api.subscribeAddresses(subscribed);\n};\nconst unsubscribeAddresses = async ({ state, connect }, addresses) => {\n const api = await connect();\n if (!addresses) {\n state.removeAccounts(state.getAccounts());\n }\n const subscribed = state.removeAddresses(addresses || state.getAddresses());\n if (subscribed.length < 1) {\n api.removeAllListeners('notification');\n state.removeSubscription('notification');\n return api.unsubscribeAddresses();\n }\n return api.subscribeAddresses(subscribed);\n};\nconst unsubscribeBlock = async ({ state, connect }) => {\n if (!state.getSubscription('block'))\n return { subscribed: false };\n const api = await connect();\n api.removeAllListeners('block');\n state.removeSubscription('block');\n return api.unsubscribeBlock();\n};\nconst unsubscribeFiatRates = async ({ state, connect }) => {\n if (!state.getSubscription('fiatRates'))\n return { subscribed: false };\n const api = await connect();\n api.removeAllListeners('fiatRates');\n state.removeSubscription('fiatRates');\n return api.unsubscribeFiatRates();\n};\nconst unsubscribeMempool = async ({ state, connect }) => {\n if (!state.getSubscription('mempool'))\n return { subscribed: false };\n const api = await connect();\n api.removeAllListeners('mempool');\n state.removeSubscription('mempool');\n return api.unsubscribeMempool();\n};\nconst unsubscribe = async (request) => {\n const { payload } = request;\n let response;\n if (payload.type === 'accounts') {\n response = await unsubscribeAccounts(request, payload.accounts);\n }\n else if (payload.type === 'addresses') {\n response = await unsubscribeAddresses(request, payload.addresses);\n }\n else if (payload.type === 'block') {\n response = await unsubscribeBlock(request);\n }\n else if (payload.type === 'fiatRates') {\n response = await unsubscribeFiatRates(request);\n }\n else if (payload.type === 'mempool') {\n response = await unsubscribeMempool(request);\n }\n else {\n throw new errors_1.CustomError('invalid_param', '+type');\n }\n return {\n type: constants_1.RESPONSES.UNSUBSCRIBE,\n payload: response,\n };\n};\nconst onRequest = (request) => {\n switch (request.type) {\n case constants_1.MESSAGES.GET_INFO:\n return getInfo(request);\n case constants_1.MESSAGES.GET_BLOCK_HASH:\n return getBlockHash(request);\n case constants_1.MESSAGES.GET_BLOCK:\n return getBlock(request);\n case constants_1.MESSAGES.GET_ACCOUNT_INFO:\n return getAccountInfo(request);\n case constants_1.MESSAGES.GET_ACCOUNT_UTXO:\n return getAccountUtxo(request);\n case constants_1.MESSAGES.GET_TRANSACTION:\n return getTransaction(request);\n case constants_1.MESSAGES.GET_ACCOUNT_BALANCE_HISTORY:\n return getAccountBalanceHistory(request);\n case constants_1.MESSAGES.GET_CURRENT_FIAT_RATES:\n return getCurrentFiatRates(request);\n case constants_1.MESSAGES.GET_FIAT_RATES_FOR_TIMESTAMPS:\n return getFiatRatesForTimestamps(request);\n case constants_1.MESSAGES.GET_FIAT_RATES_TICKERS_LIST:\n return getFiatRatesTickersList(request);\n case constants_1.MESSAGES.ESTIMATE_FEE:\n return estimateFee(request);\n case constants_1.MESSAGES.PUSH_TRANSACTION:\n return pushTransaction(request);\n case constants_1.MESSAGES.SUBSCRIBE:\n return subscribe(request);\n case constants_1.MESSAGES.UNSUBSCRIBE:\n return unsubscribe(request);\n default:\n throw new errors_1.CustomError('worker_unknown_request', `+${request.type}`);\n }\n};\nclass BlockbookWorker extends base_1.BaseWorker {\n cleanup() {\n if (this.api) {\n this.api.dispose();\n this.api.removeAllListeners();\n }\n super.cleanup();\n }\n isConnected(api) {\n var _a;\n return (_a = api === null || api === void 0 ? void 0 : api.isConnected()) !== null && _a !== void 0 ? _a : false;\n }\n async tryConnect(url) {\n const { timeout, pingTimeout, keepAlive } = this.settings;\n const api = new websocket_1.BlockbookAPI({\n url,\n timeout,\n pingTimeout,\n keepAlive,\n agent: this.proxyAgent,\n });\n await api.connect();\n api.on('disconnected', () => {\n this.post({ id: -1, type: constants_1.RESPONSES.DISCONNECTED, payload: true });\n this.cleanup();\n });\n this.post({\n id: -1,\n type: constants_1.RESPONSES.CONNECTED,\n });\n return api;\n }\n disconnect() {\n if (this.api) {\n this.api.disconnect();\n }\n }\n async messageHandler(event) {\n try {\n if (await super.messageHandler(event))\n return true;\n const request = Object.assign(Object.assign({}, event.data), { connect: () => this.connect(), post: (data) => this.post(data), state: this.state });\n const response = await onRequest(request);\n this.post(Object.assign({ id: event.data.id }, response));\n }\n catch (error) {\n this.errorResponse(event.data.id, error);\n }\n }\n}\nfunction Blockbook() {\n return new BlockbookWorker();\n}\nexports.default = Blockbook;\nif (base_1.CONTEXT === 'worker') {\n const module = new BlockbookWorker();\n onmessage = module.messageHandler.bind(module);\n}\n//# sourceMappingURL=index.js.map", null, null, null, null, "/**\n * @license\n * Lodash \n * Copyright OpenJS Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n;(function() {\n\n /** Used as a safe reference for `undefined` in pre-ES5 environments. */\n var undefined;\n\n /** Used as the semantic version number. */\n var VERSION = '4.17.21';\n\n /** Used as the size to enable large array optimizations. */\n var LARGE_ARRAY_SIZE = 200;\n\n /** Error message constants. */\n var CORE_ERROR_TEXT = 'Unsupported core-js use. Try https://npms.io/search?q=ponyfill.',\n FUNC_ERROR_TEXT = 'Expected a function',\n INVALID_TEMPL_VAR_ERROR_TEXT = 'Invalid `variable` option passed into `_.template`';\n\n /** Used to stand-in for `undefined` hash values. */\n var HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n /** Used as the maximum memoize cache size. */\n var MAX_MEMOIZE_SIZE = 500;\n\n /** Used as the internal argument placeholder. */\n var PLACEHOLDER = '__lodash_placeholder__';\n\n /** Used to compose bitmasks for cloning. */\n var CLONE_DEEP_FLAG = 1,\n CLONE_FLAT_FLAG = 2,\n CLONE_SYMBOLS_FLAG = 4;\n\n /** Used to compose bitmasks for value comparisons. */\n var COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n /** Used to compose bitmasks for function metadata. */\n var WRAP_BIND_FLAG = 1,\n WRAP_BIND_KEY_FLAG = 2,\n WRAP_CURRY_BOUND_FLAG = 4,\n WRAP_CURRY_FLAG = 8,\n WRAP_CURRY_RIGHT_FLAG = 16,\n WRAP_PARTIAL_FLAG = 32,\n WRAP_PARTIAL_RIGHT_FLAG = 64,\n WRAP_ARY_FLAG = 128,\n WRAP_REARG_FLAG = 256,\n WRAP_FLIP_FLAG = 512;\n\n /** Used as default options for `_.truncate`. */\n var DEFAULT_TRUNC_LENGTH = 30,\n DEFAULT_TRUNC_OMISSION = '...';\n\n /** Used to detect hot functions by number of calls within a span of milliseconds. */\n var HOT_COUNT = 800,\n HOT_SPAN = 16;\n\n /** Used to indicate the type of lazy iteratees. */\n var LAZY_FILTER_FLAG = 1,\n LAZY_MAP_FLAG = 2,\n LAZY_WHILE_FLAG = 3;\n\n /** Used as references for various `Number` constants. */\n var INFINITY = 1 / 0,\n MAX_SAFE_INTEGER = 9007199254740991,\n MAX_INTEGER = 1.7976931348623157e+308,\n NAN = 0 / 0;\n\n /** Used as references for the maximum length and index of an array. */\n var MAX_ARRAY_LENGTH = 4294967295,\n MAX_ARRAY_INDEX = MAX_ARRAY_LENGTH - 1,\n HALF_MAX_ARRAY_LENGTH = MAX_ARRAY_LENGTH >>> 1;\n\n /** Used to associate wrap methods with their bit flags. */\n var wrapFlags = [\n ['ary', WRAP_ARY_FLAG],\n ['bind', WRAP_BIND_FLAG],\n ['bindKey', WRAP_BIND_KEY_FLAG],\n ['curry', WRAP_CURRY_FLAG],\n ['curryRight', WRAP_CURRY_RIGHT_FLAG],\n ['flip', WRAP_FLIP_FLAG],\n ['partial', WRAP_PARTIAL_FLAG],\n ['partialRight', WRAP_PARTIAL_RIGHT_FLAG],\n ['rearg', WRAP_REARG_FLAG]\n ];\n\n /** `Object#toString` result references. */\n var argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n asyncTag = '[object AsyncFunction]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n domExcTag = '[object DOMException]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n nullTag = '[object Null]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n proxyTag = '[object Proxy]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]',\n undefinedTag = '[object Undefined]',\n weakMapTag = '[object WeakMap]',\n weakSetTag = '[object WeakSet]';\n\n var arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n /** Used to match empty string literals in compiled template source. */\n var reEmptyStringLeading = /\\b__p \\+= '';/g,\n reEmptyStringMiddle = /\\b(__p \\+=) '' \\+/g,\n reEmptyStringTrailing = /(__e\\(.*?\\)|\\b__t\\)) \\+\\n'';/g;\n\n /** Used to match HTML entities and HTML characters. */\n var reEscapedHtml = /&(?:amp|lt|gt|quot|#39);/g,\n reUnescapedHtml = /[&<>\"']/g,\n reHasEscapedHtml = RegExp(reEscapedHtml.source),\n reHasUnescapedHtml = RegExp(reUnescapedHtml.source);\n\n /** Used to match template delimiters. */\n var reEscape = /<%-([\\s\\S]+?)%>/g,\n reEvaluate = /<%([\\s\\S]+?)%>/g,\n reInterpolate = /<%=([\\s\\S]+?)%>/g;\n\n /** Used to match property names within property paths. */\n var reIsDeepProp = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,\n reIsPlainProp = /^\\w*$/,\n rePropName = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g;\n\n /**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\n var reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g,\n reHasRegExpChar = RegExp(reRegExpChar.source);\n\n /** Used to match leading whitespace. */\n var reTrimStart = /^\\s+/;\n\n /** Used to match a single whitespace character. */\n var reWhitespace = /\\s/;\n\n /** Used to match wrap detail comments. */\n var reWrapComment = /\\{(?:\\n\\/\\* \\[wrapped with .+\\] \\*\\/)?\\n?/,\n reWrapDetails = /\\{\\n\\/\\* \\[wrapped with (.+)\\] \\*/,\n reSplitDetails = /,? & /;\n\n /** Used to match words composed of alphanumeric characters. */\n var reAsciiWord = /[^\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\x7f]+/g;\n\n /**\n * Used to validate the `validate` option in `_.template` variable.\n *\n * Forbids characters which could potentially change the meaning of the function argument definition:\n * - \"(),\" (modification of function parameters)\n * - \"=\" (default value)\n * - \"[]{}\" (destructuring of function parameters)\n * - \"/\" (beginning of a comment)\n * - whitespace\n */\n var reForbiddenIdentifierChars = /[()=,{}\\[\\]\\/\\s]/;\n\n /** Used to match backslashes in property paths. */\n var reEscapeChar = /\\\\(\\\\)?/g;\n\n /**\n * Used to match\n * [ES template delimiters](http://ecma-international.org/ecma-262/7.0/#sec-template-literal-lexical-components).\n */\n var reEsTemplate = /\\$\\{([^\\\\}]*(?:\\\\.[^\\\\}]*)*)\\}/g;\n\n /** Used to match `RegExp` flags from their coerced string values. */\n var reFlags = /\\w*$/;\n\n /** Used to detect bad signed hexadecimal string values. */\n var reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n /** Used to detect binary string values. */\n var reIsBinary = /^0b[01]+$/i;\n\n /** Used to detect host constructors (Safari). */\n var reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n /** Used to detect octal string values. */\n var reIsOctal = /^0o[0-7]+$/i;\n\n /** Used to detect unsigned integer values. */\n var reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n /** Used to match Latin Unicode letters (excluding mathematical operators). */\n var reLatin = /[\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\xff\\u0100-\\u017f]/g;\n\n /** Used to ensure capturing order of template delimiters. */\n var reNoMatch = /($^)/;\n\n /** Used to match unescaped characters in compiled string literals. */\n var reUnescapedString = /['\\n\\r\\u2028\\u2029\\\\]/g;\n\n /** Used to compose unicode character classes. */\n var rsAstralRange = '\\\\ud800-\\\\udfff',\n rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n rsDingbatRange = '\\\\u2700-\\\\u27bf',\n rsLowerRange = 'a-z\\\\xdf-\\\\xf6\\\\xf8-\\\\xff',\n rsMathOpRange = '\\\\xac\\\\xb1\\\\xd7\\\\xf7',\n rsNonCharRange = '\\\\x00-\\\\x2f\\\\x3a-\\\\x40\\\\x5b-\\\\x60\\\\x7b-\\\\xbf',\n rsPunctuationRange = '\\\\u2000-\\\\u206f',\n rsSpaceRange = ' \\\\t\\\\x0b\\\\f\\\\xa0\\\\ufeff\\\\n\\\\r\\\\u2028\\\\u2029\\\\u1680\\\\u180e\\\\u2000\\\\u2001\\\\u2002\\\\u2003\\\\u2004\\\\u2005\\\\u2006\\\\u2007\\\\u2008\\\\u2009\\\\u200a\\\\u202f\\\\u205f\\\\u3000',\n rsUpperRange = 'A-Z\\\\xc0-\\\\xd6\\\\xd8-\\\\xde',\n rsVarRange = '\\\\ufe0e\\\\ufe0f',\n rsBreakRange = rsMathOpRange + rsNonCharRange + rsPunctuationRange + rsSpaceRange;\n\n /** Used to compose unicode capture groups. */\n var rsApos = \"['\\u2019]\",\n rsAstral = '[' + rsAstralRange + ']',\n rsBreak = '[' + rsBreakRange + ']',\n rsCombo = '[' + rsComboRange + ']',\n rsDigits = '\\\\d+',\n rsDingbat = '[' + rsDingbatRange + ']',\n rsLower = '[' + rsLowerRange + ']',\n rsMisc = '[^' + rsAstralRange + rsBreakRange + rsDigits + rsDingbatRange + rsLowerRange + rsUpperRange + ']',\n rsFitz = '\\\\ud83c[\\\\udffb-\\\\udfff]',\n rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')',\n rsNonAstral = '[^' + rsAstralRange + ']',\n rsRegional = '(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}',\n rsSurrPair = '[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]',\n rsUpper = '[' + rsUpperRange + ']',\n rsZWJ = '\\\\u200d';\n\n /** Used to compose unicode regexes. */\n var rsMiscLower = '(?:' + rsLower + '|' + rsMisc + ')',\n rsMiscUpper = '(?:' + rsUpper + '|' + rsMisc + ')',\n rsOptContrLower = '(?:' + rsApos + '(?:d|ll|m|re|s|t|ve))?',\n rsOptContrUpper = '(?:' + rsApos + '(?:D|LL|M|RE|S|T|VE))?',\n reOptMod = rsModifier + '?',\n rsOptVar = '[' + rsVarRange + ']?',\n rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*',\n rsOrdLower = '\\\\d*(?:1st|2nd|3rd|(?![123])\\\\dth)(?=\\\\b|[A-Z_])',\n rsOrdUpper = '\\\\d*(?:1ST|2ND|3RD|(?![123])\\\\dTH)(?=\\\\b|[a-z_])',\n rsSeq = rsOptVar + reOptMod + rsOptJoin,\n rsEmoji = '(?:' + [rsDingbat, rsRegional, rsSurrPair].join('|') + ')' + rsSeq,\n rsSymbol = '(?:' + [rsNonAstral + rsCombo + '?', rsCombo, rsRegional, rsSurrPair, rsAstral].join('|') + ')';\n\n /** Used to match apostrophes. */\n var reApos = RegExp(rsApos, 'g');\n\n /**\n * Used to match [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks) and\n * [combining diacritical marks for symbols](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks_for_Symbols).\n */\n var reComboMark = RegExp(rsCombo, 'g');\n\n /** Used to match [string symbols](https://mathiasbynens.be/notes/javascript-unicode). */\n var reUnicode = RegExp(rsFitz + '(?=' + rsFitz + ')|' + rsSymbol + rsSeq, 'g');\n\n /** Used to match complex or compound words. */\n var reUnicodeWord = RegExp([\n rsUpper + '?' + rsLower + '+' + rsOptContrLower + '(?=' + [rsBreak, rsUpper, '$'].join('|') + ')',\n rsMiscUpper + '+' + rsOptContrUpper + '(?=' + [rsBreak, rsUpper + rsMiscLower, '$'].join('|') + ')',\n rsUpper + '?' + rsMiscLower + '+' + rsOptContrLower,\n rsUpper + '+' + rsOptContrUpper,\n rsOrdUpper,\n rsOrdLower,\n rsDigits,\n rsEmoji\n ].join('|'), 'g');\n\n /** Used to detect strings with [zero-width joiners or code points from the astral planes](http://eev.ee/blog/2015/09/12/dark-corners-of-unicode/). */\n var reHasUnicode = RegExp('[' + rsZWJ + rsAstralRange + rsComboRange + rsVarRange + ']');\n\n /** Used to detect strings that need a more robust regexp to match words. */\n var reHasUnicodeWord = /[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/;\n\n /** Used to assign default `context` object properties. */\n var contextProps = [\n 'Array', 'Buffer', 'DataView', 'Date', 'Error', 'Float32Array', 'Float64Array',\n 'Function', 'Int8Array', 'Int16Array', 'Int32Array', 'Map', 'Math', 'Object',\n 'Promise', 'RegExp', 'Set', 'String', 'Symbol', 'TypeError', 'Uint8Array',\n 'Uint8ClampedArray', 'Uint16Array', 'Uint32Array', 'WeakMap',\n '_', 'clearTimeout', 'isFinite', 'parseInt', 'setTimeout'\n ];\n\n /** Used to make template sourceURLs easier to identify. */\n var templateCounter = -1;\n\n /** Used to identify `toStringTag` values of typed arrays. */\n var typedArrayTags = {};\n typedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\n typedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\n typedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\n typedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\n typedArrayTags[uint32Tag] = true;\n typedArrayTags[argsTag] = typedArrayTags[arrayTag] =\n typedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\n typedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\n typedArrayTags[errorTag] = typedArrayTags[funcTag] =\n typedArrayTags[mapTag] = typedArrayTags[numberTag] =\n typedArrayTags[objectTag] = typedArrayTags[regexpTag] =\n typedArrayTags[setTag] = typedArrayTags[stringTag] =\n typedArrayTags[weakMapTag] = false;\n\n /** Used to identify `toStringTag` values supported by `_.clone`. */\n var cloneableTags = {};\n cloneableTags[argsTag] = cloneableTags[arrayTag] =\n cloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] =\n cloneableTags[boolTag] = cloneableTags[dateTag] =\n cloneableTags[float32Tag] = cloneableTags[float64Tag] =\n cloneableTags[int8Tag] = cloneableTags[int16Tag] =\n cloneableTags[int32Tag] = cloneableTags[mapTag] =\n cloneableTags[numberTag] = cloneableTags[objectTag] =\n cloneableTags[regexpTag] = cloneableTags[setTag] =\n cloneableTags[stringTag] = cloneableTags[symbolTag] =\n cloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] =\n cloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true;\n cloneableTags[errorTag] = cloneableTags[funcTag] =\n cloneableTags[weakMapTag] = false;\n\n /** Used to map Latin Unicode letters to basic Latin letters. */\n var deburredLetters = {\n // Latin-1 Supplement block.\n '\\xc0': 'A', '\\xc1': 'A', '\\xc2': 'A', '\\xc3': 'A', '\\xc4': 'A', '\\xc5': 'A',\n '\\xe0': 'a', '\\xe1': 'a', '\\xe2': 'a', '\\xe3': 'a', '\\xe4': 'a', '\\xe5': 'a',\n '\\xc7': 'C', '\\xe7': 'c',\n '\\xd0': 'D', '\\xf0': 'd',\n '\\xc8': 'E', '\\xc9': 'E', '\\xca': 'E', '\\xcb': 'E',\n '\\xe8': 'e', '\\xe9': 'e', '\\xea': 'e', '\\xeb': 'e',\n '\\xcc': 'I', '\\xcd': 'I', '\\xce': 'I', '\\xcf': 'I',\n '\\xec': 'i', '\\xed': 'i', '\\xee': 'i', '\\xef': 'i',\n '\\xd1': 'N', '\\xf1': 'n',\n '\\xd2': 'O', '\\xd3': 'O', '\\xd4': 'O', '\\xd5': 'O', '\\xd6': 'O', '\\xd8': 'O',\n '\\xf2': 'o', '\\xf3': 'o', '\\xf4': 'o', '\\xf5': 'o', '\\xf6': 'o', '\\xf8': 'o',\n '\\xd9': 'U', '\\xda': 'U', '\\xdb': 'U', '\\xdc': 'U',\n '\\xf9': 'u', '\\xfa': 'u', '\\xfb': 'u', '\\xfc': 'u',\n '\\xdd': 'Y', '\\xfd': 'y', '\\xff': 'y',\n '\\xc6': 'Ae', '\\xe6': 'ae',\n '\\xde': 'Th', '\\xfe': 'th',\n '\\xdf': 'ss',\n // Latin Extended-A block.\n '\\u0100': 'A', '\\u0102': 'A', '\\u0104': 'A',\n '\\u0101': 'a', '\\u0103': 'a', '\\u0105': 'a',\n '\\u0106': 'C', '\\u0108': 'C', '\\u010a': 'C', '\\u010c': 'C',\n '\\u0107': 'c', '\\u0109': 'c', '\\u010b': 'c', '\\u010d': 'c',\n '\\u010e': 'D', '\\u0110': 'D', '\\u010f': 'd', '\\u0111': 'd',\n '\\u0112': 'E', '\\u0114': 'E', '\\u0116': 'E', '\\u0118': 'E', '\\u011a': 'E',\n '\\u0113': 'e', '\\u0115': 'e', '\\u0117': 'e', '\\u0119': 'e', '\\u011b': 'e',\n '\\u011c': 'G', '\\u011e': 'G', '\\u0120': 'G', '\\u0122': 'G',\n '\\u011d': 'g', '\\u011f': 'g', '\\u0121': 'g', '\\u0123': 'g',\n '\\u0124': 'H', '\\u0126': 'H', '\\u0125': 'h', '\\u0127': 'h',\n '\\u0128': 'I', '\\u012a': 'I', '\\u012c': 'I', '\\u012e': 'I', '\\u0130': 'I',\n '\\u0129': 'i', '\\u012b': 'i', '\\u012d': 'i', '\\u012f': 'i', '\\u0131': 'i',\n '\\u0134': 'J', '\\u0135': 'j',\n '\\u0136': 'K', '\\u0137': 'k', '\\u0138': 'k',\n '\\u0139': 'L', '\\u013b': 'L', '\\u013d': 'L', '\\u013f': 'L', '\\u0141': 'L',\n '\\u013a': 'l', '\\u013c': 'l', '\\u013e': 'l', '\\u0140': 'l', '\\u0142': 'l',\n '\\u0143': 'N', '\\u0145': 'N', '\\u0147': 'N', '\\u014a': 'N',\n '\\u0144': 'n', '\\u0146': 'n', '\\u0148': 'n', '\\u014b': 'n',\n '\\u014c': 'O', '\\u014e': 'O', '\\u0150': 'O',\n '\\u014d': 'o', '\\u014f': 'o', '\\u0151': 'o',\n '\\u0154': 'R', '\\u0156': 'R', '\\u0158': 'R',\n '\\u0155': 'r', '\\u0157': 'r', '\\u0159': 'r',\n '\\u015a': 'S', '\\u015c': 'S', '\\u015e': 'S', '\\u0160': 'S',\n '\\u015b': 's', '\\u015d': 's', '\\u015f': 's', '\\u0161': 's',\n '\\u0162': 'T', '\\u0164': 'T', '\\u0166': 'T',\n '\\u0163': 't', '\\u0165': 't', '\\u0167': 't',\n '\\u0168': 'U', '\\u016a': 'U', '\\u016c': 'U', '\\u016e': 'U', '\\u0170': 'U', '\\u0172': 'U',\n '\\u0169': 'u', '\\u016b': 'u', '\\u016d': 'u', '\\u016f': 'u', '\\u0171': 'u', '\\u0173': 'u',\n '\\u0174': 'W', '\\u0175': 'w',\n '\\u0176': 'Y', '\\u0177': 'y', '\\u0178': 'Y',\n '\\u0179': 'Z', '\\u017b': 'Z', '\\u017d': 'Z',\n '\\u017a': 'z', '\\u017c': 'z', '\\u017e': 'z',\n '\\u0132': 'IJ', '\\u0133': 'ij',\n '\\u0152': 'Oe', '\\u0153': 'oe',\n '\\u0149': \"'n\", '\\u017f': 's'\n };\n\n /** Used to map characters to HTML entities. */\n var htmlEscapes = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": '''\n };\n\n /** Used to map HTML entities to characters. */\n var htmlUnescapes = {\n '&': '&',\n '<': '<',\n '>': '>',\n '"': '\"',\n ''': \"'\"\n };\n\n /** Used to escape characters for inclusion in compiled string literals. */\n var stringEscapes = {\n '\\\\': '\\\\',\n \"'\": \"'\",\n '\\n': 'n',\n '\\r': 'r',\n '\\u2028': 'u2028',\n '\\u2029': 'u2029'\n };\n\n /** Built-in method references without a dependency on `root`. */\n var freeParseFloat = parseFloat,\n freeParseInt = parseInt;\n\n /** Detect free variable `global` from Node.js. */\n var freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n /** Detect free variable `self`. */\n var freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n /** Used as a reference to the global object. */\n var root = freeGlobal || freeSelf || Function('return this')();\n\n /** Detect free variable `exports`. */\n var freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n /** Detect free variable `module`. */\n var freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n /** Detect the popular CommonJS extension `module.exports`. */\n var moduleExports = freeModule && freeModule.exports === freeExports;\n\n /** Detect free variable `process` from Node.js. */\n var freeProcess = moduleExports && freeGlobal.process;\n\n /** Used to access faster Node.js helpers. */\n var nodeUtil = (function() {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n if (types) {\n return types;\n }\n\n // Legacy `process.binding('util')` for Node.js < 10.\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n }());\n\n /* Node.js helper references. */\n var nodeIsArrayBuffer = nodeUtil && nodeUtil.isArrayBuffer,\n nodeIsDate = nodeUtil && nodeUtil.isDate,\n nodeIsMap = nodeUtil && nodeUtil.isMap,\n nodeIsRegExp = nodeUtil && nodeUtil.isRegExp,\n nodeIsSet = nodeUtil && nodeUtil.isSet,\n nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n /*--------------------------------------------------------------------------*/\n\n /**\n * A faster alternative to `Function#apply`, this function invokes `func`\n * with the `this` binding of `thisArg` and the arguments of `args`.\n *\n * @private\n * @param {Function} func The function to invoke.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} args The arguments to invoke `func` with.\n * @returns {*} Returns the result of `func`.\n */\n function apply(func, thisArg, args) {\n switch (args.length) {\n case 0: return func.call(thisArg);\n case 1: return func.call(thisArg, args[0]);\n case 2: return func.call(thisArg, args[0], args[1]);\n case 3: return func.call(thisArg, args[0], args[1], args[2]);\n }\n return func.apply(thisArg, args);\n }\n\n /**\n * A specialized version of `baseAggregator` for arrays.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} setter The function to set `accumulator` values.\n * @param {Function} iteratee The iteratee to transform keys.\n * @param {Object} accumulator The initial aggregated object.\n * @returns {Function} Returns `accumulator`.\n */\n function arrayAggregator(array, setter, iteratee, accumulator) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n var value = array[index];\n setter(accumulator, value, iteratee(value), array);\n }\n return accumulator;\n }\n\n /**\n * A specialized version of `_.forEach` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns `array`.\n */\n function arrayEach(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (iteratee(array[index], index, array) === false) {\n break;\n }\n }\n return array;\n }\n\n /**\n * A specialized version of `_.forEachRight` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns `array`.\n */\n function arrayEachRight(array, iteratee) {\n var length = array == null ? 0 : array.length;\n\n while (length--) {\n if (iteratee(array[length], length, array) === false) {\n break;\n }\n }\n return array;\n }\n\n /**\n * A specialized version of `_.every` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if all elements pass the predicate check,\n * else `false`.\n */\n function arrayEvery(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (!predicate(array[index], index, array)) {\n return false;\n }\n }\n return true;\n }\n\n /**\n * A specialized version of `_.filter` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\n function arrayFilter(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result[resIndex++] = value;\n }\n }\n return result;\n }\n\n /**\n * A specialized version of `_.includes` for arrays without support for\n * specifying an index to search from.\n *\n * @private\n * @param {Array} [array] The array to inspect.\n * @param {*} target The value to search for.\n * @returns {boolean} Returns `true` if `target` is found, else `false`.\n */\n function arrayIncludes(array, value) {\n var length = array == null ? 0 : array.length;\n return !!length && baseIndexOf(array, value, 0) > -1;\n }\n\n /**\n * This function is like `arrayIncludes` except that it accepts a comparator.\n *\n * @private\n * @param {Array} [array] The array to inspect.\n * @param {*} target The value to search for.\n * @param {Function} comparator The comparator invoked per element.\n * @returns {boolean} Returns `true` if `target` is found, else `false`.\n */\n function arrayIncludesWith(array, value, comparator) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (comparator(value, array[index])) {\n return true;\n }\n }\n return false;\n }\n\n /**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\n function arrayMap(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length,\n result = Array(length);\n\n while (++index < length) {\n result[index] = iteratee(array[index], index, array);\n }\n return result;\n }\n\n /**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\n function arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n }\n\n /**\n * A specialized version of `_.reduce` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @param {boolean} [initAccum] Specify using the first element of `array` as\n * the initial value.\n * @returns {*} Returns the accumulated value.\n */\n function arrayReduce(array, iteratee, accumulator, initAccum) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n if (initAccum && length) {\n accumulator = array[++index];\n }\n while (++index < length) {\n accumulator = iteratee(accumulator, array[index], index, array);\n }\n return accumulator;\n }\n\n /**\n * A specialized version of `_.reduceRight` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @param {boolean} [initAccum] Specify using the last element of `array` as\n * the initial value.\n * @returns {*} Returns the accumulated value.\n */\n function arrayReduceRight(array, iteratee, accumulator, initAccum) {\n var length = array == null ? 0 : array.length;\n if (initAccum && length) {\n accumulator = array[--length];\n }\n while (length--) {\n accumulator = iteratee(accumulator, array[length], length, array);\n }\n return accumulator;\n }\n\n /**\n * A specialized version of `_.some` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\n function arraySome(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (predicate(array[index], index, array)) {\n return true;\n }\n }\n return false;\n }\n\n /**\n * Gets the size of an ASCII `string`.\n *\n * @private\n * @param {string} string The string inspect.\n * @returns {number} Returns the string size.\n */\n var asciiSize = baseProperty('length');\n\n /**\n * Converts an ASCII `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\n function asciiToArray(string) {\n return string.split('');\n }\n\n /**\n * Splits an ASCII `string` into an array of its words.\n *\n * @private\n * @param {string} The string to inspect.\n * @returns {Array} Returns the words of `string`.\n */\n function asciiWords(string) {\n return string.match(reAsciiWord) || [];\n }\n\n /**\n * The base implementation of methods like `_.findKey` and `_.findLastKey`,\n * without support for iteratee shorthands, which iterates over `collection`\n * using `eachFunc`.\n *\n * @private\n * @param {Array|Object} collection The collection to inspect.\n * @param {Function} predicate The function invoked per iteration.\n * @param {Function} eachFunc The function to iterate over `collection`.\n * @returns {*} Returns the found element or its key, else `undefined`.\n */\n function baseFindKey(collection, predicate, eachFunc) {\n var result;\n eachFunc(collection, function(value, key, collection) {\n if (predicate(value, key, collection)) {\n result = key;\n return false;\n }\n });\n return result;\n }\n\n /**\n * The base implementation of `_.findIndex` and `_.findLastIndex` without\n * support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} predicate The function invoked per iteration.\n * @param {number} fromIndex The index to search from.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\n function baseFindIndex(array, predicate, fromIndex, fromRight) {\n var length = array.length,\n index = fromIndex + (fromRight ? 1 : -1);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (predicate(array[index], index, array)) {\n return index;\n }\n }\n return -1;\n }\n\n /**\n * The base implementation of `_.indexOf` without `fromIndex` bounds checks.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\n function baseIndexOf(array, value, fromIndex) {\n return value === value\n ? strictIndexOf(array, value, fromIndex)\n : baseFindIndex(array, baseIsNaN, fromIndex);\n }\n\n /**\n * This function is like `baseIndexOf` except that it accepts a comparator.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @param {Function} comparator The comparator invoked per element.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\n function baseIndexOfWith(array, value, fromIndex, comparator) {\n var index = fromIndex - 1,\n length = array.length;\n\n while (++index < length) {\n if (comparator(array[index], value)) {\n return index;\n }\n }\n return -1;\n }\n\n /**\n * The base implementation of `_.isNaN` without support for number objects.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`.\n */\n function baseIsNaN(value) {\n return value !== value;\n }\n\n /**\n * The base implementation of `_.mean` and `_.meanBy` without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {number} Returns the mean.\n */\n function baseMean(array, iteratee) {\n var length = array == null ? 0 : array.length;\n return length ? (baseSum(array, iteratee) / length) : NAN;\n }\n\n /**\n * The base implementation of `_.property` without support for deep paths.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\n function baseProperty(key) {\n return function(object) {\n return object == null ? undefined : object[key];\n };\n }\n\n /**\n * The base implementation of `_.propertyOf` without support for deep paths.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Function} Returns the new accessor function.\n */\n function basePropertyOf(object) {\n return function(key) {\n return object == null ? undefined : object[key];\n };\n }\n\n /**\n * The base implementation of `_.reduce` and `_.reduceRight`, without support\n * for iteratee shorthands, which iterates over `collection` using `eachFunc`.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {*} accumulator The initial value.\n * @param {boolean} initAccum Specify using the first or last element of\n * `collection` as the initial value.\n * @param {Function} eachFunc The function to iterate over `collection`.\n * @returns {*} Returns the accumulated value.\n */\n function baseReduce(collection, iteratee, accumulator, initAccum, eachFunc) {\n eachFunc(collection, function(value, index, collection) {\n accumulator = initAccum\n ? (initAccum = false, value)\n : iteratee(accumulator, value, index, collection);\n });\n return accumulator;\n }\n\n /**\n * The base implementation of `_.sortBy` which uses `comparer` to define the\n * sort order of `array` and replaces criteria objects with their corresponding\n * values.\n *\n * @private\n * @param {Array} array The array to sort.\n * @param {Function} comparer The function to define sort order.\n * @returns {Array} Returns `array`.\n */\n function baseSortBy(array, comparer) {\n var length = array.length;\n\n array.sort(comparer);\n while (length--) {\n array[length] = array[length].value;\n }\n return array;\n }\n\n /**\n * The base implementation of `_.sum` and `_.sumBy` without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {number} Returns the sum.\n */\n function baseSum(array, iteratee) {\n var result,\n index = -1,\n length = array.length;\n\n while (++index < length) {\n var current = iteratee(array[index]);\n if (current !== undefined) {\n result = result === undefined ? current : (result + current);\n }\n }\n return result;\n }\n\n /**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\n function baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n }\n\n /**\n * The base implementation of `_.toPairs` and `_.toPairsIn` which creates an array\n * of key-value pairs for `object` corresponding to the property names of `props`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array} props The property names to get values for.\n * @returns {Object} Returns the key-value pairs.\n */\n function baseToPairs(object, props) {\n return arrayMap(props, function(key) {\n return [key, object[key]];\n });\n }\n\n /**\n * The base implementation of `_.trim`.\n *\n * @private\n * @param {string} string The string to trim.\n * @returns {string} Returns the trimmed string.\n */\n function baseTrim(string) {\n return string\n ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, '')\n : string;\n }\n\n /**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\n function baseUnary(func) {\n return function(value) {\n return func(value);\n };\n }\n\n /**\n * The base implementation of `_.values` and `_.valuesIn` which creates an\n * array of `object` property values corresponding to the property names\n * of `props`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array} props The property names to get values for.\n * @returns {Object} Returns the array of property values.\n */\n function baseValues(object, props) {\n return arrayMap(props, function(key) {\n return object[key];\n });\n }\n\n /**\n * Checks if a `cache` value for `key` exists.\n *\n * @private\n * @param {Object} cache The cache to query.\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\n function cacheHas(cache, key) {\n return cache.has(key);\n }\n\n /**\n * Used by `_.trim` and `_.trimStart` to get the index of the first string symbol\n * that is not found in the character symbols.\n *\n * @private\n * @param {Array} strSymbols The string symbols to inspect.\n * @param {Array} chrSymbols The character symbols to find.\n * @returns {number} Returns the index of the first unmatched string symbol.\n */\n function charsStartIndex(strSymbols, chrSymbols) {\n var index = -1,\n length = strSymbols.length;\n\n while (++index < length && baseIndexOf(chrSymbols, strSymbols[index], 0) > -1) {}\n return index;\n }\n\n /**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last string symbol\n * that is not found in the character symbols.\n *\n * @private\n * @param {Array} strSymbols The string symbols to inspect.\n * @param {Array} chrSymbols The character symbols to find.\n * @returns {number} Returns the index of the last unmatched string symbol.\n */\n function charsEndIndex(strSymbols, chrSymbols) {\n var index = strSymbols.length;\n\n while (index-- && baseIndexOf(chrSymbols, strSymbols[index], 0) > -1) {}\n return index;\n }\n\n /**\n * Gets the number of `placeholder` occurrences in `array`.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} placeholder The placeholder to search for.\n * @returns {number} Returns the placeholder count.\n */\n function countHolders(array, placeholder) {\n var length = array.length,\n result = 0;\n\n while (length--) {\n if (array[length] === placeholder) {\n ++result;\n }\n }\n return result;\n }\n\n /**\n * Used by `_.deburr` to convert Latin-1 Supplement and Latin Extended-A\n * letters to basic Latin letters.\n *\n * @private\n * @param {string} letter The matched letter to deburr.\n * @returns {string} Returns the deburred letter.\n */\n var deburrLetter = basePropertyOf(deburredLetters);\n\n /**\n * Used by `_.escape` to convert characters to HTML entities.\n *\n * @private\n * @param {string} chr The matched character to escape.\n * @returns {string} Returns the escaped character.\n */\n var escapeHtmlChar = basePropertyOf(htmlEscapes);\n\n /**\n * Used by `_.template` to escape characters for inclusion in compiled string literals.\n *\n * @private\n * @param {string} chr The matched character to escape.\n * @returns {string} Returns the escaped character.\n */\n function escapeStringChar(chr) {\n return '\\\\' + stringEscapes[chr];\n }\n\n /**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\n function getValue(object, key) {\n return object == null ? undefined : object[key];\n }\n\n /**\n * Checks if `string` contains Unicode symbols.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {boolean} Returns `true` if a symbol is found, else `false`.\n */\n function hasUnicode(string) {\n return reHasUnicode.test(string);\n }\n\n /**\n * Checks if `string` contains a word composed of Unicode symbols.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {boolean} Returns `true` if a word is found, else `false`.\n */\n function hasUnicodeWord(string) {\n return reHasUnicodeWord.test(string);\n }\n\n /**\n * Converts `iterator` to an array.\n *\n * @private\n * @param {Object} iterator The iterator to convert.\n * @returns {Array} Returns the converted array.\n */\n function iteratorToArray(iterator) {\n var data,\n result = [];\n\n while (!(data = iterator.next()).done) {\n result.push(data.value);\n }\n return result;\n }\n\n /**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\n function mapToArray(map) {\n var index = -1,\n result = Array(map.size);\n\n map.forEach(function(value, key) {\n result[++index] = [key, value];\n });\n return result;\n }\n\n /**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\n function overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n }\n\n /**\n * Replaces all `placeholder` elements in `array` with an internal placeholder\n * and returns an array of their indexes.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {*} placeholder The placeholder to replace.\n * @returns {Array} Returns the new array of placeholder indexes.\n */\n function replaceHolders(array, placeholder) {\n var index = -1,\n length = array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (value === placeholder || value === PLACEHOLDER) {\n array[index] = PLACEHOLDER;\n result[resIndex++] = index;\n }\n }\n return result;\n }\n\n /**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\n function setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n }\n\n /**\n * Converts `set` to its value-value pairs.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the value-value pairs.\n */\n function setToPairs(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = [value, value];\n });\n return result;\n }\n\n /**\n * A specialized version of `_.indexOf` which performs strict equality\n * comparisons of values, i.e. `===`.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\n function strictIndexOf(array, value, fromIndex) {\n var index = fromIndex - 1,\n length = array.length;\n\n while (++index < length) {\n if (array[index] === value) {\n return index;\n }\n }\n return -1;\n }\n\n /**\n * A specialized version of `_.lastIndexOf` which performs strict equality\n * comparisons of values, i.e. `===`.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\n function strictLastIndexOf(array, value, fromIndex) {\n var index = fromIndex + 1;\n while (index--) {\n if (array[index] === value) {\n return index;\n }\n }\n return index;\n }\n\n /**\n * Gets the number of symbols in `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the string size.\n */\n function stringSize(string) {\n return hasUnicode(string)\n ? unicodeSize(string)\n : asciiSize(string);\n }\n\n /**\n * Converts `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\n function stringToArray(string) {\n return hasUnicode(string)\n ? unicodeToArray(string)\n : asciiToArray(string);\n }\n\n /**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace\n * character of `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the index of the last non-whitespace character.\n */\n function trimmedEndIndex(string) {\n var index = string.length;\n\n while (index-- && reWhitespace.test(string.charAt(index))) {}\n return index;\n }\n\n /**\n * Used by `_.unescape` to convert HTML entities to characters.\n *\n * @private\n * @param {string} chr The matched character to unescape.\n * @returns {string} Returns the unescaped character.\n */\n var unescapeHtmlChar = basePropertyOf(htmlUnescapes);\n\n /**\n * Gets the size of a Unicode `string`.\n *\n * @private\n * @param {string} string The string inspect.\n * @returns {number} Returns the string size.\n */\n function unicodeSize(string) {\n var result = reUnicode.lastIndex = 0;\n while (reUnicode.test(string)) {\n ++result;\n }\n return result;\n }\n\n /**\n * Converts a Unicode `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\n function unicodeToArray(string) {\n return string.match(reUnicode) || [];\n }\n\n /**\n * Splits a Unicode `string` into an array of its words.\n *\n * @private\n * @param {string} The string to inspect.\n * @returns {Array} Returns the words of `string`.\n */\n function unicodeWords(string) {\n return string.match(reUnicodeWord) || [];\n }\n\n /*--------------------------------------------------------------------------*/\n\n /**\n * Create a new pristine `lodash` function using the `context` object.\n *\n * @static\n * @memberOf _\n * @since 1.1.0\n * @category Util\n * @param {Object} [context=root] The context object.\n * @returns {Function} Returns a new `lodash` function.\n * @example\n *\n * _.mixin({ 'foo': _.constant('foo') });\n *\n * var lodash = _.runInContext();\n * lodash.mixin({ 'bar': lodash.constant('bar') });\n *\n * _.isFunction(_.foo);\n * // => true\n * _.isFunction(_.bar);\n * // => false\n *\n * lodash.isFunction(lodash.foo);\n * // => false\n * lodash.isFunction(lodash.bar);\n * // => true\n *\n * // Create a suped-up `defer` in Node.js.\n * var defer = _.runInContext({ 'setTimeout': setImmediate }).defer;\n */\n var runInContext = (function runInContext(context) {\n context = context == null ? root : _.defaults(root.Object(), context, _.pick(root, contextProps));\n\n /** Built-in constructor references. */\n var Array = context.Array,\n Date = context.Date,\n Error = context.Error,\n Function = context.Function,\n Math = context.Math,\n Object = context.Object,\n RegExp = context.RegExp,\n String = context.String,\n TypeError = context.TypeError;\n\n /** Used for built-in method references. */\n var arrayProto = Array.prototype,\n funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n /** Used to detect overreaching core-js shims. */\n var coreJsData = context['__core-js_shared__'];\n\n /** Used to resolve the decompiled source of functions. */\n var funcToString = funcProto.toString;\n\n /** Used to check objects for own properties. */\n var hasOwnProperty = objectProto.hasOwnProperty;\n\n /** Used to generate unique IDs. */\n var idCounter = 0;\n\n /** Used to detect methods masquerading as native. */\n var maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n }());\n\n /**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\n var nativeObjectToString = objectProto.toString;\n\n /** Used to infer the `Object` constructor. */\n var objectCtorString = funcToString.call(Object);\n\n /** Used to restore the original `_` reference in `_.noConflict`. */\n var oldDash = root._;\n\n /** Used to detect if a method is native. */\n var reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n );\n\n /** Built-in value references. */\n var Buffer = moduleExports ? context.Buffer : undefined,\n Symbol = context.Symbol,\n Uint8Array = context.Uint8Array,\n allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined,\n getPrototype = overArg(Object.getPrototypeOf, Object),\n objectCreate = Object.create,\n propertyIsEnumerable = objectProto.propertyIsEnumerable,\n splice = arrayProto.splice,\n spreadableSymbol = Symbol ? Symbol.isConcatSpreadable : undefined,\n symIterator = Symbol ? Symbol.iterator : undefined,\n symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n var defineProperty = (function() {\n try {\n var func = getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n }());\n\n /** Mocked built-ins. */\n var ctxClearTimeout = context.clearTimeout !== root.clearTimeout && context.clearTimeout,\n ctxNow = Date && Date.now !== root.Date.now && Date.now,\n ctxSetTimeout = context.setTimeout !== root.setTimeout && context.setTimeout;\n\n /* Built-in method references for those with the same name as other `lodash` methods. */\n var nativeCeil = Math.ceil,\n nativeFloor = Math.floor,\n nativeGetSymbols = Object.getOwnPropertySymbols,\n nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined,\n nativeIsFinite = context.isFinite,\n nativeJoin = arrayProto.join,\n nativeKeys = overArg(Object.keys, Object),\n nativeMax = Math.max,\n nativeMin = Math.min,\n nativeNow = Date.now,\n nativeParseInt = context.parseInt,\n nativeRandom = Math.random,\n nativeReverse = arrayProto.reverse;\n\n /* Built-in method references that are verified to be native. */\n var DataView = getNative(context, 'DataView'),\n Map = getNative(context, 'Map'),\n Promise = getNative(context, 'Promise'),\n Set = getNative(context, 'Set'),\n WeakMap = getNative(context, 'WeakMap'),\n nativeCreate = getNative(Object, 'create');\n\n /** Used to store function metadata. */\n var metaMap = WeakMap && new WeakMap;\n\n /** Used to lookup unminified function names. */\n var realNames = {};\n\n /** Used to detect maps, sets, and weakmaps. */\n var dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n /** Used to convert symbols to primitives and strings. */\n var symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates a `lodash` object which wraps `value` to enable implicit method\n * chain sequences. Methods that operate on and return arrays, collections,\n * and functions can be chained together. Methods that retrieve a single value\n * or may return a primitive value will automatically end the chain sequence\n * and return the unwrapped value. Otherwise, the value must be unwrapped\n * with `_#value`.\n *\n * Explicit chain sequences, which must be unwrapped with `_#value`, may be\n * enabled using `_.chain`.\n *\n * The execution of chained methods is lazy, that is, it's deferred until\n * `_#value` is implicitly or explicitly called.\n *\n * Lazy evaluation allows several methods to support shortcut fusion.\n * Shortcut fusion is an optimization to merge iteratee calls; this avoids\n * the creation of intermediate arrays and can greatly reduce the number of\n * iteratee executions. Sections of a chain sequence qualify for shortcut\n * fusion if the section is applied to an array and iteratees accept only\n * one argument. The heuristic for whether a section qualifies for shortcut\n * fusion is subject to change.\n *\n * Chaining is supported in custom builds as long as the `_#value` method is\n * directly or indirectly included in the build.\n *\n * In addition to lodash methods, wrappers have `Array` and `String` methods.\n *\n * The wrapper `Array` methods are:\n * `concat`, `join`, `pop`, `push`, `shift`, `sort`, `splice`, and `unshift`\n *\n * The wrapper `String` methods are:\n * `replace` and `split`\n *\n * The wrapper methods that support shortcut fusion are:\n * `at`, `compact`, `drop`, `dropRight`, `dropWhile`, `filter`, `find`,\n * `findLast`, `head`, `initial`, `last`, `map`, `reject`, `reverse`, `slice`,\n * `tail`, `take`, `takeRight`, `takeRightWhile`, `takeWhile`, and `toArray`\n *\n * The chainable wrapper methods are:\n * `after`, `ary`, `assign`, `assignIn`, `assignInWith`, `assignWith`, `at`,\n * `before`, `bind`, `bindAll`, `bindKey`, `castArray`, `chain`, `chunk`,\n * `commit`, `compact`, `concat`, `conforms`, `constant`, `countBy`, `create`,\n * `curry`, `debounce`, `defaults`, `defaultsDeep`, `defer`, `delay`,\n * `difference`, `differenceBy`, `differenceWith`, `drop`, `dropRight`,\n * `dropRightWhile`, `dropWhile`, `extend`, `extendWith`, `fill`, `filter`,\n * `flatMap`, `flatMapDeep`, `flatMapDepth`, `flatten`, `flattenDeep`,\n * `flattenDepth`, `flip`, `flow`, `flowRight`, `fromPairs`, `functions`,\n * `functionsIn`, `groupBy`, `initial`, `intersection`, `intersectionBy`,\n * `intersectionWith`, `invert`, `invertBy`, `invokeMap`, `iteratee`, `keyBy`,\n * `keys`, `keysIn`, `map`, `mapKeys`, `mapValues`, `matches`, `matchesProperty`,\n * `memoize`, `merge`, `mergeWith`, `method`, `methodOf`, `mixin`, `negate`,\n * `nthArg`, `omit`, `omitBy`, `once`, `orderBy`, `over`, `overArgs`,\n * `overEvery`, `overSome`, `partial`, `partialRight`, `partition`, `pick`,\n * `pickBy`, `plant`, `property`, `propertyOf`, `pull`, `pullAll`, `pullAllBy`,\n * `pullAllWith`, `pullAt`, `push`, `range`, `rangeRight`, `rearg`, `reject`,\n * `remove`, `rest`, `reverse`, `sampleSize`, `set`, `setWith`, `shuffle`,\n * `slice`, `sort`, `sortBy`, `splice`, `spread`, `tail`, `take`, `takeRight`,\n * `takeRightWhile`, `takeWhile`, `tap`, `throttle`, `thru`, `toArray`,\n * `toPairs`, `toPairsIn`, `toPath`, `toPlainObject`, `transform`, `unary`,\n * `union`, `unionBy`, `unionWith`, `uniq`, `uniqBy`, `uniqWith`, `unset`,\n * `unshift`, `unzip`, `unzipWith`, `update`, `updateWith`, `values`,\n * `valuesIn`, `without`, `wrap`, `xor`, `xorBy`, `xorWith`, `zip`,\n * `zipObject`, `zipObjectDeep`, and `zipWith`\n *\n * The wrapper methods that are **not** chainable by default are:\n * `add`, `attempt`, `camelCase`, `capitalize`, `ceil`, `clamp`, `clone`,\n * `cloneDeep`, `cloneDeepWith`, `cloneWith`, `conformsTo`, `deburr`,\n * `defaultTo`, `divide`, `each`, `eachRight`, `endsWith`, `eq`, `escape`,\n * `escapeRegExp`, `every`, `find`, `findIndex`, `findKey`, `findLast`,\n * `findLastIndex`, `findLastKey`, `first`, `floor`, `forEach`, `forEachRight`,\n * `forIn`, `forInRight`, `forOwn`, `forOwnRight`, `get`, `gt`, `gte`, `has`,\n * `hasIn`, `head`, `identity`, `includes`, `indexOf`, `inRange`, `invoke`,\n * `isArguments`, `isArray`, `isArrayBuffer`, `isArrayLike`, `isArrayLikeObject`,\n * `isBoolean`, `isBuffer`, `isDate`, `isElement`, `isEmpty`, `isEqual`,\n * `isEqualWith`, `isError`, `isFinite`, `isFunction`, `isInteger`, `isLength`,\n * `isMap`, `isMatch`, `isMatchWith`, `isNaN`, `isNative`, `isNil`, `isNull`,\n * `isNumber`, `isObject`, `isObjectLike`, `isPlainObject`, `isRegExp`,\n * `isSafeInteger`, `isSet`, `isString`, `isUndefined`, `isTypedArray`,\n * `isWeakMap`, `isWeakSet`, `join`, `kebabCase`, `last`, `lastIndexOf`,\n * `lowerCase`, `lowerFirst`, `lt`, `lte`, `max`, `maxBy`, `mean`, `meanBy`,\n * `min`, `minBy`, `multiply`, `noConflict`, `noop`, `now`, `nth`, `pad`,\n * `padEnd`, `padStart`, `parseInt`, `pop`, `random`, `reduce`, `reduceRight`,\n * `repeat`, `result`, `round`, `runInContext`, `sample`, `shift`, `size`,\n * `snakeCase`, `some`, `sortedIndex`, `sortedIndexBy`, `sortedLastIndex`,\n * `sortedLastIndexBy`, `startCase`, `startsWith`, `stubArray`, `stubFalse`,\n * `stubObject`, `stubString`, `stubTrue`, `subtract`, `sum`, `sumBy`,\n * `template`, `times`, `toFinite`, `toInteger`, `toJSON`, `toLength`,\n * `toLower`, `toNumber`, `toSafeInteger`, `toString`, `toUpper`, `trim`,\n * `trimEnd`, `trimStart`, `truncate`, `unescape`, `uniqueId`, `upperCase`,\n * `upperFirst`, `value`, and `words`\n *\n * @name _\n * @constructor\n * @category Seq\n * @param {*} value The value to wrap in a `lodash` instance.\n * @returns {Object} Returns the new `lodash` wrapper instance.\n * @example\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * var wrapped = _([1, 2, 3]);\n *\n * // Returns an unwrapped value.\n * wrapped.reduce(_.add);\n * // => 6\n *\n * // Returns a wrapped value.\n * var squares = wrapped.map(square);\n *\n * _.isArray(squares);\n * // => false\n *\n * _.isArray(squares.value());\n * // => true\n */\n function lodash(value) {\n if (isObjectLike(value) && !isArray(value) && !(value instanceof LazyWrapper)) {\n if (value instanceof LodashWrapper) {\n return value;\n }\n if (hasOwnProperty.call(value, '__wrapped__')) {\n return wrapperClone(value);\n }\n }\n return new LodashWrapper(value);\n }\n\n /**\n * The base implementation of `_.create` without support for assigning\n * properties to the created object.\n *\n * @private\n * @param {Object} proto The object to inherit from.\n * @returns {Object} Returns the new object.\n */\n var baseCreate = (function() {\n function object() {}\n return function(proto) {\n if (!isObject(proto)) {\n return {};\n }\n if (objectCreate) {\n return objectCreate(proto);\n }\n object.prototype = proto;\n var result = new object;\n object.prototype = undefined;\n return result;\n };\n }());\n\n /**\n * The function whose prototype chain sequence wrappers inherit from.\n *\n * @private\n */\n function baseLodash() {\n // No operation performed.\n }\n\n /**\n * The base constructor for creating `lodash` wrapper objects.\n *\n * @private\n * @param {*} value The value to wrap.\n * @param {boolean} [chainAll] Enable explicit method chain sequences.\n */\n function LodashWrapper(value, chainAll) {\n this.__wrapped__ = value;\n this.__actions__ = [];\n this.__chain__ = !!chainAll;\n this.__index__ = 0;\n this.__values__ = undefined;\n }\n\n /**\n * By default, the template delimiters used by lodash are like those in\n * embedded Ruby (ERB) as well as ES2015 template strings. Change the\n * following template settings to use alternative delimiters.\n *\n * @static\n * @memberOf _\n * @type {Object}\n */\n lodash.templateSettings = {\n\n /**\n * Used to detect `data` property values to be HTML-escaped.\n *\n * @memberOf _.templateSettings\n * @type {RegExp}\n */\n 'escape': reEscape,\n\n /**\n * Used to detect code to be evaluated.\n *\n * @memberOf _.templateSettings\n * @type {RegExp}\n */\n 'evaluate': reEvaluate,\n\n /**\n * Used to detect `data` property values to inject.\n *\n * @memberOf _.templateSettings\n * @type {RegExp}\n */\n 'interpolate': reInterpolate,\n\n /**\n * Used to reference the data object in the template text.\n *\n * @memberOf _.templateSettings\n * @type {string}\n */\n 'variable': '',\n\n /**\n * Used to import variables into the compiled template.\n *\n * @memberOf _.templateSettings\n * @type {Object}\n */\n 'imports': {\n\n /**\n * A reference to the `lodash` function.\n *\n * @memberOf _.templateSettings.imports\n * @type {Function}\n */\n '_': lodash\n }\n };\n\n // Ensure wrappers are instances of `baseLodash`.\n lodash.prototype = baseLodash.prototype;\n lodash.prototype.constructor = lodash;\n\n LodashWrapper.prototype = baseCreate(baseLodash.prototype);\n LodashWrapper.prototype.constructor = LodashWrapper;\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates a lazy wrapper object which wraps `value` to enable lazy evaluation.\n *\n * @private\n * @constructor\n * @param {*} value The value to wrap.\n */\n function LazyWrapper(value) {\n this.__wrapped__ = value;\n this.__actions__ = [];\n this.__dir__ = 1;\n this.__filtered__ = false;\n this.__iteratees__ = [];\n this.__takeCount__ = MAX_ARRAY_LENGTH;\n this.__views__ = [];\n }\n\n /**\n * Creates a clone of the lazy wrapper object.\n *\n * @private\n * @name clone\n * @memberOf LazyWrapper\n * @returns {Object} Returns the cloned `LazyWrapper` object.\n */\n function lazyClone() {\n var result = new LazyWrapper(this.__wrapped__);\n result.__actions__ = copyArray(this.__actions__);\n result.__dir__ = this.__dir__;\n result.__filtered__ = this.__filtered__;\n result.__iteratees__ = copyArray(this.__iteratees__);\n result.__takeCount__ = this.__takeCount__;\n result.__views__ = copyArray(this.__views__);\n return result;\n }\n\n /**\n * Reverses the direction of lazy iteration.\n *\n * @private\n * @name reverse\n * @memberOf LazyWrapper\n * @returns {Object} Returns the new reversed `LazyWrapper` object.\n */\n function lazyReverse() {\n if (this.__filtered__) {\n var result = new LazyWrapper(this);\n result.__dir__ = -1;\n result.__filtered__ = true;\n } else {\n result = this.clone();\n result.__dir__ *= -1;\n }\n return result;\n }\n\n /**\n * Extracts the unwrapped value from its lazy wrapper.\n *\n * @private\n * @name value\n * @memberOf LazyWrapper\n * @returns {*} Returns the unwrapped value.\n */\n function lazyValue() {\n var array = this.__wrapped__.value(),\n dir = this.__dir__,\n isArr = isArray(array),\n isRight = dir < 0,\n arrLength = isArr ? array.length : 0,\n view = getView(0, arrLength, this.__views__),\n start = view.start,\n end = view.end,\n length = end - start,\n index = isRight ? end : (start - 1),\n iteratees = this.__iteratees__,\n iterLength = iteratees.length,\n resIndex = 0,\n takeCount = nativeMin(length, this.__takeCount__);\n\n if (!isArr || (!isRight && arrLength == length && takeCount == length)) {\n return baseWrapperValue(array, this.__actions__);\n }\n var result = [];\n\n outer:\n while (length-- && resIndex < takeCount) {\n index += dir;\n\n var iterIndex = -1,\n value = array[index];\n\n while (++iterIndex < iterLength) {\n var data = iteratees[iterIndex],\n iteratee = data.iteratee,\n type = data.type,\n computed = iteratee(value);\n\n if (type == LAZY_MAP_FLAG) {\n value = computed;\n } else if (!computed) {\n if (type == LAZY_FILTER_FLAG) {\n continue outer;\n } else {\n break outer;\n }\n }\n }\n result[resIndex++] = value;\n }\n return result;\n }\n\n // Ensure `LazyWrapper` is an instance of `baseLodash`.\n LazyWrapper.prototype = baseCreate(baseLodash.prototype);\n LazyWrapper.prototype.constructor = LazyWrapper;\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\n function Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n }\n\n /**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\n function hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n }\n\n /**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\n function hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n }\n\n /**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\n function hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n }\n\n /**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\n function hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n }\n\n /**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\n function hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n }\n\n // Add methods to `Hash`.\n Hash.prototype.clear = hashClear;\n Hash.prototype['delete'] = hashDelete;\n Hash.prototype.get = hashGet;\n Hash.prototype.has = hashHas;\n Hash.prototype.set = hashSet;\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\n function ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n }\n\n /**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\n function listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n }\n\n /**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\n function listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n }\n\n /**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\n function listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n }\n\n /**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\n function listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n }\n\n /**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\n function listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n }\n\n // Add methods to `ListCache`.\n ListCache.prototype.clear = listCacheClear;\n ListCache.prototype['delete'] = listCacheDelete;\n ListCache.prototype.get = listCacheGet;\n ListCache.prototype.has = listCacheHas;\n ListCache.prototype.set = listCacheSet;\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\n function MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n }\n\n /**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\n function mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n }\n\n /**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\n function mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n }\n\n /**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\n function mapCacheGet(key) {\n return getMapData(this, key).get(key);\n }\n\n /**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\n function mapCacheHas(key) {\n return getMapData(this, key).has(key);\n }\n\n /**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\n function mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n }\n\n // Add methods to `MapCache`.\n MapCache.prototype.clear = mapCacheClear;\n MapCache.prototype['delete'] = mapCacheDelete;\n MapCache.prototype.get = mapCacheGet;\n MapCache.prototype.has = mapCacheHas;\n MapCache.prototype.set = mapCacheSet;\n\n /*------------------------------------------------------------------------*/\n\n /**\n *\n * Creates an array cache object to store unique values.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n */\n function SetCache(values) {\n var index = -1,\n length = values == null ? 0 : values.length;\n\n this.__data__ = new MapCache;\n while (++index < length) {\n this.add(values[index]);\n }\n }\n\n /**\n * Adds `value` to the array cache.\n *\n * @private\n * @name add\n * @memberOf SetCache\n * @alias push\n * @param {*} value The value to cache.\n * @returns {Object} Returns the cache instance.\n */\n function setCacheAdd(value) {\n this.__data__.set(value, HASH_UNDEFINED);\n return this;\n }\n\n /**\n * Checks if `value` is in the array cache.\n *\n * @private\n * @name has\n * @memberOf SetCache\n * @param {*} value The value to search for.\n * @returns {number} Returns `true` if `value` is found, else `false`.\n */\n function setCacheHas(value) {\n return this.__data__.has(value);\n }\n\n // Add methods to `SetCache`.\n SetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\n SetCache.prototype.has = setCacheHas;\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\n function Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n }\n\n /**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\n function stackClear() {\n this.__data__ = new ListCache;\n this.size = 0;\n }\n\n /**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\n function stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n\n this.size = data.size;\n return result;\n }\n\n /**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\n function stackGet(key) {\n return this.__data__.get(key);\n }\n\n /**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\n function stackHas(key) {\n return this.__data__.has(key);\n }\n\n /**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\n function stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n }\n\n // Add methods to `Stack`.\n Stack.prototype.clear = stackClear;\n Stack.prototype['delete'] = stackDelete;\n Stack.prototype.get = stackGet;\n Stack.prototype.has = stackHas;\n Stack.prototype.set = stackSet;\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\n function arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n }\n\n /**\n * A specialized version of `_.sample` for arrays.\n *\n * @private\n * @param {Array} array The array to sample.\n * @returns {*} Returns the random element.\n */\n function arraySample(array) {\n var length = array.length;\n return length ? array[baseRandom(0, length - 1)] : undefined;\n }\n\n /**\n * A specialized version of `_.sampleSize` for arrays.\n *\n * @private\n * @param {Array} array The array to sample.\n * @param {number} n The number of elements to sample.\n * @returns {Array} Returns the random elements.\n */\n function arraySampleSize(array, n) {\n return shuffleSelf(copyArray(array), baseClamp(n, 0, array.length));\n }\n\n /**\n * A specialized version of `_.shuffle` for arrays.\n *\n * @private\n * @param {Array} array The array to shuffle.\n * @returns {Array} Returns the new shuffled array.\n */\n function arrayShuffle(array) {\n return shuffleSelf(copyArray(array));\n }\n\n /**\n * This function is like `assignValue` except that it doesn't assign\n * `undefined` values.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\n function assignMergeValue(object, key, value) {\n if ((value !== undefined && !eq(object[key], value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n }\n\n /**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\n function assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n }\n\n /**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\n function assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n }\n\n /**\n * Aggregates elements of `collection` on `accumulator` with keys transformed\n * by `iteratee` and values set by `setter`.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} setter The function to set `accumulator` values.\n * @param {Function} iteratee The iteratee to transform keys.\n * @param {Object} accumulator The initial aggregated object.\n * @returns {Function} Returns `accumulator`.\n */\n function baseAggregator(collection, setter, iteratee, accumulator) {\n baseEach(collection, function(value, key, collection) {\n setter(accumulator, value, iteratee(value), collection);\n });\n return accumulator;\n }\n\n /**\n * The base implementation of `_.assign` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\n function baseAssign(object, source) {\n return object && copyObject(source, keys(source), object);\n }\n\n /**\n * The base implementation of `_.assignIn` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\n function baseAssignIn(object, source) {\n return object && copyObject(source, keysIn(source), object);\n }\n\n /**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\n function baseAssignValue(object, key, value) {\n if (key == '__proto__' && defineProperty) {\n defineProperty(object, key, {\n 'configurable': true,\n 'enumerable': true,\n 'value': value,\n 'writable': true\n });\n } else {\n object[key] = value;\n }\n }\n\n /**\n * The base implementation of `_.at` without support for individual paths.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {string[]} paths The property paths to pick.\n * @returns {Array} Returns the picked elements.\n */\n function baseAt(object, paths) {\n var index = -1,\n length = paths.length,\n result = Array(length),\n skip = object == null;\n\n while (++index < length) {\n result[index] = skip ? undefined : get(object, paths[index]);\n }\n return result;\n }\n\n /**\n * The base implementation of `_.clamp` which doesn't coerce arguments.\n *\n * @private\n * @param {number} number The number to clamp.\n * @param {number} [lower] The lower bound.\n * @param {number} upper The upper bound.\n * @returns {number} Returns the clamped number.\n */\n function baseClamp(number, lower, upper) {\n if (number === number) {\n if (upper !== undefined) {\n number = number <= upper ? number : upper;\n }\n if (lower !== undefined) {\n number = number >= lower ? number : lower;\n }\n }\n return number;\n }\n\n /**\n * The base implementation of `_.clone` and `_.cloneDeep` which tracks\n * traversed objects.\n *\n * @private\n * @param {*} value The value to clone.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Deep clone\n * 2 - Flatten inherited properties\n * 4 - Clone symbols\n * @param {Function} [customizer] The function to customize cloning.\n * @param {string} [key] The key of `value`.\n * @param {Object} [object] The parent object of `value`.\n * @param {Object} [stack] Tracks traversed objects and their clone counterparts.\n * @returns {*} Returns the cloned value.\n */\n function baseClone(value, bitmask, customizer, key, object, stack) {\n var result,\n isDeep = bitmask & CLONE_DEEP_FLAG,\n isFlat = bitmask & CLONE_FLAT_FLAG,\n isFull = bitmask & CLONE_SYMBOLS_FLAG;\n\n if (customizer) {\n result = object ? customizer(value, key, object, stack) : customizer(value);\n }\n if (result !== undefined) {\n return result;\n }\n if (!isObject(value)) {\n return value;\n }\n var isArr = isArray(value);\n if (isArr) {\n result = initCloneArray(value);\n if (!isDeep) {\n return copyArray(value, result);\n }\n } else {\n var tag = getTag(value),\n isFunc = tag == funcTag || tag == genTag;\n\n if (isBuffer(value)) {\n return cloneBuffer(value, isDeep);\n }\n if (tag == objectTag || tag == argsTag || (isFunc && !object)) {\n result = (isFlat || isFunc) ? {} : initCloneObject(value);\n if (!isDeep) {\n return isFlat\n ? copySymbolsIn(value, baseAssignIn(result, value))\n : copySymbols(value, baseAssign(result, value));\n }\n } else {\n if (!cloneableTags[tag]) {\n return object ? value : {};\n }\n result = initCloneByTag(value, tag, isDeep);\n }\n }\n // Check for circular references and return its corresponding clone.\n stack || (stack = new Stack);\n var stacked = stack.get(value);\n if (stacked) {\n return stacked;\n }\n stack.set(value, result);\n\n if (isSet(value)) {\n value.forEach(function(subValue) {\n result.add(baseClone(subValue, bitmask, customizer, subValue, value, stack));\n });\n } else if (isMap(value)) {\n value.forEach(function(subValue, key) {\n result.set(key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n }\n\n var keysFunc = isFull\n ? (isFlat ? getAllKeysIn : getAllKeys)\n : (isFlat ? keysIn : keys);\n\n var props = isArr ? undefined : keysFunc(value);\n arrayEach(props || value, function(subValue, key) {\n if (props) {\n key = subValue;\n subValue = value[key];\n }\n // Recursively populate clone (susceptible to call stack limits).\n assignValue(result, key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n return result;\n }\n\n /**\n * The base implementation of `_.conforms` which doesn't clone `source`.\n *\n * @private\n * @param {Object} source The object of property predicates to conform to.\n * @returns {Function} Returns the new spec function.\n */\n function baseConforms(source) {\n var props = keys(source);\n return function(object) {\n return baseConformsTo(object, source, props);\n };\n }\n\n /**\n * The base implementation of `_.conformsTo` which accepts `props` to check.\n *\n * @private\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property predicates to conform to.\n * @returns {boolean} Returns `true` if `object` conforms, else `false`.\n */\n function baseConformsTo(object, source, props) {\n var length = props.length;\n if (object == null) {\n return !length;\n }\n object = Object(object);\n while (length--) {\n var key = props[length],\n predicate = source[key],\n value = object[key];\n\n if ((value === undefined && !(key in object)) || !predicate(value)) {\n return false;\n }\n }\n return true;\n }\n\n /**\n * The base implementation of `_.delay` and `_.defer` which accepts `args`\n * to provide to `func`.\n *\n * @private\n * @param {Function} func The function to delay.\n * @param {number} wait The number of milliseconds to delay invocation.\n * @param {Array} args The arguments to provide to `func`.\n * @returns {number|Object} Returns the timer id or timeout object.\n */\n function baseDelay(func, wait, args) {\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n return setTimeout(function() { func.apply(undefined, args); }, wait);\n }\n\n /**\n * The base implementation of methods like `_.difference` without support\n * for excluding multiple arrays or iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Array} values The values to exclude.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of filtered values.\n */\n function baseDifference(array, values, iteratee, comparator) {\n var index = -1,\n includes = arrayIncludes,\n isCommon = true,\n length = array.length,\n result = [],\n valuesLength = values.length;\n\n if (!length) {\n return result;\n }\n if (iteratee) {\n values = arrayMap(values, baseUnary(iteratee));\n }\n if (comparator) {\n includes = arrayIncludesWith;\n isCommon = false;\n }\n else if (values.length >= LARGE_ARRAY_SIZE) {\n includes = cacheHas;\n isCommon = false;\n values = new SetCache(values);\n }\n outer:\n while (++index < length) {\n var value = array[index],\n computed = iteratee == null ? value : iteratee(value);\n\n value = (comparator || value !== 0) ? value : 0;\n if (isCommon && computed === computed) {\n var valuesIndex = valuesLength;\n while (valuesIndex--) {\n if (values[valuesIndex] === computed) {\n continue outer;\n }\n }\n result.push(value);\n }\n else if (!includes(values, computed, comparator)) {\n result.push(value);\n }\n }\n return result;\n }\n\n /**\n * The base implementation of `_.forEach` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n */\n var baseEach = createBaseEach(baseForOwn);\n\n /**\n * The base implementation of `_.forEachRight` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n */\n var baseEachRight = createBaseEach(baseForOwnRight, true);\n\n /**\n * The base implementation of `_.every` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if all elements pass the predicate check,\n * else `false`\n */\n function baseEvery(collection, predicate) {\n var result = true;\n baseEach(collection, function(value, index, collection) {\n result = !!predicate(value, index, collection);\n return result;\n });\n return result;\n }\n\n /**\n * The base implementation of methods like `_.max` and `_.min` which accepts a\n * `comparator` to determine the extremum value.\n *\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} iteratee The iteratee invoked per iteration.\n * @param {Function} comparator The comparator used to compare values.\n * @returns {*} Returns the extremum value.\n */\n function baseExtremum(array, iteratee, comparator) {\n var index = -1,\n length = array.length;\n\n while (++index < length) {\n var value = array[index],\n current = iteratee(value);\n\n if (current != null && (computed === undefined\n ? (current === current && !isSymbol(current))\n : comparator(current, computed)\n )) {\n var computed = current,\n result = value;\n }\n }\n return result;\n }\n\n /**\n * The base implementation of `_.fill` without an iteratee call guard.\n *\n * @private\n * @param {Array} array The array to fill.\n * @param {*} value The value to fill `array` with.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns `array`.\n */\n function baseFill(array, value, start, end) {\n var length = array.length;\n\n start = toInteger(start);\n if (start < 0) {\n start = -start > length ? 0 : (length + start);\n }\n end = (end === undefined || end > length) ? length : toInteger(end);\n if (end < 0) {\n end += length;\n }\n end = start > end ? 0 : toLength(end);\n while (start < end) {\n array[start++] = value;\n }\n return array;\n }\n\n /**\n * The base implementation of `_.filter` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\n function baseFilter(collection, predicate) {\n var result = [];\n baseEach(collection, function(value, index, collection) {\n if (predicate(value, index, collection)) {\n result.push(value);\n }\n });\n return result;\n }\n\n /**\n * The base implementation of `_.flatten` with support for restricting flattening.\n *\n * @private\n * @param {Array} array The array to flatten.\n * @param {number} depth The maximum recursion depth.\n * @param {boolean} [predicate=isFlattenable] The function invoked per iteration.\n * @param {boolean} [isStrict] Restrict to values that pass `predicate` checks.\n * @param {Array} [result=[]] The initial result value.\n * @returns {Array} Returns the new flattened array.\n */\n function baseFlatten(array, depth, predicate, isStrict, result) {\n var index = -1,\n length = array.length;\n\n predicate || (predicate = isFlattenable);\n result || (result = []);\n\n while (++index < length) {\n var value = array[index];\n if (depth > 0 && predicate(value)) {\n if (depth > 1) {\n // Recursively flatten arrays (susceptible to call stack limits).\n baseFlatten(value, depth - 1, predicate, isStrict, result);\n } else {\n arrayPush(result, value);\n }\n } else if (!isStrict) {\n result[result.length] = value;\n }\n }\n return result;\n }\n\n /**\n * The base implementation of `baseForOwn` which iterates over `object`\n * properties returned by `keysFunc` and invokes `iteratee` for each property.\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\n var baseFor = createBaseFor();\n\n /**\n * This function is like `baseFor` except that it iterates over properties\n * in the opposite order.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\n var baseForRight = createBaseFor(true);\n\n /**\n * The base implementation of `_.forOwn` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Object} Returns `object`.\n */\n function baseForOwn(object, iteratee) {\n return object && baseFor(object, iteratee, keys);\n }\n\n /**\n * The base implementation of `_.forOwnRight` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Object} Returns `object`.\n */\n function baseForOwnRight(object, iteratee) {\n return object && baseForRight(object, iteratee, keys);\n }\n\n /**\n * The base implementation of `_.functions` which creates an array of\n * `object` function property names filtered from `props`.\n *\n * @private\n * @param {Object} object The object to inspect.\n * @param {Array} props The property names to filter.\n * @returns {Array} Returns the function names.\n */\n function baseFunctions(object, props) {\n return arrayFilter(props, function(key) {\n return isFunction(object[key]);\n });\n }\n\n /**\n * The base implementation of `_.get` without support for default values.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @returns {*} Returns the resolved value.\n */\n function baseGet(object, path) {\n path = castPath(path, object);\n\n var index = 0,\n length = path.length;\n\n while (object != null && index < length) {\n object = object[toKey(path[index++])];\n }\n return (index && index == length) ? object : undefined;\n }\n\n /**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\n function baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n }\n\n /**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\n function baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n }\n\n /**\n * The base implementation of `_.gt` which doesn't coerce arguments.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is greater than `other`,\n * else `false`.\n */\n function baseGt(value, other) {\n return value > other;\n }\n\n /**\n * The base implementation of `_.has` without support for deep paths.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {Array|string} key The key to check.\n * @returns {boolean} Returns `true` if `key` exists, else `false`.\n */\n function baseHas(object, key) {\n return object != null && hasOwnProperty.call(object, key);\n }\n\n /**\n * The base implementation of `_.hasIn` without support for deep paths.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {Array|string} key The key to check.\n * @returns {boolean} Returns `true` if `key` exists, else `false`.\n */\n function baseHasIn(object, key) {\n return object != null && key in Object(object);\n }\n\n /**\n * The base implementation of `_.inRange` which doesn't coerce arguments.\n *\n * @private\n * @param {number} number The number to check.\n * @param {number} start The start of the range.\n * @param {number} end The end of the range.\n * @returns {boolean} Returns `true` if `number` is in the range, else `false`.\n */\n function baseInRange(number, start, end) {\n return number >= nativeMin(start, end) && number < nativeMax(start, end);\n }\n\n /**\n * The base implementation of methods like `_.intersection`, without support\n * for iteratee shorthands, that accepts an array of arrays to inspect.\n *\n * @private\n * @param {Array} arrays The arrays to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of shared values.\n */\n function baseIntersection(arrays, iteratee, comparator) {\n var includes = comparator ? arrayIncludesWith : arrayIncludes,\n length = arrays[0].length,\n othLength = arrays.length,\n othIndex = othLength,\n caches = Array(othLength),\n maxLength = Infinity,\n result = [];\n\n while (othIndex--) {\n var array = arrays[othIndex];\n if (othIndex && iteratee) {\n array = arrayMap(array, baseUnary(iteratee));\n }\n maxLength = nativeMin(array.length, maxLength);\n caches[othIndex] = !comparator && (iteratee || (length >= 120 && array.length >= 120))\n ? new SetCache(othIndex && array)\n : undefined;\n }\n array = arrays[0];\n\n var index = -1,\n seen = caches[0];\n\n outer:\n while (++index < length && result.length < maxLength) {\n var value = array[index],\n computed = iteratee ? iteratee(value) : value;\n\n value = (comparator || value !== 0) ? value : 0;\n if (!(seen\n ? cacheHas(seen, computed)\n : includes(result, computed, comparator)\n )) {\n othIndex = othLength;\n while (--othIndex) {\n var cache = caches[othIndex];\n if (!(cache\n ? cacheHas(cache, computed)\n : includes(arrays[othIndex], computed, comparator))\n ) {\n continue outer;\n }\n }\n if (seen) {\n seen.push(computed);\n }\n result.push(value);\n }\n }\n return result;\n }\n\n /**\n * The base implementation of `_.invert` and `_.invertBy` which inverts\n * `object` with values transformed by `iteratee` and set by `setter`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} setter The function to set `accumulator` values.\n * @param {Function} iteratee The iteratee to transform values.\n * @param {Object} accumulator The initial inverted object.\n * @returns {Function} Returns `accumulator`.\n */\n function baseInverter(object, setter, iteratee, accumulator) {\n baseForOwn(object, function(value, key, object) {\n setter(accumulator, iteratee(value), key, object);\n });\n return accumulator;\n }\n\n /**\n * The base implementation of `_.invoke` without support for individual\n * method arguments.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the method to invoke.\n * @param {Array} args The arguments to invoke the method with.\n * @returns {*} Returns the result of the invoked method.\n */\n function baseInvoke(object, path, args) {\n path = castPath(path, object);\n object = parent(object, path);\n var func = object == null ? object : object[toKey(last(path))];\n return func == null ? undefined : apply(func, object, args);\n }\n\n /**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\n function baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n }\n\n /**\n * The base implementation of `_.isArrayBuffer` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array buffer, else `false`.\n */\n function baseIsArrayBuffer(value) {\n return isObjectLike(value) && baseGetTag(value) == arrayBufferTag;\n }\n\n /**\n * The base implementation of `_.isDate` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a date object, else `false`.\n */\n function baseIsDate(value) {\n return isObjectLike(value) && baseGetTag(value) == dateTag;\n }\n\n /**\n * The base implementation of `_.isEqual` which supports partial comparisons\n * and tracks traversed objects.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Unordered comparison\n * 2 - Partial comparison\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {Object} [stack] Tracks traversed `value` and `other` objects.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n */\n function baseIsEqual(value, other, bitmask, customizer, stack) {\n if (value === other) {\n return true;\n }\n if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) {\n return value !== value && other !== other;\n }\n return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);\n }\n\n /**\n * A specialized version of `baseIsEqual` for arrays and objects which performs\n * deep comparisons and tracks traversed objects enabling objects with circular\n * references to be compared.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} [stack] Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\n function baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {\n var objIsArr = isArray(object),\n othIsArr = isArray(other),\n objTag = objIsArr ? arrayTag : getTag(object),\n othTag = othIsArr ? arrayTag : getTag(other);\n\n objTag = objTag == argsTag ? objectTag : objTag;\n othTag = othTag == argsTag ? objectTag : othTag;\n\n var objIsObj = objTag == objectTag,\n othIsObj = othTag == objectTag,\n isSameTag = objTag == othTag;\n\n if (isSameTag && isBuffer(object)) {\n if (!isBuffer(other)) {\n return false;\n }\n objIsArr = true;\n objIsObj = false;\n }\n if (isSameTag && !objIsObj) {\n stack || (stack = new Stack);\n return (objIsArr || isTypedArray(object))\n ? equalArrays(object, other, bitmask, customizer, equalFunc, stack)\n : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);\n }\n if (!(bitmask & COMPARE_PARTIAL_FLAG)) {\n var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),\n othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');\n\n if (objIsWrapped || othIsWrapped) {\n var objUnwrapped = objIsWrapped ? object.value() : object,\n othUnwrapped = othIsWrapped ? other.value() : other;\n\n stack || (stack = new Stack);\n return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);\n }\n }\n if (!isSameTag) {\n return false;\n }\n stack || (stack = new Stack);\n return equalObjects(object, other, bitmask, customizer, equalFunc, stack);\n }\n\n /**\n * The base implementation of `_.isMap` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n */\n function baseIsMap(value) {\n return isObjectLike(value) && getTag(value) == mapTag;\n }\n\n /**\n * The base implementation of `_.isMatch` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property values to match.\n * @param {Array} matchData The property names, values, and compare flags to match.\n * @param {Function} [customizer] The function to customize comparisons.\n * @returns {boolean} Returns `true` if `object` is a match, else `false`.\n */\n function baseIsMatch(object, source, matchData, customizer) {\n var index = matchData.length,\n length = index,\n noCustomizer = !customizer;\n\n if (object == null) {\n return !length;\n }\n object = Object(object);\n while (index--) {\n var data = matchData[index];\n if ((noCustomizer && data[2])\n ? data[1] !== object[data[0]]\n : !(data[0] in object)\n ) {\n return false;\n }\n }\n while (++index < length) {\n data = matchData[index];\n var key = data[0],\n objValue = object[key],\n srcValue = data[1];\n\n if (noCustomizer && data[2]) {\n if (objValue === undefined && !(key in object)) {\n return false;\n }\n } else {\n var stack = new Stack;\n if (customizer) {\n var result = customizer(objValue, srcValue, key, object, source, stack);\n }\n if (!(result === undefined\n ? baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG, customizer, stack)\n : result\n )) {\n return false;\n }\n }\n }\n return true;\n }\n\n /**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\n function baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n }\n\n /**\n * The base implementation of `_.isRegExp` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a regexp, else `false`.\n */\n function baseIsRegExp(value) {\n return isObjectLike(value) && baseGetTag(value) == regexpTag;\n }\n\n /**\n * The base implementation of `_.isSet` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n */\n function baseIsSet(value) {\n return isObjectLike(value) && getTag(value) == setTag;\n }\n\n /**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\n function baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n }\n\n /**\n * The base implementation of `_.iteratee`.\n *\n * @private\n * @param {*} [value=_.identity] The value to convert to an iteratee.\n * @returns {Function} Returns the iteratee.\n */\n function baseIteratee(value) {\n // Don't store the `typeof` result in a variable to avoid a JIT bug in Safari 9.\n // See https://bugs.webkit.org/show_bug.cgi?id=156034 for more details.\n if (typeof value == 'function') {\n return value;\n }\n if (value == null) {\n return identity;\n }\n if (typeof value == 'object') {\n return isArray(value)\n ? baseMatchesProperty(value[0], value[1])\n : baseMatches(value);\n }\n return property(value);\n }\n\n /**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\n function baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n }\n\n /**\n * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\n function baseKeysIn(object) {\n if (!isObject(object)) {\n return nativeKeysIn(object);\n }\n var isProto = isPrototype(object),\n result = [];\n\n for (var key in object) {\n if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {\n result.push(key);\n }\n }\n return result;\n }\n\n /**\n * The base implementation of `_.lt` which doesn't coerce arguments.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is less than `other`,\n * else `false`.\n */\n function baseLt(value, other) {\n return value < other;\n }\n\n /**\n * The base implementation of `_.map` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\n function baseMap(collection, iteratee) {\n var index = -1,\n result = isArrayLike(collection) ? Array(collection.length) : [];\n\n baseEach(collection, function(value, key, collection) {\n result[++index] = iteratee(value, key, collection);\n });\n return result;\n }\n\n /**\n * The base implementation of `_.matches` which doesn't clone `source`.\n *\n * @private\n * @param {Object} source The object of property values to match.\n * @returns {Function} Returns the new spec function.\n */\n function baseMatches(source) {\n var matchData = getMatchData(source);\n if (matchData.length == 1 && matchData[0][2]) {\n return matchesStrictComparable(matchData[0][0], matchData[0][1]);\n }\n return function(object) {\n return object === source || baseIsMatch(object, source, matchData);\n };\n }\n\n /**\n * The base implementation of `_.matchesProperty` which doesn't clone `srcValue`.\n *\n * @private\n * @param {string} path The path of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\n function baseMatchesProperty(path, srcValue) {\n if (isKey(path) && isStrictComparable(srcValue)) {\n return matchesStrictComparable(toKey(path), srcValue);\n }\n return function(object) {\n var objValue = get(object, path);\n return (objValue === undefined && objValue === srcValue)\n ? hasIn(object, path)\n : baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG);\n };\n }\n\n /**\n * The base implementation of `_.merge` without support for multiple sources.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} [customizer] The function to customize merged values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\n function baseMerge(object, source, srcIndex, customizer, stack) {\n if (object === source) {\n return;\n }\n baseFor(source, function(srcValue, key) {\n stack || (stack = new Stack);\n if (isObject(srcValue)) {\n baseMergeDeep(object, source, key, srcIndex, baseMerge, customizer, stack);\n }\n else {\n var newValue = customizer\n ? customizer(safeGet(object, key), srcValue, (key + ''), object, source, stack)\n : undefined;\n\n if (newValue === undefined) {\n newValue = srcValue;\n }\n assignMergeValue(object, key, newValue);\n }\n }, keysIn);\n }\n\n /**\n * A specialized version of `baseMerge` for arrays and objects which performs\n * deep merges and tracks traversed objects enabling objects with circular\n * references to be merged.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {string} key The key of the value to merge.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} mergeFunc The function to merge values.\n * @param {Function} [customizer] The function to customize assigned values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\n function baseMergeDeep(object, source, key, srcIndex, mergeFunc, customizer, stack) {\n var objValue = safeGet(object, key),\n srcValue = safeGet(source, key),\n stacked = stack.get(srcValue);\n\n if (stacked) {\n assignMergeValue(object, key, stacked);\n return;\n }\n var newValue = customizer\n ? customizer(objValue, srcValue, (key + ''), object, source, stack)\n : undefined;\n\n var isCommon = newValue === undefined;\n\n if (isCommon) {\n var isArr = isArray(srcValue),\n isBuff = !isArr && isBuffer(srcValue),\n isTyped = !isArr && !isBuff && isTypedArray(srcValue);\n\n newValue = srcValue;\n if (isArr || isBuff || isTyped) {\n if (isArray(objValue)) {\n newValue = objValue;\n }\n else if (isArrayLikeObject(objValue)) {\n newValue = copyArray(objValue);\n }\n else if (isBuff) {\n isCommon = false;\n newValue = cloneBuffer(srcValue, true);\n }\n else if (isTyped) {\n isCommon = false;\n newValue = cloneTypedArray(srcValue, true);\n }\n else {\n newValue = [];\n }\n }\n else if (isPlainObject(srcValue) || isArguments(srcValue)) {\n newValue = objValue;\n if (isArguments(objValue)) {\n newValue = toPlainObject(objValue);\n }\n else if (!isObject(objValue) || isFunction(objValue)) {\n newValue = initCloneObject(srcValue);\n }\n }\n else {\n isCommon = false;\n }\n }\n if (isCommon) {\n // Recursively merge objects and arrays (susceptible to call stack limits).\n stack.set(srcValue, newValue);\n mergeFunc(newValue, srcValue, srcIndex, customizer, stack);\n stack['delete'](srcValue);\n }\n assignMergeValue(object, key, newValue);\n }\n\n /**\n * The base implementation of `_.nth` which doesn't coerce arguments.\n *\n * @private\n * @param {Array} array The array to query.\n * @param {number} n The index of the element to return.\n * @returns {*} Returns the nth element of `array`.\n */\n function baseNth(array, n) {\n var length = array.length;\n if (!length) {\n return;\n }\n n += n < 0 ? length : 0;\n return isIndex(n, length) ? array[n] : undefined;\n }\n\n /**\n * The base implementation of `_.orderBy` without param guards.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function[]|Object[]|string[]} iteratees The iteratees to sort by.\n * @param {string[]} orders The sort orders of `iteratees`.\n * @returns {Array} Returns the new sorted array.\n */\n function baseOrderBy(collection, iteratees, orders) {\n if (iteratees.length) {\n iteratees = arrayMap(iteratees, function(iteratee) {\n if (isArray(iteratee)) {\n return function(value) {\n return baseGet(value, iteratee.length === 1 ? iteratee[0] : iteratee);\n }\n }\n return iteratee;\n });\n } else {\n iteratees = [identity];\n }\n\n var index = -1;\n iteratees = arrayMap(iteratees, baseUnary(getIteratee()));\n\n var result = baseMap(collection, function(value, key, collection) {\n var criteria = arrayMap(iteratees, function(iteratee) {\n return iteratee(value);\n });\n return { 'criteria': criteria, 'index': ++index, 'value': value };\n });\n\n return baseSortBy(result, function(object, other) {\n return compareMultiple(object, other, orders);\n });\n }\n\n /**\n * The base implementation of `_.pick` without support for individual\n * property identifiers.\n *\n * @private\n * @param {Object} object The source object.\n * @param {string[]} paths The property paths to pick.\n * @returns {Object} Returns the new object.\n */\n function basePick(object, paths) {\n return basePickBy(object, paths, function(value, path) {\n return hasIn(object, path);\n });\n }\n\n /**\n * The base implementation of `_.pickBy` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The source object.\n * @param {string[]} paths The property paths to pick.\n * @param {Function} predicate The function invoked per property.\n * @returns {Object} Returns the new object.\n */\n function basePickBy(object, paths, predicate) {\n var index = -1,\n length = paths.length,\n result = {};\n\n while (++index < length) {\n var path = paths[index],\n value = baseGet(object, path);\n\n if (predicate(value, path)) {\n baseSet(result, castPath(path, object), value);\n }\n }\n return result;\n }\n\n /**\n * A specialized version of `baseProperty` which supports deep paths.\n *\n * @private\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\n function basePropertyDeep(path) {\n return function(object) {\n return baseGet(object, path);\n };\n }\n\n /**\n * The base implementation of `_.pullAllBy` without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to remove.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns `array`.\n */\n function basePullAll(array, values, iteratee, comparator) {\n var indexOf = comparator ? baseIndexOfWith : baseIndexOf,\n index = -1,\n length = values.length,\n seen = array;\n\n if (array === values) {\n values = copyArray(values);\n }\n if (iteratee) {\n seen = arrayMap(array, baseUnary(iteratee));\n }\n while (++index < length) {\n var fromIndex = 0,\n value = values[index],\n computed = iteratee ? iteratee(value) : value;\n\n while ((fromIndex = indexOf(seen, computed, fromIndex, comparator)) > -1) {\n if (seen !== array) {\n splice.call(seen, fromIndex, 1);\n }\n splice.call(array, fromIndex, 1);\n }\n }\n return array;\n }\n\n /**\n * The base implementation of `_.pullAt` without support for individual\n * indexes or capturing the removed elements.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {number[]} indexes The indexes of elements to remove.\n * @returns {Array} Returns `array`.\n */\n function basePullAt(array, indexes) {\n var length = array ? indexes.length : 0,\n lastIndex = length - 1;\n\n while (length--) {\n var index = indexes[length];\n if (length == lastIndex || index !== previous) {\n var previous = index;\n if (isIndex(index)) {\n splice.call(array, index, 1);\n } else {\n baseUnset(array, index);\n }\n }\n }\n return array;\n }\n\n /**\n * The base implementation of `_.random` without support for returning\n * floating-point numbers.\n *\n * @private\n * @param {number} lower The lower bound.\n * @param {number} upper The upper bound.\n * @returns {number} Returns the random number.\n */\n function baseRandom(lower, upper) {\n return lower + nativeFloor(nativeRandom() * (upper - lower + 1));\n }\n\n /**\n * The base implementation of `_.range` and `_.rangeRight` which doesn't\n * coerce arguments.\n *\n * @private\n * @param {number} start The start of the range.\n * @param {number} end The end of the range.\n * @param {number} step The value to increment or decrement by.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Array} Returns the range of numbers.\n */\n function baseRange(start, end, step, fromRight) {\n var index = -1,\n length = nativeMax(nativeCeil((end - start) / (step || 1)), 0),\n result = Array(length);\n\n while (length--) {\n result[fromRight ? length : ++index] = start;\n start += step;\n }\n return result;\n }\n\n /**\n * The base implementation of `_.repeat` which doesn't coerce arguments.\n *\n * @private\n * @param {string} string The string to repeat.\n * @param {number} n The number of times to repeat the string.\n * @returns {string} Returns the repeated string.\n */\n function baseRepeat(string, n) {\n var result = '';\n if (!string || n < 1 || n > MAX_SAFE_INTEGER) {\n return result;\n }\n // Leverage the exponentiation by squaring algorithm for a faster repeat.\n // See https://en.wikipedia.org/wiki/Exponentiation_by_squaring for more details.\n do {\n if (n % 2) {\n result += string;\n }\n n = nativeFloor(n / 2);\n if (n) {\n string += string;\n }\n } while (n);\n\n return result;\n }\n\n /**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\n function baseRest(func, start) {\n return setToString(overRest(func, start, identity), func + '');\n }\n\n /**\n * The base implementation of `_.sample`.\n *\n * @private\n * @param {Array|Object} collection The collection to sample.\n * @returns {*} Returns the random element.\n */\n function baseSample(collection) {\n return arraySample(values(collection));\n }\n\n /**\n * The base implementation of `_.sampleSize` without param guards.\n *\n * @private\n * @param {Array|Object} collection The collection to sample.\n * @param {number} n The number of elements to sample.\n * @returns {Array} Returns the random elements.\n */\n function baseSampleSize(collection, n) {\n var array = values(collection);\n return shuffleSelf(array, baseClamp(n, 0, array.length));\n }\n\n /**\n * The base implementation of `_.set`.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {*} value The value to set.\n * @param {Function} [customizer] The function to customize path creation.\n * @returns {Object} Returns `object`.\n */\n function baseSet(object, path, value, customizer) {\n if (!isObject(object)) {\n return object;\n }\n path = castPath(path, object);\n\n var index = -1,\n length = path.length,\n lastIndex = length - 1,\n nested = object;\n\n while (nested != null && ++index < length) {\n var key = toKey(path[index]),\n newValue = value;\n\n if (key === '__proto__' || key === 'constructor' || key === 'prototype') {\n return object;\n }\n\n if (index != lastIndex) {\n var objValue = nested[key];\n newValue = customizer ? customizer(objValue, key, nested) : undefined;\n if (newValue === undefined) {\n newValue = isObject(objValue)\n ? objValue\n : (isIndex(path[index + 1]) ? [] : {});\n }\n }\n assignValue(nested, key, newValue);\n nested = nested[key];\n }\n return object;\n }\n\n /**\n * The base implementation of `setData` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to associate metadata with.\n * @param {*} data The metadata.\n * @returns {Function} Returns `func`.\n */\n var baseSetData = !metaMap ? identity : function(func, data) {\n metaMap.set(func, data);\n return func;\n };\n\n /**\n * The base implementation of `setToString` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\n var baseSetToString = !defineProperty ? identity : function(func, string) {\n return defineProperty(func, 'toString', {\n 'configurable': true,\n 'enumerable': false,\n 'value': constant(string),\n 'writable': true\n });\n };\n\n /**\n * The base implementation of `_.shuffle`.\n *\n * @private\n * @param {Array|Object} collection The collection to shuffle.\n * @returns {Array} Returns the new shuffled array.\n */\n function baseShuffle(collection) {\n return shuffleSelf(values(collection));\n }\n\n /**\n * The base implementation of `_.slice` without an iteratee call guard.\n *\n * @private\n * @param {Array} array The array to slice.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the slice of `array`.\n */\n function baseSlice(array, start, end) {\n var index = -1,\n length = array.length;\n\n if (start < 0) {\n start = -start > length ? 0 : (length + start);\n }\n end = end > length ? length : end;\n if (end < 0) {\n end += length;\n }\n length = start > end ? 0 : ((end - start) >>> 0);\n start >>>= 0;\n\n var result = Array(length);\n while (++index < length) {\n result[index] = array[index + start];\n }\n return result;\n }\n\n /**\n * The base implementation of `_.some` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\n function baseSome(collection, predicate) {\n var result;\n\n baseEach(collection, function(value, index, collection) {\n result = predicate(value, index, collection);\n return !result;\n });\n return !!result;\n }\n\n /**\n * The base implementation of `_.sortedIndex` and `_.sortedLastIndex` which\n * performs a binary search of `array` to determine the index at which `value`\n * should be inserted into `array` in order to maintain its sort order.\n *\n * @private\n * @param {Array} array The sorted array to inspect.\n * @param {*} value The value to evaluate.\n * @param {boolean} [retHighest] Specify returning the highest qualified index.\n * @returns {number} Returns the index at which `value` should be inserted\n * into `array`.\n */\n function baseSortedIndex(array, value, retHighest) {\n var low = 0,\n high = array == null ? low : array.length;\n\n if (typeof value == 'number' && value === value && high <= HALF_MAX_ARRAY_LENGTH) {\n while (low < high) {\n var mid = (low + high) >>> 1,\n computed = array[mid];\n\n if (computed !== null && !isSymbol(computed) &&\n (retHighest ? (computed <= value) : (computed < value))) {\n low = mid + 1;\n } else {\n high = mid;\n }\n }\n return high;\n }\n return baseSortedIndexBy(array, value, identity, retHighest);\n }\n\n /**\n * The base implementation of `_.sortedIndexBy` and `_.sortedLastIndexBy`\n * which invokes `iteratee` for `value` and each element of `array` to compute\n * their sort ranking. The iteratee is invoked with one argument; (value).\n *\n * @private\n * @param {Array} array The sorted array to inspect.\n * @param {*} value The value to evaluate.\n * @param {Function} iteratee The iteratee invoked per element.\n * @param {boolean} [retHighest] Specify returning the highest qualified index.\n * @returns {number} Returns the index at which `value` should be inserted\n * into `array`.\n */\n function baseSortedIndexBy(array, value, iteratee, retHighest) {\n var low = 0,\n high = array == null ? 0 : array.length;\n if (high === 0) {\n return 0;\n }\n\n value = iteratee(value);\n var valIsNaN = value !== value,\n valIsNull = value === null,\n valIsSymbol = isSymbol(value),\n valIsUndefined = value === undefined;\n\n while (low < high) {\n var mid = nativeFloor((low + high) / 2),\n computed = iteratee(array[mid]),\n othIsDefined = computed !== undefined,\n othIsNull = computed === null,\n othIsReflexive = computed === computed,\n othIsSymbol = isSymbol(computed);\n\n if (valIsNaN) {\n var setLow = retHighest || othIsReflexive;\n } else if (valIsUndefined) {\n setLow = othIsReflexive && (retHighest || othIsDefined);\n } else if (valIsNull) {\n setLow = othIsReflexive && othIsDefined && (retHighest || !othIsNull);\n } else if (valIsSymbol) {\n setLow = othIsReflexive && othIsDefined && !othIsNull && (retHighest || !othIsSymbol);\n } else if (othIsNull || othIsSymbol) {\n setLow = false;\n } else {\n setLow = retHighest ? (computed <= value) : (computed < value);\n }\n if (setLow) {\n low = mid + 1;\n } else {\n high = mid;\n }\n }\n return nativeMin(high, MAX_ARRAY_INDEX);\n }\n\n /**\n * The base implementation of `_.sortedUniq` and `_.sortedUniqBy` without\n * support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n */\n function baseSortedUniq(array, iteratee) {\n var index = -1,\n length = array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index],\n computed = iteratee ? iteratee(value) : value;\n\n if (!index || !eq(computed, seen)) {\n var seen = computed;\n result[resIndex++] = value === 0 ? 0 : value;\n }\n }\n return result;\n }\n\n /**\n * The base implementation of `_.toNumber` which doesn't ensure correct\n * conversions of binary, hexadecimal, or octal string values.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n */\n function baseToNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n return +value;\n }\n\n /**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\n function baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isArray(value)) {\n // Recursively convert values (susceptible to call stack limits).\n return arrayMap(value, baseToString) + '';\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n }\n\n /**\n * The base implementation of `_.uniqBy` without support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n */\n function baseUniq(array, iteratee, comparator) {\n var index = -1,\n includes = arrayIncludes,\n length = array.length,\n isCommon = true,\n result = [],\n seen = result;\n\n if (comparator) {\n isCommon = false;\n includes = arrayIncludesWith;\n }\n else if (length >= LARGE_ARRAY_SIZE) {\n var set = iteratee ? null : createSet(array);\n if (set) {\n return setToArray(set);\n }\n isCommon = false;\n includes = cacheHas;\n seen = new SetCache;\n }\n else {\n seen = iteratee ? [] : result;\n }\n outer:\n while (++index < length) {\n var value = array[index],\n computed = iteratee ? iteratee(value) : value;\n\n value = (comparator || value !== 0) ? value : 0;\n if (isCommon && computed === computed) {\n var seenIndex = seen.length;\n while (seenIndex--) {\n if (seen[seenIndex] === computed) {\n continue outer;\n }\n }\n if (iteratee) {\n seen.push(computed);\n }\n result.push(value);\n }\n else if (!includes(seen, computed, comparator)) {\n if (seen !== result) {\n seen.push(computed);\n }\n result.push(value);\n }\n }\n return result;\n }\n\n /**\n * The base implementation of `_.unset`.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {Array|string} path The property path to unset.\n * @returns {boolean} Returns `true` if the property is deleted, else `false`.\n */\n function baseUnset(object, path) {\n path = castPath(path, object);\n object = parent(object, path);\n return object == null || delete object[toKey(last(path))];\n }\n\n /**\n * The base implementation of `_.update`.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to update.\n * @param {Function} updater The function to produce the updated value.\n * @param {Function} [customizer] The function to customize path creation.\n * @returns {Object} Returns `object`.\n */\n function baseUpdate(object, path, updater, customizer) {\n return baseSet(object, path, updater(baseGet(object, path)), customizer);\n }\n\n /**\n * The base implementation of methods like `_.dropWhile` and `_.takeWhile`\n * without support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to query.\n * @param {Function} predicate The function invoked per iteration.\n * @param {boolean} [isDrop] Specify dropping elements instead of taking them.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Array} Returns the slice of `array`.\n */\n function baseWhile(array, predicate, isDrop, fromRight) {\n var length = array.length,\n index = fromRight ? length : -1;\n\n while ((fromRight ? index-- : ++index < length) &&\n predicate(array[index], index, array)) {}\n\n return isDrop\n ? baseSlice(array, (fromRight ? 0 : index), (fromRight ? index + 1 : length))\n : baseSlice(array, (fromRight ? index + 1 : 0), (fromRight ? length : index));\n }\n\n /**\n * The base implementation of `wrapperValue` which returns the result of\n * performing a sequence of actions on the unwrapped `value`, where each\n * successive action is supplied the return value of the previous.\n *\n * @private\n * @param {*} value The unwrapped value.\n * @param {Array} actions Actions to perform to resolve the unwrapped value.\n * @returns {*} Returns the resolved value.\n */\n function baseWrapperValue(value, actions) {\n var result = value;\n if (result instanceof LazyWrapper) {\n result = result.value();\n }\n return arrayReduce(actions, function(result, action) {\n return action.func.apply(action.thisArg, arrayPush([result], action.args));\n }, result);\n }\n\n /**\n * The base implementation of methods like `_.xor`, without support for\n * iteratee shorthands, that accepts an array of arrays to inspect.\n *\n * @private\n * @param {Array} arrays The arrays to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of values.\n */\n function baseXor(arrays, iteratee, comparator) {\n var length = arrays.length;\n if (length < 2) {\n return length ? baseUniq(arrays[0]) : [];\n }\n var index = -1,\n result = Array(length);\n\n while (++index < length) {\n var array = arrays[index],\n othIndex = -1;\n\n while (++othIndex < length) {\n if (othIndex != index) {\n result[index] = baseDifference(result[index] || array, arrays[othIndex], iteratee, comparator);\n }\n }\n }\n return baseUniq(baseFlatten(result, 1), iteratee, comparator);\n }\n\n /**\n * This base implementation of `_.zipObject` which assigns values using `assignFunc`.\n *\n * @private\n * @param {Array} props The property identifiers.\n * @param {Array} values The property values.\n * @param {Function} assignFunc The function to assign values.\n * @returns {Object} Returns the new object.\n */\n function baseZipObject(props, values, assignFunc) {\n var index = -1,\n length = props.length,\n valsLength = values.length,\n result = {};\n\n while (++index < length) {\n var value = index < valsLength ? values[index] : undefined;\n assignFunc(result, props[index], value);\n }\n return result;\n }\n\n /**\n * Casts `value` to an empty array if it's not an array like object.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {Array|Object} Returns the cast array-like object.\n */\n function castArrayLikeObject(value) {\n return isArrayLikeObject(value) ? value : [];\n }\n\n /**\n * Casts `value` to `identity` if it's not a function.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {Function} Returns cast function.\n */\n function castFunction(value) {\n return typeof value == 'function' ? value : identity;\n }\n\n /**\n * Casts `value` to a path array if it's not one.\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {Object} [object] The object to query keys on.\n * @returns {Array} Returns the cast property path array.\n */\n function castPath(value, object) {\n if (isArray(value)) {\n return value;\n }\n return isKey(value, object) ? [value] : stringToPath(toString(value));\n }\n\n /**\n * A `baseRest` alias which can be replaced with `identity` by module\n * replacement plugins.\n *\n * @private\n * @type {Function}\n * @param {Function} func The function to apply a rest parameter to.\n * @returns {Function} Returns the new function.\n */\n var castRest = baseRest;\n\n /**\n * Casts `array` to a slice if it's needed.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {number} start The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the cast slice.\n */\n function castSlice(array, start, end) {\n var length = array.length;\n end = end === undefined ? length : end;\n return (!start && end >= length) ? array : baseSlice(array, start, end);\n }\n\n /**\n * A simple wrapper around the global [`clearTimeout`](https://mdn.io/clearTimeout).\n *\n * @private\n * @param {number|Object} id The timer id or timeout object of the timer to clear.\n */\n var clearTimeout = ctxClearTimeout || function(id) {\n return root.clearTimeout(id);\n };\n\n /**\n * Creates a clone of `buffer`.\n *\n * @private\n * @param {Buffer} buffer The buffer to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Buffer} Returns the cloned buffer.\n */\n function cloneBuffer(buffer, isDeep) {\n if (isDeep) {\n return buffer.slice();\n }\n var length = buffer.length,\n result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length);\n\n buffer.copy(result);\n return result;\n }\n\n /**\n * Creates a clone of `arrayBuffer`.\n *\n * @private\n * @param {ArrayBuffer} arrayBuffer The array buffer to clone.\n * @returns {ArrayBuffer} Returns the cloned array buffer.\n */\n function cloneArrayBuffer(arrayBuffer) {\n var result = new arrayBuffer.constructor(arrayBuffer.byteLength);\n new Uint8Array(result).set(new Uint8Array(arrayBuffer));\n return result;\n }\n\n /**\n * Creates a clone of `dataView`.\n *\n * @private\n * @param {Object} dataView The data view to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned data view.\n */\n function cloneDataView(dataView, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer;\n return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength);\n }\n\n /**\n * Creates a clone of `regexp`.\n *\n * @private\n * @param {Object} regexp The regexp to clone.\n * @returns {Object} Returns the cloned regexp.\n */\n function cloneRegExp(regexp) {\n var result = new regexp.constructor(regexp.source, reFlags.exec(regexp));\n result.lastIndex = regexp.lastIndex;\n return result;\n }\n\n /**\n * Creates a clone of the `symbol` object.\n *\n * @private\n * @param {Object} symbol The symbol object to clone.\n * @returns {Object} Returns the cloned symbol object.\n */\n function cloneSymbol(symbol) {\n return symbolValueOf ? Object(symbolValueOf.call(symbol)) : {};\n }\n\n /**\n * Creates a clone of `typedArray`.\n *\n * @private\n * @param {Object} typedArray The typed array to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned typed array.\n */\n function cloneTypedArray(typedArray, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;\n return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);\n }\n\n /**\n * Compares values to sort them in ascending order.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {number} Returns the sort order indicator for `value`.\n */\n function compareAscending(value, other) {\n if (value !== other) {\n var valIsDefined = value !== undefined,\n valIsNull = value === null,\n valIsReflexive = value === value,\n valIsSymbol = isSymbol(value);\n\n var othIsDefined = other !== undefined,\n othIsNull = other === null,\n othIsReflexive = other === other,\n othIsSymbol = isSymbol(other);\n\n if ((!othIsNull && !othIsSymbol && !valIsSymbol && value > other) ||\n (valIsSymbol && othIsDefined && othIsReflexive && !othIsNull && !othIsSymbol) ||\n (valIsNull && othIsDefined && othIsReflexive) ||\n (!valIsDefined && othIsReflexive) ||\n !valIsReflexive) {\n return 1;\n }\n if ((!valIsNull && !valIsSymbol && !othIsSymbol && value < other) ||\n (othIsSymbol && valIsDefined && valIsReflexive && !valIsNull && !valIsSymbol) ||\n (othIsNull && valIsDefined && valIsReflexive) ||\n (!othIsDefined && valIsReflexive) ||\n !othIsReflexive) {\n return -1;\n }\n }\n return 0;\n }\n\n /**\n * Used by `_.orderBy` to compare multiple properties of a value to another\n * and stable sort them.\n *\n * If `orders` is unspecified, all values are sorted in ascending order. Otherwise,\n * specify an order of \"desc\" for descending or \"asc\" for ascending sort order\n * of corresponding values.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {boolean[]|string[]} orders The order to sort by for each property.\n * @returns {number} Returns the sort order indicator for `object`.\n */\n function compareMultiple(object, other, orders) {\n var index = -1,\n objCriteria = object.criteria,\n othCriteria = other.criteria,\n length = objCriteria.length,\n ordersLength = orders.length;\n\n while (++index < length) {\n var result = compareAscending(objCriteria[index], othCriteria[index]);\n if (result) {\n if (index >= ordersLength) {\n return result;\n }\n var order = orders[index];\n return result * (order == 'desc' ? -1 : 1);\n }\n }\n // Fixes an `Array#sort` bug in the JS engine embedded in Adobe applications\n // that causes it, under certain circumstances, to provide the same value for\n // `object` and `other`. See https://github.com/jashkenas/underscore/pull/1247\n // for more details.\n //\n // This also ensures a stable sort in V8 and other engines.\n // See https://bugs.chromium.org/p/v8/issues/detail?id=90 for more details.\n return object.index - other.index;\n }\n\n /**\n * Creates an array that is the composition of partially applied arguments,\n * placeholders, and provided arguments into a single array of arguments.\n *\n * @private\n * @param {Array} args The provided arguments.\n * @param {Array} partials The arguments to prepend to those provided.\n * @param {Array} holders The `partials` placeholder indexes.\n * @params {boolean} [isCurried] Specify composing for a curried function.\n * @returns {Array} Returns the new array of composed arguments.\n */\n function composeArgs(args, partials, holders, isCurried) {\n var argsIndex = -1,\n argsLength = args.length,\n holdersLength = holders.length,\n leftIndex = -1,\n leftLength = partials.length,\n rangeLength = nativeMax(argsLength - holdersLength, 0),\n result = Array(leftLength + rangeLength),\n isUncurried = !isCurried;\n\n while (++leftIndex < leftLength) {\n result[leftIndex] = partials[leftIndex];\n }\n while (++argsIndex < holdersLength) {\n if (isUncurried || argsIndex < argsLength) {\n result[holders[argsIndex]] = args[argsIndex];\n }\n }\n while (rangeLength--) {\n result[leftIndex++] = args[argsIndex++];\n }\n return result;\n }\n\n /**\n * This function is like `composeArgs` except that the arguments composition\n * is tailored for `_.partialRight`.\n *\n * @private\n * @param {Array} args The provided arguments.\n * @param {Array} partials The arguments to append to those provided.\n * @param {Array} holders The `partials` placeholder indexes.\n * @params {boolean} [isCurried] Specify composing for a curried function.\n * @returns {Array} Returns the new array of composed arguments.\n */\n function composeArgsRight(args, partials, holders, isCurried) {\n var argsIndex = -1,\n argsLength = args.length,\n holdersIndex = -1,\n holdersLength = holders.length,\n rightIndex = -1,\n rightLength = partials.length,\n rangeLength = nativeMax(argsLength - holdersLength, 0),\n result = Array(rangeLength + rightLength),\n isUncurried = !isCurried;\n\n while (++argsIndex < rangeLength) {\n result[argsIndex] = args[argsIndex];\n }\n var offset = argsIndex;\n while (++rightIndex < rightLength) {\n result[offset + rightIndex] = partials[rightIndex];\n }\n while (++holdersIndex < holdersLength) {\n if (isUncurried || argsIndex < argsLength) {\n result[offset + holders[holdersIndex]] = args[argsIndex++];\n }\n }\n return result;\n }\n\n /**\n * Copies the values of `source` to `array`.\n *\n * @private\n * @param {Array} source The array to copy values from.\n * @param {Array} [array=[]] The array to copy values to.\n * @returns {Array} Returns `array`.\n */\n function copyArray(source, array) {\n var index = -1,\n length = source.length;\n\n array || (array = Array(length));\n while (++index < length) {\n array[index] = source[index];\n }\n return array;\n }\n\n /**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\n function copyObject(source, props, object, customizer) {\n var isNew = !object;\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n\n var newValue = customizer\n ? customizer(object[key], source[key], key, object, source)\n : undefined;\n\n if (newValue === undefined) {\n newValue = source[key];\n }\n if (isNew) {\n baseAssignValue(object, key, newValue);\n } else {\n assignValue(object, key, newValue);\n }\n }\n return object;\n }\n\n /**\n * Copies own symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\n function copySymbols(source, object) {\n return copyObject(source, getSymbols(source), object);\n }\n\n /**\n * Copies own and inherited symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\n function copySymbolsIn(source, object) {\n return copyObject(source, getSymbolsIn(source), object);\n }\n\n /**\n * Creates a function like `_.groupBy`.\n *\n * @private\n * @param {Function} setter The function to set accumulator values.\n * @param {Function} [initializer] The accumulator object initializer.\n * @returns {Function} Returns the new aggregator function.\n */\n function createAggregator(setter, initializer) {\n return function(collection, iteratee) {\n var func = isArray(collection) ? arrayAggregator : baseAggregator,\n accumulator = initializer ? initializer() : {};\n\n return func(collection, setter, getIteratee(iteratee, 2), accumulator);\n };\n }\n\n /**\n * Creates a function like `_.assign`.\n *\n * @private\n * @param {Function} assigner The function to assign values.\n * @returns {Function} Returns the new assigner function.\n */\n function createAssigner(assigner) {\n return baseRest(function(object, sources) {\n var index = -1,\n length = sources.length,\n customizer = length > 1 ? sources[length - 1] : undefined,\n guard = length > 2 ? sources[2] : undefined;\n\n customizer = (assigner.length > 3 && typeof customizer == 'function')\n ? (length--, customizer)\n : undefined;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n customizer = length < 3 ? undefined : customizer;\n length = 1;\n }\n object = Object(object);\n while (++index < length) {\n var source = sources[index];\n if (source) {\n assigner(object, source, index, customizer);\n }\n }\n return object;\n });\n }\n\n /**\n * Creates a `baseEach` or `baseEachRight` function.\n *\n * @private\n * @param {Function} eachFunc The function to iterate over a collection.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\n function createBaseEach(eachFunc, fromRight) {\n return function(collection, iteratee) {\n if (collection == null) {\n return collection;\n }\n if (!isArrayLike(collection)) {\n return eachFunc(collection, iteratee);\n }\n var length = collection.length,\n index = fromRight ? length : -1,\n iterable = Object(collection);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (iteratee(iterable[index], index, iterable) === false) {\n break;\n }\n }\n return collection;\n };\n }\n\n /**\n * Creates a base function for methods like `_.forIn` and `_.forOwn`.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\n function createBaseFor(fromRight) {\n return function(object, iteratee, keysFunc) {\n var index = -1,\n iterable = Object(object),\n props = keysFunc(object),\n length = props.length;\n\n while (length--) {\n var key = props[fromRight ? length : ++index];\n if (iteratee(iterable[key], key, iterable) === false) {\n break;\n }\n }\n return object;\n };\n }\n\n /**\n * Creates a function that wraps `func` to invoke it with the optional `this`\n * binding of `thisArg`.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @param {*} [thisArg] The `this` binding of `func`.\n * @returns {Function} Returns the new wrapped function.\n */\n function createBind(func, bitmask, thisArg) {\n var isBind = bitmask & WRAP_BIND_FLAG,\n Ctor = createCtor(func);\n\n function wrapper() {\n var fn = (this && this !== root && this instanceof wrapper) ? Ctor : func;\n return fn.apply(isBind ? thisArg : this, arguments);\n }\n return wrapper;\n }\n\n /**\n * Creates a function like `_.lowerFirst`.\n *\n * @private\n * @param {string} methodName The name of the `String` case method to use.\n * @returns {Function} Returns the new case function.\n */\n function createCaseFirst(methodName) {\n return function(string) {\n string = toString(string);\n\n var strSymbols = hasUnicode(string)\n ? stringToArray(string)\n : undefined;\n\n var chr = strSymbols\n ? strSymbols[0]\n : string.charAt(0);\n\n var trailing = strSymbols\n ? castSlice(strSymbols, 1).join('')\n : string.slice(1);\n\n return chr[methodName]() + trailing;\n };\n }\n\n /**\n * Creates a function like `_.camelCase`.\n *\n * @private\n * @param {Function} callback The function to combine each word.\n * @returns {Function} Returns the new compounder function.\n */\n function createCompounder(callback) {\n return function(string) {\n return arrayReduce(words(deburr(string).replace(reApos, '')), callback, '');\n };\n }\n\n /**\n * Creates a function that produces an instance of `Ctor` regardless of\n * whether it was invoked as part of a `new` expression or by `call` or `apply`.\n *\n * @private\n * @param {Function} Ctor The constructor to wrap.\n * @returns {Function} Returns the new wrapped function.\n */\n function createCtor(Ctor) {\n return function() {\n // Use a `switch` statement to work with class constructors. See\n // http://ecma-international.org/ecma-262/7.0/#sec-ecmascript-function-objects-call-thisargument-argumentslist\n // for more details.\n var args = arguments;\n switch (args.length) {\n case 0: return new Ctor;\n case 1: return new Ctor(args[0]);\n case 2: return new Ctor(args[0], args[1]);\n case 3: return new Ctor(args[0], args[1], args[2]);\n case 4: return new Ctor(args[0], args[1], args[2], args[3]);\n case 5: return new Ctor(args[0], args[1], args[2], args[3], args[4]);\n case 6: return new Ctor(args[0], args[1], args[2], args[3], args[4], args[5]);\n case 7: return new Ctor(args[0], args[1], args[2], args[3], args[4], args[5], args[6]);\n }\n var thisBinding = baseCreate(Ctor.prototype),\n result = Ctor.apply(thisBinding, args);\n\n // Mimic the constructor's `return` behavior.\n // See https://es5.github.io/#x13.2.2 for more details.\n return isObject(result) ? result : thisBinding;\n };\n }\n\n /**\n * Creates a function that wraps `func` to enable currying.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @param {number} arity The arity of `func`.\n * @returns {Function} Returns the new wrapped function.\n */\n function createCurry(func, bitmask, arity) {\n var Ctor = createCtor(func);\n\n function wrapper() {\n var length = arguments.length,\n args = Array(length),\n index = length,\n placeholder = getHolder(wrapper);\n\n while (index--) {\n args[index] = arguments[index];\n }\n var holders = (length < 3 && args[0] !== placeholder && args[length - 1] !== placeholder)\n ? []\n : replaceHolders(args, placeholder);\n\n length -= holders.length;\n if (length < arity) {\n return createRecurry(\n func, bitmask, createHybrid, wrapper.placeholder, undefined,\n args, holders, undefined, undefined, arity - length);\n }\n var fn = (this && this !== root && this instanceof wrapper) ? Ctor : func;\n return apply(fn, this, args);\n }\n return wrapper;\n }\n\n /**\n * Creates a `_.find` or `_.findLast` function.\n *\n * @private\n * @param {Function} findIndexFunc The function to find the collection index.\n * @returns {Function} Returns the new find function.\n */\n function createFind(findIndexFunc) {\n return function(collection, predicate, fromIndex) {\n var iterable = Object(collection);\n if (!isArrayLike(collection)) {\n var iteratee = getIteratee(predicate, 3);\n collection = keys(collection);\n predicate = function(key) { return iteratee(iterable[key], key, iterable); };\n }\n var index = findIndexFunc(collection, predicate, fromIndex);\n return index > -1 ? iterable[iteratee ? collection[index] : index] : undefined;\n };\n }\n\n /**\n * Creates a `_.flow` or `_.flowRight` function.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new flow function.\n */\n function createFlow(fromRight) {\n return flatRest(function(funcs) {\n var length = funcs.length,\n index = length,\n prereq = LodashWrapper.prototype.thru;\n\n if (fromRight) {\n funcs.reverse();\n }\n while (index--) {\n var func = funcs[index];\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n if (prereq && !wrapper && getFuncName(func) == 'wrapper') {\n var wrapper = new LodashWrapper([], true);\n }\n }\n index = wrapper ? index : length;\n while (++index < length) {\n func = funcs[index];\n\n var funcName = getFuncName(func),\n data = funcName == 'wrapper' ? getData(func) : undefined;\n\n if (data && isLaziable(data[0]) &&\n data[1] == (WRAP_ARY_FLAG | WRAP_CURRY_FLAG | WRAP_PARTIAL_FLAG | WRAP_REARG_FLAG) &&\n !data[4].length && data[9] == 1\n ) {\n wrapper = wrapper[getFuncName(data[0])].apply(wrapper, data[3]);\n } else {\n wrapper = (func.length == 1 && isLaziable(func))\n ? wrapper[funcName]()\n : wrapper.thru(func);\n }\n }\n return function() {\n var args = arguments,\n value = args[0];\n\n if (wrapper && args.length == 1 && isArray(value)) {\n return wrapper.plant(value).value();\n }\n var index = 0,\n result = length ? funcs[index].apply(this, args) : value;\n\n while (++index < length) {\n result = funcs[index].call(this, result);\n }\n return result;\n };\n });\n }\n\n /**\n * Creates a function that wraps `func` to invoke it with optional `this`\n * binding of `thisArg`, partial application, and currying.\n *\n * @private\n * @param {Function|string} func The function or method name to wrap.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @param {*} [thisArg] The `this` binding of `func`.\n * @param {Array} [partials] The arguments to prepend to those provided to\n * the new function.\n * @param {Array} [holders] The `partials` placeholder indexes.\n * @param {Array} [partialsRight] The arguments to append to those provided\n * to the new function.\n * @param {Array} [holdersRight] The `partialsRight` placeholder indexes.\n * @param {Array} [argPos] The argument positions of the new function.\n * @param {number} [ary] The arity cap of `func`.\n * @param {number} [arity] The arity of `func`.\n * @returns {Function} Returns the new wrapped function.\n */\n function createHybrid(func, bitmask, thisArg, partials, holders, partialsRight, holdersRight, argPos, ary, arity) {\n var isAry = bitmask & WRAP_ARY_FLAG,\n isBind = bitmask & WRAP_BIND_FLAG,\n isBindKey = bitmask & WRAP_BIND_KEY_FLAG,\n isCurried = bitmask & (WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG),\n isFlip = bitmask & WRAP_FLIP_FLAG,\n Ctor = isBindKey ? undefined : createCtor(func);\n\n function wrapper() {\n var length = arguments.length,\n args = Array(length),\n index = length;\n\n while (index--) {\n args[index] = arguments[index];\n }\n if (isCurried) {\n var placeholder = getHolder(wrapper),\n holdersCount = countHolders(args, placeholder);\n }\n if (partials) {\n args = composeArgs(args, partials, holders, isCurried);\n }\n if (partialsRight) {\n args = composeArgsRight(args, partialsRight, holdersRight, isCurried);\n }\n length -= holdersCount;\n if (isCurried && length < arity) {\n var newHolders = replaceHolders(args, placeholder);\n return createRecurry(\n func, bitmask, createHybrid, wrapper.placeholder, thisArg,\n args, newHolders, argPos, ary, arity - length\n );\n }\n var thisBinding = isBind ? thisArg : this,\n fn = isBindKey ? thisBinding[func] : func;\n\n length = args.length;\n if (argPos) {\n args = reorder(args, argPos);\n } else if (isFlip && length > 1) {\n args.reverse();\n }\n if (isAry && ary < length) {\n args.length = ary;\n }\n if (this && this !== root && this instanceof wrapper) {\n fn = Ctor || createCtor(fn);\n }\n return fn.apply(thisBinding, args);\n }\n return wrapper;\n }\n\n /**\n * Creates a function like `_.invertBy`.\n *\n * @private\n * @param {Function} setter The function to set accumulator values.\n * @param {Function} toIteratee The function to resolve iteratees.\n * @returns {Function} Returns the new inverter function.\n */\n function createInverter(setter, toIteratee) {\n return function(object, iteratee) {\n return baseInverter(object, setter, toIteratee(iteratee), {});\n };\n }\n\n /**\n * Creates a function that performs a mathematical operation on two values.\n *\n * @private\n * @param {Function} operator The function to perform the operation.\n * @param {number} [defaultValue] The value used for `undefined` arguments.\n * @returns {Function} Returns the new mathematical operation function.\n */\n function createMathOperation(operator, defaultValue) {\n return function(value, other) {\n var result;\n if (value === undefined && other === undefined) {\n return defaultValue;\n }\n if (value !== undefined) {\n result = value;\n }\n if (other !== undefined) {\n if (result === undefined) {\n return other;\n }\n if (typeof value == 'string' || typeof other == 'string') {\n value = baseToString(value);\n other = baseToString(other);\n } else {\n value = baseToNumber(value);\n other = baseToNumber(other);\n }\n result = operator(value, other);\n }\n return result;\n };\n }\n\n /**\n * Creates a function like `_.over`.\n *\n * @private\n * @param {Function} arrayFunc The function to iterate over iteratees.\n * @returns {Function} Returns the new over function.\n */\n function createOver(arrayFunc) {\n return flatRest(function(iteratees) {\n iteratees = arrayMap(iteratees, baseUnary(getIteratee()));\n return baseRest(function(args) {\n var thisArg = this;\n return arrayFunc(iteratees, function(iteratee) {\n return apply(iteratee, thisArg, args);\n });\n });\n });\n }\n\n /**\n * Creates the padding for `string` based on `length`. The `chars` string\n * is truncated if the number of characters exceeds `length`.\n *\n * @private\n * @param {number} length The padding length.\n * @param {string} [chars=' '] The string used as padding.\n * @returns {string} Returns the padding for `string`.\n */\n function createPadding(length, chars) {\n chars = chars === undefined ? ' ' : baseToString(chars);\n\n var charsLength = chars.length;\n if (charsLength < 2) {\n return charsLength ? baseRepeat(chars, length) : chars;\n }\n var result = baseRepeat(chars, nativeCeil(length / stringSize(chars)));\n return hasUnicode(chars)\n ? castSlice(stringToArray(result), 0, length).join('')\n : result.slice(0, length);\n }\n\n /**\n * Creates a function that wraps `func` to invoke it with the `this` binding\n * of `thisArg` and `partials` prepended to the arguments it receives.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} partials The arguments to prepend to those provided to\n * the new function.\n * @returns {Function} Returns the new wrapped function.\n */\n function createPartial(func, bitmask, thisArg, partials) {\n var isBind = bitmask & WRAP_BIND_FLAG,\n Ctor = createCtor(func);\n\n function wrapper() {\n var argsIndex = -1,\n argsLength = arguments.length,\n leftIndex = -1,\n leftLength = partials.length,\n args = Array(leftLength + argsLength),\n fn = (this && this !== root && this instanceof wrapper) ? Ctor : func;\n\n while (++leftIndex < leftLength) {\n args[leftIndex] = partials[leftIndex];\n }\n while (argsLength--) {\n args[leftIndex++] = arguments[++argsIndex];\n }\n return apply(fn, isBind ? thisArg : this, args);\n }\n return wrapper;\n }\n\n /**\n * Creates a `_.range` or `_.rangeRight` function.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new range function.\n */\n function createRange(fromRight) {\n return function(start, end, step) {\n if (step && typeof step != 'number' && isIterateeCall(start, end, step)) {\n end = step = undefined;\n }\n // Ensure the sign of `-0` is preserved.\n start = toFinite(start);\n if (end === undefined) {\n end = start;\n start = 0;\n } else {\n end = toFinite(end);\n }\n step = step === undefined ? (start < end ? 1 : -1) : toFinite(step);\n return baseRange(start, end, step, fromRight);\n };\n }\n\n /**\n * Creates a function that performs a relational operation on two values.\n *\n * @private\n * @param {Function} operator The function to perform the operation.\n * @returns {Function} Returns the new relational operation function.\n */\n function createRelationalOperation(operator) {\n return function(value, other) {\n if (!(typeof value == 'string' && typeof other == 'string')) {\n value = toNumber(value);\n other = toNumber(other);\n }\n return operator(value, other);\n };\n }\n\n /**\n * Creates a function that wraps `func` to continue currying.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @param {Function} wrapFunc The function to create the `func` wrapper.\n * @param {*} placeholder The placeholder value.\n * @param {*} [thisArg] The `this` binding of `func`.\n * @param {Array} [partials] The arguments to prepend to those provided to\n * the new function.\n * @param {Array} [holders] The `partials` placeholder indexes.\n * @param {Array} [argPos] The argument positions of the new function.\n * @param {number} [ary] The arity cap of `func`.\n * @param {number} [arity] The arity of `func`.\n * @returns {Function} Returns the new wrapped function.\n */\n function createRecurry(func, bitmask, wrapFunc, placeholder, thisArg, partials, holders, argPos, ary, arity) {\n var isCurry = bitmask & WRAP_CURRY_FLAG,\n newHolders = isCurry ? holders : undefined,\n newHoldersRight = isCurry ? undefined : holders,\n newPartials = isCurry ? partials : undefined,\n newPartialsRight = isCurry ? undefined : partials;\n\n bitmask |= (isCurry ? WRAP_PARTIAL_FLAG : WRAP_PARTIAL_RIGHT_FLAG);\n bitmask &= ~(isCurry ? WRAP_PARTIAL_RIGHT_FLAG : WRAP_PARTIAL_FLAG);\n\n if (!(bitmask & WRAP_CURRY_BOUND_FLAG)) {\n bitmask &= ~(WRAP_BIND_FLAG | WRAP_BIND_KEY_FLAG);\n }\n var newData = [\n func, bitmask, thisArg, newPartials, newHolders, newPartialsRight,\n newHoldersRight, argPos, ary, arity\n ];\n\n var result = wrapFunc.apply(undefined, newData);\n if (isLaziable(func)) {\n setData(result, newData);\n }\n result.placeholder = placeholder;\n return setWrapToString(result, func, bitmask);\n }\n\n /**\n * Creates a function like `_.round`.\n *\n * @private\n * @param {string} methodName The name of the `Math` method to use when rounding.\n * @returns {Function} Returns the new round function.\n */\n function createRound(methodName) {\n var func = Math[methodName];\n return function(number, precision) {\n number = toNumber(number);\n precision = precision == null ? 0 : nativeMin(toInteger(precision), 292);\n if (precision && nativeIsFinite(number)) {\n // Shift with exponential notation to avoid floating-point issues.\n // See [MDN](https://mdn.io/round#Examples) for more details.\n var pair = (toString(number) + 'e').split('e'),\n value = func(pair[0] + 'e' + (+pair[1] + precision));\n\n pair = (toString(value) + 'e').split('e');\n return +(pair[0] + 'e' + (+pair[1] - precision));\n }\n return func(number);\n };\n }\n\n /**\n * Creates a set object of `values`.\n *\n * @private\n * @param {Array} values The values to add to the set.\n * @returns {Object} Returns the new set.\n */\n var createSet = !(Set && (1 / setToArray(new Set([,-0]))[1]) == INFINITY) ? noop : function(values) {\n return new Set(values);\n };\n\n /**\n * Creates a `_.toPairs` or `_.toPairsIn` function.\n *\n * @private\n * @param {Function} keysFunc The function to get the keys of a given object.\n * @returns {Function} Returns the new pairs function.\n */\n function createToPairs(keysFunc) {\n return function(object) {\n var tag = getTag(object);\n if (tag == mapTag) {\n return mapToArray(object);\n }\n if (tag == setTag) {\n return setToPairs(object);\n }\n return baseToPairs(object, keysFunc(object));\n };\n }\n\n /**\n * Creates a function that either curries or invokes `func` with optional\n * `this` binding and partially applied arguments.\n *\n * @private\n * @param {Function|string} func The function or method name to wrap.\n * @param {number} bitmask The bitmask flags.\n * 1 - `_.bind`\n * 2 - `_.bindKey`\n * 4 - `_.curry` or `_.curryRight` of a bound function\n * 8 - `_.curry`\n * 16 - `_.curryRight`\n * 32 - `_.partial`\n * 64 - `_.partialRight`\n * 128 - `_.rearg`\n * 256 - `_.ary`\n * 512 - `_.flip`\n * @param {*} [thisArg] The `this` binding of `func`.\n * @param {Array} [partials] The arguments to be partially applied.\n * @param {Array} [holders] The `partials` placeholder indexes.\n * @param {Array} [argPos] The argument positions of the new function.\n * @param {number} [ary] The arity cap of `func`.\n * @param {number} [arity] The arity of `func`.\n * @returns {Function} Returns the new wrapped function.\n */\n function createWrap(func, bitmask, thisArg, partials, holders, argPos, ary, arity) {\n var isBindKey = bitmask & WRAP_BIND_KEY_FLAG;\n if (!isBindKey && typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var length = partials ? partials.length : 0;\n if (!length) {\n bitmask &= ~(WRAP_PARTIAL_FLAG | WRAP_PARTIAL_RIGHT_FLAG);\n partials = holders = undefined;\n }\n ary = ary === undefined ? ary : nativeMax(toInteger(ary), 0);\n arity = arity === undefined ? arity : toInteger(arity);\n length -= holders ? holders.length : 0;\n\n if (bitmask & WRAP_PARTIAL_RIGHT_FLAG) {\n var partialsRight = partials,\n holdersRight = holders;\n\n partials = holders = undefined;\n }\n var data = isBindKey ? undefined : getData(func);\n\n var newData = [\n func, bitmask, thisArg, partials, holders, partialsRight, holdersRight,\n argPos, ary, arity\n ];\n\n if (data) {\n mergeData(newData, data);\n }\n func = newData[0];\n bitmask = newData[1];\n thisArg = newData[2];\n partials = newData[3];\n holders = newData[4];\n arity = newData[9] = newData[9] === undefined\n ? (isBindKey ? 0 : func.length)\n : nativeMax(newData[9] - length, 0);\n\n if (!arity && bitmask & (WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG)) {\n bitmask &= ~(WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG);\n }\n if (!bitmask || bitmask == WRAP_BIND_FLAG) {\n var result = createBind(func, bitmask, thisArg);\n } else if (bitmask == WRAP_CURRY_FLAG || bitmask == WRAP_CURRY_RIGHT_FLAG) {\n result = createCurry(func, bitmask, arity);\n } else if ((bitmask == WRAP_PARTIAL_FLAG || bitmask == (WRAP_BIND_FLAG | WRAP_PARTIAL_FLAG)) && !holders.length) {\n result = createPartial(func, bitmask, thisArg, partials);\n } else {\n result = createHybrid.apply(undefined, newData);\n }\n var setter = data ? baseSetData : setData;\n return setWrapToString(setter(result, newData), func, bitmask);\n }\n\n /**\n * Used by `_.defaults` to customize its `_.assignIn` use to assign properties\n * of source objects to the destination object for all destination properties\n * that resolve to `undefined`.\n *\n * @private\n * @param {*} objValue The destination value.\n * @param {*} srcValue The source value.\n * @param {string} key The key of the property to assign.\n * @param {Object} object The parent object of `objValue`.\n * @returns {*} Returns the value to assign.\n */\n function customDefaultsAssignIn(objValue, srcValue, key, object) {\n if (objValue === undefined ||\n (eq(objValue, objectProto[key]) && !hasOwnProperty.call(object, key))) {\n return srcValue;\n }\n return objValue;\n }\n\n /**\n * Used by `_.defaultsDeep` to customize its `_.merge` use to merge source\n * objects into destination objects that are passed thru.\n *\n * @private\n * @param {*} objValue The destination value.\n * @param {*} srcValue The source value.\n * @param {string} key The key of the property to merge.\n * @param {Object} object The parent object of `objValue`.\n * @param {Object} source The parent object of `srcValue`.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n * @returns {*} Returns the value to assign.\n */\n function customDefaultsMerge(objValue, srcValue, key, object, source, stack) {\n if (isObject(objValue) && isObject(srcValue)) {\n // Recursively merge objects and arrays (susceptible to call stack limits).\n stack.set(srcValue, objValue);\n baseMerge(objValue, srcValue, undefined, customDefaultsMerge, stack);\n stack['delete'](srcValue);\n }\n return objValue;\n }\n\n /**\n * Used by `_.omit` to customize its `_.cloneDeep` use to only clone plain\n * objects.\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {string} key The key of the property to inspect.\n * @returns {*} Returns the uncloned value or `undefined` to defer cloning to `_.cloneDeep`.\n */\n function customOmitClone(value) {\n return isPlainObject(value) ? undefined : value;\n }\n\n /**\n * A specialized version of `baseIsEqualDeep` for arrays with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Array} array The array to compare.\n * @param {Array} other The other array to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `array` and `other` objects.\n * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.\n */\n function equalArrays(array, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n arrLength = array.length,\n othLength = other.length;\n\n if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n return false;\n }\n // Check that cyclic values are equal.\n var arrStacked = stack.get(array);\n var othStacked = stack.get(other);\n if (arrStacked && othStacked) {\n return arrStacked == other && othStacked == array;\n }\n var index = -1,\n result = true,\n seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined;\n\n stack.set(array, other);\n stack.set(other, array);\n\n // Ignore non-index properties.\n while (++index < arrLength) {\n var arrValue = array[index],\n othValue = other[index];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, arrValue, index, other, array, stack)\n : customizer(arrValue, othValue, index, array, other, stack);\n }\n if (compared !== undefined) {\n if (compared) {\n continue;\n }\n result = false;\n break;\n }\n // Recursively compare arrays (susceptible to call stack limits).\n if (seen) {\n if (!arraySome(other, function(othValue, othIndex) {\n if (!cacheHas(seen, othIndex) &&\n (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n return seen.push(othIndex);\n }\n })) {\n result = false;\n break;\n }\n } else if (!(\n arrValue === othValue ||\n equalFunc(arrValue, othValue, bitmask, customizer, stack)\n )) {\n result = false;\n break;\n }\n }\n stack['delete'](array);\n stack['delete'](other);\n return result;\n }\n\n /**\n * A specialized version of `baseIsEqualDeep` for comparing objects of\n * the same `toStringTag`.\n *\n * **Note:** This function only supports comparing values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {string} tag The `toStringTag` of the objects to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\n function equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {\n switch (tag) {\n case dataViewTag:\n if ((object.byteLength != other.byteLength) ||\n (object.byteOffset != other.byteOffset)) {\n return false;\n }\n object = object.buffer;\n other = other.buffer;\n\n case arrayBufferTag:\n if ((object.byteLength != other.byteLength) ||\n !equalFunc(new Uint8Array(object), new Uint8Array(other))) {\n return false;\n }\n return true;\n\n case boolTag:\n case dateTag:\n case numberTag:\n // Coerce booleans to `1` or `0` and dates to milliseconds.\n // Invalid dates are coerced to `NaN`.\n return eq(+object, +other);\n\n case errorTag:\n return object.name == other.name && object.message == other.message;\n\n case regexpTag:\n case stringTag:\n // Coerce regexes to strings and treat strings, primitives and objects,\n // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring\n // for more details.\n return object == (other + '');\n\n case mapTag:\n var convert = mapToArray;\n\n case setTag:\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG;\n convert || (convert = setToArray);\n\n if (object.size != other.size && !isPartial) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked) {\n return stacked == other;\n }\n bitmask |= COMPARE_UNORDERED_FLAG;\n\n // Recursively compare objects (susceptible to call stack limits).\n stack.set(object, other);\n var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);\n stack['delete'](object);\n return result;\n\n case symbolTag:\n if (symbolValueOf) {\n return symbolValueOf.call(object) == symbolValueOf.call(other);\n }\n }\n return false;\n }\n\n /**\n * A specialized version of `baseIsEqualDeep` for objects with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\n function equalObjects(object, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n objProps = getAllKeys(object),\n objLength = objProps.length,\n othProps = getAllKeys(other),\n othLength = othProps.length;\n\n if (objLength != othLength && !isPartial) {\n return false;\n }\n var index = objLength;\n while (index--) {\n var key = objProps[index];\n if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {\n return false;\n }\n }\n // Check that cyclic values are equal.\n var objStacked = stack.get(object);\n var othStacked = stack.get(other);\n if (objStacked && othStacked) {\n return objStacked == other && othStacked == object;\n }\n var result = true;\n stack.set(object, other);\n stack.set(other, object);\n\n var skipCtor = isPartial;\n while (++index < objLength) {\n key = objProps[index];\n var objValue = object[key],\n othValue = other[key];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, objValue, key, other, object, stack)\n : customizer(objValue, othValue, key, object, other, stack);\n }\n // Recursively compare objects (susceptible to call stack limits).\n if (!(compared === undefined\n ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack))\n : compared\n )) {\n result = false;\n break;\n }\n skipCtor || (skipCtor = key == 'constructor');\n }\n if (result && !skipCtor) {\n var objCtor = object.constructor,\n othCtor = other.constructor;\n\n // Non `Object` object instances with different constructors are not equal.\n if (objCtor != othCtor &&\n ('constructor' in object && 'constructor' in other) &&\n !(typeof objCtor == 'function' && objCtor instanceof objCtor &&\n typeof othCtor == 'function' && othCtor instanceof othCtor)) {\n result = false;\n }\n }\n stack['delete'](object);\n stack['delete'](other);\n return result;\n }\n\n /**\n * A specialized version of `baseRest` which flattens the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @returns {Function} Returns the new function.\n */\n function flatRest(func) {\n return setToString(overRest(func, undefined, flatten), func + '');\n }\n\n /**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\n function getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n }\n\n /**\n * Creates an array of own and inherited enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\n function getAllKeysIn(object) {\n return baseGetAllKeys(object, keysIn, getSymbolsIn);\n }\n\n /**\n * Gets metadata for `func`.\n *\n * @private\n * @param {Function} func The function to query.\n * @returns {*} Returns the metadata for `func`.\n */\n var getData = !metaMap ? noop : function(func) {\n return metaMap.get(func);\n };\n\n /**\n * Gets the name of `func`.\n *\n * @private\n * @param {Function} func The function to query.\n * @returns {string} Returns the function name.\n */\n function getFuncName(func) {\n var result = (func.name + ''),\n array = realNames[result],\n length = hasOwnProperty.call(realNames, result) ? array.length : 0;\n\n while (length--) {\n var data = array[length],\n otherFunc = data.func;\n if (otherFunc == null || otherFunc == func) {\n return data.name;\n }\n }\n return result;\n }\n\n /**\n * Gets the argument placeholder value for `func`.\n *\n * @private\n * @param {Function} func The function to inspect.\n * @returns {*} Returns the placeholder value.\n */\n function getHolder(func) {\n var object = hasOwnProperty.call(lodash, 'placeholder') ? lodash : func;\n return object.placeholder;\n }\n\n /**\n * Gets the appropriate \"iteratee\" function. If `_.iteratee` is customized,\n * this function returns the custom method, otherwise it returns `baseIteratee`.\n * If arguments are provided, the chosen function is invoked with them and\n * its result is returned.\n *\n * @private\n * @param {*} [value] The value to convert to an iteratee.\n * @param {number} [arity] The arity of the created iteratee.\n * @returns {Function} Returns the chosen function or its result.\n */\n function getIteratee() {\n var result = lodash.iteratee || iteratee;\n result = result === iteratee ? baseIteratee : result;\n return arguments.length ? result(arguments[0], arguments[1]) : result;\n }\n\n /**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\n function getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n }\n\n /**\n * Gets the property names, values, and compare flags of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the match data of `object`.\n */\n function getMatchData(object) {\n var result = keys(object),\n length = result.length;\n\n while (length--) {\n var key = result[length],\n value = object[key];\n\n result[length] = [key, value, isStrictComparable(value)];\n }\n return result;\n }\n\n /**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\n function getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n }\n\n /**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\n function getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n }\n\n /**\n * Creates an array of the own enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\n var getSymbols = !nativeGetSymbols ? stubArray : function(object) {\n if (object == null) {\n return [];\n }\n object = Object(object);\n return arrayFilter(nativeGetSymbols(object), function(symbol) {\n return propertyIsEnumerable.call(object, symbol);\n });\n };\n\n /**\n * Creates an array of the own and inherited enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\n var getSymbolsIn = !nativeGetSymbols ? stubArray : function(object) {\n var result = [];\n while (object) {\n arrayPush(result, getSymbols(object));\n object = getPrototype(object);\n }\n return result;\n };\n\n /**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\n var getTag = baseGetTag;\n\n // Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.\n if ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = baseGetTag(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : '';\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n }\n\n /**\n * Gets the view, applying any `transforms` to the `start` and `end` positions.\n *\n * @private\n * @param {number} start The start of the view.\n * @param {number} end The end of the view.\n * @param {Array} transforms The transformations to apply to the view.\n * @returns {Object} Returns an object containing the `start` and `end`\n * positions of the view.\n */\n function getView(start, end, transforms) {\n var index = -1,\n length = transforms.length;\n\n while (++index < length) {\n var data = transforms[index],\n size = data.size;\n\n switch (data.type) {\n case 'drop': start += size; break;\n case 'dropRight': end -= size; break;\n case 'take': end = nativeMin(end, start + size); break;\n case 'takeRight': start = nativeMax(start, end - size); break;\n }\n }\n return { 'start': start, 'end': end };\n }\n\n /**\n * Extracts wrapper details from the `source` body comment.\n *\n * @private\n * @param {string} source The source to inspect.\n * @returns {Array} Returns the wrapper details.\n */\n function getWrapDetails(source) {\n var match = source.match(reWrapDetails);\n return match ? match[1].split(reSplitDetails) : [];\n }\n\n /**\n * Checks if `path` exists on `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @param {Function} hasFunc The function to check properties.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n */\n function hasPath(object, path, hasFunc) {\n path = castPath(path, object);\n\n var index = -1,\n length = path.length,\n result = false;\n\n while (++index < length) {\n var key = toKey(path[index]);\n if (!(result = object != null && hasFunc(object, key))) {\n break;\n }\n object = object[key];\n }\n if (result || ++index != length) {\n return result;\n }\n length = object == null ? 0 : object.length;\n return !!length && isLength(length) && isIndex(key, length) &&\n (isArray(object) || isArguments(object));\n }\n\n /**\n * Initializes an array clone.\n *\n * @private\n * @param {Array} array The array to clone.\n * @returns {Array} Returns the initialized clone.\n */\n function initCloneArray(array) {\n var length = array.length,\n result = new array.constructor(length);\n\n // Add properties assigned by `RegExp#exec`.\n if (length && typeof array[0] == 'string' && hasOwnProperty.call(array, 'index')) {\n result.index = array.index;\n result.input = array.input;\n }\n return result;\n }\n\n /**\n * Initializes an object clone.\n *\n * @private\n * @param {Object} object The object to clone.\n * @returns {Object} Returns the initialized clone.\n */\n function initCloneObject(object) {\n return (typeof object.constructor == 'function' && !isPrototype(object))\n ? baseCreate(getPrototype(object))\n : {};\n }\n\n /**\n * Initializes an object clone based on its `toStringTag`.\n *\n * **Note:** This function only supports cloning values with tags of\n * `Boolean`, `Date`, `Error`, `Map`, `Number`, `RegExp`, `Set`, or `String`.\n *\n * @private\n * @param {Object} object The object to clone.\n * @param {string} tag The `toStringTag` of the object to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the initialized clone.\n */\n function initCloneByTag(object, tag, isDeep) {\n var Ctor = object.constructor;\n switch (tag) {\n case arrayBufferTag:\n return cloneArrayBuffer(object);\n\n case boolTag:\n case dateTag:\n return new Ctor(+object);\n\n case dataViewTag:\n return cloneDataView(object, isDeep);\n\n case float32Tag: case float64Tag:\n case int8Tag: case int16Tag: case int32Tag:\n case uint8Tag: case uint8ClampedTag: case uint16Tag: case uint32Tag:\n return cloneTypedArray(object, isDeep);\n\n case mapTag:\n return new Ctor;\n\n case numberTag:\n case stringTag:\n return new Ctor(object);\n\n case regexpTag:\n return cloneRegExp(object);\n\n case setTag:\n return new Ctor;\n\n case symbolTag:\n return cloneSymbol(object);\n }\n }\n\n /**\n * Inserts wrapper `details` in a comment at the top of the `source` body.\n *\n * @private\n * @param {string} source The source to modify.\n * @returns {Array} details The details to insert.\n * @returns {string} Returns the modified source.\n */\n function insertWrapDetails(source, details) {\n var length = details.length;\n if (!length) {\n return source;\n }\n var lastIndex = length - 1;\n details[lastIndex] = (length > 1 ? '& ' : '') + details[lastIndex];\n details = details.join(length > 2 ? ', ' : ' ');\n return source.replace(reWrapComment, '{\\n/* [wrapped with ' + details + '] */\\n');\n }\n\n /**\n * Checks if `value` is a flattenable `arguments` object or array.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is flattenable, else `false`.\n */\n function isFlattenable(value) {\n return isArray(value) || isArguments(value) ||\n !!(spreadableSymbol && value && value[spreadableSymbol]);\n }\n\n /**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\n function isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n }\n\n /**\n * Checks if the given arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n * else `false`.\n */\n function isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number'\n ? (isArrayLike(object) && isIndex(index, object.length))\n : (type == 'string' && index in object)\n ) {\n return eq(object[index], value);\n }\n return false;\n }\n\n /**\n * Checks if `value` is a property name and not a property path.\n *\n * @private\n * @param {*} value The value to check.\n * @param {Object} [object] The object to query keys on.\n * @returns {boolean} Returns `true` if `value` is a property name, else `false`.\n */\n function isKey(value, object) {\n if (isArray(value)) {\n return false;\n }\n var type = typeof value;\n if (type == 'number' || type == 'symbol' || type == 'boolean' ||\n value == null || isSymbol(value)) {\n return true;\n }\n return reIsPlainProp.test(value) || !reIsDeepProp.test(value) ||\n (object != null && value in Object(object));\n }\n\n /**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\n function isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n }\n\n /**\n * Checks if `func` has a lazy counterpart.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` has a lazy counterpart,\n * else `false`.\n */\n function isLaziable(func) {\n var funcName = getFuncName(func),\n other = lodash[funcName];\n\n if (typeof other != 'function' || !(funcName in LazyWrapper.prototype)) {\n return false;\n }\n if (func === other) {\n return true;\n }\n var data = getData(other);\n return !!data && func === data[0];\n }\n\n /**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\n function isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n }\n\n /**\n * Checks if `func` is capable of being masked.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `func` is maskable, else `false`.\n */\n var isMaskable = coreJsData ? isFunction : stubFalse;\n\n /**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\n function isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n }\n\n /**\n * Checks if `value` is suitable for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` if suitable for strict\n * equality comparisons, else `false`.\n */\n function isStrictComparable(value) {\n return value === value && !isObject(value);\n }\n\n /**\n * A specialized version of `matchesProperty` for source values suitable\n * for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\n function matchesStrictComparable(key, srcValue) {\n return function(object) {\n if (object == null) {\n return false;\n }\n return object[key] === srcValue &&\n (srcValue !== undefined || (key in Object(object)));\n };\n }\n\n /**\n * A specialized version of `_.memoize` which clears the memoized function's\n * cache when it exceeds `MAX_MEMOIZE_SIZE`.\n *\n * @private\n * @param {Function} func The function to have its output memoized.\n * @returns {Function} Returns the new memoized function.\n */\n function memoizeCapped(func) {\n var result = memoize(func, function(key) {\n if (cache.size === MAX_MEMOIZE_SIZE) {\n cache.clear();\n }\n return key;\n });\n\n var cache = result.cache;\n return result;\n }\n\n /**\n * Merges the function metadata of `source` into `data`.\n *\n * Merging metadata reduces the number of wrappers used to invoke a function.\n * This is possible because methods like `_.bind`, `_.curry`, and `_.partial`\n * may be applied regardless of execution order. Methods like `_.ary` and\n * `_.rearg` modify function arguments, making the order in which they are\n * executed important, preventing the merging of metadata. However, we make\n * an exception for a safe combined case where curried functions have `_.ary`\n * and or `_.rearg` applied.\n *\n * @private\n * @param {Array} data The destination metadata.\n * @param {Array} source The source metadata.\n * @returns {Array} Returns `data`.\n */\n function mergeData(data, source) {\n var bitmask = data[1],\n srcBitmask = source[1],\n newBitmask = bitmask | srcBitmask,\n isCommon = newBitmask < (WRAP_BIND_FLAG | WRAP_BIND_KEY_FLAG | WRAP_ARY_FLAG);\n\n var isCombo =\n ((srcBitmask == WRAP_ARY_FLAG) && (bitmask == WRAP_CURRY_FLAG)) ||\n ((srcBitmask == WRAP_ARY_FLAG) && (bitmask == WRAP_REARG_FLAG) && (data[7].length <= source[8])) ||\n ((srcBitmask == (WRAP_ARY_FLAG | WRAP_REARG_FLAG)) && (source[7].length <= source[8]) && (bitmask == WRAP_CURRY_FLAG));\n\n // Exit early if metadata can't be merged.\n if (!(isCommon || isCombo)) {\n return data;\n }\n // Use source `thisArg` if available.\n if (srcBitmask & WRAP_BIND_FLAG) {\n data[2] = source[2];\n // Set when currying a bound function.\n newBitmask |= bitmask & WRAP_BIND_FLAG ? 0 : WRAP_CURRY_BOUND_FLAG;\n }\n // Compose partial arguments.\n var value = source[3];\n if (value) {\n var partials = data[3];\n data[3] = partials ? composeArgs(partials, value, source[4]) : value;\n data[4] = partials ? replaceHolders(data[3], PLACEHOLDER) : source[4];\n }\n // Compose partial right arguments.\n value = source[5];\n if (value) {\n partials = data[5];\n data[5] = partials ? composeArgsRight(partials, value, source[6]) : value;\n data[6] = partials ? replaceHolders(data[5], PLACEHOLDER) : source[6];\n }\n // Use source `argPos` if available.\n value = source[7];\n if (value) {\n data[7] = value;\n }\n // Use source `ary` if it's smaller.\n if (srcBitmask & WRAP_ARY_FLAG) {\n data[8] = data[8] == null ? source[8] : nativeMin(data[8], source[8]);\n }\n // Use source `arity` if one is not provided.\n if (data[9] == null) {\n data[9] = source[9];\n }\n // Use source `func` and merge bitmasks.\n data[0] = source[0];\n data[1] = newBitmask;\n\n return data;\n }\n\n /**\n * This function is like\n * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * except that it includes inherited enumerable properties.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\n function nativeKeysIn(object) {\n var result = [];\n if (object != null) {\n for (var key in Object(object)) {\n result.push(key);\n }\n }\n return result;\n }\n\n /**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\n function objectToString(value) {\n return nativeObjectToString.call(value);\n }\n\n /**\n * A specialized version of `baseRest` which transforms the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @param {Function} transform The rest array transform.\n * @returns {Function} Returns the new function.\n */\n function overRest(func, start, transform) {\n start = nativeMax(start === undefined ? (func.length - 1) : start, 0);\n return function() {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n array = Array(length);\n\n while (++index < length) {\n array[index] = args[start + index];\n }\n index = -1;\n var otherArgs = Array(start + 1);\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = transform(array);\n return apply(func, this, otherArgs);\n };\n }\n\n /**\n * Gets the parent value at `path` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array} path The path to get the parent value of.\n * @returns {*} Returns the parent value.\n */\n function parent(object, path) {\n return path.length < 2 ? object : baseGet(object, baseSlice(path, 0, -1));\n }\n\n /**\n * Reorder `array` according to the specified indexes where the element at\n * the first index is assigned as the first element, the element at\n * the second index is assigned as the second element, and so on.\n *\n * @private\n * @param {Array} array The array to reorder.\n * @param {Array} indexes The arranged array indexes.\n * @returns {Array} Returns `array`.\n */\n function reorder(array, indexes) {\n var arrLength = array.length,\n length = nativeMin(indexes.length, arrLength),\n oldArray = copyArray(array);\n\n while (length--) {\n var index = indexes[length];\n array[length] = isIndex(index, arrLength) ? oldArray[index] : undefined;\n }\n return array;\n }\n\n /**\n * Gets the value at `key`, unless `key` is \"__proto__\" or \"constructor\".\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\n function safeGet(object, key) {\n if (key === 'constructor' && typeof object[key] === 'function') {\n return;\n }\n\n if (key == '__proto__') {\n return;\n }\n\n return object[key];\n }\n\n /**\n * Sets metadata for `func`.\n *\n * **Note:** If this function becomes hot, i.e. is invoked a lot in a short\n * period of time, it will trip its breaker and transition to an identity\n * function to avoid garbage collection pauses in V8. See\n * [V8 issue 2070](https://bugs.chromium.org/p/v8/issues/detail?id=2070)\n * for more details.\n *\n * @private\n * @param {Function} func The function to associate metadata with.\n * @param {*} data The metadata.\n * @returns {Function} Returns `func`.\n */\n var setData = shortOut(baseSetData);\n\n /**\n * A simple wrapper around the global [`setTimeout`](https://mdn.io/setTimeout).\n *\n * @private\n * @param {Function} func The function to delay.\n * @param {number} wait The number of milliseconds to delay invocation.\n * @returns {number|Object} Returns the timer id or timeout object.\n */\n var setTimeout = ctxSetTimeout || function(func, wait) {\n return root.setTimeout(func, wait);\n };\n\n /**\n * Sets the `toString` method of `func` to return `string`.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\n var setToString = shortOut(baseSetToString);\n\n /**\n * Sets the `toString` method of `wrapper` to mimic the source of `reference`\n * with wrapper details in a comment at the top of the source body.\n *\n * @private\n * @param {Function} wrapper The function to modify.\n * @param {Function} reference The reference function.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @returns {Function} Returns `wrapper`.\n */\n function setWrapToString(wrapper, reference, bitmask) {\n var source = (reference + '');\n return setToString(wrapper, insertWrapDetails(source, updateWrapDetails(getWrapDetails(source), bitmask)));\n }\n\n /**\n * Creates a function that'll short out and invoke `identity` instead\n * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN`\n * milliseconds.\n *\n * @private\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new shortable function.\n */\n function shortOut(func) {\n var count = 0,\n lastCalled = 0;\n\n return function() {\n var stamp = nativeNow(),\n remaining = HOT_SPAN - (stamp - lastCalled);\n\n lastCalled = stamp;\n if (remaining > 0) {\n if (++count >= HOT_COUNT) {\n return arguments[0];\n }\n } else {\n count = 0;\n }\n return func.apply(undefined, arguments);\n };\n }\n\n /**\n * A specialized version of `_.shuffle` which mutates and sets the size of `array`.\n *\n * @private\n * @param {Array} array The array to shuffle.\n * @param {number} [size=array.length] The size of `array`.\n * @returns {Array} Returns `array`.\n */\n function shuffleSelf(array, size) {\n var index = -1,\n length = array.length,\n lastIndex = length - 1;\n\n size = size === undefined ? length : size;\n while (++index < size) {\n var rand = baseRandom(index, lastIndex),\n value = array[rand];\n\n array[rand] = array[index];\n array[index] = value;\n }\n array.length = size;\n return array;\n }\n\n /**\n * Converts `string` to a property path array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the property path array.\n */\n var stringToPath = memoizeCapped(function(string) {\n var result = [];\n if (string.charCodeAt(0) === 46 /* . */) {\n result.push('');\n }\n string.replace(rePropName, function(match, number, quote, subString) {\n result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match));\n });\n return result;\n });\n\n /**\n * Converts `value` to a string key if it's not a string or symbol.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {string|symbol} Returns the key.\n */\n function toKey(value) {\n if (typeof value == 'string' || isSymbol(value)) {\n return value;\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n }\n\n /**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\n function toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n }\n\n /**\n * Updates wrapper `details` based on `bitmask` flags.\n *\n * @private\n * @returns {Array} details The details to modify.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @returns {Array} Returns `details`.\n */\n function updateWrapDetails(details, bitmask) {\n arrayEach(wrapFlags, function(pair) {\n var value = '_.' + pair[0];\n if ((bitmask & pair[1]) && !arrayIncludes(details, value)) {\n details.push(value);\n }\n });\n return details.sort();\n }\n\n /**\n * Creates a clone of `wrapper`.\n *\n * @private\n * @param {Object} wrapper The wrapper to clone.\n * @returns {Object} Returns the cloned wrapper.\n */\n function wrapperClone(wrapper) {\n if (wrapper instanceof LazyWrapper) {\n return wrapper.clone();\n }\n var result = new LodashWrapper(wrapper.__wrapped__, wrapper.__chain__);\n result.__actions__ = copyArray(wrapper.__actions__);\n result.__index__ = wrapper.__index__;\n result.__values__ = wrapper.__values__;\n return result;\n }\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates an array of elements split into groups the length of `size`.\n * If `array` can't be split evenly, the final chunk will be the remaining\n * elements.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to process.\n * @param {number} [size=1] The length of each chunk\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the new array of chunks.\n * @example\n *\n * _.chunk(['a', 'b', 'c', 'd'], 2);\n * // => [['a', 'b'], ['c', 'd']]\n *\n * _.chunk(['a', 'b', 'c', 'd'], 3);\n * // => [['a', 'b', 'c'], ['d']]\n */\n function chunk(array, size, guard) {\n if ((guard ? isIterateeCall(array, size, guard) : size === undefined)) {\n size = 1;\n } else {\n size = nativeMax(toInteger(size), 0);\n }\n var length = array == null ? 0 : array.length;\n if (!length || size < 1) {\n return [];\n }\n var index = 0,\n resIndex = 0,\n result = Array(nativeCeil(length / size));\n\n while (index < length) {\n result[resIndex++] = baseSlice(array, index, (index += size));\n }\n return result;\n }\n\n /**\n * Creates an array with all falsey values removed. The values `false`, `null`,\n * `0`, `\"\"`, `undefined`, and `NaN` are falsey.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to compact.\n * @returns {Array} Returns the new array of filtered values.\n * @example\n *\n * _.compact([0, 1, false, 2, '', 3]);\n * // => [1, 2, 3]\n */\n function compact(array) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (value) {\n result[resIndex++] = value;\n }\n }\n return result;\n }\n\n /**\n * Creates a new array concatenating `array` with any additional arrays\n * and/or values.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to concatenate.\n * @param {...*} [values] The values to concatenate.\n * @returns {Array} Returns the new concatenated array.\n * @example\n *\n * var array = [1];\n * var other = _.concat(array, 2, [3], [[4]]);\n *\n * console.log(other);\n * // => [1, 2, 3, [4]]\n *\n * console.log(array);\n * // => [1]\n */\n function concat() {\n var length = arguments.length;\n if (!length) {\n return [];\n }\n var args = Array(length - 1),\n array = arguments[0],\n index = length;\n\n while (index--) {\n args[index - 1] = arguments[index];\n }\n return arrayPush(isArray(array) ? copyArray(array) : [array], baseFlatten(args, 1));\n }\n\n /**\n * Creates an array of `array` values not included in the other given arrays\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons. The order and references of result values are\n * determined by the first array.\n *\n * **Note:** Unlike `_.pullAll`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {...Array} [values] The values to exclude.\n * @returns {Array} Returns the new array of filtered values.\n * @see _.without, _.xor\n * @example\n *\n * _.difference([2, 1], [2, 3]);\n * // => [1]\n */\n var difference = baseRest(function(array, values) {\n return isArrayLikeObject(array)\n ? baseDifference(array, baseFlatten(values, 1, isArrayLikeObject, true))\n : [];\n });\n\n /**\n * This method is like `_.difference` except that it accepts `iteratee` which\n * is invoked for each element of `array` and `values` to generate the criterion\n * by which they're compared. The order and references of result values are\n * determined by the first array. The iteratee is invoked with one argument:\n * (value).\n *\n * **Note:** Unlike `_.pullAllBy`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {...Array} [values] The values to exclude.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns the new array of filtered values.\n * @example\n *\n * _.differenceBy([2.1, 1.2], [2.3, 3.4], Math.floor);\n * // => [1.2]\n *\n * // The `_.property` iteratee shorthand.\n * _.differenceBy([{ 'x': 2 }, { 'x': 1 }], [{ 'x': 1 }], 'x');\n * // => [{ 'x': 2 }]\n */\n var differenceBy = baseRest(function(array, values) {\n var iteratee = last(values);\n if (isArrayLikeObject(iteratee)) {\n iteratee = undefined;\n }\n return isArrayLikeObject(array)\n ? baseDifference(array, baseFlatten(values, 1, isArrayLikeObject, true), getIteratee(iteratee, 2))\n : [];\n });\n\n /**\n * This method is like `_.difference` except that it accepts `comparator`\n * which is invoked to compare elements of `array` to `values`. The order and\n * references of result values are determined by the first array. The comparator\n * is invoked with two arguments: (arrVal, othVal).\n *\n * **Note:** Unlike `_.pullAllWith`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {...Array} [values] The values to exclude.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of filtered values.\n * @example\n *\n * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }];\n *\n * _.differenceWith(objects, [{ 'x': 1, 'y': 2 }], _.isEqual);\n * // => [{ 'x': 2, 'y': 1 }]\n */\n var differenceWith = baseRest(function(array, values) {\n var comparator = last(values);\n if (isArrayLikeObject(comparator)) {\n comparator = undefined;\n }\n return isArrayLikeObject(array)\n ? baseDifference(array, baseFlatten(values, 1, isArrayLikeObject, true), undefined, comparator)\n : [];\n });\n\n /**\n * Creates a slice of `array` with `n` elements dropped from the beginning.\n *\n * @static\n * @memberOf _\n * @since 0.5.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {number} [n=1] The number of elements to drop.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * _.drop([1, 2, 3]);\n * // => [2, 3]\n *\n * _.drop([1, 2, 3], 2);\n * // => [3]\n *\n * _.drop([1, 2, 3], 5);\n * // => []\n *\n * _.drop([1, 2, 3], 0);\n * // => [1, 2, 3]\n */\n function drop(array, n, guard) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return [];\n }\n n = (guard || n === undefined) ? 1 : toInteger(n);\n return baseSlice(array, n < 0 ? 0 : n, length);\n }\n\n /**\n * Creates a slice of `array` with `n` elements dropped from the end.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {number} [n=1] The number of elements to drop.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * _.dropRight([1, 2, 3]);\n * // => [1, 2]\n *\n * _.dropRight([1, 2, 3], 2);\n * // => [1]\n *\n * _.dropRight([1, 2, 3], 5);\n * // => []\n *\n * _.dropRight([1, 2, 3], 0);\n * // => [1, 2, 3]\n */\n function dropRight(array, n, guard) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return [];\n }\n n = (guard || n === undefined) ? 1 : toInteger(n);\n n = length - n;\n return baseSlice(array, 0, n < 0 ? 0 : n);\n }\n\n /**\n * Creates a slice of `array` excluding elements dropped from the end.\n * Elements are dropped until `predicate` returns falsey. The predicate is\n * invoked with three arguments: (value, index, array).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': true },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': false }\n * ];\n *\n * _.dropRightWhile(users, function(o) { return !o.active; });\n * // => objects for ['barney']\n *\n * // The `_.matches` iteratee shorthand.\n * _.dropRightWhile(users, { 'user': 'pebbles', 'active': false });\n * // => objects for ['barney', 'fred']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.dropRightWhile(users, ['active', false]);\n * // => objects for ['barney']\n *\n * // The `_.property` iteratee shorthand.\n * _.dropRightWhile(users, 'active');\n * // => objects for ['barney', 'fred', 'pebbles']\n */\n function dropRightWhile(array, predicate) {\n return (array && array.length)\n ? baseWhile(array, getIteratee(predicate, 3), true, true)\n : [];\n }\n\n /**\n * Creates a slice of `array` excluding elements dropped from the beginning.\n * Elements are dropped until `predicate` returns falsey. The predicate is\n * invoked with three arguments: (value, index, array).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': false },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': true }\n * ];\n *\n * _.dropWhile(users, function(o) { return !o.active; });\n * // => objects for ['pebbles']\n *\n * // The `_.matches` iteratee shorthand.\n * _.dropWhile(users, { 'user': 'barney', 'active': false });\n * // => objects for ['fred', 'pebbles']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.dropWhile(users, ['active', false]);\n * // => objects for ['pebbles']\n *\n * // The `_.property` iteratee shorthand.\n * _.dropWhile(users, 'active');\n * // => objects for ['barney', 'fred', 'pebbles']\n */\n function dropWhile(array, predicate) {\n return (array && array.length)\n ? baseWhile(array, getIteratee(predicate, 3), true)\n : [];\n }\n\n /**\n * Fills elements of `array` with `value` from `start` up to, but not\n * including, `end`.\n *\n * **Note:** This method mutates `array`.\n *\n * @static\n * @memberOf _\n * @since 3.2.0\n * @category Array\n * @param {Array} array The array to fill.\n * @param {*} value The value to fill `array` with.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns `array`.\n * @example\n *\n * var array = [1, 2, 3];\n *\n * _.fill(array, 'a');\n * console.log(array);\n * // => ['a', 'a', 'a']\n *\n * _.fill(Array(3), 2);\n * // => [2, 2, 2]\n *\n * _.fill([4, 6, 8, 10], '*', 1, 3);\n * // => [4, '*', '*', 10]\n */\n function fill(array, value, start, end) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return [];\n }\n if (start && typeof start != 'number' && isIterateeCall(array, value, start)) {\n start = 0;\n end = length;\n }\n return baseFill(array, value, start, end);\n }\n\n /**\n * This method is like `_.find` except that it returns the index of the first\n * element `predicate` returns truthy for instead of the element itself.\n *\n * @static\n * @memberOf _\n * @since 1.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param {number} [fromIndex=0] The index to search from.\n * @returns {number} Returns the index of the found element, else `-1`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': false },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': true }\n * ];\n *\n * _.findIndex(users, function(o) { return o.user == 'barney'; });\n * // => 0\n *\n * // The `_.matches` iteratee shorthand.\n * _.findIndex(users, { 'user': 'fred', 'active': false });\n * // => 1\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.findIndex(users, ['active', false]);\n * // => 0\n *\n * // The `_.property` iteratee shorthand.\n * _.findIndex(users, 'active');\n * // => 2\n */\n function findIndex(array, predicate, fromIndex) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return -1;\n }\n var index = fromIndex == null ? 0 : toInteger(fromIndex);\n if (index < 0) {\n index = nativeMax(length + index, 0);\n }\n return baseFindIndex(array, getIteratee(predicate, 3), index);\n }\n\n /**\n * This method is like `_.findIndex` except that it iterates over elements\n * of `collection` from right to left.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param {number} [fromIndex=array.length-1] The index to search from.\n * @returns {number} Returns the index of the found element, else `-1`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': true },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': false }\n * ];\n *\n * _.findLastIndex(users, function(o) { return o.user == 'pebbles'; });\n * // => 2\n *\n * // The `_.matches` iteratee shorthand.\n * _.findLastIndex(users, { 'user': 'barney', 'active': true });\n * // => 0\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.findLastIndex(users, ['active', false]);\n * // => 2\n *\n * // The `_.property` iteratee shorthand.\n * _.findLastIndex(users, 'active');\n * // => 0\n */\n function findLastIndex(array, predicate, fromIndex) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return -1;\n }\n var index = length - 1;\n if (fromIndex !== undefined) {\n index = toInteger(fromIndex);\n index = fromIndex < 0\n ? nativeMax(length + index, 0)\n : nativeMin(index, length - 1);\n }\n return baseFindIndex(array, getIteratee(predicate, 3), index, true);\n }\n\n /**\n * Flattens `array` a single level deep.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to flatten.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * _.flatten([1, [2, [3, [4]], 5]]);\n * // => [1, 2, [3, [4]], 5]\n */\n function flatten(array) {\n var length = array == null ? 0 : array.length;\n return length ? baseFlatten(array, 1) : [];\n }\n\n /**\n * Recursively flattens `array`.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to flatten.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * _.flattenDeep([1, [2, [3, [4]], 5]]);\n * // => [1, 2, 3, 4, 5]\n */\n function flattenDeep(array) {\n var length = array == null ? 0 : array.length;\n return length ? baseFlatten(array, INFINITY) : [];\n }\n\n /**\n * Recursively flatten `array` up to `depth` times.\n *\n * @static\n * @memberOf _\n * @since 4.4.0\n * @category Array\n * @param {Array} array The array to flatten.\n * @param {number} [depth=1] The maximum recursion depth.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * var array = [1, [2, [3, [4]], 5]];\n *\n * _.flattenDepth(array, 1);\n * // => [1, 2, [3, [4]], 5]\n *\n * _.flattenDepth(array, 2);\n * // => [1, 2, 3, [4], 5]\n */\n function flattenDepth(array, depth) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return [];\n }\n depth = depth === undefined ? 1 : toInteger(depth);\n return baseFlatten(array, depth);\n }\n\n /**\n * The inverse of `_.toPairs`; this method returns an object composed\n * from key-value `pairs`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} pairs The key-value pairs.\n * @returns {Object} Returns the new object.\n * @example\n *\n * _.fromPairs([['a', 1], ['b', 2]]);\n * // => { 'a': 1, 'b': 2 }\n */\n function fromPairs(pairs) {\n var index = -1,\n length = pairs == null ? 0 : pairs.length,\n result = {};\n\n while (++index < length) {\n var pair = pairs[index];\n result[pair[0]] = pair[1];\n }\n return result;\n }\n\n /**\n * Gets the first element of `array`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @alias first\n * @category Array\n * @param {Array} array The array to query.\n * @returns {*} Returns the first element of `array`.\n * @example\n *\n * _.head([1, 2, 3]);\n * // => 1\n *\n * _.head([]);\n * // => undefined\n */\n function head(array) {\n return (array && array.length) ? array[0] : undefined;\n }\n\n /**\n * Gets the index at which the first occurrence of `value` is found in `array`\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons. If `fromIndex` is negative, it's used as the\n * offset from the end of `array`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} [fromIndex=0] The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n * @example\n *\n * _.indexOf([1, 2, 1, 2], 2);\n * // => 1\n *\n * // Search from the `fromIndex`.\n * _.indexOf([1, 2, 1, 2], 2, 2);\n * // => 3\n */\n function indexOf(array, value, fromIndex) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return -1;\n }\n var index = fromIndex == null ? 0 : toInteger(fromIndex);\n if (index < 0) {\n index = nativeMax(length + index, 0);\n }\n return baseIndexOf(array, value, index);\n }\n\n /**\n * Gets all but the last element of `array`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to query.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * _.initial([1, 2, 3]);\n * // => [1, 2]\n */\n function initial(array) {\n var length = array == null ? 0 : array.length;\n return length ? baseSlice(array, 0, -1) : [];\n }\n\n /**\n * Creates an array of unique values that are included in all given arrays\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons. The order and references of result values are\n * determined by the first array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @returns {Array} Returns the new array of intersecting values.\n * @example\n *\n * _.intersection([2, 1], [2, 3]);\n * // => [2]\n */\n var intersection = baseRest(function(arrays) {\n var mapped = arrayMap(arrays, castArrayLikeObject);\n return (mapped.length && mapped[0] === arrays[0])\n ? baseIntersection(mapped)\n : [];\n });\n\n /**\n * This method is like `_.intersection` except that it accepts `iteratee`\n * which is invoked for each element of each `arrays` to generate the criterion\n * by which they're compared. The order and references of result values are\n * determined by the first array. The iteratee is invoked with one argument:\n * (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns the new array of intersecting values.\n * @example\n *\n * _.intersectionBy([2.1, 1.2], [2.3, 3.4], Math.floor);\n * // => [2.1]\n *\n * // The `_.property` iteratee shorthand.\n * _.intersectionBy([{ 'x': 1 }], [{ 'x': 2 }, { 'x': 1 }], 'x');\n * // => [{ 'x': 1 }]\n */\n var intersectionBy = baseRest(function(arrays) {\n var iteratee = last(arrays),\n mapped = arrayMap(arrays, castArrayLikeObject);\n\n if (iteratee === last(mapped)) {\n iteratee = undefined;\n } else {\n mapped.pop();\n }\n return (mapped.length && mapped[0] === arrays[0])\n ? baseIntersection(mapped, getIteratee(iteratee, 2))\n : [];\n });\n\n /**\n * This method is like `_.intersection` except that it accepts `comparator`\n * which is invoked to compare elements of `arrays`. The order and references\n * of result values are determined by the first array. The comparator is\n * invoked with two arguments: (arrVal, othVal).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of intersecting values.\n * @example\n *\n * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }];\n * var others = [{ 'x': 1, 'y': 1 }, { 'x': 1, 'y': 2 }];\n *\n * _.intersectionWith(objects, others, _.isEqual);\n * // => [{ 'x': 1, 'y': 2 }]\n */\n var intersectionWith = baseRest(function(arrays) {\n var comparator = last(arrays),\n mapped = arrayMap(arrays, castArrayLikeObject);\n\n comparator = typeof comparator == 'function' ? comparator : undefined;\n if (comparator) {\n mapped.pop();\n }\n return (mapped.length && mapped[0] === arrays[0])\n ? baseIntersection(mapped, undefined, comparator)\n : [];\n });\n\n /**\n * Converts all elements in `array` into a string separated by `separator`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to convert.\n * @param {string} [separator=','] The element separator.\n * @returns {string} Returns the joined string.\n * @example\n *\n * _.join(['a', 'b', 'c'], '~');\n * // => 'a~b~c'\n */\n function join(array, separator) {\n return array == null ? '' : nativeJoin.call(array, separator);\n }\n\n /**\n * Gets the last element of `array`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to query.\n * @returns {*} Returns the last element of `array`.\n * @example\n *\n * _.last([1, 2, 3]);\n * // => 3\n */\n function last(array) {\n var length = array == null ? 0 : array.length;\n return length ? array[length - 1] : undefined;\n }\n\n /**\n * This method is like `_.indexOf` except that it iterates over elements of\n * `array` from right to left.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} [fromIndex=array.length-1] The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n * @example\n *\n * _.lastIndexOf([1, 2, 1, 2], 2);\n * // => 3\n *\n * // Search from the `fromIndex`.\n * _.lastIndexOf([1, 2, 1, 2], 2, 2);\n * // => 1\n */\n function lastIndexOf(array, value, fromIndex) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return -1;\n }\n var index = length;\n if (fromIndex !== undefined) {\n index = toInteger(fromIndex);\n index = index < 0 ? nativeMax(length + index, 0) : nativeMin(index, length - 1);\n }\n return value === value\n ? strictLastIndexOf(array, value, index)\n : baseFindIndex(array, baseIsNaN, index, true);\n }\n\n /**\n * Gets the element at index `n` of `array`. If `n` is negative, the nth\n * element from the end is returned.\n *\n * @static\n * @memberOf _\n * @since 4.11.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {number} [n=0] The index of the element to return.\n * @returns {*} Returns the nth element of `array`.\n * @example\n *\n * var array = ['a', 'b', 'c', 'd'];\n *\n * _.nth(array, 1);\n * // => 'b'\n *\n * _.nth(array, -2);\n * // => 'c';\n */\n function nth(array, n) {\n return (array && array.length) ? baseNth(array, toInteger(n)) : undefined;\n }\n\n /**\n * Removes all given values from `array` using\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * **Note:** Unlike `_.without`, this method mutates `array`. Use `_.remove`\n * to remove elements from an array by predicate.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Array\n * @param {Array} array The array to modify.\n * @param {...*} [values] The values to remove.\n * @returns {Array} Returns `array`.\n * @example\n *\n * var array = ['a', 'b', 'c', 'a', 'b', 'c'];\n *\n * _.pull(array, 'a', 'c');\n * console.log(array);\n * // => ['b', 'b']\n */\n var pull = baseRest(pullAll);\n\n /**\n * This method is like `_.pull` except that it accepts an array of values to remove.\n *\n * **Note:** Unlike `_.difference`, this method mutates `array`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to modify.\n * @param {Array} values The values to remove.\n * @returns {Array} Returns `array`.\n * @example\n *\n * var array = ['a', 'b', 'c', 'a', 'b', 'c'];\n *\n * _.pullAll(array, ['a', 'c']);\n * console.log(array);\n * // => ['b', 'b']\n */\n function pullAll(array, values) {\n return (array && array.length && values && values.length)\n ? basePullAll(array, values)\n : array;\n }\n\n /**\n * This method is like `_.pullAll` except that it accepts `iteratee` which is\n * invoked for each element of `array` and `values` to generate the criterion\n * by which they're compared. The iteratee is invoked with one argument: (value).\n *\n * **Note:** Unlike `_.differenceBy`, this method mutates `array`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to modify.\n * @param {Array} values The values to remove.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns `array`.\n * @example\n *\n * var array = [{ 'x': 1 }, { 'x': 2 }, { 'x': 3 }, { 'x': 1 }];\n *\n * _.pullAllBy(array, [{ 'x': 1 }, { 'x': 3 }], 'x');\n * console.log(array);\n * // => [{ 'x': 2 }]\n */\n function pullAllBy(array, values, iteratee) {\n return (array && array.length && values && values.length)\n ? basePullAll(array, values, getIteratee(iteratee, 2))\n : array;\n }\n\n /**\n * This method is like `_.pullAll` except that it accepts `comparator` which\n * is invoked to compare elements of `array` to `values`. The comparator is\n * invoked with two arguments: (arrVal, othVal).\n *\n * **Note:** Unlike `_.differenceWith`, this method mutates `array`.\n *\n * @static\n * @memberOf _\n * @since 4.6.0\n * @category Array\n * @param {Array} array The array to modify.\n * @param {Array} values The values to remove.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns `array`.\n * @example\n *\n * var array = [{ 'x': 1, 'y': 2 }, { 'x': 3, 'y': 4 }, { 'x': 5, 'y': 6 }];\n *\n * _.pullAllWith(array, [{ 'x': 3, 'y': 4 }], _.isEqual);\n * console.log(array);\n * // => [{ 'x': 1, 'y': 2 }, { 'x': 5, 'y': 6 }]\n */\n function pullAllWith(array, values, comparator) {\n return (array && array.length && values && values.length)\n ? basePullAll(array, values, undefined, comparator)\n : array;\n }\n\n /**\n * Removes elements from `array` corresponding to `indexes` and returns an\n * array of removed elements.\n *\n * **Note:** Unlike `_.at`, this method mutates `array`.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to modify.\n * @param {...(number|number[])} [indexes] The indexes of elements to remove.\n * @returns {Array} Returns the new array of removed elements.\n * @example\n *\n * var array = ['a', 'b', 'c', 'd'];\n * var pulled = _.pullAt(array, [1, 3]);\n *\n * console.log(array);\n * // => ['a', 'c']\n *\n * console.log(pulled);\n * // => ['b', 'd']\n */\n var pullAt = flatRest(function(array, indexes) {\n var length = array == null ? 0 : array.length,\n result = baseAt(array, indexes);\n\n basePullAt(array, arrayMap(indexes, function(index) {\n return isIndex(index, length) ? +index : index;\n }).sort(compareAscending));\n\n return result;\n });\n\n /**\n * Removes all elements from `array` that `predicate` returns truthy for\n * and returns an array of the removed elements. The predicate is invoked\n * with three arguments: (value, index, array).\n *\n * **Note:** Unlike `_.filter`, this method mutates `array`. Use `_.pull`\n * to pull elements from an array by value.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Array\n * @param {Array} array The array to modify.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new array of removed elements.\n * @example\n *\n * var array = [1, 2, 3, 4];\n * var evens = _.remove(array, function(n) {\n * return n % 2 == 0;\n * });\n *\n * console.log(array);\n * // => [1, 3]\n *\n * console.log(evens);\n * // => [2, 4]\n */\n function remove(array, predicate) {\n var result = [];\n if (!(array && array.length)) {\n return result;\n }\n var index = -1,\n indexes = [],\n length = array.length;\n\n predicate = getIteratee(predicate, 3);\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result.push(value);\n indexes.push(index);\n }\n }\n basePullAt(array, indexes);\n return result;\n }\n\n /**\n * Reverses `array` so that the first element becomes the last, the second\n * element becomes the second to last, and so on.\n *\n * **Note:** This method mutates `array` and is based on\n * [`Array#reverse`](https://mdn.io/Array/reverse).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to modify.\n * @returns {Array} Returns `array`.\n * @example\n *\n * var array = [1, 2, 3];\n *\n * _.reverse(array);\n * // => [3, 2, 1]\n *\n * console.log(array);\n * // => [3, 2, 1]\n */\n function reverse(array) {\n return array == null ? array : nativeReverse.call(array);\n }\n\n /**\n * Creates a slice of `array` from `start` up to, but not including, `end`.\n *\n * **Note:** This method is used instead of\n * [`Array#slice`](https://mdn.io/Array/slice) to ensure dense arrays are\n * returned.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to slice.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the slice of `array`.\n */\n function slice(array, start, end) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return [];\n }\n if (end && typeof end != 'number' && isIterateeCall(array, start, end)) {\n start = 0;\n end = length;\n }\n else {\n start = start == null ? 0 : toInteger(start);\n end = end === undefined ? length : toInteger(end);\n }\n return baseSlice(array, start, end);\n }\n\n /**\n * Uses a binary search to determine the lowest index at which `value`\n * should be inserted into `array` in order to maintain its sort order.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The sorted array to inspect.\n * @param {*} value The value to evaluate.\n * @returns {number} Returns the index at which `value` should be inserted\n * into `array`.\n * @example\n *\n * _.sortedIndex([30, 50], 40);\n * // => 1\n */\n function sortedIndex(array, value) {\n return baseSortedIndex(array, value);\n }\n\n /**\n * This method is like `_.sortedIndex` except that it accepts `iteratee`\n * which is invoked for `value` and each element of `array` to compute their\n * sort ranking. The iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The sorted array to inspect.\n * @param {*} value The value to evaluate.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {number} Returns the index at which `value` should be inserted\n * into `array`.\n * @example\n *\n * var objects = [{ 'x': 4 }, { 'x': 5 }];\n *\n * _.sortedIndexBy(objects, { 'x': 4 }, function(o) { return o.x; });\n * // => 0\n *\n * // The `_.property` iteratee shorthand.\n * _.sortedIndexBy(objects, { 'x': 4 }, 'x');\n * // => 0\n */\n function sortedIndexBy(array, value, iteratee) {\n return baseSortedIndexBy(array, value, getIteratee(iteratee, 2));\n }\n\n /**\n * This method is like `_.indexOf` except that it performs a binary\n * search on a sorted `array`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n * @example\n *\n * _.sortedIndexOf([4, 5, 5, 5, 6], 5);\n * // => 1\n */\n function sortedIndexOf(array, value) {\n var length = array == null ? 0 : array.length;\n if (length) {\n var index = baseSortedIndex(array, value);\n if (index < length && eq(array[index], value)) {\n return index;\n }\n }\n return -1;\n }\n\n /**\n * This method is like `_.sortedIndex` except that it returns the highest\n * index at which `value` should be inserted into `array` in order to\n * maintain its sort order.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The sorted array to inspect.\n * @param {*} value The value to evaluate.\n * @returns {number} Returns the index at which `value` should be inserted\n * into `array`.\n * @example\n *\n * _.sortedLastIndex([4, 5, 5, 5, 6], 5);\n * // => 4\n */\n function sortedLastIndex(array, value) {\n return baseSortedIndex(array, value, true);\n }\n\n /**\n * This method is like `_.sortedLastIndex` except that it accepts `iteratee`\n * which is invoked for `value` and each element of `array` to compute their\n * sort ranking. The iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The sorted array to inspect.\n * @param {*} value The value to evaluate.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {number} Returns the index at which `value` should be inserted\n * into `array`.\n * @example\n *\n * var objects = [{ 'x': 4 }, { 'x': 5 }];\n *\n * _.sortedLastIndexBy(objects, { 'x': 4 }, function(o) { return o.x; });\n * // => 1\n *\n * // The `_.property` iteratee shorthand.\n * _.sortedLastIndexBy(objects, { 'x': 4 }, 'x');\n * // => 1\n */\n function sortedLastIndexBy(array, value, iteratee) {\n return baseSortedIndexBy(array, value, getIteratee(iteratee, 2), true);\n }\n\n /**\n * This method is like `_.lastIndexOf` except that it performs a binary\n * search on a sorted `array`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n * @example\n *\n * _.sortedLastIndexOf([4, 5, 5, 5, 6], 5);\n * // => 3\n */\n function sortedLastIndexOf(array, value) {\n var length = array == null ? 0 : array.length;\n if (length) {\n var index = baseSortedIndex(array, value, true) - 1;\n if (eq(array[index], value)) {\n return index;\n }\n }\n return -1;\n }\n\n /**\n * This method is like `_.uniq` except that it's designed and optimized\n * for sorted arrays.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * _.sortedUniq([1, 1, 2]);\n * // => [1, 2]\n */\n function sortedUniq(array) {\n return (array && array.length)\n ? baseSortedUniq(array)\n : [];\n }\n\n /**\n * This method is like `_.uniqBy` except that it's designed and optimized\n * for sorted arrays.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * _.sortedUniqBy([1.1, 1.2, 2.3, 2.4], Math.floor);\n * // => [1.1, 2.3]\n */\n function sortedUniqBy(array, iteratee) {\n return (array && array.length)\n ? baseSortedUniq(array, getIteratee(iteratee, 2))\n : [];\n }\n\n /**\n * Gets all but the first element of `array`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to query.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * _.tail([1, 2, 3]);\n * // => [2, 3]\n */\n function tail(array) {\n var length = array == null ? 0 : array.length;\n return length ? baseSlice(array, 1, length) : [];\n }\n\n /**\n * Creates a slice of `array` with `n` elements taken from the beginning.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {number} [n=1] The number of elements to take.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * _.take([1, 2, 3]);\n * // => [1]\n *\n * _.take([1, 2, 3], 2);\n * // => [1, 2]\n *\n * _.take([1, 2, 3], 5);\n * // => [1, 2, 3]\n *\n * _.take([1, 2, 3], 0);\n * // => []\n */\n function take(array, n, guard) {\n if (!(array && array.length)) {\n return [];\n }\n n = (guard || n === undefined) ? 1 : toInteger(n);\n return baseSlice(array, 0, n < 0 ? 0 : n);\n }\n\n /**\n * Creates a slice of `array` with `n` elements taken from the end.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {number} [n=1] The number of elements to take.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * _.takeRight([1, 2, 3]);\n * // => [3]\n *\n * _.takeRight([1, 2, 3], 2);\n * // => [2, 3]\n *\n * _.takeRight([1, 2, 3], 5);\n * // => [1, 2, 3]\n *\n * _.takeRight([1, 2, 3], 0);\n * // => []\n */\n function takeRight(array, n, guard) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return [];\n }\n n = (guard || n === undefined) ? 1 : toInteger(n);\n n = length - n;\n return baseSlice(array, n < 0 ? 0 : n, length);\n }\n\n /**\n * Creates a slice of `array` with elements taken from the end. Elements are\n * taken until `predicate` returns falsey. The predicate is invoked with\n * three arguments: (value, index, array).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': true },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': false }\n * ];\n *\n * _.takeRightWhile(users, function(o) { return !o.active; });\n * // => objects for ['fred', 'pebbles']\n *\n * // The `_.matches` iteratee shorthand.\n * _.takeRightWhile(users, { 'user': 'pebbles', 'active': false });\n * // => objects for ['pebbles']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.takeRightWhile(users, ['active', false]);\n * // => objects for ['fred', 'pebbles']\n *\n * // The `_.property` iteratee shorthand.\n * _.takeRightWhile(users, 'active');\n * // => []\n */\n function takeRightWhile(array, predicate) {\n return (array && array.length)\n ? baseWhile(array, getIteratee(predicate, 3), false, true)\n : [];\n }\n\n /**\n * Creates a slice of `array` with elements taken from the beginning. Elements\n * are taken until `predicate` returns falsey. The predicate is invoked with\n * three arguments: (value, index, array).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': false },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': true }\n * ];\n *\n * _.takeWhile(users, function(o) { return !o.active; });\n * // => objects for ['barney', 'fred']\n *\n * // The `_.matches` iteratee shorthand.\n * _.takeWhile(users, { 'user': 'barney', 'active': false });\n * // => objects for ['barney']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.takeWhile(users, ['active', false]);\n * // => objects for ['barney', 'fred']\n *\n * // The `_.property` iteratee shorthand.\n * _.takeWhile(users, 'active');\n * // => []\n */\n function takeWhile(array, predicate) {\n return (array && array.length)\n ? baseWhile(array, getIteratee(predicate, 3))\n : [];\n }\n\n /**\n * Creates an array of unique values, in order, from all given arrays using\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @returns {Array} Returns the new array of combined values.\n * @example\n *\n * _.union([2], [1, 2]);\n * // => [2, 1]\n */\n var union = baseRest(function(arrays) {\n return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true));\n });\n\n /**\n * This method is like `_.union` except that it accepts `iteratee` which is\n * invoked for each element of each `arrays` to generate the criterion by\n * which uniqueness is computed. Result values are chosen from the first\n * array in which the value occurs. The iteratee is invoked with one argument:\n * (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns the new array of combined values.\n * @example\n *\n * _.unionBy([2.1], [1.2, 2.3], Math.floor);\n * // => [2.1, 1.2]\n *\n * // The `_.property` iteratee shorthand.\n * _.unionBy([{ 'x': 1 }], [{ 'x': 2 }, { 'x': 1 }], 'x');\n * // => [{ 'x': 1 }, { 'x': 2 }]\n */\n var unionBy = baseRest(function(arrays) {\n var iteratee = last(arrays);\n if (isArrayLikeObject(iteratee)) {\n iteratee = undefined;\n }\n return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true), getIteratee(iteratee, 2));\n });\n\n /**\n * This method is like `_.union` except that it accepts `comparator` which\n * is invoked to compare elements of `arrays`. Result values are chosen from\n * the first array in which the value occurs. The comparator is invoked\n * with two arguments: (arrVal, othVal).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of combined values.\n * @example\n *\n * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }];\n * var others = [{ 'x': 1, 'y': 1 }, { 'x': 1, 'y': 2 }];\n *\n * _.unionWith(objects, others, _.isEqual);\n * // => [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }, { 'x': 1, 'y': 1 }]\n */\n var unionWith = baseRest(function(arrays) {\n var comparator = last(arrays);\n comparator = typeof comparator == 'function' ? comparator : undefined;\n return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true), undefined, comparator);\n });\n\n /**\n * Creates a duplicate-free version of an array, using\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons, in which only the first occurrence of each element\n * is kept. The order of result values is determined by the order they occur\n * in the array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * _.uniq([2, 1, 2]);\n * // => [2, 1]\n */\n function uniq(array) {\n return (array && array.length) ? baseUniq(array) : [];\n }\n\n /**\n * This method is like `_.uniq` except that it accepts `iteratee` which is\n * invoked for each element in `array` to generate the criterion by which\n * uniqueness is computed. The order of result values is determined by the\n * order they occur in the array. The iteratee is invoked with one argument:\n * (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * _.uniqBy([2.1, 1.2, 2.3], Math.floor);\n * // => [2.1, 1.2]\n *\n * // The `_.property` iteratee shorthand.\n * _.uniqBy([{ 'x': 1 }, { 'x': 2 }, { 'x': 1 }], 'x');\n * // => [{ 'x': 1 }, { 'x': 2 }]\n */\n function uniqBy(array, iteratee) {\n return (array && array.length) ? baseUniq(array, getIteratee(iteratee, 2)) : [];\n }\n\n /**\n * This method is like `_.uniq` except that it accepts `comparator` which\n * is invoked to compare elements of `array`. The order of result values is\n * determined by the order they occur in the array.The comparator is invoked\n * with two arguments: (arrVal, othVal).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }, { 'x': 1, 'y': 2 }];\n *\n * _.uniqWith(objects, _.isEqual);\n * // => [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }]\n */\n function uniqWith(array, comparator) {\n comparator = typeof comparator == 'function' ? comparator : undefined;\n return (array && array.length) ? baseUniq(array, undefined, comparator) : [];\n }\n\n /**\n * This method is like `_.zip` except that it accepts an array of grouped\n * elements and creates an array regrouping the elements to their pre-zip\n * configuration.\n *\n * @static\n * @memberOf _\n * @since 1.2.0\n * @category Array\n * @param {Array} array The array of grouped elements to process.\n * @returns {Array} Returns the new array of regrouped elements.\n * @example\n *\n * var zipped = _.zip(['a', 'b'], [1, 2], [true, false]);\n * // => [['a', 1, true], ['b', 2, false]]\n *\n * _.unzip(zipped);\n * // => [['a', 'b'], [1, 2], [true, false]]\n */\n function unzip(array) {\n if (!(array && array.length)) {\n return [];\n }\n var length = 0;\n array = arrayFilter(array, function(group) {\n if (isArrayLikeObject(group)) {\n length = nativeMax(group.length, length);\n return true;\n }\n });\n return baseTimes(length, function(index) {\n return arrayMap(array, baseProperty(index));\n });\n }\n\n /**\n * This method is like `_.unzip` except that it accepts `iteratee` to specify\n * how regrouped values should be combined. The iteratee is invoked with the\n * elements of each group: (...group).\n *\n * @static\n * @memberOf _\n * @since 3.8.0\n * @category Array\n * @param {Array} array The array of grouped elements to process.\n * @param {Function} [iteratee=_.identity] The function to combine\n * regrouped values.\n * @returns {Array} Returns the new array of regrouped elements.\n * @example\n *\n * var zipped = _.zip([1, 2], [10, 20], [100, 200]);\n * // => [[1, 10, 100], [2, 20, 200]]\n *\n * _.unzipWith(zipped, _.add);\n * // => [3, 30, 300]\n */\n function unzipWith(array, iteratee) {\n if (!(array && array.length)) {\n return [];\n }\n var result = unzip(array);\n if (iteratee == null) {\n return result;\n }\n return arrayMap(result, function(group) {\n return apply(iteratee, undefined, group);\n });\n }\n\n /**\n * Creates an array excluding all given values using\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * **Note:** Unlike `_.pull`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {...*} [values] The values to exclude.\n * @returns {Array} Returns the new array of filtered values.\n * @see _.difference, _.xor\n * @example\n *\n * _.without([2, 1, 2, 3], 1, 2);\n * // => [3]\n */\n var without = baseRest(function(array, values) {\n return isArrayLikeObject(array)\n ? baseDifference(array, values)\n : [];\n });\n\n /**\n * Creates an array of unique values that is the\n * [symmetric difference](https://en.wikipedia.org/wiki/Symmetric_difference)\n * of the given arrays. The order of result values is determined by the order\n * they occur in the arrays.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @returns {Array} Returns the new array of filtered values.\n * @see _.difference, _.without\n * @example\n *\n * _.xor([2, 1], [2, 3]);\n * // => [1, 3]\n */\n var xor = baseRest(function(arrays) {\n return baseXor(arrayFilter(arrays, isArrayLikeObject));\n });\n\n /**\n * This method is like `_.xor` except that it accepts `iteratee` which is\n * invoked for each element of each `arrays` to generate the criterion by\n * which by which they're compared. The order of result values is determined\n * by the order they occur in the arrays. The iteratee is invoked with one\n * argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns the new array of filtered values.\n * @example\n *\n * _.xorBy([2.1, 1.2], [2.3, 3.4], Math.floor);\n * // => [1.2, 3.4]\n *\n * // The `_.property` iteratee shorthand.\n * _.xorBy([{ 'x': 1 }], [{ 'x': 2 }, { 'x': 1 }], 'x');\n * // => [{ 'x': 2 }]\n */\n var xorBy = baseRest(function(arrays) {\n var iteratee = last(arrays);\n if (isArrayLikeObject(iteratee)) {\n iteratee = undefined;\n }\n return baseXor(arrayFilter(arrays, isArrayLikeObject), getIteratee(iteratee, 2));\n });\n\n /**\n * This method is like `_.xor` except that it accepts `comparator` which is\n * invoked to compare elements of `arrays`. The order of result values is\n * determined by the order they occur in the arrays. The comparator is invoked\n * with two arguments: (arrVal, othVal).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of filtered values.\n * @example\n *\n * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }];\n * var others = [{ 'x': 1, 'y': 1 }, { 'x': 1, 'y': 2 }];\n *\n * _.xorWith(objects, others, _.isEqual);\n * // => [{ 'x': 2, 'y': 1 }, { 'x': 1, 'y': 1 }]\n */\n var xorWith = baseRest(function(arrays) {\n var comparator = last(arrays);\n comparator = typeof comparator == 'function' ? comparator : undefined;\n return baseXor(arrayFilter(arrays, isArrayLikeObject), undefined, comparator);\n });\n\n /**\n * Creates an array of grouped elements, the first of which contains the\n * first elements of the given arrays, the second of which contains the\n * second elements of the given arrays, and so on.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {...Array} [arrays] The arrays to process.\n * @returns {Array} Returns the new array of grouped elements.\n * @example\n *\n * _.zip(['a', 'b'], [1, 2], [true, false]);\n * // => [['a', 1, true], ['b', 2, false]]\n */\n var zip = baseRest(unzip);\n\n /**\n * This method is like `_.fromPairs` except that it accepts two arrays,\n * one of property identifiers and one of corresponding values.\n *\n * @static\n * @memberOf _\n * @since 0.4.0\n * @category Array\n * @param {Array} [props=[]] The property identifiers.\n * @param {Array} [values=[]] The property values.\n * @returns {Object} Returns the new object.\n * @example\n *\n * _.zipObject(['a', 'b'], [1, 2]);\n * // => { 'a': 1, 'b': 2 }\n */\n function zipObject(props, values) {\n return baseZipObject(props || [], values || [], assignValue);\n }\n\n /**\n * This method is like `_.zipObject` except that it supports property paths.\n *\n * @static\n * @memberOf _\n * @since 4.1.0\n * @category Array\n * @param {Array} [props=[]] The property identifiers.\n * @param {Array} [values=[]] The property values.\n * @returns {Object} Returns the new object.\n * @example\n *\n * _.zipObjectDeep(['a.b[0].c', 'a.b[1].d'], [1, 2]);\n * // => { 'a': { 'b': [{ 'c': 1 }, { 'd': 2 }] } }\n */\n function zipObjectDeep(props, values) {\n return baseZipObject(props || [], values || [], baseSet);\n }\n\n /**\n * This method is like `_.zip` except that it accepts `iteratee` to specify\n * how grouped values should be combined. The iteratee is invoked with the\n * elements of each group: (...group).\n *\n * @static\n * @memberOf _\n * @since 3.8.0\n * @category Array\n * @param {...Array} [arrays] The arrays to process.\n * @param {Function} [iteratee=_.identity] The function to combine\n * grouped values.\n * @returns {Array} Returns the new array of grouped elements.\n * @example\n *\n * _.zipWith([1, 2], [10, 20], [100, 200], function(a, b, c) {\n * return a + b + c;\n * });\n * // => [111, 222]\n */\n var zipWith = baseRest(function(arrays) {\n var length = arrays.length,\n iteratee = length > 1 ? arrays[length - 1] : undefined;\n\n iteratee = typeof iteratee == 'function' ? (arrays.pop(), iteratee) : undefined;\n return unzipWith(arrays, iteratee);\n });\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates a `lodash` wrapper instance that wraps `value` with explicit method\n * chain sequences enabled. The result of such sequences must be unwrapped\n * with `_#value`.\n *\n * @static\n * @memberOf _\n * @since 1.3.0\n * @category Seq\n * @param {*} value The value to wrap.\n * @returns {Object} Returns the new `lodash` wrapper instance.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36 },\n * { 'user': 'fred', 'age': 40 },\n * { 'user': 'pebbles', 'age': 1 }\n * ];\n *\n * var youngest = _\n * .chain(users)\n * .sortBy('age')\n * .map(function(o) {\n * return o.user + ' is ' + o.age;\n * })\n * .head()\n * .value();\n * // => 'pebbles is 1'\n */\n function chain(value) {\n var result = lodash(value);\n result.__chain__ = true;\n return result;\n }\n\n /**\n * This method invokes `interceptor` and returns `value`. The interceptor\n * is invoked with one argument; (value). The purpose of this method is to\n * \"tap into\" a method chain sequence in order to modify intermediate results.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Seq\n * @param {*} value The value to provide to `interceptor`.\n * @param {Function} interceptor The function to invoke.\n * @returns {*} Returns `value`.\n * @example\n *\n * _([1, 2, 3])\n * .tap(function(array) {\n * // Mutate input array.\n * array.pop();\n * })\n * .reverse()\n * .value();\n * // => [2, 1]\n */\n function tap(value, interceptor) {\n interceptor(value);\n return value;\n }\n\n /**\n * This method is like `_.tap` except that it returns the result of `interceptor`.\n * The purpose of this method is to \"pass thru\" values replacing intermediate\n * results in a method chain sequence.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Seq\n * @param {*} value The value to provide to `interceptor`.\n * @param {Function} interceptor The function to invoke.\n * @returns {*} Returns the result of `interceptor`.\n * @example\n *\n * _(' abc ')\n * .chain()\n * .trim()\n * .thru(function(value) {\n * return [value];\n * })\n * .value();\n * // => ['abc']\n */\n function thru(value, interceptor) {\n return interceptor(value);\n }\n\n /**\n * This method is the wrapper version of `_.at`.\n *\n * @name at\n * @memberOf _\n * @since 1.0.0\n * @category Seq\n * @param {...(string|string[])} [paths] The property paths to pick.\n * @returns {Object} Returns the new `lodash` wrapper instance.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }, 4] };\n *\n * _(object).at(['a[0].b.c', 'a[1]']).value();\n * // => [3, 4]\n */\n var wrapperAt = flatRest(function(paths) {\n var length = paths.length,\n start = length ? paths[0] : 0,\n value = this.__wrapped__,\n interceptor = function(object) { return baseAt(object, paths); };\n\n if (length > 1 || this.__actions__.length ||\n !(value instanceof LazyWrapper) || !isIndex(start)) {\n return this.thru(interceptor);\n }\n value = value.slice(start, +start + (length ? 1 : 0));\n value.__actions__.push({\n 'func': thru,\n 'args': [interceptor],\n 'thisArg': undefined\n });\n return new LodashWrapper(value, this.__chain__).thru(function(array) {\n if (length && !array.length) {\n array.push(undefined);\n }\n return array;\n });\n });\n\n /**\n * Creates a `lodash` wrapper instance with explicit method chain sequences enabled.\n *\n * @name chain\n * @memberOf _\n * @since 0.1.0\n * @category Seq\n * @returns {Object} Returns the new `lodash` wrapper instance.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36 },\n * { 'user': 'fred', 'age': 40 }\n * ];\n *\n * // A sequence without explicit chaining.\n * _(users).head();\n * // => { 'user': 'barney', 'age': 36 }\n *\n * // A sequence with explicit chaining.\n * _(users)\n * .chain()\n * .head()\n * .pick('user')\n * .value();\n * // => { 'user': 'barney' }\n */\n function wrapperChain() {\n return chain(this);\n }\n\n /**\n * Executes the chain sequence and returns the wrapped result.\n *\n * @name commit\n * @memberOf _\n * @since 3.2.0\n * @category Seq\n * @returns {Object} Returns the new `lodash` wrapper instance.\n * @example\n *\n * var array = [1, 2];\n * var wrapped = _(array).push(3);\n *\n * console.log(array);\n * // => [1, 2]\n *\n * wrapped = wrapped.commit();\n * console.log(array);\n * // => [1, 2, 3]\n *\n * wrapped.last();\n * // => 3\n *\n * console.log(array);\n * // => [1, 2, 3]\n */\n function wrapperCommit() {\n return new LodashWrapper(this.value(), this.__chain__);\n }\n\n /**\n * Gets the next value on a wrapped object following the\n * [iterator protocol](https://mdn.io/iteration_protocols#iterator).\n *\n * @name next\n * @memberOf _\n * @since 4.0.0\n * @category Seq\n * @returns {Object} Returns the next iterator value.\n * @example\n *\n * var wrapped = _([1, 2]);\n *\n * wrapped.next();\n * // => { 'done': false, 'value': 1 }\n *\n * wrapped.next();\n * // => { 'done': false, 'value': 2 }\n *\n * wrapped.next();\n * // => { 'done': true, 'value': undefined }\n */\n function wrapperNext() {\n if (this.__values__ === undefined) {\n this.__values__ = toArray(this.value());\n }\n var done = this.__index__ >= this.__values__.length,\n value = done ? undefined : this.__values__[this.__index__++];\n\n return { 'done': done, 'value': value };\n }\n\n /**\n * Enables the wrapper to be iterable.\n *\n * @name Symbol.iterator\n * @memberOf _\n * @since 4.0.0\n * @category Seq\n * @returns {Object} Returns the wrapper object.\n * @example\n *\n * var wrapped = _([1, 2]);\n *\n * wrapped[Symbol.iterator]() === wrapped;\n * // => true\n *\n * Array.from(wrapped);\n * // => [1, 2]\n */\n function wrapperToIterator() {\n return this;\n }\n\n /**\n * Creates a clone of the chain sequence planting `value` as the wrapped value.\n *\n * @name plant\n * @memberOf _\n * @since 3.2.0\n * @category Seq\n * @param {*} value The value to plant.\n * @returns {Object} Returns the new `lodash` wrapper instance.\n * @example\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * var wrapped = _([1, 2]).map(square);\n * var other = wrapped.plant([3, 4]);\n *\n * other.value();\n * // => [9, 16]\n *\n * wrapped.value();\n * // => [1, 4]\n */\n function wrapperPlant(value) {\n var result,\n parent = this;\n\n while (parent instanceof baseLodash) {\n var clone = wrapperClone(parent);\n clone.__index__ = 0;\n clone.__values__ = undefined;\n if (result) {\n previous.__wrapped__ = clone;\n } else {\n result = clone;\n }\n var previous = clone;\n parent = parent.__wrapped__;\n }\n previous.__wrapped__ = value;\n return result;\n }\n\n /**\n * This method is the wrapper version of `_.reverse`.\n *\n * **Note:** This method mutates the wrapped array.\n *\n * @name reverse\n * @memberOf _\n * @since 0.1.0\n * @category Seq\n * @returns {Object} Returns the new `lodash` wrapper instance.\n * @example\n *\n * var array = [1, 2, 3];\n *\n * _(array).reverse().value()\n * // => [3, 2, 1]\n *\n * console.log(array);\n * // => [3, 2, 1]\n */\n function wrapperReverse() {\n var value = this.__wrapped__;\n if (value instanceof LazyWrapper) {\n var wrapped = value;\n if (this.__actions__.length) {\n wrapped = new LazyWrapper(this);\n }\n wrapped = wrapped.reverse();\n wrapped.__actions__.push({\n 'func': thru,\n 'args': [reverse],\n 'thisArg': undefined\n });\n return new LodashWrapper(wrapped, this.__chain__);\n }\n return this.thru(reverse);\n }\n\n /**\n * Executes the chain sequence to resolve the unwrapped value.\n *\n * @name value\n * @memberOf _\n * @since 0.1.0\n * @alias toJSON, valueOf\n * @category Seq\n * @returns {*} Returns the resolved unwrapped value.\n * @example\n *\n * _([1, 2, 3]).value();\n * // => [1, 2, 3]\n */\n function wrapperValue() {\n return baseWrapperValue(this.__wrapped__, this.__actions__);\n }\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates an object composed of keys generated from the results of running\n * each element of `collection` thru `iteratee`. The corresponding value of\n * each key is the number of times the key was returned by `iteratee`. The\n * iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 0.5.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The iteratee to transform keys.\n * @returns {Object} Returns the composed aggregate object.\n * @example\n *\n * _.countBy([6.1, 4.2, 6.3], Math.floor);\n * // => { '4': 1, '6': 2 }\n *\n * // The `_.property` iteratee shorthand.\n * _.countBy(['one', 'two', 'three'], 'length');\n * // => { '3': 2, '5': 1 }\n */\n var countBy = createAggregator(function(result, value, key) {\n if (hasOwnProperty.call(result, key)) {\n ++result[key];\n } else {\n baseAssignValue(result, key, 1);\n }\n });\n\n /**\n * Checks if `predicate` returns truthy for **all** elements of `collection`.\n * Iteration is stopped once `predicate` returns falsey. The predicate is\n * invoked with three arguments: (value, index|key, collection).\n *\n * **Note:** This method returns `true` for\n * [empty collections](https://en.wikipedia.org/wiki/Empty_set) because\n * [everything is true](https://en.wikipedia.org/wiki/Vacuous_truth) of\n * elements of empty collections.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {boolean} Returns `true` if all elements pass the predicate check,\n * else `false`.\n * @example\n *\n * _.every([true, 1, null, 'yes'], Boolean);\n * // => false\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': false },\n * { 'user': 'fred', 'age': 40, 'active': false }\n * ];\n *\n * // The `_.matches` iteratee shorthand.\n * _.every(users, { 'user': 'barney', 'active': false });\n * // => false\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.every(users, ['active', false]);\n * // => true\n *\n * // The `_.property` iteratee shorthand.\n * _.every(users, 'active');\n * // => false\n */\n function every(collection, predicate, guard) {\n var func = isArray(collection) ? arrayEvery : baseEvery;\n if (guard && isIterateeCall(collection, predicate, guard)) {\n predicate = undefined;\n }\n return func(collection, getIteratee(predicate, 3));\n }\n\n /**\n * Iterates over elements of `collection`, returning an array of all elements\n * `predicate` returns truthy for. The predicate is invoked with three\n * arguments: (value, index|key, collection).\n *\n * **Note:** Unlike `_.remove`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n * @see _.reject\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': true },\n * { 'user': 'fred', 'age': 40, 'active': false }\n * ];\n *\n * _.filter(users, function(o) { return !o.active; });\n * // => objects for ['fred']\n *\n * // The `_.matches` iteratee shorthand.\n * _.filter(users, { 'age': 36, 'active': true });\n * // => objects for ['barney']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.filter(users, ['active', false]);\n * // => objects for ['fred']\n *\n * // The `_.property` iteratee shorthand.\n * _.filter(users, 'active');\n * // => objects for ['barney']\n *\n * // Combining several predicates using `_.overEvery` or `_.overSome`.\n * _.filter(users, _.overSome([{ 'age': 36 }, ['age', 40]]));\n * // => objects for ['fred', 'barney']\n */\n function filter(collection, predicate) {\n var func = isArray(collection) ? arrayFilter : baseFilter;\n return func(collection, getIteratee(predicate, 3));\n }\n\n /**\n * Iterates over elements of `collection`, returning the first element\n * `predicate` returns truthy for. The predicate is invoked with three\n * arguments: (value, index|key, collection).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param {number} [fromIndex=0] The index to search from.\n * @returns {*} Returns the matched element, else `undefined`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': true },\n * { 'user': 'fred', 'age': 40, 'active': false },\n * { 'user': 'pebbles', 'age': 1, 'active': true }\n * ];\n *\n * _.find(users, function(o) { return o.age < 40; });\n * // => object for 'barney'\n *\n * // The `_.matches` iteratee shorthand.\n * _.find(users, { 'age': 1, 'active': true });\n * // => object for 'pebbles'\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.find(users, ['active', false]);\n * // => object for 'fred'\n *\n * // The `_.property` iteratee shorthand.\n * _.find(users, 'active');\n * // => object for 'barney'\n */\n var find = createFind(findIndex);\n\n /**\n * This method is like `_.find` except that it iterates over elements of\n * `collection` from right to left.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param {number} [fromIndex=collection.length-1] The index to search from.\n * @returns {*} Returns the matched element, else `undefined`.\n * @example\n *\n * _.findLast([1, 2, 3, 4], function(n) {\n * return n % 2 == 1;\n * });\n * // => 3\n */\n var findLast = createFind(findLastIndex);\n\n /**\n * Creates a flattened array of values by running each element in `collection`\n * thru `iteratee` and flattening the mapped results. The iteratee is invoked\n * with three arguments: (value, index|key, collection).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * function duplicate(n) {\n * return [n, n];\n * }\n *\n * _.flatMap([1, 2], duplicate);\n * // => [1, 1, 2, 2]\n */\n function flatMap(collection, iteratee) {\n return baseFlatten(map(collection, iteratee), 1);\n }\n\n /**\n * This method is like `_.flatMap` except that it recursively flattens the\n * mapped results.\n *\n * @static\n * @memberOf _\n * @since 4.7.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * function duplicate(n) {\n * return [[[n, n]]];\n * }\n *\n * _.flatMapDeep([1, 2], duplicate);\n * // => [1, 1, 2, 2]\n */\n function flatMapDeep(collection, iteratee) {\n return baseFlatten(map(collection, iteratee), INFINITY);\n }\n\n /**\n * This method is like `_.flatMap` except that it recursively flattens the\n * mapped results up to `depth` times.\n *\n * @static\n * @memberOf _\n * @since 4.7.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @param {number} [depth=1] The maximum recursion depth.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * function duplicate(n) {\n * return [[[n, n]]];\n * }\n *\n * _.flatMapDepth([1, 2], duplicate, 2);\n * // => [[1, 1], [2, 2]]\n */\n function flatMapDepth(collection, iteratee, depth) {\n depth = depth === undefined ? 1 : toInteger(depth);\n return baseFlatten(map(collection, iteratee), depth);\n }\n\n /**\n * Iterates over elements of `collection` and invokes `iteratee` for each element.\n * The iteratee is invoked with three arguments: (value, index|key, collection).\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * **Note:** As with other \"Collections\" methods, objects with a \"length\"\n * property are iterated like arrays. To avoid this behavior use `_.forIn`\n * or `_.forOwn` for object iteration.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @alias each\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n * @see _.forEachRight\n * @example\n *\n * _.forEach([1, 2], function(value) {\n * console.log(value);\n * });\n * // => Logs `1` then `2`.\n *\n * _.forEach({ 'a': 1, 'b': 2 }, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'a' then 'b' (iteration order is not guaranteed).\n */\n function forEach(collection, iteratee) {\n var func = isArray(collection) ? arrayEach : baseEach;\n return func(collection, getIteratee(iteratee, 3));\n }\n\n /**\n * This method is like `_.forEach` except that it iterates over elements of\n * `collection` from right to left.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @alias eachRight\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n * @see _.forEach\n * @example\n *\n * _.forEachRight([1, 2], function(value) {\n * console.log(value);\n * });\n * // => Logs `2` then `1`.\n */\n function forEachRight(collection, iteratee) {\n var func = isArray(collection) ? arrayEachRight : baseEachRight;\n return func(collection, getIteratee(iteratee, 3));\n }\n\n /**\n * Creates an object composed of keys generated from the results of running\n * each element of `collection` thru `iteratee`. The order of grouped values\n * is determined by the order they occur in `collection`. The corresponding\n * value of each key is an array of elements responsible for generating the\n * key. The iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The iteratee to transform keys.\n * @returns {Object} Returns the composed aggregate object.\n * @example\n *\n * _.groupBy([6.1, 4.2, 6.3], Math.floor);\n * // => { '4': [4.2], '6': [6.1, 6.3] }\n *\n * // The `_.property` iteratee shorthand.\n * _.groupBy(['one', 'two', 'three'], 'length');\n * // => { '3': ['one', 'two'], '5': ['three'] }\n */\n var groupBy = createAggregator(function(result, value, key) {\n if (hasOwnProperty.call(result, key)) {\n result[key].push(value);\n } else {\n baseAssignValue(result, key, [value]);\n }\n });\n\n /**\n * Checks if `value` is in `collection`. If `collection` is a string, it's\n * checked for a substring of `value`, otherwise\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * is used for equality comparisons. If `fromIndex` is negative, it's used as\n * the offset from the end of `collection`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object|string} collection The collection to inspect.\n * @param {*} value The value to search for.\n * @param {number} [fromIndex=0] The index to search from.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.reduce`.\n * @returns {boolean} Returns `true` if `value` is found, else `false`.\n * @example\n *\n * _.includes([1, 2, 3], 1);\n * // => true\n *\n * _.includes([1, 2, 3], 1, 2);\n * // => false\n *\n * _.includes({ 'a': 1, 'b': 2 }, 1);\n * // => true\n *\n * _.includes('abcd', 'bc');\n * // => true\n */\n function includes(collection, value, fromIndex, guard) {\n collection = isArrayLike(collection) ? collection : values(collection);\n fromIndex = (fromIndex && !guard) ? toInteger(fromIndex) : 0;\n\n var length = collection.length;\n if (fromIndex < 0) {\n fromIndex = nativeMax(length + fromIndex, 0);\n }\n return isString(collection)\n ? (fromIndex <= length && collection.indexOf(value, fromIndex) > -1)\n : (!!length && baseIndexOf(collection, value, fromIndex) > -1);\n }\n\n /**\n * Invokes the method at `path` of each element in `collection`, returning\n * an array of the results of each invoked method. Any additional arguments\n * are provided to each invoked method. If `path` is a function, it's invoked\n * for, and `this` bound to, each element in `collection`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Array|Function|string} path The path of the method to invoke or\n * the function invoked per iteration.\n * @param {...*} [args] The arguments to invoke each method with.\n * @returns {Array} Returns the array of results.\n * @example\n *\n * _.invokeMap([[5, 1, 7], [3, 2, 1]], 'sort');\n * // => [[1, 5, 7], [1, 2, 3]]\n *\n * _.invokeMap([123, 456], String.prototype.split, '');\n * // => [['1', '2', '3'], ['4', '5', '6']]\n */\n var invokeMap = baseRest(function(collection, path, args) {\n var index = -1,\n isFunc = typeof path == 'function',\n result = isArrayLike(collection) ? Array(collection.length) : [];\n\n baseEach(collection, function(value) {\n result[++index] = isFunc ? apply(path, value, args) : baseInvoke(value, path, args);\n });\n return result;\n });\n\n /**\n * Creates an object composed of keys generated from the results of running\n * each element of `collection` thru `iteratee`. The corresponding value of\n * each key is the last element responsible for generating the key. The\n * iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The iteratee to transform keys.\n * @returns {Object} Returns the composed aggregate object.\n * @example\n *\n * var array = [\n * { 'dir': 'left', 'code': 97 },\n * { 'dir': 'right', 'code': 100 }\n * ];\n *\n * _.keyBy(array, function(o) {\n * return String.fromCharCode(o.code);\n * });\n * // => { 'a': { 'dir': 'left', 'code': 97 }, 'd': { 'dir': 'right', 'code': 100 } }\n *\n * _.keyBy(array, 'dir');\n * // => { 'left': { 'dir': 'left', 'code': 97 }, 'right': { 'dir': 'right', 'code': 100 } }\n */\n var keyBy = createAggregator(function(result, value, key) {\n baseAssignValue(result, key, value);\n });\n\n /**\n * Creates an array of values by running each element in `collection` thru\n * `iteratee`. The iteratee is invoked with three arguments:\n * (value, index|key, collection).\n *\n * Many lodash methods are guarded to work as iteratees for methods like\n * `_.every`, `_.filter`, `_.map`, `_.mapValues`, `_.reject`, and `_.some`.\n *\n * The guarded methods are:\n * `ary`, `chunk`, `curry`, `curryRight`, `drop`, `dropRight`, `every`,\n * `fill`, `invert`, `parseInt`, `random`, `range`, `rangeRight`, `repeat`,\n * `sampleSize`, `slice`, `some`, `sortBy`, `split`, `take`, `takeRight`,\n * `template`, `trim`, `trimEnd`, `trimStart`, and `words`\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n * @example\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * _.map([4, 8], square);\n * // => [16, 64]\n *\n * _.map({ 'a': 4, 'b': 8 }, square);\n * // => [16, 64] (iteration order is not guaranteed)\n *\n * var users = [\n * { 'user': 'barney' },\n * { 'user': 'fred' }\n * ];\n *\n * // The `_.property` iteratee shorthand.\n * _.map(users, 'user');\n * // => ['barney', 'fred']\n */\n function map(collection, iteratee) {\n var func = isArray(collection) ? arrayMap : baseMap;\n return func(collection, getIteratee(iteratee, 3));\n }\n\n /**\n * This method is like `_.sortBy` except that it allows specifying the sort\n * orders of the iteratees to sort by. If `orders` is unspecified, all values\n * are sorted in ascending order. Otherwise, specify an order of \"desc\" for\n * descending or \"asc\" for ascending sort order of corresponding values.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Array[]|Function[]|Object[]|string[]} [iteratees=[_.identity]]\n * The iteratees to sort by.\n * @param {string[]} [orders] The sort orders of `iteratees`.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.reduce`.\n * @returns {Array} Returns the new sorted array.\n * @example\n *\n * var users = [\n * { 'user': 'fred', 'age': 48 },\n * { 'user': 'barney', 'age': 34 },\n * { 'user': 'fred', 'age': 40 },\n * { 'user': 'barney', 'age': 36 }\n * ];\n *\n * // Sort by `user` in ascending order and by `age` in descending order.\n * _.orderBy(users, ['user', 'age'], ['asc', 'desc']);\n * // => objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 40]]\n */\n function orderBy(collection, iteratees, orders, guard) {\n if (collection == null) {\n return [];\n }\n if (!isArray(iteratees)) {\n iteratees = iteratees == null ? [] : [iteratees];\n }\n orders = guard ? undefined : orders;\n if (!isArray(orders)) {\n orders = orders == null ? [] : [orders];\n }\n return baseOrderBy(collection, iteratees, orders);\n }\n\n /**\n * Creates an array of elements split into two groups, the first of which\n * contains elements `predicate` returns truthy for, the second of which\n * contains elements `predicate` returns falsey for. The predicate is\n * invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the array of grouped elements.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': false },\n * { 'user': 'fred', 'age': 40, 'active': true },\n * { 'user': 'pebbles', 'age': 1, 'active': false }\n * ];\n *\n * _.partition(users, function(o) { return o.active; });\n * // => objects for [['fred'], ['barney', 'pebbles']]\n *\n * // The `_.matches` iteratee shorthand.\n * _.partition(users, { 'age': 1, 'active': false });\n * // => objects for [['pebbles'], ['barney', 'fred']]\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.partition(users, ['active', false]);\n * // => objects for [['barney', 'pebbles'], ['fred']]\n *\n * // The `_.property` iteratee shorthand.\n * _.partition(users, 'active');\n * // => objects for [['fred'], ['barney', 'pebbles']]\n */\n var partition = createAggregator(function(result, value, key) {\n result[key ? 0 : 1].push(value);\n }, function() { return [[], []]; });\n\n /**\n * Reduces `collection` to a value which is the accumulated result of running\n * each element in `collection` thru `iteratee`, where each successive\n * invocation is supplied the return value of the previous. If `accumulator`\n * is not given, the first element of `collection` is used as the initial\n * value. The iteratee is invoked with four arguments:\n * (accumulator, value, index|key, collection).\n *\n * Many lodash methods are guarded to work as iteratees for methods like\n * `_.reduce`, `_.reduceRight`, and `_.transform`.\n *\n * The guarded methods are:\n * `assign`, `defaults`, `defaultsDeep`, `includes`, `merge`, `orderBy`,\n * and `sortBy`\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @returns {*} Returns the accumulated value.\n * @see _.reduceRight\n * @example\n *\n * _.reduce([1, 2], function(sum, n) {\n * return sum + n;\n * }, 0);\n * // => 3\n *\n * _.reduce({ 'a': 1, 'b': 2, 'c': 1 }, function(result, value, key) {\n * (result[value] || (result[value] = [])).push(key);\n * return result;\n * }, {});\n * // => { '1': ['a', 'c'], '2': ['b'] } (iteration order is not guaranteed)\n */\n function reduce(collection, iteratee, accumulator) {\n var func = isArray(collection) ? arrayReduce : baseReduce,\n initAccum = arguments.length < 3;\n\n return func(collection, getIteratee(iteratee, 4), accumulator, initAccum, baseEach);\n }\n\n /**\n * This method is like `_.reduce` except that it iterates over elements of\n * `collection` from right to left.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @returns {*} Returns the accumulated value.\n * @see _.reduce\n * @example\n *\n * var array = [[0, 1], [2, 3], [4, 5]];\n *\n * _.reduceRight(array, function(flattened, other) {\n * return flattened.concat(other);\n * }, []);\n * // => [4, 5, 2, 3, 0, 1]\n */\n function reduceRight(collection, iteratee, accumulator) {\n var func = isArray(collection) ? arrayReduceRight : baseReduce,\n initAccum = arguments.length < 3;\n\n return func(collection, getIteratee(iteratee, 4), accumulator, initAccum, baseEachRight);\n }\n\n /**\n * The opposite of `_.filter`; this method returns the elements of `collection`\n * that `predicate` does **not** return truthy for.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n * @see _.filter\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': false },\n * { 'user': 'fred', 'age': 40, 'active': true }\n * ];\n *\n * _.reject(users, function(o) { return !o.active; });\n * // => objects for ['fred']\n *\n * // The `_.matches` iteratee shorthand.\n * _.reject(users, { 'age': 40, 'active': true });\n * // => objects for ['barney']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.reject(users, ['active', false]);\n * // => objects for ['fred']\n *\n * // The `_.property` iteratee shorthand.\n * _.reject(users, 'active');\n * // => objects for ['barney']\n */\n function reject(collection, predicate) {\n var func = isArray(collection) ? arrayFilter : baseFilter;\n return func(collection, negate(getIteratee(predicate, 3)));\n }\n\n /**\n * Gets a random element from `collection`.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to sample.\n * @returns {*} Returns the random element.\n * @example\n *\n * _.sample([1, 2, 3, 4]);\n * // => 2\n */\n function sample(collection) {\n var func = isArray(collection) ? arraySample : baseSample;\n return func(collection);\n }\n\n /**\n * Gets `n` random elements at unique keys from `collection` up to the\n * size of `collection`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to sample.\n * @param {number} [n=1] The number of elements to sample.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the random elements.\n * @example\n *\n * _.sampleSize([1, 2, 3], 2);\n * // => [3, 1]\n *\n * _.sampleSize([1, 2, 3], 4);\n * // => [2, 3, 1]\n */\n function sampleSize(collection, n, guard) {\n if ((guard ? isIterateeCall(collection, n, guard) : n === undefined)) {\n n = 1;\n } else {\n n = toInteger(n);\n }\n var func = isArray(collection) ? arraySampleSize : baseSampleSize;\n return func(collection, n);\n }\n\n /**\n * Creates an array of shuffled values, using a version of the\n * [Fisher-Yates shuffle](https://en.wikipedia.org/wiki/Fisher-Yates_shuffle).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to shuffle.\n * @returns {Array} Returns the new shuffled array.\n * @example\n *\n * _.shuffle([1, 2, 3, 4]);\n * // => [4, 1, 3, 2]\n */\n function shuffle(collection) {\n var func = isArray(collection) ? arrayShuffle : baseShuffle;\n return func(collection);\n }\n\n /**\n * Gets the size of `collection` by returning its length for array-like\n * values or the number of own enumerable string keyed properties for objects.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object|string} collection The collection to inspect.\n * @returns {number} Returns the collection size.\n * @example\n *\n * _.size([1, 2, 3]);\n * // => 3\n *\n * _.size({ 'a': 1, 'b': 2 });\n * // => 2\n *\n * _.size('pebbles');\n * // => 7\n */\n function size(collection) {\n if (collection == null) {\n return 0;\n }\n if (isArrayLike(collection)) {\n return isString(collection) ? stringSize(collection) : collection.length;\n }\n var tag = getTag(collection);\n if (tag == mapTag || tag == setTag) {\n return collection.size;\n }\n return baseKeys(collection).length;\n }\n\n /**\n * Checks if `predicate` returns truthy for **any** element of `collection`.\n * Iteration is stopped once `predicate` returns truthy. The predicate is\n * invoked with three arguments: (value, index|key, collection).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n * @example\n *\n * _.some([null, 0, 'yes', false], Boolean);\n * // => true\n *\n * var users = [\n * { 'user': 'barney', 'active': true },\n * { 'user': 'fred', 'active': false }\n * ];\n *\n * // The `_.matches` iteratee shorthand.\n * _.some(users, { 'user': 'barney', 'active': false });\n * // => false\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.some(users, ['active', false]);\n * // => true\n *\n * // The `_.property` iteratee shorthand.\n * _.some(users, 'active');\n * // => true\n */\n function some(collection, predicate, guard) {\n var func = isArray(collection) ? arraySome : baseSome;\n if (guard && isIterateeCall(collection, predicate, guard)) {\n predicate = undefined;\n }\n return func(collection, getIteratee(predicate, 3));\n }\n\n /**\n * Creates an array of elements, sorted in ascending order by the results of\n * running each element in a collection thru each iteratee. This method\n * performs a stable sort, that is, it preserves the original sort order of\n * equal elements. The iteratees are invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {...(Function|Function[])} [iteratees=[_.identity]]\n * The iteratees to sort by.\n * @returns {Array} Returns the new sorted array.\n * @example\n *\n * var users = [\n * { 'user': 'fred', 'age': 48 },\n * { 'user': 'barney', 'age': 36 },\n * { 'user': 'fred', 'age': 30 },\n * { 'user': 'barney', 'age': 34 }\n * ];\n *\n * _.sortBy(users, [function(o) { return o.user; }]);\n * // => objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 30]]\n *\n * _.sortBy(users, ['user', 'age']);\n * // => objects for [['barney', 34], ['barney', 36], ['fred', 30], ['fred', 48]]\n */\n var sortBy = baseRest(function(collection, iteratees) {\n if (collection == null) {\n return [];\n }\n var length = iteratees.length;\n if (length > 1 && isIterateeCall(collection, iteratees[0], iteratees[1])) {\n iteratees = [];\n } else if (length > 2 && isIterateeCall(iteratees[0], iteratees[1], iteratees[2])) {\n iteratees = [iteratees[0]];\n }\n return baseOrderBy(collection, baseFlatten(iteratees, 1), []);\n });\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\n var now = ctxNow || function() {\n return root.Date.now();\n };\n\n /*------------------------------------------------------------------------*/\n\n /**\n * The opposite of `_.before`; this method creates a function that invokes\n * `func` once it's called `n` or more times.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {number} n The number of calls before `func` is invoked.\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new restricted function.\n * @example\n *\n * var saves = ['profile', 'settings'];\n *\n * var done = _.after(saves.length, function() {\n * console.log('done saving!');\n * });\n *\n * _.forEach(saves, function(type) {\n * asyncSave({ 'type': type, 'complete': done });\n * });\n * // => Logs 'done saving!' after the two async saves have completed.\n */\n function after(n, func) {\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n n = toInteger(n);\n return function() {\n if (--n < 1) {\n return func.apply(this, arguments);\n }\n };\n }\n\n /**\n * Creates a function that invokes `func`, with up to `n` arguments,\n * ignoring any additional arguments.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Function\n * @param {Function} func The function to cap arguments for.\n * @param {number} [n=func.length] The arity cap.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Function} Returns the new capped function.\n * @example\n *\n * _.map(['6', '8', '10'], _.ary(parseInt, 1));\n * // => [6, 8, 10]\n */\n function ary(func, n, guard) {\n n = guard ? undefined : n;\n n = (func && n == null) ? func.length : n;\n return createWrap(func, WRAP_ARY_FLAG, undefined, undefined, undefined, undefined, n);\n }\n\n /**\n * Creates a function that invokes `func`, with the `this` binding and arguments\n * of the created function, while it's called less than `n` times. Subsequent\n * calls to the created function return the result of the last `func` invocation.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Function\n * @param {number} n The number of calls at which `func` is no longer invoked.\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new restricted function.\n * @example\n *\n * jQuery(element).on('click', _.before(5, addContactToList));\n * // => Allows adding up to 4 contacts to the list.\n */\n function before(n, func) {\n var result;\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n n = toInteger(n);\n return function() {\n if (--n > 0) {\n result = func.apply(this, arguments);\n }\n if (n <= 1) {\n func = undefined;\n }\n return result;\n };\n }\n\n /**\n * Creates a function that invokes `func` with the `this` binding of `thisArg`\n * and `partials` prepended to the arguments it receives.\n *\n * The `_.bind.placeholder` value, which defaults to `_` in monolithic builds,\n * may be used as a placeholder for partially applied arguments.\n *\n * **Note:** Unlike native `Function#bind`, this method doesn't set the \"length\"\n * property of bound functions.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to bind.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {...*} [partials] The arguments to be partially applied.\n * @returns {Function} Returns the new bound function.\n * @example\n *\n * function greet(greeting, punctuation) {\n * return greeting + ' ' + this.user + punctuation;\n * }\n *\n * var object = { 'user': 'fred' };\n *\n * var bound = _.bind(greet, object, 'hi');\n * bound('!');\n * // => 'hi fred!'\n *\n * // Bound with placeholders.\n * var bound = _.bind(greet, object, _, '!');\n * bound('hi');\n * // => 'hi fred!'\n */\n var bind = baseRest(function(func, thisArg, partials) {\n var bitmask = WRAP_BIND_FLAG;\n if (partials.length) {\n var holders = replaceHolders(partials, getHolder(bind));\n bitmask |= WRAP_PARTIAL_FLAG;\n }\n return createWrap(func, bitmask, thisArg, partials, holders);\n });\n\n /**\n * Creates a function that invokes the method at `object[key]` with `partials`\n * prepended to the arguments it receives.\n *\n * This method differs from `_.bind` by allowing bound functions to reference\n * methods that may be redefined or don't yet exist. See\n * [Peter Michaux's article](http://peter.michaux.ca/articles/lazy-function-definition-pattern)\n * for more details.\n *\n * The `_.bindKey.placeholder` value, which defaults to `_` in monolithic\n * builds, may be used as a placeholder for partially applied arguments.\n *\n * @static\n * @memberOf _\n * @since 0.10.0\n * @category Function\n * @param {Object} object The object to invoke the method on.\n * @param {string} key The key of the method.\n * @param {...*} [partials] The arguments to be partially applied.\n * @returns {Function} Returns the new bound function.\n * @example\n *\n * var object = {\n * 'user': 'fred',\n * 'greet': function(greeting, punctuation) {\n * return greeting + ' ' + this.user + punctuation;\n * }\n * };\n *\n * var bound = _.bindKey(object, 'greet', 'hi');\n * bound('!');\n * // => 'hi fred!'\n *\n * object.greet = function(greeting, punctuation) {\n * return greeting + 'ya ' + this.user + punctuation;\n * };\n *\n * bound('!');\n * // => 'hiya fred!'\n *\n * // Bound with placeholders.\n * var bound = _.bindKey(object, 'greet', _, '!');\n * bound('hi');\n * // => 'hiya fred!'\n */\n var bindKey = baseRest(function(object, key, partials) {\n var bitmask = WRAP_BIND_FLAG | WRAP_BIND_KEY_FLAG;\n if (partials.length) {\n var holders = replaceHolders(partials, getHolder(bindKey));\n bitmask |= WRAP_PARTIAL_FLAG;\n }\n return createWrap(key, bitmask, object, partials, holders);\n });\n\n /**\n * Creates a function that accepts arguments of `func` and either invokes\n * `func` returning its result, if at least `arity` number of arguments have\n * been provided, or returns a function that accepts the remaining `func`\n * arguments, and so on. The arity of `func` may be specified if `func.length`\n * is not sufficient.\n *\n * The `_.curry.placeholder` value, which defaults to `_` in monolithic builds,\n * may be used as a placeholder for provided arguments.\n *\n * **Note:** This method doesn't set the \"length\" property of curried functions.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Function\n * @param {Function} func The function to curry.\n * @param {number} [arity=func.length] The arity of `func`.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Function} Returns the new curried function.\n * @example\n *\n * var abc = function(a, b, c) {\n * return [a, b, c];\n * };\n *\n * var curried = _.curry(abc);\n *\n * curried(1)(2)(3);\n * // => [1, 2, 3]\n *\n * curried(1, 2)(3);\n * // => [1, 2, 3]\n *\n * curried(1, 2, 3);\n * // => [1, 2, 3]\n *\n * // Curried with placeholders.\n * curried(1)(_, 3)(2);\n * // => [1, 2, 3]\n */\n function curry(func, arity, guard) {\n arity = guard ? undefined : arity;\n var result = createWrap(func, WRAP_CURRY_FLAG, undefined, undefined, undefined, undefined, undefined, arity);\n result.placeholder = curry.placeholder;\n return result;\n }\n\n /**\n * This method is like `_.curry` except that arguments are applied to `func`\n * in the manner of `_.partialRight` instead of `_.partial`.\n *\n * The `_.curryRight.placeholder` value, which defaults to `_` in monolithic\n * builds, may be used as a placeholder for provided arguments.\n *\n * **Note:** This method doesn't set the \"length\" property of curried functions.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Function\n * @param {Function} func The function to curry.\n * @param {number} [arity=func.length] The arity of `func`.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Function} Returns the new curried function.\n * @example\n *\n * var abc = function(a, b, c) {\n * return [a, b, c];\n * };\n *\n * var curried = _.curryRight(abc);\n *\n * curried(3)(2)(1);\n * // => [1, 2, 3]\n *\n * curried(2, 3)(1);\n * // => [1, 2, 3]\n *\n * curried(1, 2, 3);\n * // => [1, 2, 3]\n *\n * // Curried with placeholders.\n * curried(3)(1, _)(2);\n * // => [1, 2, 3]\n */\n function curryRight(func, arity, guard) {\n arity = guard ? undefined : arity;\n var result = createWrap(func, WRAP_CURRY_RIGHT_FLAG, undefined, undefined, undefined, undefined, undefined, arity);\n result.placeholder = curryRight.placeholder;\n return result;\n }\n\n /**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\n function debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n timeWaiting = wait - timeSinceLastCall;\n\n return maxing\n ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke)\n : timeWaiting;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n clearTimeout(timerId);\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n }\n\n /**\n * Defers invoking the `func` until the current call stack has cleared. Any\n * additional arguments are provided to `func` when it's invoked.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to defer.\n * @param {...*} [args] The arguments to invoke `func` with.\n * @returns {number} Returns the timer id.\n * @example\n *\n * _.defer(function(text) {\n * console.log(text);\n * }, 'deferred');\n * // => Logs 'deferred' after one millisecond.\n */\n var defer = baseRest(function(func, args) {\n return baseDelay(func, 1, args);\n });\n\n /**\n * Invokes `func` after `wait` milliseconds. Any additional arguments are\n * provided to `func` when it's invoked.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to delay.\n * @param {number} wait The number of milliseconds to delay invocation.\n * @param {...*} [args] The arguments to invoke `func` with.\n * @returns {number} Returns the timer id.\n * @example\n *\n * _.delay(function(text) {\n * console.log(text);\n * }, 1000, 'later');\n * // => Logs 'later' after one second.\n */\n var delay = baseRest(function(func, wait, args) {\n return baseDelay(func, toNumber(wait) || 0, args);\n });\n\n /**\n * Creates a function that invokes `func` with arguments reversed.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Function\n * @param {Function} func The function to flip arguments for.\n * @returns {Function} Returns the new flipped function.\n * @example\n *\n * var flipped = _.flip(function() {\n * return _.toArray(arguments);\n * });\n *\n * flipped('a', 'b', 'c', 'd');\n * // => ['d', 'c', 'b', 'a']\n */\n function flip(func) {\n return createWrap(func, WRAP_FLIP_FLAG);\n }\n\n /**\n * Creates a function that memoizes the result of `func`. If `resolver` is\n * provided, it determines the cache key for storing the result based on the\n * arguments provided to the memoized function. By default, the first argument\n * provided to the memoized function is used as the map cache key. The `func`\n * is invoked with the `this` binding of the memoized function.\n *\n * **Note:** The cache is exposed as the `cache` property on the memoized\n * function. Its creation may be customized by replacing the `_.memoize.Cache`\n * constructor with one whose instances implement the\n * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)\n * method interface of `clear`, `delete`, `get`, `has`, and `set`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to have its output memoized.\n * @param {Function} [resolver] The function to resolve the cache key.\n * @returns {Function} Returns the new memoized function.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n * var other = { 'c': 3, 'd': 4 };\n *\n * var values = _.memoize(_.values);\n * values(object);\n * // => [1, 2]\n *\n * values(other);\n * // => [3, 4]\n *\n * object.a = 2;\n * values(object);\n * // => [1, 2]\n *\n * // Modify the result cache.\n * values.cache.set(object, ['a', 'b']);\n * values(object);\n * // => ['a', 'b']\n *\n * // Replace `_.memoize.Cache`.\n * _.memoize.Cache = WeakMap;\n */\n function memoize(func, resolver) {\n if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var memoized = function() {\n var args = arguments,\n key = resolver ? resolver.apply(this, args) : args[0],\n cache = memoized.cache;\n\n if (cache.has(key)) {\n return cache.get(key);\n }\n var result = func.apply(this, args);\n memoized.cache = cache.set(key, result) || cache;\n return result;\n };\n memoized.cache = new (memoize.Cache || MapCache);\n return memoized;\n }\n\n // Expose `MapCache`.\n memoize.Cache = MapCache;\n\n /**\n * Creates a function that negates the result of the predicate `func`. The\n * `func` predicate is invoked with the `this` binding and arguments of the\n * created function.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Function\n * @param {Function} predicate The predicate to negate.\n * @returns {Function} Returns the new negated function.\n * @example\n *\n * function isEven(n) {\n * return n % 2 == 0;\n * }\n *\n * _.filter([1, 2, 3, 4, 5, 6], _.negate(isEven));\n * // => [1, 3, 5]\n */\n function negate(predicate) {\n if (typeof predicate != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n return function() {\n var args = arguments;\n switch (args.length) {\n case 0: return !predicate.call(this);\n case 1: return !predicate.call(this, args[0]);\n case 2: return !predicate.call(this, args[0], args[1]);\n case 3: return !predicate.call(this, args[0], args[1], args[2]);\n }\n return !predicate.apply(this, args);\n };\n }\n\n /**\n * Creates a function that is restricted to invoking `func` once. Repeat calls\n * to the function return the value of the first invocation. The `func` is\n * invoked with the `this` binding and arguments of the created function.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new restricted function.\n * @example\n *\n * var initialize = _.once(createApplication);\n * initialize();\n * initialize();\n * // => `createApplication` is invoked once\n */\n function once(func) {\n return before(2, func);\n }\n\n /**\n * Creates a function that invokes `func` with its arguments transformed.\n *\n * @static\n * @since 4.0.0\n * @memberOf _\n * @category Function\n * @param {Function} func The function to wrap.\n * @param {...(Function|Function[])} [transforms=[_.identity]]\n * The argument transforms.\n * @returns {Function} Returns the new function.\n * @example\n *\n * function doubled(n) {\n * return n * 2;\n * }\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * var func = _.overArgs(function(x, y) {\n * return [x, y];\n * }, [square, doubled]);\n *\n * func(9, 3);\n * // => [81, 6]\n *\n * func(10, 5);\n * // => [100, 10]\n */\n var overArgs = castRest(function(func, transforms) {\n transforms = (transforms.length == 1 && isArray(transforms[0]))\n ? arrayMap(transforms[0], baseUnary(getIteratee()))\n : arrayMap(baseFlatten(transforms, 1), baseUnary(getIteratee()));\n\n var funcsLength = transforms.length;\n return baseRest(function(args) {\n var index = -1,\n length = nativeMin(args.length, funcsLength);\n\n while (++index < length) {\n args[index] = transforms[index].call(this, args[index]);\n }\n return apply(func, this, args);\n });\n });\n\n /**\n * Creates a function that invokes `func` with `partials` prepended to the\n * arguments it receives. This method is like `_.bind` except it does **not**\n * alter the `this` binding.\n *\n * The `_.partial.placeholder` value, which defaults to `_` in monolithic\n * builds, may be used as a placeholder for partially applied arguments.\n *\n * **Note:** This method doesn't set the \"length\" property of partially\n * applied functions.\n *\n * @static\n * @memberOf _\n * @since 0.2.0\n * @category Function\n * @param {Function} func The function to partially apply arguments to.\n * @param {...*} [partials] The arguments to be partially applied.\n * @returns {Function} Returns the new partially applied function.\n * @example\n *\n * function greet(greeting, name) {\n * return greeting + ' ' + name;\n * }\n *\n * var sayHelloTo = _.partial(greet, 'hello');\n * sayHelloTo('fred');\n * // => 'hello fred'\n *\n * // Partially applied with placeholders.\n * var greetFred = _.partial(greet, _, 'fred');\n * greetFred('hi');\n * // => 'hi fred'\n */\n var partial = baseRest(function(func, partials) {\n var holders = replaceHolders(partials, getHolder(partial));\n return createWrap(func, WRAP_PARTIAL_FLAG, undefined, partials, holders);\n });\n\n /**\n * This method is like `_.partial` except that partially applied arguments\n * are appended to the arguments it receives.\n *\n * The `_.partialRight.placeholder` value, which defaults to `_` in monolithic\n * builds, may be used as a placeholder for partially applied arguments.\n *\n * **Note:** This method doesn't set the \"length\" property of partially\n * applied functions.\n *\n * @static\n * @memberOf _\n * @since 1.0.0\n * @category Function\n * @param {Function} func The function to partially apply arguments to.\n * @param {...*} [partials] The arguments to be partially applied.\n * @returns {Function} Returns the new partially applied function.\n * @example\n *\n * function greet(greeting, name) {\n * return greeting + ' ' + name;\n * }\n *\n * var greetFred = _.partialRight(greet, 'fred');\n * greetFred('hi');\n * // => 'hi fred'\n *\n * // Partially applied with placeholders.\n * var sayHelloTo = _.partialRight(greet, 'hello', _);\n * sayHelloTo('fred');\n * // => 'hello fred'\n */\n var partialRight = baseRest(function(func, partials) {\n var holders = replaceHolders(partials, getHolder(partialRight));\n return createWrap(func, WRAP_PARTIAL_RIGHT_FLAG, undefined, partials, holders);\n });\n\n /**\n * Creates a function that invokes `func` with arguments arranged according\n * to the specified `indexes` where the argument value at the first index is\n * provided as the first argument, the argument value at the second index is\n * provided as the second argument, and so on.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Function\n * @param {Function} func The function to rearrange arguments for.\n * @param {...(number|number[])} indexes The arranged argument indexes.\n * @returns {Function} Returns the new function.\n * @example\n *\n * var rearged = _.rearg(function(a, b, c) {\n * return [a, b, c];\n * }, [2, 0, 1]);\n *\n * rearged('b', 'c', 'a')\n * // => ['a', 'b', 'c']\n */\n var rearg = flatRest(function(func, indexes) {\n return createWrap(func, WRAP_REARG_FLAG, undefined, undefined, undefined, indexes);\n });\n\n /**\n * Creates a function that invokes `func` with the `this` binding of the\n * created function and arguments from `start` and beyond provided as\n * an array.\n *\n * **Note:** This method is based on the\n * [rest parameter](https://mdn.io/rest_parameters).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Function\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n * @example\n *\n * var say = _.rest(function(what, names) {\n * return what + ' ' + _.initial(names).join(', ') +\n * (_.size(names) > 1 ? ', & ' : '') + _.last(names);\n * });\n *\n * say('hello', 'fred', 'barney', 'pebbles');\n * // => 'hello fred, barney, & pebbles'\n */\n function rest(func, start) {\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n start = start === undefined ? start : toInteger(start);\n return baseRest(func, start);\n }\n\n /**\n * Creates a function that invokes `func` with the `this` binding of the\n * create function and an array of arguments much like\n * [`Function#apply`](http://www.ecma-international.org/ecma-262/7.0/#sec-function.prototype.apply).\n *\n * **Note:** This method is based on the\n * [spread operator](https://mdn.io/spread_operator).\n *\n * @static\n * @memberOf _\n * @since 3.2.0\n * @category Function\n * @param {Function} func The function to spread arguments over.\n * @param {number} [start=0] The start position of the spread.\n * @returns {Function} Returns the new function.\n * @example\n *\n * var say = _.spread(function(who, what) {\n * return who + ' says ' + what;\n * });\n *\n * say(['fred', 'hello']);\n * // => 'fred says hello'\n *\n * var numbers = Promise.all([\n * Promise.resolve(40),\n * Promise.resolve(36)\n * ]);\n *\n * numbers.then(_.spread(function(x, y) {\n * return x + y;\n * }));\n * // => a Promise of 76\n */\n function spread(func, start) {\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n start = start == null ? 0 : nativeMax(toInteger(start), 0);\n return baseRest(function(args) {\n var array = args[start],\n otherArgs = castSlice(args, 0, start);\n\n if (array) {\n arrayPush(otherArgs, array);\n }\n return apply(func, this, otherArgs);\n });\n }\n\n /**\n * Creates a throttled function that only invokes `func` at most once per\n * every `wait` milliseconds. The throttled function comes with a `cancel`\n * method to cancel delayed `func` invocations and a `flush` method to\n * immediately invoke them. Provide `options` to indicate whether `func`\n * should be invoked on the leading and/or trailing edge of the `wait`\n * timeout. The `func` is invoked with the last arguments provided to the\n * throttled function. Subsequent calls to the throttled function return the\n * result of the last `func` invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the throttled function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.throttle` and `_.debounce`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to throttle.\n * @param {number} [wait=0] The number of milliseconds to throttle invocations to.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=true]\n * Specify invoking on the leading edge of the timeout.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new throttled function.\n * @example\n *\n * // Avoid excessively updating the position while scrolling.\n * jQuery(window).on('scroll', _.throttle(updatePosition, 100));\n *\n * // Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes.\n * var throttled = _.throttle(renewToken, 300000, { 'trailing': false });\n * jQuery(element).on('click', throttled);\n *\n * // Cancel the trailing throttled invocation.\n * jQuery(window).on('popstate', throttled.cancel);\n */\n function throttle(func, wait, options) {\n var leading = true,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n if (isObject(options)) {\n leading = 'leading' in options ? !!options.leading : leading;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n return debounce(func, wait, {\n 'leading': leading,\n 'maxWait': wait,\n 'trailing': trailing\n });\n }\n\n /**\n * Creates a function that accepts up to one argument, ignoring any\n * additional arguments.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Function\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n * @example\n *\n * _.map(['6', '8', '10'], _.unary(parseInt));\n * // => [6, 8, 10]\n */\n function unary(func) {\n return ary(func, 1);\n }\n\n /**\n * Creates a function that provides `value` to `wrapper` as its first\n * argument. Any additional arguments provided to the function are appended\n * to those provided to the `wrapper`. The wrapper is invoked with the `this`\n * binding of the created function.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {*} value The value to wrap.\n * @param {Function} [wrapper=identity] The wrapper function.\n * @returns {Function} Returns the new function.\n * @example\n *\n * var p = _.wrap(_.escape, function(func, text) {\n * return '

' + func(text) + '

';\n * });\n *\n * p('fred, barney, & pebbles');\n * // => '

fred, barney, & pebbles

'\n */\n function wrap(value, wrapper) {\n return partial(castFunction(wrapper), value);\n }\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Casts `value` as an array if it's not one.\n *\n * @static\n * @memberOf _\n * @since 4.4.0\n * @category Lang\n * @param {*} value The value to inspect.\n * @returns {Array} Returns the cast array.\n * @example\n *\n * _.castArray(1);\n * // => [1]\n *\n * _.castArray({ 'a': 1 });\n * // => [{ 'a': 1 }]\n *\n * _.castArray('abc');\n * // => ['abc']\n *\n * _.castArray(null);\n * // => [null]\n *\n * _.castArray(undefined);\n * // => [undefined]\n *\n * _.castArray();\n * // => []\n *\n * var array = [1, 2, 3];\n * console.log(_.castArray(array) === array);\n * // => true\n */\n function castArray() {\n if (!arguments.length) {\n return [];\n }\n var value = arguments[0];\n return isArray(value) ? value : [value];\n }\n\n /**\n * Creates a shallow clone of `value`.\n *\n * **Note:** This method is loosely based on the\n * [structured clone algorithm](https://mdn.io/Structured_clone_algorithm)\n * and supports cloning arrays, array buffers, booleans, date objects, maps,\n * numbers, `Object` objects, regexes, sets, strings, symbols, and typed\n * arrays. The own enumerable properties of `arguments` objects are cloned\n * as plain objects. An empty object is returned for uncloneable values such\n * as error objects, functions, DOM nodes, and WeakMaps.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to clone.\n * @returns {*} Returns the cloned value.\n * @see _.cloneDeep\n * @example\n *\n * var objects = [{ 'a': 1 }, { 'b': 2 }];\n *\n * var shallow = _.clone(objects);\n * console.log(shallow[0] === objects[0]);\n * // => true\n */\n function clone(value) {\n return baseClone(value, CLONE_SYMBOLS_FLAG);\n }\n\n /**\n * This method is like `_.clone` except that it accepts `customizer` which\n * is invoked to produce the cloned value. If `customizer` returns `undefined`,\n * cloning is handled by the method instead. The `customizer` is invoked with\n * up to four arguments; (value [, index|key, object, stack]).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to clone.\n * @param {Function} [customizer] The function to customize cloning.\n * @returns {*} Returns the cloned value.\n * @see _.cloneDeepWith\n * @example\n *\n * function customizer(value) {\n * if (_.isElement(value)) {\n * return value.cloneNode(false);\n * }\n * }\n *\n * var el = _.cloneWith(document.body, customizer);\n *\n * console.log(el === document.body);\n * // => false\n * console.log(el.nodeName);\n * // => 'BODY'\n * console.log(el.childNodes.length);\n * // => 0\n */\n function cloneWith(value, customizer) {\n customizer = typeof customizer == 'function' ? customizer : undefined;\n return baseClone(value, CLONE_SYMBOLS_FLAG, customizer);\n }\n\n /**\n * This method is like `_.clone` except that it recursively clones `value`.\n *\n * @static\n * @memberOf _\n * @since 1.0.0\n * @category Lang\n * @param {*} value The value to recursively clone.\n * @returns {*} Returns the deep cloned value.\n * @see _.clone\n * @example\n *\n * var objects = [{ 'a': 1 }, { 'b': 2 }];\n *\n * var deep = _.cloneDeep(objects);\n * console.log(deep[0] === objects[0]);\n * // => false\n */\n function cloneDeep(value) {\n return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG);\n }\n\n /**\n * This method is like `_.cloneWith` except that it recursively clones `value`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to recursively clone.\n * @param {Function} [customizer] The function to customize cloning.\n * @returns {*} Returns the deep cloned value.\n * @see _.cloneWith\n * @example\n *\n * function customizer(value) {\n * if (_.isElement(value)) {\n * return value.cloneNode(true);\n * }\n * }\n *\n * var el = _.cloneDeepWith(document.body, customizer);\n *\n * console.log(el === document.body);\n * // => false\n * console.log(el.nodeName);\n * // => 'BODY'\n * console.log(el.childNodes.length);\n * // => 20\n */\n function cloneDeepWith(value, customizer) {\n customizer = typeof customizer == 'function' ? customizer : undefined;\n return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG, customizer);\n }\n\n /**\n * Checks if `object` conforms to `source` by invoking the predicate\n * properties of `source` with the corresponding property values of `object`.\n *\n * **Note:** This method is equivalent to `_.conforms` when `source` is\n * partially applied.\n *\n * @static\n * @memberOf _\n * @since 4.14.0\n * @category Lang\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property predicates to conform to.\n * @returns {boolean} Returns `true` if `object` conforms, else `false`.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n *\n * _.conformsTo(object, { 'b': function(n) { return n > 1; } });\n * // => true\n *\n * _.conformsTo(object, { 'b': function(n) { return n > 2; } });\n * // => false\n */\n function conformsTo(object, source) {\n return source == null || baseConformsTo(object, source, keys(source));\n }\n\n /**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\n function eq(value, other) {\n return value === other || (value !== value && other !== other);\n }\n\n /**\n * Checks if `value` is greater than `other`.\n *\n * @static\n * @memberOf _\n * @since 3.9.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is greater than `other`,\n * else `false`.\n * @see _.lt\n * @example\n *\n * _.gt(3, 1);\n * // => true\n *\n * _.gt(3, 3);\n * // => false\n *\n * _.gt(1, 3);\n * // => false\n */\n var gt = createRelationalOperation(baseGt);\n\n /**\n * Checks if `value` is greater than or equal to `other`.\n *\n * @static\n * @memberOf _\n * @since 3.9.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is greater than or equal to\n * `other`, else `false`.\n * @see _.lte\n * @example\n *\n * _.gte(3, 1);\n * // => true\n *\n * _.gte(3, 3);\n * // => true\n *\n * _.gte(1, 3);\n * // => false\n */\n var gte = createRelationalOperation(function(value, other) {\n return value >= other;\n });\n\n /**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\n var isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n };\n\n /**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\n var isArray = Array.isArray;\n\n /**\n * Checks if `value` is classified as an `ArrayBuffer` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array buffer, else `false`.\n * @example\n *\n * _.isArrayBuffer(new ArrayBuffer(2));\n * // => true\n *\n * _.isArrayBuffer(new Array(2));\n * // => false\n */\n var isArrayBuffer = nodeIsArrayBuffer ? baseUnary(nodeIsArrayBuffer) : baseIsArrayBuffer;\n\n /**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\n function isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n }\n\n /**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\n function isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n }\n\n /**\n * Checks if `value` is classified as a boolean primitive or object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a boolean, else `false`.\n * @example\n *\n * _.isBoolean(false);\n * // => true\n *\n * _.isBoolean(null);\n * // => false\n */\n function isBoolean(value) {\n return value === true || value === false ||\n (isObjectLike(value) && baseGetTag(value) == boolTag);\n }\n\n /**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\n var isBuffer = nativeIsBuffer || stubFalse;\n\n /**\n * Checks if `value` is classified as a `Date` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a date object, else `false`.\n * @example\n *\n * _.isDate(new Date);\n * // => true\n *\n * _.isDate('Mon April 23 2012');\n * // => false\n */\n var isDate = nodeIsDate ? baseUnary(nodeIsDate) : baseIsDate;\n\n /**\n * Checks if `value` is likely a DOM element.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a DOM element, else `false`.\n * @example\n *\n * _.isElement(document.body);\n * // => true\n *\n * _.isElement('');\n * // => false\n */\n function isElement(value) {\n return isObjectLike(value) && value.nodeType === 1 && !isPlainObject(value);\n }\n\n /**\n * Checks if `value` is an empty object, collection, map, or set.\n *\n * Objects are considered empty if they have no own enumerable string keyed\n * properties.\n *\n * Array-like values such as `arguments` objects, arrays, buffers, strings, or\n * jQuery-like collections are considered empty if they have a `length` of `0`.\n * Similarly, maps and sets are considered empty if they have a `size` of `0`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is empty, else `false`.\n * @example\n *\n * _.isEmpty(null);\n * // => true\n *\n * _.isEmpty(true);\n * // => true\n *\n * _.isEmpty(1);\n * // => true\n *\n * _.isEmpty([1, 2, 3]);\n * // => false\n *\n * _.isEmpty({ 'a': 1 });\n * // => false\n */\n function isEmpty(value) {\n if (value == null) {\n return true;\n }\n if (isArrayLike(value) &&\n (isArray(value) || typeof value == 'string' || typeof value.splice == 'function' ||\n isBuffer(value) || isTypedArray(value) || isArguments(value))) {\n return !value.length;\n }\n var tag = getTag(value);\n if (tag == mapTag || tag == setTag) {\n return !value.size;\n }\n if (isPrototype(value)) {\n return !baseKeys(value).length;\n }\n for (var key in value) {\n if (hasOwnProperty.call(value, key)) {\n return false;\n }\n }\n return true;\n }\n\n /**\n * Performs a deep comparison between two values to determine if they are\n * equivalent.\n *\n * **Note:** This method supports comparing arrays, array buffers, booleans,\n * date objects, error objects, maps, numbers, `Object` objects, regexes,\n * sets, strings, symbols, and typed arrays. `Object` objects are compared\n * by their own, not inherited, enumerable properties. Functions and DOM\n * nodes are compared by strict equality, i.e. `===`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.isEqual(object, other);\n * // => true\n *\n * object === other;\n * // => false\n */\n function isEqual(value, other) {\n return baseIsEqual(value, other);\n }\n\n /**\n * This method is like `_.isEqual` except that it accepts `customizer` which\n * is invoked to compare values. If `customizer` returns `undefined`, comparisons\n * are handled by the method instead. The `customizer` is invoked with up to\n * six arguments: (objValue, othValue [, index|key, object, other, stack]).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {Function} [customizer] The function to customize comparisons.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * function isGreeting(value) {\n * return /^h(?:i|ello)$/.test(value);\n * }\n *\n * function customizer(objValue, othValue) {\n * if (isGreeting(objValue) && isGreeting(othValue)) {\n * return true;\n * }\n * }\n *\n * var array = ['hello', 'goodbye'];\n * var other = ['hi', 'goodbye'];\n *\n * _.isEqualWith(array, other, customizer);\n * // => true\n */\n function isEqualWith(value, other, customizer) {\n customizer = typeof customizer == 'function' ? customizer : undefined;\n var result = customizer ? customizer(value, other) : undefined;\n return result === undefined ? baseIsEqual(value, other, undefined, customizer) : !!result;\n }\n\n /**\n * Checks if `value` is an `Error`, `EvalError`, `RangeError`, `ReferenceError`,\n * `SyntaxError`, `TypeError`, or `URIError` object.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an error object, else `false`.\n * @example\n *\n * _.isError(new Error);\n * // => true\n *\n * _.isError(Error);\n * // => false\n */\n function isError(value) {\n if (!isObjectLike(value)) {\n return false;\n }\n var tag = baseGetTag(value);\n return tag == errorTag || tag == domExcTag ||\n (typeof value.message == 'string' && typeof value.name == 'string' && !isPlainObject(value));\n }\n\n /**\n * Checks if `value` is a finite primitive number.\n *\n * **Note:** This method is based on\n * [`Number.isFinite`](https://mdn.io/Number/isFinite).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a finite number, else `false`.\n * @example\n *\n * _.isFinite(3);\n * // => true\n *\n * _.isFinite(Number.MIN_VALUE);\n * // => true\n *\n * _.isFinite(Infinity);\n * // => false\n *\n * _.isFinite('3');\n * // => false\n */\n function isFinite(value) {\n return typeof value == 'number' && nativeIsFinite(value);\n }\n\n /**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\n function isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n }\n\n /**\n * Checks if `value` is an integer.\n *\n * **Note:** This method is based on\n * [`Number.isInteger`](https://mdn.io/Number/isInteger).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an integer, else `false`.\n * @example\n *\n * _.isInteger(3);\n * // => true\n *\n * _.isInteger(Number.MIN_VALUE);\n * // => false\n *\n * _.isInteger(Infinity);\n * // => false\n *\n * _.isInteger('3');\n * // => false\n */\n function isInteger(value) {\n return typeof value == 'number' && value == toInteger(value);\n }\n\n /**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\n function isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n }\n\n /**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\n function isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n }\n\n /**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\n function isObjectLike(value) {\n return value != null && typeof value == 'object';\n }\n\n /**\n * Checks if `value` is classified as a `Map` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n * @example\n *\n * _.isMap(new Map);\n * // => true\n *\n * _.isMap(new WeakMap);\n * // => false\n */\n var isMap = nodeIsMap ? baseUnary(nodeIsMap) : baseIsMap;\n\n /**\n * Performs a partial deep comparison between `object` and `source` to\n * determine if `object` contains equivalent property values.\n *\n * **Note:** This method is equivalent to `_.matches` when `source` is\n * partially applied.\n *\n * Partial comparisons will match empty array and empty object `source`\n * values against any array or object value, respectively. See `_.isEqual`\n * for a list of supported value comparisons.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property values to match.\n * @returns {boolean} Returns `true` if `object` is a match, else `false`.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n *\n * _.isMatch(object, { 'b': 2 });\n * // => true\n *\n * _.isMatch(object, { 'b': 1 });\n * // => false\n */\n function isMatch(object, source) {\n return object === source || baseIsMatch(object, source, getMatchData(source));\n }\n\n /**\n * This method is like `_.isMatch` except that it accepts `customizer` which\n * is invoked to compare values. If `customizer` returns `undefined`, comparisons\n * are handled by the method instead. The `customizer` is invoked with five\n * arguments: (objValue, srcValue, index|key, object, source).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property values to match.\n * @param {Function} [customizer] The function to customize comparisons.\n * @returns {boolean} Returns `true` if `object` is a match, else `false`.\n * @example\n *\n * function isGreeting(value) {\n * return /^h(?:i|ello)$/.test(value);\n * }\n *\n * function customizer(objValue, srcValue) {\n * if (isGreeting(objValue) && isGreeting(srcValue)) {\n * return true;\n * }\n * }\n *\n * var object = { 'greeting': 'hello' };\n * var source = { 'greeting': 'hi' };\n *\n * _.isMatchWith(object, source, customizer);\n * // => true\n */\n function isMatchWith(object, source, customizer) {\n customizer = typeof customizer == 'function' ? customizer : undefined;\n return baseIsMatch(object, source, getMatchData(source), customizer);\n }\n\n /**\n * Checks if `value` is `NaN`.\n *\n * **Note:** This method is based on\n * [`Number.isNaN`](https://mdn.io/Number/isNaN) and is not the same as\n * global [`isNaN`](https://mdn.io/isNaN) which returns `true` for\n * `undefined` and other non-number values.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`.\n * @example\n *\n * _.isNaN(NaN);\n * // => true\n *\n * _.isNaN(new Number(NaN));\n * // => true\n *\n * isNaN(undefined);\n * // => true\n *\n * _.isNaN(undefined);\n * // => false\n */\n function isNaN(value) {\n // An `NaN` primitive is the only value that is not equal to itself.\n // Perform the `toStringTag` check first to avoid errors with some\n // ActiveX objects in IE.\n return isNumber(value) && value != +value;\n }\n\n /**\n * Checks if `value` is a pristine native function.\n *\n * **Note:** This method can't reliably detect native functions in the presence\n * of the core-js package because core-js circumvents this kind of detection.\n * Despite multiple requests, the core-js maintainer has made it clear: any\n * attempt to fix the detection will be obstructed. As a result, we're left\n * with little choice but to throw an error. Unfortunately, this also affects\n * packages, like [babel-polyfill](https://www.npmjs.com/package/babel-polyfill),\n * which rely on core-js.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n * @example\n *\n * _.isNative(Array.prototype.push);\n * // => true\n *\n * _.isNative(_);\n * // => false\n */\n function isNative(value) {\n if (isMaskable(value)) {\n throw new Error(CORE_ERROR_TEXT);\n }\n return baseIsNative(value);\n }\n\n /**\n * Checks if `value` is `null`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `null`, else `false`.\n * @example\n *\n * _.isNull(null);\n * // => true\n *\n * _.isNull(void 0);\n * // => false\n */\n function isNull(value) {\n return value === null;\n }\n\n /**\n * Checks if `value` is `null` or `undefined`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is nullish, else `false`.\n * @example\n *\n * _.isNil(null);\n * // => true\n *\n * _.isNil(void 0);\n * // => true\n *\n * _.isNil(NaN);\n * // => false\n */\n function isNil(value) {\n return value == null;\n }\n\n /**\n * Checks if `value` is classified as a `Number` primitive or object.\n *\n * **Note:** To exclude `Infinity`, `-Infinity`, and `NaN`, which are\n * classified as numbers, use the `_.isFinite` method.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a number, else `false`.\n * @example\n *\n * _.isNumber(3);\n * // => true\n *\n * _.isNumber(Number.MIN_VALUE);\n * // => true\n *\n * _.isNumber(Infinity);\n * // => true\n *\n * _.isNumber('3');\n * // => false\n */\n function isNumber(value) {\n return typeof value == 'number' ||\n (isObjectLike(value) && baseGetTag(value) == numberTag);\n }\n\n /**\n * Checks if `value` is a plain object, that is, an object created by the\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\n *\n * @static\n * @memberOf _\n * @since 0.8.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * _.isPlainObject(new Foo);\n * // => false\n *\n * _.isPlainObject([1, 2, 3]);\n * // => false\n *\n * _.isPlainObject({ 'x': 0, 'y': 0 });\n * // => true\n *\n * _.isPlainObject(Object.create(null));\n * // => true\n */\n function isPlainObject(value) {\n if (!isObjectLike(value) || baseGetTag(value) != objectTag) {\n return false;\n }\n var proto = getPrototype(value);\n if (proto === null) {\n return true;\n }\n var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;\n return typeof Ctor == 'function' && Ctor instanceof Ctor &&\n funcToString.call(Ctor) == objectCtorString;\n }\n\n /**\n * Checks if `value` is classified as a `RegExp` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a regexp, else `false`.\n * @example\n *\n * _.isRegExp(/abc/);\n * // => true\n *\n * _.isRegExp('/abc/');\n * // => false\n */\n var isRegExp = nodeIsRegExp ? baseUnary(nodeIsRegExp) : baseIsRegExp;\n\n /**\n * Checks if `value` is a safe integer. An integer is safe if it's an IEEE-754\n * double precision number which isn't the result of a rounded unsafe integer.\n *\n * **Note:** This method is based on\n * [`Number.isSafeInteger`](https://mdn.io/Number/isSafeInteger).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a safe integer, else `false`.\n * @example\n *\n * _.isSafeInteger(3);\n * // => true\n *\n * _.isSafeInteger(Number.MIN_VALUE);\n * // => false\n *\n * _.isSafeInteger(Infinity);\n * // => false\n *\n * _.isSafeInteger('3');\n * // => false\n */\n function isSafeInteger(value) {\n return isInteger(value) && value >= -MAX_SAFE_INTEGER && value <= MAX_SAFE_INTEGER;\n }\n\n /**\n * Checks if `value` is classified as a `Set` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n * @example\n *\n * _.isSet(new Set);\n * // => true\n *\n * _.isSet(new WeakSet);\n * // => false\n */\n var isSet = nodeIsSet ? baseUnary(nodeIsSet) : baseIsSet;\n\n /**\n * Checks if `value` is classified as a `String` primitive or object.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a string, else `false`.\n * @example\n *\n * _.isString('abc');\n * // => true\n *\n * _.isString(1);\n * // => false\n */\n function isString(value) {\n return typeof value == 'string' ||\n (!isArray(value) && isObjectLike(value) && baseGetTag(value) == stringTag);\n }\n\n /**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\n function isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n }\n\n /**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\n var isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\n /**\n * Checks if `value` is `undefined`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `undefined`, else `false`.\n * @example\n *\n * _.isUndefined(void 0);\n * // => true\n *\n * _.isUndefined(null);\n * // => false\n */\n function isUndefined(value) {\n return value === undefined;\n }\n\n /**\n * Checks if `value` is classified as a `WeakMap` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a weak map, else `false`.\n * @example\n *\n * _.isWeakMap(new WeakMap);\n * // => true\n *\n * _.isWeakMap(new Map);\n * // => false\n */\n function isWeakMap(value) {\n return isObjectLike(value) && getTag(value) == weakMapTag;\n }\n\n /**\n * Checks if `value` is classified as a `WeakSet` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a weak set, else `false`.\n * @example\n *\n * _.isWeakSet(new WeakSet);\n * // => true\n *\n * _.isWeakSet(new Set);\n * // => false\n */\n function isWeakSet(value) {\n return isObjectLike(value) && baseGetTag(value) == weakSetTag;\n }\n\n /**\n * Checks if `value` is less than `other`.\n *\n * @static\n * @memberOf _\n * @since 3.9.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is less than `other`,\n * else `false`.\n * @see _.gt\n * @example\n *\n * _.lt(1, 3);\n * // => true\n *\n * _.lt(3, 3);\n * // => false\n *\n * _.lt(3, 1);\n * // => false\n */\n var lt = createRelationalOperation(baseLt);\n\n /**\n * Checks if `value` is less than or equal to `other`.\n *\n * @static\n * @memberOf _\n * @since 3.9.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is less than or equal to\n * `other`, else `false`.\n * @see _.gte\n * @example\n *\n * _.lte(1, 3);\n * // => true\n *\n * _.lte(3, 3);\n * // => true\n *\n * _.lte(3, 1);\n * // => false\n */\n var lte = createRelationalOperation(function(value, other) {\n return value <= other;\n });\n\n /**\n * Converts `value` to an array.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {Array} Returns the converted array.\n * @example\n *\n * _.toArray({ 'a': 1, 'b': 2 });\n * // => [1, 2]\n *\n * _.toArray('abc');\n * // => ['a', 'b', 'c']\n *\n * _.toArray(1);\n * // => []\n *\n * _.toArray(null);\n * // => []\n */\n function toArray(value) {\n if (!value) {\n return [];\n }\n if (isArrayLike(value)) {\n return isString(value) ? stringToArray(value) : copyArray(value);\n }\n if (symIterator && value[symIterator]) {\n return iteratorToArray(value[symIterator]());\n }\n var tag = getTag(value),\n func = tag == mapTag ? mapToArray : (tag == setTag ? setToArray : values);\n\n return func(value);\n }\n\n /**\n * Converts `value` to a finite number.\n *\n * @static\n * @memberOf _\n * @since 4.12.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted number.\n * @example\n *\n * _.toFinite(3.2);\n * // => 3.2\n *\n * _.toFinite(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toFinite(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toFinite('3.2');\n * // => 3.2\n */\n function toFinite(value) {\n if (!value) {\n return value === 0 ? value : 0;\n }\n value = toNumber(value);\n if (value === INFINITY || value === -INFINITY) {\n var sign = (value < 0 ? -1 : 1);\n return sign * MAX_INTEGER;\n }\n return value === value ? value : 0;\n }\n\n /**\n * Converts `value` to an integer.\n *\n * **Note:** This method is loosely based on\n * [`ToInteger`](http://www.ecma-international.org/ecma-262/7.0/#sec-tointeger).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.toInteger(3.2);\n * // => 3\n *\n * _.toInteger(Number.MIN_VALUE);\n * // => 0\n *\n * _.toInteger(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toInteger('3.2');\n * // => 3\n */\n function toInteger(value) {\n var result = toFinite(value),\n remainder = result % 1;\n\n return result === result ? (remainder ? result - remainder : result) : 0;\n }\n\n /**\n * Converts `value` to an integer suitable for use as the length of an\n * array-like object.\n *\n * **Note:** This method is based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.toLength(3.2);\n * // => 3\n *\n * _.toLength(Number.MIN_VALUE);\n * // => 0\n *\n * _.toLength(Infinity);\n * // => 4294967295\n *\n * _.toLength('3.2');\n * // => 3\n */\n function toLength(value) {\n return value ? baseClamp(toInteger(value), 0, MAX_ARRAY_LENGTH) : 0;\n }\n\n /**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\n function toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = baseTrim(value);\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n }\n\n /**\n * Converts `value` to a plain object flattening inherited enumerable string\n * keyed properties of `value` to own properties of the plain object.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {Object} Returns the converted plain object.\n * @example\n *\n * function Foo() {\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.assign({ 'a': 1 }, new Foo);\n * // => { 'a': 1, 'b': 2 }\n *\n * _.assign({ 'a': 1 }, _.toPlainObject(new Foo));\n * // => { 'a': 1, 'b': 2, 'c': 3 }\n */\n function toPlainObject(value) {\n return copyObject(value, keysIn(value));\n }\n\n /**\n * Converts `value` to a safe integer. A safe integer can be compared and\n * represented correctly.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.toSafeInteger(3.2);\n * // => 3\n *\n * _.toSafeInteger(Number.MIN_VALUE);\n * // => 0\n *\n * _.toSafeInteger(Infinity);\n * // => 9007199254740991\n *\n * _.toSafeInteger('3.2');\n * // => 3\n */\n function toSafeInteger(value) {\n return value\n ? baseClamp(toInteger(value), -MAX_SAFE_INTEGER, MAX_SAFE_INTEGER)\n : (value === 0 ? value : 0);\n }\n\n /**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\n function toString(value) {\n return value == null ? '' : baseToString(value);\n }\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Assigns own enumerable string keyed properties of source objects to the\n * destination object. Source objects are applied from left to right.\n * Subsequent sources overwrite property assignments of previous sources.\n *\n * **Note:** This method mutates `object` and is loosely based on\n * [`Object.assign`](https://mdn.io/Object/assign).\n *\n * @static\n * @memberOf _\n * @since 0.10.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @see _.assignIn\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * function Bar() {\n * this.c = 3;\n * }\n *\n * Foo.prototype.b = 2;\n * Bar.prototype.d = 4;\n *\n * _.assign({ 'a': 0 }, new Foo, new Bar);\n * // => { 'a': 1, 'c': 3 }\n */\n var assign = createAssigner(function(object, source) {\n if (isPrototype(source) || isArrayLike(source)) {\n copyObject(source, keys(source), object);\n return;\n }\n for (var key in source) {\n if (hasOwnProperty.call(source, key)) {\n assignValue(object, key, source[key]);\n }\n }\n });\n\n /**\n * This method is like `_.assign` except that it iterates over own and\n * inherited source properties.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @alias extend\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @see _.assign\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * function Bar() {\n * this.c = 3;\n * }\n *\n * Foo.prototype.b = 2;\n * Bar.prototype.d = 4;\n *\n * _.assignIn({ 'a': 0 }, new Foo, new Bar);\n * // => { 'a': 1, 'b': 2, 'c': 3, 'd': 4 }\n */\n var assignIn = createAssigner(function(object, source) {\n copyObject(source, keysIn(source), object);\n });\n\n /**\n * This method is like `_.assignIn` except that it accepts `customizer`\n * which is invoked to produce the assigned values. If `customizer` returns\n * `undefined`, assignment is handled by the method instead. The `customizer`\n * is invoked with five arguments: (objValue, srcValue, key, object, source).\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @alias extendWith\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} sources The source objects.\n * @param {Function} [customizer] The function to customize assigned values.\n * @returns {Object} Returns `object`.\n * @see _.assignWith\n * @example\n *\n * function customizer(objValue, srcValue) {\n * return _.isUndefined(objValue) ? srcValue : objValue;\n * }\n *\n * var defaults = _.partialRight(_.assignInWith, customizer);\n *\n * defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 });\n * // => { 'a': 1, 'b': 2 }\n */\n var assignInWith = createAssigner(function(object, source, srcIndex, customizer) {\n copyObject(source, keysIn(source), object, customizer);\n });\n\n /**\n * This method is like `_.assign` except that it accepts `customizer`\n * which is invoked to produce the assigned values. If `customizer` returns\n * `undefined`, assignment is handled by the method instead. The `customizer`\n * is invoked with five arguments: (objValue, srcValue, key, object, source).\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} sources The source objects.\n * @param {Function} [customizer] The function to customize assigned values.\n * @returns {Object} Returns `object`.\n * @see _.assignInWith\n * @example\n *\n * function customizer(objValue, srcValue) {\n * return _.isUndefined(objValue) ? srcValue : objValue;\n * }\n *\n * var defaults = _.partialRight(_.assignWith, customizer);\n *\n * defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 });\n * // => { 'a': 1, 'b': 2 }\n */\n var assignWith = createAssigner(function(object, source, srcIndex, customizer) {\n copyObject(source, keys(source), object, customizer);\n });\n\n /**\n * Creates an array of values corresponding to `paths` of `object`.\n *\n * @static\n * @memberOf _\n * @since 1.0.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {...(string|string[])} [paths] The property paths to pick.\n * @returns {Array} Returns the picked values.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }, 4] };\n *\n * _.at(object, ['a[0].b.c', 'a[1]']);\n * // => [3, 4]\n */\n var at = flatRest(baseAt);\n\n /**\n * Creates an object that inherits from the `prototype` object. If a\n * `properties` object is given, its own enumerable string keyed properties\n * are assigned to the created object.\n *\n * @static\n * @memberOf _\n * @since 2.3.0\n * @category Object\n * @param {Object} prototype The object to inherit from.\n * @param {Object} [properties] The properties to assign to the object.\n * @returns {Object} Returns the new object.\n * @example\n *\n * function Shape() {\n * this.x = 0;\n * this.y = 0;\n * }\n *\n * function Circle() {\n * Shape.call(this);\n * }\n *\n * Circle.prototype = _.create(Shape.prototype, {\n * 'constructor': Circle\n * });\n *\n * var circle = new Circle;\n * circle instanceof Circle;\n * // => true\n *\n * circle instanceof Shape;\n * // => true\n */\n function create(prototype, properties) {\n var result = baseCreate(prototype);\n return properties == null ? result : baseAssign(result, properties);\n }\n\n /**\n * Assigns own and inherited enumerable string keyed properties of source\n * objects to the destination object for all destination properties that\n * resolve to `undefined`. Source objects are applied from left to right.\n * Once a property is set, additional values of the same property are ignored.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @see _.defaultsDeep\n * @example\n *\n * _.defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 });\n * // => { 'a': 1, 'b': 2 }\n */\n var defaults = baseRest(function(object, sources) {\n object = Object(object);\n\n var index = -1;\n var length = sources.length;\n var guard = length > 2 ? sources[2] : undefined;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n length = 1;\n }\n\n while (++index < length) {\n var source = sources[index];\n var props = keysIn(source);\n var propsIndex = -1;\n var propsLength = props.length;\n\n while (++propsIndex < propsLength) {\n var key = props[propsIndex];\n var value = object[key];\n\n if (value === undefined ||\n (eq(value, objectProto[key]) && !hasOwnProperty.call(object, key))) {\n object[key] = source[key];\n }\n }\n }\n\n return object;\n });\n\n /**\n * This method is like `_.defaults` except that it recursively assigns\n * default properties.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 3.10.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @see _.defaults\n * @example\n *\n * _.defaultsDeep({ 'a': { 'b': 2 } }, { 'a': { 'b': 1, 'c': 3 } });\n * // => { 'a': { 'b': 2, 'c': 3 } }\n */\n var defaultsDeep = baseRest(function(args) {\n args.push(undefined, customDefaultsMerge);\n return apply(mergeWith, undefined, args);\n });\n\n /**\n * This method is like `_.find` except that it returns the key of the first\n * element `predicate` returns truthy for instead of the element itself.\n *\n * @static\n * @memberOf _\n * @since 1.1.0\n * @category Object\n * @param {Object} object The object to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {string|undefined} Returns the key of the matched element,\n * else `undefined`.\n * @example\n *\n * var users = {\n * 'barney': { 'age': 36, 'active': true },\n * 'fred': { 'age': 40, 'active': false },\n * 'pebbles': { 'age': 1, 'active': true }\n * };\n *\n * _.findKey(users, function(o) { return o.age < 40; });\n * // => 'barney' (iteration order is not guaranteed)\n *\n * // The `_.matches` iteratee shorthand.\n * _.findKey(users, { 'age': 1, 'active': true });\n * // => 'pebbles'\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.findKey(users, ['active', false]);\n * // => 'fred'\n *\n * // The `_.property` iteratee shorthand.\n * _.findKey(users, 'active');\n * // => 'barney'\n */\n function findKey(object, predicate) {\n return baseFindKey(object, getIteratee(predicate, 3), baseForOwn);\n }\n\n /**\n * This method is like `_.findKey` except that it iterates over elements of\n * a collection in the opposite order.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Object\n * @param {Object} object The object to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {string|undefined} Returns the key of the matched element,\n * else `undefined`.\n * @example\n *\n * var users = {\n * 'barney': { 'age': 36, 'active': true },\n * 'fred': { 'age': 40, 'active': false },\n * 'pebbles': { 'age': 1, 'active': true }\n * };\n *\n * _.findLastKey(users, function(o) { return o.age < 40; });\n * // => returns 'pebbles' assuming `_.findKey` returns 'barney'\n *\n * // The `_.matches` iteratee shorthand.\n * _.findLastKey(users, { 'age': 36, 'active': true });\n * // => 'barney'\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.findLastKey(users, ['active', false]);\n * // => 'fred'\n *\n * // The `_.property` iteratee shorthand.\n * _.findLastKey(users, 'active');\n * // => 'pebbles'\n */\n function findLastKey(object, predicate) {\n return baseFindKey(object, getIteratee(predicate, 3), baseForOwnRight);\n }\n\n /**\n * Iterates over own and inherited enumerable string keyed properties of an\n * object and invokes `iteratee` for each property. The iteratee is invoked\n * with three arguments: (value, key, object). Iteratee functions may exit\n * iteration early by explicitly returning `false`.\n *\n * @static\n * @memberOf _\n * @since 0.3.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns `object`.\n * @see _.forInRight\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.forIn(new Foo, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'a', 'b', then 'c' (iteration order is not guaranteed).\n */\n function forIn(object, iteratee) {\n return object == null\n ? object\n : baseFor(object, getIteratee(iteratee, 3), keysIn);\n }\n\n /**\n * This method is like `_.forIn` except that it iterates over properties of\n * `object` in the opposite order.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns `object`.\n * @see _.forIn\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.forInRight(new Foo, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'c', 'b', then 'a' assuming `_.forIn` logs 'a', 'b', then 'c'.\n */\n function forInRight(object, iteratee) {\n return object == null\n ? object\n : baseForRight(object, getIteratee(iteratee, 3), keysIn);\n }\n\n /**\n * Iterates over own enumerable string keyed properties of an object and\n * invokes `iteratee` for each property. The iteratee is invoked with three\n * arguments: (value, key, object). Iteratee functions may exit iteration\n * early by explicitly returning `false`.\n *\n * @static\n * @memberOf _\n * @since 0.3.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns `object`.\n * @see _.forOwnRight\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.forOwn(new Foo, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'a' then 'b' (iteration order is not guaranteed).\n */\n function forOwn(object, iteratee) {\n return object && baseForOwn(object, getIteratee(iteratee, 3));\n }\n\n /**\n * This method is like `_.forOwn` except that it iterates over properties of\n * `object` in the opposite order.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns `object`.\n * @see _.forOwn\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.forOwnRight(new Foo, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'b' then 'a' assuming `_.forOwn` logs 'a' then 'b'.\n */\n function forOwnRight(object, iteratee) {\n return object && baseForOwnRight(object, getIteratee(iteratee, 3));\n }\n\n /**\n * Creates an array of function property names from own enumerable properties\n * of `object`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to inspect.\n * @returns {Array} Returns the function names.\n * @see _.functionsIn\n * @example\n *\n * function Foo() {\n * this.a = _.constant('a');\n * this.b = _.constant('b');\n * }\n *\n * Foo.prototype.c = _.constant('c');\n *\n * _.functions(new Foo);\n * // => ['a', 'b']\n */\n function functions(object) {\n return object == null ? [] : baseFunctions(object, keys(object));\n }\n\n /**\n * Creates an array of function property names from own and inherited\n * enumerable properties of `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to inspect.\n * @returns {Array} Returns the function names.\n * @see _.functions\n * @example\n *\n * function Foo() {\n * this.a = _.constant('a');\n * this.b = _.constant('b');\n * }\n *\n * Foo.prototype.c = _.constant('c');\n *\n * _.functionsIn(new Foo);\n * // => ['a', 'b', 'c']\n */\n function functionsIn(object) {\n return object == null ? [] : baseFunctions(object, keysIn(object));\n }\n\n /**\n * Gets the value at `path` of `object`. If the resolved value is\n * `undefined`, the `defaultValue` is returned in its place.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.get(object, 'a[0].b.c');\n * // => 3\n *\n * _.get(object, ['a', '0', 'b', 'c']);\n * // => 3\n *\n * _.get(object, 'a.b.c', 'default');\n * // => 'default'\n */\n function get(object, path, defaultValue) {\n var result = object == null ? undefined : baseGet(object, path);\n return result === undefined ? defaultValue : result;\n }\n\n /**\n * Checks if `path` is a direct property of `object`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n * @example\n *\n * var object = { 'a': { 'b': 2 } };\n * var other = _.create({ 'a': _.create({ 'b': 2 }) });\n *\n * _.has(object, 'a');\n * // => true\n *\n * _.has(object, 'a.b');\n * // => true\n *\n * _.has(object, ['a', 'b']);\n * // => true\n *\n * _.has(other, 'a');\n * // => false\n */\n function has(object, path) {\n return object != null && hasPath(object, path, baseHas);\n }\n\n /**\n * Checks if `path` is a direct or inherited property of `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n * @example\n *\n * var object = _.create({ 'a': _.create({ 'b': 2 }) });\n *\n * _.hasIn(object, 'a');\n * // => true\n *\n * _.hasIn(object, 'a.b');\n * // => true\n *\n * _.hasIn(object, ['a', 'b']);\n * // => true\n *\n * _.hasIn(object, 'b');\n * // => false\n */\n function hasIn(object, path) {\n return object != null && hasPath(object, path, baseHasIn);\n }\n\n /**\n * Creates an object composed of the inverted keys and values of `object`.\n * If `object` contains duplicate values, subsequent values overwrite\n * property assignments of previous values.\n *\n * @static\n * @memberOf _\n * @since 0.7.0\n * @category Object\n * @param {Object} object The object to invert.\n * @returns {Object} Returns the new inverted object.\n * @example\n *\n * var object = { 'a': 1, 'b': 2, 'c': 1 };\n *\n * _.invert(object);\n * // => { '1': 'c', '2': 'b' }\n */\n var invert = createInverter(function(result, value, key) {\n if (value != null &&\n typeof value.toString != 'function') {\n value = nativeObjectToString.call(value);\n }\n\n result[value] = key;\n }, constant(identity));\n\n /**\n * This method is like `_.invert` except that the inverted object is generated\n * from the results of running each element of `object` thru `iteratee`. The\n * corresponding inverted value of each inverted key is an array of keys\n * responsible for generating the inverted value. The iteratee is invoked\n * with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.1.0\n * @category Object\n * @param {Object} object The object to invert.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Object} Returns the new inverted object.\n * @example\n *\n * var object = { 'a': 1, 'b': 2, 'c': 1 };\n *\n * _.invertBy(object);\n * // => { '1': ['a', 'c'], '2': ['b'] }\n *\n * _.invertBy(object, function(value) {\n * return 'group' + value;\n * });\n * // => { 'group1': ['a', 'c'], 'group2': ['b'] }\n */\n var invertBy = createInverter(function(result, value, key) {\n if (value != null &&\n typeof value.toString != 'function') {\n value = nativeObjectToString.call(value);\n }\n\n if (hasOwnProperty.call(result, value)) {\n result[value].push(key);\n } else {\n result[value] = [key];\n }\n }, getIteratee);\n\n /**\n * Invokes the method at `path` of `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the method to invoke.\n * @param {...*} [args] The arguments to invoke the method with.\n * @returns {*} Returns the result of the invoked method.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': [1, 2, 3, 4] } }] };\n *\n * _.invoke(object, 'a[0].b.c.slice', 1, 3);\n * // => [2, 3]\n */\n var invoke = baseRest(baseInvoke);\n\n /**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\n function keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n }\n\n /**\n * Creates an array of the own and inherited enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keysIn(new Foo);\n * // => ['a', 'b', 'c'] (iteration order is not guaranteed)\n */\n function keysIn(object) {\n return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);\n }\n\n /**\n * The opposite of `_.mapValues`; this method creates an object with the\n * same values as `object` and keys generated by running each own enumerable\n * string keyed property of `object` thru `iteratee`. The iteratee is invoked\n * with three arguments: (value, key, object).\n *\n * @static\n * @memberOf _\n * @since 3.8.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns the new mapped object.\n * @see _.mapValues\n * @example\n *\n * _.mapKeys({ 'a': 1, 'b': 2 }, function(value, key) {\n * return key + value;\n * });\n * // => { 'a1': 1, 'b2': 2 }\n */\n function mapKeys(object, iteratee) {\n var result = {};\n iteratee = getIteratee(iteratee, 3);\n\n baseForOwn(object, function(value, key, object) {\n baseAssignValue(result, iteratee(value, key, object), value);\n });\n return result;\n }\n\n /**\n * Creates an object with the same keys as `object` and values generated\n * by running each own enumerable string keyed property of `object` thru\n * `iteratee`. The iteratee is invoked with three arguments:\n * (value, key, object).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns the new mapped object.\n * @see _.mapKeys\n * @example\n *\n * var users = {\n * 'fred': { 'user': 'fred', 'age': 40 },\n * 'pebbles': { 'user': 'pebbles', 'age': 1 }\n * };\n *\n * _.mapValues(users, function(o) { return o.age; });\n * // => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed)\n *\n * // The `_.property` iteratee shorthand.\n * _.mapValues(users, 'age');\n * // => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed)\n */\n function mapValues(object, iteratee) {\n var result = {};\n iteratee = getIteratee(iteratee, 3);\n\n baseForOwn(object, function(value, key, object) {\n baseAssignValue(result, key, iteratee(value, key, object));\n });\n return result;\n }\n\n /**\n * This method is like `_.assign` except that it recursively merges own and\n * inherited enumerable string keyed properties of source objects into the\n * destination object. Source properties that resolve to `undefined` are\n * skipped if a destination value exists. Array and plain object properties\n * are merged recursively. Other objects and value types are overridden by\n * assignment. Source objects are applied from left to right. Subsequent\n * sources overwrite property assignments of previous sources.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 0.5.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = {\n * 'a': [{ 'b': 2 }, { 'd': 4 }]\n * };\n *\n * var other = {\n * 'a': [{ 'c': 3 }, { 'e': 5 }]\n * };\n *\n * _.merge(object, other);\n * // => { 'a': [{ 'b': 2, 'c': 3 }, { 'd': 4, 'e': 5 }] }\n */\n var merge = createAssigner(function(object, source, srcIndex) {\n baseMerge(object, source, srcIndex);\n });\n\n /**\n * This method is like `_.merge` except that it accepts `customizer` which\n * is invoked to produce the merged values of the destination and source\n * properties. If `customizer` returns `undefined`, merging is handled by the\n * method instead. The `customizer` is invoked with six arguments:\n * (objValue, srcValue, key, object, source, stack).\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} sources The source objects.\n * @param {Function} customizer The function to customize assigned values.\n * @returns {Object} Returns `object`.\n * @example\n *\n * function customizer(objValue, srcValue) {\n * if (_.isArray(objValue)) {\n * return objValue.concat(srcValue);\n * }\n * }\n *\n * var object = { 'a': [1], 'b': [2] };\n * var other = { 'a': [3], 'b': [4] };\n *\n * _.mergeWith(object, other, customizer);\n * // => { 'a': [1, 3], 'b': [2, 4] }\n */\n var mergeWith = createAssigner(function(object, source, srcIndex, customizer) {\n baseMerge(object, source, srcIndex, customizer);\n });\n\n /**\n * The opposite of `_.pick`; this method creates an object composed of the\n * own and inherited enumerable property paths of `object` that are not omitted.\n *\n * **Note:** This method is considerably slower than `_.pick`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The source object.\n * @param {...(string|string[])} [paths] The property paths to omit.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.omit(object, ['a', 'c']);\n * // => { 'b': '2' }\n */\n var omit = flatRest(function(object, paths) {\n var result = {};\n if (object == null) {\n return result;\n }\n var isDeep = false;\n paths = arrayMap(paths, function(path) {\n path = castPath(path, object);\n isDeep || (isDeep = path.length > 1);\n return path;\n });\n copyObject(object, getAllKeysIn(object), result);\n if (isDeep) {\n result = baseClone(result, CLONE_DEEP_FLAG | CLONE_FLAT_FLAG | CLONE_SYMBOLS_FLAG, customOmitClone);\n }\n var length = paths.length;\n while (length--) {\n baseUnset(result, paths[length]);\n }\n return result;\n });\n\n /**\n * The opposite of `_.pickBy`; this method creates an object composed of\n * the own and inherited enumerable string keyed properties of `object` that\n * `predicate` doesn't return truthy for. The predicate is invoked with two\n * arguments: (value, key).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The source object.\n * @param {Function} [predicate=_.identity] The function invoked per property.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.omitBy(object, _.isNumber);\n * // => { 'b': '2' }\n */\n function omitBy(object, predicate) {\n return pickBy(object, negate(getIteratee(predicate)));\n }\n\n /**\n * Creates an object composed of the picked `object` properties.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The source object.\n * @param {...(string|string[])} [paths] The property paths to pick.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.pick(object, ['a', 'c']);\n * // => { 'a': 1, 'c': 3 }\n */\n var pick = flatRest(function(object, paths) {\n return object == null ? {} : basePick(object, paths);\n });\n\n /**\n * Creates an object composed of the `object` properties `predicate` returns\n * truthy for. The predicate is invoked with two arguments: (value, key).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The source object.\n * @param {Function} [predicate=_.identity] The function invoked per property.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.pickBy(object, _.isNumber);\n * // => { 'a': 1, 'c': 3 }\n */\n function pickBy(object, predicate) {\n if (object == null) {\n return {};\n }\n var props = arrayMap(getAllKeysIn(object), function(prop) {\n return [prop];\n });\n predicate = getIteratee(predicate);\n return basePickBy(object, props, function(value, path) {\n return predicate(value, path[0]);\n });\n }\n\n /**\n * This method is like `_.get` except that if the resolved value is a\n * function it's invoked with the `this` binding of its parent object and\n * its result is returned.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to resolve.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c1': 3, 'c2': _.constant(4) } }] };\n *\n * _.result(object, 'a[0].b.c1');\n * // => 3\n *\n * _.result(object, 'a[0].b.c2');\n * // => 4\n *\n * _.result(object, 'a[0].b.c3', 'default');\n * // => 'default'\n *\n * _.result(object, 'a[0].b.c3', _.constant('default'));\n * // => 'default'\n */\n function result(object, path, defaultValue) {\n path = castPath(path, object);\n\n var index = -1,\n length = path.length;\n\n // Ensure the loop is entered when path is empty.\n if (!length) {\n length = 1;\n object = undefined;\n }\n while (++index < length) {\n var value = object == null ? undefined : object[toKey(path[index])];\n if (value === undefined) {\n index = length;\n value = defaultValue;\n }\n object = isFunction(value) ? value.call(object) : value;\n }\n return object;\n }\n\n /**\n * Sets the value at `path` of `object`. If a portion of `path` doesn't exist,\n * it's created. Arrays are created for missing index properties while objects\n * are created for all other missing properties. Use `_.setWith` to customize\n * `path` creation.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.set(object, 'a[0].b.c', 4);\n * console.log(object.a[0].b.c);\n * // => 4\n *\n * _.set(object, ['x', '0', 'y', 'z'], 5);\n * console.log(object.x[0].y.z);\n * // => 5\n */\n function set(object, path, value) {\n return object == null ? object : baseSet(object, path, value);\n }\n\n /**\n * This method is like `_.set` except that it accepts `customizer` which is\n * invoked to produce the objects of `path`. If `customizer` returns `undefined`\n * path creation is handled by the method instead. The `customizer` is invoked\n * with three arguments: (nsValue, key, nsObject).\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {*} value The value to set.\n * @param {Function} [customizer] The function to customize assigned values.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = {};\n *\n * _.setWith(object, '[0][1]', 'a', Object);\n * // => { '0': { '1': 'a' } }\n */\n function setWith(object, path, value, customizer) {\n customizer = typeof customizer == 'function' ? customizer : undefined;\n return object == null ? object : baseSet(object, path, value, customizer);\n }\n\n /**\n * Creates an array of own enumerable string keyed-value pairs for `object`\n * which can be consumed by `_.fromPairs`. If `object` is a map or set, its\n * entries are returned.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @alias entries\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the key-value pairs.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.toPairs(new Foo);\n * // => [['a', 1], ['b', 2]] (iteration order is not guaranteed)\n */\n var toPairs = createToPairs(keys);\n\n /**\n * Creates an array of own and inherited enumerable string keyed-value pairs\n * for `object` which can be consumed by `_.fromPairs`. If `object` is a map\n * or set, its entries are returned.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @alias entriesIn\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the key-value pairs.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.toPairsIn(new Foo);\n * // => [['a', 1], ['b', 2], ['c', 3]] (iteration order is not guaranteed)\n */\n var toPairsIn = createToPairs(keysIn);\n\n /**\n * An alternative to `_.reduce`; this method transforms `object` to a new\n * `accumulator` object which is the result of running each of its own\n * enumerable string keyed properties thru `iteratee`, with each invocation\n * potentially mutating the `accumulator` object. If `accumulator` is not\n * provided, a new object with the same `[[Prototype]]` will be used. The\n * iteratee is invoked with four arguments: (accumulator, value, key, object).\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @static\n * @memberOf _\n * @since 1.3.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @param {*} [accumulator] The custom accumulator value.\n * @returns {*} Returns the accumulated value.\n * @example\n *\n * _.transform([2, 3, 4], function(result, n) {\n * result.push(n *= n);\n * return n % 2 == 0;\n * }, []);\n * // => [4, 9]\n *\n * _.transform({ 'a': 1, 'b': 2, 'c': 1 }, function(result, value, key) {\n * (result[value] || (result[value] = [])).push(key);\n * }, {});\n * // => { '1': ['a', 'c'], '2': ['b'] }\n */\n function transform(object, iteratee, accumulator) {\n var isArr = isArray(object),\n isArrLike = isArr || isBuffer(object) || isTypedArray(object);\n\n iteratee = getIteratee(iteratee, 4);\n if (accumulator == null) {\n var Ctor = object && object.constructor;\n if (isArrLike) {\n accumulator = isArr ? new Ctor : [];\n }\n else if (isObject(object)) {\n accumulator = isFunction(Ctor) ? baseCreate(getPrototype(object)) : {};\n }\n else {\n accumulator = {};\n }\n }\n (isArrLike ? arrayEach : baseForOwn)(object, function(value, index, object) {\n return iteratee(accumulator, value, index, object);\n });\n return accumulator;\n }\n\n /**\n * Removes the property at `path` of `object`.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to unset.\n * @returns {boolean} Returns `true` if the property is deleted, else `false`.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 7 } }] };\n * _.unset(object, 'a[0].b.c');\n * // => true\n *\n * console.log(object);\n * // => { 'a': [{ 'b': {} }] };\n *\n * _.unset(object, ['a', '0', 'b', 'c']);\n * // => true\n *\n * console.log(object);\n * // => { 'a': [{ 'b': {} }] };\n */\n function unset(object, path) {\n return object == null ? true : baseUnset(object, path);\n }\n\n /**\n * This method is like `_.set` except that accepts `updater` to produce the\n * value to set. Use `_.updateWith` to customize `path` creation. The `updater`\n * is invoked with one argument: (value).\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.6.0\n * @category Object\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {Function} updater The function to produce the updated value.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.update(object, 'a[0].b.c', function(n) { return n * n; });\n * console.log(object.a[0].b.c);\n * // => 9\n *\n * _.update(object, 'x[0].y.z', function(n) { return n ? n + 1 : 0; });\n * console.log(object.x[0].y.z);\n * // => 0\n */\n function update(object, path, updater) {\n return object == null ? object : baseUpdate(object, path, castFunction(updater));\n }\n\n /**\n * This method is like `_.update` except that it accepts `customizer` which is\n * invoked to produce the objects of `path`. If `customizer` returns `undefined`\n * path creation is handled by the method instead. The `customizer` is invoked\n * with three arguments: (nsValue, key, nsObject).\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.6.0\n * @category Object\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {Function} updater The function to produce the updated value.\n * @param {Function} [customizer] The function to customize assigned values.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = {};\n *\n * _.updateWith(object, '[0][1]', _.constant('a'), Object);\n * // => { '0': { '1': 'a' } }\n */\n function updateWith(object, path, updater, customizer) {\n customizer = typeof customizer == 'function' ? customizer : undefined;\n return object == null ? object : baseUpdate(object, path, castFunction(updater), customizer);\n }\n\n /**\n * Creates an array of the own enumerable string keyed property values of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property values.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.values(new Foo);\n * // => [1, 2] (iteration order is not guaranteed)\n *\n * _.values('hi');\n * // => ['h', 'i']\n */\n function values(object) {\n return object == null ? [] : baseValues(object, keys(object));\n }\n\n /**\n * Creates an array of the own and inherited enumerable string keyed property\n * values of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property values.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.valuesIn(new Foo);\n * // => [1, 2, 3] (iteration order is not guaranteed)\n */\n function valuesIn(object) {\n return object == null ? [] : baseValues(object, keysIn(object));\n }\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Clamps `number` within the inclusive `lower` and `upper` bounds.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Number\n * @param {number} number The number to clamp.\n * @param {number} [lower] The lower bound.\n * @param {number} upper The upper bound.\n * @returns {number} Returns the clamped number.\n * @example\n *\n * _.clamp(-10, -5, 5);\n * // => -5\n *\n * _.clamp(10, -5, 5);\n * // => 5\n */\n function clamp(number, lower, upper) {\n if (upper === undefined) {\n upper = lower;\n lower = undefined;\n }\n if (upper !== undefined) {\n upper = toNumber(upper);\n upper = upper === upper ? upper : 0;\n }\n if (lower !== undefined) {\n lower = toNumber(lower);\n lower = lower === lower ? lower : 0;\n }\n return baseClamp(toNumber(number), lower, upper);\n }\n\n /**\n * Checks if `n` is between `start` and up to, but not including, `end`. If\n * `end` is not specified, it's set to `start` with `start` then set to `0`.\n * If `start` is greater than `end` the params are swapped to support\n * negative ranges.\n *\n * @static\n * @memberOf _\n * @since 3.3.0\n * @category Number\n * @param {number} number The number to check.\n * @param {number} [start=0] The start of the range.\n * @param {number} end The end of the range.\n * @returns {boolean} Returns `true` if `number` is in the range, else `false`.\n * @see _.range, _.rangeRight\n * @example\n *\n * _.inRange(3, 2, 4);\n * // => true\n *\n * _.inRange(4, 8);\n * // => true\n *\n * _.inRange(4, 2);\n * // => false\n *\n * _.inRange(2, 2);\n * // => false\n *\n * _.inRange(1.2, 2);\n * // => true\n *\n * _.inRange(5.2, 4);\n * // => false\n *\n * _.inRange(-3, -2, -6);\n * // => true\n */\n function inRange(number, start, end) {\n start = toFinite(start);\n if (end === undefined) {\n end = start;\n start = 0;\n } else {\n end = toFinite(end);\n }\n number = toNumber(number);\n return baseInRange(number, start, end);\n }\n\n /**\n * Produces a random number between the inclusive `lower` and `upper` bounds.\n * If only one argument is provided a number between `0` and the given number\n * is returned. If `floating` is `true`, or either `lower` or `upper` are\n * floats, a floating-point number is returned instead of an integer.\n *\n * **Note:** JavaScript follows the IEEE-754 standard for resolving\n * floating-point values which can produce unexpected results.\n *\n * @static\n * @memberOf _\n * @since 0.7.0\n * @category Number\n * @param {number} [lower=0] The lower bound.\n * @param {number} [upper=1] The upper bound.\n * @param {boolean} [floating] Specify returning a floating-point number.\n * @returns {number} Returns the random number.\n * @example\n *\n * _.random(0, 5);\n * // => an integer between 0 and 5\n *\n * _.random(5);\n * // => also an integer between 0 and 5\n *\n * _.random(5, true);\n * // => a floating-point number between 0 and 5\n *\n * _.random(1.2, 5.2);\n * // => a floating-point number between 1.2 and 5.2\n */\n function random(lower, upper, floating) {\n if (floating && typeof floating != 'boolean' && isIterateeCall(lower, upper, floating)) {\n upper = floating = undefined;\n }\n if (floating === undefined) {\n if (typeof upper == 'boolean') {\n floating = upper;\n upper = undefined;\n }\n else if (typeof lower == 'boolean') {\n floating = lower;\n lower = undefined;\n }\n }\n if (lower === undefined && upper === undefined) {\n lower = 0;\n upper = 1;\n }\n else {\n lower = toFinite(lower);\n if (upper === undefined) {\n upper = lower;\n lower = 0;\n } else {\n upper = toFinite(upper);\n }\n }\n if (lower > upper) {\n var temp = lower;\n lower = upper;\n upper = temp;\n }\n if (floating || lower % 1 || upper % 1) {\n var rand = nativeRandom();\n return nativeMin(lower + (rand * (upper - lower + freeParseFloat('1e-' + ((rand + '').length - 1)))), upper);\n }\n return baseRandom(lower, upper);\n }\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Converts `string` to [camel case](https://en.wikipedia.org/wiki/CamelCase).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the camel cased string.\n * @example\n *\n * _.camelCase('Foo Bar');\n * // => 'fooBar'\n *\n * _.camelCase('--foo-bar--');\n * // => 'fooBar'\n *\n * _.camelCase('__FOO_BAR__');\n * // => 'fooBar'\n */\n var camelCase = createCompounder(function(result, word, index) {\n word = word.toLowerCase();\n return result + (index ? capitalize(word) : word);\n });\n\n /**\n * Converts the first character of `string` to upper case and the remaining\n * to lower case.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to capitalize.\n * @returns {string} Returns the capitalized string.\n * @example\n *\n * _.capitalize('FRED');\n * // => 'Fred'\n */\n function capitalize(string) {\n return upperFirst(toString(string).toLowerCase());\n }\n\n /**\n * Deburrs `string` by converting\n * [Latin-1 Supplement](https://en.wikipedia.org/wiki/Latin-1_Supplement_(Unicode_block)#Character_table)\n * and [Latin Extended-A](https://en.wikipedia.org/wiki/Latin_Extended-A)\n * letters to basic Latin letters and removing\n * [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to deburr.\n * @returns {string} Returns the deburred string.\n * @example\n *\n * _.deburr('d\u00E9j\u00E0 vu');\n * // => 'deja vu'\n */\n function deburr(string) {\n string = toString(string);\n return string && string.replace(reLatin, deburrLetter).replace(reComboMark, '');\n }\n\n /**\n * Checks if `string` ends with the given target string.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to inspect.\n * @param {string} [target] The string to search for.\n * @param {number} [position=string.length] The position to search up to.\n * @returns {boolean} Returns `true` if `string` ends with `target`,\n * else `false`.\n * @example\n *\n * _.endsWith('abc', 'c');\n * // => true\n *\n * _.endsWith('abc', 'b');\n * // => false\n *\n * _.endsWith('abc', 'b', 2);\n * // => true\n */\n function endsWith(string, target, position) {\n string = toString(string);\n target = baseToString(target);\n\n var length = string.length;\n position = position === undefined\n ? length\n : baseClamp(toInteger(position), 0, length);\n\n var end = position;\n position -= target.length;\n return position >= 0 && string.slice(position, end) == target;\n }\n\n /**\n * Converts the characters \"&\", \"<\", \">\", '\"', and \"'\" in `string` to their\n * corresponding HTML entities.\n *\n * **Note:** No other characters are escaped. To escape additional\n * characters use a third-party library like [_he_](https://mths.be/he).\n *\n * Though the \">\" character is escaped for symmetry, characters like\n * \">\" and \"/\" don't need escaping in HTML and have no special meaning\n * unless they're part of a tag or unquoted attribute value. See\n * [Mathias Bynens's article](https://mathiasbynens.be/notes/ambiguous-ampersands)\n * (under \"semi-related fun fact\") for more details.\n *\n * When working with HTML you should always\n * [quote attribute values](http://wonko.com/post/html-escaping) to reduce\n * XSS vectors.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category String\n * @param {string} [string=''] The string to escape.\n * @returns {string} Returns the escaped string.\n * @example\n *\n * _.escape('fred, barney, & pebbles');\n * // => 'fred, barney, & pebbles'\n */\n function escape(string) {\n string = toString(string);\n return (string && reHasUnescapedHtml.test(string))\n ? string.replace(reUnescapedHtml, escapeHtmlChar)\n : string;\n }\n\n /**\n * Escapes the `RegExp` special characters \"^\", \"$\", \"\\\", \".\", \"*\", \"+\",\n * \"?\", \"(\", \")\", \"[\", \"]\", \"{\", \"}\", and \"|\" in `string`.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to escape.\n * @returns {string} Returns the escaped string.\n * @example\n *\n * _.escapeRegExp('[lodash](https://lodash.com/)');\n * // => '\\[lodash\\]\\(https://lodash\\.com/\\)'\n */\n function escapeRegExp(string) {\n string = toString(string);\n return (string && reHasRegExpChar.test(string))\n ? string.replace(reRegExpChar, '\\\\$&')\n : string;\n }\n\n /**\n * Converts `string` to\n * [kebab case](https://en.wikipedia.org/wiki/Letter_case#Special_case_styles).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the kebab cased string.\n * @example\n *\n * _.kebabCase('Foo Bar');\n * // => 'foo-bar'\n *\n * _.kebabCase('fooBar');\n * // => 'foo-bar'\n *\n * _.kebabCase('__FOO_BAR__');\n * // => 'foo-bar'\n */\n var kebabCase = createCompounder(function(result, word, index) {\n return result + (index ? '-' : '') + word.toLowerCase();\n });\n\n /**\n * Converts `string`, as space separated words, to lower case.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the lower cased string.\n * @example\n *\n * _.lowerCase('--Foo-Bar--');\n * // => 'foo bar'\n *\n * _.lowerCase('fooBar');\n * // => 'foo bar'\n *\n * _.lowerCase('__FOO_BAR__');\n * // => 'foo bar'\n */\n var lowerCase = createCompounder(function(result, word, index) {\n return result + (index ? ' ' : '') + word.toLowerCase();\n });\n\n /**\n * Converts the first character of `string` to lower case.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.lowerFirst('Fred');\n * // => 'fred'\n *\n * _.lowerFirst('FRED');\n * // => 'fRED'\n */\n var lowerFirst = createCaseFirst('toLowerCase');\n\n /**\n * Pads `string` on the left and right sides if it's shorter than `length`.\n * Padding characters are truncated if they can't be evenly divided by `length`.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to pad.\n * @param {number} [length=0] The padding length.\n * @param {string} [chars=' '] The string used as padding.\n * @returns {string} Returns the padded string.\n * @example\n *\n * _.pad('abc', 8);\n * // => ' abc '\n *\n * _.pad('abc', 8, '_-');\n * // => '_-abc_-_'\n *\n * _.pad('abc', 3);\n * // => 'abc'\n */\n function pad(string, length, chars) {\n string = toString(string);\n length = toInteger(length);\n\n var strLength = length ? stringSize(string) : 0;\n if (!length || strLength >= length) {\n return string;\n }\n var mid = (length - strLength) / 2;\n return (\n createPadding(nativeFloor(mid), chars) +\n string +\n createPadding(nativeCeil(mid), chars)\n );\n }\n\n /**\n * Pads `string` on the right side if it's shorter than `length`. Padding\n * characters are truncated if they exceed `length`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to pad.\n * @param {number} [length=0] The padding length.\n * @param {string} [chars=' '] The string used as padding.\n * @returns {string} Returns the padded string.\n * @example\n *\n * _.padEnd('abc', 6);\n * // => 'abc '\n *\n * _.padEnd('abc', 6, '_-');\n * // => 'abc_-_'\n *\n * _.padEnd('abc', 3);\n * // => 'abc'\n */\n function padEnd(string, length, chars) {\n string = toString(string);\n length = toInteger(length);\n\n var strLength = length ? stringSize(string) : 0;\n return (length && strLength < length)\n ? (string + createPadding(length - strLength, chars))\n : string;\n }\n\n /**\n * Pads `string` on the left side if it's shorter than `length`. Padding\n * characters are truncated if they exceed `length`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to pad.\n * @param {number} [length=0] The padding length.\n * @param {string} [chars=' '] The string used as padding.\n * @returns {string} Returns the padded string.\n * @example\n *\n * _.padStart('abc', 6);\n * // => ' abc'\n *\n * _.padStart('abc', 6, '_-');\n * // => '_-_abc'\n *\n * _.padStart('abc', 3);\n * // => 'abc'\n */\n function padStart(string, length, chars) {\n string = toString(string);\n length = toInteger(length);\n\n var strLength = length ? stringSize(string) : 0;\n return (length && strLength < length)\n ? (createPadding(length - strLength, chars) + string)\n : string;\n }\n\n /**\n * Converts `string` to an integer of the specified radix. If `radix` is\n * `undefined` or `0`, a `radix` of `10` is used unless `value` is a\n * hexadecimal, in which case a `radix` of `16` is used.\n *\n * **Note:** This method aligns with the\n * [ES5 implementation](https://es5.github.io/#x15.1.2.2) of `parseInt`.\n *\n * @static\n * @memberOf _\n * @since 1.1.0\n * @category String\n * @param {string} string The string to convert.\n * @param {number} [radix=10] The radix to interpret `value` by.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.parseInt('08');\n * // => 8\n *\n * _.map(['6', '08', '10'], _.parseInt);\n * // => [6, 8, 10]\n */\n function parseInt(string, radix, guard) {\n if (guard || radix == null) {\n radix = 0;\n } else if (radix) {\n radix = +radix;\n }\n return nativeParseInt(toString(string).replace(reTrimStart, ''), radix || 0);\n }\n\n /**\n * Repeats the given string `n` times.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to repeat.\n * @param {number} [n=1] The number of times to repeat the string.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {string} Returns the repeated string.\n * @example\n *\n * _.repeat('*', 3);\n * // => '***'\n *\n * _.repeat('abc', 2);\n * // => 'abcabc'\n *\n * _.repeat('abc', 0);\n * // => ''\n */\n function repeat(string, n, guard) {\n if ((guard ? isIterateeCall(string, n, guard) : n === undefined)) {\n n = 1;\n } else {\n n = toInteger(n);\n }\n return baseRepeat(toString(string), n);\n }\n\n /**\n * Replaces matches for `pattern` in `string` with `replacement`.\n *\n * **Note:** This method is based on\n * [`String#replace`](https://mdn.io/String/replace).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to modify.\n * @param {RegExp|string} pattern The pattern to replace.\n * @param {Function|string} replacement The match replacement.\n * @returns {string} Returns the modified string.\n * @example\n *\n * _.replace('Hi Fred', 'Fred', 'Barney');\n * // => 'Hi Barney'\n */\n function replace() {\n var args = arguments,\n string = toString(args[0]);\n\n return args.length < 3 ? string : string.replace(args[1], args[2]);\n }\n\n /**\n * Converts `string` to\n * [snake case](https://en.wikipedia.org/wiki/Snake_case).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the snake cased string.\n * @example\n *\n * _.snakeCase('Foo Bar');\n * // => 'foo_bar'\n *\n * _.snakeCase('fooBar');\n * // => 'foo_bar'\n *\n * _.snakeCase('--FOO-BAR--');\n * // => 'foo_bar'\n */\n var snakeCase = createCompounder(function(result, word, index) {\n return result + (index ? '_' : '') + word.toLowerCase();\n });\n\n /**\n * Splits `string` by `separator`.\n *\n * **Note:** This method is based on\n * [`String#split`](https://mdn.io/String/split).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to split.\n * @param {RegExp|string} separator The separator pattern to split by.\n * @param {number} [limit] The length to truncate results to.\n * @returns {Array} Returns the string segments.\n * @example\n *\n * _.split('a-b-c', '-', 2);\n * // => ['a', 'b']\n */\n function split(string, separator, limit) {\n if (limit && typeof limit != 'number' && isIterateeCall(string, separator, limit)) {\n separator = limit = undefined;\n }\n limit = limit === undefined ? MAX_ARRAY_LENGTH : limit >>> 0;\n if (!limit) {\n return [];\n }\n string = toString(string);\n if (string && (\n typeof separator == 'string' ||\n (separator != null && !isRegExp(separator))\n )) {\n separator = baseToString(separator);\n if (!separator && hasUnicode(string)) {\n return castSlice(stringToArray(string), 0, limit);\n }\n }\n return string.split(separator, limit);\n }\n\n /**\n * Converts `string` to\n * [start case](https://en.wikipedia.org/wiki/Letter_case#Stylistic_or_specialised_usage).\n *\n * @static\n * @memberOf _\n * @since 3.1.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the start cased string.\n * @example\n *\n * _.startCase('--foo-bar--');\n * // => 'Foo Bar'\n *\n * _.startCase('fooBar');\n * // => 'Foo Bar'\n *\n * _.startCase('__FOO_BAR__');\n * // => 'FOO BAR'\n */\n var startCase = createCompounder(function(result, word, index) {\n return result + (index ? ' ' : '') + upperFirst(word);\n });\n\n /**\n * Checks if `string` starts with the given target string.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to inspect.\n * @param {string} [target] The string to search for.\n * @param {number} [position=0] The position to search from.\n * @returns {boolean} Returns `true` if `string` starts with `target`,\n * else `false`.\n * @example\n *\n * _.startsWith('abc', 'a');\n * // => true\n *\n * _.startsWith('abc', 'b');\n * // => false\n *\n * _.startsWith('abc', 'b', 1);\n * // => true\n */\n function startsWith(string, target, position) {\n string = toString(string);\n position = position == null\n ? 0\n : baseClamp(toInteger(position), 0, string.length);\n\n target = baseToString(target);\n return string.slice(position, position + target.length) == target;\n }\n\n /**\n * Creates a compiled template function that can interpolate data properties\n * in \"interpolate\" delimiters, HTML-escape interpolated data properties in\n * \"escape\" delimiters, and execute JavaScript in \"evaluate\" delimiters. Data\n * properties may be accessed as free variables in the template. If a setting\n * object is given, it takes precedence over `_.templateSettings` values.\n *\n * **Note:** In the development build `_.template` utilizes\n * [sourceURLs](http://www.html5rocks.com/en/tutorials/developertools/sourcemaps/#toc-sourceurl)\n * for easier debugging.\n *\n * For more information on precompiling templates see\n * [lodash's custom builds documentation](https://lodash.com/custom-builds).\n *\n * For more information on Chrome extension sandboxes see\n * [Chrome's extensions documentation](https://developer.chrome.com/extensions/sandboxingEval).\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category String\n * @param {string} [string=''] The template string.\n * @param {Object} [options={}] The options object.\n * @param {RegExp} [options.escape=_.templateSettings.escape]\n * The HTML \"escape\" delimiter.\n * @param {RegExp} [options.evaluate=_.templateSettings.evaluate]\n * The \"evaluate\" delimiter.\n * @param {Object} [options.imports=_.templateSettings.imports]\n * An object to import into the template as free variables.\n * @param {RegExp} [options.interpolate=_.templateSettings.interpolate]\n * The \"interpolate\" delimiter.\n * @param {string} [options.sourceURL='lodash.templateSources[n]']\n * The sourceURL of the compiled template.\n * @param {string} [options.variable='obj']\n * The data object variable name.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Function} Returns the compiled template function.\n * @example\n *\n * // Use the \"interpolate\" delimiter to create a compiled template.\n * var compiled = _.template('hello <%= user %>!');\n * compiled({ 'user': 'fred' });\n * // => 'hello fred!'\n *\n * // Use the HTML \"escape\" delimiter to escape data property values.\n * var compiled = _.template('<%- value %>');\n * compiled({ 'value': '